PI=3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983850549458858692699569092721079750930295532116534498720275596023648066549911988183479775356636980742654252786255181841757467289097777279380008164706001614524919217321721477235014144197356854816136115735255213347574184946843852332390739414333454776241686251898356948556209921922218427255025425688767179049460165346680498862723279178608578438382796797668145410095388378636095068006422512520511739298489608412848862694560424196528502221066118630674427862203919494504712371378696095636437191728746776465757396241389086583264599581339047802759009946576407895126946839835259570982582262052248940772671947826848260147699090264013639443745530506820349625245174939965143142980919065925093722169646151570985838741059788595977297549893016175392846813826868386894277415599185592524595395943104997252468084598727364469584865383673622262609912460805124388439045124413654976278079771569143599770012961608944169486855584840635342207222582848864815845602850601684273945226746767889525213852254995466672782398645659611635488623057745649803559363456817432411251507606947945109659609402522887971089314566913686722874894056010150330861792868092087476091782493858900971490967598526136554978189312978482168299894872265880485756401427047755513237964145152374623436454285844479526586782105114135473573952311342716610213596953623144295248493718711014576540359027993440374200731057853906219838744780847848968332144571386875194350643021845319104848100537061468067491927819119793995206141966342875444064374512371819217999839101591956181467514269123974894090718649423196156794520809514655022523160388193014209376213785595663893778708303906979207734672218256259966150142150306803844773454920260541466592520149744285073251866600213243408819071048633173464965145390579626856100550810665879699816357473638405257145910289706414011097120628043903975951567715770042033786993600723055876317635942187312514712053292819182618612586732157919841484882916447060957527069572209175671167229109816909152801735067127485832228718352093539657251210835791513698820914442100675103346711031412671113699086585163983150197016515116851714376576183515565088490998985998238734552833163550764791853589322618548963213293308985706420467525907091548141654985946163718027098199430992448895757128289059232332609729971208443357326548938239119325974636673058360414281388303203824903758985243744170291327656180937734440307074692112019130203303801976211011004492932151608424448596376698389522868478312355265821314495768572624334418930396864262434107732269780280731891544110104468232527162010526522721116603966655730925471105578537634668206531098965269186205647693125705863566201855810072936065987648611791045334885034611365768675324944166803962657978771855608455296541266540853061434443185867697514566140680070023787765913440171274947042056223053899456131407112700040785473326993908145466464588079727082668306343285878569830523580893306575740679545716377525420211495576158140025012622859413021647155097925923099079654737612551765675135751782966645477917450112996148903046399471329621073404375189573596145890193897131117904297828564750320319869151402870808599048010941214722131794764777262241425485454033215718530614228813758504306332175182979866223717215916077166925474873898665494945011465406284336639379003976926567214638530673609657120918076383271664162748888007869256029022847210403172118608204190004229661711963779213375751149595015660496318629472654736425230817703675159067350235072835405670403867435136222247715891504953098444893330963408780769325993978054193414473774418426312986080998886874132604721569516239658645730216315981931951673538129741677294786724229246543668009806769282382806899640048243540370141631496589794092432378969070697794223625082216889573837986230015937764716512289357860158816175578297352334460428151262720373431465319777741603199066554187639792933441952154134189948544473456738316249934191318148092777710386387734317720754565453220777092120190516609628049092636019759882816133231666365286193266863360627356763035447762803504507772355471058595487027908143562401451718062464362679456127531813407833033625423278394497538243720583531147711992606381334677687969597030983391307710987040859133746414428227726346594704745878477872019277152807317679077071572134447306057007334924369311383504931631284042512192565179806941135280131470130478164378851852909285452011658393419656213491434159562586586557055269049652098580338507224264829397285847831630577775606888764462482468579260395352773480304802900587607582510474709164396136267604492562742042083208566119062545433721315359584506877246029016187667952406163425225771954291629919306455377991403734043287526288896399587947572917464263574552540790914513571113694109119393251910760208252026187985318877058429725916778131496990090192116971737278476847268608490033770242429165130050051683233643503895170298939223345172201381280696501178440874519601212285993716231301711444846409038906449544400619869075485160263275052983491874078668088183385102283345085048608250393021332197155184306354550076682829493041377655279397517546139539846833936383047461199665385815384205685338621867252334028308711232827892125077126294632295639898989358211674562701021835646220134967151881909730381198004973407239610368540664319395097901906996395524530054505806855019567302292191393391856803449039820595510022635353619204199474553859381023439554495977837790237421617271117236434354394782218185286240851400666044332588856986705431547069657474585503323233421073015459405165537906866273337995851156257843229882737231989875714159578111963583300594087306812160287649628674460477464915995054973742562690104903778198683593814657412680492564879855614537234786733039046883834363465537949864192705638729317487233208376011230299113679386270894387993620162951541337142489283072201269014754668476535761647737946752004907571555278196536213239264061601363581559074220202031872776052772190055614842555187925303435139844253223415762336106425063904975008656271095359194658975141310348227693062474353632569160781547818115284366795706110861533150445212747392454494542368288606134084148637767009612071512491404302725386076482363414334623518975766452164137679690314950191085759844239198629164219399490723623464684411739403265918404437805133389452574239950829659122850855582157250310712570126683024029295252201187267675622041542051618416348475651699981161410100299607838690929160302884002691041407928862150784245167090870006992821206604183718065355672525325675328612910424877618258297651579598470356222629348600341587229805349896502262917487882027342092222453398562647669149055628425039127577102840279980663658254889264880254566101729670266407655904290994568150652653053718294127033693137851786090407086671149655834343476933857817113864558736781230145876871266034891390956200993936103102916161528813843790990423174733639480457593149314052976347574811935670911013775172100803155902485309066920376719220332290943346768514221447737939375170344366199104033751117354719185504644902636551281622882446257591633303910722538374218214088350865739177150968288747826569959957449066175834413752239709683408005355984917541738188399944697486762655165827658483588453142775687900290951702835297163445621296404352311760066510124120065975585127617858382920419748442360800719304576189323492292796501987518721272675079812554709589045563579212210333466974992356302549478024901141952123828153091140790738602515227429958180724716259166854513331239480494707911915326734302824418604142636395480004480026704962482017928964766975831832713142517029692348896276684403232609275249603579964692565049368183609003238092934595889706953653494060340216654437558900456328822505452556405644824651518754711962184439658253375438856909411303150952617937800297412076651479394259029896959469955657612186561967337862362561252163208628692221032748892186543648022967807057656151446320469279068212073883778142335628236089632080682224680122482611771858963814091839036736722208883215137556003727983940041529700287830766709444745601345564172543709069793961225714298946715435784687886144458123145935719849225284716050492212424701412147805734551050080190869960330276347870810817545011930714122339086639383395294257869050764310063835198343893415961318543475464955697810382930971646514384070070736041123735998434522516105070270562352660127648483084076118301305279320542746286540360367453286510570658748822569815793678976697422057505968344086973502014102067235850200724522563265134105592401902742162484391403599895353945909440704691209140938700126456001623742880210927645793106579229552498872758461012648369998922569596881592056001016552563756785667227966198857827948488558343975187445455129656344348039664205579829368043522027709842942325330225763418070394769941597915945300697521482933665556615678736400536665641654732170439035213295435291694145990416087532018683793702348886894791510716378529023452924407736594956305100742108714261349745956151384987137570471017879573104229690666702144986374645952808243694457897723300487647652413390759204340196340391147320233807150952220106825634274716460243354400515212669324934196739770415956837535551667302739007497297363549645332888698440611964961627734495182736955882207573551766515898551909866653935494810688732068599075407923424023009259007017319603622547564789406475483466477604114632339056513433068449539790709030234604614709616968868850140834704054607429586991382966824681857103188790652870366508324319744047718556789348230894310682870272280973624809399627060747264553992539944280811373694338872940630792615959954626246297070625948455690347119729964090894180595343932512362355081349490043642785271383159125689892951964272875739469142725343669415323610045373048819855170659412173524625895487301676002988659257866285612496655235338294287854253404830833070165372285635591525347844598183134112900199920598135220511733658564078264849427644113763938669248031183644536985891754426473998822846218449008777697763127957226726555625962825427653183001340709223343657791601280931794017185985999338492354956400570995585611349802524990669842330173503580440811685526531170995708994273287092584878944364600504108922669178352587078595129834417295351953788553457374260859029081765155780390594640873506123226112009373108048548526357228257682034160504846627750450031262008007998049254853469414697751649327095049346393824322271885159740547021482897111777923761225788734771881968254629812686858170507402725502633290449762778944236216741191862694396506715157795867564823993917604260176338704549901761436412046921823707648878341968968611815581587360629386038101712158552726683008238340465647588040513808016336388742163714064354955618689641122821407533026551004241048967835285882902436709048871181909094945331442182876618103100735477054981596807720094746961343609286148494178501718077930681085469000944589952794243981392135055864221964834915126390128038320010977386806628779239718014613432445726400973742570073592100315415089367930081699805365202760072774967458400283624053460372634165542590276018348403068113818551059797056640075094260878857357960373245141467867036880988060971642584975951380693094494015154222219432913021739125383559150310033303251117491569691745027149433151558854039221640972291011290355218157628232831823425483261119128009282525619020526301639114772473314857391077758744253876117465786711694147764214411112635835538713610110232679877564102468240322648346417663698066378576813492045302240819727856471983963087815432211669122464159117767322532643356861461865452226812688726844596844241610785401676814208088502800541436131462308210259417375623899420757136275167457318918945628352570441335437585753426986994725470316566139919996826282472706413362221789239031760854289437339356188916512504244040089527198378738648058472689546243882343751788520143956005710481194988423906061369573423155907967034614914344788636041031823507365027785908975782727313050488939890099239135033732508559826558670892426124294736701939077271307068691709264625484232407485503660801360466895118400936686095463250021458529309500009071510582362672932645373821049387249966993394246855164832611341461106802674466373343753407642940266829738652209357016263846485285149036293201991996882851718395366913452224447080459239660281715655156566611135982311225062890585491450971575539002439315351909021071194573002438801766150352708626025378817975194780610137150044899172100222013350131060163915415895780371177927752259787428919179155224171895853616805947412341933984202187456492564434623925319531351033114763949119950728584306583619353693296992898379149419394060857248639688369032655643642166442576079147108699843157337496488352927693282207629472823815374099615455987982598910937171262182830258481123890119682214294576675807186538065064870261338928229949725745303328389638184394477077940228435988341003583854238973542439564755568409522484455413923941000162076936368467764130178196593799715574685419463348937484391297423914336593604100352343777065888677811394986164787471407932638587386247328896456435987746676384794665040741118256583788784548581489629612739984134427260860618724554523606431537101127468097787044640947582803487697589483282412392929605829486191966709189580898332012103184303401284951162035342801441276172858302435598300320420245120728725355811958401491809692533950757784000674655260314461670508276827722235341911026341631571474061238504258459884199076112872580591139356896014316682831763235673254170734208173322304629879928049085140947903688786878949305469557030726190095020764334933591060245450864536289354568629585313153371838682656178622736371697577418302398600659148161640494496501173213138957470620884748023653710311508984279927544268532779743113951435741722197597993596852522857452637962896126915723579866205734083757668738842664059909935050008133754324546359675048442352848747014435454195762584735642161981340734685411176688311865448937769795665172796623267148103386439137518659467300244345005449953997423723287124948347060440634716063258306498297955101095418362350303094530973358344628394763047756450150085075789495489313939448992161255255977014368589435858775263796255970816776438001254365023714127834679261019955852247172201777237004178084194239487254068015560359983905489857235467456423905858502167190313952629445543913166313453089390620467843877850542393905247313620129476918749751910114723152893267725339181466073000890277689631148109022097245207591672970078505807171863810549679731001678708506942070922329080703832634534520380278609905569001341371823683709919495164896007550493412678764367463849020639640197666855923356546391383631857456981471962108410809618846054560390384553437291414465134749407848844237721751543342603066988317683310011331086904219390310801437843341513709243530136776310849135161564226984750743032971674696406665315270353254671126675224605511995818319637637076179919192035795820075956053023462677579439363074630569010801149427141009391369138107258137813578940055995001835425118417213605572752210352680373572652792241737360575112788721819084490061780138897107708229310027976659358387589093956881485602632243937265624727760378908144588378550197028437793624078250527048758164703245812908783952324532378960298416692254896497156069811921865849267704039564812781021799132174163058105545988013004845629976511212415363745150056350701278159267142413421033015661653560247338078430286552572227530499988370153487930080626018096238151613669033411113865385109193673938352293458883225508870645075394739520439680790670868064450969865488016828743437861264538158342807530618454859037982179945996811544197425363443996029025100158882721647450068207041937615845471231834600726293395505482395571372568402322682130124767945226448209102356477527230820810635188991526928891084555711266039650343978962782500161101532351605196559042118449499077899920073294769058685778787209829013529566139788848605097860859570177312981553149516814671769597609942100361835591387778176984587581044662839988060061622984861693533738657877359833616133841338536842119789389001852956919678045544828584837011709672125353387586215823101331038776682721157269495181795897546939926421979155233857662316762754757035469941489290413018638611943919628388705436777432242768091323654494853667680000010652624854730558615989991401707698385483188750142938908995068545307651168033373222651756622075269517914422528081651716677667279303548515420402381746089232839170327542575086765511785939500279338959205766827896776445318404041855401043513483895312013263783692835808271937831265496174599705674507183320650345566440344904536275600112501843356073612227659492783937064784264567633881880756561216896050416113903906396016202215368494109260538768871483798955999911209916464644119185682770045742434340216722764455893301277815868695250694993646101756850601671453543158148010545886056455013320375864548584032402987170934809105562116715468484778039447569798042631809917564228098739987669732376957370158080682290459921236616890259627304306793165311494017647376938735140933618332161428021497633991898354848756252987524238730775595559554651963944018218409984124898262367377146722606163364329640633572810707887581640438148501884114318859882769449011932129682715888413386943468285900666408063140777577257056307294004929403024204984165654797367054855804458657202276378404668233798528271057843197535417950113472736257740802134768260450228515797957976474670228409995616015691089038458245026792659420555039587922981852648007068376504183656209455543461351341525700659748819163413595567196496540321872716026485930490397874895890661272507948282769389535217536218507962977851461884327192232238101587444505286652380225328438913752738458923844225354726530981715784478342158223270206902872323300538621634798850946954720047952311201504329322662827276321779088400878614802214753765781058197022263097174950721272484794781695729614236585957820908307332335603484653187302930266596450137183754288975579714499246540386817992138934692447419850973346267933210726868707680626399193619650440995421676278409146698569257150743157407938053239252394775574415918458215625181921552337096074833292349210345146264374498055961033079941453477845746999921285999993996122816152193148887693880222810830019860165494165426169685867883726095877456761825072759929508931805218729246108676399589161458550583972742098090978172932393010676638682404011130402470073508578287246271349463685318154696904669686939254725194139929146524238577625500474852954768147954670070503479995888676950161249722820403039954632788306959762493615101024365553522306906129493885990157346610237122354789112925476961760050479749280607212680392269110277722610254414922157650450812067717357120271802429681062037765788371669091094180744878140490755178203856539099104775941413215432844062503018027571696508209642734841469572639788425600845312140659358090412711359200419759851362547961606322887361813673732445060792441176399759746193835845749159880976674470930065463424234606342374746660804317012600520559284936959414340814685298150539471789004518357551541252235905906872648786357525419112888773717663748602766063496035367947026923229718683277173932361920077745221262475186983349515101986426988784717193966497690708252174233656627259284406204302141137199227852699846988477023238238400556555178890876613601304770984386116870523105531491625172837327286760072481729876375698163354150746088386636406934704372066886512756882661497307886570156850169186474885416791545965072342877306998537139043002665307839877638503238182155355973235306860430106757608389086270498418885951380910304235957824951439885901131858358406674723702971497850841458530857813391562707603563907639473114554958322669457024941398316343323789759556808568362972538679132750555425244919435891284050452269538121791319145135009938463117740179715122837854601160359554028644059024964669307077690554810288502080858008781157738171917417760173307385547580060560143377432990127286772530431825197579167929699650414607066457125888346979796429316229655201687973000356463045793088403274807718115553309098870255052076804630346086581653948769519600440848206596737947316808641564565053004988161649057883115434548505266006982309315777650037807046612647060214575057932709620478256152471459189652236083966456241051955105223572397395128818164059785914279148165426328920042816091369377737222999833270820829699557377273756676155271139225880552018988762011416800546873655806334716037342917039079863965229613128017826797172898229360702880690877686605932527463784053976918480820410219447197138692560841624511239806201131845412447820501107987607171556831540788654390412108730324020106853419472304766667217498698685470767812051247367924791931508564447753798537997322344561227858432968466475133365736923872014647236794278700425032555899268843495928761240075587569464137056251400117971331662071537154360068764773186755871487839890810742953094106059694431584775397009439883949144323536685392099468796450665339857388878661476294434140104988899316005120767810358861166020296119363968213496075011164983278563531614516845769568710900299976984126326650234771672865737857908574664607722834154031144152941880478254387617707904300015669867767957609099669360755949651527363498118964130433116627747123388174060373174397054067031096767657486953587896700319258662594105105335843846560233917967492678447637084749783336555790073841914731988627135259546251816043422537299628632674968240580602964211463864368642247248872834341704415734824818333016405669596688667695634914163284264149745333499994800026699875888159350735781519588990053951208535103572613736403436753471410483601754648830040784641674521673719048310967671134434948192626811107399482506073949507350316901973185211955263563258433909982249862406703107683184466072912487475403161796994113973877658998685541703188477886759290260700432126661791922352093822787888098863359911608192353555704646349113208591897961327913197564909760001399623444553501434642686046449586247690943470482932941404111465409239883444351591332010773944111840741076849810663472410482393582740194493566516108846312567852977697346843030614624180358529331597345830384554103370109167677637427621021370135485445092630719011473184857492331816720721372793556795284439254815609137281284063330393735624200160456645574145881660521666087387480472433912129558777639069690370788285277538940524607584962315743691711317613478388271941686066257210368513215664780014767523103935786068961112599602818393095487090590738613519145918195102973278755710497290114871718971800469616977700179139196137914171627070189584692143436967629274591099400600849835684252019155937037010110497473394938778859894174330317853487076032219829705797511914405109942358830345463534923498268836240433272674155403016195056806541809394099820206099941402168909007082133072308966211977553066591881411915778362729274615618571037217247100952142369648308641025928874579993223749551912219519034244523075351338068568073544649951272031744871954039761073080602699062580760202927314552520780799141842906388443734996814582733720726639176702011830046481900024130835088465841521489912761065137415394356572113903285749187690944137020905170314877734616528798482353382972601361109845148418238081205409961252745808810994869722161285248974255555160763716750548961730168096138038119143611439921063800508321409876045993093248510251682944672606661381517457125597549535802399831469822036133808284993567055755247129027453977621404931820146580080215665360677655087838043041343105918046068008345911366408348874080057412725867047922583191274157390809143831384564241509408491339180968402511639919368532255573389669537490266209232613188558915808324555719484538756287861288590041060060737465014026278240273469625282171749415823317492396835301361786536737606421667781377399510065895288774276626368418306801908046098498094697636673356622829151323527888061577682781595886691802389403330764419124034120223163685778603572769415417788264352381319050280870185750470463129333537572853866058889045831114507739429352019943219711716422350056440429798920815943071670198574692738486538334361457946341759225738985880016980147574205429958012429581054565108310462972829375841611625325625165724980784920998979906200359365099347215829651741357984910471116607915874369865412223483418877229294463351786538567319625598520260729476740726167671455736498121056777168934849176607717052771876011999081441130586455779105256843048114402619384023224709392498029335507318458903553971330884461741079591625117148648744686112476054286734367090466784686702740918810142497111496578177242793470702166882956108777944050484375284433751088282647719785400065097040330218625561473321177711744133502816088403517814525419643203095760186946490886815452856213469883554445602495566684366029221951248309106053772019802183101032704178386654471812603971906884623708575180800353270471856594994761242481109992886791589690495639476246084240659309486215076903149870206735338483495508363660178487710608098042692471324100094640143736032656451845667924566695510015022983307984960799498824970617236744936122622296179081431141466094123415935930958540791390872083227335495720807571651718765994498569379562387555161757543809178052802946420044721539628074636021132942559160025707356281263873310600589106524570802447493754318414940148211999627645310680066311838237616396631809314446712986155275982014514102756006892975024630401735148919457636078935285550531733141645705049964438909363084387448478396168405184527328840323452024705685164657164771393237755172947951261323982296023945485797545865174587877133181387529598094121742273003522965080891777050682592488223221549380483714547816472139768209633205083056479204820859204754998573203888763916019952409189389455767687497308569559580106595265030362661597506622250840674288982659075106375635699682115109496697445805472886936310203678232501823237084597901115484720876182124778132663304120762165873129708112307581598212486398072124078688781145016558251361789030708608701989758898074566439551574153631931919810705753366337380382721527988493503974800158905194208797113080512339332219034662499171691509485414018710603546037946433790058909577211808044657439628061867178610171567409676620802957665770512912099079443046328929473061595104309022214393718495606340561893425130572682914657832933405246350289291754708725648426003496296116541382300773133272983050016025672401418515204189070115428857992081219844931569990591820118197335001261877280368124819958770702075324063612593134385955425477819611429351635612234966615226147353996740515849986035529533292457523888101362023476246690558164389678630976273655047243486430712184943734853006063876445662721866617012381277156213797461498613287441177145524447089971445228856629424402301847912054784985745216346964489738920624019435183100882834802492490854030778638751659113028739587870981007727182718745290139728366148421428717055317965430765045343246005363614726181809699769334862640774351999286863238350887566835950972655748154319401955768504372480010204137498318722596773871549583997184449072791419658459300839426370208756353982169620553248032122674989114026785285996734052420310917978999057188219493913207534317079800237365909853755202389116434671855829068537118979526262344924833924963424497146568465912489185566295893299090352392333336474352037077010108438800329075983421701855422838616172104176030116459187805393674474720599850235828918336929223373239994804371084196594731626548257480994825099918330069765693671596893644933488647442135008407006608835972350395323401795825570360169369909886711321097988970705172807558551912699306730992507040702455685077867906947661262980822516331363995211709845280926303759224267425755998928927837047444521893632034894155210445972618838003006776179313813991620580627016510244588692476492468919246121253102757313908404700071435613623169923716948481325542009145304103713545329662063921054798243921251725401323149027405858920632175894943454890684639931375709103463327141531622328055229729795380188016285907357295541627886764982741861642187898857410716490691918511628152854867941736389066538857642291583425006736124538491606741373401735727799563410433268835695078149313780073623541800706191802673285511919426760912210359874692411728374931261633950012395992405084543756985079570462226646190001035004901830341535458428337643781119885563187777925372011667185395418359844383052037628194407615941068207169703022851522505731260930468984234331527321313612165828080752126315477306044237747535059522871744026663891488171730864361113890694202790881431194487994171540421034121908470940802540239329429454938786402305129271190975135360009219711054120966831115163287054230284700731206580326264171161659576132723515666625366727189985341998952368848309993027574199164638414270779887088742292770538912271724863220288984251252872178260305009945108247835729056919885554678860794628053712270424665431921452817607414824038278358297193010178883456741678113989547504483393146896307633966572267270433932167454218245570625247972199786685427989779923395790575818906225254735822052364248507834071101449804787266919901864388229323053823185597328697809222535295910173414073348847610055640182423921926950620831838145469839236646136398910121021770959767049083050818547041946643713122996923588953849301363565761861060622287055994233716310212784574464639897381885667462608794820186474876727272220626764653380998019668836809941590757768526398651462533363124505364026105696055131838131742611844201890888531963569869627950367384243130113317533053298020166888174813429886815855778103432317530647849832106297184251843855344276201282345707169885305183261796411785796088881503296022907056144762209150947390359466469162353968092013945781758910889319921122600739281491694816152738427362642980982340632002440244958944561291670495082358124873917996486411334803247577752197089327722623494860150466526814398770516153170266969297049283162855042128981467061953319702695072143782304768752802873541261663917082459251700107141808548006369232594620190022780874098597719218051585321473926532515590354102092846659252999143537918253145452905984158176370589279069098969111643811878094353715213322614436253144901274547726957393934815469163116249288735747188240715039950094467319543161938554852076657388251396391635767231510055560372633948672082078086537349424401157996675073607111593513319591971209489647175530245313647709420946356969822266737752099451684506436238242118535348879893956731878066061078854400055082765703055874485418057788917192078814233511386629296671796434687600770479995378833878703487180218424373421122739402557176908196030920182401884270570460926225641783752652633583242406612533115294234579655695025068100183109004112453790153329661569705223792103257069370510908307894799990049993953221536227484766036136776979785673865846709366795885837887956259464648913766521995882869338018360119323685785585581955560421562508836502033220245137621582046181067051953306530606065010548871672453779428313388716313955969058320834168984760656071183471362181232462272588419902861420872849568796393254642853430753011052857138296437099903569488852851904029560473461311382638788975517885604249987483163828040468486189381895905420398898726506976202019955484126500053944282039301274816381585303964399254702016727593285743666616441109625663373054092195196751483287348089574777752783442210910731113518280460363471981856555729571447476825528578633493428584231187494400032296906977583159038580393535213588600796003420975473922967333106493956018122378128545843176055617338611267347807458506760630482294096530411183066710818930311088717281675195796753471885372293096161432040063813224658411111577583585811350185690478153689381377184728147519983505047812977185990847076219746058874232569958288925350419379582606162118423687685114183160683158679946016520577405294230536017803133572632670547903384012573059123396018801378254219270947673371919872873852480574212489211834708766296672072723256505651293331260595057777275424712416483128329820723617505746738701282095755443059683955556868611883971355220844528526400812520276655576774959696266126045652456840861392382657685833846984997787267065551918544686984694784957346226062942196245570853712727765230989554501930377321666491825781546772920052126671434632096378918523232150189761260343736840671941930377468809992968775824410478781232662531818459604538535438391144967753128642609252115376732588667226040425234910870269580996475958057946639734190640100363619040420331135793365424263035614570090112448008900208014780566037101541223288914657223931450760716706435568274377439657890679726874384730763464516775621030986040927170909512808630902973850445271828927496892121066700816485833955377359191369501531620189088874842107987068991148046692706509407620465027725286507289053285485614331608126930056937854178610969692025388650345771831766868859236814884752764984688219497397297077371871884004143231276365048145311228509900207424092558592529261030210673681543470152523487863516439762358604191941296976904052648323470099111542426012734380220893310966863678986949779940012601642276092608234930411806438291383473546797253992623387915829984864592717340592256207491053085315371829116816372193951887009577881815868504645076993439409874335144316263303172477474868979182092394808331439708406730840795893581089665647758599055637695252326536144247802308268118310377358870892406130313364773710116282146146616794040905186152603600925219472188909181073358719641421444786548995285823439470500798303885388608310357193060027711945580219119428999227223534587075662469261776631788551443502182870266856106650035310502163182060176092179846849368631612937279518730789726373537171502563787335797718081848784588665043358243770041477104149349274384575871071597315594394264125702709651251081155482479394035976811881172824721582501094960966253933953809221955919181885526780621499231727631632183398969380756168559117529984501320671293924041445938623988093812404521914848316462101473891825101090967738690664041589736104764365000680771056567184862814963711188321924456639458144914861655004956769826903089111856879869294705135248160917432430153836847072928989828460222373014526556798986277679680914697983782687643115988321090437156112997665215396354644208691975673700057387649784376862876817924974694384274652563163230055513041742273416464551278127845777724575203865437542828256714128858345444351325620544642410110379554641905811686230596447695870540721419852121067343324107567675758184569906930460475227701670056845439692340417110898889934163505851578873534308155208117720718803791040469830695786854739376564336319797868036718730796939242363214484503547763156702553900654231179201534649779290662415083288583952905426376876689688050333172278001858850697362324038947004718976193473443084374437599250341788079722358591342458131440498477017323616947197657153531977549971627856631190469126091825912498903676541769799036237552865263757337635269693443544004730671988689019681474287677908669796885225016369498567302175231325292653758964151714795595387842784998664563028788319620998304945198743963690706827626574858104391122326187940599415540632701319898957037611053236062986748037791537675115830432084987209202809297526498125691634250005229088726469252846661046653921714820801305022980526378364269597337070539227891535105688839381132497570713310295044303467159894487868471164383280506925077662745001220035262037094660234146489983902525888301486781621967751945831677187627572005054397944124599007711520515461993050983869825428464072555409274031325716326407929341833421470904125425335232480219322770753555467958716383587501815933871742360615511710131235256334858203651461418700492057043720182617331947157008675785393360786227395581857975872587441025420771054753612940474601000940954449596628814869159038990718659805636171376922272907641977551777201042764969496110562205925024202177042696221549587264539892276976603105249808557594716310758701332088614632664125911486338812202844406941694882615295776253250198703598706743804698219420563812558334364219492322759372212890564209430823525440841108645453694049692714940033197828613181861888111184082578659287574263844500599442295685864604810330153889114994869354360302218109434667640000223625505736312946262960961987605642599639461386923308371962659547392346241345977957485246478379807956931986508159776753505539189911513352522987361127791827485420086895396583594219633315028695611920122988898870060799927954111882690230789131076036176347794894320321027733594169086500719328040171638406449878717537567811853213284082165711075495282949749362146082155832056872321855740651610962748743750980922302116099826330339154694946444910045152809250897450748967603240907689836529406579201983152654106581368237919840906457124689484702093577611931399802468134052003947819498662026240089021501661638135383815150377350229660746279529103840686855690701575166241929872444827194293310048548244545807188976330032325258215812803274679620028147624318286221710543528983482082734516801861317195933247110746622285087106661177034653528395776259977446721857158161264111432717943478859908928084866949141390977167369002777585026866465405659503948678411107901161040085727445629384254941675946054871172359464291058509099502149587931121961359083158826206823321561530868337308381732793281969838750870834838804638847844188400318471269745437093732983624028751979208023218787448828728437273780178270080587824107493575148899789117397461293203510814327032514090304874622629423443275712600866425083331876886507564292716055252895449215376517514921963671810494353178583834538652556566406572513635750643532365089367904317025978781771903148679638408288102094614900797151377170990619549696400708676671023300486726314755105372317571143223174114116806228642063889062101923552235467116621374996932693217370431059872250394565749246169782609702533594750209138366737728944386964000281103440260847128990007468077648440887113413525033678773167977093727786821661178653442317322646378476978751443320953400016506921305464768909850502030150448808342618452087305309731894929164253229336124315143065782640702838984098416029503092418971209716016492656134134334222988279099217860426798124572853458013382609958771781131021673402565627440072968340661984806766158050216918337236803990279316064204368120799003162644491461902194582296909921227885539487835383056468648816555622943156731282743908264506116289428035016613366978240517701552196265227254558507386405852998303791803504328767038092521679075712040612375963276856748450791511473134400018325703449209097124358094479004624943134550289006806487042935340374360326258205357901183956490893543451013429696175452495739606214902887289327925206965353863964432253883275224996059869747598823299162635459733244451637553343774929289905811757863555556269374269109471170021654117182197505198317871371060510637955585889055688528879890847509157646390746936198815078146852621332524738376511929901561091897779220087057933964638274906806987691681974923656242260871541761004306089043779766785196618914041449252704808819714988015420577870065215940092897776013307568479669929554336561398477380603943688958876460549838714789684828053847017308711177611596635050399793438693391197898871091565417091330826076474063057114110988393880954814378284745288383680794188843426662220704387228874139478010177213922819119923654055163958934742639538248296090369002883593277458550608013179884071624465639979482757836501955142215513392819782269842786383916797150912624105487257009240700454884856929504481107380879965474815689139353809434745569721289198271770207666136024895814681191336141212587838955773571949863172108443989014239484966592517313881716026632619310653665350414730708044149391693632623737677770958503132559900957627319573086480424677012123270205337426670531424482081681303063973787366424836725398374876909806021827857862165127385635132901489035098832706172589325753639939790557291751600976154590447716922658063151110280384360173747421524760851520990161585823125715907334217365762671423904782795872815050956330928026684589376496497702329736413190609827406335310897924642421345837409011693919642504591288134034988106354008875968200544083643865166178805576089568967275315380819420773325979172784376256611843198910250074918290864751497940031607038455494653859460274524474668123146879434416109933389089926384118474252570445725174593257389895651857165759614812660203107976282541655905060424791140169579003383565748692528007430256234194982864679144763227740055294609039401775363356554719310001754300475047191448998410400158679461792416100164547165513370740739502604427695385538343975505488710997852054011751697475813449260794336895437832211724506873442319898788441285420647428097356258070669831069799352606933921356858813912148073547284632277849080870024677763036055512323866562951788537196730346347012229395816067925091532174890308408865160611190114984434123501246469280288059961342835118847154497712784733617662850621697787177438243625657117794500644777183702219991066950216567576440449979407650379999548450027106659878136038023141268369057831904607927652972776940436130230517870805465115424693952651271010529270703066730244471259739399505146284047674313637399782591845411764133279064606365841529270190302760173394748669603486949765417524293060407270050590395031485229213925755948450788679779252539317651564161971684435243697944473559642606333910551268260615957262170366985064732812667245219890605498802807828814297963366967441248059821921463395657457221022986775997467381260693670691340815594120161159601902377535255563006062479832612498812881929373434768626892192397778339107331065882568137771723283153290825250927330478507249771394483338925520811756084529665905539409655685417060011798572938139982583192936791003918440992865756059935989100029698644609747147184701015312837626311467742091455740418159088000649432378558393085308283054760767995243573916312218860575496738322431956506554608528812019023636447127037486344217272578795034284863129449163184753475314350413920961087960577309872013524840750576371992536504709085825139368634638633680428917671076021111598288755399401200760139470336617937153963061398636554922137415979051190835882900976566473007338793146789131814651093167615758213514248604422924453041131606527009743300884990346754055186406773426035834096086055337473627609356588531097609942383473822220872924644976845605795625167655740884103217313456277358560523582363895320385340248422733716391239732159954408284216666360232965456947035771848734420342277066538373875061692127680157661810954200977083636043611105924091178895403380214265239489296864398089261146354145715351943428507213534530183158756282757338982688985235577992957276452293915674775666760510878876484534936360682780505646228135988858792599409464460417052044700463151379754317371877560398159626475014109066588661621800382669899619655805872086397211769952194667898570117983324406018115756580742841829106151939176300591943144346051540477105700543390001824531177337189558576036071828605063564799790041397618089553636696031621931132502238517916720551806592635180362512145759262383693482226658955769946604919381124866090997981285718234940066155521961122072030922776462009993152442735894887105766238946938894464950939603304543408421024624010487233287500817491798755438793873814398942380117627008371960530943839400637561164585609431295175977139353960743227924892212670458081833137641658182695621058728924477400359470092686626596514220506300785920024882918608397437323538490839643261470005324235406470420894992102504047267810590836440074663800208701266642094571817029467522785400745085523777208905816839184465928294170182882330149715542352359117748186285929676050482038643431087795628929254056389466219482687110428281638939757117577869154301650586029652174595819888786804081103284327398671986213062055598552660364050462821523061545944744899088390819997387474529698107762014871340001225355222466954093152131153379157980269795557105085074738747507580687653764457825244326380461430428892359348529610582693821034980004052484070844035611678171705128133788057056434506161193304244407982603779511985486945591520519600930412710072778493015550388953603382619293437970818743209499141595933963681106275572952780042548630600545238391510689989135788200194117865356821491185282078521301255185184937115034221595422445119002073935396274002081104655302079328672547405436527175958935007163360763216147258154076420530200453401835723382926619153083540951202263291650544261236191970516138393573266937601569144299449437448568097756963031295887191611292946818849363386473927476012269641588489009657170861605981472044674286642087653347998582220906198021732116142304194777549907387385679411898246609130916917722742072333676350326783405863019301932429963972044451792881228544782119535308989101253429755247276357302262813820918074397486714535907786335301608215599113141442050914472935350222308171936635093468658586563148555758624478186201087118897606529698992693281787055764351433820601410773292610634315253371822433852635202177354407152818981376987551575745469397271504884697936195004777209705617939138289898453274262272886471088832701737232588182446584362495805925603381052156062061557132991560848920643403033952622634514542836786982880742514225674518061841495646861116354049718976821542277224794740335715274368194098920501136534001238467142965518673441537416150425632567134302476551252192180357801692403266995417460875924092070046693403965101781348578356944407604702325407555577647284507518268904182939661133101601311190773986324627782190236506603740416067249624901374332172464540974129955705291424382080760983648234659738866913499197840131080155813439791948528304367390124820824448141280954437738983200598649091595053228579145768849625786658859991798675205545580990045564611787552493701245532171701942828846174027366499784755082942280202329012216301023097721515694464279098021908266898688342630716092079140851976952355534886577434252775311972474308730436195113961190800302558783876442060850447306312992778889427291897271698905759252446796601897074829609491906487646937027507738664323919190422542902353189233772931667360869962280325571853089192844038050710300647768478632431910002239297852553723755662136447400967605394398382357646069924652600890906241059042154539279044115295803453345002562441010063595300395988644661695956263518780606885137234627079973272331346939714562855426154676506324656766202792452085813477176085216913409465203076733918411475041401689241213198268815686645614853802875393311602322925556189410429953356400957864953409351152664540244187759493169305604486864208627572011723195264050230997745676478384889734643172159806267876718380052476968840849891850861490034324034767426862459523958903585821350064509981782446360873177543788596776729195261112138591947254514003011805034378752776644027626189410175768726804281766238606804778852428874302591452470739505465251353394595987896197789110418902929438185672050709646062635417329446495766126519534957018600154126239622864138977967333290705673769621564981845068422636903678495559700260798679962610190393312637685569687670292953711625280055431007864087289392257145124811357786276649024251619902774710903359333093049483805978566288447874414698414990671237647895822632949046798120899848571635710878311918486302545016209298058292083348136384054217200561219893536693713367333924644161252231969434712064173754912163570085736943973059797097197266666422674311177621764030686813103518991122713397240368870009968629225464650063852886203938005047782769128356033725482557939129852515068299691077542576474883253414121328006267170940090982235296579579978030182824284902214707481111240186076134151503875698309186527806588966823625239378452726345304204188025084423631903833183845505223679923577529291069250432614469501098610888999146585518818735825281643025209392852580779697376208456374821144339881627100317031513344023095263519295886806908213558536801610002137408511544849126858412686958991741491338205784928006982551957402018181056412972508360703568510553317878408290000415525118657794539633175385320921497205266078312602819611648580986845875251299974040927976831766399146553861089375879522149717317281315179329044311218158710235187407572221001237687219447472093493123241070650806185623725267325407333248757544829675734500193219021991199607979893733836732425761039389853492787774739805080800155447640610535222023254094435677187945654304067358964910176107759483645408234861302547184764851895758366743997915085128580206078205544629917232020282229148869593997299742974711553718589242384938558585954074381048826246487880533042714630119415898963287926783273224561038521970111304665871005000832851773117764897352309266612345888731028835156264460236719966445547276083101187883891511493409393447500730258558147561908813987523578123313422798665035227253671712307568610450045489703600795698276263923441071465848957802414081584052295369374997106655948944592462866199635563506526234053394391421112718106910522900246574236041300936918892558657846684612156795542566054160050712766417660568742742003295771606434486062012398216982717231978268166282499387149954491373020518436690767235774000539326626227603236597517189259018011042903842741855078948874388327030632832799630072006980122443651163940869222207453202446241211558043545420642151215850568961573564143130688834431852808539759277344336553841883403035178229462537020157821573732655231857635540989540332363823192198921711774494694036782961859208034038675758341115188241774391450773663840718804893582568685420116450313576333555094403192367203486510105610498727264721319865434354504091318595131451812764373104389725070049819870521762724940652146199592321423144397765467083517147493679861865527917158240806510637995001842959387991583501715807598837849622573985121298103263793762183224565942366853767991131401080431397323354490908249104991433258432988210339846981417157560108297065830652113470768036806953229719905999044512090872757762253510409023928887794246304832803191327104954785991801969678353214644411892606315266181674431935508170818754770508026540252941092182648582138575266881555841131985600221351588872103656960875150631875330029421186822218937755460272272912905042922597877106678738400006167721546384412923711935218284998243509208918016855727981564218581911974909857305703326676464607287574305653726027689823732597450844796495456480307715981539558277791393736017174229960273531027687194494449179397851446315973144353518504914139415573293820485421235081739125497498193087143966151329420459193801062314217741991840601803479498876910515579055548069538785400664533759818628464199052204528033062636956264909108276271159038569950512465299960628554438383303276385998007929228466595035512112452840875162290602620118577753137479493620554964010730013488531507354873539056029089335264007132747326219603117734339436733857591245081493357369116645412817881714540230547506671365182582848980995121391939956332413365567770980030819102720409971486874181346670060940510214626902804491596465453301077546954130887141653125448130611924078211886900560277818242350226961893443525476335735364856193632544177566139817039306328721669057222597452091929172621998444096461582694563802395028371216864465617852355651641277128269186886155727162014749340522769465957121983149433816221140069363074304441732847861017777438379770372317952554341072234455125555899986461838767649039724611679590181000350989286412041951635511087632042676129798265294258829511412758412627327907988075597518515768412647422094797218433093529726652100156625145529947451276315509176367302594621329301904028379542463232585503010967069227202270748634190054383026506812141421350571541750575086399076739463351462090828889349383764393992569006040673114220933121959362029829723511632593867722414779116295727807523950562515816031333593823115005186268905306583681299881086632632719806112715488587980934879129137074982305759290918629391950147211975860672700925477180257503377307993971345395326461952699965963856549175904583335857991020127132045839032008538788816336376851820837278851311752277696097879621423721625452145912818317982160441113116714069148271709810154577819392023115638719508050246797257924976057726259133285597263712112019057207714091486450740949267180358151575715140503976109638467555692989703835473141002238025834687673501297754132795320609711545064842121859364909979177668747744818828706323155158650328981642282882327468661065927321979071623846421534898524762167890502609980452664839295423572873439776804957740914495383915755654854590589764951985138010079580107837599457752991967005476022525520344539887125387801719607181640781248478472579124078245443616823452395706895142722697504318736332630111030534233358216093331912188066082683414289104151732472160533558499932245487307788229052523242348615315209769384610425828497149634753418375620030149157032796853018686315724884015266398356895636346574353217834931998255421173084677452970858395076164582296303244243282377374505170285606980678895217681981567107816334052667595394249262807569683261074953233905362230908070814559198373553777487420290390181429373115293346444681512129450975965343062842153194457271186149000176505581770953024688752632501197052094761594167687277844720001927891372518416228577837922844390843011811214963664246590336341945406571835447719124466212593926566203068885200555991212353637182269225317814587925937504414489339816086579008761650246351970458288954817937566810464746141051424988702521399368705093723054477341126413548928068410591077166778212383328102621855877513127211793444482014404257450830639447383637939062830089733062413806145894142276947479316657176231824721683506780764875734204915576282175839729751344789906965895325489403356156131674032764724692125057591162515296545685446334981143176702572956618447754874693784642337372389819206620485118943788682248072793520225017965453437572741639107919729529508129429222053477173041844779156739917384183117103625243957161527146690058147000026330104526435478659032907332054683388720787354447626479252976901709120078741837367350877133769776834963442524199499513883150748775374338494582597655609965559543180409201784971846854973706962120885243770138537576814166327224126344239821529416453780004925072627651507890850712659970367087266927643083772296859851691223050374627443108529343052730788652839773352460174635277032059381791253969156210636376258829375713738407544064689647831007045806134467312715911946084359358259877828352665311510650416232953290477721740835593497237585521380483050900096466760883015406128243087406455944318534137552201663058121110334531207450868243394321590435944303124312274713858420303901060709403152355561727679941600203939750998976293353258555756248089966918298642226775023601932579747267425782111197347094023574572222712125268523842958742735015636600931880454933389897415714905441825597380808715652814301026704602843168192303925352977957658624143927015497408792731310516361191375770089295648233236482982630246079758757677453771601024908046243018565241617566556001608591215345562676021926899828553778725831451440826545834844094784631787773747946535801699607794055687011923286080411309046293508718271259346687127666948738998245985277864995691654640294589350649643358098247659651651420909867552038083092032304873427034682887516040715466538346196112230137594515792526967436425319273900360386082364507626988274976187235754767628899507521148048525279508450339585708381304769378813211236742813194879502280663201700224603319896719706491637411758548518784840120548446725888514015627250198217190669608126277854859648183696214107217142149863619187747545096503089570994709343378569816744658282679119406119560378453978558392407612763441057667510243075598145527861678159496570625597550743065210853015979080733437360794328667578905334836695554868039134337201564988342208933999716414797469386969054800891930671380571715058573071488156499207140867582596028760564597824237702424698053280566327870419267684671162668794634869504645074202193739452592626686135529406247813612062026364981999994984051438682852589563422643287076632993048917234007254717641886853513723326678779217383475414800228033929973579361524127558295692768372312347989894462743304545667900620324205163962825884430854383072014956721064605332385372031432421126074244858450945804940818209276391400085404220235562602185643489941454399504109805918179488826280520664410863190016885681551692294862030107388971810077092905904807490924271410189335428184299959881696609938369616443815288772140852680887574882932587358099056707558170179491619061140019085537448827262009366856044755965574764856740081773817033073803054769736097865438593821872205839023444435088674998665060406458743460053318274362961778625180818931443632512051070946908135864405192295129324500788333987884293393424351263433652043858129128343452973086529097833006712617981303167943855357262969987403595704584522308563900989131794759487521263970783759448611394519602867512105616389760088800927461158608002078033415914517970730368351969777660763737853330120241201120469886092093390853657732223924124490515327809509558664594776344822699860748132973026309750288121035177231244650953496536930900186377640940943498373132513218620802148099226855029484546618147155574447096695301776904342720318927706047177845279391604722815343798035396798614243709566832214914654380145938292773933960327540480095522318166673803571839327570771420467238386246178039762923771312095807893638414479298025880655221292620936239306373134966401866195108115834711733120258058667276399927635790780638188130691563662741254312595899361196476261014055635033995231403231138196562363271989618372548453337020625634642239527669435683767613687119629218187545760816170530315907288287007123136663087227549186613957737305460659974378109876498024140112421427736680827513909593134041558262667895108467761186659576601659981780894149857549762843878561002637965431783136340251358141611519020964991335487331311150227006819301359295959716401971960536250335584799809634887180391116128135959685654788683258564378961731597620024196215528962979048198221994622694871374624447290934564700285376949588595916067892824910544125159963007813683674902093749157328962700286568293444313423473512392982591667395034259958689706972673325827359031212887466604514614878503461428277659916080903986525757172630818334944418201935333850712923457743755793440621787113300631060033240539916936826037461766385657588775802012293663532702671006812618251729146082025418928859352444910701382062115538277935652969145765020486432828655579347072096348073726921411868954673227677513356901901537236690368653891612916888878764075254934942497334271811788927599315967193547589880979245252623636590363200708544407845447973482918020820449266706344204375553250505275228337788870408040335319234076856301093477721256390886404131010738178533383160381352808281190408325644018420537467929926220376987180180611226244909092426419858208617511771137890516091403815750033664241560952163281971223350231674226005679412814062172196418427057843289598028823350598282081966662490358577899403331522748177769528436816300885317696947836905806710648280835980466988410981351586549069333195223943632879239905348109878302745001720654336990661177845543646877236318444647680691428280045510746866453928053994091087549391660957316197150331669683099294663491427987808422572206971488755806374803088629951184731871247772919100702275888934869394562895158029653721504096031077612898312635899648934102470360366450586872875890514068412381242473863854279082827338279733268855049358743031602747490631295723497426112215174171531336186224109138695006888358989623492763173164783400774608866555987333821138299287769114954921841920877716060684728746736818861675072210172611038306717878566948129487850489430630861699487987031605158841082823512741535385133658953329486294944950618685147791058046960390693726626703865129052011378108586161888869479576074135855345851517680519733344334952301203957707396237713160302428872005373209982530089776189731298178819446717311606472314762484575519287327828251271824468078242152164695678192940982389262849437602488522790036202193866964822156280936053731780408637272684266964219299468192149087017075333610947913818040632873875938482695355830773957614479972700034728801827852813895032179863452161110666088393140532269449054555278678944175792024400214507801920998044613825478058580484424164047750315360549065914300781583724301231375115622840158386442708907182848167575271238467824595343344496220100960710513706084618011875431207254913349942476171156333214089346091565615506003173842187015702261031019166038870646614388977363187809407115275281746895764015810470169652475577408916445686777171585005832699434016772021567677240681283665652641229824394651331973591997094032759385026695574702318132032437164205861410336065245369391600506449530601612678226489424373971667176612310489750318857321655549883421218028469125290861014855278152776256237504563757694977343368460156077270355096290493924870884062810679436224187047470083688426710225583024035998416459511224852726336326451140173952480861946358407837535568856223171155209472230654370926067973510005655493812245754837285457117973936157561676416928958052572975223385586113883221711073622658162188424431788574887981090266537934266642169909140565364322493013348679881548866286650523469972355747384248305904236771432787923164224038777643301926001922847783138376325361210253369358126240868666997382759773656822279072158324788886423693463961643633087301398142114303060087306661648036789840913359262934023043249749268878316436026810113095707161419128306865773235326396536773903176613613159655535849993986005651559219367599777179330197446881483711032065036931928945214026509154651843099365534933371834252984336799159394174662239003895276738133306177476295749438687169784537672194935065908757119177208754771071899379608947745126547575018711948707387367858902006173733210756933022163206284320656711920969505857611739616323262177089454262146098584102378132158177276022227381334954104810030732751077999489919779638835307344434575329759142637684054422647842160631227696469671564739990437159033239065607266441164386054048388471619121090087010191307260710441141432419767968285478855247794764818029597360494397004795960402927462992035720997619501403483153809477146010563334469988208221205872815107291829712119178764248803546723169165418522567292344291871281632325969654135485895771332083399112887759172261152733790103413620856145779923987783250835507301998184590259583559892605532996737704917224549353296833000022301815172265757875240588322490858212800897479093261007625787704286560069961762121768454789964407050662417102133274867962374302291553582007801411653480656474882306150033920689837947662550365498228053296628621179306284301704924023019857199789488368971830438051821744191476604297524372516834354112170386313794114220952958857980601529387527537990309388716835720957607152219002793792927863036372687658226812419933848081660216037221547101430073775377926990695871212892880190520316012858618254944133538207848834653116326504076424283908701210151942319616522684220037112304643006734420647477180213530701240988603533991526679238711017062218658835737812109351797756044256346949997872511254408545222748109148743072598696020402759411789425812818821599523596589791811440776533543217575952555361581280011638467203193465072968079907939637149617743121194020212975731251652537680173591015573381537720019524445436200718484756634154074423286210609976132434875488474345396659813387174660930205350702719529839432714253711557666000257844230310734295515339450604862227649666876240793243531929926392537310768921353525723210808898193391686682789482811704726245019484097009757609209837240900747179733407881418251958425980962417476101382526439551352593118850456362641883003385396524359974169313228947198783084276004013680747039040972384739458348961865397905941185993103561684368692194853820557803957738813606795499000851232594425297244866667668346414021899159445653094234406506678519484177667794704720419588220432953803263105374948831221803912796784461001397267538921951191178365876625280836900532490045974109470687729123282143046353372835199536482743258331191444590178096077828835837301118575436599589827245319253105881150263075425714939430244539318701799236081666113054262539958338979429716020703387678150330102801200959972522222808014235710947603519255444349299867678178910455590630159538097618759203589373419789623589311259839025983102671933041892151096891562250696591198283234555030590817307351955037216658702880539921385760370353771051780212801295668419841403628727256232144287543022109094727210734741349755141907370433182766261772759968888260272252471336833534528166927795913288613817663498577289369009657495622871030243625907724122190943008717556926257580657099120166596224360802428700245473620363948412559548817272724736534677836472019183039987176270375157246499222894679323226936191776416146187956139566995677830682903165896994307673335082349907906241002025061340573443006957454746821756904416515406365846804636926212742110753990421887161276177870142588648257752238891845995233762923779155857445494773612955259522265786364621183775984737003479714082069941455807190802135907322692331008317595106590191212947954086036407573587502058902087045796700070552625058114206639074592152733094068236494415908910092202966805233252661989113118420162916310768940847235643668081821686572196882683584027855007828040434537101836510969517823357430305048526537380735310741859177056103973950626403554422751561011072617793706347238049906669221619711942591204450846417463835899382399465173955090008594799901360266742614942900664671150671754221770387745076735637421547829059110126191575558702389570014051178226469899449179083017954758767601680941001358376135785913569244556477644641786671153919513576961048649224900834467154863830544779143300976804868783481846727337584368927243104474068076852786255851650920882638132336231487333367147645204508766276149503899495048095604609896043291233583488599902945264002849942808786240398118148847673012167541611066299955536681931232874257020637383520200868636913117334697317412191536332467453256308713473027921749562270146873258678917345583799643513588009593508775563562488104938529990076751355135277924124292774885658885665132473025147102105753525165118148509027504768455182520963318990685276144351382136621523688905787866994322888160283774820355060160298940091197138501798716836337441392759736440170070147637066557035043381211135764150184518214136198234951596010647527125759351853043328755377830575095674254426847122196187091785607839361445113833356491032564057338986671781239722375193164306170138595394743678433926709867124522111896908402363274114966012434830989299417380305884171666130730400675883804321115553794406054977217059428215148861656727712409033877277456290971101348851843741186956554497457368452180669829110450580042998879538990278043835962824094218605562877884288021275538848037286400194416142574999042720095952046541705981049899675045119364711727722204361026140797508096869751766002371877483480161203102346805671126447661237476278521902412025699435347162266608936752198331118135111465038548950251206557726361454736044268594980743969323312971273771573470997139522911826534851555871373366291202427143025037632695013509116129529937858646813072264860082708813335381937036825988678933212383270532976258573827900978264605455985551318366888446282651337984916678394097613537662517982582496634587719501243840403591408492097337546424744881761840700235695801774101776969250778148933866725578985645898510568919609243988415692806969833522402256345704973122452693541938370048431833571965166267215755241934019330990183193091965829209696562476676836596470195957547393455143374137087615173236772042273856742791706982045499530959188724349395240944416789988463198455048523936629720797774528143994182567894577957125524268260899408633173715388962628896294021121088844273765686245276121303710173007851357154045330415079594477761435974378037424366469732471384104921243141389035790924160364063140381498314819052517209371039640268089948325722979545640427017577229041732347960736187878899133183058430693948259613187138164234672187308451338772190869751049428437693250249816566738162606159417682525099937416728839517440669325496534031014522253161890092353764863784828813442098700480962271712264074895719390029185733074601043607291909457679946149292904279816877294264877299528584346477753869069501489841339245403941446802636254021186143170312511175776428299146445334089209769616990983726523617687456058947049681701369749095230720826828878907301900182534258053434217059287139317379931424108526473909482845964180936141384758311361305761084623668372376959134926158245162215521348792441450417568480641206365201703863301295327776990231186480200675569056822950163549319923059142463962170253297475731140942201801993680350264956369558664259067626856873721103391567938398957655651931778830002416135395624377778408017488193730950206999008908993280883974303677365955248913001566332940779071396154645340887915103006513219344866732482759079468078798194250195826223203951312520141099605312606965554042486705499867869230217469890095478507256729787947698888310934874644264007181831603316555115342761556224054744733780492462149521332585276988473362691826491743389878247892784689188280546699823036899397834137475870258057163494135684339293960681920617733317917382085624364336353598634944968907810640196740744365836670715869245211829978938040771375012908586465789057714268335827689785547176871844277261205092664861020515356428406323684818072879407171279668200607275595559040402331787494473464547606281895415121391629184442976510669479693540168660100551960776873353965116149309375709685545593815137895690392510149532656281470119983269922000663928753747131352364215892651262040728877165783584052196460541054354436421665622445650429990102565869272791427529311720827939377513261060528812353734510683729398935808712438693859343891757133763007203197608166044646839377258069092372975234867029169104263692620901996052041210240776481903160140858635584276095370865581642739953493465463145040401995285372520049578052546562511541092524379913262627136090994029022620628367521323050651839340574501120993414649184333236465693717259144893241590062420206128857329261335968087265000456282845575745965921205303413101118275013069615098355156320043107846019065654938065425252291619918199596027523277022498557388248998827074659363557685825605180689642853768507720122203479209939361792682065901421656159253067379445689490708532635681968318617722682499114726157320358076462981162440133167378927886892290325933498617970219949819257396176730758344170985592221701718257127775344915082052784309046194608352174020058386728497094110232669539214454610662150064106747402070091899119513764669044812672536915371622907913854039375600778351533741677479421003840023089518509945487790393461222208650601605003517762648316111533255877050735412792499098593734737870811942530551214369797499149518605359204038302357163527276308746932196221900642608861836761033460022554774778136410126919065696864950126883762969072339612762872230411418136100602640440300359969889199458273976241146137448040596970625767647237660655416185746905272292382282751867991569833907476711461030227766060200612468764777288190967916133540198814027579921741676787992316039635694928515136336472195406111717673873725557285229400543617851765023075446938693078734991103521825329297260445532107978877114498988709115112372506042387537348412570860640690520584521227545338480082053024504565176695185769132000428167580549248117805198326460324457928297301291053183856368212062155312886685649565126138922613670640939533345705269869596923503530942245438652786776730275404027022463844835532399147513634410440500923303612714960813554905315390210022995957565837053812619656831442860579566966221547216956208700137277685369608407048333251327931122325071486302069512453950037357233468070946564830892098015348787056334910923660575540508641115214414814346304372732710450277686619531078583233348578402971609252153260925589326556006721243594642550659967717703884453961816328796144608177892721718369088801267782074301064225246348074543004764928855534090621851536543554741254761527697726677697727770583158014121856880117050283652755432148034880044429799980621579045641619572127845089284898064264974270905791290692178072987694779751124473059914060506299468942809310342164166299356148281309988707452927160484336308184041264696379258430941854422163590845761460785585624738149314270782662151855416038702068769804617474008083243436653823545551094494984310934947599446726736653525176627067721941831919771963780157021699336750837600571634546436717767233875886434056448715669643210412825956453498413884128904206820470076155969168430389993483667935425492103281133631847225923055543830582069416756299920133731754891220372303490726810685344540359935618235763128377676406310131253352121419946118693508331765878520471123643312267651299641713252175135532618676819423387903654689080018271352835848884441117612341011799187092365071848578562210211040097769944531217950224795780695065329659403839873699072407976790408267940076187295478359634927939045769736616434053597922192858705749574816966940623342726197335181366260637359825755524965098072601236682836059283418558480269584137725589708837899429105498003311138846034019391661221866960584915714857335682861495000190975911252188003964197621635593757437180114805594422987304181968080856472657135476128316292004498803154021055305970766663627493283089168809323592900817874119857383171926167288349184024297212904349655269427264025596414635259143484006758676903503823205729341329815935330444464968294413673234421583807616948312193331198190610961429522015361702985751055943264614685054526849757648078080092213358113781977492717685450755383287688744745915937311624706010912446098294248412875202244625944776387494919978404468292573609685345498432665368628444893657041118177938064416165312236002149187687694673984075171763075168498563592014868929431059402024579696229245666448819675762943495353263821716133957577907663707645695702597388004384158058943361371065518599876007549241872117148892952217377211460811543449826654798725800566747240511220073834592715757277152185899469481179406444663994323700442911407472181802248258377360173466853007449855647154200361235933973129144585915228874087195087086322188372882628228846318437172619033057771476515641438223067918473860391476831081413582757558536435977216500282778037134228696887873497950960311088991961433866640684506974207877002805093672033872326296378560386532164323488155575570184690890746478791224363755566686780676105449550172607911429308312857612544819444494732448190937953690082063846316782250648095318104065702543276043857035059228189198780658654121842992172737209551032422510797180778330426090867942734289557355592527238055114404380012390416877164451802264916816419274011064516224311017000566911217331894234005479596846698042980173625704067332821299621536848814041021944634246462207455756439604529853130714090846084996537678037932018991408658146621753193376659701143306086250098295669176388460567629729314649114937046244693519840395344491351411936679333019366176636525551491749823079870722808608596261126605042892969665356525166888855721122768027727437089173896397722575648905334010388559311256799915165890250164869614272070059160561661597024519890518329692789355503039346812197615821839804839605625230914626384473862960398489243861872985077759287927220685548072104978176532862101874767668972488411395603494803767270363169210073508340738652616845074824964485974281349364803724261167042668708319250409976153190768557703274217850100064419841242073964001396036015838105659284136845741191027364202741637234882145241013477165296031284086584197879511165115298278146203791398550063999603265912485253084936903131301007999771913622308660110999291428712493885416120380204113401888872196934779044975274542880728035093058287544207551348166609278793535665212556201399882496284787262144323628536765025914504683776352825876521391564809721419296755493843755826002531685363567313792624758780494459441834291727569883762262618463654527434976624111384513054814498363117897844897320767195087841586188796929558197332506999514026015116755297505754378102422389579257865621284327312022007167305740692868693639301867659582513264991459502609170693475194089753574640168308117988464524736189560564794263580705625632811892696630264795359510971276591362331808669215357886078127599105371714022045061860753748663063505914839164676567232057145168861707909846959322367249467375830996070425892204815507991327520885837811176852142693347869218952406226579210436203488529262679840139532164587911515790504605797108389833718640380244175113472264725470107947939969535546696197267632552299146549334996632341859514503609803440922122067125676987234279407088570704742931733291885238967219713539244924261786411886377909628144869178694681775917171506691114800207594320120619696377951032270890295660855622254526026104607361313688690092817210681986185537809820184711541636303262656992834241550236009780464171085255376127289053350455061356841437758544296779770146602943876872251153638011917581540281208182556064854107879335989210644272448986189616294134180012951306836386092941000831366733721530083526962357371753307386533382048421903081864491840937239440334052449095545580164064607615810103017674884750176619086929460987692016912021816882910408707095609514704169211470274133900522533408348128703530310239196999785974139085936054335996970756044601342424536824960987725813110247327985620721265724990034682938868723048955622532044636026398542252584164643242716114198178024825955635449072192265838636626637508359443148776351561457107455280161596770484427141944351832756984075526779264112617652506159652354571879566731709133193587616282559207830801852068901515047133403861003100559148178521103847545429333891884441205179439699701941126951195265649195941899754183932346474242907027188752235343936736336632003072327470374071239825620246626519740901997624520561985576257600087081730832883443818310700545144935458854226785785519153722923795554943334101744201696000906964156127322977702212179518683763590822551288164700219923488640439591530184640047143211863606225270115411222838027785389110984902013427410141215597699654388771974853764311582298385331230717511329619045590079380642766958190148426279912217929479873489018684716765038273285520590829845298062592503521284519259279865935061329619467962523739725655841578537445675589980324054921869628884903325608514553443916602262577755129162007727968526293879375304541810807292858919897153817973434961872329276147478501926114504132748732429705834084711123337462746172746265824153242710593225062553023147387592517247873228814914559156050363345754242337791603749525024930223514819613811625639114156103268449580725082734317659440540982697652693445798634797097431244982719331138638731596363612186234972614095560799206283169994200720548115253533939460768500199098865538614334957816500899616490796781429011483876456821749140756237676184537751440314754112067601607264605568592577993220703373333989163695043466906948284366299800374145276277165476238255461708831898108688068478537055364804693509588180253605297407935386765111950793732820831462689600710751755206144337841145499501364324463281933463890509365457145069008644834401804283633905135781572739733345372842633721740657757710798305175557210367959769018899584941301959995730179012401939086813565855396619413717944876320798688003716073032205474235722668968018821234243918859841689722776521940324932273147936692340048489760590379580946960417542796137825537812239476461478329269765451622902817011004378460387565441517394339600489153188175766505009516974024156447712936566142539493688842305174001299205568542898538979426699567770270891465137368922061044154816621568042198384767308717875902792091759006952734566820265133731115180001814341209626016586298210766635233617740078377834237091526440630540718078433580610729611055500204151316963730468492133568372654003075098290893646120478911147530370498939528334578240828173864413227100029683119402033234564208264732762338302946393789983758365545599193408662350909679611340048670271231765266637107787251118603540375544874186935197336566217723592293967764632515620234875701137957120962377234313702120310049651521119760131764194082034373485128526029133349151250831198028501778557107253731491392157091051309650598859999315608636554774035518981667335358800482146650997414337611827777233519107412175728415925808725913150746060256349037772633739144613770380213183474473011130326702969173350477016321066162278300272692833655840117914194478087482533607144032962522857750098085996090409363126356213281620714534061042241120830100085872642521122624801426475194261843258533867538740547434910727100497542811594660171361225904401589916002298278017960351940800465135347526987776095278399843680869089891978396935321799801391354425527179102253970108106321430485113782914985113819691430434975001899806816444121232733283071928243624067331965546926778511931527751134464689055042481133614349846048490512583456832664415284897139723760403282126602535166939140820499473204860216277597917712347510975024030789357599377150950217516935558270725339118923340702238320775858021371747783787783910152341320984894234596136923404979982793041444631627072147961174569757196812392919137409829258055619552074342432959828989805292333664154192563673806894942014712413405250722040617943552525552250087487900865683145428351677505422948032747830440564385815919526667582829297052261276287110401348017872248017896840524079243605827424674430767216452703134513541676496689012747868010102951338626986497482121186290403376915685762406992963724930972016287072001898354236903641492702369619385473724803298550451120891928798298744678641291594175316756025334353106267452545071141814832398806072971402347255207134907983989823552687239509093656678789923837125789762487559904432288953883773173489411227570714109597900479193010467407504114353817824646307959895556389918847737813413470702467473621120489862269918885174562517325193413520381158633501239130544419100736284475675141610504109735058527620444891909789019843154852805339857778443139338839943104444656692445508859463140817512203313906815965925105468580131338381521764182104334297888261196304431113887962587460902261309008499754303957712432306169062629194039214397402708947776637024881554993224588259790206312574369109463932528062416424768684954553249380176393716156368478598237159023854212658406153672286071317026747401311452610637653833903159219434698176053583803106128878520515469336392410884676320095670897183674905781630851581381619668822220475704375906143380407258538620835651769984267745231958241826836982701602374149383634966293515768540613973427464708996856181701605511048809715548591186171896680259735417054239851355600187203350790609464212711439931960465274240508822253597734815191354385712532585404939460108657937980586201433660788252197178090258173708709164604527279771535099103407364250203863867182205228796944583876529479510486607173902293274554267856697768659399234168341222746630150621553205026553414609952493560508549217565491348309589065361756938176374736441833789742297007035452066631709296075919896277324230902523974438610142630986877339138825186843165010279649114977375828889134503411488659486702154921010843280807834280894172980089832975369406449699031253998639195816014689952208806622854084148642747862819755466292788146216071713818801808405720847158689068369193933818642784545379567192723979723646516675920110579956639625985355127635587681402134098290162968734298507924718460568748283313812591619624761569028759010727331032991406238646083333786382579263023915900035576090324772813388873391780969666014696150317542267511259933155296742133363002229649064809345820081810618021002276645804002782133367585730190113717546727630590443531313190360924890972464279284555499134900051802957070829190525567818899138996251386623193800536113462242946102489540724048571232566288889317221164329478161905548680549434410340906807160880282279596869501336438142682521704728708630101373011552368614169083756757476372397631857570381094433905645644685241830281481079983769185121272019350440418046047216269394457883770901059746932197205581140787759897720720096893822493032368305158626572811146379969831375179376232151112523497343052406221052442343537329056551634066695061658928782187077567941760807129737813351871179316500331555238224877306534441794534153952024244497034101208740721881093882681675120422994049481794494727328947701115741394412284555218284249222406587526891722727806071167540469730080370396187877966948825556146743843925701158295466613586786718976612973112672000729715536130275035561678177654422874421147298816148027052438068176535732755786025058470840132088379328160087690813004924914736825170353822196190390149995234953871059973511434782923394991879366086923013755963685323738067035911442432685615121094042595826393016780171286692392832310576588517140202111969570647998140315056330451415644146231637638099044028162569175764891425697141635984393174332702378123369380430128926263753826677950341693343236075002481757418087503884750949394548962097404854426356371649959499209808842947903636662975260032438563529458447289445471662092974954966168774141208821304770228161164560440072363515811497297392189667373826472047226422212420165601502849713063327958143025160136948255670147809357908896571349261581613469018069650895563101212184918058479227206918716963163300448580201028606578585912699746376617414639341595695395542033146280265189511679380745733157598460861737026878676029436777805002446733913324316698803540732323882818475010516413311895370364884226902704780527424906034920829547550540034571601840725745369381455311753542107265578356154998744474804273234578800618731493415660463529797794550753593047956872093167245365472083816858556060438019770307642460834898761013457093948770029461757920619525492557571090385251714885252656710453498134198033906415298763436954202560802776144219143189213939088345431317696851018401038444723489488695209819435319065065553546173358140455448378847525262539496658699920584176527801253410338964698186424300341467913806190280596078548880107897055169462152287730901044674624979799926271209516847795684825833414022664772108433624375937416105367340419547389641978954253350363018614009515347669614762556518738232924685473569358028960115367917873035531593783630822486151777705415775765617593585120166929431111388635821596676188303261041646517148469793854226216871614001223782137797741312689772667129920259220174087700769562834739322010881593562862819285635718933849588506038531581797606794798408783609759601497334205727046035217906056476032855692762734951822032361441125841824262477120120357763888959743182328278713146080535335744942976217967890345681698895535185044783256163807094769516990862471000197488092050095219436323787197648703392238115403634754886268459561597551937654101150140670012269274743938885899438597302454148010612359080362745852884935632515853843832424932526660875889083187007091002373771065769850564339288543376583425967506537150053335144899082938877373520514593330496265314151413861244379358850709446880454869753581702129084907873478068143663233228194158273456713564431715379678180581958524648400840329099819437817181773023170039897330504953873561162610239994332597801268934326055847102787649010709234438846340117355568659035852449193701810416262085042992586974358170981338940459344719374938776242324098528327622666049423851297094532455862521036008292866497241749191419889661295580767709795947953060131191590117739431042090490794244488685130868444937059090260061206494257447103535476578592427081304106185462198818300906345881870387558562749115873754210646679513464875867715438380185213482819158124625993351601989355951679689328522058247994210345127158771633452229954188396804488355297533612868372259353900792016669413390911687588039888288692160023732573615882071635162713328105181876021048521806755266486739089009071951380586267351243122156916379022773287054108420378415256832887180469879525130732663402785190594173389203585403956770356113293544825856282876106106982297214209619935093313121711878910787668720445488760894101747986471378824621539559333332755620094395804345379197822805903959599274369137937786649409640487778417483364326840262829324062600819080818043909145563519368560630450891422896452199877988493474777291327972660276584016678901364905087411421268619698620441269652829810870454798615595453380212011556469799767857389201862435993267776894540605082188382279098336271671244900267611784982643770330020818445900097172352043319947082420987715144497510170556430295428218196700092025156158441742059336581481349026931115170938722600264586305613256057925609273322655793462808056834439213736884056504343073965740610177793701414246154930707413608054421002956000956635889778992676305177187819437067614982175641865901161608654086353915130392013168057690341725964536923508064174465623515239290504094799531840748621512105618338545661766526063937136588025216662235761322019417013726649660732520107719479312652827633024138051649071745659648537483546691945235803153019691604809946068149040378198297323609300871357607986214254220964190043679054790499300783724215819545354183711293686584305538427176280352791288211293083515756565999447417884383815651484342298587042455924346932952328218035083337262837918302165918361815542171574484657784201343299825945668845582661719790121808494803324487872581837748055222681510113717453684178702802744524429054745182346749195641885512444213377835214238659799259882032870851093383868299065719946149062902574276860388505110326385445404191849588665385450405713236296810691468148478696591668618427567984600418687622980555629630459532279230516167215919686758495236352989357885077460815373214546429847923105116763577494946229525694976603594739624309953433104049942096778838270027144784940690370732491064441516960532565605867787574174721108274357743151940607579835636291433263978122189462874477981198072256467146640548501310096567863148800903037493388753641831651349825466946733161181233648543976493250261795493572043054021829748712511074040116114058999110930624923128131163405492625713567218186289327861388337180285350565035919527414008695109261675414767926680321092374670872136062783329223864136195941213392780361182763241060047409711110481400036233427145144833346416754663546997314947566434236594934968458845515241507563766050866328274247941360628760412906449138285194564026431532258586240431418386695906332450630003922131926476259626915109044576953014440546180378575030366862124622786397527466678701210033929848733750144756003221006223580293437749550320370127384681630610265703008722754629667968808905871276763610662257223522297392064430935243272281008599730951325286306011054979156447918450046180467624089289256809129305929606423570210615246462050232489665939873249339673769520239917608984745718435319366465291258480644801965201628387951894993367592414856261369959453072872545324632915291101287637706055706095313775277518679232921349552451330898679691651290738413021675732386375758200803635757280027544903279530799007994425411087256931880146679355958346764328688769666100973957499678365933978463469599489506104903836474095046952260638580467580730699122904740898791668721171475276447116044019527181695082897335371485309289370463844208932997711258568408466083399340456890267875160087754612679880154658565220612109534907967073655397025761994313766399606060611064069593308281718764260435734253617569437848484952501082664883951597004905983808121052211110919433239511360514464598342107990580820937164645231277040231600721385437234612672609978703856570919985075956346132484601884098501942876879022687345565005191215465440638292538512763176639220509383452043007730170299403626154340013227639109129883278639204123004455516840548898090807791746360924393349126411642400938807463566072623366958427645836982687348158819610585718357674620096505260659292635482914990457683072108932458570737016607173981944850288426039636607460311847862258310565808708703055675958613417007454029656876347741764310517510367328692455585820823720386017817394051751304379948688223200443780431031709210342616749980000730160948145863744887785222730763304953839443453827706087607635420984450083062476302535727810327834617669705442871553153400164970766571959850417481990872014908756860377835919947193433527729472855379257876848323011018593658007172911869676176550537750302930338307064489128114120255061508964110076238245744886551825810581403453201247547232690875475070785776597325428444593530449920700145387489482265564422236963655441942254413382122254774975354946248276805333369832841561386923634433585538684711114304982483989918031654586382893537991305352228334301379533729540162576232280811384994918761441413229337671065634925288145282395062090223578766846501166600973827536604054469416534222390521083145858470355293522199282727605748212660652913855303455497445514703449394868634294596584310241907859236802245607639367841662705185551787029040735573046206396924533077957822459497104201880430001838814290081730394505073427870131244668600927785818110409115117293748736278878749074652855654347488868310641100510230208751077689187815256227352515503795324448577872776170019648537035551676552091193393437628662846198440262952521836785223674751088097815070989784130862458815226609635514018744958369269177990471207264949057372642860052114035812310760066995185361248627467563758962252991164960668765082617341784847893372950567390078786179253514406210453662506404637288156982323175005962610809219552111508593029556549675388626129723399146283584760486276270273097392020014322487075823373549152460856082103288829741839064788699232736913600488374366152235170584377055452108155133612621429118156153017588825735948925071088792621286413924433093837973338678061317952373152667738208580247014335270092438032669517421195076708843263464427491275589077468635821621660427413151702124585860562336314931646469139465624974717419583542186077487110573384584336899396459137406033821593522435947516262391886853078228217639832373061802042465604775279431047961897242995330297924974816840528937910449470045908649918727273454135081019838818646736093925719305119686456018557824502182310658894379865224320506773799661969554724405859224179530068204517953700434724517628935667705084902131077366257516973355274623029430312035962609534235743972496592110106578178261087453188748031874308235736991951563409571627009924449297491054898515196586647401482251063353679497371425102293418825851173719944991150975837461301055050641977215319293548753711916302620303285886585284801935092258757755974252765840117213423236480840271433563675420463751825525249443296570438613878659019657388028684018940876728167141370336617326501205786539157807030887142615190750014925761129276751930967284539711602136063030905422439663206743235827978893323244057791992784846333397777376559018705748068286783479656241461028995084873996929707504327530299728722973279344429886464127253481606037797072982991730292963086958019963124133049393504933254123550710544611825911411164545347103298810478440677801380771314654000993863064812666143308582068113958383191695455582594268957698414288937434670841079463189325391069639557807060212459748982935646135607889834724199794785643620420946134123876131988653523583129968622689486084084566556068769545012744866314050547353517468730098063227804689122468214608067276277084024022661554850240089528916571176174390203375848778429112896232470591918746910420058483261406773337510271956539946971625172483122306339193287079838007484857265161234349332733566644733585564302352808839243482787608861649432893991663992104883078477770480457284914563033532650700295889062659154985094079727675671297950100982294762289618915914415200322838787734851309790810191292672271037788980539641563623641691549857684083984688616843754070651210390625061281076637990479088796747780697384731704752534421563903872012388063236880370179493089549007763315230635483742568166533616066419800301882871237674818983302468363714883092592833759022789425880600872860388591688497306939480205112217663591382515242786700944069423551202015683777788518246700256517085092496237477268136942843500629388144299879053010562173754591826799732177350293689280652100253962688074980926434580116557158867004435039765053234782873273688408635400027406767838219635222265392909398073673913640828987220177767471681181958561337215831190546829360832369761134502817578302029348459829250008956826302712632958662921476531422333517930933879513570953463771836840924444220963193312956203055755173400679737406141621079236334238056468500920371671526425563718538895714164197723874226105966673969971731681694154350952831935564177056686222152179911513556397071433128936575538446483262012064243380169558626985610224606460693307938478588143674070005997697036490192733288261353293631124036506986521606389872502672380874033967443978302582968942568967418643361349794752455262914265228424192430833881035800537870239995421721136865502753413622116931406946695131869281025747959856051450050217159133177516099578655519818861932112821107094422872404424811534060558959583558152320121846058205635926993034788511320686266275887714460359966561084307256965005630644891875994665967728471715395736121081808415472731426617489331341746326623542220726001460127012069346395205644455432916629866607830890681187900908152950636267820756143888157813511346953663038784120923469428687308393204323338727754968052103028215443247233888452153437272501285897476914608083144041258681815400491877722878698018534545370065266556491709154295227567092222174741120627206566229898060328916720687436549482461086973672255474048128892424718543236057534116728507575520571311566979545848873987422281358879858407831350605482905514827852948911219053831956242287194847594078593980479010941940706717644390327307121358873850499936388382055016834027774960702768448802819122206368886368110435695293006521955282615269912716372773884189932871305634646882273982887631986457098363089177864870866761854856800476725526754147428510281458074031529921978145577568436811101853174981670164266478840902626828244482580275320945499151045185177165463118049045679857132575281179136562781581112888165622858760308759749638494352756766121689592614850307853620452745077529506310124803418045840594329260798544356200937080918215239203717906781219922804960697382387433126267303067959439609549571895772179155973005886936468455766760924509060882022122357192545367151918348725874239194108904441159599327600445065562064611646556654875942473692523369559930303550958176261762318495619064948396730020377638743693439998294302091470736189479326927624451865602395590537051289781634554233201149759948962784243274837880327014186769526211809750064051497558896502930048676052080104915378854139094245316917199876289412772211294645682948602814931815602496778879498137772162293594378110044480607976724292762495107841534464291508427645200020427694706980417758322090970202916573472515829046309103590378429775726517208772447409522671663060054697163879431711968734846887381866567512792985750163634113146275304990191356468238043299706957701507893377286580357127909137674208056554936246464126002437968454377733902647251281941632007684873625176406596754069362175887930785591647877727473927200291034294956244766130820072925073452917076422662104767303786316995423745511745652202278332409680352466766319086101120674585628731741351116229207886513294124481547162818207987716834634132236223411778823102765982510935889235916205510876329808799316517252893800123781743489683215159056249334737020683223210011863739577056747386710217321237522432524162635803437625360680866916357159455152781780392177432282343663377281118639051189307590166665074295275838400854463541931719053136365972490515840910658220181473479902235906713814690511605192230126948231611341743994471483304086248426913950233671341242512386402665725813094396762193965540738652422989787978219863791829970955792474732030323911641044590690797786231551834959303530592378981751589145765040802510947912342175848284188195013854616568030175503558005494489488487135160537559340234574897951660244233832140603009593710558845705251570426628460035440282367876855098267816176552037579565548167789603892749835560879154117774942357340076416109329400389998219926725708695732606877497422480202330752518765025596842076069322998858757989889646074438178817008154889522651672283404527721910699141576463948523112679473086580319507645519767562895742888179681209002638714525785831527761510908863174024369568056787301523542780479341426649522383370711751126537550394237209878466804913947344653071407962259728713050307725871487557050258257346686661380235142605611619740554343654869800544487929597028759035225840978268359866644658604569424139072909526624993290297344056816068380572662605727708840707347149606006456145407073443278251408747427550672230484535700609221439000299298160821171704791761450519100813267037521493074056785331110605835291278100739174994919784511291591368110739405517520801963053935074024850955377250036705466516233043042508744232426240463211507899733692998540704165626104197670020241509489241185609240963760442961200236459070644977062720791901923596480704892363697986019828308728422856475235316288279132429552481444750552190967204608068954518171220493032185374062724742151974030576904360268636078079200477623242955182947352202724437633902772139208776706571624163975178585925442692342853527432885633685078965196207251941655606187037055021846284543425785038300009537451829295844046491883868579348396115129716058166574509670367749583666669312188176367964494361713041603724305065848513174926405585519401800518090847521186822461697614924323831948643441590855801107307031120150224341607315792952875293683582039700338911211417068521936658978945950315438958901530382714300192958907414994359289408309707707836287591448403704503861896697581120185231923186865996803858381237032915620757883594878094168820553160512819015264759280757495815456422134145937816705699286829989561198235383715788048047870458417539466549769017322031089007030336291176730844845037214566964440146954517385743415781015861878383927855260939913057025557555906094705149809348777332007279757303824598946680968082222134848587382299928179409082566520958165547247524456674369759447468637633242890426977610679193391098330042231029372829879890320939109268283630617361017387812367989864514931170243712828588263048629888449220741564060714705913740552466575697187021735528724543942771480917936443765063786186132434863579741125852086345992780368879249835436329845768765016506511534500869572123950754478568317363155715352704652423525973751340882546160966144074667551422683603195980107215246355106917187133573168548563128085783443562367095965094994696882066118511808603420282133180124941099150260143545001743273079362511307029825049941799428445114647932915459955590958780762163666859179106543596606525352532027365072598912125568684280207724648772201099663182955955290339331228436486447597356085984076094729838954243393262315323991898185226418083129633354635687482886346561850481063228880559673784456200094146560349928087940511531005758712955257196411150685034077371060438037125957559698594936205847751202635494734753474818926225419035267161442928489985753674069216527163008606065437373682355658862648634368915321809557220445677713736831045807558452961283283260631962972852796667436297480082131862792186904428434263073576070399966943078950814726973025381737569492275179535432615691204059483286094999236641228788122641914850485632807206641855705952037503032291689448942757830609091085241060140068327420558396977382315073499610875876370425556496408685507194225634496673243065625925047458176273328181601701969816654242637876360145303594653845032547667499973734083566513818602515652028363738917101654541488267444800910570418616262683797112088614135727961109908829297022969212818097879895139150427093678644498319642013456683390877594300644248562301212461451169792193963440950808322928129427043659914648274998437594211302041829730841717881309037955854560324717081919530277146579455547554475428443440813938890860977601785738930751866190650501807716500184074432585402418436050111824299070232341724367452536534959479906333454075437181269939983371921848541873597984534893459226851506818266249007802933501265882497422624188535252663670282766249934982948874833106176420842901692305289960897860413006510902817980504058710767117904113021748279668235300196022025318557678984331758680637835996879160153892222023657576558158661140919939486159920915991755334178303334764313163501270539069707932656781241590643428472136023521823674121473312449994433415591527431593168747788253315509277033620290122259779480985539220006452716228085539827890658423344755282127651765057266326769114107503484587189699643487577513847914818363510062146681858509634888708145697672202016799119946241777668890791713686594596072646853881077878300216136827669702622345941873747673353799888440342704680304255169412715873932039844437460454781611305662517641275982118193966110185056288055594256606003231211618099462212930100247091334715068226843045868030090424286168202556214094608790006519109949557081581650582898334073946608445756578063669027284346201858732825292479650528668140850353851983752363745192562279549029055790703028395010485483592983454281448730435804705331508151050300152142811717539364913316617262123540552786330800208317705563029496359420165433309409417719632623411938710516157010179805355167937086029136675698609712412036858381295769530779814136570017476135696698614606849143969957383763169582460251334210807262171360194301808720988855141502416381832597525959316553186583311712685794152720661221842266141182515465748487831261034783454674925830872998544742120644509523324505087743149616655525179716802099172002640937492190756993689633028139164720896358177173555584859270652450486251641954055080134351032338981337830249770182275490638149996472333407961304146973947637265086927334710841568560843092131624043462986392084166005590459850649124350526476606760034444161818640367008377411410109432058895559865867007786367189694408962232137403411359719913313594655368544669236765258901210841377743248219181274784789228726489297003237187345615798159983483910041260105074696459943033197881063491392381249050306143340791832800406390709867259619709831126596014747372533052685371774214655400587392462372761736490519871336806772395257078136068668326139501432950947485159472466752720168431658660880751276858475554118438116901162200555211348448896066825922743131900796301158708467011765493539304656335622531124472779666900583119061610197266307397054253143981845737944948678013461821787593907699960202908396567728784690573640156401504769644899394754147460833991869688927115694234549265124664550779255402810503762203596753055860185649205606287909076945333920880884947782889485112215474323019138324556299388102061449026687601020775321091568497783074085964985796715261701003947549453991769879132354655010640735581699940975624814996744327842920276264418979391815839456270817330158216022551965989876937616401986120746675504886111085572676450705262244613022233585207227362048505728923881588493875453522918639971438088406175728622095012250651586310425888413435543197372985621775307202262947555248304444534043488887858117034134534252235431940787797284676018158322709774518092934219318981581248283265895004070485520609989378390034191416304463916388054965878650137504634169565515661829887863070584230696766025405302481147100789978421183048901046405689653970288559553092555863605215895737511408956490584415677493710585964801431587461449125054925319116465382158519737009328019453032057262845265804604633781663142993307664664653076059054896288872418971606022588261757753992205513150937720062486308556282049357575272499556708922163423398360256532873102919400704117691922085001511673567010195897100179701957812089291096941775436990436820256302405482262540190569650771058157424072149633956036527028333440730575007367456226058464988611510168961218111905847171446106871976101745658737379674069713742323875383903031720020020720592848878512391174647167374373792328388196620168762219134623389376259952702567213862211245898021213050140728890430032253550409586681872413936993819306914874471718664618311194260316166407037731648700186479960024304400324224180940227853330901150988087067826883531720076752255313800881878043169019007280483179928741412547612308960683309582837766768828757868868309297600101197453389833195258861963013291709438581661537417179449631917715431250695985348128568461937766989427745917091880252001274990555940728969659479333167224362156789677696670803522903901848573080627567086765862710476940920356559302535274341896592700222704923318682999156093641375700498853730459639615273462939697495174806269645179301871998678853758141597579931480660855723256837430528276417567005028804048942989958094810353483393414492788592526219241554723199714338508663732092663272824351493364070458968385234562474436117525676698776759722343920635750747155291810276261401299248042288399029787992541851749912963028399072963558857989059331779590876907390564602562353356722155225946883829845288292296627513716242217295467867071584092418408414755758253938524096330205134970474069539956789798172786092046228683973577981511186815265988460694975896548131465115039262637774951376155724819511611987725034456471073851343592735553871246237559819381321423844158192907004638977168388720791636174143249707910965816274642971707287172514274589835689709553462682016908535610894489840710058192030217694512077177458879551951047338418473998079630676788584516757572990430697154264238349800987086993367091210839445350624592243231234827854966037465718801489293794514787054060792457590060121962212392872001721558866634573497140953372115165598575794172441988902616701610161155783431502546032878119842402748460851072240667677876085524761777383308950261006438835055020545632434616785945194179566987496851524488384751361818066710831616556420936927052061189851729261714171443465550870630606355101294940030975916779915842604919712095432270267843265429657240327208871432199964531320258710967716512854966996255269860731176371820749882739977060199136209308323073683820645573256376598291257813149222422042797124144162995126594563979275938038380478262316042432539913285112303224703756194232173304785407857624401329171799297924078339071575798142681686465538294684739920588863165593491986789696284044734496802407709283137640810335225524271740410767356542444100448334744010172644105295478729634589864050120360802445119035099497449397361718157527709378020923666813584163626831926340671418279742134254622070541560005095967404561684045177174795279035325493258912048338574659009678173041600052108893461076875400424197780308288518120017336955912713771419501136130440975327919050489158324639914348353164868154857917863293512392555251021118278857369606027693130146966143344964230211438248370563353279385889526767207668897127443581563208810665014956814355879657690985776590276870745365927636497555344961730807816098710324801379513617036776345759497568620801399637455176242514778062872226597145548290676929571364357215267446898788941882075129222575650914355282887461419509786242752788157156640076372103780319404309584427254926998716923433189002214150311399876526068876156674021019720171960239086108297492763956954115303227546017387079562599357978530244347671639959146231793123998998692843797570249236955158729768385400522765149561444710597196288988815710941517170151811474351364385400511624620213117480079198374970010047136343252328157891135545045337190527506822915618500332846956792622620819044247334036250389279207158596003936315336884272437536679969864793474113319832861944146065392278409990314384035456504705678955202482717601187433564369024350308563130955905525039049273161331173492258464460902453507919018441129932169977045183285358648042855682220873721361649058630325636891308410376021567992702000532235543980465311933977545904404507856802139846500969342954731026924994758646605809166998416068464608729394380827430828581747969417287299031101319267557389798409136425347969494348037770336463495847686298259010347072786121862300198660798778268424593383563891957020685352160321163523006498874460020017041305698536515466875202385937518328037285114327481169968369284922044738057063349661871124094783591586962685864358914135985425357768877493274363451475448864086881803036965243175568830020586077325695971608648541583446843248996307701137134467515693024488548207712413355773230694945806726784523594363150787272815790157307003317879685443627952571902362327461426286873273800949774112285623766321490465329407202619753907174042225953924288816455979657003095714138910693684503626823105398674375324005270153474589332567951494185453780882706345729596216908538353537038141811557381637820903256151986974535764641212549807600515614170729804699481359348315056811664279321933527982271471576734018608872151879966935025270075755609971988286306428544812827513928069470275014816328972731434734852852950460488327167397898156367880478044360210900732072736974934463049973144257156043313369038761810094887312071348271081588985748326585420751007795311832686170803707093592761493678253085834048235100363216637895742620255035011686154340737950451648289675569835893552202017367954807578190950269798127114870343119036311224612829530382051287043092947197459469082102563478899543177152437969621128122450342606639926885213307919637027778044885792057304699080092344018663811325209712309647605998994792575985100817303960682221997532730160658262852758257669507854726034938298133582528178670608512656002268871781125359782933734779141273628418865617592083287944741096970387985473698402545806329483502235939354358748022398976091629625011047393116944910066690723063469313016971182063253526924404384009372428442820970936485690946892008737175325255703054353982872781230113980809386701547488580344563187131960267854879389331620500767526411204439023758334272429869965478636853410284885737025472550236566341868091903838867078790720840361940216467012153483797815183282647257862881520710108149955898033811896156944175676134071704653851217090212377788433364965187211990540758187739439752836414395304424591390317881300418879188711455314826746998705558793104024038888408385068734162507165727418513495208496367095554245043948394804597915622828248378793415272036226336956180555637107681488889361927574265993582355943153088793305276755874751236506584396947560429719200231986802435171993786810036110231256836425607959741057415362829718004649774857371837863903703901539737491165468549971645394161121641761071714540176519056505252066227788312904571969320599024137539598386198260320549583950167555250964413711822256149601400302303540789920969867750786720003807426797053030716793229601564862280851840335235017060858951291222324611783025316362894394607365277133651163164644619909902122492241231516899276785586373631552600250348848781323300191018939961670273141699962651194574263676196500243473717272902846220979839487106598227000995491887769618850543265321180221944428222842515255614118743401804194614139451471287252759239125596443735683397289633126767823491035633296129471910151571431157954909339032614119186547523762472153110207936911584874220582274734320173558507712243796985796549158062795027409771688611480761631516185530685669245717176922044366843312739893379411162972245169998546856221570241759471176995291655021168550010898576193463945590882627077531146577522388463435193765397349848024549760760244030808448901068387869726123709783578245166801171485983679405529046198262165669172027426285482393396001825459940925430816969103297841123402288560019054934275022318529471282960969397681373419770427812130014732867760571940596997927551246171843495698564171287248118346542064231871455182415286763056751311626771773506175112454633879942652912701057899567180572143655791835069177793070407573290439749499582241062381051491765023850418273009662017175094059080540895728375540635515221996582075735131570759236153986394592111558640009880975526105383825689927215847850417460651615113378833609760121148487005560165812492470682568442720454728963094203066504452986462235942260085549915891499536064984280345794927570094979594506023787750194706246323949549578230822830668408188025210766390742309737209162853371768062164469354323179178553058331714208479886303408465726426939557002685760575393478885870946005827232305191081175142349126873365859607998917329289158960018150918163374008060354752000515117510290122992487096154592802620607616982721810291673155489294237408519674330791660784990557821019357136624359908836138598085161564174769460547855400819535306708030896976304529468682332105328782374389441156851762717116363094014799096494563545929501307390036268210073263700823561506912696431833517162543903046989893142615442635951136346605737865495124457475262167895470362890483048499680403772251343193737344123661858694458806401858407314763379294038634043591941987235526301565460805186867606804316084512845916042441326987912538560299159967278766195195053176488313469325736689464438255813910848620966374267457983130122234387258312442203309457145754147047929387585823899773851521352372389559664312235643262628601147489086817159281066872708400820337718692153523526926347226809082598988984002620815217828261122931311820866007099686036540981832680755824776706950410997586143624355216194535302920025466736799648504337313349520821075119925892663899564756985870790185612379157886437446903787150950011255021003884531192365296559946190047484662064234794232967006052900370917557818870819352214687142723527763255989808694872111384598001412384216382782441273654244674883338167971620112886191415401936712909478990264666443156098372961501968624228250672306166720943546571425149308642488778598682759588749065077260250951829536765181182368616944724360783764294762469226319498921964644068316928766161506050813846319415116202577907863071801231159458603896562526554223346234454507394788690268159497513116885143694521021688319044616862976332522986385181885004928693572764766823855564636554496400631764828557578586661022855156485990882095868944436254698679523822686115969910056366082926791533753816066112247869531326158531871763885989377929188902998793879810003697307848959270625410484859315854323395683104239029907026344379787569185543408976440760130844481978626507947644083013494243583428188591525929347143631753374958970107287350127078898048163504567666769320755305184043244610074032167647183608370847506512693070766084982529900031785030585368213951273503863824605642510337775580986464339801718620814266307417259222600051109134268107467012901430165410106493321228379082751500100353001565459750832377296543969738204774162657106574082164996062622749618795334790706598897487177956433406484174564574790692517014949981009535341354890875483632757952240720698629102467170357925144176670388660990698572626058124082533622521899200041897574576531512300006444571593170177168863548333305192158205594611735771632113223393196532038619900511617817133400107057665268991970816920221946470432379535641186606392055860903445706415179778214505472227885298721019785884607004742002846887379584422894997433365627187799172113791616449254132971565287952953263975953853592095013863338050756136953089954758488302426196275898594151378051580502576754040178579585244883117210508927708922727343197382388468730716823024878868858551010807352278140537140652075810727084816726397709873145516264691142328610303693298433030032367616271426406758780673188397151500279816337477907877503830798675940459107392103458740421961703492580818990720596129158642020288573400911495523886510791137149533463976398818394880453007507474037228093682053543049495194833283347007516197900868728543996298157560589163762472306916287111113767608648032375245966493041175394613646433780467116505550467067183622128579504806716563042762671142999911348769844705037063790018109688862972175795173243380278061747049630204249291661917188624335559928209324391944571188632155632016165424705537593869662465633412154101403228699093015913288580883124124288287637387274283803859071029274863335150309044532805259779565892055456243429798279413489175638240077161217332473642854016061004433764145722078592171559140103783202013213383309638077890409572381055882939279637438166068683519505927701951536160172215890428785678482068291944169871819286273082704441630396254713053284388337913374768735826122116258360272896162455904189677024745382758396652299371235163048983301242141745578859159425605979242772181990855627984860561745368447892379690797559455515464685316302446232567403489584546225674485820204245739199425309426422450420268903815015268360241255980759752364816280930489127461511962315461140082205639678065853540766868822754265038122599916207601708955674744652423445201766165032594566591296678632462137991922296145867142248249288064768032108647799410041006003390679275237362546027742960073478803835668752200348245769490845686269605771570191917489226063520812973879744383548328613693956245039297680578322340217167655591776684037572348440946176293128849268993687138983882227106027903799001904558336007973927741092665573923314702590923389065438842235132411538801855923495613993022391964505045036935292701156630515335191864186482344249991927202729534595990630487236080415957600296681211168317236603811054280359144572024825645610571405546242082134352094810841715828957244507206354681600230512014084805435874252617101768185388355755871741542477544977222141926131552526910917556333193232224321852542218272914915981058368970250352281300214119248601424806807975369964777193949068046835528083473276103060494097330916903167830979346366118327845318687164626807388336567045660104237685058013950744364796392228411269794513477300492498786496563679490992913271252897765191817542796280608493237552081536111324033971316550439188796019838213858500077324246177884918758145964264233788979333081948816004011312652563569324465939840063689031525472292399141447437706963389357619260391892479363178008310261141954854360515778716004955788656579706658855104288246636305720777890226677704251268157197953322510763890368197628440286102588053923393294746720240885412764923864476021611626208242129916603622991849237822363009834781195229138218473263422857591209798054782852505918379833680178741124264474600225624149806914007409797210232785395756151283458061654111179267104279905793944971349463289504565128688478418717580205045832838748531373691135102550620102775345809439105001021833973245650472889476879298925945019875076712236379187586472012149660611512804870964886305622844083936944387216921208492008515583812510707419551872080937469424597311728117210519289038963703942357768621276682109318276366498404212493814409795986311422543648396549998347908430702176438555435125743682822815303222238083476795111355701480631820045322072379489186357214910624252699399467101536684623410515333814268477062758520352409920797208699145373010955164150331762820019691641154602682072366925527514184299699205398534330730680573723805041671972211273740507892726634063885068673445856077326664838457802771891147580132310551987841336521851907146068138986886710314759826461129379543952667286727599483359025974458786876849646268348443441413591771458776608807784535718393293719373932364083563375766884682111179935055410208556188490102016005056395416874510822060355541081766646052412496622442280454524321603203601946413560979200195902404979292367329892455399010198011214029086869992057589177718807414612220502472858571536753074781438973057178726836636015761361007722863196388526462351255380773194595635679653823624999265518043307963596211067455285214290262949826567553352731004687886573104724664933265679273313451229550591862329373933260860774513507753090157444382948733977960532284935830136183795862648032129736847481751647691366211036036950910666650517171150827820093278835872259839404630683763181180890442362621998812368268078579526219721668720174551747262781803268305854880397097704793483103543985590784355277667603313988460527150313885633246768892710459585193289513916782385773577265810047982563935519352005520408002870596782497393747886052835649359149783803779649600052124458347790017560424658666519980770288394385163809550430492196032443609034008517466042962743097683871519459826447359402342482110447572911177795877313415536095275957089861258677145625239945007593802060935502489200847673322930857422225502064556902391265436635785242724290560532057540308210145123820902174669757976534751725014658374788480805377351504222240429576036137543248619965589193922050469998210629316096756517907513229607778575533102658584257608668676453552092774827556754517716995087894118059363052499449670123759800655349987396663953944170170596981015127193331184076792327185395398097640485278467438723164329100290654953086128333026640075801296184992070220025559721569575883761687843643467927558635739722535648841330601192895746428093578580811323314331152874821797660397125795289003640719892332813161164041693773662801325973822223742681891764895964227033803905929596496964821331144731667650419767811084909664694257170694570078712640144865224284694889761725674653522050616210730010192624831468212035516995015220073163840041320303332423121670826854689317584366304307843507859281044784926639526523987186441733800856816923213474297545832694021612533328379009606486277854941266795136740458774169455961407626566250299006922672678760365871379327960418488393933934692635434154809518362332331752293703521029146413312752037117166754872063473892329378510729029514462927415467619479427471669160304978292889614745870264997970792063872408250230064255449959040119741085351678444090188064629374835443961440035352331030404117845722890295818058103212374382589870274737040106837777159251264535706508300921479258349892475127453622006105854575997369313529707814374284134055195444672148941505745283917160371545308252555834320251254241662445752456296445791076971715214709518505500355054390631688258105785074635656204791466768055698438455202770996971988980723371486956356703177687763789743273492829343905145567060744607970476931646278121417138182743785614621970880870210642110573778514713588373773882407652804519142713748811055974471831009393751976598021002410125112308136826033847449108771613228576602639388492849598982365657272042635720263748256494949126291419171306462805956698254936032613201925280434617043902892602799314043613702658201213128514881585731117821041310335728887181729526271120008147506402683046418988769747879173173703813999188824241699421215277604518595671190941807373479331099709283155468165639527101046113762540664495861838546389822089967783295501114314995936803982223037136329574232173574464734210974149174364199473195884005263872695923183642325491845595504534377846709470450959420120211422086419127904935994521373924871107432314951138042937936554363721726348190757113531270930795272952211247953149896990808946657476955651243605611420086639905609900038030250612423607750329341347289050131677280971316268349596340929224303119508487886710353352002371273020291659297525265703921042149634952385708560572343462157695698513406830454833154590753647114699682420910232143117176922773853477041779407644100130104859609270721132052318538222744487024332710398781147912754608083611568779215131131045008366363100751751102590028086427715020962713662397401075288445468331618211502789264307297635576105511246203324800531059951115054314848295534329598305742724517378865271930007323217362375873273148909109455374027048118555719905168393874535206797085921189640785489504109405699659887159886336207795504521932156336124685303174705443940294182926355240155452316098682553138970188015397045962501691796648125015559323114826730056338357972603286017784741496004569725783495620587328730124514555763452302986481495441009078835298012070126541095251846066620176742045257367994690771908453787482060802904825167017661982073061833123921935356900407052154989390344659388090475077241695436518580750664904594431888629787235716030224813522046010906352145082806397492755128476943549962033991644887919743790209571888632002475020791023790730729637463263366745942755637845356913673455240148971259094803685662823210050039400731066320752572831471151926332892852069672393471750982952602125494764330195357438350925828311133911539063376617373077236302798898699857994501659237690675488379889294006051628261400481504694828140330839164342486509396354589091328059511163345503656348245191505831794980831827281347950507727173359496633718821491928378711646390356692577994245739435547304493555939684803279020861419681508260648109246885433833298663907454780526362916156279880318782827074516303278639075665336219750632242486457694597535966732006038982629300007612514947980089567124525695598275854857690124636865949422422772717715184964175107159841635720724122437196806720392706478942789421712842641334271183184794413346064724314115015509855117124146682433123520628406572269260690474791964472975283227495698196327787281625954012020538073295825004974459308097824095299129654233184987988007716816319860865120883158672565065944140618446837496318929137459934216034848228831582897309421614736892558516992715531155888876007217034102445874402084434282730046730979555566681150130033888958380231464313829002600763228503475830780878895180313981020762788985174353478225120846759497430024437895842895680752663203627696299460180834941994912706559130840005862656399639110406851041282007153246256426371456355757694528492711263557719632506589654553648212545926335525729259528149934158787765156922311915102337344071699165647639820008969846298439977593853981121332181032819896994579261764935829748373387752352859464035138238230626945363458100319367250206982807384333411752831573143426398964163471270530347756991558003118159180911378802688385475769729233988828603230299770430666288695530121027270576339598976894102499684794981684201199256134807564404065594623837087236888125489491487948734808614168105521140018455170084444842948475507327366428272220633658240174549880829130188391401568090500008495465737300032747797209917507461785951579953202237285235920400742515225638616675620318839811761861196022162847431907970250367459282804678178536647393560035403827828184576694782337457113822121932616729501042706940952026502805228985909350023944908745626205345221731194095778301953605185038549614062182530618203651827337062111989390244889753863581809944918157848783365288654365422483020278924170496896511041727594750178122678581439174864942435730090917126487716059592097445811462955422310022008512052258976477811482703942677666427827462593951174380719861872226558650403002846914692786468003183603463817264057027074226203429718755580993868712404656223338914646583055430131550952851097263005080518826527268533537293733856918269371716773031611864749481042421512791591014606569795333133774095936749326441463702427524539335030130992833648540706984034399121245249275580299798824092066446404258596620088874191649877302754037292042158109378147131362262886666945474212449552849091492193371936234029433712557556998865296623645035351920267776379424820828605689362315215231788501452131321491469868548359447068658501098131420589267641611516210940535678073681008973424587293270521085357267638056422884092966588447779527954671073519329547471301507922084032823220442894467821839654711090211734072513972475735700855531274321999675125958256806323588088388436620326226619141493474043649800024739833209241183866742960926946070141838817811071428243965779638843986478231371542498947258304114514952687242361899676305881682084632743744121039055276521871073556452571336011455804558568455865043285991767651961932711434986654077745145004730727117147957122275720181288644644077751746032824231733853376529898104423224046772463204795179809715760258008857689751340594805482687728847762938464549604027037050853941909276993706680455171941604037635118018551365754510952470346022600207417428238494817822549063659920847490375832057446779591067556606407750093471298170058187694080279926904605949872117634151914882251867043955731001793710004665729218037284879797156922788883970419825456570642890898582795862565990137596875007856985342094439959715236676735599115570900614130188539560069330508261157883159790188291287776539696406753920808485822904755619051863754905941764720809084852392996636537774687098568014236137076370467423618029218679592476977765292629290417983927505343294338447653339850122828362798515026374542796671771484197573390657287154305432157523544932053465375423820484485088463459085338667729253852044498441313686375189411768486261360368193736351339325408068522692147430732913446762529322640845330844938647151561813941363435036481779475509763392559882786903696323863303425794452922923775203287448902004053266813935475285501746453171721459950814556136469252665022711533738181759785579504198807548581133628915490090390806077541575736137375598801875730753624873700129122382611343810392343723135368988915337494937863249849417642814170452840829693991724323286772564150483765773114493352155385230017811082761636303709020525950377909253411047057004656525197792567933141088663264059262317889312603152857587164242119033379872577587429012903759362697272343148935725724188379418627686456677586869202760143980501638714352047767388090057892836338177973884573441001499664332358222579253517110594856078918240152199828522694650958763149247127952016446764740270468954543510306982617999140223407285489154680684209574320750662115448762664467579863644388023258636088691875944227152142965066416138496381502797217307126592057826600278471814003420926569307030904457024596467576490185278139314813150920364104984596906022531447482294570702527043630406111445514222766936650125425237207439401827752508941432915215170599745459312594682121435106227633033185043394889512767206372915124936819357031910469357290527628876878250048505480059732307532652277925524199131596179115220694196854791873415669978109670256299399320816450717417349056433986521998663905570935211985243906798615021448623928438739820187602285471230394945966157258750965032007124766575938137212480113415355061675472036957910559746106711254171174536954301471914199373197227971690211613572625243116472289366644142621243854981362369496357128211603685441607108231775107801298304253814190892249208595364610821395648113205316073707772076055993498150342406407751233151215899924629749784547438578559522708926710247919919964504304016600562176296234014928218161152050464381405120101763279790269327122270125927081630457940869593885030885857777676988057712027746185837281858599701772111603710982739324147197937663864843160008415792725306116408501515001652030020014274337639041878862263527470225898484946907769474761327639105259940566038238237163694355547065817482730718247418272636272404623994402844447364245864447510469029976526749734435698570853905781915995859960967506128309101947488656507512613971363292764158349130420830095085110041407455744378492789857607261057697418196336967907551883832201734437643980536829626873285189395308159721384099875365774663549325311393625597895430009119142674075385925496901579734191837104016999179009456783596285732244714790732045696471978631549086284123332517481278482880984876102210097427834751646279055393851966889569651087606287295745908892017023867207401060245389415195473932814246622312689236265027205640264302177690318955552061127114631467170389157733900654528692327208081115787573749910353244466936165351752212468866080593973805468948675560258870687103081189892202421749529345821953530099156135536073159095673469906992487426800195382175246210534986270106132159075726024080430082786835629319838427105219835472751176423302799589268727305311835580568752761240919742444763356809568748444104546702835236514152765627008043630974774537678098208734980384982599248810670297754949535228299516546559850687428317628520857196139379782850577901499623213922046234152416823803889446624267373001896543376476503634125182850951208886485629471439877956655928074916489625621859267154146921767683960545008216421626056106423144435798230691965780470574714846007296818237228797756049608915817868672936323790241579204728364697021031397518009784159855000705536493875321257496167487587258325992595761507433918622843798830134604454088081780968549119454119347026896505991986041099765321119658106296655005116183651706202928808776091498461673164426864197089230648463056754573887202476016525776085293772109335844538710740272925919152462676235381797869306421534013163370113573563511109814182112966221073672626961567267483077524887444841676657370240048508393702558385910122669483580683915454791660164569148630523935977932446725588671741604855038711490317607553732194472830582219155807880752453696932744601747360524205864696869757706121867761972058749104516514271549542385392023252697512349546546309061329460056650728309872803387373515537522356318357025370064940926380803173746348540361146600048468762423108947237916500745179705248628467276633755173036873683856440370498066179092008317107882104981833155261485053735407503510822393924744563010969204227884473716968895091118573692689033665971852253777032962201670810655181267580094085251506847757921913893213809286961195312209050380181076587488368317882781425278626187966760682197703909326006729615127557125278643706989835444409613917379035454851804039733313748052358791095558304048153480453918785403824323690730431027406264177776265730103470338402112966908481804616249648739473458441215530258152221499458222499419419547256410317502114422808652302802213424093193932727678195990608112598623967339458989619071679777780259511631477576264028588262514815821643994413506196081175890461951158539082613354960388032371352224516968118059751218959002859179739086652449528040782713027004537743726785553250485039746375739464609840856589301848223416149865831503466082186223605801948114554903515474266266061295026878409754779814072682395693147248760982803450811893834040961534314863011248676465315478758454946522227531877356089083504383708112088244175993858646630939704811725300402030581340904474505115637705410350141668619124852526949334829785101811147232987404539612754022221909584405087230662326888849704223456700011949751859796494099148971385362279458874076099043285422812773058183040249451087063369869468674008948109753971009084947683041071152955063888765249054565999426077388634739455251144897203610479375725447239660235477481274941606983510131476402364194914610598055637570446515566712365256828270157445284760220781753972337164096986264920557668761564457744644664925477346729725557053882859078923175970676863982496629455560193873152710362720124293120176425224644803181954468333763994613138361445704160888342225371558783580701611560271775414247233315278135669400989800444582389984200640748958923892389275228914732945531240424775520838052379510123938435858775454999001272068286659998579098429303846007329623842629079721823337274766946401526920488143042273943883838698807236503400880952451272600136152570415774978954642745928669621641542751907207896576567620470876291025929888771283405806131718206887950962735523080228036658853093027046194006144644918627856642449420816210203832761116962244213863973115713011899185316991515816502583428128487414927536050735501492751649655689498688144578280724154009011617693658986281137459279032257848909339768816086708570029953457215794209809972205321457514271541122093988698745628011653320792545519698519103842815726835120109236799524290686799545683083885930136672185211353641724422837049206036481544497177998861873906197012650668437064042512445995190900622608217984541513987408615618924659308440274701471016725471601668601739769199766201111998930155354062817781328238679873988318548093651417526904050273992326953229393103604569842520594710877602232101677467927935625307683377220692980995213327549341076406829369625653809798299221502007619065671332333071917531109537696743144582704745219185656561730561853216604259464553856168837599345327673827887812223153728111341735545170735532082760440774525442307854537481125966546355745960432703685421573869622444796092593675008309891400068538363588177874864271068825787874079928341825197714084223048949791551798767827468475408492899386476349839175392445932931291380807387650050522006666627273438445404989680118343255349997625011921767875580980672332416782617825708911630179808819558379107540118050962160109308042257018054929764678411538769143070882475312172313794037236592877104345544696266599992623393329864113710012680408116027696940228713650729810644525201655173386046865040621292457892714722742676386142682367640851641194766265143710139385568064270077829659680486077517949221215629173867163546498898538357515324974315835413991322136505155138410903090275543323644120225300770428211147141918147570961833137822943420725434103155582818669328386683660726916383696779320102142029046813370491534380592465471149708354012272410065039497421641886692274473689950625289450277718989469132963467585879264235211633546474686426054856131577840361143149026954427505648038478887943295655604844339184060202704514682782423151406507022104851959207231200493371767383523709308856526434484194677345382413296885430630247782554350281959571754332687358317282793377410102634717252580005510899808792042744778385364274972065430922479605721400330661597939815697061366098396405520287669991722547240206396060964299454270591546000735367315498807739083001581335160357301111141092801541228066667058785550927033385009831156762851616492425509292830390877098893494607234902865856020542206703715680463500382605276371082398659793184830936764165636079070660523343411137793121612020588095146143773947683538839504721294528349865480864837885019467676945623267019987133184554534837360845127671800567875423588719510589565279780453783448465046814695167753813695184510308323903749657162143307963860154481614495523935111212189443023826954057860116467373664795652065872508159275305713134383569920048999618043254950205219555020617927799305642458366587216753519281750334499239183325623616265020814903557861244051834404038159913582717384337340452974499964059918656664153561242430800162617933750921429658088283221957057843171697946284551330968382460003698996180592987950660376071243272559753650882038636095880904003800176047507866974433258772321543832599839986439501144954150770097282265369583943808509128411041629096637012742498817616344101667423400506836167648232710388942239482025308696722292524340750602651298857635878137500851005688687432827471873232428984773354258150416258955023854489068496767648928297072811584351167607761726048913558510981478950842984983605593659371053202059979044369735340166287645320637188693821897801573219076299810361256838764838726985360129448160731761865806680596837338941198265008732624266960024090883207622611783999157440210584278984506303601419933928362455402768350998972042185962090201621015651922358421194882020912378392755718560554165620545534719697866123505834896282128608208403497311998810772590454586337661085050958238503075128425964285974947159675425924034955860979643401966466721757237237070785184646638370671702995416983298869124728187680273812549629389876072234084657095098943201654876047933946794685134373263039223093317906873031699418007404800068725136597857958599478019949652342728688988717813516171550577839158713864040578956591823213708140058713808836523047167127182200601860881125726033986240354206752127690892108155226032930044410189063723659195711953030288248586847825648830052518126081035421351812247158400462751059244487058370954083531897521523610342040845076413767423473005882203432316047463304350628142321082948724090259476441189103223374049794740857827762204826182195142821798112437267662584689519510699867374022732300260261505970642152746023269994970061582359282822297832868401997290365378168160028841173067332449662838403243536504139753620550910521974909579986059572694138402426755596748637742930858314066480318445315329081532154943458288044293735568005276670180009478873358860913649494583852689279136559434288174186455594102961792995812608097064547465090234261840345010812403353900061073469412097838671627721613708361451511050077201170421405751029551149137025545335020681411652447691784586943540341187913507194728683338966247610118301700497261895611839898160539092008911727724528273299586808380107378131400187606725012692645464509767337470023676782013523567324262478880482343629009996330109765730571074508621321877968280743439896483552427144875730583032180249452109231991204178629832110645618982345049505439716180303956851265380149225169487847955472418638278627582327821299397820742867554710924982182446861479580814083550046687559626157906171759021927186972378454724112985575731793747953518295584299133692814058848042157153807468531130233549462721418440056323974458753772751807146601657065035375000078000547610036786369911132398586213221822462464343501036322398596701728992842523411315434326293039073595342914413933874282187214841861312790716268582668472059546640356511332792729283670421533337815648978787243472316577108118905881159220534134477675212977463550655110980181145470892170124410634923949242422673834943940786546583638685970026019915416838558615578967012722002322003168619541970289247574216667668015248082402211115619098290952882934227840649039533967200864995696544707521184613434097785777736426316586916987627495418868313324751453159002335440951714914081359273191146192006775792158563310761254707093396116441508800727293945636849253271858915516881472096011415405664003892102811864854595041190055800792839471619967600301877000729916613487810389918979927793308260333338334057919338601259926635435064710091260634625238574346352684749297906578001728766596825621946854107798742184455047104825113899365427994459320244389898513442567266932786132950485170204267041681042398878776628283501931254549510108703766963812060312761799621889318777830520450194812047427052045732125487339039302866808539289855145395183070167737253391567927690390733624859034335147611787051779766471010750245076816165572539548200948091105863173298917531184160364021950346357321959475586008320829267512378849551667250649220720609741203129313574353745218554549830258041565179862278016468937481723971338112369536373581105739391053691797392934319775188032524352586080827553740999721015400800469799279434223454476897075803131490654997645727199699628033269209089155838176032139892644880237691008274209066808004373992504541223684971940977467046731673788785204941656447370713254372831395409623181337647384889412182775687605827547211534840641119286609198061422822955249075885258711407213414016352381199891274778913139757468280934247282311021898430070244399964290644450844788027668653946357835978633014357430738552248011805785516300305948035170230529176193766804489745519006229814174022546879385980914228583744941429466840567844786299687303736686339751013910079845588319718939840420585178312625560990751642566660914485766068367937448065297240370993339629283434833266104136871344725962944171536616832569298746075193490043675487124501251738822895942643220617183770595166566490388962341590342836592467623892154316210947396500986925708950750411415781971894579948516829239976768526059094084769255556032094730179889261822947383468868847877421474782112462900504876162420975722951786073395988696418605399569127426110537996486482728821472986544793727051143103641539950430249248903898719047380481217370572566371346514715413122205631956995297107448454232578540931960703748062432887305740374143132382158355626714275687557551361820191763301086283797258551156741723050471906087361627708326296442958048279756363082376436161545554061698004581964467066781024334784598806924847727489529826204516943700371120191295353112919713801759557797453217970689981078697996711614064725835573138528037814479461864582163474520398558975123171364079746838514559204145005217721229144669927864765201003653978899709419567795422900041438454871434885285565176308029925167644424768218649062151219172342568685160060585978089662366883201283965312270307465481821199948225388143004016811445036211672024446204828296777616016563789757634979554872551080910578133942034727744847487698984192182808563041649260299176230362632250441829629652154385628760703742186814004738630945015910913254210303256135110757558287347865626080932564507434633723342240855858163385371530694587826920205239506727247536900139801149643165945829716486863220484179521964244983279488063134646201089139328705313455615037887692114592726850514677135599589063223865076477828269016803601306170856982886336353398216641166133554804037038210034458380815055830340179712082249390950385660958557139537463476283240421751934265668639255917743378325548207038610563301262376287698173472822425094615318907021508205042181039774894076572149908324785285459510024679597393084110627252254156964938923682735814346077275980334626431259827888944181849173802687044960388670718647708315647875891178035430820131865658203435407342292834745576965149868391503976141261336078948099755916482490625516855367948247405098464960856818891720369987375796439800116529527027723722601935755572023263101476869284762636285189304849269092640985472493648181412831689383283125795662135988355445206674089584092314862575591105196220005030802042573700289966012413635564880280339995694656095885763219926030004685397559802876555831710706399750666047614867776356322611612715224267109673618402529108255244615388577666027796080898302837068778139849238125451717898757790676916513246031087551814796001216762016855436138875351111446464459659489862868500384293816775979619127299904591343960428362278214574384910806626737203981596833114583132775573719396476213947036948713448379653367208865076094944310674893862810166860809354876204062953142683679016223243442162500961919886528250184780750093092989616878935144048527844852101949729314912293366428383610958359117926697321050328658637196191306498573320866152431989177517561330725336906062894401403624673579168612419076797307215389609926091477800392182909660567805157424539481270515827865608617662808876754852826435345792975109103743243148049050997201340093871209967992266732745697219975739749835295566344453243455703262602782931368938896296769149005111791641573964151622345962414387998499723972106259104524266556282960145967901286176415352478643304785581496257111395603251503631837450619425879073297479906540337812932343549647709599415970216918103681473383333064151387713221517339840938174656833323752124521204263514948017957370648574825588129624111414646926617747817386015615569677680806354280813392622226805735860439573916273877143508484770186626531697488864738682430941960189287589120213872770961538488095065653207344205898497856821448109934432714379412923407297547932647618296204036144364112746524043691754283585661405959433261009132314486416420497649479552017171086517069812241608482170721710164948247980774918016666318076045716395251838609582718327208657052982558926649231274050673123487720349779982956094106360305165816819038480111470304239018204575837273165208592253994751093890012112219426665445908677926913711549507896665766765460962882777751995705545072979236662085235078168943400320475437404007621799091881351094993966943134279859921580629270421382675621435340592467202350206425854109685955128295988801679474853488276232260898821426027966949488339973538091153102615727526061516646757472311267311304563021016442756282782191487924669897532097832652921682584330479085478336542697584330779557195200010120787240198813494984438436763827041174210036951169011180168326999466120100860532094157901928897613978403516511159934642044414827682054550634184830616197994602704896489524389702584341717731903153309321479805420208961951250759293649016278147407732247725732201913504568055999785692775430546578798428594684085867841341145382412407206567559826482625761903033834174251848538540384703710069087650808535086402176210101567282914356736771103511643978363440428302347807354566914381770474508945872117878391541665309247269795195268639282330037168506787620787754817839108197321829047879932913960788741768330818653181999406597926782213227134596324714095294630761973967499846349363609758067253661551807859814534953582160148026023317625201506366399391351428775115353212411225150570657231152085376502843221015840618982570047043917186490724120891714561202491730043799349994206586637985787346060480619228119464331562925686710879697123496236406193738811218020737915981801097590801132722578430025011137880349579204391899288300516242921760033764107933719681331920675829918260784852475711775242016834934819414005391646393521827371048915003658047925976158343651355349438431915092146293081995018359167094253026540329803249676158439634711435324714370392214861784382826113866885521598461344505803302636914394174355991753787166688140045296893435198765272300845846550156565989521130110485288169394156867063517831922185595530500029864832544477477719955016508265889671396408898805679580669160658060940485139280102227697615613826083190760332454846528661464942948396677330080707320067510426251414296244714536875097068785066005939402651877861032765470280632572990619689759188738667230511012379493292597649574826255195927394471764009255618521185772443088894589313045709752725867071455651423603418198903151954572188621149171034530596578450826186807436497735831757700864758799643227445489500780966711961621513676950853089233612386662834811029398046074355342727244281049032807567670033772711209491284344874508135688221560330504388351754108148303753443420841220816836058132623457677542793161986045430504448510555800411679433767132055814705872720882536047310649679318479637352788447885205873182866006563349325602359088898353777250797020050541440210559461072076492440913633722789739946639751234117883663125090061416232276570285410485067974498127181467643084141030023752565373049527672754845459997871633253310506190240215181468100146512628510397598394128823698621131831524776496795777441913323947985528716530231998698023983984731981788171333103443398908379580000513196534523383390109097044471434794265026285740315181520354650728231183851986580293621352243797543193801983432914312502757766754316869888602865677013500372589696445868683417647387839066544421819235857731078700231917445428714160030268283724049464360347876903573326188114310108132188552798589730345053440330372276915140453182361878321719988989055082908966241976585598057834142873730648098529078214594112649499219651136125677730769946058020640723918086690020175695641759552721135933758979116047598231558725356445682571437465856688982037370549704529071584697376355587060928012017697805329357967838079502279220010520167689887325410838931925090717428881081070862320755101848004176969682629039239983938116236638478713081932018555926786589807098502295373949421754246962535470439547324133924764852103761177731123138500161871304710647783932487585006361991196778775326807139246898440388265936051085465236922261927240349912103831622629724114408355686804998074604837135925207539017014469373916409286486391905375739329455653677543563294895308547919735618116894346944344364303087144425491060982948288158115956356299337794739220978511040672166448032053106709130375948843457873439847370765374740479308090343824433970583053269585629984793830480817797508901932397881964474728134854864856399736790769039302521285919509594533031379751852981866262011761260953213926339182718256327583059118937210691577643838872278422852900912261251408052315081202726247737066716153729796236517171183091817152280526537593373755812823486429693226678471338695988769158095081150499363373569059008428920070548252546176895416471077801175860714328662404483055236425937757985524486960807267305907650248851408147618917999896292907954060691650986275070330910088661199318365347811068950055323212323104099431566975712843211058927290756266529830683461268817435027634457348731308127878539668259480450244508994538506262228156572066562590807106009071947415806434289617313151570605581139989607656842772395481206246549279224664410867393017052678406522475041053604323508688152543821884057815229519878956064995606982745328922732703853758452092709242946673468959337778965806769512859044905739913079487625397989989468534486708427632847644098046534885512094360642889373837105351559587950751036819995860092479405220515488077774998306131379026412827371575710612817362497836474502072277561952126743273581685496119698882583112616695052224021881146693062574953847086995865745998878927868473871986438379048046374622281612687127634511309478316617599707595085332574602849374001043645034556580449442950345318338129078508883338583786977108498206651020627957076698334451779345271803769114102075574774315429329032629532114978826203515987412546422884395277795499289564754347105898585159005508490056969036939946380541274407827207958812061095018266675052829100428644011596909156026024587211745604551094076846979736827481459790404552190484180115456634783353438088153414037239817881907757630647233836848076617187887525444073186583050118647563203017139833900789875424411026277749259455787263151608748702504806203816260628415675429971100845723607943683883177569711607177476019773629986084709225612419033443038680607516077836502789166628360931767596955301493681279793546665239389865492208212613277637898202946799581624398705936239170511750705049392442937122875207210047900369520353054174702688100313142753117445624640735452001303351544161161284530636382206203182714120347105733305706095610419997744129437897233361952936807116294649741746746061619442841957715064212449115406707312213842064141269671545664389159471777969493519583468433678322141303743107342917437343763544159073773807768335545452204160755832450014127128997410149470548864724341589912960922829862407455160589149631021000595871347192097972398368312801101752643186861118351701735867540649265791513740582162972420188375102977202769228078017323536585248661037355246360519741758718234908738197745199604135160468808608272559061048282225757674635819166290343907054759703480904400430433331741346142345412745677987258923240909151087305920242790014967370151347721514257148023878189727890993192321188518040030497628938731198868763397705690319074145176297505582950790551571289772603435467222518751947227775034780629888158027640883058588732114089935625654452632562629304285439933282550329502893699077705490294707962200839029322144411265738208956854344785225355843731269337547937659943069910056990821560314508198864943894886795977365202377638052694955587145427065851747444596468235269410568519337370049144862376065979574374294931376284954237476962984236204040699032232862548282233542016522829128844342157512706020215383178452185648411506693943643644633903294628692150012003317372231594599370244046654644010709546377862736676904564259977586034142337627592585363126437089730757955269968503132069091830679132654203064003148245598623926575975731775912862530894654125166228407163370149790267384325301619010137297886469540342569455726305220387629423264806499623816308550031265168054478855681997310896795755442683922048513091902688240337712017786398604639800256037206069295346015367351300935166490475996904153484422840649464357839627395979697011999599689705500713980267143153912391461161358183406808760534667255305042239792809656622109111184778965033519003128193081404706478740367155552114034070303989072232339159423512652971711214491591287469696454455709228043473384101385887428050725149320183676549865442619068767503039795693902421343747525920284449370703219824095085287439294127815958647543036695336546465043812295538569601870814630360006810223193535677588422170662717787522895393749739449846068819589926057904266324281818832976825708783089016435405464175367797521401491698161349930449104204274172990731837969851312455958606399199659668996108005049400729639709895951757463495011315239540543638424771576730579689978093511231012700060683156013470561688420818621059065843854685352265309940809550686451819643104550056985286403697227264496407220910728050656517590053633194257188261901685209110944462304938727622601300966509801815021611618931499175544866484510193964089242453518586296685358807237025208629039637513544240841676796106254077453543971872022038982925881504881746263214401932459126384677645387821490032187360528840161581467693409724342496695967974551295215247541300383824175967755422515486890349846758461066315941988121179713345250927530701408561426350301527147370879790229663568300178799028808419389392249188448911767008038038758887801697701113453349115348021065850875700255173632568820097595527487122535718255169787531509556908689854648379484303518706149231357340296313652791276152623061043140923956535229749326101802357414494002010757529248895892932458035188934833623226621107047222795178964311353322215133111281302699657056542366660712427360675833767835191012510994437030462907634661496449559967303212585228400681288632060138439153523932091157906047341393629732349275918089423365652609394831336481029064358631183082596587859784715023449078747678799566742485205104010399975710394022063069173474202089699175600528889873675939662936740172098219541833712823393286247731719643862566531455126992223677667770819864349679984152604519464045901639578960492791392910434902756838172684047052298140890671314915262504417545271011235786801298936828493391396383366078142291794554344916809706649131884537812025796215523212883988829483096025415451583015564562313284503174185769799799107895565679960825291655375861223383807006921957963941983742611767676910050735750147104127391778359634794411592416074096491892386416231443150984337999995741238608455687906501796604659040119009310649145976455087441691709361597805467174658993017041375390468254441984930697739630336143300403226370441388424564853196000910240359148604341956718891985856156554657750890144317771286164568621900128459460742160742957104583140046201246390110210193236887462318746390639051846090824746612222586831716989063606402540489350875060019353832358477797777718415669271122400445516770541931073038836943879788904624217590046666091040163622700645067167256329813561916957758561333390398277599652250990403870932789862215954943799706306480709649417708005812270559330916211844004635893785632435864191061540068204787901621404457877173981029526071730009912179711375424333488226661867180593453500359794062610169455894879852873823946192592738300586578623690127192963826592639378195968777634491927813839152734685103171283501167754128969634017633688033476132425006547944835516002423125664608010786702586037609939080045175626009065555413098404273574300500668774331352820617072990338937053222546700420588964046523936142830791854041696667832407095595877094232009415610955534334434913854388408610824862428985961974125657170424006787671236859353722710915670406062194347260204099413954720131755244915834594427491919291350235583440418720697434588605383370185897657206225466863899147406171384409111405424448924181252805873784443759903370271443232078520464193147559475831429194169719062976979044988213080192587590485875701028049890092764667431817419312738798791908667056460174141045183654736392112018312726421352990750753167418604113908507917404417265800928896640035085618299372472136843413149569295704019813001606087541279574664190317973325939240210741676702423535174221182857151618329768142226073090296369487133088077855566632397283342252706565073072518903090395022975145545081413444428165414364410492175062270643628610175717112048366581497058246357800755045626453744628052593284156788579850690105804527975626285722083047835436681313303172332381352647075257795233015289166395286543189995731745780167826728146022264038189956693799484242109824897420088233111400134104409516093083130905465503159555154739774802214624067611052716137579986283543969665783552456700793604975187679585004347859444483487473455259996323925882010445287895767233391108520813799484234715318952612818751089051213546549692460665576734518571774051139809005074932280070940569206554428799289768091385328823923127426496379071979978524909030460958502032813011881918979875386127705098311267968672117810060942886033416074080204485324414144579454721054698929166499819415997508117083997585525312534793070723771948237383367606554185021133373575357116049840886306962649890151155629827792230433349844936783915198562685043252008447985546296912629978831302936306463370450331552637520404739224157072857779988029635328900698400767818969756354021766194294424753725649845722655067873590934057238979378191460803198271139248049794110049229814317594991993103280897957472533768146061745433132644892480370134626426692631734244357427051774756506755634133360059178313763737592038902042651716918654224484136094659863626775433322172909728067721218122945017766423271673310919275233772424505908085892756556434411548443888953213270285605406006435240340117743942638314926942036676773124923344604615279222871174737320682073795040775380702487513973697487220807941836272457926715860587568437382569660152884501593636057997648795546668979631727641445826714098393026058444373118321952735782429923805304609792532175952943764669671785995655479752601048111609001925598770316036928905354642196936179009854720785512572597532576878034184282394193011676471278020013244905417068719406087486425099249004124377799025672362387521344875468680180570026771659045717416750935853746632784661471702229127753816489358140375420413163179662046260168300583584027808425084706102856321467634921644155965653995124411152722520988557631807880862837444395373363866289139439904591869356297993169132074310849123878269670817379838027600732835237130570383538812019217807455705392131250482197669340639428023453350969805452191964164969664205192232229332522498099068094382986082393386867739544526736321944401598659040665286702065100494097867130245089605063631147497897543186327376379320227953001087717684402618218003859090607702934597864093296951123385326149456558596771175442461946208674178988143477802702378918386547507367250701231645954210423036825301549927292304970650068874455290889366465514819384805637455447031971718642272096587063004983436657183030945852528562989254613260790172374623360138208947640472176710210783635306328391852894263097083524184268806663972454351949874594952723688235110647593837053136149452332629900606135442020790080078443591851423810954062463592880074917472326014282915066473564694914907531304041194874612758425172542299337656191322834413615968845123050979229080934778061000120243079336754606956718867847589029167162815104791098481996879505375747610343839289298183475591353372834288849228539396595016459422968490216357698460365666770688497906149378958662389785139503019552520711594791624303805713391044123512797717425894997181320899397240945763050438176542023774937292923666640858263563047018894284713662179628077947581410647203968690057335883783238393851564367692910953212630953023723418877637759513255857198868415635114346544492134618362582001773911196356597362091748028951071191193121616150493566140019891540677191474060450200848900785210448984071558724913181424123745314739095859285491926195512752815404555548948605304395183055163865296351143585542678957884332247030322398462969403700363866705975518962282166849472155167994010237260527619206175045604966371707626384595300533444387899443285436630146414207515026765299871484148385924204684351505285892648354129599964190638362225500616202985179080799955171614289274332216280696351216290296505034545598002429203806611312249987574877781454333495781365580083004587905455655237596430899472829415658468980629431127259755469302188791273103530021686422763366103189051108633596398607097473741955293417850780136533786877679115147383325251300237191023587588679803938552970499832183038998533373533151034580443402573042275868260972398342231501764080332731762263196756598977297183942297165227761967340857344413747591477931793339892435994058139603228134659247855875655057515942861161317673955283481508085185207154795143926672875105744138676971890208777611959245935929086383969620057686509962930381814549128073418097204032036336676649944391993626414522714507350370590760938575244000094748229713623772159263083602213915885590946140740697630129708656969066762442186183635520472790353317530936077977879847080239021859587448789607452374905628374741893102680628048174338130019822127770609218470081525232714598672343785431049783904364930586076453575602598382816254098496399831811297188143863954265440828008619305729179956888798818257244092308607770862635131360946309767740997028472766829666854290845405202291900303432247189820499382480607516387279456689408497366651622813369488285833953135050217053611181750210101696093737288217468389261806871887211712203206733649831281254572692763105648258790106857520808063392875136481758375810969559699338484199106269224113656117112954796777812386239349341400854705378458378285151232798730884093735721100458603654544945301868107329376110867978282803436613333978053861486359437163500877119311955984802182899267779769409139308492689239716108751625981364642795191163033917961291900176095322165573491103747120945790041860289922155117591568303624947160865051863227974295613651983035189714287602237507160599904685227028482420257009629938279147818015406641691792596965023061674967724784194741420092429772971388832511665522273033896444730527049024147727564715409237680664165282261122166055190351049532169538299957017411465102998489825164390569909394598682049855258312876445683898434210936589431051140755583849278936997409501389198821247991620988839243558736555452375362389064107266313657338688715014376676574392829832073461314039495261709530844896580056558463095232963187124518366166304277498527362023490678591557693622053472426111253263891430252893766737392628606460991664258399987464743414163952677732246933313408989228213523671609562825134923485926804073551815360719656739502706913535763434376744311724908455377670326669884144911480888480132493025843817701187856663572935398781140646588369417283873657084337575104479912359736597243445574271838473362051640986039310219592121122572034365100139638906494529671420560890861769828831638828382522970765818961189545729825810733945401727749783454068776411077800440742929663980795802668931294689089150061861841892185304164332216949278213392118277190216752020805967262749463002805388777945962185683074384298925646302408906336676064738970496873626773471431934643782695278376028614658389278933623236160368696588859944071709014385765008562370357074728812300427764747470377946320005543727473658472402618390250818502039941310950397081248122107761283245956399564073037842282949417904179913536533706092953580412844901956771743632655873343028440148149907546510328181387821090721433983745415095721808723321639314118488540488247613315649935403031131319714388566683380217666836082950323604059513677592715516567968029585973380361344069307813757301161300265797024265591786343194362646623018687258796305755636607828996953634981452238866007301477187919864160661439080577725519244870708291097673554991120061231753618478131765439557295038545292365366941334856217878926154740456150452308853118438978335074806994480208158304780292913950274218678869198017655546818144544307419110229272193186444074979031725993977136218099711176146890001377240700923484996330832030429732196758278940008466523507115511183481032014483529474488518863241330396067639585766239272743538647655332592611391601058972069491216041943843627692250204083601834811827158553439255537458236282552372625331435969964636667825593382100917598744440271852251290642515745359479613052718959948884782435317225627541310959985044277475352638887118926497707170550220105682325307115438956475830312255116287639688351432627286298152407558879959620980439465968893295190449010574191419981498587900005334896120691631117546825348582900768395376626414520527393607865138057224150689718558277653895215135856589764073014881111337386924588890982276022973395124413507510038725894820664785445392905511604925465568301792236352637755462684090494780037268471610264950882620693574846316439689789627008337630374301756194573890788481042430928552363102983551745174544660652976708199474320599516529159600871565211546129673541395732775167844348486459833913758485625055460175079220988358771933860139489675148337638021390341529042836264537637458087828153790470854457596761421037723612329619640229202289514696881144705828930980357001504103694841705472869227519704469469729203495196976621766414362032109874971729908144000371573928189152840831974229437336774778258709218717225298406930555693522583678625387769903710832987797950516916962995760702662487725611153210245228717970309373800563354059293108901874004957513305645755468645881925344372271704841107604583450525724291768442356100139456682456604288000474072926191657544095336500054458333133334866581972749276001242323822517184689306940857232461554239281388742202766169379793566344104503711559823675771431249127962314115016452888044094239005173464563780362939532778780163604410427591864202516771182359108124947844895488072585512574549607995691801297131720540384249096087363621351310975286209862242624187424357837677291264179188013767520032056332618924101861651303481024400685680860611048112942740900937527485785858684092297315779366886086199644290736157490533034510746792139213935734146937826784053313199235443303460719515520570066100116930106114645564891680500914500556137849404543693134859106184193301895454863852198600808200402863322268577928659474990069360751057802347420150353177373008364949891672893509093542120975207472725043666188006133495909306114071104645992447597175424019965407306540841697352392504156355003902644002922751551910862941367236000269412071278113087636531615224433516226691901231017136295013316980770097670312259233409954235276489844208910924390275648161700407217392725660242958371557106716854141871300357131023054472593770645420643730283814784191021868821846656713832612826378069753098860829066330396698468396246747688511450649131518615524629479248111598731109079771152980588092092858162277065275677719539311203573194334593434733729518994157214722761903678004308795904799926642428196201630098883714884504398012244624556026604086161331997232849787615931712681400404505618966869098470823941370855181326199637688970212415231378187331300156011219956570354141065353563845243965564267272174345053170897086203476547586741281464071979228057446954068492795994590458209018731765866162517873312969357262487630182748053065600294624181015143131869024087493841124215821508373074128337310032226683957690735069881768275484817730499539131031846532783838656267174760018062788758049254008878403927985646496451552789273450200154100313190509627108096288952376898287265139140819451167195916663181885337312798227947809638418633081232493436827327088471684840823065106804984019899661418486821929237124322629328442483023610179839100426990407744799190837610211112396067250719299793136517706731645047986232255197970299256653151015966045966901508870688829825272864059895142504765564643861397139093020257194585582527139271981132775888695544629206052026876752213679668274687758745287607786344913826995634800825441441318253472049480142126543298296784668605437790613389102060765389746783799090419822642829171356980043472466696993015751149537152043740319181079548689432406229094586232624522096675744952856601646578736884246540265604576973290012958378742017115100574265974925332868258662570245837811521822012775760787227875362544176785168184919799494976491000369349095508194502055638112249647967662496507858023271236894462286697963197153902499010991176720532965920102432741583664628510351940054145719071486388246944690382245688388500782441039250163597153748490569452456053125403791760331016534775001998649580583553661420716997411733105525404205521107731858104589461046273558070947146683528783522244243951951095964801933997282254412372911975335233397882005003209483077806628336460632466710018008706662889771576131803944530851778599796791617562364245799131874799529518736756020672433607862783164465504713334255774562203297058370652084614814618032795565723112891379150610787823672417063157427908602758268048328204825305959448653553053355736089436683787788779088357733165815665640463336311789655775538674513596547437928824432776177665299775378844321226267587896126638330684384900580057761373094604324573314159787616555372263016164233534510023746353682989424782425580648076643361805237741563140378933712699900811546084081424058692844640874238912457751936646699463735915844119317795008584806528052045138617897232991096461177097629716988054741486404035888392795004056809668826825267833258753583516005057945853148483777029676183263606491366056471185080491635911181680573568625676757483627962595423144408426869444178084654590010983008324701273276732518629652810119875667425123718547191741964461099638143692252764876865242964332848802671048804488801559106447698291833644325638379834789224992424734734749255855729315186110345341373356722746257827671875512852296157193501863251721759999422779441251276949166596411764533113076783943587557015112683397880778230893276729219673906565016790988495989997183620183772466979164681588840040150832641339017024402863907008831066490683497676288008809713157726433416470525153647177306613927224056325710013972998990955937477305596363485600615984961253518310745042828059910113561527646137187323074054864438709510376239129317441392679964474732361821363311858580406993658377760655841495332832660287785469689430022926853101934301987370587173582180980066938912507662570847465950628991846834694991196205056288100623524340050240751212565976218356834552257668404916525157075841461441328952097009306872902271637056385906105921696945735131229699292583567531883445210953757017356326181664424591830719173259280537351848183098722945626217254044418986403975038451360611100621071808868929053885565380321231977664500797880892291390719718321553376607146881588861466593708021811848640949124415780158696473723909595858031173549396393423239812188385832226906227304369154796477329036203102315846228211866082858960816909409000618964421346173446825214338630608641076491303096303860615612269477567270566164198322661282955940541852670099389441814526699815121965396719051384313536550321313806824245173488947592503124192484175255740381823511390261635537093686468847101525986682006296660433267158847028467252827367513636915893498572151495769695739379312933338786858701558643847212190881311947133708733823275000562399237447717210347921689995870015046980589562365188542682939856667127230583317473946798938791798447572639669972565150933504944962393298941183809511522027385936199162089315593735213193801270298481882968245692466401589102452240833407352947237676601871908356625734394683547048362244546199371292199455216077052265379834751066676946325551156649491168070523052817308690882682380129412541814673058459343581273433407463471098101697337845113700036146661477797375667676221187825394236037065492372256647519270025082488886040622340981154511333422390177368411359915337237318467663405071568966819381035854807990739961345388882685756724350459189974006910447041116287865267920106161324719998448237152334997836375230143135132826955395290108649420581860439615905305825975400157347529974982723095387057721000539641886970487452897359156879270799441658104944268793902227820026173884246389592211392638749541141959433002708467142370681281377822984874389225801960673229557664622256072650083204373463689206974257310148877783281459700550621125297094395513482069706780920457890090055635993193030074671042570179184746799520164509853815101539696173545527780430626775794877109799136259366223493706483705981684191440900869283841758136960770262652637398421792751865585534001802494738842479507635936962516581598005490110797072695324488613743499388440836614685920902013874629297290938453956893091552470325456494848342558435392750026839808919512438571472788922881800472797910594164937166417567650944337465409728901440632813018914386339280633443494240026022881047169997255339395707641070678950590524163290221291761570720281337963064985988232242671029826426454822793271548045876499212413212681827672309034755957930311584824894830141731719343104663561998293422660845241977274300089475751906443642507040115738131779480959953392691557988400547828953652395636741657296488046346305736737117215809990209894453733255406649244555657047977207914581230450618880669347731611549213528598081110964035642010320650313878329814443085638720657938940705623279586874460852840698062839012831994040317536981729101193027421648744601861963215944684538075570987221296475842610580437101441448910748813376672138354541424787136666538718207128484761707002802307713986200152328528467498051716009417700848306078163074067412915857045857980914354160929061349459709688925710567910055675290074750437994633821119211999009122153965563172633298735935838666500189702103768105655391258112742565036589214291019193567740079666127138230714081882841864932545670050478902357998346296652053903452672297367971122296475763842795337070307941563289311746634899628691051860472272688877875879795365481133097185257748836254995078089623831168239465051168547086261364021782044527622621850946877145846667658899947937102845702785828864945578192102470884098054884049428920275863251351203276836916550933375756877423110361610668383215808025643334645427172202495621806059358605778368398254618223644983354199190818175492396216871052804951422463758912011361597998438034553898743686379416430030513037889583127924845498683990658600640789933528127851940984016719729727069932213390718420955178247520680268463616539771651234574340304432466147817711996108553728243091711263519501191538103322617009607819792294603552601878766923621248636248851290354428397379232513895550640142391307665467538114524402470683765280641424872089134513796385999449351608677107460143274772385102847494666363346194172301607736297628897725128300258084687726530151682029250873001346219923156538719904106055074193036339018444239787442338499826069676057020535368456464272727034894392366484590024597949473948604166711335717028120922680527815688335313264331759029946538574852184710972047718248056721561923131996627637828206706279778643822558087274035538875576372258299905067359154147149474372649839787057663311505334211612174534089654152155497746247888629118303526040368732822025070893530843523458081507195695889241260528757183964963055076628600911167261753007281738884588123735985372692992626426660021729769040932291664578008028615731050138340599605215180202337467493294109576913999967663852175374648850721464227683648609183197332363921592490390006967888121011297463583734052586878544570222146208736858727966414530176263354155887940590732122253946707378265467560810746496041804339579538721133064646799286122948571393385632976161785089115582766119790233799986635770474963796822399350957954508205505111893034779357024430352830442834702410590461224680811375399707428743435120724179827100082933191371419288771409898637054627113614217060316038877158734107562660346260346932057574636326530612059614741096786436632812848924621727699060440035648313727017184326110762869070629628767824833725218167849520870187388883526681880688561553821029179384688125975922387175756873776636521727918293598889124812904849996547644596555459515319230198673421439626905245337463449860371792720542796816889295558794575534131465881283310245574792805020086669571693957780153414390677074688444371997229473142096243098464505318539652190602671100605662171450565239616762915821410039307333892918625670333714472417092407944822081957934969811552492557325408808831648195199484925188597971817916507188649753536943195763660262426172292425480056059572174815355934092538283243334477794234508946594682954801561640088402355037323496549878662171076680106251027447234054777387228233706324422346571309983353563617904512966453592077279387939270095466014610509180273269755513571365490940517098691433383437353862239566253167050813221234673687814427618547883058500581078515556788076939732421220873066182620090830504150607987867207800863874831471046796221804394757556309908624424438280907075163603921360973967193494081982005189308463418418513775869421385970025192357210352359781475656283700649893580619427747837673671656860440124253539425460837473462224960829827247240218753734151044388427140893032903966317059852727435757224919804396406893690833070460690336340376113566927200801720601652587016620924656531832178359034831846684963362317735446303933793489237958382338014835246620707688841775646825727171361914835528944036115796246825347099957785414816484667357356113380319206582213549678296294583794899259090657150858589924036877724709560225206030410594547223573430761992020038703424402223490949671809511947981181231766216132812657418887926717804023857800559852923256156882467651635904834058800448384582302419984176242039750282144203323781364695612918160908807052269274478502357943715614285496103309997013947721460617450078824754170067917818813373073553878679601012421924341739873289763228098676229374534372899811725930082223246243759854001837266087383264712072554491306433644995100194782544525542561198544468963386192334108861190236636252006167177340726844487670870786339928851878574886890695595205756080655359723625548665768065997300269614499791386394913764334395117818656169724575011955527139876663310241993649615936734233367659351899510821050854558659024045243950149586570975168801772980081992225972528916152832643287133019120720262250559930210552005936427206720674365808195919838946862415075380275165662282604255844872369634231527370496473601247293747058235189463777287608586271395235999069223258703599107092753607717873127548150940351270138170794870400279463643368842771692401282640444753830021680605559739911153275674304250791689664936534610664903033926454798262450752752970355117029389549392605026116732805080636191135041503872255354805249503072592208321299167699393857896052191904022659329689320152805385584883267673657568583799428685543148848459878043199371078484089337419779080033863696659632700048007534107331302869582860135928766135088569413072689527062211944465709013500028507817008173296936069944780801165089977469838327533544622311789004142445612565923619067137782218830990126205038713863746110754713824333342606611191124996043119748730035578467538558093194053656414387240871593070280022336202403420926692484103654139246032528151391060258069008679246947846415137742530490811333748592565903252108437870583690180305933853297001096960008742504481418458925985696534556980827237127625540048379270764101702087000675852444325775264579036182680360526238789966875626868457587113494826170278726420774053277917839660593024680537612528783622421631814764204764333456586924291561946174147929303267274533198796275905105825564390641279605996051629410558357700353656324285671397243309359986178485440971818172554477791409320959184050164998438612807378871881675478875650566319631976730470586489462404594926976645328510919874433735121566448881451325097829979985682830183029271812658757997491525942142606638449347618236694361301000778347450454438394059463825316417469621679637540394915211600835534045873007034167447688538635372417591191912573029628757699866983060284505512542557781304919657353708109753889805144982819585172096328879249759668785855762687283638577142823352346656795892694854891954487424195222854027581013272572588484604654951851622252721485896972726328951526610074191959717832883659455976857057726284785595448837240757916288363148490647791455348726575585011194226486996243910900959484219505011828545702189874103457183898179048636464908296777315083677699733551507417008122025805388524519536398345318761778123182923384516149201894678720217480245281591901242255865169874725902155076249749122673765945633076166021194348403239799144070248817343433029272571092865738989424064956181090979765498511842477113390072880929901630186941142126117034372249667476682598881833777489153001358002314602426047205527579931989940964316114429852831611486989731748642308262649341631684527801622286945217652487890699556099151096015879416910388459563596685293612599124572928376935749499600063745405102933125235371942115650133154753736280907142815773185118592763310014484781157730515727741163632176299555971064374278716404082983071046305419155993714815391612554781126437438903974521207357576777750742115050829810085737523835183835753993320297598915782488050412070590464407322768848308743534512264547062694097544451369757257089150573023242573567272108516847067390111372101828058046032247916600738326914541593198292432543374648604963396534224817293832547511140375938437780558100267902359338479895865486078741941416884073043417349690424069174289582911338815739432277101561962477635519024021712746862782472197996762662900919176955643810538569264018591476166954319407769348965559060313034157909445519756029662487545487909111753269937093712638067225675146306074023344598314820578077855253816934364805356807945204538688872214580520228137165269820116250616572973797480750029723392190975012204947494170065939296729602873876719522255063086438503602286418437662400917471903283390839953674746861310109327545085370103248816456357548955860367991893611297876190835673731227482378182701853106426309613472487143605493189037702613329120207411857020396549233685908632729003478722237659894186318952339757526448262322846781474167839417587877928413411223019880554837191966208599311296978303388651675854462279134053844760839423555344903316330001247579965276168526319453293095962731314672619266181983219456648004891272404216573041363833042226648978515562645655321971144729732605821321486152801009727680151040298965202063860686004598161428523749991208520934729230797735030153390597764783428907474877815173481573626882872884730960864188664530329476007533093585380277049260073288432941195208648297113175937525344388958814255548385173295283601137791532901133575981174759080829559047506576584568604989519869930506625060170970783298760630468160095210972977875136018632054589557818005958757171911723235091578713751539912551505260695947605933157635090917977332083361368071945515640749533035718842256369317118343973251605736503774732145350056359563826247493638224705836847521426072791995525107455130424433833640549397003333713488002997859465754494276518303412111970210299873361991177647930047649326491521909917772362558052712725779928418622127220259472957836424156951838904261862931949850239808827901822770867087071935398018357638280472176270261490249184634025236129564512600179754496131220872848373883319385740201890828176785029850526215633527508339394101455547212563763685464079094647653816550805001796737374314099089474841691430065081182103990094191714290554428743486917780828412716328334933373876018980519238236373021976500702991998409539536408192939354484433786725257077729595961387100715792147218370758041500544134986004929074996989379034881020827925069300574236017467712639825044479879477551383688753888207757212063531958650030083910654471490754927971155721846090155394573325186389812858246877695980082741765554992556526378718474988706329149439080307417260367589680254871837399996196829326612241217067713397137880925201702623014717820800639162135982052973855055582095940333264708915619555223566380626412574791346382537492599128801431261443620117181006104722585841850028634156211568844185662028272766006553624341653186172705470460182952332953648960573330745306473007739458174055622180102965869545542962321362680851935845002587357305866651956174463718111344775636102931642292999771284847399247914997524697574616765240133398871189935029199507259403541776788784275863173386202123143312232454999521022646419170590206372156364870441042698336333313821695884831981209369368359190411493162347872763662759215456841070241740529792569429819149817406395271447869051184234337195592612319193757906211785809093205884794836305795612156010565182075216489529364750499783642596878804760925999701865361111313604844810434313726732714932517640677959128270418092840993021480957457866349377922712137553712549498364613219105479011950805481637782317553188054048344745682348295528213063830359546479755313386037131657640783340885935945737671967408625251809781817880369860116613883471299915377112383415452874048995646902826030068854276345189623573554618158222214071967866843102682655738115194937131618234925304365477918872773039577291667603598906829849792753264457930205625004198215817833679758324582016703344016375194361307936066877060596155074581873007405885541857077712937653954611123552017737452675365027712360102626371140850249375451997238811849720048529540760537575504863349851760393434036589529608607344805531229553356882145671180576047588419420583496338454216537702022628873203281426271924191134698071535062364060488010610176139643065506664667145977479275127501313346596764639606994405703118605608781228063289678165765372750629672835762639748283846472950189179856048249198500799160923239976671964767833012638465080880428311109850255466129686185565035001236106852974356644656198492092110126637583119546240112661948930083828438659999992833337948765982135588393330975965394351687477025420380520337338231789387828254304773685927377235747888656685873609256869105637744685113155947867365164849217860389204692057392137396597629342661799387598861055713847390158695380014400337739425963524869263689609087053952625109612729088737679822241074767848829902625921417206513544327199164599833303338205097023670379189129777113900021796464556817013808941825846295987689363592439379803701260437000195453753209475856566862618691377693236555385533736640181142604011712634532053725124468808392504553806425476628093450603910861511948831424647739359453611346263253979030531061551540475704318358069888911685088278357540626047008133489427756419881104615033910819669743603856073267087156087766588589106089607208747158269701690562668719926815848335174102410950604976133322103046832009316294819666417866410892596335403862924130152476404151953276182470723527897727695774543149145720405417995318578837498108505057157671110581585216705522011002403121471715798464585433248907341098761099295649676156544718806244284933719422274740449837985964755841334894107426083336152120775019298015129465672084211550763881645988966176464369760328924324510530298250512242680703731212808393512202255408415132029479998057513768649336556761678499471334926956257739078483718248283155679298197287786862903631056068580099072224021538766147136448019656148112453886271654233428875619797920485573019299975004175881862203550843526937422418347754235756053467255495615418988381785602926769085061313659528803917355560245687971772310603217457604975950232256294196379063093795581044909587621359167786582953930306576530923070439867570625760671427063852605547595952532130478006326107107680832162100145794640977692680069139071937272531922852627428957389504137685477459296033592272625266668352170703189496282724565284582414254606303728040777479798854129463539799924647469133552433723183045353848908080893152518135768485272858917328591746450365612006882947050320471690415376867800192930506366957785508855054236989012229808779126706105235629735806022201829431580735552190937586577473626473699288881279782933393499869773523241375993155463631192982070653727478607258997312069306272104015723943842608756039326387063929022190308589098777220198559385372688147932288292236982590464309339788165229985971114388791916811255637498313161109319061156325528926120586515985149397612705562408767671406059062759367897286320465589407531927159129511701844375575853523697820603460308111408561622204290428905287093487193875366819942119678716034475116563217044041605351341390173136689463887385553138636824336997598597061645706267041304591264372849891483568904556090934810115809231807301845998408799090461574931098614313315919784060635683188419505707596210326850840753951104607136774315063186556811750456842910985936094863468695936722775807730607288379881424681003426858744195332034222592225911315687185512988438399771818481775752765286872747867997560955981443326979802322469251748008480437354026738684446482509456837198696619833088985878352579323281004784980000165924072903146602815056472411034520315765276577171450510804603051297596390336904878227083901331040053851493735374972951613489722639790211988963444866201881902957692950434647230578452652005806799064539004955427487396033311151334342323939281539285755241892542753368993670767360327076953407153977831769329985800290247380912222702470030149732148309934933241880821118256958623294651857563689754163574689598660266517287106373178211544073283084095822937176862803685645159152570329027569036857129883127811874734596074173100978847315628386494861931043501661812266303769593726764588538380943049453023030268014210975502503890721484246009339875439915383842137754597246409868737926602794166204708663284387662736608782721500359892776517074454770653839619602834310285238409133872378563979536825788370583048947266348134821317190888339633672412315363972952037995614054202652355733182260536030151610767270161366775347202108995240601901907310716711572131531313991087346049948558879305557329074866756924991779147777627525721533153059191543757640208556243114944537254595680970256475764244423090474070144938720093148556612673864189942549493136310475961893303490949930728432409009866042964776416063621289476951726567416922104126791976202629175585305961605883598150943813988815546473953900221085978718592405964780276788923924280477323241680115088099429075130067286149727378504160015538097278691011653816376029956001998756771052874341796486349487590228434508102484523242850619456464928288338024674531436007665393932531690693471534111025909155950980999607771081924043400817401909049952241694593670841551263350446837423540829126465380354941695384687191594786448216907197188279045374175897865653963543641749642113833239127266085382956774626422043748613750869656038144115446781746318241578012548976258024056722181651902552564665510417840313993155273497012827464078379677343103957500116764350123239218721736939561572561209629465861258179225997122936015604832529324660590007467538289113588769660502304327546441577272041355353431069230209904095882802842492545660922550473678663353597767011475477937895122163950391748837006069208321431310565114032165914971605450331526087562443039751201627044475665497445082910844914275328651257884320143371916195074243458542671276811026007996977327310910874040713888398593020568547705681283700324106099488089120372337515691677129447677010573628517526922673867332490411057618836343343739931740573619353690777058069918700110387550682586512339634192984733096678757320329048370056903353621683728691586822484931645864130995561280761354315839479796503645798442252939980325213460972862269536267247076289971779632763346141120704154148305304401967545816235986063466572733057403342467568253998855700384203956509771995410026837628297511970715692877805882319026171014758008973737834649921004305707615859532250733610872957027150743122979203137211031512057869458182420174183205651511753381284579981732961300097228591130828209090533147601196781850383675303470470005787483609975909091296303441827655051198429426117421250174531088376152772103209162330883357102085772162595099252986436418206894396569085647751243182903018353395109114675137185342463058517707443432161316913045445620729557791498890485478502949425186992301564204823672996782085432770817139937297136472855162369102809439490498095711147987353263361086154490921362107195786271826589846454595870090692492488205234351128687386269125293356955656244015333447567162409478118265711559547566993684235624999792277233328567847862452694981303829576715883682539034846167149680141385991940555979179178582819757848123724780229627342713273807017121315934540225441686146416206418549556220175802717174193296040307242855759140374875241255836486847826530579021129301504600930097911328939110209284222126288743972398792999872217126802442695704364082691751239472885809766317352190347740207830108250082306867481659929162142043785596907008396343174915704007049111330970230468766158574831350801444759928520207278604062469098624581837105663182549206666339286894164223168139785374174558983550239814134762756866162211863675611345401850612301450506414647662002547937273701691150910570058805838552877515535683461355508881431374498563637773694334730779223692023281951260198833485319308413912969210345115664615581718451609186530489711953801102485257498931586472339992674537252191487877997888075626737506387237805646976435268613067747611615640308898107229900613620291385538646836842458354434207249065269431319263630645579191032817462246523050868114539223790346999357618192283841178311127342660931717160547230274858700010478660598353687620423490935631467935443700708676044416080934303889641691229384629350216611002107616405466145328261330250989929553919275962994627826326321165658743195517335942787247995482872278107931497771103534255438166350502182004755984571947076429678271587726848362361118065924451595282915230181808971672271763496522837506807313174144533509330105586215719733675910516720488567454157281632172593979270182677659278790726975958652444479862784876695394914610177605776036071107508660345575557129623454066377584487731406580502181444145701216138894429425430127261439960397515488096841753887787099771053156896057795536359670078069985650119553616995819109185333740366199906618677458653659378289515861921683583853720551718196699002906225244297196477607657921208349979814831084253380066460564654628441059597587010538378376695134144117115765801529197239328318237419072418270556211429248125950086219348254518565539701258406477745909416107789844866798787983603594306705082646985065096507142428798416650133033647595971329458356905875969705836598402375264559514284152743093476002848059737445115482304008577453819441423549187838092922978318441402238443611232216885056243354185884325115447206432849620845632811941082705883189354288454365054845356330088426685693563642890202766923084866336118299142987263879880682998086123949763295104635913382691252518794669450894153964933273454972994489836299473991754744164719717317798726839436024010521661014981526554162540385451779521584002495879879741049524800475355816454411607964967437476718422118358157376737048968165761864668447399574573863895284956651895744786659777819507522588829870247890096406531852047423769523893355012184785996600740896503838595147018040723457768783856075809561645339216884897542598305991753761013232063543253442404886000030908226190037306341848688614387637364941788740120482609505127598633905097702424725298017588263922938707936732522111670579264414090854374014853045902503716963747745860719140542569438156117014437888441888309159229271920358412987162286685053246038943565002307341670837518645953680252758240520923744676573351270601601170349080682223272341214084695966733251615657580665902431013032064115375116874077567874060359258788617197363493677111426543048470811333032318663398550949431439748048407876477678327705348801596714101698443566978084548780518231995756407397883177027113564392420445203330076097643679699900409585495562013135848058753749472569340330909172832394183692193249151868723547739392127561179466401851180013807501027772171306420425326555361143239078820350945377075084348892301020693648517284976129383325793163280402402366224770735848850558619602148189507568896146498647108584644537329496552333726418838326212711782724069322657157078641755728961453382916448918652049552729526330028104982310985733943081602256698171115056421803074943611078136138968220487736518566702091978710942722765034706338508550084211709404050825699245756282826278137513327080529455232216084540576543785400717990812768836695374975228640671461534564901126938742671140362151382047758754942856572278533665848729086917495101023758749766072301695185736509057949181869154204951481895063313672323360017919244397594016416771983594510693427217293483713315270825228587814764495406616826606632817385906468170848098019563095401910023030383772107483227813901168208258238927793613956120621621339157864079040962777743062394588711681359324124433710944830874229948965727049696689190976787295678568374918266228075947073087639094291791846467289893503816657160323834130048221490735573101147560439107642307049971417179272249889362511853771844565361124353668033415834710999978127504593107294920164004043873689108489000022065896894950988355454330344806346906836264269262252604805038222965665856445463817257872024223930603167450160539775516554246030743256914538414066770009334817262533785783695496880181971420758304790250454493294344080654706966709208196687180957451822379033311686660106588546461622251368075580728178399049938203254035222214791278735733792405058170479343611160465752035096499203009430633851515570103965436156004250209175408368025107569627240540070613073914839978215497526962006777174612537517747408077042146949807246566921031380365590139144631933785249560765128958847039568360052405603773226648488976759864722223687045726002513146533027894907366831754285279304364168449130901482297794441453977670005047645453944199744253400902206497079506577866762562579041678795171932282160484279042228145745555525850110505111853205128248170449340850065111058596796611348054315799010027116370414625588451469531501613765309863467935139830644217212539142104848401806995555589338646984470972207292044160017446457448578988521913325497133025482098021992094686705513088504112321598940306060776407088621530225283963061061498449297470451281206439250952683933163016535406892928056518715726578741194021747809172799541874118113737353482320492402854443728542414478667353172039728409992107533852137685218992027547637515508803238203451410449033687861055113974555644534413352805893314950724154536504253686358765114645577638528618422250037354433860841945720257808362467051613544121936052124926547855797901126581591993322554214733610252203564003582790857550730527883543159467417937426497407409479489447795731660962302173239728840260162155089907451024629671836859160378905981635743926672782950299181795702806863651012454451544131814296541845245197887305202002880204338955209521262425068207362516464829688831505095970100022643721353487858260253357898428499264259849382698655591574552277223044783670045129262032590728447007071826463942993971057965049240272151309090201632257892936466206907911418909170955485858170999693984582418886230434638646853709469201908664425001423704907060547944016363622448420494614145407334077205613675377994717434641869614416355642947159197095912457298893923381500104122943958528812429031638189391182936404756748013200548377764224130832273379016805513456118786526378739084602983248449677767652671446090984272409221944208729050777247422712849199862752884095453612244260812236730263624166646367695658234050934786501143545223017211043182967461181271247726747558418347391829646892424390835898304107786122216466741392745808441093446709140768890811548042699046447661790370691318643164487293481162475314270947951218371189543080160613686742330865206856839261480478445664749457483232983711278348494575681848235738129672986025094456310021387076804904301108841043560659563291355136365953790577450863465841837937855021385507306606203236189202653437965542409138866780517648660235568680102444381998217408186830806326579344501366069588311635276590196371091221683021799431781781159756256933481181759016370453954880025438691950293948429633387880232454026868311592077147266096408147297425641352377071326558656729260935213135632697386334513923237949127274160440716533283727666360699207828988515818900740681788356003383955024910544219136949438402592897576804164798738875441907101007388250260025052937157120598821799751905251548135128926507035031295388797395196807146312979739398855224067710747813296611251424440942546205865605638648411769737650932223200581373898885989302233630809521934265228150675306773116834992003074978449533317392356287724988901104982913538099432346738706479293918382984736509174159934422418013609070218537683948237197255148813881635282508237808756177303718593310237690155181489566802645106695566763562703316375504282184693552607931286771716300815229705250139944041110995237587821689870722832415540437859493648816597106019417011177530819779600610206107580954184382263771744158930893440245480776358985983864600448191306329182121252200728063408905627313615628251425972911690969621167408247163145189174736006959669914230808783383786865901598670223214286915701414248070458972191054200479042072618389456591675766243374816523343101319777787506264814478962379685449183339325445226328238983995521435086472399882461823467833341203496969634652310297098007031272981130029874875884515562844310131560990894615878405840038361454306275028384345168367939943115519406723368803326183813019065159316862019183963643881182869704116494587694221136576981495173186043944768192239400670145512792825405653032464235241908378911520916520753450114775133761761316030346350015830432411983034504597311154802352914726755652853961549825173221870281189147558219251097518814749962701832012386646655447096270322119673520668256883487375964507251207969145168739639987295089292861505745093918352489864171151563371077207043719429897852585410651220208721985115201196820066851549509077569921619316805761225508410799564473572362115138442605911878523611115766746246167605894908847321882511881891653729413018475636508362290409687727075906307595173734465381235816720569986154493374413551158082859997972507000542569584482904215703296329695418372061125327781850782435323918726737975390106042189821333568001491762927635897397491510336102944854875541265945883082627308729741581359987850589708156429324159565205722438860158420781047504262811290442552635054829661343198347557885193222267186930364566727102649599400511663086637317274044545694973748748521103317754936462538061133447431080683263084662203937077310524427999513745019352661423522551418680551040050214387677859299011085925186749913131450008725837116693698249769940841616062428406308332897997161870505765196240492431659995151896649754750390011473989031896878326455784745372518045223597268776687624285075381661679248800082340903203480714652289022230806149657427044772212502661923714235626092912260182505837318119710390751753385771378077621317724528794791583171484322731473506837177881579852023035280059999869776669370082267088042043304271761036044360211957405318323977508253762435335992587448066952313140950826729742008271959187161696015340654578147571012432947034049890117240314562707007085891355513065947483050109267533105047676685100687279532443236896493872434914018868580217669706551588502561741520703150927265145873588577166907411895667629416813405784240677338866529843358282099209279600025605373161195748651729717114043583683023331026924475563496301826785735111056397494733570817580632987076680342130966827261284795060436152654421703635540658329019547411263216179414368623878244681088510060879820657196947315316887276558292548410060026288708470726414636981454676023069064848000195089152920883475200294833011835707147486046003231803664663011378346148102080104082416246439862858027535254054148117877257844982440121535808832631115767938834439941674255267181270687048579050017001882766115402598966456382269528408612570000031201513414621462743588188113752159623550909618693482530381968085084967571308026522100175445215043882446963539135452229483822752193978161006308157139473475716433100288572011561747191922667719543692831282660439606992546372196029142537779739831674438120809721881883123622660338707532678942538559169182977283327312615508417484951235989157986019310463020408836581232828339328287752748597870536473295156141142985324610343025553130194964301167037928656376695698547963744374046951440475248627476738025589674084963027253885817383209577772704426596764502346241958872573593386155268081204775136402786059671489936812371201186212349054817129245481543023804103650148753567454311180060450042613078768221588514426730296208404822613694974262081760999935003344619768841879030415959515392641119654647748208496035361889457612204857186264614323274971918808584172165024925561228486704440794528091825391444698761813663319439606463782245081613817787292827839764859110463455622717222178176922974115386786214605724201588982175494554749486363176722743647089802154620073250130237057212162666252200530396135167883101300856801679877138600808744144960859610304104119748536983111367107082479747419717080824301691666177077131276333136381545315891337525416839840847864317750667503948846636777214679211218536122363167218880380661069859370237909631869224025911914634584614974171219255019925474796004846006334598186460801159374470373166319535189087920564810728118777240203974402460212973911013499269664898978223364655365129497329341543406894694337381826637786050347493433270290837561801105493469017933942873990566379697634781069552896198764618985072208634587475775355868446872335724917904765480775103923736396185466753334959708917470501031396943809023634045799030707248529632851430888786688074249816358563633931419476252306615252056589630703714209157446786673768335155822444226371755529054939532882366689615332633149358392812822458493254055594107195071379970356374234009731613098646213937953087094716536125650803315785044573000094141394600147452544140381692099336041159658380050630368254566308062825009488020034180021455841755463480187653567764411516477104384366900853706116905032530314683543713358180929240076805095818888803131922996604986651192355333442715995130769082085266296774031025947302259177682013259107773158578447731207588645093398775618726625393836235757625158805620309231213866578072162611618127003756053446226349498386252566652422923443651396972082378259957626108099849375422735675122410923244793072428280291762353753386370876387351815527482111244800245912464051115111499664462619843390057925463539496228889243623252186402524810490595955408365028689357489054200091253386743431340734226519599814488762644831855273277494122878561306225821878120011628573521338086043652520123507908301505963245468281892247598913287169435985142267573258150924982124899051846590727823763964923211904205643849172556431873441622962006044719016116127860806915970507233831799024001062116474775843902375746789131695701182264621770289457119136412685871868635824932717465627067280751367431597507565774758376406338044944820668352178332133327896776383657446746201728839572367211098154016213270068168740231366194833250104464856464603641253174133332379607567293733052122974579333525661685589200437596251342030638342943060971584740953801974115495300102821650559592594591948533482273271554448735213653447294239495596453047880531794558629341890107779349027602218084991851412571653165137450875031401466774251976476204616693113326045387896451657290843861519443114016151423070224716393990100437906864103416236790741850646376825660389550334773489673113343136294285431488760312473133541967098000845264274014209763136958762258591009311129973793600135533529207482985367204276126984764006676698661053455207287218738180679105816290748701076736965216687344878743827719973271864925542480668423833027410696091855007115354892417444079433704231825456068386702420523393305803173064778859332292996554662168705712818066315810759698803795419028671051589682183998617226456523727215921272699856166884308596839602871715385266941479317328935458449531502185930086689117971366494924105395301740136078588915471340850039768036453811115720861295639470964557427082387312687498873097059005337318346168969341709300000861680278005895674152284436630022965265070138562656843588862975858927122897312250450193975398801959929585946674448852792346410372473341353383902594807739551764067414764658014533037551258783915206002730545980582800834158675087820218298029124179773152353857706406771166845213368665010906443991846647291438415228435595778052417869221343902620970359030350252703283979867654871112971641506576891539350909404216300292126234234712852108395421664911751887684890160163507949908725145944284090769519699618037712827929233063139463215096579366488528671853658985428232404638733828178481530209203088315697267343925583364321632066089888458071136277639996649570648133324300804430706922817962968328613163949834158178871426219665499051404499949051322758329020397338902854257513664074283771983895137584603568593319676365422978795979675682839983101815254236665985727858888680648518945970716203467370351680456789741083210206877691531050566876687732933492002389350574436954451602342979457806030671893157679519089580811282704868678565179494942531798989854558463511016629241506701611762219757292557732222995795702695142731341258703602132593747642947677233855393949608034943296308145907993381594311461023743648260905274892609114997817599242523396972869525241668731500923820412128542613616353249136625137866287441728736927773266853389990509144288059316961768257728559277785548891224880886696290222200907105319867273320350125608327618654686069004612176551141034532831271204435229510016794790313350534253556783869192234312490521332794361256904680330454064259314334859893529878822549531857424881037641375414844998295227489027969508981498646907616443895752343566506497982594152503242632552944116596940559895866507612153399297486410528083098879197123728761697290730295301586338095431940182026691046931393035266362835832196293419502205582156281151008278370219142231861577528944307401251206982236257041351162127934474793737507085853449040251894677691474206491390247315240473922375703568331255397444736369775913101672485564252270498558713299184758438211851524915321086608709389477465558909768150090915524531843711016797043942272006065934727864923765594695847171642902578632718343604387060615267993199251780719606018199788961891441329681532735536565531782787898770454849256568315404843368663589348279115378499601462943301785359189222687135602115638066888736024524286151770771110671285143971739462566840777072585891951865720028302687827488064624862580451433334454133086163786823325729625795380067350910605339652325575968241504827951961974945905100821796236567014770564590274789801810063095188896213790376936533729872681282088478870106308255415850421334101495828542771806949463381388168245190344480504922435510003314142920894225768313480195104195395648342838316899469970689361239529933647736059673795630161780318422618261992081634867619660275866447118087603253007087453508535754908948331667080132534824971180676522815802360708233390414281170229413525360033063302611245516864922753389765333275088373087354659141118979834197708121109080471374423563241997436195814232767405600444674915694945578714935547922254176429822307573665159603939567872952083076212995729056463332797905608736019668380684152160053409822871768205430304948296407143779589677891785265134420901479656996958603321761028398322325242090918749756952825023624449423568735010347018741990530029380969860908761494567287112680687195992424006465327711570046123469550672596301566722909054455688966949036381979374684658665340679559719446297756316458243438624037934898047300575709839515821613921444041889422681665534895414328206155392681993338132341431398790872065564411761005197910307921159446412482298695403958669789629636022480766326311185609381709075532259658171492545809500486428193072375865331093474102684608835101765523297927925886429690577225713908291190907196417085384594544335991896296182581379576619525337770939593093755869597915058546959060081600343557079220572841848585599616477156190633768504329365545474742979308228403401042147794004948180654572922448342610480152048933259789368235759477584893907965398613200977738878389002306649650673186526505682839582196258033807020970898871414621585654426237525431393842532127573407453319116295517118791369927035391723508149986623779442841884334571492927103332266309932715918117779842737897501478943326849720515430723756063998772961668725323470990717464054024073987653076499928272555573339710224468522819744063567415442339895224040425483397695537147315990391151995816094959851210374536599442439645586621895120731402017735567818531957450015913861910640899786932831364839009613757106272347800522824211842642755283161285869760156604643183353361039723374601999153889315730285882691609204948845413009226258837771404879655160155435937451107898471808847009606077890762206936840737849633609634250958470825725633681267006429102982227999157619394123050106656193243852913122708830715674719682021862720194847446914775099587377486602963126211239362626843231533917193569137898919660667127709734322808251984750619540620344933307037842679837994177188238477857304923986255856611633528615279571343531452481039163835170550778772229762397920840708871158662399192331933649557410994937541006679688014265020731066633219037296882469804080705418631788519380478271412256541799994252084728832820347685848972552574718194114111004174156679999964197532840324093311906319210471346702337851518168229866134384617955922289227272479295126971190232496391380440439957405009271208186132542943749468080349527402878663862439341710885765745650985947669489218450064054656300785760186337903961142713096570463860917634603875681169616742477001757012096224159952976060385348857001481403137001128029694543163723511250880211913858542622105689948995183018091417190615926369347364953071541759066678807228201488291988205155707763583295672191122035770424951685061882953088988913377428009260557482311908831910313193929933455923134282290824495258005239231203546840959181180376700411041242952060041674976055582275384027855722899442909707922037347988086735001702235402887074872415687791506214652489173325524770184486333604237917427498553433628195137659386276403281742636248147200965705761727339321971370162499437607223256132787424937777858926933033596401621334413649840271139133842747075776954377860117566491086194270718291744124265444598136378594344020432286589754638643482729148367579090612462084323439039192344334349677277355611142132001439444322732038136908572979573632674477894386577489038591809925988629697792589137470528577954613032054330367752203355085505264185246835194929346835243286029416899457532838210307005971426445390140901802991823336647440778847072021623062385605597582213448377296299598832119434133694583446147835969370283268271410484814528829052616640328149408184024376827980831494520463340131479318752237377806414495657562106053033737363146674997142819907423970558598153503666209046505844835829037062788217951701095497639603291046554060692645863021268740270333376287090086360775717231275916195076539133776329195822156023957434293446887129808461218026897104243417090833099109858888883525408594227691776828812075617943969011907566345241700616320081014184753329081130030931097586770730363184254529334530976661529175236632365647421690422806169751560533305992507917682502236464599957033774761084147501885998830265520406832253239105872448941321492042015076366197289000406059272042496276071999299976515689850478820851909803573311574154465550052413149012439899507673779114797142127666155536570002998064352235855946334029151965574477372577452551736846772411482287637268001963584486242603798649865758213080512548677536718044961870015910447387934243041878546178704578543664944284385030411648192666718497525267073658399302540061886594630044259349864218873674667791401028992193519034198473257602258531948483933820611464807036489978670865314053173481514324651853400564085301928990763601600914076707687486498786614472416438426254922859816791081292052188229151944743470410361926198224968865018328788122865526149448724335598640670553488667642160769960153550823282418270715618196314343109296280405256938017210064387456093585636653375409615209936844109006423455594967899258652717374982980371763864415540833993324732813095490090911694426764709960605136670340174411830366225048991020282241044980053063939224651764328196320044478643107106451818292490155470746630136658502775050796766694470923111695074284579269198646547968976985744247120250261993627690491868938537969774824130205607630433892247367574753831471341754678297496244770665409381981829405339527866772898388482829911423927736324571601437337526304802632494216545565767197675193472054649944251600989150852653750800251075605432655377272342230719696794527224661597386602174168903912272254713382591553228452515226694697281730317552536710851911358876542544357904129824103543174423276434327137065420996321570636406096871384524624566335269130122078920780385412037602063411955394534694669493091620795819911659307574198269298778666503659082585310210717015018441367529138484739081922356470866562195031986519855569037476710947140876135315487181593027818838207813940008699996704517400589029294720495124668073909517224305516930104803827814754464193770269424932724336812520246015715348610440607590563320374178837147535214395727778827463861841608721343254982369004837382182638400925102155997628249241483239110024692789253625384807769987524168277515798144534559218091235201623092356187262035618063713743705012462568124886351162269475668968136190873913861168278104224664184881377491637758235307175109336365159207832028507487817732945679572288027029253303930356296096550908111234599045006409831462600113397660037298133881316144986246073840041038738952334677015604765647677437530913530360277306494854818181579855584587136278315376804648221524841805002436048592042481953288367840363878995631933216318317783975299193755242196596089650655373940446089822896508308860509089024965126472119109692294038660590913782666359794484078326763625443829738263161238512713588318951107258099419857239426389659059498278241780923504759958072822879833836706610020415953764569087593608209053046464560549835109037784779087651974600057493782685696226892365647368966400237614213914040885302285301422924022934239184746072891824401584031619657037005116503748328361213051792767920294958449610757873121931236279249070877470494027720766863951289959581037918255527573701990356398551282402947935134304701498533163414882724147087051137221073263781677079570424435254240265878491032309944218504765710476292622152637991177350294554041471979736189391641364679582508105253622100956730870705995351102328225540688081842424613290550341124636820625956442929175740192009705746751783787094973834620003515202350965822051323495188128809741701382800727749270607384295786765456512232806960187359279384225029823945265456615376890950037612041625651830107353700390702915020475371427789436880591732030271185778991766663425716426953716695933183141768646992039329287314780654549961055635858785803559889382532562784277975277486959058290178435317038641967791407650481298094383876881163359953474978349632584042566556488352302309715263896108526328413993551737005570157924331455713392635064912691032874574336801684708832101983180572589963564174994799914117646408783098587388760126224392915251351274316311424091659579854423119407426391419957370081936863243954288891892159073355711777251658869544944649051569573242236049429106113988187879781456923008256816350893376885360878491509761407672722017652632700630404298829853236041000240401829907150582095348667865854914752310391765304392444451966513425148588659357253061878933173290841634035522164741041543526137582181818791279065282108056644581700818846212095327641882361937393715845416545004613763475572691672524761025578021119822121916167692479946814851022110835468697760470650797023269791794466405825458784123513783915987868576580174717357584005545002169915662489343277570531623439857465121125566976159579416550043092783958064367856201761093695343227442032372778292126410727927331538805426571871952314614760851241207116214537070523460987352852535263985551737598862152283252706233171771057646834420711218489697162632921249061416662418876041786839653352081340399319997458485163686764908868591045268078730621605021495859193782271492653332286096853650503986140379957839323592680910778905485558610885924282242259277447736511781827001981388531607305680336579676271784577742916999791936962962907299726810304970969706175036178487280491571455323402489700865182505718413909708998144321086327430762953464830106029176031739831629885580769714433956772901529479249489257305310362880929885710977420343390389424177496084967853115875752446072106263522179995794483282496498179688087770356049069740609755815112095162050132770910780391346114751004969867719578046728236822175885085551218737882384355023971353564767531284887511145584394413075616690802194047054025092561638873057995935710070954215242402389738661449843026964361569759383503580008652520663448232509342891281594682468813110767064807271539213380854908893217446305978858112744253448813196217550745390469229226077868286365875156680944750478626722735707695371489726486013628080150844226326597221147118721715445818774261586970793886955923103553477448442710277279181265419391255476048443180934367966463340428283327337418506298654994600120905668609109495035208441838991634030696334351997137223404510183936562839490571574119917388142068644918856489681633355195066000928843332524806735584171337496171505509342637189402325303542599384394187718742088145543543561643034891031481520576588694447827064491099533521284325191049124690543217380510679418598805440128942512325899099623123240538773982101446405849655974158659523205814498852510376930654974893135060329360744818149989820111827492778152011324046430383400093022310805472595975512167467066592294443857107582935686515980117901994804535824717234503017639891490221449489021601986841517587379191682661098385738453765280418900933755032348767588757658350816808489804889946134638467583582758945004664802602247079596073112347087019012293963842199250887685371119985433129372429484757883611517408335843753310906659427013258032954398152692068105480421552102479651145454331971153057409954937838369320017065641023993968520341513173309251386082983961034483756434854709456374110604561666832802636976055941078600530148540321252825322327251732324935578822659395950837334009505984530084486154937608307729323697805390206948984365228679285807815810808580649532633173056468160917851471254000880722579371359859196020321176985166181382057266644879714560505647641742736841891450673424567564160482903098189791759567447997044184815439560470233784356812676177157987374873165244588210016410619287671529519773096125795040132799512512304460717376533044348897583775022006741467780169732280054567344994253724138458236775963995722855459307838519140395047441361758910074146226819297696949886128652985517880249933196635638248382941924743192355842676350731985803030153430748618243783252279335799383568537811327556538647300247674306723758445557066433223967058378975019401109845845303120397416081495286336512248395115142651395213619949280477614567228484431285659615449731382785953307673696014941586370703621756586701043035869611457917148344582054822959711665470211362772824935407946290706014037201690357789239932630327260725450600403646050283809296100760006762109358216154880968279818045908769907558279711149674858710365979817790055992046199210862188333938643676754535782363369890881619356421821095595110093983753747755465860778655943306224849127897875450813558000955361863224778945578216728582156558348574169205578223436150325355191306945196005289498694046865586452883932391961240439959477905755435190582258127024682573216026993531237621731625638973247571162859606999708293949598146454681242911928944932167578936358775236587083126261297689522140371213333713736365700974961114679547389402162548668414635249814865684371299325661036903209843245244363745789283274532540101378735460870857849153391330184879650215888109299037143501149621191972437270363318901179929310091989720660589194991838526986780058093923091737819542985085168466812992334259466707617776755886208012614126146408861560637038675646128881437886181688406921057373100714712755602825523846104942873199498380141927494375100694790609597627570407425605279204037351322564372053200969027126178788419582439234331652524668209425466272979348242095027327770295359815649824733818061639387154774919753504932179174320668434092062017580847783051887549612442395201189649070476601860635733321398793734673914908088123513455137740715586822235455884575446863433377540313871302626071462240117170602401065225491198646843096415721944924460282817325253667035372300424249866064805311275019543565232256873826351560617978177490363147504957320325827228208790158003703947220784711440853530216267405066505125616695005739908327325068995212697526160602725247283665244676995469356947594725756685581189425853777257680983976858806496441857538717290871623665842954600064572836053138758138636294410431346299537418277627185306159193426121771320103100211452565766902870974555331090738581112895514039271668752247998498749917850258926890214824595782590518644548253086709605415246391648674819969569196375971963039809610580335461327894359818435086974525920005485900303729616830719576226854353641731181745095799331647769077464027402590525538809186293686045867395211331046855474844038171072506636910145573147382825053570575661393917552606951868964925034468664749146526156085505037913942029819942221994735438231783223036847137330247485594298263804065129848919712773126979399424468368139797193089451531301022820717602411322963912280618157095376184520228786336178426103531073417592039782916543702395343092259108501080565591877252777554800270019294614144153767227568255332141737201407471347884434363167591614387225594330494977196123384222661604896439624205326779704143080241164011968089101092063429038027925515696795324416192834866410838286054415369964365931969137777870059360304820229130265145922961345580297182724384196876724370844926367550705633405026837199449354732652656320662743808369958263351676070823549529856158343311952439229700398791067526831494422487587059711975013571688080770880163857843277818151302778683116858919461143010895892183928971335941392888564885450916372593983597420767157074607149752460598639896695746231577768604879720148035767956484589821970288761612319470132095592421448835550576272323443484264260117532230618223035658508047011011899193252571720549962926641297735042850437026228972358528162675637896302038984743559480612173873906685354384530392931298819388330411834237783614780597575058406622541336293357809319478196639297423503908480593200697899176788339686913197482588647470862799713132561371727308165334061394625685505907275458645068646565277682555342972140883383727882010289029324031324210200261063566424436966120830417686932201048993451559732117466300908671200835572420529225106285030294066927058050440068181922735142563465843548110959320734012749694900025447207973603791646697031950338328483551676760583103654527085765549800282394782231371887039652164207841403863200501687559289244248916432107962003137110746260693591895581823998836591531097004235817429460073596124743290572109290976292410410656620923503792443139268903030622034078705847521368443498140066439968281777288328306808296747485107268422856395031192396793997022782808329040391879427012564031731986705480903817290109382677032761818733382332992873542517912146741696844438416099579217349254754115169550363292946067218798381779848868362782909979843021720417536252229967274325716308033262679427008834667993123722778928049072690634359386334482737349468718088069450888240689972616587134375187407124435358999357495057639105502602348848319301097762875184555561427972842848760393872130490902541848842697751401162693761395504585689904730039876222569569528522702700707002236312782756472091890723661453383150645086601571667250304425313457307614248252993473550820094811107402642703287961354558997238769243881097597044445727972255955821483185792211683819202237666014705355033299056638996113950200355900395314314853199973395611006459629555821496162158045516324961524984625491338666155661305747107306606494761259251347398672404294705271394587005711446177435924891999977985398589155458011757075458419857074644417157352870883181556649067116137205248421240675688333346326309394674405915392812434686527415076367108332946799307960121322623629719228890611294395686589067468858225888839891650188355330752331981579035535868551557820654682183321590742910347469567566339248541522364537150038862178902634313785302662274488179999873853323415250050507599445291601038492429647379231448519967640031204261931101839001074559769324574399651968221115701722500007801852007690927995274819572235224900924551021008329435060470903821762340123527848387377273143198123533121673507416247841954632534461520828912237804692290850938628075267737336489167527510886718690748573151179871911275897371721222006979026862701539770333762353916857302353277808051500852598175329555080787788667281565096669161583911272169869938875911268864848545345289838450017200753178809612734774403004524167503239303836706170710130550438058717306756683353374537830368559993775908695130621846552857923593391741917120541796998725613245326657739756970932170562193800461482857499893752316435134747073658820981060577886541651473248981787009463013850792559222607297152262038819437484391431059409599258433446565768173968932611045987010037275435251163774416122729999410186195660514215969412063551314485971954528608097486825487452445903626047313806483937973446818662497007215547106019350023864838934375622763501279258494173264366237202327855359419493045001115249370114763463415754264095574739430694456354236208121224117637357697086777635930193563836444028893630507833322803667474394324865707989508525087274183268352719951577926527198763749979076208438946347212620360783081738142804787855497828978622747244177003016325501339705372417682815323516176906921997025569996205464243726535775472510240312994355386459483147019494015602668494303183783693655466186656625470825860748948397282515589160385534950645138474422118827562986206331356921343505354175325462294273857018514221604797918123913581857023363813544535711277117194321660466143101547419821554929047562109018957208060623490880290406785456674637241772486811900742065578482219295010659668353520867908758553449009271325107353781311232860041052918835504828256821243931809785796664144164197438465035975431670418385214590779433577314964845742148608548867452913145745893151848342050585427211602752070105302881218204425718504079717735193826444151430340000389650835476069521126143515144940969915151783325851724798947405242061004598407363843511382982933537028551641532818468987804359217581976011103718826011571521219899280357546083887409473752204063912336289828066187319532355292040142200095154808807061007453865639725897080303279855124057096752994877525034838119148447639606902399800858875101161290060080769119438103026094948065984761969048059321785213998286590163613972947333424529757842997590232889212288761745364343158375314378495746088747373425879587582199019353898142294239179415156131539793025146413798608959887675413694323040487028555419780922958044698990192904558906846597838337994492512716049413377907064865785894967575994050617557632934756808289220291115491864882015921461776544992118272549886765689622517063614832195140603084486884294749081714122766989529766528467187010729193377929282443532431382852063570615807692592826032221194027687790429240836532323215102354075342321094760532101716780478896041685107197396939918618794634618967971354678672244029051644439647829326694635849186615040116550321379582388464035453370675001468245089396350840796338833931644002155762948765545149622984945735704556398458286539010312031199558632978985996427424165456402215526931176182193404052804977001395818569950450626908321844220985806560360396650520405092652944916311224741224398545523345939736021584889595645760356011239472260029091102323581832707760318192895789319120042282972271927680105785644667334020318606579759989767363004515534412122274649211784192104299302330475459340814869573388558531187892572435996247019581049408342713006597163643751657463710249870536291692900609979797982081471471311289950851849200398640461465302509949141434035836955688421615182000667253985853203567078753447410182134499703959178739753496211472367771510750644341932067097848101390611946814299656594694998030150150504394991658193643406175471200602325330510056856619953988521096991796810306515662761140012393944127405040656002217098547779644246858748631969461895510351333916411959039718938761054426423024644127859663201484795527322743409286346200984059824533857638615193364432098339181957496295052527170415941103294160552007079700445274265503291068016829182150548865729790830657332005667110403931664289460739742761327206991377358887764684076726016450379690906737624912318156946132584214651124301808862838501872732082930493205348834908022579996208931538204345874620625236296812240775571667614708332530743518028015646615241233577266654596895015351209640740987993352511242368393255508040779538906513598486931485726874899490140853001062540369844024339857382126776294549192772819270727100759505419454503790918051636158083628887001538672439450070274989843218556764740324714392366484341116062093101960182503178068353985725839133571334493036144917086659797233388145309217403181174775203258167433894582649675275252036112627367210976454313402380658720112513451461172380163835947268752281763835665589618861321672998939401494125103564658336368877609065883769674182919192031194564697809424983860904160330963764529279423419300230174005434322585462509474354551709683543697560356501992385147371849267059723327757979117381524743531633424117298458941291075045550428858777627373406633041603918082687417260659615989336077863307019922231846664888930452715240551174612022301603661921939366157937867369615816259730058212811282557646795949402814667457604557747067390220019769831825970029381954149275908113373323605885877787161006725835962326049600160589914889342204736161327100754523004843943109899916372218862326257224723071197918230494443514033574476639708361069860714457006927639663973492029218346297644381860189376688053451277703848156908540614032803615028038609490335348932303579251173935304158411332654712905673988844359308222830330322211659298541919655979718488542388715808914036930161717257001557061483690681274229550279346352264500686934307748207466636874761476200227501815517969782667374145950438705887238733896329121395730399466305434028913277468168754669502161412465503700912659179830290388734841761397234339455693566008380160943556137855374689207145442337764671963138464652631570101713235839748746654423630277928541904501566645788185997947897125148114050237769026172897930130806565716312121207914290705421508889837954536591643551233417459879480927694175114903117460552245578545813558670215309007703195565589959974680574161333836164169114009923341556438683622586644280794033626701052266693619246747237136409054289852051883510036926818799746564705254506826839362640699442231179129973336410667817359159716289832741772887230205260980424875777100698819624037291271628455835847840340492436487818337243203716187881493183663213242424242014718798660129082954490209873995954287213906677698275630891679421740168823587653975042030244898641889636909631627012055768196992915499277514254378812946766508325035126716846644844454724041012452806421783273222776043691610288078358871843710051808401795801410835281635163603805346307638919476150186986736706050147556545191255634854744061620273938350356278561529588946817016999401433231109528721244827047206054602585006670407579111413682790697868658711779204356114892996871988803259034954625868507864515607372171539953391070545742084470048998112828994216021222092624494727454056103582092642512678039819054526594437375194281321713703361259105755169899284729469534242980723256290258883626842678447029836313294966054416253861474882834798167322881097848769413234367188334829751327755520981118356612998485687021734497159455814205167601363168104474987091636494315666700163412473152631466469447022286028071181399281588875163721426683212141509231720573189111732882598052520156090041554777595240408913500940365197084870074967833274323358869463126879009850231317206614113210860760486195706356624523048720492970167945781458200903619280678213945893743377769312698768681171248164084910525388423933369089463540923580231081725576349979969436459754448948566477328044988676235789173021502698796454984277123360252396013678890263912763167334869009946588810286310223749553599501716187794059542720325680750991723040604059244759347558781923115070860386436400166976935884441077368702845770379409283494140282212958640752706393539930444723850843968852757779835520831758107094826865455149234677116451188567223807600629987818448782700527203129388479982097194320227571363520398880075609793549685072221738190964275756846644078438497623595416437898607166734860499536429215769092696151709528254210860266888128762132282887012394111213560849984856022616743503488305211519952221309472231188245473926080854412153442104345431104283533610723224461095047549030823849762337877239798576467071485072701155033507917688942855325655578568914111053937681230076417273323355555569581979516167876516112715880238173705812584337644549639320903363088842383134647413254157583408532870162147846752736603532981421989990010399651663985781627083589624813758112852050274683143462186542100287357984530641972173311190325200734619298128722951789824511177032832347598640395627061908545507358079165897100777640229035197705516514631569542884142437557975709689422328873125015446591323568223485632308818621486917525444204250311551711252093266720935244538532857593078572051963112677159656335359564606638121569917613427105035796893469256097759229113557550044954680939594198807691937528886502489711246859161951191180573662336507492183673283957490669396689948638812546588558883830330864279223545971614086391328016968670609674779349702513696709492118518268068371039329768182793490904880992685297949785573337154568122911908288999964961736727582967722542718264223286640013272432730924295092305662213469775602749713113774964021604518693358959943345170131474316716699253553526251918229606855110255210661769391305899304704401305553947858663168437691828647234353248593887797337000237434440522305783385042336974867005016002866371635480721425727423634716598259200059952735028634294139066792669723798730437353937957758746704387095073567124554496603097896118194554170245592193009640593805522942769217350988195033854243901962235565665095981189508495583475832679441371943347770644174306876072873238603190937646745291892183927340565244912505869565176115620698125003931538845818440649081930551382206808102393363085653595383285081518528602490738088819397197419266456341614484265115413169562835251959112442838262881010308475545489736902540358823648314244059506043336372172311369797376625377898329148146768547541189710236465877932945245536608462987170976671452153935936295650841686793887474517768464701970560120629111965939271694287820010473842269120842037473633883862747926634381707460086181651770124738002689102832486145467289464377033943420464842419670256187916489725183867462223041651600018564312996541175982085005633239524163204667553500133537296849174676463194134992237442472246330220218595474064637882118823459394089968995866776637011429528531270793556632378325619667821366570922060283102565391354011906621429239381641120806961721604380993879930032791351939616054590672596572424438866730988394948040500199586995408776106691389068427993564695024599087865610481526261948802916220377285440431076191523309676134565789866492760231034670807839099262754764500023111598815152501667563739574019057703412613420416359044808390765374858277752596662854316298833142074778261209504077604333883663580243089244840348835410287061473396328346465783579669745925874011346345762321608104239762225168959734768174285127377213488843126429868916706963162387342001469489852142302083551071071050255718846277856440376053415487371340570353047160477106775293200799083008579633505891364869774715093761225628448351427933875263674570722200256769127483422379436606131986267609440621051523719848597473792974061772433307773538025430221894395766769509566727981248500848626425884845796771935614664646260149649514634714900618867260130216748107466054111926689184063788353110563044170808357801999223295643474303295979135889437938009727044258215069279799888314467253297689672092433109678778704372547040496937826853533277996781762915186712775413657266836934910872925660656228159152633504466949756792294976458396040312478260968080763245729179631357063805530181795061558934619200552502042127689204726523519590844163705976227580527335399057273772924589843113466208946935684628077087959342361434261835739728412166526019543848177450244296873787044781845808456698591816757459363007125099299455902157979712679792868141836179452938114743834591130494949062545777573965744825041893661050156722391140633790442693276717835728234784024292290403767470039713468343855464064270710261175300913084761273575638893444957801436719780138982653424377606720487305659206933281697377077205067321400057367553449808955405386888786715911240760240287649361091464856324351392282896169205384742208960466080590382309965918933425890790062237040800669979202979819440927717350270127336846820867383102707947935530220822775215446092735620715171955387489668190846802860662680526626173073955928932432766560820558926492281145720789325877823680827930505003074177435351425876432091818543266940690676007919082134203963689530945256334022130730209864586297689655472486526242846110473665750904177173205232374140756584899323927086821679426432687569473519121747691111577540799971999266828885079390393406103104213296468250407706477052176909557243268596647176986382914115377976976000258192723944692010496600428508547001480918081081726650456796718668806462058478809300711671419078497133939149939952552454520949465078434971981036142877818403322057069463951547694697276774770642486460793923519565436635083070252079824653742742569969457756462611987386294345328054150827620990662277435844486270376709248843139673126563568059785342858198446090082502281505106367269141887603978831977318626572931421807329055093538562444488808705158512055619441373703285405475722146340713736932655210869322270942390754299408994425444590686757411432252426167234352191278258543884559516797829932832364273745745254454605293989680626351373358721485080882020551865995803408148832970125378123505679305081881856850573123325755554241960542735831944797643249922882266043555852334960668090550290521633778474635193474971302232949396551041598783974016751661859360517933895039246620524551126883731112078525724424579962329445016834171359514025209517926468115682982031361882739642662332167644152469548755816408435821258504424767069969380375857300390579011051541477955717916931272909599822136411598159520145861367892066666353218394457911294294937274642464823921547797561573367089576184057532209850474858357089176635272780949535427448252511373938291237833518414718278488180937762594672554334206902383755976584674449885729710015336570259383860983788837055966165661226188124546387807403643775582925934013645173858446245540764902961622022924479177890142432724924562461057283299442767967831448193467055175708350294256732633526490651414121023786109329671886310371717046176289311616725902906771223985883659641492455308120728570841006607616854351666353034138280113381967791228997412665524495134833893463618128225649905341150317914116709383076776877423256980342914079980291910761139653077618040762219445151940260406347035679935388327437858815201108040649088517527008205623802051286421842482300263243205599799834692623266564470195635730067953905724415039816423908213623513271771458619121032811235726993308766255344089415120517990273147386818262664447528040672746408572380155038941891259589373992650168775274376974153374817242203770712866449077116260315441711941410834860689952950744477220336274426681847119656361571377242461545607047965087831290013343491113629297558360906017594945379686150681790850760756621273810011791829307611862991163557450260202127565436095113856909481542447672260734006103733426127360804485531214757889023755905771131745500941185974865296270588563917389715951598898701417586964865418532486377943378050698934555388050523312494984188757304644473314445985055247398653997073462338193980085773043569547616982826589381003060241121866568598020725337165613533509921885956010788152195599298483073711416176483995033003789882479034541053250205495569358801615459891893688657212474896361367186281885464478617924358171011255185131787177450430735364502976150729230110833080255153495186929484971690099173039476973337895650229561487787804836658283482754023019230369038581978853430382855827300672156130424767965099736738986396308459533099446736600527895351007751062354051809506207295912147787926626338542879258977595863058064650448452623913353834262705043086700946703622040633976725299136518784230658396670226258056212221073354116185029363564161665577923776639586049469324455080590361798644275574129498302104696986164493137010370277508486015396166586451285354530481559829638298598154556259248659186328817630110149973720692015386987741862165578208788502897085678297019269582769523940825795893466666688391835881554906943683070353276320793494510936539945097204283673067035144196315528875321482218932596717370781271405133474738608096369456351201901843916055733840805166382914886247935137940371319796687585625948294207463241614819626828884980096887564131779026576910555080254322803125858998458287208325735889476313492606249627183220073181354243953643770564819295399570014455438391087844914419368047106516347403117037448245850518578818068662884417079356604269800316323634912030291975370099601066619389621731876226707182631485228441727943340681810310183841753499734969790135260460838986493841708529346927915834559424778741475818626067224662481177224985686229897440438439218402456036091912369895978248806446319555555930832816734602312040667007248774759980632684527320255701562168766284058326889493050519390050495049587015400348542776024624858846666734238597445456716114198430383570639742666670385556096452390357020107365232835276920677221366635857460807615994825758902615564428664967372569208046851174626702467876686032287965119785761644265002553662207997203999865614691551199659189260998756919572198275509506475978615626474235578645011389704199350997640667655712085029584211559149472907523553499274100851294919385596259403263820252498822492144447558827002900367951870523576276442355841833307120460124629939915484195813551255146770934471443309247637321501186127983818560255716314174426442103923184124861561304709814802473388125696051967726943832149010465240998150118339414506008422291319416099500996449619633076617168027996614596490848571740823780571312943966103687727269790434903189674932321665723319037215414610364718842463568019712570977124204559927718940163080755579153180388638522632934912286894458712440718739851310980729960000540296913908632667141792364975629719250212883990970848468043907176319829838625897603127381810275493426101282445835103972461726002712472644102839306036777543984038462374655711776604274794044711025322752607088191525962388103594491210025921567550999035984902873663946533362227856019878524480781200009226725563043118702187832547386880440918833104825515033950623703534591157569487158440812225354661461213368329141771387120791132563299696105863063881455038293070650764250040959783772009135428432873110669407041999325305683169533185440621809608346131977993381716591706548795521144399346369103913258534977738053801424940934503627616581368950030951261057084123445629601328070394871467589010166411517039393214698903026672660584673505964752748056178078679539355103268491298676656542631273298852919270082470877400221374311565869690760658990854779808775648655941308902704568977297419559655010922193569323849781622587517646552420925574092571769546886051901000316080128972898705286108542297390939681507750096597173714600861152209262260852708298836437362438779812774511708223680806107707741366334795574353354725066344097928989918408218150200626290058136781545284857759527335953597484087245005388274103999870195212623316986282803438849726914169586295036202722974886898490039741471616745751141334602734497423550587807218665525873506412530832457388035608515766265910084790720477045368897507199743566506306631675876113475164418905099495304411719985149916739766229426944516621408087749135536734530651829997758201465753081579408167503572563130826897527686949131751660314196274122716209578299745125950736894997647865130983044553916761879316366404096977873117158004122655528863709140625817884692390364398767943899441959633227733151062417111111758958204213822682471585586231593661531289432191654892821195976227665814359674319046931897070954625498480234955018692311293664029290996670086387840042890442086248366177906430206330593392032243436516079432570246586846689771534328077217098798011814855157928164449213543001525299613772360107729210859513145995246165942271641574763236570257188061170634876292627323600831252569965434321893745077967445291542789471272289470446481314744124221166590081005721723304438700873736053316468302928700555720019069943199870645446550624282172711712459206812429481055050404705924105288357400656484547245607487562476347259620195541630808699130865678696787553970081279117686691949683813515098808520958276792948785481815843390389576480289850925724608625300614888628650306571986579365615795598257299189432894771618962056935467280544185635018462634426748571556088844337677677518111958796316841853639123374976612377125870557536771425535452801023619128824660846856736084934133311957993354042333577358896378053183909344428049227035216223087149443606730042311797968286390517195157505209765590273099670998902005130022633264738184520239976911295246061557293366996541826787561464474369388729088789425992271475632620666673290809469862929534311107624328164327360863086413386486466836833403411741724336137908604788056800459754328933272140608034447503284344114611719096701762539842822668646838817061002536499007431738470008614817616431964214609199373818877654827069979398415393897490946103080608952105623723373395529906485456547771113235115058351872397486970763522933435497256100301121589126783284926464529265711611514653003449614413040707869371417923311666247696408763548739901747753710201821142814214482462132048901366552314424413404287752981183566734855659369179625585315367510798067145279663745899421031188154745480752465185317021824996705820092817034714330564906110302966007788621864395862030912621953745931915501116913315595473394117208613535884052045859273604632198270224071542061403310961486299075908103313306591475749539436538701843065303834279040143059829881096866287939606842134010586681368770086255041066965536224307609748692066674406842755594708259403759545439328126461519786010940922100394662393810002488578082153053964123626303568044502330247943343213441880843146928161839236820186918939839333078257939151876598861585265883031305482064741992386116621691904597565625333631844676895075299258677730897811322055452689323411963774158070429791729618493376516693756215146488138417266217153236227108027841813774596097865572452165349267876088009188070751445179559189320746484076199051735585848891330328063507879705231316767693157737318795949072123726379925971534942241650491860959163929805153754153056010835414124426635088411708895426440977027422823212873781858481377393550974933555114062446643689420453552379302295569902568889247247648285698792777177043958436924724006222094132555494329232680626510065606711248779978803998822145863452959171666248165322874115532752641124896656236536271790517082015310026735395882470223528163997240153464122032025797780827313551205019368428155208185549975149151101699141271160844540090762083005141646188255296346203608737167901905825189468389540468266297174866800839302951260776692992406943522577743863181275967950694370015606250562785591434151241339403032771295325310711861748025772234948929252198097430895212231461957666207592355635972669076798666123329105952796101834310690770203222871625208361195649481175299713274973059783552852128578547844286181685257107399791644850737946301947948601093793836405400303508924994891380108931322703064366040921361522517503364759125529933623450874620625221161521345334640590731527324079559395600327487909738694260663614314509347957936425282076057673668224556127797885798509050746557599952332576801978516473222357344466124947799906429335103202924170618147695710507728019172716654227202802454806556829265624445710748443438092473558324059572792813700931794958428020067816670302348301074054742192686054019788027670617733116985490100532526580700391933221832551762219500495602329543188072487098922493307375904553488785189577342825125096765197185679965291017199510174647814302781333571695642231934075713767834608696712243812173079896938312170420491124145158622120573819892602813253361650633270961268112735445764503438627183739199389437969585611671266838339375985582646154279781331791205782912378998922762772561595125842754000144632044579106546866732414053365861918428042262582168827371032153821229001605389555745804814970795142882874275665707581482605482420221061203768834107343704461695313565847315846499523328897408613892603743654557103135730978703051579767418648833308333468306177619964953332343405916867838864524704127553143957940278842161375968491828232860066928911605076118159809805722967611642356090547827553099902283601182556875723878812585829342112120643535136234233354548000376373539228441337466447546489972715324870623432473939494074367849041727254265742675895182796020334362260618434065482929109694732775810631500580250568949213398370571061955381036992510061604500623195895685277633841453387092156878758032127460311284924887146975923896612165410078451665187599926607299020458345627963420439715652445650039332697584161527418689052810339622772868014570270031896278770775137289513749285389160134511814790912124554283511450747662061450207874055271983106491319508431939379405139356086244871206328233097256310656806715935871203992140966633225119104450832165354362199377758584328122723097176497270028253352023603346945160822872847275228184687773750722988339131876836902638244934888564346061470214101593355370833759261193543814375325836805068692651602131963859004249450260777932898292974931025747485191547582123684275563739778101515027771884673967343974182564271586530092136733880079123112661604189172284689063826787172246977341470030337709486294246783622917217912573978588957230493800358591236399689631216138583104648370796376626799297615668211984659341559339167444688620035568965184061896502099578794947503421345106468294189135762409949557718833764748449361489033733873640844876651285799060056918035580217574328223720982964054139849176861425411357801923284322356622012533756997103821037145053611352158087544325887517731498123415979007748415485246874718698284371642775679661218822589836358646123372708731616395878299381552734158028806222896032274479197315134195894883841952929056752913582847028899729046824217811588125445002757734897566106936993830600284424883040855689756491161569382878286204590171592066183555970557350218309269119605068711363792198916388264700303239855998258529737206759685021223259479609213701331543690047347580052669731636628087675468684315441200544518109639633177996327073327007842426159432871983671001853052211000499358589809347272782613245222554744663365234690260799520188298486579293564334105861920635765802134949712381542333263308182496330203863618060743007893628480494572747655596897690479630772584358960972355626885277176950957548546741563189365444345268252226873316585833671741045351860168973900370511403872160749256572866941446343428193422010787994447931528908070441678372085914038078719202046871489540429657782742327726300675482683925720474289569191676005205232153821140887324067972558836997229770397817477865544513393695280467309791987546440540501535598421490176493970899336823681797861826371377477618992421396475468152180235657008465062462125800933823937589398535255324737030726876131869326125773333729027491969501508404817998772837366525506402719361477732598808908149463942273075462113797425254478573065620616232758456633687160410545655582196322844425800161309229256116952170585617429297116993729879855268657367981622307685949173321863761507735171533780533639947253173790467038575527223738278135885645323766083898120229497517958499014168966345218786083583841189313847283257686487347462195353899780087542415058674978015601593113654055207095080352550048121231237718152107298003231017591837862540565962539948544710762023852340834150142189018389630276690864606288997315830500060541661052112618332456308874942376132111738323599102671544333398090301076751921560686091509929757948984709134048477603725331648663327399774574170787058858498903647825050060756527667766673018142798346299786311547247190463813082702695027155243458377713288884011332285612327642475805491414533400430735136820016710304896740791322041732936558863808199024025042475897990619973944942406139385900204374508171261603627839124114726820908569052683742250689109919376772207776873712677015290712968226158437571496653462961540352898069849819902381588132490072828420316645458645186778718177177277928321252696832297664124549673971527879680434765895761265338524573915134381378450051873859153296341405368948443972255080119607926902811622936704343711583719538657786003419467130966534425355235613503926374333559024877800931675855665020261424517552023105180379792416018681653272134907447418792630463793570195725465687076964902562831139490830659813925877165753432905182988307442209315394562671891365093277852758561418869150584311281806211645338346145649986102799088783159992332083497034990096448289736199726084130305016138343757350335026967919910039457648503139889980405347620797995103556280094271198077141386253746894200671129290379402110509931288176786355712128822058452590232988278448897285576764337655132098372084536519727356629454075207868377482599376950854745853778544015186687032127032510837885755352532742246745616553017529469704928603493523766319377581531269112157125054564936628404613157549323436161143868941551917955211604032794138704059736596828772355549369536724926033527449892888220448868443652751589546895588589071831729289129234577442844192725052768475503870270632829799758538825993879067899636766347263679970911370005004519151507050208574470532031134283753039645068373494746515254316164069588396569604776248100769812576232402765632471455867811665356335738413320375632857711145794773611775891097844959748713454994540500897494312370266916002277962151601644314463215567465798696913430209173753793295373631029348259418485153134577006494373909764208589573177423145767288296790675029922315257328698330263412335263163490206490429708210063264881567676324254446870392133376789489600125136265235472565170222559556998628425108866896847107872600167332422156251242927213080559326221307214093686435499689878743035267688492212318344924190763747157474462521597457646635724275279522289150406427767865661151919331918178305671646530481381010666734245915686417445768839062419201865410225266970615389099907254998428548419566819245451974709306142275315129844530918275771513611816730358093214603225847235281182550470606215426224324551446896457269382316655525095989504109342537430859997971370042588583403044972671096299697632336077767437347987883567301028647138454592879163749014540664751939489935221236247436613174783048688463151603659224357676276234466653958979646879055292390270201075721891913821483162685249049584867543293124182641346627228209365327728397667557267289731938129341943057239620723292007186386746670306364601331111164254680251228943053311250985386012012360704496997852109585987532930327716226798230551076769268000220741884903016500503853447597101830167378268194361241656963925229474103574318517658365603412327643390095651186326079173389912627720721351617522225524182961243396282518232869686254441186238123306403453315560164069574723203836514566355749873441168599416165518249604259798392678161314831809025345071646664426702627611859764913247682952727805703223834351506367217706637637402490304659096285960271979725537800141820199810181398125950423486624834404392113648723666292020639396288453144837489010260840361484073120067415622915966963669408360326433414963712098545475250177366960197146178464515555994167263739708586495987795324215832821841093916405283567907068642107803466075719798914815540054200510730096279623472724997011221778165679844919433222633415033856753082446773410455032742856115745538742140007192843017744731423009836576075155127779628101472205306681742035059679410509804665631363778251724709140992555247103681267051382467521172005284942952197488628489852778783562106004878127114406349908816459244518980104429357083290472201607269660461984260772247831071714390934928973795075056471053802916187491886994635301357293501873206687311501731531091296794862549795815121682207571231891909138338353447102365979448080471233882744403505346799952913354609413927284465139119083607622657983981564246382915999044162845276818935327913567474032273515068909877547218155749984883466946222711943435139572756093318776721574285783033018304222517049632971612296836752748983294723150697497887414002192670067206567729213108493572940763592895618281290011097847243283038465197437585736859123098178360303140528230081302663133041399253399217941576479853470817863611377200140857083863943770352918349740374183511622370040173188269393263087505487566452909326566503024394453622727917080038157851325290236510568096258917942400163871496121216946992544239867472620600571311538783883388307801653788387752115931194493595694917939405788488606239594441849728928723084955792607211329771213723886969863602368291622254647108806210944791323990154066781602893469428215506272126054179829178173824891997338295301682667906177801353365047188633978427353358562327918535797792266270380244569682968625491187486853054978579659891848621862374855639353215630489928348655615415406495122104661037654818060250676549134033273862941691177626381383478511836410569996609492020448950262944616846685510606624208831453740126877947813985957776990398770739941703256531935561300052814359945606126160832235899032489565956752757698532457440356076128860796818576197717887655619852375274472235992720206023891671879081470886706830279398976837802333757968374847167920420561188461443508423836973785948258849782595214143167689849592131938941287506959614919327114703587453366081494375469714291952903101938943563718359374914830742304493402959628111665238995811060009386222162265525297661065074527135894973344740728167392634862226297134715553293624445799465082319790876907445852537034570900774408153416786387014809967412400383780852342739778817469108053533050911944331387304083804306750603068626953212452290166750385631858585931743776949415741081057274944438400139915229529240168066745842469660556910769759698731095078451825185768980009394286371219101669807885171057114466950703127370696200473003567536823520581524918682390839740880926485270458168006391534013493735254715092352704416192657211004234584808532239809308197012158641732913053258987171588551684206065034055699685937159156219395459555855700934771168117983599584279819556435636530938905094196464188924341766121771175457371442940272937717765918310744305815153159609482635063365572386141392081307541461074051274134813889068752089651754728644348902015018720183661384172807988272958201897748612633836037110941408680441463818997551441905115201402418762897868823386652887495647401107245990553799217515564781980918495587675277828080382262981804394156397956172569409092951857744788365159447872068267859636945476370623820669620239662066592108127818321912746808145303142177986735336848938082668189691299983519942232127263877159757642852132151588371714648542881242312246840283905615779681998978556251027107062837939943190735797975362287371994784521038316866852142082201926672315581011737244237560915148938634366652657942603716828928158069315905715237948025661912687088764750695085011137025788023338180190302100297597559268182163595350706418857190059497444679741742025213094724619195027721323724702570296163168146476218464364465179953587775904809172469556739679455373497103221936945596277893779193834069725378841550206295838748309619542046154699022268434746176771131973748660008793544360730243366328086536847335066870740890018470306769821475313373154286221515513181409541497972467067634369769645830928679521201994140665404326668344081968691862291765441036492080785729242338875506180983659122265379728841112013069101857603049832953269421418842594286621469527688063208257196486713422469852641941902223624118633913028417184472482275572337996970748200243758037179218073420208053693574061876566416960773912090981349470212072519721369964234420930547846506923744649042088873263022615635791960630923699160278236493000344974712377945595124085823970994657027536675981330477750505053663457471551655837277310078578178715303161327684892535760784621147886035180402976569605848671756763665930874801609992795078717891310420384947894328608479705150428332652457188642319839993285634226860788344374530927289314609254429906078711173676695984963306217751488489933778786785978526528057054866121737921355212470239532560819067885280383242296807554471743774895014302315014696122549489533836275694486930467419802292255506508742977275807609510687982710919383714229096826872859632194283672724247744390906003680485278454385481995582874334418909552309926592958848289777196750543920577166893855239773609258209069343057898674235729531205148509038465249314006899617373173581622229445541614935787147750627037619249803638440016091361171372955766180892638646794027936567038530577991298857394478375763909267944333650549677074228596380872187039958271475800044022240421400330359036096054800471884730467828680774098983222526245316803203408443510937431949938029908124179211089542392709654258219584858667992411578844781521955749832225833567422679896009803200935486510854946767671340531034349986434975800021528683583572136597820843573260466126057046440920052064374880868404199958540869747731601750539025306490362044945847644088204005386057152518221779351801941471166008653294828106002191594469278346037982926881867778488378271314816066812848087479043023420037713089646478178559946183751062068844135862845063034644191394289376235474277758676901467822890700609268325225032463995333756672899766025424659795196326090274261515748186527819297798368110133133965162579331841940702696498895138692396126127536959206022969008742083472084083318841582683801938335897322433513641224432117497940476682416780963520356641543325415096450197791054146094374981599044579283802888013356248181407261142327597289482414188702595745493425472274698997687716231609932288504202807083810081409188735263331835842074074844657339783842980534710600237421998721176268333490920907386533795907492808928303010720755047245085118333467630475982066178999800446274480337019655502132044139642367450695370878169737996937906163784820116979627072127035848047948858065830896323128867340296384824112876595218536241125696974919905747828032629986123172479305032363770584569878577453161038667067555844068240891051181842902580329851409615733153875631143854779215298366383821587135882408201277838409736232647584435263028166475607999322148392715632124999083709893094632955985992872843352125242743349437902382494944578516493612703264233909454480862002835352626175298183552529788046502813539911284716128115341446038970316546773952587653838444574611035156164180927334625414221790331071472031059929495389595843688577348949522598210383159642062327307148371669179896744454184189037251127283530059298273937473757109927765235637036064734872478483968420374230975899887438787654284159356597358834506093612992449258746769154280459813281582587299911030078063159248172205221320601077149233660100318271006672726648894955094233689793548105579642377154495413717740799517750146669546557410080155793417959830131871546171383822033328726313699780809375628169857535292539023656811435865539828428324170005164199005176438351200575693343042180293152368541142405986805738973771720903281648623839549805008436023535858255461885594244261292892143414789826709417676045222513492987299743533382062762240633100488377452738118872258181998221942829367666600004037991487001856867455441231957351871237930599514821595486770105404782025853908333564061826222520802864866680976315610713764189090236060395412455357038066753567652472668036751767384556469669359602263425800155572089623840364771321429669219347242079872962986167579674608295971274857067903467039157865858111273825743251903978299544576743057529928302863418624254502249624197916398273490435941139589840434895757833246482216524972533181193055585614050310507654858991552554265288628752889554577367874202977037846847563664249476708485430735413284036163491347107446832985898095111020124254488464307122717488658696436722375125740766380757796859385182321580379013885132456704225278538766101351956828652339460402003567338602520551347530790074689452614361638124660209433968818299857253465435528540463610413121499376921630261483151823469420962791154941719466072066552844004435657532664143893427722090557518423691208034737988670796922839869375088816146073838246420008153936740018862573073695349973083672528101494304364563497521354531951950035076482370361845384975636163397442943098863871989880818808674749583176022298467250195918371787001546471943774402458796441934330527377861745024524970714990700051872692928345871786309174843878550639754778139797614710297480525893069221666222523537344901135398626602814192647629370976801318720414066687625545954222924938494627117755017586202137887676002980515741123780955192781815908206636365403568683324455662009516046337522568825585458292001930638153387365651794574370258875626473210773227646623152269937958253816250741193599257543470320751896392792921623091299025904455121720931896617993469495415021868337701522075911300888689023857991528263986782465460887462785262268142473318858857241665126195900032922440472840896196026492377307279303286983507199509173362220690426621137935737878963398219271111792437518683817576213472922730484110905289312739756654644015991089205635953955062268490348177834016388807477585910604735866456072994009420006312043562308116498145514965551300585461173552405216715566604133347587598792044559217567756328376722769011541649211224642236039540336845501134265424744898954599679203644242966524827350687996495015740462148251111674016381288237054926766797280057463290619456179973094448723746706306283461937692637284371025062943023983874718041127794451518210864000155847579128464012873995097762977082622634588250520781834576050530815712768164616012674561513103910717697384557873224133003000553471951166901258113520801563037304690809309792735365856491357471135090441275907649029919388200826217393959286123336572970664641027058783855131893465796268593304795602601154503596771014005799333688900402207538482513993086371634336600792371240645761765003641061220543568868817740625305700602301898291109153407117751712442370364363715890220116231710263565013024399121540427012730391660434852892171767800544353796026814476987479405571599377835639966210066927419271468108962040736111634720258986246474408196120403368752089701088063354284436925218017425121196785699110583349449991683094494698470780636754666776782538372304052848929117305480298931061328228524301397442127840108229799225637499186161909539509229235240387265633496244744690348057513565946504625030962501118599636302403654187824457074024589488060507416839071505803242418375586267960448940311842071561842663899300596835196088099155005408191160942615617799649455573893623350956021693845302940741535422017008850593410802153774416896976552390007001131094692800034443560636076613103027287389274226652498990981590123765157043277319218502844881119332011035710571944438712183523225548677264408667340454413536740399010464179288114132773295705233233998780091602670028929046700345506321135518225964545636558027046215314706032147678038734544203988775731536419729437465867827633623111986467460831716249593805163179101602174316003637213513550655568116276716483228796239003714331634809586892438471169048307896510059110496501599283143831201893252516676895589731051802070915612821279478576823150309965487013780142034235086218894451130917415520121250377976572630511758844557918166124319147934998793718897466767778272433292270248264548028499985675549452694687032750378394003665144268568208130902094905789962210081407736696556627978958759938160373929408189832602311979060514597803844941218550734723444046413633317148297819766986696551400518184541976331055635044884971342236033913005897971734678237347232923051738850500463602568199806272825811245559158601501843909040986418097171007546188477393491127357112710753309507903619794617087334466480524178880606773110645588414287431205536864507541312378920501641824559852917028552982349175681519817495356504045373588004097369310021016197409940885723368139890685230580215225783079858444498849002672215492888861292502885281352717378031820762808665819870213391861211336024618736264912859838570424605478859944208240180919736271175154047465634118048628864398751105260186007632086640320800588098124668287276915828885145355599297214513431881771664556450266633627515714226121270282902358703146786242730233599895133833106908036791228975922320900535339836105280848797434705051051242979946969587732900812070797287965358392324265767339214438047036170652959567299323441686930920186625715820350459222746011334917847686783106363023672435537093256269498230726186313109105016432061267424608679167037793094066960713544777204124017138715254147871337456602291427453682810092920558890079508483723267871865955621283765493043122746445977381115639667409274991990309678315704437927396416667510978926409311746824187884653928794391428071913722819450621119960494201416756751415522656932859693990054101116477675292564944042879583571003684509070345801908749999309273423323790664741074628981171010402778833821450983160613718505842790389539496134598694553433217338838044229221868482471011714851583471060997578697619681601243733023068446927105578932616600129599349859749171845033446105624084001095249031129151310207353660669914250974416710891804427926385025576622062566434705688881209134312965478161984539675154821081024416062444931858735121428601085815587151941939765526106247809254081424759646627019194378550718698349687692657517135017640200359938353017830278176710220244928865565462010559567415771159047285830165422561420054826851371916276898252726600077033683592676892711746614588644325629544170512168608373571659761027823884860670144632963682136373033174648717632014278800674249348568445726886782552555092500615469758288549210812222476682290277511682236950254398732456186120999673805014575214534677010802591529816042122311632876026457848920881444254178235178772946368491686378710335598802935287975131660096503450213500878614816527569342549157582544785878977900421015928011354809715815493253864902115138985775663927058200478330810319358617209592850309837197795638466498733455490133656606295899331266703542551795858953425568522216705720637316682093224155465652870620820268533260086658005839660906950497030225453493694184347991814854031752161531889360169898297123827273296188151354041870492734852626566640813648637887168029974341992184045267003615580203875004096372188655376610564625258596762311209145558061492374462248655905259414678341230133648812086451317814505464179416456723857750904521770549975833236091618246866373119959742563739243193683606633468788836648939977087099239751769429327043157163405058351989947721259861246595675803136402007793328797865113011947679012284933455937274544677730699424562602023887549309022335739830396642856599234623943430754355766148585186128446617314397997597768447092979277382764709356279494509375749758094022971955437014385922121605808100423974385330454346711914387122662709140126153844627736610886518271556640204899738718538427974087178039858785748721689263629340793705516018371405087714962816078738336233555978837136080966631521893228751052274037101841254829712856895416419492794385063945483861715452863298700743447464614650341446025619364938925571934232096238572840936220720551764698253040064322875603806977314699966010186101840908347452808928098339129091492583036511730299676547392515184502772448449537680476388640190634872967747990212485612731663998442736186230885517318239967881715818320630969964851472957372369464794425482501448372786430354266996443153981527716867984468577777317672421499306359765181359539276806871032304580251915603646418455272288614825145974092997199452910599833472410418542027208513605430735748762273840792001676346615109061471910813300876924398905054283828587174596002008845764482519031375548086017940341094418988372652319407183137053799835234437595489813215342408428748244280989888047197105452923399847655171775144109635033144384157428360807901341301639615794455908736627890914427598452297630543934086667826431401637571705618813450653637288873684577300189754353864153639381737629018229633304944189194065973057538512133986275646249847032791841511149121135250104685119008961170790218889188062488253842283641190655874808838120731232314134423335314443360965627192108247640392720608888626285258851992830133305890576527282957142619497916499589436317732474958095984149163996087240559405897409518518453701084239110782354479538977220797522617599737993180176602584167834585215453135785842096991306995209918786098861244401060741198637447153099351033428616375680948503592757047442658967956619338287688474667387627035779875559654940146628998920998697164854072303398883936761101330378404511307837997043311605332621995442577030710396843975279691973081280251126223600777540005130859749830464540495130970480342613835409134454056413410146219371605655280444840088045303964949297382686502274528229948457746734337867550280099756051009152886664658790262577689571241879315839487297388771483538424812931191683160601354302997848368635277312029030297107783027747389581346519427561606674284360702040023876861045920776965676267878197065606120339730472296548137344619132198858923218674391232241525774192907822570914140181569572845738336229188507948683294933053359319357209167636459558136799238696355674929865113248271394607316285501241323117372648773982965149234267413224728863284602104136696664426772810414959430276723876342860664480790484267719159856451260861870402572744277451430790173615156177315157500598839964014188049730699755066910129240753037495815578462768311483735161008264210568687863568408589201192682524370390352517666900923840826467526170926026971040704714815310205739799768157918298128923530414649198759361563221245168274617227796815733025325573522302296833982779941603482649856938263973605905623213929485507427648532942671058969945892642144119600084535333114504068653731319571484348541504151723470687159665889346879477616050652520532551887794276200067792917428629514803639371556249214921928994506784097205434600195629847440967486246536371130208738141754833381661656151851119113468473236553824853198785818181450105386941315804289410531085026258281571231111455512388549044534798670025707762174138029189276234523893914028052930968645560208707475029630568566687239774998591135620834859426470223854033139665551229405206772298210771698874906831232186566788925348437392893982430392706310460167855928753060178702221330681129914256487266497168032854943908954011598214937701703276762092987636152947610229638640039099466517428605271606511721401325095927055929483973612998179810256713853317710667503313178278732512150132783774865020703313550622755813048108002946051717988641864693830142722291579435039799177801649052827713029562457091027849444590050250012647562325140161203982032550275269695196707423516842119109820901473455345247385160545020344886526119484579467391032494601754606594913347356487848126818801870735259183808390367907272198713651269112873795377159952741342667405298605826727776084199746970641965902995956295605560002217637882818096465842429443116043410154032416183711241183341336908604073818218678592966006015260979204302690514322256814365746965542007161049260710551621362987930055591213266525433447237515483179612564078677742430707008766220291814065502136019166384385999886123275152903529870349532107528969061140401659802188280376805348714902083087191780477531360858414106596751960432401798589153532443423362991003390367726189914046681027614857872154303275752435932050311716517034302427376082327100989621495063849691002902577416713658504489820755135344694419418519912145668150684357307587654127131665423566812227372223338758776739362287460341063681565186649322813423042420400173053913958045034059680448257513405554904641633578438160588686022799179151567769918483857458197898136201297053878672660688951885072200744261029707371283569426697793382087809127052674022819034488781068280495959107943088810046956183587209343232330440969761237719689629821199168787098339611345262017695940034586738339782341473219138249974991406589677344743402835803153747984899676192496998518224017681930521002245510857860384690568766364128908975155436650656165061922181855860639525635204347894591616798123236057496837482343890555964335042927547726071932198308253807155388521773092429941314419026355802110535798866536264151014646071198559829289549075514813694409360717649426291034038171821614396041769852817328208821036906125977046831405987658981426853170031066274257408280910233116815975958654856178161460643447651930287173430092180010058739548345440376276460138242763405329465580888477374668362561690834309727006997481782424574194262607770979891422900350084332119239773590955945746815664694781101010369635694686789030933757110276208660708782106555537792608816413375293915596153910623815381314813176627603231988804979216779611049102388322750639647100769652474414609822625944767297584481013880841014521593298873538518073069810094601261678689308602437849860720828026692445109815391695973601821328794407922306758412984849036563034369087014258314198991054139852269307546695019990277201199343809980965719482859198767241455917159595575000602439147346499990949622807320890185317741662157073338928388639164413759397417797996190645277409657976928253653487828864697225365575452522803168847103926942994401774415056541083924818538097224626551468903000207821275494505279154369817549666187513478319186574125583553974077373341601561144528150171617511799963994061191100863047047957134095315827911496975506142525966187901940474528757334388929908002976987789308698733990273247229361876519329728094639215880105812091733035606960882552321797005760004159044881793922984453580379746071294707608200651516833656451241281129400207911460827424310952033600285057851031781296901119673208609949003674260657883323675998903174678418827376211282261504373578261282392358326023506215025388120503808761075779234110200663883596461693181575042860662121240253081275797002578725384490578740240767751761182828022057007680331731437332224972089532223176991483092291852524674905187716587192833914512722243910768803814676477682560519916242899466641586857003358971005817274611700131317272015264539575067017238873314438527194969975372458504518511212453237600924304723995439893327632584741996602126125298056618497682305041205726830278895901298479037010123634777326720390810711639303289268969858980276042853098125791957324080531453599950680281647637678616204990872205057179263264470138021032744757850959815376927943735399559906920110868457276158737474149781321992210097946361683688376980068019326724635633139361980228446602908257497088761161261939179889891414720360559936908838930580535936933911450316665837679068253381015494633685052702160528658989694225709635345492408795324498345015230231036833493083408235168291518964166715750476290195346765505045433189157265705149877638414907912672838031790537940390655134324257931330413249480760881046973124954534545785626432924575397544363110660436528940344384293413102992185638619690395362293619010163993528535010572993277183944687864902771924119694776679674321691661740183719065604639000765211961148350720755592910178537877056954207460072534754632987591800830202715029774978915283989453325540719516665753230926495139421142554045115377864569662346800500105576656862225655975320006948536438622303798485693682238749031954900491665783397436698609183391998723719472588452887254012846450566305472362710992642785702458292237304220010398925143760741811976799800496115848890313657440481472776934979335196907912412868049505017744535830567404267328578975726402516811291440172893889390600786220339806661965078580853482490794371510593186923206404967386563531281304079107222213576654821878051985853001988320719460263512142799370069407085655958724681365543416712160070267748292362040145298505602122441854833782595541641910011069844160611193613415728438557376822437027368021054904985965165829729445551918241516040655118397072027202084640204393072986300139055434860805727208711812587793844984904370529210374970100166399815194947629499986428493736752536317521883313087108880797883924177046278893607737691470138020578895049478115887563990450268575505617416055899462503460092102109352130947675934350822422873652738883742321134710601092049395617317488537802273146628841603886788153423753915600377407866832869398483480806707192360015857192029231113417351022174559411995983544456137561917963110704018047448038094383975482674455197750593665932950078695139834792987338878101779456081754473813559180829981249823150037350662654337764521831661729592356655050362988711935601204167938372520077159314190351927245801694493938939688612900011911705588515157980783219758636439622341155912478451870829040220207055268885676776757208433019621579008529471279823397076704667834310190431379390956741849317948755991990551409619689392255733193871822401654043894242976165912825960645565767896269500675457661057497034947209854964172219226415181027989110590330653915466596702202149545429252256801199732233186299301288977260054888305180190736561784872448961557321648257454753816143467084018257113637533942016840051144296003030823242762724402493439561055939330737827909395440108058510853811441266551615428095286811705096078289107899719529989342167794620020169989849651440553369490931441566374789827892780741711709779831715225227691017629063753678298686927280589881500482306979073492161899553670790703347937543360494530720796487701633503866124771679889404617208901243370958171600709412249362154964957549239133890521379284813256006540708721929520411745114657836210811062428541807816619494184580109484822606357864009531803805531752590882467441944083716975126383772221899903516608185037840103696419148911071627920249788407850357701405616347874226400006355817468995774598161717654247358213363439055746336700418263131436114181603329667629676001679942055334036403518166605499089721637891019331493529788162093954196820658190642836426624132370590392568046454636658820270576326491829158713636046873638450544974888393625563446902584799733972437826866792004894254402223869489172004665582573288023324994353981089464662938621067826158527899573711364825491949666999004651483304786736213896107397991573499337265679173820506794890335785170348015684871190573315030732364815754371927707826788849883018486465398211832288477459906823397462156125853826623722831969860252043378627735575155507201016059787121746506973699977488505823686182397405962823899061718458168239669939404234038027152149341645806650609425516633060493107167197330836033118091222672826165364917781545471333613951369357897079038129100817208674970566963962750528372743979162876486455768107697904387778853689843730036014312948664926231077274903705956214258751429326687828478807876284781862459567816866258302682036445978850982950892525944172113535585941142399515351241488610058114813371447620574893722416922190639131378281162017878760864388860506587083240869863946519451168883795277463535977800599642251188127560160179159022475213976910679863209283384060086102184671398118661205103771796785864715889119197808206511049872092732936744466455522783331556127984651988348361976080158313179067455124100208677523822065546145593974897869216323215553119290602588527663367002810850040367760202462557785265266977034006959215776156476425963474335647160218551276752648922167599801547259118353017790110214847022673250795852527548423162615892967491280149800575414928943724074644381116109689127925533486650439477764701668970466249702173347336807947732108619344342264216085801303502463711108941668102650367375214032824342933691937372637891689833875137555791026545295231372878571956727250352327250114908852401112212315223953566814175636082796889420199323245274911500056806619067100730562113125640182950499334281783611200441387083045411777990828298523910316521755322173908386337724070260851601865097547228451197539120397627596019905383829494982268416069423707468528511859666876879722986460275718450299124692064899469489774830505013519745922277894280494588893626617557558501668491138034540655338404509254779564836853141322067280529532217757679973297500007720903025851044324639934067451094331243587323598628587936132286240082781507656081553948158074626359271910622864529121954899127388993476898406306935015305808395651394402432325066622429876592396826941031130834151196755536137839854221179219411449561916538849185979570764326736974593593810668775110459390561587596349661795677581631290731439520021171624160236387809632990133247037859386552914051894854020217477434941180746937803653261313994620894555749060397697094955008026496879083392220773063033152719944794899781981828956639787262359965053845084022616071288706919179553483412729155634507839290955496217637809414476039267620299120979785261012616158712707535586788607013322937414800980534901978765117235013926032028283193813753046174386185487073152287896043801626021519321727812501015366095539593948266297850096472147696304142092856083675536971457674465825137792689300349818767309536656154094018181213814515718934852114137632397475912493597045511811135126263852182268414222905761672336221741638596959428555841526603258173569687347871528253854686617083171567897986920796685793852038673279363131109701750909153639715774785466923898418800085984984931159137283608134143739359840877268138815763164529904003317006143551587132104849086040863099554582932498512694150896588966201964410303356985757879719137187474794198902398557644542753175912782182067919400959794488980216551994749107670219496596100713430683605884398062502933339291805043787495845783955975219184993991566568420764440157702637349736079804389437323371035779462949595697528642416907667162597431170280130433527213920989591016293150314406167603304487131088893032925209532460424387158071374113333496752189467842043520120051017155888101407279033709013906082962325736543490225158571597343839643254968282425392777124223574763651474626863042160036737390572809741518026332536477880629778365031696247887663049465890413981453683496483767637972403013154653988084173969361425867179381914048143126221184901047710700206513634019865582459549151893608860207754337442587939235037833850250116772705272060991938026117950159381871004394547864261178425146172560272380476328699796611311614717459878855420378960304851193694719210877495085538628995850377779904479879768191744941429000980359750244314457216387987325933347484330457394081255124793772083829886046552487144520681203144328720218249171333241238941303220359557278051440495605813651409861600790510074644557432653939453916473024455409044935918995009300701806172333716798202231732619548655260653765962406939391279640892608416114880330646499405407464597314824039656863432159312994393707782160027095587125926393806265309063722715903021445408278903536701670981523898327042384001634810127498699659383318771950793697308356943672885650611025094535204704190595424682019898279610699732262136628167363122989056247377762923755761011654006559385237273915066906457679463920589716522864977434502284140350888083093446181683666737157251416382605626840092010884137838892076012300086402723310587403779236807772363376099963345491422951402634074069500035719201635541039052403529072732698238914645854980607121971683395177468457273270578300165043438522673289066041888411382508341361379961981016970527367724719795932611776223445398195320472440733945521293754849964621282877989475926355647112480984478863548576844040079645408653431178446986669963155071535534675331827894217490529540847002365155937191300707653206101646242846057544591362740802494426430247420387231136814035011649167388033979628128823708626314777371095092521166966772840005669652355331235727344712250584933421000654380467153351524918231784616510258088180164460499940588489085235408615183894043607193406712923672606944806459997807772492209029038624407445869701420590221988806846096515170948230600096465701436440766806637279687569407135156782799064907906327720904452450324857579280708225203262396833548515860693145978385283616945633618631495689575125205427583408433765438773575581133233224458741691304462333288530403416818532765079629533256719680304662622269392924233817614740621769438130181644683625060288786882638848622844076864987050543822925806584870404035562573256749520111431937547754077091962079537181488250616630692548318888716236852515548481080757453534756650691089989025790067471165361044635484862584532960111660552481236658133484434023033838766947308531146822952900928520339707297247845950326397304709692877275566741078792127067696914719162964677848426437554185756985108165871827151474955036156500371320738054521273860737134932832995067948381046672169613166745564983864106655385195711477979897804053131531304695355956012501223073013512282359030897413153187246065767650692731207540535622805396956670940455433100169920093401603015109670070870330896286586954811171164472224295645926247022843837363168276182638145452738190115715089522016695558952554622067920742767776923081152264751106824433913416500252404069330258598945633927036419440753978120082182135850455473521574804387050965377446147811346871656555888351972792131850455068355394307605036900936296238783640866701294439893854444187850881588375087629000114446901288812955855677523752165986849343242206433312659157488729539953386225175380682153450511244744094691104511632399585150575512312582940123674771515790267854663437832997684375181671324663954643020788768384514133131120043836272094728966779743948889034039333934771491655609878440626123581223512954925625958583191636244844911239536576587105078807396708810976691210513367202108849092498348141080851471979311983256014913407118169265377176694886325677385081130992939242797311269677458349060895901467971121975453286879491003849694060700564567237710534918906445065280295574475701857859353330253437314144205303581894725025659741992239008550333847929662370767233463629037599500875430750257963974150203988495903758576829100173441003016390174848563306422011752017788579842745795912502607278147035731188031082540722337056184039814643086670132641399107350024418877255635131802012518580814897540973697308148730540887173734744284091929164342440210244964263928735739824038105842003734586953107032797985022930946626806901792724178709806252382975492674271740109313390844006031771503988397175651715664250661408635197545734597473285460352577081637908053873158069228053306986610717617047231894172238541326756768641085069361977285088089991205932294787017236599579112547404902304217356116439548935384403866196678322738363099111005285837078249625061455188256938516357639930307559070740917791768960090942166268639945930987166518752762806121677655991791029060977988760291131293858955350180182828228425127176741423279437724908344684215709467901049134293973815659351333607061912518396634898789049470872644134458081024139652538971443908917775225241178022016887498243016237329016542389588802987575006283104455394872770124930831524949797471267648110417923690325649790862147591407233856998568489932072281268315037098991931307602227680917759601941966313606533754265145417078972656421694991277672019356518712974238974200774227060081833146868926602940980858395534529813264337429483971371578266348938881758528599643215246849202217050423643862971531703786120257828547239685501094726486865273393613270531709184960842867973063004361654213462676610101700359875797906998622320548802641853248629251096168796598076953897654536145457445540016522391424814892972938142790625588597012238728348902405738552464234439119934502720657717152104991279089921169924264097040941620723180394969416889854265615303280722468255424581111427009573232719015598853789575571161924596312339001389238727215278612420381681489646782141666758766918285458524439413730677146403734330940413644769293578325756754722460492377254530663122614055017563811599943197027883656146997453561866251992177475878966802204666776259774383389956603904036282986148270213861905360663668457915145149129662414918969008081539878655838537811570342660344304822550131978660476762711151914132960639612967956751485560535966427176487338775484216680732679344682737453566108015086057433991986215295787876111855924472352713169009007276022927785720407394928408102800388985665402155563337562229145898264058171848809035219592322984559191694639295796753009154987109014103988738347924936289310579711504620617690105468930136691256496076455191053362731791560064596482747654805723188947139841098601302864866561626662957625009817839445743520393794916318616232450841043616455539817023339682807540816067678923505102764705204099569714819307832159932255622579133690177937093754250417825765707059622397054241206716418742464155756617817518321100918462648717765091190334572307787317880484937765442539452471494240914793370735134878763145769851002496749829672571838957837846494786398544023121454640702316093210360555946195476083184107815497585524494732214389320523373497582947729369785424473319216585338317555224946584875939746120313681769249128790055178403707516106150863284334456738495665891503494240520078974138322121492467179808528463428682044702757836988286573044737017987549883391821644363204383602752611309004461003747799027949076124599381124051619199605965139007790963429358311903430562435671573409505616362874827820587615489988136228400631951119520178080967490670497658942820319324591324255961711416431669441618015524066188633117399506879643778155380972229297459868674364343772446022500821701314936991814024542091576768395501316818107403428304112686525498680326457932318450295097745201389805535819414101913198483386798555481994017166158488361181485049186467563917728633058374665125190995176278621822177837392160428438123658550359877683167988769176678640376960033967280640457345259752019328540390384327847518556147531022636373359384639799945119773456856654467428389581911035087502447542075011754726557934304064164481640001854896172357369876500209146312440068050665618211320293368595675472266646602468685420080392607405662982996622827886673306450655032884162938829562588755409694680707065812198050857892405667820730191320067060364216836491652563135377625483089594842053609872295558275245931500943341900907815467112257271079852122273755615832610302392053167927886141183298226459755765340454234610490295722395875331195796195022894605030835697403198482479375038973982795389920689718912962709702681601799948823685154410249063450379330463850598050068936885092159609249345461701869664702253261938819301682122648436877795239618136877735017839876014287972084836641077328764288692535871469783972618881033845033371181517114847157535728291113771363131977821202456846096977749219637968473749691094564421462352746752726128530180078957354303275355058900276072417108242779772273273590062666386669601352230256085097299631537578243379250716217207440633313796387517144392662381145539390043886785184247175875379030663666093268883193121032320723514090703360541657508220906033720166811388503146846445191695043655886615212595069382843445815287087122829314072755593369968121099035159101642125607110757656344306351170567316743528958194754952161142519311002589041345289007507758318181226707486169370511374740514479454619795301747600610679345348377394055213592998818346545867982587586043173404055460118233649355330635908322439166680612102928592930996275724503127489439096429633208730774671500777330083393431588596370124433769577694548260771609767086154816667942389103506090461460441303968713689488679983508780406806438162177240634791781191620062957777013993709343944321724972218231952125379413260275336745685586088441059085112302706065537968948611903334311829339108761961856541457096893874369570612342801977335573896240768163158443358487707336072070640126367241684125509830095138195768861512464866019104419000405387333567120152878262611453144400194905011564171801462355300334608021767589156147995037146733274581502728112721182646692255544413188398595093341962398594556118494767478653220714920141404358734838912071052581636449069203988138792728992853988460679469997338628784322251003743280666592641993060846936167567748471799555382249785746556725055674894930960003881116502599000599374017386660470626212388528481701094671013876835220025370049094466710475579000862748699860758010055989739775274853207418346619399378999761075399302511442615689204855197230784075822784838312358647816828634723970507033770155108037216863941507175891202523520030936445381610008908813050203916934115910823275492996997841354483322967187542418224655200379622790431069770241676548293949761640495002830983893942602243046169048435580474772240387178669349153928857863022989243143684173047030157010902306067503702447200332641348728560100321972365652015909492934148262122999823173320730648796012037972764731556363037609293837342346820918332034208803758319968924099274936352907356498472392751796483564603811318074452718462234585979449722843180527406250005784420048300523823875108485542664866184058788046412068103591989839609872713115064108184549045557992760943542184006717645354861510528247568296268598180602937728298792442529438708541207310252940498327891791277490031521755214882526034714160181953845417671180625218368758194154070367681561576618172047799869233146403361380334652040184261580390264182536185722468448606128873686999272027416268063766621120692903461969545811364344741598714018921166046622658266159054206976394359312366204552875603421650034736011943422561491403201579417118517154275639651725686453846709545248371305948985825597452775643783720939037376064487578053808966666139918396305543463515315481858867792629127253634262889852568544646981449746189241495863663671981400650685888608602242673379881276879694064970299154524527213257542819532491731150662085866520774909529651007534040492273565482829570256906293588816904146510697177724209554461302585438178630485080605899063738090543069502613842422270537535459859099326696733216515194817253453274733360274472585272453947857870490548475863311571836633235913234758825934064152103907287193632679637592847331316123397815498565077459574263019250136134421817786573268459498039257419696999987645982495670940955954906451431929975329699029290181133468491893973167337404737610215349790280131722337912799863914710105736458088249640377936691442602252243291822035969479652296324150462593037636643284086561602312161099027177979404824423743772421754532743690307492626172588806522332614106033816532093232026699108708475868198563990498575011761996369059699254104368753291819072004157598262345466727015736971133357041403209379345126606070799065586879616157998493410954090321243654431087316158637572737481745017866557379398486692291175992043422476006485976005497828062941873914749664566019768926361659828965655744580409914268909472497067352204701161915360094527363253066644020100232018732278197614868663489891327347014448203242931178410091528333303769111970512525118902970829429748839813714997780527816493437056043260053526981069189865886898161088992699204345478155357404652938225547579239651257816984986734218218531240734311529608214112091999940616010158219127373016501769581186190366897792756904678571018105939373143881192914749443565221896260286325866365190174536592121863876810777420915836469090916518273980753103066499806244849277475618845297329472713914899726840778589778686560487233057524228571724734436667418181232708415917914786168197800328752421946480119315937935152394174090419098412578099090388940779420467270491534500024860427455307306836472220758930821994452347214521842825620929143768143878021396936399786022126322109822077357144129412640653765264285434829706936551168067283061481553500677992734287467174083666602053729220484840870252301258571791456966579523963596862706459037207268058794398134006676701411765812522334810483868677174058797368961559962178465497307393409546604314586015404956157764561673447212642746874614083020638793598042849662247223255046609523176817245863626112848338740765075828895677458958873610951974207232126233355615193382471760218186838953006797502120769043883812835625814501250071190271565144346270648149505901969961390405607906737260724112924471994770283848353186332981761999473128331449159687775042903279770347619380629551238401384229100357676929698595905443982892666608780103440596705590520766837021015952195139454477311874107235279456084435494667607928826819356764666589161362140424785642792681562544850631668526832752465600274776524127942705341934828054626702815992453912487393755809401259197783465336557356259376680876997525746027021669649252998377538196938462547085188615104752264751364891883357381891697121958326810041957653770211921182725665088966824675048666996598850420411916153320898856723809260181428117623447955829428808581369886073727549749121306874374219430148667662596916951953688569117493823196975595579402179388737225151599714054472897083955103654866628196503684868466103927455684143635901777440387565120807714563648777284438331563572496836756314810394389680921192823374145076186305657777377941453330257820788793371355232819306677810347448788145330227671159824630146773913180646990171453231819572964017138299344586652810423902920440420503010850372288970722667320416407583835211625547293542097706718652620762946720436336432735056632041125212872258941499762804689148555075973614650511764125793028369745320360465061569238119721325105618061345213438176817327628414181021644134170249175584365681145479777519582806628442497503791747723620420424505736306091115484024269956433600353014366659751182803280395342105404919103056731421075413023579348772342390739593893004368913281485468821970534826806406133447603574659090656460980097171769957520437556354521685044224390827808348072156800312138051374475573866335806612898256952535572326630739519540636979469139273919509297099291348801486760727149785168270269050710767896576530440463362626888722627429312028751738497554214315049989074564612156955425357015201474626587358829154486936716821097263877036692987627033326926764051123565917877363247704611611875283786408803828013634904145085131829558738033657159237554043740366009431266249374473501836940883501231805702551089418469366688303806236043616899868181504628145439937084394672379528195303288606099631547805411053979831739104819179879337630991824007163695359256783586699908525682834617999204484921582868255426606669480659055883754767477890063030763977320119162644193123137332822364181193438305058658554498299868991146681311711942189160179373602575963218532104868749920473470299426787127613334237668342822565756501574897202803431803206244849572309739005715093145389184344943828397373451579980515625916432262701418620623694475930214105085028120360491099390536847805602166270463685525727413290604228995635102522847519070308253273849955553304495780330902592753163522180988988262911598033711257017217676690454568064922305157474689155717101756724035418935061128887302404314431986958652186676073303854903602774609635450195252965340703015970324098511502529305886567190112508328471496806489438130078371862392446817902162173569122887239480216484647377517681894212220710356555965079794844990082719355281479143404037138717208176090319885645874610810991059369177437947128793689503247741864858064819679956146436708248708993683951315072030565303007886859820360720669916737616414756654287719353591044521169167692816396364562978340737064788274061834054357077412161383202873787903785858932745536149564461255050554782668745445509088688946927185988949423449507483821850184341303236200466807001917504592628408385053643126768698034026811580709810345898604130841735509956944151799175432334806330732613391399797880003821091327660145496111570428580281606751623381353863052429563833095032019287816413249223004761179535824956059145300042464478806213024689786559692629257635740287994013569211675539040026996645560256829723695049590996027170973816661686780048327292990594281029681615746963060606101062267170212539667479513893813748538953517578329451364260069361377774400056699301740201136677317877044694506012922607496911061576207637893345041373365119560032907835235964653265747497435286721116298075675851083850160699896935867152259646305700913908762874164925417081690968473095488602332982888001016529628089769877231969074210270093488809344555121881883365197843185355960674763507221611787287356394656554342761406855941242591214170781163030801019258762199380989589430509396825182771303303349266488532956187952664463190634938964927974779630581823776065803540227966910818093226725142614287685085502340363959705621412515137620467224442897997855454131901372056002945670634038242991780751257244844635771525893472233684526800050490579407659261183404627646998353219893312711732710511293877462720081317263208671247247831036953250571166846693391999383834165301330924772942935847074388263424007013217132097282749479611635667826150715662825021252062763897515665851340604552901092611263816622423668992710649041886270014421128735923939982500565800643250607509458935850072180729322308246108258185874671334067334432680515475652761122900942154655618310341268701722865416226907574466637402578505819839033726685391283425113889776103701554705969784284381211041667496423619368984063561387622795954521514689288132823943963661294501387816765909292508975324716691236834827515460782728044518243453759655049256806485323099928145147534550927555277962794142455744052552188253239556250857211799635301956758117744367625509731975115565148451372854240749048380819955880915161179392191042619092848578161390514823147445531015161591784145999471223905165969441039727295741158339745939062050077580709596765898924961437343487815637744208374999146183451341178572135657651002882165343788389069722998862946226868519562883232057053789421789593678448999728380822512958573742956531487043040321954330164722045813979057452880207472858810311408587987472118632864898447340531146044004800111896474216571999311588903720590031466418126179209119408878500667780109991854619093489266918509118998532817580156149634425272742021323083262625378297537478084964862057473772980595049021455501089693480645109743330059979855532033131826917519159195006558488436551656335235079497441486995545934682666761749841931923239198584931429070339724907410433531550716185771284452704556151487208217879010758099459907819034076848455908034852561211244638832388776007725640595058576145061729291017634210620163227631335708698416113338433519159552199342391045655659731008231699479978456319598341143056370588841358572324394599937160845154432247333257474326902932111340553605260907241688375335436141287023423782527089538235765851659641732811004236702247942658948954200246277977930989345076021362417137031065132759759613489924270047047172533326422774262347566320225179842495249821276559511394568141270076623154851582573596335382671792266993633391806685509480289663970163358030635777920615129299586818160233278268287561386953489833858078404867756502916232810223212628623703647116725909111622074499444703371546717193557960340649572183991324315717586890563578201193562277776342162367247566768761722061015213389428844275546380391429829340970637684665116996845497749248421623454987901900590122307110248805880499208202673415213345261948227180404524659228844295541908154492145808904570493927298321688341342995368258674641083672846833132874321981230074513031444007683574024462780977013002142187123511884439078142864571486713031627438140533885760388529469050776911243964028442753921160112468485588590871112043313698335512983177044754395273511809456262736507213423867548781623509663987589890781058433372203975442049861899214534394570010766993023334045070623558228321979391210716339044784574064959683736835999610270559810934327545718226581916273764083264919446339254141257047278930012181409950288177663218498545308566679007037626577058382731749561209175232476012728488544222989867998826628395086789457714388158096755058011481632951013417845494953248474350246166826049086054349862607076952206845769308881019936388602056908101664505187218150057434727469240045662801352442429043237968476832649959785995418767960988824064974266522958440697297761914626489783151028740066979236203320604044535479441981998947525319571705208553161777916410772764613921571177402991355550151670979661965240622229141609972270298654087146907919329111017460401206520811903347933507409339673354381066776442516210910640978277403934724092269713998641932401833676257879516616692114857084403473110985771860414380657030581140896522799033707067927777173240196063669059902396600617475966027436477233417132112564069573043007387189697608262537784076168904565036964121017260551105063180587830717710457167891720931555100513126248850749712570882776081846297351566606413813185775692321942216169819818338615910911121296406834764541498748925967693915520889997434834825109771717334774849042415704476573657457752887031370873919072182505772993177204212596617789094627810737489396727533366949775977576140133909640059949599124774240582260227674347914043659775007117490687276269345637528762791538610334809869295742898490087041375521603759467876439843626959137289972377200731453366733526996836629260856570583903882359383118961476361331704366529764436074940164969717395660023248475312782613511627451693498591497284257801156635401125748838344957820547565134867525353393094929877785668247383224713634127815663824590502307339832536083003873024839639954184028662980876689960054360674637478175973859320010970384009432908482521486078558007203028392624814842107356768943650847829172394313537730783382862045256079371434798902477544800015738911657789491143660036793543639320677626302110521521013592154694544997058887628365793340606132391102338123478911651339606482327343027611585343257078225967456692639944506549281999054027881507062990362135050452317325013670624394106180766761378661414563785766044207492422926977034984501265149216717696331051676726784883729549005678657239784427631134732497719890600761875914089607306658215138449134561555571151084513215973829110011142873895994616239385058360323234420828814504339150737808186319372078380311364175837348751976507933520535426106483964680022831803234766267824389703438282856767409938801224558418282506165887184191773971348424955753553615428351062448328211410756609679699510482522794215870693151868682289065990544542897676834078428468663516950735929005944652517186518412045443271163745245912494051031774974327164330478610425203579403271210384808446436333013715290149884275237794983457479987528151196515943440298872149170655559184939637362023534636888218131437208134936589804188526181461668564638974283915059558370394712383217345273482136156961283263085165038215295650842082471083485563684152892779777775636659828621565022125074611675903211654209654147012294283854575672141738992979980052464181684733481802173252198821195035184670582808429271159259997015375097479007950930331880565580101398081229845654681618715385799281286103766006844083084983972797637004166030652461482660428311779328935587420559345188132647605029917983382716373959860235887851346092673231951588729729246677097635098946770140282292245909364931925193174285969415236656465995111925468588648001037779316307387944437871151634358086838550980361673411774679552505415696325551756593001109871034383335920075203177187132116942973736665048161622813974369194360219793318911371477579284604851057454283287481793287227871096158968260415191032160358867794747925929885099949904921648497138544125533916737983269837424487412745470962063371390474048360794157529363363904481795414111734936202604851201230536055436888793862914480787910052555989328252773354359247067399972692273992775653397256696715240967730735176129922142025550653142954908742617053358503331777460258915289378865430766613971869474350204696966875056766378250013366544341201497803953340948430588040808713869531589891754432305576148445992971287256207647002380883308255786375448067354538598763808584763650695267362809861199004026798113020461010194459803592743530574492962422737733955201691580053320669755130197311337039125611913305432979416991929482939055726795795281772696879329114257773205002147601996981522020615245179423898458185268279789797440541656480562100833028605473010316050320145740518887619845350296999926465795650019044827824173860954017910370254638143624452508870292266392336640435196780035665454436425036250795296489213906564841401827369714502145264316466210037380995041855887489630824657407334263002530994978155914212875197052710011571017163774988337879565686539344266119544077414439924874232060422661597714780065489643349623583962211353125728982013559848156570204574821091737378662802539307044655436889747490658477949409598122447874322186601530097345480246961726712947787951944151344017301188323674487204478062366370035242586176568380848573688569023709229088212227208341700897912925654354194078268993055731519169901180705018958859647404813904626097073419544942270677540335371029648360620327556173102159143468441553909565909746549927915376332947359960200898026407946829253612778983205853605856186118945140611322242712861116686725025703363488631585717397116032882123866374918745662604295318985208791769279853205968708273206077204908756249762398506391873788063610737211590757336298970566574688377351598523062078348566726739945019724570616041702865614312668507975571689508067386196133576130779338566529426117899557612822039627861630366976572927463176005226248813002620159344695993323013044439085141440696129490951435113240437281803780305270161474596669731823396165575509100944772011231301699270821104372848353646580227984353176487604395208073622595864078734581915310594558252403107537721574321457134477818430984474999189198857234881539219045201566171925554299875334540023811097485202700537114712389797470101585475386268028132317028620129038658514423644864928655235817137202938801752941010225202856911871860796450108765298425329716311744186507520187692927464210613131762030850679066588256061616245123298333856021225199613207285816407020906231271834484822300789404092439163274524087456678136735570039755142780739200343533132128228732868954206188188329141890423929582934929305948139194192101543032435674476992430684895495202395456455030650470971258953086410011569687327280575346288820928949980376942767152372469074527687494117376112489070191987929642324749483718639132922040334047627285290480570200588772263597678817471579821421764176643490054851532223351305020047426608426027581114308115877357853681413656836671339174031607056503790852843226782164643593015192070991234338444761974897013637518951684986306334712439357199345332511924340248672268509671224442280954862096706420714603892359340106844004753696386497513597358331093783260019092515744319203761229377089055745436284773845335137564981164123368922952288866851999159162996178672081918371734730700682281270186065027530298339014669995747944610702671611160278717065002344548526553180461527980301358894310966438222475439771623046764635318028199644937566237115116051978758708342921467498000152971410916725705796936154875615717823583111771013590125353955687127457997201759260654619005937960897846190272218145072358795484271499133150396203051241109165044196697558251321818617835694275540614559727053523826735711023180819720853948601822054826898663602869566818348668524544614408406952182633280487604446919008266967629645490754572236923327441664913195564864399458899338775870098805433186399855404932306776159182859287438960578046409842089740550683296113972392222269790364697767875517303966644741574726584654780659639564895358195570035797166891226946992715128448647722739811741814886633192899465947060089211318989429677196570486185276861342368815000041723800282976700527792276554084855433348616889849738718678861898732323800424009638640679843517162511269725924658678721107053801531949577164948506298157989469417142820421641655866599072861984938491754802695846196422947793149812238364153855703808978900761390103234971796963254719656491227455826354132341424364357459474929792785696077635914847280121218205712372291254433245566053407484951814467690589598069520034923001249866193762108500512364425478264357338213296609669731653535425624730809028817761133739720629836430505408619406221838502449854756687212600676339743731532578383548748244097809739336148731020239045338094741597766456031376811062989214090166123270039005050229476135188591241064706560312980146088899492786235478123370756373524321271800610530855171703405360330737630187113669353217698428260176112186006358489653414360670914199779246409721142744954698914635554828643401104014722300847400589719394255567755784403993657012637700923304017720157097140226189725490249963962566890848589775041571304292715928933801462762817804245124334611567291708721811698669587131261066558109715515556963348198442249377278998490016913340650139225583745253644587113153774964284515400536404218597690932979007200836296202467322396588374131752905866262694467352104426037919315211035606156132717795833242389410113783086245462951409581718941653818826098581362550702814720744101032283856977012126679321464728011596824377110164058829203812229822825505648850200090315990840966980142501599597425610220263183617255711149139214436110185338455682860703157664486057682509194621585069508284940853018066449912071428675989866884127906465394835715319791629682191642876269125672169472287743672269074631085341954406113360848716300832207815371548154354645837025948503616747070730275849967231328096016293612335740850516758670470322859872473980864732679403949139379130849736324141390294392845766383519842186763466430180868960692143383196042210094720984397666522822544368304222054701432565119426870397199293424806391183114715967928827659016065848116137229441994332637690168222434355926079908820340023435099058591392977157604947270770283095758427070913697704371357590202672271213553449733043050674103705440773459584309227693748403956382048859264704386362111993542255000025611449708505270500916289296049847398305977089314120419837701870006385807844261773612787580995515950384666207484815725018212354082543379820275256807457417795530258946819457764606537499326993288820539515184740851474436356821092425017105258634953457915902871522129953659591580769737340686493813561483468625939742529349372392299112609535278901474152094619169375233960791800588818378506688578822174089302237670789264905590178357330290498610475662408840463017442091646079276592403350052136975053666580334050131280712427989700062737291525907016667464372456678743256001955542420944533633439391956768045908713309834479621296632581163765466480890071124740281515643434631081445327339715432334544926861930744837353290342429022706323445090815537951237757161049271217981853535850994155387182194494270861149692620822283110545052601764694421498479691624938335086438997979437257258503494733211236420156454459583232102586733821208272011023617181329162813476936133623163000555185416994512370308747176934753063809491488282318114601484735917650196830571470471397168054171207608541527790614840815435277054711138661935519182555496737687537565590189158920767435261488529376321078731238757206484082373753032884640234882928758674575174119642595547325471299887844133769717447828951480606297501598104109651792487372542415860607092634345112218051515768050395232079839070384455908024897675124281118683112235359449536233280515642845091163825328468276903779894056097304965982167747942906052290642711540907596304907500457866948064424079141604249897363962238355342656882489249030940135322759829226761802139944680189960320675803429397947950058112356339869727902367019776289840733198614297089945534090372605768223447488692010297648871946187586293421317093272777691651871002498996665855083811335678961748113924008069204414625665382945223391551604594824870277524026560308024160840633583104991593130853947426907323472088411918202484707573291150721245446898526855311599851117939381080209773473817493399988897385653699403875952533621748239471547834800589460393665918892899621752104716304660384444123734509103829324838945600129836493417320422432165642758286269646298705494370864746342771185293824804393582160198607006217119659183259180757449365566031905742103306975370732230140442939136072997423148218620571279724084322974222530647847022287728988917204454136416830186205926694781065001577273034683998295511059964275198344209099429823941361558326538840685298375019610026743279608322676608982437399230458381935994455203647109590825189916629159319639863860998442524559194442374098076505561175057896146435919925564267596311962778375128746537965238665256816957003269642878507201847166057379227252095232109907611270241949139628074816965149432043193064899696752352377801336017153557941527226744043835477478346154171361080719710473088602374503121389008132562431720497688680228292550243349395991782746769594115544309850361643131639442573259674614175806634244925060402322028029469873751829312706554137782988619584810935026636452075093196152508201502395128106961883020837877917531424737800666136610712556138095687549097630224818254733695777442501363334650527296241951503070016298234339909100061555024946737128843219723533994529380672234196217016163432924793757445914665771562668285110792098013823602779085249086140613238204702960336142123967891694992342321715288832979939112946652538472686405318731979322677702760178715157112713190221683641694532904519520461503355347344697871415224470877070845614120831498011066671652074655536718787287374690498716276246805308575835228041919956073276659175695773002879207062873063562282907109317225412441028996562194393033935979312729824901885059982075302805818268734536262076988428838928963551772699775527089280711983832712641649813585056609297466819414332203763601603170238645401038041933756887455935123839827605652993796946311157362367658035157564368020797909806973589289503336310275094784781357000647031676531798437489385931992844679705050146584222778269606759197774314228489834622963809575224532923435922351304412034590961012744858914050582747677591103619718748112625960272458667655714727549394120555133622891690426382083573995206157239464517444989912970211065709594498556475671053910136404655906165911779062436459573934607185777117061118451700154545080998850040593155875095120616554563146200738739443327439156540822226551667114981361350737399548933917480863741966480932781710026395502591404777519347205269361172155291928948911285123125631052770972349386770893098856247973589327598084634232185162498530503627316455508600244801128794870890218752873453929413161466208814826808614162015915549122041986025984886099100100893552198600427434057310121427340294759435672697762854277727675979540678321549998708026058381328690281838621000610033764237919800194423704420633319989321465169743345769912822318261140907089861441540819914737474336816449824325266081666966973361969533212777691297726357984301509710815856277952410140312197253995009854837006991572638174933423198417086784859633091293669773835628870784080023922357823103612292313343138708713756072647955306878567678761408679785388418397508504683509284144719683435669245391453969726703865703172962418389792354536870706291053584095862528817292816924710463959137654339775103303861869054162785406796718856452314625346834643002030663624300772804183915050483997746390652352700476682203370156915852377013990541263834764846638411791076341639450962657613452483409138987537934888710844082251502479447198768883992003573792607365768549301553430268438483889314027219668203872768490406507864149839548386239914432710035484142857146636758141086857568497496424920588569843745946865744801849342280279582356377564388268232624187762216226070904519845932677347735018285436069393524165896011745073761140640689598829299446453818686066474728889919098229601789297804735791247963218691536870365595294443349954251605809083049273594088101251280459106505047664962675822241339331580270942092343548241375457305908715656756767010920950546711178377321047597669794363570249991724776409909961842234225938966846991544188772094653007034437183115728705732067398759578214079407363342360849638323335917902277126826303276948775320046801847577053943430079511966677524396159166308278083959053832295112723382075507441530788977762867716625188109118753519733009863771747861881547641160222390303195596789815373333325829836004518897341313857960092977745880614240104591501478206797394363629199355822760236751034782755648662712188255528531782535860103510822581450261120474709240171860256469006846173176799057349011007272876892619452758833587582219473843208345786330528075574549382895239005984568272914134643234881714858460678305948260145359687621596708124955323057637815649344565257825522938249626575117074949886687654410382705337408989210403686773656045428584516950314022323633757026417965778520817544892465570992408132366557869852645353888011188919328625192592221355667681557609276306155759306626473926089832783476802146055571315939157513419736238143794497888858119633437282923219663203357801261130770108572159898202801245270141944055108211091262826167070806274271062080737562374739117901880630391519189825171866613757572759710389811462813209411824321201157828817875559190831284165898101295993972458282885034709053028292225178972431329487897374321507341389531992364509403300894441779949785506114695615294856553112229462352630605156014992464164694165358171790659753464774747518944903388637694549101338475379570124343532832144929827573206494600570358797413728473085568500241405780699494442096564545420670406712691770342055893545921475139946586563795324498939480729634535959897732503522425366975520262596619022391137446470151563774946817344037945328859539492677763875590864797247808868006817235585313143563297543176604392538385405756899742985095171277824885406609203265598281270195713564281392540661309838725191388287432303850700660199215706888715653136986458667179283657355256586271881440144317143679374810596913709321216806242471623729661715393439953368054145698679389717848891015986030954129352987461691091925238097429445514885583184994985947959024263664255486555633149346893561503414883748846312946530056598074676977360194559815286306276126267663557735976758113842161237331459708729860471384174012488889187971332736362625113113346765376292998408903778952000085393997635847442819798576780721048963459907780154266971745675426172384022032773364763975517549166533844727336853524966915629769248343626504746198823359455938542388739013641770469453957981187527121597768442511799580716945466861749820038914136757425295199235363028640995847738080667594169715580833542623996679137191811974565095014215741445024655942823086685483454755041753280904924396975773383406920036596269823806321058421168311536080639600030298348698625014189519615977098530989341590691826447462124298360754346446243464183758912699382353801438495736433235890880340036503562945098957173182119387536060403375025733118252570466934470275756657246020243435805176179804305001576612206859107119164478367877552875557651495538646290031477843352420182232281862889836049955671009471307362511750465682887493345110800437057008572073227508319673684109210872646030862698701217604409040280697949111839643660521843149230735163158890444548056797832255596285773250306390738623703331339379486490735595468517965042966618255310526459824517353756325028373943551018059272053090105142909243352731278690015151305587405395535952649030281312758926687850268380277539808784196954244470759826527714763680134451227046469658616014050005981355426600455530412564538564899316031280559646970972771764775136237931869535642851430445630127610428264940367974802933019013443998609284058688100268883287786069070057522291637884595429511271236416290417249259287033518121777245720634744414071045798701168348653894086087934642885814053237220522033388278249160655075142849889502673047338689414665771519170670071546284933413054595326178257624745577860528907055681209392136360207948400190453482271750199199850351721819829155537394052447488160840114286829854219815417399461519446756653991108625702661728915721161670861280786442259687806540552408407698092622979890897438864871881241215285862107144171314682739415124540231527184641602104587509694837594318073620219293740011902747502717656734359424736706618039867767305606401858990535751230023066083708711686914757913363840862325384349267186066139046684337879651679007095096077004454535563136240513581616173843997008720780057279737476697330001951815716651448215634062181865695556952305997320961352796043608491646454400985340296086167453343809689982394369382494955094716954167064128394245171412601916247382708669769311806960971015572581478531946257461453503976260554651254350214524143432982492413812177132034032371867152062735928163374410315471046396311177083453501544825945760866597757173914576609587753667249840517245700825958212454852196164378931310988248170038422332063288500432542084921594423734706930124693333918887639562414254068324429613965686240316412840305878256465234281833656651895855036990943259530942506080824684142553143703739066510989676539808735874993770334589530194951951702175226452073203602754639413113711611622289900457080284754036140638147708904136189639814679360905829482054185806765374568452152011414513584740042491714183497910852675578692364608405102964056854716291147960516605129860116421892358470677447836979163436922030219888963849015241726483510873673134583953442150224626155336633614834786432335613805300749667620842875753074484767612212952046402684256157402198984963409036109218476043128882969266380818247741624321491805174576051652767148595672360585448148544021329075323119337897054213766925989414624437580625161532179973469637179645547335354924900140560743663106474176679985725698630252839944434637993051824259841257983586495906278906953651854959181602825231129648862454662474149878023489619904934728196665830714757725320158683554707783672825756239924355463937745447797338296029223953910136392484245799089520465639804512178911186836846111736749565952373215883192224769664295949694007368505028403776890626580850024671729589763991528855287127946920792122067201320528093964522632270868221231475800660317858618410693450455257909777395661801233418741794136221578605007833903459125252454048575436327708936373481376250658388020484570153291728775365851028430430373809464582794463170347696134486828805493874742078360720918196695607797807865955740709604430297860930907972073074960701081558685015948097534353052729341161714831747339661005175217002301479901086903452297704877598405728629894181021529690074555659724334836185037771505508603301115053176164169618772366138127227871098651734520385737873021661272225806239456342389511827106389993828193946808908917142686787488703236974236982543558888324608458202840234836262358836434932664801755904603428215172195639634953043008484166217827151449459540901179448852595049472655691194579203679365403761138674937619135288389765488612131811530304716061968670436442884349882255233129687502916354586542686608894604692937059649512844897404856780035852704039935626048982822152555719969935257945452617407432708598911300142906714002259432746902189829951795534427487181116421174293434661858125957750175413534118015591400125239948393901766175216119230063203926935030744080055648532173648116815833020317058976467823292023818247676449092399715748466900662684870792697974543610502665979171872565458187225995671847189539689635639827391169454008286772208397356485201960596067264555193429252306818637594677165747163985103758010266451314905894653201170259390298092672155326188112168705958416472932271969153732331551498788130347398894896254271704631085200203089349760747480969523143814485952336287596393157034764290005251909087525316574079244929463176141128160500604332367814921702447181040900025235729074509400875419094485013234277377902820376877759883889102242894658630718857836325840114004029582015157277750552204976717418065229681281445359630774683991974361507755608490148304881526622616887549680346283304068496724884583144896108984111641853472467904954298423368792950285053562273808693036290643496106389027342398164443712989675246221349980717909832538537518245143182298170149804714744052082067717348293075742446071778472524594618574890493050965097953905422530692123607017038379108571469830225772485251738459145607910558853704706629305268611514962570167775660509871522189311993190860804095893272714652003159911804363740649554498522211631107924025308412085874327508302573604673559050242876200960582178254070725358819424274822906126115650670990690000964622866691935026133569804484990306069770879179642034494706647343583130498593239705958907652120593897697617999546099025575012925295051756463328193778481798272892162688397915039028415489284840501018329343016939308597691882076098327288892113551698234456444733325307296239857923564576768444655740788184753280032062040912485037907903369696799857569854811754811838668849282624893373134636562096236436017604756288482557468798352316689203275812083119267273870776283087919441640602074628031822157640294565833974760879869175255503170496291961917121507212452773313637547286304990037502459348596003211514499284066215825743674227447550106391222421889039120688571499028125033222930101962598793831274820795145746636908690111021310530573875061028762582480472978297597037886652702174411246083737007276409150371333361497174009051602135428701865990605537125909298969887572687800067915869091084574078027399010187258340250270675234927908455645847233838793694839321219370566310273581109630944234629357335874395461017150974841760325948353621751671249004828787869344317863407778956134314765304472710158730835918654422753350609450045427094382959523450061795081549912226067705369540347087231670377358003858882018536060774078592030910013073668615332051430948329712861083660252455592697326600103297614111917437427678278974751030295465030810406048421266292749225871319580437832558381427972820610467164454539667827506633761195615471808114106637289044508607112165066033989238555537675320538799346850503492185865362156116256077378507833681394845092505697034605431168901434565623077243178045128441499021187993090482889896661964477429526148689757457320468170131393090511705612968133624656576703275299788425636726104684513955787617455426140794992788515941932345573064585536376766627790456519468752359050707029026423593768921741125833571439855472717969334716699045245738576573463632340209580112235447644417233019968875948411158859193880265208241262541577592395355713900994061925788576243834396708253598508677174520306477125971687162927198110872264071673162031199505749535335078557905805522805676870940035886214508419394511021296641803010250719004143518026258391841696334287108392447011217284273032774701343798411733012446913775974881728083780863283584806041092422086576772875220996324008042994492930498688498984582499837138589166913141159480537977042001597068934711183157338901047464798780815652192644112417536626682168177076943238146633641948679086382584713414390786785266254202550798750059834420864335320340338540716970048589542381941646320236449921869693519762514875895364475163444940641619894167113410443501482484379874639160009785800714886541351357234604662347929727283142415592080025103467895454275219424132570402630697694654016135485468798571442948680303910184410863890414481123754437128533082399373283668196231302956918569585662741137703388585366462274719316725033611040733156570076520712424079756999501517168219006451178870287463522929808818771007290339729922566421130560137577597719013994123632672808453894003190961542149931926133641122555360118366273278385267401987547818763539357339492847102958252871038099756543973256712948755822478362680745273903490374539065811519419572645585878826961885994749183952654963544757136504122860593117832774704317170217555427338113164461220577791460736577914630762301569877794279947080006669333908086631285203725804287139455275693441864382832163075424935767434066898429248175407624563484358599789479950735840897211272601098018591318726985820436021544935373422820998321512799675477151086725568882198976906794323199185003456465975468942090858651868854156500530177043477744794386727039309525080717481143880667694404088033700276228922940394954645686946736562765121574442727556185472729709231607710083303276120464400195010882554366611838401750643307987896018495725640922702645363838487828264437784676467889452186137353554365637760647667817089845054355114691231427414164836797645974961007517515958073916479931951112693660164858482939073318797391690878819561867435883137351553906131409862755152129544487710458089772191058276339894748491027833916995225437768143940741866823756712442332351482346586764996451945247633087053644068714145683260663976945480193094371008679575123989119060859807956189770286170467140202639004075521169679039679720071713355977146779184571361114940796671246292299933147763421654122778357482586275349900679211197806030788574954697328419646448724815492388450416874884403265627747095296067748119527859251481070284907091501865228753429418363140611237085873262940243390981983868089791860127462081893950209887488319592020920204199143110243288618404386721469844721805882747761188553143345477594991570811215472430488110982675308501879271223606726542472255495116778349951376070493031367598922164576741761560889488299509311427656818795044573907260386601558121381695557713584204354934789536420233897464954927668535362013175286570550588094409771668261877850356569324883700619168688132576989889215377016429415477035280056119484224729851874877749535465998647312837668102316847838642080357150661043760802759009924176268410207319104116864752349250603645638677729618049536610561814538747453647356295576007682838500265390338220423592553982932841939449420500089988724891806211287049039130029485565147495434457524482287158340654542307467849427493096347001514326312416129821109765779780864620896364347208805915536423226483126451502160519650265847206670613012049338696992206072120550748469831325044567903619793751145105610994059722706102455316434184231593135390530727736431563672645801322676377266861863347929609941243270017744953982304320400254498544641258218149205601492188788848500428184182953837747170367919128937630870104272072105279340761590955605690287884154359370412944870677376427126382152837911463086145996881385154958969349477753009109089564506288798749499879189773300553955499696722311303299622373574385677800288472896421335832669747258346061528037126274322172432529339257592492447411545058597603142539540190273271795348245344711818326753377256883131935700208316178318579346955506250987414808507383726201448358464003533691270556211958906298935556277917839908857649562403797143088390971110264225897462931766896722340401278924999440030146467922020383042161988077173466473516468109820565844567718498749974291629569527774417095631284596102690145422333953644324790898827529451163209927530749937938189831475679444124595963726257884877982459217012800557580271614757921687730287677241427839045907391273929426788438577192396805229940340533470735733345183672515542658263961999930983673079503724486864611493730495761294157070706620328918110723891552753833666381708043033055670727526167741946306060870155565744523087465583961240503014805791061458163090131489886188210793827475130476412486827801601908496784421890111018392559678015888440508539397683873601419123096060086888484095875909397988754571250989027721154014401926221727965465649895992143756911429020204111157924873126508075595972847278699682789162682786949115247674585192281108652677009819279435337913553500514689857938237138827353572717178938301422164857171410290069972823532328848462192811289408170797402442190544369303801749299703208434011087332111453684235999932090895156690859649152277667229639694224242341883180352109911640280643484735443798320000362808190976855849256117523929774165820418448109089512683647084624741173961271488101932945586738194325086126535883736855992025907815396082128790730606533354490598834747010168086963731773732582913940201499232920969270678316759681476696675208077482680711116784929358461984186261721109253221606852538815918559880627768721643818351604955385279364210903131036078162438914712543316537004929543573131191804284196503216157809042520133124856053203608591448176717054976690739276489514055215206092541329165702491817166443720366613685787673325110828590381921544766528622524635921917501303428439331954912297279269763953174862232078789202684450835204124961260947859764764050513446164577995797419209394138731127672405794054104620755970157418271819156561183209665877740814676916977483766418386081752547859685152469480775281790629399270652523129308948664501479045471076151553997996389545735499561642096460474745985377240519452042446951551105760149422144598507856289800520015014421723603039442834244487088873811175695484586881015884730508202936051430137010450699026815819894595150453748572348798071613236899889286204993413477844596482623886893449564130688693968016240225696097259058369035914478304640969184582654758153494500776516075819566412400743361172866660578064097906850684383908655013660341715661217741365352466629240385273163158429247510718207376199742570052663628734248527697091241463260439116468257193844749765274127912883327647534004587978756721972850802515877654905655892204714962052521040120166987644538174938761539621762099818669564349377520407867045502757495420828343826527279906640404630855560157935415801838870887714052300577774791013360758346370816037414033581662171052377954778031082878931138989447958611693922813772482097662231537416555187072430037844683873444610185876496624830235355290685620889367050129145033747129770829859205524051878310562165213224612288003475473255932571175091617659416648239497291335237054388627240848370552817002962980905865080479495462458224013571415849006733084457388181196744514291152143427939269965562257198643919606775303837468667222170355689084250348329476678415036783681989747562636076056173959495904537872887088011965418789247653078202554123421527555465375278485116421930021040069601544428550071743703540070335935650539865178570700658209980419574495123587644781248610414755659045005537787454257327663137388250201726489696161291010481279326374567313473871166387709984542067027002960111722637627272674521018118655910525861453388197012899119638473502901740007068063146230130805397545776028724740990975069178826192831971647212849587379180354955908545006179881321198211429825837530563509789912359405448601790248626076719483518442349058719075337294433959240918535280295720103839420962334277562087477231701175275687241012245302815387958450963485798391045192131863495690303912564113905964125401943629294949192135307171534484096842071064228228981186402676350716079693504702100231878109856135679106593066007897762553197898250066315156298335443916444925805700780106162803210220195704757986565811680933242300056066489673694876242617241011990759620694346859404061641090571155345453768092327128723539990744359195398397372110133494916569271429930280203147745605054466184575323059017078615644303819701791495676539404594356060660507017393893132134625850381073195038674483556019491822805167730576850268843254958908956081419950752565189355402263661008481614620386544647710712187951630698336202140746124327385607330074172908534137146764662082332653007577845780127550787262783016182508700842818774533207879778942964858597581928420499648296204273540733853100546993954125461947347217039952702270357793858512968366440678898374656563613544478066683846697651766149996185439896235023717671102740890919399583145146872361287138497242069080950442236785510287628680425188163584026162985180721152833223758097090574535691784019381600243965432578250454451969403488409243408578999827719151230309473805540308231556081860716158343395561728106373311060601526496414815684043194623560436301743175092077130490886856047273855173095380847501448651760497567736078331544722925343359638456302152171049873859253102039789581433366384155929925508944602780701796227452105550671191316326265279936696359892383006096981600167088134430020391177191630701637780038300371126418241460149870417148056626033849775175603849549191579141792953684959706286329717452214945264364000401168512758738794348666883757228899613429938664023640589448245291242820165800478166941847806366047848381761856515584017460372897821585659083148930651177919857231716476472418930431531999088154997137742072101183319686196849440518471348051037624488758181727723344272157087400085249391949339810308319995228854262630851814551410496748964257681720314577419760554011665143719337637218818650652485445039993766092267777074793998014225808662149871912470138746989567658098163424079513570373348683994607400148381880910912278504987422563947102858903617892486945519990491711623170929740819517216362506237142082526119071317918763800373820998941551673629031054940290537253798957737000881786588704904392091026112781111293551942277819214700743637373519008329473368732239654947632992827531835181262400711892034565885546809503026304251921987977737443263726092891110900521986875537228105305576414761482463985863718977279776193730876704264970441151141289006212611388530603736722959581611702139503007414176611284833288601673671673203588047015802478486463980799957676470792331064456626033730736158992261787526742601353600729527851144731299279145245062334029096397175923219795801119146699283960660905462007982374521224503601691041156322195329726954455515182840945395507867404093718532366038779628051431267662740364398239831881760597852813466394695605558118458939807050113575168206806948943855291350882854473482815176097154238595221327308613220412923307765655869279095700478430395568199401596422335959455022810565437799547086244855908003706950156080193072146489726731639389255381599586170220591397302709006385884149534616276426044283738912519184781985002549826303585100634103443763340733469903127035583080112435481586611646799047040995479238128789718678010981520497880605047666820366296725093693960731366933747203672430031896662049975065252017547135786573464383646763792685019584615106967653639024474899543219972319061169329622877894612265668306435189561638995745077221094512799188532444937648778904054422423347097958726521769377763707960407327897024558295386961641263246575492104481223808933638076494996719634861554060909141594976780877461912277082868446053257271801923246319994667678926030359795781182790004713940921719399874076000999706958163447923360510616646007787559395457858135619117973484724275643954446900185370303889947219983080588340583672047301059337164585377733373826188199786074067450906292255488990834435844707186834628390792947080116968639485118508116438134602812347712665009370864349808106119251169983906911241127884922501074046700100249875549803524056367371564404834835224610219675040334226809019609191836769753918448889810307693136036846490751851920899807967484952064252815039882199294501631224441929079058217550021246415643878011473635348603231817697699256886234224365116141378358486034572918456459731014580144233910343661909121175141432240043381471464957028036817478157339925527876758136335975360559539384017686767430474620112279164213879016271782936332025735406498294315950055471411440663728022590649907729721531848353962105920750948187022309948254672970184837824611212322639194350073177762006695405996037403765441062871924178666242088214648278279438113619744675884359564005433840353292127859574881400073749708325048327857556278773866528397788884309372421959455553543681653293719886363436817907518019612735093458041094465517258849680261210153466972738116149856071359331842125178208697644136628031319592662998008004999380179915344918391418600149176520095550574294390306323540512913272285289533183861280090024201859206830124557688515998603667088214403617994975769301015816840489636950570719416181922986998546181106643162421543438857448343388807199476674230925541425220464613263330219254123326554225179003962370011877224880121899739867454023278310111558138887625327523466564979284560911758393972476956922958164791705775346063017007527431401713140934708262075805563651383657797778566866723143389971585405128381753951728867267924335193242794464042748455722042713703833842824335856314255103756910181474583564146789534508685629018486760916770619988006592305344363957172825088842599663928971247757401309355439247332407918204555381766372353322209351254013248159029890264297425927878945475006549946921212466620662608214349320020805522405722398438304493632828192284548893289587402257932082077749921263608591189029646609838958881002923882049246229713322929703775199313610098035267052448685322637447804638432564630100081448629121994571564479009944608429368284796527446127653332448811033242025174738622234490697236755378803399596664030721437536023310369657332315237722987442690566896177962823218987189096251000966738160799485616991125616466451101755971637994994874517358658677084047168447477084990976997944707107221646280139462754592336253361858445760238686903734040234299795866218897141588045753756507850426102120697436970969214409411346899426308743785693181269940438714594895998350024823390435296021410434798710306835342977082983320775180715284808828337014599515736692340895220746753110902000408776677345208304107255415939005257603460912081402841774203771307008424371586729360593480664925608906006214007352462203466943404377629737141729565773844359400547535778336478717385883199572538063980996026454053272056287315112297815716086295737468456654236008290043057653315412716898974622851338510767066427511106126351131616092424346656970070932995217809475711291051481146984681636209949121191573759093465466617608592524996429649049953008495876078196360047102673940074073208436244200346144947032423951767853242453480993775280280525924048657628467141218672997407703083930742617401450032210497262071517016718491281343898195596976652192019081370003672782082548084440770548894977352900740939641152159281309852432760682475952253308028248314091145503496480558833631436378808692685098402275435610953038777070121200028980325179010492325077885025908326341435485168772200998294771996023052438855804487383316035861722692030067101878742606941786040706999025075004932336269299321409465809964653142858940295050759938374246713892699043308896968931712215225093296152832231404015224720069622519312187694832867420029173664435680663582105332804176726151562302124288855432501934774716280438341939284793348612220573524012877500894115331923097650828181118963550249584671068452926448455574277121347428588612865531692904976784566259641824726692778344002660727947414440837066457585123767092000483121940348372920856002290277977308648541474618588111570240287314904233747102205122542105996607035383950648233459260971244250184778080977172673924731940165503960786701230473957653328065850834841252600889465846731191572917457422417794933549798919007820621308610803865516223758124648355406507243292929115450926671318592967693090324380500504705798029574716346546186859666334816473756375825302952862923734367894946601088352913613146663832807119837174914550006429820817274506175115331643178506860559958041447050514513443466135434913237773369000477575850404699354952865082123106885520961899712439343411168098795396248170852933855760900270227949741241797404757178358915130101948311420886832494331481780233765095332429955285944368343551972731851780494655835099194309370225681931802468448831867708730934727803805915525023120406422360947098853016075837054367783741464411605342176004593264890125101094368883949375010807823551784950908235899540726474620437428881050839645588426654869276504840328312182091922525491147266406362203079345506603988385724860051085280789875092295415205368592926198779168922159220522055198532014792614710859188431868657411596378993112160998976110979633565444902734359098328947867883974966109031057965678988481463377937809720633905840102515148001880401230886131297554207215369649270580145527502161467808691366074981225162163435485100633443491035342053393469452497476955086265693627621261091572689185127730376383979571593669306794929864838663384454486312760855100518189458110414647084540153629145822745729015341057988169354055283186736038250883523047392021460703493319106727265127717991413837226705030042889515491348029236323928824220795773086577354430078714994079606303257695899262392059660138555418034196698932436702851049428362179024244477738192565459972644214164588018332426573856187867895985236347842353680905992711999559785401448359660621563295163890730042756825400192358883203001911349752328613006510978769294553113966895558347643708070331569246477056683170873581839480453887530751714783371195076879764077288464866497918231845023153810551758734071896253879853762143717243682071046881420524923936550870448913554165562666671315419217636666644546134197065884404803958628401161360336854813455050935903141657252576055258698787030511931907553636345440251545233958233658716038160852821850071410354993608466278407506123683876446214589192177914259300649731241854636559956751295850203082278410326137151135198390612415964633398239008789738799337167288720356789486961278469180298840007702404614168435709646116237948458002436915344623192970276370458105466861864892006481857884470461376294282061421070348036308441116780061481502391369013966575803093965904415912512096952973581273097903258329274793996928243831492062590293309286010332391740383834274571135139845774783202448838602196807671633165349867303474540139992159822111671115125442585376091673432769990400584497434759055642063076946934728356506499107776795892650798323481084018224489117074966510406187591847485769721036743268151484201956972207473448220879286996083629358763165389047839004874274793515152841972707861432196582841706939049681577256828050122020751092363465517693151572323810501802258551751824782234136431788165206850661394226265344697289359780575579260783216673889806612519238800016953432522620052889956108613287995075957355474955247424308328701918030564770827367014344539375937631550175093518515879850506946390523195829252309751407405254595631400743663136531859885757737887841902614118689544565042160337064786252627247085434175977950069264902695112027502630954367405801647213159267945379436949752610184466085800078312719131602123509138297042587023364160464484612847091863431519865365466090267618224747180122535599681323522386679559736925806895975303712648024482045813701820343286908637165983377571085833010368743465774110621814317655633962100638583167467480918871707737653558986622029499873827444255479241163465467940603650247460245618952590934996673595122712732052401111139185230270676142772309222947288101331929633399781855031829344326322064698010129517045570430063250156250431508365762832674123002049506397173678418891005142525305249688625673873847779662866216497362402883693096173543733731366775835835701794471457470812490698022977681568825722570894989089912066055402520608013224504825120813756743766198679642641298605943112830005408881881233133472974731212674444311867594320910668184178102655733532621387737473755345782790415115931321851828588777441772296620469138660209349694256053645066213331732596198768258859429879426709380114105415399391896083636192487418791693064635784480721565839931203794011832448020155671414285986372785984697074047554361823481587960114136623524548067203456147569397801228956585216225616967129836900853900438345103629959118876555485850103824200072825738319153990752707127241272013958199553566373551289090697625107030489202794525915565004855304667824943741234171084511127271602210941931455401579997525759706235711965092077965351455828496946412471272627520263856889880768351634588214744382212186296466126270826742263505719504739238635075412116648302620097127671004898267161324519103527836207012854444670111305232522693015087030633845197418927063406924545880913768037295753346806779350468647874587707376219253052874813619851138575784542929107665429283407134350225088281889291524452778398747219008131438072043020724546793175877846662665684652886150768840312232121873329607244268494339139482344004879473181001567234526177025767088679077948843575976135181772233032469991166575966356154888040497320129756009526598823496022332949604235511787278552924080285877667806337022880002218103354707338193738262267571929259335637095406157277805724414831116404280200117378104537735697122670282206349312690545498167184995028115689010796880290011256589179055592345472292137852872328218121250345182059548096772277660713101778603438829573318206423587236993410098106172349638246868300913325653449234684068069390174735320150444061138347551904288775406077581916178115413003992574037864435913019078461131559812287433383309853783972802072728689232029894397339481981775713924749169464666678961234291093703387932512337739713880254983507066465501643565968531458265075610705724702998374090486017243764198142270431480373845293687436005363912672650761568078131420041224119594940392977016342812407872080852166630645923056703207098161722529026960230630812926022797817743571613810291929806225097290234214027211916938032713298320083728506679616281592358286686576099904415991587203941836822473090366949690717745701217771446726835111945799235764378946935653542086062973010467307198227660774393023094688615482810951520215970525502361564783557941968817555609138577852192225964776994102305700383667476235506978823189655698241465028678631892113122406061809386048832645173084016950142082157326064292228869111525025499360218005104193260969073847488323914024155853326011528507043066093224442482524144174607444884453418552824140376224643011608492948664582998552054267151740545442020628070343329410693372726429706689108153584840149094569382462168479929707068737877406289283254513422604088371872199038355526747220941231267659633815572502448461126959274697523814493216404446898951622400692837095862738068883362916372400418759586455204637462756958305079845381534715230664110072569236293492763936710913135127040305457696996684553584714559181928377124625835214124458120274966078477181056994570433605081685095894537463079518395003471725194844359949485446852681297359019069065359890335695603100644796826312045731910115444965551122684173251522773863030813597582172290597661376276417661634769091250701619995537596432115575343966216882710840367511929996000886246321999875418094360053087413396269299820762966801548809052355871868076169855606043417539252404967999646517600026926916551698752652506773950851304080538844506092601096436881089420268561590738998509908250154946391822097006484553663668996858922863821597110767179767897501154280872303912887886996186789307198286754991974326270934100026851032592963268818524148957912443276487218014529821857497714292943666893783643822296585911141794051849420735706452832598845912259394927444557146677651511456929031395253758046337585796415811636218722766151898241220535132242248825616774245967654125403317844988384111376073500772008569727762648736527833891636142496421063088349308903320848779428644049722268286185994668934379485133485590582820696461239464975741223628313977338190874558033167517272238664736033632294221653127763584773063153429737277492314973942733916813987517165017810326131745506377657709788695976757422149371635288456874197560695360039337332020651649369708149229583433116310372740909866257470505147022723096296228767689369377387123902046516729559253963757042296827013721597849618036234804337906397035855824221088235298723949688535770504518289509919376347473203519382811144209254673933678229258496532200800152631802914086468882484513127730626798081559547648285041727113926403155385040583548821872063249822568308378114474967278883332002871767003436969011263337714068149248560992223709551854738445717905417687392791717851659319868288756418186776876841019149180793996112890707515885455246994765082176756772116466364276819985224100965213050465083407275744849661976161460840590607410221444976223667994484837777546120077234904834680479955363749200222871127185135606616822912323921800558278141858159904406240526254636771092443831733984763285147065350007978318491582401175956590053502706403840870712334125490430058925526833691094710188568063097486389407660730095765914621565050197607344889921706745959901008710843618344332778765368258772308223344345432927526450350827510368852787696779247529054351634847177830600434230680251041692709840429423261549283137612187925615980554961799348822340432228376565318861257502640780451529541971941954779774061554624267671433647051086815540321664452516231071226012308937104755068250860324046390867144369077324413439849284146788284714793329962152726567683401040035380272025275418435225372283448970658115608571059933666774519856604722008416019086000078805952681826691313841734181990559010582359290201354051461037292598408924440579962926120982981963175121453533210390556518543575501550633023039398321742416388765814182837549573824813579535376415648600199102097635339207548493483886928161124090428605168897241562593757958318989500729245960467988554419093112332985271844623356777359933348040747037205328034706976370027157282023073057696141487196642042557275049195036632300465139541814072510893070944397831211073327668759280377650717251360875571937648563674485588882578876613391844930211918822927090195001468423436369927531995461156713868570450744143216339040780299923490581446565204496233515435720105541820604402629891318181183565214801386554846503939174422768998320959947345326148515338090881844067372693578429319408508180054111250120345744530333139738044694885277098998056960005191411414227947762969039224152446159813681255751398494030158908912839039690682371596762282654375590561603002045727456152794596519182500713348715654510175277234485087001667162208813471455957733125187680564852910540739280222112003286278105640243980038070190569773965297877909880031620066898403721551962433429799281009560861602014910881911509793792900369449912062176537748237195532458063615013009808650442425293478356985149428846338401965086282619268181813314535227102216178688563979618042557270940196904195278221897237115760460016399090888725718251046884283461891318120296964133489317600548046104950927989751763111474022642196757645198488724532400325330251824830774912325256688475616954239348897784619157579442277085582057854100616348798261398555091924933763441969386470241543432823282768456841426994383723540254093937307380463434382820719655314032671584701694148331391499674109081253099843163120731085050169063293191018211053955855670398241962916952076571999272307176373081364238940148232626547055090384196166395745836874762673525255811990719183623735843687183430590922179954499692223300342870822693305654467683677675587796083757183281068255595685431680457476896844792012444397487470057375724574087492178275642473325859338271836011855063727116823814246245890459076029692142808180577856018865526909992792215471270895924017947650784451441464551717272454847694160766247832606573541389446198858375674984767805369839295763266022647239920413652162373636146664032315518541515481118581084433985515043673480709801630625247510197150466954597491414101130866168163686042103388074565199493245861160487111648627998380248125394189901363772731113383426677853259232453334485375966471620833853741226355530893744390195154157567994245323803340830721684199478996812426888461659706083339733717714436498679876718797251261506319728855406319151261038649620313740051544134572104490446705194515692273936673249768573916031054311481689222515925766878095346204881819135120128416258147210278096597999194416034438418232623144808167321891237994659746944737199473447546144729069858854201016252306419680597237228423373245114065402837552630397078426980459732101949345700252505595946981454221070283690676511133800827197043045192478092511785627291035262791697425806840262730758419021462844091789844256162986739091005370029788550698582319092885544099345771750787849254791713785432263146556661535870211691604317209842652323139660654889308538301968340192413686714206972763367197581477872361433017261255520558300247566655717115576955972073111366164764921241000743253672111718190269864734965813010136711373222930768214698233095862601755272167258424775944321583448325166771795381374496444065673813832664575174490574800465056840211185898270646002549842229320727498220697476980622608266011096184855693521180662292994038015726101038428296088987460656304679850229299020929193246177160616038480142250886912373424858644173126718474663451214908085532127581189474825178594017584472291425938199664790339087510366666154164686547007202202254597534809842350136484857494788554745921337509637678216542791413547467006281276744222299118827998135726907378546909110155681042971730577884247638537402679741523709462463943460512163924514821050797603268598660940087323415642353566766637531227634801010770454890510324057956596674130831157927974809669543472607247410692015339209093345827774473396165009357524711241707506350320886771741219349514666763871263737284611604087706301583760011153364921219020331806850032466637922173797926804663637619558362047195745588172551120008041991146136339555201130039423915975356674113670223255190193417645573146948220222522954833329774556051373077425177097744465980760759454660659310312734871555326438908338370277382207431456894458643717541210660493377454249047001490395946574594377123789728005842939621055267503956632149237672981406635006120236079359507250026118822988170244093230606654009722982433537652437799415918514933904172250146997425335378050436214109357723549008818690739026951401669721483626167233238511176389727375572281168991998039957293746032217281928453409332584411696304062383003542688742902118242985645124579520734798462734619510455242561373629943301498393729111087052996951918353365053484424284804631047652208342085936517309658449613028583365481954359818675622029416138432116325768598256296720182890678112418686878459731338714041872970071191986770129310629309694989935481392187592880483984513874075864302765615714733518354407350625531234366496005310914881303238446265204351362902626593330681205115888510435856994564993886957070611192357275711029419692899418765543688425692806386143513031063844433431339619697973356152324266641706639024036236559357494425103835682493854306636956562838134975783190902427704990944514111124123020604342232889259749143823157590798442351778454112872425949353333098571097875538683981754825212175181030821817650515556345242994845390457756267446578551759148916225117807053288117045974059759864583008005610322332538430075098113431012045083319042286546858779944012296561656389081595922394034392226001019722176573621711635990257575290003386602274925942193559612947551851369939324969278663506523882676894116763890898231461909596833861231185867149575727057568639974542711303659181838471780818084175201006556621304763267524946682059974639368806499907641342580893082040902363238351783063221761720643363201104034409940915840514687832626047756804071261548426034683388026809404479308919373423903638644025492448115739076316802664679967901755671870641363324028870508745716587139591642925361440259784029087134377444175895665581130737629688934752717371131377900031008272938712248798691412428008450272512254635272199201876242350802784479678433702368073614399285904811111254193110135095931272766112488895468919453556362187932997488458678348144862698047039900916289528836891137461673156170241004515775700160377837033957253926135405325011465741922480121824316985303536394598857504113262224005410970519491629257437928191687620492675684777486034513839694679909435305586150042794448311206309059344324700093753671005604492655603472747780790783639504518762448392697987313535284348463888133230439792774802201529619235548600047342730950786780625307673643332282419613242705655779452266065695016189262562694823800569503364915047116242857968968290896905836375827828389289552036322393096042046228781063765811178274276253234050556458534328739368288105558230201554434025666056119916083312452763767493832195233495631786258422134166574826288774471793387032908362503995945159111325505050600405519331067854022140139289307747103178334105594829183713076924569795220641402279584670586885775784687252894700750851850045306875707839746663845073601953573707378535670036258558206673724333862383506635732352725502987473715710495782761939356350167592836742308538385735127612882617320094878087312978109940137208753218796217675072343104204098300543075454308934756099996705300626008939587539803004781681712719509393419106833179242945159543851121090917226732183211816227957059544782253612682950954862217231236316650725721863453174107239765038264726120658627233900281950908857409600576878745913537314615158976810289446734608601099736780315612915571892379694137835123162740751694569490868054417875979200365546926344461817737322716700344426677604609492481205879706465849735288079241531563932434412578917793572590178637582569380634250443054588279581374107560228758444781096542765176706222370697241979180215229145483395625622846078386629266810605263766773584382487337825864288501212332924720709607596068275605802893569806800904247794144805224614080192982744535914261300673153997422039808044537501195397261944848449519911402819066003262802697095448716577923187991552650311232355363968668453024301596197349226235227432305360422337560641777731623856071805040559182350894142161260438937320034975326339693176839639740834087614896605346765002018018095017901524757381590514466840423320462519585964796028953155907754720418751680422104882739795248273749674258822122908418426732735405062974739562518609784580701322766115173325159280125006610307845655227933906611955467698467069311445434165385872999911772553407583626730720598192318641581968334407756173587601158541062885902514859706630256627278188193432044354405942641747287444638497088753892436548269542567705195500503048573967192593691831322499523829039519078750074774192883412833931514360545655499274003400051475286011764913688197540583518130106428191854277239798889115565442061329521483403974655953746931767971260593262273578893694395281403715549812562291836028970988448351999590927247614292738476113427394270764659658609967512305032437609252837453544759855871927974513545604092844631238388919297638722450948694664331645858611708788407259566344648877283898144806975933463489209208474793366411476916948304375959983029844851046697116761180315756704307486831913501510866268148110806626764448818763734119104630148643395133316943864867191253051197712222605129272066288828365146022194470819695463197824818062306429591934380319107075672891130341666939068376651437334009829176917783350235113772378070080134493751248050500732197381238516250632081049666953651739286885813977490771907824529794195616886972231675210450667137919208653893674998631486641017004445762995894532195598663958091794185105600868613728352055446420332754284596042843329042543986132359098896161049110403705381295507746816387557681316299190250815702719076490775784360216977227904172832152483111546737798675348633009709840718852917729363837896867045449380220171574243059909227766330242974417045007458994475150076574278290259389637763493531594783200225424326725184230050688202082549721292140563372558158112710474157018538931782939878771279827488656715046322466438555534848878687664135561276104858242058918651972343533639572360994808168173974031190309304510004396180691234477085551492472966785089521986109016552489835770049619203738616558373631326523459824531995105916058379000397996951777069795246952298367607431499008548564143327220034989033840428531242112340210049816242918589242224349575360808260306762401546957880647296192668452751116009590537854831636712454848677882017252054639855865003582350020215085164236635007877607151985614525626495159105550747727853798154063271681951117541022889298378222545336756651902512168230169181983942598999759411769587521509279463766196336087192509444685902213621857104072204996638635871299053055527028410467726202127446674545215457723708236444533570645225149756787051719480050080256782460781818548758389225888164176204903611290431281674832076693485228577606793484645865766909520661008787906430168167533916211520568108446789415912337414636821138833757732614027462466645150989210440638180830560804013701008907417193766295844421691227908932831982677233321279200768091661026838723843245442068679756039482673658206734515504267630881815855803931916173275442955764365162015166446685575937259409711518783692173299938415788276602267092529147461823418663672193112269842360868545204188312801997803348787565882710587023709613027479913234822581376961217046227422496101673375478801063408551486622869956915271626335017898033982736448774282315381482900134325678883228760716511011595871871450105783476297528874339274581827686000452775717724788020989656438529423881738799918747129758741165413323915565108908775257686286616807192109034326503014635427492044749312465201473231975770361204501174793986282152535497202671790895051950859097956215389121805648789967857306884996390327781322940152073050520209607654688325251752641013550651450298021343533658755591616836749428944121480486599822561119879720866930212849950166479523817064956427351552584684628920014188138574351067080680393400649398027820408450155974311129777968023582204399718918274081952024523016175994797082805860032889288674106247132869094694668439042012057741066994621572385110915692375927855868449397736068800192293491471758016316525474727285404111782500315404941649532114745075496654802310185518447420493368214986786738789249575147069024662390473966302006615781093579204636277135039469784343591741426437780311902195475226920895479688782548564570713556669850232754612398823027868901317573219171678493016365013895529131590117422489607374946020294851279855924507737935690813338697470374157396558258857374134903582781434074625542355164396890460779583866499664944507475657969935149351359732001330337208116628916765098694807294403299176129072301114046589113824272726329685176094284187939802605239565406645933007896574157669708671920929452539315527437352828004823457509144853354240491820583021173669376049738422721591348355204042576169928064285471401936855614110276582808570403423258758656946500920230849830826784327277486927795504066111004359764768678653849550272255885422498613657363173961480998936084740971764954715433406237073265869752764592133742971412420705112256449499079144192444832839379138042063623800297002820623931807561922648539739493308325197087313845811985701710024913652522719868408318404784693642902511129275176699398862034387891751726757221744214538576110028348743219052433329399280948839061529406411018793753941134303171916852635531673529853639867761635066119682247234864034096810385850460672960147613107402400742653402436803792106844615341970808088122076807110643890588634215785282582287743675470140831003113842985349352824935850403623459239266883114480775467105910694065472373465877894192487323643702402024017517597046829540255079677309844431798635413464595390227657432035188431115597546352330452355055292850636311524081176784645471413279813406592746732083545282276634305953054734309381750377872317646489096491044255879694041170527766297023256952463671775845878822028460530530546618172209655098183967544401193567027827210833556064466575228098058628703330757873821082112921021038961652312284879203280376653872019582051856182501442409628366098463322528411015741736148823414602873774984914984590462988903284925608395739914059102412068455762480345904723595368839274619006353006025286844345466005785745687250028879740781269950143596964947641493185049625552169444528557452948072324330277365557456104296608835697425307361113031082380003158538736286884921091749180339054828505462786410001316947199894889420953086446502679610071504843926206331171186086120818715732734551370014186768692196704885901036242331516776017271742233050495306158524791962889675944421346235651931221942844071430978955055985886244201736282607350511638463571118784683471588349062334258834361427479382954834126341741688260288873554781665323832154076835909681205488454817189269206203670965360564089875928450815742747862194136716994322945869330495353722967997800487191020347824739491797171976726253884952817305136008922705243085564874504121603355151493103964186380892659519034350197950366229937107061098032834728693454151359671815062976637443099493236957049534959141935272715141873765869451223636710793801152421662449411980044655721259753580463999102393279770838718475347998543603066177468548167430253509114142253635633838835435446860011086384802147927631584793510710622722123289000304008555103460768066519552168656718918133485068069377003906870137625405524668497671014459934961842246898041701860235101964990133778650832343686944378216392021885085996581311126588948291773489736110174739245996397882377084643593256464055446635456450627816507891000060357895847141178811400147045565792468479338985904435609519395598304841190708596839082696964630103312919540548356633470754825597162240957245607899522751374317292043294421457175702111966492732950458924351154224989284182930968016279099901439100065160664654765723303846462439511383067770124161991030939928940398116061674207603382917593065660440087162242294864120927680054840263546046021286431296861760486768545873324590490445815446897600129176759371782877815746344749744317472245714178249593326589599012326316543180978557825775355049571779819902461257772849446353525217033433931343645138304258981514773623679199418168832859918715721722876519947031424824878759641163100819127666028856647310961164666767118936763472129096300869239623420708862933863125561287340653467909741993828816638506027873280048505449182019933787113082949339025444084544528311079067175578158009386753600386035576806398106423575109973318402806850770996662013993830215705749043949115438309056158300113014109913958329032586958376761970744891911326312164098184347256008766211159695133389046258905040210397168875297634115653016376140172417412754156775733851563340968924430140617974975371744256647349345457924696799301102619433763644866753756108769161304361374833047944122595261241514898169980768101848189578003832576338780435311856971995174084040429215732071789387708959315570227427282658161497408013320634338400868902388939183331420045159614008986112156292436416947254313561701811792005595928543918333436945191945143171541350074200639050607167658190582421620289769684409055245447001281886858143549545420556689838786244832075212174109487364741091578604099102585558639401309155175600279765865384075682363973583472336482553352052477229608819305408210532813113048809262550440623955759039194431714152652754080895298657263071634073224395037998714881512624460631281385241074143597940857665785251694389927465562180588692066232504493702921288512745927021376748342927777412718922155406268330082860090179218753829486291501624540724777886699889007098050569250698581837390135076394365418723293031183658168633364477932900707857451061139914809110997127929438493913670158424189691093862380272576452166781402236132290468097724877826864188122877993432976707163870569511990189632309245899990217975713134517425936032513690208839586085467504777322929062846481720319507281491180095950512581344757157055467848443623776914819179984052906677154792911742669334885856708813947344848621438111159547544985280405742250695146472008424624472299321579226467217881452064820830276936119217385236785674096279108523422956090632666710480288192263713909073768444809318444989699293106036870095308727241026213678870697269856973400228036350475523688004955869735903902069193128307071061791355676742158772575982219129431864574547720513289458782737577521030711942554517528858363344593580055240089312099188257065548663923144808623744145953055900306580952924404261767525420677103355368495524654643577010178979641631303867495239610828903257724489918622996519842327827499595893408310312932676610272410807379546281880763426986176170331009346800830651834771328705425499623260325011619282730212993493413979963426151264850634734832759136317868247289444932146606184796505730406718748284151914741684169089722956160670072819776610831141061869274357335535646272541437940981346383228624336413347897889091264153187304060531724773810353708266941065444062266129376623363259061383819763194013039898558209482095391860248199098966486271356649875701497953400676447858682049107627096977570549150879619769194413901594125683267942639579018278254556896996803223178158977822565761387167701321480211552727673111734165311892203845147369902316477647593880601607553748338232854582595062910239360016544735394298287668207371219275299907369744081134237202013142340450525931697277559058565700313202246547908665758345126654568263055461931475471873912792397211846921778376200632624668145632249687765602801045500696828152865754259823483400926471012832843064302569765264469413502706214583191104917931941434930177034870263334601687102918360837412532758776315402230395628877684472328030214298729494647493950314649180413351420239388152487593737159283832660035406428953541698506199223530382921861048691825526902557498893197784720619919805017972262247637181445979641371384620798209083958821187048015563185208134305168523741584217478145801156305831176787708977094256915360787809113628435482402282839456580419522013031197722796595983884093635835590118574270448266505634384216253604983408543890402854304926899306613530295624400202826734367287192620794029735061796925410129175376266082539682218062164181246217311896733474309422088767060630546716996314182155902924351378436435063226209312068014316916384978101227107150216792472056263468706739088756753944244827083825087882653565581974416635778492417631881483621644122223236354993894299078409216509961123532512011031423383550654938890927596110536939808302386103713047566762605558309278494357851978563905347432674505604909407708591886510655453008198264452528174087746547899161511634875393067419302334275836504964156863538834492970269883021283850750117307225319474121886030606608665654771424490261810915095583074276082948581103520110703303058709257951235338922157247424785671676788358973767617721175130586934335536764903674373881704440543698738593926649447153503815259632505530020490676462445852260521393121962997057825503270457798044858956070209902153446695370684284521782144523866710469408107506167317478569718979427878871605283450429022122439834339069476764641314581807048184216581860366937640989433649381426799919717981523351084157064761650276045386329995224430338938448698694879649254150996947664654689769216486142392356827531850965408813353323603150184543091811589795300960882380182295483646650730834615875373909467531125542610804096592752714562722552735012176578243220128221736845401883409112563696058674173544188303029104229540931213916325166527162812140200393485246292677025335567801321211000746875104927292150677332824634054330514641101694580152392810648716511937484962847145205922860221643092270732911314850551462608765491036968970857811251399477489383288426598056121218316115303041915518697722069640705170655830745429556802055860647919856113720832021397337158971801009341952992408631804186229969441590014844534898620679645053077361183991361144007305930420574967863953731729127783584821562914800308429891763640342582197758590998861542291506488185489391946492442442707346065366282411043806874634642445248921727008002698896840097704990687906189943490599879123299393168654297787340536374108604116821223280321443018450796681914202371152463948220177093142729884554336272986473983606761973552064654414860620658273116315057177242088765562487222682926660203714851121462441496499951520297356963468957934911848613873235673727236286722956930702227282618936242091446834342646800266077199502216509365191242991298909496734886916099755708415385632669799928723106696812003873504357001390292512455612525900332219730742628557709051926829142078160159206846851894960268032416450232179784549350036868531120074399878675353188044734785139543177396060055361114406353642161812602126386573094690593255906397219492038056287678828743091909615406869152123189362789249870124538829074308381607486273896787745378236370946788911603417540455089169754059227394049266623912040646855819111208987613022144456972568625452950130411217199809106691154157468748584959986619908398378171263310681533641332040836168589505925150168276847524016347344155357829189499213859109112248318187172194868838657130404829477742444060109969015638352378276129095967481510722582918132998287427054987359677484220856206752067159942180911885102146438815360796234541509213403430061299786868257960293849765918712706805152707141861960573903188851282433872683766410207671757126610927458223352290512994852828161359254699066916018502759401681624498230386088013824249883069963917623093961348545994517800671078225519324205087390126795497844015698988750791231652774721289479153173128457969061288370019751895109166908506798567605165873074799841445684924921279790288124241008840884778373159193613204548263035674749277565413855998730321590540762951436378852229866981851496708348605274465264498176375321102923062590368635856799489149248808960412651107338909663443593384412495832698268242760102098965945460477365239871180175186513673393394494426767754232119108230942372896868022034743959324862376943741086660282017476556319495108722588920221524980324583927172427958667737838065801661372929777118446650250115258124073070963018040694074965568499308726304218300157041201379224567873194025821310945461093699749222618583746519732322036812782167978548254038535799586852096711956323580355674470587232686279282060364871793666055944117539018089837790280843442247968708856595271612788363404327608000580450948161376241757342033947798630322367382842571940605835474378389044641540657909999318560812430846353396799172288126378879916003383378858845547198231679388933628377732064114661702595420850885180512900843163071504331075395455419907964650902316442883447406871971893546673564945681235430496129888453760929770893199421463048220766023539824321576162548761284254121061611331336488224541324489754535662653491424082249134020661750072112694306124966341332187855468029459124917217464103818671362151457164950732198489695727687268836431105360442715715428913668157127442833213339763343000508127395671874826350462103931432431997549195809096136562570024320166580709518873058991978706793682952440485342023865275884507762927871463422193015005638045725131759401228561135543685420108182371586901339410613178329297920410991327454105471307174533004723383956546187163445703401855604718138157808981594703684942578682192636363447742822186059642474579472170150025817333302273204738657321534694893877232700555694600647506204148733161156862285269074168809349901746912760692719893850556484002433703265597529368602387426960159164509565088854902089848498876250095069667635938123169779034511780554066734922879806476973399138920735680864052470563221867382478507164461143098095494880924737318007196605892696476743801970268224103288656111365849274866963126807376841336743444843549156947581728533594401006332275230578399387530325507216780079595410679816105128701235325189048159356172170323986252992391411785715560131667449541431362322513430909381171389724401951230821032789265836285024029590494049294153277686423597978387245805939513905679556048902242960073431779282618475193395556459371504687561997579743169015357214406687580868655452485004827357130853173124413579232099358194008478035530266617899903400164500470949101383340177229462992656423345478810460564771403017078618144781116162479625532392440680096901179092285135273147955036450161301300382806788453356339113517314102426784397707124485599392643077445632719090320883935185236603305236997613131733483452682577284960574391671553951585295633300819418422656349976173206683909930722165580285405458697118901221966024066946082942278143215432436576101750205912960184367126183329145345884749623927097658169394040286387467768485985922138207034864983052250484391685775345481955113749471895212461814152399021533658511335253541411165644033399101481716030559606437342868032391003140709411132623263239983969953761922713697350014839858388497144816815171497459079590177449277445111306272842013163584376417920933292431674400554612311429161626397607066356038600656083714043830300413434746398954845945112697033377583290553364122253592752497345534833372325862570963384334203596640897285644317895876135181009427545203740088801072788481889595167231262118912500192087373386133650137343488640425225200177046207266882007044656184738968235564714710782682630045214904324105536355452559184213541968651137397886663097500814256431984740377591458789590609845742607885786320231440257646052463724839202431547042711190031890420403338170009864228643418074777777983442555989308922906974570187202046818294167524913485599606198009894844748916628760419800602597001273656939362975409320859454667562340804615013545821550863207226603893401376730576253406555169815277785599299882419464266516768776119173622270209227833605250770480707590718034363357075638283659681399539076072706818136565759198668375105461152180837811919647554096709582495601782824567273685631218502098047036246417619868271774847822246349032781088546314151737181432979288325624993711562971573739011583631087044860251030049694691425838693706512037704663082421648944335800059686873021485249287953824228610007364203649679148694242547730644728104255087291934196066705256450640960879002440406424731141356609900651467888093279138493846480654610178905627645635564452678797317660085645985904575945045293632732291403406240934385163140252600210208532500280314180983752338963958307623736733425481189342771892693033982841203649517717601003467519208158338293632128206631310891456020148225230455288294429174005143891311827980981984843229029838696282514873944582039109406532801887540772094907478611791577001719038791280637623661744014404520702292452320454057628069657930850203981218378402067202501202667529553130834943534719363417727340636026257960313651197855485669372846404204684892771577804345867761008528960736931441334648737735250159245211976597545908769502060561757819359107740362583576536008089376532813708436943902272298653222182884374001388258111629715534575674032149860975542868865798743690094970509798609377027835722338833145398049398921017143358261896740031225279973033645710616072849682640266823477045583015458557482717137243584709948613726587130254940244957385588996605353709033892511454055581245692941378882716519900043761079672572805998748204798956785593885849948346965194930897814997277634733058570717902709356822757630639304970229663395528763379913078585931420781133511143201210260198730421670626014357584117977079045808380884980881666261853588355924200630530246434628992308203070806494107304156759771007752398558686759457317447670945568426890385311284949880181447745665050961489899151762992416428780004741385080452032953053918409768994631996955912786769493195927336620543091812055669246215274078665143235265920707086787955864168604527753575020748767143337706011912940315857431076777779521359026130808289832488394832094998845683076724175929943034020943993227082754835738850741991713694004987985861942344627960841444735665203792829531701633511815302931272302543562910554586395777780221165886661126933574072944361455749056372007128254481135578340290160485176052432969813550274714705263542935264813662388695848981951679047612474744680084772588713945527367108878475084256882598396368306676476645133082342995384063714939655126025964126916639553294222162779760787495529174856884218248637463247477832449298323544025715676079286742595284943389896764343657548230757547840335036965376873654980223987801192035440491288268359419539718436472554090531421055666320732046388483827683792610550038057395379402151364136624967493537324104404348623823362492049535442857905306545277265072203465929044320220171632423583137835125210957641527412446577626167543609470974335640076904143622180682993551510913855657373411948903218456220443877152700482110127612081407824526498863610383265084808525295149522635542646067184454304265338266686100665577169517144295655590542368193393871753203864115522428847408796387265599650354531601787284299590624897569431465725329799565644275381025956667255876113030863545950868484208170230903776010731371062342933780745475082378560549479876902139056655858928600919904560260320637827290761553970383110180084490112148119277796748391027288205755978205350883461500219034837657646311056840142504210637833165097909347259499426617045207232691017186806893159895008062399758694838970524161223017172894039046699849427213392956812616100465090284562126757394143927950319586502350481104716856357835404264857212754026388128719462092038132546481161703135867671064365876605516551331133170227182321568773621958482168564652846069706619054395401406510630973336513811963331659490303921642708535422804979802671491189563642517489134412142636155478089214528367082216940259871126321143885299391696304804817892962988201123807490130529424929480161143533023900806706572137816797198568613029030129939944512498469010019891936059827916973051475943464960288332896966081505634505660937812923613349058578055094564210353090736019584463712165073198201564242201326845668774183233102473192186851564341203271703057306607851753850970691717079172528551174362787130160095220892024240503057564021537273695926679974781070727937239123557770934682847560107630127913119953917628186159430382077839824326173196631333620637934967687508952402364246923190454167386235836048283743927886654775948590289204020193959377065673211949099104335285517987140350203076055782019148388288094649648208424176699245675831226247807039055765314126326024292243620371953291855471809159644318568520578823501030910761280604457044251479975896088802812599786238774354965990492967322084497244345824350368978036518490995121422940156691745341683830903528477964306760861159976367872049550579563651669383452102120571246718902363583790833911908020689959689699018812232185525286934857365188863016045294102817973608068954952403606648894468348535737117060799430547192164875943131412697595251661025229095753755095093371854490007290767612634676529166464558037153306020553474162055566838087233101145670608219713601991166960117726535124144051093620360100175840533446898756534900244758018499028511290560362815437279676288312381657743751766245640457837049648569090428184674143410766075498411465742153343796282523773935177587703994255213181690173990186164214135439277973347087659736948171010331818637689272837636602301920591979295917914822441639403180414779002828571251776448410593156446753633092415797021262648130428083893377067239822865434173173648142456296618079313695325091128754694980155031799451669122841384464630874102798782095587734617666779332006361614129983611238785269844967622494946016222419848188284417597250896504323883882677621153869449072231408003864096674795565960336586550083450157466810037154981215455917708285526905878274626801895484098548064776732259308336464326667895198132303438478055425711893324488033710276608066426197680004014576819261412342142109083788260348803987158967469186812759503541904068967278139513219884211832561094874735276486643671335936837371907167136153442892072527305707780561606591615442358910784646554736956343970737221781859123010944369231395220301011367407345705952613302936743793212040615997089068120350786235412780541682658235374259385696643576271097354086523033339574924977199534666256942812121192667488866525631516970660724002193962668428251544756149635793336584523772409968735795322759190097974155172133484533357868142287399385190209367827402155999142045644643838160009990650537188148493816086550357227064177438662975167896665549998788957217902623090845448064651856930925569645317224108945164542679676181972883295841393513384459604167285457399141508049594466135343984501427618054220965984867109944082508151323925213606951062673373679223322142599523022293640904766459615450559484204881311441317204646926704975974905993511692043902760515744667739687080324780406343777841672502198884943540982821160007277291505075986936568472201694104618944458261855116004154945106281588724851403451900555634666152447374960766113577874837400388629388488610195028128078179274503495840575292845298389091576491324731010563331478134640265046262915675377909213724782897003196325968912513302152465612054358376226860928203077741687004590435263581749463672455178978493175067539046404160336384724054649807500393002457661071466060571949510914024823273526691221496016070897220722054628810038730762296890621526297111428927346339214378575838167995709651297512128824707622937565721348906236186014189959500029393433011746330033297290783402638252783796053000047355927546848718929972065613653375153747792196249551796922008557314794457428822592422876777321288598065370465402461993872964993594356323021311084824249501800675718939861189726218243077831783344585703611816094139763446516272565828861687821301342558907381840573422275279094401507963350696306831585842595975834413393166679973048051471042051621356217540904877733022739698065649590094569569853658432083562061593452925424189291617305222097935246571227066400541353921262095374160702598813126795666746170932371740523629631960893652984442507430228049766416403828292571371636030617625967249957176153695852486644931720109608534572342362545038544414412716384767262833330818958559364760061635249859063288744503255113776818130533466466995015477493242098568659350490106211412991417730998045997886539985559972088652729738821650877480019866860316305612301144493319357840763341833138597727323452702126526577296264884620440503237750927026440915992126524862677165996591324571541392540015381169966140144979220598528654631198814587419187337551855095811871019692417664292423893754945163159477245311019841450800876155626440788217209351125934261844683035210737940004183828936058544070651726449168857872854526507281049117224129415223468484489897349653315569393268554021166559449075153103970832462344595701968564326756803854451935868733514968195976960082012537990084001054633523364189127960544687635703710651413568371551244836184919250949941414462463217845967667191164877674448959946443158395848718188466274202784418999288032751244966696486793458941329860233034829288762606371364458073713401017269924003140999628987593282399732487871382265254741903488221774981954557079637800427801458791944118907707143580110302662454293625150543461651519860793423856239066455154590868997009872757833856476910334686388994289636191695331383106351444319469299789521504273430274505489128224046567516837384091737414843731819711882264119670295140010484497368688360489262885407453712460157846887947781317083920277018500839599401350787510645356146154845035346787490153402751409018346456754197604548330869216939024898067509229922940715506923777878266699123015899093808133728505552990599347167842350786739058036553895201811147715527516138372665668705503251456831582959065357006080657269902272143379149237524221958255515527390476641515242308413093279355619405005324441453950610949163270387153037015281008875408093329479098659178396540897411919871437341136512716438240524415842887697571497711414714279508295887029927924683321337051526756439423113502628776890344646636321844459217157587924113199632987541312018325222678696789964132934113176366538896832051191636223996373640065062421869198223064419813515321973198591015636256986218174854708888378220216171014912432492165323865576908527472547859682981249480686066444493519183037483665508175542257335268514038987865030070402899334381972301961473408648283476126073019822268614411798984367558389159008469991314054138319391816564308843497882991517174297486490963838967343065171217360275453757834311352172150182695929149322787473742572457213602566263841389526262793021300099661963003232522013138218844822215385253127676763048551870068314684039926818548765384056384831921002472231916610091343950767855513837048214284915101698975339078975632339921778903880476336813748465168922635716230718406415663249241086692396760121601081445609232133742914578448806124786377388264102086180249513057338836941585087823197098151586711709517388028679580151067880449339024806890990529195328446696828825455292078708090501661485367533081336907004801338828585461654064133202506938355963174243658840647261575760099347841140840629982366482357485543533590505361262742820018784805295304476986322636627829632741637011531118234081786739876610728127325778513921138076815418944404176329463049006186478075989126428325729987352871612774183368051756379419524402321288854911774150653111681836226989531900495922925083762608050033174333856378486749582231058631889407398076144969201791751393353298858853433644997913001657128680999951557636883579690344998472342604194318599122046582749564413763677702161143127001434771612016464832132927118257132879105841357861931189374595323631023912708890139129091665271923774586864170364801203295328751612012917060959270907773561674019391174412447124601417849679728249366145899072550082434997089096809636416891569620898451925626719343047171456304432399815568869354337262302614980035283716651359121693178382309796485222062854188473486939359438432529987537651192492335099196668931068393430992917742911260879728304331663875840237022011217239456114473365412763340270584541778577485248631649999170485476948432053120929273998661075263131976433765380295221416374236023722185067791138872580576777554374253574423899796335819714032277935613974470711946114165176151512388236279056488635894726860573344797283092570943913779516563058538904168168987692580836506882500936119261078911242709881222693468531985170663717420468096376655728936417132493864433405288735279025508689950937615120464984509308482094646064177940775927273518750614934528181767517108450236520442367768151326743193251095192005876749184930277695596540981225396357711694671126060236069439457213648076464990166378437484109735730098749733872155726959760331137128831583803062490323833048619521149826235866733363594360815330962043523180699058672531667967198977573967198505633203916276929612784504325093027849365575704663665005042353807000210433790543654526769156321162307081538667932875280399181022287966754927414138146006565485087779489944785505088949148052882658768844456627293908196144006839830805240372569506411438993318116637701630751930445002156616091239778765007387433986121377676316379949916035800294253941509361182877925648901997063611511833437732287805137817006854618939770780027545047057465744096115186501688721678158080161854864108089863222334099124749225808111853269987957362030363601202486339705294671240192398688862699835431092004562279169984416988321201809559455053488532617542549536385150631189625309217665291658243159004583496939706876586542432819456476478537355251530689891097966688781002569839068711319214254198866419286668754537724431761446354156657628714055353642878518017662196471266899624319482731009397417104259055243749687333036596872146018899966928025823050002504947431957887361774398118194129480046029505427368669231007938335527797500383591562081647286299516181415118243048649558704764203871577064527587236770808180590408423523775775754008846877561116658139251193567319094020961428901109648995715039720715905042478578296419139818646456980690038836467983679810123769463228883609158544301049426148760350379903441776859995675993305022532347652546889955258062893178117218231637950877845934372878641514463873034437300982480492495540033223434378058884644265651671117254089024251656807434576029571481282240947846055854321075345638218480483756258915751706013714681964216897177605495301992469530239019961482626017062848187963579912396970015944414686775318564583127254717439445008216298283049375695975213397439120310652126169622928117872149914975372547212930687038508756506150275226420337304121616234963978809943527080416693322721835932242791116573630925466496712499296143990750000976357102050913521721026748783818004596833106999955907782554648912836743394515824781528057461034151134356381056637703548798094032652665484582486845829067556435863245918075346077580169583997580648813770434341301059688439299179317417474286712514331325517759566739120611354673648311519793542086154722283275856040177338917321114186236520276449176308259943093916713016035555066396640063769917744823839840452727764172011229122906118559512750665064983546029610296574754375906955550751018593507588378946923408088442421040443517845101844946977660224325727576337213826673283184851041913722572799003023019519881457021217165722765189190273755803239808560285417910869633038050283058254155207922154675509988166071263796669062669622288041052194375553599347863223933308807429440316363392974318457429479645304848126672429605547789372416592547542572729481830358524079897060138339019218816473115578505264328106710783042538278625507357514417809437945152087696441803929450533710695800288060095926155424042953849392236692825186545787154155054376817216194941624398023669701764585168224184823494985612261220525940694686843355828800042360426716492051983003040063908216049484182231793780018789714732654139165969414662854460720116633852755083190003281934916500791575742541572642210731921314240334532607660005408832422430395364285170101907195968996222168572420582700804488458661600852468547117664403374541716972573166435712993493887181992917594663181328648661847971944939975673768896889421874125051812865226543689028478952394531890759781837842937386927112332452240270485501136807130149912753906376567761950408247294577951614725178334058293631438937472774496789651364811407002313274619898292467466885589843355545576042775737627609120580484802719998495539526723426269717512224621696901278008109844442553591517508360950391542809560322940245012534448001359071329437426440765715671941413957919227136541009016170299103199865705258409257998434141590790940476127073830478178955109473090662575049936351422786265074676659604091872737225477947297521215673568572609788566464575410138193018478212336515699772263615169997116230814735386874455953454013866559999562536246834629631683409797550456405010277261083787851820349370533279213894340837041728605351627431809719641851581334638617864058085289932616267479202822900779806148737877411733583027613120796025607848818904686228962784390204998370368536881027711277649164807893994443904092507590483328908728324142449335236463081679818407101984769366305538954028736744903373984749075859503560607200358784504301688110214426498847297177449594105845200382301253166078708859906630371280412152890785515342213121547113947843863137802569372757622158576792891521263000669716993847263443082846306827831953212479757976403014368143734615264691989502103421817625936597845326676025066744884671246096686617300970662524501769227885205690673590084316041245928474805668946978182767794755884701037881345716318817494428998929871672786857254665536773728311244461767304087523506505439172831961983050563809001407118907712213292090837662204930496794578667884181003586373834270913535280939425518198079349785464480249642736866843355216708089658368204954333674108689934436229704144434396109886127019621236168294238935804471970209738919920823023231464235056710649911360357731956388471918197698807100580670387057250153019061535855590146412669669192362905950385486873376121913721744271446155552674522825740005803470748350308148551071539938916838373110927502058170195123131177677851844877768726804213939286034213238995818513277666936559818064557155854038012159297126776864384285371888091790995730806801022541165164298547985978012005303253225752499741035431088380198432200235756740827330608396642555936595175830516153497134438263679902877179428908266042597494911477071422970252511258606039005296024025458262483257557575612161312795812812156853840855916278057092937246612436720588868157679076930350517895756393400311125929797253577754420056996640220213834735660376916954413189061916061446825181316017660986167723206634974560465097288265951275397273336869417550848721788938864061839846003716868968509185229834465775516415629814905434676268421144524839941312303852580518486801957088922618832522355364368736458347914690356787225982557597559602168145222994919737926897880657277499602061831236191259842299974459179319190700446995540584360693267316708926126170133984267188893421249875569902430595059536766540275330755030949068933593376555732175383356648904107287803731742673096181407451562072125983147245748301211066094797879629490438133242706116552697331798122204673427121226641381929147327894366091827878882764146146976422205029114448418441381849237635277149146906974336080814504292765761587542170524939409283863732947357784234240779548820953126235340275503505710289039431336814819951535661092447742704699911672378989551639046374983966032427419931139442903905760590741555533250655482151792922547642545087189622131135166993304543120000747182980065063873898926256489054397396866794321270549392327444279957173363591063334844185146953429812808968687408323754080262605943298620562918175441222290018402100592584355705001162633413891116472241032935430679924686315539002795139232997222766212995130994097950530207390559581191512433304040788524971092537241747430138830317970184410857045135768151291536244294925037526161101183732100465189614678269724442617804346498440708181946488570155664729124940018323157474892122721505485676173310551732867555555137275257228070158444430690911684207944852719275167523884694520140584365412441900688299574590054357430805615594652422881931272032923409249033976547146518111314592519057258049351511243668916540226006275545801761174352814314894999161467189352381443368464042767295387167526081339509875962077857277892498559828348232891772081177773383466334241884922791980529683092637567318470970487223370762475836981471774211480432136309414872547814926308746678478952455561005349890788889845921184102235978273731652128019748541341986977054395388749739014574122119048053900855254751776918270607097967712659724884419682338105825994352982382672363173424267155782964601050683100461379274890656030763632598102793661123570622546093038459223095699447464899594352803595728122073590021484674876096284970187989807161708718601131703969843543710968435176649247955442027422470637716000357522942761374328810277374243763384654818232425458586522993701908884747767400268001009673197266849558645446767079878771751353980883983207327701780462499327861888076713309254338928428954733998046782679145981967469019830683989226343929035718573309596628538845031122658632570149517844368139185358392042964337583894923848122175655021035540671058277268875751378435979790444914526917905927035088146718778168140149009915546216901425697803503595872473914976161903348045649916980438948284871605733097080720504665480348755712333122224862473301639986713795127886798643810255425604253579275162413162454955297310236459199301134961429522185316982957104068514803822139888376963907581425519571199359171118755087759625477377513592338703229940139176365803706784400859562468763995140147145722468543401280785856430439394706997121975940645921442901071293191405742653347134164128664510758564588123951140117795508073216367810160373433760157315563492556593937367165619355004588107322335593024482569699655583883053413186676168998085666828277132356870681226254846298210313176077180123905872553472420474152001617666021805882461949664874606456387899631507124429153884042324507560321404776242580365260920519148291010271577459241426287104455972926999565011286066885462748757187665066969779602823041381108469308787168483579092546278034944264254586120459971996080031663034795899289456325531254253443173998536945980583602867451850810533130476475285376287457097777675413077142430023253474040930306942182911681643903916557470032165881100062420718524757974698052765170972745153025094618659937285040116814957781425963612401478096837868885112514712762231791533148704487120579377655030401664297015076738855047738328881787312124600745276123541766657688170101149428992573491012356466763962580651127133964984228245027305669370892373581646095356116434375056502996315167974534093823532899970256271802165624362551179869721624983230956587196829602546680650000467162224023966538241855057306581446063590559554964198201139696528443930157393105206283089149218063428715535370059003504708646096354109788410609656603436535444906170070789958318056145339065047705274315664176097215179194892833648128660460835307188194805344217730423604084119157616446130913675931528639923396387054072054798847957988616996218064420153535317900447652558227276706459363505728780427573485589876829668923357242880868062463248979189584169445790029592863228882938280091603246063532023822312473773678740617940901041381533057610283008848864941592255754380946063025862676989173184615639367995770538251493415304834931224348063333168840269976702447327490618973633454332782808207744026670977817820783120857263445609470855485214265848910184957350318664217482298567340632852564208874664253405339504502310275449342901916000844150398495202153256001639276693664778095841265604290645256806170955852041871281481347434451539374647549634422053892610995494428914636753895787605584248419025831181728850215885837880689893059452153928137465408877753610042351014931084607654329094608679691001884038416225009088883741124483064612377523317654542014868433353152580752667346858217764625547987715800378073715241248408692569070492890066678114027979163653743339514516141110722645617628225991247884909928487298887052980830652459935517374082411336775797272335682680337811635754998347666990823837814554391621551285638557681880448034321321029394216240813548026230882224191231192566120525501613498997753721130333183980963621662471863300454136003383305305793860790211293203288717499514527204506239580054268931734818354080848734709388738861901021362175650259591135144212702101164809309303749416729159362456878600346602240033953522514244915160604299764794242349837796113498665910271782929931246528425630398244060789798697342060395170075318757863061612647145001003208115941696043578824718476564441351338509186208978574621805394727057491475888584634266518241468387985808048248820805502019288776349020535515856240018934643324268636634117403031223423717251943374514014690928714729058901506152389562284615203146170261756675858620951547768283562545064316264374580760714178578002758760804833259675887885318095959658148160080652129817919584398592529518445846927246647707609151685174638564718762214919321562301012713105284450748107002650244641785872435677992213039965218382791418482652816251046147211630479078224202348421762350643914152982300554362570147636995887845014405130574818011867308723759652465204643509343130396665585629392515681038169466662031363943991734489671398298156274119882627235109525122182170475068625339926753779784668099954204214991134354070102205692681999404251665893392849856566734733257949343731185204896148039890749110350313946833407778669368735475491107761126947029878211256476568149156669190955293673205595772792951298209071515773009178847796337430021458036031447789062007715549047648054242705131677668935326694373590972240083159402375838831476354214044086042129957701653672965990204836305777985457706702819058718648306138252752786007587907024358743812118409743929083622398912538931673184265955965954849588145573527311910746917982834574376785884144398093699453232606572599697588242192935879145436934910439042263781767557322498731475695701341604149887297960683857414839097389448234081301095658301659462807191784479826332845553635974512187260332535781792406870010686165062027823681063429287414508137306095489089247445066227733083852681090209081324313151184953359696898903910317086437143284268249064812666240692670421336716047057426553138242434220856097935006501412683886793330241865462230747202532071789380503171991787349112267762189970847823608111600798019560682135626640924595140594191988865960527804596189879889781246044507520439119510874257625350337428534435996680254877211293856191012207429651120888429546855443925190904093459699762322513668449395939143105822005497761651193236335578447738700727516708877018336089731053330616740094074876084857287050254039652206249843878079142123292038061883104817232109300172019148512553721123091515719016127137406536835464034590901751691907737631221262572265866454964495912374961837193955151966504573149034869814045381745736975898227511377456307867235621697668252392452981590467562185285845589145301482226584053595263909853937176619710158783873278238375584724428825363726210818665740744020130772139829403432459845503488984691608935046060460297207524305222505088484098134455999907586813154752220465614576623314045263269653527929237979293739291903748696719646307180607247847473965505170974750966062602342903764684445058224722202132386388557145132347498203499660406621177777297860644341467366211106480533161430705465164829466033764356209291270324090210435102759540397065472997927210896183967315084703036220498402080566869922524659535837374960133141790035370052464560586947767468897309441369101074420202722385751420522547081908963499142194431740411237485172889543080184574091031999461128055643344226228957934051736502953133602831432970249365622011880738379659686693856304036554244937571974210249374057019369451384825698600195321516256897140183511652549600636011031202819953496704616097462082917736572997856457130696516500162277788527383407259835596739708240463152591767380422974317852831564944495450369564011093698558179851150272119159176380048296581307898594703973120653780203227603441629732969801205906682469014302949399525015898904771050802538351571584280517815264264006574584027917036556283411551999177884995168857898088140509686764825608157587168921378526143482401986700859594918343799687274938039243990012408929267645452342219220757841378533424878833535474932468597801974307389167814296105044449662857971986849317044974915506755212791116158380570696819657259481529866721333525808676789995964951596061098889306228869661326312175575758648326279685711415335026472140795023598595852764820313639865562813744761293814847740202250445085912182509562477907388965494526502037078510053115696562202984993747508613619043976299599031311900804319752458094000091455821745452662580527403998131693257001827684217223180514068200502309296617727018544600370433014323452516468664561052172069290603672027333539615770828488823728813588940453449022699453876878465724857819287558201702633487954178253554555754906825006997973950595046134205343092698190572553123033871330291285031922813569639601283853455211594356914097746015819877741238198895866727111427295831082708986392046218034537945562433971856249712714095792596192307818840453555297977742210688936733885548588107223676878485938225154035440994822529059283484780136013500915158114532921442353962987554830680155885316596656339447818622239365806973126128512002422047411433759617769910633391463758052035815470306229527721703514821238530493265705844611319656225452385286064449330918167471272369727202950026266949386760673907235744132686071478130632796252252135834514617531970735280901135431467773945347102400608951781555830757211821507995005588377445473192612925383049981743040230702238909816076153110992888652872560217949886633964206182092131604317680117781542966367350787241918340580597801941364138016285792981832086842444697476095946754659351392719202708606667009644691264257896976005037528190966153756618554580626435229492165790834984379257431971587706468682001818232048689982564563340501384966557640297083448061878669689312163513396687831362351177497941993054822898661904006471543595957922754427777943966726337297466277977535731960843472491811902101192943925903802602648417484447820051685684303466144125006122544118553603669682994806572139535133407886924532705912914982801741121071884134268787888298002107119318415476906323213303566470428019983416257261051670413116849386770027750949884410851369316956444860759317083546767369017773894297315455114592277011103608430557718241212234032928229874439864464019195609230001439499345306044257996938491772397816149451131204204868637916752530634900665239580440289843539255578484580722003320292503465974481326140173373348415220872649858367236488056433128304693053048735390596848977694106624899681646551018255627690892330654374747732515748234642076182693720200111288490837408415666378790491771579162617447253356921102796313636396193338303169096058563478651583641040952185421892539384536519000945682188235121967853491290747273345761908795277007145342964288577789197970051773733189425647467787059514167095015125436325458585059092777722357441369061070592541796579407364489401336846212597403776943629267107864806916569414494764962755479752699750611239290659055560299806182775792321198690451590594249076760144944330214475381107886168394173626824737953620485786673661943401837539950788735707695697363348906096623415203303273664416840915597267506068186919542897295549678007420888087319998422933180164226391830114079597049126719567266193876235342306778374503739921556049731619654537918413623760136660987343740561564616345985238478285233197307913701982509058532692942864012889661556236653366808679676269021933858700947062040850270178945051681786827703193427843070164519313139114857909616968441606620928373208333878676414883913529892584818453086699758841288965867024287556877312359003496164995760829237752268936555707635413408265577248890243575485397525790911342017983026115347451748939422823882771044974234435922820366214729739913674036710121597094308248753447698010669769903141940785020801000638451622035427489532856955258016698714012790945546584468531729766388592232722802392295725516217043953779868091887085119555014834500653542058958817281907159463277706136347609047316518417732001776274966861929830048478422225166252681241060317143651945672834889281095890446951076541036189885348326694340218479313476380613355515202360217636561827113154532531524831850160025503530023509981187456840139784132450412924899510635618839886059399851860662669837430682156089353640803722105692217062106540290334689571523900667996984398197199449488473637992656271379144085545126277376803369248790964745110630943048104744082597529027649301909961828672066800838124770828042534854515494482673351770991586513972074445355962906202978965148227996438228462410049492538096631715849474649687732429417148601177579254648092229392563484734484973447687678972551867684457804193010435883847874498471915754661252774210651983403688768217709856479897496641796375853276088948339937898038693590500388591500418224769262139163222115117073297407572999505921614195341795453956482580695755819141010547408583669763889748544356703808877762253423725236685862528686070111207376644417703475923902205402921183363592076828746819163573443621225846855184911737828149893317329432868786673412770941950614067843095596346611830093772355931550084081882042990111253625495158658798777933201606023025399639582088857852464068389306031488155118818510633928013806882947755338685768700628738187175509620230167890829577299370394812355322511773065141377479705343893796451947762336804445661037728242377464065317471912285508752570124855530349584254775511192310417412608960417645304738448618495987688244554949742237079627425226137859561508152707173552251406092471466287707657592328000063623661781851820146612996897320450670193879122339028019679284857642151753605032428049537412601702757403030534227164186394957860000645995239276691728895103478325073178136744237372764385742521775361860499615778451640562125120075711268692543912705480417413062908526548019648798111143734157554754999170822366196507152797220508969852051364905355472784482972071078145745145684608611157295659631757938864748424633163765649448116161921604628737029040409753672886130662513809093509849143091520136859403499036297931364403312590118696488012087866614120892897810507017559263159328947593335355585396153573748647327788469290051483756269645692713830108719298422825611441326287969308554351482195929480670805922268245906695987049805652022632188600045813384821338380107140119370503199986558912494606613140897994650450291669772328830601951849785565324355223479476176792576544582052660516799447607227055026040253806930549886106509217465565888873017888384128959995965915932279304573808414378982357797812216639154001074121336095716896366700574845895205479261619617366617966892473003181633077684291239817740029380690464820050593056721097047072358576276559715286685740580991153560586905724472242083498594270765145780433987934167957681379636208339039508329344955805953637604854622311362516792364381354247748419480435893321459881942136057929416741226159998361085501672440264935290269294762413425825638723031974350786160646176951012185410632203081716611241488676440338872975765844395220221961007374345414850891687133744267835952705613152125262073869332183059356589306210304929209535538145495116012146419843979390371896439869348784158909220909390704275782190593570943076723702438900534531209670035089619222429881608768643298293971488249604124465132808211248922418833144474926880363423918296667166282241567818396752437966596745811699149281369014502279780135976931386539455472068457777174591385361784792669537103695089637722790612812365479157088869076676890819374934061036841067386005411002627870087470594710658645143919698055970695055650501512339366658905717331336447642130706567573199190393881189382530752108828595161475068094688392457400111354702747869821686212743214976651883003196033345622355344214173681170059576634936762232906918488032373451924349124656653297182384173969198658713331341207105170736834172412344723718672494151084270496155495037955015287382248605384606767203928758686262616984382280560158757866830925122304015998975384892283600959807521594902580747171577353748066900500153498535903697672297104371592109846939120490542624633960855082491823286584393402629382685637152596238947447178336999661802011547882499133236522159566534048570112325827708188621501307157793460027439516892752435518239624083915012347392466865100222767351541533981744380629368188431870219539467457880683873304502669934820474093085095294008870695181863254835482496626070665024995646819410647040712273110042154418554912316340734019618090749872367033899749934392439916588065128366790564169573652160502822448852175736113317429473563577483084783309849295743057306045041284029711489736552333702529333285934154488313740058107262424647751553561189773427429425968401940681333381416107490916404430780527772977009382768736682692808362834677259100328412812893578761188653303799439157109917313087684148298147316743892415070812333046638666526885171522877349580865070902110271308011488070525108616418161525567481710478621940010561280013464710004896008161813633986131437595378357344634700973802239706673331788471217421662379783395050849458405648043005911201841730050224196298113764325550862599366729792121239683362625433079201974575553798577860333993611397314797358588046748266319055503171475107408265754553845260052439117163947985454385464047744527444232082011580589401104109453833092047559831301278034058767338113451784704239620884935829339947629489274926307615195947580863523050039063526975508973719632143202797580886958529773162198359442566894666349865566418285278405307103946038370553195307057814332061654837208763730542151049819639823162239461555401624481922748898899154818161610141291114223327424807105120278497238490440264296807698034403160101365988085642296075406956955713350800535659518884145626531983654599814935470353339657880494761273209004855311359086974714535368901571896984157754811777941076041901914565272888404051882795084900826453601324291522888893797519995599859682889360891127109103099730675706218659729673463984306192842955042921054669160915418280351783236841552181865567963407111243064385515415624897517639771881262098408736098299238363730302750594187706262635737848136886836829333969889277444686969662949968966027691600369860596890471841716000197184123626519979301278741913927227986980227245952294015243220840481753981240082576371360670303344776541140427436996205412514504827002105151741189088254926097747214620553667790075520087998923234653592526127377276954567121544499950148452685432597408757444502355950317588809467867062427950496812231738195319346995561510042092153608326032153069185727225992986003953925473431806464770644415440963085983320989428117389795068274955248706628273280536479247410723546119459442653797874986979596432214495014352061663273608338778957462690088960941621373442638200267657533910341892476105635988817008353964495585219224076981305252173195013237419645342897616581354073313026303028547802248519255207832323745483267963289071256274752461229292964140942485029059474155759927512425085069966347353764294073839182074190916254160972844591625614472721705908293857676713045438433599082616086284671963287516028608040353472085362193749494136655199150853689237351274850742948144519654169382291793153091803782047287223894558772648584565835836888354176105647212556438640151856876957798827517422243471111552623436972117076334504665327247663342378211958791176157833972287470845127988659924518327916414459828021443727018946266803579233337517480641049931852188455068211836085689756325118138750460942419557443263971984310789277524723566722883955273552360662259878859853963287728445468369492367606484412273536829219132455470407442166682067461265670796430120055351599047417085461637336202703865952273806423126218740626890903998167108615021958265006449778173573185052157715160847631314297100682482491391624928925561263847673862182333452283028570138155437476505784656905883948253134199813962957362501919857105808466792364911059290880550683382177183709440626999382691970682447053200579454083518610036611615609450824239865041998731623838357466645452188735902612193453160485833921266637725062085190546236237337328114258166438424988979859667954175920036913004537037196275360687183013764812127410561482448795986351085005487349029844775297575349396655307150551544103909386537416665215918335499738256689326452686208235962140239634097122426826870025339558269322438059983242690845304781419914989311071015716947495557635219458745768629630183899058242012787867557969347231850307446106034839145987949779487113913546290254862822249743894474386826616436068318124885987232687910766162305380086029215833814432845322407462355418799888174723812853596838289500620225246463573161082663603643148563553160504991541441308872154144331745253732106513961197330694878139130968733186136669619394025720049930809999534821942765587811323521877812457183423976468069730697934060813830189077853792276215484664088231264298164212394174569713566615398255554352949817223901452223591925741943146421826647768886677250217123294152289784461629105662854200714538834167814891345667445069291290631913561846915331585581350764875413218594557457701564866526167466208580107002355681687581059596769989019854727064175312884874941390708664208080627694450131967019703355181004171924251364427448521978153703577709617978036554715010064181805027540735836312100758486904203604530637430343887615238289835573728526027901096581135839900820251064150068488603778514517039936269383226188823018995912710008790754166287483223944522850239184867913815692056863543217041633586370353243530386031382451788944252008048530148042326400652099629600966417769376130820806870201308834720999916645580574702972650642485903100718469895310690174322837847571536750984970434834820599312232247519854853545545198084228145074641693251741711660329326677622781908348972275100308089752520503024664935126461278489087411830385877998569663906345052002212393452668657992044238614847572428901051143288838145837001486782283330164072761140369413621157371699856058417354456080336888906925243533810539715931504525920940128868267619578511313238397636156621285764826409723566892206504594883179858641010564381869889428992763148161311411978394851438964020161614470282221756482734200646153016170156730451861843770521270625734225871506289598548861762052296168865652158377842471494798664877070673248179908424974414130307727812217275703938985310766265694827619763328744659604559350180212323136168294691051653679961314965618814230797900281970207530720413774496674530625110784565792463800382738568602245895406143936149940484842869698064832621084643807433365583986880899884715142957010145120549668428966748661018668765129731396283214410268341658603599114389318076256443446092747502825373247224396358231441866189835337323691680869502922048143623720481234723921748226842910666117849435316725923850410537793110490815729580082189041099653740522940462019848205947195654684300768220373283990614679207880313062108074288782674565222795103975301854924501080667143565220340985209717127515883904861311294666733964099243492647162312234605681600440545721462865662561689286997468382163390433176286370809582850819096974176212074055085110018153302081718136717685434872720891726067431810386875499096428742804106528574447831399487497892443435373201883750977953460440052811978526927544248963257416298794288255060763951651083871176646737663875269750883793989032883574021122956354320874374141624949105157682271174177119322329453919740921365908600004762024328188811611636449287155599082998145435840371709565305275679006103858220050257742242925697737322966093854673369294496815432605685823408507390915045923150813226767810636325059586274551489228285654069452221056355802862241676405576952603221833562396373988080142461187550546095550941227200200166732907897800070963848283124462955965450221207433264365718697134514468968889229510802001625680799512184131609833097021782768602448714433613144592320601473497481486913207742459736433949200730885748206722411847926824053304598692754589707213154584154047723222208392080363241272176311628918816433940368693171355826800063517320974505243783052633429820515857292937290651440822520931400383344286009437177696508292941118971208737078409355275475946676077007395829963258388610673745079261804330672514053521161337678960365385798503221845083723457258939744824492032873386027992042012799506284586176929349347486450464919686353383914495693293534991399224536641881006310307109505687734454230964589543614186308762414944474198666983477134053009577978720792914623896263908846392996906393101638336383213195393793042804984875962794959779336483584800378416101863317414981336434273879803025779702183088650364181062215710292820215871814456266435519128923907464494910427359692766523114695665844581811447637737523501285931265925760750556501984335677543209175069011358786716195493655202913909437717332015580807227333191001779316519681542280883705765075988375970217541177380871379853389628968302629816280553011075577589785348238548129828105014962885887182322180488826018274616448790291728418400029367469706652600862828438830881335633580243510577635285933515444380101024499421747818965531884708737815522364407145428295483213118953754081821607486597977762279102308233648436172336602917193399261678828689800578911911569612861137304042229962444456452288117974715366357914615049438121796999117195533929154679858885690828191103147183811299678656514530596798131908004221827090056930448074830083456425150236093637525563831935174270343629268402347764138990390433623518513502639300959664448987760417437860381723420607907143711944475395228435516778885709093405909842628007555002487258306505575112593538963151718260658460012893268297421617913081168782127210392175796983370070556004792659974323649525447559862348447404096171475662882753250917375915460325080960114432704119873159696800796893604075977501803740941714699818850466289826305034062817302823197991255309183628077992511330655577725895805497219375476854503466072184115570530967474247232869920729495417686489051896687507736218429791511575851590669815433469973569518765532300615728199574087984332687865483877037048388679696344710448810366625529586283434384804626781221476425166019764227020362945087987909230689977626220233634117711820153990501730714939961155484037152282685779983851093840045282636757612605639843913529408739455742776484992414146858242913857917756232954020168247866760021021513826664110130042178006234432179195236861776961388050065925090702529001557499487526013723194269628376917390123280026029927806831063027349010110031406707790045792769827931368494516308950918290483029650019089283364988372143961807932087423287680686490992044495073598605289572116995190404083389840835633066438541288900714754386656707085018469537900325716436271571357347225105929586511098406845689715658254557256333555945765777476180201568378523640314978538098315662531858094257851058139046154652480727198329095772958055300883576439354657145791359276746643254483845455827309139861671777995943499455031747714365979668345645423457823495302203379392308962273442866717466798655682537325145377430092237212027531693856659776107823598018863075075604083677127418714589669834570275384870360304258428021277883107135113277277749920464830373404864279022583676007739008365615912219662842690363666029854323536317994514703396394961386871671776305654609188565518443445168903346245846829124143175358657498912475955608960402921553939774464288772795162230612464779308826542357480107178091527740165487104682655357030989813108310430948667539415116316766582814037008668655476438339770427571250447492214229690806227876085444048588139957127475613019026375150738783118851441005371031418316347433675117492320531768258391503423545058602263058687027792432296916175459534404574473997117121192077899158121806247094415506947273514012345502046290677833781762141918901469088070798181006734859396797266934876965238322019108208731369657998137760621433456083913079919949161884261517662011516330133652402686506039217254034345528675180825801046290582083646811073518337297519614561225253713567711887842519940235439622424775173733453533891507262882321321961008440631515479985995215888847115997837510010625972439544429056478372428271127688613087297176674503877844706050498179263263011217932857796302134172905845069384231278574470982819903689333323225245658784864990971750320221672852149988277546583065590159584351618555205489782673613579627957493305220111916108420802369961389004399328350663451816407683899879224132306415886725004798621914872760913836555345671757845474556760412913322446095514831253536112871452107430436355478982136977200927930137261704890828039390999835574082898005613032632804878407025880190853877303188187127307461366420509108749612419017691344997077457528363397832315611035648212470903595368161039384137568833771578279382941354623916270576056022717798353211081825134419902677286104968703506073372089355308640081426599165087223597269462486048366658911303958507510474494726993926452646055226651892497645308072131093520962315760848831138260364791668246800841422358877741046115569322707887932687436128379575768538184074677820984677627367244691118916546554304847971042152397792892067638966358963835664180589442147453962262317532655797252681466311769780129937110982453405229270933003996295137144383195135057317880566639610421225778725280132528384833082997288182507498851831471768420564258524847512955453433867631293546440777340500072199683801405226959470919911895518840537007723165819521053047311491449137585879146562388719464798452652848026896471317271515010401260230712122287922468881136328743346672378205581117942027216479225653704224487763296970129276913150042520225981080099979885590235689043290231478538738724020947448385394177836794323325613093817720501734309796245324951033905554193731155678109600573604690408793506212987488240528497439396469465846777436237028014143003044016617901165797602697905113693090919413004043992505664956242468380203405089480290002637622005786405521562274015538802800346895591754312762186131476052556899895094989323834728790825399842346397579120047011707656479780085662647461192149320181526856763348584378214733117677538206424894580965820041347269571623703837207793565976200522780225182252963200325369276531984459658381037550792834252785825917456435006260843441631129701955375474851856666610908213017688979176081186745294529881571076612860214031901965386239562915131391540587849663072019421858020705480546447754769556787208960159717907361724140611419772765025290138599281353137970925603612068498388821519225181321799809333597821317510704838060219422357710899459174705182470860381957578800281615561611665853316284726372858902442337220872462933270283531749284100443472630417990086941692873722278380802882663780139205329286772928042365659125645148945492893200840060968418317839059349023762050002243391242619182832918010847706957415586736411928012834964582068331157546262339166418139061988522457343683067739836101046423164641331355323522737526644533820300409551032192889761040287882571654340181783887410155412948949210975077746095597715247869128811244829284257197468820488565490956157685128610593526780265614393833585921788673566005965300985365462064254346379106298885738983183543696792192647757803797609915199776315697301911388169677703831361743164453785457007319360521970015173541007668696013054372758816070499877893650174222466174381932691928624293010619842541634604853306131224444100538119042170529502102039492849932802291875208800031824083379536386422378318266935454676378570360640399221330699778381591952595555888781915527331155001317087949016677272842630344949747135658767281439426549205263006190800059109449562185452175790848418298466938419495588120747001060376835634410332054500161516572407201252986049588947079721834259701643847598486582809808690549036772614620215398636294163771793047627218313659680968500291803114107970431138118641849141586975849866022454649276513102872758629386704002130005951781635864407787481178065225685065307135073424589446026834620834580313392145354223387544486303860708727850277777750867762992022240271074324591340040289287209026586544735621084252719222866313141801122028687658119592727128351324215088164501912089966902197373677201815546709893992735421991162731652624506949920028485236634716192101353179446018193273960721248873981575039346181702082230279563933543167655527885029351632734594726579510401149973448237742065875730346360250516156139272689820660483210855423220840720240030913751582541746042105745596153391984589002739715743753802242641556777875930793480424536014455008046344124054408972659399663300799797259212922310941947078384204183075966255394324456096358954142256613673796928542371376474952633755697716260219922673491394272360917846761965872057597033676399659157563639934250587889437668301428916417573850338881007860021862503880088175428204767842725956719604840605712100796561649269169969392085577449942497756211414133332432379515093640966413408084475286141579712425085059258050810646205124572216884820197934411532299155248204859897513010075598847969586764952488027942323124198073887359066664964915113962924488710570456434199781743710931692166476206909405665634791222087667353162014395794445762166386846601655005339479315808774710764764454783961099927234890028514579797443446604405111760455861770084338760531480088536735702115650361045487992840375321759148201882993997086526906455381591739541840830826296942142296036192656880385459991453155319530519391834550185884549349557882374650985608212984240079518041763726731295371159953298713794809681866455468851443625835036662440852558593062441470020188212204642192591723459339896192579016317752923865551976562492371628465685389344727069088244110281325841910775755054815966754311956994397841516332406889407043926608112156186190253032207139064676977326836815066112376928002489683557571372311288425827689287823109567811899669697740948934872414661497397279494126610763694029582362830348242237176331997184323999039812849393985868272446460540716992594084518183571889109435126417684691477909225283783753239560194745349090551016423380781159966344826207141587238135420324049317575753370793509694613482852746513771468342056262363219717296199917086663830438150499887260671726765724838996673949347818640599731199005296600353299413932648526328093008221083677050197128707669900247813008513052729668440606101643782307191363070494220493834196009535099939871351587925219739428061513565643134081615688849017478248578366068004039267599629086309379031115067276719418768824628307518879506897390548979889399988362663176223805421655009734384360758921424204680681022487307387780947877235273901645574306789841755860978059801159655866608180878353193002712597379133589578973340087634431188614869768378811215108771266775723101833251113919851666507968096448532556638417583116694938859216141667456755553823786044244557126333966772146224467415869012956205456527681047363682609789864963005682790737691986315601291614256930647810069891970202265386741626030496339971273667679574289555663140148811846154458200759316788356682670899194556985802409067765427444507985684535490547587810827427720219796600382020997865951969944929335431694916491705544129448209296760925147990322588900495395499572299301806217926211240711016220957855270488860538192842360852957014065767422134831332602634217705437309535701089078073022135498263628528878265586915685634662594731325851956591384689244624458344022770496706653499387235475209097706488170900011063912557187406824704713672257092171222867211191725322046914596922156122975243745550688205617369549406662733252604137044629086544615104425600763291794861451069225887944374815778912508859111341722330315674973819208639722065135201582800869824687653737532334466697837732810111452619599588666501082168815975949566602903527583321493728643587459967647652582086055524473391211712979767298140379890972865069764920322099279240402066292979560833334837097343711038313640741164847600506985201567447227783589996084255788427247353061170516020218645681801484237712858766165911990118688140951609402458068261990511296112127545741192753463822939947534991074859561410795940104716129658891591656799255444422507796929870576970584791430401182545453561117242733713999994326721277193231933913000689026267852300420447759813672847437901286717096517647825594600907601267703866659554509740468485891271332399097293379835865350809726709485316164545307908715735299550751692425027520125482063398833903447828489486253263843703940445054343631202404956819485038629028569337191554779296289884532505765976820764344629468981452443342055804499465858237505365957053622440381842993593544150681350709205774449799905166769053802096217663656068357815873203792310267605286259507765452905795272104204138524615686057656282187475538902520578508007406933729429877374630579256993775040268566158661680407615422161938897946385363383112595824418797097195495224074795953951942297685825139007695483654789933863568806182905679340765197580246742179102503322169643776004412820779904903233081231761123799725721469283312184717521295801191664227393514437669837519984530645787366407773806996529187031231945950041645141202258269724698146148818462890498727283619238127204197791615571313447996875757033935401932546128936025654403122892178220340954344388369354604089544580247901808476297034197962302160294516112476916501860059811641727438266730728952978409244016569577657255557295761302425335479095067619819197014241516659357446039596736185325510610079244346653294418180701214764603012486296399753334724745983433900868516046724022521613626334375200406632342549930842141858826098209436157432408456471082544310188309077262585702511210465516446200720391537464739321529206337979709851707477303806053628389815119695460644201711392956688531188328062643343170171702051702648528131841251634392473071713355495060515867136110105805046978358806115072292612757693952140803029828397043141726570913295082911253431769430807546865513292224276499041740474813410763681949573977464379686518304446566839831848419482441760598638213837823531373045228594983101017622494394053901864942713232427248943202272085052667040161106549298027268862995032014078355006817832661244294733793470870403693394744488364014630143076654888691999519065406311664767819404973010037519857054167252764702308591992273998423414933499839097864034390769224272933766892660493494416947156971554705990421742192588257534259299956598642676845141061238468788065445791771750402776282360633007943758407436694813190183015709126766620798933170017202053954906864094514977409774109437345210942859684717270234064506710071428745863558686782369963390799448807437608835336820312113732445157104041864292587944963777514577235117586608817493878267538776413037795190605040647630268064742690687941447448269351953938097017849673194645289143892223863280101218343141180980750479702438991935727257052706054704728147464744620822245407471416940652069695167600105591770136489713227842017003356643205551146221793313232221711932737347771577886583769699079117113172835374019357198631824447047615448184577025234412484550968128116664970906043227471833668098116783651570046801876817095688932418440736231060256627475747969763747209063548402949173472748730812019505270963758360746254547935295423417127268198133990264190257633736116569738550874413024110469983643222100126772868218094989076236868926338441751885626283212965994121375179698905209247519987894668451205783735845043148908445688161384015880396987292009854086296947132259863231317127321942891413549432335912293724230966015461649969855796276327555457798445440322304090493465934666330885736959602328575018026850212000712714207655565772640798302072919480651293602177611360939113593935308121773628431894417396213554536050024613878796067604080531693002509344182571342161361444011915228953065300777905397200339662894179465964177798355925342228777465640003439352647735178351593305571994715981212503801755954757774595152071390843361001153790490150789070567088184457411450883051229970020996961130971218937285330835942880990492700746796012809697182928394128198960521323361070521443176014995019958953589718336907828313863423685795679656341929304976981520997452887831214597368460756747663606003968791743542138503489532629582054474876924133036611832868911277831754602912791295567600741873322554290824475967304300804589663453378198753699486335053772244515901054165665887069898901375388802432758515141185845435365298749157271886535640826832722511014700909898627167722415287768986226770369839699597828165579408882537183764537402218188411874481338287947196445493757002072346962533601592218202808179726049128292420726712980024237600224648500879889885723158842214694614749102789155465212305942486102726047126981324149381499017673574896094118268050477173013164589468234540907505186166101541070179554175975982804229386271555107777996745912246616384747714601117896485867721918610441753073190603997309812718219106724424419481471152783430392065368122142465502269302065675881276475434385573474263281549277056266006654671184876520726733565473166966217706983364583582683020776633777864748958731255219478599052629324698436382468573872328427778983992573759790403828529778739768466380962417547759148309642991552814516580372824423195752092772658269323059752461245056435575591405340142976750824433474662439858343761487938996414440251411300246886937195215783044869344384073455908669094644813823535320421925347916889980143917862323760175521459465427445917974760636166524018620618884755864873805830893796002947147554901679495904281561842872515852939829836320669197995673894788001995879803482831259925329759910502073507362660254243105132862940349554176399109476329448542904448102689152595895214573201226639910332168000686350486200735703485896106179027766071816770681793663180453823791912595619843885760951802894321579652120565761109398991549688403137754939354085695344990800901270384017262618018204667379599468295436971942325792206474709758952510700203774171942638934649675715427250404693871883572775634448769445950849863887761683550588497002868572692805421291795858131914228380387137282755286830645433314868809215169723787601375527981104596698829177796241097070913703788393045064501245988678589578863709104821652981152058332278081779915608263843346554197603150488841919860848406264900399587816932942706196229745312713653269444151463625697342752416087344026979787900214636269626201203775338836775496915720824154639242413505757494323179537955463238524199308940605113410985187805588409273559116716167018711815535058236609856919392270006468228835899448657522671480046316567521942019661830703452163928231825112778342832895414247217260081014787580302122947515344037127233216708657243418108047795784144265189977886011402027123294823762338268920964111163011032217548508094335350434077628341593003000533913418044642352624003807395109513701115850953473248223743803508935289352165877809760032571212835419531225508204126987603541890077136511086047181941080884311107425363917138988135975319323346515798647750468457586989391963118824114415430357040008264012677795384110666509640790498752217172264156490434959626706563289904578376011368513262468346021348455756462607773521883602166221683273267524660090778680934843387919815646612082484867805064429695846021029304537246334876025996224270099370735871074599684633237610502937874080790673626883143222400263425418349464974943378764251078629404943559708895096801337624024819095581134913297913613799767020614698043501490706733150637876240206623907027183279048028514829560611547406959972561949296683021021193050250622682638808965406298455619793389128419758811358200725743561685767723665936577518536374076870100824867273258270559473587594991527183547659915630391378571672985440402751717388265873849917746309881277693341113336407022766678610507168850450924177681798125076910950909144115833703031224085067230545812454372712593920137937129895049768896410465834850748194540118577023591724690129665114821500743422992828122279978737566992007129628455472834859249657682030788467950647021947309801494977443099497791041466285009066700904219602986633110301100111327823018058898455589663934608753728519074360022842303896215171619564180656270009999560134896928557393262657251636400204079984714123360388867468340872957614697626597150757397051452167403880838542015319849409356208349418084482165184390718645485793541198865262240327191774938527578225038226935970540054945456324866881669370213670549848865275526796375925429531152739433899621680155290688351370329024845825815071276360054835685965429410651704196303896699098713022758534590416511750974861330271136043531703717184168098731418195850315648707721494788546280039262775184566504309126034142218423042101331402856915028903541775090965422814083329824732595632824701886813189069773412240098245720477810212442578679419621797082454947151657388079121305594255798293659101859295214588919897364105748908948877461306386842597756423252686346343967798383912119284815590463257268442980690380184893738786626776014667556930214317529099268057699957897317628916600923519338328859418224344448373374585706226750497682736139292125659038855909391789629362867921956985672207711451676871151703638400990180301892877956685297391770541609614530699375915962278339171127981012984300277489093587489453981173533815768461395084185638045832986728493628692878012754723986638924135282045057803538853648470973275449256800942755965160291034577512451359419321526895090145445952416961136980647081102315333388276662298702841007248866052876037540430218578429642231635313350340680402784441475200826890037863547841565363689567311688395043354563178010166155103643844886149827139560795729139057900864661298244152281347786442264533490158637174488626108777428373375862772081968306963831805881107893895728376778301186999700894336560624571898381501767465512480893494477000837345306194820022438725236049547571173946629136182524460576260094886690256581329311350674437793232025038020543501852994980778105259985304488755072493125506510038857190824854783899326602860337393568736445574675696601191916014388077529876643945135794760714470988893277660530741163115301391104923282193110588097367047432344058908828564002679759435346427421078414906154092962408338791081565789909498815712690236620043280215289589615775222060621457988284049182338365735125431269368037987268684755236920077772138117964924003615902345770034941153406833557382487391313539191475815852762541337589984203618879551380731734622447712358536727905300835514369174708516100914754482240609224557576103986096635678828945500333604333720846556725164894623272786930989509455863098301143787825883212299067132918193976522025724558400814024130932133420950689694190778702026153575802182105123290813528319509157259925550067198796875146302345713152953633128866961298875104615085935633839150702622404505679511688694605110946627672376072375052884555332350474774899801582880457530050460916902159645238303826292106303225851732156752808913584883548548712412653274247165752201579356043381984648837766055270265526784708356010243568608832661178809770313606137790936091130872340772096181023901578532920354712719691056747947044146433121314395609675166261128944405036638819340286420485038072860987919829804873133499004845521940657346541555378014662305783921185114327966512426186044783706656942465109697462111066255726717641719632000060679461544447383009587849363123252352851899857198091600068141919186168389015181248046434719012840007070411738005402484159936710284924075593039634872403013753519911575118044416261522200880897896833332452200044042973126122516176556942460302075359589324020852892492435270739656513885729183164947634488104460321439087648326551672987621999736837094585493934338332588462059401572984464297862778628233290690449232765932924499124046133833969015247585601019682761237203430551089792317528677738782013266845098807180268203922028048492157434242568046730697177121873456085715203567062170083893698275361917197371079407399906036839520612792285497138600225654467398562769675644776992563009495709270131191929824955775763750859423691449068347634546043944371318679563025883826817928975790738675774381973520813126806852841944365315510971335681257482834697901789014318277526180883313639973602829599010000519724377015255864819106123617676411458323693479550647375250340609927897230719508277849700119603131624755510087288521738129185608767747856196063893512409250785806286682155371236246489693259203489219130671347171099770337362895959783509532523598271289649198711044815613010829185812739292211017926948642819683286246929210846438959969288165507695822898733723861578329428488075621932309574063083808914628364138116929229083233675690406787653576163961754266645938024360197471995403483650856887128855292429351867994655684451320866302074899531698788879839089895456546759232060581922617788376612225335473386370967729593023991180556622809264950044987752773346252173326389389494914654038212432180736158453611404602155525975366720223919881050284681073770437723293121597536227505157238764529436348387913528988787905821550111104233584518310227611334335804789714149771525157789848298936164491828979317790326467228749418675453269183640879828266619105953142528663092670701732405950706227386670579287338827184951879760685322806148088186465932879942779746124529540952671249690441046131073909192112396940683518446969930471686617424050519222976752985296684867348368116257663525545752244031843922462332556165225141042359232732018883363608901360504726337496205823706184846895299865267466363021958716136936786724835356109940373813996989004405153889590391032827945728151139758776274744531842930536613637951698172746052088546469232041759114350013503950753484896156924950900207556055754384170290146078181869924923939119438241100257051821388230098035458587811640045530311277179266614743774837366237460202073538403482309687677893623056167893806731785663137163538704715874017289052724912520827168930437398229658837763226587058276813473532994786385827743816547793609856131567793418000201475804245593773783036039563134913576340135030348407399275786595343912755160207530865236538527450378885971248667165003987741926537414501116049507100186493015358275730695530268422875848340321047793053485220954907925735639770275737320455079910158184367980977313035164498978068477009241246589017179499863901523452423144640733146239704547452605043018742129943821257064491507354692970932063802903775911881873901579103827946849262860649355770579275356999844748784544845580050634603101943277182722031250809775029951919768802465896398114153371350684361001131099629825109234007688626817381428582041411060789570114950689430862796526028879535397611684580730435299656271220921968552522884916973449075278234090379343664317568824083192949783543147314493991484494446342896571796553328504009467593996359499073386426656218748107263247872430406290494679202538485915398026608630282068371068192586367561616748830031493430128105299599888061886299723689641652045680607795101009177465730814546919258132731296730255920587165658804203391315397441591728719487570142622214719278911066027507612894427322429136699466592706572510419363102385981754907986994389243889008939346341213828136219471807981114503000204339015792043931255399519222609088999712563092330271429125014403981870500420259608780870813586866490177244473695219446703490650223840969305182593996803942103858321601640076947789192421214895435937440099937964372856130362894311674370894674473797167618208641593168356184240048454270762185606643959788021421643166519009607281746064137684655528891861819603488258520748455566190896931890551159916269087256988217638846374595506473777391415806674076650097783414934842161844038388310937601539388936310631548713459725290483703688341501686075158579902541153195356070770381497122744696096894095305260098081749270092193326742138874489748595826098162781123934793382770561974066637897136621101115062064178327309094386421044341001568487946244696759993524704930849927057311124823975923359898645282770415482776290851650379608150578350982302758742157795977900459206088800435487434735298281470367665784539260478341670459417691748946808253772836216066856869113519452383389089189111091279851458741407650285259067209111152799259142128435543975758998522071759099462414469284632686263402158266024982921158694801076576660549161908778645275866719423683443431434193812335002128977713142500052922497167310777100171685118882299889208472946752106224245534716079912083220472626821596886645081673509616439339924477511462369670308230209426462536749134703407424587665240882619103362519804641137116122739349796447567014545812884270106771962632936917848228627912056184982809090073238861546445788578285840970960477441126591618895177662916625271687217187625165136317089796176464843096986550203832749903690139566167724533477735942841050791076893352387935549818784678123081259581976513263542563940234617028903607081664241775014401517898713394071954068036840143777538230232741686512733144671792770675415259373709342131975970409314814919948898722867822674696519315663052914595713618397495524748019433927949365635114979908435426571310201971443459520117787594580375078746251804995052213989814784595033178625784899977510091836758799219228260550380285078100178544158073124700713812448131990189182879151729748063153541840272497319866760503046989214001220778491865416706288946143739873621697146657403395403546570420713258686633362792832121561488105450732644643989838002417068492199129748009428508166943564929578343441236526169848230319409486334102166069882846231098338701418928078207374832054307495416428963248139509455899337044918261866426541508190058270723588418982809980191510351770638816439664279347043773648026957853681036798665319390376877658266085036871810357283666433650577172278666728793090809972219221888136713093480501052572641573813406411781621048067871430238916681156631072876053694575377847806505850299526911703233303716719601123523444074752681289283558682868402632571605697450019444495170180661810819064410545524662199746055108376658288581298144515267490380226956781150070305237616097616075164743583933410407798055772293477599134331367215978661055073422783711677618319948593027585726139705865847098686679533960946291886780557171136878610078550074388185710641269205096699149289422749742545108502926884893954474822863067499394273403248683744914556473583037878860598475691837004542330128662758579270951067896905333597342936142003288246714880458353144138630797626597404893087110768851232307860793424512201715455801841692164076089577132875645199431380232720750051287556376203397533006053915208115880105429443178555893398246356458310469241582866117884901004634140760949982144654146039283751024735058944073491964954037027224534572201244636870031384833984230918324024901579518659337859928294701598579591968598386859819449054412980974841995536896369963547172061818135855259262329953991693759170924286136642185584676677206230544414885826253705320824543744822903027802706575103800171088178328186514598655832587195546458525341975776978217729236120713336412402816349700143731500885527129175891960828973889802021760821048775450013336131917131976208564149148137964066304065403542908487514460930454287978881572479698005656607995943883648202831603389466790445113655307314233276057871082079267604395353546642253678185026829228847438639303958374009738587014265108634462047051758476054990457272575031508505858568197468429290417067166141331885043846980797356017771048117683664107793967943620268481911773148240899769255512882631452780126438139137569639489110846479984997677906299545449515731787008040712480283337111702642723015442391360206618534063071130828152074975371931468400971062250371959216386582428228940836492726282455960515525235059120784146707605675873673361894111742761679155530171994367568479285326732265780455932978644256669444338925456899171225377298404289632547282555336798903507722310316422225593686622402932897079007749621309571349629289649293878759756447666331001001208538049136577804869477100465384219708755533249565430227984049186231967906253176993147358452802777820588676922324779653239355985991799263382568607931297153065955394878327773888071369814974640506625175143141064669754807888250621080369303014952360247668717017783045944939821354666812018915558951093237791066397432171715286101290073335180113311141356684680079103996224531505962071620704028551570261433581030078027781650237751720096785624016907881512749267410160630231957867333096674195332631791548690087721251730723578980925225302256322654190233991410380309934353845802706803344427165192772582342536905924927564449959931893373020241561339217286882111688625658527099872906016565710880738948758361695217062095632682460903996183788978720182268702378535683441810012149346172306767528635990112808891008964737792459795688250073985023807750959129815553066924895357372764132385668467817781405763877234876040325129467647135943665941345531063140695856263463368973106516380743553431261006909674537650144051981183492353188719407993999095538928957798750477277803270846609361548855965799697025956232802846174744164826320487241282989494781029882283774618561858232334667185868834958184219194388322204129256621821361627794490041022380140242165823660436391323122954434656949827222067908232880702415137352416231227477573032561247042685443385322470127977785997835181995430214875947781607618852708382020848349974712755282025796946996655381939593798289613778443007953018540036966166115762868120795797161535606620273576267247120993482629114587258566100302026165460068481438714608372797925961459932392110170397337698734954390474516654195473774411618809167007285249734723534800924594736914410232283436343841037207710013462057946640670753098240855503576886997007848143675510401545336522149188838320213279173749522508591040941264626158726646161917696317331416633744493848851485951358679018700795817364758504070965634445300631086513401545686454609857793768228464230331017327992712144695553139665054817276401972657906219538813253509632509474459898910878590169692258198604873251616314872253320868115250387783903092109639731408701463262774873619992516036903516401813228638410157789138345482086953949114165419212244103725882353735283296622540405395995512541880469553470169279658180842216911467794957709031814719952242004890588559374644161534909346821095273819069249340125854016212983888236067112990472785382510932212676008635678872991110606474438540631307026915793291147168357489308607341762034842422557974325100100386436881605524668277328014816697873496332099634172377923788303516605487167179287400111914472624567124700249762245822402739770702702350323771241691314913084480272640099449725957209235930230699273000522490736514197778118272030525906050536647931018487082839762435976541024547190212964624407218786854291307199115602213435981092612780992449298835321421151688044305242231335172036687591092061218171572150132304915038524312760160267807102779059878363028490995133233325655424283233126970826048284109116462935530797013471599928564268898897007674423346489650045114824894488438119052031620239561251550801142934559384022589044523549160677057526417751973609044020448336788189156897027789366044998316755033346099743453906679681237983313639844586220491826985980185062808365058175856328286723970216470379261157543687834566404659060788858593615726073376479473628394189492835760504833644940113498654912082100481325506837562819702568696995491876219763972045027900446675639511937613156006454486485525074979942085002895444499533574504683662276687208248316413599480307060161182230915617525952849002899529342873761735102674241881593715994890969792225772144013909127224617888387436080519675153031479114143357320736585904930427733798447129195444645430440095975183097418233761863378115291280151786636009016476974544958957323146795549938933751394956436260145495926467373472160218853132654468600885372077221345275103105952625307111023553788569164995911692208388877078051735438398567867015096378088686475757669825323540442454284008826874777703285382619976254258199293420591217977808277870511858452308972985638768651127507276341003599414660122279489574955920360994603780484838552595991081712362827442040178498021103176278778875030363022636160976667580106039555479978745699815797334233997424447588453139334536645917552581347550463442671610948908179968959226704644021691768051005907184473526312354164424864777438787765173853478975014025204069329911353255614813604353296831292899129535615290402759131767734127770463653085221325754863079335478829963834069993715154224943808824064733263123350461388215947951691759254509848097911089233113778953966407460834573009765117060752414362883466091800384906356926853296400551653599785791306066404745571908486625041462763357204425087660332076412002768371472025839577572548308176352281706577594153270832662553910968973058504562259368984989756227021582652652806200251844164898191969095582120789897267176461338008395664877220193204636718817239547049302092798661041184695704868470049638641259530673766660389421761893875423752240187458159722844252290797737229255101808867399083988549214491386356253886378916159188842405129981936517136925916957791998849494149771151943157558263070599485758635347496397568559703862678054007200897450252705193979698125296883119164590452097563052833730948602383296272132256900737675339111682947198127705742624375221375825032008736375320464500057389179346592355770836220414528501390794640672466736018275379854478140769212560856944810541661956752647507452390254517053109406626366824745757346070406527575357774320102391334113813577503322561143900976099469521398177028414610884136085659183932993931358081952707069270927607721717779098763854634460240516904994977475774828730093397894064147369457198504829905134842867070991509330445796639195355891478010944345098270173677240979049480592883846575269082140684093675224888424661256052695097801012605772822873599379849977045731761175869419846747429048640123199674462226863633260076411070293488972360126214984596841603187424531584352054891859045356941964460633379884931531169547583611157497667740703154480578978170504573192258815494311439025793450499895500372704236182645680415899700136977093646184318296660690731354763645120346808804485446394798810546809849670131795494286681388276584446505851797712368142674585475571382290726634603164381375014654291945359934360820628279072531886575179734245746612250274430190922429627769366531587168094442427862498407494665563526804502768435782113627340694356164251537923224666458237107932145904446111092210703976045651010128697605935565797997230393938683961799189869179915938694708632424160101610309887378543956773148297234896594767142721341284004376210660200550566202333951957558645128302417714282371577693287679784522757104237281724684454616224472703666186405467249250144671204565478357269214470538798054274436506654919003697852300703720061418372571130911168102172286721258959485746004353295033114695796564900624462269539125112528680378263752083462010919392052994067353165017583782632764100489944648907195082147841020836669964415554899731185444595312327881988435193646690756191744363874898626362765030272068609251880972360884793801625295039225521028318591195209521603087970922306318243049051361251785266783098964840762618711211938564523325880156358456632568153659741400635166538527833027993327618187316429284343663516156632552808774054766967000188148312992649497560617449945560484056516920660629441907471164740575561955183453874064046466344652333203510377844767588566666090172875209822447115645045567243110919573466626779195035111191248491406455543525772549656639267852219176238547538197108319832284839469222949537374931725775542580964794985891026863594535761355146603751391496845122967455478424717793060749999248715039173711331059841824004577425759178667121950517428961196738988890457931260778363161297825694113684507888434449786640449589578177977537633175038686569214328456590763877035085454922881774592134644790364096719378848001565990852627617509773940164374064232153788341300502620171319759124864587923006850025338135489151319984710933979884365446048272891549710760373174451260971717062154915230935580784562839217995093664990440960915699421493871124291466312054691322386063352687404641869764975134600318428982574751202584459831039820140609484687076916183830862387891061468241972832005261503851106819905835176956323656969414236261015215538172503693919882029271368544401062943672645120333442448082952850778650223588668479872923363345267582654613647644880992776331655021300744945298954339617526611749016912130058109554244912267385285122343836959839780483975246451012058826742830639996089076557344363448014904882983571898164096451011928985398760882296922643542082445684123687523325897783852438454227592056760926079584672793866397640133375298174103800839713669875017925188890050961627253029063851224481562947348667180792167574395023354187971463703413595070688796031015016464474223923286729237172565384290147065906886729406948425427159052053409339014321081313854582597043485809314855063394187054375482019170226882317510901329413617187700580911334579616422030125980220431073829668649070375044538684428440879094580713838962095449207599615536655713068440469527129948783097134507882757248448998973497039622465110498777004179371263198665504248264504271322916123093246164135330391676894514835856927021660319065689993035272966942540932985850471428540838671088927344310873634570026911192432496377298229400944020752024662066447383917204425754834014539408035462734099909640690720756229073746841311985865787988559142521470803517849673589369335350075446723246131252582687046375634396463905947907039289612597648667056907181584602993604285664165237827113760774562109031798086571731999343128179691294296204556952012433154460835957656507832446721125850077609968907142990621463722501837031998516922005081391020537898391562299250064687356797954066278295022474592665617686886293211625656050084542945590329173720098208588173537468783182064470226861276497609063433941566490264262194495999726278798874206865377484001240271202527473344361668130227204754587027046409864346757364149445560401804690256490853251672716709512790052393421702743032886141323309616964755602018386215997872360962122757042109968737000712257994295186963004129541887796287240932784617980486479076998905777338860558382491142283163748692878538148143146224283984962337855773508605110105092612932309949247418926751316188186207532574038684806964904698279991221611386656638203260191359684025156492479064439833300318078952369616518405614103384347993761781821004743519090706548064032056911716643220992154712404616942471043152222051048853663827047208352220722817923077243786214629860668300394431840318971195938758807198115048397750862492845205376609935703511384695978429595440648575150506208497122812336063954148045231830375903923041931293580470253223963911512793759360151408705351460629899519407457553548868619822693246955382102194720212488490442636553953053943533004050613359968320166698794772079525866914331899092118652260584960881496268365467234984048143810943198574036837746637093658063733929458794664451682611483334598089481323014234497363000817700302901541674017957443616201842207605357765423162845642764409375568971553787286959872245740725586288916275422740013939248909372055545616078424153956188399905582479740297074147881435727079149221043557745460934900573768159682819680197715906457966057549425418144532992479819966571196455188565565681215133490980465803768476182660137371756837274130617046443808292439165371329638261653072310606823338899995102553073274412094269941379201101046632087497154105874458261159959068772409428697875946269429880547786077645800522940757030840638516043605931255565855331231165546386554103007269934477311816907866280119553224809956171278815563935190125607711288469473226363577830259656423269738474469674793817191834984412010284235192195947941188864520779602313430632171743540692488623758813507950130195421256853896066931254279329444504604143997511059306830758986663120897091786738144310626732857291352473357373341399649816225605641974178798441560213301230296004214891147848575264386251814296191368983822274941558639578740823780903834140879297644511888802337200988640122361741764305063703810769278341189017294013294623856393085315322442227688185717288938851686500759048441570973663653939411381414330070841798311723439743212898269308828179084546083522761688392367067018193779063875186889826789859261224877072553707746809091738121955681542467817582498635908457752822108733709471005344704316264532650987541870482604085049432894496711511556404503759922183153150621894176807974004026780591637359492305802189105616245901301913073423092201187748905417634752347872050957508301245800976089449020142283215170817863829715178754102327793778540726836395180372272739907246132811667262023853629580447687448945589355612941667877115144459521507280112452897838988924398057926113395117163372724763220356134137665549360910760775428863941537509112835509538910175699273481058020524474988606569414068805981571455349610211640412992071191573822396496879006157717959575116755908481929690435593444902893696486190086611848364084454709229880820186964350102416589280672893461892128839980588675472338226628746748982760072139691790819941807236451438298943017355303225114789118467993569437692565453511408824626441787817540585204627520911945517150715322322900317837863929972645795041362243073887474295884203865379630088782849749101536714044872706052239832746544345293565280769604772215030240603299608201442874066463090243695582201751481902127695919485480650025159662766721156265827038707214581147446979436985067657688235035063279085526027524578452139311897121959560222778010521705631239634446112700212586723573709009024674069492576669653047973714276265705359574487908761992997975491547095674568662666933178160269499245637861334504012864826825645467814425734313848600668267976727082780868964032762594167884057145941148046291648812852001026105619845278543167673430194180028739280946151948185468663109907951504488133650125461221413542791228391303694726258978002733168003031221980792227233930233396990249323813630178121360113136831038867733900122525241037628839200114687473978301968151623448458441708471154056306712215025240060095668450209965442357785547880065844530633545865197485172711046869237082103742383445162144635916426832646976748511916117839341951421626343457280693936967164403452311179813313674725581030233003356470919313118415493271541872145395500896215199557764809532247281705684628352564627543057620000172149902896451384383311711658584177645106185825082104724546989085526057154334736407766059802184462230230357649286983535477228669116725509292642349535911297780867067640091417604725110184229542894697242719313957825111771373646612886109938596154463668555664063242409655115271244874081386339584032906830166375051593788944700324467944420500623238056780758614051617949156758784854753798036133204588672013137468422277739338301015927873826640352079385737273318787221160069788684910568876737354682071793442051691869120733906023040359531440248482755249884966863905615181291354913330689198050958319547452434768855877383104143445399339782643790560079325779032687723893359704089290637986235913268827691204823532268533111309492766145457891114707181678298795487397796649393340499958044511144263787805500618120194285658011511604965975147093608482447840715101656881915154763085370899177749500315467791994055430238455568432958712280703393036550805203590269022257432694177337833020778508816459977499843551470304189931092788636285559549866645215146083224327029398653547117146112097864464644325618002352000486416928090125195558796777707120141585403242927279651399821426254278523836182489744008376465719918339566033650949707852328897458814933477309948639738318201932446879191922759819287059190059075406735718523481186834643477850541578282244907985840870058612052844716335877723304380827091373968895056845553523261822111023731271368814205839838547470490005360938657617777304878307855972175388186172720052568368730086721769154412628775495032392221164872217861522620911242592377467055016125582354615442087445842149647760255957274029184716453158885258827884286855889496508427039429899354427475578488409253424367596461265438109202556299820515414801937470048035796677458741008841318118725823857854484888166827713303205091480499027063386694690993512487922710050927746141495291462610517648599069299238175990244161879497023565718095144258549957651792962105674460022141336737548079860359695946856983379772672852875925060444184643577824036237766702987283237060452744255506815180955588868358914753304570116921730819041368219619792444604264993438484527323746191137110824464335016948015502532841846287334922661345689441390024706633554707881416054856796686564326698130317836216464658820830050364454812922884964461641012502375768282189455118458059573209093946206486775093802437912896018008279404748174220633279147128420951370105619432717629286857909094932180555689790662862891547375486731986937384664195856188997708279900169246494251903473777039886301492011183528372327919965077715581634061761969840722231867827012354034994384291685565051517438377353920322561159929756879655748563713998498418898187238634477477355150135350791910818082698953601252478254704321409778469323294380147255125843760860998146021996986315484735762920809967022312307799997668926149370948131311761267250290202511250176953858317579332482374758716019598930968995429457152380277892235685048764182413910232691491655744448451246083051457874175073871767441735511013076455378978875222218520586133010759127201284158160990129182911856667157392998092917991491610004660333292257760867565666359653418185422560598843184427218109423181090631060596773327840395059606697721027773614118272064342985384424658772847185178836337528193254258300549961461483735041419186161986291067063879119517620505564105481485307823643720165399965209504238904116749764360290243419567622446851420894565680323277778182804023531717271616138474526434256170300403880716888884214757957281324163069397719048693210177484934395220889779774606413216065912354287306634985649513842991511937541568268804640344074003191648752422812899084960491088752481897662954439463753621983060853026629767762297282370884106403067983957045507986425562413295697069031260693727227049738584906354811946653533660264315355456127620022454365014092870701038450249422996824698948193110638058489638349668423154689585739417810047802743102434361706393732266714140476450553206852545277727133799598971912933510953352183762378144828212389833183922695403629441944477939338629478208565391602768654742216021974541625034794865733087486963621460507966572115585682647125640198323687221801627370274085461233153148746531939362613438727849840982678998619691220266975459012033474871715272034237848532019977394108939918323993534360838319448350407170160500197194079556929169441248268460290554602480556637492567690235856549630563054990947383386820022532727510147653820157189689176438617603846691471270502090101667931435388981799261389495820568431525427173339845849677842195542284969377538214198753983628041513853270951507067783176184926867492451878878256523880787559339874189923941064660842841595176800291899674460456234768417462843614905240996146091329907825077671729948737993004970609521902915918788156550294869249948263886396823849560868500579992081259169809576250063252274297757223532446463129919160295278283878086374379484878160079866918449449520338909118199684001436019370933054722190471786161995211092911279170019766720202163966918422241349535264054150343478493730094810750009923037091538820155082003301200760403674004750282381217235331054698371010096575548811661428174197142241111465396494088106871353167996748974279372263513581038998825451605536725102136416929003210731223430072399556914225246430126273566681782285901690339952558864708517542843979342327492533998925840392320798359932521574358425230374366613899386320008006457475088070937998462747096657080943692993610700273453815684801439818002264979616549839242472149538551664906133886994794487640706256601605517178911310515789812484067441540438634321808049603577636933696507502496754659653517150085997507640004559542637011962683350423969409324732540732174653657712189786335455682417039103781824265672441578184384945382562034978117494710465895082321408204782053999221708309637924719143570526892737882963017204598416396765979399246845120216731557594061085011084015014939584813243143264831706383522933898357328629625006453965323234090166345534976145397775435455101800227298781666105724231243062350399126692725593983870446822440569021752720890597314031719499393757606517044308178435846890232264090670255825631565271039919878744996005669653116942017890333193079128764045002452926077757355448308514991216046260407966357004292941415210785179395124892931131087234036875493332119971694155822422532345269916514842708074964982432091087091302719220736052823988903337764824402482164367448928389327178724630129521377758406567665034225484479527343892962635217069248295722337237260521214867559012437510688636168620684810753252551908087008239375667993000525640041056868732134577420110043021274796404626772079602886807545332844611639636702961676361061209564091590392267597725612770823369101797932402760094779050493905949903550976232855245692014923380389555114536945379896424390775315438661079617254935797164480344612666235380414555736764262514459057192580222293064033049431773991107745994805184843416903012471052840011453011701592641760310046687984340067636613575415938107394902338459599785664900633100192580761796592748902173088186545124915610084564921917339841849364007892425340052885127409782607281844993623344396777834164303286170746555744709588710661228597984383289888277860899498259344457062552084666933620736456132995175346499096607099343125635974902965671846803518878764437192734322849675753487438060586839387320871071234119603308930602352193502379647530151415937286211822952590670185758559048698103361310619537044107720860233000669435598229899720038942050712413096330124739898898650161344604163697641299185513985641334802440109038204209805098188163707656025354228852064250474895868089917946686117193250332482302410598055847663804552137893230572350200971557476025937720767760874681482134522531630208788823985355668408462018877633388938239400596938234755581196604405366017085155431409286335709215944811601753296583413334717730271105970905178115890170866029901605124794507024301232306702621797011415106820022681399975072583213035616679491261005420128645322980067268900094820970758541021988488529545960197473063613284296985538522652381613088966591450912488681312595353629605766031975042950411884393972470536057894798628317140039684807642119094142756812027324542331959311195239505629062261100996439894838164644874586683075485778532874081993757274852197413718094296777741172223936413560332119093344075567878381130451998451486289800060848386942062185271928018778042486680802995128970347329446317094600385951254533868355796890584651723006704488896840610863040612135155203874213928449620222575465858208669864060498655425885908145530994843493842733842178645051398542739742909585700856146256183495270022814173253676539794691275297470131700638354159654463424496835263505948534474472107805610781082964942647881002597931877563923904329178532763420375229756575274340829508454794701524526089931388578312391175126922556675728851334043976962540393117493371399449529356801060379694459568597524987726734807907326761824523355212162149680234492925428865514573375655765945557092395334281424629031727815403998341556419837718018982112476085595551899950620730071403452081550332981497507024426772643603387375397314843137407092665449229520423199007345946393119965350568073329814865841109199443946272328453677112848473622460633136028591059635237193871634598696364439068540532231931524135469324875767304633817030294479835226020518149444585049612032690923375271623551335262343207219430093588150339359897449335269578745727831403967039691001707341493253102206326301692523701801202442268849290981955511719561208381550144858365716651026908664871732381901486099246991315460820019927050473056887614189329810831023526482810810248545022087572212834413437948499972792025835434172044259846932740914178214394928017997456598736982874282682674844212137154682327511285341652370316530704325828337211237137609695939937549536223222219746596193325290740424876025138195242697391017563719753430044796178250431153315067582562735343476252539142515275704787843767885241871966346241992700802576108392749762263654900186532064549951558029083985132726273219672847830253852219047927868938953878036869931884660310436335243732715469989881118644367011402842620261504738823589974728149334325706547463702245188728906125503027379190264039657741760689897698345664647052047163592144830709958430647172750763371802071459744565251418850503716377381890296968528440925819317441005557608985029232710160089825722381739454369852965476949018738404646564373071319590114076131742822038833136029708526145123490730714762453405024542376366668557574012060405988695563011441544314169698607403220788600313279055391786967416355524025076765308563224273784714974603778406460934681299187190289275976307015984088778174519269014769103003023497945851100018088660621628680111091511610409832730880899543375511871831737865587764873588544903668790741691825383133063623382058201548854498278838217424375805492381597296406196310582151670919032631873093381385011309133277093034251122109721550561049138705042621980526024761160750597103794366477152935349171861250661163673833049956487877936569791129319587827777406010753337243279000973240725607038880087113730965963445709604117508944479119162174551697096484476204617412815453612842260155130158952586280695706392444354780239051686133854986192665676227603582349855691922489069011645986609615679554154921575812835409202539317080737814650788320352665134570706553685699281124265670844801778646149740454921184312276218452244108847150757019088349502243756988504945424105726624609458320959625728720309947765401073985580699661980195345005065145010549240188610891341730607592384394612465698616056090945417729073640093913219567683643332996199979654243480265694068369867061758741316765050602713588257443370721645881952261339705452052344128092317306505198995450285853835228737872869829172758078242098261060609015092521109089899643892978629430141114006762877499207817237947462091689983896189486307730602749102670388394335247424342123671217702461011602406111857168705082440491623894343504702508136491551551043272507479410247374781922652059335513625530181219642499248821299260177408010371988421254744721602969500277426850775217586691799380136258422417398560766991654327570612304528672807076318947058954406188421315713800339848740868094144618458542303449514485210539912489324554866593053355845782771442377433853392082412776321659675383266506430638806955691562026222594694142900799876983442091469998979568326670904141398068633325156525696878789922574327961396437026543144639333799000819857530797881761337436094839283022338032797320386536462424980551140224692264789315929449180403829836490348886386975644148556085605371772287371482282368642781136572039474969069372399156100368280751411784737825622127759959167758140385329868885136552323139384317422585356280701915440077630163476477812613243802484218656698552740076410511901095452898382563484070455808090522147697220428738220206445111655802021581372204663476633351756179905008977808856009320814541764439032352419397315472189209202024742704058579135437926009768076362987566147826443389261212134565944568010422276165241837640186734533914880790013636035284321747804016831467261880679364930468658736463114832826980492022787625545401785091774977282946756929354516660986419481458364447890960383045828536989560806656661903603100453047200242263938815720686746900619298730822484900168163489212554337544475803887361586588592485975587427838599929541709917225115340254222296922343661777819296533134967477572209784301938184450598507508056494831896792205834341478905102576174909975820012347244102850794123184376014714213782951102187358993917081686805598813354699137945378313771141354919712434658109311278332662175922275893699347704984352519210735175737020054573451305873132214384620876027751840534893713237662907112055269490530038882280420480821085192876107677281454892794403227236284124794319264419243079681370382948200586974201501323531987205199203538773142158822114859743182387909891993253934150378768995969580432725177768986612588939544201391713064188629510665268960624145208448034034741133148800431386473171584468157548365316705126017466407607280959672132729422453610426679280946977358363834982281147669169596955732770282791209979260863817017654210151115811092683287485950646262362992592496943781822291692343254853616041525142063692521477459809419889268147764439053761119174630260741704144922419498001706238668169466079892475169718500094287444466241005863803558630650636095727097973493070964889076063019079233461701974566562487128849867382678546268945120946229054827542330251732132827853165175869340541118457151048346328320081011525254131193679545612612161031974278321038795482539174314098770652570060376719683830478692910032674834420668406673515088586091662976572277996926003868273349641875833211808091686185171345911568508931494044819961072502337896779899188725826867053775743512465081379862813483506643132466270924523654698351740704265136988241433088355263194547542532484588409399378463186733813366103100581146455151877305014130815666018061132268352963971146240104983148464604395200616373542584698260521254538591505364620141659306152413774330372464410397598500156892102790937867860318517672404695991572340529003816760724247701697815214861519474627054614221125691272253815905020395830514685850036024200549094550268261850958754262109739913220950295489582891742329813431540692575705880157365453517892741527128941314318269476902588854786599196898835999043885422748469473118751974887712150191591908885813263769981215908089691823350590797148746133368039706350036955539422590734536933263896961623842541047946294837937463813246124082530690269146502151719655242567884712722975266792028038412966157502184681108869393992526879439503267287008758188610493008597501969280952048237571389454388442416217566263735180336432774017341259427455820267544027881214092868804120300022706318082593186766481490447257994467045942382811148786117712471299402343531934763897789484462560417454780205295530815025429801570903923821472145748055026968444380960380164437261953004403990818426587487953263601747734396347413330292755818200084648860981832917078621243703459404281501604147705818564413222318877939216398896127369924002251605351282937236557373193193898341753843970830903585333085718369311365037008190565450432984220993814900454454004486182214055060528716831341426278964416953339802968795175366678475509672567390773471816933997590011898911139624652061607188564911926642694016069590616104437801498666998284332465257608825710108991959111180835030365079742812307093951984025480169446262059236363510719901481567744000123130725410256056015931684053281699733907071537208809013265415408408486946485133762274828499161274747053222550579183371978299802173759142434471486634380845991013925549446596674237301191215691048473306980508171297273138066292296784931657070031083055678897912329813037510317467834011208135309146607336751187621872232478968370382795012395444953967588537384466413472024700158852017613121548143721334792656722446917956258633003069945836289103812648952338880763843818809211807397927683141230868809469171765526719713411290271581467529442762521329501543011533690389221384101337883275393592020905194209393897941289380765953087027355077304221911430043256684624072289034021711512731689053394678518738227848515822470484127739268280565172603764458440068284667373544825924969162142390338893181170113891315019222854107381814522925921851485752524761838480775838298666675567628883100860152635893586357127421777289515445831293470980084717828967273412903707607159708978389934279262557381889563194050727520873259994565456085868553582631337084934064139349137491790772182285311600949827036679278923587884316084918389533623615765768334222895927023939153868119581529960664520818861843896972001893567854894942216512361017184737604606038296164427331173040258699852153721647753632066072061232929323962407800474280678081245429927950935051439760211929113037802170395082950990699443939119550034072157414801775922997193282716303971339380034926791334165089113946424796613209472508981957237504911331291669842737114895866286493361339703036247163012832100708415202627689963068189695266669440516751132937869050034120042841739429541445844475412467718508710301949763730646456618634940656615955590222038813571361768234778463109885474803141607518313054403428112703507195990142030588149232148841293569445296431703131903577937739190165691257717806985121801152036378471823289495344465514626784682026303966630199069226106232408625749366744026581397192480133160604128043094030117818395338456973477787554965052267198920398064650880987659599040268354582908404887435901210248570719056955851822996481632457015703748335071625617787840260248079543643142774097520462960077059523215937839265605847631831645394608691291390297075293245752831122063165307794559970935880191017954784682220298137949673390087099348352365925215317478091492963595768036416453157419840829497042403902353402659221352598530803324317858577406056900395174966247831146154707471015241092709901906946055592396830561480772653739984996188802045261369572230890736822583697253467329304349079623158386261263444240863141034997403655086921605004628097939425957370775224212775596279285841773136930903645943638449398233929185489553676473560878989971977807038662092746318519850851926852624538258702495738050109938163238708202285644740218903503702051586824571125520231530878090161943705387176816448293944911865897681228582282863058898610296052832544386045241598879043704773773713685021353938226539490234217108897837100517498175970206868257027259712399904777313320890674211212008218398677787056562942469382004237813491306663028758752092564773273167463696647462570612003467156409034789631481868213459806127296825654557674985919728673797538106742173858019486939329232978545561007900054725330516708185495508295733164530389667280573878280582588338674395672132016122364271902399903185069780948472980377051720009130562696720528431664964904631103134009037815217492434067144662452624788444797032670809204796602152536229777984130352918249166775473338610975771752089257006270953984192767246810212714644651636182903867855736355070011836724154289540477483432843483747564304527445068084429432880032635348132660476017214226940034962856397025725628371882800895476023866630654974704534984376640385989464581448053195091992594514982336136539044123167407129663261870424198840786560346889440980735651117190884162131337038328475271580140233374087460550901973370836047200902016509576637603786372188320038639008631870025211594327839328479264705620690613940364883094552023943727600115564487678447540835616039984885137729230343235300979396783369830091277799794971704628531410043534933382267484965817752353127196015906172828462137140103053343920270345130194910703446174565771792191324143736496939690489657328257566913276453108344568715944990050920224047579942148514139245457253260782716471305699581372348962272410151358146339359857391762405734462715784143189580687674488008034901047315958190724146417291159828969702593777767500673203833675999208981411198985757705456900880667351053470372132934890554554972053530105573246966105380660995007027547522626763831652725279154833145361939167195510302515194171781239124482761114532218866777176734174064523789930150371042110232238847769373142553479838888837413246016948494522990510710895587932162056322085156530074079505592494459743510349190441133791566366617724617723425057713516044266303431268508796541039734739274529051405512410302983625893362358342678655320477807539090909460140438067643829114783029646518215386189201400711494551862692991324737572992206115252478291665457569566383251147867252560975782740644380460707154246177387337680719306797191303107259747170951488737474695034915202425718743866194207982872883105710281579364027146345327984734941390242082297386601437354856090802957134692265331182640679652544349899969780862934703855361570010379699864618068028932857297252901428290197040501117093960401799400772790730059574064535923916663881144597641874269200937829705225640556982994851451162539665867422363083935081487782114697145156264218397232451972563939261864816182977438532410643492525416862643522704313723804662598556860369392975077940069921092726870253264588061666922557296352244204858671812045093427166631890519262450149084600688052235094443465827402258290512950304979961401660772556448746146270978688973256721019292300982454765438008643740010975723666092413723186800774476268629452639172489702676745679273486954263296293307799383060695174258956537533033198251374669746258716171967671157859591293894641900519594231162554265589036040426117249989093064050953199964610719970516938281588424916149236396001113845325917165402764954766172956590312791649517360294213628187264592677678276896029664972247633742345885325543235731917632165397243501468576239165650433876800210156944358236086348457350102531746380709120581568187968385839451042367958767056686080265948295232559420292102688752911543692228947178983633062840897730393136992191147148162894383234242910144325546512377642992120827639297377159406413974052092305309640784163165543554240237060821781822992158282156540176766976612089914480600595299065437623636120263059889510077235755651659219714516783674355129084511136295559530875867083778001919961816556831004557022827891916130240361835164122316270904542939796741282350843309452202160626684268919718081496548307692214680927243772183273970929550675247929813115669882315933109698993912254344793577456066112690464296564074054192882264785479797974455922998213530029315531271761722186319708982235311610694068488157552894816208209181667248131289081046237699070132293532844500814089415189311098796540721461827574805585802435381615139187720044458506579847920254569441147796639922979053202771302349978644034421824961632018918118043264783111515946811148164726454776176349787130866887569529762603031666841214634302624407946869782859874183950317139429001355908772255770537385820548895316960180686323258791510705889327168594220715607638907859760776550843037319077176693145523913518622363114271160854458040847500024799875823005870882654914622078726726806363745375980674164794484814973892387547284593438752792867664432725647955615698313724625104542888500733489513025043675009241929034354360108566920829426185038839729213803592097852633481338499592725301325821086087156279941191224265330135185468301475883617271648821814983502877885575396597889061068322286186195298276402577225660572474465593403252865816014386518537361611416307557297037999446651141140540794271475377811114255133972834961152875330388644328160811651900971960558504031993456527982222342807299181713054322774875923028252948026550571740861992523706296814981242042637768598819539599684750680120317039135076007001949208483688796385142405835386068968037754420706427165194190884481774909538052581044824739134996228296437835613093745711476150935895945792653518444582440734844891009395575602291056062448456125600438212279003427907039318710752380856389211364039358354010582073711565980725630307728235851731361937077949085709984740133668500208412981911223595969682225964545883214339357119483477892683458897400760306939454021357274766342848666575966790937797646768163015848816770646038970658327592363081409299550394583781385143772011353236289264203778348412135950821407271208953373316878810000342084057618038903775566026792357942645825046342858264058246647041364199474705466118335438791076331452420005378089995503474173982479708963230657788066150878820932715957565448426168832058940287967211719805372836240656118907999138028832094343311246912681414321820670235390665254965636176151324015679568910354880795582582532800003740724316505915305906941655244026442226553465708270971438428418562650322627493196295890247541653457612824093535406270144007091148209548333649386576628566250273021544259798453829481913014999381683903264080298234887741471682495878481818005552066910156137025327368239846402589188012033765009206477291158684977059128142539364633256149381380988193472958921912237302958434157505102177387600274257006713072132715585027183263165673229741655699387896932382888666604753463987363328505616254877385435688300572624974075468515505447792066495159632292580229326617229622139077254749522646217975460868209939045420657122232019376562938297808861803061952849313208496738723326039474869730793856785007594093947867425498820242041547066719824068073770803660751254641737104593569506195610338555273220981093912275466544307152856539660824821860992013074825707698853489469154319716569722476616161766706519887344489662458628625152225384290156087408995434217695175410335336340373475038196456961620860504864141458492224453185569392104609170949935123097068124336744992981962743873931320970401669537573173363924066206733660664354609510478033905319817058757712382737802524734990313350046117788777274760720342573148159707116345409091842317519827442776377940258294921372461614244122992493589461434008809389144670032034652189837272897423974379715319830729612428502696561588466394484055677766860581950531483370976868517186306676495978906788870683150525108802156270017004232925652577553571474880717033038406465942131322256028818375188180027781993016740998644106271998252745569596806164230149058371294203283526086813465820686611208819994256087192395986575599068847944798957284718971157601126635233211871997466584003580218134043653557895102240963230644670362396496910274014153840261860400252104070107826599150449718939463765389742339594447809412596446793881059540177061710349317906010285848179428692776802516063469818648761586233701525160236371817879990343795955115086514540258797264232005725044441943317120137468254190708531072152085126939846628017711102642445638079158824956674349287553422153367398007018414596890640693638164153469373358041348621682362812485519628207372517116447100484339267712904709544982177124599735379498959250181926670099192319815139687203924078131733288227406183489936891596258827794341812597822374682335655696616170703773942455538602130433493640075319533984910869963335613308498200462205237942126112738646977343529840614120293357476985428379850731423029608600645839020326683297106647485928028070622289411984685237118462881782523378018175736273865633857652511458976914251738657976813345533125961089216796759921620047777736601739698157005189305563209347680575208239247093075056486535401470969258633244753524002357951420808860993523690497927164952973307312176270227758280584330992778199380439217268111765936516774634858681152391360381723993804361913708704178324583687073268792759151242132793069249368067256716409379581154374100844743180798479818456229533783159209437058598793067431495842128091771469371599883933836596763332855084521448717349872982802287224597211100337067885195708636469326747159061232018112861922070378166898254061531830765384398395669071980485139529940333118652808812321707773513270097093437728645069055248320188640544591213111790441279949017804606511934621383518200791941711869477902086478775088118722447763439728760053349119723576540686820193680867718864154368080099068512360463269609940850990396948362171570718698156808599431927550783617631063522862443582975777239716171244390007852725787442545538826516658015450494415164016924498904268345734562617340205714011793825315539669178650853286160227797761828448212867294629371491109116351044932010780072370744963492569121890493135736176727370757948988198708148032945608027014245740279928915695074977187763259012185583211683324563832463542641366304744206953390687461804874269573082528928549775570446553072537265354490916550585449050090807360813300777288059176211340781270220715772179918469199964764765500100977660172796469665522445266993376993129003168352117905283272874954475129813402506291381095496685728387795290504428896615155422823760174491373513862739753898374287836457085777879177722829418378625092628139451414028381810712499370857034960067976856336968647672081079401343326899229203210797152854322309368783898249784699775589777584162128896661183097189395618055898887347882238586298360614828197063885376638702369971905688791420015005893278157667955412656153240777511837016662680233363450787841366979508958640285849250404849337961711803280455707969321708308871176259199594356441397149528262209871179393056412254938187438143080847275530838917269346294899678637549361154624333630992676994687019223088148390348146066609544524703883761208316514201007631833758934939996200824800998604628306243249049275733571918058260532493551274110735860302253057698204994600214598639757850583213910161582089381025366404328385622156050481874565965450748771370455025814588687870941584142363695825390500441026067279434510615024772280622350966331573612514266794341407466520635345465839222611463235578393993709702620191622134738856245398302016554714620847629726525746426872338636231531355355681663605190357189524466423758661980411448025219901302595893499907018346443127068059900432561387112104506890557506790767625630503842626225137290652256549426548273213499848416053950047182498565601847314490742691964574526581135702651071623877334688337258997786436725917411557016552924842063152187379159524644831952515980633946037421867350241980390342917288205856935267866581582011958760698252396492923489146794430847865749745083669623296079018930796244587484372517492298595716781255748423316730358061373238720790093363369257424578919538675866761134125824716030708943168749649125716727634443030554358794396727983916055021351483332405448295912401218783134030459294416212927504998450167094648495344091524718377825576002939794250148934214633867588345896387026112729779481845303444231471312440784982148467358627326536286255010397360301794632125535434232983465042878299269795250762117660416274969836359499603243495791210300046219201462117222885844133017429091519974561741221425481510127488263009469748351230072170223802516362654245731668291547444218100277761276072978923682586116206667022106584256981663821798412038784102644877355661996291918779924348976235918131207934212628580852454714318097767637213645840433599276725551587668729268189864664577371815671372712732706917446076837023027879242438214038304398781254700621379655600744129064710835313042028929121521463452256753566839681362781899954496762854591729513324623126862712073070316867408660159570991663158646522388745623449645159907497920994590343139214940679848302722545724305143530454907855046857565598503141863084834865010575124492875671828991276457246072592552964338464547294520764118443817902834258464092984568121756169389359659757404292955715291507682970780202397891696925219956916743579510728110135844878034761204586517986663278274801506364902275231920574521535572880248195865656936663054699706295114422061255504568691480327448602817268281027424886402616018934181365408817027519036327982203827038208983512455779035361653446984428513345483864352548108312849983289418172916120839071390684868789213810103679650443525120422214656143647220149894200214383442012409701466236343858272692961086252552511892129071483604566795595168653305310545101978321657417626828559346918714924724254791232715290930876743532838750563162595363919968592580225709413045416467857239737626687111622820934741373839530974538562283954012484780817487662218271515701356954660145145276861488219451341105980195908637689785102904745476657438215181134510250246512821307882573115182513573208273422069550416205631424449297757854181047996194442936394669739813593669111845157777992643506435444778907866885667636555675101330203920641099446748697238001890185771237393338518911517615291790335703578359795955444897859498954246647154327706708272651894378379480640334221433772404786786940630662072056502773700258523743934557949437175759482223948482130909053923116986640964837350683077249445046879290633705387963710117044090375203852640296257030044175089847800778547400690983159410928873587189533947358288473512024777514415286414333015237602025716546639313515169580288664731538340423443705796376486698042917498972943309837151215686192965419767908754359006588519119491014260755969465368844561880990145071492835593653328658780734465634881032988679671646781357384388603935675481267316383463260815222677433610342562799044580710243729086055639419844097513553481936898944385856295365499862588604857134920887479532609109770303465012940402286028361334223505478683117531048043788706828828150004082704666900724460766081328348616471638169678446051551761653711887635152359278589755531581273539168302801968872202551866090543478414559163466458713173467524042320513784665145484852108274337280013486724506825679412532619761659887652396688873925240799849352814127096654205069769479109091969184310175731322507064339087907860867329003063983535165159800074053082689602417037023267069764470297602604698157613952922096431184121990812443297453496971403552504286138984205987355762655435347212310996418075573943049847583589778675340827775255945346907202949290138613691171938131736016464766254974355119237231903375664039955424477839442983518287742464123279166224872611661531195565153183793037448307105649190863769246430392533328182321026516298438247988940816153152609817835820542047575742391907906610890617263336352753588367285253235669995686270183081216740528018000255368992933693867881167440777299165427880446784135620093629755456915180767133129637553148165799090729310413796284759941779072489099883994658129887050988367268841726245600654681144806371742950845879829312533822895706426355589519574792100474878009906747134908177116597027874004848558461844362188045597553613978187711001600120973806585206022746739843219801950690953316230458982917616258601136021828935305946736287128555704204874035807380175224160105364492072700313587362744654707779352664844640806718320237279420143447234741680498214353219066185429925469027839023946936756585504715201141750008863744375280986335535666305314474278010855994616123990295628653163830851747979431177026166211075066725911367956573126107906874252713210208934204306864426562190889801026878816775863339198793606817796800152073864581118643322230027606609792372849188165221926276820901885478038944356032042433072568734606173702324526804366175896199744461169110304860590553199705636008633935746768254932730261029297265221999701378474566833692781960326841205387250396773387410094302331065949859757562894408874945023244710451411575928385431904365609979441778694565059086737279405018103589133007802251836704712947858393258945203373711540965251726143245821365109492864963727906756677570290788108245219873727940381999502492852736340743617223491460131337418826157775394499817582444937381706204950516722942428537471667761788064434756742240965920803803416278472569426829022925212523848585337347913671592469499736083501009084159991613780484158077661793091915947188569099610232560063679650977588295435738186298518032859284770413724366489514614505019206944691005545175316280653305226400767770893310898674759236311424921196473798385954255778544792305750680638612690209013250630793951922213386091859506512594966211156752477031726132363270363423717204669236175272964371717948451046238560425822273820574669416399792178115941355964646929848306709201425779742380093529530764213118796303250033849846428603634072498312855593980962748682443195781859038887550090259136755043758914720260583621377666420090901070593053387190959348338330299912816614493302348832428627809450374459419962277192591212973961871592020847315534698082291794557411069295622770746468292250640769884404759019173477414664989263523613471702165066560590473280364968243983685148167372969698615723107288050308655420546534599832179968137693852187938647137415299348482991880895775760669754960742573489972049994459247477655065588130988577915322125348254266184290083358153300425533240532142124836043612819221729578384448001546002989505011823896463097856070910788010264937937656509471879322583388446088955461529462664001960838911309128568907495244109929559185087086298774924629350984305416318920651890102210836873850768604495583670088449719941471180764413202319502904398729819740588179575559249432469415479940500957863464910789359582772786600741560112775892715697466918567208804615859568973929234646086518259734809876278032735783122824239714918079349952189648914987489119544660184648597939334327981695217348104730074648312530680755197063807910667955898766453000450685243345844501419438076057321597242893329409535776902892813273095037334413744484240496526726491230745760280033902974672600719069651789305684608570486241921921895529501206499382979045221890711544996993791443408977751170261408258401444153573912575268782112047795676433288753969726244731879032952501475268642593745614354879964023555025562412865641888711495639054779427685872504112799119785252786355553260549077541637281878794216675674857856141623043363824076503788015601988095772380487988087768681885315507155213567545824862107453652890422991722156412432965485960404760340108960793000197018816034018706687673493011680676253758341019449395995975179929452901381967248764294353034940384045489020690811451703580193819159005399253854990428116443209598104297256009893982978142801815867903361601288340891824265607696572754763199672245330775663565149889240332801785290967159121559220796605920051664715113084015747198573315595081493132744386096777289684562866947981365031356609445293868587621647238419472667526482797803646166461654600938432009638665105879383584087496361419706343732440744061759639504054302308420453116892618690547745512308142928671314547872493672262714019480580720895607295402660357300016591846228694429707353592797791351415457236366805613510337359416057986935094459307645925364350129491834074656822106802432954472119886042088970448772597852229355144143595866617108405761912964802496895729633619081064734292915801249233415950727908608747347297779283102211703600785545769509313647869059130192897508136820693747662440979739060858195703694795621733909224235687871954488870765540417538648949470012505326595490659115857931270481659345687647710613834516572863565673081448107224136252029771512301152163664361755541537773135312607367384511610608415135837496499914467183123847817266127832291011902305693426788974768845305927887905349031050776142554299629387548417519639979120671487710566996732225389139322340156445850150383589716631779696503376087263341625665152168570773753040224794403987545693099761184759503630211288883923449592670037904222571028065129805454695532114953758276649718670663197079169226050790892188740761776634726929343000028544451729601647189015641206994309986169366851898334010548662959489946569035360554157029370869503683225813239174001133578912283864381866214276391120167628509170158013239407971658678751993359226067740973101511742268902396322001301650111700896408566091596419960202060399859516759933616460872516105373830608301385470114691786335380234107417724977129694982389334746097814666330889062394193197079768488622039448966521855308553719676675096359880517797472617930326912831826748620578092652565290342801908827059014054663747001383302588936160171501548886893591056944044972172021139245648474988858366001193030933405042481909480846789876003827669218171908676966018297820355992071897780429236183663066794572605188960538234728759328230119515865551801782831335658309861373165259350308058239625590828657292138654721957793122433591473237524037869082536021646294813204884573987051367246382465059987311460376225349778221030101454298751138224482136735267372107046667779742422508385846488729490960052186147747715199660246552260696212706208541687872395159978268612079223288649559947129439200099676084626144529668818191118094488991955881471379931481529329582516076010711662495155659372028930345139657761202158250017927165821147493989825216413139833162921591167878631149035037080467291134675664573677603167044711872286977774937204984115525342283689364699486599281638902933332959670502333106318645471594619892117469604407479301121141664974922769663879341360554362801356521885916919160126501703473492198577912155996554507884590280024197928361468861669687294067326579448551412102933164767805043203023892916209496994094626811268847761941929888728302045325483555956456104975075261052442558093862734206358927768284422812958146473473670736225597282943726377487768399286376323453936634450584640322202749734150248757659910215195448391414894528223832681483980519970765592688983154471576951183155510618730067685680405712307832433568627813031698684340855208154148525567720882895194035878583720245447816863460841197036059946920420502238950509990547462252473281286675507560592665702381967985443697384303634755135301014223131859665983550172909122663560683962724430840465236286528423238142349908676609158081152998567318827000131093821576191329659314579978119982342630591411983389412562602152147455618597839408169145555130001751310208382556317361621545903512910618001537992129948114092826421522700318799959583363724143264712437805197524452586298660913976536312050348551968701426164273739442553870410409340117869028483173244466964383927413217588098000494988615024556839321369972260395131599909527837014548012759527925657066876033943012129119785059365743941306541784682021900338105036071495296968271934082499540824216163965539009310071446388762031349134077562755620587774807984394581194951882007132052594033442134001243688746110151026668901067251610584232452648551398239240043572195668307365786346362847139477187605142398707775353711988544676572934635846988478103391466784785470873151504290874245923946132610892919503710118254923184207210437942006267224493626435095955033758381719510544311687327960567532982916131257543568252456465008122805226368146115975321199170660364359744808288562193226739368656062542938224900619956077533306524648443072734872088797672926968147974853263746082115171227217434461213726243363240118432918898637112347583073897410591681818816689559537182399583109158955865155107939110515371592823919727238518934595024177790551515157264975708724287679440973145302040959076917387500961326483707455953415351331344900038752803101337856441911474235022452362008865534205354859562097776348591737878062122554402259252738483077651799963738230090961975938017475257830796156323362664637308389573846711167092750644157476328242109681866702142077632683755260776111089889449646732775343901491089616361841443514027645812228960506038155465315732310359157359227589113492569009356071479776887007319541022834271748757490709187163047623887234096963025340782474650972500272241452603350827917050952440893757333312319820302154163507867782655093217137817123137161142123181244080633098153607437639502654255747238777747951603707602548634894828153033520219413464669637514327152808029100281629344182641082759195249518173693711365151453769757463035503968815577039389834871549884013238769153330886083961520387926598342627243177492768626963541310684656244843493116508966874844693471034053482295484404249445480290150087120911679176586065278724812579775347478803166890035108745856817454970704973599571133983455436889482161005371526145300563991242445399625803132802285781555675337051796143359354831260719900258511108667542907999170353700606436838865760343284213467493632847981345995095244594136668858863653580165643967245588975213805763615902148421583350868717691213845760044375608187454847305378791606854309384081019497206105993813537730874309360802543746183604369148741127222098901147672877947895395173377894112656204674800771293805345840765561616367140328136450673896217852090789222464391679860438040198487605953575729784808053646541796474341632080188152262997279175361841901057253910235261006661285793861284828721151144331217481644040056183601867286327932539692823242601400072598995097051264681198513807028811692974703651388278161801811431468727933233145431510250480273769735906929697188889345453153536951518987596889246757887794347506970959483891870919998567821390784326370316579878408076134700595423153306313562919723476311123701263743716988364569939180204023601706548474104482716849915119737619157080068754318896722949153519195619312478770104883649003430712202169327164487378907486971688905566978934955748268599453881593423799010669245538086603569309347485162719970008372666259460916369119186683408760398160534571873044883787844599456410661946492827902987144851382966227706977101867972627483623450552498684334621758253519948935838926400082160425785815010148688691944139135668696883144598621199233497225849337410553246237223178411540422579197837762605724976861180888568657979800450074365599616849105084972307353455998115616755131668419573344751329229644291365157996632553834794507661032896848698762817246534181038300169434521758808549607478490075673039704749799412435126184213715027756166827369026168815088921349350732182693228066051823157630541607230367138987483779334050158419807105831531091345171439567188012503059886950631165440619618064708073612376753683950228243987528605105113518141919737956946936386812745316528106350383468283573844055142293480079936682108044936068621646006766344830319224958931559540458169497241368057496365679330791963671525698071861874731197459621434447874538755676792302136148597286303389418237450498917697400714288423976680628317290119085740325033854522235403375989440089793296037412054603543841820076325880936286978935955808509497565067995350334583706800572396726813294621407540131282863688230745377375496644876706623705867452856052628768437103120859783070774298894233319665993370672470968952524985445820981439492120793934365568025694559226089370437968088305921735499028081872394235008316672586298989188652170704858091843945174164560090225973841145776221030576886909260019619975636498357231553711648007804190340734995830844145512294281776021521049358131823966276787157371499828414080368819714227388302087450157398585239725106689569962349628354927273450826891202714752570427050611184594647182853205454272334515940869862411990632707461826679560117012752583508647388492046027857128502347846753390313187862966495520706455076895843839186767906678569477562130037760802451808273452521432055160633150403699415486061306759533659716800235921608947814046818533147106095468336916218480655870713410551936174510371015992161361995097086501377805338975939883669378739548227896833361381628700251093980230769216401666959917739312248390826447912809985780640532434091371862188532304910289011371610830868087486723811585974218156537092967446551849292875004065158071920282805299224441627354322382564952517424671577482689612161852563998936569445055835103281856641319976266974391111677809487179369657369037614319223834766554637308885177708844968323805818661049089021478787690731157126141234536496390084269944708025514624680875023203989773654607133043284170537344139038932348425031816883026913873884588479420355798916511772879206893386316827004321470084246757852941660469640375384119123764327438684183406337690865633424691994128446600486512177804327689855184022775180987901106967645819095323132112878909014976869469812633598854195455671757126766788371557631267027615259777699256164372103010849931303543718989924700939575282429872969224107111180096726415730726186239271371578280611414300201711142648258488927207225721220327713009982949992065164892245518836614215959589128237524836062172044495902485756809969155862344381651671463163310048739229322622194319536546576778120984486254203960830112776745283134067622943688413542209394960718259832600135575309969096916373496655974503738055417879293820300756984307669543903118727067442208400259867930924143662905227305487332037499318170389925641616744964935692665215348150771057177730318828452217536385509090287600520764445585217234669265970493470604553275629606790606632310267244205955949617383552205881466766722615253909909223734700140656139750063356944875096877152084832351897942123225929201006950720089427540980857268094505906415482184309235205988084931561998371348630863160817753099343135682611939113131975531178789183155992277502484615967066466405284880921192853256995495732701336628910201852959715102098731818463944280052695190904330022355676019778705309066426484472311654176854222119167486235082140555241633628561937291560265630374851963379831249371251258466854494417939893950361305635853814653497429452024282804730393196391966568679509781211945037151849483955346185707607532969762060421264450505727237362397565744000051885064382554728183969647559539802630009732975909676681125019203508629139643085638026878054242269120670846669566779380842887975906633338519183165807333128864107796998027738812163216461819722979938232792250343923207155706556369315292188293554619023650716907691665853411416202786881452063334351824445869277959804662797012743488199998367141615930040385490934771232162308539249668813677226572366504800742866450667231972813565442043144422054427955692892481651067906360543142276229820510603946839073598742744190252742980580057378424677214050758689327578238964933029539316754365582636829334227866799690862018808955961688981948336656830850488836176460312166876308659491983675260971893798508642961542780131573884226269097207549301238347693325994685064488503584484386598349300601794354979546847118805815318348388546700900036239016567509098519743826089176297051751626446321046822400453548606399543634998761793295439245093275322116718512553617107202565833354352696800851148963267718413948971015796822371232377799817045313497795344097553782240414687831031187320430287713984126674284308300996375651519942564082353249959052809366080177081548029774680469873018442817224891333669076425734983149530154917971860386848864164136682031527841507301603828760904785507046797051029723762400497326796540443757434614926309232993953102138573340394654643138039328475460166828945703985202898970561990500585663316810254247961224979941619238080817186956176833555930820343291711186119406614245930234168589283254022811223751448783838043753338600524598377152198085748474091159656051012610213573908775874485223070727867510269340595258400443876916608889983769297115767546444686686822582163159384153340218454302004455678786165353877900684796481611546147742567664346667861657143213956058051068524929302034863111876979067573730613086580498053996249830885162974483234209187093248655663168599888218076342633618038033093708068565521163083570426598784939627742574272212686526087553770343242797213162471865621815021272100153381435276404467438408179213985247176560645327166630534436065878850200216200832224339754743884656908084822976109598909361512918143246941901775429720168260292606936286775939441303998070048562472270746163817080272609324491040716169431127216932459613466992507264935833273692236372077527056795318598698939329745192340658032028977873471602317472274608055716294488616376900498802876817834462006220327101913512335770364900808455544255768267109148155967365538582594382219513580156377119716793670206222456863485469059877803465897456584478524088192688309227770546049463556158414097453554239477673427530500839360542653385834292408867914093681442328587900922305291527999159050090651924744141709100477084998890303385633941944104864392190202256628773984626697129628687375722161881712782123563349047154994707588680405946324980613245053389545238627255245644008130368634687268413792193795785077498902782431583827323503310967089933015706641952401640480259861958294666114657087896993126661948681911951688997857138260889720165022115150000459167591831413795284292401626307590692810259150476906872272115545836998472442221101278300842149489854275989287579626814082842462027344811563776158858566660628707597984538985888539735915067846667744073558896211764902638877304631228815008241486403525126070075059042685515458730819944836142517500969198812147177694290558463647557815938880662395420189374908403227510206348923283093410282378940889895317257072781466983925467615050901133856273474822826535359010089528178689238513054833708012163757061868763785954802148810067207114027051724468180760760129942225757837851526237298044375489744603759100293991487767534772424112309983814691187957254447449604200948758632104967562261710980657037545797784528755506706813330119403702836846318300506680753062470647522436185743826977839833542129935793422513520349235503103226324224496188486719775355803165214710619958410406221190835966907897963380812136398928437310743158230935296944233518933301343708243264385327899082614976500246622336013479717464642080798369546513329453775576622725244620507851699672019899993401013335072075807710403826558364817000188252048738626947279776868198412449713014367444617738360378450588677310415521380295511482941381968111653016235598910147759480759411771570116508692185411471004985307661544503263624343420505278561286837117886986242284537112278047537319214048956991086183575809549838444566013084746527651201522516404600863882540892101024615835361898855615679545559434153937745029100661215587064016652981681454915048709104536360233696267900742045245107874767111085816038833504907301984545965754311516272250132882641327327200458647504003597538841150858712366767330536716517667235923474108220556620738971458967361244286013184480990099661941855126591403124482682150505096821172238621231152652300713165865427360924785213735015263087364504209708686975277506519538734683752316717031793864707833381254703056742160675957181244817241549006779553950339497434406511014026688323398138407299525779426860509803857100388472248482378758702492339217271606723237837596682806558779053366211090973343419979784433485265324350722533603987194609870643016788954090843383183273800955490568085092791321896161996636262009622696371104592305859857933213945718121849704692397468471194090316286548267278160233466412458675531537220698657075888456159200392763767615955391438114106410712803664182738485702131664766755240750094911376831891968759459457677975505054359139588476862792044160738994386605970487557360320761893992907847325701218938635124345040256111531106159816041062934721259033810339622107691013592064184427275725636244992188419296928450488655716808147667896609363464271937555630095802657166740606967045070055976452397530935669267213475656322310521709797267882011756733844202585858563099582772237670124261950140214124151701706257482391993757315398056518447478149788507156871414235362443327302122681085470827797568225700932570140588369636640436028018657355839449184790336263501554324008794445528858414945115640942709224065884058157027469906282629123540380245799757493270182391447626286719728006741510646157842608708921008843375777396856008810813692857565080184359309963392248748227346979480784064776775774350810648131138541202668180146216960634863869351822833302134661336932791685950307992469114783325130820766910151785797169586601857927299671940055236690498805765228834054038295723294956666106181631097892263994073011570024576283747735763081837981616381190797360315872121983138196203449769816206423985075228327733732583324372882160597886109873551913778558814037298650838175116326674547594083452969670926281699808448890104436399294171335504917218530444136127553727404380196616706233382973802404906298258609513935027495898750528072067318378647302489130579054815627366934203153365934803545221237593231989288843748037324107862086056224621755669140664965603256270152469394700985147116009940891283519475682748329672272176682993494445340679073655254171748865839010393192874133368705592913800277273147754869775541198401388960452885541646155295967306253288304118555011888298415869115770818537363775060713350543268713538259132850979585614230274360395764960678598010893795565430875945538732132350076030077301079178964083799188708619632086790511588913741262048385411578488220395923594332704524591411473507805455040335819033847064810142486891972563811686319332164976298148495396460838748495439694585152579518091162665452367335174501636083335297396558922109211569119783167291844257925757550040307490466642270906643224285132454408076050309972583021790257921821690823779438834808656545165803224926641396247339605115247595839356366074438299366773118971243814345071442634906683367462679651448757604216490046578045668108976237352466304486513946482319660407267126392740537148060020288141194791417421096450631305594241005639877803076831545495507157300582014792515959046024661151783936785601612532406275242043711925061379648508919819095877705809924908420856001038860239431557064092622965854619405990986964765074089090371020410737732283300019434413131898982911460768793479475637926076608714832586479309319426065037650312207896059737211942645807433393229464562171529928698775723744217452435105937015224486976130482977756125599017514547595430957297867274007217741044287624195270575130818896669903902513418046187913963917519996106880395794578140869943557929398861400711417249894605120231528627326923240980270344039357213519034584028877988233814226609893318496674788926698874274514772695849546580773589496632043196842272939054023420699365934655175946440193569680887573651356552737827558456003178125785472579739016890446296702126248612178766264775483706533502859187059393901778046471759424323624082047979583793498520455967990254051594049454774417608395779736867376905855647918279488713678562976470361971927727368758174220619342121583922147169397052507247831658368690921206606029778144229145154061195058652651412881871106491879697943160479965128847403654083999670832363146792721324493626985707407047130584348263293188454405105866194037558732502573156652753929021523622074153014465759307227508883267063705821488431961565310418901791255484578746340538187505614044231461197845130970565453691268255794448780425882950076968232189862623811110723687449921424691504040400313321866823059154359549671890135590314696913736224077614431031226486037647919392677174935407534162571025588711228300980455394033370487328235883976509095216726564747258020548090639892790959497565422906184606794762581291478097037557429248089816541744855096727088920335142693606922157665634684417142514188413007346342117709133884972815682697556483084091332633671724772500819038332573981873743660364293416815416085287464587255653507621150730885068803456968232915354060692724241361263834962430252227348220766743282446251953438168663298333351231892641537539026898020923069024691880866165342597137031996465636551784185225207740037755013360935861416370449092199891298081723596202953847731659451593254575127621826588269650230832748779521264161760154839038458698458319371172093681990832889325916016831523789841750955421456573542447703079868907388542365511940355299976861512185036911858118061965525762964582474395494638849523052293904319208347004085959062477586926739003838567519596357188381477340819136711013050785355589760197241318688735176938889609209708119960863932376114367610703567567519545098566772609283078303333849478963026102904982778516773496566301792404581418889016861103714921870755368544212842300294361846299784470990238920908702825867759979329002406874041289587818001551262385066983520761015258102922206918505898797807610317527440586023149271114853812525022120659086590178202587801042247426440305081493400889355369942155412427940242883301635560084548061142519736000794683676743928913680375452258525035643374923040611881347898649501791203952139272589351885032274797283045553778306485639221525481817233208066725276659643162054180594480709373376273851917793186994730245908116531708464778489793524433572038061469870092327006538735123781189355588073827614313871047732133065852429217695200986522155832270762404786747201853835783437702235042508142457128437565714796893103634180893732997220191856775283873360133944177263815622028490159604474228410691468157779660193578485360756676916433461402954821501762780794026532754016988343543419531698259725727032376723271043885021457551160781078490367273413756850547512833318281681806879234839423579028304653257090996989339293195685942215104275316137785891330262383995724924625652092380982163100220099385178387862912847546474997380846098849157178387404461981374483906873405912842383139922683550617309537760077334415519711344778011363671293049539990019837057605614721077458334412357522587981973201543708493212917688204045074494910930517869705671177011419656169548746956995545794664902459880581820522678280554400630551716201091706454966577280912312827303711793448888192757525099425680572045715600308835125483545318216700312020988817566560248156433398561210335218031222038724546176492771976075616398999255588448247125397544419957528755338160752382890749579434084784098190504995472234917678089989735554281691198660291050548190046634137155573699308168787927857366696462826628267844983767811270499161680058808699835076429727402925188906394922183187369232560399158730451177448334267912516853853293533405574069546616393992231256623733289130824466051596075681864137729049551578853288990615412343781361699480463908311094735416191894425279561023915503630620246485820967519520566863096088982742416026648684310185357920109341489959132940129700809792093387285245068367706352271937561210705529957700568521654739563093401459950709068494399952610995037011491148583565840356944392440181375872950668205071295542099185087650711181272383052550942709701808367332460479643916371196248167128781688086672286327543572199760279585502124996042934207237855661033521342883540324720884075362274770767226570322161459853084807014327113323279558962703353311330191389309874263357207481014426060412219499873952098204314094001173960150011637464937393337425009359679835495980816817494264116175890029744537902464510011573256811536605504921822907182084906673068373474135408768646880362810534636606363963705084006032259444236806840701090414791408074372432537542045294549232054885409447277733086772895728448351993062406233360148946570102953727693192398007913742461289880620940425107182168700354182717824693588528969368387123395081807112652032316069421394350441642211804586597284701987470587704917452361406216647182684227650430987221302532920806244101356519019242976831941842247953230488722276199998130593434354096340873414940098361137992901040490216519800169653451050932011865288950013498554815797648691997535540019962392183037155704956611140749069890614688031627456504309292968564920493914266325600490954672462450603867027790659778255886429872457951551827889549293791361864335494956074796062993943328989560710185007412974027902759832985344536654737382544305064921875584905472536631374537077658929988754531817075803390144697612612080121923648496013191453758738420887032773631045444103175204216817020249242468543393848183239720117336727143759140357324974219076628395187262094877364228903555507099568064481385391213949440769981765712217675877697741374769300803853092414702592673097243425147389794333082207091984442963493682734555999275654308492145005895949858388972194908048002110310107746945750302798672045602966829024330049019586565615233850660108608524705125925107236890391442604480419106885691711560554676557754131337846734357281913557921521252441634267287935145798726236068476879424492454329593759322568038241243080404415170323303546805930255459808401814193883913099131378039516586688564053442504597686306846470385293042281253712888124063837191968251315506404586582122027033445251500245556971852044942712661755709779076522016314099243456249658234632741999669659190963031507721622959737941330449069123546628999767870639644275439705307201015678667651462562096649852069770710283319925355222101790715425549106689098901571435225232088249354832640582544332289933881814332460776202119276353556055401812466401180644907486567924930457530305406358998581036430506691788360446337600725210593072101922922418953223829158909341282287505109801463162395736714345765411805422274015650441113110505863376808693783303841959694538613373289247160253222936973132249379972928005992675567247975790953496341417002038663419614534418285905495280534099977630879343399759789105686041339012606507861256082320438045454486313325106637239101332430231854665265092939118054325741690275954071908417628867735299986425460585144807032455850880023749219853889982576356904694020369388274466818401399841773978038022542914925919574927731783795745010729161896999328831375419807672649180013064389905496374484069145828464261242049616787491900287079969791885341262481087950554207435264417947194040344796510910272448179190320555977587738427273813105814360328119623482496877066808719029887234172895279364187064069484639801089564315352334229003147981016684313694791961472060973085801361507055166513339144332448586946901204924773255718230581885747169914636031877933013847597598611209617071626757731572976133468570481409796915486001251242060298788553533764784651123129289985200406105400658342503451634685630309405097898362527739341235446910129362617019899713956710393977453100963054901054483657021671991872203463575636382441116170937888938549393556125009047936371715422408061034381188603305755612486733268456069417527934409497025997743501467019950271079144783210978457155621888327410710976530634168129793345934674275670724413469431451621670473376735826853171960542817128588708301593160488414921903243630580503307219660182809009404327179179905769932354438810503240674918606915784062898734473767092342257822449454348280812656771732125804023869289361125565308204506530663405614901036968658562063810884162112507243746872189242092630265334764851006488240187531107752387990519147513017011555125936509502776638656047599326777269553478063270493039489348979598091177892565374432654393742278506271653261710049130127647658588781300480840711844142690290625420067897649616996620372407499901838392496230801679713342360699757087490626659373346349331174723891567344412867677628500732867428934742984354169140694898144641854134452472851022266000796138096075270104077275968926615167444366066579171195189270912069311570060784613104860095902797295146546772338319753003929982023067750861479378310340923251667930588580944497178020124060753205842690453320997327935806562077891445512444048255269303533035133590148144451647017174096780541342209529918090602912607156833927661689267445611553209280009335523419347624811687507833375052144864123004693591272455168409493435643592020840086639728874526447641681222431979005740376752041131459356908294863650288665138667187098401912652087193821461049629177160561124132622984729181973501923264693476067359179204734601950214685020422272549906050039052717398308823934696132954605823559616885961443855177325568257200408640667157261428742158656293653466676503053994372643377711755248633346546866174710294742570747114524084069357459330581066479105872577087039412159583497208014347320216673200295921778311465479415676323580901593449839343603113947019602368064364710155265483303322903249484887401748716255541784323459835831317368567411948216488283219830392937820890066686416563563299900258912425367465987427578424453135056811633366503798136161033428769139977909395653758746991782052951266065435874802495310546207908286923825317348709348850922029899749216770759304665115811333830478324658453779995964224511055205282259855135799543314078046873828830918171688650474647342006016159445817592764878317510061540571533408027770017339348691597254483584995703116908905023479004182696112774389101113682498365112435221732941277060381302634181652357514835007798682610689357810835786811158166380254286394548824474315217144653188212265603371686438855279490837229672715058599839020073704352045196213006682618638971124575397983167483580286609024375336597037955301742860170982285254346628226050297822819229679749507068469470141114718271237717945439542475455823176370720020939524803055024861529194258380746445612475663032936211194064385351261733638375785199093033778956350709984872647563288157718587782973537054845621840616651638052116335535956157136554883040230839048499053464022753635053221312628579847488712087974239197129806515715622514535737622964969957851618947258601930480188788414077064277898211155038934041729907842887791396031909094756427746282346450496185589571867270893050509917508259060162303560854100261506599582940941882231711766856103431094090151955603594197629527151914465465701146273564760341664073355301078406612170688048776765829603445926238647585574773412285590994551261972615033569804674294654465241074799894679978464892745481446292704610242772494517285427202517075137258797350890288356512373075140216213117026404825133197504282209895138455281362688417732670088252543172435798898927526987160398846333076402741020725428607539146320563341900517801695481641794931734887812244472518611941008835131375554904941816728642441721880263881656275398573336004110595994336004451093825257880276648144257909554842576325666768618659127051483898044159755020202230844231648171457820102308761368940062171591863696647566801150589395069179486179388110691357391119291194764571638424398506767609270156013876254738775551308216149178633110756769969326398363601998430563988679303503631101462125926182324329202305048739735551038806183963033839202244502187780634180139029250800165476559906039088069177185244075096351519581930854853494363752693142834726012863215569558934759037521733395698605355818133404046834587120394074492363546970801353967029689205641532705761785074369410421620028138597409944580394843717122378085916106254729128941850143373320113941923776992728498792167957048572084826211789537450995901605731914510330159219504779986163997351363430181270766361962564218296135571474141968251977845129239951809480276157790515052996245646768594108003196552477778443101848753683776930481208594934751495753635190836645103834811783830402008724954329435980183990961161442520808102461548343772159007474654697078956825591781021535644406013968931598445159332120198273787780746052798480631885339359255326405680475871392736171274390494442064001760465960097267419950111801944219947030763868082018915210696080337311479275450469180708663306830471771276993888434975203615083864030923677079665962407466530320588557954353589859477754208465854466213117417321363819376111745267198453771073659565949816596887595352725655305225867778743619699554527008888504312759094143302364295198309281704636367105770040823556263457878747852344823998469437807398003882103551971467793674394843979504226155553063937295775976121390828294776160906986615995244347407208254872747416379054120320437632649767578839449115948526175508148236435201449006844903755254950452871127759024402682896602399138122666872871694391424233569071672197485298549065028669385313900278006222810546594919496576773408717385262225853195847657410136500168835483562369923544012235969360060512297048480867065598283362546162498884058080568387476805924167214899254667697070427975947074439924019217135876892945577148244404837002827609384443667265579592053332863638211834362027746460871764560182369204997521426141119495091413659399395988849687325390545616898630962962774556931596271112913890687533714285816832655822915316734128890277343355493447886835534106128230021846623652602520308299055735996294121284036158487698284476721665060508430933235779163412598672524107411628555608874176483498207142090696390405828539182621622899826869597594938059048857536815235174514964661426965879562019976643810050615041800687076584704534771470059633072335779079437670642119611920582425444418641308896296689603339150013243279609922778353395891846625759931945266902421463659868461586505934071484008604030338552638224638158915811836335966437381856210405820132816569854031673556381630196805645873480396751605716449040168382782016031003260680326683960468558981291340311753680129125576890009703604992591452651397757729834685305855369363518247572333780440075047551435090756127219522846296067221062160746123771515371186885040037147862817884264613905805364750289469072392890947226362566212572056919773693290313934135875697822879124283350725027285956323478025040789612019789216413238743692991691397743472714978009964967297895391487270489581227501458990446238905869642949272303541293353238761892115645887644297136389781641322138439455803462655791314402914125011688519989228707998820333274588508787396201958428491699988096256663978461402160950597299728709612433045762531292681564329180373839481915146495291988536197668964987775347004098933337972715949051939180303124409381216360642720597499374300957961622047067461174085734109744287490240722240719200849118581815181242763385231140880919338699052473755179697915334836986077884734179237590002069645477898046544209616558245456575726010982927946212016035864590980012146110812974865267664937754855501638009363914403874704406807417307111491203955955647637863687252125866419965181552726826102491047161897279219963728814057729543718948300129206125582500880958648234350311584272504471441799240885831604436354263131199883815034474732739773265725829183742486825322133620191484736976267555076004784747507130263315279144246484583105426179273255959789950216364980568016721702398636422151384913678946966518959963698189528929209109158145580415830296387791786935412183004099868888870765056067578452348837144892995803139722692500263442393372937783612199894600460805192918157365071406052132436657117486518651095866553176699331817383034483252372392809606769052368514645582723843589209066695738354627801124291041420564745807139444790481665880981587834729983910310275228746947404696773821161510972471275609181821603213271154482879902209158099544671791023985775776007593706623699315285106178001622280013068950348282438059889742807809786337323753673875156399625002026889171560872056819803813215927133464986079783246988263250521724677323215850527677276908073951802063323920222893513074342659786059370251069263878950489395563219211666113551555981326905757540944016636894260092675520406533365539514595944303364729869725224613028739834973048301961869455565752979106778727754721134723081066651220266183702365900835311812752978241047417681200547328540882448388546683741423365059125994228687922948350772627145754704620061650940034891292603995543195783268320040354268718280682549652538315835325773079887414298463873930588432411167585453287548999719550230033835213264235652711070175079374880683078560332541460194332096770637493574153953300374788399099007025314629659804152645589779939487647541072485093192760329489791717413621378419810350684961640393871356109818785335064948225067534562645152529774032989275375616918174853755507337163704805113108209276849359945306955812100822853145418170553396237627676852364626589367737334280355878578128082111574306197915537124356435476888116318086833937758278931522464199549300169784479090007976647619878336146456619219757545283023899841128019862103849883015774370873841082808014473728766681903237096742894197093402433644581613180747722821337753759924689494885688725904871418146023764695995080138660434705943517498600905231831220139459184889075304017368699612543946672139967231403034936228627011018302110667511115697441309369448508843086392094696380055670063404787656103708240980486788426585055996477627529334517217948195455073849381133042385946444639016837234401990718808607747458465023324552057248971165150373546124839533550370716633546955833592208900331481109310503562524157515546073932444462024389516294507183976761698709746973277318500836328590628633813257734717679708600828636578477101424365570873713729405753606851996199014232615351912187818324038266010409932276803870251828268990501392874943375476282680559264438064463585291569837975102408599405715559620169061180606385304794627810116368837111501855642083240988162569805452419611080501075913425742311627438861264992086892643935521215084790616735964953417920335729931922987009457311999116978422688536651053937230734148336277659461082027507201354847990537719775211020802148813910728443483895833745239607913126446165738853182117046599366534312649590347241970089105720731051403100314200160783683427754926384781255572681147907979017869070658706347495144162525321346591354161159377354271127487844264010320913869535451417510456835940101622677546837090867791763832995134146804688956935286804536200975579858801075441759285242964102754439417498319758454369167154537583187985830646715342764626016617073652015024125094132891717472435772793642305284204915384313671868862378670068866990269549824223482653556886677643797575821735368172417852613962129235281465101903304020295980863199433281222029898589174133129412548255309686872331162921846782131002620265685696863338986031149068251518406535826202849203691108013004510658289976889398622302002987302026668239598343372148343594114186800944102423948059712951621528595803182583624588407389192471713075627136269742883335952005433740229716897756514385002397963122083229688685441518076875750485099198641600385192906490187818432826073803657941537508892247333091289023297839157016547098990259096337756258327711521976990127206542767363431443596338669837899069142731429877121028098135403899051819659025752871711017725535981091889718059690665346225255996108710602903850682610373659519036598094590387568023489581209837818456632847510122625581176153911397278786965663647603878330958458695212974136021230392623072758316201715327098091760294702138897544744047645354181384402323951927105008365411261449874776295766461315292730408262464670170879217673162155902352103397158595470580242283827027971494018602228872477449515019204840639089778470639368376384247027691843714011326399534905539160928436499378627081492308485158569104536572034214111838272419259960984403071513288390846139536707141210527220506102534051019402940749759574527174929539079385860638632271697588309131577548083427308450034582094375678511762382918133228500723956526732881809023821928341494144956554284260221379058861020041883391973178632547226069678634981468979548112924564919562757485899108511676602352010867035720624104191113989650805631017762544678994028211648920629930993950416269193632852505659071223682642913459750001143812662446396194029226124931396646008217838602422263402909882607071413101340225182292518114507453249611798278098090904059866888739465434533741529283527320684520374228670618018757744193084575684590083048668952181850546205836400727652064823160244792294576503502716102402360482760918929259141865443107973061585721689758130145997794166716858356701456279748137762877912019970773376009154885054854373491910724448878268507976727424749887750371695099645685066210523598133155973577096559064049995701376219792921438423190219340151337337146388569975602575260969199204167969823087835133893409721274136179671333180216106553351478401227180500056058996254410874291771059638614888712165342027420219400108982349163214334109664552364564157442547616280614994862262819794712099533265692883575707687423148256547621396657615870188608830873520634213818055080953871062643310979218340123910155873234497899286404340085664332440355206342945708350867459782220190720434918209816527415475561920532871637706698839126538932588300907859330973252798030071390325461116679061262209148495864246313746047429285121225840905884715319438431133107476804463295291014411788533608414724183078822879553889265428666448434674012601752783005323779504717394619894984126586178838997327667730925977236372511240936935715309934453343631595721100047780613195625664941902661002920527566702498156483747966409720938614287428218067177294446686422969898060104500552718204741935330365947648428619741881735991210918110517831717355723362048767977349797951642582972286108934350157998396311335671442077751224522159445888123539318317898427767907761957475125202725763459241059992691541859509460537709471536644233681603453774944782038031479945248541902415822547307801051092213830438887300974159589762439285168272417354024953352564978836174476519814621487379737335020138996317498404803141747331125357681087728205440275301579499212248228188315859903217642180857611795898305076310457939415167540135991645960889661120356360724099260713876870353530836023137161827587949437078802623545134999471005751616584083140181416096414848555695573048403239322052485420840917721499157966705053940949709130942603584424107356659675150594129765057268149531775654706723150313046360845483584572144624672088377626519460492307291085755171808704011926298599674373996670398429978562924491578367945605019382322891997842022914384619287710339811795327919640087064849999273641610192982828364419870228318235369601337295269640031432055042715716563003478017192464206518546075681103879480426458869192365485930336260644027694822097406835423424397801948531719202606336030218984998773957051431924279415742837146691717756536221538380395561258833625325561989888138394131519059407836144156978797339022026664366760566126034177238527338171700746543287622673577991734420640145957598560581198520436099074878620106330950503989497135317475818349436118333585257563921246465585146177331430099874708293493663050146531674574921491274225822088849460920942321143346282517160783182427482236806311975876268107227796387411914481207607961353984499878324587780855847079140358040322793321570138959365817735396784757753859198605907702571498519979291886207175540665044143674061959756902461075245136349660724935824938152862368659264139236327584459542351653026603370230664555840862306562445697110879197830061029764884611057424265295474176486625207870400490901790467103598496470060348647617110294936726514970098727032847990599934789281851306023690074930957379371813869516821395468129591464986234149183262075502638768248950956748676320264693455175510292818249839119646790918239352418715552522863268318942087699775967873611749834858899300898246311854478422410113101911458213306528058112412300535896490363692652436919364069404865160756328368948571924613377198958925336526525704820267206476980220983714151087480827271214552656540049463226137117556522557855785438620484397274512811246989303953851327557208738586136332845154980999121622176081942298329537528843084974815265989509596031707675498664537413763046783260728838516515898281905983662442409841239767543381995641388773390255619104043407092540587331227195150043907332570074022910892710639857026423394507230166256217803265052508088792039039830239056304093083018130172614570730839500184286195290125738124421806436611596997022276933679377048967651600229489255184171690301299072120129650133350627007142276635497411119992198196646987095666400665324210039471451781291000017803245406453689450147394974900566906224257146068056925494622647946704886636289350462532097847012868109030596278379131960109090781603725759888909156680494319319589059697362378318104294372533961007287257463297767480226244825115785530275005860141541908753722113152887672443495488939371268118235765079757375591862260954758793900685505379226352071301751998848581413739120823909552910494808863207734526534495606973773156538854783575430682309858090330634518463435242119359009917725193273291229892982399848033143071342088986768649183176648276455164850978318312757196668594096546739916866673803114287725605476721566676445897568217849958036979388003509182753585483735102380350966032255255659914155544417369194496215692433112650812479498775233971600989640432045163241566124325014550343166056753606443540198147107297747801155023230507765864292355729797955055139760232195070145877926441473921211871557593117881085673494674367757908697004868600761048553967400939668266925299485376913467099834065831062322136420749971036766488090636658182890886783654476560523996116874664350388545496579393366782999422123905754675789611320021463888751427704284851614103790853626728543299282619009124004269300184230897419472337188277076536459963443767507305972448909468437335025368601750831720395152360017879073227288852436370333004444092781290593453686631414701046593418834746892826299882363013060137669269882177988517212454145733784882303824671916659511051746324312790315608741488607081554831102132540133568685405588343101887088938761393732502340880796593820148048303164481123176201540243450258972177670052598768575291107994887617033468123201993231132192874341846612599870181746561179146118689268370252016529911989888749488292420616964965430894423463417530646262066320412705247904652222594748526298821801665103773915209569257176760513915129079083306308913138467076780713608298991899449053998432749402438897106017627516486543243504174682174047720535790729788190300647621795656051593785317469975436785042996228068593836058350652163718143758120359463898013538578900875386377999442527513971642857645585388150959986542599611112126352521835373754089383829940714767194795565653338103356092091651358796043175645214900210873745219407016607907421171463892092871847601609024923191104226715102906017895674642383409519835911424086426457110707485300762498022067363837798445988414775150716229321920310260500551509076978943194378348211223131719769687308328746838329398680193191653702663820034824649888828009953080219176380419759462730434237050498168626631463313819924499513504093368521326486221662614304563801554167029975670181079914598371430134003203497652952164385778342024804974604813565562787670014116764532765709159469878574710951707756175897195470146914052898762386344666075216918405152920370643416714344581014881245904108836676936963016122140430307962334187927807074145543096121950988033073232712251430746743792949084700011181578721760472562843687444029999034907235233647795614826072754304750733835794169520854118581414211633663318843613930460864044381203050087374740743035198125879556512101543796185401817683516395531429788921097933506442189220638279260170808596615134092310144550959805004970933341826034628222661365245786243689338287481808083116632140886018962793337969179670238926003951088492322226248791469952469448221322207162281876337541174407176440825635977749100498441131586645655216934794699385345895276480298615840226409999421000433420644939416446515860822749727905680465910580231998140418166646897107038158991782599052443794164767665313637038164955688078417197066690888187111892963554097089449350838086720874087385891678280578464638730133563290056081755657051868983518288538558189418761846431885541883532205586551491960840135051091304296438673726701769209462568404821695594224381628363176054907299398382901877071378648219596279582737284384930210765170111412097127189513677811336345225119432564060929092039892030311428693110299616289715741651353122650976566387254150218818945769606338265402520174627484331378659366835358927288944137222712232373031899762712187563590305524059334406804067165885499108922339510318522804003163077793139388788124263739945766173505780454864709713365612269105452680323351709465782235132634711977541566480012164761891538394454382707413571109880273825243581929452706387243028983887862373972699481019099564763398726779743818824078646963720613457502040438651404814540848637229480891874953336845383329185692611600136090526980748507788080971992207905493846449129981160445105124820157681342303697584597931352507649917267189783592046244135583539680204390112988082084879270599398452081514555277160455545091663910861465981010943648552995834158940501132217591891822740788585450573707541719807935765713476422566400785520271235964984181478091852475405178298598358719450900926456203221456793600320098036589140365924802970597042389340141784940898340588942082813754108453271947659401578491808798841278671288346973044453463300113407842446974676100521632523146960746179723522751888911366108472825044733387698808997882496174571432653895931989193809453735620069779566007329207375987877395334012242628246381176046655295493277601516544433987977965759642130364849538029733629734054095365660271566620956242040189725410026903088730688596758323634848608003136749337880469881081792434870555858612604433511134155068347210280388630798842486479599344269107098070530828950651392898724560947408991150499159326607612639813504186421268398792438281063901902442716735076462402457681752412977343770472115340861680417829499676506858062512747529950655953249881866111872216992147209556065475521976145504910999069756842367521533929735597122527571508766565966450271917178205293885109369447210327912997299789495953721796541482204684847107971331529242256581065964907688575121283151575700891568839077515923394970555715543961203428758061751886703983086783340810134816839437033921934197424316334687716755401028790595185546970244107483690998853159223576836050185875678557363745857714841063401334897590877749058334553977057953521359016826647738272508556557813548876359883200278577063164224046839516165716965633117711645412249718086216525530845080263561891326043596292009640323843546372129515947537029341355782056091034650314827936141065660345442082853716002311366813190919641028730492085004174370383374462810464620942776963785580934275787598784183334039966019354202671488261281948862553950438151533608881983528174947354252961305205889894745297898192765362302146492716408632029235659299419175245477614408430602237931856760648303943416218753627041474976139638429863915287083114593851766848536922452479133970185679661898100702047221233180454192307994392215089918339722129466485426691824780579878782653881338779174799929862716454333930424609112847414100761105420089712585366728363148608986343464569341024174867567648864999320167607691395117456163032737449804460907809064030467634944431558869897372150230602240876896280899677720082954009728621969369799908562863781892068734312434251912571665860848853313223426184326055836735173575594624744942409189135202074248917184402231826670207364676861018624736484927580147358881296157116453077773099187906102988862871493020467922752516710370807163943912374316792866821934446224765726040705459985968287895948181229609966449841895435505126974622222840558216017815638489324156294294102354724474406529827595650852308039881041767531095394508295668667009805968039723878307108887309916708399098666703021614657172247840852262333384257208168100733965346032149843206972663930918651492548013701038387054784958056923908090714701468031944118829167741001086760714636703460970165877479386198655725149160321261997199738034901648422675449125967393123979900748310553850686618304829064433556813925304490175567549772245865537013114885452145575276500340012894742742237558340321677426586029415028540595957341787349070980159085826530220465780692136863441823833585505804406907890487694695230168242268953030195038490457409477237858413080942448126386762545261790718566784949159447575258904329859715562539168706640500338691147025275287746323076394773662205021243171119766975540707333112675955811430766435083776613839374188211987281402430195925772339924977456535991737370482345525690174683861816059068502523687172292558204547178143199185807494916821191010614101754667530762028915463213429187226015691453233924467835360929239259563179924773642655885414299302894571429764367323222629236024015550305643202837051864402703207009413308930740789714593411354663062636587285718897700556917963920940895404949675776691668312826151980538685795163887456933961269736698722204498574265207857339345005521824959736483872781039461205445156379796120302916594765746993415432710140747457728926544229966008021914307516320121147122336288689110031419826976208116102372004620991321164326070691988680286409722667809023807403593542144991574619796835571481367714201028436827004103443187994214361381197705387057025157767500874535392877472019654504906215944723770565106196759999085694877759391491159420150509913677419640531912235392749755102752262125932903159292020632274315631639883559894769491278028259845083583679986203533520206854605592167865528357649815669532315858857238729888822191559448037870908916485672990721373860536043712143961691038569517616028475707074122088557445480386155492999601110900895293056150928346650288039831552918890865902817664933855036021130100426140461218562027290863585170570520775006033082951809061933503365733692688723114598640046622373484736298028779881021471019245854937487774531159628979254055017807474919647784067465527903931955658138966925439286116812702860780164924717579476900407138384187102292173351898940764080897143188308922163936596875379870142040037849130127501003618935528646480423801407266877894994702425251395683293667201267277468876032284869428730134997355463449841082903990246143112485288482555246814876273994271498908989640658846538277748820154989400559486508510846581978619330248608338007255035370575267261626271208957483857078107167903963214061147985758927316520665138741418399014152408069427164153124841465750736716210143728566150672804848209459012141153970570484622153904550532054514086490834816933675066285207085044761687047642470629251984218234056711931759773850712138435661612005412914870910999681331855034567552502739480560945533332426165004974273699236895955712032345816444506183980944636812010841892621331466567215994708198176866591488326823185460165541728834534167044930916637484656897676342312018983264383910341875841362419674579946492022219798345930565636927568493597776710931030414113073125395642486385014555007579436042665449474702259689851026633743830181532607046361041203506982910077402475233657584243492598067819610676612549893669474579320383480118918046239934402048605474005397291988706489083532738462542597815237701653934090663961614181369936262272422063733819843067752648038741771906134560708695128829421341889432614115598374198430965061807992482485995574739758659791783500162512479117682056611245687897954672289441161207246221821503611187196038675940463408153405209319548994528013639239204558207050232815917711079086385994326625268337083516221862790696351346100018927287897223967334211224885525379496233480501745645714169688636010053871749288214974692896253474032490659110794774699550166290271429846508839179574390119154423166333872790505489315733714008430333877117939845502881051522538785585885276786724654682252601394142126380025151105253620202850883368116711791314535182745826907936214338287363671478550254061831507426381713513107673935765006518722579662135584845251998140046504966442936944626432535342270481087358438651531657478369349438175618439389101920993392079359173023513361343336174093788943324363676621020575206404986003394762611773065979007173384350861190466728309191914054876182490354096036111717587384282953107129788741300678157290071872028525347373683052683882088519006528889920671141417561482180485903016126993630220042457303654506308344452127181404811064626550218334918087281343170005938945464777807178007554115944795663687523130280968563849766467416423979403809780240068223930439751487761855101468074924443130493684240279796638069701072185944469466756952631588382852626134002780565139541647267978472018739287343174319563427146861286870318680268051307783311333649705142434586194339937603831348919536165221985717340060262681642333152627532561526998660446742821000163078713356756417605706103653972440343499640755239144597000424882780700901824785204769730606818272868950111230402025965464639168826534406245138943800868582630992637073830478363038980860109948994125751256140153446384423708749095624413019599875638910465209667545877660086590395215269307249475934637655249995739813687046823835782221350227515627717439223995541345490143078065888871451328133707614850257685232363829331474280596688096462099842247620743942690027942917237589747893279856242472965908532159472053323694904340279662663074027313164322304712428965781608109046022568044881972470679934948937439150755051735578827367466301133651280628067638738944351073404778542844945810324021530268892670928927343216222886653080791725525366482531922248604671904011881497966918972383904899214499063783422472582974487571387163937660383531958221258389950053175670095529364850788840429000362324607985108094470411877669656985270022423654214840823074249659128990965088853630872543273215141598918162875678113070516256851055815126713593448321780267835089604725800542617103328951883638910324473716748320591787336509628297455969434624092556528166566428133690259307587404400234673137376777924867261026258403688081693860941830435421605123289943113775339106511731742579190387744275557746660304066200990406304260514920298704318460132738950909981527030643369446904100445712022354511710113287564039593702423317102983934900820727390364959796732460701174416574343254996117806917646759647468797915155727815162473060583345263648512898167784698088189911321003939555111869683602326765781946083927775887735609407559829177542808611454330139500455246551242910049113728859660686718953557118903733300649089756833516500494824375020133685157284996369674642591495360373941154960982344314351093202218097093597803295497595988950811043501360621642003040542535251820091558762332175442175880859419299401661600036343910153400940398613816141852965918958274686221760040075402240523491448741154144506035042563623296960365972082364925594214765207713745747951220023253307577273544066672546063855660020024685704460037275403923296087432532813924489275962636999746081980307612158694436812543464760058234517098658868757896434602270548007083790041330514172192659415761568791150191340297485850517148608173156097398981871178896399754385938514812712285659202786935286076096100145004686282143308100288003423799080316038850406082976294182308278380860352272498102367705906046463477309524024902511871798642433919025304589573203908585078719522550177703765216266421852819817405073400266637251528093405208116710112696986779372259856933495194326932012590242307651827771352718844725327780205511448358644478230115471184418352293251149325726988617491226032840207277788433002018243512889526264348504018011766921894003013846230392559573128981537243816953077315894785564602548901233598445260305842110783664177049843804227277561814636149708220529789404684196421051959529763442794493800876237527458736540436860323925681203968153978062031844117517340635496464494688643129005659923971039802605527191344412176493157670125023282158682913399170943472186019906149947270419372232448113657773647843342022599969627985529882348358134519821814256759243498863133157643554985220161874700944848624572901415455918948887077304374958672079248383857434010982500628961660799710944183699874784439567679292388862416024436902715465276002249393490369054716744829657708307392421001528327233796093569239903388244656012980079191764303142021942373993964374442508813987203110473304468399440629881969793719757735325419364999703329803095057301944905176813411652445359329905152911986147095703537452655787424518568889601351304465467027075880994609033018356953660132791718794449541015603436922864802222470447675869609032209684225636134056348368297174343949134503501545627121130706912819682638673322131840444414977037384509444617548305453689936068205803889877247411952389292421637467845624985427985031449329953315855430027667154026296265166958091460788101747143069917441998658473290401655356658576263080502414955884775334898523646722389341636565324794364510059025225863213646412584998467961618435523403523247211105212266360915736027130213294482089766141037807091936558026221817849571220758511904228780008745928677362763323009690437803137089525207666717572718299861439365551183716692237254194667980821666681110395660439337503728075545148480681660436746789432640453711566586375053151208127132754920530682220005256929850143088587918383385888272261667756834554600420387321665037563085408359999738344203187925351510988383385390032909658740548739885297296837997229366012923123071602055097339309360503459039551443505307799861679247161443270747624508513019789738699270993325789524645547506763668264645271525522543338805354836273916262392529667664587548946734475772733560138382737290053938966565922305985710484827743980497205838211155382009892096613694689317719911147471703733748269810596270612913139960608821877214852557889824960571511974099550713992866920154565838343101426030808586884932719229841589509264357183140924710470518451287586998841092873590287431203934376279851641103244122629263110011096914955445030945335769214098033156765480642125772776756252536621018085063681829579287160839823402147203536259820636455200852312805800326716866834481511046373704849973483990721027211903580088432422211643344450800225977952817971722699732374386451794698445764806394894918334385251804287869326327529024478904759379404285984527499222779721000238911215489383823913828729899317311947617390611504478279287691102376475502522571732194818147370630130884178898195981629995410833902444106927067375959569971195359309384961102865740765063676944908930185586498703728972723433457224927891532609223247702287726296424917698080302782362172393798854005036257155488753610089011456864982824376781505124828205504920676147252714652189663004968857959976775225939740603051102898580396262188197128217051926322308951746815864772494006634762523998541731960261610369241957159776019716949023993287274397465880436565936496880168528639775155224759997649418595026804050064096984351130737971104411979180057464654930780215212529810087314060469473565906468924181483912636000073624710556481982589380887457645362774299376813587654191797357229612700089296847136964936836789635251823038913103992633758596525796164964499089095524355086589025530278599077553259012730600235531124137228833954640486577783316157682986151786509241374742372088701308805439522592788530239430921659564909840770609594261296282479677881113353326295287479754098788355667879004291954515767441486784044823639223350956600727547939140169710723185824412798923388200237794063975753657251625013351636726443591597747506119257130162300909373451004745276180163807096773700943768059667142294135896008247553832459748039320607960449050176920705851236726198458956830937968062543402509574621659518879755057796549195504949286712332513375567387160573563800289429902488512188012405686792361892475560482487495532826387314646416420598853851477433433172591297317119740004264987222438106142110327499241363713375474324062966725181565791386437025620243039647904890050442985262446575662362188208540949423685057327273776228365529386421319461785260626049990625479688474585304413059373947277930775350781935576273441069215589407275736285969449663889092158513270610171061497976205385708528120957527632949857667771947593521524216768778681734370556742374024365096351799715330205714311146401358640282902451517326107671692022525006337624310741617874762431101802901331809722311238240044665270255791343338648233847824083641509142630321466554736617596256169665943312066598512767046145043556505676323192723803451402535421280961853640658606595686500900542984050046093548530620626770476584564323035557962139704012841450715513295891545516692865827838940339152992238823329025388857260584924330742050480774965818966106091810585454197932480203796556828039992614596920546380587713649031487744048091127428165482419174572111024497423161561692475479084730751663266098195237956764638767882534315088220817956674771470680163510596475683188983249712046092085569971337574144650469347830224327100384214768793221424857135656462834010324241282632765420816089448070169154954190788990858389973870706701541666533841958350716971451934192037445743820510407777297327360839324163745628589224133765386367495504954305663770843450836517700464664638153286744482262904960184686050368834407760844823970025677621323572137726913923930959252379422056676983704392607890348267373475452833285765991776101256955535019262055179939802157103124143114530230698589870103035894212885231515064441420652849534936220244215603285094454454628741407401845085733373435077630594261225019252553251299186342147658214038307979527387376105273026392418224264154215090646009883184415256430726001468614601161949130240366938247501714189422592020806707745491575953845423781388608702178664247860286824553825706070078528273322265105633445664908743615822952264506909608316956172605265253491502070413802190340057017883118312374199817868723882510105974751202349065416840157335014317837335248193861982871799710861170481956079258642819561977024967004211000953800473880392004724546787309062927968600542682022838886684029083133520768865052779186562901289213124031511478404650007571261779711587696003625917889958455320352877641847839786316650707375096690883613167391476683106804830017611360594125583902618497547666962172853403585921903452376715116431337260067105594143593321358059343196515463231783380908185782331957168023225636454354657396538915851269617268356652954529933665361650739802987340183886461244163651746666698938924827378264542631427203865011755309707615587334543102676089168151624212648705807750635927882007357177805690888160798433456597061009242403609841782625417202152788307191579766742885145058773813376144840008391264395689171356932276133528160479732561164800243647813394194939199814446345033897730483079017221897876114152675849137827671364048145222417009763802459275416672698590142034111588045151837936470769448992165195823326382816833363255130234263516944400844577342648919320741277155095643226103868910385700958521921628484184898827326865547042366752750752984312290873054198395044089420214166780821968098279767077492898497124238809335414495108294256297327826692300410116180647868542163393012745589223242478674916076157695411688302134542171596584609084801971964948722854229249133226957718991065219268235209734285293627988609211679170762948584749614997835983430872007004771021856897441261723109103558622624994683902497802482310610773890804303172905984770452243032100330495756965955759098089718773551327482963398864571877846910640355644896125273514486823105300277818843106768143634883686881519793591948058645183785865973102712078058781768283476422045804174854652725579259321275422093550670915217460741863450104795444847280432287590427853279892586453224298523386332572078549434410071304918160075095719817838095600028747582755714595912142379824103442011990429800083484667984779173667633916755981233073604499817833000271462079471539626074240190517782696828793073342737263554559682051321475779688516552157856382150610037574421068786981759087972310547187859794509341635317309713427557368480465493684608589327951938780548353518384579551278889710753852648125918197952271446731488978306681441294809043876475417203288367931539487319278428206140837821111238551859257372026423446466169852063384534060085526687169998825468531836845011643354224246766319745613460084963085605745373590303320585846047421171983158007289300135611575620717423148933047964474680649638129316429235235811390296699494680014506883857295049880031742947556236767437649942436129590188781636342231949340725849731738971847387427493550985064726969684412652067805021942042876107362888938588503873245685564388165788462809886618203203578230333800993059130072333413234509602597374605200435709986002981455095784628320015135735925460273515967564416365301122647127864032448240077379969176466506023873396656356793403983565680722196540488511932248820542798091297110077004500227754612066171669155913980976565982271696317371323802330818946438128134866452495995445735996027340374953198103413735458599614954983609176126285395307873845707594632930371488225193038171751154383500267089958265452638110372525488774392601354060252214549198169957987371645351325509905208796779944078225308077581699560271112775854486844027605293945142888002909538028485411012261577841491581407749998414962922401988913083178596669153882290099469474502478449025713673569726397928304032860634546819859014808677414089210890401057657503110419221614941874314587847613671477391830535314383226695453832992239404561336060178214118865092922079294966409121600359051153880564921627054464191236518908206532775891997389222939012002682322223697736723300393821723674653052650743914068309474732126032088400989901480267801994826858553514806570539140057693454713673203875772451306975960605679539003726584611384511323064583372505805316793447259943055217500853177863633981947217743849839416646214485505188770661689027887474197775072785946167848196488792383924297012302195264384876917116929419136764539897530221318944274689864451195233611358086995256573849951322723448589323113867978311951784387713506482307870482998034471550701418820531041426682294816008160950246823597889332394676950155947575022359260204247226384941003113670440974536586103080120593089275276107285263942575292843621863776425354278189930648006656963672751616971819907226019375711689259479744761248762888217986501367475075006383234798839649774004884123575666865716142158311084736091393450002732005130798128157022256169065526833030836656381413470070819422166484822104159343491908204056408595224038800378073492616503002317179993148259291180037747446595015659399813862386928690626523820612336236745964072098350770110829907902806903410917509635731456182319044477049548661871606922803035013735952241233169641834879908074808040868998221727551316195878096775216539898309620348940936838565394211961230810211034710517424164346551719207792771385295060267518642439692655367233447841006814559511490367828388175705353800389460027690705631270232301414130663168017467973350972541462609599578815941072780659665422853016083098094827980877799541513306341851977872303012663922539995594139496211004195460782520674425080328818050339389218756524445169955413764778416716373075584797233865939263522401822608031692767084682690712884061919749117656286999690849707308233756477976874846675305269192985079280366818214376796073050873808083014464297598254170078643973049610834186196966195963220184035916356341184358185982051413631915309125174406624049390924513588519076270688936627099055946468937668006920468283630462501640210274379178544802485128618216125121145700035734674069253679036890950259239891548171622541825245208060039060040615540589290773206873095800617499719203647120978841924466670920444974987482408865905266935889487752575164013543674237920145307220235357683454468120686595139327263559276996599573777441103790910715683586584656220858621071395493545391225673280629527519007549409048963943888064254557072622115936312439491645972564910184257540822004722888846634512803044831901784007401167647739561543647139523558199976935901084177521973362030832625761659684119366145853311420753211952927669717042067051859842499762834604123163908122790890056023914727625472304465613738919348291198454930609446294509615911536755252862610591271212204144684177497818630501112974003941119350818908357333290551144074304444675853303908198677458587064667531058733204448664381954737084809840190145711080151111444662950746065233051734594525772575893078637007195767928495422023913726568259931838496357371745540503873578054083223542866825098340742461917212410659284052811166200923282960301721363849285104773585298392087098926316984358857422063744579956105414437052488223358026756746099254402277684009359318177750785767334532073118530837973695738202460474500960452405560064156835540468641810641559159869257448903034714608636868420714152951953996888639944162985012621982654789950631292147960564718499931339244495297288337833552253066560811391115575999790713828924183735740905193241180832753210575834434078628766429488113359530078115142595782796409283781276316746885253232980285679247320453209385421015807147401809479461160486277678673437757511437592333049254994572062768423364394693270173361084440187565356931607880312701567743292110954603746698646305896432996195799083916388510735836553973586858039475629404022863520963472170394504703852571085313362447545420010525967121783578746333594165923235625703933128018819799348769808508853873790156788859249599338041045070956681978068909791304753127014469119908171380579382353672715797874399564789154906407693819236783667232181905821363990349731439811967421740486606919650658688315134834018768134679042643955738590065483758071528181289510741440960450170439654853590538278043481358307724451600378609737374314721794026495307729429552473216428585864193133904622555731428767902253344787868856379770932207047543824471370721081728072621619220345167663856985421460029371066131784467434949460342745909707794025711988737531399123813260009563206368236285830789874153227446212759179354631214921585631006889095807780605937282837406604517338147569406689687907446437289032404571746893162279915260767008749579463655298108006056320535932346149132211508186917115500655666554774549787559290607422761924901312867775801342108401628830872921226157765095221015080446637440329782265047958483949290880913783491105270189158666597815395224336302038194307797221007492952919014175775251699297714793500137189964488911520647362966761218218393084899260246004189915466997385219675672930964342169889806341929533111660152026890675526392510810172592947411597057246702083623791445765730763105504694796613415062949874761664184570782385557437047474057201870953392723123250003365765441821501626602351718472672153312107509640158510189813774914265452998666920870889036949102304930463034175089835146799025697287651150445102675835608349627733345414395387961968611228627183777026264999954378975661863845224244739492492150548510122167075552405102103873300284593613184584427867338231426176973563642708421202831884367381928347131950871731221910120316721141109395899922884674801741656760993787819687707634475970187870115363507042680620343222196248189679109056279926872063157344359507897852923069671951104333055667838495384096125277958389105487968484862086797174930084521443594253462001124108426656675868978082776276840134698294192958020330574004749139789710591226422104073255789131404774670952163373109546710714788243474697322536208971843414016895152093293728957961799009745313228076318182899433189695689530472370399538905839657483550150819470100336494607541568093909482754499811810031151431124371620602850821167716052901503038399817787498619635004890805220896906827949155038157223974665114420407121328005606536244601968573857325813809450794347406603605435911681038547455413901005210856826964174364592697573011123142761569164064382930414419125809700150147626045084302994739777044340602558483155183709862104371824449093244999094123969680727355749909747543929025579847970934821903280850591023318505659588569341036975217879661677104230494235235108630072812871321479327804020664614262300785614084032598348925571208511898538223851362097287919518774650641861010501100015239214019881155010333190671539149661273638135349062018988011860626488814169435292751302012074448506939497156569637005281044364579654008558044162484257185448372086643338665752522858109482892172578391581914769136460326844762022558337884307066268201365625670604291660967399373963337255981754023690188353530079901593967249287745723100178133888506294267768452361064262085472070806053673762684766876846210436566255254577155820968489551256042709483869900453706023638867136791042491149199630147564672600279406939362920852680415939165569428310137017215002461341255538803212017480246619940571602598114205384973309909585864771311219005778516821354656769254369586839553959226979119815105678624278738635596963515965257801008877751613948594765302893365917624022970657836985360711004953475675722840793387469639698205275488541386380912804655679578673802477962455807493572388749181720103008919889932379533927562492951430639175417565236205655375337478403547514349918016962421277305751753172714089928417997105437997664693048399857656970388916180268894828664983964738224030523683857879176549873616284716015227511055535642270930341290634121405037470653876110440576312776776879558283969360687974929924730557570145071286487760372167136663996479516812181508956359322145080853486264524413804231937636533552748353332155834128888664778013962249460243584302230591757415527544778471665151580601596831434699386022411670339610331434441421523781212705290041529683283581427457205480763417399768540321142787027099465821456696142049358600517832030749599849994536775963901544332983729598770215879840453042417236885395654311324912800166886143213359018145988153451156496930872268799815440163790362584744940276762231405838302463232783555897049122876375516099352286387594826470923454896604043955282969349632732961945392634125404435830649127279699414425771537866021215962838480080776486006844211951284281111860656338162758796685046790939303024381941471345044461099623814170804588938597963438244761200943147501391451102903534584642339866533775034032887511784456217019070082687537123489425484526795290596728991141621687172072527895413036625313121616871840029084914010882474192903310039585332809030568981619595841464035008818383544776616176408343356576282916036527855053342920173444239999129821560656392330968312326061134984745904753481757247935228998935009434950753963734828911547110172984407907116384882298841792185428317498575601644356222646122594640283086477663873594598842450470990867877167500913930038211751981118425649944996192501939380472533739945933377312525246306404342992510063627726440425221293353639838887125586502821483935195378291219232513295504794270774798175730690981398175836426749156756380340241635030089974588466445595105263773038875334873440217725854816570326003356204904177355790973475984394759958454297654636741210753515070138512126171017094388163868180032534456078011389315457232587631687591414183933656822296246600914620551459783379115646479266635436278233025485821978207099747310916035110647009748740007315222876647396291277862184468355500202043071914200728462790183186397870257027722687823910369724454864110588891669111059220294449329436270354133098805268800879346170956304846028827660119070894073002820066435986694309912883866952379298666281788984272697048886044737676094202615377177917909677512787197471044080915599067919077234172080808599042860045454567514227713847378234110053118244306323887152844086268756605069723478477362196202376584411033721590438118946982931306928611598564531398931399489998334044009242283791251755521746218912876051394689884726771874665047852706643625748319169084915371258805414540363267478695396491037240057461302202931995031019877506028802379750025521574996446424533498859159093695439580845280450049366398305637822541056262416832173011323746636508183215513904980193919962514820348523360352029798922437731111500916585701032600353644447517742469891589357347056587514976256326803969581696949039759946106397634323054227213087624668573467046062234937841991983801309939280236522741919860542642497117922820503705375874271366672714855309460807796290809358385465468349840363555216845703430350063410235028534877663530471250688440872326675905655793347845911332126078901928698099359636775783128957269704288379935513039269512405891998449060463192776299056460394768756527761889878075082021154853642537919707547290711263442813605992811917357099215255551980276056037180905189020718577350555232713913962501594272539302371864450176617835950053674245283533462966004008468072728533180835272486343316020649687387392161609559277707472091863836191285755719394844572279339098413065940599965126384799973332898272447135236300117319458797298546955749664148606783193641212157264534076580706689602531854014782487479728063120191667380722377639208723247542101321740219317052468831195661303656707030521912378617793925690762722384770505239270622228374942381430610344037798238210887741439631390151070820312754566079546433713534599280628719694697255592487623405608599760254233805356029198699095607613736827707044286670464122474056996749209859838361282936506774498024522167809570099379281101073932308678935464775565148775074794665008756926950491325561264280600598839499515516257640827798160572755744396120181474978004513217821297863743751099747673376313134440669322169897906481415224596057960363749293853905804580982603556819528939522166957415642204303664372299146967604386441942130136759001693242269349130492467027077824818455231134611034534892733150600012302853833423036382471550255513687456321669366560444146424555698182319274119450827968870469417670296601950745024985165298061868054638134752514384332789919960927108581220089357662225697993598699221499254647176821012765199595978247005014221747545861942960392394590928828418146877484191361418987382812648355343241016964934655262953455634617083351095016806940228675056776344571474132177751673062077821877064922444475208280009834255704577849191916884176771786886303321268954919764573940753700988371400487025429260329638779287543770695604373399901002948526381500326289972855113010369858193267448850522284219180545540822774752760746538989050643747981698347177749076103760062828906194576396781299288020027596729449861547706520473219541890296708583780605695026885991520228616831779318138111337008466482823164294019403501667489299392408705756479425131999586127833097352653843359384167524753096842469778191862434377111559925282827313295136978782140742545163126864523275780821743915421468894359097731815658022057964044194212253701479918927885379033777432873409551174137835201919791527965001393868848556937474821612927167295727856384738632469385840529246749040224134389518832380107931460183429162163319657370015979427390045000638416513145176559085970026470032213022198522497413915779529879290963497289851176018113744692209425310313138344961355993181788354416471450387855471665976982467247974403116606061989122504156909044764662457128363820616674275647027759689746278418105147670135804259038575306203657293784016491669482713592856927354306769178867000492202732316264040702550279562093496216227338619486811060844935895601787085883133844172887638909315374072400072802532562764284026486565019686979744304259225849580474179227925340055252474495023408392656172390930942300609366303234802021086788680896591816847927368330143271469568445704936542127385236419762748941760376029752016153593894487622023573913546834272594628295090576514319420959551607261274135359833191841235784196421342887256687389708438311410465856003768822032463086565154107992964690465777065237950534596024614940206156054484306437872994525822626360919700634234569581210810188042948513682867398521325345198519868065279201617538965618411825224252968934634983238786265738322488214671822123921614521633252756700170428939905246548258778512412518561257886894555316654975464304753503190355902321438128581792753398401246082389071705460583596058677199021834652830571868277510762506653709452988830211962730293185889270847570148568998529665057338471038620599638943209413359577964476992214153786551124648537943925407362192752468482382849973125718645765551508695824151349798157017437827336637993430650906064980929838630333539425021822566381273209743546622445887643499407355388635877067206336811113229422983654052688215612702459628857235482642183145461433191254583311812559791473648401291468622198673758189771951882327852080933278280528503438813801952845546505139324690269115602676843585443935076285667261266508394535898309320803700107893243658291550801322381298871464809135644029247125244100245252544508023246157822063586871671105569328543801624683461967492375522775131051001267760576438799157199485970651760213891464063173502233846434583948354350279819027287973032028508468840198759498703781461796686462875466703998963042483342254904924467013293924725832362315311997123989446217658842719338254666216103821400699023027742644385714175745879439789795948158049729059777726218748279191542139015671040424987960383839873080715504253039320113817262336691434188476626755032586344926729416355440616416058126006897850489024654095367384485080441994812315226437778358928010770528723579813191764225440790262977522329943162440568228240489795858620420959030167530770098412550414395173705772057555508175512601790181200735133417723724762208120008604407951239514265989643403764245060829599666156088903857106846402914127173765715134887944642689107694108953101190999299956309309050352227772332629147014017864451463531187383784955438825008569273087839474528749201768864473117831041101991600631498818929990610152778168708421621381839557079184051198067597769599875313775772688789108864591654468983133474235479298051910921514683071632385535103872718754467670829529749053459537652593192516594514793368506381679734786636883270789543959667729832709668006279053959998294577731682383260738801806541025146172162886788358706619093677297966422255933690824586710321214530157614065638488320462046551157310033106271776366327253551051140113729479742423417996595373489421421400236584408113388319761752550589009245453137756058842247628652387606272469903021267047078094512414716294955702704018998666632017984230055070084407533279625699917718765426525703312549513970864944719145272944883050946018415295562514740409525798009901463383797769021293940853102488561567350606338634923684489507528233401007520258283062071137190594267815521410921860570542096103071329372555368225794735587462567776516453310929822876028379225930251318516581337706052092108657561743012334289084699223497351511631421745254267139789248050025172232090821245741107761163535916860465237641185208310455600513909589498730970708723111425470231216733203810854809201787391487934488837268545689214877830390016547741762281260580728355415331369007931396300063769702007625350507261233441510111428070936819402236989991308247424654012701940113222999932048332874671355383494579635836899288623290439722584493817107725905803949716259506636916042428812825483869715966530554742543545597343320165017471694261408641380380466595322388060995968930493981398914417781080440177680412631187307038032840781365152378659505510087403583849737817232100166230527219947879907436057423140992833458661530302659108802848943882627192860592688546252611811506554314391860473863832014952014199240165101739767409226043254842945659258581776899771652026749864198907493364258824303008229914088423037033492000321094764235749370825153883596128554028571511999684121309513297601060622384467853304303605283324594771517521109132184692968901359920399067517466637717540893162635269159223166758528381513309573351829442340194857599928875715896113735250073352994468645177277810729355506620011166278640684583474212201535461842745627781395631003503800901852220399726275905468272699143753600658655126345316534223994033256987619903270018293229045380216469805315530988295337618967309534457130377128599254581802272613746556905822595786920989804611674009391732335754451424181559427904164840501217527511162224841376487939528948768911062083467875763236881995065081723493681850049201395396931150450840631833169795650011516330083782711074977286046415193311497771862005817211835717658891646355701844887330656741216711045991852850612219680110732254829518774076669979602303847200725332760059467869526790514319525735477141111573062837948717238799010110737197033795111387902442285766119513470938240551686729869870945885528098965550905005839479776816362135995896454669367741167952365593301962543171459828163763773483041585352887106282009286734513178670579055862422877697703803358671896644007604521050778010902637401436327800462862893243121698489569692681269965570096116297810488083332264011584449865788691989155116498775950082011654710794954761627253597443140698950143479155214870180524406888053182445054861510557508245833483060153051527141034013461587176204932737682281179363822377263676950899606005764576074349083808672495330340119364736422164031877350174262838309181603371305308194700548145666334229294394379129613611797429979597898222018382043393751513900818795675780849881967116995779814800468611110202998559769628419388687612327451524627733080446573369546365493840400819777609706639132376542539186868203566854276619326843902885919967881472483502319505887747564159106418991240691253094163125619541095435308814642343408331609704950449309811673539831293735539341187320088670867106762928026623131366609838364307561568243371003247612866087421391893567521305950626336204982646550082066501877463331840481096537269399354992508460932223638918187900587249238610783215779790260035562226643917254444606289329459454295831001567300550754372474262118465163712077024599682774758902127077460823281087774656437622050892211762862594923337322306799176150246435991356381620607408584397425133159389863383102724114385075320805389733801159125087956234072913945303862707068178014681947724028939617221644175848630204516488795837610929850676053716776401041227878179550018233197260574617611883779468454732039891838117019778662208080181016483471431403292545031424952200821114330744664013624225319259875091575121739132432965349401209539286534708463158821504955168014428706494848315638437272630481694795792035566844577863829722889535344118520610069545041770445474492597086698863609934470061993886472734499279127222316585283623292536482593421073552499528548442312732204674710780642436699584238528637432273244201828343973400032241859019238030590058722292896105514993883061413500649369104739021291543977494536051080648720801311904902231107072307706242833919528937220911487783908790449596315222989682708220530489656016395945586075535222221595738349596092864920413661120498768165209416326912589404845282229036070277275509104234760715102608470372049953307356616520160803158835638796224312089007094192173450477878774094071468706792259425905227518180949282295331821489040420843933377285890253665084263277258143948601959376487549244711520859661665883085955336160717058520424797750579059521204948991346273733393517973537490955401805020862425294715561008799154147069653545729992240709325803842553897467763514808951876988364635894254942842207312036451005027160780398336131700022763357322058050472099901287776893533759857416645852007639216878048573675392949503384098229397970658314255553928295919229698068777227966397293907779082178517324761087355641896708494182323029269132494491340375769778800008521206899488519501187042430819704776776564770516660073820649884857171048322723457119259180652711670489692290985807515362751709550528429039224365004824880744813185743646566984452180536664675483798735679164220132961903517086414797337157754106151617424044495799580315561115791030873134720990353018949994658219299219647710568822829861410142019463905423285844381712408363322656243251238385947763567301206764410850147539814463428593104949686936382640046416259646951490319611104854477591917065843927067602400311452127176470833320094175688738759477706324099809206846305347743324194522002176300046622820238082778041977949338939188985224408550686669098726150999343275594219513614894603275485400282474638185574303867224848145712041289402200141526884770962461222114999228876439191910899400076450042673636033595644644270818978527417707745133958409576044621143276559892571212464070497606068894752177888846753657731308884831704130847083028117792594667012087718412865941990187787509632002811023755143635612304865546153298828299904617451774858147760123133434173138771090557709367065736550203175790043067229303144502419919774280967622124251992863274025837040075297281743548041063934506373267506843468818388748332354112166341880424123303403490967577941653779084125868798288610323527885733215533815198830588045853153469043130898096369406641813704154859314966671159813089944082545715355230065250822849617287239674650825190045324558235748687720066747949712163602820852354302783865361171124532148648794241321331700852315433727746076806637669961889512288049108911176595515736498473886069524716684752375144641521336548924672761225853936148416514385818691738416754348278131766314291169378556461817166096634029127205365302544476383065335504511464152247086512121312900999001968151695921524303910229496964390635521990651394321630365345397471515735014459156097003147953738250722286432679118022285454450510066868382649729074813258480871020887495051426964293739258136771841690654521561087615737802053527958004468491361369174682537172803536784350361890124577775833864677004871875515418115037141294549114272696877208861952903110006521480604793894304261211250474636222567539347681922221920063516876682582150682798801607357061108055578616867049474864042027000614400977944187614785497645823956249805444955125709106402708323908144600925117778765206380393713571176447632922162141265648373947107451322905073720554233262086352301211192300993282164753643692379063250335682531355433034789629153304492311538091995755532944987052801903351167407527636655981472206121804385730030729787921735685000125623318067425988724010996896981385239730619195592833694861190323949253594415836595816138391218541195151992655070437222451106336712668962567275866773882387907913364509386511722013962859447865442962183266784517002027818841924009364903662723574437287448563310872878958458482352508201562742207923922033920450828194622615291844607061975822852133877969632367864013313041099556453747740645777576849035137916732532182650044015006462416364046311782779660535756676037161374420266916172189142991639230484973825428942219985454786894825670545771208306069664015175470113984382899319336352288857298115482869135960324285116362192220766798190063884048427152608659071553704971859335226057118104150457934735396327639988723256063689608410315441364214878261192854183849957430442768683851459149189187424006619028314479859226445963347995310286302780183115008930007657628088707768885566711361061861689962499638799370291136195006215509591002663942980584231778964965066275652978344151497338825523633644652036220132162803213500493619597507026917278323701383715764323028881013296332873938245738746245096895082238330844176192408476051027246860191447430391510803777481923871052911279590551749882293907551274408036416932829212553780088491928702854675425466697357397053653624540072223989562013067604811339156349727760567144964090640451148094824868511796216404428068971957629753562236181688850027285694336528800131844121214112389838519527851194814679016652840688382186958683066129590397745990561487036122898098411382006158591424712862298600417189064530100820327940885803857608905122698760086424606482694850486186296517221848751835565288146631275237687067466752691724416729735456956733166771849284394313859957738504850610973138057829209449944463239430606875958119003860261904921098398719699336474633114066294511147152055694804027987358243091859738263977134041141601662377526935772236147756347905552752166482414609981486281328766311875241074174329874362753850457777425420575766273931569840438567729143837835901823517368770880480343742863236659074522885395228357786813472195376605008468619896263300503309360409978222914815147525771837952813848915680491921812383604122713582961164972471080261254592059524865114227833911564975466627448671852187561816294711964713806687771536085417869418386146607485365395525809016966237780000655836818847197698244458732298445308869902993378877952657197280899159793941934367522718663437829079368244403206246396018669904972319031502436250408130553533830653161092378952733391436979259369072869740426234042475870337917002214925834352410157186453983478454517589224123613673529136260171215544108493033216442300759697110588546958695711726320379851371929401448711950153715879163321253830793896944127468922739861011837208514286931971502864690987328481720738738152015911637945123010101966662036445412956291903554810519125343871316001524124785504522454804170858009744164360840375963801883860748953526626950353281648096816794488017615939929356306431457111483516674756546277594216725378229613379520048290422881659995670507607348704290859084996849095294910463268517636522463170134879989376887798420929485129627852301598830153361268342991776614639254947705193020500310556054936776339163283953895578869977697143135446101324961890191705701201820667021165776654146051368534345117330284374109752675183557592471851518890916898948657604164533212417028081148467590773013272547946094155097286789671879618012204433502968796219644048327886379960409838825362938230395839698373949610171235821842177439742703646911258107515945266355464675143678868797822902295599477157643067126525971855615110357476610420964178412476830158403397936011211878112008231745037140757004092710837435401089199345949837567061274097176992139541109521012508398136549562045150243668431133989738587361130651247452423215425715091709831141400860264890539370712774412440669076831670854240573003611786905243232054426823568650032703030650150774804738700240267292414480020515306773270191114548987396349292489206289712904783044926853800283148753581059970561483806927373009686610988863789029557324737732183929682372659640999994766795576053071821618693945992778164452536969658122450093564589944321917279168676398557892539969660988248722705869024920017849027121486353955328059468288469933578566896852991438034105283369383898081065416312507494946094474088864690836521657106852902937901140010171041875820439261982433726156111356858417307628652063100312749714469978191038819926090166461797540691029725658474690450719252449465833527641746399517886169056732659316334124585451782580824490071885017851428871766720831159955592926726211782561190445950693489617572283250711475204412767765750508689367098033666867867986680958545163564504567000982821304671244237580255335849496783455027631075616185676110242006229086221786801124345915647756613627310796173252346814090700110500979458634572441902662005773671790461232744208537976097262686877009464227258685007163645957236063816338474943499752065431904882687582535051569107427134586841794569558271770980275281686202031319544359749164686549228763080466621431318534173986503522645190258054517242379319713354798944313018430240118980856828428763561151135925450517590066090293175341972370373166267631045526770572841082661953953967680235004676392322381988953904099269167859156689219764620537138695769799990888413176891511374346270237557613560235953212929513393306880410662258095597530152275907114307261209980406112049595447025290224582981032604603666107907846145624771807212209453782243796089208478369881533998578438358476233111145529449931635895654517074349410086456375682365245225528902797171999867299638162137834713253882980766128714625534783529714630139379788432298529584543951967680386477081199962158170809443989580382507071135827079833478098566103008092483633401066437851717050086728560572566582490063038166592502760359401420724325335032907153406437209910495544172192961728518931878766754091358771099753068394228329617084806583434971118140092278253026159348139475517360355840894266447493309584619986206812924842999006904953095601991673592700342277058077772579429891924835075000262535753826874832363422767248087114413930325764451626363014157737299135855264761831061547505505435003978879153453277021596044566357030677066100192017932140171479697167384697333397070560585989228309253129526494279536183676079287994017708601760847530393479112478861239694532982336275032741764624321782050586312100328081025353090522811213357690673482789377192908366864035028279947062486247688670440208595385347241370469282593722752895964155974991677578726870096143793390912193869911363019731897109456037301611109766624424400181780650555724623398592568655386116826127043340700951800886897139894921319480765456160954465122643149669349697436169839616874112409269250879164951012251867524836356160571234863846892796456667649848464767165046561266990865485403705281050282325415823196482458286149790041803457596958657165789359912026924047544686256265670714416277114320705726232045705864254864853864287183259235882721005017819259103218621025254290610641964932197384822924672145088027677363100251061465898752818456725920500790060992633179350293026339149754789980559159838740722820121116031847446073130926422360572014068318740741436847356693028138596844963678163554669045752531854826599116179188647506992213268388078880217815079875262709591652828076767314368740762605540277158332846667905622524415031604568648941811259999795035307072839954188004062183769040528604637822068355374436554856947783615062635989936347870279090309974627721842411001764821590127056711820876687822757646769942854113054242846979677129365563719081124347524991889410442389988765581490981631338283443986788305614220699486564370563456816951020971434238126537052902311489174162697598468906754938151368823125531785534937461150504580356678194431847685134829172679530465154959807564116899823793686265452254476823193821655598816897565449898472233608040236215212637898570027320479709835073384755880885265600460111363664106953579734490868621432857776929771388386687549173683553591485305782457191099830298313951375705252562095809540178976954139461517202617649660795210633054864581189033232775355608042092880795481310443083142541175646937964493700880517884390646505986995299345622884978136790056842469066898234803767228391414146393834419705052555274566152430703116893995864095218468006890113619130090893426827828837570563951953301251801823500492931069727258057031966431977564341418649195709519441152022579601579421743329987124953984816432158840168231801567682205889033443405769062383726206054194708302698868088319400151779250677571751745937223847177220508209307041593117362202000388130607888400911177396641888367333204465296464459344197685964281262445125625778863231538319095654286792308345124027616888359652510288292547017458850877854674323354131435813989005234227038800607714317834252668029966525159580526739682566297578541127324599996348271937105702177276790883005849073633640131647993683787809427547616082779063539802635477089489921777344518972910084616490569126445840049207083085260645566055418879410176891602772833725715292633912480905600028233792017752640689351180449779199732378020380548451534642144112157409261171753177525342523126565278956547994952499966134186685611371726575357616124675639363634658529021988359358313921924913934186424541359344281660384057943034058583059516125841208664179704045005570901510314279790145799585671974561364535372447573259717624162216656098154776510792433284597303502214180191043778487240617468128371996146283916642534803096672402411784837905118698833839179026793076495649132796657819771695645747593331331342626077489713671970058790516411057560868039039268658263487063454055157631398616763810774144512259412855075449421595294857398986305684715535148771193322794310386006628760697072692238839211010422054182314187838700284748888389056675063312220920514807870613610842837440600890446146679737158262720291116842293247482478917896858777805977609418186443163400288502645364455135506712134011886907855574994102050120205843693594383384314211879849669579667123182969419117181580494352579524060183758509979343711308802640215428816443443067202863030612449853715671809096783674127520201113454134998391711172535385170214243067321000314413728871055440789582470237649047523203097059606207612027423317301765690320036774926942273303227577627517007941506913023523382295229380423742991955311001375700873574048960493014910013105148285638699842929417364755785529415333794939202440231719427160290231271594369364613047780157046975102606154335602353227271325523781649405525365188946498390345178857443963543580134349760271473843855119847810892866822945772575359784295454349909526907761869805012609732425756673965166418609433503841496183873703509380703801016953663046160924072943622113373553722563179924520868182716706419610045069000178351726815392178658474812406988299439446928475392120476967040089175169800447350134011378005521056304988254349320679964173418381132082260661908719833602171482565623937107277080044260302578643754691414064673799881333062749804340488444339372858514209290714069313278515053469681273452320463635666300917026335976323886142443801882404910085101582522932565567279300996617151675711037022790900577243226451934853958153367620180430790663469385952282763485280737392669541534068128659434699569118047243766089383156219243865641031313405891150807219328673916883238149447760719920810354753884234538967326548496844080635106715752371203075032887685369166123886017735354040091088039589275121002549716693707978718664292201401455882456234241446703132303501281032442016321630576537713870990527259684940878298118615258884925272186032895221824026282983232700817634556129971457746583785472429674618246643849029786530077631593791964425478394882826806550176331623401014632709472597201882333538813353025456539046348310517300849704261537367640620330137906478738737121464525553365835582825312986908539600263668907255056827141000417352289848217175999402680746491418887030638147115329646789559318086512230266369972047113174786349052776694142734227232795808700025982805258013785387832003118087215098462322707431627761529412804042731738766997695548191538084277357093281373760561766937072880612119558068900815993982648764512003321785648698432090637602562999928889730761247741228383269616110751648915228250644546268306417227180338343173765819712463951447878320009351333318655222338955660251647081019002244674779398750108774616269889409502813107485697512863709006577191414377029675485623143832515950385251731366442655028598105764183707048240607320787117705529545309698183519729294115418251958353083363474955997898763199425104174380877385642307717332540519763611239063521989491743905255002477559239394461077761413186765509240689222302864431715623756205532535947588834188411031832605661608570780124121329727491660000489927474140215834370124815741912988770947116933111041130464645731987871069570113548766016847239555580887290897174691220369251189724680591711257457394391145651806106080563786530895784773539118878095224396978001845823644395448244656556278922902372298460832554705494068221878803473178991834160540268599674872180081320778855338243052788952528970977080260850788175268441974747503008944242700277303247293819695799127666762690253597622952462332687883138948400393681704468721851013957132476754082232304378228175049812122184923811060720044101737240292002257194762803149945154783344703033464531637313152749162692772871965807579765624902962412134273947494949960580458288719222182437360162808616446829421784486643308194165490980503506193935373441844498848185595049650263222645086225208709839417951613729261563166641163790862599661958483269538206406102682517040494898838579192421686509829170475839529326011944310572999700948820006462825064142980885784611984385093174349933158754056846184430872481690382849694454914912112838991744269803554425667205923759401508528758412056238186705431189016681809717891902212293518874279092195515518088868903134477084577771454928357845296172487465733320431666064130222407809409924086148619661646179157317812411352085815169918245541054412567621643344107017351203236836922470239475223198646809466576700844147762711278182037067394773027252712992031143845135201994634708981058146681732870787756102442048074753084204104430163487263326788345044502448423109177551673670760528410517521452293493248028426483884846900209944528626464184203472216570956864347798111036622042605284032034121534186240396136792653976305723917678082394197387937396993118579045446878731500279916476825885174078440005612703428031312415940062560080603168967960775267805585158444773757320409868661508956832617959871934719108242562218826890023341053971891760363056471342188593599166100404311956899866854709529630760786863475180887668213990046769273709484748663262578526322996526490290475572655642628171067361227793268188511621382424146385141980061848256020216207964774601224999669672286852450602851380061764826341859670837636160177178787584787211352425712748345276492317626462574367092266211307733555205683386054307054158740244929003575611165555716998579313100068193328538001828777472325091411581985057695450951287072005765226634271771499575351994237585201083275572559101341983066117809208403270159630241973591496606810901929538788649629120915479131840927623462313114441025278015853644351302631195924384614550783343687132109051148727123095875779712220718360713602361416279336302762006615130143175584243644725271284482860833476749411206799900184731931904696130141786043225526710083095029661516123391400723248127406943374848131945857018441948519546090713962540695926556536231923829498572212861264509463919495411072692219061756817721293282395098163294236973124724084346206764151658372429522369301743268413874102094132231590431123090085591780898098639811472423431259772730725874965450798846085036494035563606421360246367250297582588214239709069638947515852196010056708757617434222006881840186782896407971342119879894242005426232263910916080832822172062383218156600956376613115070352539431370438476406712570736598637047057472995577056332924928706676715784263974841648189874644206273262918091863456951408211126211183077842318805504839023018238559619868972586637538368548518808900275672391487967574758714477044963905966647638840555139832085110518086946733442146964388936519874292945007963579336776306583547913440943749848749178110525952934946088696039617923756363527056828663233569387547828496049149559435581123376296279491108962728456306695903129237389498739064645482345265301124597093691663681984294019757039611050180939637076776957461341673659491868407159799409774921295144753643557051040490718226804775346892192192239665598892640138338542564942877508240456558180339798752807500932132516595562648968432647209508457269426761962032465242536113808128554108098613889932317527610005936827481891930572687927052706681650947384411241352252246216405896697737766266947223060479259376589040545108908727196692960261564605692234708307765972494222517344900495881032587117349851293340748288962822868451406587059582208854635662223796926845772708006242862470839100012713227466932910775957841160555232539427550960060760837053344808069613574798661003456942905048742886541585205718247493430292664502012901522850857613745521097273911088254049019546790225373255943701093302223343533679247915548650890561031509201053297700331149099331914415825403937671038561512589708413151515283217981162509440783844635992698248514779982623836715422818506966671626620176160970567094861125093594209257672502737040835833893160975056783035442840000397002028642333353238003083672757694716706320727156328814513540266545280537056163375657565561560456839735821127233493026657137376157808881484169546069518924508977614582773056447115603672340137375123911334222135099520103561776430770908044730482689991779764687600344803644414864134634689995078455510203029888633384832818107269920008898285719368413891539811167635237013599604776794327352194624941833983034177275287197321653523974783666159883000187013548007254996779481564122250731982077737494936934051592615121472524091331243285352266095099178862420621470761814443651682059066937026972848443035060252191404977551261450446572569712315957976429582179683132072049766762865704713117146597168994141419415585527921329165534108035864539423604397634616953352898463390144370977103171885263352978600986693086698435263934184369703188574390628654710685190800238247922659706695796912922827797760081119896191705187657704715480407623420146901474701230072367200637479414652488488002186972544546370568600472326742201969808221422778472139305509963930666588351205734209536232706833519053743235096424169280243492463752913196824007038389209946820797082050855302650608417290646789432924890422666237149391487185204533360509281927220026678354509006721929344835718740048645258436195009455202553385301501936082754550814836776294317346668701839896632736870667173889783817058514355616626575305893492837995688371566190511746934019853587525067274615771754279297665411243066168857921466304826537623629178636344787320604811685644513319633775974521089142064262107733716871629057910904737837639993403176101329586566017868615084132025994391846880266009194120701567367052752104460254246476622255379685622112998222213661949692780512346135893880093787006445888955300930967808022056712229117324496219466633608501509594916809119443188318875572728807260492048422572695023477727362566817426430792407273243055492388314054863945929521673461205934733108122670744358544306390513548612458469235277295559595081633912403448808461557483165110280565969126047382200962429878618959522873019383292859627993498447285095834161821543866108691365440642590891158969812989744271470860637344088950811207925632434391216048670980372692982232485582499570894311086376548403737521383697754037253509308684024083186592189475434254656819933192028697364168763807805594272649094054318608688358706239930380932489377606395880881692788217232840100800778744685528493009535616813369878218813198796091570780060658751204136810551501389914072160545407320984244571124078690275295563717649969227320973453390327493842246971775604291219637940043929139399369638343123810572712316016546238186080341693779232360806484166851670088458007079905399019138986928867886850125467916825295729795090778140077583729195952592307789852900953749693144648856042018307248366816453488890061641848721314017619792067384253885282960239842855401308933923814117570120808301554188871910117122035439604125881368880489293940966294766794056226564819392253637168630106007982286989053718470719552486361442452983986054972266738139927123232697913526781947508154247515825957071821517477933308380538542252593586879001120176971506948468723239775696021905302772913441798953328457172256959513939845008081855050284617312093463323897674396686784116298253664412222350542063236389978613011604606427642524721199538797765254709899138757333709587544460688181033307915923351694002680509969009201681369502875893937714949331121572415902123622515497269878580423624412748789986559314593826975693143055498179506531441866832732881951302751995672175382370571522522917889973898390630173991729947859647328824514805731576623972746812720692835468599720491582006549321426373785365377765776310542564915637728001898109944412679472769211509560728023628284880601982030177055736035503431347690741276028424070278562450186760493680921796666305062857919256903216092155038298157384365049568333881991420375632076289437684602476610394352022944810101404116840963522222446526698404296402530017006407037233171935220761783135003574256845231020154486184741129462404963288983640551545380230006576243147668415333980526779819872375955284634559435087597530812254078311528564591382669854061989075985920268537279230084147530346162184574848815554875180280750087011486020566300511079526262181650999704624609382003056246103553110403422874336687869698965895714605263601339474029550277428860048235899761603260749857047122184558667132271410069788469581712627149938589828585921462536869196078653561335684500757664674333108632471158007102508635704220042755102796922229828867950516039032784227388738111830329773296824160426832369253343439480561513027747565564224353863128341393926559729662026384969453375872939469025962873887401488070946338065979969831651119290880251192560285817304991084121641799684325236402041202666033906135644140131389322120287306294453261319831333565412520582119529293214940536488230033713781306993375262675257342720547182598519343971228475497423228254040766261730855917977487126298870022667410474706114686980287027351481988793306907804051852169828722319131755837755538329306419343327670587118572766871456496475004679237066771990706913870008711630394429748229895181509410741915838284983000890515633749970923445812684118905572039013809374492672632599147334552216665140583847415931793774701388310929207297257480726892748636254501022618036545799496941836305185203348583061388608915374757681450689048305047432310417567254445678677540565353246244263845011254015881133762879227914457699932454902071005719389024332315818067744447266723176645607682348386279213909238724304151108883374048260207564476757768523134578578434649845829336240746480141597946452143509285544414656623672600705710744294714808993054625246150539546672945745477522309885938349227321181401218199372897274783639130242229542283226581272993978869758174293364400546233397984792366191852240226254562010126296227425623817530051776328637553954276860419576758487868293565801648475164681085067253073869350186544318606782117480706710238606132897325712447823979443239268514685587071759326786933587685471603448961677611716341299667336450589792110754601830123633360691144964188387934121842194935378749966523797515391763059159646103471521214656427472391853965021316325911230816528350294868195657135887476772396290191693199167768645873058755288747597090159188858413402314944535163715820461193929538650063090196878114872520024632500585955097326566975940880924885276626744424667263984945494096333588544944385507082778660432637669558899094233921334532437458692369553584084415785410486788230887659149925858776134937893933817239566126732645860588609983313023881770669293348340480489448144118284346563752808166560294729887698489519112897279950597630327730517769376782997599259573447528148628394441893629920990024135806002423326855203253436464935897752706903435988090388776483528114172898522061576657718974599693126904994274595857748900715017710280050510218508746333748028182672386637611059367212151178910066446038280924572444314173858083144173658768637249757501724180505564815645888269442413625697379292255945902050613210392317227946862868956199674192340073901316879381804182128317285099359198047059989085315255060611129029607455276541605554323462610167088128515203185163523305468450163097876868862516095539218201938430432208578808474078482365115168524579205376362858300472488949906232202771501038935424792067272180390323180854549352300215703224048303575168346141950451837704613129450220640492325433720823309566895789820800186133500506875378551738982296086457926134601229336427894129347237377241183471056719947498813255663024174855112544613530731382508017759590020575525688293535410332940582476334595489119148002630594112285629020991982970892267520245118222001125571579240733650574612758838238123948024110404490718897939017921349177985750287517112124497071036628890526745050625093926019965399546707668561456593004672173104967569904556248663389377247350889687245530867838193979741498390808700712484440614848824896131026973307385912498790374187062600105142158390408876123703653713520292948787650548885182853428248410038398553662313376457670923704477054434480282490886232209658664498591943363119205831620545310144578482233739950955681727341450850356502805930648292718529747212853238817532400077625654889901114846834623218046070717582378163621157379393336563514361265578824300183870597868274534862241033127098248694442254632051824297733063193782880524736277279010236575158387770445736380232431010591330252239746032544228425304763924993687412259412525344274571914357904261985598032355410755517179602225731007940379296322417785536177805088049496315873832128675554297068865951555521682850849181846715119760879072356978603646204109197206493004123150188837770458311397629187009238052681820978751665089521199378270494551399204447989433788484231222487627259892997895482574664348575579264603758622423085401606220231239583793967906186082020738486233385006386037167953946412827981719113119614782167000830808950785445813266954818166386256950925231648219178221346241417591335437979028341423778353888920595668461979810523192825766529383288091196687610481858896454424402205427489691120693335345523517307201395279545216123690563455727025608582660648538391808817916070760661386419533907534631042316314346145514954683921525457176523017627907134670298964119348104686248731091290588286930561548550109865716994317948320400204615028922428325398720403509193836454205680657981934923777973992361643392328441222912416131023681238412309400859555943921238902610148002411843673257218566928685211711743895773556713694403655341882663032196737122047784613967242423934382065575710146521083904110580254990574309270936597181213253729453276129255716033811599327295120079560078112053314636112722208931150147192517953524282097046383536281323733050395799214257143099602033906880057835187398188931411813030607371891553698731169760498551140763775109513049911398393241826775067861293093343419446004710929787141898483801103110274188437832920482839062201145924541976522126891453178721214513312677987845560445615959524975452985753522215468171489841451113842508141055013085489623424362849791041944000953541984782940988043650418337571950530816933625465486685067659486021084403208883697917857456235888145994833927128325817566478148930763018318845031751877025433815121721747380864741836917805118542713928305925515203696154426557927433409517408790292846894847675128182899369369638005209662580963095224478411416233470638867515420150413175353850008132877162808104700188346896555554432576568037656735020267265299682668844678106657495635099985961788943244307515831054977176345323806390582047731811620890740012401492008019238695449202136793024258024646517698310567148501978569587399755567875029661732867079490827566132163830257936527271172357649371977298818387650160046960198076260717297338719586498709909968724717494761114101478259018801182453610215220422049819761816353003398859997872605603757975986803073314752247564007571518792201644858905540902200692157100677635924985723995527632014441216849154357780055265954849998512479780901999090881425545314201117411693915483314820573828041454362718046468662629137358234966482875220896995836290036596212940685485088790079706097153615049303070971447935664014903112055308082409502443841987582416470860586489907394068754413110174450351946487233176746260249006611578886109716268850323904256421665793019714233077714453553878628432514336021250189909452614454005268521377177876674943223919259355906514401227995323657387859633667188679821005112248481754029247501366950050475967084418012637345880106622530400185066981810971904908813022918728763660112598163407302581325662620787942939377308834058169822940480343932468067552000853043214053837036811967449736426643299033781535255022524682542776448272604906490826977213886983755924420723772857806701948407548250245903136671777876794582809712007470914103345397923040702124704789597241630631679390426246365331538246802784629998492955829706777036736178091274486510961319478375542147347260977852214220697744173339302375889154517446218414658881740633219251066399862636936880015612905397748917869227522718660000064868860694384334169568976191047931550407379069948054142393140342772120564176101918465198316227552484709378875008888303178635730728291876730356327135387492718627847836880270457848570870734728184365507652351170625675594045614751081746288865138894890196169187358664401789113965033124828628212773234149566257038143667039496496422017426965254125031386671549257792425824718393040622119315529395247295659610883491077311846506610853782237227650723300729864336816764066348271265966113355194054621502427959882603393437778513689665892077747703809123061987976754485388849348861517902298951335515131781694479389844805510160447538729346020810564239999565313294381811817949168206643422986141748888624688910910401578383578904647033850624225450915261785817209601549590419019808172498633323653239962035299833581288184440031231668441282092157103650031779327671655485926788764291194438852182338965094495108299292607756543518139988333500316594418749015738251515349117302529210911907594922425748307159707103394639477290177111179548387532454308219195710971163136558511133616779926745002254567461727026192658228096930167652635367978562181504406855242502063277431207892459280730831609544932281990578760422714125469899220372255809419313290739795298469074966884973028286127683424450940254197334278386371332162982718868028770488590398165426651312217466506883903438805406628761324151473649801132256835245396445917788087746545702095388905755986962043372578858288766430401486028813478566777522316770085281567031351708699368722839597977614270430443387536740461034096265981400795953733803766082066807101929880983464611253521726264746148090624508435609183266233286147657178873670704326449642375583111810861353206304527313550133893258469803965075894599527870986867736616656527294096627095361899238083435232506453540653636670081238084314212916084893926064757504243607733700769780104862268669732720613130877124288380795136823259604935462698754785069760870906213944467098705043539971706828557773245561833859672584152958438809541003637976907483263922322696763108630399810679689234160825946605411965782508337910051764307196006691422677808031086358949549126660196821689848727980997365188267877731053285059191230360839038340639111365752938473873273964758695119039096129214465780096562782308548525764983192372138419858188049149140812202983666476256389535915309542442102381140094220105435873360217656075153784198983618305840809509579232887231314482568811590029308704194884195222515577142536019696000711634744743935005684563443769003357417602825549108885215323925060878448597881672789669026317200106720647207404594248900508076282339720351383460410116855895150189454592283258699909935831848388833334959057125432197139992855669836826270542692759878814989388955532775219571619884675840926692371227242945252439825238364176386688950239364876702931815150767258597678484923374584494308923193531065125047084459459822932339044945520691951947530503597462788335698461320222129938974906934284023355296263560276993322927250894302020639727851055890584430078972050488044129234894746728867838915026228885291287429527504355650209629422473679346403525512695447933149314320123748438652466578663381046029077025167406752254703544717816861485292245879861896172324465895281971514061410121927327569484710478372857694609245181691687995355804049841241104919757439292511009593142809765921915887014638655140297759601295358470076861168292264437488830903589618611266068498281807295600945732186507395063439570125354825915035368957714669165095764450433626512511991682040885348821839921490374688320638921958396771807212607327885619513135576575243413453665708486593415984435464537694535909031407965508106604946822472145183834665013178906741103928036189001441926004517726990294651912262530275450380603248851883604793646322499054825804957760197408544823830902887041597312047031639348365489265472302515290804077270773036185182519612016624249355133908758669104232950252196222742624256671592982893040431190067957041201008409478265978836503276031030284843132564211053477207583503146038617532938273761710329521381275669939737444185337163250635583905004764405043184655505073040899038926993628862046940269584431506310889786433825298791700659552819878337554177791762887619777502524906729638062184794501401437110271575943654040883382581796441943083330859984775988917685225290274578421689690036843713892403690325632174580396528818827581867775090350407785677282152803744178285539246393030179355759946961952814180998160358562272455412759745369637536195570980535234513266574644682623554839759342756845834543058091598382508947389287692102976887429987118954151732043580651915856132717351681114909835419221182834703657288674488155998026216334728734343000146176038786590013688025581277660263460014492081709590733726661036073624230859884385252469347359660993796975691783492560369338961564602465312090800867027278477415610360008789753367663944924562295092340663833583613251463932391220211410475837363815388273912015906594748848180494898363656362234854214689440077525080023077786376424808628191028182034711831743730349334426177975436953771948128215642985465056109643559380311477664303551338888294851698137863875130749910740463176728759532365533291265947640487356284411750797139047400551332393896195551285697859802047769760052520606805483520547158124294736280121908831151208169368170922796178050408945578359913093476322808015149969889135696881361110514023419878417059507765640482463118885901480833776111552376819383063571431940964257422671435498184739540779481350877889548854413001331746125100043073325401075314242536243267779801060578340073046225673594886885619126692356012329843557726500006474319751470222670528280388950057002152053908057026851688179096653597758126368885914769419797482970011325857658785726696799680032089677189952205029203490718021401691020056286547729600869263802729111469401471195506772843968772487327158127480428597810302450513289974410757541535707520610369102909431370692300027584895321251197846884642301068044903732891922605837738861309121071177058775287031874653045525558154038878565241732495736977488760767011950492894183245918218070770062249502878998405996609728435314033200749819370748032083424556361863165997415001581892543723584147565843571193494334859756354649191752511745608308191804386335764683071924141075004094886850106059961850142045861653689695511475873960660607619517162625250236781435059299927432365421787159533803175923627889878294913269018960179615887369958353631530305030483258619209352221459420820741303977987383790906406212477970343951141630488008217868194136392839249637892044245671039999528975670486179028806273423845473978447281935512811607338126327917421992832097218939696111281497697228426437027540750347640790134533313313245649630288115713553811281549952388263090680098257040325222482141895457311947105049339274555935132042065621536892949366468640905631095853659861276550296528504908502547745982156692951273711332174559075315718029099432588340538699481640996723253122460832108993175248992344381194820664316769432057280142533520526218782872148908350656108741927216443745740883270167599430945650145995388325564824040661128333322934694473822981475820213179753550555457762429632551222563613964468549978940344397493681610165919412356501732770121225749665266463117307115734836669975131418259115846143281085787581342173761329838207675195559755419571723966422267645474652002119862782287820240364525990263546177059646470411832300096579549024871371179156318995621081675428352688809117989183270015100894309335022655098804172681489088122912870829521097664154447618330981136912789774771229802021332127465898526346719266245553883192771449991408341010595248725690306547673218555781410028384420588904146821096690543375552065329134232041114944410077245985564152890121622584263525511470785955532136098809328950696448376187763252594271087013146790767502763259873257667911904342826270514752453649423116904215703592269758532102311719445897478681723215611444092844987448122559723161679444150344586844820617812142689172348256874778766278361683677432494087732449489886910631126003804788658181342462107208455447364215184728768745937138298428035092082752117689938459491096246243754536774918274654184673474592704974484254733962575419899408081139888096178870114520143244990958695292621402193397300316065173591893933235875413795465408213880912747306543545173566449093275849006172638897645842184591345904519770084034522599909618879193398402889543235627906082493689415463236116775294038268346235551942863309956512636968001156488804892946266193646523184340988345860273058541333874462705453538350203975715425221285252128218301302993326617904122269238706146828426457480684458555758248668872135025417309371260417969124276481319974611402653413800502024718139556939770266513648400947926201458975913818166904817723165938055052706907683977461845530991260231230083999798410760478293851415988787247984223909143764543073187654518909532650231094774263686363967956510279954330455019629951028984142909911558001888557617770337346744546784876147552509669944506590337393015003131608383205997298445703580164953993575687340656022199212181567045592086580305446081036536888051972130577603369779128213097605368580630079515176056476299641062473983496958999491685187097498944409345983593523263468128802598854253196513163595894431454200681572435605398018596809437149428655669441490034911155697973461530423686606894504700045389192164359456291222042045415548339781836115512898331262102507696743692985516832037854186774223763371695145553084726091429391925640068094877398787536390431328452109577870245721680367654253697556693376916893721596826427575374494974180054169944270856774686279433457412781934597508929237014499253445514353396620616846162869463188341163816873263566096684426618168508783583022017268272795159491962988946547141503006699417879085694450273240803777842715034138537355605050774296153837658200559422209594072775101931880464424558912948593645383784405015959209169180992093220851226729247492051440151722161097921221026915723023656934985512430923066030593657798502968717352913344997241629647348256737640787833029427750736521959651753951173284253848099934666697011854131164051894952655495008143931482664881444646402094078323539342361234953898624815016462628725140684415403232410303812921202843427583407715871458381042016886254561952959225028937503794382926040209740029765913066860659527553275106987944541433996555161949869209406591523820117276786661628344383124816662520388365762541266998454645663056269563005241453508164490795914799096477820024481302876707249446871007039715991137593470149710862440766515214719893306301860213050480860703451838006279564187122853624232806654123242592970910977002929721219947444262285433086841273379116269847520854823004156905721012202655469803567154815773525190469140430937889334079783576638924079458310538093398617146133213150026795797258189622905766151199162409991932632150599824681596120350861961621851409553835077370973816551296513520263189529392435623951453903175442236331306573901918412314589429905606842925375989779182457369869473304239369233735211154133584762038181426924586220681605170577372233329961192988887052130039696680004463367180969237088530503608758432040275575677296700500709344562921987559009851741611710104989587970844695219578481169471998915071084496263525467031605791774211693822077220932352600571823423623934394111679245840915260616864130025591430568111117797082777361518323078893856675090928097083693313274270041040190294614437259108134835491707410473230297562216932801692770491932893191411149088697243890420492218758259799706756439265596940213811426712898167295742804076468583369870354233990641206190892587349011664057030824007649122612850101872935100246046182225683153238261980699821183840107194822899896073720109075703401473266785003056258389980498071984977342319019174724659837227207421085576954325059034070334050482242261430876280888342016729941844956162886958921347234185767972108198054618158397333178314797813928850648258250881896576169717918714150170609154500399663989704484130921254691232004758442453751004184464771049347738441125798496196654994341689026437129512680562302820852708780439998811778775264384182314057616524661931188606904051324232395317331395144937095686946093074693141642761616609318597058895663525960237753074830431316525457281206579123672849821857534745553875476826027002266247481546710531782539114273717207458271650962764009915847504336343182654635440264040597328437116507225403265136655394981890509934793798198580697821865502181327039315360049815369763298650553658774363415217958775612451858034830994833708860254890915258282377983668348739557098706627632980572519218791453602855717737671378299615779605186852177462472797744589456125497437428319048153508095360334517620186222460126046248802268144890302086995405340681415438518493965990384591117458690409573581466833603032345644628063430524441222099497111347024145602396931181520775528928748789363961892837294870079331117133257969760228398317745577545861299311051810723969487657942820375588446207770717323413389041519555404647557632702765338010792659045019913999111486319557132221245993272985911849735013224173775276724983321615737118005690929970080181244718689665787726800545551153681979719882684807894522754243348703672318842103520350485308724115445938475496586200922220756979932033803693719701186206867854194952555633246609115865504217061767650666487720230673352128712295728646285932926867706130769255514137249340019276522485394327005956196410907039162084403283279898661939875924646768939114950318280834793998604665837250695021325692175649023887656152401852170122116212746858948178985028647447787288052235235682285203593722441279936637967428244839643780680849492301720946887777425186607959324537172908026139941096976765466340943127143436880658920699238896633992377814747893502809437366027590036462416130091873498595963428047847369567350496512427843588542222945033800113262003971584611455196041542091202354470533820147803874100072252486231838881937801921658210374416709758573537411340839395522857874706821842943745044891824751438878123345558634507762627021771657630862420917470500401708664012755923070392599025709615495474257433275765180189688338285495571322884859164029072281974743908432916254992336031309377259116244716487414226815761994432461605729560600777557271214775550282195708859876103086165269974345677368493453307531078550952036834215382026867636799048087551299768255483326900052195031300284825693688810115009007083340100905416054397050104488012412314251727926697809424662461608953113615416805309768800790622553127495864955698799918885362553006113245833548285750636948822557373040371925279780093240196575453942601949749977794696391673674187369879878250594371175061368451255835800714655979918322786715428353719341954906222489359562248723500159655159582036027828741745205135745484097432753825755521956807347778912724295252854753774163105437122739220305406631653946079295428011949722859868862620959705771365767457694642298585674040854993161468923354856786331441819221221368862997065403171115279792138934362829963788413277829395098920549556847867473011837384550561314781570541630118146051812583181526609932668565644749486427236111006399020153193412882598321073694949529160862702977939042236362515914082470343247036819246398275189526910227950314933730899837799279245439411604715911973315412320997178133722888601536303280053212834939228219427985955455416679258510853206403209848850627815661621488128466767270416201689843688069485991007452575301982376453842056047226797984563260150554934161892553326356677175294303411190187870568223554712015982950289360956336836118560837692702315069334026594230419562045967244077011364731694969106130497283217640846953353920648150058350182558510308549034880383374818319442188130958477422037695226471444172459939593411907054416363079721417685593828641120947165620194101307656939546975599640082976005354188661788231110201727155730225505952903350137402586928542771974669844636030298141183451832193293466211910497206119736836295670334194277916762383415463921665589720671002110390859686683905281737196527813921345015475687862913183328433454758072201247546748768289818923468803249712157862218584652381817916033876220544502610535277301691773664780882417390884452589138524041891705393013605620502532289090913146599752230465464962648727050504279856355249995689435484656290533528389052407476828234694425124220524321460496911515995027451192115682913619877757442997508199457149787740475436646671218367186399859386477584804973795743103135561069226488933237941886210343030099671295756250603303590322176674941553563372391168890323669273923796055594782223183502575769569048499578355341992708004537102909673080487193192187349050957832790929334097901123050953551778787974257302591266151473309719502128366443945796395942721434847918265638596525320195043897241592694683925242421860380728712661664237383521768393446568942250005575813151840308505972561946962356965072584850934813782928372217068228979426416542578445420092847486454285138283727783813351358194082795357922839889739911377359314873156434126855773893828279744037394038580890547585376469202656818166100037622459230782536902831976059742661345582628952000747175198661393484522858606709892291398600737672164274502184189906875128210516407142066063895878028324319775810884437261383554629612460612810338131101281474830649250015655123906492637605631557241505944464475789719349309910266809570814842381048841857925500513676842913511411251757939022262587400884536416338712775753025819623722715907425554757340119363083529254662769457148113386654846390212303691690580495406784173105594659185983035030658313990683169764838761011995193662536138889762266165084667337594784663042039384465890384648834728228452379531706994116136410819446969967244407469283923641305679339230152919108360753578089544072265784231508405883419547823568799736621842186804968764307531395163670366263754439135185429397386393035047322416695286543843954922710470012092173801038357609531156944974648759568577239395946125495083017942186451249760690958553284814130398283321957441569941230839326637951758977091254917797311845939926153452213996141098349106184057736741482444413357246529150310050804462575025374527545985515392948604233021458280713117375319139408935171215518043017046220554479737669667478931730962714817804320524153739850169540905116883068125314868090439523232437602316225250438836689868570661653066181904568527474665587161772658516507341550659451756136678425907159518526492326611989419927697833028837779411117501447410422908089023660833919406521113932372676135978853892342828890089773054733631268033251710912983926148497000542686160299429609638488644406004910294550396652917023423634660650422229602109878588006944215698577053669844841086867310506963029609061934231606638748990018828949512561559110240446282053159377096842656480346033781731481405384504499075920355090644590990909144525972567149530282726452152739661221826041346147501028649224457265765754529032405471437060123443121775206577764552719001153953342505418075391219150598379852615733705162295441197030788874317399891457948253499871589694378773437376751615663954647624352081865315975103666897077758328386505752358050171402323620418208538777467983029508442338331103745806536419079447497062847706547679482962188669259068217600673139160665816078583284251386246833062603366795467912492230323889295687728947612151536396030940627653119766901091138048740549377875158608275732363545668580674906271659721599029921867086138968951373706831731568009195548277920465055777750668885211866929765211039077863184433695906723520283999964323963876867320361379164668679503112179126791204942268631969522649415260318384601653704509259257880042440594434946762285550854525566020694226877321894633390276715358202225470331223479856682702825245988012346839537763551746891225367881238189199546378441270332418737376332561304223327118444507497424223782661970461040111226532758895572384985057636480494092480401111627708715552798840790361257278835912414460810333685676978349582569733383995616923989000850293535342999657406963779502140851903006449547774735484116840551028776110864198567266226787228785939335839702878835954512635880762654146340514808297800269911581141860547629512881994308386653204842674055555102533227461342219931036194777204952433882117850322504622922142456955550033137758428571026505201688448712793185637412607277411417869893971542267276322865848616967758187395294670929434525373350650056960134607318025776790991551345034841583984675265057374239747147481254009357819535459734584707650074470973254939310359524408780242766698463084264446386736380162865119392598513341956303926559571167112304497992321173606848975917558263162239022622489846228657935727962491037640382310408048197494285927024632127390069050749887731732188546893642438942096492856644246175264232707272793308155715588664841631953161411736909081320190273895284251549967224303489023763280543729161398227252990836908892497388522995923775450126780887326119546163620900490104565727238121860734029185447799535289959211945518805213829562617740804127330379420903678075311256760080426049507406190564878080502343735589161553899274656330762008009969129076100632053732312693727962007390543343746221025899572139788919097031755019735593786924046361116027206338338409032239894189167224940658460386883599127252142008927927430986616350795728379051438551387295271129836678961619181394864073685794226166711785990514038234729140090097922491302499787040038054145640642906637903922523044921716095890520281781615990117043582891340913588943930495096599605113324294482509836510749851489015128230584721525802518501199967290923019534159104663497514809765758541954441938660301023932894081909479278480783045240452965721750860347225859417577247107124427077986907209955806822251978998647932984732830779343237408852481802412599360762807499552231046321991068299808118204157702024037867235236304158690964281330364662533949494024268686257659183352224135410200488785056997471685240672865751943425706257347366754736503125572083747217077731732426112803077590654692395022906758282061276734984710635197644664427167209384615607255682037913752094903953881686272030842192749330119689065021855424299174257922262045088519366428928772287755130094773646300064241099299000459324667735313744405486684875877715788647542882513257102499583552305099040681646341314573144849393869833134777427352150116669767950323492087026670633342677121526488087953659299373518992420672251194807313265923343577207964529777754867438424768926160681733916928124635913549460964501115658857292538244691171975572851078655298454278716583023412111155300074663525550482452345410485731877910034762330588407257833498442549880584587627134845326920402256838316423222370976454714050912364134406361959220500003871490019578335980781008598886055972848479116532070874593435630802187162111489589626800897330821420606706376919309905812237161050163381359939183593187130304492618018971089282042610031614996598585966795900943374721233344389517882139213168961373456008847211834055370417390886550221553897742480597895417234353658614901584283694749006043088952560611138755438584962726915091086239755480590136238040358262600530735745124871077414263477512509773977309390725282336321002648028822972706410952010528838078676946203715639576047661145005808047717642728780013131277413244302723408851298968560383152465747436798237046012790757806089242271283222644030799006153231410207971238005338205305121911738709301983853679081734700155973475132833216025461225027248671258349531573900562069353295402359717153946924644274388027596148649412924752773374134950714878033537786636311856230615348675776706325490186829580038258788485176455630870877721920831838898622536779155140403649128193327234646410410420881109312609839618401855846370235435946724857491530908048594183126096729940667484419440084259832175480334598617400200431378508286183299756817765710311963158186599504906723797917873672190751564065343776447630621705766985670874922707502808767246204225353894474142413436311016643663969988087857335045346724540669218104268811566954384513391960569769130745213394121929508769111217525555025022707891471738006854236503032373748677870255838905989363050210087166469785711805166173156702947958588442627198410355094621510005467265326668617442935116210475673902419773096614724220870452411170743338851786662622838975950520312887201895235448217394782194244399758999835006078041238792193065679325724872870197685892465232506696114739730088004771044338654372268843956825008857164813094684461270956543139557547580507935142675631381936217024229731878481227768318957407048462335383621659586843308579628537616031367647478472565866092667662925760874527312462223550441586597063699892768170434994116812797928212969226927665070866724480088023309789282035593082888597853534119785021182140046842505467402549771417333366895230491683144437629773482720505996184279601382438264090054050050543899562203257694031141072966938554123861845341651357163376862041548822631196037539535157965115615791687520081674536224127084386082271549504444160687673507152786736164990684079102050438446012308262194961869244003083142930447840925631186320777512643059419959491771706413089068677746385439177938197576164468111066389323583618409159532116359788090633295173261028171014866694864396113101717553654033227890444701001976312123410764636362458309773268932593277419195714992449855964697617304672915269924740555769815934966307737547040710403479749755177108493121353924293299736757220293459757588025764039177569051215528023145210293130499653339373023200920505409685661504058680341637934252197386129365897185693312537414578482782700860598921654039560817318742975871919106932757121799520873208269818635984600672764338764820681561136791228409737944035561387140597390368679930474236923503106534214666419163614019702393423257526942990274693396440815930157918795154429053346261410491553156884501255855500091332206111270101844350069521746173065959864168810938163042497608770615457839544937918719179778214050225790496722122077816023801492381294008546323714040529727769335214212268461859782117443585242059109702894198462468999523242239816555904667713228763619601838487431946537298122963352740628643961041759162471820635419743568571300716754368106285383585873611414883279233104600613445141308647000247195647216798552823676900196362140435649853331976888064888620020461779025580227094968342346108349257247535445213392688736939312898504859588223281475103811888094604514397803692352923365109003413934584678504122917413504943706196058666194826656431821665662964560637334750932895534325174972737913622427082393564558244327306600773155471301780840169319607522344183992270011897688984844635055266072691642378379008047941617684334383228458537684138118251167756383889258394020120613567446919670757527804706934458182769157795686023249588411602895983784051152559797838818410290147847623450896702896672888896476579778230699798819270883513493304458981708646817971112838182002044197499117721541034205165427027031999846634914695207615986506848852203163287322590381506483550100084517784375450743614505922194240241872628249035634126526431192655030406320257536605315091862694230400933310248298609192470044115776935057387004285904866973642307055861273564020540482677643880903258027885087690994809257329017331171653054678392387839859920844949442823545511110755671417941567061971198641995640898197469650383598560001537763197865942684706532072913018346587824492507819878301123504261299130804129377867117144174364941704130959984277496152385231195216354157162041855426172577328975427489642524558369008052069719897834053279524962832641569341561399857286730987422621402885181286001908460323175013330780748312361641782613805117793371447041481211899591909802237467877728128904530357995934005672043056440449354780269634646397191566000926368642173474117619390641454023179390631738285189036523986290070998309862522489234371226060985810304095763885109243895097633649477485841674766441412104426996776851984981650675379539545328708054990529826809162734102724026108419569462737591630570306936049304955176029167714525673235033671309570781769610890255690131338374511581734260872080919768962376158247232799696762659491769689035000181087114738574349836409909279336945471815629034528700893317786462600184845835027509394656574351979662469396278967133275300103362167058028060203271745531773549327571281289722301694317565952958213137736407650325824120958394227661748987572818484763028751860746198159530914517767537614228781538324691582039685564713187068248641469435543418642408986534022652979350425310530745564744585987765188270858920942199651867033066055402432358530574124988971883964658269498141403272968040098567409447220294441441026819291341109421874151328287331079823292514506610782792101218010311197042776907694303544975283057095089336353333318510969023890698062935716343038815074851498982790171065936441270747611298518681777313704723445403745600286219167913221365782707024079509967914180334821962558626695197436112488465946582728765644989771594444211823492755174989682744838464215544522543357771015711153126469088386801039213792718885796109842454401760358927360092579861974341024609362898969559726019190217380700975580237538083550621119923314740908846814351990335032977622554102622476650244698571713535726528821856861123930221223530219051627735697412863498354083903277354810508071163896557294476684579217411209448401996556143553068983086120849486986451710667370769181572544604668202820526485233586992499908059551927828814586941368229897692946966657523038260343104885807605511708300919710119849253648072836156976781877422150711037399536927661524524496535091003452889597770297427788541533978588106607156894926213082779492654943621073456967878550687385561133352065110009516722384444353315866717983535953576451196680957452740004243401544004906266613796295747065274075783714609400233265567720783707945010252698047934975995363121472488812065999504473245405295694916113543765127592357126014280388914399713206284195468196885884175292922668864426214340633843235449035871836990505347094758449581539405452988391465186318150939736233214054509690894535311623502316264542428788803218861917253625798092179692510697663155348667212890255353427663211799541889440802311171241078910639117913801116908415614710432641203243520194668781977732716307048851095190043634508471386726771537892816556212509319933084617355227009185624196261048152846404552681817698323603329448717990508744856244052584667057078202967384386993693546543645644472300445362273752665314529921962230988117645680676713978543791658473209504694430438488370771865018432569270115171349496173698078242694080406450092250682393379568371761215390570823858548291004571562854052309447709233679921158488718861524422945904780396105235477529451843291821776470401267419025562578477103968755033652996221448817935264058678133326215920913490441894123125521539959779526570682574624076495486611392481467006572277196024957345080584087022130787994543507255603602188951099248370331300766185308525391274076920389698099676917560701484757577914252713802209415938774884940496468312025721533555806488881999490244912487443870269648190456178567151821532142145868896572634255779575626527006292978459645061748964253000210922479818088894625167573273500296771470503279987579899629127928746607578196479484752392035222645594063126283248417539754817457010657092602259317232087409327491400979781869702601437421478631793853130815571167180161841988500770608288114464967535146217195521385239251104198410816414048220442494178279538017357430963694436495063518748203960509107089209844314167840644619109367713615057721430047516429278462760612587932649555864471865902984818220160210049977198361803778211895956516892253934182635010371363211577812146023709366910632191188391695270536319994253584490860239808314298724363262584106915366179150117100345827398845023001900255774774312143342156091021425630047292952168051282215647987913148361230334611027752033829796984764875107530862096284647678635312023068605098718087512822655052819891699944505458252874274597063402296033568538869497993828280147109986008705956848412151964733434766337627435135600524136353719011479120299222531533188660251537706833101548890999536990171736942984470666770482793224482341820656742587914678111518974774907255848915546647004332922203989506494527707553293229942626743329882814282556896573326678657561933719593908066429191475031113284467514873963577287934298975641336042658143050921348136798528882925725159524636866705264718983961963598492113415695319863804558148479071780907869529272791840452294301029428367110839506348425063820855586539232765452862272664883418507487413938549307417630279555031029081367706943028970120253177018494182091497923829631656022298361980348204057952319381326654609721358839304485216628721435257511372368450592929824956114742268292183057942653346922593252263720317019199984476757154104896916082005560929388043856153939388610800038893141551425198807281346757093933154300525690378371445159973023442914505699864146759503031812715272789425023834667263317333745588099435443950036775670310919094071611411540557340884834283353599319214437106006859366026469934657200936031623444263821514244283917159614658131742473170515632534823793147494492006979548016468218988433275915280709539882126839893642318106548904480489276848921854710676978861350333524498113861637395731026802516423133941154981062670497502013612853271679450641310008468510052112136399583903140226191080728990981630702063541311154226660786954871773820214105474014024032631964563930096218551712914326524427459441441827560214455153440454002874324957770584494080984033027258180963179652491735070149484668415725465928994947623637005980489039657631382402769423666262269015147894711690498025494902525878222068537260457330359730907758353931703088870854234953122303180229287959906405017737334421306274314312861522090518089923909090287912051223118684602413327860975002467507917126057740457529256436482325915999316644509890191461480286002548234387196903373987053600376311002385030885515627394262315739071459324738698502972134778226071168099600604407499093418534005721719934091308208823412305076123526962124545508422240149861662157316029979040149669949172746237826730178940942495960688437738947431540589473271470169619858250912821571405308578466191861322806103650342003901308140379286128430225378811284489468830537103303123570043462316590768763089808395415916852054588094762371192788990746785753669928142352470441171665252891003605377559735588435425423746517694185144707314525476876928997005954613496803973823293623899801986205650562460668131022520368054832484334969568965310038523754667587856799400946425372666150546757091298762361926700835987626785550302863066879939226509937739884608390668208206623012461299730378011574829644982605247059002013885624414633410581453363132825605320520059292648083031321203507877662958464544189169537342428139035162929142250483903626144425573581074868348925185396565314981963055712419995035132382195118696723815145833934908285975599196697217045343043273161935718967626863978978868443886119041809441858258695796026345630375524775831115431147620359386985073776707427651082481928976810133859699786143424430006768439420759554957407609325016782399296004574035775833310658604115555081469085084839959586167662512905315303224394011724448874034522407180535221879714738531321688962602853125348758585567251370781868635211696331105720317223706046781195086114266665602658062908484881723155659726462424913746676244614371952845693522156184400208981301595486002990251885850735730715293231231813184991789363734145399134110220355654105101077243598605563174827784724013798347463097245382607007851025263816602743671093497686779609742645392324196337989768248442209801913305485964528681424629087353705341164347696964729667525830078693093079849842711687904408338186326775973380325268242243329680739506418067156560271426821123031234294855165365321526945761064682470070767932911101196016546877992087415062186924352558605660814350070546365728251289908986529882762656823007437703610580622266454799657003762714425715772581268682546629468723995640650972832407761438918770424976762342214513091793687746062916851839024680313643989741696135882918597365538906457751308119345519829181491284576515229964072629833896418739380246322470736392768595129132896252267569031289898208892471349570142944686822655595752774582282842997280977738321273253051416992465522506661465591357598655474894260157123808779428472791143722367111530382747753341424240717948860202834057759385860474399509433265113648775432422147266313648590577719435372785810437183379009517981796311350895996055705684217532144079895592318480852487808367550068345948393424783285656352476418949336492249297708858162423150204913980435904498100431493233010594490247471847639893163168444347404750568117237464392161343183812685470940210927957187993693138600003846851436845821166800218282012999174809263989098956653940582958886002827448026999169801064240492426581075921272469063099245607421661169418389720402845531707331523151114205678509496575612039007683156747627210704573566171878402962624872115917692632706359138767846553619998598318230451455400969742685037750120083213320695886019730512187085418438806108838143347134325666897926277024434199218076863100164857338404082407585399136557908117839085420629330681229472933559716393679462033539152709063720694673423381513834269471410243982243883086676898962441571506447479056693233180852464295629231016005111864095688006805225939654913797813563666278658482540460687315167516856587130530521158705592738375347868908081484472246840335277000011912546712330388861562966960158721813302472824787916219784911643328606722244635288310532085836045805147849852094422354984713141131881735244076916983817007803170683363615105313355153309584662365539260080212583362096679555444629622348692244319084746391935174960159592862044537991279244395476191279923041584432891273052169124081319234088661680918543382424029454461017088275160881042747219249209453946970268602852630794031070690991309220431159645042981910857994426090015245142428334158154882276758200364152510502790358004805342809230236998208941459463316935938990700155598350644690822444986197170443076286932014459515648487770125948501151405397979633930100438405319067907436471299584718332138871109099823566722126380548683874189401010754001378810183931591488087478658787950015155396440761625775081863582179310117261440466688848182194560440513792488319715457124384193438967247551444236658936471851822607188363875070459294519811236411780972307434095521941405244642200902221666865483560810185144317155508745203070668135820388435215498794496039494729606547080639824562739470639744064051378929533572858668999008599086906703943434870800817607140504325690320088153694716707609996780837875260810732992479498173332139531838778328235916737012583124289064735474215088782551498414142350130167267508217911100255797251742760073937319214210392603297081076981905898803891618138257991444343221052915690578788474582111038266054989466937643057282009457407529253361163657509360063673498502843887265817107259941078493030813011758648611583290660573274270603069996948240058608640332505107457077136203520688649462344119056316806989240695412565563981942471888922035224322609723175488853172826677391037572371010673933766380898151584267604685203620367240789149018792735561807661755878181538307145722038817729718759389566296149750567853450813459765928283718236719243140097410543729784451016257543958762457903820890293493150148104836451353888928030438603690164265892316220721896665193559162749795504800925551595190461860679188081872269702979622020888002487787177912581021178942507276131979543109624664019772097232261002686374553001861908859825656562652793660854078228115251551182617048217569561541627851396377824799523943593124697524369059218677942638333073373920923189034739655757396649098205261877727084616955873614559295219812689331644338239731423847261594530885254088718865776402238510510879731017225228452997694761737582499526324714118173016020183311191811222813508856982100481816114616760485187369995611471710489695145284969675812583453612978034773231329653596522390633574214202049904797794971403687215328070643579877121283723586718612328481014289386688570376207234844796759291442195386422012108207798876551102503115293716932919965153887804251625602574632408504228844997762389469269631528657293741343016936007603532936970641782778773779306501056973945611621924033667640309078354145513831643488944997923755781587501445520648693471308649833007389808805689434606520734875952488738145285633118869663717726065392901299624512136216182124975855109246086067032927819860265252326322826483572273239183834925820212759389405715304112736281883610271502536481549937009962498261244882629179867282497649487437523772188232702328607878674144646760756001820948906734657407576764552556364224302120916796372613211785524325445167266178454961087379037460663294176926463458502392755446300306386677951156431097661700950080536746629214903192289315461344795220517567305078224066541216430977472513044952288499254238165437964069910930372676864436987715967455838788178236999390729136295113565859212624706051237992070984453068067510219235976258038209179599403622932241600021449483069498884798402571157588664260148826172477609227552782493180061245468044327036949428051996932474056765621398689679454104577806793818986787438960315493080875448508708413969377697387704317742865816964018711318755551398374341494804367385069109968928340845548658831507829804444292178135196816520654596288592489947217333292060737007254838521659865898890770988354659504458514681125195787272983135614348787393577890165063107586440694448397384650888544124079935717189272387604339267541421182404624139090542938706128239046744918290461763858177673659738693310685073570068839226144004967522441094393867947431047301757352214306870791138992751983374317080328301799688937442731252158213563170635121945802432086185211252156360948410862749282768825625016862899405981589304199588164286788710762011095607597412872305221317126050716005368280281377723429999177300500943273641748740893193172289404803345998552264108929822154491181471363488518083295243711560960510757651097870387631281243959587830946173490398347583369466057915452205895914405691865609642765085245895705877482881204132612392858948735235603381043140003572891237856274325025046365007438900955727406369494461883652866605437261524541722058298308509659364828419586961691157259324198273583245853831440167068161487347508612648751989780776187917496827001171248189184661389879780761149572613782398415346224573473913376690617788060546347492480215010001624112121713945435621200002729273788090686389119833516081162870910443237307015978376805284281909521539008995468145604809347727238999210771270883119994083118190220414788829239645428650979881116428598216955662881290310706500009320237365625675484437417993110218176231008020140461666848991344989424122449701917555764928542399239724820650415253703922881058863411919720344394148701657599845533847868765677734770917667146803823673134016398284078802053495468329590014417804615539401292235930446998544589414974439097524012233423549654251547589721418489379143502778941401688528164981439552982955401128307290595547761225000882002512272561369373743769265949008737460443447568747917170247900735627167818337666364901040589004908919037464562017867738315369910284000822875981974853524725020143724210479284879675997055778633111140447469807882752130953990808031170918739221378473632263320076649516350510825897887220534451471505163639234558623587477446622427362128110925795828761191662541536846573185406772626628180746456123652705702613999291616530551980465265030554548499179403755411083989139053949669149956241308657657440203839651663557873061789061420797246175671478853580693617001984457984350911655102002273651984534847982496446187446258304767464826173612333863217678883125049127792009266884842381818548089727394461806922746549046732109474947459117309631426559931051181446498491646573488929909562360569180745378234301662743162359500345076371867998693071862950698331108755676876752095740314348590022881123782362422610194674169308424929581882290971159753012490415058393440528022350651030862184459727403529392769896469538546962372842851718870062273433716976454998828682355302327643503763520442330312191859473589456042668354496126899092401308998337870135124523948795384596903934247060924693398335944514283381668768390601454197079224731086282168592765472336421218078738429972932575872522741969211008889948349564227696402311427539124474432419589510468682513841571172266308178034083469444691605476793293889420433966208647272271340585034694769837848111659256157715352284042764824972916255731478640882004014719734509654777030128475568141016328618137324409859068562663716058890707199676569693695577718697000834782679846572398312806248566411958355946686463368241014706634969054555589265162962210076841661897345442324855875315765411575235082441977440508940990094515586829666106709670902421885672635130220769461647419610124835004883243990996858554186876677309613636285574990531672834279055520874941700667820958305569962494777334336350713831665009160994458603070199120636209472616281628154305055797300197875513378835228335930191701502437749238293956379358962954953801061735070050621153794116136924540177933110673136807906291585771153435290634174027337465251218836939159355205715254803914101411607607349325512865322420066828708349329470271123823044819108063670170555516816605161708525775389709427072966869302260064896574146620726150470861373723724645325437825575900925675384226193084201930141705544579737519753004704168611858973324224553893793995888972573965585786621204211377058501004153632473380634849308781705566061533411288607376743432071404068751768453010249189447882289246709247645453578114727268341198125157937479385901365363192228537725907459494891650089063531037329346048208127547665544803346897509941733772273008008835138661216396087695080332774463275202112383366389075701736586883407143249573763761318902317957201193318346840757130035560035891019144267179484864097507034891571557880121672194813174243874698484019368355064257538885953635406457845952580263489405368485245661207135202821836091210728244860357098485986214991107205603824591948598298235436647477244318744362593852443193498859769508476998303011442779166402353624406948893643366651912063300227069643142891417815651576241366067940864427739315087645327820000514311441693845021360245385952735824128082284051480072499505950421581980220321191170380602272622853152778225079828160184848044638845423818778217104534761659376260729708884217699804406003609507163059379235337276032567908429663771490318446980759242293061592887578809375455664416098881032273324326116095521520558655728808412282000087549230838283980249303701852920622387709877042781012562268286458258207489374506573468058957357127024469933040752354544863848261179497749065229880663969154916194567573417174146656667761558913022851724937498914231544042036008376023193268910997554626585144244130691699988162808907485969048306877241500910924822607221195366278356268888066691714551472040654698672446134183927546666394924222757872605386194266203793909264926951308081431676592825048764721048635839380560930913730692084838813775627306414915510911084412526884282244779976582804516708878961001559623254578416946031392298780545287215559674980408504622708262598609921560665677605919647866196535011861033873012068186269889831755538563493334962036254588905835397049964181414344002208060299886141346858423913934015356423247214253014285912056576385693562776247087717263782078595318143314668428861440577879484394185441455390118963375663753705902427878782986981491497904899821810205290687974249099428432273239292737922935894937563460447117413461811876377556755317135332869446788663368525299779133888406252053557672745226875909425026988026230290295919800718727154390507570920489474278808112161753705708177786065723273944368967597196132409349773380717748506768066110002497094831775850489613168171047157601328115997979669711796489374936580182829314688532667068635647384591938163006141247385388455900458292731183045319492375073949535971393532734157355851621085639294721898095939341482083584956933469183118947980144332181463352839107766288844960868696378265107375503636164492166918087904910333994848244220747450873791935474569615644102072323320090426503949670459479467217232231410461977817923227968911516033387085969994751284280501000750793666686448833626725037759025211026258813348489287313666404959347028020629670055707734062202975577334989184277808485032949241500065621022687299216940843023786907112148745940890504767609155597377014065431151364199391015322169319775060536264632456293786010408510259722532517309265096592347969499224833117681165948060880008261892370405949807704001739674582189242954895071687713310010397851533534531471068595709445060537335919536586171963149700601821601511678164458777993723274548437021671969832403521589516853551392478205591282796153491663015145805178884114809718670698427226473253962785688562186013575514802584119125786169815402760912705074195114039656379289828828522740860145039535211265389538838677939951729586292709478412739115243311292594640007261346492499726818109451514403360630052871288117634557474400496852423343398859029913064236650173092311725493223569364627082647365396147019361465648808236638568712743118146280242967084161021875899860964969235031298244682022862410158118338086958732157760182237896180157677998926335274840895731040846106853771869639844131858461150414828730502311806695986341793389531746981770668663525117787844575853111495225289209150428157492245559138471133042715891355341114234956673240438530735724622868469222840837937344847060291693601399304095065459619003081838025272825630822093726975275298952076633889581100393467050195502721525407078422203158690015995130826384841974877768499169239221965372316654475744076410100996506171262795901780988192588847792708101654593733253528412802007575104825911652513757834010089518476852491018622117355534863696984157401995560286512422361874058340908447687897154212595303559132707207606150897381979948118563835674506257294695134369167891826306650795243115582636437199760377444620187910161354244770062736476565491962676164446807721909229290808662281129598849247811486715342571553676031195245475615652369677038537047688660469802138524803056117638206875750675813641286287801377651406190726700233097845877669182283339165129078707608669375171168917416276908095517572796980520168210271626213606970604160915617887053054072097976849302663763896866273605011398898836733591351396031547428897471385416969392931830868002123289632959938127165372211852951450167108432074694204902097667007422827466722215683386341302328609110460240156123049845591409523921046097565436483444615085503749970595533666022134626048399601227327364191069494399224652457000523913622733338328497275573933564959431552309012332305634341523510569628228677882109308461215686611444387076095828406715187534980897143310274396702320728683010530558547406112071090359352224531897377489287212239388744316548020903900810810885266922772461931438252909725863112461577955027598220706166870804876950054241987556204669927466398863934848684014223352872821444039547842289174547658271945439737217167460006085368620665973430515242833272893912510779922817171405917223602073852789264208037379292786435578021158357573583590602073781354710814495049045918321175530154501983683585986992326799363224360435624602028470500658345386692633431478982991467853814916433293733770647285611977754717802105720656241678062049249605068101450554440008369158538639919640558302728633212102715925478049198906708906687151219434944169901581812162969164529656672888226173464699874380606663650125491935299515634267061483686297879194828582851812784137702694022167558068283567621527125100272253217550117539167618570824410005697863552015457177509609839035001282512873029138851759746097154637478515816291219002842149372840941016515570616862064622207366895549393145435182266250177371479799689206120653252754184139144761139221521346140692864193558216544796702536944885444171239433349986029802709850271418159541678025432450545151692226883222768070584168571088248940081080598243638806930494014003605405882514727455882582328529765554366006097614188174543950683518994306440767709734158274975433460741103268881973632510295986891271391832732394065467765205701268560215837385465875625128673719730520083545205711511563796715242285437561231936717685670090063735425030945510191851196229951403259743792093543742091184315511683498513254915865438192839955738312594536724825067114738962967299087888584888259970107422725250403548180496285225705208236348512269383156280672836714743505598392797326066842950726351382751041974688976767259136901730651236573171953243101286956107258052833631589009582669841735396384872016520049064906403549854492372294274183784110330807773869403934504663332200174222405363394075275059829357491086988185410522731299102223339766125332469073008027004902589119786609546141221334121389196263882666178655614634421081326330771760786638063634243190918325419432274732411523770487756138092796048357649969536874851130880706247612732575037665910783165878576855066198839794583026908602701964112202257366058640739291438772259890740735987644733155270684661916708199094210860851403328060178785143014996799473634236622229182069032445301525015578576015228847367151823494492654828857179769926316352753845576557644067754489066824899661345595218009781422086726886305642915401382965346857348996719724201717604145629991302514144475248848788595219222684372364532964338807885110699339769612778269162546309732353545146226413765213929750680992477659734726126909397872213928074558564709998158942966851556270403366058762305340310983459322900126983226920502201581434302808000223658015463288255290470682507363006307811895687198094076715851261033440193829627188086008611697072396703943181261309742471117179019857430123990754035471650628805126492009560551345333620292630664980915408758176340212996001619491110349375157655887524827214237679726425642697736819889088217226992655530498724790479810006504684342655193059548646351596583419325601995394272542463731715151763524395140380742442385772476565961524567466993162860282648550406859122463407696639769427013669388291856076758200866943833756314593294171455199666977282218147062090620349763171208646603060567561493310916735968692629980336515985213008880240461816833186087792966500277922134760116174813520006025989515021896326415385131177521071464107072577934971822527267900599337018659615793278006617691118316761471579646487410695224537611456887923115088630362384071769195998900356580754727010719916644775922773065889611193942758602466572916464778295951779252172840786074432951131565811663618629044736315551565582337341020541097055398105511858777484725531770169456197732740007627466291601557814989384991548006700158802872713964778855533405015257888467196480205246724244939551864372558440999600630630028981857811273531940034448275340042960655950892253518601554222891764294635309728390571552519220067182252044834569572830248581587778354371951268596542670816960798234661679259260735618939895590289542298200690113501199927833705761754071258348058278068123894285619311111413250493316426052802330398141690067988980373760320995164384890586993696068307101231796152669245304649237463228462799082423347983303740344501786448039881275592259020465366084691021379484236888145262969686621356647670201426725320564435031311714441377135146736716972654522654651061440382027435161022546011116219577553769090129814813688328624816036689927739083394051471433848747692011642619481923964494632004463847468847911151704484391938676530311008242387049815245204055739620581831624869450329535091985805645898908744256831229254345074737341519527423647641802819954873173772129012524214467540429458554024239064717022570044642487593638766367067747962024427680943778548257665128437769009314209866607101870293385933104377328530343716889518480254779912733313963366725069762400444399984287154827354002136228003638783578086193032813099949059658918893750753834426925570332089037583246284679499477201616184924480670726066423943232192320717600372523136002600793811788852402504577314925350249739942544051399099724277891851189238955567249088332253210798862708156400032252780315109766866228334677738349417461225894542098000029093296907437726013869091027914062598515250597766818440107816706693400075149348285405556143047553911053314375746422948620974467908447587646836317892773085988511135509579474495421862986677496696159474444092731132006697861138085905453176264945901678196971498613994922697223384527051438093895135046443755122548611170891396680893667779730994384880861933190910435786072084967307382593792396359932847510040727279386262716704475407571920250393419197254518948311727902461404966895517907998691025376489096484598167090171393512067828395799612263119733149133778183433841931852367538662901900463343328532834341824921071916092767308013235369472648489276442979870681125654628061172604607332191763047412150640302017893205795687605102775250530436122270960467584531273866165214241940868340837589140095114133929545770094731748116885364094183528610997103416723558178602823498202031499867940174041719140283936210519480604819018245180081701371042197459212798404024268963005335536854941640086392177456769534458650883286298216584601645078000035989852129012395900704202660744988785062717607762225506063907453194771889250990581009367298919540995766335386583780980447935377991877121429774619764094727212140235326551777236163419660743763915386601945017769140062406841273162958608063506762937751252934367596073427199675135201580087373954838973439901238256568290785911442588285213661692014029900413146213680632352650865411218084749987584411183629097908919834118753766496048093626489329104390597725632955813887767446954618157978704191597558335000377286724607351853508854954642029309715856369497857640483741505558099188402093433335128195514555185733348881649167694427782405554336977311920143722541541927450597601379841443735994202876052555718937804114892612579830361838010771100500423923926441569227790057027947401364942291847933692535432484048780231777445184177958355825754761842549575395878549458343084804417370879849267419528932303148958991600685422879578929481590006873537333333386381390842099487255117261710872944088868447850811634558526921415402996720988693715886232220331485581742682635950689362344813422473786939460923256600754721256741410342184901311896396765473291674247189934243302802909269850752294907970944300923867287743936255111313628761591973832413491672268261228263127793811750807408958943971900254264126649479801764420164541588131760189726596246144139131920678503524638306577640165229732047089201146917133722878630370384531341942644142496649844744048617738513529373108099859472815111736507191398812693074826906140392864227662784943295588285938372148475070778355119896224911955882370450645820056101702053248444902150229456176556185921457439900955482294137515441361329150430469141799412246093381651362627902827884213812207758942403884062294331727989259418366829367925960422418459417706530195486439481703355241028747044731171507034775083432373331163258767276368346858444865625391872394608273247135004489570868031503250386764017353150794003455728550370018456027699615061568291416117061046161740824846267033518915255188248212726007259576567889912567870201497866790847106631074876467309890914719798792598590625733649734982350312609830987346861627393580579073549082468304972840977323811670824915163734680870510521919176205416988262547605445817711179937767786965421699257855772042634424430420744954897033904345072061190076973635174019526563221392825831205282400374669545909280452596879846081408707195342547613883633535119112144143148505520123581380626492313538338767580918892379758551573203658831762424116916752381458859207516403523668437267917590637053921979811265977081139473516719629999705209017090758985691638906642704235700744502775120104903948148329457443809746260351057898195407639870607875817740724911845069788429941383420608124283901488148725998541814802929492278783243561055491564109174887706706782011985910958909838688395117183801349148254992749142698552595177653612624215726624488960961482979703084202105160279671478561594064613638247758902011025199234215321006017523025742122375421074959187286751895521553299453226894251884094228267577442222755282076156072771039471825668024710660677383120630314662847443386204743259568505689287162653290832787843996507167242206138294532916600463808725630595241532881209370099229896006981396279686279567635198741824018562931984922623336431899309017048819952588273388079532658851449393812411543273205891645786422945268411751880818405095690469138134430778489021148797121162839773443054846149807935624354967141294733326664224830500436445454702749172320783995650868018761732703319065657954753952069292520153070643504713068812890320538545563987992101095667298287304794661005431635846234487441555407133814323441311788424196019037028686962422762465024004208137135046401599347205327556795035339067127216177906030216239978041857633481005448388703173071625525647995999986935319681301015629709787116730696494027491665726749434320813231461388692553349492941183163877889903259401093411157274298013318145782816879135142439557873420591561458773689880807917071145511547626616820817775747248427879712981548238520368959165240543730524667287313030192582952498763932098573120916105613572201763927169959868610886760613384364961695186548486046168484824074383811807417342224483947893998278014734222305786541021772926482091409485035013224151559999016307147814852705161443225825478014344010953366023936264249313852294054753641683646704157430055837298470401814557100296962346985059977885573699802182230354923831879762989415697721236384408891789275277528471447762189205742545315103747997770686236242189906303096282211773219708230347745455060238585911403898969166622077876832601239617419997623655063632660169906611689088687741333780919516149770549214171181911014954347869382062098082787895731327899060020863391127847153684304381498150970304770886881635974192534134122191396287457810993424832714109178276317654209631250713669263658821357511998754011579028028507806698333841833826673945536831965657170319462933641092726672742449927473229138009835744509134079930856836048467786653542105866800521154264867497239537936421566535872081855412598194547427516118416936625563241935915856950889053531412183366239987802211504245660015023646910815997419202544378736102267129412282988880533679439503294048049616771107287881031614677303715021835289024146481754309549059448875410425016804069999819671937982082773346485581585910776178828497505468567913990401138456243604035744024619123769440220076042143357338726039253724664089664914714654730072195292737417679613565233067804268200024230741218667486694628058788787382995232780501070661013854028801191385573091138057275589368194030938071886379375821544435162655991203087848205239374935189559715815518280481480783131053509682356716123550963161528665857859019528717754642506412984945105730353324334890979972094572917009587840832214044050147411438170956577125267157798170976763847864206487613679394578442385860356496644631401310486670561346276901749283229004327112081922956415894815282655842219261890253051381591180342310885149122665391794481743390432270050687428881996706196068850067332835361468049859608140287911963112748254664043703847828840079815791344523210166867374112129449681345101223798429402194794691664815031243187396911960215671211422794306820104087675680937389820546842147856014277688201880717174141274936746781751322771090467300153094677730692232909534956944916011690468181827234778161975125727851535569861629220291884745302698301566387491770219476050941748668411972766044408548329750498907825806153902003010352180271792099508178391212339700700278329061937133682183369615408265203927161518022791528640768315032997406092804831050625515722628713132768182478011691549378624832240172383707271608864192942118171856467481185694008705299611314105945829387033052862979188264932474201795512442329476290348834952722928308040122263722761102752038001209375208856240645311250372640153996437123370790374395120320285350254748277980930302021966325093290944881905745102985217283069962242195471016519393297693706545763334324332564331363912210835291355577008126505397931646814945134120751218835054739685955538780919473746566279031868161713641615215540774535438041479845458406344747450856802808623241269693993112296405603273109279384916918793335961485351700181496982616480034402782281398587901486285212867461753848503480683865201680747674402114766556964387396757966442958864095775591541926150719665373410817064974822204191350352239320369277923907369558805779975526019030814355084924759818577979802981264125192698083107565746594693511285627975905780034193234760013696114472901311372932651887731467214107412752210105151558657134939127688557300645655666359352535450945737896883580027707210807546851979021567766355960858995244927220497752998154586253592955688586552190862034885742944354883401766168305532660245835994454330952973620564282947453966410175938780787579040143195672644502565389640520071487068537065627117466761571918106422804643826867806417817017101455799878594929810286748774716790174355039931696835285921164814878612862891163759927684710887436616177623930982949823406413782807112174123783422241440699848632882392406563774389808463170433981419017041770458564678599349411376710185104828834584759112985991132618063116652097710932602545777664047811397981202739627905217807965659334830319638637263605481726175440262684357264514741114361974748853281352543231321040655374753560914051335764484512650315994993984759123386762589988628267424214106563170282684202742775354785278498062554779673095621350107513570108143767120973610656933898112877006439508682263524195798998752445315132684357712526955116568426062497953005641342367940326869432022127715528452294559060131663002332978618427293697054256408957224731479608422799606431211557228988841340690157060791698553970627069498692261315505954581624066542762653609898824692284240221705109208845226419380040506472351410654462939736295006268706918574350346890787025266889903105903073320209977070195562670800784214175004024877643693827049667540691448956340009298523549912969960465402832129951288171829317338025893433608886395618814530549363321022467023712349079740681256872488335280182087968683767489328659515635001584373454271486153424971252261517808647183501990499321781991553538737856234550871431390503843286965138769032905340152384282439639132568672927224870847796968092736560421516904023007501736619499358544714404152214106474972421615230372466125530179653345435408898008690163071891588084555221984311574223129451967037586260587762633366848507527528479034425016537649163317928320735720436314962933262171984120414969390021578987584055068836313189782803270681820620114709707824647760276296351324513522519224278604476601784554635868956418344082595532543340887101615107036746824529220467808485318529560302603933699879125296023073278584693716270374914483889163375005262169733233215240070875809848564628977918098482534272120248127256555150503057004181198951860921678780927093724148047112032092752163821969300536677508468358938654452815223534755755907638023785215194601827245682363954905681259327472895456989344711418098131536495974851541068546097863303248642987770186355313674508110767638604733464029576882115288981356644930949310435890364514131755241478099253505914813095314712262341354064609059803930072954096921369456449857878131484983471061858858025833538008663482207458754757769206741006757177870214802490680993540340497808697475231821368788671920694203441862152990046866853574977871014752845821521535098270986352770357562938493139316042388716899073982395618988722188420611902770942990322757366871860797707077215592326418136016971727774070288413457177320625302988161726406498017801926964155038729328624874511566944009014691037146658952807690750630991658019040282491239634567983926956557159476136694387393330068373830818123094204415929595171871924926797929712950294915811852694465448881606448909108574738497225266256135983373917831949599150654399837939835090051743387881718295516184473257069422937536525515347117857618497747797331677160714994214526381704752272729557050017337440135602978121687188613072957200868270472815099449365576135300683820300724872389186045558234056763187626236258904340796023955291440818688735039163729934716281576586285346544476718977966400943420249016434108486305364084940912887711996506980457880713797795159120425380257091986045596738860190163441482900997297139228277863871263080176692137049349769043808195656188012979091465075440684531805169404962484549525186336324222226145869950092979045626886597039309839695602356438896863299233237659081142486035803545169782067694889248663833068791765942638200926377890316582705029113785729750974004938675358051632321698473633858419735204876339455394642739288524974516748990465145947388497787436575894707717794356270743257228553610149292967565026585100600321814615361292859106934321487868637434297702059825451095805417445562508116488195634432335555091540702287345061766348980049281114848603366735880522429802762450658064166164609330965832277412016870046186470873546075946002355373436366858463000829891159321746543217351175531575551018630965885602744732881743617645365592624617643877740379976886080184145764476430357129839955569156559423117453065948362502060364382217354409655353950904574369386510431293427166581052146477362856041042715237293978124871060598593201780757738436706563113506859305888608362023477806498797585317840167290597876570281387580260323333798832030389685399914520291291252264234896619763397182681060237095975966298091853481901250403158996252047170767663998683531531966086875291254231153750347550051536740686846995676773305775107923504903457787782633964738764290564016443331682245650903957006685680098251827330581904243226112894851849188221425396861310033713722430186839559644173467084178320400757151241680837554131482479240045243081253677296897044406796431797426815935920313582151463967892385331469168480192378561366570636094221329625671822214085376580706834616858349637565564815213278800208251696180798484047486754286481247189232457278488099517849200238132149505597686097804392272136566791432558387293962885557531898513390471237808455940718448328361153361578025705836438593371292347805105809160715792371735883271261645606567945034809907997205084227305474190778110649402160166666295094593246968082788587382689608487744561183798448657304543205368926840349142345088153510167857570666874956376066630729363649798409105284008454623326178181497976141218187286126865346071166509551354778323062741181148207171646652654270991484788077768928234579548611067150494736473997364806652995373677999340235327496480103446000856397697363373222947146973027764094077539628839012582466293969389877015862089379918551693308463815996539591339262924500564406760974231690307802715597007444183278386392005915041926664728752789795492770341508263915478969268833081660479564209112379312512452382628913239114259259248872353135341403716733799306171199648037407664440361082778150937198926678995883750525547609294200184307444389649349681425354244228754826346725993997879597972547224411728760077126088409395048119215967488739555862671065490302132402247707926524977694495520510805641048220680217292763561522377385106360209720313789483890876087730444433910703713871331637490928215492129660943559957654250506597023923980013397192543988353358193260423553346407090728580486521415339035222970604712201304941234553577895471248630004705562889455044608622266485238473107331722303856418653118021793512078836789316324319258064485005114528227697470288129755672304193896966911516840342521912666860561300384520538933691121008120502524108795220346236601390629409586806381048615670349189528899594434218075363312957022412607656628378577631058413324970080210963951349160864205194055137980373826514725989990212475135972827648704803024095769246243692551113922353178694829284218555724374736182657795600351890158768759814426657626582583777353798801168581116118854587199032823772576597479255550151703522520432959456689504597798593133546030580462871210509920026539199902203280298551349905589529620350811851911623933176841545106106551624788219806941469531402163854294846509930575901842547725876857641474091708005076586416337693581466078187224450583794243757628708545403350110537092671021601688974251901726647710911877340196587613192382440167786694473160364332359105304639269254864734057622116648426993833030504817439731193500536761645050844763047325637642166613981817216715311128910245585162073197007003112540505208238290893128757564218754167861569179700970093805014298466685212001591511327205923213373624510092718572734941352894812323115992346158969097896744541306276268725633046823353137159651300040615332005626421384322314827035473586350919884465338356840048416846538351475298726685210475900910516731592462648535707081943035235987550492977333075317220355734702365170793159327874445498164459324739383779436527800310927753543734929701120308885081138511036298562059488346961563623208283108425028737613641284672645036795749821634469459924402320386636095796527312504891201235999628480875170027135590882128244592123659726362362619317174993060278006727038520443869442023962659430717338754484396493573940165446942543891831593959675009932984755318320197095868111474034114643077490787323473238318431697758006951047596253478039290531227897202831710307704415204096202753606616877509538749135648654899352851081375466230230104416440607874337993886594343197397276280988725535964218368862525286842920940766935310174676061436150402241061006575183857818459430973816665274228223595232656315600436346060661799295434268127824698023110783192217548828248443489421559050962496809551681614178408105806817300900263152721796074723457974475343900826623840807048876766201256697542263247684144360299612706320364247672556623958413633466963420183396378254225447430632805351464492080284011693507171925134344917591634464815473816005896456760840579801659025574897671187722539527000178383461807683357425061963779397290718664165775655492239895116050443618102059416850541876584715902962594030767718693860546243793895291773829741484639269221118535479059909509729976074738729626472760521045951128274356312709605950237557318061954525987653198881915837078060946073010461531407967225257577860927309190246919298845173987163150768576635186493797629738066031650319861817206511878673359197652395674431888795336522908865200801404998114956576645013571486997392219460316658901192022613706395492150000809680804936515617904441399365473211942270762716806623267993172218125745760915245516705097654927987579284966167376193685343546860426007927821050502935106026991107729258332233138942398087165405046314658617867219949974969729059791579184648037035187388643820270609804934004556786093076538261926526318112021863859251656925865948327448316434614594036961723580597179588829058381523697885331682301331452292999154059230227405855037406285359045976578596457380652160026315917742888124801830766646377077199854694714324604154308710677882187690707969413136784605770183828392830947916091577622835129330815994526976068402659423392885871105440868306366385810204736320944965349887762757862699053539155327911881192633510691931273397666740914861397456145254527568838051822852660871349632838841836848480136264582895400730650791560741028890834546596253808696255262637115923594826384545608725836860376198170672633744812876372682998877722944540407706789940164381250027554201698302306954511629983134310718899098625410160029355244154862591376159747870918515340256888813019892188445661116491063268883242344830962888049657974271034082237366738282557725076771530518606164830633559801934071098971630988408746725910445988875959605303292488993638521193949096828371086457135234560158043864297103538466830596898796808358734978576267855658883836495162723545207087795334676586720491617208798131491416989137566464545697421666338802887093115965529089096858324662094236872595520958765867639645258106276095395529149176518173767291898766779842511921680755258160046926728928376965028649208798782224421071404646730748519743713976053074322345155253212123587085161628521453800836861246295154803945332968377364248629645702435818923168622649949921863498324681214946737511994819504507449659704327176040133835522236081534000479598193685223092588145754597956696947562389495724732524848660706542882562876735928839761419619059132908399469163841005321889186943256572066776523238247316438079769604445729694465028343061665221698708026175757051241641110920735772620397041168885940376105843313029314448290659556842964872963771613219507321997164144170256546894610127030824597238418283604031166034891537160762328639666165618560009467155491519746730842325586767410973340298461696756421076322315367897998858068319892283085976337509294649038791074370774008463493623624008300849500735581649669167597778658081118230477074246964360473279351820384719889611703590083004556851252805095510667699602373878235376637278226774052051061532018998380611491985952875002662945542273526058148948809979407952381788622443301332364554325741038837042323980921416149632755395663617686752438176556625101337430464808207552851564911671828345413047238795984888999156275919082152195945358943987391987885447878558839301953170347124025007207286819666318891540923756298247737363589629303730274864925136919788906763582461536907572381188900038683408930397937519930653817228736677538511417161821464063005399340793672109509412332835057142652831949674694850212250586274045481109395874053728880966522799491313504114857375818994915227341352040220177174269756103240539002593855895784915494068759108510900445669877902963589995785804399594722284335544039138455157545905101223677094900429072516327250643891141494031439293381604921411482986961512607568119300488516042892565334373068623996218120083759114317308944198998029337723050652250270984972059596353606069301554054235809356222199901761551336947568289739010093518988689102305620334560674781595563737372431505131046388436846166022210580766055016338443951339275390504719811126778937842527429307171428737605543790415357814619485598470604040101633653118930683696593975950084585133272847308800484877403931718396492321212575915598639683100503344056052789887661147243089207390677171334489995904995565286687043138974556386419506525626338200725605325025449791258937286606936652747569545855493793654946690595626482216601109072227166433627147859946459999267490495496151264230852976404043695030783887567665223227853593755677217005441761522757890068849222464725810068548316761687053704714029329379429575971294561345245527545656824943971433138580495097372060753941257415629101102326051852161087629611346623796743611234251779934005960149443294796416460031088377668870592004886201801963376976145058292176891376685475541938116074706436461835509504278367638447274620716138197119177044448797513778892289958847382008296507046223127280621051269910394458936078904429066128912164886732932771245059557649995316456888885393740496576571688091303924234856937644501999120287840027354636310802804883903986446286631594078401029177968777418982862222702853291914550355495243566744611953366897039280307633613422784813008059024523229864536534759379247009771237251485597896223350550371408237388559899963572576815282498573230291020966336552980975186916429280761927498322965219448169604371548847590855272358644048020175814257540052934387946196431967349029347026961869732830560212662858359414291417643270438839971403798486296507440722652641634634289829191540694582238400532287197813012034284651150002141596938756059895846743378832151044581733491029314084926196254430106947558632673613396013154936002702882265375501691319481721677272774887979071308645912517689622702343482671737444762540360443612383426636852909793473026221774344093610047343832594705561796242470147957759938396128282186704046594736713467400380288689067343505606541962915439823233191663415772757772625566712728756776474035878251863240142935123099265241861053652623906898057679590093782672125122055111315834782392514171893266684869674104933862880589331412583648730855968523648709573522735515641731600057043568337512858648679877762687891197017419892629750373901696681145531056396389133491947849112600288727202243629554113302103288831252179038609153411678577623388013856364347123025313312758349214962681684346180565506437686484432169160099329793588697132634594804765801673028762362637540464177371171233375552907616845760984120314814906712654478813087496692652495072837633958248312795542416998444914156090821234201446635611514398786928367644038199996073613035658764068334110290878236852304517716218148049432624678420340375691218100204857133468386031640918904933187028256511334225965139518362851792326534003162530311776858304390585530314347000949954042899310620069093842985984946257642436427475502009295982199705371385675402423995822493614688183578390529256276625781476282549052153118845167267925851062996411218904742903268982903001953919556490734818124668433899387652291244231198145746620093780807965110820809202500372217656466226546285167806975616512298469040287638196536023135636136497663890221979236172338854918198095735229701423204549139476002030983118265134708319579082742177973229110014981104209291997270793913105416884305647668068288143263931229248475280351556328279527326560834108816169796102396306652310043702682309153399901101851784085347966645769639956438623259072566307560394705513589758512702593763532523454546071157876567775171323140719849308707274172599038347990837752226623850161890001369665331022529573865193690993625896333791041177586051878192070877765609994109805155176052433838149857884415802148300377380729422205761142218734191201738097419160390896945708128691961868771823441333977805975939917040852574024595279535895516836710461224141484882350704209894946405334610298148181498384962874854695004074324843010042370237702693594977809093900955516428125416837951222634081034024006017318562283671178791286350576512210523464875470892286547579799198663491343367457317808000101592280324580415606204058814973369054688383056831118856426927446668256282605693182711497110790802221674273725205608523980970519287617281829491707968108495634209221568005222657659050270810105964689600419159413971344320797487520061970362143653107681949231466574683330194256177258029656287105746356679361964293350904175915476056437228482315205448832642676308711147460636034732834323009419042086748123219633559808929813901374321723190294403380213835037846658247849282371602845709018509399863087689746361213922287446437282223068981442710808767398474519868597356568324758502379022904387433865650163543092049497513946517120423996380485152404382714004998736609221595167943665520971624671902878497234306879414622093306540351514653335343817621214097499529081334366887421960854630056294187185719897965490389226099400645813457698989029375252603159479352051728738371667007215479619563757407012855926075633358043611785695703271510860973326600211008827123199163759340997123032026138109889964222097317552741425536341306159729484372048567305363345356618321960256972367743766404198553908458665477313344243061721260086297605296720785932256229235584626284633318929283198361000259218711370399715055774932048759783197671362863201844282336539347163637945712771588409841768777705511446946524042208853820282498929639508467046570193475974601082109002237981389393889173661995870235322219629414991396048429927934116586704877857111337265349285665368928875089626084058604973081180779650060100681097962304559548011897685661967624238931275652416559831945661471675822057205150733187438649959207729217154115270702515737429327406030388997018176392492844496144989211996008741455920119711061917813560083117939437002185678808012611811579946414717303547906767039162644803691523001638097509549864785771530193320758707672807382416272997985657219816684445193115121472153946260624154747884492531474522234289814443935668965208172835201849104468501236353466594439101771286059078923203698177814414065765795314169342756627442756479249572256177112244150820590572608481471404592395307959706042717245927521655060051371539677724263182593431649599940848813489629443980192805044699030743329586964202347799440608555298026016876274594816524700132047509569931582510565956554511246812167410441892014971291705911320464869299521893607872571989543326870276421120797111258063437179070285365686818813064931529035864912313662571902811608044992533173093318861973891372118396348879203809214817739751512155506071421237847824951464949328585000899517323133417944919571954937381022516204335585096404429995065494821817491829820980285016135764697993067913222478498512958741989762340204826428706202051130484543207456436305468298589979035884055646100674589972300286489589524145330379221860767572196030001998405346104236967394846598198903322644713641778288583186156410899810633325669588014908754891185529444754877770703325428165404870114529025916253519801238741401043603630920528139960818578217505919920444071679901533844586401542054227660394950985253171464765665886681458842246276815471774897706020161939694773855297795179206393425938196355238038842483958103927567056400517745841545364779201707342682078953784241931871811251340019135490752230188536642456151886403026504152062258752697464483059606000866480846739758746940310044305071100803285756185260033706833217834100697307370364032129825039545915664516251801635854889250188649041767130862347416451200097805267165914094586669529719432662613627554666276397479883132420766002470825655516863465415732273037984633497435417605339118055495848517100306504714657091740008220220333420842716210255069982951669623227920520679012499910597901723864217585369064213618772371091338814995600185227362965360920637316839784737149841162314047954571631028508309649294656142890777360309568914137573724220084319536767372075167234021174327264670777570720566446538170861043049130199330474798596351648879646194492952890582573097904095062772066683569442798805496198375127327465076018212152053349220808519176266170836135723334251006968310417820797186065027973257761157165072402736511990861376703898866503275577438942275815661730769721836436801942195847681141757576578022594122936937628548376150113712094447772678839072637650618932744947410926405869319895905855996960097204635671095586425942225071342281083161078785456208386552686224968775589567428400965170789743998364521940287896992967688552250992454811316798119609584499945128301743956586455425349246733192769929221149864428842742821896234377707149143857760805808485642730371713537642453067937869457905752335076438815218106566079270751572528839918515710526005618833910853622127568842615368679981807360170875673642170133324263530619346354543601726038855255677458062131463820548899779437994865925280732477127701533566724305128745511130522707692262151065261479813961301205482595539849829038221658540002787182817945275934575981606268256693535910919702531758789585078642512381690228684408855504623386176809374387125500306276779114460427175023690482605349682200346806279793975282372351973107085666232473255481566912018466156539344860475403574057353264973565944918990736160811763133524918574724029491422191055346694230286637390630837957952652291658230260997650740918733400133052343101030377785078752063516583462778448353683665590270558349479612983505612394339024757396930505229513081104670913249882048315378942261322355663430981141830986684768102825715502868274838339757192587347401153664671682629370155268224421277110523909179693192391277379771768801542246883496201400997322757593293917724086463489283646444353876181138341439888235343530623717836037727092220679014913157494612352486498036806094484885719893841191968471524836899608147222418754317335333742369490081762643689316367885345454285713963603275099228957125803241463056342872931869971175945658363103616835157351924115291745856865483974709206998158899997133603670512517832216587046941565206271294188303672861697327759547489832700933761709103805515938607797518316479113151091832801275251593651504886079398848586099308119349380127789670910847840847094315489455770550455036182181154602650233359866262119075457284333340654655923652677967900972402255903766627701571787453010678368459746242411941460927025518165357449640803707635921820480703170780049503051527919804684148029262375914410938821175845422300258710509897434053801960809670600172944613159435393190215524986391770306032510939596603820623564441379417884276524064389978721528985487390825419481126849740034138058770293316002349752331437832506834683239029486296128917710704498770623085845558300725385819369995627494731655208956179446276477688277511157614704990194822843238680273470746738628147526753337201210107164668619616006337713521378211388572121554773972169330440194716653483026828509805531003676041798533591083991213560094604211825482838260805945116333374599933098540090956755312822504067646007341266354406248261660563576912527998130161592594268648699500472477533277064999384644411392955896914652204299081224390628600046503573812695217022563921682177336732020915867504500478898168703646096151846004855741439881726097384472127464419545019833559323176882955783064580208982952763154907355005465411111371947630436261732978590284651319161466655167663506411933457586671378181098415646592962365769083627160722338147885085506388631774907872349191987679896746362545471260440954168197799220710427640251548433196477390558104961000164705989515785294399191798519780608939567864719736389009852422340005442237631164031518642793802179526568429978142883832138959824393958877015579907839448920670917065520349676998605415590210576514771578737867513712547304466033499423963787796271176836236896244596776440199697869302789570435167443150980228986501287745403934073972426716050025587854988889409938420910016817387489835845628935275170791170549000543621962170642940432780627987378667673022285201837041592135242242759628375037299734959143125112923968531901297535611629672308486174323176389298817540247039152280625468479103097962829343042133940228841293104759404346083566834323249561364754257986254455449889635167136444593793573500702773176734884517488709966825081043899155677099848874017882990749484423316788301806059737151889964295032419913988064778214020010411177747896883955510807421116480422750798779310315115110843383177288725255853668013231927523396907869301592580852419159088376804536260897508342110444191172855632146461237202911674061466035739643190133267351138318086854427530611568220064205077627624316309076339574680273152917799081012535494361259147198875238666399374852539797888793077692813208745702729612199390812546255462541090083430520403871083838572264217675630290493017692951152885790854789541342729679084551526624977107434221537656995492169311900356755887971969593608944405602798532282974592300572929022501918690499605151963466587384576628616558370926229549052558715098878019153598544171672135730700635697462366450699943859586530458169557668141518863751672958285519470256814867521612134585393262425217446952550700769270083280535053695163837024826205634521190864360945508786374555688416514747774466068680273209052745681753951571320375462170698262614847590710692505568871840363000530513868109575388748063346329994876955374348108245413109810837369070751045263814615713736203505637412061154369839564311367318509717496343405832290723583401618290608716587101601304215919171390236458970590273481568107228986719530257968376456398971876922517593315586797334077373304321675565391075575423891616070212271737592070056307136843747821213528898979866821776283257253334518323039274761865403919208796565258928608193070403573964208098932108943220085199416761171752735397888202661874456228202205315283142784830338686027996517517975581988333102562543823041601894233917038633783579210320377866821806189086326486741966200834537726721380300483534966960106622413864272529253000537291773706116234865438736033357315122713930047525770309217990269105683369868147007004668071319009006387690689420354186765107497339382475859863862891901184985160567627206356818364125792244982802899653618617776686778141029039884734762717902348638353671988418153776428435790683635879056700585812134278486017342992731149852582942638130658497932171960271888398888136721030252937373068728428425267681849503279329574707045375230320864088918820469202578114374706774210439314645278658963807040853074482407805394314796823543620540986524254461309609568972992532000469372276519264525234710438680616284415026327290612571927257767631402242018562351489059030613122440819438963471259810672223080736248740388234464280483917599711890693049486869311881573358946333731378306463075822060360727221651203940831736077127229108945530997277130413106141567730248755030303311974593678235696920692900868406551784355069909796130120859134208252365383197216400257843865315526851804559506527621829780729270016262380753984531787493214571767442842240498063048733634559557141921655599069316011685456804757856944582581465254105690942130415186078742436405050757001169784515992851436363314191985622039283636376980736964248023175052955013733589796035987444259036369071724627520840312123803089261318802320710301404611955903967347832214727621039428519154515034699239286860608789482720401315517854889242118587503260120766227587948661078061994316694602312466700366406945698803378941916927909305638007712556961113855111068230718626350878130165915966571995616639269524013281937122686738399710231302371860614424028167500027852370132974280057314123377107673052630029188543218495203772625172519665489858630275201985805552865567017412424781398441147945614036133723592910024028800169542825276370017260558174084453430805114569010709200685375107498005622995679393703609421655852401268260862013989663997981826683814642688762945498686986956018358721332468705175195617160408503607021926593490727025109947572522191084244559520783085143427489795831409061138136873218656247805199733098940110047570718189852293784438141434541275082709849791964579292080235503643635350960125171771680565549982788366872030579533233548922735814390956051222929425451105961566598998015880640054229431876949270762221110284761808261596446602704309729054929180957757759026962478243427196842521066737089539128792695710391317015524198956659379628884094286905195234919075493968337433851086788683112974840774256142888024202545647075085740339539876746447064724122440508415745987731692742806579384510808293347136974573171707801215046556077308798757870502442018251306625132845793796693426746591767544732128729799255322939565415828683586256392962270161695814361047964633701681690383700255736494401395819022902590430291793301413198519600605393959301511803485506302148638173900592786593779628397460050166002456192425055935165239389938578583292259171164760183315867395892269179867719926426770722804451657455450128217130748500736779344547024871488371884766882437818598556832300391829250722212472339543814508124959205727385821638671741214554440720007746256677999930338858143839522468418606099465055117494931262474754541149008992988802447511714394147171562048431661614834901904600119092962556851628776043685120922176537252030663261027926045712112346384308976910057607603820506269489451831336812975700849465036278304450342429885580336356198454450541852394839890825148086679715953087237187329524617526196498905920546969084045225197466547763406553670508396129526943779829719822550740087246757960737559298851192270040140899223099769250729082437252930253655458496293343701951694483160099816953821753975089393183088183490256194526897726401106041349080453131450107139376971054634766542938733278849650778891157044338998759686206776694117023532572196970063355980127679632173540570173738734560027884615557553918888819015793780554417315212471104852527959766608726189792991456157552097970404808675605446942831227454025633219115710445542963152252304360826363084422103356833710034748286461973431203220247244393229338029788392731660966573419664813971173290576318607759419141898287478329113668433025352925249647921101964649065217824280216584448011941483756087062646822170527885558666093973084921172488988070552950041388669076368399430081887793480377554118045469519337436930740150043869156290274693614588145704566372976279494406160931199311174180452044928354561469971287682350175144537389283837680072041680696395364925057869308093258643237958397918508366785268709394339609878348151314236645262541524927558779906532561633208127186353644050491018131486487972806483608496665024892073569753621719047572055407926966384435426213099435243251883097135308234078731415494809665748791962070429813217624378108179660000362780596168645858331102483433125102935266385776539714735100522118161656726351353841367755589213883356137546166901506117537764963729764127572979618546006530588154337466463750246766187368286013593899796610488703732129989880771893034558284247986325865083297164788136878369340431586994415840560731051700807409062423229834214836459375406668988799024529677503806308864246235400067920501694025766842267333776234700738508610419471106994358045344557048916857268425464900093712562476105936696388997312784658624437991441399515694668108392632522318191172864007455876341045628857512550568081525229392792597814861747545269477638044769959550506070304057230748023470574234467241031229653495050651701165431324285219759223250396349180246543163466129180222569771408902123393287886041739410135263115203691114539200387541090012174008003707640680658246278050875572041054258157045731547930958472208291904617945375395547055895534904623810081663731945502358481019922271929120161775202444668605900966401426557247684365331867035220655801458913652142148842795655866270593388749187863939123109498561212629941292195705509821590414591386112526656218794569178586414084184662918123127717018560764298414034759248597953641392957002953996000447652417411806360908910703299357601235674502894896672436831132348273563813700784818092204544487869713639440714068381085375023790679254919907435453911187544169787977445880706127946791026105972678506875496861910266428987266041554000355937062096146877748021195590129744347561903690150322987650744211659407494846421163583607742142679643983102756815554612105716791531072217779302545732287453729298919495464444302147434944339915261997646175605004468761414451971378481762117897724143554673546702425073478364221897884302406489528463143881634350752965333347820743987447844243948343786215800052959412016958449975956621953145946385170657449406445413770883853227475395462267472178164107859715062639482911743733169123087794755840162452434673160765279230383361084033932278592304370696142336185151202016300371064733923601594093487614139315780147375520999305714396909361417808686920081272999501268940633815459426180425248707055293695120120933850061826700896112557402629284289397798199536585334676890135251331654478486211389757939533763847704378960005437463152679226126554035001329447959332038995044036912341008956512641833327189635116513065117671202257937290610148423524674378547404696125822110639983260451581254754677929322160100396891835166867336830393136298532998872877313365140099200771811594958529964781866067889568730412979681933386864036542998250248976083898727879968322479948612906215381195278117506535007681270346380699853213452396070408503822031138373124673544085400354980559889762848218255029841751924213819952951835534403125784310766698198236289049859569939761472019504074153418288497163679555729981157692899029453651754415265328609725311247060977431006428102157231991439287247182840939967413832697591370192060393452424462818209416205366883589174586151994610289297586116332625393634857916508954974755610887043082657833533954872060436193138168742118417529818004502462401321388921541354063163302382161565464533991219188665880282830367309947128978081654878897206258768190147486576432647455435864796605054419314007833058157665753933917660149690172511013519303276412543790817246689999810787074329882860632105428729230684618965421625785755601612552340300580197329431255534421488652069980970043014298345079053809234458243679438749162814834015294287829919084621132239087623502463789187701226754763087919453241491141091253487734704529022285676973757021670272351520368322814498653030193362473582464002265301781786230613182673475745562719183138593703869423224060783415856173750148103203795100191326222685916207583999928414258360755023703675143734725006108456521231782069026932327170717018071750076671070243830088213495621142096666279257629475353656122311963034872979923961295610014411768430991443598065566847331837711114898251668605288243158296681577367429301750530961966351587675538641288368646401680329010209836414539013618201231060000077579660767714453237449036664538190330356596405377484863770568919521436067964328702651141982058714099621884954127590552896627174371637870154631182349958080516726387898690116970574332525233066881141023090637160965393382917542474057228131824852865622014084294835890305433176866938862725299013743012988285332041492596472487084288708681215621556590555201187669920995349288586951293492562058852997594598147350552550331514573498130249635666005715621294128820162299984814529158027274529433671346133989549925197261429546713411065508748687356789905052618418649467003626154556517859007474346830220335306212633198282054810388329437727848015435298542340690991512207114081916532842162868282636635610834323566621845834965842435114082527134184467043885460564089153311183112391186053987811676276761370365842848180731392005624904716232823299108066060664706264035428591900796973473018870585654299212914106508310502492118115256100637422924329390473242858590436910997808736870161271565760862527256304137946186853271590894846828027643878196883034690139863099353489043993961413138596462884385448545178614698948363593025023338886138660578825349382042975420534819660539437264347797913552987090440975167142565491734186574028331056378689930376561815662351820475549941943497152154891214252064707929043762128454036356540042644388587991544652650458844150220834818998082523762637834939192990877418633119502333553507950955019850442946460037920770326472316538371677976322551046150834470572786498431040691955211902908981909550664375400366598915712966903738260586886220943158567621416946277003446146558837096145418383678165326467179887047516242002769841056810499347974174742755566238344821872394925598724808179028869791780821130782667388227175699536815810068349441770141103531411070982796796045742155734677372931318357429009881725107070010270568161059092561977387252629549670643826974876315270996332315389780214195846283702358552280297758021406191250393900095497206896922935154870995796216818651729414300236510071410275558943126234999452621742518340731495182266541367071120543595047705298405516414408231604009414859322767183356104103195233484846079523646610699869631765885028193317090927754380975029691292829028718271868676560565601038836259747689933191815086846351020204443191415907723646830255391680889137742672332139947128849775979539773479229678936219309925112006630115661739065757368376763659371892114223684991202147557197223055741005725452572453855565056864605371122682267950192963103945844174558065212238893467377781174877110853585636510480400702351384140839434491495873363170337452474420769031046589402807065204049010261018063071440950890118365282910010426311261217230160730391427829982605482593748719707894559086334217056537691155991337169641525291258655071927483459371130756268223314419307505994006735363650372935500767980421512143519725325605622643945414113167472987783687140996758965630701996956082462801450491199124071218574805370693964038921234646978712255066960696516150681300606294107400804707570130916173507733475564877254736912252150981350331929933833438210788554383323618735690716080545580984367005743508507531994097659653368721043493322280618834992004827873811252750304920888817484642831901653960063046650291562089053229473199966789104299917745341287689103090997671881480309327162698123657206043315964964934205359309749955463534159984382386204942506939320142666378368948120219976141798608305898382939006739514551757354999717075389248031529410901185149261408759447372115939328926370506958329918100862084041028648992346326034564237042482425706390912938080170465965363072414492818375533047948623350633663637588656105890660335316291117659790023653012172857536620189010164981597772472905402267078626833877730111700943185140357762194548167620643753196878414851842589344814052958399638497025395976212635978594566911063706013322795334191053037954042597830413766751674976878746529964917834233642700074547548194947135986680691566664585329149030823205989028120587812681576743093072101761358226318999288797323093201014923212637326715179649554896892477661184315456716175749393840161652290784408942315087668705466527579323880554912666169377759895392556108040693811822480005135080937204668602003905500914116539448199594173218719034097188255907262958428371977008581794185070102392475998828961357377875643588549634256114678078334051871095131257599993180519092190226656156950392826194790160170231224330575443126065446462500868662274804386674419442015394260381155782754000040402071218190131574640109342733574833610146940368545125644320347075284483893175456176463157220928781027991202902189223828247035054633830941944779746913088292457205029220624985552355105654164304576298864176806201741134808923422728834745432011980726606895692588229327024544775347217655283908061743002542828159828767471359831392486775453184684460838048150815663541946256581329635955059482907633010681564496651788032837772344264957347620939757595579306386710047774393400649834055072362181198948448212717277785138995684904476270086131269781577572295464760335927355634301851525659582920138209150226200880031749728538998215039065355933128282835302291042484991010409600808129227371345158145829596251438171754663416763065800124676193027393974968282716096494372311355756290781019612424029811176798261867140483954668523855807275940560932973124055553730447992932564932798114831833202137311156232404092544419362171293573215519555826930703620869391030956262579288494465718175291633610508440138556367920711571888579885134962980427561385500828166953039086989620802903035538006255632140366817790818021164843877948278512937817115195312920602534993978761754640800188549112650947737794033808138516582177365474212231932820826980804014905348395503964389278202924723734827169643746781354156230792934930724033675169925218892240566961469968147387885186031428976353797624324269819101596656181862939220488095891535233677225687364384668169767417735744924027732442718521724582490379444028830673844564001853656074654175605371082546817925693646964418020722076795015297467508384135231135616254995291763514168838458188793842769207700363308166744134057171504307644550557086201962187509021388493215588493146361185166819219333310687104157219222584513623221990026708380222348732157579711911396826803848840402814592695923283959641886626796149305159820371186283109450197691335579388158951141532725042249535888645052952518856976647677540641989646125632782259701702333755852088622218260028535928144630861090706741716126123002253062294326943978032683573008816248684496380618338129063172066698253927339740049475856958735139345476951134818732264175263119057768859219802373209352298817249598232180205141646542331746026771047957385695174672602807096815250437335898205504740080301330175581522716953096751972016120092056623087754287106964586347137428066751678319373513256522148383317367230811981653422398026247437655894767569216343687766915649479989449089533354826086379823253949166726899416749983477046990214640899683758249505829081453314220062263702658890856758926305062177250459027499099932791976237866665291918639558768793566387776474276695160789608393162352529278325036415584678024618159880514292691440698965247194819339632313685463418650909284138271725216953836200632300921099620624942506081118148675129816086548637849168389142024407461253734991180744446800456578072347621011306844607797942213204417518481616010190843118577837369230285339399275611116062550093838015931151113590785216256048538691432381224590429977294696432227371518952580297336604535600707534380412669670586791436932809218304113925179378607725904330105369386056453122825753943173722335852211681543044363584974277208363422787961783015362502801858578484425971986713283424851276948108214828989987454317220977924036083261987325361585956014193841365176258823231664971366187149882091304281551016224391160452496338425654078620540396847598413729509315814877737124018717977838047898994943654297767325701570538126378522274697246787424130079364232849781847838418709500092027232765464981769718563115946830120997154727353173557025264097429486253814814007859420937562638394686737163244650066947567053159947268781125617046006407444558074290199970126210536944280714092216615182130793486989728370011952930810736667285487985787148223531687967478735752661938542362400071391130567555033885290142377185416489229415567163845886141110633338312041108527645828402610255558454722593759618723463643099396380123444892556529898272029900367843915104186874958244295462621261555251986745094446529022196496329554000070385210563219676582484226507331253620546260268684522660968880438380474372623233161666015912793688199594050257199993291767339310271001259536094694379663859680832664319316496584963397729194414518373166757368853645182023023814826377065301139112891369134624913279126032535345919916323452775814247666027954795407043305095730585710512198291209443165335943240846813807488753872970853754416828066098849350666996372897944316567926876367066059226649550352104308343571403351838775617420963086662250481525113784858825700250405158386183616450763591975664564712150619898520627461072077885340900897413337888452905606432467837237844238116245396078973114333370609605259730199650937439545624668662812432752778817857645097868654913892339614539387201609954727731688759973321677118441995894848614261038915187575363531390084472167159313610565905523068822701639006046465423719340430985082507735015485199317471835737304491506949757248007908426935982914383093138985548754942322744949162792191174416817622585153292309062702886262732717271373674728853638621232215215659814014346174420864122382487018421762113798480012891846115029134072351040099682816355155884962593470228424529656446314581220877964148139740521318982878542842696578224348921862124534021422918738248798312836552083881102235045871328965119752972393956001142529640219606769679575814793597999314184981204111154282216513239255907098748163233710191611397919813113343628756085191368235626377581119520159283010980245617011022257367211180753783939970561978347858998010395864273294684313310109468796463429787772268219444805699924553685460167533539940861811762259294277647153412400002769010274117619239922487172129321988282132145815583308103276766568215762232861023578888664955757065519767142309504205762010616009270364200234045097208356485771816682415119269448506815186293519056117128036592678213698507508774982207319334861979007258977582664142806319759559863145370970654776647680072587850063099401087894554709720638038948369303697002697458292541889356827697675923286776710169803509732769360272883121039870404729507335731757223271391288682308969775881257914549379342985359447300616559315055902450692901802949396531937276413075979435030186195182849400682794556592773381062149016449883428475015304083572143224589265200027521484688613520268320201235650451901911872323559167037232979034597875506946927721571147182379966807463907229451229908534653261746797338216839409164611176212107568264733826146148780221208854610941607249501461647180175574523157572564916552016964627970618347370461961194707193166112753777075198944648689161124640677993406222196506865913705310362339187592819657416107839829879513864770740645142244930292524076236866433594986611393309682004315015611717440284570589293425048899723028035902438855797151315458832846190466314888130054461650106191633925396324995668918855812076832961375023195402633096304694051247986849565872764528769709915657361774733919053124868449462587226912095502070721707162187967918776070558048101519229507432633782002791831155368264376788757991198116796887396317781452995442566577309275671432912484702302278647522453354025140790949182546253529101439352289666482429845599342557559177758575824235233897374748446334004725931357292624483984877701765481318806697061502288930961065688203005792824776845650575916401812945586968803264581170511288126050608222011029481378867623478883248252825039466886560479147243495936240857533931494128559506580257628000890635688149232095192164003188097299919802546703286321856744877047667974008052444941230192577061686079333377261667952372310225603045607349457206356031317070375962721464901942508795425966836567349678477964017862775009417083925965179211371888502696058085928715465641853891151124482809575136933274382978784025912924252701523801839428277642307786599800714990011271862672569779749355858588276207844192101150122755574177976386270585270654598893783329649518770115264414216448752086329424108541931861114096827628512901437848023439124804724666828152772743115489646255670802912294104703665441279619458724516005911000089599347648268573468246049695113680191131432130230724663416373425090192136199058793486103011684913670312515932112231432891632315514863903892049073046753790603338481462237904763363720223176833541143297333311418939424737931987551333659519236920605564181536292745717249538204457474709743381119982520693905592573907077743606915448349546454394555065175130465938835163084824746341099051994962367971035899271356201097850561624995231890502155814684467724636155469783168324827569631357175583147078970917287783371804851989545984382859669977686925059438280995311638096443817997760350113087073944851928516254905890311087233296314882559207427401434402388147125455959070011936654709673891258727027356852730777519396886203870643053734199636785940852157897724435609553832097371222349936362340929899012531960339947214295787475147685543217321671274622768033233000563823270722754529494217257519412510539167218643358594453492687692208238733143003926135466300572963673315564909795980489924726693864564374620224968338000050557898268566769671142801876726217786557664915770035246110093279468256367716153962437927712948381379723447290968522053123318201578958447957484049665426250203956746823547335325896674648211886220773024416413964005743958993445124070810023107666728342986005755493637474986490855563048804573498089745784926319775144735958577735630772546785298233325468702009571974896190023249744687725350453317273092423088905788306207272855498567467904848611804926653657381113003182547299877874226322450523541721830132563417954396498386793829456411967522772180797079505564445083804357892004410159910087105620865457535861988133754425521273028942416530758030330807963603979606664242815793244860528724956074874090361813640624302017652262395586836828920962749246091188942919022126987681974610643447889946335490493675843048514349980646095449673288773001522154402956812345344894693259234979855786079219347904248738644206792284192513273004963905388381579374791162995933734710442586573721918359134231189246812151005641755378356731275277203394208457733093229393377414746291204143364237584532278001041819917548416469079889666380349031404208579751276702343697309017820412023120163323706816098096193762383531664281467808566072208949378140585082658256120641566908039133014503787374700861916342078689658413132733633143633823725986924785670108198872061494310116009326430205345194366867309888936587361852746283046848650865893166284417428158134399120583431847933143825136125768653093775747737196608082413879789095686319242787821365341453517151201241563214557726125717115423757523043561118558919663144423086936670511991381534032262106215943974271207654652317651989664244752620471519096989174455118437433125604112060004810628341774495189990610221341264453400653485761580063364046688273922022619214475711159414547570565243538867082174995562889089016770823973102051948388718354983432880888607110361769033231078137963055727389811291277038682799321659040531468963259863919429152076441218374053356689581994265209152060722347870111507849459926379425827381004560937340373847005260432400476515103397442629158978594216190276546124371007314153313395606701209923570558935555864373324662393682733813766609885613860817560855257518818229823656205930398480268468925648315727203819634275024490538138712272836538138174118903818629370668796552740183516011067772154427487631866938516652689190966932412414576525175477138616790707468769050286308364149318965595623542786245515875993374048688880593635094764046404226690237394346938131980945539830596379527850040281880171518968731583106825414735475048320937668798878682016249772079654622965998697092863444271187840432634846582416724416037900486290633522739626326436896952186374585547737927708108320998006560378549786179281682380184437377739659675829132206012553928697061311830757497364982101473139995137801195836304657845862188194414978493700984027560068549802633573502769035013349159994106340615470787332906037072311612403418705507883790008981769470259740812636634023320523475949462864772027962521136864483778421277547089060751025530145464807254596276113743167930832271444495182515532025306889930585319483180619097628180166772303612166067813695171764875979064176720782749004474566711439030261848117098822188891664963938685131934691125989498624773419222103929318565373462824471898957875867961128151109965937010037834603669908366054995393142099942349260195172005600349859404096353991054727739469799041357870226320692025454984165726774279463961297439136852179485034061807728509874281227690114136816402846752887542766483471728545123898591571606211062103861150414532497879130121380688937808878574113569402360108611727474907686345867962597361001991170298696396753605633035859850590240448570523144308227985585804210667606978466858561399205325248703555458537010107735008864951963541191453995475570655262775843576574584612584156310747495367701904508846045178961035630096449832567980305263711009034833683273800925855783963976978875745504097761666099027954291885893089179509868123115630538921168142337958131082941913018538766498384326660489096880186078698996946395195235541223544449510914904279326593168916538452464761210297732380494910269720631973144576872230188864547231035203360880327345189251460428378272357373813799044513964614587724157800991829452769114892564495544578208112585497462991227232646490397507964230600261945260981238603894172852569764474274292893781644102259782780808093811884898286656450750469903550368236404570287861926400784608310625668967210515107875998062605331021001223580899087864525527739274544838949424609773097681032881810483775584905357543698547824872097962396028564633703672244472560265313928132432260277494460178011800643538046561772418288441537932797330316564262549644575247852251514033329218029943636689200450280879301458362655927453036932085819923685824058244928679704700489293410367432496807871678052871557152697953873176161393561325930030985187458526074604280714530295334442483635278630915145811167703384349810903471380868798951289092704710360333677107781408348446246860614725498836547671435078971650144527699386002279228873124616118886865145487571245875831948668196071351297809734289009348299609161372171840805688912848320307378043990298011977674459526087245017878848275822031416079664684533840137300363393522391326174642283971469201272934108032240148629789074135636204355195830151240608782357990545993705598339963964272542888444321935083739604441268034988549867801424120139847994694742672513457504328416115283189343362578255557624860446989208108295158121308074724848831737971440657552370929620468722922975057390432552935848119802663290934039894973580929027356502652096862827876692654166187793651464999633518918591982811237177058085129088914798950229698022775369781832643658030659460809240080176890723258414412971928242472038004865907624832984326661253026851033499026576578579963305728578158044815065341472910340118651075275759146213859575557984653317465242124797035629657648497169968778459841432813641506265880323735372672051002039187208654889404916333923844805717563887250930123137906973034464028369489145321874796890368908009191076964875226793196883973083136328551644284854543895511923516267055241661011619193956232121540447458844931776033264586483326999953276131156081986730317987770968854732069736111069687352300866613257328235545132889270735840381580895934095400477668633738822098999477588872525139289471025761158113058137307925695089111060363374714300481807454470712358569670187616304402485928102941244816533043001976781251848873242914654653747653084078562990904537378476391634106971349483164149431772592573598987741410425852565064699225753338667022937999299024833844979636165826017703760240428543525146892938266773788401005040778149801065156552974765023025304818482902235166349070894498768111961215106508070884528940298303191343694788607197230910879065454559290442696210241265089620800237754863792190058221375417994513677375502934421394783438454088249683005596980722742714752346186384496330037201105848844426282284718356695105783641807090871181197634134679230482799919294233444343374526571185195827581724295569753655476535585715371587886731558237317912035819433685902461168954935845484381021820980564566711522781111528663148797912241046715034541226359174023105072675781565169079497535456954661023435063517892628200738767157841844853233126474816964104500932952639391072551402638097234507421452663467912487992195042495063983505756316700242220978888450142354933264477085420732956420064799904567282882730897363424016355981512716558570876026319347603574797113673228442544954614124103144112136532959073184466267811106274019900800574085133602171132919101914817238581103597632336215944590686068858174582721066360783247211055398822853111623083077224932071876031428355497239999095438674791190412064095816350306921536539525593982910836444057789476865590642695907855588927801481153129605282973963783052239656879793291341582956231550105619750057478825843506838948027201316800544924176554134155367229678186722629752193572967621597457292998278457699958185701247041065275523470931676021088746201894983099905626803547323919174388035285239451968559022629912340556236681684202614065946016614268981636489632267056714545276155208403199775521811222283069464028275458309078800952553826700117480894400858244223448409014439309950760458749929609291944867872842446552942603550401536630485727845750678903342063754856518026058646545350492315463660672149559792319961283892566068624538219662137909561418094819626802348373704864453909857960411713107012433147227706943816242616077917473589306040322161173190236290108124146346823909101474784534812647369393780345086690201178540922691890721139084273626400840225609527953662226878036310749929518963349372478078424620773854564629746985678187794641332775595949591985874191668447830186688758259850633580953047305926279587882662813566957418566351836629677963353661625690006588345284789326123079425333212093431309861700139402245159398630153300275885744826155520116321655830540110902479913174431860947888944247191765658573938336152938916463157877752069260989922377842721076226754713629677265283382604580315488184291834579056205585231384674868809874757418299514360895275711489696984659133055157182490172640634694738316224845702956882134783218600502197579493279575371401946919871033919215034601174895493500576483118480038321070455100031972994606266908170328465232638024224858174035422985108136931116248203781568240267054026506092762957413003945906744527919799664729933275003238785344552182030969527725411833131949298374542996743450834945692079455833089572194166974255446825338646561066514161947402732330689180554887144239701482488141302433322116028228928803159132754604063931447565045102470784782700310083062398337903505920853878236743848746907159107166138352709755851584349132103501222558659285742960510769146892529022359382791271100717798787378979020601040537927126554260278572353850665444666703866631450870991655715371206920784426287258032345585653143785432590390181683860053275496579257260690379957598881347306888807474475471119322401485057132580064528148510649450621787971736653675812418556178181865092565915089678588385373460069351497669402008541424119586157738199026180199575558106225483616404106207630901758560745738847326450713338575654604173253371130280137894079385793643399533627809231210839700233028364694233862029910331376974507251928193044810605361488981272372755345364515179843869973757297234479617541226385432501523178083972557268785022568712168135342539028347810191915420343242593460913311364251073193994337038432388613758805682715616485493653802378509039348336224822731820740996845329664200662680372687820264867057829851192845030221581505303564175689377542106313879430081690861925874286987546755092349447396156707592501916836911293037748049551990970398233638263648913505843039964819572362115740772576823369907023744639354292702053460448038310231444811459137953847492391572943127807412044060803097587296697310718198441066933408260496984151577165929551948655816486757794233936898827759003578942127616047047342116721879204887694233196384054499475111593254796176239384985382401964770818520948648559242287732496687300301024626104466769085254560976052527675426097221758042315321576735329075348153641113756403344937644773157010744177623582318651700354720537594043178245991335983391817819096329898151391257543191389833725440528150815457031022896802995772275083312116597704221998268965832469412245112832949898729700252886927820088561271599497751356215241446212011857260152524697229091514046407531921992817342803276185996457025802115601746209063589075186175753000042491967200921485676401596976159704057369425903568270576217269808261258458059616706188663328402633856482864261038593074900732614647683459041578797930499820505904321300238863933029787387361962755332185958012662216325846640775464765793633808544964957096554919468161205115569439108079681353938460597500671795063102561224795271996046570862538431272191945200310509319123694795458561223792958467448322080383851926631532382845070622235541635575201604845859578772796435664079289773151778925432460163741951653324854866212599811797246357628056178491675839232577223668439231390463625063640230283172300137855383978440596035683326842799266546160672110959606388342429504300233636510873394591424660824687867914224109725995512135343919323395208857001590380446982663110695458536384642995474068040679609633400896596476123350118154718221565202593800562590621502729012224260404147261584034278162605459873385724563714777921604748274433441112967312376761198629786698630802417950047309905486807868392900997525783605684232527345124938846464261174378459017654469540965159470872997650711276266611757869601903289742862638348064602583518365195914728710254160903417107626677581504651694625449579938289961786666098572735726068550669586903757230549955720906262171394703968503952363129448708741524764225060652166970795528304128108686049739229536592431541725993932707486079566741459387068412327500416690860257614875887987623593673475462930459683470578182433923747399924993182137763038375299038515104921386268559486228289802909860409840116650732228999532240562234847784269088277733330025209570716387891375728361113161508282405867748061283780997658812245009750709847914399252401416224053285985178406026775338192282678495278866724568933375945160731956862168560635120350246309928374185078076042047738430532548387635924125575316364522931635117865222823289644483191026924741636339992805353093665926179864424954948846174813289956813731394830959499581124735554883738711252190337005154680402367783261544240656690622404363579199589191618731985304828006197422232098836693647084018123214174762767322394733060040517262859354854118824613991225459936046289697141341652030935025735593612611451396476466490210627544573749771447155080588826860313596615759788880825134084175124084231421887595702639616666768421788501511665029595597861841596054792017855481164654185831131412091278284596904448081819980631438903805220749709996445926804268473445415578103344932059501563201963053976214180739908627084806430321780024760901439771564231200722635434932737991573155185911006524727748519971019847797665568944919671648616867079037571706648356280803259648676734045842056865018193702426952536481695581459090936590780768681243863993425655353304650567850655486555712821183817396599836335767803088710405729720638481947048233307935220906084398628018386708952979494559033980397505682344935367837444146988538880452810081360625583295193112119347517762845206651922225273866969263002566560571379874677472263219110395446393846121845585775692692112744696565407157141418197949229614464039021523936521713197016823791016253905630796286769037036699987201010551972758839049026661939716483481149742391173870422714295049803918440920353535056464826470908831627172704391412142384229216009271291236006701029524904826889528581360849432035380413569645159309243382773010698290740036378191072142201091906924187216027755580459326490152150594142335313528627788269126850570087709441767082111178033916132310778845476958923562860626769063681154808619448865059856349824207852248210273557171168286043742793001905324214732698076035933663485592468191202394714809212332841860500625853791085553950069351432572141821734241696582891687104773831105970509981349409693995533517245346454725301945250021970423672563394199259591390300437260389765339723331018927319980366786966546139807538001500749940589639656960444463410488891018772540175813648299270189893187435147571951190164326245651420062310747654521955306220940907622656396770318223285959360902816252306279768529106713880771274641902570560244612378307890264854860064900878587772245828110243449387066147744535679373207145334080832496103686003164871160455763852964000928899056590388078720153816868605784536026239537615843658764131568954201845166804253112509061280575860518512612612637270196042362190166991290755289148425500020316639433680320405711411604237579803585659563124749946956984951358676171716148613421187649219985740236045258155314008760929919647446288133829073216882269131573555149018421727816778521303836603763561290076854453156388109058718069408177819078957451433595938390351399592322158154787478672620334227303779525481013433488701126988252706945729704429254738586395894031625241817680103388373892597828563795133490722566439821360408060769512299054794220774558697799330344439044199973576079750280203525292863656227166375301043481541454332706533916509959467358711349333821669894856705573807822002173120939153007826526128684514242907265999057095825486043035452329999651555781461768952857780536654894859263172911706262038297980160841215931881886962902828715797871793688490402576691969478911970166423079447116300479691660296336654116567141292665838641676558425834662650669041699510798199041563897096165783606780345803858875490439836681107946259228094843989003473574576572212780205076636124247453027283277919753687094602692110264128505204647715113195909759784752009540677372174118439959013507272930599636253552751836512584260472280813050170163645829887952963874735239442289840412742307669265753891912937927022735871589067800740485921648396309083923403988400951287322298306185307149444124552897445431895856118740001809527520962851371172568457262195438787859256273722400118928592109735917744530909913760185710513365526899609798279669130166471364566970732370814846534938788898100994832982220454610020172043612751203153811658299101511869430491144759374415119921482776988466723909198092150851582445610520088718546069873013725536346329956445546387264452326955782438168955311089653134069842041218638500690537990290112965560297304964605482196018497714995871601601863218792857765551482609868891466417867435548639885767216407980993078464470041589252981212008077546940444869022853477093950868213234073387381521176404447604834555293052999589302071650213184557608516378241629071597940866179526322650908706250000978529459880341211082557760720141887727490710128389363243734475532766109946298202924784572795959958669060460001018255384867456565827575071585872968677167511148726521220658930514702981699114593575970624052382042720167609089719364403104714270189011229197278328160211355975632554869999224338850451985828262910381822612265599259159708291978623319316688106297525410684117108625987030714408608388908161734018394521786761691021784000705721511533181834639810904855059841908065379840393196765261825490144962826381313686830190537277629022140822825320503157581449110521496934008005917184288674742328188920822109870751009609422271796061186875231086513054879407303247558551585727129568516671150265857537215249702073566554287480481883816894380929471939249707834269119816210471308309570279144044887529446522288091642693221208914373532634347018941418654987580854438978375427611160482194498573399194641634510588275964150749708686870653330876746855170863672200413355069089822703363808724832477362384276712729982790004723750336569135964850589487117971773589537523517270453298808976870603717168938131149261179907638681757227782503037994810530997141332106791117693908249785759501734734327486335668431549974255543428798138728885884082866555063031169230342624006519246182085129405138410943833830994337323561184083415610952547445426678744153945274380854781574817180554292301725770825421551455231168981598415763033104102486785934451395633720568858890690571190839996979952133448395228759228397786569316970545027552498603759381380065895257056548715399259424999717317167976251830780718006517305152956338263279321271806269594806341649691021116023646432358904772434776651725043701882621158437644226666204751278252351887021789802726728027711822773152103035872642082452898843316831579166649925682161144990342466951532463913570478076852689899848932052533721012467448559451168698251650863150655902335060894613325964758574047430716451021988964666857650930833004568187275724168076705921604355468100929255939564895332950279715672189202732570815062770907173871031323842496009919676665726212488713499205697235869332407381117705573234609021579847223452138277157958034722054025896644153905341213744700508903387153834939078365114580792027210147906297989923573034032499697624060788973218431088244930826619080262204999011285974929556277217464611468993929401059494209733817594382878025044409968753401903886017717012459122767688467571523696552122005772424503653973769690285178582720108433598339845445681784062574904319170877438241040318671414204172036811429895036772565460710501286018318843305902670413591446899968847178334704082914681241547430930099815384258505632760473908768904927932249240953499190341621154460821389836454362734525542137157891521320603765643461287733464232652794907883819238644475577059500911944414225760474872733464246079592462981704641534606513308409571476487155212860865784707352955176812758232095338163731442904741798402689359511383623361903652219368694895392929861056065435057970271551124260864308592728205732038245286337536004053715977663220991349122262298215524644134152945655157701519189869240729862580527069848312895480796254353197417128584257661140282009534969180216778750906409638893891048450466408657503729405221041128000954731966004650043944216848594220901445242927222558490593663824402773328362645030305335399309698777034309071233257624941496016107924287316685263884527512670603005707641095261429896648818120396063873408498555009417321987796675327499620118697725690414469020624776565535065664237591469173330727489154340583008070722148098316774819302173684537002122864915199448086439186071365067385266280290156868007386584826956762542105298641165933869248253833787875213492229698895497703342047861740980716210184415161772214819110043733371169367430877326697308599010371973977949610284291618684127575699139864921142478781435310883070128710377476645242406304328370837731525611944730557552379109846177353129064424104470894516690488069509146073182689449278788849309395000995070229035343539213325589476525032807105285424124294687830663108279951403992648538194334618029560143112432856484696531717017391253878974666097145394227727410114423938795895987891054566410426814789116268572803599678303987097866634444047449502378053749408916979173853720974707345273979460572492759082492782583350682569083780835456936366817395591500548911712294589342501939702089639872042336081310929952781885040277128738574435470581971449057130415919250755715118568712451386170846137621994813881555082938848375691452590235639700631112601221180043703847770706721578829144725047038571195085880934755063748382935317775380885589411741926329374954300085072224839222875439442262626959819118969563052527909934629461536093616354944787917503777137415907062317596724558368532599842155881031625624442765549902532750176313629431277960119164305097169595321129920452717744965463360265153656582884193638793377535522100075233062499389170886030551349824542033286014988225189244497897136543887876073258396869412398388082043346266117220437998133074235136784990845864816666286201110167877285493227258973179629008389380937836886224309281603626918073213564653715350504886916477877918584277379081886131475435737043839641610866845447786051856988364354553941467448836225690758229765668051777774848742973152174071722240899625202713446380289384331452516983638073117992146783653334217478880597728426160203584308289244514390795487419205994670310937677692734600115726354786533037870508825586261691695475273604262765242628038247711129035653109206137550104153516350029477360280304265156068704450345658653273748883138871363601280833913126850405697305826236750606618539761570417421742759409404777662958560993046444536969357131235331390184473101670285366894180350236163261932678725773121497249824508730303420476258522565871384417192798648134969900336823663592588206010751421305993540511823982213935958424212886801556949601316342658839229035170296385493143120268575172092434167716759536738545958915630415154340888500416067053346654082813070083289776148824969628924016042114161510361797779321029713476265799794021546997803877847940159881608521421353530414979434853189195283011575006555852642361877164423608307897345825052329324364026437592459180056329087230507629703648435508696762133108287701771634937764001574077061929099773118327157053720920536540297077678672665327793308599658001092217362389041358427951933508882214543651911343401434280942893214788848307387257704974253324646609483535166578176707446537836480284709692610131864502931229616599437355582029288202344507282771381373531087386815666846805841655395240631511573679215491126324775012652980708686532078718046128679242880775557065292782594194300758842780120959101663775041401431445651609392042139955072749878724457109413555504501572289709470592871547857842375495555306882771627860681824647647199972980036733287720747522653591039754964088642547652414313788619066227139203374830355538284344476445982436340653278136319578083438991840207295633122742404063291136976226856540001062389860478166862977778403127948999170739672306752216295096528789631503782846767916109674558488735934754910866919617224603794332653671753266796427575943996049976680661204001653302850494997286070427542509372077385863700415441026059524493707585003637841381860779567606680646172342950075239776514594329489671900183945085350711525082628454534527375779691224833371923427615820308014628017675628250240714602509716056309317672459307604868824879005384715805207507448203052649668981999402515794942321159027841043254258353371777888992395174636657432613728518110052927573466418481851815699443404088180376875351974066363047833728440558181929943124928206995745614238266530509813446643009698835798899933364824964722667678660948382182006917644779951541006483149509234023132985550207601297659765482514322142772658066657557824521143511835733723773049243714259570295855158711563888077995670992404167839450785418474597908981580413082967546815203466039698784393830818392374771627897713828444340513409511684277340921769072524763108922444664789116879432513222007365153456231185501387421523354450308938853986101461106907489109566359662948150468546756229289415108923729431931956149182318256112906025836428781721949291753453882352799362858896363679518066994355394737960678838639432992182785568412558677995497954613302878621464651571399165914028458734870270526106981706256806358660128164497972466681641619698798867736847470963519634967576772411719388989116184101675724906528123016396816931500308252014897457973889001526824023777983097240046310850649974105912095015707758414148918052832467306183514095174913707885125975348247692650042368546235843601597072961828044309168026370057859215113722012165857223365413744447659413954964395531325161609658018099208779083525790375772675062232251858830607569323189563374733180715366869988498638691437039379137969021750962586928425716912905420020815546977772690884691552481174499936570726048504395080918943285304474939896300603185187727458210524655774108122548587461398410245523154697286056159900491973013387453043160232464499265125017042598959818255652388758779542910909672190883553577724986861366152804958762154417326193041179249699714236480394563630993072083516922495396202008388151191837244452275263668892099295766770956673835188966195961605375350086023233648287212672794571825927178717732484309582827357398194107946656428415373520978922889002103731720275866429011838350240103826226941855451746236005539053368444799037802314935009104335155598361186501260495696025913457693658762226557706320751802591029709744929517888542021192971691266310414209140107864252386132081347634547297753174408567322103225460739301677418956020272992031624797537686278078459710521326857264537362422553192509518617187601345112433762990535554619591752548043038904417376179131696274344878531155019525369978077934471263842488993435819171956729612216520534622308553410454617535160285303531706014088121363733345863747449007128683413621307466431499196264587662383247945685549526493664650173730252699119087348893838082204903139990505627544398890446347223256585859879118866887408069701032026820399164596539398276313976757586756306611912485289248569949554527475825958380592669805669093152791187730205978970631378708933883220709508976733530085556152945784936406639124522960126695960096262492362354350067173565750932462110097876387859400037811122554818628659191302654661216074980353256023443563676312411815896469738561508295193180065715412630622899429863180944708829996977823600837319327593124537302930803197083916792112382203775938691282057040125772444861579782897032372098243141995219135693399070137648657237940901897310267731464770491543124633531492311649828461191223204432979879886545504885502817224127196412962142552440814338331848355485316489156555947284549415951832993178851797857233334982197167452209398227947038948309387006888095009500176018651075682619018212259879110673576574102371886627246993510757585531487585060688926530110183871898352111721543535127593826432969022233949380459763785580907317163495687503270898657045091638820524807942352227535687082560260318281292577270037991853012635237990106194259570352197978694603793409090768169039374240329422244856490624292406904135555797817628099397846780875087378892721735054157216861062524353129717528701700217138926526862619668687123822200180819981055671128721788669286651408685730731420302602941758006147543396996144541957801734713074532518466502487391866312265912601566023637862665201617416091315672128370430238318580118360359563761144021963419885177735871538027980839239623069592894450288127077113265979220538364752490063865053846735265471279601392705742533572399284392566821190075920761228272723860856213827653499339217228831328929444455418559118523325131830035127913792520760388229329076831775728434767105684327997447620079687854596090230370601547443724261146739763761410250891819342787823041883115567958045412431192103441351490269095501799996042072322609942749361962125944584701579942673840826916807034200373342817358824220480345776191805538441867061092786475446871109042765649096133678966932061865099048116796598605503404920596174158403183736624449878891035047061650009254994233945662165624604863627523675719584621270971010358678373762859455190356948078418442046116427432686078748084405425187122732222002621434798954295282674932403815009818480465700784161918386349257477692646056917675531836754822789203318027266531093127116436793381962280095954133047870684275861578398159667863531221264910741628340363758489867323878266137690359301362324296156031166345795033480696041468095999851416733156416636610638135933370291055809518610025965969335853813370266720930385742574216786429063642546277737124516142500896386538595275801322289186537906079328441153123957194433305971116746266490238943266717961130794582310441191900797838817152230006700944002400638759226943622851083989082522875583396750453543274241265645394801066480187933702647796786435630154195928502562439369802444070041489810128503847612557665321967998949975116516655256803543642604731499806941576711495717908706191447997252271479529327963073535876112075829068056459270752877176117312662945676036633571335348362257492316090884997339500082390802270834018442186023971562268946975901121116417635281961788002013550898606998035550395507696017523557173491367658050366348098917662374727779443889209867951693893615953250815761042649807718788583191666025875455855802071249602035690143602411606765094417511639955251176046355458354558683733327378353855866576517556532384665889863983862957934979865807839120288373221654180551015045183910468920950564429261871307271889759719852246213142951936737845472512841913917280843195020814872144868180912262141950796248583678725120084959052492536635255753971301282522666319312674727117087401687401981820530095690121079949369324046386341005226062833597847775099361974110216099153341241745632227291428984531546044679324631658508205990084443044529235683561305958572769849765100357637380948890437898149713389441121553404782853834102515862734522092981378958015125267959050168838110797793737852314075453642383267753725911397231685879268790411956752555832558943262474631695959323793280773972152341316510233269555100425671347816568789443259010203076129931870611713111472446847380987616613298215895237336732356716715456141755516238807971200015234531119945417833872460867591965315696494597543435262414717377027351623521869084588169433264954360963069032786367827217343378723421220127791453073615284429176459375754527665511736166249377625834123266947038661801099526416141446943686665541214653557251088231326044430205947829570646964208405066397206393173650735131730038804452622596036548486365969426951483721919405374886648224695513800141661753441310943976696304892594972320831753099626143078452993318016508452080323635826442101627431013661298558705422918469185853580002596570936106888670740836870849076125799471641309963888597728060572543836777759459494879039592655876319211032276505838730439987043541540772170815337122816972534708480460678481530339827425354606736133106255364807823517193731976382923197606879318639973939709329235846525925254878475606695873672602507496468659320534760333026702258789399715593846707346382221087165431159871108323635901506917046254335142205615002339931636212269316141645163467224870089085755978428672090870503505953911028556125649913517596449387846853627188016450215023465660857544006212932808424563547806671370456568519259335922474643444968138939640957288030077415667409023826142450163971489926715058806214047363887717765209161257743011347519545220374908961631221049043534651801900090993521519640471458864773560214651224794178059004235182076679650785800263851082616667884855895074915864512661930983830583482629690713170673107171972808077684848057965875444137992944910704747182972801787259017034033300092303925380610416754846698895731350680386861742639924436900050778323469824069242703312234425338168695545685424131743688576721218523392455145195436629288774904004394559466550740842702513881542258012779936249482761255301095759410701557524570174019788509769995259561720868943409159725896349283592949176418770735118875573352390975338613904611744197549108582378945359488173409788639450617009227355835690040585622723780649116217992575263587677173378254508192811081021590238831184952959703028904546355239277603766971804645500936638939527129375661836498772135574322758352117961769740289374567771171020960197086099888919748227818340645149632401913419859546667518630438217822980536476808596413487848827651335906070316166008073856450236740863265104795655555239056932413659061767319157743940613838008162286942147836605812279660137868810364223934492899015582775604767214528875269651849840975725311412696979996835831311163623016679676374068208473522076481987519882298630528018228873740084633583983983511917977005782448199586712374407288542554258820673303865935123488499797026231342809325846120618731449057393342952618555683158647234650823356311168990392980746237301858961751274620110241350253016504735987391299668773165788793314681146209300688222308872061583309685836479381171758723221188044075636045626651016083443677231341484618712669394355809447299222058095400341747711692494857224976113166687150949060130424278786117002180954723913179444184167702457630140229750183193804488448160477701404081374189395454759655273539614603519113393012231332991332925650798965230809059858574069510691920327933473397266149554170561661608154295217879242085018926158908427708999081541020516351796459815754559688069426018001303557855470271598760068073314518161940783672212238517331773178365856999962215938487588392248992911068712777416931374725695651334300630652273792455105626692188080781183258673136960112090771466579443662883300144081586309863172641906333044044508058228112815488916198322932731818799958851273783872938509699050069095815055996862377712942317619729404081394181360272405148208207379513631484335422793933427765368610352540772583999654861874606811085441599378263442183839384485848529035304569715109912504423138252492529540089600277653873866357415638827431411023599533922274661428089503023576301847389969569687857964761481338527462600017284007661035335997001107429588617909344856882386140221202628100987841947785566957670602082972972849321728359478850747856268835413960452050327339001159768997592348823789600370474350944012621810109481571513305005269673475051595793024141924677188377990789709674198562062060336577626066200393475145895121231388967680521585832148587562100493982743377929100085634596084787274433460556184821630338722910556433093467219264786656314689814420038187211093438973898630381721295790929911274307671977729157837674854628928521808203967143785079336373695007727664266755854199958856972588894171885473245704126545387279293835554230412841370132131163168616764950318207812335280786703605753169261111141319274287790446455907453108303045956119947788929764950706463971681451462945312429436355548868636124882656124006440932704627209919380249935389605974433512849065936304283010405817460612320439445967861994375881821078870552909724031508851804469767207049321932642732747494746573527063140084600227060695596769687699358161220808761428908243828225082716265451015076507112254877678312710489858125890314808011532348223548575625016361343244575548970840185256248785584116155906291570640018619382678719167145422978427013185563530075923391743715042252368714308028697389723065940874726155832002885605643054367547301269759923912140930782051634730568394435766080505495391291458645641895198421266755703261404016526464718191682556178050004366263986812632605156770373757632282557237224033732656343992610107277749134762717616978002420241745421963354236834210899820509839969309009668335172915560518003291237502797413833634655705452783485374761577072978602826423169895661621536415061191691186958507630088773984133144332352216108648075376275627953573261927680750591791975382208050553608592143706425588204079499456805320998452161952903487471729158788043378980271991757552841249516455389736690366797745851060492373164749334851389131076704781689315092800565250807400336026255879746587338958865045549105944187115107898947642772391413200859027313482305147114710862568442443055612645731317975946690830413403496984189526412808130392379535423395514516436858329717672703387996607050275380884466661324952084705956236035132887635692831040423514230736898302257618939822104514711649750864957931331023051640070274041872292552531255505075196263090141904288158378608018722688533033426032418874199474309487098090077968962215212782040363871849869115568928526788514369208111989669919917593944222765985852960731611027277193039228750373527674603136498728601485908780108902769648101784192505137683639443277985897834996707510645916080799781498674621295942992949510345561239528518996648389315134166342562538722904207857003100505766723878249942293043318762933107599216334103488185307894578621304384469902259715109537842483964045195613952649940910541934802783338141050549750386325213441665253257834624105431372420513436561007097502647497506018793298970049526351080384880012217081134423115923301825065523290008053296095052967476178277649903380464927564246078440062247751022984090446457608828400843839653757251633090869365950113166805903176065399413046783186045006298095464117932227606439454509746403119000404610136363756652514763392205640853948811565665156414499546999798961551708519238964173504861644019602822837023105319549445571577791956758859753036660988220249688649624023737697414908962278262671716470905454589643425135810721550993127870018109479337800194288116971384559781303437591174498305039727200508838510020486452766917597291317151669041458699094829963978857884712415821518191513119364659265502246995225206586123710861707775297248009628557381117264350439772399159135333727943712149397486397926247924574630926880601612683328108013730760678963885303524762479577296233036320607975313117003215631577396114141726709684579198896782331749802500904092769839889486946584061970883711871716267895059803799281868790835967674438673941108953719698618297673845895439244112174432607281434415683337783965800933241626531197588638631457596991628226060779033373953780686154995433439666253404137239336058376135713663148496022846567534731883339597694060242585033382282696716025148826483767031393661503046556944035909979588086530647752720761812141539410681855315173588005631797895081069982071232635714671453116275825250080620098353029985987653456158772655905776777052350680073472116044980648839123443149699456629688381099231793759615151983265012059878144161793289005863320956390449673274096775615657921695125695757343065011177279446769975484639636764740951978746985740500256663043049693037828646730889074067621720816291000927084108802198036646903200660489829526544197361650808708999139972680652562279641804946454156448767012800583944430038777135570780465643299132187060632208151427506224046357396332303341712920530795518615942218913417439346426986003963040050800204287041572959373530995771667761525162452409290068764840944524487082963723479466340834676788924290451598405086071695341689272768570261007189617528775251605114575792348758289688272500582964348325725019488704916732932741441469386161100821207301489450942209156113531966015060095153004215187968005009256702774616975269173663358847895310487516279254152291573647418488012937076008264200657418502417040705431717287584945349675596925605810680009173553233924655397658056115062668571458886231368778250270750779389298522128983767573394440612389601946254801496866953716675692027945004146572845670685309943119591039872370249270901043532552598050115712122632847074507459034059643855282087291911849839551668044048721547532339125619945930281059752503341685465676518494539988852432775783503720834777412746381874054586392925447115055543227998182086818796986470104656134118680053965131346723238124944140474145964713110072333552028123385221405072386153693166089460593075675862667907505370161104070340909262826748877502859752375102385452677962055306027527774367819405779533840765937191233904161229938965877540504209331657806959653412589292769002105835347234056106514555429320091707450439470199566983662770224702288304266506904551219438370568467083823573011816322854340018430494979858262176841561991791993512415309491580100793747740403927636888269384149937580571751713447558159310327457741875763711877571322468922722424933777711395755848434693143205619352281759976456338446352366793269416636529382929947315541602622781043404597128258224267019760969254233568002538348946563112495170146899400464009118807408707732996430309440435818340841417580184789950262473895690754781926652219934967405417288191105033252790021585459431757345887327695863977413383026542251574881272858188927328497769691108525938565217239184042582582314470310647604648145020222102865333086563744022595880471321869450144366817538530731589200519065754801582344915484431777081767125204611964939450188625676374145376864560060142151261292424645967306428464885104976111918846720498664547599992680177566433790034005684703754475628782493489840871400770236296504170750104540300696831123531729340302631722131708617620296043445482095434867636952493941538476675380957735512146374990805038295646709020523046739855643558238071200134051795358177592661179297460148692132026306003931799564849444447316119372536942062347563745047826759397321270337280578134312662111738722249280633363983451930368038925930968899520925203527857198099238057623612284960652327697097076479039139423140213336869039480868768474330801226886994620347082371630972470472502810603314164701447412054213824030812834719100930862026974909153607225275128659774951950701446835957034266146025302815338482727764497900776889807445830108058076258028265253984671218499044394258918802188062975995631428163848511209471349952422729096625621310572002786025213027165243573020132199505317112041933385624321811596853531436428098866010958543685260108529344637841188537182627216507454141542909241257634281683464248035818333998660735773094094986065706615844070167350646845510834483041034071433068861350648161231335008442336241417442522038471620685815778003440744224089977379525077227224252216325270798286483423936031993600770157814548549973279149571524204777183259862557471172176000475918686134657668007479138823888252605950369614563755509483645524943318493757958344708256511202977130548905985889360490419843661556802806391016931507941239844261414631452720749063421674666562208207338740544102755527732642572666260325434141645180646462013591074636904814091394881734915019090588786588657560805463319115395795199226915101752611355353654804491538052352430920956839133923664186021848657405653138658589180388829010049544105395042819085217095689709852226604914977034425634152011335435956016208048334570567858284751828869432645728470941550706639004202184742841481507293211425552538487682398405964036946755855870650778052888118437054370766853940204366790879472757699767427174390824114225151702319553260149292053248523316443033614105813480812118784454016800498418637195377507912250981688395943984374349050092769074304972197321668269078681894298865543260393479960279152866631674245204993576832197598296140906096002775007541161182341365951954364768265974353872503433557560760309426459371768443525658456189413304362658549333964488136678141899403537812518636180986143109380468608423894176571709198375302735294605318217748498067641007278068935394877856208076607646288643497578138491675496948013336164585535923421874443904872822023274827900043809743722240905566579827925407920182719176407315686878899086982344333242984617134807794157926078943786937879321819276238320885621982562620537061570533650998666043733527800430297853858257772582081434930689509974690284212321480543625214410992658451320869835695037934121927877015483766846258848514803532821005762259531238439549984559771836617746969487713373602949024320140089369543524642846703906282961292533317560905458015241533626970463341560947714703878331140804553272026698516916550545808852623472270091856838115291325160755751473298310481745116901185447389050027079662813573733289152194735131715071421181962239506403606625079376610114109097571987519506279076719920841561838312623278705367794958720934808531033700370796769814433398653194730055395503613737169035404412274418482508972554341132914140992101050279406078134345274545748910397870395925576771973032662920585002184124305611014711726658858875858110980136224271917836015056300845061260958035114622186897039265600676775227127811508691824093126398323889514330730920806181836705332722219967122138243924941338450308553742913951006061214064015277299204721624746906019968753616129309594435319670213870262242747134252951983464115021525852171907334352876050896948985966187372464714844575400426321116913066108000759019927685277231229433845375373445561927073184207700352518881985100009105886970246361413394637364036291676485024313959222610891431245843108024918533766365473795428101980063946754916567388220937206795502245397495279360432187604167371252941868904167875605071581918462839749951776189847012014172849225316599764249139615534630455967370036698271392447461722405377563884525060573831172206330995224613827515438426248418305454616142397679580757579289295535823158379105998810001363558358025381930496087484840623244213019673128572797569638089158911415106268293671325339044322044393512256271342583571937580755554709952805865092748914856061501490586722186301814539552715433774411574843014604542104723710659093745894556018507470655512504962079763495262962858574191061198684337435959902767513512428421627873827040736179018226421161905654523559821346500984434684749893425519419061256853947121550938357783997339853597992080440914014013019692058848162416577920743850616592988429542875926765325764612786581365386930230643249514872291568341948933977325772383110186072859921382743995531670717977869463102412096562992515636907070979765746223022481118369933795400372890400355281383879166964514630501744667830267733915658485131337332213455591201694281994463558691199010467025724886303914313189269027234278807655956714355081008523328736761888331433062584028544613817909164915113898688610204244109694930399461881564346922592382271542373255618657637319111383935082984473757876309088819066974875034626160773620105614764919585888952617573029866000284492088330986935638966693573658315432198051146302918030353282391251226514579604511291362048141607426348368904872534774146049792896866547180431109637020693661800381564926460176322823546752577251006348108332460496397458189485625071592798514006882345658766432861696499447028761727860740162787937600313403053653720016336106731197354021657427455266137724641467970163423221094839273520539921618466844316578051485787487389956117356157422927107997893783041174634233172312368706298879939563796932343814093077303166738558758336589487921922929917029253219531310631375169956489555627920773263344399560699134012345566186600272386440912957768174567455620426969663979149248546317615555834788491120313298081093820200166708214261953839391351949433245587415772583694811634921404847335467048525276266990959144485709083160423866343355234799524193321743127082642757150153738114470464896147792343239188365976041732760691839647606786632267492919332316113187767391913271315644913056937058551533950582292262979366928009889012737440110729913075848391948372516387525152681209356155068966128156527850437743856737065968657129040745040213967864098050162871632426642267337613821529562365220402118843091692449620167039837724022900775191199017338872565494516702488423144667330169795649313895385861239811166830825720223337246985737787251767301674688527011564277582005939357098122586901258892772753477512459695452503898261166802128775738056368563156444219945818740281065680175318556456529558228861695528627420028196403061439105900321537979539693021851942326880794685279140725877194846904117641691522747211068243909658349368174072439125672601413920553750443877850971869061283089542144509045453485238152261213609136327962561871364143164942213935544220600533827345153079867230668801356293013165017655537704716300915062479212373919370575413872603778440942173025911250492386154938190070397322698270844593309383716314806112834117948631308461995943078968496411168708433793344057007952647802553242998827021223958907157262154491883119891179649225568725795187376437265210419618862359708076370825191601974822344820994433323650040151033080334509873420821279214120042048018050107979856172321647350440136981148554105881197260873953942549086287378390374680988320817221479683074313026938154363684537845761557520199479117741233670859357176920959284028880000629172087162737977415351295805029709944241913807628723085063578557022002901343270927772987375157616624748404739285155086316421530282083526501557563119590836823073403043927151810500275265003370868949842881323568496500724939884740105694734338056373384023824360725388733091113738840764500037734478470910018648045541171100256140540878369928869527413926193790851385229297895810628398059044992413872737639857194829128448347659740140414325981885024539106705917683246226948397361157181489852877065023792132178926953611637930446467710253991656844314443202029811685936616659255206559795684826916762997773403173737803087482081178487672545868373342463345241994141078015369212415987783399746699739542951868182009064969761036782152809895298760699571035690960283710085997898989463348720957080217923366574870714677736736097246399221575321940236988042560150000758404117573195749841674033303526039480973788565390288665909901358403196480373293898604594203986896616222754894365507600023458141070896150939469264527739423511469401112771914913692543785853948352726485755216020872048124916910185271799518375607328442667718476795407111621801535398791824774981618583564645228030863239977138499283592092705553078665155645276895916218692034701564555734028766926384132577036016059645969040322551231020295599709891641809071291457489862443029770711389414628364848487157678567794878143125124329355024768726846894693387893096861937217245242168739271859503264117183198135708927075601079299185145627502866219243697984178114140454031960916424784392143902783386837264171155494396304194058880675238187742910855178800207881176791477877311363880277285669694011827275547502000935927404948376919641741747437643099358828114902415856717211865451819540327446308508490018672136527178874236275133685438258435726097657633985935364879062020368888102701585005808302800529052500592040995400955993382815605515780805692775037640593242285382169458924730837269334803451554408908180300009713590313876036950646295255811932331910420173976968511078545102058841174742956674264086276226066772160763338326092443117163266104428145958606250699868607477542904124446463286078462792080416316171887736540720514693121214325169234294535433247282417296043324790290635405744264355101657618868875755289249058307322668857940636107263471314512803909679409368497933681487571329869781321192473059949601402778186483195060983999490292484822645196907669493668091852924654025480077219908917729196093156605486780271484478376604390600314714645229672337382101872503917315524586995542388613649792989340573091186898229687569221987835267888481656201217993235571811933947899729411316250382377160747601225078909139136007369816164496155077115624751848671864274187522209836992625110794587674427102605491018377141493953846017308993344936047697330192877913802703135070732109818820990421774795824467599020083571168178448830478739147534493519381401175208813705984398465495570550101894746331785135447806050024532228986959561098127445372003405068433161951983630318170374789862663270724406537943927775061173843773910037015604508542441718294622323098741599261379231030639797519629062149549367514934829553425573267340573662545638782087724780170125191080613807632941910483768620615503990171057754937943719814986022745743276873586654721193724736483688847386369550472304586168757789926241799192428880868466327656215489453775846426936601705490410696791396585650472314269792668892085692962878423316515400879707948404460626602059142071572641491184272577254451851792252299228998925524179313295561629333876104160849199666317442308779405887350839478730728309916977398349794368477463448015790691042083874953549261759171854122935975189900892226217219144593067886197603562218812780638813224563555606806941525529789749690521025558711666880394625316581559026470171799000399024833401918474186111779142508795783220037431338999438878790174932178328570913622593452398799211941358296486042387182406741709862281219018573336815685703235943091990841310032742416308560704018396764542197565982152583422886796490617533288038337592518802135578893511916333635912565307619634468859555567903193134267533833066316434060769725033746120456578575427494456057731809473490446364211529985330435369838466098461376693430846170005490836101239165487402155201807438320463746783904999935185678107922897258746903677495791338535035133607550732132560029191031551310728317711625077255153125730496232722086022521464840220284279859329283668879907714081923988378503562205294533615680282037531395403317643158940563253112358682394728921042814777090452957049128759352412051358687603284514258273469448854564319334456061039277195821292194131087466667665924574913853915794463552398869067679969535565940340083926630948915637051551833293940005032264170884889946017449665907668684722866810183423473358074816786082569926361457941434157737969727619536251481604750464457139352852592175783952785644120276963185951519925370647385437507348419804585231099524566402639452567114830535968678311138004081619234069234032609897041045680379348360105449292069273132391092894894161225287725417258807157698002902327692992653967222231259542378978187961729736923126986290413294069304779269034079608593696955308287063349885358980631703790655102345550359811047226307843243788750268086652866619701235843107548719344699613511024653823076326385989468574353065605827530017359129830695156395419433781212111804407015361531438457987316667203618404665922914000728615704709231838888371259011377511015467281568312617313584544495556934040160625159122144520263040073167862421234739841566360615700229575795125960678909491807148721992011513386033420124903343269019031524711111770537674903792507047710800078072437972199974867805127054386580977383660845571415922313112507699438505749572084470616176464289701673424853130726531131411329692244997325898693793362053823104304688116727029678179353151479252622771508731784134720117508291991814002438516518729332192236713933021839371801828431923462068612248771248161446437262384667227387169270434322667628213359572086575925299335704693016713770629372316184028128146654033939299764799450835563529313404481499746082157314367827706020903620002365614794817961669533898203303643151976058938824031310458646245390394575637688705927941914463513165656385303413805511607383011523496501602628983311752665408951427645487394364290003104649756341864670633839370264043271999344450176536211941839809140543543120466110710229491479572822300488815098928800520298222195603137155531918072367580873515739494158638634659242649298271246874287378871072117796093428528221850751761203163287865050956785978469694397066857436394417334190563835044072943862175261006067399446571445256508218511081123473497709235330607315603438336668128028972835529497834686120793065366622984886844589730236869505731807170927104880209369886005259423468558242146632371483603347088790508346751416318599787318213771136093379679226713048084006357127404476190169902128050362495514649375628572555347220155291627360048420717450788079507618459136069577882486187479496027948214683255363696480557947519580422659618175754553725757800638500788289428801540451472866450769363642926165614640923760991944230253071776066476460974890130071283206700958344414867959642884426565334806269850089001435859793432049547007397901976240218318645022518735576819538466957130700628882926375616032787642159655931252924924221613295745040653822016726239861866164858143429888315192031590579600733663059264478017682428057937751925499116138740816555196180080619144877294851166256997724515082137146328190365180877334737532213901795694554698558946099509944819766231605827389739243085310494440787084726990640317835935290461384822406081401306739211940359265892291196901683043436227971530484459807315903713539908523055541358503033059942630753008447497312132922813900414937292573158103903671573439298137236609677070372399756471131383650360610405488716098619039618499361053903230560359089527165216882441207600029377720542005493450599593284765791445138948041792035850852529938744500649077050320426246039291347918605296418151407354308345877036201626136356475367166760597478008590314293613337929331917500848550960438971811040988775200492122237069558581249625713314476066506933678827688873103244542439828907735107267733266784393233220192621936564466322054855219636285988698212459059484145389835524317193424912990061814639592356382859406169029756476311262291466746536626582357583297221661709968921215263224954097253009276090968909298153985477810475460397048056409701943861124378321613301721735201695386677893805184729999611330175309536392020079729438433442713241962980107195951189408020760785422475347076597267957086043738013371561484930232571019813287494389614948548783732970942781633625443633308269399055796881049489203758750785453764050536575757195557194024139210826876090887690522636865403018708227018835475847239992289403407907951367963796350726344224554191280957705903158772555892207789691111868653692807238302403892362710498072888312875535071751133424809692876972015866751891421714342557639048959469858075006092798100439092494524081766250952741727415601614543159451852217185574955268475277271673891390290147202350598954961574173169890428553994402830278383776236501085909369192015402769486814408826839215934253185968629688677073556817836034197051841911679193966183372970001938229801502724830835080109717730911105870894894672305428927151182464154409106645329532393545051930527899093172811499649272530603470215987196134565002063107133613651786165441649703573682097625837494386303922487734357175596671101166931279192046208898287538871071536313688155466795901553145462365337277109419292748404169131454197001775401916619419279523260188825373033775233601219617116125553889783561767083773878526075631342058656819701929804205050345095013583730270205832447069646396922369063859331108112201396771000674772455361451739824657873343641455185212468580407288018781059764871776307978933254645800932156135484194842177917559330935785967194699195056191293167993441194597294243460001028579758994049694365666190975793295668054246701383744999094886569721752978624999444038632564887331676004076776907176911021713324616671369335776775179668748237981197416413893296651098321913188912306128832130617534730645943263123690219424876504426568006403723735652001243194823731911164158611994016234561070555880366626031622166878471348964997725714436357031875007532986006333082899705127914581977792060780694205054949268204440463425629715753409492743557972516015720797972660701996918700986122241889692247833122306988351930268001333515823480974691137836974486763207815466488126392408284186516024914954979864427209866051820357176456894993560204307104892958158650639519173056385593822175143013143480759866933265048747990380564683509565616398416023155104796598859316847452297845327115630225679638245805708738335984861594269992353031747205620220372615270897606684602608874471195186752852500561782972888719675246604895413107910513002573103926269088847423715651830991635467374572399438350009251653919181018423706418278446319964905528885699393252826562628242869076046959122933888826367890525889629799260043658351292859166016816271158503859509920045023828805257871607999148577951174107145878927892859445542297574892663914906061225590184674242048983069603260992416053731980399309580318458741875611965516941030258842746132677152860416756259971668900919744620570788760619382471443068200786999515821869152348094620599473367284161874380183762446843114622719971835404199085721267006752205570817790802076422387700830231459632437697248430228137474801499459678297652451111647562844948823911265802232072339396724873534837968347090372172780718219930457961708748466832260754831194646363162955046142891818703440255160661099604396822797600851051090393629109199421193882665513643110459377398233754702234897098938238334960622241445881815717448698580076801768098313544889080730980104598298840671012861381855597791311265857946279763440209325404642565232144878549983704521267864862959677235993867028758906282699279492148880889025975297177478906720299367123678763451986595708011874771798648451089825195533914045264040275752862201560983909743678839234336869029379490238806297699255692023125042770510894350978320237026090787722102888386917306520297074268705923543037688984749133115084572724089272768529320256830382290269854983092664279816962154826437896461283683804207320924463481062482376286784819581085473378891721650337093171623008278354460953550001570873258537182960697550817043583499220434782397372708582326963623701760976748450030410906040116877481312364157224925413673506596999974351468311300047904376338946838115075044798362249775689187063312159825736569343060981010581075128320284644444466922583587764541076542454461602377782788423014324148376077527228666458631768687572843620346387264647033781045580384086990018470013294906720162910673208665601527200357037700877236393370846191528320488231140350582535412867184976918987401837011197112474081661540189701457760230237450381123110997102646614140418572610895636960583124466251033442176986955312306918353300561885184871146756537471284253783753602700254047815267696386800281490670826847143662704493834208868297956055915309143195923053793897090912350168317523156938922081723667794771797136271924145558888086019038040749460151095181573219926316308153672778639533982650376935093196217493071036054682746385192384010858938048215379605703755413634194531791021440277244002285950510525078853005636254879620396305141675053890281548398938260561846059692543092305011844820244405735333994864623246986164271525520414183945458833906450700211202816269037643723678632709238480835704928556654225657004171664346794270566931694659035590025009811020461599706922269604303931341501123852020843307834927685212802322911525197379137517432840567171957865482009683483949354987063341045109115580239978965553728671671998063562188229089859713594565995658390071990841135290070321279848681737876376919750159650347621049267928002979882816144262470454993187358737961144612207504177376803842330889951248927382171911705995177134534299457297252152140383430460734029321292971835990233671675519020483679889348578542813074091711212749135188966503880595036488660019305177479737720060385947944314665010410771923517224472581698761357315539473606361022608171954947748733465753076976238292997066593811303556669828383083276695476109668865318112204113255088889820627979806480301121722792334181960798412999720720088418393872211390347247310851532774836698378248679654485396054673324517828218373712906848843226097503190635530179412648238953511473878639950548602246000335769136031838256952239304394162767786502263671590542608217941626062786534137817872842038156593007446364067398966754926876493957184903132121136562023902615229840628730956481281693035018696850371310954723293767472224785729641708198589405216965981052533788923350319872584948893728640768329664533840034139733684656642998129620745325565166107548253738167396922771695636536682581378539295928048639346240680045612897367776564992644452755616222399431748911099786814130034087861609640689091934466010685781739964966919294071519797706196735563278083037486762428189532993799350174377033041267846394107423900040751986059181564659477586096999941255968962286988157890242657789777920452894572685978801512039187864497160499936222646124958687721434771817782721540331579087438333180945029353819157281454183268211248197232597214322349402628954695747621010807874258476571478016088334049625546506324147444237115967899237058982776656858977194579259926929040833893272332479302542032741208279443693635479139795797203963663957821049584163144039654240938604752833259243435007813065949179499077038816705671448564759014708193628846063438708308730139992537252983668910410331359439434771325452511125521110927987277859513827089163665909520741709275251299026204554103080348103227000462081993134977410339699357052008134906942080378722037904643828902499024012213804633979802421821068393468508849301679182896621304254933387996548743861093208514910533275877322690267241292966256736459068755914896312050174243945263893979024423237032649035968525782137809651504544989318660685590975663239442261822295196564215725418090320998044966138139531209853479671146993426949382451496674751598529004751805276612260071977572249670815150580391434618240125218092935634426976907759366545209082025060278046714933632677872058168159702504818400764542843654950033719423356553170611002844230300420530529529330867637602864565461103827537415474849100931287259564420569761099930208810403531866948926239609953565722335747574315878618459048319664295632227261052716481983985463379437083657296409394888203974869606943333151457916397207480723433442706976286568508894730949815971906831106120010286752309520111063997859704188194278438731917954837460367190355693038399401548373818626248926181581754672309466283620556512169174703278872845703153454448585223696069798688922493453282096934356761679260108472382625897599052637923259164150327636255946077462741704332544934574448894772168762718277270729479679929407037256821061295089993702462171998898944678766862734579413522640334981775308339939067029665213380346983727289053247600661939254582065928970141526129507274262922793246579170438371626932075365011196015575259469406191818184873777134268344442405293066005733445888690588803931774845117741023973587752822843859586720282398743743529592115562432243892896300272910568728872681616117730356952723169774369592914248446211898945750116903129574251482845174419871337174865767463539747457615954160878152194938038219063171978546364806877248861810391894489750730538558049092079632148308935231848037909066681345271782335322466125219499267652914275908909226211751081746705000595680931351952840080439007572617866577512574528843305355317484142917533742487750948993354373583595545788270603739739129226937030124396568971237739451673185967041931739307423102053944927937255669514349788055457033059083401130455242088377453018234714836854057038398030083490146661575627829724543844947365389473998534287543282274785381373116324699293836702958321529676293169015770163764597073115455682766349019482504203271623554376160628961010317789208130071331349683386548654072526999424381887465482728672722781054698999243638538389171009159271708230490667276596162378168640441085875745479366675438596986709554749996591202364718630251342342866031230832887254261484650491333914084557134897421213326279563751415885938343702328836763614272109109163264381199307118058137053205218187168903404084228331495613971410009101715099373550162504986980212807755241862004587089684443830634459894955514400987651922004434826887012701983039406922428539144344376925256906037856331636359169597563628551168556316245250277545376196294289043661945896802391851580679143860655457630666538550897916719672277397520763582919057664796718038856453881886603506454316833551245320523828327827721092596297947436508273341906948411747713586694162355151541897665027365243778292737501090510930825867898462418684947221879450928673056564729372657210556932497375301720300342984629399035760405532694801975212600306698038435039953622458649675717353644866229608676650221147619719066836700078786195257277249607749530158270401915630348962763155359129352170209298150999571189777124690854467614485083505413333978482613439531495371915024132149252570114576270103268359197885516410361473764759625097622302881118895404713480424617911538541632328400543710846426909503621868337287756445555844513212607093650888968996261040660972714901582592651684776350623657335276719538329789200090672985653235452227481654101948007407498391882302793263914494236957352889952770410995339475528270108194335733697184319508165751817731361789203722200462320225025710195997579524022444777321462083760083485538773062739020918868352510196397670784185032783930345616401418765456938000416667218785983018332497804306684137087899778060970875131224537331792104776532196322692920624441186024038239395826938487694386479921582750767801607506536356019247816328848950673931704750819664627195118968792595048559814225373534918820225223225452706403110045058649340196268324399675027094197725799996211263154981806629354071558361027497190651842740656593725451257474213565274061255142087368319535891534018300564376147556000590188755943248998734235441853629889772464142911298518495310609053070368529095174747046621759278212702844272027632422188650036282932734481277819082473719717873312282624529339033105661231369437672159701905627862510231496508385051784954746257928633548467647505619389560487127247631535427130602573246197073058891449957628661080519401608773839935947596879342063061649761016289384743787627083980936528689093624135397422309740440123377345283506225830076819495350573727124729146302429342011820559428587540967299824774332995253289388910288262385002918686066223060076954145344014154378027435465277981124805950108815688653909581055179251789261685947619890185128854853300197191365805093430865137339156714425310693345585359369068057311121352209014898432261639643263077611402495957275755180179589419401319774573422892233099739196245423781531637399205324766455348061014367306832579576051667436473662023462120548832579620677794658961534666628496225125599883736635615457380994239822341397785731811852669450921933340027839566052219043439079521876952862953625834511428833741880138976683348345199235437275950997248847549985348212875416021214200071674252732281865847130243740380124721275771551735438068693217817098469304772138693436239351851772094380919024767919123501634197498300194349251439227328399895275284543098006139755700791417081678257933982580345053035043559971630184552816829264227963795173998262569721393103488869523650338876723534591792138831157879766244044458568626611876186607785442345782556217513915151217506997028267121482353761675339029972479438694009843980337239260825759149712252496999091625168224188302770648315381122368712756122608584023252177282389919754616966871004680666839513940546830147066324372809717308526175004054058463579964387130602504665324509851371135047840666967408120622808495247082736778489675066868066569520461593590640327826022810236552083797774909998813393057249306686654387869383628943125351751613853047656960848342689216379531764454189162730517522167897208041102237228388620965663043269375053812605807435715564425203015360659827372446319420027263684000729039135232160978068208980025039711541356380741843338384377559456889934327573287635899539343330132152259001208386005125201093186688267356726049987995351226586460768784544884183383413662542219697146325189211728250097412198388943799647742461118287564927400801095806810716319090555440663768419924830303824453861204763918078777478409553293677312666506230463491542094550301318699283858704049776949876230868160119822506037840778293313714869319557690412480960028942859014715630035995211875113496092846464388277636681644429087235423656262418491311097071158811075995684882418627659429311553264355336578107862493660680973525672832824388047149533651630446322041993562377636592354694982486122240436933050644547086698381945613271731670628721129223308827822876856611293670404310973668158215665253095319273576065755366338130811412615041827425919791584686097566171115535926504724528901397973074836568456676376607503000803886827448092560195250182287786775116835185139009239907351059703270669619154073287289116846607505209092006071456463839356591565542668711062586079996634045775888276982303474499177127874165892377979611704433066549908819497037199281218530920424550101018728097074432904339482702886320072929682300716061300967267295626979183862541923927466039000712109973496105323355847256759415833536503896957888361222771610209908180784994235623092109652020074968190970233682046479621093852321055876215088656767684835432116346982157387655083783203733814319900742026349784281011684895754010218975450709832665427621469333908039904675311152024150248320056656158063597923618193230076288272946688783790788539740489695339314700311313244930932277053261300288505434290778900634031910022855993741995905453419829483886576419108382166429914611419105410407217183757715506151351539277140087755200122840978187258166270893127396454647725980889490463874441203383403984705474826484342166015060409787038719760453329681594560397417927703866116917540306056042759474927373175806087531129660798807172302188309181631035546996789996768141132238405848721504511097775413092733480856139943138919564591791374612961227432649028945058286960183976632667681848636729784429610824575327353237855810127991695760753661632844571547967757002225920394790124564718859527332353801320498670716155091587828895672746134396154959024810526757899163956156292280024734147290929456542414423842797513489457306058339555466206627021001410276707945843521164890881686243697965682341977082233313015802821876841167102851911373496255504415650032201321878072083632156727583289411942930094201762773431074932221630169690371102119681781459611298508035678247175572259523376464040239924499411713322706481409220890393406774165907933582247961761271957579062321607533348044259252472166376532812491737879135545453182838865387075647639734081624444987933614312318569653401386442209305743912872763381581387125506737122428830099858186321015635349402278310563117033107671249904005132001293489702721309952154923915078590421402689313004609865615236140525303927254313140978670372367159813508704144415568474093424285806826691887058701331464632050819150562484760044352070807540878211494946211509279233564167673683350164228427865293392832792845332151528920409430120008170861858410750441576216810260608335682836973843197136510829362124680025797679911553999076484038049928171803756534595183845950993400933926031105087975376413354905293957087659913428997297701816142947608013283728437159059062879686640047061491784659514338089797901747228882213053141514526750479695173436233472615330300093049742656539457947474078856366781947087581203460486212211973268398503198398806751235560721231422483976820693357970254541142678568828685762181461668246755029523775266140894926217941023421516354117757026907294430769570908960644149658816717421216683181149637091447791393408677917203636047183375907382009969094501230844029782431989830742991247475096595054024321134629833441563938684666384511304171688046800828350179909695445574285813277440301400336368378712361162753223918520093151086954785404060385142967533705144922858168231754675785993324897043319474811631365687622442092119616398478074939906325506586104726499462785709118482930764005230239571694045302297748433753449693479104278804649755091689284811027335593809440469348957848319661916191568767866474420917676961460159614300711876371159818435709487634197399138085628617818195168335660513197809453225854265525165340525641898360419180987756475470093335456463863745881837071930899277747477765194007121001602129242904288437751885569693798413746195948786640495288517970299440341709225712698364347792342000445089724019564277684357400046918068857882963825556857695524334810592353696323776654121361365941658964893601269083039121890796693463878269946256898943238426947900195449176490799259672833320150204055056395822883229865421520127390385712551158338946014788267961307059368446271407317663585074877351536087854710599450815737503768721757586689747637142045085859347552037159289414490384555188824778224888605676817948448850542482711765602041275625108169873029478991692904177807320820294539123872885057804711502794340678197206798706677346899175968570170964221498843862131723330140364840906229633661397312051267854801975140106876149786782238295155301447754388009420919581119084559317284191284475424593024043441560468496036522322070391819795473902374792889430628755879895504346332729229426581981899384964339039017485919007454985194324377468897151635061784044765817263836980897975093316068670902736290679673652827703154632011642375553779929847464033232739853551610977778107521262296894986051351716560241028710377241294082780755589199253507584971547702149091468336554322310865474877713862288757608100792717858979025987591886351963060456666333631921740794453033459277301240490432328916988631072549085903950130666659273011702603766298106832918880154007740068222930213859576454235684172436497530339103424759546679776970800273759435800647152486835066819946207850017810354281282583528653403952123279660353632408223180898254477105204750370425226479722869915914522430007083320007429597732272579503765299376768720265918931466788798396187665084089721207162147080505329655306838233758647809970173621775251826622594488975554791079002943280737776954120378881938575336245355575553862151372157904856451955247827238390439225555860854598378324204224899605866221584236888878281887503287720578409778708991012397962235928130415428146206709469072943044276373570795194638240638535397538932514553204039865813187666506718012855292092902813884649449913148962151109657353827367110519461256070483211206288125968749690533254651660985515328470502072184489791513038599618270755253508309417881533073713333483247287774790518106099400650621846957914160902586333765370269503363251590124006107726551850408574372050402869641903450601543414825874821359489668051697162204129218909013651942661633491015177709354187823411594434257301845846047967497734112396736746076937584906354299939745453007174309149674014521858837580790841009395282512399394188780009800085298325011797155246966298052393594260533425668348417106596468996024067593181873007607716569646002749184784539283759773956101054362297228330796712427595819133817907834096214082773026094598302411681339242540210247908295842719227209123104987777436008228204047939823835763173244317194831569713300108285253401780917584652294174735919734937221873348650377566376945451734805841274192964806237884746960032363296456071875008561994006290196361814327696107910102484774499481774730369751899228135576935750144684547038179643560419274820296641148426475538846160928431736673260951171414551466420877593721160664005713187183194037824930356602642114555465509638156171759883263066063541502910121381757407054603475894377765734334744331361457069549958552068159687192079552646702350322893258869265521158374045717679269786983093658441605217539839796914164692130528871247348215268404863354416036667164545205728789206539039689657009883303927822831246398832259368184889730076202950191392217469639190081298224475781030178407124137118133347420691538063731963420372270013531282315612820927307873336065731882243303526775361685144012848142160469279280062614904237264752955289806723868980112463526170892236094195142983185054938776422055983978423549606838430804446309187389828110323261749424902459296870542909598932771886727881814902205185942496497864372201915084587252415137733086590163437389903690961839418466048047641285774857339602432888485615948165391309950784326152761242743730419813219131097138233235365219625656568413210099779346586712530980916312369454565524086709902579573737869073570795762333041520457760151388345584741962374792667316394317081104616149280635883891893012927765043664289222295248659619647425015639365130455542218413698115505602264569224268844270921908249138797460468842621535222232159695297204600356284480180514309235146490648315581470733739099094033063516284763645243070399022890691032269063357760364860551940902782680315937808826592838678858928333981443121074324210574440779725530487580754382718089738160582946051048302938386321120440632379853101812009680047840131210419317231158801989412899950944905182352028550174784547276205986369707009621505367367800710401866180814138596278076915303308597359792227429779680644323689308438222161613445029092444424134286820459892391441005864948555982060284922716247787026995589742281427014367258362020191046924111432481136567823885316616782305910130295772373949421822062853229253296628105627894293746615051753207102325403956069542024998214315397713255432975868552527248013252592049623639186428240229505652917173498207387727486453474499266638334680804728431021137809271950366939837088898079287353281533984742606450074080844329450210486602352792585313312965313224536877330895416706614836311068277941901052865443855254758821389430878387554697438926764549662138072288425723934505208345421566445773935903272319758171765916091499223005364777283812733416662253384147224262994241192462240097854472979829127844039263998169698249831998810282024020189496060671263656610074693970892064689403357049238092701070510535093856117942730216979882535416280152727203897968351604236902381883598872104029201907105608751001679037111105179391713754662368383254144717859386530297056462626094815960597311128207255718281113324607610421774775964548391117971361887347487868253984586689749210617703503217366706570821698555986605315272702364292962106033276295129349217521429748836174989730538729795231771376516956560760094102572096526413672280471890194845365773052324718457685643453133418091260257540139039411638861092776307356147710429820371485588099882807701182076886043581805556974289513493920850270360998529136566724200040934068156266480004775036926701006718756549830267840394977902849840804112864904273731878732357492335157779266546405875527019733174152553436934333587817743947667698653410903424182885600468244271735589195629962507979082737456067765384902422624243413944410514766832862609811698696299573291894803130938365787720305440635688808739217336431685630197495882407785656469110058448506322174856027869870825449234350094624287811424792557092875881603713337049894447935541357861767774259300350199487881893546457069989802388428594340235293957359036387799554858018444355982316908424883535500656784002486228853977905919021010083266439140423785834714153921125211966441271967985001403777378161139546945562639343963722916983970344316180226380185350772747903835838776038137578386470121363152065502850438209268547160480494467248770511152956399198461966070480199092254387591936048994177642432378782451275097624575285549009194966343005632504215824785039438656573470302650698002722496538162275541258123830022466850559270192809527663208055323913607488598549525769899507927614076643457646429097181815270408434116864875195291524250698686972091219727276416639989480352938155720610365285429980422793399098463092628786791888447458228183849154137902575761730557372190989173358087060952118139139228370173304768818085099171090504440130249073627223745299812479422165881185896380881296789286027173502479061364226666970965563306010179050522655425750442591979884309629281030657817347163705682133316954675385257041275570407558625868324966666399960771750714245424347638073499350925572652501928764086492761849717304589762514871648859159895125537522822295535780927551577177349425449406463653286438873433421753070279721078884393578408051947775698254173932129280352819043283042266081152776150337280932222161462728022551727594025891404956780402766853683560064837512119565560379290890174970568828924953768000551170445147090402764770952661261789116435270849476633363303750476266818134938316846983860367178618075709038409994416681888508857156733750859452381605828850594971914115773519469163826632910009363196937626265633997143885908306240500221068562483937545166453897795264550145438489917421968312193140137299511841009750979419923746884095425013212364767075328956871649059351028968444317033151388148484475429115655149549323986047347014309945309592965732996406961790565718915571395922522237799661633492924092690021217235135430809375801321612313775451234872903356146091481642758104995200236087135985496480127596933372611487822048271416542861097287385314981069732753696855913268893124658863973778605279647314577443870375512914383631014808801025549750185056343837423264942884038079814325557800163924992969085284589836391329251793706254015022668173596465759859416332244151575736726621923042569556660186221382619088019258120372388154600776003859044903886176642120015712766244087630529283978600293770835310900439186588120008743195074102899806565937988870123097310069701795579926044738696361160786515983764865016794328593343196281286555160845291905914267792049399041189678877878667430392997576167646554681342473563258183134122662690037483369850318720011746032135725115548751022769220143344417041475936503892095454997699002142804930356954589200600890881228980848054976146423981241706535745430437630406316824995543589767797872906794047694811267909513557437820175241646753461329758000981295779099727071190393638094497139562962587268238358947185416563847329242758695098427673777219233217527653968660617728237159657082113035581036381518279132569446119309158813353194273406654288407415997081949240291838849762574831533937525466736508284396554011389663016763904630178354753694786523936554798320943468147633789840657847245614207599449897741287517449458145346573837899796025595862692807395026992775699077608492022155897434673926377917530366643870530714852519470220957089282863695049358558489320909558686670233457554319254514425181288007849915141850033013801828358291916795101513506325891573568794876741918382330615913768592234983322508319995527848625505908486745504695160242052152523566763826664320624401134624618483553823191903078979048915649288167569495129760602261851595750909144277224633135683572235099411255280916228242406941132232568995320003903020219696821738613098796980072131163862039032729719199555770591894651777093108673343597019086754637507774941816421366245871228362571309690425221424092741444428629467641111573339026068992839959142073445918210129878938271304750373833166795787273900628348817212343279316790078017927782057627942474196395117775094573952744389586335334736796607055052701214254429947908049134644735738109236893078603566236646115074415941923079912263580537526359624935883885499453578608882349064790166624557209478823103870099917210865162700174127764789314306360703172683961166817967359974052437218012062348194046773515110115013575303935536135039838765404636303172924040044393454222886650437559521679638559904741481073663576222693266433064224662251361964755994793944751674283039388495387860866631365660876086740168682542438595093098390095082474146115182797151479253878236323116039101597908370532676133565305010892559736947825669352228981542080144662048550197653232102181616621953034657184128801650264483177753037857572107572167270373519222403141487053328125560252379096528551710604474479118067319707100206860334909523369289943517346016999107184507049095286957774131794120530566393158259808009454159456847401673376199344464418595248458578067918467182672145793302716286484233254970208681474069158570524830142625134913013179318973838245254931717540343510630594415185851799332289184639856876612867808298214112906685003925620774769600566532434851625148542827048561423339710633961326931405248211840228020876493282460070792951867118770746416457364563422226184718124284383548826605654175590498795369362959566497254118371933569798469939982669708232831209910934125599480819873220386864574976150073150130803594050406734056012325709787469629188299464967009553229932888316237622770234460841617862958418100330595177229060066089581303058313139558858804827622596251755183942649806312004512718100192221949705766974884459659269299769162079726642341433969809608501454529911686784527877225801508574285976431805040716225494651215268950797614098356924309417467654518171956674720444984286032696803718410825938273355849743868558051359522845528759636138602758981945310017076089442733247468724295891164782188536209845829468303040751100830546676612131694944656386623369731490536304878907883287404207267338339692583482813533324626119663972767295769874440365471360016591674771423861819916453062722898155773566229226610897177977150083462794644093605843157320637834761951700001658106021009287840443568206520194527028568264322176071358160175222197346722332778027439894359711559780381276278065260467038575085560255608105166677818382636916211202759547635750927356103375651797699465779495961144911621311679160046072342568134822109174704161025408424839924042350962196912636812091643490379266934922254635101740341015465437528316207061053908212266935397141446701638713391957245620135139204050918614732321829361951891236454920882390497224882879142572991339778222478186521013391414371601077808100071612966209368046726337703019405918478585965573088936450785793600087862868663380797636890280780619857010023224477251403933032211957205696718642388023218633477611259943548649924474751661178360316695263754160436006356632387105927935792175687119998228111108914246461015465535659621270420999440319758735153439833319560989417309386547454651409993893976935539224586430358876231576156258615874628728187813371123513458788378558042169776439852599278904996242906538896215821222189788781162583829659073632484969779876120071306818833725190037037740348722504297349609934766072848640001631992960669543707142711831921409924423946958256654205419145120455361423648841481602605377486614986411028375951629099962209123298192167833923964256139072775365707736393725119822973696786924689151371652648697596513443576712282685837531440126280418404622869358897358246373787848447481641210733816758775922822307915498221080479590434831933876343307339949925194243372136321191536581087255275493903497011795310565274368888944085474666472727078090980804699730940520281612958244606562916550769680235614513978599953561449185685794960899022815409931896227352107475824485672452619510048267256152701723009343943029068805301926455353042977099978289188712729775673122508012156908989210462061030326541953558830843463311842324326679350246989405747391049323557387286249786807514404987381434351183852558258596508486197653483051655774653548492518470623584636112896123106347561348782919620808029021541889567169547057841263606512805097004486533945692126761074648902182601513600217640420759343042515496047121656063826907266881060328142047412200888667349415179972464443148785230281956677300924345252780354723713324981121114475271960517285263909324000741008504101353495340437750708682692909589645056777697550518169976547742490749871376897080542223103073699862144213444970480833388629036192462099417006595275523499456084088835277119951256411788748775542690695378901665837170505976068817790849116185702187460703920041121012738663425845845123645938488104904988917124685739269622180648113410347799910285334504336352935599469991079748386073093832224185655436504976494583857095754758924181079549377643168962607343645891301527446565211457861415577099210493343713276548550207819757756130190263162731243972242674146601694043536211266476206689557181471499791222039059360453171295309555401228551081121210265729697565469723178282753589325263383311106965765815561173594867954759424190295582012445750907537337046035362261549710395443112933407783239085701809046135796288485527163402699650631291909942696959662255894979756287212877571985424196734753015874634707330507378457961453545425206442308782408414080784627967368738878895852044709279081010712119877987278359242339335575561937132499795938760984147798982138182650343224013063857454488549358970704862514278724296521006566497870701568388386453995903650801711143641042662786967241419983265473341112848793309343958086678907543407020267937847743455352656651292901343372346289780107820115522188723937312016093709704068632553677092619190039894188411459261537011666865895636731505221633041077984886772114941600466211065860524850410795479483814251404996368249707396894144246667174873674631685170456357754242310515058098647646417391062874599047379248881072743081426295248909319854957628983241719089619983841001815466443780823753328402254416041489599319087300847247285574881837697581895347939088019845806289421123611333546325400404665357173166732386520784503080166195770809027132411891654620198070895546091872385437261138749662997666582523147148188003237950038066701185989421959948218404892260458854876888023375940142157915429528712356822719394165950006243911835934267816404835416238496792420808770996375733873397271385700510172163901028140061996402955555109205148237278889395862250635820057623558604606700333545148883088032069907961231844923797333900331150588294838020687671024091648595888839443246563446675746335849532241416518803282548820899182410294068318220651171221056358109508052676082430037550648338281503658350774394016308024374809798482956648727702134170055891139662180093523043539548882559026670900065711885335952330130700876190428286557679076216907339408560706158893619301348780259524996703159143624421997785198300437984441454865516590828204141139376731810408771959657893608900600929857187848245431621802453861168378585862345107828491821691458643309724767711314959030827346185247892215957636176194158034130313191841607759441012157439417745313000107950564422525109306737523223688543242791213530557592621003112211862038297502753817842541731173375517119681652409284367663014028433123610329234523189183702230344454974141886397398650837286068616943625131655980642940415960955828152794744894079600670401560663542330566088822410924622558187358804282793469664206274112459752152202761318262096736092737034186306804296209480151901121564632335461994960497408344435453142115006726825166877950667254182169648683330823372445854924129216731909818022915171702763953907659608450159458745976073782236371820491172490303721728475214768189382828585241866401407091409917788371395692161707697901006019230526629784219510099218401232206291400604821781949015619479026466313128750290832444837155466248494038615248535327366354838102400072695037536724813331564958131952983295824894569947015409838635883751052744503875423741635053454843905912980101603370240650914196544064089309928745635036122491584860237513287337313061777643833491141679742795635358264326565093438974387697125404890995439761030944701223017049596779161345460240920721494649710448748038255096475579233784085015704696540926099375292975065756324454786401781820868997603550120460528987523722840965641540104304874662760719959290035181390822646562780069174993818897575504124552628118769537357505250127280159222927782677371946137192165164001807111032606654657645725683990411126551032698984776200494525732076336611879466854680756555778816168336505980479975289388593446218272748276975735348116703851100088120600268451219316134987292279735435145251620662644675504351300995887599865911443487330276057832738606108196032567833536252139853721463271371437336685259428978409279847787866474664495788358966808204514776727190703126288077107717808759446592879491058281275131784511939021920436217399927104174817473553005514968071374613766826102458229788902686407062087169184080590668402107117975507316360971232104299798331921659946411876739047383582397271020669138686758222340768371402512878602433601375456956121012111866856952757609838762420131806009730015109487704186475014603471909560016445913258160110887003424095108600659668246618613700340454030565015603210896111956432794011332320624412968527189733900293043875268264132523728118187341837726683170798223668198492551731114048429226360049729836646471747032035892511190314552637820369748273764447465796347034362774521095560749209997068596631083188119705267540760841852099074526412683090143476734298550655555049583671068719038492443885017162418959241597064389551791976124801051183266210839518091919316864715007622854915463321002949231384348040570977701398274451934839221971306082370165463372568013935034810121226605114976878294628586232064347412112626633527821577473245248312413542866044140191905637144561933616734099663782714960097805768754169534454405994793961814891494772883934449386237854457107150266682904961403798499699799041773145349852052515468029679746264819668702286164231214776292412429658312763661501321599568755630321383495785041950236693928204408381491115068656842809603044852969738253800241726769870945805588238766750880469991238113646498178032327138862753999814306474612404775417177869633386139656178859648317563519023653894286098798132431059641075020220490603935987091595477942138098641791325093915143022918235919452911502943449313412362151981821583120320294860039402766901266322070662570651654600527475224010199238734690299750611631661928185097677922609310051354456493611645965660284911284552622478572687470611594626032730492603873190984272702230227936371756711926858364718578151551335203402009425573257024135674979298326066168923747723790923156448369939822190622395983512927748740492188486514861800676468364747663490435468522704418150329473466880598025997045147190867269754209092714637247939872429080014659603061266441660222860405072133181508294609888507098056622798154998927924314053239903486173808021493341026331550511037223388751481620439881629614499371184147306543972563580373206053741937671572155162520262879124347517695662745040518338716088598437046467204976925718626306817461111789650712733894134312640042190022842688463221924960269928537680961589319489023042583390128608529021358552535228729369277257311248398058709622089306846646263634164743178986700047406156685763785710758427494742964857966762548769795941069449268116576569257910637391280917433293427660082347445122646817244791345411283289744575514650786956589905282466534990938715111169679515364328261511982789866889710931016959104178450248828735231923844862422636297349757684392822631120200047132187201701783710975756685537139382475853381189805680552456175892532901241044606138626252972014495518845924861076157532019523792106931822465517728586422660477869383984421519139188494771204012480322261461711385947975656859117457472444182755643667550318617371053128406159154882124971937173021267439200820411175498546836398413567746088381673386741710047033045122372699632967533503556837425593278850528484397099534151765903293840285069219964260910899068429037128452934549490793498403703950159436563446313995129824581333531389648303954685377742386758238799595073127916663391213576229300823813749950880424143677063411867945790202225251977023599544884292304632875492349672208730074226185326239441584686508261531865605778576997292533518074404638289730436121312487416649557732058303198526492284003382122961982940003572188960922276076892173732137561281714012789476808601846173476133583047799555570110846589918465264716029062432682309721379199995026002007677928428128010218904655036864494068516374694740097967052287174665334653476683285299305839175291925684229461333033502992661474903553099705929443017566334383432230441543437034764664049273950265810912648824151780638495584732129259848639143378040535637602806068612781688892152483564543619165845905112065370194484792425462055879015583333543255865910183915327556343253047913740702466588858551732641557851082711621409191150201876161758170251311700794414086348631483190552961554113186777476030955399998608079384374976227303703716974916229200218300013533918129991829604023592948162240375734996478981565262268246922466182266003346563155444069190919446133592294764761753098401445696494985417874172123136077955700462315757407016476128273409638979769774019876160194157601529109109253122761838347867951852419370607979165590705751518051295428310185359173186365292029130842057807392675741156313456410600481485906597772775589233973047601761186109466683938317051367676598060864546532753844171933248210350034614387006425749998217425218212189204246983459694601714541080967173547847902896490057093695658507360279962669616846431118237198194995401755550793724878019693376504513474123702327858171705272875406768086778657331919180654146507023469304107602604380764983984187762433538838135818313963322978304519273542000124434770143914102028058351376152486834654009224148555589073720292194609496783093804725225427153971564461393207175620510574794738255630340449984090551893122525815170644691359945494107897660528393799502191260261204772051458836877277420393934927466174231696612724488814202863914202278124193533297421694509467954520673956977382806280091534195572092962087021781623595731539858049405991309645978436746168803327624713133218716363946718093667473440335755526219772548442024999633931748616681168580024161019357181587639139371591531076342504338406774911006239888597954611355539755839653053924251133851519729571507256719493159144543886748094127009297425772211701976780777554115314644415888813546404610034367546339543813657379417552022983704633781240452763115958787429154142041620662489126162385007770392863484726233343506441746226554888964328960847169212331084463333505337147173330331901721153077481815975318740320652065466630383402472404436419295851566207720195731935194885916298153300551052799525400109233465679859706454051429106571050430262847937593593880541200846812071657259589682779436299311192290462874989338151616124180754183887659727170003193889665336565273596570472983705556510026802792385167950336520665309178435468005322211811784568324368004432665902546285945991038547579652091234389503251059583028451450194530989232771984892807878455467496436275646169662618364866620367155784981383986825287619563857360852041933202576410865853082078346093735426744174587917981650977606748034235879437881661119989595666794464838215477158445223575130963086132598323044566468192097250293449035786589888840520552887864065938982709410986621527371617524492691264722285626744317906706605132503314572067834404637951426017333495920626461812732873779400130153571573662376126852832110391120166194811558779550403940865122360419497579357189797408115563734672074274241577377404441091238485558451967364835048886830993138982344212485495620233919819006035489851804406713580331408724132658155808563355292356505562434062217386358710059109166690201106008519210620615217298898708361337945882584198929728135937846386408146209732157488764585454529056485693476254092899106691922560246425452910014982009451475388690585078215749901642383258266123330308423601713313301974026436592810516974600611297413499543611415077890155231616362758211607345219385511127230089600339937108736340084744585828116929172840147159292712719738225355396398764592473836932611280374299401387580817617506936047380882591607654996602854941583979429130441789374134981285129943317567582440767341769510242443311732080541981225031554764825787016508657667023097852712134326096082828084722273551612798021794324863898906029251915448088529449249132385753214896412844565058336515343983943537063223690868184748916340829302685671978579660416012152288340986449503006136379847527887901953417743484446727480043634827618082339916100874051122351659677445178308192167027512514354946996687266873708278491919916820259037114776598260684642971682887151964827056579379456630484995342582827100202874575142531348788698880801239182527547486293592025797500281821975100994629178378511034667160915765076894240576434882324541062551714557685235574081545523266017767432094790156452054668753256510525147976320111226602675248332139550899312683263493013685192428403094260238790532320478767938488157817991207588399895118242016254924399375292502926833808912965124723281499026982302378886144353189879921507200178726947659321610518524050768636489123517516719370737742162435885629406235947704312005266062569762509684217812114888298800266160440592223293316241761229087433790222878045617013577237506195216034268628062905378649688713933857125624169640793244758313698859182729992757829492957513048250436660285323714020549644733807382457755582570927007591535821362248787395198064475365092283387321973789450989488122243166650106987396166729899209644205968175696192318398661917934084742578681546159414589386406022961329500381200383897674502086338557826679881065690369990815678277851637829345993619433669806529792215221536662888399402680386218387841389549979200722893711695077570617240023448728986838088894693258218633782343569120740289568718856687096061273862193498732632240960659606991760200545360381658966021438717712875530983709902071330847123039179755744838100506832809511893292721912316549409066402145683598744632162655757397928373087028606129397723683858149199392584157425491463351548204141285052561164143847386215794850259095916940167019222271520515924463847867368440341019760225485058596203745202103401958672160817127019264607046079599287131210748035118825068233530449698126552095670808845419410225351991313683529115972228197796519175109141257490667527198799284399037274106458867169811835091012056834981767731009548469910066421703751012964027952668079262013464908265708373127308877034985381688301804159107350878027897814445251654077081274884737965503318298936026105151709009201102220710016694799486064988416099255778210332925422202382431616937945524450771166127819572028994905923717876307137916207732805190043595063027837205242860716863197568319944953596546175823793319549221835571406382172621701189906243630164683498799430673248974840299006267563686639344986687029574632955927635822741739047673664683270987254008256582740793730134212501578722469359336023202788021334475471169254724427882347885720204784810966824957325946506938183932899440856293295484523469547324707209576815500031362868183058735976655244562923337098003920244653970819808809751677590008294523393382538737975166366848481990619171892305302932752820522887389977798577574644330667384284668342381977782239415152243638987424951701065667853026766643708546240614507510982382650823292192311694659360552162437012743002394924600084644191371345373908817105432971996259217859583689002275354693441992705635449944646484635692114739545423420930350956191259629427603323140283815641958123992168435705926115521864367293908114049884299540135030458261668561511919247042480677787488387131898718967382619247397490892216965648998157671704289017449666205968008681990919566483987127996000606600983366508501317267050667807381053625332404361561098011084767554948774942365851637194652793284979905770184510490917015335686136324438948796590343675903495600216642655815244439282787227173594594830789387202484734203222900521336068460531292940974975988932013490501554663997880699917008737158891759567768947270618115030196472891325767848161909193884597730528881739137963419101391228288186895766691581750664019066425759118576388754829343629921171912710549773853730155778381018844418606578305924104527243196692276439468819023029366036893929143527900678345492052288961178860518754083104918089177592609625711828832708643634672781816274725571485025357509356019445337057042972793165183243697073638748560927282169570755935217982829317630403988543895057250179465534119664384061183281712258058093138653669016323415504235539488039771007125070410567877416202585990840071768209894144867462299227628920255085808162173150838975538840534942791905673448766048309707910866592252931017597478538255714719464529629087845195651740959478943963376856887841336334073539072743766372205280224459160534573754066183716958052421718003218602285837532259788835018804231788756894023197519743744461335259745789740055466244243249759344049537626823640150573472695398011010025658251311957538915849382125129679967725362127646076391067226918441110591666718231748120661947722805350257938618987107329311431962195583590075732545492654405344858762379970486963982129062304652602371545697463982185040240616064721224738628536914542275828158930325786719200381523130703012314500162038355855970846362887285686618295880381514125979242712228006580721753759956097530281681324319088267581121397864589779915670771233413006140507207378747754227133477723187913877806041160283389280732294629861094389948042687763090413828200824932764378445694666855969135097280929656029683784248319063766489758940229747652337370707590295732296764107444779028542205710833186416062834832840393767133814809415308100383634620986740923141625772592601642413107683838536096774393896453881219871847087835760284657585006626430131835637759834394232563195673889217864742511539146483061056176185226614849862117352993003941962679783511543247197921009990235995010185045226336213662954175879041155291163005950929887093720511199532095191976119111178565685631458237425273363487442621789437342555944388272109955258344048078153363012318172504761120985862139119503812768576842227060228808579228022789927013545026898289812867084694808586907736873104882413520925337799281517828072247304329560570662234561899656929407990430103180055883851549560037101536288339329630838861183757251344292962374362569028623990818089667478407215416482153646698525111835609376953883824779268205403556229310339823461721774992876114310711261869817671651010213281748432268604928999621374426489178747080052177899145979368325769082544704995573654607383329544550376054556169384629935269555982548143695227451351596350128443816576238782190283447784194348491675433220898865725107216380125745592050062613832353331001746356326967882997952231221335922955987771478425621528196600958248039796074188068648146222184673502384649962094829002372167471513017616183486648569009580445271292413610774485501645401658821009469531851670949653202836855634394275525867623093990262646880252100234839881081031395915672216752103640311682769802044708468275102160076529128596181232892391998983761546540152884764023895640080091117077716866325847151888652134181009630978924681427776744424909848194620720991186061783788272560602774892025077565496092241537218489819139994930435616869362159642917710952569509706990063231006108564855544823176816949189203353825938397977955201780600261504538466022348058428066808005409727242488709889918140301721083740851971684465550686866825957621317618534741443776409811689746202037121131861503180534816370992805100579393958183960538157279905317356462047256467564657337523249604428666275422833411947710115861482251329057472336964545935077863028139703502693355867202542065320191136456842785222711304993084740155083205534502207111518292503782458415159542385729092055909315552709371573043650713919706627072083660506535925780753879966242782962602719086367858420342617942729278387207422703925864789969888520172854373296389141798564954987123131742107811174584783471481011302200669188117139063322377463914427871350133910136146547582354731321638779785942292590928732660398061705145105189352613846356490075823486329152025865510311034138140491015735161788607576439646188341017565444148747743969587125931820683929218116808835597127226537119526746391354728890901025277774299066816800531987062324755696316479419943187728998958907371744791382210691683031443021088327187369372236371598248511277737658543952206649876302769812346134536976210473975484439806649685515001824287241396293002078423904077017175308740062110388698127516133110767104226560953420656279648030919591712222568605086606974919587195285117201863014572231112559580580300595904517801620915600339271581356193961524505829409423830675223104876027568331931395370615940569008254671634076885187380620283937649414169522478976448274159243938907385870336831106474829591656363194075978797738936856825365656798119405558294689075620974863970515862806160495538019929879010726988526406869489610033232728420340618845421289794321886897072738273627785013727011496387088466407860794265555255548566482536726238855301957008990944181411968192782252147436730237577264790630213627009294351935375202448246504450281774735303130558784042890529565361669557574603044684002013025834728578786034796429662285633839093850405959963382052013134597759495495915282491367582655773708630985343103165699186477493523558769856167640256943679496508265951649361856390677613408634494961092308528159575947324469299784378750695779652340662703489343992200393314202215964047530798772485471928990319033113606753874099262658761458295245462962744782530607137086100932565610910629015937032345784651094254156584863367597171410368246906821364595022593823586898034205214584241562109771259419886051741846098105218023309134915930553236402118013539938273907609601881270857002216149942023522853011978515148254092669518565676534104044454854881776606291533342393558830409770803826294318944385077023904084750171040932368683097904497849323892155985002143587007713428715847006930247167663122853028391120296158483322876218731270254402750988697775241867197258039845678345286723372626819425913768922373279869636995719475082805749299080160929638564887577436681305993300301065165671686433116003817843318094769824924266082639256472210856302821228584359129114203603272060182523237946293109254102512454170051664917496978501765868001286325445737872529326712774516243343601273403978593022215996177517361486667939676563322195149342983767903749308251701618528493383442425041832303026410055781883185442893640874032039660088923438710023409268523884967322844566873657042343156698938113117085498055633424110903902940206987883668650096416369170528156585835647747550488319116484306459899663270339800109706271431548717437048112170062091860841624596321962758189168759471508236368927617174851631458451807054356379707232789574505387584471007564558747372456716260758755826316241638301758948123727346583284264334984211990679033276995061878866730634490328278376485909168680653984403931713825696659592365734822356876095046002069573673695394353734489287894541429944924229654199206870717179908202751123228830206374093324308284076802365996223074507239548291325100146231522838566996364648161993061080350119340985512877308159545015497909832610070008435163220914097131668390509307770678257938489159213209928659807516647762740421022870695803169101976906658492941163014490417552415284079855841920459422247224085795452489966149963129567459931787449783413501974760024855830935569788153697313632144525114082928418128045024919929598456172978864983652967173740653502757578465341870784213098057357585098708923218338602766809687867445876739370425061052945593448000033794844118691034384898199272178004569840882561800277402469715569634535370581771324966543170795487952577664211206856943407407369416521104530170777514495029664201508567341856133087936907990859888819541774261880314414174869352930128628687697963497164412421773800196909748627996089460936425306791041745935712831904029831131550593038611206192754003474299601297698456728568007574786825685265588805504465028247234062122672309876509524679555116757607551897367108186648733913555473038717714825992498209065563624636888744281635475973802009270337279723575620585201948873117573641520856887998396255395067204576563708667868496167399289905166395473480646884163216126962321404300430349787937658955255912612733494431374931875585152203504887715420612832321554250103695842011777060581131085740672176884473924121518906742976799528434604620851042298929559015388617177785962596590245374799644805737542590339557173690179397516001998758369909403534602006006114570812972728649244155588597502427490101997527856958345334494325002578020434444086828907507743961736705538376157878638538700095357333590259466811975123738983872665368795543001841504480720527649445702579946868034994929416867471047452363136504711526982781055205996265002245440734287139919498025383338505885393649941733636964318998036953211463174617170203880708663490647863404224584691355904242451402814259720943368039404264695762203519760525374669196864684057485227322214112634682007326809912835968043371248986512484713338659995815570362412843119237138052069855463052239628600169326092476187523212570099594164545017597913048315852269009244055311865815319784593140513549679750197159130563640796787427438869743181215963320242453695090810854010748674532233669488741744758456018977639584490217493459710477031541979472175590310489551507130337509226428947436615011461711285404898362878232177554033558151308900860023111908928317197946152733963981475579561048165472182282092824126224408661731611829531462701196213661995941087935835643209329641893562895075218341609495628660547608202339439036938294410706907378421593711008435508099349512584805561426027948881173577823141092156309775563343568928090624014704304068096745414285001053129110144071931810600556195293759944098161264543744367739789284558236168065730568681889329055524837773886978833848212690033855255772963294850362572416179456068806250567439834358406885865279847132056820332680158401186122537107299459297219831403982495464301364141209379446478463296730804124031579167146810717215465797595084379065463926894416436702026717333321428687279300067525680895947246054007739214366237747036693706479892806834363066623573549188363067408969053454196254921859594829635299144250681242195784939762493626997668432011717830947897645342821592110544192539567389068025874295234702462536272058624452991614257874992015478349251604342385349243843410303807273770776570147437343580798451121498902138772611307493125184849712899174590950039321906256807723932545455469176735002114278251591537139224752151026195751812555899192237756055625186257778715204024235643008015440647378686471774548533756851330395773050554298410274520848824563801811743244115088666941720292251387140525933292189039302348495217837323533446532626937774732504109205508276270136010762688057349283410615014321179125841093281226749115294969194414057983354038200794920527262073123858332785887564779056721104165441661470761288361000624384130531050140081010798755577315225042463587242081346517078196813266473052652668700975390102354840054319103030585050732848566621892307361016097987301096045787862725969718214977745931912172420855203832230977437336272600910791708541590654006954047576946452693527389589089465660935532169427129426114018933681755821233660928809368683610841295931368976682546341618079733799311434919945061976741403836739591043325083789609765463216344296844750471808775387966011594691058469856934631546715196731054018943472532735101233055566492446253089798552598896344445382941448838257096712360533891982931364903499133212284219660873657571369432863633838749656941544771070613803436739395432994554889460443286211704228102975764901084613036258098852044456528892538656183554374669050757948211069811160943622727817194688442239013643555822522433014093711548401136621388410824798090054297249286908770786394338356975808913448554837537677719658959365875154327502949340116362862841933060481710939239987919008842034872943437214946123970170343033707916983162457660506136245905491835880524520307312984242588018709607849181635833763214177655264846608626744947775131163374609853261567716821601314781904456057708920308018521540881268882246108542068433312797584809219544443889667113144461789314741293665128198790259329194565273687344836398893389984361211680689865797567488516548886337690035375291987757693081057355173951443795272703800447049007285730925262631673099074000684904599758787132093533481479980729780306859252749215403250806206296793680290963657119655454749832657557609467247229240892061371056217009793399279320665670945892120839049846047586480114455232781360281453445795438733659918540295506010018789625823206446714509639808919967566146598237014128736646880385940326652224087508860528841067197999140854487007293022017220260304786380710886172631415313923748994778191781040775452555369360545903637816192863942002266964803975868226345375812853550796206064636202276341001562539119946325786788360870252437252628303301021044894326226275322073667652910916281998887191616786697698617210689500902364059291757218594584763068921247043650275363283506500433461831897030508283915358506052517223442293318962943725776163152226873950058135915637995009070457200726096898837387536982426218631495121398835716735638806300562903254751451996618172677820789627279916563774802991022509472440941980146869018862528510042336659066430765016710023678735189804175086476038055608827119847886391169660571257581116143322031623986195399608106448911512990383218924496711518198579850277044697851841628073295318752217073754278078367450606084368877693049830230414364689139837008269396406069456288164169529166544373908475728196961464119571580663688131248487829600519236538166969144131643782128080377458223191425066537273186601585557631000545881914608634151201340660568618305399109284222097222772766642007099875823159076294391295156349672083809897247230420387327835086014741160482852042007439596077939676657454574157343814376292956109531158482092000199683492227462223320349229787977209325937345893185303632200218523329226604326327773869929525440037460654804476294982724042291465600529045986614905305330341184232774713475287632417746860051035196802595048933541617738765023893191084066521380466746652964357719605228927287905823336267171801047870741509786532744155522815509790153143256991410913299525027699164121847989035341734180288807859437047470037468716698072913698781051913482317431997181756973247169341124042193238323758158340750503251210242327215999762255953608171639659554592152006263493832779387174509876695534287878977466443638551706502650448577147587895166390526126187671738754045938775924493697246870221984680515191826034341463515337517354398346584036650078008251337619581112539605958941718804721787463604668507755956087664614979975907257254669309501812266059756338320451208463864464994775567471104882581862451811482160241731135115533763941801619860829325848285029721564124935435493701472218371490931352746516140422988403472587358480471003049710367861996903966400318902701410218747143973930479667127146967452485821961590443588575047471161083558276186011598867992523277670077913488062706784305823037684432240837285577758508216273267775521575385493139188944331137097187976549309906304370838121079727316041468874104427329403072777436378288442397759487234629173289643236489504230303395254772328529225182097863294127922776106997648396446154980303910368747636700744207201348680420978344656707808500851248926091270815723789681795389714716653163541792741324937455510490677088305382910466098618013354927364715788231751702295292557476729438071843235282789387873058507172169878408709360848912758296731845035233009100824500894600016837289698553478156770898606637024379918187127137483594244296364320947275727110418044334601305107022177824729198840954442915592472967931476641686467990945637704603699887007961285734670508717635799267264190775864829795801509614971798643932311870590230974516834357125233587442571650251307838439678124895410287899686721555835181821976729237267508827191325928904570539216996231573413598101626063438419741115955987121948557079154040991260843153449472936182597146663520940304301794361263079707780953877079498286453666763263533422068945343030626974857296018808465649020974995525667340133802823078862980681870520541252040119990430428919912401546306489607552348001929454875288055706505545235487917895598744025091300741641918093997294682210357018981186767215490449502844625996837678251688727079295334993551398511723804911695566612441880493518211954231454579329549732901154976327970042572529288516760556706957888189166689264962782660684281788855135682201059864864426897310404206420388620214159313343356506079776483728611747854101318195388209632637397818675015670201035161382762235549907816708176258006326519090723097311326126453948061274615763974697290381991575806307458753851733483346860760889646227012140401657955979081551364317926971432781160003950929530530156640538544014468195674168914395005060129899532520624256402569997354056335685117062631293788209655763055783267561616292217039451858995939277954633373520501688984643648882073146139928560157646190608827005218388294490528350185640650433641753501393498570510063500442327755328051663250155536001685586063216180167882288985927773980708234430121876498298821950764879374527324977571646794376825978653807770909315826869893218567541022181137066289150507191692405571751537297985467954771694404608728583402007168255878503502580689802794309461846725801862557176999143666925677662478882563671023905089297579824895222709418467443414664411911976248630886752269173795608464341636763558830851295486537112507449037322882719925727151996600021666938956050382795190662337107102964526112535482018081623405931612383383278721545090905442719803200644225323600124989344843636759371914232277851596265768452530758485537358308416515247778499835560996791452905537128993380417358033223313804348260191619102805347598662385415120389560611327005564966892813167555129799676336653554047090793988866895306857810173302660568853689560211807721622589219199243117304892522497125531228211758822528265092358229122520413837008286387959940875331422920255378831925901788817597894307727113160489156785086783738812236288755855266118657336744602261173633288022556206861495846722660537793575255583609340989163829636599800730784500136994588212051974271662951889363661788724519387988391498507463670116146235590918089146487824769832377597870963455931545706800552820706294643107638481718364124284488322241634530641777649280600316789700191373441459952908181300827357120244541781460612372671440187538225274535151552424500790797536879918711567102845303187326563112819187358142050423077462972254036963523357483065620485610864093427383318334634327351271592642393900491279730288837834637442360464419658158438405319108290323239391500637052537770106594292190766393180810878765575969070784073173239732355063441358556746002928122819448262638691858136721604139546331879072561693081540996943760021476848236668959583386445843391397341957739544589473799649939650197318018758215438818580492440153865707188767878906058943439705724396806766233077750215424777082377904412690412076066171751458329065681240190888065205921445972236876022617302455546374056207480813993774670094125222153273448841706368152443582561186966261363834029286644970066037996750179376316763918069437678433862149089623561820105640614012377885098835667084731143716888913942684794853876466509841171954337028921584835072586019765152460415435606762746411781037958055110585275094244729655712945889544502046822567201062098620677182166748688559677813336730489413888303965661219189330587140477845513287672803014322099270529021061771392127737590526124680357832336122316724513143018328278987695299046550698848503343483983359922741648106833596317970504048017163575811696110898875265050394554508189045782033398880552733617405890660762567887602344899655818219507130679827984374701471305670367804002790888262609687517984330621616836497577339489618134418824168865022899678081627975625692274980874020887688103594369299203957265613050681288387614411959186240022364452480039479994244058253172682465135209489596658726936634884015099283759846464753424030561559065105449169124218607878117680038993076090690483506727951214030034045948829208453567271632950120071121468376544941407069259621433285678745746838018539304546243136985598732642070733736209526825330022465956542110218831635555322102232583541986992666491353192963187823490149158700147749921910894650128017261865842411995774784463808881792358967236549615822753535499698413029394932056796213757769896654209615618393575485106101873663140267325061995658143840958843545927104275247448553201536290028879027363715117097611575104474448575002325858148560788985128350955612212441353238781623331816561192925762099918516879242862423080170586007655853464509921222138629193200629166710405344413253099405031484201600328999231910328401724803603264117395877373643931580547563446116674421959053416946656368004997460891763261639369972680056711919008111646000296009990629766649508010850800515867038581971813055231732463017352876930349789853304607612670691519805210418792169386199911313682841025843874830863102275566524082814123688895195062447293752240366903159218186432340269192932376887151770807674952389899214924574176299185804334862960608936311062581001413806306012314943627930687332687687714744549611824196603717301173226721154889414471580764346364476457590703340858879379388551175194674235340453941225240645707121446590466567348092426153884175026364996764039796403950645360330584671065916086949364276706384187525076396896156031731192926863383238674463351811330830743913035433722790714103079528227165884110344434857882180908028208295544281220038019526602186359524610566606314957612702515823033352249470789046610507885186132600708705312521009241881403331109803432544721875356433943220404659540269285044885564614251052654795847216630572994563578827156077280214821750447870011247793657070567309892113872193059290580864978398631943466325792242834020275207962010766746046940717056095351333399376074927130117650602222407844780821493839639881200547789380056657803599043114871016372770352144947284480659802102462962863743293337500534210984024858609771594603462650708927576848032018361905498852289280953768213151504355825172037286016959609587642513950138220984049612226242281734043402808939972622577393303661029868199221337757916373560345378075501813255961569355010328329942384997475152433810011519501213178050138796465628491543324891943371832694701926816767596061591878897636526032086512658522642452411995901898187884508287694437676631849223848799241374007672294068073105280395354023660352099842055043059212038827556559304808391165973062450177252527879079885468508425855517383838338519943442889159122536441186696441712424001358879607219106134942308330297896634430882711074670005236299743261023180271422662226187505725439690773814742635221552448324008043756966990710294726405178030151618910268009263587698184180130345266471055199507316064326755040487453177281647974984931681635188811325461499640318314012084999975450565440566511483583871743810710444468199573634628689300271371764306960414783227327567890305080957691434783086703540161620281849114412320084399928213181848433228813425512488866865448527084230428400988313855490100379402648447623636375364651105500810294066099152481479263173087744064207095391999167556393167624758908322427072948295443281512295290316475060981071517094932166168130222008489990733519284840900143323698869379175997792387280564485863635604716964436602044525970486822151441978159123227475787721639865752760984089988937377750893740406584561154045344889826356794496286422470716132658749959558344008024494005256475311275829458245552383399388616021670954090395096229843697536057944381677828156635171719015608678501022971066937877214909889193684543867259730079749381103429453581189213029104857204996735622116733366350076432627405882954486157569614320478963305917252500296559546804876536262815497576765802778755902367873481625042453157027418353906499723714308623953642833379852588093656358087875872114167358200023785857917146541612112026034272557384221551801587463057767793952936789125329777005082262500819374164511416847373657252267778908745799682373452773273606299464292416996715508622928060803167877150190204161663020493507588377690661867461629647016770563441830896762661887440329705177881452434012512226794104121776172182888508159721642083847933339829566994034959379072820339780087960497013780702940145706183227529603485302837192226100593956449912415092778754613668231461289469981672588247118985447614664135974724040011672646403383299904015026352712185799138187518382154225304799215388902846165379294723637963334793127084664272273704354107685379121319034331192450634520767333438091681290392671092987571771480282227330708585902259139290525897400243757102169955326576133351851876638602761997003980523930527428933709016910236752074517701696404723753863828765431904302903579819304468286320454301891421607505169966851233644518831394315814046520685035597675284062096864840014632988026383254956272132582757344853558300022255133185962288649772494481966641528190407028797109505677755838364707508929280129921465508984652700726965716889740132432879571982172311902810990922494210691151942704477358752026602177872997393804329178321634672128872843369790316934859245577217598633216922910131299649345656945683126728480958429250935515615358682033736722013612851719579917906788879489778741557950785828040051987951437931024097351375424452291066587300786546251418820808073071926898391350492537754374420265701651485490390378491533578352391950918422941007958179462613046216881844121746806220722871046251493876491783338925853594154399135800585902429854085572504489429103113066841061052521529436405894282256195150902988534967011852089646433204187932153336684750090937947458624405009441979525930580847057304417142280778565703712794758093456290877047988346971693235516960591551290394654649194697695658010447721221152971788542420630144935999036470488168696394545987395664956844680082797406485939762888615420634495952047787647960222248140451871122057621282895120964242624397691077791875989150916967488496901404178146248821899204721539789701004100445191637463548493777672404896305617608574901906641992085649882441665925913641149797211057092004834635621911259205315949520772857285350227717869113431709507474177404611259771054406639288875718393323600024450260387599951742135949797649404000414409398680931932864233231380731072605234702226995502975336413333363768383076991222391147770558599778428742569645259730458979891618440091187547381046980438055951700629630329433750112437691659207229530151254321394054433778916278191406215516820884736345341979998879516117261028410632336985345662271408982502069128670444116902582047965765068060833893544908621143873825659946434978803232721758292694516998631267358751095484558784631407597172019624337085219967792883082041708362821886710429402426005844004377358753310704188814221920924607149133502963690584664488320319474101734611287867351794220941454660418534030155181556232143165747332666107989803109068170082688732101936459561785851734505472858980078728721154172567402441979028843225315410192140135091238671110323213731459405115614706721289593263819675803769072313032161582473040701388589334636633597677154707019773249548814517149561588915972704031644349512185974704146717150973113294738480850210707300489521237484215403899818595132249014418572919357094375241592155456929631150144938470339489307624355383423543950785791770587588732868726361377231317957631881191749399736458295599559616847144784415189854307741455943009162727770640067845262221886063381067248472690244026426741339072193530058424406225946425394836856547845053434905296743058974864956438929352506968728255730738865347979569737963739416312512211357236612420140264683198752349137532591965158061938726661939160510493592652713216922096224639699245339494168148769759450227569316017372978252259321139227972644699078707972112927010072893164141328975540511298607130045424497219982559230173355939919666258862848902801610297741472814721799607430468636839435837620966370592178003581516991294767315483262434722529800380095958755554513635248529233660366613345215784920268506151949203452902146178514203242331042284863520896879742184540038734941728320117627378226479639784677713658735111930207072225600375074940781039463389519984544166314322973160808440498281354303038336316353145405299148316425601251068208565690016030297291658467891832210586994891004078010769247782572806721865866449357592377066019997260659525543327336425038947983366014319930730848093451615088048076463666752908667169362062492873981488799043653338716396911672736970273126537428408609734869729325527885419930190416842823213958579660248737540654392608495318634134694686789235833606803394455761856487011325964277558202631925680997158944893454073545166932384492149911855493382824457707668823052546979612822440415996689237159295093923732119547894507408067744489003806244345752246115557238942268385930515277549765454318083490238729198467486931626088717921512482924761589351414914158904235105073534967969487491863344304793625203651055672156988823952034980523015312238521251326166449473704612481860990143956546372710175562161122110472247926506088187921878564564770201918708174098274263885178517823195293419048193157156404001782600804746415453642585796882213147120219506870737039312153332239429647101433881763991811507421555422604821990245008205203155158803107676568812198575038451204473602796923884894398504077669391919178038513117904637264578728005664995015957625302767342474903557787303206946697620679371095314087874660907190900547871502275738615622840311999793601481740181407268559346424708186513726761279734277641240894070241225057591283320448767508382482335490062243196257292826480566009677509285325730388834182425044101944383749082928907704415181513432790126318627093441028058333197183938084511247877577905287996142480968537580976667637015694843487431747574899146388916335043383627398851102955909972689955904715112917945559126983594293067385743048698989855944326198964253434921711717619498688138115373601192528376348122187771094392593220573709562698164645264593052541308176804768491799670945909756270994574641668731299851777131558862076554331510263023608492235320184002464426949822200938856198141742352942110120448887865176204772310072355773711756964540267737869878293238488465868548243072513224599718195176378206516770173496390729119732315211045083889636900343634564977138841805680298414053230978368787887332357458437167785962319311821299654426422746033116562189958073857091407481709077707206012582553725598818255400017096790909741338551791505034624136279629433752798039212161244942285734805540929961742218675526706638715401971649592580419828457272339435872738491298062505229908230414417964201863239335975640856264721140987102756842328471054420476927372279586934325516237287061306248948317683005950316273539272221555960371912609270563209001688446422399745990762836038614515601146790867195227442253415373563043636807658209294481681575624407583542094450414818369400724787199371608074714370480527241227205762001482655673842585276152042257561677566344890835515904034755970552781149851302508741216556160585427292302899331654735499079156121786647178134339282499415905014092363201698408680599677236463118003230917231449065960183944335732467994721363667143093322687259227699597866342198486047640383312151598246334815753891362137470506267760949391565434449665030715756019052561493434123986500863349768772582014261603587642188657530917405182417491784121530322238300418806639385455889178762006878814048766927605976263885084187671723906882151375344690742052796875938629657498654417762942518703009114961352844389205145007155110873094664959499070899793052340129573493866881785927244230815215906606499607550272376081272387058512137274552888617735445449593851589568775195180268779856482520266240944486188286727054207475043536799845846802118161245119179164083882209778864182756810585076775657286484828360370249328715819806043555879980375757476331720000544959849872516688565706303352876068093081590181410593721378560788103151292531750411050960975165425371030855174854899280792792165082670247752463749983785047234114872240388787796856216589184157356593968703031935075029813828952996830357304306071207546629980584795107732290419143068162870295090071881413421458284156116327645897977943185244670333572201518300806773009843428145985559436573897199032628610071674691150902659464279237556249374235121744508031213499874102105040262541157631141230640337384023024844739361327771431778326487227872000031324379911584541073200832547176553357788419738811198783081161282533435001379109732645804567535626928483455102531756976137831443682524778543069370631432550964076224942709697276210616798163074586477313621029169131901935053917363387720959307728802113849522530852335642009147582113215081416345593732766381646209964150418142792614784856112250969744180739940121864957617087742985390839419901188858773363731131301710135777903347562044395262607677976568538504151780028622026017398315357894904544427165705596492052223188354474283111934696037119412186093964743696835216300841130921221376123619315550911877534644560429373792151668962024254716803778182746385907968207356409342994334271792080288752211254331790114149116004796389603318772204714551925930589486933504992233576520706393366578610808592005775957357706056346934576038849108050669551609381069436621287588273316132286483143147176721157046192356146500377405387217627411136601782358558451731002982077899936468177687598057719690442932656414928889506161743273954534823316663997917484984027478354053591200222609439905312070766019667274321466731325059919615374919120610926487819537779061425351892234661396095319606252617842571586992437826609161717464971634720477389613148671942948249029198941916758308889233973117415554172680947533102737797997098175650450547360227678621069754045059261438837781516179253790106064022916738026962573434304645300421104252766230305520724757393067927263937131887228801269585549042486632283070227740155528034220557317260915929275132872044337772363815466022426272279552426404790691285346647439567039015366644825118623402780402537808866611353566441069137697238823654053705720326485133071180018862177768059795321806543675321022250428000439940618518128895361407337239506631151707000571386315302132936855380184898696963028510893012021795064707248775032099948367568717247002905581456984051446746945071887173763680287347355619685317530756612015693057034430987614972306895286644415640748345880898652566166437972028958684422039218194317151275641117761475637140593686400010358802638912596923817062276371676287480628381602275941051146269228880912943302776649594724973844730933763274600371084359078599766718005586870287301832296672925665119592610059415810036508929062603999789107646931019522717446451994436169991555641564121510871438208088680752297850814802286234135318439205666397115246089048131844519231492910632815402792248937822825154576827162459611763956688646174239537158657446266439961554789051637325218257833325356445898929059519260586597986713448274478262666789841919627360593520221496681570436556904167082575274458817572811609561481857224369546475050830284430753170779235571329348761178390813029105991835522622374686711575705937749093797579381952473316322662359826956998047343344026168796547513042934616242661346074732526957031148814696916429336907194815454817908292910720694297318759719731015426199335646153283618228701515590331070614653042170066882533797013234495060714168352686098813122722054090309466460661858579999141539781448477415640822589035406449064635106154337194004013861603507145597360142786234514865734796217978467570218989951333364438192919053008577399504523493495718968461271137688957597933234953320895381453984677028512410913999962409428615356154952015641889962125930051264420968659725289941843503668188048075291059723360083654823570191986855092603500487657378829516292374183271323676865849464000596709506778345361003674425949188581955959269025123931107259512121156338241589606737480071832468778413078096938241482915189560427550175420651744208813401454360707135560267634995975759600410361609612137736218202235639801014559249360156897148979333658549918634973041034950079055097103732948921976405886995320189664933508204310048852305942984868017855565645389715296386871398239389278862831305388987044163387485323665505625430238286131768314743993446156093107653849475846489316215158358898933919567329443347903909096450020152545297422360933487377485709060186480705169912575593325182030441205733891169249497937444418172101800486952748158248607577122172413829852529767035268850421330346370320590111276927084231224737403990344676189570010259178589661470456118869055431800013574114545384809162384560193982145769801540367447309332421416472755521908773969174173735064145951846078512401813774545883762985179066094251799695036587235132911540694118558004057561078043579191051543895293017860705688578117217421391550953207211970898415221542531647919304616049811760099940434131909911892155136512261155018131107351940674896418609402848692830550221199243438663096612299837616589812747306690040713313153258193032028149674557028927119805023083429490724610549109579955078936602634698465662818805549010438789895744093141529641433776902605064364098326821763362870988262723974302300550638516752892264837509508861372198333534606984890685568590244467888633643960437818236493160750697952536617770448078628521046820932682668289722071591098008197780192649525383047246360795893917370036932896635802205065980285338702996809222867542712913386999402663357736086375404720211499273339955963867139414159950635550381622713179928761432989245958663210228050727201766328290281395136246392598794084119774242147849748879285348132922617580429695360568496416333588361246477604717663033985377267173732323243519297973342376460670072590569784778225901022471861849551087004140155276349224305850649791746999412247016670031010443276265309930152842068424685952359105309696810584311855103760808536810333170953490813488313117223593774387414621839265017156090327940281899356126944963967143320782904731916666780851825519771728800627735453991592789034010786288963661157080757926371251575321256434587976758227986056217853904634438782602247698316447309116773137698654394413974813448003818298103754950588539835429146322753291226062391782931996213986918817711118424419627718789923057350447245775383119433851793221285766035212168779011404776589767784356963513653291514930963803910475450116996758780279997955389558550059045533297935637026407703334811205596791096608804654458199117569673353817940202977420844671405547625380016657961957199126200807816682028859158624857236155994016255477707914111600676407826080771078947343728991156761306850732249631591231634197588462764728819202367627163751947669533254204908916102491648373349659172708001471152710129089029612110404724620656228209632836266708889728464849194505485241475581339237736269212766280901070396032994626272509471411769121429133539751301514317746716858402905968622217080111036660714630206206422073967367402754445111531868035737119706126321435523468555443824565325519496223092442226276161810763532712184867110387486332416707890468852233292111150197900987237667401554791675344748589116281268686736042229943560768269783317351763941137568187311853109391473316134714642957480258866120984333362644789232779921718938110490257508983329575231138511638411810192449913293008778472536273658801679273239119566773773460292311671472527543877323954096440741744930881033569016899447326506293568124074685916892546509211091423164339664349653553999052260304711487117501951086036214378879284074498252703324251691779534323933805375341542863344920057275796819187421842721885884666266028133915912265087032955629743121006084764623824061202097408858510971345024453456269674845217493795199836601359599598044210553393057994635412156592603739545481307090026816164735807530907005794698595121857669282043359313336580210439358016107908279426644878203528015749847777187536663886871469284922335979702018592163752637064707239232807117749755236536241706263154632700590266304024739804533530204093931304973971307917181514886323851603514091871517272596320603977518189877379429833548962149298830651687972617323342951860291979123542091466176185808120657850975540518126245478535871423498722824507628021855541643937355728734131770795331826410695802318126782729262172479047867331323026028790147648543358099932443723491884995859948625830676000122047336344668680030217744283089567321206573109092985212685308293535203316260961238719270474910316941151648388474797456771234335574429812684461432753371060377023811587306886288969394132363006060504289965200451060374867696136491725117214171045397236983765748250928625319917610379605050700474527519870692438307972081336510745808625339870452950365773947943751943255366001421055646414822436061646770791716585117656108592356346094854976447796211655113187009699029140731514839039089918159185783326502779539578418251970561524675181074563304570829594428891506667159297604128033547451551004399493399113574003681082145201003716633376952121337532395906445150652333790747504285781596952756961817847042381784203159924171121572817531382552899083172227080319334018499746246615068641371786793594805932728519643357368802741431586900765208723454663736398318691202096562075413488741155043517945705202192086628621570465012959513127937440724676204192266556744533344472968171487354493873384801665428264237833848317565438333617440873218792199714309719390756152899799193348168456648698943157601438028626335331361857237931672366063675494380052529671399740350994071219337375857120455594960284445640461306033622263621629341224576151165419387916848132809624695244456954621250879118935398322196378999498705755174877188610510452587091200155027181112140083303394599977286587045234191667304068557004717286117263358849682710717450035389033631066658091122161122795352059735631542387862792211740027929927660272309100878896448671977510644852854236760680678328702716021491220890738359867916779079846546847654432886332754592689976471361182191936371970943091897609589330741950915357899815945626817403109118621361123870326632874592512380172218592375964203971780119733013545486303115628764539733301035351993689089171658211844720253940470931783306012396416727093121636937919332391842597730527614792293021230131636529561376233305284546377449667838557241630555328610532755207843894044247233087001494007564853949389708563666247235115549684263707422419853407218843317118086247851099998176232258058120204907270236751559960385584667283973473259596127104496948996928070408723556135501883486098273344942119279511596389142170133713625405959158400657637103362185943540907214950797192642474168788661350962013130319398165644318423191036741420512556863328098552077093239955742204583728924383094811084233008764153663084724168976375194193998480863927695317901643727802977688806162490841933764103645096126040651273694733432136475166867454187542353324904525140012619910255049422060899086534891218519778520803538297935164736163639485284975628497148856270364254376152530348567914218138341546765630362935943271568888511396453417550113555234226609517738178180389386443090830539927386531988392370825144349766957951254066405582132495347608244642379595204674037169104022865060164401188212816887278392342736929260620640964091959614590431451723416161791510706177671741511297009743626357169179809791310760755444007274823165853639170769125919005551128507328081677051347490741450119502481084276777357730810360845003755565026865827089490664096114629969042922698380843496813891492479886224871671281240892627970065093741291428012018819220654215938973633819322591270713038489421629319110049071492253628218620356176446854469959430764190727133878182633847902690514134885240883415970409316671764584851653904600109634729323170245268608078649180077024542605338592009166331507927787324832590160442171566874940579151896771159131892750178044518249937438743299329143554374680946834026083464252681707351360267844117117547680302578284327412712955509267108574023047469600264457118930180581121892575725002417910664730201129469375495333839271076783815855808875670613299964991589394990408749778235503921051363016467163408622693653940345676951865277526856031286808815689169916046013679356000288784865017387036118613661682337006376249017187035483916530088806575237376799068155478888938646233804336788144738626369751444635331513645033652509877954130939941467601122228501278273455755159561984487267288862169113912786444182650107159343331816055288098093137576021954484236689181404876129698357403680117551891330057226994759192287243969471072449770404732967513384853728989198514487912693399562727628630157178270573552384501936652886942503015712886490989930558977451480649740071081376020676606100283353983207243594567205949451216844025305614161150472376796871252693156319309816082329795042589816674800878152648677364144935695842879538795111120900413882435069998882091565554032892502288051416967879299266268622246705254906674953625013269700318245101140735192981527091168287631615254533623132422680452228896149709173971135352554401236086188154541470853204672299469390714881886033268282617228269647851698409755613280910904929942058902099758680270118297143811306166501656069405094174470841365931729460368323148867837834015846665262779381103471856527342901126469689951352204381388359254084508757429340483048052570263674681999971113924994308238094814731925760115285382473572083149105271608169922281418675329911795524477487920246982478357701790581768433766677768902177649062193699589654676599694287218010978136921367446220974783004092718190513763561232548612721452226168051802932568183109314139665924531034423688433970673528726638300045419514644230326230190718975985612470235865005420759825248981990750316538032495026016937230583148173147524304359424989148791890628026340912272673533448537779853276889704761672615852883514060352527088519929217133070578576387493937455594009676153752177828011626903772652898962034412615988106321682532064438164061291711721200955674738391672229623555746124390155990544883226264416256871268704850034492114157576143154878838226244938257190720528224356540306686433949527866391978261966212889029317080915069335476093630695038779648380650097087712584207442114997169855615899897478765137505785362724536521780662897775073271570349854774716789029566639583511119977254308821083008387197030016360375482320318110345196341997195708016263754256069696618343629726907066223061431318636181161133168418495161296479946354081551662886453122010561796238101443846201413252468510264137934116621666604435554339672608390029334249856059230477254301604859689878161532425234889479927499568040575087859615846563996882770505824808037526244409922842655810719653139621474222234153507700313618665229024242427339752232201197300895968910498540544742769756380596262269087884764367655193756819519963044228090247196597798141122997611309966894840654703043061615428405289846055561052774316709454797654256999443256151512704117768402472629905184687393844031749092277867137465048775654003526182336135822096915951653100302994702612137983269955154794300452825040411617899229947911176412173992693774165820202835024261155795357710192869502646054359241180066807823341749833422352511940395786903578680997957355566463481841092353566380532162505873396127301651792091526963077416035393436148765086569589441668759310281972270842130060698903276812481364340882914506935350078426900283389692890036766306519621256911370825149526413073002057234260061434794784184662076337424740196523490639302966223377308206402287040880954039448926023755930275783818672711195559036264381803694410269895609970224026851892905705634115763456634535309178364491270655146521452745160957092696019819351482504230830933240208569382325737324655619783805079823678391489644132121190325383719305126121435120543467213802491720844572406756078389118361442061721960932418878715390653119345624231430505959758138968001459327268036990315314858981784218414086270354132340571406372423344162305201146005372433545440858047849152738356053700832984194419408785772894289429890556411184890127988174242713094173250224649989776184995844482431963338771360641700505758811206260189035461258593451545618175684097314733842014951893758158996012087525756276033295003011831880956429108679299364914087426322667213868491522412990329146293202682373490956625790320642804533851675572566335964328298369067971544894914414428445736613121471652577292832283872251912278185033318457537523118138891046873011202533293433033228176744479092066563250188388749917831245277956878032518570878771082132181754229913702999034634082431982200181814301695015867564772318455173516019353974118068162554986334692974279363836831228620901500847632960271542055409234721977487555773727712535843792997336755041353900962607546017704783200920900004370304772062396931123619969230694519212280751280626109033960808551199393625766456058454748929845661051643776323020476293348833136645533457348047357156744499773471782198157392629435661485332563525738007537342458569627322644329253912185483500847187261537611935992117554494687517220953402171496733230085430312773430084421703922356580523746997811952384744493338373857748511427462252203934675721232785066105269132797730634628873726222419584671667202215168082910005267022364151265227407760046197949668504424149290330375261532475565300931531455774156078548884372041571406008765128076133114000215176092898248986294506264798639727812087334479298478545315123293340514068472557469284862631503547709257191442014221858878025727912833117798221233680779311687586547771399946239543986001782171404451158779337645825217591991088192383005166331028283723613412721407224623795391293388364187931553299328948798748615386139152307468917410066261860777226791348713632214751656850844199178069486195460193408937081923214192638277533759194570326450236304347568717345295839955367097394731137451394332819779112222693972545912493837982312660709638222596701900838145328629046106065868563209780150854223348481105906173852298620528178960495007325704272220203936136382479583103543259855072621403409859627786017216895598750303288281768040946852093886403363652364944285765333810979533420258752306609947377791748340996405620837330431676710875929826666843546700959970485895374841511522145022499454415283865780292853017658562910138814417266938379020705003419101213867913463546522874814071533820290191923514672126838275100017394805179223575910310629411782671583818637819546488431229736302075907294961313226423551084910264998474188701812740398720306793583123154828787803868672076345498495199113445099124424731050522725276683206603485380567348512636931946652992516290262646589416341396091509721872364027550026970108838683249414212571204886964565829636160986536859883788390280207060702963996208929169242011756462921271784144386609444841530713275382741805124756047008456141960786049544859255813071615271768187109610417028646244510638699279903132980239383229230786002461112125625374929920696236055497397793370905509150615995807462647693070614654733657295388010846593077370926439327096173358979875513329851735335805761982037560717396495121026056824215353943220657878065433368166837918392543102962997862558313815084290234604146428506331820780266740857504296549353954494865185275647088143513231959734978991714151693732568833893316283389645184887032263989305568945183919124308293251565402367538500430945522752298621936349993079956068968446618745989474882341366408518853219367311437589463565702142223037174148120127262829105733185783922733479526068004131224044446906957003432657910956173422846551383028777081709280043703275264455762009029489870172647182289327617882346799595389668011402866870526336706006304261299460849499563827559906026477765219702537583064118146128754387609857828996342210595022534150439826096187609835216523165433169772144125177003803902159813797489132029292775543871170339116322480752465724972962312476509351794356748381143152864133302908912377714661246904486455116492679934634155621188228175642302405169489544428168314140490438057886059010737006718298499365040749470278557386272032710842602732695690064120155580946913710129842552905449576450645756003740314945879082105473559113639906727806481459191706433870697147736652477844338630255698388102589879309501971312840708918719696749394002657194057221592958688345786698103181835949381027193116152515301740904031945172383224596330526786264210007457363367972646143529714988846055291907822957213456926463834792175940578051303673488795449473344645606796676912782679904942003628806990026035221665252664880972246721212946167822822474271783410535858490938180843820769671226221556492524464101160066383911818308730856354226721501721889134911144340742316720185801544096839417218455292470306663317439699203209991372307939208706332681495027024183632373935575659483558643427585271530364753467460118162312180861113799324835451482289863062536933279374737264046931267375653401997300907614262122865011585689448208037142836120485831617475039077128760465033612361352243121420491140962045858292255435749009027171143100562027796642732820368408835142189973676612851541741701550559669295433553384988687023249020610644580716922863343391855394434659741831033154532910259130360646226668797794557349045467488232753173759959372322731037104452113311533828930424773972419572744011654184843155648940489213580557085576275584955348891913856437916383424089396022097880195875047614164578733843443198087351575166749682003791537961029734944321094760732700463633436612590711792603829657765048983399682005284642342068544946993038712496466424858116044200046669339857416855517298369829263584910447179338446832504338447175872526993668623375707985863799511764743787742210295932621738817179921125649607665490503647530112846059719986422397278433919677740389582319175573259941937900854928259806607678949854843333553305204429781468642262154639070566780479389131776519220499357616638821963223572241387580488187287554778343055337141624291591814407249101833736072586131305858393796369137316050463865378761619976568352789603916541221197123163706463843508750588046575531967200804810632083118215379561380098353559526093637000645317080644202888377266908268009424750615773653069536999464734442641799088072365856916238996365175780762373186136628030006775952545698303593502093103401066548823876059063096671525803190270180565107741796599641778895066406027884717068077927555703510222371473067950065096075380534263982026154071272137856032274328861680241733894597905050321379748466149030953017402300954957526179588969836097031429140848045838420177059333087278988292106539860854978417702268001994317231256072796693509378461673808145347108132937634521964744163193311786906499824823727616205615024443944723233791069608396885603267436594476132436686239105834352637258702655272723546810973613675379988543402247829732195864738470798498514172853867527792306584091743206050109910223892981893864572160416894923402085594048059798887199075389944836245759181795872647854824368717842805118165701035999489616756458144117743599941557415640541980940777060781817873278088392351665272981172947045182489488694025397849704040125785017085252294800326448553982933954102504934105444614356130453712369616822024270875468032257772246764538690691735846329099659789270857241360685294722841899888111976949257775673473149204541882499353860754485383273493160249445830184005201100597121122488189926014090339058430141050559807188444154763356093389295582703356383918920724411566241363467937554167389089309186860803126378923091291660755009898084043087717386876849306238533350915041060003830601639488536879210612389410574394034606240163718548425217716754516397600255050226439611525994294308693498690746297837599701612950308438036606600589226585293056378866958466784875726002532918393071854726101201435318123008262824539075652638481662843067124140915353230173735777223170545453318573303986361162909280796514000762580295868325211303562521349985400678329057981002626637678051720624754016353702521682187355287204019963596188736069347306728409608128864989228165452185240832827912818493863635272203008598275445998989995835111574368787888127048557173814857403078036294204859420644334157901693839596815335852775087815743971924322779883170605463400533096961159954373203941299551771974092493728193869104247191680745755805413172816833655379652759510402582937660069379484763050243686693087498612911515579029908914751147143616550977810891689159389043228611630980896160154365423970713173398762556138393349278906057471453816915692648820151026214721832503409165624542935311732839683741755506978877246043985562610853373740287709972880476114915778576510475290891138178065469222072171325415946797805559574054495325587792843232475048202572961072119305427203445431119018432651599832951192425499568866292451206155443548518778433760228457318552553020385780679964233347394328325507976814317493529036535523570833622729540297603622459678702246796108729006536915811032977241127196871846317120153108720228291216785136832868288998410063083059699732951240183437928080758668778898496043772754027589522929366853922675139928237161596447373298270175090837568027446669159111149779944667113569108892437919930942472130807308198426259314434796579085670082562885883611446330706901910636068599518538704171062385680432411229940699769765217189489934971880450386432175982864331340232731735034487552793783486413104199496595525770669045671843550215620189672793973426821625686085922488113166647341429891013875712757048305145943663609924661062720112440987239997104207565439150686310201357598460146730265119903429865063967600069668795828289243397825905874856782626926330346837233212406615776029515653722610682290383661336834150499989593428093201865424703607359076560816219599759343820172461807695817834722127150399123937330805981643494623136717495999946304211763818147830191021334473569265625880571016446879845566172037587428149099843393046523931220003564424865028020022103872381508554360806108595381742785324654979231101510181266741384662946267400340729092430677564917857934277516529509846000986282198651935014863141311338234081864181019598887229593585603437224236723960151462789656548533533174007419842426013606673552984075440257317771495402192754876256636632097951348389232398473093428272993909549226286852582803762571040814041407092153377982471219334648252071838785374450072385259360567659576220402194519247929124130758546485918127845559512533948537732743954653252016862250537285001304537240004647444790745978251029444790475972689949375374692808933115543550514205161236368344100734984299470708653487282616826119499544459888850359607914367111963913932091120095413351288550899249339285379476656164159254527588534790680348593042101431778577117245113741846243215533722405654121494232234673410032864092372275714731703809305846661141052866534929215704384371938758254891849894465897489211239804355925364919086589066917390808867500913233054266548207715736402520816248301658987303608659808379615767364117736273466976156665392134829345642399129280785997987881520429221519091416907854973618725169309999132270006749972335155765795143664747023748766149644049261348608299760978362604927823173889497922468520977599508049882697239249576598722306469511876779916054956726996908515258226529522738588543930217342747557439187441137663399412859483123438484881279457601367100667616597439589632554530670816842945121140912212009108666989989150010205569248485237225542131071661391982827657429818829175183372084175238696768280591023151992531280144537722164743682595086088863644346720804079957456104290101965608808393098287160616049121636045869086222897375645574135743071591089367242331664477332829682418831492171649497251401194936905670952961527043291961756410101851405960839542210112530043203244772904509568672868692837978994453347325407832005428354880451308874136319369558168287460790465669459004074428841873812325676996716469267998695588605208063729838321123862468120288170434815581406294988306263459334499888403865260573742230738578664000237741531288590945512575353933694086944429394075221828471001077665809512756702014775408298259436553900777906180300371040301910921852932847824116551890922870290124041600452149317093577536081634208565523320144384538895834220684171388239953227063563872426113302172360887531969248201179065222750848154653606346843208352519510833216068431733436584680591301574087870182295987658228300204252835566932045019819881714582611715984000117232324846223680233784983905719584208339418833025000410026003788342211483673054749609677924297044999837994790440543497108962658967669130028499096038606304624009333797909203575516255166640057112187717239030015039609540518458169993864304498040103991612865934744955827606683482489093373386292669896469705317415608922966624289143819273723567260303050110341597015039075941159915617925116562289244176755772026392710897852605994713153357004590483012453586022457077160582123321852958758220305193728902001773432061942873421475237886083007029979653155681030112879925893918338779647006752027036887724058406643691909028743876338820971458010174951013464584028127801131681398978065090074076746422096389980453326207651496082597745227584239041345026846186168145795337175946226830306366614536599202803008432528514981788177127257386753550285133836792305674324368696202727569049569472142242467988436041192263169155678827648422239119627403671459897414454318006168862933763562397525481610920180628944206508650886517438844517440293615708910665305181913440835241738539089529473312690900228814761735924054727557410087221186024807065527347854646708100332528804948728188464766451387194846470027398366396786911087224906894452544993013613598230210096649662658249790741793302604479616467896121763047354709410590547677874362769811146481959467653953313260216045188056852012381853835993525090558673048169589393126688887107245163758078691852980464437598493901498640886729121561514693505446800392775377162800284446170887283461332016027846935141710371898135928565444047388935336434225299535630671486435758226615070847224212139574905881236472608079566539182107806975919196272996137682505271901680135018259365039043148923742221829972943591050476651019843549677158363903560509027440945473762000866255189537989739869552494420945283689372916225586445881857232200509734021124202427013381380975063870736878622413461626607614186589036757567280494685139294924694749767044828627850379939428327879122033297139754384364472277941952483005331330832659412681654814318367241851907164537118394561885376718611463451009876355610396882403469322743163868563893669207826287866646316230586562320803446703322414896584429086201191797751836078981178470876262961531940034781546405063456598584539593367839204717781619611519781599153348323975611162122210452896830871383545998806585780135485937490426395602017295786811549407988789989527859449531291247582481713710885909691407061933036180030332389191321684024237117855941479381751226153735529282048462011908783557824107679589872826483801883630605162587458132380717021270703116015993195665321105590868446372301121939352882993284356956065971989301484189419246965141950471310036209138468408714367868832381248718738058221779691668726770528694917232969297574129371576503104861498264996394254251535522789265581765932812281351990499862833891769509864987093885286522464162414980091336048094161672069334242500172533359024122452069662742838060791570974610193234327442284279030092197167819796597905954912721055386447240760083100058808181907244787034365745427947504666021168615328207936704228315767741097870656528899580921512079009106248893864651748603366304880883858583654754195906352901696079598667197919515472675399988477621888478510736605567922374551580096127346370372954709964144895440357070050979597124970791498940575042016503073921008375739413281657808571980285113042479613451450427776366605487057390164979963880067492763356999017421424708604276336870153889542554486051966156011457074311012678360618976337654085955844167396998989917146866648409024190014931111734620629582307787057948676463855675872109951364683099777160945465572016812285393776737409942830395155749453169206582037145204582775357833798271161575355475475959880902888250015132690306218375355881522800804994621992631395147590076715044412010286404223234675721465222554333746454076955442963733651832944081148165531123178885685344936256510923382232508875197006402178562624050439203931155127424198127866118045752037903135226382150021077213050240662418300286247765591111413089474976417044276328777473666951415296279729847362290196362231543631914184179969689628035927750615513987557853672663537814008171531831879331479803166307354183824985477461434758212203503303949134626725084373973133134613497187865221548479521132806558974510020324872979223925689275374902704259866856149040537528450466261442642599122957699498459561688661293427415216860453695085827710553806842470639686077813289931062855112879954394336700991915208886144555645744227925330947510327863999828608664778246977669364695968209330630483252302728616288409185402107585750595233549174517563505589431674912911708620738469600487897826391090562573959948749249597901109019161465908020748496263935827926505836476767083830119688555050518615798097218529807820275467907773528459488554864209571848095773550264183796622010560620176724101647596182317714441988100961027947776081962562468208545749937593917557725550439016442709090994033368202101818918809431446872511944883976072610642894763770508381680928472870453085471610727866631012203668875829064624965329442150404260896079559602848376811583310656398188715410222918563637554680861467680606261759125475132626589633416570626511726817054930109406586302669220422989483023764432367142194636490032001891029510553731974203939930380942870786655291476928813856458781496647798082331482664021665548467134062401859714121754244097871277182877853413438373825809953777455566863903097000614928407730247009172019952462062453919858592371345074239998517182249542889513234350318233448378831929595533487901099211718992253652942936533625825953909465529635813744972936997465118753385374870942177080817457017422516040904388461215741244528502023798390369991138969673477880497042088863931284389157986861499535720637694821492093062812513122808049966626255322428383991735202566745252299084099463258646834111304208458988032414287824148608262105774947533003770602151682554216858882552052891371938772498690820253933629404730475050099704407094693589196990053347830446358119649104831638160680743239747518873774504853932080118920921762003254128590019212850780087801080961218699721567278787836037834285050223359104738610037900336819582153479531242033219237911869797381093285010367827880608127452828831039183157044148037271526911195891382735020626616788136738930058943498719262754217586783775861692911564196954978050050271744148214225317716645648976255943758267643094912605529285775355652731149295608791108215961940175702492044626207794680537769554416379023844428627076001335882937229058956135310992448792377397001263801039062103629710054009023326620528685512923889365400766396639839257245082449689892624599243943845087655789090281898568343345109961963840911643767059605484195253505687872305206791620579739800869587500465611961545040162976777009654701852843349776446794960280372242292312092581552380645150731758263978489716595610762944958737945685198459060936913497322702428238293584834762009727957320397390824404902652459373962572954491177296085988591097983191619192371557431477730561327586503018671287922333999409221062679094625850811692827966923817237985512762993523860883177146897285715591047969113529008536773754899551247186890395744660004847954014478028822320824256701845114754583859463997760412123218294512072077908176823315161845542195987497445589015119927062360518963407353934875640953156034070693595825760816676955874920982404806665275624551923220032514529417553964682719023521957637963789759417505215867542019285365596662014504563385527835712567120512822751960929539092457841885540127128286062203184030416252304573349919862033683941854919174431281417027468348053312363654640800952279867998081678614387670229917642042193577030302889240633823371188316668923472566531471542619736924881856774442368306762858080355776670852493943272675918271305802820474498683109238845183965692912826914135802285087920263815575944588577839176304153824777450273630047967685689590574290775328240318388741953284725057582369989841855736097379347926210756480012760660056848562895296270365033407284992457076821660600430851921449939946159274018679067024925091880842549753825000573641152765627882068316837456136116466105945296098764787617810657325699441300696040441275748480590815431525219147593078104140991804367706639566726344353562456193564075135654672716790941187948848086809230938328738225004285130861556467382313448911976530330590349488507090436408551170896815968188535559683677670828759269590012226813063407905218083141753428838750131652921876633335743143710101634779665888361886988349983289811640070259655020476119906884593064118801374335280937951098305220586575519025533132473935518421572608823101683181764097241796642821705539235733182359972105591467580990960157125453625914657358345108084976967080717266943718308124966413928529324205814835226274469375858569571687034502237757777835981585809545667455462729794730797569320508562640503528302556722866775444828408620998138979303709253264259640385349961705463860837230314894810013719990131970126280108496986832790805995250749377542359999787837446577837123753575785267771063814356136789079473724792426181599280191554236358409224109269519498675837014008069125945944555925467047320392800470111600155954170202879503592920177039686011345630444923339774354557165457271495173534529046221587766932103972565405338682391305809660021212324831138704907261634988177752506339880373528304413788504053529141957344862622148033294954488890854507924805426837419406691885551675721662211092089973185266767829352661329042761712071734330023452589195373557475092687431529363428449640771785673995843814894210462851810384964342773551924438540110560036409186090659830023373684591499584014449901293693725893952889834811556455810610307945458047566465048935767852752111834079945987442056755069846162829748169274340319574481121269219891324355031983705466444249609636337484865587143693424000842683069466472686782160543076055555157113010549963694214120145286056715492814503563608857935420449883125571959955870785833653305512108392849984112684790571297220246550138708205244749272341919503603039394603476770851534725433807691354302103233118270994105254373163717918996081338444036735092091110631733765874016000186973042529842024488852703317251469249747539319823503525226176160943848097053512457087513186892673700507442774120709790407346312262052900063918929099033196435333533778277303380095643552023728118934142222131638412466218762656292621316537474409523054540169190591210298332548738443149969008179176662444562571055001406036680013324958090641028348771641935647143040955057638038573852209871616795910485222080708395443816652953500877460681136027308248856626139286677283717030323783233467164064186510599162481767070634565314676407449265899040024929433820347665482730341522657904235101310929756783048481363297639763227467327299098939274496385721441290848706448070466163067183262697301895505226175036704437656063860897547480919952639440353604654399823773561902465026931295891402221059887340881632225625868617445324411589493035550997748247415150737341194757333735565276274185191642451462010498782629453689508844623211763580035118418359267598642971281398538414469096917190799516740467818935875027443503551180799677762498706284759291327261688448884939141128745320572483591623606741616344638801312351161263321415735073587378908986460331910104790495108805327624363438019532053136413435545936470419843997327319281830257600857675302583216967146468343588400391420370724267082601761625339029898671526756221981306035295948446464040396885600648176610903305607906503876896844673169485434389183689353793341689876461040506024109359855532664312999759390263679696925137693692615910228511721654148892157262235977366770146398458552104707476388972254902217955783473853630081933437898874815680276975999495121254415702713764902775150787799491095614895742622739879403322128257532457845619552714971773748923110717580044852610875339714409334236416700073947476053387663802542958635529369130347698689906133362459084735380529991695237406505765703934901547390655652892580819446962840122139245511198760380740566099410523116436019256847220532851072587588370887878354074617797601531730495005829381247505250302170023610957367090784022351162225972381301444079847918133032105443244311027197910059137380934837758636139977194367200655924569938147027619184666121180429617186652831069577660924377161598315124593617280103901636552046619370925251253631396559201177821427680194280476586534858158747031199267709791335049110720516524324623125383157448751295415603552750263679614546109344416853578102731389969995468673435181034432552595169300233005059257279978159048202235890526047920348250750421717345546642531252852594784406842133378979724559983814529024913412772434245097179511864461506281528392865023721292643684081326894231693151888189538526818004763103077803899244121518719858272225449899967787514587916023970766660441333059400177251968288276181389025401421411540322218807522149313873039438948386348804885872573129605440226754011944434427123955690237907150071386106419858388879568805486335172808444644724813277238595610521301309101510626429327631624722285985257102637159462999401322655051880446573989800377544218462997919330400605176161879860265557607689149567962403302092035338230064198575121280549087681264999866296820216008393577425692390014509676551896830011498580395006624633861680225506687075912748319753000145540601541198078411349482946568060170741821944826942029145919311797294425352351393310112186883167800232663769195193898930495655963644304998263623322221317379586337527290159802676243820849089436428312496796216250016352996689304462584580416724907109041427954474322776405586064497993774815979061292220293061983352618004261179665496758054829018106894737221612026571626304363530228212933724508394353437096785432438058312889505278663565717128803698528454871495079856246655577931705079028998685971436459307797350701401522754476693419823926389892945353431902180169387585028778687970204616823197351992807669758651276064682383916960148671115009603845938820051061526646256272708637399471502577181072308962043626415525571521279045835429590591012051850860519983358295202764452425123577351536145132912213357834119671870758566063500029766458721899656846809835422555679769978615295831620657432073721099684406194608527521399720774602837961829406778265980996983586608974386510365624255625084235435456301512197111167328336550705832479172735651427694109849863570666188025284345361197742349000160410913598065825325104777234873758588466697858029999224197366504115511962816004732157650700516628984539963791941447196127536849638484184078353921949516076075298476708413827460440301770757999666767568612536105140039171681725678050138978371865837968976150172098480602272151208763671116355293561961304020927396418528693604726513966875563040087535856868313141286860922825551242269595679930350249011366770936403499037484587419891089018945705198578124784403575786713931970855498938099970654105791690209598897498738447272613724351806561649931638973511197033103939780409280947997343377265021224971434098237823651965892886279223277990394182050685698376711662377215144120227663379491737437342283179727940119374539049057971446171836025673221405521946218628591454389656234024894537981195596496870707302186078051319309467852848444202128432499307154135644230793862725265852084922694843993948530535272706823358639486081705774075169738521202106289594177160792541306991346081438246328669352312659073430366809538595608450167393229096542828854097863778722182590727434195646611659593408713448120299579604000576414684856384192084025832685521237954962489115862600940098765413585870619251136537194814860857107708376020972374659553114403073394942348448615252372266625317209081622694000211227591834255298281689971968761014385191901289880742428052835555332523257154858756144775201194680111550944054296573101936215959187582194822074756153078334803008549943308739821340270700031128588792796739627366092071269711513819537715546410633745558491963169175525559918922408979783312427354538417960278459589864706009528418086646771109464159843150009597494702207595874936960934892351315530879522675319228875193269056992695901124280084378089758022372721112814277158092157861903143823282221584311973638679727227684958136328147018276523616998703831654805714617520177978010749005200986222538671343789879848810445030271773860682106718234856661032815984091857149084770741257737215296236289514281939493449231002475529468768814228268826338199210705003148229690781270685023609679524561563176253784439086838854547176625054868861453885894019065091841015885208833696129877316727526919756238642760951369458384261852183389570518641326320252293139134838082128796433881362984553904237312857385590062328719791590912181710334920882873657259600675103451691730348406647731247285364986970322550580285121031458139716550054021999125846712475229623304794762041748357339651293388462598605466902068727431079892009360086299625852649556926342244349075889871207540557239177888983747400628311035989363975368314316379155350844599499815179035719166459579726405356357962285223232099956252907295659686256664761182174368893655265842097358804838235632703846291741042746340327640442472179196338923330045235292002875730135630382111728971331694363722061750858152029084972463690556676289218426265178197651953852464303642562032129591608958533598154070650245252165708822643889695532003307123860177199426979987427119660353048528358184414608549134506444317130866665673247447943228054733913760627581890428365658659895466488561709859023357189364711022191554480141608108632865265720250373477965869802896975687596956655171572997817414912551945083377949744669806026864318152342292431677632651015505374677709204156476462475124967230114288483953970606056072465314227321889583835501398502247980616382349453661289940409355917809265868236064198494786394927392551467596218556484340287163998424165640792243204992151935270942749255097209837640554799507636962370089615853142082854978064406575694610740124283011677091754088048806266575048744970010064481728170337185716876990520504312691267589423546424263219268161260713525593779984687684876663746373708483091302303187597551925243991782626402799661636709436911253008628435029788667148387735570095408509510925426723708716285087204991001466660693435254396813242277505204120843117783620864259137414037018939058491308853076718033777597798154504060045084281692653954942424173439682579794296332233121321810780129321979360275038885263104587257887904993301724937169929033635452907496514640560912754875288157487485046656478815713364324270157712065088264725709115452935541510645510350947107201788001792464135972138429948710459775527984274506977426564148834068300809230546462603894832672239604062464659457420252210842881282668896752789802434682655789626562663797453689109293468920924841097023571316275330238902076986731432584276094818388124585758734014097068671895618131122294700219784482415815445098198891529424289069346605626079565664394339342799835882357116757511632925562149947095183522331245810913158655773591758470369414848815038632640986605244160899442142372446731857685405261645960803590461604594774723205628789108869923420195755264555491518628810370985562898184920845362817607417557822466638790726046775548345174434818904968805637650325035359262713745149886240548295624736933344962330902739113708105840712372655403944406661654666981279401611743803144254583611313870018005106422250474212674953997075909715271031416553633477320054963549146671949925664377111351964712248442133833448299147401916929709782733048209657023657441662164041385975719940110755054813835675097536770208621480224769057593128457961205201060652722159599745589563929274161013544777148660272222807878919031049330486064234888941265365091980468047266792907970770229050202576713844368458156348290022266587224538924207586781264807425984310372314483507393491632856870879893530898303553843839500797078015089931667721215355785047682448066812060081609252490055065606882005394397529404297779977739095481218233882815997862843934489379186155563845847942592989490543845037369764733322568524240216019590447240163994449258915452220947381972857356081416294420120829692342136751905692105337359237781600665668763641463665790435737824436651668510493519577657907919335490054245374836258264105168437864450295918358983964405685936888263686371050276878385312777705665995603001572358237147154721905671426014336879664684364914394999572722150580428992181009895079934494421419902144689255392867691751039824675824637343805239735083028068718734460641876299320312170407048304612916426319820862850786951729018997001434289682624417807819162644171950445075766685632424567458175518591360435999585745988250355384667413282045253701080509023511484048195305888064160408235523512941281404845448810370856942626000271639230100860372142424842912649571956987321905242756339490162246454625934745670300567283750846724982527983673495617708983651654782788942618610518327692085036036217800339152493371484445501415791162505068909107138275802244650509860986883276779711832579391871621676788356224198867538683931575658977686520163945282738867440651787566006894982173557480744432557759069273637848180513357096270189715205890970811986200522767934991330405828456720358566472410588945530875223646183843964025960112548528766088662848307636012870066672280267000361494230261254165504582961699316384370582967507053229269109161196749361273729163120586368847905250952735154380622219327300289599240793907443857366909352949258689440107342217802437077152816124253190882271732715433823740147454362184333256802959940771301498332370451096996545320274533507021770370706113819105163588030747477081980826531951055240343461890804087728558871026191299109229595088225181920585188744198634862518824566545078032953634810263484330308372418113655627830193910161835174032238450979146875216238771442392232324557636410797470012553983247122601905304886666493332284863290538086835170964354044025686679116884443421694025177269167200542365879524586487291931941963983705910834659556545737455427472252563872049196484680456121634675557800183911458050720291040917746197882965048612355528726975520004238203818320764255364096320893392454496759815230921518947305019785351001529957353054281128364842365947435959609595698016202753023959419953344628208264979236079421886804110602415874150857519458061568880834301854125378195459697414236778741870667215842752231935277070188776280303233740286266042073050523785203542104257724425591404270087490764352482693868107163766930730372723741717542458522477357582702959966498541023115101387432370479915917879029944855016825586545153881254857425414604291201232285561488953271771724012262799441082686913997298743825568158111262387326261042642491914673031393240789967378614329041420844114674153516742689733703219069028747706020088422190321251655289117173856747773113661537343917519627079549216170937800543404578737896895794065840260922267066639747064746191485114465244380741520552128686202006717232636847179672315491533594924534289288748593176642699362096734074977450530705684314101332632877759213057623147008743738450762603058757749787324207140665136179949569456010819284319373673284179893518959542351970228934729769771049753586499567318504695098739662801395315247336067459574653673422509659501098766962373414060683935034819838271821186844060176157656025470113953735726783452694559607917709449717272346947334367803872237757479168689555204136215380142825486737769528370384142793400440013056897835562279860713607059660446853343332247081996051727615220108066710652379501907097493741821633529938651891700778898834763609236188052690600640828079713434978942759592887202610785155541123973730460975923178834688072538351059080021866044902897911896725936755213964729068579735073675718216974036670698961345787450610971203501479565375164166153121647325441678927750724594362819238256233629810375653289132823923222725067941709469131856699622676300847493329492377248202516805506663161990345780050296216095097127831349754974849708075014692861779720539208773557354263446540469175078783629783037122212634499537604587068254665673292775397228603678192473260758753750363960555755152470447904689279007417440809916215353523795515931682503917084115733894721483377058789369541534827316071703023202492909454665531205525012632253174142737294089358232313041403596709104925718383520195357751110303018937387366729568834759002804669015028041569220627941078976828096269661012137488119556311967779804681249306478374053162747606283458684716459438243677534276082695576532344276053399712987080520898985614420659347221575351357313531509643256863269976011816768872330904784738782610883002718765026082629252331944769099404167002640065555971369918146697911356778065745105729647119638264380698960233881135307214985853687086285871789268796297801608941639363012094163552302777342996301526343577512504135198341187362058334547311853807457268433720690522085625501050610093794285614047418455921179339272708597251152880056940280536141144924020924620879487418362248544537016734793590201500699089471119500954771699606451569340980957608723061167985930544742494585592763754265507909850782622745241428056419619579470161814101885939670292884088175071326949126451479245871388347220957012545376287115461358447101311323201495490944640147600030237632857171395365471490013555869633069258112640479200531728092117912870096788138937329594906876916230917822286435333405933967916024289327484446631559457485611320451783064649166224181324629576750918590298833323065514502362940434740549255611764221609388471173418957407199850352736698693386698517025739380660230279106280853525493531661945852938854013476198182979019270269975539762709721332077521428883136382794037795481043639684621695249482298443229689692085335553085317409539710027448732528352757362479458012780445503610606455857803573626252556360647734905686383246005882645729967286706470688197188048995918209538769867241261058123133718832815387305324063517160488373186348319448785524534021310596054326978736278990273623581526866772864841376321754066899897348826118601800293600223626158849590389381838347815021647310891383695373808683164369908798085930128373528762206005362275872876794657916805763581432409253055023886548294925725127609771043084142413271492230145550249153801165157010725991966088910334458778020184201986872557983485892794115791654898418079655981652924400286000892833089959846125154134736412475537056580724960733728968639565510344975858300171880139293408159346577407491687314019903828427712262333244605887567398385935007695131185563168457383865551229294080306842203625672459181138606350480155226167063564964286732345965669379924358729329116688498393642069797039019159319455970361259262706370837171360797222924483897365994926322185943095293445517054009459274870328435199388140267085915289496359507636380732347053462309324415095756918504808919571739191653100024157142935668690970675538485026108040743406457426342832522110207103450374538340721719272860930797090878640274037560341962032609518023331944660470439348005406358691029418314381980766263692292015196267454788905487300853342208815974032892535678247804572344855566388429936517859381542871473470540776250407980710868325712720965952470280931298490597903061967508059944421798850698316109638043185757349320897027921443393913428290098389029276009981034971675340055350266575485135820698171894317365218737272703866524342059269683995858771658075362930491745821027533012670236222733052137092747575492754032248665363239284288788071811943447754439431574633737742190514462638401483845223060132636502788451471704790583180583489408569494249944151554838633423772040699601933580313753449760284449951541090113815606641323294310535403566334982500900534136214959747529802823984619728367006210584613977815827467657982601784729657646395894187742496331695884228391191590565640228193496801758163840139429208142088204546902994637652059988197831754480127119965562213173244271608021931664460718450670245160461201179763827239211348339438798962905840179686360943255300650628889732392513616327023907523959826534893994680658059487686462751410940649931153419873217299143125910097771886869455712444493582861381259764637551134279845737620234356256898312253042059021490709996741603215467075388165029658639915531513429055133316532483088503470195490556744841010321876589956758394558238286883108141862835473194755252747115754025434804661774803878685983787156949134278530829472887354120431902320905952954328610661326976076266926611352114662527698412773408524191382685828095507583757875182944195381669964759338058109744197040887688325257374385618259110897501964314793725720708094058960553970982858004455630785998611082978451980399882309416250986802635162822807560816507048348964416836183659463297691973326645044332702652964407332608359487129720563680362999226922055550219361313094392925616898258938095311543481328951849165428725462863519781030237300349037991793076886122045326513181013816898791956784667866144331058014381259912791415887667170290675999071222928172745278544319176377518648854469055214182947546075537345606085563464203961766709575287454949012046603519646368735772929742823475054967865445927360627608989246978241890713669103009266781913030559195116956931783197540796240338421104664465240458186863932609646353033471129213154369571442206723727019032161283163660683535359140279885260953147441976705764010907530604721386570676654997265613995625908185085303045559284076141246522180996543530716318507488647893313715980401910580102425541713566189612060110697612033871217695362774814702404628795944796568929166656151629117736946184946177683166359452851171641400879610965586719421163816545789355943747416596019104026506996537608910884905409088076624223624452531328521785687211710750728725802437027495835664624563513977205964778734767213709697787437222222854441505162581475900160010349873421642873794152091728087438528706874529967585063462361565683806568468586659128839299398749192804509759935762191530345339640241628163756457337985969012829274187962762503806403057998223939350958921995278510291646380478329362091927804077150418730068917857381782537931265322695642984805750570433859369934339345604496232593724330435766714771166426205667161937773757701820493615978206551775960445574271401595850624208614320221027947003286440974985311949339722052560172438067839808063019803303871401082373702021780239991965948474208100416246313999893872678129698371396533436978063946676428600241528248737856394129279353836077076083007500854688366849683447381380001948099946392793972548092617557123230722879914729499627829318121179995311913933682914217080039171083920399625324657124267114807621873238886630273263260510227485587685824829962737856303750205262948831696089490129163137263488580498192487545535248873262394393675045016547689340206821458565566171050775119437380589413425696041313947581919706682302632423409024450540958834108768898805836001905800856199491033238845013313960419454688283590614806279170274255056983630386819040807698607465088442367761705462260845439722219403554202652033104455269007046882774582145696636674469994288417347114807023479517943077836152757400116754238104978226516996793270179099132535969256413102120317675960263679551086925989193605152931611639993790605221621826257344736334202630750572642522552550069625037213380532448446537714971705777121738555021403641091178389721417976354731764860997323702087657166232862736406666652522444844237047431260270194052932539203881245611678392260714780011957184750455611615250384482208269186674529500194547955474267031195338846336750475341192430517289055830639606427300931789903397134393158405916100858639382213820227170819247577821001503916384866601709081390913595334061901462690424095680526240107056477766184073651996598312015914861912479104532820849003769623579045204928147481448465817268742916011125678009811772691222090702378514866112437144591984668576309473751209424335200446505329739125167083018255429713022606746609800526039196275579838950906924319004737564018360745493485910179447557716286315055488761028672918186758647664447865962782729403999320990533549691384757430422035802668200501835248565151703420994311072603747508216434958854143210457355741980118294006516384590778313094730099299395418271818059977319955225376562352261687988048284720314958906256968944242784076171974785212111708675294460367053355570333619526994064352330819095743708046560784123500619341564951004973317383620400422734437891578965349586115919181358972444956070703223227828015791485580886632670092404234203139271646896301370562218550399034622946791769783297015241275735845801308975952586398550215463677050900703329079755832652569733099251994233523426743245262878343487803932099014786974131728112549644590427779736912668770753379381052959792195600945196472452145664478112940888425973995022893156732048900359565314881818133524884486986948006125364742775500050420404621034425555880866214425237932464586130867091526143968878163367734969512409007739167264140941242164561853646208583805219480898873774634285140004397923506702424670667069730792355322976556684570476290256322597831961833397249154695255251435143479730725058985393503441430103727693308287010755526122132379489153242485015478457009774568367395706462453231678342716059951325335038447646180452988910089257614236456892093712162335777919010169852746507433133940386055838356051252991146475251049740083923818804095246656978219067500774512734041374694859890324303842177375760809258836398494285249166123974213403066399683994573153145921895618542973694163929127458660214919325606290835478894538705890991028776842634490924275819538227715445507550828207848836009388575040713380643144643510663577254200107215128214873801278325521947726666964351963995138809766453243327235576842641531380978229804632131537746252354042906035801705619274468848477598491780867455498329658519534616200108125422426766724465919850037372467000945314183285138022443386726425015956759211414749624518491204720646756094059335988791797905900136748853864506869620656149908349682257856811345564839572728890376856473485870278747092443784170154003374569827482324692217767073805998507558616687137871868309680967655837021661114077220785221064026826988873072896051684378352036740225003301294220879972807335520332084982518794763661742905528375912856416497413728193651143325413215966544797508896637844058341384482455733859312236750877569174580777066637614313837033604334586746501571999949357092631498313539476010997460000053765814494573326745861063304932150297383939354427370993864150604817313381076058253094394198785753236572332304795924957505802346554857601740783004076489467682586409510388043743992695534150692609552099668496362196097541990256689273001830398841155263548758410191862585651958949917543670137752629621235562608907598144724510634531684374203926963412512254942553244660392238541492180254748828765753640669566568544990494814915280503825352855646720044252289431463574597056054132111347761834591435006804097516578939671178548516522920677835710752551395314528231222460774326485780214710696712582490549532520029801187432980385609820847498781051624257385362174946834560794401386804272597372177995976134849268369259049454472854534855547672855092626966333515439531919926209022290117916503540532053541557323962865877885010012105094483643693554565652987025104273373112703686432701853930462298639018498497790852704663810074106064199346768348792149018237926231535776760045253983094883499531297315673811035767138095060268988103260660443176435502995330743512178353637422630730894118909833411963860551522024968443939425305314272823845197724460166040399583547279137257994876905630996389204706293760505652182054213457997735548935383680336528207608125148943624690017425014836948910324978639419114600540230621618556990861024673154864609880202781073473737770491883439815296069606171715477091558045391472137944886307027510625910079537399951394861744903022978921815233955882101576496402094591940900160611658741111198073433510338190204012029929324031443298771647219418758925676345923219909229015572393372888607136940617761645093456715228049982747509278302635993198163991685562604495679935194832038447039650098998538011265861333379477552130328891619787933732768447413283162153821350502232982479519855842530644062732756704048542157953717334383013657922716976581525422725319026917215835634790655014339322211845457743373186545271855941021062294882520434730878381222298316872357783733734451559948232923392695789294479982420094939266427073943232747132009716034757074410728503079630390757270283805020959161755070005016627792429318124505238672399685851931779590388404675565133255758214943153517959498790175939954018699586162066971538933325756001809207795785012715852501324370267983815321683151058802737455893982251650796556806740552933580416458692852316528925062441034507254751746696957664759912065568479831778838624441646954191913411663831359509426984078970554946580729459831838654621775210631145510433633536617757305037406342920891277502236209418309382037942049430183256488151462174731495312272496651940332666946548174825341725229124749705114616160054281880540354198947234572559079014198518298148145990271405143266071026229634919481259342145337898724583097604861888669585130390729173392077225689609836520912793114821797475064465597613403875759224022396034735708491833781121498925829532335444378531833361017437217127075561619143805327266024494866847503438075251839224592395717830234714190223503503807941127277487289504002308047407224556001247620731599212504578861913386499033912685147243309106085594366056248486764753301033636598577489631546413465281763741261581100781736701249544796541160122490093946034993309994023927494381350400802944899168793936676108675503546923865708941470394616477845589307011895036016968430078158866532913562055689169725157812754395541621519521053001313362218719381457197443546784636798831874133330551292210015747304782227473543623380608200983366453685586892563315746920243151683123406729773141705079853683002114655362735781206338697324687906485958758167228676488743765465044904838056518022973211179540565437944615042021563406645608062174908344929657888829537930350472608621682320154984933606588503695960666607613634125466771426576696693825333353829686677801855476375874137561497408516836293864444543728252821275965733418806978040386375624321359353338276914364031872205194448826998998678043790503172651953332428847616800651629802990750232478834434240656782881288607696374064960256307156567675052037053083913616628392164184509828446743051228444239833464130153027392175042011926614572750828139037673363576392544605297160176537577389894691397706717184212302966812872049713645325528993086401233052322605408161138788925319487861723276315274802047699701084142223997929110102895691963294280332770835352538903514318588286319374292654222129276285260042254539799810059553667839998923929180915038777361400928153081940786066474842382259576352851784924147444843684342520668215659669197697288057366703621563551249944361226689330580394804546277509788735672716123758257138391394108724319551951605337651555589253551826979714756066893173531053191521229835917302302675839274164931422439389744310087449119622244807371585249475527582841371687338856845139719357174351376651048952390290170630927122646840669278348399886285959423967936456417355871840199018757254634606762070626278962322034805371836351794691087763851991107837936690226478961426528198994989440958364692651443165658212471792078920335140593667828494017798965297981505475435803177585622558690610123023401093612955353576358432997463079288408167023366788970128145958847428199428749866143771185970104607861183122285674946913190044825643028262007248787525394397901252203517990670108864444173332942703850477762959484381499099891262534888002247011268538660594376622270365082672212322235157255037650385409525310175758687338353119969360241660039650928072743807137547048484456886848919687212310981990987307479532054140103959736196967523052442164056190052674275993979137268686278535430551791257504715766018492371822393484939196929539449988380196572662503651757494033119695979411721257623713831651147962605579178440278188122553834089639827049789072574304430334117910810905995054171220773737974775030368125820309958441194867999857940111713933242395262703619927063772417033978111333238271568277342014790547261654340193226714421801961053370502633374273190455187948713485249862668222211111318914455762210422898347390349981259778110809013186425670889103674298030491363651421324982033989238262331145775400763163825126866684850315841111141155886426790721346040922170507459824720702455243140352011956531392458331009142536349587897907439371365970955272555666600702420283910074594624663130745446751130599377751204119280556497291512349150553278102298643060840537644098917444310769987172760038151634428606521830692100917992794170931936294247745806817335335970175989328603148532015687697915652124189670040309591727757081603018694597140799824436333287543192214073599695262683038565958452089565549778101327453943408643865269541406604205250151308378086645729974925690376170930028161622503187003032737144860512516407239007008823823906811473995804355590351241221823298274366777890385385862391814781588353258137893191305164723901590515007329258274620428914392667534952154942924092785612941425869372951468931427054442270009324161093344478176261888491644169256081359077579447386206015924040120633749989542529116340952448531423182474586867921351026966287517052106460784704974666154518814151035167349815783088805062902524727849132883585857196877031633009755390490488456644897468888248422504227410769069154782415861985184219579094591392694553934970741708260129913613729331990899612447611270277043889271701723488617631963685024672082669876084819752651511784683974330831726048785403033294278644360911489762879741302033675392689318594580161832917944010095832498058750645836641276952928598265770333006234582654955532316653230563737351219528492148963929423810595598227092759973032994737505687449872812934702606624477615834666170491626975717975872429291141879750748782171533419974526805573225600314170463422031897578207730237386246978504165097975844527164585220435513975928752950895465228066269694344990148802004181186420397742204042702669554460329909254959435202527964887345800543458468494529753539158379291130570376177366337579523977108739337954733211854879061926854224008395361036877899152210452106502003800518083477093161510544129726850899664228246448977642323194767560243809769463100168877605725679893692800865024874467608245459575013283810001229747305653999137661127606785834512958030384050253041663117398222113792207474393966300340704960764328821987339877333802859793609821535465591007243170971570609710596868869066479067951508101151970513635751636112075963738637573858499983786453057903044394301295041097437837274732158210702226767570396614186087744396909624777614298268125725518207382106291429179289825779700233074929888582353993193563942526806194864206708332451046817067040554213418765164192197761886802958921872436739129792967021700260470795407599880696538294706826294750079920917805450108721318367103021403412399398867410140472913176444209080110919803524432113336535828527182843262367250370024116259482255974488083176067370154856289118665446550456305213779045057328185120197966540943027004974463254612122414112832936643794032198447927665610927170763559401220553590244673070737840681089160484022631613165378822613062347649322815522919522340925183960171495570625339301919067459718990077654358539453730570858767339377522556188759086266557260714813602684304809463378108948705332533469315286522818485015039938003366387897338934112884345773523321999762575438761947829060841049231708697927266856501771784535760144406871716869009528068034318933563042709727787065088633337297031001593202232479700410181494676461336968844790945361149017446298974932300375802531917695505241625006552842611437307622654208268221345946753703366218421816566443477572096300136885151459679472036012139399463261145414446827526486615867566816023239217047451257013486590616430860058855687920847833606246304195846417470830336606533005342062042836863188883242668160351752140074640269007587610894794635150844959617000501827708966824263274755293913446482687560096276222425072962721883787469558539680869873126892374812698135012870259485298709385372271299505563015937166285821886591605207403805726033045131972167929147718675630529355727688239029226621973058048731140117530813389217011861801173372514366353087565734208941704807219335988747973642686198794102854212952941043654806166646656095350681267986083772342685220615877477450454408597241235728136293950248772132291814474603528240905004010177366269864170218167035181897467051204279605436662794521749414856486403423375959054906013609693091684106291636794689232189120912740195170618038721228430708796077311372544130605417298995054837882772704666386419113779886974063277679996081032755656287090677016148581185167152557206731092594326602485559388718412430422561677461510838972883424225891485050847290517606189977758300706565252084740820884217337391076739811488077333220165889114100515854223884063672865672508971288503845294031629188371445378786613054000917050111154718543635583103320721198133485863115342360192029371830435261690844019550048145065893768715238471241858207056441353048742051561451208666809688655364730701451711555839964583567800349094903932744514411779916379631033825445061267296629820768928347383482756376171383960793925089382875193889083742482839533422566401300588877665791783597740406707501771087193911457846825425001211040115678138129566257255109176460365967780579961308628200115012516792484947604849884203733393954346866859023545752309540738153041167591919640339500823221212203194858219244347552933753017393518181466920530067683549832608976267360301178458554875270307322003532412239102967066481671955925453221347824974025002702748059981683762141181833876083487925809813815166160414642080752020537454958013051355297538783179556066095345275028999528430525995863149779903125995926852386759975764413602257604706511987193235262649108130193591599676247754200546833291360809332318453091032664269570273636886158684198635589869662161263694234626987065295164603659088977630943695328921497180259712631079198634234336833798542781592437536105952313676705884251472686692596225562333882544491533895148078035316009623627236262932109383812134429259616897760712961096532858126385635284069187072690950871990848758805976806154343849833078622373299505385954465287258009173848216395247618669194284409202032528586359734273652108417792406533769948709190400653628400265799102780858816942811241986780321267661190821206876943902568983185502950735813628332588132934978756119965706477032335460135933015737186998527595278840155231304466646700704457016737473029447784258379713395798102341927430114166335631047200206230346672004347363362091860740637938741083779837265910226226628166836817461450888105867940209169623707026722707855670246696621523592324890655654114232165300123066831581370950117516497474177077104786711442312703082596497028065230972652259535026093760320464181040128257029715290996630179728749671607818738643460436560312600913080199055913449698243059810448121422323919883233051748761776106038024224869336078269834879905318712019365657188113798828547000366180337646164180800562110656657135445738035572162702066987066596116302669281335128597234227347404355045030184366157059758602591897297176293782075851521436630058441375435301528736386393755920249401991229614783120533902040215249571623751771392074048121632069561687837440675142766118193570409262254428125724467479356699022400016162793569997737936222932889951096671881472547244744233245083281611358850626177813475226377416689306796189069817385426207116834520208661722554021513152030142615363529241762488724019384328470314533568553211634603241191096900498066163653704830044010118129186561089746980695576919135851555938337915890679818785736968733491665317029348327448262349678936713440726772268408403907850447337091690161948341749284476857660558238949976266570726095917281026112370882204240489674179817610597121652434189876973254051835763906896752464304945981403996019833681862821705860733720146993569728500023185154135769994130028979845463872060925991656750042574557721385582160662381881843260855908648842305772902458375483327194659221890608225577193031024428450880238041182458745459540599118793898665243467776067162411186100101040907349130306713696907321594348481297454532146506161170158707923782677675224366356639191960427312642890214401873475928547074256703449969176752335984781388655657058999833186012346150364759381711586038569704789249935904441279760418898209130348330214953067826196903024060825099184094962411171475019366825471966844473398515303878500511069790200649735354559385757078833367688924611079346271444198027290305966709465426946680003655724825053853726570034645529843754856057664365484689591987032555090859093742098048624130992674323728635611761809716368736588525875429289986840706674091310523331169139017590611779084055504104097301267508771676860043264047173173087489445795368280651668288418809763876877516772254015070039336937988371358231367550158528752403375539868709478397561579463085259914621207238560952292201024194226436550096437281621236592956492120341931085580480579252070560970733110036108725733655124436397417268775153220654225639339142498791922029924304015135326183042516398217599879940327177063065296019659466033166091932252139785174202756045328225580091107055701608519778065710143163012118809125580649860309480491466761077207455026345069561581532830704419644626444019789530416738083329238465451537251333168403315256389658947110087988118295323646800461339453767014912177042821942828505066221884630508804097835701153266549162552495263850962757967494757716034923473596280176155626743906233034700445381194095286975509385806797026611456848448463089914943151524881780244169740998906039084394418502530473572469373056161853793406882946014254022114233731397240857449458623776193225518556891103646376840705160036061406435708118477977704059956412001046014130008907880893775952957450476550390531835991468545540757025419445358817282302171840873401560659477066982172966386591321277165192516662912421600260824045564181828242071555930414128479212381485951448399656715057646027136104073454888170722718008329681401203966223752409176259305011964574375389928646189021874107501694155173074879655579434122134018619457111141451434767911050873858437954322814623925103215251780610220029850611715115229246844062336709270892264532410781786234930020364861529930701368469705066369587621303871918496736262861287731353077213166220888069011784522319949365322724431774790440805210124268282757760576852072110323533635517332228465853855790725929976584978688690119345292746422752555850487824174159627743927269508630037391972324328096423320985806746974551157236703879559324457584531226002395645186342413700109861502651950965012763338281967365976435594000089837050721922683756253424579642152081415381403528342327457452821886539984540277441222545229422654145010246288388525706463919904127385863747237719701816615015593065525804024490929824495350132778095325642634262634327989951686692296919787694623076382134287918534016638265861389810556650674010634208285394781800204536422696790163479917796814269701962431418370179332392082069639114568653435751789370246642695952596006543260916042709032773341248793762208978545694318474194345106203974665551472056170610194612226866815969048383942904309928316773541444293722192576392177792342237733971484881819101699820182786211318128453632639843862156550967765319885417831855867415823900430534511707373728672801882335457853069599677880674179643009793841325405448123808319030586540851532278542313542837423537587216882363220550706527064952513569636752121046320641843223935637795209989654547200169683510743077019398841978707094769498748642008554707457267060217127409566926654314383377690240131427899977567787241795713572230606323052385635147631325572644675977337769862841750940339381216921426735638646235434020669430635075139402744288976582370030756493010657345186982126947578850411919613610460934316440741533743957724358852565023137809475431957730545187852072098638611622730433453295875474855127338327972219185035047871897884249287106896182108994171586776120838015161888651454001285859716463013644965160551493822792834449083767432819892114291043106111086869216552792079820164932937458134215076551187848927673825487935117832351611208551784108376211752815007851854778186076794286414843233233191097266850032934128914045858204431557610778785762577423838489931572373959838110607812467786358556899652736884524094252870459643592076057934668432414532559635624874882117912081839703478464175492914224861988169835836819129231902407171295700076874633450585460536189741365291148748788266701276631750412100720315781088924376640367730911755309040928171196136210539234138733422593767876852625713512243413482449243786331885276827537431049035445524214357136931385640290400065699362536817799187855871844730770582529743505748664127084654426038472744533183529848936838988978082890186230744840470844908528494030394342955463852740854759015268816000374772522811781161157423713981950740674175343184146350544342438357451924861158088003960668343940190898737819244040021983228452076515479211369255074787416583660242218546219464307751521861355815198875404635517614095905437385700525013580939048596721620216069844161569078771684068127414376614091118139631085599151661481079544515324959921366825499632712373562568414745414312312060488195654935028235797994376777571835665900690204179933690917282410490623132712442494160142851609628077906360383358414199270915422768425817749922199305725803259512377120129944248407012279686794447341806792582657934958914767888378915440932631656700608894731093256105619880308605486520877456454524748535315405011168124284749579043721594155394367029071257786536897542289496401161850244371314084346303543580647721271143504313625484386609243615500319651085500509071583370415025568891024584004181933520252124498457167679255682218023266396231570964589079686994941373432621181495473897856248821720105582789845333331365484894508887856751904044595926531952158119244898113529022134550383565982719369493176565781867600470077316918164550341947667743801815903330993025665956668060102509265301151501606224686163897193090214321417040021914577268584078652097221680980634034097430869072988223097519519831002986126704890817788276877579611783302232901846001907160874768423152240507743607793306997142082661884079404692580632742472750415657425467147233099626039572865385905528880059112225774689762192823890406555213719749452232127683384515514576846611277668820788347588586006488657357631652755699941191083466144561867068127494633928642736615115589122408685970789270075033942198758365359734300410695592267610355330599310591763127935116297140796065012532936194013665063079415700502111880435814945337913208587325484304636596357544534702368957640754770441557149317686793022777531198821848373019117862893069401115893599512748299120530681295519298249382721477955410129443773451756425117165262161669991858356468746493579240977245513328023629366757099076978525142266411911935854345013740960793760050865528342280657264780220420613079516996395332476166228915466846940969145152525634154269767270965428923669684031925350949067384509020297243180912312701825519513834600293788217620776766147017910569870953277066003084161810592065874865600514839521848249925432548561325085851974364170725538031964069280715632213221733454518766155755263903183393965684200294607011191290037403223439767010625918954941108166177756219216231211370903139719951093000601030071533334529015978893587985958847841800525379600879834711092657875489541907538610662201899597895405934378739470638423676775021833692887286605278345445220240580571136296007597466519777111126309694695034238465105314336670951107606862905878290788220871334642003643903663329809885008513378149631661885771080663125580443242076986475122165823616208346814841408315252753960506270666965263019025938487440341266063574737719247252151652293940669552453422481299918326565944237591205598820047286420420670742228727590740971398215723796321454991672967308028648644840683221903368490269899297102009204118657870251785918357505527033476887756385854627396075099761474005721928981829667262012031145826081585538269222510138256110254294430679624364008997810054400678021342767076425499259367101022846748662259411752940516675558186269417505939971153767539966509833016157369709227005573096959556492723851825757875534178887526397885559646244749232640748216285423380363359493748995268060167541421978835090237310576875032819182590521253318493183061007022026785805278515630243241955539385657113306225224623414797114479325789937362652202228457992303460117710415744094124681972950029114139867615503525998194807352391545285811182229818156494479275635533223506290496237602188857729408189351450563943338935339776554563408665552826581360008164633345254494845059555667051631077088725052066260225605736292144516747211388601691629300542051242064155552724019455873595097526255337290938999075288085242342552687896232612745355757808171530910245963535539481476277196916419842611182758862589058043661548756206816374340800476001644198438029373414682867771761604142854126064256415809374396159129242713631367317761244589933859177730611332988466552457482834925231194587069989123810600838202270265985625763339190336729400012642906996683842381794361274698665931896190453222232936031663296014943687182809327430491523893225625519111473007531481288072064268422269811361855201544798087601072876094502692494540614879525977809863600696691013778141234900206869198389264153767225517687495152040148830312041130202278064596458948058713779967688734939187037982143916720645908696518972256916985099903102030966573633018772157910787814264457256174115841858776996356352915766115171611755619121463772138011365226362712785035214533306584240427193465708056180564286269988319327273724685080806372534586774314356471343299136108458711456701768060241563987452403858336379398356339349445950307144276942139216593351516100280682600186217108027589909163454624602269858671745423109772973060195045575021217866729268633665125807105050017472133692072698071927790633012919033429182201301171302068612463736153617639480556112267903595998345820736803032156050836640166915464026087260506651984907574962129633119204608642470105996627520406799085211118873939526222171718394567435843662502594075677874552068831770210182263928929333199461895562143393987537774182334907763855993540087193532155781063434926469216680197306958779347172225448079118111196392639276480012351772571927478830578397113669060645525433191903222891936095497184324910090454066272923850274056338385485901882681494358436458439802626111161717658428160979576525067876117951163239926351700326195341509297500553404886640965835191659794919350863488219261598144843692437545565112204194805526823075332476974088472778743545235927210880405262583536868919931984460989716084467426367359168005528478634062691271721731717560616771714634755616198078843903113584777164260510474745766361438320854993672197457399797866522775035398061891408888385909321374375272033623025787795610472928563860851309157784649600087363339203104897781691990454837211576932614722101693733956770865691376111086915327835405568948605071082295424809180558080958528406673528781480386538021466467571438965475808604345129553935513095869321108629931110605839939424965760106574952402644946365524442407305990365284908966648040467945517605689027631717191876872772574890336567177856382321653056921291150503264128157327075011383551978930940891074880342610908827414137119409123094371678696136360724776571046234861504060685470464577187891660382140143475097305369103110844079695504562377538119827552159521365018775633970735439580120471966019512882510545033173051621634109051819226052554631226435532259295747572882001626270808236042444590358136199045960449167540375537272061819889995147771614932760797999354053231793037435275849954268171872137473000259335615361921111292616389162184695669562033564970596509332371688551878420333041807503066505560625174160505262331664091925223825887095521890288129575052171165597917130825340460843307977465476881666919681447689732848391792177677642710321517452447950735880763289054167316031811926102417003817756596118256541525180967987602616343017278370327961732925081347047654857656059010727673521385459827689298733297583299446853656599192720272312841968966632593594772667223500113719502646730844926286095985262052240952182235920031470698269779266722504236559291924920543503544423909408805762010504653092697731349410857279976380113049279739865584198988765833201593343961046875079635201784729873173044084272669658406096180546546563193025050149598884019250855963188092332801473038791291957958251012920437765334741089180758072471272402761666296862622222316607044875229214715071461596077335123827216691545527291307887613670400334477105207700594289972711773659192429913212080970648963125588439119442642483455502072746152267209925644565283467989949066034174136847615577313440734698003798042141226713203724653210732173573760491932062755646766549039130286899780152779120272475105329245955273986420662452957180086809157335553970196512931004832314704135049429359651182657240498204431397567031470537098506131461559915459679080382063327112705397643894613068335246691567644480584790531856264957839354546836297097508864072557823669299065081270643207674253904368857138109407458556596741811348102672978012876597705816267284575615932812660645753286983567541694373351718691544942980395328095625329671764742784192171054963853414283219862148618952679148304004542302437244624942769588188513047879480515092402218472726874326028962048598568318074375214862909921339139921806953807443634711062302102023990801664283121979039310889890286812774491398778160123696349353837904833738861649739886424085640388600121735603712566302824193284413937152603550255365006846913799512533015708816931761980595766096113281453624863814374708137609973392793407138710218356044379465595763210859726380561131738627799618662828106580006360605669651605002754632000642838339900470686106215897801359187080238837576895579111713270218719138612446092285094662178800912356646714252845813168832334386170263454531063573268617141732682521099271958324907832321928980485122982303379378592697226931958950333541260677636845192027990112943513290085258960490613481768461244818586345267324944123950337024289552856674557637765483130391544907241744699033348963010326960851264053688782221214621521942382509078188940264353675156891044885683292128360258157480099845832054876530840824256135089359722960318588388580383581856644121538670876760124831010463084474432188014479093367474688447856414817445909124539810323008859206371015635875651643095961127396401586176978131408795073714288317760436689819626413475006971940565195045505167742397940196899862527890085237445807328867069741773963572545060985423456789852042507322860709420263948418286692566061665444072045775683939323122654078124783166688018030184225045200535518686848505584530852538497542612057943053533080747750826496088529445572785003441395589379335051184030225298706162915059642259996005856489572336531798691366969944278665789125256846260414798110865685571739072133078933108525903333113718587728703492627902715673291686627166749081993182583166832828500157570780161193169221931514754937755159804654092839991094937420103717085608605881785449005704104136040435137642468998152680609255401123465329504349180537477356166667104692983095678920316482063931739221248405512034780632111316813373224063216455415588237846091942738088502838312362266549744300558099898299574258432353764298631465635055283560477090757473282636770439630979234656297949344566413960851464371303932136774212470904452721540687921542630642597260292018994655298115142612604900763867141730235727276839041559723450666693866460588292012471144178831782234821533891876058363276181819433227695553112581904847517462905620013468996440716198232054347184611020511315550930226825107491990149608178562605108859036584745150376384915134000329516399106219240557283008103521761979616832213981692408357639556211657126112192905087163255258558649616638254193591482181876195923292056995506376458182685575221152787011802994335467415362762077497854054133303136335423682410108464763749063885279841490076464697648540094796358954975461448137636970591635699836811987525054793069353207570766780148447701424716241908166822490074207111864881547728917186535967765395799335033427282146054169649600984706979585592643042870363664713071314782330611576419913222420646099898830762685836055527409904784676107604241784215062851755735299964786255295428367429870664579433758010140740211618614484329765744263428528704778556308309631435278783041945019702946575777732816746858087453931603937253315899280579434631408735860861778826334927746151184911655130681846713677348823341085136403947939208876886336339461382358344794081569610914293877347138934237736191096460564244474779082076049660271356168954106444832136598082938909729618912118342914906163896386106937520895346883983344467189821243478072387407457697554507436846747135024858818399665568196344528811941833172636825050611864900394125520574571203603557802514190435267183721921384829905803224695842432315898443251039654435350535432292167470407786146848597625574461535118800314305699549278471674544972697612839332518381972223283607075227812928130106569412629487306342688373381817421706086475482763942423914027532180429519034116351704698074233515560578575624509992532017874996366404734770389855873065076038709977318431281098978988208543559550943253902371895216820233442455725753078792633985509016455942373396625223351648750589556942172972448959988250892321120347958941546546030378786175915716613988693268737496847305496532937821475648105793808285300532447080506569294223400109593482946145390788906616264021501307353300331920745637263770770999399922886212243248802062634850888530360107234368901360642758142528398785949179979611219637975765192452186709608809213711197750008781593043072934488393095757415924137528597779729189345385050803831986774590025186579172370808574164297153807884060713068680361982419715774763895072534684045691927595319372237022290155800656076047385473599044779967487499697694271376686955331951253377640985870966838632639261649456086841403745684207194059507017430354691821509004664939985517413893851975731215682616228622318810967297476060130283311937161140874727067625585677751199566674861519649129701933180849941096181392964927893609021253544332737506426062429941203273625582441749834509473094534366159072841631936830757197980682315357371555718161221567879364250138871170232755557793022667858031999308108305763076523320507400139390958079016377176292592837648747901772741256781905555621805048767469911408399779193765423206233747173247033697633579258915152603156140333212728491944184371506965520875424505989567879613033116462839963464604220901061057794581513092756283208453158465200102779723561292301260586353601164920990258745552140396979115340224158981324505722923233213104539246998366112750916134187797227187025774473612438851408346593203124872819298983075689239949381959832188510322875468017653126534895937994644103925671627137376567097619003782417795264140347759263663742390124885381837859047291046931988921561079247143327560002901718628542513963400457589817466555211460707993228399619364911473121269194530146775562326188225474217492593988176676151278888782979077553435112170839901883452233219690347465794550944768920757930691195466900825957171675926318703758916638893288894184538070029531880984810299724248092559155043938279808620169832057636310256488683733367556867575147223393786399927043705993835058859055605183654797144313221595382879327829489096701746076716010803728041034848152265656486364842824541104899413015270893607882480630118099269149851590541025574787021536788477842551734686357723334383406417589014470201880422018406000125079287353436837527969339058758306889900098667627566062713589954294693088070900005823695779302110886752430263587825512056311581937384231274168022851932522399589298184480445579580075384356355445305492378712540563814234364925039176227873471242189196891382630673102852200967908645711771653120221399623743134479085504502900733349918425261109687613808162888580112718834115417494136345138868088956782270581343850521480437693859925257885006784709339973262960295107668375552308155704844481375821327099188170402812193272260910760537489356705632522648960781514355497738488557175348316464621651930420895107806278954949083214378973758334005355895342545737118085623018544341094185289551309575967769582402181954345544547652471426683189804236684167240586428806533104869216127255054109244486284236046666396687614710584422726127481196528881151501048066826334780645290621806805655179629838189287150692670342310883360220256883230351700321764395616340505104257122581609931547519104362633875885509204845150672483875544944792855578632597746636727624655764572031942833404210303615883393384420146786723327798492220915205224772751087797360418348658333643140276396939107072379676387708089075460319191520078841614957763735486468184411038424165823969936822816403630388781648321432715341952500755157175292986336936738766945832516519119546578393646022340789867123877088666110461362640957639919655620296225771822659622911817677173943273852488446362636125648422069299840509967656664801226976925863148887795490060138494246298656870524908014301382883362081809730884634146320228781445746837567593989299292090446482599656139592628407710419921392541826216743024256480573535503181260755295068162462657195556551934687475933671778795880849638571301299366702600290205028254401101143186684718579896608518549500279117400554966044449177560972123161383279759528681651460606165070491001329550775907480344644581792257388849467331106987374086277300755104364314322382840286428932814628494129451646668272570991639671686030409889616806990615100501015735514093945990185335935030611648086858994954553660682200864666546773191947841540987210695710321071144350237223759089818666687000278406816137441506830047470409998812101510850728768591415330163221058539738262003037798199325447725538193050677527529436069455487456670389292835759987060311075354229668678976635265494847514978702374532535551517383788757112670904488589949095301929724724501514160222534727091195469228345289773867084945073165004855246307999859375870927660472521264530313410924227364570617666376401863501013109855883578572234566278902174547966064256155068710432324331746508982741375939327951459666246263106069562338241733531495789667839414023235727687714874249985215878356517177262566127223651628521628785965136544297475171225608743258477955758481001695365239434594250762142849853184462962170639599047765471075471451182450446505583958836715200686860474768340900936386274413389351546504815799444149800395263671280549677377990138107674763256494582446302859073940700718622789615490288327208177365315381210635137386345433885697553871132360789240995274359876785129307423363141747545761075437101737051871802911759656400685830688979190440032054233809779693437041277550484212349571539105619283983807504750755255485891551297546342542805109580980390410456235730027837389659024508210171583404519906243930056102024318330106572246135885972642146233262993589794999799849549745633072618602704025519897695432869756811410269434641010304056914564954930232519590739142410385277418028124115748491682596148011008863334060097212534013737880714710848264355297871752413035971745137412639524466524225018238115325618644350302819368701051570959016350625888560865041911092664880528360019714848523503489436822480163517560279413987818097589446300401450653538036945577926370824999305402545221006941952661391836430619404877711927593858185079847068077663009990756829688945546330458217004081784094780894083402972113713962288296161651896185164941613681271735949944929017961518733151529264767529460607409794594173811984172159510344286369586923779675750718402529991076639883766482320733899862437353314717542551669599935784294622226754895676998738822024221632146788443961752511108071077724880621886793651060690002717599887418465075313017503604312038278079088082811695185612913852844179214562860596143135372578539714232629750984162528567115980264921535266745880387391852260084102754456217098064161581443311752576918530310671409437765521181005597359666620875330887224791694986524648552355121959663223654920953320805703351166273141024824030747071276006637916978027523744847892300743948204720436019582276900790430965465881194864393720769977854684654264504725356659166036168871090841797365879133566522911428043244268137502065357122197363779612286565768688671073551432572912269759841774595521998000246001104706778872984910736346536070703377015669859435331057982819037956216422642878465917145586535915719601634754398134377644375331816548969839780011978276323077328444324145093208212521715641256054005736614995162432034682607678721939643617137419822472579442147975912838651878605480219467726492607814170161764870479947218496410489568406951289628865456704223278939703330931798248392657075353760764908526776373437712717981392786967113257069622246819533936259012742245305381441365930402446894294008222746330739561848127336284910327856850352911385768236402571072208880447669630028357030009924931763852950304089197422291647985562167570676527156627792939307319716435016137952607895059397582935732352215217000108351184752051655261225239868171374162475066366990644839218127067500391619779986318211199510227152971788053425440240321868144584123751856983721699137131344773738909928824119538001706269856834125048865930432090039408943452432203058358047052999655904391642973642698721404293129049015523275958507902692457665096415007774684878886170454869215528316049558407528070920635151616321500593655176396049900364796461220865103092840415758549979551371187993386237846448651382925278342265933077777740990195162092569319948623908262037817707627039551938251780587117737380744242739433265921281363945383004553024179415631399346101913636651017140197155995708024238421303262215084377606114926885700045747197662478919600303333725528659943094199504506862852949106694833172184221157550391183899655884047861198855920911227201441015204849221790571671805141371206884120463932961125485107911976689009881928379448154669960355234923886259845362296456715940103452596065982286081842345856104717930854972475406784284588843704639739065773262867403683941139595862633458467045288738639699574753615306929447850883148449012225003386776121522866927603666764860568529417885090796359363550515585914503371560774038450172429909909215409716738554049379303835475199754438483482505717880819340093560352443327169697271839249352823675641571876861752595644831500401552963859998025886519830126752446868856337502969660706422589532283451727293386862816326267680638377473627517594594272166394703003976640189437210974729981851186907356240362374610461958085377896644842539613121384640425464040441656551124879345387303664724746330332972622659009748985016809265452536662571488220342821394913550028691091819428597728472435263727367816629784338042832095279214573572380011707187593489878936108178108210550127122508877928686600748991502286297027061839006303832673313385695545704483590553500607397050837156990675847554202174995088683426647711569000877853601592482872150280097010703583054044855973882276809065169305050078027523216252935291247475240774191030189363033712341211850839508658846464502285412734117145346290090744153005025854827586445529961278337782026239817117908152983077095812534533178977550733398239202563370742361013090679121025999030109029255848597442405949765949630327899159635309568832894477885552180609165010911782683220674524633216259847011110981416593062754977981733940705730642637473214924215086423336407206723048974642504555441273562690590346067393545480925566444546349939477361093625832630910123467269497392216287863936535112797072643772839452659443278347478579339402241513735483031764972305326810556887912293885879178646094703172691555603802280773868901029919273359757023781925391263659016706270860597884665085997973359348926470382865650861766953741043686806608325493204653176787330980319610512402799309530864701866886033471558324158960416705354475526090702787686609137595871544631630345437726061950903265001028302045761300468293648059977619500346167638970750626882356067252948912202197292015160258683939306779838319012046320885844777216789272669134017242280348558947361341223543578529835077850058122734147005729124934847454189375769264019741048188010668638154063182522305782153384397722864233181458641702277018027065675896757119554399459608242654703576099658266546963955745024446403497040494339924668068603015644136801446892205200655153732393549852661337753241779327791089999312424666263179797388688249690424684731930347930361333305790389216167524210538309678212370574599651080911423894194283512207445528922777586136633496462872490611052391922839947670084309133128854318953174497340631465690791289577985975314863683592475181478646967086071255214110164716774322421637017073816414567873160130208213002403524216883886643133730689677644196348009042199682789555382474557684850693682538124490751997253798308152882516467456119880867522189843254351380069196716387142987462009572720677026654131433285590275966051728074121324068050566299124453439220599112037656661417981958014287203238829143682312224217993058006678197871646605106489623116882957382975717474588343731614066131066156298985430281480459252977597926702560732498815877081783489414466170479551409834544744021994565591418199513785986221562779134746218830994906403758570598705985163540532273090076245417562751118099150469036857167733019227043639386483639279458733663224796864251054674142236187095873299701323198920809703453633286479007451601086416390906198384571553719617881126200131786568115212466004274541507768484061222793439927595038338401460692759306501914427489784699699002780546688163762823447563927009629634961066679637742329728912673421989381443660955889155459213329551855751338311422133071999267567656920417708629764687550926010026345942121704638383710422040665616549277666744833681288312291792299507680647602518626385424657849190232130939803335250429112978110538821606534459525827018464970206032281518676298047592294645238702570573607946728955985925098999458704986204825877016673578894902893301711139452970644916125960683006452113902846696639754817408215506377418553553103594659814405944128757463385787354672152978511984114028846495231421116922552803249379215827474437568927791079859082417138005142170795550403168977800868214183182820315155010558112889184759955556650984183483583522655330960222983154663487857108596983249928858487953394794023246587023245115274630857661323731094587544027120537198663449628531442274586379734586172629582481971345131689666375854676246999562852002254489935311318370040462629647296927727558931352493418702951741145678638804417640819461987796109316460281814911975537932808430738463637721219967812060875682995003776835323903116366789941635652056998758108430345243488631060330124532924969252532635705884486313779352239666851416156618088822717076533627675876051231959738469937303222655355020439912318068940458270029983057378405882337495842095017692633449969163274140254190763850106432525466883251789907187347195860482187437836834287900655771963945772704710472250049357716319040772786887627698018871255126427044315689070736606921960901996974755262980396098316589837892224853638775819415973180685732532925040440220343695819525598443539719928510265556238353507846663937109771280744253504980457025213786921002442190679829114226772094935128270783758720298900774719247041858982800247626657659261072348440562912696647725622446382312426343294594051883237901665236187780583510372240359388023779863501745078438966193784371237751213443763089182604618085382631652494557960037789093831527560635137382694657985185558222708241955776561860106652161800093661292104083839138089477949036598892118516351182583416899076706218369852265532192759420076015795296298293296986682691633370064562901068301033977622048122398380665897878730707374891237646697914888389240624334837479708369348019631614942460919903541808080984407649245156331813487948222402195047315993663159964882972616455407024036227546281633012330228985922183050404965200650877975352553450993564546307683004419600486849906183388364146573464467680594728633919869629476995222452729602165331211840354366475827005849871198414193490961634144943071073274314928717850855429601585535507794917536367162991243271637046649145833851553900330352743306328905863990253157097679530745997736648524345306293310393270391545605728169333725104471303385352707431322529603640875616974440545662520078421531880244715825767179444436722375357740162348947267400943509825306785632127560957419613654338387201465246146812984377349806586757879651233090408013630155530823024802793128959143043092277783447354815277097130583515447367712016119247169612780948851115860272264883129758873879417787792495568703646184017322761125260184114531818596621552344325180682930275225377914471009066303493454000813740536856540918576869360706077323881131674148201474103473907750178571635991301212073894536662619307722842929473344150359429901550812252188871394521194713599582493628501384653402919044958849868585802861104542688748926083190908439009760318739535605343602781683190765653279826589405435276302147279415393062589389160773748930318417692696563210518505668888303721019744256186233938045535590436647376771268893234805751020408862246215191969264234830054794570176945338242483502020022661358954388137450655393359132252718524264059935135481355468902380096799430574863702611804911983708888391482704362384582306065737953535391037733847697273400628515661753652537121039976843311629091005987197110302573731992230716681561572312114744792348605007199975670471049671143723615837017555982179953020238859986098250952229424836760525643276005878785935381630923973710354155707865334511806614587034464955916109730315250449789539998427483079590681882646804739287564778844706121644518518080169176224729433040725939425311897907692232442722294950128161275857598890272398182014479679838538043709093190289132449416557234198813057670375864161389944342422426487718636701431791636989357309134905767395673300452058393687305711136634982627439757139586146679713884204929499539789737619368174455927249397682753535479751218245292573242174827713651885480790233832880823291688170883673238667143882856628943885748129546170230288072999918209460774571489676246693249400449228215115151868290505742008210274360954781959510857147038656240059156670932235030588925520931878652808327170944237249991768137979828968812656503777736220622475856868910917594762865434460357913723354529165852927039831163898363923049205537632229966434927492262968739998344276933633958243634442973619503529566972179865208737617307309262728941385576958194805522059815902738749321712050738754887942407950715053858742276379471600879438692250613695505699682939585565783157458210220095798425287085981770991817865167097265671963040906931159951290646208554201376525787217795314280888832863262430197299854518056180584516978878159547032975273962729233522341924277805653701627728161212179978119957788945489264423904676239405810877394740303140965431122776109530384988304252552128182979476543795187690078058693501650058321150758763927039305945375113849519420811630082091336934806170202552575662297420813631040943956702764209313319710166273613161698554698955360382890495250082568698892906055102788948586087649506944368312208993529495675751976588817385710991078893435230981813272417090490578106541799842839877265802442487310812183795936327116199618652791494508105517362149977408370108566695134516507715788595380972856635215733035814063725850440269939857904807981601403337471462743116712870598640015932437072162381765604680260135150932332523602132227703366099228444127724353366599268489658493631730206627451316944996405276660666694345484223144812146622859943657158421747621533559588216879159912615522883635721667387977936170741854586254809603583884445463515378821984686955215111152170868135924112288741650606085338288113153085845381204330679078911751970046670765120028423131435855989587511991817127988205121159672140141077157577530803688242289340096551769743924600851491747168883670599871978916472545127510871312242010005350616872538771895862772776558431699089693634961559006774544075826016172378859458698933923769521621412852311608689174423149777481640555272331982345712063934673661872923848835107951381492769580912279032831873763369152825683086879017819147948890601779188059638808816209122474231659613908184845542726796590769901476234144312825907057859850612233405490901891500406726609081376143531860726318491517305206515080369271528531513890769460092372452918877272456440124992349092269396652187202523593958374617879268496397249287257256426727832748698988237429771425342541354234602210216031970074234029382600861893556657359097226395836207924903445265953342335592355999953951282032280456455761756612178194889882968143471292831913379286571155216382602551680904885001402021550504770179871286272184808397663411957358014234397959563700428258904425433617837752652741882022106013229138636505819952609962976001317313321755631322392148092072661413738496444259440290221369113205443174059219250748169997594852798879801775713837774404489549278830674768752882151711748616809920822032284890452937127904192910940048914867517161034268144100097560129351235808553256518564252074577665811410116764536494016793879934011284048651754740247879643162908783481379370573994232755408712296872112292899136435412799792126144086283165487384086033573670464862910065693652504538094620514903582675355682124588963160740463620326274613518152333119178570847581649776905874636918068285805084114006836667913062776522901197833121732138652256550041066235065807368581039283301740065879626832073345703976981264545491931452620749462098001842805309198366426207321717785414440982922936910281157519844460869005041752554833630766701592973956020933497847967311243354079164049276640331535902087446076842669070307918122048652616079197161299455082483787739279647728268626580928884448227893751513473662040339272196089581486316281418017695329204929258713305716267802981466810181469979446610956943835995979976100342889021885097984695314974395502398855667588752231720857598584846653407926835751652376313038762240249717789116749730254423699815407497346244749393360600847500476188604335318341692767842131009793812993331277187569781457882970215841662130004881019609983718765055941483644913751930539365702642805268536054975365302983362723189706363980560354217177534529940257309299705741857997770227283063641545750210838693626763909149415089645342337051464968677803801656447835940778911660758926856371998985107822901665612163832904327730664465290748477940925187709676179258246472706258311519924771806893093426708219006163657297598903027435711906129936822086050219092476261517022252542159443101534324228431650050535924209485575625103647689529624834477923050581301084821470089927568260696551363342228554108815058783720613763484138398853403307178971948415076957748166191667027038723373169056471544049716965517413667622661957671586649790203882441061828395871088242653730413344141574077547314806877384789897084363123179598789828622886765731775530964219212946972838337281112926976764764618230918079170782570206800500199864048582284786227427470652888793508067783371921938177701291304857778163257255414866199462844789872352820129946752925557439010560056080380226580612655299536227486584739699852722520515431747381738654724185952981352953565505939994516823941956535993704312865296291306850612614664361677043552084271429136070289829943141857972430787922641785165187498850857284384846060485909618772884260851945775900036061031383545950873340972260366075620517834847395396518668602870003583179418968081431381104317818128435894073624773517133347374317032542787428958173021066248014722124996047399795180035121006868049666405577127837202228557455789319445205490461596722016021793182261814163033427265844580014092433765931409378753156802624673254221210087571381680871798509831307879655098273155225927980952727732868230640459200085966199249947552498655432347843095978585989604655403299011899247038587916811840099873881943865164871542537109858047558392294142244847616624689489615520913620289752363275074378353037386275270862741125268440733053708845149591274746417767863977636695063435452607396911398474158926480816047488882921806335801552580226762835098993069213269296290936028325939091376465952034074994835308906252889710182428327239995420981860640520349849438807197022517879577316171865851253723047622937213192801957429279480941115919166529621860483697273478199048566748426245497904439968570279524141789130117635098665897024654384474973848114570930768707586016434011216902674015510564018796840180377540253587337957329124853489974864873713015615793697037491268862990381565062687554337109725873792388573365711988146488219605280510064279643933202247938942094342471004793850429504837657938680933281903481322129989923243685708257137115992938121452740403047964575365989537537653470914678112471195547529245122999934849431610985591533522652356250815416605057917236602163073086482642165486369856587260988090207522362242852130019753966700225137893048310376682312042374636504437204751969566352449382724291554708261465304208430858554826358902519324832899539063550831478533050080569778375485652616759741435352777571849368475925777145444324365809477317334415287190059938950329322493928986880718899245359633492318339488316846337216256124869298854732330487286194198737665360880265127830767731811039348457665389607012508988950080180934349709144567090137233749556703312349680847945680501295459297786481903569746564154197214598536781121383785970531491640310243774213998434005172008262868695677445055329032295929605996598455524534755463147651661971493498306878551361826037166364682184210114922271969706643943242761043271470132497038101081852028306877507082370288295386367744237976980595884832052612944696598894760270602295762466672626432433463863804263691255245722723694490326104143552956269121789235801370040784797378192592200693038507027901397410780142134272044277793572063176165280890032106678951544338478937126954628030864752199725145040346434429897089211999027743222261271547423494447371428455309818741654118942170425230467119617820832886246690885555834793867149842566786626840675930421161734712744513689712096595078795548425136488285084732451822449948179188901489064314125065880033855172004245987375403362884830102751507637721433595339104689224804741208517092093924828161214011488393208499846594652487335761578197751895296792085690669771122854095831094564568809446452219142954936135522276856511653029116623419131484238653561064359855153148330084635740043331191493078845779359452218911703802327145702097132711662001521484371619589276718060187995612882736776918304959397860829055733590402387512204854549395927460255324742958967089065050382464349611132485824630664665180060092432503430628369220335287282519102783001114914671841588625346834592186938592822403565317892573375500688110713617727210427504809288860665008035739042294500823384694222780197739948566445358200091640884907374929481635238791231019992769300316002213908714682700354025708145919911179279180012935351378034301158179777678266052258257731655291760198109923844196766468236814572617736278462757219231597052177716070361923759012980322407418743112138767399396738028078021279912465676778910056722158641162854880931616902162631007245800727635817104840257105728332161195060104356809425037070310621639869948764968310405147356224229261239587285932254616928121658183337378911535578170128139870381947648895191403928578566676282345902196113475363177764021834594447162138239138395513475544161480202179395389665805070671606076264201577703338779276512173529609876508309675773155358989430902189303817595844880230220993272161420581018044684396972279699951522415583617844823191251019650503914644676931970969283903039221716236542277249310539194159644262728878740256883517802409078002705854444510834517815606768829999535035655671471327637064387167147401108905115052624880281852750812885813477235142159032429072301228545963910744430138685709384655279356626515039931813671546093989127988821136152845835332663219466135001374079077222640672545433813149140560242962853077317830077662551900018906747546153088546777337860541501485799009165116162759160832990839245090949796196210689093044466241468371012131349629064662827249810435884031733745859729955399295512720320931966671178806030692052603905671368900476439555798566203632177362955769858392517227439655452068550800381769831325992823110284822629933768193950424819403122540758315875842310273562271402368087029124188731295130415999506756878275655549018543128687574479657865178843346355016098944330708315653209214034295633699677855735611002787222231718469057225575716518225053906726863606206263851975359462380056806706926152689383883600265084969779580222025854602099614411832832893376667875096411624199856191438710951803204471673007620605469957789248098953795961663759803988228729296581815755505791542807729520863108174926214335865355600171398264958324378306707374783920199010109098489629075873541447850410053356916689712008272789728280533936649264302610307941485967769204481673809232729463067975500609691850926866159518284649751117742096782791321615197684414870579348722797996840085844329404080032639688895312130912882546814077543735818598184894450507307314777877339607336152370940914071103599096532992224592632095246991956327727184347678245923665200440348015576349029603758583786608847827751773726928642492695521543720581757865162178469250694927952569709840361412664771891068805945133322773408525257552604557037085857710736351264866454132886145916847219138619390452655635442730678738701052736298991593460976715693464654858202061663046096768347010384936659969965031803730591102220313071565930752982844373060219323953698062338111481761422965184199183810191335133709709193398578658013007546890781793054616779825031385907036695190661052706885263667964182844578076573018943716162809843369627751696251357301752320855626039116957144089743490386501438355408263880393185502902894490287555444141916759947710384499750097758806727780314871527220038429863934778206073816242863381246151805359944833731503747923438842540365053192065040661944071655780210320107818835399781251505230864601961586105044156384382215636139147921600417212857423605106431547496876642782991204258741329366659116729649333822598931458469630242764815946177635020431329893609111151188594916989225106264850240445377352335843455423877063386896020698943250731042194214479856185542681705411406765140086488452163385736345240434411355736137869753973818223577635732990175783690719991139484911853269802367386071899201701133621421265261872851528824766362395790482723349458393787715037892712822907447099096326404224859708479492382014687521100291150671978423780987713136757403269436182095589775679297354585570002928173494003687111479107485679107511384590334188971314193435370020492370708405273792391000174846763603292397642540995309225249841210767002871033393780985254844211989124171260039925980614212015375586270805247747695541175206907304291479523932277418998607434291335645419155702594787292704449635360238012840854268642754584341668622013040934100959022130092244912873452449734540787774040600390073123239609834103648245450750639695632400518210302946917820093539781944332478548094285779790024719353343660993831766625898872279601753215378064366963593972951125481324760598394140508445260239677876902566830580074746811627168231794357048726613492799726868877385188093643625465511957733556936470294166086810188496976820678326458864395364934026340702803123079091446605778758436416153795075656780240604127470039201064843148216207137179356336221374974692950466881155464146530509660791073414587061024231325255463701056547777301103185050086614598390686290134775939192579122679075500100395428492660257271430972094148516591555280370178875136744927769166745736801310204391363224491837591768341432361277206750559519720156566795122899736576894903437383078381815070703448777731675174618859776761134901608379410976443643621828030537695319227478556556206088713314981214764323966769480921538731479440804009774304955543554291395212079930714097228766924973609678516867212844718828345136835236226452189862327508183911046257234203875447716848760828782158008249181819040423771894063954300711819853865447826369631742563521096659040452235275961390770573305910986801847006150779840922154407492831409466940151519203030265345583071202668370507265261429822310358048000851264950247307711985581597469397520346068241818466257406448256030514167886934511061863492653225671898605063354431200295653155469761421318364142494492682957573716907784444755274742005597432603466697631757495922146723305483427533342090216919200280867133818151765134672724678560180872806985793062516391815900734019178126337720629437217584348434738567376454354936764452021055196413204190903475109089559010733926850768992818767336590183285996077004219611615319892308668841564928732239391933687758631957538828286880243222928574906283469880031800978211278346447369943068589274459351460331554052161323918049602851109420092006810860967113716990163112495777335628881475776751337975001021482842434971314482215556944824425129651731005282933000759688032026971471430557997272702402384556693200309336153400134638822651285849604943374136513620175909550076887257237908399677877104327832361821807928864451298570472294591887639017741016215492529443404466334553796035815259084482716504714210649494339056402967120395788936520858735686384856403823401247326470157568285626763148949096486370878037736537056228632422749199532968099537601176573560706688962334065473634628753017400138289335696564141976244273880653200559357195259929416191825008855942980493562562347576387675325026176810510294378948280038181909401633385362184824477857521114190200115722154891014126574623409409760478059024692915223769207021504308659984976907725846512005462308926730442308399098528361798087488216517501394768839219596197383521902537829218427400267994986835504779867088743493487788426349113577417379378963803266412166087864015102669353853929117586753982070454540099155480994055594771630227826822881996691199207772768569004256445342466159455191246984940917971312767081216355879737550546953960201992891686869013167822532699828311881176520517131424030310361907703448600685769071256829912292289041651418435412215189270926191182789072038647298902831244963716722622607947058907730151579237066505377355736785429749614128323981072567805447784550333802582299900614329006567458113138370620933451382728850951005894284364009347525826153481549343334392320278401906340610398822072400859571454785636314427709357818646870031383115060320239013819367383658231106319423511375220125930221646506772395367401083460724736060018732335957259674257792577875347464847438558336672633057975180627948174154553576632455621990677154365428762769211865397630554166772737118471255681953742987890612319779768238132231036099871107441163778245341555930694652870645143714518255481709386745886225997193200220125679477080345755340685593956471166039497550936890740914114081986740342973089775931954775849403202835925283686826560128537934159295817603428346619281327360098610986205325102030365438914766958145612587052851476579044833126326126127547596737061392946434465502398563499069044171681297793156045424478118151684323997331024904086120232035262599455138091994394242264420730669942230207875737211345397840918929527188365151157728433565072833963266727277365527127783510960648834916111659729647707283397881762071064236965358576000178613345742474716467547956055760431599211599617105310000789312031291659211814559773632128131008845996859651547991596733482069257258694465104840901607254303794793743992494817035408492948271673935387930918914910594027388257563442674029204361297196900355320278074601299701516776456616608662065098314906518399081340365789233077742757928881785397478425345621594851689925631541665380460861937576610115928271916265498459928441380917909345028944622269874606236912491022267635698462472987555305122807730603827231476727333923697147318274650823570649364585741650652752803365758850018679830223336153074856777018962152237772807866297099713846012456411393353523114439413631136412506303170575463867164921917781818872780499865142962369203289752132044164594823111651568070936018232574719615128398118245002857359411366899363002865197086434968015837737896070734050171102922190994235678759852991064219794252888071598268543897365101995698553713435634484449994806623871155983268000913912923052134531871093340605485288052802348009198195206408370146529805875340882775782419719096684509257273542291597339420966772162267503283801683670126832708771819744711341647404233364332417845575142917747955397326301847822378751103346784282157477199771872490788456928785591497880721527621677748783937259466769746628364636432463687008889116960306400801332122554403325990551075960130121782721673509087083036782806953561879824324975854315837024551103822295526928308768789724761517563450710932267048751958354389326726852062510652348642989681785128034625718673657734084030317254417206056261328930674428227072781896951304271369338673253083504352362268066472362036535955152200461086854195601500985180774249137520429031883739076881451106331945943196801603423831429470117790733995188051863224936330373742898766639557300491231154254744563575122821796031493192175536215597517354177149627057866660916604012942064133205601987988647919102808257237334409780655000467608465907721327762048534428873064107521635800858604283381726995542844073600686998025463466014465865058701796662801137504819512746475513441094129754440051736361505323319561402763360504371484993550097933965755693472835807893270151761668707167850521515782422118197723059610271802211376055775650822451073394062340440352245923246713297292472959059660765849167767975817545550062928970945807116984624833363185049505413603244603712252300284036644327050268292912129801325870485545184916693717561170693157529500261180729980457387032803344642240762456575309106117734268436397474238420782493396132435887851143322143968016013555066950049159500712952409714841832052405471308266600028940697737467479235778327956768661822183116453615298104323673965210990128616679765513048336670955819814573016095731952786889761794973866473112581368733198256266722915555934176225089278870215191552231720125761879462211681963125112601512878665933083997287020958944442548385781340346747529570984798348679100952939317706777959528293558693383892840178883126583401820741311305901231787549313260038647439218420243114250271793444984910953826980412133780639573064559498529120754794534337882186036781686916246401860176098950800575704000761361758372686927888940127937087916873132104176749274814698868386693374298945290009532262062343955709036500534702209683672069955991920696231039683488885524679068661710025052273563193162291648015338363440666933061191630652332220967717505076652650692894526710466359629139757041795199540763859269143529727392652585834922600128121059434154609049089666844835347947674018409169344082112143757599184497893588798119998837810439545058220926547815302419243428754966152987275206251242164565241443376998212057577397697925545297927554831102222749780411672329065059364070132683811693711786170936533611466179195889581638008585822727314639881250743188593062854047725219732552010331502112217952060290226150814842798716088771568304889462662811087516571931580348379138047560998119277925819381601346382056761579194768885811197794657373137141289694042585864260846135678036380959030494143601297651108699532755698212004415866804285135148594628009450268028278907836610313319398157005323577370982841962611754631277640017925566336886841014662578726448754017609336249244210556522277284327086563814525893989409528629944912638985150263996892528078971437305271170348287863254931135146856674374550263807933123389098758199744638354698288840886795836147857200410817819526727363079370197316110803551330754342631975832662312587344047184927537855550565974434764146717174934162313996684108407288369123992903681762489783384230492408691604933358572084952341574638999590255592984648416853092093223945009984260935365071296103829391417838405967360131769014219229446882477034330998038266333091076135795356703162032015652994263383638991703155296710115717138660538111098764980914225322121188549785837545267354359706691190758277342716570831105588157820265771905571655522991722592519941711820712747163522022416693262720429458500760267515572236450025357983895144030656708768964025198436204767366947624721322207648935318529813483056615726100467461609021782036809278980358443462833161529680014429438343481325149444783646997109430062787175190158305497526824970668196708424004153293142670724391091926901660270122754997262590066958906364102019680315052141840001461281315143170462928936126045139925563659908703511182217009204878683413815583686000102213931716293817516148142204543976612832848954879245148920391534687356412779380282294561882647003672613810072922278924383414328912195761584682588953224449126237210430995921748569360039307287559776435927825721958517328920328937364969565481001520940677075843319610801919152697035944972820542409921774794885510189257967383219073395543848219021391354610395728756414700979620480167903182327112961691883705586529423202821196777521103042782428532307576585752550180387277231195154073084300710042092231837895251060951014674480230778414332965396911748552637492501813651670165981316934196951682096386488092193002764928908785590657822322196440044244384550344447150271472756615326049843799649104637329877730946655241608174552773118840166081692169472356154594563984247435131073562115161225469673113375472032106663905739594545835788981118617832426123825838762948366419784369345594147388745695455510687953389411349879899059954332882565199318448923391198910242207273250330478044348248263167953831881234536432034397694106763420507402776209925044162859873800854206330940449084087462950118043876819956368097741251214782564145810960546394548353831212074113396709657576117092170156919404670300527883385011960688128543691425910512642937976359638044261446693690374144702409870790060928659145662774737070541847001412606663677725697066185399828183951838693514737030217082914386683491895573957114688224894383476801514731784208843090801465885876918771216564120483834695079910607882425853596296891164799513974190272537850463197216075753299247670201361948799107363098561524347027748328740870746213978975092298947562875731149123181919277777555684302137964362495009385085575130624494616128315806308498594205880457870407878551528971936045628264480468720456617288093146516702875228320465704749684580211198177629707409115942079149302378185841312320755823659980926525352423475698678428971031219337805960489698219075025130443122699831515645095797914381524955732103585350796626064334473398120774844698645352134394299139578401188145901672609468883885592348705503210140467295362906770080220595087382918085265511775631867359546374591584536339139380178892601912605510345935075796753398399082986482242321316517801147047953340095408680342079569541641311313550566611792435082263851486519280295837109462616696734295288820969592714431338276132100762149785566345369759884637652081064039283865914358829710499072424146118996711710346786630616969050373154315338504144144443857751928121208210251952609025698571278291938140301420620261068335039849945835622115915578356079576351529961060405154827333661767738340649685644925242332798264200981421894329173443574786681031630253844207655672219010059280730909007858044919184500382956029191538344890796446157112001822217342752150584642775137451467788523498681830251369238269629517702177269252870094403594057793411291506144947525882363904148618573414183329022012968783615917652399063989099157115955935567645903307681641441984512994186091071552617321947029535925682083110895481748873289159476087459481709888831019006508820422218668822910632737036085447107471080489254733089705230753833338415110897307630203273590578988048210780693086380536188557964576105762301884463372446961159796969993247663508404660592034432171442571277392303411504250570863049572511987677019386637092064561089793815422439773833602862228823647975876174148827770096248951018239771412569302220063135925192248893819373619055403561577008465329752655550304993852573128540382461495987932705655853196932478352187628282774827369394806596156489192534771984055387480442766909259685595602072789830026115520927791042822663101045418886527035316674729290708564254417222330910516356088208610990482062786970103694865589164539921911834540228033104218274841059056715058609153666923256340298863351846443295200776864308741967528093764326432667222311221655688367982646178477379962403004915780306020420261561550694274470775141569961269799188911202001852025753172473166734276301624857810328892558895728653096703227553058365533462514618969957762925211453212110173905650388694972767360938361076016160014032274609601944499959497956058450553246586726815516140992588355962738520707763715297681091064834798071614408727780878972653512490406248166047219772830382787489346632451728611925481994648363841493204896286959830606873356696369058936571003607537183228090046500333254945189545304990432212018851636421767335338049369889835107924273882340111678220436927326789717628905290072279391349130073362136046000471688916628348291645159557537853927061452696511502826866182775895989812266160788175172426701279400382972458090886398058120068469191247304796243335028204994290629868937973461703354981969554593943497347119475737975707560983410318049692165106000970189047905937597361811310649776915452355792944992785046532657926073080767134576586502963519300932386210722533876889237571221047783554618750318007472679810532617285557608628207870615185810860772330218683679671617300793985576003899692837865558302199811983269753707342390390255170953790998177745137354355241077830113771510690835493572449652016388569639382833115088283618501120351219263590546208740091342003290886788457335861032276265480855561382708997750055390733888654381340746798232858362200774302398079124246350949366234744763789945450204946586510514822441848714069247339350462416558573448174399281913823090572108488223592620599568899669148376919321848755288233104568842697180790689720641201125894839641595315591051404000613486368980330041007791371873622903180977508095685924404343654216992957251728419059444327413373395429630322378307319151530070854226444533188657734075277330930081530175651038759856113266496742777940412552645447026661690928363144064666644590242498689709304246137531807473765544945722189625543114736683336654861126194904517302935755676719828412957448058579147102382637354425270741547274675920675380133547184243405866289276239058703150369106957879221561952966173594259669608781940057004485197614980801131357968652929925730726608051316313843375086620182670502661617051748969580745413930536605642897837358310742082571815762564225739488558654194245533327083602167996047708319577234899461303298867240137381561814641741993358288812585185100357345238069008410885167038482259757335845375982433227337124263747907173826587243538321759054841403916134907641222585421374124928450234435778275629309240482921788325918215868391563757819933607813287982324644119532661547668733796742182821495911164148220320691807326874966564762201709783587922791005890089452871529473825093450713957590665636918587361998166800330330883594270454769129563867551664135368546646838728194152449323803213542277056127363776863300154655331217770306109944917816287594149662082174961689145814094010051884137368317977586916111737699818334754819334364389723046683161989409131934437671283300584626814866054607388829484035387397553190231613588903338033066737896418147019279902719767461014687467886922720310232163760367874519869140025879108002535450389491651185177187938996083144651640533089528087593621528336395348210287889193488981684712123644183483644692958782632711217167586681715307503860157496777451051880957913262792314446234496165421048343427391666651103544400513462139155304651500626073964902044466520241453464643518702267238191531198988068850131076796655350041038325418372868887650910198616470041873068301452406472612757902605869355945174103655603045705613822115331670199033035807239072923106121834616879909510815564090362602377793060125127036578182863698145726670498754887007507754589634676019838447558494046947841205782241045799013303911220063754143728009954837944907943869565552839543563007214516732568488366956564042161507114229360244900783628082572460079304945286859888197827807645173161751341605220871727964712829347318818148557535215042532655805446924131028208124974639019013010620842404740269733793931084838337858182508026721904912542394494086555869855708992835325574725204408931833572694104579463866349582424015299966961629576094705809269269183385364189579179843725193468885150103519313123300697356788320164160960937559978190513427884689504438139235894900130757067510738217884996947463610424565818054231358136513432504058116783502677030101841741398867614634767141417854256574913205124820122690689635796027016321289165910400738323087798646224990261039165192404179847929612901441884898578212523500219538250514043447739605546759338317414094099410265409760523700669826143402074950211368732716441124673456486378643719309322933392854697385748435057378149936226690531373175839437543240376419791005028448524774758652852159428694638607929722462280542864421029482597815512365148839285420105043384907013376790449582065461237314170172691998405028691005327774349574637527863131774003094652619616936552669137863413285781168634698644596882463743753620620324329767649513949781544774901170686073413798752474496658297790072809895000353295008103546155816161365305406778262940369556810481939522562420423290431303534381273188422921121849733848808029348918592960621991808985255875889504556407491750405448170133507138970203664351170303417784556628617157261830875759864052978825838969374616183436375651122068492743861068854409311767787660439578688484648034607154319538920918763014542862851921229319939209529603013558355495291958565242609225300859675636717790170084457139114431384310059157681675094581097104696600092625026990015096991869959466590247284103548378823322216720817938074201190433940477425920741931877374968046193309055548928929770822295763200540037271738836494743120898543392350210927915802957370122260708274608641174781364120788430294826006552814565032677027357222474210832190140844993769716739896642085714845597399302025520137522791961684768818728745815443237906112429822004833415967961258481205249381201923489000991212920168330895984108718855848677116453653218245365546996318020032677679992468368277154296439045093330173330201621781928636615717115994056708951389834533996186393970638594528210694906634075061042709130986167300015909615767302501668288426152732375026632084486392149052178070542762641598751393940233088093413195044269065352613033984962843984142833279616914133550276722016089926390267425875620953919360120504649286172177776065596275374216822214679095880056741434725158601217856786612839687866654440983738846615459461313896139435544845543403887339929852878363427481025375249206115264583062354172885502320286227824820725848444055087551327061675270150982618563660013232534817716580290368181800999510900807191530263851058480925832469454898972399654641232164009214268191900709396222118646033241214911916683625944407696235588414392780575364392053070584657431629103517855282588177964202147774815683823425565001999070753042954765390211156096939228041016247490735331709945916374292041545888825153339539458061047439332662015578320737680562791245123903987255079370676631510831805307195747939237025002546536397109416979212944308885232042642105170758802232700591173698649081479993613474727760359052269770401216857661874999802206760931748305734484130860138844731486970500646809194025697107683631555324255168354528006544892938735735676494860168285975410956522720384873512124450311531627712171058369656500961872931803369917020010352646853492507432847597453672047420570359451337511043839592098190427021307771306448768789544430143070667201582190702800349586351509928245767041034955974656959433710946041168074029836103035892402375353327906084326431386805943029160548874815762032286270092767688495736387544338460873690962837101147652836969678836106497175524992320540980982995467425791773337383322086774867955370269450421951155972443507423408091337738806591337525835458003783563356142958996222086388689503006323799465918286945177527550524141149302644977925146317119513290169466788685738714307615115060231558641916899576429811727905964272072944981502475187258378612109015187434019881006991818994823833638377679739239371758027302035314343810327700447415853220274776590939283625419883553120717605484234353392636007477422111061447562265816389058030615122945790205781255482017320716626636056866082223851625813504837094721175316343702397576598089060830312969737599634710545777869091675426959634625115527674538843114668858873050400734446043264800500295051494086449828312927743991599540068782360695029824012812837075073679223892835953394483457975805977428442212859654761078573322955724409943083536749439233828848662203154265534449456042400957370053193811155583027717533284257974453242605347223240517097653988473357855706242020075429409966387470386054390385814845871487804606083865089453322289030505677297582953736175107965791881244183290792732785164859667841672476465482633761893388230500296856063172150643520671310679318116663216306271781347806972050406296173286995006355833913682910205784703573531824084753682056449486529971734105035355734619350359250373305946704092946884688293700272687389888500939502866553466106117725815072042695831982702412951176529798387426625355572852775548023218639119849038441045154404186627727437787826483852943914570910332252329465880267711928339771679388196723121278115173792078368490115200282373759593656173505895324967911388162142759582102190309109349165551014527749896717584164167932121597508498691588548922085616117832286595755906462546473816499766521939503929506276876641351969037146198899116876531046803438246604630793901970568187998493815306484251358313885935892320896594200836592423084627586015272979689454759600701019360519138736967058659017380108090554371675063659543517465355230083569535848062358313786250990073398329546239584735330530344554189935384180294397330349204665142435194859864134893436102080910297208881888776972772892840431743383182176156684154993366331264404902404101529718726530125352514780497544647265911394423091253289207909721358309817779828178149441225688698204166764613953412976526402629672122539180030166281242295198050064750161462851249543965705117789948627961394484093361754571581899755603703080278537943032505013639504733197373662941121564817007508560444806315137063552584291766186712229301990646303053060461487004505358926862382503170497298987957729334235461988049633391377727018145500914967033623084124385409983843705812481020257565506479983551304123987965489691888509216160317664927602140803755057076389894605923933023407565505713052913670577253166875124908920627388438457578135027547891135670714351527289621724023236911075659954418027188436980738649851301547954814726934882726750189151082358637398170132799092918179506454698925152564367720486441769353820704407216185336871092957019213698206551769205679903021627162051936528039387593925174101543365098303255246030127780871882556831611332118009671295095040609324962552761006924175489740127732702522171390539159501556610364978777696810105776455952170042828369560295935006704456505158319330730176565696852999526101660391068654998927129732994023656477573303600630814799137457407399241132359171231362573147321157416109819932467981175650051598274043546299608667739171770734822104143513462023454956722593190917867911538700690403075685062935057087822947167091562009083097045556888624047504799651681090422230823888932091467491286383460594082803337865913190839401068297948614759098801655365202987250982404071967376656623490667681246689477946371129675755192321066434374087000103699485459852810352154720460368442291051996701478786783092671391425223481619622903832668392866058225121737480311378697356044740440702595281983952320379832900446659804139384125474288052111427038713915639198984117716083093382952729758762224144768885209886646123735001084211985268628863430500061416333460071298272047432612534719521191181261259302621870992544122272708181294606068788878773286196175337066278803708702225816653309932801611476704801300656985277195872945727068477480553038181034705425033002101575513297886481119112961690725241550028773214890481294508686553047865675878399093809083316058800040584722985626630205885390311937773434813130492463664681597558360869635025378607307802830800278221805811888970197815268729172999732456356696472338798964264318906236646739877834932824871376125310611133063009979427044221966611241037772994635881040697659542601520633737419951055580393999940135632763889366911620579513145257271126624363342299010025468909376504783904229550509425987150075796909539050867255172618486366427715536048125574443141981545770075853524151532648888046140069038186870720758768482428594020249256414954686806546302981571128528533429523631233727914858367581998107460855878037498792246248755168744870677295966267098874042455648297293968713584561231279164713207880628770856694194651301912053305603207887778964415157744239537979328378393987370158610435981621142318207370319090161718610984976713183378437392062889634230870930229812646226271963279590782256397614730961574199763177350921051269614570498995837792180709986587288248339848096474045561379674574117636005531043736349156010135035371099068591676571911396349388827775146604537547940369177020641427153561437370550083773148721079898081076746001048960870769357221901097398979036348151211374564087776279963933824382434172923718991973216492646552227929357448124746059082662156669183767005326672171321166995582657859002755334331621409878952449240672038083040340682833154895826419071214271357872650235403395214114943971181603401886673248315551678673532823759983821995725206437039189017853576583504764502961234927739165178947544010974963304649229380830988972732551846723084602175292928837788077693739066944888295327382304801918242361174085425331191479315489695923611621736134896097755462576021714450522838847199600916030637103211123680283836687262911332291167007078303195604887154372005742944927755868049321233193709499829889796702321529934376982796377731068152799197381897398356207055973264887223610330114020128877287553344159740418549323963886280943310549281557905194895976214984358081727759600689573910635311125695474405832652782947770923397998719338294627055384485418603344623830936417199796855445582006746937753506616079081862174059847504553718335805443450895671672324800062814715429944590044116572713040427806479247877278194760758849654314586752247208151517914497339350823809954943346349264600722191989629584507965107201006026355339554961294538941133761887015052381806249149447072731948449380860888612812929141395183760369787080165260994517750789963243819675331688213889503564993089194313998226479938053628713514026265603471668781413273559148207649192267343920144588396452043295290160192012145295133555660782743723797114816741820594114970582807162299150977870424906811386758525087683858754117933870769963567398660581231156228610656020457995681876747207878384448366999778634611380684949584137777644661515675269750886549080878147814682093764805638698815206934533941361020369987982555460536440679543281486309876482626769420117065539964191523733451253218217721713783416348784730842683063904144603770307901102796197451354919703166816531463270393631864517019745865362139001810304778978646453768022195298974361903514467632401189134382764067852863681723516016048451928457630535341850418173694084188559428540943640694874728934994983870084633998388396548287149594406039197884687045244387290851137329489284323364222328313829975035242542714781942983912078950109116469092391599626029367376108863195254779020683941919258205936120428460560211951201689315845293577670479620952335819827170656237190853353728348475345257983985473034608374475307962960247777323402269760685388217684170801683037946305168322344515675522291705153451434268191100263283531937375758868555799247824623257481124944019999127402744292576147518968146226426598809950987919344509949223724929337866146551446061739502714322799329784875844833192936446958721672825372378868445715396605664153107119516420921713416931594157237862305629475127637672308197152560576023482678438401561642499878364032127166453302057866991914230085918793237640288728646560971461128945796348558603137945140181145740532564853505595250143273796790417881696948139116434789090156741607874624447677249641634074641440163324584803632113878673713747153793589620012688079639424932106281795881211964712472407864461780363403945933549379824279289921143970402642130502468480320192445988200508187751649026450927003334648383238174928443907381453486218104058584370774226386717866008055947973911132887091774866345367748560957716035092323754030306846788179821042147431437251131292744417409768337743735930817107876615319939906523610842489789540733167518772296274308430005998149326944719566656561496953646158434861242940872164627704045223627058913574711936528850048081721093652891550329827986745123017952017472059149747051638019660899290534212792607354826517966215744144449407238917175962801967234352284014966808465587026445254123316527457845885459014528197037211850280100897125755289168670592339432471368130205258003730044518921545543969798677260260636658171793422330143297948397510697424326081747792932923945546614003070780879704241161231109281301000147460952910720411470588935709026552837315728566999511197694029860626405273606221725601059858356671150332505759490677756268278407429255231355553306435257814663006975712155276875517556949990729215467380369080963561465548692200874846597273843755791136455409943925348318961229052598779021666730263807510100889308520784143290351592816069443385360822273066083089011316985903028065402316288623207329175328419453218759420590971924746180746084635158055392177777868581771318090068527175818175714261954674019458220953331935809364741112659953412727194685267816529461021247856238627448444737933851937744896625300997623375223159202548655606059371034743854178123958228710460022069533242924448249954456349870028630245979688022143360334674530438453935141724089518115089469420161972507517099076810613951366924121132974859959234626628857187868975187315038277786195214626931828432431212223058701680442695101127322986381095813869224281175272739524627277677550218088202160275199965923813659349375883948502465540657961765424972457001339922919711227382008592084594519504851388557151519149454935176963253019285694447221938875087258369391291467580957580794853627361733713443908466921488649398267477599526008825882166419426261930169106282343736847390670090918127654391970270638686350634077109177721694570871519914957368092196265202431740674473983178214889473549312450930013691914503268104202652109276794525466141309794091645381541736647986133666333411809077667520893884947895584972187893422144393747162957992162480973056160260313608566104400335912303847858023074128019965748752804184294080421467142804924648647161553473448007398498817718109434738370122722255290912612659123218771021093588613696037104714101811738997084588382647201604747576924303388228800401345584042831775645276152409974693696915235453467895038985352503631912009806960335426751127303955927631156522108122376250017874104540683202113766826747203884185298680355310987878389756272006764239541763764809709228831290771947571867141364659865282413046126148340618227600083507050171557826566075233122289051425222406958985709407873097265364379319359460760764483446173664191040111595685475790175578476594027618386314558964660890168142081224726511342392558573654392782609735653692242012944026618218869541722470069593504549097094205186690067616894653370813682231667783680737787327567666807531583591119641853753173441807006055068019964919731909982861822483948859034917234508052879998170413703140012384403349691052261155534274320810135874382916809310606105958816179772907479565647173636615435704699231313195632641909713430059340473311519042481889578417709481443331292428232587255578397326851252662636595018850743168243773216309791595371237421125195146378313039912211639846478976699300453660355438141528650759306648580486412327740839414024153028284263149821965539558680277687824662529678958875202465843930995817818289365102223399205582701359336802061113917225681209094083943901829171886425220853728890253458798437064337439871499862394085523984175543072295821225098306026344490547744321484674712675134893958845445506364628929565456346725459577499346296416622460108476755758049648606386668947345574606933683156032858461119802722558189095109925303556204257474067622438127204401294134723034984700076147010007299227136436100782181493746074011626932541902971780159844871448319519304166471924401528090463102537531067589659389122078201806553835903107041873856399826737439932893359790576163032435614774039992603489613797895632975351624965642764637394454062192376080785913663288382002929382210082217956160777236708721156287796601675156293171475955928539155397685791609441389851241768339551572022492516812751988474093987044138616795488612242446032873545326245504454679775762180061693052218876481013796400017590831245297304455706638894649090676530713584803080634724822395987268745922914274049603722817245403064799429003219938885094837636220823075112028994237605985157458311842831765123476876119827576932416080385291733639593022192451721568744554497449103619263951696374716401734611855126612169579151392312015316380309277489557653174966440476789275216048173396331008523902516396633766260793429119204112250653726177875596479001374597798623233539688779457687177997960218095529158123318853839983136140646533460953568948824481483376987078537718244786661980500908509379050218635328207487658087666340703800267700139587635566175858874609561515078786443748942595556453487490499752883185890580315526596153987559851994507421366971823198222799070383716564490752653776784161302044697675318102572904963598102429634334075869305353250388282970080644826307786015067042640210117928398023727916915385859933399460902056909429133097898158039967316913747119170854441502062116128457928597247153512735490838801808601937176318737472098278868355961126232175875140736037115876133894374239074706063102060739554599253230822404385064509373664216874047119072234962812589145762693141785830853457868093582575967751581102014255671019165013428660688914617898659133819168962548761005271755379246977949598300151588209560643594479568726524714783000210508007659190506913687106602757393681962387463696036535618044879233671196361096443590367780386975698700066128600908972763784170681011023878327509556049863437825040729398711012419062681184758871778219575668716391096285613114851310262988018445483983563346369858961601638832451643833773992517561538214192538309284727574179353157974060772489854342438438245355877388064368436434962046220856817708429698234402047119136181368221567731203353161945410545298915549684475400595892053057027081236264377096347119504281136338780474294140106627187176646143400995420670355613336273253448831942522352664609751787167622528333281713424199112922596165413918546758746978960629104560960760869857851640050788361893312892630359673135798811322815470134970321372910569118863527433798746400098719084919810817758424896377131490061087102550736364479908230863220851692910781105822458070098009379303459424803490695549739993764147143292485181574852938571142292149809031778628090584719380515643896723150913789153034847192599958028005079997989768263164180670999083299620957579935579167406966445115054925999483414989795135437644361507387849597023731199324052676472451739825933648791552161619866553880411650567163737374087247037543793903661769519295729546061317761846064750293180187565555503390488255014671129752492960425004469365785497078804890437734786099942612121224691200346572833706086840769917324610697894910664654319506888958520697191426844146713025679690991790816184334395382157635932317359006047601837402827138791231193066521735638255297444185546158376187321568157553594310256684655923832024758835925595156630144833873346802877254115172365180643918454260329006228278003793850868686188460059083710586916494443454565066868331714465469448942349195852048187817858186418665262824511578600700034677796781152810887347307034073809162120623103790706858265263880509896005945715119097798781546198568394022454274371976904824828976886804026243257850407846044648404184535100517018786923619844449612215206290669204913751608729773225419991042818097226240319857219147396750139380296713390537414189131182614878343796938783470719135669128056336016756530683171634021194618120218899847823495815416668240757731976573190032956874158014912822329360992880785532892420528760506201182625119706636279508065975742132626987934092692642888469556595750596232513098453603153230644579255566605573954973491897520788476440195221509337741826110587802776630657532333924041579390120005333074668977049071895535818451067339986761468642176047313407455962664376967689219267908867637870975745856207795103855683781073730486014348324901482925766975098932782717975508731359853653730686601696816513238983215728226617476770978226904675905049465913741386336738639549341760191080938433352488467709654868104070986405750083477919032671162991441576455886397827600040384828742842443861493546515886715731271921762048173857757832194101564681233308274288950519349957729656901780312582712859870819818020018642640529408637594041388185472087488790743835758010221570537512107870535602931211703151602430963131902654075354782687825123052097392092658746103909275330038685505582093918994669470872712894659537011377287835155430845076604187125435510067862704137482915833957450060195340036021564362438881831892340026390924485926815055033472619423899874976692696000120965537578239062105700591978420770505731047856838006931547908520175594417315597347091836581043427091634094224060682571255585501172963104200985667015073854138762860834844109039799490063107686525962628774696949770716328882687828765005727600603993952748683700681151684195423794811440630481162674691432741302191820276372248888866810750918277659893393885687663824914183117800195444084219627070250670833852356365142016292855555970048672825902320987666513355438224769937810979737672240453920162650062559719056002199117493702662636717577719226650714596507252286346418434323171075510855804666217200930802825159436275318302935346278844133152752351594876559887995046170338856095054884305286737286173769996197529663476443792334066140274083722996951510312621131088948995460588905459764060744920276424449342417666313459705955848355249221445267177909721367610794378016308180679199951121423842304886578459372274506778692420555460958393855128817276236761159778217722196789875001301358757350873928790139894027498981343072068437980754584511692459969952372233191619371045058243833104059024950010904180340197077884592138733469393704088242267353424084030024067032946226993995473026833974047436154180927495284009114363678909453527042118687516903973635367951735480552415434804208440853721478355844254783013658611062402218146142924178574076799508197070611795756127606788754413161027026343821720009740730158344216978998138293949416967316934122811432163603049679274613247557915557969402137401412101494166963982452659604063492820645350464763675265001412607488918771742814744030991232704805398789204395876358143955816503170625854907078558585247659698094437772943085908679342481083500866990359292098395114572163532597777036011129571411236488016786586259699346054394980334033708571506370972146606360353792241828319825770046092359480007603647620982048017015967988161174930685991710171368583257142063944662881146946123488022028274665524407979362085232558179666018227016554929919141776451647431129448442602487781478409672150910808239857149545255879757274662510277729255190487290751796470524928818033615454052644380943245238825091022409370569515607954465230238674297272721111523377627644440776562544438331250172414578536718858657399631224181327651514676701406850787332925883997907216233695381942832166042030104179994619404025963881925685065359815852518209832502937546885565055533977562652445147847298695570796867605584726387835882446894472600635742779711502318405949059747631007798430459506571752665210241246578268880009943747311412875854650420236279463485829338049547758470233337787503043049092959451644581399712860323341348581526161789503031017648512903182781551072044616008934673100966253658237673368000816336515813168780819116985299641307152298089926851411881878401835775431710370497487607761587561419320077687451406856009348023898390894845660946915572963531308441873754716066400696433210327170835276144803053913497222203519476885434709404097050376633765763549501615092242429857701617895118827724370753979020310031399436317825013009178738423672220723593036078578096900768339959803816693350007481986001412908850692889696635149670912210555284013929884518337747244442804550130685078335842132240909023183112937309893263224509968084903600924287929173084369688408666907818840812509051401974124025843605812537519492798710532516981340641771380661380117193494478611233079937205839995199869238264477952843846598190424271918660981408426499157746058205263484658647446181594245306607911404908596600872160507442825865427311540597867705964990595159312949083760920247678150808879147302364187228922196644043390395395999381489642669022394088598287035971042776153065200186457889045850067849172792388542153028924745696893457404202830329265521776037609522652754348686338717261615421275480184163072227968865970299063635792994778873978197634395837425395020588545304498756288732523815433715433283372579001894720828519820697346145488541118622190112069898499585929071219059387499150066228027081394790538092328039957683585680348289853702628882548998543588469514688053188175440985077562809243821181791362720550609427419404356531708785619547111006489092905050442576861317703067553925332322054338859533362080300806211134084566507369509673647710526308149037568836023555707825510124247058618487671937304302464034509994963373705507621763253948180925704599463379323379637367036393030264619036219486165542950215451427369006302908360164689918584264311936458743638163947906271225307500609318770694729948526502778488467870332300739109482109419448219563706466818339754840137177488484584509024651959458307752108442458327710439385345290027326669556817399204147698680146028165307210992285249035578237503360757698120301173632024289765228329259111555675497741153798752139325047753087007747424387247210216427850628387163803261943237613560986936969237450051080535913307759833147723018751752934075582215826597470889069839584815965211756789245816503566688335450379788406236977268040720112155415819678417500591907469346485459657820948043704575829006909626242630413028207404839224464228505254583156348487040732015949938241050244004109677570683989228912567495690033024761099880584753666056745904171737415972506569201195823321489155840908233061654823793435902032728934659612878684552969174113406322661407381216586023372345917390591570158073007174200231143248974502010431861172865466955768348903433131847862732929803160322407309556113290476746009671778198731316600479919561011843289348693551484344966509587370851794700194457039656716073371752480592606726448161001872755180711312575273270478548035377198071239226320322969200091235473531544733933837805299484477600858247588640654354884252744910374108677024902432377615594800097569216580901686365383509260928868235259127505342745624494215729250729539149467890887964172376971836175561556454145381931878387995929677541104602034801724033140587641225808722220436063140490615798832761911472898002566335265033391746122368431299301829037454796161352320408146176362410862469054994992389033616031457712780475870724998140946663406198123086396602450554056833110527919491172277212606136441696919556437921236411830788679866587562507445265868556818414699018451613848894967740330295507740705262079572520205221242507031661529560743563531432750029418678546782720093516743220489401651368783038220535168959537497586933080707271892356443567583317004611078381819522558143702121067524633687832076745111963374795519128939138625977645164918624733716977720941085152139953362567560560367886882586549586122093268291393150617024195410858774463906079666948859700420345740546119420970785407422782843557953905665929420080807821081815349747884417949658386185049950095229679950404191888109867644522504129401746103335549859076924175925701506687062770409014751834151854582782442168383831825250869734398854883503199405955070543475996412272843544640125849467943458695569459470986821921765116348782457813722422400920193442703479821250481492858526922346714373200796670761522973844520662160578325726478661429241744561667057331450700503406501738304247105358027932984401820354994633424085445732702649924708635480216702435233490530527193036061995995957784662929164172760713595038243914527851218457131160073407299161287438673026144795490979101613892245091907480499692768591200228344312533648540100634349730472257208362753759543811112370571968613385115333839868255350699757820042714949293594817995662225406269004232947138869471243516182102123324131217532476995517228110351789791401377535387292713686175638390497070454003122118804608965266478825491654799223921628059081531543471130375001983061550611803922185611126408935156347285889070922882940196520281644693895603964130191018086371003374882414864680329428768719914277407068747777157804817648352910051573181056789241314418943892322687067606514776206930431147723058559583390601139896053413463829302573583242655855024448765262122602293980652561777901591531988052226928460264145791787916624734165778160289300448083847866199842536443499638123930151058681418647655729483527373673902458204399340741195374948177657079856724785778030676491736413423225109550094270327905308881768269175643058816279374639217917404440541362086187026808459454984870833721486237812145854930725797415499846205641780679204490787309913811770558801191396878298865936070270236954081970715039151449855412913987699566817856565335626977520758158191595759463037734768265890731337016161319078671097572573610531809634288694633880283771724817353054825233413973596340967462860224748843917719298449138075035988139521257226497019484769602327352468643931018633388151139342473834263485260358067270229626643506717060268043913215713929538204531099775720008810593436156041159524499264786569670282163228712556353422731991505046988511010564664413505873739096724565103184628584039448190119015480344412859102377874992174496980146258689520281324463495933854976722739299982978307597248212444305188038319132026344092623052099897559506809713871249065773086292197662552673211828257593398801017786605901178059770305269188624332347623464396384247899577928476429758050456649169049941913360575923596780379562440215863052249329836527166388097728660373861595082224198976332317637073146651963133506707996302772579877225391242138624578678749165475265816816150912921022318571775316476072022797630181544973841836160073551975965387085959753959032462906029093775411765510633468307573650651907805251169538273558309680357074839108954781343790592414397652176811155110039779587967196131994727764152130035624824392389278376596871845484602321864715044699950175357675231490660530668211077635784053519178967331779856314521308363302462061622556960418507079325604596531841521746854264077397477182040995200761452300322608981764834536773402188673980083718706377930026750587239981215643837859949480948223056484522156705245076336895650722404138463323018577686142041155619239469224850692566990364501150976786733947889326066598156554942258859364756337478020955381173179891688047353782263734688123659272041575810441365379873138441407549360573104507650554522816516598256441712111224778008406730482881668438756166508582633017204979177622941783582755202059209293751671094623562713124622038998962293278310877337205720515030686018712557154972791878611906704335690507451546236165999956276482631187669913193111293782208957566405537537149184335356560477969600753756150101143035465447621143135472539915308504918508835421799210989234671010775545906915682169219957911639896513551485324883339750294971424983298164229797425330986727823398505707075827798267755173856314342678324026716110518894818385047943730726884880261937813074062084497845286413558584082267985348536473146792778038448316271459496664877246278180326073812808648539252857245891559681179999202140140480653427963774451872056433693326331881803736547114562832564506516563100461903293468317705924516764241863691818400281288993225340458910690662560104527369865446472825454019351023332568443703317978556019379061451847088137302813877812153798025893451173912549256534319043307742551012967282350719347483724308032686663585540288837953541235926333347689626597481793565542059996218490310675674030841672663346247274059428112120677721976931630137875245937660734420417290833412190879872725663063428685805693590479279037640279662744267124828205658102416086813554942164066235116384604662209817300921350136225525158791823056210454186099672748476544560650255231774425801378610829881327969050005485893019026542926548553081350353684252764795195785697494947051009716090926608826437850705507313822222718620248813610800118220737419012147559120242655806580002264930689613957503485662245634553540852548124844702562623481790973514405281754492866835636577691851264734417236824763707038973912248419977126973342926611953710958844999163789833125177598687427290815009336166962415535076182939291733807204452224186494228461678177740461420806885972392634722183337682246283460402863443711232179802177041635820116796152178043674091189106279815403845274097594887260578789611507463025524041481366501378333002794240997252400800930253101802786319010558281661574111217183569931867144844795362251270480523412545903999173012339992922673964989552477216384622061738764413198415995328904404051640199837897863239576994563925957084247974033603068885851815661860794075621433200237224395458602102017888616254134283707361080949333052428422599803815192146999840303475758902214811243337777346175849275430836810483497258364097674442177310285324768390956294505320519418613698903521250163650338926428524269311620299291036028649413150608565838475958177978323752328740645555437478686836396165007932215806679273427402474151560055838154135823221546918444973794056450094791488110055750203055041227244807115122295595065250607827588723026802120514180066707431816555973584204361342258549280094030044094165758039819432888816175076166426358829249006756700434667401800518518358812743786696894369865436688434023588449431389118804825962313459158675486000462043323424748744474494014782690390212683876264963867904747127753955354699237739886717194842463586357520094053423813399906119716062204512903354796630031594542513698088110891094011134673824380989409521536606963578610363163213376201738170848003732465032370050846585055600596693099998948523391761745647281006237468291100214707062532445470337824161912633941960116004301925107260922644674790944380090199167173534847928606849064567260047537750890125512469845857307330184572330012895825987073197921021608746910544843041713601115111356318281414666890683128044553091546900067290421002070701583102551196522932573014100820358927914728555324554139346588294176813079657358795231736914802862768366575655904904946300005934482401541523492711964736938168356597255814188952732788953923432116864299795921695965130742817647347362354772151188547186699785357707114319051886079268480999877763950885740089906857064964146228587523587279974493875664545671600269053947086316155139242885757812936799398351748355261033905945431253903512895742153867774449638464006704084152908863454475098120715064572581171035423051653538450504518386014877224762849968286225294028277091245950090612893836777325233756739325945279011350287108510477753410110262257823672614852110617597905614556682587287102141497323622088370910976190883294295675001222765911195147847572131948729162425078423506332851676045179588018786648916185269345068459432095411174723326037841819358203924185037051649878132410393074884039242227022483384371853634360533337730229456750412093677067977898934544273498213214499883836566737095121881322913047643889806705017384308113577608625390525557603506207041315889077820011366844999223480070483070333956556971704669442487886324684091276018170206137952151258456641179593343544063103351859134495723259367564547684030071400138562081660791630040076256156687327818177651784329374433645317000760410954918456787005943845553488168176844331172230538090916375706962894197967514327228764263318915508604238217543028807883655870850654509686925191057357914563685038546460265341575077791018985552612916200253181951955849415325131849783949859989935390082675806066356331381324010734516965264832534436493810037208041661769168716164442757461147372149218554603431318184517241168483211866319624233286552158885443373892366247795295195447972293558192195331227651139457648639605222764304035727787288596717363399200622646692735769214239533729173843739241613504972253581065941791921917893335540837048849955909871226940571826957658602361729883504210482776895475868777353615346904919758986076064702565475048605352100549139104889825661809073779837337249511518627073736136689983232857487408209001521945533334111084427388832474524568180541180992795812416190053788809226041184924763559953638524020070910844905404246622870489353326682699462912149648780108791483407296653013223653303011900623594623082303632781949766423405898317402254309657311701805471115702135628252893301120590307818548335135357903182409031875051960535600947318850066069174378606704656147034034795182738005282758965504200276402167341920519576567123117366419753170002776711012495366732167143189746155484193230168383961159857734756261336509556783655357391120778557456830420097966862002589428682250045915418242358931541436850217093941803132907088995685318068774530212723575643929353536045784458023981010535281311548371894601915368974886549785287161521853637100964893902232064437962855745655496208729841832171344203830752840642005094377746129125250896064309259812860246489884224923348607475996437257410065832349231576843180785246022543334950547482773472633558673970258767509349767215616266314404375954073356487037713464962833419307129474269294538385465970021636295074800165138939798027269455868539114956147862078812593769859980757337173500029854815280256020331879335354130587389744122891152117726424420019422383166059453832227603036249616046662599576196473409198892058089590274584619985219209326110678430105305453201191464754276208440176443855365479813725251165864461897763451968408223738988904430611966567039435747680764685975305895222540830331553247102949087686461550482503110152283610074358169144014642496472806882049524014945618142084856317625512103875314200949124693044273430394880730722910939709119400750934960189628850476142457455050981380656524653014399102308153136654846947334726387651600611386544467157075075019877624437545401326899411111900335571338786948713226543658912798973034600831795409659949595237765288686972547460484795404832683268076290899130225082806773258271979576991006257854368244789166006345239536579747671215601618331871350133870039947182164893927289367569588375075496942039022503799157375790697572327107289991440316405179842606853794299292568060776899641014279129647997500238172046624871017583368889294622791734279284187442938250670866290137177495575490804459104798534069551812210551511815993097027729825986454276221255515875621181555369892547740789170321515895651306236623879336851924914068232622300207569101278368008574012100992189783357245578078619709747175612208785809423847824272548766886524351335859742855265691486191960382372887371178004311300605863539885834075967983776985321827193778942494423007922656559131681716936778030978977849309735389044362225566665111193503928973874855793904695374291040765977395542685426324111711605570765040583149272709340178078673269748722468490630622575348908197632131017104327106996441890129583382390450067131999029453105792046862460004219053395424026828406913204143206286576406980330059554759026005330982642700680232788752557743634631512469224722383415960101530083400221445366197343588801958421964441595460320139834418802053994141684273160118718063524913447434122596520304531988917162324751254021995648261436349731268393445204985675141923020511435397849916647543092160048159052079386679535788578519665555517825783626344977536107878544906245716101799710495510795259618522918146189614223590121972625963475983385123638480644315752213379854915026210912917384405208115476840340530169253859283586368652119037511365797795636221826675121314173559182238880730103921167369888817216111364104900615805272514965548320976615256455568927168183421428909638367291775811520830527097472090443212607220008539805320479769925646083385926230608457699732983872482143045848883121649071798597340741313508727922912531669579665337585274527363355953399694801950287814100335429116047957239858793903398833370668784330427841378700950342948267423984903016394592319348472907914407908204841026050809969170069056490311531518372319464566283163930945396706226977746993894269275239768212433725645262552038911960396654403023444433845803767904537999281668999130903029824057317612560282756325391675188598180745834483242464269847397553329648179810230459689359136891531948348697651597970783225844399834051323916793251780996083955384983850599346207555909166382314160918530008909070294833398527449914497460276381194162569034694702300763013084439615650041674923334970924824919653130485398722230286635246487397332425030523706532380767257599918695219809284930097130748594420554008854482665741166285338551522726759256027019560985161450067183200035819619106234962836431271502540610155653846637472147371674226829240883657232246836703965447005936702081785727395304415327584744890952239885149658410801670378571435832952294608173252838249079623844911397665196507550220564054079450698687486793140544630090924368338293153693890752147810811047528964160791513317086429597200956544319434729966713151722532397439543036198335125875130912141038455761687362730143313895753237179171430267042602004454665337561719295723990616348042202021852723870439562918415675823993049750394724013691151748064294164890188119691486469109625101422630207598832589733139982435367486199359218040712775496249989422066126308296128606468573382391797249324813417916087682719409556399951479082831894852293715425560900178436910995450146540633686862395199705651684519232418860612853266893475215403260546255132622039596923221658547838793082451521968188150647315933007842335830960273414246859474108886913720908551809824834004205124880182611184552624855956592743221345717106772577063555970232404109134206517642257569146270612969193035145694397264387816193888118471160646698279965608698016294758386510702793154476014780424515891232530788729150464158732752102309198624815352859901491618063758887343736958412778073810495099193513756800586418461995183540629845830612965298496595279535548172769972593194969939606982950662736968776418806599459053031658029290413580411290367693576636246789997061337971324575785933596340413790939088817833668096950245588950103813957146585535934065345027898055282436205522764754030857890197765491470163799395675767956387529451916370187601642377655690078646696420274976462382190175471355324398200457049768959606215155772850415695725783797117884506430932521515706198481135338215220511533172327619119864389565202306340473488322284022086861952367603743606583435121501183854439871156375895367101441146087139878557238473936571002693228397267532234830895519598776689569041025968733657189144277973855372538083890272761573858503150286960670037859372330614221294791494890892840963427235229953511090578721389235098393809840860992850587671631532945702266328475086329909791947312472050201321627839671540997613496410139428317743808455968160445115689151391623623283693774092663020436704716230180435575746645710310627710072570048387215900021555569656513254055821122338077739492846956685953251742594683179175263690889296635584763058507486199388267820738977395926764229238756294268773227056667259152711331739047887505814730772018441788962317925727298284850681800601216342470633456055150042827313348685819013116923407054606160537280749011472223890262383687990916766879293170332362577327235492145609393055205665929078629018589792521266955596907345864251743246030412153837630803986145777713575388051180211843397938033830389748231273326058428742401838938620048204258177212853270939376636482260096367780718049290195672447920519120015776728837797629832883759037776561215879369810896442649664274295644944442443731866807308616916657240836856962812423029504513547697192598873325063560426893428410559268621928651791341585354797514011391045493069179491226113669719628815807047543003397616135552220589451734694895352317329149410890596003362947544284588135947913424171927409837270181558511565105721930943491775668101098833407349905463522200516255476178525844855993891662055627675824841559303266381122694528787399784482670584277230708708340974011995013806787237681427583612422105782555407903763431371200369036781213404573162773865073484842806034924714672832938452853626348298244809133541860959034380928241896263296892555672935914088284584679586592110457313376356604429499026809904340953849330569185112334506592019219681856546836024301639317162370109161050112754838105304008220579317706606402244510606792587675107820982282646297746782517173238049553991075494394159763121420438228486452881918845717445360248684289568883377745001132392719085005306543274091712808698138003017302326655332203720706950793650525892635031857270258172331045619102565628049186809771000689417112768893997405898409257021168713581494562626378982498520966132797839119653183204844153530160833706499593118334407267190351234429847510926492107449074683049714856675047257503785978218268078871273142538562290857127630646564453073329430393587336376965405422516929720812971834418488019894587221283529650429602746687156463137236474251264923677963143199414582798399944337835069650150775535470945208149343671770322411322646140201842988939533114991233419366237902032264786264075606221681728991299739829707388757425571999708393230857578703146493473360337512338581610197834621629808652962371267698748949089817323420033613792948664725184788570463886446306570742839380419264547917796097492918633103878622681766379079124425089890702544149273724698636278484088104622322089526731755991647256837894430254746161494758692136776351640173971376154488671382326570075264279161185911789151559813702058444757106046629788610866453237084032085297054404093117070647805390704003343099656114862390695098644330083030939809236666251036126337761777055364458612519113696808793559464313618913209746066455735462449515446119962735763614166308375149896504686059621079147415137776243373693846761068288256171849406237742088445351103934518644056338114598054438909888273023605758258752681095455402274027178673407395153211072654532528669571530937657054888448954001250707535516920226803789133822755918604962501596874504692238816422675823819915071670793320255745332970910011264634521598091842744308623627679501356918823858432132849465925040904960320353789712266639544339028789982325596048469328964228626855445861738205790017115281629246477943961130775583158551227259429841142572163930718574193489930253505066556413153229943820570452359977008098296596175663991282644681892213611678647267473012115197384803466721855140022267335145424473128264714036412794298546255075126437071083444036688749012916958698367867332375060215719123327572831597737259945091949909135398911998184613022015224546039901347280903159302906707924254539347025951103089393488891486125734296892935276491187909613349014958434501736907747427978551402272059273944648328304330128953875058093972625045729216696590827365967926365012371509321103430503848432111174134033068512875396602879967187516758974796860711432371594917638202750535348794780980959546522978672013482092614543092794089506592892242391357077704233460094044698994560553279524699012333116554847918485071895788214243090441414770763617506351798278647648484406399091210227974993642414901672782013481156179292256805380834244824859340111007691741754376023954405627807731050236211174721691238754716181309978351370146379230650493040252811670128722708933804164559400119459385941454287467113935173894884384555944324570296086253246326984128794531081703572472535350497346496620250545058712640892079115635153369163289092452444699945929042392174234163983234985571732503546858998973536835467358624135166845290923604771031650292459411794909090298864697256198093733767279264850886848174451321317137862712280621934805996768454165698714891937987386786660780818167224714910985604805437131277743336815438433829771200900131264772558401287663355806774834576881087293503592196821200697633197953624350890118876979420249217327196140533803800408485827191044787535727040374520707509427650995607123709647237506296631340293002771551148117549344504882069877864410277695398208047774499522448343532176979526306497338577833367403412731881694705028571694973741076777750943977785905640125318736005819254491361443977984424662706429574929583372098920307756567852686053747898788238025483845690592056086488924454599940981328910988092358560215662241737794104895150923370015544614921221794929570679543988086231439984496286484168005882024475425533085961663869575424692466566844693534103251314498322196151040303797212276857769806546610658540378119784727810256676207161153674946376270450704051170699432035188941553268743803931827128275233536791242771246633203553596237242548764934077788520190964574152826103006783494606365420641364524814710391583961699369245512145527364176150829026812373162899875629053719599243791934769021418321954677603624575721022835849529844802424463844007167531600235205733312516980394047232239882307245725957861925465275177259207327218175591468855593656008331487733160714443043487581311895517341242241699521676093408944815315560532313655440717666329969025166917501092182743488367081246999323077902860532367882873503778941048354385438790205063211187492306206952073886808429471993943027224630766834685248346175447453392048488048182088860688396893551239566415935439241472560314066919572864252470414380821569848407460626212217817404897551493484938802426787059800809154632604670013469684103282318244916093038570944603153216734385665509199739327525655733166129670834947516937817496353185505501816147789774866797411253849689748359805159089086613892500508467261487388991957389062631704737047620986260489992036390220863441401183377323139800805102411062019782384222165341329474449535804638513095327074892195070813413119390555636276640603152782117199124922865119192560943566827285916393609696070196896346869617052799713508851621846099579373477874960364790413137895497374711995181074398461289950012065034806733057989523952737166311117364004837019252279194315299919668655256901972856866611271507241818083481877855639334906888889574541667424503230975959084775484391811908094939020036268100420530389123443695395040579234840066312829522866386090586973484459091792411662773015941048982114705670106502357467342678014826888381191980963860038699833588959602492670762088514237184037477738655950633174884714525777207347644586473789719581682726409525513315965924684544580109793012641439567603276293631260169837604570602782813975266079762337530364034623990601791958563267195803242426100516947335402942505198148910059350218460308121227887420295182756182877803663896264200419598212740428041627972282328653161271676447370880637715951815084695615225870358419694550119502349966740277081002712405747294868122028012608342947750376558055780783755570161114947361675920613422375743369719957579881042928385337874190571328610835770264375682930574816263388996902335113787192926163795011723266044438331782254623337120239123205548899388124753370133286211467229420772932932383057644557753063697009823462923199700510886475570701717559099269744935827774492398506282250916369566201208144557421616544778407764750721586113952278617407484668550004849118309533223618351458553874464430557646128522869002062552085551688521541322628183364390113683490735034625632183431514215010905467403197735643063432182451972689409794962578715123652422897074434571753394507578610472638967305196776626590635492892936594384782188816813686301624669234017216666161873206901615038119659936471789413822562544573605048578695045325696490873781976167103892801141165526827360840275874739187497590600345536896716910702317468235017308963529868694631982695336561293682155804352041126353470539753367618844275219702772767315447500872619224231592395586383403238108230443514920664294198296144662410899385874244307744320822395838049285202650821559875287237165705109792109886791457182133833358467905293244691996440453801186141840766442388113392961192395327419632860826723848783029079176365435750372340196521329889487303736423975733875466826035323103581367336132388875175317065099861107266196884578092633431219657423511595281108290279245359030901624418496640074825341328833457720245778758067851921009407517281404424212234194190151411592297992008322176454559608096968295276834576638673576074127040578260795470586974206370758703972072310349744168390311346751446996916100660595345611790619320314746474089788687830293429250602146598256885496353760735710517363203717666457641433859102653449443760161372057417798088569645540403887722279943421803652018889374407331447657345093245390183440014448038952592539261861848146415777419500595784856693259611388047654166743690160855183742906898120876112294127589359321163389944462936719488343015536402583785147451429459480667215128057523557626991862118469672700012772113210549957809065557631005612140156600544709352873404272328936143505457428269660940723447682592883463800075051120224593388523004662675364696089012957158492779311312487581734517688318390935925100467261251705960095833976192877792128440556899578434182985079151047813896756549420213388591285754474186384109450839463597023193564253642746236190337407611529868258997799505761495107162647075411507360502106878751011092431522976117758178595766022502640553784164026135715800010382374031908249066255053052120573478446004191090813315838216511446596116671619632581470611827621878794543925703105144512979129829310211847196775126281937213266252824129968000123068424415279317143585988917414396972472850633039685746478663672599181391257460168223548413107907206318143882060773085432158737246867041537230435234218487133342626462328583884291491094537281092980255074772413136090238122648641055151370916214389093984492317289323819736543443977267689921851455097382933226788295648069850436247031919648375583391445368638534255301764065386282067677216853855626508361559027372575141771025599118219878448016799074568307909685103805798508225199401061616417541753899891346920918467919092805981764623481244555068048994494013451518694467219491239836457530215795900780687668903436681762794187485728002183449856987313354425429337764209060006533660051721996003389475791993048453163581410486418922693432590366697264641042723010388299976563466737980545574722383932139888962322331981558911245253794109997519231753509841857096978802641533521167058250588717124119651608160190733792560827667462688706132318255493751054416262247696350674727430017794212239842121077035027839620303643037211327894359114102488009199659250076096553369973534571242048114858167025416392708044323021101236861603496728500289238614799821486068102094669801673722958708395618607030283150068994976768304066870457506529385656482656212941223186103720168377360711947139463651387069051759198387686093484022711421334770037878292532009358812638021208771369660656552452334663922059329937710039956545367653064907245653932371282359006511616682776226882616479021570780941998189919104127232336461047423457207114954592141472217512181893670412604881151427223632743064362934260682892892025172030673312301763210872303777653264405063535023736660980959764592578748584950422360789089405744233154896178442959338813884863369860072427755285526594257624099330926162926532948462085954232581493136140513163790317995967516849645300820358954133568440232237727318761460033038797395153412581944333472010596297504639395941346322836769367960351408405697272070841122129845233902929785770838823599651881495977370443152926242160581396011417060546845775211016503389846104702327495400963827751825908106434024017464158017183306399122130928152037805890687011975029124205350192381982837572251998663827355488552854109295784342673484535638739519093100369433190056075933754263259933473763160994126411558669411119675987309906097202475597181930824334821987066731754502221634661522538673944678968859030902208271421148974523577471554529052349319028217886821924076175949976113124665970802237183620435432155791496412778663097880080383713889420913071916844439425293920711528535805430507608192444525776989381547733718653369189114005595052646116412752356832032602823829921383290327578780781115421082634433634294125469548883143699426183053149774116016808194421222201569961920834228647117730046864405140271755272464044656826767172934942232529069344473725883037355445654695762960675839759540982478676199448093341705784412491206422089383074740888599066742133043516807809964002771490889919268300279056521926531108311610669516371201362879465032015148027796850733735316273746877416934300843891065210994908190055466954400019909891895566797976029040446971668681256692920314800032973286579865358897624339605271951756786198230284344481511508597798100142813824222983296225520695244894175181447202466514706180197051655317344312456432420699986546429182359014080463694906766345268994532061866348755751151701497097656457128373681319529962250618199025949877631501379418461240135133009336238705396565353547989319812332141198216154979126196918788339156695106463815036564793791588863826464850231011844607387919964297168300232463570056223549903015178474857082457823343214999333357817352208875385576538880603494464602241319835342027242581097803727060169312664461222838298015854231686038340941472119194406640062026152996369810237356986542197981945396271342915166836663147817691644097915773618993673208412770142484451872128822680206507178613729776704991770416167033422892576853613009987449351367594901136975616299294430578074653173967902191960347262019369085146073328995044679775591677254522468330941897158379068180397269597487210484415597135902460217951508393406240135945767256091747171201046773953007591365997353699414106191721312694777380910921688032888270104937486853028021036356315919799046138554042216275324845239787864405780711629449671270869105450591406893232985469169129047179601168754363582572114797005642898878177340034207384953146257178878808008583632356873760397294133659135718033063754016801537543941115194503947402506236547664166165790368978647928635529179605220310606581104504699241057390789343067298973853155130540005428085068358599859868080851539727051827976604337580469163849568955421283943253133807226181858461468531661541343922035810188585833228366886595403837004606729496319808537204110969417400448205977153800143497009247500592004794176499025727960578216964469080929870376818664744291459363296142542012224155852817684179062778170337587638949445212106482885151040365661844575369538871918399360011069870273861311253683441765043741793537000391704670886500085815684539478976789452552846226988721032166794314487759967857436463199999190500790446697128053222374847019583903509882204947946381914099996943270302060095807247867061966807069310406403064517646209959694394630524207377798634243775169109140156508843198098069811070085132045508624639595758174010209524188449579773699703215871943684427205112790398155143337097382291896071009449352920982618841975022581825688916440921618592707757839709370471363674606523340900774039703474069891008151975546583265491661954188567674950430388750313272564016818727219888012846384583528222499278378468365349425478901072470731929771045392223507191514192412113071686883643418857771788921614342550238662488985694309449423235526764451713315834099324937903085977772604437246409650918080417206795160818117888504373136571280998634919404727728482205420081721103839337727344462532541818078073262500690878765738987428166690941529132916232521935368158967544628371769508075685217290363014657263539185498991704094695809109652528527130351446727717106243821214532166169077366028105575660243606156520925317168247135368407812000434087564200591618322247443470482590089501325294606847059389939277437873191321970449306499936575978724811257394018583376532832933686986946546070782094903693484210466101985250843530125669197565084795704052754182942133743746065775956302386296498486406153703833435487327722120529060193218782593639217958255733267134082585800931770109650449239684052920423027665488618697795073262289552268655951375129646783645626816391969087174852505815647570783237181486274116737839997564909427782779772566188305162027068615315139269250382308356154222202896171379092062086924553789075278807169977961757803737322651451414838636241335697727601536928875370571822399975643646546783812751477266838165597166188800804687654911752006483911722620856272215758178138490662809351735821858409749880320047906395851326914418789889577542978022683967397478222015007179344751045519822975757063928717603142852774606687691975914749789043698635757292472620342251235668504271231781176586600401782998673636565244893229322148932456082741232368688453298164982260101898411553520778208814184900391453268301878691947585047781846625985223821944318716023218596802289637563772878658440397242897843386441446473875847346542583332583192350495254382291154064704751524436564388210421879426822266045292879272804754978948282300017476194445753505115080070595713597053512330440573370957764245881807767917469238205893082481564153492887314455755097075512197815017583264959023734409284787237365270006485070401596911573104639447010405782279903167983827653344077760676534950662693952663074311172179179930995718459379330452898967943601276754184357059261317989637443306550066982021415548050820393439222609359607956571774597616662246682420152116866039869791478489163219330691989868576077730187618489169650938366222966177176883246206390645288850616598937555451790616204570594035423146208287271682347416296188560942289376483296792035141946077772827568669689016616155219867565016480930135050976879956784912058428693410426814626611816919631219226077369553345573565655766268501860078432233375262925909571271621340879380857147287415764721439265636658007722249607078156066778020735271704501627977527120631025860212677315901872858144820761709073077231598327236469841136492532904858824178792236510987810421868621244963386083658418801418511458864840276333001158691522763666148790005343592770803926232154449929268775314541219574916278523457813798728476785847942973528711729246876364740149230208737304532485090662281670610908795030010172799808478614796874122168618367482336325027328427571788448852254231664481871331801979075897916757041258626398832507722743024695086541329559289338003386216248869141645115737088482183224642614484458114346474001706007898390099220642686999166089373705533476689878872793033311469047599857157295335764660354020155966068686696142706077267018947094691238713342116640586612934510939726747219391436586509924389214054130548467047583928391434163800593975309962783333383671351882740918605114337502908151526753065371718490406220637766033997145331734317574407579322228793023365858359638819825194432795712493373427528533356351169641819753827335872127899844759079113969296592251641294544492033508766919261779393470946457923156936314217147837430569770720466294319462205019313744830846711327066677292117460351632063190647519065349725671417435734602393793844798399891509240280304866381200529834099118490419223062825420690286641403677045032237713189037541175252353999424662556331865632484321202397840736264713242248143848565491910663604027839767113653439776732746599302243365185618636492213321425962112391776806141261754333622365752503824024879000117052229879107919840306428780099493999445529418475158731241907052580600706366939498860662827241013861553452586121160004969744825161299563106869776466849227514083613416297369538793204461763658307309679666660696411749769523977164869583544912411643529505473051537777711510645713890875105362878051506705403091093143474898331400463142399484976422138980145799109539947033946865328236795114701208725920710523209305660906959643332125611108098223841963417493904397402737678904814788650954902674834256270764310269279411668166046790271748616383539270369951694710674544654462321129457047288115771545372183861732367523147394510046820206080145927222558494879565146666763315399727994415862455845631063402383432599983102317826801184009956413322066637779790655379696048811069197188761379415438243152138058993130051021640722537035882472374879209964895970558224262644411761251054914821968486932474962129213635869915910567689880648720428754441504975845988421445473672515686291081286971272343997326027286818362345836312928390374481535597364068125581503436465983480276934710317567147598807668334967897622254125877013873714440042251840960069974158550498369921395943292661334379997675924386893583602637472115578976993300754804771186927542062759219530159070927590398163867944847649385227297601874257751251387188905948103209988213582081675040109660967090339821209080498964648164326493034514422010017108955181264725764433481445192293713203078652094188349260925202796265736570237997127165849839538628489098201465163403985147548851381738211138959124745526547057696578648337423176928223221421579798835985777978315670142921299228307350665606216126534242741659677137827774763149900984925540990449207247272297044893816012572643444497637217339332370461725265945434541708238178218289674552273204922448128731639039320368282616879793619399055196383454786019772225205705769420310749441856187756319427865888199384370675563091900851126720000896242352205748270115293984573203914908849545723020894162147357874365173872862260145583722410286380283237456761422245164708922162423766095322583370958783491749724886946731140123144185375326850498203246121838092867526628698354297659418998978730382390022536386825929863299882859925142482043226384377815186115322940337471706462792335528376760029997389797103457932448629176762381253096012222466246817983387862231130302681189526936031638542780114215358837467716027972778534789560594436428723433463969553736750457069308802899373253858384104381696338857308137052164753933142024388436947164204351284280841141793345205787790838271944360628804938317606132948840555798526362634129966498224352832604528051878435743530592066123336102495833056189769318425558146546904931530188176301643229054143678617928875981711231800743179389736619009828138798637391335757315928302247903057771398642089129483849844223452806734701365261328860412851886063688840207215880518981129898817213069655677353533786954949343648203756132655515600916800627838171068374686813065498114838012620563712759209172179082301046519736298551433777365243379484071409521004654674681990873244825413304536977356000354977219839567741952052621554493005593166664567005967937559131846140987904499726243439656054828962024029225355774368122483667312593193236275778551906282920918753252736567702979287145200029675196578797923424112618598105630788969214553371281783174443848293830887273598365167936072795679195987119245580601735687598971233550207958898143185511367841818951534630437408416019787053556842496865797111356268227130750444698350473744869529532336935723720805892807870023985082256945753668364400233117979184793492363492016364344555177801121394576854131076308257187602395495598925243889481270825536865133289420393426713312170322795495839384104579463785484317039702503723397977706759997281238864794461797147070314826307534201902008340069220455705796731451625234366539987664725446084289266422601855178615009901893247340550471063566845711857961119940326020188584087604626215477974546566456985822501762483270867521125412835070247951712100079339543880018875814357265668449995834694053211488128376231697927682543848858134933775135620069553107026042663231300293850015586417224971992563999857379949393749896881175335365788908591380706851507551981039767469343432686432885976813075617534096632555327672688711171253249320242812397574885409559625072050734659587651762057595146490218310733362832124340043990382453073206569652466009029396223681113659971755205145631769844840869365995673263033686623661661339723217665678371249856796869826782124966784774537506063565703903362128910633048652642120660391961896114203822197294437262661833494522952275767906171474703271290385690653255144748834814646107651596864310982890334437247971269372556881358404159708524538774829954070050164942792836606900443102443654440785454831436897908246406533932803153723475721921364949433012891263131470059494878961466489364719861505008374095818188342678800216103344711605752559057226228673721623944502048763698041778041634793376795508287565507168183813114801514697847520576989423364409119602917373897884678426370848164242193288350496329997441750376057604382689382106890727876673815120453581030038338053017859215962119472172743637900032628923228969473765945774107926344483426569670983368625339392791774681546193478221688355810510182259843305930937080808015925059580891572853436598198029588533964012827377896433318629139836920039598946999201291240238461537635727642116110388900170847726969458542637347941383509980670969872061712098484480129554134952281077122288647273686451285854219641544396926948486606511627408887272873093197912673508509981280670030864894510055060267898557824490210462105782618499527966043518603031959846250807462298478166741754211964299468898329107262374767941115936681673628843202946248796128334905286698135629524886115535190983867356218174593629532212087237820612504285618347321431541000299461390028219385494000576754220287503082213293485414947697665078604745000422317022474194121926748353323867228872474098293114769639122778228867157291194799423599519929883336193346490247112401466805418146872705036584080858641335886659268571048086310089429575904499572823292000553095208054635296959424085899478932381151217133425226111887592104701375408178792672627419292879097477028478699331632798760972857016947925089230607489801631780725083679793839153772794235145429560884105713169759815814977791018952473140482733254535451716278020423810423543122860011844613994698065675551160446695886571627711148193944023061129070099767756342459601454422620859497457293790944431001978593811136036257526714378215391224688862471672878461974132532297375429526278003883092924020057395391734097741858797178902133459381928009331851557597212652552368657166191093183579120994809425783652356211644246964906456761956585005876181848521834898937307052545770903887833583697949645343507101634225005823728231851551606880952145116372884434558219459138098533945022090221174120100517569511074517107691011360877793573312883552370575976174414207540931559479990663363489692265924353912311437329087758116826153762121708908678938402776858498104376463691527447667911958618672803144451761070261515400297044817719045026149952047223518387377768568903303896980334958214975906565958803624533749664567587324599020015792392376008755342890184574568133969123952771305301008327406330744607074222468593066176122994710416220623925843988214810819589584915906712213199407796846491147767501555852990230583141465754180963713832864644897804934398745682818119484884223290620974525049005489858062741206007697412650419441294520524585193005188395544186039870265515825173720545251369315713420761527064257328256498155424100601792057895995288134713599158434587973011609950760707449676873582071788143491452840632140068439940714534904992635257235136340007997864387400975104523322274629420661003137303561407221574130071980813383913390270765643436541674726725613156433732968419956918093973510847300878328403829300169978189268777811464292391309385088087920527585100198486341002265185741651614532837292846786433812608184544769024579145385943735850473788278532974178514205121908001749505559670918419392410657633722623032814283047865919908367534174084235704513330290989080580144067898440946122077161187913285782322344596517362641472497751927661704131544730011807385461980154220104687794923517466472489424049149229399551427600266844302549191497037750605756586311762922171565265738121061582736974401961774794981811131742009893497258282347891069825264044671862058337052290011846655996501012668748160724662448329022139377542351246121629881252543103169655601295149596439667893976779123190031618032872446613209109309282053197124747010302677910243719481688754843010033432739268669371940215549783022837541371268811412308609704110691590440820674365274319314187961783607404719278274447977498168133935278288164866854896118001772060401405148592660089245389120356358083822266265412676956491868696099676762341885645824504222558430166883984644875625256952833940437315429662307397634961679874167512414806988381932263103979018410885956161201340729165821236739013737636940835481933591142757562565613070625663557747379204367467723209843199559399646933395445592534946805042558733150832113793488547190015006950811785048677287293774692754784529896976215526274432593357413791090017337751514948714550944814961815635746640861458221400291771448133655233822659747050067238280219974521436066631704630167439304857739201622372514749730485076194405823137593187779333984641604250401625772666115299815221590008529624857379393345879291902291684232371346925110237093559540251742499703360689115504517720251202392848201691248769434256186936928190827345534922972233425868732285277577452519516546523735535143495888137269148423981141218816460319282429536125405439737518099320085104645151594634226701898880640482701927675778123459918096593905228404653675682314908567939862253708140535151157048809075483473261321669932136741036983427251774836142389904223992978523562039809889936041369624254892804210348081480041171696741231372428808575570916092892600306452790730798940387703218020014753918790086240254962319482886592328039079131537926130272057549961515023474075360247146608532146875799132438348573202779573083101183126607544719577497983846031238889979606978462303913980261848057992019731363920724594780809344865676425948654632273078078592062030447808154021294350661834167238164650153901539564193088099447809774943997436578756715776591859906045842682686685643581862100781831859422358698418929671107436566092613652691458698126158883134890943503242841752861812706006501424342004735299133821943774067072639177105715848288333479639605287413004909872854406504734511077282011342471138584349387427810977180915209028420439515770311283555499355548626125876237384125164412126984955713204387104037058775489030899283559112063306936036502203219578324357426271010581618899743111792252966080668329374978072192311374566164833924276049661138129043406625706829872056218081029585983390201040092435162234676257654152026618913477668005053374023266520480310418568568537824779472288832029136377899029557619220937176791763943852216094013698123196614557050880795504701401590377055667735680065202623848559863767593759718883290478347967698997726824647894571798249498339666907436527595418590852506952193381122609117555525552238761706741252697828836888775477480758659377062537311303120328300213363616403016297611815306301515317766604565590368986921058340919528552328613341353288822371746637188363229623098196436166170749678866620843125736817312732880164673097637212372435655297853621936831149674253053073468081762024942417155129928558195541482062749422856520760111901557787290731107492975898371061706707047389361070477418371562745205753621739415308773815944643697670736941143471883793870995970167289063907616271435406963551565690817605408991393415472749057505925568468345900366773403648611629730006110937776249061064980117125413804957349155046480841145624882258113790886130371155112654469810458798679901971740334317650079709383440098496390493115429479542530553350344642621803663288500225051341668950999127761245378082236282893227347540859903688004838361158728456133666161582537124681454338785872304739015790751496316409820485965591172852671970762624621376446433240472883885575345263456544979701182572735920284497529356325120851012606170044401202021538505385058451656289049477222018241706912241308085142914798792824848092781259573269280787817918399743629994614048673160548846679006886533014656799866170822005680001054492110389037783125367466316461292461917351096749315874280704960601520044711937235906826111504338756425903017746791392099746492297332140827103006875871591916837469292296167561739987993648351122116630931000673160942298908948494908181190793936790761333493178762787712512499731376245758856863493709560312683033376788526701414844452566253997606994190437864157297827527187504133143655599760833748204564219942304699763023477960157710199874736948267168611123270720527205588052629587614962908693925562926741504697322150448862443600027164026755362345261482941172868232010175236177246909115517032504019088822676098483727987608030710268344767979951284529589769429094413077818764964715941564476377152951266590529524538691767704555371612268970352900726028053534651236293633773383485868057812709988380782575212819600929426738132479973856017566583481454044863922457825000030083818350060292950294905790403808727107031706168349596985213259099086742403801713169356248125101317547923696347189574199012506538384215162977730030004477610953598850872297726840932621247524409380132377481875799551512225521904914937541181095432593041107554604777470819611036568087896669517478711013840367221993890862612330651925507802496272512042486236708633557796871339390621264986330734966665054166221855315135245153373076178091605391518804862842154499319780427845216033601207677967057151997934506946116453897859612213476353511741608150571797061046402640679551279343955919596920587856618740450847799710977988170051871222440185689917011899215774698631687270934490518683226414014593340957456114528067439877601968740527130609068585990629877981822180078144822405632246378246245635565885213227477256831071462372885220130212709706949195676978728540373917205326302360800731817937283572440663019980309875322985777009034271193048730856264369309172475011003088410190993201851623814275684095969552956260392601078118853019907025492079992557435060549931934639477558898674381031461034214575876790592032542732051332376209654797545294994066643227743087503972597910093090912540615384539654815418072755904072894706056732222135952899534891622521347960030034534119140944679971233502782843081068405926902767357644918540156981148035662100669677506210732155731484884494417252112279707697031053951148361167106448975130509461825984571916452553166260938159043836251560299877037518189898097863164137367662542750743345464868858871499335107231189648751096309489019561927188336723155832782393665058180108844239603296526767491838408750076202645965586672627577096522069047004522548059422820684165171121479754475221125811993020036776798213584282667678544997933211883226171428786765612766726688420908847436326062759476235952823939109363459285590255060608249993112849955555797086861947091549207193780441487469981182086222921058865819283756475136345050096710830277651908196510752299265108589455834314567692011825562495166823314218462507881553176313592176016174418433158292071806206590952869821069264689191706906770063788852550430484691438751399903565909029220118222685278589167184274218520396394192491987135470133256131793177834657790654518175500674568133906418269446229440315350266207465204717727123546118523109409685442723834161090324748691888206836943890491861685180632347368776876670262541322928557701698798584766551322013643610344998528291391406875306796483833695649323990637062442419927325662929345779693077604252866228745493362421879561585994111782531097850277653734397878179382540918082037245335652205158448247713879743681278254869828635681772598707094201035282630181531540368732804253295124093274453765415619838210697117084920792597120906370176708406814396165978617738901047483248816483130486211252732504677858350151739319472200199969312710186415609505879597543784479445809629207098185840575560778504340093088954026193385543563063943672752766670293037990050862709464411668094027860060939439605814304348747929025836308094997283219126134147526874742721721901047799351890538808638180950695142100461370667479991921394224134917377341785631504282583039639514865294343004796289884158584288719697703523594510583506376115141890123958977694155572020683490288132630242254983391431641564575174750924551363642845426527844131310455296025624985195460452703135145135397254214817131479089929523741709165162886324301719890037368026770798049445187555554874831297951491520236210783034321650914073255191550745637201495458714307440011636084114966390623458003888552089120876750651740577331191337211707022545638883117390965339576768595075348965955723594049252050410575707466265689259251240092625617495989974551514862524994754137817051816047469796533413912941712285602478468676939490216142568312125098254104681960641879262193803424312998553497692713941682102196385756794713612294986934711363342001045930698426881480922724891287238616976173629747741981358677805251801862809820574738865745845117559508770519752654859625080327012586547892872555565544669295961427417761701761974029645392850849603812666181250577984306632990660434604875828528216405169467915589848192849330630348785688644002544846642221725149921826035172718009704805123935237213569301259927386196339437695759585026905728297588392948209902620786754731230236274354259410692193885626482243787582701953221160243799366589434677474602644288554746477081555485310670245562819821504842895334930752991361725029554287164771418574114175134773153339812838755681279938678059650203716312078220160802772126619097868382633013213772147663292843591202802039459084357206745913934468248099549947429918069530365689472840141926161822832865771607453752741343300805179565811976961347907963741912005064960669646255790586840580001273204351786528625398149490103311512432831866179915689880476085091947915540908433561958533317639254856145095579771523669854549346028637611925438948010979541081896480755051325040134588543377007159015174941593249530455890424467262874500405532574271002946323433637843596538467308883431982536508031521336836878289797775568265647688550258641030216838755883573314878949239254523392778283307017798138961519630253108616027681207909394307403999154461610969254951113606328576110889594020099258676905126201600139218608651966307150585297966307779442159938081946211984790995930118516777490194643678774989201965623595672128469866758461559241231496997565574528520637442975370003313486752510617280963504466123391742168946079086203579176766543148446358618236744785180368569302120110969389845259455833246132663904421647745439987299053733243982887043198859791196734914855977397749051192169668853653957240639956065717053930529315674416407810617918900092661331408589108420660552324258432275172362529923222041276788443427266829076395998294888699940221449007242650091911326787686894108623773617972661265532110711922353468687022231488674371970556790989579333064972705486178944401907294743498334489558169072839707394789308652715110906797821614287458124182628589638399251280543705418255370477665599153670853799535501091073740271915070479808630372357783975947595505540752864131464281928490267176034272718155281584618881580626569369729479181876150694026029291854200584434041610489824899367697835756443231675482333968714274160137918223453012673059608064356245801452503427951808194962226461663002485177138074361714144505589990422903427434460688603168674718295899900511661710399671868091562235536114439177393918690695025523130439072435985176256763643221541288518558949098321058893499513701056276750038476685247350320335167231643830961095370156675281557738924927799201268174077537900871622579077482101905112626712676788123348668429360888255828273616161303389457496293645459133050227190317405515635940679409463333338626072100668414697134825797852043415777785940688156744570701805311911847360809738155775577500156956852318393942344758643028311729346713209176167375751465547475319708589449382677883080807007388175411782008460832659099194932518849541338981836103271350033268187310463864093389229337613805536461064958977997994389300957430722361100441358873149865997270786589707574252947914182751185956283451933312784379970960606702604897788106607695197409138602886007798899584692306229895923121855804073705253817314855465565402009657252359316263705814461274152243314024978773642556505231171157347762256450405383068381311706781844936096764197207591516858580960180320012379886039578415931656181828283629272298725292783928429300112016846742730282411646686936105204463988232076040850779631011764159895359955148160528867547950696827991723444822191536021146485692381487475355588218964601771921794375957122972364153695092813639474749703142187278374945409531585189651080836177484533516772555762327472906584820788157166730098152519580170359703394005108959202494464917997403896472675289294093108715677149778265638558023296252243131829213406498426647229579642159662290827200044437160675313446171528765239626535345793802977337356325075772018988971863341996143079643266312566026689073442882180028607372589775509647269090537812750776504814047312900613759995926731626329335562120384998141643832212219311847469365432426940847601346364953407233408011036518318242890881571147838981680548841775149933404457249696100328960473418213281584165277597204518398191460223986450535670935661346512949154582331975617947586263982475559846729029207188390952359313352791346273587915713300332701979302489450567091196547028654770048722740688697009637884269069572570940463442727316539102053777870206546543442521116169398593207899791248010235679920953193119602742575933115829552437265172523077782870795230485119800652934531333963099558031123767012939430693808519895793118137379160372591560701518766018842145984543986908844316961131194011163531085401832570490354716801675685438291493533234250896702208538304218934954708980894482456496522567303038306352571658932078043576707216512556320851829411227660260917169388070675625560084413458107313953169018510911037449579525980739095619259199368514155873044587691820843663636828177058825719174097969582260602239180142523818399587434862231166576998754949082813026691127006850142790766252754772376104068672599736390622427358764724778539845884669497573528763963381519470411381704560445081756372706971712316167624551261850194009713305714021288668540836573053611379413975385397411664026163627083038859530693125004798488425791182819376863148864846668348124963003086538413630854560633283123204991004835593017428420695151603473423927859010345249822333458274194222826373013380288503441122204230593278563147940289935675566141184802759950375415992764782424416621603479969297166775084878374965811028414231446649719531233202841117520801832124603798471334681091470028162735595720192627111031840564741515201260778806582880736483370017393087476767770512738684287156639732683766384627414029420122137979639367219213499706985879318820083117608262081855610435023348441678913723826070053108636184354917319016423601068779278232008429785561561441996284592534360480663583824537059076925688002011580168546680299196091595144319391952413826285553362167433325932277043231201238618684939529414042472760897655633786268100526089635398293621265822036925066841542752230864850929439928181931848032063310453311398560920769751170616782549361757700259254534393213666514257412901491817526260379666750149542659543742549790004838779558284076650583553420768900636023605523485457943542161065047060842943300107630767401054203528673330792583913895802480241277771042415109446557398944270419499386488585213941443058700193925814119894599221144597171482636289181547050090152585805708676555227458827238057846757276242955054003736188155182603036526813842435072153347460661185642725969987970181955102939385113075461940895498773683556634704717231479793411311944672414055919874596209281318045442409089063719507926132422902116306909088259601728982758342481747627944835254446928972079118080759529381092127502243015935914775326868743792150586655153264711373059425848020397632299435093746945059034672499436687716815052364901907066203353869371840728797560060393900197089969540039015919948723331817906008655348377226012586852671894524718635427201764846405630391339287573332988737810076108079076429959167151490807313674798737019608737951413868274512935416757012887218309513584005725225141294927955472922754078899441153681017936450177581539473093304630380729468870442836831187192416892001883346753021369442203058421691187007582077408711188574946158129940367395530189775880182592727229171878876995490885574255109772314552176014651705426955583114635825681426286395148813007479206982226809226969108946970186568449027704831299391895456498781944492853376446604990988448077231984277279408409749304807365775788343565298367571284476874435440940064278526735611105498047360181627131992982250814278570423457980775691476501284463202395530098829469946305488129205779193992208872482659891410290456240245691125124813748417856655520432800507369562103189201273941570678232919843773647460680298074915075022693853244229193389686431014664430375898547821363614428484688669221375235669085509252004986091999966962519205535745611425559265062825496499640315802306789525453915747182449396446025627942940638880238698629353192686175307788005829270904509671756241012006326191832217691851251061542423868384471254166795663741743735592314216253872537624863584252197650428930993819131245836484960088077773314485939131469928809950259788783766022610623712065110943675844576197288037647910010444767326101574061712854762482539609508779620126568039566010868783051679050869589959257856981403699887865130686668559497119099329977519326426137999248708644258441556806566612286376925837871430484634950417952799512849177192386180702804745052595584212045137684358438592646100588917240978011405497884314286556917528931984471076230134229969511206010607676991750621610624040017867170000950747872744865960555794558461954517581149913065048846110675552120698789713786013905387387913765784815455243677326377639500907961019714956155514380073656352757678328554926815430422984951638550200178948459227841206135458663079072310412972952245708217719963997092472689633413334463053972450924786978167085413826834591993439563913177639398575000413156815723356946425456004146172454016512982317426929276956424568039685903284119051665830726849229567357234802520261947115451130880750621591599223387486474034601403168540293663915600774867184539439299148678212485918317791974514941976192106229199578660999081607806236088798912324925543468585188826772954645924886164956280446189992220339283333318247595106172356887083181795231548353567771780143500631085240771682178360975194487062090103221397760320763207173040106947301931874677112048687216563663160381284728422789767663366733261751766200733147277780615089682709843535228312393274974016916790579901823944441430823830472509716431857530842455035482727855811163424922871433510519318154113001546390037173003487442884943270439035858527137162444074402797785694741623661639581614654264474521061735614188507018808396359911690658803266646974870696162587908316573935545253740526541192499765479698277025778342089071131717576205416008103683720939635366238285611757665753270196624442735498183397517874372907168686817472593773709215453036997150127161880430352556491933450438766518469204071332669080072503964633993795966132033682238037937948245725735649160798535479683287678913561127142210718926857004535810762520546795969106856528832716341172915913965738983912373427882644923963447330860280089839470965885986526235357132680656654105872663839142998248556427270578789693521323099380952887570986059988901166680947795940958868705264546210787975839148208156805019176363744926186933165259975467300469593045362426940840215053946771483864022014886466694498898880980054638283119634239157598894114513422851895892964028227679590313769273243029353567325642935551954882443666397163776801830108993621479567888170176983832431666143390663405036329789379248761266497336565092668063130406941083903691359125293573095769705471079168243954108873240284345162212728459437649060684853887478992665010567489221552053015167417317550449204069341374184027906457445608980657726607427379020074091256750410873744471880269344963251860221525425731204026658252419098889825847727215240334118646808901214993670884349550810438692911044458963112112142336862226927066390465874191249215847355004695096875524830148004760111041631426900838658623078103396092406798086046423467457760201167877784882293474292752698997203220474061827613682357282843196034580826527796311097584005586043482092158765072672281652559411040779362709848272410206653129979885949201221789359463139486524280267536071164909145121728593724776111418759574201280611620384614334802044832567241703434179702658280159477918272055679983833449767051383977605961209370900343220127805958713119405803345689642027873886987315055379451445942618496287374186004664109922790629325815786707153350859175300195339871115326580042936351143373001857681497173865295973441809952420394045660641965761337138425551149639835399814867765770082437398631983287791406380933502309794391516114603013011895585897179460628175352035274839344830393118258538199968003058733928109573862088877202317843534746361685259630306488432025192214358728952425458009681938424333872451802519345253548877280300599704621241961961847009617577045439262033473589000699733764853384836290225192611995941165470081830463312658496808704905118040416871720273173320026713140145983958668202300803103066439740162311819384303531739832606318503624487693786693301090431946988758390120980315395234441540510449330799408230848036112702803403301238137623334805142304337697608803949450646553172411527783104626069766686800044134508958134044403010583049881416914393154982024638486425954125069785387422750319306800238100704721678760166641617516761430437719688189832618239988862896103728826024759345226686072015409592959810577782914314545897394467550714827739528883773905267587292720685483867673107738083797404345232127063355780109326523775998374392081778947409450863458737790776269062125303301847165994367139710975363419356083931695583188524164153060566429897172043248590929689116851264752354745123650360219611534307975603514478042428904527631006482505113607516115763221765594701531307731266309735264339679904490706086668693954674301810543352352971890552933108461193469054204528899332787394275803013113959948185399415015077334654431820488362509814519760944343266901688313655511247858529315300712393167093989011786900158473858736738170093070900326208370261315352734974327735342600178895652789712683124985514121388525069269433118177363287417181685176859874114093952677123785259699468002934430264438296054559998531595003261220307742107749280242230832331333689178764201118119812974929885602923300967988213731915900715971064216347648078349410690750881862957846539071486223650684903451148238223621789764064312692060086651411092829067795213008058639288085433985699442298972129837370337266404409875918729847002948849803846835029283850032329360530459987748819337168781347489290008739983970766235665259645623926317385876104650582755028068278504491441086834603735688805550219333087929345815093559898740898216220430096772450531932945620391740860127649507645211654505731717661945905094168022454471967392265942951781024318452820316949982064830939467240351380163070879955418077212917155175695240971919706886604620123659108824529926532031510492244949745949204208160490318264590808147726830557026531095458314744395125858085521490389537946364702668607408605528866418142768197413578820688793243730388465183454756656480352753872983881141448308474840307779266032002780288396456899080140625583925896356226734073862598108988077864279392763526023932160026839758544332962512925558629660852685834136720256494452812289211067923202987459031809252331209719239746322312298092645655382746688146240388941547139794447728641627974749221980638487250981733927531230563005732207818509087572455759006107616190156218563882463360227932578416845108635977725321222686859355595108994337598662624007149096697251936029437101399924952291918868913401133984861959298316229173696061169784875261548378393682971264540574606094882294819491030908825983969922164372289417437487380660735587169682072499762403963293947906051478691711765451850310645747902661188290679391955827405874629222074951975403755834372750983943158117752774630591294651277675424989681771055547591413396305990386804215449458101599598783347817923425669562360844835083417539771889282500253167343477677911247473460889065134796480386729039118506046672373275688936858000525122203964410461172767442461620568304568751873016672488845470862803843765675779175629065519085019474243903460485555423213508248984487362918103810825173852662486809917160355448033933305184613737167273562086986531625061242541539315897534584833414319044710155955621506988974165083733174508276887342839842428389454498206757846398615029847990246522832930227725965021122250506053993649997356410710124352562463130481183795873739715724113544796353011235748418819846622673982580101073021546970365634341374304385205631465465934587834098148824426260725103752734807235931713030041852648242906269950927724328545553326394242598363601644072268585303101124412207832604290553076231843181039361770556782723809489821543861507867911300631888983547046105199535664897227110398872107179331915026203204642758981024800654823477355971942080226364580972779339119568830539811018990636112771526680464605866863209443377045337878781312461586626742196668811909159238499908802230811969885812779434330865519862873526450672717676914844056416952659398412227783436079898274886145284972420043719222572708246864025408195131656038506029892743190675750662678554114093789176003845271670725724433711121956842139515924293207653625240846082576305446795087470360642441582865891161334645673729623793321677718359363982822373844398502141412291818354570071743913973086365756377219487247131461861736652435794480634002179034950926757446822396487186462956076826603904376228498215395503449999928039478538072755537242491438955392962552102377386185575165203059602712208123142398289663607680890789449672318266513803655583979955340226463068841070922493878096400169932570190125041353581476966752262086515194874118233626844276790426076820613284334675304213835409844021325917396613781035640553660416815761690889128612686885230231449600293228738508877115152757919761842866757879367657918687628792415750935270209804935461116056098674847712063858219250468923543061142008298190843994590616895892675017901989986820402727445815423327219050782239765925247281840774636860053473932292674650963230646597238476002018994806281449207777767966416696352792127337791364231258991414150849256104059719286058417676865030673808548675888222251576353994369118410071654248920928767771239331092885888082838562219950961332074994080237804125225123140879328581480479976974447885027546041863489792041224909016008967400247890292470489672610106370913528496647605094161322512165932923355526518660407029793803217625007563208381547684132422713874998277503186179181679924252869833673257045957334824280884879509367096738903904601170850681391876921619805398790915506034540730567996897226017068832765792170117283110843615725326861058855003514167733937305831580748140091412522579299107230446499256917749886642232252897560372487307087151046910200443873680174292493253268623425936971486753129097433311759294743697770997577705976888330829110497720426767484703941325776362067079523700732143950702184758784200969616188998382969389149444261551908928765410898686641167449867019470490854546066194210131343878013138144958270111789981322050685916697174350175170756752456877482337468946820975665207596016651008160357063832368406299597447448178896032819359964863518557583321481883442791408099390108635409892526628305752584764014065327452652664569451979984748087483835038849965495890373237305305742260724357636711556667470619509257936108936977358969194176554616806150269557592980703034328771740839003754638113576271916734764833541144730043903130966504260189473422035187544597751723192303210929475296952053297259172752411475262875180979347006555624666573848600309344981413039827890930404121418870384480132888501567995505340965316137962615700924126565127670585868170278117123888248553247619760662943080915587361948780426377525416777921595678285815380770683969530843879556551601994120237661565317927451772058563931036040617002995078064984481929134312961648435627281743209085090681993924814273953258989593916764061320296985206130869605294925464474430981108949116310534193941040133930339597260092780479478357880158610912682148814692732520062500510240593094946335405107935383005119411647424974722970237457780314998437209308827225994308097558810188812124903022956921431982352470040786195618109079948063044688046643050785151957718114693178067316857825909003988393439315570637322961205963577025304449053104390285331463574244033698432715890646087840463869608314142275399075474929646214597531984506841621398372522701659830013068516339879888501810532912052352463992475019433035467140204525151026556951459702436908778991497415469186574918155742115747556332507367763083801374641763599801200498391505367772490542173012293905947891887831129463952335717442121208145596032005852753164615589596996668677279455607335642274428182930344144140575051419165979154452232356903353363381175439893415234450395317577583382522187699969139626197061035066057298295844763225062231916537193380903722627996100184031865849597297931787596214200397030768985027993042595198640838022627857730930820867372994507892971040383174913493570873389033992669952432310362621303347885337254063573004944154890861548559506534816304445540920699829427698900606426247512219101057135087752748595262009130001494551918169926084252394257562574029142778156606596727661881228018320713164615666059100805971131783624765221569759688411622948468500704086399021624908921114235797544936806468241188725055630388821106545726477798041499598223403828824342150688933573974266244304153268914723203542185722691489769067885233194035672793324375015930409034571679363134194488615530416448351268334147594838543835439609401451134412271413164849993291999913445741275535170052521721604291749628784350156011069647018694481852111792695988890515973387039322515312632302252254631926972312234355934168695005597741504295263395765854286150123343302985413754694239305812013838595682488823753844776199839449001084652795456476077394840547065619919152705030401230013871858530559731632603699803847963516003383824122963883261756698818256920224012434611412275238752350052616692977116672073375583703882471598179636934757561716567127075135417931434469675124866776999212388499710061752179848521653992274621373173059051545834892680585103445364788865242097160666890889360820435935126628493154819144242909854375815974746992201994355772222646853141226043612149851709798714050413420944522365986946656697106614168985041052797430649573799225922838313798968176078270959140288126987938073048718091802262889541234176376570305014067815760978111668044573076713730072299887878283814409199894286430912156267211715875094295803123901096134787441790566463753264816769313419730263938236304019932960099410427531209605242102429145654260478322427168111020945416771470643286481248005958249169321921753786159933186730209121220639961781250477605574906053078411688462972831922286622046973761572376271716792298360380292695362514242654555714475989966654422052791542937818532454786691631616991236270672649451216753106883013130425123214591254094398415795511911739861793763023121438270924534044281732169710952139327405044597073628442081058597859107711752826604920519017725747174615928892924070730106591290967482892707878727687629347559365788373406472568074071996053239354074973674242597165774669411198875291207041885627925049491521271571186884514473311360287699619224671876349127175021082460688765497270654412300962751258131387147046112179449380891955513224802003291529916139004025651627844598680323217019633208281675148424417922581235373267061185559429353369235361226247038044498527379254641461133365966596182590821353061665474610453109578162632449118948405202764625874513334835677655770728545157588227379091227044730033547009005974427195878465444892858529171189880025157103222807229956545034563038237638836606265993859499020235226564395450343967602426511405087187074369150212395067283241433564326285544614831736413320850803840046946867619019513785255442063772026827282754587496377783205293793917133688596072411519269009638533151229872244127591608141557540926105711080848514842829459155408778201715154158732942102779228158484727621128170072151968896367872192829839139379997067878672852212696570046375557882021154440317612265862677342435408838687973203786577653149422944699198503660246890455442737184324963858277471261260968808209879622138723159613541798687837682603469982695789569341836471169505183776424507627237659818906059227750016529409558212927840224979119100026759437807880799914725555201059318799142320301834396854224721486249060413297198226360047778385758904275679943681443680489561214182871869491760367479582201261466568228218722244581514619797733334770123463232588530513931885768854262052902809519811837746792044708204893624746003915982985552358887556536663820059713958053484911225450867480102664023010078182891908073731434665009672332492848401521099886319060764065977039009233111986130773781593130661868607653450683501718112839221666265364192576097420514944234280463493378519069009448325666229574551721383804257030834092349399427437640192960488991098052040244332873094744978643403498976768951836506165019910133945173790306588003855234300167346515653508530271534966784225460317606186403835537039155313758551486380770689158491062829331895291501579075594257668827094127725155048623650078130273971182340529329416094181464243279619142925635443307381238912623753564935886877355747316224409143819106403641009720567353395863161326352726791522248197028815182860147480795531448860610550784325451490856782987133404517647767103488863488680842620737641302708109784454069876101428214460038298400817938560217603182599731973417144149535189268131029722774652375530138851696429068273020430261167817814388711438213104450661447706783931365998318654893396753744628800487051452147154911626800688310233057361233104199136709290798265306864464979406505580219665317697194381126303813658800956352705287901549756799332366454508039152476759834553102352605973820052678208677420689458501351590074244872489015056983380432454486205828834552519628846203768626330775331609058965771099494867154017295964960341900891725334053039445385325909735407499855406320703046979675007214674966793837366076942146258645941509627475605773673767000971176988701214517890279789795769147219257551701238099678034606260759961939171241048906862023970941436038753173979988318523983563975434753900409420340918061870969000404852812433218427707771002262019680116368592503599361771339833557669526876286388687773801266979054218876444850252608301812101825779157346555338361690708585913481475381061773790174460136936797688066782620509937625875078712541024334115789670904954850328314872655105979216349790371577732513699249001398346126717785565312577077252871208903011967122770096187374107245361439568307320584077618969045765279411331319794657925977953269366950901060030159476903511639626988533866872102831695870632758487301659646580703691372983929639391097727374019299996486347211222725996388009768674753099313262805164855857970202905677825525364826271900876318344326393639610581404874807324898708065297921077884429904331721089624471035833877951521181698243290363322665328106020878533095937549428633154003161884249276484960795160773707357878724893403885477433878898856765229627187549875360536860087454644346131526426768780983154896854491598870524114884554816988964153740862027396915133548433616293091735391107662362682909179892640666185542461996674470052617197224692997280717867218500956936350275954174721933051126564337395860476570942026446948364360231160040386203320770871555252065839485356386945866645399785237964676248486649752856184052374414819992750510456823979525776142894763315219801295380731981723769572043183065198375700470122767534205416934700551540923423911625935391800312901924707040069624476763436642779759791645021731179287390248338172767766555003301878030755399485528663694792154808126339176148455814804765894603010561521644709389183409873990983853486192389248281379791194715575557729320833545522757740215604692526993805016543524463848935557454491392968265617132452944637871886378662500610955393664773167086777312806043183929019521159003840017200643609572590107382494613532419703142086082311244715210385044599058596238399258691337374523936253435567855727345390977506258080276322373280376784376084851379439392501366163865893085826198546092067092731652708904455212448849940827719778679975821812174432555927761789005504859538605498654038019264555600486593111135218617607376840857337429895264473124519459560048813411992983706500188305544201415123690549633370176130980290394463090030812676614379072223991822781757117567552973068959252658522313599747271551399138795609476410264732118353283121457019610988011054012228753949477636485988875324505469037806884051523015840144433622665717585446590736001157009363219102588795265595097855265610786393768165658568070225097701679101802679382871086733597932308970593512942128402054594846566046347890042610704283770564915766177786868886760036750180171858138140111699657920622884723485814295029693144193510724571093208171690408743152415128877977220794396943714633510011339868127907904794231818453875006004185643631109097619527892522411924946371340780136400994881125011952545945354607196653340305927977559028977249725412364511609690108590704745392411690588614677142295023351960952124311434997096529849563828552754143743772834126102619326462986054839270827082107652366602652452841298781786901112318541218656303039414735904230908290084919219818515356286015472173892605832272666079682295292711907705630214249582613798242773515792350379907529018286671857161416647661153481804744288493852090891773051062394997501152477749954169346704497436644984975990311358742584354871700039460012144206060731671269152260788106554163838812556694423367661812993224638797783544598259934063629161082772589705350353679086854377684730340646708421779622774269056828474403145239428397861644765188999131225231911192421177199747610553240287335836283121810654033921211998704795411723015603115825939210013757227205691652944085297937052269295583228017402976368790975029792870092009141656708652577700470246911315655817870012351673018170022200957850978660550929047264478603572587380447450116860186150397325329416474992658478808417773509486357430392228800328141065154749433608794290548027405659717557867981049783497660735287812389290219911479522363221589292747058930364613617347015065457378894845145803420516616356688086116320673506143161368129022380754193348725454031940482350776926849804956572310719321572107714543144167287813767226772926713215980470474983808068062761130939280900459776797285512363894640133268496484386673233642989414005820877389380550380750077690320776615783449048603268726419455760771616561275110011422490697370837324694141111609748421585056990743420619715916544719180004055961248140290642996622849288751056517932258214873934637435656184528578321534302155942519795790351202929175339188756151986413402546560441715240028839372014257394072412103854423193767550360984399556348767691227738152045062634020568063048215990269640260130381224731114738752378077940354728477520578014118581876076566930138771312048451265047525288909185681854919928164307169719490313932473580306799678101308606252382537545073319120035172551501406227280213105790773768361275515593916620996853184541088796365358321231959430249011977141762448663373751149970509727600079251238798177730400182170327604562994401039017479267996672401406990830476534926552711821558512776072758980174330126619069018210566926467047091733345221501559360361505161150047883436352682888406644350997951080208344220860257828437081761693101848171566035786879295813860746968039339873154585695939805105280125841927566802449601840649665611263515091112690877265873759360567561868955432679288058356809717048474541084977580078909283507240862511280400124386630260929461706206696365823120091911923705122329289450347395664568066960210673258928108408454748445831699368794262853094775161511486758976038663990603339824720322811470053902425785735038402361628265851337877345124236791274462295467981047465353847450116465388968649405963509944383999120932825602925698729666544857094858290451526833937526676362912159069556167286023438650977739116715383220155217856746760972471999226587686811861459360383703794894240079275380529969814723802348816779799831854974696356343236496285455030132440104347640417267660941690737623154324148392167869420910904464494658665884485876678161886559487138956186146792545654787306994453405970243952081949188141026489732019021747881070995073637254043918184367526547172262073424556773156875309059560002382677730895231887602213759274986645347544296557744794151430319775426328499384309253848575605971465690991958432021851027957105928408441121315708057973771708770600209298359063291504904456641361363954079404283351903300161677692270860418857440373007378046911322554226613231641480562523483040847182976384234509249675316035013078790587218642169970407365751677625953976488240920447117806548862535950676262169418665518892880081828064462265061704270564370787782342539384875480914973784941965494523053646848842925752350614108558608764325773727595709554567555536223462090793524421722241336867213731054231955555231822318098358584557424652718714001001884016208387698359959278603562919931687765493043616571590712117503914815886511732298861814603312792681322407970031340838894228110033400076965374465490229166996224894149603666925045040083252520310745954091293261349570002584189397829670164389985795443990828571637571075803636012698591514203803887413903983055111502868460044318166939716079863173030619550444318687071924725756315917432269921023506268446552376007451544828784791663968440254821313385669666907861865501182243485600181771893163960301011673489128925071282228368958033017138661053308045793377508018508347121429684897812533544626215196141779014823806650673865677612137898530376888100098642119699976204864120988603423894660916520414691265313583000777955117134180555766278433884444425839898220362354241272075415512266487829308346231229331192038288682446535266557042316272195328284292343660837000612513174008155769196267263713136729172382698032144999564732349893740810691838938562044679856411748767079719767669758882328945716964748544180350631727302541510464775223673543694170255018723377721375380276274756397484034850253358455222252847272385457772948158426315279786967377543007108819804993332280458786295411999085775739661996673664679480839245844040192078753262803047335286798557779891261426257709848982087553886984822816790891098417041598204942278568675402967285589021704705815293437052070309005375615321243016415886700423956692354177601462649452738056680899956318567090370492068451187994500703196272742432616771802889234311579152061004802439677482735056175887870731464565621397685686161874954249799306530943181732701644978074309953212076166513875935092328313348288412929989467717857767659423754535402545572500310081397818390905250759755180084134984366943907583413488245175598484150058338212023822260990356237995508875617009900781254127016837208615267418593095139067385952106703458911556956837724958190903569201941319743235208620389061494959625271981071078578610277993722913856604344015393973253024884405929140496361209631392891810154023596586183066963100389925755681250110348812046241217524896695251272593903711537771629895616141313724508193122494358762086373886846063984307002444443865310404385555576081735107842150394478356247159725298467298515942638064347650315706436091201867204822194720699789919077139241580915477283393030903269314974442626137748976233306431412253876951372534978731886743359917765730069440463704358417410404064223013158993542712430926008986025525977937163149989001290367830005979969884694255847085969724281425921815582862044399721641837498498878961636208366591059238671041585754122799710155989705129530947901200207167639910770265149865140665808602569987251443845084162940264807030608051395289327526420560739995602283580146510427486596304263302266830546987698062340176295626643302254711490507431144035727116693888143117549022639859545874784082800179662047276210525548650418072281670921448243296895143711820520808066551920331510491307471702838309607063780245589589536192847375423746230589868423346351379255173628997095630590896839558665627550696914936809434283113556473333868542887599992077716739065238947911867696797165664344905240471004242908704803351836110837132027932504938475510692518645400452549822638788977416839895743426284241122495981809154390814372576288614344940832828323633533323904012240103431451446642259262335060063605340859020624276570325112578559912951305725778711846063258988735169802447432954165847446469244089159625656213117466818005116896592219609792952808200754159324224244972623680457872546928367238146520113282645779337165481410066844860148676028466463364060697677919989866059738470430135124520889642880264978884159296434262115926318065390830973044585424083491137938929537584542209824406669940941652125911974428694838639921660196662809760051443054787930384441029221686259795969292530514148892556099426691649957914786518271625439386490930633078584525367008005660227898568322438137690478702889748880538147971064966728740817445218556110823423212166011676681770224488956588102741927951492040713680838289563920580887114877064769312656949088416234770852586707216308115217997393313391201964345041384892965021980584619503446406692759457371874916315275405187455055989969008359825911322153651887109812527912703652108474209801346461296977384737805209233428927227351006793038171921760587595926832074048824061459082389138125489716479037754843806028270445635541220252147371916898467230741924610468533363106991278185079521269390525950825279357464736874299203438846248666791524218769387049678066234834208041968265984318395702782388661429819831463610091309031617673422998839104795679577410648974631962042186624211334861957185868722984366394280505946796197763387108954458294939835076482988330780107879151839094759383857035725906330256206187194640823612511959475050442061086528313991298032761319925578086777075841883252546076861644031083611646065433208686525687207900894718094356112471480332647968333477092451343401850225088860484369179352539703953368338265742186244913131463409632771927478840729576331519584503554346811290461769649453596885783717130090602897072498284535122009184085285003026014125414185756973174063618501256706387126133907366277691786368384058533139099226817159483173776131045296645491729090910507597174060164516032989264059233676956926316124395692390367062490942759498710041084674453605771607130422661775260944380237048602447503471204748239237055914407237304067288295137815691886603168779075693843301722523605463352912501846202120439533070130010821592612708432409961495401864616721887239799688895436558095506359868996112153732276602513257153845710661168596600782801554278801990687693868020980019397616443742235737726705467728273753007922318261933142845749630401476400155742665022504487890979796840003420575656167560329006481180424723788751524322870678608908622740420483448418246410359467367497149946950065507726124572182769073932052540344799042275012155757070380254555441872618038997584303504885049262102294558261051835631673698659537005292207494475614868579518762412617455523379602756007626191700732612252619229563772264228496677179444162088995404755857096160416546667722786972780605912163020220234087268564274645519192872086795259376899537363036825320909010547662778379010726227587994067495966517231730782088562315849883215875951542288217583124001156835369863512715972628367229419541971945417417836550976381157341396370412394771609744642489123973382323321485326183547126867338174417677671981460236895866648321959652898645788202015156469097013590918275069515984703362887458919058661323784979088163100400948637742937542991355375393725239286092750865470975836441515311022425162233146119506768844967484604043428829453055686305570514127207344142118714451918086522868575133552455109070855763167275427461833339046048480092213031590206131486823315519820207470736593987175458313011626455163294059073062118141287197073705352093387722653720837708440675991595809184601285591235640874173776244028779173350776933193040020420768405975299589606325663962793852248583323885565042915575029065841582905652934830694998823869798436215834561750429824172215385582757625361458540276647670775195628981468296582288619122152907978599097685214404600333826771510288154774377393256418485453894466500008324974836555450059443633898881908170146814768707743494374253486253246403814417417418092157204547359637740501562367430255860639144339093299018826467119419930915299131414492887413569174413316393830020489279332112850585390940226623402121248467564672088244221628565976802086504853741723196378488185202530891428521605982127985412880097976972736742615493978382236304146731248599904145402057239185786636356432534006799587549020489270085719875953145143670052851638584960497980773549307581192609389068871715794513071787733298720389360687131868853208315692259130041285498639088223398374913630243199396343246236338707060287700602497144896452968073706924662351913159923096887598781566391857878068580182102157128255872930970312523698658251866400457044433616961409321209453807962425360426648068134940659263137593636882429252228100702873014663030718958313503729158209744459154820109628096470729327258022569705285245376863097915579749425754149851275224732169146464022887776279282297618920133578872986689471594312678840707209458222499145740830533787545705162879414942839926762680668294082022797924074813649001337462910302509848689872978607500077208938914294000353852003618434577259853755070921606669961689343364363411342160114848458304145267118059472028984540258733674713840781068423758912496533753251421479735412218775465693523839798156085753627887724863278079288184039950465350118947953180428370395636773382136560495516635874543653693868222898985323251755762668188191417309786110661671485502684733709293965982213282850896693406082396877373173187562190372049704981744058334179100860829701126209685234561761924830008844698561105615984621757992030892634664801506899492065617686265961547848052025701844284712767586884807420148459342675081476794965520632168987013926936973315467477978006643750060872398386910536878933715290021536533109570082548531091833957640146144249887650177162475083905892536254109421001843841530848869583122493608350386242798589624649360601983750113191602178089351798880713547204798844651664951792248131500529882881789475554545892994253962998257448622606146696255755148130518827997335067267202019773653091944901360246985258361789174909579719920327045921803315271692092211854110240364827323956296024926997386479577202606276426659834575960999016809653619526417509988984410906696117928420704766639376030240124431728159961609901552657208999809865435587260187976926461613776736371763110433606586937154075972341494175649437870284574935324137573987599184926108151270519090033971259743051430570297523951776099583708208716198851099447445306142656395637961828534214888678191931648715097320778590509098824919727945988520622126543827404897029466054737550366236762508243277810275775468828530786088843113276039499642345224417506029306326409996819911655702804142307784132238126953198850883949876834734718298134553816901566080257191530432292891711291189934986495429507742755737527443830965983732604958568562172278013578261235637615530952274620193820821938619974538931407657003872841268419411103456736523449579910174591210255157070627515841269018145418659193332080137519221494391311390322164307810398345490984097789912671027305749583358884110460762474028662813671706308591895511945386434989943065729606727446887524552019759310660042571795411224735030235786929471911361641408769474652846690413351973714468286371876204136070787809149677854038222379031325933707416713376670300074174297889810942077917603705239432210746250536561210893912063748003777852982810399961982366744888654858962175855103379602689038290443620117930662614103968573857757329466187920416717398710326247875543226747079766098661328829907681159356563964633273204741739784265369199190646712778194691142976960118511471239916246438581746961620165320380690418516622834351648532800087527289125465685629701201490423918431288488389663226033266490504625424514215347584116081980944438373488836186965881706169576409427254428138926942347770515747622285386000212947858872097964162848784823402978623645157658953918944950241291951379627932033037232242176326155841484954516904150481594884532645326553653281584852361499117017491452565020673881465567418367766013622884181398544575838175149216798753623630224986650429880939102699718848802597021704485903020255281376143367273000239314876299433294208753934637510479521663759369485928545296692388206119609240108921940593703503900889489567554362043651223813504612232372382866856077012147081993400632500504015944476137330293113072648737428865343019135662635609855517648157420585324060915889455368833801259706382927178595879134872875146570278175062411446232761653556428807613855546695349648767049259826390047902398515700112973510422734980397930594893217731377835894642742149082818960757531663530474132916766726095819881366751938560800708344597969448541187459637879570518688388410024575300697902067470221895246733062965330342647425250643770366535796179927235140168088257230933194932235877697472080831632355032305372876567519744991243310734787102283251543468653144891570018572714713571395281870574403999035495292821984194312175107601239606851671559800959248113233096097277527290408919323045138192140595486909598636156394978700520999400453737343156735490812703704510200581394407500195798398153412379254954412683033510100983294068693167631486522184212629750354696318803837229693273196369743552064935541432839605757761496876843255071820259896690012147396634121190161145159208872722508230507932949494079983035117439139983561499528317698741053009191646371157608033511517823544752890951669668677205601074949728003859896889690175959651632083599249657918715316651765549612330531322300490379802892581565885346905592047320220448582157391494245442560076874875963196383371954892180348425782151467432798324626713901150955473503845122706744168158795314683679900968850352672289130370503480372551647510513950112069430326188844836012931414513267422774490205843566135720229760256924370832441473642641686246364411282148668230832788188494762575231475975914601911830264703265364351048628723308503013729871313054656816719716890905587991979239236783607661069139729150170285367070569174329791673497006282391209582141932733273361327046384978971169436863631742875989441795970005150265948402811553367844892890987111274270014556977186037683662578910129563249421739324232168356599413714970634463931210308426517347819460763480768667087802256060833998196852703913918886249039676884620136475618424530109411795428278950660962786715984160333835560517106636856399954515920294897909002016370361939133668720115887227353601700656960651464471120340094309551938779368928571657979945702661759806750658584312007097858804395220899315610725582190373890438252120855893405296268706039463083862964357048224731511988823264965123392600187450587221558420062895641955723634632331736133539635988828154163245820868282051771812674230009967145556939963211009792089279391206198925227872517706263567390676915075036279049590617019026398853848242279793595660084466646208117859652920023970017257321295381222958572475480299622804524803151473644476070058401470111615758330158798602567053286960250376685894688955023257396063113350790062326814658960061059183444981762694684360620874637260023428731048777509719973729761222048448836153296814104084191527315302909848106065910524127947206721677857638503413335352953768616347649393982206113351167018085933748920098562602163753645763780873079879441630313293316895436085481882718279108027649824309170051899256377720671901282595644396814549721198775362462428587348366727741388547074278988113931036710074026045809509374008931914550371596430022079870990203065777948063315078278940388496027687867501150352659995965391190385099575413618646077638276100001304674420375584841941075474313628321747499691401725627458019098307308145989564263710707449293185933599496778454639752986682330066260519705295839655493478793407689272982386509972833688730942514477529332553010929388909505962166350064585168264565447845180421527102664145472557243576467412591500350973442004140137796425302765595800327792109172338906938023083570007457202077507051320768536767272669298257278806558077391819386526298795127174848702311339078814879707566297739766886745595026821138724850673265308769626032637977883817039169225967070289286107234695501370892227372415747352146311860616833296428089427109325645217857757270417410463370921490477550989291583656236696358717002254740672067093192911298504984090118749708255655051363127676195118237393101788940519552680738315732701998473140823010125986798640249312652998698370675174619761290586419715101691903811305389962591544058977983188111848636733518061096425229334202379950798747141179724133194970352120390227690761693998661539247323087743933199384739346554960246748514595610893832143463804437642967447806044542861177235622881235455493854936747031830938630059948081007775522664098580690978871378998953777268055931062615837683270227356952548162868397754059831321881072095957348925727333607100177373732221572506245554076368125818209945643331566441688211124082029632424927154040257558438562079972481372543147979164509345891752823037794163366234595408270359566741034205830065125966067610571237001968882883335782652565408580060812476178346121343470426599076471885291788165598760336660595722972060467641459384056050985003866257202499991628345347601214095757561311377201422225379992258192630947647380824921053667270233756952747512467574585656475437187370293203808164716184881757492845639807036059299858141720705239145558163312398386041648372208155081340838489890108366584225927027318649588730149154750457798656015794960986925857407280916123745761202808037828969730368470554068069623149508576585780179457693095467489289107241726997087828710790670221214053753348991612709489247267572344210192995716317251677202681645119541166379138729020266989452202267016878474342065359295371655476871469752207308654175307695502877479965694422846207438005525935426234468118729661835447521732595472403599115499033810989292538332301108126011194582913247891826145659005709191480498898106410926531986415491543906371153226168013913692077903113441179044933330532860222488114011183121690798555552765277012968970799415293440757744481215215833914807326588549027739291894694430223060336436124352701765988697804072997295130502643362922997685978827880727384238664341055561867323340524330442126542258092202612807937786831680936909650393071851886957554053551924474010188943418513036377102371916542473855697723434544164292942818412135505616030340415197305170567200415254841430480032671364932915510047527288635743156272212124828080394804923399414833168816848856114246398562772124899801046925246509842976800281988738917967161599756299490810318094577654993003353372766028986041305137208816749655798938564649312549305261794154357932439967264638223127993043825027457046156612228021160225297111191472604790679114334610532916291139941814270585956941209348705329859577332450152356744973314305978034707598118104996264834658498942908313702882424640767048658194554011222616640067209749347735432236607890982793629180178659752966916049133180586454418649019700531272110948672892161104504999285033923823873427727498171068639662551650545007777297633522839190936341662686730283859776285488119063765714156748522900276413007228464624776604071999694613008712309698169611776402458802404012277418711903828145364087877021405063492045688038663506375827652148287252840916675958836895125614744011243810584148169296968942308269772458826627968797006541223749113713683518273816786549949908789667069442237087859447037228743161509109596631446466201164070945609747984902336368998006439917728458070166806855050901362872368692311375217531959132603685491079270852283226079413342844843869645538234043507367517552792845759993897084065342413403330059654225845197743549315652525394904076905497553575974283270739261405029025531357059032776602472873309375923278180121805754870154845632321548818821748220175933259548451238642854569852437940055643359240775739243854042343670253663096934297865742526702990857323452167561710123261449059510089220234401191017621933825534855414517694923404167850494813081108037421525083298166315034405878206840508107976351147787203140491779334056996245570005100693036175538679862105922113749601741647859581459938472721179339102336288987467100288436021052170030892146382834642017249337751459461845171864693842448751077048033105857362742225568981078359505681344078125767276467759112661617171405478682692221335071159277571118093621635640070319886152791549715815318620255816103602208833140622334375402127944239891115148261761456759828494129184350381437440406672132027369655909465688771867557646895937998403428439243642831384999361064558995730821752409575198040756322481727837193912031933520095796798854086628858417158654024753194619847844915636237942278008482519000342182972500368077973282965382738268270964577883062907325769696592585022478834799000892773753323379739199484980079456201626834352930708261139150815401573863587479108768681933062234033983618409712895981877562602320509009083023276126078423856047623994116114319918232855723035025632996230987986981372198738395349508800511056502551983076631001619269793411377996508716998429506073438599287426692821325806226561042709298555323533190484297057597918028685911242678133278920001306637330850163745789963926841843244879175040596605681343473002115212736490381460146601752804951232356523323008822931562318907472490518120317167734021314247820386106747549184568130175936336823259562941510850663733241345865262633044277892032996301166478431055788674965560193634540666107980434433101760405369658787820701177835366459579770650091105134671806196456268045892855313927988654488718292361747895538135482243227886132438874537573063925535056108022035560618016580113110466655516833625015396973279483339203199122342273318161913617394790971735209725444187397616167995449157406664226388362108258654824667000046603045031769080346096803893749421289724462507372378801185645049543717747930590105413309154632762282060176177726835719949947210008588867775294851461832830022160531607450286227139406225752271536153117948325395295552742443222018538412130706088399437290030324169622364650062679206998011745074151388569172249881228694521886700365546148784018091905968464151740997383864403572306976416525888924650133328010595770874378130562626917433897663374685287599025182271698006671366646708361635272676281649125400544732434236003266930910899393768313144242197382299322978899509262145427603142396254271230092705131256849634464869986491336884943639089723126426985662762511195953309015856024338982430606220942126898955033347468679306819675596149852797331688931123863928159704872146311784898941116772994112153556595564602254923636029767497358206868245320519582507730379363207582534854244796943684323958300229664803194516068861469246983068428373136376435257635957350148686021954365414064201558168884496826588112346578630251592084439687290937301123018832008241085506946274755850721881988176641625353285219936784509184182428655803081514319124717065152153768560754252963760776766790355340420681950971436961093717825001040346833890047236835797188718171866901601416549973181593902753404297029478246885715803080708271595273198839570827244320729419541477376160496369054079066248569819214941742723336708611922624396286500454742100377481547483680701662129709692506903003943401395314388437285136146794894202202440990456468490128084942230059632100179967311469204503257922153562548371953645571305199770032984963931022431021180511979176412110170676120373178870189983365634887019288887530215727875646836504202114486565320041827358101052483179031323330999480349305949980910359087330683426208375330508051534731571048365541101858028938714764639728679708648175511967444202706231028853344602840098064273631390115188257354508704401278803203088045899940139285783137032014631169008275408416316137011378228175894830757274318712663013695540649705124014514793856161607269587551618897759220093725494342263026666980219056424941329713649058451446070935457705336461927026351091734441874165996058050721762322370670527694064598828269651738596744318504935088709778844538955509746429914941415741063308802091460270719921816981821848327678140565798031917860610615469014750739181327737402257584650193362927178684413597620946794413405609798352525324749547488537619645521287202144933951857167797183240136151680833948120338647768328115354036761880487119525767514184498817143299528951896302121924404678378057413972164676150352183581754195988015587818389877976475267585748818331264167501749810815143956777800430391656241421262183012497813989961269749311366312453454316541231370246544678922138633261672210957095956775874781360274393282525867880943190187831786885162815506666593489901119484204008654954306003803917832796210697202261917310139471184135238262439808203804472560429396888860804766181485442792435502261760433830379987532493633844337963930510645729014703350484425150829410029885717602209436030402689545253902264156554722967444069816099570489706185759483066124539686153354855144597331415848823064508729062747461691612693811227240324559977885023567656421042563528224329378227841337453906326841724811294747773030374330284546143127261463231054005353426874295074516071168211325894504737799852590628088970600841994325724353565991595671844195326672363569542603751340160430291739059688164139004648874461987704713895350172088782930056934588329435186236441050520472850795809082277452628379309621245247595045516612361438921321303632724583994778552010358178117546910511108562484397813271226425738183065824881492113345160118758678218223689876871510855234308438356729146224210574386173325666174196099936951870348029905664774658947108378273848943931133757530927421892233623870241278137474699439306717379258961666208232681848594299372006722042496665728301766117251770474243838873560953063077199230280701657315710923722634020253364566142117210250498340082245863258341695067797490762157337322084574771516728370216515257272690632420731081126675511116947543113934249625225886563205594333643320042519380168662236961207972080580740842366932359222684518055532782070923498976196712171677979162425780181446520515623399935707138000186543251139952406157139627860042748761022274703605630086648981855636851288380978403164513015656934545393867343428477068513872235729288140058166779277438303949914245719052875735721815448154682097769230039701931588853344831834588709784166083322294817764296269862440018956263080105855695187343003230459129313590389824489278817580776525982661720431484267406228422069358052956902096633837016605316358514824802924808353213333866336552655846206542647208138004228866116415553859799434407771856815108755523126448545964525682108101363543381796045718686396281912497281114155466294954354934914680495744830271969878908369322495792479826449028468729907283707520127828417701296038008043731360423501447543490823255460170757247290533176026007168578534904476930884455602408001824755381632930999047059579577019350151577466033079725700373762325590290641339382501275562649100510616602673582260016757926804227712563042088963082394958703325881815901148357758853131200675974897321484873801355473336822289584377169733243596867061474174214824198491715314444568644103073777827889633659175734785985830896048923788864995744858433237190790563871810177897048941413043979539619304755136966890917381633740202841805918926362634932358957961233483397612835753302169311053950963729495957963237906257024403791754295515233462608114735451617283191517000014474899195218776476917796619525687211950072287996953030485369675763637399079443068124854411943468769764884058346616632214254392467783295252912629907876264227606330177169498919015833545190931969710555142543804634544788337295850795248169098208668872949001376274936027610045903568066045868909058431258692363897381507878483913244730620982187600698931976648193331380052981213588470461356389427927750975444271361557414241267121343614431457693594318507539740155634504300721477338036015915644231515266680816325650072654491737090742236099788501752860483087906977643378024401438369175765823499600233283998024261432303051647115052461338692295596198359018526989237206162766722239182968662229969012836837210704579973823259553391994273015201586329031086623608902874311511451889364441672750585782363920478507306914908015077421383261345609768350470320648086900699266616858755686557297130854886848503055927422266456489552175234253394411505534725112646874301122506920502936588393469377742735748818930547630545685454418508778334402716495296764357654554237608683138550128461793410564132515360011011623132486698903783227670525440629689664390164466242697687371277902594848672305041883512738771499958322927201056908176477203657453830626321212878234468285712677402161319942376745969026344380275818965473334216076195899910713593304608006360114340785902223013814431675618941610083866684613067297879981602699198450160903644503543006885749180789117498869185855912088927342856240750598637464206718268858410438991569960048600167802922715540433478128168320697425259008189993852431294865490970147090348901658048570591023809840230292095484580270313579975506082780061492870342061018970592855562503690666603519135105061273768315360391598296544096119848260379215369282152317537330450074594560265041649063874521712882164977966308965320357792770559757387890470897607282272861556133365541746541733325319504614471596125613447283876079497920347277890260645594036838939830512804310689788320922552674030990727666325563098291433773362487639009803746799583633167074909560157767806252841815856088281251037304566516783812329202644333428924799895376370028470882057317814802861566947067176088301797629574365703863766543046743001822177521707979011378132020917101225944593947603263352210034409607288891180582302988000139210576990206104119422259014412676393754756585523326364613691909630559005238784905808585472189314329512565509891118545790904743098672451982156484092911235670470447158165412242094848952602395442514968969986468927865337205038152583553395259594977924503735072336029292568166440317544720933502346993573428041628057585312310210403470741055394794662342247219765418606633075609383928430245561876321522936953094967261453911550427797429139462348116389099455719879805891080940522085663477364025185331579289422226129519671014878689533990411656262361099307862774431260985791519865108219376344239750924444318888327216723144731398927565393874690848378599983903019284755990844803139757226257799580238371821182610778254632805016627569293348171019992136884912579741783441246362148079932630317896300773162287411001414744682958710964094360165114643704044042410280223715486434163126869710296745723799303787091192660226885434933928846977833183377275536002360452697553331207405219443841871317065004062303142578963962462550805346231951577272160682467971323982350711214667903334253166105009268282697832051707970606477094753322191130031634327466649212585334869826284993336490749757627177624238424575293760363736930665698580813242457184231916598443524836383914723677091125428797492840916714841056061734952555303808025489089798998339974419688164435811599635419445468244300187739344851567862993714124642025542762803464528194319699851567759428015890117242991147492324496362966536112256462081778084193736717417486930319865392314510420342087874944638342007423694674167379137718541729302110672529004985058939500157644652578426785050041281505141101676109024179981163673651173343630520421718834697334409607550618922832080020682321882552093166826822405525067853326727393544627953544503469346708868997829659766680155868555439280549691600153824644154729634264346247442338095616697486432678510537404871530783285248609214792938904006191940775854125772182974031111166845751943377154666059314963226057639579506672379248045566267449590160990445717007476853018258359111847027181738399220659114697386904071066889191440478183940152554984309841740429629710037588902667980037542352007789188689320658825673592163374899321907433307763236806306766031330580993650392784996633058344105839558423547061392583029625605937294969917786537007358259567291655637575333823794650667028133163367787785776540384450762237028156002664687600833008347769410652242313219628171717051745747315803146837794422992062584391451630642192807623472117373390541241689812221162744746047974251534951561448784645190598055852749277065110469689987912269209543632918756598497581600498178265342268061755799778870982903979477692149897138829441298992190611100972733446442254587081125627516076895604186952638176562972535253204654732232141127349449000707070999534382370431029954931899072903894039360084645792478097477068937779236093482406529080446823873867535504321438033607221229022859001521687474418687680218974235828115058684556368219827186838282271202295355952640981192206262566181745386204378976477473674013011410619178200547728890882134890713634827915593958898431114146844929317959587687310461994662172429940553363456043726428831492716589843358014580972576277627480086830414876612040715194827495097876062854305260609174030415856194771042402156317612762503789082642330948321292769031081330963355364460998113468658262919385030633646688385280452043912065096659934376120972103566183449142063297509359110553383819962863761112214598310028863877752253889871071693077294828968283881800878905575896287028220349555592191964282070266016697470450758824123649246793082836044047799202556780810097082707396392589823723990315016973687807385505372806600703393590298940585507101555820395192945275576341610560242684511731947093866005647220996449700057971162868387884806864575452129887621201133230783599445579624275161906166120865922288443999371369161337747764796754640447522236519879189066686946153634030497850427056326973688971767816963589121479450885603249203591050005270291250661744571090248823185230873847337576096296230032316319317705124188551887400891445227583872030393346341370398837475003700041303032374616810528227896302406571954284743956136305960663672766163707624386151793176856378218167072636652637274942966882649642156690987657556395389815173715391903738736617810851143735491718269151664658795431436691657455991450913469830055434697394681518491285267436821633233500240041534756336655543674785343566384349230826641011863794636824274147632133085558608911599159806929933335873799921170987761010008635122696610858237796007729825299164224524537757907863767700176204216980120120647778816812285322970158265153759104727982085810254471643890921459885993058738998061814443712467960927896016995930567311477876516454604182806808137305641139477003395510592967117921357356142213349770103555789039312036795077972678552069130961013305799573655659898421408011089577749635249030586721440332122663394577760336670739898663756555056683759019541117040024041731741919439459587410094912791893583220509607515445658310764632202074155673007349298392237588602436330219358760270235383485080903097240472306748338342756541939017566330534359057292536290666629244298849188897493018046336827406041879726445528790910374590152796299864191120641276634166546726010310143946482542731940826051925252551470778065053819397034148333188388624454468587502835136793106925926554234554314028772700964462593259362048415099761861355931150537433205957617181753937237683494896588055619710338460567651780607714378117511985495815026595404789716057114274816704335430798362768085737520359804547071898744462755156865065289903442705242266329006737706140738453314554636962039851463484540503624520515544809019044499277919701946340520402164922587968547709646591896052550802043743563249955278875640185485688090466172664721930353980257689554075607094508921639275173362484872746063445774606143001504714806638023075078467186626866548062874953343812650852986179360627305411608775132065067076009515969692284706002510591898168605636747228483403662313128400278349650264207429464809871958179891982342267801099136726586977957271563708382060384675085125037853686890500029292459138144967610368015650494006450172028100844074982488433633837738945146423499807434875419495706534048759930629686574017722989220704171237938036868930195047140805316367924427611498728243497797345189655310351516300192841073985195246807211364384786874646878389054668587014682004042476626691197850527702329950255237592021823976131403013182078110942434189403502878184833569987541954914249076492818501276969258450798230992456397400749002204140040814982716177223278597182320744436096387298396961769523263044226671403564480136950111512736195952338954246697996090297111772949798526018120959498553479360399587022603538684446006003645587837208173448481728984962334331616852328962817476865669477744784117666778555040540203287723129129612007175618218574966072128601155009432483206606717083733843924471749765065065395869480652749851096435044131366631171614909274800894797155128038089060266123387702102460871260236923627820427206321488569558386924455619295439798282458631291559701611213933766704160478146545373984820479320623054588918302366359110708613236136202530060581680116956767791721865838986110641028446669353951289078736735883788090729393355689242298092189993758565251999683035395720430381542383232155894813487973033498622566948609440452371096311204294737099983277523759028794351014807960241085318282272720652091714052716399557006854888993071327044426381171361613784216492670845447360153371535140322522669399315646939254888609277194695095102720565898208516114169375891858497767339581073955205541136116747458894000557926501251680225642913290464512246101611637758958600355196330846263680948429868557821245923786064491086261495283867385748460624329476975565060173447023224516932581959420480174438618277900997910269979436377386102343599019729026657217693490531242108201479010762344221176404981710940456467147964831850036460706524373799149575490746437935566086687350470688028880227371691506679616227263677914204453113812965788921907989306792807951963438554429930526671181883169318151533000819834137033633378116513644784495643202630447890568832539132756855006498874364529724019039321942361946858186092481991447182231256350361070990814381682009488814574791834007420880549282434648220201809006608931218487114220238905961481295707898687067309632835077280035846647252633326092546798831562814721665310429035510638186723945926224918971857466227564481923207912033462940462371645508682074780792120022481044824089437677296457037505214884323833477844236576265962577476421663383869681051556004051166589294226556430506743196066321493832685232411241030982926183965667265375709622727081637652222261279570378913027362242454280235776949669797916037806020611998296537668641486057372437857086856953671743052858867279415048697170792306809919635597090667086086704439569492989034984609640835521243208215872209856942639442068086152539322638514641858225508872435640761007555798603043006190293997750365292449627680630161939586896748428229696682871600705412188536011252621472619919345701124941360400731371035601235449141445611326208147972202445629200855459676710774526294464036987115667370523304227692060689219972122876515923491727088250526604784919584445695914954505203439722196057022428705963477199487453423035849734555434835752259005001326792895299683452830029249678715325695089559947356008771614786735890702422303452567709264186130652622402665593023796108908654028523635432570109503857035922516724133703077459528298681995945316181099708617790431952149454086998001928441783404417575747549841723432243952542187721471914287794622704245511038404102299632182148672447851417004323907658205074417433391390254937226005191780552886683592783596861304844805476520701103870545679050667133268614691793209741543043700590057514024530381135085976232049883500375219010731724239132061208453416364254209019908397895169749190801982570754695387176043555031029354560318825424123415380260235799848612710272619459461730250150627201782718347507953754614282322402048003534771308735855438658380898655790290172089921523626028544134566644210075571317411536188136435968339178366853039551978979318334402665763958177638441502047463839169434940375471889635956653883787817580085294331051564780631675597639684628454868517613078492352192875843857174211537274266247549460074982946468911313202604982426666061782362167521162446765571852014277072651705457698952689158654863836532657746612478287586163955105690793757904746800241480846173002350065115943759950472262795355830956568529055241243326065912396556616297515992467856976728609578387082972688818624776428246088909131027716809233417321818638941302991280178576810041184533170548780729935392241647084659276769596008613384672589179222468401965236004045192266880502291382525427442729668668684434699936464495385030296443141816833067956606591922422686423372589702974986779822379869703509156728825011897285054366969991182292764320134661426209667403469891881233491284987860945850830854116026791874956383997265879385404937588937626517521431340091562976766348403934059711389589611177923727197312008711902838723850420995136502089599650238692387431123007649389545870453740391327674275465856914324922344248795497854319421772955103290436669509712290579410542229713849833318456816780047165274303446215093737456890883427726549979589740027715869728175671621774716062393562513213218337706308123619906676206891261103358399766852794022800693326230427643632008046027945439821856926895760882981052034704162890615142695566326024123584568477402216153317507949045061899427754164876681283060876768034280137061515175936542004066434433426496963013597695711095384413054751373806515114656704272808787921116188386702583261483520335952489799880059843268521422166101213864234444740355415361812545123272541790375243284652613400156403407802950831738706863385821890430943726825197783543414044146312250502899850956296472199898959957027601716108002639004542806670193688700868737609635517053961091586488522475225982760850986863931908657157051464794306498079474003599356783157531697864016412102767359274484082147931616872014630736832680755323555072337845196658339596199008857560532046490439871878000387765344984827912729759792678589323883519784359774519933790605004783574741301134385776701277467765584964365349920729112750524478067990024763808133608376915934307344709990872461246951158499905693894581929968315256934346560165049073654345616899244178541830962787746864256473309080177123473827498653704276858941835387066249694535897512976364921662022519559782048820112202452063180174318531405357149398858353520725336059281656473662228037512543318119068635804501106000884894872519903861157068600129173394913291999098969965204028647974786711411264149735235506028280563867318913520620182265447423753075914797277834548519658095711767037248911322187418488420537545664304860548417143542098122079034390146824643080476309399999880943640362379049566908306658934411667123307190876886902228908245509439357653700881395446857595822159242377133759289049456699134195775694872099345523487974255495973472566824570327524856342058030051906633322261472984466356644139474153616390319636890970189293421841296547064212044157983092821127551232309411970468703667558586291468665816011469075818145323886259946881306110085865524313303888523617875416245193185488543052047658769717818718606032450922670502356233075286540063445374747739810330175301063928587670660068366242391593447479238935868447466881343976841289522085262808015247811580908728272091068270714887926222001887207133583473116049387503202471350511097341514271885107454394386359982516893867278320760656584329964192668772911788055306398770758928466546501756871388509785305437747560815981890538128597597587290276419145876804693039579894025028062844944399772678833460349871447159111864087508848011825046606269492813255058544606680721928076722631854197060899727279328835630867966582165637662126870006208613985795336872183297669435258658521810219711279998852328601454243886492106396255081129145245255616566251745398210791658322948273919890722663808593877706669201798454373338257583356165441482274134936688994627566230058234864163748912925743454265368720986163347195472560537649026110986160220637151720317310722335277790235623011612215887219068318476967121545447777189197636476756359883650485373868147111897171916809442453201656264658424153204609521975081387494362727391153970389810220502072113796428981678456571999832095782867548246199255241689506475624458756804765798271042064918280049611417899632653493836970996186563356252519127952746611645289324394250260539499129767894868554513836462986138705930084863951448275428092542582659281811623455857369643512166112757078658787389100475094950207414328556247532340688069460365866382241592059477011627245535077018832034127506165164340989242766361949066040514759018981828470414540679863377495897159330321086396794802452236021904707540849524380936220742042164446659094186115161254214397853035314714220427605099109995842582706534280655169953376413540568398590540391144111810793179235479297804177400311890283401420591317860176181401013906783945160797340933314529288335682667610873089655686663414746979909201291639517765647604100135923084640778111857701714754709305227961078051292259221379667679524230254777868690986986395932830175267134925739424766570379671996549057910346451721056316111628475761605028027414734420593798738570939365997645840643634710234105138685609815436419462070934874955657151525876473986387466291120525218861978644719353401218770856443049497646632721117312966307401474288533880713955483966615116435832796327071497036647204554823907524170487371109020356888784262714328459682948590109912056328006778172819559480835958863738006020331258120404741161951005570766375139185206350193775668908791222625529151154171611594311232297484807946000842736178369452653656863890892237921914888941513412764381286725354394383665876498935117345954658221046207015694624962982968658694603297164296105830273629466407866954804716068767401293098388270112694174576728496538949967770013549707175873976988535701609968871924398012575377886300452996060389424525329812768837975328294347847471727369483897844303154455723327192581956779575201768405949103945102487040529777546132413957473702495806952190611935524656130076060817036606398636909196877967326987420698410215404135877434994424845398736628997937049319920124331087177158890833145936949751344415030896988848336704889533517343836661375049886678850189787624889604189195656213492559957946958215127187360222944345760312341161622211878306263016002561513060089617958809133778599382757389116617492200048019466539716725319999678782464652070420255289580612934879221570703235051078873381035613246905891254280167314522261051097526884458173958528674970087328173702650391141880863625786006867709535709454186272037182959232939429007320456890853846769280767670607836273145466135746451186141926996840036355245786682528605523608783926337209495568657305888535524273171830355557661956018132069697052314728591603657415281937948039078057017766249677677083054533996441041149074448091893544237158751316371206909284971881865265179569625060876808637992992751438191755131412856983804990583832466407184353357303197771923402173355125247540289594645193497894187821116524420719647963354028084276825874550514307540912886970338275798291725270125051748572518656760529685757171043985177586346549273633497837457855775175982311888796356064292882610691522113877304690729117843968795717996919087674744626893901043838930893590681505506251804283424984828547453739091196550057874852361944267365338920352933817968794345885130965448082595216533488533142585906605270100209981304986906610698677234145150216180332181725178026163803550800611514851650187034813864966232298355047474814032213413711133904201565046862958632573380327318893633782129763123240816594658125293560698325945482097271872385586401208542652793657843708612131900849444631669227680474991809781634470515081160305546845477727121603537840550710447517401778915850144033399711975439333719021937161199593217216504348598606859907581486633851593522539828386365787049426792462482206465907637116079911666922700483457738349505076745617132967741574193605423046510863904707430966830213531313738391540186005483158199947853684079243886303894244866672916246547492520575545499832899550524654939646411067247024618161519868529574083506627144849297627610327661507954674098048556480451992670006754105146168240371336646870739180576224596451211251721492844607838729506552655624078233202163428422744973406670605785481312841617000682794165240861605304976414153531076247585161143189632664121541764788398057395181670827546264019133427246943406454609233310750056137488584560105870764280551049156832299217771877111422882139914235138999780480907419667504293426884405876930973969884921265740650738424132590499513328074891848631251366005168909867576618930641860145076889966436459847824247637921894682052933286181607285862549019360639659721734597424668534891907715096959471598414958835749940794307637165075871308430350659656327614249689170270472511828931530116351364012323319484777355643225618088550726863361566702774766513168447304589233046845035827341392155205655955505440270077095711891235370032893938471907130123006149485000977330419016297408129412131007436521696769473711944650430267528745652642711757677298510022731815314791218667823176381430013321357233316408367630482863502462292951039446419729011777230673981708549428213168548786358442315756515126424619713863569864264862557007288328497746525656989358881220656154327435235054226430476307017596203998944569375407760427720642856615642749640623182258091376046133355409258109348656833959259597723292629928394070710266205069602619147507145467295379193605773395142158577367025812554777780561818384862923578290486304116967594759573109216364874512873206098977515744436062832010751756050589863773946426723725663313291514763629459652957375045560330850717021865386497970399826911957235654663966487883670532499176054762463736883864743239368030711240814009841313418719023246139816728474348568584332490676322680788298969985320550015954564258464295395783296713684086860555137613483163819971069104112487722930856559611628925194327289567357930854882534621880597830361967314347224473607401904882543669383859498643896715844346497819484608704668424405885058132909486752810350894189176873601345670398402540953998391292616396401197585040283059874751989038363763360479521800905639994071114901634881160879755828688711237197841131277404749774716029903909862932011943419532613068755868700479115058427811892736018988455379428009383559600305556424905749338311315812689358091718216793938460891311000913782169602569619439156385709772108529485340840222526315380757648143521110178606079662021536457451980428792492155960917851467553471628345148097698478106679469525804386278933072854430755186746740317899205962325306968498506222564537980193324071470105388312457215975293737664144600024333474634216156471090800684485733100996979567508613229562153948966129070760870594577321109613959572068376981733321772272294523020117149582746246142300879245639153997758798889343605192809280534275728977229827041082526506032247474346553971244458211009418085288276642872155303732073030536999833190954644601349058002772687336090967528353698986915299188377794470867320805117295882852234634661352117877708220245152330986947204880236983903747224506945292333816680915602161194538071272085693994427112547056770339166068504188339211207102057971895974029537191378850823954184472972051258301450223639984588818848079532110961360706818576227037222246736786329888261953507748848219258010102816773487801365173708597515968635069276114868186791543306331072840528726329604274650167451209805724615983531249796508336096289846517924850865498501765792674836830314023725116051904820049237568869704813235670138712214034852597571698231493921035044538124934385475404287716292607871596597100032425350818006798504784670434107138023000235584229276244188098312102784984568828190562148611688382921380769559023859598888271842714129831535746594838350886367556872507237005788208080651643085130575390714808125198197275440604286072130723311251343547351228237263690205923346840895290394418174722218080880242037454292281950515602090325706656667513552221108389323443301310922674560908964892847160090016843425686030240651838712536444791084482286345723428630044777153567679200512680158320684514548462053772408317023075118582695882781968328062931814157962923029145900923892191050240033017159853602106898165730959705470875430491535075728347102136736590782988988985918825850638387058232361040134273680214577279781265035144713007668519889889948812511324071231122542365537410930571377676466308898081974667344019485396742746464858366303858292683316324747585607341129560442350481513665036436982413065211648732136172781537900111843876479214730602485996966264597689599961667211415767874271631457434219196612543824868063795065670783793056645487497150817126499227458770705140178403252025837430672397938751940738347821354249264480459416936012377841557568380219322451567198146831319351717687676754293680874293230325331900577611530377848807671791587371824189629234963357730887133014206582406472018436866647711019508225654418504141048595092331516417566835335903568059777488262860392163051142844014771122767735978005569968564515698154440497309565618208141072345550770948893164663871587978269909672010477004866204157743641851008897751229401338621572559796673030033335608965045712994860450880103006995708118327412201402884673187612114721507608286450080493350605834124400534992410079189789715694292906019459616663953573900574082818979586561063021425094057802600387806674702572785042310267925526866416478375723919265740833531010919946058689126296928972279969561618379658625395145776565138991560596911925701426776971953622126921492479330132225341796733804545690690022448631454369928050895902879853639911649610456934163523738167270079824864959372543294414750174225348800746053668527410735814214048138192609577485753983239643220276768982952993222991005911139480903062578671946852207543672331441563274745841367829695182090907575373808152255068158163451296858430554700340573093719565115333411882257911842912789762442742486688289460841733772762858914434381079663241858137433846559133612506562144086311856550748203659540631199451447355236649530742436126220822158777991811731823998791677268624698100133089934413410325565124475098167383057838800279317823662668005733866283045269150121749881110106626631699907408954678887249837606964267560732765502029530643202456584880357434091901845796967091895835921580643189211550207822254058962123850483633366864052650953988539601868748025439599077570863564711810781732083588241078933984849609504515786236906937909102983365861250578006128204283298987013036174255081417929885102043927760391008863991970883894224434374762445064994325335007553215013569164544740245063414217209263704944162854493551749667395186823377038822701742839530648662140220848023569461745193504452005508429896063854978848029230468765093182430456069066241201432328860358702904692695699377283699572561179998141680328892009972076764727501627836867650540928061436825599340753710851249533505218381221957941843768750343747861356974665962198992983397941774629139991105033856608029725055647158466340714418810406681604659430800847607423326968987058334079959140117356140151939292709382712687357412911864787881737933530797239221133192308722405119877675739253726165864549426970835248628842373051086923121187061719785188209150825532376382874542005836687239908789431347681712102521577682178540349826123344573321254174317451021853549655579434151924041429385750734501873226311269652614808725692696035706812151890737658509891075362102883715027221145715342089961875581653159753732286965870661344104392456144311878952574621725088814221073288321486438369157788502205553043793870438751785534900033336463282506360668434588165228858439143410744908874009501134992575008379355751565553008791180473363980280727351149899654498396382793230869298165472619999417035882464036822960347475410975925924275022130272331811193692525583679483444535581223185016372875460245591428936179898410034101496736734869279655352991676468139620318856482628636652051194815519831936924360187203396258643477420244385483432927070408636023717711895787744878210908310338603375716535638376914811155177578318605865271331483470470710147491440729526717343731889238041195791375831171724954701510532290212277885637591441268359099147735772189678566839478966554619377684371992485409203477479435973596459075100013413684632705399423663318275732602790593132890071752423297998820287298154569806857526027208534508151895589980153798591083302626595034092482208169698309450990517222297747930929601372231162070631805909809865220498412675160968993690871531261541063911409971951665275210265513746210672397545367515277226642733250075533038115577924901710819799987400343320689495430202123349165597553413847543345890845972105651261752779038737155802168102013489762300439393301236195606740565507257644762641864103827522502750248815204212014489487342731576724397775165196048771591399337573305215631600582818327524251249842892950456972662723179499982241389204581139222881970967286681341996585450892541478818661214316464611550030894295416415008044351267100077171910660816349116010494095288591507102731924530092103376157478528190111785253196093973770758834535501621051206186184601695948479242265582832053891743414191425338734928362625274756210650026892093054980381913505075158331536272952690233545490673069070794629027098043069677577723240682589082882508719228992384535612496053360909311987714976853491877105878152511576321782688003836432532084554949660599231613449029622982638366556956239029163639924053184573831973360568963029015672027874764742292374312083875364779798021170664041400362396034299054782146001596438490391408621724890011936393620529491164901901789376774177008184157364642482280347765983399559419994742351380877202735649965374651805059283762459061501248635490405903504435517739687521256993922531405466616753260095964401508144713408500599413358682401567968939165232995690256179570318736346002549275079758572406998775376961069554911245592937168161560926997401474859490971957528393278502955116373128363160941400264127714313438580936410729183188557818439119311302159185350578578267813740951513988287209329872089170879655840337995818036410913017605836428376834675026974479173273639254982660928654126686250869584057683826773635576101884075688046293110000176313820419913384229464217547622876326889510325650125780660911015418261759711786301184931204170788848170354445911420924626742573854926759929721582663012489607916028079628300823769849842566244627305478652271247538556587015184259367866607262374642936149312230316971149938213716237773410189346841249858333389712057460987653349543709544581047341194560471667637148877194001858503801665391884435307680678552100284220806101815325986672325936086291194279528506716203215956292623442108503037510045802167820585943121317849865165018388971429281020467276648339658336122005041226995409452463109054148670165621311141881464251400068594342141622950137241195028940402417152962021482131694268734550617483257748990172706786802213580520163171796597062549914891010408225901388069271225998766190649975539725379242097878052790312274535372212572367819816862775436006599316051608547194117693360065530493270015499640941246294027607786146284263379978708212413096748277295256590403333987130166360520515294387227092653002312857112773934391997242946561603149228864638304821182640063463224452327691249279637091900448243861527211738977530537784151082701879026418975985538377859626418290682069666145374500018130044232891188865769486602758387733595904246273151206531070012956386671945837083873337411674660109199277138739518504590880125893321230007687377301554965648760019617033561376853791722498869698755195865115151889923396437740402644643992447039889660574200480403272101503624189294033641113926337714550891811958138338368725394729324038967734941772757243263349537617769172900183500288324688388698795081953365568493688942031617225709608998387769660411434688738071363573288669456573139819587650261070720575343593698709143271078791162618225497690755373296838462371980377723623180973689147636315632068037900973628028108828758505399141297181529629141765341436529914563455753001304422165769165917258742509574579395765389375303642168057837534330285509866206405407545243569174626281387643468459350171741527868022302377657152180397749018457581075312454827466932201410027293930057292911762103521488068409654478422553268707160705059089900628094449404154412597990322412482501203552710848242832728758955828234601248079035945360755145245577897068612561556066185751995605593062939881571757993514221864407194173649071924161338862112697131969647091936269225927694829854536449149570007423761292129232360305966621359283628203069907880880512199966860277424965605746409050845143539104932913904253388842512770905760115118420203545641450644444901078278998884806471368700843752079399228578028570193534204744462127764800911598182661695878859097365647894047839370717313572873998225857396902077210380994288115046429888309449492404445478673612212302275703965388690868566088878787655369870741551508575529398412203165367114016065424206518133470142971786862867022801143070144416691616740865311435365445747979988394858181760937581338634333376661759053378073669357353601526752879069564118965020203335721073380889946630961082437206862321930214671845836389087018524113291813432830975165862835828020285355630548009557159955832579960732398973857856500547767477967039151109049875692102382551433357999550367301982074582190004874924269957415297989908687173042152473827524060590708247425701122782745792350939963373671874818053274311205184712026784775209008338648721303678557169164026097322614945348881087908046220422844744366463358250620504016213234850767221552338662714270673918452967533197678634661371233219982665632436325336658476343210835904929872094923993713760828094399503418911483038155747141781558250235426575791262848678437134315589620484212081618549562823673704885374015744962700878453841961001932284330352487105542925179969360705602019073534329462020076012559713016860944185162061647608555184614487697249685713376456464226581958552486763535296772626053500058178860746290906891752682041228890909528868065799259408343170737872890393576060334005101882156983757269545998261662979798504872923890214839218468672883782317659559863016746105706145244787170759273139468811538432732880366357955718691146742133107729056064117946870406282309781559799161001330561753599614577820190510878169108395518585811506348385896341932492241019337353386825801779634725492433349439533473082088511076100196476808353529697265175207363655510909355072282687805558294524373537109200172114203211924134565477028680441528898107039458586721999950155732480998582819470502432768537185822251395416977225538186320759406240060167501352676384618188990508765608077076064828011790562265025712498942231771115445179330141561339192878046126006583674811470149249586018186630134815283050041236529544847445007292515242337627310620978272504756600623639215152786663576378964897752010641863285768075574496628115583021377143083521258503874873930492185858730543853577257749616460124948441025664751994714839152228678163934673005052408981453360414855996134939449999477083994450694515544502249219944202161979384226737375393794962322672228538680247533599251755507988106530851411593662097230688130432002752351011583980853672678382306446751477327349643973713917962064289300760527297244036738805221630060125468801326284755965788140816479505828996653640362638715752552427960856027553833407822598553796481959239508187074651158962279304137427245813710972246796427637754413561875923793729007025092487826160594627158088038269851838968268523505634245186334611322082457168595662903615907177088823775817829744285312087177892087308068649657525082682394886835583060148094812032255072605444721628048594932008533690074156770202563977480400367071993127796757497985704322401303035123433793841119702982166128009611416748679205903443300609203812071232696215160248074500048253161202571416539529596794209693335225759842989241011248112816500927890735603481056779542442576021301472728928040615958014521760395499938205343934970601811690056256577265874935582551045380544207393872318672692410808506895204082913632421098919921528071440468452343826601028554106980718406456892539457833105503231245534582660125252842103459298640136340726152346253288623613727128415082977926702619662156847547711924124725017752978966778379712531137792572532714962345955160670930946024892189591970390274840151777137891748599692943503261652849973914256396997447220962817598273386580541143197201169520557135849025900335882503539669388068490012693504359285097729071504215746082123939853055848791454780232204462408788666437055229022017513997322328867868803834704299729957167316178360968095943803304647250107906214013276970724397377929151801933582226929961116068371950983215526350642688158703335781025102441279100436090852823243652611106292162470550400115289906113000287138331299345007389182945695650546486332656429625102011943537538690127668775616131036105010873797083991112806263165352053332606743479082036071811278414295898378421782142683492941943860202544985590061113756191290076483078860937127407553629714824856863504977304212766764826464956017887605603175750212161249680330203544424544151153329850888819224034339863853981329847909589209934093408521565545020860107098389760634298524519055512557088286615983162921523103198162965315331787247077870150713116574450314087492440602625101390993397464907079125533621640275582869441445946603647644289324243138410629907159992011055573787141455395568430795416474891840988797094759226817144792769848846309970659975182429697268041894441728711457857902425284315840592687860731474834229117656869677906187818996389143178029009599594437613553328507963596913968952459494712098384947493509772748584066159285828189341262359503767889095750750048031697919292777556235517953328533782427061978956821403687882225670155978399042307690342869645120576062078302913392873158204933604688247196725000513187529695236050799007226821501397243174527838393105369883940406430446603358220634101369780866038392175850949145371819639767050062460109181437447390112862202615038517153950750246570030542748998998663210644692347052448526635841986921548506073637363597010370082004549913553023422768361566092371837623766132307179429403505162058983788057576163956318965132833379910809862874371503218333793748127100691965566098102455034372043197579238016389338378849728009620067495263952292455253000391513286520043049480840044167616635725611033609089035787026666045741186601123915357092230799350627563435866941212414069020009842972885997105526204600735961659712462458728001921492282374570477005555522350790100742577964174566642181376076772802141676343117663347609280512448751798617501469765110923140199850247521055514321832032468386223638698021497325291726808182691602264014519857159898630636476938467346243735336212294526740029736632189275577631336143305221298373289362416838097663112178439064659213185276575754245214970640857261269485555515169441916963456349485189554909986185470749217091939721501418158355491517780349308284162785303200371138876697124701645305296251462535480884659373219813246040470050787455315777445301272216787096992396519448100276677245220982613889576119399825821350595390610825343830738461376643424814263503035635328088255456582869514568834834438986408470699615815535565709359785298181541228102493116267716647554232454373645520971605553434476004957991305958606654748091969975852369639105430605329969861777455570274840316051101500092750983054177882070165288780564858883539300966378414164514643065416094534649274971944308843019008324345001071122485095846236331155956540350010253810776548708890382448210596021756746917076126644465154974482026176935992159001084678942486308093110974452168053059968747071949334148212789460240478998678227086039521789819115257591092440949061082194157218824513878752510537877999275056350892651778227569928390407262594300994068365841150601554274085496917109322553335139905577143012245622535920908928995487890168873879441498176674091947219085853207588134243524146844094694287344230346798148693206669054764408187907564332780969073743156106540035033625634410455405611658425666194641315699592028166095466040404330784296094233642800676425202468843790370266432738375267344456677436044759117234554431213751299871605349417899062407462480591751545421450101525935018579497967709149427762987677618753591769766569335362007526440055827223378257461241917751039896982850087804629116124702935977041571227868208415059989900350764905681353154496010505837825215407229584781412092260773883685833256991559582762574369910089538863525857915815462974099288929556581087224687989144433932867800612434479704940951149872537221620712182814722472056079163203546845358270539996995617334265564380213934441344178143274734745857133433696450456688363452453000414941871945921948433658051838847285289573281231874272357208174646490615680708810117498592724304880030470536065982636244872218133622058442769634789925536739568916175956008312751253637311486289182885319964774051306528739011160279514724037652046796752757209461295488494347706847358388657408629879684138685412903844567349179194724354737357796297310950136368563409865248512307442492548600122048346377696577486982380990753387247381016163310452201814820517102454902704032110393175291412358590061321995807115235246532730824518745519017632123239266091955360533793394148102222392043058509911127812208341729985428532488899749378137714924235064622060497016227225755592720282304524616814483277945957726840574073524387263251217738607872522373950829206825862458295828660242237009164114532251562350867283570259206579379358071723165782531026400259164948657585156166324005963374332240583635768913638099660678333152055381942981754518628623952762224642642676193220057260940708007453797660206932150660480654709236700254554780937431296344699511936457022777042894919874731465159991743446636643115270320963181447439684666070170386568389290413726145179205283037798001596733221126213921110926943732426514745153290256779778978627916800742645700177658587727644110248817538709550286636628570263130432618216755997340755163087411848101599477854617199275806420800764503939309676501079127964575617677717231325287087711856436547981557213226713167103428333750264809232709279469361875423717132374321188201310401325775420615534777473809549330295605286314299239676172425951765259603785367700486543020503790556079849761798497675485222965689086687886272722881663572996507421217816710131844648983979274584104609174019553594521807726496016485658963312765177725658705566386246770220297306716190496476017555319174306942729638024399901578625879540380429250103996228423609657996174256641461082878246713086538672251974748647516003719122316432937361372141819045144539853812903065784552577768190642150208663935460111797607731446016980772214946201821547541834681569866974952214374839557436099093773062856953891933363227788414778314701635879527570580709036694132143464672142162087359745240719634441913987157226649562352091248948290329173792347539064790206405968944585818188316372505697150824954721001143061291121279649246144814945267320461180948317795371062613856065928110748780204744533946687840582328308436825234982878787872310438012758432652887593289055971390870948934329187893635875230950319724149433114780268151432864570907339900064646030459459193217549054705331778036306110802383790413261021706542397776828673948955234340911459098032180074217482663080331094320351022449765405874305268721871751194126218249640705330581976057803075872413989529192593446488328642132208951197285705808517291260809700897099588738088426128194756274681444265890817019397069511420115890096932921263505587869141442250711178957641260682120364973158815585061608863608760914541064935839738204605497699126066486974172746045562007307799702585100042720721119043832265993412558525421874103154732225960508903710990512434637828463484517290339609407754596635713245910096175676302902348050460563679641700962115939272348472315463593430594204787839165445590722304172140218548572929634729920690259418299343356328337461915893109936665149027063145534637819213291049536491616796863368662028092059092817716963601643203871763611018915264744243719685340243414104096601517523306310100542766017299959240798605265798181703543837224418970867749115571413959050458707124131886615996672031061178678423881754290008173067900077007691033159476847127480514574501241696094212206856387171920333447701431277835842830361255866972279922760055302379575476687610816995326968077992105624219871377642748393459340077056485682473456437429289628673243007132756972117828634286318030784608054389670312256520481572655059017359031806561866576369790133410038804810042691853738828839376414093037236973888255993801530160276509389522256254865820311082966387184788979192572735164865299482121112858223778520755257947041116516709830106738863680206503235122142256662902083851849739796921945974039967225929357008422321654449433810169404400146421727043690372530884977296761608382679528932724437332333246013059258415325852801854229269755050485123165132011744502006342289757497907418664760905666131360606644004496896969721234901516010316169115391263614115481201917544038429731064806138066724067945384198776309052041818645539885600160580820853034667419992255483814389142688603905130731134020781032205653990667565881183469712473184957421049259820412330069810666026726671169698692523699672571208396075810659906048855065255945374653337081631251973152731509999799454316474480365305254552258583884370365313584891449688761557809865456168794153263334329273263200548073298829269252395654703527415093876485643436347363905600675843429577925331852856286630802604564350605186946639688276836830339113210582713166901053696589484335303439442491749943703289756126911849678667539674575691867396018426595563258669824736263280832601304162200783776396286353566372265824774101874639846091378179702199362466943378756105142309160349673748275321854244734404698672281446219733445690655932260451363167757227697617515295131368522795798950006308664858333835887917085487832614008143431868553643254090059256577569636579451518524322789060466114324563345943833363555570874383776819547935859778320607279089685104637662956117536112987648110058105062857383302149141896917573236407922394003876101877306882080452098706306966501154560897823955897565082189529805373429424123902516132091506835256236064322914635015292687625630883954795867360657404046759760319007515602628699449176991103325491903646219156548965836387852617625447591030404311198331336748963735430503347083786802598857297142357028032030865175777763662667141435845626237203172929182711565847738519149300268114400936179833637598155369213119461654115199332979236583635470079853115340443755117269765360636963496074570920891015388454102474218922736775392901525451487617826532699223409345883444360653235695748306747586395982373806239220969791130375009247277674812096148001483698284586688253999225417483124877990984321388805806657528049631693850928166124148420485590436537526055706720886601983714724694885590600234629566807486927644853098894577702525592765513684348179783768031252200620116549962193837682463811428394275757335877570761665688716293017001837015018371039585441795042905179302842629842405220488528768701799286881022341080945003087434323860985202259358393977991699514148065835957707915336042152247757054138158305980517242682030239138996187855331493701001817375994353405179948284660272427138923242066358221373564025556391612460435931444564771617786686621907569941935452102405595785870962624757823742240872307394663742301511563080796212550769818434157522130201316698531153910951708625859211707534683392489847114245785797092997009557774905369344589302196286223294270737091393848809058076360162335885070711650705922090342270276836744047177951856215846423785380948439170215403091696711801448335041535015239857878624824002286350512450978753013336292748956588101355998357666413258418676881994182655877092540928202536575689091692064870164565203135191202308844779214201823238348125819252306290640591388907267004801705023802831075498774359515861095847845820471723204782141935956435230068240829331676949586378324337362921329744857648844572769422318146291690403874078434253998654761860070316378724449687240839325903040724630068839252743783432099978003100739485432559619959130543183380066808421700764717211710808314731304220101787960272769551848693156300003864739585964751270818062020291128101337215048299141598146529659251391347587063710574098462531744517551592982692631301956316327802317254511633752804934947821360965176783054911937170981083493894118411172845296156450433953058077636231039394002147462021382486706561324391289240805508436489450514256223086982701139177583952065947850574696720645565763994890082350616515822556520055579669151613607540596247592653021931538395770377091863536334412864433604192256364114309288138523092785864451792785038620459754236888815096591343013933535047234965132786749615875083439583719620312666983978789711663221128675959752925742103835799650996316027872506722612147074920282549401618272791680490582871521562264999860631095099917198795515037916354441215833577121665893514706355767077417745596504672346945444524877845827146498403990588973720719033607824291423543920061436960431765997437993284717830226778013327782169230146694267987382059428266191293591555024153465985971626643880788644806205027968290445532482201884727822601428802407661448569722237100049406235067431612274171114202159221157017426965220879588473073503337778684363090046603224555183258031040673635343221531325637195333564631541286439360189218973534629125332333389112203579331345521202437639041302920016518888923233440353193336743415268776177611117470226620554021693834770359186456374327614850160973606942232708930860722587503955621337020952852735317797731572447688268710501885838486303984739014431021463616448387936481069215613600358072147241946390307629962169121096320297878988358402117215281543006237161225328515980224643399157044372202464484053930451873942975393879588182581577817189339120338580583359144752382433845995993656299864217873554151433131337773324135343945809545978778488642988655869053115554377129586633595495592066866857769462869243414197437184868229080385250175062079643000612311914676501956972955333436564362693874714687171405244092288072481970997001029853721090647620266519015108944919215938056824042653681861982156126999457275648679946421579928782912908324577029090939431238334788341536534188840835214965839737824833257850121094767525370725809284199339065677110460429888446881112693501571242807705299641260875618224627755980596803038251962927663387009988653077062054296588416469634559163346283564227567391457178158236031197613064851001015750483303015477030249124853541041286723614030603109834943042506728575608915140967276243590336456430749154247425405915084577324843763421680820285207259555795894167592312949853857103982731575146959282977336649264887398210472112776254603086831856629752878771442438501899141792823091662196864474085495401585737502962855267428737264805272024411634342554429170057163180392424227621093184018957954206048353193616225373538142953143078525330814781204557815557152399325952147879562217843339710176201734575003437504662013304241446215111486995042668555217191018526234214092187859669436322755512965099328462471669470803189683634002974667370176447342755272621317185968334475136868181327611495065964436630031955609487562978955322574571495669014372876870647816332793905427614474932536237197419267005776690268626642562608898998201205793492659281260255085436402902692112150907259196852497343508371831558103437673193681937653670671727496921085918330882405893462547679710062686029515817745583011579370282473139114738620407625574173801490350685606125979679306329435540942938004181564000707613007592679331126110428433774770666950669371783131556775535361614517769807143606628226967203588742614294540517539002302946956999832630045124204704504552732838619833178152000382490484779421179267839858265095500237302076331124516009915075500760196434582483775703043616515373336434590775063947987536945671873303716663972535500834315915189219847902921970050129433994957067115048407939945012025656817976559611448112092993310591122503478599214283562252485038800289835341904940071177193112113071796240936287801307587845366869961413548627100360075079395430673270373617467264671721232945678950727566959774562808512023047707050511720851342293534279564975348578443357420600289295264160731901434758511412035691017519931942427221027338912953579533172439041959283374152254685107442774831487892636916085780793030535901406016219268253026530980745950067863032559662050487409317534847754301669740992582330180697593232856742621359677608547525780560539688000324430900042515501906037944998329384522992693628959826783586242809522988113301727002320072420881511372573211035368558221270247846535599307474706782765425917991843911541150220829330774925895029484299602267770932398160333191821168059497865809107723426864857072623851762486916630568744061351067092864733162746442251238036876847035189120513202399915874361043962271238322578152944039020353602093373919114998818805250687333721092700762331073588852764144890028861247685422986474207787587453955842417710142127152203980142699015880662857098805717066939066190690383973744015310793203977127476696600523505433373819229897671421449191743971648926305292749081158885580695873160617849459169133502018099285506792887259846588967995360669220761985410745686289667688437773502757154177569375930817523727479531539411267961903504965162457589722393262539168621561045892261122899944954455318631502649732988896794420768215610594072840246013924555076310963485344454161951265555540015626728930134172547426109126108152094686625629036168573730461126208076495932281547054483037750351134769884801902594830331581862006088707801848170842616476834048247363351285117091096221057319095022686860660909831834740735042992839374286156863332360438208709426076396489330028340910536692021310222119696836586727456015312977651715118364953230467022544193235292867390164358730470744812443125270341579722427206708979721174632563485899690717655498649346132690381201051279865425221457309781322820836570760738005036756131503655516426786843724169065556251727983490617586963176230322966964596607698571117955334410708261550394340827074396198879351362723743908790745481408318621665167417497176686421087527483742302347712720286718969147094306763695325528555079798156327995736387237054133521911188188191599781456123085370483605848991472312204053967727196304170880802172397612590633739476473422620764308675055604607205388904691036677570970790897052137232211364647613402318306126069403912027989794840009811640692879502511474420171550097892534300160338997414005926068207262097388106093629609922585516606618458710117305004098291135184453639260481381371534001157272765883049804039150408781218283677927444390874057909142430904986972548955699999768550735278428659295551493790607403756304909519141046227951388357647740363620055497029037582110440642710062869021858425083473114009507313351744322957070822914096122582435288468079416766437490094945840252865426499547506466764070542399135151576351916449183295871572574296111393530457297069006495773680320186575616912350882960932407899264876332693339845231382780951541981888481281781276980011988547422562795179926471949894083862026973552285590081221681950794700179590318230358113124919246751304513845069324527594125700757755217145148593380395845129397323242455180210053079393076308399839282017867498278506895020326619567676950077938477596570392482836071326157110650383330600532302659529812441324250669466341348794019470621704071927947340343427384149500351973275253742107672828932785183832405252019467836195537572534087278391800366522884881570515918190763359420211230589082897207364951907196256708594114821675009704233902205320679344091557533430814129046856162359172291325766003733393293835931917450004788738816071115551176840090429213374018113833990248372722764221155564404831519641414516494539426700179213078689039546245962434721063341383489835523068374211130211061371331910442851680939568036325071180191287764330492163982088985612521367624319840904379408014023166223151966332525367850033908059212172868844271245226003621108690306593308404466920274147154799039833840866948063894385333039919684528255201538798518536200180578581791278828884915960592642698589540339892405524209659430462220769068158604852539567432545256721574589173970389586151359563141552859335901129536939938979021124706057799005303078615364306385828704519558199149130254083633131592227787445287047987270685460040269075825835941985842511475110246975511475100702670977280638022316749886705632739884537494120098848264560772163743307229825239418188097188470383113082069225342511606094543192412715187603626382682219841244582311839750650006298312703648811238880989616787302539833068413331499008653992460130428059188080109002770124236001761723653854106333681768304871076376282785015393524713944771590854275741988115522813403084694671110438271145488691198062910737063952790387412442199261886909178111327270722680396369055278194559260642510318949796098240696911807139479494113434045272878172186216113643122817817114641037980336072067287260075834986892091579882289282200398006185130039181309743852312887170515550907015535575802425298267212123294646463544472303175846425266097743433148213486838191411389484140844221405070951729065212872528011487024317183137813685589049122553118054488118794887400700810829093329887968613198200907471635698292606090322509165261050863000872315880775433824220594393074100087207402442925164544670649816081495817041806471860139650408822922711413321048681127428768071914016721275852741009043107229199025582213730670521286915501014843247697949640574618473793771251773121221878740177397963102075489569120997747012128245360984293099779402282655208637059215715344876545278262414877879605111417706422078142855845846465569633140123179850346811230317559039243217548230256502304536755927532045559156546315874793838548746064221640994684717026456327955626062860212218902909027332534031748587685080309884180854809318059235554566830423354073212547378663948168675807247594157568767992352855971096247753735784978353813408522439700426075855685772484336519195031460143740365410632067557551647075866650939469733302608384524242620582247510034556174843572487429988063677811041798252663172650524076604719907621761042145459278301313719450249081059181377208086016170512698547249091962410449709256525517866736601016845945664452059094551179241832779872846506395574870652733027193203505389063047543617864388839929228895179939828726590454311416259810242014694535109537683447326179822728009500931967455351323373348932762797414824498286334119070741396339042300567130833374969755707114366686571962587401232606674557948093635363811792271942909369156300218972765091813164970143772648616781228324340281150053301111736313855858785372685847040310954106565567162722983161297620739006117448879482884850881925054030897003425289698979449635932553749925801254540679479443276702672902121099548437697928298894341933563828775765484398068724045212662961014583481924230663397834737516774912497027128441222369721542076535032999372365168820876857049583002004007802778047019845102154543407272316663289014803610900743046044196904984594628606304205404302702958743005633858786114400956088549020840458994447946566008868247453788927580349324432039968752789158241629799950877198859687493845164247462110101850222605585129730069675704818658480621342984344612686258743745206630741603373617697338711052498336964375233831119199687223586400453245701760579376370958606242078744701128564722962134482036724256829521468447493369284277955831282114014096597674040832901159438314885600381728770042042647731890685545118846421868858750727274929104631789558264769835592157224620408173122652906394382116852398416539484347780618834348949041736822743617543086311338496165055973475496727326928619136308086876548060998434481604408154456017587584413144775012051029417173912399038688384684836804647271806504048282428680122370761992811488384318396099856384579516937999145424465986926614582772641371711901375713705892019929287843450162319928142565932571697909063669759796655877965616839836409216964477733355655413787811937736646228341968390014553372078483211164730725968135546954559885771877116755030366001543544295483308259552771078000183657980963551924472126223191092348515234300014997996630084499049587581779153306500197542990218830253151365016933641225099050478985724176728382656410166465436371745690080291165693365534335353633131973760292715710934038706121245986223933472195350213219228284375009213932717023077028718097460501372211342861045585248929230757198025476058788335132601092696781694885621452113034190719561237118114519633340298718566606841301175467544197897573193642847029648514895951212123452315992751892682280612298943814983822551496402305433599161938899244651591794636474666431252876786884567170755414680990022981023755787793928992819985146657754927510063163308515165806111459114867818370866102312651638689323522458605852349154271670528518449450282723132941531210755024054638638993183453146901101996816041634558651769359993096035866123936418651933371763977400754389038908199381820186981364220768777215062319486496999431820218765735259367635537424122963136429383517351601248194266346415732434699072412002043291221691385170084812745846958293047076256867344741950630549379168872540759734198178419403255554592988041336369701385940688723159215713335465021960109920039586501072419534111442691701924902011188038056358079210411416959527132249847476034577772620037273724335946986570794980057136122821078004376589939385040404024574416426182205451274782965032547067452190452859953672135187886026976628190901030955826814940486561255983869937514106613746281611682830234710019965842555213318092568641374707341765619996619825206646998741719885774662270157275066644402533615266149780683961931427687882271150002365270949948374738126066377184496451281240971792490727594297652349918599000569748238974923673930751965047631259719181675408900949013885459825721268195729599155366298055637407597488657025467719284111115396835466043186998016116962493020242312261423687768267981280059864992597558607707775778721261194088754549083355843928735863585584051377750097366295520129463445917038426415138810861593925498475833631481438453403038969144309048241062267622185499715879306209694684154957250034982836974288221051457524569069370033620894901588628815141224968698074723369975215024412523803762360095642077689593959898600459698882778880623362792728253228791167688568401582931751052293598848828454954647503996051036919576202147791890557332819138936641665401902916569529830266817126108492237804803329876065946542599158897100456319570804957828627577678628718218871930716575143774961676879867584658308807462574806215096419704050456085195001753003576234839992304448887059027285908621191921976853161891209026112570660861540583849391910726489838663114553993553054204085566427659878799456783858427182764830936135454428443431814923612006793870511065356139675655712925906505984595311742498224933753652011961969500145256152490461281058823049767639819518533852676301840492853731435853702573012428414129681670192160182449001368533105569778147845703757231001527352389262891350171851892689413006418377119910974979273610887529890880071868878749967866890733761003872850700751774675051042272579895881838021823024959677054839460489968102757947399116200090609771836973571640694633612326700209689661244855159298532959985826808698024009042071915519420889741565350773879986022243934286200077246586910083322117977358908242019193895761422906296151771107746622562136965723780263402411245643911610146128947202730735460950973093079816669868895807891160239468502952905043920070580669564899513050323906154391199493739162684124714837080430528146880534563634358830085465726219640728675466347396636129365912950955568409518625332243851011025297318357726697521856586749171527247326374104502791549405038092357549023443622477211505817268883502812203295215613553778736803725568801657142367564502176877956274078087974190704019650941602815129337701310710077937179893285160363486004028679892866531063902351479858762634067646411731591486929503029693730701939546036882169214939519590444297718885683358567331743055811730672868076628434631990297168505855546238936005877615834333546215166727780188455795269438915279878596764528146861386400904825812769193637157901341338941271576010865992063084789640425698818791997279501834307081124525274455875112485829573333954765081846885504040304439114024687472324094902784543602621112119191102792481335728865287975414249788288327715444051743411313190667370930033486172485839375389241810991247234063480362748563854528664464314532935883568249748333900642146851101504350965947692110045276533703779864818927523273284495825491012428704544871692555294467504554096176787361480787833355873432546356261172461708495169209528441698523798464731479818579722309016467394945757307787896609689525643016682550516664545359719036797327863541770069101685407747763801455311172809346640255872586470245057499320189390563014262521640528617438072399121652276819801966345777072838276225796006969716188404107911707424149814254179744171039262455830886876621082298827288076455704524246291773102838519081538445746043919582417547275591834352078566185914284802697622870947127318435170098200850619604093584275612710244689044132242022010411038891605099421128254329541446645523196076935065598515848516542119538622251715324306932619148476977050577927223968177323477708684233836549348039303733185280884078145239655041024116175100186103827117951780343143218224259334113668307387293866003523682100540511430243709461306644877907356899579034975525133549858010035887269659298754463456065445224217227819916757152679628669223557442065368344751203122548883063104281214743025665061524959240970647686237364242656522163883822344851873651242849012608877468855707785392873707919955324864698338975431337112778297610932590598050028051127153986301449563489155594710527533475698138562077454681407922809821592710013700576393023685119954597622663641153408669327318863925177081842657712168820300646618031354879130062820473115888591700974977509287836340225674774206433035431501123302839310001364674871814383988561949321519764519315928568595492067662999743522978490202033428072156029594540434089598763426857954431988226280744666307345859215589786921785359681682628282154012873242389484496275223003281191942112598313168698731457432581967906771012482249441985295414807259290277841042673190250176450955502925721924409140756622170056512993409828490545491800175531180467195634764927665396597456220282304641304991576547873800872472298883854918211168710311976440264376185466616630356837886906621895882269067443732389792955466715552613343011399355747716748196077862077134482176290499981501595717537803508506789804729069189851537212328510118279734197994943397299856419340505150138753742295780826322322974410921453218483913662401724059023577471600973036753603664684873051145414925103403990446321266031588601173532046424819212090597429991882046615775246050367052381573392114245292783575557240409903083415913489143353288341230022793954672923136585181298550262655799545665662621918430888864596519736002033376293984410736519329252652080175574935862949061553306134074962706654195016463304987916916187237732115941602183940952326063212239305272525943493310416675715603196759338774055217517444213109775658159014065578280158493514690926179834445836791961620634521923222215457215891955722093523495150525582819882661712470573890982385534968144642573379534323010027380082606408894199045167479012833533999557143941358379417047704133791339174880272806525812833235986112341055383656355064907585537979869571883040263245949007896218521242861123959998727779045501964050837987259433460174649391596315999317561136845485835115621541457095670126354328866460329007994726132053109240488134373712336241500913266103384809169877778624430619041950035836727162904728038785603548847381719747728653743626327352875601367671273767090097867455223270214768799870432061037500755947479730111339018082774921726394173657212785575380058107721740810969809236933358905505268729509527750110393814581035253191478365364293976950158100883522260072603766551970847334971628401539331618159549713402729795071949581985577933421672659015378655242029700770622619242690025582947222206024231470552681160653604454931946232311283145857402378864204215693162944993068152632336392496611173449712223183149666232310085736220223844227973459822017407927193372474850163741467228567734596325942938093660657375097997312080816381542995809702229327977184622452136149230318444270164174420086403597748718050953360318448624085399718222835953941390169820350292263615557605072193509203506514704444362137776860684240130693777683346357826584801090810991029103877787635261944382784078883991027210058671436785271122749007284462837430657853066472593486408734907732017129192604063761757438560395367348873530642316391085464251479903049228853222186708802415782552360909811920743357874538379346431991121319472235879802524943452850674501323234578533075376448412329779770060728553744386042545294814174719070699463586379345268648120797385006793234226653753661448273671068511827548717501291281824112622445736228118618701117502942592496368335611218007664333087366896090878789995756921875676598603578091723940199102914977136213726271835660703772466147034469964363547551544801671405079627946048828467912595001653169948001843572642044011890837226325391791843690034703224007901621667216020217615299029902192087746140429639710982678527880886037990290770807152482335706559565918127243206802634942079662207361649786611408409820926631301500372392638249218319436762323586321058610430754506710405783517462110348683942449601111862941890154802640160068570209159806245149159190410899727729716078732435069537914162033467446028947431796492024430868427425255529223432958068087951486723042540124782417346846137938099073067850583299083898778741067775530986656867018156618201891493622445628383679721907476061759878502824296404038552210867880252912209268578463841054889005966208643029619340656511612634026070853241887369430106857964253081043619619141041899850703478016095324821018425359679328695054683856632196247233466493080316046360098569917082246349259069801290728462727962501930962494048043118556802598862927399357750283099622184612153295510836426991304222667048144139298049268773460146839156145547227820009273889134687275727146942749040655262566617991298090963507999212134990223212253880655422959386963398189575464006721971986435852343861305251744288159082161422316003111643235104058466010658705679284067494045315540824838120845457741738759608832060717780726103506053587647583776348205689872476561534465892129080778699239974896875767905362803144293486793137252996965001080673751838134180873374745465828225601593500083514218756293771444859408140980713428313808947662519406627834314154609290426223431512684052936176475353979175632645909526240772492712942950573803658796143607147241672945983796728801117614877552210112184478094762397992662015807140467208162850823665017876870205536534840345588544245056744782555628951187093582645109004755647153531732030465507146568264744713911814330304699892001929419901848566917122558044639267541581686974948394244728736768100444114889292221177536649523085170222535478751683498615161461175485467800485208842319861324812790936263381603809381213094136167349869416284895280374419983325089328032966307826837847944011336173664111985320725893567163628748458302406655374886630005814693906061433469655628664844800152265261664059584894483922816629867438119996986020846070731070562542738286436810593004494516932855622883158229354293450654959515562627270277324997903171845645622771989606932922553490245573730527154449983267067450118796610751414392572778990497854226892455943241812780979115893335333267318234612851845863042392385531058041909330168725151050292546579019362113238827293437194907793934373159860286492252061666369452979382269678826233009327918638919635379727471753440644479181341820520051981383889763113888834929328864509015649960772675313781358393682460689741869935537868074330035283711247654081422446633952951246224385231572402690074880227053973290062757395655366265153994170614860970597240036964743581349253156439164957654819080611814255674906096003915248740430830180568987845046718584610419005627212034419443984447844601921707221788045882126645532000070627382587358884869147112539410286414152705590071460693469008645096653572267715612696997173774516312754393876453105526993182566886123701162483412622364690564376376464961130858594134730162718419604920023915583287336825876774409335959711696938868844990048367732756101085973964748106476707131122047753139811870007479589456989710666106630462831727653169769066133200836348060276200506052482930269941894748845895765504046981723610495943638388660296538788816325649987335615016101982588284545679097214133828897068988862170680113657592043466909855711721939405982505944768995017839992637899053266485645801638825119177479246993380234909454886960144190920564504190268518279392751642332376940477479323395943387315381369861660972165316077855877347990985079774476399843260078999199038570974316192275754063602054382116526071719096924061503979263151962745042716149489121999020011119727829607844363602304456065327442026335561279078564501492545334410740037643826961328670369514668364063996060313500058339189818101437343146558587806982017992844184670024317621443240278473332746775055210466132481880441338652035316737148440185302022838711935556421962097453910853392828770328782740689133902712868629992189633907439096721953982324579624594377734489675408450899249304868335950662860153782970044534330174581827181714494499310842034046433651336409793077809569607846347126236840484420334074870079731824085504235151720125508599589687633045177838722926730253649407216762603141599487777678773249698922941741901930503738404926801999117713824946475636441786816640828881042065203082552726145585171323134987246089684927310810183194527427731107235924291022386288690036709208223944045881430438848437311899169197517015117562226455843822513871030156425288154611645133248887429659810861515690197010449503976036946090806136708734664111337200500499521365147006205749943472071550875061403892871275536943640593942138223400609200304798833399781447122035945944814373284055947164838752173989250965445022973608071740819341787961351111782157982429714512164143797553049406069820053583036407848487950912503968692084922130559816893828652170026107113377869846087835245635583578406158197938715894241828274318658565589172259943941223530998967987825917146142292976765492616581855738423080597839643191205373262796313261185881508304284674837073155401054736811366860445656977517919559194371502688972246187528310988501053546931474147917708378781496938297371553338342519440800937071772793361336924931138773777878282555812925967456050493538288588534766537820216388286758556047864194317579652077843841513924571711306881468457204163745419703141901124006875091356146516449100646546477630800606147809631322040204079309468029745802165188990613804388485496552264820258824553789723769117538551118451207983050399173563678741466462009597505894417467364833184594665322033008695255007839757266702454740929468999525349899710632794849299597068816809601264033888590860188815350144457741635884823371823292772366570235839572307819128265968754648026625071616939280881155397246988921738716115479263068383452959631524377547054703604786933238773511542629230661873348051430620857608565252907152930067858850165072629114544937748968713359327769296028253125171061414501936514651258146053554324471592780783190367393065944820286011254679257781020741554510740434194287534935713345430161984336885862024851791780895652233714834815228584340784292046278511354840028155206089206992120891045027604144194340246078796495663890474255704667801372962073617744606877488133769277763577094317822521650822560901566225416091927849719988518054863690081806170610826045214037023350718852275932756793590600795855812382061499897093217688555355621111480659916242887724846571491805842120467788307868770899395520837995615360932970672831647157659437573524288925025279177696641692115224766980891684738779547706479078310017240032645772260714487472541593285066752700524974249772125759484006618170718217867875866537984671723393232363457942251731787269323912673746974575737640527363980584360683911458777473299748999232540134865640969007904374010634195106086690135381330504917635247201467747588822835164312348527898686289632889640532384665919069965964577863850825796055066300628386630834802690449882154627284412108900165939463125609886811316166424404707211259456115838759981543354839968555895166620818945434809397066720495062953614844769337180942959990912062893108962325756056440745507061793478284521502487682392702869603355591653150430086075496728433113177773142636822517632562787940428600876046775097829101052568462187385141972692379290074397133549901770328567194528518037903352919777741418696660126926738682425505029764096567257442547086525886862913945566143724637985925872209211861493864416571830102458670179518532180138993712003786242241393514019820982118822887953653128942013983818074907905481767491657852278303083996970966573600862121847706946098527199907233201101472159625939887445174819378859368680221031150556463463964882992911527520511200395602629117092778260906470686477921941457583064261226094398708019091349740088009727113147840920028509282357905603990277121071844226177980002620470852699318734067840605111318723746837098054343499580174365237129387485727998904784413145352869090033595353232653934364618925297876740067215092322623980548088976881497554723933370595700341005774318401907957543264398140193069250268520183400103929254033379104801269645643495899713275354665430242212384310717077897562948911330088495785784017691748967743049075772641839856208431241067718867309610932288671162114779466072104746491708529243719783357359736998577834038211410283331125900648202033756153302080667545439646171060833244344242130078016833811334487332983879158811710093025933828819709723623780514160772414741169704249121956947887305819679339941562358758886601974482559456251260398886620012573434121580613194496232555084996559756919626170503090217332735009482021901762894923681693656883559420568131277539363177447900200039858627061490626071826745165187927167055843774000791193053858749829853771764389603077721143334747641192962112939767828908023044327124589937421589713573065132265091275481809262840566805526948494566081377884983117734170467637868128247523793748231429017108708503236110327519051701647902860202622020381339917127039480880451550969393145241478568722563760763679765665035657475391172531944465759433849765385355485774227761233766134853327099950620177649760916479071029920044444404478838858081049965801149794142033510690646398227764211791987637295662496640263594159532049736017149571857696841582090520648230489231843645443321271775153349923813524631749822728607471548422630923654050392517157844362266262346796724653963514807395027569049636530856169404885545508490004257521183069768410566187156607920186583984805211017948930416152897168177586749980557040511199841736940178096774491842796497155712923759363910577830923157782181472702982979485194658316312383970103985786560045712996757685638140453944144703901804209680745473923918280406663407545124989449734317760240169450022089622313274271922785875207717762637011681768387532199101230686195799642513038220880129090589790510346523602527466881375866488353950360008434260938248206731614074919090580254057711374247014726108242959846171131747696715694809159167896100832711005045702346209721325971229521363054510095840314188015045113893647183107918912367942036519086856141075618225370388788096283456035167658063284031776208083134881030879616553322991512036719667594831951642552207367591177999761849143333620123225118482051801621416255462595921204928038092464284736306194291962159092297955579122138916927055380455664092685389269956864468285468190663245983097346659762080783508313117389559999729045586391423879521961736287117041097784271250366715658371199768143875507705992798638825565723490991343796386091628189768904219386514915643671523761446795572021289454171666576793703769618688595634450335714151729828596666273541612022350294443021675710755597932146127494505586723897556868799906598679934858065905364791534217413013296616111718479465404255265715113583657468185719842704436458635683237672463967324478227114751908921736914478541579120030729343724356512343135060711944339388748999117075710229172510016721721373703110193042550518963631339826549415073201464489265561857641232053142485242779534090805003278131642129949945358893417850989972101734653405883699289558865714414365483656427532161075298110985546938805735325709392722947517452565038949692791742208967688432418083822625553163444649366163732952038088889129440652242590629078992806152307717492690361132578829672391930260200364229280528520720139008027764721932576712961014948399650362195026148799263547962887606533006799935204157544604072334562821294338266604018368433127464677454588538952428977897316954161767880422573025674835890785970382045600373614266591343121605494126405464082751681508086873535254332800505848961259360977883953626272103821816911242699698456364943329533633834861657352199794018178782055024785024938210524329868854392755436695698741212549470460535491599785756124112277568724337061888905703021470158713834550503911440411437922897131209899779763879598652581327776707450185987388767842417470056797025043925357908849653403485833207770261813285156280401845606353422707687926517865049831015896525148213390284371086905084393765531120042793220491851047074721797901018865582439295121116333904541815064961516563313143493482041303519700410653562830334058373922191978717644694728519863433400515473955219297550777127238039323382802445882309031726248715005154574266443698161540841459554907307528560459003702945458608625385129359802195715236951530371009243206071934378234429866833717813730263059564999823864470404597151605227044175736114325144366326770433177639264238961901955820739068104384140308945527510120491562846746709113265513170484063823533367596167659099538458086656744333604544107429285987243269693150573835948724194428546694316580942769498859171323426597374432442516127620726805365729913097084246675120112107705512353921948315879824482225422738599370683271241849647441165838476002003128315884080134038083297376005887143694796395279462403234643708721325311058141371127928039629731065041767679539500119388548347561847581429443383722007183280836653748348296548706385047033121707441992397452680566159364916849994486513852973860697266053745527947432984170878082841773596858693338084042817845476919744635944193951281588627319644309849089190600902826581556460389579232238974699141697393118631418381034784975041884288738301821212949278954419082476591650446202506882664322331403348857728556603493917063431152184458563405863401477407476202113842531085281784451058801196750351159932951392455442831982307949131744913266843596049045862235895498728265541895407979970290421726023714864213907916662818105594627240294179955466725663446806374492732857922692837763346989225778645236438366028334980003913897222429666662960687180454040703357192719710693846341581952330227092575260352321890574971807403458633578868046299434195200177118128036810601223772873160518784565710709074261078748790141767094065818233768061404560983666880022625764110799171268271703245724136230620436573390263298071116612620667616359771788811491782602728898232123100434998513543508525393884045913429263318523531122249106515523115358088070179235079874067767777760749549418033143549507346156303710918315015954865654784898471552231194233336746970448026667504362345897911226463631246762191159016979428281755237631501551647622724218370918266277727965144781302402952987047359733069910992800874807707991383025531431143799771761671616468777094270814014654237804875557002277460863459916978096170790647790771604026370833832501383379542903167337938560766847625199238922314198492338639435309636969281487984167462345431561041439733334717637303292006327213294007265139732946680101495317987163418234536143702213247504227944238682908303087110519404451411900830446372839235143441144238156717460871535266021255864080727980561193389066534842825402767798941264608103624288565933338052517403451980085929715303955379978103677899549129882524071693735576298705503091613596622117032822149408598351815757395842064417833452864680297556411383848933129366012855592609562169521363417660993816002271952653716395847534412817344309051847632253267387789261079644542395239636017921110311535464458603348485743825927471874657481590100184969044215459259262864792778188306773214021042652862171913592872443216871251870701398442868635733738339595085301674216910069318785772165949979965000108017539141697084195924302270437594580688850499332231304607273529741434221668667921222819198508516401250784114268988922570491729401159570690861900547350500173065653328404838511427807194367515031862662306693527579440208447465687075761505110923015154941715132696180974648955707187973932335574457392436333721160883953715678681138695652256873747948051726205622240878021863130590729239049179757637054942636978597337608003759390028969325821392040641989677059227345169636677242968703314315487436671415326408337699816738667870448441498417615726653102937360433247361938709613278563428166838698228561884396476450441052245795078876133248677243113151134340924819293539183824420538293668807406279978261054759971355679330594129715669398149252508620652400394371501685465788502723684160349915863522264367718651688607153502595108418267298516054592721915137186841477145536015176356680568402984359785310455518476185290406367856296807160377774248569655699947832324115071427088483729952655631568433367442513386798529773643342028732609294178583828099405159132079349708448409499242713417163822089710016560885174817315954238229164810064242105723805593227123974261201350815647701431877291233068925166058015886827190197554153934663113614895300087730625312800252938808093908849327709192785708898221812528596900743786766992403957671987826257628649595810785976211005377811496727637120712937236752816270586886927539796404165098395939830457281191580340842344453606167719488647899033307222703154977138863629378952179325440238465802174729304322249979781155682564750425651157439910527258096021668862122132608847020368976940387036936199251477135168784722088129654330914185276878893288601857369847552142389604630259021675840156880056208733792285524208212745064645044772648252369338369765161686639021206268761401954949037559442907058640242423573063812434686580009537297937948099945643599340407083678886203723828197679432760309298624191132392527788922402872069432342740405756177433586606283903928007141488711539942291214012766490328888447794131516521822816476992215487430268502434963790516143979576565335989008652594788318003340765175404281643277500501909059809000365751038254557604084664132801449030453870514199130921908287879676105177097322458867723964116645344650689410231411645614716332313953640376318870096864122812627248640079749620561354179060553014680917927930921981929354282223877994084255116792233357526936638961372352763989385882709617889250671101462329927805815366012103546350765800179398742178369386823253486164200649032922945653593183569805089827875754080092747425440438275406413654972086982870799516357946515456237630387103247742037308113147877026543073935966264504226019049190252789384712503855264197161731567433796918794728230286398309385407567619423254574663280374550604788880736779743463886602918812186060969327423381449379821281192521628762687059189070451484660355342789102811655938128451209912452507527177476114245703012311042217866285026151229107487245690679085417442592555369814135101114493680192916892670859896200284173429512598680322930477041422292675128171031126914792757368374376861804039504640079492240003265313304067668809030548988189007964203950279974181888674556194400497687397118893409912548160700653831278880615045251926736580634463799989244409078629286034564917232184308092565558467437154492635440140861414502920583440337245208912945255996935775177720815411526731647546939949525049821738784612363827546122229255470102371106660059563658352446303720417131193969296540646826592058627201913316962678604083269160407920841507594603938551141337633518124749410770795510934496658103506117891219588786785014241730039293550274216098528345037081870563946480260566029095073615232244329940711204240618993514880551813560737437678114400622975331724125353328847957730420101544021701291866787456490595519702992837556102077481176030925498899943817438474164266618911689062616265695913205254077443930795626145131822116224157961657914452724590471750882024765930514283467688114686347584796433927452685826306228615399333058817653576271939649575052032201427634120669231618119227096366400675652500664604395501663148098212131159674612422709897145610886780604003225560886447180568995473258180679877843469308234595508347949483222924383972275919269974914531296392209586320631287040912726267149743971630139997447056026908084595774106892353593150411371689312138843992502375279547833662374789474841284523188891796239424140264264627650602483426116878770824086679855680905601089069848195120741125550201529489776443249093067908430059733840323557590942804431166785270813530236234670001755629910454968407288452854832032228799120032139679541331484279627303887377636436880606680254156886965094690063229032381846743395281564255854823629471962277163844186725327243963324274906864003842442979512162314182455574746401926879163773149743603412649530372234609594720875571117456464616650735579503198887556269536949584928501920607195946552512954838182164333061174900382720557789321265228782240776969228584824885291075320165578816677039197186160727933982776295830841306289823207024731158341243543921354558975230602258124102505282087751476482405067365722054936121414382855178940191838088364926906703318727745513450373478747017492678818868928733357501591353477956311222230742563868802819982712399160282817378509133129554472961738190051795011955688823920758748590440179034811098378900354316743352646493060760472479173795424415796596785473157896419713753955930595202992966113331787357294882507397824267907396566632896116740106596248875128651829320519975474268948153922168578790753813971726200832334098646985289419980070558868073993327889731022666583694569668334226050875631814721404468242698125157509673624945844843446288398113448586784505514233184449436057712935699995868210347896007588311480734049811330094491808017294503384400609930460567804869213669182131255697044231973573406086745833823270043389829686408975255495223627057919042849737724036289783105104424098893260186104121792041875149397899931454613589541640494073150745838684596108415248829969216739557158145066823141975066748859281101292853065487540810685627315858892116170643171945137876506590201556480722726856943327649855922251670864147494496185485216101403955299764831093421999518535470301429668837131707766417916313363146973178970287718344377502519174780470861172510592687720692794063346737253935054456862692047059810814080917152893109512992805739975608670032557452296348473235174950194614656923924283615190863796800789506690379482903804258322931598229058035036266281975843923178440526794451179727274517557779209246393934837963950583547004095014121921962332689218834756523869314804708778241221225335119216253915248623470617784018630416133905522057675284172860715165768158087595133344847259767566764280547889115191231822563112579078192817548949150859604332728464243723487517578360863514909554237381689777194417486083296217403136432607234087983244649254397415764610760508106470436044287871289296035924879880718965384301408524375417772607797996688858776255476220329773391028828068738555778165249761567728368649009630229143075374183344731042924182684488460983967412075265224497767415527138057769293744197110916345586835477077245069706821296543334365693961237562569973604759187387058134001000381942655688179410201502828764711003955407073063803186891898595091100992044754491789557453376368628698072470753087004147680024738430217685630205991581495790761789393194544888360848757926392696154737451321976499317027150596161982890115588368715298941662925955084754511291052004264495687060269323475456543746333035921406864515840494475658732479825125505211493220202153186053051073323569205144920183965954683998729038660582631776198520825353473845548304937086065067720074592841827915828585366082417476122780495336945467593834987694561972773272722365031503738128646899780276720555524177683445791832375770389893641037855514454853495328861047805513163524904954335878983586375574372182222081038045541895072647791359718644775283819504283834644919802027517676104258003705316920223959449561636247979458724308054215243355625667434515683131968726786106541975138710718437598063912313704912737657902581294475428572365628493660107342748023271250430680384557749191107470103309655401776212865495439236045676980945563652515064312362983933815121523755411705394144322928125331916022385120945075535321418648296744365441115154059635637851069773992326669187180464239430944027803405002710810120422531901385002218784402865020179307966049280578256200266231142850017905482222049747549164844219787999976562627153299628368329585562127108511233059769602589725129314136975487648097976830521081951646120363590602405425332592740384567161848686108602178764587824220826878691715003765021037213229342872906933195735080993970877269264483001089032782282063042861768335148993832144923726944671936538422781775593550287973927127586022451613389275267986327993960604747538473989295280844708615392913448737344081986783872885322075769138194587852680973843103633088055847105640150795143374182898297971407255423613417354005226989183664289218992706312990972174157343293360876477248817786402239531547407540569187267386989051548089909263026217898465711587119539574192389261389176665038520527921127895307593873524877042701190707026527874050072511210686120095959615869978253595845334278292207979152961916627927007424701007894227256594599495845490518788296632129993414511501102770976386803349015756857678707552332397208085467212965715622051096584643221490445380490047437265171248429608890652483418998822604612936123858389021953485730679113783724655971132407255128081804789910922016466123325334802480084133077912247503631826034976935776607650363966804401702334329684883978277404819477308264766473460024833209573086374031517027401653209111845765549292789193441075567689777662147401410811202053443829362354218573644326988394887953189819458650676441476880489565620857680387568221256293159238389927448842483374099669715396210307163586026323596454032676344790684096069835200360905872875805404636941971474620128121866405749032967131073226645180941928445814938182743632007157016566928393529960085217536776750516796011828370414107184279652389801855085658432770947775670238086696825773939736482511074508919711478904901610897393557090701088687684154992631573040497786984457512142983664322877466820855436055315565015003398283330950400279462540668551585559806635657642173873209795794045714186781993565694016152185955498484703058077580829765214375574930543503373934071902710782930273435285547499500603442080021210362421544782700231736060082390742626711613215060996574665424014984716562463978622891460853283462062555533604660738950416340705421459233653814012758608826237868805925528176406413685912794707166688919454105300243118472181538533806429419480484439726748395184990705056256525177028504284578522669383680705288577565497487648659861933480707252827535460101275597320443287991996634147586051964371478465834365895153957808505833228022648104977023726235647403177677285679224785881185938284587695652570622656630988885606674440597747890614414919888914214169062103497773502978930693234280591334220600205797053790380119696568294206356052721428510118787882009046778649971890589306918025154076119868952101308262156900154359378908361028775536334946581003660846541882632213524627443416849268828263518295365312646609033634420355307782563890040781647238679175892499617085011648643322297126535217247664672936950771263782410756072075812567254497299479332854797367409515269027513174658066326447367265935136498179387722170840152747061739087360893917173407079667407713179950516521233688437262857203675876621933321103673150893254862826200885525560366889159658053024905165916765078596707653732391835255491525963311873440361449156272888927297913751988672577143334889313203957005648831775187778891229489721796989865109010645378357371168615923566840760972892584595485286656770897283608632841611128238658487737106715327754140853066446627958897209487197977163063764924087921035024040700357586668218790688123025648586563423908204074026685746204715590037705985657922730847521836581955855246706401692983846806837699177871794876321008995784645210660455591019769386168452280006859647190283636782327012509105406177372569595690353246732852132242572989517593085578773957493519403675831602918520712983617085487410700342403981620109450870724422999527191722489174357247520979421404199884686059620006337895560588077104452139229317319328799010614502519477449146236065486282782630062739710018444269995088007938573372316235738363938627155109117613391716618631006938009586080291897229406192052076028767696221532465724471997455183870277163864018098181984798727963397028806090309512849928608929758272794269611439955537888752286214913665864711791122137635280232259520830070850648397876265862951473639530125429036100330917247183900269148472058067751635525652571831222285288663979374397198210323149124280624677356655609818980435978623811911137440792404918820994732773678083747081340300120558083528504853090636639428948613246430706589975983267279909161605716822133644434053274878141158160267056571049743812471492158536590412900064895778681086376726398587649316480993935256138293774811140267567917948266653509575158195743337651788212410529458260335687464193498553674245740858670997002644243937682316655745393641761736088536110418372169970881606396000831309681941371676404981748659608093889710905797755970531481653358519308455135296508119048324189314141834493553446386340460322450051322012126657433502092666211320971460217354838333013112445849082269976404109804238404395217762561512575409478841962694442396044748803884881510068515577539869490147475347743097670652519999211662258435445466842479521415267423170957702703367046467260393511807338746459104255973301326615537262986167366642217277257583084642650068818878442801773016073610314709704552025782880171618721981085844464806602154567266848542272632804435254968230051686540592554535036590554910189776078892990008590070626129597051653829200580618377679729235754095980375312314872741275338490763969596718540611574267206146248513712978898688747590193250543282349147258027647667069423446703390439858084798783465708138080825488276208198759255647798376854694703023262824431159087050137296416644558045152798296286528674282624936087237263602164645122735898898924447892509381425941703457593295312444583581730814174528782373747368368683396897990650533765868365232031608874781917142554204284902915658869512873990977476005092657203295888963226080311934003240141756593231880675683449373423560393163530342355090996586430717722299871525469892947101119460559799550954127036880421757263358224962108571281547495842550633616159137533301523540921317876543366540301306085042633409092690701110274440300601883036912526039936528551298262703803257727414716651944008465986712206496641485033700192940095415537782333865198390136580791243490845245879559833612760886130225748853857498006855075024297894933695081586212622925813416364321247367879258632971521042776805719532921065720096578709456119427839411886520477514091876400027066257740267625180085387603808522958906388929660643451151820049102985813917893220191393089164780701925853894067057412742293216343399519316190339244289006738904556481690654225596271227248630495195659919037671865489175512224992456937098236552291826600394591816231598593051823807845001221994942798262066419730221758947025594831830029119078855832034548613923510663847629387265331898103324887517084235580143946531702204021866223348670742348988076360272609013377069832250687150167941930806932876906011087128300673538578368296310884852744978948054491778173051538614833642556969850569354783191983505446832438392561851782758152470482056116340262094922971667044501533079706556667571807680280291961062977712428603441270898131914720086238999889927678308697718666748760121313978470874655370123940554344781240832268531196858178013386517251598857846422260345154040931158459089976895672366156901987620928766501112210435838900579513091821680504575301878575201784582073111389986611993621730946748468673526272975218286397601916622579949064768993231860634005124040188066855069889382847153488614863940819983739359713607664971450706512898395523842378898072800342528122031144986617061425515704659523497567087547018349233945872915388218129096443766495249270407016252262998125823026155215385915855637696553699392502625683270879999089771629238258859607103835346187998969704528722704438046270663386529084656277546147844790647804574291306574572973194434539954361835581039121554995873486788396730810330368700535117442970544848002558134870594748009348624215038848940445762597974225847026885854182502312493762908479826197599620900621502639551965052273297701888727736977789109670000240501839293495928431504379819471014905811101442130434223073767556835194779289504187124998141320249848420823825785788871734790438534873313617926443149052324437538946959730777190075201221097178480937084260819068709427697719946697738308056698022096998268384955863150909546397566878844836716827682760957821596060813124999655224453458700103273211895564390905845839087709738388283200424505832528500199722826477318702182890449808710486166386601749246631666823489078071380831166210393247659725036812906182425775128429832318024763080492343766796518513704807932631530888482562783017421330038584090403584876080916309978801642721616504684371356758869264724500588826327855918084199258663051514905745040740034039535223095585698123221540304533376921426851611427353869332487792049024468541182250079531969053054325159479388767331115985494870305883145794585665656633416442353790687284500823437617490037359749400493909273839033058360329914805732191345018762696495218353134590865308201392005312514495718258742307150370749915057103448804792811969718439009296470274058892554697661376584386087627365104970293887787314426056848620651824881330835299366592205176227331724378275113947416985962754367266295373427170702025673709352101930344729125764633017595210657728268214585011434735440070745002461517229494984134293090472464020772917611127151691140544080623008742470700205233048533284911548690908132595569657606872440347245906754235155383810397146888599677988784656023340121524570663027507434281059376283459693750085893010325350269798117328541104704266509432767660071603777789297276750236288652692342501431571137890188965258023830538145166583704214126306810930191553049179674077667463152960923056446481179848650451699615031200064931506115637576878463726737441430182201603945830328465125431674824465691441251722496546507808220324477105140269818137474960989574547505949356000030296970978383385260733350008451639740040299315526249865209606401404185089098374217138964778615955664003829113198700552193871525896948723376003052688705533305221695538048668830187975763676274418048289843923084648885191097014009142999925996173930968982596309041027540765732384450474750031455852199662246255237431831226408040573127849494765391715926028779988432836862773873635826262587051340962025200086300008338429399732069491778313763810719517271132437548939039182926199485860680228112530909358353491544417238741429076531996582588764128815256556825794463765140421272567951660191027788599719834172280557384306294794593802016674914535876627067108364045732559049578181121084513441392732739205230363864147459162285728648056456246201527353379263834585124139716867787468671001369907558912314263842247287595866306532220376700488283910077539600159501868293564426149750540729779657962624701502091941816745387615982763152792805849231427074237688947668139094497805533320842549253578443094253528019381854228630812075855550784003963916187893634059696983024702209386367575921374333616458115715178343290862407034742508537466343900039943030437863133050249274938559915767905835041529165251841405198015364873130519801877866833040898118373345897160079619941920067223667244622708845694719126672988321809734529046656877532189097943866158960176281961911644299136895788665835239659665127747099116715074119580451132139778206618876657740859685165289511312253199176239989562288755954364388375693105568014185599502162847749837015874935213642175081105030303326270026600135419195730486116428310802378748213491012530002823024193956813909311288929590100096769254688539010933144288982068077091736623996958544004973858311918147072275472168205633263047169281648349222877277916209172215067274737415833612561385118356373034367236896981681678833870569569479002039033670296565149396661334616610217769348418256218395486241320914324356732954378978444440289921217252650548875720861969465973412027183028210821715014432359550744262750462482301207324123834689445676952494186189821106218262098931644939174590999951331303794542585095148084563437073902030273659930611107609723172608298845678367963359986412102879047834889659329545337941994602310251185224674598223917494625731065675100998851309381735230916403013984917229959636824484077123254853052178419000172133165295924747905609347209014216788382266768103402186319269836516878005495092887757697556835697271230459837941962594176279394398676390489553463546262558134694428998600762980053668345906523226287867394572931189312121839004210785046954384089376130404331939678757081973623255347502666491695483568355959828773643371078433036939516456770550510581679045004373391062400198991771895380696101907054275731404147293580440355895881585415279923716892524585378063273776418812256740770045510664725254762262941227109825721010917373349341640176067989064471868175318321539954621513601054839459441316299426284120407265167325000538126879053255478037545036643309674357215177745063734786991109933545677072312026074840018015350477515969940033109687734822795704709803691568751474807386638900455693574118471851126308702910029988335690032415224553951511149264203905144223089488233215627422393968632671922800185533919493119376311486202709915565327110245187230858017821489091761831278506705567952665123493317475005859237970726649935996973927033555047565207559975581881645088303016441431290147058368306558321440865595939188944954431485038370413067360088279521523033860248579878142842642638599027127869924555577179521649866342105021421458204467798849314833841646019317708346292072568959223652924167216225345746796677266499548074395839376661456513040967743276170716811307097241406085138933053080692989592554795319579021066392551987454505903235202085149931896580630775446429693020382147311160617578936118985870013819823759004903867529060402968050460554096959624742780288801389651983618430121905347708866860847330406974764915426587782933480229300883954248258056705593584187331709316720593584538988207801974937741455816208763624938100732414244651587022246401882721692327497700817215855826098750998349650462215725282520918193183800403101628073375221004195231159101387904863830961331031066080622709818317555520934673736778277605356535407917474627119392206153986632873720448867017868016736767066708997649032250484521961308521579000588698122621015653830752598666052033355794798156994095172787700222911751432559337663738303638606684713720525541076697020286995622136810896046654781463633476205092576956058354686802584874957960414643434387797684381797306179928579865018675269502088742897531045591141490958534295874436051727451282638755336277114133284024244131225027497283007952713130726755518949770993247641017399206176590699618806006036543791544791318589111909268606394650327802065189773293807277963448958452100173607519592230739438693347830322515312579553247221080256995711086690187329896470310438537031868116706029413188552483581538291391656341794165647292706245277401339596797684529231112947904960357852319060992195588171562787275260048842386183973846923868720655314648043530179414872128972950452643472258783477768738755951677001724424381498154941076862830319010991553355775509159250384400606079053023845775453693483857381957533175026023532131376956481444713468069214554994436312607416258823013924227764095158146828084717290656314895926188922991104164878819578985129031773892969551555756990898846850635727096642259284367892202108372628473066594387119307293603159044784655295620189310413349806414012037302584526685325347900961277176439970093573910711721365005173638783485311034918755132868371150515827608899293807749178734969251470197108601563229689921316201677296778505727005751792645063975634378982593802990070376442649445669372046198793348209477983137974489682067911161421221092620340442107106137618970641768966621097074103353028715983977476922883918775425167540642168423029406550589814812925238284039743676625599162240801677930170491572775560548687436061438015335839510309877357264998126424908079901946362268568134441732573231180174989413229124480098600565531140504981835297319570499475481811262979864315395765274596493758077447561044143154188828493317328682062339410592518108958084426307308416460505521656242937232242146214786473931424276429453940679698040187806792672444618297525485163686646171018865281507083333516728503532659007039352300185306185964170010846464366715907254327722718494260769553906423386216250602838324689377641066511863618028631627507530446988733648643216966006645987359309326111112682438165461493667432430304925895123807348210997945680037247250877228109036071483273596928178543690975376959585783068630145860780807945922461089035699186760787008016232409279657233858086765721760036917132669297176028625168864852046434431430219694409814907266459142195495885035878365552615848022017428516754067647800940851039532587674106346764870862981473189138358662408775362378475592634343842272508387925690920898169205035543981719201594252875936665689121562608619041968464514658885372501531524871904015108617323184357094641195023252461792865882555803154403598724714728901490564402868791541566624287557291327618199323643590117827865899931681921251284599934338321805508264832985139476105439354874387843115175038747463584403246690435714062271495613335646416904843630354450769566234288106078192507991737867928065519905040143092261268867482313494998513222831582677747748080026376583116666038295101863993574181077615387638763406722850078844390504176478452200954977920170587949117417518765778885807814549337734159489406125305513036483280290848065272386304916638627909282020330867805046114343559842266953938631837227210095565904692140745042164803379092392805615268375800286789271586850861841662796539505253318854044202782696753167903857383564193992396198043908743657773489613929001064886269682027378345163519254429501294926495485199102274444341402056959803634202360462104201123218197202673607399821244218751093019456183326126018847477867182760372141780393077211543651975067917767039523293368261161872037619861108541791777684335220765469211415875433178650642600782030571065470547982739549421710728332089232301117491517799853913620945484067228199839507258088007216485467294740207920067241315290012583529989627708597560245726110477074341679146784015194145243442882904627043802609960046350259755362369207111760342888942001720969269846691097737966722082414294436000568966558131526870712230222448820157595806098162617698429988272542837318689591305470919788410363734479752739421563221249800041518086311429397588591193117415975903751915068667888609790553102327178956009727794523129444606185120052788492312230395550209521062664571318458249849698162341708975325185716881318150252015874981617622081798184749465076080835909338945067907741095068451312811719248191842196026548966308760324591887245497512564298158228625289417204860472289349925895841484282911427757024887975739147836559012545383754121512166926145930331871470298747783014146907536805961354579442589767545955123876147065677429481723434687486298919786990305454688650620557108467721371173156324158389076488995862555456686030909461342143518781512577897696077783243610306325609343007106288193301052316855523667919473970519347101260239377600819350066874898390553876629551605684800347909033542421637317225739016266775257786364215107983479563406963709300935017494099601209770532804639481831092916330632929475655853931120605049871449239602530346096667465667637094512398363089997199761856946914486979246226191584801699598898525071313356318778038216854515080419360468994546535982735304028605873332819664821699940626503478891259903287141074203334336782890984882561400558800338869470705548006409001288261939639911999453957887487486072077296858769557980046943097103510679266253203782522262840901698458326250491159342407667941354465822436101986484091686803162925363154183968081740316698724289867827051678203189323083709497571933057279432227797716952599684726106265481845398760059869105930267136588424842324043457314073951677397218532625588256633930143090964077764044765392317473867010260882064251482641921013274422719041685578702118269943109609521661546853106095895542976575722535538542750709767872138209861723507972099909271403100049807543900852823367879540633871671248843671927388457146747717367202859702046324506323723365184464001309213362695244623624498919347311248283484609969592594432546038235369469528648085499533595070055672501478548210145009234771288901687145082145858276715155842126123507133503185699088362907307149462513014067940684473918405627082724473804763556211154153127484494839210369205546550100866788322264761610899178486014080846446318549868115714428742432514726463653079201143941493725581907552327392375826992668922752590318114369033025895802858707289026943886721549669705894873161359486852299716018284593193025655666031891674234810858014159248399786931673850224197078936468411999914863040925333280575704311344925872934328604421254787555111146198609624987861187977173635517243518195296002905251938781295151564800604627647060125261906220840958643469204307837930352491523471388319682313630859254580459914456526459914458330885520806827917443559908537454504754680938983923657663300631572454848433106045903017255360509361895725292915577685984723192428926867732532716284167162052551215469973689648669302877915688569903703153942798001249290830172096707035828268631535375245053983497147755428940045388074866758523154252707573755464857646268001594028465017955786671228233781548808063580997299468151248186928918914935611178402795629803459576395430477752698203674944510418694546478067769575842945169265143470432420135479026303012709620456120375724168132214753121283871722695068361380377071697202169014272550751177950972851902897929351768067517517072774206615874503254807122875763082600284940084601060640185724342573867837105060358795150970083174258724773745359624369857717058395759941938621973480930188115802236428357651247840813569700083734201254556759037815966582367928383812015047346276477454051209519911860649433652581976150779884078625049497783984360836486948892037444011359858220837688921769294959285735782035571195040478918797746493818013127745424187442546257741556386554718489310953635000029075642766373711027395582193041725745050105040023885386062211894026703253672307979773685543405121108521394504593670719251453861384417291400639418809643115592960092755974119841458110263185457840082874445564759835231380090098501030685970047218537120164318181852798281870538983105359314426567873449904664562585457155490623922641943154036852764823262077929989878062019049434076495750102924044484288406657336247517690417468757226805712401172900279708599134208691482258656772651680744044331337348043175922566438152464560038795645555544355811808104223144360946561777627339468024599620283562544359044724171580487218893783969821162601453180432846065841881683372400536888595279348751121233438687027302170524171665004489172230209249916352345911962789262926567483979360813409579130137664234333831143893107537035128469656602123423410461508144871073150429998934735102230984138532119009406913941355967084901875659942515853879710263802194810308238013750675262610398892301528643336019488342691721496156991542143626580667663806422974508359956792569652312389082365244030049773804237894900962213499677560540835512257074761608715236503244358294384284378065061616953009465387056765717933521370611494577028434583838027412288967706706209331879656793508109772823903035100973292858171942768419286598599850530282009723284400089504709671239607921094696573882850587805430263983116445091421400217900290181194105870485684226652248015668319088794240502829011751156197592087802572210368560869964708483627567800726299228790096533939463028273099449900181245975657067834350081294419938455048154666055687684331644621832119958221514140699217540312603263804748435839954170633226702684280286433873655267823296147894171182777652257800666826986829942022489981733560590915620304916386807532088544064377608596556787018884330092168680339172130334941415439333464662668960106850726702979437020590815603633286801485581612302136841451156067851394421608161845788330033264408975168594895677963909212217851467494896867235335710177886875380779542115361476122558885167723609805071365988252893135271599532385773612161782877349685308217473581026097764428920745762342168135624347177069139862479200031116728498249055408292409118424613077075860110157009296785960539107261419326693100137395649493726069128640215136285038356333546504434932821715122915304542074418467747552096810304565532912222236288453527821225304758990805941666294248153124248190552762953113313244569093854418846708851483402082449762653730334142677546987738011256627017619257422584059930709460955922711086740462810693332034623204094874825902707325366378357658629630985699133801343212134855401816570408975397719916548703672023526465173475181662288095540831789597651521361909114479445574710614172573701706640192606383443227544546618656949240768919626513783097056787071587465869815995052995849354003997640811791339764589603045674247170042564599337575594611252979851690789335696341579534009497228798076087709620268616264334492909376227314493720728649040600050578320331595582467173329985765148570763912669353107793663990129492856631230627109458189091673082738239309354929758596498262857643156946665216135902555096249579937726997501146562752347147257520865108192026446335039407612560133726081456095584969374673421223727215794061483424780516675975917679633733518007115377992203624722962027494780582359969015063895712210088322867716335047357108795587298469688626869023839755954239833456200894174118809104888046655579466131802125107774173548992690068901923914280257424086846702290708599112484883008989541311369532973371370849027542861223214532258964128472981638648356594077569870313907171711794328045047568925146000255012802556566241585557332873130927725267682294709677871995461853556883702987273207707764045849066660893058297898740377622804969805410239900196912544298313295823561850375444664428505826464354058705149138092304182578441159452676629353978109502436807512526062604885997808529232284933564650669190224319942389056296121434668766570527601359698075529572285732991398546086089246906473879249668034593291708188569500724213827895321015935486252949179640811293138885545569221908182715902728074938535788400841165951395213791996048152070123025536504448803224142849481784333876328970666082254693433699595569535411040235243330045581422275947222465611703205381046216288157794027499331020662377412179943203648246597794482704778879897410732264848104103189000186648288692055525045398948074030514991893991626454329664338446088308266696118681490062920382060349715354532335434763834704761166226162069874329752340118586866047810074168658686566106928956970846459191284268804079206944137698711041697008454822908235044453468298586976140392211366888731351427994678147307835320013497195855103055294292490033841740248581797203330816154405454944075597553124544067636053868402888707060339670536161863571190194110066330022732743306600869238014558086418964221595786760775362222868634600089391151079608846132843705572277402001863434335506051913415976000247202479858176669332506679740504144302461642837738938101260706396676051995721659080949333771108387347499942363454681811957985374728724057906576009206984926473393679938047661300093234174970961403256271409663721426987059194293769684569204340023706278579920730074364907834378520698146597259147443179192769430196437417374459152795200744765722125163192205917445974253362871871484878403076088087793021904901402738297051818380204252379807593507534069732316739589700705429580103970052356399588263099303707763707915241104195108372537043733933524242871834477185981694624151690867394607370279810544939781310136132461406156416441503293845591001285206279996137932723534245069852352864657266844033433748002436099677888057705304005135692505832347361643477431263530041505841044680051754552555009921703377215892948907837386058969178170121851331538414251611807334980999958467524866610907679294601939712431334382567816267322308326950197592244243548997339904745967695901365049763598304165974197675972935775698022460465054651678927132066161847677155904718245285857744692625530193768645228099859833989091453185765249979534420059387152605214922177703311878964024248914454420243950436642964733010670087339708467311350710175408014140271689933348965652389778980870956604556490184249307705738554941607320485176522816733469694948408260591791636353623995705691053597307270564725839745486864744447424188699068122486998809259038408267134335572065968364488675236146828125212894148698518883471487888932165768615641252385823963725857960597235816706182730225860697720634973600626337802675294976129435993344170077998977887717332532207579806692118472818976099087743144138391306159955411024397285672351309901026045092063740885832953416236122510710102891115151667106614793617770293885185560346216942384478525210632605500686143919085110973007891528954603532945999970157505803600363184184228493666443219858974483241262221018275155790819538529998017246148771884690017019993967342953214542776711386418329376258885097049778756458444232914941363168568538972505610905506642681310791910069029732259474764754009162510725228177642247124310812756973688293395482457379438234868510089377101642469847908660611816806546082722655407736699453609300042700575759083064557480909585763211801848260494003621160140722267278428176713648184198492393873924659059361763131032383260478210738611891705556687850542644615907966303911149648829606899587630647512684318838212335886332535848414461080521131856930047427380476778753283575922887321829912225491585632679636092810024431149117008436786434916994921335986690946807925776305636253482936225092907827231767644977721656837504091553180954333619126497023562550416280850869589588046680311335488182017739396210701050800664718344380946625129088419382525061512701820026982542359884635960321015803838553790524111375424030661255925060751879617293494713257188069610429396093284214525976146253408205788772913562426612229210077439776043836266567193756680221988504564391557698321634743350965808064914618652177597182723773324471796768363405125747109791146883940897787119310694710551758036590675710428295209085054130293396515905981976103669519092343447892550773002738859379526082711685373651264725500791290828889142712140454672438561147116011251901501288054899621595069916514503782323780694925087014288953211065958887963996255745506699250832619095448624646414034066213125908274020725935211594260615874544775039424844090679882739125670210502355540373326845072710517655458245508070285593733450115156227501831247892447173165611634816453796476588952205823367277559797330611192895877492499712056153811765488004596415305163101058679705795954934356492009004041776401672062355563067504297348359580221480108770136457948992568294745367659086568356679343525261365201167233941464392264911451625049539256147929742331608203537465311290068884373491321218628754421155926958846820025714774822823668149639541106848404851515519672758777664497231860184456589824848340782197060021951480792703695594316774629620173938778833182276953606488869308318465231782591880756435264040555881002340078083273427738385322878739323613311553656013351253116906601310484586150877661072352962672171464760219141601627817602688623698298341705563482893664839479756363025407181860920708311918547950892412163882670207305973081479568786780560972482259146689539209155338415178446637186568716609061095529164161288312651574499930129634703083612974318530606463838256694854997323438318468643976978860021384533270297421084804724223430887349395146861737426627520356879717621069750723227523066981713322344527760895016769171762591891516410070715888406300789472952296953966784819920532984699867072184756746193384801710883268117224550098809443771750040803703108608114328269201873006504080895030745047055991395385118114844815123020350731454056536360880159612806492174647895385532750986588897060972475255579027400918571283469985561413954006478343839670589349260170125868795581195231094101737971958262888948464982307453184044443254208368722823954428569515078428650686907366594637927018362362870890054132221796517963136557413022389338201606561554555341702800452046229363106085312008529199180060541008441463779799807174969038846912953133647996137885823117301528750823818150905767715047423937183445564647210723832730120990985401002606186489692732623201482701202646322396532805494802202480981979873806566726865061691587855674635382314888810941536540438376249696700084733719257565984982078080833853904661204430813291360875947936454340388828836960228075831174003569782917275906812994402892670694884474336513779440395622390385727239715313546160349759239365608122680060083315264842048593226686266510604025671618926184239842871019921100600339830549577753812025597931386447647711955327208592349853199307071249679924768612153794275810544325322671049211151270370703328827094507337945337191983352466764025179516715104238899147428936920057916641640695698216709410738080949117725764716114079705828948149520682341768254576988708460495775999704901719640386764193852351673205447455421098697590263452079794578449369710946692566326810736720109063287115591197082125337024886595795917192184035204476656541956930277519677721558051762733030225432766137928691731113381261764484499705206057332607117238883781877265415018715248276653846645255624356777473896424629207264512078269565900500608018252747025940277862087908655771596428659878170167685110384620108140423584020885368290714161192482676766203619891236792175452166411919227597576466774770055684677409888897199267842639127764478589600173942645273071584749834724441603704603238984568301303322397853955640452489691826563894959506874464596380151267624109924782517505182906172299453997986483887818726618744205865502312859330976973436955998758609409442492615768160162500042075777374736795009352961963473314010138772992295360801472898499860181766721447626259420511111542826512621138325818823764469461949409390882890345661704514123969053765531379792252265048990264182142409759742639939644332188244438158349989372398425815984764849978054780982587949122640350154479230877732782835566181415791024130005652497858005075671526473483267621990225032329458725471219521143395368028864957800851321198191141221597501827124221544418694025744182648242573898113196626771251807533253541261038279462644915717687299659959914325755851808147524296445907231798095397216229520872351206752053934922514418904045727596283168366408569727821073273433902857099367660069555441033552840317350147362837665891691471659625872033515250241382383785952864992308625963242639532088157218842309641446921553971773366603162906736647070954544254374569208919415754780067329481660195842461160778232536093339378030393701746309176664099037128577436952540146404369252116459939839915327516336628382265216193676581706289346480667895878781031684431514729558865207291519632695753342004567327151885883535894881411140889589025347311124452921607033699468579172944952809670306269570709660058616972142177048740425873620749230442775893697184623384344104115157815044166881247646282471396898362643275067568568961963154954676810252909412998117613573073461457756146460647001999699231071227816482801160212723583849845371415939170808204732630935775716148624903407731596229484251610712637878005834279121177570261242639020714433218042045982742805547955186965918957990647864414064986230180945218495690199934482540161326220104552996148714607321782524270033629550421508543507255013031669478620584259319679630458055278790790322504119804774390747822008215720040405626987602446970657649092379202879396847414221978032706748711268316397304049371733015117331139719403426342412023925400783667344983458757756168365095850570607387545778905976346027585192349462326956028633245323086158537631310014117515732405001987079691301025848674173761638390895130552847848129373447394396159037055256692412669355574457441355914710825915758838637934371117481982887194217902757645796899758190606524476224049056130132421604643218403125186715548878727947216147035757511322048462337667463858863509396850066566466641058263175927651327383566303241479809871473743633060297403749115356577465742784568092349865132904298672903408951756802762616284685652887963622862992807034787891458902193629203998012392747603681105080832428215297887029677155755157491278106607233583623038267091794013974036510721716587327336066413750626913314792756275777387788218390671376887858575239936314582082458871009819928498674219762093562886027560270205262724144101794362628010699992452681574877686639919908510557029698788152566060291514912542226185788949411932153759016798755946272634757184512401952376952047086934795292753519191631534403822741629169251177423200292592813885591293229435031539357641760760563825312508548030044835102357048707572130199349021841180329262471585118245479320326603262735447636144163108009495654841405160466649452536720311074488895821089298926147753801081469090536039299861932746676159135976761783408510531420856150987900508491686137229440657125999588572686828925263848862562278623377469710100909263143095174406778968332647911536477425432964203912848470210797235205321048497719875412563349255384370005435155988117481441032405053707514778030247161873805476723739825872999613933257226452940204813320159611637276232756270442448609728635229762865534399925785281900404302214075869479231023184524319219241981250364587870702236771630629807660721186271986974006229741555574127492334701918137883605203838964143340923683447183356465794779515362002888783452614905419818118296771073263128309598799718044525381873717109235571110929007525376858005926216425325124238918200329094994827343432361662523076039208269424755256867319382099814336939588597612710175563882184296866987777109446943890783674367431570507059019345413710136061313264270573980682535088988652790754487040876164507901766590609948324629278665789007154154687306793252045026379919982497240180129450859144127825595002360886903676487024539423978381903732687951158515895859891840303694713118801687136169509062823480507886090227527078612575471783359902089475403357424995840156677655105356796482891695563328941472473278437234589922209691769128383634442596317011408921902933345806670482889728451285697053036678260191431638887657637519519315568833581651736940564207840429646850960667662377735683266553698550167718881631002017012274671341669561195983264667640159153009367450936961539937905534873972741412414350081146024212657115113957740653498474699063356899065666029495107737629595183162507771989942223895248311298497555340182212886520035866932978156253141323988527809518107993214752389908951150815584355307456933537026179161194069177949160724806386901716341278371439907657912166172253948925830501238124205329105977790961615722347057865358385594789944858280221338310200450049924294112652162554872659326897896831663904453502927924372668288005070686051308824531069487155452364265936418938826093697188971970442654848059466034447700464531508781581431554378329529733370931398563421867298446646233769908491538357439657115859834362514850599161099481348437446981776461002389265506280917555265443425055739410766549127736002509272156943015030819893270903828029894612444840359953897013661789286075059538710825622125384573848918846532089219586610421583578633179411443818769426035270788468368560830684345094187641767118369328810966802873386167248862312164469529336548730312679011168592423313395694607949776548503030659333937503391458129428421235576387532394955331840499132070047799759214069048266025037938189437385712401649962749902307313859136201716777878394021699374638891221735880639379769947716193625354353779037944729883354691990401235088068709974866964300527243486615316937629308957010341909095600275044671508410164643232837731103722494323342766231870357104972800153190720207773151075415971044185661667965842590199304685918250085564082968020188096057241867995771344732622158185484104953362840873184718160424096726849317460847774706627529204434518469327748714194984039259186904883961322074997086557744406121883294118215224434463473104480477430993282622021880626823903507467825148712743327664319451385279427496085974090264336748026529971064309992272404353686382684745571776758991100506494679634262149294335756773640188897997355376866695398649206330941898157623614676931131202895777823039136984227562866040623408057469270265851198786498370849084288414221904249812623153393815394290730063956587069920874615091634746890163271551211011727315030974871927138339417472201381832484591316906949323671160003948695419205352567907793710545684913603593718139949046129004027580869756367830961890407162699745047337346224956715615163593967797227020641869211498383772772480953359456727900065343170931182910463108823218774115948694758558289342061289800757346589418531542017636997101979920834953801329965529215702054691082156798527645996735637005791106774492138331965515481813075553231991530071370385698946281298963400822271030384707563393116847851356966875099783140727068940100313641568124513494771130810672693095746324627172396898915667046238862850410014939256294727791134700599513557150566179909952321391330282195857041956931521682872665401730500721761325645719767098544674119245653253134137648774279862460544826123502669817949013881454990653365982875263821211488285171204299139156804617774304853261376364480339945442261618872276712038571785597098431363134833568379149850700310802121992235597973959884865728745862680885575333297079551547177794549203574308721480275126609331134741470626143969615945928084828620051551296970402893493080880488618222816606368889147812560007678244760922326329006973903997514382584331396510819063218769391777003550305994927379640938043736768514381855798816186049469799924114259423766902879495441304998492026203603141574145724366309438107587177721789249981795184180424610082584987861806528590725495305791886402833098113770645269316409987662971280179040111528433545972810278367027231822174890458757716826247292132938665203941716953357810749137498550308348341279995867266396783093692377805950159501841993402048755941703964069167036937220952903594474503498181016978948294555596857796392673980299966410032183257655367744125588866420488699052935090682684121075414409511081473522342289677409702895022299210654140400153439074640672026503097385680594674973189499483268285331531077464906380623929787453358556311252880296634688155013807360386378216713146809358112436894497910906003513074359969051237799262263859705911713131705012050167245638575644012400282832084080480383058704356559169405529829961371028502143363613634071340948987729711348712808586628102281321826622980686125228739236641106434989717839624119544449553635097080693269626020078751880334776012844954508203940179485570194805030853293635892822332635556799036418159636796428171900737697877243879472395628698683063486452599203991137625609384526118327152176273401807569527962212305666039776792233333660540421017261419967440328009090790086195715679896357806920014617097156079860275483568131237417086875320696430146194269554224590152966086632545086468101179982765050763897957372386107843801497799431632132157529376019351998589610427308747965152380220569611254728365216804527400102165422695558306107623411578608431226207524454263709260127493491141085356608775012107315193771751369508072854554144265744086647774637188111288757663592341635370048682520256621658783539925227650883470597884434969250893925161976152813842226259869547127738949109644344064379251911931237261185518647604555267966360090152074084598732915769640573875100903789529012595181513613513418631767297389051376363003933961978128022839958009519199775775573837686859628876225305839678400164731706037105545800593120636005963258005844921097097145849525444653331195412873518083186148653290378064355808820210468263900456573936310284247418606263633190027257089490847428287351750226286560001098402110464526346649701372273793547132950125925812326759355354763473539742905641358711892249731915545501134943473213077695684874716855587575461277161644174163416235223669137426684167151936749671818959677634742397656173283940270710877641251679913386665129367317326268426547161719455285780753762471339574708152745125356262708436393940378885828754858444264167903883615965799818314983862821409804054898163556290175952573725716798544309959608890943459248138750126506387415599046264632893070066553832644719888190439050058647551074855791900440382496504633879012591124536490567028654144036581524305080108213469659647510504180209753688736650223923088636038604770909969169857694970231067530003066474113727596519997037023464687207324907693019267601248866713122548821263557258152430765557339264846054732910112673143256705136383910581690809491435733658508741049739865156712877791545289545722813449448215340587850796759636557439632072632664555874180616281527814947363449737089990886241723045803213155337051865017997620101557372762544377155413823429905911422789058425446497735063344659801594979304507314280134095533675855768034961218338530478544934191638169780303595740014340836018045927512844513986648145454100673188365733099810375224543203253988599479578138426344996617386050287848616665851197826219532308164977412870106025915646664020265558628176952024825976241835614023651807061454736506889341428701859908654214022160962734250782429948907941651922548235864119799614296129487402640245462368375525956724236694561269033539945459986954617734939217202747665123616145242347675411870028271556768659369242458387711501937411134731666780607251789818435265651952263694539198107716187211702617643698610461770978673179725507152066918928242934513345336303983846682732099650465923068029673321245571075998125702364116127023224100953092876759331618423266524475603399094686819921544041139473527544618531129046915621479380738122931098903754447197715727692859123898179284557845929730634394068370703287235692477045235445514171874833627894069833201440422697773363191081346513427915571487858889256202850080764975021060587970524904355415907971253444653997727108974617528153458291043442901536157949671215356606738488341953541145341477671527787089064199683384395864703528041349430242872829826039910739269030483504419074113655387074391736316282424533273566774665748862019151600357572452992504111513648113066511683657950757695997222856338261118471211337711928592689519793312740093265009930455949177747310055010592541642511202360205667420514616572644015244542750646910074018810350207416759515418369159072480514754694421969860120394462040573486718072150303563256051948115257568830709697035475641028775782646658870800622202851195195344679870203690843285122015908505769325653850430998642083673512339827648939854361174523068539136074264583747523322877077189316384071228506712933644409548627422849150055267546345549853282214117539052442789094717447302962603423830009655262939195508688712657195877567791513713407552495543120335761071410738809012916615876163173627234429851169362186279696645763166358213979658529111297953102970285308931151776393216958740256769510312702463403859230016697499217848410062401133801745181903156895098336236532613442608961020746278790202881771604765596177082739927789407503099731827361425908571103601437958924025167165160414929507779645846398606012409685134052478835177944633317820275170601506768278701944696339009517123990184495425119658007534589173202979706611768681310398215413649552146138314796406675583343869856283047719766843949598046852596665028920264419224636297694112075092893564803088024579964861240684974731680542450819674712512187484627759418710717872920972153613010562824948154294531173463931522571119716281027173775677810100863978753074846976238419507766782082005412154030477691484971521253647351548064284661166885323559158395350788398635883708672776785787338361804299973463988679037088986767922257369551703578673837525083880758716013250125964133511997697969471053665484507058505461205714620180599812390901847361674927468755263436949625172902561809250673725553441593884563315135487482260131931909518922289497137795462348311961756612800580661824128007583654420236261322988868546979175713097790653032523126401966016443229485471328842768162940456856817780294190912983684687667969158806581382774896589984265945616190972180141366167294051781791852306269095065615218093424473741979652964141541185008792044076974035292463720014075313721281932797852150794724056561544278875399110955149923993052947302247394613821021378147557899258844167941677464766832983817006884221954861972352932305331559252942287112503845374137489045506604165819507329431461676641120340459299198179929214872889930212493106883973794884743140898322940121491224903308684473870921041039863163417689578490322834927849475923242983358730878034126177806179875907332965150543691389195794557114280745330059173532903622150012697686511364799803212732038196468224472262314459659674846703423116617547730295931812340331802213103935146773820396098275701168542153656865104658301666156563492814998015130267335950630947781338517837089233936140552663724132438657527813875543701604045347328877494747811190549466438486526723821104380542257385041906812226325106443032675559384000742503165196558454384791680242890682361654550905566079244291861423507661979239692542888334581770558345555226733606427245074889226027744975775864393063789828683142247756716055916486940788187937134235657901539219044425391573795240056447393649869357602495617157076420438546397050634088528339147945015189340431893283747341432615490168442385592934428828667912619401414877927444857418816490177342371150314367940636660534416170645229731436664182359781667660989392850900073856061926402031802569783298917126865831979685240145046231371138739593162429811024585432062918343449431371654262356280242738812533575283601608772348354720508163152472809072629551030192457794844552585867080981835259592742202538308633477250792140150817251771753344557497262213961915849811350101688464734830960445104599807742199255847251966571098958779807895982853885979778356882225100447509980822851032920078067199400112036141036752265643186784066645114068070972454088875520190734699337905125201848409078989208527224500292469017912642705475377185619336829782917027379032190713375248641602223551676894718585610230291566858293965718334412046615384134874569081545445947471702495483919960184534663901341124139359367781207707359518410679882297660390699181352856410130222462927582806485904576061842527073321519585411581100544526075930982979258158591232578605040815764089251571454658506243174800528388692722107840840946385634569149443997881845060127738114122367077593012676423473058058158893180248578514741138060484751355562309585290738953395655993902978153766052171933015936182916279269606678403534583809063810770483742180066514889890828366067388590935990860932722067650705911897077477759073832782276883577575240513841725676523115039654957445674203546395519796986761525234235362221688963174124485789314760164356674132072654911781952632151974251764033389849184480189530793514718671414201869258276998566800568801846729771148864942940626345968352063206671578965491725951526782165239256646290002825466504719310299693521944828653119848703488121261010082091920111846555574240533557254876177196868205025050109811705990063264893929868828736939116042139015317494188012938664916377463734283706375498198107472869169636050989477618594743719022165013608317758996479735218733068274013111754303421108315296948014558767002893601978565082601400482648132890272244395652037933247005609055051828651267353697273154195039159042813600042319784475683838590395380909871739068874665115258807487975031226017699926885307329422904935373963560198980477902100890102527561540819622031311166797134446669885067845408481089037477574604033920215510136423109065447645989127243659797638321174384721916080824554599728608818290662916866936332331011532483453389034087843338848902977897340663837993830099240740211662378179073318172741933469869204925516020594375490394702861729395752586935641967753306134175103084342363826378314013702135956058721080435988233807669117028301708244792302954210185625696756934303270130017625356727742686964541323668125250741296062745460991626200613297343177815098737218808551483660852304386454546693824970411689650388154595456082431182207356339575427726896464381793030450537803987346359255849586381610191545071386286769346990656357414284296990544242350671553554376956691024605187180103988265659962594489019349191614346175604921260363013461505727478426511791322278561834618617025145849237651793741124994856217543328111016800620180281156359820085108324503154698131263901481021156873016681336656493693842644655752069571952108346175003698820819286861581176429073437865612608188650465457857719024632537896563019298204182940291454182508124290969252349054941929885697528466974346616328463165028336776944492025151165611199994999002502567807504533594979589996844108302729229602535700272665060135100820264684739299868469845178897709478394427028504099154669438286079459206356824251298642449562445788026709040546249836033490673529058699870411086748114373484432899561697662587853795605933466863975784661742470306441516553963571334290041245434785664643445250541229474079917018647484537207963737181242055756048982693592271619866481976086012189269700455156288261715531457378404916162606096477524384724394767711721083711245206217639959017897685110958661640783001331817106296199296884729971453922896422848490207115918759560178440813072649489913901918302115995196859566964401907080045167802479074278580807265649709830211243386403592864649230846047499334936313324711198961161271364571711894520382017131321653294842599897788070237775178765859529386404277406856620457032831056268035338259778191081466610777758806372818221546964544206916627700316982670531491535886568256971291011732997177381182006985936551354279575347727868381332128531876466660208458303003313925117361779633970829326281824869748019294965186904875860499635185386474115661298829435545490274576589893874121542136577541246209219682086001166223255206929196590896650253090946591748592304118603293438142997779417152385894671804697591100433772151320191375856923739482523170139075482351218492040131978782543486968341589056671392627823972915183837261525134421339291042007029439423547150911734408356200925531056187885035088863103246061022427182422116696187753393093800331511584862402193088992735630048925883497076475321230724988530592481998419219095020276281205982160539439165917629601029877905788746294757206041147768905923329722300454679785918980643356746682429393257532347159795154129297125944138800587652132920485332679113264981013571308486361499650725749901453050543020018599871718485547664342570160878951482302167026320823264111946779832567608913153770799108081772180534519701131459541089038873293174422281754531312306068208982498107346485442544708819641140268039761591684254944213314042891958957811694204227086157083700880556796140448286981189928249708772356247103791135999300430701632973465642225605306798632983745052092711537264575748431770029281798593288914979156193971569048509901831332631186369283083819417582934758007175906357843846883229366814256354604570379607843685554368456549339444159865392413738910787002519553538284582608352316440650246811178109686497278308594457844430466699849649880530283966371461239377158895991103242882664657636433882339060729047959487597608640710027746344876154579569321562726932080925889508730037387500318635853724511763036515385713257812483082373109691851550116653053143156635996283508787984985504147749286624891380555973420900861181710808014892879444260721025525484005902153862855988184358236442099733386108233091268183427340276626544144844571213520994068514581466665795522985417384658804632036177040114791715601082585840114810094277898347917673126087325433800289109198227679285385493158341537884946820436888614554413943806143064220242709427121161406424753535877571094018414166604299831610436840964171701510089172269543671856202028746819196415630545513388013743617042617516457857309527263509366395793056092433882471101156806936898784070724422930136763325302659905365741137501728903616762518508400301958080240976121631157973885563223112308529852197297784755398728989975093765081298673179784802547267242178668139867295433637617327804793213923751672102705606076918802133801588084755977528796417658767599220000488427417967887076947813272038965305716074330334138221253760110755651627515908403956472807430526633263623090681484948032790704747679678167015754960387411459036401200170894793757016526745440314723463930161508165063099229550576446110509464312302987971263813366725663704771281226658012756710926025245738123111893562046730211636351140833880775484167653783472655127894528992266899931502252736959476064454540173253697158847103454806096443416304904050679908955867258476854063616974927958054524026288206959106563177834280595774432264279343305651938782340567870378492671123550148523844328392336447440603906417739025599137980983734069066712911993181650874721355413753702981397659647686454378532048369147533418450609880031166890124681778643505191505599566776895082172628571532853546878423873974995438244755501536182613176095847947759068016568103994929987060905029911770630861369655427963420857600630967164779006263629118001815597342892430748051221745361613650305055776246828835851623285518996147106214471710385746366439604557967901466206793553690423724176981462929767411955749717098786398616584312308006051399041438420811560547710636585461931825367747312848991195010739149477434602431062153031056188518991961332338571887949258808732195358064026627822826872799709791195875463266703808705537701979178404252427648581722944839856205401966421221052660271727107468519931683532111869654247958261330524287612730328800893595608816994358131922038450694361999637022517271569422255374143893531739413298457532243342651512713344984740786723905695529102133799003054757633568851081065735218904080732193685212148651859257832612187284786475256927233887785394322888965636932927516677187889499180644344053925317568929385814531030937208874984019788902513710857510400911173754056054089553253974676046910463246095512978981977610709246601416177606250498606192595372481421574876183076662437598565248699365847501777350867770734547313625881320391410035137204735573766989449738988544786364130547370353353035145701830464921820925904869837082329944695497156821827746455147944767395319462231668058518786516293174100911437981592332681866697802699852092884540546690020252690260654930681382655379269501169084838978803165564926177409113825000772304964131285522991638356054756610118684255393031381554815495994166997178104240883062075911541751646821626773310759868160334010479191359054813161656442683246018553193318986511568714215210053526377373235422893359041617534292299960861385691384989073729275360867928010052538139990548317822719943162794697045103806228730058461066954176283586289977662741997763091528015651476996003274971461542976693848055703661941671014581837694166305705985307452997817638361591810105649203627374453082239744865723483601109527847434282983378824445733544042043774184246806161162187570539069467681374128556904133435467571095097625970952210624934484838013658524054147845717100423383963274028076371432355711085436776881284591946245089833662716083976369727080818607569285338937675057482407245830814385446294643258860500275160885671005741132632340292163010235072487202726639431935171457414997405960578923852471555388808407867170203931450352638631954514142248003919454960493232031015262007876830413606062948741944654134630064207125119719486383032393766936209927116678693356051403616971589454037669565236019169167559999822020366979933619282900153972641903360199555434125620899410431770130844866972774849107124062960849340576715805415455750023129773861662488754157361171361950432551207866443251388538397647516710586882405571984437215723089846452171299912340429936134396121673577068234975348659223189876345825407632610019897990191455164978239476759186487375968728511386139847421155609957360612597964463768551397984153308646973465901740730989689392414178363451477740436671462754630133550821021632576828489882331535961145301253291049067648300619056729198246331832092497825633641913624911691547686137327648259290755177741271521350266992253662243444367766647562335066226848817177700313880738791974858663723234075656935601783827634624068558255084535953576418650107216940947516967041968459564662571025213617321612184370328649070233229899892160222203789181029260260552329136569532428879726118832164247796393663386663100491212219556935771604936140078171391313330626569300512089902248181614501983873838100809270269311382169749857067288901540622030661117810514766374444680903416958002728057584263422983334795531430660456098789521165128884821633006660723752917439384373173535401122635346542269274954188621933198298581884538108634344250673571120291158171973384990454998559885167605134573673113303025279036785863615449709867659352359343625950476338803100324533950172464340962630989994436708257836142249331280819779011061336218766663977003396106465475829050520482164194725001101156991575869751406574011777318115799765579798863404366817406827121817810222794316128956584798258104959715948703200278655363654717640650377976657597219670404202872449843850302229407494544733373339067212045655547084540996572901817580376628758886363038367084818240958231274221067917286313565572114475871393091848759331019500723791038700456299694343208468143216532622740577854667638090712224117092761955318562881567751939266614221094838739402593700263417538370779644830183667567516551800779285194455321362022508269061663782944649029969599800105550336332707997648382028474465432477006461972580767055955636075024177397895591548860447292873473395406325652094056574151387695561691435397925704053831555105755248629792651044693643745463718271097372744133348678132508253968565211406742392796174868231282283749008544188478202590957512527025510136638939263276269343847948096478816523915397420081109633824941843000343460150948610955068114404202894561882140658915161218566101308195936453679546695677847426426402078804755025996652866292696350014485359422548811363845315718767751761027894894725121339214460360847250837375287211126932508741626623863921573601421161604720230159582943775231181009825281065376630961616332799641733155733928536535732445246523308038776381698542615049662467943534122639544984560795270961548543849457928511060605660077299825143862068444120576139814429051855792712987952326271794684049069973872734597736263156000312090717377675815793654622763032718267906660445404205327992870844776516930461060932323502112427956008770311687828655663291464427409474881820586302690154169749240267239004496108307924694288692263797914209618677048876312895632307937346972722355559674697017162631629054708944900948101121652479229554374477495108994565531136519417152390947697736525050760686740663388577123134626262471933926536126728092149061241966252564050707148776455000998359199597854670827801479162135086654645017438903547711087681600560072635357857464177175479319220248084507024511463370610205589490571050685932816669435038052983863579629746587571113601222327277229585791111060537328360322993104441616655922766604591955293927377662106553722776963550397424730442157698849878721013463583953952113945170123970954889239226189792446899101425095385381713169492911219490079647949624105447263302695715022770515676569782973741245502258997530631228721115827528295532599488625134815903797869671520404769152214950932001945165375497016718933252744217359796141057761150624010007941966088605105839402670014726604021679495426914234612050961610427757841618404616762539638354207873247330368374048594859557812449919760333218199028158967902209531637654007536649011048981997801919981675854482828062237024634774369792129254105090907184809950260693678194102304199350360752775786048301214623116005787048724095410834630543285611949799197576078427673921569948346512569103321535311838849510187796857709538759674127741853164907800694834139196102848149405722901619284974533093670788022519867939314263204362875667555756202945990222695026736962552222646216257588371809187018651782872279944569177235152354357280734880287809479776731257485268702725526344268923139887446423193440684548175417238521819670358586570473059335962439335876850729223038574474810934103363039977563610615506880817095551882451383534920007422997784689578794593027308434418622670241009943690347356727867521231124668813650255749657465501492154338471141312696108571971528982200132119190550498769109798931855468637742127321021510549128093318934024728858494396447018349905793271660098171210699590035029546986583405770183666711064378659278891613794180037558959352607782634411766382440810899202661136635956370100141764779349425272819115455438092032371936889314447154735039460063599284142920896793933792610416480026236760600695409046971772552424087454363822256107994190881656653134818488003007389790998533031701885901976443706101966895035878079198050574385881739559096854206164229361008998954015721207200449711496686974839830451989077778769469993788721865505972646468887544292467426864661747075328044618386097772774518404277154285611540249786303291153071857939343610639277745523607920712322128104159345106916049416357443706919485893352044626797134248328401626978883199646957650780075851385894616071520695088634749401214113716855979374398718985279621994923112423930410497015455236392812413812015653371998368166935394211964665105973291522806471759362013932705286043480401821640459334329150332854934037914523248559762574655884428845374349845948426503639100221714595429203997862457566078300279594340792026543075295773445464761724176119593609671251733741289393750420943489105690378163250810065474447712067436032174734372839449377691244362941040552366093574579950634293035364624718124157699807336294395174786882933800209533811199575644096131703043286404168665739560644224254359277013716659436903241159036231682017483959857954911457266352435488601970669384760118844311633231643365570831539809169908601970461506908058302796363360566342863807534770280280691738546452038440697330741465181352401913028809730628246581107375114683244464923694364297187071052580228726726234351972911479690340999422330687785375406633609814833474046865007924938785005664332910940734084286068877114982033970480144936294558624194910542846244612038848927053922477814287457205250181643726331862220252631409233710227166185465406450307963045940932787002146578443252499590517326607696871901517804434028315602187905514402668000208659204801352969337679326492370900109681969126363116102474386957397725649096321015723749703578690134422464814165473661930904468181785203972325602038454608087149461993817382166396769510151056885631565841571907340746301561594343245432752177728255461716999857180209593164635733854802411521576805994225639307044234098000073654616129120578512093224186074814346715844884547115765300726024355563764495906317576858982590271529886523756393580926914623976032142610635540206247060927705428436023488850755542613849862632928558965138784177279535348606614535439248712456771766570659136587062655794890977972034081649448979768023978147693894474361487022790790959610987547277912638382185582165631763001863053287682450705268510806661349868983587704851041059697927287890833051672759996677025985412085727510530725059390354343207942726528442462498810576358576806663215910022104650823031507283791093520179349119930303495427373777997644936485718470518976611196475691195472147689896728311922149297690012963203772554367759341624173140574777313212580293106706904849542518204509086009000169370157059660801622782450379043356453712695691159177081313423408744380259387914058052494706685596711315333037158254812244357412316904814320420540666583680731593296248803208475165327164171160468388070311277741135124095617726528521222463119683770362317543133578092195687789947725415719992999962766933267971844360289129885310648624044078542986721743777835336574186535270986231763726569697814665295747357126532135454340060457866328954059504610905700992680237599832511690403640146124363238792504814400649264711736659059970687367302953012210725827316535466157458513104150810830745623700199991538468831256786063542179364112351627278849759254595607872730456124325627353003647981222843454137374364933329064062040992591441689387871272498284455024223395264318936972900836171998734591831551860402539755018474825512115709674828757709100802744797048729956314144683692669135674715545714939688262140238658490613124423403611452205250270966285494928099458566359842137796770247096399475629747677786497236504191806221943144946501239071972482612222295552459080601272642044162676357738290108305626339552846667003986210125220295257191446805103417321013178440948490393825976627332281040820011636805230726143043337877399962187448041762863744295489601796492963028331346776286467533241544508762344025191689987188828852035513215252236946623348172467964742380829069747251008832047885821292694988903974058479975149028557718156276781509565185933228868549244985539642776422350491318638110756981983967606494927724234166147412695700450894882901857245103022248143995535080498120520856195308192062304634564884144753826637534082598045102484557066692098201387305165505288414639902990535506693866128258831259636792128608442019184702217252429541779965065098565479521186720975671308289482667675223065034759386168765207548620891508560173762351010571155732080569480751836774580024977944806523463650179669295442383815367171516365166668577403427676211134152679756211570565282818270168882444922703515780554868800116904340042228044172067018137441558469256267728745282490912539152211431689241006562285010569108702995560379614039319983472734112551019918757224594371347000275510134199124253583490994129076027252453997576560185912929833509876218874898296435127479170759456584438785615157153375879890519434293211561299130728403816745752845989195444469630024339977439118304482973051906108715403544910034677616026969376918015896546581733981712194745100538171082192044564849493322213753280254251579766813159228377030812461782523641143203048973496539207361856116409387043527826586739789842019371831226640300660573877648974927987454003787751637342822113465710442794863444163616682305215117753890250148175667385666542900616962845622066462618462739736025104128229506431053668163512892109729351771905502739671338804291904863853816119324101058164494066236862560565344876516675922460080799526089061689952084961185141523660372934212724777450964054755018330840674120463710950552629121056027864758703676974018858920595724440732808008222505936703600078499615084892803357603765558158623344530372792694067807304830884826680481256441115330431887768303632609956415416278094081572343852907724791548901675178498514833814620050084485097331821288565602722947242184204920014338152488937496435423307803906439080531764907003014230579670282134615108000433170483876322488299118598107518277200898668904793418595956977534859348290826923263166008445096035293035276762377558329012876740779976504087749317589174768067017227186965675553150249365080701900124062673486343873887665511699728235766454097295911605944515599381371537911279527767405897045149596450399894096831466395030979030403796374021782132709561932463323678191428742014304061971081243032861925275191722147856628758253834829916380600615406720341853290188112049514582803710401286121380554963270663026844274898648610980458945893891288120338389593852770357513196266399437918936506379335310611818829070943819330519687832273085789124645315591659509109851026547378393645308623620738773505144300320110653076446984739889183023710293944074999065533982480551516702878240663767108466317946465792654945345772999087744380728325599125898178074676732896731537949620022921232033425267705758753860745091141084575809631868956648052869140924065862410851344217544499708872523730120504296294868016819232339902552753628950865554348952984471976231724529677525821685973090249627527723926094678964993777044428863279518393161516917611670011937840350710296105523321695123011153109140925891795587689497048706748565749558947029334890871573536070916442517679542933241208767121892557527985231867315094309564248913908321312354948627700091896306154972358783072783825450301417904704267226853932384704806435159748006282826234275000250294308720935467304545416053620583076958727849480230758634647346163082533833260586341556324024475779918767325544831051497162760835776431995618421041661833534762190182974646019261226862650683018323969109733877576255597175340881168589222976309564493468754675706264064482624705181276440135733726683747015596156779807107474366142419596015390911485667941682383170158717595232246808140788937697345247104461350220150690674943576134792593518716902702656241356419270825249077167130322929655769563032187313161965770108694215020488041299108739637347848944556095100784873720343094763971604622149423009781794339174226142293243577222433987347802239886777875463400608324505139077343691595237742616507233049631509117196637833138149612737880543994093224368284306581230546534086481130730193165600325236486898974792405718496861753738589398876297411350733701879720615724131692681858860929047296880905687290951266820644511816357962439038486116661955187119959624077565451720226416673537944340353175051020463366155208429025442818410772675066557848582458874947453516599445795944085138486461765177489172024044425546155262613919006834459684280060613388772337107775776663881830968651862125754940954626705092330166443596902831493551733827229102796598173721679595129183737499624361718168417560517253771922393061752677157383228965465582961395741112925418244728034409393269736520306659811687961495140613226972676819722801642996057813204834415766075077700581945948584856112605127145727386422686232108495918167382523472614229396818355577165615070859787423701536105739992003916159122373438499409992050003966326623072551418643664318439215463805664786751036082646279073914357679519565174708295819040684290483150311927117318897254400389548369418971058125025147446125317038129499560122793949785080135744619127484493658489373513991426151457451274445823904150932883246503754587561984582070052145086663762305427708035511380221277567293590020921594555289882337480000528111683071436694823697069683931736456714582745884390133645312859947179916995311218462276422430397014434264780193476732560806781053974043066079504603920879329074390032850820164846418364338378673100383882488876660441503418408966321303128975534660551615268962163979009801749521416417451670382356482650174698863793184216320131103994365069201432690537647031300112129111413433771351068832883917890059307452311442131915015339392124281489688411836705021876617082026248707085010289123270142781514375821503648767625285465175927488608870459598106447911503876160570574122913269180354265132238227365192861636811663331890201020168455623752510837554091552420057311132900561818483133157924544849809820689233304565336744072831718994688656678407724136822971232072610315249544419243313185048498351093022382376800057253676328985496776223019526696574704918224962387970554955816577600057215475597937827580905524746065617586849383460375218030172323176829555960527686490019969549962781938313566418856782067534577006889481598566093877765115551115638295868739491601584631633816627315887812092287868495025466482308023341878236701219995380739657067661172177805605450092192900213595968350237255885623660405379325093919165393219388085371530024150074355660411135017328688759424117172025130433664675335139068268378267080675454845459052196908782110927542555235505094036057987055806622258754412813212598908136516889076980435898096376466934351896337625745543601287648580722052428170083663107328941779725361508526260688128245922059210434939592297372182582348555230386622416745331895670596886784572526854543255920115058796446320368862901710460646790667368159597424444124950567232887925376945238379637723203991543998282919474175219937961932385999231772251860585581104596384605238722573491762026469234827591311653778765765968780633542715391584260638084654648337755937332168946056320828783675880356180863914099009144040103365241549850124872795869940420154805784478238957123690311071910731318654545973758101599248795519458859894359193261965380885804559358077751113382387252908590168847604904852148010868388569542149515854313729182649557031024811133034798761217293404139896558053808887647061317827040421677913271326618797869755076923326140396742761118895790234741434299250929150237256844565053425379012757530994121027282020678968277858179359685981558186467848931355507677681753753869458076225024440972895515712938133028977289247047719702384663011276518371982428467642911272535383022435884027448808555429704964446458420833876888925230672927060897421983907602341674436118247131623749895059594464851974154796536774055511139934039447300517853172468208030495224104202548932877409850366709621517128286863124051330194883792940781531037400782603644878386358681702548173449221578998433788278901412538691516677697256986132362853177522988240833995389793292348514748863051997325621514276385691216494609871390658596388176595958895803040531601994057177590774635842077309203659141893532933039637922720272636327180553584974117201771427586655906565594021117628027534128554726589526358109269455481437588672319703992773735015465132632357258567781228991372150362668513125197509534464964681421544641567568330466259620092205609005091872685160994766149814026925855941879652801877234600359827540495543778987510801856530936364487168169377031856909751960923218815450156730785752751116948170199594168906697670174251736399684270949217016972410528390896312249397146197782862496726484851122204544654317800484824545340811189415161095860103314456036934156888855990008152570700596947821585181904750200044893916014027996357181442147866136155046028904002834099082407712777117473899191573239987041230100185893921664530217651888461289406497276000151236915033715014496749211594455167323322667613531371098519637484198959080122108264020684049701973604861717014488718907312747744391693314174216925744415796884342981994581791462990779776565315955346737449642375567021833969819882781657710058580206821889305609709695957108270453461595170708581142778307651465791891269669746220307348295627224025726347031387214505157002473442134915147340522859136659806714293012309828514529859499920903835362270032488254828110396746611850296914802220668219277762486855143607160024068965410227885543655103835800414751416457825788766719030911293070852003473359782864343496459614117164922346101556987957673464892757260118631017664061354410851166811193829828654259709881958657609383703752224242224817868158577505410914931225782668954236046086695081838675693829593777415494582848177233141572348459005506870655448342053168902307377047956062353882428909697181163848117908697543505468878224661099570233046703543974886155424995926568027185982415637086868725941689146913607100433942896109287632922366963347977089685277262761545365618515727705521719724044528365467463414972715865391880534938520479825519359408633789627491068079197208552811320250589495375777631728615446677273702716281831859261064277887438763004933989194757583214820189421547195533198577192160934399208872135338352587251864398785205213520202492664833147822925766046090449453991217697528842373154611727198353092989301062722644042830848116737606348739750746178780607309508403387418735981457177044231732789573580793474941408948970408267152853570440369675859663831003420423758526809937265678255064170028898086841286088900666824435971330538707677069550899142876463567489977677787748815781658613153076278004558325770332711180805855525510731034089269815795732266695906007103566948761741126193892664456454140982086240620877925914024752175235885602162200055578623776759525705996808099153247483395121333998715879111360626697641024752469308506954623221340043598617659623007420502998151514371297379497079229948166324951779140210700678055424926387841095005628327068818600136755609914610729163429326598765102936319038710690215432968720169688929793896085311923263618440242020577834390235171417779461788521075832905049836218778709996542202162495708675099875667479141723244873452515522724867249224480562897746971918378473486552962620863234101427004015042235174192063376268606938802200603021179671127958118101197570513114177598035812959487055274932763672395490933901328662789061457894517663437193244900236735538230196431928164999071756682821784142133176514547405452052160890987887729276140052304652790152454273288040857077471442314799517747751333821706658916649189567725097958015747488063221402270949266215305452604339702361309342429608038492635817313645998375472912907942568666988592263793113252238217642142413912008350638421514692914157146468892902185124599475865211511814722550406063164999462134331790816169111902258403303001930311179755052649852445555841931419954182701332074625707923155960751980815196282772487169656841973909118506996534655789449714628154049593088811197193021623332893195165026754893733665742592628172716637770844310817952131292539056773396888513935006407205198690680770754834700907713576885042633039808784748687413282739585575291662806749135608985794178285100168295027208332835163131673200772553918497187465515282661510412322215867851503302772613355510201353937383176622204399711964890994829083691215287699508483003862721661917601263699546954979721941303222293021465947185620570066111431921061861606518562888713457398315916033734737257970394416068334542967758159012033216590528005664521466555273659652593755772980722372661867938889378210216879006388395861551628235947559786908384880071068274582717171113936910029134183396694153926905019459946435318468533664387994997542702372756121296191701936526124107773239114666863947575925383553064699721837790829263777523162773047772749271045715007612468780677496891765229067783970345857272061525296145511618668305947247821631797867377065316226994196812213537042055557928112636553932084696127087359727596651014590160614966403584968153242416948177347001156208511133949980627975623065462091837686269757846155832914941381278615187484093428756701156069834801695140318477760291318511881664344297064993431715815006266133541274178064324861348446428346117466655427026837242838069960010409346352593954224191253990764867787860278917140947780604001342573136473485101945749721669259004620459333747273101285590767828902540494621236036770412440268561016498257047096143811654076296700025458316621595590894850402648607025269859862678429468886975483989762821293970939090178330870798403792285267377224226177548445196332601513221105994625221378452094172231816133932979228470083825385285087680518645995215815094382696508452819565539899390063811669387069935625410029752474223092901201614728604568128908209433357403166512233800638597982546530828208023672133228677983227307895827656051974833253888885273815297147862848863584948744294475593379345974702922123901773629862945360224389594165025144729550330926644882522924039405917095990674756016580470018560878884124770440827008932186711885302599545773575187394817064445804728744655033261272503677382923214534700111061339162608983094458400060840404630255972818589010729846891305591443721607039801733276054359763178927288871715738065681316482985341523991714679239365559478238336589465604414938270660093557759616936618933849201667456034936526568546716742076153597439196803767766954181593899476273878232069624530082985914202537724967773503928158660894078178409897534883194684036200219184965294893637517487859481203008986666233853046385169055853635082515683618983203170925451513388444135929744017848221555530012809355983058361210425037258224489842805113468074547977090431253759362773234485978781879083819471362117825104101204443500274081257499749958578533794472603204563717827083072122852489368910636707256578632862540408648874675138833743724548365764687998303368955520277115089457586725071172270100604467233011608752349964320445829768896674307842685233949000238722316128028617330956174903008594804087421486724961875449041843941568067629713443259277681566964812310368577492885179964295312270085941072197587748529710980409264173869907843541905779172097119372699736658142032684660951228450423491731166853272426512907916747152056076948239313756770605909789727068237916343479023904995104086643409720267585126121830092160439669799625759290520121288949682043983290977005506032286371043844764639349952899173710456473360611059632729652316870901970992989883570094051477765519164241584078379753844040071029384829183994829172723807781571251772961452847276228561226239970159158606311290718499215772290322036279028364635505109704597491980061593756414242848158650892638415404045405505465471836635020404712363250756662885005566980043950063199545223125635311550236954478365248308063548965409276716165492205109750098002150029861245987513532464255562388235063117654593879416352719744210440293015501133381004282169121771415573778427448363834686611842537733141031579638412484173654192050183961242679941005967133120800194998437520342373537669283876368847724471790318849981574986611875844736753940536020562780598930676486102939402810856573387257802578106702560784267297383169827645602432266966546944550425825706876317786037736542159294514617922432077588336722729870514748126720304758790238216352009472602593813109627761781993243906892391491958611216512019531557178741197833124784548667595114991785637053311332564160257237057180475158193423991254296632124295395296415943366154675112988328215836403401385885188461511275491588930519287827261389564384963556526491028607436054765982101475881425329117108743695733015672908033737379226500913297735678407108564853547151195312742684529047334214991264610534134525285406962367677540202499229905255278357225546747814147145628106044258915021960298139146233161281038957562040267354049519108955259093553015190734839597314556249774950814858169751926757045249209640165389233112537609458475073680428436662494365929708604445291024622233800942394781594957119517939919907816057152464832328223575305493769397413848074441956881779336568142516690481254937518542783984328285204705594609771849619069503214152122104265168157381740447281867260269893952513299218162857610553340698071901202474300780967672259518438479687028281109606806099391657200382887994499430970644039334943237465041896217902408483772944777573459628765562601065539858791092244925975837818217404768564045548560228970202154828677341275512551579397114275120921571613226881795352033295070686259654020346589635062157100685381557088185652212316332398396500209725862904358373084804444469111178651229418119041494739717038255333836954864813844712737246114242684415166619443130681869801830715093364223569955785533100726262959467697979706858343888773593829365022762391411998794053575790151189125259386554431154115632910902642595124991363117570750976891932565033796382245185986624364677463584796449490954498424838396761285575047683726163404732444862612564105571193044714161158540080327862136049720032306096076216952632955895887090838942570612940909704471486349456978033699369977888465186707793610936623532960558574647300270720913195197728724930477146721839198532673306686332681706217374240756776788350207760786830320303717584935202927399404491511302421187590597932385268040426565767849660832449553735378738544769057159598051720485070464541553176047409771631878957394959528075996361751545695282124850492874738439721192159540953138321313221056397329935460905209878988234589106086607177584133907628768839812951410642902749752884276655768358021621091563946464968587191511177440417187343841108864363863158826903814384079711771339492910627442856479284764344960781053725593512680418446657669141962542274958776861662886143338359748624863255810897928696225524406440386038841014123368286932428506749561030035988773011343870154784319589781842330267917284121184808851463548407110907104689641571588925676701571817988920660253991102227313626057975047619547314778836080639841226025471626690315410833196795247825615532124763931203139414474930951910109266920302220261723893894134303708749687012024895796874275907478759843266473637413381597311024024626143305906559259383045049319543182532396963146718428865621081758689088643731922906357205167244049890735909416197344483559674747388844608888073743562261771386390844931593071875055339525168624615123773573078409710270714905231559505944014609270759073568008901927670535389267351142741085424219691792059927028861138117027598563442327826206085645276626522933988106049440056212212317955117037579117718516884219376448430531406733107637041212661149827572450276968303190238224752238178619224189704443271898118551024856774337349491806426789998959074054542008685719761991887817079271743645953952307862975141122147196592022481382744080374121633072742460133093285885867278867598491687742470995643741394577236750173254415687274281487988725484217286502105848713274809949374570119653032926485044793421098607534080490312058791367790144645105663748530810457778317373032062635689542128854918014928080145819389810415993388828693751481202598505298268249568226988617884904256503939377162292448403891205509819601571511450123888807743386968279338790505456418806537847204736413069732957168229391773960801027758241466531846376772253643976510735823424371909200561593546250700868790068829617879725971632106435068705261242715536558713131642731378544298653059981107095870392727812438538211919756202440295031397275850409314075615742962539687375364344474251687611028054968203112477503720136285666664179369825094200533727764414446278599021150332500311983187585396015257608059906268100562759107530557679665667052664400452847767185943858573605542596080534461587687190394440035054585274839716628975104440263615495948191476886465240547677767712307161114597426053051512738162071806029531325160160571941111974219124175744562803771690056704282000793219501887527262947318923835667335709545918405304576692854946627236967514969507294357499933420807622649258313051026915877752532089744406466564840500108587697900183588988551711153148089496025372750607236474225390048432898925109352733694650385223528130536014823621090742006594904045665989370705314619321185429040766757719333975508487358495413856188659819617529147838755277521521584701479061467608560682601472999431274215696871497918509556491922388987591205823089286478647735053499146834057098097449526182668412317054628938463662265848525723986763458479563877098682696846127438345132134323577909543362057514647633082226901694628222852735812526628352607825678338045342617461301773907840044830322610412551590523539438096806881745104386836869416499950014346771110006443460572095085804481150185770224060714630472862011454590029331276782788867743700560631541942792355331913903688525036044043795990897425487436053008629242709526155371231567483472016544330574060799988122171971963627292333243296627077103815094363579971642219126049283795054750249506885457744705491270716875450729982789363911322909514041506296611713971333286115458999726974236090408144933530449236785409344131664071598865939583558642780209143866682521720712647345242608722566586152739147314518339671958260274830225192898987472356321915391821594418019675543957424288309159945223265542118753715309027369348893581674908887602756434318624419609277572974145052596614998722931982290751361827419679484952976395333947664857431138058788027686997476243032886719624861149914998708631142563170819643182257273949060075811516446197268338390826443084299422518387677613995617977694781335391269236147721560699897064619246170025335043989851688070085315659771541209660465970537384189651070553531275498500809742689509908584410107984915370653771973599201784340660359524095219573897158008031265343637913878686908736843668349655652686590662444016891209919814463291615093934426011321220077014635032805185028013714699463008176703193495402316894554451461470991839362736702748084177601653022612926295788805000870129333507422720075250089328170466230263289604228540526355822973127407002241551272976713188237535882155294085636776257896979558419943704923543195254482827083654256115299736789039673868470753338091751675806532998497890853733679626476672768912955660976040715386612201451779546353336594226491671431257955127037864873918269103503961830780607466647691528731898759619852855498400460128540559513620513632350067824567516884982768342598061839716665868498679892950895046538708732188820932228997341780456779128055874520654936496177338904383039379775015147028927017228638719650933241264178898064527938584157927721930882552001149291961053537716832480656576637908569445944298481762296018828863506997923603228161194568856989553151300140732136185556555171444804337251520153878220666025550088086381348717936052246443651709493840292259264770612347091052993164735178447544110105531003158415419667332855450056321912056442613487478423057150659185771471244161957385671712403873974892972272530709582167745503947640950920431813415602533002078449176675287544890355535061220111273828587892035914220957294790639256843928502781304493448562276409364946533890891071721435661567994915072476810031150830902441967881509263133464016633135692096677664305106239931941303758159011628139639503454440291178958632717879322691975719763647059915428606049851652654657972408144946552364348446491569048252282636966360876612599239731337867657017513834245782028575209250091577535109016849818312366626051086127645355906707477125708496149187776941612164995511552126120084147330738703421785067597645661446781149805486158317171233959782299447872592582948305831273933432429667419473280889364708120943262874541848420123196614958510156318344960578692838039816680257229196154306048979290720813933586221202277207297502911628684514285476765662462998627777474453093506065438090248484850191980999522932019150725570008333357139092834588578471567397893608850509564919384575063710875752528897927984655567661376016920285628121233368299699798872933841915280734807998449277274124254845706067464352566593268719743884071792061812097586831189807883219022066118569823473805368295314476088200254028957614743235959283288934992309567197289692679558166037224485367705857882804738191653500666102630505793775601198279993022442248291870334088255496628185450824072319800471423933515505151990187828327445842193598148316523486944651211486741866533290172149700358679397838947239686948008821357159150528369290157334843072139804141589531684188061904896651792591918437267336533157752971368376010947235097766003312871094686842522293477110011852216497352233448272098478127546956708602237794171271843888755952613667942300622502711642130068002711165711882133599635885113767744417456716290124173332490952376568994891056613451142116064231156912195859595065814731217426711113791512845439867255387502929822184897297878391529388422812424937382900311564824108442910532414047793095368887224484774757832061798165403109841868688325798047063534537058115249276736138962018255937978495553245515718772745315704575908585341919926601991008457845647114248141646364378749928946060713194886677680515046051078676679684905255265800945584926340002634655905477752729848169514639511682273440666072992287690106348934478555197485935269427606797645514825642483022850628522851726402286655819570113379342875147275320952281791913856132631959663297240225915082948569424421412472736995889038384207897273641194902737373311862367409166229943051586400175052139447329059776214485300221840628133210370533051273156071079997272338543268973107040821861658961179727878261578776453022526718871336742156498863869154552898957299117086255706750371395022743562692344508862033321330071857956512268058516963110766666944732128158034775044295389680097551613420814508704503710330920780603366327977177824935278228207381571403266073134335258096981631451228539276694133495869239397121710886582191513534435661773474036400833004440458251682236147687961430092464041553918446263210358217806175146058832482762296856328481587800468254283593662867486032980549220555363656302197158637322149578254264725803012858008838368152640484752327099764450774259874937596947502651267360910598169127137223742859790397780989470757295002742400242233914115956293349098413435665050520017116708308053637370424263488870937370428618174818471225596276944363381855871317607562800396919607871122502455043157230042467851607322355644545258232062683625143773364053042142970255570818865087665776606480559357792198920823057524398112173730807641801952457832841584404278046383916670744168989227312493873291677277852129969979871180592895382065663232198235854255472934502124348680791619632520993074899206020387066294338756865608355577736544629265543171950295738981219543053648195316162685149989504624299237040848854739843537997564762833609841445113989141780466171443644963130535234511922196423813443589934628418979764819641434014023703411790280762882881162540721441102741608591340696340243707994968484041874462922847083924832522399963780278686580215563015008058204405031120785865915308372888591176033651690401721081028491146145409127913141813711954911100840460792239621937705056348125926412624494696309145647287775535646774946093348295780906580806623525218081041057614855435370855071993846313356012558401480328620584798803736652103988977177578128872025487586919986839877130081025161290011137183886875507814034090436954389673872218972621734716288740261563621060499775307700810756549214121692699052520117941464278439511985252362115689467559170171992709892649781679599790485001133355779322365744266186946695616115003828505646823418493983081310168267350508550862589894878218557084248530605579492832433442766792018306129191437199225490706476646082912100476211649107836505977685745844925406847173453673436364679442385841154212004832724175341949849746426053974123622708644720408112956859125912071349662847644460851822505980244157644305009756368012832446111746023755486332425436793472656200901932056709498609930523140229796645318792688234217646295704423309300509163231452719262960218659964395606657259763761158368282017559983383553032681100281125430227180108600193980546103311371822579060828730650181329602926684716520661884868636284416942619230184140592881295018250306054325194319513671104542001711259251794167625136989958535035278392977191357123563485516982469108481660508584936089488280547833794826496273113725150703584593109236186722822940671749528973794109466038748176587080846225128761218422446392539186249996707649219205537260588243501647534263928752042929322521888473655059466200652919737474368078127460834853464622140831671303410945004354208727395735173813398262145026816892351913396435433316434826216563670510603063354197273525731658678481424302461811994787098559085299947124629883468114776006576213852162349267511238439550340255663687439467120600741213527696558944526080214534922755569039064281533640906271879772653687900611949347950111162496832265802194622879821545184355892274609199869648477921622044158663043067372953496037943948629812135908008235507492569070422504011493870324447455477978994767840015298486238507974026463918346445707057928343818399738834621476348439763708290173074500134366263129593544075171940206426024108395238107546508289984938187678553335638484780397963204978617287246771145767637694689978488251372578698672563252310349487061115327252812756236442729274990855944044946035533553858245085978741330436758888623711382861516968692317626652368962355227118337427107740390734753354574370371664039997900733300523951530502154309053278451494248367040631187369959975502245042264035084996947254242990990467452244606510315794726081659700197108484293305028403179675045299063006913303623162561831814189431562125478780022693861436411187630662804262404570243372642303672015196311656226869287419038421695573490122580143642617240582213053845262954865693241574559957276553216058197725970258517851091247124526794155823574706758290305691789578991178660346005854519602618054533208903190780960107557160898692974039965565954844763530986837560770815236100837037986265706665707898506571054107285667797145072174181352316675100430705215441528491866385301255727899040966880021534806812970349730537612125880194499582490590567537530518911500250728303689464695695345960629377068830366192351641550823773084617577715211558713417763742746188548329658337121900504414631069105433091946444446632199887907037566084719136436505171168042382047107324677438677252082253667951695738229082516061360444358021179360396336732802516348252903977129198235337358364622912921578876950504072178036969961830516953225269195227161904389530573179073362141363068374365245917276720231062862359380908494279901053937795027704462783413768779696700350368094721575335435929767707835078731525467939282029402835750834805498846216532219462803735360866476596460223686898244430529302031584138191294785134479107623075454708385793316996148523949205417545849428986386812158468929965862315452760422812662176472595779919083482628270441871971841183319704497876776563524412355483297372089028316754784868136491338259641103318940773528595759636090325145677020492870620512362733181541798128663351260077053174315407450359236385187654832746952275997580180762266226650494683867583207838590299339051546829706235307312840275994297914350220696058989218888155050024359062843774196290997254602920515018975543483467367646736215459971695371554699535463450583974285774574223700661787223815472654498950145997055293199335034901622932656568665999241640280801426028306076017448874878894631921644044477382653277249001242598609176912441950964867876490868183809733832500674776633311324570782869504879071054560423357496312639647067021482040559595962014015709382033110107623261978190429216986631498112162276877402818629993060135554524119019322149845843301096863506121809386424356758189900845114770512361930400396018092282850597988524147967974526276399811819775610115913509307808446033069121228622071902770204593165350991773444857129498598131242326715177525385209073017742577647769458407549135142290148088336815982465501444702649490537323671132334887107577485431250414719957944680869066629075118917677978115005828243723882306581570346784473185356828057395181898666118785041470470588849293478540307066528862639932191611830272344812993993604711404709017434939360269604620792096047685677175110981234672065029992442647381299559622473222313415477808206913490515322786601809628196949153679254963694759324308971798695107795538409855883973995946587763365565641658951590804637465470169581459862551126243543681305801488587378250230682382193319863216313649118445966627150402816462723843524045765771909799141777667326504635278213557226621833468664404385907861465646794672429294569066900702463487917188996035825410264869088262540676542382898064416016762486433395086827097025526892584372433434836387871133984750594346861745756813801656669341769044416416235935954163882459384260889673237369245721070884419763174469581846652324454774161602977180060838408581303604626994897713182194938491127172110191030990790308207379868491665494012870487629715650037500328291306623720426912681683645449666888215962085578624503005581448084943810093991186071912044123376869507296128070831635294511736001272439099144672619201285565384197931113557246666622737664033613737836231090647243994926720339546009965542013300737475393602361315299131802604673347640609834552829036941538013734871843815516736767303065104180731646382664172296257383891567723049314454530704241280808779640228080070053024979392696194642195057225675203049659817314160244861688772396105606038946330155434719152417144331723070315257145056852907895832119546431626479508192304192317213965348886356076556269959623681053451891074127629756183833657715057315166528965547822854784797391811266492705849678796028985216450128403357355278126083659311393208285682719633178171891507636070553208944691746597086821927175201657406767673522105495454869658559627097003774685072801108940920463402783150588629553325625120858952613783484155519477968952435415994962436279256904545686032186813060585009058689929235815368939443911427068138076775208483008403022674933876996487389486338192718547954861403613515674379241414418072309175663413060833906464467731045371772244604046317761588018754564732643450822672444809503223641407493261415823032533460561232851422163094584891955039658325852437436735202841700410761197958532827477002597341115719084468893210210256960703965294220714591196026187195875323319852367816409875709896364820778032580875913613064906185499962402436578070397852177249489727318701472242173953776230394824158788405122712200686877958316568801318311076702912737331422436088233522949967693290468976863469502985633251275135148959632728743467276362622912261913425970897240227947704307792449874812886588505220397258738173679330634010059799790588440704861653763557345502950026417664547976841317336895384610089422354267585704977746900029227736198372148907294867819946297517602653205808064668620804025224754565506331694868921699692019485110319873550833921399590839914919149796750801149021424193596846646823659263740085576346807930711887086075276674671466665653793626179908714077532986586064595461558086710580928881559400416796391245021670984648074411282615566151694819673648606546357800823667857145647733645407266154887458917670557337154860284750328831832013771331036253464832297905721554143529144933180944668337488218467670229775612127171437767729638874466484326853452500361994208823234779838923968174443928226583153385046057468193396595139494122079471596354618998248661932487297189737765064536718207849303260515112131029931321984701449470588327698925358715642673154647327634315824285429347618340299987200696818329795701362214152310365828593203930090795496516991516943578941960097837598735710707215008067776148331749620039962595738044906255303664353446375387404741418059446612582834427819158597370661257610642881541722951790158191046881181768739673629280202656474507738939328896346675282504962485371921026123006144392549026177728483608438715077131763226701826350936439265321104326246173882952322364517235769488481331162944759747631036267645212674062951973783101125751356581230654579663046370707864380812941162289075860426183392965606656781458514945901952099979468827694080734072010918913629359917780878957718982754668330527338057411164379347926966056970179396124552021876607004407087177624539593353885136524575425499802201575672819079891973943195016475989298114648436987646930687328081593094751053132262155740171025454017254107149845107840324845018407877567862309820507407960483100600991121499171538456515683936926294861748251561809584620638024325406394483473248403744646675727080594500599689016486118040029789517430840128041538158979126841986949369407628570460049388172396191514291015208055850103412529006871948644077369988182742036621168459923794486869434595928329102216334014632757299046687805920540812932149983731750029229610028470389673026029169916124787853019958440841470820134497531644070028449914023786271381660970648914819136343206831784325667519936627552790097392361224174859972724168047123992665158817593464847117830953363486182544123711865544311715259983199284679613255746103741088297766872517730611666982833547267021423206645878982132447639241279328749124907259224578991640961462563304704267655091371168547993192556342479167733369997458557699731516415355458997085195371276362504040033257040545822271162170600234538895165580509881462760352558518485082439588682597331011245847639975221897368755295567050244078041518221128825202128040735273631884823756725875599772679743189065476538464044915514609627313130951463007758925705209923835718542294458077533292844373823413007567522435329261884319359979582598251401531595630449139999167749004788422117986129015517708117103373400764409291831094511792272995539215351492898411620008985477463414885797842344169706775827258805300863637712070272932036505264634279182609916085625415522305498745096530753956335064613681019822034749622292850088616977727979625496581352397297240367358954103147641372440160965605642570930346079904973957233459256289574649278899090121289302759264623478095995606044267603907805852649703530830265669207302751736838820895173765078637629899679852499450985847225769955710281374212476448462397713262192105029466625809960429310712708560553806844495480894966497204232067851818710378638583964189641995223572217180715732296829253013563519503979670626393086823662348146537436282055302588398471260738346561142932147027603131489227125616064722024226133605738817093276196485192501250825267923053064252218706495452689935046030903351051885438437590414528281079547531437369149752640555707898926216287182626758912659301933955072124746756340570809295597808315381144375644415183219836023084096907695267845012327570754832087849209916134159528624657452195893690372575949012350469910547419573442547965153034236234261700703296384645783071276582959754229030517276630242922761760622410596147939096753676606496653525010068748587484410796565952145228799400493196294288669537520815440927641946171977031398405860424210602762471591265320954369787545632452157936504928861104869400799705402899967068643366880878804050755076664947614626184217387067291773487117342365452076280948034868888319823286286249034248494369252788519101053212342443375407128156734766463110358714314280218371861954978061100511480675918524092967519575660496382213237088503191459293221960901018840133007338435518246899311176077101761230852937798178453153576979351957953342167767273316111573705856836521159248580096182286396460521484515975726248242264785752092214733288538487531259715215171780510761769051734018819153592971538378808684879594553124759170008080164228271372877816119685870898208161595986137277965561787635929420584047321520469597381501448177214195082878023961141775409108579273008490412820911304344927266698043651755715921801089691690305570894705734914955957848826643889103229748406955566413347953972103185791612661692692315365489988109947580657542644034958531784340561474471592668521685184652201103752862452155959538733988635108092454065719689712108846214636521578491577932361186434372766769629350551998697128604609192232399658400003387658224497746394501295150446921541750315566411083917222439676946207722880125583003709784908239493036762766142153257056212097488205709810222242501666806577002657532151988054293612180708504143249797129429996896676735142965552902220103432302677503194153925668612300934681731416373524650968676172752200052824819786482977713500800166281961989498077689154337865917485372364181160202226259778396142092483186312840956267178264099900472763720564238753542283480326720756754528488458416061289565926974138431390612063987694913430018835867379240631272945552729174275226458286825250511132104051670166603758055977460671608502289072011642047462780899992030268470360240958803388083827571362407976943289875595959593370377024147671829993284509609484247353773300303170189689578557187837822169481093045775683648325215066878092807274164359055850601263066188394189656130636965986240628242144573898073596522027512284825696810812931666088568288197971787971313543812517046957382770179055965334818398623089157392353318499013528937283061643786671902935734260923364039877713500480469484408537966710828598615915179296648854272021575908178757316117612482643072985816047651379035507110080237760625955949363128328980904871418510605971720831121199051335379753716858609763484914578295388355112777606596348054022607332107414570514737548284369943590969535861104038814471444963206636395942003891392409250151108833402516805164042421987962418472670037758793158692553939882536142110182829043781914871291278309356973933152443839760799967529947888413417914727432015594082017503860536034703589448446514667278900054767130265392309614367039785555090982759872781236586344460577127558017154993884126440476217570339179648255245825312716981935852378221922854669220568697172094092660815165483661009353809828747662360478208672190272241127117125350340650254496605097352214725015210807038072461844787987792957837651342309608848137053219697476876688166997996295265036974794904698291743544076011603821378998625001799480357239564045671562535712859618618567060987153509468117699085894921865707147613717982467420756311494079959851037511247971925297366303710304449568696573444517575400728694138945549677885608729306186536057929429118607464484870716963059873845507217240011679170668188577306205223208937422751581759108300123209435418973428679089310232075499311394518218589226808256584618596650018851736721619597061113345463548388352491835487353217345422301170887136609259215601522051980157216063057840417386188883403552888177213698942096786628469162840347198706460978644124004498950749647631297488276766629530351684614994689851279392051638073320414007914353824595067286852721818795014746830758216747072643512464699366442823033789344049141442232117577786119371225562047631916110356876878907952086939508920563508793687740467379728244586016946159176157293079024769932356193723922581443846235336244320089606201697257332297239178497138741454085847379710309857310820719168568593714709935846844491993084222769291207329716280857136966658237699037322222480690503487615924945733301089186934217357890931908717797369050695227808776146134327544330473275033874867355631612883033624157546303499399764029565133718884557538526117269633106577061425328038564898026618249728479793142328691039716263428949989039583320915238065792138209413620372054785739210523067458290843446687351472499987755005673370734752082974851547319614433344024843719696038307187588166004296207413539236104066344286207789745287214125545787497996085644120795068619404749900541241884629850295262485786292571400636668158259864092408828006051199903952624772545710828128791160122933416793683477540561475824790209706191733350041875367604409970619412857170357375005840514459984531144776122920283110818719492678156321453577443934983913521411292199815878943012939534333797596845477647708543595102542836169828270767195659827538659987308677752951512270155589055315037692524573791074142268847649822433392239978798228017427137061238622525596158503921946187285903490130199363479878145593820170541420172678864073133873489370694983959594617736030846610545841716934006010458606602561330400704211714170790495921038938472040211546136163107287198677150087152490059303882719240057315505696081833200192030182900140236052466923069687736926668911252730317196979887362662144208438934919279816406673714217528283511079889150139230588055208931568441808217948796722823841411712960162400729516627647442301005210768372712609531435357692554020782369704385578024956788680539413879870458432970833817375086372864694299973837821521771098694649316057762732266960873267340239583705197668182246891442329742066887782780130012852418516325275078878629783765141050399079611787515315016525000012483812670847023626386788771694502412743316846942514508847491288407930794262179306359633693856876151490335732250389683734041910094082561589502299787845084813388375951767697268221839700508248916016692013879435809045519343666198483970839609295180989339925850821372091912076834562177136517362237980726631391112361923669212797253327278697918558358242350082091958736668031091957983329312537076767212709185847867010416455826810399707871073802616363670774526373990991526042615099318778280048110345181379760353089754618642540423741109057163866363952830697096549504388639489092265330983668390221712286170318704150170408581327150830021530138782021947725111388283433025790403643365389424340094036556798932608187354541779616338641572570773675428489064972198592833328016526007054937292853835226012879380991109211016333232814421675129569467328127665319810351720726242426870114697878327393643392756456477532551580751314612547861152068913521837203027436217068568145694582153752866891798204022345324641125473297325171116832048687086693589575098103282465113816506108870958870521962691807397039529045615713585099447231847584374159537634209368009830752236397328637588752713545975447724260231887962877638230654213380863796225631603046054233672588687072684276388049898318551890830672412506283174151115825426234733146591604602398992697599642656920780249965676671214510708930525515885124271282352187839893047523316765733154178342468663493721318017123531219901140912637864920298624853889848844790288003877055459331047320991907490787626945795496196286629101253342445896842655448291237139174287735182709426773351588183822398594240622198110192146550961155322856585959642074615954184080348741624229656734920096872981606727546516981526472240580023652551141497293431278893114540413932619066523484107642685454789460284128295577840619838420531812335046661955184944171774434561522050161111967466602724084519939567635190921123382970568321567853626774213388141485358752083342084444492499075265474361118912348413874572421020316426175410823842338798611824365365863221191972080402260229679702329564632391941406240098943249159346280764180402734694102121002100038853585070425558011478145004232747312996563083940531862415745973550236724626609607603621928339799532628415127585265996070670086997967145770814154909707545493635547251650419191981755645103135320870066344880229745178612437801264625250269703717494883942997924082422828884219571472384199759306019356744020049329249227390601629590390627350419362289386985587396438474804140501329274210878758372371017862345090143362153921285189278600247906904167232550679540095334113432355109261085822697366236774713773475186265743284360754556712986881351131950419147179035563367792699438194043867180426810250574884118901922908891579185294235653940674399642667018676625170148783127026118667283700281977750215858507187403989345700139340457914113038894724433627826822086031951658644513479154297221074701573699555742381376505994286891417412928305074006816575605488268860785410252984387274572141381200013715448051063762334575396960481236001821179361586443380129259266059091945922209716276448376811694253809423295180296147204862343042812488557921128765332661861575588623758914976635976262671317999287985578227953370776744671389089788854126711610112477956955001893571644511840044577805108234218049933900742534402771812005699624301521655667605025338235914856490569448111763417690613942079098248472407973252849005479302477122694387162530574720739843156945453828516231556051361247930254494253286660746275457889448319872275700565248787905582144791866966451761443514120960493856298541264102307852161157289202149210708500794754908002951166044588805896279685671032484245667571509508738352033525660217780495948403915555302546514654866091308705238859631576260935158582606848173384648024366025101947978459720062552594800543785033878640075983455968386084481397923877498037624741958926542580736896210097055812978071089379002482533861894017357747837869026233527705520115956800562662307031041972029747315914741263949395688402982176400215511107707933358030743433320971956547621273806261219556650697800271309133777623453325092406825550599066490778751753866228503839850126593208723527059140915410440925082615878321765871085234857479670871609726657855818042083184177594826789624695246105789577776916577351824088540666921567783688733667765464379111528095688221559794726980766969326419490886816355988924853662946529777578217787259112280999347614330368284009606059485584383181585628458018960811114901565516729114190753115370055506568379897594350887270824531433704009228218349204285376397456114911436188605057225799808863966773008259004639917175556434964924499553256534350427293192847402561603618614118786437228772181567098647066414276290424787381728381010606536627823593628732401563714852487717165725030483587850950867259587848617759771007643829134764486960274269682957023792564632842409256513922627921519426886978662229776723278286232342844045424294846402053391766241774210462386243525357124558279948408821351492219627767513898399234552509630833296797257100746474561577711561951383855468380171673929590348268564858855550301700345613127381144551620481429929578030537220586718630322647863463127246233122798329629080695171224760184500408213175473331680673322004044775523699056028458188908477278635437874826664430099706735157138404624610474020146352886363664543505608717849905327637192574606724423517435028172147345798240684081850689491532553320317616579234939005085101254864620207888986996230288130542424230457942726301274554491629099205677008170406779037792257749345819058148862688883721513957054710900028839160040873311174698766734346901574228839870057765718746619997630402868171820434414543086063671428337717717861214365279564512662920527875035692788734770916031960016089458149508076443468326817611556387717017069611735779401272923399738377506673501566495744557602546562135607273956945673682196253870047672690407481192776534284776315796486882508315861961491805694818348758664924326276833255766614687449054024866182177359728980193391310486293444573461902254737211650877691406083378720566433354107677367386269435875247792631999103429316639902060797788321643539837653642225973510476126655057755196615133814722785683561020471896982941295367776482823433058257465820111403474139476383338288139913401475790898350420125447852898292762965360400804833062325779554115998681290634903050202695735813896460437838765308554977882299340427400977258630351996526788717910614882029306029704873614509577656885577017205817099116892420040413956656846696073167885563729634528986393613751530810126066106921542040482355330671717524759007499462069713501987117182283776480664183962876031896207550616364113281900979000417973770467169147912096509337534451561362455512853816947158860289925396954090673828205994407096406623007013258521528736165970227093680236761125540594189599970701765307983039762137086016877603529670714611988487691534259038351543015968389222929325558282232140626366733240798799278601811530440294114321580335458400397847113101565225739983207117427835095999604658979471882093454532480357285956192818162532173821557134503087516652589674490327745448706192109565777430681864520914739791855504372992928341281161890215717102355807381018643830542649806930037957979565139287925716006008898243874290090075977912049327075654473789988170649209974590686055410116094976306168491586883077302051837764432111122507722509620816876786478006921831249607663111374037869766883124232892800624419176453010969258501563700193500160969257525409814658503445221630453757445777507822336819284778489138933027958016346629594429229114769229477176136766279363089810601620447269896071959414989461522192875858817136272438373049544773875943317482876962005024545073025578080093873976801058462427975923336116331483982408225553941099333179434386638419307282510089957428202450674024727149628312925945823875293822161032580517186002611964862998949471832441452754889340471259303318874883228947169843359464368810260938209931597423626598698399700815873479691761343579379094765804586667757021225452570990187994503197678118744229680312724001166617637846953355432028364386028974644202071091552340247881641259667213481851834175257875196232075767338616792191940037060021569009318871129855539691471706342554008240761272524263005611969972074319525835699558451320738178815890429655776084143824094016119772366456165047603968396986742234485511556722026583514585035920038553541299507860372614230485657862103182251019321933461223211946413612002881215977363325627922700208000662493289347690423142138578866603160621176543758537134694693302094536814470441593868981220112643007556942061774027455949595733320109494741384429596609611224419245346708088546557764406176274545719140990651525039600060111873730412184289331617030902501555825425118996388525512594921672330011222969133691444976703322183113549831963899844672579451405506607735173061289019508943493450622664297723222819278481501282617890444801224320457817395475041946322549290061415756758829029645681041166828458009298190285497230522681273842052805080600337844192123482480659961983600253206072020635222020745888379432057860622596294584443696140087133345540176207770189363534099673244562607747983473952810946740115268830361965197066511276315046224875229603006482990427959135785498246838992880327367567191769876072565413866378891428962918349089005610204725402899896841740942078340058963566922366614493646838971294679653721459093312056623200168167967752234449244041077474506511756465382818836096297983814918036892696819535636695565675934135007800620937061643821982849291860509090105349175210137476172025856199337624205554365076565376540980865627028343497847682002111355372535424127153121654812326169363080400891113520729614149339738179651225232212870791695605191063654012698767414958089400937969603963715569057239407800498703632315756928096456464111419288547297706475132290418353244849865987778338757046601542796745518727955817897467328231430225927935961974964558680200887018234855455896266441078714208427678135848623193674573762870025499292719669348572254726764937209569905959300232205836502730241483361418449647207686910826769801317273117726829546983822337059102213358496512804751845238211528161413607603566066663119685464400387908893625215392989979660220700362981017260143550604066829414100109847117273602936947359841945360144415210653594478502897896615749750290098298918980675003906183500530469590035001204974586429218381782166055262829053469677812853933372933353356279669165200203033855665410410325593449974250103465151493178752302217995884209799474625735594046915907916293562027788740536606555720665628743016534405669589423396622098618636215181836626620738499576489392916997225606154684194580086792201987832543647243989993264923206150178537347611115149292010674929911713404647796805174698500276761468444915506249098781935876745900515230298972171137605649556643249900078712319007616259493415304383132131889024336889847667733324496322202102578488422895330821074811909873932380377516086045996568511680731423773098317714326369107522902475248498066221706415224873825261958917973917411828995089503656963488216084332899012351212546717338584725347252444349653766122467740217292634562269263912186332242775650607723450075355142993553067764539113695925309912886333908615135090310896099399568799518354754417751952762293872073085664700612423656364987702636811855686550768353424242429087573436542926808620500203713110791576601972094670607436003163718792509118247371611528852097251770830856627588777281469199494105683301125437960098233066741979541200553186359137393885810455049054648935613143469179799719590846325906637765855790003402278769943809212708280192632556643548808716670581965292555103320961310701100833037915068429714907454585167081203052972260480083129469755064798035344720070800553647406814674020052159234473282179022413087964456949046462218621409507851517373592160784880660102943340210064688024918931574003291527385754278669739360881707850477382916979765814791572050262214698478665312075930660135314277156192494412527223385973779847659319201028806368161542997066065467378751192873748579917717125258441660729212937071795690778649048419236725642025481650609798693394465823812863273147077421913298500534398236608214538386850302783551204284439319298727508332703876340566671540239953894198586960689334286551935258811342411145859960219032005076961600778259963336558187149096865548351349463003868813994303780241442205898867814649238417012842873613909820335720656805750126001889476988071864797135933474628373988241099394875933028981587697274634146917462813365042570029818776406740858921022851633761695850356304419197838556647520511197803379757691431789031505258847065670263914445013841674924682596718069761034747910724666887240316801858096517174403900097179969777810408334946202117355147556979092701022403895707442863595942351075904088828510738648216431985807949514105022486228384139368837074458479551881553979534686063156890336031793575799525839917421769051343763078491595028324643351410917640727255614670237149509210158489256564799052730760758730823241044604323880761960336822980674168155654247206279023165111986735838091314856182490284447587967777270492463643465954567416431472040092555764997200115979713372412015512365094820101607438517297444099085891931184203640470392176934467722625405377110451214632212337477629090227372940858945407977163088578753670159932471180781815966942330657254454458681354016822715216219672853084304135259150510630117418171251191727950689231849922931271560574530087150352115631373832262977318084817532983974840286186907653118810781687420923306334855886844304364142876507053643064507289470485182661860837087866217115627810226432428465390898648555900140242677802505612864235739222019447496696963160745736080636376795278653385889786546204227846245571856188083065183918967063701594987934560236058194360525470480287255980827265222778700021971969603590998659649784177081212734146355768836008589440190250279333269838319293173057586529445421249447115935660679983775925743808886839752893292961898596534897738775418044562997808698281991750963794967939928357585606624097504895975154153465041923926064145107395015556881080750551138957548859791501859837611947167908646421870015688299746216884072358609231415441871200023530713210480494161296967180640653456926248831812128948641462383523726371416390543843779562272956961946551850567625047459213502463739071131736494481402870274381283880143495932156998944220235624010781347294488078092628357391471665050762095315424424937067699396639395814003835696874628972210453915363587146559885929093247799600881028775758982961504560616844181418644597986930658768774828867407421608600888342767039677526584393354669845872353063545352625230587018578790986109449383818100296098274443106972117414023567236495265195445446275916999778733202469589475722601929654148263765201017026011077792746553389839524868227816678648203027299260789160728370636722539117243038240953897222109208023127429986678383789194386304764785429983591432307870528879982014457254703034202220605905428950778721981675183770945992740489753868131043551890803759734338480648571711911405447862666034908571687288260625624846670540736402107151243967197113846855413757688099290289888750657158355448639302336410852815408168724370872349689295158755092958163357643942209366241556466066123325025526680918569674294745111563659767614614408466353636552170707735380722330599946547530832995265764740583029188438021078688208167627487963603144262304096437871250660804671705728468313928306456838026736438285811005120824375268372756548260394220797843806431050768809806613990737870219884572004137323131812358081228448879617493683060475243669433356070334043702168945621532769226564214133792419393968593189986216006392988218729010757998504096063082873159154692936415771723651181791109956516884994266850083619659901011588672675449680223038676861163076238423230439687331060172619526416734302137440243533847384823418412287625484038360042204604366301039669342636345333593110364856363257177378125807472276511585159655081597165348979349186258832841546186320774534812449264330444659473373224950224314396123343850515408000674512957118892900930323028595408375157506520830711245782152261085395089338976496423456712827829325300670808039519680376379880773400525335705634165956869786459851163340409752940267408154610411820653915323422949047066984125185836064503090347778674142861863816666235346340127207004142013273766179050822744084007628498651858518645620264148106425841627296273206613873985561161173310105209780074206958666634211294905852721619848999930557161910270825476170678315449716065123277724738410688218861623979299777225286593355944563669119919171313594045327028534437646810926168135404799008784178753027291911819300789903302262630624651388402001032989563747858822229689744667626196441639737205723598857376041952614323584554260571407674810429119181305852442594604577606372815734148548771524774100733018411762817883140755123131050975370382081571345148733794463544988660061315655593325176862014306377191929080444226053753756250832479181207241063428870987044466610432009185546545511243139908425772197606430647426096257236795054718734474081898563319930928948674800497680931416413081761364763866203552780979024693017478124126008091034280892978352649505014718168982416440830269792617134353317291410722232254851814646573121249438152997592511718012042586482064396697247583698191546664037699028865837216561213893397817863361390952707231936045795309385846581890230388719766482469333046519034530295425063101119109540466393106139450323090602198427316397402222024511334755954219433580592553396805291711811906396143826598644834357789837097881428131659074954223999814093079510995375791827191916171462753820381361789384790904322585555272566673345218145910697109907015713672336603867525550628271519053282624550949937361259202298463490831487211993369499410849253027484647171667824614376617149943211625934478250326691461717667198409361464706083528834782548234890932241807675547515550121097549702093543221947273953819538860277251172713953292483050369741421930674533199566972427055770594765204482088544456428759274090969298966658026350768804923741816234412520987449200639787288179890556446282409811218599633078692781508787623111091901193173669024409638904030632893128729491541813682199216460070635181403087356092351343045977020682237891896807719686016141374279782362040939240849868935579118279557516177141800498063589557622638481511393385654127522931139616903411482338526122911303986431198038116928636765531466182411540636493035220572767222017878770709279590015304217614720029537758586675886535764680950493626720717232533762206316174181906293010652202986153832451128945033480675309851197331073552153215776924347477550188234097301453072892152981364542719998590037048078154851605108483145775366232187986451317942904031934112558460902068876201703338971153070813272813861617907340922644644325958421340101308185609502899024072865732750980457620150352532398095732900878291023808596925035294783867698797934266403908088065834034334626358602985413633426572505279107510732313381067129161822302203374547914404161583160394565632562874850709157134606531905211197079910475414011154108299664785485290113770777721641890723545580167757970638002598302612248745574159393602169685038558061605906501485382823935132178555286403710554143401041032732814735795127194518932229481690704070813146440181521016617580795197710444309846012680149748832289746031955822084705021116971713796430966737644931101399201064614621931986025751171890272449406475883524767520556095206349405173252726626029231423700207052070327273460232965433633858981410972816847377552758761584419816186226251415931082634604315641115625084696669196167716201523301494046735538862611125585064688589426967817012394104086347412315147802197228216808922229893730807416856773139679880045204556388566269948846207511579111288084734281919523614669448707654618815569724059942157377838886852043678352489586121150316530113930930894663611588157078278016967065651045023877212518229565951498029358525768325574994541391698938199165137798161642461163464304301784101353570840434585074401238800794178761207259775563238465807000717424472019740843136350149680381854807877468227641077469166521351451166989409225455572516381580545440794377079992462837834600105362140773927238717756883164488617207686182449340570752461674140904077695814651245270325980981929741479854547223859399015839792419517120942440373479924479633923489053373966770049185153812973325514381222459316029141990286617349643543929277886133024786016191617232665977201341177596641030809059170282445330824814075823288814100538957053747801114025719090881856259381085126701521847207445651584717473516549054253714725951009469494751182395113431306006566259794081393698080906582410115277539546663475570845756625878964956081293148405217663756042663888183118401414818226313331235446004953720405663983816073332295700423051445786018312869092652967693806131519320598031492013930945699315608528326950526888279855502616463102264912181209341566042331841812292775367888105087742353252255124959210063783777107523092380524537560551388266226164601173811187799093862565386876093860851303878128626789294556220997367655197587656576433655182971664935963756721447604491113493098081031687205472923445468499891891965115963765766243418584983731494582907355236268300390545078910986453157612821755665366417194576630975405663378653695865311490584243079826213918244944968931808583584622995276591227450991263344035558789160791674588717587534295100877903312970294723775554721742072202790584188138062293092334118955170348736155257113023428756094222864623301487474216591441439347151757141465117721151725334655877148678584431011472028527874646940839585720461603951894318302145278603901573435928596850850602679545818372149342613884708301909651324434547870875995154067147648382863919635412783903648945979073436654198324298485044664490498519198170252504149620127239613998692061348139686078204458358968135535592341682046284067036001535968354957978646570385694313496334008292201783021171465717820343465143537713569657835852550079150535832721963398050182612781916115793833969684613773398123702549877271044007041671252419928809818135234268499807576408011320355966898554729432130724140182316407821455873492983087276372795329747524985932837323610376113783945817446086386821141807694552049850584071755237627130312123300560261921966108833513445017259023244703731078493106366162430561417723560891907577596241446085882693456324453206681255193495692372994800852878625088117487096843744994225308836281262236149836325778657353091466003993691169344313284803674696528642907500551314844762549623830315996978218906993591967532580475979640639657571765311488808534924094279460836786054029122747827450144837284152366108317810961976618924029297557908581090558177005075419490817787432094598794536205851142989142479001161112047062432388591964959371713398762047259236592364300882951152545020691805544608270229277696591359987980434151946299433304552086777557128398390791251831011108836074419199632825080201168170803128308264151563830020891704527237595666178530181260202040079329219075906247541241733047676497233696981459099504936533972183416173814676000328658604347390506514953307562937193688685958279756429424026045277562266547655027230221228154946046320243782909468192259908204078529346604376070220396274278087937274342920530656533342234805635691291115230539679055124316586365822792517378693870035406271131063398256500624831440026823750950995525194498658824655540835641888482972588112623810544940190122101129356066911605749462273109211913690565328454128762116013534039783135243718392586143642998051236842158251527018644100875448488982088054840549395109092181140509589989481889652933392542357696311519101751300052122272746478217521130534914126309141548106293875707656737289724746831332185064986936265276582637312396022970759487930282228076964771248618428060507678003557089591619804178434718625314298605220765448026195420516714395596243591694603103018825261468171287192281715169847620998225039249812537211629512468440527503377575716259954470705628806857054770842472066268965786770194616444525437918920977894400063363297403422949805921436518552316783055449043463583744529980490137908540938829183200921358888544065709083559564705347642710106447389073091109033712813356718379480851713193061367112547531118676080480541972715928659792846514880049810229826110427807787410003900153630612786718506459340733557621969574017436389531844409410463797991056804073474221365081945658263847170296744892631824434832084836194665541376525381640994891726192945146549288305760416467233108550726758843251408144383369593366884813338925077582220648695022038627735737227169676796818089931336664877566404273807299507913466519603860714987799635359816483546663871446538354127443661375516693026438963278528574896024371171827183092696961336228923138200513111242323190542865408170646724292298789981703318885985131587296971440851976084252283744262139123070473724949091419686054315500027103405556426480600991935958587827826091929002699391545555217988077287562804118818782874711041337833966617505924024593295622632488620688057666175959763020194220794666040584481042981992647547858232795454424515917400643387660893023195772606296183779849858727155904078424132413920051973030742999154676458235563838041013945281517782343865583957037231929882884620168870044417292457008445099132198688194888107910643964505419363479410660980567105562157040814623156293278441753943916420732195100525062582860816568531018699481435831240395591100537476411411148683663784243646801518212177001529263204162998322922905053728240561529088509656643955325391641181349075511071832661115353406687120063451188414904094648061345073055745022150408514667230255168751140241751936155316156677080806930442482252542843136755483778238186689013317744387577556832617118543361588980724163691889359139501180928664085636844751892711960211732675756347379064184818853522073389794830700387813305651532866484187736963872917603081568907589760999150152161138540682086906745234425231915495113120984243291373480655769021817779318436555733416414845088401416516989630065989156466066294744334790371333799655588288562542384594522711108470574767809916921021340252767843744009302637885575150197953420142556922953022814332308558778667391843476087653061276248697558616053118192616844278933806055475153284839432037509140481749652934744758883057287579805673941100937494494650193408845813713837972001819151528093435708208535069647758492851326323285681819167033804686503026045340488279070822667705595658728561598970300385928666373829292478741257849620617086115128470605127123138221551953540211757394687259050676876424092957987162730073995749526977733285835504498891741986570983715979470628204792531890886680438074656634854811808579304597568838376076034555777126582030949598400063723200798813395861434784156147881104058147712896183694576701047160666550345540743468057553587277968309473336304386520846729665043171506466733072304793213598044507649379945242239963346905379159293545158401350673225559187433371010493757498549714977982964513158689904557927819442962704716522175586150052003307373961165343485163066643515395040061801802658318276075501462079106374138289075180819206543777092446282716280863961032993243517659493674858283132473156715694822366337052228830348130522952407994951715146604201854795564908311763235777756422481931832604696352361932174121767954179208258000440966120555889928444627598742278771904901872892047694137952689292129513228358888091328486718750279425973354190381627683308568153558070087322869931429071743835324174977548401283356708864787513450355781857971356183954757047082170623688969937819502195516591776155163617701432928519697396914686718917984841793133961064978310831038146695403464203839361418250871279727286800630793169525769221343775280974538621719729743746562018652776997749065854721495227182277833735597298960582872526500056285203957410860939611954926801747873049007825251874569853475729323706044760942637852356810816990852332664634240824832529858666183093496929825407229902479175080600657536382782678683934534124038694054868859378542882911230898169313921072028458484415579636634013166050962968943942514108334138841556734006020347702469481326437878698029378723112930488282972515072383181312481949757097519629975737946123919675752519916649691951293335068597271000318820379882996401478668778436322329712624042396361088070576381306484018994811806502065533633794649610731003408978019471810864486092887499024411307303098078524313570457392148227632809380243440996359837265618337774147436331156733710277358342041903488460172842329278868391880928118476792922454257683413150134660074585447054496861693850200752702279701921159712758088900408218711063371061882310932717054306026893368026713072486762779862622461782535747438873286079630222925097939466714300885741903821843526108065126523951575072700445385440001280149485562660425505179546467182622396903449879154092382980859589715700978865201310554829477770405686561408546889619363041462939802963281363686598467939206102866136053094779859784528192073491956173430212407713937202077430440230322379592019109409061039256944754401813208276880099180668245433535669164585225857287527404977934011749890140224266558984973836632121328615811693731790829287606218773799304218390689236595880319110491350380817702015825008337944244766880462202558972593848059455297675687074656978750737887456859332784961728948060924629870554336428488931303931668018597616742639275388797879008488555474508234643641765948586260827947404835019979874102381685739644507377881433663199973721611784377981486670922404192613518256912499784307833843336036781277538375840462457354359280057121393600767391368947760360468921382616507106343716676042172983942862581473262010241371867811288229439558632130383880214217402565025691273087261437150824671053057325951504705047942006444356504490333726441704870653611563810282274338978321361710873526668310844440893697507435791397214359022378304106607045352699109426745604039470468179481479931475929890964660417522978365744577623366624196507449722241972016952613214124967755159910101093084168653528878477184825089184696415540803716122103104810457598596863423173044573361778381660389545032990025512176896241351625761428778745774430861034688745969565555979117779817112540920998753872966668150608006663513791502641219479764865201654716257185247310803652549777716211824816868088607980869504210201956090011033591919401893598031318665802857425972697295495854584957327986657124309906421930815448479841602557488992816159893039216031949213985292433183180719844180368301297494850077670264765730271628977047181656042966205512739091585254354393576890621508209652416441129575275962527881121822076057309867428719287783120138143779853846683153654469925528434752897621863400953779907576069853845161839054158273680767800363185811617773525395983492056719679589107009725000272100712464501568679793299769282342148042436925307107955226391386005612143042691197632949570109073597981550965867148751416639161215768976599730149380552803854602899629676748013889021066840865856267090237304700913886124710614279486722018446633052465396255413391367214105921529021590728843408116358760114282859398993272905402305752956161228164040034201717968893877032816889611661313348568612213709761735668552873795049078269118972689640533504280324075276683728140291470015310249078955452802420633185920128947636842533510851855950457623286570643659621222154368167340661209694809199454367418585645154928896222886234256209946092986695775103764733789543727749977109854155435814404712661430570860991901614538766763600432559807303403977601305253537553191487933834678893737986171190434968437925156640718698697923709006767503773489510392802146599415591046047182336866004999323532470594805767997628723417941111097048889759693711069440943913420072929639092797693000966410771935882193583018262906629080908475887359945257699708924314372988820491590985026543094150187647948599141745763987700321798307898418761322072054121977819794145985309326768701384208047514789216191433975358985443558662562179256137537595075323197313412221784791405951423270790060969801220845121412873436073429567484581257564870111862611886747832409206495499453511978073370983367275421691152842160312236537131014181196861391137630829646523245208201656125750341916283457829945364259131418873374025593801027847825122022947722164962274465744601486786413607939447788346490625532439252840714967430705192036611084175945524956467637634656791979465787050059606142110050444305332784607679242238844255238855009519831873613931191323022152464305414480081975578210085620707480035493290797500628161749357483172401538282400818293675879202471058650428855952805344648449650474955401405849283633361020579463790504915538771831205502968884047752673323630093745368471014844795614263391649090670852485116538460720890002360634415851584381096763121064017653344951993484666599537365563443137181063188398673730922774852342535604365363776957658644540131329564305576234308762909793138294981134807185988056095006655760957758822508966604056125437199582538199281727158009338960198047465044202743963100533404358539938874690754736933705032914155147421763008086305022480963794691588080487153850649418842716240384864459649961026056618082191565452229895341226441022520833905121009667886849198655692647023127110384945326517591546224709042542334823478153627482344132511620736561487867764554985686701170314189201632813031578247030071922739017441218502495910092032706984416166882445312626392390770609186466049733461200014568810896236871297974704311634616687177208321104334448037841094671927003925642957131640642781149639403774288433054565625086242917930756690806312684726388926319664590878806537468538253681846469181887492240120186539069316933508335631741332213881986071115403387253771477999286146903622949005112015639030634781774644245278654455868506827667897490872717903501430926207739382120321955900787717260630326862586918338382561252350989385034059625788762497521780028341996393065260212022838353179166088281734438031353118234601525728302019490414465671389348698831192929245041265426633287228272943469543341006166888539036079960782828232639453101853255156709278505161579356461326084214660850722233342842750916176912038028815505626140431087476305929152038512141159536364008973376961737552171981370574195952511540391011363215302902532681068748747046905501767593814331473524885552332844457629209273454621344422823726342573370307726344793085074186737561216913362258968541554387452867250121039861075149980739200130324150084668381015889723121719690780813517024152611235351019907416363693280978020893065003072450690628198920735246334741545597697755615346840553014978220938705013616321446350624463394156772941151730552440598310545301543859000920180100096991924398725065701841295305692853254050442739048155509672753094598264759919030532224515808879256706680755574416398084495478545280472667572600133109873783113631305804855838841342975526450035366069662758322606639756880913220904301005682668548696649786443009291419874930173466107048807737078361521544245483341486667132491151213571518052679430810661114681554507874881321919811080491400714420358242530106268391381609044613033395742924592966752775344032442147777921274068681801579787651308461821661923473100796241238130582247743932370106140107402937539763137219298373273997312410634521646242053763210034913990339109911555536766267558791544104848020992469682391905555164591176661968261483646102384193285691115034181978499674835992479558833719275671148530868662043318622345320826895252959745128108490805240257809814529710866702205810572699880113057188390150362329961174624677892679691904507135241632961041003269247380499710945690304048154903704817684998476897687883353962109331911486806724692727950901438946214295105567972943779244782080865573325543004628113779414807630879502442821458868615136943791274522588618610616559140085441076786071181476220111958418508661416196828042250008160729995838462440605103435914630729725481491433600457941187452639719710822786322456311980892472858378021454577189865551919475194867604193971582201361177264975230293432619527832797702782294084061695772362784785848867600733174826640424617583329091685636721973109153001196952985511846417444663153755048827298569200677200151024192299362844163073734469658343980177613296614676414580132220339341003950387990096450868239566479306103650262046606586229362665492243644660119086834523891872110964995725645643022120441743794255258446595564098742040384923686102809542891264066716624120286333808187970253155600957755859089009059075958381382787262103788811826638886764970744707671159478650732508403406835490016658825179640801810954458934610006234697150324436815475505623527003067382144143422976780785203807479644109566729114470203435432159134427461943169093599506573992170377889250796377889072242841219425467457315209713632898205191638574863265017886816153158315048188987678935546853591906469246245499003826122235189423975593512694858181369081487867616934559207157402508274472291901623201531696592596437597526438622568116948664907045510373613161202477112752428517420087548749012795956476732226849964317263597495263116116413549167946163021991405070964743650283084372538000039907693377648695939631168655864635763594027785691322684951344872652221809782343468096333032264819546089009139867736462652011746901999464974816686629862928698052581104476137341344545216453206191520072887247625390733828997055844495669419751675009771512630380879844662466698642046360028370879681360336973348212433694750416282276761280253306471931880897767257711046194860326581882872506210189382206285131915567259430605725164736359716759654578458196791576649419396034135538066957018165653977439167558267572387588809844668663737249657273894211631598824867526470534259145334234979771703001065695572397090714483607454666261419727728766679129245796083508805303230117781864927017111463343390433781801052904019323112177931958923242512614854774346618179259972233956008799654949627348495547995017536402138859101869077001972924916699554525964050591853226502802574009099217126441890354237745861528785308010315399568283994306803263247528365737368352916612721469868288904717680104001151522989610403735133237451159682843567905291601043635755171626714866090941406006857538676971260934902071883348381431109145788702115350022638344428270268474000234477703418127268711822578643096500775180676831419601480124861839513162934856545466982007554003103303778660346890993435670232107788725984162776225447122652742542778166368031292004543162659527468495885216066424247751429604462136650497589068796196711696741633592985128683398995854624625617113648180012646353076281111967779689682566058675257959400818842295239485231256832357079507952533985346176260085415841635146281616962363237886932807131289960356702129333002602039539957885040070154397693875765632277467932185184660794707947033927163152968214562893240679917151381107034956258479013773889989168839613649310407267325895836515607828534016120300723412196369740333352367361211958066558610386463850999289439815740975997125312366963104232382934247406140721939318078973706161402410934696892520532506295915250700605713899301601416061911646390297975475727939510296336940386518608495798861363799945966043756051455260440438627200060169349956975211976045651780981353396264400552352828778752939104466786276635184165347000452742643671929262415391478329412400360472794667040215042994805446341267373879761862886537817699284529575505797111148976265088276539299667379662290316196435574729429028663398592737438487627195244670674581698923731996052722259822915856111626226012448738280705103126820552660813623732479971468368577998663273827586128324798595640843281007304824678674542106428010051051657211266670182496907638210066735976115016674419889339871575041672739795609392569399967008254780016309949463912507435400394086337098151358440672574963952911482391802919458680146293588086562411718940223405142486905637949109040167653008881339481661770476721110265033773179497189806026674142049151754784054906917156976592314558074222835717669931768266648828250808967613967296262478972559283377483339188224964216053457309070192462848995135028093332544782766374152894571290894056489850933050675249187244049214790137562801407045479859612156375365845370875597330950088783110513764609983253075566194467693720280672138948700285211945334633656752023422608862052647056370445015559697450223925595026934284858020522004982952010240073337079630238154114068130739924819764047946261502357215944403419842458922153137446503117771913184104482492707721468012630089840560800739556245085846012503402765888507206828469970408610231749842800055353030460631023363766037660540804581526293422083563471309651151956507032491972012699700821177541274995879238168077328444304424050183221080400907668012268828271825351417964337952774044563250143411823821830423382812746766524907713179290772461436547877064611610848059501079068879793277840278941815675401195569994239400439081769423992492208324747761595489143095762498531051596442875443887857378544680622885406551594180210554652477889664411582733364687852228435782033202979502617879497798787221093842585970627557383161765836850112401476050845783490734977583378193592120053293981936180523267039184509620031000158901389695449329441890293922835552668627755534813173776819263165795697808289674825802136257321502113039916574513201445484959501999769152321744665597963338804887205772347910211092739104296853374544352633647226741454588352651476958750385652901230604901799117691835416985100532503166547445916309390669161306693094921613359297606369335188061755119782991495526240460728885537681123947945262881996055778215768373774858088278606228300350029082672443030805518514924625269606864774918363124738955475317176439389900763041587370626520248179360360190844274580471008027856615127762645284127967568382947438065455987560390547688985510935471851982820305416720074337049257423865150130642042292030935519024797269020331002573211461715756647079143650862353114230279455147582123724060021379677533727564921026220694279187132476709340978785820689898667820167113603197997140116381962175591653081349228652691765684058220779546942564552445047900582069137209964873188834616937100678720194825930555608368506138888438903072785407560398824028988083377255662742014922136682400544660895938987819648040522430399728814506101405164110627368920342164482851988080238454236183097355192298951921777356951597978457828561461890301307700747863758386313285097694647316878389246023315145718346585633636776346394882810592604589518096561162297292093698488645716984161335338728405132216908759864527662277904489046311021035954675193344687182636761178187953580072271055961746606163994528457134319385492265377617508204523829234252371178257517377136354038328109955427138728663451751333951668949729378241560337389729115473728503588450924912378096230418394610304206761009561883916011457732625523552766132286678722848494613417208660947300523463944106896137603778233522375471544192635492948027558806585733032439806492310036090451055938788771757269366893365281194573542688088405500067184715040737309576829710537039578771322132796272636226219209476805779479430187648878308617954526799820294621350385013799355248538355328166817767693300983875141116217454457885484688510570855297379454884103009460067484194883144352545148126909729033714417411991666594455524831082815977168672491161091327473694985762575832278774745627863779181272709666339235563967761277211230335838626285866029441031904126546893291860571921673169186562354410643194396680539116912107891928389354884555573923734992993676982226200903626485607668030860031470296080794648287891450810651683932544857224936614698158947241094871615124272441822242027020064660989863258817927013512029647056374250494047590806527395095647390602259544629256858771003570848304616740283102259600275330121390878962234273157067031255722731486951127016822238700665738584955111050008559303017210542053014560475497736843613910040590276606226649600349320979592191185916777967179623221790915632078458584501046525224434698688296143934318510941328190612099956015132865896978950892334049943174626540003354753289282668976886012274867161198430424500083081643339373710093910894032176193341925558440116038962551062487062093371646988721892914492665293732011072402323053792159757773529717901224646101528906776331758427740360201548386400837209203668311340744971709502286058894321575470372141474733076138051854124896485483994432208522198297543305903875525017550410027595098955422066058716484327139074869173918305850935534505135168116713224370742703514720087795359437778546057501132599577085499990082746444823050566365997148537596882216602524469583576975106520516318421590825601412527305818929617799581596389957511820389069960530390254020822421609827710769579899999341604379193123756437137166146094795952616343992313386616361435743635596413927935917697828780110589406834463812429613235967049183577106373965128008210827374925084434211823848919377561529600436286135476734503888138793761249507458027354260760430320010810631684771813891625185538560384428243947677597130186284061163924631079033138366499812245919424719701383379934518931379498458491933128048456889409983376713597973201522050328162237513240140608245900102594558252214973972532399028351402502165183134656499612045416149173473855512232479366519047328716487455152672665480969436026066393700803049574807991088765022093470401901099290056472973904446880909168351144917015234879806424631449636493173926895933980071679193777657021108024835835116367429984814038188767534413005492147422286603121660139339914262184495420844114683086540999907470248273764114975077080874307623076761912028361850725424653009174967204036253911452869462762678154131190169366971314519224189915476496161009110743580268268548664983634976132202856033149792955731717512332414154387636638884473495730031634476905045134961736016656495669785134792889122327613268346619918285506317571556199064951612291807325622306451419988447099623922855793372859989414284376042651204662798020975337973966178861230954868184867727879036781065999088281216477335989696787587896490172944348421407943909761778691456625904491592464184018810471189194015011474498832434515181093630159339875143053555911548521375314247472546529308382073520262505695580482181475077993911275917820011626384062964641706468822780832179415683731486293389284300512360499917222558191510999920742241830525743034741758792619279077536772528321841324958720623556954324671208477875688907065165048264609195218648608985571085010154018287514212137951763306140336789683274852001078109973008775084053518177849928743573621887858061027912974657679332458077738972460156944020964509499808553443660290964586418231409053485855187646807367399173670731522977809526446080827259865559550060386956961397391420388055939606471769942011926486475019262921328495978496482256545472678587349676278921059329562049366771355835304613163091444513568201869768766384511310801332888241516622489207159411855224711284758252504284092642331192343467045063693559206346377245456835364511574256130407243783596136596896417753991511070514828392427931736832004620552882090616748569005736522366628954023983268718470306448434256390147314177498150045087114130868986468636291310270037875943310817415608077298378533755034043658604648942976901036983042550451176693360572409065199302070832423764081582740413736372109385653709971882530475564510801972710808451849647420069924329050062773173606629736212378456217943613798690269090928069151065037650166769930222574849245041754810476945925943038925843589661391817815701155387441800101671570971274030720177236445150836490886120429703007223062504789175594349239205974766966191740939400852814159576245859011578381879891371074787540339992981891525943889637708422141784024985209220631237209124564067512672535779567397525976252861965006648891254528966729052223951256543397298741550800911637287174698066694308306669543306099011733111446658609647293684009521647484633793871622579067614680501360328728310536266138746942635434968987849936317685723689372437087426132205784442698136611174344177973726838131026937133425798285716416100697624443236466085830205360555201096693919233283545553287672647565902302124186099499183243468566140060521348252695625592274793894562464884104064085796356808901014404902668244628185979910557364909742778680159614104031522554462642892577298319493982160209410751063129942957296120670252137821730493226482195642517678469151148366298004619873649626742651153898671651714460734903308202466439286091441195908342652344071304883212912686021825755574031092138319317611626809160536199090507972154931653101200067119858297653712611506190870381443116303572808809386065093163730928842790270701808133185500120048201761192199458729328807319179284483956511982696429851431262853556012584092134288280278071559040207982799056745491530122248743243587575647964829500570100711651170016589529780424508420708582834716638442175086747663143936204991247390183904495115313343555529941923622074513000029156296401423440352947442371470956738778877529736493289870139162752556450624180390414043492008976032886743907393739525964570319437175653883649239782669162940829690334226677087643177064566752969854243512604375202400953430799331922165364645373537622540545773060396641258453293944927795585630183751492733886782835283550664920237243103671376792701778161791190104399228617472071132142079226261259370701072933771592684627991603525259594746658987987841677303092062295857553901283928225527743891816223384044476236795647647167068843728615727342948490901152573265538524131455357137418504229615691428593526286309264852984355749049824831850010239665201996291736831596119358909082932506037320976910233938133508775400756938671457433399690674765704190276013562914303499966823590403861577246281781765632173265571476863432938710769896595541102095587133173894785700972129807873835803417771686726713367882670534151401129885859648924557363046082221886965787823862150018047482876827789359295551439523809503461080069713638630730196935392195596720125100649091593371330873695100117094728048678839818497893221596052174114434159108058730299947364993896663217989471699888443857309446840464891670428745069383314532135171490633987309421707923799437793112196726116429125886941689530302086803093551376812586812805729575630571525237769724368673360429466379193992330729622572976572347570012278829580590155536075380194001938627417201555550726594956175560541018143230895583683094294166244993884494926331183842672559812134057296271029876555420875245611282213540627883247627201692083223486285608928275990183719797682060951226276032170973041069044394857718973206106406885547165988227728677929955539653306415714524325200411135084177703062144916421194167609435534067252057767997777914658959164675939411912409130801606655568739702603704906557112740343690384908595002794131653390218932970513283716738205402531709110392738410887224896208452822318480799139140127008397930179576329207696456138979400245171300653280369757213973184374750477637032720677342116510650464607839899857290584303620370322031159876765070704683107773014662841853391001825411795729127319823202458249339397225075675471331316846636822692870802333293181608194808022913141768513856111068401144680671105607251773055121759199588263369340638359285898627719696660268134789385209747297819345990981760059041781100847526481228686182712962458103984464672084707155916806879738490789114168575484928321131716716700026495550006428359648340559972390707996956596720622399697367935652340618958133442425016190166468908331306313266576481014244171368710328538337848542993038145644211416830102359435763716381684150631226012538404971477593875931544567931216948642335481994002682537643514309072780217660200801025130429538149127474634876854752116325498512827111470684299920113780035582595479723192598406516977072833753642189258557651812352719727336502871306385479524712482789334647309644892062030841553802237590646873078519320888600726402112743527201509940253468384566090451645926595610991266750955654794095480579897984405564762339801603263767680770315075157741471708882185823117129777733876520055572215527526256812969927537766903496023887530276803749058583963585280359215153052271642573275665874890419592113998913243257903271349403503419757511345458779230397863336487439756006646518610316550839198983923275809833042183555861670093614247257642932197820741520997843628489052853066398060904465559938261039668117525494766649399886553025746715193428020387906048717942361614928274923317810309005803867263418163171482929637150394599191951968752378352709529910298970604540764698286449713380969820927609039645038823785159470819759420289466070585389699170540325909756413658904250979213336374183770892073206090421827949125505867777995983070864571937704771334414478159672524055230559878461289878783771191879646733258975074089156069953581579102607803955360673774869926097973745893913915563818183154812180025137018313398129045308113822144731832241974047585165715957291989172401821483184010262188475942270358708739331687899833221883280765996135629028978204589548384947255982506581891896832246140966883002107122022453355063572303651131391780244928313107668813200167323953184059452332385523122183695084987643071455409728562468325343318303062762135644410633658408349373034928786196631495837141886148397759020976886928270479844792035659926636374099719436367814023241618916530618919735222449294357844645846512724481247689407302853410781661070998741414457795165883181575965853790195404568710603536784613766141960811197346375771619790755643418799857782035555419408952688447685859577722384260454087426473669840377502923500050649186258585633250412293305944936692280591481179789740092897557526725860814377404688246590652844542012221893908820420359654027253774782347068463726416908569209915755745356060078256656341530182996574977092303231146000325376551529857793010263919767315760051673473200020378977167581322737920408143951497619415153387051992263732505295637192396198756358323748028464990440004551303598494677912164458699219118463005575136858957938345969744687634023015089440591498463367847550581606385218935539854243460352919156977105412506589650994290209826311959131545781256305603685953378977220059274225679795847259769894971121468021051886656307885485858438731072044200267657813916936435113004289852998786802226431122418214848218142741458527410713762557423889679279270713613394362923680320392744371431890673156105063080621318057662508275732364531432417640091389979849814538346845761233726619027117434751901005891430655015074774649845138864327455784630292575510078766104208709696817516988456667026869906608292608306091690757252848502870487943073723391204521644597350336270622409422638554152314708534946282202321637450129652082365210750864686682095745090452935190639992782169471304277907156170614647085318455410962531409137205013335741550034355324469736993675109108592043865715464435960377773962674053283461426330248845113439456951178499870060594012815058368642357330543262210226759959334331728695106501990551854282747842577577700017004117612234631520020146525492561379345504357752252592415363486739254842719341965831579500716671133518863466032116465604181370981822164761743127527378480480884399329211940006765279184352599931639927791207562404571967965139377177328262890688066978521505183906169545043214190499112863033756460577646499698574632240215925696205599398927939542934057222764003021782712239636017403487464271602929909976465671341089539189247285000649580680806139044277192101787321495271331914334179570168743625190432208947121484807262145031346041924324169881492137085603314775810219139526001564156006979928944150469866565080073213227680363912945807163206759944161783363732577487892751291875735762567018326243047555695194895223014863132448295933184992418159751605282568449461035911482116703538124005160464771050845660965034384861535378743386378574414090504386771119697697502148325355580544536751375229624820362348627584994704327378145803011846358189414455939984078969794124845183232323309593602622134691718970808115640942679437938074186924417651553129758274579121865037601864977053149287183290898530046627642353758513862088294644339486300875466892048669451207688803776861145811223756843277105221396528323304125168179556227800152139760578363012269455928015004910336055453940720314408573710682186343908735406916266596243314976804455882903473525975872333716897701732130042942411501844048270119677012762699835120814116357159603995969769899224740871438420141430323343966381579329434650400651329178361428159089545528791743671464773410332954961115854838463468217325258118141032697142945638849542591627996688822508724704778003749916537502597099719493388898070573748642577633379377889035986056137453315499412860698690236855180458948986238800262999669153196625630415554440537544964827399599276828218602064288482448595473085349139425942335170444574898301986038640747037660818896711048715954412170695507320354547000295371513522748450855339149129975404914382389710800771448089031093997812722953368928061665230277669362542497872151100599879147967505006476967726677986311871781202821330586632784193239841309551592370680898085437676317277108039718959590667572253700939872258677735459640211154283731620542459127005355188141198685917479236866706026608135027607504359867996319119186840189740032571201903780522721692471322267094112530633208616470293826283994293339426332940761989281816657763359349966958823406219114957359134024778136637592212264179410126826488762369092856720519497087725531424172099304251880553033561892826711723398559652279408409249075369172505656671058828437242508265914664867102683902302216560693114201198084155778689086920206288583165906544307658465441751562874539774120645168563166608316001337032343077880392739477215607838854016553981120509336755784678414813625238319019342453386097685801945940254813225279626750569843186240288753227057459861651123246038826271647771282332138254933727623826898377599661705557730374404472716440469845838816592314229011743836145095457578121674463169371597091505080788224646703395265929215710339582509643282510960300214705623868857140750591549693328759756858241370590124357541954284562159387175437596469562768361117881812443132188049888724846438036513790502002882389896144589036952784933676365212117348976241693006789934660987362569711903994655968814888157197696135179105931142433928186564969971187707680945765752105169737958060504545821892340224290256871750272978728377256009533919910565614492781289133184430006105199480552980241068145579323396887510897073071055536395135760934630758613168320600216765746992596740414872076288294775428242686595516095617053066919628364699073906041866500009337322954291703526537484546790647633502989700919524345137611429880458381748412095358283648656955784596048984528261186333593260072025875003744934462660242894730133317170195804319220985589051825085823923287106214828049816938288455578247575208775053200474415551148433499037371556689797901840868811433512480717508834789762233082897799973789947828398800387112846107545959734656124671340429820145694383180614005696919423387526090699072941135523168862593044990435629605277301343193276591873821099747425275603624271682278738561775999631990687638884174918530167545542503579044015568005354003514372213575523277767652807560841478373895143867098172503041677622459071113880795600624728273974711117228745771806583673566413957006059136791271837348251595082941792919952715540859417003724724234766501426077188711952434211541932319626778401850747177549429179420808089785319726251604747786767539246133142884962882195129246851590052368279737486244417469549867311463086162467157038184620910034436588461271336289481449453490163223185102205818851796704226927180067730850296909535793491058888219464886348906760357781663110861045000887260609236600749734230941287255770318569223996568897925808958996971351886660737109972446131513765818690615567225803180689413029255438556865927459579515242395337311427909569355193039996061924995238369516081249053300791321283924761267301350284607586019100884912060717253579584923160491618138238064423385864791580040029657229990646318860275569578988602911426612212133531690280163219557082552466718617728841162372085820394994479696147305693857387402679072078667371861052223068822689126758515104117101717163702049212289467927036669438505526645674588477282256870689550605742812814970698199150632006057191782901764587002971295955662768868034889469020752483207147200368432531014561951042115892452047075168793479101357397465406768749835698471574990437409133943689617653666957171957190573641801374936366423983932153142089511105312594528142999400912857542960576950152722326036840205307479823524492121882672738902412660368374359352914139992765094865238977135605248013565388871292379425097975215642133984320074454860147575900512251460462073304186189990506307549960348706331899732901377360831787295790515551854759799343276304614036039772178879093672092954616189454345548807729578021982831188348354822595813498717536861709649522104074801576637814870796387472953943511303312965156798538933984855343557048128101389316815572732133786779975752619407553279687656195083716446644283287449050599564425830614239447646610367488724666187976607346653160521139941951029003451354727810683478133563021434391874723270241930811978893334493959491694904594831357995668075695589170411533455689570393937039116728378161392022297819974312448178820080957364219907876407264220942036315994820420542173282817992825856248912581831221914196401608419790951865760089498328870650367129794573318520347210105703169162905063080710779094735308969989567479566005007640437955621007488769864095892402861815285946855310542059723169381200617280170885503378835564830385264634050322911461878193996218160896542978039002260054870676715465395929338215860136422028923194208479513419350611287622185916286625086534882494916478238765977385473770635235291700120276009749843740361488864960187727921328747373933801329184181512424083045968322348191759775675444826641461169553643862986924999555678881781788590497518935282495073040408514168008547470172155363985163682730594333334778484212782870045834874460190597263159136039664331231907968084178156540599785706295342018544960089458825480544668504193709666880952856666229072554013586434203905029102822081824590270882803936648558355195874168508909339622334029567025938810033395738917346767264565038948352102741428775028225575743099651548314593599868746006556505074999162322294531798762344665442896711146938054647477739869908369254044519102884030156287601145636633742044694495975632097714419110200922054000729683352473068244092301985323439692882458387235862199355051775645061721512726485182293065860085241331926364165312452229320724286163465271282931818101357790345452933094351516772403189582581825164965893765793066554632604439292715100186232415362855836396952770206442628713069207212068571048889237494258619583540719219510366933868682672272754194854363132887117071620342408571437556374773801255507488893034717153785282593516154317512578304692474657024232101138127061528320835009842584108204527759520604922865060137569870457713089140558554488348491049813073647344076348000099995693613703302244812156443188765962915807601882531866004063889851566878566231802893818084831690183852637486600387656558820811174687868983287753738413169802725898042157708919172034044772374266633646232634173107966348638625042759953456017431944184345068412389564694646356268500207569947370892145258802980089656922538404025493075731849517106246274272667655967920103034878559729811323792437718528790668600350265758141103039198495717927624999136839350403752488789143330108831229777730595415365846731465075991801626197183171154247804165088442718659884696727505264239593251323044466316903180911259656331247455596762603907673163764769554638031675640353467250640647684802093103038625606004799062896458228508285509065025263402812834868648256451906909929129246475686717325762815121935627556760832237783153542454086497686343964797636346975755086634879651664768600266367733280359392526690801692777541289577373966084856585372957543876220533818013804019508755344710195407213309471149182109872575662946223894714824975348622954245784394927277094001242766391280986464826468110113477221509735110977170699605279996225805036225029946357959385142790812014840561689496147333265032820838744068792316934646139066522120723199071475518258901164418973778973712659161753271536367463381971340414626192234955290399046258130500919714697956736396329436664824235936747520679905361690064530140744366704401817005414274770232780471864768894642327141592633719028826226382555589259877371547334958125879027685029652496588916611147619318581499424571407242100369797906472939019734687315360236462791513489666954593153373452617115003215390776039250836429501719081841561335108685268975552472663999414919339969821985333519667234061414392914551667838267314238048167999102677509376754069292390467048068463930505959542942660649787768399376104932931947204345368921225517411882728360337026303306241513804665424614208313462850236068293260901588223365969861627828299275959744174063644711269296618554522334406686375770816009804010867509043176044948386734976929056571673912632854130456748149385573268518881607175762554905130059041334986190581202035245466417417317659760860936793979686012949495080355210120015176955572364472021341436973046910034921942361389999213522234553847613136444889059042031442366911612982006391119865095396349317352423124828821922158359304522824692829946587012065124328746106167253939148208561402508626648699749099755214457570541851539109513740530750687433963474754969067126093306716515780184980732895058461829328339008468072595712111256509327716488556626681816391516663541125136169805400257955397886778602144381973114296725514494152882229127425040417337716442759080083427606768919709985362827863088733995569139467580103006234626675271632757058221212930375799645883514402738413235073238245349207705795028202281071823685952885827971575607082914921426907146414254499144574509123356690067526861535140684415530142034300913729567933614613701636542395075372610356514783774846603485595063636120373158227039602812434232349845319942317801757445785109292233440953182011794538990629711197047931585130119220451987388821087390330868437567484440432278247732916434575484578984473852960349223856196668568292142116114878540829005090344166732832861054480755887520029047051513543311884064249727077624100602783291645071624712694263508684943902769921677767674830605272882780231574328533154776862856199388923481900421218368368559032054215031500854425637584512786486037901362590566602087284329328213889865003014597689388886846325607294688896717353692104844470688038004518990872112330724704172452949649929438039805630858656140021896797466041063088115195158573792637232787757940595232793543558946700144115320743349078743781103082387690481919292036195888936549367732716470431026603237502726870087738917440828436259826718567598442234407795469089359688869708766997468496327165017189713268349939924184455975603409622902171373236700358819561251326159322921595723572755776432158794426587309763283226528468643935971468512441909686926385051246838590362587665588982552372458470027098276914629074966328286001775638667771797935728382920600048351695628117626540437776916782930831262544938376907635863828302172678008360102550178235131483125102108917280789458322609921677449569781301776884628772264692929346041879649195268858955018945231980856859593112936537174967593925706218798534066425966133054945244063716339259806407503899595485942380723447877411060385727137876413342301404501027403968873311822107484995521274957932923859160327749809792249045775877131612975369419405899970830541968466281013649728816404657007888468767087313699177605266712799376204880422246890222980027317410018032754903602199359031742920607512837570981563936611721341186967821438436193000039271539630152103625484982033577433369442035728392989926422771876271371620757964757898192751425143789838791256429623525255757816018978872852005341482243558084376261407444296996187744232690308489462693983381921125354850088379640201624880707895810545639132331355794044787358679340032840299510022293146125013131589765943648876639355862007366877674417295696863011615477354783371548667679265179612855938297183513494593284896177197215039403217542052405610465480060055746739078366488981506861789573165740994403859010950465154856969324947072785418588800871250815438323522146059027191601494681221022971235764090610951590068344958273462236772554645068302829497480512407918346713208148951821921810371257694532597995807476120785294930963873880347919929393091236084544289939286563626836308859152796014194084100148812454560941577809394005615060578666753291428259924836056106966579800055448226385933382977960832451182196371187037414994136089842453845132542792238393464948134572678648997265748949799361717891570147887081361176931205691983475824985515538832936610387601138907305010542122205651410785473667551425472624382569706173971436252577355436728712347533151080285385966808516336384475385760912974360460577538638683169089993734996814726587672961853525822727625775160979332074472294964037523334109113852709012474686750033172287377053569195255942225110432186970329539250893664714155290001460149721221686427167942354457734332973644489069070916859021355853911475315138531858129825261403562037945176392075143186229918199668653481170944606316070723528385566118548479108614537352247775093388335776092397028644757564953876152389947716303249428036424794840088633696830087241353753967451077018939264131760814193271523998427338634274181515135383293981361485839878008038367426932024772376431393705802758953910879135174560936588394449971080599624760716016923577767444105332076956338367067591241064850355064300060237471867601018990341227148742249081634174025304686498201049138195141152146886736880072703333983246213592950038805984679012228846931475237630170851778573108173361036221067640335314598744890707551640538672062229617508198221189784383286884377019271831023520521407266967608071169853929578546542112136676405225962234882820811942136411417671475318452426525442515320011594108058861327422683669228621949368326753701060844291403844842312705447840774121446378753140098127215580240874286712783025976246139373276460585450514362575134920817586171946930483743899617782035631216784109063105623139907158643076026799681385542992128526416564892444651750960710868289924555096062962186807545942445825513993681167605897760256669780187205232833375553999819332963032658769046101890397667685578253328794913791639708002528040049916193935060322289864969042877185045784688702846565589755678835551989774395874882065893630552769323389630520378241822310460128260269619235661842132316473451937875856538365616736033845748878263165375706284868522115865751903014224118044488607807730213167016138190695464273835098482143232289478948893027239079261526122319044003393541714248592273322202463154511680560126669030233677996917524739160184732422736731729195186688734244524555425849296536346945488447961687555408575598500772314510276789094065515647701392569667404523732160816918719324552184781053041460342650137139168443322314008671140217435950960604525172091868695402558169630326379314210189920683830968693394381198861629010887541847076618421864310268031124229663139974708495922943013753152579718352575798842214179340062550291160394858731668690486798268563663289190799525718689308174674515214845171145229659757116073986742288845976009638420371539309488397224348810277753381161234697726678347255594090345777660708651547684077091620279429041053239821193285657229818181631328777490484097096351360287432762454887983596642416125806820823429849125021965478952999667884067236131370700086855750714655729838186404855831681040578678550905946061345331122581356656614789413507026586748470309947327449766681582198877302586645087237098998523960930780881121148152117594816081667508744268089171518882564033160144919327471848962798831120351956361428266813508426716209096645773272837153313167793095826329608964676963156234917490696105392188373562639788684680458850189622814098932695794784923887949064712199819126505782377485083975877177941616209172592763117082391625882617610689388646730366423322528990596358182397750435642749385365089719699130997187250448959818350181244516984464835796408947083815531463786194885427819832394766648469038356923164485289030912715613386657778027866671149474401526824972395396120225427594642989271409493127100392696917236049166055004613492060192739294591471937472545982164618588991523576802989899827983989218992527348605352809934910166785263246431012873446257832434634289271690138429044967083002322656018789141460586358467245623684461775389109991441391715904321466938793967500633440354674727454452614354091156050096992374020934393627482351375563339255882184835698569993583655526025631086042050358322753589159826326018370759550196784133181458368995285218157655502024133754871214769163637296035784880431144829856360680594083401535018018515646692155633931785226043784154999434103323767658846626847042849132622252974520681844097909361984230812022873834525742020382520233191363182067129057257262374033280359991657345196075813013487502007779643818423569887925132647784491251338738132719805045864854408963565462459955809997079961341326970430050556219086497302543537981875163516476426924493321264334573934527610238272761585965175040695809712899038356480636943310177760713206132549906245479075655657471849778752832689320088616408623151986984706215439017225689174083380453745141015118141037825729302972875429283343667450076298415000023014757875403571791473483502549753267646327273399494877968349665490644030212568454031311741923493121717122225253406790491755936106200198067703040837593869579411921491671926240086792279663978374027307284013444392006205565724152325976989683402963299876062465686567151937875375671904449301042811367324832032348188393007823395883597807876020182157037123353405247425639645893718454879117997333826425444194535113104999056482865045342775829346429338709414630807929280329757475956927557494390278760464438997006822362546560418744973882325567706482653201609263771585393575578306008853305881145474628529733401803783557801350371034900354612352794111298853629993031467114570396631164992580243285181903711729047625070440427298362242324701468164702660115635351072578342266883535944185761122346928113964661686781536965582081957178527656238801628076756368339342223607435456551271477968376227649007222941548210914862955753972376384442194440789263895676888135144062361822029021261657056858848359241558235238967684620580598975218796164253042564095216625400867604163020869630456100102915481443610309650358380225662995269950918841556396430166047179444670069905813750029375736012821315298039826193627849845462079557663262906317415962424330833066395276355188274046209483458594633157137345542268975977249671516279400565375350486801343325175221222880463186433173861904348889786437241963131138029015362969005448550268294090651567009620594713166207044823695438899365930422141632156879455971089572080079006776786139567988733363412613372635049367631954425948337420241181280612894023930165898748010460947847352029293120742881115068615725651378381520890800441193481892015855354649619286744219599030984431888973786764345655951472970348461283489162420570528169232735612498207461542200649888459548462014218463956945515246571237818611436063631201565248922027296403020920929604226072693332640320159850477009275028232136066112823569364683570523104409782705238236273608683953517699590511944415590161515453714701242090751940788010272949776773436900284081224781560322793923715112897108791670061038057952446236436431965255436392873302024939526790340888192803585959719945326508515697014455330648124895274410896295171427650951113673534714783409908227946334835991082373098020795899283628837690533846948674410990490224392913020909046858225104858484978925384882074279410461212456845545628229900269484162239307170798407367927735934780037128241608301976764445888745227335128665116629189890336762792394426487703647175870763111826808232252807423210610830349321374730092548005557261364407440895916958434627805727729438973711724940863265184149584722608575809276313326248262644910874400005715246379137702005482058965231685794605382136415794077905844341991775929357266472770695893123872242314409668306293028662583974524907704342750403072006616161645960899115644237562340785149289928073295191744426065013560010403883829496737197473825269462817674269032200157044763279626182158199857738641011917112907392975355905106535398353914328348796377393284728144477065673201639233505740375221736813578797105605270231209871070785754562570053442975607187875714300274351779083223160404295443848696749773917144355725256861247717419523657833290247280352143329863108499701445640214488095436652663193550521860440542152101725607516048922125769178529647511384893285641825685953320900470015733246688488362692176420908478340164266408295144622456482040706027703544231263171160926742772484056882640533099771010430433124625304079467898690287784549828847317407115720333117973349971027275067153959683895888347779907912831909783978297813331580194698640391582185896304799830205386168316071517546072402443350447684204362771471388236886132413649156176801740266307452437045913061410524280230074047672475600671193315821352562427529321198230427766699860830059333536038726622383161352821187642119234090341269505815084752144730289910532985170724946871389892176466359018354439307341594869456162888693555693748819576495247738646069601720271250520237655636840728453334962839956958766535081647199801360799280166521363615820178276933361413906770170338282222106012631413652885386246591818476322660104581249577984154515773511316004838462175347446524116248410453992529294040570759793713094168634279215054856110957192268371587117580359155185152477379347408845920275779436267270928810777467981463585335232907632553303044543292344187905037237054369575957475564177856046763847444544394152746739292999611892891352447180274069841135325414593707967498958831152119228873702107849853997316072256242041604813929063685809720360368317863255389721991032074111977302320778472874605753145361290033218027709272692454244546177620801909724925074214016932396236466574068602428026763188069545595081698551410589633921277909824574279839543130404427023450855591374494371567042735591968914325872785358650327775220452805496410271150527152509873728163249207455668940532782406846428906825169347165215713826281818309198661698641126124858718089433459951494026198285676971484671592739546284784057280369943121276925353352512559642039649296835102209358748519324248429721169593588769702106406042892031429836192401339311986060346539576911736755416827095990797758801679607394693299422692045278368160722287710595686985828855796841288824243596677260330898732576414701261594087839281789880302348637489033089860568212617812777735788312806832277708162965405465859575724710070840943656570796000477571405459089002575011341013209520305077727918394682124041443233100265383054171029440549562884951166280508028244244711379596660260142731154271388092471638565081361415351349681592225760325874744087227241586340419093779152040438191175996002847443492133736983164179304260680266950924939230198893885821125718332673016297447954214052106589903428155855369116727246475728106438342288543683723636313340669029271703628246012735428486010361199697337226567687440297979879465164885018820504329197748819488425189072498713309362367396855961716226869331723630759386106980685565526249951709641095591890288428381688663686612529315145617467087889288745607156675635096104149297720330177517769165993460796493754265540587686472916940188850963046925411596712238958552233208360768127063432923790023729750898534966455447043065549879424654884769192478243938263959642426264621498087498563312427500501375894759043511867835012758350119912948703605053820581057328777405386357894616688946272371282772983974172244841859405765299297240610908189235375122315587705356176318147400110300289287076262633092756581265481449614840689373555694351011900255582653940578155574175514239102334671585500440724662379536534741052513107751857804892503962269649397336651945313095865878038127574629298157383658968120653960641920404873743916260558371111030159091524251953965911087201816018648534701292213389060468662166068625502563211120552423992429742608736978420742180671069431234969548451165139554857467067507976591858214954996375943542691371765757212415578693755969281901573210164139605478166383158258112742710966274420634813049372659872169521164330948437071680500025518531027072799155088859120578053829029686783613479446883901322773533859287276373980648911984752532911610683581526012564803733739051890168782795009879189179144381992911664112432760087720347667199174774749638240450374497216899543695682854307826508220628031058999483063451881079775303806902238445507965190401423660937179712204989389728668744390095037735304225038060392929673843106927884116232700740731042857112697166130736665691890435813508114838975178309389494636751524471418439814989195810143051378342385238772600597649867627939755361130311676561261477693760529691659810255886093117806512842174706875956746195980676255027948263510746762181564211742417439661287917720573254879680228512372793633419015351285308297627009916127943336125770686282531729973851114095024576702387268690780342940004890849717297052272176159614797041319719023876307607224617347167608017613197006461127432442053502177230534048399201957266668655519264914916052170607201895612354896436988524679723510558524740258433717687137260627761356965049734958112390664145469053445065622898593286921695723721653014650498646795905519902440544067399240465394282221911526086988411070221614547013580317150397207593041123579690160931930212122541530154292958173209917178345583618280525708561150590252504044156395584668805753196002844553620521057730722132176472321525679245457682199029599877185220459170410794116958376071267016008735391628559651552591925368086205991066239950927300632251170413873338334013132759145317637741317731910448986495950988201759902683928038955953795672042979872792935496121342686287291022915810240995428412502570037619968393690162606368857815675505396538902478367071648991977437994052633429812901548890149809302065792011144965929791396555136838092996504112697637904238812162722416393105282849984492554876008734381617102750350672712148186304749391334940249990032821723681344771479572697608026982539835498205968437570410195234393039912128345390047096496960170796679344121074529447968212094921091037047905502315605183930731093513065227886923603277280718636851321303895009640203946581117622092922224709299981261291677688060136723412136493288361702474104213913248801669410548936725820127563072521793081036867538004016622799907422346498224501430588817150314565198335964014807435106815230086520296659293328872127435085999722879767060599935319193199364060455882270681105973354235566201260622931420808304974591837405741384921819435605022255750005386056891116221406125952645774853876900826609604179389076021011986920939456570997835180810788016170758337170660718420841736288951802607905312341679136352478627805555238028928400935149572162926042397902538597305331369185604228112878180663529336026735294851123986918520882220190403746531103942060428837017682735797906444394576198377328267041952990518425989545328603822462073570504572804536627004582077336658095228068280117408262555111641268527314984086429861714437827187492541579993098455498329868175091145728687185414736040149889461746621995388358237539634917123485244482959700849534821798330966984545909274163702712775099516881363224476072068133375641501607486936936891363279977986510951180042350374753577244155652631115139835147336127767654968437082275295494731817789727211598161267717452932337792235887176697429727338450791130618179845552210869375734130386212028566601308211563856033551833626167865641708075799861734295848764201663848065573234614528993680624017604405766811587390248544816382428856616053784627783021357630287968241504655464526013533189758041401772308344400952508483697004162675941650694716672110820720154343325295533779558347913700425385363481459240766795595385765522717548126810151593568554259737062732988465818960099640126770152248766317054623446583940409338972321390357043329155124145556484560271277020132872553064746060266755638123723144174611180597838613508438023970846173213169403692778140096971775243802630206203665165969277644497592084709909600859500655399487474143093428689611527559404663415463287534651963023164028444498658772811837561860456761038752954943078051821795807937193890840811121909534762040375557279459955497433540236269258069096418521696629868913354140996601576492529315180881451133188747028871611042638803060205937903760426271043276224708366970785770839865445507284201461754790301370499825921403893033274053735354400972855338025408342545976495948811298709397280024176249899789927226337976126757570956972015101360109847109876763908021719974123350513410821493259783376950586110868199656692082096243926687979227448012428831525871917201226630588335756599900816972642452154477331460065169003844648026759218430871053006521141731526330399857208744577851551958207467238141402466097276591358719835498004841793220307455330575861840223844553169796500419117179918352965402807223411358752836676748916493653958506857074453742463087744866655968196533605378245532073553530970919691752561852192471851274878137849796909151074922146267793710878316645317577256943302772528061468988769060862599987308200565912254478986362681859251939409189141885833735429582514492096848147377722990288665384060809400323930960456048836296434358336896504016725840020964633959013350962652397944890195777229982329879419657939812629153000245205266767596427226787008500522657826496421597190409356040459528235566861377244867562539645511252020812026080775508088407553805356624486189929342907289367863826770677613979379610074738702182397240941795982636596919000601935180019127453315224480042326428029235894690849907644351935011457777560178970897018855337641900637311978249508075184206728986619606133104675594429199668456735304057579493151190346133907821340225296968773992636269364475040378565058779974208313733452753529774851666073807345154719469167950206001568448596341796600354436841187223185526791356434196652966156381775321742445752973511440972735194825897563717794816907869853882109829436852320083151510912556566909523211804263886541474740970616880407368824211529313692077160305085777262147240236694736990028686090896161526073138309923436812079791723940678254147552345523063754515232446930291396026849356405396380611122913487792767442341018490026132534812277106120663925628929963427410712658828735773742149626131525656575668656452970578286390826708940929684097845302355090969053557986580252405529417550001729120223589651064340979352596241811113302230857295282863314558934437075661360927912720843503451487865560242921689050418510247692543341269783697911585850625268122643802154921808223182152732839452618063840129149059039072795603494739136566860924840249618791782597266579093955998715715253546432152467119177729058469389893615661046980193355524281132041280301981390871744322528527370912096038678858380168211199621585541846298508046966905549747056764277361198125349607702231042141551481174660677041909822021338077562719882541551656166467817455711291140709686374838747378496209085541003345265676805390786590207539588121367060333952858329881407788605723726485445449413079667837952442724242938069342169642795653060568806382427235462309725097028774124004938774816065937678511960996354008270806042115844661313090524086355845882645659304898217955429425154467142669147279997258353634042142777025632808660807877240787102652287393511920768213836093516530000113138647999492097816135395276741675216927730927241213816425137944692317437712290728330734700095962438677395395665229599597764318519988226902267819334588595712163489133715637318571349096852511658018976246003632697847617787772501981064939331988052601854903284615589772233753277997445478304737317556854895966401547798109409051762685740879547613280474869331149977328159877061650158764110299746607195362569813115278815798182200661436804035395098446584205794258365829317996710143225499908736820403473328132067262982747168917937131900559030419311115927359246901788962771145400151361106329004551160343812390599330859858510961650007350446893393479746401867882096936447868410830228449454314606506478731401218979663531397266033274817293032005954085381944128675294440166549243625515563754155191335434279855646253752184508559015427830178228697599968364107930973205862867572363338566529951358115854142892931541556835353066567210720017983658118901225950018370015171854790274701174340968995573722828140317707185105672060132368902296475953069989987534399661722854307786765593864021488850136917725671101323835458248692843434366699500102511723913073649841356805147882811529128762288814656106313787142852299896671395853791692080019236916384032548740541082370391337955813811868054200636184857816141134664824368761305672828006746017126610138095691287128886532897078555316954292311117341082068661228699361085620580586989621817126898614321163366890747141998985284387180782120223003321229708282529690758942480469683986533322469537853103217200853441593531243339756324347937651562659667374185316195133588214505610144082828278277148340873404475204432111727910490373597998271693770190895061681044222030174922167582344126582984085327290976256061318941780521642753247477127479711521642170127055033392420791334441337979389859114041990726948311555873809408415185817043352088539396397315629735985850561330879305794974470192231400089381806691367974243275386352657226700322375836575883624051260726836145995254296288364378008827120339272018561140239901277505999341130028970933580938164659106278112711981949022173475256944414316655939047045979227975907271354278393645905555234846687709750822545603493244240336233698891533316368042516922101189209385791921325005087672751300806706518010107802323962415009017921884078881954292746887820995338685101389736986293633042392199354038037663041826126129142281457248831104911168235024582158032058121689079135991938684530125471407604425831293834428245025587188063393406279055439626594302385454421449567056448726043404358342908004458220436563753878946920010865185109557086702663661019419964596196647195427037047087817376652629362747578974493503235225678207374792702112486927649550340999092203440242363207273829697876937329645553501063479606077860673108152489706749462894904429657629093842892194009361039657652058082112980120383925580117361211374157019473723187420712048802806711095438110040745223339072997006748445026502114060465857534082801942459495944027176989792365055416926459616637078531594493991730462498640110284979056233704805915160050301377318092898242318904195949021083030600162057116586683106214396616973982767523812602750869528549393095166667458867606761696472644958789614718935034054624003357498305334901951452632650710332270155581857047238482681841857148654097981133406160527886853963384755787946811791373587126144957974147119404583232807720380768354730160685196046657264763846264507579733377491956324978847176533104308490726606807722049812410497459790390156604952752962731948347391783623202666790454064704570841996491170167127955015349765632727062756704910573547295438008846556273821442246310088450441291061309115636282080716104308673312753424953046018347930298056145131840186674605499710183285562903407692331379900465517955197214375609590246123959357655063165168645627744356168171993757232476266348592014705232381942469780854248368031011548566603573986776300958442609542766528841019475951424527323466694741033752071953134159323532566434295961452178482154740441442251414882153490420257206176421525626107100119359415363209841118294892941250127048312546619296435799983823032451759328510368291779834765236510432790993781032874420309615491093967361158120096586359775123534417106855017595453788214207966110624822549766012690810825914670057370786595751594589056658543563019535522283187262717196280429368991652457977072675398701086660300007682580542917138617303645544539525190921858042425527978448797525845745504212544928257953985898493330579041809480316609309755604426741072440305553314801234517404074308728042762354485612231362359091899241584959824509524456607765405413765501312105360696753635531157351504325611791771187379416251552713494773194525183670833120382510882560369580810715139264721755281752771334811931768378637918832342914103341253678815607092030061153301024918208978925155731485697806861920984868859001077256729366066998221583556917021626997820622171863274856991815903466494617610106761633863529840085017197181078763288098303519361687604033760605167051268788416980629394720373559131288131722360686334818972292099266629320496122179940483328104947100976538861081271259669947346197911338387645687660029195583100779556554560422186379977133606429225542457460094417401854052060596269444937855719740252568753082078913859008203434028172180809847866955089253117643480956557055912039672916827351598504375462149223847450208224297613364319091930424526178838407989287243791405924127349950903987203453960193158869564822678914518480988356975801171542125152000972150629153123229096078101562637516560107227408246986779992772933345769218521549105339619687423793100437761222167664087658528562961021450108940162945962306209247129300221126858150344948795185073184690095191904233806724383922812499066254404252378961238158039863059900884032522995801724462303197379872729614225756198434057030392492417170852956614659176779929806492205218755828191105121005256197118980944398236223423904054495693022646761562164819511993979707697464589027435584279523196459334577999650914693190414367756812007885139030069759229462857332355849574717204632610989374177755660982802728586342070683739335949298405639577734905488111049576528116020912098154152129457147440195936776195817365554431517537985787664958476619872392051604991580113291643917251598822529884499806529861174185392503643718951023960398712409599961012503586665474771901626008755388701957206279297931472165120957775646812946584238827189199551465575557237852971745459779577210772640461802852796523892695856408883751240110230143670868278010679685938885198517143205881803861318677783842525302969127366608151541456369500262592124246265165306004908241716933531310253221035518997270465409417706818941708500141688238149191897194021445968368761313871873122501115749770833491604672977008533532516626471677004688790931179879646841435615042359084762622786260209348128079832129542074703627771434619515041034709719065187386442528635196459761505186902260769921530822542892917328763765489750960458726447860533447743550278715605662923057981738938339180876461183754210797668882451028984519936976998545832340896227742858674744256410001349390499959058059405358714176097048685549057689334815806356530441056010527278593892073323434732155060080993370807521164316558981738965593331824909209497815749495265524447331465478634612390403433939315624626271337591099729946297477181134353273105477453307793398278844306465338548474263117780901685730466527769709719682320280854032288989830700830414676382607850387848766026550936327919241938863998540914154200715957157625562333403790710840064576178552138957832300703106132983208970940263418342887265137822560904817842109406012976000712680618871447961045152393466165602550195892969282244812359837215919583296633991399863555474009990876596388382788256968466514103709166800736237178199750435007173748595378619762063988291832577075549280835158726296897618263258346594391558415465614854675820017018323496174599134546731853262110989493691942791414284352834860526009802926216937304205431416984545394333893912120820547753328076203433631944246468257041091521868320085957621586914288481575203648173557536687439638249227205333715019707541587478873646401654505082093072908305729545925649650196993064862487858293169959591053984774546294567196119220813876495815469018076102918058950246992884332549884746695022882499772333838701361365379599237739919967526066429972925397598476830197340866750068993146427941068033937392025716008830084070827187002372604674077518779956942531542390409033098261316803354374298535304856025561533126169450685373523246859315576280343854748339436569235571998874233934457556029050771287962508043027182678486866102023738463009646118628046309499037579725023070641284502285171478438396458708600826398607789166325007549014469871622954042578117452254879831947923295774183870217632049596188690787521206602138771640000789021094047408164808614028853605566344317001677515791417703837323512035677429383230183034056384748485723110283631551764636393385984519563122574459209311930575518660836618736609531235357498572168290522370767167537337879581975999611691138933786429416003787586692721012445483085670357151528853547674877228513502445674286209729993942436135565767609316370795893742992217204891472373426321111333625903440636313253384707060193312147781843956790301529007941637871695625727664750785057202461170590170543676044715103278333885921246520336140098533802325750157260440145662546470443032883798810425203453857190659932421618634425732356637530341430363359798425261686318253972994217749531480037788118641140974434613983840305959368693037081854962004996327345497444831167318268354993081603048657182524459156661090732004748756587868454507297355716771284707827498253418770425423217490373071187005912711677730502835849377743367836739040700931073252754676769594250406445200569056750719032626557560023933494554716624711132685733817628969756871229227197925526675758121794046478943543120283759777511858642498685475311106152069547353147219068725937579113823553716541969261720212490251726864429119748393614285916755844831053840018534242560630834456379956543565177645627642352227953631545596813010752174229294557054665917266409683999830512679763315132179785929914186015758074643024055003129038828214132774218667689920635675202099294965209861161451626789628207995094754937657583806605567055413500837389384899069154546403243778131718921414564606310256512652437157353640555152418502404141814172334040688511974299779122682935338409707289402078854065762409532972366207463447129169799504425973258614929228146154292592649855342474377032273308246575696601012904644005957099520212901193198551841320643888239310101936048411070730497681813914065820946688041798804770373243483849057725545033210292022340725495156743332815361298524729683344415712020236280577924990904066878408851702972371331419674082572789993794319544965392116169286691290132908642548018318514422090404808985442599797145962967409948809621156814194198461874390342445181751708563862732209048746616894809516915549561065683640321479826581274139270747847076657731014874319376892659336259749506995516591982860600183378289572408659440260843245352843887139489854280953385588866194464133283944534988322482282699698513408095876962930944730189106778627286536095350338962332069449664335287476037481930392072167955377589617875712622270441034559735140786414550374597844572106655250912734430386527683214831347456921817881474819070304237335076756489797302999890821068401777186683460594388269746860749962034868466933491355274422658919040480761661650610892401679194047551134240699088171531918356060222508753561007728977147329890881005241203994158911077309120197575578599878454856465883244201022877535357121313512387888472963092428133847036653222884669721911951637884373025422212591879484519088236381067852480206055996043978975236047406832636016890376613669258284165473437709966097978914737963744136137350313501524990908005453899801213356614608462941717679911743909423666324801449601936868257728895723563148844879780245757838249919944527029429214694103510227828009638133797019715616296275696495138643118517216475129459654513334684411532213495272723847859404897012365286727889308999084354350726181228942007838867705214653621709715312682706979560212763611147304418461802765401203557585255445519587246767012233176402430876626332775658220392190804151956326547628397185222334469628034088194106002951815883456824837234446904537684217095058541645556389335752182797868909467727096156770316036356175757661115110982530402244253745465102498580324866857786316816205494312597392934216206522803489065915062314351319008857150239315038216340031215470706438206287484516445626212944034302417581091750056362446644868948791077203894817612441333036552916365622387450551934417012399708848613970876818225662590584704580277355438560830879991824598321946493226760805566105054568128311890695629886331555206006030385286443057814752988430024185355047685061058075205650875836378457829680578567963581362250397679749138183379073182413715166152083163438146698761971309277899371303517561759832522536684430773606586354645807651041409287528307967318273867346528491194025487192871944049723899728871989413107648708997836778851256244182175786309337783625048973818365262339606293353210106832217732407223217052176726599162683805903664404362163368509107483064614270915825501474407687056983630567549912828313793765244180235614459898486685082375300970157671081075599882122500741357467383164558040567148975173854809311518153369419087295740514561303824402421887484058390202481918234758820035992471455826087062682019533629471298971378287431482649527549303305765350353246245636547695868521474956389523970393143900220023301555453690185455615582959931132764867587788945216372414099126720641262845036239514143612196302066062934696176458257275228267609242040017139727171326181510327193655935541924085674128709631105011142829685895072403327574878357718195235961349774137308584591745695508015650378287274403107955318179813182069215020490895357544161047185785769162251804501732783436633228803534405490093855497009458824208603006543060111156457553977253420699629078619126100145722899481080670486972734992961547416287251920999901530476830265973304466970153021194792592799658777489930399043517086073786523824858263159232086891862458299351787094941217276952214334616296389303052970269041949626438651372596681068652931915830756777669092753222888528351723270370207426122561791419161078563599136928407656102447802758598146087866393567542306263420289334432274480813545603902134718103126781151688710128451616695189785102796516153600930537993809899540220545971915112683278126182042311381138614774017513972765445180018960476746020645973351329239316642909192975663368218268388694587741423095157400626622032579421661672568131170380966922500918568527219242572216432680887059501612342019979818964663281668319835337569984307846977745646109288445880420284998542440430342198841251758579294065440117618634820492499818602171949497160384532516217184450343470061895539308228865388439741173209063970191571093702869866686773059595331925492836809046543860475525303285936930238498364137301122698827929202859257377072083332995560968385342663444891520998246659030842148284933665340944477803224590798482897442027638857885990847742688107895784845769640530410945598594740964790980453311131642236177489570861156333250051810097172221740182397531821225804751545180069227481244576507136670529744991406102452948119071266965693778295397101722536540044393292817568536768057732863635803538320996063993270545209878833183435374999886560166348268640900497933047496373766099347231830222175274393625196672510489032989778186913378628190031458722545602214668313472357357227109183608623627268240630156470373694135354209480316819367013498520125541320833714622349882326532554576001648979107442035739946010900810799537043541800384129622655645108331026625716054448954839241812747512215011298139815625830908020528637739818409335868742148675912797038746322305072512201014481721652412757498005538143568088538171346273214166010487514035245258339230817619177710425672023969474519647458387466375990381352007096241015808117319041391306850103343965922575822406643763501850585925301810561714832647269712267639347259011583869841819470873442622942021196481719200732632585522003694479164983551552604723359588931362291314206462149489177600751237312685253330888003275320718830417092541679537464781487733640632380364811989838442657421024886516549526478346691038511429090294841837894397821594457399805696126903426278752841285989025774175419543910653055720611926730396112107255538793050720392125089430147579406185398003681838371139149745544633357485897795749673320995194261831794738015906580702771831559968943210251192179664978439089414600524651606596002304485532334218700656810009858757651698718606480704341663933509874529742568609586666592991425710893453468246403515670707838472408542078917450110569814724243955514464877806093088420716769657305797314776031639670971587121841111585787242942723185384111927569238815026165321868577486393196780886204892321669534215115631471384065635311937042945403202012414296916073272581674782333127892597275305556135111537580110595675155812281655822234641612774455838297686144548081809237131425924451862849796930782039379778272953039119931410963209376467300924507363360581088567026746335527419740931711126163858376134153642071042550709580578508429933071385217191141182887896633387292847235706647339708035881245084811798892879741755136417817251091118170931419480262423338997574385859235691034281684720415510232397171691778648368275188687560435139009422312487704827901476403206988801017605479287495402223301856562442110845355616977951771297681045074203625809690769621808001668087609115801672915963174867174977827485793015436772773061888077344371407448773772032323156852409333470062736956299926874883159732934201326347647912158848862652080271625896508100098132794314568966569399360137812523147309740490101035739295160274294640699953692333543329311667829910657755539245099617517209446749374032439872598631792832875881880552605171059357207669682564165785009296448216670368534301196848963901624069504481820145091422846641566158187440695181218277841950021803800515274222254624997918034895704685860272175685513209304990913656886088881497031395103657967357233988775604429336243440603703604349509333828155908129878255323873588548142095094643323691273967450624995716220927415606191815691637224471113185180289998571570506343734467266964192619055977757696063206988466194906095400631473606895141123282758182191108181561873669172850636712935726408931784250139423936200964592518054326567816134992116909965006044069783816027929615391733091761321571764675237130806761209764596752490192557822244650622001555976424875605269487493850379007117590784693072547224261964530961252006215522363778588903661859224110746639249688860167704995075751287222801442897075664271573437931575782032301218289688317727724952574353739010814107459142225646655980728315755784264480711224542070771447443224121934891484078085249345723758220286086930889110438660548219590095085215821521488219695227972824036933484463647859324292923119073235603588791061803289350579921996430051730087803334976683957280435298882779289874293474574198976139715135842741044763362850205191422515201321179176661783976305698438154788628653297341951044440837952194754135291567925577884652673694614017183562382501198505261943026530513567694119514172665228551360328817442470994213648043165251786178014555995258078097544228935107911764080702575647030551262630256921801705383699231381193406742555146048764429581698147861420294020546202479095192901778628805855575092407536569221178952707713243315959345337434837192381755391229100610950714376763966643087014613769406749713182088415325848046498243518809354185999859830681719369734205163936098234300416159977383625249290408837621296185623356702274271715160215835523861978235488235037492129754421710582590927318634256381141110633701594787293649500404967112479471511731960773799191446229524435205950168142137795374191310300287463188239601393283149936338166622654712132669468597900240947668092165433107367294341370554962519245712892031605493137018777394352184120600531082613825482438612670370512718014795378440080606432419606410759007702263086074164071173546374527540386126865041872907534179419019893177370619492476406291488832519765078362380722395181443144554765095792525321865402813158180302095136354779887807613707886399200440468836617357950589728679956126472050528909409625274552476898992626469447436535879313029466052935177512753374627480380450997053884951434010953493433908008994875725978507923022267795050820655860575917451026374658610803721806108780066412796367404549358322342477826308554485249851125673553149603116586826098680606470831638789380515021036158013256965536510448801425945732699999316014468179602525441212468091957005763198980307333370693892842824790260208324906541799583942388330912228916462078351171679298860966629647483082821360484860790803065468506330316489895852153240636372363163509187014451742304322342010834378474747963434132153682112590598472517516381621586870916501332292555713124203183154875251893365255153598455141114662863623463753570114985538713861816712192074996589982149389140384170397204297413568321503203760937331643621735811749196246868834421793202734917392131989832818722586616548638416975980870516087814970042041116596979385706129999863042281123210333606521982324761999491402781408909780002102684940746433112389873554051475158485443453077268874552258151836634121625037182137297215066778151189686150133715326398345469397966825767636005159218018284401648588282553888060389320279025017034452769442505553359299528794660841005853646463013710282682918677429555627876540192667143203382253476260389997002439064193633066899579159498696209435854958267078468969453415584916299699752304643155300070640527844927882866332114476885622952337887353456345773015271100492773767979751523186701257344645562129187461876777324280527503556664086098156327443592257558025175542650028119254140984749865727008423692231927182204347846370994345053830795904299453379040345136045751755696950366682059570975551937947112436558750675415202762649274535809141351231398801191358777999622833895098225478483194907154159320940200015684416050060047060040379956222791838283858219337585044489717069932313789495049090264548610291294273486837910320533051200759913422018339736226719000853080297003529171407462183783087760072985073784853129478908788551955424169116076551061766580632896108604440745755187057317515882295099959811917496031559192800883093684195787075407292619367974453254349875843236419394790598321598748072550555489144047009345738317035724883344280647176059668856105413810339080959565237561360314934436760856201557422273477301104104218176419661106214381269178439990916290759983133930612661731075739043262792614023705656080201778259056233420543527976894261094458742084823443959132720213740809633371023174892627983806133112373999502820449908165073881401078245710451436891136441834460485834959443611887296706663417144467373175987237689953470138124665549933218128982867601467158953218320383947390822053232966393210556459067376846636897980657693054151639022696146190112258887861596282575801039504841831091951868963359532873055996670419459507902505764231091248590068785481149615885010994959139556172973641973333219407481035718319969143485252284338898618138076976700627423542260207776475617984939213141767741008983185724327975347345957752688966004847215276420707814446490121535232063815283171518607906641062462672441019071016575765177770398395626346128558541442046032030291362131778658714010711912615580116084814368151484832136631419538080449847144560017123238323935928736754527944792436025371183492923394709928418475998713690776372591525107285709031828542680712557326041006012855943361399080958074367248466950851558749291497849996400168115523305049827804455868263637562900033077962742176714223411672399772678595232222848828900585343118835380536215316033780573229681694095264057627398648980673463507724195259241039702483180263805755038351883221815177996985817457168682367159248033973531723106854521214550273964610026358744710624509958910759281827979615114520893424150695854780803109319634949049145456937048557329809743804209334557218462088499677378576413264984148490427154729350782846034972438551981779965424869060575526708635424554577898435475770171337283714838689550040629973540838925569600382608509311657609880590042863793827532652058908435401909614023436571787678043853708011219843394114641879826277604246121811757672409880597335412461778643936474626426293264504794695529629354044397412141008356389804768613781722299447049710599378993421793544944080483739371992812701214430362065398514589227325377779375517570567111471949844008834976880609608777373475175576183205598353966894381602999540205051081038994698584765508643694989931923784018892352850739520728054861324663943124708252464737128529142368775064562703426173554415283192504741927705961825143736902747201238405246268426181708426339462864731610225030405542821951331576772861121496397082486850340927798971483897816839923561728009850713095282783604994359393926047264383745788007848480392344600467394441093480544010425527826467780856005111842376882105813572946319368531461407866053529092593935294719430624544126091186249443529113841195454403927335186591803722388415025675182599361739104937387964558145527839432125506522417663401473871841376369054553288563551885936238394745605988781885125179416784493482905343435200425441676073056260246009453223763559401430803624712979634788295158652361720411349865564739631762595198059021212868391462356523278262117105724915105232188056103685326999090193252001957144996302781018256206677359235702893099835679356572369826224229302408438533615614076151243341199666595791507048313026502059468987149185865747488303455316364028485114459988603773970797345417220021705539152769345022599923745393583830214085098647378432840735188184362201715880546102455214726516809275272498628747649274129662470209506268066545778689039520913260849578556237896182343713918848413035283727477040966631911314086050874357461800597471912223314786422262045470015968100738955180836981024500508765677487796955558999668663372271727013354880596045907632942524819688288716023314047088864344865984699970535130609545057905720057373591364309561099154234310952479898091010437712700778113196649628374830158054562162932827902247020241645474707948501307401425822621052914824162626174725023020620120701439826944916390166379957063852220176163098302842882108832988412252613661975128402796494126883843609744252282511293587823972471261207369565303895720235336817553686446242434850614938456143227550041950090948927991456404830241599362950858890849663318820800778256407877870378176376708510737878381444099079593484720226187352964802563645801533023864166742224302323374456092155341394384175107164014409139221211458172760255214509223614339993605448917278730208801524259801253997782919278979371274147016427922607627512132141067386210325336582229342826492037106508353632531829277869472921664440464151661965593189468907365848579472829889384391450620141591713075165378669781350454560889281302986709490821795288068048724311990231795353385405164913804693365118562776559620909664118370096009458889022869791836735063287954140559256833451523131488588123328504224155805561772994543082591739608398487552143212477661020272058380670130750597970390177573763250347606663477918089156496027316371203488989138064186050273450052587457391162173058997459400351484500172969356955020036045811557556480328991509318149986728725244792827785111379060732328537014350651051911367767081805124494601785107204386369879770436382254062477331569243624332184791582404718989862641215617912389124640683758612656279936428675635091389718496815780970768466425335838570275284285060783966936776503597298668761962662116174695900740584956990664937223878799501043862719711452367277949153429688539305448820110933885271355530377559660712759336262180026934242949932072011999030696190274616992716558047684155466216302230841985328601508083938313075947514229358028467425773317402732749936074334972886576994667901847745850100516211063267780061374891714232050053607748499547751849903692305018587282263233770132379223724455714184683101787435755153407790243482965852301615672721197665405536761412432295085602142160568747253457075109278926032531650682776471314526569779876602780269815414416663726185497064284965610404411495396186344043935313167861080168497877869137971639260506254159446662684831110686244571718936880446373066216438328876448758440687638959212102448148183911308923468825929483897399880054031486477238414436024923802813708383561561575800998008588662740989299130163805745485260071564132640717166677074492132987488798509867554568107175945159275002255024783896377250042572089844196772793344835301942704905231813680838522582146728389454412352348558931691202105985364471133185696424629517822711899403181081665333188142522098640098764301514287798188755973503863081654614155977982265598457880985130479969349452113622612524403173400325892471755166098999223778866989103343721063702778171815378730493276098189975501444551242422601997092977037974759305440582626494261074019953244143320578441611340570731380676755335948208021285442863011752459113836413458042686622510280394246898370201936014370732785901720113186061365742577380986029050069397540738243558625164018449738966719710949410387838480554284582993969337286937579510726815209370676561428388917596465763986104502938890634274433926345174775988151836678011421818826624156305259002350612521258619227059640264349433820359792206496815829982446828089895505987599301655912670304547922979831290644083274956385556228237848309417227175831138534349584019424204301449615894094207112065067572496152947124866662663330492386751234745179047968491966374156767957158300845791669507622043268763634849267887713575530065838422965576309847089257891761240513683023723700019473570910752049654842689448987120024416915066338537982263673719757010701781221627988243835402744230824965839405812363817284715562056138314464288615576672179234135493211578659479776159144171220934109573814584708114890129801565935173686598396799033241517159409130058199354365940641971632179891050968288533372554967792993047189922780982593173758295377137257650466915557915490497655540217087838456861915721069997581354220319993522766700448886294386374832914250540697281991221585941906623235191542743785240251551978514850130127192334910759340747639990513499880656393517597814609200989146777751857204850463615153052585459237499054367065962123840739811299460471774357014763384940731088776976478293182447924940089560053669530793810813496774088531405551168052817539769263579510941674408905355490400745269923377496624425591312601276341379538236031828491420338020350348656464053492466020117513410276864866717345861669816953657078995343420921315015651724486214223673134557657835983828769468619476787272262870742513923293926458117089204091393012650847161699845625698445051439268717452790845458916948462637253163391815110422315860623967598983465380243594264186704607926257910199222898349027368039754643262532351651713912146503498775672981538311320199904701301282698490878822617143362245100712222436632783082862131869696775289965991360661241473502119176358730470978817643077380939843801782853901376708928097757427642075081093863749043068126369793423268781338167676046621193824421008388142213891726411473905324697058440339389151816629813703695863983137917580028433516217275134979155793260314225974426267535836619950285827588821537032890537591279536067406089306823316166736834906697838329791612649305894234522643197103837543310050329698856620089728422905770289910907749236244080255554780882456029544577109580919540656267201308136585929974358470086764703273604900665027270593020196405172239532653852829096497007229337466191910476110154327509396463926585719399247959635654428578921519443115422258308561896675670282691404773960485799598172504784091150620122448161018767090486355572414920395051576033429371571603509628865698822601203868560562898151316818474991580231956172809342934207212069974528968901534658856829484245106116998681494534434172544196501007184596512509899610577929749517829823374384049458533168772283334721148926515642683489462541026078959252353334750892005341227752053284652406110069001466051589209748586872228602612439990883061669760697049663999645652346773870715530069871610110988761084784796843395329489079350985526418316021862142648774331175926273918713775032210456482689170831322210084244365249768976777496598684249901761961724716360257836220794427711584134416170028677516754017155368023153957927161211363860783739133937652326530026694284924643866516764020902880908930962476133812843100611603549841555863107894466953227348805839672314260654734158953894743751069049530983797259000435889833556612978799716185154677733885663842623796499463237437902058390417511705246491245558457817229663466108634189026977666347465551682238892765877940808440378337088763426733804780414113041792328962344191773456920609581976056236571347199705398730893864951247986495107516047114740501334238215048255646410252480994139475709704248473936637451562836874968966248383457465157978592821951803729579350133378113802382946116662950278418989550042205060783561594722035331726446113678251533000589222948665269527269361128882402169471044295882568662004922440907408251640862615492949143860824564580883180388310089095348787577726275581772047667010018188287024334380608700543692494017366628227128653714923694684975721496888366654567103453122842178982487642376909885754617464889068846985019473567484796233188885412396309524965156382117364473933368425110188293416617772408387877821888458542492785908205356873872394663013474133117210261783679249243526323026105648614536940836280313489615417111499888319863949017193937248525415728242017512785939412762067236990125210645008355090427535406478651322039944044701313293651109970090114679128375929372283797756836244991123631808064029865042065400911248832772879741268544815496355997830396192670641720518489772292686912477657417936637717063341999588087755319732231883473652546154400356757683827126433212097695659554084173806285695858433903835310211014708680822074573592509271591007318787697414394814775335914082398179669141426081670130310367944541190572417043145962074261560886687342902605344221002106811454183593432774343577601392979161997257450059803246169274267122049190730588244217538832540838767283260474524176157048242973955612949049687376718356688612606978637106844582306392507181040297030734338706201102340453151847877572356855323108201297602557783216149313330337127805382131265499563429007892181399760494886390646056133226581074450317126166454488123429666410478317671210792348081101999930448597839641098802481653159772098309795970785235164256201769840616676674441246849643429175759571470466517498585065221483407876155618638607828658357483780257973035634477560016885233499513577779919627665793677578876454492389674110227795464740812985971475791583775697645111904682162749397616615459184182768961802818507475838775881576935021445084832669240456430579040270739263110134272224123985312053303890172334642446423607155892845134965407190388484829158102179085902271242441877064818408637055497592024784899302337707594981287002531592110383427771229440051786786389093902485924862268450650166368696011071683408876038811999563903968752583714840170874288927187786938264886102173679485722997992596862873848589987789215722796099387567708298933704264500028227446893892347349576379575891147423754825799756904745672919492929096575317047290819985564548297049730821099038821872447995596260321028959231948887983993877257262047390220473270563683430000848321499982204575659812767875257177087460013391106295865913712265018212970424833803916763360233147325731034194180436034607118565516681951707505654891869857229813494316910652851492505189417955313616191612102756691874362389582044110875525123789196041267197339153108815232229707880880066670054997212860277193807164894479531209750985292650665673369844960732903275992796819646681782971604325995037883978290305995084458507784273355274438543501453584755928840236131739223171363171144465836785682155571642754751454092453903952115941941635539008121354137658940015522227926423578225629178758539833725048794957056228455047328160992109022888212086712399980599928369703206283482960801557941715749893865600011430672082720512263912575807726628514390567368526697120444011296937933497678907310066333930152973141709493835242518652334050077097875102565492546561859927977331799659057521132758737308896510687552901171083967549707878438043245902226000974134101943173396499019540468652856175543620038606725354239561866745069729810940626423264681841079392772139734647464944469160297663228488490538104450634200374414595775238638002167499910796785355930013682353627768429857794662448903196167232856041355395930819364666822053936869468608036616005577147061747948699675832445666328682578116935350239779298391920370601894293961307798732880151367363455378440637515618810899253609158754228646140486195357857317064089066648166416350632262667747241452656782274900585775932598602766013790863442354914866844302965236204454155578323049724093620205439167575158868307041885320138490715900284103246588777524554719761999765049091277981840693786261399203780385742653167123720888284991929879934140588070737322022275781140459727393223013237358309557698248395708896047163964237929207345634643310587586100511512779614953891306108510299353800472399496689753808514289068312243849632131986793756932302059885174064304354644709594000822957620349977274801570208864325125443974125993811911148188218409928989503336220758591942076452510198852846721248480921805744533720174888378338004993146170757341265590105597888095611533666068541760265742418230700638299161380505180817705198590815824045324854698728972138381848278672125500061857927349906120248719628163547192332107546513786950406936191061388494745412983267311865502799563378547599310547744670177825886052705622818359463262393777659329314067239884226062357860584622043300735294412373013285500954028107952018364421223325547479177420048613089869295769652142579314492582749037437036812108535299800922340092834920682144078509044922760496476408940655677265707720485208558024961604308023465289409397841523345535608367284449721542958967292357129412919042291278659564313634209439818500323149444376796646381596594898321625676804241932893042390748582292691680210301940134707772202259752215537949015583747722818340186896079571021744898315786772480533549014018049153291108389858625938190930478097609211541153625192341482043795834664157737041814751381196642260584729301852658323560426306122588621875765379707273302802996318216068373707781384518657176831314319270379455509874152177632594815781079160416476845448429668986779200882944263631544610200974285432759314610395539924582846011897878539356116823785010894967665574525459908425167070579097952814657012766640747193504609559606587620709973765522112414347046505276135473060062672201976132944977146359321526706547079884886221252828727791996333941614370068223117061295373821231637255124992083073958763011652121513508852606813627001281363298763067029170352838773142633551068002717410966912432309594481565200391708226754088208369954912073500167779976062643206735328005644207141379050201736548152016264072195561382928534737811265380458910120514376284007456707898932951909078176739275877986768074315094192824951673323132192087007091630038489135103572026632228486331647623421696731710095436638673988211133441190796465284893250783161502157493117371738506331915413055190405864530341350647820490044563628827594945420211645657498982845784152061319730216593455309409143181364654271100616156407735654534880635551219944314912678669416142082865081186499821752069808799897807153604079391994186433217474540867192696953834480269514482251487135156865833551101819985136075913550973443783576157031657187066003460241598687825477346583975848636682939749153437634644160796031036238796946936769249243850113747703548689596093332450905144973288117288595352543096752327165033843360297491172480131653954444659806972766689467102201936302647951291510830624188462403922395213863526597605817867313737647877718706379998238843093182619839786400278394164737882678974157812370291612093034701851403057275124625389036227971450801677483064263150923329150535858320387983645580600524055800336602753844693020969277469379145830451517123820745517530287094780712982836159129241564355789312031683725186825361112218191639847870655067784932097982475179054308236920339793739984457746009543798993893159247550515522853314867668458919894104437994661354635746147496427589121249862839424596840781181630228505394783530974108153029854308281392014682034109426379766988473003323556884614928690915496942824731220096707886483213335950306893375327735219457803187830682552397163469666308256045258065767743732581244494455274503312128359888408283901750216694283696500869834704142776501947883301745673152083907585841881062780317444357679578173988256996312739623069305364688998747688325184648933531899118538965572628964348401746404497448804332208903222686759212562687086079899933013427225279362146866487267598496456897835788536487174431442121787501316095217547399146744727412517773908337440549738552019093356626306512067144562980344146615319764677798566201822502315478180655503804788843564965126796568507987818365779592720993097176953857151516347043732150299176856976893717245355442172671677186822618109591351887888768470674891431519982198966042202263095231498229048003481031734329831606603433561187272604828234927033712777636856715778231512236777003291259482758212189139035258848363073049169463125731435226781445840481567591639707420061914490282638142279059139946015578425722035574180808388070190699920653333914186404144434129901494900696830074738797639465173302404448222061970777491737952776067301520919760100076231177390928873570740328530609680572303241507745585043149602842163609807534582674820465007170574568854561873522396861289572881129890296305679743196339848241312225077718349519799973636457597335269691267302392014113115188920463575436213073083843845836783179363608189711010680285327024935280755403520089323427049620066120844705813253279342887665701052631678171966202350151346763241884560335384279672607792870764153010443545842406953363340841012415110674795048980118256970877082573535382879717477889599324847905759822413035049610814017633849202309772452031122793223707750095757537784696190983757447432631445572175727578226857714214517006609349444521234140580833954868928505882893260362270494486640956496783314653841574270052599541242659786158803555051319250576867751687246859990739866346414155551874174148443493251923808744082491896919625652750736599802952186936764259555022455017323737567227011550833941066636385574242812638077565920737220971836705823175332179017206498301277817250349283720049072247372888047624480589700687934569459127871919453354492907523778514777163585942002463133758418135442884318281053576082398473761488716042270732244711994363416559877681392640910357907603134653620363207135331164443720215314490632288982311540247153135922249513807255898202473812803530821440835032184851058754674941406766336390990535248194213319046921733347502281862382421608612711764704851178087564306789334115880069956375439417617974817110050604283588698309779517735831214700044354079547649179402417524273989414949159506298106823442867713248848029916386931384289759163222047233900179085357999776503441798809486518284303241624262425544185499883580454668405147515440726782124637900293008173205841296399716968978438730742072516465189700092070734385118189979619454002495198939592047682223421827147329948949893641741123781391820184922429534447474122972635237962420267638204936614089703343015897226433245271401007623382747896304368824301455613980955634942765969820239535806014655556815857665804706130913054653544446393156780068219577528424685639535000598700853818126666744242596995688233191381384326219948765635582665028233735874411176328421454274925103745649777824054189330882911910176424800622081795380532565955886008382243921462277527170561648618621430191841743991745200653191260463492782265137421037802747791842477651675212683311613790160120183453570030459716511328058182514805925317100848196526763862203609741650213395307505672329867957506420625883753138365850868397444337047603376213200831094442769747043426840367576434713298164858625388512234882281869470418353155768158633587231053141711126171320648383710850049347348153984351226183901357529196265680057226816551837261129900573675900028220771446961136741037180643347418677213101308191093821926334893807366002163397132582658823119759488322840122307312500166518822194470193098723202446137683668156233298362126788038800528723528465817277724276236840516066533587060313598693990572946946171430141229083255592773521963325675195895146954040585369492644520091594454799709287578288314585910076286631179620037538325584112858353102623754940923981830547205947193631885315144127358879360725311710346752287339420410418309243774686379283806972529359472817612383311057764508849819427934976228875542271619204694738883394834933523563798696322536883366443754553957704831298482749328428496574686277600739101648449883576909076694545776595590510590630084772220228691680820036871356805171750292993377956927302665809850418568992035823017397815960353830840139758172625247801290290131522811498374819691150704283606111940224867392602005403484733716165795116362713830155743644491066873341685237337042174851292886419970574779553136954406661030684616039113577653796134253553348733388421224436708582389227231221420004556000736974130183254944818594924017996768839736109881205095509764328723615105756894867764822014577860499832186308837784690306394815285804060053940456527443645871094616168036355147823523061052423212933534523355909900412456131168769048877091568468876961174319658331083916643669119178310548769675513306640624860031000138947579265949251732639566416238041740959983841021500423496048251148496810588494712707995443585944332780103606557747398318285405416682893033245930244124352599731773633193635911410945398697917426384574105877000396171997078780211090959224911654557386918107054808859348123347880291901912385130277259168702493366889136086398763169003274794679971824623569485432000789186656125089534676042040286057000960210874089912732674468195428590944610932509508906446930858922619724016236027976460045449888678433733977257612843159474633365198747452390008216004638471935066090269630899642190708851322209680968183370902769101613391025412574747731372904105202707594993473164026867375133374552199550550137457152741302002710514758026048433195944641343018933508000575355147078668454129325458672329680208786165184693169188292016210020540991153019242874046398069078143374944329310374840226159882343267658637950636560005395817231921422392577196991061190181480742127182815337545477659238923041331766479220494775017874473856966139263042699483990782696668237144905310004716704862686358369042938301131348766909203609649296730262873920585245431954045513638506456451774296529406582774501656839950839175960147888396458436225449637196694917916057800884317821348223485545124304184341342694301438616481524017042361705931056529825837732219597466514725629467311960172436932275164117574805579251980337499417001640373776221919562220715305453504232245326883113994231770107659989573191061974133484716728126484766039280470511106110135951592269010556527481891591564184424194283166026704074165605923709668684897154879470313741043266703556517184935835578665943325394727191950231274877382720964485936532184238276154987099778045176235791141866892801137118429755292877866608411072409574653564884254256529756246721214081922951722468541510552279475067851950855701444515999959448239063002797844212823683129618883714229352667253507554299626649902620544951823587885728673258005836072466370761662703552661334446993948526560103166250719598304480782866378300456214029618631769234780381142122641189462792036570790246371788896724009305640534517537388502036635441198787436324778057198926247132369872410676375493445706685294329072612345413436201770536365380076200038879305602402036077360525457837744043988552599987424320565018543487893650436324225711280893516272024981593205962163112852229896299046048179892785771880604245033052054781920922821893909079896996396626262559642082703937830981138263895604657651033110141890398534011937749784161959238506403060028103956605540818224305929215759289571623937584496035216732591621730438159110226753973388448015572949362520731963236304381560455608506268329612516845375099934583193983367896575049786504776111410831317265884554358067150792174842794615391857674391465687182059575012851721811482820716006749459092424597135619437359288283133480890498755592938652549793020613447966968763320362838383522119655093528484060855597726030719156975363568717166362491969649451317126194124243054374872581273706453745188084678953263385796372704808738583504523733018638350518350855720902920680776729807245075951644010500770343787781399335713775843732996315255730290370313379742085285524219347691846264454584306101855797153725180654715010873129504021106365879299679626893293203573518228717827299805048523458113743862076471919960289048458674679040772761069795243930953040382306174626993961886105471882818895304747679554346339947258559920927240302366584996134789058020077466896986997879921223109497782898908837567033000604382980623040212523443081616764872555120500267005328765785059244902721379578168164361998578877555904142511722114318430935477738010289611546528849030036299380955455339016088451307659875432860906810170600911012452138481249860636606607802159270156963640303467636120058213215154914298166619422779071489878877675181120051851337270503516082955301486201704702928522577387722884172971193255508019202105989765318298769090021751991044359937701871433080733925241557604803954261619996058508099783468526596302023831588012769270909872434873698983370999095669782733526132220700558317909225148891722556518149205732206198490337091547627128876157598944331036062147124474920193902926273426302548591786727264859122398501666088637037739330693008645321077950056539177491944304636629648885513899864772051137290693522420048439732301864808940973324814952637128794081547529721488171954904638813294806766050793531429260712040209541003293975587015035757933683988790380005765724200009521648232478696709032936808283672513887735978732449598487399841258577060606319826092411429541560736165353608601961429697218356546050949536961091964649356844423375176609966901560828290474479113552262402129501704095014463454441043566600020931079675541453171938033660522535658438238181172971285703511242056315370416116546723372527913144708423972491216381106940786932136585483483864374202823923545193456128083007015710501133482162931952920964878473694863756377920706122045371649412341827009474140534008172593304061041346852785341005553474842454548318337226775423430008193337065825652876813282534512315528410262366627516312023215345681199734302172498722301995470403846365615419739770491295915079052549938815056556230312757682343623685706696173507033453104032063597095396984625914754159932904719176105398075642177355090654775352983211634035920666455120986648030256955987659036905766908266874171794183290005775796235228015730353040281933759737996901328391200915352771938106749870528499813570150665196293525214967932845339498053061266822608270813252669270140235556540426624310241122621382613895357488459736201676648228349404200827822258865765353122876825151869319128481683792514325810608252840313784590403097620663207000873239202296176962829410483918008064126344596006754728211771041003091304634620574676925715435925507991427270101981406511098000589491547098293027055150233843814778693269343419183078440747613123666356257930829868464929005141048371471142673615076249878346501229570500898157550319087069236361818266652588501170150251180537952376934057243792097550231516858986608596520750058164543722650480658913838429402131525858409112664010423705969490529655771357352533424338092839029310670615707393544516101159230746648609684641026752773862987551684424924270534933011572878220133090961118362799137873331413610303181033686096946189765013715456729231662328297184862354555694649965442653147410587395752942649255339403398579344853296265716514547417590344262499999065379260336420945663806247092885149549358623311285046170317808416442337212060548498194788980104255511571267779475091050369410026110322394493475647491091025984011902028234128903741708256497591256753538723021895075577351943582844925008847609537068312664882399400603601183810188567072877473416672276027407371830878396857384511183446052366205608873192803654168255820315125442675740889508686696535141265467145321204268534616242861759905994648158067852383066914662639050565561293892455635988484900870328843714426437985225804762434260776660230684022714318100574283758201389906527887872647539580456434766696124969542620201159940857213011636673285981576727328448896889209322650503550916668918640617334949358920770922706642011767045094721633037470262160339497310221603878329884926253835109593685684830481507670758245626621113978265956866594487557540866803571870360850011651581586679827884373042579838762055905703807474408274091986489826668676535449395030133928229487629410925269455120459648626247200881425087792432075262854220643033278294516165144648919170272150701231833001119590210108858420125763582908256567894946630015887487159861007693128865190227541092058453963283938576620937563112023217214639203323395285903074858712038509828987855118520086703369402768195084514949471116727805055760383926859036602691423849989445669332888985413220772350356402246573869271026099053135393339863039882697558084208712271708554017191010798109615502754795647035218388666389794706081110821683222726625508871588533291135795112194434321179925203167359478868826553920003016752784899265248790717942491986494579793172837437758293025707418583867416682434824486008376983331178694064670418954510113714112440682525824296930473476807453048615217745522908097797004963458515062751537365913755678634212409299257375215706264021106433257803295878430135255611502913942714895121858466201869332521707321664272880816311608730688978570622209684389501490267173659486506427568814351626801807514633786335198707756526571437911268528690114225423083241590678455683012753722321809248269828310656085533053512301652530564553513133962761900369993361563973449028505399630240623460329097543867569581159445517242772716315128385798757580266907535020085377785962190918622669240055866100792160444691126271624786033275661868047689039070126701490532097614666504592127261591034616891257903829385330023605371978286396035096024846761392614770439601352816416404909599248448024050703217627847545361228986128559219802654812885924269482187422975764183903296695884016690387836222411759622612973343672194969953560731045703730163863658280125622284436207218142036807502480247351732783768084124020140932992607404244930982685513810430319318329408278239305698911026216992265856106215908614962683062344174252609716726075527090138881692008148174143158643521023610479532831474350227382085593622452155537705700018246395275834894969939125189056743198791335629861494367702519397018728765134472550866419970753792093298481592833345338717889925981943151315731462280974106101048556390923332449295144695867639362108436809675777241688638388050748071152957945820029565033660638997945092833945487269959133283235525766521064545856718703990463447383237910927431375444767568827648893692580497507738881193221086534721477291870687057756763480109767209138548808633861074040939456189265120646356681114914860939314290888210939506698590976445569590491097933078304559110424371338824917211130201265114220363179225988205297606376378095924841118991229203401961148838636091526527673317321166595154661408959220311884392713153387680716619306013594432264046863709492996644012723607937882626265719054855178332216201325274705223169432880466301843057816260096483988622677108397892429562463381704392337776019852720776484622625332333734307830288519686058343253032582746368090539328033069517790506658205721762877537467104355186546717434014882882802052577658517525256412319809791779746518397529924205838822577142315404743916367262237952590703323453664942928744213222578217915295012972268206272184684138946418091781494498390673475882963891506346734341789610755026970665737528173982095596717934744374886807102970781604072672867948509531230550469095741468086335723878450467422808730029368247310965713894674424375718386528148117119626129352504218943653974022032274855647003474937916105676312233633509573367380514910822719140280191094955738942208314576681548988563676765410364282244071995185433850096677829682729580923119278136459840029107759655912043353909520577750350945385906705119589372984329067797137595349418602414359835149880129013306692148230601535337701553260428893133282576263017014361012252385804299700289408941260947277036679479243859988631261715152274311322879620279216082197258802927030995191237873154714210717908284059367487262384505205212582981850469676242778289635181013256889877706408794938432849826157565676760195023442238280284408066925203847742816468829135244661635457705378611588076233157002616459492187967092894670139977636866885251493971873154619605606861027398928426474267724335490720886481135478208553375531746455092219814485995583683142095011861047501938524210851105210989460255647538331948465096939570373099307279397434379429820354420411133887987321324779480291673565705109344820872810859347473111742909163855231643763724099375380499385845348174139410026473685454716506408737768936764776447637936933928013854920903577548161626640350928579471944277584689863758019367926770883331246156087755541006185964046268663499748526784417068905640153228240868787308934542906971776920874337645664232721208163192411381886132615989029426221585965206302885617141875395745748431483720297099987146984756548993805003261535821306985958649623878277924017466870488443441313826022634462391844967181614879197130332610684361725854176338751329989884575508237920020534731173493317884542957344642518305437884280715938935512115067916110864075800265241972888028780245608692465288528550681985069127075401333455448085337267575221278592346312597120442883534842348532807759489292384420418152871029442051966182221711917739273073715275561118689074478069928407092868753225682520115221317137463261316582431085827444397414030336771643999468741318259420903227226353828862548799613719412029995553763112910934561553810441475766805063187223549644379327196913483803625166943261549910683181802966134689106701971857198578343101524887219565510007187651384251712692964834957387294654155911085742887063683899262535176911986563866998297945346269152915726196220859619415549109638543940456505001652066802074721664807408022178992842088424498097628388077993292837683076801501520303944261433272877426731778031841564131619605163634708812287016886026246857738734756122389384385837556840105117320283502969333315322786956313486184115129188496357895014979855095631466736268943004252069383376917379613505413320373604265897132431104233587289233460021937428380898489013873546506885110839385657126641722154554662609569409189620836128460196779832220873249634954059038106310585388492449117115222525446893153285571846221252384915281638714041390799436861894802599865920627436770142891606780775490562590714321386566048410073175985303248095967447948885609696591430200614849863218724115717768815361471009226599272607541121573960041675816818363385563577938665239072364692092208575466621612165387447678033341103069819866204708926273879615293221191945848728619199783026462817816471630455917913607382224623727828126920762430942382687060750961248076404942835433194325228441224443668381039045459211300052675796225799236394970450886152731213744482369396183534337336763508642909387990860045572237146388410588433192484106172339571569852244903280570052258545492546403079894665852248596277407367395644295688668201630515562495056452833384607825123722126171903799371796561915198952733970856756873830402545153983147901118663602828601197567684109017546986718149603369876694208776540205530796656305713506929956308145075095974853235496709426541507224700746200461609754520526352059658668100265280034698064907348000408726788656279260002029758254769429809711455329051891694289721563476405129104442939692761502432334918864270003790657563680332925341990479637089857293742344928324785824689915736009914856722909747320004431486501156496237566058539091497525265047823802097334705139003217644448036725333268120578459563595451294609591142889878842159666367357062946563339634135198997659489830115087386037447127512463174540165412350963856316125935275196628394098754798586781987495367575089425152128083894697985629179446981462305536021369614033946842569232085856729019787824345290466687988622898782843628777563270874252353658294363989771885412363253940785905882328346527535926613415133557165261991849436431522587852938298720977203334770167862355525643652665588978435866813022651168459741851120701714063469390505388800574708362596596658336928690618393097700375625447245900203273669081751152529195138812411510418626724075762550868871305838493595559876108268615283044570043462915992517987052462473121322281614147567249188653084349972474746937335462879746120180157566665292378438116020024850538026333038043909157267018448125174766915870862409557790663449262646017821770886795072177820498751969755796333367010091046319051757130698429383443406355426301450690543853072924158729340887798302890242529203098784803991238234969066228511245439297772788704226207344977922749468846339808374307991113348217106929089768645830428722199708351659336537937551726698140501940496100572894024231785364204109633772422963688721144664078669934807048888508608188788415300371041093200917790108092429547176017586458386645659106389465598906437747557805969657810004437053159902189594514410489200539576715579323982025544023711685148302538954165182064430426790097843088410482349876705376545186904845948764122910521326341717403544077301410910578407695214714963408533383506808542834363859099152295341696200591212683124897986347219554827373765368988937892773377679640419359180947378295139734716604224988901186860760542831129834762431582712287125561889125605016836609101956800302218574559923930942190043986132507258036548677179997353638965530146827193394997636141329259472873422607294103566024745735813617455898208580116168836888118364654577941014426469919569634828806447782365632580007048689657617985953332642933588161315350433356287218277309315369463813454686769418914729888532587152287798307314092005850850553821266079442172397767419158858306142732224260990904417818934164239948526593526263714328394052132633264977823584846793889760178345175285342248873930670720873796394874006600132241387037792940310821464527923257836315311718763866032001847610298225106478501053676320000625034406737795667542757215337374279347048338162394365419841990516346141531139077793287731180748812780949770321799150564197574163644791506062028248173540222967766419757941684061932113802349726003180392866449789744327143294050481534080957930966028852636801166106580397752276259560488759085182148935463309651712228984209227855640691712442345784780048112700320033299398911997844016966262230408468292530550760591929729687328637111259664091154231879305997777768727409455364942429046508299781627373738407332331038917749642536475130817086725999795516791378917067927210077705007304993429187719851049645544259006434321064717008176600126912428193301934385496418044311023006433211860044928969074954674109172109914693593070279119905008880910789721695811561298494190704220599513120525005895258537104714758053159690821382539705348619934101885123744560087700033731412147345428295324531614790321098460762796455700610757614436941865040028362358069149784004659446218793660505070409648275840795302467596973592354156810259333176631228930698373810305413686121409991389116321167384029214706984213039553579820248277161246742207245297035096160633657364953068405298769595165262513494683040288361063321383663447049634626588608376011330282218686376092348790721271625154326157315318152374113872939225896739986349737462257223976036715437419734917464504791778612110203608035867556762679829675678285055744620821537399521132088349768368730131009247302657131877844301155358917674015528773208258416303257150599731931748057603528713858330219052278901277063817893800121425912331285386249765781298514976412543132944303228941833443653294413566691439704624875307356005267385173073203644798800824074493615006305963788154719590466930391219515980855846764311291501996294884455509033482533205308228302420615828667149429016582926631835729088169754621410062340579864297036684434127212549632125239959116699334477530181766844124785418564675757004626985252586238994995954302822415002290608088598357356304401827055507420810098559760568278296155495007769553997627660862567760156795284713681780617735017675121504041634908510054191448022475610392260878868838505603112981865517967766529437491774704652489827719017903093968810573439734358298972430050671463759823400742882781452557938193061372664162962918957843635056854377673173688337496990938970386580099273688145961097488682034025109162078081148413695217528648624917084880907598911105505887785213972668718083994364798083686426311457699462896778016193782987758054492520446623153641233962470603479588373217218644325604605987998411772999559783434443070770704248820594504828877204341011230659794970206676948418955969709267628521944883770649698646760356876123486813627531674716918884252125049147132277066904368641809704901549972119441013862784793353176546526678437609531929624081856261373745516376963631151220057862411046887340557899596294297953679860193004605918868191675962646761117788632115616134460213612777077150206732004927737064261709366587122204343572693555783106434470904055350466612691885172734864034670917680695775593752752938128143214398024975775524526935252710877968783277042661918550451184792369990956174617442776782500837593880639133169450200718006120818551587633162385545128221764132779548747020865304489179535353971179302144418421045246865053505927521788585711434040874399087907043154313442542952997823202124657234374475973558781429332234634614844189409577379216140801679260614653060468759917567143674527430686907338984074079703152298559712369864086176696145882451834446529568659756485159738444570997550321893396543457999669505180390862544223302999656805381126537354499906506713015910862991878721219447568910452099116920809081706529668810539114198571701025439900768895396892974784568081332719445007124989124993611867792702163782318207813749433213563603555398972353784021305578580786703749590069872945416250177609127819442925223869551558891312310464100149264294745230171645528419050232835640792308832977911250875222918623698674709751385780131789523586330436026997604886299185481198112217441407307326369726277185700146078341548798276887448330427835381061823783630435535858804236094751112737795313777748881097250911099144979873386024556718483760751617558169343933198757939326665491982268849099892472677250303387186933841887378412515256915120118532984717274317589737791378321074381891097101535047515928569219718934312702513462665066617045694168408462633070629348076536316731195083400488874567694672086676575511540770749917095779232808939980226222107595286169830969006221711084943433588196918495614827864507178029932271115453570765382492677556138448463858134539478467975256530229769441469490950053656697519442977611049476850041098301922719688043778091825432285605327415559785198169577655879759350692129949474730158835929270957925687645261738292568694531023911213817308986559465287198020857445778516707848666601547301825349795153021257413427052203477332134166940566550496552385055896534576748826365328972833145318424264405106154292886472334594596198864042172863363986346954232733245076683914057927078888928839145047292707444537628339964693259446138320601152717577031994145562223718499668865324030883745728407921222878512198385719918582893436525487661016798773229535960950981399322387226215009774293009372582399469595554853383773837821104145300475674490872145786711912719487167477392347787228409957821105700065150323063588522124441610513250799010085971843995072858595045165307311594883975819500348706631028241239831227747448305199579138381398417731716716335229320607886711248481620473408455147247902344223288140528456234582919480319115358924560517579303669712007907478517551454371195014398911091968533588344711041945034607910989835735141925673295258209616980547946896650192337738756003674593663929042523487409971239637129342563914586416898807021626997357071989391003308176270196312588175997830282939365213636626039998418011699742941605887153023008386427902454427146861072257005677296717262841784613902747051409428241506719792097636995108446570073942734307626739811475878423990008194181774156619617790979401745041747555863251946645038109478255719850816439439411988464597999396738288970379227017296786031061074132251157913915810884031052589380946910683922367304160713199622298795516934072005780751616989211687603300485837557024477755944590495824796273444901454535705261463470086479037895357732347770692206922119290914276691551275534467949232060218520671737749856260410362731945896842203000569710604471394369517648857041566316827874268279898729031955653166611330212149748709055137059845004142006624882053820328967000729292109695357136283832558368328111908087589715548041567590693100173197357549891807279641567114294191405178079870296393982999384868968190786394257365264486111283439729581335020535622554405826407656795490145561253277424686039477897177931015810415240048767009447444497414295187446244195616909366777487403015581083546151419457370793395815214694444750581344160408242905358408690044381786331263033505184873083593304700270207573115604692846003714492115067415264732097831072710233922972978451899225919329413703272087495516507276797961237648758950456209725794777470886538279196792804238565431790400166081514991828901999653223050141960392830332206935626107654987958277574192482785671683492053500394762245040582312440060048724035346710948421400958998367171533516903846075906247672628688265700379422643257297776634917734422744467389914501039246858447476527505587305911724202664200102799130360476571524791331356824381418066938015802915503127373546551056970908427628263437374230784840341752844696478184714172511960484363278418837147940849275130745601352038315451623460756861693796262789404389614683883186176288671179048238231817308929327121733915985412662499967997032251292835936467189675723295966670788604341936753252334737117262453764454727869374127384461928648658403783681318133676631466229168802385376041565770871618057580643128380259426125337744387802026331416056327089955280639711346516121419688247355623086364067484714431556277669911124831108788058708827029066807808882857999432541586277266449389980856738749884298919770754481207943241310338421799142506244127235739290467981601919557248680584162891239667144585310030520956217352522059907772460436922640098776904276529018896131984717318664611177239255486542992312192884285361593154312160887401417329996515131464743647952666951277230811808193001024844417295580779634003082832292576759467476131645549520074305360920970833359413949033108058727869041541038891486572934616393047702650028825022794736332317618360214307760063278794414478677830828179811076453615998760365064305329991289332661355550087114675788517124242818903095058066357277293522980045057635525202204259915580591047338975696017246631418805356586181468291060325238469495424824972219886120856063034816651296485293092564364371040815672603223813668330217402063456872370921745800288413114033591919160659199590904809223271438385052512277553573483085738861626258782792147835462793206516305720519296740489102730443147266356668115469131507965890229499638677596468550083939685140812829388804117134538144415265697941996373019859275553374765206819268470479004331653418007484580859802556914815021550968757280456330623620285210943239610772353099454491419618284767646314296835057276487568938309897850502935855718624116773988822373007037493806591344944267018558113720914163880946325721442952408196617310188745102680572902331706902340152264086870085227399895327875257251205390773833218744198952208680083267035079862950110053377941662331048590115569956329536286547937348341407228336114264279184030645950444000778928300417989735972347463058747701763940896249440517689794816353729454866075302269957077424785061078403672968120353948060343744442120777861322618417194873540207648977041966949044225239898920305030117947235664853491214389468319931095856034147146277471367519081433804157329091749078356387813207292994042045483132606218389597879378730572341889906718400903481791724758323633441207656523839566972195066955497351228990840952473210341602864543536686399954212654169880345944280401171620560984793773538851995126515610493409937450183610687817415392917888202723051176519427214300476425294061842083569993771285149508243000833280602311879070914427838336544766082410473966501512066259978154957919560146700011886516087040145939566933044688748670245538568152543350951754220280701771388620309867569099525595122675702271203136768188850548137311362955337965418786758673938612824587338785217406651153132888712084872779713102503580557877593804252162710234310398402453127026076529311089792830360008147917085545753972206652920926136508953937803894722704949684796763494268930694195636928814793111153032360310895583507712350789454228371232352788783405593820548245039586951581008616435334025304458144686491725683836426966260422271410274930224976179587221134320206308737961675065264421158866439553705196388914497311026959499272938880699654665826742399097085961805944442049536794710046742353084199295206206890541743281045226951041241942929464513019675418940376572444709850373428319025087709314821363011408500446766467201958080722546544608765837816968602878521915588370846461860883137813382194010751444924270984416135178492349630357995219415242889513905397014186547094446785254800756189311286150607178084878515008038412257376052154104314997259073229169092493022819853414721312568418963929553598418295059720399491382135979317021578380188121260877927643663822248124379756622775990876234392092403796227537175396541883804685084107143412328214670494177176181043900295025891514443491428736384059466790006566754212436260630590493843036882080155837732365828920854168083417029543874624789045729142381198979690693138940917259458715751144384071696691159396787056401427160439721454509975666250600471710407367258200317206414244270091475401157281498054238393991040367002225924849901378979542867297138715372458171961117136315861143598450614048926330064564709540834195252442114634978706051963964764647177278588695105852595285038122964148123114364237248828666242708634283713176486182622982629024069300339883328155779496805311562483127227348861273024231814123588992365904784327203443904696637219212138366866039554044442926042549568718970808396504685102719584675771417969765348738739948485895657164105823946138486397494981645414345516685123124954871410072896031196362532722926883197596340361197242908062732940948105251295492209414265847971694522586764549062772996009434561410437927548044368714557014719473984309606306256667526415143493648347186505014533901379187852040500181240195273714668968984899674169578874527310250374155561164175531111936001411891729266611618342475911205103409202268586694705247876030379272224190576117344441615063227907759860183605469483599904051228309695123528599936905371727713468946593055214619419072522483126129213345718542715479651087662365078499600477035640183262098287636016905221262388552166934415024684860522061293959642127155313378683054410001415429983202879728279692669597658569822432195238591072367117858122503289167166859265989915875850478705265328694055086007425367915392832013851755579110424178242906851396678354385983184529001744093220365842382331446797324683274789612524426678554948277460575462428574314348446907229742972109050028231676852810088376595010623176962695745621737188540542232191669142824780245791211911117678533217246365049854240679868765888063881051607877136531705611390358482520766325104653104804085362473703930780306864696821907443174966454394599875504411619059545192770351620381844342750172926174724418630016174291584070272050554224855575693816315181254366276918811618301977495665019414826060146872118414349514597688229541597778816531634152714996031597995597761292995825580974719617595846746295626459030627937265802945183010596327744083247981736211919829385875167966442847889361467343328552547103499093609334492521295785391648366305119325705936759281646979513964054692529922301868791218566089583759220563033159230773990078540382944507202638090173852524492724494959541325621495276362382623682560682767715488458062100211558676974044990384779853213720909168416374902668473376332036571433009324763728252589583814335099702046499157876486328668950987604534459534867077470800638872099440666124845958118316848786509278905342459382764318801570105019821927339646048784372960814612662690756085179650258496822706688933375935734743315201560371033579515798268700022567896721226196923717386960545402719938352590843648471660155543036249935505729592881823544047930123880369456001224946437830700339365446759327359560445532217767389224242480362921102855793609517419121321058831143138294821676436295232420458695653094827154708764569554276541456406166956697425771987349912656700405705856686099091966121174809234470329567064638541490814554665787422735762338566462812637610246338851985594716217120076901667818906102825504537830835234953661965664965144351971643267459627651015258688001781644983823571677207903142944846749229233132669149558464057333956816631414154645435894947447134506692720391783244466942492745657702918969645975881629628672697458369167766250118426684327537149375011286086708341460629257157940917998030023757386379978607870510058893134663113436855305540789242541940850281817799050605045035608593557532221488897228847374628797773284123215179809436871122897034063505361762690208307065345387346168864982771563526797918118230290296827676804356631829429721169476446175079317208373619288003251357187862987594768818816513402972903698082464415135631699153141251590095822963210139977673233114661277942111860762671366923965339118933361090586734678703149258234460477027749233639878639172414782564962207399930763204621487439405797086104418858081605627046284499363732318786488211817409472680440381874352831283893705653654756298240310780158920620931010050149789430398170452338155492741677753627075284258579273405330926639826015038810991472219086362401070689158236580513676606550600702737012970412541316836163837511691916013317752173928245060813407877618965990328795798785985225957349382059226143414021890412824819118077056495199079859369511063646708154741074324963610171583637620645052495072650039188774314128622370702080287457048521956793147946971434000005113141693483265239720137577009332749826038637018944892579625727895480060238646634841756350633644759075572758473456546509220772206315113244473368757092353855211543606205366249456697194913715705312268283133885745733032606209353690361224589323969294300948635023119364183721138797722441519486659164226867645066995866280609720779396678948016777829152545848032986156260310528426000279256975276297277585657536630582482317583114139412767063784544893085314148678589474333163269707244710054104421950007461063528789018073485123126204796282572280236768024525144941239792920578119573771362401479071254118609387904985742729166720564496688422563810537138714139808150992453513779087960281722613299371249836968268831869369731844952041671639616171005668278994288201891804323586282821288270746310585580233330374742944164564331617815455655081948610500361861548772932231830981827189845658641146862499195094534674280705891458322788205240769359803623023222061470750481352828335511503785809274584548474037123983439853858733570295455273491240341401424476048845463677960732545954411235378373580130156487177079699265358659131313468034848352778067019908504191852425526556147093166874385619089444285135770463085687579418327859759469367957872310995738658834542452562518702955746258647190660402390917068703235065842443888771193511731284362087748903689980163250979192109854221025181403127802314083038097840357157503767335844001934848684621000676442892164146078563956352153069775468549769892086014791899595207915927331870063532095395303565402776834903800681849654650274166466648199099935274192351849342824220950426093781838789703335071805432681959290657635464670686713910902905130950744638446451316288433865033790349088645816192336289176646272677546194351546672585969041884832547775826540270171933221038003689973163401562617443307650615863110091486509060802344252376876566606618341403686371022857891264099330444387179277834665708205365440418594449466820312184601384177741359112604841872033829409297725196633092257031085446376608201182551504113797248909804480518643287853697094571049700569233547854437656822776337266413083272338339842546661561934400915572442498302587298411323540110115125994575791635718461629680283264340268753112467792649499033747283567656044604477181499965997342146856934054385013265196673454273193857117059333602544642375255083038272976027766151241025923142662940612697504707155533512208931201686071904476176561353283627340525219482236265357093799108048533686225997565720111274354577689765236141684267311397465638336105782571540512969677333843513824169985707890248546782454581356256624947714623272379451769184646392056258144809287135327348292512169452197576343932297515464068350698091695743505739460553632574031523013190615655821038462933995942456644856324640386662167392385334616407704887939389896386352612271049096440618538026834234088541528822713745437145853319927718096306001045575946631703688068659015931095363651366334248958515430254872898756420334602736220930384878049957927155490797350617072238855078470052304455883130108610429272808631523903801343117115825606194492937224577578417567712152361800571624223926131260742305306161307260193282089726782408383918505865367075657417286298081539823601068798511899433270571456437716810157394209329436101384679645311719413217976755723139554650967551012868187619126674854518738683932705890656123864292030920364527471546886341923479715717381574896852437607921317791007096044975631765665175314364241620737166218612215436930802746847821126880051126941845745070480975460931319522607749096296264510006281250164064179209976849446109561152868497806808967431613777362097433514536918382246671073266858036595921478940554295555798924067976827781298427807064218172363165437016761071258761628297761960960360878640966700757556991164451428049352984064892026181377193035022671185047768584076730389471701106712696465529848746164915026596691398121582300314759581184092004140581885565371248467856935532281225589350438733601044385522860925709002749671818472440725638221607675092516876985561656823925532782341567003100552613949357486596615797484676907353486811401526045614897806503952246216914670588593908887388677508221243259246593538598251227654078733149851290518988598863021323548704421838674634041212452828596478164775004143896261468261699413575498024699290360739508049117829225254197661545411221495540943118401786473774630222239948591031464884338699947086164991987810460409049064294721172959929692775931043859727441218694048728862125512627629439710293938977061839691816288516040202702598343041991279388145071282628947005449881337199755974961704614896236316876266415440766740913473150385407196711749336794538722099802254945170181422107541979716822013275136272497282860863079141812601176776756789696088355230730572248974394919512712763920184923889143567900095716138895931034332691954334858098526597056168417284124715243050927352723282378706991376127483041392891638319154706238508011601623739616222822255862941843805045830006482790612774676979234624809431733868237033489665563662714102877527441526438516255973403447207181399281354873757863399724792418205661341793319437364124650964348918005169028594559326377399307640420910156976971947775855252035509510360766539399273820974424122542372683083295980723718338910476713396638171110850780974159645123305964343773729182000952636101700927807758559337158031498939863894597404960973377440204723859466422376398175404995193818425958964010634010101243366388836387897266120448791467757545945457675447412546214625611269235349415319175521287362592844142641678679925817059017857427722967900168634487263748766423101270499365962359382803702011419354543364284793627286210798159692427384560196722634140934383769317864998786871167720525457951354200299853716389042639110375467420930950212995779592590583318060719598951985990301529788050116174242478550853472849548360913631834384356612670520056379037292476516374087048928702973537431492450002942484777114276069577602264803794267389210522519867939851419285697574200036832639381991228570067731731287740212198063174154466185789129434862905512256260019304743546714719233596112397980794606847540947453117748736839045108566849259566300507293059599994442999362312075046114930456236474508163331509758056342097631177482377141898451764096019359631956359266741628650585805839000791123114165869600073351630693654037594195203276952133983551346684588961961309710390567257468360901022809543592588732912122439874546975680534773417062743218694966586895536082033767076600522073422569615997535026695350987004802298292943223245592638079799993778890756925684824009082882987916056758714927288814161516353121919036238522490929705425772712822166673965735546370051637520016462978266092826950657404226097603467218253555382055888112809465581014618504216951707343227173160502672062151522038376155106109735465557065718292932068704211664347176490638070272072716203694900306035927877224390334912630302085964107260203206007625107926703307689145912827233742942772714621285705741956542663601174676114380610006636715254452376301327091050147136207024278829263330514346133624823404680987410832918193203087023003611852105494433497457844820912274497663217755460556674353060763123954673098936642211180960493859212953798978517382768576016158173752138710607381995930480831739179476128103813304184115900920404993315108395724822119081818745404629653850030894458351817951575632292461426504888957122670048202790220767821295334054798721944512242918606111513572798718224119881045367961023807003685892167212426586775945148576998560810316511856947884799820053232118717430167411025890315196442087487659529692358613888225509938327131594766934122948848638940273499513615902087054231526021074263590372945244338964477882464624304981138686678625219273315278734932256041919555233014358173088431142432562409672586962155971847044741609807095830227607326875549435933671782818771629450449489823200574923677141449187363929224573941776828247884479936606366879954592887077193652391163780545945267322162362087354160565277999952307590148492796363048897639039173951671073998037692241756876988931515418372285248939586896050923540917609558587560100301886280901351202786115999763441214754033195433217531212199837525103199827603442494376835142764882554116789613788459679622787435013671954621480377436612071228622806901737559046904162928142424581430588040926991227700357353801218597265095019493384233837629738770811243790026642827713347532048481092128924166363872140645261976229272173165903603349856106236325884249131078983466680986595848868357870201968278150508801942387455261167060041107555451290268444145174788403150339987733184872363607081189162533402558452721711375762975827023811303971878273511614225647213484722019417753666313466924107850765084002727401503017309823179179814305379077345255324369153143070205453700493447119982654132016927502432254109877401297392390599575099443923268405624513996155984517159636351532736331083535501007199131429532180153738502621074066156421099635549172086224299495160159684436856493519193543191459487846458079072139962007670213139330520965974870881430425464670973036534339454606509750075484449215275529302115974426676506037474019275768499314386062829063315663326345928023234847162646326396908694796305397729501663006557314963440264721712315660489684302759779063699095034895598437183108620115590725965413152704834038599009414818154962764078038363149389307958519752628004115327533451681157655112362944132448576436303905896319006734221900473793399385659027396152598829437958349328974935625377525066728840566408944016977198165782293514774267081174113378156769150216922858598691014354137457874311280130583583648284155710120691926845656918581739319350313572214749170454514827592699320794170529208400138426500673357537209767442510484202787274514364574987355700750187091558548951599978196915436306902055113920819286497313978348150997622772553961419727182160365025949474315283205195997434095036257634809110879136216196826724440188374046726849654883823786234489607214706065042578845328972247318552125983976115721575814129795929575408776378927145238984722930542927876895665066741545495400128294342484502762543634262571119106991755325569072258324132971402633079960545030857743041156801241259661271495687212552059188049021026111869532041229726040066124299484650166805848066434141531283091556548602454987670857117038035795466831187914354824035218036425869342015372395587421585058796059722351209754076211349196410921285759007860071777867911943893456265826328911687090071169531406873901061316342325312505215302531809237176007460768061698217693026406563553253483110432330880268805027684444302358266078764867233075584487909625989083974828279114106039254053599958330422359746421490884302116886583315859504460108115456812815766700056929356967185896038672955643659715149988146682162341021546780175330421541487010471283364947761897700856110787299900345440461406342332458890768994548481728296664490107524534924890473462122834143696411933156696725777966925076596109164383747696161510484991049649946289018114239290883765026763508710645254130600401939680170418640124586656611530906047406187622944131219429638359174440529006238961376451300259651473057038479381709882679980672350050875347048091130495159325749330019594715229760010245322894209195270594873242454701384054042265736840527138078150439297479714490158379431067840729489492517687625548792280976829187574831079930808445419055663508984710625382030724900926848405901815184535306145003750590338575721829441142984205207426351985345477797558623053606950865652529497580807878428839741403554841276673763581234601848496799421165831997685357163306351032714330169916885812918121843686296447770766547464027463829398232120347753373301305435396739991176974499782793536056943655143937020643051177919529763950218847042249939080527417107767877306777657336979868571864037795339504931914515912067298409131745269504904412733468478619807969191497910030368391911417757883767971066275993236502862440928818130780899268648990521495225977635170941121476224423235532050217429608931264508597247465756876302913310615633370514261816717893072298402850730660884996995512936102456128206210747615472898920141906187399013128436190377717276463229136114760974081299640518038174983473504621692987615138913740644650997851975112415713184568509366165742324215939240714939484531899051464691571328926054495854212625247847937076719708431609457958194882560491902722306803857023338815077660815441442225926641076358815281139945359287777715327513912646929159376432363606999668574820600588192015731325049897172716870154932769421604240379251938370084391736478186042972222767100081050000219774354607041244025648927619632432469901269308522385281197137891682841626952788308306309309237398408377314851801036983990024465167836394368075117666152963746579577179943116874965077312638395367560059032615607011855073984996381812674152666730368195959282540540531013341137572754543752990070323902906323955730506447494857635163276673826248735385060980590517201072182319366092008959912905428286625901327222210660067104249368193472617284899303481464244976586955008520939050248031803379543718114405015210800806706896092506467332046468364276306439371771951795947279441930031287701171707823709076646365626344497826048068157039032358470471719297404519386883117656488396384701033682071561056290356938450915746305124657034136748173078100694363352578952530274551623213947856395808416784461363187059387479998632712077020134760468417765143084964419540916230597566498802227328082417896898321044456192369150465105668874247429260185738150604769993380772938524842027735615970200734542917373535663598492332736090789059774205984161071393147851420519974922324815726783819592753635682014090840078356650735897314697682983200199997954518138434158391211509725812227921295189535293416826323236783274340470105320405159646190111082000509032405400899047364430858869872187445140368564877326052518070759831349884136511239907176260063281178793648796852968159049144545051904663995064058467544835218212808571466545351836902421036978922321913113450639969930830500334439360297965281655437780878671018353155736903739055699008612434782088165803847869240719935956396464099977595466347431069720347890992769128597425332967704456805430674564870005436523262577626983376446979906885297787353608608950787262948319228028448926549308309596932224267399974357511050583988511339558072975606442432143812771294285118802850635157799417546757840764732935012825354002485444816518648952945092050020890062131763029603025151536138548534995567478045275246088590736659370954356398230842835316936720978780351941721342754244217381537595969162329073181864014912540965025213691251872802484542695007364482296585781685456995649141171452151976609471996532912755683641509697586587178795313684534333261113459610257396728098333323041152393999102889307911490778021953716875169886968912471941128996021867208120771153844822667020046613598630422506093901662578939892193179014070336817069794853837318631463056823955281598588018996343900172188885084976312781472922301667037929280226577952921913173149742421686027377817812538869721956380773837242959682442982574593292615523378690996592777027496335435636606225327893227255683898102871081266004181825194049647086573091705119243185614404527796518096373748782666479347431400076677368615616552621976844304914130749634482099604313676407985105006715976559335150136654148308014555776465381949153849872521553955506979970262276693096667399641685465938264478393954582872937684885878321847355617949295025867601547080983183442068376353613209589492548531369422064351623091008404404552294730679488489555915970706106935691560785495854344976506430397654506413540163092178834107615789884202913487743476680393768342795959146989186627471193349099905718673486786408682489956982496196641342123186931116888441123493441981001878830444053880056081893329904550568850405155513544107331454479923094104859494541780817078587404633167797413155314549908275819852837301176744383789347549123852390451752054366388793747735389691646325044097042400082579235866516539961749462893389168354769716843332085461264547885076092662391890967306250094926640434090058242856539193601393067510658929442157555603762684354673535476717405327728861018842898747927880263431427988347480724558193889633550379910884232200428033745649331773254657406858769693363019029857348278940056258140123709249333750083519230025368019645353597190115695765416105350118923966113876330307323946958959035377602852437908757268694009107592072200447113862805989583780606410346269292477276633749311819652282075311272936858814061051544143125600728603001652682831386842565277665381200298032117530541925675346156871916825930041428605267891230817804881192375885138257360749262910937072005303798354035856746738617690224489700524600655700055655785130135049102322134004291306904412133835289291371565150943086578027824157463237819172469366683100244305240503148383973389160116740949125544080153010439886808620277526964306646083547850674371436840849461300006893418640597010352566646147645190652516394932710261459246201019301679109255401894364513364077491236159148360688392542193362211905085176578574489614214385329699469948166133219014211741426844399202239737015632676785564534105110109315141005826706074966036910103807801554548394519136236049041090040229848451776987357784494958314097963991328588527860044711391593927815161749106183757469049906052451383542517657839799913514016950436583619401374685827498487372690560745818522524948578542782066917025020828308062612304590701468102321949569874569736893759939847397137637551215804306307467119308413542999215226373108512514419579971502685268126491176835459656580894282822509644743969077086836481363275094198147421713856410145485425674263988512354299828770175867662887223098182815439353381541516523285629348792492141927583658939519646015109682982683867853481459583394845846523672726357102390709093965544360743107619115887881148270090577816388525719829396909016947115649741121165125049265332719280377212411519164877834432949280327437978820104705267501559124285550717740644196345561324442680677484538969336113943123549074434895539364431383250844544971950256722749030952012625803139403368116505287910512424406137347578810086441926743789398287497459437688854803860577546102266024478744898313726367525844866155786060079036036397805021301556525122894128606350758151250931042455858754478396576120615425920259992280161467594963433058976298965244760708782859242089708340023022280190507271310576591566680507962867138456741122046444462948854551711766870397977617926005361937327008525204676927370778128116837304807263115653827678075374886055320804457595559506226249492571686185526786925511652217462955898955964097685893799356268814551155294690424609273232950690041458594354286723432481684947764599388362684588462269673485473348315775269799607255130044485154538575810737540419654384717084814970871291483381883892326962760449158536815106027496871448649546822084592898286146466318071641401688290500932692201071770587762546631828382770249131781998706304702539473161877311951600681921292481952751426805184542865776468414903089523452415759499365961581433356913873532330022357830442932184153578410255561602127264635842977821924613978052590233273549926669231543911648039820854899003750186223648909949885379781194585434960724768535835688707936026371070951201790166696378150432057686252899494735702689969239898795520644191985477841416470630680537474284325799081059744720990131003053315805907756539439988742694020155155032962545565206990554934835481177447554465384007615493296723376852649131648232983598873671738817733294179695387073937173730693009057503631854495567326484588932060979798237294555615838123523721424900790519760289544212921157334248343910529521329389293696270802701560648645867419353113504477164778785476399865379725988566940565543397217169364248424384134078320427023548185173638832823244966693069120486069530840757993545064873526249212018768941469593971287300046653645165881111050332711575035005264553805916208394660648806255214214530537575764954304721315925271575896990812775030971252580221768082839200005189996133737554368327555683759167140032779251308747382639727247199215757363440030795191038927643743464042963121080953113133526668453878433115468084539007488683909929276260468617072599521424506565538902073118866483586437641927683727803834067341532852567099345285532778492562011775955602627834304467559930424774377355609011646424259826319917867834022474032994985010759160520145325541643546496262214616053709828479629208213274569453845936715139737220688679896428510547601153846457287538368463816544814074646184102733172673396807017481454105941584108047878364081317418815215724555040537721183477774275396185668908146510904721122091071870145217999347062563636726291698745891232848289024519666963608611361280834712060470608282415069722364130658471830759526067837550916379136878656309205284927751999438799596680882762258284012511369957931726460865561417599333533286417826424041158574778564171797149274786602044279948417050895781114103028392307190555496790625223969575123208215978674203684205865473893331919405120441779982545370339383637431762152139008015474230487381117829328766303269710771011651362709111024149987238433674284460094003463552132819846331625767268279955831699513925411445345907132876852581824142357585193277311409108939556267143679796014028052502303103512415542797740862794367529982398000309519099796904841462379518378110566305383714488635938521494622766039495580446637110128142804166499743516380849438207977348460111867014210585764150172346310759837779965511390031935723006492630486196549127269861704291102246869361794143936942080999280175205313538413093433090423392605302812103209736067153499703936625644013276716364458038434091788839212477504761602402446991778431211697735530355326023292507796953065604509585248914901701164485312018307033680889415647654744598368700602177301592777182715165802517624869501160237741358481549155442092222276197269412385149130190662761666828744549301761108308775652966265177285687005779402079337485358255529354768323354726559538627443292231777967314386246583117648563930969807318999411180874764728445769432908475286496346331922893910098450590632018505442186725590215821331023159028270040771636240318064737808785296368335480725614264022434545294629313088121243361430173328981046177400002977609415153563261405917586425989070711038402080095527366055406606395624760152004373879438624311389585442204032103467584287240756276984164559230920692367138980184518547149291003953396533717301251869623053668048404459552319601421020346933292478057434966257000894787728883306491265985871044718205186472308615052951108397135374525281659756088324025732211995880413153163435403408954275460141624903928848069900467655719437745551177070876817812521619223001399962568088911269281407861019687068309024918250566892687019305279765257154587745463622991119075514927899947331698330439754083129128060123675624716212916230025695505842020543155732306072036045760794361993197305315793058628916997018246313993913400889040375489978554373076948734873380964551079859699750400112705009162115947684624953583981888676465750890810815387940996365650211588467694814837938209520860751276576110819559114196891109892086518552174202758475007832922314533940714493437293316061925839129838301899915216083430776311548950155338384584159576962218636676392582139404433504730460438669871663156128981193591271498670888389907466088912133168217028818181452538452051282195528135960394618645003164279339555980439368149794939593418110316584687975419810677275961348746619135211795978867288368802353304207206488713573333224295133878153540781083288157888781916959226344195751546932342007813537618467066774080434802322385594574571122673087025419992620636309081897371126631741419251730552231112983103532387177575150648943674159155155215176556249027758479887884596430583740371925889684987249523126900195897478130567066052940702061672205284838983670362119366370499048933802906154976745351741493703452481509547701447391926661902280623356789894029215411838159255328675339469355555404530459154574097508298613516209608714022825921024204233670185148410380878446658228029550188166066415641626242739189805526244251599325898083687253298398416641600702490275575984459866538115434580865911535214529804515272171243068392577038266995628849038592251160933981648526408058958116287345178176118415453253394554673795156443463243050840494227878853160109618770497179036654842505085315605579631767096762201348812784628954077749141169550785500895373635549586318520654109963044096553609417353785472054138480289669685637950975737574688182636728644709023810165978518933394904199913120133000011067415407928004817664511642754918515469776865593714899092935785146867271449353141510752671435708533895303489480003199361020364935019103603623638655939932278773490462364015165943289775370442995076099986711849064237004197365115470563759714073584139168037246651123816886139255400035657140527516283128654689219539480899197814673897453077257107149781490556140592666797361419599522041335841163306625172393771290261873008615254208805879817971097758428206851229819459293878955293959045834624206045372315524038867219078000644545594047443546327004257491369760372492366719463300752224743061744871456727783407910939668241709702599862487240292193156413973360730891454130993073965475158598888146060174181818476284732582266341945314271604534866983394105274944783506710247031355788824412721789614338673790641687727941328366136389139882574859130537875764131110800374247147237858160600110749098120499001357154784160350876993396060596179958997683736202436659384943768775558208185353965642666527830066580477289841801560763966091925673664976082042699760622571799694791935820573728603792796466494612358617666074440790552364917923534375985864763844820246082024660333397543860017329076770305757630628345380712249064066443915381660920035858583911492401105170629540233446965483471370745075466236643285481253463241048257369961172251938685148662606649199406560547282279808474343839348276763722708825049079986194830338606008292075041855486629646778101529129355940923324695970081279411534210797688315457245948468815114351134937760076685589840955642230887402184186510526534224948517506998540970669642385257593218157086891182933652074863434932233842492938594354653314226557984947878123206256945297823855273102430619408510787625184939428218932125831572927001544116989905457279618133511985408609839853786760072255258100023013762898733175380348644459191895579266208339267767587113860802833859724189520005919639152501278716454805686873833220596490123917160255724823282778165841488833656791528383330301484065571164142933200100832819421499614119779838592017063917795631411353197820126002865386276873369313554179592428443120406714414318096212627927048137036112547234302790789804723363176650459963047915433436796658809544609089704448789085548007691630013958838175854537027826398029087505941353268480926243692812556728147945361916165403742036044983375117168473660489234345263986789666398730634067334858421219234331866719901236981436209704724744463386592818265307721412394785885520996946205594074582068524710577559492752778558258450298839540601164771793111566617460401078615026297691404049678295754921728455823421363130755889782601195873341620009796244247096980576373170721730989304236100778706067420839013206855534087390486237952908249374052570178480622113151814971333045232485970534320754845215284551744745220273492985168990143673161774550980236613005592045917001014446925113667606064463946939246411810184396589689288233711423952706995928458272803566277365758967717857122385801500982586022319159944243543233391580492883280564133930911613229294563601178311360399407068860443178833117678058721287769650456313266640921345597360412917780894520446228812351284412586931211596823484941543094729639670286031896259922018325272931919348931001459619916434085420877185560548375676240389758796111242191858915781021926964920342879370241633256052747119098652035649176310610464449948678134796709758430198411856454720994113544343139732183354273344292848191953410898587494634835532870730923368984535787105455511623823040188226901993852589725596675683435036682426927734296761127584925722789045144825307743403803442865736191999683924477396007943537787133855456255881836883347685179841711382213017928791328571542355753804466367535626489394063728379689880128046420536245838616487482850302514906808797028626545603268155941283755910935731914675867378515778354260231638334332468942912059695829893630125024152162786607226486796429505705044255314992064517023717287498041614384017375980336998487756031550377976178788941085829704134204987273747130355461424280558752437847158430178028717194939600437472130627282628116455669534565552160927452697359276309057648202658584984404350245441643449462121610345149433020382572087386496455577802120755967374531003712585095517008576558346009762365390416510619059123120415636054120597166830958046741637162103971754407255088618560466669033474412924683620726192765590117148233542571495505112037055462207462786801062806746543136680741831920852873489076553444567442394805667674741308817243073144973521309555320829709652310514617044768369225479862407692457228807911260400395521271098495307669681443129748460695389774587659821365092157193553425284896114129617543719284533607192529416368790622630864699207021768257548011706999745520894938777231817606093831377016710609157967772355063617860495872954968407340888011017362406307768849187829035723782119144536906649466453718450599397505123742071771465554302013357210991789004957506593887971238646912413927072534192237815264368510101514391340554858966513849094348549037262970979199573988148675380122413040365145140605232415878295212121221452995655420875729878785020265481676840825065859846917864188454499558924161384631395033778491218967170825552489270263290559350708122997832299079469324599296188945421565850674603127765558905538159857017327168859605593388072955467840062798710305987187368033192007596970526642445795118204037453666228196368298938997740684388390353672183837858060607251498032239723391105607470971690085394756046133556594128407701416706985471521763767831457887177275998629510420257903966414381418953825979014929260472956240765649157381445737635874933750512989793831380909762809033145522598807283898586738986841522449444749941626209815285772830190109645885065072825631541740089464634531603960910376681095720184653466449667220485145676908159074242621351802596066791006587229631209439736601388578910933924375927814487166586772618925384267859715249610058782180590303921508806100012035534881556094499035948234657901861877483663586711870377984186175728011956827390263316224675211032785598572324670475559181909664108425383032140044755951016952619742552262094657995071788074918371843731150790097251658728041316302994262672622402715901533616261455199021782271657851178981004208159619746503804599940093026246201490306524133286576902393237332546863984382956537496587022239144454555375789281755301800888542762435712874583908655343819872740909895233292538795777773618310537689275332033852572925934280582967053892358883603893513566767696851698456659887099989789351618252279470763514401973830105520597041349539917860978840532855633703301857255009394045018414232487675450223023273687508033262173920228364319366074955497530105772491792686809884470785258209482953068053339819791319713576682846328609029340543903851993735873381459291781493089107932379435446059046371370804985341933730811908746391311217449669826442653688190968833221891618668524963060130881431358579264508783563439449779978847378832134454106348069278279538210008111697047561533156002180028114103145766194932882293292555600837735394325447904067071553102702353312683464910086820844285924274989282394170949870663316878064264179277199608732033384377154400903323163177547577227643782390634242981073842849892854234317658076797539863725117903968600759237382153330579019552533756948023113375350426307477296220221915939777216368810707250345849774364655136604061686632468968068695449530183700812012700794907704992513849181372469831981930231924902569006569584281170054013191883772327603105606694055235183211871679910023769152988947164541825745098455934539759935249426564867299404886061296986682137831327251701842555372719973044055226420766337970048709004169357959400752869610111207804220609347180027260315967379359363119336270530314633818548561829994332084764933416628130906530736310067146228824686349074023853975236541932037874970663685304921342343251780380392739342965507790884102529175372860059384498428111099739968666621110200580926888668919431129926656089271097225885224203725911594958506464716709664801045838143927831429844050254844427527678173021574318727615480307481812567494883487211154515518431329024597678527122910991488356930744059170628469428453348429002354699065417508660828348053411853792147334864529378870164041356586821373776822544939165867177595738001168733389425359183206981737123797110144586935020238715656177746773251493021523026419789419864137309418305946657807521754079056977716982799505903753339183904794286894983969783338869896704296426380102637315619781687021440490583212333621695822870046204372793074645544240495753844360887007547734114865971103530075265212955674823742021381031290130467698088718812189228642740267706642002571987313834490126248870987683269542803028556053872869769516079443159087837902247435668786966176059301574535438922348121976701429607585615862929932700854767878424112125856757996840826253565320934338833547310015644076299152196264571910629032508222773536800130222414931111260105336498261739857536722905943782026749657264680347053198856776805828496370829654063876701237291864386254994943799580025985690945191286014830160295149664524984682300431577165182058168070464656973528046914075791761557494297322222980446986828110848690288650876234485632080278797188210409986125632575520493027787382052958037512678835753991913552578518303667958643279267457692713964203359205815242137621507169893134006594468700049734927031130332892191771733662681619396491488207325721086491591887330698396095348850656619736060826424509970167986627272741597830264019599286747534533569803950056765514738445077787297912178470769094476245464513737395453057909439034348626756388983465013192183047749959347970424017568439493522358775362271823299705998620645642562894290295364429634500720272758840270296562030989787214000384286070713337433406247601698770497886831320196623822431648732566125423100310438525287514313529270145419711659428340647206008242760398927462423738037589822550042352078838458058453987489999957168331533227670230856593289463976516434472631414653751676335397262971942682721077831681225100624665077058635108096511468897598986485551451286509810013256040946209038922676193748630183732027682359769210154993302324708242980837785847932512232913464585920222585743782865206953184219191674611972684753889771398390516858690059593274718580858295319188900758139107218761585387673827611636619810081961183438002722556583265747707199680562168493357365526817713384278564580665125442329267312519589883635745416134360208483163017782037322684923673148169781737386439420085053843535847066501984286336894852624984311274553582023107963860294318298906197229401523308619825381575450636647163870393385157761991007227088116734205639818766178657960496143170989095030787800749400975870790604585221934479193166891129859123773433007224151970547231443636517193156007055311257484209739067917520962541017837372447074993157815434313546037364790849769149739165770538286529729610426513942924359464542043761051535184003794499872265437733870488476793323275644045346073920824757802338085106856312397677920769083598138173406099517134748983695357616108325061999925145369220881242528461875598637290247346512785422127713581868691410768727449314678937007616222492377358646992863745416243431416790193771863767789041332706762900227040302991919402146115916863978923307907606629925796465111529033795508010954242078530687722975956768400531251599027470940426224773996723490565802294691933205690078425046257329868049215995190054785781899018510395762938980527935121891405081080609887862773890858492353626329129884686009796692161196737021545688631779549803924975373779513151509725970128392727665830395497282947163724626200511158382973804635816826619241512001977714573707509400416009617042210987132797599368585864347601027073423322151262933853994352675024093164852589120885423766261795265777908596400864600118572036727641811508094709019613587750651396687325450356069421875622160632332898588510491349224156665401944924786592402901094812647609782514881283090549819473269994111083516757110194133016164182655469715440364092929939769382650824135532983056769555484379136227873872017789263752606845392302527438561571440814292088049053349730037718616519849298842521127433408979577560118692772271365265442592120090454022446304840135217280361793525556619120192734484755217078709444202275910633157287869321610558850613923546382757952615651369198675196184078893350660091504354868614613019711966699726538817331387318968806465082194537105693132729749183613142642490095773447768209592581932068955491376427677844028884103184762398499468925435924502664127567651486872639433871979418853015806153278379266798170298512462327538903070804978690767041325656401162001300628075402999487326220896554241284545834017456598161512521837795972130457105364533121705900427003649301775098353999123536743274624912291180644519723707548835335734994187398410280097230089456539873169368131133228087205485873903209383533077950052848603416917459023877010230932038703726474684440518278218911247104883800477702149236165335771432186713878748174521695660559043735786452256705465388191053638012687770079705883807307455868992764759243077460071412149512945788955452455641049727950151064494504259305105160074149563867689916194527755711780261017706526533910345036931284775179995015302574023167669870467748380498897623486883273774760267798022176369846086699232069973380005238581222278790889863173280915510470495744919755183165101103765510643190918108398670076623456204411015128222871383613702997293521166338418479726030200656004696826141922642638046194019136349582078054681560688640715871175306609983443525045602413099324728287081949355732561892665537392295754858040793159132253007406136467211318686384311836496952632223615180874000673446550598362956665005570340094877109988761058515978618924278462834248493978871187322041228995944900537890955393174160178606730164371639081672127097298013285024070657499482705514292244052395469476454102941299708203131060415164045148076062340931842108417714219928065889958160297658440927847469177243758175141970649036200751101258841549217856807640611981667047077081949746323453383436611612027283356815525944369086125589267064753651618111339496179104006544910097045607477926117931857828930864512657739235900220846954611779005211666565782216001768346976735256003358726409081852720885284146172547554790354957189484287341178103985147614775711682443704798040986358239409668040363363136482238699618268544818054131856676013510236364050238441662364751466653513262750858633083338063986518190521950431033587336544362582778266450324741247716499060042602316866055852285455003363034515163848411416905250264130288481536314592128561975038801355171465723363519456878836968300205925880979997711023594029734564608285817969596664266817529079097711085838670474457967474160498417364758410376841156021552283911503164896466494951978087693992921150160832295428986210760699250500625803168098616692532231817146890450982734302777071968815066385649469485808494196397013478367707912912938083807204834919452352820659411641979147397542216599823664239171071062086867083903225843345498569304287065813714928651417706028858017756079026344990213812928838868244662035362909705524841155479699714545684262869149610838420079224414932925366338268760247472404209240640882302480719988468137777449605971928365397542820235539344226895481049807703580862782970524979008958875537849835696032176361884904661867426680797379879162747291396040138385225347043964738496676451660218578778012341099654117180378212339852333990294283499025133705660997441149547868548134835941305567131669130794755790618749872078315653237992863154152121966211769614737304313297431931336581384853063400532576176088133948861447172473980276715286001255340807215001260306631665881687277080271026810801232394661259633297872492513047778395733263470327510762749339543038528524924766999043753255668298654270422159293178528700374432730840695243429734929208567592935555240231759459414569192963087638880644882662150646162489020566651211894236147483575393226981066623511493256237968808609403220342665088165711020765168232888861730257789979474089611125709050068852796972360296511777211528431184014123566423155671538346815965467787371920853152823579697842631700702041178767112768924724566318145654374780676267677174546845875998730690561023891919115670682505109064458156977272254112005948038840324662207843058627278907857057608858239772388034580578245566661129138240401676699548487692648672415950064948328670588146893153434726703943059737578001650509122613812562687923600687835470364489403773177785196858460433663956787509600229071150758421182973976670922632068432817060011192527915975281512486595714802942771155140958129750865419027006287682492931491748918582171718444364269175389197054389010919707403652419488143360129006627612973013854909256385593929839196377663759645526351408553053890511349413836327554454781574649400530051102631164781953207429030343840063084325798585987814923050493895258669617408485513516009187251492571076667718861235084158972239519970742083537683150076497114012050308853300847020877435623413050803981148023545271945671353708967408026751635429358087610196797560191808133202572244644566302790039640833355253228266209223110227094876467610631844354550764908387783641700333746118499359042589488315191663634529830219460406549610658846178898124537127283629802736159198788566016122803738237622014016369573495092194011841913892505776921552676681108707059030434444595406351079009377153653334169344079361036496585498919187595393195534851017278809934366789708375929080196970085138605303951543307514437275130108981935379001756668285741372780938785718840248612921014759664031989660278837310142677760556172680613118405775264323605971677786072149779782358114110732710126236724718229465202268319701040895878004814201078577119458013193847000149336929635535041200331052496251931174142669540689590148330093043970604932332331977004222839602171673018008239727918802413884712385294727925817084132122499203643499989237019066108568837481905311131195426386753841234585062590566449567901222271749082019044520332821282132210403995503858488248491982994922466252388497460099637803541268706167345721792434404766866870125749949458481625122657979099077121112358636444070001547135295995451118733278240893682779558799265589778843417082583830188658936716745203578737137626842208115191946778244140584627072024821985033188916237957705766962112984341256102299327141232024091116949363712310206244201543747149536881943971176273591913099602444068293165176801119671348882268046433096792671536193635509647599961519710251042395340465251786888223433637196657176246451403082712456783826533824064617180419150628360487839654988758483464485178364436755532995083431979672576037548743317580393586461179890633966266728543339424072993713763854848035346304458439408506679146666779296531280690236070081415096413878579038392972596314920194033240276205585145166769757675983084993899601721337826079996771630815289479479611576457547812757792686892459777664903113083738993131831759251233558694837296864983338165936560319657002317745822090249188486904704408322689135150730136231731466987750163714451754929787322409485056977098161873516478671878383185615549037561005088258818995159916337697179494358961543285586239555075850073720132579044738388311752722792809800855480564530811262649122857539346406336985960992878781181023908433301485174803626701343066583914468080144284930383588174068633372250765500427844346364900422231684721079927302301566747010442956281163958578272760748475466783157827551032369460308488321383370487798254489594338787467101670787876441635640584312882773289328078677831009431570273297722314668141509305888209633215013313861851932675712345447480549341618523052932187285720207205312868023145443881041696633772262762936496279778220632427659854050609104410898057275252201004557991063084683095655229880005342519263895674452740072958101259778021289516714770966550278053476907123389241109074163394065827471585947837010098661575678230561860902906832183799824441034226402449885000914687759782135188753930180060296699676445996204596723932714724039764390573385830712399720370683992205810203872755883405468321178022027794530099777284997457180381112594640639330976113111142784766717776809711070805899693067623376856235307934364894455624200765074903287814776390215992089856322122762754273251762493453849167959324380786255303488342570028901610514846651987944062944265440838284018348673068205149837556729717151228447118472677533712707669138140248901943678948895519105883068951194850124684749235096458692249550739729939846526213677708967112813097878771869604606865551496532899974175317550675968018768771083722051788378806678316567267386555149637107771980911744468538967683609222540874951615471472142642884144654943381399878179335636771314840408447072099876827183046888969856887331985381177442544328694697283332636117486986166341641586393312823377473300357306717977984752600661579219646144005711630397244365336180317455938746135513551743096576075364028802996640418738157913913482278453640477387705288755458906053214391787838127707128324660310205367810664249171568993304500066432672325411879761802095549425502216511521795388946463780346517710447373460670019914814099828496235422762719433251403439080864959443189588565978159001253483267725478007291615474336858444209994767444837703573050136729227752622884179623800584253698596564431556245870419193820468665990076841630044357229776986204740300197897367429986326347814613851660492045824123828791695380815859581363567292080210589893716325774317287115734103317945490957794705247496424293009279141304973042859527025403218534196039952143451790512112867051215441204402199315885779859270196394603317000937343832782131179805830952631349641563875469099467363726269215509951419974059651283950091385763856893338725815581373241700160441331341039551662200397863667187389486424706105166170391523709139890010648711920320144384343730717845180562512804263657817965215930362096306193495295809821296944066806570046232067433817989270849622324579963810599886318610135228783405225100783726800614449840719147630353659836453486595218363016291330051830834199170792450371378743975121477203024459381007354237616967986079420201862892986321728648756684663866817129465265739309477125424804811328414562681258231394457759994927260789480607894852456499041249419270406671655339608486002943927763105322018658530860877914486735946408046760954496269120916904634949759952741479644987706191486043678375339855723147015517203836028346678972645674270545763362091512672964053147825157989351888830860600053285167174029909496690350877141545480927193660002249285629753332118759232562216542186347981526453640124400786571752789915309022812393784523330548826200527414893742375621129536637995897668174037229550353429814255617246768130073900852010344996085508548570405421345962666567434589124704761561445148802725512748511656106683424410576766020868238377572993854002371684660324341541642531424845329415644227976594220821620531914573826781542506925725775898386627738129128766637717808126505223102856490281012845141836774628069163610797593228804238449051005368099436362376287976543271318447242551523087501851263130196713685143194580031723858562526407809329010907442552102354250484005963854566799218998489835163485625866746877842650704995329010304645192929568154960753512971830997050073705213282480724035120320210341587628411906380143615454363823338538816218091577094575068228400223247598846529712308848157579451350853419766546866582596782083013973414906027854376547270044586472904336611234187870939226334930914798369656694586009274383890165340028608505955532330218458955751322997171454036525493790867947153104602967454012464955563081890659049539399029815468265505050680622408958283686864444830445503050403314085454646009651241401499238880995510641261153855516542758426833092762865624588717138544471461400605324481172135711762414761866208527275919156124566986020097192299075558618307411860551900895948068046797280441634194396181701995890839213620955681296679225050467132926411099599714347253213685275318877639176450018134256242538596252589966358503201823205339124090369748375950081352601927716733677993028611591005639598595964149939913558676505387335563649395305618363542792347602960620887191772052917385058837755063202627402422408176559971691266525023647103804868517109052602064269033794994591216468165789155151824346189852140722634040960524404661558340652790085457507787492265304284347200062852149411001637802318690032496881673462798575519093320473114985470265974055828053016062524058494423589170757053814073402757856528948046563395535697436454627371977447741957358803581276643687906485870312539062481052927917942687542133303376623828047662744138860921805898777799880997310749058846073300241359100245303759605669693318875048237534557550134586998096891169220643385116588526051346261209863474494912782726154514774476250729944966412298639874239459957921065835761702465280718659344876095262840792037461084847990937863326107963353666491365845252308900142223153054498122715846067688927112771150988711249995637364426624168763343936339226202843927754785715799762828754793014264271981872325110571262479985951206446898460815540938533886961965614908441473721960901296657528464549334031392823712515821783661765719305856048382059527621369256653993619520612056962063365427245773781429001509716615156833091949169275587943867647461610595598972541807955512408424682588528784212928634655874553104225279704238777218317443096106166253440336966615747533778334075653935370418581234874201606356949436788880121098734053539979550105897058519532310837719249211435588288856296786682309851105895556925849481866062514469198048307405917355493392555313417998232306591571418430466647095895238997143210405028248819241467595374759526375005843981607073531860080073745392602287926776590023976814721896390583209494503460698914437305103874231346741770792718311222362852443845791381408889277509386916192520842321167785074170005000142414276330508644058952129246223163687906304151698761150856393227536103409464891112424074458535758458923923713822181018679020632367976699973136858406942374755043166091704237183394814351620084134453186452802647046749996110169887395874854168353902088717917248617754767066775419186261659100047003379916705768667438669607052856296372631068102882482977340522485596252014506327880090880212520428186050836111781094559367791322688268238320254570041507432572607533891059079029062295312512264475056676312689118774383520639251044351868372564953142014110868999000442881517928669270779219908706893329331552216843336119968522467121925763428860818082150029393453388689560512513690499836837005456530614115157652316498380084974172340184029538911732558523651940093320840120017361942699415191820851137481796183799123374319034170575565875241965060838362373611617952116308250732546161963644663942194451964004148725625161320554140202320850618698649483285589316773922996295036800337740687666562681901591295207879156962334111477752563320337123486135962286652463991418986621445499407840676938370527929620527899958436355614034768058314205418836902171384832890937848446077730582223587059006821412579409174734490624231902439804369257510426814093231823428184892657722902270114752621575104423916322091946827699491162639621249911347743992365945794811028549290651461940320956289073841908495647037743607271040145236357847091959630472442450341744979432568492705963056999815221340515038186655738430301019857891782862618362954377506822885962152225869022427665362512253215391979334569008502838626577131252610072674263415793309093496173634103997815003056370530237048010252544091977390093137995665394209013475513552854978496482855049626253254632987940841251641325789947806354300867685304227173850183540926810447921598020618238505305030905371023292189025686148668175639289631436854077154628193241498708095315274389896825204892710197047584313573381005744767853890119327277707824869570985051717548180650194902687807852447920142957089387300384200182581793506502053673880009303448919395584067970619862303930201941628937269441587210158171290375761028149906815063190709172822556483185819232914804014269305623420914969836448899604968124133576270825126156439249618145974256255198056588601741319549892999213139490767330576509733113742700623788041766559907742231179665176209170417371681490919714077523955842431741436406833129578628944373263705543538622163177205262102664065428632444784808939665627304065714339742558768329177772797806343790080189556635792752696930977696346090019696314541557528614245821905508059842357252502719868595486948353326198657359132641643336089395575825921031127527600168622993634411752571815289385588840480752032823553528792459713865097231737801341629196298769130290144237100829755271535522900404356966374538089998900936351893834858591085637184135309009794506972936911152806060709799518356533094031747517493416570807360525655454754635370384870338270272852763416636508330331860656059512263671887505049014746554166827294202831215701988066472213472665263914818572461167531168077923674742969454117532210681220907465768386177544263619627060726093608062212567420273102753738724836704590074736570898169792816207345167798079835995754995229388468612829344613345398220340805844949332125135548556196840502365632182350920687697826760078128077566399052343800523507635653383855633641969547270103510759927246606864274309650945611974442729960641737647051683430274012627275540329977862500089187233839135361103117093127659951965967005999552499468030340394821725385775446958702982780435028715456102536819319958541359775818188372631073023526877586915363213214294417678503896921721576645468888951439902798043543664815038089162591255177699790948849684582285429047938380632090139380366739852509846608718828461952342455543573487530243742940261976151857084716664711532476459738946377946079210945188289740437018450614593409600339529637347080474050202267335959896243432035354341016767046476958719452419099595959892309496697556905769004601329813999690110101788979066592824433893485894610010333429304697149013143089551876463149253263300378347024571393200405741525507529642702142085972140823943210228768424342254034598468362502363788662621142140260216342289445927704031653067149901067273550251543390346568731027431818014495039853655901707944687433318082502038624291252339787169695962050161021039284588282580391144773484616913738530100247036103611520828146620582967497323106012881422612019938210137419827812931195291085150606918685787907866111922815606421243433177569479490759622879219199788727031901737264763024581957024992368047252422354124037685927013081248087369541290027221618748779479129270663928991886872270137402749833878123576726614970898706988561593462891421580933339301463421943016899227432203176810963383297646042944742401364418565876250546947058094974668933354802515395680462629510569873053616568812582776810358960510710573063846848621478493040258218476912121381641299635204574702975095359405096680467878275509954835222101034926605286887551760887810859913782379042062303890686478979935691297491055259472936408102182613508224084736378363542802546970742991239498490242417501720623049640573664793724917669333979911069864365979585900734403164348415681992596197286391352978898057067668777044750914387712936270594858540615090586256457294978527259361337027322450566107242985278011027594664404047936746809220301022369134135389142202882568815656633000667946954837799295076726244936712204633372505572510183799071200794680151892218724889252828417660321311301579771747336671183541073909550268707700707122608048453848538193114343135997406993322679863995049649300593188629431930838372371182098095236649268079761940505228239526616612947223487817620073970482400785510664124723893696623114844845777673991202479033849906537552851787962488442456937708253859919374504451037890060946967921431367473293759803656919144256377944693849433273468976674236596755328897018296768741622731651797062164890136973680048837456596358287295894331496515665574861716782990881301340870092022806072224151226942541749626646051138333319807026908230945420544787231571564363377036644292365992523904671518154698710466137534871048441678301886480294482309040367678502545313416254512871281272750463056582094411204556503342818379854467253787668705711700320869361525663391167913026633472370371791136279128660082865144123639983007138575840132435731777617279179016659852851693663692930336885639456461927321607840659161302869596486992438333868120246248725943235172474851594399725544002177854261694456193073671355336149142065187919664162266840088011609643229472034191320365531793633560551757534525610543670724995754816191768673339942811434425564406530110673903249545599973111947134627801118535545284352416406499780638052779476826408595989927614069944873202567452442591106385425992052231712981715775129537300460846358273254039074078846721696062027915588144558117864666495784664710185373748184100109966217411781586698630338108456714665220059435841625062183125433782483570657649103121141744414809354163682191492983449060165691968855672727046535178620203069101847434731191368911262287659299045184871159778051783385565658535698492965983302599170850305612977428019502141182816317304849509131214889213686534424752928491936977227000256912123921990310787993408295557840967472599608298181081891616467431454116053348822491717867145431397801048623249210136176382998778531080490078381690344011464972155033665594439288830617346770466396186158332856595397208158167420530511166556651130483418330345530526962155283842113235067004614153052436340843065145143921940279498666038114781315453050620983430248799603161590327885178716117486387420670769691616698781007382522010605879770102577021812559214184285996220017070411023526247251539664589609207449606922148983717981173556343127430087046045918865418428355285758027267288820382030742564551215574087258414459796196487639840008633719567780581002379169884190174217931909620930019054371399522391014143823058139079892843706669119281505080553844337020307994959105837541847634142454572279529859665673487463273959259753490692657357353747009839311997969025429138173462712352472669766587944398196384503599488420923490247467785921632517271069013679579881972222476610820038279998333871848469164846157109384723733514785183296830533590288784896473000087870966739789804106110990708127063753349795225705962520500767908135584807216175687726620755577885014839034694266206331102624373711170914783847198237434158795593334949572737383997147505219695809295253959090806268193632178096098385764361064407461758019782292358176843885705455333811569378095945831497758986184627286079647072143355205377512379845496694240800266217313730003149742651993918841156120096530311839478963865635654281983916114022421958407232907411292965664179063456132462247589641051534878284429848692440661196747741009201248010647749151195400199733791718235901223997120928310080121855951926382106848749793590006255747170832185298049297161997391821146161674716233320789727301004089922193573691046374041587576074117315540991422198203817806184779691161291272997241615508462109075722254852246769495967756171201506126273129790905375504442491811943187884873693063576973462680339021654576656621720920981508234672039255651310395580594254500463985361000632784397242987357111062820697511679692601790290667052865604050713687461727615412884775761173448732473823681682371347265402909915122199788917177418205079973314785944779369638996812977536374707245693605731325681341763753725151556683911856043558924378037906094806765465372917669022974539163572746491604117865923342598703527662632746972396477328176105014209895840620229618405375455631381330210913036047804824265848498556392715080747124034171737936425985624114213664849638879945097207553321539696836434406590504563664287797844123277865419047146925700675316592804920923987399120918855453924646282574821800151106405554798730848322471178714088871322234221946909845863478448923958531607813678612311186131223907186380035360359097620605417311686494253881867845244371101288509806405400948801545324315982876458106063798962335546221698382047374881401746529599052899312571707220767644351805746847633483480892712374853593635165939858438328183844974682609108407895697557433048599553108806193681457920684041141859230022949593503125119131871798648044478090196958480530391446391956673890940764727579346703298295675221374702681425054762065562724733971398509197133932933249436465737985749578303652074098792610387129619209510515338905572439857705894549416818302265438531403490269039395027341286934577738642315345870294260800232102020331048150102423124278966719496071645795354969625759792112496110769952142981047933817935974875125538605836991487018827974623136352446756100931595599850831240258947059627949940149477503806773074306947697769426973916556870608452606302297422761586844959590156914955165614859644753022378717164601665963096074688021987445364891520970890688900184381075763294369264701166254128963412372436758174182556095106532395972189776442944510891344809112600085773216552283580118061035284009933924254094409740066764653139793880554131085969640381080209685295217932544080286950322964392319157803939709979072956567788327893683419088953581612690806526017072905236065769668126216357160678320538675451612609029784111489839279373679617290142697709143727713605291978570258533197398588584642304585507583996051425076477575268172707469387495510424762181210439430035418902346945981809548820958305984891704999734651809295560831217096196828045646714661003350996720670975915166028965642666148040920651200935845601811451249307348204001415833898234958233307561537171950641461529520025573918892050095385555763713562461324320928663727699130619445349236134352736237328789018648941713687137281276062401202116972813711645015297682183820190406555520335044281694374715583642638180572487485785813963394716976720199973578888222670291763282201656078065892483546078707130442669059225554726156919541149257535327534395646887310523362788645135335584508555487848376311754579324565123433815122639049250446999350949378540394849928300183316502476251976729419847286159547570942857951552165609688202154715236929938442929281395095520490675268898851565710286456790153743092070658402437691528045272716972504952329194815746903242919827935520167222686308959524087385149509249283156392119862490734532916879970712606392931549184467023101628220521918500217812779714826401536682804738460726342473074908995904409980446063913129519751583984611225347149613076600915467522793603766123338057239997313197506549365456366755012035053611010497680263930967943207619017867309377221850847730626239813111177978772266120054658272445079485378107701489153925473545597941920264680464606938185002307418669942786303036852561741662991223683831843966575331643355055259791666908799138007869618550195562260651781271307513238314502497634590118911919928865569015153297276739983933674358327107075427755949959620255442885774282345860769299904866782285664123720918766933715595305125370587846403295871025794317562711519547613110181150176142735031585419793524489609550468343690915339769624657458981321217413399764562156238184427283676477971352387910713152125850793116345179598145756897699187957865267413394827933716847187438310917460841261146664654551607225610540354184585983740257529475914058869112693518769557466894185327058900489543589626049203378668460413403226608563344899530386217443011051686667615290776257435833691796713519195884306867369314726965662901751641842197026834839279822898782743865250058892197036680513723031816978131135387160397733696823406399783071124766089390994470983949380591669440406867815434897479682183542493910479109179774290101387642045435866346944586882051984913794589150396758731978970429158663631757903320866486399607245780870161039442812516019707692355709698066988375111376389428665692726021189237671768880624122230775154741412773244704108360708954176291760067365874537026845480587204558858440110470001396777430349055694227566777389614789337781669999918518455609406014996391438831321675816368904744038969955570033156082296760704554269069644780137556567330465762292123379965287693966889517906040308768038757634280676260250765097452111093949881701053896483467029635342653806557533970599694283025268688833610388077684335185841400142982286145404567225931272007685512571084785746390485725775432632098892635968784441430814135696650424024128208279510866914292245978716316841055831789328555605013362485926979628100474247057443120931289518580268575564785219822477250503973349885805159691481173613733947472017436595805645428548233480113613431337803278319477696460340492674347192038234504175373291253872888912706200062748411631591954646303815713189742448135360410202374517238833882982917328891762404371386848695759067402561168009182466564638125518976321665610064795226688176562168450549099411403659180400913068885823810805523623558387963386182088044394973732068499086147002476098952472733308237029416866892448750567692685856070568760622017030169194824923324671982908560894758580976327960105670765501260028915206113567607268280142193064612597008681229477127541596268488304794912699389716058652075455890959156454491384659597869690993022306284570114899588880967463104556978704773047876873115065786587502739471643268189840198992796818176057564630945252954791018722898623701290706869826878087474934369957151720293932155911265705058084489846616062831125783504196417535250072469548008790892918167862807121671215886249901383236960588161913230825626741458359411223549049381503716062280846294970146812514637995286229926280890188182624701762186784439561941036067860040804439004751841985209478399694177919164113781487146224021339910829163310598962756727803631821015619721837261861841933662955429408299784778897891806414982746265352753923254784731139731599889401757194870384306926930138804428252129070129192311893080266680648669869918493192642613948737496642215347454122243825778258934371528642287496643666991131273075718863931705190136387480627803153830436234988809114642457663425976281370098872823847339727430202510311429664387661843733633035192437505509877883322100489527993726224588917237657623966992116837400775613115488705894019532161506846924197766790369426380864318611446298281428168065715487792297224010346481531221042717088489282197213723995412088531810030342335171845213457627017568821249719896320112184845590012826686473111798804992789475784238370571738512305467769776544039065991911439146843267502667879064570628278117300931764474137394550281110393952137461561452524496875549142800910225967328047261316429340311361457151869408312575154023852867430843810371542973807256602449710593409869874681209907430188050475165306315280356645123652573895519945219318423941196486902317538183761131500774225272328629518027253887082916922206388664500456101123815641760527254271445009318460506791508566802652524121664716710724806798679595578584230481954697772700324600036198229564225964273195877846941845069253060867598025528835624975056530250361576699789808175573444054344892207741023185688305983669780897868539250318169668972043889589221161502421584310788112670164516524560995080296168137812371399635900036119547332785900736614417997329769769014279185209165611813972490307809601783845827041549792097858137242034677981794431402736407304046883888461786126271981611736731697721206221009771550132993291871297751586528840344188207915814529866802945207581664529251040659373908747649017829721254136075539904651532927887447251795800008294198741247501568669020017696387475248617574440016231205284014185540750432563167819930836409129995571194311168350043462682276897560966787404068680759517888702430131219769129777441659230910896473403053536557899922265458449648423666873322279430070855287186658425480107956969934927941750123325378175196457792947932373625049776701826116813374776703402320834119404874556066584918199316705590722290840565172236908549695577186984942925488777456638504431376517393631112147019754144093227913154154404425479499602934957107956166444028619545442138865778190270414033947103718344876458327036726998792632426161590869651323612278374760102535484294355660247480385157139911078764711437312286523502462615008278483917628576966238041073183408851822229429807693660201549805391089178787410795428119504073765261469660047669536635929186456461149875452090397689488068398153832220667240412780437287915778778049257224770312465368947750538338722213761580341554638428534755262961455539988691381410999962041926023723673997513591060266468733204952649802063483971218503163435728877124531114004469897192484436575272685338653617370451932696157836584413190632563353238608056595012252411124632951818584174224063736927785987872673712690014069891974001069146743140944730864187331257611230765661744058208961133677230910736839570028182729471503316345361149784120894350489582192817005444015014718684369106944895342055391594088068399710638828867837769365340660584107284697707668668072098419107318333321547684827691962855522176118923540813326731591741186203292838462806417210806200573639953035561995253133174823874050107556789896220823918532462860095436858559692094991762295559682259072851930427509981775591681802642299250641551306491587869806254841040607579623899928753431593367714374784234425113029689251180669737189357933039921594141662857924806002008921888878905265804268871323498622153205312435844578949642317414088016112067779878086215831520890157276465632622644937626760997638267845154542238075131244163550707190798616275369499882430573263877337011279385064430424061172722413975418221136384511601458866169599560609820517474790631226801619031462943850681412374626045508517686663748922306587512769709857710188431335672668020393893709718225475166133070105590695853769745339242717907581389298619464003310470890905763511823750973158362032608660112583258777413095235922831002678515738241034298060373002931947658893348031366833678834079415227358396403833308438495803200797222160894318173582072822286598298710487666637759682630777808857563790220393920456847957135705804996551592661799954999161238367825243556119663530840068457186361605185659393928449083523460221468205439331720228113113096131410813874879599189333211243173315827649629423515723059439621048858334792338639045879687507259693381624675964289436096175485289292958976988096860690124947115267431230761607287720713663942659536484671830708326357411622191557215229667352071213225406373001567846690461953833831717315378676917801636515060045643778540752366759336675730873756342438911086878318529540091108170308070189080472210036932039583404434216213188605537012782077499995942413949222453437439658758997021600840249740723549034086963958455193846792080432854381238480535730508895142697637247098100097430130704738113942148125897697207369261505074553736935116835419455011184211293267353039503953657002969678952576405020348807455838946424977409958412438396460471627569065231306454516743309271013876580111086658736318426721618315742126930414429690046135244750207621152466259704866420598185211740055126959580926718952830205588434635743493562592105233045987494233775797231137961306445758479207780229540882685947298228737792713672575226736152913483112098682836267894691779772715472548280337563511623759515681607882029598530143370660055370124110394033026971345277382278659751091103218009748548232821388654145567564102628137834060240827015526768381779200229244368652698265708397476663316307661378115126468829118151311789142589210295536145250223429900546368770733362365689341904695663533515180664640201049873767008603719123100137259209101399983784721716219332307677150912679126307368038830606565446992714691041513916583395528697940668212122398703819822727290453156908711849480870153328543660342234099354171959916574094389997135938712242394055163354661500452825402323473551429315332004946131393760136165923466402030309439034023350259323291318863553466812782478204131475624667798431712933726020615087395313870841212793956972223578199415369182564206260743555395008392423073952261458489300949506979971931105570645215252264465888574808079988904545523618834021917545180156916271891580770168498453571702870486799498578932430401140687615984823759720788232383880307440838194816760166431467698156897130562941861060849339295319410284255373215599940584111595416319578905340537751761890997035682783443086395166459216068731414387752086402561756189787735074098860950603948352568581026826902056728396977126130872731212136658077521193305388785964278378203349371573550924295877518826969782462797071121724879165333392601840235678038956363807740424225408565037064677853573124572090006041479276214475779402352924264595436340149649145600246697100596292596178188943854508624062345639069141352912793580165591971974876637649244029273582013406015569373223140662386165830893141174298723242157073342866179545618963524242004979166691798930645734833864821527275449867405164366326488259254904461493122659701772974391050348926790065943646309083466378781152326720854651865800912705652439217464965366351676744193856009449441380887915422661606210447214922108046517589134260257768382118113438460578490300203049083112051401105586199442735997642401839720233323998891732873667693863076058388022098862878862870615970308541328981611169154730512739251873359574164308903054395901407956101792179100853298335275199790778641582276766022812267322309556959865799822435208440371239764246302033203959787730687285764214451735311663836190933872411674962433684191865448743958689770670141988269366461656131598548552945102674785564167115860326178310517516984102838393348726566178685312727389518783723865164366398608993800495582128348949079341744357896628475466682589783957108614594705341917871982215852967267103825630518549977164118095150023642248260911455846330982660648066826984644818625184416023209058373461778471191060099754838163997297103711373385682320945816452199617844049720336926695595439159251482488116552014797983693377299670131802840216431309793721331556224119723265457833212702141870598367632040000371770155836694916478193078405639609998582099685370383224843988468792674598863315277188842654607647329005553515682204092551878675047922199310064392931314222720959151025690450394838146928073700585981878724345067233016732669978110980649222037563109482363604894297533701774766768532228477251301651504977192147518893318925585939166205990542690097247936430032827698149333614694115510698964622424813670434700427834436746119327524860408728349422793008388467662579554777848487620607371672455948404689849838202304267943096280401278765903747940485599357683824181909315945511570050814103003794604230262740872729441998200257128357188892709710741944427183491114291872229743521920713134068045152204617065607659751610379071427882343218265110905712996964990470744086533213791288415948498704892543731026097226223405710398707063928850436317176464446245640924681616668760048550708272844795762207315198728821233477901673922024212681296885386661309674937812202927594631137094160202719099899118737897905783768034719568581903820137793024521920906030746917864005654074046716606642710629782778840348064026757943585443209026429408558374231393355701283610900596567250651891217250312175753876268303910769991488869962139275023256589264049275532111815632296239411611733708891656120520542125400766408127993753524069350474332097489804803344193942541382174000994794898108706750513501662483007521508648244492603623232913951047549530323464755430722039912906657448009606610011826661081205893378882134925893887862371977525798974976352593454562200062398889474431339218896603336243655987725528254178680932894908674311639317155241080432268801060648298927954493423000268181212700615225258475402167465364364258764655958421349537777645033589614170270296162967115817580463336538178313606977644972386605778122286339422169684511319632561026166806575048381122906319459381274650313298477130151441438254530509315423068377327584334019884173506821448274019681120453876473567003803642190410259856470552133967602733747354287087752763725293811582043582740196873972512347203347925036509540284255215448433437443411526619284026644136005814361188965829502723969606934443620406290504359383166089359668147204096987625730293844325684276657603791731005728759356750602774878708285336600490064328514234121553213360566626209403795045149554303122948407965412168861949759061448012317194372107021908951279077311329546948523661271248631896955421352807050948604715378302056574967244327812226363682518619920258794610001071845346420333921660407426197518744467518521544300973744375472095050548073064858787261735618608103369527378557395194230920203665530388841881286048723883648612186023918928612059967604519049315947108409305171110737508763853468438394246154007191343701122475352089448920815564906417527872076693608104081016155898954379137329003251876323045778574147701698041552838787777937500272960840374262544673581182555081394924629004662423985685592536381842614612330323207360352899048589679935464293310731088439243910889365167274485956255423967534966149447505911473360454488793701534347194347966375608139759579799952689628914260030827273983895596771780459193315245006212616517806418407450550297344038485834378813525945911631303356641963928017799510743455150706447430482034042603903161227971957868415525593414803317512805698151111586688242001302814206853368979461966654662377566622456359061790052417852660777016518932369162765088033513483604095324459199766204321423991091069850893334106399156570701343055598540703567646746564743424824741744611829301274322958607263497551064288346423222274677943700730586522222923703014763276847364046563758957498768279489131711696972286605369903504193961224505624956833552412384019416992975578015857501613191526484486679348471039435772143891822941265648291396475292997993769046312455054099870540263473430595949878882559952249575010246493611443281786289647227632750324732950692928589567495177084426477928094667876342657421082510385087031416735103953086851698494504737917814401037843333169672141629156872359368199303498544018458310749934730944997592292030595355624252031867880637009615630677792219893819967473250877785302467852774297122260843031682710599697329206539122222280635582619111154141148825415754157092829813299720912100396044419221200423394092562611360013704893962306877018954456078654892699955721457851115033014978110824827420135073740782332643304355154189430165000317473629390035574446195873181452219408962089573216660038508461188149475731020166431180897704993930211498429319939490015989903183756012449250770290107969482179208714750703514440818746419994696349545041443223895841331216652856138130543372125687168652213126890413389811898223684160247730457620586884635430762293470018348026717679450792467102581467277968692248538172340078379298436453729795343686824030144576348771501613463800563247928756589096366096589630048785530195395836624871155033236024758895494437249420365590463740705397766748090510460377292127489870470299143453560537010141196958406019085467714982388228854985438956893699731101520208183186904596105243459821774161142963879480726037449820753404358457842375729115846066266250395145811803151013138513595495205384769407782346081450560581608871041162553728279352967012631864770223670569081296678823539516254435650287709745249951076589719075844645259460015237132194501365059630253906127347056523492015546063028380388555430664643880672950016795861174886239155797201005719776736724426478981205772698596728304258088572405909474622228404808344822727527087691590170623866329573036331719749084363121832803571037942518086855523038989076220158468276024267829174011668050172951024059706543325042939334586160135432967482290662271249128554825088825191245041528320195894397403504714162900407979571378400331561520503062068934959370401710372972190066564166959447162821964071562021054580720269528782045778663285110139631451353151329906190557114803746099949944250772248009369295293551136590828919823346912612033447582381871047749195231223058628059003153448117839548835984146645447033481921960343293308426229767991944701748161342655915603650990370935254464613847324117732494891466984018838320167496736260721080630176380167268157352937988477469983695410031744094897508282223915975817072429355943882440765874651670542627510414553238606166503971835613462926625409145104075774978834300365089521716691184301092328701908118866952706732713466676975735919236260334453651605737759933143021041722259908813293093542202860195319807923915813979644907126943929370869743941098989742810040203651371262048675609157446740660276723811144175805572340843201597299074457147436340019518141570960885159236267416347356185814355450465910620613365946609086698532533697743789456627248254266717012738826537532000116508385002995462971841691633251358185221576837167230065616013394388468237638486786402047706681320227165486147409305618803780416544551921206583099792528320295119549398143064467661170043792001164721996631961722782861795175613752354521082067524687803096290278296999185777676317486070407884604754689365289347225238737163959416121917368596149785492126658002366125039101916629448136872665171062091115344591160394255512989579224893113864624887954035259932963881996343963882054967396135801506885129553701093037604933911239416788259232250512944938176638682816349115430133985187088774439047628106432596423317357811894474748103155439103356975525205854443482621195666391794425746534503589972375434050522874571557237035385891552687106501100373758659555835418460243013053047651343344522118747179066008874879689898557567497525545041726565245234072739997676692236929979805185093853876126829995126115360747599068497820745802053510010507896683223384622694224989254657393110150146603426986408075633082915364155032911575844570909089329090825737215130190720366807993504340455011800158038379627868111412415509362585484014965913355799311565413657245027440028826351988279063766916195221189910896887357610343633025409493185952535989777002965995571902127182617133851257136692550395843062878764549064250552200112850562881730817313339729766756874453455114396869166750603805057228162617916200590625114541140556285637267234301421560663998136759653703984724006040824714884944325125976170297138952333681607999040642389110022714182525494296377180890386377573292332171517432829270805876815540757262484310640653167289953692139135341397917087218368676961427699073723098044702448377692264873936843728635843930004506224395876836825111833277667766844539982517327332866780084641528506455957078592656616210706585762962260341875373079243798059877495055058001280937410916012536771865707909505437208619251564580695356973049144842707695335519957551706788180530131878195175041928609670626827005773569300383780457261604337147934668849290310095142969037244163158219298671040762187138885572376402291793865057264366774618129457587129884233222230685436241682266773697265119067740721500410776353142849308327085655556905397290568182797595200462334951092494197973249881586060322963036809876680787752910186349169489024701447161495819875004364945531331701087202524169504463262235671671222248078325189268847556109717708417193427747423022750226459019973672139228025265754779872014272032679871050425138184423377259035269699199662240669521014944591667859338866519690267779040414125297442264490745313724512460317534400949757525567603926431859533936242463607752914077687886783469477044094155141066517236135096241918376435071524709396010787171159494613386368799706458463789864569204733324300752051587143045750937826272728881426998153253222403510492192203752299708997376129375331268791134022803523044147224634480948083464867614859045181827597793675586688902257123468424627737431784204777076936427847931183090309536787495548723589353750302735581723721770465620650477201011618328915372060635468743352590995586861264789444149846300489528880549643182672033016656620264051549050405778460463685796801141347836237851935895986757350287416020365485528931156340642819096174717654450504980549394026356936574242654230029311278424030299227627342050722185623736674872009955738682016596744107631216813358364560375480724125290568555937043714431097559339430198038646671256816652425849623807397791811136027965344473006285243333853339685360711945890006675404828870516178466661914617471928674938698399250100814424904037464038225944399754306065353120672777161714218186051176789645984948034332954312612757310928769374011947678851342816364208210489856450994537606406443502686587389298808139152661955868421811001713504538116664273279452620839496463193446887215998250453068150677983417895814818267308012254644021661253738754373560427280555037580579314435516753375358497861431888936353945357925802547950057501021319433235270015484836148119061911464113392254279727814436672836471105411963525707495041771815102247565529496976396214344421501130343219278612011992167379051310227795279127849377037188912490215516978464393943209708053320429250996754068711160537666034693478750473018666048713673289498947499843549473671827152092592888044064988696008793832395425358848353148093255694909127532842075166928775982816862267408237564728322965811633421739364376995494308891050841744884197122866442691533988693135154076359255168723695450592906014230998532193401096087317818948960522356612430391044791732334431513675862589569219267245289462276095440092074831832744650815915520643552027414144598957051398857308775688580218680084003520281496874814980742740176173912663094949721688773324093254150064099701117310624165861750318691994358069172656796287149710200335800603159932274633459829403514593103201374178573291802533202209095740344732756614217026754007886968660374629056538547020534527224601152134803120354450832057748051229454726520932365979231336992077407566675165316792093900062679217582186783169385009582266191787216994528433034635631753264256706372015385680215164426323979128750005642015306960375763144852149493572651192669459909829706306422206612740694539720321482847432456281326303146272719135204354320669989482987387243500179500530400563684902704259418135709865592953355178308295442685459537304444094623382565847250583943282940357172583350912363324264825331466641917685795542043552696992822930655053397568205005604234744159419865131505696572447619291203931042455069819954049182737941803524196397668198094503228705293983759717908584980150618344687226860292913653843915714435681931960815661776444432126563883743460794563129002574029906416888788157144270474680922220296023878218856511122747220366968496297803678779481121085251502585326307792998441078748719511775831654083547762889827977063758322704798575102434613382725653398689121706832515684637304543664138982966499473642942086786050942127829764478801709312287507523322241707209901553102134579157689883410814708957092524883231527003624314900047725633122366523438411868809703693748363967693610768234234497943423448208262359318012645348896478516565775348144861610289058995752890922538486484049487844280803801163954121470659383289022218057125941490946921154268309806486458858567177774723525130762069473866926645610311993994748836557948496361088078237894837047358722718353738107375236438936798328809120404622736753093433285108280370155250129841622433053112727610952626335704272106639260411125411064896445225145700085091995005066273068415448593289023686723541390894356259571254351882020190770583860851467259057903954062663006670594817969258437155190035740674186158699747356184147973602066209132490593915043927367491232147030443359357705492079440822596027463012882247385787699604199618039914665972006736171895417969295653802259180833704353673473046276326751036856244242447458529594215194727894349814366890068876844021762985445769676433064043924053682531173411270578918477828221275382792128305048105075092502930391258534049209666103590494737561204265639751066438214570653138494844224338862019117675019464736412618076116552850411186188246950905093430793743741115188785143555254367805372343535275191722585689131257263817352252958267319133243947304573802199424436593118044591698337623401946320452684653989037677592531109431454327001105867821994614443354936618599051791251067914947592801060468822155249047625536250466575741885760006236680576393124696632525901712307841863016960393220009028178018110380565314905952173506202572082701682535141476992744824933470424389514935611374251670825842189988094624049692347854794873306171671395473052291890962194415023812964257061849258211498364631624412984983898712233181579326544908387823785746673097888408183358800688480040480831722038317669571817724299350121366985343412161132886024856028277776024650034003869838333323084215105049416458848707232317970109793450176771375543127235440950710549000889965565158048776163082201512131122123936334574169582395407549634684329338976529572006288785762976536464699103020854454450106395624559446013860518870250726470059179732669078889195135370899712732319417835480630706028582283500433884876338350870301852686630697092159584189044907988776136643182670052388474721269576382522218525047385752973507087325937833174274810810324575006484090767050226673881652948379734153473075677499317042591730892590292360754524568452883360061691143062221876348207375443835813475349852252343053866847719861650328082560852909426646562021630532421375521540884388303120064871605010211234610650115073703421447321429577495276510197494341506643920771072434923718447530416006027533340247956953835793448107806837804683388042808787177962742594773533227907150565607637686796334538241978802946879210985670009952401273008018051730502537248461153898674227397529615533320794201610924211808533997312157934395628418580174708815494800477294333726999736106739590246714741325881870705459446943206398149905241380001483614380334930693525552279091611279221346416012922470377984632821367642062452409991122097709008123647117907348889796774301515580325063311298126411504888146611618283825047332734307821876686456970263107936239977613179071857106986288182638298318601967249296235653620758310558593551738417082050391791160563199256180800792941685836461613460925009416731273798182578990425032085197409775845331513019821867372068613093519761623767854088852311473095059224904588744707250640391072942032481329189204461591729883502531344187003216772340539400891534295015672213037654798007435667992228576803051606843848341211015461456764172899289800695577258419823746023762288336892259563347659985149974375254635774189059185447778098341229533532040720817302521066605132759518599533046535124075949286187250415415264831967433499378766752647875129889299367231082989248031661329492505654281011597816687249326194449666466178882891328037548102368126395095723310201941938005513008989131133552626423841660905477586059246398545313718436943253892111066307653383748451773542155872674023693577863000776709861916949169509386440107107062026471705901288865851238613428809163381271323027172791821735488698833410453282153815080997779376839178608700933224098167825540316624233628015000256550666128786641869325773183369028447897747759396477709055760704232741400636994027213457819829876691048330938776546486774635624862824797751599366225617631617001472286355991083834667098799063351959304715499036908919351735574362003261146469688097014494123670355772938224841568220633773456244659023854825099709159159131699677083835532798556235643878295790453189383532086242989731163317265484499107141428768023815463690688294128903562474327592557404149563141872018587638711496873504517500950253646223707349470006915531704438997407153714049703501641966270779929356240368875453682846944075542748174618337870042089116265998923781560460752073135220448474578346119564140437278659353052693595404617377356026461014574993082572841878525727933073526889128267839231012672729797771485102242290869532935771133105312955310331663879110842301054192275697746419025896780524977681468756714498950833130220677563363196086659848754383296640840099272071982161559073592088138650155932603274333696663105346699244414394862704068775361021351157650818487311247179677336751269008977198448301922826408124283481875629730342621707260417122797195897226169789852335965490850945394862469439809615011510162004432759958235176308632818128246497646472095997889302423455602755227464884832469603561954353880925520065046628502663456315254185879910008362155880436221045728782120385688449943015263153040859560200787758415610837821599930607629509615915121703505806490071923228813755311693705236543832529785153896296613547308702067747540581272613673358567966458282416439849911130170769465975372177568386787051831593475352998647178586126032302813459348261172946593929843800514160867937404148038162043203710353730250514167437874617876142802226677369309526445188021424577351631907230254174163142998352293493588092408283364931573648846343160383482269388209629443974715334931676506149820548389414199429496942490714236492280979433052665133079400759543676373928451713624481098965423797370284192992147552772832122250655609763276035197715186727072949563373005370718879213212430504425925244114770716581715829452740266865321268032412121458558767118145199859399802597144810882508725266159200257168344288220017644205163407330956330905375158549163809094191331384984828289061325543023122267190747728458076648320223123286932249004468614261677039563375103255569365085895166214958089345648702681854725041596601846500457529588092086221739869088915314816560995900708624905538885568731663290417427811696937244129559546414060461605629909199401667422056419628292953332182184068298765053444833927830222878056455571443948827684599628427738191067130192710978567665714022746734925063754618805986959689104737715103392546052159777523734218727600969470368452736364154022286468937658825232897743442818148228159045494657476366470484127256765523444137946507474114260511210194515863314662047417048686717323796626378907271209476005704407540179053972582840104697536609380803641977748517028531735375497650362205238397077657226006940203627036050596229624552951084444000389378650308138010144561812435851327305619560154331145671704617375492899449136961733373662082551944537117969240917037184983795757920772998951798608586005842271286234962201352917199670558185107652325984584514321612447261445015714446906097157719881987094365276857400767708141004538455889336343729824928623784065786683878872954612436895836636058193245268092634121563216062432702512797043749135345323084882174908531395647115601948250524077336404361133738370722247265914397008715283032624070895836363171443655523320149122889657370858695742466154130967810071201002466124279464198597893845490703623256237719695970656090679580738098337334474068241780294751283612680693143846413978379676039915787128823038045972547357024886921780851421282530429802082090293247076745374303244139667630306526880610154125941116016779242429308228512428158726556728013017133383175053335524669754769485611802611296878166504684652564045457962202653526925132336964747606192353699529999067613627101196674586996747287159518755720898519469506329416883404665958274079022931493411406125926077666376591742829593433984245990168300555423673216076402022340414610364377412141234415652550733789186566531572154629811346492179890807493087276604873997292726157310915867854113821283538781745131035524951875043956341482410866719715997661893509377948529789963919149440927971152180760188334911200425072797125212850110713208218532252968944260334631293299234839358978379556672009322283441010301525414528889899950129930771925251832185988535912828694829757528100620424074771079149420472997754762394992995956010007905578426442403084643991893030281823258995089099373936726355034828976828982117836304657015996567515009548727562168392684215372584828581703104183973739776349706185107759145346598453559081031883519438575361323672412753812580998187358730744770361439900780284823383746407775082812605139711108016167505879279927824182725556387891526495892789806415212276382210854852672634945909417814541109024881742505336150694941871278466479083612160637127787947923074068662321431045553616597625134204875259065484598133887815124055200127732958530177598935561155144214801876909482161421402174942423326960979085741858892992942951725348340604162947797570140394061859226784192130559282324910724865182238601094477068100175489243107787450206055715640800801720521253473834507712938936232582220734435590646266963208761701443818222694024462552222473687005517542019486710940525153135896679135001881887052403835367764719647492256362029148776163239937894683823775553974447863350905724866710157822531136194354370119389204657592926005042363662517643449634306551414921343755420354445288008377370171796782214680341241423125259098635760112860527948150485451857936776127440458689212011366591852305510984599263065380700146845593566562711042299820557849936999445211498791803016736995464365533558051604363355415154009838193692056560076106399496346058038296136964304406931869830812985821447767141573863925289044517263835230434031179190086589111815003808857464680109665891908662439862019785605433586303983949838422395790350029611822857638688420655882825284004031537806000652561704466430099222553228302045004092908507936401950536538446109241785318443950656406634289878508193531406335672161350482997182477273884923171014040695181959279078279379412942421808765810005741824634753749080549845662493535308721692774859809462307250537411441484613746856893331813587218626338543315634453778190040417688192529596350757215800111327164997531196421182052754898973002795551341557559731976734533645187501167100325373971728657951927715522991822588806048852347142069426663931075968870590098277315233456079620522964493462708590631824011235224889555959819795101315704087450584857629203701881887933421764068659243959271188578699864657686925399105009110493261729866366507378384196162964808920650780995284941293020390011113453626667350762558493903212133189568647402663683962336674313642524429714753983599519808119709476324135889416468269041941658913987501531442180396107044542133084800084880402208001813263453489037706424657804931404036295542371178577127705228249698666548375345748422752030144729515639141662838950404976693667918348636645976490023704063109130600150816165126771912947340163154100062426586299001214934561181351851679203288172629776577451625692909725361176128100501659868470093142096118707704033797703110962381760592826448067603506846280657504000522790419517932336590355263875110272827003843610042007522192633388075062502815108467695120670226241231603531670575510648167363773982610342286626741047045524121678808414075505052441049813579812560059834614018586083984306731239584557553573468198001289308337306446773089980182488962215009553877269466471034259476969213923688627088525634780783477185231581737164606209212266430467087091162644982704061298565792076276577418202800668172051423482391705776502925721561034413469344596772418234797195889646362507668742240373937659056237035457883820138768236077718553967691716332061669197935175135674398185254369890577271018118673564953779985456700157640959817833727513251845443014334629067606795779454640675352910111164317371987498686398835054083354130074160103143157939811015140595294308823499849456251649647031525421804762721779531720336452738327786704702201730457405579329763107332747117997075426805370248182858023326734123491665707649340741372071418338891115721309716650607054152907176736278103094215844592185835449400431129013567721589524580099861099167961296110468950191349965107789042582762215973800023439356985348925182270400254683259759675884427654336735629251007809232410525873804900473328942535480256883249378977476284584162949774085425713396528099349275846864732041799285081640464461199791513398426585853838981629198765294585991540313431636854637433953752826359248583383962191132540016863096102039198577553849307905719234250038684810357496664932435252476295875123007330391974268679201027984574004480439137770387413507178570413911395220933300979229543138094124579982637427471893345420396057340114940375149827942174292787503514650885574285657016680454018543309143238766724155045940794214258707256092739856715719135092456972961314423159990982039511626531468393639614573018712178589964713081483340605922601124108517093486716813220473727006406276472528996577759542416934202302656155519454200962531471505634391026632612879796075837336983313059025377243573536708474584090579426667143658809427355510128715350244509937522902802766763235517865998503341763147716719893463052197071879023833519456101043810951689180513869588532030426528365890557771737362645897697033595836389477054685037074375481558507811307300256936278013780035185406313198354320574282939055940204569951613330781284990029332054731100495034106535812404134052592108885972074928125425510175916958840106872320805223261265625190977706382198249639655711237381027799843799921941823954339872266383072946153893769362380895553281414988541962843627598003121539773316029586101061481860505317417827216795309504769958180980675426510883492487458380230993709526554532405485557625801757345031754378108769787268266961882175615353582246547600315865047518987414241955155704777245585899001067354936536329835585878639129847349102068384215296201259110947864415198070691290564071497895357839668211463916330135419843812033781623300392920430141795035361231289537789931042231560828793229027863579608864836471564955929011659311378500980456615005620782803243419078108164309764747152820063101374854858186908280528861426390514061829799442221562115504132350563508000445684019924283312905521720967611808443732103165974685572474658928120990867672416778037570649006741494762451994627925886483154901645048561107830826261131677242905968406838850878235133523715321621013367647354982255770485182040995769481054747861698513859520527864908651187851829817012785527780342679824829981856513821021630921246781699894023523230873174533594278038663497675099681122669576049008848724751328182415412754940259242844444074573422256347484188508639336443598750696628634387446981853443108350674792183062041850700490900483997217643960338077786185857408555252399609056712226166159958790127030719345935287763292364013448865821601490296379290485042481081363176622819480771597577694470036809567778231665497157782195286009044074547725767351047242730062572185545802290221953915792320783946886139301888726291640354851156348009752716420234375590433841096910545438881874473105862132920545273559857293659758886802204343814566399968384682389391118680355556002601984403021857579704174087111713747188048748465580220941018099376975725161749402302328096043024259476375323835544200483803741079854404560505189091989487621125925565941316217726195080254899847978987553348513481752960572904147338775873222594565591344192430140181694535301971137088815377723935692176868195957283440030905823830372429878080722331949210161527475666740208990044906625994152067089732980944586368004306977841364552979201167696551295794992789434478517731922601453339584909384908426962720585710492551877277243803335995137762839492283750134764309618622716717569153253348380010271067001895652510015454379503400339486286924829688541463101466532097162294596383857767775226081154106928466358141984686376882819945131650380011331230430498496052231607932508705971282452824930009166459724533119507657635728179869917465190724551056286040242956187812136080170254845573385161678467466709633919591011330373842741929123146518847019211558141229299037277678193622012492362161841446724867090302161728020831963667735273437769204974820526792598480601784207058520317561239133929883109297692352990768781604340305985283509664370012630975115069106140849988526062877783649816329353480108096336321673246922056464381345163031133338404209283659638562497797318210064668204856319934796264291703299312330702177069149844142250909886430635619056131987473199702259994495414783376020168389855831725443714352940186660883021880244128106079820958153383361742759266987876928916907429216243585918944705176984637563589183087956900147723345622165105961518179928436261488821274785357605104466824690097955289723491074499046099238240466684942525829793826979631649034800494185827599379199459640091541702866312500290002329249227707896165822756256714766928913705364716187055901365399952926497899041414106655485050229134835081494979919016719959726794913528596844183964977159447183927258051474374414617490624854553695092588664633812057178683435677584268983150694058647411749428039132212624553367152775095026293234719115692895248824108851938288156141752640587491532023685922490123526763213006645612540378040960432753562412936660733360909554844912262590406647545072069659526736725097486770551542177094197312815796006803154937027558808563793428727899767610463218207871289301941638997190852282284377397676175204423171450932083233516234636181741845184036455702802948475682686997203935671113298023907330487849188908908332933199143214145938967683711423204679304292987577367746134979075883963935015884858191735419362521729805418894490618138896760729712545238098483798008797731310113057777132134623714256143861329447715246825684007563543026230711092266129476404084685067376944426105032981232356063869042918107972497676944409913130124602425381309120733929114170869682849042095147052814234202175908074621276961842128577827845064007788018839543751001280328869426633317760518530669564777868389796917718617724541547695348483205627456590373933080117273143889299391014195547237678955361179261224082793598250830116253041084140507347485809132149376956500105664000227270343656489889682081784468685283063579014351954295232455958506816473390932545441912614834934214426445593912069073734102132939078685059572223789286636718673929869425618713555614255956612526029976466883305829228050168218019576871587082480442077124694307510857229894151856087732572715933091802817379902434020374474096454737728133853991562600127615451656271200753902931767191527738296922113936031917958369349496311545924830506293220045817399516369056275978162376380874562737103615082403421473805602347136579724826902514600185329753078267487706442553383530258756198810483196991780505229047307000985391495446420881911865521553434716858422092840125889796214599701606617662957347680077265289336531861279847409186816557950203844583850078533288171499959446258662627858682392842424837095531730212194072727415549317270931966229533046538731011269231939923961758224942128999292946760056640097754630681015367533338481035058157003978490307139296386716842503701868132298738810927360173395586056138133578392466032078590686353402655984638898421054605757257219104531405361837056295394833709342690548077688665227258112127236086466866430999309401915777382379666076127146537966951442602703185944899072198626559837611819992071100737651502721701854584092156078362148352218341971764423640632064885692809252099651188234414434747045228745074244378247076422469236978453455165142341381227684496297399158606413726302259661120572999422840517110856328003808839725858188610378931514199820030182028606286603564310638992883785735762025863618338443736136571384143432175746918256070253245339039802579693119439594640420045252664620215710861580875994316824066736693322658339786029069827980094369556438130584999385357735378395664708093209213983551367787576720725765085547549595951707783780869935758766034743143534513179602620995011333869541923226074727674837824462748357798244991761085496298778507960424316388067817358396399576196434289996519322135696744718539627388843756491045303514806706351634213856004419619094905680424177663490180977879128978086716431020994931175957189028801155377415746799402067806788966464104885346418521083612530081989381960713829981609142676533084615051049915390155625650104738601493395392995258334280318005684080315316666551362336823593053106207269967358456506137945133551506755206288345948756513744351048417658084990295641881102662694235754003767036655165276200218953756887030772219469720625099083893611003328954861965114087509066846569917036978327053767752080504574129781439726141067170431855824608431322422615821163407437854637379441211647828098174389599839838355626355529314799371005199767083102026973687855407351034494406149294656658843167394115459720443943735788406086567615987369190422478261021301024964736036577696074168709220823347859283339857646314191473844362529370529809327245567161757543208356892380946043963938883111403754127427502285054989554887813988548120212748698085736871123769954438165776895675505871648799797011738459442608534614527861901024816933107126469533266226688876583828248107125608920795181694688383639159419654682266090281558178033896656997311888630089001538509885298441067140520766173963539131688672862254935342053238476780160525661622257219932656411812822808918655306812652554692908504030541041753431676611537206746401528738906897624695284763386219903037971333092520844278085159192487282857550250655353188404772078809234163606658299971957363453448792498206494442995694824113619171221241897659552565747468428643469612683459233313675894965988105273003618004560449357457375418093000505604672774655530522756463216572242819473946465037733002175653205347615261415557751531961937920905782739596917502519576432219350696632625253851669482255376811560530175356109734462223337871919905756942119863707675883266180874428376190151906303378021880614923759222987811068047510200126045621275420152549814390698535662017515537876618784816794149745752168369100308521626018253392354314266756673433313809434952775451772433082790636642315376741353290759831088866847633807628332561424609857636327283949701023445832383661537471818726426002813579480593456381892974519101473990344982510536435443777607949627868993288280255149347486154213902112125315238647570269086180134397047957115631106176487398977762539205403136845288817144460023568406097080209656212908411134861665637006891003906500478987362113957933246370850570742751743478691822255438207126349095928907443875261402867348258962233775940039245236803125099307642286110727265672453411622272367195408720120739307779299840824323977399672056108122548072893308039813715523572500367280561682219605333605891174665581926514582437181728704892023127203047564893241645741212967295517556767825848837031118399274672696561126032930982233026926758940567105216654030873811980199317384814229959971939185839736769978433718449972782847639228716132232511403227563539929476753620801045277321400305934298954025055116993467925434383719968844898287522659306448270980121972253650007394794011822036942284477640794389090834574615432148323216262283022932931207886658023899124715986860498217522760422404804239090768458930199899312467651985142237368420446410984257772187202890238993900388434471454517733438843573208813754934776422470904457819629971449290693295863434269345011058261242944288709943941392046391293743736135801693313320295451711695611321580310854662594904726674824484532979051720561482588358906549396555750015985992113619437221151909605027485551945742413561680802690454476042275730823745256553360464180507420114778635405649222525830758008344816094412703565910260540661901599853761804407662171948887014599820752102829122664649912018969330349560821670608620337185611303467927420467954316695645363386192307018695930567265203259807191770435726100193888780097530910041160406611670813219619119789791070806886717356979058701724911386863894802572897170063840952243542044214904248598644721706050712986022084237482906395294389532803351108016127672079687037833007691736355492215655359219416285511254595534636826649098267445247178052743283424725874502001213860143771912966811376571118176218679784598844002735061975238620934374519161959576351961034049660861679228757321470826912026622185862352725441375241289520155805965459413326434926759654818631285370427692848735151704235513142175323090835634646637658091052244616266662296468361379485936477569103007771343127349193431944725615920169913441097526705058856615990824688088397358804113435783597600544006057103650588555382519091443589361775884058829235984787456676514243315869542533959029725539687960732275235462212344175989196865584257887508190916430383217539566937206595633237969068113988449912515380755814941948466861284537080277783747508494333303583146689895212128016893952642544045816045343667905368616904915388785596911597667794927561440057514009682836455917575346728232776503396733480799467122156403403871826485472271859142629580160268330430304518707083848931742021464132398517584325440276305707232455845946143991082546322634925408962448107790375266325800988362620486737280488102059638843100050638629722552933023555558985680082230366277456761530464653786560129273561696565297302458363223274803759379651235015692609191111228708692025198324565211271149396637455499877020638162322666046142436194606519353264172614662814620995699374258553887267928257006996360700543564797801647950892469163559398013555084008883500163192576808361541477141846123739196024881896644862696829380909545261541482742787764267704291943373024952585839021721259618637824676576055021119113589612181156443849739002926282542507994468403315710724904032234989451731387779097313092081203665021073974775746138681788789519679679730459984193992297226657842115807274936979498125944199962716956650451136403668904952066588538681200248864329530153627831561871597152539610168376152293726112707027697048896043320024232326383894798292608321767595692964288423247337711336460840204906049810281429755694867209674993218291828425417080799927413831368657225797130206908403844494866380712861966902170419193139948617059691797944230229786283189342936586332907423518830067386983869054910173841111164898684674402309383323578014364746243372647175651977660789751730029053227208944572220967998559591741138760118282117913340984088778391951569505619160379713930562232468656951419055955520415941951186673247845806160356902991560132487629204104597995732910905498612305333403167416726253545236832231296973982100011684475570838438683446591006771785066360975467422927579690371328219649877878918991427571054621955331616765136901324078083307504843966144098831868001205133661291721927623331101087479055925452173256106948770950916849777423989864474457821889472372915957752950333573727469479317475394274407339299878958054123545511117656326049649500347506286419875051707658059449512554018209677046716057716671699985436504271250219526900714933106591663452458260587942828714702463049129801622157219136606143154491017019123025272399771305917334815170023414510897908454806985737688533590246721338452459938712228227596440220819988877344977875800968480722595999430710515699103678667636565069259794446432947791721077434973426377911034669226122117424694824971987674896575367741955959834882673667854969281823543375865710963746210162274951440251971521890816600831935848796392559857299204310228535663365843556700735592666195596545560303443113839805577534620760412537320172563075149158408061956796744526809302744785713612994004647035510899587260825537045914487485233858212267862332333623263073466051634765646629578925205768564477562993858230271822743865669188065112556215953081395759273922659499680678596312553564936102996739133195593857596477853353780555683457432380843523613390196679543935078509233083298777574029015445651372598953846095452265850879773495641353084815924467478003461817291298113758028451991785869481115405860252655457982581446596434944622455669896251877260921608819322764373981888765548322906789279887780807865378415381097093995989147929451716716648438563824561920547559622441032553693129879769994737859415996045406785404301174417661937995745452589612863969920561072239480674446487327742271608853113177938782981288721458155104438253782379827440385006926019894394520370792277928215305639019724954558272504299436169914117320497258780627470117161868925268213965761952873228940722945653198048493099098210098485080617070827072379474431252682649827599718216411144710342028620002304676586092145061463339101045038565414446567610970605369228073950006262295239898550407150399996816370998517656116666984048824937918909008218553364487747105237203427831655175765067254751806241034877304463494342192918529292360677783830774766691256972728573487153617265524245043966985472509897710741677140370697019363273757219430033303642942723108471479931088660596063005295595188450048104934602800328190774052405545306546678950861639953988016431280349968913830590519272855047756524042250337743484496775642658269413750850936611331660089183125643523728162527848017452808613654449246783511981543906659237235801386982421106392214676842641667973251901046896358662421859606584506386457661787709981990524116086660831807187546286776256869895231750312350859773241898486466737831390421875510750791924422068181107945947363375418481026571495238439659355981835398026427196441102314690626896774115527372336859147344736271414468808133580643725818206247196353764481809657845339027125427785697192792799952829987160005198579772371048853671103758082950559804500476805646443633233682453103942945499675930183143090229168246344819682725351749338569290100005504598598306226190729296191984806803964801715289228378905375567244703364176610167001243325108434653924047128416021140194044727979290819084334984146216855263509467301849421038305863921151753087719174834167668986337519693814413665302910384324753243115936528474264393706808750046563475757694198087596428676335252092910791626307323493338994593723247394454597538493371297555259459090582869530401763136407573895848393840420516925592193336202801020024713761692100037899931235254664109041989651593740716626280635215200249188511380493933202693595412044119457007892409556874980561023059603232870842387356800764205733553093687435268507101850657177697073798518484062477175147159625353021217342657182458972261262092515701323560217513207573986815072509185683864419493733739839983173968426108432503212993652071977555454077356016469635016720452334997937528651240295258990481869207986034180893895278837099212337134068737451085639270006014597807482744204530114523996315813821428163767323365688545325658277936520888525188246581996955196089273181458380365443351288182943915073427137745968059789354163462310104316274363304839292102098519319380869663897125288004565499260683848078343861333955609101469645351104930940295478062307137706463977690540319274169021140970481922697043960038019180665048588451069955575954278772442205082904609909851844374761337052109664360871436232003590600407468006501311105104550938695666668824734385598908129797734502674177782381094792371944307215668491887962419608908233282151373372776493299601142976453465087511622516536396620744561405324597346656674895016790290974778069467680710657021539334661346825338425640716139203585315084422200356450089421123279179418377919707639637722533758681081097601872987313496961212566563501325423529703319305015358048451098685889864699457831683536081632785243212826504885152428923582911580619904447380099879460108588532549374849994780705281903789098555576257833427530729766855502491586633808111482011093008840837060506616334402846660419657056070169222679445606675848784815437349058242499653895045183729118920646754737164227058864753287808035988438189203498905850193839537527287741626915083298242519664608649799192736646425094778637254915989275928754093410523565364096217000417532163804137820110196717736472175641401216377603394540053874663677011590816124850785076566253231723018497652786361877163876622079274692612934347222051985060978568460938183771391332829994048741399175368533495986664798893354431978940771688366572811141727679658419951521640785664942048791900405611745725210823163892498193583947039461718835878133285185809732148568375359777478371695083760395053442687083636792830665089110740307890489533596521520347444108955640214733323836792483710376431562414651116607094786285486841509397067561720875837902675575528563863932824806379398015944082724468984128035100217368262950356046331844408010855040736863077184906545747104830193923699367702127591940277563211646358046842185213176620390668949420852311447771728936886223163998396063082371083352643168527218654019647938011394305477560725957306850390421192374818634303770387335776693841282344871525570130787336529959394575043017332323322551110608603107714933978461085885145768226359608882726787176135701185963960732857780082655353977507930058082391284104524923250045730896004588395485335730426345889585645512620054157506251498900800766702118614837635766995876389681296385417002090059718686746840969667037333792413150439001912519767898556960071755222515745153536429863551980939505226912170301862503954722262384686124050849211858627090671382682740814049248093298434779543170601604404435990451695906618425909186837743729947276548091247358837767449253404601575927629761293005436773707424603833653778978139448758231507539111876325672069198880985138923290221697666528364257687815337597833721425773908511391881998457796958495134626466975403905292765564758305611385988903164409618753433752943045527709454154880150029006234467465528156849938507049060665593843134528934908763486338465589282079614864691608045351792245780293228244254258172536397042635743863295018881513643795309418723887038463685713858696788200485646097353556400329539641979313194278345506137045506447756994897614516741447747188298994607336977310705948649613743830765218864469431750855990723204507850301982020112162273108193467140679904656706597354021179190522829279863953675864316762000988040173341451699461847494316258661495347490193593625286370274048061374068355692365690004438239530610015275950370506523655097422235199615822531303984744702216530326928520399365460433996538590834002140020389052630962510945695769296404603794936187997373038208699741985872409678683125426087515061592173908819066782657555745158304705815278759691761309291787112076803099983943801158296680421391501721323579359561995855605555909029053541366957461910347892355027840944237149184228937069617367434882542241798440466999793792832164591177810423777117314652504762826598913617317505321263209844636553140720167694927061573218697886504768742062469500438112367286006615869145532370371408563472126372792106623930381919057615804255113319635459030660894330939733224216567208684883789043284516887353527814528301475978333523642222464914242776438941225558466323540928536050741291536016467227115608536312587797062076671144289872041452298358321132587356312533615358568311600890848914114744281245091954517467211599709330815365764377915904100592170401480180363329032453967052924839307521924418441095558122098493194228013685894033295821376116167014464141535308982692229601153815085884121141791497471440742978448428863033239754311919385873938999530445492991843910963240270472087049144944208580536139215159352219356416079770180634223916655979430717386275996714945198212958457299619482388435130353438255879437049386022659361347280282390118354524312880663083096891997762794323985770419745372173063630708145837363242748791043423734637337773157125458484985568233846965006480663600799507701296737070942591966628891084377098711359839827232317664670832437101134093542696624899590392961500873642197845592664417481612301294144337333617744996187694880845445031759875172015138685511915472119288583689654873404463390564631067932521402563550549609187150987790064076155297416557546568999781925351007196994395285992334199999342129873763947858349902546110411433373263030460109317251613808968510900073493707029349187708706902808255011196683020851484534169519806325824273409097784897697248003568285144886433861307288669297185482346381755410382856930747467720164301901853890282482352348281034196693028696164562626580780787922091199758481258009497136856896399471823334681620218510861080419501703325626970022682093030427713267918680080651552581172978076051398274534470842848802648154272323904145651629779264415714565341551206416495052723974705281145870440722739108239193886892954097512872556817726914785669807300890236981037516154655521084495023451156060539457501796381805235302288399378289406046816959755472702338740476422635198331792761755343621182769665302286481330657871637164796905208504751812763532072606302235195301244028355238082782711113092360557909736353098923282453576951132998419900418384314595079478741201291409522156916454794550484814844105876640765842334965805797902883867125696660018151825671789016851364349518951867324100025082788762187263372314381889250885230491100042328910137304490340842898318188668409058689918283731252782455231419525482199578975903334284372828063223713553605186886703696000325655308588404923036473425665765085795378830106581407361484775964075928559600712621132371110031594893163974952111231963875966122194081231725935349992362805104400398386999000795222000410058755749272956479256179421857585778553600309942189751409366071835426252329295953301592799142251001573145317948329379751880779843004564106190986345876977010846587680863976717978348477436152329809215998850088097792611171616270427146660663321413035638886746418583795953952959456418950320458179157717689568407533971105162470114213367337388694398915864840969275965346239684727479129161982123528089508382727888054668534084729161738290132184446107545943323167455489805312202537563461982457353895884510787445084068882985198806222461259120997953437565475704824545726280917398536470545664532260474532199437717730221560725745440281829528958047146087288426787759572655955586975940783677558740157210129633929833954453108870600811561222268212850503170570649971492617006075036949702895367874711596700724484086901293288336863836826841802552127654267749218341588277632175525683406290315902708065203952757059460358524779593720447975233361887050995527658650900085820395112612773707596178873302013959378760466986036365474527457059055285890252162313217661157795321241529601775363925865180180683019447868407156248853912827523396282102096420698023622030754086428635566446708808103961496039644872788395381955202084819117190811665363360846880323322485867345193644613748859125980277202067129876674780961969950801787659948596427026215704768705807438118269383875514648414267860978287238681614048827807747927345702876130297599704613573028375296540908713591613442201824557636933438252648765933688142377150944049032422266596120809465154274604453288981374597344611209669818290309193005979599664425054676186012934401618484310850087555613286154132040730373889951857404609518749416128083170778621478577636544607629222100652763565885696202533198885347240961359328285245542615461399406265970885193792234151792762567333990839487579845023619853963716538741794722869837457235595790048023558576640020706096641123149535641305400318284337158900755314530400934104236030254466567860222295193066256545725564252017356459630436726776565070822844430462310469593101148921383384542864909806894160697716785983252554778914727191585925853699875098901096026282805943723984194693235124443627667167497608217192815785729127727601701310706626977142525436546509564064979112397886367511569441455945216973172633499230472670275462686556395595644582597050259338729155244573790574518309797457496455511545548443786880822511655768016605108943226910586335625022863436421651671056900848342975295255614184289200392948889672971152122921997409104475345146813066972155980165526508240440269084426119696812050260061014586378408077642389726919188883889522824705575805430185258768497201676213539244389825198369184225131034044619934089755276066393179612535371799837582776895482943735078969086673237359408553684718746170797091584269244005638096886180624335440726361559602367719057562306941076635698197204437839897270420313914447149248652685359351645693372131378143324259777459463212182244716604484029039026549152540370304514593511764975466079402278902143108118503736412029888647860083347456287053901942297970080928577573609829101903938795382294690084792234394597098353819176530167931335435715114367744282836888574045618863541463258013676469795108335267450573265635862560540992843490549449000974463019319534278963334567756553387165509338017476983158129484863866970132067137101960922847151992779792708882783993875463187426380086351941486479701340569895004083534662530803618995546181723373454740502522630075410156656962660620573381109706160625321923101383748048086312410680461943859246301323650609095252727781737257766027445940370874523003685761746026014208443280548615708957235094998174819982290690449788054776657423689580095870823724113544696489577592638162491328934270902218782906100688974357713769996554737229595706828725201461549900892195118218275087741578319392303220388837503968292422674771506782373127604244986196532569556780076964555560528973888028321665148106345658035498786071419013725970644018107216096247226064279032488674411584724526361495393219025586043690503001389606842261246821273337088786864775326368514985848746791508278145910055406511513223580724919687610134987847290624078665298128378588186194117782964863379362377288094123260915293825130718563105868054317090051340747250739573669894983300799330424149869298220047860841633892464562195049980627824647033886103350889886644497076578658089768652425738394216644078407773375384816139906957825532565277627547364601883509096845623298275091593756184474791592477667478547608137668238994311453668013380161802230589872029392297977021778627193691312852213801072593769926323854289371429995005866717157207257461988721908340825523161406647844604255390517698051073518474074092855233506285823599552409755367125281982096820475716762108108772204558616042153591309370167890240346525762817219619129048808966260955954993442462459734119713571412796452300593636522293978356121676924290990422734330182126964071523252397566511905363223514359396908321324689553264427276462405465846882104763266836354099502835376765309703854544265779682561109433647884196294176820230822770900124518771667241609245849796458514497509850478302493810814042218168208756287797837484177223419340958575872101525900080904484985887131467600056321782736559079532092531056190873117128169878211533200075932864727452788152099685447254737575652080770042616369220183926560272122419827689438060403388000975344436423746005671227076023730213223302827130500909912748390976955655976217079358102786705562979732649858427022984675211047644386385920934333877654461623254448809663997492444464326271277636196927514834615691206869182827483835215764010942837916507176883058208568291546267423077156981170079917557872151378483589477073435004582357019305707029845444204616745132347149119256367930262987790631762450723637746180423897992889162369658980410016805185017910456613073528716069237977076555978177357331461724331408307569695544912299058361429928604844947818966921752879667417944745544533749766974862479221531721296624405254414962880484464396347366303275880264370602167005749218206809710664074665114832249206147708576344291537284686968079484449193685373383449684321854191033841611973626929894815069644968045557073946179898603855642330245315552859794914545761998871903773063359284592125460354602056217764202445273683105937437842573283451035475449382596332927842941421956717176158826741819767243070956360506402612736543923889984120017981789102714916500181267893053462791653846810001960698706827204877315939672945140226748442844254818621893474288348475874339934627144890836810715417535647318600148275398203122678069904076066041154336037666055107179639359903385131419596440638835950787009001078485672567139606906690839427646453016027376112078889532500887184173956727375716187001305680262682498950405502611634759942151843742745404397424449928455715718759926729787864654002100960505807474489387872384843813149417458890404368422990509748711179754704750419106650603403056376863905778720822768176090608609587113071053123942034255644596445120180051602192520351408453590191434946876909504681678351094947505023881614498584720289533713698529851972717140125722179059025017382851443104761219847063769058726053174753313116524719873532484548298362204938749279415763692503314949158154190533830438542956132699942110121256202742995271340490759684661325016965582963635261261456363983788073067735424195812912053791090090976673273773462750233307359771888779590508308871170693236983495187588863482583924088583213465481542324975481465053496044331160028622740435718515320203219813246559501881930190800251336483360661849723753696767391362818880971997525425911526653239340957640552390006538416968907601583663586245972198889458965412306972435270237258750017670662885918100213411716254105227731665004192986824169338751191401145742126471692983715938736307202330887283980456527724866620289853153077759273038083126704288036241111980880529867170821201016190337612186858212454794689749695599106789462320341161835933376091067210531309015266430653366261660398996069153644988030217897843228463869667544549577404698675535588136611619453566616797306535085187749680324072444444955590582168322521470643265185449390767663953172936089621791587565011073773626912117564253833851745136149253213586761297534493203253197851334302717988290903264170983986412223668587131746504414933180582144396635223009891250939030120941005410154094344224242360194090564124817766558637788618047088751992280433079346532050379103452448917027566296406057904114942172838444354811101754869875630748008461828888570436105268062129091713833984401940986384909659451778081414601296500898251011831480945963911179363213958388503635849904050062652314442055991431851579293884699273557478398327127715946296224174948454689447811338363899026956160328713320709525005036295627453637622075417566247665406264495034350956164442358127360610131643635948992959012042503155904894201908668578661222384543082715372890279204564501142205502720780800429500876241276268124446164792218913547405201124303266159595839548969618580417914648185569182949478096472616369184168557023625641605425464517358173064054404752686390589224064115045382629267479921886726311163363446155125400806717690758977483839952320591577658234820926799376172687317546419513351240264846374228904137690770673463248710020992653721807581062213386123398057832310635343597604808790095354511404501874291419003834630492626164128484209376171147114027634193551456893673527978107980666197552144053728187856604694976706760201051713492610684238245116224932020431015647871231854281286633068230205440315584454376879443839663997384415546318370352868421171007028441205077042802663818200853306449668355260920966718560386386499033673147811438740353788202450588831747550713924241620207909133640625330063357857880093444927932205699234263719759430625907217109218963292240302917421229376108093435190764198861353806998977951960694220889368734050055612500778065924185282604341171087712318242279861843628247042528512442722958155410983431238106752698349305333963202255330519013718579071210838003122399078146987560259573120271622013120568281268495333839885504761619921253129402271681542547628264467731935050121328443082831114887409857776262849068247499156794714307780303576434236834754709185347001342356138483559067228813185207280839386473771151615048080335144066030794733111938440163372340179532830281384633549967729445683835919556742352978003109313207408402056101557149496181576079347639817970318744832237864480911993758480307496630237765949134922312335700283955607306452536020637144093394033880194208172235045001617396473167793529706509123153848682126633569178851370069371880481361586583021495977245583167220271794219664972045630121046465233605123439844605345215564088483777418359693372557603698837452072397302803667758862744031867319908119773301324738127303314083249138978418713267862735024295744494250837649927069962522051916844097335808852702604671443569152412022964494210906930172442304022458448265441593685118345100866999079159536918320431037881639630688351598600929292349268717556290592137555222063821059297965118827417731396047964764937927729705814789055928897742488761088044730422285923791176020640278475007983028933781567458567606038146362018179798780875438626836018539346645625814541275914125725287805865052099932618944086009310819558120002591116674124257860999560123410487358321095189800902695682502105825443807470784840593149649181976495528659904658201938747286411995087400561357473495347476014347358728344254765052089908842366366200301017124010684755806797234942536929165375145284899581772815146505002338126486670953163002073385456039497965401243301733945884242188629576113606117918125923152909910994153646398268500170491722633207180142857118242512388659900762333840544505543960189450309772734143508868223073744987947153032193337014867130811415680952305789333128246167161298896188149273367589741974215737967062072626923586110079267846707888012212248774931311591562811406861879533445363407233063280995714463714309625189847620263259410100978301855806542899731390725139559678771628734159076915270379758726761696405261064205525971763235632402978311229597150938726465276244866554184215749189277260321893829445768030264973858041254113703513013173499536699173055039119263184247556670681185023579893860560239064040510793082853789882211776217006097147820837582458523952620733183360464180985431982848433831439117366672359086829994044809694122463310764669230431326967854017280873970663171336371513037301702652629859745556344570005904453338501573097245420785742975924738490835825585299229967078377090490746375295669644710297473032447504659041277008253153747073115160597598419430636652262378809592133092496284277655929226741368585519465204724180811298689179313400928022825801832861824148458751372963334873995094692633443053809463064199462278863084323328085399018638754618220442782131045092433085730164673599751741019723159634771150953745337936026585951890690519676041105524389884121255919849843630207301574049640072512020924185994549818044474753365218180961357493484755429388816027767393986213132107998025523210872258783621250825969405221954466711434232841927588703841261415810803768115435382625219541154283189861019651338034281902266426296344111832268185799462817061737430674309819396798710675722582852149555463587438002795299640829401618043331744837261603017894231561634212490634692304991844279731182419399377668050557152711755201513475839701836921017991006729717814032047178171917763620074637495158216890896620501750716950050509458584478598464803174503831439637323793713555886344742453338914594541165502029691279253260991863173256197033451869049305009404171688359237413718441735679458735973041307361623294951935808927439443791581596994917464234812629687840898606322729062257421926733028556315897918627600911414562396647616053622390274670905434920166935546875336183242799862264145956686298904137307539373111756014251625172641991471019802387692498239298308467542266816812099533624725689254377662339535417169474512319727531687936954563400033844143153798886265072577453638221839320075956054608474890472097570784207818901942118796399940677173022125314195426655824621030227598704610495795348564633559875914628818399547044028524864849260827265669038419171326216664367658240171188200665691656306393412942681715855878712823883701032712665617855558878304054427797164899122023137315452463417508372885135146803818787356804098090738042708335065953508145963188007289006070429185278123382010606129657602134821401240849452367870232264131276749985389970676743965969967881725550517947269176367038368450335400121236732345706030218667138254111784541204595338551039479669007434415390174360295529827333881161598861737439779971446148347959177780157177181101695515827086834547019742937614580304203534428131030736768236928807159600257450878644871358437696636725388731632290547185599895990424859095457870886133390203108577662704843472679640651223808296919376580652111627592456749386088853528978192897350468389279246335200746135551409658439944929109956809974383036435238040243054521074094308233039976101272312476466020238375259747744201602338124377120807311974446724565062057084961088000687546371902003580969616940775319356933856961150482075797930343812373086114630604922440419315960417082515953385078442168736126021683321523575149447396521718563816072545657383817829940925598303740774358811176316988294143946227608222367135252640130118068457018720703474863967996208151569850320318788865899294273940933563180348259939199124590397252439076908927735676313099058715500289484581507854738241801510269894307794939972620734967622476914837623465446770830549488615928722235522750267228939315304388588479948225274783865402574175409033371284891767484526924888187328346275849680114424586748834661043199377057463857437099611417534313940781029312866593198497865051716940040442658082975812392301661303871286751440670625167156067119943954672762041643239405391059467489486609099040802863317273289761273335203713540280180519319241762023522867732637978486491028441462294819542219423602131422111665137515914154884082547001489453214380569034673263765933663693315777876703769402694264391836599867712265325000618045501536742872136637493805561839620407536926989863179046096784179992848995617502499953519212054076738413425085840151745179321866260232617290198919760099367999736729525616323305665292703384119694899781924900234404687448138846037281153342316358059374333118812727905433965733025258775280557470721048319229620179113893773645856820418954636179215659932673340258461150023079759973746231095377359841648472677930181186786029790101150233973783634079928363615251661066700313290013456089353489543752653498963538503333834536151147208639117243771107714955235304909937670168678278344454640887035403356508649290415080514709488131429800270494132697175537970005830048762632523096948337258175004968615863630517160761016840784550926689137643159283702096153201682703380735885226399015561136674861735105800000059277587771416124575409952560349404067911515106170608355759091516753201939458186431499007840516900843208756143162224457208933070476864889811660947767712068220920688979031093048228584787658027183719339975619820965527302573769688821164378636741212686383908404713990365985175158081928231023389791879688711016569323177072639312262487059395750426071578027438788664085419321209283712487938020652927491620544455980656103433070507777948565515414495473492505710514950353702193919277294448104711858145784880362384409822190614568262805096966998454977366564908301485310761345876683797842356015039624450605540665712161261379392766091529274668109227489443662518648089126195993621485226792252523890998039920099664552103094420445899991873964528365065671255637809913077090410621046312404734048542852615618481031863381283076081737320148409411244401986262720360648590503622257370413789639659019501531373138988627535538826598930997985961631474368793643041350429189958616776611955722833751632342513149022253749446259003747326159183618883869461077324945903998753324680383597254929128002713839409767295008986698520924046482162894880408812180561658343817839627261057890256358482592847928111265650181730342383764668761518263590796168632386433544582005486098801201693139817104039268141274735702591596001080141542260144201435012857187671296793252447504939004902062174808626780984406175235618801860435951634949932687947638100013604077215966396419853080341539555082367528945578736918738673341736668285946188277628681325770751373767398089193859980115235330542236850195320327723096569508719568075059174912097944416911155477556753974785404121688879853538566379006041496082171782534867750357909630166182312910436369237202521213808901989103790499907260167039859566490346224580499543819350277933147735253146427359550780800271624713958898408692151025941798515418037943196064684624909967324060556586184982722820948616971188521740022808661169907762994902705650896791151343804749152800440492907399741756156220137461923119371254024490973200820752550083039074272438653183097801955313186977015352539009892835689073909912773784927059517436694521391948510540195560693535046243225398996383331648406243230326034763775001447496939164435434370777001402158558567923719935520482442248903757031194231517650248143849359598859404606939194397216608265026877278030236710382427483940292493765212618564096844836073521562837572068595701427079555420047603030076274904584960609562534853275175223956634710959077166623077083264788252527241397213449932485022858218500568678438443653217279195225937584363757023432063103704521371799799322696262410789008717697354990228181120441198679221222626017190122234820423688869032503710438013826269251061202208871297906052619570199355295151967100896293981084783991846175626128235537323764304766956906979286283133305236961609088191150894385689669309683903471680330058060288425195287239020609254671136308468250883387561272103331243586543352424991879974515156389506787000445143893430855380261917352744575712904770969113693812578730216416540514218409218315140153363168371018658402483828917788576233389329879180808281905812874411422584780468650941421960499903689493086123524979115067029135152912948819923763908352699959463251265996202220103721674837120000257725113711055201208336587817462630839142620832705361108752296364749583808339395285434924847728582350951572826298419864848546733299553384320223464240602680021634130318749145595613013560512399393417109798257187437225831508521672258130447918005502699969832765640297400221994877129631099731745745696495335591773878620386100365893419753835859161295462465726272752128817484733115740045714721656126158790612920752474646149272428643682550481080368055202468505607715193089136621223171420697039388112358853991232727441482781850999443811175916693490804207212927800003535140502649827648807659077490399500204210882959798441955942015125788342522897185697048808038471348824827024682461848963909662425571192681406625442723959408926438563639653941216666163696745335643884362281083777962499433220943698167080012542249376834220050737247517540917374039688064025516473629282310740884549018414151780670452607121216752632047652680809834410130471204283415366870803615056168003979507142915324625232182634211950856847925003706511911841297814466623088008480372414943259343683766980746572822838027448335711771411762393593979769271283710189907514774743228466182805242698406479439873554421304938941265356296279093778031856753558409211043466487015757545479786323265061261624468113391730611022247849830860501349894203272326910871264377834744918774600179290178255498385686189622116495686426177129467852037989348717997625278299425208414406757573008569724266884364032028285630078097768132763252549527746831772670966038693861177107127936330600841019466969611356892642182114511969472736292368854752852237145531560432808117411325441584924245360748828478918144807683368246495096353608052013062394987186525277266385225997212937780317377041190131327970279977776621181093011719219107013483392488075904969041880885839908659771416150848617491772277780564154249476188913708339659926416856466639033622301476617211324324408717068695771541814949039237594642554366146111366361752513860635037686490323085352836662558955116453565707057040604261192369204741705078018095580392182839189577329003808853644051905174751366474169003911759454176047474251210315137847533732254915766895481375272986134527494697324633310202868926656418458413287590861734207483182337130405251826655715525444043587393001434850392137577938344914573170616462758409783654810495201137889462250263978728965910219618492634397476027271939381272366591956308662675089375482100996480373563251269973525727353960999640960846619658851503176735474491735308263830294387071673843536876728856881115400887420755920674617535992810070162023787369810127112619323720582309662290564193433754559321180014495052066985479868897177250936804462504513930292752529222017977600414432827631592808405938790457857857192613590203955134651005172723864260781393393818886207856379665268612925476019359858092215911684625229964998891921474342262515276316450102493903571340570438117609593025922196324905675049589471405047642639710704499284697785978076032565422834867612644955707464655403896348989045544804680634000706011620714424282649576151411113289189783370752807126250339579054933751043697918149588732318658538900310901053193644087557173519457318727316373678125049932896374837657577216214726534523177061820317448503372783036590987025355076845888038668109262421145126793970988665219737665513034449720007643845459506485192966889201440113873218916013877253228292017049116889689415055949033799728931854469581189129971885025282407366044237585371224542912771760205405108560573763052372913488444310118007776691041337426802573027971170130332895883923682128923485006739795616612261435031296036608924249288126575996938942242638854888943158116779888287455719209200257672197618033923884310655569988548479131935004838238441790741719887321982609070424372940441588517806086269729733339776777861095759459626655213999970648740754134866863366205491641036409485248588306115051513066595827738702511794271646283389762583006120526751515046397594559840157555729749008177468588070856285645134486190420796435200261629999175372769923956546045040860034670194839149155549034430666562942023614590515928908099841512466967565580926469260938538887053082343135268551273864013378393354235485420210466614569286574229695991404564957216973989091678454431005650580755146553763789138912991850329074046320442001432444071484160040118076183234845047911273618670664740272517968101373593970628498386884231473507210915913557132505481967992130525317542794491696816218140476078715347660799046461712391792225502675500439119206880557004132428861420548665830112774082740661148450089778339887471546873408360003713119156201578125531362910933791467718773862121558236717798084739284078739890654451745742561256946732227367481939555799470136005712157125840237600997897910674999029969097056344781112054132358894129124065203787295495683682642271550453772498181063614134446091441649841546154933157538540729174588912507862898922161761160716266059972516752026840466695537311379257895854797891930723001917612159109151331508551884070267601999163052771404506124321647609483251725573624054169215409999108835000194050840906579522828293268411616926972301581519650854643670408112479141096818913351220028017371138393215023595295991787668783985734176946831655488624606112761816466901472783843559540011247692383478222415678057925470526904745425291049723162063806810364250362019399084262268083566278816743750761643573040072944594470085191869443489355721180071081056086724265038297589390870243285062027883876563580123341158730629672759150007462548725733972032722886648018867368266691351899971360800367104580764130289522797308624429132015800506829747234217789037661458087227755717777691984627631603861327866345551464846078686128036480016934968721065426081393820507110473177513166529225287908828148947695234072932891289297355596111828209188179255938385728675987339118673868411544442902102428713966552939047001033749447419446082507277929966438837696142406956009344964074773336380644924696728675564068825904778379799386321225475886930735586259253849766756676429096701045091567443288593870336379722006946036241165194881940748308675060295606094497178639976408460432443055533720182191904670357785137893644030763006278770345439219898204914518290900163843927303592046752259554416709350916710383626184310526539077053662607668234808363026985978761393413407149077057134062468151361708369058298089440952617087648431541913185866592874626584435343118703505990030064428946280133045926609983938529718875491617219620595373771796985948840193180620964112654031105725408886247210962940397814126872211428882225246119120686977436130804657660225621229716537748206697233941948386380929994979857573714342467273194760641270920377238354276508604271334479151147578577373386398524430075729732063486367414023749288787872495223972325791856569492376696032136271435541100064573164577970327102403564810569641073236823511574797359229029066628323356352604952358280388324701407647003398067935800671573698073410879514990455659563052326190032517049157223265698710467986759204086651039411837197208947000366847251324039623906347732296578258369495157193219452604976784522979263349083071445131784742872736372243052328841759149134657422448645981247752005072950907934989470556759953697350746445526688437963020798106294250585603517956628075348635806334141780947261479809929131556031489176297802283788908390449383498435781390306021975508090308310680044023370736676732233062157304225161188712454393689397416653105352054453129107354159533089356107625918419257436779519474360885783180778496348171656675818190827789564729475072362975469084240182081561809584307221652907300861485232931974534933379560444942498291824711428239216226123670135755048508067416715424236750352965178737128104542270574348690993011317468984240976531471517999335639771787518784095009978754954181387052770820002960641209978465212455494009793342272007890284275688124559799077259148348412784763673372747341436054087956599666636753835134166799029858784983608033778721084150006520008407202187509356712555328469428458201111063690931004717626415026457898959202651525168410315051822969714470079969735887782763358376563934266109988836017215616896202668987844922206740310661971437557543111911905559831619937330761948147653451258791676887166712691079565200985948884871154452339740922820810511342722301916438483038150308978130327803349819436368969349458090083422417040766327816365983830825775823049131625983119897890416865948788053792492741744988547681310172952290788713223578346793842040315015925815129575548948834555688372022431017884119659294117816888600993142922002740450329336898341478511277454255369640147761647270967876392404838331750036265096701817687888157146996992885101841987296804620127046065461499723424507550300246698069862156223354929314801378900279012282240469138351141244628853407277724953844966996770060552282317353488956904357972560704514929483607498576556278575013056404235477147114783343056280725503188149692581952133746527677185203988515991597684097888402857978776613329023601514820857379895489463256100489072646233972823394440518960895484353882169055797121273701156849513097782871128325684289857477118286339515028130067511297399020236330128595157008827024052977863591208775217660785110398284339352122347610836918832771538655119244780182572340054237591629802726232147224096175139595898074061118632079096346253641137470515053281958805491766239886433963223431406193174367352114363497173195853099894945820440142398346326621054196800258297353041097981133058012841310082647335772377751603985498843071162973995608358172770907723079206193371750570023146660242583659362709449550920648628012060823790887799732485407680573776274244839606223215278407117783524775395306214459348471615899748224953451784959227021633573289885021162669971253754371761806627034792095035717329628340433141574629483666277941539637216863878769205062648445944396782713013723650494881539826069852312699803565479048307713114331384599921333823111309531186567163373113289783729299196393714021622843199704480230759038033793443349710603622709509972699157984612402679075579210013920196354665090774398796506109701386767850337308122572149340634855395608342708763544687324835746286619013961126135220257995850627901653983721641478340148333293260137999262959656151099437013875173928749201736292533926834905653832065809150883384974062530798892815978547847631386946314897978936126077473015893939414463430197859165929198304305497139269074240789737908897130301897728788753799806225692630375657035224898435903155154478983991481392703120267757950036092409842444898744348394117050382497833663491728260922554902808591808514932653126773800847215952688937756142263933655713274524062046620411623521800485335237561547361465107922821017521260079063209791700696982022747283295798493530298916702133456584920348352228719674701570181476078275654449479331283168764454312909047606961379784512167982597800396021341110143293515677889168612069342469503325740143241965248926127025817518972461926709998973612399080055599433349687541126178337897031139268621277335330810204363720469306305114838314976132258656290061594131954721487579099430811252651513694549039133530044766504873744228313556284227256353912764044631276721379530999531608337304160840360669657346015540822885608589957620615183151831092337824077545043275828267167841840347423921344458955752088865277074742410632962442087850749820753496350448788805525806049419452831684185086132784103860592681135129462240712091691236226439008829898451975569523074436384582789794127992351587278872728580078076382494912016479395754764736036173208878947518056511722344269974141531907286376951872425676211969521656594188011211546222272301125659412088073291363776882148103011469972077743316745276943161392064037513684376420927182911112299819396973533953276401795935735387804247664035530280813742321709501111713661111328626389877118317869034598848640987189800437109165427478889974418920896991171630286919412706270469506743582193660706412886842654437249273370732759294708032178451572782545385215004392865932855371402758693758766080806458839029645158265275957155620764888773276879734683138932684912311139032956099330564468597869707715455804583139057820493255715324021074883430997331594511294050959348438229080105044091893989038014393459106747439479590699463076991089372097420042776346752923954643912488454230632273851056977083866978067304808620143317960762569485743720843487266379555031601000738818104428096089146573315313265838372826158670836596200103525280041787412465094493083089723700468597638322209434635016368627659319763663824605241533040663918611680453101990378409801089476328559276716514116674873745080877525239062332368182393332594580758017723935935496890877848473600671365842706762082332734405291874182550565042939508485260116946958908053177204988224726693734903038544434084702562555503287370778695361698740906356613027697061614906498381277598498394874268358204336005047172426565115974855094162639247819404845134592320817247644063812920265647370183890449631340688209199828805314299843383214813964666647653377798416249121733304436400075107102008158288124073313185883602385309837313733579801670920941508272265434466306827680148922015112299278893405837660464014573506453012461780410389396919525716758823643108107981924852356486532880171873182964959573181861741198309482721244200016958863277260563792189885496607780745435437494995088580127012891971565314717728401505374043314817557677722446523898010965550909248440549945021041261335479711442356219315401041300090296105740356957402891561498227758672801819290626895865470418530440129066163333103041787077225615809406583341552432386397625750138981882515620928054142321446425438302871169298631196370511973802963013222916842356338644460212674517766180322188190040403221422701642961417897479114776004158516401421148366716910715033021526239766102448794970857435262212299868958109866583619994346559637982741996108076876237153180667342498103879210724052771680907982045412461188162642936723664328475218303208680671020716531724253961915978430788964142214298855436259804596504183971737385695669851329959113003916521200698499921173765270317313991735848414635316470699850216845569289374254463885466593042970991134525955656703590076322974596499084275216373640601760290198896994740385301397553194327192863675246704947989793988849992274349978666667129134726320390471733524501640360590621890816978465718583783859912635112422275031119644559322175382845207755088629931714265835299173950576547048807124981425316249233956424683114650314871559759160996916440930372737809964117044245013035923510707418779051938726002712851066327852164108542592117580242475979163028948922342841965567329335476793645266094314689279331163563050535015344674295169953645460313488833683017241347151869105632768310561001320769039131191427976464573506498983536569439923182345823903551293662626406791781037101782693568347690372825457142269272780866168244944675069577453881369673699733999851590394889627447442884362306078962395152560606556469379615789152158541888981079092479596989795725435868488261505631231525331172901094928879348202056630669738949260238497229030963375327930810345203505595733502868907383799457602653037821413134630844869572761579270978946504996019142835791843297702624492536747195555583400846508138974648307995232405717114281843238501685366560434230409494904637389066603460707325908830643751791109809444781715626144600869446554005880720855075700381259326147304702151381869449823162772894190834516915031947337566681368465120240230590488176126715453018022208041994449632297229443238964463808577913758920568490476119589304395503047042719796314709393183091113057537037825058009343089990748766193329532848128002351750542902572488206745275622093611800378010558318061778084970107915248277619290235441158391580502503125769207291021654411203464430083196762313283237981653942485302073505842204041981373637282508192539438832238482689697219949931624905373580082654775949491169058225181871130103399823781243130346014783806972509787443709336892042746812994638349007516473114916223132599245424797146175628125975399718105360529918581893501287916336199542007793262253122725394934395860586257026685954667457573193073756023646818794232287252198596352072021937603317734603270948825620673513405659304150404482031858602398312704052416861219511647555250958981151816302537192743111787977115378704234451428985422716562806173214226000115132688160697188611400468380486294842525605883051449929763019591650731979895361082827599009695616110204051699726653144696166332602529152100506289898149602504410139232353399242829629448868826078724493483194666274616951990988719880567376588922231971179265472231039000190830968541211532311068007794292085678166731826590402077576072966689786339275172001334544618713056788458036930195061549579018684121037028928140023779897052467437807552452473817568281206184846226882939204074346194904305481057215348862376880384913444193422575717833039595005327022194926849134272966621194425069099828536628175216097787713771534317544701102502624607877200344087207912428740356918856802736721348909291256367380064135426614804862714561259547723767594254519368750377188364841941541752458325249048393980052775571556417288197490965326360599643029429314736476259114049541193720907577262064014294548728913917843421514957987772860799580727465700433814696291113969547530259575415268370302355076204224643408146218871877366113412372349112328184817357542819787412927966939858562790253956671811093568418939650762945606012791416815320929657023820925177497850716122229959349052818006412847493935104597840249334778394090318780297880792055177706107853669639906938788185525067787933154550788675959208062683292760528926663928182228161809956314955792400731285018176588798488081399040746909908459860901772089875238063498301725440812041567832929503967358337270705332424376815725225410414987597724150171990494560617793156548585011068994226915746148304935925604899546509995379255133014740066409113310294098759514247453644972719820493573511145023888777716917606487874436939506807441135882247198265048613918309711845000791815777376978551315563584185475831417636569334323046820265144738999916110487254608431158774995433307641215736366122464322878108181408738927730877763686187247726473365254651547745156950527854819700634849226269063881696277053432725012705588397919123686319939042789185365010317762845488344455192572370404919755425483876773033739043121207777676203880281981462895075275808730509028745897853896777236656079393766972866539779085193779983587797755122300199112315112533589947822508836905829573827507213577049614800294289735832613384530092186032659486266801032843492791770342852010878182508717210754638398412547587814000950711852306603434778240602737860552798898582113516240336745822264810209048598211480057814007062133130989383593055375368328012702660405598194682821994061527914799592643623433122741055810191128358017612513354941392199548801398486162789162206339963794229045247058591630586564849961489960464259386883612761570106334353546517480153727615726943842991128840092615720619178117442462522137858078724044515349437083485093488139970781330907430089701793829481633793484637295273184574174637993367023038085267161748258157098932278635503383893519414293059310692462219808108044247489260965595862578946103576150371668551929320077694306008632731865897910522370013988242807936721288562911482093525536366392155744467164385552759936422987341481246517358374114747258946323980301967554491470715148147085891027865548942233396642118856545427436651862742873105121084186972859994017698396727139288257200389664849041574175465388757056086460768049028020847330892616475541293912149091353162338520621860921512989756178263887484248360301339642035055286098901219050016135140763629791244524262945207937729235542488813104972883097139999999317668842000645774867313920615794975278776543097927936072374543546638973814207637140488430463063415042472124458204243179587049790193858333430625419604152510172844223408228680011467615562957378828156495228084008298953266748273218668131233186746091519657209590821303718574206038324575876623485437463803006829619687036842894460575509305868843069350145760065966613109176390996248800559317149291297245662999360618964217784995841463078313181926101308612228056183741130227591690640550968253898850827576715251933341986035244280956245955225849237340842612441561034132147256512893690552445143119912651738613870269809158005065818931620762395833203047653623155128359194707744550881169796623761890212104372701772335112593459183353018330497360152252840294679839989105710640508613724460962354233142443964788764234720431522320118558869137632389600771079734639892875126497980063537186091806934757539587826755590134918028408912422857984563039868503365503817310219870607536104144723317300276374382761650558545256095930812365221590015840034502688608166655679395076263382068306055904608390555465101983560056377804560121759068869726778553444504226738153699704967314075733780577099012989010962760129099390836795667232006794992716655130415948635909714507267246667782873578189299689640899278993263330242330582762216494472690248467054686544293472366278749460081893713430499397279739216286728093240446552922972120947692988912923531943860817742533022759436048105149994395589582705783365191377407095755894974095864449008440708107879404310676263493918978049169255383233628592163275807059560648263211601447390121759489690537465405693902265004368795191163486486805653899628100421692919334479896669877830133549694169007887522716529153403501807410175126219264719069775699460013634482993266999262534522042063736069850132158704515204287457658227049295559634893647991256617661687748298834094665159864249166334336959966132133116063389668773009749168821652942007442614776387508998294585774955149604743764288913333773669538596293563687629894297518342772618795421372246775178019161124097701847320626866136428666236744073790827440496812129691583718278842057663420331533007976178429956774202333691823252152018192338424937907856005101637229243245007530780462613976418491183693995672551554905328199861410882666070906428410828435608069833175723145432996095863296799888857949486273300115574969106286270261640892900506156779329722596809347494953253055630008783475643042443736228691761337272436251265192304628604417778203679346391032598414724350067714236724910910012734226274066103293864210543632672596589742801547443751531714556123068802336350612846095952579105949702990640696657216580828187200703490568253998887742540216304915303678639324446780064622831177735802661350902571512497595722095152055911032818494966330772987297821195811625739146093227718181009385220657340204938177379871707135020888082972281784111933178897136160825099945315879042869820577771114506776861775081414448668488668261662631457141351210966750791350285261238294670275667320418863631625351344017396472326724977833596579620564047916547566213338843737673775228231082393400213725021432042877605328564260908122181973170898564030266238001754220801510431103708430256879706984649901928496362366580517008214664153238934647547315916218294617690033784120799380255534759716062308325767286627038942377145742928628556891480943252286392011573977288922954263737550040640258420560901788379724743630181491108966463640622676455672709595749099841312437823253481514739331568268861984401790905650035528095692411474298398274903368904044374377674244712114706961450715661111778071942634721698962703433192720695587764912440854625734948282520857774568898461002542304977554633916918809022921158779498492781102839645577352945172310783125160159764113589899301665139873243068229342027038486940900274159764812447296972487901574302514815046345876046031623426704053572126766147660368080259152622942107629171981353510675921899158826511243171786950823670904337459160618869722446208256111074830147186385685051404355081158803215169379567023876061557259047371131940468407448569988778654193434255768741162265228762330007745833921184435458644451690867019113564218026526154147423826289816103551237829122904501087302758031709817534658605346978237880903538727852214916527305854719369751147402020420186406886764901195085813916489253848880060658329955633536973995801226815279825449275591639492315552014840749702529988773045303588686223810988699441131713277603950291616670085559433219175586501517313332875311946065567548324104420443672250905875115884732437383346239967383861931064195695319524669162327356757135778323883680841871010836358972201179758200773221391645671193455795548047330761567614315112057870829513302970402143640294416157815183285027625427010293407943596384698756835906263147583964106124416966344900417708932462523053001790255734164669957789124170451612948027942701164064756725786947735048713987092529163463529751987157593762040764572911822596490536902924149006319248376933080223908976498646313678745945311382582930737223427807335278312305320885493527499714414067283357443952607370511094427058185354925135153606320485224591647565133559571816650543686934876949735852820242962109769014934532893965077965271741557449865475131218712381944282168781422996631578073971699904773267308529311676625531368872626672221974159822003861974685429923303433120508858646116829092776761535005313162882060659890606473267610402688464708397168690949320434254724621590405311036835214792321896720558337029641137424378598324406878339797778603015933118963995764715452755159770834197316948690624961606941898100440353512871333364299186920132999729176179301832402252844187599952170593622312982601009434743699181312377909929869909208396797992431480899008018411666359792229681035215910673044494273344916664767561286061219972625025577912126704433926506828687646066468861014788621384008998153026197420144956776041128024590070928430577865049089345090122031849629454364306972570348894262263425144727384752276531775588975985087328304492109633016883771304472565719082983373847896846078187560299190279839405355141642394257620077569632164320227984283121567094103600847063155289866732303211053361941039526598299491246788138367481574404160239983366614063055726395304472889080963592586177224155115339574489834312248502050188979097782438427782229398512674636039637967190800282427792992035260737510131665035625498797603644385673431984995091721639443179870546249099797585227199444787090053966478925775919441238838047854391732439550282797437515746048204286093900106149723765208147133908935494359775497001246639734073350510692209062693172149101115292716295896256139477632413093224150479000314003686874494676668232019594433112358236313874706476566104100175934729272594731084058620156097660644275267873279932110106532416522945556222318367994172844911054030330300747226417779306564802724250208578007666424159369601645465033205056279177080091379567755985406986892039509343634077193288287136926528311450672290541016224195044972725824378325864360813414016298410012235145413398984155298001699512550285468090484265527734882253774275247093798847450631998326590695577414553816288255686684844056047336810760256770103490820424949543736448329375832342786099757183555081562086141668422198264712391650861458717992913282133940379125213190157582969940764881864050768035553434433205662022803987620519558689843370300919766045163625989576235315656439931843926606925469865367891463528922967610718614110187467483866288977952603624312044877837982107101522681898887620291393187811694371739229738130665893697459460289043552079116857987063834957570953518211978851078268194614229321818253725475301471357353935522583792603147745036041323876044741921192282415074391569182572690579545798478903353642983092234297601760450562683914147024561926999530846149030016061559705980765581985786449532673163288086632063871886946335652560396431729519412831595857845620636771881415149751725319007784961882942673631121627828713095970984527644091782247278139134941512899100094951299490845301316673945177492291713320401093965897279566052494354859678311670377072101237540057644262446392703744918387153491180588907521459635475670256223030014679994391312584431948627170293387752007827170977052093581187957583798465172632978644656081071865033201980166323510732193093668860630052818028055029594871186842451204916242536658648827944626667351366967910026331242202751139754576498760536712853895758326877032528815827835118189593647774599619123745497749286401813302714875949568889422948956052763447447472879003012797092700057769412048188656401311658904033031839179515904648223814101560940607570448982728507566883585547970562653645509720022037815518691829368930183218748788350695914952192703728717750537435013918359764017583371696398249413995268542729189742529717722341194649774431614921414820946398439314748388664566714069053879202762779121551722081656547763438378945788435496498130233401228177933024611487628319610306868016268939044072680914371151013552187699839595224213252085427288204913644916286024663695016303810282748568547076489054910364969711489592611982274339157383858669110030702474012795082332238593343129335314508313430232214869764659467664018692656390331915565887872248983313061357420019416625121636327935950728140073337878928127462871581978962915756636868358637422715438799334165574870457628958645913526199633696636015887976897495254813076769061388859699389360320810075459230926274490937709794352225319635720624439248701172135331113773488627655904577648420533101291477062923080060151067031203478600731070197926375002627129094550361493920681352816856587401295671111292352135776970965085922706543613249244102161581640533101438507924292559321272780604696741537553153666222186128736612880382125010092842114627544953228974248768032441561527975830695659476268934502442250695355098823194825382026063786061181447763814953829266777516762963989158867301481707332872075897133702018566620424730721218336157353976512397247823186644424443992035085556253116939899731382602851749159847422989643092710028283731637880630960986092747881031925456588368774159105757833020388901228949857921093070865284396667478295363075628059276103959766930603498680701306470801313029786800027484736924679903378934423343893829137548394246268828457862768111425527101969211059751262178040761552515403999424350145516266731865911256247375842966932043137321356034227630097046868040289480090425357622270152454991738500652876282082844947232897746221406568486297729134548066316034469825947357775630516155614948782132847032242948928794866944339632944617976682845829101181007034735179487801179223988149144397875134741624875739095613153720413700455216803986883714081602335799444156069410887872638213020338971003799951016335970766613394378645499920248975123249851105355532553697260376806840431030369847624103275144680598482749833518164409364407426106383430813286821838706901670245370646215821240801205054280908116821317559413995529540463378505961526811666007067075116809993103232721917052235278686527253123744565398423714807131269908021498142710907984564962394793103632503932715690214485363939535570996392613413706355283694079855691675861926761861022206910882095003175906255558799044148134393616778698527542429084263952399371565755451748962785200622560015667895265912090638318373362423859988343853824694259664295833241907529342274995126034324233674418833943067302876654357385269541451369333105026535768322846766096520368870279739778370350703717962545742445754051163217724554798081067098055175850952219887619202813077517115927515082176311728768285936435665761256811451194170400407490128413898373142534396718266812187402333410312253279064275345860703992770823166989754655078646555358641595287411267944980475080107549571270721469935283375954060689577249791577530068912962309320095761486922310891028548610054472809101465309502976500108897380505624111300277162749787960668010985853622550375036459585607881915305682408232105734761977447375543574363118277047855678207547357917451284528128929233019603620021968440751077409910672529890205220867476141986504023102491528828879490997516843702839884536884782520558896085978948619912272272442100265425242273619170560112198481877265166850985299865208474531735375591823591271057777366205507409482064859408181593694790264152429184122421578891208191929961882775609985860356636359069252469914184678526388777441479165457023371479473170267499460134216425860667595778199718717717441990038089493463551331933761447158572603076896505991191136417412284829360835010695799059001055607831543748232868730973050111899644412652084907746022176789882108467590939734307859519683086062161338688570880778167957337604105574448328822232366477807112396773278471223644501383798549791847487817888463161170242845486972732738299039515633003689285102102258403151049763730937791859124236745802387383415150174785099316522331078376158978760354156846551124328666277952861718702198668722729283615467690868654416593353062170303791048698373076967563893515294705021327544469916031857051856641071504874103965531180032861058780780640824227321424748062293132720099791019392455082193819018527398366218293196302517133453360812214425341590512815206217840555621251598839345799236917942561607027127565305803012065391861511569671811860224827977457049153466749776919870317884868298775320079992936165622769638960056882530217749980510007109625239664545628488327967528937682725289847695637682766796989588542844392587731814232405154222624633448316487884689217073956997496650461487670803790811272839530625701046413181049118384828472000395344294369187418446927247657161189515737296321205618698034409480452322930151378661227404614838108275923511743550982307614238444892466256080744871547994332924733034827422941928239907697984711308147339657422595031486183468415935397364916358381312970245114734742564328808543011628160712121701195343840167941267824151917706344830344838674833986989553883378623735886837535581021400732452526139976974030200201773593723453393392429604637674022999917173295641451358496115485872715110679979756957211917967312588801233594921452126730768507784660210257263118067807123994165850414444351916218206832707476474435475243635021771387291682498141537447992130352632056642740258454244647829725298376398037073313933734685471907621467615547586944589919407940477286113125924470358104584665737832856247919013146502521873208118597727213601249805643545627251744772072290422368850306213090841086629924481875548787372314464977497853754738686708209265146960181002095391899409058463592927109528879182720553135023121127238958910123529150023735624589869606396223581858235055578139363040675432898604647448081971321996688757725326007369075801025710932151886714288496966744989210878815825441962285031021370219619431877579712157402076818481104388944498331027593512663197408447378850319542251638656224131697049369947514897426205058862349359968235667187965171052669636081131622960729293572368669774797043914178104859912581722777863144079459945374057369324254004890738784761504898658475003647173078144440427356694813250101911717321698784876328438857927180194526200592860132565258766696301089807006587842893680255395136048502311067314223880788293295568432487246776927085422947846905489063074643937315314094471341871409520467339087106627007029590295199334459189171914773019962964526064826708089247749395547240685581130894672545365630238747868483600538986398874434868790750940452174221175525138790488513920601465884456216623117871547230248298036478513626596285502629212096108886336975476876306256280576324993603533884882986531236838968854623516077694354809337149174551265036491906354283294208405553208385378205010028718224950259176349957221719851816336805125162718991883923341976824495693634570197209230919181128116157777228037711970974869137422592538940623672749222749700810195459657628608079773726256392684043473283384785616985256709589244725278213837738712630652707779501342844752394295538387062071776057301950104003718033873134796221525837482328739148834019951170592822353935226059976931803875631460123607550360688341366357697401230519531569025023622561793217578970910798711615056380763810966332580126936200941501263773993545062408401394076897055010505637306881857901604037504030909383091823544926013355251008099472794690497372937944399385070272306340260269283097750572015005342123181682509328551634273450762959462862755370780605288127283378133557246350324824458771328547582050937466024872006242475290408915413616124207405956140175062747442784512587186092166760491578272005949629255429142536506047953602057230555291194143611701340381552346006032186154273703080772848653877633102664805028786437970879599836883209363799688451420581754157675231566841090099568525256656416104842663107948440000584941149317485339348037870826337752806296147240435049361604787433279935226944658487830204686882754154122244111569569230195531919040276163419465486572236882452970287206996509533995486996117631819504286684113199173844023545629828739181134069279017769371151881718989437629033265009589650774875086109512990166037906393608903662143740013836026341808131085251804702815174904132919991692765083129783452359216256611911397695037409555580314780347401466891324971925115736096669642834218373926826818706507935745128274121509300978919378050601304152644585928863516605835455733912680722309478995670604173928240490289515734489914893405957631517905651797527663119949053988902048286930294978715236655527170958042060630898922223596055743804886270707184051263476566267030790257842554653730502623313184499380787870320108670760844081102139939353566955908037204241793541187400568746439796159028189476541138884065087545998920032186479089693965668696520820057714657854838530529382261313145734709405515923484366187264401865418548826237849010636243128813270568434764679920975224531630338019640845645288068045245244514515023896393130245843928566957040244484458891593611311421736056950943895102663835392570746590961968862694114890856239526201598988208353208260526438117750030793808328282276473406876174383785320062525104634885082729766594586420127973099308959760536895157309777115758940644131654585341913414125568426145774041651288120376572771524719801805290275674678871729994710368766953357266268121486919752957442259267040349953251970901482459396169125418992225081783127556771890973789355559372278508095288675107664776681281354353632282569676966346151087561548686976170871191396795507216568082916510301097775383319580594274470574804575043219564416749147895210339062621917727000858700849264604659384270173035731172918136416162634082740790339737327153707463051747743757439711415362201719367434995226224983918626729744241532859806287568737935564445153701275991479765360960759877396742833566193426992333767355423947286702972043221563329716805759917037595278862326092757358481959606682020955777380708573167172922055134108683295874449752129341302574328922106967385465737581846280565341133378804261294788480100297961397881692889165235338146188964952719386086816650995860476469366249004127595940272353168471286058908389766212203739753050715780089995145743521366230612412872216250225066796771675378330497201506327134065857975467786271144514302366374204159536912672649931358104743791049170937185486391746440406087888730362777821702935913610075536338257420530029580489289201510898458291012217130623915998675209017378261995299567291699447036295819089733067974287632431563313983441836332109878054522796417078475967838818023904948721286897119124895304965422485565384802146385731440819295156662860972003546305138139236434432412860953989337054700907195851562661424768681436522718964776562850114503133770823320744935703467688164703323588234893817723990181023619840223298141424465305673681566783887304237886628013059834875564823635001663290054390631014403395759445045968881705350986424869215707256912363475873874462175849876794078361436408749950440603094597818947396471392073356961168650970467748202433835950922434029654864466924661400143782338503537400433391551146236475207252866375888604857317097620142408592076501100133871894249694405847384153548849457684179768628337052088110628050286774169150401919643565116537365159392198572120484457575659406372252338663927798544648869768387219902915723324872462223085820222756363041208385454541941766959462014061617295943411184209844352714984839587615602820690846771732946915552724233000828416382671100782272719647417141115027975237181686790444256149987434050387016103949736529287737992458097032221628634003849734782031045672934678417888623550140336529939660801987188104081213785543757058008175045963078197530157543791791939334932503101048119294725446400273395212364204045434503012152315565186073556081913116660043267679901293696009618078309045877975895025538026777911900748950174074078072414745448750086563652659154854174954872577920480624854838237508273717538016633100303057269577017355975837041990660726200637906973383852709302005873525598676810865829446475304057505837946935172307217527686493680881551323807531911288716974048627458527260806925338295592853154147825780250913401421627723674853857559817054371965016199922388685039041057242862430336233060833860270184726011299904248281437782680336636273005523936225256044071865590622665142779715705797669575775027549597687157812272853888478787810144094990181802975806232911554847205509074253832600983734425971583268962052146792412314729685744106550837455681065201192947126649361601624685568250359779722972263763163902425524238379481448094029046586135744772539537168042166067823778146032873979085975264510226020037165106787733345973099932507233031862048655729190719487710960718498762384815363177870946716760118637093913702431192946271308546524869972348302095296718439697087462449170225039609548191599260603193736792057731394434676667137376839105656068888634523555770000919995198335315608769102525909269108933006194806616257416713888466494082393503336070535048870875787973120334022848271659502138288837734554436445193648021672329217580423545485560464070969960378113718052474995481278362163565100546619847608053873321877283390200178718128371348509910119399289075732819644166528359346307898402913600453531784221160410374042640007658265507849074813721299797392088755292167418199197675814797713012323517524588334805693715422216712484980648507224068590066759751127738005832321353700802219699379318827418499760520113845387489797755870200432767493660483280522929315977510583892708312911286012942953831588052167787216505740303778159462558539666080531903553775652520091153768670120816224372415830858884934288792255919701152107733349065525091688429543573336430750290149092157339119727592058684792839972652644858010592095804154362769869499470028414376677970761449050976440717068524829669513212716369857628730119153576191667023837004294807305829119598991811069654650087829937961362289569238089807126758816994391502753486607912724235123400605383338791312361459260469015193323305232351491918518717711046999810222966455470854163409293555114650803583650354776211963294919994145877266260083541364375891964450720271144172892526205209032825931260691009002448602323159247827905118743503835535974512909851457210605208769490048361126910123246199889859978105790867009831772529750954926896615495804853959622147140446022162217406469988447870971659785001748989169361397112510507564178503827065270497977083007459292522803248698088547191740847599947593782969088056008600529759054897365255028463120920730289994530752493932538757938055599372046365449211837575925928577195060781868298604685567983319837863040265853950610595312223503222561286392986405510653294624814276651654050910762230442313233860846211900242131557137078363527517763772246910293954549934193427303473400265898748185500724326417007247289666318139249797436841329349207324864987534580879171583231009944650526922594339653775731428900981155242629770830396752787253476073445721179931956339432351373137377013847909367453367346051542684656352180662116957270721059368364856235151293038294441235313360094209834781414297237436578711911887429366516130992069089448529892325669466143020121619385257995191338038411861938923677998684932469788436546226997156110270199742636165929500567494065339873740338814735824253224758892674385378098986178158062499857699618895984215859448240312795119798335067557896607451376608933177502595063301665703509721343522252376948131668308292920639123113750792040188711389598424276281048747994457633681552773672373405399550885913224156945209363946119277460981662907195563333031896410272930448276763774547538394005077563010512137574758946574863170528269292044797893005369944154946291163697998742249270303678007499524460019252794290451405434049622522070677241741445901277584930438441916947182446358945359393908307895233788038954338903592229889974445062985891544968134390288308303609166838400036951329341816037308042375738707173245623229304241097201898604530031738996205535781285444182823550617923204408998774129061899731287154216382164682779863542002691228146159742805120051929177922103365539900248915637486703699436121201993317058150848804580802833056463332885595257958852334047613745794534356768209092887939422286804778254854043467904645057712034985042777862667706888210427475487085258418313655594441206241954778069056730881878809491770389781399106624129108546071129649749615329342881802411192148268798924178713535818217620640619517713340538704940168172571209860418763679829155262210532820084775167363916224942063692016101618187879017163339349022220315704649589291566011182078033059720646993709586856267729201104389900059574547657449628553308475776624167508182259030682872750698784882572170084215853048692583175582254683109048691827797411310489291371663678129755520834319214997207746449445113910953534513889266939035433372679185149710866060713492329171429578207809633311128729980942204313428531222055532304746353215032472203944806821418433802655778777043033133916124276625590801411267227639738807135092948016572426573780367193657961980924056177948615228622176079974280610786246068533606400708397071145927423343740372737485271588496450442420388270039859268718785248212867398353405289289638946489391312898011195224571091644014393047425719033507982412995117647694851413181508263358673886961142533238448641359184547935127406486273380176207150104063342624383861959519177583403430874421295095211751903225953718993195008556694514977706164775298537963177889162809818221847934935800872679179866209528238898763806090222672128534831931704537254342220357460882500683634201829000243846826263039778118487191973689157162078124722568025861761446482305117219957393719892222491304113083854324683629364774654809626949116495607809685830806722975916834289023515879905698174038247121748028815052815039776468100661086278281194465439762281332044477238322604164024823807964753964523462583072571175959884875079629897912552095336958419893687718694712660449718799732737349189324501593245418621972925956432945513135020095593376532864796186386628124300921955725776217963945276943281780657183420299465205701794068087388667443842550360803204860691244829170924814787198675757418381547444642829490023445580419645839294738764010631116558215768313731361622629983287154602551970950768287327723220294438892951032186313365263912459463041463489418973175901388472580712807809760515039604043883748261085754901816412360538748930760340322903695936964929469451425781429152059536271856067258650430510369758726414089279125125012463231937512894986416952019757974654634330572566712179517157363123082401069274011957902137714544711776529495602883154062972056898898587666861184383519260797893773097720970633720939693411944254702944148329059833289533187377675594576610899519450421876822960548508989908934536854603525690084796723189723896975867314564452519869254072532764264117538015564163100126592345641903186168919982737870629740081513501467114602123159748285622430871088598991905517385790782664581508023082212061997230249105780995789624529761042262684808537167763715235518695883373348260220685653020477186052252325016538150614441647681501395751101286962465121412628089414515756904747917518253191553642510481739458496435891380096183485860886439884421298577726871054791235512375028337302016247309594761227138988205436616129566245832534267552065511833215646596327312598233162296589609553435495614171862412678187189468866651926836051543672288807031488963683564539028062013278995559593123273480990984951203272580614056057443563101020047340082332334531320625573964608751547245288539941719231695400664347890283973122960821448652398626763717842814035485946205430512289139877051510696482429050516708668812672312014969244709919345223052032744300767649731589477171436896638462262866897871690926118781255386127125212308864075866984306153337081754846010154149335662397749362052181117634175842169026325481168202310961691921920228696824507215059718211502883410313157564219401457887872797176411065628377960867134711778032244025125373598750096513521754847061114851799802471882373217303279862556084181344755881083537175090620838495675530384993938923571019963651341924925687546270707340659096057455464125144620654291720731864147949462700542057142024621631150422919647130188060705065269914451160142936315965278245433470945418594161114411857909968867207854997947468677871408836668304043147069480396422621871123611092174928478543603480559432757951647361905826280666188671910802416365180490245178896013255493864928903024320281256709916436738251298823486515026925744809368685550468198321753699020472699982978504500784100117373854948677002520688421295322598165524537514036425003017763816881198554486249838368281030174011204885129917747185461917497937063773342589312029895921845707049739873081485141510042690350849206673687799144325462097443996223858727217385902174809381744942931190329899673320499501207608846295991577285323204217684633856311316447875560550538144049023379604929496736980771183831649730394472272563666575399422917030713326007292072013106707857021531488618182465857645393551408724645812688054246040334138338171452022768442274749478282098113983993397823205128099769949941414703922788734629590056542573904600057344555286882325162688448301708408414170380056919801265302196925156395683548118037024860016033241653135564470216696515376105303682353215991601198053615624374430804891549087614593063280705439773758017351785298405002639185165888345779609621557705351744288527975573926714267988659452878397442255967952331485016749399208245727890201848989733556863251749420704613725724635511686392410265447620707522051223530556923842542262469082820075202593830192617815994390239132156736988127372591213126053130776062022129449829361877569784632417086625983447647068042514601256868794424455157791088216702384678561612672642998407249438460102519867189173850889113785398684761957511987405603368019341587705276496809521586501438451429876660723476584865151291103242794880816687101728573600352970077009926686733830512017337498316246318933902027112780458975424501814904900284506344242503786069533969397720697860673703729056743621068584343281464840001120414955668363546831283883766859316841167168394790999317218568271857384728653957544567441395299038322361399289853088618538835132645671929328660152781990812536771985012593298994461779414110256729478796569036323539636017631771704377350776687941192958586777104968111542216320223477055601741204684387993359267033892345178276917896278507654515848356670167857270809562394251797801810288005607344336420511144824956628611879504402723204789486957916701711294894589340460774671990916055333845617577656244818103981844322048969678307050004494702395001427148878025727431953499407001465579848669669405899947676539645037210136977205137248500093518010286579939391759930807723978357033120743500819002429349734065290554100970854037569511508468591803157031556814972708862629122825373903107921812347854724662590452711430340831345611367197089771291948096542408679744870482873775256443233211291254992673924476756666125407891548607779510146118514245894358959288471212606367747882925054672881195999033159705896221710430393233538212727552564813302927416351280543225086876674485235180383177565091066333061880028446542767128480254347804630061709457812724731997123516671195522949165033398308690653279847254644479604334913350912982647012006528314357169612590517362033338675487451251605821486751301819672555374176337926678403192972215799007796028305526403424207843181589719496197248239664087499067473861667197549271079660012824577002399811441883066650809939319990753519571645881385371393920048365192976243026331532819822418267733484413510364795252212456037414770100127183003825155734840713832128794443539501058978055708117314677733670854313950810047198859943224568688772998154000849719486345212981252933076062874525131055554197201101500459501276201275447689361984318444207712330812258435671167531808198994413970306906733984491787455809254192697282160881298323493847279127025785464911676874602828079458881264960697340083268243918893742912683680758085035658108798666330070502176158218252515579597476614657884368882714898680254653368428716875845984258844275746897860990118501828263974528873527790861754342615967759505477104704323920668734339623576883221651301838539392339347880682024694548580093614403134394478999260612022858351970753666483115962022485747086496092697797503547621456997058053831598488244157758581164220497804973862336305071306013509847049450670796896595007694961646710924561416272824573341370014343637727857336225457824573724438057572301273621064712826141679918675764891126577637344395061769520885707689448614892208064202668064661014452660452475482364854453628844982477150937005524672316180429659628178381874346490369425565450722755096280167302568420314431589434024654910031307890729021758774338782299166290580783224076694448344714768922115999735595085870415749833019946285546636613785465869198549179168980167105507141808269542188127465621202021971376495523081925934779360781323019857862927933483475372210491174098676926391721051802408882103706270703540624987561676469583175118504171823982646364758285579131483728967873319054939019034259082582995746552034967163858538691006775558309960737265652629685271917179358900768420075551948802103399245642689360524322401133799516798742937475985033820787770864538827243269319639246699012454835199326877139052936624299161362923709050006300467037102129937175298608591785164481166135189368957513966923241971500258602024042346697787732777278174740435981161010706342634751222989699874327188619535067787826371964130903353069819179744012150898566802274058714459591056573560299603681212828129853783171759479929689575492673450153302479356823774313850658707807327428570393080683465501455929612941340956390408192133839699154233144292114313557289001547326410951031661708289005237383050799055074912971339225314337619512303726551403229547632390032904346247345136944274242579024673176748019610437553058218480030888670975580300203944798592259512110142900450074820239305141870715820581704315643461613395208621842385657015020760887982966137778829611045538109903889295748719605216164863671958696195700683835338043418164250947218008599617682953197686315882324472986924600062986350649238673925782538027900344365792476272324883584727466893527167304470331395840846155715632853422861945853562234403535902808692220196996900684322003277151971391627528419750823665153489695597936275135741877925855323516615638382222481264500363965184258273245254643254298163592709275937939176872739841762606136340382594773080217636739033231692507620814650223047848633109368210074475180252445177621983028991274319554925867471689821313245854632220227037937013149040707460343332658552805947866676224565447602252566929472969933695714757042662118271912419452251756415194770528689817950925998424057377421386462334416726580255553236943228336896305571378256357397108647269076072386741424874225158558034532830555053251312328481561140034020990869298410749622181156518970684783084734279476008399862449137405764477050906950987748259528544245503972834945540133235392901484940250007189315626619008377219708488109159033590629482989172228522194344422727221236659748538766720071467310623686998596008328310293968784187836904361470125767383673819639516433573105735545685265716682349289340218211346221727109770149525244757339885462693164471436384296625600202983848742217124742692760446267367705620751469225244915429734539318881140860889625068886967028758540502117338574970887989691609025677187015852875860344484245981390335331530686028616934863449350141931227649775481476910189735515908060026107080314020901546195867548590676224388779824556494070500093048067539383862693004053021952966500889885655102236099419658733088736476476327940536877448297094113581707175447023337160663458639722396590250587543662006081001366556634387485876501469551917578671233851002301197527400425908374799394783291425360036534072469522701134279244242652622844691733896843429731424191377080363790782326403102263732120839866316281442575578910686920004265174170509458628854525661988864600866924305044674816951440367061744497795108994936915845708574708576992999411498604419150054328911323011097953348299698206521621849060614558891507523369597936307691723984499931022536478154342586071809595283003348074817865333019188244545885674780839287563948846828807021423977358510599527663674090580843600362190947011181672818492879705551427514244803754775436839735775838993981395071895405920171883472980484594376749739360665184258920668662124528016270830749944391623652768174319312025121056321242487976480822599097387591931909820300126108898491811619888002591639896230454409961539170364142632831927316506524676148801876215882416454683370343605568590065598046013001962324477874860291525764819605012852773599235610142117642827127035997673194722381165835428867871881725250392961674401013341021808357375859780685489308007359120463267716908526341413286651000623648103220351550508071130914120462354801944427898837028152212535328454036853640803644506514926830386229530727796909536894759213044048556819059245115582155343112578223050011721204029552852395193365545131191969086786683874017343139099277784147683729138231503504304382834280762654796797099221011375968182946306537693218733999732193085615004126426840652997095410848222655654838711899958317093469875193585526122322235400306649943902161686936959538341869103967381130394889581816964304772387136955839563033960354473549594103169437710318772962862274931043707835188323006994668067426723329121140095429033610009126746572895384195693022041362565631340051007707683888931709276089217452708559988300303924626357419883381732442314159866426422690244944806987162050599254712764324305136132570781091311627133785721977318811465243224049458625276892853375769372469311621938233457925407528496943491261585340600247613615344122695875653124085944345231333376371704578620523233668848535029768208376875545949547421885372254736995671462469517832531530197864254893944867820322912527097950883150842430921180239357722095987933299945652042579536921091356993580268490671600986920329129672122431012828561772785963975752274249498683543204413879255573584876646527766714689294111487308527127520453842865865262416348999791179026285870696553576917693293479767998174440357774673601328064912152433195957081894642805969940220097416461552597792428207832406247559802922247672268000494730632159514845849063060544493554411511447219508265072308505979664717221510626656151115516907411412686809293513876995176083889846625594673994360873023504398068746762125767075381407009690934119916559055441570766217773262036684979668263813129252152418835029558399823231259026813585260339230384368842667496008734455317281501031533528936595093590203966932772054073795767690076891429519950165896437964570477380285338348339073117092564921720624320719773734429912287597284820642135518310274804728074284530817947159157553519826467271202960344133024285970804876597499776244968165983199638062355564379434229835192667019685183332652528270115156970992507634354195943316395589542823980376427278165739306019207637215790301261150424451806766262753828119888621626010581794310260403909092375743703074793668738434405744235013582124422250749064880959842198811647671462409445598254943462804554356345404185813236274047086193105741395335602894149799384688028867737762189710030667162938853943343127434369206975303177671726265630912190482316625286789518992982143301073535208181469894091604846987172785473678751859209405393497151084975614905133319348357436523141109873223309208721605013337256727384865751573347914315728837191030286077283981339066356086413749558383108980623811064709690269256862194383224330649499454150905281393120275580651478286564443905910548617936440608067367444027343242553190694538035923172994714699088304231424234265285882375710654220286227648657881644932607781172460015037912850762791733367934376106361783422739934107523430843122380787404353599769625386286243477478405346899480592511513026604299757734744955798775571913234726720724614820635909480988655577202736461005613036502560203814465294692100316155987086482304242632727283974090440461373938404573079770813316331831031524311842185943961094716612666704959948207921026724277065913620038918528686836459533944729200572590618434358807789680146361718258871721977588288996577958813216004068534129634633279420905672692107885313942739093821761807584321574152776254499327605408134386010999651150272008411909100424071071618807008210163030598251410902861771060805547971992090514719865976116852716270860219526824415394482072385821295017622829872975163566702246365046380562838532623239256382794883006913951899473668502669591697678513821428517114757482290864929396368714685334928131035321101149765522917058233336354423954832236102065705311398495461139984827581778276712221335002851174651431598682222090939473897450720402695078320162637322169759603810472470365030934091655044825609091836940892989768097624681753022675426790491545267231434513817128511909384268978968141656539954163665755767939393754092302769708444734052356221353460483178045133745221756232338964672276235076882611005045096750442144673278043090561594811006920144271008130738513075604658647551255928624777772976680692060923293540253894700079374401884687591116529091356848750496223665847043153688055497039883178110179499037428097762030224565216298326985250066896987765331561584288932518772603812068838680377339388385030290146525298799193180328440673348211830625993791085057712650648030666328189304516168414441815495837972918815212440105791775022647761871288830207864658397876823540736617064607381726010245371805418589613077371315762914238647985640423702839211412736138487831799107782990292088814469442193262095578200992372496532767016017774299005809404675761818762631113081752642041142965874321687553018338820333584897177687530533715136857788278089990918632401555052461201973537813557341038929796586388987138354897380713932190939527816273990466944640807444153667101675297945724067360346936193105489526486951328860064841832665644214966604884734505885662377470943300133609953305175795166542676833035691209347599047525829220266545447234334747146922008684186172264626133908204651016161889416363844388875268579799124034772986739085108028594883048477812106960583594083126587270350745235179361467036244759790710044009463844196625619798849478216480799542584561132827309527648782452888031364671296147996731316903770893728418676298707469913153771626902242393644599682198160580219294440762308384671691341286426648516213587132527124415772186527147676962217011325153969991794414974366018493536479219740833118501025815992299881860097375738723567022934130785389719611433237363903116273730349507042196445256896926452293847084281179925107621686527391024619138228693880411938254640455423213132958746376553667695995369728207561487870842642086014045537531409475530811177911820842866865179751514875711144417987740682341135055654125948934365373166752552115811292711575673366032884982619834775257886393876440947234729841967733232614981662398210617216099934831537694273046067468854914610239854853510785156003772698223505469667340079385384071712839362628086833383165643320813624236199372628250166596358601409074562257909239055011967619843105265449651391197791289787849918266788712620788136328606041473831179843228015777604441653698529830994356533245430421759330811115391921709700553880066058173719684647823656798447063614931826994054801958163862688495342461678350939918436242029831777275124213424628069240073402152339983932778411547865372684250026977924038794442583186385581979862931773009327162340876704620040711458185800255141344601603200092981096009294171339604382213220639262251619663464877055935615200117359398991283642779532119454518012452075625630916868446291318754550694916878239169623966240084948300265752592285664687836282351837323897191457716742995577403285169524252684031361574900468524416350625047005114060353732362786988948329083425004264012900731071421525514797210760580982429594264462696260765487104916684087712003542740402158578761646672881518020900379778814190239059361371273143673683132626962006340297148709741099469516876860034116491686702167120823857255731983514768902030349586487721046603778560816508254839034186939655330931657654275548096592900632167693137605677302273632076049243335466630337721496442877896442534167623425396983643729156135888779180218702551919903087051146651709881744458955560678692824306221093916512057714031465192002664504416864162198240294271672443716339375823848322947789161031014439393116276119048765835286661664359565606754970683869883140257354734472858340267232966581758316482171109174063218110261002971679677340313932372141166394372735321182765567197813552947035236944267223606768159555532101084416295363044683489703807902815385022995518300929090961980455112156206102176604629338410815070367450400996566566437848901065153273005873657915303393799980501010703511699555183149524749602629554210286539958877106951709626955217790361065896162639927573776022357310236857330951445040045749255905177471141954507430545870412876562628165832713460622669613290216352068377438704390102404803475597354433388875816768517431836048089082801581678846817966396560111527955742797948938323899488355544375744340525882577118818845531668215562888487828306994764821758006355139623499918675491428481186927512128264293000154137563823142147842804713190867319850263219116536633368639694460073228096557913589603097657409546743250757972866977313561268565575949971755978849719044092224826909235352771433329351875392326404892156965902735817655623909332298556682585279086641388889811556089657951602341639749340926310294176928258111013456628111281543850494157394978209214605449544417724896263606057630081793847869263936525512770818138330804771165796700172447686159964369556029800159321626021257729698438592826129253839500919972500185733944764334658453806934573476163472140463373118493560128478782399653258368219124178279032115060431362814998324409458955535435643619911331106119834935604387492091399778080068656180192778153800198531194452882409332603918403514593454874150369449295690180150433046620175205898439394027228249751196866126425208824805581596151038786204212217329236701779084976291278054334105413690343890610943838913378435663887308550086150986476677395816419263588156755387858186885651382145797606035266479066965254378770412835076929057221607856098539093969227850114695050374751848114288146541150592603594397728403907956344856341049176882165536833101729919149406760784183898958969737923921210716979533044982627140850056107540954379285476355618388129937263660410681069417387568784020105009314707228866911099252129842968299239829611755324670568379118506538781756304610704678477070577955970404718525106151213336162517223521965993268972202488727570681475328498212736759219143764367890533564770167199476610822192521089677138232650393905864358558314210978561963738198800821322625488213454865701656564138837663643953158515514293281054017445197304465700762184321393982135841365814765396500429819031900419403745695425098120401067817095396111140208829915242532665186705228499969109225580558165572108548597783708640026246922537667111330125295861958702795035596475458852848647410912004018194542282084743604873378515722558890161780963704626903179170539393688026215485568693229149453051559024141630710209054773273167503140888670339675137283440586182410398367327827695525696808929388623957574603141711764280420319128254886577075440287047403462927719211704946854034752530958476821061018129337534823030273755277975146917496594292547262473719053419107892713212985991689084322997977695615903042572603259617681763013999373735340230443500484441978907382442837870775297058455381328145669912654413192836759011421524811450281991240904023752364899730266395671987414960025182741083197570033509516000146181033741497300702485375704819316011920605889631890475971788639037907399493420802317959839516533520995972786429807520557939876120956830579092465361619956156457959923993115852791680497975594063834091470794475460299339225094634860817725347835078789940479650859469559039583164461235394728018948588446648505970098382006190362166318787402197669637792961585714886706184668722858347197230892882814557561318948786830580111596934837135156994802367349520480195911228806683534562772381377993732189105626825060057031818218979676259849744995532734934347404786415693985517697363867471119143898705681249207891624966671639083633346697871282880941013396000489703348255354781669642566747368528761027659541875674045861692730901254024099403804127415950798339034113488755638689333228426201648817274245593004856809375517045981672753152668601512531086963479371099240396324680383672899568180793728368486951017757813789966363831421610727071290550680044909943882865634136122595032087410662399448809572936909423005000147956338870302468427173113211730495350287232914738953452557192120996619957107638676562547358738813264155748073377594494690376408008154318193618664459051900517524402266814057980387100405605576873822237531800144540399413524396458188052266063013787018259901973228679002567079563510071445703513771998858435447910556929722367420641623467722570869390404718411057624636835085939899003482272456412119857682647559244657270288583804770173830628620225862617945125801767295325322964457191759013050529323394314810726550048523157158287825173397056373029924090051318122147069200638773613330569079630301563337118830696939081582759657080792555581311388902447514540466422807313334655712996019058584784747624689974120658373073066148525021016926635083811797815061481079615543351113647912503161835607338075996216196802957479555338473412398128749515984260732867732258887892059007834720716319268043522833641824703046218031664219597863131068464869040599842238330813473397266120691690125044409203755277801627243114161045218207245206740280830072433429110909187515172863885321777741646900116069117945642647382829817284527137930147369069274798664058934930018376730334544890873677480127864273749439907359602979106565073309211725384944475895397795255705660367865585637041310956936915962441219437945587864615950715829799195717857962811372983829657551568060692045607703085295111977149374383773421429137569839446177890756804899204260858867971964189171196995869069623161264732991853261802852198076410587897751431852786854480912575601147785580904475221300576389473729657898949996990067007481537322314660523262011348706363874432218238480051719847169696393379433660890323345724155779708465533963245243128266142091503387078013873363046274988666812060121748660451659699238003823149836208876656983492813634402504617977805571998273781179586958702609360098221626315230662226776076269276307447179293230256521567800528201419961342393875310335719994850928220545307300643179438390107681330430524151920619681930469700889576843273406945323538752831702760630481199781692592812494394664973026382136731099721424515782361708583710832263846523570121531617446602557099377861763972733595199746203876484608309981086549508196039728529773904675658525956651461297514816042197010695891397194600851193654871368846484667805927684534760909414687530953207068026838995110957984348615000529051937241054921926958917316407579575584434570375051825140570281188897004625935710287748758862206240035585331211890420859146155621093145943080426300966562204074986556047928977509140069368600958741172612986871999341072562473680485427643923817188652854757550038194485387265472040409693940647691615413856934257951351462854321275816757349421645742707590579370078582801393035660044996935239534475012795129543188719352658954358970858848363616531524425788466501369396558131648782754764586804911813175160415993208097083515136783325568710638732343599359285386575148901862708862499801280858426192901751514486185799350729636893990782229832065117337847865384901465518421116567394836715817905305830667143710436038258388722227001114161804632102252657592734850360043592140424018947564645445026681240761019081990343256719322921831775143283005349652935110868736595945936685603941295436232044418851734698470266026419641225787056604026547579342519471850824404951166756200657693315293659650138191646813466453873910037301736008788330609067201032278019175150403475678213079717463496915111021595716778235507505450190856237732255080121945666706655560649535461695744668578773728676562472731993113699659871437678520192481568841394000011923972198089057360993151316772864772386899904825649117780613646583632483609560238377273078449314936607989246632740954529632517052622735752322827438483143363506359371804682530690304796634169432005846924684513812894404289959555818930419508440986975650844797952942119995515768536012299588885834025939820256806694154285887460842750264622732310356743770589334478213654020774973027731655446701016548854843286801140635462180180941262298077493668023044829133078766265628393184555468068315008405620549870276719770962463998593594259791256367655192452761630088424233882304579818376783629604385239011758630371979259736008297512239542210302994130248785309784356782077558526387809522846709688932741845330918939354903310765597578001298200054936262090880582157156172392008068956944958367461916626175322097585711818499979372954863060901841058694106441861175845384837430636137828707301739874700024223256549305110533469384596632632687943688435724240857011659948979498979741646653230831343316824452341700937428986907875590814923034371731633710680682790340864166899901979672901119848000840645158683529279580610407386325331121032393858619132257896721735611236539042203734293268582153708555857275464126335469109666159896781390164094597480524623787243058097711252180606814161581741944407490864760348442842213998609942085650723672678868536157073291888036388338220524809187913809947762462588012788682559270166609580933645081506726521894420490861490190148822683512649421490581200168242754918085567703147735312019968725929194246725835253557104498580498386194141909770689114390002311643700357219753412893801154098691471723716093943209157798739584366320529827438360202433203387443389735037265213046989577094751708128909065625944601304765921818682351381605101474739474406801318612917365395524097107139025493886654851727487448473132149884667327967196810561183524437397232971272001638173825410139216092687783987353275520262462992210343518996122723077583577038792804275246960955292882708352539744757212577788929600956537901069472179811278971965588468988860865054927891223933897649978846854625405207556799250924702531088089818679980801811459891028152229364392991524811621594835986994592319106656197959508569393050452260614806640113190809151674533609214291437099806136894487397174210960895915969069246100056871224353721670392383891710951481817580928326524546598118125736433304679685646741731036959692184921815893380012463635460903150572950383326652400605683824622141672567367442779651205159310008972763291422983923703384214199895490578559166145320689020594813840804424925803221928041898853004127873253349608383945385904349039583336920034380109398445169300181836631099696977966767426546435130940780496308746123034562010134876476267365978735776763475251320166966573350341855164367428606337391728080433383738772914147578465327367934686484015759071274666964431341774422730282325593529190901029653173381316338608472841763760387635229989879939980366709560786472264752823031511788027907345612060604830919992408224118435872628958194754433066214483701101331842484492870732180712970277482623339299670646996123544924886848610775351770147038828642209186145575628618217143948757944316846308452412293591797597906088131864289366531886670664966827249866400183099860013643521154220220647254587274774551808605122709371412124707838628652849476259091717814121129819084709014434572600010169661199247472123117518761269604308858254366967656112584253974341484618281814975518447069023200345107194514806299851473277271433152442601546639753836727531957525217305751786921708756221701577734559868639790005293204505927197536307049552041633509866620177488145194806303504584975293225497267459516168965505678763213772947356286508090406172546483124562768201256507220700805637565727055387787024211461066202592303169543298840556831223505206375555015775476382033344232276279547125979750657455234418289662384278132006628207761749049884328291788823423870967509507593624549564906804645981825254446034909787525680544616803042461394784909188463718506550992509149439051641529834323080013245527416885713964744613753578770062084286544987158842532020109051823163494164767806379656129230734992228918847411460035432047459447337779547644420189526927801914147212326675265312072019881653366438161164382784445990983435132072576184451261878369492905548992364506140028932151793319044437720175271035078805229762843463529988657875596344491033069669505333902417740624458495514343711016429160971978655428139653982310541337416082235906642807026495083165562648045141673802334120888980483967768537750091443937526414995472019287217665618085864961340575434696935073804316770812792356685044509675802759384832865288245992667838116430246118497468291238768873801840582354352786940433526813678263805273595673010185793089033319780687337296069069093000859808318292570940603238443855489830159560796468462877005890540085308527637826102706541139747263867062846812674444453182043917968871452425165885885849826822404842247255177387294677938624133222132768740353771946647061287890934015084620877780208644338625937169217839144917355235970232491887765523452300553169010387890838811513539348159940795336565084785122344795907488470753888391143606858160329097717407085044927150689309384200271035314989521118974011790786139689772113233740068971932607650117078429232281561273840997580290879403191060842876671121135877032463514855123220273422214419763274214291267688243171082665294490093773753487084620940863500261432479813418818813379409621414029892611269943494570583636744872360549293082819280476332273952397176165083227376466176184522176632046274251831492323538526631699779818345731844732510008365227170370714390978140359460699511806470144960064546972617244792348163617738902103667613726343853672098707013730066813996095384621788003201627743851428856614287537884224746028214749763869327549679527198010211015874486904177427460205147259409165940668486440873731832509095170593544421014125208250006926065419696267590181878248304772029670344610817656840342653054691459990175642634762638709226388458830352977964753749185080483787332036306897850334737137713513270702380617442432841917358827128680471652568489477403209002196222709863603583392781832171243231085470021395268545350031234468911505734129121938448569387770480223928704791454061370325403324016057104575777039019854035354382604893665700033410262005854153146934345724906058797652064501279104287513210869557790049845758979437991051459267669033957458664667658832639303588343860270364744637309473602119064268011550084362189712025999471271985538203073194030739936437243479611418117588416646181579440290404428942872598987284259126873869786911225261806630956715123805901206067712609851798943098054813921371302498087106677886883102164140638479702068827341756646021956080782579837695257024657868940880499369776952425459263584878263682926882833885335895850721376673414622667516590477861369761446656089901116750434576184404555118474127765064072832880437446916128095012458655635138780524271211671889072045579850508452072818092768891975313799952534900343862663548012283652325724684181090451289299908897071987650429369129560390015106937167030765278019764128021381350865881218304733144424759918863083627278579276659000852913418425635792011876682685758304652318695312880164661105082684826544576172244855082635223397679756923045568482845703303828442747272346204889158819224818878871016681756463461036013148643685113916183854331625430783520024020862938567223183936698104771753319742596090522793236530000065804202701225539451082241879513652620161611961513747551814336086634394661705380462007583233964293366885685419570924934992335282843619410522216676816790766527523407992169683393269110095544830118753437278109065260796566935999049538659193600258575481314066399971845110619389630901859399232924366202182887220436671717316147420399664233950714726917978076271449376611314986850471383027455580082308118011871597718267031039205083320534769752739089504184817117117973538824843845553859256632842691712074499636947929106980813100160785403129972379086737012656496981058855086548148559743239719427448395170947470158331096037020675692502330984790297898038429703388588450091029940185895561567325358746842085486095066104214274443412905564826159418621426796526528544638391703615488308246102504724590916416609851239781364993303992041417347842200037873545468847478831067847160645760950787682402417587086770384920084874593935005669664283319778689573480417982489075592641006193527321292854162539108266524308139077775873706781020611195484739355071711094325738913591446645160178989343640262032686254246278681414772719068625293191812905870653406476348003326867216301432884318148892615394896756443555666411781663580422558448436226395545538821959597860053801368920406350904110593195162534622290746473345739187146910719672164315596191009149970340407047748081119223661414927554212246339123234527853151992410718733428347720596452540906510295997813711119171234211437567328760111553025005562508962672378946839092838757092787126651003691487413246468281115105992161773396172749913105240990173206027817031396913826102956062347061936499742156319508397263275307975926726411021463661483997226841904079318991314174102183945041844365712669129664654738204815378690694198584664462346912665973060979482516075355355103395291361452114695638892575422427368306729757906516499905789503318825000207873499818592394652175759918910276603418986047005242263825511043188923949326524574335592340802646793991684430418728941150206748730891555935954175613862232497763743022556827017125649482387889259000871457146054586958692768094039945350428070899393203766514296568497497249831004634317214090590228280028373531865014675755057247009766345435681742998446336698444694122348015739117781066943931397675511202109531888071360598244239802604526056287650666836700255429983763349714696119932222354126242614686566758927542057079454522411779837019786838703121185068449988619339654957791266206579348042280835065432336070139314463239515658424975590752657483440312248281066111032375909099684721801760274383281869873740436640214961141976794732364359739314725764554326616602201687960988775660616695983360597082784788545388232830966560633694868770843818131240187135773104445719494143386514881831296810620572960813613922605674322788640886751845398386763564938412069963307712126119981380783746947499473585240111607554879567011702020957042027140903050479599980771560568468404006927877919954535968850913435023753698691848831529418377014181833974696659820785368404752896968747391142886302697380197256155199859354375617633387596829534231182945796318174037644302214330983405918028186430372919138933317282716096025009018884178072899989041423156230329057329905674823473673213015756605073310381614315333930479364499370995499850045922837896302177276872397749376180124336466703257305767723774179770986889727845490097125655155604461635235701011449686714126021708790833568374646097054283314097107518794617237583705679513831619735834256141032828993093526412990845301213402283367371777531609479501230162909966338446121614606978339637890038713415234822456570707309631604651392567037745430472609409672204811577414645431522230516210670385900711201736212499815569278345791307269996857399020317517491428262797277097335470717392667384845296260542459717825243012251335980885602824344671544343940540731666563854665841271563266870203454748695093989093512908362141892487912789308546054720028043456941189990352327643540279587718003055859605561584970602609699393673295902913115699514227382869680405472877804612378630081554745154068417537254489543991526496540971473823716642985149842316499987495860806905056463383912277328770697000480099516606426271338462436938539958805271747614035138570268351921561652119505772604714759446802065061117517286763490344355975730263605887125896813150637996162005591963867351947776633412012411031324440893659554294667370114880979705458874229309648502172704262761096294129115536439074265492954848232597889095470101805837100352220517712121171967882011186685230391747854880428625868993974417517408202962497558078265131158189754942091848679100112334749237104041251867738301479659108811592249876955125371287456436094977110206686600144372131844034886481386182594455301119322608084473921173506154395619167083103733738022664708529527069108547938819314239989655579346610847914775953201339460183189400216581481937958409985160391935322846656428955674573336885453413559156972014559219540561504893018340393218914113724336819630739259176247137887988571608307618982636644881606926818226508197020543200446668987706970509143561782139375494385506088994855116363028977300860449271090452271829803832556043407220134052765754972896461189084010138622869602359789630770626922644092222040835107144581056985396529276765523953342208374379435435759401076173104116818848468370486363698850092919367165500248482234242871645792792014855261688467965023241657198728820588704076230856856981684991657589000569750227325832635613124806863751828316672095690349802314559217510360226175085928026341976162073312246861721520567790482838305357924467512384028147589583232662392564108321298334963555598546798623141357984340599459087557457872281050403186863833862985018970406813460277707685957457479428245565247084388342022153942157711565254346853386217694114049043483332762452155627500856904620142109484276265563240941697810324325867043608152789966850774460443678227155562955493120215572299168457113627320784151613356869909244737467094085667660609983339575004604129019459376353879867769337297791850967887027694818215023864111496366888302575588193477382411587200337946172119837916087787061820484251832689439663572469135359957269653213110092441404355137600907676247231986363545378719556706977630270741670532777370043456054657944969747464700987472532424046451984911058158536874912145039485563170812322544245517218332626459826724205843971612995618228952546586361814049211459787247074805929648327274035255100517446588334905464260537244234860141197677067064376427218153293856086805237195786002885059606193106573897205641960001195094854352327113892178950562678690839997383529899328837050875010122164999730892443417373973245405138453694408325025629322332796933442674371719544274744793595312770445340495505060819226909976842676746237842531517367041599326793275269244631980348303672807975776052932087944848562672886412552024598936853347360388695175324051593733136795042484279982532894051519456869083238588950737359531084287009324749523158656571969812461608386610993182648692709652886808671581883006944818309574350318392832418420837186536009785971674045677645917929742097962312950001708182890236801519397010984405636484391681888825011023963992901508734419951097142548977458182798865490459426107868643900401800783575810865528290134793436618496836277387041890465053069659445286713727369898599521761504628932479282847640123664015186981007576017675324290573502120027719352064322946788971836612837929719682490174103922545304717303599617661973411062113708932223117459211790139444870471398692661710506988222978404888992920745425338013386637870443720798720260247842134513091522757837659400695544877851683220682765437250622165532766314520682325695613775798777964910816315098616028752618348210493246520757342559826918093760867127101383760134193134868709024924016093044527070575338671814409993041418832420461096706597116468205050149109132476617674320056621127020617893560537157189374852949238949820502082368976418552608436175404994534596331741241251806439849480847586373521025745697850953978273251423018707907178523213593342399588198001942945241939279975618065908309192701175977275539140917206304099288690391418821704355249009622239346495487270919168862428197486512112772282467923996430400327699255113283088353868876586829480981933810151125378975682533170152062956055155733930448966831267695759703812689670244873203405536531645337087771099347880616002605927457585959460024488679504401503120781617482987648806190221699389250838602785877811731733541681088572166874643669634513356783147490838974901173780836214527315692165738938717595655412416417859876006370055204961755022246433263170823209676280765599601708606649829965243988357172164059498178509596354166140758576000291682735285862697288606399666070492125656951324347078584368443447442895059449341434713903637282227474745253319183806974447915853172940682642009841754184697403855940774023450041770457394847685583155319416153887440567213624041325738090681396204064114447438982874669676692325512112657869173936499463322312186398681888550150090839053493426138834894533809185320016920458364102451919467686114116429686418641480747294094670574558479873201298841133361409141031063981924800519865282579758570091576344512357129117686771559011980884373352142005120890323957420051647864336580714662476617256825605854219396050143286319795900605892817951383243119480433018930555603317486437439103685609007405664109006375003575106651291534432235901208904153202609744039153301077623211571383628772303692806470119770882942461307636035264762912736592703815521385657709489843049665129178332452592380738270943188295471198126260073527928217132637904103290903531046530727233983926853254710626446519116805462680430013240427349076148520068752439932838495734520290902968688683471593005709825939664087156970613309245727554000122751450054825635890438824519085409415124903358424752954120284719547504847239050190951298284540005897708046283227689451783926353688448253394417308689894624918442280043510791394535408849659424042322119612354678438215042044239681458299700172859635750221684153518435678753288237296808389414107647275108172488489706855063725143294764254316670256652468130118074762276469945941937079860305328744059832909810260937191751003814967673435887990635722241140259851292914795717598177726334208133074422352061866866798532086641588279152954740779217107048775154436741193669069989126553884077543983053921702270645601401255519867211474630473274343932890507029019354016733411056519730564318841781829137573981024225754685912326698447863231438363403889610452336832197826755630407670371577296390611649798716239127662382673048812886449567073669012330420885651686344439161084025596606610413352213700223538317149632214899871836917218933902892323275683802116878922637450831939466799307397564198325330647264413100654387456239391797086087481779731019297537376133638052932172249541462238324416537199470257479835068250140014434147299676292055681637217012087808944175364578511357265431350470290211176917559458850860842443219157399419298472622587962669774291674928501288397520110841672525212240161579473017002055218249404054636001207430016180532797767646473095494705701257205523292069260225806167179891609744467696483583224420706861243195269844655723913133164316201183666629624392979019682913677377412977887805028017124818582583458272617693945427797312801793546025440510445247021423910008303257932246447422913490073372705465327532393667894797134934016088868616135564786049188568205190721346341972362373167041268534863174428613870487101522323029844849097378464440551043520161113096402336470521129092931681293014622689987919077459343474875466061649071365929327207790504554386393846872565934004458481758293437165887573935629905341043948897366371835972455531173038769512408015958437712056600417220348104753727910985019517493102187051266703433100701786661763886337794357798793266313693399003278173369939462302555031091635266159331963337041958474573257073539658875566036796018822839303690373652538064636894330280578225494027316758695944801926724294881408045631326856298278220635138279017722737196474249424931534794767974419674649777694804423720575839021575912397246126082087236476376557778990213841056008936040974036805243168670290519471267434944580823444170992672384025743974062108827550939034620201353810909993471577801377187679071010253454907018665467999667460844522685441938412065373105211666497824686957102568794552491725785486479123317905298163556608350185681537095570598636067238406530620194545483731353513807961022455808832295915322624050647909457036890497493777097230819053950923504841122731533465485580882607134523725825465702231013380076341803167659184838211380262503623351812347066381334227412910756243262297464092418390599998103249137130910383534457711175321617788353086315768717257993951688615222222758943533864749511955785243611945424440886325224681055406145540824592860962988328077991380699880491337896237691503367318489807619624521479810278624723343293227263548959838282853171103540878539346507777212604015149565666228940556249227295988719043275108213688197663551826233571622254214730192253823145995312098934678742514025127824363129854402780883629069130905121471139135737104157624129682749149977066450333424171991401162037442985534417620483430498317654039047044756655106859029589289814009300723942441780741414931395644994126373708018122458468451353833828243413743575089126505417488531667668535856522322618119544144971707076842803989729183896864077351726999560652216639992016856347450868300843604054377624606443064156929559402139919051044931773553155204250480302786854830881977146284518111194147738393044260907040614766224029243883019533750005656139200477287339671536976296525360789242572002384242005773639743136032739565988612494223108735048505770613940172188642341959090602708342809988787841737091703909960508484724249823909642996543099583579864176843444280455460479991308097018789043585328003190926736283772771100062162971137861000908136257847516945559649296487328349964464472712558940535049501378708003607660002325216086824869737573902551690826313329671152910157707378935885835765510782574190816439623769306721624385095896469478339354600974420579916768883922708133681074692637794493462118336099669486744216780375939356127580376582178773609204312782961745821120851200984399566376125660496411868798104062753445414545500410552991997001060043305498899737209899180949159292679216181158488599484320658296763379149579145194766791351365696992299340009543379028501461416354629444715512937273200983425981128822839264441252061857845525230163785471432642568069566024887124533227765497140748733944531586470404449530062970531767329669452078281667651236782109469055995191382586034569152546532473135618138622208554686519736641612676812300880719024097539999297328174705616146309907661694286296971829707811019925953552937614783346160964164370189703927394301986663894670138168829902881518544041038397756706383532953037732489602310015025732799493627393613255197341743414414620143121218437653772193054971273392515502076855805057789882026777526989976347334233370792318398364941079657658446812409731936863499661701034653440510131190013506266979578784833507754372458812953373673761706336342784522069351336662502731431191739467049103907219605747088929154402924915424843548552234050570649034968582329314429913534978878649869268170116092832907712205782983139433587494238090961076734152404913524287352983702013659684036543317873853578761053167628442397794414480813728099123541475417346734968865702507375841629403048831584892558542191686038387856493655621766997610649547117544099116988677986134210414759344198285642441603668483260410440887120609217285201134230681921435659405066592526250546091054649024561105231324341063044489307619704944736129242358906469729034446942836499645328609604042433853940749995616653794798637060019547214823341593646897249288158572854524735805997831046023250434633297394496225361299345833013697698612496417126779571190927683308920038751777520886283624014417305994402957111750199926675715936566374481828480284082213445276763979295962688282870848403210263846157944342308103833073261837289769939570059511905870794284885843378837497254009509410347124973120105026687278664372808430331157006035203592509274413301175354879264836993244851254987262556487939118091085685649067333513802263048020189175864098010543197258346551444878240986455539884776881881645805750275681282196164306147643831753436682837920361887774279204812252817985561110260184248900938315568295658654689261653315924309312090554151978233874839900969729385910477318500255385812213307148600579616220190827722473261841869617472934381029760495667323612991707097486056214808282822355948764929747868049142044546700121947319896985152504455411976314863092782979688756357834343112962446978328502822851724474001049840715114989288629908278261488128671718363080124685496078637335161189835248998968292704154951034253847658811101482649878542940699756525842068548968911380236277348660664314763717792090393282119555216825226051522737987460790563139087697894213998039568834949946975364913347487352556394629054243902538669256587747983947721064662752390063368590440846372314486317330690834434739311078141727007663606672362636052497483266006480635942323295013587657909340086662503333539810827632166765655764671831605973854742796610334079369227085762413252346299728723862934393590268426104052748679382960682868563361047618891228184374057027724560566618338714557559562550572349593085155984951486126506846928649124145676456253499755930580416265861970040807664056448231645877840538314293733560224523753864618440293093255652742957946034249336484163317843948457677923881630331547775712093716983825059851447769602722701175509178408220305866126996351248612181515989872660476905119738498994139032710806932453099364965172228759111878447802443844316551040385409536563647430841639270418415011596201362217622216585449319863452966652904066182804999710859575227252941298720436157104268543515662917566132187840610042549127405302852307179802015169824746436126950206780315064074982468947341205726541075683514876201597734035921450379957622777965127653848872631637965682917946486753320230549700828895865821514265180746277518955958723039561574704543412684827748433961904401586886312757049054918071315846892633309651863014094959864805252169587178994941723409766820625266433229389454151983540523253675567327884236977391589004238768200977195145127418090345461007468967691708960156332716592870942373083890957573384749580174670363047976163175846187078924956048434318929533962358875233534548834744044550337070690470406264363571050747479826197607220767348743700665477231740742524443150027120095425123426735489023188968482784850931368178840191625179437740224705283539867383110808984225411581674627346893272621280870397179209306100990338124213976211096777722192849851912132563234094118968579158299321652500070570452991104271683296361026806515360701819129781222114641733313570505584428687773695691123743250841935587000689314076745963590695189893394171575906853438286756321417115100344783761843677587172850870186929420908177587306857428027375660102126014577357848352085249507998043215646080538003134052496145187483903380129402132239705480983718728631850355208830346764359083567526720983317732580960903391854437249797357876471567725271571520548969852393820759159740408070163678598235061812345479808134338514875066391870966149231036740198534606282971860608392945777742501338896963911574273154673785703446820811284086486997576707052466945702853908732614207023041468476831418179408347623512627417341713076920623371854691426169986496965654398902632843674868153919392933656458466903616131152984082085709211712849356602270604429771012725977998018097697476559798295667247481245437731728115671987693186348641952218868613357050815048653192700162451539077827074087316245843229829904987545955802564255860105826220752178253688688956111880052530763479595352958254656601855403614593528446284553075566329292991810609177100101434608789143913350791427566463504519572445125798028743677271260987096839936299174137901405504480719680996999225561900739595667270857745987306292995473901355415842610214388606236292936889447012740900523237053474813519658207649708418416232750914426909926220068448033675380481536852028236722920694051779167341121023211953177144845952351942292510445306703295851563563907348544424648577008250317707707561217843140755062946420288493731826047833323585596192750676308981945128401901613602647197911001771166226884493388454578936212357670129486984728312648731316297843063020889770274929477938075822906018143100288004850276670711834294208206677544651286267770143181089267131971264732525769275649749044256405811175944162430219412215812779852842989583431525399462725962858613209391451382758288410564724325003928217952316050667209013576809562622200738330882648137009168835982401827703487989624574173608262672960455837965969023315936103913692255430415267500398593598678189252374790454740826792633617050879302739769147465333480814045028188944631346718389785525584711429696833971460155742047029288719035735558668570000240607916957132978190812191909220502108320286129005598095827048994297298666019291602605633056707199851681930594601979335226928360733996777819010533693090902378075640746159556999591120195842063661507445203423311310123795044935371724598996091746295638643600012960192608771898305675165391740754069943350819614774924348187122356668184481851415566503086066891649621257534785656993849232372208030262461883445631945622998375539002562929901273168087268483982524153315898898706466794470756043588926116151363434566896430178338649831297874581028460148881680399575393588157893441007702344078135234246851106617998005218498302916144084369036992734365390488678960581732792429059733716180230636547558506832253192842756256887682124365170170532157523411314998122332557314634120954754104799184685392722614455406913568412828233578055506782181054484970218482764144244840946398014679125048100214545448948575254290061227566085311143996796254850137090998913209490881866743707624777291330484661491866952717681431056631720007409063797870261490157490201553369691049990199486460675425959914085961625758251173974266887890412023045120218704237717460307618107601528346711461760149034645177103559982399326175531052664053421596096803117052788384150438785802307972188959263258377347788400250759324198545964745146455459674237343557454539132299303696080904046687555404167098295082253325409274810198304238220322270207597272412818618008888482527835621392795009425681320828485373158509381471629806338736753030970160740947203135784392358688507152217970883271136836476353641265027210541225804945129506591759897734984828043731531563075313535803313300744457231842808021151236279756578223182547641499315820954270252562297899689462032861659886249204769202068451618317076448018051708225711708713160535903934432717803474344853978577669351166858562701142178408851851983037261735074451470460609517466926921270547029736390147297424774546800202938637391869459264401736013221720723113727902526277595678622556505614738733650113535617600015871393696766591022804785172902691169520733017992562219127611956437875069264317711497999974607092241554293914913020310690907159166228239769806932471526913380161637967850162224339885438325516065264286349532160787890611333451228923355502356413630207000198886962055212656077106917482035402552094370611953582087156577509820664338142751606846597724451243518183496958085815249199021724208403223404304170516429862058981250503263380042294163119666370126708070872854487956404557999364971857379787521746049966872831467383659731269561636745797501657486675682731388596048296430262713503859405609783047093646088973526794477064076175190983464189579392651532305895997460549928575194554010251927905954708300181091910355301788033803123161034981005060772774061342799177672915241549394405927285199017327931852221275001062995863943043215439172697350886514415783533515012533608609284795982262603459329382205531801044573018204054720930459793872899730719682920004451557288421591001415047125675787350467267944255189098928924932603526091602299032158211631306430319537043342893578400816869911123954498606166452023999724466706849202045910451480149470836855332925733927136456995936123576066085110060320178041613134750211468101894006535812439807774317211871421396301202670391253627859065126771338078662810711940815686712022406848376856457179481432753898802947753522100273598384189139580228659721165709058744634234717760712187518136375213258542804068009572048674705310553878846549308501335746176848251241677650746319966757974022451397595742232258155844427906108694672684599039732119255672614253652107767282654854028996707295122279070882821326122187286137900563453256399051901816768073251480580161231622653753253430718426825370820742829115164074158528354805137269461546350378891292749243592619917652894454059338502488249985257372847124851602094050051309013589094642589335215885042725478537798136603574110181097750601680190950996608457329413724864571668842294084032618990507274884316441454212549508665707441957860078456421706615266869286273570641899993609290992349197924574849900883690194206546186270111837574655487327302371736375299641358282340761478122278912765631216898188538729662231194024744605394724125273854128062153843583009223431044277067487991618496105487321765262291862132900872443195210739389105754100876265571859752285643511658243066946086957169488536574903321391521143851652858392014334210290869276100065593463189683746693437109324251794075636231736409082350245455341529385700328918402234354071236693416281636566821539057947932135445298479247125991267681529388449466764117018889648990524245566757683109834904863541006071427954892048585083137202449901891579130583303148339673402029464797607410829011621546595302541927118493100624720757164300733220172853268452644009572353945714599319797245640463200787655023402933168060586523552743986141687691940739720356783253417988335223903125530040198085660773319542561738965310633856843409037175143995046529037845491407089838785012572480147357770385609503076494916828058861092924975062645351144687550343977288432968792186789092719582514999845497162369615020549183142169799631876142247424019374031876874175462694971112230004087109301019715292398118817976010027240214068199361566514015796076865766167724603171538851746455443031662917351075125702505164362635058442323815621693712349432983944208462298333813250495424080545564578863899138915239713797117515112295487629705566453598964837203505253809669216481713323718020881850206850398571208714972829212469154832482486906916424246114889726406103168802393635702686561718741833445305528914428057697778886250037351319779441772568092914294085374768906532376674951236751070672154359310250795773453943957904958455162680107032412368277475521441726750805444495764746898549265710775324843156598839701238280981048589160246469664460823531194755137755678422707117801230713264846630852658416118589003878266836491934175454427536307281669676232990124575734535388607084245798737650342106828238119704547445887248616291848556704279839922156631978540006976309299629495612805995704826055083451843642922087091126777314061466532574820139943162817894733244676578351489626235134993214781924717187931713918050262218200379123376864547950325603468715824159577006037990820001346540604597075280568734137019529189600629332777288508330548843946556345825971053048205480692755978960329167947518158439425496676712481028033400274205947468194747762704416438006851735814354783275409903924261086254515928668468014172443648980219647757714999235590025476730757440668627759483589216833203376169590226933793403293077214684878683856522310946532021479637195762627499420818180430499495393282202989800773151052440433358792381456082519606976390032437625387641842153851522394880229423309129073088959938482678272211636425967703708089009752958321950911035864199199239795706798416633551334701176041686076746886314611456357617757130514901968151581684806834758235700732931848144353446922151874687348120602465557131114950335543997264389350569174012618602730726175483428937362754071272977180300774252386912358485069587159037822642377326842783190955044666584896694858597950610181232176632705088785018129627024940258054223021706857988607025119742553590686041277159960844807598554358557886449236675462556639373411415297598305777167778121447013992248547709421208059436770133862313137709115024384512472612780630673819842328616736752056272475792687760161653413885727960914352749075644564606475100940087344398059058755224388665748459929292245797167652375540617011800692428949348354881169114111693723138310266629498952059930331841067222570925275508513607736711361081264178203891138855864149104490409634681379640668333082049049941448032279093191434849208059067741272561855290432309583097718000595630520688962491661040475069030193564906674632066600989218191722774737453129325897957257863218920659881489051929679204002841705769088623024568038671350559355590236309380299324226265942662161004544903542365771606838711456242255388984244150700127346317641093864168859269563647688632689910359559173283849765353056335487247285162247030756127240406051327354775484809584637410504480465148533867530477729194028033837177057547380160044613623604156508144105934921549671869286090027799947704709149682970589326275168790494923375717782195499022424325462126662292456013641315878332483012362606405996521375231671879093887683905357122109738946387205261369737681801045747948354047776396285787781044696289903333688122225359959691636777189556890882665737857618910003335354001758896471282313282385139363087242945069182708603434796221566516883784717263517368444981560030709193455271078575262792694128045970433938933385657566391381264469799425751320205006296822398228516014667804602346279580337139962763974399552052756527371497307655180287886127136875866898673256971847006522513623983130888803170581099899074739149314361792051474467530550502536068339061166348635015810188098897204976952734686369488340342899204425837356333826184131317240603189284154884851236989084843279066740004454338081052092617284514416336770158608222730886349806383105010099508048485195422492605879499517258095876176344225411708030382264034768519833876167812405122151475164611030295638062663714276428598571195241475452771504166956543589196552265171842653053943234592433190010944281480442002741767216829761697632336865811887205384132061114712052203649048390622218127471241636731521035695768031234899455574600550254512349685218402823531783679918456797111974280503818763653123483547144803282698672791789413634092741308855231327568152492382976036250658297990081360708822047086398086946265148390871633815658360667039326310989196067061518875967121516914828882824777960701577417977123976898925311906052838476615776879629293357325824214283739591716128056978743997829814056428239033913240825461943998139178403647535042292022820293756221319357866179654998308916139480024238318326900490603521569174652515277995902691196223003000108018414035619487685329748272901181961262913547882417986713018845787724833530371309721585317017397731708445998395040799591095272944676059192922237016013998148143616846798132363774971238473190222877593929695853681141272185294598892944594376716834128713283807049332789608320080373440549761328838709286349864026400556378049130909703559418981464699805855557903866212367061527245301265142286613915086655768179360038890162941319647151129091849861796226415674776630532714716381019542466244903447857374100978597840759905652131219026394277605503995409903031482420142134113296324511316995998862409043050539767889285447827761812197200728132887636571957173482399187600512700515653037742721691984848754888647289088650499674319424857931195681742603384500216689157644048614615919477669015613438438590362291372198176171231585897146251791254441890387153582633243693964069934485287121552430801774671436758679696782668224812200515544350710148040992595438642304436263375802721473967749085341283824854276273139866044354770358294262776449409274551635365112771558199232091123581058107228204309042664913878185979119315465299985636867261487679913799701522588364096847012201593953807352140206070775576850988009650314695839822995889594612984444969128657327492345366882315911891852294004612457511537736964903708972705494173271002335063581037619388629831647784180353172706963383098754421223233270859639124506504255463626094445990269132422087503119838796091477426658857964377506740943039624247008791258785303602282570751341105015089291162108504901797729584824489716294531929558195477036748402331150810255000939301231190929541128530624699858056067808038854965324479507632632600078161390453953941041603993149117657597572832348400631945316383754129641146429558598290967759485539997540047332849461057958811296386647938323042257783057410314738518856748484105784058050362240981618670596158152925908368523231478061720756967050071380581237853845487905236977491832232888432102184521717463407985486613401882915790705110229895219240899232351670475384812796508752853189534469465451050064992488327363171822141939093073398478708961343514189744071115457854815984247757525270334904437659476509301977098668065531161650879283628100497409416626729936344399522039808327595357661852596670029860975545027316394787482440657201124891405071812813814744176910855536062113631720444175888970095701018101114688354502831152807144218262848757955561649670852742881642487439677849244405290760346014109664478787389439380355717066765158857245540591080066420016322961034801532332813534124418455913058291581112149753771459759522421813813551138025970370530155503368672385963739738643371522700166269011237459207003617423406351708771558666217209407965941001137900007263226460414721952707809127736882871091560441445454775274115858660998418642275469896261350971873544460173948186829044231876019365090096187010073172549321403818216284513462186779868852372312566635888694457188620189104636172788621780816655680021018878382883212756919515922749666644100305830953109754000329624124572093940311433191489776204562222307132180529058794432965823853746561348923939221364188612439976091980273876892673789054251385142635794478006749186682084260010948712468626909365809541880027461299197058963243984419730067948818436876888211134960632362500549230642124180695644746725605249538985450539582645502444069414699599716996391881190787820351842187658554063327618543600289606208962823132911504837508561244829946052174122598683059970033661934847317573421180887532417037215706364889080679786594463431720481693249752593667720688504368265591211178165912830435189231865413463534044528623133994075280120405325040652767922003354731445390064311422896741214630462335674560377724711223086259188402880366172474223719048753852994008611848676786973347233823527224878081477508176873517001714381050482035072770840395025560059425733622714170054797065970365645852185194715775920293905323015618138177195483886918592397623463320383244822889837608012604024710001119334964352387496321548469005744129186342215707436594161228639468255659565425254193894877373899148656736870618942300209559232927785840992342911047068708276945417424231827902677255296652419304910822643816119705267757429914501757988448701530833907076551047955752876408108149147585630978237587052389465944406428375066819206805316194579924677902196771421156309016991452095872030326018743138366663015885948243288886287563469297476870638977830773524456756458745621112216339264080577796255865402504554923392390295833212406370847217662321187418617653705859581700953812344312695924764992540891347155126229275895746748632195834745711187709347251416782454558814947685664024663057040548587033209777427169353355224462783899384394578657277328492107949197445330760013298609023276675979051196519342077659855025897753911919612648057721782504877379374491730990343343435365705230309242109135522945991545544556348841794312346659976655782498610184816975845176692002942382573461905334085251220970661191628019799881573201879324883579734384931775734712619011504100738102630292518273850022996487235817494382609891098060531431816608119087293398466443031477360430610338452847181076658428808440407229043255126766178947175372281948009469218319414153543342722520358419568289529115087483785991703887809386111281838222628584985091197862188873632055872051629813022568870776761822171532209627159664584812549230597262240712389854728639623893754214910613760056265673318659414323753792137374409048106800051718084062198806760284679745386735175632786333827045113340169930134921561959355751828812588896672622115054282949548558056408874642663999496625784905325313461725323897773341170761995679388329594282248396423459476761019645872111738603374488268366772338344335868302540675162916695059425229133006881392771562909688513362027265350375955476236952961790881736701155226212236268384904280343900798266666129575654855596867087129294547243171520329367920584732171935061012192709397329556326990458422906684402885955159698049417538126947029898721853705393546515692866792891998730838291937662297288994503785539941409643177423467111436311627782191700364319205168726091749291877297791946609316904473820598043265660122294868019782502947359984794764618878258843195597120674967741878370485886314391635236874617356903370669305122840611348016438988000527011414795985555867085234712316028860904374392869504453390592906971211307535218266270404243472208667246426236019058157198798078154664533800590809992144204186756828755390004494865266278280866729408676198013613060577997648044667551169204672453905042083839912372199969328384021781554432941648449596455801449402204920045328424354812042181169321579114310189971912426219653884981266148336134279240086737233253267714705107797489917019261164604175858927372572921911367071679956930469478904778736791830951145053473702970621235970032362922504651890113063248594329399132533466749890234691767044248447879327952440938182342984004465399352945149060047978010052408773240709396417321200752676030276239280100674281569534736777998898993776348427104280646075257866182698100681667265592720091723455976677201030341254910089664596525920715115110342174711843348657880213342635640475515207876333442189290725466098607897691995195812762633747554292356629711651245702130050187651959228845263029127092097742384496749203929440478933352537521498280341783149577698023563253161629344309931619008364035943853984751339240977899738840021827978641778865635129618414002068324698180280513416726548024933796333663682110670350961687477410793601290860466455546524914436103541373332584043132140901201100013024859631167203261240555889625643330129486955307587796570342736894136842808824181706804268990093218753268545419241772210231327139001433658335920211923764303852053218669346944575198883316072824282403203516809275023402262053949325907379585802955213930919119568640338515709600163997308296130986688647146277580410845516005000811558107977352476962252578696036501602632711413295303911361245871757363422522176073076412620665678293573118748883355060701205383683151745597804529677934584662286290247388786041311115392756204909520616478726323124423514962751813036437780058993904750897924933797582216682033069037948854553501214116242356014523562096628722761064701380258547865779094825751882089846398871683207452553315930547987510096433722514501008886313005996297750584775850355403711202914776565708669768171056893570712744619764082550032272717427212797391239148538277195646139401022368839202282954369892088333545032155676576261097077259755282532181801738056341611794254401127991354520052828104013876908816848965172207188820929542382394898347744877792580105757028098875553551222715793566419332123395227815926119397316222463879075174781364789179582242048645815380267278139120494575072112938598493411094725660327010051031589211375228654239562378332191868006761359677497928234788092554359737380367133169958248174659266324439984770917371531510148965900957715298311058506224107722404271608632989638041599836852671056696441165102691041269968007991342134162584657969392754842176838815727561469282847810689130710718683137857449233297525669508272218239609900208808761887882370903508880489210513541206347503707330286578227117265006638655116423822342421420273767408696236481322988878484354416784966904818358597277318370440035755681020136466090876424345528671147231905771497061612911012250889773087173500706651880957018114191539948483537916833746563846172081244396848207279362813441684820837401464580554186634183695657909940164070274379377937925469370894628850646556687975345200215092935606729347476091336134910076997064148165302418718873375352676867135395661966860139084490582173745021751891800621680975730183965451591944365230581583413864123430109898569208388979194170550708072407802081637952118253758426277084834574153774742084818838687133368789630852350097584577722016486992684645945928484270277743944815866369116830673594492812388684090912390638531504790174462864100476485622402469265556065157347597689407141331220595561074670208157280662615749384517533761010565359836962551012278977890692604600973325731880368305557821586505698920218506251629630915247063574967966941394472425396661659349609070564182014918602735631282684870916123212003520467906805475260042267320345009556479770960994304039196701349616433442285153107358107695265779554443138074368522524976948989202611477172314754452108545435477003972145399498281420281282793553319625317726573115870827995131760904185140765238343338023570636305462715722974892888789835232739284908910599830730255378266728229825001158083453897683890334295301737720083424785644210573765001371169282122022099132243046822473274751653562347368632864003685189609539789194300670108153370786205866536395980172766460912170123404590350166650908632985389264621201738085827605207190022288458176913740788498588998755434599534200331547658026385919962982089450556465114375039287925491873943033367898928870080401856127391212899951265883291879134075532056251733015517648196171355772564858778327376064690055164889486722942154181735901525547887480837925968397011773615910790161852436909873400448854748084955197898473658404867526106894217430741912919903703414162417963061388127725253134479618071386541442200491599337625985226586621757417097086877548583124492658690867200380953409247611427016538668544377622806710657503238204877426329563060288836079232453224231434977398563550862430490442314130432394991417905151335562000189727696101079881532483991831160744098001505872551130651413137144955763901131940361750691047598275063678030184819176137063607237667910998249786243656063500334004113194252296003234982122232920709521216148781069559317611204936837481900792880836548310766545339961983543995349816788087905323856343897731521095301015783386031676775863482795572357761723339333691448186842151133318580525358786372692350031964245613839009341902455245940535387196459340106299179556277621973008719183671363971608978216736903595870851436420704964103118825745095391986901779072062387748036140337725708907878165537147077003874885284720075314573958117870503345899388861136089212606156166756807213499303895602468504592242377469852122582014906110062789129131220959971352834163116982815716021903141525868889110119977841225759651490536284245160647263680650606578636446764090161883819854574845161423756053088518352797512216727380736546704957477590138078850445445125859205970974870692741644360578963360298358830681490323997890359976776579292706717877209831349633928699474160954872310031335849910749137879681954939910036928984557552190943536322180801213685175306594374259249862728511927098313682659786073472832931415448630350665076660013798125110618975794584040796773244198530621041308846694770709196895152007134681572071434961662184881710604188127777698913783728291572629230241762048939259621131342063631391543691634129993163222473579921165995711502480570960093322579210936857164401829271288979653141140912117132429477394303766729389704090533950879833976479987251853742182501234557018266281999276544195104120819969440148684973290400380869678123156495605538835229564606888894763629117626045182235102111560407684555022607563631166204764942996113915964843831520024839668211149016606534756225682207146528934606944833791751016202209871473842202396714994899898338661313699457177302833385396451847607427521796650742478340801573443017932136401141065711480059967430664701759951323847244458068646851154643621019849902370619883349708588464415848987723569585995215805364758224172682921586504964798787763187789375005384245406366753714870783017230197209600851190850531267147494470574212129609897595516713021053278355713871152910592539052076721532867085477000996700649398302005041301631957624791534253225480283669846315572746428233376609882594083274419570450181619448334997385003065828860555578635957669543036550170833635204574794454415869547561192480423135440829115019538290667432888086028058112801433710214016875780623632459011334749815639118766709154124557556299956776695304947089246611157584570270596446130293121918769689142859174363839257553292776093112446626248754409329077047005674311896300984253364208801332104681979785026716565295626475463495323915770292745692479209901549578639194764929244335843318346738075654292219269941818483693748754323851270449646211420367462336055671184011956424495811641301385841117837113606404631080218707081998540274692509232831773509194011670136621071918942174875595295118547643888355138354798316160442575751083687489949211148253905488585772691471076084406973523752677978350707021055231219566380373488663868439657737937893105674610708930096684095347212255554760998189379251949037909684347369345603707241122789574420852126733768642878078312665980969027491307979447365371030359800088123060375171960751821404243210208876093003973710620524040657856127806712041084433036821382098127157032493511932406390722710020809444961573915556287631534494613709014608100910031686045958321977013075009012656141262859911607513599363403919989118482054883989210018845590372625063753647135289243528248332113205330197237067042114647121131977334809681913326430966993882730257029988743770406935171577591475374855449367555801927752151341296872679905047433280294840329196247633420493498766444783815858363166471931982454455408635668955390851351328876541752493984147236555191788216345672426951211351333710666068562186886636650880325531887365288972417565704187665227212560083156653552647848803536011763713516714085136268552866263001424304050381980029314056554807710395338476225999326022174322751947989290471595240487335118366356395486874411552084965830542930592162656611796034087603776172071550662558658143995376163167500724110767032884432189815872187480230031821247305093368009549686880504027853673703412206634110638443736530474729495750277796956547500103636942858429565152379484821810949728656000338876326193644007976829574027351172374772441889427128802508609574490546483607983221100846042296861126707908877093609801094774336829924118084574943781334796722275049594295924144151111300148897090971749104114095024247484876955287735435187555664382266139688287026007924520295588862450971612861449031647827408836420133088029479078943640095565678850952719385345220669694943003571496568942841285825266138392805393267253620432271804846109581716562636348230115298759739389187762137135618505131701917172760880139658389627229983942377950617576616848617846717736391822710183484947581083701840991531592333890835234705529040590437094119945370446611483597384281151413741395095217135558727184266986746339400727630647623037150016136097647296306147127644143881293403914877619505777949586011605150344939367479010807842427685404685298421726152793751120024385075369192944191323851141576784431587682867030243073991833071503411750459787735405700706887433131180741689661345754984544004634836237861024904101011012726135182411783966849450132689443261627580802569083672659286925006268830909528620495608640354357507208858127380928778297288746636557009130605338812737705091426013731315777806347239395101875917137096035463741175063892292909869176540455951441135324172158753138925046162572709559929425959011917103177208567102178473956985137887610224935330188492098693591531729429651205464164998043276130610933508526050014450712151831620976664725415245366828351327291178801078362260017793623733411439363372805457498398248452052700163799566328988492863421828230529937624667857445015464623581358454775626675440341068049691236339372227582382733528352499104078996445388640854501276771410660378246018821168679323703755793633955842448888764278690942636509134570430591651773462741508367885451309976187416413510663260775482904088159883835339844044438883892897046873423652496648273621604813220496387687234662012982228990576678376593111475401310519609530119297450810555268137794400408895652955905005411083351832039569145908010394832593011966947108335708066726380533680315415910168945155373951864077778958539097528738260233384926491853367248463212224046716454362873376959313223598096753487951606723445097797344654097603170472929859857127707584702876576063557267357393404076868497851864353072363284301842013409468529680235082384693661682753127571691396417954008502068246668827656779390837238002335250255149308789335348298334798109981357853318993970371038009167043821610169908977092051731220977881684317971064147236107182005449059468682154795152127850519826739686132770745547021604934362913193782351682364622226410356819401031043549252880296960410407377489483745113331338048673531129582288776048908662688191726717404619888648410541215209360733111861857817781270874820177812422381255310483208162771881466081342307034807987035215822124414113835318605798683423421405852916974938845619602733950912744366718200205117855379584705278232500757480266186505969595415728975148742569284479135030543201968153619901293276642945946323963012546168659155884441653478529874336223997899067981798635615207006215599287663608464813679756580646659295949147366100160720995784639903673863814609334342172427152066118744798518049151013797481130283300780680605064255312944098480647072127725729055547342450953878339633389343918000481452146956636552749498281014067512095909281779127164293952829682406799031218821076278280771230778414916325803153840233552709734108913426659945285577461240110194080195643214053016842252933769939951890875323806800845860402222502923952678985331596019545101717723391016219506302585105546777763946936412611890039917322830074028984970199617235019585130212594046257171155480560545583139047333191148953307835203359049925944468258035594960521695662529895336608765665354379620220652317524993446457631342720320297450327365862740340004503926425157177076321765939057630387049883336046737013764682322555541228610661937904432306002345162373945085743371361650200228100199155345212675305016140923223617182934292964254488830700825748176323742417697680984388734862399893473813816903921974542624405544654154549287184291388122693567891823313351148647012705442814325020206072559735110701124779924744020705685731475968278006607301881143133049213507209724754269544908392107197134082453791004842810438502255967772373943969114803955024270433250973013403546953071363416769546621378189394355376418618446767803639240808568380293432850288439043992995634233179948762226386871785689670089346872571630747779100434787788919551688406514327112862114994396582311418757603255912596098454603218730218455435141413644996273032633722146298790056133112312180537577963472732204097994427688332844003433877440740420403158940496427170554881099721808428686973907666080301086941674748145220009171912941524613047531351263725161633165260259856826079961522460984549735728843450630733230144794003351177193621848961487095194784234730767156360589631222158684814295215258200356728796436857076792725347805889400528399456582876798844715481503235796403233048944466024826653250025867066142748493586736840602736761199809968543564243035905568708827879706030691235708825720882520000042201975390254908213253176092870769283841797044255875250649431704200250474370632865293012210376128129238995269374146875531772269334026205143624594712832114071209646899341771019586820275595084703586924545406091831404325244817621330334469054528896470166680888741132772967291669247489734264524855971504257911100460345198590815625009114869394273628449547698197922291935327373924389674508793345433452889725273186880524654061766743370636916040861003010802494834227287021762648673016967254896726827076692269026667786156816764296600548999061558125865571039350234050192919218009649600097251530107046900196236168402639210340754860186021592167817355539758999528060137801354994291177195128538304279063469093646758705200980521127640691620426934637629686397431589430903875273763953855400652757082174522033176390653287913986720816561247101392289085901631323965387832681457575904466413980667596426149008333868152972726956509255509538480488083039812665118827229165559143814950696825645210239839736838967568153469023363658809650427046863489925270035634240594673751528622542862629995913438390153161129147017203678368382846519439849665528562790384891119784119080349075778367036464630422279712004456756028954736349158799565513072986834389844381105183593153999485674120348544552819174794594376892425316862925493802225662165346946638487481052157881319243562192292144832398748333310800470150541786021486542588821615560523054714299687828687975150397266614974265006619611870845490339563111252863533342386415160973055427281821591472192909125311353201223606638843732446030912397152400237838304729168740925835367658010941137899419521484780027109602655776128041918835720252563772940996953693750599039304697253700414134892831597479491626534176660442631420657513042188339261684307453528560663531324193385719597220442708218293654993934765799621307369032192309401241391270181301199476503797569863609566746813881513406282937970912470165073382050004986827739194780249736911953422886432156419607953816607198870391235603730447083354501621643637557592599481073797439222331933693537117596648463427794260324658607829223330655718031467086135913905004090638848792975184479147336125055607252240786681606740000763055084839022131270544586821798778326355497155721075018398971979316779325686712917894907815369027843332482489931873390793805942564703319631772181323315747496569781707297877701484871519272150323350163758949857334791774504547612823724626672725265522549956805221506501544633150137331451551498161818445312803311541354732327880566413773129340108502834462049856943662591162087501155344774297458838357319246541865873887939301471130036751855635392145396247208180939964244297671810261796868387791900179493541383921893206043208740359016662990608573176493370943127243050403643743487930022324576282315887114342287682012986239437806768918728529191160840861055608778332780351496830565160016349813315954310188116321227853265203299459688156043757185965710357793282171575011040572123750450473575699581396284404594108360463867825361869233444256087783482345301374524042926379348569899154482631840780587415103785966521704787063128240267557503354144308074225149244556728813082068580644509618781467631069772043520686022003008633393067846095291573752800219334943168080666454726056796952197410605193572811107719020798628638341779041468952119958159971833477011156909634674947610744453347669527475009308099095325914467459127743031721827282505880813545284388453698981688030418497387854975185992108375358646975457445780683801405563400587463547285501821909773263016482756041098741297612427211999262595998865685741153282861467297801100681865025988907348673136574850093415587884956170855107337468059912695642305426552910862352655807400109607225238183648634908059279918840693011362957032939544362496228505189076405408032715547061638575683560447488759084954557503710789509441082475702734011199934801958092639463821957021130900320275338272242786364134222348281724909936086855318172561232307227830126563812920663324637946691009342599552305509730420848016885878125888766160442841685853953111638039871065380353610035790605731195307833219409320569166939410094038947119049958239873281865679862953206329882412190899933143884730334351359033597480387946335413772999930199798769690346804406981528920773670031179834435474193427729651297122037673299941863017434700760609805804630431870687259357594458731022765775523904422508281809187011110518278416537127146012426163959345372031618803053727984302916727513975202031695287826865783599995558131272525292373969060948728917335718046328773348067822666174334002762268845740149299245644674466454695570842051763829882712095701952451330262753691155162711182572128062871273178594449534883478640308830406650545421049319329635117578215383047835378500750552850055670720250528960027412885890717336714293871869953227731626269051515982155553209751303080332039786044479205723314418407380358609168606882643256701850263053687044002427288793354727222639509894015097199731186437464413769744278722871076328408738395647965992187039848189582827308287988975107970337917225012070569397500131981782547750454181294338993708344451272877250268217647742675511931939344711699625264463586329691214015327510005844993894815577500386781351915285888473986065192397588137285778779076359994739972308470377224464310813372042363636507699908416069935261632779904171749945149519054522433429344809792473278080564222365115310940041659340348075727506712044245846800136841438438015156471875833676344261571418625241791202038423479801624271155055791364643644530520266177491692142541611939958846385501558511461313884731258883608721795405396879386004302712957113902563797831493532045546341979323141349271301220862116370761356026095182179756236529074025670823917495898128828787108685454453254020969708479186884205229200170507297296793265846306856283314704233453869557262576605104272437311432526619897503025680554083695239303498494998618610186354817849698964746465405453345522478223257051945208403381300832324149509262844999137359811918513545594977813185366983728457095649131911271051176233510452493764661282875492978550357089829183550655909994064512913442429762510687575014122266672782099053292064032939467716157437189203751646397480741192703246146840535216459784859695016955736381725192830414944700721680719915317889273169415379838260276352284532127432096152689791963753081807345550382345132456722637579930636062468419833904635127551246399591122706086920772391163050999954371341702723684111462139656719118469138708497296869124667455224163808417801797219892810078675435985642542353179844715928329952322142467343721088800731321205282436791187169902027540874622952671962569309121137915206557700300713945973187778818300436829429382678403844673208374094616530321194775351597727650100049603009527133908742002227078341389273011990896330253313840225242950275995575393070449891548552966354727135201671960879022981200259264291772136729646684299534032886445016084522062275278071016629534460909344051609661096473342259056481809000642360976499354042064796246695201742581173455554542801857324500496634236689561797228189536798682119704949051626730132046481740427468052236399969997503126304358085691385594541181019990535215398050307418166582723612639572681400978182376012990746902853296919212339720924394443230286604901220650238549423142379499120941259328416258484484585283790579623381372952465502359894800490615772170392871688616351985626140782638532305013629732448749899315402393742976902683339732215319297502599434591715677054141589453529288003183503650089282127553299771737708118757555929566933922459185130074669477016071000248178831010083731560289978381092295175432963611817642933715762487318147559343287521893654390602801475842722998130798953029519631534021164323847906599032765647807619971512758774825399852069490301397758127347892134788010181994262916571460001202573711031126700901325531744517853564961114868726954480699477150358151905302918764639175025663337004496474384876179512895034342643752104092673725270560348455134049011819296464923339308292935135198138393858695086895195224949249063607736805506242540465187834436024714937558072613056974379553045109093710996153518856404536850764770961400565222965538344512243776808729907812161017716159254806551643289311886176631594340849166895680284245990512906754655713556815330293948995658820053377921735161843074864288085690428167962542331247771010662566272227678181930035201850515893072617314171944397566852710698768741972823316415608290505885207520441078824590432487855544925056221436524485818951758945073555865213335201841251877232263543165284667846683386744137042118406427028286024516490297432213077707757207883486930434632757598740047199551155315005630228520494057737072002396833127650954024736471282550188606382000547431789755333559251113771026990705631898880959685874290261975060215390007568920199880866214429722070319482416056039048909966562126082106677380660323073503469116075174888778596373580811062857647742869452456506629457638045087143403052704515458191453196514046513209145883452855340552390399903992811634605664397941651048996107420941663492824016622455449503291041834284878888645208394776366130638227211671566099416909287842992343616161246996248364797676404862706375321932229689269666014388323853552325827406312011452489729692395688734335024519119573028467089261150664865006073981797590361021774478324917302777462860891763522807460973521223817009568547131264535573999775879148404008144872808495841630066003058330451265965429186874958880318583914927070512597971693948814189934395672440360788393129756723757620445453093689898235952140267695682997248190265812033434635000543558919621170758001402180811513878246638293336627203751834993721407936530033936505610117001671516956886522819750755142336135137732659369443547064511444756717827778510970805941678645210380588585757292626367734506639777412475552599308112891212431412246760391120392033219222594075401786676006853669708604647863933983915771665831866068257444064080562384906809812083465626311848099236981072996446323382672036409324209770577897114101345779641203979201700336517904326893588240652247983074209260043768945358368640963780788748736427587322322942412114071059512657578417697969366046306580263812535546741364278416128508632857322812062167307895260151721832933342820563778248091073413245918727569510588412017356841607309235679611583720448747989665007835454152763967525295768753191258991466467826383152330861770228118566248775175637429712971726871643075482674189873170277619339184258727000099197281259257357398798678453506353620909788150444246046748938038314675377710438695368377611217119523213633518460181891546128714179035335230246056313233038893495526017593725926428339880073329875016713846254693297816483719009286245262401992598890593115417540478957022647193308987686308715137905702946263922688547554114896094617394791300416765025285039940125862572914788384332326795238440529911226884428193423612489091374960974412470724144511343847463935698599823656055696481726116282411388648953926416904009247976255938056671700053836429755810897470438850597941097738503920952305440204831004686661347338108344303372668255356254479233125785250454354969407004196601415455357028439952071500535633515377916500063795060198975852132695629939036846697608530863955682430030217219449881858939920850874669616269717826727350689196565973849269662404054068124545721219350443959411488787277941020119657134643411947102584628639944896596220782889190845893137840257207805903676956659437880147094235601868898792687939609471471173526031368002477315211473416964375148352804799581351077777253983658934908324669188521780519784924089194141047629402725238183029490956914471799375495050013497197826800293016755229530214940850041112769496570309951290870145340021629561576136373767613936588244580399883533016762326907604638396905529964667278867085059467601149507502893363587540613739258605881592708443589314249887820464006342860546611674128972411966633684510189024497106007429221301637639261249289043030274843104263853958478856585247321599853567223745098949123262302536243961378115131913799928589099180984487628736060247737012641576350093558305317701627172388359531612546713783007907054059716387872630391438701043873293209679733291822049523076293110873360920772527707723746388938725766811635627497766309998145456218318508728323433606537784620488383230133364159201164014130170689036625289222297573186330858364980098642927814177279076160857355661689722754511108207613872671125302491978031791363503951259716408054008086749078223338648298751907821215047977357894330752597312948979883954333584898702633847597259603955737493099504272007402965435113766602576713351872191080723180590611740780467324225598574746483794143634717162341439807808183607146968165686599780873821346251130573243426203849704380032154789863032485313683659993150196140934434464025598494966241650042843552150630271432696755840964346645297783929350594365768449483641271811774260264642263654404836889012943225330893975886918998973968432812040189005571902994144900098209569950683590413350749072598489508144261930747073639590116138854347439777373220091946350264289542237580742189216358474977316988487737172319153244359640877353294024935086419911036460569836679812879278225979762130666876825591629637987439230745311955646090980671743536080128353213979119804272571208696268887806503823438462348635307999710169830199648036007418702161261995789244429958921788542973333110088670722151668833576249200901031100997609098066525266864442384436076696385917747891554558402079531775090851444527851323721629963744838250502963032499372288235934685352686922121592414039301984636992587330753550649468287491801375232415815020228435829226056211495635574088740929048274113679960617155958444370951770805462539281514382463620364152941036627107381598069667565831358303265265873952775474579068017107396422361952821997921238565709822653718664175929739062965443517651450456535311170551917772236905999512092895459369385043771890083405436321326502790870136700137979498250205731747110470809882353049933341189832923500980217128133576710403608443157409781630642796584166729369000992942296513870287218933808446775579689082317060020286413437769907522634067146042257895238967752243167851332688923857695967024166921242002257839357347073636648282522709983766617598497000262322746868821625811903903796371294540158053140694425595306597684989996491339634750875021799075292429554159989967980386846670537437791372320047340481723877009632430288636001475123687400449802812379561212954427779610501966039746177863488749999214496262911576362323842484377742333145953477189810641701054204022039126124978066279631349595857354798232841749895463986074052063457608076331040997974605551419591441656305749158131433462476078236134202851213974151039718022960719974292445974503767832844774925115530471772864381576516416978332765351889005324499233883587798585785799511654211027728412901805051138076515027191432575007985838143649003976017533986602879688899414915866071265204370969410382719718507246502487395694974028957480303307368236442761495313955040642763960333304537937666178287844462706361063634540758895695296914651549978836805091833098901122147429330884266916446617942094246390920832358461376811701866879521302963763642951792802454258806597811429068218997214045799354069439352786565875643221869326769301291916805536723179528482066339473120901823684316724109090183209486917205713293347184883798199152157522223999850828937114069401164946665866574292713380571248865401112843215444016157638367474526198326213060481923415890885780604563543149196205894820039406577897668913485016442834916328199981571237193237334667268173442642295400761546514900935380972814486586029144945034409364312285242282715320715489332561425803365976222603062400682146535872818912552412428749834180846658124690205856941002826742845237106679505135444450508475704203325106189065530185450648542348634765841680405042497172672586938510161987057592986877017434955242275428899646051462174951754360104163106481620779830946914067692508669924819655700097016987132992740435400693307197653607951235271219855197597592586832219597999842043377794390796718982099716369971360059554570070482563925322024202253703277948425807110946160303302640998648738079707526581332992684913153731759571319772627636701126319957477655537441989279915981222403701867180563280451455644379573415064733122440354479644098389467719564515140834811208010961936353116931766476983351321258307018974365835628419755801127238662324536982269889450832431747272282468638111728386003408756357338265896053910796010517471595353817231181968035720526598986363808759857553668673381364060703412955867006013957613092913318519621924845950374659141095447582664578402990821064801881078629969629212030696813642491571734892627963242246599481674755189542214953076863524945601267070765196612433933072579398557462843829648201272383120090454623373954912410617288863008875674571369442350473431981486341267148467441368333953004133010405298330356095626197046658729597456972353953004345020616216371114662775061554462852380245423522584657460138352340713941302161373462278452833251895410676638336062815622657812492325951730515377903413161150354248764649981401989459213702888302579451504593398381508677581835086885953680315978322130052248089528495040995854881228645819245214537307169632466632625256358192249780161995147341596653170252071669287901868944710127913188620863137053225300187674887214671375236510526714169739623848466498413964695601300104379127674249895596852390386297882338958812745644978020790330648989255566052139581550984399252044420055599537993947281024008824735280009750667240789309900475472545197096283213522235440963730117768320754744921675580572558803527378383640791500064203600907654373835155092217896679782972558423793996167163621030460946649329239207196550105029102338128244352244061176369194702694195205522106663836290681595556748631026451327181852602799355909752989677394347757627791597649496432925704953208383569733223362871607563151068565932241420954305523997757279678962042258064324571762713856944342681341299763795092230786989656036876519219949802416497956433058013628668303022192259043031088533518666998868974659713140191860159836503470452011384131314084441564639345043614400603648107963105333582048004252368141609258227494824280132338014366159664050116729114647050324746678058895225301430379816485985099620300239560420245007679066161312557713689399461003247277162091102345988988259345791963993992783963065875800219877424585287264861591191253936881656058971502744914963296582671450636621053688454555634051763762905698215851139545676155977734356408232668335362375968718885145786072771026383527800333008562478354275331511797820889953426686226868888626373649532530738522888984477612040424848579515315377216535054651258730994462444376647425233461112362039275095970939223504370991630255731943552128088412365866558049839266675468036864904472588182017587045811684859268208771427888962904841897719923823178081430690262544411351627084867954073723118004151578052428696551682663969695101155411137971096019572631955333901475623027703281961961673959805569694971974324736451733216999378041000469725909205542500616427926748160388620409449873642971099457369720288998647349847072956855292742343245953292087359712568933406934694464652876093705954622046553819640754725399027039905933106417792453034689400126988065805733760536811515786966208447060220708662946323948280395593129789021212883891711804938479655148315344857990684599355760056760005938717010802646389648701090143973633445535550205709160058165835889872182240164935198531823397354716174563584641128449959494432531281396441454205083859915727086502350282131240684366646886933082293197929721709884100170825680526787171853488140779097001605382308118504613385927588837373776825471713339734496728957101159251241834214422855585524000856176444723714831333673612418040552398251681545646381737699854950560327787702692694657094172899539809293596578692339305452843243065283208506083587484943467391432727253967219272443702371134507750768456279740048153420065817414821521991163015602771552956240115264627064398532088247542604581340879191849396896813392910165892692403445606084097770434511329458547736701164779796529814230304276504332466387448190269911437412335322975057890774606244308434520912813307814497008170040483894421092993510984676248104958736300215824304765284079067210606324866061687259614647030795091142729482406995978324026406647157253903521932330257567014407882113482050039402863361795792133149840434800472242025389539779277704375761041358012953937708930304868467972328351091302903705068513039346277436426740972871752658258375943942149412242061576864098247543128416296964017866173085268255540429779673431744685814653827646303516860957205267100762511309440942322374155268992585280412052113215055343905514449540764973854146678013639983005009826671574045318628843595308012597302498519277975256949543239359539325858723536760109681412351140365644050203774548332697842367563494832451610157697517593496531816491719587259418248501982697665799650887702886858412202219399473966268234899959124411945198342680865135486453917209684852922382657363327489909267341940819706819634204030069317949675671403234729171906872127925306993996278124268276050208514631057324386325466278727130702524597650113995803127532381433294704899780268725955440646448776584106072950351298174493549025518744135869044471052882798972824062089513044637459105500873642247530982555669793226893012761580409990694024616093626630572321315489529240194444646703992691313368422080721495472729289558220353762243511887418126240624615570797305556272311502478827605710135471332563896411819181355623239754658725951137033159645089240532855096349633873068657124770641798357931327035308138929948886892006713330992742386377110040375514305383083686379300675760332971920302399028126157681543380037320345931454569689078576689350855757664750185665372437008095402064184757290497836400678870831138914888693264159212185172146386704158856561082031591645329680907834360435077012601371293558120050016152283164955789427373162308377758039526727894645542529879086332783546390816385489843650182741141918166935332468485805458603121941522501838891088585827337003154397835848824797029863579813296253772884175722806916677879002859749837749020605183182371301633345441195934037732375026619907057853141407778801725905645559137585034039781694876176799391716042840869400657663978080453525034958913441322977634254189378312342385476768764373145976958783334859693691202354775728127305325634308616861674461198915055828539931246092827039733528189373359706721245682238328955972391048553665289757399312218073301772815313015754684210562915019730917941774550332739177654085335975169593965985228187408871933900057073179262259441990205155601930819254422828775978510239407834639042509689204220842565095506121105182245635517677579126254712691564001691333021580997958728157010198453091677557241623606010982101030027394191737860091466958571465919051331866663621460893983677500315720426430289180586076101828201789136552911057390016109961574067821496750684860581095010393252704749847456258934895191672044826220978762149618656550734777834877724527887397849147212602916169431769715055105049191945598106393150803560075373658418242072111479712821800190034634834402393926895587468923688008912377052071840959258366083592055953895647672231371353400922641035331702686046771221284192001449854140957066310240718935608030311591161160508453572243172454517847867934618122932120192312475118560837578894685450195523472996787902874892240731318594583710187801543908118577187525996752536358878854488943008259659990759351857223852503616974684029549118649865026157334108008562154842084078031299693202021225061909608183136034616517307394047739090645284122927462684591369942072787549025664373711931266707684936237846381015784417275877841224360718276672510592452859955806588982688212539029964991676696495697799450656259474689527322892202143790135895709799037681059663186424609721634911615879405124517383904972944247765122633709460485360486653520790288953113112245542674466515843475931376889713338676264236657366979765733635968857000729619435843493683788918459929075141531797694958049469756473632799866026257091438351742320162342294470672864765571122154860814720195263737289171088442049694229047755555901896949685094998091693599776478960450699653733759740731193855279532996961893001075883533476020031411056226262815792096555632198963525651492346832375074476555054480958907545853095655344620544168371754222028798600376158095823784539594042824750655724500669436212346141623573146930367088758795887583740607512058255342594478558079781806910461284190511223627660214022899034391978415304413297169053473541877366788401393239872177996191686964591014598595546553915011272655675330253940479508480719299956082751204180213692502243741691187824677640649221356245101157900356201749520479383479837279308189955182322813613331596686082382573646690166879427670869801618764791562144151179417775250367670255955405162070949802132346464821341370650026112044999321071410616709127684098126867671007544163736734385312727756585961829127796680955428502066361481175335932386857490873986891577905476625798719038407614379985812543031556287737864109200829969145161247858862967670397845652716294302794085404620003734876875397397905214216410971092832406906451821030324964323800108157262075524637488577909774254733591337933532812099107825802407650251249426701256154671272675521504368267416235636182859879628115078221620072168391002196176638137743247933762104630528076280877297388311023140823901928493121303484394751497158426775280087321335544994515482337737360846529214953074436802790130302484108718732265893238788166433687404440527045876132144982954995972694250035849491701629780557022561674909093492331979003812119424140233158246811199150583370849577120413201470682908708380110159087636605002195368168530969233941235367066690622075982660959002170085307980426583327801414275527859915699251701204912855386166619924807204819098576580561700465491724856952370798381628480198546078810566196743692197746496197938053969634596588730198772734988956993726737947743508124239256923940821341270109202354692906431250064822199455000675663188705070807250193382676074494182222517683317074817989717106995445645072329474190047196995911775765311029247825854004828394545063005239517176609880444229577085386832235795964240607547774826924435782154069003532904582368640254470398839429541300185573221597763844090403030857090045637212106306700708161581798913885215879980258078140827964500062003935348566266046786519096745959249854835880884456856360907317519765876050138520372156445668438146051218414231978552939549481189443466744123730539648166596229980781496858091762955120435680772869462361829731080298636540324081245756474510142979630202302031182533836119342958436377208783820395324785645180366633324333382695937405007220315418309258414185936213847308369828981087927382482445967053109348017704885913109787475345538170908214337417049864260113502384348684387210535984187350780706768041581564294417198121400922347874395058103184898870616817276711694686332879508737407678763381919167387569429393463838312143053426838213440914006205345554342196101142285942967868841705927058360554053294111165547955852097986554872069901214630496173190308808472027295645225725568976247338732629272723230115586738744577694029718247030641603837283949974258590035667958929338617871613372948114367391393443401423849834829477370914403083342060974789624207341546024589139853349041604967072805373265470953405513482470105457233442360249065885010368900743519022063107395174823682814943461693439406452742677960120341783699010982855963057269038340158075499761639751803887404298748520462935168240561548632631349685357406059000365402154221319510726929641894798541760458884004023244057340538666927802009521969100909894145872521315038407276498822421716227199196666905279415879376755714720623253190416466425510540312912089840781659594533034383709852853993575464104687334410724341543016852973078284081440486870618947315860961022398552512912943842821751046776617816720969265235124080659557413016406343466874633751151606058510508949420153154819261094922365980194162549903517306395517565505570702696206864199694642880043809425083576398874089979295116297822182764809075193054564850306232732868092106899048683433565117227835777534310788432148336503831920237199347322039998881151688915020803012476362843983420716795863407625576526515175535640123351012732616728459860573623259498127330338086150931120398612906537484460750119049138115847441852919438162512806985061395355277287036417149025736999903254505852716784696471920067375975552864675220293952513835578283256319292411698768298854200485418625734067045800186567096702314365987142808511801176821103191521059021325982649772085433043991973922015621292981442069202952413539867641947331410168290159259434541720586509556666485855763118998541552351937056959548469670975068641588024879509176478569967923295853361750097154369830592757952263173706148082486275746774980361873926160737537215452971906061360921014377146459990231202201183891511554850096468456340881715935905404441185718284289447593409868978680007809664333655495433514331517492108523436032613455934020531147662809228941633097375768243903604713952397075614890251533403569335562400422480312855431593270487128431549792777792116461540338122070009107093502403849914095427192350172255811592289630348327640575227854865984098290618236158352211828973754366827567910096258418056728610941218330238581192878559025017384328317694073107064485874476094749852139695776319321554304284837029906715885454635741440538124175176919124498344137480673355665813479365091229887360410839318863577680865355361544784244786629116984679059205631086949328775185239118877087335770778875834614052116881779668911060572245500573064885284579111844067989246911664668535739348547579852084271125391488936479746313795413644766266522016034013495204021449262250441077572716441540082197555207358418570950258436514064884965863294423378673124118248822683947576655856996828785418266242880846867361681358234373620195297850501620217087298670002540769328549799334958518775512396048284119500490246706405099021472738824034191090520251140026777993345392353074290176085274236822190644618742837592382862967959690480049561338761016831245644567809086477924599292172510636710312178186231554085663266281628060816982846611659690797888012036398320498995393823782593208299879084277372170589619942375170104806533632470470018155478896194900568232349234368049812459568697489183272012957886371639286367421296922892262109725785717003879570481840797799748128568540555522461353290338287484797943388973008480184853675192909498586293187007834992055433231287330281192381754563624194642615953642055318872206726974405446177119793044003016023461719389986619365848095795537729419215908324443571002848745559454846526266464034129625399864734373245020381879182072022043497466076559948974678074612529810916840139790356392744283382805662001738036303760907200329013429286743505761373245223398716686501970857261437124167623325610094749597412248623967825342758518611754830348409652005995674192648600059789751934960661201648549669731888798079103634207604563746326627611818211673187158558684280242866637020811962946411074898767551102668561972929783832758962269928363396182350395304927705458450935479149419565436881280002103906722110067606951704626580224025275149636989862006863494890952970255585745007534741450266251993375014966531718132406860133069529999025604876236376186227688557654905056578256536280204214859455176771179837052399902957049983722751238874984900343665598095851130408303127378711287692226522101671571012739555358231352243591630936007233569572041044983958837019617375708399200585285509199951287699398432371637852090196481085328886760505986941826357593489444427156843407847759414759660959580708089659167009458688829826106021705158225096743803037241490221521133670885232786062747359053235901146463682157696661192511304491874155242252054685034353349972534346371376561975611565451782703917860867497433923657585544825749165042218560819897034594030756609923628128752908060913075971190909197716132799595845943040152053746992696829536242951163843285498059062970439752414523975071724108503258878408760533164573122362228977918594030121055658584263209237427120744365766539523418632213503406313388406932831460005894942221251202012184994166409688972326958260511177443000940419977792815263713673710726330604946973857996243709883499409933343565187073008011842582235271100606129956581879625491981624478873896484174901067783548149253612769828840548675563460429201391935177378173045211077188461290144522452068384451168483034042668793009993574592117644695878960932386621874110939893909200749789277062060935511946049294414430973683670478899298986482519618587523807022116966088957041984146466864715083934040256473561600106314461826210058422748933948437821506408047141414987747859024457352535854394693107254379100452673297489743058985213820404640079426854086393324904256956161832597352133741127724653833977524273098718968562181502100398670364180442493458584624325216497093243626015484250478696660512422724141322783958920464082513430717710932643793755259103517942939432091202866407169595605669221395940931796913193111979188071759597178374617083784582266718641757472739505877607651170564192035855730789951299772691786153179510367691586010216687306564569418009571102698957143322995575330216003663628325081910841424031051492765968428784062922689702344556566445387034390352696869471482928591897230016753296685327646887648945006403374203544896667029111803924411530335206266626206152571178255466373104427527176061684186355930875811335343758048928683457914090199436683745238682873631370982535661482587834874440941524458826306205964723680308150940756039772283869583344037670805113404206290277271029420583683872592451357411244118087911969923402319551714020566483785453129104187689817452273665436784965265430670625682944303687601751410402738405849242130846431218681670178076833115046689114994223977891829408933618457541110172900300575424498408854626521102859155245114427761088341369147465021625196484362829321539008789356430956462496394644371108788728690892068385921832594227850099114671759808838948537413445638404647308174937876343869973523573205755974077331703156658216285601001838265895084136682979124331982111620849009868532838669595909206313205849359378956860269585837132396496463461682022764518113407436698307854784645728279932853002766203359461173164434001106586360409790175024860578173110046385145691258770347570273061914319433992927318333650356515495395851232066037114057905422242938674071194552986236097248670343871747710462259015901530087452839262024207757733507461099956394246004267946651710992373947097895797959981459405260783264128417421486988697853001835155705559941604815952264907317407433589469379894745637323074245055323203477266319547345978199017901940231883181371580507495932696891870480539874677121483738599030036653927841318154339429665270627671816166491787283054908803470836973442509301133563156995584867574547132408436950703563315066724067577355528109187427321640711194903730530423748120237050009768797552688366841458072107717898311713907244461116436996655708976003612591264945781728422255858244375977648016443550622848387960746919515752057247257442123314625828237530706735184120110776383842877195542942675237280111837471579064171479813493584556196805323728236278584373433870878038995303974902851921152674958717705369808911544126218206537802423970448936143899253465826690067866922510535711846993727915470313626028796252012993880087324879208749286665064265127273486379886161739243824914860345669416348973301878770258866370332284935401157588094101469590727918515152947227520969806340143912438396977161695762263277703100642700493244345540646915282902070510375940715383243465051422358355499154171985815897045011822527406307832198823126713400576089363422966492721796270340314538335191527423786144676776855520854806191395508145983545076848291112415608503458063185735924074822232620693813478398784091975182942305043933325395843340305247264393917809390704384351389345213500176967812453766852980525276178733494814245111189583124523068546193215476398839498142929243528809828188366614268731891802050866328480014848810169248411304936947524914433191799560957461988532197925874704824891556015833811089240846382065403636629346141461341730708445166150389166680221839012879137871656606809543342457762879991640779442215059737836090389375081579016186113609748770811049444230479014038544272965937140727188613483228719341898783436249523616053168672401250516002088545107535618824172013791850109484059802128659634387753932220028861543179779772305151254531408849669098778107392006670138937349004681281395465809828380759688414054404707163564309998615957637196792733538466398239773819756142401951120654053354528476529594782453526611304502198268397550360014222124523129146132003176108588145343642365335756462369497435619460041519225015719840478810152462270814824795873797077191961132013089124647143686327710389291366811108756944532843472534843022633755345746946811208640735581212857126394760377908881599077479634605052698357090651427311629868630883018816849018106572383017977801938939451317186265365638718839382011056016198391723039019647545587016970017294217784356924359620637635547371759780776267106828695597227103313595321347860665657728259157190400178151904236985466970368444390033688655759978130456407232936288792397359687172468581321049206901055249963902601944560212841530954880852007999259135115717060011641239491700853281033392324830842915262668900902138262921386644065213690516503832265630559436608262577100282580411455514372223475269562835572274034338359879800113203888713369668139114729907063178057276321846386276022624624823618840168096630231487693544668164190226665544124845739571267755503727271431358654519363916270566004163035241614114906237667736959698849216336930526965363783555188747664054148948192155339129547878781923520847472134141974448080930463677647825215581150320240971376012634645072882451510165564406853137525261196734675156779779681941110135392540105434858685840126370366971720746582951797422212235398551316014847139409373559541840624878162059703278546055942831590279285787934372777395790274094456130832603725972861242162604300483253687349655093734426030557194560705912475149752219275741588358415347464680650865226913049331118542345836791977683139970770443146167646802474121637255152966782752663869481160324699102355845809193789262226305460680382109361575725175297048569871319907541166601929409694900546676431322329889547622014033466819952081354422950285305903781967917951707561428196156889987867062155191998010997419509727533469313855230422002628300068855819908819833299623408155023687470969156760486058934314761462888404538775033180125618710599842632123049806123075347761021170050034307299761955465438718953648163727738171200444905524388694103097515725535870038881138312413420557783484417674868466405980539468129193325075874258615743782608623221389887404695863693935591823505582571561628361672209446056025288192524759518440749194887994353304018969354741675673563352991983626517340735658716032578054208018675636248401335411918364152323968859735744099719270997935063477864511233346318229037521682204874114270791544001756799265718284711803778810511210025120785427029031976214059955544874107308975456238175173281896318105186996425959991458969981143417710430064796372451776436792681647082582257824955425808804641578631534307079171010044260011177302294109950414326445621115567536603778149970481018841066696902349062340132154858104595820172205510528095549765182819394313318080495635096549542624367479457127198541521804467657814338763617872452528815288263386421826949947962565052446766344120278453394482844725436698922381984680503326008775954382564976465006245674175141759203529230890980453325362180614516405224502827833134740396934846548290363186533521647268045983689253542320036607578811275627712406119152385791788110663990113418128450783839841812823367118376470800015724269167905520883205103394037913478191136247129385537688924156809270247686197706364490766564017474227271696923367335870264708414848490393539765720229774668426407028219190847982241247945316614310054980059052392887667058336885124822061495347109840810441862825548055322346934748149596133427068041169121053360630277921842498216420331065436101517853284471538459027247166289511861993040423234597264399090213531154152325460832991224204247775219478162269037424047748934439810630357712838009549153080840870803663837350997206705454441213029591917742629939514995307237270170415364196528927203728336860329061481527742896236191048328350414062420407000249939225745024617179329408207928353193665269407255944599099806968828827050844399246632574994600792042986449465323973861204179505212427321738063060011785376787169099568996674734130752643167760172233797724498815434102411413756510981799560546677324661474921731037030393983877227026116554878346257874133354569082738530480532738145585631399901294799080605124009685028647067730459209385223939212593555802805042031782216180874065806973058958358899893446350761247416617497556241557990104103085635563439454046265180898151998724996960780701829991808562771548275932182666540597115222527430697758920156535248064161349484507113027375406419583023177320645822322362085324006671864259865625979039238799801894333365487283317457744806936838573126776844059574470969638659651675749481925673792597009710439345222396158494412566761575017759233708418273229773614871591366295890585590376411153882534439167373198598219466370678017951851411602904196076445547003452514323026479291494948671492700771417117797432489607250484326351208157350357582355939189456061147294282739689693804878301611099021894090202740885158808553657645679514075187686321311500998538905612790144078514183788396979952589952465704680640783932815055715172233397693596584527506238484149267776787039826045926869126689635822453294703914662256822802851561478193453581948945103767462027983731742071008558772598597863403534466041621023572018601431037275307446841301262993350868509709192726673483679184041462517825852041770447612902405336123584659939081522770043656225690042709516180555257192148433789507455898369285508758833034171337625114614290752179017096478081800193681807911142629924728821242732029883930184476907613933525904077328399812440080689390030305179520845049421707375674338310822111110579877297107817250939076211691992858784475745131443746570293271350077569159449559561924989615577443435298064210273855545422897355016004223019907905983477026031232674305443512897580784793569477171171209993367829562602667090146130146815389978683455495222407787756743799423313661005284750281162456329350994608421240169587189986179336345741733865461659567652825027255606872910682899887486653335871434790721555426002400963418350270728191815890940684208093412803510965379014215145591296030602362442606798129017675882699896708947240690210978044738198392575106860569495426646856739079906296452779052989899406897278553046150739489568537958243119207358836625191603251710915923788036920088030871145290434879999481603875705686146050889359363195770046918743555816505525656757696075815257145561742704293386439241284552762528352293741022408308692527726158216355284331881245717053556334819538703934481339886537843911482532945624620840491955970373258430202376327505604210553295939711329635273406281585147632861181054105080664171772089470261840116024160464416895575502629517098958409346043801074164849779454757683025500856624974091222090409127274436598266305647991658265608665782693584756588036520502711395102394500904416904492145298172131275995014689516883248587882662646662572738380999590901338216769087904550221514042985090177039407389662887280323496144527404750938537528490051762552904877074861343908707042692377344413633640801430704989914790982241268009879934756379995281449359802433929528592050259521613721233498111332168504952384084865490454022762904400233119536532097049031110883825261482666122925946081261278631121206674013846807374738594264483957891952664679062203086427733042320435503524717833624635088407875331691565603843237338433912434849188271165595889806211360947803835010517313250383515238175744284935994080491815449870897796665204495676902026346974716778444595247108520496114166699028093638116009369070288427517567255017916266663061301515321450671760032588215182459025341711422975575418294901093803076620797107334643945640424816526590157852908103405868694005024761131222930484715008874393840244668094013832291777875138561307051232573485718985167458382283559380655771792956522344433043989688333326415341157444799008021392759900518866071766516733058876038670235753700810961139684111186767655270430035382775302994852210293136384836990889427463164253308775287261411091190833830267869606183583430473819662321326735617599835181375302620378679417970128138767302492147524875762641870014534147663422610189731065777617308949969908832051483971449255125608347204132273193794376483716561539415595909201294149168614480631070874040238598803497306787313404056396175286393521872429742724602364112699652176897857404084745881652671195347337949271707990308053903523878252610816785784116729650661988623781099938863095949210561127553648193668845796961564677129860221477172079179734178109216528652749727591693707223423516028226578389238333755022542540970798184470885789552131500909680205646538951396913950865759562190710945906420746154133845048483763383172903255278880646831658256482390520677181902602230083211204690823430316734865704303107481454693671261402297891308470034534961812932722147365963073381528833559895981863226948319420144498596868684225003791620815296677761634017789106758609981362225799984393373289036383069473965399688225009691703840391422711581991816080889956805606267492915588256674665990109327202281346333569994413348309465146086065771958148660537743159556747259495789704846565523739241908696415619071592075476580828568881090209315847184709503977617089154545383513689604163811712377983089888454918187995805328312689960907515161957161138271141331033901748110541676636234174629620572398076556429961981941734457872895339324062020940859369398459915971922421770967514140729676943042214507686568678027754573428919799188494608116436058446192315679488862714941415426283749278494777996102650407391949655741298753437421947541486302447455145966527499205729588352156159643118954168149259569903294484141072796361398642131063763981259049032409498038422380805105130565559654868548781085189294099281441946997069587233922698499619298638099897896465973050138094891822881644664009048528315868437197528977503266153253853492210378164318224791565844870044750552405805403935508387191133532612769582363443121704953545983000916383163557177923138637157409138604351645146468094965923975007335161771358550034453848077869341617191062611367846793195556531189565736895437128586603474681819069431551465260817262313031424299002065097676347508651504535210467209433704811631643669362241245452790293847979933564676901622677802949234274101879416294890193725996941174500184610907852942425397985063835745460701605268604329778043581679366178262110225273614044289955510253733447790106987554947124500439617353514003809637002332126819997294002931607537513818065205769560449835415848485806062310331902720540679806763449316957481750509833251783371522848714641945211225622428204591544241353188249033128085801758543976968631827764942423506222337791638498850562636068110523709322088028786183391231243618508222196324522095347116133827505658279254871704800345383407410374000064840313966226678104802631870048661095163795203960557696177222852238716327088899125969948276424943084481028101298540728601076988923319431519363542790865842485925578986019530962923384082101025040066505485419459301976950369910255412325267250797990275381645765096274739254329170097763419534257240466541709415319361031106669136007475329120123588689717597450565807745738591147711244637809981124863493326105664641115878219094069687545109844080137144190550766306026769119431754683268997711701566614728546415334562155534322501488465142397715916175306370642649359232585018643136381052021206465676767622255614250740449532321850096606408040657358803078303961444224478266500141064393448858277536571353683815856755295165789673087059675407143987424898146376596772692542527861331189526300140732352161939112860167207813665128593020951243725068898540208399160267007052963190438966439986856199096724560819904317578526694673841378191192527411060979660416938849155890571713357491691853079417981765954716710423550674934603557567926154698019421162712932251213186066813964041905481473585635170827353199119797904646045270663198907452213742036482805374495868628337148354177133267410194695960133594856099437951025313877392050299313922008273902575813914445464817972226908908990346108619788308845189171892035000926201327820258326679418601909673205355172711395643660607171138622735415698355586268716787507796844470746966244034022482994628321034923299752797380685304979835766130242700330487246915747705803175508878352782965877940134706978291065362217479374125484935293566576276720953015698256284121394434704415277640165984832450671707092692857579451146199542495404720414281547460006624914351724954433435287080454375638181609726954376691776738559820345052321271612629789482607934658300547909889363178405571888630188161859975848762804658033439959458201723915159283883879426924467205569685140926700398306421386635583787552331591791661307531918863245057373140655989454161718124670308451898511014225876314995230854982878692560893300769571670202653431977640819436033293722516078974199850954262200543831262210055494963517197093444936198630569836253258450090734294585811400394515557607108609170485774085618353462108770339252123343437013342411955206640240792535482371567921835353711522010758841167262010669197230348840025448216529117750811626504629681998832666134685015304438513205578784447837017854614704054690430188905891276025691950556125827887518684725009762354870848107439603932198383452419642840840931739308027679784177303017596279829176160195446566965085038661235977218980722888240591618484841830071038046748680959829635564835779942717951269198359784217648054381177218678380117623365413318865606471310979393807514883872180991009842623072658201493117665251257100421834640044959905085120424099001187441721365522979288843433884208430772370701071628061774954615762472871717403816250005350406009068105308798663461827817945736293445122393919281700428828575848573223983297735229684165166240388393102367097874537654010435507581651342120795228253656038123418886102170221107471344263996723634867146364958965342113707784366949199962476486360821444454907794972031826490206227898094171315045879481707580414168395903158290729931421627041750414500607351730788119005412179483794105270083946579208248062978922635478283168089495559109589545284153751879353677921721264420548443963235008533609696061698427964561909602789495776223243820288545937385520417916145124487707922170505344774268547489647610451674501078406308091568121283203270300157814898691068291018504574735027134387754857830478289162605250355437678135806630661407495219294342970252091524050311795576324494411541116389162688507118521340801813352105791191452780416687894932451748393571973851810018809623847592488883232689262784976716637553983656138716386476296446120015330815426086492700110840507047694241542416373884907381180435753497506462260123777044023802244131898585532532352316360595626014118174668887414466635122516336586893900784671918598201372068894005056091025961400175241820778685685791962346074437961619971811974723568844158412647690740700310112583727077781192474452415598665134380101560658494282162997426938454300432213633654596564122589489922890923464979447038241775607966212712925542468736416737192422633070014450973491590672172184983173887926072759275235732860471609357290223001737903213814555822322939405577544975306455056200830026489554323986188251725554793630660310877270767645672181642571220765938642622891404297357491173287302584932605059809314226209712596894338045791487103806240767232831272915942394961436692767478284592240711486690384176423827396870291723521491442340337756185321481690051203595091955487585258090821101210972077398974721219904787967948780008243186909535032336490827896911622393219063331854607034726707911601677107150352004026238013630569165191696211040574331688778931077689539128978316143161396445945906937939804447129473502957195842954929935527096049877398024178048120855708925839009978073692033403114597223832048055556454390919949848062705449355333662121930080445155807227287157369713891229257441478738495382217261726587088221472018200636408730774450049261949240937489912110946824275985267780402305624311361337400242320010678394123208979824199757317055652246648118076881319962673698616664017943235999041993108778742237172681520672690394085017475237560397255305804244990373907459834469223104986177231394183807134541383495456514159960638421755708878521028647816164243384616041020096059686823989417367894683466359860548159346960513741812774898134229284886168461776206398080124503486775320517662703897798592536115146153106578340087672191169694471736864230447776278699355587101845999124680708497503641911557880305388830545767004366766389610511736802591617569453692560805687297985118287432244889454848835746494987952124102660873513960191094452660865779294404323384393169016481295034053483651803814889321767904077478050192809907604546213483556743588674965418272238536716094299172888495492802328412251963832462594638196667875450866112799847385633482676329278271184852094021580612862018159168878822928190311807419301301441155028549579667321803184741856558672183023561943111177581303165289124520514325966923899898902451549936287369991698065163667758876478451791140836354063847457470059736105174683499077795282319415059766445601775609878691809978407351225831957573582676101327937365778841093117624355106684231634859179744731806390074952867449036102253025083113995473087893839509674341653712327039363151667629912250314140120034413322580876740770724469276806592699681367911973423281643018081973501498660540832327871517641151816915778798607107638082924982746189017394347708728333105806580877255649309881532127497435161388546736165786830859780091755967853604285071982507434977950396421575971455196834979296607059550825540546157334344060299937007516712781676909189197850938136687947050507120236108507592245045239758411125936821812143368196131842914929855048302737676072560946988985762766843069258908819635104262091134346526778537388758566066508292909601872883657909037816181010455809924548032153515664840858425467507129896902720853806994583114420328448158158765046632345676949989727124478275013040474670689810593744587859257839014551004336481587567809594762293283034489233972378085879769095734425858370955845957296283881282605625338116422633902987649285352848149685516132386716652476901772946080526661628272920683813698946391137242894254062205986700338599866673862686363390920244042918870117815433163616384257234178460865803372939091428634056072575619716659883339522354537259556363331734114860386697640303734266495470302120035055170392780909639566469829733078634698295066802795219628732545081764442691314632972128749772391506353872112282597396414507619010435446723961988971383070520084792059056902491153495144825526441778359540914454855989907047458613696579285016037456291046236116573066764570440250770410751855216155677070975753490865286496984655751461263451632323697334650433395017569584940223115545606643420585359479849141696387549905549615494061878025958141277670520873050209472820618271344371769241420798003584495413558554644205336977166457513596078993767717747323781189113109706568508040143895995249541057661876354865383405790055159728007918919332545246737737505308728350215357540339331259192958998096456452118208526344399307955873111696147212597175736940263688220233048982638597227391294683235496609622030277788006564558523990144116391157988363121485765469605253692369802293744683661083469289759487414869585493544441724611792455832644627398971315532320657304311381630113341663583807805759343465467445625701602773135061497538975524713113828391038387470221899298143814834151502276738355572749747034475765258950012526107681972947337518102321507205622192789876581330190341848578427718690455814666813745402369485554213809784350576376916588580362618188401725574228735883503217898370449388822500705963555283160368121063262572740169831236045173986472116839706824763354492360279409554679179158893354915742789859944511513179044711707372694009724355581261606821784244460636408002519089350375677727988107819448097943716586449450297192146587787399840028841203280949827083087772151965859643925793731630159141853083437636896470749411291899554656622547588206226953114881603904316565833098756987915255520632038501098768034046334630304397161765101868940945225582863651189422338790087619706944929695675247131869710885061432362239522326718621716046923032075990165538719688264690946667188574240800874529163057952984328141950744352842601404174961985254939545917863064084944343858282573362327323090033396559293807339326653816863351114254462890095505278580314750685865257906138667223187289790028336381704756697110788329667000489709699267876072628655090651729263799959291557953947463327056765083683157009416697358344928214379096476377564116842694113000037450365437707227712339837808671247142159731023458370652189087184800724453107204016569388346496384135591401571505938295887791048687184763009120638352591873392590492299703328060313169596595567362611136181719787072434947655152093227735082515232717614508720402136617243278191753051362173214977778295391126153742629220853320300417883442622609455405852224660358775327356653693994174934984642190627988307626219334234639267337314717271404536401296910218851131602736667171899360285193579759142181708690561891830360358312462499976865002367842676274481124306005293244285853168047710338995110952482981192561767649740515605867228818294264934696927459329904485825351819683302529448099991390059710123134736512681217699455336105563743394633631714324036996658414647736621950290428580658521741862825999301521460843891107730017678424820263651271129454112130443063040706997189872182225698064178783731140818483164347865834700895106158325984553982060018111711376496507579618609234670539805761668898293313822522035273606796639485108768854795216307094880342598713793421583791474012502338989107952623406236332065471277819442794028366828693126846093338599423861255685229528786801737681858309382644967946301673709967989593187593106860568605400014243257435792505415100286633469066914729927720124522696413335386165270177216124792446103033803752427298901531233930397458230043469868753890524002887487412245964811428540290437323170365175161604591284435178321910772301470743623310715919594595805854040884257931188785740641032099380757862566745164377827178590770043335145439919761542679634921532303305062532440681740132264523868437463280419079823569354698739092825047002969734553717760858725815620118989566381420513760314111152717472639204793890508814242033653603643254359515958572498877773830254802993756508844860125719146654556258101287675840666018571909647269339631082341449210969575231790190710293864212706173065012705765672424207844501396119812620199718291713551750256256259490846542282844835327768990079039676424017305442958357961105364237526815209122981844566774081942596640596217314295724961222464471794208106146544048457641085494581563075669750412959940346500062985067413497920872329584259068487719978191682427966850533943139093561590996382209000862243457617965909998562096817753239052860432006401028761347343828489471826616528867073408363717772497874327018579156431681788304102404691749112338311265691276530694548825695895248188131886027224227899344422713094326819058630027840048741356926033722740889360256522941011382537469595727828497143246556836845762892134674952990123319112512677107582746086594533185468884746766964687629387523242500951927389495794750677163896042130111237739960419125785891607909976165869149439517837425471277413339241209476830170864021040583596408897183643852000275237578914326189884941003084155699519808125609349862022722853406435375675690723136312121208840945104412337814468432852517366429156697466522740959216632750190511643330684463732478315175835865990751887241991784130762536941137509136613820158121029115021436521611626089598904896413038914430546647838759136403582147218643464917855894164206994156605950560673912091702689005561693892545591234129100437198178628709915829947193085661647773163214184989901397164887866909270091609781282540677895299294664117890238256172050252789378029735023901586724260707193848006512383264104491993132076673159222837811053649567936783978648350891619169454051905035027167422014966612222653952015055933140998119828844520389924918452173561199935281064415865586073347537556746834316001043204602245206571289894315317834560687888819109328289039616743681181531780910310225542230317553514132678264082440094263048098023273463543790124638807653810804330514301658129804764482806989444712169027067198097183665621967942977786033994372015920083651544741595009627891084616776320369117361090159970569206826746891533909265397485925458044708951674191409076101984701256513969748291475523833602547711351482708651745219310340068162446397468841093243576803040462513643628829959940230595742220044895684707514889736827553422996259747344959071796262817462420605886844385476846645715198996730397416803645393495767089716953109234868162170807880474747586879927659352174589317158183487899906679247570666531730812234042686391223869980733687083890626400534156690410618302037494155016899044637735637129399233537057686029083123246117347004520912887552735904096486084134910018619859972445437643580397674005213958520704047617510732313103120129506784886153332503862562030386208561256910471959863314761248342861106406598435590969827949361712655225062630454651673693394675724530004430808431474539551750816997296332265780142861056421039291598973628486203578699310197014181566764239610565816051846641420190932568343321335981686437898017236369721493899082395646069798285007400648578004489663030692689855932081878425784716619609676460466435860498719723235092535326387047208922992007800048755252780225496894425609220625963524524829927857849662863334514956130057879516214928479447942287892682667550795116957723523146681358319734801417948209025112957430515612652070292724397215105083634100646850827350717001183861099311897621457311117098329705470614574696539492765028063772024498080034084767003413700144267114774074683211993431888218798859416473493823247407313122948778855225691509295728054187799271500322188958609075858607425279202256976032571032945319309406091486815393704983829195921734942254275290183109235498483392848316983571696757853815626565910033924676853744801457592800870085560355881277927185394695264367163198598732276339760669581762037499718211943791556432571412591827795236963566613657174832803089869482550302527403389003101808007259303657029034623837812379270404919037376063467648154177256931602428911017404503180835391345341320988092103734270430092369046498830496066693278483588916150051337099155649575419742172380034530752831982531505202962297334615260166451632035574223617308327803153325155796678808924507846388304697675143663970738391894256420984616783648690203330546598873800213791216445301909706044477596440685531981110776013531499280204689609496151213381785690568662298012767152599239329743340158680038431109724947910449827852985693780809533675353582218045706451479741058842011900323172690445694221623260886048651829017975096617273924467258562440942840896318807085880772040214190093010657566178878175826308145208639747577781234713436184423931062764142294660214856243450131935849735072462442667520398795991778547528855692208061584752111859662331211867909319634815957763866824506077226855986593294722494709031954775939116128386059788373010009283252399082924070522952513331319758259788961058562757450528862592712657400803518209397733219401338304387810105410013006385705907384206142250776253172972567373717830708638480537508961831591147438301744110644774428215817652527877605939163110661544839555559291926495542258903288244736012362772187258740024207060088297368329484605532883706237989446260032107439003652867595406190590607036544464641601938405083231614084203284784437926369778741385917946751711516021449184195312602452679259245009323668855954429843204203621019495565885907284427255071914296474841705914392052156473976103474913042755151006896267852132482521676074498603355429016458391815155685481043248882654095552035369326231200499098210175397344501791095813014687815598216334650310166024025863884132717380778459180148896060703261031741893214085833448797972567750370654249917591574372639544884373142554808455901221433219546098198833979413466872659777944085747120298073298254670940307554827976557824993045146091835090141937246373321366562902197221264226479702078310611743829541625714081608201391917048427880052677453077933368887644271344116685227144734073561031079572795493543232510551226153179035930104534547123724316429376700402253440392998665405303728643855318074093146951151400999947798024002621584379203216297811382481748330478659151779353217850577277767457086310441278577321512555548986712349497286334371662663679725239680942606168718201376841976774798938220129920100823873437029931112688039278478101949501715506129760746377258745054031450330004968290338558370845858429128019108181714599460903558952111872238596309654902951684076395836668421507607451683077407415209163762877820593893460969216742872471033870365132892566796634521732540755744071707655615828692104340996880912277443773771950464102037508386620454489154129159057101081694259600112941355399355307176088374242059484384225915642915762131181762218842361349624053171289810248770261478384255687429951999373273929727379956247650561860786050868582858667948196616755220197779518723377843407300863688143098430370656893046263904408147977618772830458935913731726718218719620550028241648710571901077136434664978140750643579691376436442220101575578458728680588418277542508714605362202917341029166186222667017203640301564037661381757571347084003014967876126087166903382502984433984205240357236991225628414572001125821667035747367440762923184599925531560228107289280592957839431000046903040237784277167366257524713140197843138381534891989821444389961196180178608633977089816578941008078287141358592312253547068337709869670436518370842880520439108369382174631319824287798420143719672133158809529551525889054748268125794125987289602963169621756937415231971704138691711119311627733953622561380489157102074872829614984575792315237107145767326476128880886262067094277252001507878966240767433378272501520935388744329440155655259962707077484498367506036143535985980104007815939999745742659072166439135864883124059643244754334913961713338502138175581844092235666052075909740543083999953759803978014163813106065801221590932119373612644503017874824644612398321657969664440073793866205037164817544529335646913042253975102983742041945337813000488598455163573809169001115969104863557406981858373272987792598765027302113857448318685474759689123574423657582038907821657054171718403530020462174910089900580599502924483407544642630603079209327163277495173290276778446460723467523843695561884943786968028580339499719412327937113180772541479232449428846199735038811319925425484161634215953305671407172569637762027865417420844750869078416107630449371012682308556917619133069540194254555689248506885163061661535259472983167673595883356783394166666963504190654426630397576294511596822532849073272635595889790369928133307258911642416317247698030890463726270823572262728291841052310888816661878737487729543223661517485916323645959459558491639237826950781253126001319158423781703087787432318790859216481796431363992248231411703702359910299771576211686744658075288725246935868425457242668794737209168278557720204027482677733424221619409052990305614725499067834035490738039091163401983733456105418897446629470558389473105278428698080649026964142370646111961862484993460852106730283125270268053294488606164023017539408619065559125123660809939312324663519510970888437309945346789904591796532370471982485822899659906697119842075317482037066461803120897216030791751295414585675780388588567265500801293982214602684680921147571939048422353382648574293229105515218132314008673403961563702651904344614990150814913330130360936755860991687590567388105551548882207068189041510734023198083532473064102301497517273648100565586273563782525008717555221544066810944479776681522710262754703942993586551062942662700089516033843840938683096913686251362195774900592880942973715266013935524959469133083271370310180778738596274263441380875183753740970788669801384430686145050065550016828712411851058642463925709603201271363307621929765879682373839296334254267590207768142567145336155707207793866807582169568286130238157989405716684809086464934398080143577587833964312685723686899052550463502070961340443375846207520714644724528565045934385239946927653550318715273266407730494408559172282587271321395292016959694840892747909602644788121421052891044937594828628755809009890910420835989607270090923731204692487311752466959711084837413541167693731992854604820204533358700318074488468409592326481208723801688123945111988448282955724643090039694458419271138134935350231687192055368666843386307755973169710437791308988699095032648894268231195575108836538870991500682929229958635845581272959251498056002092091629100801864704079161739390610325304982951416713658465103811058175184178870186385976854752332912086765305623691322283464605666344042215902272334545737765688702992122930532539708901274115978647527436084947019269925278995867846462280772871996018044122709556767350997654654533432863988102613643934076264410138304438561456898851647021862288811789225695603595758000299928662429867462108892840187914816134158548669102331740650260515972476232720535456966387730660329160433908734172914636677910783394632916025067291677583284052198210891270768208658587643468150074922519145008948884004690079142670259459909415985625039616772827971348299173996099088456507871324449261075461601341852053435874872661627755690410559552687940701392224757594063580798186830336769887915027315691103689299840648735010255923816091338157748225935596926462906645245587813693012234110255645541171798042618199536584746346647697041158779186862209714107826369886270292568666834811036480790890208828331231875198536550737769872245791563983044195832483239819282311020088779664225536386979718786674484175345663910437374163042778716285862152842157206465260647895558368725640053551695350857402311850256692786917896690673802139083481558247491497941060621058076419374923700427131078230119169588334990517301575197535373294543464131971460488810802019336982136008682588969570038750543164665235616936315639828460443471004758706928069543065797056476995217035335382165158208768486955195499125099676206007954393587347464173921937771302977044957795827796028740078292292030552869453346594010091749092977737671592751566911836825465513585808434512937899212951944539720817665670729757019151639007538152180433804990105484625734431096847986481272938782879966472209198241912480514948169861424588666774554731265213950297322106756551988507980918683992599953360578489684255842916770848099392970352400200699327261542701646041711977527630643251167491025973838810977682191330039317231343457211790484348444798988313080289660166971032939893183134378914636057701065668392936983579647278503860243588424151401435895295435029158457214368203212817857375003807038514628499172928374384232438198990664838560707892450378184081277730786517974144069815532147376360186784602052587230873859896352031476275345191169307871364070803494939091760969869352217679445531463237120364627410123893618002988340782353610448792853581524363808447790859914347294301225054198490790328997488141521223286952023780401363523455438464744900067511659763503628500695648050174884402560701855447390305663195020272019069101851612513980796213514916732876821984779504247201937948492681447379659843230853131760614158038204856676823845644687901936758821477572965058389418059701128688324161105951119516100969418890711815469216713825969175278513856164183584809784426286791670849115992205659081194135180413841033100174153685236040621368626792749631089414778365012534636821494387812200363809146944697621585128589269549392742928351452214929447011837690499418733486706021122516129351359074029421043302887424072314548373524250085785106578035421678284165477413933276948128658964156113338509364611297783093714273761391064715223337081201951600694555451478005652003535157627282376717134847905532954256176742671125800327135188389787016273342418214331611374758045655941083340947028757410298357208919644093400724488128075398121134776009573889081376621501446854442423768466355946919124358329307096973043445870377664675141816194472664265621567186116153860898094241266650017196181296465874695051378793064985778549615238701898547193473328184802452091895390988599138809972715486148114773266918642178976150944137217019910236893542355503441959689321063328312342861165067373378874840802057448589766986226831240616757917868136622329085142781412693008670928854999907736616046755888092541139688763829926347986342706573396532156748327639776051602750135800366842699158590963139399369862276354572791383042114733051299433285557194159217766849190844480956757780821273872410420946320842729322547628955757930318648063628279800191662430150516483649243594415702048237025345389416515581260819620750095759606242748348670540258371012242431147577206409950849043023505612364171617602345059412896032698742942988182696136121971814133911189207727633094334764541825650478848119327260081006030386477573862178430746152065340069033425150766048908080552937559933897494856469476674778336544872449811712796918369136706264727501364702710734769446243769375824599548631343094952424770859861017896871797658660288362664718373728520359636219814144959742283959577315292705636715358678963181704522569551074908235756862637613298064322009929323392915964404418961077218816450209644714649171943380085827414599976749671908623834857350174975580175811738212953713116346948727962673468188190957482148076572379817988683051368927797158616197298443138101649429702638708340909424618788535463743080296603257461840587256071082697250420647836711880373793661782338901684773871924911953424451005676036065585757523031596749034557267869022242758961806153701520298306879554723177924518746309277209672631353717011633692120495504272158433460702326007874605722905577804715252871606915853636132337114130499618095987300753406937051796885200674400972102094509348205648122696645848506855670619945839990000029590222143303235218171405775551796465982308338235952682980344692033791262733399593565419365890486794922683903833707073209551473127763236557156757103623885500359405803933943309816809890190206183904786312591974206055303942501714729487113280963123030221874371119557118961567452873424449149687278526248998454294875565888467064106401434089346564336746203327338379767710037865590288577890640133864810965713658318592304043146876034234483648768890880906974786136608599729592643823377679264594228980108542712223837384102778550266986017508976340398483802402496250498566701909259859020789011784532711377495288174951364836115319445463355315679521506133900947525889182449382218596002537989364951990363535566061543564102347671651438429216578343559253357849876675660396342207905878094571193111230648715977187152331926695076277399378084726974462631001481170424712756187537258763938994758306201893185626669332954601552329031832052138816900222396514577476921653865050259003431921476647302138030072461046986217759204122769432146163830632655737684585244677842778581102608976287114320798446337728152527041436354354885378744335951694698419583600066595021190919513322589663882593709678528907439600807746395013151970940684526523712616183235731042857890667098057223378300160822707493194592837862715069021403847061820145470559842831202400280596048251400975238117293769404726549024316434123475959914141373626897059171892727279030742021411836593382186183966073342611316083327987616561682258575693100843389661532980794039611402028716907705860210555615236800178144088955665084642715172586038014422410980626352181373490961862632367993472208719975804640967317135648599770567884006059874511994369577601513543955765650120159657794781894205044140330907145493702666724916500670015373739114278055031333390713783508819662363982772458808806040751130106043349043561181409600889016657778924137852294241246115695275775472132047466510601180921290131623297603051040179852774116427243166986125231662483445429198983308642908097049896850285529481191036069289590108629622151625160003386360079425508200999890226208216597408868084972620126363755862428174295787918507013136061033170012353806192504212793007990684015730082373464639897735413835711785963664470371157299842296521313768316919606560727321782530692643359606938092960604196573043820041073403337039985193229499422186015866060343953784383152128874047288029551748919827629957198722061391529897250454437565644170385393304759116487365698674180773565348211590620562059173160037567576979177913916146402658797436881521789904782702572707289297686856626253789182010656902693240311731252181865652045045854094380246721315209904185918129213360663426368472158496167933841192984613871831721099273706803797820754021193316099046391089477076046633107744545684096573378518643079092237313629626502477657532562336875927604577253978730108847025455691263165140074573333649556086695036030296157278101537175312741377850548355103693680052139882080735054698660983364315939553888235758116772134308963524499929036732342784938797049559316505605339403724677036334840123752913331387735009456685062037797300611313926931822261434091740488160222696604621721015930258249834597639026015965868136284138728120924825689191108344395213497858389142327599716784421653017777810544228093021451678361482170831631118601307814655851810527158259832537663224652486341478173089324747474474944776572660166398765142133116772265845267950271703629228696139920586824860576069986492982783875405704813965583840656817065162393033466856901897700578055359595892382234388743252905091855843970875862432985120047806158897222491576696458558984038770951055591604762163867855390560645873435677431261679247873793365142857318796701730435527893781676184632984872142679904335551520013152123281030584892332738968328807555949342621575998892356702353446284936713633103076206587923953632342654197103798381201091053774364538561850564777643180776962415401491543404518098923328918721471554740653978060659041908468129464796389246032644426003913149807690544133158077168975636680975609802096010198623010734021713366954838828044594078121859298243171368931362440910780180522570882669621542125066421292040616052730282826617890568875332564785263072001723415016146744779272833641709739981987601821397155368632826915258329599837034353980091352418871354661581499123294046096554055407993107682447582299534802943476104619948830558852353417390607078656073166982853556356013530033032013414531366617784161968699421579473925068957465568634189088873932303191919235616871981910209166115084381284453059620926642280761762400775036305026695822706648612605943999145636617027287871316827592178603700039538815907004073681868196285793725065619052445809738735778353941747796286400071472200874058097215201217805725797131983420698027003793743937252718497485274270686215153078635347282351911981807990109936736840533396190280469915123174756439579261594404456108307914486313891309040087418424311332125274492917723007990373947738711543585410862250424977245846718411167983908721907375119165002161262951461498748558971394551278849793478946244940344131694911949959303907297502310364131489517643597204037639741484209332102109886342635981915486844248434062261597233817142571726014838692502132895998309283713687490794633156093158609313340821939090608207717739877130736788002163682384806139486874546575856173834180904419959158467961135276337012852380424694307657690553768367683790730505113587483453708155285405015182143812218583865161612167693058796268642331201256224138355677741598649225231074349061241270305809006004954122875562915776567221108161183885964884562440638880923279476306011996297280511702746036584284470182650173151416721190168526987986012029324333531370194863045600526557489277783387001881160016813552165101516067500938156633852506623135595566795576003377936640048336515730220064543682259398900445033876689098614582563181340541591134321455933002428795689699159878970442882048272233655476522210599278850669912096763532132314339016332268241485293965052303901570004533711882938709388474609655327710620503385870734268635890508908410247228640926431520482493618323423957620556940020257315691743421535209678647874687233993317527043059417291721932596053789744247577019655472968797244391686720021050333604144760708500507747661951000511511269934335053159452026705263109053905530884254501520656106265594065486508674438667245175487412750272077120446111714244357235047725317164018266315690235621857457744734878869072355986312033657738002649229314559645435317130063792190837144178774434490640723009088761776820465913917201035078613483671320225928811927917992265630843941186165869867993280832277978132798640565000709418440843264110550513099586130753144258749956676854097861776843479376571003520052155230186651514530494650611437659273598576331201859580443731045506546540228425363133885457891419471182218899379870897184174256049189268815937535210272139199895666965330070360609181848321947315192879785480024435881503483211601618533936564793950953838433251960467071847435180386365994777548059152134028560349761742100805012662091707619019192760815858179860821294023614494222364589005987113743433748579005765561711831541338096121237993938840249765178077929212287938379358815155742076258929376113532243283508498957611913959351563281293739744617993594683597385545999494652494161619017643525664819067182789754429162661556127137224859275352109818683904561679205221267875238592779487384446858255074114697179187048488557816950376743911366344648034269533974040916687136096393287797410524511250177977818956302535736336237144500182676090158808363563652880777623252285281956520971474932976123480149346794677786056217334741423852076993030590176853331030226142736178841047794981719032875175302073389967529127926222239399585081667589259382899232813431261113462408670480841695413712440315520103392729035954090444843080718516021317046071893273561727396690651527339391723335261136540746972612652562765745578246657871911606080557037103085789808296287978420770177059170594879366887726782686113770420889738183708134660339739242652581716002342457951388508819466325145663603416447379111012326747504057517200280521157656258024592868494228709889957885647102399947048942498618229309225998092029953658582716384586415000589666276389361346349715772516998829855701379056233592847346452144526353551342521507740649824509138538877964697620127064065970311757596962686748563426422524273506653461196777807786126671226976558403366523278173060430982930621841916285539745233579027816914142011162648224133645804806214160568189244381652697940144669830015650136921160499565499110498793653085353133394105159673801911288507538674811753117063176359727827396675978228974529092983666734428356529948724051538448923912587591171706754734598596059517046983854989775446642162763682603717552682621798744141587417472663431051395876022290183607304087876331188673199166629211967648709340214284033380418136631682826007237873909793030124528538166235641588699585537118502121921118605319014175812254149168091668912680683112366611838382393847883895298846297822640176331750926709717234865443176205093081427994345226845300008179114581332912662869779420983993022249893102587141167227017789764586037903231275662409222467575342885653351002611887499897593584062901954116272967252643494766127650638180239637538002932064674539513044224095573820753324273107767118964585097756724070263140048470512079858021307970022016730553096581374467406331114707882404093571364019248439614499233615625731679180186251951678340706519819238161157953390938395103945782282815012714644848424919479796470878141677808029388306127761834041832161146099608267733980303754461131307181662574299180010311993438996613833356455450811831309946291276695020373763914370580873448628794507416584395610987419241692085805720616370706235787073554662417428924224014158431765461890162997241284568530197294675443343161367902189409020979485241763199361439377455551855474110640078715280545723125711980953852629235786496798059983745964675884550338396255920114236374068406349374608486439524433434215715510225500698571704013184357521653644599827029987922335159929261206319542731177310153115402376933860003511148829118943062336451535236414785653028365734180663643587467206745875739197775343284544129052950466176232086257751115506914003407644379216513191313716246401008795021921440785473017131529563007767118979289304183071992487657133763228949788654525558633070733037307058435210129860890244278480562391594968731146872370758653177514548554186140429024134614945376780365082316952165036053523974948920013321065605166659726858746566219640512410152694003053219750051621120167033867195027162590029254190087678981792645977694249832182287592892293149632444646427665856347076554434711401738468973268502777547249955347918305607297223664335833127220413632288782146175563891686207057913641798952324947206225620240329850378687925203575784518529130832234643238372367645391382518852202084252654113902807484310591956525539949833488526529596858086101002131828358249569262771942854863855772697706305032260666756537830916936786210396893273077889902606241075990602596103046730464016981540553536290689468068072865200148676121029517836953028270042080234729148571348111133710350261709743787856714428015029336371630716769734920247718989975605354459758453079971162852844775598660829123285291005956074967791256556393672249831875323635916540855422431448127920802305633357492189969443634691319382361394453250121304297770031876664584340316429596476610685080493045895923032198408082781572027295652512300030066768781166496505863295694084259445851628573739233565192585035723523844882643555359607430004564651584235383606810651446741441001889668958962522357300118317006619416855604676050500606857771366503454076969576746253099712849840301874685793022705336605993446952707556028030431942980523106494235675270598081869569208500807395946902464927207718641231904085790275561044813540481737202533293102530907544591181662601552136576192803893431540565864719072613846867652960219578305348467351193477066024006207600654419284805613950790163335259652292921023966544777660199032553499753065753587859536904851543823929590726792283521546055966934063033422706609131761854863002914754861749806680155210521073120382665530607884419893328887799722203134148986517214380245535916146411201495216869791002350700413126263834092771409097230478583962508176076569404013955835515388136515214843387819346623151194632993920483811006595479411503294330926945626025662344912213424739495181273701847012308923771464440923204379025066472702138972282027761238920878123605242875016840045671863949344100978800241248680223523371369622048439043783100061693078254887902321815159425920487315698619883646192767152468086976087981622872728931480713067781311752442118192254099073623612372102943876047923876226394070130700617995349614594312053022356723068597329589814289504321237181598352366906445889427342915546939350122222439908239316424865570678421315022865773920233605283692880582902145369764410966520506693468591977349166472842271671950028682502933571503118361649579861035780655664843028162277768288228468050184354837078620340823090069744211330262500931579977826825987060606021841652739475630949694423339735879380019841522527530354970429072641827506792502131229546878936403958297944246955911898891812526920509226569838334121092503161644615446866921064848240346667022646136657722882799492980061394789859805567012105239737602179149900713479580859654660564253522402060678540748436757192495123095459964072587724030747608912889944548337726645352141328809315655291343666424405231723903859101881285848089664226571057459518216401201926802010902709247729892128977304939694969736738390532536811425061719119769579312029449746261422766741179968146986940698079148295709210154612217744362444245615290482819882454939733835658679405858910062852165241994666516354666217450109249976451496332947631392057959185482772804334672815067867238501699073967911367915434521830879818586151270660426806272430537158935339997913133923266065703088710398725993650056776364664911383590735782513632517615442636133974040170856839761472931963770820679532764350352618356805109223195010442449042359449193402837612637113934002722543291080612452731499459088370513803410702883609200556876622447401245399182697798623006457376652636203836719848806942794704205996048755173123273441540077340145132122752937032285475100909560925511631125760428478490535808747118477710517639295442711988024494519686799122457248646951281913961533674710469363056736261414462876678279669111452456658129896931003581253702438768495433852989364316306107683205182175565682979943095677094402641182250354130288756781165428692841205478600433735553732938677548033665565789569708710700248212963420727006776825445079540220013652474014712458381082957275616833100372701873259386672788185015082769149702195402407971457535977211161821544782781019146617388702374933823349642936487338236599077207064527153393790677700854751124391165117816594956188128102127853397341082963050727759725665073617984875294404755220237998024505795851645954918347709785045532336614119775836964855500677822623416467894114064589766666823424588278293554735975790597966968460798593828579038354088546891638516347255201821794433143627783176826094572567406526806262136586303984941938302426507780359161062158427955917128460812774246478276312134706059220742101454923518044074246617803980613577890134396485358808526503297946106739660108478210500395034103950611901555522318416970360911866447085000413717558022596810292005015474569078183724180794761416828084262377365333765247259510386077678882653425358713560805826718866230621987156031135995692812221227863011358849818895285470611622408635143723471919845064916367258608343611910774145468495208272702577314161221438192751817295334070771480436955619643617668099768089997858089064777534987165675024996259010652450651903572350578309545539331437828953931330700832195812884065312962728417737899485016834495765609894934313703407205236645771059984253362654084785865368566543896126249146638769659745758854345700703193203404762328685897638561368409641510005230763333529911133437512428938598465177637002541457522670191035034190701618027208375766974970589717728962453167393014683792433668009439053002646964451504964624836722449932486004568754615711786203031370671521901374798616900298085961380159478959767590860939901387812807607711162778415508352821668414143906033431900433198046669247977158249123915939079709473977312659160956625471495068482493181819436983040092166580651670234873335344431251548633407081455279391313946902999093784225824172439794274748951007943163271673922205281804182842905283466364526803532021064351095983986720937857241740934644161271642013906157709049497451514987118907771463332121575795786906251980236866372735458752771331189316589316444682750758448009182687367775819177135676561543906797427503207060743121359532109627323931928244932944136251002230904999122762304426983663839882798992280570698922660535681573773633766990736130777619706444113435831273209581404203919580959953708915195797046451889505623291975596206857017550873719308701399186459170484187414979209257709944677409779063336600094970661482070220970007480928538632686209261746121744831591813071900707843752401915587260521318046580406747102610191904771146769525983920252788939852596329837799004719975128554316835747863772082361811483077074926043731449986093797101583281008911229685531024694483350102890428385437909207307216176958447116629164402518168786636350780497118838156910131713493652174288732547140470328045286421694800840178819156738338572441725118661619553380414893420616053237494360669228862972415326897621004254599022698969895703655558839331729054497857369445111461712139778167128675948735602470520996488512983589669981287942685293857971332226149425171811226665373208542047067194930343413015492364718418210010489140452514096466594540789058835372816066006269246561849853906808485483044652082843259636990678009737921142559101538130535798033791221600622478928351430294566974226338659292578574797154462886435286573800636250519410527201753182334809624245524294116144374574625161145938764035874932671520506798453919912838261353663430440244167408509157693915125683303216718767108159384344399860348931974866987443700289743208561568416816750607266305096955761580280610582244273330366998179702946805442219397541567816178056759310625936576378412915789509766491959324149161953710794300114238710900052201811623571127525109820309139639714020908237665579387586326857057820833562046202542998117799074654810963394569501182024749346392110793740293871727435340720923977612566788093647676250893949837170484076926622557141413649519627495422325055780768275989029451889315437507923615612504808960550805165519480194468965243953134729606018341873976535332939099856718239377519298297641916533330272578076564944517881861129412277722593695007062610655684609405038659119028109249801950834718426339614429619214745269458810302974959085514398482946521469169128940943578123617100303242812497286459761363578531026403758949709762662122824148452950666389101277908667742944535096892659769741286762657097265975959957892262847299918734677906115671802879023081030202231777733475880879693863135113417598071120572891686475360303888304421977567517277229679837256776915788670804920758056467613704486661325817708701083484319002288344751594854024931782056414003100828091160521729263874208371081940735618017929891538611748742390851598229807986415727434981419426641810460660798260632776758831903935947442866178046272784135525602633439916389872416115152115408626327856678721328640219153754724406676950321965922168467352526889072757931542123068545623645769959957935242086408196573653893682063855295378838829972338630639195451419874649630359689997656339393529821781330967764550364013274639214987178935008139018299541318709036594417514012426971880756666091708257584137499800026356955684172550508091314624784276912959337504221430454181269678632991906354771341600339139880340161053706096783262961821087365734424215488641540813869845002504548048553506686360659814071313897277926471051795647996957496189904973820368769369260196388465699506781147753371150872588287643166790027435214758439117028593313337048043652412061403805690141848712709582342903213763761279398076475544726754265765350309335209273524934170505355619085841695880867533308374361552498668329699846299173122173364433946533930251904456090953336204274863448273397945427402729857906135393300633489463672224835064941414368314426157412313239447066808521596800299917341492416697167431239008593672026103919067256073045489592405262990742267668129763283990725112476142415326243745590541637547603967000766013855379911380366435858974309480077246586659573171365355540987193861363439037336983470062402555067005839708230484113571389884340501660303015466396107270939707602976945452411852508923459232531119290063012462727785601337871531248398675294494348500839670503612539628863744176065356697982750595991565203618346841543942599255599247510653573573964645314940122824047133976247250650830803583004180673718209670054020057862178326445731904700330081849408759173823395117657695534233244306686769255118686223844109110170360625040654834734592787829682741282251467369231177994654248216388181285020453404887929041112448769253451045340245995582739235704024941906703417813078470122014138562177915610258838865941044926201432995900965942251969536043822805414847625424301061566145921445641794276637411468666237559381130881298765861815522680713484819243284617525019707870593399048145135584725737060652849954795624001565194883916638311208545939251985932433656147921508551561761208380294842740417911604317923649496568483294077106583072212098367439660715295074563962559775427909227700609174246735157502853161627623523925605484359486986195942485168612503693676451931716685649854521751839124815536403522395423329264946733531579456241677960843877392219493016759866276194404046508377747307651239567922229307257753852924220771042543716306912259031981439570409427506352961762058345773321034458083248195737641573204156414548479315649163659815766239966691528092396030763078660511230907439815049790012471787465251149271829209825644721637781130494582512304422146565577534492506727474382945968856099398246305374126165811763066735415407999718368576489583657413712235194869314963170900766197722487407921834509170089850103692503524188575713848990057549855889971894580625632388541433894597799942625625868764968883798515210143415978305660255553598222508863170007318497750056631656457556441010379947942937395915459476444709751480676223384980746997497785405227568515757189506082102976954711740352819222474517419361694031549462120974594958561321467017607192179701692726330981314488760699450346526205273418171069645414188859683376448043713810669824202073413229807507384439152684623407613936356862207355157086088509645649022184584797007478693606536966423119990398458038645297846514226556115589123519492521242858538357920989699311115243850240769683255439981996591944501704924279711863518103450799676163297947706047156533012241835424881092229135272021011935313503189907275226786143548076734838519992881373451028025563640499759710802251930221369432611174756670319431432091062781606406917825223440466435939934872341166446831678555472628927407859721398856084821181524840077111829776420274820716860433860067375747294681695101726106380847579148903168496633385802039432151563696547015053287183687885449616221944960273067969955837573784266975675949220416893293501254841314642734654739412398603112475442018467777327711514163482552403704861936109912266232865390804367374587497749141216159221891619798051157442215173080657842313521213834560631882812508457966699473570539795962293798151746409071586313669062754304903428760381328285841434220694716249057400613206038171478305726175112905165630271108326992477318788707545476633946629913996457407753876183995627669139861748575294816394182033709221860728217832309364213051124843436417187341506710698458353713875500049353943548310992080935616694943973538846845298165548117263005983218390098377737268773720379879998886111659499578468863478402512896420498299343371732525282824124039202886968154585472625985366980276834424506873696880090960114143162045669181711623857580974370723490207315550975707053605668530791647241265072548176538984659131415400983704323265049214289572999964002579490832848059377436832934805006436507584334850554388977510886640235203869114359159564855497923713971236873807591731098336598339818778005301100094284168700128956829829845103599573162210801009778273246162780318739605454090691397946999079731948615511776823793950892091467704546844785557208689766226865720194578349619919023093518774484092169361792296059802207582061877965240141196886658933425691976528590697972890844115413193945744319537673109360432997641843565752066695929651025773679326128601607722974667105831756457360131533397957130892950956554194554823036919299923516820161947458862900546413884727027824451979034822930412469305428559702655230264119326818566216692207316095563685403265483007206230827837462785873815611747357884919058719161241272661799853978634954916791838669560172337071756827151953879722969464033010807375948103984544101427343280435388405257441748575667467180965065517169311375864189993851605471855861703016031149677112794188620433609575941183252879586194344029607473764204907878766320985941651107470257512231555657706095997521801748965669285113148878782385528431520410217171783871906982138039426365951837495162783377039554195572327374618292687687834882358251379263764120065169182989973776022380747756740578175889757206840275823807997595974630562097496825587542925863754524382470157092078954413796328068825556554503397928705084091829358505870556539433105953211497460065435900578034325865577389012136437343880361895681977337524746997956955514536449783860204029865368936378353780612613072272434832493236534723484176738685244540740271342006805387752999523884310485976147047352751826568950502333395161506541098717150750314336975519500998211102164942966343383200183458453607416307818942903482146780222026064145467917589437823017897964432389978071051842719507141951557316295795571978568641581464437694733187754260321064994469982112795872975549840608804226989871494994287151045053724215656924018965460963311742998699254147759412523872286197473836481677592826566719726793791055827929429106160772109790218589415147407739041603372458679360537187010404720518028407466203091932104008644120930263586213993649691542234665422835627879133266864575028305747504213932436547167131047815941965349816714103166660399849857676642226840685883141386876542577772734262953987009252113162028866654353231783213910027863340258867582159533876767581786966265159776277758174018565605973089504111052764898253720300294485690784905795631256581478192595607181529099099637766873162898506557687477566035595603112166092277678600772543179173303434365049773165168369453261535196477786363511019530939085403202064024505983014736542731873635010889407769412376455961509798365115587680762176125340094014667564844098488937105871708508461966799262511385867065980271057984189105898143505544159247979467964403809119801800212771322443984673358197338843744891677727725322142206371320604110301128975324811687632062791761856452409749428415933884144990855563185273362062872249224225127122658996320183422749000929199422677498275901614562383384345702581239847477486290716232278056302136941279939574463949431795863913591661819171224688658893506359619300913593602132462679654134983960212476903950801316405576705378494261470783367406961537849932669604932202587167689288810711108769634252159883233556706599220772145304170880772332739336330563928757671016239471155547218670140039487466528682186694407881952328150872851260889406149586714216305098411362484655585998309749377467052242008183323380494110860034854151347451133180696079377421347165842497081925450754991718373543524093017166820128668606661998299741011179594591680867536023685959722672916311634295588605774040489943476154041962982840169638029484137637795384475083819302927655694544046226051078588619550298895245065403562728496813436897560724654953457982845164981910824664015216471440593386646966080328105691942080279429940021569538684148317537892295750912424666856593859192775108740951120150651800958732076583040638442253945436544618961617145874103145890288779967335424652017332597377447402309860427033827026158839294955418935570664210953144176584129985443087799901517425830510859644401378650434016607949207963423962694980940906406091542269062575133851335167906118383176821984087900195355694840776871283483965196842743336917534561615701694030589100579519951333813602240696147837224415074744373099202092544677493752415951933520336562971447414471969636068165980415538597594839054246724742101406180480979911910805130154494285842602155121108693510021113351787808520638593660018256305214727897909602426692659812986575490029154909872297490273033173948321345623673562909192379555420359206515497029539673132418654766870214429278120499650919763052744839309507757364538088473895168146934741730138707399917684652737793180358090866774087811806712134261935373270362963119974326017514658809444300631523012418876336092374310688548743959245261916895413673072277788841927527217420520052094026430556972994652407245415009046659154084292861281893397365320648557847873290000072531030496755998515707359444942287550225000332935003897719025858107608979570984081884796283341493113650288746019910977351048385942158665911082124537568517707195600777318618421404743857397731321810442301585444507532746704624773055658220705805703390125748494395698370831864045483479903565927168606261560890596996522837281362309165901194663895705179510916108077119183216948024506098890670388503514364398315412935780611647972906788996927085896793577314417525702774788100544367227242501959338810874355332551726766256681387849191280570315360149362695853640343828344328748720302232966513397093751487059973835164233746970099012267543441599450788608667795371573996377930329649611205373732348405132383024795618041059256864047727640281744968897230883256443054369786507870716186310429349205148337990618210564094745207986798393367382640600839249661807081693496746257613821657448056200127344684053288240995891815402052299906768352415813592393043894511270792792873154151054051909132615197578106952472721506426330282183745134455743963448156257109194723927494689651698411911684583951000887420799686615608838807888543609233087368929144038494996776980452188128750606239813701726125216941911581089442984053047749723839154548817042964644343323575715168745436154326888658936063179792943828202261726498465960877421433921664247255759735531934944643522409470686554905976631306490133382875941725585259221960892181176152226484929288158061838429883565609396948007450176112299034233761137651387624235907703287569160325616485113138580230309037571953666355828739316221661380864473905123722298029796373843780062301415553314728327037844377361738600899846204026239026005150923281694524472313670196810991326690067357307786405475471462841641081488754957930406500257489795863131275294133222474053352725241632271710195974937519564614764050345458768715661639959884215782494517896285181408191925131930953119071625945059375513874953355404325245084909305982152154868530272678382350402323007410350497715522004762234400497679612662261137062825298251423929128705495450701617184689500514746229369298715347501152772871317676739903707973682398076134381341913715668027679683739698303402457666810019465525771067849219763422903084193390337452909609009828313430227300395972050986168497141335957948913355735266790172488131161103613978422957959163403107113303472075744941107660329035707338282326266728435070478370318312099142595822192019751911748198534599701263592522730572000440080554434491098195060382571943161298226523503365012834067496763776912341846876098824820364288011095911421755383690115507855335342301217909755343844061534507701221658064284152463398711807164139777308090464999348309166773756062665265759513347382448021670492115192951071296508178713707704246960266060988459379445212117616529948018012182301071957631351310156544161074361426661240140429575607051288726364651008156856488489678939006625890610748801394748715704273800442445504962493512939427338616680486893228559732605138167838527441171740889661499267027724335840199948997164711058203437863451103113713432226891560306856516930673331437787752567434967110369063867526268285115494815412903936446223388902300919545925325713245402502957490282748427319718725111851547005885184192733094385772387422851432894998514859148509414234705795836311051973657176751555298126918626403449292021724520450314186511283717201391537230879225080300308031896872019859247823407612922274685888251364359522030977410400275773334839557370782894079083929277979646674236305289809244335992551412404025287783871628026638253894994990235051363248291952086239096517253143597456055225515385255704546406454419992365974677325351262918642693785758435312110421037299348568738539994453242802380650157441951710532565585495048388354105877295517879180697653364054798950657704602710183758739952170710998973508255841736234372095352883473469146664035280237147462842804279272292484563497683986821708030005667191622295002864709906360410439919405232585423063973746633337467672519540524609465497904911457345355769862686959372436148895265578451101742738895365055886077854791454644468389926380359777579235786876771590367765957383728722924118828106810421151117989159505277613512638489507280795137338370399197980467581801494035653060436537497105710735397343022076830736404818202276816165686228177929029865975991030389724096056212083417582533533161335127355972650429219864814795541425330701379967535957648030212544081267640678041382761219694250451016427724492443408529767417190160681708829338963628910066289344008976663937954945023361223433253459691710544984420114062819992680370308586036458807893641799245994500568678441438097199491012039025366267447084022053273337308059852263113854103695720685534461862301322251986854338302225780303689361494837618308451958330058191965761388470635520495321208976950685227822018963031274830475148207378700631957654378596955588893733058239742205162324161609179834968091202649543190967378660810067382910019451072812560332743489892909173161520687463376768151438472852824729776983705291371662079300484179157660351936604857149241358996420735199285267009915543249001730492750744526179042249192357308342314674211689651206809025392186725700865951222499867870190801224823663007698148093285368697415225203431929856247792104640665517058462645369745045032649256967760685331468975702749294703021430151450636782351215043513156144321819140779059289203901894567436120334955665188129009082335135755495440214995589398703608787238226716094132461505536142814333699731943714694971722532027614660837546047519682695896681602106064073794154754842497378752091483539025760979965219832389205194037208856195701252802737594451563188810448978215070503950370076642184834758425150496059515610641694394308035082151555552796468959656871699073441339432332471238111171942617108518506353794056538847813534318461432891375472692139525729718630595508868643136991321536128429441063405578969196519257850659907283360960643643889183757606066919929411160262672550636459050048353319266081223159623660090935542311840357814009653845643064303373551576147312676227935197877525448970918422206984235072199391658601194215295530427493926548268626250586547710850075254985610592366565067732181315637280295590177376338849361059350965455570234037593178617692956819671919892818526732100453311403241908957653799688601631038974795665779519534675256232215116401888756861066025163881688667613747772927490635200767518997897204147345069572806429260101795178776532669764932557812020579800004392997150908238997256638619352008109519888289597185814757672046494995734412298134775600745051099982648452211324166992141507065605269805128236226237694229655355798778766775963946872268393055002049975577061180467818855539137844728113106667107555267746101573390198404400717565836749768851027664127247447701627499167683090083836270933492875484090800416647411448670058232819627872414187492976495942867156331469064824007867331831486284900548209833441386761798338667318577341848178540779723432400791518567023041315369794186279950159273895299742782255883725006491863395714188253531148694248984279176806118628009069780165335892516078240281439427472788627042914410520302097526533205430556839551781301299046065940657708915456172843025163459019552730257801505421247413345130999579945925441172872962655655932864654058946755465479528881984697858686999928610466155049978104205753244347293677328137434643264046550774140073597824279514711997704479289792594206285556636497300333767584092031346559071555006276165701419780877318000737466467013411049513468278892592819770064174993111202892808945083676064626084477775200694674902457492874139611053844422782056684617754664606512613848237829067050477099480979816080791718227534336886941597144675858230752774522742499336034866292590189806870117739604614730229750697653564308330272323778499212994274803819462922055349055184409125606985179945921812930073961944643842714526006641390347021284990065213450794883802881546563223881662745408690370414408915143453702878747464594926439706787457711418650730244183466595256726213894669933968660801288839101192649255278501449317605422595447009622765213576292120807378622485559765931210430999543769585258347053240799835303358963935193870374639059312556224265743253430417929978520320881879054037450029992960844507100324379573526415979742805495847036531634220485387462833902673745149003890135557721090454638126943936126099991115171759071782536900172296483073599001478290545811951943658959734796362927919664897904756023271710008845786923770819796862617485059450415922463942364863166290670002671219916125421246400652315277880737148617343086148373930908097011788378105982981889063288992006134310329138966918967650418791264893954278212985053266032241194311394838400344167786336889377974032551810819411803178063833167675408011428622851132251130192551845464064819726357655880221600621093047528348236571060056778023085046064507690259049253658362648998265247659029222346862026916285276536250427753555149735955491421244500836676591442065790315731535813836510805999178212406736636230267908072808029737487072037418543367048121093617138325562376985832569843021106756490279863832346215602239889271782731986744798890851015911070427705609347270417029604438447381634390889484509909238280992451610014591291813150871891883382458945356598659654520848832346508834369982143855975847277692451401373066644901832118286455298464167145277897199743677423474154557942741588395838041795863670429592007205848999515287503806025003311112776009813731502990980826152595955601908653760472014722557268044997821295580862617196294462615210202099825605737057377254909210458033607690014382441725380626480322311792778865327247988782543019372909170701254898054989491164837596426071328530456736257494077247627894413107442408163068116774161173027336194377434820388936757794477565017742907678043173340406856739375947025656238304620129034729444331091521430001788308147672441429976705079659822519910477006587767676478443729326736190299767958263176507622488189845040458983757762437885382449062449083683183568649495176513060376509634571665203941085077720234608198536240881232631630512510879897445903559061506337779508190355481953933289991065578709466754129678813400893274112259156514837381676035565268582498590144604889944816453958794024889052957257149748155645950041163643224887693502353720079293071387993954605181369581502107420036637604235994842896025906792830160714785590745406542870237225124858900259507210258036636680841255854337805999368925845348865426985986593525491220676371372408739553874890440576122814929004882855493649124949243975714540432167756597966651788536110327799797815060484738753758878790961397416156956254642015647406360659758290613952263258139360791242652793731253293341421384292980477346051911069869169596374325433695688184033614783275390049601842984480614748876013951808239172455713650807847947080228938446319221892570810236805111178401193192722194103056249858252663658006248429852009262910187052092762897162120577900001322902690175062864340168943863091618985137906758886809534740845970002374347007695366287615026016524681715347908730464850825527330978100171653642758038538015423571945496232995394385821583250246941298961354718762316321743263418457859769839508097150790144321705622882693021981189509732143767172675753391618258130550754051212223693800037942321063305437133518171569965481054808296372360318045509001139858286729948157512597141619582628544772482436755788114947007537214394905933123063999898195440302260807879020623407600224318448899905418686748485308240253623247956240793397976266036297118034268089641844932546330491796911061376359442230366573907567070930658849144650110141488620595813487906664471197795072921099349480414926265136400282081083998226202763805674410730278014638599143444994986274599531145603337363028099117173276270672264159191491363526543840571946766736674958360210424495146486682605218575189507672290924371021481888399469768025287013253879815972059787405617270331033066318821638528954243139884988421922426882394153713656925181551953501116566611880792628404646648778768926676671022920603124247044944481982681854653068810533132406801237232311084724679811774857192559210662221583729244917236790204222343179004181012898101602027058022158964792800073923970064006795848055905741967330225998605264943885110380410085967797617771626989789477430416823248214934348119923756515775818552104665418884181264671131231826784288692288397345058645760590081543721866999987060978555058403880865707965667627192337287215576798697915485471784216490443178330267362781013605273921458522632156252372146057278330000970530931412387411269947691173090410633457672801751618455606204497571553726916122982611893507594045522637720933395607360624688188220066429833101088028749470427795204347325912791430470772367221592880327782407229532244149758552244293060893068239848664926443891111466313262038077932943188575347153640594275485620581874476642673537656264143151323128880384029961102621558589140924191892311936021776594982239703696500374119662248109320395091182837296829519037266562149103843223637304750894200535481174439877880001711755724986638253976882909197438687982757726931176960252734333744307799073948810649416120204782339557852578694825948398420545422747899438115532415980089381558100495145837863391865232267170796701009349125854839723597936279768126407019586052141327746236235831465410698656679843331523383044721882052276335130499582164870723459983525411566454292196491619154290066996588667204789595569755430076958936038840067538701015284861401493967251241084683626634312204326265520699339815959006382606461669344540635138846773405825551995212180297855715775299137326721520121585131434523936297013631741561273376139226728182279807446416528368626546492333414914184054505463455508126719910442827722757519202870935641889703345242126102824127320227678686032230542313955396217971634346761613174550382603983128111949243430621628457247549657689111520184213363535571554724379511635202172517324958499620870873165176912142161965302764942497568144070943803384166572115358048658242631993650175733376067614240115950771591292676638719682715812251809212849008173349992279525401042015134957735802105300277598692043118550179031454433488646273633699042447445004801940123843845750235523328508333077633296231563324779873308826365732519470427450447136655598537450248866941909424957167990680766053828938623697200125970318631118132341215672846744314731906242843375957429032130453804629601897564676891095545339724205340896298503939117368831099682103649659918329623902751731118611032663805714087664862547553272529582804860292197327536449055756798337287817976158413164725795093559883721906108233952444271954242349408513122488052913492960075264768058119126357722568151758463380932913404511440706323308892548881118498389028131387457248766867951572352689412629581449377357218315462232998903740196127387716147462285759069465065440945645302966540918446627756701389856305179436897977622088193829861609555490012226781132785357800415226235245549670781389355276343284102918725332059303032659976291475367359103444150950716226974545067923129568692196570330115109452372700476584440614635344406203294941258074929150303811436935008174470827722752537489743794022247105147152304750406686644413131603418157288990595471261045072332276322746190148090960852256657146144051177682126302206877208533827720686934616133643161282565694455611039578180732984646811979102449217915066844978278312155093552294693073613056248768606453343584776424088739197595886130781088454523116766123197177244745875746638256278467293613217553133266912303705725512690506236409590794581046703195436275436481048852782406020567124761727045318304713965857230189150849138116700616866723502962690098312254883547333217155244418488931671507226378683884229966214620153991515698520516662050701802409954329124056313049935649976967215464118549009806898707963851874461203952018908945662413052672593806151455447071439027474245148529895183446877798071857674705604394548527479607431958025362120506453423432954552161114782229449107940147450450368821658092093102291506086474584274672690564773717262114566438593445763148346139426818437868398926260886435995795686230498296051756721940974369943235856871260886535725300594806965501400334142826776657834577361686192092951999899630174007388797496917286881228381492254185966108809880807112771601936107793334816118802660993559813013964768769898130073307518125774519967083041224326176791167524081311201242384484636778916925949556718935645256701425528706606801537573335675226833851762966693124299076633987043522753954036070417299460453518748835934596440856886426295355266404264869398077162252156623445601318757126780181492252691543435138855049440133825231341951082949427439681397638986804605934717220710475674073917253246540540753785825093830231781447516119201964893440181665953637286217758876633446995639352449707641343011016508430725514927811612941818538578460942471900099768379288642929402255981753986062180677288526716072912360203388250548270373328177347589609596269307062963706583569596725346908151883823445627962033751233318159888073257009734734591567222654441680034700661527241973974175305387265038657338123564810961952514342259010617788299314281332102287257314893809121712726849449883213703135063910475706636118950438645496582058083971463052333775626420254736399698069494597276421805226951142881402884015069895337658073314368660491036545453631982028337836703647687514832674121711746591739594060653801879817356174514526192721706594781491061607885448842708845767312229118167576906154684592848938987221150710817731316797052360571285264890170277988265603603642594610065431251528431812106914812451484831998474568820012472525771290938952743287430830622654922808818622400979639738989081716217468708196422089991932951634169266509483686189374391157138031555842651579524338838066487544550978842435166577161634368260514444330939819249416670349552287993593458713499696488614683681179095611948140850345929292528654781068481578332835818361561308108391429720740832324345394318360294174283076250042153936645822263510936892054926440924253625930439152976192174259369660027991187914315502317540787836496334982873233730134509207139663585134723663605008069054870351739777066256500278804047308134258738433664409469070080558077133793857309542871060242866230687559270329209484458578790883310301398133130443526505542326808781894384345757574091025846606358984106004760440239667077790030760026075357935575705724627362080548639176124532260993253280883028505157074745904533831161231244082928007104922777520459587937971680116881950697822586046426545286256510689652795216851248608334794728525690222163776718036525896705738378132664531161463457963378547425728868007205049701742178498254765309230968956966255051628508537708409844208308773351748060222108554787261393726279910764265777478586227855497392113981093555634757384416149190932292832250124324022418609288523266434093504036582491183056073481902309477738495825293221323463318701445918057276923280084378916669445748422911182985269593225654182290003608434416281046215341517326282799178398016947321357530278963212873846626508455486717725545165123964038890197672388341075043856887630284935893411945176156418745803313648119160487404555199522686227282577947877509709050765843794918815242655489381200376226412574390346371049195038600312460272777782293479595135713319648660561227368519428936989474926997490054859307405980738536841495384604752448388952420178806959350071591988450267642112885165555880247939630267424743052201708700243039836108086130684547250521397827440584441878192566950171379888353523588529746071710777963267447750729277287149150106563947091780460954024543187514358450782820225147285820820251686062923700486952405732781654793396770674964520066050594883375333418336384283967671496309819061080778792733183270464109295089155736195591929681587694162347061076978120841731904152707088552848033375194741330242790059732839048301200087161783263327346152098224268152823024597496569825261284200013667543671504021612718446212024473182724830267985298975105348388807788763386570514841986642083243111574083432829372676136449339623972277235632327888900973821012044355501502831326104840538415550032971581129825602868110918274694252199616598886179543930710230588636568323201797406556088583887666420684062826918094643388592772212689586321609567802376345998402600400179841686173076809633482119953168840262687003181796985253134656507584019743474051540037019878510606087459944669501454035257003154633431816523119811027008320099381946096157408119121673807689815059910524106719147468375666271260072969272822686565365246997617286025287726271640344125577393506273522374772250014287765897217988093319245907440227980569021426439425481086168706834781625217385057649107268393787014876998215550931416561859524500710257567262825951779284056288297000115464198655953525449968345439919772753675776002110830150881819854147376943459386561069320736797076471298493551694546652267090472942955083615724028048200582573918375295252673650649645328205450827657604678869763297037444556377563785610846727177075808255149645013692166177857654328415028118350315911240444618033661990800521360880357385128406547882769058326681835881607001362946695350710316558569704192778600593507855158952912338204630492181449405205349971310649476157860440032088560288920696153448602331550942690470289809777935378857964955002031765046276517405715406170605568105134056391604287655944926063873322899971410839137121503436133645142259986424829208305648589758160325638312816138096000790893573495731088963146240952801406819093123999898817717638985556218446780301693463530903059279623424021064492948310208506458685594333125395139524838688898062346679486890650903137855452250728662262683870750011352660291818955209926296756920484594326247693852973126710506416863950527379010194329269452764890478789076101263701367943697162134668881418919933639586018003507523118803727252572896666071662171424408019834788470121453447285991555577512065832791400531757815388568471286802773263857857441328392042729527926504880137401784521928995686186829357221339510448464882821735899576651296472563633597571214587783334957251546139860164745399964853976931167328737305519025888352383113578799168019033265227148164217325067043421386099355530931940995602627591368697415261669351800733010073347712770141982593018746435630965905683456340475293323748100923739616575013827683176358962432815247288297789361046954391550350282655915773984763264309029168743432801592361729415367361713300290173713184431270496886756112989693265296594465499667471535768696660558296310995106175792717578161573125856285897128276426779171689316580005721828235775000405956704409109666735779659605250605066683363919020497571063448723449863486714146678229714570703309269151236797430673875819681212986427235416426980698879790931784518059159901930243208904155530493648654898714577652218689894805439176308464525900727523862923607472070158547075540521099650969856640964372287015288533923562639273120465592628647884028387205892498913620141401164387019543641349086337928128164799463794627588889088646470966993849937491719882603931726929203942777681983683313383799583742768183621667987121421190501198920878193839377648862844948556180500608907765075158629277019592599324426192732697272823495911701530980436764138562625573321748096380286868504313937916168857634951731734859223470560443030172884025800753908911364147726027748745994192509770508698070936410551204321934903495578994074185271308762711888243078320238190300769074220833279777961813706633730432712975389193500517891619681353734042655631189602586400670148317603541154297223781992199556023858024503661467838605799056986863555406479548954720405639433339050649679126748131114051073250154080561646590080631515922117440237886515783921898294291755082767093268942903154938069984379333338691105277619859245256477895878482052188521414090323051816901214574000009966442659876813595238437727895869528100085711256186257365201598182562020216357308379209243078670007961373691021915105475735705150114643389612838724254673005051770323442384123571869697410805933505837712707198694359950796304714577450582336507964044785917607165988886808265296963837809706113313717750364278013101079515061628542206320344628466326332745483154440394667243133116032508249449050533238410324934639220218707275933492912672586293348099325318237472392541682113405819999541327517016320636278222271386691383348995336712136091150015173132961707402084824416264549590498444112954551292544778518221199109403287811888690571468617712886053979969818557792215539256717873481631609224827763126606847458353660351597799098967695958557320361292284432925853647979609412054158932642949070141158929111517475146758281987892607050622094077745207466321706415585266170788542750092579516075595593586947342495909558132220441256679434677535044765326501971237373175713833299270897407555978851283513045984552848837255053489638239935222169298830219801658596549312480683722635593267928851785450284402277438542102282490325780200694850277162127665806407460442951754134919521641600726850650926055337896947723965790504615650315545920837999411984047653281131765680767229529044545927040546403015287772775804810676349293171340851049207675359972862966146157420220566537646982643170513804734069779872530883891149438572337401186075160232602027764896907698543365147308227433882738695101099833670024128727413565503727405947236565447771399796685135931621234337544851903148567345541814753513518242417209118014685847208000730862144747606523813023525783587455301825281717171171015718862566712633423725220570050406098467854483788176358108948533115971540207042303614525820590385294533054215525297530558453819167532187528598516214901327719024316381694861068173772189029429012572557985990684019686316410212246831985853112323567481945936102796550518939314502487518074948177301109341947016827082389900261470702361643877766080942041049054468635485493122305933781024330895127082273531440571655947110323005705951169588095477233931840339027767987911592480395689850226115275444158320618765140222224029502054559218094927045766933472596857623787924529781560787343211974293958396751953897593814876988250625385358777662724507546902465810155429989048070089258311713170637950445268840612738875901584142654170475607523030375143208733562082592850178264308775160926789820001390613505871376592462332190404440055410942398267905897885139689547254922622137334991178564280498375609668141840048848730123001296710747784360661237285418203866476349827447715198814305491911669585617410233435433061542496201170954475619736192403103667583443494644378941368106444501687764504945634650421272848731047695308709883688646249809554494260241871226579845785739308975392230739226143943963612127146941410229439763311559861076503823370849856086741013044734018270146996320532480321622612198722761063082967359523544105278378892129976177519117764465881608000653371191361296724344282269125266390925412447450210926065513724173419891767557150588596357598793490197538783563658367697267863568522582833163097474123481253074073733073609998194262287404434549650747294904633417965646870617383984091293859352818225975882143718052913295447657845860573539077705255793937971890446253320489638960187738469072011853132503077041069244186558093130464544826576035620897490872484742374228448213547948834652793400540354495932568472177740979905736395866975286081479810254140777498243821767156774786614116483981123794791015664358048572783671091600862419885755080132281753843595684111703726561147141239651878899697255163722793292460284405767699251361815879579964427553237302394204383780437233958958654624999575196742575521197581872950935410675515939829373521611154333013101218397606197393639476252192033417790399006033197368283958253244627168591687355022612585968559972933286348624787364150024131118383245202231890129755644954732795227621021239612213463903158915659464565170028931151115838995840891206796472853033188981376388587555107786886133363310754707022741418500362131310361840406953168805178895472784920094230420492712867131644669700850727102018463616874856588970410659555414626982879264178083593342725702652032180950707546744984594470135607865478451604595391069748769298974155523133964422645501366382166517787242630974178641994515224617209757080825005108058544470468982995529324944355070541728582642914040967145656221243709004095792166706511165008760646071273762433734212149082582468986038099644176184618689572564502735402238330955425104263133356752324019357512695127790299018595816255206052521411701352429193354046859210129414428254516897691209514436280639457148833982708816842955582352399731139179320095324951789456655108842397799318241086990011684178564668651721746650762843567633742156096164220261201612394682596404506621745643494583273780666610519752481871694062466609695309599806955267300116765997688403728673087740144661789276382246666333464390095509747252303942650540425308932280146775346431203610557794395524480251412231848215988262028259644259967619867396570658675918183077336559266491516066778791051898706158876319019072007999420011210607273526635817597141241824062366925376555868441202675680559817657256665332070202064686575511021574253755022247021517925993343302541345605489426826333314549024487971506727720282217255867715657878582050820252516940114359515637451652608574994595025434389527768003520264717409086892423514519089400530971851647234523173506926172668878267171063688173881578897796060631452183858778693708734540094966693003360135869026540427097270623600492292296081310863820623632371577467779415797402484532798082450639053134742445006798450835594480744769945415906439499475775872651671793542742497006319636964300292292105200671567613966611866628297293707079875606803365449055456174068804328975947443342155278698562973267576655053715029185137102846357706980827329232531502006911852427392874443494647938213496398006129780887756245049988455372403877702348309998608366999859756737106958886271914691941912732072570723773540909339666469882967037862462373727420973226738742059575980803876288431602697568771412581404183550497490594915799545865238939194742639325151091858556902894393469505573066259692265689160715818537236650471672940961573025352126600539121701451300622014702523493475260476741639590659257143976196544752993213729694867219520214964209756903685163739345305181783466573867095348795181729514491253484081074026569849939436800822125995597654213257352321038454869578436312112594619326722053090046149457050825276388969813510186661165397142404647174358655196291359358309791076679204593365410608538223802648413571872993380233429856651508502649340352807197155910794745390065517046281762467044558322562717521852255957354599497783140787677153792536566105478976853462743996130611415112132548466122660618788735716028123226747181921528888523263669210346564873161965422985362182045726235421477498978612133979025337473446140068063972589239787944085099937220744000908744807063865971024146227630512290620085496190713583799561482945690351035198342287315755934262484661615189454945582022679624435043712298667900943181569004169208839726031268939689566193121833197827842142259055221401751680376956490743389418715932175684929262354393738598185338071320516816309514199459009694979363545894808328547660132882941444225114449681992730153750546645843363598289364660036578319172432850390018182148487616941457628961538382188701890863412093856427485936874149446875827103451741492004319567298678413978884786649045991569612881913618107480949910415708977401262815101242861452865802981066090455250499385987919041976120841978698760392527759782707450113483061035018278792965991362851752723479032019734473147292709622215939424347814352262747627307677104696840017100224038852950672410051667635212376481720052110679446599562233491873987483954834823498968805230934707587477385232877924798127896917631344517933729971274456248609576673293825568186446636406996989126898126005869070083209760165167026819637887897604890997230557171338375464999624068723855694875068938295763258938024541153299157039796422302399545609544464111391361006881586731846878265101696570049228345825139404655153170197076456238618238807937131665209078625310811533626689427061220107218041376448324303287477314120240683129201452326119540372701519078486970152181438104354441617173413916318485654737668111070220451081820922128072304433292912463824433630174338482858423379621232347711779389561668723780924251908129602793642419362818497894099020898379893583003242139045626712673457281618636658930624801460950559773473545547501396021732165400967206662905839818061316886700381870593781063857743678633372059557518427694758327773759194631398427243936334188376310834644995756352932716750417168969882165064807624518206250028262449568104264303200387917118195291985312729367041704796315838032793654739398572085571920350866575514020042147702348303894269032124325002588599108839418116497721384616412941855176171449142691293003597079831727614858632501618285460862041791448539282064000545434559730415821169028598568298410504602861296508328508032996786510400956486648671590337193346771943508910657314906780395638888566361201600508059217451379246327838665734472862863030077297595047516604545502407028830628040351382168525730634149438706851595639593652681449696895614564386488049450434990225567116629963924022144099768948708756714323903551413595210372444418463079854168219045043389657246402142570449535626454953662256500666967608460937064825127434811013467273425456479755805739750593124835487637158005602847134660108106254662722333463733430050096210519463672694904787737491240542069988757974221588879683851773214062098711827743157624181718478692679004155875071214336010854001360436143232895302095723593206714156110714319271992678558574157594257706146494556099955240100193058897292726685900152874875466168709224561313318513060175551312607943344023092295379073766331225859904209009467226702598707992776159900009317766531615288044162269427921689762984424627086362210910933759848947170683950956349697338558358260813169567621574933325470773488322048007903394362310808579052949172442306901130111365717413672920313058785551050396310945350309522183127386099095794188764345422171741633418986363999661149871577812195464079775575888464039370771934690870889655369124000306500968949198109100529774388490631250902737856046776237721578555870445997612116416145716077093607546517425995325934710757754435027505367313413114215152323060993839253691385884584655833003289817837400818187507152308062003130045402112608687745282108017140802090250193029041908358993291865938452890400184964371422767592128913492688625668113775493673103222674200933922950328605150189931727102671701377377747806819800920402807786005545214875755294099028732481940136108194281904706891140221425269741810465351455050838822651391945307554897808075542445696932196711005718521638648159809872679331664390265225713819130934736312569789201105396092428236455917047728534181140263932194570340601795388561843629589460649945644568845342602786051263125217008258819382970304457385544133883603080652857032846512716852124442381834142017783679437013947909311434814254859085530727882948450869499354859854127044459615954660370438862007144661875090130426556590695585728080074367020681697218351782742872128902008090696340037770891451901283937746713397396192638653047706793395605192705106723310309545779961252059096069452429750630455911318666948313642589452443235754979677412397647946688159576417355686983614327317002903251618252270030159492806177051119258911537129124482375524571696472676539447486109952415195614705969887214101515802339012397610830882199117404322356008911792084863059073388029852774767535322551612428367376979180054434711723233452009124690800216455917952417426782938515318930690929326615242566058188944196743434560227097273603426626632933324601470604809846778708159393542821003428078125408106755931069647392948262847057518124302884132653959725874119645501633325305025383502914686146161747856213557454385599855368093463342181359924918575130258547603703012881760936433684078290466439790742606578898750702329364093102214121746716513802406997054349858202349025939888642481855526553925237195681271750701842124791424929017032147007243357015970121197448700552340502077325700280387993297047543119931236570682807935238177453920534328898895257299242761304545427194317333299064997025898764184891676828540830611046209341221719867131576864161549942765384099159560690953138315503090920169456133454175784758520633312043580175872093948554165508691518068779796238225215534250322138840544187304695997687703050789524377319416911599888205225049978294065947534576511591007871639854156134567430809161131379633369817885586717413414135624336005447938745116496284313986194980906009398323090090581682947226257215013537238879393781220863079902350973020512392244563289022824925630413749658558184865137308493414924357086848551351597999025032461060202722909388853802613631139399542461648780182793753662504707006914739733170690468496031510552397351757320392674153910273189676771200906388728885368699332052075568758375636033475087415644176010816673029198608400088033630287086900996817485848932184601087058586682486371844389227665524576794164043883183242349829903765408347689537703220186680397101071439047386814021605267569248472784683431609984296552720748579837217695978775669658167622655142631388515000294637781009953999484287585441946943472649341651277938308626649058850081322768050075865491784512927492631282089022021532606498589990953615345428145666498846533354757620512792240078403065881793173496913854190307928714116189047357660246508018393353891710631101272866671634982962423289411483310313279065817329196766494850076768129269935387992768214746059295274887499303726259792961665658778639248638952415117432948621775205417617569093108558889684734942093236655697713176814012501242268464822287504292318369135795969329979172499518621868441296078646960289821200589293098838773815520117565114199952797094114378817494496821374286015622039179923668600485443458907853361191030273780898933525247553523084382458677566219560449284796299467927721354358929881880217667833747715123657426509442778788043350574747406237802259008494111884213829244582144873346591901591205179054776770371230424917211626591339903762208328444273876704783741454723218794233124360758848888277150458615435109390026436016829928031975068093664706662032055524163102898450382546211595787647567302752686929159669618549619044404044662199537289824109617707988366088887654648126634538353278450525419861833767864615055039379026068192114197238414612864245843323529032223609052777550047122985122950344628839055699759817206038916112380601313181051224943283595773306386309259851103472239464574086266531490001290366504156968191023297969769847290863229867362598578480167622526510811201633549021547144293743114197563458656015718299144811861268771834006238785484379786517856829124329539881416237544856686307737661037463235868213275665314854464506820125484535927360936186264766196231991833539147317185822298570171116719811432109085443425099503176679419544859729977895856841240078772661862914416639869008011219683133650969038860766012846159679783292588034904206339882720790699280679033647377681740600058441543858155577277229564975256864386894926154928924228110345016120281478621350616507463182464736997518820209643587802759464918366297821319477141145216382112747785852107367659239130608689985062592111415288971932787013782542713427563429480780133165976264287246002730709459011096433984874585556974092459808988543545431305366477491988150689289768777905239054268193435773863444151334186275763631033092219595620321529096161115368573985024605864701051667709323210306490109121855514008021660147362546999075778934166792448079896732417999250357972806563786242142984341972501788435717694957699239847452513712460184706931481550829969896117205821719110541676653243309567349995153203187845232576132862315817521988296302098228749431147653603993726106635495077815818858030555054266245179384251084726277484094162554341235438326094195159094716809305261858065381049450977858808221410763563947558090577247153072281948735583534654357518873551240091872464167043470873715849315882154843454493042808201465535146952280847830535719695273753237916851949729653135404294904660478288559185148276323948995379556524920114896939445150572700175590680499904065003947364242050546713005019226259136423473958794964703938493641909809853051219162155837004557731041966266250778351244107762562528573898858966021412834895607409325465118135324358760409537552121564336498604710628026520277097731951553539643675705115116692892979220109716562385963251817561593240977312253453310608071791150507230271714827180146896323782989112061027652717898816334541751444147306436543035173162130848676403691437684432001655598776687330187163453401141713568907183170271064144521058494882991153116497612678490939734810685490039497874035632060503073627357032415968708962064371706543639729046912221671642788853534337211583147198240230567161665776917017820475290577344397041284734954520896018554215313628071974078632123165397830129752601273112641440742190610669550525986681355149508384034723103687031255513725938458514992700501327593462777440101118628425525681632980861498878066552975426086042416068298307338181231161496917931406077720247420542528252231077270598641261194141731441168408727921530395179437932503895035037951699792518396227901253204631610971698139706145232722627936600708627139445775879642622991449792254520996097666447707699215361368602523811891922786914548471455312896040030053736331819603329414068654374220773403004603385896262262491435240745645704922504499349336029393087529334927312960091709522486099553748271054785916100513839204764478879768363884657133050932916582064016946942575202960055661957801927674293456677729155953699020610698986542955378559879910619070455826202385215432730319403772987184519126951494320762869532595171151007777683282027496901717925689854567595650741751212876239672473695167419919503611004946799135528840226940093183819564608813169211264965623741383168240623908705567153973971432318196729323968926351431492531224543628906244160658539676882357676474436398014057261425982234256107424316162548863671812353286877819050593006940751292134844398779257762726963544537130722468614513156314962102013883859371440188947792152927765845437734551634389337198873846881110548672335693279400544092121960934349067598389755452480505452080049815274920074787739628419996506533128269618867704334806369178079964625685724551962882319794874896557702147964289452151288336015875191595381037085063979729973568969058400778842970899260848457035518315790089034863718487541668538323460863919827808786123970194710265293188573721480904670776247401432168250261011266761374217089813675123108319176416693486998489202918027785135581501006674431059734383394473556772511783645804646461545117911035124093498491855159386689266593813696113035402406729896121976242710932538586944635942300254175332156565725024360330388461393299393786595927967896404458804607815305947751015115366245441889832989235777566093147716161282180466920613445979929367936650242017966692289797537307364481889831466824555230732125758153503948812726411504231721548244356124418252883500358033278670681387950462790687049011671237607164333985559130240342999861417747169267286880326625575210884784216774529591024550676930304179137524576880252358980974864502464188766637539555366263591538164059621982523587096641377312873933676579012003007305918409633820823033208298953534936324261402901484616291861876522411105377695269456121204618707431234195021931448323638308820027566298684307841806562123609095950078465033641754808098502135473394924775849530454811370207402632998258074096825612791634858851659144758879902921372448472706446119099236664757521149836486586703211095645471578791509217470262724373369697486280741725818514182208355170527063485096004044306843663516306182643746606457513265706074520503721120151516993491127839293391192223962543765447086105664574272556923146518553525426001160832167879442977942496273381357686446694333600035241446649007679870013156026349204756350349524791980428222218527805956930524990249954430939269243612764382468611426819781808350205612543372514508692803650535029843262285550604260319931512793874117318621879698699763447750388690980683604044574372286288057094291917693394898876580983873797269232235966233859693496512337434747699143631867782701148221401664754736561039237275041748176903753936733403246753415362773011550102093427218368909415591086440001909653015395410120690125060393226990181154782950228203223329400518386836450805131954814372720806437531932229698912349248103851284361756020740222655828508511946994884251258886969145458159206565487791233754270709845174793703995690267626201407506480275032723806567059132170827698609186429447506893768382664544559548308948604322257457938002850318627657940696147316281356917444159802799815435592406811490668094670992984574598701548490875924605374229064037360446774285406015761705325875571335683816574071264259324805169137044773568371830712081393035282142944475284234028975225917921516074010804236542628571097486446676357144082072400814533816092326203527981469996749572323657826733215109111802263693991601814712297202380475748395356455319694540800226480342555268090575820611244470175771605826925701851441394468849053607204361009675721280272405209240702361060688187138247651636174261913397763456138318136501256091104766318337722872063736159545647237414747974898359351816265143766971200341355349894683708489379707385024760009911586617429916170723378489353117717077152395776740308339314230502729263063108104270565130286484662539202988532879631677623038229937247272388041187544769765252350782950561525539475940582478242180671858245704699407739498472066385620557323344567434566045846783774213692258907310185599584106883462250352353728534963319528370625094250743576997497027094055747046645219762536141796662444272667694189303906676342859230048152445224261681133173758632783786881621047591537258975966869644976142248371194374904086560255007219893502650158163467368846512877064554251661078288560318969998871266451468410214402319771058241497970439246126604419241140601468338116122742268315690541247152897991464509522966270856875012701926725596500194500691612906696802810447518194292025511547494248704402631188754574476100184791278186581739976927180810007289603084898604618682819856309424121676316136237767714056231946113383280742418495053461686110194604382531930977109152591736005534399731333135849501017289547184952317906566250985046174665577863148875458623872026102194823242877652986385229004252619718067042541172562236071642639707822048598594167952360852817687342773958830828691056331069486623609543505565751216514943726300699722505678302211912865501271465487084140225223153149223497227991353773065966959998750399937809447331906601103781235090389018232562430634496575814744527861854559736247006319403745213472898121526972478109128556522537963473738871671260329930685488860197364027169827259109531924076555588844508157855245841112044490290390695423912848842519042245588371170888162750746147976246189235606500817934947717429070123897987807826051352689926894698419053814626163305900244704715876550365950178939076581413767687372513056774981449385392942166782820255779041732656058322935494834190658600928961029646683578155296421392104059327595406060943826670317269638320413335494679697700418397854342046766321555194844828832254976530807859106030120865055406042113390401326884294830908988458874302308227993023592854783522505718491063812864764548455171809907731790147058800482920620150442067845397717741908020153668160752550314373827952670837612432049105623462576896289194352666108980139562450209518150431998234087432113171069061682401787111226713659666397920101981704274586664036897732827327834824354272650977160431804192252309441298884469731083473896367381090190899526718997193921451058110812718546816370155095825516707124064299341476670161150355441441194041958291773485107112125662979098619999996540849517043900368922001042267078694579723196923585063115708693845969618420301450551502590120510826393703997436549880619703741739219144469416514106636079456974844934847539039281386745821183010667515431840484689692468261959399861571628430139644231095482686990322371644747157274936323184407429819539857799561475922984017440485153041766797849006369942693660002844979797785554026051121305234955737062675825799714395991788544988331066551623665856123359253271839646618237644829731889332984235825957793217130141217875919415974402076397295715318923688230819364762067147790956749070154985003751346191143098492770770798138818879959480224164865802702510746794094352044953103856776649587931702398251039066021471108615831162126071865990081911399381598101920698000241127350474628896671903790748563321428342740092168205493805627071218082873092264983066575219118534647501850135320606417641227128460558544761739453056560746356686442454462741648375569051412067351406096305126451667489406638299294383654360746506143950704968071826849163709545576424848386926818411912110924906610206884689715076660327450577773343041627637106097519790330632956817842597464262878940878385168455964410085119530978589644726690699998440632186762055303418051862939174406365332926189220856314319780999680657067623053407591615808200824362073932301142238256300716736582771093991522624799325280011454563312695691324690032873899391133992497324480045876587713682148976616097269938257076511586663107210828497049649365524129224044583191702848898207178884854389814512916675879078384962096048603692963291475594980370318139786797552893736137354696276157766296220771905122829174297094723387017653443099578431063479542353488058881231657678707058508246500048324511067253389916231431901305221543679126128662126202525285217912171349692406692095581130069997949230374601284527711387700629707699711438037455115057984111004434208922444051637714507618625054223567039996225197559236773789874643199570161360532291164093609531373490049969012995668979555332711001385841753033461134021084582654751012860004887609682955219284748870722926282904573311985604399900510484707663102785911891124646255931909842198789269785184378679504406465847572281723156769562991757576116072033804652994875879330654487129164307524196509275793462442419626650689799486103279273765620052305756620792920167880496283871511510033649592719187955925875040744753907196864979388197621845175826254789534385133481989809513250776516032189367643935789874257182383956741818445356995453150082542133306517010308732535611610693267909309202869922372785468521701628067475994913914993704927888567167506237662414914706279647071773520852781017167335998848281371796097777952941722426332318518355317167332029976303241877644623541759688590251447822207258221934007218347777608119640621380414982008082501255000941766539288008617917781449591615434577247406519542133708763636682423973656328189532210831624585975166149030189591823199426329955963185619311559853962760549639977759717446047517551697607483562759819357200082297757428277619802497403878260857717125856049294600640610936731278999492691310345764588448614990440208426302703669579307438588443140609014361706015410377588673856929793776645755861239978935400010928574449580222935467498754378309709514101261834854838480430241381337637000454392225853714037714479457358529388458142893720019798801308454781892628122220191204628353506938014819743955584677564588334496279172636082592761124865920059989832184060109355402376630907822491629213847591024241141382835251602625353264435600570070840451193106652690687989966771893249269469688345264273090749863838772405283366781231370455336979991957829232134682137696312863543658225069243913089568686769743433408444751908668832572786176711612207847218246948932532339566698857067024691758606989056945060356554952953970519099492885848945584654061082743735606094125813712294849204474005805187302300883740866929461498442748676303167772462752402015402800923415276891706235714025378508790372935560072864595428497327769753982087961076731134800698144794254862088170466743965487214385451904279579068136043166348631745694327734852881015985109045052789531469123475508715627103917239578792875976672215167624262901074540331212909101122408326517693204979603234477416252168222097499159489203371376609450830034334820944250251080004208805754692212049324914127403429149124538021483411683675384194160195388927703325746632749339705687372544875506221412737504640649213672165369431114748332224980621548316159465443908989830964153306958486278581514770351522551461015648556801551451579171818206935769917187560879264686555598801663358261869069835490808352983928611931266539140271238235531596038157786098682416784288288890693542609510793240038698063112279881719911286005237704529594564667943311292991163102690449992080672471691812199441467232776136292296289496335482858224848603562799520842241059144483833519865217233147801642443246680597736859537741343006655165146174903532425119007024957602473505469537643353252384938804584744227983239392758580595390239689382377128329338553787304844239078370583667419665706616550053664516820237450391074911767445963207594520495467434164634611797845336371443010390225650827191102361593236957831240809320998895155122204470251952176890920045776129938899316726391654507353710237411179746774258922953441902229758884688742839679528443198320318470711194684684141244418674970508561815890216317198775898952577134946204731898319068493505905674866560663614941618728148497665304222224413756517627743684453619589500060249813004345098771376246327535562290225970044769356938671757522373733676390238780750847899930466616752568908534675524469403289701167090970019534392103329700631964267401057700803514882977179802089995115543506977191831292101429500041254736983969009262575761741821728545141809026141793758628998405578182986921648866986631102776760131487057459553406360221049384537108679875355230041508447555432838234534050516763673773443574035676936053277563977943001565539664431729241428222037265938281449456457411895825739676360740387567846891913411645736552684482319507168620999899185474081674769652645935244720501915777011345431896086662983278007695170464937418397624783370979143852241854749035997779273001856350306941751766989882833792138425106714026450584079509343179634434521381204570086347894649963250269580681034369398794000636435849990816048453638334593846684604306821525728858261698496419482538499252062893500406988079407983196383923644388329960581825513076830665590931037684876724332038945128234634070124721463796767443527079673639051749836955205547292305437999399246680298206056265586771836565645826240134161312299311007531794300554307567347901103081337301818746142828270948828372872149159666533830549815667552318186115998049376470467035224389150678909051603293915232273611709544075337160374771423268811053826383887246167361662181517805276381066758661986267577132166337505869199618180888580903045341694252260720517428443859272062756313751472968595074280309519797141726331739368010406106613683386129715851165236456497809739048236702156654248307903445966644497733272065401992289497658850565150031452111904901431770577861528261634555817099206035562056217033667168027432739886321890050371041466159293920341691693973206992817664172607351481954815120290805414672497554537181542401480382488040864279774358989161217035450518170433679074493190121638814766882954942828876608440519638061544710060181676041660596784883145328718142018789095975157629660453790175665315024373923787337587718087109727536893918738287009573392549317349702236667547812978338686617231058952304109406748469393549164021972247514735839379894500543078304932829761936243280319206466391934859593118749212023284976750170414465627293769533461492856479056615983854425452090621652206424264316992985078804960356220589226444118381454088794045615260464264608151810079078625380888845916446074929079201477606179165477503645654306371912689705110712995517579886450322539603947757359616065133370982876098967496148109255041634890717208348491303939585615615378851125305845641385089391251684233297716999842655973456886167165268158174420240064763508783612818216146245764132594803567423136139964343639391341065774900547186174599285939120300246620308559430427403215696181508129085323326782725185462465187780806615633539423617509868577530557726034550042428762881600546634843583595060039904048374232549179227916500544384507365226517724890550923721188250852035906151160129108005832634878782391551918855368845810952027781682113357715394386605067906065758733436650066776399521215567248063260984146114249370984658469237868047365230170319631753046786094469740670197545003074758667124714933006072297845429826592232650987135487630297433253651430427110814970016099818708719313381462976448454595220240962884507116348277489935068076152164730916265957673343401497450887778866328091270900688491675220562135645144835055419915430644480354104276187142325027776544431189911367581425664822454676235735261065119791938114585311620670186753063702109736087822532012018554464673878258379121296731505722699189827202924606090100044546492392269582380770226143462997944034550136286013844817056797819407886701875240245429893829278480320850300846892177687808286204417776686730177017185871042244671012124158668524373176833637574357492220971735383985049626591413917747685326343454200227137975153451529123580489295621563226822224004555019828399336003175719854469512017819498312957614400863041232815655054180160807963162948140494288979251684215129764824181604173266777149152918832182159586211377257177752603853583025943134110403128184030970873530774403319317023408316239028481666861443828205988469311366608221758277833047761857555874338707276792649296677645275634370972715245140039695146472948089442719049442216587879628992319808057898295084904484970274447281509450745271463604549181270406897113094725982638469916690985828446348515964571957474578944407803056980341974226514758188059978209972770999706598862946670885107180638851536280870464602330440712025159884078147131924974605367193709794708474680924942967599923974777720127424825622483420742420537952278307759171185302047090615910966807670967756076836866648631330240556440078602058305139592001336342230556040625955097786582611787507002403461414936720303652804845946737160334615807766873947884090531931159130724330351923882682921173336047656376455473570863730090470484091999045310507810308097912261073549684411806572826763050294531961754278047341222072181355338875818569532724358941627772664451915056119882391977301758436463886465837887192915935109682940977399702912747477268317203875898484596916462074049854915110860091884909159063976605535333730424945146397491393940696781596233113231390011909578978470562048255013428117555704031945598367965147606397148041426058973019194363897886275755189751542536627983639864590417523730363891567436238382440057602366932187838525689735121580198183444412481868452727389211497466500583042468420262506486402541878219139964778784476916415206137692839681519556607440953170170399474867273660189469598829382863230047437001384579683642276288720251011558629089065669136066306989948510181638052089690057133633997013542718784972396709954870914126433698471865113698773734881151251241258371799958483485249412167234010487330491821510922260993897612232052493616160850538981942634310351453690444499635886929455288807516205205547894944403472062257299030430729795114830434402889894957635635500244858746228358206114477472765338049936232908061241545240638678848806603419064238251039206580243539168144532613369030955826912462554737709219394241999736723742796487066557346750706400607070243136234437457741053508306220593749920693969496822957083005921539862020341659937695905591332887978625692092567366092492777509437051939962577071486909874731288952765946676723512420875814101893957218581338047732999129265940376049555482483020787801286359330525997965703433323200730551910796732364517779115453503815064244985783081913796043608532565831050490789801651968111359886758448420945664403247233482274835494145619454464159862512350147449202266885801624748427601779809441867044870024681233317777436975659678907265479294439404691076191034701188631435055738898945376389985558901075947658369018547480802237506245255057635947047617439161634483788357533685291032569871564239466742920142828274716367667639608340332272738887088845110392374678368036923051230349780758497525118310557277448670537665947340424791725357367558193757255962884490801106644416754385472289230333036724508557602986985760110791485441673496638583331044843510180256502102335294547631517322922513799804068035012401717977804579593528935574629889180111792315633508051355889695885159466925688150486363732804783668087688357133590908248742358956922512185343213574996949967448983642145812731699905026215893973699290402318538076230520541097717720472966451265405759023672989611023696146597498967090954892106250649552826596127438525911024101230780314979175710726952672813198717985455317823994088577216145394152373052657767392086681091246262941063625834831858605946124673799118769251573372394985549273473570187359572551268222454201697695860720728774609341821909009392646538563864775287414617729961149392590063745356253030831749884329358128178051043222997112244415112082697681674262591267864527727377752739985455610304725145354676022407718081609453226231697729996273144050639354936143003290003702221625088522187079435030074807966724511170619423160130426721963374143478499977155099077423342236550871474125564762886384383165915149903623745866896721484473135668707993901642381118399621747968321608244359564951690145802492552077576731360117385132586323241988634224734264919800004811972347503256158283080913433166505522444352387160082280354094038692142664811021692795411138818127322019991376464395200802035610674747589688462554762473634742050711269857030841782468115305168015516549129186396141292418269922470699157165800134071751365033318877142921405574869504121159279233926168379758768683894730274789614748616762976858299562280101746545101701121561254941301901586035172346473366716830134992480174225139290512294209445599203349276034089460846403387609536759638019091941758655931287396027912510596540449621215177020957897106655259236971933822822674913229071744735892565046166373563236871065191457297909612173125117978466726688273303910534865307389017428273437618997891896235310767015851424532854251012276696949465807727822872688332584497969752213606776815581249702892689463950086960886838319549444467829873918977443716119466618367960924726819012196522009665102569675574216555597094636173859519019078036679985887262818217001624694651748587636776842678750352478157193712199896609305308071262421928322235474077326701239308641179581721686309500722500119089369340222871976728994799939735392453164736945356749286198242498927015330490313427102170927634276973873923211392561933966905245265950441511386046532550078235143570299111698533475803362987717514077117717478885194453466441122400619265750235351922345883946646810925668451428717893078891127645396161533195285729534817225389131088210952967852755832323977490878478430299299607639951656375325024152767744025537370161648464564092282296403108859324080300129977917228885637819183240293644855588638880761789452720518322184874324955940411609879659779550078065343678178930725443583336376137513394443947556736050072653967383955705728986910847146485486644930839451582687633656190487440660403166959637550475301127192901439590565370365387760573407865770888615704318274684462671648313989217850365168533906660098635736307688844168838295477544311459989858621291940855621003392215685015054116754282722756526020342124113168046109077771785148828162456866156139282256761166760665792757384987779717008263791456884402973473197898949954644350201484962987135533056876001552391155488878537266373305089520143504966549595574895190544642756163904753529444067733192846944718869901929057454210685648037805644610083520321118507863142756998179352348177260613999902195618776884451173197984713127693923964832696592419620688119736912774664791196493476010118020623304951903703535339273794849036547808564416864423001924240632103658245444093631544725517295886838893122751495346146533461804207212085395368207026953193651359605709529733818828009268012522725762428953185346608318893633399376764901192290506793195084930417921175847668145151486514136359591881068543284410395822978592236128572174358292094973466832987141599150813431730796568212131686298233293824506503280365536041246605202897229939870982598285803672807131225814723468024730609728121584614666095682048881335197331525632788863504122455134435483757112470501749844442765758975658970210696197906543356708883312633496908818104413801703874161762433500668677771920881178305875483472808748839761975888954995839380325231648037429473452725195533090673557264106435357314190410173239412260206621711808616106577894811054433803308107404590721963848682121965342857783799173911600394912661989004317072892003708349338383557810937342652952479609733384750890914300925440421628107011318088240172539757440206178943845292669718707770438906519436933129375778385425246594265188089267489689102535827523580055383912690772905541311612122950125299945125964641924101468902322777298598626301419393463162125714753375219069151183092373461074811480565577894412316303738739087542356391111177643112689587577095451093814267390018420090452159190976490438017315613194319159588679404028708230978773695348804929887923913381322229092362752223444105978432459076698174459416480605191397643968866580865853959800855927425929917385629677348258776369310545134280215872886327058027942110276207793988907937580293056346877967101662650411835835937615832919079674736251181624986996134911539746754040464495930408985114436127923803826887747089955041151298182408160664111341015965556614411667371616982212461574241043228979230873815993162014556158906721633397195832468399184069933754528739046304867359090100769870792867550696616720801544959202774082195900318433080501258918826007855650453284085025028414349470594714172712969315031746304952030784252422570825405001447097378392673425090936842616572044720319168334245624972006010722279465350586158072598348688019322756918871764613833841605595072939901588933792830070534980679989686059383773683956562878218903924462516083646531865476420777658847503393347339692566986860526601018959336535438707064793907494224975381459338880683097484756443898373964836322071474496291017586530708556175421982093852572882292338019981705012161442740081845558603547632307676008567779356846458256638381320327740857293877928178453513481635456528607490334395022345845093232752144928246232417924150977053631348214771598051829175330193376353871064162620587369351316397971039816829986102956291206005230701742702779581476488488237777444032080898160765987899172011865616101989038442100150368005986050810602154721302039423657011749122239368072671775757800469971038519708546934706318941530146442668447134886250640535251021908003359187494716816235774841933099643520004784823078347388268523674869625297582511032070668057723691011708085778514077845669311927563984837564527813275558666635870861134565515783334563931279758756298298142696672277336939133957467919605263193535502771313061602633233641558516451441958489727643000524417837453993690126774998421691235636821719968752455184832478819208439957650005738359023182757596626215987192858853385976376006491240565637793697296915222978309131462352256955660525670378041157309491091965295550202798320015134267615785680381474478923818256306103276630598939935134747425479797143768740794308421547191966231164848823310084491947716162065160878985223783587105394026350407355242553929109592870817743182129241118170018293155798597922116310254505379577419577384837246629975520244411478745631182324044979468716976764622211650666638367940618036178299185802757881728742539724584547594874542325506687063463344836878773030203939733759279647374487471779379525215085864771706082634963731134869466963826927431400970137081380944533965896309304996526934471170364286656914422194807365789857369271040394202183615302201561633483582745171523339945991394406679155932932698822504976441570281920496854452814327678553252609421283185250832398568721455539393227448918350296269816446833440698687752899008324733509854979989257054975458020275322007725867201135486681920059665599117699285712402069871571518409754653528318833175363468534380746465834121611370512626113468326218836282176122549859706221307846704795084830783493227715659862890035795450547235309463167017666371773966975817392148194471413849332407117326317502532617471858141538801681707025308418170793294444475273450728783386693325470740519829595536594148416053712664676955830715072673299745235391602319170844034520334706742940022630408306610710059983553487493501475359084119984474237271424469338918373284489154273529200657262812343748630452537635643450233396588380413742492366191217015852605759000089411097564850885659100026903086399433013439209102475212036600907835816134267575657105197480625878716759178555743558865510856009862783811407815333393417323232490902552472399587420250267064759008207531680769563320800302146487194404493969138248932094987520867168154089255552309555166077908444418173158473011162505205268373935883792060838555971576820622516094968107315327152048904931056610355662044814102454417142618639687977059899657766367641617363522115261032341135540590596075508297533040320990259142214392703009852301927360007312675452818622770046199189935312787747130920130027668480981110949134016676768343461932538638513268593411921436548882475743965789444344954113794044789453458887072555044906281823822121044293554608757017302202634915313801476372785406161264520258979439489868778763872252900728775346653464572663921254812288680253720233134888381958967303033342794055909790160215790352656757257578320219874687485418730070534984271185702391915085132322280105933784869353717922327396885122830014645875600129761042624712410983993259102378863660071347992101668264948299081670531495160733818341197070977202284027019020275106663990754597527352176460630982951913684407836268256049250541845402513874462361930094764015308068764142577529186568888039644722873454535274471227240905854343447532635978660185798342635762435921376289106979353110602237292696774930611947578296832022784557478341020689699213494454941108121543192279659219363763837818463732192011645131800979214357958366462331351074591149950691828912661571347789468745831296252031276946933600970993590738865405119917288037296504156226694767377154293262882739541300010636599489072051473446281764909425648088831224107471297669170548244499323332925941589908645542843112903676499834548948861486967895782812822194377777890626151531187838339955313924884723224924168389152270591693320763777066307953241611203039227245097821204843910296972509969502847420669314251825082760514801591235779312318217651252532583780907733220787726691144371493765646070579976492256767679757250865408551399372033424404774405063323115766911953458232467022447566679367568602391421792284913442887458675403953236317898510533890177481396922669475211268898553906617660819273886615902814404036778622952997490065052546531671765265641948323660266559220409066769902706146531605424726278655096022739271961871987417512728519914909790850615804607636443272313778976624464341978289001855487729812971598974262545446270777406027797310850574970097250889547807249310227593405945941525110526480748715485905039043557988801609767358377295007662536778988421677476860966948028374079208527746081741270258803679285308552081935533126111174586516834550943545098784969055266122136538798502520645163226576537068814269528966396927276248249821997049485319611654257725033753969712442258290507764125930817582678501320830209126278203820150467420211430850775328753049350271475810454535067038106812847572441627745747936022674564092960783915413646600559065591926995551210984766180234943391466412418541912430266973603270868860732840613791327787033949435067573517784228539533725722937802672953050301813594135859425243313838340438130372177737754986382239495888378186365634225987404016728582082104443176188388194775932608218816447931633071147095521298330741870934812181600231056168565074856997718062115536200134629821104152132807781110772780961547950489800604937135323556143494158299690083661206095536897968425874143127326554477361502714672806322987132099028367002372925412447522611879560921279220732812739443840102406521061543248466315380384775872395437575836187189719811833628195347735682958679714160055805264775717500458674429330625419723885196994523868821538203079635430395883808803889062212681236437145490495579491901379250044881316216986095955898520048965900687312617322709643833381359530269146891437876642098517947382286012256768452998668794533680552448511748601788598842782431789831140452429418677359247064089505322323184239181240664321785042168435007290298921824662249302076065379166668074676474373411470312384674129593267556717690325377445967349042631702188929130262873393929985541071143719745459314914294939286006198347320948344909379593553200259156775070614719473838998229871320314112961880077392726177928135563783401502188222431925744878637129707133040155596253447476406319835595067259818942664535127898219935324749683805742444789114542679213910280337155736041289114015170211850543433122982945337020251158277239835607390123000195575121134544964719773003510335102396832185581964960915347361927774174106787365838495956235885922083278792196003044097845737747037709822530136542207729422502199110393578140858091280923116222794958015268852217152193495349079203595873403760190480973443382011201210759790365668040957706388369144938063884013387365862618625074860146266148631831483134426498685349483738817920896817908418641031041896232852254179717175978643160902385221776622500798288396258694023410537745267256272854934213919978603489591875389777502724912188502374200591052366272569692146257938510505263312306093589457801247018766118831954779767680627813177945772704554858147842678264778267758416512146937687150709919771624510173324714841621199591188787141052168288138332544993305144863538814557514564754204023070269205380447419853942723287524579452723674606807249879546536471894303915361665859621710691886660040938240192032187241562410116925649541970510175728992622041941721022676436126251440317115262636969485362700909063416003322655009982973896602885748190295023672377234797063679803403963184814667962856824835718866889349073136056596892473038975482497241835463357674126853371279422019250824606680248171141733222371773198609961437285179667498875804171422945228391110955621769640068103051684734837797147171316965685512791569172706775096355446753043791227277063648462325185635145697615334880384654686382292893004975219747419123055075496458741274727203199783952520460369621588811076980150117915386458262493592135125288988482922290061186651336658442023532499848573346680099258738005686079361620324073456587674594522101988626855839026587216969079224705894628169435012682465242319396979076275302350081850134877848015993945642063515524956511028580063020246996297432437625120781436967239265070328432885506371787064470944313219602635119476374926751446278770761350340511462406355123645367748114636384017800974820694366845895426473677644599089232249606914013829296883218682641838727057339737729499520075548903622577476854745818851685609434422080171783961186339876622241244795653491867176114023794844283055963270668380069197768049340720064074196304080660954533135017160788671947293955817787908326560328609388333830573225679133862573800963576314942945622704304918675528816863159189772654930975975956165245825047109919215597157006239398932199981388408470354749935938065066537409044610889325784066940231565256427310045252123892926774381893333857922185946473944274730508060117267289809309435085873704857396435712320089168502303275021411792074712461779532237466695043227337996586504852512675413553456800591701597506233264251598110643306742021571097712197764659865166287945945632185852062446507775229033566872566295475247182290109383435661755639735971210799269714422279227566558067354730978420372630977093331360504344022909757179130870664786302590612697645931182327841423683139344516905607667662135663390416591534536161844729361318063447057341398220850827839542580493410207617010619063373414962779196665782711133997964125514153728611267129131946469533079010944258736741821346434282393234896899983109226673637806268234309854438376630194115315708648711188054437932973850579323557392053390045826889582141434374657057008449442954758835580817622075774254849454780693746753343423575201691862148451109535809334051389032816025014893674226486363804274828732152927408612143862560752028995948266911559013221345281861457938089935273908156820586578734649345404867565652969593336421863809083442435618264086010643082524960740315249019404225748736463860828485025877616627284497616665214744286350405720434077992588270610174292319263511556611384239506176342202646665434904779991009005718719454402463813944970829904761155468080634887215363531454620785021732841673539084352790297444561303095839368378949062293235476606436788451804360767098934457120903165408591597353104131340609888552770850340701837639678916829829802020083169756405782415636012117535438511137612421554420668756527716052208232312995906352283680768368872229212191669880149349929242133740702654095235809411105246990666372020512663454249492689304168757293259423530718999033855895596638216853097356084961485913210341549600069948555197179677146694653585169272113866096789436184582240136848003734276740217222366080333963736822962277327120378925590322724926561562238372414192312123657514051981546671193998307476348587914844432170169625338782548599576727229552276809943414007870918077334542136755765995121929985828890972491095489230715747369857234822299893433562531710791147969319592384559298851709393872631422719485432826968649550137425709917472465010269508949997187491072540665078487580952548673665293308689862350893187578295838692575368037894747965079245609850743659964627769904874179715738868743207163564056835255128442108367231375800756610485873511358651040807155000668356907240629477189042235183292331507586296482864657268544408845056552173963646922774217242041878343571481562916393849976068287928569210202261244086616301051496528203087069660998731558204471373312964177528751611871366407610435317171923288724474955005816120513075082796783927319608032080766840501168232466373934838133638367175317445659209628533396752306375455109979891158567474214148870510836736889780279915069319736538994502693091079887517174144664111468115458383688949894209322878265838796439829087318927362879316032732428667494389707067766550814083713335147813103247722908227487162453811914091710426681549429587855423144782235032605416470608771380783055854080309013596681080231121218682904483539553268847908656262742765876949751440006037820835756628982253288776799977936867281348297661990680447762796503601792460113076269397054080321738998248248417664914510917825020476307687982460450442167204819549843277836591293974646101771166954249065933428038526295339330984947410719392162358417749029916621407978683490766255145524974154067956499976987585261830087555122593080423305278461370668454074890287574403774515827885025692129442434768356024730569219487558569116169713536122227800605718328197914777857926125729310118066008743202341409507947530838707052796315250301936956818781424588604588125925597930015665891533215164432082865052166261460866928601215739616020037392214295878979557611450290994298118779027208792217512686678356763047335955338618805957208112776869605934505511442997901385666765247668444312160385377195769187461768440577567990947649796827436475873193305787230661712825308774983702439188344762966140975853975441978265980352662636626701481257577353589691090935052048918421571735661104792442835925952769061461205531517656194917789435982647361094367319455196795011913811453923767857433707292522634232487521669832650641353101164967490028896772611743314970873835865876059155399402710741608744174147542152025068977150055779122539054606211827064888648931829288779834496674426188420912479734695450245746781345535801056795410453300564029132775015208065614897738949189368928506974857884057421317142577471031624251359191854645478316837030488971013661082195344644790978814476621956850494784441044950175421311296878557864592785347082840747988031176116521997457185741723407348675064628588099481261439213235779372650767970509362999162382024030905222231723603798129804639630621272865704990264980601209789483972154242579252487252685129815469533378017684759053418481503068206063757025196797151645262027415516131391355488705215552807373776925800718845543424270947158547876022774427654749029303894224531074188660750178567553571391923170842051054989601258328902022684410030986523086240530215553812616583861177677733717478482600224286648873495034207273336638983242488507406579785649491903092608871924801447625497218931813428872068825145709077490603232058199853465945327987777424686411691728461706886661245712201281085962958103545592567313896889222312898201019576297956243650058180577797092997340911460735478727698486635784946163351441223398423441681076959862263012659563662816521896954436751326474276953947533797087496328153248084444678082173980294835856711974460009076407532166764485530091773105276183691421661488978146023428870070771848483466657227169528159647348855859813131867388489299593472177898474667176720389701904502695156249155141013062130856300195838510736466881145263144946550770688990661186846783293113321918738362591336521649422224106244613921102046329027867803275389984542157826340139137424190000774350584165457399229509063056516187473840217322593474334936393092893537573248388964809653278487087731602130667038025374163406076188504574443737934160927001153626696167632804034260206762246075123873322067215867797915346385536609690594838023402508628955497746986637271018765852570054981633940109258154048691639099870979403102213661694015047388337932468733419633733479870666164979614972992227671274915824635101642838381631890314463208070571834191690962921789709846340748743564243942285452246152815286724390275391153662318882324506526392103482034808707914197269000160851241759990557745608865462661536337913386544676211107415470372000159885191466530022934763309582032331387218807752553619390793393715797084860471723370567973242197501497843396223262792093245053598831338495784881289689028477430568526735845625910086548543494983389643867944801117950537965302106486708797106940720541227589018567091201496006215951218739580110683212339100746227194052134694582268283294011710227224186068985580110450218528486969068306505375842761205817487380318741838701246342616069139597833946756397350515956357163340979514148487157682577480111446578990462069835159300838224748532166002081664057731004180928194892465428696080577575384020967547787407711719901841635670039992378890025423662299592243112212382585848131410131705828392574770441601370450942284497556471586983941786445146041902175869720744125960898412452032290541137026871445714899062425182649628219653697675774438900999791991114597760005213888068803813171357143519181980693065323716459095848459449933238364000368217176080842599299718096301073043355927663968433449728916123423212817506394496378289939441784664038221133820364311267114671026585472796480412935175017484777480462574740690939816298667296643431318919393634981204612230809145125188884001674353580664695486534523611357411864887233525083484697814654134854000719829302739337825240924355320167113904901839710500676653364121357049612622510411084371397526565787259697710800830120114079797631565598764638501681064411821109462775469384077464937624645078415645165776735881676559519210196672741197440314234152541766480722191072781122990196781744106344110442261636064279837890361882711764987051746226056703973245548978204703096910062684517261439767712194267438713379736932115161340067772875789996019863421589904468184140875235430878643583942902846091306386275849870441104794810809045753382553550499374680508568497691734125941424162895228117694225703521562765938322280423745787388648865922081446987593658568248168044980872253657231054112203420141386617181914402292631284496134464052361351680966106314241617747143864992904069773042229199711311995688381737395364280929046193231603898570965207405552032925816323117786223996640156380036001530649763787375131780581722713230140412770540165822281829277446678570071604046472695817637237939211929688970102283515146964851251550404943215462591913158081310303685971168072493911637055595289743742669475925152454541034804823142310983344364006392496469389025960551401490828609706489324530796339754101772562011992593477650166874805298690885972262530053361099824677836269306197173313971669996627728556041681406580690473323942707992896834815971203934956499404822349050199956047776092320046545292169023517970995148314613306784197451151613667917183499996846271035889223002366743113990084550502711514468036414334300752731015183589302742071622974474892424282645872606008617020839074020639139013270664989110417732146446861417669372955272671349341272211709437388972021560654614066299568958402177156098033671697427615049820845054215828668390514828279501327046917448867630637581579050379925999653588542770223387525457016815188972339663019239638389358324744854701880914518115943726954079442157718499052731627119228702362118193899613633068110190742968366215846975101726171252612480707339785126936217414879147191349823526664408408201445747861630710475650857056129964766576562517935242214853508639816293922994164537258277602494028974862394218425481377693017599195206301906875293462411063064805152303198203637531474632818788287865442782816048595928779525620346031432646404503159109865969587457179809754745536682277363153911607749083918323932479363111104822498258526547341502123232208605857137448247736406741112965031360269692025368827663748511733937246021503138338134717075852868467776409682135565398564633922932439164292589206566899958805714077879442692486679284693176107272324791115255061448109602702486958035868076610208830736646488262715503598092649035647974408970890463160722541299128573459655765340025367247897817751261288855441341666116044736228769438875008667676877724218156947754683785510051845724416905472062635071349529701069390582530472818304664501851865403098428379658314800371601900733810691202012326262147314227545608845684733488044767619187575657166108885755908097614124093127579246788775162797787594542930515853251551043056216468414723780532949146855846967095772267331834029684719816057003322927256163655471897540016188305328210822855930135062996534068101266771827329367428195164956047477587889720281639662721575648144088693484350433982838827863956819211905508454994759290234386577643977889350959678407942478124275904547718186476041077938866190864952847365940760990875983957650362432001982080818874179376247979795296158675168277753936043063516875594428186489216335543236172855043295388975135195159352629527684648392636560245059613608186657778298191816696472218203909328644205974414507181853354567348332010242549688026454886490007773586583020603579859755850225494300472657974223439545407239768988444714927619842100902306525314270570251863374705505581290418829488272496408690805576502455521322205222040378233541205768322904381595627311949787053412408535484196851223952107220919813859176164865359676232829542541127872730890913826246217585531504937279463901900589119404772287643400097964627691083706750751946015962200273359259170332655110841254548629996408491146919743314154790002227407089897343492130361703179076996929164258844289956667786751359509065642588054731930891187674070289015559966889931104170383681798465589747406560060303165117444146950817505841837286058190375182336631015684055542636497107100968482410543197927686758906995496338185603467820927001715556366541070615334969098462396499479955559951087621811122690985900482251658750193708913423448431928569575850642938144770914211840817211163345371238609397121419338326089096024197491286224166152730022820294240876750360673532061490501741744705190519242048975357168108598359118092621240852689152114558101477705304384957338847105865399225950636828405175723666566715129062606961872495163538971762315181777655803512736565372268075285127361054008104407105021925865241917575927964322872190500397655338168975946365173240057942761564175520859575081789617077977631606918864335802532775252282729189195528360848596921184808510808625560434115243270355026354255741525253607448017901185176941854436693243154105967289508695920961971239133473516132066257869308703507391760656992565483171754187962562445638138232464645141424309381990776247011295731506575550509675014466791886738689018341084769826644591564403437233056848908226445526763329935157398401920973020775151651267445072091787845154466791551443003402929407311203770617534352198933600634462035613004495657140605084632806733110604874752341706587779169956332899795513430653477512628689033815327535214379593016963904978825429252693649861063929270499253984746705540903740991337212350858050555691217986478091265811927159116731553258148833171295346690308203849888592619667403898553148278168884817384394941741344407441854105746530941089893970561954211609419776764451142244504120645575753870991646361801888109690472458108603617740683713924782158664557244242031602891504129166130357399152732992766563222092653969939258559776818719194534183011841597396157827005875738035245515115911605923770110944156083559543105568531973257336709162550146444474372986515881003799873480437243782417360717565219645135692693762400912149424282501620958390832259590947451186969256278583197036352511054313069760005057496179812534956198719079731155356978418059060058679566423481997120225266310418777178749679489955784267059968108089359202478703311197415033154092549395603619597232155762561876800950326514745334301532764866370351539486142940410462495082341780230365219104089181581229918570820364664748424759326719528632954212298902366338068591416093975680535348902445820311329775234907236474384512334977504570216588913022002898551593034773217709737047583988379765749989363091616211011018010099903203796003663232242024622800412967486473464501924377480750708162063276094312692459051659834080480025900397764911271280838844529562084668783171498275424766614941546955587348617777876229533102885949692899325139530672538314227804532435801668134592213788761535597931177241404760700434239541154973322844554851701318819514155048730453576462676704029548418599767203460113285512407256726999210764633142905399772964335295018226640789613042470170470135606830737009241130179784515408010165195120437209021363172719066953387065883010569126780758590214948375661966229512524545295036566471623930598610042935005754190850768245708474295763951996912644909401848321463186238809505596807292599090666107902100307631469306108357690935414167246702258865202361348690527843215429197609846169323201491273011726622398548624240590975733871588204083760982586405749436216498181263100692482777998967429645314847202149802703188481241493854893837103548689193538800785461934010038962766833494689068230545698664472619941631237655188106463907651667989313810279521449317385269028583767449302153456979267071423341710614942890842253106284671434873030008457033797174031567880427553784453407438304862398017487108924137485245782447008738546225577202430852169872068563853030201528826499221208307368276826944011937448206311538301080310592107346018752072493043943354487927289840924281880305134933805353698819643897010859329242279260404650502802388101259108886977771595518633622225248937861348122557124360333874553354586865112359252607045778404197631512746282627670156128685597268803092209849459559809124493706441539197091265088477061067781959281798296971660505626879818996349244685372953511062990614903513191722951741245481241109439562521107693751348726800720155104376236651427187182568365210604839066569237844121753801447206734476983505795507379455733273638183098455460489113266575300802976189222190712390553469944789118871836926944032881690752656631893386441621534319337276863054852552755122211777794320098975647895137740054984388873782423757368545480612415778066943349098158778086204367697312021619346647270616101610186468727460982813882230380208816475404021486536259066823282143303614562342758891562814905258311530131838626016273344101080355386676475585647178508011539763816502256646197791662362659608391322975836062111058647490998394286246561630075679849821055534257419279544672917312414599148810224633680699136702810761541908295379852736645756109539665765610111677855558893292344369572122775609821207076660648463737925394206054249838224626616279185310192324958710076448422328583655455705200971878896578597629854588438388354545237989907053965299676844490768613573972691213555317726388663360687605364921398600396536513963578561235064331892115993256717809112383023461662929597583335328980930799849031496422883748834869234855746085789737790715180080407322763550450292992198909926788905933073116292343816512354294278089630079127470223760315092106842962621788929935447141418331955952063604747065268689605389218230790227527582696611111942370833317928103051990889515696108438945889154965114310154895301981923363449377011232732725757127230267453084123153197439401425986063973899132584328448612488115890695883708327522889633496021235401108325591428677390900765034824392517074887819762330092544656575751648000011957548693749772114603767538041582128627365525247999744813079396821062713397258945658033956912229220909361300686225715009970122866592970341969602310575795138947503461753665602946698486547725809520009044995045520545679262132388923122293281623558867332065475903244140399034552649664996408450741094982154100221012562395851044103061947266261003404472712518480647041244858921162004885247306855364632221222964144915955478419882220464765571309577070621191950909700925907813833087057162852214879455989063883655272322551740136506814461134893957233520959645389912755048985265388354933746226370893960898882857314131420412098893720502333840226963211728855752854622040632969704148719362385317428932737312622466199706384311579007415601833249209088327287625329771557687346556971052745114849933280296692489362170700046318054326641863339734790277459290505901202471593364689173120113427646106238110562802378960687292655126508713416652911319517115315429924011630165526372678738926194890906118343036926723436166176119308129241683055750324021367262977310932419053704612077622922209624374590018747770961649133776363295294948333363837097809384328235371302897441120056593567342326211308771633697340041921275487884456624699615006465301658184048449216866486096931317849775123411154849056344834354601774107773860644854148816362546799038843381562043614702467945272918313646059780157600389243553664564932529736667125123357859089934881721758043663724512027598954273895549943360374491762229065616620618765663087961646428501602070753787611160048009675003354315058573966762433363202710853933696577271140377824842382036794941128369716316685107822784627290071745704355524483979255460067785842560858918557095226108492728042867906398786497580618614902527075668056536431474999793876378312586637758484385890892614455771065710355559710977938020798162446691593643570725531563556751349493773209846323259003563085444197048703724539032034786184041308792112363187950425457346966137909964376648861482094358914858589674449156260965415117403364930451234292025349841877649707268662022533590800225554371626796367384473904748941394326010769780708132219662520511940954031339541210317695695054531248067805401569231168419503856127410047284672736342070722525171603853399848444151250960223279887126005991824970960610217777628415433413444078122972007100348458797834495877649454034637953072622588902784995787818975334816579238471764245984969295421496407513980183121829885975443116380370935996172249261912483435145206888405383527490138300514753212823189686363182901646501843237666197992489560452958486650255232018875170671179284548236502734424177156394438463073193467953146553024471968643731968417062004432761816692139943600976063362752521992010682271773514175481635569711761956164093259665743696294727071711052225993997492058623310810332905641436640817349247313395249150339014241228326023544847815162154535947405659686400316591852881910728875354769095220072889609579521774891773735608938891857567108561361645389601211492192581307950490843993230553503966987441853211651995738675437116540554921446219015637543770958028462418278409411067218513708013367388991158484697848393266170749996393049965765710276498296515317236494831060722890218863810068813451827568259667621729198343889764061010718028496225897374673934147365236104027067686719298891889946632568824958217776313266380160850371925388450567278349956455323973118038177882928881642183263476917202849604858911263739033915695286524981869957522761194784073211591525537480187390535461349709690424674181145033822440399649815556957318136435704211904112386300676678912574414858843212996056694082534406147236794478695189937205655455056782954327669447860785849503081182036436670501011005589909427869001920673308270159307085421325732286485047144593485361602162607948894872635824558616458264698547845759697239133352179429730509652155048890204585373004984924362652874918845056639013900567127538982435087532904673354589518075257044280866909975963457536715601819012209369182415629793917594009485051868286448246135186771764632835143688737154309993306209959686725204590673327801406366511362871374481723179197411429503923277976884846251549284420137998367286597575370568859303876457282475624703338621043028650352081037444157434179294030048546804269759397037577106352922189297620811414182684826413029419797464372774482000417814810335508830916768830421859208342538306855975018829210195032800315485855055560985810822606530520240342157530621792701170606246393017381530937085612874745402909943533633127503774943802252816604097783927052796765373430505028771926137601211310500731221037148780325068188905935516989177988492406732834923613416026696951645449678902654756906546228581620643430593780963025156455399712870485306728373139782555501183852577308988216121399143856460888993191745639215242949482707124841893274752830250468382363008564267203870458735498850312527595279679980449468327331810774008155484950239736265853699359544154363327712669471969072138049176033391739010010717044921224278909500031993913756273656754286240428804094126620202445209141691614334937714517420470470591175521553952643832858161470888607775384089567759662065807629352486142646041150480275910441174280886229253118032186203088856411146827228092755829869752812777495767076964086650503200273025715689501155731115930854270270445428145823311382183223338438098619322822805578833118629084225702650405773145644336596530027592248164465652517325905772433178638797657915292283486657779747691229964277203537357690960238536117668620250930495997808382014195036677951464176464464411063060306460851242340546050889890519465108912999567498106866857638719642687748179649073984239345848373597232798254527952391218575902308598936782542311681176174213244614081819216936582313270198251204689982905669913164467832652509074177821768903860257340916730264502001076926878785719217654824011318804366044701559519003286655791221716275446109889857574501951678137493057081005665680836945353138281258528962570045974276954513086233905995215024904796711648029048242161374965675712116075590832007611046922752586665274789719045846764601335427148733012482152468366758951303055546679256346698136672176717514769496787761062641522414669258165963706755243742188535348920071912310777821696005251009163558820617308332067473891784197678617064475043918592944663866293197485426352386842272994724224791422947483097426766912453654754846735398187620893449761309965331034430606491809726381143156294242560474930469259886695197108527022528389751152767245446719528281750778526551376990752005547020544675106736235251363864092403460335037596602118520294554031217568458772492949648737082565518816608862530227223235719508114698159200001398269650429794971841770312924390148731980369882630617995186596408013177147417074719794977973333785409231608918803695826118582478232632915707654813515028779602391032578572900072533104885347928704886678040480774955163463094487057773920263591057739433591197747136605367487482565980029523850065338430593303412736710445935316271949051818996355556428182908445679248924341208020619628715787921968571153878892986110247663366210907806236966603564523819160214409061252181646089734741702186316006441780682138402072976814067121936399252422759110873146001672424239104776025629660127921353566789299997026671689963451652755340646714778535343327904719352854259095523742748897716638866810786348632457884880157124979005524846116939164413093386587146468117058686187462429282874163419800589691504702100198092370178513611054081916566448112568883124536456391616269669251826784734066189322652286302171986477564518332529259213218489487071734248165291844444606030116589264421915250779181005619350177714276807666655424946364634059912797463310697200354607501114262555683773472345365828526722399789104090047912213734619881896614164584573345938675568213816629934487019548190677099779668408596681035965551897056026603539120141698015301867674835158506967685646103026636520039812808269875534712282864004449290450809061087834335306103744984923822252205760796596730796168747137730098042847150639883277013788150077453780105730643108242578925894360824681585735055750156146636028213296708088054356723681393821078079420615268555407135727740923680391508370384072106535769758836887872520435050324684902255762891960747574406943028399188618276489114828954361131110681374268686432279776969080566171058134103513515840099741685920775704970391185900571456370839158330426953479153106600831152879967651772571685991274477656965023138365961214921569958425560200771426324420734747784911312967350033791919399282296678003021142191701292323399341363583810079347740407195406261336912456806029107027590052713518114589925518335666622878523492515443168682028465364117550214802461741615647037943171298885766324587717289781163243669173818682232558730522745402907516779043139107890246120023796638572905180109776516736121980636668798708359481410430954239661869167768733389699780659165145387121854997176290197989810165429190739931957826985042660185772506073309789347005283672691807268765205614356833741818312841201125092851496585746792187963436152059065498127910705906688742224145962298553622721815265099461642580101383058841509195271369440991617922977918156513460148970628405704884691543479917985827977444808495647808163924282452183830577732414203748315309212401413966294580180165894805976422364810634680394550201967818146204316853738691218696345417097239222610188230237754599933084870679828008442711794267104137544915794563720595334161240434155700768374875892210387974403530585161124477373631441541872258850832914427246267036746606321048679698004252164090474489850481010286102904018756012507863759993413801108767320364901306331437235085395846125972405098919611850548267681118789995824208001602485305323260400040344797286977191259609098672843970153060089508013728585764897693266807131182226355403140127418954355484927989659997738573617722490998968413872873334113978132055797127133691977100212959207478932740073213090376563259679396705328354409541425085772240068627529377092810663158791060716725892646491791971980725391156704596772941079996612415115049546924625910347882528962775054446083853652852203040303548663574049857554364795454031314491424471883946406155420664397665854489502985777884000741615117836569711956294514396060567582277530915442577409307634688506509131228408328760184198786128716152115095179661878946325783469887256941096077130846605889230512933515464508859342226120494270574604718142828933452856507871379153815915399830332236462415419658582014495998439165159418386256482331171623008764427712347392952910053162738239157109574583721094534559404730826819582570668834655429006826842920746163627573891377091695474669781681262858291365234533706673075712984925815765194643382301261036722426681821767275755953196917116090350976685828202774625419964015247684892244082219682999617124998238593531278809524301069499551421284623598397817385772705981373810379178784242950696648776325212006474141457428311946773142903603779961911600319655796003370303848135261611880886643642825130816687304968286184816698386676095024345964125032637820287354551481740004752078576377753694947061938362744206316901962915702534963434365239554239985510670282986623989597529388649741254077580760970561983972722493710011934175269100961350036045965899844860653677249782239002172297985673701159363577940176109314262513078363743355782392430733975321714681471223476666858772355548467129041406293769931057937854809475758553090974241378708800612761628403181267876814860322924346000425669267984091394397413690324178626793568180244012092039655339442696263599050788180722829860405257358782815645587437090241639285282359046050201208158907475110985200046296350411108698614627104896662185749328172398071151659729807018220312233862783411100960882639589617140288065099643048432692837920465259963237091683506805598625549139363034907597580107550251792456233298547909987723374732930549732417845006327124810950196801378963465425263571851796809734338481154746356073514689075928013200151067843539586256422321495546414050425870729276631432951262551082791397691920829125740275243209120126571799958447902768369249984017031852742980648211674962236516180497259259797910458712136362931287404835441707149022867117893726131286821077699744890788191012847835594739717984896033995474872578838888774892636282459955617433258816008285867636839504955163586036046490331526988337001018876458678521482614555357390934974943040986851586441014804879342955140141701951635703569864594675133562266478211464919533235093489913520203238807623011946526510154322543553006003328588066339382423720728453719696956282859346607735664134529154613674814428607438287735229587019133033887819395217433688741553124654479441754919230095607963362251917126697551415171699439483272181566492745796024775380808944755787576093814383237854631849060538291456406806305313664630187074216472491288240219981233829695973018004621383272336913634526825057339071512435401810203028198972608887609549680622316219075157165203164843535887879490633105347229318111549055225216303850808891097990672791085661124311113340007687082547434807073888503820620001005647356920807090113576430602170441877053905572188332302695277834669299192155649794743024141065052083830215501800916166058610246504923943107639013362712174609220416110783474827662742188748398180324630246562183229792056366609988511799916600634600805673907459472623646013680442425515564086625178561482126889568842155217008199825968945968522524819725209627896406958766646770443165958872643507242793793960357321158644272523938362628907939476972416883585138758941908023019039230662754044437301994695927675967877615682468248067369510975737597674297816859665935381466191826110483819368540116920931725354015553869186911719359298829939311544955144982775361589428031180859425270639028084092800498273699981766467797826582442041335040237985147067593820019351240448801084281743451496042669564212593697464087708186265511149758027935115953961642634658732069107533218099405865821343165650889147433815230743909465612180832536580641939565246734043143462919552354519533313438435934246309653498980671427143734489275858624730858881744375552576925391368472095072022666379652847862522097270090667910334797135546015174545650718150164114335078650182468514290231766236738376545837775072635049878370246158322977024444696113548241483050951731003929015992782935423564758999961039816692064081452566194012315494062019722807543484495677534202768915942510512669230348558140991939909611167037398113900974600289245292368430091291512917638843385420312829817053752605098609518977719712669708177541511394731848599145388941029164465512174194408583677897904493826551285278552178800034936972413255948056256598937898816195261782575074807297437020329372899339388216958091877751732980350661784954459918794739940122369770409140324327174426914532067563638635035380157739584259000123412029061867631348074227795607532436166761228599547018321851619393699683966374316467235309333828688680169987767251338383904106012498424376621648968098698797678015791771871651121696530839649423208819361092268098287046587928335358228549912189881502569141190724644176484990007983056309645279484083893405810313567247439796363773655655750444016151778648729152127801586877786973965653920737039325661235654720662542221033635875762761324703455370787391033890415405590060652579516933193963910237647910405627884600475098779824775238394038036711539874656553738269048818418690683013128066279480757658140554597926295049904988109766565590810557918444606089893480534210414293986087339042980724137776289521684780933494058736348507095458528468950339072431147474192822868396574550477437811451352206084970047631431559446086390260869001255325958278040876318691590135906250562611041066464476527609740857709534621782744435625032264663064102364087328825749173753778266923390135792724216022733050628275508105975167542586052804179347749092481338994415323047762875778208271176730540227920782448818614946354207152657304690803374393431814591187798797642718925172161747575097383381707648116287723286214640990892029048008333959288111293039545579322748812771403496805665570323619470694280151218982980825593705531455086545192867142629749294417173512219115912304775778942741118515180232974812314810588781365695343117642658169195011627258949031603866290476287760238526283615427471366992808830088128799005871337639621649626507202225615850976566424659939704867104778476852748389213299364078810699268009997156689836813620268888458259725517667813228960509194873290643533529739404381049496567947690523776737990378317658943438834773781091566758820378143947292882160711653414111874085300886414424538825184716787242242084050200731092475598226988451594492269332144821396001206450273910919583656321636107444466315104605774482846216344511770384851904418654705276719805011666698897256984379658772388857440579568370308574288005236077768334772662961824423787365973201387560224654986456215211805731583976706984371927921725307131286643872885690899372305586705012515337896997021268853348979685589653573246695012435780016126778084269050522545675180410256917474930005701665370583862741056262796013105962018801105237556766590051192244365999311639588092752330624946707180653506854546864046240119463652848084508763270613560128876930776370066305330396634966450659160272954585901057276229163097381610642265636328558271572661344577572327792678472200513954047478815564590819076484509856876090635085589398221472945515633173314826632686546451149678549939814578141451297170147635498335493234300490722792542692368834813328363392795305011790731047543964721911585181815237294556176484500646514425079776004260081923764394260960017450027332062115011941720894474398183659755283327082332982549869535484944656353682213832539308922425492433140780188895879185796912297273022750722589469905896669533765606464532304338319284515938557345662220140144856044849484548310460670419536471539248363385418989211174773133537205099634069917212292113116015144126779376677532723267312636687326985304471283060654674502145908585529973741708786956915786824461102050630212054239564928110423906355175892353513025664603282195807675666312504390867873452170592189344582311078840830800620669849797255980695333484647800455456248442356911700653450061731618597161553470967757554106212077993566466639457736200200946691053293273173090354952291761344047951650080054994817377891416226412826656160955829742375998162905994569353468476269117701798113778249030612909379692156841149432679599903487253930318790787077869411146789116283398099162371226693651754408975080924044005973809258079767032446079296049951165160115097515705577383777797244656996199919004939721962617730665026429923804371350703785629566867286823080402064201899250231036565058514714431730571527607928879011564631094424439511014979344792042593086288694851894565862515487120564387307992465393128881773484703492578474776026401304133266310583669291013501484099550445224303870110750916153078564586208166084243780961205522343942363561419604501779336334950308822588729219273775819618352358041471930128896874942013905208892177437961601733450677260930775436296065663172884876118954114953748622951688044810969967234718564261679881178491316427629057121842718693255896110460212708640861881563895252063082573170465649332702795791258916181631081982083125169944296667919051742534944304730702000458160541098729405502885996710731690098104443879065843351244895307808101245131224255473300632089942309244317880402130531952800258554384015160981473076374523088369752411905457995227197360208974716879238384073274031156338879808335597638152359799377247559787078763165444918459593202599267465349122513873435994197648168933212623414692007317401407026296295544850521166569187715411339762071057918059545486281809646114177921419026843208746640383492631416236638530087482510654009430793626752681379733958071731012880270024872502096700777255979524575961650923047360970166130758042640355477832750834363014968870328773504589348712915912182191553756390504592682325171799915645683749915447763406771572530666913851799586612408209370175577094686371021360539305327286447368880295179930011216530772491454490103994193014066291760032863280825671519687540888799292890798476549100424015619345197500807237733709395631570233973494702585100017288571177096262783812506409952142348626105416599788217548800389749713128035819494643698202760915997517706562643713273003354926835306002322084869390331607547318763617205935075227087234550170615791974939347724520581281806116989366981701870993300166915340360803416631428459492606810206705602725598826050401288308089931948283508444012823458673278164092716558729823408714006677266168431742937784222538050501288001627232623684543813969821122670866937344096152359144224342813659024580099389881262982158612904047575407919924587516495441722532111301459302390667363571847248477110608725812911720486215279760728636352667064149986904093658579676357083662040351023372675343692736452750142134294599479220926269575339501162896908250069926717051734569784722891581935579881767919975638148413705824285382547663000983100114036750695256646929254025247342997700720798240241294599900741127856346920463544560868790933430710173444192610795894750102953636150806776409135597167245615734176650462367162827281356947835407181500701184408525728960757475929973431256726974101536830942936444393793560305201631837343267215047677417678582537326246551583002904809069956657290501521411019530392643126267302407273555249858827129871259453690488793207691915621071419229911948407847656676855454233602432565143067532422292816180341409829119132358888977669636208951606987755701676162789191013546015513607223429780866428145595536242195658530031125936429247990577433860688945533123288212685953628541051074825119437740282668566556403837163156115212354872610934802916094700302285817903168327453595072430122981885105650916718975370348366861446797388222805726124898686575081716853050890613252808230798716453212836518297382043295479137261658032193462257686129801068789377972427263238828373604879953217266260344077504263815941283177169523810341863453081646009170482268166111300947872107089434066069116397798068773683832492707911819184777359336277102685858644429296293929863967735413932227068832661892652995182253837943645505381066597135688857983390435102412131717601850075822937149616492614576095433143511691002623128480863231527772613374857201272764181476304962585698869409474434077589629319009259529282168974961075856239631677333245642601012544423466568686823656920158291340381734589148615798093219799515753886987860347913049101660239148587553598175307048575703290163473366068598884081373413165130617017262838744117674867464861092322613434263402694552743315066964796294757734014885995031453401172848699005526332662650142604079503694280561485334364947211796663842367007671027737716173802070562231412464793068383938585490802103104781106419807038625259478918743926598510055742332048232988963032943525112727622832600009443233276588557328625204722176184470301439312976801559338485218969283705359542111668565543290698887770327352076883103170953695476725618366022761165877070332436900876106521441835552964043733263800586959898920831260943050076546670275971528318501102204474632133103811644902056665465262270759027330246306825167069781720205357893045182570357639679519484875419253502302281123747734599340692987669303859774851129713655035804707453673400984417472323525277602226752865231241050025425914621529398055214696728565988830346574278752537534235807935296436668851804532625759122272541405857679351761398228920471817299457021188301151338095671295672556906709169119720302998838413732109718633635934994617344058314685155383962169401507520001424917621160703816089009457359837724292360829163434294388452479392696047656850402480752622688080178538677218347619251069569314152577859234636419355816657532449522591318201114150459968481487209384816205054472804901199895223977549093441725226663923021729478762634688202291328970431190217834235874578849914399349071330659679891660892675633666741388478756699966127098921607538161419213656790194233244850038524349594703682756792613878600752526732854802587221505954117920355188544219633806161684603795883628387503200627711999668235414166064960228998693182824220231021332993272295456791752124068727428567593494326558340177615215542657335161030502422626692454642968447815825502027576194538758298317075607978990204201288918676331565587191582006550580356583554827592289699529124405065567230388825452003621573572340485668867983406695927813904447406692521263714081229239981058727040275707771861547638041288962124968065728272624390247651556330841412967448766450939691117573976049704503609819425884808313403635549405689441799457369275288894532649504472749835181750845002064755554473435542530991488609136419792278687685310211993857953286993466181131104560669942325739804885718937946669678035632354150502576714830401510957163894668889412325350077366397210467216349122168448212721686309101274139910723954264764552785055710390150162146681862965912487517670927962680036443421033738278026453999818228878027742323378130894709153278275204404412142448235904783659076460885234277617902132186486520551431837897657416971926311085545063235848974719679328050275997042177698151524347944781629926238258523052984091468716784497657838852011980845576619299600649001747142967074508839184989334504684607655978499244080777248329482450997358260886525360705978166334477109379328176114917177696837543137175282506531497962700880420507164196226139050592102184434112455792251931979681281832337371933847241136350392530113483866209289076284114572941127266422022263165727383922804310618749833723390792257569577086287711748831180752598667730448343223556233048967139112827117617031648347630570794033931349563318952573885969854775633342459459717221686703622263783457201072185633564474392401435031329367956153807506006942965208712615303689924851074928096542744985324893531879612319605879428423259804610713266126630586046685480763625939289920476993986487946784369030895875445477520356074200066177300277840717838277959545008334582170876976675106048196634399961787140308927489627835162283542497098653678867140528220699695721110510786096106514063770142374762935638565789563880018868952698164463611972707313971805954973660749719595529791653089658283319156748056278997416747742991579912991334687345856025287700539353392688723319257400128019799251914302197225896455061297948875276803624469760451562415640304201211820211977275415564094539236908375180258165947798065926910782530893951462623814929719730945638156155228527256584163262301613462132067420659975081081641804281475250440561174316415318504074332364117520135999506276249751153644937035357962517603484390417143489937317545631261794911690429945726053856173016915231780398773894202367719259302362030576406777655109714001213939076561332132941730565321486393423677928998456856371651856536848382053056921990836820639206061063521663562479012387874467622566516549898650301214967263741821249547764560030758512541544877596724158608845261764340737510956134743455715992316862060403935850987731961793322790381559320387918409375325166584851159390972190643208405644521821157757991394544872410306610689006603742952976608321932903430392772531578030694985121662332982483087726725640514913738521988536195543143530679953800620549814930444983454669866396584080509168894464964673377197203534758739353537917951455481611787121067120983345866544331928654854372102409040212076842636150702768696205440546971415658575844498986734667644217438252883048419690229424109817659864658754883105710402260028059879381837238479345658512689470291937262592617671612322553233951531987413414519792708628502298071332023837930002590156699016107291750187479395652184255850187267914282763151979795004546496716645263169984601518124725539930520109920391739592158703447511056345542701545031787986826078588397063224620328518127717389818252953389376630581002393671701699834732031008509510869915744692203756916836117259424228984463479229924012366288449722428594835393063453248255308118501605791410072433443041505195681351367856969685334209535064978409920584710375369781464853987692161159374859881014257094433207202100635910670178971291600653051637787325473994778380789335010615045438379537136861050462631822017513177451372808792875521128067282033770785263537667054801924136613754564586530031252775164434092153577733205872609726853615265031633566310711689301245673403149048760468773151545347935889680119845818613717401827511352241531947584541497871725264582356455022974500611545638753238422994346982117993629192502396132304709796466603317960549767420181186124040323461795589162403244593766262842070861445553141888698476958111270804874704728666365850179637542672849255595297128917213502921864615644736553976714528022391997446890637544290049755497412634024807136602895679701917228485127221591799706254818906210672461370462471302170620906969541273572576843147094119980291229334771841129365155060749321403054837630725544880904225677146468752761447459325778169017337249334178475606848339145095711706995027639803072630467042456476362298026061661632380352653839970750462380948190579294579044716329701124180887834520310491866193894106116164586599397514356907811067831295382965917448123787865329625274674146107771913401730980081551986494274169935246297002449796103052710633299435011562198862278005460225245938802519729738591891798526796336184030390717264927389341835878365926927622251248108955638837505028432838706064961262854379385957492801742821986057834022674331596363803375523291436637922537938147166115301813573546117306018907921463210218886434932472284092466754158975453075320983859439109312207119328341015981770119652296343806074532009863761012667434495690760149009661434824443795419255008474807119465558921843881945158619090138594837043029545383082604273118012297832522912230445048032670267115037756801907929280382505191695120505627466756557388582621774160111799499790941249835068710955538266646990543473599168349135482691792457810196878192469959853399620486193388023461085699407278611448503319954474982623310196479005097563041299069542987228078997475090604946768047502262018384945756631685045987305253677589203187669736889528441997671361151553458300627891814401236321839443446469643166385996780705664048657339070256760619868325180456097393592167595422823653516597245180507588924956382043768327637048847713040905278719032015858961534577051161131558955932490962562644837726340154384972631371033298032196317210201258819721610628568291530886910017800518421116294795361243611543262196358727121721192650813439064105578802517442222370380875501248440992551550766926719583158850660996766577669004925423266675227834598464780069417046109533135428389171209491985745367401617854648492550598546511348820590457692160524719973192220628271305607377436461407087461914273396796111006229592232478551943046894550683616919355265268078559984198423044607550731423387955510050255325633190972107163926893846444847375338204176920923582387210755319854133330816016385925774020722918098288211745580761436174971640811478841133275184313308747059658673069291730745806449424304801577116999439442494316378747723495099682521474479636306685191425444491697189968070776590133760117350132923144060830767663484005943337086487583671640217176912972678825727071235263096898423361215293149361854492041972570755126737980845142343454936019975825767873874458280572826954045046061873234029528369263326788297450231179375880418341106081740810312783928663601908604522944571655930975262228069273613088508883004945209930940776795913984869507701003700298419240333708094997965728955662599419544403374993285373879986667431163941590627375661133892633062237298174582388603008574198126902883342105681735783809156525516139397394785246449471079953870135481437829187600290218653766826962059584944666986350223962227149132327953035329608962939863855774012786655849940356136155076526198523172270993944989717147889514398207235202344841878226653175454879629432415155026639023072703434715716966560828850721091394474252069431236682551003056810305937901402704042005300914684895750585173290497649180959691930017579138450170751944268179551271755628297071730121986331314042219787040558158928721332759662379107938091263646115365628592780139409032260825442112038977070077434004898535389593335787713635932602157001782555300780614576446013494411081604152388194481595198756898938382770015727726819239709746116595870848667764257963863175684186701328174856603762429544219299937882035750684811240072504666397432855722900726962828541839709722334857306738207255690829925616838555933106542368558143609847584203629155417969920859395736027642227579427394214779160733104690082150820301553920492933657713571366847642615728978452362447659636083901813519491858888656871122724175376045871756081059743598848793408756697744990394885241847018962785119369995568703808503741008068415261852775631007322265648507272187443674813000947819789534408834720593808210778897085949457544615216876591249213674807557270640787111978302444128444189526091918924857256755763732941591006977457498559622312576485351229485656675316724324935259089458032199381285988033182389757094850759988957168999140137072732665144961156674397134340689763785425701609873821742930276701165270037716608243198887513908464650524651368482995970249417033598622812050098070287779072357202009793135398086330935862977385728680334540198011462562438985022956406741330869966970714935981373376119104426639750762044718030048325409798318443640071749276518027357938764506874667930725752941216295285466959910433792005640193495456963657760349310679156523964483048471885920494481879264392391750550829256335251436596222004282233848807947574475609655573806827741708462392303797297019250921134177101983830145210914115785421169392990332929218834215563891330962065815665757610427314892695825293918395741271939455970471929347195843053939554503152764183971115618162820040202532768275287243443411009802245413454563292421263238376028483491574439737435277425759526879788926878938025602560230930651954486440496907775873088656461415602662461813987275070636416834436026846972555556896414114307914513126144165132549140581838502886000483462753717806413269260500358634059150693084383835834163230512820042623449611125658608642031096804074768504225349589427786371136907901507890685473099976555460555913843604473196341408710288884579696006690606546753758338759695650436120868399990898184915373083947844131306982794943219431576817967590446570124930065926574247425930944964396846565431767624478054371678566190944349499572447470165091767734905477207638107015627821724708385509033404910072007727025425944684714518396361145717873797833161452304506348449693914881135684813406866712402749996335996810020424616518359602556483068797966880276538364224188190907589686036796812553292221390884588237582535908365540367850015267794996777860808633702278642489130010192400290965283883596815045584497647534881306736988761759290040570419012987670303239623151492991341307770540480282986761309611329217627078474360389005558994448175215133187363184834815879954660423602033044869058850439763746045920955394206572395841173869524623615100133475961363143232980844983478111122960674322396839558940280885613108033192055951755682793723140546238670846913458320262546263219535239313860020471622945645276483842856007834333607332211823027058600117962600166763838385292293605774274489666811429349157369642431057438791318815263493718538579444987618318803741534326621585678190247803054003543331843550877808837784635476145658679951987163808607858154533153243517098179659491258080991621512657142732340856997636735264994301589258024941157914864594731661406237151463766863689042562838877311229016399474958173098138189147580722211713404894203226011956525011584247064675116626905764041770156143891943832637669271832993189019788838761202162473005536235410647504216664012914943297142529652759037934326938336339998874442392298324072016927170072587009697955579775122988523844413987131951714265425343256023428591460600982368294628625638756138137472350032108267653216109162807484730371980752468133474969517104314044784526468784008721779026518042730525750581818580917810887610802062023493978146757597648668705690783335868410936455102818939717161719424787538795830953026590051340110233532835455380043002550037833691232822424928787763479881160899127356547251337484095916750296044465593318414107371977436209263291951653696690217941234291238075575363619591534182875054276360813522768195004182096305922935715762537675322994807848811889422112438055589006352790616292305520256501448324724722663996601339297791644300848351956235488555717939132887761712111025327291867134480649348999011183071529917646574301696003907750142179766974017692343389361406926883628248460147433239527125259794878790191256514135513663313229181428061481477257587493351162258854893418630460085666464728103841256714409021591071241469193665376802533210606808101754100127670412764356503446718763202593198591417628865444494337562747017937771887907545069346222628438148905894903398502605902639026431369693525996608416304238563311569206917691136005301013218120140313289453873694444812782158091823739868535674130631336749715643051143390607029448193356153274679673359335571928462428778481897689440156166093190268391750726416568073725015858866912022627379938973691737297817331894188358785609543642035104415818564286516875795497638586583857393910087989551800617850492912672273645135127625854125522034238646949864754195533048907577458732444488352807808104177482515181379063953712262744038594437149371761346940224169843587714894366679405657098557722698466003820360666073511996747240015813976757750168188643274665537307707891409004081069278635398113047929489274084777378489048536677068491599635556387223384199828759146329462204452701021065400658523450397808445938369785200240898403761911197634298161562147635115639913254099590788011560217071511521468975880837609303890357093482189254366097974115267876687964518535676140616769353136314122897947937212108239445989894869380703524197258696496174803961686219573384541017726755807377114530939412028431278881698682436448780063021790944268118853232778003670717922006488996447999009179454281563471764063942539711294682474508051621854225546343156590283146742604265697062281791196453703763380222863024721723526924948107383423218847988441284101759774696365557583421404643478654864167214994064311923410562504647495862037182487795329958018042092902588060943155836540632175219485036440196738740070141082909897798964455593903390826932125499091886657478980861383029977490485299435004010787843652172122194426850299286932848024939067390078027593080561123326514634333967034977556458904930161320161575127534387259850142978345786860178153500918972497379539307189861591705612051087974349089802482325027568160237894363706833798299200545563879143904028643869061940111806897087543290178378529409792898946458679507869838734782705097223425791145476901821807937204397963867141393760319832717605214760554734092292796497898735464313236461965363717714981663668347431697970964022856869934607953539638135027854598793435628234603715982533446691200700933135248059199604180730318762533445400492927346048649204741824981893818618262403231754556185381158891083208773326559645920003422155077890172235046713483263582949453481496610225037692098634155349187526469362864540037021289443953392553150270711104382918138773297866942128597078630062866977828038947291699272202895885741957328085692009289751523110171814290558120025328020486220648421519538373085845311708506718098865782218159311577753571238542445376226371607598781519441351697251613590018811067701987942412727966025988791419474398257275438106533069759838455390098090839678852593002780716144369624981077053314683617569487419988624194102855493679878854524774798448204234815862606292651642744716513371952608702569594774942819095679718892037633049023979809042224749944546493326884450318208952683551058940540258281692224844028392490921884944660501546732010490114223115848473033807175009042973171009391340461511554383492707866891867927416281070041130019342917347824469166147413736411500202171185025519176781479735588911167078830420980422405106193948497135256251106444564521238182888702888460530456789977354273618948744205682303812090089187489767605685042165180614294049905681284844095002206557162911673907358573128627454348649759440454926625534473382370419389075702081907390542109987384213506660369338309690779010541151875970116452410672025801954990118915676565984159588779736382534838269860310060689493260650159804689629050443637852641335067257413270036228868509736053413779608433193315547363008209959762253823725561293791354620939913843112090950775352844237422933028876518014662762245308697427917437134591399589134053948769948313052982198365098966729516688274799474256530993000964556985558938547045700403852525115316246842425827229768501904212433423372857134038746906844420109942310021058544136460462082074243516301595576571325771062474632461958080219783386928631913287550207912082229615070501209611670880314301954300401575264039802269590534014151547857436789765664886529712675710992756149515025971346597652132138173348999589095271224314030315763536909416782279553842985805446769931087992777181459975169357977832334905594346580107443340164229098013884575613477071818373492687912770288553535219516083092079548970684595622837077002189962063882353539749618239268754205801520442059642249175427369004578754245440257445531912891349407012183175301778057200404764516659875420201723112082995709672519314242242152292936815323313619037607007711069539350581900985811472564912276464351683622914538501371718759383279513163011464367386976691421616421606560380557505130789189354887396688968634384276949937603034539802018204675471889842506487658188512660919066464844874567693703436823291395489055717237183018646087153739195935393955859928187026327442637007208589036214846714385694853888478416867917030088164172623612724155478717494843811674947083017692749870808352884313167718774034237148521457101481197983328310109809214260734354889582047128320490016028446004531874969014960712886141824414857146374064586161187749393852614717417160659710926386209421646351714666286939033256301298591617441319160835602196214105631673673931846605348414369192121933655138823703878558521225607925930723353593041230697445228036720964838083012811805013458113673842999655742018637006814408463693925943759619785908168507215161159944050896794745453252908379988386901941844023202138019547384745483281285498095948534778820127514579793182006748029907287241108037872187303201060822828500383485971157798508723838039461230617601083094561604086182944614403605185565529864243064938415700455556941443685725759497338473058596730440996934589945107932124585910338613675845133775437742239997715986353264809835354701301976894510908164783267235101245263920062570461594104709137371243704149927780085029726548892357300873098796586034881679359589245511602579505447905684885251689840101604557285943570241557227784987229061398041444514420427944849112454526521525697837422079202361726586462723739101827146540889808466498346245931276331837630911383705085008146348900895272161162689545281485946795497557644145477389425024694826473439375577138917848520904753587097354001455081698660702541022487642133996479594412635291493083171354112822851463490734818480984019034250496179625858208633446613002343510814034780261585143599261237066743980973009105917380386564855360935509770929524962855224257765551896340092601068592893538640677869736151738786302299997352504068719562908720396707634499008343187183475343422719426284874961217911299700320269736694747523861984047442882953755919824647789744869534473924876544343605045363585032216184920430733200321568557391669426670546127012565170898619192757199986883973939893722177227736312120515050441345246036307925811225876357128368023662008814795815166902436763294139611738297841547450649452247335256167023552081057181424988649741323268649716154902330660141838720706936013386976475494269754821923921877267954628080616622666239398627601407563266948552425722089175330735303207745149981149141874205572272620227328158592103350148769073293381408850481129266094351096435748434286478142102489128516026814056908802523148408661553397165112691374079585673088748424851642349549455350027523320471604186320085758565413864438931546082234115545016058857715431347714681144432747696121008687229914349518020376974734167393188552924336127498549977524289466343793404254541206860416582580528262486739229939870139193287970224538910548015001212329067404691157601716842383661835541857632828630120086332984805870291847563107310856744090385217688896655385578750080605030551785628985211923748719271140065963885981600292409861980232688794865984251515311232670537978062525849531961665322692353942903843874836098544214215001782556223225032871624746545582146310019328023925641406112974634688397170170110020544286976232495321486921329443889677099585852004171488926249901847728347462166669842192652233848779988527381988106362051704384392538405457048098669444410555300076603839301234862511060605546076442919680324745722566223157799958777566354134241298063754740471862782661582441396061274278043917082771386355179382108118130183685650708150913377956724961421215762885731082293364777255578268821851902102893412962770746730086861811149263273088493828846706151371920762833687079537427434461952227275717021650427481588300595238692240962932138458829401394918635384301477523197609920342440460814768687925806744865987214607506891193459676028866221676602117067316018012690124650970355288510475428627156704441367824336050351815568003347104356364201323752571002566740334824362731873041732943939048824397512088802220945088925348344015636815318831096141670039398524056206589642211604077756196481823480717587607169485465845123527483404096408657040465615022910417254242896081970823924210578028569386638346904924628792061417515001443766174732189516878615596857444423657850426751295904991086879123936519541948091783667604503484799533622842138573266977759139469369175407618916362096265670077983859253779629495196216970047698986697039963462175584734196726483304773059317799643179330405169640566978346684554710071766273755315724306703022096582504784158488556516414855268743316346062180324391325097122330417959288210849613824634005676391093277028456562213204871133574832784775694104508466705766705947966458979457450741782906616144793434042162823313422653289441073374782525398911984550647779001732867429290279821655424031493309637411246253613675205409777826824819119821854168837598437446969956533455494378411277657457227804288347230812175076992611623666348792563029136113556377796470529865459277896484490492067287227946131053057208788824216339891815564544099948825445927063753123171360848185044143191585392153511694908350183416322771210216719273189535526659641454871218155571974913443912057615696616812186233075228594168428840162794269467471789946145184571491366749954274979476969395070081581460767057027188341352765069058011571152992661499319478253379916432512092081706238960790092616209389177471511095720730838764806594809092128666429219309369674760963374456156333675156069790706515754292755648777940606148559959271908662645842312180586606812243122966200426835863723723888308281851253465280221720644976524454345824431461653026633105335175244066860378117727111197514978918975410325275335114784319813410397646103793509635401066327533714244375146196124856183012638643728045124228002197143594509056489974680005132814545926278503290917536558733607811612407724781390458051740123825428482440215771442932989830443501827615263306959077108063715510255357360683483159369479536123299616818349154433587471993384053901708724818694828553083421579697494640130757889446090610892755645155712360022636858666991377336712394643528399176115165635876109782376744882783961939670305425770439510963017478859025039004562537206335773372707679107917150509500585547508885056556693678183445372091666818829558515118416411114064355672616944467334775648414754884510108578117403772841234881832052118036895318676173287274989327025424214218552263021973219501685252351548997481412920305168102252947955837334952202202572532429843908052535488893960946331094832770396401005291397847819323195037188431458001745713544935201701561737141844866344450272901853285525779885820053217060565133050923703454419333032786522302587695455449579546230189506540773711013618370132112367076502822335554239160174486132452585556929916422555972993553856848150771885391267463641917659960198339996363895088248357478051488839869182801629340203510962143226723606593458481614443915244321540756773018809082124821472786562767573894698044261751174267303735454734481759583197954744141168215437181595820945606952537280100748382769739083300737032795451549152881455295983631641769282657972355658213155530633340741837998523246118955053461174968157625310538392424290093805517845135614392248710823842918686819487701866086905112534891138175608502712864704665344190322959157241013205735577084857831644785457840534724272555039838875560474874065625498300755460097300335405563618631025784694390619051423059475988904039886621651918672108537963121326030297427868646169697430429934048698352603807473564157672409327257184569769967846906628728355457376771151221537771690974233447295785622233581518934229320987564386638843115877358214478752092624323648443259075713770052026402186265410671033468494109912666481980248156381476404206364164663819165082051389927537804119305874753155766988147161209910126833439337545531016847214662503845509645132170770033357702087787082682808773989228067771075519223422050472256768054784487950427116884294776775773279156018237729457210795419443112260805062296449123640268100090744834415853424387564018762447046609668082007960022234076769451714472696087872351488592199486721563071665707095689620835968194914749477059350277490057181538687900346836653952442871084149191878943260227453376382797281940522967822100288317392772727019949979601180948927882468149414113651443306378148920097160359079839961505638896923623596136216950132684205272250217061835225512777016820130117228313623726071005378046607273981678602934811747272989905485558305754542990662830832165840006976953090692418424084879697840087197786709575645936639163867733862947236130250963866795631161120408452953669142289459287498296987054728720894918230599572580232064520817670913518495958282238295807313836609443342920841073574442854597700547663809013597607748880907567593466744371625474993448619055962643617905320404587191444463093537744838767496189247664006279451036967173515828046105260036562568757902468131259687235222082041692420029310695124712504352699213903913107131685477955568241308614340233733003563231117461066532286721145559357695428078130878274326882802176039227943632958692196665993312384092509958270468211919264809224933284165400542680439263556863089035821823754619282673325606210686710391066334620366634597471682348364909734592139674305012001760932727004106124522433916762528718966740591347917184732342379394379864225438461487326132155276598901133048777625750368078047080746254488746320597687866927672034873154994207272987835749181165346495352203995108927384050036873500947561555439122306971751228815056502600739558952599843782566343464907192084777950320330341878557449461035010394422340286442882846032967187284500482531069217732716036057564969975718965557368172795483127785176150020832690312055128757623690000438170813713610179288422362115928115418665535995416348116887171261076750945329737225664303254859643435916294017077682380215419543033316979415658974039711762262674648359968187120755134231740428377812051911105394442869278625544421546731196437722484242532867156317964196677930330379994379283608418670306668679159886511752074912766668641392091789836816285935928925179954811436663082841755807478142931173315168111547601683861838071286266344960877513434591347675951640979988497493757786286900072996013050382834136141245689328966654259731795253669131252143859169269941405094428028150528679160738054732365304245680125143805738906643826751574986525023106995328335769197755272234035971171175448353753112610194592959946413654577451034135129683399177431352389148974008060213769017155234998435140618564839682031726035851580277158482619449656749760233317825626627812425186176886360141288210616999318594060754562812194278261359852626185118146784471064053759298771278496683505599384970512082648473073000139100499718227769745379200383801657805085926111403075287661025592929063598805835253066946876538793019876706936392057031145328877228112370043058943678915240328412486471299993858270729514158466659924900267304475796751556477417841786733884742599263929850999075657267552985295607370854238248474322113083929225069446814399014579946278338359721331768744855172466201001253576366565481879056207671605858882695432540694018887764799656385424612584467525767222183073587478595070346430199570172172448673838708711534906631677973214209872058786043628215522264140545883353144363422945865207668932567792970163642409520403746750200286502574580211704397535389770287051971890175981184630464061177230650144636463339506735318218847262691980355109305970303686962828141316881848405025345390715758489895652262818900842317067862985625003812328602326967678300553679157810944397686892184512183573873853805446219957232679380944966518709848612717297954699213268684355232530880213524606928429500846419734160182995528116311232066733995263215293309611308524436631924952143531071489536499744299091876102069646531154655207888578946533692842569862878972048596329213013495937660137226862584763274966469585141203946834405903099648620161341116482277183154188636339327606499207176478132591311491450809473406621019294607822615348758704014081418933327226752168029842839544570827658778093827772576112788310737176665669478175185548546474804264649622297905493382138721611252848740075326144906227242529020208831636609097093637026910564651197126395937564691509688958288826188643415494486074101080769577565919595865287201518117098109255720990211130685708818516877169130372364561680973799360617092718939596261570786493685269848077455048108735411637789278145668913882189549444287768986168483368893978068864289653310726021607126345943019042686285550394315530245675610732889447818009300341979494381824305594984749468634164399850910194540963819682889621330741332094181523715108837047682875701676118004737828174095244495483559300628708655809987432957350688802240854859918965413812437980609971572561295796102722123828740567167021903146715859317324302805017682055993332727843082734186827289936542125225810276331035991484558836722458631375839175239360893337356621585029774376162583294966022176121643955934604407064870248380741147366218471863297235814543295901690232721500341414214679137594886058554918327205018992279270112628426185984551113301738642871064851419819605810191865445150889688267049281673636137911083948745647941157220537897509699955164487050243091127115398618127965584925823159450670117128836238006672079389402821557269621994465916306542881614782551760275523953389510782460803633195397821236373385338718376885389893483182548458274121204729823688140604745990466128103302017201818276012255640006508552046248662306414582435358159645693611458336157240809946052052000415939133698822799546742773755174175181468015757236667454594243672161332115451053799895969509874371022491525589896318038988982423793823866189964330976535331852693127322198216310131086451298891214579976051833123183663518106910600905439654304803692922286946350999626001221152008241330757596051106005411824262355889700705089740127876528282188940202001197223259678735763969551938816999534913905694107059867635146607463145076997016065366725728886806028553385762133314041811156401285049108699066029295372279332849552110197097911448901424500651751744292387171148646443925077201318346279306679797332312296334286140032588015082275195132343973326150989158100713063644339646502624135921783656347168423798086396486237479225913847707624472695355150666058814758078527856057178851038567132190286072359954031092630887246302739877753008490036156647019616638815537278960636355359650468753833263884100440159232885253694489399073639505503525864691784085930432515873321095821521425025252012896234776807204485232516921623572345535806247803776248648321218229104839336935756539981983988478397578643258123465319723173268327905437268474992953404218548698848005743812831719980252351909090140791765608643645102093871272759266413604998860764789613005175701480883118044096132207818161150485024446512435744687312308156848942642086902672342959258163421541958640177492865947015708070564270147175905233805076561743118043829210002797107804568602247395885029846315620816706580047044844131274614001429576502955558097385993616808465976301583141178758412313583578696930983187489673476430331985498467598088196366390031558323032240536046002039189019153491244036572231985903808844461403132299113795846183749237161078608423059685669193630589973513785702490233527726740628635502508506929224874139982185670516756897820137801518944367537447448497985971675002018702898142175312230092442239357569583477879918776410737221104666606934859361807208703137266522749799973910986229107113744109175964741710069545641536424490343150632592133130725656336077421782981802348641340176496064535963104985885110000847440620742359310074935594442422553803013567932461739309329516023804378876589306766388373417471506293273685390125412175220377951200910818179844059191107348765072735903796059480301079985472656557103336467556759231014180956872737451797932062036060983611619799741641341407771814955783131197197532629226572950273891058372350023029818446962906847256572944430305418247888554645302382358298245036121309634537833641101674960586338270821502929909530043687795913518386595223695903885174029457748257544026273796642615232157643569725154992833582778477351904900585336319669459614058957100740342693364969724426921267939590502201079773192274312742094877922304262416258713758983723196928105294571258410216493569289052622166666861040229750388031022157203929862949140184393116402494581078975590826993303975298265880714831688134017303843267602448449564513125667721468577495640071881920639670142778407448400173507329531199389065735456748562137859817368638953452049088142033288661937604104920996304832541036710411673479594214319433435857098518473249629692857738606497761629656618750439293875132413119734899398407081356813967853589025261715762810336438670097097917085958331538901056459928110880559736124763800218125269975624755939499860040068796944315979971262295180807202658873409145673711123840768789369500810872676842064741506629363584734993254666866692625875742634441379041750131431496378099406446475420659215962800627141686489851237695639140161424916732270282963618247554593798262411415685428422758888971686571047588289620274647067150639805126468331343971374814850007918411522758099335276366393326756770968784214431182787130713273599745965627684508174648483861864357473767742631007528929811620974976352549359977892495192744362879815916324255976509073601444823394775045660968551604177381191438575416250126898433238790332734590755749742816244618628816665451061360812562409065990671715901072277061280455021452665935487497055147840044413335990396857956541989988605724845186986684784527624185744024434092802890618810670481027470014496815768870296230527564332910368152376084053365866683169920427837834909885454311756249470436468087866280031188030035852438282967518576114348234539470389688002607457974520314906445846318564253318732514484460165112967324008008317489372309790968098747344905183027715234060817799026433467297998572520088071599052231237569076750131736413360822444534315354018884195436046003107953455055674764458042398357941257182296554979525043022237240818082515293789865797249171752872501864006189505382178304119618266797824560804785384525799593737985364855702844752743997878242840578595791196146631560326786325057499710899903945662268368333357637610078008699909054134253412422685328689571884726508782999706430412414359396753330957934543501053178571836855863276504275528681163936972409517124073414942133639500951840467087965537074378487102953785710897961608298428430134587475979330343145640418276893862099765413660432172651475238370669815639323523547928153663223376239216789295741311711881103670779233648136030412483431144291415185859162876392653575369677823439829705946769758400353098793430672618114158455443410309699204946282430678139649229627097248077570930826423676299647966694831485390365464756643095206773003930000538259060499088640095591880042094465246235750384899163411015741186678026531254200592502276107157058313687207028118772843295279982623719029994812401723256401325742956688343123404238163735844302540897091359762403028778267579951694193177956825840917889921081928052766584473011527501203836048844062384922490736605286088132229949061570452657207721274390463645623934217541948153917100600485382474391587253685284938842336381031342718399794439934272672435143673759172369894138669170181134346466697302792453626810012990617299091423059661654904202470230915104707569150203223503609785565290502410151654641294462867146439281069537457611651525174237943992892830988753956448477232262159065641978258691517313148081521291758434421681424515372034082824011938115056988991956442963738831123450813920413626628493702844023765968732858152832341210843160323898849149143061638896461438384045029024851846832678139131087782908495261394656099607519690618331468221963753617195741311827827917140164127612543500520149104127947475259868749274717103033076271013397005709503673932393359242736264742219458198413448551080825974947253291651348866806372302806647598765487489495859123942549758759193514508177741474295963524876935967357505229440498053928264156829135923099154305698719027372125239880145454570407024540437849190148521506063434274921402025627156557693336111242675165683483131683614435789601697462567473982795828698916849990201260433243263522895125727765280410004296875201869722773648918602128625601110955964979324783347382466300392407793619287001500283931938029265123613710988500910537919033234516360490417780547054491103859425564865332981140184305928575441512920225725868983334069251356810689275399633278839931034174507175362678049645842424275215668113097593005681573738927964435237878781620368212902945266488792834396009062661097898275370223319918419097919099967449915578492103192528920775367158854608380560245744462891547973092145499235627637398409514910204755324939452028336862421734810363590420757018022445551395598576404456789081336256394094433875090708099893545049513412491087920819230435554559394624542052952966942480178755686279828036008098985998125761541553066370384981551535688933125980410532872820915268041918842651671375330696691436448109576872049379645229471757483800306074558341150774110243895237051067448303664283585914489145542298119136240052767713213431321826668950683406832831890130227906798932318359314788952196439785840952736236522411493716738515041794271808949618151791960402982790150311210118578506607056790619244347271130525215148329725938391506634487003301940233858051072698814988730862276447128908844559789394329419838087330891056440863028283130019525148773774911724029005772486105452174067635323618260540195163678566491750525971327711297867101366490406799447917065994488884273344150750398421623602403307682582656009842997338973439649257993628252659433379082300163045367490481376585326913930356176198788212290254115606434444267187417318634560628776958469209447154905033492223563618012125417789041370439883872233695617041927679857913017361164838905167641356013190486308971288132365406750628536786944045362466766800152763910361889272215540051064177709998983462507633332140684311309712069363068726662754992695658383605840265586071204441536818778725309746902474775951672824353920142818977867321391007487649091520639869983896782659253694204250500944890016203664910002309648165718629399903192542869063461223651280123626555051895663765571621003218659274259655696132342179503642015847895617477947797336330494757736811033281986067473692243949378102805359461019899455513626648789281648543237187123156237213685534336831674119049879609832972010450134741217385763826859183252782144149991697893029198042375427095091431218369516237447659346918020080030854080420776054665406026359386050940002710575800515657464841529998956964809964065701343809738866059911254622846786088736721299765177137998535024589499725403960791842215219648260551742618175118206909612515794341618530291891211331260794552743228020625375488165930788848544315132245869319592010237589030699355972629763987761160062644897450762818333406532027319741636141040881408890110365391142138951248545836817502696348611808328549217815354352318756601254516737224270964409707966687471396818628361477542713149639203262660116001855589207131201994000317857869860160888921872865387618308888311603118779256480033988882166806177070931870041638934967490274919548376159081597002639508934916102752188364901510315926038387793140208336573986581456381826275818871493384072690403819105414553049289623512547096281630012163090669516056345948569694977000406490044233391608371062499203254506685622889244474743636960382522658027954837260861133408370010525620908672897950540781687148371394920241417372350418887447986373458747180518335858237712388907574699257360808319062949307552016494143334584961896972194691974260014954106755243772073386286565570472967460740465225415002538314843268186967072090683447178752952056222570915379264665358054159533512657991813285622792964014966489583461353724598576449628568640317180075452142986326504542562983035224940080562801809303936530950888000232379092459969847770574663864695443415664798581673554326314621341138603397350104061696124967309872951771986167448646852282136193690859117242326912661531339475959714698087369390081122548304527520241827826117741202649013636676404860265878450531422744375263767575480168051118126839531757677113183441130952149907265560088506267081061204155162318026615795198480071658978597135949200235857685043593076012666173534055714765265248738453351071639605599773951754944837910725743874940225226191582798374127663277386244189168376844927601255477787323941697874719397567246040745630527079625826009161804710199730853756793244666532982743461982419678228171821660138604461475500354127043216694488140551213488812521037458038182245798897698127858635585224941837527038955000451892858708384905629814616166267964721786790379973280036752778290459319683846280688640596540487527903015460161152133467369619136409675806243668414613888565863207750323664312379157119201120781919265813642650990315817452091715980203777064219027096149426038145189254902389145329029925738489293164881452455880979020714729565733845437750605584557462125445103766638263105461865207581465830832329589485664818131229896472518874167492989656498272852156389750105411422098274198460361895162153685041049090823930059570287328806377582743826417814995730264253791858597506506094983345383946736505790693529947457831480435244836918971774704940055324386051112549070984957102221226226063120334645712152362137976588641117899966498231299655556933789989426393209108388792583293031646436551379202931730682024972958024793134010598450246515050086842333650387539234972855796380549301949295469712807483803946779570941157589453749059668250475658412722835632225160971086100066670546199826690333556181036979916714871063352788966730330999134094659252797002193789489706345280622605691167928848149514737121269169643704997190385666356991814095252950306696497325657262121953862605931736900589613360610037904399566850533964368338536637025081058882223179843835130356742578093159499078047075600147608708078968936722467145598497841129094212236387051645511023040888780719029497120519775105750032293212302170473525617861845418966379787504396163070732281518990261564310254389099802209615102908380597555551004415613417581340946751526805644603634390885553482961439133712369247967159288709990712326051428631879430269353538738747291278620271285966859046966325780850238603582851835196908713855393947073712065096985762293827504395816708006823891254262780667013065425188387850646591682214040757128933874090905514188511976214126702542731763453474204756435832687413351270886248560439892595440993708563235465672397388215451545545540122214217473743987697324779059149972438973949531212030247796242806882927741035732231422695303513766713990694275479838503588037044790823230904557963456549848158299016833567471772826083283085367641330925844840552618063430029171072911480707517944366588528365343298424712461365033105236780233623414356635941484876833060644041550765919065616688081800622195672513962785272539001379998668698766486068591161475836242218571931479569900249783513184920647000667298474543037963999839929837043535728756809556798940660613979600793741066999609231750667146506219933260284047738785371421071662006227325965044176901048111857193627854649244645310048953232869438242038131696319444309523963009636863593829132722463670941857305080708568080609857227575759077987241179943073198263970515814493383926413043590195022343557995312373969220129155060862310002616164244254349556445285999889454496333384157507470516570591297689229499013338419173687897624946361885112860729682293860537023027445235476923233041660647902729476476992696598921667621081586953466366266350719847427077305220756838225766367210557185214654765411682571865274752693258613123465698427385937889301553935907423126275321465476701205410702322076904582167640280328140181702252330147649366995203628103757307737531834833057061033263000080453793344688261899135000277246903085327745132793985483225190754928726790143690007956084103829538590177849710996449867742663232571122477273175713970328715097506726904936140771607804658215878614335330570888850493798064124678994458976617217703906271309159900762056366326166688423129939092277438777092854312497080996808909799148145007913821304195755122671486501483950457842143412492486791620914457402663735455427553065922664817127550655329797148116523207928339334797027697795725817512555596681802406894057404788173997089898913565810940376011441325638416498673548186060839655178969125322965049408841637425718338747872429849436546904382401092466592778810030653815754063572519190769427598145452701825184087976988908812297481661700254891425167199428399486394535062703745913233274152715394951426810485272028424765700638913481516242442754750387060667366304869337076517050529251042005305407053304222700085747410361720809102101458048472936067488516016459925057793283155927416551914782037480869908769422359874444593331445833740270353659356284673185757922013030465405137410307147995204453558502835251366537905019675407421819390584191503358844461720731427224021299062554433926575435418156348398175722911267272156713686679364496348764736786512828023885406099993716893991693258807450935363827971400845553760948051374276059270873579490208361660172247514319526649678968470216010411135109069117492826112073479722604563461148307443429777883675912389932355405106532657530011905766024475157819969846939387737567549193246405027929561447911131290087958053960142283293053700977375825577991764288566244933074945712105488349770618334693524451715386138720942040173933321754636328402756249758826813450551544162060483177960288080507865255635486975728128070093651392011793542393758250604722388473213403160556950898211311876158889739209199367126458963142669236629512175094812407306079296271466677104066613860175345055469337854185705763766138108925787982007236424388544078143700220292813086244032229466067677204673536433064045120162509208347757428657434696062502651235484104072083458450460784069240072627729525048634230141490816692602057063912593992639250349750464384934659270183407858630441223696004641508860359407821338941889947306287845271268734559705015126462992172554058195727356298736789337140199085098378368827849221248808986571732162172991737991801772747509767170552297318869140118968577929814155780161885311117421288077216166865971370451458842239859068611392020094454791944840957216163972442252568857556218921455874592682252063947580375352317134007528150400049446469556424752071906524889623517597210040353326946998144380100209292988456358935206476943750056559938885443365083192061685545561560156530717331276086685924056138244832744003923232382106000091892677485077309939483434800714319663104678319468390098335135616323692564753669295151459748540989058490824356713523944221936673235708819343874158032035592403960242367294795133411711399717406668523850511119518281627794059418424959519666621703804575149778456701339216143349309649852668412618923183530111671221972532253228061145131294231984009457508977360109028153581112012957974184465765020392378705063852769503186135443022784064527602698201732192309591810806357861985472665081505255884065923795696820950669263203245877302010199660421503459260365639969255350646692955822339514386407424864681591224186233876403225014211436412371312119730754940489292942467613469214856877307470921675306004314427806625719009033376351093718622801935485104311659430107573719019954580904195399537932951334008504361803713067478341086367045422720490927777143140626202924163792989080012448291122333241947004633636479016373363702245167247507906469928960331791638876553752229622758996657404516608843276182968048947012703690882193128015612801502516774930752249629788794901651056653933499949181885928560380457044056780467049741729456279404929013456359233578339120624772614814561095611620391467586480293166400978472366194539238759075602044577293592138046857353827063118191781401836104268459627716321030559217547749256800345595303380066893448146462774153676625304881263658022842540497966353836380050403957784425758293302478688023186805618460251141664769095576728359811040860796190750438417516359688369528806960569491363376570416739310020299933862290369916040940378746012373825443099541075668451815692253538600864685805045220738000470537407264225509455041901806000989050911385201885546414187409533378403140467820212223794695175258635583843722590996040745866501402374298201733615319509607892642717216780182855802625206964126706750954973249729537561842959163117151030339222315024893903763909116478922645532811253862537889176881504786414868530418776361737248752012639058198553485291568947895043518379115036601040866821575731445278904152723633745580127471059045891438212941695129701194352333376458079927550326730424150687953231912359729609812506814666192086085707888085941970150799561508938903726284607985765510542398509675930608906905781864847197555534114827768902134938608357090807971754613782015870885086693710851295957486188258193213084987289805293733381823362532525650773833463294477909813308552229922506505880825842978007473822500196185335144178955800040679508789006950831958756084586633398839315419899350289411384415277881634348656352783093789627881427991003251334331513234119924467523667762389490878941979209708690572675936322419137591003178243887038112821830041218789713085922058832318044730977623977925829475866800067972726051629787674399231275275109084869212017590882024530801301879946750045142933151743969754244067680354830411322934289665738773662175039124821690224521894052409481175865098378641327077027943979833383879967756463091563603823162591516429822048985009605354734222104104733316224627121601215676361193852968387420677826104938157867608293984755695863630880211153348851246799937709025218239745239593473351264440627145296572506238966723275106479417045812826227351736038873608853646857810129904356754207177468434750758370359479993734332393767514713799663404773080059402827695823512173351771175414384303460044020327008233141436913186483378350259974874563529252808062353412344385416718766202703840721128470981757778126512583000241831041815032411932013342537759121352407373853586172815357096352800156962673116305423296155592735874303622933342539018827921294206808315071777629763214650021504883295385893887129159392503077579400581870034458745639771242753548694909129141696307648115674876409120657538451075012679242451784347964067012733096233913731045108945686965399646109271333427277794012339373963170668872067099923367472398483624006084349739222369487830554667303544697421548394831362416942391706275326047202175079419328840198813014212046147447259920839341854418621030209708919371857933477959458356037578102337393944406976131555670219822747153002340062979557260578952835589342057017479422904437950955455418394583844192240531769943848942905814837677010531615941581544218032666371671937313455427509271593119844051752951732234656957434013882862529414837943220141791570230144999797848927730359283459692856680611202353560074002109102508916510275609969008010530219441046062814397986039847064957128280353603597227220181002639353043915460113145495919406033658344784703934912790394386723820415367526874075321471070720247150779597120344833454740768863022000674086780283709258356081975371384846044221675580691619718123856562169647293174273475589247214109828398546263820512502452481660623044508555868974685770153404129790128699200941161799324688759403784883080150089973968299170982732795861657004332747666540644000139552657599855134675069139501469713443075362770855081332443812523228554184973939117071698989873965055719567081741594984262833612589729128364702387731040846195497898916889730726092570913454409051960342543940597147288760969882781636279167445538640012355375022942706597771649841023541016982503359352860461595675959014555429456213424352911481952055403573785101114049947838590235917580116239098925802970331347475800563080267603745206010233357364020219697534035837707859895152368118147157013202970959528741687136830866263001210162838196592904509448260094044720334081143937812839390841339976468646316686689829340716769788496065836289514875554443640907902720851846792824165658205884605471078034394253918470212086540201532675550932241767300055985753459592722494201006566807150991696751965946883489365983709986186731148054678689202539194871084163301357077177997639851267294335027626189830662484269499231428353627219256143375724784492997464409118701474428141676381190596479709421097524274570628489166985676985343846625312188880767021239387727965898892507302875219624067688408686184246386746743385069134489513880181668552501666960490817547933209338382922724149488010101183600871244190786129552042198393397530978374270539445981782634564447607308763454151042075687664934141556510543007620861856588321050825628091604336041007399572228381966239518884056427577114545811643199323877865262221030896921236751059016748041992689730715706648350926216608618631166785098743897269568010730034337367948887899627443444381923854573437758731924627396765156122221277514061462690155505450446350413380749354663403591607658783050761774726383529818385173247731352236545409791412780562221359841611473343031932279688633626677556555606156736316544180713038551740484619598427425916760215373962505602310531345049152146360183764372010187127538460860920188404201274746164435773295725442268824260040007932168983045426873372601087772907005500110378371367377193087662974996894183071791578739869987965961925539594095679988193659186879502245881518251517126587923406945423701430738464909033562094118811458467194841314024125813483594743661441157948766016588394674221947228095105472261237703339336343714680544486301869934488673714879269237421946638812147563927940687095926468460815126425672650047489887926951806203362789827166658856027330461206388120191106927791723485744229437941492029717284789362403370901388791701052788317706541467011072979725464246440706816414325322929989767559904390777594181108318582085373628190520565280749666483484220609147048638911675568460446439288323610742169776734395827019926555114912001155241168218731515563401899115629446591699508203337965328064362815115444817260070892909664087993378537962986144057884640621057920695877713791659851523846134611699780091992519171805272257244656561640994719761687878907634745344256877663202887224927047354802566765404148025009814168142748637468772141990212214812866864074957395567408727459256793652639444393759142890879280520709260298801426996442517118196803670337342580955164753850010281289477864898278022974962659047218632768338070897338968395074954931161761818919472574618959319070665132626898655418018664833639881568982498493488323199290579748303857584190192869191518344709237339458816053276649604630071651032910705792372402426270054166552926571406517828347119984680295012106121457753646660446863126992031653544638361575900382024416170569532143114984891804421514439288078063315964980833641920260942920479100832626964961817194281305220667715828973041230098300239635460078539722935695715640706934856013317152625189131281860606483204445670763768215415747732481046833464669325362600528675910464292162035271398181642067328635225169263533839086496037418005610914130613714094968743093903623625891277066772470598015075920421234317216231316780992635335938156176976301508756848825686124282480810322456026957893192002163268432830535097049371629985979288648366881885336334354897451558123606173057511702080715879555397795241763160428186768494288857821966930724622494786352449401223965104686232680297472216163347612595719399456468792105013996734878659737972551953444702471218463621633158531697539835438356819789725323631582438192609612776929345585025077009683771610411096360123733798828963400966601132603370795940998580870853600430279734044759708947599302273807676675567047109449822249155908862212534204234985337553341226235982982017502619353968033822706782187006596902970521051041489743527626134094882814938547391393660410647299172123296497678774001124687076210980116937219034364698252650248395885412156193927692278724933043985213711643446240957484571136922565491884403927156035515990286455212084203534493424933306278238474353724117002199399482187088387221948362937195110954242985144841119781969312625462824825575059974511160973489234000720715433093565296227127236852770168210349560427176687564256272459114971247466251448553430410188709790374902146060323577309688496102875221127157472980573248791073661982928347912816637467415564679882395419784515354437645464801943803949999892173839728236703157741167862391092168419260120455743289785738740742003442573755339156844366521083016197980301455332166523721243272289593822236801910809754728605279172512226773539344307592669432410112531981800427953700011790869092359979684362809002737272542525871862139650176387791241938260367278617141005284296451825939137094502666710005296297719811412200791433948218582142221300028510159802103540761584044330539286411272457123162012230790598251159264710469211731947392542520449259857624343402816410423751119033532720313018305612920712411686779995149547887710558427488678157916090864463009919625754110201658556527667055389582335115312157312197797354690392474245577052320631490000171264033146091368559251963770462182872034303908368347659926828244189215332025633445929198267282152926381062214516693205479775754659624048434933155693279146812113258342806683749560982866341335653073651887776016945611518422341850492878362092192650919328941017441975021326555071359576349165431480528756704084551541702774527360209238123146090089521039117332744842734991221988829390902422367261325710521762263704004772768392296608757048096553700717760803140964206746226136230966273909662812858952151218913362052385166884820760387478357941438476505198558983132220124958613348591610368799283151568570334139408329115660686414604405149272172090284190993041049982970218019614969018795432628023265316729092839342560389499553987858220059347474652386148241358077885084095174997407289744711041175692651598920359063372268682058511978292481643412816989272914584529622509554166015851133796925615372279954140030899771754503310372720751779558324686335245648084921493959385788223234639994105945935203445960798080253815773705725651499674195382205702941873949678503919278351836508060119917200354161790067269133347517855140095590536785644043527964460284574592046991046231351678038784613264250064459060525231709661094142174949767288361292786505761258056128262186911298052942794256715082894155469990202334585647317661097437116979890451661703273965208262792419033003227575211049983783397528662939056446280665910819580962035137397550763440666473640123223981582906306310293952193773116718136626560425467139134445671047076941444941505101603892870049455198665630290107037874932691325353513310825822245285302309758138202367038358285767875769543291745525532967562896192832100756466724113510749740136695980568684210927147285633317659384751743825286660651867355975793128817275318777937828715606341560732331884529659050915243954343544641029826944877274380030096386040907110167217585724297540494742733106155734353072292658496819224746262087508014037030130986321334450241729883802469061916935401946860528539383970065154836342142908466306714401323128353973261401530768750449133662707434049433730611886892090190324986644037218551603623777360551991352967778781178969053561123236624062985342506037334786917383394188934205659145955798032174738994068885111061577721880641522073629860313803949352825911880096859449734139003590931786523952124758903634107374484848426892795772531927044845406573112111743994031276699598328351806664770860565155798910348934556511891125485308285783005707047590938825781204565586326982675096345634634048545424593484100349458523177291998893892143584396875558002912653762790242740988576528379569974971123354241293307925503114532634655216984814649226601413759133132412301749423494369205807472742518595522823410488459046856155543735790485062253012054180513270275590391635329125832425017066415925841217787821340373527073873487646400604548201178528507657319348008807426570976954779432404503101674773153163190167250776168952622219539990630860862569420231864283376741160900159345718553421637763703190710463735655522887301909596296227341596382021993572120759029660673925023607432893323992258582826648727860157275317609421312178159213206745117864467457386128939539565324128837384459785570976348472578744290094157437478769151486025512366988265886494188131696322186874860378487691318500216320321863427035280588562254813780294404374146783375993938589255757008623152113055382214676132033692334777040469396345293739875561469400261874907877922384623302177683521088154047944335038269877394606208081234882674578729572346168013520291306962119538395428356720372750705549198157062864064592848838705007571451350409934157273695858349765937476920292673932414227107470793632330732871828190152252479112938871194588888402447253526735191811610014170392902191994145895014343550492352740526277809344518820461104056498113960928346413572659249390920738542635061135638931590836109740463736360946675372658443121613672618876650579678783336282834823407740353370772549099382104772295792944722250836401522882095890507678589225734274175291352738809908913373901246291794665215754297104107832410163936749974236733295241642112711843228617319165984988439589708383479244367678716339939703747413448659947435807587949324828446395497999626687395021273736793636685466411368726772197150378031448811844495594290318697694939518059707034429635937499979392547471354781068174646402170469138021164108118271902820316308000086778785075984171567658780210986982972380185725974952659252674975807015030237867671825615229014288797459877109667758099630698484724146171438579719962501169964985909538785334253584500356127771511707887043982750399154126740871338744206443701259336750397431077888893364512544789719830270969881562128512381905270146533466128195506194899810545955634866154165725701297890606965906916003182281906002989503915055725726300971883935744725545377399477655214756799619185205918261835653900185780136748696384403801153882130261707288810569701429626430548750699339261889683795907219547317951400687933990044835914667436757917936069801171531333288192560936108886674504636983143543335600808211418922511565716674152360793717204611852244183626382040569824648371449400478886396477076010083802271635833750279227634012466752636274104864876229288836077663873300709729515974098092139976837802605039118031980421769395532478240358488158693864519064313665360591482367045639499718345717288990608442732274789426871754854927549358978971054364727726201109967335022705421470396383460935421033655731821587948997154515897859589008344030292599443233854383906565632525696269653223309315449560950598553827749580719417131914148153572755986201248850095270770055617289707410663358193895249850968337962694212689308023026739765419706942270401079573315264619049649023920144743507369923525114112793323465147516189458701082431228398985625443339323600939684471347915110519450678469980514210444566623304803386461504021645105964849221468691689462235088287678124177255410600175487965374851835848494402588009481142508082989777505060722784372284667808189617235356032417206342498130600487894544750842527960215774094909285289045467720928119628395354912637795018840019271857530704896144800937708104996923760607973325939883308772267674891119145832069314751721113496147440924724029941242818641984001447823433776462253858199083865282747227663371430847204783531969446353509733203621894522913878108498422813140237654013739994063748934803507355539368142379830015880840826429730080518621598311878813805466885108478185051492613410103889168935641516359233197246945179054659977117633631928563549446308390275937177996560473927536365677789067584708276627813974318183062394345303444996741701431990964046698077944594777740472471390122652888781989636896110194100492915455354480740579049713868193456992623909580231876335546425643206488017285869660548401241734489010380992825034509215127805726436728265751735078797883979163399549610731835752452080793633076552022881865982494276092115193884354949841440793833222104982690835567378044713083962128478279678069955458930005581538962620745210729395527923914113646192981637885251684161772511264843259455139721949633311403829385368261018751329195658692792432871416472714999752338142207324898754213043483449843720302810718629766385898551283315320581530327008233183912432115571772853497448456044800684301045335176672943698785461962963409525804553774798067006823513972277661243643350215964257536478539183670397121293856660123895556241837766599175533155862865277300273807042871332419882123387208263802550091700614837971023961474803968439519247590538838344383745057932194252312043836021798370687118932052507489494412340881941757206119200820169722369212772050557372763306655848190722539453068863207385213102882285796683842664083809609629079321138062414677126369760874993164452694541270105455166925824423649631642996221584018362060050688859137166848777617487094842725501974981343749445860160109261952828256054067923735296124813240965552567846496858635329453557847808672126973213140534097800099682837269393397078632311044424050762800940822212484884569875027695115453989434069379620689505687734009845024041743636191955128496345772042968753563403344118561562987291063929187780690705692645203911337774766392143788794401219224742395916771993450498527401958160848795761169938004656405691985544127739326846359206822278621201880177438749004682066391992802434207404139119524232021884976278565183560937661831020648949319334995126098384695407857711685640257369208993895751756280015187099121217579877501532608718302127654389824132763676256267550486969279348547051886894011814534794263144718016352482311297482948840616586820000549130514420657738914879254788162181969602516207740756325008428275263383848050948850967584488469173731256566664383890498513964034237746860413807219297910510580196860221637441474552712460181157744967754666116948620174378478400878386181970871666343371504995078744136767408937485728414596073715898937264054023592973726197793381444128887845144749370593071397525452015692341108175539880522492938079350980827241727432743948703959115543422492290762331215447384223737975283805507002386641736831395207554105805750399544867920187331078646803855187236467092141600162019487575992102882166047667977080887985853844614673944208996713257334391924732958494252739069772800461997822291180794720725232436348230997764744486051820651149024357074776964277668749126381645184696353686286333136088147692349061357263777598667826132295090610902687245068465146491998514230217945304404373340786656951886859223607192835805767557511461266816056046303087648620417014403034794970156976429826837838025882879281970364841516055445822719385305074295942131961926476607792160346209583944109722468185836197971733712656815425562660624837984924172521504922422600545957583970902908472304907286844576040411367102040964501280046476116708141587947640723368124943914557882678812463513786796993328191782333435281210810901635850567598684841115430334832946584014057789242971119803252413994960248647973042067218180994153773784878723314316584825784342707860618345601328050194346082900656585829750599150672633180176864653040148787230350895177720721416595984981904852244328594302607721101179290513148963182136749177638776849541927279234161139838942231818448528278729072924347630454767781355667368549875884399431786558335715609558984956996657103063618823820029015184050450939612060159478690589140217092005365799010686571685638431990761172038458298859815921310627383247997474358643303479151707043265347183240473302726281742239796568708192329871949753454647666778194966119873644686858790573507909910965511246610361186564883361306271643980756912159387025614846485260473600293783565510201587445624405260394095271873889381120278972178860088693981701923541779210321018952178807062820919186195937261032036539938674247867450899358741619736506233908098927544121738516458128458601240381605540867872067988474314202026271408425868210773167392273748192090657344132046855195545941768410175264958274512407964165731815555706432799140761036559715195502986335815478015300232921928849724528754503101116447290558899634849776186776476632946056354609512804465643031850592355940354839794100797530999052790580081028670338956362316062876604189634818058735621705997582391779198228292627882023757664851077472707996144433017989860956451321799090116365388464468488829472281211126599457009375260215829648239105857735218108332034985064340426135991005818476000422014164629290523637340139484526569077540724081050713479449326201308742418136362178997969869718237214597380664686490612182358827207141176188117634969412385838840302540356267193206971395427079994143102647499912927714299605598328710594233419831861634863905482238863044019986208961277909506538100021859922599280853042757482532548693957839783812722952547561310809409450992145274526949365658434224508532541606453266559671148000799073686386828468463417907717697215647375396739308784153642892071322879635011837822202914667267224224342050242200279150966163609572701653703313734778066877609520451326312370559213820367036485264567428341675658575117369215652154523403466804476924808214606816411624574193870396402718658864328069742158999325727854585350525442645073327079581178764685341545123475711372074147971822103604445510832038657417728738570512111236954796596118574123968560080895839534787594871139141566030010165693244171847782400084391386794627145316160346852953088686340873171520173106751029483311148438524867757982593807141939116869048678058703592789051178959902747907275347403871231564362511940905851806010091341137032216155370458271582862560643164282607747628194720582074575962965635759715418010448922449156434502959094553992656265661939455996371285564795456091335321659673549077042126527592280999163296464119916846206327786836378840565163435843502347801380031959402888169112762254325711130073820698877135964237445450890087518948962763679195418939752801948904673947724291264481581605775076724315310652575868186224640312583795504186480133630844975630791337242923624533780770679519514002630027238010741839176299066680264678156612808679157224313502754961761619187358037568782801668735828546257995590878650991536755153667388620638312070779926376221801840619984276003665976198901658335656383158801906852708923380616473890930198659141224773136733517934396219214215590397627639968931695252114242826049689271265216681197601480753762576735192413267156501641315117324636077940224767594694620273435298894646100867284590022236704154173950327551365217057143860882199181109269144189578130777247361370521102155133063257594404416615228342308867978066520793826220001812490808884398232896810567293709988500994910551638102465923517002556708857726822770180579915562223238520627304993710568429147224198002125220243178162804777906844048705932027440535465154327309158902190958624279940905969897466210346385136622780558494569842586108913227361195965847459865610531300528587136447257789136755864787881469589564459088311081222946522910290611174653554298699941638942300398151498282096703277255871562310962719662699534518911503539773692734818873147818747405074726706570858941583925879376693941602665230461494945818029078453229799279025249314300877847461236576349271445548182119674850266149554444688579617327571856827131137179754099066917170188190227530782062326666287292393210006219413386085851607088293422600636544236437159130172754365927548709944976645929749643892825505385286137493217781951639136309534128294764239637053032842274160643825246902585342745562461195144284613386166690149623203653702936270681458317718321753893286136492623571808546151811245439733819437241985279973360790462726527976845227273502939783024034649718062453404969898259551307681503932901105680757962102920748448511731966258919262967737014469012540408419153238800850392808708101391406603734534149933420921109612833860722557800432790269561706536862904363004014303182215289137227851688158916121047759095734596942594072663434992337812056330770007930429270348408114263161462600949841262404854236166494011728550707733930185823830811816975850712384536973480084702476402297837816965089036639710360266327852445904883243941640938632879211157363859660138229446341595537057905894073249972240847020220961175738967274157937194546950915916752890026661990153581505871564081923620374834798312768547891840704105227036939046352959887606998836599193372114785720357456934382652266154071452690343692972133519047493745686918404757767721933368730971071202022304592532850523934395667438937993038609862607934126639585967759285056608822548503187031239928716331959231213764712561775559630117282671401500740923192068896055796856249430902862347672437916149802083948099234938837895595001471911066732319072532823426099707666510315979393288562081225737209226388751985870418663481791665122710526999027690121071272661860595009555360354078983978424151163118955553434407361475668393909409348520120490420375124266275897222022811280583333187205941691644967073785900426764253925557100749619414853608150359180656041377761835758454426562250844718941796443579814783311054487616540230753356881375956524340215225488322716016463718486603007930542384183352200848913940747505941261060115852585170965524660567132589188574261917744164927674259378566478319648454512417425834049428549672445955435594891377704941031418319764857647417821452293819857944269851975520236648071890740806037137521789328858086092785563418973052582480357238926710875691720528008432707030656629296276338799027831290090660715960015845331947268486717296204823523261147073712942739049092824875496005319875661842429230666289363258175038839147617698571910060092724057184130509083345418453265496577908831915476957608261147731140941441223232961757659133823966278754489781488574370811800910750540761399363545604775574943198695448504428979723817555855343037970724786925829648344287432579242245209311809549948070366016577144120947008799942152470815049680973598348289876446564457618229598275012192108830043432323701196347099270429221879572547788774794864239935034705396905837391318310541213284650290196484991269204782624411249963461077629555272062605480883071558791365141209651489462442657493984131266003672223651958339344915312602655579541374344868689234078523644674584032904445125760049742921742152608297951274497738893916064493359106287399425581599344318197661403423125985660841956264746392184979056217836064460479476821054887632111942061510587725614717983275472913773887744007805272459758632193035114308020940217445177631489662072624632050574371844564139398925503043495606925962704174693364847082123478724182179927863768154933206261964857314500969796866149194078784538474850702673296142462624020964797722191001542267306218550298277979315912922626981702220663364382197533761805684664047262623149220230744441709487970963806215247035751796569719916551368158051400662145565103038990273766557340806201804606267620035777643027838170378173866505771121256307132816247539370852405703599871139275553401021519550452591816503453341408511909931339561042019691088229019232146051897887899231720553802256940373020851596973805353667187719741057427400151859043358387239791701569143450607103320971558986051641296474214831358425834667744665323784446865703752000583548038208011933624040152357401617865807535919607183458136225139154759026047366527440424818278118115944964846825888617893302742391961500993674772831720859387406679825135123470340751498253414570634459166248375390034659233133917846958347642741264757642198579983875774486266351388957650290016951144271841957076194923626946167886815086640445528877176400963880342559846496376695330829406895414638511125746891741195140437492946560135513442408906780179887066834462608189063216621345156953589455795952497954042880330849016802053162133791555081353830113101480176218900960435027230216552019569668507309510072504684987774423275864468810383703379128310247144474893740276994730106017697501165677507582521935802080823757814633852569363970526491302783163939112117095848743991133255733434010345550765578528664177030643754687013789309900521068867013828561496642057277020905204765764638516554082120444373044817592559016783281320800687106894795965562980521926495409317415991941777263575999080474913906417773846046027089538929158864402454703491219752357973783820721253720549342941786334141466085160730271500320176625936410191733815837012286433466527715433032522571032372605187327991884745008677422925560043336740440570613746572940587296337303599505139282816508311202651805719433072921577213572974643402020813419567799520630694130719409414855001190495479794569106292389533586110059176023772313051096974834261575325478082788726608827819212483289121092425245995457956330021767814701601479632308900978494174874130493464070800653894540938760827045113099418707254976941089396984512492098682923309593222854494088587171995613476574190799978438719357405465643527900790297643400700502339156732405096308223395361501400513390247466526718376413629262284973329717349727842025699779018141229297139510391153880514841542752854423805214981825591224517078912361444850978298068139914810532548220761926271939261849740859953411247061567043472328249512111190322283613626228552305754772766333132366235355267308160868825486233307811702709564101589485577238725114996026831587787001200749244360500480779389362734584025778480880818795970740087082324575451749328353067491248574288008994102974845087209112414712657463900999814506196846591230519984769560115404177415488887916689065150339176203564568082048715236850901081862890851710977002815278691044204988286343555253189734917148243744541141304407876149431847686354216071592608358667966829332121668954044208705926222984812584708731101253003681860636425706504736121011018304552674277656147654137654699510979685722543085772867249863378511929079162904161724123082039340207213241072955427637815319278047391322542270210565473537396017736907323797635657650970700856990593119638135712062461840456045415788572675226673636563070810818910049628682048822002709726871303403135494578276613947463621631913946139628772405344135481328025505110568912542789389039996111338287919511806626551162426143698444009829781767441674286098055171194054497753597189436071902482614317100641147014411485022947936975131578380046147977507010678222381987413972427754163587023050267105911757819701977783198435955233985752981885875561930642221580466565717227873964697573207696449636115557739417755424989232120535596071079371535786499434074905286673809119072660981747844552064562248542842413727986123535465483226258220078171808793883143010208342954584643269444472254588711968625164481712099100691513904135339522124261007423073463584436488166402310434315721230262307457281363961714130543431848304453318798496404968825577860849458033256587705869431512628995777336178918476043247809841651702486958504288198159663886403637966441494134902686070732603731808521515699575186487563328315343658864907060828120375886137789977505833041006379656639900238178709488619256133590359670128710150481926495908035455059958199594537313064636633791354323546005969815963029911749329751839280948694842919127861143123656412639954716249419205589735415630449126250985142093810925825693586765291267310358303272482504542482768330493198546693420774877331383582785150230312617367480460224149078415073121698613795219117820160956035241759297613834653690633915447896119163559891943110948680090423310133686162025229872120266545308401044635484779846941897956949799022643438696937368260033617035167345343246660341202872380408916785759626256162460430012902322887753146597530943783081987733949919527231733891108184018095372762809629580475426636222627682431871272804941275472078211670277769555495323214938697474271143823290791480821791811454167999490404169195672786747237743605385021728117655623495586852794096795303415119868096513145982502559118890178095998125296749519185914748483918248274899150301370861664267584365662937008218669786410270971839762206147591150037899775314256047590374571814700250214665471127405033519549295503927998172762317220191989255217565419725404300930502069070737447002383680328835838143305484693144733696465536087931894184792331952988322871037628367092783127319210183280501119295075635950184111113812507767071979328143768506523435669120910097494858386776193259160010554322632835124777573315170014570679569325481693364040840158617424615125635087096211772687408428079875638987510979300694445756577708573029090814034905153568326281715097483219454931627786006927282061077461564314772224272070124500311890266833122227171717407773349388545869147476066724647510540481457133368321320925636946565241955500381164004896092472303535931578157211386014135345467617909547055248767522080899008138681868692178246002425482335281727923375263944781745021053929669815708603923607046596391505442751032732915242986128873762335384360501181547941706229156546156907927606108618364962547332670094960033321706195934196595326966843200915636091748788422247013205047509623104399765718059847836231805231384848805724402288415635388983478962690245687402826863719232492551275244460224479235966800196796972982527994964406956505791226398925792738709071880613983311724843352902271050417672247538742713323432359320679594976769219991757686804952730735100707656399163757167999043240356877418064836791716315009545547624579074211917381706593988382027280882400316785890951585310196555575471881594670014681959030739410052319576453529450756803534097763161001886552908592627841324472639496189456516125431907876237916734645894054574838917589257545922625667112508577516480649726236820815707787912810329040546494562304669066235884649541746480335677478253214445894922951060250932874261185419332183517879223996822023567938509265190345328895287687581676949225055596342895379534529355673224085330568894572328615814463849729301288942785493089761959290694932906687368810806231827851301229794280476187925670836473010977392771138051630082660557937887035081922720723794905208364178103981719594243089798348336251206789266257276412194451424901922401318859087276433324680153048151104197122287339006835965566805042769566922203641629007955270787920459154859528525661578868750193836881202074936260212075883808632564029555602832009623486901240080194332379856134645980645762799149143612369169090661300477856923442243165867646256890761364442442714332147324206882314303350628731692857264025737970276579266415299516528069381959399570478164982261838022850902523976106347744440545621994723663928422315127952226644742728804367932806277861573493785832467595267475842208745508352130098006668689948723802871212896036493240301391804380418335388483143531659786017765109980585793253261465486064538331244689699602977361870121648367073328508687349529790279782998058718303422521951687783574973919466560665965417060580068186897512435434257116421477681660507070341152889503915629667785839238378737787653339854448418372575604645772778929518660411851339131272651867676326874876927081134863462706676406732198755638495424314549178406765054784538106756049423649458477945560034435912619978159084701038768934864097681721636230214166383091464780744653886707772404290843598760852646023035143799567783328851386511563742617723007616163170540018069545427613682282183670244341435397731092108665052384787184879612587027307245566513350803548660148887347457915032641400617093995217783973206481029347786752901888319872733542446413992162282794228850207340887364422973762576224925762917893942198569250775349604712228890497931677077014846934306958884667092409095390327560864899102274024031575356059599707029381683742326819103858617663820614685793654251134333907060525125501521530029428253418998571496104427932815636422533380640924595376902362783479098455972949529787230276450310695062205221162275908074367631651566202681094096208339363380144639191513414352904168674496383214570244340137092314672948256328974648572243421224322209232735772823855881716768222757764852244924170835784397063602085189337385912623402465847723013545013353867232330723016483810843028290775939015366167037998436808625728873417570900957553948677910564338452733108645791800000501108318229895656344480783875270291687897993863118143361322884597968101452882591709776523232298046477408723727561028050681479093730376818617082869834958490095567574575166951255728067654645187593036088455483081924955572953246587067509873434239262912970393972414684982377436956057354489352096938001780444803482758433858283059671040294075055423760580982613538010985197175914877832961100495221821092996139703608674408572933443946309022983493349776093993168451895558595410139131632299910914019855611284989822950342153475709579989989295034037696290433856603271370089280225733409371642328391132434162214809229970852574839230048163380878281877640817724012569406897866947422057030807186630626442607649069035931747000518426159855787530763311504191925408528353766590817996530904040277492423165543161532691291348968663981282241744957802918164346242333382639154522294307761819204875600137764057477741419409896987653610753458783601132262255415775224559568571662824990140559191485404115825672019033031657222295040507824772527629565713118110027198404474503587578356662028198051267608950595353716126223609040133996703691911132630858305968079734888531777201811292445488416785865359541823351652156952800745917058436035868216608622713009468862633080608311749272740633495788040995759759136813591618300603982343123290675776087129921267804005606905720186813527927043893811672761889943196552867848370651563956747086159490737155705852843416862008978838222492095327275626076886854810692834502865396748021566237001422663760510356348928222645778360468189273964898566510856553248070745325619323965751721671496654840294784962411946749402457214724715369607471798147256273343126748498494836257873539238478614132816400247629761095551925668874563505760525547804867576372084933124515094159155822095676894507481508424905452717706233841341006100399628891418643374727175237444722810634535938050657357688664850147347477155122070001690655855354340641228484104805711085829475667201496628843339963250982147274585675762611077212186411713787546517863683033716371973130283042329488706600416190299274405117202629832807672207889728246150375764870868793431562579398620319720534878354472977281564111600421451716269382122016721437233636780338585404133891550590139133932127203988733737495871502060699204713914862960285410984545944241054612491431404738868399606189352257720707154162360341376514869591631181475668840266164606625510327780491897535785248856716765723682550056931890446254960282686621533191003941997260599068095740770084384920211942261535202724685970634961150283555159695262361881274000102374807451982890650765344859701293168887591661850131680244222555824929409746134375331344868941934037516842478199788224491139677337830833436580456492048926837185619028921097101478696428341548687210116813188350884199940504765736111845908652154019507216502582175440626526875941047409983112853718412821184556605624227318760091419293148800355236512512915809710077769604583917097296972022291292845813776414794466153738688397839659079330211428601308908796781595946143465165920773113332186862035231533477789646568735520963685168854245713303985579670183345784610483090175246028560010852403704416147142263776234704632860506058641411158997581794860509357329532903038851529553332359555516652227390766388830635209009238312356446853383601246357797244035621451114010803124486138852209824875045612484110282227386055188852759793239077542635283877382449944472009803459416339032250114713574656656862677579326605663969302146171045082888577413431725038322730159188500229389091027057809674633296284114116648142918931357343310904204624109054700813902370844187961654545712141477141033944570410724585440437778400315922545661191977679660018452568244672143236517066757632302423806550752355356523926065129571679070007627117332999404938973601842759981415507171709121711945365470918149063098108783383126954655829195714183604616125603100222380619378069179595482260263676424604584804481405462398458021690416253729820825468947152304373220504535251744211576849903987620416546579196604301613748799300803846347064762393209394119863106924048355167342235913718301331279287798458472595892241928112588115345223251792334992352928503888849489546428073299327004665510022960106131900544286390281546822636891392405217725858005129573985637137682026818167234757637754815196698071032759440617068211068166835248674880467209340450720855614745862558860655241263786646283748610533004596508703448220382993838262236365453524360700333893802912257879315092205171904279659741072944398072425887706465141000799347561119025661492611838443345836875036679492091701476859540857057054384399980222798989347329425631666953380747580575573037273057599494766503162052263097188790305397363459397612568993145200601505615913999066684618803205906274196894580254828704285421034432163392318861006365603034712667914783622320316149761006140901747440917542040918473594485363589283170899801954947183459275266633647671565301547126561426662425285500228614797602223931883025845678344501066136386468551131382115750316658805816326447864664933540591536847344818882745776690988136842622484286060194024519515634978907976614954647417348181762583597218716587274697044336956799017502306709139707642475346143029924420063455540670607963346145921278148913267366751821877932187230996338182145320721438506127380708165929982531592104474533905208966694559653585153222421499331243332871743051300519043494858825214398343116139115403096571021415461887861908793370532690124798762176259268170614772867843400142811547614215336503704250726460540750230804582981911626366888073309826546670253328368740156922522270067606867490645920531888198931857297227164200929228768741926013684272439490887584712858045864423954444331902943031231139055403505761456738358089012728775453222643193632589842605611229427144652833922744689468546139849976386736359064660400906314361943944831877459965165164445691722262914142867632396990853081203493785905809768612137663019487472958174987780938006118259183428424181020283036573440234927477530290805799818458540836032042964188284175514684029113201179361833091090208931457248612996514707037002506834435974733108391011739124701981830708653759923463040545643810685592562820614024401233328271812073164272984320591043360957688728541599409923639333071510842966119643040328365984357613665524199197865657119857992840488132847565780227457842972474208798246544716090213303454802301795496440548670065802737065658934773989281785649807562036168536025874772417860477520072833500704203165466579323270226198926945050127564759266832641240550124386214571335578217408281404620129818741202162249184611940116030482744489215064295820994281270224707043823459796814228326606738955996002925082102001773683783224457582308160901798096769868871082153378955874795116262870626777164871238940273050094103827124022765824753013012746160211085895291502715904404422265225980209718821275117508717527762408221343658631919825464021362532849474893177149091980555333429879162827907875513936380175221404860821904808093615953612226409578894845361329639066970562216198471724159936365925657448616791832932538352984290844564228981745427878139512159869777265801412057612957832809999423286105426328497101872538257516683218671824475148165385865674093087041161073328714266390412860632088110207928150246925613594840041773522642765476318285616718564333550503613587947978476890787732152740219208991038284940899442872354939072655359216587139517909486969179425145026804243974903233867855456197597573377950559492931678918798075457116760248734199202631965773144830568389260444911024544521743483733909731788877308252490017264835723752379741299367663619957675502478028887903367927913361665790687736611337782584332080136862468222501605921567293879301495809313524409600703354978187740957414362466887820041051284228611402085418033306738597934962399204822029188691306904373631152496119940863258679742756879010379880676725169637034526717306117126541214061617787951866442020133683396193689137000537733002557624397057430001418561348225558698029993050844738367531410111636157843078996220699102715715976989300473552704978195556576178171242516988805019212284742968858324226999267895842607000723089874373166544968109673946261629064538850659049170164500020617075035046501638637924773626509752864006659444768858118349161759013397319546871182877479732718852416601674088824071892610862874535188972675825500090672784497245557567719555324216848486250287859027760675177097874034393461002638833674370142829271549220653573562477472358416662966527831826008488846692892943048433225576277411809312627595387814917096897861920688935460675820047591994077097625706279772001357668801319192895566247368629789441227040161716878963889035761522175041917862076876050967170985877408920797586623972768140321759934144714942854597806088555722366671851670168354434447703961987469477699473102972910369337287735028686777080132213904755476876098387313274568590996369861381615469010889042057266267331137771327832425057590778431861732301746867037571743604085198363071833160521210165253162131345313885232666092285607247845196134078797215850357025692053127198350697273309161350704173081986395522150080603785255985116632205665910118135666558556424604932342264382188041668780315333372930308657584862124400148398705611140722710215301145724883697462335437520651038667564128111763467761061696637775765199174422812758143650682121944972269305621194941269437070409342700472628316347453376459208403788175933538539641222409260889808882563099148803150926423371074895874719233693822686110622800030333547076209289436224714372662613656456017368630471524172969317515509574798771307829682939457511384256394722834108971958374851419665254954309053581913274738318301962584202695659528053846331683793594628430758698652420907073084052681956455099780646983708991835458298354268990344890442130704833971478304757739877850183590199550928432464656742539106255194391567815354432076424597666474205581344607497374584440950821389300223555394152846960313091853731869081468781983688968910253141649052711435246793490008997624832871954087969524208650781849269151221788044741182272647684558320602727350906973575194777910884438853463959757304108454526202997724728228373347931392641970072808589605151657450957564455785328928753332646446159362240660399105469821998379449268860657769487466673248722734525634234814228109426650926507848524745065806094607433214723416127309613275016327998415622205078211846348081493264502151570910147198199122229614679604329136517803751931527654429013829873100154378796020440965715448313986255403521319441898346595729153164930959058204331323422590966320704041077844959397402411676635686096516325725006281649069786770628046138087947007680494342011163995635086586066213403411204346612409704012113037210331750474743536371258255037126165435145841549850883481872453361188848039665753778558437113309889715120262517944134715967844517704881753765586192412605890893842528125102693413041955310157410518960960459869132196111389667349446923771707181272299412227920041046801276718922399883431267162109431166194070212516338795970731813256149666420316575871962306296050671268182210754454173775063550804294183935199785476751982875778266102341629909625348028629484704852800698263635118562961828450525763819405160233538475139673479516596827609414498475762194660200529698731267098258884726586387805633632603126868091883400210764790723518324683405348001733065844708462617273173071199589380690790066708964663383783701258903949405283873586415775740296217848799243244976941984730515389182640055891614275320325945570581212116659840285592809730735478941428148246371835444022782308335387973137284189137338592008057689386944419034586036625956352923810145199915308901868341993827060987499024674444536528743133576717790621197462251417705884415926820652135848263805205298413196037566238639779748826716941659699937569816104972797782523374554898505811542440203256528209189855376441235547899682702779546078379917374098983730186532649909118802958393002413422990476802419936358006278372313090664890546323242393405571650151504436485256732659474012341171902011471053676642996042037442219278867925552789348197052042465480916602795154612236657368268575173879982630818363709810217520915328364012198089064063972945884413791379008484979566263592843137567066564159522959545878542067155690490810892017268431699543645241376176487655666157399143607919417546895057438607899660613703962759865501006790024305496906641085298553994301782885096448730325764537594346944544501788506566553275316582845371695235954952406577231466073161561102351026879920123824530473418464349555866820750355029837649169348269946206999117034364388988765662035601023277009217549236494602196389625282482383624632234107235422422187786875437790322669437856005040151374282434395342757239220875607034431679466607064892994448015177776306412777717399589438746179847726462702025975902748731528536917366657995669538129581708484041770050726708697048116672617491537376463843282238066682788034746299420490139294713781645157781208569999899152135009982233240778332401051965676121693035607759801781242727697404091154394402979078082335612273012207033715524359956042884629578522611725784011278935276556578818250443773311935168241453858991619107452012799432286751863404868270371776369453748360969667261946375130895722119337620570081455208842128122942776256700149696908649425912130952916888921855574114229496227193711800930902678884097282209103887405216685278868564265847512589446281777479358435787275085894997335632949338896455623304198836223999697915542980996423578644502003475893781872196353216643901524265105525497653603831342115247932313223852786756779989208054407130582330508562315643958864193575904269158954592448774994439132227019345628452348982069954082698555306443529075619615124512951690191700033177381980920246191079388008949899323832022520479925688382554986307640877457030852072867974532366741445570349603462704750298646009730862093124051939350194786934431027171246067033353060902629778843830728810139335813442915549252045573231083249722306134399079468205822689596942465907873762169662293249211465137195591805198479937814331861706944610438663600752918522267209540143676911364565975029630329019571605574601949086837323427756377862144077783489687624864268366601134053383612587931431146302033215010175502078490339283898449407014997192196204207575461193595195734785676157035372967125829281929321253802416838363626958358419704063378266216061156732197610634892253469717001046758383584499527183837431139385891231995311056862778146540063179864670433399012387911768736744630741075631781205643515020472923377945287040086861274200677606072261492312663537424210542807002882107002569109550667910086749349542316501221086950638250828755335780300287438369655048815688742421798446109312690556118149153595977188079040462508036840500832629375284802375187683900753739988299910031122006439119974889139401638540846589541978795934344225426139313337512110136617397525149172237703261894545236148712025041869136966222567556079088909956972020181769580034088994893976677527393926746166751642113993312046386801550976622487025369435820631160540876754097782357359465389090291980047290251676705662244959586948114351809806401376335476706031635948397124416005759289580731128251810297574623296876372440912795205142801678086499162155088236742336981660982295494813231196440927365594631431995229482343749941059956883856456283183643193812823199224476691527551420415013038280397374728185143081302008314528720686795855942597802447660942026270099548540512777429530372260159384100373567659458208465743853798416342229339599813743428276425624771726901810677219707004045062326138280819889544712698177019952753449110329341225803542294111874695200502977675009887938498215070985510646566842952522082169776681926150099360962886435546556266143449457208918908804358654506121693124263088100021112547114694080955667704460279975508368774356929127889435786304412660135190896644495613536273737371549673208937235892177958634741155422582117207324642396779731021717359579672090042889256956028254002245838851041417333686879278735901423378408685681000435375534025144955564935798559871751700852388022929774985294173243074076905961795202354948237089349267005130125361633910843684182101698699657221396174410423192078566372144745937280501503057450814393701978136286247368907932725244381733614535296332588284595949766227932283409889642933297212963035549414883570808495918740144881025311285668371519967851641839219522154059041976295691809353128433034323165714655345481468329618785366439744545606132233238336516632509394949641446587628237565814467792024934966525890876263775840233721716391333470941356334319267605180563959805986096639266744069419287330426254397568490825666700592264643219875727147301918532642295602102804173796949508670362776658231894608773029493588547506478939270545056872870586453676579579117675648125919342207593282085090652175695383972295116481310864892425422020712136962218116695225913420009927516779230996663689532022615281206259942358347530886072112268309396171026813103832107427729734563527552283469505350779961143400514733954749390664122871531024933981007414590962346237564480677299484148320462623765574673507769276938057011387320026621753643130431931675252336944260701393391783141723301639358003894754589057147695721090543719657948525127888464341849721966281257929554368167834763964659534861174698189463392278795444085023085972524498799366107651129776990434466357064528928443497233368580460317996222159924104874840006550698424453079296860210023427239605121764667361361162238644099670303635081678901941523540171347942155848430856614250092898967660226003875194456987371461895133607668478107021144580018331077446925298424037676614642830148821723358100829517862009250796370934435723240153409162129022482349779783216827965587090260568550776703493245218137605978176938819870200367338722863953206289322427164609303033553253097495155959836768136782418211634915184863507848387730337105705361634137233894649296344902583008336035176168229711725392216897309744975039479281854989366278001733690821605685416603452131535384547289005898834564042635859546909665280323885934141969726280708281763145612151092394400184232882727846767721096861489357799818708131176246758682372925680023743085432585195858040177732145481597976420471627544229569733639773340937947546841022156841679744189485278015444248376199555052554732370504977007169247534039145522960844245078940874615622184907037511620860445962345069357866843293954487462429198467155792840392969666148851317000600280929625324788329659587821376914890076030336291492259477239727744633690790948493438962186088528997546919581413210953904578865039514267027502674834308488341477935622610409286508924356696295970074127866234208952742720518736226569735062673039427870159833181731322462161772564880342416512371314034756862973801887957159283010277045877029658583059606831368653061022146301466654995551906310411832692058191427356891397233818671524862293056166766059772650179534949854332673645190265715732904066455779899454159363029893082333196750122742635759092341756863238200800495314244089456845772475050952122015818391031237777577891095916266115073091714979520170435854771681476689975768510623425472401502006221883077996284438462397802507621272486160761131719138382929304991482314992404833164211514091478177362975868827160924273242760563652820492599424025409554094214165761572296304186447242356076486601421850112390254750417455482915338344016539594136205587124449007080897513415956450783563026527370701687151186888182028195944820259268938493860986584245322863127723389957490037719627200201838917090343816061841987630839599820989368014339812365047177480204043901323589713896839247823552467876021170641779167107623998226502214827302778188473040951679340524582803883886340508495760653339766882174882740772815009709130709284615666414944811239226743199059152973741836893200299984176644977097997825564339033770144488646037708801254144160163573533629406579056997925152391808512569287586864278919300521253084401122286508383113474933681172872604102086461261623579889071020982838852070953439438117280238078882120178455406642745778587311348561131437525420657031692735878497565077741247758669251756717246025699759003943830229636427613444778275675680326427179709882904759509305634760803734507733530787658425236404163910618542054735597549087609827815804852648550858922003547208517890320824379074237471402175861165089200850325969123192388909733546287565959730784380742173661375216786046170640438565452282862300474796237788814659239377102962749598332828983046174042558126881708393280195367863938596919361923334938645293957693962620388247007332852507127071949156470072277747247674816368448445454333146890865955459828214712420389624270897430107232948871498041429654040802176798131295735119028242293854340446121512374653187057386011936564219625838958469983738092688566071569560136720421064935825604057736040173092384408054135000546265547749457533978177019396289407690070688619684223897892462762805846377056836199145369429159319022122492853415625601680546765229416694755526096208457067784152410186784864534063539743295831682640290757940828952376324050777967781833327317140396565807374284040298990185285093976044626898242375088208569830212573068353505508702896675592053357159666388443192303529001772692264199867352687415856856300257570032764140254443751318759202935327702679530540399879980405544939145756274525348437851009542833261344845783511543050787425699249585706551004313748771405784948886933194846142160085589453994335090947756442110610061399080628838363354586719800674181588948487725868480753209177192213279633891569568809413554143674614170305609098156188299252924760266429064974896657178267107075805995797754505819674862688444998618448840918308199216379429203956946189078350847912482281627816669136136898726880363020370336630119761088933264440419424731663004190936620155529607083913577129325174530940562120513155395957715664631541500948700691055341611602198461811683275718187146895045986306856572588756188603538315164285538688741897614558513082448486510114707182486316934042747019233414460276212781042931143106113152538789216879262106030040996419944487846110443757144159602082511491277400345573061276778222442256954496692909625082756596876835697141873468495516389440965188669846121814719301253440450287716575442762758729446002842761245222226985909338062053920398940105470523021112244548423355799796088339587731860713468769447819578341790208662126588525487051950584890583749568423679597343586620279387063972666669373322772644900103124076912858289062747654224401036980242295004794258846224603473949134679356494343888257412008541625754429211327537940586438961909200103832816890567504398552750896030864473285545376514932663785659540100703537851615830811803293462646045439966254122658996776405055182279067576210795508356183937878393302137136814432981370158744096496548631054972283162137413072746891704281609816390185532878738340814248513045416727964513700781608587599356230292050141981492911408664380541541665641248313255406359275492540460931628550653758665236359493191599154178354616757604693746378401245562211538176698750592421885164275247676128072658552532328955326088425193521451883848997378714453877918693554119079280294344422574730288480263045287205190910248323240661208589692959582861286777040345724812493646055095574579881228485601022011106914772972975775138391878681794371460906235299520354339236831760435470634282183937526207531368567824904386136135665670730288013699365360446273856412299955760093061727134346383986390230891780544439472818517394415159215217237821296180463879643776943799000225574643843199049128743654001019782587706179799900962125645386182754754819447060672363558043354180403966872898752326076028162485562294127205419124146743596354778830925801408797434659293485451342352102023442820509506406184182043872199422389196329675315376487376374046916277901376026396725074407163471897907183279834851668349967497368200251734864105221645681987027337751128188447637747826205885562629147168950057018292129519965234818763722305519775776266751919564876574639325098420348548030974565662144606928877744554564757474488022988701768398403347121828541655104512184111416497912705779356377897478412387698173694766543970743278874950809705083912562995311441787374461378530352039689190505744407733746061152751775504316496799135329021508978340887111223639304636280053520342744233036889752272670039064062344929122435082658262189667097864955133608116172802503777019591525991596640101309217781965435615408859198133565172099508356862225757332595058591475827607406848644034676205772846557519463864555428266169835167442512567236651178850585039034017686989115483939606333401724397725376788628823261397083058790023963788641704109588684251794847874250454859347542313901383703172994949771398846561272912895177882789986506633475568981003271177277522687534173202415786981889798834701801483746810863586707033651908056918277481930074434120859510381216887613678685202065318667805748789039063619124870417340665584911831382448270579426572914766073875972620975582128577842650338617124211189276243507847302223705273855076372180422507295056210558308933179478513344265415829244625344445864829213986552273784897805124970792638943051477752543648354235634174964486744329608741710276907996804835868102499767204602729287039619130444933647667286514587085635037567659873847666447293754806293296340791925956022297296421771924337210152611011242640361822005239265565118900393183951512440870591881666311371926432349282027282710316688860954075947965996205823019599573443938017217289639164441614819446001852218862688146097763644964710184348174411711871580522811395515858297692085402137593378343603279478277168123640673995935859580452471024577216303418701362651164329767930557468376709606253599664182346832282061435507474941074696255683863510375450385023405001532533047037948724088168100936850200152367740967849854262530935345354825074799603072850953090095580323502067510007668978065465431062389309541063228273154245193022895422641968501410400206207522369589742045873041472542347196378484200101346418630159016052323829942314521926257487974901076734664549674465823819559679497831969721059087922796582001935495324477261625241429969567546261849567465871347669799503030438012672069705446534297108478017001788278756711432765090118787649748767264824139600938264121533752469375711088777438228723182162128165711557905508304254790279839444853564053803794066945631176973645430964053435058005143975265402152982432637202826487855698869880923948506873529542368812991451051390365628024618978262312810712962525945886011396917760331505565115306997155608176790338332193691832459172039178963361852060060322635179846528912581084538903672639325023537519702615689045186740781540803047835754213117159141047603105925529626656254676505826405953264203973281033769977966044693485161244608419031547687672196316483545898541189750100497927027236667114076898732476504979762241928714708472885284650938828926981468854076525967348471029171642434938251212058162238755316530467892693816489082571931415879836895663295544888244056916358951935169395049077527798781863917706776384867662809317108497443753072826732559539268450491716337551286028581908935389157279426268726176140944450926274458662151003379908746940733417860483524380157799277798429205485661871410588353456639451506667412965569032120834365476865331352807373039041448408682697467727067262841954581696157496368292674224995233284918158711581498188474799945704029930081121746799129207229392413387146438243338811876508286044829155757252874621642397711587164916803158613473012090425284626589720741279002510456239001916760629393485900201003934497987702320023518868460339292291916479894726340003186785568466527288838901358856931984590330822100690129140084927372408127323334326326091271475384646361064581072255676308748621531527525106667930863899418268173507212043141364151619369847458375250173732588379658797553233806043863486869001939247051397984295392759805588735175370729620969722457567838773010946718133987414719565075471613537444360682821160369745432526413826874362166117667899421036614121187472572891325371998805769252715613686481253295366038198621102816890203175987140643414230575137459350274818926539581426952928662295616691055996213939757521695218940000930704764309797290876348086785579496760163971069036832452689357995354832162549270564530801829666547128992738573143327469839290240190672357690652072592023132083772911661790178379858928072661813557105784674502214798525095136898817561946476561047745405133713933794719517091544454791406655913230077940433792139210584651691254757107006277686666653777047564861274676907905959274181526062745791618956912132759935897957958500591393608322930899045527790758322090174237118367131611007969808905634459223076776528227930752173925931401254006754834749776425118474047081964865362348140293040518240274569991894712455670879832551411488898584435990487845525068717624752897044825431145185051508125313076551905944146060004328507481502567631585047298246547001345485820048165074453502674664858768311207584505637144226684256317324730781744494590837429910498258641056099730600135211019427619130232626047655031911907588821881484571234476957434707723371996990534257379836650530590630913774085938914897142386354993009565201423083921024009661889170838198044332879085205714917260759153996381238135855501403933082088492497983122901748510381323223059087403622514533063773426504857832742614635833385178961783510654076818688280474726208263262518060063555958925521612911136196792168084823320704641978324382863034278828217796056151850606646167818541289052654807528651282738916701103740016540690215236356696261052538104810617334847338853654787669468339816752122774382869292730343053168917168972329601841133458335206142345640738542371962718992428195439661608065349084336814885626409245177793497479185032837683461886438481543140894223352242559668833820162642346131253230520253642216216144688480105946726051645153554830230102113259171069784954399784573831562704106857200175238979315908897903911458174535034994812699450740059212395043835852769170015963064234597409607171157249915050036115780191896620592396086545256924926031493907499268204992933646223700163604212049512483885539154502498511481363464917259254941539088212466729831273506495151020184609238092440060992786298169032698145332215908855023621361487930485467759237144006735957094994321082120206996491929081171169064974695010367344902344947653130079578685795406919484352705860004964816370609428031911059056319453570035095830202451220920889498902186247928467989158562846141168857941111180665954989942506399285330546949014734414132980886843602777514458716434678100630861656670765326296286342128629776768357785319637772786949944920464149056979527641004465545523805967290991564304214610035909585279242669942664899678524280021704849251894701174927428711911546403999115814034853912233670010859956109743487077811125010745457165868817446125401698072353284343249964191376015969863670820010751156214359708441565139168276751790881224058542158084737583704540502182309817772217874553052710362290958456019578337402484805692083527868194833279741265905424571271582476105388905415157780276354362513336924006281561128800515293059252383159693294398308821719408292018450660753817027894161733031500737320584838364335082743096219359024009333969387857269643972547787478468100891873422834546028923847840780553865410637493562245647952524619356846886779489077101574411837247799943769906782480810746823431574930356004662874191035516518691178543782126860588796074268006155493544465692080478334817702885890135233851029250944431820549657461659564000703520548841661410481940749683525459884822874641441760639412274235069794822096670237617431042519422655026197479185711237115720632226107367083786824755815714209087857403036304987510135530149589691564755767681430508557257832211551795520976983996282272279926261262794816608201052067693556133240886796978758176141358737612048130156566930431074265247904813928227272904212526132097926793632053423147674625413773911165602354986564573483651654569332643328950552067291523790246017353492155393879521329226806659172000736279721097695586435670754266907355715222527704179124866404325846771972436181242145535821563169834425582098217146130090775508518780203962689942923805917901642369229040196707375984304433658122485937978450422117596432427592024364674295758402388695353064540799368174001942110519027131842422659769509232664251674087926199083084614381249821962209376834753724957168418130715284177262042925650586259244912188665849622040697083325639569582010981330618261211157529650976977280610776539657417771026544385606309681490517426726716570567609807588450802117509193306468692638536358734629435619039657161152978830601289909230280221377234353950859991669192495759072340879604203644011770989036206500220792159013332623790480459162074011350865592170577447762069298134357698111320713868202781413711448009631889351121459443575892076747071948662508120143204285512503598351487902478316732440411892532678535286242270524529860424611923087738221365302555643499913491705836363844106730431320751408986894278759852766611176382941880646046372701247230900499985771325371155056489424860513021968403121647203156838713765173138191563076674638294026355054526507853485813907728489193209828550663524530185241019417558334188925846825718824500199215467329658198579387435122437527032760060600520241780530924751867682405173911264596395866852960573609630008744428303408232751486083677779213405870535328642799035537768862460667000784609799494815965519699433424617554697780012856878191659094162985121619097111383453802517618065019500349669598381774406807463247610471269671004273392796133552184705523446625573465631856278588406744525887783139796824782544967736217742909400012712464988044274966744863168598571524357500636450424676560316829776163942049886708026354485718118464554215595434991665816012991579616801267462604960772620026238052075819774860823226739058869745500393401035705569142565062969029047824115257076967769508154696600323348775016646381722085954539218309828864581882984471487543194228874936299969087738025281497098748204736292579414571216595953501259430066612644021239094022129744107377832976783910416931172214942657408330361542620368541692107493393859882839471853944044857602551393230342127713473898850760246270019211254326133376211685202206315369043648019590785903714663461935153195438535015097876814238699316755169690786745068774916716672008951394346111548947456984794480883310295714808932047004493005078470310844133028754846498397976295700663592610617270715331969546821837092723021304680970182663306218439143452833923499880905412078177555298485451234128575582101627652621794758281559725747276219927149100259203012029454359570837363752868018080956592158676510994219518846987808252919864619637261166026531618240718148929025167083650483267615689872480270486002938352842122132786174247238582870574730950246884833004794643602174078290825824379280779952918440027965852158080614520868801237603824591674757366880283577273317690192334382295557494616579851402287081132404791815322758215195343865687496408350278348805513117571492314386536084271476543367311028659161299066949590000695534870699566760665694381241664121237063324427962565747168480790672776014766530270388589534119859679550912822101338939351246305619795232139896526791943951979165523318034398911288449889476288649762051838107058649521050149565317966583324030145283093745547966312536566602663094266594292745222697031756619282770236135208332291007932183738116038920107339375550500497337923617715726747023161237923391405378395209153110380418170956047721140361025000763882227382907246488919243044656122308821111883957221799325510011894444909357283476920471180477099217710639554912126111030738705281526395058713387157672828327408316946028695160030626610322120226491193039826477578205030473915353541324056062046813975034106612606321778837795555222969366743008191149011772061646661154211907048833591855525492621185624551388358524814407867628272974957174247913224488345377463827986291036259193160539720926377784320127771123971085170578306246681789465811940374506888573988370426631238757675864380031380323249761895689205776388109813003070280750657841170815907390719005327320184016592776442471364628025062653073560679177913568170269244209362358391583348948802646433026438104639620495135503509923422492513219182396171813925758430294463903423069474703030297970604830601584471134517914024908255488415879363646451635811531698422804351092895415110635601171965848933305387130916425515384364197278603415728795555934655380243925606859721036023055413973082444435498802997138051040563673866128940906896286677430859447151210067728538824511531006479535285236942775633824844054332603376048215533882686400091382334554198955081303924731305391709571646001902022377664957858731249841199432105921342009898438291815936166487334251435071016750625512627760999400058543766715529827619371994281175758673123406997499462448984838585275740061025288373458897495884858363295637792610822553949030349466202318225419610197788527079004882518302436270672890329675652268436845819258054087570465957015943404730415965811569706734623187960734276392872055904308011370476250203950350031473955212610389242744187083035892924027463252547727842508049339770520130806608080085360438775597854550404868013814119610621883337793323808242217529771283703306517782597338325941568620867305320755852528322318465505859305822386340062767879298393592436290201970190344714516949281796998750122423945644201929284994190203312287910039514289341868876238782945935010145720290669920423496532826667067417305059335313615545363803644173239437581601655588216055282878022134185823775252012081000696433978876420203667211318452506874334454317513210795935912827869151009027783298264404688775156576476591310483149696017210436904525439093192722029964876028566255241159167857275350141803018025353392127527857665068586118887538638972748182920944939549585972738968858543831224773074055647843858581391832212192353350596699801864658722970285427901639774511473986544518135785593966196804135689868314324101272274767726561867390991450683425002379298666334251833808864914288087058411090720312233405454745857441759637315232312557724930536395201834836905087492806052906405916540185102018324872773511138025446370482827919527271464956269516213510838574081153339778031220439399218080314772644192776365649007736652284845063316163013321070991444329982063469320123311003288786307253959891415656765137801032028413727300963980926210361335469948109165179757649727746921583576239969354695510986516536262432691106418150443993905890391737345408347386471033380167175196235881681628856090195582920916715446385167397441918741867104515822436221655340404701317256630142222811883791326637768987282500498137941761438045898257689843547968335488797997110194106062129346886690914342556088286640682886320747896095057442430431682721960518807255272359763255733920286848803848828007239478416249753654452088516580876861312894313310254181119741727535263760792669926849343947924628475617824811177080263005389086701964477306799044434871742976536680368012304300623403321923644060992929427961853452581026577133364088581703241209272982985297369994958220001669776526997285659769042585649958553474884948008514538433484265923281419038572704767540467979414922760235642493376300513164402256750103591411616554148202266908712075960289859300974323600535844314217552134558791515843865368454670894646099906632440012077384746590754636450997442217990444978561143951584597456927574964237228120992725389888900386486377012257641589555167816197490358247610754805112250152026342318905999722117028227929136860125412616528561231606872969480471937475647425997169424985585346248830175565920196074109314934195226577963008042949661956280790169353632612041005919035450279449704569334676322584904931414511225406941926764960173496008657788262981550808284144514451747041609740976970546044816071804847217192753698193048903909535691689645763608383777352635426726364613471869398515646662217808842171989124244441322076252683475331613796745964251936461948232926944526176828635852204720799839882687415074913421750459723658234955904626232904573391840624970341252580181439624778895676003173105267017080109859967451996204072813031701334652450759241370322366269624487693972471902644472867163899620304883870135980226143920372099855289037263603902121523640675348135204283291717541838918369156213426311007621361725405829374687158639351440253456573455760767427563870871905877459676865546327129592982953143978883200188550632466632373981324365618182171822391469781306970716250419697286470058200171497685278020633463818328087509390785672294265993187166551563885711217415856403468109227079374586592239698652643897960261414835904780025772424532626783531607793197297602869162885848103545492304701169907603628615222856173197431842402846308284871254172690533061724846139833923844381896436263361617507013522388928633030995149218487780364644079667579723333926161510164341415364870222275572576620597076651708246163489400438252687861373883937885059781949956681301575485705591437037577402323880007595740586539549075560011235051397765166583963817070697805752806651670196005847689030886940231585969439361126859462017637512490725318566458367788835485938822252078857921386583305542769059738851371218354205510638248234024362164282384938460101392237681160361576559220448250865300746204078341485238438227844606640322930477750793048093181144652029974729913039315224515285969127878185654655956711666819531134566151133210200064937132320005079667795628211764790479482971690453613218205121261442106531754097590567462268931435072438688327017537777232064675343611363420733372254582188967373248995399495049830053092721671739289350311986485988432416926652358402292429524708966362289948235774668524688799895633764404572154538756192627219971383634910426768275836740285739285561917506718830643247740807590164972853361401050834724294965386693796821847444554184550009338438194886253607481304623092773500890251404690771271966034360402846081064616249297059078394127274428592800264824062150163681520996842574499387376013738115991689434402579282888500038967120018066200622057064456683385500522833731517021222336902552415404104875484936049258740724182219803097912826331329598071458021474100040859145185932651012299832364136047962813252630541983301609007889622153117486442175828951986066543932152078604795416977342336985383096675658379151404848693752995005210987401221027256716875592228101040867083550622722539776048877616672161639867307648060711740853700479859423350794353592002294702471507500154649571975973653021285258313304318624499008031817924198384118740118938064428024261188998977378780073697838979720328623457087780781682383937764016604837193198838218923137033842349770442304077638612422854975560010511750581828754947208484344559337049261446323374439471297001011516916130516871609304624264158827148855747754245067903205415901806432816427418996095741663165637395750969004403667676303736824944785777763688575296081397023043684239962400636424907894462039698195542438118635093248794571883336106896981027861369839300484143289316548468798092147158760453070051350266614901651587830641135353697404444068067102344415441141474032429661688648237937996731175028768266243954110541160105690390013264383898967425162596791115606000667533027171384773461666635388899654740075930840606758609475331808077063034372698821826179676395771294549268690804966482033235423318899746223534220824572399600707137161263582915271491270989862382791431621979159778863983512278331379837829366085628658274231704154806314888590477514090107903593742036404136363595262694701909750607372262000822358898182490303784808145971462662068867219055606403026560344651767797322513136645547465251834154101926366358198171789940386000925561971197282025395348420328462582229005255100053268569397676827980714882223168011115114067253205477771658445939780370665277331408576910637111192922015703917740121766441913623903000439845622776583374945016267348003257372682777887457861791534967923330135607390691559756780297363914717694798060099598706637343220027269687023585373635060097762427659121226162290891910833651267692498018498158785329190490155175865537225864289339109034869165017593972235251586545955756293247440955681994735645554466776268380581234424590174563970072114554222928606747716563382900427275118993524175203115269591248306256321348599292186353970178853268295119059152169030504829870077896875685804472049526488494613144328211068582465277993549647700063478011093356055965919596310485105111682821473035061643320587150049005847984402531313872583876742733170103974828775978201499839469079902792101946922164417135053688700446936414218635259677701903159038205649699790325453532642773827552774953731580189374925154066406646974000559873866972100901478756667678212268500051734556505018022944346740020903541031396534415461665682554685706894492563047833935373358355972552650897355228975384211684395814118987207144011171829258052569603402965670578746146617877422454708114974073959301090958174799884686996892462057051345782095228264553031426634322039537510629836469893340680129148749854416518330683293987059001490343011256711005086455036895944239521022058412340943263291103141966708815480185233371459043047210376786793167967917236013486986469995100079090652706984880172868997303816821166113507455959301685873802234890445839009659421506250335439956329962270238433882443416605466712582774649287734926082851128796409798001342547679108612234187748278979352194667797114994831356274566766788722336819667340708574417865033686633199933613576666387925815266549195268105759724817907041126909053807487813323677839431196047349691955567014176810577499504309100951701330597720118763298796987175534271966321795453946126424573521633551410327383269057123963109611195468953491578222280338755647126593485205922289947988480501776428484888647349011694975417552776345123581017994299301530063070031003982463499032710527605262397510494006773551153644403880043277929035822780410898789549667503930793379654440624314208567573680530244828322467962237636853670842732593621906745891899376005075286119676699749743877211465264310379744636114006375102708449010596461977029859207851305906134997909706449652518568428934208117935779647053583001231453681324575017969774183129564265048245580225371674659085608619898227474965723361582099258629636491439176925944572166041078582938703980483073457196014868170205630018839802754443234606809800201884813849028893654894845594068041272657922966151219944366530355306912369296759700932505215113113230983184128692641648594094336139093514804393133622517383713265685656267754148689357405296747551669918264300656036232314539186431243190888664121735211248164701264769852019427501577829739297993822665995805813731555327497931183972890283996092940337832892479535131710076885708044472687171387206002642309624546304608876734379467390090339128104939285129849217402498229208713005851493398841211559675448003444999687817118231642941097756674755730224877703316914162440237314179894720923545075075069234845880090969078996978881594829158103479318142697369908116481092564540624871735511648201471146265283819160987111105738033285171120451589251559655469353070879822482273918699363741851088278073847572069938728107792689335844724796905158459838048695334663622547055905216691228033057469858206179120097143219779327683239743527624787809510275869480052921296387149190218318598990001506582826078637071600100534962398668401911353718541423795615374665042245306221070316950310863959344836688787611801235764033783313670483927282551165334388274866063397072229075811646759205873364842627348984511214607688835944810846647477039294953885984442536116560646829876224600898519804913077182264191618226037803260794662945214055666013220685448306894672832821160506372407285867664262764478290324875748459876291531660291573962079345663027056969724432674446442090737033936762575921165402021387768775757418312415524467818625814944375511993374647217095983216237008221821077067394958579649248173506382616160240022564222143034131562134928079110865315105901174008614193018021301615262034632563917396425712098422582075829878971840543969946858237129779479308660765539345765317244294157765456372137617164836057455083355807240620366408226692124802764145630281239113420209105665528760281893051257397792838231055622296264816247131970546134957462410568556093241819556985538662611184702487758974522205426491212797994350011785007204346894593424832959591722444505786977827756429721956483782060054832834861755417884064064291012545987007503867865112580406168217456737841432282102506784317639111141828307139977636831984249894358072202851394014725559813109318129296105206976462448654519586399032693370630985229232165150923928454133780756379629837952039905163369535899346517634774666409697260864985781212255882143817316402754197227906653864952134346339450190547063746535954245061938167010427293133051295285173281844677058309665383141507829808056918918744025558784451998381618648439368757724440842850166047495907806571504064396809822633969867749064063199939729018424258720510457514522862805371755022078325118549861401547281533519507252618222198952853777383393744285995400232094753823798746495582606285620820330609298403525957474070402671913512837897029351468352278430563802148107570262356191675468828094960466690531090926450539851825125313028546765006990975414811343237022506550778034662450108663520859116741078819150403627801507084381344940499335786113755887377529025176007135850176234772411266998601590800865099580492884339165560771339124125379399764320905257447928667356743066472047443201147320850329061255618258957922841343681624037358521445366543078084095360525437094059988641596476539355151732482244428414481020680833015448801345483721381725365579262604132532544863756793047104126596971397703098818654097823464917121004322194835539308014567968073251977905082609667803634878224274112449209506584743189445287510331688462427412916139846808234421646712941771352647929737622235960871851255113706416477005717782504640337729998765395160680347093079006464710221186354808499439314913167193584129130276484378450039955333378354507091612466173012274239127547699708420993514246140018918780541223113001829451979535616241590149246461284858406459711546706542388202575372004295639156682470030001215639273647601411592140895643967199883417055664311026954285264815977352071049207275137547195665623140954617332379395885472062789427333556835243837844885328090337773526253324121857448337673854115576570675546049499688504781481300308823397464929517036858696889233477129495401028525414413174907233729692836310179595937141783728829079259810966331033759006020327222914306883716594050369927947717550517428665693434095150279548205334135682653484006243883205370482984897016825872418147066964462900955170296981739017296774904121420844475400027286980085560471991266600725787388073025993796910055838109050518959199801576216677039065318848304228532548867122760402317877815321429800226160138632401285452924907757391713520880301272718383618394468369763328537935392557788138934720228510107801190460966966867592535926451779590714694977058642644328329314892770177551933323583571442698094586526859929813433588391103081117353866342417272666471736535695328974267328027575610975098436458718506579366588591261825830723702122235372004724436531912549387302225175894436204569915664117769965981369784581116429241874137315486135525114788641035182300113872561193512787292939567210497603014241542797039890181678154987552341100048147725485781281734768904765643968409749849534198006506961855264876595715122943503288080516409116669401053070442005963422878437751472689540519877759238940487268546099441273150212987508095073028451408826452410956139506861983376145179273609967487364388552620742797302971721922036888691759606379285507567621069014522424158818948215491499224786922615560097902892017753918767631877578314158411841407596626894241455758488882854325813559524982900999731206910706583495319620355568515939951405004799338245783154286234767092527150078839538630943784398278955898980963893223977773670760491049881718446724338196942675794779503055796381296383178992366511596487513946856874614760087781103254668110237125552596074376460160298439746883125377651698430617484056438504563692793555734326804431563267573018149956998809022633110241309202691013327260614492391202519824354754734012621023355869587373413430981936128525060977908582645284469994264201431775539652672291967918386116547239979496731924463855334906463929349735081374699998857216046996327165900400611354030642478704449774382900041940448491853786888082108031945467354224573708385602302449064278957487154588697692468870365156482290973516036768357288632387827124585311374008003718428754102549538751551549048625750941394237686872073519563290818666396849905180485019497547277969919273633256874904985017682320937255901526980242414997237679423078333569683691033460574760951851434109048693077242072794381917695014266646947576796214244467829761098587900136003733756023167078754023989892776399885018694801539392685113307483828585631725374033630660093897711129237292786442542102502125511944569659885965674535535960235384518277279991077945358436298797828677179807865474295459287729426917420073548096240855954722572679131437382182945351601317545186961479067987838277755325547896480790685547936040218964548768256925638330073212180492924787188105007398826048140062855112362989580836742549830174803612705386097479670033448932480595523132552881578444748157563762853944334819351580445516255278229206011444068182388173227821433009383837750664996211212952426907576311426756556837375838819988751281285424975138512863803718713557507463898502140841027899771246646825924752796270395351338381475628151072588328780897760519446378685636858066130181768281401211705119807905469216508620413181424772631752152790902180849297291493847301457390807454531053914260524082202947692061812708704784251423528447539925193469559198333230016910001575581219312820787647591428536548877335459817024494331352741104182310561007854400656508655353795865095679455522188398547202430175324544615477888798624356307712317671246172777228552596270248103192633224198924269016014921065803236314478948018116636700991922139259803289960430271891049644798538859165230587970536695046826131982740448900500245232212544136880057700655212246418500458413161795105032740975004776227018941614030502096129810508105761649830079542347721676288388887495903512863671339541460358080753665601627937741118752743641659773897912159998119427235333611604833082574608061730990222700731729131313835404145500887390957738985369840908488938365382496833606177147497413327430174927867634359736308261157315006223909383512517360030342162304230522092569134682381480128525152551689843533967612331290073050294566026977278219451886318628565562793308310211924969805832181388276085501969571228002061961725926571385521919262805981522260151009441160283708220399443010265432253651788613723942055652422172199795419725883750442220562916870630127474100767906640250506104816827581335510457604816682689674761439898488738372277368450247962562274425743510569359674566246633329091569638025173248917698925578513059560792578912626337019478716269081706722935920144474686292870426966148638518681854320867378380266582276679892266864451015393927333566893602190794198938483040493335718396392219815645415518565212348674182243224358251141209020798516175282228540504749717933664600598999745273457799450873422721869074421196657894247185109568748764633508656881968866631327791356627541898086901586475273203035495518358178289008725061946291352032756527037329226106625228579723893559743816574643725609089613928584375059759217569774562712541592544616087935221607485232460274218246446134978676188094404933227001134055305378686724705138396345748495046210128602066882708986473121914001273259193332121550534275859110239097989822007928750223927209174099507076493186429486459709858592406744144572878259365482368072229741919850673259641572116240135827472440173285887156834000164792909328820886938746462355069918452833632042220708638065281312058386325487556464847376121717071474570438326702787094813486414431966127717494442276783277380719388107821065914509700941906768163652367229621844686370134657624154080481487411993246633918904211132641999824429224227888226175034652671059380400601073353483413638611990107112407532127531788524942145729568423196643784119169634810848809900336893601191751829696869878058914700805041306560875083389455314010115503833358748222622476439525058598984028389162186464778755293430924633061585564419907343356605526295595558915350760126878627255528552476920771523306838619507186051256190911895927080257043720420654823262991251529560996174585065413063238994855610227233011447379214342934995238455375626458144754401772345399465151144165312455671809371209202582729284858343465522304995374740388810539636672384231510141459935151152420163269971873189770076253864179964590444703033445265278134955055547776565760130594833706748355625630785282492523600952280007069491000805761366119758280801891938549883463472801119480835425329132761178122794880341575070132888084083080795948001989172948338114741183623233430784344807257056256696024781880016617419926124746233895296514858444543313681394535746077219332762123444493966720951741426205493129563603274108122192647954532326592549102696152859994645231898406623068950345542134618509408938843156457364831991931752686602872038311353797009153316519330825181872591464264244163228287789346294727209612178966529011476157711681364799011484155183464276478326124227596303655383082040551793738395141417134279749062579802969793969741567527332535631333799642634569068191032544255829361100283912027512073962649487327510102804376950243464623174053517920267063979455214526058476783638240182508688009946149305435454607351952406140601181695927648689890997829761162190934751034284144912062106338952502919454445574238940912596583564401714094383523976906603079171632917925202772613426705697886442558042784484068823327996427220652509309800785856863324176581513967018408941605957314968476826943660747481817478443405566417539169466766910873341606891279893898018963722683874736919136085023891063491373082785954732770927278873832514262774519733654536472234717048201412446177912050404957130707690876174330614730159899535652091903910495596279349141690345866712502963160616801759363515409887271921077709151083482007687168320117120402072461311288726151314126463963366460279223041549124519585073228051159700911894310244921167915514930063520084354329321034077283186883570221267755168922824554285000066357615336436172857553221468839698041455945960885303867421506280945246963728138768836645958122588065873876801565926851914800240291634337932417996538957004487630704701384103909164863818116756177297321757742549863264646518396311190487570035207169981938381260101616446462120118931391339595711731488491347935433693957183499348819553936223396873331782630053923393160836055823254273256142662101606841719749400657851379588717217522317417925469741238421903504282357109111940628455826147281117995143626474590373119294468142505989049351392732431344113551746098024875222706405875522757072799753381479460265703715008236807227112578420358317752303830036457761224294148485427939971559492423746492453656698143026046939539714580521961143628016756818805528987618829584448392659440913600071088446224896860733696183188734840974001976268953541312470960481985895671795238833221727772042664106375502919849234462966023536833767443913159206151692111006229506156504196302152995056059621297944540611913758729358840538781302492559715788356296204484661010302379510078887373502863097260084226240642688619101633624038433005089722472503789204418562365051453429274084696426614382975383666944637878740702937975942701991573158611420930111425344962147209676067613257422860535345906751942667942812423398821702629412657561218032249160799526464938328167699037465874123482758964344220565669605113204226980477085869474526350822678714862101886002236709840700746021379115624856837447186972275214953612444016157035934411709363485691324880348660528389708799183187806502304490329403773894021752428174238886124576836718909451125220068407807375734956035799884498976329039462413380951100295910149477740841714986935169774395913498203691362402039624675233731794691622569461604446237186632958846832963839637037498805780697022518901662456688908266890527571207892929227482970383798307827757204383603513402293230752759604851025149132585937918952559937303073960170014906500993446866570740985699059203549090035958001119322369805662114413500334601333310840509943764256738665388771935654509504129007127360621218980049115638793542198519184903272551078143169511052110487601855090408605311177467544830764339822511311701230204107215631674006634275366429182170148319507372374536433455565514373050972565268189088008900873621245659709904655162556077914802145685240279587382274325088571785177153113015254748542451857582319307190298442534545401078292466696637225754391895278208731604368893451239296967480493074506525824772753680167144890047109361237365453658380228034079870294052993341250929172176737515250357968437080766277493725070969038645816667360271042459158067921124588941796137411820268458489608747190045772365855382838230427966595762090690886853806931871546796406540331929389975894205696877656031242798173670222680447109757499005532753064994481298366647867525303390680280284828868187789436338687659233938402329089867887289702846184548393833858924567403130181145963793162827095016644463650476248859320817756600941034363810800424337593930169414010797184007046477487551864954549025380067122033588066501441063845338394483279761013765982581997248811185503053517668562118715946482933305698092023635353707728982742536938987233491137056627011313744755917641726436537965458892932370709793761004757328090736440516991068263632308489733507293494254842814642563758799851359092801247174384757742139259186797983584672637859747397965129611114149851582146984640825169830271884919797164373478243220562318284198990517710902853217047104791519654205863226299019331632270930660230584735063075072949632475321489046154698008376477556100282284385074245670936736762263519067971126800670031715105514728616135462102208371844532053521698188211065349619636781631216449089315107929250407673983643970693593550897134469141832308450843206539502179524190325983277261093809674604049450075434842698035494910836874142308877366952179041739350050321465340229068519267858169488285104877564205473828309456949858593206835429646050475784861162319511564887703370337858221148240865899492765301425618458002703107502649970395520747741869356686780165644966188475575690148314507377822035164649462760658265035704879875152106203592399020707917181156423382062790626846878951645503968801824453106253311030673853453466000687405110405216375780250406177265907035927168157516603601241074866537202106426321354792999416687911887207802248145091003411528026048751248078124385392277945676027143971811731137257784667074487630819915485671564444497817804546915163848286253089205757543782238892927781547422517808011458224103549453661475164738947476225966296768740212452308785091836749592812896282767854162912793548559606036635965923166225895261438873880927261535460716753771047964809705431467264327262704838763229943063051912412286050844776340875926584346900035238642216407088147921858078150750047633569797954568316169052212281047113140504304104356862656325417806187538806322801104163666169507543684510040612234915601121988389078736083160371090619916273735405264056169485314080481775865763384021421917709383699315655878685227802751201089283514168381220757771850932664169198858174802537582999522265905174211119452606532754432387073431957158689525043840684729339511147943433311009364911560988375594359467543079246505458458251591671849255165015564574843937753661080023637421678598577997826892751570158177443126940670104143838551684642316354539650437603760162661405888339447419623455403436318381282798201379945570196409032997539725483055314659816723922048197025365583632391069386703454266152761005848992070755527868349140425619747438812897930887171810536873048608819641994061070521655924603344114117899596287078319158742193182358990340475150365280382154536547573368431841826050590443446539294894781754891484629883251223406246977051389398958979394134544400470738164776845995173787494222354849566519072226776520311310467399234978655646398606382221465572979308508266531022294447332268798917241966653697991680300931546118822400779047224401349651742611297270813900447909102240241070904674887302799602253384433221625510222864474777978775586159287335715976990604471467140090146733318148174662195867452883079833647068369078474206021315200477907093432587304682210670874414509912455598111016302184761585692530095782318516059350638524480388838604000547655659711611916684115396028513663415769569021114856581433202794683003460930497357787236414024726570440318493934772965080553064405695276503044584197696232526848315917172796700108251702213537183084908340116216755500680151287622650006306816876409595609072187448673265464175600941674213690289987020765861074483531665117936711760662737267077037887735482158123821445181071909750453254516951297780468082090951103466851585039611517398631870669637237335968895937507541759276119604976487592090512436478490854929560982043017633748253452206797525832889262069447346766061448227844476823072060647401361991991598496134408261198751535557675948516630787340129746313905930241168676158521695668056479487895138685124603604671809649308158481025178976368724012951961714091747147648969742091277613380318787766592258832982225948325828736902138020930940028905165563422280707524898677916126113050045480049405996759031276834230983999354723710919689687253926917451038637333103887461830467404868896496594904272917112540969797961076068314534551890008442121135837989375004346722619964323859061887963139710440214392398505095874168164347767776017185325117434077782241147716414249645323027511879933056118715101160951909806769451757248513688728794894340197523628489478127949352370895138840729011460139907142891418725355251804650168876157308494041735890232527620225392060836475777658628397954406228211317227098993384492598648289830334379589074581956730452752313977385450134563431041488783611404150751172451070588364812517447832841317684217416097224379851462491597133281078402117278279641117247960237226992733861112680525803601926347807745288079462207982932627986709291406013052060674071885466698721521920288161727866639388387809229414532867511347909360113027718593012976318225995089408305461436485434889141628911499708425369499968580036888821810575701047671874495316221295711815637649254796560110801961226554843086412235546729226422767959423452702054597977355516428694804012339568047096054601744718617961272654803045344800148409244092365835593756582618058270667693150678293001228696219199475110901660856120745524460319660049599652727127564456358146144458395412084670796867303779872370675387161141716369767208059869048536534094676360992602394132581581948967575588155530717234247447474581627030606710354795798668055980497813148322846117827087239749484119765462972968937542698503818745901501873652706159192526267871360663561592451519092451781265569797032179771216880619902853585948155317461168098829223377919572318862333926928978658528751274699449426903374170299632701260338547366132552679394199627649960924017938578538955503408097503609205195447601992677675542077596590554832820963852849039583704799467707657084953915473265402625356377483414904031836084115447784189407772144982551049822237849453690191128048950355480367314571769134694870017278306954515276452436986312072199869609710139236455411028056107915525184281959915611659090447052265814480142693867235353645187750205510327220382001062523189146833295791019155324418060462215818212506347713803093133633864155770528023867616013022927398134381055723762206417196178423284530914350570765597243044996092566770473972966392598998569241112767954695553637036843962206993472528743611054840664917600559522746872940138728791835864927032592243083318008443302024961215200826562486732329900034476913746495498907066092286160665695382729213426816516408107596007638671364316869179181154745774142267655820419695963688931090200478963765870115535096364468637599635466489025643219349081427066704211948064540320240524456030277582134958934216485856394517214863946530274439936634836459591070353798633069082438853942468898791142743142390200542486405467400184515648074915520082168460146763266227792379463343248128384856495107645995308136588576521762122890808466966180344047061483621491571583332697637608918735752416924412152519315859195487969368466624605917749126193171198669612352852419028673592073830173125953301575707281787225493147247742517936511992053727893859984992615630180627330215108388848712784535302828591158788398188133832802697461737073497774661546305950405163522563757102351256802081300595578147434965155105852890144502592971112125189247180342192181841204445071924750575353905211046766256876165583419972032193373761553878055920364347248529814754176449305720778574085373796807731236811964022050913758726100657497893423872265946893025260124716602270465678893723323934182231250729897961152392921534096019913676546213171678987034911226185311895735022345625713266758578509377409809736041320186993951422910244060554540844757867100473915707035670904356827664548697160403935031905078023252731547760967564883943449792625434489191323048350982034592124283437388713512832730764629653310668601696852925521154988119231547299856025042724430328463833132326631051345467242714284350215884152389036474844720998209957365996686735880145570537826517418544732759493496019936747267358525541136717209758657080606802699921480637927941407830932167244946049598630796247232414339396774771845843091737519699449220311229316836903827549367336996480498920427395964566484599180857144960142859526125961885906996948853500209139229948055364933860089742470879011108369207363355810445166013190913605276169227553324395542025392051523822334436374144019730055863129398282691277333630168869018909945311818732488214876065302975230453280721720609206478219321829611683522973684189480519489230493806380897739944376436179789609844738556846461958654920004489185579287474010571561508799713326981543788595866540121099824035271981873776059506877483831516373074493535469693224803458871411086937921976627562127952052033163274240529772851137592959159777557255320665670421779892472001765373504629317427646258243386360232405600754334274126572016092888514443265127023645737289772212209789725081138993704419676134975587765448683308083962986780141835162679980696524215031035041728171430267333907082875747335508217795085046152572600356914263049810052203308028710222449655443321474216346404034478228805201641198587041594655617662648221560227160527281659717548485911897259131022986009516908875401539614050161561365631864267428721266357605015380912186349449859138874505430430774945542571919136451011828775852301360552933756077060910523570662972459354225600323818613548927156936402325795620920408558953677323263555774657047371722446922855666358293250833971775637798877823912439568278718308742988641797183177564913014361513727859097409823651795058355181775227308818868549891742474643287608172494575096995240853534421632396419996541688613372490126417783760026333424217790726556765673600085739289697493286329703321083609512773081501210001388220394842561049653122051751080582828927989922578195759908044055204735976725371728887333081179835687480065045380933001737535686279943855309900116558362687111433845412836547045277982047161075290079603332110659263367597116259359203231721456067409301666128290433015024534103798652841318038282932946374391256735078133479375132594879903210390605836088464692190145948028996471563436060583207026459606234579082882015647525977940849081070739013975160611373498447753867386437535091816834640851419127281067153552742178653955362262178664338263926874588940429251189778877175648523450484039435522178401038683864002486566123276505991196969344875982337345266771374968080260356546957361648202952931331726964143993127266994261877087873430863572620751170712566453854926976121190580542371283023869911405724320944557336434212868872302023191502989072355839593931715375515369125627052778366526666403850529031291556185215404643530588477237899193778501358095447662544971772972358220425927194304915789286205225030790485338255232821800425759138660716154325125044102782524426088930621902036606606120187934291710764214661589797773685743389123311888080810081406247400856285219895656941504445267783391707937569359338904099905874736527845971710769791441905478850578962641835338681846260623043882379966478855271291683349827303857668251036031388805482094079430004767536782945442319530309386960944521025345470082108579544440583004307630665523498552521301706333106943696598951003034404176487682594846334384314370901241140131185134553838499193714292078718315132259677009798913381521651749037349218358560379163147582411010595971031428813392698432608175194818334837496438114924422330259592783684960793101437035450782665208237856322915233100386152290685029836301234849321494349552434823454730079301951628547856375045333120096133395372565391547166426313147851089122086306413412304894214611182155502081236928050517799929198612373761906962691456609517215308559942733346002878166623441729282679699150223219121954844780519047498217895569436382808771476616061986780750717663328177631603398579610352231939965965737216226474272959068616319468562837789643752451934931184449342389879554286070618902005071839131615211363637686537860106233122881977023355206129095969310825309518133886897984958723558427309104858694333575425640684117633527559333094490876639931384452361660640019749304276958240122785981263428498562079485980639176818402831826563895103138572000219154273398565613636244989130588840137277740192941074529011604658138901932670601349461470055591845516347891658422935544480417556363737389437842007985578447359242606422219174179285266898179721444057165135350215310769727521997586559733613613575648497329743007962535317875467648165032398189755276257744097556192242497065795252319731250355179172329010109404957744724990098639672509595887332573055285657515447218581351568219637103908150120573358960294379565990775988987678656943622073496533241733927783707044970059966998895703808452155526478282919015056195755519668243915022670012852907063466277813173386510714993958808983076657774060864145239479535335736435037264714892314671014800176584338502979274515976812363943601996384903585914759832614824113868755068819916804784295648055192358213066488011694548123239581650368765629177002940504050914712740857142852734863328394877857274947557600130331447953703292268634872039226091680488261457342398870799801221080384290306942092228371876165720714303717244068174629645955187237178379128686819376641651452229370190048543920967872692420981735578211850118218809713990965721529129805486551570469971700974337996720469095588071178974349899229784470769986606847267300323358413491648064310531823045357131004330984361702866710246993648297723482343570169336486178397347727051693498490508167787121545115634645699262190316320104656637545187232075501384378631970440894717099588447164332560273354390604221135179539734368164731979736559677094537356713159398796740463977166261475231728002361210885729107524230387032922539355393806372108387294597182813514785634654241206180478318964703661499483835234777115762274833472111030259386727172717554849520872623972242148857458403646246802735816828847782395717134549495203545576561180186202118067219727702935028062068746891307849394045456327101048927642298193380305581414042248787133930137584404092570036060211898421910291156748623569264118150316342474585284617856506732504650019552354836833100228658148400703471501946113509399521529380168670404119571903263569217639113736134635809743800040806083646930731389315901804718947357617338770183593241543132863209930062965348348430707435138677621140079117671644186158790016339973144576910926962249361127564856407529764868528955377357733661936461284203828995167002361394506669457968838254905604855614634050713209316391727328604965841804314476870384888582124160258109840094983626600996349337859226029091065099620426202962263203115620872834959999555305792824183093108437956810750017897652855919159689018302586877200866595696988596584622132720528427044661907083970841433479440776869382478384756344056165673645066117123557872472773411106899957045199904781291451905624252787268245128494203447925723891394839081050845795741862866406231666861910300895476728644502128025843240329685422601142315637098447400127550255934380322666207266952902752103405542466867049314888322201300667802657077748829340198572459385238625381924082390589708005486979724636231993663982099808300578216612736723918402576659930637635809560107447546130111888627782641067648860509842512551379039997869898670179825222343226555174274130250358358586192356532108064170702268855794422552744279044991855490609400008158435205243482121898085597889786483944663853284202749319134447467330256813569940684276660892211324204286639012271533193214410093497911503795433547608278333713959552658302164272396555477719357501480972560213125893358307880772378987808586819850457038839665777050459326328147921586808335133987870042841821722857184705889783788754461619888295637492978028895518896509883648678190232606499150291689393545910468432028421921233661506220893499886485567358657457084741368425028712206012998730804151477826732962185732150160350475393397896798358470735401268870969908169108307640903998120201888510080634810848949736877337525437349569486511058890065809053254053266022832728326555423923211897040258399255619069955523060521749045171039729933394248569021518052803537508331864502038430893631809354642106110236506118290102945904213516244375251922595551005956369976192745608753237135891390060827601421972550496537581734087412634604576968330910931635748001226123305145759406397262304942711543513790811297045275192408124876665243466852253613589752135284167816176364518405593846389421818630849982105694547337511489951435093094141181157823647957613573720570728285288250524326250549217155507636913762176821607141648544321183256167417519726368373588356465314846670704463865412952584127275230717686238820080165026642238421143960038931911467433022996800461455596285027042557781984136599675128729349027288626833536767189121549178079136108138029314241578488205203828542075291743892913275924335563768214419062226880465784712021571967040178753500529887722067857342465205647897390301172685945011394178597367529755714275317259321858822271873221009660210271400079901300974769501083190874816296791038621103427906716990781774729561691941060547417437011075306394332514672617905290712198843079479988658357749894615013743320219057814494923892233827543020996002853448418085949454675365571953066109663550347091779861570108905826395640270408009845125424958636857217624869845933192299243361165552828865916319560234861919809215757869371100572907180839353295291093886216693125081916761968524809200075836682269617063324995392544154275588861699989905746622206554551895231122610392869343979030674235124448435112471183217573154477290265766437574247403228363446026495367446722103055784631933204271022028130243219877988271232535694594370845709278475921115736439047669238879422747419297647326050918415627859707269335398055289965425637640951596120440795747385758719408086486360605857526375333895867384999204342848641781999334019609073788232907858459795639462414463560704234631654474405996465776935731047274826971203220432699011637120035825726386188382668913006773820625883225781560820531955172522032571169709917967843901759716220243353094022202876979738237987942449627899460321043514337371071663965673925046070794882056994531916696265400370294689069022118040400948923164035777657351545208232298719255295771048794828166901888855486304183548236648766419781675742329350664626867505562482452727858280734811414798186196772107609461741959177805025952735737436344211818772922226431234940817784545528609747359773001268734302174319636664502209205313359803102374451219486472265440361782905194351307628687538302958985332278618181790459582973679166398914363203616355137786545178102136960445785459655220526495806436347204433240494670572097590777592505849614095090556622734469934013721958502350772647468852555526072022024116234582647962572053756660529033404976707235257044702805496867557597764944260336495405656587202179480542643627503891209005661884772619918093235318892888158762434429176382358945679793866963880687586606802016587889229681283085035035216056538239732308400874020859043261723348219921534934264308036331967334396179980184377163619059588369403955598592267965383830587602696304399555099948415473755732920998086271159631386728248307704950661165458735116445790358018640595970330350980086440818542055477946353253223441442729975375760919389793168805488831090743720534020388450037087559794805926167365013828823357665861758015016298218512465940149459412928961848126407116778973666373747624226131906702173494833940557317250208137046122429738835648962129864181699934920437993351779506589166469642672237215954515226085794682139059437677297891743426382689602833925622241279992458972717428662963340731083654397161041874687339735591716080511432898655753291810278705193054871834326976496949410143244572077655407913978424427997678029879174183557762901739820757085377879652351618831009988315435948418818873357033433712962431308638727306377081602045595699474377778678350576037088288838311657818299546306999526907416057018835950369970002384475852644855781689863849107774558897292258825870672677724645556943985660418472755946973024111982905830070190353718496104327651246372435378302808906907563763895173287384496345340995009423547450730418297397235628374240878594843455854377104682986749896593264514363398586510938559276200988385334302565298434936039687231627914846909440019918581422505407617815246958748429069105101205672550737981305635338281526104682962380741794469451118259915026672205183201783957313356359410651931609131924650375247823446746837627744920393004794964878679952398983161668322432229620800637662443545908031093427205407730363667566327632084046788942011106333191454229700506745853336625405934247898696544080331522016406986973199622537875272389544854133131839773225851596067005926640850866073361722082916956745227064688485353695960071663405715802088105006543944546432987615718699557210751311830087245419705884377200396469391135896430790783017927746900897679981631885757291154932605256393035540388456555464624773732685932047508788967357367854308969807662546892921356168800448313750035010830137319995484480549517288383658175182128037984531421132907002216094169800773359313752870611052751768667651809422745893185135134441197248763512610608407217549941378528810152579032681185122317551571052688079828871962004268143978712420728443845967729647867780823444274113658373309925237153232130335855071846984286481764121440219987023963756892012289764294173029810030665606432481615021065011204972095159770194941846290629093572217198241755678468309304746738255524635888137982223318583179939802089456449268423000112302519826939770653506236537619318112730837556368989429018267875252307319914321064833520547491517312396114243977199665017100809897927016920865855986990453788936262196230750748804807307266631087784336713891256462397547853476763313049635923129166392642595065873608378592923781308500116425793285672282262100894920927301374159118871076994939064330861036413228951273249224670080880124730973284864804129837420337551330435102147145899617102633151491983718656304461708440780284599038870691943838775657183740090063119372759569046262233417578444355538143532680488918286141959895572924298706930117701613863318923459410969483864066555968113402811144049452854700210106253425854437417723448686779673347632569419391761244766334380248959570272647594058298738951971464120859879938353173024408609518718354911970882730704630227311286982401772457144708632174184521175156366228744810151932557257376154943085779734304837047600557875359841149044748557000754518450566147791219344096890920791092433715270509281193715411678020759120296410699031818096600096576210681536590501780291713017909023672715733864454988024867856020193364779718824986453770269872866283727431277543625719646307224857405255172890588728571774438948751030097134363642942482660601776546615915619488875364441674809503484665957371968945430592146784468048562225646173436226044989828170736721426024001632407763475332634633446820260902837939472056627410106056023827219033431436756445784634439612898164244081954271099674240065656027094830763350325817714117728418398560181928407895786414114081856314857319894374889282971895566965816196989607289985528031801242478623671354544629866520329590553882390207670039634529394201291626383658080479348853278170952202562269176078581952570915214210915880842628278332984888777567309313114888429341136648106922559816905422890267929027039163890944810725382838538959191682424047075014698822129863180339148667885586765033539566982798809678468480023124115180257393724905861245814146153393363376416888246567142171795101754362598929147557500707378004338266703673466216525916308381648699193392396990465090174432170009919392345089971037859735884367033859865940262350135177215197748550842772639140887506390243718674474245505279253985125334886856690825523616023794300200283995953919995858546358622546625230251991617278149384725437311053332724876140022750076261433926961670731458436884841853347115279233027944408776353219261302428853324091407561214141896083709618062719108154613369207892497194159599331955571585125843928686056229974010661676022190549193796876520986104514719539960988338997296043071099370471221438402135098054941645248665441040860063520186030758237581049514986390888826055751059611089849418815484468908383420547919979653840822428338385031073657163825039153130900345889201275505752525696573330691944112371121935762890056620872935261822361177634064208325031513663473877270765019974258995968728631218540458349506745348146342853376873679695780841251415286930970272497322395876702612950360180703887381080775935883881569333672692986056856029640454952024505407439815818722575215497650637818482875009812939410997112984447528296112451930121917389903145386484623041746198605391487797879224770253661608234237525980622134864890368323760026577281360131557383854619402708097384010801567786452524172261995357789240987861893947077171143229809764860250162325871538972569337318681653797664001831831590534397181008418815333140461305035267111772861849343618408162000607125849901915600457937038816669903599726618796692194411564247380655540938528590142993259571337901803667510276339316188865014404228242530935775025320684904153990150316865025242637049857005124383826438310399466675161879680014398009754809302361952170705174649103843785128111300732930803890056854312972159016337533477695179384648778843135738032609919569952365439493705698393806436194008242057818044757186450752710246303585417180500720661590978791196834118749179537900454903832262138389435732048280831078802473075633762525905477370183588326076873386250993922119140059239279015588263694769617316881385319569790242320359308337228598666031857377000805682677590362560538053889699512912301198648010705336023871163529799500862504828843866411393890920641180544991156068799387940549551473833454062025255695693228937050347618809225104849184740304645077548285372570891563682167440294542474985529841334386069521331852186341272272447207750992219629424872866849235231267901421373438183119784483603023573726964154942148103366480473007922822539073153302463475969607647661304391882456510865923630924123621903530922428167686186646553565950064060447896339796547641205986022117090670623159650660932629481939890173363044792477235042730465775766600120703082602978986776836617868842073777569843403854781781536212217882780869766321828158439761316520046831214895988088047734160371011307063659110013057950097674714498484135380509495468139199427603165596111718273486302327089336216602886684938429601339374119407224677246220524940366577288212770155620882385408990603615183342462778876151281097147537136481865736222781946039715639482876196292106856218677641335320996741532687146626728752958679993382265058590454095861615460491512719108621446075781146875969869995151747792904910865968602204776614207493307008411802941858840695965580914414818709503514259837505328810507573753323095089201604452313216908946187313903161908145132490484614059648446391354205031831599712952577721638927384917386314681415598391377980145150558022305149726512700576322548510436743872649208986879471382968761311077234943192656512422378853414419016050183505483134011667551508331735034430247036094425720111132468713506049174867406480003721163395938826386642224887486895810411378099013519181461839721210877933513675068143095757400675631504100726175449103572805708035179023574161329062800039334994580923520386560932814655117521511169231096399201475125075585834999749582413397141317681086365072365465288634387777656441500578507909126449017057418367446320465822672152043578536203382124950521136941384578087188886985241273848434805086024032712609876927539246677260506420454953356756964773632376690776390303376546218780052088700545690429867913825440241614496967812607220780999589884914020658177405405505694809497248375020709452925656201666887325384304793269366074011198297624854281555630439401438971934694623546983288719624328680868226866930817787944341247685574261367016529397468302676918568406894869125599481160855681357887312815906491794049744292039585053216617021047334301278181842326482152236513009219441636900605831655462258133639633666182275181948136973574211181275566748789744167248030924922150486797411259931953935266396416687198069226119766384383416268620134548834597352083619320169424537321961864414547542588885687894870896599183859954408769246235213615485999437999229035397611277349744829342548097718533760134012790432590522726140391884242261876211584731661303785562765070509555221221584780514441962443389863389764846752274819028222844503034630169686486975274634691960673838863600364697472769890202091037584387756778336677262359503636828734276774083789988438030742312626530785047559216354391000930589075132539698147954367116355943341206314575105558187714829405315453055359286323474007009606490136000761000257759327841230272023967984202555475541299258030849180817784709922414525476483358623083099768704778431736515750897229341164937867994491797298925810457623035558805642466213819939240066956688878646321849703605190282219074999144181495110493554714395113273636654680176772534648917952126975884162912990544632917974943892029755089936763214624601793533565939693502474495678057387417497112810405418145885137047821832424609968543604490803195040223034869012889804402739376720467154837393236480042712024664426056456272341259037109913534180201385730226601686150954104008623462343244944783130974730115409660875419538732557365162563449672605469600185009205793719115337537236353315307262393102227000488931535302489208596355547876613496599652879962618437200084964067550426768120493717947233338222487770638026549782651038008212326923290130441904788161380587832390571518591303381105984608111598865944266389046679531074536327128110171825838609087401748784808846862984168522992067983239808416927286282052835149322921294206602252818171780951460940463107368080266411705764557862829611217389656401968005758482091386268819798279575126953511604288846368860676191750206813003730953390232957017964959671104748006161986368762781860030865568246682368991843065619941085944290033978408278678481538656565936209696495230379637689746044696289558583989463812549748325707095685447636360550836091936996766726359916069450113636088118651682405652763246660960319833101790477439173373768086418578561196639723474644227868262366071259679887848953322096761740679266842415391059263974515761294813052931577569757135396397458088161200382042429237974691397399929157153454460508004416215541064654077472553726237380283871958967064479332526638732074071248643776690087749132945314520351740760865766301234673060636172619147429867335261039105039489989782137251331437656113001539900314279142121544530585246689420438523264909180205622146067526630306882634153612216277616968141383887695822197363566611525614923062817986901221144433805417012439777735642379237301960674768164557322621864011137341080451847388930628630258532452762578074461693991721087516164654698880536181278995089373522438653425974023571534342412812823994193285161390856765228178187923022408266828523984293375647124772328176384139194605151987496249853877662852147049007227227246644078165761554031883930096420892303499454418281591218481754333851435762268676488434936094625195339355811147631724390148757324981058797417278695397653541332778063534608914861899932339476083491428304363795405694593852705107973895696287828347882283828188847523067413429462763655584775066878354207443383959239068180177649218366929877954163290407532267714522500794648593556516303282603498433263613872241758610760113415202058215177815430728994688498629720454662225614866642794659661068650641354604363356496004446727132859906357968691697887312567959792708172579218363157386407633574387383545030976667075753876488399409713950549347233499050037488883142274699995980633384060338751255944009685325656361359247948103140039482437068158359286040788473635064386439484525002268869926001267891447391273338227099467451211623978318117789356410693661490694221107034906011190136104307276261397733779663403605818150039171763380521612679024863498221462884384946433900015749083216994279934264376649368920384082173396331473274484756804968265969766809854288796993795635468281952625973141354722635486368312794283494709045835321079032525632046480268370033973676105453480796853490188182241530517343936106354981639665777280455546876657984872695025632419514085480646994369983103247620939430537730930922500757334785542480940562630947316066541630968297140563313197819950025422167985087876073690545057180635960748656921066790966858958683262846596781808826951600065176207794758948381914145508898997655315098432918041569421034243483223731983871194425869667683073054256646712810690430027954209636386712455071205188232174258823515016246093821360686399996184871567529514790205445562589362373885136249761687526172624690597093905624439543110636828202901719347653023182858795440177749352070332530467576273514372880707929827610385663760840063848832178703235968321003671301318424611752836371860301702793650925646784161360422931840619188082374004308760795519654412984285390018050869711581276327143291148443094226226130442034624751506143800546119505623583173323094038710538741768927202247510476040982333455975767137366582213874087188149078470481229307014621879653637668666073138773272823877809164343974633970794550512341311523415356434431538013478277305746048958517599475537372237846738869372942647309533939749409477482909652587895769178825481888721519414153134139511867630442262421731356378229696602885455781882428521161843106662824294385622129447523297191129574458058191634855969792938908378310698389497078105844392855636507812882226392598657149786660071891106938123108000179300475609015695435618536397149687597373840670343451819155014824201849195866247606946160598125183431048492370327721870406080371819566876005301897618728387311672676384370192806153023595924413317839624250039858359579887010807346906828703670251082645255639145081808753170453630340319155617425816160679797478129005240540122534955317511844765962072588122049305961326612910683207584482063509262422113628624896924094262711520199895252253166027458453085572983033630540068449809648081061875337682513164164673231096593644705759901778117543636516992899482656680157935099887075875418298666576006919051401236789048383051257923321159206229578511967008654968953988503069069576475961634247668859187084344325489753203554473820418658841372905357429537682653560861085855964673248674477132582849983947882516532297924965425728381935704542777048563727230400733527843959145102054775659602872233917100090625872722384379287947912972378467788188636774293200191744875698231882723038248769692358471771865398802101642547362041786157803788139483721484338167709189022041807545353973708926448471565549835006384756865201578410986697482802566658330675903425100031142270745139462407205299103000645406859683280300486695216808266073030320614782506345153859580536052639358452191354964767771070826413455837362242942940064483176822023266236952125667581763914330363522025895627164578820342124944060736476748146429982624033126050857850832216979005495101030487865942272357865868064523517537748693609082031313917970507888980119071630867569704042031179664249830015588247909759962898985545666652489144683749751067164091775110489460412119808555072907094351021860401318629383213607310188439242561430850508245529044964518027083315715471023193688992535755206258991626918730879542528724370604090601885763960420699417776180715295726979636959663982927678495428458850392433095800195968655065721795887817966556058769278589494284202988599425980396086122871883198325803224801256134361698079879097020282786975889641915721999868763944918514112346778410936918950621967603761620931563208700621402088941861571198429251941041641680835904861236202073850653864574165949176293262942456163074008092630079865600293236244936097959050297212749338046476964042215012716982252022377134571444472402341459972149600902386205496321940987406522887234550760609279407222323621973181754509231019042644485700297094575024141257160019278401951287239680983968053691263267391939064989811000885331720732599861950297936144741912545935798971511445627693509430162696999279588290181331928155517015760625186311701491240320163294551063722403539399984792019728003625207320535195780342860170272416673997284722521389550390616461470307124371454234529126279156511354291556169076580767385614972709732818770090711698841001017818412692955863983781713152914046630880448874457979195573087352970141792021189667302693846414403784247248278080708769562038734773040037731234150633407321913558871649917651162295577238338528390403718463904269610741521954370121547781490655542577321640749740368895515091143645469727929585554267480534286271104253537780552902795594429466282539509222414322840055059154586127553472245275426736939658454169751750700755494524451318806112506439756970290011161951183757247660240096092295945867256862138312821643595543246607437239830056394871086013826467111211760110774583557470453321298825538522713084657097138619000875034589969293325977332881012645597613930921198834845594215327972694703396883178060189068873892158474222295215709830218736802684278436341415500906283264687928175881120163282531721093336697005635667491151669021198400263771552120846317487883699038600299612835466690143894979510039716499562443298766303578836122733059161992407511427316331091852120945733791566792851253032593767901157787681368514468539708466217540744598106145127417787374469048624066016350678816185326629084256252026805447318525915647245955097167514296506338522639943649742827881321726444847843639637606385628343467955504707625916652775022277484058679386712072197412460039959242213780452878387992166903794263140514302572533073257763818909555207863346933278814907241476689659953305185564105663744825618784989526052578077307770303331851861591560640005895655068564018010344103224499367549718925721828652167188928583616661458580628338388618460177895302865554183617440488462060773947845038371552113771092820123378000928105665951805422419627983533127752022527406836338410257779865275962615951017294355189287617444375427403290141748731063436558964850007891033393150117834283702232846708118995868799443714778072441256279711574070549755930084794770438859927011725784012870983697210469713861499142173279049386446825577085478408811489077549449680393256857603629971137012986882728225917497129545537814550993216309589892219754521246161392792535759061453770057555623885816126857892864904636153527606714597611214520761508325132938493281475284843647355121350194280796447582190389626029596278401219857199229897349702480079483949270253998607796161839715452943828552053126145795148344434683545356569377240275220123165039145623331840187044659286616349586015422819889617090418150310398957964109645752548906044216491212528032743383262289801971388296063314132970050785360356831018131474198762298929935290729557736091711074064446667393153537006985445095958962436859906796931098395158063858975124675692839722700870755781608263713571014162052718702558184313911321726584079017570558794447697905581571692868596686564103897080484993857647590651552696926037300870125002691580349850501296394326434246543262707074609512685881471280130494498429158750962037272898485939649832928096867066592030719945950675550307632321156875544205355287574314917315918418472294956104425402317734520505781506338290599813398540717853739701556906115651336769258856667276252535729826990487667969021003847435900303038765226986793501031722302599429760282341618323091889086119911505641594282966279324026713455205029677037204788225261791164937717919310154080024758948247278474046279375512910609745226611846165369678578156873985444352427120006027972690344196438869141849683978517683028241287196484150799387293233878114320449789465566214968074746867864637838211188543177397315112492238912016158894191387200721237785035231785316708076052969787515891158089516717677694211569138609415608816935637399557938875945962171739858787362184838632892222870878163658409237111770212590788346388100701030157181157038595584036549126111720309285251648368438969897103122319298190645288160230230384211711555074342334580201551817377424883945081981591717575355155505319560223447556130254182040230531051787893972783267055373780370598930732829278007248125152527233822299446967048143578412317629451107902030763603785526483298507938398661659554413036872737398432167004990018741642197077911549269823457671032793588668308302565093727570496373502744005644477800449754266394978124896121620908627908034341643955466318109799130303128511683063935129992604158643125376203906157219180030008746131615019102414572941423134623412934306851585214827539264504814542809114047635259712803527720069311230171634595441078416391960892952954132053709993053889477519363930706135861618791278203577226031938742028974958198231098861604800453177050168023651192292597252265249415577169401116110435958249019996836788545707911614915306564972708703655021825830197916543640077278893215608274972512156043001104873194762252037518382988338532960731540247779826386694479571009044420542380310955469866719072434269953695661264523404739898805915087859152269256570076796883825419123562787754629910675453850957101967143243857272065937227989256790690334715597739167545714221238646465392109344572874831851387986049160123307984620723105956687105443902562472066399517872066737129322102781976945198124590405848595637286229596775312760997329452567416261405229921196350116131881797746557369064937851490213161304800769010176196058748797220223241007505647520735330390964675163606036364274625265994184487241938600777170708457902073629426932843084199263762278023151273936035359428796380959536480367895840848113931764821585675536635918141148652615772450028144340948673201304696859062980038442738730947604917631179025005366075553798254206128858534835504473594096243782587119236922589954921816557014020439663499051110329580379470031753550854820166892879258893468606697682406121414694619281929884906636531383653944249379331562353198549204793210559876400152741506621981927005147546147737326623330635996997693643406493426477400128014738047820252561111945239276307960813212645246420680605863106322722915226703049455410593537754865023541705590233521818547043512971228223847790268204410188289402026261522257588302673323926838722645622832561469548114199420434418175270808854253885401114449765797626631393404573657619936020037826552792916635879386014601721143854983261458113726045888410594017856981403808339498419312204640277106391800428241928181898199629186473168907927538618449244596379059247194486694015138629424743801215990872062883724386954975356410354283637680838582155150546250105546032244361412540373464060259612866330010037801300962311352318446138505354192706377016277593014388698986974766891471717659900390063416199924172125111617835398662238585401111615833584016690190263877202120893201575140206727311755101047269627523559137675159058862837842749245349697437735526225700696180920809804832169391906054603210522768126437064334368493387859654835656229329911316037173024033312319435345526290501423132124905165422406031537514646516277136768365245890215147990499656595183005051417745928211611934997720801697190788426174515351295390943943743844916340055831188679997002124780884650777662087118177112076237548226635739045072318398585959292891197554128477645121392705441849786229816388062858088133802425633103140160192316323927584838341077805303653484451648472543257209580980591970169999214904942281037149345014126021369260792623587912934097545409060937955344576595449039810057560128308056511043451923465661666279039946923466149266049941622668151436763927973379090822216209575045586867367163916003389628596948820012821902101039864133206208280411082410256590872996813407410795026503215157111277572632402364520114065948617811942125909165410582918283679629006236303959356207445221758107290910717756774740696072104462187097146129130515480619790918007044246071044947281592128852735341205788104451092985879534828034773246030728191368780338268294641708992748148484856516789878424716465274005827792061460285275974408482380631173701408938134179178804363374825116908216059824680740334181829826448830724692628620135995766899205850035825817008304942003705272742043229777826186586284721902398994616362581414689766986310092354357990190722347390618134989342452585154986625352597665129096978784301877851627836353925419774059852277648490989575915107733078908946865065278832070488914093302052766442053557910214439864463501654291599653937893363095438744939651688070866488495363204402659896109521985403307718819985504033962181708865929500019054653405613065935797685938457762657291638950338555584348801458340115844876208127121125541282967412590723469433026304578582109043608188773959522081482395624804562580497488746167879528435278966917535143579727692688259367504638260561824042897100446197994427005134258665823905328880308756850412323894917579982095801703991236360351953872314052470232101304838622370735369581089694691916856679379084467204271903644277566076790505019109793503833940407351976838079418501404510929432119681926402956726132199507359571587169818433686776878996478533075366293064286989872700199319423695973418580784315734579519932970035901862989371458410231151914787884903824354315441339944763352936493338062063060439807608524297634978914416270430408124773752941679033735389909431381394544256518661536485492731983297122402005214351914748527907860033145036070383166813424452100273202811308330887391762202980014088356189673384981931904584436117168889422206380643318837801694385314292930825602239803403269515357958240209994101928039477951907615996071080903032833525554032745262747453417513552878373418212182335514807552431175415589936480007164007413223485800942879981953081886226409003488736244629996151915460905325769206848183273541328435172455255697384613535535285862760553981750249368997384185201341382310500223103646665728184412285206550476454939856112032778409342502195370107850301019617695106529874630702074244333318866292208254848235244881775412469979286527103421566740602084294960435077457965946926724909281131360976217789663368183379063252060626226695853547968469449987557759780621536167987497391034715729948582432037428628579699009157148530063956406964338047813224460915183346284761537494543725146942563172851605288494803635747699516664591880446733552674214826063038911211554341582070397816619911954862905034627520299140666280164421706645653379699272158110858050415952987331537986940314344442733171815570231683592622781982085063599633681957370586823104239016667231796094972911629181440681712582456965837029501533050739861835160600472662728188225983475076990627376759047450017230933400555059966775180770655539629413209879825656337557877344427822043561952085542390928872119330819950510131422492403576759468078537772004829342673701047476355458399458879577301435436691880416809052902498043422169676359483587624574038224407749113659749327275109703627145560624079190968912888488935319079660998564724018200365542037852465680434142048294913199756318179413773095509626479871366451844435190874157458680603612801515681464116513820427241114933939852920467201236690655598780609945018403199306266445712998418610739635448125602196211200590663772758691312850168972945386524262320347682710936363331118474845004506866730714828661999222421170195840876324929527214090765399821741641755639783057089348661132184300579338702471868062420729971020172185833962099037767336861283167550276964458658902624204812458942710042989879572333290172971875196322703898133907309351611440865105893872712034335734934387539602040601491185370721029944268177615341957118535874400885311851256868913983728200786783575382169713179232706325178901674878047666152518672852980101117879216267165998057460660215717522541528132816640955444696198097360141350221052743780862069137551516066169948646213972031223240923515535394130503422305104199844904055221170232649121038811355214802742123858457276680087739895305011341334330841397397071885486303873366756710577785924160166556753194322300065084388088954487010576953035887388438172721534045998760582336759688837331704491462803479974264819409417809593984232587855005683775430000355300057222324651548435318862104323117905502167973302152018704409153854358761947663656280170611394694206764545900243919536162998238450255828119966051162165132122428693569619860030523002622184254126637686798407468280270632018446989592214152325487293237189132462123379691051476572089468592558614510187307158667825106219007043952263553172793081672486071949375951777651484049388462480437622280179932662184980778277047697222342378674147524872070949440134960882550158258864581443692395013838951258023008613532805472758525466292739288808640206908967265931600500175313725599166873824613626595012437192379002716107822373705522831336461344018395473673258260657398837538254407365178321745741172221407210748327894990452358797219545985505923653173973420797392320167366150892012457641213041200026098519141672808387803621275228196152589550261281740193688981784185519311666534127061180608874178662655889141599050278131547470791291335312537867975816194898167875784524805687836972677174514263817282923005870893683170775017540433694515163182092514016055464572570436242182199974340709078008079942674000436555984251669389812775184157736166870159125795779768131543657897875868578377794434499181765604216368476568389223143515328188039798912314891309946355259640598536604813578608616191313252785264630463423889665714031649011687975168322165299706822960010173573651896699454683338390221245151458932751484920758168495039410753983121184557845188091200028692808683339075330100156336983518506673162022820120151353287951792734374199263741343671032056542929620887050409805885769684574001596091585945369325317260969330085342070008515688190989999030076143382935702955577886750717438748508062300510212098310709551608754741757113929397679595876405970890994014630463640079977999178006668812860945428730991933547787803412656007337820450299268827747661137127497077956060931374628027938424303432184913457690579664732241492431496852882339289769332477597961127441450140091355083729724701813294764235262821988048143533948167770415704265100270624172545729506046250904826345143196400640211714955865853280386464550449487247180416558063114954994987788329735842373226102677620144571311879716711866405323035098666466091945408218955646983940887023439439180519141773007884641478534567217806189118297880736149182837470509958439942758903242512135725333858730723259207486061811093055328121514642751131244758670385620641606162250446012487727964042336293227209518401802957346879937720941728788983446026616660328963787232104576231970579290975934725466031555773136940786977854295741782448961331379423216142846615104271472230990690519787363190062077664265368393222617854500668128794585143447190492279396800966706735077952263122658926538973280634675872107384039705765871934552706755485501154023813462854058996097445246575961743576744154734111181245240091873121242234537081502225342952014972586173219523789762556409807609124709350950713333963385769653853774283723649392318597952110572486046406117305331782915025224218953306766597539236659048234849119816089542032333115661965322323216551420580582781706396757438117755348174639132825572395935695380950259914850559104856182946971672858561012711820349061196932827769133780240649822578881636459555595090398317947303415145231312407301361116139308953161051712743058448772012178660558926508064168623258632749695484100766077116767991666910353129934245318144987430568021309545970746091601974326656600012201748837101516671830210268010190924276481522706999951164539347856236126239086685486962191308743632923822105822414021939113421441344323590291271200006425401471503637621757749039322045882547625196005884674285753692038563868713893887350575418593922003498874084946538107969125104717938739878666563584113954478552067868307320515554825550043466880417289693758022510543082193262877100536414267341626086410640397096586547476679173691704517077624767156451038408128520205619797383552847604309941033697548097270496811967604218081406748249984396554903154036079016242306390740716937165817947387125693678186063569090372223656010669866789629516177901971472167563654696455658359551730728488015687052998623271889887648244829607484925724520365257842108418041741810416945174200911549572450246255960680416454042227570601727556816601779046871907281455243219934827198655549923940951967779465745561549958257210780764673212791543762361264467802289248515977051936679145371624864045837935660960531659259856474915040294966250160562843304219906503048613803306739361410154362452177148443297686842633900872523925384291032698528578890002387975435988498790266319327127364452796448283562370378928254398395152025971476833041551987631233469498162595604313021139506647479783882937923485882967020945715908600502549080089755789322227138750719444190897753762025752844187168704881328443085413395909769107586710196497799602001064874302404461449860177176640560208204604924691582636206547810418102114243773337213459744072838959204092323200113983007467101907279063302482151655720132722459116487197735636155022044377393833455191784303768476200249357652251270031191831296073318911631150874916715143942118825195129560767296388597876071275862213047004722055765687902193522686187973365052582825616176632033150094858367347190783823362686380791537728180246190752730678199071418633845151445610837323402983660976145023697168839617446473204193604056215417132052961834344376794054384008879099476135923393145549429691068401556673649351562895966669930721050747278504597428148402473800940105747329053352214769326095950282182927709852531373290103672056181764356724824185275415555686240805892847878840845077477388488269060145453407492350283528572887251028501630649315720352477859347707167065534658229973369138155766765541024661374589181419687687268694104571603423553350263243507209539092806613470630860235474960580765348946938479874397174008396517959688263620245841952798484239029264750409825003480315221289784794892302600758375571371669391897437753875104521411119870776686292533148244702954537778501013035371208679262847472937139182395684448367453274154187314847159090693798259601284571971320610708552057062282766448448458357163649267464168317314244956604334436639139803014032077123490493051680806177112879518545399379054703763477096483161149438671349594723423646573509435736366824657656223590170264754186700875869309113053777221713636198053574391479311227955910256749411089090913186294078739541855256939913103050550481420876031484768318466686193569926091940580337570104639250083715397703990522376391696989866702632554002157929052081350517558735942580925568355123926735642673604571043813238915065227632302638660996740481458423725980212302240063144650681086102605340158021874979179692276785479931975851509140794219533144401760883797781755460693756715462781791366992649059301340438039804137639992870037883136130229381823792792467528914601184124973610284954076578314291346319726748426780011273064772891633720488322330089462162016409564400867128073223926420669975721397243136732173091431059301975032468523971077656605998385864398680001625511921951418366374197191262069806019606892654291833689893967647241116180873589245257718525996839403272287914897738445174907786867037870353404286312576994998749262388607126285952574191087971747671042173304375198734192493680241274070249417561368351033022051719106324757608783958027451362825387184114979636480751886343980487622547417226460503048241251913659355076571053274248708884696272673558403786863343009510864759606487096752136849088128964006669946376168198721845503461784910173895740129082282510855289721233356296970075990632648369523185426444113787323411016364452412383695681496774387549595194101938960180729623757296300706363028544869792322241868662018381783300330764985504989806038094213273045135138287482012852457645619716638733523764276951941733896958625678531832498062828634882127806241300415774286319779140707690321006122210391617605221588884381839476843253207306931811774984764890566116769668217157539577351198616655476887566064225041468552110370312897042611372314908253542384259982071920794332052650342305771879579748118090813194350858005311648214188081062775463085589754013032207822910091828796660363177929101956472901002029686818828401612506080064737965177945774999495526766140023385048924142547967727678224964003994482001315920656560921573527942749970856066954923222384381370665228923384687010713775146415944106041800164426565103092422025378547129785731481505126244260772643318893379255028873788469289953881329171696082702224433728190882706941947933991449713858771552793819418762672882860969393773219032857641072905038889272095805320834715351918058862079494122510754238532819120258992178873691188745166644323480086742269258635382472259994811618969484975447485910565099176659781446434719022291276242234584995372434380250129419888172432838815644349622481743761212580782017137717759405201542270954240491357004616002206458338864731898056221080312984645776241125720945168535550017402465850625246252465488661854027586411586285405848410821505176659993771705827158398557937036275703113647630380160339466215025983038326745722786909140779303370942577901060554417476458341031140197609123886251285111058089939183081226359788780539461181386022238673824112588819907787439357910250280378124395497978581677408766851507579360720561524592104989204350384733030671877999627469286874566357576744711240750920709307378638612317302336680714139313953610461192208650247701792452312403685127546258754546871529300829478179746070886595205795960882866786849621994410277160580916297925069897343511040290477672991229246876583856355698123454441066843955542807054291444227536178172158221185352467940343177823284148154449740672379634497137766477217681835643279225943133441654195469806420400464592736837795781531017457556113426090139551988854353514029920042492266375719560773908893942546534131907024777252979058634291817102235396088082475362772775842273129242390995771903251840605814786333389805555936840211804503045750837438843073783496286641238728307063263434090102267985816086112904717515738587032678423192402642606468075819381508350816580504613175663095603767678617697790530256895984118758659429874198916805522610749571685839342490096899461055671832568304676992947611464650376681092668903242866358841990637744393443197207575696007077636513808404876653318680356917399877205955494747146741635706470606617377509118006375411996184130796058205570410420034306608876373531140524559111176725940157618783466814161781488228235399004612951228236926639802136627477258165853767843679171309262353117940469718170171628033191825253531471958918760898170653886131604962351603144948967053826740829271351903610613660324972007713373953038200756229951863782987002875857603035757042424248098015177930490213836647694654973788507448819422894144988733380509401246779112717068049003299140408608711224368133180760918299376430048393507927546153200462016309723400565356143474258462186832885518284155366248756839716100331448154773838154428346394347824063733284066329296525557240965934012187384525822805846589117760368908936161459319382847564249224053870842770217088549740560569636192952399009272553513634064894342685096033183857269835498688392447285944307157247623234991167159881623203180022400909743387485863087915008967818850624903033500767987014252758642632517870321983349949487860091858455822361205195450840155271338930152235972546758857978642799295412151063148488981735492080711587006730016889939060931834411773961153143608816643317995794024076991604051992204310900953420749939376738788652597671324451205899148902370717350802086101359353710342824913926836972250495249987552813971713677300728904059554488742678182937448763631777352393450969904602692181943883472124909393602265450598301365174352781387326797637766732052843936994700753812342091235367862662270428287243854974321793972507250339576287987347016670822022249431387964639938140709144858515531173056616124716353195690615841840444335765721731152274361417626302526501796780606035653673304093444072419353128779748567188531800600233784297724516294315307300443835292124942729756733106880896472511119837152860898648121933009433319765611184190413982766631564287420006809016862011350116878215785683171514327758408099528265711380546492004155480324454711809488187365265846668581195392707946363902099544138326158672227646087041190036891676332028299037513517301450499838143183299930794815598671257009767933121179124842579583707693669047994078404687587972655415409574797855254423983822099621726929205447683447081943749370671945329754609877567046108085461498764277620240434543026638363787755278633595579620843371029083022188930262045028440666975066794166950096017225676763502356524817472851197450770026618101838734014338853849719662127282581095103694919891612155417922828256998965409293519462346448683427301102197965321810516954579539948133589361238262904216099455771358325814305333370226430125273717913112106950721543090588247388498567252708363791399986181021722153219775635227199451134733408911631655075399313114688930226401706711379025502599334603100267976345554207587504475698599850249862510495034464126833396756359290300237052834859367717404608747306515023123360191849971550545808300904824520684847166934443545464709690427273807483359497898086586286446244796519860981854033456592417518720042661067712454059687667921167411215606845549714235750007456225081943588875147268720824977783190091527477939529700514153624551743161886418199417314483522756020493792491592526785326163856094105804325181209718765445179259888485915281795652026383136351275231463355136514456948259024227218412262185764907659861124216985475511567017332249362624007758161400371638050717253709992745790792274400424230023825094189009629634109660466974810619421168099659186718587887484050881186944920853144170175543809231914128701323623913106280519747279914291228326008910911097228697606349789252509468647791530515360048427682969303955616284237610110767750356949659549051865533384679084659253914285474541554174451382755671658974059436209582009355244582587477986672891457039327605646336955634108760309176604346585149079315279375225392245078262524925683230069688406441491427216802343226901655446745397996993971182366785738894788242088825770458385780441890397792382117540625277447832547951121038127956155325607490687303112464240741978502958295243627912400058073344822204072571137382814776457559474491125266247655592344705995872352896566303011848124217416305134654028290381941048941474343372538282971100730758959649883644711274562493222363920194976697321340474229743208614487584595257052941060369340616218982462571075550337889790711597837022626987064332327689834956368084644260861062307926450112092225048942991059989051287005397212390003561300164006781724379377742634271945342470679057235055886562811545257940155043529067646331710889158983076346574776075022220609377146382285193012582705857506714774569386973125960105216300141139757729577114440951340926220955697053179766942745900968009239879910281220426459279693587801405204488171529648001159901994028448117081611196301370682324453534927866060026421439849218509542331693281489937708886235573099050816223302155215395544170814988136966605471101911862649751214050115032729711199485659180198257719913900523781718784519769788929394263432206125599202327480475499173882337531506852314932088031119904031267237558386868550310370847646588385493006545024489161166859359210968970643321955615570634019080729950224553229642503608883845031158679281774744302532692721707183904742067883292754426666914099985064502532571016845996023685998507531126127781312135670606959052145297225630866256781669752190322725202845374706622721818273079728182669720663858390013280134705044026408215050505696457337966374529462006154278405690402834313612404052147590768352316431748059950091083663239762387841923815007861452410601455680277942490270793372402104397777713498367885873683842653580871939871334323574199714463619628899656767816361078244646692171493758630706085811603677339862976875243115878432599173082877453556932710434764887720598298479768071156563194804749150999902212338341371646532332299812472279909577200227285442070143941188010195322818733600458962239991956264146219554578995412690771404601886169784186168644585759215834761358109575024650258535952143537104019310136880557372269242606185343637226951093154082200997259108223626035530256682309608320061267175459000405678536274254141393552219726364943307175995303023416398498662692572488984808704859009684149524236269045059141855158371985733614988635162949141726754694746057104861264640459192160235996198915346465026697438198861009918107801767184925409793172728324286568038774292447797316949218184611933305047039161997372346936717697380181477147872028142842305092188463396509643720582718769071246066816609305808936880528199088977085622566458106681990787526309150999838235317480632571564337008425359548686206199298265807081092234606676325235573615519230477911456851695859089428723862161285479683714253359916876806449914394073953894574738533227919329021904355730787923872884365729129787129927400137958013088227884910928841444089419538419575717201967358811342788235067424725811612877538294345037028484975762442327041094124031088807777385013972675268098398918961203313801848244517518856771459953876654822186960757403896274231865124936131541897029805145858326743841872445075847712440163688679467599443491373748072600073150929121248245333472026493036236273710854554846777953326752769489963830776365545509389691083397288171488574244419325325012672456152444562606268778469548740130955536310788500955091014457064107508757123978031948243510644474545220324622542257798663125894555509871403065380050515334465910123286876100019347331025876786503694724784320394173334352264775484071472186382957847046865128393690639710697570497014917284177318068890096849790456904102293590630500982039409052705227195140925547341335160043510874120478149032676023374791311161389693853652087565707144834246563657903768119352775310113814501706453591329767385248123674186754678747231494164684634485750791508885040195160583009048463364687902786712983242440291929806338785393802085050746002144023760744311498869490408803969220632092581293359817000519037050600106740169877404508707725996873028047378794780819522343833100146265251190759262548167779299359289004893035349109633510546531570374270981840867861757189905441533560842278601251764689965886485843509543558702718396313328501786792861191202175948914142957065906605770839834703948491662556702935730270190191784187649087235235501397069074376370702723257259643892002348135306105279105596138015742670130840651646040730218911802687566623279976633791266181466577153459850166861057888623761994375215623369043281366571911093314884391242793040092435014966821866884392467707437767285274338429621648262166140567897999255780527436599538328198186934308173366442306430881497831635319102458331130235746882244111868189887311409231392152371721894896772284699398127983292400905748422812078174068247382320057497665641928049657496674686328670534579345522593547195721399138431952656144471559419653402376588333554591715055513136881500027740202967237091112504519458897321294716156126288436057568578083434197771588713621092637905100798715314006263526400313342497892401851338813028260118045754343841974561447129972570047936642627604367389003555090995210216897456231642850379162287895895540741627619666176803649009790739317484902727695408934975070414044493137616444149887530325528356722970577235234915087336519563563103388232091229662110366070680187099623155215762017739444073011903712468095142423724742958537488558589685681881092396332229031906336063522067280408615817600220753200080997604549044325437649852602641265602986834867711459194730704470646323958795334367909909964231429541918418036595387910929327082784136669880482733662656761359838691150672590089363012138371106011238411386516195544221867846903639221637700303953656151393412975746558464225687887830046054481060923519130855883169084346068080440340366062976255424660145893296614558504440055393465651637220059621770957024718636959505446021886096168186065622576522682568221529784981077909375165449647404413928388103766219464949956600112280917496358286475522306568742457662886317655838830384115373739814814285582612375674788305829590013126968635954168649379476987806467546737797754861772097627033452529695775075463674931980969229455573582773448471254118826053759764821394228296203027755468614998456611054665493713105375597496029643265283728918111361474762386025358719567510140914937093123074426540043085845713232735996388927326454770296412025849208179686231553832496233128687131190682554497603167994294394055585970601893125290426170685138232393167600753472046848432387579274315438879287469481575873861794634012077489076145748720379172285793199430912980756229438760258518395843261841207698678925403851368927170140536759359781042477330485431292315575156296735577796204447990243558910863309414018337441071182476698333024325672862475249726758169913033352633342466904994770910187290813786548444219019736498134249284095639407595289586558150739585189653521592474508893789832587386780512817951564337888498393155235402680975452188364471401080894724974425375626575605820742442971193712265130438733690294752431233545851159362905392622072408579518684442247311937227929311245679771166577520324971362469535489649025404314360240255891706743261516316878488585894696563908982694489396848445307302994859416646581968094392166820121599611112965470817046970946862438513739016869955795198503659169766230784018607166630541998690044122435741786723408241685059957245609840414876065977256194897969207321015455950917384428410772036310349042829875607971732192169000091576486928115679619004155669306206495388351218287784397491063143616029124381764276729918118788910319089321128436454408631770286995430689172094698141388038283894534440428177589456279747996412465914295634472838121782584214874558008567513872305734664017081610386910857039246472458456589051377155291205370211117400698237054033459325413997807664441907523844512814607365059748389028092184086842301450098330692874796783000487091827040377007959359481787414223767897728172346643443081010847386371723453594278923828817295286982042780633320221902385264611686633114507504041714766552177483304914665118994105731276148961719443314490982268509660766866265082869399986243013256662193807474060311924283073902385395360466738128503437377861491193561959323999695805583039945759834820270048574210161225315366364136944636065405159258922499507567021112383023503381944914504574658146495132528607768895323103394734773708301867384002276800753924251118962511095726483063447347995681036318740007394401459366532640532353384111421777213921770245144474455935309941045332621756252254831053514115456844482269620106021045664860770048850669608859149814175831457448357357405867950359879824366634700191287860872380860120646350901024213980977222743894522087813614097961589036232283090835974804836602152383218377909113783525153496172653998063673316857482185054503938726812843626280656806552678175527901962110200992839146668384963922380767388309073305560913677501948717249317332785676221774412332187865567267212410668888867638215253424915505370713955996997163018640053402185533603099344110319243589316455237440374294222791323649578686326927042068324969145967022475640290913929968472624024180407967931919427943957562469436469798917047449024945821607843235949912855835683115637601812556740701106239025947470385615168589281199708996033482256035320997191550429081658646478080911561199635111166748174235755911792742690885047295423674927864912478814160651454667145571011884466590861879885966409727583138232303468080933577943994642496241320976911801664735487864289109245885391629888139649457595576245184530651337577127816485707906778123579810020845446960434814517128834155908832468355062373279120937212121351836658318406560806477922340478398780137612771541858336550278789218598249549266967349371507666594965414569331739952171914870179778967014550089340435771399420193265068753621198674500346192322686801960016155533150610278828283285984981949998457768134540784653054237255623725511232026874438623371369545729639715322832733913491876487204258287288642619863370583328118300836200215296065063149023637624939203737109365974252427580107265898356144875159761845174189033943436410377815182178956751772569385674635053549253746234148567573256416060805740822834767581369538034891195494170636738782361861460300717629000762919797834865457622176482973509705776811926731782399178637329108042967282562193648002833688199075939886485777544132082762589421079814825581759043298819389161470817215762858175547695515713170013611646495459452175942115460983595222537860490590560609876072030554653078983132719115838183071765669317269580900197078313799732595903145605323604605748606138999459187424711304550547066017249104751307798856602376754637749316571437406140172180343870144568356269883402067432897743999791217101752066921406477539064537129090059313703490542943538240856192848812231273701503515273550005431335928765923867119212494960846463896515292089774381487502864410997521133090497814134591614728576441733492940732524681422295272625529177289749358951756468548138744191084639852835986940698988973983041246300656178452020430120215927627139261805704216494776315398119083842439244218529046501799434029922216499669649387977027056173877791010671949804395927811905314846200741559674739965084638210084641103488757394671637882458298480390843758942405800771522895924079117046486544905630714597283787223716928768910084506568850760696913029213545695459529965205006488742106098421059632872871105057502038221168738291226843369318053879170727685829876418141723838663215493611717625344958023101520133773990038781741806655382478028651377798939944769058077824257815396789114268267541713347500844761842700083368871020345920367989058219778028705586762379557490658740577016294473584524574686695320581800902640996890001952377338995006506522639821415166538530836114734153029460405254424587823389209660641890890364853708225693200320842239703574282836850466719825626847722877437398611401098279947672824766990992898767949547556302950701763974155613923394571093431678272511712205786730828346881141093267449264497387802054187768986498424780771445820526731195569463566455753491340726485574077823754842596357267261986829523210730313162568766537890968459497824591025232792917084497159344242158034611282676189389770534483954000961739759127486274370349762202492069713797205075712140582855384615723475137748112894339804382132647165822040531524318438051420585523777412124596486454899806473508424464458894209798028722772743386454433126916834456116265378229144872541696877443908087958735702182826215443675722117518547701324483507127341340972662418002665029340611180820425198402815473590342998791976250058421025298266456373140085925854699512896319851753234918398313337938103729962330342326438331489136078655540240795792564209553037526802119257999976571462165870326858025193210541871938319839028928526445333953042914152327405685135499380350186624815659108696623175244776909080777675003426096586647080450949239496014503171883791677659653817643873915210404986794125994715351791725631013231128540954798835543597966393880844265998065829568073616808067757170302891580047110986977772406098776483187066316496619975047988828400386789987370373509516749576498725035041249643601988031417359863328358105547189543565066536066534162666611003404430331311663645915243812133577829373507734305695236531742794620991194266619143214355145502823871172556409667728115893669553314236925068188534367354373063567561767860105594130575588066397445041305210931538653133734220513687472698790494803474639273288895876664529511425084556259948333170412984057234696143088914646418120153646747027510885238770755689264282138243176414438290608864380954621600133435976999214722967371320838614419055591577112949481066787562985314947363243571005070588674271426857524756550601968480366892941021822196522550016684666955882839790563885282111244293626419505897634087342859975696601945315649178682713725785856136137680586083726857224725139687466333241518907168926951282410938207224662861006857840086026823649602222906979386116785308916946106105250627454717526792472097649360457058396746142906029478429084241141085097889080106192385293654437537575830125896493982047452700093937151377490994841881918581096634430439079505317152663936155907304341504681106901239428587270101191291120483023310444794887198410348695576389091480620271703110656535136326277823947047195893694138760754331039742615435761039177312497304028439685517850417748906079997481012080807876170929236983447558914459715729563054498050337136586312656664463927386724886588752932752645302930149803437545287872460455687796173451850790943165764029717511804108811968050185562573876337577174229712225260813523697283812725329620909691537177224600101163933655692375600225403930702859051283600606599105097522701730648107072576467733725822408547833669441927842761744500746354221181773595032190429405786830192072871029806089587046207589151053589053947063795748299619384552734671926629600206153110815163883481371918492611810525461280796287103304027209596491046773286326650712765433813090174314073559874531277476789529124378605846198096579984177425275104721057644632758983665473789808164160078536607100084085664445894762114577127316345498121182470133418266227010073268263461018831937140508771406076978072742833891671284460952710529054037977793081072920058294042537278425211219818880583577830620547317291958764337108142528241164503299621125561935532465707079748595398187447688153095109930228007123319043964006228591074773992717589604219199980223979503700022431265498440076494872325199220273042355117934918540687072189437457136086681731213344445437324264389738345192780058302271753143797348722729028644242793423569972428498479776165601433240388617225549072261860536599526697734198135096683696859400266420983258321972799694099680151084294522900297050782036010112299886653025552331101101269242378241588359163958839701635645453940361474968704027261681643374795937450127510656501148227234356387015231483516560543551047809050937579793424436484040813307827611017743741461806605251627369006397738696294879524399866850051783312906404373433432794590283484467677409798059132062080453041466583853509185132805552759947015210877017461698819385441605234633872192936918800610034466180553136673097423505679391644716840887924659691662900342549243074585707771289345099623896256358358178965514681689556346300528157321713229928309069858794638240605284916674499654165241304824211884631256961093088303648991482803304471010993395189250901387489443457333131039395119807687356730989112309455983800486177837844202868186741626781166118056421867287525134935497159962759288210046528882125680509785449913896911022103784091642904426298455472308803983506312177684418313295486050682037487909711521575855492556080881188350760561429487607960816880776416197119993725277982443216937797653878148464586490711250354141343352296351905284568592238403913815108322606194644755376436206400505698541004056891425518344691514794342232089280560948890849231953498980579883113168770003314115659156692510261882766687686439999902423538380345602662095763199523316840994112714472333974298999439679042272180549621955494944926930531047332562443902827105281826410834912453013945385525942404754174001332086593607624050025536766103675635332755368700931013904669837572334725539084714399839649178342418090707134245310578856231665634949169465577781699270374074068835537463196013403191254110742318390726664932911645139646362499633565100620792776500908196857616544800205448265657230671475772066979629070611020683220887611501232147432640043341829017191094849715959792610152882867020345608356931171786891366680406303664137015688454538363546624325102293342750529640746655107474173141377383438955997748057941951764433824290136655815906018273081780058247096240428214746161025821952145115487110086856577398995940055000214607690275025766958911701836450784238385887985247329940036113932561670501040777930466517031635190551953669250743207624490820194878552728357127939009442748579161019133559056450716457106279498734199095561579382789699632123531515088127021035675033883166257676484179112822682563959001420036664300201771455541161715762516777973883402792418996264665252508390600104792923458532092950693775366163364371646942479978312379951460406943796686448388278779291872491133048142487151784376212280938651539235356122531356408312637276179554923368713540265085654472405379089190886069443324215082363779391033762252773547527846658277677483567942633208601234924751090654073051142264500813238744424155345149223990152307492591357961029793486075540011775965623559968557546518221889068180915648366184950020448538215259397347837249077884431020446758092618477218271385146049795708669477618957648152124759915883647243853112608997734196161555480536829378317469585569150794311183675029686997702212928115454807976993315379518330017322715156662493163864338831064993506467180832757848790409108697440103474085324109253467338804452176599696547194620296332030506637552425204647663235379068221799164395255943588705022611538208497505494000535310732919743349628725442711615640546247724557767040749307499410663587712692722237045068533481491846930444723769609543600309291622361557244966123487946414636350476565628972004504114334443786359439051889478065545229423878985212715338550079266697425659391584538968403129791731522418126118794013055434546963864848637083684874775151686339394580649854764658318227203495484083798935003146951211289983992459975322576788853898842649759651867888340151470450516081520540515862116263815858783948324863673612515789499755115654238961899369992335478670785641307528564600150870700265384394837598130383864260390357774985170539731549924397595309986909384309343895480004112611135169454177111972909581621048823029268064876501539921953299164883490269409797182900998369666807118705706955137251753724977257924946863463441581638499434127179451286041814332430455258118391067000829697921954938905140323760396206210333147243726506962860732626391967720401736897349088254659241769966938591329002036808981845778967041917497149271070418290400009698204217565344363400631607575658005689052926567086358710684502873537402777196773698192975709407353636762472264556988393601360351379084876717043525602179343433914155784541573582932888465262984193576922921824409982079876819638233804256632985259851325065081044156533940841215275935053548280778685482293469515750630250217226712023657950068116545459488286642878476898583068856293868157076393363118850325785444964934785543072712189095678783883305554250166399519408469903915550522454454934570545365238627979118522744560317290110585716919781695780869508756519559093943411817855335187141209389799296373406336869268113895511824974339961240752585787476017661286790085425770362401040361540193693214076274944437364841549602972954260801767856580410055320579828268627829104032543301944224766023194126725493935234274569068972517185653884756211751974529223196866773209009930339450561571261856716712904738124519341316677678727986248047189777207648041945297754971816588955908773340163013898711465095069554032648169523632336154956183395605946959333006282875622635776838100512651474421611024082549378505496511835720809226504100649746042520241868903160273631650979544365271051756574434112412837243495310238594037940774199101252475889612176697028743884222548858770360201335866898315459463441840520289081559618481630739521095794250226047751438490663416378565454556936185107971548398368727405623233018290214492209660985359900008000130141470482752348905295973935680245554217963477044448727645151635999613756634514833955275597595409358521779008628682921959911361892375833705177617157397151914796978174380749301988458184313288038629492375847835103173370000364296683362080033829827239719580984153641624973105960113280465934409165188622232244420804860425079421820069724364247152068164465227379550777230804257856141556500739908220270152838140386278160384947091625804114808304067203174039247636450605434656240658965583690507233444360718101598880425221347053422989354932057837340939345235704613728481167912965632162934094141711356208357014957500987926494142631481512137236862713780011788678263422204218057227321689152885154941577318484278112881442130589228665305970705463742036092438617579123197316714470877400051780625673922396513932844390109286226475900307133192363546456193466336546069046021598130261703301060590488742006195784385958688876581213752499659413218892565902159564451452853979561595549028071894211439516046044577702206170132350570161823470686817562271617408716055735907985783722401931946623149255370867119692125936929761740210349143343131734806308636086988302462941315591566668360610740930378130033697889672022926349045721559075397602302554016705619343727893885041249776526307913245684558057429013461508810230117742868542708606558144223593866674460002849268119502955318330304063127325083262255677888321926068073904088133008144143722190153452762569343413285550208424126715662405758630380371659821799141398832623603390785959350244146497593851175038626394291219301469087895301387329736118520830657337792741633809067929104339885328130338919339995930577262228395757551240485942332522896238509449188384842932743416257145116595709462605563753368789684523903019581365423905898755555153572628517783781778211824972509942461864063247065176131338420739432284831263144258546034556567635680778412533877484942247337945710901674675520292122171191404735030101010571320390600212320047839919714014304986646612230926978098516017899031595543892828792543479939094068250817693323156922152307303124180765389793801927596258528523446650121809833521626024610411566515054627126117352948314592557320625191687492639374222305992451792550638093048659749561403976586849121214898843416006937430811886664836513167229363897113318192317322609188963236233997861211427156495807069255224058861850830789434218396152227655162266190545782876915181767142565733853766026901605505960842053926814926778325158732418426245082144853385161222016492948611528285343944865108647757195538832182506012184096634095870242032551806147313669033256413728200568010736289120530022901989703131110585885920963751857280074443919780723371038856439964052253881996577080852785247800063279904554396705510718360207551499520608537785081307418730308459760848263910484967220998049622374185806174877534413953507586713477557006095799105329499565763869721164004066127670337528874574346706656906394775960306831085708253224808056422955592479540662379024346322847377982721970073319058058317073445317809650242431110496112567592290151566104391580551080792452431667179195364802002873024490320501041026751012594827092505516530525937469987118855976414713009794497245463432520118908559534150637360848194821109266962329926025890080940178940667581035691667069878948991068404095746524837810266844385691388343407292554949875671584779078667351091001287809619843501041513690863968999483389651228238419142663914532348496727975823740237071210547141725902450659465838362706801814738510520989755512795601478906423475383368046081277737713618246160977738187077284195980189334298773076658697354986665962759944018647932301822676382472457742556513709568030511653225463238132033584140376630997231486822362264041895851780674012912599947908314874119591304454057378200030044561306528545019987497254708822247769202282608839686224355329231525832543501275698687541466612941207170205677196770641849795939790730507779481301216659777264034838480939382276242230812685635570740859714423726023305045332482891034356810603581799477567580778402517189960560208214231302003428204021916864176524774348189056718214939736964355652775118052737243672709708323505777567515771151914338684004676816435548237029995629666373054211549663331352318026771178558766408262005412265691923904153822789369978806733983837583432479866264620778711188538252164167759938018220232229305346397293024783248196804244112522294784241267201052270542012500241652081054462192536661432194323295412880763149552459159088023077368834584397788896656063973234322701897545205557310551798306250340105407455195938840711786846091494282194253802880472793422886912443042078015598030434400174443523745712942882350339765135397671527820237081536126098087154088260896411114086590258863290932137970599292709055596180764858692143121064446042824843767173105452367323832116463241490285507475016612164237812066953854477849462956012890177094089810842822886198924446347267933494228538243840110112842276657690017603822514404472279568396818562266779987336587558953409183783107035311935405810026810323863537794712884374156398679500667718379964114441669675925923668254456048241957763365727133917598663695350759950014554682142368288395577786651515898242011119092887912152858468393845913158447831682959632262789556692997210146451194121946902240875481828583595918328315604022655975900248430410468529130509674141098892494575463240228421296302494742505700388844220869610495867434415616390211784024669694687323876901633840540985194094774888023439972133659985989614744635713666876244494065962911009385241032730502971314969712084736495577392460137564577516162921373292200881391825682467829604228600603338986247361667303062299345434243171217515033072547930445074478050455547132465089107664918579253247543571692013206240351472914733739759206135962511601044566696629989164805745408507887453436947145947454579069359658935328143012854976509044382984145933566740916554878819469031383497781343993000229928775236111866078939182065394495399401052818125748556884298966668748833343643581574921168507160976769493073961214869096771773357738026555268194953096667163936892872502003897171077753617511082772222562487455910714250808044359247294120973650165762491198357871805549619284344804028069685728954476877864823929635252669768874644900343675008888333670425856907929086219229539179943310104324190677328097903558181018679020348344404732025090917163642290145286488597726255930149028138362854043682757592163870959877485773367696007077279499216405092772198873972112055799665647682672610513687859184129155964419696334480963894610787384718130539155342660172148472684011106475927908680869337778400634233114305039118530973011208461845408173711526432124727373496247932847632821663327888908860699075701531700262366702597022368635378945897480892118064211231982385837110338751645802939307793208186641161305337091240233309610299047454027116968579720835210163436807332973719749961987818788465521960337419199636198821265823509393106480476709983464876857845385310667989423515562286021562404423829293497873876966680516877647355778640695930965605686252407517468642922164756404633142345164727690410347975192195456802317494687841885745084740983139110156641889057805409912327883773272812463990583297180546404585545382202604255643534457387137877518527214865309382648833459321325619488137363319208529291477458130341051734232082515131839679881869435631093046584355950545207093720512431988214000725277734535324932434722338759076319388735401656822523550478931982533230115333848657507483059571879538205133549312095808605871954292228357608807456603174674818647371444331494378645627873750134679935328426348901537632178619274928327810483413153354254464915557595923385703293185262866651179166798874891503697885254420641205631647110203448408286060992555885228666814890054320213459232553303115273436671452850292969094010903996675458864055103848779552969359344403445379759471356871686208116439401242237516381717738427435128757939576157360608278495200955705066779405094752226044959994007564297214410348046204845885925293565717881777739721663732914035872728487461466133533274090663507653224192164433599976126146534635891842441614881485968001341743161445651041402580790012536981104496235498083340633978913459078881282036900738589192810582411846114309052209838210424328388156552259836605533717959536909687900008157880770100290476914416050789053893880929360129631890641152527344920900506208113890492691674165736255792255132858522214221548727974494084178075059477929747351034661543649771057560986240941550989241258806661173005219475562183409474346637181227265879137017800068602427046859529926488463106766967754346825326291736143398685241031649050657165191270861611187632695380019648483504340044380652395796474048383402023544488100941816945967848960652773924239663026774273106075245043975065320764688308081499715805536566775810063512391088370122734709572587918635808621170248941963563661408010871820941055206893477785795484893584262033090188440126974432070520030012519604780842074746557525688326729185148641145266933588382970634404283985966671964212525192833375037089107943332468860226302433365226389828656052199594499215610259885280295593964071340026615834583946397276160799852326097934215016183536375542124381267896108520729948753933305574974150680823479551833413322872682522338513241942707309759264072494082735884091316794284743130485165447775196067960214797385443370557059534713035482515142586606687312033090949511228107651467502521264619413600383713233995276789080784065780087710286045585172065720857194126185616356042823668549841107214580261071532163070972675930412886687210438045187164077690388611541746738807896285876257245281549036548263467521639691155571400312564493970365447349382033967305031926793951464350705968913130093238268088845094106068232371481993790561370721276885648294849519811007318784016660565660554457767190038573486383544746698533882525190553869300974970572695307813404999590775037946895778269004422651057276637974154520948508660389597685438264796401850189578415400069711859324699800405871449934213139966549439890558579511084996266160533577184797179682203189984684342787904563919401724127022058887900632543020789525921382882367482962424213511100762191872586036071883406643503491729586930974663105847201839718927257500611436853802858971472673234089672800733880117079811267023491258093539919962307117421461102753438173230430602221363713951098628227990103507644934259823710943023359685678421714214542726754624116640864616952074915720837891572755245559693673146069112607060383726387773567671313024964517116916489496475371011700838632799735947071659963268463179681886813232658138122622881486192494556163222111928738487862466822005186594991065442174975668073688064742729908589192274019313974231021555297460227865348983245071385286682594235550858580236241829786396718314066936627687234052812803335757586035887683016377852171597146840677092386443875483146851663508410991828344674989027277255508419158723565163296121529835621725515062215794110359700893789705603399350397470819841114591237042688709528693357718305203483841094935705759999601586953983665200775503736530413835369642776771658003080850770144295348413666852160621984405383491432096618011029099715316055551924973374312246116441479445056082679937809835680340919128665634582961336210966672343991842713540869244345292441357178544542212403381437705313967954190782505095602491962746086474398441504514018259039005165353922744621543930155718837347654543960288380880656183192280066784407350324952828238029951971819054665673436750053207652541332740518365931773675823074597351742867200697255491718405125240457797419817716625820979321026194784214966588617037810918705012182561588906512634737731093165088022482769043450385391077541984986201880777731866296719533956017553641393162613339549069949430990818297899353251883038401354330860975612977156444849554952038738064835988064436694664036686175361003182542242560907817906484905429031922793659454171447359420477350720366000408282421607624732044306013976253933055421061327032342153057423028657404677045413976319636704172585759694866159563557400256767926578898891360222888369051488640419818409326842973261065317165164601739528369109318949652265434879328070478945742719566386655804929424971759424378978549734740336701957179332311757180718126218251041230128693968895840657429881882704276894676992801086292375133953909491533649653929391182285840937346293520243463326780046948381129222965473338606997909862032682858298138965293012925788433572174317548413823229477246818132056412063454669211755593353476144831475131959692081213936785509398502904492669141384408461037829003386634220700613924274332567075330896947025750123033294184665389789320016457203383176198430968793851525744201876020450533473902725065347215900362956729220938874028706646064246131190824662600207412256920124385647100438266088784371755010346299316687668547161157351602082541895754673521208477486219733720045512046016270203603142705913713434675683078816748849126043890879393800051049664285575445273073619502285982533950225520069120989198900327348245096476857836621855264768500244472609459001694397768507054751318048584835207768921889897281004961111526867509852595241740047050806048880704884832783248310976631328254013501735983116119651611426824533494344608582612609328824344597823933120060509141915740876481775674012011016577401652190691385984547799397902292778523324871252951826562382985157569947054241585767606841207692504257685499949207147583354130385975990655471001576471174651899580111548555141647367462469973891500709355168089036296765632210896302811100174033506978921606360031100729118699003837578164250579918343014501524814157356818001242204738864358393723534281279546467552080856205969362984168167914811518572288213401703909751562788367789938832638644652827841663644398408351686464380048863432748797259803498241036238907380630105911272375420046622557479807095053828261068729542976801143185471618310288464610345743914266090435165689703666266795906960651285726126561935432609582690807486689257849952869448155883766727259800390666235512426370571552914549901598107781303007383270358195098172811018732415654833689612407801742326635585293523096282515967296365066791300167268893530259802434560524946625600673996559775964185802235319027951442762123200362670189592399603569337111470300423977136518671860319355322218128649563504796582692390613920850184572048884965445983255460898940930893643719872652492074811522927605294005416294087625292266642630178246773366141097780398222236607938190855801262263917134379662986761003131377344319203255929703494142318986262787402685284548883374982474981014391215316918636284789541194952847720856087837846133613947558468835935386415519468942932505870483134128800242505834717947397659424496594137281632806549296780002409173945000095771772160116270470704183871575785594856476028954699166838647364677021952032293877795526277662274496786389383076757416805624072472060062296536653890381248578892097906696655223282859642053719839048301276897662488432957064052575370161949578867441982608041089131237251177449897571190458477402655125970138780307034914793736362319850753200451619336249442462420815094503727330638627194195583665237355781116359861820948578252841214153382836048319226185779635960457486977539282995087954828134753166575630387647244895044423188649933362347709695908654843695096370151174045461172194153672955708617971892430276627502647978998170999667741276908030394788116353845702702008470455604436212579716069672440335712832554471291422271957664743190288919062394903054166778828700392812205911099357677256255760463347226027519824839928553751095989217657761926400510553737138534520931986764804154390382233378269130588061663717603088899205507821440980805571652671149214678449203281669024781500710259967910944421156164523892070629425514557328595223559430304567299586697818894014228918440461977440257915090946832102207714035405890410084726395078931429347767180276550009724590428779177935211017163831338092222512283956918342889570338397740202668169241207674630277051128398432270407463336391324150094986304097080094948745492075769688405511525652140736206166297318769180162794770039880724371770082712687896901689472743778820578572381308611471854294132074130103835030276827978061033525738928017421479300485038921688443019907460690169876112623141170290041088453130791987586684150792611202690254944480073530338274584740279983927756561584420825055092379567342321974075698721095229817914087920172338006837719308565378596234026914139554506511503465620821689027439287807831534613182194819959801476582249850946164464744457415600612684862380472165526732423465989481420231736148090395192296786043361169702453777184070197231158047186202773915198467507955802897413389453614158743851486882348980714250028131235452395986505694189285354260157261456065032000770291067841168000999022122027174367778869832656753851849764224080341365362425131777662354848738517446012864555664556171055001286769972054178476266776523893264942843539736705597682836875403952958985107782798582694586563344678547861201361848746989905580638643322659107819298851705018695400910057759050300506646159662434594807045038987667383798215601669169267535608002782052107962313805121188778473007168027828283255078556423006444659768078547630503973954450524340738963945523272302366674107138332393466489655768553766070914168143715173682508562572931453488868430164189249831586038490408396758203581621036442947080050752820189452786002900161498337314969334415565686242564489714768388771240449755108926251739783837522512301653755511300899456769089811234277801346757132783625907339570354503124681932272171164916800548696272098975503078596604311300172255325501801315440579998855314868877177120552356114420705167142362830088778879969386768534229836919744280985611223351808902078875618448294138839696525352658709005307185728384885018804074660927788788029498288083174846883277894156780633863904878872073788652414441450132971362158764246141099446027751191887596081416381959734862172526218817848174435830425802593655220883584747381741126549498327763911845385587704768309081373927047594183063761619280090371356250502283262059941349428014080237316142601507518816646383882850704977168022107875635681702389847196931639400177175870233558632502668720774407839962719763977744681212383478712211072967362334278494588926044229561043898099730589411521161889132355158337465414812747689041812718555461252544579155075238162415716761731980410582159541420663329717067714689947856223886364953105367010510974470131462259843657437280278064138384189846388546479480034097617546214241204629712275359234324069019981889477420263289965149988068589246657913193434505850378214663305923072505744834985236041089036007892065252389779566479363912342932676132876891358091885482481376337606341280579451813591699033292796211943904086498105943572311491241465389153615625263384802175288590012718556559625461404965089188301846389548418215334095713254660518105176353452870398962135095796089408453045656565014655429512501557630894851677977246935545753949340455257017142715444007064867115970361512998795443486292134725630515587867838194324803569197518686706558179523829862261166357234796647998471734637403065046058840630594236009784790866771005046653831336874289820831935286614733468257668950698766220015254772205007232658409967232326485252320933862406390701711273822257441227360303504296147299882012625241726511315105635633439561030454326693499575225616606525971028622020912982158945085312667636935159924433517980101251053022388475137337454837609242416052420177654810133598300525519340368390821621347266973414562667897530803508253493334760910888344923670108801119250500932706538242542880947856709106982810544847536913449967385165434965596919711090689142777251567269433925439761254192724732878416571828849418040017815535131460953376114759030076570733809747872951404933035216805949872520315068719798271421176391418836950431314724331099883099590125350710001690012963468810376416520022350999903310478118560650421187146445341323417708501352164941465795374881973335137766719485680086738839377561861207858458850288723193541159466468516257335646191179613967472072346255584458935481030797767951158918914426987026016192314550837449821012678613812215427497715108160512269072428624595602868133184016695498082246780858063783875574393781488538091627670184155799005121878632244457266296664055514698542228479163133904856177448507637558720422508109686600072422125519413902352976817168758146568668835928004380099989213256973639810850220300933622743096847039578395935782963402957484101866938929540376330840458862831943934502859076791578733719680847320131957902798551418194413799272016580797051678376240165088053193226586337929562273764902433763140688614912924854599093630142015216919246588923452680875243198500948771333564617158963858163445867940093109739413566735872446943074375581552249182266351187999132460879279766229826909777519575492020715601190884680607187900975497478332231697929349287582182465912162734816834491481577029874058063484866802202378945418190291912010984568423581377112168106425201112571360923333311915778152786498129224593935388951399755402411429935019096790452494415552341926470006813493455852758999310810957602102634546144314973094549310644350541632460098047088816435189762718658284445204294076853045473055938512607296344135500602577507149060558140812120287241638325729644153344178465829705866355667403062708030070536723059064983695264515031286408288654405308243557602893188089800526591442523298717104176767755845898813610716677521114054970337111902872572727884786840069553135127637681428664683158515275507300795379749995958623080798763366078118743609644738218112273106745378307110051268585251208953287975549209712338792414716224186329096630441981546985790289440742690942745365310334463770170676860635595964805940155845967758227715358271595058463204919680524497278125539172167751838719801485090109929216203156030610666038053106925684695374990694418114995980596610045395478589461936133154998962732985927492877825212348447936264440875742956858446784150239610675028786211216217244883351083215565072592123619245137172315695790838662481320627330380398186742618601388330614904582239727659498178731208553776160331465456415177928786859590550709269584528803997392908213511049792470361494443093922773978518192972819250302993638955821594574904326993410042976636397046559915809552069972059338616086664284958592267273962307066752845623829084551505438385100201420937920520639044905322822339785691575866857375097947442906553078500955581309694250577872053104437182784423278018059944503200218580893854492917020261048310837131384429304458340996348551771411071947010902306744320057528553619321794006511678844693182863679444314508065805018606544707336275962452835690220785941333493641808183263658523549697157851491080986677994963051625747309476104118213896509374192049991983018083065497078298868348000298239707138486306198127756383358550263025811365134732466041406382149694130831008064162982212336894357337615566102179793616573609217035295526563776770342863898260902747966815935499435773352383861874554097536090236809668528971749215586057626094862541141777197243831876643295838319185136557007323214165921325933383456579513274019064561224836408511824909927014932238177397044794171110571069770338941527481268963048482269026666759161118882109781912996143262275407650966971937431592712635995316693343034387710742576162311092575797503202298294935910639351574144108689473191829840795564108775339730130279416671673694343727933532204000026436936614905880126073786171523531929608809489298799266260129390704119643614868996057777180226723462471619753056094169596227921590187987397011641073085946539554364642411010967610657319164441800727385882860677338657569505825423787977382780498356151430416761726591449933509332057866199917170902612201725086055939757848871627362832392705565059920316441388301143067949588168285945022966219069797186107053625105291954749965087346708790463501323877451777538940718572370937328554995457451850057262868979529071251442971467925674459430654304221312819757418848027445739742769812925057159368992442540713339898492811392764714328339974163414379266230078823791340488277466011756325505239336997103818709208057707700047353505264712277553900115674600574261730951027155028729896116914034073726613071293231687392299913437147242282411264370549622072578094346149790264582859378330045763377640727115061070676929486255431666732299908514808496050066898480348680092915566411400700787524094903876200326393820209739764206536190521367558037381767040086909470036928218062321585444133488165706179788330421053328151000979863175592240505387767069496333555057610871950188385897141328456911644325228281266890902328717277827342916495841896821935293455397563779331115825986241547070069700885114144406754459027750041087288746917871003577777703846776401283045778319275262966496301077541663652037410855803177470779882521262262848215599906088487713355941142847134937852605618568459181151547260878550326681741494639839917428511828252809039821280710806901048843218195903813005327559012357242679915338622538804527668882202861814615172714581328625366218389647261390391732153839439187812647298046817312983512559818599256243896783958452499293339077281675724142974884049822133720892826776228781043596477741850353619610239111650609520907889991982427408901906006978504486001057030058070691936296524698534131832548898273525742950811959746872588437871674449331411689376364852306864935238296833454547794639151286021687728889531074913996434266664476491171514914068752208739315341651470077734613360204981387085850091635650361589582977800390479702955181659129052744397944090995809307074965392965380881486342446297643373191462547387070612665213677076863689586937549066937798130257694199707351955347599418811194676157118416159766122219677370783315284263139621071523662047006931299121157311605887336598050780947338417014514816767235630766334830426801032603018533058418601774836077493105280560209367024103937131355083106225157266941436605781133279121079924233745019588663919445944701062211099264066419740349935473133804709078203988762079840999343330472799223399576862401010755730955689582003731801098536970309867272272710959730527893811885413265523145603424264274127140646121207429956770883337830701293034565736085420032099687105706511116881185911674413818141287684834058055198304219764968732776088166941687813672410188387765803751228246719429276525661754597600141717014407165102073309237728441243259744171440445705144057358481462264296156968238668730176074735007632108564639371929292252877442841316705652054533158456766424846945090564493527930838356905309246693964022507634503998182944631508442568549951400278632272535263860401791254392077359400147945367482792237985953540006848795255088458603418833805815222063876591382857874786582463162392878410835015686760244323692757580792975507492786129992716776536755214043597177899317901056716650516831976150849498513316417068930362423605340723929787415795580779403886558344785428682540524775117061041608804687929909358429932167901401283593300434820308316254663661075933274282028992530061484459086305317381517658959685941930393580194899894091481514371829600003477903935682741424952570292076146640549601259877617825326959747642551507784647980578478529895225590870116778607558930090763181913589452066465989166449535452211479251177238197837969428146777078795205211280141810632076972495564401817502367279181162996998929518077616228784835030039910699950324281283881525195283038625973172636652424003729651528969505162518785725905019236814947704221268496383005191027916607403970235443938598549107461155839282671564180380724252723450440297774668274897523244576693030955589289757723747201518238136973063641650296813520993695971291714884467079915918027478791052574821445739424763400441329762889430575052815223522153728099766585750487264470947488409225949657015613337781819168656066993200300330124104141310493330533459381866020745142794730408821082258799835206858311925409100458007635189891304089784395855924156011819837225336186092767276595839921482429287005311395348825468301550994321054657006864384721658883181295910452144237585799996439893520068066418208236310569819963718215473845960204404902819523129778526630805867694754011293779686211292955598650445357145965057225378352573803344948870413957529287549608480834998337387427110368091282161383471079882265006728138569872513030680881933166703841111278458925335017605069352918799044190080359728868223363627199636666170888267024347789571850930269423712348170443222668587530280020711065543163487957067188928447647643681964565343885698768231943726903515342155583237500762299030195459929607673122043562259456028124257769530323011608800313606322523963400103325066323028750900682991901320364689988397490011040029356073567738723846023047266496278908020229004704211735657283243847276164203884647719920188449675819786689031571811868074514994794604311197841631524862905642328310763240019298518545685531144153693752060813681742033064645460444543296343927546154511924273763058352525785788569412722699141453424841978142272908232408673293961711196145704706641821691622662408401977398763270291155020945060157352567253986817799978878734419060882967663875297270527151867841157799132735270427502673926394098341645554901518818691235453208134414544890827105992207051574663866444427163439784361698785189717447908627816411769280662305857823245967825620426998078238991053709700556399872258847451580269813790708529738930349524911802693549067290415083045159546336068273420226410452134842685927984950708932939594531777025666893488133659733106384939464417478417737606285580554211584846908805124430054926280108542981260520238145612210157990994852706795060670504530164439343777615457905886397250198820785573804067769245861900776707166422039010274921709999360189290134015580320833750208814286780046360009597055210770870445849847243275115103350120970996038402662968696855250533132879123366678395887627332615871228094296368433945980780080447999656175534165928726417351590720378367978701325357186960177236845501705593535985043670105134808839285960128552047345510463449958352370197033843855872389154475898869772742901666953386773112337600306100562730927165715764707389894429552123202311547400401821954495757191134071423394269491705424568390957797802688323911224598645545955568423209065680361713448195427189920932094065536305165576921084157654911774002628555767093719558921368583123446502812353994676713892265303343153500330434707687308884224237540140680169296103714998859081718351431039314554645704505361517669441652396922354956414025422134496189708105670091225755159307302556906059641264624413246991485502913422642350240455077747928014517982627074038664465417377222817300416493952397912470337890135136167092816144503110323986221187791602834800748343421306827185314753554422431270030326091494847534605986354870479826678539284974590173778185748368194109464796082721313447086115463780206435527238268224320357102893868985154346260472635470308546675977906333183023806942469804636121102652065653408514109860468380890870027045287641956776450255801746457283759176660413319975862857349125424546380060731271966288809898010211425014979442749745603398016617062427097179524101462771333447019761291066964746872322206644604459422773993029766239970933239470839264671282176732284977797952714922288090405218284856516349319020036433579521900262739189255494526607722162394982471585055921977134940964242771773362183204449925248064220895437043678759573675553688374651408524196161904456477657107073014981616032230016110601448418470304030946585250533153956941189402721317650733178936135746170981850995468910413970134330266406884645108956831375277980920966969426360782084534261318713986387332805201810805274088771671644698026117506676350274560182720445272175922636367562170185229753592028561023614731303251541830954567924300245817586206320429090767091206858617307809648580851080720044320903500659556438228684205592352970415212525287578595932936605777760973298043854682639152563633873521692860739129283132268177670971351829513461153077282878137906733673359336067070981694879164794773676539232861001442182653640930660970496028891312055359276150373781111289539587474540048311873614704441580824830757503589605567901612188483131777402321695472553895618673302347462305512081881535395048638155615445681460063309005990276071695090188618139412374389498482333862335450391831239660229814850000511997654776266117021840326289336450051295476460091366790917334124383810074769059060684263513072145344298966057390644050631829252169251040894051322339959741594659749210587750040368617406236685064413756734958411177796675352918794512624413498335554070050745301552057605149818641757011396205656886003561736962651593262632678668138387824629388841471032676698444049847573287721455136847428613137916820604197606021499772631500948638130950606738040025865131470509237277092389810732398853979863778546318197959835594111194455160971251873366258587348975173818830631166018833708288831680069938207233059069620875859105556265227174269864945898770300339037834742655044895323213587068611256211660251887687243939544122463273755893935893228071367272829756999708079564672158127293783602271026180299140099212609532936867566796925587407141293937222917283897387595762788757643497620416798564781931215438772069872236375821485852939308915017506851037041537176886247648957651906375722100286560570773402593184572823567887565962817641820967740290593625585456872902158312620534647640165087471076410522302927540347177177425067738484549300055471277409619138383424387269843184001793601057604175676864509580342722096399482354335859839618823182614906608483237832052615311341117980719376116850478840373270991613879025999633418135096474325585859953651459573079486085835806017517740647324679723666971935170701539094606762972382794507385353223614255779955777600004001312453503902398828674986595303909526366242696286044586956445095508063855928797824810987914438418815656381843951019009741530176450646911257822195601856351744745650971183408513330574126061045632025627670478485471139285622751200777016729872351207467091862039106041088660691504099677151562861534901565427450021854230078635071989828655594803101422617172406964421638265045489007293483849531882210436180041599814120347737228040352887555526150101671899997456598196497189837854805342854093287823987682628116622920994779881987944138316128468452024307251535236485155324475292260550168585162923106627584016099515583982246322227554420306973455909340776716862547102359805630569090022145696047741666633426397016880883328209401313956208084881048684139282134136897022665155506247346218626589034250177441950793697510197499836918569835882443473332448479472678369105219537715084548570962889557189354175665519726213977527872687383959538919933551379544111867371661813446392878311292960614719539035922391114411402356395348768909993158670061752128351824997470876819697562140502757633801949514272935267321480938409517046207601954321706154159240219783822389204766336799517462358553454213423423547469905876584022199806343334299409565111340379081147089741003722258880242524257015670862228287045165153678992796272592946699094145577514888348817022982840201900883262398383435911900793455921215639181422197653418239133458850852853912493636642495374375830575781159430306034009924025190629414388443467822740883013660644620837822358070903142887964899293940360411737021654133239216197844681797063318881467973839007541031790447119515160383186245328395107271546608952709928743993592118206913589234629333698773923763469115092596092772659163520646708295528370065974471248138679810617710833015709501170013939248951390312773787889704130073384466389028334576308857908764294374817805637256773788765728742358602329389567115378146061392690876921057234675381046993477296146457365576339246279785412021504381010072863999687470216881364719491918939022636971576016711572609579008045854446781329798427353504945332952963556295390052972912928787658526905103486008355260804585160426689472657522795101670636333914631313500265438680714805726443743111551002778814137401792439716914291123052840049372730519661781123016681517339115822234139516280380439071750894539245115648072855507078082322419003009482055794412136925556862135478673153529084308036942204356724907633557387881954058445312155605891648489775655011429721125114018228430346897472887252257218057050956855879360592658425032384902442848076044196144926892487594666450984142702000239564783531273739971542663668644900642179570932040435474176142406720809556848104492060776073496256255304191474817560251154889854748677275498421408993960728778836647740513784002034343504865209611327784834397890938969643673402421530029607347562903183169221815134533323132425605459233517219841132287459061997251822256685142156434738702954305568202964292890290959412415749766469871094988688743104010172517059656543415879452472657798401014467452754817124207356128932028202116615757813751231708348425302490796705551207445270659027821827575222627501143954061585295473797227301919491498489210920141618468291192782660183837862800682955194596230736393709939336240117057312852630653259185808414592879511747060189529532145761977888430777364919372706593850235551907201884788315600302827304606678974700641025625444324613176431672101978979720210003491087999325383532969043726215592063757957104198910291502074695808228838969323351822518078195934440414042091294382109316806879166704627961261270982389042972569543887257122457470706814836617081292915176610003563394471355767532655361792029955337812382641420954019459955951867061702157410569818329807226973523955910211700363950955717746744803124084306090936882891007097758443806906661984885478095237186504164725793904248552586771309807643566990462660333056760815228793260029669631207928043210435896339994320840389524876513393131419698153921231177823125759732863652536192335719307552514903154470720293576482855845861460936462387024735270388203823999595445386926402733567191649920225384445889131591035004591456075329633485625317401006984313952560432620776422024885373919833761309438897130693740616087483054935061080002343416453885645401584529674937403486158778420843937461120503396883760921972641423622509407128213648023167658546526798622699511789068864813200229509778706348942664426494532286877303496884425589013370074874627893240882905915015177591949763008469608688202090160685190475863588926888718597291596779014381184803362710653349242948408601452380101257153615365143524477982491505607163557290331344450127429965223257902201954959834896277342988147210806197594243804553996097158898034758854097771680649453644851312523339566275949572564970647961356599160951615302615797977280605538705610979091139040096690076608340958933777992499205613424350268320597303007864086671095052095374511267644779952035052341739720351754524502672285798552062377941348643417156567505529390278219737345719120028982282070520035891256594849649353809474287051778911730177051995403676797851969186081806925062543135468040958014915510779091659291367631135710021025376737830989389262803410308340547165861936593397807927829429603050328398286844071461110937541649703295500235162958995250903051754425694250618031419225980749266690458427492730307772862168605095192950627406415765361847704361588173344987426449380786202035222932963673444250177807649135202528178727690439619834915801787216507572979954403927232776241706692322794066326694897008486721024008109086838589281681169547416494049452846191255356873054167231924084375101795038034118569643828574650590737989096671923649961944069634147034128774986441279570982493027670741796306371738518584576534202161015247353534381451228914793667456603407335676421689192524018603104208818168160817634941138455620480178332179904764964099831214588660895990236386063051760360801185432475840403160870450131397260356138281215206864266035027827752331808304869566537555207963828670660104667998053817434492793926905834053281927338392723333165645274081315355682910096324763996162613796970473342831872192150677770475576389967889965062034132782890149344385500434086378980828952124762699201175119424456275807751147613802857122698394186362869095160269244414320458504491545747020595385621286813573641148041497779695356267687228709865014357035428812669678162157192468177376416505849296622696673646733370129695714419101123041622338922492443293388188746898441846312365932199770154617081851912141071034075461334717002840482675226330219239454880732465569024546071673215658756338544716894659954090393526179565813157729512194126957710435151900730062078873208903879361098417876232961160761672768487856865177872080465673513535615726577618965896677662988231405886872283417197414523568257760947224123889203829807642133369450110306722344661172334097642461829034726193640989796176599971163750915326451813714507787437495866921650350916116363082393282404118188699453186622684617136841031168193100313606092207754684412439177584745675479725521029596951708373060661408000450475185922006195638141541480643022317349262480793916917880378008340347434866200349218494908469689979876269434123856949197507451864567228695438838528661349490562745189310101577197666238613067995755798266074888644132008775165577660914500318096175662218595389776562241464971992842682927595480297345059217212431570824217016101217775076391624018992073718940540170273401985160445519920907993689293993746495133787856227341692513142670757315523065741284039885303330950294223261202708511041120686666978436859600253695442664869481263106689507555711641493178013869756302281214007977543166474724748395846443425815158580387943533959791397464564313867662148051636327085994027994078763895873990639905656228006072096527651688528422240358167015316011414273348627007919013322900422423735911541738525587281710489610247888837509754696103851150146834884611038100067730472714117557700273642760993907999408537051372479140736549275070296942581267597565074455256026426610982585711551961471126134639606474613490938229604994721463557037354808521739001365016026586069459936285654033639434969317510408769456897831781615076023623671299713460268048276719571540423673782810101896114967343422045823083948296729416459372807092787011511522722669503964610998396688318596921479289187551298125358449380796185153351797823354760246339945444477011377888360316909104362374500202818903180030696883291285610910208400223514559716561913857133529996092976453536999867033828004386391622692680993630166065296928485415023600787499235934156274593645454593763572727809741758194125489705920744344846367547096929623198881123027352864469465238412967874963221680365580132986933619953273097379493126307271974964610031361489319060422345905228162038014602405363854043907139000997544243037467554737127575000972242114783256999123091024291499213587071487662027357942047250750572144085394173390994150323805448644879188828184193408095101513125764070579393195484378374733594817933188858095870419741404798592825205538497172099521454876710234308212624496427899057945860579286522839846351471045796616147887112272186051825943119688530328639571008741028247293439638613557082409524398277710118385054084699655516676572149029416910640391434413600502457875023304490736858651834497361904784945610568803044787796371117750841797930445380829378560622268465562043067862224280957155846607446978620747024467944688699061643590567131083623272280175555544101568004354849614141346120895667314470651071764201957006278794441625511306989101795460927169654602348607554389906980812265677133332221924624713223452700380559435894766007033329164221888769913000624965629498447499494638689593635017405800717680572221511860553782425111771110463927860613953415186589449987666386908088423222845486713953334710040201900524410602423135732957114044805630922699771619405749307671671378077894802201614241366480266427041161896191128555700508834695169398321863873702748207478283296541703127494370357376115232067642115774884492814903497311019057638463023314938958835269770405665056280676588047442978938899607503199725954594219042213175570069110724336523817277781459394487779505967410657774330638938783157566252690970587181756186991003524914877323038157102327607100237334110939964358127967869452214507458575519122304913449758782129240163585728369527061097045698370458257711127119369147880390061347769952120241360564320558465867112299658381132293779158675553011544988248925686480359145487772169796821591723077590920189114897478174276615589850001175548020144062506663902102237147658085908806766143263145139687217857760830701125336726346277783000000822089249634796427881350581993547780752765371595236479457153044154319416217604691652653497309352446027507897008213325094388541022986393767059534026399990310549623919053313380781775028015710367137135971588005467160340069454123506651060325992057517087799515450401009857703717731816189809421576882899660639320246921952355119125391579766494738504319108480948375559129103630428164015895095964837033205768351699003890549890958049553615481392482666453616719515545311174698951062751406650890341529370032649756497260830241470133986313746557579959015059590174414523785313484299991365995155059771521314576491304327118167524902413841836477586560177560757712820861279848291423445110099931046569516559119861340341192569199728469563249821867774750245812424956070410829388143148873375334638064656410382519337399829444377461080337721344813073467453123296942752772091611531515983063591809229385892755410383242230222025689617795009786732906692483627753330421979300625988528413597631873126032986544764239859361980554371426711532270087374310833959370617155453776301483914920935634020734145065330237888787770751208454676611451886833815056481440452259758989080000505227059617061570799116845828648005109209940500734774340873337029029500343425307834094094087032067852828835231221117080820344861930163299284806764956662073935989010590244863389040147121618736513417989706000931214443817418642427699435396127089822900388030128213838826566232240018687472000525221551381174331124608154541742665174668957424339869713885231129750149780735679636940528582130877254182433101960122004079606809239052571117120538746894951953919036414648066026813565282678198112113079830762301824924343585193649437267488854174867442746996304055703453382287126199544019912181262474059247109039857462075047462106797176802308836861147054189183352348126050517480005344569756326387889007116258087881415589910575002815471388975307288505275923897758049111136696187372910825839220248554374603944363713638437626035004673014295185339849887135265843241513184677239637556147278844903041610271234532438399131756110735901280384552632135784015030649136598034349637096945986695778459108769492076474530959438983657119844060382597515074322129085219620797353502774994620627780738421163361709298695969179822579296018802985465424793637883629442971016114904192555233490081974082618033955219075973983798681941245431995003000640244081819278725725858358770679938439825305687481510573534284772831261545826608013729184959663738190328147759722107966614759315110311108858373842944079112612010338134251304800711082984805237761333674113530468411556665581417206797925085046737058712973326057282995685587665628911082043949643255780207242178303965363053933655911097288400874753448527827248831841967586096963465602058301278353717148948786629194701554031161185627255816960298712304341705873227331146711033079837823367170572627456880808125781982111310075428750791675405008902664442917424639641866399946777519908310150694708578397294685313273669649046268642527857506855183800825814817911095365005549317843631615885185106087290452301755039790002170093782973677962212994394975384813525158225322258376189707061140014257377898584734492658435188569403346015081461279298947320592940120979640896630440951556799154188199153312940302494977271414520303447940474228796443230606600093465882304761790867492130730669277045017023837707485871637135043742071814187373409925176050198813657848493706602149862663840078093572743326191336576464305355134539609034121187132233378648271214340736139169994157836958227446237910802114516888784531444297222275539641597547175175327532917508656413610850001431588015929137282535414294663483718816520120573929374786828530482408360349831641378355066161614528849808746633633280400827568964228582512480324585394589075683856296212367710902270093391517228825060408952546363791094693643750599708898508761414241085274120410244842702709244691683355062871982700383626860125821436662332011548678330313466807494750909270365968210827965533870328409224451059334648287250914589166599308368823175488526055071995562203069435588397041845484105649983512781813259179866205581184375327059236234859373617915771859250490319726877081720315022094648966416662153820357500752019330034180194872291239612931279943513224225963918378750941036717986256615015771654064108510967885708358205660684025717640130230385390604929292098900990854829957857103375356438719975668169483567439829649508643899821786903669202570587597592064513194155918619532727035380040394234307275489158589996582129764231108700548186734167890217066658065088105682550228234001955429988267903255664658412339072646818550147924480713425607196662652905457850361566563721777026382857743218696929018653294346779895162214613188242344517579026977411633498453191404184130270290204926844797314564006420249386155184599314136061096433009238816678384095605583597687304892057807306732499524797425536501568292955080866944062520135094391166446413858923940075359914043173825514865642309095585721892817051244988286806319400869520730202186490872456751906172747541065676162295653445132418130544798320206523479788816446515171712527328470827573892807484568683903088582615981152117529186975232128519570970849854408726925158343194538466030005494314339221294502706832540027194067936197581945145849673567772325173557073698737370815945185621938527477840462037923472370205758353006851479553537759403006833528764506094216484847770150498385121499867776423751150552998891939112523323346888550368997271982661938882918192615979171953343644391511869832035524448228985127335354443456319260039687672766432347587170812962797179223053438696513599525369038382627053993691183869839784245098391396555271791890076190135492838875329176155021086027822070332336801901791422770066627250758020009094009476831024519682001743077313717033873104734705147436839475323150120786910659719252302321070449898476556680764927573753851694394761420920106405740583332458633977004305879936275143061665903963354075468200644292016346894373544604648993361527411657755096645278751254429096219485108766509448545946259759437767751293382953156684029992803524620867596488223739564382551210725639811348507688572142341773881432079307849367474621875525900161150784409399598090443835688546427013813781785543764603749187400058043853377002756509213302504717639761982574442900043425474840569487506538000891092160620570484391815288195002741813166576539574854093499335979085999108801692252715622064301778735031559953887763598041281403956153952021532105765033789978861940866798148482655771391286126580257079519270667060189072475908909741124820554341616317499121166669169731491309043890678399561333403038906228932416623004746891934931206539011444746900735919234935807632308721875682670280852541111846225759798118753414358247053022788481870173123777918713517695663350119798416035460640604561365154607796956658970374896526989172064054519024343984593977752480440209451474765788518666497089130311097977248092261859431486665559675246731947924922054662350555413882102500947022006550119454502824752052335345711176270544139937130940110274903078486835511070120345179072325383565874625185007136821325164417201361108129914316225104199840067974289162272270055459254288483177409727464383869126051230774425951187684935049288978924250936037554697928416121721129978125717084688871085669816684021513274326844162324219617651365544048615335558377536157649158289595632176084648796913660044660271248963717811534726451823820056544864923025314845357088249924716592782172784266282552924099585316844207364838223303005049846720096361294163415306399581215232003196416599967865046595603320534901270870240567639156688243145228700009784754425239139052595781791229626689360975825923340931943866498164397638349135170868419248424616999827593822987935772414019983705947387222268893358520363078402800465005276126207218566641022311698257455364854588562909336765484676656734086897149470865868338551303198149881981387578056692397286927503676349737492472044848455389528234629166815875265434001460322249106600454837969636315637633756573054806162058828113426968494410541864621882290374461297979112514664597684886371211183612655637703196106888230173087591989700097472004337999047299525095546508576872896462290487599941585172474814379300137367960853761917962841980927620770266679847385617546235958041126448424041391555785707223718162648796162803806886913425477181441954618316197313197887276499543307537289968434438493323920406195297561937917394808522486418806144648714815897692383802096048841036414993094925261498760571885864559714861203441052970095776148153401804272531831026686527501591877246732308306070097483903716191163191482930052485277984492758893011656809872472992859163811569363076137787633228574496551283515625437340364309704247177821819960974306955850315652299734564395921114146946243273165702571150193296240572374460311908399691999892397639224014043963884168006057533632773867908856341409167995028311399197383370208028261202858073269231389076700360561792129042024642410073217936373767098682127330389728276691665430708103370943138989884999697265861400205060951785779267224823531081742052314855669461040726133419271240705420856319456299790843485611216740566416829760533343705445794332171746731092264981478007883850842416820622260028021998045408102561135454746503085945726109111261905216434385630418605060932396135546047219968879000486386961451843915096925503472576128449412599376045007460020074511506517769388401834537623514518971810037876238496838052374772020146857408302088639234294852339156042394166449819871702983331230711259047363697727761906119276053036107514819552318851438245054701503383109841799728306353266033403373013820978144210491673483190731745707994137331776987400168761112493292654345333024435307031010612343162487940525412588143287056270840130773498551627923199956774685441701935264152112578922957778247528765375684407551704896595342731696607552997133808865752570256576384948258160036206839874572491877890072176546797462118718692469251838694196235413311374115815797434490011274408594753612232289668039130496254019918622967689915157113646957196267236021488356674288927698319318166203815830942023905776570581053632246216829737169539039782829627810358729454374412273843628947335576152069405743296810897280958603027437224609434110633924719780997749514662557493562936754570371177684524778648947778744974556618805043571497826984750698377644383753627002481900545875642063552342490748152025401768975387512585200904051971124193804631194913748117544372727892435787712107634230669199246352001580255913410644357630430004152129249161811793236170035858483018108392303262616681322841727041020336114810077127232562404897902015400271819281853280820412520305138297013055467319603794117524043378381563030121168590935287738645694109812109199825183515223999952129138958450977146899161741506776636360937016565166598632037703436942933525055349015332220171744286248361898964247841447626610260682112234403283202937680535915510332700491786857125189617243187265217905422246006340626713614755018309468723072159448759640001357631766123026121269365468386507575887775019323616990275963525883213773928297101913729247061771660807399229923725180452531810267790986245360934170138622625396320513198445684582314659495312720840300156839488530209271207452493963489104854142558414394213326662151548122979884552943222358409327397771658265277451816094896179444526025530384871089121788993755000378741383842692061669612614418493556274183969590004796191578800234622013333197769434001452275469775112047928004381191060643057932832161858139877695348796729867464880994080910262302248068044497788160131394398054587856830935190539802133730486113797333919957575809307328012217818859670553090159861306516456342465145456201457745742977329875525081582911234094978972197556272630498569928723456879156040991953112300539717523123820341999977772219557048281396161564960469212484511863976027965112755161682800524274357007189888343893980380394505455224921499427785925870435743813445187416002599550876781055639770907398943170232991680047564810531768026060576383739161130026752593889083463007515398553576254037899303712177301633412670859557270511790825304920776528331576822923639128894960167472751387972523734464533822330558905659781596078157035995439442833598736172927599320090536048271576887145954066194177593514033739793795319168569033268047697084323363703627309180512985871317045164635026696452854867201284356605348227818594094660677731553213628661500579286121470104135068026547606359942424513715379040369454671382298465081418435832964928196095845396079839707511178424073845826671314042551974684579075180648612086226969944444883491437319934292872168655320368871112678785510655939615312279068510436324816644373526983279515117337440655660632650357580376030697517542129507279200319809811711107700666259577162863608382193755896966861796504215532973565157001614721420127615400792880429430656843300234294741517219483674830893670218063306159950137100211840595499970873727362363112612208628809969703085677176855553669695498218301874603974470401059350501726636732947214162905007542460438703370464204864469417542061747601341577105935301853703540271912406023167843808696540448643463533941141067889042496027552180952968457867104082204130528639507538389808770786137589101651529541398278194094198151134308791104694616220935236770862587590450637912216714304535322466527448939541758337167192071884153608816747144094279688014468266765995259077387773139484535581206081785882349751293188890278030655103546693719342554266622630473202562337627631479995278752382566872479529908111278173128331815582495033155362156222729919756542462504718375587837370388465973126061026446291971614661914773695601223699446210006529770715767292363021721949641886522851752035754028224346739938069049710198361684647073363636170719829179694041093677123968191458584406213603089606643156165059339969884521458521796518370612095337707655068431732320764611084048387032964770591509673061764830403603856433723430114158096341377800262047751187899508265879524640409896141980570564938113779608887165941005949113451151719901530024916822555258148499149922104158082580397185143365892927083750433291330354577634783969653682666400809231638889634567353257185173898589964271152317643492522814446411884259671762581948949164148337530608843488815435023931414141834416510277202520644672984909202903157057850535574835226905659640179992401137934870492414697598655457366951861491243956795066375347503192260790220949151391610291923398818945350063220052332694217127040892664058251432042720278036315514504277634468173860245155723180651908698771778148715733467413184289840550560740715283901467500091951729865064655776114475811569976406234765117967560541148542284380301339075136623594824360421643769972700468414697438404706513530050765049337106410962949677190931796178424187851993862279024986296312371904598932722494284386091951122735662003741940075740264628743517859753631920266212400177899013495187966531048358417737371762177081016163619352134492525946824465270181188786584589528274877429052677880985143295732193277861848074616145807536892687202412038965138541579416591361144507126240788754975508265331438067058352070036572223277187487372752876494202923035860382508451552287195556290692820296666242099486261941293383923662496403181743781493656593921277063038278722461372440077967507564583458967735051206257699956053129373119197449497988321629606511929711961131334372709049608427715711296877803335283452681547218042342302925254013645711742253245357042439268779663847498022140126171923539422533062137298640623996068262977015776441580832766626503064909633535038754517883938529683732610966130502951353054075906827380878403426764873448751718436137701347300683701638325960997422981636702551168555733760703378598458324551286616818579051059676027099402280584407984249537114425221250340832628128967886994291082620746923580704713819087563832592381853648548996566726905372875712010869056507011085309265753725303735095973164170107582250883696158117911865960533833842014202088726097925330176816401881055395083920444770483012333934939616633289671211051789159182559596574727313004000360417907130917127061920351371124849615277998382522676223195338687519466884923723534833478636138006801659686431458409997950648697478555294648665049025205390390803514800491134314971431280080773418464779851394719020457929196113670855833297806022386571555621384219654542136715970171946262863526849731618761635744917072506746942497942048037559653368458709095008319735996337056014077493870980298019174544809294976679655692942754552396616123837514694630318814905634303930682894493877063965976069941426768569946573515041538305096027665074710968159305138298768905874481849910680919529439470347062865777515656463584740783627742769284442552060308996206711240834809674766704178154822721569699685650234932267264717563418462122399653540549641031991344403071313830530170116866325656138336778575234515412496076324487704817260408722801668921988759644936820244200776417809654647262645490559524912870911263525103884177883063550345461952240832297270794725725313513951556410692018466800823202146212998383753514887082972486666459803592153021204135868394866823631121122423785377915972080697508301167716471131480658547475704054803466065183784746487530385191209620749528594011409756278472631689284852963028931597485334300553570862720388167445053169998029673711886651297611748047981944339497061702059399446415264856074928251537352998554950198676971723513257995458924076397342062929489957128296347545767105003378031343091900410445095526520799151803867045571673336708206653133251894546901609168633022379768227953333932535074440234220070784278809448071970158106354759936246579967231917652286176993455360020506974925144534584102961209481732013930217386263422630933554345089687006028806423806084558215756763298487179401071656884029898703412943627802024945959093470364706993857107714567383149619564351782930376295226147827213810500410740776018710657436658955314668597620120847682038457221487958328486623821663939434725800994020640695549583416942279109137328630498907004981835302552477112742575639811006999729960650844738854138741916868289775175092783561979513191348181717529382242616667552215219615188442348564525207910249132119166063010405973063042691229115295706470991783182225761426788444100283305135800550566403337640665474976993642630056025448370958797860383988881242890973646211078354957857251573031830204089429263990752695577380478723637745607107662697924952738407473642093579001481268428666089167096150343584250921537614258926612732561246682462930228352565656095092278703524390703884424708890520895974437030001665042006576383594203771706064307902430274114261531293618507793622175108490242397982194796333324650752707203576986817265674715433880424548870153196610524212145195632365183044354345268593003721588408657629596706450731034584211313953068235224340607145462262219629806704510624593220671217532615543148728125799672292060311777381223860043858119320355229141761138377731177258126924927497373605539934395454127828019597616800123745541736425127484835994975046952076754286433689407714424818554341548198941447149854081578970732642562763517950326147929618458518995161450155183734741523769117749045042402801527553128464538543207234898850905514757151349902842192326021168515845717962388507092244309765780121477675629749379861061002705895958015692479614134640084529112035473705485021336605020659804905087046863742349558688815970275360266507168840453224365596631272573365829240901528221672018572727401401817229328762111398210623943319526718444660182716671621031256065912299426255559013043483098308996526446652270503244832038363694590127093514735758743496662228956566937661610879467082739855253798544279562963817386236992377780644189251681583769767166836015551799662509992251286648572413280713716941422475566781400107084557315022448594664362003123334841209572434903441104055488319730349939902628361103532754644868209906702150563913597753190111282747425084634481406753590448852369616578117979144682593946636889348434208462562344107546843031208457521887727645497495488780515769433276344646451143384695308599217258231745591011564832882122595163388368981031625197112440543859567862486242482354981102129126626052842148649750837232057869857578888318643721068964591262512863811645542471332584570860724072759362713650157537870451097394135462723651736554403823267110623093441163155971435685762157000877717921456528982869816230801542215524021996519333988772909420991990395979341446159925540851693006550004057714964852898908663687868575638724213543712631841035069506299614563163210073876618067363976972016585331162316051674195974634124297294795438455206502318454777568659453414690224269713544374871935879664345460135527002772725086572412788278554294032046018549208043069736016496698558414028424977970013605488250039253572043157903122276856288580651159540664685596814705103871262265288985513350486883058018153024860619416308031316043916339671001814144232710860196932885900048827477497181042615941620542032603362895516306928374424777442524815252167442749563341788097668276282532836957423198491822297536942368666816403561670414084442541251857859828348218488636915757754577315903673337197379769791851358999088136391089736060203695517007944004066435900936683689023440039978955061070203960335065397386441575385557480189407919187605654198615324404759575487559878007092649823977855053185956486156709038160828175742808899312549071809251412977792994724382979229353047205307253559270504860397173700459198933644502213946443979777915052165438007778999315360241641247563468791799644779246648283826328048608270596826847909339304224747013248852242341717340926604718891161261808502195793359330237808463179878561309320933932110979255278759258555263231703911200093782520243344616987422198055386224946745956250969469671460846412900405999171528080543264678102322206683209377532627974163222015839194870927204862179252986726468111875660714276758914193706747392323334359207711044774289450243376024346775650403362446372129247278356302847733481416727149823554366804999885956623935234922945814760293475230648131235815003935083960131627586633985157938254418731698690335367879713508995993960886550680420667710830300345762946531061357872148596001859650503385617208041411411719927469835407700159911395807418385087928296484757464242159473873231067025560716889485283864414629182006363317797725571984348139016082084519053703518764556872593612812225133917051542896662785444397868707082752899522795474872439086304869118909185414719867809444500972767121893982500767019472772558732671175652100379277081746462409640697594211793764945920457790659679484466670022386662539569878572468257873980524781252708416643001420554806541475085298954228769986818898880668823715109333904768978380195932995812310701126283278008480565946947450452329862189361726943036409392218718553420339822122570915880815347532464948017446210474275188796257913945385709431883411857948431203143136139074900273944882034609930388966056711200379213572481241213045402764964882643944896922659114777112027331969379758264493906083499593145933289371243391580148618571995890502680135571469721890549664328553067218919343963653357937447744178044162506705136089725464897726994730518237342326834281830974937462891143722436019199580751480851188278845689668571041522644610253383040211865344390287581812570431098936127142263362482632096899556123222842890975359933748206042518507804519217511204223044006418104129613977057252997589296788077436254263473979210847529688948822524686780522295786680858064600349348625407913541325398250487608282500378544304922844670278253836311721307907463337221670131535179801919408644979138628417680032155394819047272096177342723354842116917595323319854921651388687943198613413488273204233332355339536382096093473894266539903405162390360672027832673236762841775429700702260743797202168681386681332646523937389995003295988416156673328223846499685940413722413931368456615965783631326966440581747112508823191325864008264631788491637953351078316903970638440366430010400161358358371464927843947839454617088130668464811575091783789493702407928162215809131986006736019835551646350379138500855666799587210313996746250500458677575040024892020604014589107224380842693279935776006695522696838584482344078626151772848039546008762989277386659704466781974110593161860006779439838361725103320499591633156594162688385771936301823399796573012158061333827806304979876954892620081556041306123303523599831409895631258095118955840444850412317162152641656019741346080060520621179320068027894090493702597202858165323813826104929291376357949730603254340351570624430015971640778165777189722547944862249581385439997283202515314344449735634824614719644273054803144028725387697575281620658802652628840537201185897401414442044975632097598766202853031191118807683263289338180608497699367497636011411030207204562749734716802076698444146553961237733915958989073633751120196819110136290254907207729188156710348324887418110636631672975844762780732606113193478912590004094803831110215789352292515887857343765945450718582812818708761360784209750810461368582391327330235471998573468486590751929576015076678338899081282320445851683614666340824812104606055603829881928354793573582878358362342409911747286389699294398485137675067701215158933049047824907485291044318650346493283480448293699894610965178010174446342218230702634140782002364115950028151597661898524897119557416515842562541167261850420883714669608341998938236381267835661771438636230698208204371673325342012002486568865943795864713894069417827055665733891644058012302271354742693360081380290949950590081241684880019721541202414177274549768942026128453221698763980242146785124021631931031582359355448463842389592959054038899941479008615717957532966722629533890672705050717829840521109364000975571642378708154011264724304151859118008114928209957251133947771822679298007220196580716514585807771409692158600253736231341616680667742926504715096559117998552362381759942684109373943584387864907593196112942188570991701990342694278317412806963816071986168599646118845847764875531771125753430508129272863942028052051566511611097297846250872136925613268455282684895555637639840715874921290629955468580693197896233853104308567309982405613221690114323801045578352528784209253088309272070637449736811681969747926846902595420172733925955958109303365153815355622114403795428075169606532055616865589901272934144528431354009741540810404612819072157603698647342793279513552445833122884631620640232222271299363065853598052667107716684053022351769904206045235962596879733382070472990592649546493473004055879261321689949698737207882968325880636166036903102321461730466957824131145348713895688053997894403407114332118612312486117000632019679945012680159413328854079057726923971856256720420865030199951938894067118965662338890640169512865703708223861809973525418404395161419994115007600246950623868878639455568723780028550376801738988066402739042217934308551496350639038242728148028012783532684284942855674069364532545425530866549535754891981101809017050064171427831684548053265295971317353699478124294662279517435764971444763965097691478800439121705662102349693466218961980443953538155006243001246061356553681883515853221620884495376766525983750916743977144461574589030137964227454727594968951316787682368545770648013749336684588483988647255095508987945067885721685417799280225084559643990216915330959805986709601400111250590243997809665447525613759455906857338680450409104110257762193013921805746913537294932760900155020658880075299940298117542071553659180336069320555457247210907981729301025837321342473113966321651590680602138638465742268360904431846245330688905039656487527719220741931845461779361962226053048254497222382185050228893091650536277047533072888885036662119812512949078066688380404361929386538577565250474208194841207218629672551248742230243415228949056052949515838478781115394312991948627554601522615080213377409172336178424305464248882942644252265769629738450540269715144619817868093641199881237898037233946172039914817391277406783626831929809994143000120294588517816518958619272574063290891091415909034707210837973738803414894214257497503594513204265530966393445422791786502686561267143711726818619967264058565513498790620591483456619533097420597205740271917124482412189560079981903491857578248516278432798639119188807810296372053621338202240244318809714942692111951635806214483049055708231783886684556854609922395424622176416126482401875760918735316649316556094559130497386169911852429323661048225657359202346918135434272175671628750153106630583483403507834522616319910648007155380949484662082405681179577956434002684672494338738560258323009123392581745935773655988057628827603246908273881788890028542677487902880409860491638512921637024769304735339061406565804633378204654450632313753726218349280755610790884257929993324819350808063566420801060614128715236746482128426367409561279909495041078542241492154490872120493309102404250279858816139509162250449778256096299429509683969873170689673884507920871172380636148352146055751995639102828386129689120923553844969314427572703302162303024624845775870889089633657986180479422292837524666497281782221996547562783714298705110725899890916729932403945031827444383819659480740669626035515739682407274018036883844793422098992512466255641150415306847217276744979756813337639052118762020484083452259928122857863547635870815585258646914928246637038204195019934634997310803503778303065112490049865404644060661784571009451340380291833565764797105382913928808850667204700534355439481627823525229447389077483293312532591699471189989544594310337686436891622304495284434027937467663643865507451605865705754082387256058735015624777429177259284909119190813200088052120894189349631328031700168373099639493003891053334827897851471487362688310137288360328568995089478838476202694536069232352126443454708380367363116761097453007924107258491201706601031556109005345651233032505986445374202346258676488136759862242832374248047541427239225527138292303215741749579201122620172289592175237839731561953839275844913328137505962934474152546698788691900538864852514141930350782455340795090096047261147384974636372978292319351036849439619000812597010200302009135583543441568149567377329255909415239107390745206455543273785838770471586457849397835667894125317590480700660817874840446866929207071474517095093952840882298853146021678759731214507504409374233874087926548578501606734919821381864948779833579078135245684258617625164715512389404778796971744030466383920210813626076108163876246739025669582006429429541559734221966635201475664499634427385575106005659380395618201927571978739514937494834757418105132119867602557991993190352363310291104423899459613050492035865177096812495989220589111049839991481344598475803372391097624098461794317188836826245892125112292070182575777003851006753706938441587106549374943416969897202984294506013598592335294896389407942008012077054867106790669226765179318325007468904745151500751048380005068560123404958533816060803377583059823433357827575099619772750228790918525652149889839338795820741656400998109882666250202679660706953768629960152324896084426938859693002149698822289460856887578860257029251186133807671786859650027789048869117244518031683139371480322935557914497176918597196864931672676367052587063291423629690243851321397372321063358467066068302602890158363285213308908626889880868086380062415208737018513154216425654449164280902683914455244664933533866805436809474106763314056220240276157172875181824924694501259450883590619821204356686672521915688073503142144492961566121696514073484973789578800757853265661380567008522854885394325927428418733787811759040316207348735499630923691551785194405737187491893185699730698865997046281391443904932383341283248703519998611017810119747405088533290606237309350445814844394343321914322368167834761768544867957965346206931809325356452728780472675174160522804787530193431929875316431394496726317236561494684994044999490148907956128829869396306236863245361646348776966432876533305393252258175605329365933837480872416114322559022884580131326160179223903463528263791161969157255072977283323463099301265555887087104645704354317380991996613731365171689612062461457138896652715773736861522299506532471357824673580288891911147111287569376204444169795083151247289962273695824710928247956663577593934017326033681860085410415559540107414787720865584793779955785206273843546559003181011843217587050615429154359135088307000056524922530134249413292099585256127356930817308362898767855216146168833848980987788578622201565656480230797586053408671756406277784263330355763483054687638143566126551464064488631518459704142996766304963633384085640986252836487970330301959111982654964265677552129799713778575077714267442846367688946935844873296485171846181777638239862173801975172065173030722458667134004519146476041268095415727775047805349229522582974776725868756896931131334533315598892410350000851386722847520142501600575531930873032933646867338845984080584471783022433116784246828329617436800212614573802808363761183823519451146322416517740003518582948158262662239528478700256167750988399792791071866016241659263692313193357371369781391400092273357960165231108059012558231835736395610811788268813664135075968893287396954050038987886057191071062432847538213732043613632527526645446510534778364917465173749521594398705714030567861461190189660413278503109504897755597694773942884465389946835543168117003617307199266469031496586629127770118666763663971295269406956986369035210717500672802023493168908223309301771585176698957877227460493604376037476393535114116937568535208030631620862325133997140056149233965401761893109182056071556341256518600945370015715689579515747878651096717823988984413487145746797016865364827749504199074161392851430865282425081883714726288268721944334458466988503955242903928494960003992948281654215088599747029407967879344297903594827211637809749472376151457569970102915034746492754922463667137400642020163405552901505093717237037444230863190806954104941898973905069987535475078358406951976569819806634005849505534125774341194868053723834056444701863139308833699549027104103849899529620659909755845125251425387949297371501567526847404786501560787709900119681840808361649714656531807577473805770913526073878971808166768141792465520110578218353546213952682021422828251858121756892792351051318846705329476722573160229546547889577734006297896599765684468238300055961549991220673477434964569513309395565190840317570886209141983248646146997478170724105292841487793102422449172240444052459647119511186150794309365145161450343999860756023104333136659084474829709389933124170932831441757330844961683943055965623639073215303454836225488196286762624512184439621427827117952885062014943846930365781829536847256602190132065967309994170509071725402161477729693124822661583147126358081579675843345225062438545627873100964569918431242453471327587634227257787032299942781401274725630304183764595277526808832811314265906794101826172074339899852325827521420838413601090156115876664676937788549152339362279183941171052037114721022151372144054850774374384141716338166794847312242826376753299462454357454771353252000559038420564728408274260897025021653709977854252895932151801211035761459778208750470970057593206966237023337282455353848274408426799296138659845737456031171863729030570589659268039026533184462547169567245617826202985463120521519769200996786299666901243543490313316465656966794644056197126445941190643466217536909542131921364267430146026922257086185341412548570010896870754556747867615706272724170868629601341836526662869832710481075896866280742559818427860812347124559876915371850918256115907496912402804769158410560157836705032419234095385303017739714338481932437159292153989332161262796268151996963155681809366074023758308069332503582597924440356440944326060925389215627786579620765121978372877831878650414926420425574469382452428306931819337199544963606187351756719567236811083334092492455275494446445689377073595755585341666484420557389616243960629648726764321064150917848800917114371764932143415626792380749736467182312126217974959600653356705548336498544661338559131532051509170682834134791715431292635139585082511019170544010195408971754315410204726087149943546455029413666020200887177551349165619051394910918519352996090654790280645174356721003973052819375805348007635350806194841673476242619275550910961270217890585454701407973527851740672121452636376408785975032157480429220946945116567993754010579086879600514696713558472822466645171849212419392793697779834980092068036603259613098385395320660475935170963082803137718985679676188165647170172829955594386577750092246434449023902833711747448120056298241549494736292233715562890968116313572938678759437488716806843127936205258657959796306333661767438508999404074582589594972974713659818312441081414979197024520720364743225511896570937239595420537821100001440207861181589556002638803257508233803012902708135294693170517326574223810910770601878357230357937454531065865500100805993729209024277643490981056204014350741993779874644368376406211843884348332623245769762522228708934972963794545344249221840717646197638049721416813153831528336324396610054590294103435136484528459387045633919784246388713025924221456136047180570897492127532921677409587413473752968658048040491236761494293071657997441727579185755750204152214854181153128868637337883493754140409272529192546841485382030196509617486439337839424108265389456641978632454706874759802124981832364128048027496690676688076848598449993837458553651029283951020084861096746961098018335685714110215575355903289931233125465978473797410147354075313042193587958408951867634272106502542588865660154647940545021242482641689429540718642784564719126933978954317362917150806244393723666143715857892583242675765678877759772545510189400448766367797998859159866562139852629707623718854198536446600307944315017743599059575658574207782524784116822700166395733542807071289111677144371636382230238251103525158532450508535338916572951287470232453136577263704466654050729304164339168500134778642824331326177350753450097670841701385774353365686215987526927544624955207198692398529186277582223736881818366444322626726281231563018515765506423007101723984022741072336147204906420548754303995637839731443168507835340013854897501736659000031431744181866944609777837977523090212635480400577757142174031674106592324199902037037072904378598299427452718941181594484946661472492410018732897677547397950626090271227290303405616547343956789879618642530016904668714231179615275554519879794515228186787684816949255737700884885326440572503968909917967595905372841188094710788411396599225974587805261912308567079135351939270016936311566882862966023118014256004735925768026453345270012641298800371261333539779018126663170326474114352140734241974750869772895720429805994467244384529698663587557871769288943588221957155180564678284321923339186531315861986198295702225672534955981082041393347736992859255573007932157863625721714787472899396638870603573114008912808485086266939966067125980981052650230302570209666746641071294055616202445550262144146365872555659779949388258875098980120682754605579633475156321693649667414385411746473208216347820063335460379102346923306914000447646408338209778213097749741814105137891342469910076659265397332253926123913809951401158553208327548872435237096808715007379005189804003182279292936508403509657825107240699933727894234368665043017251104475317393840577256449547214063342303601598090454235783452058168690911097784835337086104569130311455989577347571004324475934757955697606800312065627489969843535216244480669475779668464013029735012435918197649556728301283003982125362601501807134160116577222205426568456996740083813247787819732955010690854526016414045712880976835343062371078691979579463425445650864223003166884936346621234166800991140893209712211810445499736640146911196538535727065528043004017644500099014873458267867727215781867964400536144335791270743678845675423006401530739087979487609686627855790898365647657993888336648306269569975669110258736291596704918393801555864070891761895454582178616803867297528593395529123352464572633066103998608023101539264136311458910657369830365783932011493535757898467995837704224902665028543553232927705625507575071163727437379347093790384018469212641659264727592150432754041345475971148370137446905988996149025320538911301347813528064777189525909363362094946359735336850138360906872261599478138568964440426175804976295844896434596774276760879944909990334798109351453229456312561620827265562243406837134899679265309848153296666145530768163749651900733479460669856110334516857585966492647816142459835666729921359043356675156945819937222132796255617716527049098710770506892013114703408360140246941822109212314703425556337866252735866747016506673418903456527091981387584005320502831484783039184568915792184452781389924567405454203299806605508730384283536657986746378345133054331408308705440283049367011952130743363926847039819414528724725034932325254567398657356825252686421094844575076769544809537367647516073517542477154166861597815600120180328442797589688597147080063776961365692107977961311733957062489556632384067082033534516401797891627628824811925613478492866272112165851691497883608515207762468817705755875969288208161874960834418126809761952496608952729250177643904761770944829174645329707758629282071636700235977509669312258407811788146725116356571087966344475913030086069102197006992943767649787362945086404965783189123741275556469327464618055811204807403732285061519917967085114153950149119708947225173835125387861419713791676697006828550933351202295242926646481370316019897505506988567247889344213402946362754791432741293868917775488633307512621092722208908876076293061644486705713069567775290588561178145097743444306433178134515847102664537986495789313342365163643140551832487929839713021372664461513122330020542586540934133364790547122307191671153229072510148502115770694917044396679377426289610834952987785044313448665625172521712548170323367299966018520032053569941110666855571728210830673523483816931966233295189097457393221502728001408931401572677915718392799369208139047679145141594195343887916602078793226944543802773658230238716347976056037330656246192930264921321987296873587249256580770321017025448900686458235781037894545894296842938069971619263904258706928287625301861117269348236658938920330823193868826201350348007515052696419619796293096102684296262769412363701294968711016368522786681150702350953783927680968780948163346359840337712529293179033713842578811342347085844627829598091704754335875468017816956524560898222007114493722101390835076850270254873712147081248346182085183897541814080169203717904329304964394114101535969289110628378850140280928781080296081515982015766310377435479113286661135021040999459173099210687591513498511823078359943930728181765554243613950794441667508228603425718080842161145398873346954199638689140654948427669471979512809442635428781047507980453785818549314026168685479240377337405557189633324136819914473899861955029603716967952318398782561545909905808881077592277697189499206899350392650255263168157363918964597329129738850030653816475372807036743483192761339846180970658848364257671261710774871421391081052171391568207414615865850542660686416881652056785809660408430107867036332829887657156114803284390451180839925242979871899019666296984208838332881550369211384215554773410376912025808253534055587674795045421975112782821666132240337959882971957254034339859992909738505059118802648359772372276897576886773043124485116186468742341850236908688029154217167211820759557565460763070784177013370418984185185600405205497667636425853699088549758289285223320864800467013523061885360422664008880536955280712753005990440173474926315343227160292180136045961487636281385446478353134217153444573953789489165848740433134029393429947971240356483213271447375964169026269495857282200394584438654920928048475600917436948437997789641358073667450826545127107038710307658539349239235527816307410795513619728327985151102209895782750307010081554495027495270127115373886628622465504068725160808699711035347843680700079259202826939557725374157264422835865848455459888295645992125237135103860588574869633261120906849329127961910664113290603836945546411066893715897350761560655668934592652905421583113967277474300317959481366505006773126241612751666607600442049315468546885450056700991196372700166885896532174025939022279263090869836859180431695412842066806728334513776689688751240803107571735206817376572557643156979572454803302715484059078208472072172943899464880545274750301869184522202098450412820000805369429028071924119592523835894612037050332633815826827427010925729666580396626263040486031718794258598776610787210077954135843726171249647414903127337221106138471098214308223516199978039522433930697880784610803924565439463049156691688745115252868811936708924625177939663713871596291172686341022283513066931628511655097004470277450848590198603436624209647064819906031663232027541752968215258950582119963684463118526164545568993315187822021909870761769351578245880862308453255436662507964902727937901474164453496754747314174028127567616395637101557274559901119041041605421219669646482990967635157422786464535141498387921916552262123671079833675185509533900874868598545656251653108271196853876867372189118712733863094709223531616266462792691711394323268192096960315816148197299095010638323354942643498730782031106847332580480776362214719866761239957896565506014045054417431051818075652080980333015083690478665991650761862556857709281239800734087969915907100927572286943320007947833600030107647892366699978856811130272387648068503459385274377521313637586331688684717876900548043847950859630111168233450296211118891611177829439012230615187338328861006149798929788963020104681177215235292743607293377350384065248027329765186274630099468121256962227601680838919504143682312819541620550889373645868083798230235809044054305523203423580252859955665469112677138730949416005527962471537912171980876309594124631445532930263031492274718853213073574627672703265539430855764632356989863018575416206160547391123332146345809791836306664620820242757055096148157928854088322900335323039610705027931828895266669888383790397695750151167446736847133069099172652091664386601650884507634455509935121576317363837763838467114152483692373008942036471643836611533199339023404474879015722966781375586396355795439876295810007468193808792625181695380443627333754370611623384426143063984615473645151960930993000921513240308353741288304497144193416663782153246846979694970602806234788251241825166825086550722071779688910281848744947728264351390945514017772306632259008502139771310496151164871182614043345573991363493880574208295969124925176433615248815469349426890785077904510974475202456586503463709929988339726140827360145152225440563080320794599171533917634228721704508782947941903433196910170235702187103834797179329549911579209233951532046947829472092069369015440684823058091748891138588648750074913121887076327169097770808352525794443544860177519153659705352306273459680502323572189855890534103956008953409875101814433746418553384581625570887649585551692335473020591023363243800545858628950618275250090453396070312705001945697556453840817866711603343966198724439648376897736715977000316303561701880699574036836281313436271936028194019248747035496021853642404370220211173311773741212332155467824782659983985412630909775495967893050333849847549594778750530747856642135528386987760620556138357930569596625426592867663816492052393044572573202814970880209585343857313543375700865157569710303182256968758955964876655056374061495037102238944540260963348063103466141727517442944918033191363869398499479944463530329226213397949916743348113970740175193916572041459036396280738616782949506244706646916407971376497424180254101260843865665248707490796803902523927926870218388352414760201875854017380450526896116961239271416057551067835517247795732721317538110710811232335535518334830870099478587670762565515728298704797935126463360782681301388935003395148754148390081196620977589409565463717177183511502608625137595132777777878034658948673434167450479207186583649836778628633799282210782273921304374314426977883458339042217305232010265633835971096907302541357464095640310257198614250156801145651217558930019184913695579147120181076017869433528402159923633716533321796028999986011722478700623380876627145143824713422375065511579166447926583914620962217796582987402621797213142141852522608354408189861464290186837040192570452124680743826717762055128041084534057356372429359654202180977165135450227402412530500191281299964396962960621965774033513137368727502509638622125094024687800292764612738216512340113195020711194042562517222397504111346241733431905419855739297851245561893044333240530216695695533047509161301064189421230233227072176277772520446109805961998375832654981715425264593272882858087933062026398757408009605599795009637899478045242332656787770890206409099838168496184063625316344942388095777851271439978605742453138198540914735881748690588468858624297822879582938381718635363881456054604962260060265411853602827208122310767786283776519047919929582176697775170486489701736799203715711378751223738572267063256097941047633967635487895221940944855950439297004478753725095657037895582431281024104114942769449183568588151152703784534899688921345666365420983682316862693010128528987705160063522988142110378430432361003487751315481703786483615691050753017407171768815610264857450834627952786292012634638142455934040045683397818678881246059028897407271997710288108307361680526384068257322783841115710235868289469780061542295912149915000226493328169883299350920351369414925879500840630730179405911908658112829528756341864705634402677290896215934982948725063667390161968715209328654633758172062091466986505105219992455694417758411598768551138643874498878955067457837252205225040890018587082090874736907202926644524118276983341232943551387133085774805372026595861353451152735985099829499277833266897867089888507848314712249096379564394589567746188432603874583478716704857309677027326590082420988405776670610962894114682586195751002903987068949595208903746442444139716781376012146566765354499370037896873629472128268447183444477016589437252667821268231496966063348510338558561486104474323172024638426374131736341896093499073144171300464165913407349738536008434440822021319579467135132295978726686122349738442628827140550521495796306500689135196314072746449753020991970485415421538297843539935763418210649023321592222107038069334614347647376244846340264155243763095512307241433844674238383103198670346674892297986047566038092546426995534948209021128511210614464196709576943623265103461367259057383782647493783688530137370099762520522616257550856087862624630586183413884996822113842990363897295809072425679859918508991326587387738271675466911574216218900847013621578611750721390702009850512439360594237531199462767869131057653224042328574789457846914277146723207457297006294721895666320223903543814624178745186135609378765081255023923800244583136512595829460753104319869716560904429826329663925486139172368452283523989002869427550319594790849517256563009797121211813792311242976583218736489865596208379035580601202624669661919994372557564683940274623007128842207174694131669564878667185565200283750745022738291289920787816737996595121749370368409020417180929779269033007726309294685436202527829207307423037215547247145023083922625638962472394195342634981584145624215661799358532837338503723436807851977408068181400696771003039829132568656689782531944123170290157277657420244440419362164003881858421736930709734426112364529093401222236544554803262505280885461213975554725591887606025630614794087082024620063931680692942541818356174308647947381817964635366290585381412092928795588498710211969237418332156696677652757745753882524418768958471642667809995569005221086708571304411399293814419458961405570022805562780038334358767674339942462177024811365442331318730696170107586694498861634805299609149274587913473835774644306159243082242889459058135774497747252281332527867412341111594940471344856716133267993122450722688402514043006145062369330534811914988113300890036047706490300894041085095241339208388691650997433564693550725478555668412513552258039038050638800382422367345341525099385478009681460070557925262811760929976106593954356644497220790183496137698143093031798300569061273532095450221955237107145074318283882924756157935891620181752458619499401051412362074983035891573036787990775227985634027244335877232131258647811594020310977782401594777968494782303736386277126573112597556730963761531316896408782267805303961410990744206078084843503029129371367669628970623762039566169504429562339654312030610974078060966908016981115631218251308686596017021420462845150734297827873872079073610326207290998559828775545749058953345149136969633179489548148539339024173760600797687907230346313234992189156657448983960776030133317744415916387135119235431159201375635028527272853926934325352749983524363746301068314330797180893888189657295192740663625511279564304503489126793330569713214723267298017345768761632763167176786500466416977946911994327628501710365084486956188132029528854983636742546409325041573145872602717548624468475423354992559233232562676051237270377145687354683502672283335177291225822203300528255700341169050208687056845739971679927978446309289706248154153943719161503279135341421569344472994091946021007953885887681284275776140434615256738406836245661485693525352215110031038339238286889458269696116032526409819765005964046547242932127091617917739238355743673277178675181829989401443573213225058917349934270540006836022717536579275344336302939537910416475491194834946048666667764999919444730449304585957715203305743435595068326023945671747723476624556936552173502503493671536502763119355669467067064438275345004840633302425246759689854428655670853842772315191901094594711129257413306911942038309362260985420957611387823664105112235883938180593975170146109752701583007559283443291920677041184554053597258020547483520019899449637938189054695203925187887563844479473892716915540824017657405399552157949842465252005497509930756395537441154118710851041719908456855064915904965125332340217212053062673292991128596545574199081838890061597467223210760482857893897510946319201373287181126815634683048974365062223905560776211582224413188076744421518975728485242964249897136946014272892654015064958125915739440641003583989276475506074900097559064994007799202401908132050872125436520541088694247366950647056607126964437429772993204186844752869323196705717718598896971780373606196367101861392496658762307722645438308272806343156437340402960778822982373646619940274025314388044476490521486258053138847686128781751005205233022615231621734976955292830811451034764982065645104743103087470380396611048504602263415979647360803975134936171606678623915596336504853569726463000758529901125242026753416481704181435071350345950804037043474820167413717958322533171022072584006252591200903065653190086067957215526395035279400955101491162946307212284970898109618912448662599175351910302322223360443982459377556181320008530297437003438777946304535396015376378726618530127082295237867494936200478931319736415698061712091642705827515726430804120881544759382402643859398574600916329839198060612342834631208952681514230267701843519613019329237174359028057949055519920405781790187936582828601509573993333662654357377303710771527638278951440350459088960997765921712566018475205622698794592657058509508145005650935818677890470629149640680893765584868861540978561009221744622203565941958032944199245065601006703198658402805918971467414390492940645791074853761990248508671477864035331940420095019233274139420906763090031562193784146098792997385011562410017164231475211654023756908708859804086856081352949065883782425352082910703498902049605868101402599076430152900131047614779536295824787305417506023370835041964063593203130528999122538283968923828627802686229669583240783947195642965828101850531348298739915288145823849169201394315340801748862126383211034659569019346194393884396582907669226443973958799283994676217271765825018673808318742123129324159325410213905838666050517397022243473992411656188494603333347703261277994913701924054362819039817740591118907385637599839867380409991808398238941496996187056739401360164642112522487488865378406742158279096553264550427855611191500662407925915891122749447107062058300153012971984447389674028486946979554488742868183613781633207384488115020544931915617482179522780602597909665531149550322933534187706744772032905624643611690946956740409509447955055210923708893196384012275892415612687848449469228354726027105048755132158098298480732793360461582425078009970497397885396691051252847893875536452020656565320220397610422646856942674644182991298649641912869232324502989907008143207503697274994029610901248207601175196733415570810138659897447759044833085742750623414981231927195949228444925223215715690488622873206219935210942773158233806785246501635039151275456546176884831715566534398962131460215310244411079574824571828120717404252622006882317548187951718659160644146504723873740283550707338095278800114151860169210570665814811150527567816477159608392557175937750518955527410039744408345871577053428169146708997896593685523965233564079254654194165070613454111383740570243335930562967646153431972095236699410029884949569656931018333432107028039064372093196394468393597299068554268238181660979766885583178010136389067909166461462360631285845874248552942171168985134389963304078910193182053414524850007101336464846229375806750582962650838227441778860555096685362862005795574391852557430900484149533732132527460949743738743948311866086755873762977418890101852334656786718409176278252945970591898609132730610617144561141962594001850631158844714355333565736493219550286909538182010699843297240500579889900547367389402150736242535361616318091748098025209495086138705879647296004055640274899055437073791364943439147121425281036406028365370077639292046169277231410854826794667789740617031733688450735752579490647349054628477764417856900574868993965610362677442545781002148361697737537975528273687834125837458544582446641291866507665368665983967354092270674930739486549985972126565682993701881873283144033310623411364558192790893703960308626363436583111489498226434166054063937230686171636824368532832064969526482736375098479947468936949065897207254059331494903074095298551430409638051089538479362029375952475730324225485613264421487320861967452459597121117820688228181068903837976703630180956445084959421936046558544093879666492948200110034151178851630567338489835185507358320628289388298048612267292198140760332260266563147894774654998446816139306264246758332525277001532929521234916419216619894971967331451377956771223843209949548697902075311286379739242057576587267306362239388622983142806699284087982229827814753504078426399347770433085041287985861142367760182724437055890820646274451560551758946955179772938739353273887474812610628118918166908002797638563481012787115219198207849023437697217634091421284605717448555596475624872008902752690558799403132499676823132650615002002165281097851084651950134982386779079482990149796839026705607306370849470015747340439006489114273764151525561631838464476222998107355401401822555417154322154704030619685241788210481453508115677143406005230325478926510770917359820529537699037977542918148982230011635639555324665014563055259177677266673101648088541074744322531645783357600617212156952207908766609086918994765938710629832666585726216753891307119277056942992160320999944620455584342955781938070775484695701181936863926463460299042658052317027310960526763819015817308113459890413412413762346706135258405926523319416833177228544224582780860314499958909781167149808906268193675366431815150937094936689544572762074524095311707842847979783108263433535476650523150949474242092988117458640411567766861121583757239040297565113976812218306436183032773982177876669284467954091605924086263139422301545152069521124072110706083928346627374243625643971853578479310957278223248278625474313102075726655220986688595288812336251493862072503279795509100072312168498580516046459041613551747787270728462309568299858500473808081242891812856133695177979756392007907135583434849753898954331946259213611706052983302605186016956174061672074293644922956546137276293072899916793223662225689831524040339073965941072155691701240010478205578779241378016563774586142458661668045722264360175810510213079919503857614726253725422091416471782586668931821956446111117612104541042629631788068903980191296408182487832649393088103389843382578703440702407580332777380098783506334096651784776318553432071074758880307604420672359366318972307427507635803252734444842205244809087033472867078978128878942472026503513492474095127600347455985505345246199738215014378695391841791116018487146548872774834142065790585698251372395782115896387016608981449819581744278006908145304849075326004602352355017672037874139990271703542597293795381803073039794394766583500403734984102382833334711290108933307023046880943452515378542789143379375779961890600735561290233949020271179138297029922018383046030929319014623004771909652187022315665691000393312005715970823016557765490478588993333835271636032840522870860012335724715914971877997740640325046448960646600445631478469785931599555196558181377835558568647145069292335564701501337141452515308821133109761293051001149921381196399038186068824373695142627720230986574333222709861288889380334087845185761293318920242141258876272205391952836971882921675766237924450115842020299883815709876357136118856642259662127778082170509443008263903938938267569565270254246311539323120714299627455722463599165383415930750900092819996609175224399656779003091617956266973827407243639213587112248447972252891587170520924691175961148662666633398500428119491630590755866847428328988987386214072744757176435277390123208361895508729415872762908501973375556241037744034280879982684894608531689008170274625417293547046612527775288757856285188818946383960459271789641223989106182037318695519962081098980126212943088933258444634392036912483911144691330411194288666308457675810884538857580911604365149544238706932510963587977373326687017079668818772201037556032379245132152880968773444793804978565348969756191482598677196337945426707045843422588771850641015044153910662066034510525797858922151674327996118914806486992620003233618148346626758295775987140537269511484362334464302140901811628542332931258643758507502045447436318517601438945864910824138203741952578341619377903459280026700195561701787883289141140316541268060501224059855117537633676379102151871253532168059571360576920804683148361791986966717075020667043335411663325853133287172950584570887532081713705160175676855750578783980776436711916062481059098290847322354611896234628750968629024843898202404080337929551079685150101009596112077763094218270347381405186858943754984868082770006232653268528365946336529663333415420660382346684980253201508370030004096197655032881327781243003125670712742180318106480348825305042841725672820276191023632639663326847285972862022711566627028097176524652953337016434943109472877109174915734446573506364615117542001003587850258543010917780585148537591411106502686275900883815430639850936311897769957285386987667019881622889245800917361273019383726435501527166644697822202141788287455057461626572991819316805700743578477343249624020509804522430354243172281328675323565432720931506779905887421223159207520397927582942042880162941454307381143036883777172756886242080126755527275770929218091355156827141694280652524171938782628149706952390312446011498364270200081211942469775065308155807202491842120836830028245805411202415836013971730106100931043330272523310602798853230942416165868323264734476876120366248257190781255102336621614387479125610122334410960152281438285824582024316320863161047499056435219560282771946232139122963550869975893742015015950750024842906529399094128941738589881903254191563073285414207779340756029307173947700535802674788120374957487572854814889142376344355784961325426676655237088409090414485832628651813544144326942640830538549683263233570719593299697927517513790996763238691878857073975719433954980256379478816246251790476002094685822950728296645109126891274428728484515753188901032701437619690225023444029276529856828920332171373430352136920147869923374741523958412714733589679083517398158252688029301718940620758715699257591300152431156451361664846817006180955479119717073148447913573837058167627902456305402010165307456718136413249527579798442659784954673986845709739090294919210217195816028071226558724149802259338104041677303451997842360393511194848253811719964038982467171831977215525432980135135143658935885102792745201286856436973615387242325097497787339107514592152497791238883054160360869521150145849707631011377959840492694027688133080226670678410668558613335329966621947363765197423119844368200288197818016925957522105456104400848823265629546538140669805058295200664808100000274799176165915881829764960274801689188883966190952197667200078021473290231854419433467135818854301537674653195758421556617648836932922237689854483403115448214693513568508941016337828433666871634055620472633116001928717950593726005845565129144902573115760472102402884585395381421633800798083863873432098396032874349414350522095223353184536213188466252839048859398003947768474112927999755464365402435523820735828213664376935845534504175571253383321590909534562065757872624237316075739988984904884377636009895947066172881457944436027625436603186689375102976691924410656940364336925219744435102550064150283140394974127201982569503189314398619208749527524577730292197630718925220549693451505802501484090438043806769802901247377455093868223321857975834115785587582478110211935263439097252000443663330323838567583825782178934431839559942192361424524388123346299448792642571227449162620671695151080420606447576087368423774125815397254810922688185907951092832166924372083674318464800259732560510779118859929204674565938745202402757826727878134239285665889217102265994442916699795879366409615818258555722100485822670884192503817486563569541200020793433134563138519170707176205996181029927999916861408568653851407434740798719627932763078875248055444012722468750883733715200473920138600589139664383600921159276117921792923381971117209053052727568351008041777146880226079646126025601327490127590992271863212051845608778205313729764865224371662969724392645275500191649747706640617806791244363121621972493579258652431458942965155333980301616991392884938301042807920722614006727442551064457318385129687550590146766062110184877407717706769796000929283452337643195815852123528960006178260756430719059029257104344010887030849181402805093183884429484189818965835538661354887852901521636685093188879359354497350029980549892517871499042222868492207314280789129466100298885509688346844084858593836630723145619166088430074923466714784311432166119078291760443281533420982101167566227735241016541832221022348087824333695589625064061102695471151813542399173348362928041222061062782478390188619299749912136163144190766938648106175467411601624282064507287782243097930717039615502613780548333757734887266979598711510966801125545026659869155439391108211991935168116437634448798482624914884141289114075251780547390216150420095308461545739254692142394943498236258747578067627031063914468073295468114016249704415448222312067180728401635778298107891096713539336071836283878422560082201009150694085627683502032329806355267130174521406653281596803939546050853793448091326330627925602646639579357646490733430630333071714084185622611491293589175391587021796153668570659278660598957834763157358882063206289196936700040439267572472224552927403187936160614080340769557015102799743754551733774830093424235348208486982274415538550199072032657755894658225665405305458242897422532888810611858468392970753850743465005752620729547688464880647741043225445851830911446111571465338846887040550600706725903673430481421319312226196047664780658645937759716440593991634760593097441453084343442025829598180500377167302072904330675218425721359316304738903867245862157277938591451744817100008464576837126579685960134860023116191417463342594285002484963707494758763903975894574185950329936817672731813965720662034736358970982370406668379964614457465300876917870034485733322534220389235574355707285830088925663983044705474156860864549519599765789321158409844255140949969857339646734193931634136002270905793054394011679103206562200035915380395021200063330614153303060208143743449687340078475992772788461907287066269865946691801282531372316084629418245774625227382030376836876047473428576618851478626706149179572311008992401316143773236179283493591502665596691118407276260629380805818937040220214411402062761656988461918660485812628727048385901620573791828741074459516539735372552248643412380895914726470093839170902375322688084252480608218410974499111139395890979282861953159059299187069948359147992255034237081746296241295224633354086061314800436588631704537027912853948492484870080938403509597489984863538881239008525622871608073764057151056946829097835800079761319674503131222938146583055043972305026180159599364013914958466182459631838268657056939766453726378939950392673582698970239845382923790798704846575166191431012003137032076347982579060779553247982503614375432794177258760022714733961995060981941740705151562655212861263348693468096274444683376657386937082472014644195299896398880197653657066295225852464751031826879308579350719639459053462728290897547921202792382622084788979176890043789574641439257995795020392122636441583620555310454754402471636618027156511752709872397260937206940048243084581305796204359494150568096949024720581758047836241075427150741232425965598939903294624473158146437633766018547484461912629634178289145314247065673837689317393963958160814018603551903022069909966744957017253435075413689612047158210978201097882778920641529160101727528744879455584596516301371207162607518159291345730852691203842926083318747526162182788221135930243184316807807494161279633968226723514266303657537770658940922447156431531195795617031579300931297757009604662200404494526092191838367191300908673964279614066964144898406137811176162995884491960898705096816159951517551665217707432281411799420996714788629900930943313206979691466020860373230528287739136757676488527862856329873381319607835754703179988459280274418727231970547098066077080649469164086352051264230747420637895032935546368010489586567884759805152020213318735225970368752928591271533489119675414949730910598080505186257428480584369284066552462551700198797223499151578218881245198577302440048863465742570958045158633302028189430720068841766110035105436411759887862653655788128458670295200977378111832283250171418791481731636540849055635544398149809182312879636168826380964562218616212086803806130271929906249716373231496293871151137396173278153523540487778150119900725269524398493678564564074469749550174966124618742216484277846843022823189835120525947131927944645084611865865455771717726133592881590390692289511039008462742119162244537591519464469010847995004083506891321667554241665183033555231943037170679920021654774811571845100101560901593737322948831904535963606554149282232443113289938935277524007741431707756876582932930674097248185081772303896547539641426286425309192559952560382117953241121496427116401944777710682069236138840113881538280643036428709629681127245861039622812609166800621414336226637182486521586010373609984942281288563154916382360258580436314271700205159222729047577454855344285101165047650054588649634770531593367612202461117007272659182536473983272544342076066845311780955965187815159413478788213498731845853907558699290393112785288795190264925414925648189886715206066528243431577012660386043384119389581137100445309557676460900136408638819489896291118301470251154145486515434526055165802618973664770272995888009138670777231645848361766849010041728410232559988943185007682165996188930391288513412376292834416894074856966694942439437375901969901441294405472649425513369491598297646278427605427079471139442547402011594303172203329635154028981730841001671564934149989442299820674381624575320169690073656112050572779690847879195650124231442105583148004727102870773439150296926795294928510697263032073504621583111133514418251360517544979718644788244854064302978287891256801270108946979421522418809745594843567077270217373395501969677271121483413947757541537727443313656557828468389411916788977677235778589919015643304161379290040548213402200646998418588136696656159898110138491874174211730056002245999360122563035649245451483903156402610123870557164445251439961839402268419721115026116601350348108306478754092944169304583478415573819282480282096798950629352369139749144576495293396494470719287017615092537825629827622818215787146916277121914889095986294582385991319155362983060177581501491201258126040719205188027492647959736204848443648990111815321614896628059943042458463380965960133808883683172035155295360620104756842807569148688094537543924265223783237550734026647474963168033544803708163640049997668733379912159013198352077100560412278834977311918181935402703781329403356761805280958773311386939696823450656942034897799347751555789093641661050513657768552959906502020402575497119387510655723879483988082756512166643209392719818768160388544041588264098957804375523927650748582878730652666321821590284408724500360293860574653857688586263399028901195526887300489646992516841983760640244047052286016704456489902394761448550343871747828793404973301508946001108666877450126280838665558028882587977768307391740726495175311566608431250129643757918116189693649793162716875750254003794365752066259908212970511951378967821287593708479603443415595355780150409913750551653616749616813279208214892430058527501643912683331853363527318421533929777953231858084695746110201509771087194307673434586424941149268548462173209543913394883571504353380213372071860846221439757810487409357495311612168169114697702045188646094194693709322518318476133971889356904551513363527301693154655232274058335291889188451466256031348906295937436401042221214638487897724407207075529707813015699081951111970535622127207345030207344057575847223120778843755894417969952198380703968952912195010987646339656924208923172244964882598986659171764909534491618228458339020594741063982400354131160767551324705485227736402859136678792343442293884569088748368051972146122427672477978806154831019049388927387133430598584626865489667797268483898095739853803380405258212905508515946717911857721077168510279042595043805397399705768712564034935424187521886886375432300769400364441985679165743009711449356113500410824233573919659588623094973597562698666872994680024783544002029404624256177781349244499322712043029955484101485688831934234498907828021105737005857912639653915462820043239952942005966946216551280327228899763788883008369386348826382478493915789040526886500442290147850009183951573477517046381728584803351550599138546830890742473966741471513202045486057237382232299505051283123515270978503377787636932423778589367768123815900373484308926930820342710625129407963297363020145454853879122450997756101990042567069536886154816994952560512203313702442478482273313808417910837483140786905981487179414901357578316766455280559899496186526204732951564148335594905704408749083460878363243006191603557846255957563750827443422946480115082143276274100314248512283384690922250349536456508416782556999657283849045976240985043318934499455673772974282169617080811865018792502063281383657025656577861239335854126380917787105455603333307829199318878716133154156333393837883250403534990486362307091045706071998365366070384930075846546069383258156400236261910950334355963815892851069353961416750397791631962887640924392350317043326355481390280317691825738972677181039819527499606160256706002385622745764841200135989937252698927132551581266300248985135520600830994318108682816120196443894621605000743332535757455830281232854482341647918208374377858801189862054385226891103823462271182324820577528974151904126633211097620920373077351826894083029389949245405794882903586754070938472649735347503690976818635153646820138525614431433772454717648363130884730940202605878188084500401267037569435067472713906553078657066401883508648806252732544782528876561539815744044844106851416551080558019976510448009445347144217331135711651341964908940692355882429926308377169644009203541368543792808442014296950446176475259039988634534442469692519541270730070514499024976765634886804396685196391413997448756843434713683467684405191628302400411300444463543904105050551088502982716308576980991021240051192505245400533996852921477011645488697170458489815728942231323809045241271828309703146439947409610886060046468371658600727223580545693680462057453364477309743017012414680899795738684692728722362225906862633988353336202752206881499261206230065171278595346629455825946643772481626755372924200317982948639187210247564879853694005010496321607465292483677332274960807481149738998687140053068222538494191393630921407141704855748365963430378812848854939160982790730873475635159596348281665217783384259229703425853805669542764097304355298687060744787872539281483330988156299723255475842831332758625248097830126012737001149034560385808919063218019116598721737140369508389707305340294512094886159650544965984421340624917514318356409115089633030283963762945950436585599055406093491662775253710451684972573907007860385172598087466126585219420374885633034172504785540747839255470609869088463825233691038797254371366095294157312398192362812887167762964489274223165219557826616988560411913157502421058963757077942821681208456422491701054120395295712019520432157791271396473233747777719456885372502684513340865836242007219687965664574076234638818148368921833672304218622584740038823812939390664632165032737160770254712319058523233683300830087237149479584905112647754425135077202372067383207596302024726599851674265867704984275186263330877202041193178483182843218944703593421447955038703314134961308516288358370774328105264887282623491349366183478658550890030403680486351367730627900771743202408773956682155638316901009295402760640247407143919873291404364716138355183364531611971812696053368907340160383894489947337206890849406330678630169662635109835730718374986758847071614187686761742427722035325802680748804962595606482846193352473924234332022145900674684294637746953789557155535727188908328459320742691328591922918498602298128228028115612506591409522576389420541056942275863826575850024073441710323931649089062142304531901676923498734372066630902328630501642446431676433284911713718114932694543960593323236131622385884998846161863204281384142510108606973349047120705036650493108820414989967897875151838940715297161401741799773133267639300110064042089122096239191722762752013897492643485442928511327076315782572381533959098845030269609931799751229081525018556334822563057510778816596540741782926930883698782736973861244356304168635284869296071074871476557114583219270398138425771545910479815917827862702323618915182636431595516585808281895988476271372308478868844583044906274136863311911644098763795149989775989375443757016246999623266938093059719834472549386704823166311704930646185865356815350082083315829192616699671782904449236786458910472710395871626222820458447090766359143206178734537369363744758577192660702771358904655464170081321494893823980285353504360524764650369917514437692733029107702038119930436739125467823655710341994716475026024131244246638254617466891900242715516919038903025106413824368904213440251020773287667022933819651048435127241791559241957845618771560920445488491050758815910601166368800882612300403195097531657683031729664453815524564913476251641708654635397902866902872426203401862728424415622370157969525759976837116994300717583190462558952619754723448917973502767828477895006432768456340725827871590112454299038108184160772608091415325011468035573299776480186707924417492553911142493358393571719041323953522609738879664752446563801369351624800716561413275598959843636922631221888097705020945230334277638357174317887635885628057446164478971966093039574978994060206752716509263759592436996899739414380525530596633081939853313524931349570132157001163845139436095065876315771267925154841389166530026851786711781087659482674505262450862688866871637163239595183077516535696612798770339000581679194937306140305916361287816130900703207001506998929885439135118487239848897454719542367260077731186765583849585286484083870334782721531721437981515141281137389818943328496871326160437131785529406551597921843780683730735917615097250058601668815280729440411586941217391470179541117981008240359165857081912230615129171317187548576047075808892442210983104739848694440698553203252484122667077920325785952767927224430733053944910454612364113108325554894698929129201613877520085602796940708765040781309293345142970580170132134658310200357434897075366624514544509941012798691496751324903210958632697196631605449975802314459775784032010244743899259048302940761305779613662315563921437399925057232424877196276676394317978231467957658471921599365963487548545882900208591916437154187376875527090396317511549131898868248135422938927022043836507579898503521589421847131593164849035748387296131971482902137067805376975392977642476863224592043091472684156244840521672748492943799143765367706308232193622928138183236782600786776858618763207204749379536315132516278268903612880697303455181715018013034663854566908433427253567452976661317863687271235456031364870778019991012213857103620942961611296823591721942999833622754508572828855329885474248031898060380400777750812024489497267722049837964756397874382880258290868852974660688578989900148247029708075560299505974825476126442445575439596449777748652327206714123088803895183825974602853387968132310226978468356193973934814034637959085189798409609840842971576296868567341017461204717521936918988385916059841205138593889316245990582697945835305887135834690356723062184042162292585152206116143542246258066159609444711466726431253598564251314976837580695657443027810831326179441740153671107898367742446773346858662144057072061236366007795337341804924072033375189369759924454815233318152147794793006419085545097514356768788706792256466475465507633818626209135560289182091446264389668633936893106357362701472698387527871760967633411796962502774055257795317023036570433731163265550103550067346594659421805123494820278628604458768705434374129521332906145651122170260002160708227294371215109422329295114982527803203253132621600457375800733907612056954988251696499242791988562689007817524899128601185869033480749183283753314165124616725633584467788869461997813990993178098045388438334724474114961861517576765342553521242044331430647875862613340658587467309015548095684914827268432827076411984453689371891505992504656749621929372552986031369750722050323039917031521458919237666201652995984040821607477163414541282040439443412111638873066768780046199538425591503213774001646715986741673354987175060966491853506603164827095929030531816139946141278862632071506014736559629610724751984856233653138534230246270339177298191976952023072846229656172102179860290722377613107599265264301359757063322196001446885727850878490469149614240366511000479980511377212568398249959228566357102246080299368735534300865103971755542403644172399081324272884914019389454933749027848122381626805321140800527176450303226835292776067947536715349859442275776456099504339327600601996020557991051086166894282917641206659604273476846207162615599985641894676614856337763075867827871222065812375598822739079663549155648932961962216240273109868306440460130736870135268724984602017991040588105122557575325675835644923695774893009804590657656014862801704455949596765103866934203981718796455707755943650196181785756137098272816392824757519752485540495058748607742652468574185354368671527461945329596524857078007404968218503301699375528879665924732238745507482941126681351328623238886926592954495708179084581299720874232021425308401766532403570880999297727831877261932905014531423679642707311961550366487302953435923825989809248845121589329191513134052860826347989701846837556771947545012062070280019158046794009552166357576918608779778258836786787659311781154368374817070406841966547629329895939147709941826748698695564260255503958298863456287026034818809086216607553686609613999043587578259532495415690149035651160173859855813663592420471817923888356826816809851261940237909717254909975548201078321109153091035642782422775837213851484776558335693919802561786600503529612356929939535790951145371769719777152017064708050249430095937538157165153183136395406454462999939929474858010357553374699487403253701709399069340450181850213201034387534557057110162977860604289089987147738230052162217090240433347642213417588351784668906627615404017938027404366400091737895272407665604667791782040812430557015174831969489027849396458824301566203768244066044029919534552302084909197393636590252590415442198785227803028450199231094775395608657860107452930156086214935587343125411281772903868009206439616176714849017261901391932657294570957717448526977496658963838611640065126233177384603832640018765813913258249024110732437396136788665671301798397675216556737150488329867293759290598212024107363657030001905576264201892060534847190316171743398506121823131593502160554710635028580859306392233060988597145745331812823871004747418855070150197144736515214161105332482645043708245332360595729941345583321708861879374994821046342799779845172971880664616936467230122649824187574709233820759812726960673914663450403373510375769906035973105892856060361649983932581457417378956100856779725575113425843774524623705365437446804656706834769347536272794425034246454787113230135668183077738282369306758121411275784425549513951538132114019685513462177570077349280101009048975757234396173606256527366649480940757447850091655543666461310695920904178647401850137422435760724258902799573899343279296886395867985961493491915805778807715059406619741120556503553326816420641765376193604609387346012013419541276783221471543950934939048748465411168365249839537136252048128448801607865567394289220633854769386873183624286303601684976240756474022584567397027084850856390801837806346288793641988641222557414016478737478658269556142159004914496326194794296111993512553147307545932250352169626631687292896508198130225844813082085412857869153695151842461317532930378503608894648014007204315805240824802091386848355212635791421769017852491572197524436505562988446433690806347021931677503161495937198537899784936801791342981279548313126563778391228415824614813279534718032807546800549165598618698683848097276211052840443796170269128942040198349320793426235086377980014965669617981767886200808383292230589356512013234801028603332688380099113156969768726636902796527409718231152667307120974096587580362886524287957513556930046522804601993951038591997024096239161002527070183121452142455647842653320791298766757340122934868162636071890936431107664301744335021219526284469312548719385410227942552542672032002879189931979391662394918786492688150678542108702968509067296885037365986935797139352147989558901175451878384440661780286430102489312537612897879247783303292669838077533475818372691169898264286319031434615614063381614393400531400539106349150081161724216348790341311889086302609219815858090214432610651181200271864415680507928294337640775741936296973377630521223402687043716270027288157550263036280409034638778996868752973750607045751403864226966162907386676293447930618715794204923587835140536444631046249142858635151911762910587819963875291063114516163691196397941140535426248167293459567616720361035467053336729336690024661055361118184798944501766893102252306059224504034882879993418911857929085003501902387821437397429741283274927326875433023049596269629438299955062458333579147154807932811553806465524487170741466474169215421178614125602562377150475902046330548797414007996388792724725646139634362404802879681442546949856663518377649115897873987874384119562685909389349500618422634877934329199854376657141627422684177566530315159828022090227402740993326536801776843390083317930599030790777976702768236954768417259028760933375365220191404727664622924439951245712498121858976408381779641462410122106968916106798163478456522070855822557323942994714253314688131923576424463753120606394671951244572229377738913019137372235356127894547967382357576276761817897455611926738063122465061748913778794671873655623712132985831792273210956300934862654878690448176606630559003181904548280537279346424452210273751862150810970809878494385818802706501432931358719044011487797881875563058020716729237074325066762451110295224382214099840746078157351907676128042842944373574604542775114742139529775370728034696586884233918275733613243483872867233360189666374122966973732766459703670510676878668562340596359356001729843846773378616907303800277812163235346091939732358090937924274657304479127023728075164413616473305252380728539389550513350101530945449552951531204186102708114433639380088806567995371065281130016091142310770285901000827752113519514279938875882000016651425327190796378721522355014519848994185188167202719776023413989067768797382051897736627234219227111759438439426486025329924602893688110284582487894132696099286872650135487460865865061837251203078984001801584519349643880381751085926472599445977681998522045278367895866271321393322034478527431434316716814065062122047900921627253606202797985910798055249602052388265700623975450900397222757049604597852709571144890899198862530754760844435958995026887996811976626348346355941051900734978439695955676408818377475352760688449141630299034757111924889531618090073226655948992598065568859436856071163529910701201508827154934909466626792814798951136140166594541487236203723370749336003045453383480911654284678623107495464370518217256164760501477090449246401662883626701612694236035260434402418698111076225417248335433210318698406575503657169893307783560335805444744146754355328093732467627092164866497538622364813849228967224708591415140634665493272868123964208542096931116408140979768675493551678716499128836357704050586142662013584010253093055942772439229371280122069730945808428308454521221589286394929886561665805982404536067288701608517439069107419385985265478345049504555782581011246915055309320146196999613062344270017838228888884968977190580924032794130739066198227302552864029836798118523403528446075750641606041893680644607604029814796225255511975098486783795569644193002106500430428722737629255863548794239168801713574982620005595454175806219752943819732837327910530177608184313685578821728433744801206648922302080752531107608276985286346503158704845920516574074469846468260121272054756618917217559668099032722604312470778703089846733292443047690974757812091187147836977124612666918496611289185383689295217802474987635028492997169834476209430472078807153804390526751919995321003173497410191090337197598860119092717213144703488819951215118816474102946064078063941640601250100467238739765422588851332458279511775178869803490114463307560016409265132779266425299264149734156033277168745378692405383866853212280885495774765650462785523294510180736318967467976984836981901002649492791504177988258057009464258574696073839921355815189405674301376345124280105785899181317323927512445259644423318740089777156444732456395441749695826983704761921186617297928871034635972160531139117584423298676918689962099547479982701367676090023297059583834560235109043589807255495229747732671220022560985662800883349048166710723265536218034013452843639084676832300435901290723457481529445571949017260456773938215397283556741123786155856101905713012921348119330925419691759648885690172091949210119012953279331302790988034693290351837116521557995264384765798356319728884760373113871338353589955457339819749167101808553237958448242302384651193083866843653870628896757142242764755917507043789331942498867525248869350350708766139347336024580174818232440776094087186581065800899360815813581527462696807213981194676220201278298751767149960928438964535640426558256326383317879846959822132667332219441995790551821141733496428961865040478738105102464818069838502442922300822394620523022772308806618122790649491358828472886157667066699097712802606572481725721193863059780186092858579625863786438034914421398554164538277361642434229032403913872345264537923601270963061172400077883804384503875589037231188325524457785303210348897541318591447647735861671232362425276813373272748882163877091725935508174159008696108091726315104292777801043696041585730836451996636528331246223169018364052405063302285919160971013583764391255621243013115449458693461960739700582392785549823253415143302787710098990456140907551590112917848509185351086360900685754013508349143304193342446140110558267289983131792467018569427085392204442392646416767226743213496306445223538788218026418336667522462356074959126618871929828429551758129744622608531075524494039602169141612909120405922826432255245543291210425589762653441181418533527873326963621038617507467297870939254720794451417949322186826513487677728432642970819489572838812041917162724077805144014299166837327773512797907339843899967290634902163269902876643522424629141089702377208475393454389753954555712444723354240994246683196449310097004382741801025418303206944679771183195261509660722352319528898860748979246277494125403624574800903017352657333308036043284200959580839279068174171953117574308105138974994192190974935660715431393111928056758554067230339903600644577424975571147018975393618249474027867931023547132397440203193138524886622037798062793337307260890656890900478755489229188963161572555057319018569760527896915128813465568536545424902509635810815536601146454512032434883803892093906544603416006020087373850185338696334103441740164508999343914644257672490309698834191052536132846449262315071313144258949196526555225915472365526706796412728571468729395155038234391083338277624882686293939370148170136995718582278225843767437235040232359571402894660474944330157962966559529789565571978791879551310171150761474616336731745775086922399869563913102875173483773458444825743097982731302655343917218273129387895324227912432915171442669193832292951215021085864975756435384553229221480052402730813504889618993394323919260214736009847838569057845092168139427957720573292744029023772585211389053892419712098752210907082388778379646769959994601165867667030820066338735254037489398669650036613801500773124748794283726149712917197349801272610827445081458170586856163428707208085246027430242140949157795902335203211485095983532477635075735858544876692742753487974415624268913809885775537385465285695134471385326375899270347132257434276084845990775701338778594387108151485676492337296035810973009223322638141137869333885090049607044659316588626431722514099480275256111915191506673281026188265360609787228330656865031843030261778799523092945651123950608449274984002264672280618919800310054893228810637794783045725508040299928502451400096759976666446860395028333722874115629524547989439673758949881052033852596105490059792007467912930001811092633492500032753767011179132264470604792508898741857997419145791143251170379631919557799510808072652329091350401457626792193300227426902841286350546082328429696253317373289413637439313564286996104718353239703089271662494639048666504014934312340553335886449988401176865227250766066637726198959871476535790563593001230305925847312354867370546507181308325764490084720342026096628845550006316924277136756153024795570448967970661198735498967572636801210297084491089689250645162150374014403291386069368513646250178930530930024779510685412672794877686693121797840034228014428182901233950253108462947073905724430590084797760528983279499351616839700194019503199492617360101042581897253915895705960037893054948910157565847439344066534575344809943378818955088467505365817447318672128587760935502533250793874296523299379651856975368175340938056072008719154733266380868184285354566529135824373157791621112654267303235914190010508839606467835908514216579022903705168805379630275733567643020443233085142710009798864926590650957112699881311038738586271345460503130766499189778687444055446540468131072011452129824630121490737804124583151349368055644139313014254069060680728178408581296920375324332114162991961326253376134372606575790237378275131918946880463620877225374139061310754957976938578315930569712487663297008114753003257086262174566381830705933583347419798902925075614871454013686974645395449434867873849232219035698922842084009066179169219390048795191553467869161744116604392537928463191168363687239882527426378810046071332381497583923839889530259918467201273480231379881822574277804259160238481467144835933138937362343223109153531408969559164176739191913593177149468531319043021872744475450545092721089649018905209434893331802127990199979616474181757830565078272628467514993633357772428845824717929804442226456285644983014661757289773356782088114758195498010404700235985329970311425428651851491928856743243905592191627065258471399806957181566691367092243309056626614618433885392242237737870060101488280223004658165706451627537132915606355604702886628362595211090540193646205848471615541362394822533996313549327463449596735459162725284370157006736266617201010131631813200034533404696294258561554238286616276253416119060507361703403457068903820779405952022764291269078147632780699489910950792109573060080185391032757053827155873104129853886058427868612691165515701672800455717647464690680320745075038626127340569250778748249948926975240448726420097026045099680212129712775575663414158376280808800347525159806002650362595717872647637124471714203048240970266024215330922788447629668754876109692186741773277125101564715244553171783259205403073406025576376040924046242750848412220085309809188883440620392779622725254316654685959851701064143901269966879609485145152356740684475916542442020476836465521258826360101354085256504593007987731981216264468244998434079594357487717763398733447081757331853333970403478302430287299768474902111751782299754811858354725400577771275344720925272318652966328695964111902250966187506347375571862052320289275075879112817284187421895890128607376909357418358043917582120782504114522927537556121994977585163968681299112684966640012284661511362367366250010699448010048350148668211168783804910554318851170078065344559597120373683315200548307671187020854779741277254364576902078144578215843718897721995681896009581900572601808420273123389290414415459926410541722103664534567684142046556217481036998460947880544448883434438305006967835561868746651862664426752867663374663989093221362450416876549447332947611843071826632844723800784863940692707452952247570674803966742715278373296782801176937942907864433513335509249666014529629090872931797707819016765632117913424522868985495455985325046634400775023638158542647567390203501793979469513508678604075095665962612311321372365497837537590932626553423425041595638202115349271847892361429840429194420418173486497667461365832361103827223818952855824019390114589995801159827547857682192406716752822560027354078825240767765456000084660198200799868140633980533666487935532764708425688819764494852265925744842827297065389037067973304482093582862643408878028965298686522496909063120796781196576109077055504331182784055599042149949723675425587676695956042543186768782417639904843681902492677022820980383960087520275466526152710595997563439499042973023673460396774487811471074296290123854398326720980280913963821783328330313844701941902812820895771133016037148538230535557491983085321613138944475162402538524232417883742733403760863616851203725499493097730003019838815397283998267093259336987143100479368760300265869023760640879470930797273911949656042556449286376590288672806255448908059093463926770533435113218724829103383707512585723544322874903609967323788049584041227903411654529579786079992925839506861238202533936850620486550766042424837760749504455755853351406182798265489035079463939254598205090798083244048699731546386359847298314458023131171957959281397630246747176903610958144401129508189742786694626189482798537998476513542803715113674778145768289674412193730935095217063933826900263076750224954716788187869353047614977196798006554606710021055746829979223792950165781262960258408142261316047625365123273719297105819115806255357217937687262676895534827978555598180729969054841132982411165607612573107387226539629382786377336551670650420946567011571935444399540299165539308313603982439556772356345633269080410689518517316091276636226655988657610924823462700356343032839374040587742186632688709724655223906114863740825835436689407221986752853297290853070798090434521236892946628873929304916621520140725465463874604581633439488833657211240370230090741928994057258787151006659573532538851016298546969712711484084900370814941503590875853053801307202439948911980028437887938679571187312227519327071685322072467303891039420962030528425210964571863645411074688186432094610302269358365882475596661794883154709232463071794058921487803551982572529440678301629945355518341525772553232567964564593781895351936503522653329024434522706309841016719829115090331262161819697188612489045640917449990119054740360811813914974137034509875491821606848149756810847650830770950989002143218993286832470935280384035692105723022814398264207705694764307866192628689108731874026455897089668448975151459586419517574034550363149711341631066086141704310608119646873394442728721055463475717242509543651996021570784121021773116895406987127415313241636068549051180542511663826640914029377351664445211994894875204477665631582007432664640014528592741675150793861817990286840121969167180891707350443067076320471211244953481925987551744130757030699205737695718759032938991371780319314820714291589970372031963409755560247233190084982112186101592644673848272662825607714584820497457102202728759981147217747149122320149978785586553427384062900928139593372715728382022402568180058456887819329280685785366307373038764735673247323560512630361595654850194200741426675167034455281235690823136796204568599735812456389854289297390802206072546435706632130845407948510878625239431031958673942634388478743974995381302692327001662890244694237358178865727111875386227209185824534148627766346317355277772297235625337992712065394033378141874009762813040998603423434478318028781456301512942993671242566439674249238121479739767486377762089136704307797172127961578551057750491556436419710749763143769532179470639275686079941792025778497186694237445037858900705290584404811269676987885171801434563129302207652878794247798155286056202380563514214716880542206726674570839395022076045244330894601206477257911541223309313830476040386038087602886082227627138576406454839841873926100900517819941377310328183652353669114528769236117399476470366652912477648816016839814343310039815458194556512539095547028989134919434783527112241790415739521037005797428197600853869985487909314045402528781518675213891353026433502706659025906026114413260468628522786892502271395657159659284854778858610304074578099567733781528183189103370568887985454662833112617701063924277314322012123977444093853158783994911501791974536062436112933276848350222948085248461491205273215913320881165932625710981638636612760155846766518095349631627381392115398882086647363610400435828004030988652799874579438900340534079912832536938472618103777845001129022596248962608690522493529956649815403569109430861410002797075801066859765133401984498765535858733903753258237474587214445028946792174191861830498541191309229145123190503839338809163173395190767880392680446259733465979938131514882737110887566384287837890218361058622528531466566989523197400209165403950435895093495477958727423642748335020714041678713037252996720175739763713204347495730287856391874445044263996323667456682384817648958743636078202319710030606573819675007499044152975260258460585817850605824252977998343494299188037374707284195048756472699632824293921017246411901112877590999141658181665191173440228686657571695091375147106581415471677112775607852969595168449089486410138677696193914937397542228935479428269305252363516157524864371551381440265045201016478489192917716395032013379975941856048227584799516244013100986334877566284038901902535145266548245230614098773568360763153471902448765421686006233880703129518286189773744758453692033893712541907432534243941411361805580528788276884377376919851747512420696817953400655006769475747208158939580568488042137292542490879843069124968965292253977678493423706915102192071973768528770213219570698858613063729337976789849467704837115095735488277480821722308210258774511265342650111912452703027108189542428735117027847825093611923008769408390887310305564321338411084334368431876299386394629671377778433764938659790648494332645680506863308867387000835966385167199646827719673618985592447305570482500682983942047729379196895560302256203420697483715958207415794789492219711866804348218328423938682283516021802124968835335861483424477240656012423787737608666286746541405584267409589197006320214205886273708351334589222104705807743914831688570376553267958218065338385891176211270432908816467832417565562783877843334888065225865498198268013707423820822910995343032728745577914705633081287951628162663719975212858204626370951314554117734568209412589863760488234526393532424572222597604473769448731669703694967101511263012673906346219740618614564351708826377000964816551806942806521094149556184906127279235927726791064082981439584495066304294445285974321586228993485092628988581195475065971919383784054051670143983555095129834882787384618729213677678024204919858461320573500733110358907011275392809870269352683551541236206636447519476986943140142936260190673677578311112830394126895128366119511565100455591903147689978267748127436554433422070245152465204128593276040380371015285474259152098942040719019240726594470673207879008339195352932298694339179449113785361547654850039141272022916581090690578596857424558281196542657833753386105844208618968540675765897371355988236566677668481823568370527300479871993384337855732443067820695532707184776762136703409217264513722805534912076510653328306061356269339268670511800497114881891622103433712054570077365025179816838826205436485425255179918088110512994793331434906101163167307794845287117397231786994798752957828636237059261627947055995777399338376637589115652049856934032924891246094020401557729735868172843882640074744217027263671608754770892176556755701139185793711175513783622247018705573508576784506944403176590751395197825516060704009308210529067035766433142823173407930386058703902038638695792524752332670989068519385394361185053146611286599734767751801135598209432313136567279876599064438169381074959147256996746893317235786497563107097967710111021849582575728771459258885125906019960172294684549563006591207408507884719857197144843558247989089939133406908678615498825089728164207423064186720781405974167739475365257987092382104980108722331681332827844920948504624163665234063220348755662636734460900843878255498919186207893925418941745345570665082012517242443692658001041006725484566252271528624045617605638458565536177293568112509338989854629525483487546003176482345498093382106954578811818970845078814565435340999660679306310661629019093772195261596011216904737422645182198742472426069692778778920675686287033443819464276851952725876782048940763428514247568015402181083750522423686976611545971515514519787938972733774073996041964942018984292020873310828638635863478611730100733805210260454519663984082777093816458066457908266239066892212885440525952737317337852917977322740857783146138816187962684195249547505272344951124733838712123867354886084612993671210966441435481873857599277093446465212446972735692904463537015687749182735753272431909130218885814443193980635117836659682393363886694799579844562899447552927397059800196699719716671220837202057776423981010649386080054695726900118291303000302694252122738677357059279150122728724328405854782096348057043939850498094796301322375828483438540736511308893872208750666130221218979960189933929973320181701185371692274457483138234637236557659213877245891188625191766469683287522916923368151767882022995010403066097341845131498485343581150422983683647239248757155579757011234884976187076729807314971883531638747849983375958184931570385696520741234813279879563517563661109792686832415115270565202203234049322039488217049639121712489849217257097288776484120855775633313098587225714318770687245675772599161527981799840223078428660133616908644951004700253394547729755409185881884300369793122419770676172199870501975053175871987363606706713087911642897501049095900534009370042175124821532437810841495904395231991122809550721724108361327989088256005828948798872326728389326053404961072271370247651149142363461842225575287406708379402902794857367757555098060993202473438686294597488278275377996274797447789781223518998105460399840335905378671262748596905138489296711400755911202718848080100215702504109839167644651004646267132812320228960252691744766643351672424115601780557615684874117412283543081028338466332477595798171044293157265135629200404887313969714491480739973452812167910250712535113646621542558995290219141605964131036956927684358594320218291187813495115472232986325060990936255598762195831520040844213721168463965954536597584863540154961757369885516835177172961872673578820694147438227109606840139473641575897762742948519539954926581614814850960171929487701503797410701502811583961362292673419983719294524749933740120937645964718377728506405642288926167506572297845116179348677982949697104767354759305958538907811226203954335491678810397439101188379737972666078110540994681556774957537712520461000869411592972272499866782439816603675837753816905990463821004877061452622557711781755482954137047521691382314872278662609726373569230834466784974023535861601254698485306417298614639963420555861673798016569009344499351621299234123144815575907996308923942482005599595407615979038940894028462105904845155430063174742418370640580937803921493023496578151186362745756784410022536120222980249082734090443153643792335150647049275955578554300394356459560904357651340537039773741577408475420498757009650714000214240829967262441267262998319725503469834295382941144286637158225985810637640738662186630806552684278117796678512181057696093176035481286149972187567923331299908928571950275469371199710093840643493310756638524673424304127199802907520000114187597133339098313002646967673554603224207640585773939131703029401759413008076139305473026453261551937085851346911867982148017277017765260277078555065651772300120055425124850892734141221345752165717348537577998143090506790177739460360143950454460676245657621753492040771756786191525759377228675775304942404523322868728439164270138106866263440135734328938908076283835853796138997409670200556085899715441002991027681328734073963645090850045488116399555616266093054389186224144359000959679265794411573193379234612180019607645527339161282290921284535054571114570432456957729371882326011795104940559698986457970307544910226216489399397643122986959332282204698728388345478355193972775341903852268987284142384065804217666173696889752245893772006341724231941832558470640108756210229174756061809575952676384580011142668622721155788391037059251537194162244976217098201153130993997432376953443506799597346143241003979700296836484520560391884501975520575052727308191485703645361696247009647284125706484720967385055119968420068732454519134953817147701894802792577110119172893886453219620566226402215176054716626933684839263179824959479280103626209667425124294291363054888490804197660716066281440499687471238520599162403338311875024049751180594594111239418336616231256286849156245081608932986106866072810919273230098521115555470842277201332156536767381721583785563760902677635401272290680469499572792196016036186447897038934687322749892359687614261611274500622926206734118262865594426136460245961484149567201364057691338425605054335349909703571581526040590175681537563664992860604984417691061817041445535378958147184780701780740118849481888668808622439023326035865493369324287770222375088221173181968412395043486171550329634498062097207613745204557111361867646793576865287618415534716928493668198942701130988801785362742766856903286367815033818232124854961868075971689356901502500840348694109366683308803827176912260496344455469737124673237381182029804944799468231123913604841199777326860575620508675418156831231385768534805013529583622839740559303641760409101815942895400368873650830667663054153262921229153623004786541152694145639607598641365288161039866955423823577078438673247372357094682936606888796247689729968346168202204346378242728000720637942116505877205167672358498380610544030607617079374253796457204573725088277558961935337556129880742333986030367284103940871288480596752852456219933722377829453340146694794393286849774801470753177604709012250935455838713799597541402864967226453841215493906757559034015243764241830133089001545097676539232564945346251114070655677905613876890263642105293483635072616321790015342613408013820025151117617050493499832591329119378042272627904121171133517501541561387503222440748795638549443389026384965821894172095970385699335861046851770379008529215465382837308606359584366903512131527654601529676357969865997023164579398764403794274102173976458805055856482536631723968818959136623631978029539782236976487328114721564132399056870803574998100783979501490296547952779319342379636408629832148328706180728232835502014780471819692095904926012845949261496610405831790844911278972002943546078100951391260959399267252456248944831295691153184809739245666100425440656704021685119056545632015216489134152979245583835720073487381904308214402732485084876074575573653641186675069556744705858452054313512327570856172620975722798963214023518795641457325778680146828000953912318324642937478202552952979641200116322531367730268536421950265290148618579307087331649947939761567197270781383590469185206691605431164491005641350729078505741490948420645859233232792832813222820254143404164852228749859715130915195019184304233796942592097831722298321644869902779612003426029853616323131675267031956219568865022744496667054549363397531105954056849632641739673789346365108856232302362341724037721665803352678574068075397241603259667891340877383306589793615974458107441569579499729077433536094419749454829620638273938110087252470307468781424634907745149522442268317865271647897601178431506643857993540667752308416848132100880124204335700080340768152521498739323199914361618221245498248772534787383120517153332131625146601614639506688080116220966644842867594025347881028531700046050728848866016224805274646441543513336579840165275695189867475131767105400967403361620294802207124528762399968224435979543414161259104044215149060301506250172878297553710239255663006456017889357792645458533692940460601484401453452042315377095273882686179251676365411824630956425853275697783324514964418603647957838806107666554734188738652218615384749825259370920926558973968364067336978628615098382065769602062085797568490515071527176091262679146898127998979879049609537795038427644803114692624173068453078411398569282989440853607529576935022929224734453861260419953427534521653268788813138921814747701904975733600870130175813824379725225593315534601743115696372051620162431249944740011718394607367890173956665408983607806124738846072640625987933203257854319156462299833744365308556171543648203482013359912171642770466874323494349206588470016320227241080258462605673801168706219074471989249737166670634602943019189901131455639458330404199921721300352103618267378998305452743892379108066347504933664959905913836056945640712932325075255891705015976500825080286076343861416062295218321906265462815896793442990336002837317476873429375879931802877447555973255973907042642816950149133779815312442577597211133406689595473508171461564739223440692323063522700819431667580314969475686541975771599919430552989393479476201695330492975365163537472420144856584627952803693681123097934582212609469047348578621434047777756083325130481500591308212101427229282132260375005591340464894388853086633756567697684626502718779518119981422946815474054307084852107582120966844048499414678451021992425878027639312260838987357640991757703072041979195177044382321137002233467243768930643373046976542251647179563350849586582940223115141154366488099022503251725292290529540679695093072491935932519235190157488192770655179807850028192235328911010477856698552814332971007294324360708790453041763204070420709547563006726172020357064069055689231315383611403839262958512254613620661295897485885807299280697573336973251044853821886015711935208024810270750785102006401308060755294632206404063947746847076046562029894894045963324396841192178714965801696859910249327912854621815947641029696327448991413867926872631541937299760227948982465690123598900639770952248144886721477779902002465100086871085284139674333824404774103313874231951257663668272901427949882958836416767381750969614245808282912159319336539354988779534598729094373149460321930754657644664514827352464821372500184317678042338012043545381557674850507460623929398194714613587725595026649485342283580656923794332454800824262537437989486141136781639069426837856322277014334173467527911503147760413326377056470797856477912042670987484430020174213105717824620130242700226014531144022011819780141126103434830694693105158570614329878895890430730474475021718360041646219577908360036344759911758793354941785475922243705587947594493120076506443357016552952538814874154595168420118859177503174522886091255024398425700260301936217703637919466524831837501686681642193850951022562730724377008980524882987712442258408937656183816603348138731286601321951193191512899723142041181716944055439979453159479365925762523366898539094195390429501847340018857605341410460235454089302802482966364476494287431176259402341420371338756484345684004568128219764006469666422399937843971679047297156746825455959126424666371089541069826409535324435355125034883960036294299276249868561999333894081650820773553183993452788540555626683388878081332474793777284793686732468957543930041277157615332784014382967897777437010006666682835693619845204726293505195288843621243248630176505924017282931606956481049281112404018484177212169090338652454425137228112849986683741822457584531572940150427751089490029642414350641040920451887404773386087727477263773700927335003197538127413973511472195609953521010777302379992527423654186938732000718307165861587602869243122296217522182510601031934499867647743298295456249525204975059386039043694629022901439833091111306035561591141953868956768108807622149890044072363938873003846540678389648202859867488350948107179837018187137975553672708792757869849084777545612626527101277003585334612894144318039595069244031647255860526419141329260378380099510820986170741417584235088202977587008748067768964647267893583313141861579856084841300607263056214025820156378438969330843679753134375094401060586796676003452938056379902304698648355872559046175049618851575977390675077130312175232065628231895831462249263358893198042325190930843453129018964946166891740429869294409957649414201513428649753134186550225525222954364839654693173429832732591020339379685567489527768916521799935357681211814117023632493004798248237514040356080425506731038077532330577645628365327355767835329223367485128890043600806871981591211884062374188628782212308699499568605845985242571586463003484469967180058666548722165630276436835377845764251840985727658464669452586823809323388398454550684138679134144111927949440225951706751458728448935578104603059277883417447633624074170370640416691900435431289267708111206301084320405698139451254212486123379906116245285450548170367579298460016103706243039870146762859250173533366077958624189876444116573010414824681680988657358850412774769287341619123626756299147789146577017490421296548421283145594254417753175492558954904180088680933730137925038846417962248289794690989625731064228131987451093982486440561727183255057556206658474437273650217716927216422278531043066416706824274020423067114588623690692003984297799084925645891923127463370579549405071464684379695507634507828919825387556107635766643464566549291464253465487740378255979787690435947905451541789458064030829931582472408872200479000263882705172141087652139938432031841276422212080596931397471051555381607112520468793850572165807692932786664139885488209855697123000277180466315419650947540084117605007030345626068240034887892946714060827562657318756622234780685890296390914270518032326116824315737934655579374931410457280863615450214244893139116982391591320312019954556813899716390153244265736316454374692306934131893397008519322373915460892119278425569186336617517172890085075325679141015558955588196828156760229023440273625353095114453517988905911991462401691116625089432073374778131485117375865699443513796606823373406799570487566158683291755561031009686166895495249933816413894768990925147043427006507005222585925498655675176038214890746751770002555332423781679496341264450696098051559427080022019878528974787691325752890236639647980289027129467669327042072153163056950674787213720741686221417134632069107492584169676599201158133418541347740594398961741262930256698821288899830044083028350333189065067605454919538428361012667496784363491261306907590152026947438411311221739715283497653857446510811869081012035056594309310417202460939013233317404923467300708123836087341616648303809359773264980335061701862290333903076815411040266026167519728663590699431658523550238457643099709107953653741678718100652107901775499662293863237802520412058768386379412584430429243569623363153872447776091309921613593882825214118922663155627730279236577729542134456319772379114388716932915975034194578690467924810061306398831892599007766489759586770021413580749918254956812227883571422054499457498713014190907619123444353107903491511994541433160854010364907741197944296123011110307371888411167517709511100814771053843979683786368333774682068116983758088890357413500872328620491306458613065793326608586852792817885110678785311665316170051774390769140671645829633582573395700166618477024830232341605596279344394214197955347268507862201483244690260143280086013439026210030302097467293606320961704878792973971577917411935734190885496185007582887927787804610949359508516259758543832507417826202238709166796561160331087781013870981620759194521253866582025702672726282599112902786892920615889305376470890369247668051853843535209380235277485451582956439080821618745168449407622227474688002683890099885965387853396289586923180170986446388299444542167061862925354022692165982213973000321031247598584733894092121693018670720561954016124756738817213653728372674000023093084618811033473424734879202385934328998870470602760782352936565429546316038499173449387077985349361955405536906834262373473982142168216920637846432834624375034869765055257798916859109978356972416453294174213802343449092526356275987544793260150527508113902161859452535453614423602091978287141093188177659503876205170623838418077671708802715350198483864621071362573315997096403188862530908646665299059365755548834051030740020898134764055193854865184637541520319291930023633378472507191484297840476000373310041371699436512777601742214596851825020476897788767964207616837904722920557702972128166621937666988713716780533552797500442398551378319530805468870504602372249302241872085050324293590225202853497718401832862284948500904832755433806366915565051812297904185909981151356195738684880327951534658870296433155103011962952011780562736867514573301224868226242917585375070398484469579659512983414829056836903902162589864091303563521836828241198467468056316877408583313526386033321479246095648892636081286457662520280445124246713974014596152211192819579307131064722513552540857124612539795306911092909893726708417987078335594943383439961428116349782456368370882559653203847676492867497968812223506744130235022847499093649823360195039579786114213066059844548948202976755994900800180307174689905169897583578950203250703330920577297771605286839634033434966484031694192554425793603577026344466030821397675157153685890039919752582346167436971305199037210887965036135799527485535818485217758074343391328778023900711068914695834696738916529831497649355542191106342418258176863364881092854067285506025623635290736609562069098083326615021681409454537835726490415565634732732742780666454394196952536235786794122125590380424727510287819269408606695795674965802036153267696688434674491370794477806674293500773408709217414713884417706158897093265237147669584204247911849116860184646813628971685875001155369556449707672990563054453254568743544776513559957176652316533587505116015188118121339317198472530901825696729820416111680595648684249904023140201216344956362474414827403989783186314242391386084902408996831305426933767892522220078719224786352057441378175961287577912995186116502731237742678258892473955283637541428124358637947018415471687456334373668349405862181830291498713216634216521807441819070230855498893905783141209765915505940037458639098765806529345260369300410925215864901073848586137807495731392728311711940863105231885703307411943210202576080035560692457130100691460792055193028426215242472209001274860271342985823084498119027315437973276820041363363246841962748860432161701881651153188714334493667707576901195601441469027689384600632669788702650162132730817103423941892704014039645625237077948366644830043811514797160033516552813547383887690902003923778167644473324660898586670155760897532626950966703723312220538483780155624788050264801255377510951700954304758308552641978660960798357396336359044318969732265289887034445253451889336636898862348562075265203348410086398205729619025505221911098817317325037512715029494140297211522530605532344581859157835592567710886838157075173159931142544699664115369357502158625623230782660303636896840095725683941273159605024437542601065925351605888319323963745661093525731015846674255880786439005923613897959384571424370781850685684053390455665115293589089751075208776749191739622483102037997829141766882830415307047765162386647627105896911656883944917600839509205343325760745410593124882466449796949904081867454324584007693056064927737226372026743647381063654023342053937968906734844380871529848128666122209029658353829181627135802249910260950736655327950852325800457441491124037285092736353818323639536758267399130763249756404135628033128136136955656472192504097454724859996551784461729516967959807745372424474026835458114047126939733229957139986576372531763209693640680602477527482289326946970418437863957076309970131380338769276808009448348038425221244980737499961076456022242405365093906578224792191916937467416625841526767138413710596153848130706919360945299172365220328901587048352117027728930673464975370069057692285193890967671274105763010143175065240901143668542202564669676415133831236472041778693375288520426488519962569989497142300491037934404180082194952541368702126341204794908316226728046882676069709707947019158019771330881382409322489752630064705582008913580867026597424635698680237922958987354501701653656181786644201201440094342160356385228981470927350482649961786362029118695249543589929574286794675007658690842426072333195073094601173254604812027947236338050466580959636358404759858287740453738750557182149949148644244274823826822007885734099476337651293331606117136637804323937417845366767394602464782198215079534270060885216805421591119969590287611434955472353708877912490336529949076890281589530022138837060798083782867421189176511580624888558486140523640217365114942574356649603758442582286159985497243146346895554092190881280263830801865908042319635180123444078715553569917163291854807399236755755595248655062052981767317702476686321076221559547207066389363843892286477233955910649129668039369248919165073758487384582191218064876430176638286159551512146812198079410563133485300427874018848778479349218216339294121923600203946427158533046390074915472327219424062171965755174664329261954666685884178415760087691259411475489716861108036807282178714236099760495302757542466232771902025928178282377531377372337411251325841356286698549182942076860362660132691229379339122743508344405209532779402815543909709112912168356313608456839001540801789423586780878384687693482548688281334005170486422128727372938627600611664536895976822887597077627859141533028247628703317351332610284870528001301320025722196750776561334287305420659952699522632649637075819260161499660829658190250654707118868485002485887083404905308786297597561245326113444849094483986716678394665724551769228192756977931405905682457638344424705509717499765743499568330784608078468813852171350785479619039374885753150516685613433613625560625092500596616857552762027703482221370723790845322274278356015992654016357473501084421694763284076978836240708974514284878096841196020702696120860103831470165170904621421948511855521109214188785114235124303487014575511965973094936120253432836762503890372039980198728288049168677850681196764007576475962899463223118241498381458444325118888420607531719384372625473362971965699349943076802909931206736792073628779318243626269726195717348855675461858700495278111844506619950924999311725569535089167288455574695989276193384084546613991981372987240799481061518199040425634725191619765794075658496479286372321546686492612983442090912186927472555531910730472469484097852152949873901896849082395490034787243308611915087888513206609075587342404242558190949577810183103678927186990843572189465968408259510756920234622875669854465692054304349504753989177036663015982715909099497082730434064331380139780415940974035131901045353997775870705342201224633413311293985785447166257051507635321790627054237588244182526200146403958323349747469469960044067266802743870674465939415591427380673156707497281609910828226289361761782317659207132389120641793877523613540970291990314862821398959214683666357816012418551022642081888845861922939673347021036816765294962164196713110985547219575193037387124202374564243480825355368239665109047586696287460676679349375094469456905139992016886737092629780704019627819039363068617970303041843038563324713544654525797950396121771543428760386203057253893710573181843671053244603778973972204393094111845898912084471805813130592420015107328864080059593083615956906873322537661340111752844449582729991994303998666952968480294417079406073525823288420679297338416179890782240197385995689735189566516877882646956420317497667972360518078640057606770138686366572682734056437255301828032947238030989105090483506465371379605218073983496711620917154313607731476989505969222038130852251406998554219033437510011699918633477983279637480839262434758518623705464003663461830692719478986503587793488381228959024086741906367655391359584122236462884230302054506437439764707727673275704438574589227472431804259457427983324076891929865135237046646131696868011311104155418647505855177783939863856356071014296361122578140191699828707931949024872141169279360126848506193940492029059633593375656212345634918731006912906359154859812473517725519938227361441152067256087546660501837520977935125603043467712863578771826344481536964774445293729715894397633717237126665420954059258104588640384500773633856165937787395659847869165577181556572940780202500572734389376438974715640020465028626572571197840691475895629729608129155846939482327517975538445455891289414070309588450963568475504937850713078633530355318857600950799619698852803951964219198341174976689600296094823056766752805180338863784697908266023036384448688001416070093655787779740856093241175589883365508265526746907603168655742255632875790132867470441892110203875982923034976260150174226076522599615349210057162184123263863324353955352069747193193126361455162169134029968845098480835334578864463117846869499881012269717422288056048810487162443722927035766849000659536194473833329849056889468232401704672922961548113301242557554137892176690711824613655896621729756196907471330366170895444572165480729618516962142637982574605252890140712159390083470174029844592834181529512831161476240324340354913564298979829329290033497687012029075725079454237292965564837747415496284175670778604582616414562359444623554825903546182666683961574382769364719148829817736236616552335191500862676166643505327503433969262685250360909056162992552360795454112972305099048071722252396812129124542836049665580571147780334018699342654188684445213869749344814766517160384822872034414372099854242179748357517657053080788098154848048761909526125245469594572482443216434368577440465607151051998963828825437682699067058557474559849119133421778299423354343352669951587206487085141222948356318622987757329578541657456481392565753733017150011881474090471471113682789916101396878822012493621213658948039858864449256943419289954129798641131190942559577687084977394424367174719408169500696461145687546022488037800548121961499140634405599628308590167356057931737841918102326185213275048984146201718023755954087490438207257575821237547390782895351855842212280506963065770834735437867823919600820802830697062637463042357561790318771419257384128604025333514981035948698257175377921799121095099065293855334517374554004236862324159626160373432181089280631038860997500259299837301021362192415511400450689820779926283508542619212430790527369835991095525440958651305261344234981141116821771054602412532046320186581454853091599658205655207780520666051639964967806797776430914924241140033742907206749615747557554557986914350711415279886996108089644934597256377901483902802639249043884655910382499710615554852930580574244519292642588320262497688413134848117577855179521154121268756643370276034960303550244298391639641718050131489731672742613307768794140641196577918073668957962981160430147691025430982343000819576284527335600061221164878667087408057724775730717186273540967970919127162406560711289812906421686956285904911410433760685810853026311314073720310032316034863646194954054584733298412902497670191852673656920783138074630352562704850091838658394182929989955779982362142779793922312831053070301158272581758075611589245207361482120488081352896908924422759823117202664125185192258258391806959104132628017051098906567627681542400668059150621186080697718062540388583580390025914474916779047037846544334865078605962449101124643173590120770448161594892422454554671323598160073787300137301151614133349127756932976116125420969993211924159675245665662503518139265475642963658763789747171078229310983677332245676363556402405790503859201616388177572471213980881958377159626398819006793944457882322752803582399528551038137064992522509265522995970181484493880324785189301351850683645080856607629568633893176142949644960158579168513397926673325507619160038492083493598087487409194094280465917965655700670573123213591938959266306163935189129157899268902178065763424382814125506247867734204319636545394857091474155013964817593785294555833705929336514931311868781166791718319144333637268467643763803412726666682046690350632840014112047345941230851342583366097300359035036819466198761932684491030031759968790507528077897584963266199559202879242463773504454936494250108754972402325812057604994089947743179375390438530941259414355161796486767394282983721976474867497192700417400128363740303375596343803340286669561388484300859982335776923208745005559542366524629410626805553377336861510245420157350474650831499067190261029358084667881751056055669091776310853715132913628646152175296407266107188159369014950533211184213583300559417690711102643691931139026266273056657115426441493298781376510750393027435444785961032933355953389744245049472855345473232739282814570498760419174196785877112221137844055493850603347232826441178331399763670926714247131957738202574632550046938595296208769109980750460022064672202148642418898061326000220556473367972097522007983356261036798413362238735460942679895329298310188217748057286762213072192491726303161327101949706695565509818757607960623929667459019623173394059784695553343598631137330491969831261439186987753711089257797673242430480560888596208083200830467826681675108949338174072697135598392533425640206762219329187617635221072552532871435087888500339797050755693762366495988602957574501129895380566021221840247684143336358902378686975596607764555324892211491985340234336289579103302293529121022993109602933467875818582761410467772107958728154480894310788074803612676064196183366397686190759188706536912851342365332316959400942261154414189877227589133156914975570543254975883931292472924831336078072186242594342967676757787455023121549939317172649690480713579208699460404644636617274726353699709042847104191982925259505949719134313325290662127062010944172905553637855003255331423240406541600127569094223446079997456589671669573236387281213732807089074628050542976982014197731064638752279629904465104800513688915397756501210530881816748075638690780526859280027928076711287367320222525367853628707713159182975867966253811929392771699246967486624877345099917371778779316683586288011156567748419773580495275066188119010195561343316944472117060987883615860819364660293800206468929658824563131486158220822113319728946473700683455665291997622404733817929156141724886702564550256687170322360603832150819440300726535377947102944063450313353492297051613013819417025869727871277661629181028489073720767455470225862115710103682476446155075390224084433645765173305981310295969355994723631783813819235898365816996056959676140005313625769889409638902605833359874753351970203647597259785577395267723061623363729286431027880129137068408540371621892973788295161546213279064633069705571121640473821872729231966303479094978676150869254759968097568511193779015651350794122409112271259908054542567267708705228389086381411206845332266953111367840895171788484175649330140610661923932625535559911043975103033174863552107212789504380869917773607877227260330265321205546027473052308809684070274208051985735311828270022948775773471984448671850751064962996977734375400048863428102000391709897841503063721940834442816215784448683219629711697647854723700388050124989000938607168920994112487652984224464943802925014662524409862596863025295272886830560796742064172713322688477809858899725564335635450597320116300940137160201451615782847215694266979340085127337190589209027333165025737307209643633129748472661032672853149620808490687281242323472208412269596881707215872578230887037312613034436420754589409893841598530315506272523366059286775827461962756906673920214673293234767640862914539236816776352934427123701135418973833739546962318082801708486859719047116009888514419834091932515627880153970983806223629260303624778537937973738357442847356479024906911359009607651339883736278585732944909525309021608931941412081356284179258257023771236801964742684170447150594359429243831299280687919787923513333133120844836680637947257867509563341710620718684650999595158759645931901806323520479847352698079261656179251303746214586180882428461241676262729794378230845093825541623127971632178247126123856688911942281887436386550074747227554399077634475435067987302569943684643260812919797303767708165664607739318794737168771076315012286340424531531784163813749372901463259497928200691178863797900564154934501237457907589041645389281597874305620166339470858981936621999421107798500502543637452615798104584514457746966869174888179876836058169702850006175946586066760661164612742347354118492176829496900801159098520223652495375609155496877510696527955931353663422186698322309531898475574765963860527493260947227565107050081669166575370523781577522375933580502389813568776363739263019213157634481684097802691259197890684781765821645074410860139159721892489107722446327974850357639506204722649613394199644142839034677288854095068669611766812513737366662075631839537000914363167142757955618599744606520510883866932004746048556875031073921613950541235319437046093250430679374242862060013364811416260348037850330247893117565664792713804166976260117621037639392906546186220167367453772897547421895910460282227366416481860826911623056366171231017226835332699951994020813882577853239167539262408604430059912859290896282051415499362950968053115869948673561466216746313575659644028369531612423052648782271382104541748356195930127182186033038264436385778590658719563156158652978002517946173385335662668337443619603808895016405755476863299786487238235924738883566550136076748407352727347066048144037732813537756395670982096084112060829518578228175129978042431316851390978312848107995498699655142092512645157963671749725921730753242940655685694746097107746343365299439130993782694819958230753293456989942386564814023859553922499288449916008432666384000325956525255682840756518686463911876590065964855973483954858074980539093019998121998662695187207371614985398049183922017491467393143154775675450895571210831930931035410616347431074165388640223592928904341062983128128047188401544802720922864676166282251852379553896976536561361263195591198321532767024975892478512154444307422804111371840434546804800665238631349214079074960594887044378708842818826357305780444859125625116985612047621926516809951000542379959240811712584335440863138621657849376087340629160388851584336055875600918606281628030074734902708441255713387990785727847013536404885320297990597266233307480495732369806830846033537428937591772790771309736904467383302300707000561235521135194358198384232766015778705921073193953463326515042781656820010971215801259636823514040364512452745525892281426277317074760088776592268833394396621892913605839124763833403158426389922820603272364949001539048691872921488100650707538324749687585570989601736519055895302395619957311565265073275616655342327340987699555610086390738467948512037712917423243759731515034566458830905446966416036470628435822852015457932192873358603927033044520586531553419662889413789219672707602742416827047417761425659440155236484454771246156420635217846368733094091931439321780203454623991689287097852252478861818826290754942911053335568927659292000055276284251839900884763145350184739467273487348045563598763685523250137946772247533035443338967953832880614882217317580253320887955182471191307470057161723753947039453502197841275502114019392734278179447987151548914289695503572525033771394723852360139877620434312340209345660465023833104479698655386170453572483454831597192357219615115206895632169597745919720053860836101181655949684866397558933019307159204103778066928092066164136482216318737252168939500563734035731445072760267599594817602798399651229793448389179827280781661962317817013649422964157536725308074300732149579953325522941766114416057373488552101714217143031764454774118255706270209082540925623017462333884638473469022818053567344779146415243124858853181797477114877535164985410905322163530502896826734333787389830786315513755282475642905941608879447910033842501609272810779202928846447539839346537583825976442422463088546451135385762825802981544686993728433632772177215632894777882815730037413068107828654796741381408840149564840971473928719058490501540688421785440121106613148432994353928882187552324743596354758182126845349766527063395527435553288171532906161025044821623458814654730496185491833431311588767688741075448817183326064273363009581162148222744440008214798654729413751746000578460188141259608073745101317516895810493668191773998365790456368594313780952514172435536708484403798260254854449665620346716104507329703174197873154871889925524073900195630410488809870253236431452411251296352273021927384593390140991609511166053808373955006782254911961484073987015256733094337015248687925547748193040913413479179181705852558744760537402520832900831068302423690197248970884786821484432680692207749020578286276357631911770800668977973673218013112809827789957491293566226560679512889386514991096378014822423804738475269070406789413476047019258902295154398524258695092490413194677032754780783000321123342665782817164945936342641437935740502857233158847460366103057797563800050047656244440228512383900306246140418003970018127838490845829321517964775834403994578562260420183477140092659983375052885802902762753484773113356184549428599961553197397603871040068638327709059594819767442851617786603354109517060638555357925546901173560366441769294673206761680459140774576294669610762086495433818086390085472932965017973344146402980862154936924919552974118741502970354716017623797176927764236326571609276855859656995933731332473024224116117111062982555837126745782998245710296440858577349004252584005276935497240033939900839136989586000983218736707236800790524856312617766862461940321609077748638446131273753068138700303472272263059625499044403419485758540835040533026906877119704317424298441180678362797704826700719311749978993244914509365993758518868958674158888613209114841906851797148714565511215737492704222959343699985546275075120129152161141434686304806973774060562355420021347912178505308602214513593954853512428320578531932360159723538501416875510972439167921066482174196253107607974091650299057513936035091157669326331021866568799287970891388639342296155411209903448763386479450006425545569451754571794200139645809398516190936270380639950533128878851515043169011714638166755332641986533771173535666907734669562336817785542255246719417274845918842567104566839413518262787765959502161594831083858278212378898264069375347591394074950760715077397247356637364509880932554734879462189467935436812560508651453464269944427665856897648850966207169393032998111556999419210702916969085102365016476728608067684928394152815139337052739400868994187427472628518234214716207133798873618294492065235653696473101588431629226864493330402313676095480475487265499041871667757640510421786495083616034754724074199777058411545462009311754345263988106072711985406979257023929359490784630272987035086252415183847612739588769594663460372090184964487195939718763779889928429731629841233846236901010347266466265331245817804870999216794207792160695825015659217914232464070276699430223722965262978472538545506476608720993138691759258361286980527911785110186096029250154773035738097660221247049167447868384946034587616738999518365140016368340080161560956135297554707565054033706914941707099118349949915188660838770582425340321895453847281007913637862389178876519985127989029242751730222372541861790571096301201762271693415111829600219090564535755475532339999971034038766671430094379075525658862016452548181463193055223361231469130606072938225021449715254520172942458978800856254217283269890041899641127081128564751748407305365458693727849855442826483369971875737895143645562228805627966692300797645833472104309250556101758962398802037372019357782335031784205319236260708119729935192785323942581556044993981182682979952247516337680027794644605305027491056841245652533883976730400428604271051640826365382422061954977085316815607992488703379771759066471194046794155140170853819735253028482027957708591931212820402309272173457590131915600670362066200191999256629675265562380933439008965179258013655729326519917462618455532028688041699120340507114053174965571398297270229480875783853990934537560872322910121879739259312902175716439975850014108105159030940986597871026587125309501662482681367615328061579601128142136436065455667967712454864041501394516257424886900856278394860245252623170713173401574198372678539076322726667874994220429937714944181178743201172488304808757352551060555730836282291395934753981584796238065813122431008855615069871176125529556753286063222904671442099925812913514352317451105049517286695590305937928923047550578411447368738672461336815700388950931491561683120061979727838812052337852648566889017494179816957341182673180636471904208840255365822641495557392664076063683761739939155051686318088357453860336780373263948573588133689716978819308379249946427496677182697688239884778713116458334103865231756313555559733018190379401117929558762970474754809397026362471603174158753436532062341900463575851169199058856999798535440943814022599766376571228640690267022787320776380323264940111829009474185442970939432310007040304853825126824036235490446811429418641024163455796723702444839600978233769285688628496177866797055877048031757825676673320085724853603975111679158268909035866823771940884315818759649618725223813409332791973624455434413402851669858045533015638557153256968996098609851307037645311864402759710743614590999113121535743263556008774272115031745466736835499893695022242774218169968818552186793184032740929930990516947869601710507948958134718089553398302604706716784652086111352030110193127181162961015647515787547702880276701388495006567057426672078087528436741483140080892893085919407277545646909267141066576785482298597416967212081085418702109972859697629486625943948589160559828112192847128846315307092191644599317808749465161111553576756671666027000564123315846304981974641295991070597380928772618356495039766712167909667513251195704661053285538664191472639886119674235572858086254495397227268435741536336563476193077910320634131230680006854869779049990431165055945477059174815513770175124913179137812938562473608232975989777170921874524320927755114809863530019839829913853118762777924173911764407487342889987974380610102225954580515369829656109442066705815264776219140003635175379084141056786778157605625960449598669520966708183898449089288633911722473967752914419615553184330803872003537101375325425806188578000387282797520332892484852157976557078965876997959929512611547155495436654388697742590003798460801802836676853774980859348070245585578868491795043036494190824223268570572463988885721594714916928740129760514590322502237945778621839512234366486145244236217618640133580216449932350637226130505019313977325887782893425237293129848248667574714535953306071524338250861968078382498408419609692642650409120901915846936883523112496925851183879948496207237854895495666189462223053782022562411198699689554404854539533194065049794509507222416085495074129336383773225619000965744563392391106551820480383101359819124758176046175876366518614198843171101076375754095368437833829464782453897380195986808535274678441380601000083770622677259805952406717382179835109369183144904183372334959791343389717272072101036383506273441840545225838669735295622870717644015158749902658047382697767184082959172119323812112097779000110925617940672374786233841921990926911440080728323594446528485303207436996098348805014661975622533773909363337921423666315832830245345267381900798958663309222135114933993300734709441896337894008913275588775045783994460708963038003265392229378944290736826587411890492993983376962130021755200869414757849917007815314102631220395682392527104908731147486850890635251070592165383298837084534155578435040024271636225622277277995841334234733247848211610788483729368005394063550158865728044740908087288693807371061960354162121320033623779110599334176535447879559443133833329790723360989986013534133180526571368190355814426700687044621814575015621289880246405237715446083990502637506418185253354250207824002031587667642511351012173814174031364146534053453710909226053337561540941038590460113202133689876900844922916661094320465943956384010759406739434385317184383977577137072100309852683895170097476065170556649710815912558599414723585897865268641333319582000291012388362984511608609662191139794706755233664316012112377518455625065039000809139094655135087763640447123005201069327734648306170604988333416896786535863346903646719888249928583528149434667528851791119777745042662770020921952079998011233642871509775428114163701829667142046559619755405573419594846422057386300596116492276314443229267604670934874604632137023340832097967297168634846602533877364285316601631033072459796686838207980688565325582462635531782111650495682136420095577749687942432706249199664792736488071038409582513454636948220897965770914510024918858422566644079975178014998381447268493153834207915609335527322352986515052545331826483581377730786977010859229669169408168571870905856077619795416115929028451002530445575798797552820764908631580548936628344663281134463406266368154572323987608169484065289682520086453733228908029416847803753523334007931599489045684193190798465770219655021988519317490535805397588870438460421437667866816105258797213099825873171404323464082210409899215475323102469799713089545818257382294707661262064375732574370855445247668513242845844027018175532802445075976939934624592490914227779791691596162068075167118220871740983727467370152872410407596371830380354847199937889636379562293713557037314682488925410246758613785100605670020356674826445818341938208800041798429067067922738077851917470502326487274131444896782245784562435158807942205755698695465988640489335941514393494463744827141758246136399583645928860247664120179562062219239155536991885860769775193810030644919026584740553593395184751404168531044767136570753455704753070151644949557263356152829437306021274734025145891217931402326068649725241463727729481489005293674446821275509150296047464674758620129222583458008153728209682680503784916499362606981957880171667117757087090394950129507619028525384879879670330074750914296971904795570723701437358593051442238778322349130590002485619962375537020174862504307763831178170439902661710864122952602350393546758056669803929875181951878401356481497377716006470209478014919122646988441438304764724906387636140618840011122049100453731271379487469342752190718868884235088444527799260297651923196480139306492975609517203594576995953342300595545599725345377688218166913925811595176255708278804252815511772470173804700248119929832388599863891048365142339504151925674879887058762675869139673721785737038888919030609048756914833587067827149471999267650788724661993857442987577819724851922779655998531935532558186409537171554065599918207669784743424683183958472976586404421014150676899500376933328766170340265858841107324515642598351791588869763099611683539310385950118124791456286273812486626953729924076592484030603074866700679953412200197643640293173899326370515558304112972568931001495663587002812625607595118152003803118228881625814242398478108626376891071238196803578731699563039937143697864296558183338786712269000851766072846689660737158131829110155154439648147673988814512733023854595768093482742728580888948078983479345035988857831334751523378855213444269151896029377826109268188846221392445533386374671814543504931761428275271611188837550935117170898729141131140933663257103233064619847487676472199323412818827572386431722029863332314873964182049635801328092750351833923231867108412191100158920525361957714278387020165767976422626648893596981927789255848826775482973675929041214276603126752835745445048967177582619757789437141887309571319995862450312645287800554787135268336794504319985625054116647365678471284911389040246504282763549351828277030700968547177822074137634407291377835656816903437759565128106499619308619488707098361778885642476202574364671830046331490999442332642109232572600468061245491224252623418864071837096040036027476466997481776066801309987859848007848832897316068507467173766564389612517119355459368211275398814662043344359889640824921323832968996408002216407760075294609484356112425214171532165412952565365047786022158145589443684768512256393969055521175726932786702876727944992716469276087605332835437516296767472540381997736534004702601272620655659987105674393703939047111405168473780951726403016391756408932279106671956535576106131063959540143598392407077482502633868264057303035394714610068066184399188587784703488147096943265845430138334819785085484299538692985393385479854189029726627234585636772663750750083806982043365064793792635567560878282681798950050956885107904545297670377825140394533225015688562575290144807942318214397177341548183802946874296701350284635214532372089431121781571064493694476723379259971440722456580814593203342033948444633166906855351076902384009652663478037735529083911628125166772101866850988653771931027097740284087938730620507254188466421532687278037287082776738434923396802962607875305522583346930168530124256448868789729310647365808733492543180154618740230315630411979995482535368396791598091811600451897963353544521682734595838461882540245029521880965284848442358395681237277459393530067365115543755649310982544803360559220503654123516786245959774512543517993265949854658619307348265008915718054953503021413320698432122505232038539859288941120334239922853974881517045324757364050388805479301690753221859935733352985639371796112072229344279121704684689430220905330231314033431315170898869205320972069866494969709634964986808660681084573552819360665509660096501565719068569833804074117709971950502232276478926646427024704622029781989434106581442693120748130187901159707041078426818779281911850936093290279720332393787359537473956276136982405791163417574263556464782904790582688233153495704965011109861283796476240558532994743522280091230548865516764378799625047302387593398870354749472362540355334815048116970929184010546518050035764584530518816370666565955664773198916473910554153851224624845985221645329563588252858577899442145295008775241741816389564533159114300645315453700405493534417127863434897723742631871585863783372366606420732590824950696832115046664007282218123071589652389332616840809524483884186564643664276662483355807117678770298948788224943911754047653388692579547712169634638207362728449767574389182553488263430260655715373323282374699754796389284030694190087954740184939456575627373940487105404275555662764608122268469112161428798810226090501609576053404298646583667741292050563402147551500348805145418510436068955777344824189728876143128130127918260000220326956235504079540491022420072564851309155580661556386754832354189166204756874110778904404238478779316222161991606893161742233747110200839301008524469336219842302661610211737046908512411588514466535059176324975649126903534916555852511542815427088256015940344137613217628886527290626202746834465326727248337984679301156221325263624798144628115899730774832965268062944071040498565252014030135532286381377336524368760403024555055339390478997275847196347690672671569153446459113127697296483775461520279243790020317358459683511766599538721473905189168888279521593069981038484208474273638965567200391726924244875988607610362704163461918413039112112847905165357773963764305863712074744636120905597823768772434339857553420892005662335105403897162378526857655627855132768183895180363085403592872709597503595467764655862379080247782041628488616519151786019847397760927641497747423687756978315177289756497085875238317967371404052513465040152253808925218937234819727666091327365533037565244698870178584171033796387287258933540072793598540506650674335175183718926995160892689492090890145606617564981688399855545615584911537507559612227183215292903174603292646661455149359209097769489817588659356074989988766721430734373051938018457022398275548363689822827702129139136488944046652950743571624459163390350632686394419888761619389022005944025955976173608830868553426156615818477405487839749996174072131159172501120481184124873784909103743725157342879215231166787608113496557594444819999649346044630180675590353393622483233749073836757613604577212527155858072593833372952996443292521561875260965760728699631338442793671050355669279294128931849580024304707497041232427221055373757893185188616866403523102941149197194712150632136389388572158154477887395408496693595795791645374611420497532917212100305620342851560742182874166206207500782206382746525735365298445331973550530070334348442811694381630089324514316325859435157171053770525752358344306625713842736332615731650242377745972775894002024172391800120981457696185302888028081741029946571691816980356955925680034642125205757469642359795850886873003500457972567781396959641015278102607387311958281502367476280279604914051487140931523483484599685310347709017406390621468852047983945792837359179939026205960165758677548259203368693044766705970021540844184181351970205707807462926979445563520395736113869612725198752135112406963300393758837160697519424855202773146522084048734927246634003932205587428105632443386518764024248510781458414488410559901163663520146522132283330979754551103093733456184502759133391223935844887400124429377332428277387576562669888761891277278986663057306238009940509642790600437931952545154244854344374488448391561268685844385709516064856208095437269434748510602032538808829400018326907659736152557381749269667678606829250261157821292368532287727745317796154486100475482234150088015359200501057507843649149984510636898858609556637928061506820494381608862943689371202147902618277892080712943365637360380514621609407550014896929440345111002976768137690535339125224637330332782881039291179102402286048231871684680186186068210487126915458855989358296344028727748872289001860554093233305337164931181285699153847983867629902481974106161360726811878330893199407645603158788646476968994748267305055273431940519854680721143343694559691605219846588500986553795984562004916656779481090057144076352397241578416604171184642521965771289007803496603940673101507052792266780317859443660381201524615813850159603522815519245528284037077615031969594124150619378215772046224396501902479355905964258016850817733709421621373629362936499436150156180089935460230709894955763405367931274840612909390930490058323879701405674663825559071383438579638312307211785107089909188778689739496051565544011878629069568066893375410782759204314703748652015630794478696400393507305154728880360751212281295892596702141437113301507296948390071351251872124742541760060044739767907337963736401585881339685086483447184584740602610694058982500474491127245454873298873177945657222133509938011722172640936492097069467449144786959596447657473548918380913896959164538671500303092383015334437985146966947997813260695417814546517515005658196066738407362731095413149629858437373749801996436690218758883318264884172946677001484155354137002502657751922116681144195896823337181987437899959153321088566253553459028023157654675507647779698799361489866987906830337805521434230263567638210377338555853705494135697402073030441337161873332181074084002661591527371652549580176963862622112457468284731025052517606271940243405048811968977458400111574951218502173707393530659505104602731974502284373749625192201315445120807355797073242920291207009070955503206977834063924531366377432666747531272717663767357486845964937483603389382851313113921088838544198359076762537210323225687755097961166455115162802709061857601184228720686861131075231450923665599348931778946026919051000983419757185517598239028086880089316189499092546798865955140746269482205500770710950971554994752549118497646476607849215499553791939254557496804709534731845725682421097381248655447091995336612110483737697749137885232372081534696027377948656931321681929033342773311644776993536622050198039854278456977354976718870249664600952227868184023493534169350209815243830557690471569521248897368510265435774168942048255281017854380755213711435417025428733870645189715461097779705393803047029744884243378813501205236969960083339237443343698105628668094643286830816777488254588756178904349629762336486539839807616902382308359462374550217686905149329478192950706242604602503463849486888908890219818889800245843460013614362427951737874473772611316964213259124986216707777528168115899531268807111063546411910677020339794806617324724053127516336377281036287560402779734992063621993406937895035792374977092921226921583095769389876503544769214220473523445798797731516573147467059265789730351040447169859899237778363406996449692679317764135408994621345099050434267463820960661432070981327971714472897382757390581926951539012762583975126125913225603994820152875488475902755342763150275283071301848704070152330145434467652719779727358370421527904057091776904786476231003163521088404757855911115115570691197531511068465129619930693262394394853328918779987538021715911005614036560186942388163836477205747126771200358270885839567250450580879220948933834809736128203156142410025290189837525385342755894365248654617050422681077381982475595462827806489638971986375496311285882787647276052732139708774975342802080756831573986439261768902827616382204586460923166451218309095583246275938715499906404080646418350169523254719808760087560278997596039329916733831578738789606874318988075412792397773274015115302420196030350742447262180819829825418686832982278936796075080494041440016619416371454627432511567122194129176583222918000686820002316401131240770939270276255440621639822146898218416197623791332803674831000831331050157400345275831049454971934505946615393501186669369111475850374357358243646913874248268125522117170882383746178856323821768268015871813144678260656938919743578764606849845769850250361345734349067054541976147632601063476769852041197094362585296163369409203540377273272931855394491099985270782049814968139894345380453453021551042399232845979118872434580078997441442062763912338839283958293972170324702954815827162833110485606005789631822798411181791073963097961065947137053239072130782906486929999196146833928966895788700219877124839809784256082262621627339340014166580440853006577676827868387994633174331185631097381685986378341790619462752371527628641013782874991500631514016597100832113306567673271387675779985388679284984169726494397810985452048203831592731040249507132409790436486365619170732870235514710187700498784172443442936277914775107677558342063981561801695857566773592237892453039861083067683934355106794325872222203880765500794417528288776349006929221189377034300402714765067162648026075997670179912035128803831736797042480836855982371433044050368745740008414834903862129838111640170150798137030592338885398417603984850810895690197809948952165310611814778636576303234644550570730151497615975935971775153999371100174297667207689818495481840225609954875677856685343750988472020322797027205768402372731595451659190498709286921764525415176205093559736935903960367768517005190529242744896509751836508034889934802083996345094321164164479999909368186506383377759410861549627543634148683034349862671982458434777362228377281343665686040586792021809720888281786724610291569437196904714189332496858320505626882468133901871305340950133231659903765820867001292255689626116712703364320240686695732515429613116377012901803380758059568504974773653625743937690959433802303931400735494841795628151365404720059006859755452955458121334588033620751789709646850799350175862455356642396622599983125568327056741653756211116414560286414667134928194314828804155173123196781254791138915321245020259811355309030697416156903735100206921360980486668542125372894490254011983545492150551224324697462276397391785810189771415246638350861413260229762884101890885299612254126166162646219561311254088337469637699361883269854950304554439657393105399583727817870526597040374578867492181917774291915956235317966279936683849567104397601182004733682252343216850809670659718125932697808218776510853038568487353748101218742450472224397595871137911680960789517307795890537913208580346767405684218526046750401011114731372246940217474003271307121166604157105431224587242686933816648281410302207722381352765829074911503788566943509232017641820642382461902462265069982162991288756114000860642247168589216039771517473057111478824864026071427468402473338030169452240174983041538134513754205212752585809592893489751421573619989779210235735123959858039354730293604747949449650480340668182998106973791812250425812191725403682443029087871103234500760314343412937964478211904593964935253475976980670690061086494112146930111299191827441482331513786932900596886918141473231990354820877078784947632056620764646791883729332739517751889075846351962789098891795875215689283339999566287197114640469406726708642522060014587658809186897754983376358512785461627893303208586203455893128702650679056560833313867376201100797890689929335037674932598327041754120036828957040165192630479332160995063231453338396682723488238012551855302774840693900033205907230619063605289885449743104361062168084062184276615516075499908090748061498444758316385409487985507131755748510647450324565428251374425459811807596137972307650130802052457816790213172975750941542783201372623312290806615489049221727853294527014644900423786057057950652045476924727559920819856673824000179130806752397453243189821366249978203491248342483353684410649575400187106942743406800659868949588928719600999780438370342538991733068576018860496011527615778606917341468744312176999299567973394614211712268491670639881513860381793463655429568326097404603491063401601923867423707807361543109809018098747948138833779408414927456255665885889088251254150969253281193845373960248386488297799940855463765898715429156701920358292516991700781147621802686554099353471427876165144480511839684446775909248607603851577160227284556221118030922812933949280609873023531154662646186853894260706589340079346668691341883360242054489236208916813348061284278297405708875014861010665104989721201400929573201899215375516238138766128440119319860396208209287178873192336569492749470221261345426728365258353589136776690076543427737465147825179954202020662078078411472667994688061698727777008378344995635189083193838576742862719296773130643443745790395809225074930923936478205434649814582155392852152768850079518215552103101878871136996713994262626479529058348650458495571933500513451196546156423516643010663858588918905253364499570746669056009340092613300633431282675108425632168333425615077760493274116423990648898355405711388611854371124155965568512971836535789102811696234660865329900971350441410425324275210544381312281023715914731363191722118477330813157262701545648219901215483666596424798589188331341719500607868301502386436334961581773373417229036471138365090498713537936188446313627543372995227388893667696307324911956389090240194229070101988565380698972742363106703053342733631959102687987067417999146239981834441216189199280644164724282237794093839326954196976858908270037525827689401627650403427163375718696908801494881238218604197635361487226376732196584583010758830655095008190033321994973449777443187160899593024484453303514772880434117924433887733680610667132420448936885299980159127761125912933201166448767978468318065211424738014068683439046471803360514355054601297086249657901343651565801458082398623806414389988141849107951967112950346205717712704352743515476190672796820509885906484115108739223023373850558443295204742376576509355335086197615538578120298142151495127119282884988841956704214063169333154669235728593663191299629082508007487520665294923423838837499455166875090404034132533236287976147273651952263152008711419580667286337557795949708624410948312697842822491233570601813685557101493025264294249488332803313074626930530094242460486229371051105676798084826883563779123059919918533768532308314317281011850736787372480980633073544931281456174485562345546833571091512844250217233034763295671999433361179543027211269028052834409321635144531317060145420877075205679021968864414995568094594938070746880312775547355346777964109062665184291231158167930193000218624001106360590904508654910278671217207640943069393386145538721533110725592091057002501814436501702821329501234836921678322136060040058131915706613666306715298599804821573550264297960377046438425990722913943973467666069123527225769163301097711545670180205378777265267244306976608891176784943442534234957718662945144876483265321313344887979798359744577480352633530068793360921288647143146871206309335857288737025352857025371065861753772153438897273263591767371955540311936524143207352721889185981468822980846421810261189849608524693602684380459983625751312218099062343887322914756624630654302155877379235159916680935445612249946774096238339199233467701798048696986877975792761268219769457021426643212635623926038632729913167966112902002470545199976687261014090717219996997394260280231372798355225106449939620921808028050456231516851339703560036185113094591686860514259839902612008459565206853663555850285728389295392433978542018001387242516455680315555526318313087226810605371873578710194220224532821950680332031653556983395758149637378770583916450804893069561649046744009181347321317727863660244214667294631784766128303082757798147275373655402118704650526404381105322984562673948980641046124956592313685112665386627689996977640885181926762035991184478374729137409877671544593949355338209350232111940367308147339552538279035707770686366164172020046880400250277428719571409195841611575667284024993547903714365370555732466782745113709180644617850953482905340044335945253962759767705788311189762434096287205274203458830294305194424031783314769135700751503879235496224372838221890605030273003658254944884820085270280136755914382642087831399034054113656295875847768412790012352438930957710323849355595823370231191491219421256490407664207097095635373259202016967377085100523736900997463272442639344574208751889494850895742275529794595588754951142716937288686501135679149595721877202629722079978428441449093775405530816963117103476383141413794414494317341367898172743789762916397511949210655191452527198243062315504179486333988065715622098051974876418645595605334005637504480995157751125224449411130243053049029987876469597282099155992481302187901243415266324749731923562094275792902159056731907131551200307690441451349866886143793705193110447746502635143885519220638338043692682518206743634110595684695925468763882999600851894887401573993627406164909327192822126040770757796424628608794121013165032805520664120766207051288285686960762773927550454648329224760446150851427046569882348316225428251604771403473724015433040394903339675189037196622598733081951177894568504512054957571535048195180739341628297898625562626064196802684684183128036912276753152446111575742161648107066613274997265688631368988680625490513036337783776794473037715200769705029315605389158112757206714779712872908107712643685262369046802250166315984719275283485490663162386324002827879654522967035669129166361621431671556031683545982823672679393230922707108508868024885518590915650311224750304017113261516167270934366616500409010154054492349916860890680187030792531022595697923768780456369753783734951923460288441737204744585437176185612441965596829716823547044011405370274430890467734887797186138291181168715008571979256481174384581466318735209511088899256737182085703102503293027356174118000195615770537251321966331546682720420962147306346649581856711826642448889602611679417364852354949633265407960845434846133986609526083042589591878533799856564591933966071598267705386668043556794637083635992923396276233010124463156014125913279301786066668518824667300435116376682251108692323010244067536860411891469676802446674160102914586133642084833947401468345858929130713627030554118855947043187912541477571929143857090952396391287787119382337489499869395941375786238732227285756551326177950799890967636759509093837746742967140510846658586080483630233432324174152281096682881029930486837275835991179065072632790099732392579115881435244941659407135605425348889469088205366642242015324771563310408098665348567957955815392752612711168402927347131665470628552921313256139858042559240399199544389552951659846997150499622444655114080445067707514544529871220328282671795157501666499773224293787792189630839182241323837237992733157291355957213486718575523239353272369647754518279435834046719040661870048414949529963395702835435096738163984410915507249532511399839666931675600269505120357701313144618861907684069756599645947829490886150784267684845796874351449564377042564394339753444620749744444500532691266072859589392007866455631592680818708671344900006945209858461568174412345126387272616652596642606847820349182606325686814015424768014506951947334592330765653582558646923092584414681407294081210991711983681454273074038837679923758705287405461733884631423175910582446367307061964632743030382129598535392577528189265260294142637545327070935526401705981561128401085145430290066349706937513423638726526982744815559065566867794361150760356253869778817515048009963636326376823897461191595665994380781402800617914767300495457605437659576097372190434021748075694999805198551719859759401432545730900651310714017832138484363225580593310715383412841474765658338701335437981700525455288546819981484120518593165999249505048993046179939819044941415131788277451582695049774214123425496225003578774029450795684711176362714478535601240542193736920010157458115744361767386674442224298733429469852782360236272955089345287766198530845239986490614753387339662637821857030707044041655208480955844550721700457639520121188075662468752849078639000902295416792405920142675418523348313866826654369678758614430542745086204401649309835271594923485930123125929686660627313878687651714291541020511898033084260945007140895440809006387176588516529759145964609257290910350898801453314397034452807582015268434120255074736774755388885023777373135202652478316327721897542675682713622303593197640157012306618028557872340715238793521440927401491978787318709779635762706321195557275676228020551469295787940692848128576843191315178266581711284389929669601450276677414771512354760660684640858209386815692888947108643320194280424187833631543007573146885494561749707643480396530963583187758823182695808320743871372846802235305510225366614107494456502184948372570127010794334664198999053011353881900461383743836377663871856388968514141947282084276211148401100468776264592232893436528166054687202936340317567000425703369654476475036320864108392535773489732210044236666097862904819536114634280523668983818798117240136796740223181794666011262960272583025317822595372282082370548487584484619914934834232417336530319595746392946269587259714312848713211085251305719422024974352927786189668177271126452276564452467661872804205376237499201670695725032087695305238320121550260790491067466412546986078988909664849460515138023849513962821972142965529745927344141823812122822142614378251239160297487991552957977794168152280755480325426120338017093746686397367624148765141300295376661177811772794332636878029508064897414782422812335184329357108973688415348259996318154385490556125279421706011151901463555578860341880903515718338343505844875297540612317094439784968414798228490139906291321517881421627486935934405855768798236750280314161356404299891115426701236822675933808178647394566307001366696055541147350524154543395794409632547157272146610423183254799318509958636037422157100306118432240296774762051349057336653200483981748508740905441482859665348428845312564164493425449806629292903109514758074080101639729256445595999565043529263079960799818527138276949078202450132624397498753137509381409657414885924286405584004166907141241529596043121841314726848813472138469784549949015754849468736038259267903413122054759412695623870730490292440488459830074989190833713487216002833983996541840099253689586029841039073271962659864413930896536241357508152918918756818897683958746426891569768041936303817708361413326590995967724749756434932233223630369575329676572260618868066795547496990269296023035822916058955594465507378225493750313038794479321475231081395871075593468924749866744380481365381099752036771944698153227160959529148346171897287689258917958637197486504454624962888274098692101956544143202496662897350593491832717051668070949976858116641524504987589930075225137839338871331214886933154199606007649516332642087572052395529712317629094316352868204752771810915604779131041207265625317181165134781323825195072856501466876358718424930725452461270068180845207703444183668220921872844383613183405882844513604735859561383349012355677775299378197468284131396110856161188694664540600129372072414457526316811169950757989920382702846064479596670546668493866759686779534620215742124817639826745591325124381495082300514572190364296192804854786764502162718849358253733413200201727971883029141062438957331771658669210550936361430203720908034491712558119645428700196012123634933751819822873904742384611424095420577151755320810401875227322853033173162503832577373664795605647993341872820449150852351740078749570923183926552958929411580619185616704363705889648366634403003344053424939719234653371218375015575189571728058279899188770015552549392522466498461152535903155534279349959561621188725173692374689820914482239953513313084235002091754814060478895849041249736222177374226085842513680079280508471610320837944134701678404808646473020777930080340883853733548511855330136186376911639640121261759305871374616639810329698600170273898073490473481998138810110536483873818096413113086404991789265797825128647593550840476689825879111605292384787838913494448478578438416356921311932013273049178612216572791739576960275551648926808201245590280959319452259985060366399409449374788480238932550571281766316403490549793543036395995538136396189920923223053070932638761146130034271691238723233094652086538888512313863937461775184250139796411942713443752403219918224478150892015813609809904135925764638365306493875477770384149159821754060606355368501842234063352997350245406390869525102176838171545266851670046557248223578825346535859244027295379547465807324568395697923251683736411085194617826008134029576100390665682761390653391666721131577717177015953955855207339853104840047286992665657404961163655379733196254053323646979080316675897464304962956179635002750059226004134013497841868613717726254740994287216973543200217514689433032302385299138600818769120901820819128496191798722479166181480818613263147804978659513092139539997852382013988840904430286609048854712267106810085227878924665823854711375935506718858696238262732425214361731717202913507145701980617351127845316897181407519809819138089153527837326841419314199791650604832928096371735469705046733623651827666021805060096820238414031107775752269639261641319484087707538897775141585684856950191782874209427031827187651088325068352000464125164807749170255140225422272384657414963141496621084153782839105164698967799362367669517463374974368371378740156040431693986669941904818381788746450730250789738787427113800582332931183576774186458147113048485846483547195820023529142354214174134798363928046037785541167298067287715689386808677198641664324259231488357013624153104010903603116154047983252232225306620104358403944817015666954757851665036427840881766855270400618027126500520573184095833456124109106521567885050108232259670613280709340365499097881131046256262911889522496542997911018113815901605076318924629284342784789806005854558826491299766500526191741952251005144993286420281116657964548573573940223048749733966808940948139600972153752261087429040980638608281495483067950374422814956781710768608076039904064495085160714267640295730670227050222586657038101256163418409786468052035015466234548573370609140914172177643482057225346889233420243322019805669561107017590303972481605276963825802536285747705182141372140516760211186247705968870264289307613669917736786673309887643853501142390861256781554674945563630224338586205357159278765868771110458239458934085749117141218015265600337323257758067097807782340720221085504392798621204468204173839173006155674858489177059094322367976311512049200660087946414001694560135178476017752420661037483803580287533988689401678885033741928346342012946617761493053095323145414137165156356421520712521911774358595663090987302094085762916420216764262339407524969421857851227563636820763164834065108879400718817000071252259300990742980707281288329441555150791557776144014140604152586749146982861091730042977860141208837707965117391587657566143942380459608470533880015493261947920848319343078736616848937801514975118349474458862252375342945938213058005362225303115528871546686840583393320240983896731605691063215372160805483053286072067893819443390257984402273802066822480542006560871625824802052862478645583840063230350958077834669133976577315858543178755664061010517888879981318902027434594299036891164028527852711724614680361710841191474730071597582504069699294278774904517100408417256295883715431178738836905464436877406628712682174304596870731310309819685845959181974168043796649240797995296302575717925141640785392177855863620410618202631311403572877571596233849376598252978716353411186859788140677630678241861416689170744890182026718773805423393651949713762371170344980982423327791466349281757727037203743242403874950491795093194502332024636826883776744584895132742819057809608526429567269497124951168638738598347746976494852644313826699748037407711789759197224716688718563358351601702397832689924517453913831910717727759671821454864607459535630511472332223470257543519743901810986549636875791784787527792539524227146231808034905385850310983161460867328799469521768501678223202770624799229436709065866177944207137603233384907823219543632310559513763190716747666343476889838354276982096853831333010696777044278544286675395302413255539145240698779990794347732174331624467129749804233210884498826352091082440216814877395326297887604240894924312097000347944676808026710339419088776724172240411434612749621980541525183805817699493993905777476637812439595751823693377567637148151344681394534552592753641718023949487756717306706929253957409176781016184284399423792521371997600991962300514281944856494955454583537540185307571853683485441024630578815636994468436926422688929480352590844172980245723328282468682370943740782636049225084757220478755999568455760425985392865295862220035882766664634120046605603288363038176722119241017307045188364550421872417647310301708028009063004301845958835542039155345344472486854673344986514520318267862381651213010976692536370076142500689829551964429846029720394428691631758459835117927272992803931911711542742639167421138399146536605300055927248347676963070044511420062158794327223548768868558578566367184532660825955133963175919254255310590933665713980185475864710458645440372654433749201421246719350829613862733616863852858727920493932095373480153952190394953362495134183613357160326301687771086833234305309241356453136800012445673846963426304374758132960781543573079416698324400491695588132338518073176799616179487160038509031641516711683027670749006261628585700650260420946712549138420102105529442509378809133596274539777141068389770358787496030717646089988221046977330291350541776162678856255446518355899839563003808963305315722612530299939941955149274068532177569422723496243482792591743992644823896576988658365148228829063874096857853213746155188857095469891998089548938925816399418356530706215908840731925543656730172956644443585690569186847321729795719801160337781612850223975774683566028401337668161564851493490386199687225597023456005632486147608829913344468413801305914167175158801538491673092726854733395781047958902196631035374710748275276910466235674991770003433887504302456406269782540764760011973250796078111347832751972961057808578480143837262469508737382462615977342565939449644153754692123593759658876830624289737947990998349762104274377216456004228695314712484376072310423027975307466718000061549954412276195098069719167564666615189013688102124447481182421250601564421096026440256717466485478246884976387727827010448358106430795686942734025849229418416573926140315801228249239878859952039313130668537472409163904088017333656444793211153096734492702541393433839015699546340455435551963240362090282141519344660818562818574717749630356591048311852117718529432059409327140946824145204745603174664885204836847253806114959957606000879385094607197473087015259221210507840033665081095987120254565184694264846158374898020278222444037788077779724815956237407524047316651581553379185256116036768696465194818787967376494502856313704562888442914592335608058327326813196213625650430451597144777678856151435780837238098544610803394938337754081185072335805877613861202930884679865555694767167611213985775358913428501994497903198845236254940722281178734424950071222707096288241714663518262882646007766103296236794150348324276122974413050482058780563867851990503818083577703957577986924534886639102862756841224974594035290461215616190928497861770323878850792801065116888595556720781999497873281486744403516333770780087649128344868105472528105771796545444646694015745089156244555734190902563930948925369734213737840696292445220043836459431947765701041340024064365230291030195527601850628211695679135164758629927941881922183445289020784283588930079215142331118071141035639468671237387648772583333500767989343989718006784939113602539186530846057897919559849682408734380982502504524644319368632841507726379442688457904712384585580013771882072612275253564114142298437141357875201268432585219968001352305601642539937214453300950259201468595269070354336567819038753508006426010635857626039414824658297009240588416947914225688215969925946231391604147182376731529585115452915977910447031966237645115563655953118514020676276008893802674929686471559572566360852830748138426021139999103249160343185580424347310132990520799316442327718011942076236672689927000376434573130770523461077741150419975250406300868812211266947814294860600696702803564553810603668867756903419589549811069059257511616495287504952525009894654906139539093393043461649396521415005164521574515742439672564475985234742353394796475758620471697849671611879698762264141299588621724158253334097068589383135304937865503182802926441930262204495568959620126851644757512497826032302179047433651087470956275588899016801817005256230126156685971346349083387913630573132561443147024947940516637191208055203301137329548855560075858943477532838687143387236748017660869474808128780694948125826087525141786953975585188429498838107420196698970681858930937065507632915685425823537263077595513161416291424294303881684247021989064869532047336656218430577297712922330299372683123623826964986489363795102496612251372489476471834410881632633899847053420327042552999323179014431340857003896648042105926789739178814066841723402529704489153386989214812311012536936023551016588969924548200170221630046018324665489350078816433148308794333987358366116667934768975415935432973785728361036754291276016193912375664399500126344373321948690644324975099281946770427365358394322162023087353688781741885456836482014491548132166344679085906765800802652222911786567509336109984273179105590588086328934749846505674366093653201221417852688879307880686035613664384999923235580773801154101323794594555874071074823301648258189501605103169786868401405105625627317264934663693380863330439646593571252215061858369814279178259376542951121735763398291323975388522228074354157242662096505500386415432003526143857187539473567425719216928846194288947793680459728595218551721384323777144500177054812466487117646896428041719600270206859442858328746593280986248098717419291987042504546647997766244711010307825984495870399129253564851170719563040129415526312949213347810905977038891441019869374060954006488894976983651490115613218013872270794517267226912952711931192451722197044461288633779947195775316904021812271926770910142063188925846593664418380391315287346796124891419856436437980904128255169445552126614650583538959143065433727777580364635745853625621671528362747674498097826879532296451662024198847701708096034822418029735806365679640480668858727546757309160415759206158495792808200875167332465147040834528790825637009863189610901039197919694625383492840171684609147748483362789749553998636593783576371254181561332543435227194304283710053654143244168420263169635969453367651368735079515229516109026656282071668007808049387881638000915345428022280202840354350419108306923783468860464647724785002854404030380653381017459258653714495415262536517343162979848087405045895299063109976740673440322614822268616683757294709357950477763441103457912635942953130712892918901725524670558295232043686710984830756439175151924289041486914755435864333317409477128340820339579720571385320245209007037412439081360524123043489190027180409497244697606963850871018496145344049349092646578730294628147413779177959870569266670045500458605549207417490952941306616230036949181833252919770109768990966195261526958798806474639763304975466075092186221162775476136462427032867656287752225086313294852648216998723594687511970882025858643358044652255929903608133022849877863976627997540823437119002434116008515640850600371516056793453383938939293133449126973497041377332693046384746192048447924358291196260839554712854841154208732482626261846653635710518867950034432488199117428582818420568984478236638074604295333661734323139604251673323257847599170243052277065628804227816847568450653545891860407104255231907590471015281937954202442907003337730858471594441752549998121548725066781894648309196341279483436846982139435285621393057919331002243971843470994843339438607670732786818762451719375599849196622331072619322673147226356068388512180060723469394735337559363301491174651269931462342417021111197217255881109598376798171746474379047035078820605770408967778326859801498623988739120995764079751708569282229869047939586152555213138015556783897122866410666308964512896195832847177488577791584387118168544123705502413311905329825669011663338116253057543154869744611122964033651402515372279570444456126006803982805351745679459037131548823417158703075000204905133120368211016728710989806807028242429572811386819931282451776644565296133392184445105470426471570418856943651571740781616724188689842834738578969248340978911416913965853049121956582540054146921642836098359858384133705902607095887987288744417925612366592966783314767218968512511233814929602578179907083073751618934598065834280407071714124276128693094294157116533304790758487179392102304450860944649731414801594289344841115440416806330945936672208448479903697820734324074367031793408460823397386818660307267749662460447853862114996002103007735606582208606717403704829766071407777238905330342494600200048172845298285340153276755006931959695639127090523109490387349084247161878150521556846691795692286319317788394187615434666393130745590322788386369878530243408530422733174832472522345618207785416994695218982619481584845900073360158969261932763499321397173887239571953357355100400832061160304140706749943405893043855615427500974574114220600702254486295885255882453577826877565451443110344873469377167388882332074622398652086590438009057757051883631572442257928653611782318065241647737951890092514532334011264874191687292517558502636584644998800224422078152470259287579069030719088835647406860293768003807681339795596993911002231971806611647057644636611576258531141497877525899484544492044658512384526623327382012573785052177817864448116263728734562646032717057856249749228310091472698225587928108263844483158316494134359941813460998459821679304961927887466673047912984744956873099372947899374252726446662174217000178012175685953134169057465746954666627101715193763754195616033929393206417390895295152382305701310122946975004244930005884272577673898009399169641174926841061848859566233768779389826993933949036840904067705498851972565810132081461337532383123086462794453914007073468753582085757523656451342996548728007043343397322167045133449050327332774657315426331837392625639424026696246565491447275538219401042769765806916650086613561021179972911861846291736617068840307833358183982776751754040411601100373786587193913774278872368998245727737831477989465848655581361079174882687168133230884057306401389038371345323070120149528882753110573319502073882448189606139498553583268923795761258218265525174475996812423817123147424773705185063995525972362045991055248606576370085259570784396229903715799663715663607249990847247806091449699463822843374956371751282104431032274316649231761858733616391820472051277859743707599977048137208322522847352246887212369044188176580566875954358651622401275510910009742495016128889213571030042293052158987783610907969170465683340168607509666384632083731983070265183290990585823504374214386524259644277313425024420507341524428933309445892038150206892068220619820031113921014379295232224418425539740763063713743803210981708810657475107301984450465993139118639121816957043502646982393862631556457767285248258624405511132092312723962321726146159926607250037874598127528033265575156837414261345772372694189455544880058003991943728451242983920242984409229047337430171207987984584598755278940659333884450446806524378552563176481072278200052123207382222221140527501722319477115814043700096179657798289576786739772282008442539790511251462949885276569318095793544505186179689972815146121478938139806969492001937687936990879907558692294592158615588197143991236390732433616674653360148919519333475282948051215291100611490808671757601756861133876308335215629210629416408414854677473520922559496293791610776883955181798112719048371898966466274785252460809508543770415025113746075900077519730533985863562838232643504967597345374303904009066898529732995910979739139121222580525756004997191185827872606623027418621295216089980127834471421555843619039495002412017157780229483204043310565132837024939119055844624481229800018057825581989828535224847864215662280863104238052529484939210303562569897447324845935272926976497584533865974798552852295918222029582390424710211880167131987352493665773039585247749835406193758536700924819803334808404268656929622433776496213655154740396622734507279510670091678297942830433224665750523244678021743101310081581100312956339927039806346744101837504555552956034388353572783430001236732909756249263307003429440926862105429055874346025312500762328233015289937405539881632277097518785296247593428548718096707965482191560868806461589979027289208349900596542495120653842190847294258461410497305103835852140319048626880844106949944120716820249482122696898089270026500809538028494683798218712926424900041811682192715665983215543433737964918091562066257898334096706882107537382975561700146353146543304582149307038708924843432133524618510502997527081263581484710209720359390601471681359272133965861024266555063575203874316530943081585346789280064159990354873484217807395456531762351662252182011888801553501229664141226682133949363536675044388112261568217266971651680679070322635658702503715281493361468075593361093422548463679355177600135649971807794035132150127714865601859819615144717281722508603275320710290065750290312908615817877875785983588350197063634916827011999781781891726777421882816866359856916289570082976748754778485565457110970342684613510249275140635048078402376376288325137627301172476797774422446262991885873250099052762630670513295113503051556839216681476182171152975934521026167856658292438572515435885991689570887607379984736832722399469567196030243041198357892364435496112196002252056140093377930421772244285894160109645937776586208710623714363098904545141107181483593562351630939604723840700174622946167897401383900625044229506651783067639554141149442459408956091458463658158227440672820484188601441560806439518620762488804183554224210773366253106231940185237173224693117782359839459618927326334004238542004896624993622326417148988625738106331964315459947327010723489163642632387968366258422371927363376820609993346089060715999240617579840689770161677686294263776874827886118157753640102501322946466858584922018266817563872866505070080943157258300847268273478264058422626548658568147395238089166860437234639104466955170998012756210144086283075299806367266021387119793385691684123691217198894545549452423784194252616243136798300091693381395975393737031063386132389837780931170598956508625138224462257503708543482548462197825288701054981373276437528948357503933035921033055832595449592080976860991119291235162434032862933852777725865552132739744973481155004134219910280563462751765686877185884041430210100028031451717132272610917358069524374046099071472893568620915392000047913988351576653679384823099632885978915112594305421332936902568400133660620854032275787361317585339184597023458719174360311366523024386115524519119177082320400937442420311377765585419562712182347830114189500582487378029762972125262989089422935786230526325750736858984514496995229678739925998366029562152246698671652182807704145573291348633081120506000407546949398237148822193357659467892741191537214908180319577869396050084517513204314161216450731385039509551911487385273415870388801080021336753068186169701659919807909703841102950216013460928914806910553221038401760511497303178990943735896486133314265470842197743250411617272498056041587388298912624715432402164438645648113887093670305346511843418996281187639039554916894839265762129372870901557516058440147576167241952358051550519417397286010838684809580432108859465186886658456988753734527027634272488037200400631281917625923592787379564571102450131723766019720610996254130763001866563835632165694046400063831673210801878445387739045976237528545227384137650890375345154173850472112662153552317423232423455480954860206321145788526984025477505281483688933846334027409039279495073429389872821326319082679064895352261875543370841585106546312934677171514642445111516059337408290954941289032875398228736085573230714852867794386902911413548751982498325309881884928460060190643913130478662435359007942508229089465601809727501446328802665205722103126192504636630487006461998509152527404778126347219549766349340731217952469548844651640025761443548542697701980563084095457773146199011197779743835099032183289577112134155727696145505890246689150520178646787301938956255727742936566187239849390338325381532451258245242905875210679067937347250047578505137341302709699162648603239237597816655189278608464305258376973493990811984426640238324549294642442629569989885925627180280906007247515254936828407967890627800789723546687855831674324297144918869720593293680594966680662251720191992429111096583502494353458036822933246250474320346549428923259459278508835150409930209092810382589549319817614980189927190456221734758546222438997936500749821965532527920243913250514903855822386036916431815438509399067746306279568004728271115607934852780198329662388333269591676203237687286229372434065133693772732589927728645872506805429724795379565025573205866014736136833549939447093920551236579583928061952511004739899968118880761641417500651698443800555882538798607736248950930238581063884795365872641963709542143234895982808163069203007779749482743100247457958464627745496665493317227619870503033248166135557558886308321515352541541803660569644464743053135809870326454567761153033235329082679128183627243706231388388963820329802704614417845834429993027428416262394161183750440443472907749395778500310426905555780727684559582422256890814594970015861474963229976999989512453749766333657617875795575407811072441578519961576235588769116120284321470140358944724481894882337610945192598931999698747874839562198570558909063332208726414247591314321289563691944612124331612780493772646854409143905382976404624764743363789521610097096763607169044666474641056035527277519479602329817831046521936911841251071932110138180782809397202805803788608937593336949023279113070364368386367698118143277487393337035605892706264211486863532297453380525711990011731937027562860360944870844567915463184526603801405663577416386791641978943996420720492539767118647002152642179424194096199090867252063069759096809741024833997267790314315848178503618930944602542362244450227637997266133796993516309741399745667483706031646175584247759228575900037598693649707512879848952773031841927917071799619217821279727457301030353301718799111492922118499122255363937806318680088583786115156030396243384663716387193017571517213865211780479274447844483792843380441747259770228212840395152947123857173140093058580883622508503343572297846514438230301573843191605534746655408359635614460830621610828115408148351562591018282697266032073062045860578030553974450057082621587378194509459063795471027163470620003298901939037592223952434544219244133979656229926421498334255886448226288212632218686317650469402656753488542604665583346425164016446893974658962291160324819143211783074392258686378659580774354164745789338495211825566979263133122857996474675649446691438957669647545149395566563505108124574384381772518651691391762246299788739687403621909510684941137868180401366708439280093428403370484363573934135024242523202809162342612673756091586164888275588525926862103740110450954305055584621878581901051989271532297063560335967864509963900541862589818211388435413799250132488188804616475769577220246142150301811590576884216921404718337017924988301708180253875302258789831892298350429508377077784768311426507535891125736565803401831025237456421842797530518960588164102036326523140040112598100058687705047410323178045106535064767298726619859979298597925449679658958687573027494914189005389306841522090074551564852118775032111441592429906281905322707002313715026404378715911748746761971431855588726886615870542692659125384926219355308946881342259276305473523485323008504269788075743476470935364323319325421261508190022951226742680622730443878570211233919236113050392275167189875867333065484184525547664371646288934508248202626992573848621840889984618901995773553141943015512291977157729891322370568594568695316388116679050138796304621230682813089994200711562704800877104421816246562006919093069071630542332634022997275209957728925456617978320165592488630598268739557816668964177060523076145933876614144657392302991047376668974597002149510373897329236440726867300640501343833809002232528181101766425932469671048207547837558278768531007163007290971500071528481197310625353780015216635990612633376888325113246551756155739881286637082594336726937739549486929444257565493261749894930982600975023249872894799526388514398096021001959495246062222754164316229854443845984201830730911866581162219136588570373947704993755319418742905045428584719291051195448402640174431350316956095136367740354224471411709013393915759390954771896489159624003974932785021133014616669517597237950090986930693784455320195469552028300586288128644522032724971368745280032842242008222487472796061419482827070460353231300961628739187760838149457585802404085783189685478381955264131601114961123008584645928208646040698326705549584657685785904843460041233924499925820043043084335457403647803837105554606778859550601027610613892941651272238183874039557840943298253312443924605440531136081694829239651522544981414121367372949929511549410818032662167399416834151660714870533076867121933567959527722620227678220187443664752911868222138000921194280181666557751037132802326487081526536235524580923774663967864450286590139342663815934045765570968098227191667446394042624462009771667309485533481872314121241634430069844619521069579825470039893922012318041408453175744524067779791038036886673137009878104112968803995046406920301231167542487580873777088464741186108832905471941848049667172959656062875435293183859028050998664148894305226497233608972080587273637455491412055532331935065018386219308428966870394975797245739184921472266071443308526127580182922750388543569214097728274927244904952494890019557230208949160215986974237874133528342081358573054064108718323582653576355167757455765800019640957584326636604522643173761459616113817313454994834153270770254538127367796510297260173451793975697183294022980921042509806594536967523943942900856980286734582170613056471179649937944876084129333097506120384525054065298258553735755724186286789861030852957233369185178848011548230446902969093010984128847014944299371867855032984856137655205693511848817974641525533132446958884702104621156796127328384338391015845452793254622554892662082831006140089029294537404954240965391100807703801420959659794129209298518627160766300632683446381306225632025374052529324235743167338043604150667895405901577076444732667656091699134648378157055624575095431406850542700098615560651453816331754702673425697107440439915495244958417196193138454828577994344743620855100773161707688720988903391425308441352455617343796486257085312572275662500001096664801772816773134892732948214035877218946479400071753572761079679138987445036788829337473574236008027232615802829960433191460925397771595387350861338075374592769156125383303941118030707044746267244404133139162422758586887638054414462203707186636409464501760696545519587595308189480050755122520082943142342199481674675932647196935040783428478014279581342772153639425401747152574532434920867023317507666114424232219335409517331837111990500945055069499019409459320009168770724353728043917988483215076962999183807857171500935137427612900760171123931239045261872395496384890902575173440186901196557670866230761363286887659582143463446942437424340428589495416501931966886596085069673917819890401542091573433798572734311458101127480063972562293963248357605233355553962571226214074789313159810434127294257514024079607191263317502856962529512339577276734952222758812283776210914203662927696962192111695376880300611515819445114394708016039053393119883093514027670243639843747121178784825379862092005755089111942437441502738170774626409142300812278607875409476403203986115585326940092827100504990301743055307474230232170097101480186505340295311608006235893325355554578643036635207651528492429022263908430197085966310556128556980483921023961561598993057766723249822637411228344106833719228975032160759249984305027074587597128768692996563131381275636913921219367048643005721839055366591162387181048974542308304285940829142122911424579039063228617613986911440485125911570391292127722526954872484551599976334836865383636626684516360566320044581820582531908135049820278895903434002674485907269993012036714167603593820589564161679212091718103742360999258782199268650267341067668455883130233920936939821970945501087587657882764161937812364865011100017829399660860786623193095569273758564179852902352413331950916366839130660733489984685966995851262101290648177407154638354728772018996696163102579627959347691915786571447330039583753768209552461594057760482976729203149110519398967171563936504559512258559416977488153833406003805284094241471788003089664721193046637842782289977522088412062435484254542709809533363196832503628127384268694564547255798370837654810791616316428905249614903207454391190651206808336370133855716060993335810414596683686205940609920429735239363334254911234831337542491452552532443833736660380848177184167112318038552237928434112429817043458350997477450161460209940085176193531940347717399949034203093695476673942079268776749044314012704260914662705546233586598040278304105357338386177931805680399882124165229023705741182133458492083241526451845242154375083394585862422146139233049977609347770825665326902053685160129252653991657013277135375451918304955596244391623887635292285211292455074951170822223577999709151732058489408118099786870111709766068237626237506361634232429327186872630729107640410564347643189995871264660082800762615620116576271531141402064622935037797279655810667813779211507706185082966650750861993108138270676384133212798332704851315814803598527022142790840902839755377881780510922088277827299244461139139459818856639247378088983983473627903917451095430322911542282377723724995833231099370530911292731490863658587579704315204877231940033431618770753463979814563301905615180138402814571648656258295927712156726900956058005629135268322291329664225207474204451495016996624672046879757626937889809227843665856151072765055361255564769509109311084063440919008819805902318304307880689238480904107933518661107325920685562380895549890596741155183421274501559772687090805924288721857439785175267641285722735997640116737064907496756538010789862176438643836736657317129459595119354254493419462158866174872309794035681958380744399540744270038740912898173167440354575583505286374381472664295075469954525053660147108189176667673329656551940254931865697361376000759003774748312961182690761568903060807349955709798393481045639624279567521575697300685168398441763035602676830094156302142489422913144801009080147360534188215211388799489269136045314688985479462215562641052715526676157759229451331687393788450461373546581364125730068329360915526996663762261292720833874846146990526631697676078300030370474125072882807044300767371756852594358516994059431567777689636751666120105052874068208694904991014385865140683050932886160615083339273454842144296023684601969513183094105418581278798946974664764991399261587879885468137963110906234083626012112175578283333184864080236268346118752520197352577091909554953282250246870038554663086206170803259566629276342537152159039628815250249704335253619617192934847410740645179224721889831310480314476071234351907746649011207523109503750656792203012781966406476460738938218630699406339058479467316492694370533145623570170043737932354682400687311948532100959340411345714572290582733346541642685513886575656202344094847701341250520323792211445925063644067793247630511083597443905707848825867035272553444971478066018876838739234495537561391124348949407979333091155964522377334787510116118744547506108059497015314469351919217231541517467009751728338873023897261675658740434052671809897525505064707595114254714133959715503627854284017798358056982357189744962489057595270455730793370285494269485317910033807302200163919533561384413875080101837486956672134933991591655015505332299072243221523920298860277547706968873074286549536918331399345698412424652447848722779388377980974649032572909969334881754310097829425277431462612149382291940263378659725684346302960116489163888882965376122321205505955136118777841764598455341238961108096929183144373316366959580656855317363731641756710538594173271539686643205350849501528302284618988241080245360351782118283461449103453617085958223508876180222657066254598501626686648692415925553698453769133411013073423964749131243516424472570082565165577893653586724809879693187014323845497016547383911028208240731225776017735695807409878277756046537386087869393084489958778033010826164664951294144352690147287154661234032736920412662501971930773486899203054794377551444129539608558660356739812289402018315929861069800535819662507910536389232620811894139985256084681955254125373433236978313623108686191749355291005715086550219977158143670822778380955052775145575510990063555304676044023968206313157433284099872098830289622251534788783694487692519707369430771149060535283946116433981469413086845272626662082003522217921568187436930663730393567628589306148967035135655948094489047399856762638410465650161300976410556225630828934982834525954407723161667019993608411319677736276386932768151930245418884500594120150054182724526737409107864504749960241768853536146351835120405643648980407140081805451074435309054593715223515921215797203671846182140346441206618241183866155263088342919640721292396070317055855819724722642425937790931983871797703565576911501239736859943230791388421859246915814936675455276441926709817634614831730989040886596160068795371985403174968046914258691076931688070031964843199436441224286897928485228430421316251333509623156966868440771482742264026587640422420988021276087689082863620975621114323540098012442514258232064086141236789207975443730696808532620108934890049627024697063986493924498984718891308295307944481196585235500254023440039769550117737283163746093355865556038709237748026002160087325889092561102050430396494658379110255523348731933897039907683964075879185690307908600086779841757505470394684299769510452425330364020474351864826557751677165077846242922112390344532441696563258723472868980560977358718505104218728808617811651775117265669813994144900694862679967089782579333976363065263367340793873794228866637147495763422460201596617711094656020109432612944753647459962190753455003053923077431625698908706242946609958621483431543136100462244684257925303091467250307799347505509853193876757146646843576464075776311854035527919793031876056665681318930167353857484231106227487193386731486564988334168408986495416887518212269659648486883796271390263916653833009807042744598432817556825376344982271173521650812922109218353322122722902206011958719818948404431257903449543776840822622937672335193397167402804704345105311849742689863227229492705763880337073135939302555855620827165320356265997814902148344451825170328192671721102797494143683660916838685202144686827690931999026779258806618371624161535393498080475874511669820125230182403849932995223833557883280955862032747022056728989066973489239664779629195698688432883810000284966882595368638281940077187937660169225674629193840672534082142604427224891314574360995605744072504408386648128612274909374638603511586458583705540726999248716550391835731575798521581064807069076145683467149221342056529315938097167231251619596831658234758732593623304345094624917362555207771709027044925809674029293978888678615023372736235941899869765605120058024004866624678035427259607132491749004528710715752779694121957702629716174421686749607929682099129900825170135244167497359417367775569110857851434116367900406292164041230868262569621992771285952613590183502757717502828022564910302698200026114870069620955198548292188810416433171549768258572416283288618214916919279014388133320694182913646010860373217283359693049505211597216700900822073765641058401807878917604647189209110952034890530087886617438316396006059351808460294238669644390130900094292479011272889673793028312843680619365221984307837007862407027890307445502050496538513149264474955199843441889815801225807740285062777392194575708508184511498174127685975773226900885959977311613495489614109523074992876318463851203912169596701956691459676203737274210963204263865039309997272973282203633546368645209517306797932926472935442291539239911498739787944317185147282611216877420721249994111654743121205358430567864599805393759830090429380792494607868194650431869898836456145136747585580082580512024399258279270496384560633625268217803807375928194460532528438243140896108628125120923277497206896024990606638667877895054079183283200779006039991786865936043231193457794794592992598797829894161052864408907771410923510705568875889945037141547670097579148880972932621589656798347315417821730760682119517468418940031813143436727182380386595825240964872872701213252018681697536820692062755825794495196789108307912932407166363265506898755181200365673196229426328487620796505538061604257374729615372751203215896390720122539935951267691480290152831869461975873753172230880117012468068881408311322956303488231776127337252378031728279083328928345602464612838739608978957053627785843110644823242600771202230194344591032065032773800940503291337858666892620116289191936569028540648496508009569397734999998632721984338409201129260412618457678649292569134536685838332706744061394832206068408593908464281508698900851209615591826099670932972818132989252575558321306030878882971280156219910184882729284578410913171070011695922586950141263343471207032894925107334024980679487641037627310607075775373072842277147657863272868209675444081967131404478693468135878023610511761421842592417927087411913552005175981808116657478851307059929967230384415172758727471261891344665249732549256357199373078303524432908325931891496771030147002233360659784826011629204950699432788895834370278591400200850997309818920936138503769871681094389564638602073105720876610205215260459029636453596024241642079281571263596812706391225679836302975150894117150588004477697914503978933772757371772325100678510075733833915166853511152045052811317259721726032510745484426144323728432162883745327601782719485462542353687380514411242189682505112121981589517610092765365093588445621954834719429935928204371653791970032068901444190325572431052102007898152429529749849226651315207876543728593316518697861985941488377729923421454966910986237803777229425419333566765790381372304157167436942783148494858991562260500019013637171365893635096713216337611029897480337463567042917264264215953817614942506374383932092215107267025058827534821748407013546499323166750714308742203275804602852749487956524390724141379013541273477264696762830973212258449111169034619562795807432234718274725186475990014106387756893674466067281184946167604918772889583241260284176870919225177509371017635488427618376346382317989625502225991387037857415653082179931490198458138066269829767583770432721806483322853543779374572370691036041222820942979041247774366314655087652306040777542894062989787363388979882139122571196584058248558157874362046361876134606028199444194923736906228535264832086856101664856738727454970012529051648815087525889463863630234719451723253609783222891642035920269927192167986954835765103123757673051874820391395483703177615899793523263594336872802116221041366529731530953635571455803426285988292109193087076480766501818188524659532104671910206232480498557067564438988864521476973193278318260158160798527705316363326765467949174598007368033304700981005861982189981572168705721880402125968077763670236328571393116637069851643889708019680421185584820227820101138379252560262696749737679835746296855363251087674165885706818255819587921950129664579465039335117076856091263253789500297751682390507119805751516589456791453606509717056305068164178108683023552024879492820047546830001732440075863001150877323187508604039627929188656982686315785182529514520236092229114996146780767220366079891730607629037329425186639446865999354033994319935069686474851494033164750518579366034893395815161134413856994748779089483217268147351487502059413128583458310488995320824765138601459603796187868100903875901617943530571965419054388566119927312746699078871930444622837479698526841709196749672567388584658327823243934707734801244694832258083708008638527086408246711692458513667236728841718910261759207406586332735773878410473661441449029628048915906023002409805198060049819171472893881199065756373441381715495693407226741145137181240379037689926281491881426963893631121883772548379330504199009825860312309865568962907250790288095178624987470063724883009495112432443055476893336717538403514272375318781296246512684673266879293380135078587593645720328220329620813017770466667864653119296455612685932956092744358493884735905378419497704733222905199543728034185871075515362486817939299745471280661460720476281522038733070214121752801580599679257512961565525209439204015297417145095813374808741478476233555279268025911658196185454108141782855174843477987718253190068282733166892502232050917137629462662787985636737258345903695988559061810187962944703501088502711765718431906835254577828047140142417810751884418312185358612185015215143076960648246451411929275541328294091384622944517351536627871014671664247867243056936762442990886821926210989994762206325886918603095621316775577232254586989449462899067087823264715253223978062098167060166686715514819406888196898626398407397168273714155544671723810743128983599516501561845058634513358498312593268064078924809733784890171918925483941032794043277308052459709091046861708156242139259107650803509197384679473887198841104245201700749054722041124402561844090096303250158625867978208316810640868672574857873127956422661700492536225447804565399342176380438597651068597076684221913476445883495942315904181705769925842655042644260107502296996464384209215566724209088548174304832693145165154676062779310252647695640520230458671224145943906007845395650353660510645093484140002486444911450373619558963685253479190589444489190127893267943511217693470827830488000567225813925839885519831251413218506469172043451682364926419440726266370871895610350590224404264579597781301013352662603541153994163192096459095384227144976782334485799320736638637461783555073389259172555443012157082220482187622560674953393861768070956235762312621224879503344022861358813075451175842191537985792776080578155811836709289976557439529962236135166573347347549950814334077102922634522944825974962736501135221889702348210915621534457301969279096323580586100154967893262624076362726376750208862712891110445588130984574083218460740485530171086965446313256265578983841608498040176713410834005986536076980686194292006827580380661060389382268366359703732831723807228798173630014712983876396419704616439023912559716899258430038481424964519501135299448819965489647758385313019348787057922495960271876052641952764338923616808344306774442414623641757328062980333210565880307579858329208156228838482176946143879320755351281297925359825556053614526615945368323852059802917950208888531695477591251613441214515348709717354502979360022669155522060781476566672151325907710037962170551123019459815522798948287773567827548362077707425834117961296745957811507873427906007157417588000917538926150252337826320625873381634714440034597789733812849942415120846641773321960822290594197604023657665237060799036952383191494381962939692904116878217934091660968294689439803687099698362516995820604252547691822451864787432520400793494997597054614018658932054674099867971703514652101544873856213215522083455578497225200889877728822411760675627473109518910141950871711335467452955359645725191056357096294697665201741840653749442460376298000653841572067011803010722894113102340849768382849238906316585101753217611399454278824882284985698989284719806642200777488392416294034157810651847309692842227441369697741808201944261407487453353570140871919725380954040959204683977784770616809848910106357148961623847062407479613998278452632179676805684355501073903055951952502870100140254513221252480587294748293295944556638535893662649068372135564565256099145756029969546234226075457738118457113907936362075415918611161102655318577848616232521667044891440541106679634466974462444949508709724465369937386098380467454670663680076001140573371642320300274966081136287847487597552764548075894186325146239565489798572133451030843187347763715086657950384093087316393636489483555247005006039377470675082864781169874812945253416575800978703426561287949920467738067308170118568025142386255159976017218812058212440257385134429126727067984724706963234908479589397937350627887439750065013412574465930007928757209094414545288283718065479324383965626993765260242635527323958414062760543720869448415707087787806520737342407211871401922955485808271813931462159711752163458613003940889526029103963761056359535978685118687687517622332212622838051648527506946977440253268630964398104496296166390299712290280681842604653246950550393495434863412395063060597945149374065170167497165261217730827182904850113592738281333385518454396209017663085218956261428502212802360141215515612913287766212739168089770539153298959852523049262789825176222889696716365838813952939413407692026310533750219321728312148992679971718548231427850565207551716694487477506337687384710491485341182114158501181226650534799689802090634144779483960294117063306155970904263135684691456716559937008755986217769551739494794500429017157881067166301376309172977941116311117584654348622620211061223296891835792291951285836228272398669951965418678854988789931324149022998934566304093698176553916204451338717051322817683495944344984235256097692611296332022309331068104580674329273665280947743133958512803184437869464662955862110894679597321448336077995269370332363450682162167305188701529456963094703723709090483158848671161406746904738380978427941206583749635206628966371075254064850327643226863860073352446543206735541425920410571920011024547476530326167134123756800666249303720020291647115897100205803730402102046568280979575883910125052303976068553097382292977122103712400566252559694767934473738618045492526726955390732255270780795163873090436032179306862007291584995931265783010107600814812339280699339356503524558874813082138063719364261556881611105735739719913442663603977382154299795775365037727962616197002907351479497035639160507283222039763086696037462121825655874662716475920551460666782312435419411461041157840873543046445155320368261932636698793676230134262138979491076342483497405554397891142313425016209502394081751159842790761428202026025594702489625933662762037565871658750493493247758735123678674065873709200764236966043855711272599128195342303151740608592945947418975401153533264245517292227770280835693516027685052465745418367382803116611322790137096059371703374889497695312612509746178234588912688961317532541560400266564227214557167231802649362103169466754013363026222342406578509827613836470363966511559211418377063713675796896825944835962351332375126226557428622775103376276291375116004578962616538871855389213033394829125387356819451324151554585125482470571909608957269458571061869787379518360519021090068576662037675532432214732391049295773818513808529605453599615374141183704521347068330315393907110109396413124184057541988688297745453496208720341986822265760089222927387611818909317289182987046287429357858918830007441204772461062861440035567376038608313127690556390076467726575346798054187540189751567396762945520056719128658052232956203319603350045628924705729140775879792243099175127526830191654680111057712431206393427864854366920061272449594177962232298354596592133220633816887465000878432104162502214596557146619150186258576845045676966220403414899889264565974085551026931800451916709094200302935365098678811867363086623181627035872656443662674643650114379292518476371220847293873361384657417483979725835684077182730839671420228302766670128033344208485742932389049806801620603969009505009477441275959400870781942680021526047086952944122443078852246264013197335090799251564455012602562198755352284407618512456898357405143951450793101027658070246365630357215571025703644724119597880257127074621863221523242033907918514774898930105038236209299972162837490836353768559791690783503259100716903890666490104645002524807652582952418913413781131717613032983415905536823063382495913964684882995295100865895027852040503725397707971295053380708605985784106611040870828428828713498024999530584269901125670184510981164364546798625319518449735298344910438297097648661351573370095607556455114644953244928578091547876300712593051928858809375352336254899545287456386343159605699512130101620414107401415904572781829904459567858839609666414260493807655891235928900040318158182898694316853611896828367583920865862921868204299572713962083275165751792257072538837054638680694043983348437077694031188358305037629879203406902359947382130142170923379966098279614605748801458565771400490364148296079451183459287156307246070702418700709242779986029831749430204988653679408664798795846036622391858097220372458101111582814016089109516185314816046153891358996276004631966105667580589079501824256193397229819581375868469619720870404577432758436802527922001374492794192297794816626551717480362714653673011748596267581832075853368623869042393517448538393072364165901682790264894903208118777489723846823160921867933604787749293754309893336070050158388352779474103891953919015236227841241369962070987617229957007332858242066170225500153903729034457561823645740027708061896409116613226604710946956608152460185880190459913023172142629540924254361992018672613411827220200035374659929992773061699049368117859726692077112561739428264834201484294175378034151975561356389749888368982254202618900728118076945642409380621960584121072628203475630879873687416879882854590999558147188550869441817390266024208867591649339453703806502814567416719002842737512362867726225889624691369852280318181733556267917434798161704249487120669117729914288239678406714771114694617000770381871263590593999057012662037339353410136079154478920022092961286073956500658548034769444976273471755465839022018487517367378417115668992605409922423766290333377847937501369761609661039351251696961384930846755313122907574895600565866556238869844020331401004935520761853528791409476481612444442962113213353078601048490266270229302018264924768566259446838735458019824930306953586845607910887232046892651544231958478208800133206587399981958787231533739142872664948510120656510916633410899201572268777210086014706580219185418603928786377994152992509763708385399199307380473206714543795540737953910695336763735877716917048632296299157575248842552456315365543863201854718007073250665512141395264634294393123885763015899667391665147979462443488957535825241657302295732387548117967395232398300284405617757068033086572490675680492187303955656512239584182919448671849925299866740603595279351251342384292632746001941353948235274076347818092203649129854225344953641813553695225863593703443304186631174184022185569992707333403465043027899001968254401891543004833257580790494066882613895545726924493400024523726242329917668600582064727791311273964691824809174818515629848429196760369764324877370773664555083592547444070426973865377536854956550615424564793361915081181734148167002409444037863648461859829308225393942103172759735733521013267618416098514472675381021250018303969303252272783094504469590047453714178163146300454522782304215512984860233401234391847362227770824896994102001182379335088829845873702950690328526969525845690767671260358710026067722876055039816847259718231708241952869119701111989066430807915880222180582095808013793683296157656192894187682416671782044041295173679302026804814638968178473709358315344466594797270481266855983026037790016210391462996406358787564238353422185982943196696392071823151617763864445881376683921032376031664842308613674814571467841708423110885013197808557380994654423486580551265154449407956892575511172137140903254446789939997772338077647327544415481545802530527704655206632367103558199042063667153207514136362449682193517543722445240446562712439444544029124228866042499975142855366952981172236973846111855046508262626086012894592955864798345031272304167898401954645519808121703860932802529474185657157496114726771527594874469281044227275980155989559504861981220899732633541861849050555473768268730358724436469356663595049498979664399897925900458108009634427846758520717343440002793217117844311035527678999083626505886146527250816833570072371507430448141349944440763399261019152452938142479387284705334403786263307987472428489789494013240865008404528357277981109904124394337051572436433343371638172165769587543910877142119952735226609200164875988613103107895107806132133473739478073887901453317261673118911389565946231368124310309185930555604057068517740646302224294116056276573263388736437431763914475084445469757927908911278536942538760100516743010094346371582994890101296042229320102633490302812278522057986830877318161585275280919725121779273111335852505021008625142246092857832138378849478972000403706166901863934409474144608160472437414258823146924872641986729157252634614783438535515927172975815197052251037932886551275557076049541554966225760660835134923900889697295297954754431460925213891934736164927819788500245850812730493026920684778936655125905092992882065123745708027449607956365478281211828901333114107375469783140407663001591506271086474895420511128997971249598277071135203702015602006570337604977870897668595732804179030316710378076340134787848504045060571725574417320267826281403796665729329518266691445681407996519910627193722086764744186155344367248052376595667429226868527569644416503511180027201949686222270365819209365969522695024208691956423090832319498991886301608906327890501265158592526461732078341986255376756371093639265765699810635295750398279028907636424480687559736514488208502641418243778618090142225830988873877045323845603021881940627151508599068747539133110877932932928567723584680202895971918334350958031965888596562248056205600121736035273129152502554764713799439556184938121037373110340501655117137366508048948851430158320533454190185139979377246121887689554308876151394370709245513073378982089167823844686063692794031689122874504530231220383808798671668670013722271784520617925654850817046540288205189635003260731142616365077261432089204448973068218286329928338093853744444179737990112159461231424895899694711591012512136693096684784826783401909491609271148929747579418072484613176465583167162299672275590922279163272819188335811882637027914176649264201441866246055483529699327770246527312338593329279238305111492482202527273491651555279287929238509935386411290218511922996249788904691306912482664364364203224021322155452542825279354623300354972933043548979976544864325393230371744759302428627517213982440650342355413909076428288520650979093509363286005868033718660134870485203470870507245678635457869249070147506378441831124119902682767958632155309004828038114938090104096679334796762191596218040052798791463332993827578144187219689927716649890865690772659002478334754053924542827164119023620117371947135347214705832659535517760938909280714649464256585227860695938875338107457081520659493776133930871638075871095183435945121568991823565212467017708344232120736609670336633588344301406340240858226968636204639498126171965556090369111516964868209411670867750373558935869114032599461138731535506194431847643891477061216852315650266647211618958150264269347118754424995442712541168560938598593185889070297193397198119330819789068852006863940655734774199340721570403318068297630839750552740729934229139911240037446183298405319928325786705337918981845352802186951584153527659657049225636285921816793904294464194081097545433735120163362303480407425281400988012658868459742267852000586846325275273657015002534058728841560905035263982544166458824127946064292412301168798252959307965810142453772224863965132138862639385379641616682986865900635078933788894074100323428068707645584638279999495016294802953651593963784053819477188957661844597829314980743821046347122151197541793567998811762068668554986897630059798390089244302532268158663574522212955391896211627492152705632555967530942920774814597048220831279510520769623457414822262144131307584644284351456525376619485762747610385348601124365577777634948076402606806017782002793193959307214322504189257780577130496164198204805412099124997818021984161874968437899162402900416529957655869020788622036275217360972747230850605054197370294267054228371413479936727039627042136924177467218022155375981387668069542261782536086410449713265468564764285086909205506883598864244333690103894566803660626071333636046539170227634428119395614175348458793253408389779527646995823994572243402565677904519287259021112324049761156109889339456997800695176580080404622587982374319966546648731444940986560528834645921945865957198632752748726569720158457593062940964836744374433673286504593745553054220758193845157628252639209333961888601924515782157707989842497842223864342369128478931960635363938929408536930449218949005317281962082632550786758263238355365496430660272832103603708818655816507779069155212836851006691621697072849627349179164390886064763551444053493220935595890498274176161779403217042437080930956890624667291153402438853653737213410414737488975022146684838003095820662079978242059496971464013024286417198386914304704952991005301270922175446401771193501527511977782935569382505496813700907272947178421609976415196893071236956588445480612422421515577006432478686789474928726556014220198241353798495608204450213540138990988373853769878077690218306904267864912542286116204132012031418151070133876888250106224868721167302108342794354746187458377933978744952977903297346853121351317767193825341082574704870148383084113974935727082154932002987934254197097971157254797142464443076455515423886517680784128483653329914616800011221209413361947290379043769898370617264420496580482366239237685777864530592055554213130497419302646690780016615143383002076002111518385850804693628688183910488412236639802636025800907595533065996994123020753385049698284526294718000917842648085638213608352849660557080840775819652392079815055303789396069686781615120839307309534482611609206709757154194077965850571264708054908671222959448583359079877188163044981510935277348103976000749160366284062115500399173532383596771828350993846474175038623941214513833520395903612998446835962057061598222974125625032703184200482204220608128559412899102717024492037173246845337340869077172283119605622397962270442172088954990329392574858484003980737076042140372792154074932608733704441831106424054657320235949732419538467616120291255803584279410361901100066019215360453216076246639410811951051005659230717882616207146708041424873059648644848510165776573047166345744554445512238459279230545604921818413854381292630644933668889199246033689628291705249426820601368999601423368770154217038877011391506876236358898835739205266457162975702735567940132862637097296346265576852169957015453645448237717192751342845373733003583711885537954033119374167774498088481230992093349945665598319860283531165126123968039480116240412894269883281300022743866257660304875126128164657683231062773931826016141379687939232276907281129433516425498669662359277756137043998746930724052046888508579699733412405388523705835369761287860682235598639246095529457337665281805130629980569195289092946069008538955721951129919170087365910096990477704167472314881635915156359519859542244922444095908483100332220337749143306501066328340879348338382061338740443778027703532936555157303029432230753004873770220741944275456446655392175012300505969043851396187489440501605363702013293645841937648467258816665883848090436928702754097561022275973900011506194940109524706279538395489344557309566984302294516994380884087633730177119976333834803242340333738143927631424183161297873932447984983496103140027396394186226234921394006887013300388573698976396838567224115724752072034477447243709764742971275260706655115779194771386674083635474676493877888000494615956976087897796638366397387693349229130351607734950155268879173466383608229467247738169911992773700230630792916265073499577003921095051001524241619329983621641351380544944504386882966852598217945551005289170706631007213253206519675172034421293225758823004832984694267745583572359356142158588851660892542636364911334124728354011503473211450359619017366651423022624698332214965357278536029277606020438484009006104523909874861605408800344581945119004935922877083537100237965778652652157083978574648194007167939677000174816639992933534631936941521687598207637855754645123118859608149655831071021462143847937267077385572747841307307021204609816074379010377179346208874612706860385058384425453060886394671399137751550211498658661277472105578595339909870407441301564305040471790628695414590010162449438524182218199309190703826523399608774671788336035867690129408829468270424657848804044719836085357124934071718755470149404254062271988704922320559553895201508360929600708866841228274317278968059810173032934408726676134039192054742141418054078675665441783891899035751654365051127799255719649495176748872048845862810077500362243395878577353961032138804193367821254485168968562980450101210096658689088312729971375435639019863334751479593508166528133869734599264653323028199686810642502464339678314000550792431990938748277765703316274698716874781866186783595584937119576658297802236835791161608020754326983005555718939126260814981167827690708844239284300402360660337077416593680214073474081344931890867087875413142192281900831870054195729711976503416805461866297718400755963368956214377283642734138498889460835747852672489884459400745012454268113315135219784866626404395317739328003890731884994351592257106808011301736554236392254850353132203362367371017465434650590773213971743390207984229559372399900839097331300310829064338969847892771311423825964145221531958022986491765002695692570675698187521154104543002817546595606734362441560641840720279670898242668180458694577159302644530274702088134119922599842894826683672185125910085258412326632581944080284528085281881510203833115020651551837556677588502362058493999633151835580687832038038147492121821027870295314131831156130923562679372310610708417707962396672663946103196009559951543478991522151146411693004141991230259237290210584242881760871724169819210100425264265710493802204838635151256631393072362640468533357688389537768045349755783861979525200278759331047686515517952811185410005682314173091850040137040636545847903143280405160220292082257350459786278641502884383986881194606690493108159081903854473862837734431706271707529887578917150893592314125334966481383881072517460804772803880603196945527136651933353656952838263413761627016464643507592224753314414134998482369380610078453586465520962039299176007998097374836455219163808478962737828020162751849451711833388984663198604622252137344773440794111631259831345685942442740286005267910967763620329401063613024063336615182217385647084597293588993622043709176912292478327046500790169904801961718778045022245590666828920255105958934005851044960046361810100448043053400920822669763201019456608676393009681879153596245594114409443443495150663017548711417325237317521652318831056431030950388622289257846568846136876588009461894018258097921149092619354034073136811111243840413641249352499193071080138193874380896364972090150319514393007097970104072085447026950215890164647429630478631086877081879104038507264604693150993515147171098753587385381885984651980365468093608337151878834090053793726054623312811214181234573602718043450489325694944828965782697919927333467674538968536707097771698226473256964539154398818317445672888249367304069264012919719623000549060104899846376288608535678216341710049244410529766974272006375405110324626875856433565174060522494340372647534657070378042432218695025432718271845928688096768400837380652697802189895159047896116033043332017355180092946706974865664248581346274478662811673413470768184993284917807088258753378802606565253313216134777366520056084931447621607566540968307137415410389570805420747674029317248823209277616936342627317832281198775574574795389633560634826486489516713527791846290653023958916922118100147218598017927912399237855974829732848601424217446664044522739380701837619659622141609534672874095945421591989642815878325533006512268384939103409304748163087070707419513536445336678523737911676377070792551525083922652959571938389970615660468594879954045041278700603682786215197862899800170343614371266821775964938097239149799456748081394767065107320384254123666632891135443317077331869286699594294839223885373090164847414559586936958014339087485320598580562065929509853977862652015233093994021554010330547286107714078013901951362311575114211866796556034710836327117078300151000629631764297576717468936833166633515855054039745026676265388911069920612014114638228347369663072022574595921560987058715047705471957883950666939791378950663140765576866753834739841076496393755926562234380075046054830873180164453515355801786956691724579552014724372730512619337406883763055373436311752959420743117064725424787236938032184206042720046168269027091800571918466489532521471316315187003801139725004905254136450290046549182887546459504213038486421528837228346227901206241325105726443646274743113778165833593318598487581687619684988083114313017834050322531373525157534739807251449951891724419453656902961505790199785216555726340156014692407466496962720578795594640196588591620316992234506925319836200269127215326366341926733969947308973143237139627960553308769244215611769691784309756128925534892508415814604955327879552345577372106711435396974527890403855673122657568891680571497131174662556505363673414997857174079840773574917158974004886430985293832962097911772643861219472046627900221627380599683468538057241199411611147906658511376687463590446057099810095503556188248830731334297343512897114251732941604601276182743352272917189056822453808398843397574314997240190185468495180593016642199817299643586012713606659300553731439179674055638500065093139390606914227906925590341339488978437253489632260928988300500297543877451533618451798461317485483974893205611924502469665989641617194561185681608583805823980981164883786354851523869371919345970574529513144440105265113556564010672100667715633850228773755874290014273792932617851899232373268224511268768262683033167404737750806094384343572622685006823186576074221494096469811057527253084260270625909408128788347663351605281627738241586520761648731452701405827230970972925272307155448031320517627490655752115739803429942688218671378436743852775991328659668051691800143385498755533358259257201538304085533983253957565617171466730478781486789176208771290663098491331192660624744585515693191287095852551513870683545005486323129553481171448448562391341079215265042331994815569896308679531830809702788426259663391243160832992634874515647987775491344373735577764651573288470659908514617761283461628021266047864254902363877209346428957515163406318434324281935479243872212192545490432427653204898773396161169612883253572574887540653016907263496117969068930309129093229422062856993847910044026648011938337955134775188550400801198017326478533842816241936336396175705729663473767480257721473141376835539254887332414121654851713167957436715358301567609682363765669683020636647993059574032441610387625146530590127561118180601359366393883440355092545465046645422896559770151942248410086938241175408748224301525754447488045678746331859150448160788517398589880501936160129148327117016833392218836260824036455020230546313296913857476313705909920874860256745478204174144878104619530575370815238778783664982726007505014349807809412240679758580143525746956356339096938595256851312833893337867782795866781275258844600037884214363408314552929144682614257337086691811516292364443549060104690277616290127438951180116123838373167578767476851617338945197453614590736610057126894042004007819956728556417098552107060630864272403749243388411037615040339315434960389330618485562924828644996170464310922257234522181027347262354288644631093392217282521006844038099832305746119916396290487925216944766821348797351538452436252711823377103958383561891162617503652465937859536003711467394223746279030286917678430902893642696304488386653268434892628787800152014556315190460640907461109510719435855542258496950990951108946804433524696465666901754770863618808894547001939656236397791217704424764350743092050213914340441994835212553063379326935535615758614055916883452687794692715494248703257600578122387303063071454937737091385705942016878877257642878269955725357254904598498732946884410249778880343372345928511748305196305772800713997942820796447881647928017306521068497402807963064963485938000114862071690549520935419815774396289019868586599447864281954217094077698271332764707137259338680603118511371735764972047897860265117160229624939557410629307796852733062738486305660369244493787213346079616766507266726369500716461135106891735280450131433521112969174673119310598875228041696804502100574789237811056303273446666375101017654320901022715463706831604088209938064822880917732845089364679874302455504048617988466528464985903017685788300671380440709698555697347575759513683115456369309707167827891680543900796373275921729297388753293487686620478855745365229881907028009798161332266123268149484339203249205913403283477546083320465926058862206954815440102377312888906325538009980977558093565315049088333722460643872763019448830600013667685528372270258562980509657234862369296091886032966782122425547828257617750633831569667025323488202256148300361910452754998406529803880086048683892417311877837736177166847588737512733720685278233435071292188204368498747201614618100479507008458959259967755379127761364485661259057448585417806635737254569795749490412575160156236907104305241108542764499375643870679207228241226576787026189346910285594953698914006045685183913480547627934531406689382821892916920991807825036969114367445787809585249498456225656118324422908133697930108219180829574287383991650746797651571998228320459172782673247810161068566054561802509011839473406225824953296523487861751926798892369811595607510099795572068992523369951396075288547822566646249196396092734691713266555440774479316118513913341428731407240965803001532896970164841567214338594050416196256958304977473186335184882328064934018371577088742170582696341524839791196134108785849461973599333496373635479338989789944015082846852202414875840165628953578353340727745783139790585160290680566330010568095432520901340954573359847211533957919745905606626992547762898314784898144529894769517864377043216434417422491173634003601845016820420852250257928653845387407851846235232891619758758244408216373994125658392657699042300561295740350901526877300293564696960443061562914644624094474486894952264941902682655661446929405175321054322526949275354669261646314295282580900926309364787362028248367665940439422532103756685331172329823587028770502337526472901259419095735735136049965575565653809429282699759689643462066491524360418310606548447716350094924131511990426037795848160295367129906871022722779352138670409904382606286613163317063152117280664558444957034622342503268167815043358118364887075016943002681988669251615394049450503949984791965748730792581916119200856378914681145602805006064836291344914286971002361180501268325707288096564751081545233832889751764525204893688884290508497509130056975514025555207366681751994295950961171157395609662212872992056996242693279754711203521102651354382655306697627749599914088750726299841614837243480754312495645586382272611841164826770397097702396941267910349111895681575454256783421568410811883469342044617917940568503250327507351611523046053810365533009792077460467227714590058314046443536053742704642018247953628534548599302643525773549255542094497475098036499368075117633430179639941916427192975947835821819886799234081570941472766816033696672789826104520177718475554020909644815057821575750082958669468790922724608099961698104394281368713804024748044609820797519115368742549719776888464223534240308317019199131266131211398239115740398658810692405528804345966525640226084993114519689770190096964511410259800167769536305251903845239574853487685511390923694323908952630614590933645506238685607577044323126546352188386632733398383345693797678753128789712944958967747462773276676109440687009071311004209741456684556530444407961735080609664509314155566493071023900547953615439711914175364492603014056854920842036571720974912757864522016692203411359276410098780081959987114899087109527882310114541546792883624635339914347479482127373195474817875088674216071962620523016390171407249549861402656358148671418985357599373622276661440329995958029214295584623597547184890732637255204466599046594220829812779849892962691485104745959864916877476426848874206760079571445867820240114256719299338189258590908462461885706391172057947131150958925763354234117509094920583029326258215452064605643066570703405128828001937034497009238756698663146755390066829194592817815522842444643574127687363796814518295696562965819002708685581343634811035928673397486702927999891746853092536026856077205813786212573735663747149321832217672376474190372537583869678944550891892578166818444654050187990139859766404472925645012484125645162241161927775649893824796322445559129709958056045786003831087562801976642174793981344697635906658478958333073483995114869122781744732441183096368506068893994873335764190478319444407836181370245178661840626134100204665332192022104441176618149449511654196234687512013730936788304608719541751263120082839383655972265019829152950561487559078179012928255301913704024943009297502557576135266661471380190200710942958211988799027449804956487892948858441910307799026638638547107055422530469147632329375545031746866430159477535094981370386346675516424544797022407460882188050491400185205354227244382688185126406803823451437147905186201958709348191007370532380358681399470294731478998578896052529407850363558495778556702152418278629494412571173096785460542553383320540711115523088186889867392223341574610144284376996405250979536600582918390457437568767165231004803221738268964964362506992710049902571806813158834308637869431260002461077022888361456209209425891064601229397784562453229340461020817322750116999821783129651081887261037836570042451990897584847808307315525114739334291838111562123439172804468490280631580457853830021038548513055604815724273712239580669094846563929314171322970711892375170037047753865090301364061446420180250154414188693195127488017854954059502774537094985081007435008921194264883601149150753243034488027238945598418990937199855147407232309390984861457478505975802469053121800212231168521644797182517161354144037098940245486745754769757214312921520501003224624156069081808499085099665626164212825140994042402446492901703251589813394876876108984228691780179373673397545219463303883686429261463533495397907557390620289129347579673000793515537102181468612904852652203899037919901269164015473610903345968894933248927568511497412834352658819566303918489163594085272920744510492177207012424448386655641662054230405717871237399659846145600818819171225695386230333260994533173429810550085181564038299448954785351071466998584165245789680911441254729710531909524472881886132494862430889559172384895332260969428681106120511510617496176017411289926230305171962969486473354375883632363360657930685619594140742794747635762332213330992173341172084145894368002287599847041019047229187988004736474639261542996535891495119859890145544241709929750068171264874074861938608003144395842836744765733491822616200717000057999533026876819853950651131855520894679582247235959780901691977237141641663043901804459523338291338926384464931287316672788894312018165472908919168101482541207357699192648943903415516645885834808927275809627903399156757513024947256577983766330265651509281277553697208604068819929774955737249209649341622666100058410602744957698520205718594699983193141066767329976806881013243387791733475618372273131825424696373579877619761760419923650653932262187915562127357180161919894028464412357565870066386053600411858918822999531048488388751471034324819105543171099901313747215350321916358367047383120040446230490244264724599955496482381832003835819495842748536289759724584742879969835933416783215911850761695537852440205002968246866562195724676234161760301283658008433899822599229875553170754042477524039771105957460360817172530196463200302489880859511699838895531731523083512805482483204382492447154569325907711041332280792744926100553137457975403957141875844076226715929415593652195144063715779966629095160202338321878143808619032069118793900315433337769214376172856892850668539667957320008260095542869311210611308587933543587603012949476375453428437210196290570216873828437435927154356853737903340588501555761140581105727238936655149387183322295633536852619030474713685266258204514095308184680070207256239670006832214879539514059619246937850186040646618217979002510881856747540710390203218972294091668533197312254287098361765794081550282053290817045323867623432072009180906651262026632100053019611811743208424565954955867375932023316612029342157926445932430758125954352628981456752014363425646779618588239647673141741803980472190248196320275363972963557223128645171915450570453735095757678119462948717798558242031569757014874853455378728956470667786361405813686604933082144522454664669891923969028900184913218063674086774209371195994752349408767981818599614887374865651964819095387094887265934044968476987110422312512214316082011715095127868451227317695696036156109169954462274899355850460771366938958763966416761867494319501227414044494995509481671472857128765625490523485724746709250360363855332340377662379306702413060309147268145942968346171973183632718514568304047122316779540944303711628606329149356328690101292238634466700234053933154108755127502320148807621066970426391222792916400291222233577064623651215811686524375682622218459970171538842828576886874479564879285572659948373825193811132031001836445882851887685722427691021376686789767940083469091537949758708864392896308366598809497308798024658131158681444570390526004006605766521049043518174507021040832988798568421608634800039316073474485377530725649791056242214184380146817822164019191717897726317391657822170121562230085896669336002229454381148632270349335377135111304491793729525896978346423691312980849330513948551222378704264571763514023886163759162640099749401406668444050688532242909169938995198402202930558701508967790053974652269387904731028868722732770781948751522292480818584732966395109220965025565040830166680694834678891205980363612883915284586714428264472603075693251445087850690024005126546958700666635401096860264904917704530305163730423470134604482576199724006028936510947410593396959679461559032821386705330880958178620117031024326873986525984055512212943467547594830467839372843940109293507849353216231605701200891525961501831817872568924471370222774822744293939743116698543553165305887027416804481662514738886820883372190139266883411434834487170174824159816608213547780628287265704763565071685153409896054623017364134238854661449221299569657352466999893813894462007085645725074407743181834749549918342267771227261428824563396876839263276043086652270790381855495135504879730745498795869267050721682503112380175693280867254278066033473250668791061600135867385915973188930494221667636391710900528324664755662694997984830260075290637164229444953133842294142486676068711470702634150050387651318603812887714253871640580232345615092542809860149289613431701021639621805760586033980807334404555207636745526224949507948170751821197632056723008854944863739773946514406575961248914631024898195011707895181703084332238977723646200730139770049390305242390348929615024357314599679225577574078531695975772170025391302915477500824696765065506378952916790284098158009797173811182054017047456666974223296007162612566021587176238140213042658151359844300585373260906511210480795684178864952918380661019125969805991034708851107778973063404261820274179246635715526705626441037615887363933423325462359850040482103431954325322181706820255573783177845977109230948039782231811134879025285821262179682571608398250244138976439146986518837491264529911666890602442347649733887310616498306995280184581837776136302483238461682593931450905167608838410154225098934194170967034820009844133104507173674992544902208726945984940541307897316208834314186990045200558226022575639171417879223378601134101984244272251017012983255388218301113200484225202980230951286832606938176160994907541377957455893701110870125001386955192169478790306793936539823545747497463971801668160013744076509959811895611640658965119885749045145808594655039417050151979510011009567515635288201875189571402131716864986065309413876572054855282622654017200736132098482228448302108382860004586473891640238437020004844599640879283804216740119049671026821196503477328183944558410005099349804716405454791838338808681221759877630469420399638992892059480251410639402605602777273486940535419528057257461967412667136336446661158080540616424902067596004027724971517397805259421646606997193659658770031919681132628799873497939755055589060363771883742165807366244853637703794865619962835715588419808435093895249862872852030433788164737872574018082960699420969820767775016351820326533510912100689266531373191416397171254893840305174809806823143147263744797784875709836434107181130858458808826190280882337730515735734597008451451538854986896354951951422521589503126279958316663001034150572268751905649858631567097514774268991111584259459329772735363148916299602671517280842064100242169533334975665276897193321576979686384976663972783306377080365897702820340360759960024479738224216770942091592864272770945016961715468881334223381121782805291708511347724940551659130981993483693109922339407938778877305061009657052694895900104373402762065351500435358469066322985354352603019218847603232791544602335239657691433719809805298887390903619479222264709793652365739774317053447078002623477522782565708090717645715538615925405858098126079504210285444103502826526158188941120662223452422072637043603892512426196281372074613097897333200535770981276983633220249397138517306417803561641815314752236667461262845176848499837518255051345098230914762698950854879360244662551659241492451984517270130145208207957382614934977906916510068973050725260241624693173203993254954899914246644061923373822040093004081808041681495854143212690319593519017820385032390512961041700996991185702078916944297544234924643747131123491989449457687192325810307339172302506624070384551925977989551242744364251028839200817449015163350614157924394944562441667182799954283675052559218218243472901648233280985310393865832834758230409472942510515868820969667049850269693771362859018597527399137990898577032070394774832581529591864984076249844272154266318370184193588234646675369682153835918309319464207789901230703088063418268265604409810724552330057008120627949834984147397032525648117507326232571599597130765675477425305158391113041202262176832484135185016342291422231839634410145680850466466680690979842526787690971027177554621522522663166663062188650624891766433324693971277432925827850031669297978011661762426225363608823649457151724661507242514532331623194000045623778133230635514073106314304344432909457433769023385023223395321265974182509486868648373972126532820660797271819722694766240041952283675261104713399318236254954846912733845557638359565305973633459050528855561096624982633579168850451222237948516483208142113693719850523907148506014484625931272764141062744334383932963777208464835809046736655285099995698822607234532474536666153295734412742807674341279663291115221387535211639936042923749839021166710030599361521526621410085458631371598170027663009893312475092996712123020959335338924903319295961448510465656469603312330084427496020025078712235709389019385020903974417234340774255199675516889143327446722448028425547286301826077568623615608740210529777102440061106047186233193830519063792022398580161938982324943973393792127047632578377683470234971949090522643000701879562646970389347656378700992919195530121377553764369879254168357905373680320508521416292520670452446156224656418447770131727543541648083958303111372384322762484840872657140640995874157270387639999461002901529005502933159629770370635172799747611832195459854339639553013327777462947196895843858876901553856496389170005313696333881027127477725665294697075229335005481276179658598151628019306246185489639963335152308274910267408727266056042150251630909823290478522553230773491225542238677552599122122900087217106345502214715167203475895885810736601315435153974618295248781871697396458308581124019831247675487878597832611299474364475180233961755635338269170181515794327149787201434540018656679852906737354945315335137525465492965486612765433303724584065193509107123879798006183897139460542132623181704053178465683576443560193713251669295058897787196338215031463842309618432910797504664590294129773667201088539659286237492279328397782363215446313081525881248151942513802437395550890068173934968707824101480726535311797744861457896851456249305980300081034844629992606793013446889811685229949010609336549160865561026616061159405069807417108949121350544133779836680407668748570895054058985601385997267884882076831747848531570788344148440799904004126392618163902657021560322571394020801731754953203386823324222884841557177321082163785656769536635096105680699242877590593739551118291880099564236183793038675231735138208060508592049552681079660048273007866789704840990396545803607955611251726580716022797370147251461482093392561377529291695547199033189898427292993837586290460472456235556024792925725392764660255545251184815909819505961735859260560802430381785015934583891894840954539041848610497966108790916497110633384130392541662941236619654973062937447163944792442829172957115028585966489325148161539834330062553886227555310976154229954315030043152183268437757867662191702272862202875450862962268876003221002268659786897158393921490405409012285037052320047944967121296592605361951664791793464325043130493818187067958685015875326983495226879040262435988896230434125944165006877262266907735524734656307357554549812729889148785314618383128794688918118508510093762970768354465148224164523163726155231695781727324623478863918002463156631181778956165222212623359121726241503555960602335877305486296996568030823014233528038588611419285512363399462637299414853627780380851783942286848754224284158475252047603444055514310210126864159575489283674818807808316717848992095528164945624918897148722842162444098438918156014495409427595723453071930961911226224767133900834905837623481883292472079610828296680236998273732989100744397126989283921504396432085831760409505559691036371296793558877282352558573247961818910714067466591405427023253753222037814703386243250515256992831432631896499577034080202527013639654871640350082020848490112996724597162897857963375341629090084879602506225573229192565452184082193962519109675058305968462943962408172977766103788863955857102330460105314337780213823229848371483746312294578263795374380229902460433306335017050807835654006208177079861566601991177541097404013838299229815596539216886495261991822873386661384075224513428496624084978188173230646650475775417742525501693505997380597779109352108355621820472668740357592217241477332411750810683104392951785062747520770976218089958096151880915957500541446709691851019509891999909879099263815006698351575578128010598469925216626608799671799789116307304421275233627867116303094399225222406247663020973632590816417578823978742648636708081001894160891823718170611894333931018323725442460265953623575310389484041500638675766543016802474370360203501728230521518255986276935374635148676503671385793431343081848899940985963552873706874351828359828010317647357164711871853695143764704934565635060353084257285265118709544349221293569527249479303548960445307784382867419040916223974909210362476520749725256565223623950312564965129184085231456572010439529634344524922698079675201555942422869681485653140772942837207892892598411223795576842986717292246918004707891595173361290538427990593680087428063110732966570188998487050848361832302480010149624065425414986568900017177390814216621594676658632451019946475766292194133061947177274444235623252336719625529634067934201797534148447123808684778049213248499068235395892549116118669883604645001690338805380843048149720272700924206128441171957341206761426901851126650405083642635408988579469940734171022501121752621064097057078096608690565044614715080805402583970284876721149663144691658462179431835324137417258248306819797508339715663203409801890976429384849032305639458703868503810109238630713877884828130228372392508525792550032838250778209459712926852426627406695092546902391336144803709808811792647805820372303480709375546247758754709253508391378912651363901941536881639114921738154982995287612112560209743526128877411071695514858307583503431242187918982204403148263421175261303876834429305910723979252386056464544336230807502641576409069636145329623591585062349791095840941878918568402477000621874717887193840722324107677636706939829648565566506524203904938425688032410532350085148876818906618812549510697342420995382517881311119104782066508759813704360930951899666547521434590724750732707146811390622059661530947126624286633724198611515990408697301202524331580944913085261895461538814376285670771054651869311184291792777319282936864420592034737668343527411634379515613617028835773292006658693503712391269019713961492130818212311679801686989463769600282099141947633843859648224462770543100722160401394633990539441592426883801805698011312450965599894827594342892173743257434778458622636407789491226879619732375496485498311037070078037987183995164470695190417754058140532855276650561887554550251327886620871443214555658913815282397478458946491816574300482990274843626259375100525552506242693271214666320661963823896928948999604391453986739063100964860637116582538060915911027990256470007211147521062450415008873085890142368514049569188321619202305024835021554581323265765965960282564760943226821835671203987354466791690620602640961773603511475121767188841554579008325193926736954139779343937787804213515908240474231259174198539244778767397353073550091826912883767335433751388795470252433390100538384232977455756264041626256069796889270414079782301130261338708711235981398889796751526467559479224665983447178159291058575157685060348401705988031230729791347366266246551150403615892653258799906620465021939255177976628545010880020717582299031623596968220707849835942192749816672712541581326506257474690425154660325570872014498233299850587267813237334190311360731639972847843239721946236687696131266003068706767902387980015023375953340148954702457582687092966387718790285862876727409069007963905003897505556051654496004348329087056139835643895533519158267146555935171571866626622270809552296933119394707289867476142881381292508650876952677977045813614855811339032638826862760160306038259544852625087280642255456290235985767373537870947949405762562571540706968691009747462402799668955908277244000488361756609196391327617504790194333841817135468665795387330184999549333036511726676771204153138751471578950255722925222143812488732174030694442903818770185399994705509581283491573081544483881750150460073395546946010106006586947952923043030904787621957760330780979756218115059354518589601193517583879584610771421005275780980798615933196153085138277804759243852465876329102669564341384560482624897685355606051218216942946818750403132357633579241770361486587993817538621828486984690122971902794118860846139015904029773145890653105339006882679273300924484648776650661691926248666560008446426881299926987918639188414434104786065299572267034967342288636062677430099100203838397669107870708173963437575198237552887229492572053131466576784429483577259823152485535870517325847605859907353459499231154851402135066383005607672342702210558234410763492890243294816448808269727337832769901171807195017811407090155071053994885366717253380314200659395481926755163388177793232890455097604052498379988657801936110874831062821522776955133416237493770583796314574027445342647708838607581730023031939085248630918695369242541391883276445041509070792212358860694227796618830722955724580249743009163920899758625870339610620873629794149985301886566039761086635435764947610232734683172157997109876047803623429473263061926741672300143369280175429467254900173885856396638697907825444241601233612396628783333145589626399047330624993199604485217829059917002295161030602518786626445556845065379221485875229600548694421715379348587052517993340452371822525794695310418789287243120821905717340798358780529351256761504740196433850528146829907588018325457070179786560976455915493240382045513319806119373792090277923291909727936251288349390259016379769520404041304456909047727828221313161798695821418376450672353837005707441984099251154550527350689945469146634064958811103374701026570274884834688015680266805748376392940468975392183009676289049229912114986256606089399198834360300806942236997205789821242447892029562843858599941774471792051834032632649775665716703111342452176329942158972269189731436680914901612871543577394289576629079003112252936956521377368524460649600135584497277719628747907876809779951480623518651889287676830754643842361377213438367201881361081523569415275465438432088235227824800684057923965915495678032492169507682250772266155503457945017533698434319876422306619580551131009310315425389876446442773539334016132642539427759977885542489464955178503796328722778317083300966288781940824946824493002675881137932967628667305285090242238636274127021890996335908035415185482966580001812417845967962637414401494691031878056155507038719724092585398756785534121314033590949048864895052685651547280312826711110947218804815336581999704537532486017559705203107308065941705355621684889112987056711055854882637905705784656987450083402047125819757965611622499405168036003868307272080117001265870423956435504048619658430828652222665747531272111798010748165981304556457195951178158025048681033964898419691317158414268824755107160237748150679356819728358610281769897191692275118276779591883985091753931932804799347414445573087157187280691849488634762797726640399709389482642526449053069781106149948505206005733549012206572074083594377582928037797542487994616483667155647460427983559495757211266939903153105935113132007220990296593408481607534531792420159772325214882540638276903121420154297217873466032320257949930388208910914766950647240451430105540733233749787914386357706468903275436678448776586245360397736761193942376659496447739346504933896099770509550702059978393952563584317769981062759315121054162893343039742599087163649230557752752180892466233154525561171640828853608357784079461748395894090897308993816703089206981806381877278150171876531068165674350707516900219309641655784718054444122509278147122774927816035942850687605423851746350447585159910607746845438421883275991016361656692477946224522841692592552634705980812784035222248961542077800962484874238544110999667129582969368285539470019154003643775118861325176772880872956061674236917156551542511542120132604497394498794128948536343141734808102227351907983701028086216210455175756431899736941398887077230979311268666078306954799161511703653686485389468939805735133777255632260516828304946811142854217864831573631438933853570794249915539579971890814490415994349811118963731596878949548559120499921201238248136311118631728705531642654981104786543433735440654505966744082889058575422077302698950517581873443568946180813107738602066143878140379542024361668238356642734257164446455261777069954633604824305781303983379522546095482947707211239480447910279242330006362205455345008725288661741538128575261492572227340296728151443130643976374096223719308571568083429473369234211328292589376969415354345915293245387499297921049271146338985907320043201666762525749062653961461195575095917628387428133472403922102609890602965659451309255496977969896413467728592863344650168394164621272415243481297555241410247830349372794883579457160146440286912528363496740521722123280688079326985013240722756600331527627973829421431713560403946965678890415606873986080356106081118467228404371980672355268548148014520755744312445584163390982297946860590011598801065292669651225021326035617996996228258568602875695383869792915697632923280329870804956860989256791425658686711981111801300861729910955026571037230278046831331164818710256350291642453625908181568287092781318473095035584476787859493974245987706927346369982946217952739306639242798753997414912011926576225394959538147595262090786692293545993682963854975820572166673406649886740586061585763508417148677610244466637325502427750221712260956085705125530078876489028780882764732526906858840306170837470374156168681850987934505141542091592251588989585055894042325444362141625269454289838340207122333496947355305046066366832846900116129907219700610205961679068753252292513935536427435013541944338500890960682400142429590398533251671463952885380825800839786713382607898739443394394026399006980692632598829745984159451519879349295639473274595232291636611224532467866333159111328708045204129737147656300813050264000278263505872661245660670823004016528319381894882753475787333621414990416552430234923543726603169713822044899141885480666363743548366713413667482314096721075405510950705595686395538929852022036027476716725247891723052862176774465646689670590392553295351606427117834268599848321491231611304684362770487854441190859792746667310859625192242796715052907692319806883741706446722080961089570227714627464286504276046171382340115214686393102685001042070923192303822699495192886597410005898283954864476331908788537193756780967007336386268051565020727851456783299286033058783668325019473480565451674915788119437075802265378144929003446006148302122570239823392961681173853815503967070472775370852842583284975341310148518591519828301180187484093009072879286775118448593648153549433779671163827628883859841586058316870328526938332495141014963499154306393130828832659694224158260135519854490881060867961526151867031710241557770374330632728061772550292856459289329349329895505630842573469531601457835032347759709901101907006345582414970554742520895593514352493462878368412990301096115921590808242966505050105456733839586825680434668523502459982357227941045618012508418489505952191930676243814584599016660411374438934005038746298483291954919921730192757269090723671657587830512996782751604819929236714487792118476795831782440338461072975308405908884875714995311355034637926605061938741115114001200874994203578860059094379970740286581976141383090042840975764122390020361212814631709577122993602090509752390475285082458287266964787371538929433039457891085762962505111179703505434238511476092575901173036388170089096939299877438892118351461814077438139829487962716977935785522403643497985154860521729640810457636060486982794317465571609144604062326917533608020029439133102360022221002119767335279090786196614930006477139089158911440181737201680120993526693927237230214323859389813849608297021592634723100075345476530233026933500527751826678058426692420320807935286214538555589079352478884425798602006060594347016100697611917251570665653981349985427278149289620710014998124084116772728683016064298208034890858202242896088990750514444066532010489726444702578801902284991074169626430091566697358520310678263351239047228887580416573087003930254440362539520625648233169172226031156760786536121837265268552684658916286309358399234292371948355936898418054692771450859882280067993271429818780740766332721181062750423941741980153182537193826625435698652240391668592842832805707361990734397983084651776228846765127000813496950587634134055243563917835777739885732498873238076618170337175947089922388290159539575686356653734124128805528982250184764647798475718060780764793270004802484153026191803928157710396049079939028858087145439636880647333337888277701226283147034610319206011708460158775355671357664631240987564110308625473638767236608342174818592132692925209108637782728409645866119101636013819932535173043793761746891846670400901504805381495109701090253652019183206258417484290037325135722234050725958150912969622414377274406947717305936427377280053214625584049390284643249871041459318117389571538787056050090280497005112114987716055972740297232941229626612883753854039167687784296943168599237634252633438718722503469669156937980552279162973591268985096739032640233301337100035852370402768408131564336230474676508766654582909436640520490689654865119055005174590732234961902321195331578508881487858825369745253876287647509337986970407546185991878353645911723542729890931608522663127414487109485578678463158022074075110742059891424048461420995105779644432412574691489322589000373322815588512998921707951676711586587731007841925323285147855106001395623388272463255749105809444533866369611692496649512642790263468641354561495472363776098623611929178124727012033931621637836208528080169925604362932278785246043300064642194436682415209737345067842542392719364936486892854632675338013392565981176009213666685459299386922725934276104788615886584871232389992136232657095195522825797941216382613841616206815366191753400299029361870975660502376896020188106381364043450033798916898615024423962752551540075743716002096739785726817471712521260958822779654749618942041833670957405939112692241645466672628790240914031220746066817645267964740437157369112347116285912392864829509964344671288071728996952200372051799620439586865171332578151693022494112965855546677478159888825969036119600203100762435749198303360993286980582653028582244172889791629778394182886373236729637502616111539298599283378897577064725312387000448789401092326132433952343009911055863538383678901890993332185409467198062382525171065742187341047815169581920868504635332099274336236009284256209982524703471313758166494091700000020480408256769739119321246407466330805818842624385137385095015554954328602490531865003917176490653133805887541398881795520447132924226448665367342427526214937373188069288968779529466543314958554243389582380706204294979490066274021563188244163691833663853429254190146359213859942240266623938236078166942083291439631000418584325819694599808733174977655390641110143435618594455152984780739742343160279728996068272118781624882953237301593503654105840878524909878814376090669791447912783503053819120998468616838912381131209391491248062316872392246613175225290876689227143564415401318835179052475977884203092666199275505161177450091965812558622508061888092526596283094973610486150784789478344987750818390604606926830909129749222737913598492176649066667258644920496893793879908983242669990573077280462850574837983609759216769623016540123271897734769071745332439964229199869296123455357429376844701113304171012793935284660188739582461239885922618000238779243938753567134693666825368808039405076282591748448758837639238445402552398455392878782865711903925068089623149175113979460631691831163423277732755581931433840088989561890624462507438973780131378857566859156237779103369684713103664840510158455369267020781698012066027260633298008133516164619220203635684380849536273212613637208963255624292477170667377514213905025167717216412724018117748987987617652997364311299274755050459951655764261983695835821738979024957356732842196773112678710456515340482046203356653180783632851122447602726963776829479161463737442800904194100779107031397375514604990828716919238935643780160575867319410581386611369800046683913799657191002105812646958586137088563637744375353649398628773260991505150440733726865577140929167523396991488942684731221450815110816636305772914785576103577004749167782467182537330394850363233683735249075762417315932282197889767852694802412850433665392567969026613535291496196380495893532693887983428217974034226650830210408478322369999350077128555502801161846080447808907164547083387945790791693520338803840483395917530382982452013809668683639837930929739566272451438948990164360075680869469297271745935402758716262601620029378389594191875725011511734382633602717173003964349994776386392546104193863933021040694970359871126624135823541317972351646012087491940230254726934523699246121984667861152194321264810417908773789607754586708995736853838192056917613213982099792155167757627636159347848465376111812544725236862570719388547202519820363200201095678051563484631991354379335648014151740487204724350750033211016229002767905363846186484944611801670216895419914854193813834276802539276809448398206388319720658293516762303306685530562502321369327966667001071963835968157912978849075924877170413432830115154723611159447225376734818694520725674371923586813537109397190953811788748141329087525774401685735153029586950320885827262741510902383852534958046283116184031394973391085758022183690093906924794966422844848039212868945921088550666340323515167103321584385418735363623796849176456752154397171206615541862920525258847943801746382606088288462067222994262147093813780054243028737956617647550754496374075512466754047093618141791062283466301233851937451585385040379913579862719773895948574523274467214344857952118294538660469691293987146798947520889684333004405062131328232205097427958933874217023976664839579931348656333900053164749218843522571568939832914570149407809666555324879830054755319275523705346683693198298732881608251515877725878024439958664319962869183913631389603072183864096169993513813603779836596519350184946265887748082536666885927083915993467508444690434805442977224585568926217137515403788917176806887820165238830114654295627883394570728472730470510401609395814155541351085590035571011545754057289616134610707254527344972329619587170323368583746801006012095457485172778889813264888246199830694944887401111265232240316093353095148024082815768828609823767864328636773985051302932247635123663351617145451161713826042891397332183509810360461766660177826230307508998108179877840426383637672461780914510691823096768102847074309890026820612614356435078092284545685325404751963539466499810071346928772227194510479969379355264062967034278271069602851886816139019346140442173815410612542941197217192892758656624156557897606964538321971625090475102492483539754855949547130354272897978220697987608454300086898624741059362121719708380664299319780818360292478782616198090820584093383646962610137550147614291024845960889930435960981562698152538810806683618484447868243236369114859227476521327196352344130149525085438016094875008507900155863448025018591806210129671340426891645720792456725518073171510585954086477223055273056217689427701279721907422302732263644881226825512989425424062686493217028995748250260629341616810287822984936666847826917185133136710909202825648545067496105115981611717846374788060973086556816433948483764103064320404843966778510940465011088192947433477652447127406456689699126817044911362891317688392773692368297693271505541061788536313573723465640711984839537337865366890942527459852033537230105242434184551793270430311583071331525931355966714387991249548088249783159572888008603484392364250993703691553885629944119058661616826729035386301979174431121419413292693224263049679437232501645115821288714120297015489828807839040465062729829845179717685824415597586085048813190820679811401803917233567256365484911672499799999874941150168192676408415076350849833719282751225699859954004724151529569544069502891505373269208764192980975861609538208428366049766376367223097410348924487416991282828251282888024581386323086418973276228050092692658151564507331117197987107130596154038491432858685532408320408941648428149754201686568645831187679168356694305885667356777661265975022364499861665975508430375254655674080278848323462633764288533505934346462868944242364900401697721751316998373578267001996619836495864190688074293761916444949124160912658335294298135440917772003429339461728585494818142129539585654055130335810907304960123352965359101745848700632754281262695137583679763865808595690298430589895718447064816150604433278965037681930993646158584991765413011384739903442138027446342720547544499329854516938937831530498251840041302013081376373118578407694002028606384487441963158700987479052147328276982665351031111589391533323251550082109789616145297539204859024474912048490479601379983758721476925928448567369226076736116214872871759587116435819118410258653277917862810499046882712586331110404544071016064914180464471741339109539728352158300607839798262112127547340418312384544472173860597737488306140401287406040975914208460922575389851740722250647561782343517352379120303278067752984818961026865186730147291109933364811561135370998604705917609335565799267192072605657753758632739042893521159258077008642082110139366449858849003090563933795968397449683843767133134777281756312294416727297167041912830311695189788536268424177658290773015703951826936730268343836221165873101963061091544501609268378066008498318814803042821746255789728379089957448445642450151356541950100452458394732421323853110656546117656929496589708947426238542485608408336773418505917613999714451928623079444203012644132569340983375484929214011150267989244502771476170823548124848747276485255217435937722751425180414609127795879780455610228018748563776433231807259305295208695889481586784907090787060578759197981218327615706592137666432504559715153440952586583272512384576294207493992615792933651021572824207547529423278366540723290614650969979845948464703012660440661209963900694321927039134247574055231675885859948583856512647243099527913889274100033012827476073506665658973385067212452097974178408496658160504924180700541947261646872789520827805357534319083560415252514983623446923473524032513059266794706862561004419869824078710043780212086085344641895197403664519417187067007505731586303977812089378786257184116089063044818613895427666839731531706795993018606946330248826342936451540482680703623288743541482551709915952279685318098407436655665374440887788518537615891711294262498247067647073821547486961252874852521420837412920196012770498077184037715058824529495695389121761811805947660218615329992086065008015873700399177691912714662771255646398529877704241437869487641765008331546110439146211717479991639819411166137429832338271653734295055420940417661022318199790928214321183906380974487848133037183373899385380462262328237790868489202805863065900150304974340436523695249898029326333924012007573926262233752013385527690965515009820244275075759754298789652506809144381427987516394143725789566788487921142564180733472315209012860518609424373211106198190772303592286574953484199855501690911174456288968852011196661719887791648184938161913737085566378598491310495993257499563294802749926037846735112165599081683616251274866899395212445503019546788540078914766291606387118787455451299722498807845591184745897251236543589673116312371790794736458777131745816185406201162187467610642567570517250897404587344945744788109121201108288100609393747377763755170647329853667228904841430066662361066623841851228445149848284760018656259440270942497146696215152723319774290984777358582885380942359426293883052625994512239200543639965872486897803078914004447721908742947008777726137819419772690597941068156332518111325349083398828191283620038573082913124412434992277984887432992329165193204650214640790477717061708705155169994583961067954654629893281619805350778386907131732858940893642031402862445302436111257519687197066546449952113904687395821043039476090399272131546669693704274910844649700118744194282774575884232498056156128093369658820831965557523229165274139570931240631861560629977480362125062269922122737912741255732690958384356883495687904953010408146787106087560712005398049469299616634964558273399764958477706672367423939336210693174531027024647659594316539324224237404238942819220033877669257235080924115360636543897510040842595288350733374402305834399490060992341611323216400398797631713342953910426971626038419807622771579983341818389938311076749759459737132581973169935990831143220500940710418852522019855400360950194828434900691627376902573638764361212177584976875252871170302467236785756387854634189436264572597606205552766628239130288937742532146753308451736346587240385059170852887771041581978860736416298612459168956892659203838798501762075805032188130705805024308218141250426335594763788594474833956634721205057050668261574215464973818918302747711406601377388173040513344750033858955297729017794941833193472271917666494857357717386101760504949576512087595842162144895523718994575771400772054355419049934204369318604835632227038559585585778468279305566063996386850447329425750906889857545342177617087616623240442797003131927388805745301228057383929207003387829503100999711256450303698877630122625995640979921175498745293231823554915637746131820542287064148598484809723063028118314768418827961768639589434717521310743095654742101037587565351296084962439659364579901264591673689903009579715543808444612555321968682519852366706844138926512434628607867116568103681197925023366864437509855357859194247037382021850090817928676682751170144344304605500071606968242900324660114650005748364311759951611108679001396856347808222840841104382649831756568019552482232782122581681353595772114026337249471288321470610807507387043332690681829570266738154389503244178512673373920947937647304509325656465432039118380555661778620270036770581774738026304822597258618496026877937686913906316034661336969018574773201722919106562166091583491645459636346199571464901613646804307830029676456001279480709423954331521071760390906369222575892564373046724988982554233177308527846504851398072793572473894536684075560696433762773941283346166274280830456286381307532700446006039058255564563524917946412388731176744882789973123627763482727261561965004366573310230577458863957457277579731606319549979556542704735394804504693646084991652812675882594775845375108404333750858672236200814406137441452591807201224814628785368588959380934667083566343760206428154289031306714784167234743274527642251288235849997610025513227447879421375365736102478392762418905775042126534771430393984436579574156421770497502684981352128869272577552769053023475553207059586155356700156051389054118429723357743797097796828587995111459549940960302176089616064520945989127909648627657765728106850517738778565551569307123785970943896167678398175229154613074740294686717860061563770119008080228208375868832813117455439230920116296704294716982489680495961511168902063371633669595514317895171346144951237561775579089886980435465279568148816231800652571227142145507437954763798814441996110796745538093720995665708342983737990408306338240917031300845449291050381227646784432580985425537559773126188473587570743482628016995135280727854679142484834716478741945020063204947571987186564950499336514831729476346968306795269491363473552345516061103056585344321906423513138243425744787980724303548139273108783943158189712961020501617706668371464459091985957555824690231538775261525267115230759584639106938987104672159745777883887193472677318975872983022820073559605928901220315216629908680310977847202144250082145289178771510674431932752481060835955635395040330291992247598848167075551645381013708086194204690988744873985426216909679259689973699173418276049322343973107567589800787684628628902092387983882484650288523724748545598022560744002643427132618257707974992379858236556599614167509910432299984296555477320115524720735013922470906049396797794595557588122807369845081761508418887196064533891105936989876767569262883675777702442109342097779717048396268868234602746681647442300126932483029428850683229126941216957051621987319943597884949048206582811645477415287684288263438284781216855780249465918063631904831246496653517896801830182301374251733611622807732556513526223117592967915000411874616566642905747991802263227104535692112625156523663076602794861929235027550367029681151982118148950739473482889735570822258224963279597408056992925408218155501109334457362887222772671121475278025589290890609565318247207789414018317855767188617046723801003445831326559628770466676072869341754988492995080041695088348409879489258305895379398126813183388692432319830621191984851984728132289032510475631527116747058702917955726343527645306380237339763825385187370621473478529581351883955946489242199461161970221850194574863516406062298926367208486004708153677830595940807280338653620905199256426148815266437009795772746601855245676226464590517953802096252832981046530910116633930907868766926628917670712129958917891179161000480774952053055012343012961571179222192891426441223432367421425246296079107918221327209756349881136844391828670257617518793608264929953280310617729773105499997764371932913556606367401689527168031117389672051135266664566455898104348687422483968332621061055434895212570087599997884497040026023955306909427682817176069689931432172412159393658020573197176207692486658797794728532998213855412553887226518138911305483275013007105279798938206538638012830800707108975316357949857344161879647694191170837619315852368691597152245005933822658026448879166756772801134646600596402925324621578341718280038855196818233077844330036157228386847653097991131026860895229623074795842422836758672949846857170541085594115444160026194361091917218354127136158959815632882105293351030910722077485044027657119156658476489030870941725724167230485956063389389188442135697721964278835392799308990198461690789347288752362621814333114090899364638536938660390144728222193289834131246230369618148785242141514753666569731829877327273989052909254012660678504665908519462716452120650742461212619120429866690836655510111939671950173575245230759188247321395467105695718491703035803975071661853894137827515460082556929163807324112900739085804448902886413146651161390394889741937843144700373733774811538826219173455184168596075925718240800666609778479619172912586377995482155047303635880599072557837265824027409914851994060225420764299622752745966354424746748006884876864967105420382548413941408553505397367753533541607450541097541440370512757711461166649274439704781703921293859569855603481127889239058167855479011543112338384549134747218727804545062468910786914531191872720402850795020333360904169591577582977206537649238495800065573539079748254117609619301496627543626613252711458563002576899438721392697175289056232735075970757429203779447481780252380117178133682660669307119079917226762279693301967516092811181656975230227499488375948778930470738852231842045167185984007634058960113658265911618723465945918884457762648875091240001171754475238573021470982299349232574127322953348541261159850530364548220815592586002316257686726599749962351415549839976797200107123801624869268259885904586797455498013086193656172487586997524929330459880670534744377404057447868352800472010792169780482473613283262985587156759018043894829201505371419847774337838327246208068907052088436754477981104169876646727885660059847523590087561586863156358390483586350564576938642096677805155154539511982665947814058933332194773775086878007559931872693928491457712962392728133218551262162461473932452019024341809158512999377737993654951412123075080120980586225186779414317932100299038266919931315099610782331769792831478341215566671405893589868734901698045596498241433039717327964624944743106294741288538177357766697379247785571799064063019560398964202815925198567344642561079378985159051022426540649594486131700478325955951481515467374596955721671060569662130804679102061659619490064201869407347687281161814307559440741134892778102455554319667323056461147444330184954339827732684542377109897344675353527247699232938942213578693243018484602928543226795810948346624353662735576138646570485783831773536723956468592713483399174882019046862255110430195904748509221424224647042255263805523151742807866558018350197331646085973598585800706933560841600398556653598688593547183678204513834065428755274891461123124688182274765697155858085377237098972223867534702383792618823844211044364713277142922440794821917819953598910519506411119561740190462033403545276818897996544423426047359644269109462230828317880663922368452456561924915462131220193339775819648646316925296732796288747048513636027571583512398658092185596489267528522391719224049121139313539563892829195448263502802733966720217174900232438439251848738853493353003097745743883080394201589577596165793687092666840415080963701978364279091449181805918234226480103888210604295885197795679970559065435484403618409239766691227039620169143142271986695931356573663331108876100876361249521913129528305163291594313516877823955004244102139580180681423658465140667234810418577288906807724213041515587137160216499243277304389470781906364757749380991540048278278154747125453401851578063066730475327387232264634358928579416570951686493899412925650079351035141153913697438245938994963336986239542969696354586403765416627239799591524908290096778520026242903655924547732370404445683924057746302144943435020269873040496656620827917948220693209971844839061644578765352715351105899486550691821697605223852942021344332085677039877955533820128102527690428666659986930222290636808219575887351240873880099570624764431692666127377582023046788503470646461359185151521605374213378128575190908578104556078108886142906260166236364315308189860266308248067852793186799694752707816698795370142315367486867129562424053680525495128542433547980794834862985609676358488373642254713601504281425854992290920775712182858555554384448439067580018211393649715546630885327312915955384711416541597432032221741317534697761494178259690656522280835228775322420383225995944100958603110119155880757560214073125014896218842520495260168356223974395254701543460777337970630438267700700596337622564960656656512302772390802817485543033788662007807998090690627744620579441272589901937705398391491835748625909363750161259009329340133505209699823272903672328254796686323823692144799159065271032229772719980606738097784094829718451186987510957653697483734120683514051174399682803812865862261583372627815606074184944890568775541284160834529679804638718169949239130137975756284435044096975274235576785376695938941143942849295796142703204993943236189434968594602357150357871922885437525944380114068623676351699804689889529344879669057971574578749986737492445802018490256448462450277109413605562266529236616496830760730984220973870008091484574209260729757501710640695704856129435261708153759812699688426758185563412156700004604799446476021767562215353560103632053740145861842086444142332460704643398806339438015797408211649444251096425681308705087786605327660485271227026826898859739110450246027415713223417677188931774601700691101331490386674520677484503904564818089259420039597804596131070130599685948863080833629794362344771701090623354310712505911475412088163818191970666286919981035210406235359381382651436948392018697746970787208274014506900467378494537379087695506548402098134407994400146554436403958001167967405681076031579478130101666781387303903847809263938940116072685100646936062084547842338604102658252142608526493753692241885279142465605473961525018038737210234394921704997359206907995142479269065372912130183208316622385435668089923954055804237360721776384960762182446794188043178424701494382849930531183190226814533068163928857569869330567571968357319569932999254289736514723012642932554437756798856922027101589163953354630084230607913687983867520613024335327753345883243215834463213272715240570994909054667143919766721044038071813234915225093893202215846315432882204401263728277809371186937228566462142977193827946425632555613654322597824234218052943694582561229208378768799948213210981714904195687786274085208107773122862640564014446483572605571888268720777548390360714674173254750820428892764481930218842995430966211845187332477371170861516568851586515099372988712289553957179042360194367886316815354815961391843036844747152728011366360408313179356768564689961641720492813278050037383555431490953068458634890177137632938099979046936639745082107258698114115690396766295548419780110668775348097030537338096700714295399199864562463089358096374007536698462306168110839959133157104009604566316213109183046624949546360253829935107974284256218391132385916097674923632996104531930059138719525251192724121980412570299576473473507962929126150332012239390759133575896109742015869457141877877156303361019929222973844811931868797941094155123673902823426064311778434818182730304649000965114703432340480674735537940469878354746750162671803445188394608418362746952371873585991091970686135463225137088859175875482773126301675287797175811583932995090326780184620191675925283509442775056984570911292102658590930426292828641132490487080989856610919490367245770406078608699518410048222446293322248939720471201062560692627440842035943699388557268603222948266915889978181722224456383596588270896932581921694904532802199235704340051791838199686604168315715708635771640061843704499885227542896241511880239863192201346385674185782753861364208905639643600776667484950051777748512140762697679621501430669565310854894595392593441126037369515757637575864563316278652235030835388764316758536278760174421410897388152356066375023714844629092108394004766337530620228774416135486946710942730805117155953147860251099339260061234966587260775309213671889524838190958446171054042004866665222318726004729569546733591676802010084514329763166637276604134380738304635064710386204974214603605031811894924241050626480646519818967236683635127222230402922483632090943013033817972755631903547635269999090988822165084471783017289903839375815754854630376252066896395132341212313294008959745009689450812819380433749641875459187570001296835081150050425104244305573127147094676060913412612720676110068072155086472438709253286148271668376227607361427379800575063513058907724053657699404301777134035537744145456507585975069812628014179069997492964166130424376909812901184819686916232152894265522736544223901805885896724304436192097670345443568698574782990503550157060306158914754939351898076197225258564686918596601412849322269810842777887097753341063825968453190160147924576834368203186409908977793786754732587227499605080731766981198244998478330810691788909497113733186058761242778549160415958222032300950296052961631929525724238004772817491503535637156902476650539550058274433798704179216915169096243387454683530088747715371692609172935292882554378840579838036045733531203818103822695503944281953903682847711339322849490781383082780934010740705730683669687277921007767875117446787465975701464371689475744023294147615652247751727881507355381025160495536583516313579402556779476953240112183183236794319778661818681902075036237423287096233329944685620844740376066379497226066524318121137701257159239461580803983412283324383959902230180082131476469231433962256593245288047062357808179635998100115184754309306737473005369932244922484719206288731854016015632492832582060612134176159923388826862128346877366455038098500566971978186918885229818988958196750955295290013518914713689380421688204270465640159155824837412348457107830490751855016286994049296175811511672391408812782435394437640257375187880277961628455899630027227935783174483853364812684445993644232824322778624104875080485576447855176654257263828165373887987745060425815357453117835536482902278482019700622169455592379116072642434868369206104717354602522189367438918557028456392704623804264969871358073753816363039981087837750294400965893666306088642864964664251683713976991730890993983018207792086351149676852071904201781801020775361736368534190298782487584313391769163837798031103599049316074400745311182799679496518735992532826349048258078130744912334633597384971111810883174050332497326719383908305505330850284048776274052837430000031554260737228017453860053466949388188573391288077348865991779467572070004522549250715455511605971779197276073758337237145689362642932852885277632132349329299767818476447024245429730996746884090541800117676785867284864756230422270221864313153363489046732722465165307290323611922406163308602038986707806745285561272126962452173511479001255937534692926308066180616707092056083863665492574718139577918089717269456330499018284587826595655118416961870800369683281261225841027213439608501973039026713478450580401260647455822414284384611296532451824548716158260025783723865867730344962910794170816133764084594765818486946811356256891496539011843318904343752662752228353690129794292825663171851027265047844600766618094496661424802663901371485060668852530347684282484185114461219208934688118592258635438007839898901942307896850946092194884319045876802171355538361872014536844739699678718759661482643578185598178451060408893956170487407007227441728161743779806228913247619299836040157978040032234737492700344082872054501002471638434000189043247733409494688984317325461801122898408425379613045588168951605511504576525221572782847858109562264807838031587175295421494371054581452316345892874703039366116950577284896011138381350769337960946074121330819540387489563648386387088510049448795889522031787940440620316710313943625153126381939946174825325374264242412558891426890083332249902643532125451486628799700513783934158432230574178234155218233245966289477666591663014743737763756703663362846517659502370733943238238087689631960165609554618596111373894612603073419828214480003340143475008954473352220632900968243320925453789505854429493326955175088380111442237102390879504115728221799056071533288984105665941425714612553514272502755512650141416058560943697666670319313228936382853320120256191591491824586312761842726114037227778541756808687477102155519498221697669155929824124213351994863923673226446685221460615086437754511511034748894450311927151692668510895232513294345054651051607145512667707757718699527326979074698341182711593808348901464173075501223111585111443681634911837606326446228488723955112821037773716169351551231906352115976662187119237725716381484897504106582773311512357790946522509292648008151060168886124261991818080149582925871007647681251989002608041816523525775917918013420655893753185491395396658813459400865752335615726954209375834957616637424230861434837016098351787361247630770035425005387825402076643370602806566521587714226866873641871943976964686468906023331216622267042437022320370438506658167921296153312311611156270075801332463306116874649731912602680658839624905959954687336203267412055736941690584068762118309061884714558811418922738107504887888046310964910662963838821683807329739122664046995480800398341791877084242179757436216219205382958417795260241002986970868417144434194717026798828372953713620200732197487697864772350213583399546671836039958902203248547756763150108988099901433878092546596461586204983423867568393160947890964264181156326367635803935002673008739099689844230778267485659013570842855676751107469380014932604657564412378488902680136630948388114231675142508501429276355478094508195485490210966178213346242339147753543661188464663164302499819516291134466217466086518999622088344588995284231163258059441158162133829028732579971732715752246941953221946914125280300346600309024805621486601502198762311463621492502391920592934994603403828137964407029760887015341857659444567858978039576711573137315293795324962228668213472169294616169989716148562642844852351125002080527057104400911151364865923597605751421478048771662467379541100229106379351977996095577128258140347697441266664821293440837510632095567181641048238222905442560728865447453034470440351367489622262488356107859262365399796631623238709908210756805633506530853453645189583629836105655264016779072150858277639517591002702467327217773328599449569423732574887875296637721123950604463526236899804030411504088885605630535407538857955386867452740278139836704510334291119564758975373368102431797726051552185401637590836766847119059370240720292444968666687987473360158896896937311706389487681906544153293704539501008041013835331573131590304743774202663931174718641847963979398310664474339076570832321311426609119250379085564548336200451336677909231174674363387202887190482811644146961441615259578721976233563020282040205629985919546321837745470179497652155089755739151747044320085676144611547296704605699167084306009774844100533727674301713570289552766988308171120414282356878452359164570201334596728342419363916309623926082778095042354635272593151706268854856344782592743371355349090317953483488034104823453387055717071389006757565543516552295468777607583147751842150985843014618792322336841429884113324071667305357892800024266290657607158571362440909235944530576626747004364618127201516941239352993485846914344624486118322118528003543460297161235962373768492812202012242493500995135695514291642327213883262821921957460453967475670730313118583741622912163771376598536798550474770869286558684225862225520562491875751073231210756034130550528202470193251713113026754427323483471065508920737777379470461949610297751509387231447213518571562244483249265853504980568759216683743801330324371058898116248301889043386341581139561556222772435085799133324762439412399157385126543187968293745224405602194904461431775305554188197996584442559081368949876752107331927288920741014611950467244491922813094492760513181701792785030749132465529869641631225399617761512885568230149303221375277224932167234364430930898822260948354707362628459776225431850220549090082312124850080994644342610697920546607306355952963845704997902312699738478253816861976535999301204855230284575747741226961755768405396131509337143249062057306862130784498141510961232206315728601786450035754833325637545832036248681855654466716765927295826611362171975511655255193271038850971548825146038378553859397100484895274973568084572629278636817098141294224537591944271333109309626850487315911894006137059574600963843882491841815636751079629046370082958055632791226480957408323706291962945182242924486103347561684026827545830332626364001752024295616299933851595926673341991663494428838099014566822288927619185313749585915849965490440890699472566620418690869523293633823940902735369848513380812443018800156301018171732570830261746113344432766221715916968811367007058441302753770796898323804253271948535479348989203915064341902896153349176327369477472937347509718275995917000061697459242587650444554487252009555315189888925077059953027085695246103880422755482658877428549748158286221823199865223162072434398450265899866972986721741539082282287005901192262846101593915816124704146114095887716387413270658703269023535132288954696380012166239641411646467900952391002247251170793819856743293399048213867341125262566203002534204406082296785837351220369707095712324709713564399818786407439660814222796308601495917938782777429427936459608924047408107036796323822039901626951919161966947722355530008885110441712605649467300230379415998610902426579118342505508434951769334939096244114228229542253032276771439662044473319378209728872426623916726155185526453294773853232279554437483777190631114964019252900336013451806624787198344223170691235571564880307696041716700144282627225810181684203552970056020115166572594024258317303907171342650877779369612260720390259201483832513655537188406944133715537093546927676543297614895091131271992029240981534481482972932605730480894243732971981137277510021808988512534989928921660763920641370885654983686814784390710663893382381333823946108616426923724590033618998242948012321080061834219522584222675950460476049826912901310961732919248726712597470014195421942960128185339430359381668021824458533345406016589562776062212135211545057219360378925874313800673663831844860113273237476003997074639000101360129717274372993245498525465722350307859968960592700642645545731555400098038485643826692740271208886919372110526125324060810892602880763180618621031667301867756424330424368566874602412319213064985177951314011392614048341812343456496152370536328366848225354025914247249025298214385884672984253152406456179936295136078926703092561098928206730381585744073843288600582718571613884320797608034309771536680927094486796915456571759447467673882564754934996347075767165614776634508276927088700802908881940198764615638582257935505713844720923790208585276305638933273465250885877860577766591071501284002109522395155577406342184753856981135643866903254772157425361589788312660952940266110826779123932428919472493322326407825915019390589643605266332133012337257239307218467014463966613165058805855755014141827060438352732132198605017790551791684809602220554256435264488899890886429586800637770231718208452041813012288855415825974692589443578035281703365615732764175326880794077438936367959322408383798415598222145713088663182663737498032293516399570364645807367533774346858582968937625507878991724165208002295505138066133017191372450068411788421503729280960694262165804484329460761353254073472035855580169728301643829212306530441531143407388171785515229026003503344295850364561418830609233073968396988711170633824866420858622571936382327352412722128652415106063208094783227266753005004563077061571664892194876015135849112778261873930176189556867485809379921600664952117418606139299193587150750714375535620766316599911215830688321476748614818388320383354625129997531201341429792625599250986478234545569647017483510437785086067077805796299357828267660031101229245022957331311369167561174329621607986087178580125077254757047063225113509632242606558747011334430777831320691140413895942915154965139556360568438040348819343686180485413107953155688357348521664677249542983655588768514632970526954140071055545062139559848295600853216572358647866605462849320957465974255704205447872160568628637169835288626235568528564272357248834804947601099162685400739842196236361308426337288240652631436705837869843358268666372680500706443722393062551313608413424704164182581084759938144715879538372922971906491046509555009482599061857922498226911803989973433652613895851659222676835464953187564783372737423823350083888557665622895773235318366496442694035472158821718878830054180327183817941440732321039952639966628560811291293900086259110063547537366917484266773458957724334402064260091814246992662579147552239036546730996919992366966066215068869616345863576242443700184635460179590077095025840536968259475111424664465434641625583111111215093938536663874586325211629285881297632799364972883531008054018551601809780292523845118369885166013427109414141844717317082573303059360657499302314674069483130924678057395481458312358110799653780767088523813937269414698950963340143322845004547494927313694359994788641400154445751677596943391797811647279680597026410189247138771302656486062117873027491013558201385948801817292180569315456296675212646782982844399090399530749362173475989951432212306214835857022004433618983177828961862525232318842324013744590771263212110789544770665113827485795603907245098662453299573500667601067584041480731384676524634791070632500280933147735134440157451069128522012259197671129345560441382200470475098989503432785556549258757026005404623940388222200372935572726745938012717245308433025439257076606264170166473242658998128660076670359535147510350777461010912518947013930275246685577857709572013994264396917135182461401820894907708520001832880455459439663159240135100673948674150917451813580518160238266272064118461822777169100955417128331030757367916324915088525539766640307309763082742925700311712750893072858931612761512685079184132396496702228776426648145412606977647452837991320996415487853525693461799720081062310528860057082888249791868756974523610356518955106929285584079583902624727778085656057579411096032732424661598047157508116863400494949866457215235210045637384449852449056246987053782706718542634555628089537295334082115657023168347082476930720914091482887320509168778489135702753102453452786939232023148483443988798507729471130894754628655657514335205027530290200062878305721039774098448453351171092825318678695622670365765649060458368022189467170984009957655446496315132567216981034650708225779396167477135932873970180525985125216497635315411115584763928136749153756043600932830998437739196219279992905082695749040031028815556795564106089813501829045530853415020431805842175121417945202982706236784871689109773609708476823767001572463625597865661185560529668064434787436862594148782402171741510693867286993177548752924451122391019220998662914283193686165817469241860239425631929625548187045838005069172278525053548223143881419565262528139277413831839861582986437525888557659640655386932662861605531502768318144894063811830023201556412964412672286910597936677203986237073763998770514916074120872990139954000796544292343310799778254173816800743554483507870358485964973802415709388381917143954595107228115762034426232568929855431137898122499569681897191905426293595789764021684107819058128914930337750055487675484072221735935965245264258891353662065847000580009026917737269232760515784854073972439781946391942359215977460438158281713519514806530484944034637657723969604194025029560336525790969461719439302160387989370183042948282878711509776991387600952343675047639196663480442234473266186409866811546273691273786692901014590200864274370908313778817564133689216838265425305518141966767387909464902939422692091253204785755212827551017034886718017816809685142644246484592869542253679104662384270173906994307175254470891828723052212810976208469019637105760710512024032725487289540243151587605857639886285143624411414181853717760367400751711670433415160894147410309569499661716320555129057073816543890328422138433574143651020007063448363842873827971853014016067276015832207182169616581172561073732499109218042899171234603583800185273068183597805792619713036970046263940817844951783250047361136960817936799965859886060850455815419417950300962301184811116764077751869719031350011435971802685965826391744944682484579925216997536435799489289267124523972348026832615618107174801283151575404544016635063320998871022810837752748944762983608546703808490278839295549382473356042715170411051734740682623062352623978878454491032073034613646354161249543480081516312377934079875245156856149771239375958529914742357206974739927570206945185971414580693658007112182870938505401186921421551430079929383182033060659478796004383406183877425908913673531781455077468284483086196691383284343309412627184121714501147352021688364745482210067356161400150133143984901354997913308301412943457679168818624048263055260852050851802382547448991189097688401822980120577665520817267261130529951126932075738181769288004402807216316413526012402988118467470485032922954201637721448117678692314604751183884518443100361496948616811987887801977150203359261356411099777895401866952994983812600707438802883517739551640328532105303257155967129650515997581894936454106005898105550015580681486025482979438369028959938905789432930084051519044929706245040762440753074905712616516529220516917571447841877492353558021587131730155572691574503704549278834731366007687132302202585322745046140596448128472373531442510464350151310376603968416129911198452264791261261667931143282979636711164616059058050400328260003097570129802057152820164933370578053001777319344613858903138548474018594586137369781424850171018089046715073614966727885829283557346368015181455892473366415354834654736348701353890502022514970969763310147735261288861687337358141900667351269380327189289966061915841463865156897048893817587140446937434264461558301370985672994195710990261728223025920604586795510410245080974149479859396923569817448841787464486370833210014672072930424176124269396584856795191555124256401996775277399036035533278789706908326039976075962055835836254036348657875028022915762835414196148716296637917982557714116992823466734190180213907911956786316964317045321563537183218179872079120362748869424785512796035210342814749105264089965216382928417267886009309599747998108730821752474553909752377881919660361665075398003830565969106949118708856149649278894003125336896861656827809083657240623755293149660815774619721482833164827258601327470518583022141334228426205197633473756913479238779060714306133983607589844725734335025653027779782400626737602285107611472023310991056858604854620972749721378323577015008951250199538916802307420316705437129285244064688871808735787846353025352944438501576911092942043482372025281744373785708899087554106404359064412211069533283930829796156570767240163155615912134215024104241971886343504505976519738479922627274691841954778569581208211878894026428756444776117159034880490285529695379894875535252688254134128941049132662062852837599138179405706694084287007241782217337382533077112961984747701770804286480230967869169198330050390099571398993960246158930858550245286134849084827819947142751548271108217224200892746520912550455727778565986684186959940478398577374252485048626669407451044662593059431056453520933772749062204704293852822078074313437232983752091320617640422260930200288547950188246770242923846445457561642274397903782940218180601623253487724971391531619769044999911704677662154346868818500921618887726968852836726330959707573780911169123836195782418639767333210560885451533717131613535384967042645661537735616766499077017669172737720735329575499251220273801247138425387004480463605221972364318292380870083536256126600989737331128288343420934574949051343004100536320897872750730491969291846213259456754923228219155109026602313602047967606591818450441182146922570963241741824204818395325677865601519967831310523026845223286172119121215078919755688760354207807502116535792347042369385624333849669600025635779196629853220126455825078219936818430433915137045861229779193661418791186260176601855792200991417323523027854628944219584118548665380245737261489347773529305735075886546651177104561203301602805090160238922841738798486533261066688309555325384833099798618106868139426061961265267572490127570820140882743130434390704424300814516162654201426434191629957221569476882848750869741870012217106655748126402761621351375896442335425123464736739856258787484693943510539497573908404593094898540728085374147688366483490168656570734380216854945386548282497385124072179838822896676092875577707320269926720011325594392780927789301933007265397248329348415792136428326204047180806903780182326007218288938606797045732282452450959009676555854291186456253791481987094682332254505696783537386342968469053535941231423032043750684033814679495216343890450945634496119342977570310172779679458070378489241578471937882374491115088988617171393796571375418617265799102164410236520985513355428979566444816100135795792754054695385382452324153984516765858859126581227928970799955981191311591349145123628686196476875782858310053709217625721080225618995715114251767049186277213272644838831728300782848586765452325745158339804550985769252276782634739867190809705109871718606055483790711062344262520222020747523253404725877423577872291263426354631752540827752052279959454380769445116457116957361996321330245442772631546269910860811257279610837964049127406195266239824043903458449222343615070464393901811942992091450370740453322320748717918761153475228491170300911742513951517201738464209235497751112884762732225263674038116774585311210082195137953892924138630021428551148602929291199460522143546598434896278106174408252200563055711529076764313709038381444946821103437383127981397429043376573448958516621755699488331390339526393896744419876809753279719376311981654914996605133303259905400336407369952064121890340174296548021240263727988709943302521518844870312574676864730346869403181478656929575699703030649893369356141157761508481198624199324615952016126731439393721932685130880103540420220033246405106277630441646779120181572674609286258008291486473579670445410944485929404197173536322060483687734563461745681632499125651318092758361618496052524957296740262867586152686991654440334684487050966426769148050592679757078552019934407943478000167713357922386721850906791821752712672671567773877189460775811799361418795748767027933437937849017555893503014410299129052027235214699094126120233433463619454365680012135630135701977652952762198787472836820815112281277249292318928707114789589813883928771812629501624287978146259593393569136928879736585131509364409657657862974102420728300415156652207832974459901642357373609738061905033324071149723526565113565809745803003466702127889349233138367911357251692975811823872168475535048681571357768348137070678027815481330480818546089735961212658985287082366197572640279573834397657866320004374817873621728446537186750139514373262971187504943438237933898993708491352047229011179752968838504064275048213037153597504984633603398372258985898689347921758479028197350149964410635025553803888864102522197617832609032773701880038238724916389463953994524676449966621537437765374345707773158071769490324413244414679950686667748579543208556215232559180966553843645947740378033742592399681710311265368383624128584354438051315644934069799054522489877832557113315596102463504994713890337468299110682039666862119807715233823252573279025716591208895875829206382616745403677848799528514232576708631883954037157255922296097752382817077340209005718614230049787749596567446233119899887540771165105920212502388506483520295168245859959488410030095137308183808968027582235298029692013951473899089051024246584135974158904150985905131976247825607565223365241517418264093534610212176146528931089831384746578990598983008737044477519321658624068690755339023343288834541602556376209322832221907557814077650318327645739197787598498022471078379000591860863969781297494723441832186471694692215047492578567278674975772253984287838840338774849974860703136692278239778236118883761093482458113235631825286474363561063863869688754131797019034067497240649730460177245438679790434082904298140871807289537978091010135311468597680049246760404245714021990021803635546224648344063532797769567923075292074691093022195037218150838742058299212983394042578211552581132695199822402859820163663700996858188340087894326445886849936000316621021817679698242359416303530156101941824722526010506173315758574952300654948546075125950029957972545159480684891993785038012975117837556491580167499687417176365325960584659120730210170876927294738305772744959916722706273507620384857992321868942028945836632879148302079404982769832099915255882320419760738321376119346556931697657553889311797053780643524675612129400324398056325313745166739485971728763103554356429450810357053362804510514907714305937222446736846036088271656535436375075673434314696043836822951714228409120119798868223105296637431523548229911511484215693037499861950436468013452587035211419146193180689591113918838402669989849188787923534387484778436533333100947329929566018637446329547280891445410098294689242829292096208293788095671250693445649034468313225800687054238511011602489208749446128366712581671792899568393995637904083635347795456110607347024940379352520255399722326686299816242838527219802523182095192573233516311670149584375167346563190412762150465309909243411672250694832981714391674809328678650006235258965493579519433200140636536897083330551486219722434445915524588146674370370319103020286174525654410858765803696144207918265590457277051609487274206071823498750716257368922911758127317436433111326809269221030042827097246591253699042182100401475919802696092665797262530798833858750993996249313269311940206473392829762129682932612273353245077764348967843509188467252910148970283999589790386349344624354614747932901289294366847476781712841559203405532410110903321438832319280050807497865183398211871128482454468946948650045483006719259727779148840093068602791185719870914127690735567434678228520686960820104254753880280781978903068266634650826557201397507451278429778114376414522997961632241785651355408628811579067461905517786676918764940842591183185822391901554535937118949943943855916748135460877989833932299848463768004995492072941024260837328922100180376505102104943348918093202116350907859785489513779989197169602884690609264333955871544456503254017653799361124737297990278165598295947733869073234641499844001466031200607520991949482804845956278432398674572799698408713776904491164533461490960486348787967175028553728862385912393421375049482770029118531624037635342555756295022140312975270693949863547279556313429981146592994431075465492084961225646581326730758479758317233935204260202080573985328479185982658599965002090606461903317897352710622817060595393778792287963002784880684848490438991425775787687031169079404993051395415130801452202668000534778556796845707980262218694936761288718367890511802617385989010835707886480900917918625892477952940882134036754247376975149230590800080516532411267475950197631712691842517210285476317037559876811215249062163294079810386860163550911813419465160216586434691692409904509480565896625493292811629603898475728230211860020157768679189246052520919313487223084475170711987378134553217197217512374830082277783184797051213602169057350148749773955559992129497410883134373223013333852863577775093642497661189615715853968694101519252230817860443248931907919904000731314888566499202713195347302763891473368500928084657568699581042384966080224606337329147151770259212056785708410604598428095967826212336213849153120084029946363584853640932498340871598814892295536189047499396001346922101026535453537643036564428941828307543395366318017187382182624463887601247625980052353503696653980625676066987100140077189278098983120945340612195153924402899071455184527821625908639068688931591502913054785095491606879364868166481276467620430138457104546669141832780316132446823167109522731017652899774366747821279211479791189111978138248687748600835249960091604367700083148117972301390033053692462291653758373479153507072755289346758278082234499856112841973093696050489538685979058110456665444991998308930779877981737440653764429891742536243930675209393316573745201734539217927278668363080287889181059011075171198146197452052706402619076357895991789241842044358105162588912955390534730512775710388825770066471391772183231952196553992435764642393421936740001134292375647213157035775047488209986786647515886053414213669744601279153078114597176320202483689137994176881846288985128390342232177571231380453109438402402501533353327395736456611437636748404950168976127624005813943515598355541521654696171489860174067649367553671534854336719265102687791604238907101885243191715953203988263244689618198606006998822707179379413414437020716714373080182368827982866442780516956148771168152997846868317015441364647516139417804611886624467876355886511863093220316588848183988572194093827814685982996586974272605677850698756631130646711635594654239400354204832115536672076868360295610567326709952175434999023297816937900721397067052797971976037559914396291542917430793909909791764631260672040624540168529271585948389259201749793644604174699413091094333684843887187535865729619367127928079047495441504467154366865767244464617172211907135723228162310900239319311235971830491018919563509634533626324855287535795053242022661945007226578488105386675418419227425756550313704913483813584855882858965741157640939677482391003623579736894388067759349448877939057482737379997837358401012334827829502710233926135475753748033619370529663356022244172340933558334836969601354469837009389741894091634745607012864760613155305821657632889612683783840818525681536820343002479572027822313758485064454028482497775540929556453323171687697586142786545979137316541531008858148726525357229769955239792572800941459830681846267811833205258786195617365823087207747954097504915822699177230879923985050546888685026378126564910855244795010016381266966087489546908117485625579366263788964677421424666320599372939015595559810509559047774827220796105253589548672668036419900009922913394609890728216697483874910359555635769593369642816269114749883363158809671462818862306390004257768788887394117880834621387881091968211229937609686889696515074133124507553230982812976796122759299999418400890616536429373511913245445136378770638158281230583314006079123681477377778030178534048215300770729782355170866456868909986460071101730792239182853644566686278828096692785361460701447406678732527507015767868489087307629422141830745807125643271795141978415026560713554248807012108526226742340656609438575318820423402656020888367584092344904026925392363440035878118472881905624100195553963435466993679040068376011212334202715947307052228094735518533113369835296873737374316981771995164573529711757099811848126948018237358861086645340882973814681278897364364548394211987181155942650750343695129988883984125658709188957549706064668654316844200578649768244957164501609932385691973186429233173879180870530453755168887039270334562030647195548663706378319624565724449683512656506202922974253722766533538755662626077415997242308980754197486420460085120719891823488942411587716243302219032387274639958145650149502917176053512544618479142114302122833872524825586218474642084368059354627490474253604263878175234482478419655253303333684698630174984952160846987847847729398449129051004177619075565887875175864973541051396018536166845456002134066646188434333869158961291801180699616235586340854415489555691977546945979540194650198155399798161818760100233887564049476770428081439710165934824578087484703682034323525051088932434604023936132539789777360725393348606985492592511542354465699578215265109020165636962596525339420413501792495517438365576029909744991341663646469344672312033398444127911992497915781053742842056962075158349947942316468391095499755763559831623855894134050932957307477318545868471101084100226184655960834731525213675305317333542739820373742798169624446686740722391752491509923377183896049360016729422742874285961971625687733875461443664354516854484252438105255152691066136892489310623856077884221087518539352690391348524210950358045991712125926242450900576332107474877494985578794857899199270850668758330856939176919096876278378750071367256101125998041688606876738624740284210258143296041193721826737900567058404414813774656273259607891069400590261736157373117167526626038555351325729178452937645615124601618024765013722758207364797243162714897741506422428241565393995687019128830497767214380981045381879743473488373325505314261704960950954264418449155119456108417645711727589326947040682165924698154110589412006235951673774687677209557745394186498285024662352307426069914266761031534450164319493770540599199682490635011993199706509343550924952136992465406732954785454018247539278877705044711359241319925881285340999630178728130507083353786600953499355783500798191305279669382885437646242648695196773550946224631200194480033279687360328709748307071967783859873380743136755110993647657607629328679675816920852969046284572824800673405013270400282469466302656843851866998625692843462944639580516900537516642956319276130251259099003986786707785631287344726610515059349892978044903460357574966289592130674043008022063352018875090149671278571064843652990799248942077181705829524318579870248116749023897297807659967953240598685424522030433106348247135969094124826961854117032613537780371680401052294293378938016028999295899168977867235909847875304687987656123850750801396848310694615245746318558514735487745263137104587379366700716382490927668317562403633401402306718100947467275325824269326990663520061930872420530131764047469223677135549047982577558314678441964550194262733128877341131023983026341556797236602498783669341665273284651001954483259065726636490839581757135774463712904922302792106529631860058478304778529176334984952552692195487947591302860613952963558593288356742248722938427921387338799732441210690817513648991724613242273490695743012254266291714906858685489829484190185045984994239015719762343297224666956619821956560047352760740233115630367511012263727375477106005893281267258689784722763781557260662402756389084655235237594950242595688803854303979129632564255689556100403913352140575359554684880344442797761093292530699056973111085033708585303486118867400387194530685496426849328184714522089192252049920098492786865352649284209478448188478812024457918762845755762820512455021052516770273397919916210350569183543201803768811590333271282261087821319297766131939892497930430034309603620974599502516091126737925172042194114701300340592660747262085803171266165368149908684316265804941944917028175195967829485002596778271434795509788618903007855105457548110295904980588026277618944217502330965584401625679270256372600982102215596351414180129477076252483888325690631504039441640136985613378541108053626066808863549361050273974812743433577991334271873031707846570391864051175830078991196819192158174749654753929683887039426919228811313969825221765797762215640727014642262147783995542692038353651878725287422899471783116349020240288410748660461789934603565568436900991753008125159208575952613355098334080723969641663273734956046472694982808727935135106338098821988488966782773322583722077407928290129858902510282132615579754588723578349843845079196056436372165303483459469041329567850367411395674588965982509181070442891375204770700057114568289852886892488372202581281436397198027054514785413749000838566959455536334746814714233824887618844708233346456932346124325790583534977302886180210536841628066274812788373177875339948995733001071407962152232411464569767302277759944716246832628110728873483099190345965179382136251303904716603068780931427660166653536630465422578689013116246810061452663195646980926986371373970653140470419807835689809387064864806424812439760692804540228290965482143750444352211386128309450541239392295565687035510086686371221145379913113913042647575213475038962461723779010743628173720813241470665440261627145235285494667824804153419539544077750450083572123079617461927067214938411811211970399152625770355242279994327174537216763575287311945572546241965025777292295291926610124748877087416916096255582693670668627735491906765248012653682421122050913564837531870910049273517571990662445075043743935845775644260367285585117301308200084816453902893046963832295598095521429479929011795193948605825032298657983188525905535832064426512405742867851015097238162100306191911973568225893667785209009720781699264985902580456145648215066737600025202517526646247848198995150988723631676625938952418101676354328426826826139892762304466940504195839454745718023075294361699137511487069212149440311407048691874059014546251645273523336162662705332954817842523926262380380605036301802913391065234418351489776843814073674901564199589956027150071289852591300188646214217630386362608296610228088138550391233800799486004912022107682701825670796580599159107595637785809019026658870602698021069249797889942881636537702883929085434995114306606991765257183540292948417997585116540121712147294363692383068781097785929050852557083299089601729739111448989940737635774538449598720295616653841691868028596812482007957412907725944954522019272213943656726474211784244795972061332552572178172001457730720961242621596535421086598762725057908564551695983611186447702857949218139676120530844066059699414135612457791693550306166705039131215963194350834404500603948484048027663384356748819665437306580411894963657093130896616613599102557504902316736093113988514821292704369438625107187803872493564575401638526496527949989295994867184745923547328347226905706348643709647685404683697274048384374273128719228284253103113277499151875210110267499905876608192170109253524860167492322323208967917726063249172603395424931481816978281649992076881750116904520079718225282958146913436143449267683658812111659232667595756017021256157449235619550086526872866602951019532905851381313146813362635870619514265751550311376054815492686057092122779191835431834076239116376155305712825982870939017672520365641824417182120593407597055154569735716303591252447683013479534374574506330222513289203580639990181130678624576704260023244968522230695799329302415643135146478781645322305925919254355285690685450383373609092947833218743062552743197467139405216858108309474685162101729960467918623269868806742020943589715805846044311435051361727223598846200337114096556918149316767930619588608258187199226341631262417692469109232180628888993107646819376472725944183034263696594378713707420011771781940654244601730038258885253044733985869316142751927232491336852234139573544486608048751056095805471798005127571433972114744202082180482715406132497257220208665725763854006555935174734883792874479586222159968780177326156927561497729856473672920082898974563977867300344988452404516887278025231760980528036010386820271375550721208961709790355531328025624135131523731534263794760636433306380032405405670696434763478064256710180409913150230590083361533506851691764398306121026891072086871247105725025326524537767496715409585047176724068641806788690760106506310213532721417568592785913372427491480616054897753922310028946622629618585844883256857127405980809670419285234950081280125391803960953873519371460630151239310104746151457553951261431045203841433370493679078066841408570992584648477549081717423298383733263914590081701168892152386888107334340377248511989874521393316233583194997484964958736753592148798149713786195964555623406420645255138972559764505839211260397437936203847439277741912022705314453724184414809690408465362542676772305853101094681541739866450481082419991711795688535165039368276079996234595104615194949444156822609706869707142328624616750743684545849340413578870771001426631758228688478514142213191948942488335893813572804119155420538120261206832844962560336160521000593489649848833943578251163174949621987055854427148073700121121220732247768770821157374225391227916335227742099770224255776378031521072125110054682090896800372337039586836431860692091636583829453346200734721525282499667239353504963320423891988667027135890534646076883162779098903781407925893606786273161931962922086197768878866578594011876520021107761557952982688378847763567805187169326032463379166152762996897175889683112365633309130470253743550034201100309032550109907411022000966736264318389684744284532153642854952008052419907660763695139968441062409603167168441464461992913116839274765369771513666653052102395430275769572976674026174641404328175940854053079525173651711662483125307683219064340896163859091650779681723160575685326177504354967592198020647980467592655101325257176910465420126082609950131816039756097766371849601618963122327029534383168813339229595052655180240969807418230842097473688179857724815778146177050225480958015857984981074048659009702680813956580537248018089904801658745030039578059725457941781859281409389209390808191087570670721308336790169750192698683151140018199863647179832555393428865458424669585779703736544416774410241129136042618110590487339753456859435656708332226511038140942746679348876747776387884668459675251443215584161200311528635036856589663761612351752435216901274467260550443901910338475321082844953444469681589985183414297195953072464454944104625410400305128768362651271528352227742921733970626775151348997386194291077256336128005042089407509251686931342708042643046750989953971283211719747238958661967040389979064402259920748458190582389517245165148829358792323589323156026072213062750080679748820951668563340712201414066776172107940327279271631450423046231033495417799635484328244949116598699813529926403861466373313425935399293485355247332725337185242357073018381499944896405690638994671058194301831449520099344371977282998708358550575345076989034014779651775952028737555482885769868478254659982844981418043754716840780304010319382596434977243313918424461475167870148120401131786592425616442093882901239529817637983885876484037177158449366427754847827363805757950058735507494555335430233166119634901332287736539618448727533356231822185272400662804845274633219138829777039828736969955761277633471162517328170541533500298576431910405044985610868069232406585760596198288540227541650417077342572132590503839762038844812866187746781035853511222788203839597336206985569250928270060261397674482054056488178298035058621055207470421884776906434222941609544381510970026668233899795086091588987518502343312121379993416095302283632595422668764671085832819267747882501515549091272476822400934732432479354966508233404017813409547975237471508656888979180691732262623502891433885652851048629649692586622360218091648502392986433848627553588569989982321670030406507729895492659100768025620779200702737022204737321735368930636548979398008536253234617126391675360136087848945757359669547426383556784069659020220697894781613535280310050550301828073337256865073298323702683799264725305523548110516386700226196144711604777314099680323966477694759652649606916187189582900483656850469429775896294129039158633282995827816774200267535065076767281137667024382427052912755720261719425688964135613132204424870350704889011876371545393768829255614840505694470631271532543911226663730091628501997449323667308936123376917743869684766528440023837278758135447252381878386507259133748893021709256493051065170983463508697114813657555215473531279621413862274017646988873234329210822685595071115318273598327639419815200616373425561377650640244662384610239650042542172958808897535681989839491796492254530446214850350586917724064782413388287223597372305432808943142639603120411063585974994269481070823038151702396443237962963999677109973362514557971501202365537334307546070845216180055905674550936446389257325211414675756481320218438294233851756137331091585593212649883141409143747154591226307363914678329009300324450585573132486984426156378361768900331198001665972946037138206727553209837950703765724745880804845957828141167172480187091968078669999437516471749123042563398814417676682693558809456426308514899417294008503243881055707352736081837421760378153143723759807280615550892157520591584127042103702242548064597099351161836215181590074689454063974618033868652239968880566052146877341071447158353265769146257852611766304262395457901017600321148767399972876754324919744510955413590195938092826210492272894513279129857431495015168776631189346859526003110878748366241641880562301331445813897659567119763266586481552891324745357876243384252870886669349351933516822569287622035003569185553337850740103745697713794756027108288446263386688245828113187636603082557846104834600711260858284282927677110978861610397877728779204412014346865925078720047148496953910852973998828725797800746283804061187389223456723921080955936382619614587080436286012870452945667469197415409404045129638639871562313950569645844945034415622336035107330737044010400724491665581263936895536695263013440934423251605657333495561665186234034448772458850379726038055265757125042420011595496454867025570141517052945577293662451373321195367644421860601546711252768239645888376796930547680809499015975526517143470069563895509136590266513154488019590932016295614926932202218140895662976700593231761114318405406223094391599227662436260115262248695999987234033096492387363303032791338164001490340388530691384834704586878375218816370093293219625730809405144454546335214327174603440948149532250585153728196760700534511769901828305683709257673262482912247129937820995468945896915529706206791765578923463301299243854381614771986019265258205911242098525468372470491394150510531787654990665243576908548841234829425798308882514495259539996813921906432629811535504646696720193775839436919033961452377301192564369173357343823464714581018467157188973368630590083223129421444115746165260298907292709544920551659436757969084396779741561731151132838527679238247387826564029915107292301556816612000275678407596115132653473459323180814326787874896180747265432069563177181815820154737484378974064466422860469511762210446966344963328750035975471106766967821545964770489465357548067725687703477172059086550268429272689381560890368817668604063516151577372004811384164345327328466587565428515235852400905066607759910918216645489255297248761300932523206018582858307438894124645611364783471377577933652822598812056648427840073389236027999858051964730659360475359897495391551944808069293035516028492081664785507647974033245181972781681208060334497225138069884174917450578152635405829733966630441765372821360249781809347804291908345186342562056586710436074664643390658695974405631968413570578270684746328017604265870230521611995712316040343488454273990362669954957393870840867148639264603954370018956332181198712417244301855277264630830089252267540293959452517881373340392222431761421682023432287900063605616089879545941439395035908644466231043229475246847876728934668130335764626195005644212582655319470891500338751486070425696571530624284918425116074033535483123010272930423053043717498767911732134403459860524986384122320046313427470474059073514740609854304559540925104461633795895691280930958236623378713806293248221791521060999268413102433261052791206563795587903820442011017911578020077934650992086782137581562315927562972716413578451359431879044856634482901668810339193101626925471461050261426268877908500854639108233875344298600305204174208049341507326162013460558525289282916728043044197831768805041166324696741114097462497460995293133278010139503020610696154595658663876940923679319443952996145223223841265544350892259528484473494723982134598120418428717870507241431506756276975377611500775385553796376101477194174326722504515601760868326511537128282496261458179627618187199065162923826612452480283505287246023493648748719142147528689296468403345472833830694983428519641822988348467939831817284488792894746083805154852047857393283050761661888169283274361352187553850574475493123282774471366149282884818773029700077529322397680269688114425401486649328534647097690132789486709692339595580448419667879215941117841597169804354924912737743413172489540601549842500383294094291030277355858664435726709455301582119599293360024354991754814458924654642470515779369463041544380068645184666948435617139335220438469339864443964521901591499232376241249976188457817206514886766102777735283713938063369867933816518221546244479371616995284537056613545587554570660376397058020351011017795119373949234415085834980573445622309191752780391355372121008613485381579880681542681923119687123079188837988856232940367875815022411066758478760717182278092503039066080866327310936891142351544329132484302914001085627053420238687075965821919851052475948419627730322182213311046882051658248304215687111742492745704785601160866051798194915716960809130767717891913341595286100569559251372248246340844173199745148325141946337938065402396285083585917079039227552486815523875616820916672789232802551859326804295449683416099691901991641077451494581072449077830832151471141910505971052344879514219550210546634752426532550168182257620740499882990304257046236727617014921744995794386640844269884587651538111997660674652187951611302251499003665166626563391814068734209931138622478308291088063474776809001405051810168478703291755708033218040095607589423218191117093626023314223645629296204191459106743747482975293882797257906141451844527082631283232371800648347875965240728215283375266917888371250476138157590622612256346748715192468180302797416892620809585785323687182844148933086908086260980860279702559798840837664164210228117771128257697681809532912008782352978645169857024583535903493475618522488437102952336853319200143329581909670826327454976327441021561664526737111106756477624790349468397893709937158740629584955712681889902892491104786460849504775739116079890934683913211506724659242993763091810746675703622251622719834856623493172203102793952773237367453740620820031927926632246357032047396087231348912965757465077236177511760147685706540663833907168939605257120809244963378290636007833031109532977802710188620374823257455878541452101303107187517495634326948232888373211188564686599449416386999139796588047323336570096438643457596167353101885023981671546865543043600925056797305224189722432501839044376371693262469193823859692353801293890727581419130798775591624566749212193751765051815437834343207130258192249072065666317903320588192640136075580101171608980000397377644822985118170347790764775305321915551131625365940416793331263207125099441956195847038079394730045969086555632028384793873223876380774866871756557006390779882139215609183707919816414407861901633099779898918493484772709353868521178509829764948866581006596085754366871629995035260955680024296358092314419977067739521847026276358989404018975227202231510131235911702900925756789128421515880156011639143008994096099142781388811058539853690178442140626225105804234577848429385158526730604747009713686427217657604750717721029128794073354224469886811876052618590924167397257089135005284054560146836602397926087547983105184780707025180192252695639347223029682776136513006614618750797653224625519570891409403153116680347442127249494720641657895480259000747283545821653616036078666041704384491506513388957312711420854126044875522408465706409017064432600259384450143772664215665525479041105527473470347437613603480201045359929828392307535583639071039865946453101240891316367856015011213045580629571240076458763911992215468224542299050615450844067781717843387262073168767906051863569905831610284244503725434971739131585841888765829017926343606432326442546757489327561147803810516419738440655795059902071186687256210881280117507567067046470893313125075710781357835848774694850969668058817831221857571298846950739675817298624857870127449116300376369298152643932309092068867665120279006478773442708170235257075433424876992192445053207152933395796286068232986849320777067283138199385769054414300641416733502834516769302546507655314007866864244136327366262961412357476775183904071621729096226874700536957720773326842418088744760817918280384399997338361662785677028130299282913012617989016988931922732837893688234855880363860446720890257748709022884038705391096079817113444814150995156772730224967991675093213462065099631438319641809880621075015125869821147422398224396629404178984765685524658530876124705157548495315402008054226942460376527150002420096074514428059321861317517851474183637681738560106672398655431271286234536612969531960678239788573524735687301381385828417719124790172701975130101307147627130214621409493676654019463863047388782463809123473095942850124546349002014775460771646124321934042768475617877899761000013810356915219998365749740131737356409946327029817747164103965682874319700817203701649729220772979057363447821172127106404944735724570215053087308533718450911935189159942605518956511941891885916037083559452587504340176744590862268653514492409738202362757095874136484059152115536006583283147596872614935218578062626556221156435691598492476342364367128732171448753647272119624576996218433241547885287356494328485631043583921103944277313755718255842018168230716251988171104470973815926272319794169964917975352806906027510311322400577028833622723048489170824982215152910114382050970856061541446775648091025571461259234682637746071240983522860512339916633579959529509436852260526578394670729010414663085685753509349395888675584159962489025455386955876451347990588815865757499924982121814868373539589828156423480760856156939778201217272698037468838988856369661336289762437660009687049276567538127541365303596807313405398241745585789181562991157790801809431175693319909818859971614059722317847743010042860436432355819552555903541986300970679077861572694014160914888307983506295651390357099910767711058314609013926794235845744734413975226462571067840910117343147101905265978772367965570301400539353739103582523119704732222925215567564995406207160515653420154531268199391721974223751772624567316576472543299084277682126061159115624744237290364812765228101848689481632430303180563489519504028234771657129689372028252753394427586393477561184568072514965243220891644471782548189269221847823009558890930290141029555811220213049841912029412740919670845174122790753547902218585715994998376771867200252242663887345977026417642448218674783275520699765903525507452275752319427699798178024525605107149226368517682352305921919786167885459539726674191470803928843069881779349337872577921257267170494550965757605127203369609826169911859291710114368889379360973893762341310471286135850754736995931212645238825662778476331842898048528500580332713105309080481949356256538563418808809416005794102080336456789660849075594241525177418233091376367256817276995758078169198566022773982570881281338044895767497158964116518297729496065384117215316818442967702355454117818681782214219589795714230955263394934196822772497001523941234332115669185914650406014522381255790014530488335742583728245340626452969729544579409686388775603746421953657596410048007097168201077716695316780235138048102624724700628217594043425046353142561313942167631497918460064676939682726857606193296003778896558592565005183066082923215557336786929903413577167455964015930362803540127635785159266184300366063636752773760433125455231285295358677518771396316423189101426646731829285453039832419145126520771428225103455728006545344235928756929387171638932630564416359758445130334059120872763393423189442994447384938420350688278986915810478803803454035284598595866327684653738170746636508399646065499501243730125925165289957554154977729684794143979249734248072721447756574099885280311579862149235509687804485840949025432125551916377883950892289662013711962800426342464979818086238493896751875523218389940343563363398903178387842404655597680218158589100585491019248900902174288932730483174755570201397033716992382966112316242344842375762065194931888929051329586700598721950986718262331450094915697592978298532491287364620044621634236944599281174089788921206073819651172295812588114831734711256772399008261868010284177364240120996199236336463570488177166923762557918167513498191387570393229758463644251617521981113215011255148140868213695494345731625606748053288502225581957501770000272671960791879434560637206417305856403106364731282648880638512345484019716819383516506610966572451098810709289227595174468299856257939871229767093666487383156142552622835534489005399558213140385188468106306971653916029775802311732908691384833026202501404999252184621152434606147903936654701320271233993848213971453753561083072297346153921191831578649673530202689600431577973853397810629630999207071467138732249122055671302468647195718533600250753507590075620769347680628182304458568655769849186434738417963427615717951553294791536119514131438833072447111268521509334199948812398375932582441055252321023156108995135571815538979104402980134762588545359859205830952597360226044744438366456706934779045211697095682014524498972437895220294396342062238944752472145464144588339994472201213213140808657209731691511070405200059612795383461028788667959006645345321893377135415164210335384206265190443538311939950862873538173157045605804270418724340254511859997645639710916911497286056499332244464721986714529598160033856146096495652072496121644042000745293085239222287230698004005585626370579666441636676594366432199670541634787283922111001626088468809302937768283476182051183638665994649612231564257539601407266970303635954529999094853163707062124236528794187765427864364585341786187946095751865058623220900648309310304791019024569177057687666467982148054040287946671231099814177333709608570793234703788515987896096679385735137519951629960786065424442993066496109575184096545128960490133357219637121366763188723827742948811510969656916977796754237305714479586170390997494891373520049811694087031435417913133664833736964307405119845272881811618364887783013076438204078638162167332115207646661873029211616649775277104325794335028521918922866261712722467630996822784341864028043575494648183865958892095998453993898963090073942267266550018406578958382712910491903504581112467919196591685687144527050204001991661074240727170631940497768959922268530169076067393053929777375293426908126810106304811567298981885489642024982985684944634175751570426205824440037089363193365715956213674520613690725646045804617189865940488445472615386873070060738242207122713753202250165916693820060673734207447632462603536846768517923083160438296476339705193448338487744103077572400708791925877042857884428353293342927641759132644234935960633336532904105404219222370679994347716207996223428069661870703962803221856013334413179542200373684841516655268427001479227792092542561478230988460824497898962748789331579783636851161791550145372589492846626292719474075677253158380603867371801324649040878566818427248107136851367114865823118586168622824367643564988186635183218009279050356272695770518374718092248974550427648058944713848383106157373243117161536464220343954796638548084736112313134842190583793932489634906315874942474080012828173089235623026530225337410088373370131436616183846665078680959626295810453659145329106783520587511471278122919631945468021809667786942611279604304436257623875747528060235642245881172835762795874220171625156916853958185550970953071165321912148774114448532978622349788369158107324556747258887290385973034969270420264011896985317007625691261563408629306513640999239908666989632470309606159611669493548415374791357381592111554208479623242340945460558026773011486936882667741386463145992233897338016101641041625833044757663947940313207434716791146913439085426522937121981989892872915353180619735691089348574828489325561402766605923932046291295355616894292229017242904718031630628502562479448559788680981322510406455906779762870027505033317743023532281414518577935671705036710598577584673260578875326742933959138722694045085826706759541621798316584506681341105762647930255054059899936548145541653689615046463722414840826605957956684954255773935505297648276893308371989830100924110471981352425503905249667371687201940135450359748215276804652128214539270061980139274882914394742019457118797379480769958180003826341499221264184675530815667827046071305182257624890413758755943324353417546032036620607319609338916662867718584586306219792126584247241696489734155937152287820507354410951770286345422690537339664709135382167393385025033910636505778433310213577889523535490686408025396568507052551235283325429507257340058136469320136807977484571216421939588377204362298510378904069914877005591163421203475754459392117170163919467175895349535548411928427847737731615902532546851390877347155867596599771603924159533982411220584014948470312475786580755184759733190227580371994669626940353793229545673227669200658642914778650342787006830032910333672572564378589189571842777333923926339272057954160939062957961137980402685148312655346098699553106095721409579311812520107994228467717732762717320195117519512545994030246565129764660250244592650811028455620156351818240923486456957927647131751561993763132408944542030935628119355584865617803979749179495635013951793613347134412381815568587226511480046602346304454459776219119058969103754553173361633133090646525831990246241259215338748572127551889358542062484683082477432821464801594865847654974790716047987287750061262893720737889901386468941672489907673564219882374552324724209183052968118185303077144746558377952399250274339783752268314852737001458095375675162848230816904463228185941484131077435739793735228442460002928947052393499049208725550132242359264414536181169000062161521727213018336804401483300933890285418086670389743104068365106826601282451482150638805593624537025901791165011356807461627814891504790956809637990942838782306583019207127057518469361207211239677663970801540932575608066131289604962120299241561782830398957624996629921613481868759345719853670093964904540005815241073773523063891120468602707164844947952956710191186328298954919736564052660777942513370774818645226486350440044226288619328297935234238977506421712029788109442885180637762089564985047039806764604235360797162551183660023093467745753167957392672389266061940251849224984560784634845424996929036228391975462130776233166143387031314040083761736215748300680209142034961864204408244819780174831851418652989169896409849187690807488001199673071678935990662074941281575084437671782251055664578156714208646370188483162840162254179952855373347642423569814339935040299597804994435462212698037974611544490788148154540737615453764302169072368638793191764108638016506465858376976375429434269472733207224199898522911922025479968746657814018633172501683308799577876273482471540270020142865898174635917819495929320408502748137585962579306339087655748727657817840842745522514036108091415799341382226724695765535319018377317150308760016886507748769155908810149767492331793657664834012597822025027526069482722687819783359885484039719355114457164162676524794787047770621664539156532312743360158714004900578832462682282149360291270181777038553499760230723123075599218189450815793469357620507786240323982739664461747861049971152277956706424349870141940527221726284328682218407514647040032581498498510957003767126860741901772076461093091337967519082348897542475139384452458173925369391966416460605881642544099059297786444330610499362637143686563304012521278080883612287631704060561509582935017645649578356126302696939936053840736172956454113084941225278485150339257986299758729549595053502929925554343485495957711192181412517787479219365193311137556932977150767611714472515812332813533001357385975843130205350715699050846268745008125970379439109396671588921119328288917513208226183483326192055009315789379464466463895471390290363654113860582865127201335649727638430572563437460570730163446901036556490175884696465331271320243157676744909393775638465820267921153851563156594398593941635517301776401251771221793589512357248835121725127786525297203093768277416504023556285297836158921320433039220558100510712732665399724637059390847881424912949584092650921159433504335861453379385694874877018238448927276878911203045347417174408713122673618768130228277728861844610968715041644822618085942379498925228231631488553251642170709391693153063019121136803275482064166064203371596080580487222291611358001837285787961407494714457731346385594572017876093570114555061066834664131480414834924009618843524862447203345376382252432132690803803932919046232807446330938642019961810037797180683865424119343098718924980607763284693842136785352318920567267261554113029218292746249770439062697360715349848250071321336407411735924782016529557263426824249873516184720109391557017501867998036089690988005031902009415637571312041427258899871167039421403222053114977410681525607500154279690601736206547139340464713426356011263009071151858835032897537767570563300551924296302967046936380232864519518516784046890100405397855479485137409455358338638220140720700259887126180544481129869257456664594138498370319570565326729736675558369034370552777421841579868237079273430752996313184230667445560242969761619694846626806733003951207934601830166222539349203012326148662325562230479549192077475006376318061421250345237921923803224825814473232597640127719738917447827144538988097532565159747515626601734751174371497849081809223297830619394621663258638190232536097226283856456433959523109608114923058392546495794845424772327167573737351653805431823971716431624821017413543329451659506713705769572435097852297137593692394439263392889991563330592811327128429751426751157325155918858104949545564548503609675455594559247729293857488949607385356321016505205539473401887346854706362610126424638717103708404017610722257200110474041428363634761742275169738007547453169909434441388714885771268312351167315848609978874869170441472472164077891363113922195564740467156795962495522563085163488830308561962521764749228092136870561264068707021070498126834685867497721624075634890891866067922944748749132430727500653634430213343295036734657457658660202684982942425554217429503091963998437860054245450161059575266908826596492044012324572752850824092390946975285843756112492533389993630697580134847142096683454884358516614787416292680539492594705711646607814122826869252396842350240714660467513797303738012388500769095445341386740002546192342528981861446418460006468661755058466167570903841872199229755086488331738613504297710119032105994516482738446933062221778475400961993237071247840297128758124943601021319348221314815563432970460648684936979469676613065727982747383933859787156133514500444316307025720589548019365944864952060849716298659126334087363010639919492934864958793602585281621884321301981853703945683546200337526328811447433684146092329679072072865048039834214451126020640203566188089077978529423797740952402298251524013806678968319874313874875853298642314738232143442567580925420047691898842928025475830308025655298176833795943470914464753281923533237536732466336208921983760670002751246155228848078166597458783649780404568521991395710147039543055926311767500580839384124397198130100759333981798018850914649594710626650725938116208045868067540749896702850305422128640277412239523297131087520772049678083249456903166301365328235113802739695064234376011612598728948544675939145017443595396385884669479978087015523316552795500135334584238049529447377379353573305923486749990439982650511131193263282585323209641399710642646137667493901653415134994920751017801333194621076802307796933946314926110313850140763497698817503739327651531268824870651761611219098402946915416032116663921733842493695985175655077807398854244528178470833300288277823959078065653583555909083695606000134124394991021112800750900094286754725600027751308141613084986210647308617831682188639059278554358836282653503470295989910843915556808527834437176235195949039495984637019174543283594690246237545820765339449368918096548725529552563364237183758894001606827645112222701309657952574348901277559350978649208236927734611332483563265256677721645681280252306170682439363265927270111887754353618459477899885025158442815376643598761862758870772839711707020168286049659188314376895089208896682088622433488244703770125305137426850513685354153099015455811113575123346844660248434438927049207753888840736996264956174280578955007450275076915918025804704633510477393625562542464443113839794790600868164787164589663162504860978943161298919552469009354395931145422157948964169403234117514009315937240176789560856724516053981860101244744126494055989836166025376947188419936474021393776447561287891800416095282188664650949938062731008827377981809338618601494273056448257418445988095287877491843257303171274445363750504034012238367274406523919073006138602172318183030661056472736176006296392522447523951608464943958688216719063074348691359792971395952828726932171693089981916747279454244236135311407023207804725864478599713124111666332058460040120954965915601979614724390705164669038465158136504017819682078673117757176737812498813456073212260894909314656346760785050778023866102847139956189090078842975035038330377091161650660777884839971345456971471532546413928800948746502444180293636827162027559824353508454797013006869646412491028250312868673656499840505391270556848861861396767896358906543692892449020132316615011950615645634992327545085010794894580692446202303790753958904240948245029899393956388667413406087866030672184636884275417521857570481477818652015308207276088970859753602253522687129087244548745474808538835952787801685337994329949785151094950352335181920274901327669225619539456569393096447472917249289959832800964357738871670027079674256497812698989648511057581754972634103734028294257830616012380953860226476786341026418841997693848162905613617176385336827760605336725354575382940275702742444597719035070040877021393670492826160209348356967298683927682203211815688982902541583063603780076027559585638805691662379075390184717276464973317693885043599073452933553460722171817200293105661388260645392866506493522440566771261829119495646336007017823589717448310433392664300121240726232321109975462559916676828441691080645752660821747097692884475604165188146198476439380989816774538085208200138946303882358302225118365276072646901210128109993022114373627605981071362260545318456636024003086665404371952575458276162840826322567114532341548705272491274902335660136166116099131714837966539269486127043491611251483420051658998704786526526993893007506703367478376952127868215855762084765801631697226901818304536438979183428293418965137265116475444321322198088202875959171698542294308679816732728583337427765748392248734431009478540458514311345699673912760300554195513461287272522549143977961460636765312843595534334812122757597771239832459849988928640207826590573950326198129426404005285486480848495972452722537169028777457048184035482023139742156610108443362105979945929052100481766667886946795596192765618978920981422096442133802763354784997965233791144917076563785871897579215342028891880276567504488595873352122356548247208768494492223641693944429179590094282200343594477636556402912592954995296400394861651734818368798473897380200886452430506711098781746757644293523476369020725841337664948716195484871003311446139384678149421595128258734193390145903912973922260282978994601577556050897668203857097024038041451097867931493611016454703392491796458537272632525619009927446390048592978707893522909030569105537124368598215084398560181746277554559945695032379920341157250030146647690180213097240707269458056937997235598969230902592757562906946548845428814717985832444883846935862621079759889126284356760354389350094523164118424438531175641789589595964299447921333917998993845977063347972913187299688399962884325190600742804666588671859942713850776948718661953099088458106598362083281118451268213608075784354917917127835887695912644665770055244737876770946017176349943360263196667865357359851735402934805865533944031877212106675955691362551842578157871336509682929943374239379375298016360370639050311141702155874810445094825276918837920140299952752864183853110857414536926115114070614806686624666570337152945254592943631050299465593826618839035113602682165507076934536737202902975938018529560384826486532826981412954066783953948940521578610616306065003012129848647450247457458272270525353842635411792269075185199133824199762512808995694822567644794155593157235387162535418172817903231720655458240220920791668413136690645560528013924722415169926467289409068331633527992133611214435261290287538254001681667945495417625525835048425130203096754681987120000160680720773714435317656399572320204874294248495813422230685294785307196847726228659900804509261044723205674790321781617074038337856420011874986812385643833423401895761272533376050050026244181127235100506130455027508753234975224953079952484552048930154585966392770237213909468134713086877667965029446417243112443961368496828514836072670347832706992358415950140927561722826493747010564614602103676632862650644207959623278066104233619804935492034473383883755530347368210573802328110245952456407446863414024516509673307143713917512331307799122345280325483616031118749783206470266484430236023728380066620648141293347988536825657361286558878651786025712772444698502524374319022091744932907706335733357244337335720321617969237700562530042980727044847979349431875866132682837268372872445777942833173669386631546949434247740445427566339684522075253490664903245627564278408111320752253510546386101912062939564967452375857953482686748762716435970353291024250659901714014773964479018224782670954867138497116775170845794014379622657992273259585618087774676929297837731443415545125240413171472827935548532725578900388213550915360592742637029155248311018879079215778134739213640724140345146195788938306829624926270654357408354689679965291501082742412645351924363761423584118640023713536613130108121958792884841276483729227983101462331524716038059759190267558649538305636474983821579570537284143393928665033747833306827749093404513701939675258345209944853810632583382111622684122051428064630370941054609414950206050856972919058589887673459956276772352205511199757604216525159770921754067673846061498647430579972934297252490348866653656136671453890414749488250988501453933431352379355738356155573802686862573950732351832898933781610137903270886391032594417641618230864983922845052053586176360320136483721228599381999578545977604465358406077264769253573700219666323018591505852483730740143995767427871474095673865061765615146025734136995009896542485232195669627586451962352507794693311288194844064498872476579328145264050375367907589524811146261090691776281918376411504809585036935891929622117320055036782103454826465006279836285097429024787666972446632253038833822584441988209780366976773968969908267545821375720541413622502808542861205615558072693277688860256483400767343589320500345283174096557486788618120716200899089401749947474033586940051879530544102963803128834192451977004272161641747499880829535758189990520719924341056711410419900378065020209127846213337702294747686782905934787483386354406930334775710369054513570970458105831227830846003558458774010680224696753260708057213251722802123197018911960089115235474593276301292089906419086269652314861384914687680021943540057830035982065522553226867341379795662667234406086364687599067397276114450806213999735453771820174780625052271225056891914450934594907545172710812033004182044238817872690207991723890199494741844030395489196843645759297547515775984071067078236815154543825451851859273387408141225090416679962945137402379044793227328019354881885114209284974644172358529733716145401885520717180044726342735056379230227614449001448209259604417682715021364449100292701110663147216409413577742221264691785986367646698863363666216971551876572390080826504893674268957073871795716124004131355080397659729415561991345272531225465563453299894299488283919532163236600135489611598543054541745297619113322715963780503865808037595975763240336111267330901247712346767775874435184090766743762783027100912262710780527893631630592272462600455354405091281928448926752238793439840769769689407543462950052170304686185979562027827047367766695178781470917495552778156521190864448997437040242151232182668203643478303223066815531721594915467565427293738502092297749939589501891513595208854397077162158959718512390113689865300614367652371857573186161889768045679443164373328431944727300440488802442764194606104940776170686252907906820869136434080824608143639783659333786412883971916126131677391574221477148663980420613882998189326463782411900550640630464542618641117089489418466049555944132100170125757191603251490689581695525840964542172328084862083176188331266597912400790391189679586057336205397160873770632125431278290132791579917126601470735676550230828600327611072594327306466764159263625585914165357787009172525078733236973918306362605901961662094591600090800897238592873732552191358253682114417571593268389557076054621304545991157298175325566649097925036890792239291901529544738583504761759602398597909925057951820296029817484034683172525629610112297389469932756217373622156011316778962007425997194987428366283404015476879071159705958019357249333793209073224274426189995476952607254660968969338658805787638716121051104954180021858770487657990898342984086123407333392960455636269327099816370876092098967596626516920653797690555379552614119171837110969363726706244024109526938207848668744087484453912068441452152316523012301336039446968784938764962478489218742827953591372797679945006196109332366764336300966620872201718987456386116627750063805756690052031848305964813183361151766429482997734871803923184176810939412915062016782016312146934440004374591669049380399779657673049440350784452472636024998695933058128539223636086792855226545393106532119739944702383500167447279262113980991468154338787580192398611654585754862993943799484555741288616788221121689277653916858596141415439613777918671850066344048522865549923182592046405438812409652488534262585416697195307565097902113879181873646009722569881813644180326571441456800730124188624056715296094999449444223467429706338030609937428344560759814735050527112840855321728092153022636107643919417227191305410981512711692741920404075204778210058229321080631608043900209701096357138611909132589042241151150684376770865677444101742635836164341335412937568451828112593385429437085343867333155542140721882581722210069086278336756180304236214756192285411341845885725781997258813334808629766259412747514286217876283025585167766422839020276601203772188254476115511363176082248686478676515707118731168486174907873414554028122597863450524848704807420678830903326606945649218029397677355463830942690839574834212495486347601143216073438689891844038654495233702331677661964346996883357238104435119118703017477557339758879096324507534675138408812765122462352819486360749106443693808172862408075437055045329767091369828259077067139727004254312137458698912134535185041584956499806381297055183873636253433644374379007672376497977651873279865828878987615316258548415895742746961397188293932594447248737064277828316947769919973756064210676688678694855265755624561698397484634674317963003000738084186019592962948096266102169293419817059962386286094460269022668069142905653878339256939829418579083845306079958791942467692404783857611993705773454857623572165741056210630697534770564788477119637308934371674387445445891860123939393330153922462127223075196409825055435733893585317700045888677493834518514841400544872957341460009531449983191726226219833937475021521732060349559535862131096871994614189428476880003562384710524447953418442531330994828983572125139254574235434692831286763358132041304427208363626537691032233687866306486883301170642709794304092485295046179852208943203263255981567362288306636615894168872665836627488120052104787341247535933044557027955658119664239125840539586178971113379279029241093761637314212988279693534833712890363640949943832832989198967552932705094136254959892812385715405612565382064712719106687704436835597218843756449219427725491876099947823738816562000611314030466165003488186194581220552083296475646811399970977434441059550446566481503972660069379785132684589580847446004031056229884405455163019211241588368719273903470807272561796327608858390766364903864921536602164862214377881804252131284052069301432547877664270625277143190208239154060123234701725939864586354382036878395089200387547763037986151686278126346723964226047921414500218501331143939067906727737345853490641774139744790727467431489366909672281692298951350049406556624628141621290620225394466757088610109071754845173810160697446622148553609809456137270380656503170415906227681385532088093560637133162345736687936024025143092530995372560126970364788521594611058594876220001366865319644626365493023885185323445833958101799639782343798843444256069851102498358658446610088133825140820089844261847429149987302216736210955627778526026148248376040483109210036209713569034638084760115913197915395014474590858806373293013844188575374791051880185648459353013800758441331128718862749812647257071162502357553794081495809207145701172811415579190503979875243660540610854485791737507420521250462250274380701584488961718158212997622554280219173833104552614472042456514685347206567301942378514117076685576117682222317940603794313509878967759907490008040544965882115207694130340181489898899837254524639866921629455200426195366370527918765056623027171164720411575879726331741675749658174921566786946354076909764747132077822579721301441611531640902584527914493920586479914407826023717181729835655066372834851379144443785876799342413561284715580319589138074234776783920732426264189899209741050400744174180935639888033687334055806670915812013733306891886615519505139409208022383656214060560369238618805202213759212520173258327114310094386211015897146183411628647658771024516073986319057564552608410024993255177111615262268468561936666351775186219073724766529242660670606021607646394786880459617186122994451278830850685159099346174671344351271342144472725230590576458530018713423434151709114708538339959020661701445265674559561440283439610223240043787237892013813778566891639121944602839716805010000574008746349459293762474798349447308072111626529897942539488861787763178098381295948256770504267391879848273291832302609094664501183114843305611013952420650804165963624379324861569225739874704434835291338388245758006010606352832683098380148906820718213837241373672826686619372703853791527903803745512734282150159283153616590510762008865337313418012596755395868653117785408927770846635569521579365659700447874539776268535464881337819295036460351275515001339062292195846843897018607602817814817389633912944519525945177461549172768754724470660067789278125933264632028819527400888984251880448995012983303376929277424096478292588376819240911917711427979167675470574631606422195341313133962221669219256737415900235236219094737143206912856366633005749202827813643183676912954098112420446222877505379901554792424402467415053186983515509705327017509780206097253149347133978751136753109846617250675562451587879014201524672098095629226607447357664792300030844089536302874718227954148097315045651594130255739274555055389570050349590845247415843619590667235469222633035121591265612351089591975514780538088550903841714224140749833634508506348463283227292554807137524282421428484108970060713979157103809715956098144706879232038054068060956840614882582060239309504060447065083445252905289944363634396554503104222519478571850949957104688632920815378372115397962307466069142493211961714181282556661434144431714904137353934739912156483150813710260854488021570283129643748156775298847315109704843953392831333141059842215651164844567296342239222780929799919198722728045872691881414015877157195239171648288521116813690274571610290498297977475897652542938178892932052417916887243233831529889055965198531477959398997758950592882486727404397964127800006471751671788570341111409392252536682774616734740323420682788951388912589993436605728842654796043191753240207664805735160342353559980910640381525252111591374448127407158846380484276497182380724580671676623860557737123974845842627193418098801650557607023619475312140065767261207884006979803207895050461164115351449500510313273210836490645404652637250127680930793134294160417288053604101979144684070585804275450783849887255684228412130615721919543511480978096312958040908390109155738578654984433472603576423281028953813141282405579709821699894074352300080814949436888457164124387527805915000594846569651934931800297558192132991205093866080209405757848463504917170046990239531286578855282920429941118284600937584854782257166052510108566105040518347869386991220792637382003707579074505866030325761040123144189545641530620936311514643256006166490929121053625554550207608688613409613267186126847129214039202828949784312819319142311064428804772735783112481622968572981220786592157546691153428628654913221215479839583882501763446552160064044293514418201505945000445391881093809858719622036348120024771332872778847611736301191908325541883637119540173596394713026880845578298960912654749023646895641299915843095942041969008178971446694458971237399154410770642573769280818705189165686151216263511865393437107841568970102481964158415095634757847801353465962098355395915380889684136479882896401883770288029007637179882763926630754790403195016412414622051443847267738341416102375517419881426772948266075172757591429878978510654452058272605081972236958645447174153330656116633579147886583005925017503975400157328815386473944295986552860949123965775173679089489447083364159891138733639892775510149844275798095067371824243870042003848271253264628247279624954979656094211206201117911081526341219610729706051849208595130461573916377958818097002122503051615637399545761363702477483980890892907679040787433645732148452115899398211959410834254579511168626780721817473331828330454829349279777409317718370997935700089910718923244050868785613310059723539946666370494586045965828095583110977595559455907618478796902834312405884317000631195030564436378139193836355906119913460796260985440089144940093025264726467306593718142238658422512412083162985345634986483350556896304287331015854020942214646320355806566626324616532383782555779803262362002375629935139737661700309279182255836188619024198894536913562216821500283194677190589116336533023995465918655948509478990887304545112822639741584630651370880109610765311697943091590778594728258785708485681905603338742090855741699396938573282521379907649226178435078186806713925419012606444642424065463885189038218699923592425556937874704378713901499421194292593971999231254443717545419563156199134430071502837245863369599260330383821803712292910353728005817636036471173831628153220763500976563774596847621271567560543338519930819673569063580389885102062477330235929891315681745844150235544826410604173689724912059515203823996487520470638217570275399418723794903709326698696891838624992284938217850001434565504976460805091662939452498651364227775555234982330033422499608385361698178315641054940050331775174030467934677656696562808868340198922646349689018603055385821756896502510506850314604685264175063104969760256589398558598098028352396614768104102338057804710961086686892498839046107735634443224962108947622752702663141664945708351874077166217368303349007317272328465402081085223827096380181071926238690582066667411741820097025708475684587586081464665658804259176469670331899998587507315134109740349527198167737963084063856105662744462729375489886457654564832493002419252918958799407010227308063817047864675457195489220245398272744822061030331874705417233932843315858784655606770663114948918771429680716611280186396262949659346039479695015360735281536502715866139162260500668048099292587845625809322032963209671742775707524338447979363009116257331837907908535615208853762987879886937574165072041814525256511010486807500316595416501579929823165498287053023751936432689269649002514534235844641823803358697982465314826442527056985670277114766778584645287659019264072494472719587624070449178821647990054697778218148388111627216670274466422213886971910090423110058235809702747756648371292421240675850139949449493094776032993180055859835603115274228324772397985159498495238463555506173933230151510182249523573688169515467106931824844583676110067308819525061643037640159961546510443048797584590857422883678055809436056951191763022472457465832810714451170966391803383131792461859298439379196084137127984483593850873017106276146574800313395544868725478037953287730496379090883883881491106896999459393584206120204026834148624463234217993625477486310788430281865688992592162156902548444053874557828508256832289350271178286216700267254878501714273836849884264632822959013885399938001264356533377098438051021566998923290719502817397363746457373893588293813572553810568725333016781134825270966536135208452511593013639454880114838596703734646034124111749065760260331869390658491672775067507784027834539249400558905433019790891969586639960521348939686616511292559604593056403582081635481705934813872033001034005388496754059479199892998153889445849743853869544263330559449192654629789118734278821610261839250645419841382632303746888826500612874691806575680815842419596913367240398123772618369453763458282780304345411963315238467142604140798824557435933803953446602451157062594201696362569439610831822224953826158733551767287881074612139106352224570950421746658001760827974435238311498553982138914091564394911887657785177907644006232007877019549962102359981617067773648142110335148535293093107970436442711274335847397856314372177589787545199051771941860616370242301982963869598015646986591521520122559462040312131375036842062792755290920136818755426459393418494836918991718263462373550268805463666855621831281660986808992388717542862066438247026220600317939922354885553853001954548176589674041823768059147730051663689687461751128882418831236683232636265357121649642637080713179782895319542998307330219086385006776807995067221131531892953825706794255421796873141956800718431699790137581268666723283252932492598057091848759667854816016851195472176514086280931883676664273831914312067601733614268382084739104461502776442189612365234425628807992665250457226237488934270628444109704625651598448080438536401495133513462676997956158041016000445319231094172708338936685111237453994380191593760506102726889551076419550589937930939774999342787993580718733006200026525445538176503053847224206273246861176518330188532191548569626193686783650848308366904570671136183097438121034618407059109982231022779366020303443435283904232715963327779644733432104071670043113012791154285093259835867836241121547925053742163516399459234668246881613050930534987831001094652233840159415470411461664621964550135224915785065481979923662668009149390963038180541968538100458817762423826549635190533800365125166309452071535325401479582230909443544253330914712959286898653705045543310971354600466580393794419876706691365134742854758840088272500879036768845228371119145903900391556333880740899320612950284712330238918725507015846422225546036376069908591785980617323977680932596264964404602477296067704182585931535897407222239927650592209259797616119656738000767797049894450867780622910625631420676991244461677573071777711334962123734472244735126561464188730865379531407649280019786940661955744742893063362833454103061793585623527137589468217092729753056168768822555588096743989398503951508935351473276844277153307179726813347534737161113062632062644844525179366241286008898838142061759525033759713944710680513217827276697345788083600252977822762015839302479178602523827043971513242271977995460778440796747287581718089348492934743979508054484662741255477756939446007173621687859640566486737751803866109040563148619944580108977386158677306544863053720428311828759996295600741834860111266820663078969634163022473904674076770689562681729747904704893613691693923805862029386568163678271664141525947074083681461175127719248958598866909781852693390544841079172869559707726479829533660078615225618542036349316624455384824022229832770426120662184793115173872617799639362167174382683707101555842272706705285247685342577855207833644378406838133844794705695644815209911557810418562284056845466914438418965665376820215099609975590679445814748490734094808757361556446505300928153280420641840042305879221204157844374779812541875274734829254339391460875249383989482365213627245666178700701632480774821522248556000101880268762631287760841799064467128889969607927863006685863052825616684425709167827966225752881755705796790511700970522928408783966888570773799764107676385512776419180485424463515804552496685891839743406256702973282063289639167244354725923913207136489591172143674422893835270482908607010540590105205331821145596223889116693025323293342605610904997830110421774813505500696193043636927267198810066063640048572628316986894974121996287019437375208753089230385537546889656020105878542818716981311299812971107460131515818201309707979418901598165655644762580807131260205904532765145205447296763945586737335900036841536791550799628288036274262923846896698995193144812297336924038469722455270026896097924717588189645699396247845983906009911178585595526261948239729660607837986207530300940671145473453825082500853948426237122723054715986432823459441213926374661826125241096073326124382847816020461388286340806078066124741418773721973214063395725175797691026584005727799406137237859319341478938565286874313281970881323556384748659010147808715530153890289673380621062198728603923229347321933147582781850252322354500771425969772252559020001054788672870619409961046919369196213741639474433544108352354899067204260170644795302276619265785097636500932466281019894559145011666447492317266044727605731154465970089447372080531586866497554786709352969563348670663869166526485301948243431618048595338872123188044036521646379531664638756118395255729173795692728631989838531109037441460823543207332131320312608139324820024948626736544933602269114633685188955914052229089868451820149950747931238549954083598002075732285956530416439820967164803670227077110844107771564555411132631510754597825921300306670218664302736279933515756428149472697792189708691141297434962690388155414176819304393857931776699755326464574060483149507224821133688803374366079298661202456652938444260440296357033887648970233826341283581935895776283307180825630611498692001364675004408337011599908980148644391597138274792936761017613321395179284237307768219647168177947210633216791358655107939284644368262218344707619508013281893289324305248087933518391744790408324876901943233646236735339034244095018953112906273833717864034792008687634655397289683149538047630222804306576654481923106325925236958219983669242981346198720483340516734130071906303342193909423491268022852944047452518232606492897511444416014143266537289836879603426028438002118663769212944427633587580266849476789049104969052082433106620645931362143913900427189751043886295144665352808283813490763484595937103395041510551036845863064508737892481484244904352128877097194351416539442102604128010929668177296298841958923350601964892915933135913762069840232414818292459239160257099965578463936708014318898655108684668150729670620665189637503564783777310499303039697069098856870992421349395171423486745058625433650556107156624665634392243228512372311219714603501676191429661019364942611521615474467192022718739178362916769480682030297691422573543688153347506655819751448700335791573048168341657875952065186755701159519623666124933479220897409265796945134089130841039495474398781966584973058155498795406754794249989761284934842555189115202942443782638340925563623576935398291049829693133373295244827883193052889499589512602019526371485893588753748753946468946666700571712078600480422362908040869338823317761120331774997329490748177603261252678630751099717884015821091803826019114190757125519326181255435930487877876186203467662622996458943891492983891722482679419045021158998272002801688536902751460642559823649610664865015814591615667783116857802525016802256012133670627703913545030335440435962886639970913542425228355897741218609106273730024123856412822524081896596498740041295633494567743514815922068628570350500487946907684952005696061526138964893573764688689243707252542894562026113957148933456075471301168225496947536906160231280204849536418064421048542410736317024116416687478743190125868600733199146334491336167511012662141174167524014812684317120835801164719030374779749413292347059311290307646516809703167579783149709262952863017615066028637322649070740969700311134691092805238032929050964589257597184262277539494699017201903282919642659493601428735020653980962478335457670640469058178186236995021427641134207442986245797274014828422248453540029931537794723409977231869604608017942765807935666108331923191481810060541767417295962602005961318510186565647762935955243812194214157012741033281628042988372883435212574188044159451728174388170955476660716155481717316134820394753372865249885159906149842756892332335806034968856372368813639994957792315472521973646973090957060399385010534874347542233493051381191508487236144359319441879191636052896021852124674523262955299881380636031354167164630851746184420317312080680229510079496018524911622506476416898953843308108456671265018415606993957647189334050029577066550146022823190563733043806772784116323728019971346269646085510661215143294414647218561994767238654142902810285500853423065455344502638121135915332925444370329782777443432206238376193817782997532705717810065383984570935713017632591247263229570825815452821358016585832421125943176611388945407838306066461034078816037999609145966304862605769780257436627374937693122916735101225370796635588757398637090812848425049549152692627023299630499520668601601787771623774012200556651861548507318971428408972730175751948102288057236970365589493804132288146889959159991639578395518802559864586037028466219897662172567311544781946260009237450236510693101852119002234073910167116338691594394539792212443092247407921829772836239592433224715920222270105961502309489085210950691283779758020474041767350483832117247054822137480748380454949054973974453196011605686312343895162619851958392556408212127866952858387764769187209010412630001982598680034339661895584503315737120806184000195599359785033613789624250717134429410784185913223969092628863008716116785691048120496670538910235436594474306178149456255170838469000038320512114852791500864393811974289288254441378258156729679463488842281548725517331009913087337404100726902399168710574299404181462568458286147074934176031863759598822398439430452868945392212238790958086942041087689452979410921055493769700037758677733038028843724103123684633396823111920546430130239551430015301519793761538036371215313466837547974668680271697110397661679701099599567220873229934532344787636859751053556976701213614604393604767380187807519326071716111722507969461334091566130941866431078997480908483733789142870828460620983873455200972687921919684515085786685439177655212810259555696709981607779803891729248087296503728300704071656253431342838834423867897751523010463119948502911047520751982910280592095669393781292835942059835553148493163697133210203833035073650355618882025688848242065922806635297129768831671165673635285903880902428444544409024167615152664293183186300855516124770597052605184625102052768273749168448295306609256346604426757327390337515733705674205142678971620753627148566610538527123203579390670720269132577320038614582919337551737994551936416530817499236238724180256680341481744509189725263568900686773641202578836094135515951056930620364250075650679803193124741115513504793591414360942759385899640144879474185142555049507475368327473635438521176809280715525717520917522701114731157161784185122125016378074639527913041115549343990334761303547214307276051012440587770863986767475114985588681666141779701456931212474509214819549753801419583410549835645931922302046111366773898116814675948889220620436393285151514284582548964385584057209167687156739594005143946967237475231831736310250007597332601200254735028137626173844538812075505378570337169859836183312324660725558477269199420894684961898757960834936206294509064432404499897710045987531683855826866930352260830955323262585074057978623687509317117596972064501118979917489796979127666924350480180660050494496017188626943865831539889964408293726159579843015415121360804940935364313788262442337827769895019441326217783573233754401839849798192086912764291584901804760543918905293423587043849802459914159307364535865409615738054319330823074434216413699577121361129622782595995711639187239845346421344775541563948739774728165338809522379587618573733952589957583332938720174006755752252507581085308827616796315758862801011272677204264009008643838445609342318613340994212111235500164431813573024266032625049253438557548377445399201261954322688745321956417774006479269543645568192173960672959433227197903667752914849967518472990857664894495297006704356421321268936221894564217296440035347296336359308008545772268307053762981762884823473882131668874929916237732950733040720055458299799889940347563174346072693872443918775437988104624905363611235797636624860082717044240901083921482153626460707118390545615835218120126513618339762000410675041991991696163637433574816504636585702468067580847919906047313389477558165094765006228365052810430390227296841743417795407792107595833768610893431606238460495267141082249101220648537264966899338040145150557205057568613576371551782081893924246469592824529592410314307051786131150511715424008896432986423923741924072991321653086072867724727169037124084279315783717012063077726225402198330342648655165590308323973960872827477278826347153912643064358009799826129890011615074696958426969211761577672042900211070391960979501656037825652098359889455427114765593151111460051027473284344235496185047671317003930990729945804399642280253989398504491481198253293394551985735562485790341559800343269784282219796550965364417308427654071913639008778610344713407655154824974952446354481331944915432615974687985541179797885757888272570223164610530036939056400354187851226808599670064134718883272431067621869045610576632819134650050376990155311552907114902441868042721871575147092152282688186263246769605935789859872748663411307086070467087721558325445192612930501956179770479853459240620861518363701266834872477858755772917480556039882342690405781069265552655860663135281923285961083347328102970930147639712929718445239555203824593531995857471764658092138999552305754466419701436607940661957267247455654828665172919975434498615481280262628695489051900365881540983934504897910358210428311513254189665315467927763212047701070055409038861284040781070714477648342510118646910208648329750876390626680468584490690366469618678002534021197463566484657716504899097886389059098586220982393637075500904996987527288486580858359269913201314981441897879681889168375199847855196227828953319353642009954770412795611787669504700657385244884791528985312913862666976023688513565425281472274199843917765261784800904391908605531822533344375914513747095212655780085707738144999595999758388529924611293874885664510662327594925715425969851147859319135155836293150870359969261957153710440955854160412634434394101832858402822351354950973395113979052600075734822303961864177782340559289210093594938884193781380517075316872594430453203842067594030113568010152531432118035943269889891051208167865292465845997699910079577772562871516849584655298459620531194946123901099321226227098841523000290161412043937445649180164658818455551925183192095977803854844359214416745142259631835777179122117230902454405959149827746562872131175976875707191767492119357074621035580410292873515351371764692901258391588199572625440813426942846834513797504911037194081665398171646088997092538804486033715874121999732960635051230160634229421744380255726433353888256959948733134963200805344729564300938298612804293108703609944843167502844984490402360087978190568044174047643738361211863221766266495301171845734010638742922704366604887720498848351452065701287986829683603212133404168334187386522982335386443388354592137836075956714771077586215968843867441482948104988083269752159216315116848163370856986510728892404333184734983236583798067317682263868871166695824527052455407896493966639908046560722774060505987726207743219880870927178810157575163621067811023448304087921453976976665989259752767758809069391986241909388543560435393714009792958712867366893564782321973868868386102655023142382661849335012526328317499855059281284591720135625275914598386416763976096667117227605665665127313093080998021259741105138943138974371308612867655304287097783030275661261117183112419059348934029246450344041580851677649490218609771249554133935838545999177789319430054764484803004318410810306962209521073845679683190798317237186755983260126069747250701647572650064596302637687483478089190458982887929784327609631559627157732100532627102321253022499276696968525980719331121424277158466391614715061002025648752278720458727425067682190774155554031960570506217108113042406281719800170567735451063272030885641389604628779503428691176715672253109435456822393599620901147041199204550429230290447224742954544421827482027964083033877211439220140862555416443008381834311903564601441546774786489133240896033004157125139409268062621470134182286460270033564106200258297807004604884413235215957722603701041217383925799522261010178157572255637967623965370604434127769819569305825998803929025110052180646582373755445361614948770648197471185297739777031429502120130928920825952417128950090008427972313166568834806343394551068512461561507836498163588315065159781384991006325924486788894630382558298230131004568175044118109194282499870889153415760101425876186880555419131237768463354032374966283808479511637041224676596920036109977308908070311671981982244391742548265037810265823905675303139312099045781106992758652999401083964602485157933382932689243656594914058278622186892793254534301080932255999788510756188567058414829990331250264151421955509157434411573361801006216990273005828731241871358366636649883999536566944199407161030623398396997763335316031939901661956273138875456092655407809189126611701304950734555216410474284742637132233307871649520536791893840966638095776408209916688011206626317793396301760362862713982977154878800218864755550023695473925364368894521147573217641168008067980073499617583504540692958196824008517120463968067559504344677676157173786063122725522574437137026609022713967653647085819385632744273901195264489691857423732299524420322471847787208358282432316328391838277408597182937329416844892662122711097546758955634576573496603680720558728498955800901070100002148060736024425807153111671844371427595008742911652887910058268963959539314329580213432829310212469111032114330976036721147469634302243885086820126278569025308080332099802165348545942526770682356012134858220929946326750892215555643482393119947752269495545154468586556664678590128478450697139090999760175832585779456540051567285728917416453462929364896546586835421079485427095831333012457612680756622770289997236033314089123937534268473812428357884051160120155649488559859721251219183978874728448992532315711251844186038019708180274231579851614769480819799123372741337888612258932254660791203847400051720453499311651943637918045868719765266241408559773298017284324909200718979943924621281258760856950969244498718929435850045788809151078239773189401414803934689849242383344643550981989595337948855986911282504998962186074722717711811279547557935001562249764980737881096706064665519109643623779298403285536529522835831459355343432917696489477993976151817496563164589793308749958938647676543565140368617498269924436864058675154637129243942251353173084538977884592808188690716623790444074263855275875628862625242519990576888446948582540658200755102970855510169211440127731509250518870122770132963096254873153140033182581599936262300788056957212735729400409182245472811188751236217503570987165930086342139206824279773957958082778137297197253963576478024235631767615809563058350776913278138120650902284010043072900342614685664961319560912471116547684613208632638734890708182989542471810164310537809557069188495046874655151056823336737700948349459398629360972357587466740486686136858770567628817195501253991525495166273090271142043395546275331728400964198578819461130099740266763273214419620381962134885429840800615281329424908872195853089760627313976746242514313808029649551838450886287436837503224721109815783116571830878326562991837736308112661749698340826750391828289936898049813416488293455423155397469769801571396384393429657165916510895043418362870871123872547385726564112545003155430294815447183584103786385218687287127044222655978304161869804684909291576639567822237655422102363510509280896517208525551272606847926169518558594670253616100547806806630836777106340371491852088958711930710369716756832678611651438833599984395705262872725599111662876614262804484885238899692559581177313813808698554698266120841896293684752939526462661307492557894043145944895456688265829937483769816202745194020697422054772194775195714172670938712431509911339752325239088193170321417922782173667108767575995959344210471595618840838759986829221790602108707165614919527887532651679593670073466742964650719708155644144661900462999125000242216219053062146908987873174874736685444699873508937020686404641942758286261213888557361741791927905033687184925785202167118187460793075288668181892594411518052417324747657983411810488258371531178497646459405220839996871372973436539388112346343746756008353094903729381783702051345835074805165597987131308855198749545010202610813494186819143528492530455279248731285541013960982216255156646737128108048045338305651026735073137056092479868785062696188472059465398299747071893269448917433546730317783024661000069654932367699841757238946305144823287495587546219272200044519324293048997969416441575765486339581081115111330022465156608160328158989238497893942655144400313286332889845637337245278136651873153616417751329386328449655453688304333392988551481642991905483699088355791543023713442824953908134015495770727082902789029936977478980160405861860623486769375575622306530611237669916606762581462476690455332449440519334886239076666294141842145309119194083074955248890853601822357264435429780576496809749720496943523954781842641427641321869139167284759043823195741316059719911743091449694654039011662204021700233300139768476574581392849461819187551361400159867505621447766442190343319898325163302018207047850248353767174332106771416037334404019956193099342588370014440830435046279943259001379242066200384709220967328201118360134143579420327574147259817870397719829092484239309658215853317477621402003852218848795429700210609351633296020095541793934174927111529328984700819849651629601334054064924500571773142919488661316407265269536969549268527197980542597081713207644895111940189671626523292490780233438415936651677841406071595116053443574347934932486304960937586632286481327616354583037497482247976577115631046559749819198702736727210381148240111050212191718906060581552977109919607926857055124175340509488686839892712454349777541971385968651179334110894148751357713043340967643071125012801315270742356622821337610482460096536811088945578699925873280146867605190673621112714083653453508841744425678570509948261273638862226391852415208743046530503703117327606479376064568152438438707349444245170127805788834281379343247352016434616709053160835597893636747757072238060718445001589239689128362873444012704398314462847667607563713421885300168472626559637473635589976603492767406586549820157027070122756727532861382685995000821646424007573325755276526841828010089828845290634785446268128931209765255709261008565864860193224675459803398086982871123830828939685599628145946464914439919978648004483035157606123990147487928743839588654773067035716344467596068058317428598815671115018979152107150426348735041085699387385262037532954035233460096483392915014800877835854728667388784643166468376434667252684162924060385544066725788373415563588200616117534454040756458367032004548342281767014356617776105683129068555231403826704441085815721243624958676310121404796143950264151592471407105993183578225253362996469161320771176386750489286509209748442454693745700090397091406949653693820131255385199083742250485126665888954321843344419493896754172195894684275283444472624787413330030260283228466992135933274458503118179280324052147217321780901097085031852335208263950178869912729892051687695194789490658314619613038350248089291452094271956451144457416283547065983658431549713580517240275340778721909307159180250790481492946938193314008300687355869797034191797169613003985883961101501896743601309380262354993928619196613697263110269726455673955322942589351893672054431591605926121098067129712143364840528172817181656337548416988482520193788922324029505932857715570076282140408266176845280649726918071782807627047432673671909650880775576699617020854795427496194615861037381761948721756363349579108118867295817474526406798531937202429259987146264179973423227548731716989921943232962125716896045705883563047557798560062378485478595463993042961324955025536745863912865153439424024634860512020376166135304907976153871026134376019044454785242478539018090514726828392398447522172164925859053341664035808113292175815553039439586419135761923675940381881411770539248899345468139696765510500029004672423605270394768466450431122401172737670032973548963136047013749263249012924661100494859503675888731122782045051007559310100276332574234522085361948662960374216392367887198523384088623689877458107435869141506360266380096068090512965525435707264897231540770167880032242169603039120103133035865594003493186322893364242082301817682088428205962620923698958093348753124095703511740416346674766276974655820155776439369944371248028791722585389595134720752944196269451949587714431375344343837237508459590403370381223037627867130780739863097712406177991874968666016633127154564474694894622942840371341037593806931347118474144668205626695211639804420810707770358889679080305337244386305824625414767828251777028815947816823727381847858047728063998300694002978551314257086640012660898932839880982995256724031644350626367698299042809548133158244082156375529380299708101043890134933603784508241702829580268430054056921015136675911545119961773575444720173430491349713328407014520194691799877780427453928054315121681013419506362344024175677510171936454343929005664220350831828260550915103776649179153101385773697984720709223363752288595363912808300992090970181781313841963897040965370658751001585246293974314149633517311249302050496961456302573808681665446458855675405092940435083153573896739314809849183571758983948144964563887460802449204607442876092491454541918235368645513874525344418146399112199562003443220212478148723304845596773101679795519590143851421773860291153420293253805614979024348056788246994255582783644999910426893727336047997042406113527339213510838451707546380321926662990565445947542763696878716372899141092515174517387234208810055681273790329354797052403104235528485394608585415761190393748933646055649094905284590388101492890357283956744822835075260695996381572715086699141103024166451353589888243600117572321762498572241683114951296565632908509903471949961841856321101690320625514971188151561482979251353599423094543376542647539403883052280530105561815794979079698079385280176184301076970687446640396331380806007360599069355299731598555058468368472359241080965437545541488962464576010138115467040677963681966851880556801839029662234428982931389282316490575798832504637611563307678993741859128144937123897946391267199990786337923312225307129168157977507436428652157985629755273695237989719745842214412193407156276983594665780461151910585483830274289424152693818715025602031713119116796954047592141303379549727486211433025910893408880298607050459494118593991709479850001131115104261961908068294872711470406388624677675110308593619797577580644584570494547452314715399273500455712073911216837115226957480281067154720843883902247926593335909481218938461749949664410920805365232625809949767725439478747144949793924726777768932456368658842252544818433674725794585496466534123958639692132277371378035963663064661326296360585692224939718004958758685991614924003977780680174141231113719326512789141293986906148065102511857721886457835703276246019467835697815579879451490105759321020968187654321068653111362928118837085700796225419558074417371741782271399108734874331760535673002031921067166233119666995329720350873472725477062158819366825196025450810858354277657870816960604853156888030976253571366882961333995363616156408951491828840824048278196130406068200785767030595660793272077552685786723825176382871058081647181382285094200515651709692112126587036311066102787214921173613535477108292157344435095271050780254593855159985770115009118004377462234703820801786493698968940359247838603838958915899409544236420586016293097466710090333178204316337570563337134106855305478781254609345367281199011750290942025042438598771386107549235451511878374988901287967325507191526934885493657236339763927742048774704908025889850478892289383666246344002740554035414689101415359698282998668179839013458325925596306684810317301441412761078861774532024731213647406049938859709942856038751753711434474226483341556565754510812851621785000501462604554179340632741871008233456003657563372705234450415977496492787577286213589859274211546371074484996334096819022366914973296264630404075732328606917577741438506974911618905574860828284273109537901841643600452415437994073153729295265488265445032986178339689433696283127563305766157913987309283293017023828309146829512006929749752436430061194167691660329487841897937398101152020537508906418482980000379232470611039418439967509580032533687808641589425750102622211549431410025158664562623098346878080454380433016276920743332170925818748165452390937848490097771968231690560219078663300770167192221027738574147315365470948654691627850116719520809812382256832172263404371185805047199753508322926674860208038434918230913886621515668206005965133305057222146027005198137918334523099808899602289476282749829279518625372142283848949054674361028713012749174533519051344122593162238110868818180350195674425567111374862203042996395812148877101053848793438533708365843363199728894890155862746354884660707486619362206308414310356155254267390559853042958865103458372885125710923281355549835282295165395222621172846556814285144622594571413051245305202569277631490103460188987381287272347357780168467541165458400057547906300507390527307548065628868373332174321830428320025265400186961363914063544995564470451580128439446099896874161633869707007823525750068272508168693228202658067444953779325203435344199401035146892536845926447094022614681362311774033646436958871802897037267958686551407537573349248529967084092031826112394169347994457880171308794073454811874946469233958792030158775091767001628572177955699422573229240583701273690945462993124104350895985471960850775311867929785357792567434208229531698097982329756467870423174062130032529455642903173226280208008110311975125167843438833493382586906002669867886309712920430261252068722855264699696067686254205075670464228004468393067514906018468220681019189720924578999963618893013095730468571804711400213283945811163308901077139069905985818207835714816652255504049771343874277595993300014224717724401793636499296520920567132157748682734909137314256621500220922808740913644057958051034156828361798756126217485828279770436040200053589548138329531333386351186134543421882627556368187191239909960254366625340563816227014914646700033288227815159165343468408766466300660128766893662483272949359320896143902185156447225787937055448810315461840520911710197685972064485470375310156344285336044666438333263450811049094134365027165365168955934872009962073025395800800313743640871353533815734510605735167716519274297138999541444889843313932040713057311145227336811141165252562259829662260131430972327754682738396979021027838331496921946048790810449790387038037759665593546739147287671340989075615699326995521045448284152373415772237123976335069241101569361356248145885840361978062956131499463500163778101047319409590190800593275889692602321383414341710837522042303984032679612449836662895299510550280578189098433730164942370637286962085638237354202368028699751619262656210800563352435668388450926187401231083296484316137056909479168238678975841396417675360491841880157479118412231193406542247153741276857948017289279183640785757673728940632372210652126686252031565978544402118911192946847877512742196693395707947821251872041662404220577505479741760807343921830185522638372505394269031734005272007596339266165113099801049390354364551813344143076869261538786487421155050095747074839327250802406772568136887341501121856711333509973680645746624768431455487884011714872570464856746135750679395222463555629113813186844264262869791800718823298039995755270630888035189629098188088199950228208939906379612552457179984559699592433726620939454358395218677601211208805344239355847148767862210013337320221812898536078982472041115163111527442593316948211728927588687648856234561412873014313049836104285921023108549971560923760269709926347860202583396812357430113594977906408745256356108670846561678507660646404957208531083639013238630223303325654782517711873372958903002251338798933811244401375076950932437763429426650714694150067352190086008882031818633829690252714246701808384173985699376692576347567091822354578399981124792260011347756626923533718461364203177703595731445961497663006544637614978550463872356119287178565267412809571848341751741443286072035064662662467676649899934452865775916580042912844914162672563031927821806394214399292513885072707433060265539395276780734860201531038626192074921164861431986572434833331938073353409398888216569989505279813229982016939114996464529663946616422178488023105395025973430037675310633285808233013087891406146368161229087606825865304859575090697846153968034729841267996715338199021211205246111446989693115459730477769119013974615455411308992543947306008466680853714512224267387080404104724375411106002376756233947766882006583183520083573706033230911152604212637719380783710374887839055936829593707336337809112253079195333642851155267600301077214483299614682403496154028068877721472464893850283556520330769326743868036896847672167457684923997038074310638497755158327193222412159107315363765297245852451708215726366096425664518189569968554361388123537606880071174006815554561985648363508717342542143761965117635767047063399162474805188216296382983614411242945852410928500891796871774813963161566398627927793291294125114738307017286461910254710269059435804410592404967010440924249873858667563666624295704041781208119959427621739883013260984554621343110753036950698546171082857839455585204399947111730589469350894620233735533622257756068938213591388144060100722208305305330011332808954033653245241515707060775003656844079547699496971388109502590640347442811978643995933200534413363143410651760656928388798448496672634378452780030583047657124184463633829502559107197645338009544732008477811196312353349444039875076458919913961776207311488252113806164326170922304023105403027071971783283844286676062741919537440878487110371034106111796618188809307993250511163254017746693023977663174521221992263659415460832419065222032952594000184808645445337047963992655182692305860552619803494195437031957404446173500175184752774451484772080090264955863859474330720618584177394001413038742307639270694857914007363065846569303812779014408373116491299391634895974946154247676813944197372938937031920201649158508750502656814261993375442331749094404789471691968418113982041718435351948628581547258690808212559770777280894809584799900498476582843678701812072024445648489195440745961047830745810037222413277238765955236665846083273345121682562273947536167563246921297039255180118431097058347783122373785892265782343052159565170750734206275600717505277154323709185697009981751818233786555838144898210348415386256928029360214565054642874501215641561869173291449577838695974897826921942819400839052917685523399142410988123187637990641091227938402326509498913884573344618248086425437196876195521049506490827292949922881087482583191809391295710039452893403754924941864325817345281968755877589110962082912052525920141578170325502646278123866787503688134424953424326591453791453354429473479281761550480838862006032098170121709488542459423188984178992834317279905402722445435700230702983203935032143470452206650549649526910991911195992001130551241550279114169318288024228309356051246366698881927705776147042610877523251145447536721372977202354208690910939382736657790255450975189977794728348918327238590019204678219255145539113495774932538665665881746770786417380338015232207979593600988811598997464949427083222949296495587040631744072067903421799538694923248942038827245268926092141460896162484950189781324656142292668737985366569885178840089460224124607589932632671938520160883783616228371701579098253282749590028448042863084480515164092759366295019070400356094974807239266483724906231634179859841843940890104224252749992858433333848519228901250075356896955234605211535814437996559764216483888657868937926531535936172674311630487932125724930388804289424604740729114478099489626262987090051510384853048008832047390446141666192513935782965230577962313515795526743264588391026697139177878309236808046549626529306101826766581002997227153780056846485844523447935910695032236315436480737179674633382654431376888117346348238551673789698399227166553691093227941123131361787671210921257048628054709039782612701629537353425386585884958894833435505272943909642482898438401524318892995741497817375043358141618272837670126299868232491113058937020932271346472526848004876874361828395678226955565606884982526550628470021209413695219014495143639770414351035565088670323641837244311144905827135033362879860558003619127077817368908373378187887101055158795617928215198088151935913122450532052882656438067631310207343137415148054714303747124560059875720212175376699723864696372365094560043123949086030121787458837880927199157408789221365215195535066080670807855463879782931693334987523206966466328172688673497992921196493833632805538692419413312809365035591427078298913373371117219789578249807800541529568327984509296891210252500733882297931386771761731729088872695784603410203815502741831922720237243658732640026804637414628248952510880984437380427724821163433034405096644786854302757435036914392885706807040729035577163853787633442585866039844006181310208320018351544710736023277041545039382496529681993191183308801512362690573876126996107364645971688398228960763222720376912664058154964519374089354924951436885341397694597415245075137606900359571492635429203371710474625043899849186414205521898909183713077295531301915972910688833760736389685402474554900023081300259462149608231265553645784304398720956972290956070545549431574893371215907468719876926003432459546897265537517001540511236813933579771208403941640309304511713983987857730752167029470258370916685026822173726479709811885817434941221905705815419073744348064118316496602809878603482041332921557964615628073351684778036690195003088211235955413610583129021770082874353568576489399106687546689080981963814829545518554964098040080268450608182545400848443710514999482354570598693598597567794466695122958422396476104459540362890416795134316623858358149195845710389963689822665538643502677220366219356388065820500976654590382198154647091861636748262330162315574771953892350606600838867429060987528802457162776078750000879277754982079633035350031052332016783902889852283763455370001226383889773593275340985533963534830755984665836425740588256559328698199268845773258670200964455845576867164205004356309555802862481678420004945036775091650155804369703014065672634873918268921329349580457813116374711141352231675964639034495012760473192338176964193671828754513788568167208597318119719638386184742745557515440115219513608382938214004799344525872460689257484628044119494598109546557564663258037983655569390624923709192024247168042614215071931248088495653030286643680536803815761967779941302365314310624909983909096737788411889698314711464088901272719725759508485842500934368754182586154027514793397231540381126206650095641323765226647699740080225004278351364167834558671776019261709898439273405979917431570041963307075749100300204328733411832696969661625219100268812442147985219989377470294120231281020773135361755132726411420794857290675138222289498941492726240284105443549690138723553671617461301795174248293303845706427437677630665888937822712877343468265300378642811530728824502573883913622489290214099547742908808904912205394014656971890305348906058232406800076281499782685161600633453849746150544184889695509277470754252406599866365105039547854836650442010654719562030342855357399310346558346135025618167381131800280875236609781173342265728946955058430155235263008253596825924761201746589718222736114197121137276361445781474524740549159852603440111412674115812383796081064729442189083544310911553508037530685736196292810516038445317808143544507077675236870739127184500824219419083255954947668382862755611188338142972860197889796179701500755042532008040360343504335136582111164723729515422501394631272047676584108088641134432302596226626103264844165331626435310389174495842866746880524717605372361835084297231970294941466145923494245935152839801117407304146259243233833988865024360448327675630782981735995658316411095158146093056515503115576136367810742768110613098887665906935103192066884300510934257336014104947709021778647083318084669795763249113199738641848833911149879825639381289478097709901365858137922000269212151964745848268492696753647897075339785353765486118510805589103919688042489119394295482631939798515770338556879634445915183428317426161010077568365883131783455125688204971487652815730821647759360171700856339410938741926963344454024053303603100290271523367711089342899000346203411748718132928134172798420433220105438167302081143199694333999582817388886953695031561447226576030232003808214600555954781699946768823538082456886817956826958115875978607424126148894229414814469657747634510942860256677347561063285352434823574877158322682296707316643542175535559599588933270421883592368677832015316110512474214133372554358733483360522651555729915824399913306956788178315485626813821041421553931365240877975923155131832186578296816471079424811521368528856106723615655200036167961753276098456943306584106152439212843953529619477746711806917521183922508743038567351200661814774564891638139289845104721192645925124168740315668914563712454887652598207030136459653563887316693907178617443937828044200104792786472913479872075129299044792738975695010760322770332954184547823127036264453509573418629572800905122087914953977818327223731308909145122059951381730355356380954572765263612847823259933271096382661629310304993821085473711294351742984305783520953552019446203700435144477583937385843002535266239842716552842713775944822068306123833398879137984478755483768628426470602236116374679592663329972324834641393123434207045548993417868407356251899893659901671761532856959881553073195473096211429553198847849125292103745116207204152063719213962280878293833970460673277329098637125437998976267724412461567918647848949756137278288817243433467956793997946369971625363897101128123659676788358602344713271152531713607716626574774466741818981642979318068653366578056107909503788370679855280229235400661445379112989267024741308008395097268809593754648961427397794435462571304900998026550527182222928892211206376535979593486854939003416945535952248394784085726901442357530490552946810620610048011549667957137958976227463256776084732436711158092846503741538611898300140767253912783812281718811712322435911269185971087778774642653763360612638782571735397443619939874838857448599913239759368353321300139545703735898321745799945837666798065050834197859302036763137653109575052870345131003048448704133337306840913899359398558953240196299156988142312522587985742146387137726240973683346056326987641912155559381398545218157025308818574686817243642613453065345335793970435819302496737446169725762112644697065819445389422028543047021886204313033763752918139959314914952938290139735460792651555548344675963201041687275580152525739109340833983739198037915837470094007420552243334922480879373926203493250953696338489184951423886150778152263294588892827252572007947696188427496758790715828165190730856149088712959768966473693514046341953747859118857791745043182265262020239504526377536562330344443963401038413480193405275876875913255610625447892095083327336053093572694974823416422486801467111270488399009977611671402949722661697882088568207261800237398562734985459810532874769845020285281494843572119977042920806492557151952889240768139660468769887956487777472906729745638041121289704948960768397651735350074763615365352604279493622505528259420165801977047178659222771685197595002900220456361369249800494761864150112839637136177611661000656594184544589423991941186951462317874102218428423981709408328597440806217672657244932309964822628336995371370585959919231163612708071820221615323668034820940255283683097262836226810997966046208605415181607595008349820767835625434973029830316627592924485695861994805563530131646801248140603939982467526908234505106949590566028876473661618022186739357027274083342815144725144108334645129622515651499295121999097740827987771017400527375909083352907389416534946639906892809820430991621524071783421347707211450857431020929395215422530387996097131299226355875026202678104677190625785772830787734476136112679385924793309587273400214591459967726135090805056232405365655602953523622904298068162107348910125231008967177679246737987437624840184070762875146243555352996120862837904605629570753053793503428092856882409576550742453569904118585174975455819949572811643060994549866107205957548096276100170824228299543444416917981725463102205659397792410253536969441013887360328153865105629212794972375834542913741675228007169054653567976985587604103634717700712702132245506706333650363714582953376507770952544757902564709777538422103727834097253927934162411833801153383745914112993349617679723650404128375739765591534180014866109555506133135703342247860375789972299997473550966308539464672672762880028722484439896856626370889066673562216684139175543079981285371812066738487762261778858267703218849141075891575793657633733057817823680371352356187761732219834167422826502917556806795217729731352926149390886429220567297264876721908193583330005714410110953584008750658901355695693544924571574448369388662493394096344825798742360821134572478695533020297242558684524214125646287576362772128804532926187483332690129675550762406412220644633178973567095767509464500491599084417333701274631904995567011988178887778240463642516846065818655639340396541232971953840349588009073494239835852589343176242390370672926045592185011080928166629058398064923376817386979308248344833748767394745506325666099734985251454810364282903053673121572663976439455138686934522387523898850271135210213960275607287343468049700096102320889866735567717613958614148790912919838598929754021748007998570457419271631391089143093553182875056987424565904198303702439838126048209736460301485886446240754124694471759153925771093409664333361114803460159788931112548932875931176698640579719183854305295272834379045395779918713840913916717565200503877602163513147230408388715928387719850852327571513486269803198792273182137052574608820345777418160723630875327547715300788420448626448928107084281810102316551080554001684050689307449808701537970507521248530870739199507068264639526245077336469807872758064488232746596429251778124752502226055291775442257910940072173060487550828440952551788136670451160718192013073894299157265381096115683597298256408851919276317231145954965772889862683065298833999966064830198665157643795634626838078167376183915808762669900492953301406697904674415562507008458200846787012061120282597337219820495659760492341065010855658436631580922213238441075231758990245139043701635945289083860984520731842394013444918626957849328306257538115003326870859601470841239785605241152946214960375998479059964229903164606233782085813741319446249625679393494364011177711939091423797087226462833795035030336923170301120574092597973347955459916673533381726693770567923803102751720925302757185656673606367033949625565080070640519852471428259793292989020160363998828929893447052862190240379131560484696999990325673478733703923004520704150909712876436930320439658786628624187033786550507056461269836265142636950334918509154055605792705936346037273463226718648157507782871043280183120701877576217468963118676179621788862901230133691408068415388156515504613634504152380024237274931231394855958764093693596093494592370861360003710455040191685855150005265949328507900927037459132716711471484543168587946969869630267749378432460964327168599739696788509175148155233059015013024581789122006317059798166260451220329480853257830004287275259995807478963531427437724458788396893031716805741825880904235817440431014432871026190920064883195314112452779020451641876585518710517727111747597771257423720798530816784719790112005167397554440058446242910711439284555122576590310609471993574423790259855261447797933084579663919831166853424439377018827323103118051437000624802189735080715202825093958615380226823735462998079704178856579727690812306238916068464843934041390138853955568542670256731301220433385528111781044725805671393827219319860715185325689506824137579721454746708130596961820669154440390170480923928700604996387043360568619636191118220421464159517455873507940550068814920011569281750251350393350675134588786092082919741682331835959853475311005107662663439842341079616161802054951229701794282480660365288353807157513677764159715601624620939196215498811970336712015377571064674103458391248389398549397374522235703433450941645329821250126096253646542586083695208449860409018543620539447484297357394161327503534138104486719253800261652552831385844366174388552264487879830428807293618344102300565541132612759129687894853448613667750614174817592797898341158992620579599079143459430590899593279760639175295910623469682155514233180767889957508344128938042481153729509286667282199709213375297628349154657710683238123559150178008458103919456150546578963600486850793666343091372481281328498960238410758227988126171423046607763122312192615421971781615237133723209077897755898399109996649710718558783738458821449707901130194709696273240257045939781307149143914277362300121593430050528849322969345298653649082548478850637234404682061463174834971602072771124027928316833495099940236319499974448953214244033011520618552861071501641616401897260308941403340085359523044643345687314381901709794075591893365757008676652492855334880454805049737780627769094295059552609148168855122993999824595432352683081032859043934828639546413155380916793412820829597667097376565018298234271602389850852899452231651261512779933964833540838658339080683893767466140632213656761276589734466188275503245577831127058541530854937148446483859060360736571864834484037908562061045768658799811648342998905894880510436084183240735707278556283315393700174780417153360212021167991186775123589815031026040705154815367951398397941466986420380817100884621801824723468047752294312945032059022146218987209525888041634026906971878146130201310543366170740509161356713224734105308639713539017260018334397273722720224663029440433498218244011192231878808636511173819283838228425790320020325212614757908305557922071315620618989527766209662506923276584609180382906160026032272772749699710584912813335801950980851571043827872383629653849976163329477757079901579762045607618955825851980491799912099189896476576248481333904635991730736518831516543443843518458140599339805599837966290315350128822988157233149204965284515633843226603460713636938529623896764851796931843598449419357130169832969247612553732935797718839158441692043808911090614116863801271239220010405001831153693184478995618755124588551357005812785784173927800480748356729163083758081693862384539328411013502324928239366416642833143824095408659244563581451027547316697668170328030461465940046268869176813001530894349504635720369237797254971784896503483623262773451818596198407851944489247303088651853449280376199204053753902017481126835438988926533888123537203840786615136190259165485256926773659812160536712606371121476623530341664459277691794966543740292296967597218915164354288822131420509374121644681126402297378459477109437808404333748885037673010830584829823858847763343979364567016582609717993783174123591792814008843836061560082034652906926874675550145979310064870198360982939083994229526302471637086944858903193080769450237643110573810991223678202776004880247993748654414202148703368309864529592984077937812549856205407828177625194402407381298181700361797726133008776313492001057315853001953053079499140970152056407092165724913974353263685218802302212598049125870166041081513825835454320592355248983606692000477688467004504427921392800286637025394225053099845305183886169528664456583067190946178608965434365691079205455699485793751091962091785898565801128723027412197172915245354223609841249646685912706930581351698911298970356076916188973533301392153837629348278228595012801089185411328282805074072368297210060027294889827571138981475127277498121642228631428964952933461028517468250331089762127555190857741682665855935694065956372787336632310487864992035516275876809737390348766803118158403596276456994669474753755056573007097515361602071683913058182275637671139869140395700029286614289616221351487249689275278892859529023787465437798048817231406194875135628112102778120398296403001287852213273250981945659560242401015300341104579838342591775903837627606790673876455545550047593097531893588171346722281812073045044744387663738980536120415923693931890155116783114176766285262302165241260923844758539651610043202919001365512666458472498125246514921692124386984665955778817407597787353719380441569898340972512176746472548491516494598722118375607805592916428590964867869534852100928051926209633719125134563464303819865823479572560759572847424316916924133653245492883941158386842431962945754728790387057507717709134629647404152953024878420832294150082566649455633162500764697276841146128520739326101215471292685708658438661422690321614129844386408986040810681348208878596195113281028671072724233451814223475245344594390427510956448572864468132986110290494203362676506881415583126409116522940191904834169154455323988208094910670666448470963040543672450279938944614892790975957008104100326497976418964177812726853304926211600077171920981378477986411266477146551399541182321532350019470655230118993016842214417855843726522021754880018150788246006321866925666897179813816007730303981039401320906193986599248103309942370613808904424933616189212637951093720962518047993267503009960159272409321522174877515983600862146305385329953206778429773490785562652014466693467912517269296289301488142770490133396754683329789999841012222774251282511666011931912438589911298184467474673755922319096976912042665687416556521319184282545181462723176683875367891773257027604722977470057883163690999823875643572423877150565691167428255609953565759584668688432986575774417316422008870985073232430063824978213502327239597533230330403434207836276229243690894564040853769849322769777932924038818273205124315573206376199712101441346952233014385007572017650216380666378294462645577060739245234163775074388350506110445094601140722706248547481012774323948184430018985739978075823328454821261207856077318402309429243636839648284318881607158265926442310612615113146433379715008312343708992722998255296250561863805440024899733889083413802792641062725701531336668198703202143280066065251059673658584359858168668940170466252392885056213756625284605115614866686499312766837543192947337894156856705017022909683882120354488075445162102722803198621582693863700923530232194231414987173717253498846513802627607555033100340178559818017492903492711504547203797563545493947815554368958046449180129354362966832333624794657041012072742434346694134625590690802868592120267407641350169261200527704670613370020790552448977103697050174181889623277405819962239114279523931782765855947422774026098327048959118759612655817919795283553900715306389968661431806379803565769700998597041699213818440126017855815760550426328265008566956237970925747166123022383564138190356755206391316124378291158602561374890381174131249573233033146611889351278956056063322600237419472455804193509518128396187695364954856711692715389849983112044266140400102023465551628615293966798704913813725256482176805738015570693050176976025232417128635258545340759621989532849625682110141389634529795899283620380311209056485323284073980532283788587955603942036457885867433944334728180598947836149621759397512054561666874961659935254895025950492132291382013809043007715764978221790964987408505055050871311761904846774553439024179058060681760525310991323979103775234553479109747017872369079121061107150409747990509676604141396185032717545999206171864241277139770953673765645478391642032525169451893261778581575898119267516215232160464227272485600876635685382533152455315985738620683436038977400598668764688377407622475499581339497892840157965836925802811945970005497294715905813157612596998417424947765553625051726188463419065286581623642610852180288919997405633785899539353096201972306606906191567364948615615026700622891221903315080305400990522851643273334139403273361504591266932224209740104070890084411567265899019965803652496206898624749199043620049380784701177276294729694745344460836335649975593868902413116587829060579900340440832702228292776908377365974322774077723058199347519292504347581725579541586494711917373341329490367154776676152727318393300530706793926472333860615654189762919666876829073198939453503924569835172348252957161073886266007569090385062993567247313523248487437297108499555870322521681171735655329558106821038274992552253027236363561432446593366671771502184222995991916185264112366533470622289011163874643197058531687703608996796888199255420980964274318464484826757087746491694501316441978042541984752368725357351646194603463684893699773913478361867611138752589034529914028435964544787769148637215809603680481320823793163700573388321604111966680712285389650401621693053225610497575259188928572443787647892479600832413377072481078477242037546354441335292871045948800932325611473691053596676214821175133773187544060222243644198222769827930836778758093024442550783123790324915250851749294812678792941461612547494399003515077027226161434343269195765605901474573888717243605050123699682025286963388697840803704567640225477794223720939142208778993713279438784089120105732577748624703798053803524274667566423734901673330784429004697706567560977023268725399393615189635990065714240685041206737883487125138977087051746887362972547331196128931237645720328223925451236502137722000583352188531617656594092407034540117744024711329360003697719664194122991805605850616924666568566295197183541841172281079758053585768151484771855055942418738109449715628648490197826494592128238639943154155301881579442015779677596755678833796422231169505967885775153503087880900557447234634867344649959129629753002327297700432883147954131857564532617324143630855112229683633370386138278198359508336086289224122376747082036763324526783744270771370023694711397683060149978478418775769992735904995453123357068621175437645341204836801720777929746716980022008169707945437995420626150277109417961503628756657897456928501658709689394452286803450249768897628282021265622940655451041330938682234088399464949059070765480227425768926303558659624350524050647099035679252122362287153973627803103464026577193909997860242530532622350876168888763353182923534449401879992471337870060878507990422795058471552936331354984625547457929753888511577763606569116308355448794497769466768173472578539616685280698031003418010148476880161427619267429813015137339760808656117387567970712979687291893099624896856357209722555817178843732280087717458505112447805244966481994686022997823273001918086245623799073978948506812035409764156239588650331110726219762780817154476842985572251291563554804142169900296195828384601870599570099801327957820120676414675676804197696820636079991679300579092244625938278649866356291673188117237802175482705300280153160010711897542596442686136663241645964299423478124053041501427552808110243184578415645102670968613565502262487513229136660459740302033777719336908306282222048615232786538675724393119592391764822680320004540651488715164261092708809717162658427826116666869537149722366672955796769844486497669618722904693728382597288247457207645182075412449294884477201625560333156715606110748073170651886558990380149612034356970771875383521595243421057072179888576547400428223032770831299730398910743410525259049263898021287239840734516494527530521651524097380021566064543092222818103257997118160140971048819564149336660070558473569234838870332423114748643939619073688639050316776380846872163147567057858362491020427243580846604449311590218367322060177060763804322936148121868975162472683011223715078822233517687220571671478750639010842480990571828411269742166089259186514296967811047695857493983144976814588584396626540368543015857904896605387326740824712145315496535692317721049600746963517410832394718374623753463592865473009605013014988384848973271409293336901052590867269962840747567133129075795123207881763651173463750707254312632095522862237135008467068279511567385219298829135253502093746916892236739055374722361707197757757198908181663893712299379621551990299420486619172188656454845679696127074708450406100366380686159922386155823452708080696037030752838049365212158958725673999732899641014053875883320248954110631584697486436671375230588994778182463351994161698626118413505247492683980819931445183185386236742089471102046614988090681579880784290969943546856575013532949088723554422194329402593608860646072518177916117949164100604818104924826751314452745227162022620009366852612466275582826632897205555128185462401077782319801380940443677823697214372423189539745362497802611046285028523282804943909290296261387016483232199447280803502297038278607495418288847613304372418409473063571476009195301518169607663791244375452781741323197690459842980047121563610169435962418105280031448708847514780702488037274976208459774040153923339132414344781467556198405147143208726015971188905169016773427327828563946408925386780287910068991937763373856797374434590878999553562068411210687753976123681635615377762277948773253866347252030829819751400002758220453782221071121279359859287910886956110113561992038756133345875051349340345842600727232319747013444271556230944276792477952400923380850535025605237470305991646372296179011410433304217029562147560164341177179169914761967624694679662735014036530975955982722580377856097402629656565283937763016379177242907212442915398139522575253522918082900853985954544755364115577050292573126288830845816521541742982250457589611106163848428196011266205239452904260824903594073137735789336240227819924021454510600403279974857594204410297974823036827820383840857540668414108906800915185984529709391208364368550466070065464197094135073950723307264521186905473656090241118646117167680398398792847748978355934488336875748497940917369821910176151701007393306774961276947790309595406518606757229357799635320137545388988255475863184985860318550047737424468252685407784191809090849032769480934641139955537309537648890009433783609951393991952906229140610112118256158087150655403265626516490479826946059594569792330017357010060154441392525489919064886350406066460823533898044161867162248859463234280349707492548332084760649417699743078764699322212996973980536211391094025193837223476289021279570331750053699672273403799036408879455597973029220058792681032271507051128102541787778777727348812583688815536400384337419095082911903807233425013727975028832431477152412546971527819709943903860147340738697549517923186225048535671938124951753421240609220443465176377314471018630423798300607419550730027605890499798611465957375438305931201949903474134596630506286925402567563251892492409670683500577106896280114001376982749867434698299757263845642377419533822205830581999914065295142290213822156430800203586440888770986511506862646072130728996969399429063433080188744470519805910372177534738314014040148191742233158284088771528387739790136382540210960896595332127109267046813543486554767814776368793955668150335767508469971386374723559452577552781726534580272202286126603819833081426775958014426006730534773207625062454944211650935443545641052039506668148837290473159677938039216971054742768721029622669646180493041032086983363888870897310264437400586615056904222613690582001607528912073139923578370953781765046723300625452782836355813762885767339650235815719349268398285863509248862241101187400457724588695896206345519518846499607608785013667820688522928197866058843724669833232368585662823861990979807587403666304763489552982514525188926041433905937274688624997411102729307837420772331756843822511942526451551112641971095695773169644925645856758227964605145413620879444544923572573762922055583820718905665575392318072353402418898091452536261235434339243627904310890003499045311594826208319092064852787485892391205182574118133267037558574778674176657654726764189774878175018586740283419033896076216457369096867893487541942062001540437839302795570115979048768241343247909627996348142445036810361969933998086975798265089801164262157735052246393764332173786789838389419222575543235796051530582154954023846213953830376610307888934578680569744974330113534339687282386829013127765129094964175421253472771414116634089642516281068100794014055307888200721084226649090014863620520509906508774704781134479753364915458535808903295800080041918556322678193790370031259828066558143847593299301676188618485490863900666649220991604208584531629298545165673346509384712157375408446474957534595960229120222842908385093397263704673055481103371419677371595150962166881621483221234603151618399202927990910923422213433629858258868299507750764082525463650102074581359159956551057846611579298787216255273495003710150478104749436265430282011098768132055931885253946884461602324886338524150415120807427630290802740995366155975226104382409735950811259063924274486043016514163988764662783256692555970725448694855038540509788384640686462230978876117138518816900638231245896506928752448462763567416126199289842695153449137306356590080689013853020468586257566010821625489657116928197989356707517648229102331120218583328734575535777689187724701788451462496980637373904713554969733204931727411981879060434648049747379390628127254166307407229888975869702056279232936467848525218460869280133569804534018467398117439804727858858679580083403346311210390534799063923800071348193209713193993409340413601755416053765399054396804586085114867534819536248628915149485642060735707131340552272158027459435460469932499360426990118548753054270228987908435400491188283535059842299766447261577725411566609253231324923973773019022732226827341694723746130956062423336303243615147611039026816360075268316664496143497711626336582312384964201121325093153437853513343136263055005895410613179816020942031627142814606669638187966852525646128502841412030626958781076153234189615303347295177109838655221994274920309377271741011191177403321801518766092103221740818827847641231094055325239774086968921768154069976312641442929368719931117143712692238460360692421653499610352105962140763644389409245156287331275781873489758076888050308075421969529246692636102498352036007035247767709372482003573874067378750239398208743133510969513282639948219450083619800554534793280026633885476154547442444603639948383658033276932245061163123119326394052188136275587043773595235615886895537664956271360370656558018689608623970056907830042176192164087626660680679747126498364871676591238035784621821569741823440137641342064451818453868111536588791974636624257779139538102426837685201597980457974383700395387132977010219195443927029152926518892534314250311541223904024954418663811470023426636272251766573191092688980738507009188610011334496378965933083790561523509712822761825212068318815191417878721797907766932935783288727080993210781851499192562710223391335368836545080750392423139802164739873559753543333409817127587706248750960728482164936666317648910348583122176661735635253527447833763408978611517043220051490874652206078587698160039579553656492168766659997557576557481774664078851291406872207218203853735448056587807712231507998183816841360887175970717921121169932070320882845587934419818999117726231734376724063715082654046562682971069908819307390851208479104093191195509561780634049638366439759881024637288122233516276655522378778449374934952686076531484964698684094274094748293898188984053307687361141979194390545502821214166347248505888277011171297572824993645823736010441422520733018779830389180616302926501458251851250994024198353049328781233126117904627588599595953863229439227347433334288427642381362636181958273058613542234515987387550207646124545285793754140513339995286981016442693434215072733344392358164729583029159176090004748863743210674182143360333497617552941894130780487694806280827557695961262552617465320053050170565391382562277675256686196881704418814565206382424995191830596954824027154887503602566588811167033085713531825677078439295565197627182056925122836111167510300501107921139871276444952678979592443511336705711984770319213651474343675089209808521553171351506134719523855382972232133436535911541316015160677135336484233252228639766232712209417233199364633338137351794724869224243384462806698782081062447031680671225643169946791712820123060731813848923985622785520782230167222535814888646690896469119144393383375812951324058389802970874582706887388469275896096353040399904386745764897001906351131885780374033978150482713192896840940651238955562466411107218661107421619928868118701782205705210948380969927897088657699062857112703526564630962723144381553786194495191416539304160825537642458549175235071785649741986791077857809819656345346687827485069399155372643644277946815125728338714344168829778981249228819233412461436725553184227791670541827300153153941168832919640573825630582814697713196279166051893999146878766871649473915083140192416155863090754398748246707642401906240790024672315586652677886797871819347843076790846780281262940470330569274550378013141553949957234251484836145779402265992242506575787132120394560663335183318963724400522124263831446436272163328459810862396866253366729600148058993615283108062370507233881851555314614794414389323575613522132548094739591128419374116013149598546605356572821805979823516986074375009092104049865396112254582528717008697062570359368887185578641808452317601611998942916305386019126143268532027925719920167735515772126851154435024998392955565974062136358912957694566817310016342436919914304431793021248405230021191229053559300757524467368148235378634185613694882582511281773813470448809878567586240229667522599901272825626743174947818554450001016882828590593508309023239140589146787092115745317746933778087458535529625512984175454461016747079851392911819518391083520447094557094947226412298450688897359704530410256652070421867047214343129068885615808665616126107898023057144043726145828908546479488856955824292639333020108275407579011704057142095364780753517330057330658069231153223688626538485275197814862951970667449892748708811779933784937727421988037713780269197417911242256218457923271199970728887584477317156801985634093933513422226259073556995081738024821827798533601609106168371846524880905183260338988367292516393880151816513217167216746606665948417579446932123063023069983725341606372464560571329354329539981756915292208604568276187415252683831478588123965320581989430505972714052626608741472553949829498519798307591261139899673792987105279181042952962199143250104522615078777249199835621209758266234409554184433359834542414858419247193017492661474290022260035280088369676450685411779745632477273358638112456140709289655892875786932397509452555185010339963198319750833311015758930924708447086995982311686878353532476400607456996539144171445400590091780311559620381688105525950831201141015074603733546043240750797986217373039611981440489833734121860227353258336392771937593981138752256183765491119708018371675902315236616637064881078330873299370062371663793359796163365857739595216820930738834563689976964815169791306523431815419107928410650451940255329358378132060126348170408785860525674795533309448581201914861629810610529805294176130109012395119737375466245752922552679056932825735107014138700568712569181205185403363583669410354010818977389393884853131023921757601149753566813187239846037264260680783869835262889092374518097595958831249007584713522384726398206214622993098467694151899808759502817150388943183377263664355020715821652384792461075798078420323501491718103679808257162353899994875392525804948010179531706336499347293179296588370917786005065579993711369330663355698704963406460605311477759055322568223967788801731793287348108893434807042365421083942163689992987987512267544222207638847573092646847233546054341972453277151163992906533328388281054946655768328137286679010924087233623595317534048403197392858499066237786419522425336205436426639866051036196779095555636975055459741416682292961136372312299781418679601632749809533674184029123996876425614041974249225493808447982807740995531834346844897495829287845263684991151128240030177452943195898206806367998910175197364587802304074914676621562468828872203803532375010173537118051708847390037629805026793260739770645703157072555637014438329389406889732462912462793041709653436310354050236174502166524239113795082419733455640203762962277463647987693897155725335813024532434148764538047484208019629582297004900052528807747846323073132384604411661674403144641221826093164564620113910440444642259058761445235228397934525463094645013538463283311513697765834193426360033361483188890404095742727100675560454110196670499278553611206560099386465524124666485912728507466898944492642682828348575230049955080601587376792038805429111836565775122076937373175264463381791144696990928937915808038661719060305174321432775215492299543642939775367682254360557479456574897402938616559277294266969200957947913383919025913890182538923730785235364636847728773901525749166693257501455559838710402037402439382614164283029113593308564019495232525869902357419946759553529331027757747791489154365749017884037708860521207965502517112045934260994008640647009329557922283285463156305386872951045790884333617131839956887212016909860685450779606655356662810764865078858849340417331188044541138331874383184183813023597971554456841708585930517840230701905506943894257588431263408744107031344814999744541552313793720397724592530803893504723046843137323519020423668721192289917441728380815061076135260188355093015587687272851128999301550206158742144359283649358903313959240590282841143302429067675822511560120680163639686075437204266404904796494676590297519656802523786741513290132376760925980232630853762142284029582901614891340964150861833587171562490955405770733597859406325382587992073743399033606897035062895304364007306985844942069058355447011400862319728888934375231754045455428454255493454715157034692353478366848929377489206648823677947754685619627706747443989479764698112781096536466162899352096259345437998426009608910850832007276849728351058990322140526704931224288515459552215373324365586289478909007683636429861965129070584021316888801544288146642040591230649017090428517220016466753060289623123450512908881254132126613573183729234847574566224765353922888149898443057958472700399101591863656092431339787970652588774246107586194436773283183157162314552847822078495760849939035615485095373165181064868378837072715854537196570068059545931709010115084045563298538562793442959418553763961271241994746110373326638782510710033203555618025994289992646841365383490523498018811871347335385189389298779013013206133721606180633511664016235915467588138613115265262525766139571380795049078457082118421039137903920468958868579849557674973273724984244396942780174122317016819992506802486523563413094444716776244729208739772674849956861426168978502224517364493807530764817953589898885045184707654712881661221366546444023868771941849990252895896129984675952311655588249070629262879385792267973424287764589931222785714534325770606438314880116682867527544015167873562754432888753726189933659904489310467085356487046407669703119608945225900408660661698467916146919230032353268601579729220565815302854387902151419396749170870698570666999238627354792747974290662661097529174739905670848825234744133075626522348548259950729491403779729501777409045067283889022352381792133124418556550029869629154546784579176367118875934119999593898950620598874407049380696202117529167265608824404766053583469125100560620776496101631073507474748734652501554290927116739183472659646563873958912582455096572723350558727043160472536924146813431737616223460831388961201443449643563319648149203993785066622941412926284867009066642359743098394646706105718807146518108545327950201748071230963248503931567735826297431183446246077855577151799719852557771221232244814453952418288944841672191701500284849315614000315216387395303283124642308546448713245633756244728800163686234888378755132773174159110463242294094540588564986531497995593122373876465539013984329105878721689376841149438460612040790982222902728670567804947338814595222088969903878697281253566974927212875126724688200051957223730121689831377649766106928850259847843932324815697114289260148931801130407340801671382971452071880597781823500129258682320713239452393416439208332686936302399501793211369811941568140953391019584346787846178375038140685222839541231872339121708378015680037724333676881061220846425170547458936810380491954596955791810469708781361036447462250715739209406105927509978429799522045338950473625363400698784602786581294692795535431367431926981390454530492087046963934654569737012400915137643777794975906349726216611984027847999613024029411480487616380826952877296505826090003936625165245793077004965742312626783939373485274806458753276604308150960543126113407000609534728992157445493640177136605601948998901005691755914565825974274023401704318118917171664234215757918219784281098000071938413573893716782294580335353912263301686026763934262325565668337429684543297011094927295505348711047048694586947870362771534355558666657828165329067414142781753510385210650936845009543665716620733970696842846723019691021261243636830476005679801389372427407396216075334962059475220006410615727177567344520845854439576710191029085630210168362705664389216464916622646210323441070902430731973916128938994308386114582281097700589275123955892475996002626193902571906730511994604785957852373072426254292812695693453780398490622658552358549202714259475849327276964263934105345493973671040495805615924325180960724741051179415857858994852973128897819856436064349821501967878525728994335949677752626557633910687072051311198767311562210737203900274269354551280103031074491487267992460741539851026143375048331086502959287803693750549586443208970704294154104055845502596386053829590292353265980466967868763721574848913210253004229610833046971557715270763524703914093343468827281044753497337955711972429713518079179397686478920337587140709042154774020618129477198472635734695318444530146758482961792491922853373304524526537528341669916309761879077436607413085901380050558303822746899636381908373475543457594345141552571004755995477832218539716084356305087653323349670688523176740404859484165261517668685980071138374673513100538900795946913872602494123910606744902446997492748156988780208777296996411792234809498989729518887801261713221302883237761483179466001974517788470028786405025090626282305391909846766508696584319991306483106984033144030708159846900098475674864395531920442535654643312897496444199524534738834868363345702740517047852647657720723925850872892853192896718376796179296381154937305433210686810985407616979414637857238707225686528965516654259314481603344832110708551719897564692748181374274802556968535794332192788236615293657588753625798782523081101191067126617074895095137299450201733855435518720072379883988981358034255851008341417794752349245379819237066512278121957481561419378101045915518428782859193145445507452532431282751628504949973226448035114453828189948853836268969316240208560150770512236243778680913809029159389421093111635240592308646069671710758415410082773403003802292674826760868716456841543162213313278296467156731653430362761259303457899393590664704723865230073386346066162159404550239819772849309831263038408444465217757017932307828231809740733941470123083919717687002234016673808397812296205856758366250395838061397110878066457036171259586787584699507705078938808234659679476505407470850986406143706357215625275087132939275277282101468794923108604318548385481802567441289825861306795898494685794455156396165413219718380686434437276695218619475213775645653410135733792348592130885801004056962124883695206604486680292023787486277883176881669162280584675583022037075550589316623928433032369525547388195654306139749680652870894656961045366407050873327119056078403927630697816904093345569490303552138064094463819214233020877101292623896336576028563423131492772091399399135019263108527307770183211607202764432610849862870702928521708193788486475929970309472307403638246877428620897363772968293082262597795513302430485480913933222094861230347108664598134304949081721720565243406027418471102006564752307564552568470998084189016141220991086306608306130423510214498932565117314565677883336932209800255283822536485718251096236423641631068745692719493873612462471147034430195874914637569752400397632751274519856704530301896079018372774481994206129619298268263080474987817073037404203694524162382245210674507153180683617379308837773401124826344133655049604705369694752588972944248946884481385149233104597801691839236483401942389435493792474486137548401235552611955911966366529384553571990209861274804280234628107245775729815014651066193200777863090065944847285488298322904862012300237591733308450120893510972544996759248614548171772496448325856304636781524517219312822539136134464455050484952448920807589017147632279298843920922586167446692153887876809338199010791118498270007805174075495212615048995063622298945560346738755895937877080025984140011713223845640817184675241372693226086055094976727651244744635666567186948502434293249905588682903621779985213901383067693284141757658223410006683690438559738926815267638435926100762216116160568098631687239117313088405971984049830123678980380591238432722936888344033654356439194319031029746337500050830514148493996964923242148072276582573218512765892807652986417306925420558808814523365717224170586761653989487098481030373936426495065740267107610812802477641224193678076393652500292347536107148002834107546699861064718479927293408909704245327481191879876135351723951191619685035787552852158714037515264218785444195218900821163275750853687989387973353177369455397860650573725994705247756680259165123639373060456980107253395465304863325504591463388311829578844998094884825623493133457348578365166746576493891048885475300429037300615021908248059366062615981618710259863714047709172385338138913482560437947431046351486579572473328655497079635454046938102082691717944588582748374675086966583327303907827179894938540337033758374473855893498643439454431114360819009624480774572238679266178251088555412301176162357207035903465587781944253570593715153179023384831517513057088172127637936627328877670952844507151411120860073386529442130754152741922992323971881861403371018399331199097012486158448346247581371238975520088936360452421548827470476183064143180699456464364415906513038473644819665296396560999585630891556268714640283449629895318501308061679784366794715963057336374197149362745871335301596830788631419545582019239660451990209966808685602885480588765142467494687335085463773789854419462208862942601385774880852743260412698493133040076449250796817237171609877010007838108309609074116478145584621889326472865684069951458144109083703286131827685994684922769017330863060168726347013215691107371518397734924273751170112769346240642503799851361207506777476999836843387531962601466132039965752992897928063467980564669310529491770892159158893314515292649442461637713805613699213972941030091697266526252817877111817023987894603001352196382027882825193299768430593578659606644416800773462485461500931796416357885489714072445978458831684915092785822334515846685735702860198700047939923652192140115597283615042082774764951748395819875363544347687402445090047304233109826843362056113926843884525518188934069048990056984372536315030730565149801361911095089893557086429395031641188682318324365486486543940290674346699933702420209962029163105797129643606307673636334344341809099885311945441168218673832912875052721405320611867311275246950508459631193857088924592043148993038453058855558692910439061062388431251459368200485618043025403356626381852655265907022274577556656438639495163277466576329298716977792095311943995572691311420955014449515415277051311083761818086876110144670010411925824464541154023187378909785296768161075305366118192016367786182954648570533460372791283668513923184441544517001671697159484981027047751587498709918168548299415630604947708999127611314894612798246997404638099329797396568606132330178831153378725250745156370233919147553514350892031382665541235983010108268061690680952433450160975524828466108539999064916496698330976478766917915203646532364659709861576264290576689873779322310507144251948868498171182335096750157262129785979100028817422244392313867496403434251446709962203533677586322899828394769515302023070613379331556852747535952657365023844830419902164273059352131854575041688704903082647857672364566717684028182291890707106400739854860685117343356709726367744200785543563837073086881396329655478400593461724304241485176668300723957601205089774833644725739404903194948702682293641125363448954609810906338821558953854149432387213811340504119675135980606980580433973262978626306695851269235157108275163115515035609605309869961683900699586801710813480134901788500534997100629139179699222918906857641481015803193770804003617696865362027685620812446198817515071495577156290095193458003071567278728761384545715552571347061792482989902106732466126879054239819177522374871077489648162354870040478945095283987488581747492949642833702534374577336500153364859899029371083101432116168380234246501629567924909370641919291714617520213891374739360648732047909801281846201983780855299901264161928415586998665877562171843497667909258348976787442622815523411194135692390922744354059605471462278787350077471051780499315006210322687002620771921908656295907213055586005734725393324486206190219475232429990361799422142614702464682933142406719765891033565549932448757785850016045992804904929297040671605480352999048293998227848153137666051592643072117977004747708416250307354805598064081895237805898741959071176221803832143455899415462725353588478798946459806945819803387347981714529130670921190485909415660979094580381248804142345748607808316240495641358887713973199241181267378671191544121928354452053254299267354748748256685742643204061549916732216979614142871720379971380826160931927307964717754946609419108388382291820402861744363976789701768754044893593625519387349216569734165008004441909262515373403328782127559445062170885376002779509143131584433798520751129711718407717100362479920060849854623466590126951153311709510751449935197863439861343339848751376858632434254893084975866643469233949966980030220407424813178581926519773949691449547364039360661993472996697786241414709924341425201098939233228099545819946136076759898948258674065616506290207146398884019782936468320205900183074265124026518407758593820209239655867236816067368762795953329961666111301355774400195300904839415025110937753645151202339578577860434556731354196209442698446550668663956403072785675601351355291808616747371564859111007176603164084071161918152544682530600257272484197542961575121367784086011182982910999338448267846934508336022091608712943032223414006471735118989171027626905121717530907263405604998412820838082692130454062172713106935387259770702889283730061820457977087962472467625404359942078374367661551265070474428848997582658444389644816808231095417723833739458656023686183543430129692702080788359708601485649057225194458677119265403458912823597557872597753934125144261737392985106204720212223628176058897540568065370848283088756348235196031239159317155838666390725855788260300116690559630766992301890440279619481034245710829885328695197229041699247110805867893204972980281334577538399272663759310671241627734054713149664552623448680707608457114709840873292566283666828778067766062414823155492405232907450284045439351821535369702724167640345086961237106867645611587639987785443277597934190387437717001420038600099237930281316368005989770444088963973102544121426118358638627160726240386694717666643284692261733074678185585585294744893299530961757165774968418939595915486582853116266221633145247044266417762767408300521444004450201037196433119038020950374555783369658195859630842597651307840989188276752866253251736778380338335021109374862202597493301358299470213624718119190420673320021229180038232891094000693775966065900239467640323006857910741687159223748820025675955287581550979173230363672611222174534930754969241714068723981797464609286779518202527355188009817634473668502390892494956338988862541469039159502435284453162339131926558268896542635753138394293932776030604389443873761570945459949910338598019931174313182782061409738086524397506188151905272654377655576017662800367849101254523562447069792893587754083580251503659722855520441786202342838202202499923016073769246714602744109592130574333487453792248364094472398680289391405481217107297368710707290117213031799618077935208586590854313273247389989731048477022156399188168201081445066717671048961281241459235976860728975883435803055305927350271132300873049976200438551008470800062672758957107762155485716698959282731753052018594057931224802737849927683189988009070242647827808702543961318201229185211225605157493957417769440802276958967725211185519968446704898894711738918935436280276658909835152539746689308213842391783336274156250747906776719502601692850215974327911021792255852021084264347838757585571884652686987382039577774188818808534597790534727059168572340044737687165748308897767539055301668051331044587701016875959528209199739877620209330637300401497034244657507668596790071480655757574790238429786923119215937890613616764736554991212362198043331047934146218363818161975143533365923588245165044114791662668574828950106553881207414313116156380150447994906019464879976776842187204766828531159362547284652764860398572926535327601199432135200004275910534809407887527705351521339626453310336993603804066753524256258150143452268826515363826721403315851091997728151253214431179260034448767174814291179391758388643083409338439798782248344587048682117156848990509205633583371642288423316312831066738659836900078541030979482234401034038735577921054287181995150002916478892177426763057290693291428152388526464372998648011807533887762686834787284670364069924358053601850836388069692902569232202754420689441999628943392020416938588616961121928350512280312280327955175605106967165299491810464547051386039219776991162795631919736041480415600026346969529937612399642072770687310548776931994801779868440730591409106768408027391669064830044574715533340771036712768557760302089410481822166455030653896900229366146749950781291342573937600795694049725089972741149334420656949034120966641143532990532679130499359531222663678007749367753984191930989100913538585820718675087629721124381986494876057594920453948356698161899742285012768344435369170004045498568485620555617003923806785617560414471512977090286475403095965793022492162596515543038361619513625411006177277610736943723202756988287129802061956464691272382668272830525229614932275172864089217046424660066801933988352663532441438192997828478977831700760778518700943955706275616387667219662585130736435236643776953115611045446992231149894999122629573574171612022021967919597218630533859806705712132719020464222831984706617872649259264537071738759778326738071738753857545388192325702872653895011761413383965220901472238923361802619836860569530115319394018673717691616352767904987976914609415912076647035509599058339817376166451110734499882260436522669542144673661423618131863216522867615020133513051958658387531399207023052150374859837539126960960180397035977067021729426685695483400190357345668859879405158894478008067086247203060633744211489984018440653827424289524032853517757641668891991708198182663469700585584778448133891237960508790013259790479895977593985219416806052140723534466090477365034591950766732224517369841526169432835878004606868812013250367464978501980339743377134044017927271482486659680343360543644776306841851872907217976216405362362702567440219105141364709969039978937769800163979360253272338929768796034321488047360029255110143824571880854011854067743983614229501655485959939498240863342366692740008081842985488475054438112885565103831049605406566713987121197213590392308394881990067292561780763491267014331645098842098395028651427357401297237468237709796556414869264928593680584945178920201039182287526295830525343160173706026022518735166790459879332649940639688316481869985392546007282303166919076698552617616909613577398859069374714584445111742337775750428391779318981600077425582356825727831599905204357897043947902804059094830919116531574171781115723569509518135996349257440966504021010520587957222797403074092333898771286668773772738182930803934088540455344013402182024180151187320861626354736122275256833278362923259092470061844091355106764278814655354966400252678297109436535485643763107596587978217742419190601807904412818463988088307794804081695868129041613986203560897275815906531491860315705610792710360674658355319849760750551565588739537656960683272588244823147856578376746615082798674887955992890050582289435321187388426795743893560411521826935707028680377598613254115782845185366423641644350693274325440585539053995661233880146112833809677555687757340976084459029676206075099818625208283761629502878246124783724485079857005068092585033806232868241269645375161708402774808295260099151054219244701560667707737948141493305195815697180277427163202225074332326767437395987440760130347308487277436389519600212280620162957703519151946917962223962401098640231337440895322618054385523706332457514513670989934391264181128712739864043061356372192099160984253343581230059157002631756339637604794138611479621667878242353380206518287321695040208184016129841555264474680692014555246088519639246580224408812752617971241441243500648222962516397693252769568826260324846529384001894951745558973557454916629412362522115685428558519434702542521053290474643481499334764500635365016250896939132641463409497988560459838168383497322433828102545501968296792170582101922668610659273886461151735001878508984281344699624016614688898126786459243549151316596837426250808707896357232400956324017368875979826344410896549705522928757137974810025267817492801481856597132465739381507670082328813896563070781758256796176509016347818688666138522323980807580865636798427988551959832112689452039004506841126781163471623163032253701572098635696633660384176502687069652493364801179750472053783241011696379898187210589063527073823087777064490202556437178969671472614051760559069923916084879932678644124569775370396108937181308174903253385445168875554909947076390097650830451848512516657496826010246253229334344470539515212471484540084409388101807167198120195687102198624433378988490828998855865779597716880595470509607760381285529770346659160947763325543410092277926157438721667841802612566687726650457075707937179036317525681754148254174635322826671041119278546887116489846143790783608566559397604018995005145959542444349580823605335250621753293245273251069069874972002623605946239330767554202430879949390323434739557882931937589608589613175431098174021983808694643099924479799932986538071843577996109822800287813299476958979816568182830081728833367107760199178421858663182485104339049367716967613196776660183656342214111761820931295140593628791266655383166385803977374728590258505375960334894945799074754907481720532783545520605055925555659169310444275869290674253129301534164884455025292130073030414019657639938681609052971919799541494693671445415192150320212770327434914824862352659285771097442068620182893446538121380733044457901291503784039918242864834140545508252184348940003267341141882469990594549098130030931245744044420427311039619731765930945456388606986340174927991572248337436007447135713366819290892815352344417789978099386052086119117898323344482936317259277076700984294878284408188535710926948985990731908014081651036880009610732697717880361032093154235706612457264645006647582526585352614953910317245396524662005315874630794952664304822016759289546916983748100991178827624330963511574965008997516640258830849717136805075046383902201170460907567904029677200945220361214516736404849135020558662257225037880257291247853670827255407337335662005879311370818978436266728883418855682173686933651959519306136919682706152616716551611386891970985356642193106764767692158857625059829919809231279490929556828177669008476266916096586130096064457239268427953363189027370327086039891646308259831585838262085554981957265528216019150331329759851611337781222345070984818859722957528915916474422256229554977412441604139049144290942266494350791025433817516488400637603522617139761571720626872070780040682141834514491557268753336713474380202408304948784480942981189257746371015521069313890555113494687311413097330997957831042287952312999269088461233234850697967308374337009071964073503581205840710561100836960420206401081398744636249694516492151070303610216024809651060973551907923588145680292806554013225402657150422875714844526346893033528026933478658418423266685206432736873283933459336930885154440023220532486227689466009276235164918862465593894913807052604865990421145311369790953651143146504804102091337180973768399825862591823081939989056324458159887646088213158059558670701265441848109579455196579471612598369473892966464491726423148457502245807951153830662498955545725478788745935118899073797706556416148169637513375701278514304614804489003343583900034714126808316769284238192671636160445671044061359097491785281185526548383135836723563546538941159689016210796256695910099053510588203960499204931766869906109900638119104301211567394520987195314972324078193383376640792958297768982219573769252509308897704862313175346955908820301628565702904554410084970219302755894474695590478347967800194445254775169794347620775429696131940954981962595008004554713299267271177806070750418823300263184652798193483427567497954040964823783061568287153101433372412717870262060869977836695115775604548137362659190874654056231890312887834165291777350784380629368674914026826358458462227853777559958393900302375860865577705249953669023039801883606363925736768861012606268344011280160333859512277184657418045771404123872119732733511669276477955769927461267048657921302322922609637472347151212438854060672980153142317237525350482416411703688596440137597621058581865600931938767567529774302862585339582619153931264087702103438973372863144662718511016650589317363065551498873909803324481531571769394678692986393457057207455548352148563190497094922716091298465350271870039140287090982518707313783049690198739048238573707010433876451333508269725086120629232333996200159243453864495331036364132909836724942633949729547671538969251062912032608942770744776404700784100140296633268138699582751927022651330906349554850256192641604420291123272378592965666283191317134892570605085294609782448132457928394343625722682881985195702331400375705480323300764624043652432290561799821385236098130848435062765358894005837150746669967741068960901569845765286345300117827614577165627826785953901992780352496852081966619760854477699048963245403168271400495491707594271299757196917730929511997776755335354319833938461510619938659119199190508198301878673990775357925331941131645587562869965624008470801795043911497288008177439226036927927170289588712660261009386286284377177584473293153793485253788870450699636778946729022458261873110115706113741236412299750847800149297297038679951140777509912109067406893288353023953855172960131907246324122161270128245817829370154203908281742488550315725867664986748471704911536708078871541174050464227346242484636471165498986811960928673373205565099161057824733242518197228378800511061011971408794950075279424488818590908392478655368009899389880134556372592398434593055658955776807893725904485439101314080047219438795275435908631417650438371896863307506498354119772354731381590737776892995490820794113686210010484365350643503433938237164678904077019054231960011685220785832439677643382288253437236832846087602171886405538097563266953222414376494696420711322559016998084948354850247236974620040662817799189904326269272853860575684014193213437820769833710757319993305547325496309611099961219515485429617941648731455073163922340869395756560002449742173370775556330829831809196885013731384954514961307293977123183309391813746968724225275852651388170463206673694007358479316093472271091453413276844417053805342452693748470777625174735709713194665664670070234983843691060006886978871174492371404992613228118007595947347855223032836909485758560747496744721211322748506604843815606083787508771462234289145973988994208945096633832949533702267342384321132332522686053949932692879446346039520230793714314870310348200439541544626514495138199303349518977931836312556020464874947810660233527137166245843890425444431585347667005575059830729016327281154039518523452050425520277456723341905386600961153572189766997424027870268878347428991251189757427593312477974051619314700898062102880188971296290192234652489458276557864347654592288482439991175739645834292013146098264579023354002688465094344629371530542715710766513191356825226413770782216274670880833095932768079465321472042935054920161634804530939687973338567246016556517670582783583566710547316044916191254177657438635868990863528853058328311993083891365283731555059670554433265179899438815474046690075626935172967245389167800023351626969683792870596213053536637275341396501625788936338820889008856074166676856436826013055794112568614291328459229289765854107914044227139355711167908922763788922618182420106483787902193311833502255422943152021719367170832926195530261162536361796027046901208431576232887451788046703145432970751566682125109013085193261719219747463460083826354627178180928034369758682411313934816036205351092912461381685641058145742228328769519579061488949712102008064300995887341484748796068941215691798574683988976926465344009678211023701778134511858121276257215582275097689312347507417783349509298305217582682379946895090513798214070307295055643108117673714791302301221060285414229307539956228235299670957518811132957362364000710255519305193191133550451252800797988878615256384220044629917222960502082145042719211573347634812870213268593800930913036803393457582514432728322628773550090260223316167233285253470367364729102203031734860910715244465588868519607856363971602024708329837690803733055092147514862894927967318216678361475169290890049016929820176568625506862213895391982001596095869379792334101457962748061477065156529075314872029317879252544517476697619748223401824102224230048070295190551276611025693525362903225666518740447895625380825686060494882090188409423679432962696795859733919922666000318835809164798330553193569032758925139412848667883899013323609361324522337621984425019472258865124667291679671969770138589254695635356149766659314803513198476596214780399420176648277000324991433630579502777997751903723492131647036277782091969881056851135034566104519661066075577687265476467544920218692689483273907211690867909689851082180395335719261195095231368560722674367408021198586874209854669463727305199981846373596686476454293762794834558665201314958965500484674171535594440731321175903015987757397570598350477337429585325936913036604102551054844398048379187459027088358140855756725639813078614649485872490232097674461611706075240852194537098992822637393787399408233934813675417092970751033063659569213470931653476210984472071946193157337763015068280668811290920586471619861735634531247719326211643661202154163409563687161303434549602495687876017242633496254065396999730452959024871655682150719847692378096189900174747342286741570334407193460914864059042866006333417486373887762728319882830221196910862919130915369795983693173900315342006732027448049139134533718454363290957839651157934734405163899223750031165304613135222506633981851016674508325508723436899286004034648713955274607736853759975181700702839754733138327971451306302759605514650656725616315036969123680310646181448145493784617903065458029540225902824082597814479816074816131480390725842971158812818173089119932181422001045756410640492864688295395952438596449284869022623370639103795941665069408929970385557486914396298755696341337173008304040426254752451327941350539169893761564574482176362378540423726126566568630166968866912454897982831039161308725332169946383149722234086627602838589572607064911523101208891713274521427284669828067098810819920889588669350312784246257199230432438633978907167129103794190362800026682812978545309685860992421024204114916203431429400842685817104913769660399436868659531370310501310649225957086032282384035546726224644572588931614312788057111023114074244681956376402195615588715284193135678209067278280523718288548657280252967697339052100615452012637163717810076512254564998991735932590101319935267657253135731394344634141098503969959618913638019615083041135475800764007539739879558044040204647446574210144929926665814746530841646240545893345625909133149404021265481419044811253537817870841854985604705724977667598427186071994971654186118004592615268192004579699868279955814404789019229192561736455613218922852751757750718847785706835009125283705355477198480964263049298218414456983339548088302570942753975786423608945468874012973942005992259859658780173707350418916555585516795833609118283642245671664949203620645296133134615329611166994272700402981366847144980380527415498089906638943869211270066206735992559260071604183484692185673462223531682243340375228186438581590851984182958925767419619404474889512478726558086998359316894628859709714690359297544545646298406322963124940401456496731468719091191939376646790045794766875204488954555948841286931582587864146930978853461564079853915495030566516503863451530120667612887129752145914071624045969590257625767070241828238097536226509286988363485571703799176282643659314120628347768384104053779174525058539119638354631037644364054913161231602092433524456383614355639686124288010900977406070671935760487261947081651046120305506852060836492159504178165133143486109868803271031410470069003402922915421546386338335204515987901862590562128576506034226981042356626741917938535797969846656627922262367115261029899353997038842678106730531999241071238775774118827127932664776474868960913816550815002472787125811906549211496739630660936118020509257494683277189580768798172690385799630533630092413575742684893163120855317774456166432462451162146849587066418201312331566878374989687665323236535206011646966518426485424738121140007098712201613702856736687974039598696431395594487821978803400891003765362600180161104804445757878371412645772416990948784579861592681349736312285726134769474335623155566832377510327639335087930427427536486223369609199938343308069438718141632374122229455155389925409441185678274835142479835973831615895452404414956257360118939749786315434275101553035580033512302498572331162429561035425143247147378087173130775611662965788611421910607111834087123008062568284030840279986565271920495896312286928292335676036022766641646905721886186083137289256693227680942008046874313253406103217256029921926072370684653080029412023659661998157520894713092294441557088412883160768356100625882915889864436576564919736280248836900140517396278782859799691522019624894881848377788680879734487923725104682691122653351758029133314759493927555251042941569675926933238469668699634124811495506521030393892181725009957858692270437233471725051239217361328343963942804574664536035680046535857468278929231398331458838371939716817028994410300797164898669782014989717874416906018555460506968549050631626913349972011649372065720159140908946612607302167810516428363022070632454073177239287924876264898221595409397598715065829501726046463314681982020578510703362086676387819629756862026867173300754028816192804127621612644144869520104678741521199702508751821922353788890449097597679859850132510877312266807336814222724074168914391844722702213479109845087054504159346033091741517832740189423359838284480961938803772590882122046959684510487229511940968190824005811407434022623287346641507313735195367536529155422646009910765970576239091378648406292439545004179770099017955538938180210679611089041165285730107063408152579910704607438444726172058887439672725126945225661799432229781946490670516406790919521364040515880116936078265450616435069734657904154770029764492921056216867826653594520078387397419877102764097680219771716932245539539415121467101099179295072881922788037778410221845537174954100829990886988753174681760426965468242893099184795486574250274568790751133620096093660753856130259510360010297359862109896152935136654224548712540089939890126673538457492498825195724175947987273852800192928727940132044984965549784786803336426083768340115021495739501781306857171310063118268108448561317979820693378941903960000152287753583435092006775373428755806555817441631597040854038276858249719389610424827608095863570671207524309183316251753900390310567700918248227518769649544677935720503032471936886222495306317682464070880442303667603117895503406784626868060399004563899874787187574156109736680540851717755986739455389855672518975562465651424022430055534506283261514855614330216308414427765222563530817985693949400941084874211289679478878758318334772355701997636273791614204468171554812980176886128519104638198430000541002994340916802786644967416529431616940187988786374919663692698446280927302844071468717294408979287604489394890365242162790877140141623909225873747081194251844091421444819313048656983041815376490570256548951677928866108482731132920770496691632547537805491480538107562971812133506734633791444373429490912592291296683196554718429188085085147084388287634777398626469346388448702692055294522314069441560286087051820484929902987818220029053810053343850518481334132868055339675013952662329968531596626127414876604316470947852807751708525256342862452315131097499538266045602709052012632050856193866833948846325627609114094959581219069174940160009653340460518668879513712650051514346540463342741983342150814440232475021380137084356225788177412485681793099665613100304536699471765686912435241848139432659991919170764044987315699875904945650619945404118155847744118939775281035229956951806175191313883262067036318445506495644504126807614216525205544975046505226840816152944706944244725062268964151194248161275125929299941811057751995899564683397162765221664812495793369278153474641184142466563812100544437739189350433199888224451757028416576404636971242936598424516226605630799071886237608855132180225362647121772296516162892392616522955933315025818274750647180008475323876832168466563465996040520121408170628927155117128008610567915776436195660232910113984253308993321413030040549763186097102444253540770118462032882025989426959435092638605414910243382292752886785935188616113641698329659616781610803464445886766617634390181865907085033128441462524777450394796953798754312764249679214485281969081562819983430026438925675481050786125070985832043305531244708929635742489881043861949733415392339541918148295458078923983337680208033501494650042148357384470155925304687757908576333308713207925731638183241157685781410496003692467330951100939582034933544205662056305000190876326445779351229804708209076771291023056397082541106704005661304163956641555796243994903920322169062728105784571562106280853207858132115265677427562006574707842860473788865265832811656063001413985371555074780252019865275229202942735067321435356370888605175305063820245985607719033579831816620445385320894761002758970947476200292167966806533554792205927882756582783993839949017347601297191418844228485151475448261918733166884461234461074964855514596720601907375714425485974781176959090997538584886071914619780108714770974680458252376315763225408597217905917048703974670696987047528645752066851748260290579966986071756837807468299362939576717249155335545006677347091307487786271019192692413174211328435431341728208033595653371565416268736692950815778236433532498659694146056465107831280351230327038560709845589241513199961010876708493200334608577547633795465474593262268992807627224456996046604472549689089801867572230040471877671070687380340509237821731837361680578304836294185918330090618285078575576374079377252314734850232862778152072767865417854286794333530775966790073735000820809973912375086606352451576647781243380750050734327146029523940968188445142265346203545122180496888169089582458000439668182963766799137807137088944018657679156820608845095384505577658599598831109393812177193086646228437740719556650143361931125429003041551130875442011152522338219814894105284075945565989277708891761650710153771293825565607076756030059467331028021604391292859962748108048698119221015942948653593264894216377931752711141891856736740058682874717933464786911240059664950960087541472533504563388040470944779080065982570150997727031660302619603260881995682351930201946364183753016022883285235381223608048237734942204689246711400943328075054482233396491008328465628101641609601026528331481565734063403924514333424196989424821026111543132406602983559445568730609494192959696114005946348921047552074287733717156272915189222753173611097600487472169202206630633172876426358729208418014122468320747193929165948466375173686066086676900090419364946384538916398621236575592485763894883583693726453825208290727261549185703177735147626648087609756006617079259122098798950737118292912085368254626103590241273684884192361808415816680655717299278404757951256578761453423088982091112620849218062667413346187243704763372348903857941744401030317238766989855815946910745218374928602009526955818355554887934141345996805815039072238191756703582374208380387246143756913971458761322877480010484077114877616098203535204450157873672904092216021016527363325346512609936037364688629786678377896791164781309439251838379416239147289541448207173617871528308083864436693389132083452155095939828592640394392351357909160736676713612877097078762353382320146731521778196429642298903821372313482219439808628249556505244389405665522371478039694754132554415837105480279153187996469482541338385182216784924712954907570637905041214890716085064378681508046266303834305577759642696258616127551329280785993765213986706443184815251161302581087309602367469639105776742004800992501675892779269945837769351332276772005510945651268394105424407896842316820772163911640481891136173289649468921239982051528999322192837355622593964909318886870912233450753916432774674818420675955061012396066271671193836297397068973936638994342256999609055685932480098491161052691809898860557875783970187962865477273261359221486936461672655700170834344156327752981613843717228494677775673973939310965393456601233477479253392387948184212266277690288202191629338981376770859624320657754718600310822457206591416573502923794508339752311597946704112500744243610859739112798607938774088019140058539390237514054198994576892283286093131755586091149266508604541933633419551178680943679166655915754377657926007650962421113836245338090300197514133568623669800505159791819532686993925041699676475750988555512322018499969586419243822043895409358311350255166989329011541287451825565242082802641336043586766457860996444142311612395052870029629038492738139305118238326678630473993261338106376130316474119437660132827028462320275370339985444370616461822952934052228868444951910688952984441837021937124646765735268067437166944857247385891071154763961449009579959993487414111660190233021750523399379898963625833455191834971205634040316174012958925156838392033064267323215927349953256691328129737672329023442557012303940947216998208406674464402841984672153733095087385818397231523455009439964028972584346077510417874383054381332024458217568717676773994597219504803173425971801561248083402765550940295286809227829785944368149098753702317967551372975127232411630355400405315695887659358481383129799501461877276433516003129342855307527502839287138827624452666675308426670839276494887650473689001106074569188841211147409281935364161427815588743752635707122851508763850796482619382142789159237506790975047291811712670344504613953503228115092762523026260831067404342074158642813457207342760328791192540491377725016065279156079191183996524158477866095979144061410319510983950620199625476683139564415711513436473950327565054416810603075301987592882272206605268280965901181165985119084949064888012528343104422957193614144304036496547112928967389200373964723018515846848625453395483791516618948282941823742454519824017921087419871221145522201648315288597439275284169978059787204029516449693455345823881219212410200268591161206898195999377865593088808109382099320455072589083378205455466798773234375412937454747449279651353095153690259612988059926625731140519451010521819811525073292717135315712856233606189576869617909037582074164307512706038117083800990417592127376738409638555069103788728138328362908227677532184543609051015037481062742113509840155053503839531702001093969491144869172043141490187107404632147853506062109147022640539434619068925632824261316560193630141156730209800239434948095731746048293907778568884289342465938506652615216661121294629548880466022773742988151553180619395520126233027925556575639045413211315629416515050154164075322018767484384316264298278597330803388714518827561557799129693551176987049416023896753428510034192399906970825546781020193645488455284753219108961875549013457859228964691981685745696477616302139101100078872844525888873289663403241017618775270397193858471609784251210012358653164307186445603928155232068341238863681480842952860192586978092291560318196919072408338421414298740995573523877622223771922547897769815736926877995656915563841698892028136846191131408686139714652741594251877775515298887708496025270904923699549181494204062752921151869333093222553577806765471094123672422427507927333702870012339689421642117858350246757048896833360129384341688658570341225481771453457527596689279683236417565604972339062836134678597409957977141845785767138441974338710753763987920984068418754534372839308873883718898746782748987601456341273500760206833689407943066329534876840786214519338921860162743634571157546034575212894378350603936196758216379955261096005171056472921580487426188811927540247785418303307250738980700484668446906820742932115915601509324027808737265004544163027095439635840243681965644241919554032211563237647049485140424318234154793339326058344818882675564987946127362505488446532500723279699007252624277639949416987170884334594308838678211543863415571885509322927357600745473343478181036908226980483630964563106982083487697793043107076289940954198472725853063619925634200758303112329836461813372229069640619262743062825502726512567401089424178907291807494273991437448320172252880519259945662051704219889894373323227566609011641337074280413186472311221009021671122287513995105681502540295779313434788090176132443804542707297491826888678722808889604884923187140720063734147953825412619194289509038715531462066256032952035688313192368130724149867213668437962265908750641490530367781210422930378625831170444343894766433549004086661538491303794079296645414170291684373152195976802510849836111784348359163811044277740732914064888868601203530811958863936028474368174729049350734432495348284913084321443415491205272615246263073781766571170420151272109325416660964143698217609181330712246189779103293868263719161363908028443177280281304978837360849468600877789168600138030489666755290259062177245526245535411939755514369708158433482040459896544527458119879492446778607679930445909193937525582188873568105684108490084883991463794358037623742151664863544380045547173246591507239863457810887651867879220573365329182338099136646183434926850621020869369696658079108029488549968243279335931195519394675060241374162925498556672566754058644436364761853951388659749116600017611753813306038894685624883688130979268605945751762320055321886380945248387964412066997577381116551706742536195939718456428591636054771228215078872814389322670408199654632401511413551729848812181330466854133212821620383737043992632291621251140190015356195075438239689169349817647645927417559868700490279043825134300271891880592052135630234661332430221060499958031739594883130973120707155027014475049387905502994945841073229524696798078254755297760300917607651285047005813095665120622603685771709150356951470259834038029917409718469288282751202909466416877346931176152952107048900645477281494854423519729444416632437829365362807732440714885879837527128020574569332678625038742325011848221666405141462252742487506608931446407885192560650069464503516508589043377292213818376328533313377032848568804287216517079469545797222398624690241192400454168254656228457730938685306556988922243373871403609946660201968286016011739171217632565270546048867611684402493412986735445723357566014959722249958834449972266885143604082041066433162234029783435559497175663060835383397434569990329381441639206470642794994890301705757539471663262843807038840541193963686524011578058640367979248448615480490153025388614916206900654193515032248105750233599597518434199080078421327191122421784800095311609559486029466520415275055041876587495447189624944361338399097804009207071020357280399371277793298698751577064544815692566722610344283320212025700864028589503363847575373845362289480796824865004542411914506515619487206084451319823790709588219967790698729908750460913466390225340229094407839291943589056844276282726065533371100558024094873422546988708283182343860266380021361163098139118813241672689231583114746851821569930725582549937304617441007530039381204565843997159660904232043963389342988594499097041270117554082673556737116945521998682629612395746971693761221760602600494389666877908639457010134886346137400246671530324727498159456369758803869460556458619115235598885829314007987362326838722080978367254442510739063884524801184912885473055432521351437839755810692437922983605600641207313607121996976598507289971621198730165059597559007053972149591721690804658904782987638680187058451578794469923712524232892573524403853992689529513950364913575928660606185967359093445557140520055151681678660422777646455544625375028873020906388350170031318304814578968093559794692867510933642306698137545233005160612330886080536876721213124599753731237371941751024872399238864471862859092657818419001752201019720815032623250325696764738619117889139548476191891604404520767511051411056188476006741562313555715014745573404321284341838562385091342541595207212388468177636318196500546088591988462071920796433668445665770558777600914575216691878009590020056161962096193610307718805654945011223658357613265734176077623153700927071119723404413335469246899960232005071437119754753740646127529001082782424035344966991641541400787695603809352981300663768220051460836224172226054146357420033983725595893103292244399776066855293878375625656613628872354697710130648779708575400377564762980521652958834692792349552738093141667208059166582579315752555961580370376781760628947032975062063065204150644114566349987797884365583087274164565327431182829238722249019054560446773284608029945235148240973059490362861585309691489028727730201372145069743133980325104270354852149624236099530488790267647788465673779824282986474256764949059389457932988040850090989399687481258236752615114407794037444042424658957405797509571620199418077673836805579644842084572133952759968352271670350631448135068474465829699217786798637101672884127976984999782462087698650124131669019396720656067125619848183674480381112560053441829988252197790609696979579609071122919271271023085469797460623997227787493782015969741145370928133485303414755296865416979042666057636663392908834116216257714927393084530371778268031096332339705302766860325341685766596009371298079342344004437335053432896704072635575361562796401650523738697985451402975496868311352094311497407609205470980956804338598700197001296115208170139682439334763466118530352514769163858088068446149650824857026232638007368949536917476607045021714153673917726118851301003149415976733313638388811922398515615204679807553501811447655744200616247346473744908202316743229300021894545563666875750401271977167731073934220928843584501881135777945217739105385005797121333261852213086577867577793866031822039864511387997421391659570475285774889581164566476009455354288344321437469189129514837044593244010652755997503366621005425789209280268282027348998628204594478124423002223121834209437238969401098686037540848730873418911849381938034988454816308465999427423342741159160327410863150250680563047383683663273784640282487443939707341166372436962434056243479573088510853094902969011405418584219379359884626830781388492290309659788124860727688520474066812747309124588925376417082935097981454907642219003723626789148970768321135097849341642146490830704889356892456618642057073862934191408423654181099684121911381927767590701415662860343691481614911201705615271437478739107314891453993951309872820631920810134472033346002165931234964433317259271333900170475054662265588581267377395163645300601129210571925622053165159774730920460795824417984719413914463315536544216235501713672929481616964932669932853836782588724423846997154855307146437742131600685763401152057709587689101197695631235043233041998231388968103784897179694165065944394444726038719625523875739346173469041299585806609527296891705978111228230109297750817333254268189928773617781713064676913257666502930790068076136901346244693275647041763929974289999804819719628809323569188508323933948701111682397778688614706726080560767026579974031230759284519816837830842094361236211082351364780748664130501340845401507226871164399574766996429831836948367797500535893869493577006927176422838214811244688089822712543774140727357867695849435555604683967523791960473565248185082539135937121131194192424139057889734704890815904483619569746240055830460305407699879574007914729263120858815671061655311745762644111747618491470291242017577517606929252717456021606204292432446336460357002953439442784987842939587629782204910706879164198700161511800127103033327412423340380354800674079773658665845178702174747251438498117363608425433502388253626316145181022860672531247947328687589810711585896080677778592125606595882829231591912369230137054015609782119584005672649716013655171259110007768667920797904093167242426504101300724644227523573620897043207721316838221023218666498591700017740590721306825777374232666862373882712778051003939432000334677727126446958981388087233666364139889606057800026863065399623925319093129332863420335135668197144928942152198350917177012579343697370274854190688275180001152040478516013389712946192778213925620076272545944922348807732474569787043287961194080451178549463368974162083660693111283367768043300915091685078405385845153908251979957934133419492821515658377458286202160074766043663505703198309632863566576462511402192161129026043185844237106758898991156398021437082482984200630411849744829029320096244148697091132339582550472074491313134744665385382935012991352625230663685165018656956327530888771309595388626378817637271015448547193677259311359818570208245352092871179268294729218441204959040858867672133768022085462933685844114532976812076858624205464074800110959325120518025636921715356699303210647662825757531446672449799339579138711050971797831361867366310525030285068011147737360513531989980166558659446448773013451800168054870873156162528608692504032136652398471785050419607778490734297550943799621769677999628900490653974836137586366992763150146904513042456908195628417704015593597795014175851215290234366090532975579299104617311537550820791269485574578599819732261114437753080392929941630654180588715958655685334890030261832923087325855350870459163652723156010790849321938663648458608867013387970937876252166468367721804995975088473611330654317521392051138419446385307727601189822324263844227923484958927119829290380862392668248820228877853469299271305943835139441092666826266032843431366311663186805393046556611608850495322495833704754851574771922219224446144724375411019961882775598222095211042013007355154307813236774841492516428371739910344368130379047017214940967541157116671791080063032694471128979885582964989544631675635908007746262720448104162985775308260186036154151956438186824237578516366018461096866335565410905346346076157593573884561491262594143122890337564242673569646806079918680340316417466563421494521465822509839444349593181652539930827021167657021038131820707727602973694423561239556505536830956695895475283240007091438572157832696876238502097075883281418730140668005349831067278604204756416640028459189565870448267930055091918894714365976593701079189217244671650342143842007086758556641880153361458653635118726508250469186642523641429779054363222250138280603420719557042880128937569910884296171029911486350988937852165599288305198073218614939011594241243120759921913562359450527275366613093743462533013046422621003642826216716688672345766805879642333907719476078349078553550508637691183447123554883402330528124972982938978872259322409412058860033962736220506002489270449775681272524136488161148993088533061275752465394071782521358303694046318212815916359595904875711365886683880864655328342123393734845632530545629268150791403250083831902381908326455441936438635302481258278389386085712895193048259692662044061665431297704852230039809215852923289828641028784238355793973452248880339442972106644329225897242909901048908878058311266374889292208432337261112513369937546957128993543640314281510345339323345737487477829494567059525617175178686233968773318634690192117859689146266052613353351363970073529513508983671882493138374558421564348510157815949172003172586551102093936093307134827377373066253351086917279071620027701024842462018522619799087105208423966004098419243945691622360152653458391248384460650642858672047710062431593319760603489311458311806488154268117922332732132646885694670571312771415519366586510477304088950793790555426967840420889094363193100964725690836609205034718835244822154554321323532719331450540310670786820833408058404816318315187743153986877849352483067328109674825784844470136405000266845072883241723448122403289967877500021972389581154036100561476701871457584910175677579077290049746195710049946746290693154417089858363288197158746193311949712198018030114919482384058851108438491012335805393394433850415654163173502581862396064352941844368375321625507337054780458011069694683910501162130853169976649678773848984582734889087327453963454287460144899784306259727826407571223032977499660800451044834492445554000325454476851892161629173192822706700037618248819975744707004128033800620542063441292882243908313753959056934493422401852864891384539217968311845987054379351448662353032392548071813740079761434296535893309938542812064631084503986087464503722589124884817839280333141004757794864059277504352154834850494427373108777365602233711603114231698047386340963683813102593972192608115495504959814422317769309677503496312415603829885604380534563872785269933501194900919282816756563592399497898827342257073642001617450140470060004418659823481286278511107238887260624008959260316421576327529186789372984896583922591414549593003914313890128583102784685365979909931815167176315898284477720577390497186769996905812525124436141363980140413709897239331543950418703438718231292622297309608507214143561341311472601646154045026981793778947655818009755509948393252875614391269790788256490556998822770713171234732050801130785827080212558642734045205148167165789985342260884020405959104066489388913882572405218503205643234614117337181589431059666655556317434271954329047722654840300026484611291201824789452695060774196627122519027338560390297396180167631794715253346348131551696467881291082542683208458546144804634388823306042334020659742334414247839753318769547680357081570511841176008186705142830920138805444922957595032597850540221024172872168278611893976380131462882130506989499416129237391080917180737116253612549514911800609353602722617317875349900439146235928652020036095032194775222127145427706809785744981059167336809044451898318691501386284328593461940520205490100987771299821210967279983270596243539218972637322623611252908551687601820820483978822047500822575191467278494232447546873890048548019110267844258790963741112224008608252216617355255836611532434106571642644110572335164195308559755947247297490251266461050586353387201968421401967009312861638930223552717883719332041944356991431513420835255846021479357779926745516238754065234392910583375819568131050908388999293461722159752378903228937122465615747480512083600485942379338246549064495855767820963397457805782733656364901503631190003581634834174153375825597683369618916469230679697232031835170345380799309298844945942285263729053412085126162988849495742830088161547677045995416331141267824789753138356829871241304284747231124036930697697052783202837639019539297018357499431314614943774419919637131451927445056141931639112219535405644912021783377620335183421418961473606295854028058542735591447800122996583078117112763946622944107610019099440581479923566719608545248417657890466070656192632743351712185676356736084114320225853471028250327725913101248630426613209211289055688318410195448631736406220773384028332062667426113124825296913311097400247832375008454074104943799104190993077494297731446351443541989830988634004299158862490205115523181727305564570790951326841487914206935665195034742188697914129177501868045831265137753560988315859497634983057572968860610901136163724965380371205013007669918126522360430347573574325113423846076384788629850194539450068908104003163627406335083500638537931236528740709937814073754885911326008044107060904572441704625876773719688090355264690121203254660954044796641622789229662379656460231668819987030204467971118440613030660556082456441918178816378149025750721259048917955922120285147433758474641100604349704922920614241860342212629105039022728863797659513856478883970698378470467889551751629475313350999681446242002412756869950362680464637309768213331016101321770316813520757925946963707475112956771676198114262313435079866481445319499206982789080026851995464052507890176732609930516298643449371987348521278930866589189648992782858376579450128402258288673576752350879981735945260814646520592217067259693945880439236507927901687710519384171497579441639835231313421333819443163906242914707917157895793133637071273143328963998966718839282863645528611923950736342546575661595234774107652691032857316674098857642204494705572743904362618355632525780921986302107431114575486456343848431952099506370693026150138042641660552883543612251564551130476981594906494483438386390156009402289678547462964262217152241281850892226835289935213166326504252367219821153252895834036972373557647357142959916879741444806704447558571948089425867814980497502481714235774830639223985735754022900475027759781897090376450012987330654625431879176363768990285129647856161571030904755698314038454021517276367782895179669935440206943768371587464631067829691259969089575948449270063746605726015602448211471171966670504045609934730671878103928603357510153539657391198444815862420785805417100493267636793896203090776508869395381530853063651199926299070833520003319940519090994216768183929259539322013902946379807855112881692363629452545086074020496060920991568942212448214187260092018862528893505567907781710132664866026521398019611726145588129946767778957433937064985902324148640172565976586862299065747461183155396537223494971697612998664358430521232643027875687535982006463835885886647886661370825636857290326746331582043142425966680133675631847212552704105394733574738245317463595647191284535264271129840458237727573331637743092857446492350978908910404873023565982268105680086777182360116617041356843286457953530761233948838198612892134136226284445463246299562242320264165506628723796858867916402094095690171759527099207119549346513962682453388115138227866371570883794813483796565306079721317709068369619659128918107710437416923931742112331843003900113833990008347848280629037341484157408427680819433349557800753178001209682070649095885012001954982703151453296218576724402612808987459728468438042425517847030410467519460904131328982300481737335944720419563701923979947063182473662075349608112869491860417730632770711704067200770855954205472877550755398926905936930990981169899783608695139341986440008729258327399280896031456874576338666729484612596156637917507203419810285384428859179546992386759927594924301216842179034755930328009891084570893528106199668068539431381797771981095797575702786970868579110240492059660823986472419267259038655074588078920386900766714006553775319681293059320524578377920264415354528541473433831459268626451733031807580942726821054952626097684312477997384349928793102309592969060872086640687611529150665768712192847924337750498924057307475074435900083218513870803998792614315544417222190224085156534304144563350774501900652402757020700465906375857047564666244147229246427708838961588310938698276210633385720552410407376922499015083141324323515790039031330889067836004909736631230764776588221162503861343514902704873050392125780901421100100897167901415533245967700416242925417346116745251576914094169932905254860685575100370000028421420087267851810260602753024646811293766888418811374066169692274105121483931410134626926936653969277945750900527853065494861030330964520083460372865794995335124898482122748947151830153869334776804643334290835465630553893965296231172709744291712568844167923267090435515786134744342165415858194351889164750192214769187305350033653247480915538466695765098278839940846575041440647609650328944015450984265097078925945226983892732489707529551920390076059084809680777636084031067559458690525332156207262132091875100329303311045286191184338097038976709949940363693253739458075592177674109839972314038422366446347115282356978369425140968697320728910322060589788799720489359855970475977371089049935583388335126904000381726912765749625534324499984758226571796726564901208440609418915454609731225793107752245883357049179471355718266532109320278733562041596772892827977236300269435839871773600839164447990744440112923264955163125170501970609202763446989340598020275725219682917156761043359514072035648133787274903071861815300514812263179574422390847961531779895623448394195328147403397260758232275419091261659901188007598863560185043031702519280556039370730031941424611258898295763158592484663848461511353463956059429296742146724857911229175140616053912074718169347683184095827711620083139888368307780453664923706688807077319982423590406729469815148409499834151410369896196733684605494929833818594166598088942365784932092489307904024193675901885116773911781650155167599271668961254790684674950807603728585521475398939396781705395455766774439379675314599168252984550747373316734372901177932484117392642676353847078686678182858485492035778714105017735063399304230597275628120343867249354568848177292427331449240030484941275396070747361778795841809342121832372819105998816319258433117720070538344412049857233651428137537874952360458885981371246416965389549979613458335737166149594133636250040202260226376570636916475036543079453619730046998965348921387309335083613973887754066305629575556895900739583706286803995442367757043804303500544756182183324794224984705319457730591616559749560328237543572570422272425616490346926868393406970546435925991402489221338551305012151068122017855956847464173438883473874852747746768649368604832602435943796534037768387732820925640023173696354016928313240284167506452836588404746456256259383356358817734936460175389376475509718693720752197059074720809417347029886960835895459683470775316096741477895081191870568999188638641691419300965457408559051029813565874806516410565629083665231737383090848689525669011040407350174984913672590248562458188189824009743089967270171029914483061182238972469480018487878685653383731945895948887683019277289249904856040668521172749816367057646799443557702349964329196599297076750279676156025865892026712692529094824362144335086062694153620233269412337630826386520755745769330159424961282410110495672058145145756704576016529623582529181030250485437615110529616192736557262968115408021931834117489251792878301219447227019690003193975452659455322356081884387424436021081508495768937383578889934299506966295954065221188417091267198381856161835799581846439560909466377529500147768076033645252448148359378900774374804020951442129216748710126621881732894756414748945484477474872673172373887933220588321650734331818808881028414391610365369074252722464733923914844520800401921477926985511975683126425386347427714432316692706321379732024079553405074193904214109849801694703856920411783112792750425408229773932444319590803053087744961573574098605306539012853342398382021678717753216088266324044930587658047538686905571668569765065669227628187301020542588123649022604722131306515349509693604830015019358559556706778537394273559065163548855340540268970422652358558720847179829253369304631955997811342122008192549292075672052559138689126038375804209231426522026045704915495026521947156300041992454745821343817296853244703401400544340594553238040750713474634982744925594206805833688737076798778204935707052138687395161134339723897080538598927808694594888335033817122938761915883595734194344790739449790598040631510860050384775685408041279768021913623672181289587771191550480847101752846600494281926899857855323662021183089030082793607863519378743204310448804724955014357383989848072769641612238023593791519370067224010311700284027126901137760054584842327544468174557635166502369541584623718758313882382336721470453329087188465760296602580018836072170172043070698202497140088208863979310605114400551559368876396734039050600234046916690490726390372688651086731867702623164816927089900393602815125247210407439981169583916622174314301518371847674388215089920291571084764581050176796331279598021061313332937583039964043127489430016026933727193479635053441762031448745612822644864610622233470895573331059462234467287986978922617365509356160530713832135155853538432215183563690822957602700913662520291410755417807113207779699010987236512326445673274435010850038025069099923914660228754759096750037877722441942503852128215141748559997064270186851168217277437608778501774330229971167817492048878830209518101072671613158777076945880091526095580736167782029158791172932648544068647573470184079058471961974681395778158589340856265185321932996671504143424753415301674644511426371223370711062681197369777696097936976811309214250504613341186710681569939875480238513898995002912521479319590618590317823121037610523831801403379139536256191518313010628279261751498201107245435134788019746588697532374806140782263359078726261132456414571187751399436345515358816804117684271188445160652165749267140971476128070419768925991389306066469146385980288771759755896734433137200075731384479447784128236082007047753461044304675684096866567859031212621191779564713511984307238807522863594863240410237145877535365098880570280605776535686213918738472291005440872017804734286380942373965209086843333485733812876093855443452056366057375400598108064591525843619617726425935979021076041717800460200686524564520677978947296233971080420209854312130235501425300752467615231803795791171995621059707431578685432117826824762656461879512052099819972983086762382464932271793793854380453427049241088726118564026888400574927763052112902979967764850970237510097996802939861017376065946624400662650158396625130712423576319833764327946273145773529998914126184634494686768125834545920390010532569470890962477342149278844193841430372384084053456673336562064673612095566373845673351679867622434002967331107591630662657894348577982636840472330488738925955926522289885642512360713486070643878828386293335973131536927575146460020560542930402700858915792253426065970610529696789875146797882677504787940019209728460365634930571637953633646003033561299315999719418778210417263109423659929691067540017019595958042587653639413821234058248650424689590398948673030657496077623114245602175720547738031498803275047975137070333932426321537180160782121005844164434543931348629031556038528195459996677382468334361765615987898878669382246978149976922087690250900957273211882346692637379420067659454999584945914069691109794727845149123558473413604823797911953789699987393825797115186480324002855260599221685120735388994692865042011468352819442390138473726611912088270016300956534642306175784420773599718940122152908504671729484720529291554610124565239222864030972843995258965768224702535509692397805436903381440810226668407191479407590647243920370796429293228641514300390146935242549058032528599546869954129362207570787416697863980469009153325914629366601077198413987759687711916065082781222245933813715854825367414765451787344548425162795804822383795524546297018588715016092821010958762977665688272861188026150049465953072337113408211107232464739486715242326608413081384476219831653073564450338132117761612689421187056588431176295646461007788195600094710447677070216827746694620664107464448707877475006696067988941339186414520837663179049915563411881957885511209158366954798798049161918237354475752482625084249939439755428706470879647826493048827730854641792366546109607861688781231995075263539759746118524061473548822673889478748322751355526959178315339605962920640187502268490901813449345489919584882559032622451415930136455117437650556311698854750053074073667713988192669799912375812137155873754126349735074596495064770836634593347856590683725048760339911694405090303499126091492128669598648812622672683938839504489003015013952643575916760793220760996363605798659959139492185570753433874257420722117086397332236345071863045491821549802854525320875399551716975410957784058437832462431784870028392203979423393495253260150372201703588493037650649386901876757143071262651208918733709116123258728742942974009960095770430786819040498785376859699601762136011714638215623242334483895076608768710683102525336843090261827586809490916273410533304063149039593413322678459318830180808886276887691916316020238820183896918605552714867288594130946186099505326675808038503913690774339827149387115295552170968176720282634063287567903042207751710152863741363289940235001828041018833165682179248960546432062321314843615420120851389735526832037017120667089803075274942524095223010187874578067674526604890856940806312940294057807975713605228536705290235711252823202848562168256774265888991297521483714749423850216195067973696011672886101762504786716908774373932068988398149908399637156202820017692026090260358356699702526486338163916442872353495162573108333624806843762222870120810525268774995456327843328568300458986457323631600622583537144681922326440990401922033294028429736543450497169614272794097205047327148815153506581495112311633916111335655271847035527134942289469496691644781578520576685514783602887645977194079477655983910247969273760949565632013397707524037637883191304468718442496205629829477327799583158666627188624427234910795749334939311653194805853879903044061851879180680190990384751648837892745897782916510281392024492758876895167465835155402806257883202312859547890802648608626436575838977958425592223451810289594561599187096846101300141940810586639150021461481389167855666755986825730318284510694825687696302271942255794066346637744081967073307811273737282728310430769258750204798480922068977178647334417589046951382481290530716835291557147488064879261163874489531766939907299174317285412289207617391987742001970733162203226290599965095242884943223185123997729840039050310530987307103640881335637233469253267378128447477977823910155142497339758402381710664010241078958690501981093644887466999221056450475431091392857279069618710657526681982695176273748806248214052739979578739948196741219757472089071633547555529416080731858327741160986610819993988646664951576880037776601557016207727127252326280635740839589054591465861758176264165406010048691065327008168813470028779677714791612607199472981655491894828025723260060185576476382094883651196840831512855119518488333324485762591906738486412330407778948240911838737912887342375662979166008891318972153720364035055713284885475585209837867438600052442348242127846661704456591466320496568316823517649720423667782505462431217082905823378433941608613301004901834902240480514506185185086720605797466270436903393224481786877446705358120235970732444355532555866164839925522364526314514284833082614282005171718715248624119276667644819847107318346351627944278783786949185862552802306011724049190345647321403733528988720573325234052486995437389939285640069173962244135159987811997677430075167168105211109949810891780014058926462564296047281527527399678638956267479205965982364666509729200214873486448916618659854291317242437774409970415015434427175666354074239763682836317434779959648347923991459749168518454859590659456416388217638246071722943450843834604649402860297530812505931849333762022264917611488293751179637197183473368577026165535269753836767206542711810917180406743233190193898283084936401046217372542493578372452859706392981192057204556715044408880719947064184076952164909727006938929048571450302364162851636089191081013313547915299366787701814637570132863677616628597555772649187440114458968800494528404701069023020913346531936725939506251397306840435511506112563471068996305505740338536850118717837857169940469721699511626897498624218951596895896895950305487322354984483688956499487096851256931930716671092497732438129979946474462773049141722014977049070131870801108156932049178236583844536515266525524018852193397240885006380538563384985234912262150200456970306091777392537744023954657688368221325886398450159262222402873810611083247045690858812483609552626046528477808959850654234954820725498056902465659510115144636875243258152863685262213693424483466406516117629596021097358989921047201942581314946488194814854621833794258413188985196554331066722648003861268634276419862419217322812782319309372727153299855404176206384020687255346642352661065835219137961259452662867693488561646898806342336142647615106519430393940074303047215546085231699531602815414889030240880102385253133223471601089154826270413637832097200467350688068652172424051662190294878644682088298403956708141966395293014446469350586329246247161681813956215332049793292342844184686338765615186397532473021032686087740990124446566130791741603298330729079227726253944483283448270316562604040403012342792229345017427203603722976389792742967055744144021380811379786466317169327915948180988132915058912322457229699519745987333827940604988407887795613780476234659459660122186319694433740109176058170500048708041076448325264815879721109520087240202370313530943864601412700189211584143956914067297629437077724409825021643900512900495691704218187560240223900259538583497407635578333865251730654672050901086587308819872257085797309113232794918604881558276845703954518277927714849030964399305070229805736976659040307799994291291235471436853670615853737952516481782079826026455999487709288496532298901852394519609730406024453104089758995890878734642279566011891632195758090039323281582506572787300917460917015763124029165092534515187342671845792013752970648362862236890384005132883409487803558025179526231663411935611235475777343407416810294779663062327131927332140323645780008506244563713545833817740173808615323324500066118181984935957810340172023833365579993067222982326061322165937524513423722804036368681143555936624391960835065661315937737175849086296931955848344963652997928143294253406872746730293177732851803449569672476199704598004711785791323774046613480524710056228236912317464538028419812775396107271673023285802242989075027246126480548382573509413403168249761228328616432224609339188013084313202058945430861524941245973095800632575950401353821460669862859581722474183151741465682868517666219479831504017636248006693736960402338986891837442582960199237644257361545109721605031453053704121030198712729661960125889424298174352662805209556122870685492257223157982680508214530213252306221506058444092883146842264114040442385393771457972139592895819752696833155752982349808811592976479039736266671198711125654340596632518745523806511569998917240398281770262881605550731273415746399697388363741920744076656216945944084685090270305043761587008756573601415446490700351536459732644592988305827809924112785377474168239318268354757465424890565463907831375167336221386730572173819883953804849581171731502809072869859358601855342446546418288016746745917712190923826994027468755828591071577867416763210065627890664599295571021474764778582670766556925094221205626426148007183476406891859990106330367797396483011857244499591608311789298744764965484748163148779733887908368743888724297495738262021483561333338985666708667824994097043250133414828767925965829608895410726145588905303210870323248042500499922582389694651029296273587686010979438426644686780649524563713131421131067659523496990958187031126973307194677743418228442648503534195898871291161523576770453297643220616295618240644600912324867787207722267209543880731892371134388154629033395803203947799607937580534073735133226782077184648797971132366100732999882529704645525928472411335573167807920032367939172212548390519390652873187189905833587168037550194337133103599296871620514568348759818266622906423662085985970538961172270213771016629424660789661230918125764303371707271944054214337628785919333973790654894027022212289693726288346654681490945070033815319877230738021847955273192868623120944726922508878792342661771111702993672463364722239536526204979642666480208711018561776678726666030542056969504660723020405076516513415891490869781480651861271585061803736290591201688986807338677910682198393809521369839851965316194276996059425748224218453471789601471060954597988040108326484062590099943590754926030343181064036825383829723585076992289402135889907717320828241375498602453925449483485082505224398963551990805953928645888936160365150751270016205322929250257672937501519666511067300528129611651169041419184597740052724585393785382774144403286279815585495080242581261692471545434454624968308101542658631183670601867819880383420529886622661326140946820011063540978609726523954225019005268856791528910657854820588659235567694114007190586358569688689781583031385074282114048412806994809886771566909288955608658171184237415198797977783824996938193895114199868287565034651782059689974811784882289530102718065433672256342594054520914500655089449871359457484536953588112633830592185471074733520712447839538560264129075331517896206077600063443104550001870990417370004870224718242954347514142750305471157660730379526499119057338886595298228307680503928507846680495015282648827293102058416552601809186756362125523895879237686163210227317334371777588147413407390483086129948690649253092962227443333052422872290704097160767465018523664906171966313692492037228075562848079480519127185431230887395318497790834531694715713199730373118285699402732309289190872669973077423320147493834639117414847520268711072802036508525602172942365661419799307356055542751396927714446561153246341412975017705228224760380790222748960279707420406617089330416888084023082841000629004962119458895338980129918593406919025106970586315018380235146014502632155701037069680578570429772293648857043145673477298114666305398185512973528631422295987150179957469996695701542501306894016552932940860686798546227777702472382588811220058389637046560524264750088677472412524250642656763613356864306055255265839241612026678514324907537176553807577268420627520694571448433729251038169706627665687961650196045070429228420525567260034840319313783867001478646355372135365874639363435225358886135575007592062293529709469391891786360470195068273708021314569893081456503860108685690841965009046198966060355720512713086498563554404713000579608117825933906093144173560500651502118028077277094140011285018897895379158470640282005721701676489924782750504906279847944529792062434996120763418963579055783880493866787677020423924037648713635170832784892345887698961705396160079821421941987214654362596691184938446872706012717929034719227342762062726369242723663755344578966952380978914270115411134394495377769314126142926573882278294872426069496800938269777065565143700947263900203463901531334212653871534287702779975916898733794752023361516475403178948672418413445877548944509344121368584771267917322580714002745662330582200741403777708129980215159478390995797353222102804140605676737750253147542482657284486024570999050542371410434897475910408324386583344240013424181987669986407068060603683269000327673107144849366488945912380942185698621296976755871543362195466339776583001699937362488831568646813900771467014307234534335372939418175838320272214494186496435116820314714476133625385418926989180326204136894719522461589067326028717282536558101493704469176177724030983750003584367380137308583936756469773048095557404372558525424579450719338583059261087487048787374754843165404887109346029007398170272269498618004163242198619826184436555950734195562737386672500257262205953387458784693982850586198864883033228464099351088434549810803632890946648138721035207647257612401321730117600383102632553976240384188962850196307671334429453156192992421499889542348609888665802702508904284430324208646386242700367366772844051350149934523889298406197130841833633844434669820514932113529897414514298651619614089834094116759991475361050535330012869068954461996853552225889750609518208509694340302996168332560421997942197759640881157469981888821308933802017981940339333771274052930551618046455866037339365806389686715846374915249220563795111181276534191667425426699129484679043968722955958698909404424982753184561710538557064140510181751900151809760233938007340483010111868394718875005804320795439795161140912547247109734029183645254029737646213458375395049055675902496615431402308954223828473831187400744794677503670175393533144670876757820167931225793768338196665647130722515197760512834621102226643601240570753732562890073907803538473688415223514510393080058895195225277096723189370262968053927338609118200462569621305442086863818746695463992082977829590998326967848040881744629847022173406699836829739826347021925624685803012525377764621830366569098914101745578607235724689832514598974730720767406058045551886155686919333367072879410840725161922225270507572500759158651445365134927326122705416295788358926670121131508916075106720119371659441074841089085236770844341750856110114113022108198235062864080165227884776110727652945878775752553465764304774997223566170708776779111156408972808081140965973255689614494756329075083570815592391208894721863913810292099022480750798534808562465534842937593011614926620663592509733699032590300926359257446230661732960058239887792578615993620525907016574063561296146708002578481728455481326133902771007017189651375266829630245961346118078238600973038244852792360735674227955772339062206932261019075926187618162295181546720017999999442226957904649820509339308039523234008088418545465968150708553361602639015086096702084980646474639648126574973324506484680482887898864818525756935236010328850986717082151079097761759372372340671893855862376970916005538827454204735424071878016327574539068383656313079780641849949322319926129935419987983010540775013347038079145321745092458537351793895718708689004538648070234912947546644403156306934651467336676649794628335731967248997497135987104250455788224269206436266218367613364262744970421482994889196779404545449792169095958817593330241938929454118489261377275473088296075587618620301948810954595059790857280897014951651323073674538309792797451048578201646171742821146566349923152881625780314009908990482769957795699367150288541143065044295619978646784750268642803309300310229958864552866183642755431302483252629899515453810017848633661235815752475000254593688975329152021345645560816048271842597666511391560049080732332691411790277204608467996301844579621396006064935779355186549206337735204176728367186653638834174730370213028164254193697443852358571511894770348110607446090440573527729414820699457640146834773948119644520528084705891043168264229985632242422449194909925221194704541540932421129948807612780965912513427813604007144561197133964464853619084204225885724110983486584753857536755451346172888821385761260942697223395048672238743111676497944831199644037218029166055733575950374303294694437296097577726696306982485376637982916857525322805620971481092168046064084028350789013625705753858281984559197124507444666233873960089331908151889193874153543478307606425155345059941868683091904305800303371122999014278218877859374291136808122791216851374042257053916844949972474463019587745482283693992773988988471212027913831902611735318248163227936086961903285176791734500264612838642186476326953919513053341593079700275720353201696843508327877943587638624037247419760726382594029005368414661396546480217870713729620585429157832213038999443770876938013248232253487577908219178581441226223681694035810526093281134005956939836524688617841468964408834836477647675377377122146122613806977264905350191677597893924080758615554068371976007062209811735867103177040550161803836160101366202154447359247272816911637642841297139205660906716915063112523000737483373838910334927168182364697996432599471561136552847172256674078276481749800505640953628002387501261258217613447523453557405665095513708538402691970598635273864299981814614596628140213975943331623709260783741370668876734735567180334185515127750051590308741916606631722471774670148832607720219955418508997609714167864721630635445394119807685113921975259489464536189278021177127141909580185939260181674007054065853463494450870045534610781965509739221317524502044164651202331541724266432352787570988799551680031417641430509162962163858990160912077142142347818557143134243883106148974224998463115239004161664465816197007518687080134176157026065367146501808085826464362529039359007052640424028361075609814974906761347934287032975917938170147478518489658676485155189322977317456116172230927631994946169024210579974571659555487890424350613231592515937472735392669411339486493594332473523333144300720352114803862686819159595803010255520423482118786392669639550294882590394579799461611110240311423843391575125143210500536387887831809536148365151043852651782254290686867915580277880416271300416869846499835970531380594639632301851517585175282261786549505648932305955435639999796895397397534174657973198874961763368923217022745443890203736055713875266998638719152884144987154818744388067627519427370740105388323291770146045592178699275073495261537520184667310610705685653324489716940997857141850093335383345200338232252145004718223010278691342564754450820731952734822110829749913034095607393119948841941324119481678012374651395997796221290150176715488206009537016590814200801938345561339543606822565945945888848493819751261865402375158537682176101345558752214308777013242512031099831352025865022959424091910564287373172860738864886816408152126130791988658852238407900161662606478438771504347561286891895018681910656533981130558801140380111120264692569934311116205737910560568528953745691714338693076705456259554256700075802229487520928378237233536834666356272349726764277700099648257738079558380918730870281987203148135949672185701180321094500624971857601807503664413724651861775882243243138121624983548904558495605074845977192925710268580858750935619378754955728163667273941057716180898545166072005624541253319664643543743581346329883526045554208180134107849999653076867896097313785195043448175346109111843299837002183308259073341455860314141104200907462132609407372915598245954043576685667036581604840968543666838616760431433273308282843869664939133379985596840696337662253200141624801951020217373120575387206511893483524271618193154468759302951219996319318000928146929569765579533416853708359854539765545578174971811933124435190556581109751993886672557066298902759734412629790042518903140441622630779865815485372784126151772054520682352887317060493123830671733147790441154308493948336091384651661757009071305524576900090304339523188919997254422355048468546180067296449129794657637404822481966005435059916414728420505832830612144111080740423319480352995885989997112180592358829066409017363729976355715298067344367502923456334889642907347930277615197051856377802251206202434619753968436721954222051713059589594010854055839273077862165554118349636779362125174223162257945093665258340165000123548785744485720612508439509498205590816301667277280623239217872778190287616875201272175426591408501188818165600143987768213612331222552557080080473176414143775053703387087011251049914270827226131062276762257535833318958130483092402244185994345297807959735773989466110848841505047095146193595532326484688876531240460132494957006724475406506536681931870096089198729683616191040664338857211894430441519373637592665267656573757391450208706026687379420249902742610201666796204278035832485236821263212799816374863097479024496366696512811761221679038708850477229777457702686471880293235953432755448833999798087929325928805748788459707544584291581790835274403011766826710683535138847463493430056549364513420928133619836742056417349413008037123695873643685394378425936403967162997924797237486175947483904221010681507843324604566440717516747758826399907126894696791656880747420385275102910099578555099787068928547085508656343797363665796615776997825994446515595217600679217727174236063247448564557380300147345941798694759408237269756052272786169121581898872604091944364440893687912596630840438439958448517566380214647943506743571124978567856011859714143843936330663129169037116622610089468448133466502303316010182471446826916459732201080590178366188398062812615082067835543767314312236438661973911703602320158430833769446504380767571908938834137882257114543059780600290232593548853430121615862986166215444512547553412450985551328164816205681118771973799292966219110280114220587737447535519966220261278030342311184948541868229891086684387593173038957279509160924288157764948073948912579667405710005744004509135525805893864905486284309161481168653762439942791284912923613278385947079039412694653063081193486604147050044866260569165876078405658008826685691176639299624652688489062332160146019336055231768781783020203713654772005033200158423508513468042044759010424022058132310707259795889262963380080045132826336369754113901128070517677881707322243298224254906642318632705280729733185165359075508372627183632744727127250633472398127974192151091250486723603694195486794311696064095267426993586958033376204707144831189559794896552922715170697258724112316850076437793674969862395469012276175274090465041891763578059108237396650149762241866555628921483713262110439335017911823901963104336085540692340634511587158469616901818593546354661164174838794613866999032923548060129944236234584350310802456365710512804217481066862292272500662704243950899663284902798614651087435788869563966742684647590355137946010315885980457410365793308635742581810991446198601740560730518672355044072996807367435877225234055009246471816628311735446309320859354973029587093342466284624879399611395647895740750386239618742822826751241334010587203503074741759273471222559741784797285586865304961772107328780795803501014660904562820045145301001891093433649328387721031774359056283525295459396842926461434979315451348949985704242310429449978026766894761933531634728578488604767050827853990172162175736220315761627292356152352593298799669686651286310502124227272854046945127207118952337825283261655792694815506690899727845778983714303759251052595702450016343822623742423734846701855103582469173518648444356905171221129275838126395968741640939279601688106789530411017785517133565550564504398165346360076628355059779847530861708621873259044731188911615337854203268242824679890310269775020603054331822273976496425502417207129760543313540852506002984047180365628464158660659350645335462439043057429044205351181424926537596049822350508187973667116479199998893765852830927148287719266578958940932180395274305734330807481792020147247213893169899551125615951726015538439093883614622605271604938460011020797658292780593616019326757656784068568087633243173975874005859696121864634479945517710049277963404084395204076260014529727734966490072142861145851680558856086883435206158809454249570352873034843290187175367701295957405127921347245046068360026006735979136108143027843316269451578859433231429967119664202532846789415159016580338079573323315043849013175687208368093579059377188650265884244785980738556322661101346476636140943920492344369506260511457544581262026269145359376624047901767425898434197901160986515545226305379759690781911831550645818977602018418919311222575401111623448121370170848979803352833798206613706335506731324131373661090546240255653261403395959322801041850256295025803782646379784259783559026405245328133723868831840146989236089440917068717929475123907759039624305229309975843846670934939843390819421858321320630507302272373544816626387138146548946345307860318048076634389426907254131327191912148538094322689707690564478442413893159570358248768175651394010291247142619578200045509665856734635580737025717680401736197715581892869789497353823131240143219351841650912534458325582689167879756790957428821541936753900411723623076462334424903704889587974893069120080751150309651982965568628556611775784576759186148169588234006838771567758812966271899882791822738417521710083558853543193051175356519246913163619560557509437732383670106382123283192655607910816051390608373589438506078077649240040185408207453666910301369902758648065298756644969685158822753825734166104462020291535895553598224098507601651995937844035407381708619517335513260682034295966512571668682387045203016824236014382139980609934006874372697773339800493217956976454225866364566753363475983117601525556696271980555316437279650049406611851222999059737780075814320242826127797686351812621347275441083095735817088807875257498046873497197032767622080951625650665304996433304565814668195591457899823064259284127997991403951170156141204958686147615358793400692739910908023315460304943858886858833419738730901779878326639231945007400181395636791906441185993270202824896361071763508452584412053727858532003172603200138050949822021078450956098645781511059108414991854605601338168873532902508666923820614044063289430893117951150547193162490082568160726444307714538851680690295294555655955572287123685167678372003245722746593733527289186105237914737299513707063884209007989947140177773805683085987691715278913081959456791035772000493538058060056063074810415140525163335639100395545702439757435322504409354368861724443033108533385339778333508805145825493760505847258656669825543260103986733629972432624254014865495763650691314693227534426422655836669222882748500697860858102167032934074632915315863583990774650382279281416386813715144332199984157970251737845167594096020803809735468580240664970625129840898426872262099639398591057010431255778563116860800866559226039633012661608041114839087254490109660334971717925914443653332116135490362974535400290754900916102625997290438710798986802779765715568716238578544748063483915698362898434522426041187771906668216191737118925473040963903676414709011431914611046469415852805442853742281777153291583404509361644530524941463755674772920836176387149108721952694890501939591505183163328975346156451674099327250894412789702819247056138789307835835517839614546083409965211100842356229933305844728203392790731266642150810689991467336902634229435640477210722304713652764916981876268159871715043547008241513239019864577978740921058974698636917127888420626156867148835290703419926037751537259073796614578796312973023414739276526643403393169628304524781631819554637276233654877074352718347440772437728333825552826737024746393532313248835122151647658048640500312339868242900475881551923550724569927549262090398101355786042286308370724436160230562502919889604703231426337506472730098853156230544855556636472505833757452955161711871242496972624553109111910399318583725147566014907178262543000595209817803243639712634323553220418028783890184460067748145330721583910602016994994043019188417759288583428165992013353999661066091967088013159415241135266956465588174182055686694190707989221085877705665980989487180643198709365584855486663958150235489937530389074688757294890950420847210972139982903039207343766864011564453607126484559655800274646075025275942435172503714066165095370878938384376948054025433177413756386944555108309350322011895403863595641822111309855535871574708943589603208374390195938889020671073122511280499691103179001477223439549412175282438026608656148335135714614714092534158948954453731151747694134093544258500979602477988309438299860788317805697116678522734220047829927451762957478584396235841227715650422936537760457748778344475015768269609675333539689654058820436518192140944247099550743741942031162107827646526377240493937729442549219858934876429014320706905264517110895284491440155391263301267501195076350496152670316797141170325502877526610701055439724993078880548829539226206270844276456866666356278993260873418100341934767674304523201557272958391012055320329895019335680524897774775046951432001899870363123229524077318582656056009097917041350341704008531558144745550576552770886333270938533513681682870526929634672507060827063793131052162918608671315224418668045335685424816596243863566746513221013080709671055410119966804518607646127586826080064956754860366482033553459628499551770709367672239347774685408374369758060066368224246038456147312527126880660148201328889951405001452352403899394722709485377720493572209536499685903254869116940251941359890095935095930740022593473080235814431285311719508903817271279547097258779996978978865165924409324038146656914267908701360925819774042681187346938107824156798930576929328285454483879702809536157936687365348808204987054816656318342807678793970627138625692770608935661272751252331654187820756824224588896207509424556410657058309823552103262788450822708138450380546113701169234753680531266762028703487737731762768929193502390623756952276217004224996395421309398916088265014610114671077647808207799633656981988734590633362741604359617286533517343520401128921622310347621353393428153716467551051800014747962281729217751881450360001368954113921240953371318762875642882352178244008655043406252132216939858296342026318672878054581999336527384493259229894979460484526670733589817648556786252766102115147579602550480984147803378637957714676950417871839521091291739614369910386935562305160834046938886058276923513515081229809180147561594645216676329939868321571500056356584560424460091417832823583721707402415554411998218872215154302903374358993413543957396509868511025840610516486894217971934568764077712156884904619227480969439715862110809563254897165450296629590655133360992512184384671087899543456166302470514430228657425463401313933031566020633259200936449939618589182804759497340560826846907682363119331659992807632722910490482343962118070345463796047284782297634875994208251122232636860742312107400492015446656466205208281008993206402493108349588118721951859021430639878570236247060031200070415496971398041025051381170438310502412440306596496506293608406685636951211375686804745477410907429430611371461284759490048732770909854647256810894137992557790068415458949151916143479432693687021954625026422220617159167047425911226552000181452313256778009739071551578293300274048934105579700828924319629710736600116039955878770251499005556739141241809034998956977391250092373158583210305639128813705207972336884136730472529939273743202624060547670469719158882666327629090306413032352337701390493988800644644429641816211059202672073803739519426075020605006874702291091552144268403803656082012707358953882124136044906199715115252423778833871339260035430550748418340767898029344847372895884473710089701933118677848204749501459251803601710974918467715998483052537753194813729480811571739828677857894525579228453969597328282993275378688456124579752723715281910095761601971648063298563912489856864764726013290322611767953034926916594449627984748210939631356045897313678840402734457552550844124275697454844401329265352093400384959703041207607928102444716266845187112708279733012182631348444917681015004613892535916153709537224357706897393147163939100046787555726974990294936233298562688219666415809794518424693234210294535937990175056951477485664149680885792931983212250627198708218868394236634343956230684535492649631371835322032203044574531177234923345079383930936052065241627130982640507313407782554524714997101009602477642084561028458480557476831457744974689585830942997700816604181242141270921190819501147801830035968277503235273534113018473899912416457916572750111122719662522112230015858681950974359861367826337120652302971907821974541630111051583324014129181926320277256408195294020589869131541763279409898157569847700331676146109469111842000091739414031974480668067829572609594933290480056386662984129433994399836402831423942538215941002565745922137992310870287660008487171813413539177354767523761662979032121504117667343501630412938781484168725173925468330395597525723179801299257941199879367531108293002378486565111190666069780780699744102646910673058369671824290154597729969796027523694921042075617805623128314896873457209507187625858501678815330301323607576213281206744129902120855689243329279418706390276493386629229967265495302183498316908685821038679983415133780054791152176211907936599181704244543900195002248463570826084386142828502528151353798605525296901397624585702411713079365678350152256117598869906819671375150688719406984171266893235113935590095513572828933393747252476452938569707892609737924901128776239965230366343080529650847665218567358114394134862737915629112658908407646306578560962104606508073884511025226253950665767158393048887786568955639639022794644796785022214643898988938366917586663576272303505801652250055087554569715742622841506171623656894001287552476851330159410935107499556079491345312916049863812812617648555446917775526642512220546676961756321281609616557955180583172650340769243783622977728548705933623440248656020299624194389241878315051926771661847915646374214238051066154775553160482057912935390437571125480682860646302833440072119330142862067087939942244934524296928854209474389986277030330278015646792979294766987227963996724455074031610958173060757881125932381914031214153788463692751691217049237175105609235100739826279205670330087527133039674211726191744188409083246886110939691740170046100398705707325687977239554944740121032763183390850834031190307682949555046299650894826923933223200582347666207407629917237375870870380717572250243011193120717687540302251381640177797575325687738756598282961653043748764945223404105819860838867504873557475088459537040982444364214368253454791565183834562893754319685502118414526914146190503177593706728349944315025309411252264074122022778247499001065489676875525878980237307944072727634130371730831485960646638946961877614321833993732292193077454074737198236192996745209258883066932116239138199543406615186841263088743480718769578253294771612598303047337883231820572043080588978897482633362509248796825410910695323114126301319594334129502900107725983272939277711265861704625048100278862576843671106044408208008825015903079504657869061423195676011848081576770086735720048629128389577151164442257170115537665241563312366260332086799945951261955902582915796458417546508485031326091111904226250561435472081609057812852950822897173985026121687566632429574497676847306165774821336501144269173477217530337829515349625826878704602189111254741881316248622014661799265840083759021524386232557556451500884613620587379952719894666440911457932208016753269468586422051086307949723953247262721470658828097187955538863757177879290605344776177694395161290275926889999386432932947823737973860677782434148760744394015200130154925462765193317181535903887275728265942918073735018635472884575746877951519167308091278543885074758316811631049333322052450590728292702842264884691735858990634837472530695014980766854098528822179032624713330785472630832194223794924631354885762070698120331313453765775486214611924711536471036084405251976147303793734497760553019746990280494725376667659962150780602846797929726958878673409761831288549044118467036441568452730971788226466527020301430994217152517545678984770817249868102241710861138557653744596237621032013839140161827747041728051692808126189178145422003923123026013905180158454556851414026257410349724133321090069091217483054450284747981079043692784964164777057269892303372683094286379666251052895615529875474336959303318733828330936142552200746770177610209330798440058757156087461845755994415043842538735960553509159800710672952625556965729210880718286836050983123220599462430597642869260108279462584342898423327779948682425491130490106445693000315753261622030253926248695599810767097141781078984416894523654102717790919149153492293484474513631647548328772214930707477844938075754176488359133083421333073566261797819526545926032229197495843638244441277391485244304852783947287505330401169987536917429324400214576950854228655384980029690715356492808701046823090686255461830471176846970939110483914939361296486135308529357454089027095729002646725597663119801765121234884791399187724097436987567299662399575111603747357706179098416693579752617470593154539128092951131012655682061765347637808941692051012060750769633638020495652198408146967539025108562588110062675921336775599104072473140213350438084363120046510868217104860259632664527766334003139012029442562713803927849360080797060079730660625132263938161885072957459579300477394322495909163891636167793426150944450789895720080684858362759789732116949866363857465498709940030072393631309394384639507043452949830656881581280389367650231489444138728913257053949665769745019468259968861528085472956226554029969037077766470913803860080836167131061419653581242269326135631403139051024755577870247109862973163153499882167324430247149454210012317804635485892513956781586350321966035030097105718360638820620925743068150505942393334564639434476563173154643240560236602535864077066777286520601642710237668720699894534238301337567773621913908296201300784504755571886739368480082783896133502788164488008368086190286027410381397478728206868725853517960120967476343335825673284675577198508650697907345552451141379453309414495760317700324566858087121203354054030251068301682827282675698680873799132600756398209288169255483981759617368137815540911501555043790038016723621167107041793185056311457542356756669497532594042070293850738034616694925049213081268034294384636843335352966109255425160092579321559414849889695239267575994357539752914271496172354373727492957177443813274260187672885348083300812827484120841691585524871592473940254582385441643120140542663306565317856546979275158699915650536216804721791525838461797838506712398454394315996319230098825257480450840335849943889752364882698127844150711437268580131178674137132200653026061757158163694192519863436270704131731651692479709134361606208074628475283052726374451228367132423691575888221070550497887801476521120067510696556618070965350909984154336930866865561298952175650982739298939727917929259299667974455989407433975247633516513133370695678449952761585831100635733327181500325724017964687921907463149497541144960208586378843038428035747970852038539013658703517623519479781830758102350744891810276939284145030054438778877596975359600723756899210870272007384522012446730308534349410138912287187784445836092132268258280901124848424942959172521679358613875814039359791285023388148104029829598880679678299943218008277628844861653360217119121119804723608769649427960945171977975677267656919452571868980622689455287302161967767993734472433045724847721499301136943707996185340365599817690346963206200480803002490500476904348109410556377541329314642904342423653432037029910701545613969501130472887969376288382990408594621844037129422048631691891958209681032717260176749697088612635028624344652802838744743469832513187719733531878618054708158782386069213996759856091330399288471184112412338536082320052571643635703344313395892666375697363215599035837409659812371297842271740542999355647767581976379336552051730438488322755622043309457214671455106387768222590251577890344101933689626084443308566640845018276476073972137936018826004308715153853502201708034886351312770628535747493466078702552035606192839442201992430960759083067956936276652219232545420580845071835100238186828468688657185378543214528455982373965922857900737650486492233177113778815330394828249674243508572403091951969175193946911680664641901326074846220347731927246901600933724481863758767095512485411557897301279463672066750630896177757527704488573816436792104885643955257366301858196866162345788734090802064945825256333589069439450212572710509783688007287861321524895053738857698660972694626678510588911541570356269505191205049163220837915293813115204929067384036639481212896606100747213932967962895950776933482979012872931954490816826956574525861836856251993503879752606337979699293715983819508847669483779267176189129789501554378135726891677975469139820876153687956636619927530543566267588684814575814474236583392039129190529166379578252557467641225512887274248505548533157521547912026759184629157078504647087512611481104710778910690823888396147351348275784644981398519030712427341160892129407040240741841351131772246020100831374424056335632440016185071224254220328704529676339837526259503896639072603427871389634781124896453250786630269601289714785790488338250801176444859861812392230091767833155590610428366767119180715639550206447930800104269316740529107070165607840240499697353887441479285445259071658807955936819494584042830817660517419101425743713276341689819957339907831199174150298225253152497749487298243032926507148217323636416150227890879124157127035535182344266191064310579084562502086258591369371691306270273286208461931214386939709286033516450184564985334868029933706206310996766449754412609130205430524463652577536436047246279879198789318051894609830631885500216021760518975086377814028625662677976869357201648573139491470710011979241513913309812496960631723049706990719415100928975934497475487034813772576564999327103165903404698058805755261494807866271503927648286900055065686082864039796548918421500423334405011681736149366597477648336580352101098628367853516446564421538658417844740810760976038956240899002611041358688503830712178229700227131878610292197400254633834594359935889851283022884224456099077619650220545545232108091041131169868661855732405303483277769760537822984233711695338906946095909178262758286272353334896804857682757378418033450090754426548136679613954920147496053552410467155743047149859606760150501869048781492406550742480056838897578633601139342391977887922030099357806719910689839831489637247579863774201473790060458321189402308523147795021182541228955898149256483956558377439982659592935392317430068367613499044174855365612958962449279858952304234369401613490734484927302792978257897884637873992242038382750770172724647054919476417665523059971456929108857130256557750909007969291873356536699590047826491429831597047791657916603721882928104670696343516234857597930704441194131045076950740403998375733330398320228061977496059347740741646700162412689770289405925579306365628403241979529181570265122146423717439808379294850198477470791227446987061730107827033652107206879909421294654419531129733348320932643545264414452592062336594788182347961820823299685967085172732516430329495872034628431954908671396613196902365510315617440665455566886366747463461651685540048220044315825435384301421553164664024764984227984291085584700193117984200183664028897084762135126862693219007482351572485117674825104325392940542392298267576452698404739982519388619283672147661617934543571191749603193091669204536376073416099366131892834268032087618021188767727590544163235393598892486608026252432352597324020439989785500469851303348752929322419562911019686114904480510304327072710090390837236670752459521589435293932347387143694074039438954962829807750229037767566796042147974756519720328045511190481263378461347774628986394114238891752798726519312241067620669459613583411682311181501577870164532474630559641079903115285446653375399481984149327215280929111202942766425252787786345981038809624140035871239369834414529606026884083547276361815000294803998311724142204081502093761803536112879068123255921130439102365634582738737034010187381363923535227561418712021733483360443913875392320022699009354511755387450283513987990228506321317619682306509720517738093971584395920111114339282062075477175463746680951449892722204915868641644886959351187914977521062234310214397108249610043096361651242399078021515402954566019069656475722038205282658703341718594928814214868161091662538949805081692064616939718265533296447451786271181045857050197678037515819541215767401627283906214527579539946051681633429969442566121262422956350712700471060355972415766831982947347132479571110333590370613003688844169246811500792092736059084711121816222409752975341356224401563793385283632979668208321431366128670439099646909131522392995999087839570093938869694273023257211511859701546767250511082850186845403917536916662464490059354261902228004183803367426205126909284447980269932873071421549893922523132814474807707572613997602928448259747321377959762223107618313980147253568870518295334612833158764351567482799612462196130684919018639331698154414133669764869510545327724869452309362703400130459592622454066316985913029425127153605998979747689092510743615085737170652457169090232825458104576383360657800665482566930818347512244359653998734575989833274334222192325265234657026127979765101471297599388601988467318120544292792305216915399443413909839087232094274505666844061084958754512500219879026759852688099565532294735204438556902515742645874192348395511839371505630424795062434328204007966737300217735050031684293028405308374151426962986438812824846828220335555295076033603536979812666502953993757155974195661213082591236708674182018417889133299932316952437815799240712811777445197737938719028441666409967559186211110625498384133711620811744059660343150280451429349665784015268298653683775578691335336368651692018326279334082888584956920490007157290261791118698156741166948520673546229092356639643603561796696052187308313160713219367322237348599456505548697261515543506400762081334476605029497207770045625857945212597656398147707118341353946891879781701715912321088726852142526535789074795027004699347266437021558083081567680884426643283460372155870850089511464465443178733785591111878714108883766772753458477430194757449007109975158855938942600586990487586053193524627743854764419188080458055859471850640144790272184188227787709162902288436874332150621878122479115323780168921815125450335184763303182488238528599150900272901265294981377877673687072021036161429806111136745896256511269013589636858942625525234626897473063505782090403846822524675223753151603760748260552009002689888549734880615046465203948953613251488532289395749797494399794277006282821710176606146498040562100054389391040135053484116896053298941567205338061357220145312693236084033198675000625394087791774619852441087980211346848070438626279696340653622408832889236222894189218159467807358070765881086763878348147404780526661869778027054047626912853367612588324785819249285414630248688608747553750042349930006502446979003935375401131695597280481161119362014012346580306226267739001634920547054333280070994831950046642299144996904367602225626166662128606149886979493768998703880778759145660038128520110257047037998332241023840062909513054497054936211489890543372113225375966441076290903431016663430492650025243406838551051331241689230757169527442285504196881856351315862618269641885971556437866264664618901330515609061531333372936214852111857101193757961881216939790450794427370750977787682193605447750906967448292024006941044414628183743802054473376219254016404788508102657280420565069985630486524521366849811346925298315241514631123117803926481175572125393323064831885292074153478262878894304638733790058872090131555271300428275522299448345825359491808710654783346889719506744412879913581740970481187623147278368625675644869848177753835369289523754297797416567155636849089474855463314703831953842817660552011332279431809858172927479638404800605649033058001780508221753183304808188529585267291299669453601948481686166746505438191422178612945296609181823455333005707453085100894869156029249007942715149438982387142647991880222314807195999077250775890650986260856766175724017194377925681323542893551121500624401706165522312311390772666893956022706078459953123595085071639216524623517105626674961789088867152154341494862808630030133178808059753812676483128178110431950792332135329093915619787003715810672432536453359158597727321989765205571426520887513100091037199248929498848088617670264210035551503874609193249895791709211445805866634856747023550294460057025214142848544596134118205546859732290014796380801381482113350583676421399134918283416998277961120596039976700903185674937377560126121907663585335585323130654636754806152801123235341144007827845618458286904331606815852652929451331356388168361120661800173372156616509099207196237657049821841965609961755990106717375010117928859819568828716175613429587209827318737143014209929608965228337477784453898779723026573381372337092085754719594380423874938955940847457539269133672591252859495334188317116912655713704731138565429418485040817710237639656340904461292857639837247310672611418200721745005789789451697333822959679201178428962435922785774415895856371667587150662792765773967663512755616046602232578952276618605706809180523307967912912637733393336859342895874452565061253500562869954234063314767477978389401028087402843055512731020228407792464338544116891570951053603039235062010988214147001127997993268381872044736255115697483369613651420678087262096110725576486387749535968627835914089879786878497615183620708502963450005988712295552483213185987674760010179504181287857742174276116942689845475420971440490553840667316155113166092168902635163871911813942199943927254089399719689708469853101208605069095203823957737406800114175918203800002853502872575376131411982520242630090379790552468232278852310293207336895538552037361722212484689390564539865855002517571745167150428098761056347636719268748392886536560644404814289768218645159314424745429001865349377939429270537473441212580417028337281486483406974515637285707598835811486749242773696851346156131365649886869108514800802639691389031355484433360010126744489486881303779163269199861573331510474707320814804900280828359274916025171011776802500906797292374963025914570986665385355320359336710500630618849808187910762097229998484277440772219999664821185149646646757680938820937984431917544064093364028815829159048878577941829846946577858436638105519524685854226474157176711457275145296643846635236256929966682992255804139133870358406860878595726297715791409287503802177657318152396452720862453688243306310340473804068798988761530751074124125852471993153223639505943439826817656911036309285819162620726063962495271430553934896571246643212749322878775894462921548122660645945038989850170142344995532949193485532210411912169920428300392542669610332805470451187437216010574101510974489920044906969054865383264828732724286440876001515984669327419093556795005518982351245305613761240221925995349590056432022763180021652774099180197401012511017839829112561681856197343987523357958908139679656014702114752870185156652517015343905809775504182328300602100821701023888462967182210376899776030494618360645834361559942261959589968228373476256927063799317857166881147462281877285090262106729855131325032469936783729675450813540553499479953231806261934723658045722899772951965711298340652305203612949259272811146248256222753362767100222432670228010306756095923367158410745300059551581012648901956657522384666695995906770683757171985493850744923299648031605404922145097134580067574887525343362867099938644203636299103473952850839161064175410643460492575735842922463868195571429887562996736421794546275665359314222221888187435634720288432980574679636270297802135384263363653272127724151772805077718922358158456146246981749583549215121288862886617885761036098848050281588518366010500137959793420186595426253650908023867823444147836366462831251641870376204995033763975660682140820166927174465414373349076463536855306721525749184866191953500176291704780218533720279916520108666606518025586528473369818650132585646279585052091751698937912078094219848556359992141355825368630449002313822398454989760889507469086981219955511034472859513997468490181968165905052698780036758753639247188585776686492854816552023788562462002638990119859496754705042544228596498138787492588618525075922535864393255472209240925975573823519603960375885194226159339628862794969415933523110302852748119492053887803274023849182588210804985012417652513018656360771926656437397863624355500059426030605215393899676811190956396298358149806672699073803735916294753539767507197206394085510090400116561186528568863077279393753869821246482121795477465541725383811673157437228635755966632546510443786653994800888914248500546113178048803063914188164351786162751502024219213885317205108664592911976382958701480777025559302924886316665960021841986014995181447777083200281507581498079391035943514584725209157400806885274203135678849652403561165006984627409091470728982488387447299939954471761658445800772623018428757749894611521081572373980817673767494194277156763457627388957121651591282320991774548547375926628936514596692534185676227141108408653358748070881509804647162327478932141510994498325286259256928447003762008706070919834289247950463359051437713118273134322826320729523169927808287893386585354125919656322579428185499955338682699011364100825374240034970102888434701736310318295982573697016670181086263345268792585232114149056156845686244326912974260011451279889049305487549502534520379621648008262903402266977330016839186659820965310877913863644301163583211969622595424076247562827802104070182584563282499209946730470262838407301437893667486527066854339702856484476098768108334758579292248789908573468196579677193762620506237464085909578942408477748386595386730600687258264891802100064629155417261355963430682257381257604799438245276467827366481717924171104307356977103584503672562580822108385537141409954726383611959059381539926793433176784021209443921092279477087437554947463184717820663814695334026951432716925278380602218993109899528213168997262113864453401444687293459885560211972650624674058989071232548748627073988448922644139608865348832505043184736530038943021790000511769847728768477734148358503104779237474885756683763069850618462221976864974608381378068613319012825223914118636148971691165668886441891322014739034739134000434309251118518322494788573315052397669440985771473457102117745575332799847317730490641120150454665897182373515630803051681418184679212556316191916687018938659785587225195712545653377013763390752256767088739761933795770444753543028458100973316679388999140635786069868051972186824796841979094622836907660048830177033434372064646147281275486834684988403187376624460869258866585919210549412274585097226407124735724268309449062399220509589891547526826629079542972604034196930284127617092582195132936166311227654828830134976693601112968595779282351038720412719186685205124323259766588380701541606303827856131043708820447388151427090718955691064771150093422408203274897958230563670932576513003557144044494320373163099273027068362815263311138111683797941002871678552149319574266689818682061779959526213581737608141052292046528205098926583978374773202691122019253426079235408605647139075565845582123827986522422630946549383854653389608602684743447285721508010262135835412411297186858815158251179201536584861687834522200339805915677464739624547906306580216880054515107308380314385946220693912542856631549775906282687142710635637241754620745611518502714944873725441975361320213249434576408370668338458656764648471709947018689137003300203207819925711633721247382648446780384446416209131534256835158276720561319135373248008124291282160325065663794453471656516871431691823720598522394090453902394599489708090789454791993515832873536745820899604262635223701448569747533936220240934102324073350968808052625622830077446990190710083535472668034267851287105005433907266432377623694955323559970020556187636287269499437321678466213471261521461636400734826668473722364863966385346220351360240381949884618607811765052825329427648310151311847567596579255028018001073878633789546208673932921703926350041543050776834619258513095964209734692369078451278059854986445910253645046596303122315801444868900644535151578408224866879208751866468215139384578010534932803164776626690469981500039240815486707895957721232713026264016327579152622610529050156031071559145930774439321341477639221993020497672624921288552196327491083191364068449241229106715386580340347279109910236000607258933511084435146799684653590200934175373959218114703352573381520723683917707534416215734414484156658890253240036332361083708209258727132755741568334361497846193511569840597568325364782426519315448035502358103217647724877840456421186995336106826944087283798443291697038986121463440230287135321817646359266414864638833292782915260090336165127464920904254049649714744540984928938575279464758967377336661770062837495000765571927445373010196160580236350015067429642847555051145889665303719768410169803885806154412141551706144097077252106531792785776352233539011642704147722464533898026168480741784472771917754688581736322631729079961602103452193130466003824562668532218040514412866486980273539128343366604706918080558543314583946676245510487222280650277978683758836791429659055720257942805260159857527980560956873794575257528931445753028248434805633803530069880696223957417111624036546571372029487295963697967030490263157214225219445854409998099361460841174667597220233421987593381551435035318445440071643112036976615447380410606117893331509130376473120127342175632899466349517794091965630675251264265839219412829532888399377525149475387946787743038106370841074966729406987412100950313917769208218231809052535696387630791491261208857262385180467164890680209319525601512169469864562007458849168412630791645940392332052194442336437955782371260745683689382139986531666388040579920260402478203531104170960171647102272349448787662957742641156632430795450761405050257213370458882218239292197014534732386360035007046969071517382412921418484194787681032517531882806289337142595220535287491095748487874061426931414536005284927506697307870844299105248672182912943493566947481880756959716896110263583497585304643990369475826507339622568622568605273335310294948457964632769998919365858178122249550390511680575520415199226557129579868758319587722210498388431784785808427624387640908929972844623704980738642260303193569197512379151264415283489857982662843644533009494134560548924353072142847648476057439079512052753392502759904140354206995065677111892408363334794220415834637553836981866130187481774777926865776023697066338432736504182631141024719293181232224347013993298024783891106477904730939334219125471473102027539336608094024455372312702559028402909788110112723593467738581979085208431400352302058690450134287767520802025200569672618793050667285161307604645279748554713032585428262691660381376584064571403486826788510365066943483048726382871179396740161542939263895685506068736795638657589368768529343215674153125709372195772455772305557488960753153876177057568671523339164939290723454537458340440066222593437606302049623973665586869775948252170018468251012829210503206343075416880795134940063470203288012873230776999416881092885678716205334951322756618163094139714263365215341877506437668936791224990325359300166951477857693561022817205281928876255837951060670987460537801543466783601359285364449158088488761572428518216393726008767112639786791205130319820305398816619829679700193231848439196295987617847402783733903993581001769569559354867209680259525747589085748505324931915082966478251283375067692305989284333040831631503586480955143648322102650515750439304804916888283992437405499143778358441766874781324910210905628610898212486927167725206614032542803522355429577288939079039429982567062628023702541688497788913772159413824804619549754190993263300597775792741258412182181327076237497167617660709544371370195160751613595983309006343372049647970126831384965682654697361564832393142268734927151292320606589187697481256215841753632765230679966071232983701681696515640569035159342280768444133824290701688349220974634035431943570285228743514861902834296633496808600745356630898967656953558347447472336890762533538800369111667033555342380295989226178485154304236833462447738840801655088449096748920501014840900454939595330811514804799647152606094356383080349621369380853719507760535597842558249996166377037311015174747123616683143535008006393710607963995702125962998807613862595040775738668143300693714437642190414752936936581652921644114115570986370007439891823088348677224723282999080717422955260325822238617602664298916071167412958954161656877024656089505910337831015708208708557120789419093794761608226737899013408150005971391874189523581784051776513476209365876636864361517640331179902974324791387348102264987415123242653678036376246366993869984216062892832001344102733396049754398891928192177734344366158882761575390590026468141127458433769141286940485881590772855885479975741530621007050453084087157699081303801724833037362546117830056528627413529507260841487674193685632108732750168105090153685837319446910741927702111815314576995559424337626389016827829089078618354706718876037502790328878117574195010918493644305426819808663014197526759960116569269273103320413535526837549000615627342594610760919384179515058257157087724085243161025257257333511909299343997515805249302527536355307369637990158490563012733790754389082115016594150474977497025831771726847551605749352545308055117959326131537826547948388966352459732900105155164689470645701973842037229589713483413975523742882758347386813282645099292012992779426175048007436726298959925934285966242876422747317893965652279169229193600758233507073702259323292812796401304062627417893610355938491202798161599843126003979717627321371779106913695772691777641995507555268928708185381519610528667131952141367963640917447710379739285654547700639410698820769338191615466088214743521771211478664557677665413389632348508890697025485588909063458203318220080469829093734519444085696995624329443936668552356701862972704479151692017309222309022758237674570282403042368818340986847144785131572748468761479472460645390146293379759076913366619899323881296841581662060936034701400714197212399175611254492581851322302923425925541053968287703019857149104714829061409167992162926133431705915811710025557506224796448087849070267297723458003751573449700935924228573161793074574080816942094180276642726991773007530457494803248716585125196576320971766082894910745877309752923860647288973431843983659022779756610363196608276424108136129907673175302665177651392004580526369370814046259440342915707602463047608618036275470990350823161765576393465775078655489680347363812694579020706318625196430136317495070558019506221579888189569329429677503835263390862381701612332802368918242944052725382918912850799515803756445333438139507851627558567402171147191867119946245294158705468677810051892252016711793864650986977157765389561964459473706329564176140920582452051724783700798231055626706032873369911246232520879672671982935085649627371076678556737806596519474240146406343071097898866326562014664947584676595368615145820571661068665451509425140820480608271802874677780216471541778194917317084169556005172341893797879827163213409432323381824983064859826861819706192702570047116384786886704817175972290802706808674150223908991028217901124877516793766850461757646174466662602284164937845100916930478486717825284767644837644208742326814352704645708400605851690536990062221464460299514552386259194985323298717092095021345760017880781788050112104690093470444461282026854383305173397173782006420839571633598336186308651797982320172734817897005807593444102531368031824458613382329051686515615592539339748770792361964877962655697856841384910651148970943105682719805798248294771243334442168750834100678393872927854655112759272314357357236251872286593286550468112778015059565496269902861394662032431924456562784400002201399555356546104777944294150564742502513574752794222803696152658728605317526455705817945617648803551669802411911900045540487334441693582601201774774192393088282349204341803021682277312312977241784697682828516817030036714860347911450091702417021941938916794743333134365825590661542450778807561386830287628170682291527660170831455696732061764496110252067933776939733297940387647112881015044280840107354076368261855123254128539771019256895013925116657588765677769947739682816834389008223641763861210925253961507717441270571347230109008760185166260990338018300199051902446470988561655149146921556732508631305341059861734809430346568578262899523433235938039698001592555073955156845675950499760764763969610903056503153809788893688257903398498515272682362647020459755458118908271369486940847092934631674513398096804024463774178411077929761138885325717679467754697669886735433565127002096239098167499342213500101300765088406145711421564753499165100764450577845089448194405516477800490240343561328473126833714810245144880233603581459232929278388906752572720465928652777623875618070120546721293160041627459653532346498181684924867037618830916427567727014243879504860010838110648170352849068880357127797155190523679070799566334870758781663294936697436110251951062154739732215568808865315089733636920284348497089189567547445378780854108155669575449844550519712939737162323536403287040461531578135625869805088834914373215965187958863468734020835015853511150000845267360247331967146635146746094047245951287504450998516527122440363979891467259467486791451302522772717475274239156903133586827497727402602975781703461855774549112722184547644577312831966909376407973403109580500135964319130162026079858276974867363815712151009948571590657512867784116488320320518907801402169246409113915688045584288042054326485072009260772693728389005812302063382551147923772935079067070676203531657975699166855391130861412621703251460094172643419586831800670715279530808975973001523299767232928067483413119887805695679468027679098202981184002348064555281861051477278820383753248108880969662312528242613315665532827213655433465554354837651414004291899856389527998957686144987045242502835897189804730475574710570539954688908631710020082148452695744536676591257332125631392438384162086123060136885289383642493593354164379964536728051041685239735149302424185416508553358290706549387728912529564379045472630526545184479094585083275105305883603398405078968727505221286298397154455822316148893675691145726454028479298587476198209066683392985982910234179558419444248398584244985921240415230694774890898216217697685388377782490200828372688365008868142955514835610220496778578746619303292398073534463576927201705153402847711115544883565158557957981874953899893745258928969793804724143530500709754735845373045556695129797828906657007838451101562045614809152109198503371261333961381273038852329567364610585328658651922992704598039280356557157169983610891724560993014138416922579937389049990545861427585092535275703399885469962735087214659090047870385652164285358518101715279011404352289972479923785586375423793124585355452263677088448918181397623450155493690954531682924366617777250076319420130851037932890557110876090559438853743344436477611057308812557321669663536922011932414347913001977069609792486383727635669979877010018613960329271176657731304202346878135581084064187119859523771390035105100506852447947713597368264601515353323886450296076013904690421133410296116987205804392763624888855218718870195068387175392001504971180445104490022488787647930630086200751275798942165956686679347757610507353604050204460584709413825299181321359019650107909192753592079709295778149263051894890697193366850775143980218611008438033195459566256141447805566984446334400796736375546426285970729693827785612927223509420882917596935413403099145310267170266799811489586747168017961210384595561448077682475635157024911108891366546330006242228161270998460535101771687990166619702132651460719101835431177290799245528702132374919798617745308236160146606799303917717282541682031028258101913085440373559914760843241154275237494862654709306062062444427344323953512482314338149182736147605591720801907267229781326845827727966078340572660256808883084593366880106758060492393833120880070586559201963255458516505438543926552751984706927195641379521283685300771678909949132294493968430188807880274750345914108058919770891984579129909959831690439794586803068065510874199300056672898217733649649084214027368502252384403744444624820327436938117587906329952144515200071959258841760940928652971300230421999322115679515973938367693468387756847023157452442746987122860808543957147314047568553120301523156813155304682948188717922387594816969182349811238617711033096759511482836281908845071814548175099448733507510787485212797230518549116568323271562401355784659537629051078070050700487510409476370651601331525426584331225244139574908920466204499357186903541358529488786938318378383235976071011134810278748250648984818085243864370367817563198842169425958082172765389594811135204992089646610815302553321271930664293386558644673936722133941513951361012927669508050068639484231078539053287311094531298217360253772762827925863837066066510197371797263331303686091586292903642602101711219782703164612415039044674512600550952534791091993865711612868829248840841691031469918545551722287762381065824844234861680376538926958856850002730196332596738337758478109051081314933037162042504035678495857232156249612364409289488593295268155156227977052017694389770856962246545298748709765727463283730680909841285541269881958601101829104362123179316959759289601844582427791781508433839113553683153264884637676009251352454649074518330715765928825619591255815800472406343212830869068858240502567672490904307381744000610950151361521885549811811164065404021834937632182548826895827213573591094654059149594597358082417940732938116187785838979353679360949827869122095822026085416570554523475449566277572229610904246301965290269357093301916008833508330784768665928112673885084137897670403659050109928621546504219138016860734231833665737608490703398911075450848853500842784188321876138582643062981576687358598474246712861922304600189714059088716778717306667255701809568574120608243104161122794916626651554543271399858672728409594490434922050175444493317578052965952265129247055245356840636487446728913465808957379580478848829516643414717635236613459519647595430876709246819996653764501539853427118709545944896837853043450375548251146714426325100741012370569957594079530529113332897626352309962975743838238737372572561557785809466948672212675885917190643428139405139028550987096355629121568926818809707753808871290381834572557128062163355673783446295110432440702034123926292340015873078508241945317518460666957555471533618816390292832527008394592485261737182405713595074321233254969189751694249669498515836412926306747930000812509276762956969324391372873569140355799800174580527545617945420804817799376844645929386129847115784240166607347728813453463949924707354003765075416709495300408972149771638179824822066942943091600846494340411096266748098177057634358189224168729418233872826118834086061700682738751506643795539372166533750152522047469100036142618158819558447129677399593382209949017229685609142831896365018736489569484564417488583547678567164209992665936500640480467075426763842860034413407273581295876389199891062019349965690376665694596526196836126686556041457613255268032081933708061679369283710502979693893699226270782192954100560324991098460962743090926831254305003965119723730660926079779289244340597694624390464000014646811880663689750046113036367977998588794947212857888654482288113377680008915018780896927581100640285274633202406079243303421690127446794225606307384374661955114775807355160772832635203562476602004197261142517187865648781726383578594122944791580791619908296543885020786399851611104495417837028662842071744755516069459461730866060845310454264070992059278043919550312985615012769368792836235199677957067956669256565657016374223089652079776868919147440089644089343200505141864073342291637621172265595713743009209147418544078206161866098836668111486454172858903058484344150429378365960658948693224767794597168256072058535346759263779472408511501304012527796627246515760430885044269337128913437995740607069053629577229872152377555724403308868402484902702284554008312826312388565882162853395356047194851230212375953187129084992646013738147375963589853163261426107684303144073320236123676868654664242668292893389819701625458408215340700913128728545849743830204517150923248927071190357071131279000392883025557201925347183786202594021124502093337767915438543320207012570798286487764546356182164384643272148005986867155359003951677677053204301393328565885499999803273924751286236407149311103828591715773457724779331987140436918286261547220462842585241106536434694892811611852172206752288329318261496378741061988595227853631362123617736134089752239784633097547796432755089510829985372373105695701510407136202988840687450995382805202126697140718133076254575051457839690689270093343699499291845701064108474341830278429246378660662790255958619937103738167244597265022837075196001951510278729184965445789280258019418835719787573261243436161271112916635668745867038958760868478484178433250193324223660436718896979512849947065435032240078793429318680033711843321807756338411724325575052224252563748323111795985036953004426970641811977748452998978868511623641239876283532277304052665409984624432266924904226734698024803658618724082681389823026118823446575811579567134471764499111201677940431707330174506977128575267630409665518052544928573415015929137495019998537448336280598844765336720471773513331860551203298306357721048220908536773519563457900811012611790220520634990569141790971467563146836206329159742660407125012080481248365869858757127675635381365455396505044770689819313859866256184212121575420288063564165088688374393291137369680005698472682509110981418380482968236819582083064061756315816389052791425181890305014378458963742638211075715587135848018284525475333400472848769375615154760599183391816232900945830498206480844838164567342428185502462895951863407052241583721572231170216771401314244221872400631090535755070177615322899411010591961747898241846278270468485920086858023238039061494360803189367883984793454095762590253670819221681507295057462408541448660480374852046735434679771700077713940223794882014140871289126356999495875827644288699377174666280185182723084362815216461819971374342319531417843714711140000875145293527674744847256252339234855250151375258389692574815810954619388649021706912683209857988470616263680775931321402237844892061632684443893800042374177575353627752551979911023237411216877016198357571495590557166512912853370718282567568132887301301128058177796002121368361949507253960633237471403907421349130098832687454129883178132838624586743388819221952648086565008988559548118202414125367175399731386090754074231350014566120127848232572185306650349808875849860662255880356394801948434837919602928114627596358190893924503474484694719910489615081344834184711910363112209425364916980947120723911216001243850519985280862792198050925772603299705108527163746487876873425961747697880839478761611275640449892970728386130688855085924282394881535552648398724215008813100717277622742746179780543230944846987986339023985286726290975535637779196858364210006990626031503392017579262747381575442413165612833213262700469251641983513361553784384632712037519751525110151686189730906433692465615168991245949869340574471989711827066106798680884245271576157780679458166370557935489298198231444045541943979318189041330323682474219369484241542358979264773800150752626202739951183257307003201115503944689854269509599013848107336152609238908937206229052228326598710409098941738117796701645595867595127583327236165032055979981828625185625882677924104715485700246999733902266201688363484857005813966752593893346212826769122347892507415102344739983761430824726723667479621811649821291498003279436196177084695448435666474361481840102683148043649991574334425397481892846880709128092244329670279209105318719609541484512839080183870891507498021650037454247840966584616355417205444262682116290562678227889787262355989706153139375085222613145534018536953970518320308977104609752545134916566145114172150037181431504449578249952491445202030321889003105939700689887101109733658752086581562465033295491268013894260072587363871994783801018776237747008255061090599165300042546891095853812231761160595243957245824752637701867169160830285324724335742769218223182639023649093503216127617989906051948715464301176059055942076108456778546944282372085189403197792145510611159316667358702678074165675249800061817547183775164166230800277537328862523600672351216109509003787228326529825984317643309463171896733080987524560748641981491927965861222094993385754959041689349922595605108847376920902563060498910253391773842355208849034572973000110864355292051909556288963801087275121402599386410099563881726784213953176253148605389742093477932746190764773994085786461639992483690082386276992174891420029975399786395497738369338002044511504316095454921846014888255585813071552925611418383725855319279098883889299586501937191663447603337256227161369132360043890097714868197350175704612891912930294193449901028495468171847964186219277146742139885021987110971757938047319419060644263089825664628713961865586779123389611542698938576816744568034244791549498315914827863704017204173759911948740272316001600200824145536865151982583431030710144441785657615313149591830346491211971825465763202939815930726014119919888151334442129416396741992923268080888120961674012592561547048519930791950304006252270628599838325751195416698076860241533774744246764604339444620406356145949250582905107788020187291567880130841779617784172268958303121576290836610445651178085720907274690553136106488552351878115681513976632499451391742309143087787907800082453760797952042326117204563550947352039658226363874056374358315597056148277160340848602971953371428253772360182869986635019872723744729397101152174644213411298026379758402986091304671105300458907120478921703947138989136457210532361905159373334712166432680326190576703755223183298384121982592146224778574289205894399054734104497150497860385015794207811940951208597955839801169214742279371326649643266297012955109161904137665947792699496839973026512171769331775452469410039074539855809708948199685117058977811289634992291486125197422948663112282947507270163988589803410051261479797951714804692991196669813095316687595477215798530962656721406921153883310450190234258129157809295653138439645115596555286048851503399960832221956727903082521078853084489509802897410178622628103965009164930880387079786126710938808944059546662309018007532707265931603289746468382066951215272329271003714499878101781239620911784891261814799548625653020683206881931091470777253241436440279198179029203831656648811669655387549832777045477762314132356696542200376771227429137062162888154979807063596870716241247749622297987826702385928895916027830297283955972795889005382133808681987720801891042330618372869604031726003646130078952064526275435091453781414010948112431151807865491792432233273010293082478445900646605995085536818630459835058634464715646381553980720905685810299546693527722042483527333788621219533167458636003076492985439728835370491944130369843325887474130969931052724927579163994033767129544312919979949708902972005895413067860471994539528988751016633104163834284885880040477605006977564715267990693092079773759676346607998902565515802614313390284370435665705564249986598126162915553982213468101421722385598458952580954149567768296520755840970461816727245429855102197440833174365936649695426592262232568609010935031062759836216756163370964396124408628354230630945774750702194399694484716200075277937047464239190192135043814464649941798518643114328609867523843792129535653215515505965468088410041245945867680971401783921243951557403990082486744328125974890680057883179100764263347396459448074066649658502006173551110615390961524906721857971649743084488441027910154523024413078711073527651113657922270858868335236819326263649715515031704852934794832473609582540952827189405669042370853943818931133373908215817786363221025141600618384065105988583022332186157855563906320724023024509124979574351137264435200204554522097574449524512474284796299974200162240449833975753486672905167243837514380203424921433601140424768631190287437482155358005717705347790770883244598614057199895779354703302309254032164143548125824893786157809111682715385912324048738041268682420092312526020339428358952319219345109759565826759729341817984454440782696737359476252691802543302911467526969582721272682795614771781561305699097809580871449406390370462242748077888698332959610909223808702786896298738499870453803511353998829924977898512467688583386810479832464129293363140137973453468472459016443038445991521684752747322354238862320625470766977128067863021941051743569310048260985227609714392920155961672695750141863399812263448833684089633163880656736727346712110096741123005896882200770957398167956065163343357595591904000662813112800670164194465967066693677212153741876018513120264384767157203275338718758551457677643924124503571210062764605540115797370830813753818198682244442801583151379241176829163837452824791831362727817871401489470142057564545673343520079279747586006456057525838492848112116017471918056014120434851253618116994757934349528944807616993616335348151134654688962265653418553015183472450778203907242195180118538016085141670499195114872108119011452364017190819125595026826868738503233529382467913465540365653273801445513130996447929042576046834302728459178434771624475269543405100185304322271837595716345423453175406273450748362530122976549165248685207165663668747324685409672089684583727946227871200728027426896515058361434830571979442890890079424237085065306268450299978195697967190086845811494462723367349233474606609780951490039777680207412979219630892725979150609302712137623851677881839271718796726414614050814155345406354367551009302352518772088736546904571904803394296066187354615760795945138370412810818385299926352440324264094092722827842668692411304883283290637962890625163555763706534889525928302606415182843373328363581541165383315298551874609373591801251397250850507358902422139964276326826241290718862983547086964566615138762556111235480972639859489796798865287872221620840205990365315142013453613907614849140390706401918913899737281819366346927920970407787327771042297825265159437976545599545681447743541259868400059230002699162831310914652367966128242392133719379668988276804639255807934653588495633393747379030650515860955938557195754439295112336145041164034293069718917426892189404214034487930673301655377561494500178213200225458861947707960080599910857828183752413509596730955092759790606954071271981946311041586852741227451856780589213930653925895294464509689776874936813869221396399708897812696386174809315077757558116080975856580266333710325771691206469610523017432431111421605464467211725339637246738959832352697471605958733335732859018080046320020834197433895294034164759513173202795208869980503139497709165565598007474423089909030840759090445977156528926917107541819154629264491150793829301588371316201507019685779875887588897956867919808309097483198108609035399857604657588730734015537155289416364031900118000535077101426362797638258430731595573483841871510937639312347387576795123255156276851306717653216937766042744568323745145783469395187744804090732384165728542116307111087517747380022641331263290914184803121667814754897282465665796698950825422253016703087216137917455648231658179144117799297993778528614325913067733148253028395837402886046318907012519802026526956922418573586073425387586147836051418085145892896497114874430814880191042019249943606371808051515721289563525695797026378462622161911576499932982775031043303863996413121137256952785203865462566446235129939520561821736163240260806036801573363378785422981103615814419553092790685103088777723020159349147173467407432711840019401157169975103632348551834958968906815914366099603539055323826285390117697857326302187786397028945664174065866868021558631445889581491832004973030764498305069107817744114855965598227363639671121974664298679604452442352010990733408719039040996817731243948786426329813667119145404380873644173086743678326090141306744273898883327382957444903569682154194213442782353324128394195406635232476079351921140906551137579421959168102604350815354632356808404346889681786113956588841289804020310146986008569641900919827733285391980046330308622299268418178137238152415792270075759426003070341984213700867323316510706211863434234931152932596151277732661670373896704747520052863749270209621978790754985692108200645619055638687099845336560416698004963166088301194739058972234801027268225085567162354659069515080607435646640654993422486609649655794533987134234659352895070829375075086835934247851467780170564841241374099296406822403373271019226190208908282972592359465735314096531640811801316555462650954083169233740491609047573859209702700848427996557777821718806113390636174261042552363637351173450700590811391730419517405699482287178423154257535947930120056208428006121948273642025657144814511624864081718051285457513381619580050659360261524169975792882775916183695510788015177481637947690801155243350829200299357327981530201316545948236487703092574759656206995998940655810725311607908784827445256484909495765456325992845822457716798199639706633129667616098172935259715961141648264738849485169996942562252477588839203181562212911227934017287127933092596450913006007548092088158857878713430088094165505678886286253935277489183322881911240217465406184088755492242229374377048919254617529937113404074256062203899634276641066297149050212384414047774850083194975943836351169840126207892242598672816239501478293417147856364627978836402235214052124710628819512024083338356460137718579421388078873279175850928671580995857486501080817266144394173399705305856564387290523523617684084657113989462559776708897978412315161781455434892464232870020819309754260397525457743486735189928915443144501027736943774687913379061188355192547609385775687819120239765438617552485208901219939986686001977893189675500808078564919453403663953534546852459028382658918751853019603682128214961376259626632327442133119139157420074474621642619781052558178623624443428736981308387922649782313587833416448327409530829163304516572718592907767706929507657916013809258645665032654254580696747829837719532200816701407776361334195022629363894145588665322651873773437020557771474093718049818320592666594186319823727824663996628995515877990062853581430379841759487371970016732321704635535453640932456251379493034301525657887801054757190065487973089837827824425076518292445119804886147730878540723048607517081971240475446344364784985734347455621657457568119902865846833315604964712062936383329538083525125242034841974758783307570558058396305807343935716581495000135981132624109441754326137160602246314051871708391372417916117358586777429740046689133771367849731280831562683238268852928022158522837344292235975889611219666621366703342810101728267068551164281470192630871533315680768234520316738680897091075753119203449904862013680593413972050394560798414813198073343953319742786037318158575108595328045042239834909828831158627873275998492221142561053122970780469133916996636178672800796777578298403677989257399759739108116089451681011844108600679973046501697878500766305108071496673691777687026536741828823942500284071632369819771993187163268855075781278149459020458262407139307972040873631644834184621146647131549864821561969151864049517806453640846253641074629408303191405347130885802749761007858237201387752925250360727755939370843384142941137383374347261130249902178588368822090975140851546082064689740047595012730285037516912181756512100807977796334077437352458578111378466373845953293630713720591734823816347493942335409154726644030933237850758715291512055382103703674887992005760167650859211723895807764105098599274235288968117455437972962269743504431983090377408659306649646475287422950800388539047010051110939547376456884603503126849075208583224932773516810551698455576678561141692522902296649378996499846108582199812616956234535216493618059930426228376184585342154616270377959027933857861573177206782916382031225169041059233001891554468778904436391925769395217580268421103393230673608973841827633955901076202481430751969595300296021043840073988140547431592898825645115636759674406397383649495503636186850326539094014502942160391196470225733796048411294751196611046482664744947246956569390169284445203125930897850209156582518662582663654062077871398369812164698123370334714971875862039613949675532031208880276941195201453850715995867887520814901698943205400919930050156611077286368148797258855409074032669618906770874361462261793623509037497146276057868823637688203838229455068567060742248655313075627602915892224804770923523282015677516101683289228546431547627827766334438960233989952198829704064514387893497106468404256476920326971583296674267839128036114001883350262013292281422648432157369066271875790670348372563000108694720642005155912540372738415277226264060784908634743975381328821304395529712681057753216393479620825886553273416905128543275569242842338564527543894293386991872358472926631491413459509154218126124794298892716598847540005418006321770937031727719365803086218216085458325317551953259144833006730736900065957678925661709405134187935567678065576538813288223558108209785676398718325743102534122514919019640115963040696235338089005446241940243297650401080293217145996251656434653675489058322172175631141014668514251582943828235347050111632841586333209247630792981145419588312936993176424663436213170402922130742537517102451724314261599231009520950558708272714932316519728794053860945467046153630423853119643674668829411984474946693179796239790619271656879543206797632953451435509859736914973085213842641647162686740854127254467637677882674959339391758912646729697329373432585782510632847204930831166178085658307481866244323093239276174029507068737281332246558620319599027657744116295481264529211148517558795297929429692979864499574553612397969314021803011704370886703026674150593641542440819813687231522810870932819118241572326795871593435821106073411808481587501261480430681441000258903091787760607701441797907715834227791698823537075985626523246321372252487135024527019780821834950347328588100570685455614478258412762070302912586777831406438150685084283529015686681071030069296121976987713603500641837513909795307045305959109528493606225011823364491999548160976990139010881132872894079402206116033336268951410331399466122296415757926384474555352374123818812119381977421383189413572571071151305595390857216998478214234533356888226039157291932170489710461522888958169460748653647928590448354949064461503969553046848240176811036730721349993183274300356648823136478523428998944630229754202926157270707011091319052629790835154067909545092331061386966357590452243272175119215758598772720755621840144185729798666500911845219460078333453185360631076327651258392884731294910071973659078971747518116402489575956471920846860340616576326383005482242990085905072393111778115582154531742388531204401727894186446011833953344663199686530667841431932638086736763796569458965676089503338364929745236679355147152650311027263265759831325970480033958550770816775732393084169973050610749023793451201410992193206601928480223570831760730880817513447935647383532714479320550793166407276624386309421696101865722594356504281268085016315204427893805989632847127982078336456267489429897452054989854065286285791971781533497727398959385207236319428377167549209470446993275443357801706165371881426836605606828363786703864751559565999262380606074236371566459169914475603090283749087774903278141208783330691844997758675312183124415544423903549118693851618707963457196366509188076723582895517123436827870505685237162089416970010390372924368257152567519487692208266660556410304152383146832559793562659962037130801736625698358391596499914027255302630465373096790149880929828698507654978579966954999452163386106059541047500698578879125341524929892533318454932971826233888525592795938756789096736518532044965365612130461800231356294571379830642630253312175018765436244034286913241079019174351675835370771136949560326021533088917989544968862049041754298188769370138507811211157402918326174941178027662650005872715767169691813547458573634247203896607611466069290883826169030043670959633054586971529006820545154647987174910320119559413211513433770985413814532199869958931466656172304602722784756699105032896989596126820278160875562218891432424718700591564129825140350669263939144625970249484685798094407895448305374110128199126409566516673920580155063955528521416216159732791586083454485870807226152492153447969047506419084438097485640443983628317170833457583475466893517948141168848530453753310679881165216608459662045371402432252169480360710759825377534116930723276876116621985675962705086044233055689964039831983208702881288237313911216742684048583820371578667825659815977083181020282177363164290702512783672271259676381639477277498423901951298358435219348626322624604033892552705478567277436740597415869291540878909999651267004261354695142643806596630876927288698914681461274312078785984738919044570981868982386199496008132858795864377199846637691996737480335694935931001992955014697604365893654760421382699432276538791048708575011646322527136503334290181717623037791083672392829728618626277047355435891685760554940297287986396086286712065148470503025725796523581528338647972110106133103144031363838282465960898604733191625417931006069650528867569371730139329107752156055007926996165722004057973450587122706456103256151767904145577026907762147971232464145211267894826735979424487086398385502798216467109959476906416278647751091549307242389725129167699734690346467094985347981217364787392856968789495939746514076510832811815253471965543849417347846681544633889506172141492620885712528018396178730064085357120457672369157873413760375489627592359255084635515304980406657491679582239658613243269499155485478838018822880430507101315410254047927684975434443238819281060902260696522956669489802775227601066655779683554755269155761030982303897689439977329641161238439144045734249542370832589869204687268252742233332020669213699737157836112594527521935846903451007336151674746282378133020039016593484298338487978528558965305043870359734057842742922922189241801790834329388851160479382771218530261383486484092220841519486944192799410936550022876253416928108968322227770102916974542259110277049713798123309198180595351208921112182633024726915973358005711799582561156579525317539442438455319315088336928619386926968953275213359102176696776598254168567975368520260403062035438786359794144119364837492550946154160735828166200701666965994935357801120367324746524789351842376656266741270226114562036948747323766068559509288983200196863983549811335412087677493164748608344596836095152078483978340251798261735973141530318978109437547592779681726931175849843084779116864712323344382234809990487875138917182052681647822284472976118419886303989291506018097311694429008354430188511102694601570478065640481979794215631255746411672057283236465633308051433167506422131838654014374548833885931980975310428366983501595921261040738623371992845062059828184080130313133107296924552397622657755430631699374377619896293071585120130108937080101356220803681190905669736975748823630364653836065855070838064743339801450425233415035807390552772043734672873595433677110696087056435372148937101899663336560835542986199637606993433682037435435890633474805187067611357556716944567090849119826682978510995328437149300970362588679629539082227927875047805339384772490198922170833568263847914297774477002238047240415840082734133470881799753235469245489237715051838246916190714501763359492016083814490528103584945419658277461358441242219509238827844351533878237571454312441354397475894043536444386068527156699791258248715910803650873638145284981695477957937504505490343964890450662623278780162339501237089840418041141656524754602037621969773309183692532750740869905905422725507993124629930611475009140311436716505964857548017376456468331265631724237825843986297930171226480836153899313543589412068752365498178405021734701768572474919473432513577717979332941987375583726324287514334148065568687898706469977683626285477001327584009895910230538819129676917894385944996127664088871094729603236240698979158363987786264228440541012953649504251127924910647777517206634959057338435827956199648065997638320281382251984593098375840806128939180934522290774972798835719458538879240925039087667455517144492524368985165069556902405919941537765954419494551182941380377830161585797295163074870046396561287125037618984496738894334148018490350950393388747039142645288602776323651743409097757067484157316210640353198479212099119567017756541087882919060113794481718200107246510635776845916880932207191155844782693127235242867385505571138358449257892315532700186108271713565557967508901209015018621225013759518822398212862031660252793061184937629044126655737928440039052938265462409207432543256105344538642784778785767102506470261893151022565353518421569013454274259594418398129034337548131014960491961805019611111831772808172888889559628971098509511887222690374740835993528225659010680835779231105086861524815645245741319288744970132136136679757806084117171271477117518773649090845480568160941446226352723754180513935394792974606542435281613149621571298350995219430797823546178613643878001612783656651752876265165105179180451252275228047496110750256628696071637161448661546894189756832413424164463578726581773791642855102876115982632791791005111780215131924902270694413746086861349610333334240946453327379258391481071510000987030935143899271592959007156445152736399456709641882398005645067013262282962553055524516913004859172172960378129904192809884817216383666029651721727423762236156209069173407137602093352446262205809424321758525505364296177390311903119235511167574355257125019168000552391912476470881756335776746238041656146793742969137342476476944986438796099975346338569574002722717777991533585588705410767052886000008484769131914836108022895730259483203676058345777006356424348694673162346561085935742387296651999358653020005947092238379118128449783730256504632468894741287620505889111762344219984346156620119535731923794567670163616434704676465194024727151122935127591747712973271397007845233284436535078289384872161079714938783979822341185364293586012874120076446826665447546400269416375877356394292265442553309333563121352333109628700563478516342700682609572738412776675267085489035206911420431588770461673977826564077457311675011881723880738457288718369115827293302765607739517336030003856179002842851497541297335876185818789992326764088657013670053469426206745324306764764055885469602719026769361919094649987194403924286624017662229962796576848402340521071395685259410691631753928116930312236651055984227096015522711345082042839483917860171862867730980775217144562654227519614944313354769740848603407316012468763635703824318017421123810566191846602137099887375912883802730201804814822089154795958709375900898803666688542406308358106849117675458974599250351243739319895679344713897715489229923687722074406148325094503060930800309017545083137829245570088175191889626815436415232691086743910442211861009044609620515312755906394991960025663585645163335079757674225897834142450310181893566292186772672386649956101638802702750813860080070578876108692056622877822321647979381598341451744938320317323861113241766960399228812153754990920545458633548113545394858418407182186759859372271465754632670641663578513153957152961799781380254871974709705238639082140486717805053665269127397613762646743934196292050120397097848582206716929127742380431821195600979069176647660979950156813399932286417515268134604493346334304315119853281815112747385581363930946522441219951185336597305897277828766139749175590016329249294066822147617010579450526744993829741267488684717673118688062252319248354547464577370918785857455705414797170114778908773508775201438592915040173125540014507137997645716899658658616365177900793638993497538197325600244939922333695508854355227696913420416855910298151235080606328361901454072743344980541318168463144445376236643394364961243506807015267964353988856237874680509401802209726990699866134955848978896017034930518490391089398849277182388261629514257525763501908033260459958724257199459235894068028486147703655609067026222025520248292051427928998711738659232913633788063634185748852906748340600656370757236527411498943794166209323317989818319486145272723831432319560621976947165160006226494500976957815325750395981234100014252280869899961042942937031442043117270352113655253396568226291196566549526999218108490359637913791740011660426275145035119250509614168680365694630630032747771060642218086269206064545811134696848722536221370915373201124952855421329404642390142648766744926035082946182695743212348400563784030081693424095199727058804265315911455294393520648852891542026531083017833211687283160190970735089202373388403051766651070354386123510860962427407806703502045150833451939404141451212087155644639296157241262627321142363570355816426982133047546073274585170897033703498543126657744586774701387082993701684973082948097057476985940429800473834337806003710342157194590920967683922431912488401898606006191539536356627142720991055905052756591628248831466190258981717055086856691975986886830731796510347612823889400720021883944183939987036673635126571210185077225633099723686964765780923711180180634796571203344972109228187829333580964880011759139046808507851670632181062054448576254879948877735285242718624778481632711575517197947178512005108638117723344490298039485482267469572590081816841665414112904484449270218033698782998393602349676432637215030260381590717323386961818499015297316072749920567587056170231638990182151961624610862650394972570951963157394147990473674155737645502883454538433182614603527644770282091913976164250072073980244156060859753681109958914634441938906848345897479895689628258457254442063895821532878575080281048845733288189730173495830165931261505845063798803024069254914525836131263913111235756392676325558323496295176300057426191949646253002175493185615604191989901733877582532017294650482179775054613250544135633564131084758218171609420099543055650609131079429320680403188832453677382744488741576472309060993414735927904108393146988200771738665257911239351673994968426616504487675062138379889811614354315307760797649200490933868290452633640169368547709860335875113612803530008011411723779043189813852746005577819438670822074552203459514607902485572414690374770278892675495901743204199734091119076421854854788011139259339756045810257664260647097485355205501246056629112275801633764425847919987995912416298177856690942592617039593111659525071735840114962443708520013741845647101357994796651772906796188712584846667614517749718100826325984134333225607552889127222054177866409398862527249979735089649771530784348187125711226290604929944669816109125304395105429087615461611346036009184706440215451685623663974183011389206366200475262921709415244418856033368700345119290261292579698422065913047522319184340803104450584114882620753621519223628571180594992856599360008944805541128576562137593789053206344520354149597885404305486030472423148512130012230891893559740698923063662988593886951675340818362377371390340899986818626709835422431228789466899004182628630192611491519359204000154417087266059296858837605626303241502475490215835797235080299954147374597192819845289195440239982324730639340584946527870101995600262306075017342897058775776927314754424924306629619050346337674238160343515174503252222205849178432385381346582408930298689823008706967605336701996016549962361829785087694173996502914225489148637753946936695810098557213890504433962723659090226427640136051614986627169179395229210858955830012903828893804435192515399160846330431233811784454013527555613242007499485402731468245317284174739242558486186784579378466881977010430480143649468003161606947013802747469072322989292979193629167158345827614343916535761861764710826465251460610262338384286607025299265446635815316650425065831969734219988265991565398004377582637754801181289808003077616215041443353823488916521085302143441691460748775144237580146231559505691338681091742899847415856800969880943279929541159106361663999757079812445507155671298905252335921297790592177738246784802709213722778651297860601388054439765374759203219775590185210524408929402843727191085598413161245230717483363130861636566954756383438970272652199634647373593410094309508878127810470711967020660906834506090511832206272576137990120718606231233058269874653943622757796255276530346763889480977156816829586240322374351668722282139951103152555797706430530237984302915946325586419208497502764643783926683557808397669697758141109268444426966037314611317611294460610112644339764875861119387450676575588928654711078830765595259354589470505953410131607411081172489819999407458447185156136925533372826308667227536208338679073918383744221780234015712782418221983383930701907544195204916628917270357673834266494366879888954140328541732833054421939604438165981792587023942924002656485301210683510378108072552538642273990716714913463267628590393194152664654045747121926630801148668339666002093257128907794293095441452800740795315899827284630420661909188629680150833173159888836118904768237551873631013117687151765366356452828901166196732925725692936583859082473502482816087674095226417358619061108926402311436092621321208245064660103416901840125144988111796709622804308490732634159728725858347988223349675428167812693804772579332233635604926591056350772881334599412726184392685336355905229237485083319829695328418193547021200729026716184395829553216836511203263732866607229560624019699983654032867386316623694352730276573066359382312776661931106882785785598714578150722474662552328605856605024452543482036987712756010666199724616983814868981076025478151764458608709488727443067184599293828673150174075908636233818302990284870901895142851147392172854307806346381460855789429099096902345796386912169052241488783574954334752561835579125349940298901139253837093500481610442687764387403290453549730644565555194846620332738485559312386061506358965885772756191932616297164812729071441796429798333819653930915657723948450721513081194634420194140563203505829995736666069708340633312047727855735650498203867231648812654483678161713396143909016786004586927889126765753897115819313991927885051617015038598371210226918900111166707508488747559249107787233281254193461447357719179646351550152261653052727460336076640163932111998433196392973292552525424801883887612689744708161698298337343176897066331487689475901138031546353521279788265637812228591484194882413972544823321556634094687296160468896414162808326363151162307290234859030779600427025476138552475593467163403021016993344160551949229293362667926988892207251887130447181541039751112947110451721702557532139253780867303152586040758371441046218285901128803376015420862124168030880198870964905706895748566165701072934970104052924303195195236289209403284699320535629863932639471175887144586049554896308209956761857684790016042364385757987656143833148211984055027322533859065750546787704139659047029773785933197662080577771147655235763401320339030915955320381136529652081529257246828939441883974232130867120045650087685072632149462899686369158545154814170194664978158112712272893531615744338418547633726746846594102456349312042007432748336977653617467458539034600735017879022401314415754500526483251031873107910920978370621371035103548701621682878909201485028258697812500025093922000757370074136497715582731977677103102317431297668110719766640871235004985107888743284047979112890441544175704028126568317598178997898613253034595447248419062052406693737327412890335034996418995915414036971927389919728780203941773992062832586558271167250783591288426347264182802799470166660709876622693311101925760871444824177390239253008581422382461576090829439024309213640376639426524873711941506262747344824152753658041543942287148101009355506784496944195153232971736687770062811675088348077638445552910429093132722559376532350611716692999358285324707036286641936886703916335682018930085455159720524162253410083292377014609024898303880850021491059808800767943653920389213959054737370645191677341874963554342912988818476947314234819190139692284562064634300586281819263148179017092544017165788750954395393979609778097982088870105713145114359704450277452635685598122645346874024124916550484251485303528319428479828041341212147403731456165008711190485138969489921649409628947538028766476256423157892469987859159346390992091445960129250195673554776715353369201756169584821785624021360705705409050523146465917913994134949131356878752088063800675966798734277979620565684931088945907483735466335817772413322421402253217939140605044201345783024658649194191461952487634325525773691338707883149399749297193524021378301479664579968861266896105188079794918734014638945130214421739445918189103106110339601428611476936106568435310216132689416278238698025168095696930018956248022352510213696891275137324260077584646121201797484917139718010605497276476628167998792669404355407381012418232733946939357228153909077356334088658473003986919910248210453069085526622425794008018845973528897265594258846414086729004332998065369343971391549204744693567972911009829480316737586611083376312158422819038247008292667075995171869260676872237279362235327561975607138601523225454740225088439990418322354540495112271204866999566314503899524878103134985594323336612134428276209882171361681902159624280229496926898403037900491074483230672702477316382076421744396282862269011068045154599053183648294938687929253305654756815960381188967495906140185884365262266574199986707345833103369864835557269854328248257882564451403223086118107846605977201526495321266966509617497363578983999002724180382130953623805460152146938311919085564052382460983485348499105966457290360064055207432434838319497175636664653401357556908031621466247195328084093514791036347193136655122052761405849070875045370383187620257054243758393000917142505072751594686658740954786548478721382804943127297933660951494675791577934060724089810722745725882108173003443610742148518215797593173182593630060751372430282873858102752461220665417836177770024784522720477955659274270924235723678483589007911510498542747472820117646635203212503844618321600229495289955032771742248573716959973695373284066164487237026794023383633015178034258556677341668788486058990045426517300490488744725986986607102238655879246175348536856423904524797892908992757573687909614251086419485915198593594583888137400466545726473975334608327440466535932328930397070712984437902330645577846168955904766738801447077515272015011727569465410914004476177096561704367869908850827181358493832753679533794746448140019278066127563965684086840939007698486589210916730054937970329937414899604173471175224869209616897505586642058848426884637595843966895200999318465783639491358428557041428114447693509364534264681168692536383020376336768115927887781467230189733230172066095759311429022352288276147917127640833700965903856325458743767541873776866717861400143969998344696351965338338106555138952502498854573383170584237006475863128476132770658670562024869175413756791198414083944535531054770116760183348003233002241542822275961327465005897013001628289879066237586987191895508826401353625885749035663345424692304954184238588848136673883148719598216029308535779189207724473372335135419197260443931198542606633033321879625614204975479529905025625494262315084293453915763469044451179541711649623096102153762928884484007261668901323029699257843000864513527658108445002029153853032656248396041769155127999829012745904613349088215844253035256361446934247307177518727749325075398338742146738286666527056304084218787823216716086015728884281888038776281636729468743256270204110189726222279535795932994356737534456330995500581998680175523499006181412318904788265750487927859784967782418528965633946967597987337211754624695528844881893760762866245637205434251791605346493450257329132529415187148619212752955928050582621339274343449520123964184731707778639016079814280353919215380053053746494186670278565045432433483971961817056066983496283255157928134563830226420682793807563937159916952700138587020281891702079487367127437299010708798008645518839107658040876638805657854306398984283185595503715033669414714124862710294756304722983265164483994135878381789255797118290048631603406420335417946260525728503588612253270639799305000456509351183504411611115287471104310126426509953439313822080233306650665173774037364732320571906555448542951308275238364791106476287222028501388575910558445510478992101837106335157971205810396763696393857248471790393504902012849474112430753925870148855140038013759409633565461383501062240146264989292130141796543157080711809246288612767887124813019562032974773836206640401417708266187659091896760801131130669857612671339816036860045819126463687042322029797333931636568133535551311142054301753805241050327274179746127573750291005840304205954039175965465398649531666402724106930900063909442712567147476826623435100227839386764601920119676221400872511191575705542517718305527526738306598791698612658324493319597122762484160411153719153780840909218389763211178480864638930549022722896264378706740421784481745666536774753667799201637086722660459832985175302643603946530245900413109138022153969853300247006368536084650221233506828733386351434495528035237281097226529852081085392630183267638965848729853972037080314872763914592844810372543177345274377019814602807402989381537360201794795433837480423525400531201402780384990284534176461266113733290029822177318841560080905515137756076271087908542349560258571718099778875091089198062054209241579022318370664374651902663756101725887196854232457639386706936162928496485306691055865009332401015488239939853067591374595579814477285110594508289351205836875655483398056955884211026051048251606339169919573178466553926995431187436937848840755844594758635630682100766800589545210037836613958747920389974496580172567254693500652011813321085953683199418713510770394981611644720456759136096812304608924032087588075641349797124266986394569137624348070977532316004593373532318646869387739429967095858117359794829012854316422715443999735215867570047881368721057453271150822165882272049895427023420850118164331252473634924099337148818999010204660835088460137432231861064212804177927220985131097843145334398121338513626179573757173356570571615548901742094709413385195245684896879728977946363375879703215050449050362258508742679665213613499317155234628954095455827813055665671184469135651877532923583985285029347883067950526126259914037639489561489006813880703161565597399961906130602110300426817861242431776597327902028702626939866374421208664994514915305252150386947991157496244392194653249293997864383320360798675655986983480687105949302134833290674423960539416275937727684318757698203370637506259490819192704593596432583473258800442819575134552010074250364360147048629876486349528383023473430080559963809995131982738031116799019803775459842429670129601863494100893806037899122401644366885961928386400874429472582810616100276982388494092454371379562459229507808422493267129837426185613398666009470949326217652852971577108917949331782295485250709185703787021459662934123506591575662028825171029212086399978919671887854153477558746994859962478442876847487380047570793230106422392908240858435540684343344559843595332254800086585929776043290790616725473379468929799051962091767549169386882171311100302089226130273984312200774933119822509810619846432503849676477346648266411045280496692805536429396711689215152820961267407556425116452836246001271381007730434141416233969914566137852909517110388780253127442852428266297583830991591172364625358195142137179714928107387209515652387715601091765294442266303819280897307959168751691023053001121413912113923208452829768995418213237958526394666469431799796300968959249189529325965125554009265382519680421149639851374574266809628606013263622660560565139208043633673730102218101539152124594340127152955977770330388543953198586450919152134361473583408767039456509629926588688847758333697554230367451043095062247641011867210470507688484063363641803108463375522296781297222525155460739034953974728738764749514167496329204268308932139780121249236586102471507355854681907753211110621362028007800335596346845204190620293543544096971948684710035105165062704998122571109108683975502922685877150158496247223063329517794060540143456562840753002049758354425739394655644531120702403235812790284937280598295819746896263410062827019561484862943156183106485045174577757480693961092452716942460503510464176217371492850754147635261116180337075192122309925544755315008709837967280467221647931170883658010376795110791890917985042038800540640298071356426583380824126411220389770737423258066780853758559521022504850065631305113208065937417032908027188158480899600741328139362183532146799928797704462948642706189824159882869908502921280778561244284319010053093990486287219772855384459452300490924317825825162144005009357026847696325210415190179843002521116472864038641482253176648299300887286090328683020118541812563101449623429785347777340338752544691231880619781423610226327696986284515445515320770437966038116023621310139139182327541821754959697626889507396454638204676460248993036773740653912838606993299941944209261452983593459260452315109885778575340838768327185165967315812979872441452347708587859393888906331944281037309857981031894382165300063117688315536161886530662743069219819827907907022627292797510332498937020672023417035340397569010819120883093764998553406324028881031383303712926064363428824475794635048600575926051582463469238135579966767186209021024851435211000472068440923711749006683952894549912705592711923927950451118483156573580859801265909563292840286663576104608450746763673724556537295717620805363703621303607544384568057231822071270589058631484863742990185817153981228924622071084104774354900675306642998487979324603565585298741184100228233373163171729308889906704211869773936009110160972740069903198476693767047897242145701133811516931415215811946252880372852899037337048839314750150399666115315422794499560110235519775270579358048699812681659209204255616475681811724977182994686689913321174107057869038675679874061716710453357445399903959228298090795236604210948949526764268741514399922043107495437439489614649476786056256025339229448594408533425046351976018671971862580739903391949315763047082950349764114747922892872529013406410469407215072409666921136894528610409261435380295837183656242163456883871885826812782511766965388171049331266890061281989382770496827079726495879983457831312597023354044175882676160489174380435517767134138036776873508972855747598814400462892511897042650568257138918457026161489777192252066451944945732810689482094900584046216841665560141257695880021635306968158193017205576828093673060880091476046891159980375774937882117510505054550963779225415186424926999952396417746360564463702267761849743848466658020587843953116731101045077708327345311005773058685985557980366371012785541307912388302284667641429168156423130495618542351371013719742895977580146398175661503274982029866854544130394486994527698161955507204408059734696117380387724654698483358571293912539841962949100920291080232774054794025169123128179069766906385300615277512489070106681076171091540946657739705475344868861704360166773925837130863749748726547304331235291967911801820394923946442205001279307919815615459280161285398409427242428355369636968822465681997271088480271079369025049908412815292024080335967945516936574483823205413541969628875747089777465821563650169284771584922734315924233127297908197740448809060059779454236776183935154031169293879511945239735732163971658878009308207509035592461812133787419546617083616997466890495221794461857112555050755936186923851859251089739121863617190519564229387974256719345764619437943048786798304433949897146299710013615290250134930508132122677123434789782372319294875915645676858417965208920412790676025418709214631787912011414112180134003691312819060845937928387012722030767945822027886301819990349642620256944122653779225415182319681957337253075514100519194547989964833412715728462297122305378250620177296545412488058549392368563725617420980653405542151848706257651670263184197400760195402468146591420089872740305396321649615716870660761669334059446178294369651649276677470138197738224941112638443035544149805274661797514680805095050711251851105361801103757628644573406606054828128822286091909856170652530845966798077714670272679603740290355809220396924117473267470798699592257942763959661467796187164047389159299367606313769715359136195083033734946216092189463622284067630730262753865751146381349349913883915066781357502532276290182337697321431060794420014141503508842815076455961042536960503947229728977115928377333328616245872200356529077392771262900458284212617821802979774540597613507562741684747180250532158427833470941513363407866669175896547803513759979547432541159789732033535269575785928686910155566162664964112889920109205905510780835915133766976947699322380472946134024999892063133212452729851086078936715215551445629709120646223008170978892326424379886750000672316479581117500538540283140682138559319049948500186081603380878318940894370649794446873577701932806826086808205057726458331485725298007092555621184307764724317453008334630740367174979662625976260580834454241252202488530855422339981153933778240829866647230942477414643897680021133041561399578884183464704386871720127315993878527559793230504692256999998584069103016460333098378818918053782853044648110124707124117342019828623688696851304437274382354358645156814340493943355146631974015852466489070862721996920770531530410280892085122279850038509687519768697812009251108937631219920250003185216262140287834703788761113147261952962667322118675875356597327024567069937474197548684996933871795565996671936841122506986858622039027134658407185800649855293280425523005768973079266281634067005048174886667588106146921908015766772565613202335032931209385510534764228019637859299619619868108858409221376993757088242835756112331891286718064888659365547045567017353310449295578525291392814797580364167896842407242418164753996173851747118113907645085229793934555122184723840482832131112978470093799537061141066553176773184692420652515603381880645752994030181578318115139808619571143027397200042645507740292656934819720968188974621545074975780689013952507792980772334130448613060407781368321323618550882790394343322072303579050485341274047009294432990338476861124909219965092240068795245680245151908214891262495834499106811943949958931805374403290581420643317349276480282908859123098883708916512014872656129443336172636829250621857473322657281063224550156370900587108091752224764495168509360966138043006189821479274908559087347355263263318139105770782039787742103843457961236968790379216539896612705890693254538263078026457734338240827860184755700270632268779319549641093893190270573737753549859348223774249373793404648217174942560717538800787139614337293463562476819374725742384032680857367110999379359385106871305017092045246040170237075888577700693398537609551345673764629166230297607201874377197911652528052908602301178282589324033758939083538472049219057126738166540949531850912621622813742171188707253258237657202152281633046547265059654934759180852054644079614954476668139972115649477558574511394285119644516263521521918042609459319966548465111941812861343109744769704882673945027971155884676695987831224107749561990721849342246597550812181576930767488113336435992687409850303847279352098880021297188916545628052383805046666746210217733982334005140574736396753978756607258256499208780685689347532780883931687033686244904674864096459377523206952022753139238640799042654560193779295051505023058379333871732024911418619265728048417523942808637536365984034718299731673733035804909423740546383650621931074540768013031007606321240782563885837104909299390027276103565726627417701533558086212990882735820626155712220198869982262684821789616170468358568036377325924982420059466531240165776733348811770683997963533532312549033223882253485296347135340345027694547221229157130322941033541751168272480259513829454892311700511739049710848291928994922663101175494838110333818883781503174689919012214131839294554795355970783094733615687501177390576041097133737371367724171855192154353170205567176644858876106919504339671322242069535086253397630309800412841828497481770994744918023225939136694311315060546198627624448647994186184569300102022560600861198711446255451621839741479291640177720976656460613289694927935547224790822544354186873006064514241140049000803676908523912120756513887076190043555983971837546571656821622926594160859691184790719776028433380896247650942559325741277817153728155695622943590201056623868769417415756999325490329808970202268238918938219085149901441811763239785819686956257666125523271366608439557744651978663786583154689369503854776966027461589671393363700520819645940925483122066427490552009764774088397661719935748623410427048524190504917599282607349757147966627147412737614251220788330943031337553609854712379306463349840753019350361547978338891463765410189302595061835403289712625919857134151739079293416376014546491904802943863544937526640685086297156853097123052205155845387629975571063758010219419027402307548734970548142293150907131058495005771273943060418229500187656530578673007457416109442246911415303399858066395349682373225811569649510584953196596312910933593667392564940204491609185119734856352833561114707308954845013941966109059086127784324825680006431356224704968247733000467576457681826587941611736584945073441037588066927462556061854773382662974370952980636806273054588910357277389091922051341140614868580497034224430769339294480015193820637363287877172668942224960559081360166304546181256939448451448677227208317381445818064996067953909558837449247172028510749602809266676586117102048259189715258245604457696987546413199013325509470403081093421606376070488208159961369793623040173090134852368268699742667946481294617960498148437830092281350709255527175255099553012980219404001279604272831613424563202362832438854547472336624784474268599262813963295978068987750850196445605931653069462167555477971926535214853578223773226222384335459297974439620721250790901243734496091122835490898606985872613192704547343614226372795100820150712667791953013816650959203598931849906031675543442362852676541807707795695931694855903028573710751508603355636929951217239150441200335406796449782264223510607610441670427704116150453476615541679063376122452527846952030557446957498889874428102368511991371957753489538509100194679951125453749171311410178139611357005254451055422522522217650311607654302120670291624191092178546426718966432906088249804745349987453713188256376680828977812155667885150102052602458508516221120040956301638297502282009854525861435698819285791533289928464943103740757351105046371280392393441495504442940060852802723132840480026197269380979805888571253792910981788789713668834841493082810345420287035755721834668001317773044314836413927831660805795075230826141508409141702116238494674441534742767499670469309258087938590379992693361257985253560620693379025467945275364042416157483284324479943158712882794047406336358254385859789406272521875371507402313151006784775915063898051567532917200722830358678322203412696409201721785032514577455614867508126466496515444729822709600558336681107399618225032359920995962137306645060038417210133505900927936652406983449410385538017928725094149110086752912827476061247307208938617356094910671623881015982511724095644583178352494869157803951294741789481588052007999534349890008216668925046719199291033922346805432354376694873405684454832491191721469983819931608952210968285585529426801522828355135003182039235529424029148893439127530562460983147334865796745017648700849858364723914385573849981247112941426816776776363242711169808301086600665588948619404237074044021615384222700915725270544048691301688840549385820845922668843784454672842726823984442992267745846554224038078324313275880175622282147300389763454840472093457424845289268034441620779757416951087864872926154377706871486179298244362183233823577089816910820680471237234243192070690078952466957886716158194355593861985677862883977168747725389090222380834371618241173235523492269080300465531759159136979811467864764631694050663236710101271906315975201525725405706877432119126402591084324719114524745107154668069625951355893768475357871593556669699883487332772803920447387492259117001674571241293099834859557477014046867193127592535929074563805235008394888115215975040082609360506938551893473972469343081731114267576494828381046605469992885628192358259693834217000195747757368061539766902443660622960126876479234972860995661482550709836039695140749722623210655452939203847074018644812096831985076090047687272129836892266776341841146897973978054798540118192627836087105771367178028062322960633732433954991939249178734107977194024993436251426619165246413085262390721012078640469101415284378847496630664810651999296353684060032557152747195013454533525624724890047122104236345081198451422924048788879875922504511723566103094207291897519145191879269885547705450698173549768846910225650772802801202947174174717340028925017630856795223969477721582352686556329606096209492324317267002833292963299634987760974318430824209827272936235414232535845640309544341061757145299206054198837089861933902950392226263207638507163191150890091753478658305286662175342269113734749260712884104570574118407520798987671394027002926186299578464364819828244075278663519647777229774754818486612777810092002404193076798855073166607147975146344811840092126875305329579083618178054133103619863266874910202201844306235066565076764758081320710221567810426555436930323111240131678051819729267186101308475573008584259868368148279321342727719220491819736477571465843288420475782606018595317568739633020240259391812656517881900326924368058069075932322154531844872116557862978238179962495538706657157974973587039994390047137082322666501934315235396588973717453845544519851039870942996309463764175137681283228183033309246365449685774315277081545452092803639257673987856914033971243111212174415767854913263015501299890104671973776019646534206573713647257582241550960854111269004313581233977789677588271121421834840581720584258010582577550006176781311350420476213475654482126663789901996221431453978167552439782219566306669301782452169707264920120526495405236486586424032404967812198818924660663119015254439711951401631167228280236096428256994315464905531474472997174185105219149911951656662942108034429183567744844110836971992749570768648758926997744190073556921456136190913751827356717179017991357095803429279808760173726209764328572735271367637234804434685897442867230747515099130489847975226695468776442243792730436969472367929770149660237421171610523684532292471513221798631958447343023587371594174537570635831166682139190721277429732170732398852437679534596663492174231759940252793961100824887853427401639173397243102621889391243608544494960242016920252686421103151736116257570564535760768394651575445190308761600674538939728500081816657733353386972339736343262148507456638602942557414438887894059198336948867236317297633375987681255941212516339004713672250088118600339185886914364887671502284778273386839535160987806944996233234637729937553738729392357067470257968294398942508898975179430617385276566140906446643699786907312666269951244297076137043368168191223100357613305001472815002120193920822744330214066101274722427261045666951498008962191755250363012719841418731278776289605051921098078002140246926868498219749900882152510842250058423144775148514045302516403435334021635130541399163025118474237280155636920584952192025421652495006746689228533093044434224670743408885311348177907876215129378749260438413243056554670623781157054525279334517978566198443605950591784781574873539090687228185803002689846735743470923780956964885175185587170069075075113854553237973193714858718353883935753419071885302361306331793726279679418529302420028744053304611568646303568076457233014842826359590939302454190385492820864978973333817619759039244725167346826079967033870521413909842368476282109203958203788948974703820887716083848756068296898285895949394820358298717771715257099597435105366517687692068303738834449644251969103133006009535738682466579501040116362192525172628305174488667988986425229126470417241293354479594840739515149650772820371104149206688100743680548561048775279140625821054331106793615823302637591835359872684943930093002906852500002705873365839577121145450473007237544635241735119505501656518624065799268575718672459234398040500418508603211523456560318445958263913698778637113363235585423012286466728324211730806767547797715283841158683730075678035875387276264393550000317394953021112724482875962314439624954817022434417297804780506731931008384201628458956711020986638445055841014177237529974674854410691355501691637524148939181711807155300215771507805803438744262338112310630257155160054391703627971427266778782645056785165009146024706874819060232767627381120848876798383278020641171304303659064764274238583885220929766159790808179058665389334462075554550713438294147201379910189746608431043675185429318973234036840233152141248673388763725760359450457390714764740351831629398788022408377214484491728084154808973533701516880455324831525137656451698014115961442458035641098954278551546467536761481058156097114592312239313780011352793586005199452341791936296926066400091407454189376701237416408375854963384805702770072752794882487948062185738660989002127149616915451786866001538824290769767096529727193643826896286535679879676243577201485292485158724311490786060272732822918331191232529853882124893452547528488344118485955161664577859799304259446762177459938662244544938463929401547167820234828023879194174800155317664094135994861157893470808498302372854417957194301797321248625590196129339146705289426536572498217848695896222266581241056106107450102826177893525368371150474578233187759242649389949741374646822580587547750761299472137933254533536148581841632295753265682251731423055969866639882069404254130590799307521351041887195525303247671246874618036743663322764701170174790254961354382678817271655186500104007685579454172907874413321289978832673069604287695263197192765944682285068531836597197321338359456177953022907750540105977662623295305221205506975993983170100923872592302113360425897243573059515998517743357696787363160070276742173117328085165526847284257840387407862751843623507773596346377680546495883885784428228628631101798978782963360119325085034842196083208621535987356714743841237306281716366655086586025907263543434071002661427049629561178735415140401796652799790327922683148748445025304254296844506421129267467279026702184922278966998037615693809239394707192489731089273538981855086667654360732167340563026712111063758524875919956754749336716882876049166111894799432121418485326089327945823477220983147986955297661412873047707596022727620953427715947710118114800795409911302463758185696995605507337917941384864595896651401163895677130715835541007470998384175798356371594221904491515438875855186225000580666606092947865240644183873103432810569833703370624729563591516420588198402691358747397516473495625982365613682595197802380109208488893635947570425034989472817616957958003257490873821127292799926747360922494895998739304240629208904986321681932922044785081050133007152499152506973097434733056139007648994896867956986844350129852756412705137123117614222097239776193674972851791977401179552410169827825994345236783014976138146793214493569729500344196787710276465680457268811336294685295061828595628887926885557489484391023971407122093775059121529052374422116830678535482142044071956499287485275476020360405830137087388853223559467966308321575126650923088215191573371960790345751982100323455822276474419088562398247142259597919143170385390178825209693301962704643739464162459757914984982376414557735269793271459200453331986738596701556357515787991147098475475892097883127199815665164649422966902875497829955422617113322872152551662446596404643734986990970540624249627626691153278491862592742651658978858577030617244589441846120785153277845258442060773712577071256173181959961476232922941259039642596245898461196695898589667359755427477359947563773466545595558622927587310542757371007962364586448894451412667668171020802248632593793521928925301906002069324525015781851379586693587434066427123855809741353591643832273789425286220346648512631258524722588249757781036789730141206502572802857610927461056162054129672536605226540437147416799568529067839056579456511453441293877124583104394369706791559990511241727544058595913122034323104768528767464701832194848700919672981152524003406292508153452379537013697064234925235612506771270230064883869526805803891779623581398782784119305628692408815638768657237956943894603596919414258632391561153030112407857244539219442385343228308876724335623274857584972926350525310469481771275226913493807761827800409499044890193862783671306706957508375456994896851327354912316887087258629171026347454327163301911960822505037593419379107316403576571845853826001872240220156256416620407172908581498099562704539567098490456278512824696132058276296371692075875616968735881775343856032582939981820911514014340883318083299756318797224564024326470962362653691238082516094761386461963443475960398953011583180415032188193006405236831698050310239017238610424528979781154063952878999405180266709991545272118022016913634320343669818398800975818665982694598360733167629665753851701009859513503000104153405652576249357619505338202156881233041930564923239054443498543286579469678566042422304118686520818383383341333015869579203528251440469448335783622953960941213284248261415579614791574815224325618367759075799689856964844820126356108114444686819261601287129448432872884226730247377492856990091896676139068159357367570214816164130599505599481883122263005682182718278470574197769554353586602485816380047193927344104928505741564933088112160534113712934050178726267070580980606605980616349234104002967121530698565208667725505011639398933072499925733456221833582680237167621767718613122526095049744717162936726682537780535531811967354676861363812458521172005364345092628919365515944927056050882006361023868992907745019709711881921787911211131515760732688929605199779392118793396120576149795960898702296602222262872511231079354601830571418183766017013760951751025692813397873311245485971469881922044096907123692397577135027062687149119522407790069994575066723831210637285784446533851512140746971199056180895679515204834211150402703790004926752024806417600170678902092623173547371284461995893931736924171542185382757347948430874260558229280235148757994735508039905581174591467408193965248396258406700695731890787257918789538347540130412829594862674269123913822765783705100394713215355301793247847842639350181124996959158093937821625595330417762045597223990567201222432161529087822525356721998794581402089248637500078055030041219356344533165173198908874293435507101419381603020421717668347254994373109278786961942670623626185051471207358984143543339135883318289533723230916955998528429473036008508619389273627684098593268199901385041293391971947522411009089637870076370851824528569055667950105623435604249633408714614569034065100867485503161073425179913938497936109289315023516216426759873257139316656736680077814262783228881123197343323314726089472691797271739332697617136322543368379955580766286000922400287932311029721090425756819881260718391072964716325630463800926580873408739651429633448449824838912016200373179718272215621693924201926230670368746561675724747643503397274924632409351691143929956229414042710221720357157555808952516532816504895336017536166690572938292388022152338878501668614674845429154504743178250770508870160820982141514020173724587917795421337649462596185970819125751830849496024710341485373564093645969191417566911152836467399188254558198942396793363996864448710724566932714867896121285103088459088752321157772753278657020627382157919730661971010598482482631748184920864456416726491003313902583467318693568346283748975940181301570183672040292873406470753016236932925780590757034370714384049045115900901152042055647889167287813190978014185949370686121008960073832992466275360162531501306818937086996547180273661937624238329475845162771607745146006501166436994641649150372106756089054311810928735770486673812045363933434718601563777301839165791010421914744721803659165038406890853946687994128369593924563122549808873665673034900431079588817108377071506510448781549048143033609525168176757505254096944973854650454996904164157396398303227004678895093760842245193280678614830642201104671262821606098987080237409953177134946779034129417257381970861776314138890995910713259834968146026184932803578439596470461258614546947419286455660430584709971713721431764292364285220475597392717213050053224837028964830245261096540270204010021934506721849495395433818427654159923531824184316780107672571846311115189569794720458216361398028032748603143947145917705521470246479318529215800152701433420686171345736613167102590917776487587329315152169380791348517193340805229082279930235708945708414739005730554911814635125998480134645110722863653580590618264135866292300919673842213404100735955684704969294528809653780209594736133408076807222458868128082156473811434731558837978250471951338408958882895656115498042197486647539864906450556441779351425794761468639667813304477821431445068600812778386541383745991324288916879620720977534128155862109599900039325619981652452815688788779321722225690158759966444519248788858875877425178352978798247430149350098563011765480388618254359018753580650315167697301384922672053815405972565929688501028018579521371139690510170378809743294757120960408212054137807510226890462187170618042468862728931374023704406997376961010474387493876249647674245930871103961760982284326807350144275488185965730721092634671772005691820220945430190444642957128747321422595776781724018902711990257393132291102649912037637074074665138195201927593842639835135553185677610833495737357013966448519080178705432968889927839225500995383208875228957321658963879736813952172778629820497919037881822390389949375634779850057368080987033028575586373159545980378231212405803079269399291178727725065153700503261941627019912985548390296417881352796049272387483046900456727015849543994307982033458692039320206173618046027821346160426137815706361844503004968144902507267443450430987593658075921922005611209824892663161074208739167726014233066703612864848854035357567263800057874470102130480443646110096930933007963926007591688356181968324851016885989060047271648214588551643724314864848495616264517639953828865452947480797154680314591861970318621921269945201017825326892449273835072766667811527739830580462990158198239054988392039827286486287860533346313152099937922814228083684638949098511640344595454648764853352920975020447755326769521005647974743573318019719786223560057778292263178406006543859309700700845425981797571658153696670213980833908594462531149292803243347772510017280643311047046404029464247811937572641417888635321212477542518821107507564112976169494258870841522240200252053085097663866235222508276802048878680337204581542628607718432970144618945182518992242142188286982589103939318637891867122676919282420771818170769418677007326378051040168732190342027752937383488157284028188897135152692832617301442767297365879423165552261371965031520048030502687988079276413086462649551060280992525132766267774641104900499583233880893723696012546974842161612877009977207283878755623324850815449948523065990574095849286425584215679423974154317501721739645931271749091373745484506898936515464372223097163254308636131674522221970557428590190745341299231771564413627302519821956108488008317753094322459496766671357080075648070351740627651062953158642379960509309041401871375370694820306798264002594863415259378665041168965059710321713478629435993619329946433524256219833520743083533850694658027230010238305986261402428314436532870101410876348745916148487262313520058369810274853014514333446110878244324289437052498856848301152890805551203356815563720560218548685343774123179753492484295633550648562599172120141135680533138052824259851413338988653732669120543551653644772265228945766057299360291250082204179245489049504743951452793647255233968909810572096597493537158713543636203317313437073887712962548960923617445149680505024706346705857851940229633282930543255425674891926412413852650381210834196408208776648440732569170234316868104096086777464526953444813938462123870765923242289970563969639392033873977319744532200619949365518338356453615994088124990312694019110430162688036624663714858188189105617497864089657413317357787872755164084201701432616655663402720472726485606975607785679956694918577302245548295782894371032074927237416840977213731152012883556478886415833794156563241275817513182233844113945258918664924570612322100056471338032783345286420910988413771387896978135597340078459059650795724795864949767016966747517397132110017127906551111379224622208131688533802792084609796457154038084469943487094730605312715733325649994518217153224137297917241491713839194403545757461647808988474491692439544281811395339465569022214883358168386502049820947015681293018728671574159265727111405419549161856635760723842114449174633070769250613842141501947973181197756195544506290496051347064811687605368249595957504673995075082947787631792673463880082475575656890204471896064872083567548033464162281597327525821545661407140883961186985006958569571963610966643014888411207357266102423163741530419408308616652337442563951047847351038587793121621266402364445309589307506506884378771104978352625529377789495487882743237132859410277867654316860503638534996195052949347081930746627161883940550120936592103202135598236190043194166578652035943622460379554675261327864486819133088343118359945983697364376796561131933413944377567946452575822028769849308726969267537988668131366119651345989765445242881608736179359741391121456266677028786381239345216712980170108760394719277525725847432407014017739647656673765198794059821996400516929580668296736274939925350225932881187924769332989304187751599343848785281274650977409720727250996430777791936899234199676667987651495661160410520681419704793218528730479918008127713325928370144673306797983117880012184234527795378226342958735807274090059436667589884651994200628975165094024895902344762338770045919609020334671319147741326833279965201337870880087534756057683388918471766789940671911460766587297351694097146601970582261049029214586671118825220628860737207467936034140996641940209037734372221519163347834506550919846918442362098395780952897470509156981087901907780229401130825156780074837618279061544985179452320534525120317445123110323368787513993660440674824996167850408676600725093342184397477916110823769840612049712859806597828311177146101440425251813752216469067062767301148625747720608128630273476296630885819575771674683865946745251466171446068257764673848131586944498406166389889330605822019351538174513153075272603786677891684101000723957219885181799800806976523349457972241798239313956167173979242491772622482988808889218027657278566471776278539757953017182758741831037921209899990280892402650057693540847095142793755250484003872574429752977735988958478712412154595317148186810918524286368880799714948400080685197449328333819035770315908420618288285459655895728758222583871519313982965049889584689612892607218768870737190512279218918837808733542494192373636568037718874535118630260522780665631668734326611706664552136931787200567675350604077546745662037513453875869387900244224486163909007585290576224383198011539416996916470832739979857670456698888746208502321207538610951494902265507004901557217483397917671618333512672201223946285430484332080566956117549965578540891982944927475418015710062476350506778486039034839884588814914495678335834906981809512555836334666877323853074438296274703460509875985192265070842684273380071941234591901431515547286576285419357552848597086089727398870997801917818556053468112951776446802687405306495997815489847293241816191682613270921722176086288514895470702183396192004962812695703054125109261562914657017882078082877283475095229083401562347011028828114028935208678991937832038919608237123091153392848316537439606267982080229091237045317113444259286466067370785660736671340523044253668263252472923112654683246614501250767475172285391665756303824951012620943556680302238080518341892763159696973300121728243329830860047136466626356120353289193906458515155241459877052399553665670295059496426217630754438146509649091891415945649909042189767276253562036673514272252159636433519002181334788329225867331413645642851592064549010640726278355715927142237473697506146667608963808563045959931797993819556089144563223804985732825520439696570208920267205854054679198451330640200241824555820266725407010104701033211578601091973272304825753748593336679480291679847886221322478670831123676351255890124476593178790898423123463130684739849127479927188094886324349582732195830132587850300722795795428574909312069442505961001121407767895162507742544674600625084570363904772552935650066446182439426436778345184504759216842701221381956738805778919483765905021384476472773950902657050227575208878400375405492271202215209560188294871131030495803590787684823457961607513105418900808930422459616489634442961415725212697175711112149743680074126240676304779107502047493262964523039601778483026945767258377852383193978054332771553378078117016464871912618192770639042782344437591890333231739521777807124813664347790372862150815838791470267358502476462772344693852320933370179518261871382704851291359085818188207618953991620533417659062836558653818908257871996630441583821127720179926417037160407930478636735880248729563268179643968743264520291768986134255235872925387498474984758458106884937400537916098143079968540017510391990949257163609671214441931237068992427237007019319226552561078970381206075913610969249251056130295325869476627297356286716103226767926510546517279825203269787783977727893539906232809095519188359323177176816088687122115599590192473331604068986395021985355052328605056627058521000197713297739982571352598997844257685610973874261527440183138811527758223704569139243438157428083052019851542253490402927332527343285499264065438892578120347306899490894396343490035076237055421769354839269747492133717540928692474313575530144468386239610489579682672177433346647400038322742508576953706363815985690766340790278583153369585324844926368161717354029280222087350696622494159670624019668554985221984914088955486709484808474534413480780884726233486655767100322658301568375261086932388052904817065209970870879844024084770148657572246776243176137251123201772723347556702765812660687005946093100722861624762974455582121835393921784171550256525749006248227956550432102611859370802026554655156227350589904088354941759157469882786676106855697791740293833949344280767137854915034794379188168909103926692839917168519785475322707310804322425385492719243796874125453608987199995705533971950449349018135425343761453749321167901869157806143612310499897358509815162568422165495609363950125033487107828845627156026354312125701416177434709438658514478024412987103883114659662953381833675005484532389373311970340646099700124785385866647284764647449444061517395324343713585628283701405580366435097742323467932017782273594893253876149021605998658706859236180196308494279014189472247823082363671191116881831207385890412142425205408600175750824609743165474745667959150956869652823716709205393027595759584801410424280697368301408422580575562473819561375195876529686657433171535094240687226691486931389518696273811473553092642869576039612942675401294571369325167383561573192463123559382094731411313786071131278714001216096167756705377695883847802976306554898707699572756302227867245442466922885551339697162954832491044619439716613683230557062707303794361337256713419916802349437367222230182956036519029951901033590324633903053442307005581265551068338891673445862673438557451100254593116977796599218467272370666580404202708525866243994170051068405566433539627373679375358483682503279621752280259881653281243234267451615858740966582878356315141065627079114779891535478605453306292299271165583024116471069389283872674373034982675401838325054137448691385152175281896940850351926169605666858975839967433718065785731039245122476655909485653013586821880058950493887135594390233826527258023064347098694989143322653265868471561570409585485125401438141120611125049668214803710076792770865740186868665422989234199161945285211587244400087056277513066848103003594235542836211444624230408489767933029125503480281680013653452806649059107645617712284070847968701214878086712957889144351470995072795723021419066397883431631162701392489056183414397559209761216964109848368248280442570278669366061431085625805044055541678337569358800691348468301793039808188022561398642603667973237788840947697871028160044282413986022624860978510890128061254380847523800639464919042166790005963405378938579149097375070848135685400061002794031950199629817400166861868445265877963423848443794603024267950808505990210535617396041722865730595594297459222361853829883042033719427157125806168575669300522672998597500628157930887403915721940078250340264007898635753181515372189068332021880730036774517514732814830865225939513901568877995486114174888685679453038253586118912656944575355079523847382711563072920192555633287621752752913533247290239014442370480919449175593413359775720263522269186352876920424829709545550988060089514595546285488661915342942948731162739735685884621349055705715155497555151262169327987876107911443338089236895834922804822661566888074386289935820069941111503124825358306350291024742695733925563561944215052185059776893012175298092676205010906704147907429780844959589022609366098325852712995314743180203974747474005113611128686159276610498915585425744653953637670222683580336222528034556941073052113001554555573289640843589054874759164104189145218379283502265845762308495768496127144328288774984176232369232311214052991308322685527518028180062470526573078399432444442836276678020205464693409267662710194534449231022374325119533638124433732107312904075977755254051892458326122306721342726173505823480111395616502823198159921967244158876898848383218646551061646289223262910641526275545137525217148635387847813482983410559691205215894297120304544430430457877807986468593449607006978444818857901851429157015251086724366877186914743726485142099648779413785544527410276277848159595762720659727481037123216496223605295030517940257111089843361637398218308741495472244892020568701237902334161299463042039020410492317777023297461343944370715016217073811556522228998943862247137366401207380873438292340446209417284358137260806038672646808365643610780848845750237146235789426799845815066743222686054522954262233460686880291068245187199001183793250400500234898844202125434341912166686002548924249953429853455744094398046151574232018209715353866372176000727395540292134515941806281411393586266330773913592094997912969315998924198400374296798674990601376312610288388187774076644170169592797836126363566721673318353099665352408024623825514778137539677039951396814528710260529413793675693401237317669708311857678324200014683274617785484385346187745737236957703380768187661624407710471198112683280901839526913651434700019247922002265013842151941353354282925739290524505642543381667715924699784006656811077506872722778745687380685747502685889530458844316916868589081770933826373033526478903392039811652266851535098530444874263956655801479085781373878999664854388515555034864641896507496886709511522783369514317060520795790718116135934635690729920443224085820000988649461497186040799530629245684609765335129711361438988888877325544677230460248595185932909538453638595745796772348987000685036797951621029488431886795278957671488299181156767680085502894848837660566358770236663474885521653504856288400308804894971068319755075727332648850894735962181539350054950989679819615094366520838945688784894827894862785449408938432063237266020248843321814016163275723496792352951027636542157869833577323367932829478926782784678541432989833773220547571442888473296325812473464034952082463330145554904734128245260351138599880286293322194682049559391310638599267657264342332874453477209466172746552342696480342508618223358800151809539634578256082335202221421660931256261765530387161991217288028201883686556984341018691289321758890330443472474884328887775560957838574566081988024833944582828771694378498590830445033099600250868894748774588285026675294083993559964513748961858250384817599122133331691160969439422018895081101493110406787853826327337150205208783768907733174231251771723102143920001407859554181137951982805722839238265314350861657666624319809325469296982352136648465595268101142047809823935086577349196138227061717482741045516814195243450070459229513484108176025281374868728423167808595240903791793927111770130708673407838557253413876539387657553153615779179942732156644263277820096115316248209108809058690932103680356825121619018453925517667569750226056883245385808426427596905160412397775507542418379218275869506743418020759609226059600392930530044856715274336869363666759447753069683480030482383720170284065304491156326740917508573342712062465005144513732119369270786370414097609595329060079933600114939686584037365131438120844108490871128586741254810026271629145268576122636772205330787099931288902474488471657255053211275191667320040285951217586225870096641644972276794186447469693385832467764784279201333367506453137775229163064642439443507372924131485038087709620240540231861509684658510969745949908456585658748814205102191722637578172751114126621749161538378928141865027364044790803396588529253914033372449922884848060577194116311100080271976727280272290700270137824677363158522504299714832574758420819208549868943310742295409189902314718821567279872116202657177130244163985613815027583419156167416274845740307341467557313239009888483781889602205009729847152600108935047465376463930073440987165429259805282763814952798472859863474326841635607555702809630040329191107465673747587693243203365905671558090165738449282284821825028075511860105245436919148336905344003978930746516725067805363065063356718049178687402991612108584815401335659793544235677649316055965487774041927570854436182985060372897150488044995216711728353330297113928488929773961085488833226444311654657523659940072267647490714634268309768568194649260210474263207036524208368949988950153925383737408327366503087960392638041110781137935245103613620971791108877150040386641521060818696519026988389314694301587581587049086854175006550442047680362401465324441017916604949701213081357053762659430534538543893573461093027366822402706081447971142468851822058771342193250630324401176060782560094610057194336619868663875676808495629542497102632782218224352473755707990207029344483197783667827135065992307275088539324690483291043779663184388618862300148854365451701352461730905403144345777633102141470197764869154044862059869420915726818735462412468062940445619615284635448998683206375679997163114809861064779196071736315609275550436088064619356861672886754014783688650897580884005132330751214118996537932244315431102472164459656851694755587528109957818994717900276208598377806895802044919922041714965157722270315537287590405805231561123653024945417279302380805200357345218091895318223743982331950455382509040648721505049180135151331834735107789098264402888058176037893781443965272638086420235925909942476273527925276709552899472022615350875947582151698561923440778231839402784121101439240382968041468480350017963047440092512014474365804692140138802476309449744484708325425749001930683320549717534352061826551356688702177224448945275402870796740082476389151168190264392064863446238823073291680754622038330497044920106392535539576345412686315661433564916275609115595253337914311603807124086837309874049127564197309772203202260727136935557634017467529005107518680764647949978007975886867417943866844165545876922034134140104535214463689573740653684656762607140610066580978509583881803362197944865082410965281513508542505463348263947549941435787221164320313503491125693795940376381527182032978865009117732778512158824087663878353518641731318288745826675014613082265962509539865500260478146231101802250354411099146099743534200507521648474913166362021309184883927430001861266903687894779353969241423238849881955327434798914432126558519899009553519921948727388737154197049090496210933418505720388806365294815372831740972624762119224032349392976390120576649851667770815719815974535590340388985542391340751585121623347873624568093691292000343370951832985539419100063040207880369078350631377811070341051854152867946575621749407468667177286261098129385697681772370000056041771128461449382251275672210869386484767107695566695998787780052685329479798971763847416554440904336416118999294606576788020448552324148660108262653546575495238667778573077110251612406997651895826382417572713186605070123178573221492756388203197466981044641235527657511423898226833300252410402269313383859874842127626999476815616781528995046426983901507983194596589879047453882530823344050927509058254375449339380933774667455053147863265115242009883203015989950006095948245495932273947375161985945468472826009300618851688099862651780268910028162967309803827547565892290061468605559875871408580064532305632843924547852669983046184169111332388536331630042587230046322182355068631526862073140359072160490537397260501845220342681379609408547279351850986302019295634871674972751082675715852029838372801499965881734491694464038565811102088775912974151997102596857456129042610815878751263010080263288671956620600246802373131440032403567662309429214586712022062372115180162934297973401928878491847366223356961376776462041390819130063879709629320251285008194625415272969627243154977447158784122607492488059829295149568509624199814897382675971606445308448626110770055802764531675905475082975617377421013310426596778554670407729950391808779926913876983204472944472388058134004466286044554863236900571117206786775416913540135613819926830263539954945459320100017471093264964308315013502174679586837910553015792589890796696239148173515084344882654531769389766620779906202044538675638358122288314586771569047255670928238297833454141557586826580749828419177682604023682706147607554199740482491214959560746599159190839900853260446442995040133410222543616225230173736128299413855105961981496332653963886640859877814272528805604799455330173934002071827355193360857165125906072881362633490240654572594747018694463494956262501958174292537565996264272376052931347902662559665025894402315540609384243185814378485377499583701816134691757519725510106538090283591319232422811503893325986640325008736776684205384179173308055157585499815080541304936463938744881465902398505695262483452212825883039238861308719884496034725859866594155982017112977369724831428783970350231843948724625519866551886289430120481031280676417709698268246719381867562647331888583496938952976034002820732482112490357270078564690991633796060262572900003635991791342851432217632074513710609234268326903697465327640152535420936315716346052858075036936862453279861192889277728576299043050640076270494055594169437440537346119548228475526160598915151527792030451456853504986861725572873749377449305542244493821447190695399467426559922118570897079785689204675599303840947586006955260605460552696658795891009622927060171431933581721403014392418335374768368167555364337677221086529432262769706097634719957021195649192593960159514071057571621079340133352087816694756922721757472972521477693417757462193658437160722131233724851223142388594446921770722098046733085854889204257304200678860080751496602432384101038808913995426376231646147057690705575144453886819630834220754333757064403171732254148628498153602716065699109784767993867409389621309820209132225780797834178061535370554530788838904763103384294544529040752018318945633542683596834149747828973413478815160834738137109114382665603442144759771408193667864214009450738165842825059734418451076855542599295808260063559825151083531319499070209855134559828605970553221130687017352885843571137742132932905925744851595073411743940943263672758806904150347952803754883981109570220867506608277708951873190217045533885068194875094347919760782697105484089061540848553253470684219694809864998141919745255945127943653965384402256687926942065257148851175543453443147586087180248265728220409231064295023955331057921680036462914858431044258963542434134602298257453231837155363252995120967024011054848842522817057109130813119653053014625809892365755759743352756694141502600193849666752406600780857261301233263250000937166620995329616165403736870284113206262148716979963664740078917423274484895935258640990302706574360063911097610767078038410175286682240217713787249381333678667123449370844558249242522298050143798038308516321902943904938841129373143917634882909743489515973100213568863429013219550529338624687110437123655028310337560285178398015489998038935186634841078102873163693502060474685093250124240578775865070843297205317371123754108041282275973269014850541369430946866962986991942027257518317044516626110417292437755422832797658205355928604089288543696676445661806739403201401015094169421581615119132672057858197229582137953287717433824264620805291726185061932240196761996270971517568742939302800841591186803490352208080284643615093381286965970796491039147643656982049022004523666719978618977001353499708201544047161288936783611052013811596204349424890801682892936127484271119682101196440686300711591776164520197683382060486234910625571255602372007345302001171759430639651427278031601139057029246730850434405373185220245925069168653346720302512988513490749961637153796093371369480113834578703267455594904607738699688710718664123958074140598642506654939507133734249817898806294176751924382742503661044395052973936680250405100168657961252200904021753399278539410342672459433919076866660332443745674582255648551543764453446303039961703605651432915194831418874736757595112635931972422150040213569604785002884723846078091333562213752653171468443780713568625573851128607812175533620751126733962584889640818367283893040033590062923197873050852702579154910242589426272388335031388885732576494111379759985336598056243744962672803988544853054904941138268714224847797526774286863671721782307284146165571693671685067242487864351916247041290973139311777637275880292442389523509891791357809977589413661668299649433084847858689347283803968499278871998905648423593663031554417244202346171899348758372323067837783935573441650426279112979921176196401594205414567511594510724117071254138640898095072859271155957098652997954840799917015516007930533665907797325296248119296456564440326216179449876673724046017462322057509467225146074837494270752991458272664610321114344416392742099634281944408566183017475629906382540305621665573641468898945735859239055979249279311928303997208180159076314137015882846870038453660030843753722934600641529958968976998940194056757245939376040597942863252608276385757621851019207791328566256783941958246492828836934478792067788101215472886544702986490030172215592901061876713856545812375103698501656321007815172171172690062463127418969467166973875371420504717181424496671369462525855411060184425040969700298157171104155060568223192088775943231343903085505962726672110132744589896011455988608600373944495579793076755066984334525327174907264124263137221469500885460098594028323880656309289895646213499454065153103064666276518987270745543823211575502315441962058514274533822095947247120168066203342040337293379170305585585614238843140361360995893301546534282799042642423242636641469838720993926781022903848413486649650689053828862970563981723766201342656911398843694273656509735720490326086158290854891221870779905261079231670521498720246828204632703463561682739189038693566475508461561333389140197592199272804981283534591968850247356046097601085739285174404119165996517881810254897053286648822450962591110460127429663878893577312554617869480782416486771932074898904351376935433250399290614542556711744540296094050251520819850230437091706160039793780830981331143879194760010235462197439873868145329085737439911107959240519113762348881618588151440795196800223295973052177716185908581954763485203814361965126216797734550538182294903133306998799354734202388669096174670710302992545701649987963773820636512844431797440804604761792078359493271627982762800126437443307871839951164466237429608802459288023362014226737783270053060600836912969193271914506882412260269878801243284915387657152715995776374658751035064458336615859104239654654790513930652427649154349986225879248458675548739409928264486107065230299132561739074676954981524986256480880148183397581896455757546744939762472427892936287618721430359835181910126784116730083777819614526782313296202849421852329876550383526982624606929170785152343299213135610203284827897970747681712186866250740690805089493108043062312343444912305336756674984052623856377849641533004283902475214033860959759422787745958512427583334631093107281381402464316933859387617746826022907092025624657967928226879545537475390079817275292835904903102378234171174748334356311203636764611166220612521218279275869259596774842818973087426049951412368465476430727709963320559533643515771177325058230250468713127997522889063899859388495566667959801991711770072403938800286763279314010357070861928390757804545073094924398528585520755720044365989197666690975043096655962203704633997787015024076446401299558424851770625126796127247890620701415269685395849497639847765117350521596255082026721919062443238143299567475969350407357422088642783346986640783001626444364509180629886990799574567233848111452096091535018811737522407421049094328985814534085424861480902755429662771183376701320243682820372114366586086135658192362689790480262800503180434185649387493495650014194781331066192690703199937618874011542960947761515015156174086522922653577484789178817353267439110646686487665958409234029943697794732098644396902473891652141360451058583147544725877563128202020815805128910640280850236378272176737983956160598241573873033619684541798397196021510632724351198045394861163108640459691995004857276705375375149695976372568104199257527368305283736544824515653245638968400137444876729447894381714309524467198864418028951899272198925981811273653343057326417030921843296700063445663129711623625139038457045932340300766785769101817729342446200163411979967937783789867953103309874779668446295891726433752837064633584631287913468174928335357010397429255270579184056085280451213586130776538915344626217772077139279091525125359093841327201046164798899490136634437461833013069788576071239685669794526890823900240062904841411851992833423702160542210153403893690645229310177849877133178624968384814300585775937428848090309448560719861335945785489844649310081492219485256472602085970040032747873242812890594282342095804538322599326675439406133066010428056108199552484417209603897650547602852188841045380273629594197458259759806686313812340798932483266747783153894009791555111545728897243238238158288920231629353401940760286268266832543211870184872925508900605704741957630362026451487130065320062529997130740323074403227567654282540590406496641430890131668605135823175089626150971931197934832149779711778267454213833005033927984483968350615566140125375481767509801489947262720201651182876338146905833189502811311873343167156101828890845483613622305960754779052712889062933039668898180480028136273358435575186452220680532613855908641438389667227408504340199170574306663586730450260394271445854015034604869750536964694244284778280737384468922060636367379727101629446116771511295328624831613061181917437981838177690041108888475238112673857223453510263158813551786525048468200148687479704482673940713866525789475314716141496506553591675503120592042060478443229232099920269001133203176150709111046696398924833183793487975993552081845147547402819948887349977721076019670605039722586177330144591672952041874662099317362804594468176521575093400621505797654380221236041130411922616433797969212123327171283865893019930473165054513600842340840989052620744408690499057062261998662551234235095516572129042770174997809579496555247725839992672838972191931089680396289797141725913507736612135951307939465446624725878604021979944351968692747271885761762966224835714820450829746648759496137083429181952302113779855285600896195236261486439769851737591373500457595750790402918539316586435222648748986606071679040087360423896004893214078088384679303363888044828820528469071241823643623513643185909575897164542672037991557617230122580807074029231845576018784636002354988203412313709097773282233961648445422680793614337346329554447945979133457820926404048032684505029349390805691949784799006784022638046328198823191018007324619011909326755991697210897087937381126518895343855479633445673629133046710761317894952977759684788466629487297916736486901576929102265623505651140750351155529000845995528991527821068639264038663477687508203030002427343619325595054330208961542151646780707175695372739034291929167924764654485029008659909117713186522705506250230838373155132586016400266454372265826445447419479825108684324610228608211255783568532405403365783667855924322366746971325734172521072210192022872913675975127998877023565342318544820052609295200106203302370339035014653489773265340269814795614914710128649113180436287962424172578967938444015087705347980638426204491735538037027451149601848552408598592531863940326363653589737198767976001425258140866987282680942715203501349883314022019243107560307121119094839577552220443921776066121089049500864065819069101417464261187958337731924955000917313071033118290232365782051451959796793168896282354017120657997941110077759761630641966894988730736714966033937412289660999442073976457879410748713407622755847845650990958454401127217539832738803339800111075672817146536838850090959553185525198622231479199632774688671221615960338241634730406957886130867143325837367143377475902433818258011052549927134289328560559927797026177831379707823966510208885057084024236911576324139214570182097628460727423025852891363523238518656669567664136604993713338998982834438312143134839973760765212228297004212137601654412202618026593336481268749554971750435804043214712590373402827895669388294736651302455839650181806755703291099909207828016910660745460775465535569793787725050130117408494266180235318039153946609915618708214991122250674708986798360734286721146001648694871015369072454044723418872086704064586198819129621247571999776270910600558214443988851901007043933818167661357528610842802622727942137830494146219769090907752046198824697898119407950483894944162926281646232262992321733621245728713487465016654506165691895200018023283598654359591379313074488737575578467916275748470026469270411435003426953805006990251734293494130234999743488656613324218976076435015016468482973257176780385318750908952971162614661808379749778180705544912697986437951236788442921001103312027393544230834673330886342222564543352005166620470048314412589269103321961896215949206404160126635435902209308285384094958718413443199608827122467530849560974568181334792380510363244651509010752499624016578808617263695030457696989411490182661252462250343047664535905768214326996430434327652215080767826042369194747019205942561163630336508690178304200931448491245582554023757709799828404068330406953198867213723361189885685571808031885394858311979582317693547182828900280523701367670246664054894663540322931782511888158024641431968610654309775361980840860455391944341301646697855500052852185569427115922469474123852075624977347391433208353894133029606834350370066977972498152541174600195168154447548748917570567975479747913533534148711551560301007270609343637638314033353561465559871355300855517904084103361510887432294146589757106380744755683150048581267408296407904972421484404594326154003921957856357948438372235486936616976603589085073298864726461362503726404095382643050533674938633805031639159144356246111396720748611592467767809830588534550005337892687845788772364594747282823459339412681909060987447321108197651772057719246358605121932430138599136885308184781342160803208543667563471157202469090593133714809001670418789753259828790404603630759907243221339038582847672516796472722620940609636935893481671619300434368088800067304635181817625825321249942983939573739662617087594282651101694352708198796511254960586332604233724546270965050351105168118564837970780236516303336733045864854628759209657513164150207761637018600184192140591388171729217882841971757146566303889816261418986535112954739740472628785709532210331416402532356594492794033208065838801412174107489526531860833729525593291205225416112839775193182517200865100572434863916575179642275701850799121762697296541304088620122941198121256913863470276831530895681867006623859739504769934325121408518600222928613162599730018289226825602630860233306120619624524655229587266197859949930066192828218047849551724625057872504246029231233246566100457073746303059811452597070521150823096263143173854804679965630951040800659247515851259509137005222807150177349235693785687202828301701476413754281496557364791185073693950562657354369737003307309080879223985744921838727366807609299778021121010750314044013767742738601592303204786224486736130338710394039118281555520711753797974698485288822922631381810908144593139959094330578123069604429035126411146925663266111229212892461422869276786255578716604856804158651515363505371933559470765332032236600338458995521950949970825452836033017052202969620295281901987436327346382664231751759707830031582312580352732233592293634603698851850151903308590153868852820013333918995441512901408259285381895818296750684308910922189311896715500559854291524165287655270305585799879248256269476041976799728930704338324805778969981775553786397390841237340831445041168967057113016769669668179717546251596792963446705610620491910800135906677355558324602270007456652368300723324167304311882220039792834561782635072071469318437859859406604749736714122358916072715048465392185635847915313938340309927588809514610070343296079187782562182848824838555872690131065949164518496002961626721956524494694800008228370679740690771408267133335283722688607185218038562012996955219504941757731460333098360402297542520413609338725385959100403126084902457584858503901194186382040400883223301599454882352883684644617135407747313756302379246218379299871845636707823799326654765656249921401112479560959754651137534743837506300608639563991747256502751629053601162659245615089075891082122014923461446016584953822856897664720897484080902228934388726679078631722878662299375401068049494854618415499811738855537058138978633075317537731770290455463877276459344799753093750672654575864675748528668796799466521927806910263976794230277500862372877373893030682374935127579337372329673047157461847136497432364271376497033130792809307434526442784257547129878233218661622538728101649635619320115754152338151359869174175041157614964400712461722564626271068784318985552410989736059762623609960723413196120980115276705862426930410445694489441767246477768214852964596056120322985674222038745807886361493459252415784339703790141344292939362338313663786399742299677360709118352863648404284538166443270333580863811959690925532187877704906731330762854401542372197912779675573587036326886679345019225596508672546514386346780370238491495654016246997795511156381219451505452943476151689827080726646695878788025080346272559483143316965214737607479584940696840169328594879007915710462686846290618878669775980083548596909047105531283529870148205525349159164947851827357946527215428604334539741567593858713885379765520499330059443439617701458237183845839600657100687491959424813973429594343834620709672240535795026119345207626473276677870770295552778365420601744541189850495461430761413242868393220011002811836459753121715139977638499047309288585849976198530966787074266488266074120981179613088737240871944190301911514313984734780218564565783649998690303318584721935757990820457947523260915688895471948667886757250174687846604507640946384338316175321431226241891248717073021846087068048567002913315674597026665978558321350999098007773560871778991145246031604260641319450960326960811473125476941494255675629136169013388991000704474697839118353139528221827922256743971369287508591458153748187860647498977203142286256892343611460469210440626756752851570424588205659828320700020408645705969272001633230592074475674592652768386830845952749735347574063634614804793416143794573631082494861296490145888596742365903823794080692956746740556451691979557783252734388719299587289366601049588871938037163012292575993631176637890129647742728356270301685042040562708842790210951992272038696107090784683762392624668034057191858825616400072548312857040453298018502498053038258394911173379537130525255139802021573025093137255670921353391995076586840702521583866034123726320360518895535124574667372650417886114206939154684458350912999351307641328182995978350845145645539824214514763514708977186599586326922006703327271414744815888023721142805425438323040478363151108634190604586498153144165835146804595156079678762909497355342007368704544224652028815168759894322215048504439582767418265596407344618788327877386689363298740698081509225643156663669118376521207505628143586389282677952320644894190700075453716766504822732261451005669328240282911533376536609534810055585561769632926260054626157809612443448247304565140267255957623162048589468787872276977167162409433034642030835808477209853277647498914192989049350644562939261022322963895667780719985805226852686286264990482854247975118594708142730836142139777729849844623700759696863120457601206425305963136920209098382140897869110904380744741981309558386938071112897701370282933568503943117682532043813985424595379869042942969162111016328871139350034394422408846605982053851920363640493353468329418313418653730215815120842953680296594998300014825109087427558769093361310782886951221942896766911498860115673085838587984094429310289611666274702738366240861181798912841568243732538232408178394289431714855144896330459716368021061394023972319712672448801567059351484566251815351135832858494389038428782756619667558449533630496139681157179257148820304576439507074473952249999739208177131751760528958960550980474176209693912343150492710769351982142262450302477076959354892867498686645025207663832711821239513780904925768431130173148148932814671430701936405796972564310070577422904587613884396087473748235862857770545688920025757578155398600749463161667995146121196330051921313670201565053223583687801447432505193778505297825285628709387789262244146588184061807011965644505131953465804475243861446264896840585069977828871738556140380754914040302469678170361607341906780993390061721109132948784405191638674081148124198272720128558902749697971904394538744031323352740922690713729711243913633268235275414439385154541515078783086352729220560487321555587369057100546587368136023150255474626045629975392730344121547939180508867473633983686314049556509782328229231469333805236075106925603768325241871687977332594789054764198364619265449604291641648442404866682936850315038140139825756307411514094888916174745713649369890305608460578548105000397481832813233795485131523311695767162212174264162334788428190585024666111153630931111508666873803553744042891971738494245151288392112278757000477275983602799134462708178008143127553617450340104199854630239352001181917552149930083295764751835291356988598691465933716790953457399340626155089992760146196342544541318547666914286031506861275457294216971518239766377621313808446434597250978303763666598831578213775897580212897412698700567184510159421628086848708346019845498699545320799639601658723421183476401873626578199341377405980532058607120706003275712473996912194118976866383539101407006385642687156171711948025067421056466509562768741814372702627313325439455280365155240789786713497075678993587227695330679309074438345794185326388546525982835794302064600935465847929471558375777524568448691000256995876612935422229990229824495230451885380458505393417163534612207508466349275895534815586501519452657734031336280572494802186334718724673190763467226455245539065267624902252786344070592260322139157643677940852473901211229257081703426468865358756397464337701769682389880634335552940425429750864043496507420558646778017061563940048132258803337855474941584952236679555646241384311567218111406791448081671053143206291289839901434939380517182758722310743004606009429319116240335167368841539471631668246641578284133530115056414461841959116908351767205824239504959889568777641002998707254513656991020080241502291639862183778987626395298735101204297575954938548302335088568767142996347318991078960130365978503658527360562000856023845771968014422974085094897734288395478161909295257342910149244826003975649216803061753957578692389841823337558802394500057864697498804848234978137921909527324465694243004443109797912398186354495339701757394776350862538482360078240638813290113927504051336961537099729920657893520048049097427951060288412620267880796026362323452470484362078677526756062600480802676953387329340253983909136864391474245812875716533221455502489343617138844444051436468377912027152760533104132971844239173983045996495185265903463134511438054280734702806032997617599091775248603051397061876265603314909704605291522745394842091650159907319227985846753039889952487424184448836947562004405217044418814382755055671919652978490837035067787859273149275438303091548277199792590936356460911324258658591270335041762090999715269015383763515682340395582465288134431879400974826232299277267568837565528463201216709018385453129140148198712583236976638869444531416836388837541019062259841610505669411945900835242457717159251724802116735531453217470458976077933753158467648469002187822886039823759700820325166230356280678411335315641990618315444615630350697901452345697475188803655290666346765097935912821539327188187363880149976176253345600857308634601346988279293653160578809044916779134204357282978403813273557830160356778802839602000996836614623379684476762758326536111038089971786276239143068550300480058692900771095947918717231905606770193117747806476129573469915263225020549745052927940935602754898497267061359746891675470721593255377040496920443941594215147437258065163604346505830203389175211823268330854265869564346902728117252836651394404028971809268148613100324368077354127806706989732499121663687927733539799258059859041512788830363288441492000794403138148677564736153956361230838649228080327742475302698522904156273799042707793301513489724904045424268601490903431645386572842532955895433855598047265855683549343087062946182406407077253453327187680543971832859197772779342291403117347997435796758829665331605009557300497653900031489660946479744209869240488067365642832910628676867512838973179314284762455805925743006286482737810727732724663485347147003179075887982052287704662580601824686902349476297544199321520157733930794640228689974597043282871390845763074994515866941928205139445730882961991341451140354896244421551044206734219774015943465587625072557996184329509894733319178060968646999459020956642019887519260660293784963961397944644204756335466537880810617392837167754001138418504807386778370125556094852869673557096224450455231469530293955397511109508909507402234149073719151974500135516866533447548922749186995155200134477366895243106634261440242566057595969728709848800070881105137135051739857584100258168355652527209138674452009813669289102713521004318490976999937982232079127150769492791109328163356564496139707655830077293822726723296642362725561490522002571891998689313279258629387558152320659207504814010709656290808920331667557143151058926807016695401286556721086525553250983879701026878983520200313545295446154799080039842100727651065018689695850518117517520061554631325030873193668572804652466996145979835916232876428676619838084025401854727025108570892979452892931617865619040249175375023116135478638688169589719226068177473448399706845443349430130853846193779567220044025280257530028737909240957115983832754777244084820024252207565642340584247627953368770527143803536335546407740499625086389054998866846782206897042802323223648307468791241970240388345695892887900190548486910845386522245052625004170154000418320696241527877786978737411123069796346364497330901785012934039351590096707508618396923872128860429158287902766689507330353049589120827815039263985397698566743472317125595210088754600047839586862387065217155263545570916718321936532485612730347235807418654418718068347036796661364710601218442301001897467890909772805814528681646935959956413145152542699694357591153570510331933017357051093249386494215177140139111717747667051095417921047415185797284551057794152525068326076711339115083419409593855312432693362622062139483037776383659079538245063539208637810064255406614153912594834185387245698421418054967345870588876458807561648173648925447917290484607183038799382724892502843882747680179449396785107489163492571654595709660186217398303383763295838639957861967588196292728231518985247203722854163143643015021646160453469077972542076993815655509097587598777853090371004572781394284688896549191320796052992116788696072559749273738460868399645765121830906019219584346040132864468332455544691573423417554121140020833238587174343819910303730479589917808350909690059133881140798866629150826609950480005733796189022594993477585520510317545710917672279703558303443507574354804232038235059785480383321356430451075154902719703406161225479008125226689517328999119974451033150102057868222009654583569192298394678648194406926566711091835820697436819141111624297236595820300498114184361874724446170032204299565198154179512150764416468509352357150953767889223013537037661189550447848546996830524063779791764387137962058370727629407224623181658705151014534714543611362067204432802471421803010113857887618166899771432568810311411461753629531904891733537086946257728076657575803946988150199408910081067460009028339271528149425660367308935982208312061001595091527976958832295642817585018260189152896129463041793518201634971577890841125058672930451897437558588627013923989064180920547114074030807825252863989357331058593683257011689534615660158841358008940036908921277344337633112391845786987807268416886683386299981491331151257722551492041449264095562503385049096740642934876865374539238575969657091764831405682501849360111316264973725800950096276113394477648011331428029797754885212169894303237326125778129729979705890578333552992795678960850044741257843447897263108797384453644938984156689500581149974766837932456036492103307625295420956953980362811727586516138138191824942382681276254926721637435616941731406444833524966907192403341310695839804817435395011287849327160676112221861396065302268943533633702950542776314160851261460778270033864886298677869787570520884227642137223070063079793578630609104273014642634649485090622886154809034487652012246507556579576650525200771117328270054815306874102283470611469476921046640118479380878468506873934640383655108811633845661612764307629772276513650221611782389809866570891231962417400398325875539072140478231244290498151656214384433051667874504178256374700070032182961906119856567121016844398486427509517323026991440069450675736271334770873858600620280641749344086411921775758881461901249630500458637322338408339405552457364566657375945746119462316763116272331775367980255755723655899402683468160581477861052316091534277220904609523225719898420622655316334754027917365732510354213348662854975886396748394758241960031845151619181054752224439648328941452461647595366431055318199718197357733995211233402211061852129520591739860273343558857597464487242329430906966627782952334846743844198622810662602741090147707288743376302137004762666272080095942830705512525490535191425261481990961580460484940916212378732671989902585858382031699247642863213807778339643463630605622957034389694174841220217209992126763981362072070688091089036249410197035715457042189940020295602473277310745044723575914702005654655365199919677364414817014019766606821468572506821725205334758972934581008047272726628140279937287448901173526153550851468512644182692281321516019595090067077804966558649007457494179494427784576002947288186620371440633600918960486196958989347012431892148716355961874024744429279181937280612865285212809912640099660210282643201319934051411659958506721057975985722896316429625686131824571401163186940659437421632697245179854727935333010468395822267809909473699503434497989527608797792311427448712545461857564846427586794717073054135624470665370883515272750671222069270467454711931129644361684508833763841205125120663085392152249841983616365721802365773099128010643481347588643633281310248977002870960710286945429601399601768665674236234572947839101460786904319595625864923831905044488664277719273370945487859206618434848860550284767627884151895833140122419881777338175103079710469769556888524641896872316648386689040499323271223308673828583208675295471322893987434078232556405213902831156532262166965728386428147472150895371767353677809050426188233753991875081609427060309200293220683946254509027540939217663324922301227560800734889453033733821347811095603630406221172138532067539734344824739529326478228684725952142744201655736939899315994582789224713751540209906830127551158943746879433664606774330060436913041948648563273100073137355798700288461028538546049054298239030254392072114934168566498415608679790176980084138946276316070715690464213100905322250165230187668360770668441538518661619312913828713217246718844270797775997734387024299462364374647416722775575881825886192217521953501059771740654831157649758697395952113253064761959371025046777388327564069167261480120478546727216936298995696938722332778366354362303267406398668521022464794575556009114492219607362625372640377961073633456417032641729025228356528257258838011126162769444564075828870551036371432734151442729311076112920287330193209891003467469451119668247794482977979218802153886714255491346842440733729594396978743656469972010142006568419106223988383238742888301468566856171685018043693264578845651036009957572489497040747103607571162713770188024384677302264288000061579090654780357064328267889647580993554600817306303435616645640482733107826957391933883108757267989430263458614812586275655463792959738311308875641400875603224034605033506544086791947872692268487983253267579539129162051923617960118403483367983348691123321536036223857107111451901404700857962668429642347737607789323123673253345964459076786832280321573792983503574254450554484559195984095449906514113952637913865466789095064356361417196251594151496683869652151315293939728931892822779079967054102901402704400226537715383098213985078137013377517927884362336738737445603981977523701870439303720871860725809291449515001365970079628036561761023121262461347004533540310034996909581983493869952623580546779773423940371857588444076438418363015933982182060050248969342474975538004087342508497033195711473289161331529125139746486537873329946299175789451567523453034776902371552034061166592994861814970837590853536543973403728979479780695888622760853314769669960150517225777162099755058866234003857077531717737904819317423658859942551438874927062817582667335979088877223327984269351463187307140045470487777875557719795545939480850221811876556482249493892953918334174504869902225951669859333236566615870338956352011056924030844249681048403749698028420548900507694573564252785134607324564886916482121123205797162259043780164168698430619027095093970721543407007412772788543136437950534391728722469774970263656795358519730252539117736355895212762000902757534292972603467243438086449046589265465689588379609733944997404855036178818905979858443511145877458340214922901381566713618364111812572434231759346723725265503139355763818586264034012975502187689247850158842834706562829165317326254658409430137907863875098475253716054218500796273635442041914581798458812535826201959848486041444881442259772667498233841483352582782379891627962310620305867374164898335431704849837957976695542247451796319687368471431829917123672926465346881069664319515482548723939649430699143965095177573000530383872292571590389555817294698189611788566829851730063009026863085681526777793453071861079286750880905310096291376806515599077378622031023321043959935154843052193284606434638847261087033977355499500897812409314545426531493722764583072065524336967529135340482072915287202858172738993570023652293957208586188268240275054413688949784580500814852077453806407469966027618880479320307986682510752840833458967413051358644673783302420780492530263344136413222677246906420278022229869660608745003179594891088771512399711004983696818624626474804875733066976563871138973204754881843083843262621274880823537981108638780262448422673001247784623349606375501911361882263142997559283997492290218216114375040325722245843269861840030911448215215654135722985513117579219725642802816502209300620543142372494305452552847440557712583616082673998724229002446388243130142104572543148885103379392827638810067787045165634452421923597184607060557852141019684762016047742609513028125105519106435489357985004848219913276858188775957269985433982920853215741422219885460422596913697019404240802230487421461766499806426154738089014710432538304812499021297366648628896637211261388203583244783799671776564929180148273793283086611076529634088658885876020746313772186525478589499105888404859670811440052710462015561855363577449613989322534235132828412512205502232543299700720586732974064230555909626303690712884346293181199644307749635030750641160278661535079835407900995465869181836608687544285354435093271016586978529972920028763999329972259932374580697238188276488624214273182902068098509026772229756055314782373468775941248571417739784640117322183375644114155961257206978891009295379474838591882641069984862595938678980783807417092886571506245774894209268842990249328267706385155024268949959730564776407341938562120435540159573612545504511489639426826573552580119681981269139381650570837772741314996756099692558583608035983612913943322618163704418485741297516225298821410264973589873199328639440616562963408946455029888317943791786756788291154039531646966697410497274629522295449895482729282030665818836590717992315257224364076333117611785999483789209299097590143818407627591394746165721404034608772891115561911819426915347036853710079443269894251631938627674590964662131180212354141848702584490493297044071333152324098718039174920590070915939123415312919965261703678075266102763189987312868565808534173388634788926278491232661378849868625770251785728236344620799746267049078111286889727621452094237682583251579003109171834921725244310150033789659466358143900358264657306350119311024298077895456618328036142682343821371072045974433698321851627568704746326407983045173927904961864718737037878733191060141344573781297217729139509224499697981763116815732130716611483569240520220900874727991288916584880430031716494839474878493524263355000868667375619593828486294220270958626786138111918444504300068039181107883626288107302474321983130220997245930508678206181967460160243777418830134824285535557057363346731991990993151516623336482956366229508989876053387597250622990782978234363092739032411696533802065864015357376540394825363557776624033951684527627005721217629938090076108834846840473989215127019108200401490104163031478374591817592345546043380676191975093444940568735642920899159798518899475595002600360486681130442234398804959908251487372454476907997239753028729640623807479961049221836310640681564324577056151517678926783226111484701719634260358194927666858245575071799729292910390993987890240484269298640361163316378147311630073311811782916466716393786382364026752430471981899141810006792585897115128560722653464564191523144657871890696241340914863803226858426086713964747534033748557899999981282347220594397885724685881521301304930508161826030364331237210779716442208668251860796320650614950626763529322159864633900891336740542630450442254727133568928977542509452941863727733765992147417855996132233029802164956977565626382803164924946208791848584712070582102199960826905033866314012757218869532343228193871024777019809286865560040292195040983817646216925309648202552258578751561854598552629163846203028316351199096427313786341817094831007008869891320295626681499324046444622449077301434665667357891514464914213157323023337726619439146993896106235539373457544912713116956792683628853844189395994832974534454343291735381686237158369335842134220494984323412527895921982512974530383969671250212321328347690644399178073776793498640788610912701281021515875834195122329941043367865399933699502975065065340158922368586751935078015410443574775421237511323927734212939727286067464029998646634482530033972639893792955995295498784683197378834694518845431570716657320627731496249615963695135876617918126719735500392156215230284362463958305748680570740029420272030872611910422048887488158909947350973989924061891967579780880325629255260990951945792413128076541534738401408564229677804011884269983961174068516525059773251520714756912507044914610851353098950477927012776068195669927988865192208362915554703248327299823968548924864724523274688807688055214837073214942385559476358903435124815169065958709287304498501901833122154102228029364885681781839122854280185249730404292596405654238786906478857857784690547298124676817960379380902547813863742403190163547015805857196838883090657108893360742710700306326653607917293657007082444236600560535767985331805341438099689608863865600536862212069168200016565166150333916497241431993227307292541461946917533732166834038371298989555003940181072058138608623259572481237300667005447753347128280174484442085308829947161201485398176947152942927342994358109757646129620430958712099410436762562277927734966068644125923372831482442626207578980466529169923541921794141939421478752508311583821872042146471762392019176155953062928515514238670797992552270732577041802676046420219331245168046488968811309584015827745684258131022655593265914536468966313089359970843209229715282967852823211711077714816209242093636732577970816223062043653358367279639192605827493640808852190711427164135820699696037064438052089332457360890208183655622080831499516342253661882992714106764681887891068372362384943604581459647087993780654087471803420974602635392108170716590388723050446180989572964173818536429994597550418750971220851905104974096694982092126754325410306275405143891360901152899421487401286267550654283070316431994269520398467355888500287485687022801817169174021782896445617521903335696220124805586528884113390065311683038962103842117086709509023699015797644110264762764126246029356481418724507458464463187306683355520103159508555388524182475628884760176172022448745568413650639879073353773275596948671810314758585550535587924612751484180880631170875176051997076806974035201621821261930116454435366569470228366702295279069940317174530323882010172586443126357992474241790480006897431114686880238987372226330180332883389488718873996614929173993698596448922499767761800097245134579960867174216888777536439129982941638513085482767670741081526618624987206265253028903326833514107609049302425901248575534774914516830355423953096135392404636606132043356353331756009612482720241386530478893843324474207459742870548320285126111503579031657531380099006509830822791288003400125429878487404091580230716441461948407198123940342538852995179616598724399139758101888471049579978285299751706697401064937124435688305071796969277052491589468546825308120863375004241434217683365471877418874007320647986538147545378895240733260127788845227997325006312753563584925476510801758636206309982400649569144265849705648089797635842894404361688849379684168198737370965810885956678094202541415234886700167559213415257664656392789889266079624918906850258868711801383394121994032043561825677603239390536359409175705041960045621681920738751837707256280986053459129710361879331426334335135389853646167212247213901371540413664506560335819278840940554811422312231196329538731949887618448179813892046605324886213027627978751869828992698190464999176771027451597341058127259575783675948311353441193138072853237625595029068470360823283909940139586175032726208557470317059285510459078529041114765829775777651909530805490913273895731568385114966007586446635079137758399977752299514951304038594790043830992532984050450252649208963252236151951144025248086442539427455594781302496062022217255470219421378965811735145950516661908716676926296165873192528632325059491824862751913133354864509105053930151663267704575868285484573132548073212714901104252072217136316596041274786469144363131529189113781071768903242639909758033403952207987990457823650680998569157323879478456817115724972333866358740424235082118838358467980044138528688649977452942597870504227782957063196283326009502557171321085928524581266596643992405071516105048015771077692849408243670341985953055005575095622756669767655219778683635423935341070105699728107633030266677337926219725024097429051573556858445295884613793866494173590864911647840062362203886635647892256564052457650178903816253299401702225294564965929889898675951350678515106711110362156639234596608682521197390087595423995994794338195576508614772549514691657037547730419894028602321197138560223886614378634952527549846345562181071786041868583416400661943209386194096670071445443339589833730052302406363764673442430253151203940634281720215699289241925589926950990348562920462088502983118930753016575970939294873580286686398833057423477430322639732613922881075504527681540337600563567851265588061099822530633756588413353139507893059232739282393233115976765173858006328883448939208301050641098263070345477789489097693913699034654101262157491892528040685412588798415830277726845082469110133867234320084312070141358375360058051649795974474405987708730037402799493125155718128377860427130146133587649361102515385560553350268128850735203095661306682198427636045649501074047812736103893410810466091418061392699974736284408679304823633640551673136972515781483636562595081576391789443353462588757589263521841729355129312059371941142959197922366110241830754555875270338009629751853941477752388621660886376815953149836573409661759834434437054739605565620240225002832897676779473160626608347577448874887767313967660115528764899089558838129312400185412496543553643558833347599537867568213213690758255303205805637078993797454655161227126127794885165201230551177069240813138698813523402404695534095248329374853823669905566213863671419566722911164945553022896633234312027372041356938519475604399600539132982604694985018017087564693988371424655785451130727539327644630377291674147339022131910937914267337479249126147187149800212654716626286850788124803926410988113871943297491539496189351446427410018655318303625573156604828599516793820203750491675755361252690168510086900924523351770732287710214536048092581320687532625101316545843021741585195981056579794857856804728817234507450299463479666587443236110103340911488544020279878443719132303166915793820894616774961562245448420688666377844366068995189012030760590299638018641818590754392385695738787352981403675016779390711041214849280247631015069428805473270383927883502112054575877814617495771114637678867282962886601460579591453892090621221281296585099817869630160819205353889527056331944537351189287751208532827788959698692544658345370901103358025827704455019492772234542331092212165842204028836898712929634277539925647501853769487133645791043566257326928577531232397972619012269101868348770450828552676443264396355171891308476798305746933326423561688502358204658346880255815494286987809144809949465438973063907504703432346188195832634753864615027327386562371573764158652424754060727400833642497146040949003768112975920491616350688262002738322094730539616219012790635538573934131499258358227276483406605693637640312038347998299191339950226104194090427041012199142054316469143042888160278802641670412706886477841514803547865071198737666680570909331967932533926397811492377944615944831673123821464832886036489081938448361017831673007362445710938051553587741136662187678940352249097070217051017403375035897046806614096660113211446174998802572127839281657874649334896924021158485779037460911912894364673057725123085005034445204540126122956041946580503451126030432694827253838077721915934483465266423675049621069881712323857469656293517338290638765740805103933238053172566622179583790882460027118036774655544589367711979870599611248962055163704357414485524184160016087657497227168442620498938568554883779639223026379213212412993163950991516403368615709373925114331859428829087362960247359386862257304874507419721085223261184795513168595707933307728185053204039153965407172118767587011578629075629037084896181836574497011819521423120250679444925371679843972576040559212773742599127850324747899649527819125241733032458517904310541114562438515370114221190311326399917372513286490399785283522559138190433022980300485168921739122604366022785153855938005431255688398481214577199073727474564316825992618951194357389222468985029703486486793772964340210269120856239157162749478344648612119593648100285311570693480681288578997340974591465827474426377154381243270293575325050192546210808878698785001304198288460023826623211722360886195896272040877269636280830863126120552592186802038575753749494750732735241495474087009518480351026576935576573578154231330069178867567257548128326981017974779029505073113466594614498015832452575525572169308870298905146733182536763958510289066100517140018788277635411167324611445217407261686482120947641258406893831602399327811285855370286875571124776734185028210997690940935842977761014096479772867760542704634050172402056794613899961270098179832661752289072155604032099460710850646893276711030441052032787520250160261369565357927080248513063090525594508680496747243133687007411983830694221501059028090117033942208774232198585272872666758165043050615223476523807606117133483549124864222599994480609805949385097510436188547225312391782136662070011442295936028971119291407642687785378505465276714235091212957586541549103660790952518853750484510493568563703253946537720933814497346039038633919735445192728679199816503500828916615554502076803721193735616258576547233186212874016365491589427356924521302829081202831863415708208044385364609457266097450894962174855005463849423642505421613219350973054855131254619206335222708927712370721318638975377780134777619215181818704281732649824197771402273669804610768055098512268695050152833747319916721416362291728952070545649769309223921515904016141991224489072944920285177585589256954786929278546498511610541622594284536265973807240462880097669112390898090750375588873176751849064046688072154770016952152639183539206953927078400715427627817358528826888924784109600830823921138361421055421922898832489649803992970433392277192265516431402346610704349198946116535867942547370853785330351688300765445780100789523432175761024670995222482943328779920348033026648193655113090657857660498143105058600645410816668773781243506933224399157379680004479470781900825225567835422703839872495592038627144756882737654010708863964447356186673235732990109429757364107453179145497448406332944362789134123802603271727697046603624644568125079437582483272458334384182418492610071933629870767619558996216933746383406233229690903210447836068780856703751174017735031003640941421663635108377163471503255723228285586715569716577546024816826584348170463354581196951951303190391753708348331255493788057040610494232425275568499339300022356520739800521368476720934834109055707444835860710987943990314410418072640406724751802661300854288697157671035378823413729126196720848360417399751737104820844944497793107634200018056281983240394215995139856378706144842895523994105185719594608034531961862910320817182884370792373348156182823434844270052129525181457499520204940397543103762420753066066361299402999328870020993540571639653316591356352490621203305167328623117336605341662573134389251652023977929320345332673785110273499202035153659341896855202218967616596737856438857779390857144229276136931860018614536279044426458634840678861845693830598254190635335115954437959520411516923229666244507306884041165871503174790324984758760446794727400249317253253024690658465170684453425622083794421276539080240892458489237713009922398664615942284682729421271855885871194023709604450776835874639077929015768772582568150771030468931014916150564813339147253220899755424214536418188578190292769805161489772681037356611008280193211981572997129653562909528082075638326222154336111431380128199309843709858959922171319201931483516747114206340684831214694166145025336129666221918610502376244202764536918134214777705640151069274145878820717583877775766109988290700771525282968720973055194263060103060949163036482337637125188778403388208727126888940282559987420667464397415194028978426721188268307066792410651303644148622447617008285161666127852267516407694742944184950432111702826901246014151116895235697348244118208359426457051679237099053642109637325192238319235704845907441731633393231416674134441776596906117187264616708352240830582265523629876776353763021049949354609505065379984529085480896385234330201923298513701226308161616926329345847842313415094000194169420648929965288314565506360959196274823713597381786955009386315492768866216741393880518181226901023444269436740197493170176314888834640573980740362765012218457005225864660395104383298092257345729217351996326961511075739453380920851066206498477239766472997978863388341018134529686425993812341863416196573480478201405264040392397335397499809802958647467639614829724337265130793236739825220265615226364615268088800929515324706841740654900448162039465860302242740567886074365480645479896996618877241182236494868749202611822039759705955562780476035491135563257047800580149130242520701943757452070569303833956470507417102934970555580918809040032076052752248874710078168137881329766393021129234669635561448578008930576544439086109116702018951388664351952100863987093438694635685494938849138465650406487975809980774625719548216661825375164891003421088692585679582892264606622346098857015643337998402268809157249484658604674525516006912937549412052518765398468577689839610123845737624558437154617387213508654653583629492928167754238267168255977247426124169321851094852735554073971297228284705889250893336115705310267153627208371364311477562710109181093497284058750183703105995415783065973010286113600460835314169393584236323831070453784120562108082303580353262750761278628616703142384133812982184394404196862074947669054001187048032200135270596386854668291184326919467694850610054899401061900728106054971605970522559489638264276175404331066814195143453556118148858521663805587199965229631812482055779537823935009394862924879406522081883565848385195621113001281450164634802055293778787855794256816364201122935537452435818507404334828665606126277737931096237399592206356298174515271904773382780749225653211931956589182043595773927606824192421836870737072429950123307295027023668469753629514164620731888774086639528730549852846879769859640536045026181304962863698073982292605135739418307479405489862579141088082847460411892712128959008740558623428063993817249747804010436002937363894734860995769799839766852816213602045625112810699805449755134571560931304007015048440870107697283605177008141471450877818822423360303212090096518068255964265423195751299097044496646637379005159401065362164156384623947718218018821926361419187408906818441479079988024645043790300985271577824832024737267457173045756768368464001712818727389972530397239395630424507552504578467801137505959681379033905862756133622641845565265914466739971492738634645602885740287826278082233281331975950339945476631985989876560369888821034024562584313887713984539470117733121271255371034711685670184105403537721065119387240466657941037409808278687838545155239403003295295926422405598690754079390620236948687422085883404810986371834513007773515760942634308935118448682396316330899801324893272852730947501627382288372751332069955699958188254039508929665525858466265238964860789109730967715284505206686016303633912450646589038938791538340539631340610288403829320660085039069412728211306872494453361308851141623283803369673260263226980685061252006126987411825765632310514595130343379554955222028571211437845614579570164081082075163133891912766901234991746745149822705514553855117779621295540455717453343543778932478013543678105582156311035130251822012184230868171659346958672410926923049622578051403159370554785584336335137103219031105753382185703813023029755116114005303397384080945143850570571892639301764422268472815226661527222964450247570245558242376774768031860549236817978366426657686015256061497830991080819747984990973943402830227843547516820528595055105514871413565775936256363722082364072419106242874080484055850992047989707645385087503293735084273922092613174612845191811826950991301875060468312565506120161984063042711693541352139573089768165425943069300761926377085171468719894281175526469234394779128036447897754333338466186275323620079773539674055161682467235765961163114727820142447295488831014040227381860240340954685729680275311677525697574242077329304151530797209141630435331787545754481359595570914264933430463000416403894947738969372572261633535306306734789685298459334800200871384191298949274735079662716910167398112342942049057454549949400160312443481198368443410620436117948332977235117849118314008956643420630512780662398470065865992635274358657460891541658624203149149209307175370223974215464970025610353849986559719455586886396652398776508545755665850820747473551674496478055725241173837673875242974730949185709960434148317631789910047443587879230216773753516248277828397404244438127306748634588765570830808139829702185927458829177032206332131151746389437628673165444169174970834005908385688391052108824777773278035231544022753708944873620128484220823389901683910534060453962724705298037872196595556822194357527482570909211464259465286655357914928189074138422189652030429555439313350556219051891515740280561246619069173407951060592828253702643019883034415133728591073502477230202389704343333030054174678372624211016687654509009611910009431497909671842193995085562585652604174817197724978001555741340579806708874413287006621707330053554609583047791939958710147406363256875210402027428983138734697499254578766587342408607517762909310508066934493024167559981322117891858883572826148428031469720014048927948557471359518154378107779359457493587979173299652493825084204137055112476524863295719636327009164215175556654176534231022591071428525418002015920149141373490201257766227235497887845263098420841787029314754381596737383208811784143482482967051531391291543187163334780969521473523682461159598223228544272471321515844075491748426407894136285776932659883597751036974546540515348851703316209715589329444643303626573773494994850933812301760306006104281432865407320057339961009978271404066053145675345627782488375039028306211185407688303700211915114336618941154814597206389260505492719187915318111496139016542595307541176522567579840555741445338929695690002977546580160758575300864123173262327533635796220375725822100485066609333288064431131298381582291932652092163051544809456072733414519505676241149132273590116645729443589128885799165861200142040984620105129485915714458489297648776328124885821298705935456239439201771141537657390173991019887791522923507247410995917730141645975893255303534990466949373152698248176993762822896715328979805858168910819380650651908655600070294831177808505438255450399662416166115367866954147646721482559646018899400485973626687942349415302749365888619930286356972815621469226588675210709999180041917361941082991763527086612085321317819765496047034320964061745254561171938550167274209258784894052691308915053739044150169454640042201172330267331602140769773886902031850314097959087821707919531339071650530475396546780072189352594545234281033967622619734710153495831337377048519067872738662071497284849637606338989904769502575613413728555832466682480435029162832711671012413503655207285356147471430199457764404291893948418494567220772276550509874774024307016869887609507846723416087158160423839988397919181277743633183344961697103132065924921281201335899843550137141179560080809544729612368840182675879128784766276412043236497171537637044948496074667842194068856548658939736845573424935631069126344804378206287810594417810119677336538502020518023876580530034132858361677465792048606263424561245747322492983192317958066188607735997021688698445119594234833040103159995169132428449205708286400474683037289446008590158699197890109193000305441030520065985514773615566938704217358124751256108133504133963485565675998786242744126822744248257904747514575565889272784496794983319516005192151386632071348178637541354913276085257727044290747854442803083862171897039143852669419823755616217844561277125463979159841207427983982662100024361074933981963121664452893939074504610896781696803192127043070425951873176400638170189695594421719707716331772800449864803299057812208832315949058676026287243659748776862383888877693910144531710829111029282978514053170199750125913892674065701523018600329947642482105343894413479934006173557643222675368497833978506437688709603356812487652093814315292667975448090489273078981826460566701662548877925152090692491618489717034843062354507550800483961294311291722911175956206619248887259596742987859007315509204004120636892167480911627285158077305271271990148843525413485262759798717724973294404196021457212146299874268433719488994131171975506004536254641831300246665459292712594523692368961381779876900632974731498587325480552229140859994414511228962658446940103754497391560905736937987191546606796069821731295207753010908931624641007470751829158692341998212104561425422836994434612836753534063124667514367195908263286115388232648060150953616272599737765101365920809115190837718699184943674462004158736276017135935273541921652609815671651244940021773074115481684076018189692399777825441512330762808357153495375777284056340915556525043632154730977499201393846197656856865466936984550751379216143380923729395502464312205581006026696235866107418136179656318045820286204737641136322948231545738389513772442020295790437229602301154683319046252304050864701318887132292602495549794496109778801216267107570140576919433053190347347177172114709863110864342753414144467261889065667767477945198748189111473893581524226848805583442329242687293227409363280372849062302321760646050957278644406374736006119745454303576072197843532924612315993091915420691279764010489278481477616404135047023774678874410424355124808068510807333570459630903445715685480013710943736757924319327884169395115325219843902606850444772556864411259236564306807738700630384210342901348074901551136527417210461912603507333403640602667114416155512637381487253593424415747316713151658833289733539363713638544824866488796596425073976711757659226833988756643563175239250607187592879765527166163597746771532882140435361697783911816023725307045826250216399325607632581590065868729967667078969469373749531071074847513251692808719793103515453636516121208318176698393643802081905090728575747978120251321621863421312576784114958782243697739333281893830216052445649721026084879326627416818057536722440226815943497682727767007430713966061892273739699434597710955031723237099401207866007071389674289003085890997396418401688619956344558312248230448342189768053007363343549856931529984503501183258400937554660265944449446502752821034514632586068209308284436538707344513798095687058006577922233445067814853459618479175978623020332956463212662648903391280455484248043556934871050816123437641208700029673971555133180581749980750435915599306283880495243976711256175078298068186510196159831548411044793789672188455561706042383011914696080303352489557015104859605941176334882263005304380113594561717952630156183842036692332660319293388869379020170682874599838027195674510088301993922032334934763071612738132481834512495842819594785447088529265901247854444363818019680855876093708700022198918464767511528006945635189841941367347756993646762156708846674517135102833714838993816114988896221205893049689923921193647446213621373526273167525334094151105626885434871290926307809803815357845095687396434874200423782729719135009729326009297516291924568442568540021981726583966275864267014136970945993009127948822502390105200140203720996715014187891176185890666028296725733774001060922499829816543528899357489911374220661170225756204758880390922078685753344960559526595673518127972492596002983729989724002259523745374178775187558615716280702543205226086797590908680329036734780289694324683542867666277119638346158883819255570761713434921677592792638603452329669819399486104022196869126775907435357732139591688789074227002214769670684914139089784939985183924021152614613347526121258919058019245328946683482628272613231845411797219404613813753507559319691464265678582376853585474273554934035984375007384375109415037363447111386064694788120808512808850653312788645370514890717787534025375801956567659060982361737429897827400248241661770404334969845887601235938374338533358432489351194728762136342397856653065507187363374167727713066296956059566637441396731228203999328269074409380893802343878225246909426883359200061322428247559254103886925437559413509724174765497418414211854285536666359645711670716863979066692082132432694017081723080583138917373589434086091306367013374275948910511232476249457649717302540294588971262785767498040115505597594326086976761420111775023736636035440231457777585603437007574194706547488907308339078964153240951800278396460087774648800042828270673018135389955748782313225386796118277325211462326393571398318984428740452552677675227254310591291448471833606176606061779878432565234299683526816896203671978996561745631291295007790552053402226184792873092138295396487876613301707841091566730681740891980894718194937207658060366281875852548134871498970404676604574869233980388977906000102366005825176540690392186890126971235437403660139508972678209310040402105018599192248551030958286383561604400775953843025808994521365805834232246517189371864089343674227378781237823519889776740398937588833337120981197343964583799025084878324034370169180162855295415578005821501944666697704497234349878497969768585306767807818619707318152326265173409582945192490719259382498826825496010891138418686506968765259860154266425750120291926793517784426537720209212709420288993026489205675574854300532195948079720043074994018257785682331222013493618227415068954678626323757952175566286790185909462000410193940476734554909627163066080465373344213300837829683831719053732465512272722633057551363331414724011034306715011971918167991398194080178402725161135100947033593298979133300537657160269271077048268100964861382606777100315759998272816941139610621258631881964936137198279392127976572491916343856855302080864253690846229683361541666157782740864943206879613494193069692960935392885369509483664780368076100945576764899507639272205100600291559290661906031710616540135755903760288726317099682924109255240077516526802378599310798600771639895867770696490921630876467149247559726480791882717096312932406737744584019941006793543221501159873652798258637241645062238604760208474699353031659127674023810056112465995945206149109857884879092424376011812487876901642412467534060328198195501387374617969872760136195061474966113078623846289435995520332878184469104030393160628678955536574641305235023812994978247829181732893658879956687180340706947187355621137232768214797818131115031858838803933103043161876011576349285563640687251964463242328726476746492551130493625450701169764755249520247858482413102184733801892460619064590145985834268791424098957880844814551209129044215591189665338399437940072670914907084608108112992348772784651555769699041677395059575384625519787204658723035516363944983711344038661879635754510833271250837976346374390875826715571649011061703250661855974473130775793224727076784792659752469690056017517927590543873829685264326320394756379437980476673346529873970621471873713109240036849090872953302829878143392018648373187876165153354742495285792823652319123638581894973308955523171667344643269109626534096719579853654079102849827121242448880599319594412726225351686699354903750472748805203663989965245208455090040875488822055052439263342591805028460455153136837623718792806303762243679133500015527619754715055318626648078298009351310655286473893664056330794736105856449299474627192086899171792651198354613638564450726732521262718856076280933125642558698934900167759997239648025790193992212304701305761045924260798870051541219704744400889660138813864867493197207583313084463756885436098126366968716891977533797070691621783583004836205581353606584370999139202040998657026995086515650603756870723153235201527512314483392277999652636855259954432657650704654355906922338356108427690403331534784415388837822979871726362128507778314322289851346803915655660150376401051582974687441732255700565702313712752354836338082875589860201432942706974296356877743287663746416119202572726650852310191803617079134650674477723417741172781386550200309253961890706062209653401466580221998889397044550218332277139326324736637535431616472088666783326039633877303227150785819708706889012133058923692846584105617113615354370742521081818303879378164199234225864299864390488907020064606468669740558420244812471153392068509851930589880307624560382329000502380253190726499583127673102136505899672626022452452219222480628809348734246198426777901194042635502837892477494167222193747920982860822507791351449402547003636216578855985482050596102858803725063051720263398241627745275737683893355944777880639703188511795259247852835943858684910847978843179201332780075877580974054766643016504968402854877597848303353973628827597157000766088096469499476541994159980740909693786599092751217274436217566054563323255321812494230520080634418835555180906636054726222751173492604251408095182039287666160840604477844770745337676616309857562058123409960664771576985271337591986460371794546250424172783388842375461009816499466241845723673547719874393368850961758257581132947053123791652946037517362111875555209029102712946922935346622399326686241276272014041631014710483353825989767991868570789807441245169473332875928523261711774166315963682575134441953936858066499684821071841388056251585574855309722394246400638335698307146701989965750706705770304674154814594554442724269043230700641572487613340833529393761150942093815556523894144123458588673906638537904558568422279799907535570648632730671977274892299640673422947745193356729731572867506124688849982505817269554267274963824702317789536829164803801096660731455566469238399289147255312474546212502518003854877773295028129127966966236838014490839872358062273289637030554408813117435197165078559984492039088724640761412510108583790333856724975164892098913367018345814652094321279022119030759826762404848588597210749601390193399400883659830137647073020104782592430537199649892592252343130542300770526959185533405479680742969994135519620981404437385704645281883693543247785072480876292314949668729685944923214277419128924323038104856761982065443310496110980011738172961836499415446113316879611068172989757869119224177652372022999159306138586869950294147520801001990430420982609775017959692200074929205355787004109049643940204265816810889248556138034495778065485985922305211883387047529004713703550789025148343644507860614878817682605034202851215538461284197054873708513809914241194366788593920182572673543024662232142345823714535681964186957567705525621890600068712386880949983583789271249310618157154362359911037895072188074746030162893264054081935787941931558985062106066472734431041176990090343581936258930184775909883212871547382343629517886654715046160422984702051281895986651429902830429713415080804427579346814559068025245155550220089810197062678127275555122100568898091941263956075673631586117281269067092862292231507607904483611526286767701816161407842327586738395151722022412627233278441681387594420830069661578869836403854605953857562377890638834525615975659587068568853990828741484590953040437280790461590989097338851896535264813598698904753239554459548717313789234462340040119719760985580197856788486905804415390105591370715748043491990521051995015309974689664419650141676703081524714563515984039770912184490009669249015407927676497217830260946510047838416420860610014214118654765677765111819443010430252488842985015658259217459384605275776357660591313497313534543110275096218778735583905724172802819380926972306808073733999966323591874152213570911377078238528122467380269748712823024189346969652834083243090726646705793921728036095041393473733374449897115027985248356745504937401188922252632016564941609813490122850456052716164785137449235898049867724483996451551258079577214822506198888168754718778685548281184416892566794315852837483259861957414654397053819867201089240930158591914066802440224503544482304955706734570440953110504348664720787766116216997286533718784357226021577130446909378390269598946777066485802346174416518612959602739402384792370734396718082868765316589163371104884308202183071091907130037384993636081403264958771070704622630907054786892180865799593161645954890580427583228380466884864132461181969428038031135429678770357422831534837497641006244082972434878321809747037363203888456106470337876529308603089638895744605437253019601661757759428335987767752967034371167221415554868416273575207634838250611444607677384210669862131878670541396828441257754465476028963935053152260728587378610445470916803268902079530048386058066209527562444900815039086979904568893158496649004672383773886459430836043300913826407808987478643033691776020041476664372140821377362553441167558245876157380811496483167631231236325403462459816983356844744031141183454936869924111361992917816441691331365948225011386152462657050992216031913545864420312895068228629996618901614133575974191539936797547841669428157956809202044149215265000384515938239474996711012449736579614590473339977426232626335128010318442330642181646279960782890042185248738818181126564157599625316865310850366172502349721314178471753267636003082659111197134827902425232964483916126640464067690764444760446179892105618884895272637625885776795710241709286077086020752277494509880274085909347010197813906087065028328325492384980258519028818655773081426153869001723551597686360556716694509484866275880673976908970507862391522452331623088970455101658005081843448451942158116650994884368042994423873520505089326002853450395303664351919080748656400447387702714577365409313341573636768658183834359040839419299895363546960420712608797412564895081223688951799472221662151236662381611325682899261988060725744276898059496832070621518968595723932772455883470418739742806937414064270804623620926490101628404322782435550522466229712423687075524304460984145290885698011333031604704154286910367436066901947229272233536421341556164845683187430033591075643084720923014137398163552983214506825714888961046842781106838651571702244234232901529492753172570963066875397079085349112886848916349518015029582672667149893685569815451808057950868579531336127695876572576074823144652237815402970608747326225925669145917864235663195085606853648398846661321518279758493368161585783365047264074061715951651237133217096006342028881644358230092896665613083773469569324354037842683321818104879208058685357890387001698426391485045801068133211800240875473507386107695551612349700403374385470454540604986976875053150948153479230221040733236253162314740451865865902075918440072690600576799925309222026139479691644572276961217323332833032828913686544521145146232091992433731061545794561519533584062578225574735569020756614919649364107464132425057102374312638328241415180351919316094197863855361039587575047396728315385400678275785502667122493634468149744910453601048762858635304227328007310626614630812058875318293401921091981518579490384757759437012779686997460160132526149536455630019172763031449799160936974373287418720986124997927252226907122146042801744915965872316796386368935496984980102963309818914889752157722505972965166080334491028796800177985527295390426961206087516176697636072646919647148707538225850132591439569395583285737426502635052715570212930749806550548850204837084740140098274319577004105306733921482941067254481575669928018928868091587932010626293667073609428768659148621562748885196434931066035910475103939645722225327550141711355399301586755759256150605682293173523593624439788766594159783312286393827765578778965427249165962263672036139095290176820252134199717954103970850560386143836674959403262450393312055426272324281391473147222971247951256810618720735621631837297434053011473835372054251908842645431126743629825890387066584914763205056288970588856904621191094871523860515810777638452500169525437903697473310069444078837388087630627348934021312524867574953779371118678091075553594072976371790263800610503406597589029963055496711410888225726877255063640935688412871279483130553177917464096064025050488412100309939671541657140635781001649142385060240211547296139393840950413803082931060633349860110240707944870009025768449016422486144471303181558250453061012365542455122569912326950641768739701563013466808598364773415849873950019842620800776371711675114273758011438254724072065687599086425987692246133359540102754758314123294401171140565653114077288155382331376832990263228913526210415373320149236790438526601964791269304519069050240946386046427808562486750716547980102324035658866509253208597574198470989288058361398091275216310094120606210142365230703547927421915753666814170363370634021786252518111502496084013534235961394361875844519767264068667359152464990786029558246029942376211746817209905062762004375254654290673636167054815395547319083931263836759445104302295779036276827389584787879381146710130075871115687166916725398301966634336123309057487203671563951736163332244454605950743695208293159104372217427383805958400072617489964181805842554623128507604762742472367419925006389036130999158308041984497859207490890042627685897924055901394661564538954609633492354671940402144629807100492488185930651970517673298973308247984050496869290523236862295267816240425757203895422345687353525456309256266566941380741141657173434550706652362143493427700695152782983521132699421751812812500062433605964692413177432556082176011547381652563638014589074971748769022501500924313114674974945438050042066719860647073394780748011975610516701834898908394499278530906933473466865558638497962493177865676804691662377810301187806480414677095954606062120572940958278312480079226420347615514125440241923121469359486668482882614220709729637121556947694324985431391573815574367633232078036366774949033611519044250974303294472521578091118520604797228513664516077598926835381805517325404039411924461988174540941258422591489689562914252699123155907659859806427054801709510375014034433280501960652655605962440717571880442246123322927511754084185071220510094467085656349805551433590852247320800789923727860879946414808811666491433670808946707381092229792784016006157379726743956061347518894237876550760579418411537336417962448681412514895659432797423386544971916370250245710695415613706484917856230504194572216535894529725645057785116590824196448139925029204864706594520512174176610349097295529940898939899359913137350947637912499126971716182776519314472973817762260982062369106321518599505790444961685756903744938644438170112498342171343255344358698169657423901571319177115020602158488982344872993305218056931306976837097667624662672325793874276160569871267694231989262218992331069260260482342729913696477310458535037300269423108662465581259945816853611361428011494671787050667561376451916284819971699274453319798096957188713121433750741028112183481983951333078655360821533349008342215999807023761422156666846887742426062122218787371303370388013875500771774157478018124651396015476877802237719651819808743456282338589152470967181534260561203959612112023328676712440287856739963428620497337318515643344089131250117489913165744339391926007201610146616856476900270951223593960374912363785731647978574159669554928758450049040952253917204034539489509406385624698065566308295004042908998954784416823297386733543580609000027635084294782603479461929797317431020141027446831734820278481627301919090481947524428568752473012066792335855566413085803875822061678202183368676875135182713166175240715142614452721603905299684586179426268563600291128093796332126088021566547082767964520975136738146894226792058146820651678863204439239674359500442349537337197838029181190213948638305006491612962068898534162090858517832868455460740998380637368502018681916627331108370931651312139920851249428266916538998741090596588528697352951964453785927910733027478925297333487367248872597617579855591834603813530358830936170262060263490062827813126885579387923553761337515092120775002735925621305837485061634103398782550904599668148158251767903108469971053559229379519083670978572205758790172134041390966608483376272192497312447637686355841336625826162796085440909999892000153732444387144712931637327886728542550214647947630183250823752262438977380415863360822239894944947321454174742268592600660861026215586939979300074146116615164079415219007954462406342962493782258964184692561115396452232647903292946398963515326449475040424122592533092205329022010653561923853327771612507195457623823268644090170162257655681061340133994949181114926454356446522785889121929756119356176143361876924255449308538051793414233124751199358727804199303984266375752745361336324862735386707175108968837417558698228281008323915929901684205266274871628846779295212029360421388401368838303506495689814877189886173068799960665491583570989237443849533990906350023369348343694325879642690893627568948085475669889181470932635829712588762680681498045813875741746424042083977270697822353787880934702677690553235112438838484723158672528418650364822623073041138009049925516873736642910742279315084181365311594656162165280972403602229860608539308086037953429607499108082005031180671585054681416166203361475622253039006234692673769647689736098733821825705920974853165303667027631622327933155409287727795078198758826220139782745668794105544197851618192751749268815664324065183997482690524358200430956416412429740122218762230022496619261489161029604427884446123950080008582487304997817699640384059623818862627438197789561409000897504812136947596167321943542955088403859923569223591049432230402827729346263423782210677178054861461034781038676746250455207828736191821260267588878656863179019146384336541155313569903941854324893845689962939796118356362442778806501388689668055077568326412856822258266439257264301575767207462209758192982280139974524065026599653193796007790129177518171106487115478434422478890481493829121954080885020013066031984353571033169883023419639613249046493165190718659186630595839253697185745349320614408589640635017363948859644406176081954659291061525596611020091474261723338617833071316141864699239827088497193475681918970844118126191506903130190270931604579774591965173620958047845343025323248117634848557819087530757597763792487081924194035981088394610226401998625174714464086777191211729723775353915538893381013226720057522536491836640536271460025879178521737082699617139770205571057927218257805779365474197914937282900003218483704887770770246341221120475294737226088630048610636578862803766871576329375576014286623687226783965480961030504750113024901520305711828760114159732054586716454815593258903378231434908519555093592065174769718134825459093435990935238776532805284107085428033653527552575503102284163594053351449290632591438457291827873247897349116200987455863656767095431343278494620897182457487018756028719546720410916991364967535529955528321240575707423393511561587008396636320584424492759800585050022424963871717125578459483894829263007232921073618840395823439925527688324717142559373677301655437646897724875932908426031641066019015069773960776678880249131683258936442691724559224752601917112473470711386143852865846717559701860441709037299435962942145015695871389289713428355604994130507308675184828309372660320067743507453378236363215566376858739782865188774103753301020284330179499320083733606063627100992719263082969298022795125129816237450999065939259192418904095483091162193126775954158748243588329673699881629241972799570142809463676678878913808292112134305390858350694162741058370923605031618350448855202450306301242616215591679077318124600481172804770949203457994043027516068126235246264845554033614336125448555500109713046116512668983306362865024503877655154173637861999845672342664912030527053429370859654469923017226380469371204451980195857033780155415369275494568575383501065676492322020794461032825939620914618059865604898503184859058178573346524989541225164908645580299140516039579940856250688958180922081549092884901811970824989557283488523142093417880000802052749268676704108170516509374816332736858861456847162636942137150685826507732709616686543692021104117542018112758431418417079000690114661468925564180698130451642567131718676194949429017965785679883743549104406843163953181157064150828943154513590853998579963463508972535989987984952129348524913620171103395549744537746901912453347410801952357676341489920247676938743947585027533274694186051513503049094110644742678779170750365577472243983824754454436560314569006822600978301606671717177972901558619280703883248471075733487535135094108994105988980696012425696006845342439462237233601999346128467311326177440398583895714585574513258021474491741799256843799909316476306132806352858082486041248840316972890650197287836258821079236116263837697020041341621379697824437202303054853854671940404366233093738447285895097381223785348332292646977710826427778075500499077433297098045184989532582078284014263161166520588797491136914468356593039571112154933990455650964938138063695998285296268340652607287533334717709835415030645383241042840927863725548750501865165150408559747109577326335446936561594736640493110818541489041800635225009158609023151852746827203138105476052662895625392165354528574010830971820522266979730285334432184963937233241394506548811454460505149283119646272098188501801646301246067257631761486341533015672656211024592628181777600353372183941788240927071626208480714379469975620834587142529981410621849885165627733560791721090417684200131533471436950655787228720397778814979403530007805852139214358177496751129512079578762548946873966914709757973610293595214722445557267192393423284421736471376135236571371442772021810042927025855137655570305586524621864022373363546519223742776490090119833375754338501201643859497118802776854110134626252493510207951381428984249572676309969010370347630716289908081690246771416719112611002125470146922823859519849330858417960877118447316355620000476233319816682478769058270601677969708907001229151305076796707141368975140753863999853763547236632914601640931161038186220402741599649346703376976533155019019949205397206854871287987200085427145461716342472659266090926535028027328542223946462085223951604529879498958469390693382900683904577143667727186441058042696161217478037521077804088645882916270214035567687603140314406606168344481491714376232454030464975180533058194301871027440058659714696112594142067158151405492484016111132521675365636730589813862424792581055589176128125188699585949409463223300934670509975423751423861046867116759001859584707813444885388229801217083414526979790927645974827370832905574037094549572632949444086917710897672964304493552274606952272596632278186498917615832507080120425317172890235543181892193280610126531339855947082752786008231383897957167463065230649807180968776494947754869566369754378231218540723147550202875552428169522077292929369011907903484235463907609390929373426654187112183855044584556913057049565034905381106228369583376900398308015283506042119885574964626700401647912336928834332442988516837451358246437857407701926497724967771642284010358500016839565364208875279691708633607121020261974026174764900490745716627202796115448109148475895187946489610089406884571943036799521551637121283227904095079108415733956828239920339056066985121255383378696337912798735877784169264889128969849814331784263531271635828431839001777382053076665289909475216175176556377218191707943091818196352118018365492684806242419194603049718954327087545953577926211229784560400723123452259302448778194462717194028621770688842133324872202229006819348313185295059572421711294524459654733509707091566523383219329567296161817174077257920986610267070680265293098274164315843733049595866276720145713977647116170190216072128440038216201719292635898771897323550273453177297055197261582856300896743262518718012123797419935160907136239350558675370790275279898267412242710230863917816464388758400711880164261793005789620005197891198963843570059522589992387905452785770799033394212028616908156394385964263670173500240673443023775318503307585009761329147635689852676160508898335272066352262642893383531054055736555542325394823973286155585246198476853836551859671880684312000629769082277633586828442235342336830522358450189784136422867187418954325538108696290014776510120765538989756668868397649355450023931523052103858991428313509815842683220016406232175890875337290361088933436444788697585820266645200208146558588945000172943338912964938572764967559747828515897726468295142938122747933630210936493187367211231468732071375310404173206529683778809856616471684164195495972334143473761345669799049097114974385877636582536756685152673659562596733416710823307959694615911437772109117845283287595750447703359643517230528322665064724902516388751409462775187658954722310124689634897836193288313884480270290552792544294114113846569846962313490566597225595696696452809221258313592556695260368647198112160594877135482897381219397774308845230117556829790847500467433602459727261677154780071097295702939584296912234302519545868925129755379667273062410541699523637347655663642935672724825672225923030627720263014900105634456610971443859789909825014902624921005570189815256028481168858248197914138462998632177598764870537252146041913998101183965460810651513979050240936867498646202448540944895141655411682833608324863554039371600234447856005851811986715439524233029588780836525907082981369776198683960115767853871697800322731688664938281341989478907680956390212656263203944406520792462117850898448878231376632411745307145006535405436033545209727707459859056092072442517217953521518455541594360289720929919355638685279531143442561635411464088955207832519193413017126769526577773362079079811923898713401078565082446828987947889534389883778583464704981667185167245502352852685052639827572388069207264885146630680441328244560337588194323050407590425285229530408003208294488934670188897865462901654153458770661997364420767187505485098546730240724863100062045818211228226479228012392883351317654471964785001331868130522754466684835288307936308597743947528823850467573221610302954781702539368506520165798770819287728657329133543815136448373653911801824041977925472415042663857348738513698318697327617140375128212837198189424710548937650507750906116997969833630403387082685710854945509558531029815870141746132088696093708644605412741713489920529166260365121044871665103222337890865100413434723787565937185965273836714494381963811523898131094876658161552670063429087442260051330010422078270621148771956808844659108513965414190200482007823437442026850156204087103394256174562543534239522955301395754711842510240113602688820789962415999626345562335335183208879250547738394237451195115629183053238464264672505950146814080667337525761271706760728722896707403969398395283361839146087311462892111649419439845693990536418659058369740633884281560869355714412832393400635530868289648335061059964102592657737181473123822955127375808775002252565071837358765145480857177878458353106538338015189830233724562446843544528052271955131480119447109183656350394255570382186674254189249388869900074104306806037309734237959459938699411732712910016655947212808219531847645423609211000696056527539687587899914726251982807123392896807006123958294018470919803865305118991919070983408715544489426587162442427984008835695834837841208434948375587136083576596863603334730058429389646209029543831220521511512608631176546377378005861733894939352318132455818443099688776005008564071871063837717898296658097450295996112879922607022706945938908530617679329184604130073074208240613309334718307809743758746713817535410034838076658504645963346224563883169471248995197557388404123617019741384052075730723452865921448338759058317071765215318584127790830904447008953322575656360972610742942668770678638912798766928399334869189925978354137615639154832217686299966439035734475163459470968975535024914825972115759492430385713235072783821911904784687917684734029714750406962025972393232443403177467270191752576553109903530790724274038047184137135086194133693886211336570643644542054571680874228684344956820587470850012055170815044040927885562028811099164762159379182025338198189695364564591094291722950240528916133319738591536155298137992308113021350164207349642568148413890408614200840901071986020091809622753217363760599661496390512203540220214834121965708623446301822745738667877279232011127674196756128938399186471601060436098566590482376065583570129360751491996240368853291307528440687426282549518706818650737968149292889437067721108851285760764978473265792075831958146028064332884699760641787558363397397503491925230768097041807587102837130721814373132019880102046541561867723346229362905476884822368077112646162483220557202959474149733537155330252734986386288894571033539391579778782482143522428420474494165204155114562079474587608441845052957911739118813820789098620045726886987311026795179650001309273560226487737937099053024938545383102198824403334664609812043443636357807714056546110243708576080251354295177714525687919742707987234323825510787679387777054848750682169574507928425031945596516645025939406515998432208005588871245164548627898227907729855693036105734511870367067956600530946471353190782060284433786654834231757291569680396871806431500473507370793531864801991216463965599889923355809688789087045662479986678159862769701375320731360683212193136884484799236093960167854663833899085065417953649402139738717777501715840247792779941126861128098730938992025072367947385297538966183706825834229206328044384348872263329889544970453213887944084349260519165476012439961796702222598345542338469982808346836169627673789430261086534799244591021310189156628838097001145482009679151401860162338103634110957553645807197647488029528818494892538825485279603483645512759796668517779005476850120663607646663768531541218178747151439422295420340346850873082277276607010613496014850266564188169129029962073709745751116930253929377191172728709019017167495303824239578234538505243887220238870020499145775622227481352007197097721853524753100447052663155117633112049450129057147889382224875571027572065158105304717026728675838497884553866803177900683666563448805601574835931852562047746951243693283217877319528759838616051842264240256153097399280993231953470719887679700949654599713190417342329032424992017159418504330954150591688477939061796748269741536764719223823066107691675137040784905439366482779851569327245121593143934811932960272854968651695320560342598603855343692288417227775949225714753621011986881173819675219964088975288943953836394459867390875251385039597116877432401502785378707349965928063088321432129793841639184006692926258988126669281733540305601747007443997012507109434820895963481354515527552003459130075814900828506290641378018411054366042563723988690416314402533525739881195630113931260998770903804313630298685745549224311027709510274430119386795342684309566515754152777985690293995573081717343762486338392881754542167222495898015435105385142157528888943506229074666314125149348469292446187319427251938702433353393897190064217328046240356226057485676180515089220366025408141524593155184285856261066680824014445391779864219746624325956264991845932506942265458233606933393154954413631883920613300595513110407209279947217413582941513195973228627613211593601221185927942955275507511025628585947997894100413001519308715623189524602818390733180458889905627849597180080589783431806914330808077574425353258042635312616211229129471006358001008708083992782331685365501638241914858607940022682465413611648687167448813210831096316935827217228850326170074322148708519158196909497695242003465069949049563910334605419601583798612136892866028240728362040118993566242250664827062158901834750811937201620981168112232136794662239926684277130480201348005957178973093889089718728372306677228930368476952740672243921043641923325488719340170296502793426010702985727221590690815587391127801348796141320784494395972668768650955381318712660647182005173373745475562980256836310864718136382252606414910689309924823111810114048419202969875957703594557120567401422621402369150868440684569415593378617936072348776806362782593299300359051780412530962146260793427414628920218362230957153319842235528541802678192895751283381637043695821546286097608685079668769570391439341630850614766309701562375950621187556135085446047993963942492551250085363749648483546726979455617623049321010755615027675195885483872697800012210461466149364847046398607883169338051979437578381985769734987852442997657445388664850104647653846970494363140926728912219184382223518856165933974637983085592441399633910261582185384166978035949717376007019981955340977943495280512269765197414386569254859253722352786610783168516543439304358046225969876374576823529812655451966896959955111172584919654818614387492683264170881768476199301867498851075886540151496526494911981910670360973927981837673025557221751646798109282012978416136921988275867593230366368060533428645787838067534417713873162457250422903923298259935381372784194516834045055521120120992182144288459714833744001979037553099672861195565157269530396377723598940778902475347627962783217373333030208669006925308772491761645408678010770739512320284658075763662861134079217662508658062366459480530168628536781790754695224413101345837328238080563906743733952525926914503412761549105632865541635000333958502328790840128438250126069694944401895586789393142988109951805889927877730016602412690438191000379513847617345028336301865708165229739506539430611284774516900465526391640649804823791745632785871075135788474545605405239071873649719184622911476866100698708835984033098108250345371755454037080796247506011400645482295803019469218136944905693382985918301640666252001844850037318746232505722030712228915834370837469355482719446653685702190949827335727834934167542132161947766325739322100885497892479219699734873480808181746799197834515832088845182780433386354758929648076928320629228444693102210030328538338488689841914838978341711152272376758594692907907694793100818925276390837298771711303087798492123608606283232509681002156334564938673978501186380455743124690160361760903637508234784940170721501826251140667606002439878461128783693777132365942435855868246159664672214803601407792761398122566949528012205866601621118657593906631521298532165648821327502955280039961770801512203372385119904186399993619366105430985195544270793323851581744173096599014695229939760536275416239578715619084044822221798241471047051150249894147374800723383393159654240205069781669749809283183759481799761111166532583624873915443030165374655845173565355400510910601573392408307645016406513634458241979220883712638171325372128034298701249134144943152977577981739249322550905982758396609170958319054012417107878832294598316644475891688990405270994973871219291676335795364340271741139291997154216789984252553012775986219916477742137160440775349039300645399209696162799793616559004646229443553752951630281199084829529415898013536382627111865722605014826384231703767192274652402278953363255740230794027766857589934662904177614703327341801774564442310844420477065758358534738413497091912235462804487477860724050391550675288692041630560205565564116731765698717967344135270811532360464815854079417998897810567021624346720319853104792882732136875322494993881206958035889098858651289616984226674706946033556273323475786339711832652925362271983844925871476825547506358439757736158235347852485104117573937546596856400488803915778417876358632959590680873427870056732482465203393251503018983197861694317922988618819515573272828223100962923995129013786607482905339191135921329564196744618514059957126584987692838227988122536533045917951556639753802235666328286931064742283822652911684518370150514949891924223434294548020972186203177372288826904394949006689166816299440509537254308575313222504801704628099548294947375777534741715552020835219184889376891428928084202347653988245570963333122817039358824681310522641942492717116429332919152430526260408324776342229712371437788190725839797384984087570696816364541607402180382570105293254130069849795928740638361897483029746949546944462620979382892516502850061731240377124603362106137285043134307009878994494617457084612999406620858193680134210222297427590847950790920291744310152839512176572010075446982736801755775569960120964711896906345401914471704164726840206355760821107544355201377974903774567420945839186758850384011401282438804856993923295672384418553587196632460823029947975856048747592306762283576019593975848168606693684491833044645301142030427623268131519108885416189874836402278096675745228544658117200443035413075447952534792511919968938072496181984221688156200677647322901214057704862724655364522448592616034079303886418266328184073446035221417806223378721372584370417501628866907500101947621875573593104836041295432259074664980817926686709608472926433883086428721558185600994028777678562603477976871589771712723272972547918145514527243211869743087699582221223800137531154693016854229179486125187756321235647322337202445632455527692947604013430423946286807813266940551368807401189537150864176828288602828995729534968862032949544969924060639925532658273191056814279691401713554430678228352755629515338291835880241186676373871434935569655788552471871807161082875746073237950528977915029617715258018964809316652687049048849494117070917162114529258329331342521317740157230808449001924433758915880440554352133000464239548588480595334533457757143994610531519414609980438356096260737513432420906159583138261995933534012830924065777244843480467934443275888314446928251074084760206065172442932322128443651681449813245634801643099952364383288282591812465925620145338569732234896966148474117565492095025803651846633624378936420974449361948897084231151854774417015575210969659174070658058443838208982798396722000526998218636656400510806113298359848306999003205647564041520182872476516855834079804053098077420865114654867877473783056858889894049600368093343027079865570566553025463375047347275491872827452717342309887378502756830531704057247731044945913171803577157923584025743058632424673800841505521138476346824267682431456955131721820836630913408462988109645964318241850788341933509969512525230388126993499804330248747738971810524485786260441187524029931616188339295291779015920601155242406832081814937040104899840627948957624353746032361592691451910446111936787080132127033841195246990207014313734119225514746595234194836171365018444638269372350266963915685026405713013609401121510472760275034348458616755922621978410351524692988971236661702631706456548311002418021115980682906218950541412273470804452446466781909569788520354034613347496644021033487133672320036992020700418650392181513529520882565133232579268914832684478409102664422676088175135182611390194648273834820853275482357907357846221335075547631784142902290888605001148114582939019936236423895322520290214906402436871580509300375142257674430743289969760608993946526446400082957260108131853401339584072066273545657625218327458160909685361544328664485339591238072313751740912504993877653680803356221439804623830047249383119791440470681474725530157411377422216478303703864251403509124448188503213049486796972551977360602532021325477104871418584867739398851814973444818468867414635228818961876745967121453347912440770397988053298579531525064475195181986055661342274859074244124948818887036584259995932895791019849759064871544446981144686069631118669515670568089583122123813920278996382126413618085244546471816776892484073908160884019838562456754169464586417842445899993026562243011449568949220993771374127092549529199102446747578553243143644819730956445368411011796310038386664824259465993333474096052204519309611025518010274041042547790678421179816528977599570197350619267357373628123168167822560630091035739254813683763566617611221492761007713396858454342032055434266671641348687956549800635097355742599067527123452259024389077056837658133640980649876692132400873659105251061860810594753262781923476932700272588905977206652707099557440397267879278817180827258950118648467723509341345056649920913199962236684792967229899056969140037498949054475455664635112494666439896281736189130943658122622747831060253611779976979316859925671870449340834857620449074290444357203031255247755293682377373345797357264147589083498984192053060954565704282883573843070309189422735296137209085314754900958983633746686385438331296526919726384449323715144424227844918252749696449678524346295619618249189505370603850378728347469042242359708195485761556485700519972708514778634912604230503330821325544462299589994843442800684788608551475612040601407014448843909221451344362317900023491340142792700707317267103829919281797563364360551368991519738160923241368964085989217368303338598828034270519356733785023567781167084719737788648019747057233061186674350027077157247715601592792754521876017076666765112992381661092095051793008092586545320850522912189571442420794446016000849873526508302916097914736574603722536902329865127299223178017717613720291897249727508166571958436304937535764724783516719622493883643842607054259203501850502740739100788297596769860954381850230816234271744128045624766707809355506756754067854149782498683735154134340611330643269465613883523800918777460197151660972856965804785626629733404574982992377056390369050680120190760239580360647806769603869810346896187916132535910661419709226609935992372024199636721701549271751081751324691318615303415487058315827162399784937729206573181463938672012948598777275703466910400474901762474978783739960776213951654442082706176333073271051383990262973091833798243282657235582601005166452514321932558570121990856776575163631644670216079539036728180819637562486542551613703286427374472565957453781555202353010928002037435720959836500531446536855343786240220729303016433198238485678431919502640926729237920321535530538126930110095826863613205100635511775697558546635369225885463910157356173967339364356238414020579967066035578570679257238058072406163985036744350693722231861384133272120862112190792836018189810418857150857619240608439829281996549907398193541625301045753096140113828486935395960102169678122338456279320156845960885979677449276935151130798859357388970136635940431516181511474790447405268243070144867823657179757459771902425545820672908277443498531966530072900609089447807307120877345622472364854800712778925233959885761308103573833292286215904227714224784868167229353797766658979677801765450242858400080860706854568111161573923366185749440420788888155683247825127940129278162763014908169399467017180234359221661287156856437214732576673196964261416834398213836522415385008082829734214713156720500479604427748258175063438957954044448161361379883378758560496108584500053055833372882664748333362038333913931415859064593133869694952595607479761597779746559506252357054131418249474832891539448561320403645178386852395983222281688875518867372052748088286192853817200378371089419687671399236932683786480898032596403040232573711458431093472559723298099237599972283528420625322730887070059006395430234001219038329033203640222723395172509027549935269761366307963677866253428066722667951632216810280019355538672880259298151789085089391718972423252686267040596278909610513206623273871551854886961379948490080933613676718988150358373311530816519810522154358883508256578051025571993805633866882361984100248681151059219055314512325300991744370590009255069741062966628949491797513011792535329997562865840446234320084106591211164285084325508081781619865673888801374962681781635894523834881069744534958619467098683720922279341620724490323181456794886249149996292746335057253037050833614245084495748434021281567914060255717789950635370691752987158590499426656226004225900764884402008226870913863162705306446917331512814682721301447565111163979356086773162925648817035127933850468641813614068246998663958286803002396795672081851790548063734299439900213927336493371456610230873611848518738538890419725036858907047037028576648958742121300466938428001702627581751693530231123205195983704766080425316502606624513635533550033325524079967920928727002147728914459560014939918447428056451689299408365363634114236105379765545119302258190124603162261641311330494669751570437737506363489827341380134043307736773293696212719276666599525806460355338790262354846028167281932566459981944447473158873710035172797159884878423785622730418314738631690546030867871363494908049485952495015771843393976064429103586954288545652399673801134248584466186847959228693847159409151522553103953672531893213400991367014677505811940765420830411094687977496004137236551653940758086955370665172670590986059003657228511648530662100931882856098935524959821329755053396416243268928230210113222802650346561843884933499811698806560663668778974475026095370571190989786365847060912020633775518361079123137772133603196410719114106512600537524230411648117778436945981788483134570606887378681398841685299380064932571635774432591321021930188070742995342625744494365391824352383502792671850168461736442114081630164859165792823591933556410176597497860174438403435926210409109186771193802720694330331020968878589406362624213793475282073509005226587698288266363714014385303549648031808423660902430472925018470244197040155339150073851621512516382969029735311437077587564635466690553067215990800524805412254069459216564365580853326726515482556407304554018175670318099822070180538042592657645472376763001261772832221221454537599453856803239004765001617279746979381538228485011999049783519633982613781672033952931475647127363818709607878559696365518502276609697189860368436025643746194719623141339968612940403707213192704112594067115480062853445261797710242301296713380098003754538539600094875129075142651888281226039014301667888211188152040855760124988050040762846395737532941346557828033004711896343367631210195561245614938338928839817803946120117255640319088912385502236325336578017325678387968486599276035569376073906151898576389293316744136343565359593866776305509851355530645625432991212092936455307342886927182738707010849244409276517411475659821011885974274753790445172082835396841559164296108132519240932608558419067124480783579413830590055767385344362356073211913464560306614296506395238414273807490027266531133459872040678952876136579537060664945759928756262583163175180662707106432647278353746871652954981569313140006407269634527704045706428174379631762568011311490772716597337886162942070653985344736815078416034049097422380690213710185023347617837334185398210824943441280297389515613125471068720262247837219658686493278627275834090978617897243353680300935571519622904170191398999512053478754414227211573908263236628320680646467960414867483783935030005324264789788457699642290954877379164820341446128788329161057533661255693644106106791984221244958961026121771771528427735122331134198164676802933609716606113801901242562080721862994600201272845801149359063479518613851760953206010889236584741090559312408362424340979118517468131315179786641090823918868188602180839925581672740860389738448359385019675656684028448462887242540137340699052519086732846339196585838544241120141981214480519417301424100614511547768504025538350906338484819099535660456048246853432270513970611907171818976078592752155023468353308084161459120272589109599370595936847454141774646952367624805007501886306928590942067417722094939635596967763961065436241425200900102308760115045739340434921540342909942306231839148894450166288662054189333869250432164027372949784794743398252478684506609170315152312878811120779110478083972605160178560006850933303742782446200514007615336461958878606462456375121286463109536342713232973237016533504411443164523329948968054616948530707634008910780269619034955108396733662342390041391302909802092430750700015050584165016300135003625089902550527617545717610773715775138004846944588005926508216720022440636703307674471310975435202762725580227779232071401863314191088088701989413992414131164097095239842792148463133388981062896366960958036124040149715983053250784054765540303195791245138370130666618452066815765570979073358264842467029918341185024184363649583539985794853213806034257973036257974465587615041129461115946048935228963751396596506722050057442219961270470827473315458620756958794900000155883156380056022056000873126078096232674218459240338826395541465491575331981748151745270371493101861830567792560099181396233771154688948840826182873582889758794348687607138765784524209952671170319259569148440556141700249635630644567105279874088842490242710108504346260953853459245574508826917360533056727565857446582273118522324544258490875579106852329041730381441768735281057319047737125100365086909061863528497589758781128930301559510636962330265117001686809874326092104849091231082647915674855521119637134925804627928666034977619879126682189504494700326231624513106297098318838135408809166004062105824743551588085341488287952190341437025144720200437283748274480346584147251805643146325535216908591780041440866681757300684112358127602952899596106802192565528255183830269464062954550245084268464823965854937598121498616815673658171220625091636446541905232761177343380801798080532015505332418884033101730568318253279664715104461304033010555236644842860832816042534262445304123063835523882003966132576701314017743160664631626737010452151636244024944750424143320507270493999602078598038744950540009007707699863397231164667238819324537313244398128358943227069181075753954592441118788395258305183261196011349637576458436856061206390519097915607969629806158760628961820261310085568908778345502402687284660471393065973484265325307666720025356528700236729219187803636828863072986163869596353330745369712693410102565403587026113612914392088160257938517287423865933930584174770176688613504514072776291952641307308221621982949862370671738191533722562900056796716326822958746317583063461773529651115407896026680851097208331237997400656756070915468996737684059701376312263124200499430880112074310123320934674957879367832180272950570617475065510401457757608341290313274345424768922718537501857406361971750404163036334669590908219215401629361870811191591755485926635833555114012758562056605905755184238602221158555632430199562627975678923179672547557580302151839782137742672069277568991262914842990960643896091440202861173707541850470757147573383719465195571771632681243555942700652720109260856310419970192943545201222953809133618738751084998956228709684742332457661533108387827516569004358000418594441759759027018112282653119301795688363948806709184862640010011933208067513131005962607261702657861940544745566310695632974015994877509069462666899168957001951896546138465851177873819235870195034614522238505234972369079263030950578689872712658030993200748047207089585935696683696649431398577993136410901516763814672251504198024233824850188124482449853408250595208843258876051736751673404920472360236349072301991653103565394182453393935696701208176717597299638603886432403447088726033693163611802041264854244719256431573859343468406007642686689448231993159634775005088322506893663108299263513545315158125423846144093069439215211527886118041125991315994389196963736837112088426730485341505961936801301208675690959896018526224485991494425364737414959196719237047293799413685439250116526616853757458967962805668071061662772282056761698876407317297042966084361032386281097310959485999887253172626540656803706564038337406909859441190589473024588770526308882135991285606284136414123271835233612324763955007731136812832152583656871022332273828709509069330013510763546086298115998682849057484092908758508784866175503577149453376481591254030608578817347783141404377078709293450519030452449828763212738017006641588934721975515389640726803068728934797157771779350324659265665315646682532163867069547142465167140163567213013125818478650900015354597483335977377373008123141387916601149714598318551331746207543558963284156537574584113858278965304984296803385385541350068034154600936109373951034362418719301279625904535314524795538574320325418021048872611595554829871518654628857429617343337739199148072834882325956243723498764589647380854293569826378114245991679782724305725332863864136515404459974583706608198109848067988064852329154604175073716910934457871518577974090822130855121832446600479574803539703868941472571456370626512863737586867207757434289175829898285819609875997766393044160012410101348556799714095946620168542047296083024465672861066578820578684141985028874261542872932122257416481214435771701001945493276959113947137248518264713245223761019861347384754017761856521457564831420756929962634588859562344944054897880466626606397702742567379217725111189797320046038888746351768412748407390784183285168967686126048299423635999694751348616757785035435526405325297566749912030908607797198452745721278511962351397516230426924522034717620853112766660866217997995236675770520425689705111951016897693343191805791688845810569675853502024569501600563650954366046427213707075856327131679377664009583742176481186375685216847207194624099954416324624208230727038702949897036283539978535974679173785996981698129332858190405419774063711597838507885598200723582499148547559178786506042189757890085828483455195445581665779387582383484313244932907558990422803618644344661468156357503570868648346484941896502658532627884709248087757352435086087192265092272707157287531735255965811558607062586232816920631132610707776703805609218395332980464728615465097353577829179795521661492922164150108997096120405146652929042646058492808813192661762204314532808526391220797607662781971617416263575793641065514521039551940649589348265773360220547227293619248111858806308696643025544130528338106228556694971976574282967422919591161255866990208360605032791315056909178282292105846612276610945160348294154737305050218348784541688063692271888027627788440029094539377770443873417346047138053720318501112099975441447117859579178304874191551739962767271453311230326845276019862991176508483196229782959714303849760826045462518623762979787361506162864037559934572917893539265195272335976378538460415878296823073926309321852756894039637005856593664838833533865082505545512766915340080827157167949539199672224260335439436347438628780363805307848182745493535758337994809463076372987899735623054715823107009462963620579172060134460276774783186336029977518636349199062077193403559688580228151715045220707581557199912062294684825688751906673243575684586207241160990242330118241259462785167957054846926641577890438448433255945826694193614097333188236942830678927326048305592477443213391395725681098884789567340080743279166571599561241052041076960045756976259004399675765701344579874187798088913697632435761310016308249128791624832521093323118191427466972485733864507673566868105337291035879890830284214520835824496119311232685282604633702427117878596416030190113076866724994851219396802036311438217478551452004021084656508696146371070508310747674294785349559802050930420883244243246027909715885698763677511470056738480367861451169267073616356134249016768320647492021446447880433151083525161733341337376347505337826374666864371568911158792434883755200795147238464778462312913650637232589977870905662650188768276847829315066117846676898127758517309055155482394333752060404872409825428828924404514060751718382300744578688332971597923220812615655784591147383106681954132362573405129868518142113110640090432027053025717380172955921238951442295096937400585406092023472665521825996526753905019677110930594687362595336746682575533592688796006275577321613660741126768314795108996749861147155617975231452947118884303254272269518000368525796905313358634573168915622763586406327181840048824678734364231915322429182053322794873734261306380203728689405182980739708411808996556806635511583888012390724303785659071994869078508768572625044621964677877115825358083796202975431821562819789600832332456025112329127667132735240896217389858962892576819094642520872616396342043244619799583625508649139962773269097429680129574800107519832124565600086303017217129775240857782587607895068985666225647787103899931512781350099955076636990698552613813172851008282274843940667526531721383706972241718305462340839456077281809802308798409605426585796265621696357320101159225839249104932759326978851077496435026422103565500993705313826881453122815928512669364476381723491049648200851539940049863740018235909957427463519918202613310448096318612048950780707764307423699392714391413314216525003867894017829535073824116750710871697781915138049767438728481281605620622530676600217796864510427141475670810098950746237539519139524699480096999851306605660920727150039405776353444813089116674163630481769116069898988537214875930616555843110205053962709348841933788078087173027373194154555800994815938937799861874084103065180218537856083956211508493360280777333210221059227602512471539979492830076642329954381822467301440136120332812729370431781437916603341131361815711638664848181037199995631801129368207447627789218585256977728946346919562442853978619625537898758819878190801648338478983443544254776181253747742733892166221329036234286063957844028648604054349394231370182121446812123294778717829991413295591082709802139216634975668514717064904454645042177417600896557134402029840996369006694732395851984842559205760741094751611103300808046484827254068509179472294997769590896470132506855230533781348227805645362789413698088262543081695440260762777423386784062772266076075557201839551862967535643287862687839885666428977147666755852946186648210244345509663977843901411452610194531744761454606059156805559283505972912114008585713497148744862372100183051034469568662259551182143994660239106503703737127231734848429879509542489293895704980299464654532806031821647666832136109694849542992173251820205227434637203039163577779151411212430553432527064018022379510468178592412496223399179540809701122230238222550548026946216391045558103923968485927969178690441544341228304865714066801017470907267495685688047219421620688245731571222179251256977461822669195966830923809431658059459942733557685854169088436999503945266212442781087064741175912982878223400187977505305760551610530767198030089900088026971359692549976724731242534970461487946372502559652683249649385481887937719500180352793550545912350724171785498428326053643456156616579752603680591416970130107556482688906932760136453830565158762645978621259665516025751908787506503122272121200286551304645916133190118887577919510674481737578258954634049630115389821197157614748300953953746696741841903034023199116682592209257371331270255776911240548972978752053608509574915089353327422351005791966596269813699923526402191371568791015631592813929535617908232540189033761476884601574635871945160084983700975864881310503595954050735122670939963406191466421915967574221089151331574606459481740692634308135970422311237413529187791704929531107910733263676389916933658086277572887147091673352654558317825517748254654103650696760187779652907851268717888364850571305380965918235512044375534176111870486363641752443978893541451370128186085557740429920994406630131586157965947595311665341237923733470387546870436048763503316365195650476319972243552792224422423916121167890916671039644476800498251868214662157089177104213440278995320652094859317324692310809969631526914748295282981338094413509559597789677182318467603249633561804898392558999077183734895381742625769974747133446913341353784863547702683700984858152576547334894077143410710461822811261748708485080671178118954716486540318693659297789717064694696629387457933705575952106231702675438209486221635983223600303018101409362811599492635325638972292226999237460898310484051145899099679910524955661602395154287016920698614357822837744778333154171928600739207977330098292122889870174552182529328054303552645443833064511425992379549864117378972223968062720515924362779784918908033721681530064940083875221689389156095907825538499884630928726529556419900209847589766655007484057300126938409062643932121148888886555274452721728949801567287850288155051807475715119640121412155397863926303390809790392812703469067115565345509631906480392794942077220882058269516221015460876138458770701464231628204060284927241762277323827739599928624591569499456865667915505945117102229416100466851500801798733496583148405061418350399112078260323258076326016076109435382070603921760013092449542806968942750227659445114588427382082308747654361229508573756058955509949552725849416827455450894262165506021923157486518822050714434660425887467319528394867509229463622434761528092774435165969562585739687089655210386285660299176765582539124067326896954357544291186091218447108243268500419844796497630399075388967024359615470725731469136101866046946932390952831773214877781716890910363095835195592061568909070351870216832989928734015159574227246971276376526257266865193237276528811370640666016087382205312541713978109347096245532103167562593359167128062890935670812615496528508758425738753786690057585853633051417960513327882925803136887492144427390847437096010756819393469253782348228900229172973561914643435286320492351966994491105730777245720751134439245907360798573885297165999998768361633503112788822517834577460842001856559994438075196199080985575373464170346175188028607765454514943414558399572345818521637679358021713753674625475890567934564920041857927274615602982856609322727514709711430009843342861444193615063644502154691132383428681165533409198022422513684653724217111814725676992864846551187374635562135089241793482558710100594678276818644330979981840008405804277880208182112457221449758165329043169946577987020501286641608328383822893724627381263675157315452596084143453385128637419357524592021612978278420262325398094108231591292902360110784821976009391927724330829417470411703990712975921176305776805194028752598844698494111340715197620549547348461767633744862871707118987753182985853572733572191092346131307686636926640321469298772742002907033268874858105013063755283444334107798462888810786877146318001519639520151772023915397190122743979145431221110854394631214870911013071404693475597004998835593576211406838009605729359232363592829399768565050060350307454025544074093327252028000106763302658976063545403575562137236288000141075556599974477675908056382469289917055506034767792152213362793244082666381699782707936834780901500274444117648720732418481616381967092843867536768140769507040061698351163880593231360781759031777895004674163832015012302953283339051131901971871871175809003559147930483918183723508363750034149736068992346503298556320179638065787571798993145246521762583699635138383981616426032600888931365580463149536962531020538461413017414382329154855105183539080499692659607781332081236184786249112674065313494491353907774042801899050520854068110889643235316661147825931964337868412438806379894193423159694195667712390590736791480539151382565414072264969957312313662618515715410707196527732427223746090307192309262962316689369569849834257813683526262860758156497425077833096002199448616768564786631419364197643694900770702936455426351519835085415128206409539878428292629490755173187567492474478978022698588924582987990379727868515086861919447613575230885605851796043347106806646328948814455421601677922401900717240043455465549378911391625345582610377529023084633729821862246701532605298519953402418858950669289822617044563778645844825317966425176962962641146007931076798168121887214602600702854791111614898201760762444050092916917830519611625855115087279599279455598347683737638609418275171329866748325195166112724931946060605427402410061541548567782963683575216124683475113422307276921950208549440110430727045600563427412466527806015096702936303484507687111752702210667468028660860906828739446407365641069683946882933488778470364414614305623251706722404926542643573213719380134323199844833559528831266647863376634805375101076026435782533466594905716993670221456929191856585795636937722530183289162459876508729960427628429964111288924781192522953844024829355041214549300016864915880201760694728446481676117301311812726868209649365644698266256537473702337783379750132053411364273224573718872362089439474180560715740027160132568464390520619560146116067532104883464410680613372504070085291646338991292786239927942098641821724344648226736716036851121609919802040154048052166028492632642941612910024084884196104840279202155654968917548986979116351725811855803290470577170129557718491108296393181726152691640078053753933356934085673595315983863118409781846911189137430246304496521655654487232912927519430295196872821866860195750450963715357586460525365030337403512028744659302914302826722349866600722270533400128058050909030768319582063339239618851286153844455976691569581169805406457776287028461181845366161281482303044196452643090392894182361052481754336278038757907876973115970390255464520120055160989826577866786135864598915576850979466084200554322352608493320871758420143232263985700809112849778082082552926418881853717466089838680068674368935659086724523349564845038872603792075203701136583901434100788249720591596948069426564049170659404274033837561681331205261363218355280604475794004419801662515611044393130361028136422949792472222312926258775082134094795873611139913393002069616089648838185834143856972704585280386818414227244566338729002827560884288384915323041903231848166422027411398721139885484353462321748616794269542726137317089974688149702405865929319928592138430127560058455837598849700240722139448693194905878712566962904571742291983584691705337315141707705024849196582348284602208442210507671741561628774667454052637641596542736306672716250844194430330287556409874417284897502419483554958703641482049840714527100710311466341977597462358340966539441154370657430765088295345162672714784214930819024167634890479196476388147802767480463086771951761866088803647850009047421595238113313810279017375010299536770743188684593676470621471298786574858818518326851131891935066498311972732001907785822163912510080001365357423153159172488715931913527626950224425320568779738287750208800841365911380004267357262135557954026327542025797184186730638688336626024168359194789404254425304572125635752706469453585198616492232899484960790472510881455997397774669936217731917721529786826235455125179478967239150992825575617062668750159109253468907828378475093731097437541973204426500079068183362353051552297143972738973616886504838515464882673489462042848027354979357275756300192453870915594524589609785263806928521760230022811185290681602059485588331320146475445595690675076652982423568337726301062115883859756490079517630792067986402202483357895095059596105175542333161791332095021393041253099091107921175094911532870689733421608565524898145415635934800147899058730344715829553050070119074628964326536654219188033859690564949971996036567901180507874999660474740701651711796008471279279390959988491787724276009194234856736264136117805561478810544958123306073075119424237106041632507811138660044680031083131701376277044681045910071243495204505200315445756792623239300292427667269728807717758025754237702492993171194565979111982811718629813670299628094514864783170509486732003821371385967468941667541935515863098491312969231372277033212502782764423065811861012231465927848345145895114169665977331104664497946078065818341302875968955125054648873123621003561996079553610170835951664269498106032632783771783019091613917838508285857843506670587634806574557931196686430442116642691114629919917513895976808192863322574405512719454934733497750648172031471296041657697899441137959014012674822499054279042478205397221802339231298801057020337686417658518672983230745066183982566375019086629875630380331662150935141554627428597356990660239611926729607065175541479023748690597834257352669720262913848103553585869348486409038499632067667119838821426339880639265953733358643261567777551631954598432035287878286409823999532525650671369319928233874048867828690414999996549690048200014010190856101992743302329260112269697567741044919762796019101698842911521306159812769988953972896707766088173261183736356262395961625522455024835474022898465597716554800320009268314629164830960898864955434149508290748612771847999555431842774037121897872354748616650812107025135660932641803881233580130058206338166762047384132259398230120871330548682673337017379102880261680577687273360921625154701478906880213374697008011108002021139429665998877146333339915274909896228924823710297637243077308115832504849917142644949915026970801749064919500562931622051563949733728885323227283410144349239184845896662756232738732702311349660187737278106668490113275237895988187813870258923039813953056273477327484401883533319479848359335072567765719719607829795889441905792065941207454402377088490346097147171192633170445228556486791431072711103976057685606818684116509038752930427129010444335608194997224334646041329216935830802024184354599512518321531900243007803279920259492018571600792881362818047913888089700548973247261866782881698424563579022644695195711048151428894044278341404203298170645987242929014660372863943164165234750764843594961195267436563452885430582427584127989269885627780422391495026153000689291334181285401834827041045239352690724776078806943054642890573765653075208082954515827153812223191384109334000793172945390697655488784935807386122689129617910018685744126143197659185637043143312778260253522237794997817430169495161879366418163195901292358652559651337871321788421210442600914341851305760412606443512222932206674905661240413809147640116836730790521001509546915224494477325625060707622377323357792252731658218237284665291609554677605683417647403696599659470320411838251749694058565883051836609951434243113037002340285330306363660105659226265789232126549906230683631564910103983589177207227845375253484695987499116345063962017098075403123835996339682156618628165993806445803630195460874914903567110920844207798284747577383717012238771380575020883276218327351907240827745748196385912219077217209676130714802768251258881908886226803673449677544051656169393700532167161676583625184502842035000951002237442984129687884163652950806135637933302387151356184352639171197400325824894687700849390166562739585814343522950089375461727398486017594058826127264591366761155549954879772577826404189714089362498120432803015421118655548199001216695286677663707191744568913531936973551772481992014069457524835319599074760775990418833534875722209153725420819367599544260078369969323360139083948992531624226074711183464466896667951022804427639415176679149759322290808078953929656633069838017176169685849419843802629422921746735546579925558075299309627104912352620477941505494772391086799246848520709760801383226776872347797611462617979074669496387043812190744892526647258191993885527946158448305757248949656179319888845564351974216157462841177080573417717694722290395446419468516178504285954359659485597496818673893324515843665671189986498698425476490524318509286529226172336662089086397545248290105850190967680801430077179941787472181363454538746660709615206452201982093940537945745442574270441947585196098216417880502913455823524070085251054245875390388400977671642597122404070147736435259480055396072530722227810931032832910673991797034780264650951401533640606131820018133132878883546191495577237273934265370444543409840582560342663248779572701866097395016060171372065872216509832852996235984898507459529766787271422521802230064359730578924351796365090671542851836855033801823830418982657743914150555401298648649053509584489065988306995188273697117490077085831967539598750944275923088362912093803789570957056270620368045067624165914597313587097688908788559695543613894291471298640005545564759224843581231323041971717433000818940425052095685817577581050080911558518249124798279144885581142020894423484906663785105974332434902902522650913364786959225886749274473197985605722727910073918239080401669965567373460373592225892002201288852767019638301968323189804859625141574182995793352081838974357717149092619641167163347140763890713323328122979681037775272280251394896871958162708178754278162113216415552059773669717603032790131581082163014033637584038506102748991176607127050913082957318290947602595294542792315005018044703977913446270061597781300340354320201095997774081922526783225145242814612405250854715951387794175563662142238010388639519883005127012082335755929859279132022373521636211851426124188836552634046907796935427833518114528672113235169897606858544483760659432524606881210128239687418405449111167732644054440665705321104949391329577937401365989139454116006204607544132474883129308467758414473530875752629471049492848146306935664294163708261961434735803245948718820858302491371322934987934993057744937287347817088256511708221176633625267201034893586490736697175915258839007266273374269331323080391543423930103876889532206051568047197150015445497242654016022949813568091030182382715003664607212953496034410085734739313664361026616073454701042202150455664788914394571600484669891503009478675083748441950735661189459910440221398490612426951536603741897058432670663829473663453389893364801555758784235868622744653621060536706501319864099873834933813220479318968553927370954044823819892490707588209560984299083887577443058857092443839095645293629854015651209067917721513644361385093720914121177488632202672562585233630348907874654523965584224462009898468730491082924894421125322229862385575538025033619188257604267906902827208516153182116249385406737363899561968610315894890551030946540588622019909394973537539009167625506948988639137348640990689823048115359688570021036120271784860665948441119466352473883467103422717415062227576098373716000678987137571960469665658123544297105824148397101041014875434470075852530414157818333298163969192358872713953988823733560378583324137206717203427338089207550619456855797906805786077185865323498694116447972622899956447472218660831916803408094212056162707086496201162276772283840061151009521101600623786527897331761326143722036100732043493854582419656782654299593914204831182545148872576516037626213767439718194172491587351659159763380716988739206957582950127152369759262349307441758761657932635515017223356053024230353334593984604860177048382342793083730213788810046663996191998600320304314478261860520372329338197926510412443152378524515069982737330604879925473490837774436672058186727135117857760739767218414618405041311122564413866018759440673136912252875904900307908724223965233921565415772445950891017143969147369671542654147412335923453314786896515241654555309119476823892857964359723963973898086728482787609927524206599490949927591535754993158465942415872483600040095815926963901544029710997214194523121907293607799993816369955593863010181604384427026212972838195029446128354762242423615030683739386275420214138453398349586628563470713946859218610070473288049340982040102992438462610094850830847269591495926208506249204616785270088639516598295297410188545685190858361121204950546273554887263777509410759895267844265694452871795170148422139743209752649318736974629360795897055702521368206737342742457462834652586542771595296903730044495099507918529662954052269915935953662549719062068614013927072149240193636617727319190210804344572966868539973124411030361672875225909218396249759354498445655570200168400233743214046123832335742724975708969166262803599048563064736423572858194320077262842261001969954182314760962912503713895724468773485780772431823815053979591553604326264784540905949924524224704393217747371533722127003435344791910752517222058942036492140164737031943600133009011630929513828685756676646532984275026428178833767833752525457731790911178529979296747423861959945629434045725756948063834507864952355037442889181412615566591113016027567181724933875248186588466803123372613099344139356006701869820138670262434123986474175256571854652722676114571540513457428527361936328627722417065019848496946740823697064062785165165624492056250488765318163788805604467494398905711520493251722671512560246102844598845043055053998544395226881752401442997393522735863018552218295802243416706954745829800271882354070343870682285570471036906514783199479357321186647645852551793483221815498056644434972071728885658470568999330290898128646217364850935428584159941788790098418446292286742851611838490719238070771000213765121535500932212909107573971817364557489026780969462950071743173749799342593564214362274926317334986003947870177761718724623083570767550933032243123632283007802310063442720721043181911970765521930318960677679631602114885230137345434512631929515368805740229614547804759586873222237892004469741428028284666898799418100155459366273225548247162803728215285371161501046666524854642366749728342230526133856400457539709776856175566597236137770768538433768502803871679021306426772312457324310803582110486869036870474542050054782026597765609822161275789414563136170372121095363772893280299304809050767464318813260905759061760480723512531043376550339422816353547882732182603249866551046531086998375965865751535418913785922453157379051221775680817188001344263165560306048524717639625995510309740716083742789529320757769103858577765313143054352114945969565359061950827390146750784699463007799362421258678448331626200654591372416327510224491369362286466153670578431526174393584976102118042558491994777938014869016721525321941291659617686284623801966533536879786647571523592201890124009555526324078140148691502254380730917804155173065801191620020327988257030991296941286010545215705898290692549725496237022418768031002776128691333469339380177668040781723389939340620936887679793355105921431609720117677028782496882532120487482176117351649502017572625706724409986918210823820364159142967431417137659062239435841353398307901817279444191501020578918768342669656590730639957946159840957453172875030558717450322297984710178105665736506337640588724483807776806025302391525474003879076130410706765909214665917467431142389961645501871812781172221863176728286406277727111251102818850843549598348933943766095016283795576313625584626666742261542445680044544224302312640170868111501932338034800692284248168416552528981766954359371485146783786386763839922111916847547992467565683267319200516907794713869197813656962098889419057968414905471349025794014576138351244388278368752487250506085901184126292398503136689350994375415370117296943871714005699445409738060164832262362771847311083277378880834197417565274381408840499509871192790837306848610971788332154142684160230587035052196436458804003189768644250267536078605340188273474349250490906210235865951212829838683088315155636785555214661491368119370865042881932546734705981395055782665087136255867767161067167593307983165898296160413028136611868624302797915688034699497447177150355722418505758979227218113329869577311793037643474441168484438591354740990230713223643986268242062438768207198670896958728753458354290474546872132215027505025155723889047994554468321331062875283646056248839497614839480656472999831613286574849655912110610204345327136744908184371765589481038916481244393895665545448511527403983044512490956320849913327602992365827197980370419619833007904610613151714582666920695156821390656957440043976582482500189743848714096876288355790420959502825651190886493431260865664403043577774155815321011468175726716407312932909012401163050132907656074987013663380833849980647781425520605310427189364223102561272292607396524033470877264608788994471938332682842547704034229481004638738587644970646346138791263188437289270654375162701645997830001139760778138027482605024850733092298094921082618263596687807018345597891415198618616811676203854127904739394639312486714930691676666644786102571041174147397253755545278768525478304610366802699960092783982264819572903590948753727101742622583414780180441394221610582829240942284902286701200741771719626185789511610221107038194702472317388451082312568739306036895355571567341219993821823685914106379995872050773408704487404014522769957130747319661534670920832724029434095098439279225013232400748250382046902935492230289378638632512656500998516371829575237155476225738407068949513028489842965578873981282539173427870308316360241099912598066489956026859733931939400610450118491995578340493093510134291579207930942305129210319834656383922543913274120774244216605325668540271325376850205002555565559282663973817329895057503505694388615487070292533143663247762235341672785375177773465733458657863562294374112579910762379614219628379533254254665093915392849551490667591889760465340002614895182034392215564289019364177307756363168490655609216110443565363198561588332748986707584102433409307858618621196052903968132623657024903029416922391219081093320528409166934000455315523473020548094114541169227346888972590188171520915567196172651910051187519155145346735265030937785024364255662887643853669960752434393447653455445907035229932401205560840790284594864447270532464054132715321805235520959829196848840310277534208880964533150346930757811752967923093638152365249221850300605090331075279813812645684980368444055036312817048235008832705976056821746535807740914311892700172892597756268435839948530606532871496567096377748699189938426461915991482114068228074161501228125215386046022719438314705996224350445221941894949746106402797825266136192841749201257351671624895056223390137346688471095272288779037607604783671341634852957074416670487636779159751780929922452530346018913005045802608791478086230040367569921690730255690236150735501677322886310790381574189410731426066397917976932838176634607683702254658804628724596524231608235579010942419975251811039687917301988873244095986494980939749458574795874324925955818688781381340552214550458085802887375445299928558439963913387341039384400095928055884953533432619254538901456941248952213785554794761989356180093727038847098276834437886547666895020379783238030742511497186241959210004869776263200367879363619889795120166487929898708650685091903285475888821953663895456790933308533672794310856360404818099105725359505602214031298775132671420078985319072247805558010040871890538453113851485783088441209661816240420885665009788188547355016903393752109006793155507133115843652376844836997792118391950250892293717872576866391570121263048065203587413600798178475160544226850780410126668261735973459020689161296073004993203938321331638929976303307584912918796180688905384375615919209359894695944760848204540459777904380048386566859388154766965829589559926007305733679810960819604486280735554665167884125710232312180186994831610209196664095990694345478645429746085751779889785841674716760735693997032274849127440614996397028985860285917074466607441571927886844431265803626763690950167855168777409174064569405939724653581202565268287737483538343083125368162722421540791223238206757498908439353442883104380727022354488928384189340338661495080107422590483336493627610419467703859437157352444437335739277329344913433831787447931089149123057951546822267831457382155287988204980776434699051843967450348572593687437954237149679476012675382354394104665486118987043182308306030015715165712731704210127428881950980545475379921319359916909736595901848980085564909363435457575578380342495358779079285246751112722154502436962594760417867286976217683736818280610086428458848422924229777571002031595221678355238861938460070902161863927623640501050307901488667024580061334803029293874448577453097058699840501736515324979890791581505833083809186279833667733546250320338254909525785686995868357925497323218538020335687999732512226890505622768271188621458354879027700653377261183839684410553096181221678851243937575370351235031201358637144807525410874843496696241742239316261650136654985964822741485464456784950020816189961829190574699366818848574426174427958369412034051472146006259281820824861925407055937406102148495360022973856951996276736042259993846988315465865912471561794591838744724137097637558069551747691286033673992643559864653871108763129579251002713131057897550443295541143149789343378640626145371989133587202945642799614236250270265988179377333483234396803775361744833437435064006955095492599629413068289359539337922898441131376660793077409186311724281178353117590715581610222290580220250709385913976308133367767096248905312552768506482929440351549213120780323055204447417328226568235453793836878239118212262397567399369018562334067383315611802939380813738140846382545598683979331367644114087013927579721311706575312562125771545653084201149699836410211469690362122509412393821065451160068078073296203428008555450001083870182524008299786141620467605050403023014442766528618478202099234006341988424290333633936023637621080919844512853006461142537854927979899736646772145108927166423349691221051367936257940948916921618745656465275523823670868676816586572154031206100535096654992565100853851933752279982125852692001264419420036901792249337887049029768729718057555662160741487886291079819065282144910447562533352803819918322776208914560706406978707034416652279203497467536884115066339745779443813637934932507270937978689006226932943662922401864173393065445630126300284097457974117268103645716182357559856169234857180810822883612824276224794879901044114745670250460113742631789486093440800782729989404270690486326353603924877777863224654819336713838449342148803743492354245423705150947636178488012784348607348597873101974408581721880368023877075759896466784277111643185700614500415622924721797306911717973627485822645138862868032345214119126811869793936826347349041005554196389175422758963361090967317019014755659655625389424582134427539851980760771642298364221182148055496244254674460792967702345943596533131391809483548589671437761147201238765447313145801024868489668674313306687437340085242316141593063028656126252983313620293041647785343604139846803005622841903007687801022185289073518142520630505503979487987430527922382046520255882977535364999590247587083325131035214051397358100613659981596584592360722931822033165535573203896349563682222041154295094902386625245332602858246857832950230369581034856863516724111766606805555943877735564309352112310171590831890187785157090435266342917785225506682885834850972961180295050795142168741708291897350852659939954211732503619821310449980231966866838980355556141814664035463714605293829237646481586551296348297469776124154911567611611769059598736885922191713551916758976727964648089480777199143166967377439511656766035272577312167752561343590966669005110600372050255545185618723767553130485693118746704936443532564819541277314434587668970465384286030954500398458324700197300398047776432713154471045478950211908628510079400392132434107254005393663030898987090857488976779283548247419367709424525692822702834313552802699081814541317164793386648130604426190963397612379447596621105793152854651766383502716479985650037550470490524812429260736377414886897580745319236750484229222689455687619511309434012184793841493035788185211947241445773345307590391962150258388557171519574268301342834105220772447688632058919173326462400721390818165441703859895132866832243590509762636956528898501171269055565908509900177566293433421944181222226554270005910364679236317845999986816278266893848246480992276487935052641332423316422577468372847208634678991125766162622460836957821879239604715629678774633967194904565406468981954999518503845415239580684959467750699993883523311400770888402439012921885612748640341875889553040742992947307488659575017944861853741942311991334005628479047935462750867043394020798701810024602642302684595709478146152147003911759685443464280685782215587702928840710065254168121026192227652299331111868620226621343020769480671499421469697890730821003706620748346891845215927636602910521771265295757262633824660592468329237533955227899494136644794956272280948977603178342378480508924577015214681885194553200536742600188673224952626743190548896231893225515597642798239214282895118458650003700402820832845873863321204760458846189530951163297452750697484970537357114163651766060716545789372496081920891984835096531704178690668885137286273591493660367503140783468559252401008812505928131838423909000447798415066398190913936589437979398075094751800141748474042314304359187459250171039393787343313406209789823881735136992902611941184554093562637286332661736363052941846726684792104199374001353388282630929967388785706805078573861471090531209269885466003398189049438939567747940753682002530707456384328641990677523434162596141658998772936470972059913282998562166594931414307725885356814040780581282328487806139120867325394015491868647235962123628177494419672964026377569188890219730781959608970122294222761708660671647368409082466946122574638804019531542132766951415532970536701779977394422817006543110810335036253203570252762679087178620916038788135805382881418610696610851238094674904234490633971483911515607083998520124713812809826221341951571842302089596849838918023150840761449972546104695528407749925810986760211673476349157069715395234947157643867953149362438391940756914418734359758557927585376926504302216560422497416852821641841862292480474499910536710549197653452170648242856907976466499859945699058537607733501499848862775270195984784906520889882310376781508093383039907960453587783182200840533726562426136137551294683737146844550347065118425998947665362197218175163575545991534302579796834778560027444534929186477449888325520276067457139553371876279935461551275868176680501595273740153439362843802240783850738312747908062815682932009358044913426857681293427595717969354948564438430372060946265685615419710428662272226978150382984055945256860521941025237217079376205318394718124772950965465334580940134329255063652003153953957696165866105557286006661593968970175354746823169983694727987765888890984327361009900948679907753786693218956003458962774617335239945414208631283334829888702712115429346259929312975636415690724241340042417120520191160567625922931651090803568165960908265397467990362510442011323373172829066787043832248275071107812422090866467484690560424972520694109620540980114445560416191601300112617865651588837359480952328650450034139153972111269917111263924256279231202075663399995293305675492078971853054110522427553202770135872365534997298668013358888269594499898596009353010644846243065407940999733666500502704869274035842836585690872737706003450831726313466836616536735832183653864404537150591937385166542062479379936984945543432448320478875859148170488288924456663492518923017697648219688328266125341610410113122184038907541359570904369198698565802906801522470821213134923406077581829949177427763767464338286847813305599831925893209623404155302697683146433603743435817340263165168085692517493691208514595721335838113512194805304553759933835705277915064253726050092344938231470267248635984060317914192837295852817620428260901477811288233757279932886540426738471599141006519245325093784523999897448327438991709412218742244731418487306713654761234733820457188376201690471468027829185016639922077228204496149795326381438556645358663219905273954810953159173799614746562989390371777535718100389123544727332812649059020242947940518533783026827042179360044709628629158923387820881983835762404635836308962568616583193153798001906128231556417034529440806326920588014824406260515450110372636135219445225452246658627055202371550409852206714917564725604999469562337734800641264520790609309475070212532831229302171601658426642970313587521987850000697600090767500140279377355332613218374524698580768237731411328691386721091300043270760421731668907774737695865887624930119704001190664336400335936691302735247785620049195948488997555091690362488503407279497480792189439140745874494561909085005330994403165345167941256562087854435908798226049836010581721304895007199557091247934832664454957042319807455168284781783094856992209010380603228610206016058294950017487347488825753295987837394310713500562202778938277282435005093658767433758850145646307126533264039217001112842709264323769766491906677979418908476363938450600155647753446124084119211152253594525157205853474702893818238364357447314283550972926145596304363735736481129459926126247307923826469872226645934395065486895850759918471612883770533910660101501587658116602323545380067707290085476685015775164483950222506881773554021321273100327157849920900324204991932338301373004386977824465298906116517158197319351387803037733682684161132973397868801010270447000254343870459771277019002596035306581757655218731080172680889492325425109917333195814822353969336547879322183682542541508715054064151803130652277784828262390730745552445612360719529847295846645875956097265176474143997659134740260681331923640550496316958802235240753934166429835643684742448171888486115033213980226771563673221124534881793923074088935749408577305908363082804156986268518636815310963022268977316264813020202991536070240869493413972501747746448554942774670674638760811172882254900165900855464828434250353049976744186547570461404794126350039384022186122581149678899892580001793498418320799554009438878328776503780621218741128843957678013155740693447699791254960479057383264923725959694408539217948162260419519705680635050247726025744149788620210426128527566962977202340149276435130610842198188462252109515197895228559999226731501076148791727665462213242900445957046355936665859271112217863253001114608046895716666403746566276719312815342648384269524815092294763998938782320013577299451977674343358056183061250087537436965985212834329031486726521725207835185888066644801105966816672948621162968579747792698611714261710218180284553428478075073448704669482471896527833853602874555678000027341498872406719928399259658350672858605415866699228123134600898343604457750283051238933235525951773264685953186698584130733762946183478726746081171520396441754154447357866754176839511361131209227654837074691945629118139482859918462620956485901789064947233243508676775477068477829522975317707396858252442515037923212503349005673790050258458908127021500863267385948645297676933370992781423051080757957746259716924412768837181967393872843765209838872889065173886159480132361726099892728789438338296222743114317772018772774039530939445436014198768447678514980841088256539526018263674192701441989515223834723276658051280190084254691442613851164345966922077743652570915914047583499690503163022893052321351514324605207380006721350235610551630572097838266084357190340443214992117317462056094809379274236097492033878009996219213072677384204970623384510798063169521513899147127779048824824038530000592401663462451131243935622954168037813498884233974663203879866911976905079064961396824524171858655985921107940190608017646278804379677005613426392440783806386468837535960169513453211721590961508236683083375733258644538492621184910599260130205560955683830713478929178713170973354083980751056210524994280185267987188309026015820465126032298365803848910726423546913726663380040401274838344242554454778986324981398095207396096393227457652791490553568407127914267132410602548412355238267023824574235459354830694251183042681354135237536690737341264981096255254400809384803677745352935637599440122346547304016494772429768459594101246862714626378490491285765711373155950542496899476512959463748465192995901609506505934744530340485074686657392040801461480788290801346238680293249682695816093577650965637722198150553155948635078760836998116656168083464689264954583131022096010718179832225286215887098196996608458044305001823530782557160230648505401710556482134143876447572290969053779194363724613907966167609341484317485277532943073777300506453199807986846083034295454456799252494344821829697000869364873325752389612837017330087912526513289215998130218828339510409263597004170439217539482634323449695543760368179367556651480339778193037557309472163994139104906849120446443271000931538808879985281915272384167452663657792695981893354414072666319249557681115039189355829443182634232960663141834651666787693749657008462816531190056842581489139831674347582485880038515756092204845325758851834107851112497336733456961255785830288172555499801989529100648524555037278837996219652311926847049022262050180669071432054919893374545965222252651557515704665103719808339461569199700379006194942927611808065921445023994523531601802627283825621462710708284822328853876284230878371979710116383885064492912856489015251600903140948476251757721904418391630940028320741619789836348399376201282751135951104597954173665896424144962946647058018882434196059651841111857586482647314723199878730477848734724561923578250022342900624201551384062968986367632141427281053546433254433440727837567515623319671690353964453505414927610523441732690675730218518362455015096750181398087835652812766569827617509730163082416541433916707975589296696056030661133170464575168779810875435438794442362586307050778287303764705211883770128276376807708313027342116411205617489848378556621457662944961215466237530710547825326934318482569043033688882818091161311112804148863094504200578159730814129054685953632108635118090216168162898979125641575454589752543014975382002840926620846959928363445718158660850957214929166640793788196728095164655539813451009932519280973502716608901273648951211366713330456527833711245802644049246684457037815906710550615544912828525068837128403671040753199424836118860342537638730972315795588687461324861721536681202218187586206222370279280327447597419481470077903932815306190395313113977487775260132045641043184198525084459754234216883092876203917842902927850874011386933851854613472311564351894317643852706015810519973610989520323142075539678768636909384351635585169016740539910120836998922821403005014625147771659081199135166436082665867143075339069322968736350777278496782816744717937554449709315972636359233565864582218368533381877813296353625391138875514930427340814057009293907706026892120816912186058296732820991964979885965723091513665905001205033624460179307381076702386893447360601496941058414811333619545526301627257621289943553847383770897337220447574272385788774430554778651197356864507858787053540929595376530917257718261496448909341103339173886329440956726077459899544653446516000145936958601794136749929936254055926262755905109209457459714973416631304305073174348167687686460089190142694442852023432450542932047755859053994928214788175699396587386941889350831024807091021280665666942422095518205005309145395260541727403409177052106673903175159504999474874816576750525498732322436053511739144392475941861209337285463075172699391325056261250282693595981846663628589240727540013862952760969620124177353905844225037191210498071660771622842654551066210322293260563451321262674339543752957225086964213697654373088042444847628084242531606921199733386906691869143555034530546759863488260382505141512619392800378228363087106118310296777407637047300284678413974935576626493352813126814255845979886423056934617606238014165489163394304428503227712873137508629044971753964606310007434354712829915203686644407758926617345671776375267964181670000703448011462614862008236548417092581710037504630824352669350675545510421136148895254977120064816901943166942111510804521330125864703739106963068754566744060026019442050091229684674295297733995495464707730546470067255294589212792048734889884201764201323368163229367145688606363690581526705948357203250837793953895251014235776543484447741673747708476560806977470813468743587885338130609849193284932786206301778882824805565793772324204995519228220218398876918916672767988888006729128476834305156195935377236627843630253648938401076930877810195821896346838096214931738671692351992289265932076386371863373851887343002395003106193384086937609089976445390796066019389994396786311591976053114523329349003633939072687524794093384816712579270989764644132839031949670040480095882079603803086940604767640735838461773185906764662392819455024886341331940566786086059204533946329104617635848746151021975766393681023290354511455672486338849693635574953996157229710690188096693330500631293930723281508827644367552922537102280026129244300958960963818604339890460364978913669792735651222314044885604634707082980436314911501591019129131260391036458153768699969942081206417202484009998344608820402052001196850045952623917925274628553736195606715886728505661575085535132442084146591759232333405978507401062199233804751338330156319587205412781990819391695602336500979867407049755357273137711164007183086174436235108644353513156487167468004085663350164296035025831364732103457103003365935724044220167212537275856594905885163696874516336512868708929216501776371711401185878290168267442074197837365511772347562256761767460037647353242077440414611878448596375003802896285185231417531316445517201963966709082415395347027892260821389081275139698799209852974324244445546041614255481876968882494217597402209635761030676978338697431761665704582498898983497184871695026780032356352549876310666868312769745105621550295473931588182780400455515037161381420126850893624856002245435875812761594419582562691088718103096573888989991984015205042076229391764333870888220565272171934347329007816721779500072942446108601453009161970803828923019516022575176753789014027503121996892116318285479745441760339663208978782878838314155094121461772155666881309887494859082012377781398563548222290436644805701328442482801855269166049582291905098140575061166416676218261000355628779052114109900746986590455594531616747779583960933406743363640728769936542492562602981403736338676914431214761541413918141759694043483693843159361616866104850453733969020989419191502098840213974051748610930627136463967676388466322015490301943258887398777902078680599576319780236845882634269892897728878704367745865633743145191890672871273795271554006926853655158397594699988675839095608178371992578293578290647446850267451034336600727490121480601282710689877841016582466705917478905954611365743800677206467904680152751809032466105371524062309221306747660483120765659394111665065007875123671897105723370320439815498657412867429832494915278334891758047172695303954353632929378190509216532296835644859382274481702990173668528108206340458787071125300243215587011012925637834662703588293260158713477205066636295842426281928827164579210787227643940615205628300511949346789902613833908061062040380917767945280996198041514122073603559864871518902089240696248907717491864280839075222289380774080766995514026905926542618223790897875894433135945265026494915214458724346188170735333908483729734165575595827511304872534971272094805237740928966983652380055805540219408221585196572640724019102914377406406445009853831739753999187768491451831443692567238737955886329566238535422965775853841115079846151799316925184992092088028564826012842323852672392492386806095943595316457824507215962650597755329038763428799533551806177097808065512113665121697102945864082981049861353871126848982100920330709701047946141886408820818931759165039617595244211036497675316658660976621406986460990667022720528926119581815048935541912769932744119184662111087972827763138842988943307108887945427333591123964868064447326479203070144838595881735355271903000514939506425304213327684727814060032100347307287257224835755238644345141683784620532548531371585273399756770291439000965760886373378804032759132708216835176751987252279108982096180157922367068015324690474429787738326706153372505480664459266679444970575559187140737470516647463506124247463629372408268619085630438358242451136606635917665855816560179792361265005322538641956471633439391491461287658020852396628387589732465253330658320746233864387337685112284812769603161035769683477688033594552950380012612941698452816747884164382441426053521534479104175983468147737272541692390462945708139834398057614347869250303886211173000253927683969462435885454622043965730293404529630347066881503116460907180890638896402270426343226653012243245823916537818111326627010102995772155670267718033320922342333477645179357794921152676833816880153593823238451887541065569796250799682098082461901968131540797908811847290859098692297580957773802208574847724685818562300413516903497148787593905247052885808029510304898302429228836378972328171346014001011217605498903792104619007959011843963843490101942947235467438778636599315668590163409730230605843214031651141558775679707210737573815809729052823651294340194011678145744631127763734997128653335094887049757664934993113121720389385849609515661362355935677174776308857346858817380811822353789973772658173242146473418639896603957379747608257717010037422337298232787628009132057494996363802530392254610206080068678568504085843350702671336677219297388851348859583382780807722971094100290398000284417844253890908346296742115255542687768439349526870206441393916399363940585448847178322218892698572416504400733345198827366980460446989965027555774873037586278166127779760428691606351742825089439187090125458232165983833834854897965260991500179672556415164516189272776565540963363777483220161981714718850485159005668761822145636316258202891515863112133477914909626895388271725364831152819629944454726428228933380549749887549314031896393056297409294280289184768940557627182808054448462961468036380142864395539470791550833498102091300969748588033215006212019182438084932792140599266327291421811675801311131078432702449382536809873931156060648806610744450171579747896281383056857349066137999081788063849613563888583618195194384285660017685819744684732258596583908760844336895235018072881782739963074290823516009747019113848245644576463435923529224474405628250969913751042934765393150240127919234842800877188498757762214629472692091890114102325038692959834825316790540776694602574804677918423898783532058129426375796970373621209217295650490250543331275828601370622254198292395063091749779896629987386882953631652582231176383265278167861220744471626281118356475324881041373986428497845320376966343483988792803056846367579947347051216598370143346180168187896524809579933513871307505136496484063309869363198709475707117530722554102102550707003661351860718272814271806357909987874405738497188381827154756218359614591679297193567051099357935703045660850303544236260855767357424379458700684916575976503541584764547167684661612169076573340306174219759977603146429981781430616006879669271818945207423741960516050753723177057736356484820478817462429624295615737458005067906350568351317816692150659075592265952518356534134368022533222532060436633154149003432817948636894882382680865679310317883423082940365384828518731895906412201906086272338367442387092286849936967399983022716518390283916058820960227510202967341075311516816483880661432939225914218866770801120854649401101702402431257080239072705831864423678581133406286198656324426393669250543894266244590751942813712966775811374912296603578597678219856692116087837758190402599666707697729767614048355297210921510205134918472206475985606401582843050739206294120037271503176458398119101292328827863290127628141435304793134085812555802570672705977338642527486206797657653128818429300259389902055612254044961530058149786290856723854440996701321281910029541249277416935537377037536883686918133544921093959192708503191211562845150204355739162277470216917853461553214385083694802737208066265382934811667691754930703571898741710458997047418284063570520307523664631061054687183653773001202939741954485691968384561414254919433903408524240979483157658694503193844740191901420268266679203910865555314639965414596942928777627399953947191936945492717903662265644670424434760134652211645503890899270881785138785337174932016393697324641462334943059926862803399698085479816355656884153645083959999885682807759687463415422639890158136816899468577315913585758326896083416808047548553010666466914827955320206990863832751112768070623132784626952696189059344230685998560356451403344233092931138238284436072579098307836120304872770217747850778661996124483055956978235952638815720754444664069398818759806972212051752390197269318070734273950813414705691961778814697998283965460401271170556214348413394351416667151257804915606901180940178520390604937743930852917866375521712754478821469369473354618870954951297745121390350745487625031549311659283878690770150852182888691774559509332828162368368144744118495675689168415969305462582959246327961774257415863352384366973617940643930952485829124601098261086996203176669999556321937900860590271685650181339569327494822971535227694904641514267775180824465027023437217134898470003096899007391072408084920344441485908851049104901845839809523281769387325091633075773963376316858374471752149775151662146097789230607035502024392404445545543174814393983159201197000312177867527895800787407312826692343225259038263281166688267479647809438187220373594766982438308669063944510939479735684313725632570187346863997719127842462218226323237295960562950705275607401581540741608153713401728055338704062775619940767051536045590390539328247375439413611981859734763892166528096566583940693647298793846901084857344187497530317767459138723718515182044624083376404497057235259483467036770243700655793973765182712632328654719772021447107846370489024156571307149935822067636986392215855087389430310497391324852422925735677985830919629254889499279831901406571861925557905839730198937601218180413064474626257640395520364084351205159665127649381012923090886411470395107193262409616588396658422149367461459245340669726908655227352546243920480432557290753779022195380732966008214462595333230148849488480460625704653124571175139351257473077081089590587375685163818517642264461564396983281696747461637841907227792213569120459619912216717875070886969898556687726138912115305618559286774382924981809755356112358411446990322392046350392653073188414879066989990272869474680988654626811147695250832101071564268551547879813557042860195906340753776075923043445074849252632608707023514105966240514568953818529221115871601791534550430194836550733149983812928051817412168455673546513648692249801593180130260118315803535910421311321311384315317743238520548468892388971782290655611195544535247147752036870224202624320974188098597192298137106263292858478113844148509181611765215962085470878393908218541763767908972169931567118591181575198379168507938870249751033250178148367486994806243337789266310037894926180605028462452403797596444628223908212949984254698106433599579526776622560428445677876484699201875032762033104252565500557845307277207792283362142861835136808379473577923921009859189683411776606270973860152375222832883377648333644964060765659785399778437627799504595944294819938954876661366439318146720287702733768335496876009207096524910970434066840902303728607550841420786648081059667369416933714523667601837372642886788898435994555382960148558792848280026501506135968397881536870312326513716165151394322698564578265342045380833511547579046856476277723915251832854644097404886429183480136994702853167392255927428381733993043691688497583011856483819511415908751713205110420391467391128962914819720914880537952126457167358811544829462492838696563344613682612627621432364562264974367298417502395111152585870707913646600298260754851225965273143621050313554919993004414269885262773647608657724790515350976274707789597670439617517262525393931687332401017309911341925479791800452850412123754310742408945954162491481998029150680097265005307848836878811212899463550224012402098278284610743262224176340334502134523960751209664671064793108644596116584130722449595288848344657447522716326956078412134894048475224096444002785668146122320030782065871006064769515734388953793855904956831393679610653806351877222302426088621114989497826058378066860415489973619948155972787910722937550026231013072437044512234371240547974803657226003862465642719722298701586731362947276827885923981514650295680813179965468949890943435479174542919746451977331910283111124042095229324340533955842697886083082575435756043132997409617600564665107976588782914998726532131877710045597473406298205431550705437418981542259639727195375513841389980826220651611997304195855633234669810584886200665891350337647046530532024810958283765248013984493647388593999757369343533516921583285929131403679889119812744306399252150938358107044417770716653425712448172239710324860153075839153220118219956178580534311820063164015147994861085574735156032215221220294735863102973302474200997973533410444101250681007231265220760815551719691153747014768519418973242670984500182700399975674184968135520362221196421683601192258168672477058438449370142060990751178448222734196927897103080907516334688578066591031867264051121187713067545913163210568868230761174539653637491950938634735328892123715498515551995447731427946759655882496131598660973843172721966070967789660568374817735426171244221902342914466956711026710659014747386529627600713315283728520293875753619366999540999835843866352734511133018638296999930449703317891183551334181260093010947142674986529040578226047221268458360458423762773893964914613318622592548525044273100586322085182035772815629484483340933822065383277769549901088666540079797561122159470153787031076503169863153706307531673757939173380456438316387653676713041358808451027419648198702309164271401234084978469261590799114262132844200727832143130356477987178331008988479936989344771376517452854705616506907372647095917928228890815711611071796205369883012691828238185750915226906213284368442803470050896534345379717100386889854104223641244683177404242220202861488502588537695638505718996111285530788127720314651029663037325760113860373210167154107732759566911091213614874877542682399325482873665593825830404828271539371101913488194390506162890227238110635596680524262247408248537737549333097737031501744756933555859465506217322966482054273444224271290818847332959011266990452513482605743976122273805941932098012566335805352936423625930288380298412989587854072038978232023048565203383707360095122517388647096765986537663848024580480481760620188393523472237273382678940024305767603142428502790237494220703349354014797926378674303915734486985903621971921628854783105348381326819986012313466571078527903101680797165608561335215976929150395334438699945798924447606385843965435209880894846620190543655405228545821835059931310276520592259867679389578867569567448099979471024461933984844278647732506497238516321281512765953932445892135033842631079926181417129613036570620113954957000269864878501858233098213190539785113389849146333702693638059052198732086736964278162680360944429839684106894345194553987259802352951220572038292548176210140835650958533249819541590707930507644227590393934594369134429302489644207380005581847314506089608195382466368105631854997983847869837088490129777689347537341067612592132305964477680166585599042475528547991189563120772693118422004071638433695832820105325843337813366468119674537751644244506194759449868855126355732425617758049680523386813197172361465491659730298803639437266718338384186036120851688223534039792145163426449637636903916606487144254945860358301760086331646111224890864151221978248688492891215259186226100534692653750676484138574941363471617385546384501708648882938517161571635073197049884982715123635228783139012542004727604282722353756576762736842801017534076605411070675893364868609570963368731259431300145234016312644437819532564165888004281886803237531610987829701094952537743485301784178176719143351772542558527180981350405566338850496137844097666421249646429097873144146843105944779646881519994208080855890026413522296890177986743589543917856345279281085875552256110096791603682026568825361856292581812034830511568811049526503339427486565681701687808347448086265035812700925537626766141496020205166936006598796765197832556241857617038110104883469343640386411393594021808380143246165343554389380556531281347388247286587503011298993282737784706499601683903566810906988801924766811748216853145441388826389432750726429320611047231112591185437667966331169014431760601268734615784284703856251339636779666285325686544235009073069486801952653737155534192669893470625900018740607704828798173256144852414057748237474966963896207041139605878705586200333579661483465412892288864720306417379486042306539588904948437784512869523177901025399951373885022657790902881144550746375470168608531174748147372482596889294271229352309085680695016258062203853538882025154115714371025015821178831855516988530526430562356783469317725672423929456243363884328390017571900167949764219925962517357904330057767877485242996781374063537605202876084075019047121321290665212953338751850339821118129856144678158553607931290450680698952899074275366576476308207581350818735566609544464316702244127749661926798715589044083189511561232567314317468544497585539221872338200547211406826735738356659121144485493161619369190871644050411479403030814433245037341502501926533780833648338032364940128989915393074532924519899231649990187128324050463913088224123758401101392623847604761406770021313286802780169135663121378258028079944083074874070511423255407139456681081363896130421730814797769412656832825816697113340275252332441747015080876154347161069950832900542211148122384980059918226348564158126117645451264413611064459060349736757695106353162764852381831184147555022292975597125253191294654850217756210535084860018372294782150696167731176346460850788171199505342729211684476758287720210690550795808719745032206798126284160453030457979975046678900780947996828281215146724477893248294614878668868867473530128051519638385694679771606398942303760085197064529692508124970025330016631764899790360492909215559459535934750832284861582608172760060144694021682102359235424902465969343210914975217930741368571113216251360960294466448349478309490672800865489023691137198773276823029217561818546473313044677516040072751284966816912492999047363154218196963732788117627013355432393529853192575017866694921084360011859136464223527584702246097737653687705553189733635856935115194341938067134097731108088226072513386195530479562282155862189806703441286586341885453102822332791102112305940558279604502068073478253592311668524873419613031105698525064969231906239594740577179595802757045545951624163224848065122910598642957705512861785670138631442451385299322116389713886884590678218139603582010868595660943066163658623999083919488010023877041322612079134272165954416790275808602688018749454925494366949239268501937779586487374055256644454612858217751240765307869330967146204383389594229707506566633338648465739249436838703261237660333333320482733202346169034906208179325941675376574804320362942010220120988333287964545432234808514724745556457228414979945100119354366045063369289317660128138040920151061842904662897913274807210776563171373620515404183626074892977222122346519457261409583958825819021973836019565588158889077516445695812363653983263177036982965385590064559790083605048734218852898023703576610829082912140518389645601411928300283800178867108451581985577914895341046774550245756208444223088299575685395156693951099293438756993212741181098802140172736266701832149806395458838973612680574897713079363708723078458574690836762430162058300957263507133434004362552544970692901774115842307322004454981309405784323047327155936944702603676492130734569682331841467728440302522360651095152067463824063437058109586299590430080848273976056244228551012203546379725667875174867156054354918116963683046441538781684210011952580740346372658847237493867307570819463275514392321208965839239181653839096912934078728441224089858321203669730014360858294728018162724233586302774695108641636444771071300717685752453548549202488784920854319523862947791024434046411342084213498622159739522433229180835090050016340134196946833178953290661633077091937717852627801742403924596552818189235871415752575780702569723762894567253863642967694383974784048053919577402810367744793980105690088064378524134257826259553509795618730232439095967020915132060431626820753084597225447767562945580199568775664721254888739490213126311775610459291848150554443363528586710032570526201367147177839698457065725287643303813618313250910923008268163354836401635851630276692013879419927311476521684088084803058205266769436785704457802130030597593777044290883334995356937198991814693758850105917881562073064389089636893343344975004348640670222315393823100274166278455404025778421731466234099089074721276624135903723166535580745039970100763030565237935392896217389861874523335360864800210886722783244383365355940197719392185046596479128882513173208347019066778459978542738445095446985415106826049738421282092244395784078826813360549973507986107363811888880474965597006660220163017480655067534083340707024717789744352667117587237828020121769869639659237340127981625115506397049442522179964470723818680980173408903177957800394594192755621131209815743024140405192784705664812139842904931053194201511268254098494344188189757356318038550799474110280616695208768150356339203065776583579355518666541952676241084185085483555676347944245041864291256637666759212180553259665914700867305069190184635265723913897973443599574903634690194098917587414166547294833517319332757504006535812443684162281000648004083487218489945948004326417652499432195546751739747640014148028466007168120757133761205028324266089530776660164239632452025861273733614523012386336233982707683550123410697819080961188500445106436608255782964604102198965655312585045559757764774169178226274293792102879189172272628111839646560296811120613607049887451764978451937043760377230268398838020737402801671619767929543695899461590956120278348514988057843158367801512428831262967407380966228164574518007525453329607751940300898959992132731899720171892562683002522769181758309746366097968883820954024993228378820036680033139094796330532702595379021802904427493866526518810218556183390013567589050452133417761921822616714411718935895765334543573958180738398978646575921259462700976009547703781039532217848936796372058826041339801999303033871458227057052992713368328337284169731328851802830559881997235431470424332591222203492496081567880802610315990784307883950508047254699185965813794454642628189898412679147472052588139107742492954272653223666600955949230657327540397759903495077780608016951899240478871050669102990912009120707205359759220477697527037384940945460190244204620739306906128150415955674100376228488397768343140403174170341446617994624796370247199485516120622228872278183249854239803285832729492549028091143582087889894727643333841767689892181013974567044611441921240152983211175663839323626880361187706258335601587369189709496345215343914568131776233290747636415943565971090874460778121398419348728329630393225167133654602998633900688394329722271125910037207749803122412393525887930891406329865893253871869357676501093324419624068376352033485334663282272407446118540892577287165430932095219416259920104263621676971696006094690607625516888344378565541775082541736743799330834852673107519129032948935249378645071339597842369458246390045178040592776689497383677445574353278841147152123565835361772579674624640304266220860186479250314860566701655804037990183824478412198227402868274774562716521399395322767621156669677301919739836259813589492805889949353810714019818815018276722947080585869714054331801787708798937027871790987304783327595533049813775400794008556475243767013057588125533848679913281469071202199803160071948657413568805332142333335333958736907883589764652672542303032934168222629993834308280568787474864835628865132768581145689913720912033948742532465175475462418116425948849443314608612697761688926794121794657044759442731151232556598188388679976226498693263029984379082477320073432491330762212560591571711078020542895643447247949443707435915550085419458372384319519752062713904093476905932838270083456253115350680904838891936888096517939974897277018373254503198188142961113742669273768928874803313501707404815727862554231685215722475699958983362184149638792261968850931785758406582416679901932925379137308300186118250345966122632091769318993354503232704674155151489062088810074016347016848189771497939853355764634341567683429919882428343943093686498736300075539003460570476672973327931330387546897082116113759120229987712769104882805366962874470251351867302325743081091741977519722181038110096565157630294729888179822316455069991922620878630183881381844708393773842618239661508702770216786849614860206436238322532618413730752335077898276364048606856012730681691512492611691772439767372414471904343430450546338662104552227089362813115749880490474758067803388285759611259933399250587759316714963549102236796512843142999901293908445889163403752937154263011690585433178742516415655806202428093425500969892581096820494608365083184181504119569268453742540550955044903848202855165156691475746877351376649555715641064489956345834723852921876616232416456209332399304659751140936465800832279952140708979486346100092433581692148597798428424033400414322388653162689417581507375424940196820353106779478548349213766571726208344471073952679632056820996944731383043511313064086574599749893099284639836440608774443222055555771150249601735166501168317059533047274910701599748234714104131911789411940163175068512469734060274404650621694821147972414912092446094277318601340558409617223004978091684361176675440631554197510717652976311807164420690710535907124106396745064549966321997178904685681838393504751256341283492060075117111858254995827038918813579161495663292756841728599316297262183149549961374884680979576356086929953642204676890931124109308673983948962386021639009352751049717397222487704548460589657219133931318936849242917276472816347077051262875918113496415859618543573725549845614199744614224294719593849784042025678319278727744423370982510782690613001151678103998632879444560262200061640681810546649231934958929891197038041868918065483631937371956401219615367919987917551577149290925894811152819503065922410885116969461419259424784468873900460282538848707929453309642181716128659401660075367584866438856760705718037465822357005801685720777037146658976502376197187030200295338746868774845105326475469690753538653048041377279731987327852789176873822545115512961597312921180458205156213487185810718955844707492924654581780574675283559039903045595296062406524013944860206544666268274792984180831643671823831487245673972811144492253827664887106954357061742245473929173008099592619680321029381562093225345627470218996568336186221654860056909536938045510752071335479739893995912238652905907138884911221956359869419760585015475889704662967591313206532325489209392946004870407434908652785981133112617704776246742105663456678090596008909167493825100960502614177878418794909909280575078971366840666621553734951717914168568206686948510453409278555674005556077661721679699851209173647003775097897857437529069663409101612489082670893808327862665083999299264198210860463640933119708142448748211978150800939640955268135665007109929678734427142917987357558753985011363629777761963415955834105668676477552022846758301046111357544571191812058371780493671906202295878490697857451208415321385062566691407382933708135611678889663902312731539461160344577278406905116134798704378237151075964566801813547509660706080875897269844610753181281321679548508425035414913194822206628380815358241987449303885948008131911781275333631000349759400577952088452948790202952601816533368186978947442863505490475057040433617692565390133540561641467369975103758404645423300455232587980008998803317953873819923360647718214315451800707418455698821393485551796461900509860077394586777861030897568337543357174039702520761851380335286242471209114020737796846370535443791673209023061952229155702697981417370920902801768774431870551588444827915870062310175648068113630745059853893943349338450955127061746533984068190291203968578646861224839007997927171047776567790235842232215980783178442027869251304512018612621239169635887579329575286539390711233315153796697436415014946240191065404838244172570384707591596070288237825929374767076027595261259296006971905178499667582286977157542278861084692520693370546352813310455219772996014756414134863481188672385915869960351683162175077350881541285530305836758123588564507799156537701339825763464624097094175701104664091778738026866544556436803479938206098222823702284606795784629347666093399613048612669642303965408563103360813545252693147234662720290621564761638929332194473746631436162668548723042323177121141369299690395992749966783941788786828687226285184502237484124392472642688927580397707768877550242050120091357442952196432404549917009254460838958177669856999666603633697317997971389594909448579452795611249563298959970168013364751665275767976742476824847900425889662213646583492391059479845312120342462669970988843770321477659192200528982755548457111514667925592597005083856049728576379052142646511009955159073481520295964518387354403008450146424135503716016295158601421033249175627539806082029853593982827339875621001475642924678455758194321037344832911000148581867157885979180615425606371295995150742322660486905767081201385079955898061929934006585554022888507128600372116666009813460396467689948402703037530802116697425600063916689792924943629174423141681145155962977174724780565183979757497162893954214946896354948474220317914600105003791878676816269781895663497321162405238580828328929506654673242403198488782651777399259762256068714021816422728945062086548782457934611723065079188293138299215309911542957226674819747543281622037975561582555484521797959526083115904388469027527674620750928778468192405013270594924587232527322800989495873001681562549739724947012449743431685440342288433371837116111748638616642065027182377325182696519091531582836426671607405092807108686284126022278069025740126874937853376540944619889984978556735497708493557592045273304127093160231778115868532731499909635094047200169286932234035634265732318204734504206772113458578041278840600383115070974204233904057159405328395583887052002310742121073949719936209043420769213850689687327053380543971773068784793139134763714731552212402138303670227230239285417726041023543270479084938974649854204247249166550658097613874641347191618515586456106964147714924505440618264527464987048287455805777770489216571484904196362583049464292181725909347184556894699125358888787025554864565232232091523659442356068499231313465770918773322252268356815214276658629760689152282100826677932327112542441150712824254238333465300162427379306359760782830714263889747227199394474524076023605660646963334778404643671288070332547813408075431984288935122358225001366140012701881421088364570798457254068365198561421963138078524671861320826820397594136444124673636391885478719815522391037875927733143996008853525307746967534038508668450527186781141087405764582214649335091563274710712766921508869664186385986469721850776644806402005696058508031307660769029822244875991177180083921683674540629630622082526306338272953931255248446781061608169230996537155343427318761385893008106346291958819561114905109626409303549072517799401877947285317493760482538609329376693868571309831438663484132253683544672504395744661262127589051222148126853438523084644656099648789746699634177570442141664803885614018180890731251835397795969934929621178148563795849834314899141140299053471868258122109901983059070485236083564250785861676957400383050847858804663577749518123905507207161296601852543029841361501554452588871216919265538598972496628784202815656097109610710358434653921573630719475756905530003156241513123513621084937831989811736342910707202129836974725793835109138079220453224035545027756038329601295925199691548891243474041245334389607815838330829863787997124631999562405990935760463327203332751926132215421632499438700326367783247720491916982546312890780627002777407207395751175141599100364443716975625382939267741446902378107700000381426200694655060819165511762744806866118902379267410059121395847288289428508463573178714490996110113136396493695721127413586692303610022525558125786991372942995516727639644865364986041946836795524341509551196881350519372969773806422845070577233228428697220335415461788855661954837240036119129970633326995418652632870962217548175716498887101981474848667994579637778881726300568786334460356258668304799020981093206848334814544736143935251740438889168405145484049841331160005670032819390560123926397477014536647988158482965163396554707090247616196024108854880242010155781346626319775786068249094733460015123093840887470388949472734651004632506379489719769554437007968867456417702752716662226503018003587315327732158129435282488767370218553010572350038159797470369874714266298900763240577746217046902905117944782629605657086774056653589500961894108546937115870670530866749494007638930513413376778965465707662955168691829087900829109404800295347861111110423680841676387277857402741289085902319422753878458029520887111787498001015814989559997742668307980874161438115288627043620959253288477250559690619985721599596224484374373687877311873574547527016864004837233348815784512802461078186407884181936439613152577162996997882468235586264315236854214926372373433346773297631363415981692301960421606734952066203958999804318313467904109821639527489672129483208747944348835243245217296657944447910808948258135098431256882142313629677607679972334018500795830566997307361488064102451179479044352954141702593333397252164761257502122250915971665888509808065384813550801751646720410407782329058917604348052726057461952555786232830852660085189227725552466356955542057688915645722438611083791706278314328294135936412658919834756780326637422055729309895719555219050755333510471192657849970076562841044669521826234063288477877087440103359501793590905680744536695517085431800026931891643681574681948487497441448033074709367160605143901404824463789905273160608381219805168514618693315817550699303000150207859299965430811178289450947140187230296394250118618940850339825701547969149555798943229372304876245247048285690636446340075785308503469410758558530338815310697805384611589516283196644873849512490713014810352286110108911358328816609644980180081911935800594936424674836432290324701022321672938132220706136870213279195744901103039041017471205204142917106858304487231416174244843408041186496026061093564155525088145887544124833022500533742556268652858375686743208571228255978496208430310544997901604082573745860929661546227368550249667547841975262977199996941531791936756759029319028868865530024941737529585261551820183235989648980690382051173989644696314266518033752614271710244059177680195854310654906394999110059066765066866229296329675548474539028172292867870461676789174643020880903966894939791615635399894450242570971864968950801649730294333657512617608981953575028148546487062152777728102279969150742285071016869231331364751903825979304370750647220084503929726024445946417635920320242105130763221618206637545426344661718973989187084175367859456811199483824121231704141319628478788526293863170192893708281071794104116666432444784238333584032371357833300678147799219411902735343710440485181435881979924875406054679830638194905174964985109636691820598712952716961330293732054425533005167962228662233275965641722814665591668806828436077444925372981232551674312173308364392503366476797011876854508137198590794770634337246724454587384134323444334235737357493250540662705538798884893998837790480185327264284307373771956531734914034951860755723286155848875150741905491692347966586803513594685104612614926313484751265294407319166797458417741684700172146123415585910025923881191656092946527389416464083671199334387820137863429327616892956257113828567754153875350486030047087272255951032021858765338607368345972461503883672849194596539488044468751789923844678073941727378277523391593494364188238263885740659965047648254037883847765788929442588372091711671496449614422756165433894377468194155686304662289846548882045025158825162220087766583134197129379002605603797955578951663408480049935215865368303436552945743707904858030659621717251372585690258413609454888115629190881637279606441922617074443418599146967359514000139550792236890824492008515454414070733395665116510630626444737112838853328086837229564826701753277972980394702531976186852713639524181819295734710524009560269350791710335503037079559143572372482430125275328663888227036357747433324788110988902709912532910780055676305558586625428662159289603636035460222654770046167189909960516936289759297488841665987948351807434954242778082777125322786066500311952825365060339187924030308647205817864243604064797709743899933239660883501707321397034574374477949655767202193495287312385453703442416906965531167726561062206049087549883567737368487588344075621603875243604750184785018993453534007292960261508255922929400188428596492062020999154962231463188576081356940030427455152465677677461126845426257845042056218764870136600600520010712713063118048035411630781444039350332001760862947222661541264466840638776489706041574956111726537040366127154502128045097374388275089903834814658800156783920388145808139826712905601717324808349872042156085006002011228393724551155515498408669437991344604029076240070838039564568456883407477663703548236276434189536955742549596505964884469006149848192321803209817490208989831020063056478993295626299205375717319907023234920834126329919938071941305971039848452419887625034453243957536683917048092776470823629308862895244756762015934254676922668502392227343723780984730738880366221452767390129252149044192530425114593757873256131617193238788042423592639539632780869049228095193870078736181053570378088562256753907501378739427947822126496034200002409605399264406500691397270434944967046949826787717174325108469090538179251726108388712129672785694776240484112589049782848089425747562556042868097096693379901298843895561810822292672557459437974238398963678909646018423588505191524693894550673360563078204909162089456688091894766443080315736817296853102141808496091496141036365713796345540505035586812211839553717507758188856277179233087314836681806572677850046726774732046085140509129188390269138326790786984396716109941297267704295295699651589975031935174507060424985710328850818067161200137117973158055260709511191279116374178853661281950018619344940777255171999346355127248901374011939210681245677175968640892053403232755520663445289914764053199926119075369001872229814716256637128407005802396108098119251093669729503150672798157029576579373031667305868998167366705531432525648358844012097261695853556564745517566455482851919444075814233032527659664853443125296500106166026345216644663626936078781942037608817685927283113791749941773107965799203007488850178434546529781390616672824560552127298762191401163293612445076321910426682752079779052011830417657188285219252901324023710831722143019885594259346478800922126345937670333997501743161599113404031812036210076437691466780900941685956202658757516377112672045909419391704112085614952738731466002608264385448258765701487476820575625922367633054306190895333485623202497482552185994093546975400215558570748249398557642938749951273454044923641168722662254320725260563233764572020043503054570825222282729219152582722038058201599932166523693982844207943107085135253341982631747957834945191914391092711467469363454325901259463959886839586261262829446280111654231158698391954336723653742115466639451792973852977236563828566857770066761943071825952676441239214188309599674802945716155226216161721161778512840917853566760030975754569172937422599710965876280890479733063514926949482251531637916091230829087430362103159550819121733011258295675581960250220330310050759880190110469742311533150514268500562015535295492582147034200510182012440285789742641146790977946264568049274215025579933134792212611583617480822042570420020677836163366566635481177372698710312029565415466442503630695206275145439151001311615664211421541009637474051993845012550776525705571285693356874427470170379907979463099507742140656355042780129612131565063455604431372241226576136956351991410107335048439301564152964275539471786842924587313455034741417641345066134598703690073392665594951734625432223195860774467344899889855163593844655679579621020694321609133992893176306486928047926164108020540478336743568853160764029158819506414340784361714083280686446406990105404440946819908701577439248457752158203982788901149596509883699485394317950036189892707785900475419346346773202418770209510160037887704399302053552068931109003015508157152981439580031601879146406763485459897158632994118674542206135618909266019808324114699759516914073480355325065743667911637069735657842799920529169111250967204437706319515559236926707355420167895840482880608833889628920086504474096207107483876510111704937555632701644296372139783537646134742786750586749429776777916676141623692124445422984033949318822224297698993586179670633892794442343208747441257466427772968248630655786735447903501959288435565327061602187585859822635303043141100407848457854843913521587054528643336331514779918752770697264795649980503231639098536018323734942737327123723632481049353789485126630469953117165484037871727662900370743705207520602352645969358663116982058159084991403498086150107653267615183049590325903261023261935790889575830104931148377131011184958645542449865212019235508818265277782771533484488401249520348361444505941490881418265460639922295437791375546967864131952309573666397445460437678281669223997824955762604079374228714378928938720865179765576624468096857169947769324281862959225849245011017738264901481406865887752641912999025932942664965403398680126313195155656656596091222090930264173382938935254354066782367004916881928702426290469914571412199010637741024098816791178407079467368166487550528482862481514122516623568509002708831613272180515331020991252645273958706377340330541077644208811078905048438003484748166605576217673069894717630681088127556214207772014525144439773594631867444909066006099378964716086566204609612453379013827248215882978459952423096260294070019315709966520699701547827889380448208973349622663289835614534327933478701146084841013590226182488754844902773110871819860244549835746742023888677931419410011478056753608394387694425486396776927744004972822542930671352732228289467187807896475194048044174815402236050047669592962566209582703846768891646277962642123799772632425711044762186262554695142340888364239830356277743468958818243764341410993235831890599528074890496187722294889738649437100204512269613810199460388430101233675481023180546953543200102910531463811787678036510769640596223484407941561688910591021190529903035299606065687341949397462550402601004867791059516157142533494609924000484775182036878915632651153514871170945837364402629530819178843922511951131530527717958343163795884189210511111532190638198951612583117182022936654788844251665668203827771798806249874185709821454688972658164920259890793167035340990526400651896060748447741950200356698459586337485843783319839771216607906553399586990879151503281310611502910240240053414434012954871425812870426648112039869317636351189918618151495071875836932442495462786011072851381617203230861773178357500939082669913519552203573432527110534025582572814677451706389039392820104775043455228215074999508293065295694128845698085280024946507188167989287293678390690611096715928984864338218641569195880706868400707387333705608106576154979965050853578300826385523677458091320589468457071416014486429022307885439671582776178740112194506290139392924080417034067540211048208895152209637993664031830464831941424923341968063284830829098902721780649289302140830344881690982817985105558958110371401837459321650717647417108193968019568952399241815393302706012923941219195703384978628946230173983931818922346108426898923877156690406239786382881074320784449518826335178013860084828283797428086300793125512011955754536280558836800773157287794424557185499554834528821006299191204334505099722449776967028917375579575168872436409431594618183026462861887336935126502828845141607037894452396852989753558618931051537176062577190501154947125289870777556319576312984298712321330409576970891617090570490103109544524337731768125569297043068058750630375348669000989841011047928573442906860615339725708740530489981838723366522864229886098078380770458692766700121021751480376949271577372222860696264226140755721746470082672124860224191934131932639959638434559306108750809443943924331704576707375363736954207902787540833069527783744439249605377733321222960543111934176630897107421591375306481352510213869524936104006535632173912385226657584066921905996329408769194643794109445300799837578282877834272122231519963173561321170328684024222784277770561452268818374859259291599472917458981190895345504762543413344380951570256327698696715862592598805407782991414115303405946081713051105508987967723774671142713004591154426728522817041609233579886914786305829368485206205437323661667205234363176960941124324601180411980795713163308531550086921264001557865759876909348813845301876225797182070945768757232898646584637908508426216212394467362538368130901198839222421975155894166564615495869652511773163095558383260589472242350529724495115348408701487412035173192997247788363792783285109367885144013656417889167218482728386310941349760134821501007774060469314785029301074715036073028400973843310192136045878393529998049166818695597512243643826148161786020279867013222819818521943776205605554195842068328811717914132386424914711144499362305617432742977996328531905806380945622191342914758357178806560962032973764970700539675564085507021509210337245602368479516712599165925133950055148790006051787351049129593459109331171161576686628113350979340633903686563782020572370240771065924476127269201800937608620350538591420261088705216246579670695132553053561764040549258152793583086027360948551983139193708604866362940457018389032879685618724626779183723351578687951214282898751092045229026909820038414824285570162094472423821638378457890588059630024695436029064129098304294528709681174106234835271160997884341295215525716235358440592106989884738906161706657041049461666634030912779501307259358970864256820230898749905545788456797019310267816641120325700834093426552772750784687558426334038616068510487253096348856974192511286291780508053168311483914100656521094626305124197126384056156046886830222604895376717285409343627010238626735745939142077079904489914905194736599352226939509436156222418319944532972513302557951855649147202563273446729795734224072359221010264416947910625740413415894749526518860220958798491323654100187937888978408480546058984058351922585606856569754345711105615187678295227488328456986478124802770307387653928220124481122368127570958789931463925983623769769547029485561469877245316899584597926074702928196056982033670294861919538902729736771895919122935416157451873705229559012092508434342668911826860315881904891795964648779952999437993043842470698014275732780423598306586702064250075336551629827510761833697102884951542714240815491656123464857445105626277974634849164680939070026330597117714607422467845450358128487982889775424665300755932447700027214155387182844259649229105590348452208278687894482783067821281747387304419175383158825205435406062150946062160564568565580973861307598336607047483024952630183929824449828690291893229303004580916481569300286531427619018850281339889440968768484214176990259705255615224690877155305385640138612156249269240690141273298642864858635048864579631965295277430233596456313092113451878103699959948632248183196429549358315254077956848415361951027853789384553772667803389045634972836640702669330710382149457623126964617467221879986662882793057353560613045142269886698773132715550810096776695987578900639068484901521043116280075969845451071005758530212905155147384449419309228849505774479455441316395417424745205257670842888747947979563374902651073771415224088285233702066657434484024372287491051313439457157144662725187748120151816068388372556787174848686620517200115274842992238123114455903635023086465893485854493226154141586554722737945624943400560838918146344152158502819743577735392070903676469544382725261233813545581264202276355108174102674306986714975159243610167447620659542282405756228649351156459352918174036717416019424705624758357986273871028093738189901260210279479539234019023588602642082778917343418997434076295656723705549316946888565695484094399555323549603344852828990076332458853312946185593484041184891505130979660319784717590334147841818984392423522563994123688412256420161239036121334516880393441996375031147287221539643630732385741568030723160383023427841112969332523346873201616135672806521255894739365849901606003905612388261704335795552322139620942458648546062783637789214357498301216683963277624487128560951673474683602707982750376024098846586046513933940346117099515873640619006032131128813588749316666792362132285827478853080125020085959090969839285209146931211823595921771974999791321568686308886069462520496286335543632820559136446168379378355088408097895647731858042012741161900996817205029214659979102990559585172325559444244646987152574485707602028355244281202397359802438717900145296700231616878442314532590301924051043564044901923004454233160365849068977081754470385422924252186237059175481579623168400613205591088841374245822614420408988729924551648282417007582014997688568644966569056531173143189094254726444569082512808926398629573718369032826749812890827058235181949853275587174725316813560673932666417150332443952609679631514111366446516388795887246875863910922815745080231929442564310207467405797387026055400390401614745261583562361028493585451251751719802362951365328479132159949357417974623923017558275905208591540238096582697505779158215752023688159294690383089268960903438019593539672916587366974347083906436764459783703714897116544425563315017242436959849964252105801625823066466518850667861403515052309313558402038271822470746176726995215040952020368369978657597811527644640388355780152749876425664202427883498883039679195143071430881246945237697787822386425233809387152780449255484660597157774274230093684437070556896866240606462805513908436869326169937373541942065229483859709979870695075509372610534946195899855333577420941466671750656952612097698528283822821650131173955248956518329861678668998357912264498202886642342342238392625487016429385046397512999181459876897293240124722628931054771451685233859268413872662999971839949218263693623198596908883207054505986800259603254820488207762733359246748953536213950329313748785804340001921465712430043840961119720193993501602318492248787233521936187128376566865348166511644142076128463021953870759890070307036368926031374861619606744845062792037590578353438405148090818103024371184952465267572163020000410424610499934010012109629909810032694048974989276555200137696945552673682534681255849171334616166949441430717933743295526725334222784359962951068110152339927857253535024265568408308495741425089178819732359888681546942170397683294757056308504344357488470468336495187399624241370707722383166912645855656582728625820332192657563588560227005095463110198153933552731312286888498322486226118691046346102887888800875259205197348901423318942846338898102119278676418609882181973363169818883386391787177485599082150192691230453388511095325253506909246696023371034811519495024676173063949910427958321026091776041709236544207901029309840442585283454229938113612499576660469181756097098322294238610935361748347902498004090002680206663761668668104607258231315740977997037975392321278821226087311025711531290634513336084780756945403020086512003403776976472540056894121921912010425234755370777596777273432601765769078883185850808094352407970697055567848269818145137326199853618502241091466099057137641178317075716886584080031136981286622156234425069269682587945179662186741848122157333829252124219673703190543507374843963435992056678160019900690859035495737903916067019947533736279486599713403669468680218440768286115929685904047799387992636746537720492025264140378974175914045333444665114235000921446375847483579049334796162247250357204313431740399024458523987176710276249423544502723649373934730909098032208648284187643765581314142774465835403527480124257445120006511688022457881070763464291568100290486981238466144352572301516014298094682789865673098041594873983488932185381044265114654115675305348764627068023361401261551342474297298591407650924742684988637103630340990520701795147339250499166175579852904608194396712774945000822127627446733220265054407617645619748712360018224361848201690564275664105983876748671166091304331780327205317406956920936325242209274419927019462654437358638070421871104399556633368816471053502221345075912121330333600567589138532591206929151777600258736658810955898129179754344646996342943063705824441377161115430261150170467214590428674871683695838043033591009836322696280038021894105160208593561632468614918306763073666404701208863942534343883343102430438722407955565252955295787236947961194248933618450085840596718620710762153400907295455478404885575990624486414953641742061704563718509753042069330657762427503022504770548140912836110377763260836121314666263596545658459508763220674538319070042309358570088830344863237656696088377316427196363279448810392409362505444948849207269383328839137478735110083272420778132796004914768244439029193968838674940429669372754013837852330806973416620288999268791463143204201529592583862654245636840102560819202943427737986290230362055329775360083469434185011724300487075230173779406214365574513010523387348434705351175073636976728718238875789688438721021865245819737312074081884778370635016854155995158469386196916420580885207237616119322899350307239924067076387171070787136232357918508793956254400819388295167449070167952902276382878268219693579043166122896591773074520501967963765583797404022161895784165526994759585311853149135270601959758657396958291305560476506485606082933322868502475988993341738360155429423477342196884426847549053594499721589405868900274741160171941842598306614814699391324620458152157089785615950261988699655612293605066722005672939159818568195013639751234890989272924544770609147507179117422880973569885936232432710687361840400088789547176429324438355612427611553747386092983831034539311857628530379798005136591020566087269645714797824902103889653755639037575415607895210382913566151432431842880174140277394307619207634357875224069979999121904828191128853718394373746206299643140709208095534948242792406727910977030672054701766094294877312081221824949037243962853975566356821446873263416829340181866062850653755060425789084184427756598239180607692832449014006633276395341834313136905658787062348745882008630654143819024924890863398940614968745788142844876672821265698451525406575426100273512683666498679862014594683357628859483847133726617222114282404160040340301549073149018798793295022169904945134858463833285790106851899159269366404178104365640418412983274313151493003253874667183445176154978121560966697785263749313550558235407751190556020605848215599011330977149150608394793906703633482083944887185781026080510309931370162293049467547540020825605314669225204016333774433622408618214372041470949398711690368928584144239310775587581286195118832652669183444882359446472448650023199859492585727980922016357852842461566728235727803872253720850822866469548073157426226328727988289340175092261155996096344358857132586786112379081679148072662363007577343543257355115814411476554074452461722966993802297277190637089180474156871787844510331256213791480995652220633147964584025809668015736928825634573473647308222885560454055893769874307140608550423424077365012972872815844377348135906718072739023934150387241801083998883486115804148892660540592046492714006348476752223211628088641470150472780968512517663059130320007934665905948282537909641301169557476696141994108354334733408449093726867286947614796563310754573581823854810105027649835116533294579431937459110839267926804456045818186894489514312653906332087263602471511363164921851502677613863701060576158678156566645959032959667040166140072615185343250631764667958246252534214260445406416180059201569440353348852722499812132014913698810118399076092842600304415013211669300914646316218520621913190326845985412648785067557664089110952436051327654453334536976609104726958897580903049021833410838881134745579846783882260260552753995306700514750361612405994778559870088677433932983291328721236604793557324902396281324432140278587190661094301858472897953614583936733855926419035880483361792436260458083045750665858598028111740351380399465932865871113782034424221312137657553177589909949885307404098478731660408784283577000144691460793944770706153372735885360550124592632508590820087614220874268669774674355125296776998484946759186751830110246627990640252958832611987473731544879646137277901351853793610071866288137319654840753531287532691924957019988963147395214378073202547215715461549497826800143107654351965040795798476503338348345632607981315273867416312756056629662087907864537392138344332558543572357020235027836909518376632172549426153079244036184700044305260283645184326103124074195145245067861572894366984283669952914343482939230449052107514014035627373891481974079711521921350240010893463501807042411811683881922838503904351999085857117355814362755628878343102672283698495188384187509946327187517895675674759010303127304881077725898616591283987506444873654373352641207487391031289833008662855534112854399948943335795758832274522699547405439560923887726535256720122883523298371992746546523164300097313330430010256280949435972458535491942286992562639430081200719958240137544204876375731560543614199806952261868367896094115172584374016118355404319888715873187151222811984350916435708546293872216295449990082639310710936011034082046236427171662463751414946584289223353611446446107234266926387555532449813524192248798596354576140604864570148236775738879946632850998479793103663277694832451294365851998708092977591833362466742078641462620082316321924430603960842427685315468059677063149931271022307519115868534130382632910908434981903270068818355243844143136881216056499245043528104446028888035985730622025228207878293120953930148639936884149614198603508327480089691442178733600771281831700895958890591063528947816520871436162400080627705133874578187112164130812835741974951098342281376312785598314466411053654751361833709160952460680413359037129047505832912578814970696319777768539652863339655485238369623144954109159386171725847053343315780748489892560836714967817324930872039463181742128710083774549184715590376290920101528185053042305733275286644747497396321466890847852561708370556514734692946463269848464730866705599046719382949232427525694661564969331409810805061443908203546100948847044387839613034070523259690471837095352610874671083438542584590719407997558087098150055258991594461179221831428846149148216976219666902479784236972893811368291762370296336083358084457239126868060862599029254084973157254997212056389451196373623443797747269011975715066831407512554853220691088606147177971002204164946519027172081167162984996662477244831390927450455969280113176072996613616206615557751026672911177428152392317028345580665239225339784855099596263574954070327204442961658151103927764618117075466941430249691445567849857371062458848207704658662826177083014585801711653794392013056542261740512172236696920707998992506949364933764490800932318220265639723098419908872237307909264715545881773903478414712647650638424026590609535880262880552430047135367808196143043820161930533456571253049858401524701173070578856324438900873557401532361372655054740336213656221390916950548527963725604711310012195471088481232362604760569919831795237399692635090663711846982246195309459760137094399428205709929256541398010045643971684889205584180875694785630648837674124518279194610483274694285244403322257144831541057704665488777452854267375346448040451423805835024958571296756572296668260523434578653304175896491431534233815439872123869468424800346877503366516949618839206686821104611420570979838657372848839151605869408439858484811917135857424440206325212343426979663855492173358515836069869427644672159199814563349792822209442619981805687563773849414349612944242574333357909260572942962590415902759514169330397012317317929935681146355264369969930761483066321887679001661667948095648883987344447064904301940569094935013574319757483210318389319327285096084910286772885582541733645281726007695527987131097079617205386079646873894892617167289772208326334481471093992055639146467953546868066386656345498881810721591777471911034762039390709067376049115200862198644849037922110657494248093347215964453292346812530879287272603376011432268375408237952052691294264010811529443190406871095492704323857531724383419548583083551517640163818387848304805456250383950411302053602167353999645618631382665703597374433159105723295965316732228591768350524290435783116166155449522164657300109939825777259087295225632354932914504135912227128347115672767367505321790216693664848275631033587461337287330883868980749453620229436003396693648112563008588168543951921191734648778151634978935389904431540267209706472229843036830629348838720155982946741662841630428629430800475204087367106197248555618503505640637435766173278093815447719687674785417028465401948644592314977025664985359908265660052042894015815735285566847657534366310196882359161911778079763525298235914690020606754445989116153834736173522650976058395838366471091957023566198875639394673563093133315969249889022946978709537145158446012920356558941699297059309053140088788355792597982140696659668372928497010447845800907305123142380593283721961152707441659969267833688943740509705017183580220596474068656872459752194200082604684493199145694698619482863372248899990655262254577401979465959380768500197998887192280225892519564648027004088573613295836264197990765630886775254368623212587858730422671286595241775342330839920849722893843659327389556045035789188856686548882712634033957550301880563445972634179877523186209207216436269824206118827300034268240036915082582513692635142431666473317375885149286318524255123429992029120769330688789153152035099077642769524584211922168921417612086242803560747337239100110544578756232861427425591080093964433689586703364530545844809041778822376915748511652116059506783920888246956251168345744278122307302829582685387548501355995544087855487539174659225348486467559627248841546420179401205589735495659195900108779967019432569043865148378298439848229561523168828616411458199836363604111386701769704876475850829316226978114269339548465747520996286042553600476840064691587008794412658535448383727725071725608443502019831290704420191594807320946625091097882172939399421276876823766824615911638895573549516489719083469941212116748109386764379310907040040175881743862796109493412175648565878388038706009663105725046006795413328748653204744670569660632383668117611443685355853288664015765613680338275984498273492556457248364266024210921157378536446313537463217720396151459397416739710499153044959825778285321554110146812161170942347579733874031737673363538286685819697118955953217499755635129883776229369968294105685199681422307277243670958657196656531856969434411885760197741343033526790980572564102869685545696797503580651106027802991108307170917428460297874039939546852333127821788723068617081823890291625556996209189562870741170570099176062767511443650032251110687289046434777396719077607573886271717002694220250742149736558057507335589575342187631773054573225016578196634660807450693631151925774577512685154691735558537934647815734347783810065086812715633792939009049206615656539440114451573247388472056104672229105578094871732550241121873859581800631525555205642172209645042100519522768371192734195801528583780410479971840283320967094648177153679624047007240497737137989918151691009288473192518893223425824510139027060379937394075371311139123209278350784709169592254904788448898214346566548331808125426985544632988166967213470201829018837916280637172318447457719105215718503440104875558203822657537089457734450530045028244640141810668599462679972722216814959523237875195296309550456885956550225727838541198749279835785469994356044818282597675299262056092296975588065315793063661396118623712177434312935077429561481861651278801920353261373432577298714801314805993148289681230165828711642718041418041486560693986364957641633838734282184149168355940585148352537906450614409096420697815861763897630546825556870264452828695145816411030396278933948611225157842913307759348018448367914966601376012494849472206348713124224851738245393691807682115249350068276366403355575376089236373165880106526980695318491100240020090950773388275802612521197541645675013197640644948813925171650853829983218636987974565868125780226993468865139999626692893285555103042094477175304719988246612173505635325054356899048656745908954038319494892697970215963804349217471409978580240931575886576903194537936185503735139847571054585872927778971696672442040902133776137386153317529417910487296153370932058114684254959249349382589777221133186475167133130452948859446578910615356831701685485787601983757847755330705104448094766689968810550972599422874671377840368709045751295220444368302894066559394778900988922666827535268521473237792615812488938006329948891175447821690108948980278257585449801500847789143369849854098524821821190374982041301297014477149657129455526343544770307213853278670251445748398789499572422808490653935698021651011382454068590813615076406611178805746958346146446697961019038429353079469112854903212134751406300112108055272499957287482524396096512220296431342832477321373628808456850955163258263754390158966907087518716317106359621921314302731253409865724218742451437983881763248587287103773226862411031996552136383806477187141528698393950569758179146246518570870893223138747374864182022337117422070030997237220662179143641248046790703902092716128019928219774228023204443909552938559905830360576657204455686984172042192526174818127425621297665231727064456196367955157672631432827988776355220323600244945664597788713229309463497683525066277380408767638339818816373118622119246129650048903942113158166255037336547100725310856194977695791374622173265430374616171997162213796087020213377404564998885404247424084822797958872871631580842018415426375278481031787429030993132467890694971013334038955909822206026045518657602046222411767950151918205063522814094027980218539473564808343543892632759184785947829438900316003526456144272833031342956674806427477921937689028232818316259828075891550904505568983256557352239126307416489333101529037178392717383331476263059681837260824962181035520056053862063385030729607636381655436144783340452122487111048706051919729492900640396206214880672665796214947435636897816025101921532754304383825897292959683472956568688682845209101122947180045475325969317945982534604685438089881787374077970296667119450925234354707761034714071014660799547302264962104283885518549917556824445613351998568047156846493330154450918645057906319941990527217576908015671295513354101349379859235407517310564535371793463173442041457325884034448691920178517451009078858376844366675915035145205328964211361608255359500544357968530219434703344069982973695083719923111346643312361180912506733270081248126798532783359246537094735203345703856093200851544107916586580557272881367742452923273413777863170746567877086707384991960393876896561319107418029004614795628525187581803254844855829981307303343840925894066271952167947276879091766885069431251650466718318722410816918495740831788007274101206077868053311512060492278064168216242702491173765097963547054823043480093212281195819232035473463747221999335443271553569147407821642210863887301249446932229448134606726450170133497366799192718719648953090927468104786111847478578369058988317890221102716790232956598497903760706897154272370641516863929871222287039097311833930742924192512045793754978586423564291177870022652979067948169987312274131287101342259984422378730451825435025637570508553578562724957396855918715644461881161589160798034050860192445286377854099975231974279241281324107918761731047980490842822206710935466459001259343577026948876141923852471100311227936264904643174985828470573663027166036614439861515687630403581075066756499467407100599256692851496641323469854975951091645876331145280275021313989153507123128688425526456609587160793598986051641216816397583383129072818296823199287885759975682687971616056486953848119427037508325597636329644809165452040618649643999745583315814191206089838218008626211524992076623965784518753922312800690890201248541489599496427158317054419629949818179962508014927994894030351870080338986984253828272908556725634123873854131590903040998643516372737181164145143337470066067724766021576254870763885032749281473681753344681750791283963205023644581768632530780018466601318760256432509069782224331914306898741876732376941386638010140557794617564113882433160020884934852345244134130989244656208876313054808554902335890350558600874770216346397760471178471348279302627471367537258338262285989651198725271309104861267934302322312479694405645013912994902706026123380772786761290338346309608271057824151833481128786656037632811220521137688936891251131172128603770027417486956887553848428316380731969662630548312761402766062513392124867486242852256322299133852515249228162111392746283838576267736290145155700168262846888869347299941512978580568688773392587459605919826648453427895558075938079025825666892709577084414183824325450628699904558021397044197493373506878009570062702172196941810175830340066183010470305487900617763038853394644186412535061001344231381133268367124972819700434562750322663894272761925587970087177260750390982519601471667371375045196611651451787121584897982319104157307749992459623380212065744133253573025736766177787656089190298016161088598826107963483018137554205435079268782625530682365049801817350747968217505195836368846792941517999611747605731775108136626356507670460096324135662579912497527492780004465200482756989134596533381194948200676768909143463165719736824118751131854763290280208425429544388131272753402792638621213086351092971379100889950014281784468740718548638328200003662822325933839185645787428259233136190118419464817483547695718776805563620267188575154581962953885960913681441374125813466919949084200058381923670761502355335716740267126225809016833101326571513133581045731486061275230658256714738449789005737483172814054987498461313574877044532279207104237519748161353227596541173393999798734323426268780311301639735246286850793941198923227934187417709383197775158232227257429378524184025912276064499461014619810211881153704199449069248583078296626970910394604841928724720042980787681092745227406935303297072760608326406925154217731255364511895973433658589273716455106288000628545506639140419885744210590169174298550997017638302072467097233135955003946721212919897357634189850799273063279146996371565851269895950085714132539105836624657280015999928171945839505028588234723585331625183616624354791318747953909057928558193800725569178758128786575368413454607311991091911733485562033599541785061380526135540290203677941636203430901109983404232146905006919150397203479107951498451877019214711927803689875128324234710226618000343323061584734521843917573932254664346828964435935026180870443849791216103638103956724147061607466240550284457476535010351814365890950429344438001261819936160404485854099588389151327565000371879012469377320717922529840704147398730919568734092923769729392866303328150820377452513237227921927704264374100043776267106462366959742315703563077232646427406811742486364969773409850789350097769464326245304152428947207730076051402290974087034498511660124837509493997542096755680003145598479596412386633943228444981949763437440105855169302705771978867050552345078964159544922819667478925381911685779512118441011887271706576051370810802323223587490582758426316826686363205268274893933585212357286856292775827492554276339937581941708048552850516523027279822398862375502078232919949944665218538101659996527134013249396424163126778682177755829872945293602404801154349659055894886783461747641890581154866148454090639228089168914087946439946656146637174170970507902346124280374495041846291249983284382003675234358279891782094385213763365295967636988570895525132212900784490700260134678317970291901701888117016141031877722430853825290462971546328000550424101941373526879130533211476795919115766254816407474753670529496076924843140705572479617066689683492613355318956683138062026743917935304023725871580674987977460384072077139892582321844536971222312480932564447612161433506533033537327189281388103596458964299161436272220887181563640853173621356201249951229981579405411675379160783018087874312289444413431796924742234234336730816399877321053486728002556062691281630229681842802829757988255288053847851521104274854452514045916992828076745346935775737356336796710432874173778301353302979921707078724975598156597193145678962361357993907603277332059027679220521837407759152446163505924881660832550729616238278796260673879029681801081777995128073287549834268621241154646086386209171631571217554389127453087295860479848897772143315793337207413976733774910185737808533353137422587964220652961878159970234709059475748853407441581657568990175364822554353711584674919922495520203291936444351027588711820117531542938607292850081124168364869741870744902771797494013202148537759391631239952726793730056809786983822362857462752354332266077134068143504294130044797745890994315814572694876209445969525830992598631344721031696036151430658981893046189738997298535307610910468734338325260401802472527069942720360922477545758492497368448579042483963201922458831162308460470305457116060068855991170019813099329750954573292555513690357926352911732105674797270578300500640161655518726347279049684274045496304431997770991749873894260367806475782225939441258357962797550712411730332251844537816033836173531473574740771005856495014001195260898101434112492697257395884204655910426054999976074100434682077755852391061115345885775648356913664274101649332861156136804237532289447980726075043500989766406048587906759576186689078894727215873016694712476710772283748680926486109298928480979944442148085377981646323358549697028327288408206429628809460954646724864681965053468257830402305658252964665916516638324673701270566561415512297522422892403492177683697408787557374870744141785638287835791527309422862760940856221265780850872099882276948647613462253826321806238916493681865685286487304279934870986837137051389173629632365239725429901209958094732981422634214104395565875146150376455295059262971838449809219928970978732157916381527639205780602875494456523970191596024517190937822629426702020905187112745780407220990897737590038034667775197144926985391165360885187440175251217189923242051941305540815897008195957775239736741902396680141876375204205992240120687181758154566515247432272710917962094768321332659525476416142924757554725438201925772602199587970036603616386585743977863524790934913603104197284942840868618937069748757172211753528637002558272772006390943594229476108906617026411116887148358207098392162194818990159728665247902270081316770752257509923525453456885887490915940246605369417828143056989443181376303574115623376918754911477558824812872871971871279981763681154507722278801441841536949425620200491666456252416846715754939869399536972495562008376775933910166586960241742247205386401674095259295950790410367583874480336316232709481014928154443766351982444423444469447738611898398468082722836828050455431560326190596668495460073135207824727029786474500429390045751366894846064708630467471188025477557611533986315856308627834475816472796886112498364138270760422937172012676637678425936133078634476242406140845567226566777683247350480734839438944014386795954263294588460538992260864181201026622621626097232051619594867770327917471604956295345947145709055113112526192946507305491601633781418688976736425631968748434707293923329087616337746044686624695403351124718661760216933819815989446877422205125878196562485416729584012117905149636910773094446331334398462395900577964354144737938334911109944823723834470955049088895001800275719255082733305463267191901973546004809042839946446095202369324261612139806100868253877279539562235109157733407997694913832732448523962930901957385548896127277970667717016718431762118541236979236515897663375477225785354351694112164791639321741884388574843838402327437407594953280887437286561073784044152384434417588011595133862489320724845142776251198257218585992291589552492265902358180988852036563996264525068648565497194490487943698728602389999386581064308869694117521997704200551971378288782093905654793353116470701449820338279181081317801907776209267248918551209201735253613631203024614809325271266556339104964139812401811664961957083220363227212830151271721398989067942932983351443648579114414499144713889203490477970915280192865510947358358816114012011521668485866721360300085838413276485032554803958021840839449045303196855177124690899150656255514902962451914957113680617318817934779736413984789281704973791885628039819596798016932967420354473260413137139957112535875236775694425684732033421623593350689669668021087007651671813894237376068437536562511894331801825457330982190359390226032352229277498826605737493358048694486168743898560600979905678729864475238095604961080494148981976532345460492937202682750194765215163770142957101263677036699816345461091701695853825960054021528688291697728261189554209425523298297640649261682283617769633604646340367183902525431877462524682508343474723782539684618835488854861551858224941959311209827628021392065610721037426939123076042077340063874628078631441711391360536123415465741124091614159581925987931502749423367584997492245551598553620946294128862966602469015598424075506564947273752070749377632358503393478461795531869446010121361159644807595090493993889285692587754487276639839593936232111035460084411143374330555679482910162454807667879636505859551428187618242443729009609582719704473845172460051434492839014873738608735855873621332306321935469695280396758059887007725215282173762550677546781171770699483356619375874031228151103398309693164519048420625645506411635270337310624817498286414327535811468005483133475381949019130321162920242081953514890982381056648205872306223126109206293513416635268179007498600968565459316068696541302027054077421543908224633930001257653294902424118728024955019034296080987111086732965917181345086516527243970967523079998915360193251495301355500996453159386698972507063486144520583182467672820239234610941787989779055415672325821322221641276163163187261074418478198455245694027360041523908957112434909514445866541459697674448095747854164862452136508523572728921194955752744178877264122418415936083648217517972091101905776480496230422737472483755507428583980369751254748771722702882693582314212206228202709097629291867623624663438795323908529741852928221708640016499278501930901182104879625465378078865595782772948672263577806397005584990507805392214975846827686605802054015969510336374484871365244328894729218563920249653932686300628639102086844852598232405526548251373329292879779779958075962721305681633972284425995292650002651017178450521605290977821657451985002284799354439697398267989869231135694292000527065553544016424569503611988349522684190588936309215828467713912602282526651249157605605246356794409147473363367012127445722583413428461947147000239907050677524567691405988104507333200365939549359929262299857447670029461202915706009939749073392480658450361673926058316282473295943597377654681795020290994434128735255679245805611917812951925616738462461833207398434494263005125040290393024545794026811127494682055300911805872687618942592468583931591881641153381186881291215058114620585013416018469969084862383706295417805516444702033299856777705360879994003838480340018530421463237122952998567927859793445766782666386672695585932359371142991095600490355203780854797855343168352600086310657106486333504627366026119331374136946252516608969610787971035249514206202212600456395130174231082000314928361822378152419095426011684857487182681529959265878774587439071654484306697433353170129725500253914844237795683480581553856206658947862846224885735514320830631255137583869927102886439451914748372925650555062943208662236554568569323145093084544813236141891350605835723707854851906916941542511937702346081602412277834657950075313246208249119778611690696889786998212861305300473529883550301775467928746947291433505312447882251222036278635084468332870027511008978860466485996022788777033768143797982716504515247719216556309812687122142604705512516641889612858246284677377878967774876245187878901756067002071327453338024324932175672625696784947797644374204813772372923745386774349674517622521565332151114572561702398821235092369606110856482383283764427650944679343779775708844324136748556736590470064237441375831094119536145131042006430317000339998318949293057464925106406110286846412791691330574575136733074067473508315559108707847277084796361864665565804425143727752476940406112038793319051808702035555307639029267048323329144385919846392990828020091257889193154124337737053809076244136601280927172088200266819168646864159136835583086305723097056852666494076258032116026657251499563952524600539682958414640361002559262078362110337432493549853743110261058569375499530814970950070445885313998024047694055508664472531332754247829694271547401003391751529595782935113509440832605999647702497483543898177661625123819384270768166804921031821111067706186224407759405076638905029573061850105256516125332151887717934469451011568379690513927222690621779699710109992785715938934481592902928702019289270968130262483062765061612888334145948632444602444408409559998990383191982675353856533378078834608253747583821063495347752576980845835324438962494670651360038394650370003612227959576433242153293829829850529939085962964527995294215932945570849816495640274284115411779877753316910563619044504222292747714717184827841290464335109826818364002690771826865335460241093224737965928829459524554815951414992730833885084985939715823808496116513490610555784389231208416130635698182761586562078201204766220882787300743478957110506270468675094113230263798238490520896746746949075962009785555317722762273996963157374355046856870387134120949680415636895027882532732999072010843588978235845801375218272720347122239629789139732836936411939754196081701595300203412876176583269745888402005978972106974831643151858836988700198747339587462743530610162081134992441678490667573048637462331146959431466312190728409718223319277564890258586617490871004652022593584978911370980823043985449175222026254980665948816261652444536123873463489499880790783538520668395327327396173185089149092666436965898146155892051785027782832714442145181088227413369830829747239649697391834802546416052191266042012171293019448307802885519111407936243388463504439719874455165487816105609613171180402403023422589124052174194528835393599746610165902715591510314199745083321302332672064367002694227329126981721617421857319011404814791734052318434139573007872641982645948398132328902038748517254669271227374393695265078920513895918872749629285754827446707469814432791598055740588660373170800365537843348496553667157307897487029422986509673335987722462389796572196029470377585116651791638490935308071567010833481198632084907474525849775893903083297776329729449133711380144132576143081855239453526993004379580009648854664662029594928172572704263132413772573525603692300012356539743333840769756537295091537230974885367938196100354302546090812463068863202008040315005058652186830241050314270684050602554747902718744871895733756685687548136233485584598765895850377525867286538309834724834561730905412639501753614601695904876697392175550186123308874762359331423836160731811482973291876813568220353955954880990865105613351323910605973646195192654257471000138070107887575242413476263047719735294273624991890681612649469288453769139499869570785833382660325740103857462403608322792381010777140455100308252146026974289197042808715200222536100605439176771799720908947997743224841635391619965217479880515513187747230605611560586187229344678887501794610153468108710135328523948525868703810421417128242084803245614446378538785796910788655156243722370006492643722537514095468417479415656133986037053555626933520425476615237000570614006166186458332937445166804884353037569766522957035633970938235303010745021510929265050630933641153422264328773193350706379820787485675474821994897352461709466803976647061159040036761490323798774111392316576243600533478067760505829960630830602226105472513382392914384126209066526599352454267544995349490074828115583149996276285170516774031814596273574190525685265417300996696613949249326109502464928586376941005461463998064360076945576198541805301775487327993044903087557128084316924922452256542712282903545804944124787065011902675238355791753766529993538577400201690914617756818067306969190135839270420258345576895367422274697364156345204203861863777779905682277400083355455966430697242375155909923315829293238257860084771307552314198367511464636873830361129770712948606587610494795143659135815337938195573384259589618365303797723843826193549734690103393608495727344430615042671754847693881415223864765980290705219700153130756299414636704929262698882020910410948130687269679491369932105712809391578809826177644540764809121502839522048625571795437067347296430667833661291378763580832714427402173589665310094402261289621799281997822935020441334868409847711080201945697344003728557501452010313121841138282007831245427110189996236201171448418949748595709608454826216933013553908174796729602004679253050840313510564808690474145725082328151317267081732014934214085974541284326898379880546787355688451093699973756739030029671359006333820487079944576611616080126836596857223244625681302996480631380616343606701036592052634261618261858928935839100380405994301201354242384662920681927919623433088842369335642670335387786273147294399756475296894491330431136105275046904617345031320814974755770611279431846576515209532830707252900083607902845311428918949814792455784054107301126171316842229697064151676799034961625486000881529640373977865248562510493624009087600088337643817002884986623546985906987802891413112540743466365325240612663293842540230474013194403553077667485169372219384453596180831277263959162086813593043475695898195806167043136688672339106893307641169152653844256862999298879594255608633229355279250663321306491500394018630943157309288357693953351910736036922842903303153783093068555607268545975390572335589436934764027450213789327594441848824294473050707504273252976473951526570604059571788809720050674378468703864597091667227936724510690833725413385199207830383957083971756236883072435686901341157225591801753843456903393369858967826862951070629870291524293627537673664510333083007626322675081801608528093127574291746834386316569414652701445829444238532157744891153562824761613550449405511426049780382657517853224416731013625491613658261915625020419019676342609185959657180044913618183595079025177663354156798130410151899138325337462564482086671154765008307418858049633340479432883909769650575125432555667521600685914093907451825319991581261950773560549063000766360614393872329956563959487444742488609988405126785910677983720645753294876053583756111050281987219301812748221496763454290743723428456388902987471506004031398039865223907711664147660142306725232163789448931983218509261139786520665030935108843913654828096475035478399308118416976370846759292374322857675989744333405454665729702870453917435935488184729947953132402990196041529998407521315424813890654099812885597364732918766172831591601128439171607687570383774542494857796397594716774269706069684614503791056259250190286317604392246438027812386707798076689526626061277310321805746234536932345023192798294033916406617326660180453361660117355289562494373715482461687106080042447191649832259782160084186979206678402990894697303294997782499591641392650483155092609641458843594718341427958055253236359440233481732251926938735076829557504406684777281476064457422869964157320812544886184963277232711133318454110457836228740489247872283204285439486479584371953623458434010222541988438330250068742474011950423672096586597062317719107462355360857365019733725080974140117525624088045568916301572484252647956252740099745693788451546323227959681268567905543137412438810868999941862638464092473634124770942975973014115860187423540938572636351360711655995999912400688869257956281993630507386305418892246572303364276377953804125643576294884561252308467614956259885351889911435285266008948217993379296988026308096392948223761998173668133181745979723577609024572683563105066825252077158587436075632098396443489445272927079479356335085123753442374185974297311417260447030084164431741882528539926777066928359180257635924530354925114146410521585334303827827094866282391745748524223518111538809414446244861222340252479051083752232836593677968252151442475313435569742124119146263471134548253216849162136512301756327736720677931494952967826589292409080600435819105078740211616004663481296184749319435143192334664339251236146429271153063591705553983959769059285999616706572785080531558805851178208127350340460953754384467245448965086529722125235807750069998837506735921486856973985484981692184708291196517765496264445452500263595265800254031799551479188798602799871373511732789905208301754217311019812150277513655142125042183080001292451387184689261471036462036082212561511944893045751093635193699737884684667293309473694998611787723438012345565174062987495110307161843256134375154062282299441305673375839034065728697595170714954706254620484886823262109679260269814209783405867460849766959735714927719448738100530444967074663147565485496265086422405754952234675936947404378760739094280610315356328952536781360640927850516072549891780794640762773088171565794396370757148592856405090512594577370820917187597820305644839855722874489055234955447844867373658727858921892098424909176710945443786662286685524329470448242847840273506912080241075667990327704724590526879307761140576477986938147575270419139342777093120273962052092468373952764352755473516492573097673639706102638866782743955517401452927669418681553815528313756355520775471555541122897529798759695183007961805170556761004098168467028598587082576982429721099470828500955771676716288154212594988675725201077718493789386174446236572963207613996531320765300977830975032159943556690356705244016973515611692700566825900944968547321763317523710189900574952860834830306980674997057134145482701757419750023642446310548688668855783627152451609324073766606882939365118397143530213907844833471336742882932750254214494774055364366279884865640705122733642981171509742708939256124025665655201984610322621760598719036998071798422111067228658302239486486108985854173167544819763777788583993478718278162263279276829929871445182584288451904467499565807045326761317037287967841370044661534056154379016053000187832084982212341416712702305985029998108250505631498189922417814902725093727610080307138229002497092567495440686603747680433374225872459542066853939523019381443425457410886747767544017858414478026393045137103231711576686889889208348838694920506331719385784654940780534218161989055970995867337236597875682474603692031342486223920275847591656746567030439724139865667705195739630381008253902071648245030604456044910250657985702698150680760203839662246298147132458595137679677286938877559105877388912043373644861104600336206203589894901565488959101712077629987865720155805310470776109754124280200033395241220262796234770653532538282017970970138832539695667037730837010238370871254553946914871458426500976779276232303199536814644382329206994707413426674953253284203091478745021399064075545817353149126293031055639355592231465570047030058313826261553326651192048022440726267526101992700685991752495890564219515535497198539958305439246275741267614963396332246623202547818004086647659756916411965982634700049982776269856567297316610285879158700957412820929447624820530252966321716555866597220214770698290491792618483935275632890169187094314349540513221226246923960663819682231234508827116582159794748981697853760774954800505023229727919386848264262701378273703161028295529176030533435685765667995273477509650853363060725617081013106853223881344134533488291869349214148062931557183556001539231232458543876204898120884233677784038075369742954826104672002611730230253607554494248503254856868450802245190147878771134679152995030383739294085260662276445423965294485267996203068636511058801614873115885199679325539165647896102290109448289930989545808059311781094744188736439554615722975913449100468505533824442037131755490994523184495557059896960717943501710460483452826622134219092444213284879574994886132603350762339580029654897705713784291258108110501162604781346860943389075130622575430998100038681365982509570785014597572300319789319882892626753072276307411390073709640821685412912224743493570660223233201975546637047521380431419195250350404058088415644749296304760207527790736894947459283610129213629228456822991475259514451993948542539587036767611849113784796241788192057378079085978865604614857321192809830184468784288896820257872936338934554884490987966472611857884107015153510444187955743665579306723880558302690333097717396679439875863253839457955156118681684554661152816710660015412527536898865707353899511602737009094308922912775423306381168229845094926492634057176163928584404375498741234355121421266558798890187285856429208351981674176948076151283607166119259953011486742979436846119375400840906125974057769379926714646743705289950871951570431747276865712675901917460191837363079048586458676548723197049401610655221702017084144723057421227536488229100292084988351292339847003727660643893829964083062262493673258340532392611097272453237331131256253669113782094315518024963073455257714914160484369292603145202732910165711311103599387520759175258421040045082748111215017073335321684155333237192140300329025237860979716532603314531989039747924285885723221399227794960663644968316844942002165840688991138446781869788275809489779762427890696160091443985566328488186755722326888895209972889820491508867354665306145421999801400137713802358449482858525668725319226191488615309578302025939715344642184180427331927411713316107814907609904532323245295689523832552688338839432912652068731381651407952093357417073052756648213972572729097923020682511179352105045269850961984816325995349080496723272829844720638149650953041604726583154012503860628892861860786660112866937379873841099924041173851311418875353571450955665976892070614237659942802533974813952993559603138854198129746317685203457756527419210905715726280290903522585309454744444437257774267832072177922392943169463210115416934330658671443750756497689506315735462889085458879224032460955393930134372967348355278650437963191828577931699409395274667215132139279968262889162603473590931990646397879633998607472580474533419781454272373905811920258657769124127585008660284867394391532713417763242275315656298970531274606229489880187759351420322642299307906761128081513904727952947366190098659378121400632698649027871690136819050534872534976764764915259829277312628241608596666280533730345431620879202021952568305514277979463507811379422044525637762740036203188900861659818688446875172913655562242232431740592175777383903983794600839080384628073380773210527145071761220417992325024813679518497990294488527271487404281145875211141350064660803837436594185077311018324952914010229927771683118971617443743123629019682822572522705598602159418241307052625245123930158460175769515238875460475932857313138411109571630828699520181730139457577350051639964443461726012923154458755575853678773552106055541378650244548092562175585491495944920815937485616070398664428638548851478826140384441928554098193439939123286772800894759466411056596603376963848163758314005078241258683132179699946230395166453178723674139626059686133092838648083084916279270619356786932919216469745647189466846877457856354274840162010084805360443643589445206391768889498660320093256019385309728897199834412857867089527640376854068630737803589549382228984141464829806851350536687453179701082916610508227994155463902625693361833693064734681935146946335843184673321190887462279510679922906593922011791958994815428555641389496479361381294034391686374947804853364983862643805616247001125878160703416144951544543772912825126640871953730641731268806264653994897576154509685037543369966849554738366818160877853098820878994172538369790662494552148044470722997974351185757354267345559030868597064612754241886643991379711224918372019995229873029462616770408005682270216548398283742893423540326421844906090153095381395445473447776193733227363771699117541817986461595499740978031049928773566633768001583077416237597482312512515789797147665543110733794274323770961388267855023658816742034356897405286296656218180454165647685221183409123427665144295212670446608095535066337599027442797191603469292774093936847301294045144316062521034891867168474957420112521002086559878641174165378296331699510675559166662516466581871023889730847602174502709190959582523605167676052423970517700854977129217205701095176522272525491839438374408996848369949223361470248691538742187522186928252503290014991836066023686368027375692784510219287177193642514721076273342739452149300290464687003202515087916144736816283744790830310925639692933221531833942752034388059493317141711484846971565505675548023237878796479825030907181661398719875619934599084882199336156730069681656278850605616475325510066266596539810541163358801984093433004747322550646844483979024472097998144115499022356405259768238103521444416236168492203146762804017810241440660665650305301483868858624866882520005503579184495664631299833879716825489075886618734482902998182735688736755123817168202054312663571121363527756715912205823096401857447168717700709648439749836618049728464938518137983298873010366722325767089337826696881349540411132998882985451753869430202211284975782210966691737369926805980834966754343777872509737830367252118086646301938416382610887521512694587387667354442042465047554103991076134477548405074603795374368859016732851643776058195666351559450995820770915318229375331003024594336348922617717691298859129404248031309582925111783185173743182676734094792518199542630661554390753156570724095544883999077253035009037251485199962933039207176130797250893327417235027903017276999138322851418891520045446807809704636193461663357160178044495419227434452847576347883354536432495749420890507208077596980531336626102386429241990292561638053441301693702558945860703587499384919004701914246415158908189037930983940245143178236615219249982356125421676651550437771844136506154884923936596425643920875992787969850236437410535924353137591249024556788862209135086363880510262556704942708393986575831204122158698378887266844088079551797189707374597456299983212285621351282877067648954383375720429511387634281028346823874776837077345109885372600645689805687938207182721093573083919059730404554778305938536968477568778907751106442648395334128675832775248028816007639827805587513455863940068954723159057242136296041917608370745084099488241990268426606342219351168776352991577026291167962255055826985933257371638147923006572777352742715547931999725309418748704861853166734092629772975509507883852446206511526075612535694415491127003365303424958655865047455878174697426595663375689158198515393209972424182729918899364801685560224414941011120000306637221478243325237681564085589000614937649893296779696956919334541492839741592230419317820718629198791456361253213139236834150085349789965477021583807779582166338448558341308208664976085496696216562239451807586375220267085606090406169920074092025290405768038680410219369428253780830193943777258966490886952494450063789227133268471034541805374104372488106704266943637278768517008330647049067636402498586574272113814861684363009319538350224694467162481779138940075507978357198173731926825849198960052494722569727673237619302410607195875949228320454511486812290161172152406059847462074599065246393293895841809908667943227345427842292699120793997394219081440044212182525561417437420862320112035258679552242535250970952092838092560733412946716754597086659287844128215725335499607477229959618356008355560511905068298429725836620905347209309154181282397771651656851576261510918862629509582520615407183695120264559818170444503903195895089875482708555154649927067781795052407408442821852605620152462330746191747703733384522129009041983889923825757978285014143945713620681871172535412358894567515955044253123007899032193823274149590451933747294963141499984342568490417233343233193529032411037252833941268407957687427617163591586460432363335922113611406044189932695834264054011854427583683947627180796596548658708394016504905447586038041726160929146386417441705505778960467796953637341167508545020164309329336585175506375660890033000374227122613658478470405398469032587037052414598034628159254390302955251790735069925509788297952747239020679996326197131413579684904211013553305754127277083713975902491932824283875199864218012216451867504276115705368000420837850834754237224845617932913559412932532576162978599931709870430200009564580184800003675782246285253322672646256860416700232139716337981398907935691580123499738391688057524075535958815442492473678521493353126920556840608837820417733864372113097944649783919549828536752579207237322733413086321583802442461151472522372745295161666048662897886417059025878656568266124235365714426013008508951469591599143952440490369364581324314537694657033681721915188520359668019273611831819142847831245590174134703607667811916611855642171857316375840681304051749523622884367143756603332744777137343130756755861057964859613719108279481438666650747196458041203425311679018542431320962428446856796706435336576760471182636238559363441227965357603410134124585195231361413008665975657428039502946598651591177554846376133324976839658049162756591916506130096333039729517919556775102545390468818404549462868028283177636279710667918422642705405616699872747224543977447011783209636225434286872981909828795980834128966907730306504748221620309870059837541315463966507962682742709737807080124527315966167644106028491733418381562611698115186047923098201344522991537990031371518454355295449472375781738669268210221911193288768847243191010274300869728991458956329884164747519170524742667976938071735884101549787810708042962548537165813544702328173688433303622307147844857625651013703458195212285261974603488629688985491856350222670006471765933309685081755833776286665007484721510264563046546304640079313665243153856737586710772053719528629025488518156160460918924946859475351575655873769949268248147080000565148670555628546725779385018084160456880925867751611506246867245166054298901057302721686894018108572789771633624237779003242671277102162861217071268392765846229419189603847749145025002553909889700107897558004226565882362456059925917357236684716931196538755711980004325978192174647388307171267357428296379340039187951610345357047151858685245955768444686374807470171141668086082290586287095432121900743185575437813925367386542742073607561352952411540794257089405952028428602266144598367203475023676019930158445507379418298250270384031475072558984785711944335470906689330903295887500269113904168337214059208747452947926747044050396167197670188733182003349346672939122113261156137376081488863546261265082445529007706756387394624233837917003922729005003175633050907802515477012482643441998429999210160674038450689421786692930114988311322908289996648490829118543302222447964279854108790834569473044141398028051286166266160270677147021384103565295522098707845846093606228538028914113034001864176252630888240726357079914914843920411409619700393979456605468600866928105142703631802875503868962661172413677578364309068035064805647020817620917885771488900564549147421041593772092996438089083682162775731081879746160159140541265157094069880720262002024489384301925345167822237140710061138446061773326575686579520147734140733651493933720359648805147606000782459258230868069950417843662231811024208060736315536649089137818311909223002879787375653862539520279754619078245849711513745274304414539534457628263754253346330113048608436425656305042180667375587441163924424149795109150716468812583651583990083917855499350662941836404038338272038085525109194437156562429310159490949561010078302065887758346683617484605567541128348757645632871059732924911110827228648576555394523582849425506993844367944208823487602154634492051712721654241289935281199220052796035122788139146387865970420810852424170499606781687253866431422066243992495087769446081563750084627186706009188793183644449916182681141761176379205652652748646626358377934269904606411408981193066840554664621203016596840534540343466278361730871448196079120130344692683504283865104602712798055783246023237340502683860745208282886746159741859803239576558452577417261424300227541544330855873927682510168662888647145295635350535395537038471592575148480945807355434938838272909865492434971564902150326275133671429603346533608586451013907538086631029215708394372443569377972203586981433514949299662539606487720438252855513526410221668682356618289194268747579184570553072697808860676958692371517293123684133185116103468501992035581212962731402462028873997250508947143911046283675406356550674348354145195177851322455309842113364830382536259910468226967420189835140725252754809511371940409029503503944712397732292222980663408692333579957573244610251422127249332332204919871501406078835016635325670706316593547599291377440231971980670057242296887924233510859659539456566333449895505143265521379419140055003142983336488717895425623457373266704644049292997496720375251643033424300303644353164440554231391636387512945135364653055492488413939892835035916750241702731132692405428498632656184944964082704295694439954213292440054502298474072390791523265482691771035866197124784189289579596945307415755131396550032116695031710514756930575675800112796449988365760823134913493494915716912712045098452449384304769778755866835222921290884630829959527001984573675079290549727103018509500530458606459847981310995980645842090822785956514158233819393262140544422835270221159342662788674694307295510398594648850975074675725310541412312700729446825070300838211196538527500138840140744371074012279410490967689891711201589386976006671450989603501574171385459915708174705800904538552590131542155307555719093923798519918148424547132199928276456768580620292643700108047576578815026464660799813483452921239901124582030807265106095929625573568942106867121889562552760653369016652335300334911721218712400357877281288686702300911042470791100329702986072710138349632716576157858668364502000765592421314417963376657631022728009912776097803282066117242319767172935548969897747355590015806355368855341920787082614062913718231443863571097085840225436079273124043865306857979867292376405449047206848826851917285172069940542772934670449410533568109209105329025029502641008537719315640692910302357922262695182645499813411918236442119027344290409096948892209677787558072013002437265935674140189464259262823170861352318391190725438409755397095538846516288509086894157125624964338276503587477559659702629044810580525446220616717751936573797333605356118177167277574723564991173201813511533740724521005352937794326591934557725586713356216137030829643451469879348378254156207549668526423046845838479993388018930548346574031882736776618850400238941681654376750543460982299124181247748008730957263459299175308406743315363207055175537361891244211638139194455958574498477475873664754148349005470474085682322927001773230516366530393128730613944069899652868068423491737235479374914833650099105885396525182527924859541577529545273025711790093829434765889708545876850318142775724204388298895738045765736046420107893374093892747182803385755777503223469772490653764140432939175929600841451328884483709403248490374385553041491469041128594558136409759356637809074175119241133935914931600543132463743096978693110592022319496720921689941569273825597710359342708415077313186823606505661676013180000070560537060197820369554997551110947859588304509938265768752245125380351764459889885557655993070920689613331903443916718238993682825189788700099840331512135639532713704539866166069911222610874051589226067589634635063358552343827956058019723653169692350395585983027773277808469355746104723766186021352439689979870919837674526902193132221266693829022930638578294798271187922884359554581821985714816867897817830256199548273664147740292094800747217989976205068598127631644284195127342727812778748298627333707701065865149667375118807870488983511988551391850995209856484619549715722254854905098212298026846955737198168982536024505742182679322293575798972279524121016747589982167135958670243371231308173820767087826645427393639265106116187312288944923151961416633951131041355468658084605187352911594924823200359371013146130164742496608639068879283035406172809180409472357513089394573943668417779453405761448341397154539899141882231439703045654714726636173617178306732072496596130739904980362978104770357483935999242479028256840855460738310352229489813517588622064073206573707937393367883305227333027166839869567991363157700018720253461728968958382395476889473786263712572374271768096802212858034684688920305476496449037786637234940874397564863002484731190186897746070563374397286388438188840796101279396885011238420963748119217866851333049927766028444326567704078941567661653002258051367038059991405405994235592742009484245271975995309906977525462087829711893333972687432195101052006042728826971711029430673108534778181354632501794246859491746295892334804933747224110015120357075580672811205954898987742410042897442507328214295520826470032941375441424795163482713210293737345523851489529839919867032370304288415274597091036835083653029190545077705241081230285697137182429704886704068744891208828183922441873611290573424111818544210085621113020372497083530112667820418436452186394796477495410097437280774695663636906662824523394033316673136549557792688955961588114928799191835484476717663677274324569813227461774932887269090078292131354113991397383597394621191252149732461551432812267272769877551574736554699599335749154484914608504119658518775206430721681896448263382756129479769895741243886429867717518570357135504079033782479955722477817134337243151753425925150755544370518117070862727794902291242784325921672809001175031084930718925269301534583605350582601476889185759792174355458678813307567146046058107602958102890458441014134970167548324900168893550020770377430222707903414660078268301909833641679321232866691213182693983172699171709771071028746027445618614001812319623127538459164378850169976358925926003554702937015208321308391106402860751417755529699021551056921694038396232628792193903414136010836270798505978169619714127384562351985874211579151038772420444744808133193054875414365370197878458464041951160897600956972661891569800966891085604161552009331945601544191239627958496467563175224286193592474515329419487296147882518989877196808397962038640635393910431036166016417302594396530726235378673253846815277154198385020612337063136470836662774109772618703776243455571125591802458340442629744383428529990727452607538240131448201556842522334818282365175863701538689722852625403423811830402309440737954845296623119719867399706094299194654406317737782641938822158846081943725437184237510275703089786978544380001057283389617870225679644525573859881877191923768359087153904367910153467094128884775281604507321806078385407299330298563268210824652505927484640411270190177640491788701821878923822052343605697714613605122669553029786236163623922262994876585662379520088443356028150854518628168680033772156157135997773617161657544946310424651605308329820341210904540079115794877911956577907067182608618432781625383164938528899796277061524323720802597088302481143152709800397321042419858980309023873582608608054582284325946925085298872785183843447868627750870503957903778979449821142489914736860264104539313923075563289228729039884325648678872901498409969826224997352836588448653872353417689614954507677749289334180492557913696766292783938748847527063459123958840664385869140185551201042342969908509586058803080181956481722170014125498648712473089829897160926418604849564088738290493111887311925888409341991447374957929208186369296272172740961632210889907385971812638172967523858051907682969145791756106447576097062701085075888052316363147151315421146929447375826872726960350235461551383796151545854269224821028204075941105939232117134051146558103511851172727249566342326872954330107494793340694714033269796501107470813889790220703581672673379636976197394986214558182361609487307039933618721027886298037917385404888125730536158808667270005669538085915854042243625167783203404769872008096172439168001292306641039532421109250930207173866588503474191597162892817641944241643299542095372359824344271423217776418582891510263654548545176915236415770284746484800615093948132043881426287208877227454613860334033820090844156150756409298185439403761264649836783278631877092329620523338669314410847743297620032931775984479166464278526066053793521736865956270543338130009702307977675389350865986127192519691209572337261807395734415872881756814135534789959582515627157443675721033859798170924172207450074044541466380327894038949010145342133864138130930974585386962764042888244713739180552624721963668036879288241499135319293701602701367312696468821314986288407717845775201881126461013778706674693679028275381085760213840196750540983259652163530657399187784939620959068855646293520061653375672769304522100127557148034095045813741217922576959079620441899862925571088432637410939640325417374588715715593231186285807242055782828279450027192170407245968596041091496243105624555452439082879522748490139202723990613666094029444340327760715801320931204747821584880427985848968976894554971343735455817303717348910956212950531947313776756978069690444572173886627908635060497926037205112332915972991787611700750495353767626563539465547380849052478693984959134616429687012313583375519065666219638058319427638258836643084539625042143277341282111487061347828541233731421208744390340789382079585426919829035293407556554690569510597347353905599125704969440940690429919209702697008239802402241766605829986561002867072496288454744226206483985487804655177452676864713059644813265994432542485031063204981327208299476636058643170505239043785958854850417533261516528831663761968507144538844198641201599265118181628298954764577036184378820032992207712083025819150246737109900306233772410464194920229253195825160120165322342167033987176031422957024209313238281292026768780744034221677462707634619063111455166655814504223374514391045688961639900740352799653938419315182613326180450338150541541033002152460808463601650041071149468947320149965753293550848203617432299447922246882559284556153877376672402760132820461433203652466103971130140886883321343254017177997003924550183132414165388769936315475487660155557644478488481037275779302875253601937829142090081691715401037948395936447730552248298079977264587017176611432084274807011296615383644617756284812577334063569170902854922735015723239723474892110479181652294817616780711646277828967313968655278722354013318613379952224573996059863313711450728889966643102653699720044751608340167888667016530866400265016467379700490881415665994870712144547107948443097266044683368663573286538022885338185204772321850677457612388864121928266592275901126819302081413676744119957072916245156836884977655624037767501352796465752912699994064264590723360968117179590481275675304934892135035005248459761515997769350617500689876784640915564335569456310918430281724484992663179675871450563330240528033251349534257327714474982002619062553711768237383718778390445296456306107861769899079473414749685369781727029436833448354410635829046002057031342476737144565674619927487500703151997287247112694864068815317654639055753610341341933920201915452646852051476778863757083963843822464906752068307060809042331122429056204762970419854892949477409533951556093882093398990428028581802510956081940171009049403800581354974428871517118222041600870688885587826349461211685833404258150845571104963596271178673501344597662891403432987178123181922362536101652470919421135775845953623780615223398251898046968703128772493236805162046766161083649880220941228800797556494848192245937383825361594793548695764001390563443054629046141403890503931705954930780964047392950259867945720388859009724116644503758910269600975838311970287045886020370759253152104387030225079341915643089444073434977343336605923368984331846457846536763089033085808927692645939828884996932943886055457526676589975483266181800426595796719466969783667528629312494636887288541116941714475697793739987516283027663364482958579094560454946940382897459111893589860836012920378683724563980304087676871022946322604398360361577113857897132117100842502860580774376147523244619649563170133178401827620034648082854283557734578265836529860539368784291077708602320446111437388353082097831590785002792879528647723868980270965602915946647563426598963671135644857674263335784826302821515359603212761792739330697372228446885745017430017070234456706564251757440625559583224869692389492795385530633260548045108543495598919912423137083814386534417448136480887180422208695434340915349803239937660874584567563357292573338790941058881514548196603963446569129199940708713636712634877844796404890397617000005157040436444778770058614033868981113101655037087948447004944970960907497801242714728164681105446515699973440158837952983486515264520355569556998380709975660410700439628068958164769198994587705100373699243833293199842283062799437559327316756838494620892433667060055724194888687970152013834504140277718923312563730373457134787904706938745517946261691663557564822677713622864073348808229760695336584883536834352180571859564080484165675540771485435915932475209137314059105176414834487674363431273770868401429957542016264656569074925453696521019071757658426407246246573021809869794544821025665303499601195244490149640899969046708151661077175050160937505695509234195686238187000879497043823530204593560947072128251596827249359769534396708683069414153556512984229598549617080269932610771816393203545110784871100538724818433578251401861551732709837582998564309354052327842695381375757353304242750388377595767194799265459859144133161928219167132370812079536444020736778816623202611738700296903661367886024811972135457718837968542485832532133200116412231695444693180124272444330639280110749594365182941489872164833529939425186048138633911351869025879116552560711511555430941398040662698301688266232993866677191213736674319278164791341797015682004795155925237384949475221621451650187973727289586554637575907096531143914640019875136329183625793450602824536602150502310124677769521031543802920060824384108561514918348521470486318237765597548990107693971795890439484217627779686384893168588325112053366562440568628657979015892519870020537464496766666076325675501964002977356146010998611791226204181621441201068394365973220080936997336783433740158190161447367017938686368881122703842909990292826143593834125201436798788642729104675596214780189964737521756645050131643140263597654348243357046092858169878197902971216139624174695380415833683279956081775660194876623559518347817780038225088123777227929858301514086488123098894393185836034774381478005054951661778671090592694632580054038234471932144059811127569918592189003180792405255836971876934853035865704689510557456535820014725267864330067865725468770402365931317480093584929422295555258029590826885299199278978361215898003356339787782753036572201354825154293341010875630703430337374706935711301310470061841038482531380082142187766336925008906172472742378372294386178198127499364427322528834329800402955709659784065950175088080347406315483405531763425378162086171196859979123951301372072720987567029505901628805766024003372030126482098287109736116872055978499913000063930995670777919500466163517735100621986053612398884584751830310723536363673365932001975097185413598116698182204375608272563144166516978371486120661174059884216742529967738086425514361075576389417206780376718165677751470753209541386657810322419478043728509531898268410203718568463955858090495990086532769734461245489533772345398286101916835822503880763732998396749187599258663734225004117669403658472247559479805399230190135756131097887814646446684423444609401419588058199829410255067135414005157935796377216468242010265262441440732121369548552298066690817624405126354525706055425708707468011197971780809942365840437597730681891182699744016252472594805632317424679535910921039660316440178946849788026137666910836807399775686418859203875726417420112054025543217595624003827640563115527049400683512230783961711545655377773601275429638357379786714405623079705906921628801940387488731784130250181446222362067172878752116531693396432604191385686657641019410567604520995015971510808275795442371291161038465181283825430137141503364127683147806897171652753633038204386124420994270585840346820746314770654163506327218094351265210930900966370199510108090100752585376919633433782371547393305252513734172393837243552593616359208668985435010651707840853369604826821417526040554907375304196158776460493830909688844645735821433321114630347808304751502613156057972832990345450977636748167454883856944397493999278883878343240896335054362022372748267286690766145940874846583059875080008642909476147933832335393465710325839166700974479677323559821455275212365899208775982502290352563490881266011080102487234531145086766009355901806543021723066237211015153243817016022537206907455987209935474078643303243779659751349381096097005780114417460262063068012237426018225078929813299745935899585422365627104423538963466644364226280404682436928161815332870882257554506310828030989423781184005245220595680597112949573799361051198275495988378953347531403201414113082550698300208546378992680595216919476789419751956337477657991642763594943167321130042884026857985622189132967160715553314803309729831359757026984314302593904408465444579222331158867688482760333053357620572962605611532690625049275696708190987621950769337573470434400974711068107148501779935931092253845093366674679433526538438572238077860879129674083931064894765141293312295242810442447833682729921626926809188608233936881099215130441807903804106318555456480377872636466281798346391949761474912300909856887238673509996829651454467783590671153383404022830892126463765511255751215153171567441989889677409711088223584501966146848963770840187234995862265205592216928110944654698086834788659286131431226239732253661658436802267521980514426541747841820919786072077439861594429495361235991204868700704432210248706532529823707303215248574235074318996700706727594453579337813151443071560539796782414788096680343040465648891306813019310745235821322623876134496553657080727418539104181861228629233915758389242570449320731421545398294521978019838012948091672566161308436918978239114875990593363982639089114301280934767697952746043786011697779054425269993253197953822245925621807799383400530650892744107822122286505282790842450540626641191164853101417930915514320542294525074821178515451721731338090621820394130716052128272086856683533681604040968995397763223920630283924578908398449516728867095098854075085611301430929033662072803081139660550061100270637446654317360171466232636949472888090212411125372542531494341709648451396016428481759949976114176063563865721579801479849311319498829682349347610235176143790321179050490038887095671318054987187914587717461394923401927592821844788447035133213433990045278865583043785494010633310452213514142482107244951108437885151448155117088873751406964861559772193694729603630427390985566699566709308616573881629585275018543424440731699965975800381110747717950101349342342797983869140486994739218768910687882925966904992411155801280623250123132311350121923937483834801682979561602879785220975339097858912897288531498675730246814603540692840980701171595828747727154365299013162645486273937330008309314966234047909357958175557324982747036203286557279114516573717030682128758221388161466872812638811285067501625579416304122051881212242456181816517169881265513368723776778006408847905732455108681242657828755034105795589805463061079498126692474411937296429513728931253873107166116004969275921230265577133185838934865709750066633301385196456331915167022059906790735790222987500285532484950036090229892129547961887278412691370341031472079361137430079444191562897808332670140292776709599166800532740499022323564540565871423681201359316573821054074383318455068596693531681978679019607006184498529951223404095095587857318042647458518152384021782474335985326852816476642270087114886394780072292992550206856680553002122132477064729943879962619986178219298666447543768362536805445495833122039318157144165490392686541697776479446735015906609442564112889860970319297330949875806054947674404194054890045385523294361642408117655557915357996185362665828304423040225450051127041621942884504330660816497051787635521717778376963254779318547751693915448122819450290774234960633663714677889078187718736783194653103295236841992863551324455249457464797999770989954482566006868007804310552510287233262975291612629858762814557313362806484721859004169199259019413575005569926055041216429116226267883074309061161469216748220589534489265907663910203531449595399089341728062210364614080994307254698226482686875480675236362675465388177784544576460544182371645172577819126336691047820617696988225025380300567907601465627791199301301971543120868522729684530241147443450391794358854209579085232463735591164531205039571544168006647382069878829132403533493498834346898816298889545923020737972725905285315412092370060892110895952280508341878371102403879873199325650905107298533092055740571344000067859079445239543854405194695126596600196822294579422418094954723974807572747747269359374166019851478537697759312835427514082630872289484214793672950021382388390291276805623325980640117244257658287611312033497557891185515554294380953493793639004933795484262148715574257640860552708528060827667094207977655241800253174861945517513703808423635210260277653195251930305794904441181744444461953534673060859909830855242512750961148047613621699454638201879214044396519643334738348425817699247801865856192168864696537110958384711538264561932263708143406167080415633885976015687430199256771168754298058969669009833190186155398044016102953919409823224131924468943339336912270046727157035818311081747425489999513836796146694283414436750649836320197252710734121690424888423096327028281569822736927981246898797361711043680286557918606541471875391053847923229311516278940380988114704355257556218359727025294760286279637672281451968763450985575423962284906399240262478151682417325459607658915243585782848268798403552424963540037981293990768773700374154505080245640653480100075525769226827121755029152947396494842291798608908882471231703021825304855386988770151120101350616483720119112447910101808406264304464090264577132345887396519199564184153665845902831181880495307383343333357402488198439041307774395214640149299517993331342819020080661383478645172767051944378303909121883889664719819101753792524260809791995254956990427013757251148720274768413513037302009046225804680180725081518210642412636612106237716455463189769367505645413994710177743026670422446140230992020549314331013968336515277900044291173934198780871554501519524946205057912874666904183098904508772774927865254892333225661095777119388176031103841182336249443305380581883507826577511907540025228020964140350755129153829307723979909739574036731981190168321112748049227872697066510411606809499578055600268088669350871745596323077239058325033406168635190254690166481045559531327376711452739579872836111158612962481200198033096359131438531838945500750281941851982839852591939048226831170910133663861786227864612954550244699770856150067985476832324518058745909462817696562026839271750207935654354844727180623321907467807759552561055160146061532204647620372347390795479525251710977822134343428271852158461037860690910763913856600988415939678947162721591088862152921000532832702186682602389860763635301139974417503643476304807218219198726900847929059139898750716220999364475850342809341176809788740040146253748960747734402139025435180191561137719117481315063901024319303227863488363249523774024919833474830112238014883073381045959654351418034031387531207658010270753117726704674393625313536196151082680710608405213534409799840995099633497750510983262854068804292209523746766933461692276431861792454531303540938492284194814508666808556159382325639067762275657733442391453940495480178333530006577736648355618109225421732792084170222722527741408026480490796603631417972728568820507705956119468415852447422100318402440250628703935722898302660048954472060128572792642707117948879548512472355134937113444128454826637302484135909540564603491385671982966892056333833747277548778666519135729291782158186947088507940815206668429472396984999901818922089486414012496355826645103323663691829094469033197354691611887790129136363801319990838205814550907322220425106541935450637899284659594566353820875771432503444153788003271865925887177747418732450990475509173887772109388935136099827964381198128794275239174026914742102586870889404959460465621970404615560735940958922995202673741032438017716804068590116691476040236144151623431775021421438142435522903830352244881733377170534243299649015941324233210925590057616362594717035424863152756596518950266495453821076514694885295400959556920917354268488055564282958856400841643840193534851391458981023302381323313736970152811565402180826901541071396270504160312968671195524763441492353216603979204854921244171625738707318081394143543489952234866950633871288252912103791622896990706516367809705292345961489385664363107544751827646306619503645246329973089609344389442408653006745018303489514330508497783572192634999232094714729578877502787087542681101194582048054859143689089995542383028990793421963547765844586470425293159179811320211471883062379451626927987128643819777967116596883822679101835550239342702364753197833012408900457572552280300571606401799430840056015459590330645920184567287192079868011853778512419944385383764873444469916889029472689262232086350987421081103548957425890073993258921838651045560084368752466365284152675346686098406595321445519134286195174430287759228387730290198690213769279980727072358654043549605926661778249402328674133080166960821237858537707617295234634394336497927410684842016287719619715400918287293520679682085153124671966430114236884030155217676945857866876245781543699489715868575693551686565689014680272440780399462380395754845143002146124662365985293243014775772593071140118315829527934624452615854993537299348951693387972307187723927898345637152509019270210584891126251074900629754208602552057929784739788826473818958847555144789951456143479619231664029341397628338477538687963690343705825667492351291359386475944130560120128226678158128639443228057984593628289171163816986377071883743635947614858555297464022570135041631954145780482490474274548215884731459445760678226238571010242494468728526339032081158269290168913421894155294638453132405260005270723645219418102742992885479805528049816948668539846319509921555349058895619694348838579995841227599392116594121084951501628225928828059244555040977714781309806496717424998686921720420934003848755892498407367922676007133025246322700017300697120605844263271815423189101092021313683257128939150810413673293224957167204426834773453247652207156665044466722460204743065074940212429640797152825421910933773304425374450177188371209086504583431389598853247122203062934401954399348989909278932380268781829956739572611085515443509107637469958202082101601933148361911840326502897141111109118207341011830817123660559512563817045138138311518742465998366648187746421394158316136277845594734807114824217789898013217545704623914531833927501922889383238448298432034421092199855881991688123849621429782116486653440886627966697573620917010586774940991434695576670567925715626551042790080303769059879100362419851195164871815761907970923850982950576744618643204900793511127293410513702242446676257923314699700388348183191506954567977345647243656462750781217448478675198873304761724462085610108155841523561137293312069590349718889733937457999398935077303673959276577611424123877702932575925832050203105854699576772936962917182764405824313137792478249367335999329434276563951611712857058284435670736148667097031555718909521575121063198629093790816920227558934380166212280773502502420648996227690053941431662289814399108527801685958474546408948978115793101058003803777274307714995262112840486483513281196428062364883939158646148548767409522358155389200319096961731511954265334942860078536181005716837884639846982710569045616454608573076019875309915719048591982422383812757066689853615349170584367840704077845628470054606400054933736147374334030108696002620447783159875277384077457520967486717791245460454022440712718447356563868002751095870718217062462073959457525696198374244720879665909513883047553102311533964004398285789129695518488663880055729219863577837177243345340084789407442601654196062902517334930962483125458469501218493128953420552669552943840455435096564087108670775495422518477792379902934693038325110967093912813514050106637983769743283524089099421395329377260146299037839348954683374103321687870979101365276794420620558959998909863608325961049439944011204721458199658381214390345812681748101383422558893313930610880976812510175123523808276860187796735321899156753271626893894043012648336313603010616504491924156083520683784333476237374758585356931020379489508961157855104936694916323698093217051842775091275388854982249014826682656297099003798898008521621407543747576678865579877685766845261657499355941318522413347916152879405881713211477631693152260457428421648559240060787523933844216169679066533137660866592719856683106246074123292040444688325785847261243838476566558034890406317097791937376841134227352149546580328987115935271652029573321140236524514784865633275826818286767162713793099464508358742935432837017636773403627688328871570657170361601283319945838672500437903556671078102906980058768810202341447918181055336209022252662717389839615463495473510698213059785445515321187298422506241347218589348173719795498541802227992790807124019883828329613602937481567995039777919429551897211178276256591496560749547749215315360731722046011028025556521972243777219386035374846535841811852368140289069545144366191509244630945268348916586169220080983765658545819201686587875190065977163137830697700218854507266348367479874838309710638002346489517038018563597774523769980156362949088343956852063101153332508799144207514179961536599733528573506131018510097273688877727613392899362899907078015474663558398559058079415913760808953738004156483824672715712472633713894487210007508781174384965941978415361918338544073859184940319604268476037108106596242645077354030498287128343164599505646987056467759607242334239388571606444639972901911496592479879364695516516377353561676765261173204668068903232362326068664253563840334929091867430367874723355977873265569519112127235269341427249290097632681207761559533141006073959499963837172749619120176311722665943367279070868163495127530517518637940229470520802243322859098936566836841730504547895806546907474895711496186676266279945084348395677501817216431184298926886193417022674927508659967524072929842559989006223089434412213611604524852101069921266195511403987991645913585713881816498333130451855269926709645416648405596789460478779758605314443570064688863805285794570599609004826642398483068090287625802563673114552956721860877227644542018812968788228780903322641214372412893673553061649088351181843892630118793480764580426668082985006770417569380154282741149441467838816391271381263797268195657674294605910627944108918072905219150659351148952051209196708587616968349360985393528321655764607925906100607345706869900137889710335733812514672400104939960487406244238232521576223189904403852544199859841733403548164188959900808936325682178824870774854329549622654911488936537572099384931384682422395378662000457417928293942170913876659231817522855948846892851897502458528504973178909576515898113354777783964076637382182577438172234722533260397696606963463498059212134305718954153523862042193542787665281159758603808006267310935505521905002923360518633364212857663336926771957579893875149960338596577755146826711239661429756048314567884648261706313143145969785725123409208904909865995756514911379777323637413968317063943273866262007239021024465122318956897295578453351776936680088345029115127674840495792891072981391242826996640251810535206823762116024310099809249060042044903350579066338036339427710929764322378029855757446356176856889774250929733731310587775895211340253911562316343412382229431547264705887268332450089750543721394040620467962726974710645790567435760067871409055017889268000630473539017707255607205768663443306145731888781726434141165368424823742607717859999712257383602814659698477573503468973698658152340910211860515189718489345167285123489420648738666265753963336620233517816212276029095222958594666241734390260051930652542804226328119975118000377564076153644044713809757295240136291926493779557421495463148151081986389894544179673646510883871275584947871147828007575268663706953886389012329407195251432025366000301005217378016184480997390974374136977816115528574950475300052777124358724953694128669707945263064822785671810858439827939512050694116671278176203118475518593387965879711748765706878833619944283837584764482052686682416077801326605382975163193033779204438886802828632859134912115718423875338603260837301914011361830241651296651610273655500056582957866423440666028088670042250723431017035029576961063496250866488147325095680083266470676722403903181064382460882975544567911628161270211607437197435506357042838364610433449635848012377859774472323321864888687230761198724774841928805828718641031612002760931114595351793341757680124500990086242763207547726229858265858454385853821055992805432280842510980799142145778145222789366433079806217064045463498421241567976438339164395553530692258722610223453856433698995959840016149593982755800440189084147097364582641311708534419843801425187414297504421053794661277890117232639416455801954169912327866434247532097715109959169233029316553910385696654152350129104482083973426083154416114753262654286297881294017825889677947279197478611370448967754618625341210212646889253615031774533471975094522495879285956148654456889852828538946031550443034734334347801546447546023993326072039594135152882018939514472787788803975070068494638131106384535301957339535799272267521789761512426308289461738126368355690729913297425165399160647988915422693288775746762139692890566725918283684377643757626906268316440754253870938247570458155557071231643006172855908516884428083419399546649690281515168370482867813756877238330775759993198115296130673499795069214978627480830029742701359244687350105477415351193423833962413938997450343459741163371616859023008521909373719478562031765293444586762787524817414250856578222390196350750553439262782158842073048910097908874648170349447896256072469285562744829557148917466363048836062163959585155334703677151972809477715296440279271706051010395010449997396043977425872250591696954536752802594839384600980962421903282958182582884757621226148731859896509528808959618630630518218031215279448326648624274053893633458399449890859177540115452106646070297153663968315694059854212145269746906650489008847452627594090969144907267295675746685948149218349990372224132414917610487054560466649625562389399536217868624119618349218389797862781946551853074630785123550685861644675517444912883733861778436469154885916814543679723323687315662808178119824063951623138895821137359461882572133633002649173121358652005337306995999700698747368272417839714499819813179813837199284226763721824091602554001905798651280618653673866561198297019087337519623725888763246688089670591861683423842038106920272399987400024247797606384107608840553522184707526949204013976014576770606605999931583324455023825520620172797166221161020156471834697632771956760670278724284253961780038896654750228430516925195577237943415791842790089983493853835525756981138992593413679114491787356416385496156701599777002028070630886814471488525223849028298393912819208426627246482143698982922435551749163658833318853951594105219114608707055115918078847992292692132505313452361764035140120968285560755229226430071501476333800230143338771047191167924727359269754918805699168922829611829329972405789292143907457177435117435122147749490884296495878043923417690717937913305388914350589676964917947272083102122457491478294940566561384732455373049552624780221312947314035901133689597402736378493695046243397862648255823430676991929223529685576521943666546935274764059375049871271684222154914055010649144588419538473360752658934924096190515620326855579606146326381340492492273581558777947830152346285886677606730596068578240946856024925548400961393858085071068255654905431688861112307365295462180641107353893521318016349437702241158159885494478117165459553446598620241847624437875555628411663285021070915434110232392980287890724697361575834116007562737401726166144189738618675600311556903557720682431489579627626597916054813844802394076795654349995963114218600713000089773861633894839376279581003586384551161602716555173426757192896834256249415769895189438771422775445065049903046658246960550732871779742382112978098934937554868097414830649446229884439579989509745373288989900442605052366755538268159698920937613226665031225744834829623673578649808115561513342362564503083197452734434046782129640693057679878871592175720720300875199759817004445302269185411011726283139457241536884245138890708363540842501164592993249253049829413277666581847062606408410951314360473767008495302632567243080024388442165255169043168292883172755359620902063667238419724466974107236214263843472944925568145560320927063024215188109060816121701436641793565096269634701174139226801446276832369793582807229145988430744004013278696591890808446420514148595330976129874642137214938647314850204624088912364498927201603804281169704764784751065262089596107732996483428604546038557857654483499885574929809585962746593301249360061739928555933848379043427550447051916086201102081981847391734241392436481838115891987261409199701005471032299845943967863675640294061325769250753068456260292969898744467635400935922604367309828700861782148491172707112113442994471582343813884729644148443974306119157197483993439196377486912444629680455604654168314725378214603093988573249667715747322797730125984575273213085473092119354979194983576168571700122528485851272561134321500345139991280360234802189065956098341360717101664652693328931061099271883980541051933828425359787805075599823877180802547590232653146420022909697911180993168611079603381070325303603675878018441595432908425552846285130541748829302540865097827625397414588878692629897227013687392360020726241987717104024515574798589793058258340662996954626413102607229314691812929127414802898886876594852924103484692500347685161226476266110014709663198158035710463392354185006143287167325994131538038734771676278386575451772446278767429606943321204428367264171747123297307759248845848213933950171636983518365408029271763432020181468240527231966272468029429240235495628571254346525821108695995784946090480894552920327492105597441725770296709971990951583523507077666320818314816850804108692966362165044757806592389481682641307141918807498015703318151357468635892010523994690600026992365374717534410776287096269699948452828782507855084006376732136861831701326760591478634080911149302627101701189566078498107086031165289191875322642291185853785895927416649409394603529421468853487207538592799666508960772789922753436331897981240763158856830033339417313139441394781710162600906305324223397497936373430754248591798505873267885989313704152825539255575731482710490570877765000083018815503031717242843109528295869454915683369180956592609851987590106268261543360823484684911924565189163461945570915212061634513161768961101975324805640734270351878864472366225007551344366383918878625411444584253371854225318430151995041444970406327348213627991164208929310430572901155346871681339776418090635912987980589302594633615175412585885577277958726323383083846999476014666556856027281089317933073857666999493892061573556927145253975774716615984410093853110070583606181400179567130657770871313495296642038152261030288146081675886859034347403976344371941467517106513952909077011082261534242733502550758764112227368785489803757129447962671413290053728363934336373959765424669915180510794376126159465732825242488721023345533193490630973591802687822544523897763584224174591220765134653466409630600066979591459574600877263929808808296670922695998514175901013955536238648331189757671032423704034175908055671415180072116935061605947577545099986647709468193047170801794617121243035943703088461835776682829395182441154665427733445278214499233584417338772582835816020194287268064324943151180352097211092630950861445330699144634063144812525318953814134342627656680383391158290333806824892694497136689635107350263366814585229016867125583702426754970065703239820968719921422872985965986782101167061064844571334866030584530337767764674293163828560455737073296938225682221659074593105135710864793951766407915252414201548674232199788341504527939773434977482805048569679444469898815311609548671619488096916091746855805853498414834295097211928693269720674816933953123949448787045690211768937751451796311237338858533902129536629450352329836020251901383719822931605210072177523443286235383385539213641320692219727344125444432238326351977442692963596689575759909542489262547062953613148317961969885123199725195350139584736108097128075160860200650988746059602156122213800745009867315581042103819394454320700585687980163074536529462308513408177497924609253685883538893144365305603069950734523141582050445173374737983996140516338591241933141153929009101908226272323582500775867018858937191099822042968708821827908069985755435601217151274963162053042751925866535092875019339114561599601705290841198500307661186357743126325297788391773548986668515327060342312250520708231116791518065747862824551317643344890611287182824541945899606325342122098986196159405164302548613458278963732788665313516271791994307735903849445564743968189859212636966695550216164578238386231460821560840569910889091125071657101695221118711074090283048288651311990810556973318982636722579142421492483270470974944417307034819824032208301111954994726912431121074427484255711688658731129181419675886902792810757071883536480838056718834456657558163653956166659756904971701016724077114424197229663859405971948766758052860218908836506303753595696762491880641916208128033452046598470096569946985643222827718119096916714007812001565994263495816310074940248872127494850674370354657880125269332394936789624779044141132082632833188830801158278618151157324668802196477518376040349031318283109673941623767105228506816039417170863254644594791748926466204088674791910104851589514594105390454587403120158269311261589149337449179694986657374501890685066758607069329503583672693294138144347403657157252859201685555615945656814488826907480444200094922335727418941745877534321292977707670297617216885451173241499116723170362273377862135277071945172333028392411862891822648045097115595853847304727641939448345575260103051748067396775418397287963159934891426672609002460735477475316448380499827745611591032385713181545303718483149830530399302551868040856774503078353875533794677474462396161020019297629598309428707729053605878703878335665338358643748734751145040971841501932891710463102965371851548509230067563063349622814780050671335076356735193416801902658727640324223846340977218464237668979419736319431730751567207777996112682155115598664243853451007911823220539388579123025549950179634844465533121336198674480963695944743933100872571514531122791546188628140564220699129834693732143695377484281273441758532692317151532342246410796314993827414747011175469156985463370137360050405630723344318547114505527998912567290568026796114902110543449546701491827660965171919515900912025756807786934886738785560087000057245961525991506754362744128673923414711960808166578157751759817695494291626795199297882442971068070740709438912768290689174436716964932740659225160718902052715900692722426086909414635596381976402078445074203074933778289840375121391067724543906798532328649045060725308689921872016602199286459261911142949247941113345056317086016136940419526763865750622134157783429177012857030430836897729424430214160655607224623704688732939835454777671574540143491547092521380529741681194428077960534198571315216549265235857143183424165130551814906689472426032398516008363931365704979666393931850298943760558952800464643386509617710077730336546968129468982982568447752867708631674519640443743371383368581853014192840433223455387030549604580298883661784246813642628323603165411545202810382923106373989629260060591514419989248128535219342558752300079462932630582327847305980125736042572435189861505345493414001796138912685635419003676287549044222998208792907521463769147642390498062051773451839868840824666857110665833104718766632039861698642659111107811860209847243365890905884066161740356970379387405666731976297776260117653716103539944509499169649675766119742652648308616235103320144076501753996989273125545518179302333400634444747541369536654302831002490898155772674487625012782337290535349738526896003162013323155062004468207882876231029384582212183146303679874359590113888096572061282913529386128894440412613786249523444947505596522332025294451178219959213450685005376828854182268925755038379227021597238339438802356299645228611865159708337354847758300479367795167296665015460073374857942090628714536197989521644515278123896008549304474999723527326166459556394237827368467163549782711923764146873558679232383866011968502756485321907126119594550807155777880316673872809293011782717732184143316464189615455905949020310410489810402181035843953532783346003089465890984842241887691859266206087483191259601664481433487910544974188336178488546745041161607253791979242163673679029621444986896599936507410296201840150382054116967699948182042235396986133805827176821779403526964221011545684931693938795336754128690261511751662387137298580732676193972222527454753866970752673450289485732768525762054172329890676078896130927973251609467315531961693986754136004985624618818375841192779430619619739527608721368764027867393209019547732531950627753141497449328513410636554723217809162434213045265895768151703767559732617294720268019865228837733909398890548586194319769944590376765650220824458681668009460384266511087867441189775627084479530669049615576695724295113767705222730835651704738768529725943369630353879731643761491966068427116154874795654400648762885160919170183968425252105944789805152692829719992433580577635328147140766030745147890622569590673183791483755754101163932776224839423706965008496142992177019249452880476896875723956645661335928241328131966507012170128491093318661614843081346627705881239426277675728345288909537567592354784153356987130358605432420599913420440791254395281165239118046555947771299759167099440269659589617684781164556084967877805019431930042744499129124736464481167952115415395716040749045035918258105826976912302329790848529007532060329597970141188733494298559180507787539949264337623700745263613418345499785910596208218374262596970732780302579549936543883632858622064558183405187115887532425032800479666658449887736429285861616231226881648795379600758546540346497015325904886471014630219449754795014759599112725757492329548813436030812758683636277533981907109164089213990282149374787403767966238961552439952287006486306631670863732481104478983863938642945196729573546981328522553689580059390889711630442801689851184963401231925841557299039694324039695542275688532398683875979093259713472782706566779567993985631507936814758352833804013809579730061782073323165988811171176998342749932488872746925053690448622963855702607900008762285201345998939386548358405007215340592234555042657523336912262334437297818983847796906145480180914058830840913510196028158888208177459261286028712675637366499743218598018933773670244011280105823474015976357432171921035303915442366438168845423016966164116537415612926550795067188034020803001317811454538169243377201327075030620442125687823916175103101391461221203616302795753226170875612187203475641644018753630084954579909358977007511102640130027403418039477852727971506948758108440184101469566222892963122839700732125182052072210888982615748545689763759066936009737097228474863061018793867709007748249433383446891298467428901030022729697524908198132409586581315363311000313163911448306305741937346374530174973944668554240570846769150007887122252043702124879644663953445599786371919052031940935151850673628503929189234716837040221539590666694950343606733986620725715882293836994579761629575254494347463105476645439400317505741379565057569696638479154269397577575425728320893041733747990573724844664177122420632724309929229866241232102997918625414934184526985585371311154273627549770129427108157425049052542146405413073808529813504540537878672653824672500297060287154864361298423258810613728466262987063843131590330643370172701204998867998340465205250317227528157324546648739704662196197616316675383077787527660805956263159901342766783336040255446661966507411512941370992915155345631308680740528798332412334707007702978419179414989515504169029235093381568798212750760369471774578854386617089625217414372245844278328835629543972463590285843778522588035079078696103497706453482293610730624849561824300195841706806125782483972763219514911374039226830913952426783194868432836555746555490254955545680135404114789673965261199900034295850761355376634102723357650178000622799323972784457877286155941398122082270896777005397288703090033575929965749755599813319038428490270685487145439978042470829018651451955174427321762033943243776698304221841213196539189720580108228884506928779404309140401549159377663149177744042972918836175020976622682550557059859460971415735922960895518170811695300629472344410724823436432649219615798001230636906318437753403635664811690870988515938300713442348952350021764365808989428296186688428760460254294239603312367887611430208636986733900570717211906073994670448345567478080489897525487808490742606107903512013306594186584806659017520786633524211826969889848815608090535561760650917895538914099088221278608351605628400469756637042404861318978193520061269923769685208049552682413386953726841533276270130333328453768657892163493530209925017648238741625564697922655502491886012844821787434983479368385961949670524356238580557420316323473062024000966748167978563799192408652627970103718627294495408352376788640546146931725017539070428899635029862079622062296621825765640229393216089368969928028984878235782476415777918384866256853420341086215404376215230262032498315871916939144233197420482666697346996695655367932179453235333435286544798393962351460246850665988490964741334545733781631094359841376644261353598997178435264722056602920893880486514266557639098204167634485706325613671257290520610700299263884607581640586730107981281899250526507182621192730919375503344528570583271662405160092926470995709720336180562614539216708533519950038151890306949160951702362009668177423597750850299863280173826760645641511473675927936458746464350170342234574278186824301582883312824575450996088841651205897696437810288641760651467642909605611767016794320830281683526770518589435743996118198066297632504850474211888328466088654900171843672511524559316351894379689458934903188090363679769156403188676626161623291182347138790077966313550920137759440406419257189150772371980616255913526632493031960159744783084213456906921621925924998744967102977345016837927007883161209269531714822581616664714868733402481244801514329689093192747251144415710615528060242516718265118851103308675666554997657004401577812156208751511963672088650101375099320482788845378046711176821072970461485622505422933027551495067702732328145775688601330206523496425547770894025798998813635959908148095430922371143332843401766761411360788750100485015943373685014978575469530312535723897619813897494235325924402612513672738612724612049836036255686775943817965767528957601043136396881448529743393920861503253663393283110940242995490729007180246092986895028513416672476427776530727455956898250158132678257503989683023851054459385491236624346765647753111932710302140789534155192645912010986675063701459014808515213784624510656634474893930610079538899115838728919376386772566783111206237457373894398893362591747715009467961203008221986075262421017106272803108044773277338165240803118387753540212220308329127646675765597602785056534811681481964053961861191291949980418561804236783694575145411188395433024942564847798798349631328182697185832316860119188071953899787873454479305908513101050396759352083438362034147819014118713868476372578535388451683249098831674385560764686708773537568517905667614536866515229352214794756385932739230190121953260515839544847423559328293431804921671446701548386748572997067780665551661870350203899439434282764578785938610375055204543446560933979377968505918761693703594544506127938651510586593704029495387467524580844949672254500487978460559784458362182127517455114711473990272472258997283768284350431343484538085179239125901912603753269754589973119461495342304294202249849411726001702925265272811946596759509764399593236319019060730095798996333957959847779429624386964281311052405909148942788865940656293688559584362706268237602949870181197304652944493023781630855988191425901085192295853100844009336009803562839381837518138393444638765199024167543637179343761198227322303054908268944031529646912183378624588610013808705211064775764461170804100581200307599208860742351943156187981050898574684941702137895795097271776994762279616559763943634651647721098475277670769662417079607248949639146064624868155199459410634624737671690255246570957431643522494577975236108976355424845863688183492993531126112752045606259437884711302970940757465687892229803854007715591336909098511292339777412063274766196917751213200600805968586947960848795368186356145524567102050714663264118712499532889542017861051061469408243409426088094589479483250895333676686941723643229078235135187247598673944360064841999384583135598586239899954655073680465481902842758946970681717740741650492449747570892173206317144965596178785069008143607535426153812053224172852274678395738441475365520237710751429990976541134738820217139500181766296101499512448998665670195269356263815408637733644009585101691935695578040190986044067873010358341508376838405024614048923672079406435469738046275031259612952046327689366714764661810074197901201818141263153583383590420685399056456631836034943676019499825709027823502999300664571109410689888187570370919274790786572603209507174306625603846595207034589943337862434333616055900554311977654059229837368559386816764924004837197276212461100435820335136600202443282643363726159075309781045650434185603499283939074417480751347331278979387905947796448263939369184283250771976424052234684712112502780253961288224573607230543013058206081148614040634015232009382824392649587705504293256020691448989654233862311577846794095648952619851725173491071195181384994412263112291280297406979003204055069110059209004208901410964061548153719499151273376697771751111372176748453293420603518334782696629805145261339665156171062487037210259744703486962635875893657541234969633115064405985695520138678348008398782934237247177771229923782333368787658712299977059624645719764439551932361500735694735529643551786002523307354500799114969198552293421905807815946585153611633664943007883320198197213182023601315364288165586993262401163194635283658344096197313826851688261742664285664365971255993361812198387170497962874651504019911881009811292726243627463455767996819442192793702405741891283545016838913411367548684202531499162364937233954621490089216898540158904858150997588664730423568689106953150485413707565302293294557573943670069410269139979550714770464850909499046353705804637999084643849473548772260027852204265890544869328125549661448661359009173299929719016957218934572640269911552690051324428353423624050411754141038123174581366107775720670170650771615037098381875542739290423285096885443457583163826794492203928229893783514476353833964689145092057985591298850072410070020735419542459801847953537217743208423074860103585369789171941833582171501744452029766707025832832487100663528814293563774430249248029806336814176150143925122595494221856967215432824378501097644465443289643142366706982742664369125522592455106347424166966757217472219287551003655106160435886897464848645269146651471417662521636871554841464134995041053437596021307673975753311769730014507128536746654894912068409025158555875993162286741013484097646702549361479215439201797256300225500244065142444381567002787368382784585265877777773631422559893773139232724090878027602295628937606062574353487567648237417132688937119698443435180637489768790441204629309606050254083203063735394887863248784035700707416274776316613830633703436383488300119170491194766063016116669173167521494530243118261659680195468237542535920030910224384826254126517324227397854548586508808490442217288141741975210652668656972487900952308737463260562133298027510845811334464461456139726681068924596607300433251640501059524960789798108779611629423715680015325004200794115163840676096489024366180622769566456502302152409425541312450849287188374667128429238141943170659366815004459731431735167389344416633415657174650119052430663099592714096224664262605444106229726900838295282941055833066506659339808643833776332971527189122360397565873903178044938715069169014586933582208696772798759140980242641964060878919090676862145967578382181446878894120923524071667564150126788814749969187521716239802548241341151662910387203788933074772076287579242015341548671215933937709944094838297928254255226268550298582806804536259897899447221054963197362438058413801948347485214345447783490378495717785497170628826039952881116800918704538371005784911423756914736900796452352203405067075642369823938425941176512157937288282652692466042964118963337467681366429006167090466598226148037715027874331757050911918113676057041981290054961520222178520802893681041917616236055356485284339149933439433128383843670449249803576165296560889710293611229913061963426067828090991183810158026792749913092377984571600087929665676465303361624074219718363232187566109641442488085640598989000708072023599351232549963862223651704976326378166732471025720754332040151255673048557870948637596689437046050404360400625707020173397473495037017299649528203105598850892640094430208316696586220067751699569541142691394138822076068323290813830014186385600403608314802420085837551658682771495169893205163508486449541193816547229230650538597637167680033442433806563647089339664629598797486129424183749394283026467071245916400575416521646525956388966399887974144043936289815498672539000350749710243988368768272212037811042249941697113459484314058388188301063229068109004993193263875636937919181196120092366394092484860909750400203921392202914067822353792789938104057021460764578647585539544515471399760904803117954685914706828422971222161259637694559457006285060397338934252974615370734933861575629383635647617847494228790512698387130753017842291151699046899363473381794321916650025322990392116739664554680143875541245247807261354872572643639412815319142975602410831648961296592165929434052816201944304897128962674451237178369105876559033056466829063905737628580157075431521186380713945674786507144072627823334918515687215846640847550866677143000892262014258414608257214515947797479383407296200640355303428124386215116874222220736483974980057320187991358449092854860062990954217690363045963022024118632901868242726745025311734133916494662632836165742609961137674653236498039976402107032732406944756484146790514695826966914134421745314757831830656828922903970989517768673207357076105850586354826944607017104598965046868574125923192118282402186310328145030267528934181413707102039695100255374302514727829904110585551309514496660843659161567241607094022325206697256744331231486252500488989370200867099587443726633042528484089167513539432272198643017478575943866611781286302670397390484191883053948943575850346770381865087995576821508090999938589839186969726400958782407821200753034264051743520818316633412586013922804393200215373298351118575921669186397533170317528426407296612524060951796341518777593802619157070204218845126908307063997955620634983544927436176230922768067784319563742982350771607349370316866671841269771195830963752577935545250439807993649102665651015272490163644142919576103204389402185844096784283963744204502205826891059843093577327307644464389504866154164541786975974428352831719203351635980510383935628105399063209878005942644109641213717634815932946211447806381470506294125490329722150352153617579951256011312848255635228440884567006647261597722809540080291197871246973604752019031200910557310502316908708822826512891801557685835527768630827478343190163324624070738841515874562205760306841605169847263159452876257440701006510298298318749242715116613087001039211953677534026330677803824285061266315135766910798796317528542268590810226233679317456107810186671884099371186559998677503674586957135262035162297992143817154569122396973728106883706767332475135088362539900451785957220946194698051715735716926263917832216922435667576085276883204953329268347633046359905285415902603884441156138037824027717499154232739152447352752104328580473797260394102834278718631895170608987989362814492516917287277913911094754396110059131329564692248390686578841336935398554263309790981969785918717470834294470379931223748701808966637175752271649365710338210291661594801344872215165565663266516730343751171278343622942875635204475978884631623654015920971270727319366900460999178117546127532140189146080679362846166368532652234239168493179012036523628768801090618336284454251532965832949043981984925063338890208369364629391973227585760827266221617304283537133501730327892053150304740879604074011948243367256278418131693413441639133011399700642762466971967122240365946270717458487333421144610017051145253812316671509534466982211838847440982913991690194760922290807114953674958655798037510386205555717788939562202437295550902070022006872621179174811501158740287411127795820194367375273737346553914139522018975496047062932174806782743463924164631861088379349450002681291063103213057658324255621401552692760556459761469253687552061599024193076962583887943127887082334243127453169328375697558323884675691559443554765492846920616329215283369027240910006756352758454995559821392264312080808036908886159580479942275153857048793976708100658705185051922046558257230646053536694741009840226919616326962627071099525736850272994093116849143455842179359036880503407406592556046083720932550961418866851590408483368049094638122419717290591167783550606391239311286071219731413560868919557877211004402540290034960008045642972640159831915101551620849168158208373399870998801611698046342671499340618194916748948434544712247000430021825495605931449055797389731490052734332109070180597647872632589388270719883180458139415514589003825991589617185238616819257662463792557663491493733065927833092879650695828953797608919887464699431199313507248250654471876473386248915423071215161450550290857204948859609566232232118355514733406557270280619699513449133178934705298139054458961112642184667463593928300815773396180513832162997972725191558660070361735916771604953871024727860200813078736119753587398045671488623557915706248279336178750393071178429574481694552217806601202905973829427585990923991955426145766467735983369255447041261178977405081984053162148127152348818608397689755096109658888047916727472849790849807672279351230255634791084136355057325495774531507812192595898301614055730778799757215296985332748263521944414441132240303841365274757348556365185992971464600529448163072532802381710394502405279033350599355658820687956029909954804730672807769776778357364589659287196411638188382133093053494863402203780004350175762356066834773575788775178277333051171180692915369522876235118084842776092103285216013185235711761991220442343307246090916332936777081587281110639184817295367363148046597694589904172747789470481011932515147950664706285962996942725606069242361910671589191593648844766720229624790110409881624426950935776994567694832939049580500997655499850581474119523556110358511412484987918790121682777715803965896445235713671967590704789176522436687738806561943927619346359321406836357174725290290714529721582883015931482161883562641226621315508125323407738782364057399904195872427472815270104133833561143675444954357855108774343244029964625201924224305710115666104949328989928356602902315322602903204495402626325463024813848949952625658815983443526316027918786758144135142174512567235126005446302565250974263430953310399203602967363545495020865728837323613674097983943434832962114341039896946150281131408739072709318529820605936210047607647933142792543909547043745933659200310990107054328941989085480312819445386334310188155334835052510867297098947427168558586759896781622761693511735231518897897013374088891201315131987061911512782971175869950310571387562907639020124387719774150189947368314326981132233425614153791912767025694458307717217575720297369503511432558673787447626166426663954198139276069316430282597907670299202635932204283929480922063187532970730846436182646516877788279656037542937660234813337870586536341766010478679538135984410553605625630004869213838541802013852610887200964940823953096958465419692079852280442056628913170849335046325316599119833794821150521557326510158460778271680371138706738938249078608675061366533225053756101296960517588912838528307447217312822784514606298763576577487880641399587685295797748260730233491820698235491682156008665606161328957741168896993624611042227346762499772829151965687072660262092891577364369972580308414307179675526651389573376831301539448538539270885335171326195787180474613623376816380628013901054938079628100218694392448818547538428478903909398382864822299179685152197253544483786257775834250661252575892268921683742941288071692301850227573081599259138014430044199137221880609459718050179994663613644865875614651296178665973517253302305019924320843209433319956993950299604099324874425190397738257835195179217665494344576701701441705535304138269316411966110267297551110395735264887504620437047580955378072780911423868215066888100703987464775030023596829329372681963719347947605252720861870379505410818378197174672470760868564135084174378752615884500720273707142315834075339460894495317013409256415445268528363372561356963079779476414544050952861182470697299657677336749968678046036539290882880164478817724738231403721330251086531086510817800862089632666354791939426091516417034064726191287443730362841704619360567234349222295747893560821620367385895285152270090154364378500572441790404636075884006491899287118985838648037862770305126718735196435942238250963253200931364847510775346367343778504975342209720110751901976036197263064061045476723151436177920225395411553809123559301263751078666611527986358201892735119038493560861067715019914173929045780703199733664302486808836267249440397308413916715944185246314241073311209505694657068045252106214316603884227023142664051010648268215445691573184963572606393770957212480604811934826538101710293416699859005152581335114986171234041543276906551692954846367310099871303522414825624365980945700719568957124451525809814998970470184923315392935024710266951035896173499618883626892449829528006622101204837591891366416682795182269580685427126006802995522567983469070982648818326371320827310012685856840079142248271484323170019022561380229182549993527119278225774202444947848683275361889941284548505939519381402762123746211679943031727301610164657867864312341267696886817545415772794971759512546982552372004514681203042067101668396095711222309905943253033780690568228439156522826300793333649901788152788428475046960780954497587687392362437814088144872284115333055833242685948897628408828600992880577811880993532640567734152646401260696303831079227967344570636556474740275531049084101878504853990122586953958629151078031619153285338584054720747266090904622909301751988446389157815943165595817037095393894955526420548719428777880944557602455223285214101084337366928102338513798499906443777249080035392419210180078980177473036805540853491331679046602309895710932086248632566221533507150469617933162243806277533174426621135197240884525225808064998213855831989201615130881170520091612746618129547293612539302820722695241582563697473186917995592793888312088117439785054923232549658970391927744728940071545527381165007903358769108292306845341845914475374748354659971624977569332805956323984308410892953213388394888569239706212637858613934376891010675236028127130628046942047800625942122285478942857391357413705863589135254525476151854806511386008335114296875913633633125799145095293916388925361711781481749712731180162283460727067841634722374380815380847886855514470287789992384133410273971806132133196313883662687753482063231806190872034218311638699947261014264559101877047153140215023805247049565947689584552044442720226128283702028867101807642900224866270935724376190939340349073782376697032196913208036087763794218692267687228655990915666991008548793034587447140544495302162267162701791933541561994805018535360020826338993111247039586406263995573205563542207850553189685186834447460792670156787841230643564451624275427440915794633130035376028285937077893071652494108894824891099675815005924829284090519484236003663760825238578278442953720618719847629361869294325829288923080162987581977854699865103813832991012580010234138204999405004962621901659705808956666486852746683559980079995203322183713949496922529814759548787860735150656739491697159881724882045749738604909011082508693249074574093079158926111970614828803875364659517003492366915242531819254346196062765283286887960966337132293543022370314355048747349279239892243206401015878769950271835464843663874727708402955515989871953978767145373232527912320928492034272302292693896152390523753374535592051511009419635615378935544252926815239424539710428509289589127822621544229662668243809942704948653308695761791047517775757279474123899419389223276953867084273730700341953422459526607059639099401517418380301530492695164407965655840200097374146897589774382793522094627583439089461833712115850945679517281919013546760636843821288303664631158592131358462247446945685408897527479516270553896277618237375491584539939941485734225773983367453925193571504734739006733284083447488605955902979413637513884956771921305808596853094833208843186150512883839714436945467476164502045115473711881754296468844041426648600204482630300047175471501932379693457807474242982065839087184732302705987343549811732100432408137964218587793132496632835728383348204424818421212186483435547809416837941680927213977344891394066332991923504118247185875480482348290269131365102240854994428456015223709072113278491104503212665632670471365398294694993553281128887810444340521490574585295145624686187802338315260198471184502788104620237044780497581541510114058361756235444688145413475361975920833272733197326460197392297983425664407697195224629314629625666452193486686629053667726804307986003609325739134466669751165271619039443967019619825032065322048782707697962542952209758272414195293390046178492239514806287343504937869019178667779248787771244216537920515969262026608648715767020704884894386731380037826776131345749235883344295731734703993330627237750554991058810149002056200329538578393982643257011804102633605997482122899344011734591156620111610694289538772805329238934813975586213816283094674543409410984811800499537909725137492889684063662074934289650535209238619052456548291953710362689985743440849310277930628431507368472306092462445020863044241897353673020954587724368962239534536361300027542988137624997772940870700581070179717150122889149159061473970869377425879119860080125129828011753143134460336533382135630342946079439221096208742940978579212226605427403108939386482609369352259975028612618464589200179373211851180107050695972859992295940809459120237836953176534953841421036972296594350885350215883434648412292259576528691462312608121412033520959291860981665427328242886207683206112207112762314069241236208501654218091792377537389444595569559537973698268133055585750367266631955720765456754754020488650618089002170829077174906116825126515268355160949929107747275490756726087862506778872423903822620695395874211393504907216922070640059763950168615429405925120088141931911509155416733394631250765779331657479334036827271183273434098168660625559013286482339149809837725123159956848931428352495775968848083128619685816833304574748280718435814901463384832889696578007307403333039110888006955003929034379899367478455845482692656149384770486712407627151276041544676340576992799692104564345870256903447378581433765605195992859251181698186708905244221900961049817541165494927436402048707428744447167732263373703586011302505147732062904175879856379007341800188091352230786248832895877181416375264414438285593162722574201274411997801939648426461562587233377852255343756636966862235603504381194551207420921877531367317799036577442257263983632791362091973942021138142760705047631457180349880558806347879616715623820982764082585427648471087018608219522472147875795031752699771134130712446320251685896083679242369012317523220154730267426075750671339915037217213682197755630841370244062819388976621431599422701866809031160838623897676090335248497437305605525344671238228793252202080649687848003088661659325042129382802532755163023619258029189391009834055269530790048660019199223105450057357213428231951680162535602845952597598029887867705062822661448974593747011758077797025643625333269627538298620219657705409066154722632783077587151378243972218459732812123877921883951984591335948055353018141959951856382506644741197930682725689944789235781315853627131836263490923191993568884884474317747308042827773081972060932006962383077176004773015253233236253046048088202283425051803506723442460524560108863723610157984142525921672140111954418707618651984888346771866077059326584507676426953377255746996531786313208032562575537851643825014543750275313934587844330199565764737232265146125899529844274219594406437555045052648934926649858144829849977429839557666029937522814350526178401358950735506716542411429920040438911564216852498925017760715148426975622920735694468918999311728514077217971514048806206131673909935392856126255566891481010737246279877558238925264233752928397979934564421263123887302327616562756455035960609309539150339772787855603142464128335799651404893959018878224916248890154723428857213133544875504854642878035413001972460758543157041364029095281556056062330477114635679793499543568283801171629329088530688052811238332792276042386255202873788256498850896242301032430018367643454661757772566559138896529187392210436304223547600096891181798455563357876265651268361106071650583276833250490755794742140649853274884376038737839515783280518481471241220763914570395558546247959776957727250398904353869972212741178673365238460996848992185278504321606064740669698384807535443122503625356580767292081867966394090956256911865764240082922322524476817354131954346982799237173630595424959937110097112915343650909593741052308060759625387049094857496242929446542215615031215099203174939977968755491965871241866399530075675013198179416511766467898670075201691242554131866551007469742373790324968808779395019634348469703590675396681979400283588565512900375287190092805301752165342607562295378721273329681961107251014117812543800261981160603076071603965656540443118803563465329650488114778906782203522785036739490723052131166150964286158681253805710957454804411954257399118534378243076204382018974028109885996620652273810650505033184961541461430625417197691987230376610834266297901993664026644251968701436788602445306320782807877526038619084285895956073179446223773488843906975133599262719500754584670059238737635477487643017846138909802867687976268351172727345120107223617814145281903156716735555567524455663043467215439978316273999768908798326787311626256882687607648190753021166013896998732883428582163300002639855149690754490588871207407080542676627871185456780447916484348795051704130160714073940883340540072627441100112634456719365495908577867867631792164958598331111446063790951875368167133546743333987615103274481117543941700106508253963629399700020401918696915837942644548124613726212859989666225188248861258408294465466012116373691602220201660952518748529654202405683626375070277512839413205830852013459159435901096347977741173908871638912755459512943488543517168735207323075736466282578384726899722320924611490620036614827406005191979513355277233993159676652127592660122469906400094936261123029330776593633834511659161368386961035059281835559109539654834145886218285462396390371275921933440168527140345032528945983540939356542457782088433197129841261473505073578591237079954930463948180160185350959618746762662031292804163316444752391805549289504340415180855652674281549167597172135131621910447379834379285513192320298943198324107510712742550607988166802156173129595826411579644461877160786140558596823341676131683172436540730793221024394804962788979872593211483049346082954608845569925678566966671109670741953896022233708818654222889400201150529776253323717854286768598671826883717427154919321692594997953660784049443758562187518863938013884990253524859151127244814489436128602554132381796864019035669122891813972033675009921164755263611220274533959748927030301950974788536697069291078729960526361957937339621102556795911412232829002314020520587846099488275219532794149644972060305508673278584985976945996781203634540051898402300300026827473359648582280095845000470850062667903209625284792604935650880301336269264650720659903426153659594233636264905693398537625136388520799739911103131994448602308379047318721168045336552578017336857661301251255156984769702018564339453750219699580286513383809937584880787013569718458304264676052619877696218813472591346793219739671595633090942555259261372522072843342147700721542388601337200659502518878617216397439481246040933863048419314922012881879743961655947411780695153833995491005377615956519582139067051689732587793337942998996296107513994934012759628324966291411654282914878067666295302616520265873560639676926902206456956283581799053878437623048832650854232059514708834141001146546640722416275087960850136111499951977389780201864718118533029034643371886990039413938131397611496649429910356589426823443310127844438304725009112929994853961026566957299504472111373611589323134869782716382360143998289891706208143765792346711894402771506974499004954855756417346821779214472866639057216259404074827619882274211613577310339562104139860253280325048463051175781836978109484663188227691863245868471608918576270532113879228828330967520874813024187241761496219175409143384550253249519063274479268493139287875568617338589818940903893349227442201501819953030047768611670142222185514717454955628455854105202789018325282359385972543025127501383639421343742193414506148542414564380782983163501840766223929643749151535683134626303618896471701988150382975856711315086068159647223966785378653174981205723419312492100958817805958761405915589620314662742120702343485448653019042418538045445748774902529847270003065339876264584886166298792076643299390892959564037315288950602716773533638914526853266870159449024948891267018641617620069788662437496717634425652227362913653391783545563166723602906499286781221817830273529334747512550497214277314050534615337269233927119159249985202774617806500767269131957902224754170393555507700178220460091228899463453999902132741118431024470021624538863976905392715245307437205127549650384417407108528655428195165745414566819188669680511741998039898251211296565034689546155628299638027601027954084135938317537923695619427802913762536721201257977971196481712616295970254285834584707684836742548664228946355225366178197739338487026472358062948482649869006048908475718635411734536390053737521614260921922804903472514233367113714790654459705337823146423089271745426632159065669826745046346122127206653467903352961461769651818590272938504398096468664096443549557676976743169575217589627403805082218796031012034574814467393703605797878147631288547696349811807329282641540387296057509682127897665742128271069190598225939912607351369183758193812463546220213945565188403838277738289072961581833152216712872089284248869437190312190960306391225657714868729651461299548490145768097461220907521231199701462951963207091599746630908771192533245494173719803577323287817295036475426370296066284979240461921582828829299544048542074344519042677569086058674807657334498349758453060252393656164125776743081888546764826387600340280836380855118103074186980936581330916446088609477864526565267146542728918936483516447453305232961455442178685841902677743171890589544147034528915419607769166012601875489097731292761748906092061448003266633954027234906704257313452195615624689726145147264593135708246996857503495706154609341091595838068344762905084527012079071075995947040476044311876249848607769548210406345673036095415282696828832728893353295491217310686587462907701452236280739714006445605457658156488205377685670112289050817138622876535271640794705143872269400283744388669132645585627320957481490358811064084782100745628805766349464487379708696856580578088268876180859948227897886733305779085657481793597761841694658907551506036358419099164635362239477434872507418136025015655459850784973884453695454398910772067879998694749186090300357898452788464882875172931881558878934737154795521560010500902063518262917829955813133929717756232790312178183798643298257813542544228108727438714279090899128423989722847799362005864163355912100283324740356624627104558279351672549243670294536440304585305085148739560848569365703580888677075221754188555023062951656205360006359052707550054049886208389190791048544840480030392668207918186809963083503643963550748287221693580105416937000600391270172999045047441649658867306154403895865918130011365524165119380886728915384787562434924103755751654478778357206518535756208381669343407381703426843249720520529718477366523773879089257442108488718771767966546661351619429931660676578490147208772813701044924991173350936573190984362632185875743192889975299358062985950915598328528131325188597126360254501725851292999711465187950564767689868559344734353087966796927071081389284177106082973256960706255701102783458916807740715243591195278474478012320178378629219365684876244544771573422934970014548677806195307811964897043488242206278329168946816941311949836771584303499897039406121673973511660271395063465888746188522842902821709036943523932346200294070188877398115262232560595830938224277366935943519110681086097960391222134651498804860321916881765506418009383870174925726082369099827533929730299268813866969798059666278545801167792458345711697554533358898359243680753936089456559793941519576298344394603692501386148910463154795135090343238466411033314926379754918516573816503967832858068136334403825433074235334078374868501046690051966774009149512963985003302975111176314105371025605901485449014000816637109486968646293855572734310475400858672385987638399846867762817956894009209342557471040901303672090953344801259126655128932880400708518501220973690817895373665739207271095468414393553354198804354521554029565735634676726514523977025581243576145701948298099730570651493386879151183354431596097002803789020169940742214043326609332425876799201635601544894080524389191232422380297097628223777005006501300998379163268232637645194510501357425904057301769905734851719140667064440791140821602694813323811677478936392714351986802636390174254691993883518056306317132734686995108726523542134064577407755865137879949291432627838608854173274306968351856685828676390120226569320813312485258735684141637654376656653463810440670065925583969763597188236495203346423933904899326891524914986436733326800916339071823992242262686860161152483308033605178503455847714611919849603293163889070168563445321207547720935809058209218008130201817901555242099418661715571298015372256110154097339496735877213624055372331359960088682703242833561629138638053279531055254611889401585309160271949724164243620415446731781799999105940375037500443748884880718366158440777068525853438643753344431802616433937608467843295850090501126935057021432347591992397925812907690637047590252078193379118471139844464784147997675510550349700213764627398731855286896452477611524174844456934576385704771505912655733146726126683663569188382527253717748088479926358589054219445643738051836837049438385406985553556372414386630610183168984801187455845528594146232168968984690274442289753532238151187171438094438458911637217596999042302913561225464316726804820723848982236528533170000533383833347641891103993207744649611500790091610953411580725933073099292946549477830599945442125679540018668325753914588450258760909407069608540054913288976983910294926678028853960547118389850429389574663802787646335481164802973447177422537037565331293498525975721616262157735986341776797789014648610445464882351486595734776609410953328957625124807217674372931070741249937050520801696464456163551265731104667869829400698761080698166638407783023399773231666560261680043799686629963639724468334791090462651844453980745692681944863598718763313475380330515933281838347108975053169945700104165272137415348053975566650799157174797679335246737900319065376209209276051490830019078054082138549873578010003120601743334674043289151848083619572026115381153334727225657446629072700164748194639731892855555312980165607721323402615973978131286967495838068122136649532478290391260207153124830783085047515385400834263064413628187006855164724317633891262138545667741859306679141181859432094893521385321351636158567602142170982460780607996720713505435509679944716723846768126920177849060326802435287412006027362536457501464771106550782956686137315183872017806860524999991822868380722693517034788336195676361596662749399868789710443067387019400532528246270234514780522954988167082614751735106488661123244308028355754792476211521000625342307684720827263827079471232480684262645776479508979370311701558491064347095851610623934019490352397762523871295358899906148463202552778461597502115980267096832964015028924462685494923019627238065380563776905431542348282211893755109163524281731085161600296101063092228088007203687122252541915216062954808918861159533484669273559211834371162078712360525172598572595342642467234284336891058114107576585669757691846697256837679082798755995472683855285131511249965982031379504328514847574920915039869522248889638838747760496237174394215336658992391987872362841803794086962650794883600743863705345649546887393958217877944175557317558056300035746976914817808393362354530807409608764166444782740617089983097913136872117050480057288816917083345617931500631528892308769251085378088602477298962813250524422698415383938845439087621703003045444243724413624943564803340009021945933253436247480366963896098959983380190392083943731221614377460235681466714978740771807900584407236213799795683962586725472491105895381559127654163181426585630070248496818701387962853270696073856873545942383065901418016973388179214375524015303407918922882698579367017566724307312197986670870108593467777550038787659943177631624098686360786424725549874282596929395042397462210238867529161270710941196646665823234958986666716670212690027113863830702536276636337555750571420384494304211996347992225970715164578496247654632565716176283594985355458079007081902487325974770706854896455829025453244612342635578953548032161567212964979043285575661638410722454458563899713209473578862050401649584997015407097130007650724997175767678964123657633655007382550969943565176908247631335543638498668109865008499274501219102072908233036375259548122268505113239909911709023757273337895998532552056343827826577830688680338418501303361879814463579182411896793423225640832202775192167102310530060163711283590289232105723226785419296723751700472051995607281912826529525093479824706669776134922713746859304038391599540433044848748155176022653802516569927081835235173929971246842977921031092313280548624672412537158589567563334962605952797003544468955346227660035328014922899687833580837901168166142277687251280313668644570736148209146665470354421964968993037991567527283014850035738575500289518739520443539526231518870497292209379810402754370805654841215912819898083173919830865237983938832080456449311267738659121781404523892191188005984425158603848104437921826353379750028992529022883257523732785202092411481730474599649319066177063711688467677234482507813113887543663777771546770002260029260997044965212091628853320863473041500801986315120913558800571954580445961898455974744986657505275320983128487944489935535968577212760804864400295866937223452080266256672593692260688640408207186499645914294507026669118897419608438799285381330203643301185806414397929977574925431895901206279481636575185402639816764002475029552114471684847152875475354727084858374243341190348958757309692978956131601372893767103561612656889438853164646278677141279392379795009064032071570356290173024922608581170584188204548367702821527497540211395371511797169546793118000902767869790456560770997685743781373933428593505624497198150691563886748008584182089074754354346009987121255669679426969631049137134509054272782598332123149643582719356630841109805234641337707769958249230923383878537854654586951546018404069210146152092804164265603038267699178079794011326859272349544964461988414915153065414436882454284840777128834933247385186904429264684858372762825415800897475739420861119786177130922566902944486698923251790771410214344127495303237802897064718850666852440110654196277368969455487373081479215166763828471780987724799907698954251961749006811430931243725529133530465510806700283976867035141371866530955725668581721870512796693089184400445887858332766180126164733840577173801208528869497843366462494820200044634027875319802885885285547709137950592934840243872915092876204921409496499588537797506515366072147643172268825364009393659370829983042191205571818340676841034006478026224108297135255073317492370034432288258425577575698164946623535047721796160967677870518307046820698737057429972270043612148634806246627796025067749769489730651908754398977872689955581863306184892344974574434888025241459239254424128692313954742926994188016778009660131816629071408851106485991433561111223978937867422378181773197227010284207005993145504332424553995268358224937822241338724258302173965548187266525323466090443231801186215565002443614477690358406796943190656217312329690510921204562304354898475746939907110930528952272380732109128380909855575935130801597258857947249159506933925715988255093004014116496116708699463001703197430131724502483906762400015036430965357374268457371576113071955464693594133605783596462371622775517431424494571510940409543186362874076072731585578915213520233570772264615134031112475855275182894863603325945722341769659868285530707064893815488833823572770357698492566347005842734786453574243054239325579391219378078938371310190411848876857140878668261585752520090236410444291442038762641213132820562065216127594089148491211714994392347979485420032083144899124757528390836843723290250299452220962521168224351920877152675638442445651480355112979786349849521840424649343887751053050757624279791141071565590059093785249990863715509784433878060482364476190840885730004660120533546313328418516810590713113406282969220968184621391530621984058533792477927202856029719410612943269005979726670937197096938565603440303092731212209123183361030624642253431295010474730784205808210669819900599371810684724376806972472477950243682121212985228968265204964921480162433646253785212142573411187316114816120263556812444691898338948788892764008897997581156042570203503833173655793108841022840237489803193327316508197034618375600078280108309386312711808386729444993543451448200434725049978837757265274741424882180048929663285492378336564377960262348474249116507439992385371822156497783877335270504160573229776932115071000672605820467364148403096819777679462976599046098885385754620488251624878569196506438824283629426014434532345075825894394009046105251556184796526633733110789111251356305000960107009584162494028960692875213749995421329331805751177954312371835955769349307081737219644218007621020513657329373950911548391646897010031447910973801486460172072651740904515649608138128391270098594980521849186618314567815190394468341406437638195214209523334883914915561135739721180671568478794067179545895559616875912993719274892802918654783069479595404931376335800468108320006774027523180142743205572692225930067929910256076318581774892033670089211617704875404993870585261799507334469883542107947618804704637827742562763814769957486302896927954077746347045868313387604192755999576616736427395207538006488205769229579070328144122725256724578097666519069671338050698548563005512164064054793165470097075851957124592031975996887373948982820530399417134960840572508377241007840110567294480753688734057147488072054953300135362197584150960560049609714196164850542588112381942919504602631556637496080344891150043620554231460977964906311450963444378868526445184183665013489989317734917248220560540062254043469876451751036887127237221516533059424783559791995997778146490525640013250209722594998221109997670618324687374904436508243515234223459524902328331171085216222027983736503358313671371680353148832762793773521867289748676153196911553475163082521437584265091461240592912030091968897445002644673781943707355560195447763932945761427784970269504486600300324541540969768639384358712286825144443785391305955459920184198559701593947347761365034772038107649370597711142470121697173658777700054807565549140598758725674140113870536608887172070877155193733997298287377410742503855975194836638819092245672120235775325596883315163293555880440678848904594456611534067577425503260050785615694680604765204629786948981802431537328171861256897175691555699138544393776031405824974726898689005104466452057751731082957789601534348521327788639912004921440045541159413992575450052505712598877340864316130414893616231218308941729871488541223887829286472153038459322247149652939829108086714091906479741363920473521894726066404475262046802148892001231816798177506290458207662599157083200722466383940346730833315366667631499771855167922327795877903174486043921795117736065865914008078264741504056717095616009582646118350754719195732022555417118359824985796135540879166789968708992052833732255374037758004720008799803927354949713735962244509637979987200282092072417669800672503670774927764000080410607626194315069535003003887839047965884097414178712770074201865675962851907278450089604456243972833510719138096063893217197546484866110439276654411110464329652955364704577310982787824249701951498241559093431233724988655806007585738087162669998744920970073572395384820838869035919156238919912228563334385726141370427690008708186554773458587044495328331183832382866906477139338151457847986417200360273442757298729996787310408579394956840414176660323664102151972817355026824320225688422738756271937190063741440342626974215685395466021581367653595278850800836397110332414119661660574895106735069083839899450994106169943035909682769018053507612353138352960513645923451099694602435075487444324281880250286047032434898767940661900554490074288195100262581641078461957914802051095599208004411243643236287190749309255719493234648214463354734268246728648233788894292438680898585929924762694767175630304845334803863616877894313781432292679787298549892620694088070697607599900627727341490374140190038337204009613664707975011383518844654178566466208223013735795102768066365169814749496794388342412488559652643893558048719821628460319354893238040039007944251331878623464858524116225353143847341217480976086891184171206202515677511592998265248573238807790800523400675340000899455442110213631292147427929345514402522336240827851518882782445375619326678297055658903714667024365234062480865923396252789844423871267010412689742721924683265662756480301664184069141781015625790295011931408591481425229578534944620889007247249359876267328305020365540834761022252572986332941985742100185106993804457140469252564785128803448992435758135751247020245518684730596286619858138091764061670954497476471194248189090455931220288466488727245207535640384254308625572531481472016137736316675359604687722604298501532943710596573867292205921388953826365892683858155321928838613669987244640963916051741901831208865438406639924730359599260915281532707042233160874157203034012071348791440573709271791315296260721773435170586499742288846923989127428243455810519409769040373814100147084652747268505760321804052543377970572563563193452638074930037153449754155338906685960562143134895400504569562103175482552787059996750074591523774178740410967950263630016053315327732697802803939629888089238722584631630766107402873344930144906256823657733260626219942472259911805663335814121657920715680081548794806297893744726801200062115449640433205169284905979641652276117820829847967413224348765729954597783048421670829004174600047215268291832960894023783454708048433400668133661999945930690829048796268490379707646740242509319549298454047356049583140060636002110270921215774074215212355386063307446171664485966084294949932080154813515080720148318711172029535684091183566986362420655590517100745572454737012812604469291193277561262956889496380581408463105023833411122137546458772241164672873978222709101199010923927609878692285579828025401754272331362949115858481328978062140369687329072753343769272231769636956993149769163273306365978981040474794259544823484700518341141624344654303505420127514440135656154750810469993080300790218846603358121876523326682318548099779643062408992774257325235519032012583896457391492565801282309325992971626469592826643315252047496079724184484232131944050096609461351337964781721180663664516832119337444151520899574095959012787777178530630226196619838095122150503164112825311838865016829312167665187426647007521614907421315033854088837458283968380595591647389614453220321323991742333186433540246286822812778557168513106750581680692149269726780984823646137418369874864862237624921501433076697917532070174842182660887030020467755963153071809460111849080709051484728929215136244714599645591827450193312373868841091894729009938203585582199987032367768486907635173896984900956506885822865313033462240454729632495303020849457046540107647742004137390791842068429985372139826433399685161855065555147036503829437625179919658541246587327953349407199992622524529408966381886010671148931019121965403708077170844932061492874844720414588864348183777362051419884618260682035157832995086588727301870507013807194303800137284100468109507812285229968486003942300389037964917748541143593438581253718660795289310108479519845844717906637954815584238835939795133439781345654000886144866833006320821029565556513394763216706897372017276145396022498724387047898069262146258165243350213463785027795832475938059421863797999614102219881508941312874212597546684167511647118890251733585073628949465737623209441947709887212428012678386876669727084944380172094446146318819401695178619803112771079583751455600767644702002263903231483536168365897164572868428595574431694603811654467337414450633535910238155351930791628163335790590328801920754633934739811858093522761921538970527269810715226796186629200028950723114100522235128070373344155206981352664313195006026607534351287803166838653834613015147125785546132155334418019102892994312373033121301062272170779594401840437999739718784734237890094978714326461956133468623316608636568064890163219465919519447333753623344193692390404862330636559741668476949650924614869982514133998307016908891586327900153817699841291698386668764965659824775077791820769610310492411133099874088723627953329208292379346864176057053957520102517994246568287360231342477124985713908811704643071930780081714879539181807177150568127172896111992497628725256367098213012915435777544859033941357339181189507276867731585833639747465120463010729330544480953618391736929794645205730676581249680189428109702191272977024001867301036409199999992731208542095620719919866451355198566601725567107150396372874654610912054054338656071520098090433278761200202417329789309839684032963437372837947021118317845464218006017132498759006544830254382989021176742221985555699358432622376098050265376228721767583158780599295890455136014171333024423082917503873178878877467150624654728911642149125629783173131626118067922811991037983653465495633891796671808174139551906985147953508810922186000627383060324261240889661382968194485502905511899223491711608613116700849553672449610852941088525850204201332854656100534360733339562230062827901209577862922103082164973125490106288846207683522609701828867696659265932106821159170455168903857984261885476465537443461877897202549575141496362106061854187030891811615957449093458194254252173142532075213901756821316578500658926194766589922499270634415753649884834510042443823560093838850731174424826917675687491688357964576020438128961989830047892432301147649686093295474953217952358353490763612907391661381059695303177471296613378302089466401958443400348591061360024514842796738893201385420370148285520429512068661985262493718258221108356595221184851733934880203923280115203434604553730924829476214779505258929510987094026635370262654088574768663089969556504513002327301713425583380540261254800549483763812811442303626245319474122457001973279170587564390220234485246907186067853951542750047878121565320745209193687455580829260876856730960883825771841731391941140988625871219061252168663275196660847776416548619873565833681937917748938663411211549368198296084306106212526735730992467468486995945784485740778498639779012100155352217394460235776148112981634044693694226389553007109613705454579635552004791269808512954635576863803264428592669340090978512920542691213504874149232534006101529798457393765283139659128519938058403201571836687710949937014099820632127416532860370479956807652927225594957326132647596939841188895293732491560571478668191948168361812058912249132396462060789341061860996357508238086332813467007608305995794777257586456094187064036501422041767982533107794990862104340927433964090677102302522883076194421643677804987199514296546584555190905646280096873184519413087616268060681944838340457628507634678195288243179178279836450687623342221866539648770466899164289066217050013619085808585555449798241415569154863599430537839135266745560617816161448369135178117554324787995480586508954109712151938922867497811605832467288839168494971690259513492043134985199502505154150068196998888227917586974946189103719791633237982444972634515228689980285622358373544192565358149044959874888684855837711420633702338225154113712622610972264828676907865937646497111191388113758706065935165321843360583620862230464763819067387507955229450058009445589024407549618407932214012232316540916975720858922578901160254122738188514242001082370848566954419518239163699985801346443886493116052291858686968026595854797839659950899422096259391058321939928321976673358162339659099709093463295676352224413064568809932574494122119890539982133048103967459240888560354969450092477939494081364765218096440151285986531126839933871045435898864653099247301242528653083924689611767787888131547604592765203939622462392140483584550595392042142793084341534765099149198206850556401707207839172635223573712006442060006327713837582349053858712597712353612989904199675988766915729193609987511641593590021476161445321567894792914165142235358308174498323095884284178066824898091264302309518776473242699097734169049213636859686566078232518940763122389015020033201741807747092303590929803391481997638521390194247634589066915375851393217563047123320760570786273833044234489901010736076614570482914212343115493306456135551902074401879011840025155552274679363986983925279004619316040209436835135391645800926806973001677519700384229514392292532134169096778673096073886754538469564424955341252683514413024804859620104091434222416026274918797928448681936984225520627967738453716961788046607557767397135327921242532125001929498101703291737461085125764387685584812263439829251078127785813233808300838615365983196089656015920962266354840438230946973148190453041402776572176643200650510463266157514236905701861663626186622864932786286997328624369550819946016709703457736113558912959898464985990673623620819714571875891862980447693729700162995941592607991863948620911485010621979677160084763034060757896020822990287867285991662286217138070299080050574600017963740316864306517254213074443624868687736642324057036527555644275367496551641879762246370090669318620299528010915576038476306955520600579295873437197940374895556097688981753815300758660828153140674591550468039763821506757658930099909533551949681808547420966131535846984849702238825099904806497837483571950603745519182728536344787910009365363201079850073276336790929547910859945547930095622510939030395560209724359816451670629553228063769388274875443173495201126880067419557890694591986147917517977763585748218072635540541097038745256240279258488999786619533289797493972204546570849192619824988448779117001797475293529416671475881358435266171669372280509148879331594355728884056571254555029299094432035206378765590212722219335728782308546931992538679200421366117794929669821244052146168477921279091920940525739324552832672309096571712137699397687746242129112378345040922966167494922885046636461100479690559803390526119608991056177238424982853781035457162590852635623162261489290873098260148243950732934353268386004663597483261899506751070796496146195970996010622011622302166339721621250671628872869445702756852711835067739125323649599929688957722824458264808278154604147969084998220203930790429232232896859471118232189014501859698643776847035726003974472966448072140595141704254331288596760760622626877867475847365800848561466697746685978119927786493872834111860870454727198575118788064616490326394520841347726034651849025867001953904332650650373086654782239884906131429986975842207221380658288791704682324726586162799002167032392793516885312369542880806074910161836019922859091208991356874072674187644571672452857600888177786402129547158491137647548471736948807044728760779937445672175341682868536860859956668973248440293608872127387991963397903898340453011207319907707952190861334523027717611337697700868333389409956843087190595489363815447942838781173860094987954286005788062720516256740054450128160766593317755404600382164320725888504849271850920858457945598253394478711018778872265702543396442632330422906395707795190905184172057903503064089920304701125322505555378997212066319828181022991268834968933979451581983488694984548418725820611625542780191195156813751724737259335993465855939864041747666301715997848187285464124370310091620744089444940958097423887339366848075905460831721166015487985438770507967369241534584658942219633883252680746630944747086271327058214806299272018739485957100350718563539393934703543818188065222411233958854036622861614764222623744414302961649324639774551585346705572176839159570154464257375321719415636486335821534647096732015291930339479072404045240825412716730461680301122384945213962045672915945555144614683989230026642957516840435826041845412859305291870086838844449874465743776390227492489081265364937143604797840027818790343017539181626216289794670270361989322258966154552501322976139916868937641341665675391529692258189122130270797221938156752040040715117948602875487963997706948802291776430591467926162273426422956077566641419236773355007863863859933074471126434197647018205561549579574152313268381429132933303193253024444533543543932329255774246591706269735578248397099401637407435862900324603676636847204616090789248827032288230850516262905229963845079669527135548692031250278291228869565430391012356108222139043955241608906327384487153652314252052178725849152394808451945175720453106686343588660272039451111459871530158319598753293720185557742477596940591898073400791207253227712111198228942253378414186135101968607613503911984885117768193181663836732404229869522081530384178362146696050111896617438510017224568871712010932344149319044179007265287776141678851624110741796853660852882436034262154513784913288425517224977118164306229689324993238869173610064183591060797711247711010204448816877735929746861400075740642116099431981665380765332915138199875654191768468534831918267133512968762835531284501952721970576442981260257929970093438815295351597884079263442270451912288411005115660828318247196721870367972635886988195810301271857376138280335651985877538861404588640803348655751757550669095896641559781082153152712639017360543820089755463142230270148252099440975025514681640219439418721227180444203019352844419035209623243626334036009512668160483720858279072278926994966093221145299503506709318042709592049317138813372479643483675163526436508272633787938867642340948578987990947186036298374324517641580991901271165327344669656504315322587057769041892918281363326945473772227270213555937815305471017158189012818049864457387799679299185043597462388758071786770920909455123492477176586733275396530360174890796232434536244818417746499890826077800906871585570720939612421941425563553579618645759469847121774383972782603444787307455079893198198776740882285235240528409396994823234198136166678543295529211653648836557423173327461795602770507786970506295812279660620172980352733562635791598362627010375845638042227818477198545679422725361385934857041197929437426836623852717172698668763948369442505422098337682721626517452393773769504285512986375740145119542313016078700132937054758888489604822408751824488609008231188111596781509598530206701979555606702571451424480197292991493461327097863699981428492710788173290645741142184526697833835241512555587879763573948172837913743707440115207151832867201046511040735181070880515922744472629049221248872155209237608778180052039821495307815451714959338959056581685500149316780391622044217440114615995456278317138570525414331396457601503983092841490920833562776936044239099411827701688585176416838657445049425672207311644660317550840617872018926451804671872096372950036364472994646880418299746394649578945137704488870534830227473942072737664565158180007053793769853159005632453609574833758528975700451047579102908403362741811428187724673936986158902824866195747014037235013664164156926673504507639994745264304242007448091123669302046594663178863974295569269762162643452152499488284336459628678809925217996981862067873620270155694672912846571253625907770273490811617391386542868190912677354422217288079237990478510067272089746847347011861181527250912213092519503696581082344675785631568108555806709591287868124772562567158529731259486836326750452744469887592896101618866705575715029125889909910192323727519441345389192804696130145574012289033696246671405992544778460842785391204698759478365103763598625882899238982635550604661745607462709246265143009707087902661343941833985777308369909893681981582649562323073969950460587688335369737584612152289854496621407317191198726596500588234921125247053374793674368663067441420561337254768325479619224752178565099555410384994619996825233809680549359513928265423131273557537094741032640646732345121318484848366225373064809805985920437157453063146515543668161188751534549059551946839818717277629896322256698622672011353225612009555177441261049680714480316282914673908992615212085763664568061291030311999936009327736624548604537638424665437394537145520935617908400400784890776820328189731298156484601933954393697880429296377816331078006207212053257655287471678597890525760581475143622401977912030688882597502958055098637846122537160338495645797092892472036056822442679558213160028824199149941614272720464898108704187281526264300997805134165960206475261708129154794997801069653713580505858053973042269762867273021702845730832769073337607924389765169561515969666309932508234387966202752717940556725429209851171095310601817283629638005415928730997908195581341289423363558800048876365455870685053653673146133573644325187145050939962405879324975850209280699004471156569489859955145853933220935502285760367356385901681757548241682707298419730822038510264261749560335886102082540639948088013429039608602202862788540230297543189596357739619407466601595897912817606234032363834544867350011312785493124796714502391722715617670048188104719755010319415526351797998797389292650648444135899218119180197555945822711084530680475938930748313965695100368923830054818513230970147035039973681687013899435346528196246317547708482132150630780703725994274684120861380867041150065122529911493159654970065758177323168442048103383150542568624661970582123483051641346702216267736530092764879098569240077087108019895468687039308999207372368464088675472490814921345274066448133674340338662203777541340432571372704864372705195375497117774064330430513927475081614849778225831841802078005497312846714945308964518372654646220559290597333860665493289166949793884274393642296735279299290824450858437073231450761910311375512260013466448109617665490252894288855972597542324596744031297277652575988564061383225945015708741599538578272914612981379893915470947628139191676249061840025430490315173176316319753653133034999883940676447109024491780466378468365980941191816199133486544988217251623965593170679663374840305985436589413014803188562554534256732363364859921042149422115150177910548858491749273256904411605919197422332367561989845882134844092243737117901764498341684403664341042051095866389008674079366974826214730528528436950833002861865753226182561868124151044697683694009576808489005538260658159961759867754815022608267501726060298429587220929312329349926529927012529727026098370721377138652238440402365441407670925277968129070354924894655441518852233321022221790652589427275724199112319062319760991818380646778166727282940651089744749974833135636160946670668868299557713709453210259204736330295330502726628060707866358816564224243822707564199778344316549709698477629502853415006539038057649224017790015582578816783821115344502818261606532334368661849754040494136120965618923433480841029582118485167487610266854880049009770447603223859076772857082730424404883487883761771381062830004925343357304683008042086203411144796712875485307875785199360369982354816635896564754304625152471439870172484360516847265724971873516041230507242625259767412547723207290664962087361153137252524906596220297190199493475620245178440907198769977343423373357674946046556963595845887196827562638704211422418910144926143297395499015670730585525082309664198217828945772717832737975082184030559151562089429630534180097404407923321054381739296110832366651015698524526287005871379327429342641089744629294788057697362727586681143935947261759033103244757404114723598693675948415291306269587290054334140930785671647721674808094111592795556576153348720716887126962765346725557633452521195325270423347918816080165226237531128654742403743210578483953553492048224435943691269772924413426114654267826217917087361097857887870879560425238817290295555822860444516717801855856232322504827428507169774880129476467960502188707328051058828873014726687159509542568941710687150810429204596938988057532331156257891144435495978357376751718958986558220060715292476073412919127781556674123768650491673838524270823161377803888961505503177354451564417025960087455689175415345108194555784632511055873523159792963577072649423995838988922727084154632222039088062743190843438406258354739318982211298162739328022588528808406678105333370996933704618177782630857206827278588890873760605863659161240676381783252986394860908548150869526742590961354729130493339704560804570458271322195176310421298829541161641040822809597949031690997108859339431464634944771189561684298510539763934256288363202684185916057116076659892759609434353483511796933642668669654385506568191586225638615509750260146674669856020237623431887999087916872898169448938900829408492085018840547136387785091040488621023436970966422507156811564948831941796459904828624677373621444059802326042493260385427095704229242265172532169034405107811392087830403065342570845566917409321482649890834432563062279741140929451131207350741864163452991907538044501171106054066299117452527744720853139655456807678733431251897567664108839293320644471556934148128530475808570040631593808994046028524915499450371956268287404958504612035166361687623984886233582290927259362384875945363449270356688974524141326103984339315813411281240407140741777759769329121165759104750738115803762987260614040010336376194182750294977687315951983515160686125146475053073188080147781766215184345719273067675916442707191490807445823408797985002462833498440026363966235133925564137064187436365495988613214677864059113686514810524285319288674986368048819734872210792413944445013559390972583639783667959835859071959220814624366937954752744978706905174592262073123689547589458185528413859299805946957219254541213660118112676122047199264641365403829805518727509317411524497033397540318340174044639725102823786973717783686859460745020918336428944441106476895700956044384776830549820758748153481806190750950444293967732575698859942864624812468746858506153428465768115477537795239690328563333182209920477041209887304107180465184013831773464603748640465858927919767511764276061762036077312887577025577345249414801321577377683708208454773048574398697701666431974248799947199807407780523321985181761571370521441576421165667457234957388989565898102939173981661269880260819465731314984730583479037915013908281038491733659736988865363336128581191941287074085662770830208624835470828089487638514653746495597504208913225577897176933533550122785829171351263441057304417429879138977311045397771387496042975822127769172355131893557975684345515334749238993084051943673649769271489738332595119909622452200030104989204290546611775064087048329054010241928978542420995613938771703559868901388761680438072034376444247834671134427586217776001657816388115827074389445775008197843770501702518823829166875450716352085000532636941209145141132324086447319726249631193188148984959604057700762905576286559954540257510893307326787513514723582783864867238959605995309742208302764391044929901275845520648309324172966473265703628138003360446387455091970099769585428796560384167891689459259662212419317154298010175088171226274372608081572136764827356293800067713751148841897586372247328034658791533443282577128476968925803791514478611329987232536616851908878859034537700899114933582471810636983051900261078071720872750044269094042208727996985595916073443366807267638393757740630405038528439256271019258209752614170082979594491930509973427630406959287802059175243540872104199166797047336421570419558010877218447233629374160326053562497617080073362266090088960474799223056498923057688266199817871188483048302972282667068203536841233708414984263245579811417862485361100378078359202841558532850507856073266937795185177222593194114440567232549024798588972230010712717947723735536563170018062931944628000115481258061399586095655561540588519275461142369336303375542472414877104073891924020210883666665924123359072811921159572914437480329339482788304661517721114332701590704909155733971087882221332415769194402005813696711171226366350655406703539216151168653094063248185808217003592808400192852464297022706415590095289123917811620337712651033384009460444236873342642175756772309793156441102505350718860824765207232958555967847737551440851013747940146787375639540702011336131987806200589827138830006477316711923658681714488931681257916448968598740458308238837699499404744997093592684848234574143692643693128573979724875751047355778885826336504936154703462112453764556291723440024287953913157760661332317889464969978576359978889550731186495168759591934385676529484640257702611110579195759557090268002191328914596587514538407401377929327630238890667269153377855825950124952495264307096517527704381761296682778689399092918957779336563765565195384891934498825468500479355505315009395115409713869586394685148414769907883976833924908098343935314388197598017938583396048845062884665830559646560889717503514938785403217805733952351543684731231556947900417173242230558621498884903805209687877901598138436190055034619696820429062073168846737167673591104747654470753076468667306630293752408845497412987984286298242870170372588129375728197404006314210217785553271394945831895776026558334389846848940013481708678947453989879289338580685840429750299417056295131873850992697668652865007150492445236353779696865882029773948764244447965790573972141145327093137820834159954820003960866901555818482714736042575233951938244645327270019969382739189161921492233329044097237874487652551847202933219172288436123555042704979439056095746872380418547950730539737181260677385308765288605038623810184197505741326171818927208489530328476033407692535077317747281930307133800805454805586543924479260461453767934751481235303301410973438216083096020169029730200495111356852022550796344760701850900348098326200723044228936519347914316127284402530852700169357744798881559133391520257614284968013041532240843518065262953391040089241281952502425489369570165347655495140421505085738581733512752101887276851343972862945483168740735730256512882514893779758032076603846274844654419420822346304187820410157078698228493278112238017032465621054772183773456986740813685587444640007455576158757115759172186515760790362740757467796183762423896529047630421183749268362635402485780274146165665644902383589174684339339586996516154691203889570526333194639855768460056483938086988126901225502484637125014486944195395177823674666646777017569328241462574062038971382074326075046967756393141384555364392455320309703352614803920922806291530475673630827757722067841475596371059132850405375407814315289391293323560128427958027615052520803297109898169665789728522634209744344512349073730659925130900454099725687660694750941625489793361595433278006327994134194121439031596587531578182835334868060984391811892579237626603591898493487285852768575831033226366182065534764823048375001364077398905797110544723636997598320478690340593340824138453511640355051677775628234171765089842797139629629768401905150983509733478640272298326426465768301011488174939945847840230320459070902046159970346129380247733630584504451062370989132653764842848544997030294731973309202772528126801071154102738373329566473259658664806039047109506182607924030389623708062793377440824612698241081354029969719078299692766290554324885868990775025843795976738279045841870719575403817464425924229022962352114619484709841501373831761686401878823422022056983890741814409992523461124145586176578428597666830631599464134516912471319735363636496697509850596405654465033497298523837790338476791970974909213665047850530506161186905185579562653907407056083173051003680224685865381327271906621220089573166250979237057567383266901305016444075840564808924666779670440458374247184124136988135152191922909274702586005925997350238491524882549194136127882124800339100864810795745085037382056906186825640002317454424259530246307519629302278319566325454655646767369609229752806963741464658624364541085752638187121216262101610465933316250888800891135256998311873385664640718637872663785368765321121783986565645742990819548571424739061038160990816435168298306210612587598032982632364107537159564780489200288857529682575635845846671143972569866889523444911492958567751811385653018260806924387991489093326918562005170588199758914611729929115919960120231119864543198524112104897651719904125274127940511479619783523778701787188877614505465738777975023901142175136703086311137348289516441838821588761761960835232232157837368420435828195663294471197958654594389414089228148687224768257082042015154777756037047947673114495358458105768219549047819589156107649763187024445696013838877124786780023892172930136884848316947165240710813486442509894846520823228855981616812178657929902584579137819882259434581648382225441795047183907971745545519145425412904275643314002303945022575622609356010588069579518171484293551246779988812882209636763244091312930073449585030002099360215193810856601019442341551956539696973774904229821351002697948131679189113272653984387784373914788766082484637061680876848434305855676462286391336593779250107233050174275925820968592550309418951588343238943103754855106274656537362080648820257420630613335558708069066174863198311842822669698941939803036780780676238836308242974136924532681553056129538801533173127187019376840456928839591331986732968715491066163871464705248385853790561452206452945705777135855410743077349955686100959975277211216560808160817159246295346846645570820312387845786660517177499831121845168805337839534711396903119109867009465112866384840809459219569465949695844119036421823130366828346446605180477526508998132835722968635622475031756629980304336836991271011067354919250787717503693882631735650094589370662958172126128503871356930226811317003882769273512294594049978616352471654759669413229337786603204276080268987850084749312166038092612962755566890073595715209231213018629904097799833855281638660873190203548672043040518013113131753286044209568153352182258228290713494713128860677914240215299629286153504784861851415892009787492128886891581099838775919376769996931316329003227709772869242941881175433527498258813430124041941566284355712636292259616543179495568766760170905858176883294677061797394568297005844226189408294078283314007884894861276201854167411970557644136059850361173054475648311499873394953774822582843130644684209477950025851162611473554899913924246988357885267189880212624500567668865679786520409196394905505289287860886102998300369083719029224260583502740312581071327411976779241799633757548712806175156837458146535674491949130528232960068220677799757909013017162696187147555113371160841143574935142341020225142862258791862368855556268384309382996736906997353372403490044769872515732542299538218869677931416802518554412312397156017725590338222518096787426460674067082954290881588009122413791043169204993851593978072124055844407632952850947797523411260940511856054000531556903866552101805359361248749564834092454371590799558508809579350324869399025939375210392704646846742855335266810465555352384110128894382687284953370980169549270867847938301051142707493964417483588688572301764525492161079094410179620509724023163445625416700674337399297898902417274562461908228148038940089639290514628189571587611712745360071916836394810797075436924153041243066396239071338206213822738646577462966199186153742632262601871172953495753812882356403497962576578435441088444224735803112651674409405771152049840441011383003209354438959132039286935687365472076846645189134541286700895123090129150763263247960873974064482221375677048698862281872383931979485443803823211877347238856874399598544408045629548726320655411144610923173793298538736830362123822136184726876086453528326312207264103748862159191210642097330140267143850782095622463967763938908111993096772638299090279388287279170960543915010973499431766455125544971702353620864600579354908185842314009029973574255228887367837020963484677588299637421351038044023596167588919981115171901281319587268362097173040373196276144152006277597342537357565822833266708586999922682780680325050665659233501422450861386354736945001913892561737383495870796248540067563644587894925898736190456091096686209810766121226749697377487808049375884934536471404345191429240959977104208015894157663579966323049412021497593678858742912486401512769670975382594413582930928339049690372014024531855399041262309154739715214628467866722666839349716692422115969754527052373465317530020900260031394862125551603795561011789870916171335525047171810988197973947469803309328524673217446081387338381135017746481009869095346584247324193296889992295373402297891521273986759761511233911917059326820779550615082236269158253352292849737779310831762805535657094785081111869247688439972519944065952157269479767407146117946955143351976147397374027184166891779428646762831282092132307240334679890812959580623542180772907143987637623165699776416533741154335074734499124506836500355648198837438667070949359805325609011181273763272548939540958300583624268693267558916464579963449728683501168208364150023341854379352706781433839044548771083315133965954528102818621730891008956567410097552961348083027795883521113523080336673210953386743137032164455771871629637348926133690883190403072898689164267153412807842253935009702041679034130564235523443121787627590428948163636386911014269903856664633441063032244955155183052695171576541302190640159173178665792194336002854847026632012882473507011208819886719744473808149219407947032619920512061349220849682072217456477237486685781270791613257239261051930520043429008180162439986166466575763160377040537172924807516072469798823891547565870746140933514479895591727384967785148694904075956431132157683102469898636615431097065631970636298408424853965483332813724677610023822823222865155920281093113027042852765923884149437254614656463670618374481391191613556817709154372434677748787831296452277459282283855892190339730819667605967524518382529132569795539616760440869480101215328558475557949795221874818487245699856842395825968806967084987229365592003734964490014408755526430681496883984603198727502827013957369609789996986806007122104201935854080368508470723336916002490634817319603732215344464851957721352515708124995653926598398223160669178935486137817731774446011861752708014822080023920381149868831041271326398447501965533921065424917318522077762072365837353359240895211205396136090415907467861679029816032810888000099530996153232381717377841337258958068356097684478406277436188747196419028821781036366981845960622712140213319070489553628072091839285533813959698980754358883273430667221622013379809486540369946695989240471967856298700203425999941471988732515386732447226729533888337565024623382792636573313178627484600641263501224369264843456520883399111573563007834752009252740869207726490483572767331669722991075013742600273830038226989824256956919398789444641931577634121797557954789986114141608328384293389589724463294771176463602209887168584867556120389814037237356926746064315429690438246651994054675523221358081555120755557842333816467615844951112995140428393388045013772867810132336495335314808638617792244716797161349358265049465795046733642543064727858088589091864719908013626182666259623602642611651540398141658061831518330414459636528079183321326587698625581571323881232354364064429795374520458476016019574196379769233441168780063412368065262583514555007613157755017169589590646933019040650081826151949325765860411496823262761539018491421017302599158114555241399156547662788689718959492390645570391474668595006585606588002734266292893364147119969057192638644792962137987985710239459729589021894669410073951619809895853066562367480622417681791760202742614388463312701634637225568804286294334626902911667205673388364904974671101958544082343854635307972059563894784136371110411904492434246499661993222928967559907396040598306794655584089813855258365561152394525131796007595141082504943731448743891419373790731923573887385500143233931707152442880149434248184667229075889480257351726479800061347301549251635819113664331808905001310318416948759103397925862613188125398867377628923324084482293195528514402006199263607210256835280050725804597809701174773046605122649237781320262191841874980656076405428722145817845565582368458978498699862977394151175955226537087742622262098525286600455156768980293181139880229191302059303866618768530252613221225511496550681592185235933153111291733834257122876751832432477738516496091688082264866535495786723702809565228626418607342126802511322353098120590297545685104199394429410643591445299519643449378700536672828178996373467032344636198808906591942439523411060581451610302784720306771230530237349353001347236384684174147424347622738464073098798231930147051714292667434346526398604673982065518494570474749397528406382249360340451011213253052699640327767626081966612918998616634547262925923339066545379619284537010346403008191069218675097953854569051143280825043536497502198712790518968293275122272054874319848016688118820320327001424040055249626724484227551904650117556865833689850682575461469705685689906415921785167043292144418643764254452274596587347824288628253909014215600955541436716228881578858684649191909506225896051131196645248466111673928131626501599623976932797753880372317704670284996566434005452351464693498629076952805376910097124049392700904555783374060823289222028716234440636675181545478152646302404395287906725715041909755722443664339090540923444103469662776491523576193308588094466242609646832476280026388798700300945127721275760001917633991267866652865908997387613315807231510756267166872231571672228284491668371377083515550028942206923183753721052787080653769393336912312456267115491185263761615217374012850664462177056894078065477877401946421094315511440928324358842682079980465314849626235434046589269490247107789314405082414995850562122574716856468145913506893047916554765088608662524308094234492203897630304558786118763856096983230369112475503140165049624983472130731400191632099688090044856926565795124282151852223268412584055015568537719092900268660094622036923216515338397500991631775845000963740982023488997416398075305243061553307617106719148385682781077564602321142679892290072207698884937326800209924084309716325083588081440907067230491514433030026588529605437701319131066518634646361950003585477783592137145032372627703483432439911578072546757674183875482704895532819414541881811106934445505308583738181689155082224497380339862978350417526891900154116498588725776077527350274921975520001459577080597447147363720340421181210811156673603001555147456334821106442673913898643810868332168113893521723312194492866588899919147980961551985238266722277431601519148551718659861368040022337213889352982848432210723797947651861594506420188037676520480349430192995418183842229809597204574870908530302526434378504246835334681664967635764474316546132941572310634780578144701547022340182527860206522860370828299692200614414744859259054742812283981165929211559796072645050297171629104490200676671322503125258696319036749638909968008516609348281902737390387536790033352792464353086446291641170209796037324323297725095337551193714689018592949945007567460638275384620179565994474247643800147773196050943905553864460772513918132200058444556760253829644987196073437211026141501352541760445741737814415752238283982982836645116706215358642052415251424619477883417448879062780759394628792740385546429080967252701361155600175212238475991862406292898662514884804404921613181497536602737416145965138361098296179206097243248225933025108441432621524510094858028665485663762484718159663932931000112849656591073716295193492808764799947221068451033728775937647324568034894471528561763895453776544128419343906598207970042258747673751895790467491446569004308014029707173050049063497786688780334490491030664555068657031408337270631892896618548870519302635142080271252261431982946383349883368559925265787769140987241642669937906268161514980278162163835194633797610734222080268007856169295963446613075400146821084354239927874022135550586729048700835969835880508709638069152056040132559843710196216332439798485815279402085305548459541367782757002681919512035964758440406725361486325446877995810332800711881503288739200394660562780701993015944940693200657907113357706749983483472306529641792884815136651973722555701744651688593067264745491344037104751173867798375095328506060821597029709225659442112721760042389187000003062987193163685676576189997466733944770447335514661040057260241528569531801135426789802639419176731501785229925459253874623861434082828948096966913270182199251083648612626415528153975794921810667662849995951232675060180544223991033764338800884187828088206467204590217285167231267614100480725610191048425377939767031168445008063497718405816032179281509704713165408941226312592802033669939777101249308062427295967990352738329231106757038538627979886927680716184152500630580056113190514818163043712622935370718452211782151108279932387351796101722270608191502716870070369087840046986570243005228241588204871085734699165960677340609903392750471444841872565301183835835079090151488345575155005639166537648545819784866870315809720007482002226941638516103147822818134829249113333461554925329460730405382968730799880243454416942303952911487495609171706888146049299113575078394857249481701281221872939545064732701510980870660148231113058853221266853449077569066806784397651981222281032917815859621833857399157427305741090491539950484211681967724507090252727308362279499114319452282137269420858357954291150240716535723486786897533709872211375195740334408379497054452875821560009797821244335340897319530657993347993314352101058078031191689230456461234099813752667847146046500865513491281711748620114794429493749393149691711268203086741818062865994628949534379530233168681632766352283360158143582026431354305947165684582287961550190947890163149933163149293357603238563648190088748483620167677926532346185711371742991311164125234379524209012090702885025632643755687485376016759258459053195540909701947113760035084883752865486514480809774616740736170307638079702958433600164175638234678152549762620104869082368181644664330640204255952086630274481687274107808701720743462345287847360837761701913456674500613894140670487111361929560687969711684881328061837637104166259150395497029013071986553494968996322312378330456395566369851361935693931447139399455562327656045527077900221772291851309983065219706769154896979493739553814883577994937971543647233120193628332387141596388108138574182089664624553026084115810756065967467284097666586733782505640065681486353292957146036684772535397671702365230911058156144817524127402030751815794694900157216921850590847957044385615835817117227690755876681090346240924605733469944340626310452419575833403469429996357209815351431778095124167367479858170179784765557667058704586131623570973349178327748419770878100140834727297894458570111613481411534479751720578236991639721665750822812525483773747704196666025501806124149184831730856121747098692018374365939174997365148243502258291472213445056955219048826706419934496661386781095924619410999029974372922229681753771258032958242578432427437183450277533781076076789562302914470898702308555159402920542309508778349595295954495093239335324579004178873704155970218000820833021285910809657990324766501926892349550969787864713751716689285934573759613955866777620236510014822540187183532001725358854293678421819054160354644672897100034851113979917469353527809328434540229975268322406277284660958991334017567963687392853268639831628468352170330863898002543411901988741149697273571370813512697030861338686198277518560328364912420213898005175133197419585699525644697645305872956462784894245579272727080781045015912929374006949415195388413330620773217113990093106218720148989345960085722516039390228124676244067654159608690029676700993175792216532031408017271443833736824772010992612316163262146043936183275804238895053728164982614493524112217503283191570255395750989124160640049312217846796868681676840726866389772123034632303209259545073857075033799500198523449565804667060736309880756163951388758753978511079218990433581618444228433866269504438325500630185014577666341829229351792244906260244887126503305402952516614135165909214944304449944806977130773079099528872538987008466039096842492492272081255313963620866774872123686277587537130044089669256078374811278294036664533044033965102256622195493057503196799815703895262856922248879382196954038181220772643085544826401217386556930832422409487587564657889576688771798793264781557852929147109507453842196283606951321797564272599965088243972220241886048828842644769275025278713991459293316225603089713172256092715606221058805458194753479706910510543026403217383144435720985790381358093722843940746148967268657890490093038368128192951962519743155273938266575462027543971869115039390970723843673853007940908635173225244357898879712804117424806611039677358948831677109524465484548731558723204904840829679531699628216218082904206159802844243503579834292648431342920428662732323338770998411822058785435803715085647258172732820118730430394587473868906320562154038584784136820571501586038333537761899532235693303849280002214055997633633073817483772395627829978457693202892072304635306366052467047146939211709279680559888714598414359961804123180165403323258014573225467647696605442836467828246390119875904245363300651500166619529259707967517860595848677984854898442637783802512310399957753631394068029191931717857892588589367928798218717159344999324594824226997012754753967678142293257681122630653003109539563076654094698356839337824269783161243273463433387877216331211508130448674299888787293567838762424736854072137239836219235719901868536787378324837756489945245920346494182171230717588370478974699378387732602443546323477395016062605158591935199118701964179155043614401045541437058456653024757069889858957855066942064480999199813506825638710244134435964204880879713778735015278801901186187003557027769570893012814602336657006692956783625662603313114330918052095803198514128818504094770200807071582040788384601270271872651601757723571594045328211606632690558417587508179547382204740726320917014841772247365024064082954478072455501608063892485836583696772893614563774574656115779637793230291585335879551936928451942232075596219854875497778264785942854805339911964429597327019274047152922725994519753150612752500945565245436834884703638386905722138710007403419602023581822501784904087970988941490481619702608868072576562499650241331902889073214369156465190217403523874370360903670544915488317934769184352952063478679699551100383710657223897528377567701976081932392373030491771109570123503068901977795609950733294417461157860514057285322090584507141124002945083697001964633291355513631749133159286201574509037377181497851166297674543444704550458661734135701881552726243724877049267806499005548391552488134061098978777891645962654802124295560337280166353834420177281571734732499733717425923388940919349673571740368984993058189230074464461432884838304712692842331402961352005259203642655850118158541075057831994899714307643985871266348856120166007876019474706708175545414455422287255172283572590989142164320603377122770061255813868268837975415725556831784350606927401608650217327220871202368028589804989167130225568236831083472887984407270653748505472915364125374245448906043347918170119230859300950187653298476663326903173772310350230187617682542104986367436526905250740824206092750745105714614525491507628252914234711171000723692995912318865010998500581206156731120516684754490457954848588834182980232727779143201212847334481538083771205132652158187939310095945984556031874199807537826447643898013995508830856951324430343349690947440871897760373870292642101868297964234135606587512926071396281079611650769111521577521747817446824086780393521171708443563447417693849708764317178008975485526244378950749767104232795893521138195777125003693624153356848936034241610110297024302226280944068851572271378921468355566374553686734283605757137969761083379329878502707694729582614512098559614703978462786700975269206646023455794699748124481157769984632702243832056817073088487180631608608864907101135361222835515187321190205182123346569280060205966675279811876229385999617863738711434301609707688021407840466324231134074875818035239784678499901008878191024322120475586851851825172405810587783264746692489713491141844269632032693628690441103331511568027588039017112591970149931417463697797731247179078091777637668005042750834998514081015687598610008171771376742279344288040672713157003664474610399551772980821869388938173810203286250999878215101578427751125860885875213123332696320194580925399285891686624354326341409374986948014710880349546880350781820389992820668140832205050615025244749828623009053456962981532288466011040321194286460511716412704240837432511156345416645359220707145195945866929126839658855167189225177898640616687485938193729767631571370429682315834301748381289416231726112342484432404629267801747472927044328446646161416480732441367797754192238479957175744044406204123937572101264172968101202314841022361942745945643636161242467456169761531061029943516597799421814251366889570864681178429189551798910240735842773246906258392334590367308233241228550895921970288753905244744754286072926988351897137833508825657054453767137028388202702230421850709038536765603216241425607231474962619625813841735339562260865808003946286399968795428672129840712542563094038723641255049701131487827213259131123481286295764341945439720089280534665723349798641046444719815540106617378229433193677724846796028724424113910189016097200573233037406802674561493143282172810831005580181016362724929280787324980547039111795074095736653792050636314348970509552338797522821046693742884289587190500506046413773532346188173400709517769772406905122669491694457713357099959640737733856628293496459914583468160186295611219043149006678045292539037631364620223684174383264742057203777417402864377062070419197491505699663111690103999349024414018675873214861312572938854703360196252318422817001219317082247142872422355839466021561454772094018253341474138204375696071801241983634296109757722124750819149955737608824957380483698508641850910806402971348257316153678152071704538338533533723122506199137755243607751519099516888799856570720348467969930612931074472407634546872783223497779442221423435467407198294364242509466527081171158242990175065778938318090974378644404298176128446080941284310257963109324334583571614954978013920269514975338067442072402275377942926811591472563660841419147439616076115114383000128329886743060543116984179530100073441828612677531070841250346022493353651028237358221385407838127091410692308773654528559420356727965590667027438608609747062299173168958030744346133787609171079646395558638496835626280132827293093959535901420717501835038936072164159573128222590568529615217277372264413607337967813083475463161896812909990692881448194983576663053816849661011387944158735597714374600555438527434338206910909057299446064126477467592112122464204590502070859307672265306382074039292175756482616340281640519978872826003661226391545928459636410067775073321132980984090052075601921629393509971698139953343915865736098497742238259857396058013315287786989126491318333988671645408604235533493236804278029498665413879101387966707816489869967759359721289350478034447174936508756061641026817709899170948626722648309970729170716823865913140551836428412211663325344140199674803379501943804868861396556534219810271703231951031470069985586647542495052862090038288565042344674813574821271883358315426407509127925337526721588172430830837808067178700633823818023858406570184140384586773560509562503597703892094338113124742938598485729738423697456933349781204977382649674632676497119270025569093690298295128291281309479920856358916647752977630482937969944726372633190939395444447529223028777083570194131159568706524621922474901545296247053785499073822432503911600511264449120353262229483078477406569685849180501473068305902884185991234836724962331242489440071199710467755408458825900262410048166219486066474028374899352842729615907228613401979159168043914764352096215920461785215583747070034296561554434854063984642940106675461217410068316212295734286443456899849694197703134367651221891977298547779271966008120578675791722618724131191915495815668649748557786749329746072369360083460114344680223838377246996132428140080758315323753676334824725696471223786133988559225576331255506729811409518765050303535416191934544703970628347120110824720302214601283643702350766726009708218776467646872798722766023451819758319052393989491644776824468882755758617985629351341470626968817418287192077918929846873601159354462047822258163559303373984536578027456051137693855674323667831708699611879571749587198266502587499029174069823701220606561350237961468777581474654515235318536127875242083307523794832497733631715216448296346398368073225879175697326976750460460402293521206332641075551374467534314829350144840470873001359724267948866994458548991139821917039920519416339872519227164922913818319895708400878141523266815393789086446946515701104891501495362966625190136531136567748031262357593034562773466075475118306425830021461942473979378665739669958460194852166885367348705778939260512790771256931425721169193972253977762767853203001866282042079492383323456238079896216378640382781085453630693889028706808343326765523919819886177576004776352039144753952703143692983392291745573938126333596643637153965107999063778249380474584014812301059494349422505257380682020209631622937874394378261628248783162079319131274104612502348364567269786290685214162621542550148912706980838965270603500413617337147591998110078654002896455358759335293633520478463107461716276962969983022436251523734779863498510426102161923384034522501337165208821131910133162223666431542674624865376902535060941239899822875046577499392134973569229841670297561679486010890191234840860768294274401506484889145146237804209375453280454887629845357717790081575771300274219059325207109198324634054658097070186979452274071019626535392124592501051893463502142153853514369113890623761885449385744098913934895207243463760428155786784455204031944281893091096922781548637879310101811960537997044517725345262597155025001779823612763934532315954917642942658796102004374851577016666948751167230862992318674970372987321808844297517035711801322413826705601097609548457734827667015937201912147157445364281216579188780211777030723782931858405377767265802633815171139941834911155615178012002324066481327066129680781376437644069507548143463276776369334964682256787640027829096642303839492395499960618435343561066569238678890964063191231914915806653182334893938504582769879982035452195514697714115410009987651281495783192947685516870415988642685172976783661311810628126072873619442027042019297044540098317782242188779293310237363967662891256037673103381615878985584797810299760844386207101235780505584964577984703212964025672146160540570477546743407069794566329540633939400281470477410184650578395739294261587733715063501329400509840314088627092449488132196303409042144932786123495119473101935154005116458020831942000277388392530092935041680435033069895679442884831023330066840822995324996202038016120997931442523172795808800825596413641558464449812324120455732934014795726184401788309126549423448445293090911826523182324827282363890896463954666556269314408786931902134156392195028228392472680743034370472126526955842344364253195033156958057441792113240942408726922583767821594704520711272698576598428022533318932738470153723044843131648540592889057126483870074745621783028899595812747389180357533973628681606456604810326047244758634262064891087392057398183679899400198720746450082013010058299119192520139356698141634169217018767183713906683942255477043889896057206045205510908168491881739200967529300948057279946803337610499953974116262049008046258363690093075189680494424690124955819120367381077278982241476122024523782433293776136169565623796938861851860948069348110465478866707764655517499617917129592250881891000469161706133433244250599899062846641416588597330714033805235794858086271360874096791401179084990693827012488857924538892296967824663114257882001439835087414932730703281339558806273015191218806478558425089598944193096848217027909393057098964127341357661610386779668752559563622670747701696235505245775690122839332090355103404391878744222169125967773314225435851526807571261988515527129320777517543148969094215727714407331712155238864344397366197388076047495036962995235826950818172716186005359337810980636358362471595968832401519028962588658214336216765796384110376464411679947000114192153333283207142276094319181079634348716337261947167354061721237766801408477795500472158706134266472460910586350278706589240270032766798105846161841263262665629698619017890220983084323217476680037879813930801097414097868088838765051233050256286118701538321419954543385565371695588035151448183684219896992729090778760994573257918749943674056332042881967696441687406544846798313179108684864893918737720962459467765930899344389280584008841055754702502893531255998620022474582934348953972164839842436615569484385754678197660127435679046072289384540492904781844938051903612703142364741746254647405912906810044211438772374753805711924732968244284885878480528639198867170870577742493134341185510412343781348989080653815674455715261822189629766561969694835239284799186936064498945174834071430052757346481505901939045173767357340449861905004770155823693193439536620720992322146716938595765822036819130216655364905919871130663671742244808876501553140104097131359736799560340481770890750205917285208524767192100954653423178628768629065175075291674209952733853655622340603543822344997692696393035559414696078259703985651684809654384853089814034925894757770287015179682580029412606473071605540968095684258892089622848590661260992350356608404415753969557699085408543850188393034715539655599762160772131624505238330212927801233639761742870051041234862148474683692055091919667565524415494657467821167555215992327694252644897470477257501975102778739671468337308976381801531321132985761751574689861803187310295540487336600735528474019849179939485442336613392012815563833034911340841939691775684451042764341673404975544475444041579728033972926714324550842031651697998809049077017808522368565634052887638191274739302553712923124129538690846225213253371619732261509820223097572099271798791983014873385914797843585946144821876136393837670914740586873035656774967668608743699848904144789994030743440028846392030473256756924754698838416051931451526783564572185189409983767954450860801918804416890625407557706220529075046546244035445568222809511630153704284035167720130120662227723119799687847795886916251779436717303203030655696608276476335508610227490513336502299610947901906459933004219989969520680981186090363223588355684004495792658505464150914958412916206692339019582088289579154565831142622237029945889996770496689019108750492473420166588662374209944857914302227107178976212060286284453551159352741671352495949749174547849995979402654886315522667643302868400610669201047608876444600417068804025609887922917671758578384428013329195160775120744538342155850209375290066234899759023627194361060877519377708705031123529869191601548107802772213216723832046845043551581919179213337773882652641178447932566624009802598044505950794170059349254998821407711252577892038011595348772924965183964584015152999422073040768673158299876406053382982297450178542341058057671736226271450840648846226010793453562222970026552072596036473717575795691590416146641200112416184302615394963784240244616009103624782475526483243749352849352928761269079743993433457055812881082109525556619794396802200674917400043758746255895380642760042439513316245850212325077039812470667048739120044269972619699503645581462515138991868341449111713537933652769445013968536330646229599859104146234390223826262188065699927279340571215046511529613398015107866443000364816050691096749500404722890780564418573390049701373609397393454818078766579340190674093902568311433151608038516966290395926704208656994820007200835737366429935431052774921568103093892557614014889885988297402262719542470196923950369422532967992063626294346564390261182529818367843659965057455018170907870468483627964779781377152759931718783085219987386458186446040396388567857435200739470684330367218521177134648893650560087165450419497157681405376991508545024957640069360938570548113504466844293066034390606091428956755725880232997589337295999398437843929035779748214045763812427161898590333874116071987891734701618748550311042694045690023855985289663144765825449013727114927400770432540236472642649766266851936522387835016730967110039134131644673695479848677943487343398724440766672247254129794890788853997817159208019629982794351829928060091858177883310252228549778791710286243043979537674634932042955544372146788818484955784345527626884557791211686474531974104999243931578568206530037905590701837785979142911523391193091048484297201679345650556265226117360685803748179040284869033970285951332284294725072709222100760957860294557842657252845888952773204176110574746433937176010103932708188769857993699626384612417556931661419113136527083271219727705367259530795408336817775423416605046371638949207528017346382195520271492640168723760020628972811828387067606092343246161973639890804023754195155527266562410470040277519186974954491796848010420723999440509496995842008085275663828925125016422436553799729420320594895916483979643575570870162416522326325000857688584099490114277961820596231704371885396662265145465103567620193650846408125561044013442870032943517375135830213822177538902653430008405015726773828017709733353722085592088575181655151338827937973885885318722587237853441809110104955811437442425800209391337970525363367228580594003845835475170048794813143489634039721348014904338156471508882420856388864655616308281288671826516533370188034676803787577634027834158134540434991813382297705063747687780628780166902808273286772712208476686524004252825655212009529340135178001514677189357337615590811054089529866868588975699281203440128732839569758715450775958725599339607022364349159914163006338454189527216109007226663713539177744121087123135143909425232426383451928828555669287013179840690215939339603925734724444285465128946740368131298383808271729342273093471506654752560765488902848211259269854971388470573139719164957178885958823899518684130689973791719844906055187094767906196944021560522998492497061566916661422689362021153397524367387677949775021001365839367698426108347452757711808213324963891636690120783974940096592610382511144524298364939785996969385484899406768681379470472564660956718605516996597048952596874913549579473703096646742711576432752660819041274604044362890069655483126931513633001771304523194374799483402217156320815592964227571854804188212577293325589845098942825703241590011259751978339798331226060449282858194556318562429678066491507684230301717481347663557535042185418433125366462587652863407794842652253953815825635730006007695666784928476831619279318799590139412577752546263918715855012097419124634108976894597310431930544081973798953637453687775703357900240472141585502148012682229869585636257991386876835143932665435081576018597467233299864717278777585980394730451263640450575334426032206605232083891612512112592585805874802260126291324953432907576872285254784665447999113462054005489731607449785071215293290695296834277217341766046485691707660601991567510424243890664454073508395063194249704009110721712573399922684207575312841949669830907973590737543586198141340495230747108648862515410236784337830693664074183911844454347052466564754874897394861569745440139044848628162715288858128042396056189222956518801457332287215698814938113913525426346517009684753871673100294523406074907778244649330171501749105307854813886927419367303794890901179358889786527728120900821040347564221149950236940173724835735168547695967340000865527308210633494039555872818409741300240568765736914038617926393440289775790463614868271422031186720617608227679135142465654241257925862200955335224646169419019029898714415763670751258384226156207324593161939004652500686874261289313793764781383707260687284882628674396902617505867379567649071918761872922897739739541397062873950291932760323342859586790459207601708499677183072815276137868851292783208806231559517759578836492885713753856764021010733666466250308044263052509429344121287072143719247092964322983623533596062582212195538125519522845687689150702081346012363937929787526893716860676708839293620505952454895319789434638889624920663386828139296588422134500122403998128964331820882747388867373525672013842164120003519205157984416570727412764487395649287018119750299385907610519445542245865727749385626013899865704443462692437843339501600109417370487929408929077104280596672714661081187090600853718039402172876109910203665462919806579575410588816389236212211607013506859508418219363771571516841429534177021361144734358269178134435912648147637711409115089318287439149651276168097298769736347359948831639564737140699875985765536503316230027202710682473378205826108463539674917843805847883814909213318690821431157648958509814819393276418665761523102044114808774882684600710001207953542649676343356248728490897229453044070596479716899098901858973406843976816592233944259047545049495687813120100912830334863136345641567383317418844099013570197544166080017390860664520019233363579798162201913523618155519071119759174530495268614894480834655724087039318024791277650238426218540994934624727182607433285182120522702431384044435557146821320227442451922535667280922916071024000033583704185451810060598888142444235731154868393216426791511891335008227789598236260519728461947254165313406113769583174881428816719522791182414706248779748892535960004209459616099743350132990255526048344990142075636122500357165051787016387225871831326466185654411202099663135805091133269014661823241263416120590133827926346965237987899804242025625651953483007552309144117235782204313957577553463987748386890851150522464613556978193490021592853509266428345398925503442823170294572080267109598710586270061750634885003396739964762951565732380934129488332427667998383827666261133719495740281031639474102806936496321915673865347935183278254767139223041857270931438507136242304448361193696800098307465561667230269004036429552334270220688465923559050779265550078937445390026818026563472363263774372974753974242439202266993958767042098609425773892073906589969952259667997880515344914428638229137797920938735098779624544750727192851804215511236767101375378419145526981510565243240458616202400929028900444069185146060713116207701172197673184793023609882258038713322466914670384994138779015230015861293975047640441493691164418065957894075892778127558593705232491711918675441816412768328903914555727893329974545927371295715265962330561782301372675625595653699003226107555777108368996999123448416681290103465933697690868137439391305922763595329360420065869762328989279026454953385151192019417208324894484722451157293938228981798176555630185960036736633338315349585064354290945074864201312620069256813901132206185519712245034492358228267969663842676429349340481221466963801511458365072062344928706393134220183629957877888093883237005258913327401319414290909831094716428804618255236246901197789512908658431648345922912009938657078148180053077253334217235853673832028894018163853283582640492304789157641037378312727979759394107408092195819862185787736414936822457713368778080765177565365781779893637322687696067100482580552280977055384133260537917772787213420384083859223442381274581335828163391652198715338483556504608302338752773069023586997578727463435684232753289939923975135624423025623729431057955341438788815950325185560186998992368556772871635395973640819107158772388356915849808218438507212885226293656541656542709737758071905990497589225924974541518831107038034518007192975118362830260292493120184205606246685163780893369522898665675068278255312556441819492664219860525807244127782438923619949592202964523727007226196206355945906483322681631235797291939467608925993914745962355776476507245888444540226825896547841143413627146997535850704177876461884075177660249396162073001296213143156499142947236715556135734369294674063610450842448848305520959923721226581694417005086886791769010265437559861882052309517974921811381212598026869186786516661798781300663652717036420338461754602061122509764900700864559072064502043601485198657703267184724306844815085872296994909862883883732713439523614328885472139316199175908065909608595897117835243525499524532209950116181980789612141472610334239460260365662040190204077146002972726922069019943707512588606568104896993194089162291378720586552635894267396031149466819472364742497551939821746070780267129142288448033068035886313428083591462294088470495927332450387723938138614655625974337638705166572198909020175729063016440787396963604691244866872884388431500812692434686203649896049718460209408393772751754251720782098781710839222837896066368496610249218051764906255937813668808256117110059786932818963475065836673717556110837796974057302261905220426589377229977960877726435682944084496493888816014974254256448180167628541927821454226457862600625738006637696220955488549336655542873820902316625336598688385154762592540357022822055104304978802685098494397656773428095845631276732314616051124639086899390813796524473927686499274689109169264627806773496517726221750501237941954286834397683060609787170743679664733691937490326203810017242686996980476648137788717494435411233025972673927344514622404116565816349860921133648587719183622959455568625452826829312576453079347653481111391275497914891609560116652152655580696773095955184377365818650988638619155902482002156874511269814406510824224261724655419323564770488434947734089045942914337580430583377614311050660458748724563043900589524016768285630589253961409741036419040942182610398362537895018521496551295118588867349763291893605925556426272633537004421342976269134226174260075099535135450903102828322207448633779329954309470957680948376481024663446336352575605905409494154143344355353640446596229994939546357999919194243578833047986705143743328615129492341566084499822280593292930090267087892687052531425030073043362240202808409416185969556633554215853738658357778344585712729520942426314822997486394841732869064561071104560290356985372559264654554101810571068698989172848286789891872142478702821353746727070133771008660900118300969054541147241882726623032011033995025314294155897211305682399317794680086840628702947065997109348226860023458045770304379290446475304706193989133807681108705775815780577366702557649437424061133008314548128448163524465085769948689521782666819465725980695273170038360792905553600743038254813833970471103620135923099927942915163329331508154223137295743483591134834474382024041173445088903773572791893130392349064149517052585103938756122798397898214921762802216976363207853582531984646660628957546992520010791514413284033786656321689032146270338552124895009861658834311015477822045861925537331746729296408315784763818194824245377240745449007263525296236945296162772416386178043255629828948429154289208276708829065271243598227896686147646507636705434508177576142793402202141153567924450574577756073177857163358825172460599456155845260047462300575445540876389198876460620108864725307249440600126766120565350862602278596805267397447164591570513201164639949193203013538729750120665975236933995231194062168182901935879930507811970182769555502501681622635678014414670515595523354652538154440325756772722168571158204683663919949964301519665729742787057028403594490038348305499111903807924804622150899301504065723752331630141013086061280866020848844806422590091403364206656780401093980628155185132724522035390769176112863996724651684679020803438420775697800695701504560087076011861881148332839470148279280662128668911224398636607265147783182376645753680011216040593768322853877427432443148317417464033218372896606421259246922338503327276965999540936097651916726189110252364621134100310254288850989246005700912000871319462280613712839042158109510911119699224007352432876980240799501215240718401893153841938137381523931655732454545774902221506112648485489128867507388737934425543260863774449910319597004897293801231820753501682143127876349077245879397000230734822716207004442430001803809598575871754016222456426584556804262458825521306238113361836092590847949535451906134210399738948584397868378608036220505797585710640173762872079022178629384409297319319132717063021257345941605287689549826681585173840284155111633653342065701597776464404912057650289981702328238975874559251786619306487298596649564619973405138081130727456057436417702107037739358900565004322369949092904563280399355580123658825323012540777314428107990396731696767281817301808690917635478984077910094033129623142337029782380489665560024684488502480905304024796651549880725721266660366888472849247037976149507011914163201222430328946561946546858455509183695463288041243062413715268737983684295954110772361080614022816548583616687914896896571100686589753302535394002131254506912153161778859422363199962176509663834447242891366098501599303185872907436512766405560744867245456859974775285757369524523361907753749046681996797389556836553391452323364716744836295933875311372091317255064286487761250553702404568049421120475485705377989500234937115141946845824663162393105106896119165073578785433493840681065889820202133205026052436163892602263539923918000951245782523790718080403497341878694166455706927579782503279017270642541538305728539560996057384596842273463483932513555076521121460001825908173468610899793918458987226657509866087332056860812017567017142834013904297101480745634331766090517452764646710791718625775890682359379318822842157707902012249183462933756730674024225700863203570186763413481127589806636773137882233782326302535394210049414813497653273333204285682437909866963592479401840974211626157995528272101105552278563315029370505315114446397646744174113240669950257280553544854197562708887984763580730896771677427822354335138465430837489454538219523423831525532708764167311331285401709792779750638701967329701779469658812430533206488975003938482625282087681712131857690415535813819791580226623001310991302871264505022152437284853556743511018710425283970755769008803825292719733133920165131775452432487873579222444028569564088832104304003594135902486476921971639216678831690845882354695472234250384668829265821274068382382210343358836491397807392354431139852625176817239506194920401021902166565792138290846795235855748042673851105434987155092718389707971441284236312416985437986839687353558865544400477758700570775318950926180433086164903847906260786992180265621905016321704752625682391540531335193180966886507234646869821953782474105924193055785844030559762344945755982941722906716844680770636963034681640934795174222017008263368142678662875277420137500846358311632630226991770996329508387026433298198599139370727146492444149286195302995405609352317987303778785449736921077840591698443513166629335826144974240739901011950684851519710977522147593756127809917780444201132911309164864682081194029261801623868985283085347569150622367739889630329202045672212697104849784505579890244780429457222917108375114879141858471266123110360685031473191488039336926226762539915387500814471569609978475257123856952410691024594061441089542198872080586545778418357158447813994488279077217159932804842114388830502660694370701438087044128196589967947908712949231966911915688465178263272835746805222499455102335338444835416139166495579908492014381734815288946871759720171829486596632955259110159674021243303940041742947516334046786781882615884961992746383169817396329292920295315549172863943105652489738004822568496727649996828912772570832502525395656392948635572753160795936430826313852227476748598662585004813481177207878723347798033455225012318863148222070316394752820682721690004247818037893520874647092180494549373491350212485853402698522615265636862172638130602035376707446125221314171579092051117400197772951217546880374384312128177237186160675775804259597251633620642905405621479244058375614116092038895754483953635153094519399147231047785826791481810647544047600618501976849859872491911334525672018076549523400842711793318386148710977259401785163182697203497260561677197852724057579567698868916863990942724360534145383143009524521737088870535443371027371331547187895626326137561376525936601325609583315974359330971117642512852045316280123907801482754747269648688417056467899253700298773174606451259874383920950779330868724092096763269849124860713149725929307229639602099031010374684254547220712618139685972366100207543704579258405479324406284374191704309708752921078054068398377138416559182638196919061666139601286633352577441881166352084705678070199981239838171193533390243619138928853487299183817810754437059931336339270228841423613138847452259194534803588589065277715359034278092230600701084730569828086054015680539911404868564105703170617791009880689074385583775600383376323469627540911175619122906863996965287248605668017052120545646927307720397815875559938080006677583798753402380838549190591709531311679734602322436932017494595966825323698955316499956685026534862043765238263650717122527552704939019081314840758030600095945365894375241417791097439131782464994108361431451917363808886329959562517436656843509161611643961541422476357271816126382679263618135790541580968011304026783878313816798460457759770479348788450792364715394304380872863913955437827200454526038555054983166707426733169349121509008795799845143951952380571451924372363564712192857331339389631102917883605787270699524682356153874354166592330543111085255634458782485700256199471966259017050775385585249312914296747990292323640778816742033530085169835533935383188011888243914774379194565560194129926089765884195973576789349298014652557486044294159955580380777327679719661074803543042306872373238166257941775068917900012241333466753292764290081029173737965791957660760515651458969566161567875140205510175849826594006176275348483145425242823887215880609420589003449032792814860652397507070787334449403421281177144345470014143445810175854668534460567710929570130630186449856230332534840812774711967450516370289390400439386338199743162029563667803503811279186148685316242254692620599595814644796075332247676803662050336369133026536622085949489328168740373975137930472132156144718230312948469253081589661245212624066655143712614879017041461643369441283282621455564826118557480274462512219483287244275580995095485726421123453884207066638870829532389275857164958081097529409445178452555756449486368627209165282814383078365413582437124946291910089864974431786485139019578671035923026694863448966379309920349455558346925998750891270664485594983278974168092016880048522379071302940493894301917069909507859022969364635589696587465689002992840525974835696249936274495611232437549614280046563704156342006147049421541882180358666973899114802517637975781177572800328459329572158222521701762195959144617849953184067605529852641650163746160909421329483092225528996317513706968956880172025796604082454087996569501627024372407606479055173301661819334721189197779389523268227292186594179093713475193876231933887413409378644236332633024635925988123432543566941401371325322609088751993902312288175654257120382839164000026725367335151283817935360718438152803832613770657363685307777010186988588493956058181954604021341447726609674831899647103096035489568511246726876056643448094959299765950815092957298758322492496446246901719166124523027786773247303614834003633002310987176913635515514191965139338737696452601333064362746741618913579999806545770031190625349168762866695631704778651007480037736106845733509350996911038943925748089488599846754758375101047096835245217518188173789263769544906316412749945442073859265646072910259920513005906623608164325792711306588729246269432329071196005324872482203620993363685205648176959674868723849739836785729970967839124775111907643301983016081723105754702061473331859902824458485899206739689733740364877330105681770795520855603605037364131221536554779698024702488295204552998476074405884845636446040650389224460818156028165233356423408494771396934746007313936732732417776288906271092772007485839727420032503003599241941044070427660942076389399751551235489993397409886282140095644537883874053775715462583090271788768173738948801320553681268057276877390763014869774306796429637542093153844614929230117038798727499257776285102490446310120132572544206861328089147397810462332674400125862207384526572313951471637708972523755296667331375130152191242567729934304238818010555731083925962841415346452633598545956559164140481768763881393469050435614981965009883077540304441885433794052168370453422728167354738333905781030609116878671976703105846646282712550507312682611729269373988852397976500808413120522916126921501851044808839552422847230572241951736523355360493637740284908615509525110852995426862214531996833098021037450418370904852263902646077522120591837487028148611028539227248928712325078847125496702680495871365892007399616875278134183066631250280859139467742904450592314733767934304660942145237328707509278093778316703095889725401335580602982666206539111038896481387971166121645551051872175996938807435583885710561392280673147755533142855522441277287414850932658658078487750153806038111822257434058139295734416955531839746204272718957234119951517382692812151789358886796867324234568474460685355321302291378613946145566684262954192757818590593112646821347197687117602376296054704796847046225062291648274170617856322588306562390605058887248602171780172134279973597821263582874391549937549080910364097669427910054768466434093205739360555654127867343284594211144738298641248919805534809434566236618715080726155309794476911808644975890236557564994450701850001233633125573193200617043108194681997190391827182773634701824651529832071610020629447712634393563125299452305881406634689816127258314804412331394489780696264109965116727299369427603926037241063692296534211390545734154843709424932862349761091398057165169129640261650509008372875722997270559415840799145429120569885145086963326092068867734908768730514406458319022656212543157155601947163900695563377676323307233919162355685779457136250730869633298380302357062149888766064444897659794828728378075351812370667992144287736458393355368804865226620926190058483291969852425017767754455666865827502582091195811393174392948207625546230988494720712637327592411943431285694360482520676000141228786634891875703673805886710288705764073154733976967267369843288254088017835278481812308353325923774645000778798894436636721332711361355231977526230890059552073664381150948782527710280632398761879747733817330293404999697150800835496040265132117996911728064864720237771252633713983768239255849701860767571307893279609595790117467788582046170887982497196758863167963776385802059221575229075045531234846039490864819343901874064323756413521982242028379968504315601101023154471946928692210802403207385639164112460453235035049827895444742153275266899869543031953772511719397756644650568414316785934350182223791161221912107017925023591122115421342867650974188270046600207640199480322525181559812421598076659039953083748318979286266318631591579428824880665649297755586492983829909797350734325550984206072027071729488004954755672111937150927842005751004218810777523578478224134789932871166098811645245401727054612617449201528090962557903953835597989741567898991812227913316005438776219649182394715351828977434671574226389915147583820634239418282467571677310159185949126956116158487909119289977199237346426653383232919705533677260905154066401570160825648433815088294707896805042215419106732278240590763987496371373863438438760516330824416063722273508690245083026154217136160189326653346696181528274457881800112096509798049378036040068100468486286817946553410109562991129075903938447119392610207382145572768863170375262741562302834845739320258803983020162544324889466483516598679555587345019707549559207574416741506529909232836826676564490347229893255301809005066467377392200296040812100898941122146878531382683928733380199781565537320985726968099326601366549599212602823186166935655913936209267663519522872866776497584762665825511277479846185670042117420516158388104941216043247601016493722658170335056254142528505556842758415848569037806394771471025731539119926857362971945318339909020343031587896226045018009822161830381811077782432300348049836374576167845366685501474086166137176222955794776780773112899597378666017338721139332158034362722564349529429016749712874377352598534352971851932071540337100954349533182801388536138317801644933390199173466339532783230349337368895232890172435455301748052597343903515963030718413166471867292617380612488215351332847450261518242392740875798376003236890442051379953914318209272236716187126481288761922863086273216979816151593947505350525994834570575021819850476190851399433667876072892738334990943965893677028740482888949996341853814857374716741367698825357736550723804748345535771941138371790669187186808950730527891262097946273375440464041953873042220366368371048671072829971390170142805722871487147142034703307943838816411017487500833692780730980285804763560988294936508287060931682264688570652968940785438449436451412276773519874867527170722871096678363571034954735168186676439629399978453079180622294401660236860857702441816961461369563600349332694843822001106391952068859507142954447370566861851312422658098844532858170981958501791381383347564217970168230864736759912522588619758755715910118771550753260741551332129981182357400202101233851684534307155581384483877169770843522492685614963643383368960107569298989978168710618441480816455077921135159820146645999624210578345419121302972252000148422737015851187489640891165900635139693659890082499361655831683207054845001463625247705164167133000264619842043365251683025924751914183492209288764361015550780808317350533018654125798058817600612332563661332111673566035020503020455584928279859294882430661010559033593269293688011296908516540074040929116316159700891050951681591001794827156776000330167101631472987555869622601392075103999754898318483005722842471271948588733086634119954100743714913309574533705916360934055243878961077230385184716866695881014010079830780428222407989906540586304194300732019470854203094274556887894592189368210338952424704413334469991619980772219599144331286422742964247859940720190558570409797069500189855431625023116327906709191784677229189070202679630694315732026942926931934589792860764867389608677208452314592598322665662174884613047532134634009710976014446010679275113002131396187162629294192965845611605244263270523165766627874531790361158815119677499140773491084060152449385048105189998050492839049875675187434300399886065231296322663239282310482151292555751014735602645391484173590348774404105911288243403671471828403619792185702538788965310431068972181328130847745487238952513349612419245420343116618498329498680933674746494209378993222652431937322977608661473568192796755745836304498800016042379072759437679700013313076709033000006988116699168607267700189499079264243553702112827211820985984808516335799558832484794158886258321095794981674277962814035926730696161473778721859999189020246796520153683884240467335816848807958414708981470540783339170912069563761668545887325591523954941775202056680394231171931679631425956925370024357830162960766921995372820712783077764190817948495719817188349544304107458429107315739891850550627911306928871376804944135692062743837132208893435161292273155265618925694688646191857473572990875149429987210936034944867226434048566213954632183322436488396638079149918245662120247873817488274241528648926467532962686296113779061893742473947233897530452661967633862618781826013035828622099172450181498020248357298501452813735267723027193908963210584609778746868514338497637556789167016030138728791270968040923880193923738417851937549290400488451560309920765582838112444043550544665673116143023655366372993404605250607596486919446444935482837897428444665990094433663495132706659815147148669014148724816910640383228918649687685344426170082451923111158712981843356204078635359363119136463254653730442745710944811195047413797882487912908817513655045175641642687149237612982723209521683801214830842003535640181561932448473769059284370610478350152995096587256559575645452803541765913301455306635481655061993005942726132245354074460536869598557796416391516847913939160833016451857201722113010361980457759312849075341280935240692436805986515335701731247751476108859304216378065047964324890706269412662243062332642365801861283032753397604325036275476035391780296585962246831018184588019177062102470003411833170734364018763386837436966412957532972752208371760665688493889313476848040810613570072896157207209167801132893478724680163761105837190380338552489141282197108319329314670395522678416257444077829622965953746365108839486996222317935874749478696781918206637831683031434831902996652417348571317682723855222914565325919008577873487482661398797351863423680421379547719523620741413637716225013430197462993260471898201672494346472953402589151614908615574976191941431944005166080824275940938582330261855293894509322087636523009343268850273937420173907561820087438172563236835021814527444252851991105811047069098849290016195624644901071451878927381102160392080482153203389683364057028648216525391438474538913831636785094316375966562254531701436564790214621188299293415180173691504496385241150141639807333544568525795054769092646450412052088578300563470933433394226352542408418494350992815406520564250331902572089642533299098194009363084321435877459066567873863100688420462026716840681450982753817868029500350835741573003143979077355842786525922918377005227479161806698450911174601490444369841641957357715167469309277681256705462237995296599823822080096302817975034276152516923684336258217695783786232575438529349166888391801972151010658581307511174188346759522561983392164130209634113863737613230479174761241515960430494334567054787941722979424561502550619746646764960413014777431755019787171632999941955187480698250688360752517329915619893356285920285032791703264353472236861386716196239741504218152340675714571946462513299109791597135409142396486317246410141232911499061790365482187334512471578222222564429141156741987703806451155345994655891134424396148642710722952832630226428529822065220124851719641587633642005828417070752907101247724973497899643724342309946124695881052061020761303324606967649407700707357401949642550136112768097550471653054788991133119858215600054814259435041688566465777360557258228183026556844230819644417563397141032054262117922055925755431867908140862879098801963909945182415258083477232692098508445474580005482188473241469705427713349121491068640263491599895267274642376012601506018454669003069987395282620937269530055820450946370955185874784911525265833907354694498529617289101474821125136630095837710769293700820467929663962378625357166906097181370098858870347933812703032856232456742893831830371287083458711456397730117800849057217563757990757545109665808953445962920930758973149287884521624992946484587939388868423466513779297454911356694629267584754905570149930648854262037924749891458378589897787609029047267120267687958594412088039242201518659770854766143512972046262741183524775719248807353209920756132520310303340381087501924691725027607825093142526731408562881325896032538642878435561452766206027817481867825993844941500237187657150948488633653840340246379947404098484377846406104086738085560914123627960672210526672895316008748128838925244533390725306642144465525095181209741252196854232972229658673828024672163557084634813963019339449877006497789910837678370267488712103158396631988322222405303347866816452112272555777327798477639793800236453800091101335032500098655865306259751032927035557539392129178294555697469068646640006134776506980045177084431783927199302849730047954263917339764680484874741816242697186477396008556066513641248206081421226994289847476828840385556440048231207966900212946389569000949123592136880789300017502066144193006861531973194037715308876804884999297172602099057587398114485483371921064241028284059990448259060912882986252265313035262346914841571975501812122905678825853594976997549214221998701943446475299495256158599831503495283323076657379787212739167599502848795895388775781264897269992406580313541593929289972268537813813201475925301670874342805006189338433649967517487380697361647061135719966251144368481430200362076977686189548122338665934967523131488255492096629265419339468746814041051429686143025416541574283477842789337230070824507562381465951344196590041972668311304302748766469291616037298375091208570745245619755754370022517615011066841822982041487364570810131136291299376618239657773701772641104894101886701099131572141629205311088807463846096381216478850781215329549700505633689997282128973485534687152071958429492862313692291800623648483792018117604747965708891327366067129460547123565856411417869709401550922176752571155534923714675192587970884633997441354250492954885874577844504059546012616427657583336481788153958131554824035864682896188752509095865205383352701096669890363413671645852031428293468197399198058378228239437277894527272115533586665987680657060838708387297874549957684036025488900428994395200097647086451099894894009916116667554029079814564712810084534787190463109996855641912342638958720021917321144933461153172004972067864861038421005839685858399905184216518988551037360580386005975229058304461979479161375071874409794273466166515862626868049564803899987019809504104374274291706513620601841652416090040400399371641432958715905997503986958935130348991407109143150354234752011230173837927803777978309163011707440893425918889452605785741036602495344896163347654303157133336437586299884108835845018602746132044269961264732273342241891096686372712531879939266908234189525726017709427402885839240969478109678634470753578319554329059082616323848958824653178340828752240657159074295339396164835947716177964697205630046983585376225012812874802008312555256498563266043454667695188603434092491408214449722593061342744391476918688174269732592306042053497182168436981270704747046847353541931628512179983391611598496629194906936147896238977047198558496317340387351135516312111219512209445651065377840661554021756696912122609112494178159483874765858127680480827801936064557312730430386613037975033612668862158376304767446408253952430704000754182783656722666076831315091274825157257106054634760257753978675077407985741172973642424530047234745706758498183281178280108557701197248909804557932775750510897328058020571529772521133600504809006344106672011661423373139672876656940395827762332623316218711885051438888572369740143233177057232098703956654564185802095352129540432982972359399576808231757164950391505904508959258247087508827927006974614900623259805523061057551159801337648232360820758863240481263077391415517466446299389542231665441078052919550696466644347791373110405595595454778323299465457274516160307191574570568488043174460325168763973848927344951251430881294410662825753641560302858356858647700061787949393232538363499796051036069849614806631205449021368077991143433134578254778888047102526429284097940464957768098228439218533801830157762423727072532479136567179274196904581957413448032979187941272008609152534662752590109833016367328728964435385677394844736104183061987037163398702175951555160857727452094792184002432965804031666621285104551696423491736742090841842385413887104534171075186665927848791316568837160594182148943969013077016982465161632487588410683884681945278081470453455277291462595539685438500412558459093350873456078868820140018230904957044172449703039224770994046790491090700145842978248233951337844587406501336580671738417230119844036213323140914010824965935006438854912216084243048423607782541533318754608556736820176726862684331479038735455170981439612740936278417361677163039896360020074792718953105386176545225457237183061190428065909469785130349453212489220200429554564662081609323349698333669280423150220211025140132942833260986988271885562888128259951095281670243723444302205944407834246457445390660139931022107559467801157796985015582966109205288635815042975223435735638138700631604942565427040617026454545578093367616800626698147333100116263309192095802360353739769712232293808004012416780914212973341306722564942787907514992941282484925462709190410422127449364778223626669992418670309536013492197748924978617409199102955389269236618984430214452759546001424345412488993296700810814892971820007160826945102022912845418693487362730571899913920378391183207369912009859073468113964318255453800588913465527325337965860710992364374781979859041554020296892169400562385445276991247505154814324316622887798658871700544919737445704538864809682064590903720550507553289376254044037255688603394278898899788046137542905977380739844507253910170140902064274545545011169519230257111908911372037917667144913796318222281284425596399575602685741575363301170516146472421633738118808357330094097080995133374388909416812582943368854474656973865936057782471073499309132466845063388966959350386940078530043302842306574721057074637440377662781263123429782974825651193586109253256661685475636742276156811108150656076263491471117018847850699414377199324120682287060073983179304322144274242968563341548166147881292249889581446023659602701074245080992075080350689243626800728376842648511736675059262354987104674553458778444578716884281478185243477345898488160822395929544817745089420683971678970043885208758269958110775110918916406636301326344669694581172502763020703683919795922161611622661088509129676253944249220110364200984396708242371826627624387841462899360229632590442305046184789832376837954878130865338115036893300510516638891370491603715962629337496858421507898086860879380425981956878242383628992015085509889184800778294457641835883847375405457364213869849834949289730336013547706357909437331357532462957019063957351562791018456895945856539674218390411863174969157805101676009446824061254768124990914796921229505155813097633086022629866066069393372621305071603476543369034099261664735016664059100991599335979625998061075975796907725950570236095216443437385810119648898018221364330185309164614125453762187074762608531603916852160756198760216089426168157866465183744305090801912895176446593477663399418884025681316751133949805573046535019214375827523305222303796383316396348584671624082775514516984643071615208306614416632629675296392886510940844704703985918876718199956226417196950721899624869766417963845960748484144455437587353043629980284374731534093947759674554150311774095526799775347889033185470414503635999646283864091268388641817523367557728805985938635634002370631438001755915828390606845949208302030344407591963649275532394609652874485977238729980158034822792547596299828823300323938573021709978712601707801066801493975739849713116427803242084179031809584757981527311792548549994492461021560949769282539575458590014514220158706656130118892982089950338683069942127874879462506436687772073388681049270611019950655747898581527835967031602082516905808296089878411203752237790632624837092397669196183646812147417929645276716453217169603287185160453346832898134318854827051955224056003372985332301334813390633750238245472311999149552437582617051274319135796439353551723694259351326111987438998099532000332811723109578412378191782991930380498066660965072263767251439915303831213821481249015295233733554458992681624359525654814347017883245288514035564237816901664571785628939519626987774643395467479304887859573387576473289790493163419110736683240434560892929101429004027890563480174966893904178209984319590373552701781968330087488107490392473380776121717615289923081141190096485019151876300245464087705631015908446225059608431237851270808119022391256847763888272040138512818911222224588777236828542879610472732502908474517344417262423549846963046008742862230817438491898473500712871511666251087308099915005140064039554758262694971940131864807727994748461092873072753653509817342710900184778378537646675989040100618886959267104863067327711292867364526488307805077169279426102361640582906037927039708250878254577547716245577980786486179800901243613505718545844776733846338815282577866836977004403104633200477638408507290639690319129100952797794281036357357265924223780839178281665684406030832494798292603334171142798374782516520892469735331958814386773338069592328968750344598084763044781283791586182730483267713571641791335523275198358637448736824085151707036370290397074392158217616569624567387231796937783017371698965269191373782092342584465636308822072735259925635646064090617510003823695626216218327210337157095707659663021063610575667401560275327694477753422635082934080205788874548043819231642887270229165440604047314128303283417056607378358952500824529410050909157622654544605334103453314635773917915962824570942428943480480873748183378514339945753431019748158444321038569312992172756586689210628764309229042653059202417086070028761198148927241692781715865680160377873094502908861325239740560779524955766290369822408030174977096655655135443026507377154131308502992271737143183531504632018354272089279815955918265459500927841081594191160356835986759904594362343358500792601385159224635948706719799478105823664308252203635102940513148765522432312882875997680054236735126668909921693396104643293687239642702482369354710220620608423614822036654170171064385257148306288433156071883893400820377327193084294029986089938725356855919254301286345827029787370824531237576380179559235653949052142100995959011294791825279532591018135375860659568424947447797937691247211949190161410661234344175206205919834781508231449277061888658332903827447829236332805050815499955310860210711018200630731699602700406350855864467478428059331866794638414610977342377483236007646527364953005644491170427212162566104215673626383913827711373548608762062989257729538994177024640324827924085019529319546811192626080248325234471210867190995544436882547305967399882676354477533635530155359981415221809858835478481828445885769388553438705681448757997544233668102774273330362022685941619355717534661368761142903183978938437467919828479184282014162299868574020956679945543070206599564426514709028047675615743608841065549203245108646189168360052300618315463801009729937371881361885471694247557044927032430851513709633436558641453474021746039915209304110577435941349683053974584658284601436855618210909567545547941569678252802773150552913162107861390283560449124050971146916124635951050374858123947282624036612069383806819901201475302824096123810048619402170400822313526711581715849305716539457668833287028682864523437095059716454464785872626190605924066369784051322549084842768914134673471962742438283647676213612698629011913531509363487434467907133109112654912967856067994472589929076945352705994485012460708970743624441470651817669908561745797802699487277785229531600972625792586472566580429800535909223263893907925321689998982107643188675036690393742815790826324100660662481833273464328590951602439554349375661556543678279715139763029532999404292623631773462205538792926144466567988166139455571013480543113878705957238560049700848897891508803612210079902046695829522727805047974300394262751189188805790414317268765153936749733083279214658494298924803884768217227398088451594460585168644911643179549220754875867576280669530806851145372947360359772994759063566485808156872004267336136583298211725984429311323896872645066084260207596655153424183207845404800956758872802130943292113048223635084545955060869317471081412015694401817956669007536429033257422265427610263930998221405033719689214820570332354316312073487380120148383125708199947344918011350648380690045131768773980312355827651056301121853692410953247080643917625108348608518363567874228850458982259333447678067060482904300986084341833763878442956027419338436616078538874017475755792411092857124625444893963829890829380438713869497154259825064027811801799814704760033613216607843071720760190719617177729638812550183527699288006409385238155092223785769692835432167151368365837537593612332911824327017965809851499539592144940786011096543203738656020341491668313038725213080824361593725380213940963103742924169498601078849629263896590415245851733479940131664032846442768737304240061831071268367892556966573686407035056409596715067663892298490245984170673799719241494468647605225573963443713550166808125750739113868923571437512179936250902846320690809278833395131629255617441005584938599775078950575639926310201843877384499608146896051615383927411081319950930826014072948383750917466717670194556916893649768449572415771646568251111417711364134191735497283488021966484125592058223994310370042534593268261076961143928672609686546122637985255465507155193999491633519695913553492594345356837741170384328671050754830220255171956563903656156911965507231899651327523191975290760745835459623617124413872469143707058955343596064775052203552600261612542292963361660188817055102456724935542758088740669369993789991619573885230685879915840871248061989807590745546072953850016701526488225578486325846366289230369583618880748744664935799704866232311806170819560505578240493112781485636996418102538701211613838968364083115314918318361727157884807948694582638900107345999895081685447210768826444580105735019113668654304322527947915228966183344292265088516144251746709954747142025492816225281316767314283648652002270777537921012235114447962089646093530239953592907607149676102219185764171532111724326454151760070170354630059134080077137643721912686046638039379984523125698937774845766201203630281725778357846087092760403654425733045241441449299278846509879826914884756480907112572310815853190953839404319919371308514065804720679174374298161925858320660679661686759482629725126160716006845177859650156465907649129743821311247401055915833451159138777041299562593760139834893023073302079399919417067536142959668132684484480508898877007557712483438450520022940359241970689618729230594276156807597561305420058513203816432601089733236251409099335860907656360282509114618353118348636408352170597296488776152659925385931899113058261220955184335308869522129416033496360486263755236909160331572188636779940363214857963793269504066252270556443138837000405713294019664986037458645749501214611077561938365802703655479611624495159111510230978040723459987026102654514465112911652734657606190230094558862620203306706492862515754610760641418519110407965928796530653706493349346728219520742947803698188063485753830482343607370505366382421276872966952136636309840961502952826054189754730824377946879882040683486712248427775080122762071814562984601575512961241557127163037214490969573486459700159378438663282709506937949161414318703995093257587599563751014716790748708711678654333898084108116213125312446765347853872760378517587987306911411735844034303948940844031478814614247646085032619729953313278920974208669462482393592230072913742189938124704297896687263242796082593522959836745209481160954376579233598215673632052796640049726504202456838592976048534906517021496195598258306539864138164546560240182979075933529064328052236372948498425394271072010121315912019427696566113450885846997535736617098254856244318463309355507386881378384578341034496637065849035770865538242618365898769952792932712461913690555540642305320639460757575683883526053193059632358044645404147204620234729321400160490208154171185430955859522734363424415101786202511958317646034996937050371707726875632771410542021175458824555151402495415119272239943296189533845954487142796321701984345479584491425647517571673408081764801344875924205150358662971222958855959925885911849491551793911174160387801580817668684453062227026466236061997442877766593665376920727566075378362557268098445225693256620749924165289287229879448899877352011848642059688191795273965870566286354143167974398637567559184420727706366024168836632787183793276099758658153568772138126191778439569379900956882770293490700945238539025056671218868161793591853263105144861403180861776358213786710164877181378477762758220348220717142874839082528987317354712898806820870801993600654121795136659347611336338944492033342242567448602827272025678722083073721916484917363506028916434906015706071452057942662068009660597949860595901876919617927611364186079164019061986006517245210705618482928595419099226408482004410770554722662509933257461765317163484527564377758038798066226437868197400381448788464835498830419284518191720578872366123761721088644184884265002918473455957855097581011152320413129862152475049355098785317130830203907875409845299636842915554726415925704360906491148960169038503958318851704473962017711795714810312634459563171418568635023914157025642079723035086780619355164532298197520587771395191315703412467898041391926403236440933939071330144806224583429417015192755590319000573590252940295513551571073314294133966404861465368793881382497482165950461567988855380036771105731028023570361964400776100583913553153828803418842773555837701901248212815313656732924337973285896074486684845666853268753134203216441557684641922555102951383469293335169991355292767823027067890471635870203650785644342657843581427712152233265650537758854204790740012358902730665560640979249571803501358647041461860866412577488207814674524192315709855755527621098090043293489195648138922510867146262557527416776406617482776073456039492141629415566673283497341399626884082156698011232145500599885831371725179239832409415205111521023132447135150751402779518803567039699135481276034779515843131255459917850021274699373874592827388081034635080146160144211648418458770612858358884017081437665281801950968694973095653788108349960155554351672215171604689208715084113199483902920471960330251716126195883485649021530565848797214447535422169601265355318392114101773113913032722991146268292351726281457116154530499117381276069343550171166086598630941178148848776244516134894039544741568689430807635621585417441258132534310662669686932284319594435565617529652850246744956951438711360318581574480285519287645046435064393317300993411256649186717526516579188870969294872249480492343711842715861358031915641166488992833662008502211035386920298672529597365501268119023336404993993354623363267251773021969394941069613531463660521167165702727427610943658525339771364956118016778424956729103991302553446997106741379220112660658944648736573958618828480722004751299491570454089086305301480182788850154652530289317987788328590044132147732521144160176805933983286184896995816288718778066381333198519043384937261219581861192427260298337224334706071307081286839971332178988847767974880723048830382084397570823874413247142038539508884932201100797619185028981790778328904651660167954448080614931582717381510649187900855388226179932389936824303303824580754694012339710669407804987477130970507547026143676726324618642805957346312052325017641494967149729580964150460699080284963661458000587437856907559041956551210466278320932556808964109248005669163958160008131708343056880117813810426762934883618262521975835428804789914813016701425949039052703494805295008966939906189525093655330214363544579923247287272959041349330555136261691505037025810876567670121895645640387627250877112943229091512933591081997310053001092942956813479874376801023763307499983617929541561923584746917522739234266614139743095535499411833418954695229103813591603710810789747363684818615094858121962852858075590400039503645657514193002010904162903325879397979834947700574212055438777765896824633352147134805377679741684710866446827973816415510889696358609514597234295135616966170784809325777729341407916802811679998767757103394035755625524585671364435203667620328041359592726244926032719250767445469193333348785614484588873998260032060098024159104969954133106843631736377848542955833071701873436848955905117142155048689127043306260642204093705150693780286984654727974065883847155501510832790373529003885836214699058566935395739626426450432788313069795283057938295637027479345631710071373748710510925161879665203618151625384711562832627076360132677100932216419560972854039595513640146800474403070877331942632962012773383553877360417674531236072302379559028835343215156047158570980544742821360722028843947823569182593995034169087827141642867139098295016476287204165557085384080421866674326188941639280890555472125128509479127473705272129134756352483880575580412174947795695441720724737221919115545671070590958759799788777956570161322336850370368313565443418641509764658149396802827900686119690863158893403193910077019971051997830362056837920919640034647522744823730927348578098885915919263162162948394705548098620772707887858586753953919570004942582856986922890844873715267313137513646406504776240587383524931209981629769143643295819883532693882078263725368025367904734353131618871319028794088697533954936225861822282310254825978446010627279051839094065355743425585525556546477246820964580361793552540363672900376021357940591008428996773718567265112894320791501144313426207411185599460777964386671094195523251586870241917914457658468465801270461217797922396799425444871725033712514235694118674439996293013795584605908937468471853416562922473999781020248880540793455963322377413656743102425013850076399485169062070895905862227870357778403307044301593290156371893285397985317461446798773779872480749601248521687014069603627474189968647003197038534310732496957877675925124937181559463002106197117715984893877179605084541924791624351255212731986304308110915401747699358095591693573305480074064224488801752313385650677105023176298333150513675884735820661076619343236485445181818437634722541959277378463949516309602177990895330067594533719437758724506876348656763044913624243830907214046882201971603558657373610746861845894661620060505938129709011345445588823676726223663919781301588140222558948171836609551158232640901877518460220084580109142309545783648533711539144238572456213029109524599402717722816637967976268824589785525334351489861464340576873899124764463764625247831989575993562944287454704075635272886586801411271729891607373541931804379239484101071416814123842336958436451732361822007620817078837988346621116060906212790834922454038362819130863054493035329749091964779510739016206657212900489356703281018534033611569903408905348397397627875981789928888502574874334826472905710586420630129164090250851373699344208271923732833103512929159639736227181741061038788093632507725271084379624364769943935645324007751353503282664121063629448023050700870590752367675722741264509732931091673597665880253366325239245304516289356489791170737119007165663833891238548201062627229807243688043945822391306411652655400936856871194596467508117482262630965521302575415587591386298715665451985274538235048510013824330934208178640939736901735205799094063010231390317387432927312639590742163141508323577582995111593687183155442523602070291760802662046389391426925846018486069808622827052289386167195300279759007301967272014503897043951249633118156658917929092864428670071604100119092049884582932303897213945655806514440566688725344234375997915817641278518595819796468537323116987203459735429417338701573002870770974529751275489011061086669605459557465011162436775624330898917271438667265129842828726134411186107872453399355920462758438484790506230651524183953686886839390385853140851161543275600305986861996873658381522538276949411301148127127461566354637407438490898693608693616478298158499912866381893212565966454240996898186404925758557549599206901903605896411360179055512999426044639489012503297496241194218946353270121571868759503249571663497780760642533489197756987353434350021291707007739717110559015329554483922500134076643220329694067628608889187823104270540390770941654394176753592169949857672941507627038574578273507658197462957811660967214109215909059150810909071009158599543887030891453245588761899470725592051385453795968353884666310779475816681855812777463700200906786651705448786333350821353677673944318740161979760062967001519226642204344531131222856071569986237164924462917810564585683985292224589623506351718668493770503802138100129316367211754607087252677153054689103307281768054165291355347890331491698326466127197806533236808500864168337227572182541454490560882826175517637020038727985758863143174175621452533957221031168600368356883587242476973146831197887547265611395720583660680390917245596346682603044922791374841411498100883732889845350257539995111191002627089905046516878853723242876085525791712419049669112427647969884496962741073167554097999644872261229446803619041428099324224923079746531032081034205700032322713594592234498145021365463387624094991894788550628234081819116069860103293459251701322637209895249593535223897060912577199775948561853257927278859077607170557140023017594977740916257664079093226792795399697256080866287958679378875878301564085143304864959978931427303706290470053479525155739619425171038747359282822812229566882646650153442812817540488772842461835502071540753259323278826095046211020171933013715894451979211935734537508253789712574590764968088983860504946166118948428585470247027621219189728169257997689108926662793943968493465340240909102055286728373399152225327667101286401324033872922473591806805345506949527239568394407107275881871951680079919137937712651635171640052922084515252474547526950512999083301710006834005784523556686891738008336616786183387530351021308684467570321928835932950905971011921999385258894020405782257644189634598865552428699825151038330839633759011457932887590344149146991157096135418069822359299758848303560003933403522251746566067804252679893363260331400058974728086581995674716466511783175480685493181877235751832017474977140460017602995861835120123191294356155959902621274703144121446850891862280673217157069228146849740236973070257783843733055353604540085243466546280084347986027077294517291082957452797458590863164966478475873521068803426278262153913614374100619738726364770377844963372550984361447744426258207171461855886126501340239586544150065475896865364545941842665620764860227951844803848407805127288863378947376446045365864013504482895884080393665270350634201718476767306138145220979558000998892808170678220103579450427985459287948122252702922148132843634975297388629100514691032521649533174630763541882468973949836423165709754156886017531590850493714169987212717206430839120886870587757131861256999371544297155344420264366298938926705327220176329146304402855201527947673056280199490538266187136844802801668786475159147499484531197843885312617483754892533833780200371187274007505420830764405260722516894889498604121481471274062210892173655712848819989936270375775323206036664142826475296028143783110753061160347242786812161419591981507935648426139264560794586250750391349762590442662680843639350250968842772316405200059976418238795073543044217223366357163876445351672651899201593046956504081567551856665005530386247915828736032288978442239489698276415108789548641284477286193802866939330039649793263105355158105898567355163557339413570498991211289438772716816813067071154741580996776468404691273142544205011148916772587077427371672083773343910877204840476905569382752170703957929582874794162539097472685030043069933017728075046076138628312753610852265039180826797454052477335323264770103021112447456195954500686254067104967549695796495178584719492350028136067887616784544420559664734205194927146841982043435023645747274448851361027478111045995456511192696524283198566745167453588721274576646429573282396871546127555101093574832382002457153587451753939006091742063851127621542020928784275537315786892982620209546183815320588722540798683918788732310520183234856579394205167412889538275441206549575361390935435588906994345853007121430219165384707589722456365479698215009970552556918927249237034809734156732687055661895938391515565525480935424891510154406640619527289803350470220500087878582582700254035083631608701312210627135021690604153547866460949547204802515400687971068688240163865792364310456087781305027777621303727723345054221345538704169853047710247036633965020042962421181930613725239867427512827947262090615931684785455341938115900341125510200437248374194106683559294510769955784529622789216890192997541361598783964974426490971396592306850469560325081372933454046840863729709311303966588483607985766773524893127760333221734993389042029293539371711267067850284640767023045895704264151315233805080425850146699526357273129678981141998531087491923867176644427712274872369860130856663259438168000200507514389796452906627408222203819427794458713775250710716511731286017603087192266135412242878328298486366762533723458423913244682107414114366517690275966851148555593722061218775209554495614548314885395315938905878504669613116514342164977142610456756671984467583891477572150602604794261872819429290713609095334162454122313922551109497232581054258449178948741886109162867545064338324696186008300055510368650916798028113860359709409466661271517560315879189563097861124790808104450507722256110573402851567448194563779303597251894419242141713048344416682025233445841886298152045138369140828814547076553317984522489838176840606871230463016166839564247579219871570883165192903379809529371936471325322325769986056838593124771536308995000671730921627698521513653382962924189153832654457761842175867180861921797029208700876123200510447160409030416426594283202951651108945705316130723838511341362989146749166805511516560324613569820256091263368284214037961913272019429330763071517417938179814037901397763623765571056422661093305860640529400741076266419308122435753742822741182863465637268679009063489159879010023028141658003918147060632456522873519174856213100599993771475627322334380904389167281791637900379563966085751028955703571306345298784357106848098121239012906233572633492267587770633765075228774821530385483775865072614276179447487968383591694301212730543013895691831650217943285547272257452187696781470550812170457707986890913374171571465742598746701465301925174633947233720789316490844015058469860841412142047318525064311987767950690815431732766322054803887183576197042101226931929499309783736296132202892155491668562977039968794893179897978983205907493245707003503591447593675262918173303554832870670021072937683251000429081186471472388670412348041428025984380936760072009236897943132056131187564038658780938955997056597129559641214003224669803926103925360348081895552370132512685765217527463082303860858460129403645618734722693564550399676740023812504431896845728427468625418152162927348043039330305138033383253655979889225679811586607679193626917272324995970645938220053795096187405950414766428935769416765296147500027489067318957110045015742583514259697428214411344985421513738015599181367639256861875585312909503181462431692988621840005215399974687388472773805056525950805675895411705515522450467650143142590248945200069481312187975224181445847348450149412063330752855866089302792107218316830652050178553209910049716964148078656633283892236749751909452669219337745074101296517043328519078429901013467420146074380104701462761672358118886241254068946223286059384507208366891986969197739423332890507587603620583160400595881773483418737337094083110054131996818490634284755090454701459472177872906458478174818791197457704616009999238321880853791385262417067738271337586941635464309812272411718129391565220521205963002752175203556535926077798906128637532832111448032030903690849932769355732341398634922547629672270384004927608017405608332983216927426578618832964037101783861850931649240367727663705141607806855296315465787716835087315586251932558840566501962230419821248046838015092807401639450220875434898260487104514908964629501506997818363981278047069628324249277949968831706329291753348139319995128294982941240546928022210379718322027162131172926859855175725589507873325487448693518507421802312901315619273458058948853670966596807601072327923203032197515833599567510733381518774989848134706878845992560030439617956331981444485522953705109101606179782208119806184531134699120582003520717789824240951340857483237935574416742156110608235520079491718271848563487787153473404889162324551418367164568831454441438325385556655335483910987044970226707336149698745731128799355755803627358011967188322792138454941034759932967249293150009191697919726861765910511278175032309959574960042290364099259140110227517930469631120142876399677707768289211234085588771952117715550709690346795003034299577500273552399181847458579563657048644873985727154700895809010310153915817048445374457362675728451273004999850290471029800942441929485402324050524333747709083341464650015708127940716647476472711765689335153691316658466233480613264464642857574446329083182826460302077345116433962809329818890062182928396204203370919034428240905392565730477494946144081673248277247555489901501787719255347338824754384794277742871134332304193004559564344400417769468470616511519825973216501498558183954496842731235684074281660397239787189536286928002884991782459153025475995908028041351212542169830083923053023752900329111149874562757083847160707596265013178300104523735333248937248489942339396680647091239683382527074447644057972742843694973955692064908610506085822405204096837321289312244559827025063200167664053118861232198351536994691261480145944441989341277754196479304481247793350645633704617544116878687530489360634177046837166162312970830289195925320103120504869734299703472089132166896008967154777156970702192578384815278998136855937344126444479174322593584067086743267562673154480127747312172308896058944135899971431430355321062261907944017276888024483520143129867862037726777192824573366960263965520093512994880707446071408202381003553719189640880373178501711329541272883184019466350718713276149682308331180938083043291651332873318402498475247077718112310305590103477484247593634760282997301810828482634431438918109353976726053163165393974158792092049150562162620118899546619847867135457430318113282523494874582119251298737218240859385839729852997566139079177217089601383851093715011260255015721361354580357511073410497620379398935923250947089096719386297786862535213834678449032212055494695827288642661024272697195873215112392558754983666709094380595627098265289770485728112353611417732661967629033940239792759904028127708760140217754048225645778799437537021740835956904070168025813280805003475654396698030910567708831369608043341942189283872670751820837340953812387819526636589089284577395438567226473148781990955590636774793699931769017737714758595929646596924847756273983330781298089764749344925275601751397259626844842134839054624385860528916070194755434157027205684181170287139881260083784919795497595135804776636656393232998751747320015097671160459711464916884673531731995306728737354964298516125672486897372238922382895448801845455361764862715012754738388572228786453515685528891020339727572495355671106078218282809461019874326155386863303956371658567127467036634412760525075228959581268764527576713283204015299054872431139332522121855910667094484304613151976772462463233309335869807770852450100725454292478594410277703042058590351042703088243520654635753426767235765707873827017661579402034857623735282487214140584276233640320108175749833247423273255479096483359599973110472258323556697552718864930723700061175332040593673451291358373722960866704137211068542207255313043912080630418269734546771382312464313047031372704996262052012626686686383526582654093501095019996837591855136910530418699947905913048738441647398868791133192372569895601727528409056137473091306210067000090019346417950674529191289884134532595734426671117436226085589241969165716358626112390061670630230302866930514584972636395498578594125921808285331206690099063737462683226383281331393781512220472952454797909037968037963559761732305181256766089269943056007762896882048477645941128808470419604638661101014148756173756596080440760952905517257966853246319566947605908446528231895857226759034978041505404887094931649688596142070417730352273073781957993110654124010867233498045530255900868256953954431024954349077223853600856017276364746264188935692114524671860967978958007426462614862596223872812350050668760047375704850362577897293861530348926850828278838528406738022051884796119527020175479278346433671662426723897781229663578539780875115186794055424812795215898030874433763209897232079966778459570619582738666608503272303855595444706535114266718333350356647764327189427317381189287830482171975657879362510764190505275072277048144936972882648325343059480655016321470874277609851978660066124975991763924200816342852168899235966320064353527958870097872615516036626382472791176355831407125449554283665470562028868158755686488636772962534919839704232066504862014465471345516920168264748358387246390113657267910271556966715772432247703234300151428283904994937699758794655887122339976963524316657105504782292656341729465307930146035173983608074917487077896383611588209687867720681074238121703269304233205988610017632463163059481126616185240496987576994358757746762385879971848720926404983781508153582908378703959634668831564668255078603722253045931657066063063490330398231477750369350285343116327799717043295644517856404509324465344367759301272671206613308048839238082322669734121573034341346592997257818177725033037578812643597048785850323673838657470045699536717441427407936878837014700723691291061522074831408146694158342347960730342260857669450661704058393546646481963942875034059874381191986194659211008229257885872158331748227896643214071752529750548753059132705009030206964499937839816225973596989705093993383952775549813757012415362230346869737979929547059259216813015855070003977644248732547770972583005031412587735550758926051901300208494775151616964952562068222299620912591167812511282590138980087441919914768180426467755447555557247976178456431933062053904932456530693494755379381212512740822402643523015779131401767257140017809190359850814919706994037712490854845718104830368628547923505563999734203430250530269890088655419927109904655084079564236294646056089686087177425774923986448441538589790204293707735143818011644724831612502091531150991622497660775890283971017932972669179906964949602520683806066812540904936312607484285451840332573030608074202035631538041659056870823610749486434930741118941237156681932836404019549850845863165064321850096012034914618994941567330298125726586952467511744625549867841940022278114451158571208044612231755544361425212504493646810216251110546307080655643119425367764004803401190429665740446613196494814735414815981591609018492091549575123423791798800919117396721630064519097148661722745900243878767808763812134996050099028349378525582670915378745866738475980144364433119169200599501426147754124033424456354418703547048733374805571344736520244828864319425899203128682992893529121884824519266359450285012169561916883843230103043182363455461716602315540642662870838984189468258677884341501068804519604999858886172445943116768648219582059733918774942169398323327834704252229075580961529785924763681036000690913406212951471243619975199600292068701782494343711998577164144840839949794391731998950371098382110167129380467121482644118392672441145211883299398855222181630484148385187863460678905170709505156610039914600516622260127291030695576058550082370781042957422775399777755009139774164777129847378632719111365344464439111503276814849870725879251564993069052278666705029548151397697991479822493374641678594846240550988547486803843133637618549024109237454077993618050955065818578359587953547611152468619884351572576932588014746838327593654868557132777859112853421111986305916908563240860468597834533906642045050882593591750791879104869296424056245460015073274846395361536252821168599522059737727709551014592632759427747170405055296138259378163707360803836864248573798843480552179090119572147614058041212451343873283072184412007539033320561260095993713789464927362460761859723476064204038286780073862781656688865784607864975545779597223564958388825589009859874405549694825541926603903989973711591884987522161901452224892760162013989904183449212681221255650110577041429651917136543077727723735193988186166534053219527200780617558334874802351714969026354570710238465861750924776094635785459119671271404040627256858213831651019096679277695043965040551273340489516940859780288167013291135328166607309900157203061760639218408191674909398546537412980828848967323085802710686043635222651164808301719398741903022128824039504413445054292813964746808115124018032369297489845478552405089556484401315455887170012395402856905294184403432251581312377912181604982208816948168846632317505257428920367835713637032374108026292593089500486666394169136534533637931367885760508486832995838327118741799360041538429768524249482200245153179873621386344775889983647900746736491517677830796816841956606359948082158744676659243681357170456144422787065064643635327489379913376242691726656746891908640558644840390851691230384628171894719615257411258683092328269209217899136155590497617174872925912828477675877994920720794387298312381371451046270284065570349006585508900681050402581532807413407311954972701180342002561254550256967905821809320122013318193940668179403467748047232897714348194394935073842539951420355247859643911764546142438450743109720574708514043008764808739378911961600712480539452070432900577492264928927784302554792467637665224641035417830092552352272116650289466203259691136894350567383581560176922598213740526922237530199158230639295961535683075797033985559075958223833301459358717679206313602551654048388769684182586666160759777495278915381883899827149608104915870397002030615514218950797173295059350584629080974120116831901853772620166739401776468839670983646149504993344818035769709264823683521531484261795503149702187500622815910802840068703462918943351296830272949840938977242065121626279092464743434838099352953702006487926269988216400728451020485116403493740336556359632778718911690555555523958418625811378124603223756083147454123774626501679489669483853298731955155902349637438025736693041204995557011680097992557647762107312559589775678960356014375529562836439311460282596857364322644209406796552965258991137020300784505574391122961837888970499920374517067109652852499601511202936348965280599215870553878286034403470431135286085091970014473342726086653861609969370085891692910311496957464941926377603501860930465686696356838981856502240551411647302214275216730090948378620913868479307750685265837254148370861349268930159322355487968854014822756589369556114096947944771148841203938153659033231909561408206792072878977037863497507777709884390295230189819209473379923766480715405601393405693911656796641771737453398322556913978415252667629515955747477897533299433492654198867373897207421299587320965426079976891272629650153745842561376118387204134189553407947117797519514042413320928112959349245344990434197701166676917915172184266998922122671527726718724978870886505584320039620633466587317539326924780880934984332587114189271443382297236331656095167586221693722132259719899988424140392691794149402504669173158780403681674046947398226108564527305236733880507814657650362026246751768755351490457819193457144892522265721809311760255894124056198048223489488244204762137270559771469437483009396278365103684596951927793363144373820052032335844202494302051330649021678919702158261487226068688341788278002984319959899565356986867086321266872739902997610636028036690180125278643606316316428821657793989209708224738142695785982130218719088637359154167809682828585685045550703475027683256796373147161606239813657061007213276404969785088900859996862666703263823005986825823251422219014106901075489016916723176864225773116888984333965903065408566541185769312580404502808624389226761701584685081353569008915292327127078426931169252545743657256971620400475232260320659070725750349935357286061257316153751479421345108473439521849737329069192386796348150140315886862635885809151737137557749602330796203184351790590107299741647140145448850404601750563943592235152993359443044272124657798101534983610707131528171800677312605991438470980857036170913229042260960639165506833693680382036807176731534570241443497035370000537495945306425993578045875550672439928902594474232151966248540996086780839169939716511265779604285753209039012562509339053020861742785911475151133656719277039994925950836565694211174143578274649708319325527813454586416764365877606476961730366080233555346091625967009654278320987197170821488049098412306341834719592365102871487232682345371898894105367841775661771778969035892204223546189877424173487190533192772106405999881271559701309319416391213891927097042328095874814704267328765297673425329758342637695149504472464933048534410556145686090761685244185332845792710812418024530583320623847961715978761403809563524996789974097909544367657515074080260605939569981919632804857024680445703373169774059222547090721425192098954292628646788647128717163001596939551436464746063151758182504608779916473677507906329960415241931558111397846376320889651788707394632204479175927864282766496212564087640835328537471552399158269625716730531488361679703092992949849501452502234455605512856682265070881725778685709901596354470935721201374283773402750245071515750182325768518549264953603706253803920537038206756414777866833138196285763558261977653732593283010000969395375532563386343671066239052187234653712886142876337358204071342787016770266922757774732489104382165563436878403769273897673227456827121865147412075243182614529074978935765283950650110078571224348717853395377009977880553591314780911142820805287623320147708985787571997637970024887024870447403565829523864238220049693541892123716768981987402102301547159315550378125124961069775260805993277963076610815177899436569056441167128468273955959499670435961539893856773744676252499571444752655991462101343383591030106608348302482248113546150400354942969564379642793475039432505849686030910449822227182236201083167578637092810356013874409282854453379219152237468475989247687468153120802241041963635312184828200496565488638690253746177844332307075054068427478732406112547919950887290561196730697660072942448129691479383415008053204833655060198769465295422921293310997610296435430293119802287273914324728949702504866218587186832748493949490125992721963999242154280161017920038604673428913554364109435324288477920105573142722625951226918592432924664314160664779441016653418313443244238896087443830273180572723290491908197938605045302096450033255694945712044610254449240244127374184958555581575423663470061467337892862639807245994950776999286516335917534510802427091603387317837307349239097291621355670893631620087624259140872724418599344861295115156033586371733739910349734052857583761543005757131177544761713417579872899134468031609778155061834136065427913200930900768699157379765810060957155637719039169676730647202663460387596606511226383014224772681996490284263100136953386407686989462220991496552513814724705897161135247087073670673089073348514367932003455697167487059600753015941681353999506439781017846027377015266641844072393708358322584505623158700704040635215837377463397707109225762597184680902448446933651564727234780310469541872019651642404720095597624162710511555987515963734296555307645515986158451823238379582164949662675370124465624111852861262236941415386335273812427827493475647826622578697603208992152296935229818001264950787761742684573389069257112021982185113902376484063551626065205003738275211205639329210238686728422888942995389797140635289294102181465550498088708210991981050201638166042121232970377325360628042883995608754920739633886187378996499912954606996717558314194553341167647649946490226291078060312172573062631570578619080164698252988193775549542147176048848072455052756256760199343860738299802545373404719476620355586908721891401377243157390667551109292447282070870024509099767335973622315222907121842117708469221433243245830546664521998858934471680908148272170881022547603034871671937090164953233769753516713034414335255330108618561148652854663278415896986194416716844964010754915229220335909215718350615108497305266222717355039811412950354018152906415202471031981117840101398056639295278291301208015777649135990864145058990723666958637215689423545530999702364038467919693321031581057143348569225232576851653128918657350958101690614050350284160435793718479382108873725655892820870147832402931578915791633308599967409496815567027432957101928424626094587438584804386263439989685573935637909048195825475348764985993927205625557485556194656777342561575669715582184950441163048872972837693598018775331386620327802836159951717719922376965512053136516343256332985322015513883910196468935026586708275717569573406677447333269260507066620487858152919721591966638196345474937937866799661775281000863844576387630188588405511962780131429551516519567512494413079421479942871329485017096089443191810397156396815510555497349986243492679733067874619192579519148558069031706518988680481261803890447939140147825073381550537708688152447087748137989881096343027312200033060734706514245809903525848341389345419399049649398965654520713856660765993618668376108577653934041697121104686294568540897591294787415859973249207657554032528080252797381746181610388683317812400993531884043698255986106909733531331441087182960424195763066352671378655166013934785951756749719051440000231927340802799440444074549051019741061978179158993763194767469918643410793873520653215607361340521178736483757845909796671567366655698641982723614274614635825505635060658055932966482111033197447483391332020696140307995776125412262488504805141573048905765933763950369047831351103914965103059458462762631949991396721184290548325979658189401804213766238589133785028184217235813917757853919271717075018290658662383372208467419502564546488176894639468843529278498479749369340765046942929157787166568826780559993071615078511300818775566670582538106988238211717548417274963727565467839351539563036520888077781509132876180777983469474339623899870995630614437641786153116138720833486884948666686214138870447170983815195891584394649469217046060147034609357457512836482532051023318421643822377292925337097664445230512469544509264821970568937231312925352803330316437148101902022952898923158480259331857101980526376544815140945578440972065147592814768385277803331618908070938955488107667993087521859006971726279751356063093300787310573907058917596187185958206424524649839347748016454202374498378054879767406547975249526220937725866267601735823173812358700885853357545001315127078391038148162554788467834351831637146105207196994726211911128327636415944727634042610364494614993014492768363069480078789210594000626269794958072025949587533439170240620609345271755027382687839848567909717596293897985668406757599791985838896281058018042627017548923140507106120751062053076701749773095528643939039250105085330223653601792882262732728560915370263653444238847417894939448900817471182457210789577336093122052386174837253886535937506809178926756118953520013998809713037466087825819500253151443669010465223604866757760111828905982720877618605988715321574847339654386193302171055504654126356949220952771017445308037186688183022993952027594760750436187000221156021903931354808065798403126769097558748395098601865333730472790538290779040863032036632943084413609967062959451699502011226208307838085488590420888810171681615121849779993284680837873682803033623389509040118796634630576116530322194072095289642993329141199424062100337489628228147977066683247811949608523071790876194247915848633531201107890905856495415467842911616204979598108118131927626306156858294525129732114066338509393614093841590504843386294385324088940407565820912085467057674618629153459172881707706808773094302227895288506327412691996216658791312326147024921060866361897178050079897064812379271345255961512391813083511423728199591889649907731120910102116519779025884977868456596554892520350326776856310632044881166617730170282664918891406672536637239891126559130288007514861311903543009887245390232824406066135011876701357660721957874900011541265364323223674046029576119356224707316975825187496909732450942625287692251137351295280802572303539773284869126727906512042154774616878840800543809864415545760261113366273139175339639702300162600067419489437003637657149488013570140736206180318414790950029300652942006633402330512500782157404410624188392567463513908656765710805826421652757906022865981021108156840029469455533324946127926608728710966448690019939955795753679303806192825627531312768045657809497218739295609862424868336782342989109023054058604320039747454699674785005186667996622040099772407859548758263352868926056059663512049327393498397738651704463127005176252648743611961900561939539816475974119402199836374450090489928416411166739321015273247390862495023413332758431935652760432683797203882067665493073148481389778295851998696340773960951803071154218693809669157376727716616801273367135202158872917066613227753441268542859258810012929127427468753464127321239307931213091960280632573600644292714797750430535369818032111557215976541990006716292878429757926281982732141340145170848679671355679165823174681047413038871615671587875040879323358429735850539767118077422586884715396268590428549984552358900683315228500945744885832132489688347508812744500819182181108917837817917236470937765652607763117131932539832141209366374316100580974442569153325997098430549349881779830344175714737911394876578956134915483424054173618741928198690576921145874852372514436357763915118286282147741466045284405821211706000650897847681389949659696607319366324605393975036324263832981370559488337327581509435272964278921460034350932590810661770309841696800639119414206194740308289520556871116052155885914456239712631275481184101657092321737951546877169317618816967018894059887600772835213645890639715798933785710488764632894511908272415009315075483286785497114688253620609102127573058280141832404048123623366500654930788959635708238947682703126628631930903214051868079142295809028832493164667945270265637219056080415584503216311132136674281475699998494922368115904198415995721093950539071073009281219029315879405049710285411361373435718985970289627038311058534883541997004655724085047008946480087754128941459412876779065912702243451711341100507455514696782300889467327156276036758847441689998489038020691873577071212626824332184558190903922923136192739666072184312459639087581270177248679861481798672868680815404569159868690897098440832733677484931001545406603723080715441794538336819544421132754263321407342866948887803795999999339805152049755093119951540920973640260652633729823655249212025468585890928008603464287289128799363829407291448582995425521468229086267721209166848719312482896040604923889911299327824196299904897438029651292947564861848690385129808605885700463639200728239625688250183423393881486088400131510231751524249986937938809181231544880311543525452582027841160710666169483768581009835597212791710861657043461553415110259885136315003093457403759071219517201936141311860301395434462873779939002683797323307733728668314702068734941634303390403536170588641922519526540565408613660835405022285915382286219232661477739070133576240248852147807032376747951326122924913092174823598064593645486700154440947251433830831994982850066082879070028160875302616156636364816670993106236435113718016593807662704741285781979056214786281119749135627949196527545042321975455746971648835252560518833957560612956235669818656901998056949682263872682320287189532149624082829491644402391724638170515567481687053752862568216067134649689120817238220583879736259827455242173834866085286606065887444621756905554257498701121413928717828853544541479276544276344389864473552943140176879209727473116075312185525332392558599147667926258191243952798859793366770597385673350359311641443118163451227758984323799597352305383822187696285564936966864849998712702284532855119736016059474235800181011369224304450957039937717299626600631761931530462797966785518115183036859785409941056720495135546634276415300894724741177686565901293798685816809748163257119035548439840679688584866240175148059136937192553679822158648201475869201414529994890698472031147634399481473541626034538820842983251501800273411146891834253336935676153015773211683783882876602501521981372013772584517056020140274897406733304936572002434118038403629259306901940003580466373145651949035512846281091173939936293100952645755797828836481966729291300069944162835939097598048009112364848215134616938075910520512645143075070403824683922419132801554875656331403114148676452504561461608852519260939111307475108700646141594359285949186240307861287174867829539216262462816282337952662438426120485616310229810009831040188275267366930587503560078703386869519759606601578526239718004863712373232244970504441041094326453166141964210114680406609241271949560427274158781263777406850590752643813207732535994691205307060560788476712420976943827925988009784031491942146689381877690335427317915006973090730259282075582791319216080848890314847256773302864926533006368012226296731165088841666625088982522220443216877360764668690653472955183717219755150386827976084367263934600486798550094543735077781783542070479013424534695939369737738027164080712812336016425852489201169239466829793241395039417598330467126842334346744215083343566164640123675055765897572613643845364345502772678720782586452188750923855080974588536344604958151258046147347893989562051314424723674752261122549512841436702953620966791406126783184960090253696092592400550388023182945022763113175471625739551536703867612245433149029181200609146379255765233453446647400356857744478061861503531291157196667152644605761300118901489304873940626511212872695255500009223263535731734190984427337149140380184726376834282388838853912350709143576195791709304571645268007031267943076010746859831811440612274625576391521285601281228459719637257716071506992992647316943965466796886333272316089889754851317252535518389582249243864570622360296855999549081272406051127509958648801421364729019327181221547565298401343688361697896228335615923399589562788111180194061488967135488826973451799925215263062504788945390767334833104241419171256926982417493348169539308787882476127327472435446047931507007447724518093109938522847731231668766431916136864513325824372236945013937933797381809271190555500189321050269359404570800204278457480222060356403369210173282181018750806361112763691529672136465018559773151244995664275633180608746053941877733659066520125866104511675527585848288112257114165342777225134730026093230676054071594297840092229766930171042750137533274999461854884633077989197678210525836002114506983467597279114425892254362970752102297466221320272417290039320297689859280589219502799621177917217240767789957936287664020574009965366984569260129144497142251694033608387843584309331934187302593124711106899732653956999299943981263433797684849831224109273274769313396635605975496802472728101346072985121614507665134091844946245756610689282348093845512090774419686304608811756289779652355941969121662015722117675534980675632581023046197929941416040748298924898472455837070916339963530966460150219715582110723615324374950161493915518527277742843550660016186161317292840600593403327271235170304518719908702883017654375291845408933564634542348136438376006890832532483444289295610808116296554639559643194121527589063878022523046211511213579229380375609169066127508073696492044325346426186238580649257200917042979219806725531227333345995448592866916650675766004124958473597582271358012850082189618042750730412489411916428855002194519276630526934559700764035496127392746484614378281306898524290998646409408832732032782936497852426555040902612110066390143691434182911673748854514775929637242695761454269496390407036992451243000566397159402352485032348356374499684597464645952276330720290644644907679030390792514275410799289598298996098966302371914917005082972378620908603581681790797241901340650030503145550952940368529554917824570340091688796967752393973671944642833077814445530558086081239519636326163852634625287282308924632355976602188800330770987632088862421206861793075001853550645484203487344207562791447398648391222687452919217141632689257002901997079308893385008643245202269546171327381338285976091372842191487386399514119393813768415118974580639420617366295162618554759890467698861524362521392476671062518142201700537872775183272841710427520665929024911969934958537572801704988444552272046191494165948845189711799390853076806400605124946840272546200749763578409223712500862559560746651691180026425172820444245612103383563538025945672978183022699373293970616051806763130924573435460896369833503988218253170978733502084353066816293119266989474740660935786631460088671529496299458580955666549849590365286412738655834625621110432265230146567622971340302596834825233279573269001526427998462319914583020401031363061837191403410231393983827579756786328301326312311587052727051388607369458089158714926298965636029126670460578136322249424145801887962107349418490368558717484883316208528484238324700669767794042246696886233808428523636655096207155008067870677062668091601238636775847145367213492552006869431476363607276119504284070490105339437000717878610751830835578597610811622150700666386817050653468242999421081541773119300251525183942520355202595528135152096181135541084392452178016996091110978259239427723339812439857171311829238111209954784860126829507473163377835317709606887383339852031239608798729510910785512810635931981601194509282005668942961249759842265439325903974203074812410959718500167290383959231745103127276380270902115686500177643807441469834414211546293909354825603384316526543130124200637936919932857776339062306556922746688956430646374687417549504204912660903855259838211774903224499308134367620140070456501333883666884007574902772149513811532758080617794517950203535058781623071091278030438317965545357579630891077628985296685636829823828050663720260673622230938579918201966987521504010134667731639824205701914678790582583451477030192568876656789442157723176177815782509488790603256846119120300197075518329106983222045375167322042894694597934775303790253254463588571792724405247023500469130750962615447164568906544618620201184113093714774973657257054319485447769907660454691311786790288440146507648915041479556547494765976349752017014668321228711688996578207421226108601072093458754051475056687481938114222612580884327885261367768063823337499044012906327501510288584809450199032737285178531326790950667702228641740835060242709263254272944680352698871556394774030924207808367936833196584798699699141300776277714080939860009020326141321525699071589492877976109874108361236818877563273920752199305758586684887804261838250033427799727966340089899064990915814664231440666439380906793607818504450156957304515252031567904179312598951554470206935553581000894482698034206366269736711337149682152930861886560291186996569533650438397286114928427356119375016018725873220329963320682400885370813254262886049893014645395007570478715641119660474960426305289794518539539062188647072000072425082919316654332722497086759798505723486286758252597795514911168042372678585112920641455834371626655094712948809880199519707903033046634852418648629662515984842681500070639759560611150909695169806757925435810848555897547391909626218714607198729283913312908227180430579696135319414637417706797548022731014832773450099561065193018406495453985070693833668258969751990464329997073440596928870881626487561858055712204051177294831494134847364945329087262797366085694959701126567837588539288613925061619832897659158376773139045152065920735877356684343608004598570828344410927747409212385934984444105404642435412901659011716239745450845698987257318601573153744527725275432098239121018249731645235496203442856089055709154629045822485132628786676260872823771524196681114675604117206765566591467008321295178712759159278028720197228066886845158386432545461986233768067085827069758668079684818855916256634925313233804997697878183426883242074880652607362640912484858316505934092338161255435743114760727263257798823175346540156006824570919770456488974052182842378333192279532959208387289038349326088341509564458286469328912578968558342700526183246504151000664042910994773609134538850995116985390519685971948037795880916094749013757637718361701266488217986053975416146833486707227149932978850283302864400024442304815658905721785614340357006478425613038565054677964111540833197265724351971170121455250960098877148738727751891036262350192498445922748857003777381674679910415122626814672724489207527753337525399507333081607935864285125587275468629104175295701145193788734614347610056307445116773571288712124089688881553223221316624222018341973502709092955046677491212624702349246261284633078525726275763399711905997492811146713754702208127310739595459683598874020604844136671054045268476247230242209384802262119211779879320313865005700625277577607937514664455025569553034887078780572809793379213056263385628114957815470710016817788583962885272252612347146690319341409047705501589270332295532767335593580456297758451236853412211097676098742692095187916430010104215109246623660933592216551945330131868092840763804726581359738741234484721527620420395723105523215242009612605148466091181934831197414129070911591726178331817371204684697710624734946893283573798562408591652774688413882853347223722028240934135555576400774570392376319065518323586137688209081062689003085600825939781029590558425415951774146452621959914593509523842574471801087277595503152755736716195597180975203777918713431311595374898253920220406667184652291425555756040646443975539149646169358450506149249138943963749923310018745307866364267104963959851963389203714725604323002765144755041244132584533570220275744506814417068183673662585630699652812018248424804937376610298750603352885796757539839977495015467692836292451993472066052831273990925691120969283199993782565682113234305370545217559150574243162731774693119371957269838183670123689047579305472991234023996985824998404707916997757968297196816498689866777273234558374934855153493379219299327072305710546138868282642805285627557881175035248803822009955885971028284202110159792968909741596715001364084569190723776389260613842626263577288672970211390456368130785702256226544334138731560891165448078329559325617989591083807541743883860027645460296081159874780075476525674021237645053250048812112043670453582534292914554600790240309658530862200454212592222881952383533655455655093011997379923150075397314118803925416325155407512113930602016107103653844578471247928698175649009823114262530932915000857305888853651875395018324220232345725567373679977101544544386493738550322890071635036197669872454164084430177404889978106474328605973477624248882837617838678836085855720187201223296410794076311636895244229851190273633610489670906659374538197174456233228397622569772765264410933004679365942790361400580029208658899600212198096413215556934228663164051609374508546434563757356468829756801478640991975379177004391542199377083835727830703670095803954681321820227763468737348375997384626038870992794274964663403236786810381337209846020795696124901173739444423777441255647516053367216489745764752883748044269030759207521705995280007394497709438812678191236256414115407278003493305783649876863390022330552542079455747568169733481313040062206442134884843287897110069964843812947434243037785999955137339467112269824437775952576688145415220780312549491107580263880704421830318250919768735321136770017012843095809925464558971680809230042318187034375361560048244256027634420491441381787047596153516085111275836817616263960441016444068679949222703905476456449277057276194647075567210008730482903795868499979032826027734154655785271254951752633466443100069125942575975613173424792158011838302382117231890573919862908769578157231333830149573434300341083121141392613020519714352319413225443699718134237417598863621746838012287553510859944163173917586746447855064110412684583461935661529462167581584592838564369176649390191531725375139166355360958276311122472247018912883500845977169592466578851525656067884675730758747739089359706357294843549915014349786049712966354394748871444574605858829888839943707500410759616772667608233090245811709207203651233243344498934635192306912502983637606149796154086634245502693039160659491765942874981235020421495050058718992573517983244063639367644829110496347566946455507312456661390956868943300393787759676259832050692411263985618913118613505651406585098884942355505663989824791679560407683873393886065351883683007508186287815418487652335365001690467306287297834931278767056142151357646755824447592423400118938508495079278422900208745177004993977772320236770790359461850262164096693074679256913907068945370308289352478261694897955670827639516629399932864709126986353240320768762591500361776987911484852078053546005343032846337901274952655911779684630165628895368597957102687944496906270954910288273541507110120011077525106693415209080403259829313969935648417008398648640453753802185566577596267033107686857784745477348086232439158284881589816790029014765813248578228098471908896954772968754601344749520942180322691108761373575161885113372015444133967619531696427035394729796705994712776598958631180504539130877353767617446416337638891647822065166123308073533710804186789433166577716071515923597643199511025856607610570537046831640893973192219904181109755586386048305893085936007558681106626393236488891826741569116690195375663915134477123537552149184360291381472181688224162438198823674083308739548619913402590764257165718007433892617863251043614192345540315840543791338222346779078832580342363877457397265140727702123298130046198508366955517147244525266869389193940330566363206800682940105619906501771560221162880026650319157195331776385545910051772095498432494790228595425571808208088845070476268658561012559761136802957741202754348552621944925721653069931894933846440246333847420595169176085470113430656499695312404137704914314106729754185445532166858592982522394976217796825934503431970559781218929369217433155699373021825017856217072990344256091638191129423321764942367274823719340699259922191549002356386710917922113979019316063885451343610107828095532624827104423938117722935838941084069660092604307655676073433773393900808005029850076672653234357219467316742395840111449416374282892620395910454338817842080737544890584002210707205972010023259160185802768648789119382431590190691735772139090743416883775367003311077776956320108585619292210966438008911760389502749589304258033929178895964028304434994069048907603189995326524970949656073593631174615619781655211520061576904205439179053692073290589391126673458379403806349086817689268544316389728179803277530715128634072318150725312353679762988469006039032271857367409909190713879453735437715420527933093732925271342901895595670304854538597015158203659300891836137664671967303172760493207735394188592671922158593240967513738598166945083043908590577682757001663787078457072082559252671248087464300091324823656613004359604411933061481153742215558310993167694501042338474737289246738675066065205175317331326855697402626002593883028854922606615833783156465282041021132393571426549455204498710995224142743593073716875922344354166129234641977206064079467276721437080437434093179558257379710587737506912185750433966070873289323522598687496664341082658286632435152099877407933335518723688723330248852773414311815360271114278559992685965286437920116212846874962802274742610907567690342665709217936801099466336643487894627100823180514022961833514997865461305661021588462821892994570921614384965782230068734538698039378925990653636411345044222563537146639347017085895985570172029922467395885056696045285052482994869631103293052108567251240716437417802512407944893906430610026230833482236588826431552418293326345918874009000370523026241007694786300349096366945907510935956835117042785392866333453971122226490045421631909152921016910503743001307542660884460876678621602533221918572174673449228077819783921996953477544424100686684143092124097689195438792612748112653345704558886447505827044284631811805471327390308565145455244871339543935033853728768705561264477554007561466865834100497058733679376348425455462114529390138824282470896105372171923531157584347261301710440466272827156682592466929892686621367968630561694879855790735748257542878067474667061012398496647361699815675472511581045537751063008837110804484442351555940910785995577933500640610176453216930733976352851822503324375546013212015965182492900273999771546095930038813736483951129714009369546210390825563628400702298484761065437219570141989069958267073847942524186847401055749661291273236212155186317278120596795831577619090193403188080542770026605857258865928325039566231128247562468455560189806790766708579958466589014943783046950032825138416430714733136495235080756772932859930580819037862905904531763067452418869846467938883760586246294163763356932291376794590693061926542802819802498999591452027114143860177818803033068051539673882420756604197757826009695330327315523219163021635892589537892271025545786857216466900362273391569127876853904837952901839311850227197773856461346536935320715162027115718786318785716843466884630542765831021635584487999916906974796901795517018817353095863710422792971888718583311722160009939481163663543780157588419191233193568405968459224770801694464902368443307459626243192933431000293750370278984531835308993285180658134396896877739760163922206563147113377056081915558952165937596967122836003363750499682695241110822314702154316777817460857701948860412992082699690301999920609014721957888617529950627843220852264273718374967276248736885630035295675107131627817088697308580929287536813307567809865330491630618418290766448805953640960061537944971114290970038170479259909144275028181679483199371806386513967149393885348554736450767998404608117416033017270265590931913551652634653807278528618559256699921397650755108831328513319596382542812238173690055049210962876097839839408375147451170533492199861944809460728087785830885791600518426209074985407604514492057286488735328053475265635226133194874160314137931856808997348445960493077720540318064981677622829757413327115256591740306432788801315506394842968296092485453061529140522787314561827647531427647852591613530024649260349325029001269250016981815629995677518744087566558751838329091845553383829246437630939836928493336620578972937558428811717049783462613511812317661766681006199902210579813220039926541130346443412094564298146367141360498515298620962626749620152146218619325430657324607912178223920402044246267882166099609582385174174787678930692340075607191671023212725857773388110435559023148968821425216124165975843237991196431519860713169982194409848489832770811396424400967298983669753279223131165702073503578995588831415062939809507637903135902092765007209526931175810858253207147760869251974237633198832554488070009792561851299454263150246373107859218253111387440281149336425696773057703642148494733021307750552288368906903929997450164008810279110713290485479135468323709380994201919527722756872134285358854857189371467977280970081451185591890805475969983495472774944940612915817539860342594186194393882563450840412734305340272385421528411451266997206803464168809887263656300692685636915104922418577453616198967889825013053305226473575276093681393506857096854701462923308845234568115383752455223101239222420087903726003827220393706988253146662826241356889574221926852104110703869593605980761583710290985798729223010646134790839143238576803399993630425354254379206051798496170711944168593842485312002618868403225715513358701801046341197784588960275145371950953242635746116161046873025589672599010408425557796161804426289365779122400070255022958558164350066249016148208744601178403975887034493555214454913768731085571434456574775532864332097610498630700357518754609318053116788989813536577016212090956481732420950278536017060819042887526868489061346144715556043268397215664477959883007791693070851787351698077505380185461343757723339893472989076294067475425444215074039215904024119934044387988280045923471443565054859328251585523450791945839573243095601983849254133098473741523453887769068418831212026210263127384101506108539886021044767437782837962401029834393763050421859550445335102756887827748061587522829574971029512437234411608740040874142212743108339638870956659811980521406556081512171860606548175977760403798569732420472333799795292732833255373231722546547258306601163876933655144673123162566163413076692029537677199467639630982958305687924685928623553191618664842840613685518247798167681680839624384141360587565443822914523803377091226992863747256811288163389955505146808787149433471986541088664798398764239567409687622892327109495610554388756282298513545274661122950202369945336449790735029643466287359752140835393165302394825292980688093346283081263187731187817772395740887702993555372921919593313798364022976395597263582547537668571876971204669541128509097195424866640161848386470207094982259816223085580944764404745013393806052005706194953018671041521523806145979191437435036648863677593036041278751563237116021831143955115248856526297093913380465153948108993181269555269496245027019525685806645568649734862403893039663653495012650644147886828043563633606530511406557621394550091047118767055967866882410974552322137239395237584080428252134101684244444432540688719466189588887463498488993552584901840204059008733606284555342357589850315572892156349780365743162811865798131362325014726953902691747105808646825800814999904518013872263476287905308723141067807385163509660669213803594937468925560660333977998278172942199551769801591856462513605326040536396802772371957994343027855561315537218129593510287433617197285944084094321673282136936952794636524554040436190259302139784977776770082937123550185200750658251313232972693975189697365882832688481860514788525416987951726908545722841406610209919205212713758815290577874692603742052716036672427153297143199701403799623071495997236207105145642054662011620504424871253448124305041016283424273560518859736167985444035392576226487739261766421188122969846441827321495576347779330257108294666196997902545308932340863331333303792677113757753766282991565623998395092921737463864692279223960931936765236460089494380552829859318749481017020504181938836287165044374611747453797804961492066813726214398654906323811786215510598768527133193847204915309300500057457049827391999712390350053307419833168784910626549319542910764667354722733268644129250813121230874770070295359005698095153219552488276136817467668897185966997894663633443897876490312633781965508106656280732612872946744781587142022920634289411809209290772903458015273943371088091468532908442471193111830844049947939257927390261974500994592891189172065590411032824053367642728326251755019363387462908341310676895192921369534515808616424045625235359651085024454582951883957951461483224002807323125483278626058217015281729949676699053969039284205641094849296930612224540992769752552684170376253485627745800374616672888278787975846136697570596049631341814042809486019739158420442678915568263278822635555325813411928528134673812965650015380331752449644283826898173282833622136520057657101607580258754454624402662720124464216758890801986531635287801694601652926239699827040131123202801404377886066827083736794044817546792205987200141143017167288165381574329154960094082522737986548375089871916729622510134516990927635577830285930830079717534251015122528058053825534721003656700432068174384204691533761029024542031773972853602029388000034177031416588448284545513436217223577382741613834962343749427986376979691982139053816221747898414245452561807478592128138269049559196728199341192157476785307496562325848177270722668450916403070486019370152143014351919987945893721459705857263332960648940135036960556152987024833704040272545725125587182797850817138278174661551352086829622857680103883514547628634248285314531372680989600958932558347968801783179556352754294211622951777960797570374549474704494928502965022596349624395512352156690139264758824564710031225754298399783130941098030302900187508740099357124383863636685975338826464600154915966279937251199645052581108190742959963137985559504689993979281855170691128010632915485730898481548532099263060365484894114538993445346612211127826629575328920788726273294725604992074175022155719754248602491976269651923329365757183701752140762770977373252232221061884708029239043060547089089402639515140454090280210434002943758470705298752046153594687554195232525072891214660683539918993682677178798784137583228910555868271001046609215782148281437613096155377955998532277912117364136299814088919411905231267907249165203094208865912267794163714079358677784444539766776546607125232565841011890878598284910256735350574126575217398822300256537168534921017600924359066608452494378042377070365357919057951016103107769279814128330680404311490787676593080130951566659061539534924357742514859345450830149030490288156594296197704395246518778701073165879831297259875625118375623629820160166334995759811777788841868433647772669527238678847308933722527547547643347371812249002939904196880470763592527286740144624404757889256776509010752778877841949944584248177080260655125454023344688068726894650313076278406604375287175962822857708801096462256462719255642732439352548636631083880477127548752233704603869493346634829346124963355659575496189305620494619441639767018733355998028549959944108312989343000331481018461809954969452130962978493866190793368091912129519019958786919685228292237185844927216360476992040746630583939004922453730095781040500865001450378148474003984439317436661262900040899154934437797010611136072629096483851567227796253343098230444022488275956629738132288606097738448905676792773951923808817774453820874696475313456165913938625527629362717177353995731460160488783269031004188101042902048908050630686214390009322791676411442832533842199514688010220965505451867578062877682501095038417483121820581349870079483935044419422257517931415468135131174686036113833596848301509967880977071408453317237306827306792957446710198209310313649223281036251757558809838657870139210274440789124145013537135691562729484658060640850628657880260753428928948189315025071400409142850088341283714496740871340137416300561631778061265651725544198899548280122239454843078440852733019986408341729501368513514461090960602842473979720293097197156636887033880246650208271787764358061104234221317360767252282181776080350240748813969212479534768741563866940559257470624073664066151023445036758388775676237324760707972461231365577016790846700521128183429341190379935509686396972750206470494761047367344964854483018046637565036865454222300585467218772744175917687964673611381998277925763285313358948458163883084388193686822109094667929039829836038925501843599491534483964815846990757140130938355666403928139644394565120623200541739060010599865895594614808235871342108148696675434933078079389096605834484677005480854460275842150949805504069134133414208191390416624011330487597843213965402419378613226317788147224757767173012708243772522604294464688872932921553209151406803013641836216208470374918294502455966732289877133719256848822315389518044654528964517080192680949977786953426782480368500358689990566890551312910465406519586807765866655543593027779097952974444776745547406948720734144382698588985454542544548048143687478246736971373242714787853115590139698341072867842498752600174869044986204689302966871924076499988312470195510778702622273133047875454976462114140621844775335002108406483006949960091952168081572235244405884276269775020013884022195642369264135722031515115664063129572902631811905450386813293268887410734945892942390783748993288531526112559453512530692871330593017801460283875464734321693136426480980733869841110527364581063442604925614612223876621165366489554716324977824906827642858617333805908948040287493371553494262119481764645587282444347612558098603744791610984645981956312456874349092073957743285275827113335018287089568350763732845336778375448277241910270117980499122585461296200219788763222717487277925274177910057155601344589089201052999685087899012947182788789120755722229138004235407782400126612805178372142668395572552591673519974035466433524972011004838637756554657701653856649574634644787736166101903442065039618580704745835345721966022647950790651981788567898501605032133058521533391900507776910848780745467251705514231074360964489583472876810932877299487376146050655146068508105503252040672640685431682479603480305770824208479654147850763877524371400753629618477959175658949463753716662763685023380984249636109855325597751368445246819561283173436677722246337307502048723692004004306365042234301910135086429218504852278162296005659844255276642023387020366191229450708878568266732194099313773948242252593135656075758350386873827982073577082656464076371589306076585805614341987187146469891296764526420091591767291193824784293522082348778355359094342304008394418596187573810693155070053731871420726131775578672853998999045929968376655554168274312999000348090121953070068745906204830576710878853649680154559104309977594191965314992364558255900119533387533611502075570948476008541202247067814586789868847767748837032383973699747884185920146379852217859530728573502214344524436739795985929179368526022135465966722957439663026130259013428361687750851372071802903193750795132858289288254337285400043714096605419525994714569381621324759845440645870421054390898135175866093018227846457457715262028102176485091215746482643953175158265064479585656000965166498622508667551408567385289671151177913824826655470370626090097039846894310875346010342756618142354559828992112319885195746880054644952122237490619597523420645533555761898300899574549508304128326200262798574331790862842500044101544386091915514110251831314340080560317998268585195554142189529430755548794737598043144268904317331516868235009292763693125850790378253954717900279038162879304909683856767633683427865816836955964910536619707273040820279983104823571121443384221134027145202727936798974611177079411245541371518382297221201137909501888288911892002458026478689698454117726394223023304501096683651521440352010796775091213132686863203176645697509264894030706391200159297994016421153928440660338125929784780840377270661600112273492644790560031915486011073718341644333918416964049552055155291901109775537682059647620696716176550365946405708428544921075774840726758679797734391563505841064097205805701528314759533848932017272932260214326423965062366941354817987420864832118522062648032608763126077702330715094050954406144347926293968602961271405771380397416734580241885298005403535964355849537106020625897977069434436937758704269173614623973732744585367097358827835315145330892255617427751006870943801746841218107982797543092050478914573591093387894906272859066884871857993506796300702660278490015915318899550411533181547240016802043469031459187463546285328759397476478907250547189254504211606475434276934934207608685871422731225306550839087283713082197105432811090397075266028691178106165171024400516769884480004193464397138277503305371312000218582085286967948194268463007393949951085555108126495472090877663521072326866849000647254317086947783353912465138759545983226919471382251440975204205826033982055940280560826500781095759750546716947548337882297350687968437790417643624694774733434717418537183919718250976878966401590724661684504867958993136995195272643688803426193221039539232978023866729878369473304629898289970424041433269012007465750585077806100344037786477947900109046547564482635775194954396684070688250779050549823764877421473287555563741369888860277046330012507236007965946908633759223768329429077655302067762206499754386467733577602251939109214288089509024065683864959829143950878078627476989323589599881382933571603977262963983708402215462966945121260823320175394515330789582691758890714692657464352374487182012633050230064623456122687413212000809436574461064057627319765012724536391334532182677574332691664418705031958511510590911724122269985460249777860768655710034607550413440498019352540965939260797431110550964765533424498868197388937656424470796272984013102810656449639376642080092068168590005098883757408646734481399357841940573529660121167892821177636225034972857713633176106571557008595135937135948359651704351959107281219292864212362772226107400395645401634875812598253177869149409476763010068082303692233354300945532125934254867363132229140423527706925415254572513213070784152365576763565311793644630174731156892077779008149355468993419660061770191013565242694816224719523759889842073433122622799091688143392582678932300708998719861969609678519571271318089187054836061646215214404875186245011326969251754902414086104356340781823021699803583926327720586643436187312570642884264223596812521144740489201291552857768678862999002536996652521572655372168426320576888575126167351012260584821985458572842395174309537285371229704554531137302751964028513308931656458885528333430435811362504855679005915510519226885725287626154700453245212510006731986800498578965101160545440915233325651734124919181155833830262552923426095362092975433685520221078409561040028131917964229561689994040801277450194860514665485365991731396245374642473716963756735086923126862444334143499649104232319090174214618073620758427739402338737866333305331790608892389060119952259200281070822895792199220217943346714424090017204741847962433808856419633219171513003403324703300167269460532454405785893525183455384378037983055444713263024324421532829424171786774311090407328845998498371765650181399250924055400848820466502471413548650899441568225262947158728751290657473703421923970068703344911706335520203864069683336460030266418165608630268914989140064490434068084330137344383534400280982510487885198250916093888308687110184090650250005905799971915201157809200689225752089884012264572444983068869119820345809716968500869576333139156690228078081278628199765275014662680973025907849299760951875728167735882612648151916980912055505821466287953946951538044373777394444396754544501688994373697317243821332652498233549180855928367381314088190737431131807587429372545583284932171961859607457406586841829211826629822696240033501779543072616856109044460993438588562000723283477270153325938789129424406409378068756625944941171872217460097076388998474581859965626978974984030782460020902365009585256056895541724117651479146845212253597469417860581644347561833613043713355200956413380411038086039392413854219928183358639833722393659929504929013663910628941467514492256269576028716129923443473338830063804567314930770212020779408599221523341939928204413252413983425833226830120643478684351416107041376446581207147059778683754281315010503946437041002326633084201327515072141132911801467102411734097265089011117870375022253075619225116343835666405913527527370670396850989954327026905206044659551197957248925262675734912819160454997466462578691172453649357703430056393424670767880792150988102518611977115492063058855777340619544752953908038355982001034938473895975623692035720629370458148907179136283565822527488965756707155688389620387679846874868361802618235471022219780452864412917014524321411177907028520777201043326771964859517886170887268892860208386923211419921115618530340114382975749641472381995362104637057327347363981820700169491174624658514198287013337187067657908445844260460115327744695602918993321407834008727646099601287421192017303454435541204132376567772758421962867204779524698290007239877517634323119670402374163254603025136149495223413514277453362180634367380278508922007412180315477866181493009395788285067405903622575714702490449013768304842152296203316765827121872429734518292357274449169228179762443576478231554810246799860314604942330944309995177398308819808925546718754325506637529019880920483387488107159129216710293087997780209942435742829708232654384539624188357055518157581131018817829415321502999135746934734618283108645721057415152995694948428616828716338230816571645155250657016877424581775161827060656784423321804413438385438940218933346652651937815257100912852083097702411457134152205459144943410311605131696660781010697490937048082976852724627883688954460467458725827143971353459066152710401780101223912448874780634763303289646100456073551788440598978021792447269715505765452026541240164678978349587206990380831223740955757396182153742394995363039473871855839374309543740889787326379543023176282083005276674312141846294836648544723597017186947862631064810659047769542134176330062129567659999905658248193938296941834157625424426370065901068590974254259864196897638333012267278522344914467044961136449529920960249065654514189969283592615090897775201307493787600761653243410621358505323510989455868751054295823155164640208199250350543816515591806373879078953438398009592297817267137412413244537196876993214709447656763190738199953392557799862569778196272213373459829411562146108173187673221990625344256817836023778562504441671179361726122154935816871933376223144208253194130660622871604526218315226109939318953240778717867577016211570009419956197015364255950482297481141014509927232244101369697628968434535774660045183656548524898442229909889292918822813294108055590353067190878710950318351668583395378070359578735538761330340165199844279870818202955186251981719357164849053006525312617677470921942926469651987765948328937528053747228879952878233682605480651823529012283351127053140016953376877501834141854908936124261109423095187058569054704686952711684086419669774186551261274685205478775958934806235724305227523007830633262817676978001706504140092678859522974862657091783370747897309790909782971636174453371103005510910363311847249436587916157413794928084858340942152848139442661555026934388127170890141255014330742459246298710449055835369846198963113847323319203889550294060774882383678783998741841543629345638695873789226267255694990085439647475341860148096638544300741890028110443305186410471860733516023353567489736056958778320186168731399951213491108309051844225768980309102863723709755225898843326256249125920563649146451191172022323915087068545342508216876898774853207477332296765975556078177693087623885736887388338194632001959113255283898920720541245044829908294629166626812522736984116604429039705502133977369410640102927448149437058859115613716703896310945809332665604464390412583850307419285493097510377481771393572351960904404152218665973722108337299219598760395100325270968072038754795190696340848973012920420773712396872623366039909322626625873234922043975636124361819821142911842869022630269892736498923688436369434425400057100012746708398016474406992608658838691265987414304497939329083834628792338827998807173645753604925808615361256632455115067672256366327966275449954386984695102119280002720984318513332754987328281781110067722037362218895918764947732879398790290318200589703129531598422425294639202599183560186738570271085837773662997409902568120684869199045056238868350303396753301593401557389690525954439500745195728544652296385127842404203495403062558741354978944409965249862967860903926362047795310317970892188095682109308725205877089217420483967081302624700242078594870688230398770395101712653023703448742029345263323215429680351475392941200819711008886338506305614531685371768980258738590473613475092835877572633097509331911195195388895791522911456870402796649875425382715642817980263382240823612932881345251926046904487555312179320831976715744836075700959072000923985526778380038347146085236075372613325897685288499835901150807156091941829486890497594592164046930931476221117392481977926553466270798185015789882941625067735762799406342854875792668825775763456020796065588320041205885263061849826511943126773921311010812047653835781573752856033598301053746914331457667457348634800387585256906149550193024107692388163591000362353573969498694575806798943425232481012599900973816779458696444824226393192245139755410834559722951343933795012707872302759492450886987914938416067033570756654918162044013125528112363804194959023252908070037081734483614770841166913541396122928857279319199307460820184266536342369628175296207795658645108379351712336067656726558441041119793751579243777397360807566943741951176619177696003361340605970475379762667468491528131493863203882571355642935820564634033689723944161771167479409494841764709436577665830110345126727048450570348739321450164706293166835402373804481406924336528772079991326741282451714624663415409674190384548738773160737364459993209604769220363010972857505421483585473091350877581441372074799843535840315773221558579665802367217786178054588243093803934924632854529869015999718595327130072194937397674494099080262759654270216874812341508418893205595189931098658664219521177406243972577951407265993563608144258119228996624318203534715345955536252146561826997858167956987465215309841338800951588640045181468836625956553579742010920012836645601511727183695531146318718387618984383216022597912554612843308743267967352792023419589414653787369813300840465503553616149278264012602126021497507691326435366637549912959862745493229773409220864670757459712187920026725143021948300763389500864384068459816226255668378933322273026977766922408040333610362914031160353175738514229995287359713254545147040492210467811088866970549717876980877519001041381333504272242419367981060012260072443685802012002707717983946841236579492956752043374501620267800635318030215937430693573879595460177000881435719060184133054996749457454934899813532746503160370950182199816402575003940579912584799129747095052943644165853981600740461289154094688690872776230634212593797414733405020976280591778079277260243720443506215615761677802387568250444382854050499107584091780607944245639710809687664593437840159423037559040301960223757043004521091848200755619016039399112524965077729807139877508541818475944272918355510786573483086292180454475636773696426904596904471754695325435093800894011653133453987962933611636659605228948872775725450292636445976809597187399945667100033025209034806301072799407397923621112809325130532768070454235845918082011238239666391261997129449902210588179080488294651585861597808877697801001107434367794613634640674382053606161108686584699264174114397082561592578187612908625498047343871178840688600961801066290189249978274231475021280451424540819931235803775690327999757152271564492242243627385949237300998257457974612575447262928918950814059152914132347157756713720042307665223318647331744486837752786966546176320964913167148989080234166828965617660433272306064742615061272699267530733264246218022392374028213392430129087723067029077004464374835646232394343309338471819242829761062638296501128027667056861991189003172301886297123451054463973251338045683690463189111726349943562384371622249614806073512989587327581667791154904190277451834741986365043138724915805715639062341370470198546898300149672618407566779569117860978269880915185463435250496186768190543205632953439165393145423115385779756172624267727609266934581645570086401209610631517040762998867575818323500427974606592702535546368926420572683898888738330063503660554653203849016323860554455671501037161370328341412978458254412493613730340181800385530684744623304043217431648528184669071710807958271067216554099728193483589485669542069907112296282204106484060942629861060659768389811018554636461920641835808019663422557510327516422946838878003715681879907998678555084835990811538590516331774822254337051554421323020306462982673270303067546969461176813229068303985456574937328609923433082904416820025056629172360062456115738809963819946638944719434922336094545851752026359997162740914821876320737571364290567883252998826868383157842936099286616473720856369209254253840084108160519534212738776413745543509020213380513095494260719252488983021703317005689308500282752884947552311387079538628113873161486665493923927157970131575749915484099731473062282659786717008814088382999216363264968163456207040347536983392784134949503227732950837845729710913328414648997463570444209630429772529384792839178606041959079377745952176779887386688612653218464559707697102809858523808582562548368434788582415220870148937789381215806737365062520852678261680414490049028428194084947342624196207158538722575544963609227013359096093926650299773691653343010571773116837538918976676998645275734068394662201804911597726777872085941963354799728183813981110456480568643120767523766330843043639004693219608129575333410065621033038465298489887928626693210535330203470239019616609199054314186567015927565244066244911586055467098262506561447988605850807999738122832614888147325769855167613324466569065745060942948119506778896747064482247264846521989289323649121773057392444104191040523021082634297370341335929840184777627289280503717527996953113044991831641795689588356177130739312894686767992501908722991660204532428664218576931533393126838863802046468090786814861350075790461947282047054181547912189322625077702401721796686996226208202762219615572256940178967078250603627929299495552410446800066760314894042689912838587414618151460415852714124118263110662900994184171623722462446612822229513477625942826197122829487722340584735243115636278801001542037528326088539088222216243735452074640642663944367335500923287001326558481263346401293755217967666321633345115912946709573289236510911033021199201264192465865528335538797713736219977096130853103839462699732910010655276268379000107598861677469289854257934087888426003475679543673608214706070620963062207141799819669283976705931213108422863967131441691392457907023819171342189107184877155636685799711082982281690025825970644698346091222273244739792128110747397819349024546999233624419864022043316294205147429370941437027718613625111045505150557274815074997429589526005751823911811679354484262117983124423007778940078242635808309685622382760337308055192219692356943258149355221271820692724218407194016405741318449608216072992453803834507622281798996254418832758390791710369510516484299368456494279213930838156498506602262858291681177388041531708816257409754518049146458946937521630722854366915731743257606677124478127740901792207728834187100080010153481874888124508920029427864602237710202151353032412099862164737479966035529271324912136456517325948113273717727742731940466941273370525633251845559592907468241024360731632990849266460736112870338023868176520472754686318686276887400008649279130957772045099639689882395006808587725397007475040053438836842251677485689949172915387811560628046579465677376855096578071196738195964211691897311508175327374390624474841820543932985851255614351500701861432427171724618329428548089702713203398160632981216695477201900124075788702293581903402348845780176674233240586997475887778499037550758542405899686875206581566501696304331383482583411550737800311177738893590116449439397381579156095765794296051420904305359947450522456863383975252560353770169453916746278574770300677379445597374144714663697400759063676513525174360340175670458908349133332243575383190234198011851194154870905076350710647593753190309905793900969144156424645941282012616506035363082372554319846766034372593831586625728656958537119959433098333779738443786546519477480479495876783465186278910185834359802730789448861965729997619723909579388254803565701891485185409369325872600346481771578252853632219379517617652899048599261211754051096658148472117600046240961851321752703338473286947782052476926756409198545739369800761995895260902968998081626332217020647817241462155281254162397552062626214961690892426519341497646000315040521390689811193364264798204695952251474507099930421520241980519536292477163641564382955902824858564265266457694694485462747109647964384036657649943573547506035366785315413767476124256506568084488945909107139974522278726843254878265408458678534165697042938735242115626667685054278848179070696802988938172320556720250991989792051023747630059597814204753686283086304327865446790320122003423181248638623654625190347083124426779317030212996876415497865474509814500682130635158666210823544521431126627307191295714577352347786488080102521532784875245279833101312951324784765872833318007142662593400873938021299146464304114483733332347201548289003306258136318723836490514219305770600864947402914225393965411942964590472490629659385283010182093997724996524260137751869591273988642403119508601835424048341630494989195999743743549125732733447326922079637788191078389754413662063090233027410751859600965380874013192176037675842963862828916898770716574005281490760777036586616645831452858304347407665664552323789071988734320429838703792569174565970884321546242018966914385609014552026768598482407070521217675610831645356937022602493631554016843836372956800840886082690463904101921510760063573103945120706989933074121327644123659863676132188556971424130534655468807719935972438407249089577069010866869654174317943299706491790023388097142726966414881230568405677327742896612748681341475037592756856522356717502508267038253987269481759058623500005935876158433430782068561660010941853032380847056741893030145623655472796982797737371965449922647653534058216333584792966279370384485625687810761743302332377018484571239317628339104041138141810790210232952634831111380543138079469059553328263347989799519697824229300250242523646553306264842576894789986366857207910732406043223336381606100592972554910889089242362133944576531390693758390103392363258814788201932804378599515528188753002373503841683487784517503782538189177134510815565352394240789133757757628956697325575272951034082538583303413633139528326219029438088138966803260553649957819697358051810959741854701816097985989897167816515031728533684078298051662149675452516662855230773844886271443786736180031428301723252117815682665965219562280292359398004255086788237552981890718070913632619966548592317797467735643426412631761277402713316028124943924896302299305477818697750808630763875964580704954680667335743257068097039409620671298013044852155675428536283803271920007047860666525395428132177292461289928875605946101843557704737143468992215136419984196302725648652107552044777622103084080384974815234187313784706877479161656830903237104546214978404901614891941485362281027626328424542335275373594173986608766586361700373413896549676279574708239008581799240734124227785801780700359640538520531674781329489018745732946907577629011515299536130634718578808671179750511737947343512430061324990004898750417900183249567215295804931068625791796820740279889874560662556723317528993121498524582961569686462392943322237914348498516218279051744724065450548661169015038402047557115308453870189586948042224090786970505692801421633532553604263572326368254828858729538090937283056652224981149770280289247581676226008439837095598585529065038301239233354197346170913281409225137427280154701747111919096757166791845231388923435386809859784635234017017708146793920766858599031904042989587196320088651494318952580584449789772166875111964831718927977588756412571992929923313183987720438813409309905240108208379123980038300269658632266246864166226989840816624968443626651719091526472039567284682905738538765437240861339322578200386787009882128224383137567370900736281028953339318443913469595499524478511493185404954768925884400470879555483517849921067842691176798597051901700531041812347494338244859031608035414701107818983730911864276409053872246792120339585649025343888151054232464113871647329702869166451423671423146579092116763111335085857627818787630862426850591771387541155062451553326507328430064199239297459513617880128614944381819583491221813138468949456405588164514761952336981349051538757734141272027233206861617351123202114418682825333171482236030164836859889662411343524669219266177962270671860113380224023984397919381937031974672873005944730889629987736943633804237860637753636182488524242720531324531689403050590118206009696372839363464553884985163010445093599421120912355311442919125992007966385539828239140567263600453206552212801884854173639557316536930368818505035990113247136734014044530569474944879010835335306497619252894735838183916167916716909146972215714224253126114308178360341980583906005726053536732133725607279453277360533383478247878591180635919058273649182561560154207359514969383447164234779113444053738916851403608820405993926147568019125364188466414734998165776766490448791576189081880332124952798432539601235695412138179111281699649594821835647862331385895753758175160838032149850910349866967226147594424156845511775486642867477158673664399367311102136880680027409813806709297256035270240841316461619561596236219398548427072824410046416462615322231761614242605971188738381159487607028886557969866392285026338740395148415663304434769409618136236445098402160910842771765309611726012032783726915169421521568984505156669665149758250887143955176291492620548289925248096059212354852825490073825920759484371117602318990329983759050390481698500830789517778737502489234035347183390839749919784989094250566788539220525482533846804498115233058731892354602093447604736171729197583816857922229163185173268766382183599474944860811660419823986315806319144319101477184613725363451638871661463273366724571223954747104348853804266953599642222778023458427029766985975909225703120906279929558574873678093086268208259479714440210875818684500457617256561289606316623929383616332037452772943239362822964145379053575774987626719185140484651254465173558821948868969598385826551466075381599395884514461794991389754433787024490738927586272560601261003198250184009200507313004690216302900049535842422991642645808885684225905931881091854502348906456802982225278635886479338280575205240864997015512092920527155918851654997563605460405254486508483090014654568722781401322507564577642562661677953983510681079317829884445843897140246470038213209200607968939484834516259975538913657564035631466118036162589734343668263418316530107080641182340960472466131618360176896834945057452398236212516781312504376234902529737952128657511999387652686980751042942381388512771605173673543861986449084793915998524891775265326263630855405313992940280100300330562544389453214912365297427674018681611854926421167369661994809416517268756423244601434990295721432565539862137346959754185912417752761784030498991668496632253597430668748444799412800238039373108325486868784258103307280169048201036205080509152149811454097753865226387740667217044758159757590754481922784598221332404141266932887860659368751947162236329642215152602078925907308401197053723489467160851701723796807562348991678157462871593417577470175006091392676343824830632123373260499209839452193864039048846802460348739929903497555969353970288758874948735131369007395481658211797715161054653212538353265437046635234872790349132171252349903887851112978574677406593657710100544671825393792662931398864306358365587254713912892494695843796459286587872964771406904456932168603073868417139357369807992612921448520374992739227494708718879480430566901686617546096114729177308652941061199850703259753215471060742214812807350318965525390408093430922622147682372333514667325740107342924190788958668613528378075949699050095311336399994591428217451281767101541178036150112404320202019324969932513941381062233590983441014451905070175346043494307748442447624934076913360345776077046322642520983880538739434132112295367964458901616660475785522477494761002646061983621782724404531725171458576617576816159693998315709614110099682642952233342012778900101756025929025425668370622653236167148355091142174118983392219659172540938528904542929254518118608612729454871071839067847923241825848104061723582279398889170658876521907538031682762740983813636185959718625264641901752744118207532784494222129453704230122335872524478645786474773127667721351596207747040511584652980338193086410725211185751243549940878355169973484498114467724041591129428413117412435597716776594144130423033487703662006678391721597957628128891245192282123428209689418395433127011781779281357997889871257599856898084039068758106918739454362508280386799050115277646125291468660185767903015130901286337501557487688927507407017782869832928718940578255359052227228571889740974663441183025901835254066458864720005777190798702076745437293904181603524493303000924098621254572014535480434927862073778701201811621221308660239719016685054583447553060293921117853092561047228524133166174681178966788377876138002651253713846866050195166658748359005721352596427654700883807359998253299362664428019489464437595553006874777646023317089461624925634334215488840796092214392734871394699498870509998559419972052070132880213012945566507499569163918475730929581375312363565319125344673055079099449407669594803902946240763443412873728681528421775823011644095713207475592669614606788306372029084803239505900210905949208401387863116600222503798373497730931163955235101641768107086994581591550465195156422061765323780441141344279466981732316762174182350440987911869671311533635792419517791200254483817609683785480126318566139275626327340710662607995224512323334775996147074248077337633527159925790879829009745824491825814034464469948739013451696176806216870580863598549767990913589979728665513825353417778718827864843354649316754118583631940105404928844930900814405570472611640167737500274669475171728237354563298053386895063808009946391947966289730123984857216888093701339004764397722611697200422182440813188601128982618421904590198452253779683598130594779690984324721570657045235456391024420889854452468900111479133729554730003455971876334455031299673978266016435848327916331470343369310001028597972608866132449237424302600700054278590605170376019604725499049915779084890005751680176332056287156092378184536020391146343997567859625520302416769559945294973977090850085433731000772716567998751249997649982675221633125243551518922014445849540903363926475465873083515206733486606334864854009370529475971920875499317705038466731887891097158173035524343179283918452828959097943607832651112633845233711542984982108160406684128480304770315986241173838451717655649173348198230411102277767984057950001267589390097208625137907184059207265295464591958773190071913710187395606332994496537991072173710288288989194933889952531586401226939821917725984918151599593970864636368966506700263367902815697452581905796547846556233830659318674685375480071217266267453574269878902269271270510963186181065369557132046495095196693068400203537285310485225697606111772245320637597354926720555111582939191379909382599048093281696719295859758815581032744820809649288875830750484322969776870802214647844644694584981471584526614802530082768349846471132309313266691414567086038494225980143457588689846035457833574485860118754437350155081367330662257580673255014736473542392687741177606517168693750009700219473196832881037568453720637379745824213437864202905844540861107987782309913478871641957638983743923929662615439188053290230908749624703593454363690642268160660319821326822417447418394724179912154960043158704555434469571784495826479455573211415702630060856279675497282123345613150106272932947624403265583955032847673719893252568458611950841623407877746471225709850326573912934335946389690257084324289013228563594915913438924088084849351221622148727357360103688484490722078768701298990209055665072987236612721189452304715386558798153806857929486950505917755570291694942097706944924746629972400019965715286123431284742671403818744816221222634048006478733577631247122279289967796751303249439035732209630169878040316398413903010815925951155476492371350823384589067681874147811078171566499391612381630965643930123478943255379494437959407655677659868846557046452122638348591040128218562250970089882787210548082835639314361936806817168231635450630727610046132471899631944396308548322260534634619538574968860254968786235515211585218701660318658823612144144481291369523910355989656847966497648511256174672874855007959484435453036796346712489509432815154240547589281832793581212620511948167183751873576882749684675258882417909337163799367248602030540144504964650167338283141840011727287220572681609583945889851623930633549846861719050708080028438411536651201067720090928992455622191789330276821728145286005812149079724008194111960950686402738000462887704429707794144355899054469931551381393504308304545203132356591589824964671083666714357495922164571010348849995684100748314503707283602309025235540242164515267687397199451107183282276837894990397284664649244820130022702276009704876281102992458795173908303878258528980810761365482523098446833383135473838749640619246472921546868579472035971345193408091899329917736761501659144889257967509039166265273513147917980860537561178289546101724442500458173656208513228086391013561436290447439572372340147074727148231532129173271183685802364915285133508230953556852844718814762112787802980366443615737798921772086620225288971887688343244341489181057698582653076769380876227799982256281087591544859590940666438489315828719663314570653410552185312593990423655563615521201812458680121247287415512717613710840872086531700324726706914170361588244033183995237669519843230734261698761705314270675485344016293232264754776128315155986525719032046496990106226892379531482962948446084835514947373403526440570798133441494896248316177296481610119081124264365364646564065772540193087261916062475575888609417268775165111970870500686340709487911571756739631295041481507736715860354386745554240122629023655361196364866565479940950549213961056518868745868186016173709792568333933421093979733889009101902546563021234228631776240926014764252534148998700939102962349385255290758864322552594020681355024795628870009469300623672840017501647901505115984445821100994458153534358077360673377782658227059252663692931701052039323387399913794694157482252962964296772666214923718242399981247536153545130179789936765822032622682406419285882812731026515244318796558056637105886004383889200546507152721125038063715593790393762224051368039591816275048077343697827393066109708372080694586591163925540893897878427677618039957450740293516571563011401456451966748343042484347695288133279234958634051265571758244176564646256706109616137073820518966444817780618814756303029845090955441000488578226057446959090398931656923543798084880624981096872898468678889430537117097649660896890883700618863903419652996217931137264099292082449388147691760649835615677462889615464828141912876783837854555677403595622173711638988158690434513717335860776908277123264715321188617599364981092051407754457471320904683459812574501658442109017235309129035429679544876525865732829191006976737663604054461288504438968729655718204208012359016668772627077380411141353008758088686607570326184696236179225073899282171855048181322422842840018046436054693845385736130843267130981028580903757230339589588597291113984727786141847040059075978773891526839765221168313360574992228375141072975768643045236789409367974904917729227706614517347218339427043349251101467686424883536578701485650886356330435933301356933827216624208694000855287330618661754239362611606554394173239740955996936579393290628617549022221896038381422748082919103066885518080053489084464069488851942868860866437030631722906243924587938045126813382781119999959899251488344472488721413962820885688210149343711541027976516506927885197477866441874980806426176297896129020862381136237075871841984390162109321989873036885512019271357958247321006210870528142709670101199731952784460726508576395369271427857800540334589686778831676164570825793070299037050196004878309686299408807288367012031212767445547198811554284435314290792096666572105268977626011567119019253324105596049842837968328013554440218192277258768269453138590267840003318092668143502938873961510524885247106155244488395594678502784774986658315852854125549062454180629158513160150223112567960713272764841251544639149841180882210672088420134941627707022421522229941249815019150182402851209423853495881746344047568250642841872736550380474724650671651875161840442573238179602652580726326928148724724042374728917041495001642743428368133448157899466309336253804882884774876244373006661819134284309856968443221015171355747976169585504204980775518035957073271282725470855819734043963580940907235871155826355948376697526759525719687236046027378213608230693099359668076754998116587299496325492073199060516798543467562632625435910996684622281614671516667895930965637074003271408755837945249879071812694353476206848419460321616741691810009847951276285663797156296702601041525998737709145928840019674531046834357938033157460872562915159650906888873133948283111096054141315345315893095944717133511923311883935448123271278979600160354623077816736311276258498284552372283220246898919938561367702524841393913917898040961721974043557793166173861415190731055927356628827157026737407764364172362544424790115156419732069508975641198951660276151936541816448365725499835827140258955387474844942666171533675283484325340434001368458615212702791453351471495483644376208327874638111740150811401492851234526048523678339868755950644248793054889920261281987764218549116447867506851196355511055851498328684778691221346562080991863172028704916597116979025626084575163341236039091646810054541719743198001185581236819975448333377996195820962274147911985754144483886593711183986038058532686432027041067382197076397356889263292353059649596391139438546507330039162994434358836580507221069097674010174107441160468862067907195585614671153541239966270542362742852304116061608360548031675329841759110212916254025103859532211692423107074970706976591945589316154000086879771268575713558957695059672300037851037309502060111732561279118860256841520978830954803061805089623935067485353209118151262221090336256268814658859758963940004848909668464159104558724872793410991763030722313501160963871717051479428514869897752643062660580463610303415398298831610035134399307723155101484223651081593275848032354738211886144197318165131917700924446139160332720430362912626640424270086866037105953187815182699364755115263338484721808701874846392554007869907854073307357082986781958092756258549551198353561761629248368083540154465526692749912532967652506301208089154154710641452543400431185870220393161708218959417868862607072030210066302751230012281033167329064422107334100824014161254602721307225576944108279050797414371944450008581557123119265010693855340182551793826093836596196603242949459359358118575673547649066295996883390103507920447608242581917112773269266337383102429031051448087893129748080799040942273951801448199455383245273011256905930607097591254419284036091423673744729841293094512575770516639206722149211612227873162248557994949014412576881144629669172889165664784739777653641527784066720783169457830599003331101854578195655180038323952443180559172655021260283810285110900339613970640612850700669424261643297423251379276215349575779366211722394437750560940242689515148184446114321929060890463444879008904135767438008621571448856799366881173405505090580766901399887042320273496566790549388609045950948116634200564912600350512888250825922324327607382141062847229167566882144151172577042883027504130413107378490394015695561374679427404861763429227994848123108710295166579171682404437557340457463447260641243526382291081660820561343917120025086133163344694811267508936350866092259980248730306032696024408542684621344790689869449056325515231856337386293633141241401562402690495169364239693980634320753906129417588388250439331680944150579680434534988977332466052861131457823019515802486732698634971548961802826083755783499480847074047778950586914189060195229255119501284972109461232690280196990584838330574717845429412639977358517299327513016546889719097552189658057112402900912970025389322189696609885111786207798931818758831180020815519514582639255772905721614209636444335027883388633506825839077950076990414276214910417115423293459257710480282307149659333038242884949054441996644917236428956198038861836393400250767618877948341927368586285157231477954438623530868202476733825724069950342729228175692445035031336175143300803711571553655814415848916958886240788291350424273598252614581088307154645085175129040509161363708614930057085895308321374013231172731656338004100977150872564381095326476289046065661460962859783634483569748774028064722612284352368984362361514906112938105527936748459634856743760723963672889174410390472163121359192801864458676182533671890491255768307524178341168260137839065705279893864951432374468343291475703968852802330812154574735680773392170786223292287269199632308522878578564631208156743017080591854357777853367131002654549199372629672982298321308604898842285904954599144210505835145419420027671174508324747482102653907107580035978686627460696818963162140829612384513381927909614690591843669889019172893824954361125239908432000522892784686679562733003067064839206660739316558160831799069172221682030073780766351975875946269594010077380600226669502962634719371439868040371677859117340302146759009345164864864751840402448594224284471810963755301425967127909889493585848356760616081303924256980428854051471400847891717599542812243913631197601441478375123695947659264543046417997388500315640890864156014281021155058986622849895211286190624999600302398726090021443904449727290401294493403131703971853198178259170962216291958886864463541210342020144521837483672305815817455329486478101017626024632240108869852062827598734984748549433553086779472033906099263244417635738730791857472679010931673183850161039073499683044591285968800892391615309680649500263375010844233375468162975138164660849111136890084627018893793743527883402460073639752556095758687241289452250114428376203995518930923442809796515875213872215328711982068033202867739478213133462745931902841421174892057114228317668581453665030930285148515256914264717364149219845421212855476900039074387346582629796281665196528600635192013800016089526270499150530563113482343231263944542313878386786255326928343407059554279272052942922875242626393950356050941898877593729619729549797895953520392674889264447156157513497323936950626967099021371284697566237184482369629365270814921439031101608677937891104670192062272248994246313760899547460037547520896638863340198165324683738165351158044858624298636750417438331393539402022047037669994919165808935974063562581985516166730721923301709092766744973919586050609856960497053417789663445548811556227546384906988850449553117492175062993533860782879438594059607972978467514923399729321994586085809927228581276241339753430356417817760422214116361450631782096569692071204366788465531954858584422577551607394257250562592350022433120366623856601318284592100278766392912684094545436627889147553017551730417693815618135328918390141824964871830827952766333492978695558236456881043571611807543280793357892462498509188332780398169873672741902208984496335180054863539743708215804180368210960261879215407396737748737308428804631317246328185975967120766524547111902551666126016042379049811880088205079784331509586309529193178887751180337312037177652101527647967089097795875835443682789541952295223630552356344105709733189760383813753970810409360179524418859590762984858585365975955861962756579666688975521502224991910417943500636065737835544255062005209341299461459802172882613061075186259559053188826026207960274018447889420020532383857916809487190431913367884049503656909575004351594331462257975769318321973767357480111343718364056056889599904282089698935609831743662931453297986583195051663013941647165675922674084128487538374349935510309703549391005467668339749821821115038636766441232164516947911604084974979987264469627249791233189482000842960362916695665082023793189212104070140282403478344754601374925862871702835719499742720796645021028784833310233598952526763443954234812360635396877793467019895060275107889745277096605531896855555840885204884163043161123210150436679428323879727240282521543511764039839567972955824087488030344421566522648699301553218959152720897571368630513556988562877525514804344774793934982506732186931402653478565041707612024484757696380949688080219794076358006994486393351314053524943048361667588519472664393288102704124221477661199162538562081808628010554969022375003389354226713850003279657218176561809240371802946331191299121176216583819323186173453125401794658579709100297725607461099145401363397043122726486310487441184724213661715982935610687260934505374978214127864972444465220503874250415742062035798129739402550518042348337992305705928032794667811779898897612290862603058720395131905292165397999392474530390766525392318630580349378026772186579122805164775780418612711349446937273666266680644069961789970594530075436048416375371770791546268435322815174979721988063306363363623760491290113071966003195431292149930958036572377325634591444457657911615904244326962056034116912331739002808192692303415373768895468243138218998465868288238368418951457115344680780208680853649741423575416714358374420017586812260752227495402665568088767809519713546999960319696461894947650246438015269377196569359997563734287818093816214476271222523383264437311822125335948502083749052776912484692620812094609604608536000082238558880117081421826013866952368304747522447031429247840856634673710284221463275953738450816666250337273415338013013999397595300183796169789747572197115667354927138717147833900165354028638445309026031066615973947444412059946027424318434898380057818725312260946111734735325724549755497687004371361542765133786232938321634587013724525875579426793978182630610310869397133318468754244746969861124050564213634155994767797499496547946892720154443394001398151740729944329781505025121987587717934118118710407530521375260670620413790908271086499728314877363938998881321989351577175867007806238441978787985365301025449214305635367526185309992645795874582829728563473859500888575586935344261404676674460709770545715872568418039821654044981929479614855485930061316972802680494944530212633026837345918628547634779618183333234414786419020865464643616664748370416390320506436666079388581024401038835149000529419503660900306306125203070577235407445723018771982464741793769769087070463312214409068133396275114467273912149098101613740468304763317163689063080425652545630888888325545760971477544602353696634979750630865881312112101632973108642108455210631841055486382478180616806346447496394396392228593858861279217130321270419063785457483887260937503062047590557752187752852530969402393317416292275937109988704079904409390561157227703973251236989708857411184494131049968237192830893490220890944155732077388422821950394758785925007735815539894765561804738542620817124639971819317969271619060199317826914843158333546153595608604586487846135589244600361125818114595101437225970276314285896738035011926661899020443179527886161432575328996763626026888061434006020544633141435791016142339859073726249181077996215514887540136532527148026098254499315451158501046932295232372670683944108344912307047897125086478862320931416665891032072111887224311943299831368825403751610159675694557878407736939108150695664039717821684500871295503779823251672889410494189218301913503791495662292793171818464083757845735814265425656719836215759197785268479424134089645394217548661847464416862444804873454864582620405893148667042185062491570663546225846585969421838245037274522513821371564086594987436213089126894755362048557092820496310719034611751323367967013653277150453767817503661809115856296845125285532429421849681911452286417762147004743414021230864823257301092511366115622673106563601456290506162021124864335368779005574466275121791568540092591461355057572879388651742145483489918826500807896835730750192310714341195289024729290806458761737561646936503119843771903637931771114259807211454081190276752210057162967617407266282041887557617694798269835784246766790732519697086732875162661789948344515481376788532523038389895485877432373761877815507615885075672314593134457436799032769618573952083026489609887533970644714392749879597500459634065378172704182131009959662105957086222173065479995693985197551289325534357900388685733055803743275861990089714950058534281138393926476737253599837890893916813022166715739968849840580767940106346354068657807886605382479129185696334458503943711097048012817482489816967667963953223299728319451341373016819945661802681921154145116106049243039760790460037809211867039968929489054570672018949965666583035379921997425801912767692063626798054714837244785719642624523263129649793102153645051552044808845828577956886924442052747755951562307574616092111057039971459384468949851262525629641988991866295729643446094613836637970453804163468462940994768492253239698391895582206660589263969394253855908273456083001060625330158933759604164378759809878430754595028780246707235165569230968231150777512655661170915405210006825224755964995682612124289028740741398951347236947473190831687571710614478717244834448406696130578006126968891905684240711769225983269685380886675746240078067431739101554633858495054250556239295745441356254852507384363700440841588220697152174173927387905505720383154012660112231410844479853745647289865149221284200592827883695501924574071331406829436020173937432024706600255630936179419700408742119010436478774888453416976525784986797468931758045115423411528172107596889058742679565556220181600482209967180560527014249564417415593816902295077945877597825190204609703949273977744714019130932375055303274554932837511724911666710218057869384536513127533461032774763496197202237556445604495355141590949887289723109947440909834408503399198106390008801987285357967911148945745147643950890314454478439726527827289564210770867181787028718516646673212261483459614753207673770386754382763668855462218334021906176008046617446243413854620396377664157889984583766506141685674774978548112024499872678739574645505674327224791229999678945221669369714978629596885419888377638592494806641167441122486602994158240342466555160452980797892858766346195438787882859659879636560603247741087441002838271037700281433512685527118677242544875979763905021749618165580113121038083985235145416050284250039009851187337143668502974923837407402417598253322353604657851158287493730412509461731179053968697115865532014975033611675256113020105709455798095948168143041098546329023682422889969968385526257914256891258688771924002006686135280420269068579450888293965723889481764603346582472950411888562316972385882391647136451498966392723910429012886242751569307431844845971219089277194703950023638164020679028164539669515457718027589877448892848694145620085869859394654435908127762380016470563051979838113338316620063251892244148867625041864182989539635558418713325419125228723271128504881005515119923717829108547349192697767531608981886091288759270294030266596312074388171527644161760646770269606219576112985734414964109318444077877079185136262940943605853170063389305566578560260019706915814017655520932995568700286773994463272120297725520003300765785630744762871676956669752469730516926219460601950796879129865141364887903856666055416717396917555383132924934292394391511593939896464503628029799994302274963036555382252233048504807134352076389839564982281816480714556043802838083697071236340476387014109777718697236472532910184873534797694746081099505676738548457506294349769356727023009587242813707651874883472090917432583219539375892283090064878604497667717699293873682799548059109731416108870870035057431174639313309942038677087618428999791130791718755767350312864102353328657429824912859997112926153078763814948165143235545459305650115235527792681439818618367245926689215246666382447585865565334430683107596216042987490780088360274719020895531451178289394889149858723440183143523930115690285832394788911854479270270338442845518677921171360536676528184862207094078851675368951043440758762096849694212661299900493261684861483852605601865071749264809390855192878010250577855756532192076715744300000880208851261788130332739779470606780468716850590621975683434331886152674820850792655087631001737041594393970650395748354778684394879553772189037339336606434942189655115458584847741136725974136123863696132021525824564734005718006682413196460297227081400714523370172162684624847866775985333604757734040863305610174731355256331221526483136414156997240166202047965489177856419912034416987828281026327993431822926096997675762712639562428458779453618673886187317000205514537422516935724473825656530372100195797956453376106871363278732159400423493667887596835877117181058033080898364211887301655572111180221049170593458636443650169181332292631682955489106968976917391582539787675957341995977346005199001422523367772151958811735335530865485553086714784803906745611268090188454182205980976999071451313073920978493155895111574953952970582093010840053395208495060955339216964942498422184782133024530127316840654281191615111604851192256818653742578412036034199953139191128656913748422577780365675598471757638613200287488437633364911863039432233483747073715617966680702431950901093187262562673638548944949874307168242698724126372573080032324085181469774731307390602688533902328456852051565850371918087051408881950168388716634009060768980685891199765747614334559255504528243251715143646983965502222319408415577475536446966660119619423784531616064803041648850973600492612683979334297995165883413290373306259399433959327436694691635789958601062819574576599870478198434836404470786445875226135275579569751536032404487398552363743152879668023074651901585298558290811013913341072676022005606519692602344990427023949775871116583574201359754113663565818861477413289344368504685004773259083001982508260123698631182796802818082049319967095001099742642429404266482609638933463130208709075173483354532018057956541511938110141978316721608659189994341082288414125480317784604662458118976940725224026643932338589969740423387742958479332187630599712994752531287746415155464143176166233902790052786895398654615169770141053288901080024802359635320207816407210802116641570792482101471241509829944406390255213965044723035527332055743166463514245274924318028030534836868588890167506338375339535698656344645833656051213323434157706512226538066005495285587710075539377861630093966310174897260282420026202902595388470788555799480298082927170085936433874451159797380173637674436607485367949286097884739820740987533578925275961625486223442119551264204339918068558990451839208734712763844256557418982954162240070560215374613027871925565405263403987619519524660399296691754803625319620912898583846550374525426066925584455715027507628546389755620786117677626578282124555229570045144289745970988318985715623196001004810915549162045341623030986937801601142978476047975712984900074870830729904000150574882371519024102906648199254163824242035737349679712972600982889263166367808930074231620519328850696703943897867094638673470803080388461529411179025226586086272078921568677955155381387034152314613359649568570804039254166834480590169924964439040833607001696430796317572814161908566986292997629140974479078188392719439989976651713632110404059016465608688576694071127653168207659656465565784863412980579180285581952802020989143085015706601123007835675984507946632023433004138687102125464359582620608852344033195544948943708651606517689933249409973348418412464886570900577847854077559727448076493472431678420237290290096013738127294490891394163540057947932016480631669551938425195932076139336604537033431203644953770312371292482706093788220250042486346796435386646473420274505372677812593268888907955105716034815741442883662930543054329778632426524646949042372182321653884422279915016705250744596443773477547269785621328994559934525940163175406260571649128407677069927936038085945031971514851041004741765657781590490541132409067502715034085067697863496356164384292237024818669005286329471299356272359440660060209885063451739672662199359668915183767978983274390869589957610978242352328077611182751987116038719914000459164331373651891870372773498803923084240188089567031862866225002518126182192460206614593690046307245162920281029298762194662486337326572488009458648632729874970101468741361172707721763600062537675094389756245677286055699511770673195230297931738049152762893410608580460532094947621249371137212582806012511936887065547930721048106149586236116445622161069652391762107679614225685266467902362281761680496906622630321352456590942627579188456985681427141046844035076615833011712010982616665702518033126432897493399782777802345521708573570494190737004915371195999917037183172453402893760081691720030915097470967334267924111604978322967429722814339518342928924435433158712002789682924623061916774301147077581738660041705475853312195739852240078332094460654280990811373079517009355931038341561021151415145590865399242134403428636650820866633710813286430253207690406507296147025479985576907547864471999947563288966933111796377009868931658922597261868311121707177125617725143758450154000928061216133543366593525054369504597757428467921241708895459967305679019755334948052620142167308644409137802551502806374185789503767332824306205250615269364670058509366074147295941472111163723959420498348122095442532512902777864454750206610736252841594648770190626199086698020672556517914275965027686332814925372407715116312132892229115912784724973821230688175109223429783721079279835341542423948599554610271539844463481257234632422226655021217454285369158102924703901193923517101682591831649654741199118480357792017168236518335939044693713920979124705787962339323754342788634264981314034002132889851148619774612137756684077878278329067506005265330823379637834218031289950812576214055726826214782322690372113418580815001874302218695671260036704516257719799752147423352017586404788462342049844032036424847794386053067342744668458455443637771091000004433026916677746317972728127706752379576614109392939997063024543992662351435657607899715750733593477322318517721225372313903383949132101510530034396668486811499781662934195532402351002517577044433408425860274210849083932026162922972836989047514095502271103476224795369097439535701655447476986006681046586156148376806708836297230165282531185209094396905750140613045861881149792794495701790790585966877726565524206917709692077371340539208729871631538578284443255289250197894307415589866350427518021480703194398481251572796055760211088032312310147739569233504611737742641683778808409040569326036241930896486697646890407020356784076707946991012541513177442817478408331789382850891670152576680390458718731411927686146568925864547138272903939201683702033446988467724884307682877571158365321607625847275492611526815755060452730961606324186566025134431728168734160800044626794247418235069513655523081662313648319763838558367944174204016041829384090966681813946486217319582532484244587087505363278019647937150689725127988512537788037129895011474102736654134782586746499333606149771188101718430095106013560115173130407118712675586879523822954945802235135485831836491233665876896574109228868217983547150983991595494036165051333369696042780728725475358344587608746940268854853640185899780533898351627684294724549871607381655705312163451541123625162975298735460577460481051896012421025696309369212457460073080422866232401626889183809809824745512116108719220161436646452174084999463172775932745725037622469394659276531838779486462672545606680983965016117749472348338374679807996821123242942494750987062383607710267479884476161975217676367144616109845032241017516162341786311588771500669371890135427879559649065537448193749048318828621469084173213437511030902481007155592467038248817778401676873272738403309008510846267529645072121081632939403260164524505077763222030623987383052770220983149739660379869113735913499775686332230280878392148737115386734794118410290287655794996495056392246969553176702524917771604547990567715812324308593742605042447288701970112484794877103319080143133557494756610624480145368170708049380577844989142081961601342021336143100779129025373427392594120317490518162640101773435650083297643111154967820921540769794777463710200442824846051785522359241541793374704508497322276407996375630321572789634629211154171335425460010709283001475478962376563465632769702819405419635098190678256435652509246958847689790119817633088467510102410036574882692125978368918528943169030867283272411844965173804783605232009288941951498832041978598083994725342883982266291612745762210542458742826343760816314349805745274720164598754152136147402397530027530297538758003714703274376876331488196572957485188022998480934353211988024446585481337578362172212704093676049786556554920694652540536057519856722796700319450043588604255048220660230381767730294309885266357286168326139134203722567615230005416614158405335462104205764078536635611747671450756781492554697469368763718664878293561940430092555758979920952302508512668569528010243665097400026323216934955417704530952767420562518989230189708259341694240266387202962344229752104292613668242176484430828931611041200387133492596426903425079077207415354897176423296397645823972594162497582426619386409728628721960514835931962189462546893752223454364261234827784007218998058969652784122737394378128118298290891782443472929468858637849084544574368061379807500356821393095302358695465088197309572256964435630994992862963736687663483225109548522642039450236391855993028745718294627324921669673931880675731583086375917865954642134143340720930904490557287193712452983241727625292857260467553038894821396458111274060717977642736683843668038275222773176388185394571216884915943718374886903148085807040504146764495840692133910459695105755889977284518137840773549879095975314401945263551895624838492983006274613005218701350061614569159485987842864497086645188074971075858287948342611899046373120786323407386334630895452772127527199492639444453393590657073781684195536562945245120901565455679653436629147129349113140858455364982253006220862723087584025698604240282151857955242198734451641315345960825988122425994882623557266229276932683879280068553812963810782311731576628600447038952992425211898715460865588814820317641843872314474957529675209388642230034118016507290063730380101861929608675143888595592267723961058400902400895577178381342630142928771064048453084026810093338222830125937346700379314509581312462889729365556845212829793331306883462432961819691486285533774703360717830232933474052275291808400776031801694707026815148680874455667842835217976695526364836974653866541777904576533503336297311243456498355273083836692759962249006600124023446896803133524610822518102670163657284011502518319121491499199434745127270331603643457192740000120226408173347664210235210872794608849219069425481205517547715172461525215699457948984277132508678996555550702820685827566793094479196212959670327125607696766589306636864307760772399187435278394637793786463455933448076302477031428609249744063627716408910881828619476553547018270608321890801002027095398453757166098697734212998083186112544631404886697339129751767433115744614326445779817789490551069849435001409518023791279498777853642943780338166484902053046403434539253392868942613640773513214463225974889918431668429079337686109002013057191141922546168002508396313626863534232882282560254383773463630892861748696952119024431827365460360134587693614601717685593607062836767121412176987279562874746703557696268920214792293759008939277624648575223566703372931683704333517103952349051143497599055434653061616826503142574230805078981857435658467034817271829156285675200631985069537161455239592772258285509666041576700243186676062775259057490561032082493357423977236967878458737754081871717537647208819011010853653686521410486802316610343796557527077000791222691600061016468259647308386337683388194576418058874488723324112533842471184720386697751951233405475212127261924417858363419646180567431997354775107063965614479748493050945207328285127163498317305547831006205248814813980486637088151752917839676844479331820265500945256698583846122246789950944380203167067368518750419426806099474720859850615105506121658912468166765576381421859877977445271010204313435744482068087362157452062511383954578289945061515790709864648949696271502058928148968493467747939542956308067164431919560802153075650889094920571019514356570337336228114482399565945064574938098535416888866694575985001857703512164983750705769187811117307246661253799027461648098990588973679864822991971483504324529584425130455336268525800362064552531771011748281786097738577675928558587807950759514414259501905999347290523166618370408760722747240457268220999396692467477687429216455989378975704416316282769712016631621845617561160452738630962653137492902006009494704963380139263665993926935309000886885966923717125667136623479415042452877910729196090815494896392410144529592181632726113163458290935308432270736255838853714655143815268468941950800695422263374726537867501512051112802485583758820335328598013471797226620641298780381649892170928939839563984420479007069591087684741998781063459972548246953309079707839612496350678520550371573283999199930009049986580374228079978741311280322174678237205440297588117528711762321377137834791823955721383382101748224914187093401281512026249459475672472681283726430312548541311077251605436843184563507071169123051394947006682916462766903004117776936442025380556247002472550732549789430596072771012670752600499158021281490691844572791476651068769717654787685587002000712715317436357293154338795388264557431845182966916081824356629530606580680739808599695378796033937163205550966621631492054113902126905330646769314838583724985170342366753352586656966250628268097863975200260720153880323769507807368162474343268739884970670006707476259042371920017216825242287356249478994104988684037353005839141730865338676752284840937909967084077068592522616448580287713591716821233053589188740590813707437007556015596644258452131062175975659744498290250465171070110877516146379864593077417617621856326019995680370698244699220113906941649525231362507741000040374632000472696339446885789159545393414385571152051979171038597514303601631880275565984304236400311161482102401263026277333583664205878632937685352496905038051379622369164767811576081697961859799988551277706154120824654314167176998737742688378755572411707441692872530226214148786507938687965785263422140054159007429475540166128498247767969308014188252510374415912849169009548982835631486751594096638087548631211627603187753567118194938669730667115404536132474112768635393240075488224112518011855990896110382185635730920943522046312963183343384694805997160131356237192240334905340586882785934515371527990430019766208755396593852574216741794921317982005202231256777200897012534586745783079211341219081959694053291080205180396260404244170228529359809761302224150737366267269702698770922442793005657031990562384494965232301183500102342473260943315097449821862729308834953284802637574916922519655447441617560671731344634428761709470058000491247329947469694826113845497722852148677683118357695874863340985802458355041968136715040415968724365055397942007409089650034242539177950579030857810568461047441159412746517904188234421149840987614302705081879207244871423326843407349155827135989066275689581309742052038863827167507319469431687285417152479815067787897481684857130910409055056523227560844027963617728179100540584546719596648085974495489422423869643517228349289622326958637402708746150176927214501713069447229934485504222389766619232859397490745167905167282424140179650713380812533061176551666529610931223756886920255842794353411908066932713461798279275937328472741772414008894321231773075954270631461472861675950631912436234665011432987782794807869970418847050720002300284807344946466056597989199690604488966146220899598115705722412836571640392856304395762405127421934109558948903565846978457040271618558265568013000427352250117108280437300982456235750763111632621769622940369196369092503597070454825431419619810462293535736124604699090515718855388087992400941516720575828013795384642281570208887367721864816910315226364333849575402398753086253695330474925459796036574192255653606025371890649759953037809453559462456417554126864195632827013928515730289552026970996478059729296879415626368247590073827419611452894672047231127231409079912183239279462420278387973193141845796262628539976201534762316762652596742545319620405875593910148317437348680495069541080507239299731740380651207763450939378513166202978071830446169495704302862659005441466018844098224554071961667915391720048988406897144502953671634888822643220537366022986867951011918633388046656431790911563879811258909729143070326022723137537321782737252464040999490777302595118890806061715925684790577300501622276939237818791172715970097786564560685839952418442035548312420592732305422415298624777944315447789493729373509814426743193221930565462349195190552818934595469875417024376765941296132058124020279232156584650195453340016868678555616569517576166998546027169174376158070884619904637145126693972271530601370802969175550703999789478444927172300173912692161625460398601066539712616647106533215159139598617817734556877869835175807847487005296474244749275005205453992174775766943823643139975416816049071233548436664369429810420793791324290904472483996503790697549424687690582660719360187275491085014036126556281132703561799807869734815784880525275615586079691358088407908588950064192523584510644210706336979686642391487644920270145056657394423170644199666119568390129424890133611055118830614080254585378268301570549355426335003545264311845671904889192168522750460429130967831581764471194485607932277596029987050548542807790237166704134777730907470398689980376071013665020634989897262994507241464243396668472106961253042457039038710513367242238422992601080117984021473967474565571789813823325226005415779019064102827368008150385562335512258407693781327105343844823263600777502604624120969823734079607298898537906855105245304160341007599527880875563604430807941120723854721907006344064101726659493439730485602220826515189901208229789675736735296357823552725675452258934175896658074687018576502702925203361124939046082370767553554198167208806315564040982429486532959008511812777077658772044411519241215197964120551436884445386626172520140781672905972912905037750424406772187207020944720359166565869863614683213411698566253368657933506176661893102431047563092923012524702630985098368426802541138674250917483347084736712255971565427025856773573737943939749909003660954149588152240950120298583607536630707028706804290113162089298300297850977403874763547923239312896019863642325270362228143774213773231243724304713710823804529756157382303434226870883092182990022562147913314740481575640926670064105492325036175368805564801331088654537222207562000922538364230782272216925876188398905635922583240961823005499158065056002551441920862656975863783649844258429020220993247673009729945356555040447881295947589121865883851346646683758393881971312509231175221398126358694417343931047671585963743134713281628676836316380611520695839760529827887958853335734228397486940558091131289897017128530703357517922264193725580949492935735157935301955489547493241380367789322205034108137620873845901651080733155304727403642470298555411792910565001360140639226214288661365319597965767510452173351132706719363839975867171444516378267784359254761432019832464581591540310154600813249261899137345234175467309280371482198739781460912748126278999445061821623291125909267079695755680813285288162609306329325746052656219312820829332072239686822521121245438125423895301110628897181062700736412650419421742411347996848110704972093773930071047547481241062899724337250766200465992314147450326219866916362598325065423071623008512691956710276686749872033503660579569929332640930603676409829460363970733238302904178887461093404187022270400182724457576610940381385166772347675587173814144654912645746689561593909093701281120237266440315703931616947249466322814584465486454719864991064819424731473392399747637112347301580684934017758674970707849767330210001786067784731774776394176460333736151642422817654320768498755188732983561072866335834728418538599025894778958173271397325117267634220551853999394621936035284110929168020464381508294734217901525210543964880863346060221844138223076135384851904702375025652596680428750288844621668746316547879076235159046120175112090094964971836964868424124942157111659850817419413319661672059651477200772916602393098868901392870301656762375741681605465140763388072252514448283684004155334233797975455590521315406821455193481714490598250319137937432479261841689700415328502120116918664952406762189359877930684373047900257196084748483813518300158730519053837139516424312177119437289254511135872587183986813423182207248313822732752035915782238533057960990489709750790255346647690642829169782854146573965192014313104994306582820475735335707854080197643700719031241422231756906461395805818150931914853400073672458590339340439950809856710627487554147003644129582334590966896363692973360729963122781346771185521199789965316666779392673686177368136005947812471165579041336625320785028753938453526654426840139501947025514559149470835364910495779209881932543670964232392846803491843400654634492561511116651716848802133287568618628380550944214916701955791246926957576971317965816646384447672559927313774653283067701648008989162871992518291034611514059827179568775525152683734753345903581759540946896794630532709514427899457470514301218778805826427425258609348010008947505690453652515012438754558262655295604670909472105961365619034944860156737412343726004683372384356623034257074862887570109791826532386752077469440572781696148376557874739317639131818176663068304960366201162982229677289914177094480777898194799387294047396564412847302343204998026543258488657329438766523128075861873647141426496441218988763886509554851358957360976005545183832228929767089666095582173695647114837421395430549395976177695704174877272164945839452211188723946626739848590517404035492746527205915193230761932573686116331680392149994548464288353774734068262654699430535481318840694447751877708765669231192127882551816537808361184402293415188207300677232253754109933982340223629373337624522003675759026313517753807022738726902052484174394313676466441835498377694524892693236619949893355676909257466048716359163640936709663031404217167558324829884520859630184485087081127188272999823595588478437830237864017212048775077501738139119066388157590494599886445304519793269399436383833312364825703079753814054984946413801782716623540349489556735685174069567214014028765227672083631390108179671693424518100775482871030968785842724119567469638775463387630960871823806381711160378373802604802680299869084229101705717326659538673449340188476806264757832292666737000584723072063652276781099269222753796857001382596249705933732143058353133498301380241390872894457938820856445798884402330149747367434968827604704448937164567315273305382549443734607685841570566491798368375732455380031033228798366806855508895049380782944125421171042106016513094461776417789673277972782900794534256904053501119211494741386202203305423483407810108727504816967414428115355739027034602377849057557585051396973237156260841340710300100386143033580682231529027112951528997532360628382357320992270673400862176972998355677636217333756059973698072405166869236955705596708736031772529098787904490714086612476514713241987148069744703639995833654514346814175200846546740814554035868447657993799471471746471850320041470479804947927383790847740761894933141483408864189268748946053872006420469900386093551805213710721532925245472915295423752155823640293109231743741315885448864911799276114458683123005144350382907014532053347672636934530689982310202546504295237914883549673025710961850852363523583634444412780327233104605766868555489535080331709942476555869442536482692051897213742591401125358682647497437156109201743664269411682311165595389459920957037811856153852469932600041598082507081413762879620784482572023159703539855053607416195383523884859649871703195635524992742325072855083668674558480957335721151087756941633001163641968629012385072935645010816084414277752571924221663187919470913919987226527352570895349030169331318659617489122547685029661506532939077892329785446235909430914327550470194689330867594207675116148011053571706017550653133820699043094528341272335496167481502337233636667002543781343039088355757068289665345583554541819316158933614188408518895699349814426565842050593436396890959250044843029005191946676683785057918231037546166941799787745998864022676332619232264259528932337434689375197814186567548135998574033099343806354282192073514107812301158148636270174325211699420866665465120422023714403356888617804150025638671011985391189754083944636122745965936231964889775712157150546817036827974882866013648765941701439166195453715755195580791498845406790831572461826350744310041424891754605821801216825975776931421662108312747160666944954817210116576875589970056959655720427291974021318991247555805800147421187777861247211916974100492415243506033317737755766779844802325654128084908757981196125010421973708272405344811267869135973495384077048514547631466919618375513322072533306765378112864816130346009832801156403388889516409878557827993923069124987810146625000427848940817723917473147144977328628508802159423045408617200573686127838440188267821269622363340129070014864546238290610488985552965911878492966310739378852171692894917477371559144911768877984293426150850046564883804277254090271522381026837340201619196393701450094016734860481546932089056199731915369925057380579067536936906123798949640696038844129309342159087940689221885278023493451746934762458977556850619713191607137156610414669618931504001954453945014310194515571968499153983820832500079796458569808157250188363660047000227153828398946830293048683247656858048598145999695993266415380588118246953161974983238174648967833946170706855458299973265767395375573727131313083639234380315009138540451294322768671434127065276202172817735742349893982662224365239451764416063251160415451268650891357732765273053069453536584327879795523328890659836811423354720251084726909071695421816253587990519116868537223599523522434093243770690265353041518668918371848419497841690413860920157781962048650332713453134088502006713196638693202226768735591197418535928025553508265994322414808013116995849454107892050359072645132204420056158470916845894148196151155799605641713733045801057741416510506160252112442175944750856665986861062725100366353421914158731810783372058374729786176687212242972434004096092798296229080775681382354005029727274830252102554852171692700794343648004476831537814074396265896126721072777918459216631160624776488764835470928682185954908733360004775648796827734671085567582302383011279822267488997801862338040187397884460428075746785437401003382865605185999210333446430437783762230856975481299616661007081711492899281933367628706768543809096879541901674460858167897765636451498828144192620518609064456486134727459286171434758463547463397916496601504120781510298820611777331826814500586085938247394259070852482800607084521282358102184285314459839117967014633783626637753996038250765649424405065625405526764850234238590118174252804096648340716259557852372369517300991904750724546120023108896949528924780365676840435079802181514542077884343111529280317159735047819828520843143251707782314497480678721952639145369013611836296174992605760408457568642171629640691126680556040942805404432900900781913821588744976813482832013711432403990014242939840169411174674448116901628758846384856963582811342433167748118540698390465100419468554706000912079209328248732128449421668384070601210807894310750696076607469389916691672593106623204107333156242100592382742111675489498055535777966290363278684385526539458799393238698287638928223342117775408791459813095524180522441352624109624316362836523241659742758814776511556729744280163967844811424715207883557674063177078578445582109613929324503092662512444812273251296006301456126566399217965424835513862441395516351188028844943104652514109687975175320700822116404431082565174153260096249906651065830963207204777386583505215815885900982657695678117305983510720080215293261851257616489258213031424883850010911294738455669737920411513042121742395452620303822129456465224469685663520294667081452507955318194063374487295223154920682716562939643117626806271897284215185587631838023981066140831293240809990385517077719027874701296529616996753028326700717902134019248659891975550896599446197128520529207571475924093175465304693746934207531133186151669191390417798740343883125092146149545761984039593932952252187245430303822294334860665625417756106248235550969554956299432900942711166311913232398278615331905188133240629045893394028723251038953503711935979365024486415666169072296726664033628486100975754041460821011925333227815918083699200225177302481090357330310931284219451000140138245389512624710731911657493295248578960941006632548762259056464839814846643009958207267754635126186073994446044775948571483189603187602265258616498010329526685698427550449043544019737028301100088798866842269002286215348370420220441714613801393043338004253516321255869103347975458277753207668439142333899556578608294834816046307747907778725567159440680407997203725724682246677730582742477399066456747321082327449462716242492430259107344963224050730745782350880431700291770427458126543572706812717376746658442280809618485873946892640227013715602962395662618043306416791991581562500356792447179247792837429254989299813438544021355095309704884651079522885317545055605107721549377011124318041165123065684007150003641872579062072012907744492896612172060008261993607935934091025343166846031510250789979653179094947763085410571551886461294136780875641457314529088220128120085794713761197920601441921547383656861378597231443039756245836640701066273330208285837571430904790721720807738392385384388131658593994006718546525717882147672903510701528007030542467866758278217540983487819369304650063944152523221128492063946442919000566667798320442494739011037141247672535488716297587883298006428274958379753002010058137387472863598353440870181072906887792496297934341385465925825899946193953445101053391386190917123775580890021778770032566939273337116750818324466773997446347012093174970099830396761718436519935703186800304990050498663624516843825102443519154905886856628599989061188753503744892358875107294211341730242804742219028867234102137403655341083781650750674406708615075140797317006888643067305700005216054194932919979654893821411424868488231563060022967095692915770827007409883805601010714553044086300061101534142399886614362819698648059388617440383920329364554200489706685161819676215306323701721650011414354067503661400070811649024528697149509863117183174146672707683928947544104375808088772677607069456042005272639906886872507021776532967041079826373910396615237181973513380854567497185824103462414265757201252869522348635741616513021941526319815070453435055517059460971741326169799986325950116284731238348938307751317976233743630419833799759922215168782079115429552686005287067334102724168581704555603139256970435829917813415890291253763109385666233702184416158023966028055386086200525582366179863325484601699948996088165951191197385626797268288950771315891432633673431325251652906806072264018563337147576413267522144313579675493783800252786175128648709134909500022787299810184013454476889496791039764908526432472148104650759739421035828658854126881453258655814693972184669415268280541838565692725326016215248770607728879819079072151199134154081398113481123551513769888245199331694738329998010064573895019028511633700055844731853992103778213074569016528392127703585602500493959807308767353378569131053305980750533428721950866336098749491631771062877260624957742499372806866858649908407497937809426029017000705831538504561450583255289815329731343521479336671365308560597625386129050628501260146532991615123582476061368389583075237310482180806400045175716009563020575046587101430500387679570332487118832456855704541498532820193664738325981857557854337068496038815607586205064219100068184596582751192704401896188428330509176985526183464862992551754611247863145570674808148764477600202985971658704172134593342985046478270840604341205516019451676592698287424834318263980957974382085280543543858771152969007348018927128905958405817971524136051578031695397807417912163611102526705640107015993610389826651057555655766317866325249817860488297878776869001856337616280839043967392817845052719265602463290615374087921770411090420675004898603693285354664628636871604441402947132221805084297822367072489495806269525623953326548074270171506102985142875144047115943668110228808773603567247711183512930631776953483897742811042859813991522947916939345658793759759680514568130512802493002223923781702414941702084561739412415914204539435337692340861719990354870277116623115382293916750205877938544556014224489470549482981198538969974160278854628321986250213852378664540726225386179410888192289016640836444101387404679762505736069474723115447876117523743944040610488880140833020178835769861499929147652879340771234226385463599665777005806099388494716926910148001123718982376953906268278179772637017691126767249872436491935429406069438702468700590985453530945725345572421591594686965993061018633590414832909475198153212522705622767510933627397448470163818024217858031305827318603881183724551316043133735955842088747433481938354563249966117917030036931758101909700906881770083646593966068163411253133514805828000263482390308772918994438875804772287110535527092232039634996434492141514701933298470646379658773844486229501221680498975654766837424308965071092392562028055196716428210268174382884266068331084585023316404647001070728130247425706500693278486984527434385883275246107744984740301178306601558421706775061694169793066767628211041123269290793011530641667488828210545327900809314694155700257496908701732669129341161766890502596866152667135687856346481693575499192906407046542819384196285070914952028958709223078132203590807473179775296305797995946231744910885119240852417874921816571727819480250396299187262258738173636586112770134147816870482156881691708688861426758506739417309237064172225940138547898446599903677148730785305555872592655018226009650439109834993241325991630655298053912218586677827475950144932242673768055291683974029169242265483082937138090125515286359464204147616023656993574694956774400562974529800131225033015312220078735891475310330172770774219355725261802748762353932351955348767569225916063982545290901081100826427434926728517386357677025581735915135565436670694697545358378571023829468403760906161005934482910308482877592148198028827978610689229330883714696980513105688059575040436953362799980363344101446540313052701111240514486272141546172300382567311354243911164624724158052461398867705445877654314754259648366062366619075135645129132442937501420542280748208257456975154873501077560534926142542201483680075796893641881660489729851477818048536490247423615359002755033153092209797537068214311394169185404773735263486448778405122586438255002995293698307116916902168822240850014039063856942542946440086185480201629608564222481421048687475013146758178420822880372584160139783599345825370165252081867652604751886245560808477330076878718661184640014241908145133144757758111397479969708690452153306903740924588127775139579169245608725325196685029318255771325431725247965738975599670114152305402911366219986567402438812106062954363602221224598173789575929972634233809566622121695609549081273730945674739228243145111718802942358953693487330487256278702890593886827004310162006125039920621015713499111145949306761137711401095619765687232572919213796188769312439637459352650999767471469579705021771993280939890742181081480679421683092557259127023281232009432111185310755040618363699468804453566515964361447295486473024846088572624380217298504152219041992777340458837443832769737649272241518707838482200180443882716091019947252762058219750365318062553900186031677167980960508578608328389725267338165250633797545048491807412756450918529567508871732101885273965505010824732205025002580300011325961271948223935867422464700630769505473362005229701737602655091962568206272479762635390518278690133914014455159855772750256822581618658361420543010627190302570665614815502763645750872675769036180476721805695281694947485717927914561906903139516432190101834152111522654763805151592592288789623424073873837775863191522754126855377527774585092604591205788222634125763612179677871805213794740002730698575129073439323402776406918454553494366485450985451294169019121949947575198949376506270922475134772836284722454407903515477985001967013316566010714457882146485294539388842608060801387087473778620258372821204567001514006554681558796430501252436282248936986181737050901457416876970853506386915049449705264248576311401052031671243856468154859789658203868087268884458551060667193867636850601088617031489477684382588115458218407526551412846020451259270870099622698181345618146114382850662208800245999210432744066426672752610720243375475931765944656662132246763977470378908904720675962454984515305515464363926498195123489607394140163484694964463416751966950024527822233935272677883193048094020557953522009725667870359548170568855632842392086112208313395477860424296617438249458025979372244185140210188522490194783822545665319785839401233597465661241507525215563459966350216101604533691960863093870750210865150546237019545856446647755777259932034374908636069998377144790180385613634602325577411334500032869739682885389179619101699113704822353489725295009925280284682978451784652565522468372773149627808579987744885508236923745433896120294491607609960162130383464717304273144393128383857653351148657246874494471343659261757051533721971248210193891080588845867957635256770412377882498936612294426858378891986557863484313804582849310685046033647883763293863488257175136831552676117141764303442102100770972579925050656422010407179833129963950003892361801797520587471092330783628955164815313977361297211585397645729892733149204400927108899323467578832288438201471136916071346959816480753183879563719552190908927514824376961723282776279718453688340864647042549565211746305709002678972189529309949370390032731002827445961802956756905688217705453374791277070972179131405584533510459862827062245379519892857712251049366044490732509732465224984001076849926837246150235030206978498811615704784194112934103486840995523368560552036339813039801170791038209624891569373304623539545874931749756351921343135617669786925228428984702352151462596349426047878677742301968264407912089503251435182036530869598768663000903248490555305381416148063794476750998352555517528737356817267758501598979531415058427027003675855647319942436763037064149221296004076257586378918300876927720749679343929335626268525129167122409145486105248626921602228519811950128834838691808678653965062313105359205798152359682516460008941614177349337658105688051172818822679426094322344104672370109614433707740188415840234890247344163834124080441592289200215979576314978023531416194294024022312299818282804478085127583830720975758388869188591531752119858793265696429546717983756798197511627547732478722890351363632706177342272412895621212266909539229443914310309652408232838313893652867921266703321322352320293328918348422419399929895588262600936780338716133827273358291082439585976461485823038022553782658872231506261514962353907782935236905312736858156389151611962714363077885597812371786381330202023315151096869716527775145838761891905607959599546350207096974397934847527624688470716614666065276299561381396569112534303668727413196091708047185731355249664233158850615551239844461466816545394853184543505035817693208848537151206757619830403007673924979476748061962070004676695013561277405073556751503315525051235606147908833826131156799075613261203438154925418322192799303826733411702448544057547286209154198851737949189384332047699743507063642029913107271854029984665641001639907463131054253718989339981405452094974742710713343684000630293985839013389181740936263292610496338155607104181059048174436564073024027504516645719122774631102968924816445978064456619315625339394916690346770569337307942754484601368309273765580224122282535975127331771305850921858897004694080786509599397218826669998125270688472226803253226326416852529581184936901557201530720292018352000662529745569115533375502197107422819006810608758885968833227957943789848808585530851821540924270483801760087548360292098414699062250857365229265508356363318942463018582629733843632311775110040284194093880524345451776826907646982117310929766297474811249302952866794838537073290654107499102723354324871927073837503287072507248153181154142461559713690640459800110135874557234808536689101223798900925080734646854949286141899797324622986345191535260170650312176372993740861494780398170479852881672035399035773151278175072573501892668883428614785639095502922140168833521630995483004852960333589304592596913592419807626608287653303700805618591328522679239724726317534946940576569334704204638795168618775096850209001454655823941964215299692490783082998388643203856810949470980412559610069165002262395005766023630587092217394084358859845213631818487843563568983014516931086988116769504704051706164341692354819823542591426199417188752598936255731320651502938866612767677288144112585378211089059862545524638414501218271507010184123415714814098094654030696524381751974459897666336784964202754557201521833634982846875318411963157810579891381059292080986071999139335907962604482913727058798147878016072004130236379705648313971563901324139274938669356858243838662314408432830126266106128101691613652651328302577588982068699566446950344384213038611440868433122786046460111528834428145666435225867310609262758911077802120133696900497854804566618651699394002362999921424377113650766869669453972175372958464157061510914517780212867441428317617141127975539151233075299926190865811738895810377302419455947916663603322893829256842619761125606358074033414725176698006289330917901607488157723687578636600320976113494748356215391081596950251533158555322089310249163251647061175603598470536203529171145980824493538533167149574971662680106472073416277344486529307452409339758583919875023068128730441319565955006294875491760482581201453703373772255169403070855546604129777562712767709244577031502724515045363868447539252137497519697911473839767633953185701927846795543986950620953921107222634769684730288468031421849696296214425323611546323649940165545997410682955315222158393534318426594857158084519460407031742410749795725362693542087010643780091419331188864968591741108031187024684901230211184870615901455495509419416207954083308244609260380528166232680899617260115199842328967211789920457553206658024158209795962697120033314258979528627474214818955333754097646117915785349721135157480420053295865887548661677604729854250130291475635840245367799381472488720653168667092307561354318121832202858565302019899157113808231498375492872980908813576303697479164634839606792794592675228444410430984819101558918523908378498104218557794264603906712958867012419323003686609161295940063652451271174709809583832625260447507815667427489140399722908906589360496384673512263044668643834168008351710369684783139614058518935123088026595951269303997044541009471913239529505574103086646093606985901762362617348015530555835061968581106857472951797525410956450894060657039705222505296961031581191670387410283197494598680127489262105473510307246104139447992823208846590425127963315158254870621623554454137369331155612911878799568731530855487557666420469732078375200919764159428454366568721227679928362010148741920426079737210159258593520452847936996163511638202755946282408841703501643310738095102231620317923474116168694041986617899083831347346024763395313886681892963114716296168937479096240556727425323264475010836169404889033738481348860715733861244688783871324853188444316337198976504908722308065888475115602873343221610925810452524744295832016812499000940524212035694177203184169323510107965912155794760050090929557842831200987633441066852450806543322365164210297444050941520221696505304665996479224714764506129331226882144125685995619556756688391341125971920343709331117201129554082097342500726632619233421401356984280324341668671806619890202676429735194631932320392732309319222198635610496060208006565654830932934293019223903807707225046166046207537912990172194864353566935356922700784603575577064385446389203639028419111321746609948258676855494107031708897528698669949735906983237980385557838869119287444283708123740803082900495725261180217258214619214602080351584564330846690382014867226810226803792713333831989366636249427202715187839874022697152076006646680157373064722606422034040296885184113875179137745651271380794198561299058029788811825869007294794836234905155407264217990907512545773974770053731253057679543007316327639466239443717223396611593092206318527097068430515918048460460624377946858556667054088644415541988541382922818879469315028160395280307739789370918721846953240295930331964836042343168845589353117921795975010906843716509518753704818341474616777757020115393658299304369922148627230938622156797126067296306425826998558685589772157059758197966421192429061730005613971354436705010727065765652731282624362754471766509254599603721462041350669967589779661743271079421260582349006236836939226360136013532618829864507358940828987987121148606225158522833415213344271353066305151405093062052703725422726447657688488147673133983851429078872158138756590614999641726715099193172037727066565149225752086408866713862692402555195156799300554296402928054691872945216197666880090111114560979186622555380967089301026820165458127322198836189354529131632346864400630249185325428845454660337472767806441312131246677336542955424154032626793377894441943935429536059229994575273567442277803445776062617742889799779971779948591192630232432463827878616237374370988134630090120005300302681690529325702276915955650923225395308298977251678633851244901655682317084946808680971901536695514015929974402283904336028325470797410211950955715901335890937376090742264244435501059496140503348088715910991557974121527245198744222331050357315105783209143815443737410459877783511372932541617241925452201326526651065136810353274296441221600360344957113705178897354112575871861833264809999366996818907094468718105965673523873419339132302956768021762284951498322371134238544977192514568802833987307997479374092279415942262107904690757748204552364668118441825298230563758280858886755450635884196222532268837225836866411492202054813708460091601409806872833545555182100569977664102378957910290185250006240299797826380997250671560829164510125655586215384866730658662857351477389336347827806795965040306478519759998738367118793218972199208770295282855885211700971657361529696671324011774574460691352905857886744010950864591049094952110853858038979271376903384718041450927036342632217493462978430318233878481438994922560371347546745500424691364387536244825581998462630965440509354009008644009139385989872420253207419473796808975048676452008723687780088036342530523495129868246797013095219009284355439574944148916047282237376581898780705134457150497967185764625605582077496917305086312238883825474189299648601979401052361000698066204732879297060460834854615834867222325516413814875578404949723665757992611167576757460256627033404472427150135322188805951333701433791318004099215000698744685907339813079816585924152142645540587356503694104368510134079187302574424527186854351272860707334573028257378713275983797213907414434801615752390975812363258208488830644407141626401850674112042248348198630084113182248737390790321301836406846613038888708581916403752777791167284544320123671470920177082910284637810422326393873899503971109006670269060609888344379861563349069359087714953244370434010478354486208206269572412147417538817350858593858839054657369513158789350828656789986598269260058878491443455802140655026074885851088695277267069403671730905763554494518673903076305633125184038538028409854862951250738717385730013302992871665398800050899317993779257730442508148730036796709021207485876092655799364863624193568336774301040004286384668324874551628899312082252230724908450477106514693765348373960168456020811531235533734885017394199219675862917038473455448224397812278354357425946284472678945502903700737275808179169645672644243006611080467753563663238183451382000137719312396407937655669865924752922755843878778673502515452667750058089974233623075682827659774270002748310206870799177443790757895484500004549299836710560988656663878821373307639340726586739229591290994859840149569370991413280015846397544937992402511414102738751915192391694270197716335020198337817773694518569024036579970205234891012146554471083417318123575507377993367637537590104455467335422436616757145876494830171326808261322996123508429347069210650558655095579175236624755590545860700275728488198475926701284381781749851208599611252751361655206462873885335719264510807211269976902811919874455215311367531138162208174977126048490275364967853439654237166111545022236570913005979289692116684178119498324543212135689530720844737429832438861401220543479590855994011509124936469668968582597479289602768777511760903314381267649933555760509064281650239130265006075346441153629747902758370178150157514633130531506537393897567114991123460686796830460767953486814939485204724458572496544424612606476559357751331632887062392200975930292067880246085132016033739853874237863211675854216492445779722204597849883445986075651680498108190501165170675866969002506593393078333652640484206951736309357887838406979236641250893253266982878705824009492927687279307194509633547249309490426251541293280142212662667877272400648291812347155882599572980694785880895092064105700670794077217913467937896856171043229022927077697574798721390418141441917929819848761273830582361821921233130019970166348576969251379034842468129554578722123617728355065310376091464376911683414602033506827869939800185084010932548548291238637592882399979397351177944272343782998308022434887505870889048808194012145627362329179455061505447515252036559800423734798678612668245345053445686523174671591890265263523271173182347867984771793672562336196876962653034225588440656590697579887785132262547711661905184911990754324093906901884358157278155830626077117605167274611751668050542588325310739353080024495532535085522229347252116725585635026620137581721555741416201650440326708208850662928825464052348235746556557728262458331850955282686210524861224087165250062353037205795548238038741372769776401563881712521241799491381123674303944929319941599220421065269189438359278358642326491880456064598883235974496141752209715269466484463531379295543796164176653915493399279540083120248609983872673992316167665673639018390607278634867329637522862745426958561767566205654913651470124331311078754078756919919376359180591723185337009012066507720902368805359656450693971067190057913869146656046700547289845844341465604650239640541573223106310438605230726307896822127779437596144655922035743289047843005277706287092791763240321022998665003249339428941283912135002116787439856680643899206515454389983839703926414709171814319188911706802680575836029209849261894093750074384235378460855882762040601074891870152090460711042376575755601863553209377153343054308274403606066823494415955278089817111279740305141401906112573993452505744556238923676908970472621171472012999099397631734781387532833495967355148900539672057655691021571234627606505697073343730738325761226764645614768615829422043413315340852805400286014500185339047304824888296358500303898990531128212479793229979346859207655739534072388182821246603411016856742833382120387994828653063762930791215865102169209518291596023315697021753265531382219136915901480907254212658817534485060695572611538716771132526276080351008158189482557547205135913661417406360494271165988976179092820140721005941454492734332075961996230042090696371274149597976245649949774104512125936623830932073426842947328625553155657169722796148723242424261506673698131632057698192973348755394314960920071235870861553976071436536079206407513993716750599865253011075947457103274129900217900605450624960023934611424378721058591359505095007065668809355013769834178168523874409884136093863506991984837010919336365977010708080227253364744389343597582778300860074362236215276432690648016944516842369248577125136899570747086389966847967778092494630449469275187193147364146215520123012887043533000454058720371944243983781362500608693098841557250514309835502527527251521291152724826988270213728066812757426059001315014974063915100576316926371316992420953705395725245221693061309980391785270445989954762431313138299697792640707464885736957688834730078632029409992379479927402635456402887356048514721622425151177003666671812268306506925477363796503799808346846127755296809245174167026017272344964307103763845009307504078892977912105669390274155803715456587241791936609533859496005843468516765301925936402661640828322376944348976875625023850617322931544679058438672610631952728391593344833842292022527454272338090496510065170730699878117772141692248336166343804741805414738241762747192540533970819639406974092828411504178700207395806991002544716885522194677751164365311571306169609542500640353641300452206164074365709203967165894083825064008625972464548465259802728878169261118384985136032373779701942698645189234458688636666159411470252051802637508708744659882634145762330330279609493395282774661260672825392900716567791503273427863529995827441434430279047676644250132986075619282204864271056668719148188715900571889709035419919076190716087441117573214754144050487760157445845792207089216683852024824694468068568127435119367793574871406969577007032194078946980822394895494375436155522865700333318472418642101857430393756576573887489340352453984521229000369048477899868940402647867351204278402669834109534951273512293743424223606246177040002461643117645972473096658288701232439991730785047830278986939737696089588629717963727385109162284098683546413805341212914496664127115069364967358917684717409437586360117199027636520296506183687005892899980758131183356100197963360787359115485668167540231644452625525471410839337757035253594641424580004894846722388114332518981263124027095388570521116630404392582358603560116071020774345328180463455433822166727362449592112675369676229481756803263721782842883456868835505510001308386818531215277739453739817638180027813965848846255340040640186826107407954167605317011463540656520527588058635277031292212978887457469463223113976402253713740177943549487976637274947735869739833728145391109995222782364986727609044136839780191341280081982738578434387462466315344805074103853079870586188401857824138670231014995663427525990656567420950738474038692088066266735656384816191198824190882518567804100874404245633322545092314671697445809661048743001884108999761239848149973361070992729068570465463871301997907858630815778157362159240870227914479459452445829999014420142122855601333395839445866942277724165265915070916269252224267895047956597626094746485061815803139154700459697044727635497205604887763486736988172165671561717549670722826401315903167448405424676731664110626862207379188129870197367160263699918311875994516347771479756202221775636208269935791783622762497418471223875800038828105658820054560646151191343048034957040497328398409470144658134996209760229669195262496755516918195732574954727873897576859043834146441792394631790364125339566649698789758970248062944423170462660844564636487544301827517760719034184351363637668042828115562800904304016278210619427605578351069598719699797746248002395539507160157652131300475483410320170476939487191546800788178052671726469779935367832123760381218951514223753599730745434319547430858028026460989424945117118231127138447645917201127459122693986600118386221334450831999401040609678960658714771662427081082667452872046406677594679063965073499351733506881024263992304513823822534076645638637254097567173957436051666197208404925273436682253445086155212118623058784946258812448869990409038410073182299793865602249792660556839873968123262191786925962769789680895141235537090226553737042590038403068245941366545525629718043305985863854809395575056048724327509958183972875166460541544984008999034036057949702351153515132482634265670778097229532453277794143945380619247504431903915353691215334005325171210356857389172931890096406169714879545067101258186575402250343719991686025542796874273345165951796555738947977061099816879694554656444169578168530049701644648510610758931162132894324603115829923939083245464752832261844308446106482270992930920184525092316041757861169960572610902815514251584962982325722519440845422013749818126277488953713763936459171887482987203032406894602405409957111278452809399820812734583848838422810708545313628754822930743113733252438814274877835396792677367638206525811586327455611677291149047375812974364970707069079449888597360072300522283906809626290948956891990690352144058381620384883299093168589317598582157019023378419863249593802371728187711827139576666698252508074784423572809306527118259982121279023557341023550384216624127669582511565938342885137235254681008941028801075770699124919301583496948866832557023658222332480928893147634781428020715421322491853275852493447378090801003330005309593041314639124642879751376883775522521702241630661435655263246433428689012147956729147240519733723340453026572658749629224608763149225103191926389827851677107756703074370543244470867761446586972851503565180057903080780569347119681871068683312217541486096448453849412650760529133946987149975860149476594991819587711587842521347870416229444884273625945559200557655011678339568490270987548936759792734235666628835259763761322899980894456410539881946304998256573137664060856425157168047182196718652659274008249619437358726141168501540128140125559703306775623925249925876080401816042647405543547150633920752219327908307762940955719046854630446760004787262485195808259701579000821836788294599202455593992110260643468462795592860469253289416455814413640149994806889367855990674332508052545030441860491333137369847992280270106583684527132781129279632486114377781189438187896581619361447320914249697241364936360178265240865107213059041811239782188807370932926850724235225048483461685166493150978775582423858975747186732458792652757975766407234561597742850757452756657749418225579608707630573175397576469545227260113010334581380698854905488989554284072540130824069623045713141720886588274139389059518447153304718207183909569196978375358784789452888599051811485708061815516043155471358466007685000417323562535543213448385247031807078731751443199125151482477219708598312321977958266960127695087335371714924377511196776542110849488977352561595736220428319444797732120459404649990942260008237624855981368111545427931303130432272770937196633735693682199099998465450672237586155553225578413122477340870517681899368493018883668634220037584558398707390594561822622115359603819077131439665774347734384813669338355682633254691533892111197225838637411494913680233975020101452659449741756417613629762862044128578275953404408037391581376848487663546574831187450629720585800669569830937014976727277141232270620375745803561252789504491507335131592528395945891258774374337899317234172643494667757445323660640825979680629678449325271263222349266891022212585112674063640781828750523159090970331908091310761968463051090346374863596560947843709096433086639061227915501330300950682610491600414626470725107141438237175967196324351548626243119876944935506705368855696296904827604275850167475062565315463303089316730558174648258170438267309719640925271695473396898417641738263839417910662235159140515361698871730507145463710273357004443465963451254921375766101144085748815307344614882217633299567209768550146823824224752657598695875101830872573779171223994638170145911381187420139013260692081676397903590558796817613388279427374974164251754089959303677634535753157619512508357380072436005743145881017639495651805624145488278412670385056546701564726470744700681256497898164990672945024472228895028175147929151911346482099905469102236315011862872533419007511526485727051799697265711781778258592519375072342507305343620858590409186835627537138959663950067896957343984183616151399733394358473041445580719691800274961560729297102741412968741177276367589990101285648069385974885059761375562372670716554567902638296962866524417880461449146395907448673283900717509931107247537202452968474170799181156454875964963560249709566722040805531582944820822017341372491934820748367978728464712618018701524734651382660817645937772182240327720357037533758757131116715961456750979061463742421687771223871589035868111564379278243210636466445616758335759380944876670481662179887265350282509619760553340567134895000460147756241067616598750068151668755727241258750743498951739381358559264232356434466217073055523544218952401871898335185584598297880958758481570846649770517611596818132805593129775942299040186262231619304948956721034391497796657190846445698828143037003377325606304835528296440877121551096331558909835046095908597662144818651278242249405673329143689566872593666635466625961452719191045590142677805297531674699518343541743741737818384105181938153540938522057727224289067411897829182271736603601742269123883437241430059900130263967164525739698758793712667945127848567420827093792051957625145934159569649064123430468506445347190136012516151068322206218291261446322534297243656229400322194258188593685385066651135625051046581177739189336698062237335683040128461092090279940735291364119575942540522962017315716919725866915382848026979514871047031096650004438312350858982242323292213805436995461800647678135071189347728811969528920515834365196399098567394826026092223856265593481180511566923152805169796176232796382323563945338798798115586267261395856408433227000886851721605839882770990099056566543126176188084143698326998674600021828195761123512156055912302809707337187575769405466437356487646570639799072298353153217746105902122629958146067874433792697987158040052635694675366384595824175055866004799205176925218052840937785494678120166499604438808261305754762284665809518759071457146725421386882144588434366150512360178202026280839867265755175449587268288675820895527971687620060153413542411950240346316618540884200100774485456212907966738392503791628220318880538087157163404594941608709579135210362471360578042521205300341646019153880704687296770795551013546869441817475135647405692047369139022170047773505144114062153260868276110917150704989687688238062871681012505177719805909846597809396678468537971058051424547994221524478276589577675936464694731204601324440153265674371861641702632770517510024745552136766875528883138190172201030492194892875056529491849704813803388249324981221234293744756850022666487428720472935259399575452041342899258567526800741190618936983473512208279392617946331014217826961018129922346285928852566462942261486417745020559662337299724326493982762070242941550727984253573649164999807025988578718627923649302390368600589263985123209419632038610810353532856089602100471615400491650489818761347702446401794902819646554687552419107235875689937642000859199992116230284035199398857759809999858591308527955562717208960731199894639470620764226141609664076930018840434842462297480036251391103046874523536495462865645450706269440896893893577996089966597403609589809782305567440407213234224020716752834536834410511616192014033913708492456894993628623059531617863629050295824127662060941575704899351137491435936921007843729668001277098186221636255496026348313993701591093088623342330878931969599560595169248660980930662948850090119249074989743865335773701352659307605827626405240722215438702678679496279836492742196383418647748684530832101108671313784552852770722437097415721593951944501983917680746095671421111822438505821196685939536941845639872945069899372208315191752895851290443517683663355951500634506026470577621232965139182724583502686662156085172166339532972757483195199700768163513016910286824779508946759399290316343119275934715206519985677383232395269316563044323994410566579656289940523339020175009687150990062138774513206617373966334021252648485046518954374186331543150967147900474194920194973278081481471189688055589290738621342106117078678729246794699988101501853208694599097196465488465812630637490402449957032037214449006487437154919356504597427207078102227626541158048991794134779298749348762766871280907120457570005313300149585973661708118846463128880439288021076150846871888505721738084077364363075109340942210569097677892102809323446118294937007290295833085403949611900711572998131695692057533437082927670646293904718698606473894738530034678446449855763572956285041881480350482723527988966029318377037916055586286034543408007386638767066982591626289932220234867856965218972846599028441129178454558399442182612186364591491973642510463583848591041195621081743318261008038370406590134462584382534296788255438902884851232539419454032331361749425207563753601506268233804970791445174107616377561839597929385279096163810955595546909298588704447245659917435397234191063518889702588638424705313311711338559652079878352819739915940369553798183097182184428413531396809518620498315573925779965514405240613510834966821761962340824461556560461974155366801153607293686884117052124538239334833385862292534569189018459955883866923896034966582107210277647247520377489025400037121340934412391106706035096014632054856745830117672965166258947422668384929682420780125395486612610943176859330476691922558693138770386134354594357107573106742370824705792410036102555011633228105079230844110350091485888010270403394750786337259897418613929548672607737319373574098153944403277526617931058321194662694598698389157592498064517950647500710586039561371501914518348217940214119651067401070672958402617855206456808998367138592724314599735212527469929705097494388223199145981495344082734014271871111376747553757247749069325757840543160782777731375764002361286357636372126573522107789334285436826035327178318331790068493388646996075609174622783862299220486290472286977979524207438183057928750600445341752182959286706802947260185243918115447047105674595897603431756287652383343442194275598818610588582370640558003434106788333296537192176164495098629385587307709355226418851476421606396476663973753783210480651261809233396346629699983546785723070131025581192597249330470075038817346615719947865598512330456720880195421560917091200148152295699172647587893914081294143325938479092285940338863044506050446380018204418061226251892274293921888190888289797382067804754820662514897460876389464441642555499232141032969566774816791922075586359449107722530175817819440622568279765172734739895447177684354422982639202531574302030961940923677856978915033530798424487197900019608425442022770987930282981414357748739989917347176712866261739761326455809747283560204882681780750700843315859545766756463136985618262670479180766532674776476719916811168545917709262271040884339696761639179703688843427515072964330822357922564233096774837206049814006996566732962942125591319097596887122738731479251914969174746745461787616065956421809044365599333155487555576991124109580581485229590332833371725065018830179998914628246171589133913515605329210596118657145906940026565409778225818303367326653005871485669758066683440261495122169311136907597809847792670275306420824769364064043161954408639412016724778664521043985679780930005930485224233189629890471533551179277652410588742368270997394845284397712669174099616570444684143867271708296215072910364062051767404675398445225808090491898337055891545964226319875331363134844918961302224284234824150738790938000328223240841536717812035766033755811304674694431881883635846552637163355375074239967337974625998258784080965111788594677938610137806122605099648271566216286184704408040642112418451097828429858026940516144774023509521428132898056996279313395215850045400062992895859541140182395246534583184217658454230863685296411336279571536747379803591071864111780764405600124802797673709468433666951719092009482074600908721384951115262338694078672154136450729990545387268004905296506634020321127028443982739216952460873459316783740718128869032005712986664052757370845550541926377947438642117748879885789585245561615281745617626504059580983620189893740609100997867559389946953375259219700446490045783131230846627655464583610814875890053227373764895689019339877251017191347366956511281607549358655728366262311832145649331938088945632339617890381640384495440731927615970234563577057976217588977363035362268279785304668884195533568642983447409919074454363611315116088738650904346928303679029920810952896775202854537974933349087492250143480426254793677229275685639152669946526247096434413815467695320027020965891058556549165369822367225575402054949560892008867503505727700214961675410947959743328701742054803424464160662345832367378526494042996705253049729244675500503061713394998344840963708118483728544948631633950395788801479657779277680865810182537335608008572457913736756927102692642469931918855323842822456379969741532824481323872657217573988312992943866163620239899723308895707175347217636922650736655724364092282274812544933278746114363170699432142525926245045588569402358701393014756426352134295212183531831850262674849058161743975718499399641417258805447451319269469778159527649963770826410513347545096193955227972663627347777020951510124945849593285350703113003258150438737462090193783497263794798923060498015040218735921223867626157483305384465857336321782188382333583374728946338537160941191989816878009510267867305398019681345178835941360306275526257391698943881485917245457403566970710731160199097470281380018218951739127790015405855009004260924124180130664932491730602932569440074417746206426019161924958468751408488107620336440893276688634869322422643723645225964361325220094157257240608601770879409746516540362096860783789999649633271245804755260858675642472006431113870995228657594739933555034356815843470156217367534188158321347005692993694842158641373239456504699079321499877274672897678659741154272844852163734358874051849745457186684568298572414906781647470093849256778069137641591719801359701633389240746227155535677315002232415869989953719968039686169986489953741279410279240301731865283993169381534938683885307274348115013486748737028802546813880913247400538254996101527313473087197848869251354750640131327640526694919962011839715775827911526171246021895130743023338303324764069207985793664457368719444883382009393612729365059834322335156379919940466275287453518807419106509873193673059951015813630756508413615747481930173862051908719190009253018591276976058066176913765206006270646388503884348925834833196590174904931839783999170949665598325763115914344083472681941532785694352913356731202072892962149621047820202833051332354233219146191328624947299262061611128439474150015874848517716458634852643133943099495471335642298085239723256780375461446585524122452499472104268395672472580652648148901423921046542210171986172174728048638164300690011160965364990255838926400042394007795250596449820442856890104209316537390216090734886531259651060890462035101187791771816508387048708475637666709346758079785642596906845951791597478386420939188894924201938390657737488293289676723784020311543619731334479235402705037100861525905485409242202702524339437353531719109371437090054878989677801936905304293759406098446212374755274361488408921142821061535915958087910082148202896103702305761191060905828680117060918640507130560960113985435343688997789843951207146437466265959798357843169022749667886593586773096919461965350189447511366415614267015956514557424593094857090619018856307376368404126492824135458713777419837968617734726314044377402188987935613983880682852259132846435884945411457071940282548478796672339908614934320584814784118266006214816298276675107578425737659330497994805798562403664419476649010906723615328915501749020387351718230385011163547538970398916496976812006167956461074425450226537344842425222171417852638044026011429411727097736103876581541413175286489524232301903103645904960355106713432050363307958373042437705249236916298961377320558548020387805224669002640937179401202329902409913609510710276246189419459267846984361591082113375971577473190778645771432936904602208245701170314438229461332896978156002392972231432082423621356152188351683984184221426735211386853796053987817699269069605252151891709566987936652374729671878086952224854066929139112233392065369541231936414867466658315891958491332081258556469792078194021759180920969161654426607328315128091809704421548360515734603764003594727724904485377413015349646229867437898910460343584478002413146986652530056955043462869547842355498391303654814525952233656319451373052421486525226288635304770293800023014068258098255103111825167307198620353065560925925006851824222131260304653214440869032514058458735564222576194009795027960421616177094714765733733760144682000870016524126950517511406690152626659716223157560803923207851746840991868084003000883387389046213163082120893433317392978415777898734240517667836344947070392934041066141007527749195791392264323332540157157594913716134005320847433211558051382434922318180525763160332258213356850910045262580133552785709991944992002609382059824972319572273667905050962111878984046497502087257688486255570685858646865744968557864997498728753223535445983177873362411283030425703314866195851326314047486151918067482995641818827418769638444771508408066374493013691482505085425471352176532806480937054475427837807650718971653285466552290774246571305718741521605915695844610955636820743902423419608867335811810685077174113559026346079899758882978443218669246569514360825348860620395864658982251130978013760308833418230329554792744274053421681727368865105763500191181612771242963219283220675899175281485585064989539032567748810496809677064058466419113635404322427168219264584548617514014868775942703473130981175822621610319880721555595718514413480470997595309798610395255203264124202095392342083835545446445387951434271354738685702434236760485885366725012240189942114382014521094520765150725190184645665298261628212550093010783883340611672047887896254492378423680862367480896205036508931841501430196558718197280841331205624588774260770566808757187443398189338637012842202971078695090818830768960353188751319243194990638771735290384040076881894928141443681681119485941193091385535473620214998167854573761338833998679661420636460853273575482473308862279490968378248011758038636696033164605358092132985113610353439666384103756419667656878435954037298970976390111564808576243782887274700432005075529882056953272209939980504047466893260213257204228698303479861556011815713763775259185353812087390607309400939334505937240629692030344330778253292538038621720519280893263420327682893885158659967072069309466017262926405323002407609471865304480709424010808219896218099111323518186771186624655264861414232165653024217847050205407556964860204049336124734889377008597791957356759490771875457179232699102503209772510204722341038889498874018227482462101684288046218594696593097304901422901851605910425300141270929765037452755116001832115990815128878228809758867117371618035838421677156345480379006465762601718270650980757590027463168431525455313028947772457997847840346385086252494044300856510312018393202325873370365337279709622382018081042684915497063607257040012164408113871451342129308228939147866455699284607868093081400620938089724953185547370642264808369234861933417778654249551474285839155280619209473224226646987029092770757388509689327823409317420502052766983971666385817864085567305414852395478726807453032364811222812116498885326839452479252425575426056471570432277640147445620643192975043211930539814662221856185453480931788342219613179156765633696420847514538163180786368632137972341930279702920300218949626648187431836386389879487127225583016498931313057530730190308391261834003810531566018884866690633330486208991397776300138911632794646519809430681868769104470759329291777259984118447118810448845233914542328733585781491018284926684609334434964822469474579524126853800387335396019488195786797134382633128614466716521808134721286448218617581141969201052699344935990374624195571659568938440446563787167082634257909853521294414977283862944082832214625614917131597415743455784802803335006494579782360719548670583301564354979047577591558548873701738517664646511388382368986509719436973451142012827231717562532587872554935402165920841596101849523593035582294439773595983490420899888022202925570370237304163472956523478735100943385944077965000879759185575210067158604282388679094416330858880730175371918151540103722835416018961733414492679655549750538349283385569254049777761133107584861714112133134263892365429013969739311711639855585053812911119545891601326889594592716921827988031420434838349847818772317455600156669749335659106083981294601577157186400534023622272779334787319352285184497185474751545999131647353187580559835532637694958581867549454037402409377690930174633177597388431124764504549744017229461302346602723206474131905877115847510545139164057335933383017377584379324781200350312079900591315147687382458441358978331969918056957927710101862651694436897203413474634533445116508534984426492946978608311034947920808423948740228270403068732151351205163107027898355119065534243411181440736722832168424096507775884557068230097847157944728665232312058277007335487325374042828470137026954469317444036193105462633838260333053779609580013634421382377016923310194478742389752416331628307558144833504213307615372439955946063128614817223443561101210912065008372803855555800159007605944303064647516715087814128476630358874822962214164845894963080759171678247190297637851663841100239665263604672705356205139659857045711711546314434244186052231483063945679041152740353069144819242366673273087071946308048670631056814527790499447292279841882460598527121242857984566223797527040216464086821522860866539130605322725124160628135676519963034278326842405463418093381038607987557946771882390435990160075772812226384978225441674616054454785353572049184840197808632638033369648168356381686176853171332313888357940179655928832392929292847014970939564454270537146775757863033432023231255477460001450061380796952056007268560098290448074832826948679851283861205335516268634421414086739618607211324122026712988581185926805751949926137454213098310017129981565446677426405151734570264353486503038907954934151335375519629117352623340726142590649049304339601829688806773219683299964515032856124355110953919172638509814541647730207850245537445573622905526272893656848723462429481108920595811284883553699841185350438137728879813054651547344327319976162763582198774594138511649768734935027645008389641344218930066411411756318199061229063730598248543558378475756525686713322580432423374433651914320500836143235706172211269466502692297757276978952597502674026211388484123386606911658236791691167381070391133043954315242957813537258789165339621311623572486804388778168517600328278026286305801345375600751795151636508108164553235716862276316929110505525475703649778847962396892253879208461524180841311619511458501504107998205101841301921051377171956300276585101546454951163090976285932839345292933267411782158815370453442666479714050192359988683415060382979783562807162188306306833555406355918421642574268916011911336872997580322217156378625423232506499780805342131585435003807787256040500715906507061133654792005429265049392223041949608615916038039730292409908686706181167559776892493652464107701166700322281426182530365948095052790309376271835591826281738801898431172313942042332024312365860140282082755912929460244291055358460752219585956633046242893121433716797262179025402849550912036951436576134129411739937383779160540144869955984107012754106142603080431395299593671302874686980079596112737441093501500919768744603624006490341475292035363809463486167546980529190729311125295504435315762235462169594079574526336135347993405955795752986767092795753523086530555339241652535549381519612516848248073617381142895389550940906706084872696447212719150735392322575758848617184842921583754557072537964968227584643026883700961864796892876788842032821438830554789363914191168034401738432659862351446219238796553438228564393964916236740653332118321158965007767885653502799382120655843104984324384444466727605563584392762420661980600377808663115073331260371876801451658499506119282760199908034618586940559766644709748038593412126347856200434193781014722628907755746246896991009683265614771253576124334582054658248630288777372709898273357783759010511414832765150040508342046636797368122958225978511298632633524640712164262432888353162459949043120306282423619860047906780170811230646853397844078688039780568538856684240720386069638936714260279447472065542765685002897527331317498482631837023371174013623618690280344835218594615466006974659572868783695770131823066188557400715536739838782943620560910564528737587344073035757536556351196575993489195442811626646471894752720023152941403507435819547958238221655119987749117316938305404899458757846370593579037509006734014682367732991609975287585355847022864872986982956095178935731009192119772620115459197406890288487259906088183954861627215268437348604816361663941985829898770575948279391508602498907666088310111030229935895114825471234696893195235209539450081791393049246902703730692388920402579292683112897309183618028489566699650164498867432956775197392408995503512472881559514702899290863822450421083900387214153716596710043487585675434424040555437977153804764980379468443107885738286088469316956906732156970237123962645204519567720755196296434267794188372364738963234140283602387102718477396734267987992117885472904275026140805048601355958505396624869373263158344827702256317048287708294771712975615452884173643904202718330678529512476194114209913404327623132367007152748303860628694028974314265922512357146042324133730802845185572393105171519489648286661759246616807003301703322935170961609259109983965482379052183581305656414185858461302829225274959731912139622993421024987372562306208904070987261266406904452059666465029104489942938856436646457342335816771523886641440677110680404392255549617049689630774379007709196811416873323376386124861547842505334493468242477313293229576186408971070202504416892480563884374589549208540637913564150022811923342954865965594247707636964416095810620393576852680575324935219324562989073621144546302715925167354663160848488584401960817335451228202590363378237914447278875737510772104792711153760245775828930495288554436770648034716876174627702359778275475498364800150690619253509962810389943137493235069476310855704825246818111460390900027759625097050378594879037807133409695803997365550932952695783086625258306283144229142815527632898811103073030697637441006289133993400915684500447623738566216746697684982319483065270157403193250943906800248377455253248669137661547608809987201104055366568735598692887059766473895076050947567831474334108372691238601866164781918351297750864418179648013758414060269540700368198225628128349978805413978085826590254972113241652345990925521367522147805516469457522565949068398777333267673324703595328861734443904821247799107162487611302611094387009559546504661928761109331988087202330850067515201799195738535058041912849308340246236344176547311251602688523885190533996628868820764406672043733985149409136977002094697704955258351053033674409371782881504948949644297604713932743281178476743348929269505118338164811191614604191828090237459468417724591682829946241221515658783996960798820688041805877049356660632380080348182549972628420059533008385457671073112276800785420203467843949148170431931708914733886153729269909876778724138457963992701643367386716166289023319667304436868314078848541671245823096908325153384942870314448240613586091850152893886728418814555644723044526785952477106281782778869730884349804303725902302568783804401231330424975008988131895799916661419670655710432495084244768877357393051511676868444434564663932883529026632969302369132823988502488624634320921338491620755283841345940554233660790216630108143675772576063588781493767374870187813488467712361368304712712463884728451585541497559642098585445595106663919557400955283510996375453281514656102746391290870219617415464942559561868376934436998822673993020028276895472467580583993311095800414129696301463234882929425893004087678482320706772786050954935570654802511293570173665771022663960002976375979681488831367235678142928534539245571480125444138808217826912091126125199895341660121279807761138007054214115857273687936790057684569176205693734691606290400545193877668543839934943350279531242893962800222718152860282118218032681117515302605032898596805513561030750039085501029064670755930190846626108425007068355631592776244869119012703753857632427502788812170662832545210746454985789969511734718562221860521704549849576847447398737660536422149429157946998832818263307009194821018583737641137105419713742636214223186330272281038122479707388028921840644341612978231127573934697375650591383814256090056217973158150948853572844142454546344441185416632930505421061589713991402910018328307937145400059252140129494757992847930411030947169918824844064810751450113806546046022274504242529486909114047136450013568663813728293589625160607225861082601047566053846558394527729644499366620366870316160634979476212741204584219512129888335455847609874034760697143447479326391991285470674489412740357348576828355078416689340743043112717229196085714990199147049322069332224279143818317041030038641882826794349549506030447868021796139363390523186974429986443470396311043169293132552212970191530885501793552381650924602057093667041196526862762020906523564452058244347854709511561200631145502918649353843828860393905349700356657987494249204117184321378917246255299960342301899708898732870528569829048964608905960483119695333885787773560123922347740252526134456214991329807826451452154114814083318729746838575025877425646928062361785277836883245615050050649776616266936011980914339419289997866015856086251447623418474536644704472160396763640639910356067898766187226173679187362836015623025869096793265673426883566405093685742111580395927841892511392220624882753884483889007522615673245240444009592439725715840000698338938325849269197337903265495427607078414976660197957296153522727831238572187895647807783710148678858823880058648654122483830119035062504348258500355672082573295407029913027963953403854525482380756785965223970842536555023254334910088820714819173144094908412336150962742152562219283549038403559402724740478975402524698819624540576130388346808942036543454474285962604544061271786338076909669331876400399625737542797144026948426567647402778113335507096106882904391524629061530694081442548147349383518404635030653137160005400001572612857294755384804833260859323507229523462317315762319085913714228358184484673275986758919751343206757639806356675317633208908541524230690396094201406615650994866757104913926397746255166458285793664171148007804825678441803179454831794676876933852924402507198380980050697965909899435768793725197656972691490145468071074393598092128281098386603102385582842756449036275542582881102823891720465877177126724462717155320087521059529485044984898869732865410666807849500401909896380580868704805092310573689906427406151107734480870291773285178295329972740519807170705922004606005322333282868888163452624377062767653473167556214943951811536163379040848283459606546427031638997606495180436783437048046289233047658581661093069015259856875835836157719345420684570920654627508519638815400887874952774794531355594243695238738673767799407824910236299048521070378345712364346562158921613087720017369026043216760939342631035758923708109745072925171659472034928661595694274561313678753616814308640943579026504411840390482448957473882011263407380592233114663286683461068807006514016953635380063037513033944277019254626679172385269568781775571761159986746728044015915412936676394276218296215128345377708239100347640592890857736516611233410899874972999671427352977257220650689072894366029818933469221584133834607367117084661691087949645796250304508777380791250706222897226329537603732766299585708054566199073913561873378469264848242412955378176920474095976744338338370410432989452592517497055951082242693001395622416962116668908378757117822942484609781593145683491336386385536640789674521513903679056493443461320650720590509938639523492218466806091199034129436778133482300198330250477362988341620522502818311475623187583915170730361629815847563234113179153548879553339793365360300848927820735670018711126539066685765969763849372847173126347333127981340751533483197278971306031633475760131364984639916733862507389989711740134565226581508547272975087303831029496020634351522927526358626104714558433670233994647922962632081673267230676424242519146804973581890292133804941927384686848238091183457009017869144997676222966969800444109113959711479426857487761062796147350592594397151721458135140958850241262064272402970983554679260720298825781682744640456013174969714006620200659758686969520634131435517375280456076754856405819521239956510055746147923311479289431270598824096796510529747047974679854122953535247354533195224231992751309962498859001580240949703456689090202521080099193369049236340660311676963910662295522427004472930383181804846488778145820283952732799811416129908914727937509849726941177078835378055556650131000439871086747846062435788710158358045697772421468708747951609788713267832783087089513349507656346087617448716569504738208973422538232986053355745935842115171888949949846794277004146834832364411790318256270979214869303895986535294196353779822362606232720649323307211779325087938404925977849766295549282628099899465083202032911408681276080910090406601317589330486607393713689322825613079773078619886165893745655897541648583482045290272842166087141486657194868062139748765923421966084997253469946670031085137040121349390218872733594951851251786297303444808782700534618659286075189916908949280730703389246360683681288047883692034920840272154826883044048763294880112780201999185827955448954016512196848318961177431032340682914974392152888863846182982389388406786180970268493508208955176344091786886479786415541751796735635672755452112185151513555642488691795916260555128858437458955187894200875054102176973443187938727157218010117373764461447701848986470416048400912336297353897690822783127083473885555158716420149816935475440073187207863653777016010751847003739068762901055837667825317489708718641657228618036156549283695785511068686727132167586552774450034933968460424034385864734754911238808340568181156569727551541259887966347668759074524505297303189441014821827096646738436204959856154171100247806191325730053814070228530071220090976797934712949995615248586443020440532552074552252267179641563311965327624140852851013445104441671457982176672881007021540472302291993772762833296135777757527225867828209007029217635396832831159316255185873277228491033412578020640842763612892156185774781587771917911622571775986666299126856779700113935292230398744024920801220209915898483693071998849506237961723385094302646277652933440175262193842276667183261994927692692572196679011101153339841173472811165057754561569740762101184908684450651109357685368359947777787979152567203868817361966694359566827537967591690297822097405241596062927931812909498839771943347800634332957526316582974245456515098768174945838916854543259318819119336905976740657166717980715285180088228944826185559896071562502518607122074320472868521838329632480195102133172072431853191023219643148639183336232896456256271388036466635640053564007336159557383779127631070576131807288001433016664957540346118265052369242242288816921329976451716423829190323633326261986395629703920936137284499621584028994769947672733481435959781924414762670441625013880123758617698862827462516540727194327087700235081610861243074551117034461930258689596167865899208605768753145889175808389249286064494411143241308236300969901941182584256079470479612911250808945850379231485035089949672915528953995870251284159074783722326387379339398968035402058536531081250586596451795953251566362051704870818414488530292371958078474790846042291843391710655432334981912392915466969167795029984248167218308056071831737317471110071362938354562104178947238371197456778278184635762732444729094998426430431797155617807744359190681754291369019848483419184408300790851449923778574929960029607405430736992221583274823940965038400276974677044484999570301546588706972558858547228948170896210120746108259248425666192826270623770796199967302778432024096340965005894198264682645498356708105080425067758185594353761185246534112602598155965573896733149680272888165812399718202214425274086504005578813741100071259484789617853439823802838274496623248233864306641661183501825729315204759921909276353978270544226547386080309110722533702347690553656533598724106298350295935230453992759683316263489261295108359344199176882328177756849606025757809656021650191262170839209576427728494782815592320960464398696199125169927273757441647004705941847506332843939568558437664841122457762192044856142418949256409353653542241409561523174700372807773570136741692153835299294124725409282714420786153879172103950496876573294872234871116914266041687548982271415573375751266863578386402182140128737125960225017935552179273875880217364442140211932400088554915914235829834515258176846551726891568841489107124252209740652276191697549199810298431552123642533680627767112281619171520249809708856034356000121714690973757111868603529879475748393725975161018791821653259170948653196055133960854342503589126373361727907463841779866157216408381658323282318902656613452513127010954783727927674096792092491125521504704959768338357521526534990426714749053827304791502183698123822278620696944375625378511532475178580139293568836082796644653675092990933775323944834914574755019053779144746995007310359755522283652308921644052629144097454518225279081226183783906309661529026344663719251470295814480034135107749314328927614766953857150992505273530443661588445638668032221075712357531021715999665507413469601865395942864744132589630071683883963284547524079116071614520909597198605515584490418019747791303124720538176119652109262729260929225621295043759396315981694071192655754666935308720469150135457638960469694193307407490701196963192000055422048062005395329853540285201821871544551995718192167363165374794713475709987781142488552782804513033570374999520698087655594698664849655985647276723454814722967161015048791194323104116501227494448472173982832928047662672821505180232177926516029939072898399091407405781047705720757596435631298382945636682647016784135254688301303383150124187884972679189894269140294630342987304117453469857390221287933271763064039258989068368759657223977262283068826450268395004675340466904149309517435291997981482077441002774870644363125225435066046668230816645193974751656135857243055695007261449371079618495301410655026723840339075005154443014187199740813700819178529096979316719491764859683531778368440106780223275549954658139294335284980988941011422458886811213167868406660213232987233191998014083526667540569741371200757666892825928780682246951893618182417326715834206581324968070490431713949088456452044789554308433601531358270230827886178280574727801764287254265497082875467768928192471006535015958503021827540158198318314314735270253485100546109505656573834439068829749695724689916010671777460725703017227865888124750831844101651132739870324452978209069151987254264792279187688184630340151728002375909948881665958332610600138794617913940905243249277936606446967575311242613395439869664736968447668496073293644319450463696376078955811989394694564876831087490485014313589344674236084763080886457765795850234618123666060982377572610665017880314637371911891336342594503649478519141038502690979805062209285699308706070101294512843818348972236494054621095904735880487977769974634322042842453408048121097818392197609601893835971067406051217457191792831593876808295431063252860653712095881861768696643106930697457565573998754003562551876350831796257835952025040728994221033893925913133476432293817163845852542493769061899292998542672556852147939569326795630266666197758750572827508241215689774196121494682448537138987563160121489129310472408550773809987065724887375619291167728778185990917067279332294165151001976119970523528180119111348974037632372854660357106809912315150761672575907240546347084066584093801217259041663947492730976794405119593672419111473433459226587896110129445032181610358125133120752075187344386267692390428259634783946758687366788028257105946145112775779524842463616235287792806817851940686461567680735125901450602269341940276218768399967115319974868074503248391882931550249410862219174834403891850081883614320655512790209402508026293463610947339187840678596855157270952486365889319725641089650695606651914193628887511744216387615735411996116634651272568507938234619304209569265722488300011692463479398062355391837671262540720027608260470949118615545178680285982784620890660414916334950064285963825075399518586914806851123382527084059281027800444290618658800356825292767135359553702188721062418001592491076611381165379380033025558814454943798305097817940560039480377423925881768076960991579604802983498842486195395792332821256268226203065630454415237773602417067946216628123364475734096255462658322820206210765346172364177563411581794478244687031099121198506037958956763261167081670089250635233972365771392482476127279294736724854205168446607965075501650483425407032664974061756925088845003417674898800149480075404883705168826744019152639162772787919429219920279108574040339566804613109602132928987102097183112535176280776676200248641526183491950915551090430260016549385356456384182712977724448964650077899218587714163080212572130948779737697969964898053929643939757960608422426605568946692085865057379215430645997773403546211281725672853294359618006535198362971342610078952910561575253117481483104226352604264409474766740564651017863092863595239452788900912308514747865217015815690287261756072292176474485054625678021896052918836264932437202070189450006615057126649516967014050810459213013940549773446340456665647412414678186434619252747827483095305008929787315590550388056608418832960462844765783432244888369380271854810514708382554124038863620780974780401125742997873611145942123402309306054916853292408102855405319414409614148133396027306505707336096234023819734939231883702892686710498759159236237388346867325549112578174129543382507310830990119006635150838949655289704965506164738514638290010347172568009626620066025802256982700963082561960814897442971464378220047356747674034459296928385324260226962116715621547343444670601522803840122524159241281299728753175725255044817693953045048443705757029227741235118100655402235760553397306078633103913741827381939729541902154704512140947785233357177303220797068374726808236518990330502773413248084075436331396704671408068284344238055480340026101234604593790352310197780703492976369402860900430321829153290326529207720780301820281567894223237555394143682491492508326380315498920679463598620870641201682878780568388134125584738824462679082938146693299616362162849097774599429112141696291898162468334040469774714186406010785335550379625458784183351194293370698133644648652955836441900457691640996361930444897900185173014311682415319349970163447998996315783890279846764498682210261390823479202068486499927575801895136896059912990240309018764239525498655268814743269610336628658713439363185538416076015590977113720710571571321156740776196960553045321819967798082730002960239238121250552520728167667440279684621771249417235059713254357637432841189932729196616483014060645708117232314149247248847979280214791859151979490265896804937977512519835179585221186615595180991143214666221136187001551340879413294508964159096363974443968503348188558307364059863023297343659000208468081337308012936386378358942098490021536401274414980814584232799835909117668722014771835434910860563526219788913057702173196427803262071733975001044691742557892946007006574791831518766252190229358336912628683737895868418363810154643278727999215469162467193787440328175449943845016949898251254942736208961460810927108596338158736704077462077122859778786648793259072518519968057187450944102615560756285862506673832637085870315966112188281343340818877314109831105410535736770053787214721722884626010308991490145193080577094911054509698179409012263286315187970060408178325830813205361793081322694401653921709939214184751117445836016030192946552280950371839962653440811086842539084438845797032869849209192129261797389877590118188024642118398755706795425622558223817896758169417073597009090770228538268458621069938188920739173802056652270905592910857820297604467389458475263142548283016005158088168549422293763173628776509829396863872285538125182476937592043487220242448327382161889780844709873430822015699658436531192916047702546712290317001313082011003337960284014386616722995701934447669600970469366320095795222999410377779110222449039596250262201338841242016680244425285283058054471401042489850195584512978115353244148224571903852348649005278357369426614758916613832682970034728989783036654374695330892017303922785449229843760646926974365150622459368066207571823469489637200635986212403505968147903074996706111290496633032467304719556129581874413418752324188413392527871018899901915889492990597018420624459012130288113575740057917679503948036188656569197839461140511100367809012155730042687392488777087825813171335263572678611558362797731231020186624330268224394720839863160703848708053595866416735819727582948789310959320966874259684388904884593105235959220216508473662349664939309193279420910050254631521635926337575682383586098119546707006136920341868306541455816197532686261002436236024714470567473153066052910733714918797631569048805432533516175437395981729766016452131340306376218495051800299989298341119425268723433279057451550398730537595539327646703808877428332160102193616669300281914715934068362446102044461013901182844269428530641319775395326143098955873964240481045429605321305939694522677772071620135217749831679837294318653744320321227630284964370320580721571111785515919457275650541016860240791518990997290233292424208290301044984936360494997917211901993643510164529807468897962885103025855181931791158471585315090639307963884069103769592325777903752125462831373962944813558452751464372852311710863051403851082385758504307735409804989428810127720447030746248218972647385938608840035987665359954561257699367715771698873500116049881276285355849659094879256797589045887558339821497652406651871562592702191404190058938566048954494773723521732606345603095567601825766654943118907053141217520268081744964914889068534293089538624105295358968200008967811895750059926512806654543204743048466038217580585381325343157254043829539919807779940377244593235847818057940637240028565990719543076124982732954103011631053552563140609551401741985548988465646542992913145668817085989417604585136475398829056853945203902525870463861688156123246853965403038361490292542487701950012845776823282995959953150486491879936215787794114799853730118414318309070555202150081886223953589046048385587814712522635490096983573063238451279234458973048036326483874618463715769420724810951476913728397461570280313957917327493878527548735436430664585828047700726434190948023839706525735460232677698939634377460269458000395473362046253220500171854483376232677611737221605401803177231600172809586579680536703096860570632815198233296183938566289116909403522655398560790740607078025797820730401238871151656605770987153834302571455950785534302101419375560968603625321205777857819786362487073120226789812537805637157363220446800439440131860183317196410657963311954196152519202863057989898665878999673310027942312322152571948862753193009020972543862324361417530225580563952207883176383924848357729797964291180131154898528880293856492409313820195745196258499742505678886850740511663009345563503397343252411520187409674268691513239083703627383291211028488061789391851521560762229639423069015484308283395662113594769761662289130423205288730897159195409708991402598235898254173512993370530041726381788768912501470166415950235395585809835020574557271504848506427407563681724088063943842530318941428292391811668610202524010015329828147226485103435271747426506375501405385684100678336283153450424656654612335058026272379079030236427287805214615068577252918171298741782835884203022001052230187881475903345275937048363038770955906301544424765678310443521534288623437752460313710169168637479697253195640392805168470434139669333587801669089915501581781103322073798111695301855760306124404087365670305437716890449065376575584212109365801392547532864414646904724346905820607891418489797634567491180949119807902865120528250933656727334344672316016253375653043000794615232370339083086271208185879672533393659125383193419388581225297040346400444031286124927664826713561695405384962908378502038684276538977796837312991202272721588545816578015369460537673671612292604352119123538196233590028282699263606648761992986331792120217569217434490053146742228349511340420226463549540790695560801174964866730460328947726258208645878046356987431747812037959204559907414586097574685517128445400460466958009897411572023535898723961478055721495694410498225978394476806544368808535992048430441117919429218458084617972530837433712638383560039579936496025212721320106226621961980828856090137005319115745777567974400986082951426294201892301195651031273945300655539673236188960323028193426547950041859750332545490532117140961258254365642540143696710043828647362555168013920577612017294996672948262426338057862761384498702435780499108371515821711827184943825862920167610006601160732211220018140892662636398113647478372836979428829520280406192255929759627084938999527960494663419668282893575257882654347710411987403109137000851123773776145047427877623504023963118582208282942922749530804240687295755676828622131354674066873754073211417538265788398903130355719047162763795282215348686811037834538327661927365230671865897375535945419690479307517534252225942537878330760603168068905715206287873976795166518622057083873549141022314873464863590529900180021601962165974953933576469614272420733708326629127068141911584599195006556874196925915486510430241004871565046296338908724742349795844395787901640133178244552724535225584760992756524454112410311552076044629580475822944435371148067683344981290044718145026790543073550479956035671128181717564150579037436426677664723339858012093150244392278021442522830143701101112099988622918181451035088249687416947267402274142055342253014827525701089618189833591124995446418190820174808489333761086527294817251486017202997524217365572817856778076687811610671062863721083594362557736403253320713233712643903578511060205425965432597159954006851604061960870588685527105431100286240243198133740644550864692159439480905554743027298482025532351719744004343550018447444941497658131099477243550819480810127826642232840681236159547073963036661649071164052282859092835017411931406157700948141746651754043314016605928999492185602625172442245779246033787541820424424813176867641462622741468422152679093632238918491540629689602468237954758592802310583095788128777878873849632750432334064592630270842629397782760529256130005474297278452437367944388380821272267405725889696083286334556717013201481235006723361291543393034323781062880265604844507435027820014205605550476174479003228722624796996337381356694351025515825104137732150848168833449808308678791310248751367955060821400148478558361613421451250465040316700393420307521061485674712646650541000412608799071460520878524271558987543941420267716743152344204343891227762997286405636587684752159531076124661944352691303669919742378523311089419811969335239260381419834076955512519363253138648006778508686057124801950630643679309114527487953510558611501556673572843780638791352357408331448669402259823699977706793255303168788546734100588374096675887204186517512501050292327609244806312052899093991545267437867227518165595020745561844602396787455143174045805215975375806966024535145649763281444941946022195693619579343852007115490398617154097534045915905424520919788290373213214246767134478080536676390476139997001390520398420832880428173623257563487265683084915819146133699305200935605186635679845201996598340465834386539094294956880567217023686550849219519341607832214696275440050626117716808057857006932982910396867014105857195567635396661278070632502767632263117028682342156304649595494266750938255116452080070662445070529805875183063995738998090479604991148969389382339000094259500799564628895779251449129771924968555691884603868568260811897021495239387599638797886053476269293356666963702984252098441531857148462662956888703275022988270197637041190052540849233221735129485194657898716295771090620219643234187510573974655134376823015484632754392946549451288013117106508585815507100660790929044167220952522397690866833719789760002541405999242437793427462587122810764420679279598394706027523725830576807765431363022263344238687114626707129298345745781732525432580829846643520443616606293456570804554727500091178599033179575920226510053388471997864534256566429309282839977015160564047560965451828629411902557441512899014958154932873003526788545133097764590129493107364239013343258339968537068991430418881219233611029648640926250487974969011559345503479169052868693261272894423407931793333252381167700406858715633348276063488546723548828765508122297574684929955854575410220563163213282230838497834917157643942174641489992084896784924671834744883673974923942843154571059698669701175543184657738070105713751368300060271245952886218238101931545422369839646271539628391550657512100621161805982955041735017585086454435157272445854951711924158503060161274124982363733722942062639828618264848967071202480621032592856219325244835043483191029626814862283901066488214067963248151469923729083926749690274066513085100679767526662237739788668637114966072590530108165488105260017950423895528474663931171512747700553719544715421655605520920096182002265772385537984141221513465694376880005016980437648461919623655725195587081491989751327970151474996682727032223426435454190500426978022981289461036348984875128647639866509460502282790505345894371171049324164006429898132000765394952773748789428582290940359154676036182423237695651796832304798287574135452661619960028694029253898518111681744091687277846390359503475119224589195328346671685437923542419998780879416353762401396650615065178112657379748110103339380532016734228150258524621088604229284030687478021389870575184842167663115177017396880342381273184940766625493257769583593521214483539172141152633404000130425603429980453550953482337495161830678510299292940062656013783601207671988791562729819685327286681674152164788605463155607378301564800063033909524794156932701328420600448024466895053964286260468148871014571552701812287098549187465886691451887227918028350730628945931120800591142157341460654344988401216070862701531024293851021576411814867285889779006729994421644962497901705462420644195773397036854163537570199053674579656838653645706771733873022564398822983514582245725833407317987741918620059114837480295623282381989350028073831173632566055724170508506515112025029194950103061192152128843675928961580977288580676508310859067340208947644456610982664244364258662983545446531593957097854438380859196149491454890729635186481446009464785630435363729863741134273417551677560393482312415681335713227269664866206558594402715562404983523840687697079302452624060401016280772063812015391989344495584118592795197230475731872394188867860352326740545130515118194938485938996497540512224391293992843957281464461351137646484405191790949706308667740721968480555285066497791032452962120693995139152783187543181421976219920577070186624837933960640588076180622015465629443190015399387676621495078840464700090768445167040787335698565385548975523659625502925058055663066187865157731121296516273376083647264442399356738253227823917719004628683374723252889898624214396941864657457974072474893611454838497879434589868330024201746081206047682114298037284772744122984478072043219923739881280601041465655686957395819922586586579935717424815234485044242952499914604862049805965589774478043153496064826096009370707261853710968207068044162985420349176107753745806870837207505940188636923265777030766808187472337878353243517170722725477977189468756194181407270561289660365848791352929308553865894149802328793337333400209356965955645800271580091028045419813177967581163241432496901101218908752027476742956098757494713278828237693121928711633325127321944328562131531119958830734590707511196167618889839662500037366007235052128586963317074546184731048601943736125949025260323703773146586109835117171709061400241684460315513128582275251183459592912477764034505086127062610350308551289092191670411129443205271797890744682607566927502166496985738515632740861975807508481410588190782164907842135898327732953702757398893636953341735520233331744328234618976235562687107394522929537466728821204733996030678372691206740682417790291302080135857314830721819945376308949750090391453622440192793415869837348375938760629076119633165441845866697982756849387842745518795251649331558955638141845665057546686201370138616196984486217429585125718101698214647341735407638848337246723158217961066509947879197050678143201793233476747746423456490856382620000698451955663082089738572486587368528010718179541743957468639307872703381641754046761626985910242242015007923607986968992849368058828107104893858301974646250948978024170950478129010068509694465927235525947476561557701828308993002566646953132101430064895860976595524104846785185769835170192364312709851776937887135581620245566784396515780249922509597203629859167254696027497328840689837315827603475718570364527741606236603795102345395385721017605467952040192690596111061881805830637181026974760367614149688738686098508498417158133715236018197845055149595985361778781010191254794416642652729546706524094283834089935665559294712838450306524564985245601112161804423608895929652473447414140709132237044151671771869003790626012176940668459801910472065573688276931797841770733414300512475740695063010698680245589113051748996619875749877316568001577113794379087241655352836405063424608810708819266923994816376955608507069509527036534254799893463401669943328629039442484400646149191273973637005083352804199854998042834005650252746497271805481597611006349345143628600044975273762509706857055176277030784304655731189145327439444397905269157364421927921932032834244681732870415363609146267777279386200575988269243619585862916411013837499086431604503028196452274125916528082699930559356050688126805502403175077202712263834085623882735593126498827720449217162029409492416283915354607954141772316466505904595136577744089069498062978064732803268122483117074700695092494373293737464940414212317983972698196799475863577868042130073475856672294036483341639252175944650586131693178837557123847364894307507241993891234403691620164316045630005887068523716072728035880325853172886043892627885184424748998042337164282111897285087168472313596940359571897944806618066653505087107576213955221830995249985372415568046330604022104751020899069875019965662024335726698716431838163814863946942433446844914331739037980609939487105466644772771862167079403500461577794772474033283694768780273261258444293775672267799826981837139717150723035367495547571407595442224466057172252914160397511240334619610065990235822890557434602018640172293949833791295042955167720613626984466688889573342009163174131576752687784870149072088045638846390517863513887045052092259821845267217077674203772674350429923986632781866486547647451560417955150223792543767810544092605889643151467152780609516510135900730398151501813382210190319178967348996491649148334301864798713442053896123365510287760506024793636361572559325128970828094164528383257716939268252148177397217764684642840042960735435588166159861568280626663654477138659743622123851917641630108321524684999704505283774202009116017035332526291919879677288172759262541666137193966541644568196276428038319831119311915239743912073622528979391866371905293176945917745764227614851186043695878847847882486947731619780545345467517736108566932792082692447794417266959049121479784693122831166910737349013155385333356183639079830034813459027833847608377084483967749330311779222073180750660405700406961536153085575898752646928050402934887912749835403007467403651787726682715976242644802617005519934970367392735127182947125140082687867682885341582517699278578120978794072028481690546274398516734661504828710272173766246613944325644841003778053956710188564502516831694791531830875438277987714234402429064997924477676684902526599911586115945352976891316048948993527984703191154041599601568214262274913527829743047144217642641075821378493836928926167989777368641325459658515252954465001692063047349534231843882126496842508681666370582907014423699800209340200935794655054176455382751159056824170822674592472695915102777114640423699391611401937193471528904234646758025560168697591630337146893489206225951258396185003995529361917303596989995590047007270276464076734513942469830456371488971201012908556918672914108554405451190151824606377002572714361883258733438500257540703421662053638555204220392008240425042990367252146281970367685961554329662389343679870782591570173404282015492192092746144553253785437246502301196951202725647974356233138874903786404111786376782368689575721839602468839987008844362788958892766345425389254132645994914929423501906730983704634920528199965155300076564125775401991776711721781671716592968896523885012169006814523323432616476089766050302600532246242267566558374164328784392884369061540381353203894487991276522603610557181013096451651734408451506193366442585153716423279443153624673101928922376949746217598737939151889898790734719805699421992357525894128271950604696970540035373959815929988788557649691270790556039032811971827274612834208110431625635253918023004237295039815841275081307686547384536993494698667514683585316956090340507438120044843532809759303281033437314205972374091008624716870299669236686206466703267107109486734115439030687286091483863784328154918786660709146613464264093979785430384286021396531933409249905614582691770410737969909925432210279888721136975908354904072143123025715469072220047398244791921870203784551786811222389191269613993045856355890602573226490839634479138401563827436074125433827298564187464742774464278138080450874258561135835167037814237887925264709836432195579930993677994862280850232877560491488016909064553955738206283986404769140584479835428456597455112228454005569943819449005799631425094432638635591688535613207325694998416013803974476436919686882700009638849476798474028286850447243719385398118105424651318394613088621444527792630380117465511326812490388910315477709854270334064161456097963532202281227865390446865571768125548527058314692918360999233076322498578450576986653536237738020838378097787855774382177915863246507018618113586893074108879618914281569265466489763956480891549523930403976849899840165643220122863691767274762085424184058306125475269621853641240418022847457399705092881541495634280875785660451107796767590082150879439758989078763238198609247347182095459845052698709256539814645130608188771926050205742924001674987133604501359118270597649450036076915623985653804566125463783023597324406363869875814344831669949890799876908617902945287943321881604012556451718972211704209994977248767131873650176966446831343048132228505374607205119594127767723092681612870354460902387375545309866714497068885592202866571352891363869503845241133654014334080915435743459929885935873875121937081430836380844899853548944800631564644029656252644625078543790024333685853574434398161934201433414827628584607841316275093307453497834029498154409660303301651472718786359227651382864954492636486660728481591872324271032735886836661254642216684422511064030561345604343928246015260393459859994265458658410101571478590090052091150071743444865305311074735065721711529021614051747277672480885909539282560026038106241408782762635819044842888729018737319096529938994054617231373307461143170676021299010827921641651319872592276540400400082621511103736488208902271196053866898114463672011424080273046301137273596719091105271758994674198566008443820812900731492601623073233005198596178074445119613520687146000254553496635651391370344989256516479543262579622528796022755132594052367361979871539448044700757458386476762287777312078738187791581777389918239179610473527513499222493686606837209549226225358982196766622093341024436072546119024723871058955571942022019672255602524234237145643613597707446571882237878831509986660790404347072995847890195615735621612352028470883307593457779690727508892728934489733027720451226755932240142391830621717591553399258376716600023104736695209864436549267985827257019721708766156152433644940786186487366680349557364880990898882600730410188768304667317547275369257549856616029731183940716447696291591140232125475275204581617294254343671386928818094137782607987754676672408904007097977546609603994364628912144250081496378559748988821729781272172918607734052446512427803736102465078756379631389662826917548164222344874681543079978597985318272981438987732785486196701398199858141197255278692178806896540561480264253226411671469579517260578273006912837673885552458593919718894486351497741066389181041218100842876348385756688783414777138159868822034962978771459557836790488820981274579618801475399811565081731479943379140778886877234973834321147592278647752701575426026476566072865584597003460909992920337933183928238469288357378342599869031006258406574890294018337001935599834168035909768430198732360118133830627226242548586807645074858206184730287130629221150335759943530816786474809842417091473478619971468206859870864383906800757997901296405629444783490384052111101032029759728343275003023659095147671002976632971163463610604574277909790313155676590142693616342855368545229464279103609616689638167426345253363843212701360038866768829491854476803256479522388246008895682251577524179967223173552831890327517848645536074099885524223010474185095782517132124176075969227473202584610409612686874559113569802397551083873990731127759593908126238630827700215966934926147205102592180758898968302074831688606600568777305396624883676685228847775179665303861893970451266677842692827255527212920954702566126781930342726604582427813684071676025965807796461169588888762335835219074249458004187589751315530283009022854180069994434746473380961417242608727164761275529274535829396390594101240945867830205014769358914874841374295626411873003907255850744796241252871582399789937046955932805201125665195936680231752489337227919581782765058452795961405101321126228161023904445218037466371736184044801475767445847181503109840709668764105925839837160324768058424509183581434282181678654201400199880311444075327170130697125416052477481068278492317013762644144478403496898479349009964389325926183503717978935852443485448114558635530735043836044972751971915520787459599160532736449312690245983137456272341757076994432241729044973678986119896759344493743427328241601112612248512106010654645286342618364472002339016162292669529636908616699859043404422290946016490301831707564679605510003611326333865727924246107272328937726148218491008892522221201700917994908158159102899071087937848867628011073077111479057209386001387385141596773578232210882864131057873949116848244534131789480789917261349849907978348284661257881768546649290329579847466613182605300413188430170603377833257771020003657452917502271273111468007001352049359625861170854818980014624108473021798661118752450687856091036775901016792066120018082610971139777177954096971821069054018510301354163440689481423802081753514505872961702930420760482834815582211750188181159695189842142320897066077196821352505526744151583899904181467723585452634354373212903218918919603190183043073505204351795601515411261193784172418785323370069128079756774264555359476585780266397876845208696813370344957255079761296009079321488744358515879479563192165887293916032748497420826980469301133311029125878310268041683099081339171674740032286719446896490720501840979565436673859933269385632450828935816802256417140025684513258392704445176186865013134004226823183093444939616694838227299647639939960423708998416814328450741910980018570530617188523528319168605567198526392235760142452695427076697549645262857658850193195072919694713373130233118895640483752898783771202628380524889363738875816308711273460092078309925152617208776611993163082654281757019150735526127642493125122330833635649742589026474181056608485653687034362146506659871229038551594237681774807648703124133561473277621088889628152901678179827962692083238900155077198418339506972681139674399243431500983268748947718208312955396736643338132779626354581806929309805883016978919305198090168338569908872204159842746825573449815724328197008838431348746389088915175045427316482091613937895531469983068256237713980486907065618387458630275290575544196081443989005686725395986049685347128454678615245082751360109981338794091448350349441726787806652774853564686186088277221288424866735102270487775436262837304661666966890609308752984947744128110338162415778008958978013812584211159153320689326986753690412985601033896327283977284109976170465138122627585791756077860221390601104211919901892341557072324149481131375328312811265164928833999269180135967115514174824654267702752481007793368040030867423271663950790092558427707668867634937310673498019959786365665699091202850095292522090917730581336862917814482570401700782552333756758077823985457298750008586209219476813660694384164607975210000403648848549309047654526128730331886538937210723658161000815006992436856411929982092194113074112009748442371699709223896461042161867253446738076878020525973681418739150051145989024388108614468022761515872019442932781057720826081518302916534934266813816972190297818754693167227624471364107167580480327292865593498457210967504851187209676788986865632703433594890371929823535434751492495403530174150403515175842690815670264437547594302774466036061374344499712584047862359329569766981321675162173546236278752859220930431701397716305525088471596882551087181364044198512538762117223815150777846805164421258307486106932438864980482080124069296438666901760708444440380226410283835718928235855058936926953759578736102020686322196119221556661566594328443367159455639418751295877810537114259657483364180706089171567493685247509944861361714212345632379212701661957792682920032253444530485501072471031424101362189726972291878227084737022932543680465931191840754125903485790003587399589398047677740951504701192152065027468390244659536854028601476645705239160849030640718129166267692900217879878881388362379444297204146059209655238158326750892710945988933964488453134971037129646720193831658353927800484883537811650728198129091193221534514742216557159507947481174657773601700904342828657675872869404123677297515740123571970420537212617599069377128267112652291856701336822739277318748279179036106950751461287631232374624421252679035238035238102046290764315088988483769112808015838771267449474562807334912421173061482050335200996580041233195201656694560389552713894451130446491229555390983473481205602607940923158980754781320754537612691506245288745759540429989472019905696087557601577449747095468044170734217462411611871919385451629599940259374511817663566834981726644119220533109700500390755620894087867667426963814700712258079230886615594378399170724488865990354834324077966984150427861700038733143370176614539482830173079117658459250524087891880602726060160691558412128909216060811964152967809139101858767478214731855416388392851133940885582298889112629452680862285753408833162634933766865232946885915863181712736460425387448233311645939292043309609578965064959934194940608106171621453520930637208034474461984744208952859284264480737884426744956078110940380801344094433603848309095547982593175259588857054532809207184488807650704997550204030282320693354541604446952318632019890229959015725797211402472661861348205477728973449676143875963154848406011745136478005058449030319970865304612106420467460208395085386297967949787282546907974820046331890984069918434236599057432366147779975738884883723965492494003452994372862980395031363147200957887068754806997878918436040671146951117108787106954129227759511439837923605344581255243709647670306898502016980066224167442471691332414036755557873537141577528467208513719900566952824667605719318677873942654696251549791149351367196343184928152349242748996254054669001620747732860134074366671081076871226729477469413295150701132883656426993018279169568336742763098027661343402600191995496334341738898429584389352723644957829336129275393740322700907928442030082185949577643299842190914726214180954639118192788866808127525039870889207637229778783573781781773627591208895697551062133543988524640847262156203239053962092972938529728234823612531546458237017162918917091891044715887800762761714457925618150728797317276098406441521841671268762995331711186130861327861523874208538736310986602953665697810763803565593369371373290230617664280675082005724807931624162407890678312747944675346274939486785262114601156914229250425359675189043259487327352365152809009133252696124065518086368070523019287922114288727726127570151683140403276554546729943791342894789793921193184355457478096196759371861855975084662833898001573559906674038767076823569709525753319936101379073262748381223366625421721662120330930733719367715763875652728061541159008612146280834850342641664590740094310550401503842622564481834649323030917156059116143506902227012934878580972867951732511813839949346244079783601709814283498225897038082043215572989106742447035368664887415632212832449398363024913800144540547633803600677900078551306505713113845031498943391074844283433480625600227686431061019606661093115763125604032389103059300035973186648195845709652700946993198628425990892710632616296553248358207268447634475763429737203860962960405963395328772072666511025870105267543496867317508685505858215736100113181073950566037296666008328171944978364020181396657422897616747519939872484629155893255458634284839772377251775519041471900529545823962993560551161606213129053707039605844889796429596415806970528579582081114335921280025823579289993150752322240259290912506577333997017961839620694707445742848108758384253327338126468575131758271602332735261963923903664940281153928231378455167553210878413661646639001653233586209569787378424034062949798792435126204956213290221818050521009886868849057427085699234079595002527704004733243127567063188905883902074203616554338529372638572879460770084907315546713447175943463163998921205978996994991833200405094411685352997585230265392671667172894284441806137449172559538562577883207281257143436650350267157716798868519088636807342502337594074219963361064093424660764723766367853614660343663419658848287409830444272376955537608643958960670986826378500470427181956223832942262024332653231385054020454902802511838148142006834603659942547013284197055675306083348054754813678485073039993510698842010491329380518449890227078053205425251259007718953062895947301060836001620984473398988279954178499061785393931499980838926747690658628738464812248653116654992568334026139436142718254838939849001808307470838227443432050385724786339261785537674239927650750393593848466385795196362385813519779784987734486484988938981628289120306030561916638420961155221210115457102333035909112811516081105763460677503337529194866715391461379315309935695019604838806374034303105811091746686285259063993937219446978560836831747210946559959277478810289689903527106301187010589990051718664226014809484524526999278042954924021424294850513037985422577054086839578017409411810681035555182339234011190819979744427510750695550937742298300868888273870274754752832321747265990295071015575725004960650216268259616947965757486344574729770357436963588070725723066119444075180641318329689394066636981656625145073202399638864013784533598884625178054291144581680473702632716844462317478076982657163384957410737936768554424734022377143857738501344862781232713767388423781029401096067486651009677758777133601193369699942780143196273677727804218255569331538901189521369234177766061421619008041802417515104706032236345969330086988058774406434941503482890899858438058390417171370306606326038864575385411685765828279606262811252519891344136575271445967426383816219052806447174059987260294650816437314026809181216732853144364029257017080756305710705334460993274292185906459230868577306819254934739626297870406559800151052776404251873594133957026764666769844649424838207965307666201812054151609363628055748701081324852775465584467211211994413788679092565309675213798100943677404403162082375939009650280399780883292637186762618771253889489976380434579029857148559068471932065417081210024913706959712772922156900349378160068620272552850582722721039885773734961702947009758396042277219761984714905652182593171895712054297696339795599326021453629662045225983338024051497498832401004879937770543051213653447950358059892159360551420110909315659375898706906678166325020607748126138479406304330932461493446007434960262528410926810031038849565462848511924450021985210632268265113488519976531461144822617353531321121662807630886431653974868487946406966027377809755958550679553818834440252561490182521296208353722346109716792154861345652735440125722618571496824161911810174928519108970717926818809872200487632391227820134681753043077495120764328944155094053520950784115860089124340911221745778180405851062938803729991014461136817706147168048711291215689308715485415907047163054460880935234975993027857737966601920111719903134890886118617275976358511123314981823446329847668102196987929181247551875622523753785528316668072040916225486517371878735925548078525249351100955050627071967400532056565433485149579741569883224477854869373548419068762002233394640579662870189430630630153541578560569019365433091531970050570855592175148376124661280134017670812811386186262293039928123286527743457698198923084018411138444384144536494730166936583002230091602365269152838028896931886818873644760805916058100947983976004049739429454539025700295470151821254639284485402087345706100031535002759532354624759919401162171450806019536740693890714451208082698926250942010069707858729354157771764758005679520853653513252060718263528849514782001895316251800633581610151399326025677377616681516090942783447246861381594642303257693457384034290706004889757445037210420431357371601992642536595185482624268739849757992639866416282223480905829425268428659275414009590349387226279898413851889761273684108770429721890740165093125120832302785454009253399338248962840641271436434491169773300299565022724356583395850457783490487071547992908405791754493546471657229771030363591960741379475559569149674083070757994118565239990509987001033913079037801767270068352754843983175147946313592448474366073180689839365953562883197810878233860488441157291300023444281283936144105216027609806426648259569739247513223640165987162141271819699317051147436008146302604825524311451667634028674212287221917511216858240759049771335434974917892281504816837917663359578516032595011052207867795534793346742935508777607452220069257489604347116736113823787299842893692304780844341576061767779744600404263449746524850275672052760835961587810527813039743206604404000751851799967175408861151648156322623369415928798453137198968476347741493207247057876054853886606644633708680678041878797954098000880431482139317223041781990506195778964894310255003867122115516909253282745082754208838647172536051896940043836110128606112137365209150239878639262395688300082330677686475924544794395137228052778240542551180564587681522795205857557732825492044532689740945182254229035921168351625481733001892373847498580174495771657699599377290704382976150615489835217781354871885811125263428840953852228050245715585163850493669607636679223209197187312639018008790503446487466076795695487270035558569884425314406627442267342292949876512405607814748366019414674588668603580939636113631347166220068754737836259973916625346997517147363562010337777896997346344698972104691986307202322292719071175525565871066411714059703726406731001410961800673642514675267776924563390605196834905208604502184071568981635794079166385884023810752080639458176681966177111566075020630107687172878126806215482818525865660711935295169479929706434587227810992169966353971015473897497516000550914569422429272308794601951382902177706338142649423512984704928283478839733504449957490717981340856795146560623421600081762479594226381871895324532491233343874916221618928417723563641525860573670340006326424256329273717496998606662066476696559977675659519228940656042877415695574402731734011522728317892019077231667942441889622528629320482106676089015361120090354612235178036225909720234227287287655414289817946691443275794040455890649442023018696869069571828393845874717832655660413828066311852195100629183192735644936560599495649141272989466023209449300139290265427643084228805371811346824844440746400416866906513149509975413332289823470046821332263303321564242661232210990787922514382561182993122518432899369408554068689151368747210606493444336898546875170035924614542868481633805372476944696858630503126415538998778497128122224718861044203173179516868541074899608849874879069354299416162636036051613874752326514839710164339736770633843711064919958610560263932690739989774355100021510799222597041405009941231188790629836282227661863168158012244841162272001399785121751670413044374207470065034282005385053372787851439527462077436042128534756000972778261465061579697101455863860812671270438356929123740431498089782171663406104603908114217242159461472463976253297746837594169292214154080968047532110109576349049593522361209702893550975761823022088848302644071292164781728163844531520767767462439386920597116391960557559487897788334160629524639489637391938485635979544287937548647227312159065830310516445755258076938994331218148427261615725189794053004889094236688986988957263228596869847552728751512438332475311273440355229803710512597949482444425671041317849639294320282659989695362846170341105784794620276833776646024511561331233906298574115771781176291705083810175105473827503780282354758551032249563755808542932947423419841822239031806022999249685315526212304324684079355304067309585819877332568296086896097012649375685998654980508454235033172406094035681689587199820981705976306085941540651671558622381360615919538118240312117523506760838800923512491556503048059353401644150833407957964976971353206121855913406855551983928886992839536207575196307944437805260497763664337556179403482339854856794868545830063505004607617677708072383874860760849772644507882965515347062938350925453870049402136230041396190074424391636639410905812241290072080546002642222802770802415456461503887934140044913579269436360038193507591998293795887865735169758984670391778618792146486467255373293362650348570332186489177906357763425921595863750068115989289185959496511247875580742363941788524251551930415637427737504533641165400320480634775202464997138597285397089141329974089328485684381436934035373020261641259458223001869864411978588940851749743058734751461074737556561921577398487446705520602083719289090421234269062880808444717682634304487164326247269867618434493991580446372725616450468278734860116710013532417323371907013029862883251806437312847928851278135189831575963790718217994452192343493731839918653232776656106572968842047365211890589817242567207810693397438433100109968530132116796026568017700958055060694979277329008768761019578693408453282687946916232036936114218013621412061730006442548901571500868288513643796601473074765500505923219606826255921131168045811649219127519100341716395328889579331940793997048577812704231512954279249207381448063222298994188767311595188173444913910408329497027448897722592209717770611396510954402218342797088418389086751054348055767423587691747751876756652828588799210083087625799084984922228768364620746356707576168593687731781474040208893017326173759347382785973640053661133380294958695469755251717048364096214897300688206657871231521147774588893850815056871288019092840073262992995116674275579221518115382503067155691217819053623066746659102482527242746408068162354279891703069861573046275155020147310035564551944398183153285096996744827987084475738546041155909388581104956649664079018614665616218629604358133824354869710900216135518382837249216666292011351682738990959842649205795528769287957513178992059187042535269948913479153648646025500103290834637712036700252232656159503094620397506829791564497804531185255347063225702471486711814479378959980670312831176614318210794472746376670379981646805758787583583904236608008442081739672499645624628671522275482241565048594601730989064526439231192691310116101752171293302629076076536104697498864557508788337548896447292892608304069204564902849954572270621646560004989662418806540398565601298093916495121598570609566500586914742420851595015771850472614725276379797023659921275235777069061763509989794240733662909860820945878239044689174700469736747853211811677890657983855214243073731881110093676559147901430488555702207671833993098614058730134284014453087828430222135537391537954091058032111127384948649550083966810274319891570163318375919057259631896763507908700542657737674492935044788216721153954952325581874118624734540096369069435707620199789869301957896174376866407811482328292259906273667824401516767986088324393037224469705097039676197788214131721518920380452073624385300627394423329058025977242611716638321725345047261206366038681985403324222150873732353056143968284786407004892437315796303124460064952358773120544846239358108561409453730968072396234510013546289322362832229544238657805497514253111840107592005716997552276082373074663914177456302574600202859396598431238414898914718024007682035448488008304737999911857563889280110774741427838507022301294053867481263598491898495893358893796552083982993182274742721321092054550146005768101977739932882912530767853003250861678102209837584131915854554865350410569840558878619775593350600356890525533118832316636256064914613096040562205940551507141835458887002022590416969834072033661016376507851475637222747511113220896661376177703274623122953112630606759870233747767093234721330138126402860520606823861312052420545216122713645924067913890582815326391945389332853108403264928904305527421767361103296766882835150875634741919101836445707310660552235692487521867083846815268449935657246644782227968379026461215729345250627308881234381739570794332289575994833299496443237010183138788384080223367188886963479963617246851757432487182389553615479417839936588598047202810379951490421105276664951996831553080523369295394168453411723051934510915504858528309238242574895324653099397113871396228183226462913847571046610218674601794214161232974931766077255818082088299145496367465442565644935902608225393107931066158855694175301880658716629296356178840009044183690764975851556368259507502591390615583184735559191943682132146357628677402658855427729356842918099181824221769656530402448867582783827032064058770073596880603603290874455654709673188875341097388983579597927774513729330631025161912158939715528898149462873578265839275401899459016438036655733062845663547340782629944217441224246673049660023183236471454667069013766843508386283530568587408933424740268313735401781272798963982074118449810246999518255538907865941119772697457979136867124384971113007329854136454109333844519377566537553302450206784545901131327954754121053364217168306684415768003957765277824185196794834585500027082937357844521003651898423792120161733276251281702425056201057284304470067800576870212367108339462090561593762197397613707194955733123056289958572599272835915678356159659263301923375273160917683879852089041716735806162900334133918427013763565385226553983238128821287252641661225935842232081542428790935612088654443692790705450640080999844000842406779303096456949818914379304941511373106715790120923500733785636123183464876874960086489406021058684034151029204693868194952658504670386266299879403917750742170964131606908096121466092102528878231596927700559240083743469278574615064958314628117877468667809465289971561290772068869542467226309085871091135264858347734643511345580384571945735614367867054699795564662965016567945437524670385602632331405998190278335488251422472664282051111103372456229236700660695839124856073350377684364168296083626374948556832537340273566624585728470660992290785901343463624777929404621025765875365241366738127400083751762657741979991014462139298044871012298638383166771120992576976508226594339889128008751351267680874106104764043186753418533896973520593463282271205714072746206578232809466565218589506380804129707875640039687019089739460129144677926376162765129450178028834914635276522673351963347859036461030165612348282057873510329737946033545128888899427593330786751755753922017000106499424305259680504931308973630192369941788287417429330030576692738916131391441988395181166672848704754473897700901357978846959041772528186490939981341927418138580773835606416105337780302992479118235311113059923275740320965646931284617192529208257799311709592183643096452017017899508953993287460487364296509847461668264085916647233560433264861386665653068826220090572193104759534200991369020083201546951347942855489801486460029317593324211317650401963144838337959718442823718724057774988073770369468664385767133485590259290657958736441591600497872374522184873146813126633225552703830192469069734589477306898774234333072786592865393111864540998726533341152422593606440158771497402734181347615277294550487885350429359042687379419462747011848626421674031224240767950722379729534943840444726627872112331388303893568273080173212371829091745556697490622820954724290197531844198568424209922441865783396526200583274680202110964637497366360805346645691343344245035152810233359145112813515799347499408476517574175779360246388203843130035992817723287627234084651182888229082431996118707443361761331942263177424299153335738962998279131162820890555596186944043817563786149258619623321204783970345302018658090556187841748498556599276283936229202672532403401962238047833806903318826826714313465266326987565162740950996161297409397980850544764337394322752513303362794341113079398061958290559093498339770124153347527463002444735070437269224535799771714888463335489914097868585188453182275120594063910813117687716298710442433905731618012772549917327117582433770358231044615488063572890859789875848714257555398511283743859281650044484154914826635263229097747406599314731927888910400318415760945272140876222438757326586105627792061841092192130570096335865704948089214339894416790236823521486414319224444160425253876738812624692906371736822574749932474343215833431575259453857114066897516158925212044432110518765158205448803708582320040160358445373222134288825972902888217992731170430201706662366362672366669059305454664475318180221680354990091660647593694539407192508056597988195241871866759784892194148437726408370384581073670065288447295152878945757509965094521180640694970072909828923638739662625118995660185513087447377268253332144939335326725159564460216747728288808820721911589169261967485034572621627717319110788729692237238649541412116077976045340747715694829765714409194674028131636947441839626379347013515096747699384322842891608737093608285506365706932299821615217537892062909584585576701463867264694400420594381643482086892463983486536172353036611106842986003990829738918529363028367419451822996188818119963150644084612001588543060608595432714502787730864322204990486173401375019539333909290733907296490987985367655052066279118970492141979162937617157441895190519868511678476979368258365480821674556632075742599283655731895508416369258164966206781909605723579291634740522536812191832840134764480350767541537050304757528735559242440778302839274772735775499912520457824789669024463595838511296832216318575397953837975982982807016045645289257516836619191139880448567053402396912114720762846704816394160121411201479444754845251882342843866483162798529523110972662781567717255238792300670934410169767522469010036050468987196938883489692361436166537081170061536509386474563678849057370663322511814038538536716926001335336686270277496499160655852355821987448513808986428847269215681920683847950779575536216463380428172672607675023622415507353937355417887321140133584887963734288452029064393887474113567563972134147943218290739706249456050632963688781119951824551305935363753589909884630839555978571125873988263565825964270964406875966733583352505614103961370208622045168578341807750529711628271687039440996448698259646841577686630822309138031867668576781961569333545886707627331602817445545158409814732153842706027557299591283377345980590039384047640359446276395413389053247836923744563285074659749909776536563750382027292398135828139986716530396607011731082278198032131139813407071395668302174479640489324566378477152244959095029787775265714071830476987923759681048379544718223668987374334074264000008473561522607132099766762299755402743737966794692586973248043532207313939908088561651078797679660003046428482004938803980201585331419126364005212449622655331624112804184622875799218396108886242562907802403172120651996039264945677568068224463280995565414616839629536027757452776667619247303681069093720151718949473461499131896877517282634656280261643336360802851573895595479321118543269802105397449331801950723770756112970372785357286864805735678997859920184249522809928192594997843072903551419385193659100744494603849142924352086737871840950256168038696223036340531710311587102432897621217423273813570511888056280532728580486720532651061071180863893822786095365285591074136682859383886446186409512694937355567331831363434811200244336382096935739251275697956736249202670244172341005309077115341041442526740023582453451798204695929138020745712986497510760342042500968087025706645357913669237067318030008582577212269982185021309291291777873907021295032945471848076951127232983075149245529500997914317213176360636191833367276213564630692112174142491271091266661978955337715233177836578809765064472339516601866334142456782991329103046489643626818389772602428174011367936652127099644276179260332125042650399033871922901401128801085417599724625868740894888242305562023196346883522067081811370942364095703503191869815682231544616689332341378490228864086285098352785881276185775537735631781765198304881269728934754809922125934288994504441520564767527895251198173441272915278123674818931013578378408945320868040518166397632247598455503957445431432135348849588297158829193757870873397317757336763030691239492212612826367163187040503566648996112429685621264223165266952504369655323342959323383588302575034655614868459164466971159333092365499096743298128040373741385488240285204109868643597338614421881623429566752347566260816691601368537144622490165184814902654145903939205505334826214084954395019826812223409874579193980859860028467338128432883386868533673034808112124993342224135599589791568608329387172611375590140323419701428968533831879034618365712264113153555369466965025442137012316225357393768997217901245019954474108057755042559913568849475326394437003161673010565388508590339647829766688383236739625018214041703397485149425734254830542571174487197651223385539979055012884643478243175010032644947343073690371437368174612534670951177476117520764925654096532201258151433431541960245683362319385080317881842558340038796675091123552887820397444775261918709829618117008637382205610666572883146455158537506022018559099822839295458745511823966760790241999375062702055723265862516445522144552740165920836578511837289239543112095796838522839397091463262353753174690278669971891181967200220334425977906292538047966737549156404486307539000346202045601651712637073178035100141275108532552695665075008099503668515290542793603071038131177397660942206043734552852144319798490171515637104687693740503091536643101973183295284773563645995702147830394117059824414158305616529227933163619435560588413095280625212032763456534958335479595029263173716089980479910092589015865741465451502975545990018703635360680661548530819918658702614751795388939717533645212579557848910828233981673706845309069120148412662482537987946832007042119470991191838929396341391319301610886795770645624750540671391076051079051286678152812162585513091927796905587346830554247941528293812778924297220840107680852682795953013342081802950230980748434672163052762233040071105162013081681613762336168500925866614165666903880349853467184350985106115968640436741552730957503795913144434468263989770953896753782835307497228462826354241158630637067034972433790740131887733332554150735815751725519344701766669247477406341744299484398079588400202935435993245144477157358915256042626317995105303145051229105322271381792878175315163180617308032625286429075761214439581541039723270398846937561949013031053736951776353621522535044642063099436089679009398251152336011136041440450597800710164299272183266404168441975526345185100466509106849084031926370076797141946385537101014779018859273993365744919498003388619210520347577916761484837760858609588578729781660114832122629312047379909829426681604442967680369129637241220823820784844033899640714334919579655668212151412674096020179268148164008966535337626598866322736169840861001050277300853923383946114650407921697344121404321495219765605293184081165134908400027211860051261569449623856254809431147489081515476438447292316552182157981238735174858555378217269252318872886281512857204145456340790147840664694906145345711427029407183372849253333641548575714926005373219011037751502099435480279666130459498727271893837532458242937660250713276574844151777636683628701768979109013108557493309051926348939368845302381278867899918943306987239521891950663721732653101159764852554043676200421620646282774202743165865026067311834377261017127558472312481009995320445772304380314789700399206198182461269117895004927812985671895604451186478165156768630941878776942455034908769867447890530963438313666565694986122847070861373504249521908094511767046625160438132355494257450167683697291230794885201416258557146768295633948462944273391106179372189890800781047225129836079671816547366525337444939078503691413329815596450062996102860666725785558368603956686331977305254289890065972985605210890494747747461226883896147632811771317520646401444827992015204323783205488794220088805451158814567000322334168683951792997841897784282121204518413700527993889030059922533390465989981191938614264711983638850324443332104514695899268884608619152438821847589062612592440029315899247434722507484963852461473972523374716708684778266524846577444108947480223150313031978901214504692977536796975842963974453678245872992697172886984053237846914495936550017679078726491534147952034475270336920040767612169886138868769893451608416327316554343020864235606264595156931510785445474561869268886714948640679676000307609755976948179435727648904205138215405182652941654705452817553249761034449107810799284319736543320028603283822376128978775544335064964408393972852694118637816159753466751824816972036190012106112962376405566475661871286345380644992418452299882361267344003436480714070249684967937111074696215071327988958561908380910344410899362438698562437847489541632810823420193229224383519385886837742492786118850242054909947756757357843228932166052429888079201232892610385424741762364263114156261300453346636219409673317926942387877887254710492900636337294867927513231004044706643498732888244383535761063135025638761950764390538712819368508497388025154525856241536314009301758174194615831114138099334380970160699761588910740075441283143424642925580304172049572587144366263554999862199424429276762412382300031022444694072241771791474880631430919105569653930351533960186492098701805870709827657623711813791004835785627178709628886994421113119837215505941046118816448254935481058071094918945071850646750108128493920184729711140520623734983185408306760212688609813560902627129982889134299487184947905068987707695403455222757015027153671182746409230060918353702313160774147404646089002649597648312111841251910740205814059162246295424313520909399878469828505674523561929427213971581500645979942728572206485632973504382784421291424605639564360849774027070662350740610182975016192696180201682685713386967272690701054592718385794661120934258340605104987075566571552170472407122792860939035631785992852856077894434743793130985035615292557629959256581883601494629323452308166914223369845796221158762012438695874227422500867009651378732679819118574165853756820651567601508416951797792762975410832704530734211177387332416332092267679208574688947838653000789679788606967525645480512074137513423590089335220143067681756399049908117339379853992668853099830074289768437100090278163723356288641188992676375465047275205449274044371837382995418258069161311969598349356850508282207988404493122961363114890772376032975926869195117103468455622114211237871406985874321285685139986793819658994019790130774452328268910954849508145993741748274835070145806877521675447126448222100929363401615327751681128581574236545987788401221764074046029821885775344717581737950475126332852166382062446802960413941871234520628872827350294642941380841634299901892995560685486459955215466435952346390393136067364663645009039937620939637032086514095613358088272479981341201528835959048984406439450799507514251413613705382094455665454232331881847962214473838482467848405775401875698674376260128427677132367302116096262914218410468511969366586991626170372864588557781484228985523643341612137133411042266304788815107045727561539619249174366968101963773893579676545295775995274609116262857393642496922519697165719015415134573437434752392015119566149288088816552117677687767449858823162437002033094903193357461114773861092104322562465403647572146721492743222439733765229457695860640680442520550440815726546266546493600641466519066596759491167272019675492541004326740756283947525675848006166348405082090615167111706716015157766639648502784846653670389326033283983452558602635141830735865318448238415157628444743376499285612291844512291291934258568087938120953686666301582368958886783353288378523935513892270387165720608236441373841793145754809275983152320564485169400349086622611135500352276272644506543071080761170014171965216759403869604460192455771731119369175018073966381278987103692697929386232462454315018597414345107307254558072173593934107379581206197035157093252049072971882076908432995268307866266922859541948869026640907819172077527394652136888144181590234611206165314981454520293319323580314432568893694132115316336918177477663510182605621387718814461121352686223683445850305295162952877451652639131990026152506376525456077496822801393162252524516328375082997943499082992404034844256451224138504915062485969724957678632738484288544791657612263342429648127506494797110483415976888026825522620456008811059071902703134186561837117954273567141911595057476499007686284978278880565966133724777638324648756447995118000801244006852362528668222940154147725050690809696303809848760104465904934378764682175200740019000115611077492272117671625686286162744703961848842196674275599826040980085342197513653640792045881741020890616205383448871809520256277730153053584803294157914644271331391361646463465473207089744346470892674006539643148117869282074444810924960282723675909408988811159951417056356996048791095250509648304219971884320798995856415124333836817763990482891940090004156881670083402346152074034445916444764725729798376718912074101030225987718832100627651448206656771173693315425523038516954825034541154231435755411368107080819374753272262027760774464327985807529114813898368792046384217610301304776590465153491610356792544455006473230302857452896124020463680767931196735512341623213838463763267233436547860389564461390581672075147211037726863429914728893421637876624703909042498931924667470321264832088390100426581037342809773399526164588910560793808021135333117689768205644714943340795849247948887931502633596609922455241720142861952326266580585016059799395095169853115468259726848412401911357562475969207998307534171880863091108956125418742371626041296242058159496866963419926998335659459621673198700031283125831045225703886450887824874457171993690611597274689872458917349909384627482066398138169871781505664137921126713802440213043434089969706970729735402958208863670218238950832271439186132072751234495640029768923025219447763221419039490615158962892714987511550769066843122584126916737136147520091948238657527218618518172030020677970841238059708548294588996496452686402286118054157532190637907599317270479155551829800868183332164083503932676986836586429768251238245908292277024592142067748268800358274257030558075420934111219426231473489152214444821649478747951159263041179673768432170231561030146020687407693945835824903840367050674837994916343934758032068683533166477113506910739831787993081592724638812691228341382906419982546257134734409844512436132835992718797466907889610888646789551461095488152351751193486978696667627994451958070513149360598139780025708974922772445092482179085621101456509177898351958556628079865091572202637375153952600810186194233071298545664270471167056519307036875687090934271527867021891919043296480905264118454987058336955526225647550142498493824206598380816645620760866465541662678582877173574661454188751430970594079503178007829042193196542628389569045042252906523683294498754165429313916579651265920612144248376783752305453690745668663291668580616477106650140121564518475504638245289138628441151687842858834243020839003466318160866580632732032610859047580581191929654159123288911976676927842678002525994918953176781815741947598222590107760200703618954648186492041621585258045074584648369029146112179475917082662612136142972177354023048126562257594021402638547101799440413542869575169307074236587819071400459305599988297676802414249246978741701219503032148715784693318358892832516250041611820161468644892380505937934480010544617875462136082742997433268570591292287784029555798215213099895877163436275268843229419554262321767158742898586588405124240071852743002708825289364745221063077441107653884383899394287201669990447886985385797888879714123241084034295052493693022461563963949987583645514540890631132900110525172611522199076980357650280476875933969816320123054390595908617836398896378709919029997854735121851458463776897202501737657943443667108255021070820402603695798498493438833287940992317637850533579092129508391737775047322451136368293171121990650969773438365722102562906489946773045885759382099317005917273689749268583902393993679892475569964529122485625556574323648931911242276731065140042481406269472610902006280166487919690588455886073348223965551704819446962853103246250578116117792379609408627219498099114990582974202454271007498904515485534241426645336167565435873872801542862934893732027586179104183491216779145538690354229451841755928270025847006288609994559272047626444765230148005304293809121419018758030010779995952940218812338558751731847131317292123283837173278979211396967357540677504654411192117383002330839594422649816023807723553394064306062685681808986755214802518670404427792962716308084105322136063285194968674529793595413624612403532493427236539003660550970596041153181084371963020512859993316371450332128394747819209504551341045598743601830558925413993993310527687548760017194118251744617950241154894267654330594320268569158144862455260938203780739221401923791108836919697599449519332807021179975796635898955212240164061476180003680301671728227506327951934189833396255724767467954726251979103237673103817872509361344581970817278458460399733709518758699453733477818773755627217483988869859679023370903493424983097905405938769439007160332740474427966203660435735918139236339167699704269353966241886074267047415251558999393783668628130948436157853209414913152661125257520999649112678713690459467979399878637099995136130995873786440257215874866290370807401864904065673682029167061700673153136277654995029620597859259819315715415552845842992327075776633501605785960718459105279926410273532406316093850366262080824001504190240112819662141366483872452773948505521297852023777443939616602042081116650258920731500813609668273377168574916806212791792336004546786930048698772170846170069561164450905759497152024819041718740517054676421646407998093902183859649498031736735244107545750916041063449462269192394856069770373452970419192303941713228235590090602027822908644105477211274064648822114133916033938185523915179784600663633153153167738953594416583828060187130064636069382574746833097364147819824803148313950548409043483326620549275366569564036985078678323702911557955527153747605052926748263587746595067228843930549973470983075641369260219839403065094398220904185692458698921801057649156513719880101562761827606656492877366757106246386625989525059157262696531395846495728701819159314635902291838470846916312588208769661661793069411445474577385416942664725833756070230075303648298397847591140909747077795905530648011065955207291458703031198035863298884016603418226258912169188801014292133400257028331142658337738969856764103913808934609842658370658827994004311082314917250688214870472640814604352721623142569710585514998464330727856036732534502719360678388152161124040379689373725238699711996655689509085470520699645620678954526678855467883682211822226386243229945521035874679173819194972446223420889594033088736626607489131223989638382643087916838833108037255064168228109704512861483334683864228960663314407261480974083952491703431877814864362093762298534282325067610042694260649683447638897541109000013840140184194088846083395144822104923401388526931102142387125653098825826062382132184286629060074572786924107675662453683041885409336412170463743312007319450408697021891024210866166961153191833248135328376699100623824852227784863992984418512011531895261876133527287947089042449582282366973031517366919284068318388431880242529206610875421254511013553940661530424329960192835447378515833134389406196212800293590467766363205853976218136631764536151263453907857333967299973406670529740440577822614347466487694857257146747029933115719610400725962540052859578476709783656018125687698565574643519718962808533915015761322776777777734058795344792269271740844133495422483329369982324778371251181132880201630433475371445652856716527076896928190204747314742413633138544161577820727802474836033205247716947996983807985134361931770480433851195564720898634129184822927128310591893117208849472754286437008933900431601616997088660950859702744607823829723309456284396717619206249220103794015180818903388441271400145373295528183152249986727458448912398230597653509505903037198535051916892325160367402145206981494653854610437712715076552082650420590884998656726809937693688547899751701808098440895590299262862846555906395099399909569410494521423133948222024982434812577021076310511080221025092161063756621834981659089727756633264644948542681327410475115215134144062796526347333409698296495886395151400822615802621156047351385801399263490340885688027261079346727887545347600356240886380903970982488089552722768042584019632114952042525155986365603514484743893043049783484946166631513082897058299675310547476623638780449844420837986184814106531220322143221951315517704425078703671675784494628509769295496500257746063775695723062558549338624476945180296097822470224438331790098436135137946053634337156468741890085842762675434450896483337637371338233363365299333175662486500893211571608680941686321555470898374186703289082725059696317880025116299193627610079340137390647436019603045232774768473769742729608973687373884679860380961864698747989435465438604285986999102629957268238874862528752632094737733535650720705229882431548449208312327418700544538995154541918319120126312884218187454548882824314732455063800702459312365096028568272684480105979038719103514928642020009658251266112972718918085354354621805483278998196799893955826287851938954297456109880886648598979766079340100589746816090275207401051891991834945530409032436821849524641963044628929138800529735870168634230926283350785454232869508844870160171714332509004959132455788252347302850359928648801736650784475318023171434968161702809727126782012885617617789041674084965001897998677429151779846406684990846901192413967062127618928671090874772462339698859024977540817053581134659186210954299886720835522869386360605644986105331793350865912851931955017077412863545106214645320621889141765101541202824638907777117478390967613164526129362572300854100648602368577113504777153085740563633556887247897803737989284126288658943501608946211652360782476115994917969571786422366102323658270190948401425826583014849330494880396585221671726135333629236605233591252717910571836366259417997864552205271454139489870125699354540564070144524920903719339833176202981080337543668984827584260989240965119747782904072339052727072086856807784254120555798961396946481955725335336735964058970826141168846392692485526608805380300929198818220548665729742933093330794344535077746488936481933796612981526280029575348026043677437698484437734146552237197864286975988956266011466070676273809420895558968823436194323777216093638149887096662738496701035021402502376072831715004011134951578413196989337539809806325704033613913364172379820842804049378666913642158348845908871700533281105416009374355559923637349371561093358773145479801789821406681600928089747962401673073484185747100299331814717013708751733729673794403012861769332483711787433042428215000051105584116290580202554565367822022408626818842595767068661652675262458945118450073694197906461860623451705601270041237522004604923187063878872243624638019743937278551028744205233454500769145987837388280625160417151873639914255209075921852289189738565343840364562335881204160583340960015032204798461605958916858110090437219800904922959287349590414943981801983294805110733876250621678872945339768810050211441416181884189620459369639208652290743881475241836234428546270486836838278108719888416614901290677401295960976501466473002317785660000540743299153236420919512561033064451647549113721313789234589349222113199994452166115474340076584626658921062323626227776330031822983814393214918744354661853585841987949455885872266471008941582608246322023747391461106730045190353769347429175583742527678556581475386835811252494818479889945653223145650856776397562062045664070705854757687703424661321614841249353432297288612863496491060429147034952627811380871928038094992774220568866497614687217860925031831687985827840056974743583356261046055023243617935894328387793372633690766645901539269306938625579659742381024077339192253274459152289499688075963071571083326146145722922484551400693306247177895306135392940322475526311071758928609340216199453500388260765901916464123414846876547088909512752720725137577387998330575662910667959644298900370798578345395471590974346908194904776374762841886357757913105186582725612441768284755435792620443208351547677281929149594185768524119873549165864764022837583513440625277826710664984416651909684065614644016180521828029164564438036089108384026943590774118967468684085463577276374603162193995223465306027716478766937915613958597684811071060911912834643679541580652084012512094171414791200551548637001646897863924069528871212842043174496232666012244840262099983833589803050130305622282403257218982615204672243349718435688509777684050443198860853001151708462144370831163444208070631715030483981525085576422222691934504413843133668756650641656246394727693304266039121546625445137553738897791593231208386295268756598797298380335439565228563623935633698417403492033099655812996130900489186812581421720750858059746306927769257661096288774239263295816789592498902974324805798664671860742718163498648030646248093966420641673675439481401451722685027311918484816605011692233003813972190648430020234033385365547590133651325533743061059929684156282889076564810541889557878814167458615197428810315940507591511300591235893211170747365046725721499729502415314759938935655823806852208376970487756048189362066195098218495658346152839284726504151555519837786382185693901411090752701613438855140466694807099582592839373416145641258075654596644424124869561139463802780228710028613120471075912048578276456832051837364316137819253688363295860207049196947785478722401838075080692961274874077121690756542946916694054818742374935501841254839424061547461004295313533590667842974114640143340274687922485505462981077374944419065179453754860644482718857652647230092938772648551768464624247494289680971293322568266149964844582042018055406237488114245574652607939957464917879986561948369929303353345753783983921990438814045299558494879833713015080508600441679170091376346159337694573035658644152599594799330411672782838713359944673883267141899440813150166279668139905710125661693113423319685364701036472827457726356138894131994378460470162305194208281432408078915817470020754715549219312760664345435216810892615370419297968092806389678569327621651232748972598594147192276416077160990638487351450936937738511009811815887710401149383471774333727173812881342045208597259073305238076255826075312117571642741584245598986758048290474299500377773293584805441438298362427512104471759589119900084890517936941151717440305377896876287692139458313416136975902310474920458911555825542996077491172225723450466866159502093647663039554855058788810865214364286511182719670209796585596270959952076868326571280209236302372737070680861769051667049016799279174529162203383522733973905621979641826739951868134599757212424757448062624281547786002842104901415477223639740381509415859726049687678843068375507648123586015632011556138625831039910070690557571544215427664847164153783809462745443975829138542473237969714917107268835856345009520429842902080148839527534051652396985163436040891406876003190805308723674638768337684197030223154422122068112135250805957064428906007446048356288165938265282962108519182304917033706474083391088226910020211579310722505682790614793833863626168194950702865128318238743222062984231575000720646165937884982599152891678600502132343661610810998503582256284338328595731041768616309310007287964324526393351955877833145454449099114508192153166800397441955223512844793835382068569376541011393886296775070702505336005034908469890204518118524334857691169146069940700444045068623792689187325504438528886739563404339576548914263809054716950478075262232473402295176511348862323210361196902432870291926884153302222641837139249505859549724249044872133081180345249481321529776978060576423694071354485068689284241211513624279850450549716522910156898565831433213465062767053541512276025230856229583803445216000231309384860468998286968975907825989960213927806286271104017803783907852334359930454904441990518405771018433604265792410397334026476565530773051440895298953351283244931493437870871551660924336205861911271735941185432143510435965522415833157695230603740461397241476649214777772743188019108633394592830476575420624219816571677188728143153507579084508370402303808259358536466871596669918151194771091578196189261135960169029187670177985220646246636201188485872104184097762375729245241254690906147027108251495632146220139777166939014337741234940825535373653320006127931164137697593970233074238332176216021667124002779495187148528652676184142158413244241567481130141843927606556538762950902152187647053463153635134644530162374848612463909489135342546610341750354303102766555643107363828591821518538766751464228703339714103525425640848343741564047428020243348688562461724737281177162363171370973985601431272117105081103819854764818313643926994964682042893319396312387321625654833520617801119811573858308850871691843365205222232957528713634891531830976087661730266827991832013757066794791820265703535495831605963744361751818341554318789119200243631551883243775075563855254026877983430485974164470458063039869437856689952427819383126476792193666209497968298569389806244293697817408139083474095594531285564336103832790424495120737724831637550647162308140647535528928948744618972253932311824055996599368924593751992113009248934672708132923904750374341058613800929739909152637076367016183768330168552479292745039680941034675808072624823636787810578857380828741380402713816325666419913874142463675180612324092714041110220052999090843669684669246568176162450555166549148123602563721743534000146567526527571104346927714874470100086236563578663283945363946532172997871221748995336991504027099104533135846135645160021513546595839921651557582523115142019062475015865777394185677674488810765906451669711987988761549792705054083200852019096573819332429127383468877648818182386739262823210421820895448609403488073093121820035359410508241573698453130496867733026355296202034706500921335552353805797832558706081678264593078595352329209950911430189901896798627325449463293924053687833494682609367687815888703886035789647791165977560755385640301900630721430113120231621665408547706928293818253734224765339416419807576521172389230637607861419192216392219925160751852873165330338868514058538166484324900302577560835558147651488651939332858454046609010232697847627743503858949991127097234943966418167439601001775846767452828997009370227735627771507253120150939840690540303877416230565198582492592814608622359383101661091406047644873195516512130196122806606684811024479707240355403620750307308296064518498595249957573709861936351154478185613996416569331036042319649009349063045798823542075648283512004841178119971516137138795740576718876331635624014060069581395794159848369498490104931630554606246987957102976428538951797784902592413092211492034704994623149520050951594341007059519352871903117262256188746004508037467831255783967491578288514235322287019469186815203057066468213570562293621831251028630980225809876879480484294107488456616576379176965399792313157729409953546131164320801118690577315791218011978221373418169029944533060491098731192515895169741949015542278116865806586048469216488211479960813880981266664130511363932828166494964525279816617759131779597444849648457784814545790155780857715100930976984843626537495328267349570588734582532493762821825129587674204155772944610111533767242143705458561065294643031637499277499534248328042157326465474472161564140131332142607089248814351249258574048930412748750543626434361190888254040338451453709524878658364381891402440479025884309322437471809135757411669446191406145097269491706469335251830322726183303104923246405765186703284441526733233430909744404719064448390416942075779267209641251260295408278877985809884799538161478973069184562983321892175275366848920277331724869258865376016560383339777614692587120909985310843742053928686946362515751346931010873951079249096793438805953045889791073143336570600797272235585805933733442854256914077025843535684111750743032443504881314782685018457727251760192691103345928697772666088230475300240641974790148875944375890540797456276121921570831351700892661417489346127652617032506023936445209132166178821158402027573270057478620355489895805516917725437854825216565407048421378850629720979038455067623427045837008461189169609603522609146538596944107479636032169298785018311782443563378529581813005878503641448462852713563876553336935932457204059625154426559648984650956421274774020979212346037749271974280805940618317815789335276341764258207239340377391808765990138118514741092584885764410901797369024419179295643720099729990303343661975537132248242768284100121349019021956422098119701998350527013895247650722418825528346358375082262089886262925508728790437353927749399982253727576215237310102030045222975144291234786446397856575092424329061215042010966640283303303813447522099763274633772471307000982954589187863181283909124617837241051010377868887214652133789311629866929728333800265064231314955739185698009518307368082970501765469135104476390693982056654268467806667666470804240356229417477509470893872177731368946996555537056816064181990211132498183761989829521982382734991965989354309982463493182667722849517680044435517384730409718696110523221734527361634846916289315699078865287508384147237707285360535763768147023582311664381136613389952583302701181800083668304814534931597054112003515775242610881208282235028860553076980126211495027054973483196010604793510230969574307467091320616171899209386694310502203954793872658093586794114029678453426440394501291490426152651336990822025054373731223957829133830598603215452442009546910437372419096775311339962751814043757535101886511335241977682341617035842176665792130002586176852897556864619637711641175396803594926799960213058590299662776288797831872571846742325070801868401681051041033827899774696501445938097848309351119541018879988061069781155723154786886955753886517957621213862339171336267999374632142397912893470737244386929414404660361341780626791449630980338026602875321071271904769794280006125041784057688516409263300321061250615970825648953288417256348976771069000967070547331784513803435010194582617731722285069894355283557068387241373735203975765598494832611325172959982258065771861354464146686953081782115616082767052582514400929104776809700025776364920773328283727367010616615866277555326766492108468131322344875504050619510881571205921741095318066032559698236307603480547355536982836676362292445145368778896387703064240825282741895362841460994661141144401225410117446757980587508926198102885900796218424168042990184426934536944833126394544050272606279507624217867159103357134615698016925377679074295609672876998458114785709900858357718002293126385070031963611642516839220209029051386762075998102204772049242288097051375646134986937670428763206379622930060152316544883592139523449759747949914557089665183100784835821498071881652348859102116416049150114879151526800551774781819075878000158535033926949339079283299529648270893696021645640503989269437283919323718618700383218154895602402316722052883812870090121242653111066401816846517576732105075909021951643131868504393026356951158128730356552177820070261288680407726214460482302416672944207263523640241393028901568343108477735749138432243602314586352858516365921056941014014319620729234610194978187169262021066741462995989832984723612761984889883622688921666664682038879017758251727775267715605026393616711384564224402741681893980420131538690705524310382495320246629653580424249586434276612691334622218056156080912556799092321639565679519331178868492768160777396493479228678446103582496502975177935932065417193225848789305450246408348188312476682375684052231192846620363182000891135758418485262216164643776606809400165166004787465414890548718409171502101645753922441385015315496110622264068235889873957481727624247261090164184547275830179895387705359114693079233027748346266734588642442555141405380594024915773074633345898728796679558619884361176626690323711277399668932648741461907374096881565265889889899231411930950789874895199725381845127615152745784824551500549647764038534581348621218333751036930600403300933325546013131307167400583669617869603632119635529989436194510586515420152983015598376867033695655592005158867508013132897162719153363855333941729244576247274347499465494663471633836045284244664367305757369097680072946984253843428408708110164194172218716082506695934343746162911471024447934086338670090693406466372353805444414922068580892566859963792772692735113535985019953541414431090365632223158499584811042999575183319644075817098905330588280324912164185434057344477538102450233559628048314491934184220097382267789072062312641442916788858896293043497415006375802625027543487108233003770930649605001703575143878839208538025523931400223583682357973609118638749418182855228572519943904706367308604275724360451309397269979071609865344944114633018268385570233908555955583186349705061186547505631147618198694827423488116165769837314420520143024169595022401550822575675500864563008874500675188198076876007316333819206297738390648037535547320316172525692181792434567912883586854465453795940274149968115470524171114764207949509528103208352351314850408186262797832676345870314906829419953404124072593953741485925179186929950628776837602676818314316079114917454814048536857110795800217940835573096802217818716838309523345452826493454770301366543549513406854239745443252670563484007454597206697844137105842370826286890306769408910525737387088411156697803114493252873591539460649464511273113032975677938754637579614070693396713658678513867082755398270761302128479758727525479061148184539851623619251001259313269051129324257370792777052651439971420570707955054731738296428085147365765017107510092755663880648199043186536740485009500272754250102492538795958182064668140517930133495885213587438938329154639663528692254904434940135742949731018186923165435306999768413504262545742881832970545838890082142421258370499760510392767786849768346613563455278499520347192742566812226094354623501894105602146181227950235961592154448674820240922759489967895434495802100789202265593266018141734805386185781037139766004847473855240070262995798008249360831665040664229996300058411087969663489859579204046636849942120689434714588658800188451363398692161559585627794784508385184226832218721943815005819897503924349598041608761248335845832729198792784144706101680842242535173751527792830825553036972898264695685283566712523372296859662846163311829426566487096679558947417774776654371380904963371406901626449371320851396691978994461955559511802691808054573531286916440430376819085405815530631797024201713453165172143925662302565735812166760029945633042263762060781086881106686841448403910024764968598141640361582112510059869783385830090935988919738182258794204956228129510944199478470519844608177890048210769940775735056437129679574934030914234507826844014996700616899344068490875484900000001006745658040652798399010043061542972789782721095922078440755550537673947177491555636078032227685806082742170925670203263801914561526595379585764880224747308365181128814024519350794022168105156634920697480699154743924923227341451858701836207276706897912514907983749295999206748176128096712444260114550749341939169598931429406688095309210810119827294738360439692663385406048805531599030304446307593719062246161648838139945757713547093266627105953670551980136735727855600940610279496672539308417388091383858578617196032467548865699149934168478477357599533599190416941514657563323907927674062148181186238397557443857151645841961244160159053379172710948644815524660025652330405131538691335283282749867380267132050451802100055595506558061796036937108925868944810825013460249834600249659069953564382330210467180058487240286183265143633928394912306763213962261340141448653968074484060291873527604797068886734533436700782362874285464103151058800661996598290676180874429813187075096479885306585147813535920162490048018446532213150897099729235391365951586161485165663887848811096481777134450050917224877426347525371459950639111719124625368594452525714234976423567095118017508173651937067786677230339377821998405883604214329415005137664152535871305463669605894884729552762191328818442415947118055896601557163119006437074132096326575917483560914203442353921851804536434149487013486002556086037018259359932411652966400807535016838636587220229646157535586688682873801371533948479263220318422521574355143240127367479207723854391392295686367194430715194709511888589255669375869159618970680382544143590677319662180383235502048478005899987999146316250602976980620049787140376938831400258899565291925411290687359679059154730538252446469519943711554417444665070491141138218946728970429499637962508927230693268554184463569330993422881800079876154734606747211837516506645414307177402681532196614514668769910918796576019649321104481374629757233981029224326322180151331506150595785069870432861261570136016641320287244205428297044333264658604957511764550688862692058457512583718977843901912824748280162809492321987303967246711466948535459869524041708889614416202349717050662552547718651155245803280683244253048747076164527970200742103725943182855168305135884337680964901198121699829901664455566249774578649578486797674100605438694307774587650822517330790053916277999071201163289952846398857484910326245540601509742972853314866727262778509583054802478918983298510980605278016465318529668408965583561469714042704963198764121538261665995933497620375723924114452821243254078115678175390509439848637215713959394849450754479808478490726654425491958042987784506034482463483563603255769185223634555517109360323240402476383709861023801441420976202672218555474413384899753189166962984391738314451946775144678021140696644145955544598369779140300201268806867378818929408191937540206816418038297739543882374809052872155295196784232684468646960671781591964409557447415481488962631473029427052242759184169573553432214076439370770009988915086937612751856826587774087790990582930345587656306748324179735374307217970085930242115027077578105334733970239216403293429267084404518923005063528101141020854297094771511265641892792783109674631807991377580863216595750692495750325163241978269001251690188385092672651612747768773745089765512196631549938047617971773122321039902565889958236199518918133889164249635764794714292422853303650977593123931124808141148454925210798355576049826143134259531474512109865862976556614572472256825087243471039018571397569205657911616102103628689273831025877769285733883130036460009871766871288629171308208046558436223156491703656466623699267753617399142406305596660528210514076658707942736148928935103528168420778596429224189558739244042891465619659437196371764814435448708623836682527009010033929797913457036409417428779877983691400306511418661798087026318119079948692907191229505729751741983246870342334172680256811070242430199533673509957970036159536263984692673895511501629182589514532648348582096290911142199898931656141701752411619668293104941208710490252411769672993127172475957167930608736730771511181358795727605853974852982457869608697373273150957515182771856670694458807452436553699099837275965122372588672969273370963014107748829564015607476062947447381127678900347062708677406740572531357449830628110323022033807470596713982627706545950195561497416003069464451387859892813621110226185427693202850589083103141146383774425363998926807691227038818097168569156419071244437989666484921598035057095920519799542243666026145939345143498635378199905295757445809554490996297777157944555247588356551282938898707765981535827650672102054228169878930107199269963426739635866260599023107672004418570921325085938573751546494690533159235989454819895633589678645185875499737034418395116755799281495000455519128750970030580187253949842120027778514618363438164842740258052346034677903293102927517018458958446577378822196388087631795141489429337405938084833819142966683091255564665823272833516311856184878073226383633214076689860173607845963789328399745512432677935298898348919784686072555874079332373094140298427549020076170873275054503942919670498303112057603700650046678860606517526610418145681637798315698537328684161229215867579293007699213398724211975454457422455928058936500417573837115754282879640585433271810727261754914099318710389137740734818295052359524186682650443498556779914765610632483679929030250342747512657310280844381082426478417976598859661230306970377339609731823260337848060035471272948227514565048527923446142240152202572048049486953058847450068343906471718215125915530403296970459479219031257236880629708624656673208352511138432345273283314431287760276694437010834027930357921286788439979877261013218381664154812430972785778945698590604435066161462622952206257917745002654169828391091316704877893415200345571135457003279862298997293341165309484416742787085205145037155248933323228695407271037980193526497012070355036853974123026258786194067238184682994449248014434934037699400821311204359029607399470802252407009815476157717503235054518763302659841392594699298453941370365519137598869045880204593185947157627895921146363156475764981200876663298915066268292438551622973332816835448570059054720773873431196881217411771568385836088389382333023891612556317101421430758230697991095190020331236452780347441679809393825159345208283196205765734505144878913946160556211184305280840016347394088323468102505744292826635629339402956895877996376959531646202458564570621661982944572675711630903807232896943089897349795718324088776453453793632452684387201544552323094081288681763605519146238636067309837197516318817192576027891676375983846821646118549031661381406579021258076667894908264600380623624257704792605248787803415198447505122927303330025260294395895968605115615039184988139474621994057806765439715006298452246904518629555477846161535849717834951070837986885268310044877099266143458127136359289732625463417820312659406570983180318076864194400995106494096089482038925471278664916352313916611000237874693920818225909387589948527115682013864841606142386683894167481494361402098612170324171982393193600292220911974595478059138631212194608429089706867958569020038536998796117580718453562024195332965711607060032899923907247534791491347418824203918239693240864196384139235452837374185783445667526439529296711568533153337064368431325224568311459252313821329151397362056782270223457900087741762279634276251192226816636644272042208977025598193565692496806672585745572432099307406245303516391636307734376230270425774669232907958170441976635146237100689369819296482562703349673282229377551080309603586104131141346541203531934342485649244886368890556019488097304755727319776479792719976835566859078532979556315306034261886404206272622755891756592191027805149844580856798306197004038409249870757185745241933389404121593344891550434414368918550900219758187866994783285793845675664287530194883648965721008689958761885079572398145912084505556080282201953938563378932633455220075029347581848100243782906454453727715075431573223659628304293958347504795991718289097177832316514123611124574155966324251375895236678745701724547996932050761089984720736388918625407364377058262719067204349575853068381672187051529881458676449326220874624565471647872208230172069214151730295934052746015903875489861115054364498450933505243157028787552478219569962797386014815305250418379620599415651095833764823036382540549146115066198132860553803852543968284814324573186762075349072234828671036212792877715675082523821071165081274136899250499422120449170353969094941939823479046514007474382248041953019080202468238256484275212836419845006244285775236981285704733547286754166120557782102171432986936200885372349666719310817002330703388631247546098068796439134992449900222056441064684159921527428995195411728396525975750583214995632788055033268196955872906704984049077879643041999723031366593055914830992552564310683137272276752787609331385599636443378962611488298537418303018490463922363745671002672469864581181469776077326571431320849843762894458295403438737100218870880662987577184125503188179399962301831758954879884917267867559741883567166866962086579689149155628140581256197133548164389015544075076416301246428566467908451882487229652559550279968455418108181892013242600231023825886377666040425958162153015281341809919281007612030191067592125484010972849032424461109824323306245901973485973180344429101253932935742716141050694647631198766883749128418632362299478435377790282633354034161157921409778393643841051520594225457450001588884591446705280663793192633700880546586495841289928993079126788717248286863040404399141770098510599876570617669562236408696975875892782859275113172423378622818904244209148476030910580985620667590726977995992863932040329847886094437808145053798192974839620123631621282834237936568277655711102026316291035666120379885531960932415962505322888817566815327166624314903654601799389341906682155029658595064790167183527463901864173065521167158225976093489385761019230156081349703010839637208239408098028096142808647916712298698556806742026729972903130962279182905147711615393760708628388322527011266672989747465013306236633550694950803498584111877264920931579559657013385635172670829265947711558477071940146659345310265936214831602826884776697587923027264698528551331838278790153401386995807390500394107264264057955116387310443272677860672679532997447492620301637251617656084351467026269496395537852110276112914267216864964244281878254686685099672006719990538859133066230532332739003477425047932749733629908789386227500919658744896573982064133364257704450756502172576268809652241227882841130553202399472103126042156001091803505638566382246649851467260291448839882788332025719296834486785133871785103832146410983164476983702583983420195823300115995540249025796972645261334079685746851484770412396207249175054811543860037989500142407221034896270021963956483810751835461175856213722971065910050708512829726182450134198129850946402428186447867125347745627822577360412135814496531142987246007040991497082147062205774622187014281255903401489987873791837858195395700590922438050655807226497654068041235720384288858713261155434624027064579969881101517545592539546040101742990096357892427615842772105568344384954195518572626064206727470183947486981452340414142165388068412027613589155749617057237184650790676957970138763453173320620111027016380507744612445069912806230952701605671543862911519247425740835326598320849012409667694079579054706085036631025396482021485128147121865875982854090125639748773203965578207525716503714027509277312401180587719032479740782924840345342725493353672846328160371779047979020800758766529179168875775293989540939720974792589709741316498451604698515406256213881256410613581132933581251022081298673521949407608336904179311563218794642462266849112106652142351495511618348696910072953018035929488320097440916048585251812422148830460388108818443590972624862133280194610006656520166780418021492774993066165808252498639195256489133979438520569264434372828216118345376047774515525534031844679632410186766905302444582405933010623964174882393653263025674303165004802758873078403939956043815875043335054190270750957085948519320781437917158207915668348415070009713983258469138246262573100183480158945909178608250597686486273467628128162460239239514820940527746804267712255052391050245163373774313333356738875213264151731833994473512762584211757252875262236298087932984184869213153479238481361680846178505471333134275145992805173951923649736237382609223557319011852137967490958182787135322830228833026963852222942030079450361490504825496959045240439411497212066822522577371672303376695245014930960183026229789748294709331956453359410896526265328217267199283282607657142110984129704481061849788994819648830818582679773248507022655095274752650630812219631651655523909243253550848794234765312618679328825957870842249666368202961148114898021839926127574085344380215437568796027270470227833743841260392128503206755779350242962684660597717462972933878789594307045058990753879346974516369152874614366540639568007414507110452045293051750572339376108298582974936930035274404171247107707182598460633878778901896186430190722154192918265826154547706871879998635599553705814045365318027815871932450044705836970661771908946837014141461999722087535099195215480371347421786373084228520467928597265517450131806008724384812440561148108593099972255850480007389844720584303869547816239625936701838752121770323668557621664098105679685958664137213945409185855246073331799572321219095348046292264496198434464188978902355837526577323784905291472361681633355495470495468367073148023632891488482423490158957663464235150330925813160830817400187198890065495848615364239092127652379197033190014937830416141073492979082376611840754977625627501298038147370138679259900216226594295527467349027808504685096663935461838863678062974663277628294166625652491022285620508579749818532496516832780072065895406488778641624102859494917497822956809772101501012593870163121015636204749389646695479410614354917028251131496170882322545902955344668151614306653555677238376056732986711063096283522898131762911071682939820681958450380228319854366121589886432201159079713883271941718089511304654394590025885890249962840404380080345534048555726406572845812332596819556648839784738251289395924580051208278613480267011247769917293173461007300489691535654334546506572469617828075078542468850350421159671334880935660462499810443961442090337662121994034446797477707892246873208992385052178642504429704211546619936176439201373570772693405088411055038865474883887377406205538163220888477039303601464611661874053468120411081348073749863043485295884879367439237136578925073676525388339029708335673210970704529738825104688558330806825685548973596126411561628540381659598488027414978962810361228767055072589015377193772262037723499739910095791449082128937544167380167147279338988413961275160285068850170791023137013518801517772440071368301271340992050371512489461034941104381064257445725201839023816369983124798954758009797505868216187565223265553302768169945530550348096502224617601747821300607382861616825122314138996206204135539413138066197253027203800791052574248248730420405793036008687141522251185119672081517825880350517651613085831975868314442667871899766422757260689965394391846595106036585870197016499154403989242579362403352798845890606236185736932086243334998518472570663169437929465074187712111060421722785213596212434481679285435527833727819808371351240920652692841863712357699752638537815144616096083824719458166365858937279539526892434267468985415696124840238807790202297156084126229367105470366353015804299211279735199057712645375098086821302428799357060821147629486573607077726343784939078635469058906771309879330701083532818276020408805424185999249378462558504298367421170007346549287897017900375806358613211652757141087255962300235706964983827637841930471948100274322181168714518919675362781624653756680970722497993049512147709477960688689239748980990469821425422575500641904355181711206620336177417678970003167090103130040730824172209848259419023823898626440774178382998645194400310883457347323043415450262727449893578396549837017781846413792575313001220415764702087526345242853549291335954821855335744765211916296421466419680114734676053079020967476755689041986602319758033835903050777608454949234867975170057778473183288845746249232274129454966174938582145218372057171836054662688571386261657558759344846677162516822525772141151608202438097716375880680563681949432760118439989647629546018298924450282692749592483689469356608815375704633612347972376446986966990332905040543376764285501957057301340971301526633445661138571553698062650209999677782225482070269077788096572637949791768025757261766462460908391216142453073653852035950956964259923403835698375949509019064148371864698403060819009455826916966068255971926761161056198093048497823193556081468681868612265744141116409756857074660738956297137705484771085214582586072013059521068395280572646469453396232790677996027380982381183229759543640021793118198112974588643853908681126891957930282644701979182218496004549222169246553397789993513363152831071155743635494896798914982443710760576183152887035450016403032669173073842071660700458772992096766586742139494435688198595379817161956441926229083882735299251854966724866271715043856980563621825340820140275646928184504001283523711281779652667545736036220294800095313747402144994974138357140619312453557605141050901881821507885982994194543840914057680361256708110576939850581671918457094130160884157331672100049270523247513730490316222869198498246376084510457147497592510630395391720187030876465605065075227829993999050211124353378725659498307604376452298848557272320336656657839920714830862189148077116480997970692190677359891842461076991181901072206576555599221203444711582610293110499846687048267182636853035067724406947702767753369458616710522675470339922914558017506992336871444088131330266211439042534476236393626481956094030438757652899650311704390702760734368507619961808068639701242938169158998249446689514183893566880967101891421758406436732713877487538539304800654731779222579965725047144540927537532753722823454379242998302508401425329903458493977360742462026818060856811006599974713687991270187377159873120407906666554493634876844101062893621399819069941000944601213908941797831498917858771505137696400606690544931932766475868241850100646372603795813944709060491341272203617237598564486947787522864062639607685248174829715248061876016459610912253473427230029287542945108742269658905860333581798951176871443438147714677734674326583807016331424129032052380751305110125245379554687611279968011244041303328575136447664804130210623780371250061373246056837747505742265437350033099998940857050300147637547705169952159739479251983585553050115716597391729071445239779322637082947101676642802598112414127631645996292501971734254189038497139863600278619252182571671331438014480881245162479550025647207690031079299086872048021230507686950446085563495923531126110893450647959187534791211547368738893384248823267945271617321489687801511630833636527862969012360743393122021085723953662423273215474229779882681570612837905050597875617672129291825869369582961079690914052854608973397926112880918686859067048370304232520658935804292118907505263796503854666666263958712794292847209592009692427294892147804880019038233440393922924096623796734129151936581833614080099652616321492007945067588260811162960817821139037367681385606747923051871962431321247358221671613084104299120689386277476394813020844269400477485911195271423787717312242032326851342330071215540310831913642265997196273291832654766753918757142489162962530779294357416951531308524759827389815283752783943427867231931947606039660374224085459094196706109655538276006234377352587554923667948593398447498613767191861157977982301277095752868231863865232457042903758936435468546693728744911151435415602429695207410519054153617889666085535251602051532597270905221799182828885825364706651641740402450916149909831670975273051314523741253187084221291746115450975047155425986074810840601900442999520450990566530483567925976543657979806479795474268909014175476698306443069154666313278637678560991839318994313814107608111755505792522405703424304043523348602164141522270305609221181121991398510389256942969266806386056725116306619207940282241082751064335848540950539600621130757406782886913649084638947159538357824797198752742912886184465933024993735549582182066568254936440512784133008483538626396891684270010335718814114767512564182890031873607120644936567947530687745819368013297910835808846869177756983630582987818044003716239529449914972405840294550482121820942308056297800822826691557943548525853892834446110370758906817524540593560523985776318840796455541172180103803585797189714544759426618396901265842513867730575638350722481724201245694565454690265741905852681310198541671314606837253305423402540097955536222281538255779160832480236649302545171742733313357836262341648715526777676718837475738864045061670848047018293841410182610656516137838658284128620452241137209975437629543326027212488286669821901198671997451696931587908797407668036228995651799991311387991989825638039967093354847835915366569431773747523711214651883596242834925211320718426284381639482984746489400605752971622647718888696307894181612140945539668981766102276078153216561827460092276565702700166145720247024833729705327164746524898083003237906618250877619652095981077260248070559369416339785269019853484895977413887622039568311000768534063499771158593581155945824489929329988659086207961527217487193088351384769008699233970895357359852331702005631939901491637468091677428127117284961305221441675912056948624699944967154862244154665302917488380718341575241672141801979096715042960803629815493110280294086040169290953961404111572460020554784668787178370049170890381996668421720716515026271387488476527511258454672128573104000834943370773143837480217599350754235838701115945408601709207262477752053658989407429058904525891333871654300346401944906044386258000637833631683008674977111562552121058142280360050887232120341666952320326139620317156465796435041989015990508173694688955177335828298374308672313756388886173304163826306477881433125811825815264503912570261380241938817625769026897603233047401894413251659717593287430453203197532550635139367657909217099594285100501724111101904064900488687042298343014245193375390287741412766774282548011855532509882469316268032952760194255911463493198724961875609550971329911845378246152482171688962753070308519343886576156468749685471394727786335153461788582594186290882886061072458875371884209642302176701944097786799328665727731888498244088489053378858997255440201378148498475103858685852850361089102284893033874508107785558002598678582543393267032062898985797823635469533883538941614277656695363972203603902281376877577140011602554981555326896790376500117244296186860026551281660026189443246391957678325700711543386606564111028179804912287831222061242723000511706105262523107468314771498844990820460215890709716125327636178035858346660424897995619816972410527179968819031549729941759122943524502676003804092289214403589922318788599777945874170279000676628226323113871985995949490972412347041982393771786342514779208021008765289041781040786368449563013446499730639600862733320354676171739869538955495172259086448646835921054754546639962182549661405518247032416068438899259124330552679662854933874511692768660532225075160008208516711817253106841877150200970772866065743270197448658869376359803064433861413007973428284838888429644581736598161534588305404492702753905753841694381519720168087516192440595533286670151027786293531417508299446033275913009629538818137444164780679217000997240758255153336998112325454938467619507969164244630097757168417653795587038489539541238588332079245077434321061924119602278332768837037686227152540177907740410807621141017479436481681460966908762092030630126880277308808436695802158976154750181046758561611516049741925831720212080412566069405349193272213519939585087233072205668863812439480634467248928285308424314556520804965707636452656151232709819460550595291889502922311584249272302833361392622575432237840266001020546735333446468318451814934758942020858315663322996932842417713560771454547648145009419544799745593345244076228950319872320174717146357628339479484057131051996835849745634654670886798296528607374236311224125408516603287630753244597928553546816185133750934351186855295353569471388063186367781679523302352502972791066696755611379311450620260073177362493276554647484219538116547224266717942421772573140151297377749648759100102184100492730452156285978280188320548697863944398357447015347478824336657995557626959179974738307394874622102381900612576293949404245087841604728535914058026822898012072038776388457698051946086672581200980450156376641782168430217774917824120658838923373190441071624298274826994389667837125215297796921554610815545799616066463785778261600033115081834386382281856171324600286314974211637870134165184051540454304799252691771899664870387208878381089595631004076487343303955849192231860841773541841762297142936780007661476861713191053393077358516066388536171528606030611763376973034088639276372453786001786435437422993577704202351161002143973940915962855053543558736565802149246534941223616120377213182606259539231681517841296813038638342663033151374910684913584820827914455654575303464913251464297028392687793403714774612519183801348163701215123292354756020636811026253221095552559932668792262403738055722170274472206794752019558109322181762786134699031130943441550923654719938946634397588106703341878539348728573624471003321670390976994073477691007053992824856977676958067243141127047592822883414821183014679525704114822912904621993078140439277443414122284493996909338665125808858458081213942719283346967908865928775154706820311489783331834963611521018068668305864508956130596802789069209883909333059033703709019650112331654550363582200536668487186188360302127919488534063233868979044951217915370744123854413691735839148707152252547146222447656733236647515148394808511778214298401187170127083506126661120478527395355359977265211817952512255712680907288289231890053849139986683689683406113284534735316303687799992852573792992625996254709907580976441770404790784334873332397399597111745999819074082717987429955928829938913245182133124782234682324645495217247936327439407533154329954269069149557018715679890597414143796228085140079082054483960862190352588879920765802189937122824982579922828362280074564405355310185464067746451893587727221815460869174604317341054189330321051849798740221566839810332756139016139729505357355476665930567899622177609440747850331079324864121434376560212730826775762004121547674124729821459274298060060645274694878363985681808220186569000310607474962271199481742851852462367569650227768025184205726429215996933607903212057736165006526497851630760042428620840179797000487179821364589903489428337664682205227526684380048549219029724093129944780280631678014109937193584688757561453186284595730765532646705960434940287460591327077004581465499626959957857446140687466583814713073280420328780394323624087659554995181973783983421458985668818566344395640882899876322244199218219384360211674222432584726984169580075594086567791228463361971786482511089575169723459288008279619765021356827354691791039013326165139323743705158893764937678491309764212532860940100847821799682160358452749559874086461167183750554032949815263365520878739112117148290300486181125615775510057310394236797813865593442503240218045482760425533242378642398916184981764933429055640307793324236619390730087536405475753488957395764201223189734452473502205835348871440663360411419726262364320360632352923500780791423681726921452745428627474707792636262425295402572204677467651555326450451251098015670279916505786877644473025532714486702503150707199870823390734384411175941613924913469763750219477868748245916108395634257321635338230557900443065058185454731140623388822150615822134504306743402249385780328456280341577641955575355440756820128131734392699247750605985232920055743132545774598698290047348174498925309833499377276046000152754384935534458754266716938699110477614242033658234536241976446477813496116808022777741903000159407460135312745911871189682940828647551894515335833026070999699409704102278867513499745721575564230631297149593347839335228220048205936419207124627942214350634327823736343247655483786714179647215746949049053754926594095129019544102567549673711848017483399297532436005095059790166537863822743342061477814349228360830783731481979100764242676240649842814586153209446543745951425412469437874873809806650887194417724085301411442571636521274106860367783816564387575679942862779531092790713543867633087781659090223292548263376805083205588287469515530961332585431988198509277200699277114787783117242727698502507374184601632755895345206162608665749802579507804383153194167549926128514925000871570823700130267890838304643865608687529289297849111800988542478232549878452069958924585661257763240866914409911962556563197570503943221398347683164045139064935924231661432652203058804645447736005150290433100637654212732491305983367042586473932720021106659498892035258241964695470130155645299645466745962114507539757940668588648119881919198780191819348934584415148768081278082074668614732434063950991157744229111233503574063978819165619549555958896292829686736594142980289132227060385737884135713355424349127382232915551586894223583088759433334023810331483997992365267806381407568598809725141999062211224593211539895659504352444547421311398012819023810249228069722146541283458520038775983251325764247253487126601924638349754963281354192620661690348499666118634921093953352430309573987474891797744570476397036140936326397562826308330161735078706301241801784196316860120642738856466211849006398659196647833955384929281014595695112243751550728717513146532855280642755637929128201312860571572923149785319945834101818906025271487634412494629505295688919363083626023358536935717606903185311319235794195240596812935418634011877838034538031834215252970513089564257306074103502862570608079417666297700983782178618297131507451880326403106333495179023399570592823384626462886646951786728582364122348048827837114987710164800918171388810218951452797190593287043629757139674754026254950825417348899400408227300776655288627625413475897011174857637140312229214587001460657823604993049734239142714755335495983928162873128602983651958851654294292086334920650003297604522939735506194748995938856600911330834439264534546712341298695765657657512247440036195286542439979051465578740003130662329143105689317808292888754562850729379874651424989581953768164338853773607927422608222852636453062826142167845521716272027812845308124205413030911590264901279627087988626607914976916854431569952047253318577698648848035177603168654505774338815908036660194723697392420493901738734544599830958412495094167004628677613546233426654770720820739158142949673563208934517936883764538784514390647276695504273344018057949727642770935903685527132991594963459320521714295031809976295619400337430386924967029490827042839499068953738118798924377183247660720701590649162260525749818639155376367360714349632648018406688344952436653753653669979485079482801992838239316437874826436728999330462479808447945229177534007412615515167805021332120716763579935207082062510631209390979225318207198031425548461722355709056022951435935467597988667595027000012247414901623251463937258598236675834560160699159112955924810750377721265421131078641349466274630586725675536757936361593841263045943326197886089045786692857740238080270387429852136243779340644750841894556345353113606327269155384457226599658698104519124816684236536090198418327686471350947145885577785794368853511241501032303677276320409060017616285051416101986171769966572046887582863112137443272924117011714091604936754651119073527647381219127112076032127529728031118125608111781054190960352526418167056838154833869708094418208889621553196323991150651422395098574754667887365224838602228846322140725383636711985950130313422687980009309306248870972842205215964912353449850779459443270156303395421028012110030714145040051794870687620815946183511499616169469889156245866141975217885048159348218759828439383797410298650660105947154086205804283544259790401773437861339437456903458578581155151011770551730131864203404946809370597909595642235439476610516135492466957154983145097716268257373497320753827230270859531811200167070202016466105863268425378119213013125269198579342388563390761118994265336345596426994204410271964253642970214182277707589138940270988327140245243967701774236910201595819234016319324129795835020184962154097358981219585815725626380976743784438759388286920561622550722166720590170715100751923853313156437114487249846726429526398173711497695145496455998026740544459733872197690312429327316032864704414840026152940101748148437710589852951110668740716601180118159852801775669563137615613432673980354228366508745990514540383854660329794946990271056929471302834334669184093534107716289735978308437178515624879579928547420554548020439095467126861809898607586968592252050521818195816529411334861653114039676590462119828121402971872652310695655610161737021937937486055162953704808815432438657955181047057490755993548519482138309385631279996119194295661996981786328329833412479901884145269924697967452149642062194790881443327998779200474764548437612645585309185469153168324260474644102578823845319154613398244283265526892553581561906838823916264333453128006927566337024392704494164741976660248029287525505299686935056682976886939874468265576437338976187106574123389925186755323120570787331376460217156434575201177446567714956207851002038129349225045903618787166379067163340115058029041338319649813911800144936634481127270695304184259760116567700254238684641403499352248871100100420847900395883155992893202565871849375877145437534631217132250273673032707735673656842209000985474208629679709118173990883841211483906352626829618984378642161293732507297752762216738378588344385099099188966903708581032136605380740670551044463190288463433743462868472354418220261591880721991565129650051701114993569817600675580976392251329913948623512459652605965836686102636447281299773604881158144479138032688038039235275263147625790769737209248416139252818193937012199408506555359759439996939186108135828178149345574945338168301657763830900595895739369382923603655573085641261995944973053860482558126912632431929832914045262829997500947645581152761855267904190507126848609660521721431770777102048558943483887818925125558719207556916296444718235613008132037371530225894558799853463640321808211512327149751119390538805292720068335284918082239848933390956064239450924776149659999822232215477521433143626309027268619946300830096410793184029118901250203638024687633533249240769504914701805689773197248714929044679027261116807796270665221029105291991537451518991969190779874863354874853341031617333607687570068673170459182316066291942734417100472034783915548209683205794665024513530750411103477810533006082684301676735185869839204623659701016118647846907998714920423612135703602691137683889241343427988886283408155294643356405020569091920308216972555285103789182127212333996989329450356315466921180722940912049300129294352147331199458533349544484006376553446994631075308647126693199194469316212132473473008237871430342809962279811978221757199483858074553310929616126300662744129220288272428655273969571238475247339759280587964451630671534046064881132697046833333493513429884672916791192461541117740562801775609070390770762096643480093007255829463144424712638354690155103252555185020658571239001940168789593646138891598803057764721382627216652182251739601063894853785267933388177508681428971227584745504284207230943057395127426562373975136906515897240211314686049013498053937136218487591356050930608201189316921107790443436114220396898369699053903949050093591111721742273674549782480765225996570522982499460893304582188949983206371231353505597724994806656180126315713750502111375585232448027564739991611752811950506622512421042422845863448804969508863523047439117497019788890363772896753060903120194193356090171584504052855303595942435800908770809980080111438974121438448867551389113599768992310897090312659899729175797770229844446725002129813090567870535173919027639137534163169767117706483725482804878139355635429785024533722538509511624715914643121070627479160360935480914079296035093883497832614362257235668210764561295811588868190944557987034566536981211970888901991774640715377807196949670444091696758456707708718463523860688242135207840443723737324469691105993552258020287574374373290458217740115478529981367621060917041364861955464643090390052440314652893121326609943794112253331882676836245126359759612510823742902269750820356329567086239269637395306722504794374090328390377093464930109710385472021993205006928156557187978172734656195346356395463222591731727469859319618587089901463490726096455513218849293166762412722127020627838603715473180548798018643838051155164228428126594375106028860960659653442024131312439659474029413386022922057338426000057282689863195875380872420083851826421650866451086655964053963517884859378963693794780694651918593602593438371232573558349983980674391811263714437497825887699648873183941382885256408619795586230138298895243996303393433438594854199368916488106496194126402420968665077683048287209910306488453713210454442827621027988196504325508441284969187159719558327788945487121354207183139184743929587028996034471559131988651375042282814370342093940693451451350184755878014929609233081485689410024696210749555102915865292925002900023928100698424656100988818553695183984318756809290988482986538896219282970318570134872967465463470015973933922418625683073959640680609960605184619116306970620951663253783167844517285261784941270881031283856658013753923944144505233427650772523429389285706571382899429532905608425236243466523755500944250279261889457683743891813573205147163721010789979484707313846455234424617701021820738405588828092756649123881247252452442882380817106834929934348520339584053645575773427192417064727253450959356044075364092079806003364849647398290042890440693187099065914774549132864932783088352421251170525739027718812611764134191322080758787706699784724578886139850563519665474858227563110825674385331958225961770894121314080819325769079102766979075116152549840996793429781368168467994083238648363481808709185546085794212676990078797013740349521804090027476688759423297202538308405171106677799280815310919287048751571424804654691626926030715615240611237723350620217031769172544355693663708248671084306258666812640360760418691535830052234554793831194078771174840622772337329019677958385677557818862154567467090968551318890858566188549350331826342851245550625155355386330883172144992160694544791144253511853408009185383583972222183243462708449259755973730112078636063873901241673917154122653365377803916059456566872356437955136515151556458225454399028629477215668047916678769223477655409611699307458382193268084715175355423890237841340526869233791390153245515583349556191425722667897124412128885990124736198716740971754797205254951011091331506924852091013456443479624997124834034861223636481522339330939988907044536738614285319425485682375062354546964849082044096353514518136461201122795586826186537201757830253560667773662418556402654181446456934776561513070643363769235038242554612973037246559420559795233199909184681092133223171706565428623834381981424810780704526530769471308383271322009324593174918908374166179093602127616230498686204520038975469606543584934407511726890546202568479914747151713342045783687432992301723404985687140834265893774164125187475796041534878843988185549372978060503232183580001064438445475765690165043457472023449204104433762823267495150871410180479732692353026008194555331628260936417644550922763282875873714998042116596178740366546837919170859761573315236914168919421365113217696220707260510082471979871678867794365129794343764756195108431887128049095963889329783508703621677849075810139668019431310334877832521608244731271654203977965764715312487545305901805096664050090014242120822010262252672993418405241817494214379266944746010578498114835835189363204079432531149561862735690099415256660505088208353672967273819743415026376546692859122660382771278813332603915448987447171619977294697102205540000958938028561045031783738944191830948687147013795851957626579772878457386440945963339647299387533821367793769263779865178705355256309683495123150115183918274770591344114877763340911546063079910782062460250167501863389422979847041472056679942595306629884304898491961479803617261125113439355977793178899524217149306060721640686101995059251734032018151469724814333825381760184901448500323825511722181461114385829395294991197004697680869640939143567661524289493496473416269602174024821398458506071867554271195380971887476555937429656625523038817197679307304289693541485126653933732580393001133823486025916259750441277166632426370691552803504711522044031987079743730338690312173210567886800319661738617267292209481710198619507097047389030577986198284116120804705970259305502537762938983292502663149004847634074025749886792339297402439950362288435996708429988296613408007626778237729388252415990591468452461438818361034524367901653640919191259481841442990703321193399577023450493805518558607655106470448932472834055217418360578049980868101646968441105268084521650134997723545425902020979835500548461482620052625087092836918411564205943902479874683294033151280710569111259876756188511717063485067691913665207328962352921392251624308473023738852423954636966814360389708723683871247289246500863430845531913889723804792099459077543283968209908971960641037930129161581198789833675720546863760399463144550668275483414083714249419170508788135131290638451757667273368422225267784437888534073927251711391413728836914825562429094433351130378223841811066158311575203337608655335081162444070331513367586028406294474290451739357222520728444290425818126559000370104374266821908847370462175260358968932262802915120900438626601929502298184703161563858940243426239781654745843442342702577604135043463595411692057053492272216147605322343547651992754733124680578732324317170864901069278713025336549333782848920658508522166241900691605048805891812243422711168554267402615802414077998134906077619966617409763774092198364632927508514804418701830023970835473416889745480063312900144043411358454228306690899097541402313673379435986955421353931910348273924019041637924226225152343255912806437648948400140537955429142468922376208831505443649260359933339482712647258410115112378186881150456801263950810635863840903476454334668761100811139265264278811981800718710329539981003279116814780888762398310027018743077802100805928319634880643064201162405470587137278585308886558914174742343636585837466655218086750185355479547050047715078805909440255217328358946508481072401532026689230977106006835586197555067654082305518778307119795065116766340051475975254196557557172268052578587773191387984839411806737578090892383283229295558459915446302329628434583148480899054036677008122715134182982694632311940741445391872623360212454454842451319286195082638347641284144760132493870697674345529108933041328976313515381219021091491654388057587554953836632944237132617875857631314503807889350727733084305585511374238829432123436781801466924444721573189592027315278748984939847139405642088747594704798248949971611607384617064021853510617813151352775328903663334193009482938863584712136763835571760282940964521788406026729945851179347970626729002887915485839271423745793002023040155658420821637690716586949748850932852700619269541257949813558729556187185826993368112411578885313659151875775969027219313911475768951932030734302678697533424200315048606817362085308255766053709931281677801271361765559008137005557105109734763487396658441144342452995686738002126054416609859627438736270028745961938191179641561805370691653540825330791448541505492296506711254713116248093722740587693773837297444804969936457711293386237177603571685740347770318874833351740039740845827511479743393925030481407790397177768783310040162609253871010629962265221738405437546025569864609067487026983676162014945352748326030724883618709834287979933967984227354158994000153937360281022450657026197524016356157185092693763706129577907300235851809621475572403332494235735966576528201602120630057705864372298126192273231436490005421813967284322316626705047804924174310358445953682574405267750250876961838870873738025251733514381590870203868612576504998558102986855586819634613176943738509976582434392315572590913951999738700828247534735336289787822780798388788370136775410083367890538402223175699692302934559271198800493739830616673612054663316302157988760222277885976230744386067769422336930608788518591726735551507790302732630163822951238709112788199684396846447477793598730102134020123749805083308608447856857256621531296899598232275382872484301726331011998784903812349416291179885354238712409478770921448337720526661806817412417397326483170800641307928160053644839971960319677002185160452525965122400562462890516669888555007820025682553834357104428629166043597689469846789827885417516884227654080985741567196287874943139697205464268258549875261556771938393030082253936164041997525620347195107765034307922714049267027983659011469571759503300242966559280642325424294526854694394795523083344796928823343557294641959896241514570904481503800704457334540563919629023123564753870834295589576321508180056289957282492006229530898653965202486590549109938918890279823633945153995026028685571420494980252770542361418020447853030935236039708370488238217318655470693938807550876625353355554244053020678364785237784828018376812727776445025716148490860490803694465737052595007405810005341495390882110674680846240535271680007605409901815146260995219369005342496296003788293455280536314767138544367762567955243427320800723996671250941251959786749040291916681778411423113966268666691426199824295954766231874837997874753443108384884848014932607942787649961816635390768388921764439340366256794330847349823081196522544977452234367083728307783309251709580729732394536635351231761185508926009449659194590513554787091495192412214807629358386057696857830121761726720609008086587563555459908902255943357501098137962558579750923348422006487705182742777623287602990805775912214191081675547436936905984632554776881389262585793270883060182314812749075268068120949061694520108866835239752651307705180091632263555161308647525491831711620593548580462096944188231291160367051998852078555761490646111094963716515443999192319934340861855208181187605430379197330884821518500791185940585681326556907916400363522715375044067787122706017719975619178148088612787393523448315527479083053991163475014836534393563172935520628835896640788033073452841187112977671173436390194728120688749193312311435479827180359795319597616220992776014825052811838723583783553057197330404897432234192538328107954618873442982658316153587659103556831519964097863857458275066013771805580671389107836406051881730169405234251730941624855307639828232273428865862910290355532536641522717351603192449195096545297961769626250503269175685424216660085787734182184191003297731815756924025063082807278270324838580559080186416230316393106426522184757350748757386438378891612557636787447151089898494961348968783285900223753820225193367354492382050327639619665419831243173203536353170255248206754479466996121409004016180379782381596439538946913235739355878939296381857134984259420692887063685070037228884526229121038027189681066182549985778025975036625347553207189849644093509007592511527286978054353288623081002225250294960904986598469054293215013225000210306772800123305569910399089742233246116303064030004826732346436260988305104786996999008190954792765430986086020290753254413989549604533239116995950677678916256648087330235161642102102967840360631854311983380914283879822782516889231118982556871460144375731234621151908371382891330523854950751977917771018672912434956439815343562511485142471074377608302282293454860718061011798612980445619116219103101326465101811675320596591606980831856851906406720446013613662153323107149981268007778986931206506321306522201281942469824323201689682918870823307858263605072671473643563515357386251129987228110876447157968116258334706014604907850650907281282337508830426739985222337371975414920786898723614632507010844125822541698648368634797482820662934922750148965152789821938554617497787148831656611130230496571011651330973555318488035386615656656196561319474764296571219030965015270190549272568451618230028939386651498034354240557390449678386387132264484056706015598167391340367139638314891834606442335376396231147904109884617369157614806592858213405625258015442850262745190675526235402043817751292640518468196665933696780695879116285559302254575807083076324642131548995925354718453738763985280981803455523078855160607756301611332024974523515823729597540138831621559062861332952424815928788163754733610556195556825641276159495937902699576731982573463528262044895183425436695189841700981961091035621741719851117749916296873124331143259307202457264477795333201490923633853694973414204751669288143320153628881893658424839841696763815156804499089556973757271696563627109891552812145965667160139968462905255536495260302906575914031832317347030508467107518469398288098310408833654241160068971355768932226570784063984529116637120008554024361170715566522578993210573182858727986368539354299557911528617014425209381842434292984746308937583763924693957619545101940306543286297793045679706518384244819524417332021269657355089960964842195993114911241855115994171560016456016689603991068961480167972164332071563604353352410313852132302891452981321943453314539493399449842566204604371735497932403862823564789622851062601533418007903473048711180241088935707813253618451953058418538976402875049177688087818450846080196488332945230893780195386345489258439277326113376223585101203967164443017988137142305169497573248727702268583664584149132195348382122236993547357514692130095396482682792308835647546112322877374483672287367549129456930105065096560576806869749896847794914738821271086134553684401967701704010377991508924270986894289539803637244542886656283838885784813268436714895348384680826262487200512635463425534189244689725748437691434009258831032278921350399503727604065560014313010626636104924058935677543243153837658436981392174785673993870974028000714298467175333995094903069277146485178013655154848102028525160304005800702738022779454821207283703370839075563752339974540147602787127652262204726145182694656583375976370815040381582434472673419392805772582203741628936467276031767386000447390249567040664387492777532004477217086595582828483906756324223402555344675584378841101364344411544211637288910346583815482759512804268390261750923228019774496323131471904541301461339515774041221562925308441238072932511343988263740063601085150389926805193699514516743164233915320931926117454639137300069947703034766529182751255410454918007131812524377630238998395373570842960640048102656533490141771197539579064377013015326076873936713039846668620773588369248987660426634646360553471051281145360656683775937591527170264094536690156211302134942011675183536724474437930115258974083019791627360974413963536096317083281011783171550638345501383964167948660041793061707419619604453384588052354738894668613506752771526716253329482715453008310933071560873296994698226473075792708730126584378723277208685949216410782849966976711612988749399181944155885641428085722903291987447741489279656839383554402046510971780986243671994307412081449902239207477076448310088796908714465487733679409389943852660761150117955276966659246264795791120882057574656100073075058740902233878460834365135323548487347708476873198588901241996443312508793501145029488094297266064646456153221612009329836443439933204178381666820807043909987030510600620130438001762099858528278588087254638326361169638775760217681205710370068247746216493604265636916117001892554227847289429373044020810165162560934112317080297488127474623963090409809290434310502639188872572961923308889016990260887484981224475828491727687926055018764361798745491443879567617505724435615330884819045842240655942428417554078062810589590260905112132508151579847923745956952172110036034347813463094636529342214816021286574616143677362091208757212956984523471794111861017967896590004125828524607295661895041955221146040663750350301755442242255675746618828382480974931265987789498511469336501046034232937709196849740692477943482912670766547442527153308013892621404275613252657669948686218833711479616173060147793282851422912598224872330113634563928645286473231742616747051425909898726009991440930318707534111034143720979861895694786713999667144380863563172913082300145386022935100257916024766516207250557773807921193436746842408016920935585996939932347465195795888642897649882874818946469828431472380243853282144192579303750544172945330958471972273539942884372270134826648903651820001193415638476401305699130180949827009590395634500621234759458915731583850487446850987340733756977859728689707381263911467807571983573745710674834067668895534569751197716833404183834496084410085857802772913376557938998216460397066035338637595916497046775141829699253576978726734425750485308786517130015708994138196373056270095946891318863460758183399511956305567158169289526427177594021192654791315662602377652190232269746170537759971257707599401821118410114770292846567589571489463866804942914663011159203484212964619932139302489834620930350948660517712953303290360205904576050492204707220795235096320713037239344667747887558025738906380271921820578406005764260406986140320898761399178387241141620305661501517256751833275507252374378534876330814225927518461579582025532738731424966772347299813023874062954213837499194332754954565816471774249572093187545517123438457176254981495140955274954137886799674781217655735026687516720402662472712329838780078299174622198532193313549935827228009856321740244322496198420837532753186560533138971008634945013728791775217753733209369664505407046597626993591953622685174451271260806517721767553185094426482937179889732861789333628940795004388467214796453730221989962048472402127735127609291966830371372599294464048454339467372941711085185474258266707216522594349000528422697494740090323859772292993623952641347711851611785140001717704478026799978936194318449162526431492398103085141019295245317240799495795317202603136611448699498770383444311153046002115177924848152769646494117701774326948228785697532372878709641783411278712978784464889973003919475696905732528302217038528902969700116320474180550574555707438556948611942762274657034942077523564722306982154507598917403392101916444385956920886874305673721241947965478227875811125886270153069539660292087266397110043368208116068827904933022301953819747892639803019797588047313512009681916260688135307568900908929040857952917992705479156455444759159998768197651802452266607237275099530086320408876128734125161108251404811704916213997455501502567448934157582435932862558748984700620755266634277921857317088943129385263448310939210261468520944646164534625026533616995385061202195762628204917823653064046254503798228715006684177465678690010221627699151068455631043383043745673890346798347900187012593554122205970987680753349473287386353088050948555570054423063871848466142190426590374941782049684183258094517624718359638426800334769188969477127503640521248560733631744279715732759744571082049044952736180026396390064592093502933267475942986798660305789443678554371318329059707084016004707762292652414200048872065696694729299757676567883756358273004377901342972375911708733157353527156994326681365101716889170888455605207493845575611987110753536818124885314700526549228158121614316395972727290442895566665664600176544100214771723980701840881153017303863786094244544869168897689549511288621931606368446341288971155130336794483999898451210324753970579187556765348526797811658533543577204054632510019849020474653678510759764790724273219614275037083007695864118205539816472857074168241046319966281331880399522769622940481347952533265744896748002618301301588695737666120608072108816698913263359800545432873853151083810847167756133852112014512130384006578135759911399855454411353537112671391681469053120060100094040210677065740668943821632585402076826873790855477355152597428051062833855204451400428614782864890566067166071532747646690932696626973748833862469577794085720523585369666630355673257570371509571450568865428308213122284841165657117720022814908154513678084947287484921164743029062816886633195955915142695876799527331846883276513368080945364234779935374829715375679732022670589726688508831805630490617623120698628546990333013901489789046573335225590230173402647665025417876283094480259758773588890222288369552416200935019328777503899661931539066071332716203929451693214708179552167906981342513778986502364751611635670607568052097838098597521761873094998736331389506438382380016251786738371427562548021961892010671678423999005701376609660965317992547761350393075099438914168328841605584741461865681341274729628198386716387877238711928265930325530850065994939762379411063295893908862846816537115810859109535264620205619333867257451516404374401308502985289330607344133542783851061899801264966358029893319645147650272667879657605490662801056177789766170757054558591457757365142634108203384563075418758549851029299560451225562304769693955566055262732360882337060615840520810478370487876885238843062212218997089933412026748675198848285640955432536278756062837892407838688020120247796171054421007508374181309747526174278525955235346841182830675238568797192067095386728244298245007834784015953188268090015583180018458704549566231759803505741156622502918675773073300094029278770667052976711494969811514993420744605174846242033129173125442682301390827261228967048451249107910288353667499522407781252711760061670617731115475317680468007375782137901612120266827335971028640450839220733620847001410338271161519976434023428314948027867256300832416924228037141041174247753127998687611082504445191571957231175707593575607051554556173785156550909545315102430028795601777653373634447216766442560756127452824304822692855622811686808726118929116738256381180342129049420514985062430844412008096755411248061406159775474121361142055554381098061564476649078202574938129432804283861285709423309551834175804266122958381422474362891533602330716772237035182188464776838247365234847585916772335168269566996937530187745569334651078656663672374855920639626199945816788029742406557861336244242270238969007581138899689314047535579372495334360992212481388521938930168076849421404176143117797707760790344871010565848520612768136656418834018786850733686131987285815544419753759162735206433111515788263582337760175714227561257926575956420825839933147034241724276375515280142799031396282246313304498420492927745970721892624719873554403657759617645380382836328293797784716715621207421321773370973339811236143120184594547987894476613191047040202920172885826023342245424618888741494357218195061761968112382047813981667635686066528034538796542733003467547974104939624007792047310880361478375296133409249385884629886246076042731829519817268836669311114787929206698295292757913610754988645246741102308882327442979323884793362959732117555155060512046271711935564363378315056609876589800073178462879943980809078012274712764969998313114330887638151900602349474712932392137376292249810648123014904873738182906538368292588251023236747832659315085905261063759039943518613979828463031850311313218152078505194621894334764619524163333443264483656071253484397025203997101021949999292981368561334215197602987145835757006957468169988195185209028142123932188867286774623174676987874608808092307178927726436008870307156207418733121739712880641182184354446314818654809010000688759976922801448628846860286780229113966132615453307306947594540988323655657691075871900963814386605196826629545483208033337544101937069138531023638335103085128239949917132910238197334072085037309742462688120804959627809061758529370310955855849806870861945839764266553048177149921846219863642815308015743395086820833580236523771710272170937384949397706850096580470419818816525518824145827118749011580994191933377488028179216545111806331646189410997630639183929156369753737341642361989282716213001048670604480394540744015756825596470685763120432073043496140215882631649102431537284341050272746484585690764362741857076601755780339892285861664141008505634795910010984252454894736007460686464077243739838677952551683077681917825399231342082956609751647250868900175402743510974106992623283713460205579433637826932911745818060242220770164281342463263924451536761170181131928989034428864320973080682654010347125155706263391303653787567809055780642325617664029550239972219993217739462211017869259921362572979684020699156755403422190842901774518356364515723527071160693170009237818772192400802300610722619795013518895376371093431675957167978521969851877226514170130439490772697447350197096173243571476463687395409977929332302459998389770205549087757014266054890506992609464009289945433612219505284188930640374014626997505217345023511977018679036525531526347166436769595189305367129694417875506608657261465832038712982527279597023987752345352270950823974301626325176852564839224255713683741150228176381172400770474849401869284493819948303201595962726027615797582443690828694412377765756109084718954520891952640341304419760757724098166775800165681361740398867593572568487344876942365756329992074601361421497825015715784469648032252248692878271147360013894059197591624649418176918135510669073246335807399809859117024618807132597733265833608213287364537940036270844467008628873889653466856050234049395193691985376567989052623527830104997404500287860817736177390548719696242258944567142465550838569726940170085871346736594419001756069414424126630400138412241294963276258386375297425024733322164948043956014777322443298582202257364232005310256106966051581120496034864966095110624781765694729147986848695812226736773524262169010372867284991626190795348116856274331247973357088255907960703258185344493653302941241558805598185995242152880622753485085833145640785094024085397260595941303742087290105323779198281612609767876715193853208930346036187385140485654760896124412678837265436883030844749891717928975244134574266862424440945798551637039951050618483421077146916750651870902871086841825807205328611425527685461519271460873193962946515097355385910371830631788902488721586429490852039479931545818958516511611692568503842422655276355885102454182651334268656273986966846306308543647811218525963367731659219214285394813767226608842808391716351036661572256659231786103726483481592473225994883234487354045736623540058782853029125178979261838652485987093778182325474822242583530934597218900131234326228885817642834011216856773558901679328891043242415709029236613217629205758876655288357647670583966271973065860966752750148988586778172325664288466432675654520520904422163150941536390435815316035081517342932235047537707741250183577179602406388358881902164826016985491890923394956035068743016860067112124303714970439847491299811262903292753967023257149379337375156863950016454076304155229822386574699465406904215806190182175437573611443291489230128394914402778241929499908080058434202059054457665523500606554574151749307993657931455328574672066096672814265405730081466849809137070389471368366356239276152295031456177355220938878554559476865173703983232117822517374720208393491389084679386019883305209010747979322289159331422747169550970052307291827364927947130322293573665351941693725419933457279657417393796131005578330811237070024246488500540557969405576153864740320115523468310264946121704704822861006795760869940242999061148852520338906670760878861496979399848612750082764748989573321419420380405082795993697402400749642016756885699042151019883554688291368488480657343551643188820609208141254625329124539021584545008984355753877563848155798159892442264032690014721532838693268525218743332504150293742527399869204218042545228958409965304071078222914431080407366742063918414379254997716344427613792435147191435324650500543257747067975624551876528777375177402068835389508308285241085700584418875980916995048979315263469531427259621977938830279412242245873920098295728180096717289369864714134085060741613823021535515622048044871072339272021394006496807595847249180117648617067070211904236080168286455647284440796137748452310868170844228351133292234611816886743434283829673578248204985493718477099045741947798466689339133812753524726074682045082133118561649087512538539616461804456163576332135922696787634116644177327906635359597541847110441123909926788039924351004733310790799902677193481090832835884864289545523906043859308284567064122446721146119143522030272604291147194351924077369820585827103339185990419798893653917028255742404567543182038535309748098664900879801782877086832876369569720990590489891329967247632141940744415513123184614065377174000397252714522573419173789874759202111289492445364718730191199814405359057489521398432752493905562192042208722515301481839147253467721203367658523464064825233816439706074254672064576059615634847865714956963731661047562612775674945156180247459488422906689487653922536712164191721811047675174999529266476251634015340122533281765866915177452171629815790085010054569186788865754969766536325946026546999099866362752352779452544672722571810457575811018728209637395689504593775815657618557782276267737263764329859699641674747120388039271983304788805334003288758334785781755306793025264111525265155572361031247282516343814554725896726745838945608796094133985260467306191492723698729354527014385034516518389950726137102364626907678998297308217625155340513074140997504903065610008759626621449630515411122208530133271364231271060638020285073090169289966602094743618356970425050796789987134514127126871047178434712185500796447066264589596144580245838768660848574756393373855031913646563781308061679274857084951672505584123389944713753704149565872705131956875200954809299438975493902086641534593198700904194576707516879753015618223514791734267399362161078713924460254416266239047740890801858952447031096761703799558306029354551694298153265635234682847378894166329787061836001473339962681382732709837718377898908320395328791322461741053725553692935351285826545591367523090541030567757562853715216334917722061951965441311009234662616528699365878400984681547020443104704497327481522525198508737978801465840205817628020097907835080771372689061613918228868596543305563034078022260751115220136955814172513175378712925367863262188952879213895024509447490627082062969888368013925662621861975060162895296201489098702823166697340782779774345828863113645648647438968122592119729692841702356018265097351376184022339196537168885425363876639827173490393226520982729200589336420663246282804080700149685443992909442721836528466701958156494058819565090274001638081073236724870048125503600492561676560929824488540486443491285829250248121264743469420122267235059610962096827021714886881433364028016837810415601201516387369936126262062540517478972856195984401888551143026175896645011289896001437577082579378768616918738762093691426597332014657874930404499778810500409182021135928999928004638598457824024035791184070854838846146376668245804705570819198200247590460801965440308851107635371024007620237434309315623033922106173191402558038633803623622215652364682461724624123235755469539054874325762787341692945506336641030100230480240785809651041105139644170013292334861589738722931072439302083440170546012478777594811019908746636984282768477275275666572047528683548577710287170056319448966244263913287478870658949730175128514835377140031301491094299614833695142899888391139588359640925453190050809515401231437631821510383785131314407617120347221431200266026037496619543592277369503964177884883220594023569708727434328484936103485265848490187635431248482337105931378428765395865940650816476362410143019563436411268683250362742009410196572887932238906457344960289616265498514578664615645081797036681649665710081433702777943097488281884663724574087500552601126795901983493347733824656205831831515290546128243211313792913694533491142908890404570339591245977798323791358565084265052120945047599245927285401430823107888696033208296325088617612547175144203285094119948744097929048708422561233631632013110966455966056926638310191993357782424308840750134032285794622925378700981404394738017461992852285958100584944842398940937028556193889622591579038179945688091880017225427021818387257667551779029971983298227628960309731270542880913695453604247763853260345459823555249310284583661401029563451352925328004148123101760617096279061405930602391773045742947137306281508590391713203805250982229560997408497087278509496477125148672489684013620304512299404576493462927474230349693096629435333104140550508386299810403770633016101946812008442019310492542758323798088465971609875563110062565459717171912050837356870936558765032867640199747036913074002866351369970741685238209918453491545840915085597105893035632480160310405619304844634370254506752436925008879705060222606216313259572744851486394286970704404254186380479900113581411961533923432004201367593418950957145394073989517768149419436719398508599085485681100724545925150359340046817406447767471257844632741396702951430532665921836094713933473108466091771802754310153335954807621076765126238777388541518134593249136433237046886385370082822900032607139218615977289963994630346629560111565371982727188173796772978906853210008944459276830408434485362205115884362525421088395391870202936563686941850145022319021276155249281498875108987500305335385251063713419138593689652978058579965481857697932937527039065384512331195514170824659130123255003379540591842513929645223802141113011600510931449245611110052086528840801135785094119010995862965540385709515727546083030866173436351381493987116362679053397072156823692696355904870021254523162939954734286290360621316759089495046450544912221858530891132195024266713288374428390693610014724207119537039714269717109074066297665152913961277930290429597321458258392338343396809710174483979978365124047775671584690945650030397429113329048164040781228209383755653011571241268745201509695256202966459815014086846426819002514088436599517377028183274814443330630475488624823854904744865179084558319910109808799380207120616336246542317951965050576149310684901051359475677552648750213720223209706035039074803523081204315460941424747223898092712737184936334244118873959087694725300302116075158522575020988743102999823672833742783959396065176121189475024588664874876775701368109307459594488540155553307753433761030566128213450219662863565914243902009836566396539754599733605898802425207994193798038194985796274766045941906012890225508883195779014044657737863393943172982352767617801233795620183233485006212479969671740904062903482048811870316777474948485221720943662583492824332586584168250969419944278984039310297380391989202930757140010345561758654362618130240057578129178458945371955752439770992188650039963052022184853111128512633401008945453867946070196409542240452018854568607505387698517144665858574453022551076047083400943845774733818840225971702014480078733960491412912880919082571323587263365950851026937374521198354552326929933209699408768444268951575680393474906483468076177638051696199539874254193304930313760839361871802437965391435928673240281127972646521968824156932395596970874393191892642105230872151747607132272705254679858074849604389469033307174296728582223473429229931144513132399271299976991010173051060297308626470457307407039413872100767675257345228574748614571324568998027961612134743138807023900866353878063986474340167097390742677297147934288356942840646494857465635642700691945858398668710750808995429371114451513508184669349837306186270925554951153570574344186883521473394639369549324155783886934038454618118854997559124892871448797722005049018204399284219497644739509357331405684303358235089668701116373554428389920652013395470673874309700981651319255408988515186779563919245118516016925388230152313307825014080963628562263570004073375852642092921968440770342567082088287446223291478430096617220337300688796383202093299862835316415777713763575856002260240556131342039968484121608609703846379388694411334382193331159662232342269105695375483437325281774073944523900144947681878686071844817666221903641834876453416845858051142335833151182148560386723588676947648575828594409268023151633588874677953048235130286102061673882806852444346915043198481469015998087866479966835091844275888281394003824385109027731450044476250909570451804749490841354694012742373823687131748249505320071855509810411096424562051283639601495293300669700187242440035910271979552315498140425079907902114505795151213331255436003992022053004009219920888206188121079064464127785064237020677433235923426572936303644433193679407404589187501482868933564971147431236245679245487767036388480602344378729105915872833008166467530192139551082952931113429370475657296605927559956764882143280903383820347174768361785589945426745719401261748554792770818487600613672335171805908893396010607427484454257494630615460418555484925862140054302708110349136245742454890264208878462990780720785587781632421908664245489951252628629983406894869832525153337757213040040559562796215919566078644329435370878464952415516350918178909622797577627652707992855137614074472787414982364388441997307021094487789499648318532246711059785990828203362896196742895744601727547449130408033976625182714557514659930577445270382648908677322985273398788350086588023066564057442662052441562732572594863063210872859599541084675184178638880422924091495597788806163629494743814372921912570467276031857764917627587072452234906626644711161096019879565164327385399323395713971087940318105428478648751298671550893755286280706689432411306418779594687922947337081837075345981519431294248064831639151931415299725862016789404268639096692634203465959711456636668701149239534513802614731411775422735376869017199614687823610585212154628419988243381874282506238655294450670024939604672051165202111328769025844911426468864584918208730962752523538370071129155304973157411043494204825818907732581938176740519937264829494435115081602118385647273302955905254005240542678428959410705854984758253609137328418300431099998053757588045299317733882017873076178367389579712205886571808564518314188978221309011059600873817409250454389849813137228847845687740212634477989346201887619423330163323958954988660857830428632253631327650507866233739311845893784891635504559105632163153854391727175344148284252934172604756209541785786280112208517046334511805287900265673926727321853732993384196297167039060842817529924212409245279849365793973850279974641477841952532370816346128431608714931264827317571169032462112541432195928912160954209128639816930736349920815976195394513441835963801808651554284283874666989448171301673784926320028338534179401594800352752347378538991211042842012745716931414605031775066720999155996752944023768989737800301320197026019994084081416241273412112907026792288801050398891440147874389035132680092479631312929951836701183621668517415783949770957288865941410571221289616316683823462235645527524892297542839121321480898505062308818741712473775122787176640141076097006117315768896973978082474908827011664551580372701691302414363827141391431395819103072107258485318496001578588105521397934399571724532738822677218218260890111264245694172155099586392134996562848676565493459926276142808305917343375442760172177069545661964439198256322328046518036170466158617468219084041073654946512623599329480367879676741750244609396364334949923996982500441877011526079492625954990149349100584895107503685790641281296792095405050586437635292262795344089043279431228115640997716009482709259332016590338800633546055716205086039354437152765473716640064527670363946468571149975182449435080361558220059196398289176175901959936788327687757220677946895502358681410632613506925355799979698261045560720665579264538363587715290903244093789266722408945629892326660428670590830208650643073230860927069403155104009088617378611464373902679104964221728690896458120147091968667195740753282577400313193033407977712403357297083281176089632352809062931475400137861497521700840180489244538716286298794370788502206492219183129854421716004406722387006796208777857730796673136522423974956297413732138869343123141264928897537040391438853094194823472575735750821316069782073045675127181958992257814735015649379852115991220119313633718837343269190387394083474088078086189332033400385414262040021702263061410630019235519931244256687780184140438933944399639838691673972684861936541814118106188190751673697489191843082676996183656723026854693772915493298098118971970391538782232879661183002807925128393313356349909409245564150938746226525435127480888935421309064878341350156408210376835234410901382704512860701564792187491025047343533816877214484267507457538714632845214581222129023537342403169026775335909723238766137608162744212822315004117733370209368001116796979901900224218587988138018417644350761529007258024803071704023650976871381813577466975515682076926854433890436487235458499432315670026367053013938262779334569318896185801814120127200531110912753143764316441627498244193079035151544114394212947869972343165844994372468298583112340891526606128575981096016536422398562162486026465449435036898797278359737367677720511255924142433282494663877515948249254444090165237051910869705980256791572089109415003546527651586810435383910409166538408969032747233653254559676949231462955491241056518652783127314549712863325916884736054320111630614931164750169187104455343210114753961201208960047733657801249327284898816064811834060289109446871456536589487185184094242085873474848354631719129086038143178607737567774530686440616050130957351927054720997409455631745106508378423202629259510271673285497274664959247904141485485532102174268226769714083772306196937165905373082776026245730573003640678566533844269943377623681056037248229778233542764125763361976204158438298288398524594050980199087357617427535594293618100575578912413864144017709228064452157607498045690171274563549669522250009992878979702243747512373136216548404065770308687138106952388299840174073471880548564754530657139636842830222403546568985999306640609600912690393190367092809100830079806602403635660462697891253014446621534258190069078961865789953041146492589111239341081814597289879352060072770102750164195638945308662393856300864079274440286790300292895458117215454454239477051401777562476113552327882671639555348073884563129695427650551147926548304501867524481320928319785021811033057511255663546375578850635880147564460998310529271693156912992014854282377894972180827467722897460149517634778467447580636254563127497444008601521788496795258516809406810251627224472481218876181688583608918256837247807592239605732556960070089270696136209523577764005038517235502960095380899309314895661781399725910315851517094094247223956983919930357720881142204612955980697580386000108218817807262559692379544640055874870301749740329251835844503963082013701173567857447872489896937671738609308473927109966910485511874435576456709796910249656362129258021631686962457032278008098039741990267466671825086991187916970686138597010865168490060053429721276199192143233298530095336534910545039865156845283723607119004790855922050943002319376248743364198085167512283144448338418194394896682537312261988998105764564465732317659800343178206124814158269887130960707360230165395896568412297078793845953273414060034573566399173670224193114874778717929588242461542648440231660856141863257511201729452828189160338194109138724129334533784082750277047079723902605239635326234091925935664530132114589459582406242336530005894497404181100218915838857388322719659651893777139471929268028016446295517117896679323487013303824175463090094174617128392002832884967704843831268007540081086325336873521483798433639630896605902184263327604937988076349305519560640016920595705289184782487158548817582554953247145975636680310741511310071574676856358913225373403646609198973867476729842727312949019759991856648100929539977731315621423262333654301499358946955660172780810026790483387567855927866782806435920187624155610096967896004281597178239466594716340415348287566424621846290283691076499542294539462720149768055760412495157795845028716295955048947936335315967407117228756405663448983724395433695468548614299098748417371902650169103859641465841684312512180004760684327729727154080476175193594240985678942921723041309304341414482462153689977684647284669386356056791824948248265226586529601531913024606672042331698901430854231904042058210855484024388278804515491955340817220403288670536051889729733629668265642882835992680494576865266356346234776842597543139766889531335456899808075078122549161359495862070748415012854660200969927122982052771049132626905253731689423598845890559708659500230855762031462272601937333937933761767047316024828205858612992924256516235525754447920135562732650990782743597533784431251865189182305678874419726381745676035520120812463134910464957664702832121846761534321687733138039595702671940968584013266992632589191431970571841415584866030203845281511178182254522252506953258128767293042521191462068072708974377119721992704678026744361452958441767089391521502579447705731669145260041009586935257467256854989313752147636142348315837378083892457224951372126342960928651110811857296953425062064650498589007973424170150685790893476411370999950445517339671131936108770586420214485233313412943473237386488149436661203886133916239810867985015394139748374521122094088949487908448896333480265895096386327760652257014033392711803172730196079009130683920364138689553904604091508880602043762452435282989068930730071898503898700682068238622265776769691614672279300696315424183979021721436871058427538349672622817362492064849308021220236847106857194090285721808643962822597928708638119242702069976796686113388615716238849514846562117365518127323877802017152986340203443542068585644158401273900459141115437460890881730428121113262961343253153925992858189085201572388313103312946443032436808800397995355201029129567044511754884460486719491827614500918759560402462780493604400128026929927263768145566822167801058122462233086279528117693429671997336088121429174303466630170693803089602356086043600881610617429339826935261158473564863643175846793678652153731943606672173478327793750200701842611056413050584456421781420598726997607655179933812402069656044512359646933913489237643495858717218740578370185445181709861909223205523961955578206416637579219529959290284750721044501575262718109240690512423190176436759546839021137200447642210109180157400532933914292700109759523464086748718161195018383398202250274083030097884561426080474964005798519679876985047202435849841464000435844019767898550265509589854138865663233917192904581581789408118968172981696063025224804194700449361039015480732087550174534603400992866287555862383575379283346077937421945234499944156326327612889094808790819859251147380435777687330178315283044692806596335232761334040894498494929248368878286547121128625467134295857780705185300460561501089524791632085488650559656673883433817562908302563393782560952936283801341173082965144101105009541058446388790244772761688866880038929655197809089718472901642351341911087287991404913050223043607794967366298868950470866227848359354923104026973266439056290540845740624632690798355915624097903517966997095941951687568485046913528863173850106353764141167379358808952338907970626473368740308262528311469761172001704064784929063562359822302769154783327232764597997647704072744277210306788846839872043822923218566987144686887130180747603766611134804905479358278182958077329789951435569371569838825782271873427070410074451107330303483702675235243661275819691866086622078296349517613524887252666025376121553076324862272956230385240164941843788556303785020041063415478309647167143623119607212111892244582221431275431558743150411651035643258589873203287480330752093476246694163141897658580740153252052643678597848656684695815090327526754466719117097040548954230395222731547629676659914007732248566274143270933609713024191262781605248744716086009384297848697622616145743325080834653395201942985671132045827129303354188545973548841122451544680982693786831448466871785414933668745042241536565691514550008277035240497018171336006165738696454453181309621537022896446253000309596786307122371430559385688253973077813730720140663494101498809675817101505079876291156885656996180801411437978346982865021399563597232542855018223155536948952872821378793346886962749114216181202507688231825829473533405571622792008728463669550621579593958131558749916260522276975499511292036985744654018523717792816540722993288896293335863995751188545901316915056719364001912663077942284914344544085048110968304858583858018439422784271537229135849905391341883874394489265987652544390510932050543721676268073632590003666813039250454029788105884714200747078376946105878137765061373354857595057933113132344603639879286346750913830015789143901074446427686491314163252847027740200319879381698245146536899852013283326443226018424901349288336611266270660003320987796641131805255769796677577830100975834337884158768903885586388884223306806485198369225639955903907295870795044309892075875908834425869646048590590173609655062594451388790671167659810489183914428356964185868310552207242656094273263150594301376403279925168417594325956228016239199609891219175276652800226406056286901073727495427097560962362421671760869418920927260168092104166047224613827339044889594857956191170059339329935196197941458212178752804384322644325068202641952820940949986472708510404703624589198971023409219061188623225940841530489847606413091927068485305907220201293908933510939874254377555509226517219065952254970723280800670117216481913841754668124490820477515595906137375134865341656185621163953989274962797700058155003305608879292545582243874860031806957496479184410356581922696064312334869057170964621298959602285154671169352482394858043450447984870799854602852508209590207875893642309038710522435358770073258426018438153497440290169393522125581684612106094527115468209983935489370929034073260364859488783217797668888676970299346354354724132340413598520241031022871400690048207979503190195728583889231944163615274013061160834800541948828831469026283903419073122306355298567960114703901253637884085928848095264053513222521259735429623448200788550308760933453534345287204154979406515458329940641660183130648797856835140331604769308511196388105805109647342687912124219461937333525686396022301191443406073226560064355311307340427517992776549048750855781461893434297444072419838902558322764584726121701647102970900328150784829723994679190891763943882377591046770518707388492279279593950273713437526017287735295108278057073058835392033033963962267367763589799346867596299374828679401328190965116061589252198875744615140089879511082311484084371318461812188999052459871505529452456670811142960314033868434446819955990682802436653492703667770867614965079380391239348943020266742888014688018788714027620204858284797639201657815096175353330024830298161781197129955503756252520079944323806408080045458046553834606839696277373104908225404352816126096345919848726554309325853823915494020552382959209724027056741778659769299169179272448685951581835293366563848573140723977239954162105093085620332258728198739163593589284667660443854503679953202631061298478955061706921556133664142241103716533358270071779702728980368928867375360025467992080700445708108648830932113240383780112952958534186239406989532279510690024046732285657100890770987486856550526297253941326824656138364793474914884461241796089841362110660194038904080923330871391303348426224944513745716715537412571861446830612047866604475382209801365633861213847480099121065922738107873167367309123484040799744691982192142343941600504012750426785568243953577510584120590861467317682595958353607984049217625848498605022282468282049653830675566182249915164407766812194265983354803070433672361909912207165665611958942123434901581221338076183295536620482055940793346132323765713132521159459519454343736862142788012653520175778580352685326671293832794742632233178156481391189122544897291932824188293879171911646543779871508185929232026591911794543490497341623131351405857872034882808367051583360309803495158310323366031908692861067132276164956215322662277267569449961389109419098036267546832524836270618096142729102540348317813785700557368554996735554592343290955455827304656703618292553997179932692118163501956217232790247822925363263278891492397912669344701062421324026020836804343333881179836194675799933562579888934720499226207712147058712284858760603051976244167529308992711204432640739328085989534258974518394769302624923949352041348668160040105649620811598718896901138441943145302606892480059030695182837317304102905053296519654807079062456497954739072291956763459698256443951274197526132485460938088564776557117375530267290805740346731278407749402927045313741618681353054076904219806817210543100793251029205587778982668267963858324584980162822453484286411529294486726405513101854116197016906806670991413494834983323111343210705222701107840955933420334372409704116621790515151307131505161222620435413942435566302053536408573821172445506218990716132453261401915160729221217849264009004919920451703651338171013559605766815754651581486283780208373892639914516576624655822491795888275485927026843906168095376937469307051411553929567353010157213377881255746450221274326449949434111234599394100594569992718705323359242258093191957488005866367889032705683628583477708807556789822201136847153381856611789112850946908848747075104547495762215073106318416435523683968015970901516711207744740858133283620905320742128991032991970843386926779962871459185557845548838603985043261842227408415626338870352011229441129357215759158830903624292907138365471981973214662322432093276447314835474717136998114513530978590747305046271732834220548413090494095992274473352224432392962902266205654338115297119075681222075351517220647167150391386613603196149745569288720804432354235300699435326408136172999362401728470212280304079714702013055112045309008581212995397383646167054078861191116534356628245112614110365059818389857522869665070367198168236766825686098826264406355481910742282997268218882904917838993206320613773300166803777044396140695206564659143043819636809471851658718513340144679589887580502956396988834060023101546832580522539518132172102755800048380387398425690799917532544861374394459511475498890210741499209325375411045197164285010390254639195622481496629369912975464483683862448263947768860120534958982985302557971338230080039260201317481402338830498764455474974742834630053895634566681588490198829383859795147805090741261757795459267960134467898569318873857293472689544553922962650982452708535739882199239802214098033741417762673778437843021409119856464889643588573319752106990278970404630005686795352317821352640811108980280215394572507817697657405811341004820685279150652126853212627214849414792200812414854588905614920452455560887371514982796947168184737478018615048695125021775205093018992565160781210927539509732474821468623493257735870798741239001814618400345407359594362440608888252532754356623858171101269433097811053607623429869520495285825128994725498804036809581786972322071200564598316015510369748387075467126264771997491981874522529932643541228911571157762173738232776528013827260713693708420962463718603681218090892881990841875422455072318843627593846358223354969128584032567496684703744030121170085372056098292817435490024086127163685426559694068697214669797638762565874028108615838168354049555994374188847909185452797715992111669177263829965516758850736225379550930750781786629925039829013676524345115023096673074517394511435971496319893217763342556129919890486056141158049234632130272710727242134683026196910532657890404135790252049340520220874460530758447063609970118408573398455961128457770826365059901661628013738821417423481552207455370520814647215548342689458006150904771395194354562047648052847783364391430306675420915929330569697478527944466615731332587846468911248585648534584855130406384086450363550722780112011419303980250371929721003863672917341428692651689722680824714738502197728624885700093075023056280777289294641406711759917857456720437726251342465674738200949554729938668592290301703874522135018469529296636373331370893144820738533745395466926109884326607413241263925233905214254628268736709608240486554139311188568508201254311561942536943604365181376950101544306072189760067285411250777993447722495843197428655305090998559860068955699449717202651186569717736824618622209001334078475163277408952298204963656069280224751094152557972329224908701737499386991929701174890092614745524095051889765528552663147366739693970225976250077883463469420239381697168737571630315494381865289226934186362423969481838460209920400163812087486995594566745065346154194558683545654239975156022581094739475204555111403777433324295500154853325512640006731212590365955585451134251282838227568047266900700186232113570179577932737611019575961018899338812040685930194787321409701506756290821226249472510103335428732776351209768169364877837515185449988636318695156596358062455448394686738221421686460285185049165107228458414355361697926877557161383250015662685651357782036790128774840850372855721788898021008817962363373241491016111649360582150100228048906676318123235932079851095153075807726968621329178749057578272250417375400136675843188765221448724427459324573945104693523983539898114862066962003456677093606058441836858468727129498407204309775005893425213998755132015321782680661267372727695426843181070517453556856201169830586921719996885551608610404404607100700236928364091975951469948315012237198738942920458246893348145902425047221666456845626352459132359792577125046295787724689146761351054234169684669501963873679763184999357429223292486015405048693162907335857420625256322471884532734187437087548807268744956079090638907851781061885733840806027886180595034715176998134433694737519178847944867540318664236303452274336194223266717355132442298384711700582401275515516177712716589371473227216044878149051729795275220343121176227177891606145868504698875400775507302886622796606103134775415860535639179523902568353524957126800495514819013427233392564346060744279167408643792793322065361613168839166804128869640936221043214785520508230209529931014424338329788059856550772735090969533285354617004175719911317503315262165902336554137566577615690797858665089548333149517903184419895081777924164578028336670657518525347019641213800702382491450369946721958245652412770506380199320915110856688058801706209109226829427039844340464597621281635658349934883947992567385053035873750025663090311367355544019579868297941374076610782573496040700133419551408727004690837826690040185342566296009410229879378590366468624837907443266000902845056437808552864240461886290707676295391306655476312789207164160302353057882876830079048649733368944410747405549679372497567682429428905210555716087491846636300108450147755295018442985366115372287010670092282988268580473369127933995273814089318985298561060615417594338971489348079189461598664942617318020747259641358740316365536364604052040190543290868712424874942230484276860304459290764515437597545701366120708026706717792389205528856789686158536349578496238218373256261305893532271598054736772749331055627501982079766146437260735396672522312220011191488932223165959565879843746120854778380152588079747252379061244257902752556542619062015169316698157872252802299953039024979909041680960267137631052213499245851594671131242128848280688511322781151707810836625061728794488673812697084944343947003940400403991129571152383306806776277425231376790668629068523620740361946232102491929525654126386556439633347457288761644570143073484695454815798955807517571571036980739072919613739798349682088956287695151647059089434219638118406838015356342050667301176324614559443334706864752462048520026812934579190660946557763023373160214659832113048211157645165234132342524231119234225730262475015083661013679791446675751700320648495964384132895035985142283022419114622874039152469784853954110355301200960063197896968211668896455904044804384433756330362126677538855091723073141008852472569145054636430353320742187025679967529104697839657861079093679954704312431846881909073704963529305549327548673118151991580674669751513408880586851138010200101865017791457917606249493916171727255165420937838375902886910035280020465003371366407846214963383422120797440975222961994701517902094001581482058527697964863168501928057582832634990998398113428607694000453544215922027852164872442629793284704194333056318303986144905984606113557134390098689152408115127652956360350428508394809199512283920629275034810779738452017887058585936550339221059641949395116622143739012828281196992781130321018074990262914889275395928154518346373527240254017255346064540078760062387575205851008015539976796743179348225202466070659999172080057068968634785786218877334552299810522054759742514274253432807818868792733801124316097813321500269292114501744079830774888211842179017131343473670982871093489619590670294114381688381691938893882659820437877447739214944511670313556755382457638480979660820657396125122231994640400020957373067375576428629636380814794293449017213941544184512723051418245939457164982083457646482012033255614672872231386966500102419225893135768495657306874421980008649380904828316172967457902282595667928359283583275062023246048806291206217501151592819368364178494231876635026809402401054873823824472291671581278217929304291405266539777112475334301520821812641380143810485671437941607486549228845374130804807381410682456237086413117813282853643598992771090324980642668123473247085602195448788168152834915622267092010341108060324493656975951878731362952158926364113177596263551953455048380988963748155202256773248681328184973050888737306565489644686301684419440830143015660128214570931688829177089292489543664042707353842370601046830134428822729234220051851932664468454561461361031343654103694621697338856806820802770382519873962570148510604090655606064825032319591495050452629110580063949167472352240586722294631011984525196669202107367054906643298359630071626972523742387245351343557688394226081634237094968849740206841060331434252286143780645167243555765963871020908452928973447949961933031087017129708100945206127740649266764507232500285920799544607519882607718732795227512934879779079066338102047576499702819504110056151207275759817121330032371103180119596276010669785490260913487356521831373571023545970762839263808418487769641059672831196837611472700549359349846039053631411372370952588382574807944986742456636040705012267791626095115701420839151741674073074987168955719458886888070292450207777901177756127812898774422138141387365954723012183143305088087830986041896096727385389004831176025514869540324907137545473658485671059477438643723961483502110341097339461680800972834549302761298162389761182841901104856444852922575501509098323696704099813446634268525104814427071786780059242151839966902514216519759671033257545152550830203571210478949330084747055811235753336267393471780243345024093915741463307926771844763198304075393032900109932625089886650340920631538845349800988588118798959868741983110133192286493840145043699902331722668008545496218538079339010450216881429327571749987405073383355111292434247138332625947389152882538917377860993897077187102128970321590389337534504100168827398809956019119799474995554708656724882466062684325079452161859369451251723572331439255545204262760878219305703310492116837951076593238140791511531507345895600204867451146295638880986148982048820753171218079579044882947798114151577388923723923007745287997401308702553427783932443927093433128271236810774756421270325985384902892593511606144479612455222190722776103074617215646697965591532656290388696624122677553063811751486564860347994492403382896065299230601530481245518305733004796767815680743387397700883325369977806781382730375613874126356713924485559912755739849441472534223100171153857039268670879529793966975503711717325312814084353230016676184126812695333932485069428985007238507965990385464885126138072854728427841677290760894503868916351358110779963493692601934374347894493981219508080806609149776201891696600061871835851375089614605955451326889048566092644065785621385747488829875236619991194472571488255228686075214203092896130789281552006865854708231496044930924613345011521450615150989361934271582874541361838308814261844203161697232339540087937639793493887844665515184578379342903373116157763866022054708034232628994276746644687078782389081282077425364231632481980329668968295499092343081838413890858547784722887705795442234592408889622692702345797249263455475851068848027021766333793864324970495671517058408476099634089391847330842861145113015964320140336071069317220099852302877335140359590465491436311594981087772873884907635346311958308774348544465811662923367184163705934842586280681726777055871063125523094232906568941975459349877429277315585121686582729921213946090821762376676052715660299666485853347076407087058197516382077782431027118248183222910959762579745659843532742163094776270052273597608667648754129681514312248241165403519110435744908015108092781794131264816615041233918687529266992666209588237651993279110080421292471333889663708402607349173098442672768403440686824096009220925812295951522473061409791456713656142411316034076090943552318122940374502089627852094720837287802877938968980666280516097380389953291588107491693404206898316493916384829498026912519113596023301948871874905820457740544528182651003909573196637031028093700497951438990504684208695485949406886824139656315386810202851974209353657184248151244642924476101632880978765024767927211179149653131975622386194345446308781293049864255987716333914928835347758853337141692368272298428196991146336594752316836599342972581169995108891258565542572939905206609821527587584837961629396518659363441715474237729967452902190228665550649004895208196738150486587639532426443619118299280561274985688483597077511558036783438908262941399762302410240096879163512219195633327945618421842303538225714323095183116455632598545570579185852531953040282165732950769494998387600550771541656001580239960490267977486125256796969646904712918362266891708154805664346951272068985370288311740826800933947907707457589786382882299211315411157406546396932145528065059545304669263389119464594885159851645242639583776464983689834370697473145902945061385933645920323006415248553994803377918586490627696080376836768250581858547358483219374602535727548845804515062379370401768621499879449209670941958204651523073069384299334321404087314061745034750497697513521183539126331028720268733674106958471271636964305330087319305752977825034508801812552217041324967218215921099703313490983224277230336659334906843692845220011295859471697388867573591673055923423690880519728517374322605500082974755040703304244282213402677746551820891682449371693900877390938804117795764714484330050414813276027302523739227538325233705927213178155538313596870389665917320475039864337891913792513428507901519592948265923427824514257268093581063944396911232606791363488112123706945432535642635691560215530193464314941816903523862705263514548543602591795108811972303383379950386726273812437249946924257419094000891265708652470654701159329274556748613223348640836508731808627820161255481185990667506766175140932160325350600287429117557248575085212240583463013567933880043463752412616027001849035393029202223669407979155912045814440099095937793142099099688058115641741112634406588798402519614197051833360110127747339747058372204022360298858767847182364756352531608113509719746857878978364925081423299165419299661978533897509240805144402568977269690966272913951764119987463482949855534113629857523139234009218205513846832094497628595192337142866526959673379877504052716355715607525138016337515179276471826296664067222697527581442684426266417642344553704474516002331096685966629439111802629695510033508056188117911413376147317468141985660267163206993144414780551447405012408389399366072758051124597756547844457749288153167908554732071712814786809122263885246036660387548279044783158710503316869214890481609887015405825339821945285709173290342020415679886442500025395539768425291622010700672170376093646044113765083893796746603117836894186567539073743557234119070802298737502575477110533180300115348285964309813093035761004053312631361010530766881924492120741143696269976755385626880303219465677819715322089102676776115519287738130662638470158090780540386605070673472059272135967302298973585962033127668767726486612067648488255831329992525533132115248010433951223092838570533455084121945308043296738326754646350094891140620688727644376776180303010858290798307270472496032064879880506843644149486706385310026869111207046501534382538255439949390815216570937294912037529604081893743919580615886966180330845651062165644667930385605062732908980387171990342984458612034357950536438231859850508598678991865901275078182989092115572829515375065219599473118347623891575704685073763365592625852444635181765763101585830411341173815606686757294548130965148096590450621148430871926374295562970140165063417967529356995583004588403907831179975319070830986856533562386370687367789579544136893593369231219713349418980206110391485971301539634054425928325563301460367018461393691523573279591439398235105215217929411657557191323522299299632619772759635961815493468313025878304340185492884777812468776198913883819621418941599906465652817129152559258440101876693179920090029151951797471256877785289868754387795433741345676521449616878184036016252337054257287843114862948504120184323168109904587807976422316613982895733392427247923341445229350969046251078527798570549249798975417688893522851099332053131493963789778795417638301288878895225579516765879410132913921875436788004305936052702015136943384177257284312782232889466553805306970599549224399251087712239828940863585241479503616230079066910487501387401254966822283670728648094515905858454569108015444220437640447719352453813458586302187429941089433536942218372640719312251139639391046015046973256644361619156377161822149646625265139205416568293619991739688048307008559034095695244678037482193459629386660686574406893070437574455219377922403623648446212243886945570876396271767367284906568268018620211122097236405524372764924479851665579293305515018179638204134612755527156277727976190077621227867148117032676657411212335834316743841229576980727938443649047469254021186572638577359439202337434898588799256410965904102209831184563839080441211156504828564830832642511487583651457901703262910399267844947008331080856742145817490904365102927381027653757186531791272686249007976339723180546664855580617027460808137143014087366365708305385470853123810692053675821779579774441521089593438870019622384993684702222873832510866440299367384437555317374788476420411465238517127080319662852602943485282134849961236068592104300150045792823466996600546417906728967389271700622571391626802610975768337634451443778793231289735869993143579348910683977040397980712524786269358791370226299502721113691564220786726271826891175460414853848679707358061474835335115363201108589950445370217414701462910738939027457587145233418799053162723903837223334209194901067292504132200626497358393100530104447196468152148144872644168589471639183917242001885949620467157221817070333063213999132307496522540770895800232028116804894550949681009716280900978509483372737942465774026141629622828834128850312133467125160730961381150813089755401578753291616656782650543208556278350605494224793529284050961637319475247138942430978494450176980143735967150627714795890681103655518018193371579891322493546141637845843123533751916505445939057555247483039223261388945889347134365792617256401417346384275017085036771811352376642039252638745470202333776561028273472563318451449397231116072077577010738540405592866065173870164578965765833343974081237427004750199791430810787141149054979728158926184889964880799626227746991033842689962188896981911692441162228725488193017916591510202865782573055321901812566921204294643971107256517910727235376716573389515591590161414181866607035370091787547922039228380889269814974254119084320114820186780163955482419250765316983719438734399999358447829181861877376884115337008346802673710172023359782803975481684911042907748039919600119171297728087390618239850223599747613307263751204297554096026079181164181024144244514302754917976642422960536146765502984401958863026501203272712149665895302572828902663718901384977838856407999849864870903585652741338307797131382530359518147439861526645023070336700479684671093935599869079103452796203485178373242134913284945527068785816907196344667742426000680686382242737136659310061011353338823343395400115748951884896121824917051932134087475654229185639065912954099616532913221671006768937135384994935978947359802929787011483635956996099574068007684842517080949056573788052156215540787716139383618268398437529545713773126903380487769644378734843389315229666036707198434715879104674839983944056452272274804528965491924470066152362423041503259632738729476123738409221162069390150448530182145971414291916052554388233117045512203276759708593782587462400882690806037107739349987316011925209704184695365768038282401471080901523155836232699520200854389745525066332591945657835284435223015367582135648973627979440985848518539340498940066665281142687100569050491921004191785593151070868913468136182982556388080609745332100003675552607327763366343350144386449175870217344832616777324126969471610656586432263173821776193034458208434897927265871790857776046100591880223991242892881349315460064178527159724104988143976403414966983514995777125223946480725126686766961552618762249335471477474921911811948340701289960943443185039094432167739960160784465851430297961904988995779770292990011789034181909307806786422509865443742976469586202371919007367126608662203993234947394726411934036298844271778680516307762493198612630369659788037976452524689045761027582129418549034698905332409087300942675901639172262249321233740286970610207948987911998270033195097837051916356458544524418784909788326667786143637420346970585802714555040396335112815455749082391939029264959393120899223038299653003384608341609594075758842946630240511335291075740542118419010592994631645464536363969036565900244950253312100982726668679130549792030183428929025297052973375311077391455898969421381674116274308072631201304934991769947955823064297928263491965989174800092593385235383298744252595656732683708884515777000396261584056298703602084118651931632496767531456914845709342455083467196147762960223601719104222888112069012149686546817072881242612337951922568023987010482668532906075532933245676881394564847277179380454858206658743259365466384847152479144449859836920169047176809930850938553189733396015506087322029676890915601250416841028711648208604537550084982553710679530295970164191187910636998791413750585049951604923104389126834331593040891774736764010117138535876494625145419039477554281858393270942356015135217141131018352478462617176157495966598511280992104608428338944955851238513673675557522163480459116631259711103126034783845024930906318199398465523803552498725512984127183542796824001050168168054185205479036286095270781173574373133138893202819402835413231451662008117170561373132444108255145147908712253232634749415871673218728720598778289717182312292015740412297930973592735802414425220488435301173740487247491810091068402483306982444826420162150730761186047725874436369459340213030292481451132420051131305224829141317008365054797820615897323061894879636510257561547329479848673186487953467763457500652955312459818735845109249565349394912600443422425657683438089432808911016585020094284368910059938252230087743345198082834968576712041381308964729097644273838098022957344201014911768170606272675803854340739761878637274704291002283728809632366292206046390370082407838817368312645457471440333239140243060461684255670925567640681895110956376671944991274871473398206314771213764491800480476087952677172926435914082671109750857921111305649824478209205780107511055101498267247889845649836252320921144226450624448708070652941513136234392419437647841642247834085175032782186777750348796367473033496121256317967679664862508639060488054913304419251916996818405223696065933440373774277849031948517761737765783553088740422525991647660275608153454750568063188569887039349892277925552642856925554732703715490895341607684952841195112346817731479277832980838223786398051370101748382417533807696635280622916445340767082368531221738469914571875454717460848971747487142232552804947824596389062363896598000917895528258613580730411995354314966728568479241157106880921738241006600849478196808279906671852385916062111982536781449185842335949058249188805414286767810570411016672941581811487485485538212890608285777675184773919864852239537284209131700158126158424055486767637179999794905593559979367997524465314078131962222949956267180539648397275572593011517110004646534973709134813373205964411979906527955740846946880903961923027556983023774252200792285032083146819210811641798106324733553013003234912245025623136150870255653003419810250745767330882045203513727554465700254780844322182188298819164810203684151869819417500518646964060463847819578304972030040516429438927372819874447788435051590050736965908604262363280073969761937478441039007117508615048139855385904049602505214924706575477515082687347839175837963547898451098801422620883514689820097071070468391674793879269670677601341096711998204222283951244225087484911368628356251238986664830847945682901716224994883920340761453198399955818686374781474153224287348685011739404709244463382540362678270780738270944186799855418592782942152624271238060141117659581456724285390240465215405194626947580196827027059099823585583749906982855931886069468380683707938897398197326871325399177365771278587154947016301402453705388601422296137719629077811366005474413844884461721636642252149565593720909908092574742924563303787701740250835329894603313135050320436194094885739910468512343582089893864042848988157143719742264620821919116805217348138577787381737327466959862618200970804629665887402045785945454677369451242168041299886268130270705403381498451256578281693520033462531956223059671287589143371302920922408211916986730689760622500530015121059322238304077794780181654179115862354099798002347106415703510253048910276731259316831087156878765692641152472904948090143020482986774796213699710964226634362564033023631426565311759739035674691627762807857078383530327026471297786549177334048816184839047545507138837512143005325136475973548846718371614087214585193640646283709602244364906289557875766793291256611984796446825513335286341102213631869451587010931443314410095873548900636074627500561688888444169106928146031110516207997718499361837355982980663294477823070167131001389060661699495006570842897151051583457564330405709772791729645626274558650688753198353077786259475243652071443091777216258324163355345701370621080059559891667046666621055733653687937598138642974479627242465012931039070201154882712764250311226022216086398920609556161953542111691725389211526753166487257602322071116903963482586086583198266476249047298851375827299938624890909791707692965030526591762268388733730958683385806202207147037189565324443810472708917670710415017844014588349436338678080121796519345172454889834422343503998422520617381097587002674062498435150596796045294736235396405305313332856752762265341101928302468111298042702431670655471056870618687441382242566625365271946334332733637951525036370054730756364905945547987750699802865637182359388214749532304455824594836982756332620404037002481868822983293440551986264058272358863916833146000598114871965704381913781152042004290398513313249983830590348814830745814685484369494119503123219937998275953193124299418553813003210800788853703161295888980566979333327771457480440893304688050952516484656700536729284479523696385503470723976135438407997795132951421516137724605755666422962704023111545624262027925174233392581141356821153758949977093893111278470353629798412894498222500636824014337748935871874045157119053167437227363563771556194724542738426362825488443596256777875605336478300122771014933805670787004923486770965157849666974529420763670083360000554460843892873817106809132573873549172241836453001310817063001728895357573240138074104314148788361224490029187262568594788354601728341627940312198878737715232327958788452388826841338677521841992040305139140358388024564266285277437694445716245684907152138621277697132907229228331886121323219050581262980825481058251896180429344819137445348736481673863189135525067257343962388580825577757373111359635169301976624913353959215542881665637832066263733380577059545909072176999321606936209528638591629859752662921570811121274589220974252194314541691111820891608716927405425431123951773853169929740669164483588403135813587491617603477080214519035443439456666459889424062185710585164061289112054555170525299458757874744712909327185847219642350289275941016577972850476167375364354163340214312430975576376148313557387184505784222161043592111300706206341228910522897022020303307652887321391496549344983123915390663939878703758511060414543417542130374974327331059661375815851129890149422715540076865926835130332064788001496045323498731711158435113095633284150659144751353676886071742140272089039833465163885977334863929046655154689737443874902903266964222374437668619715188366657441166135404247749851028439807344322577151581074533448264080878636230236703173404352975598807708358891120566422841885666282387647894519433533626646311893130793120547598381953560943921894277080600435589869857271068734544280227946994522060184826883426889739405747357255473822628263686622201265166252640920016931602474501632079109674029353437337917074361848794992747930283337213379291092875256383296837281812515600730002735658200744181653216981312861408599449952950574430629530279036112302999505922073937905879986334232483444120094632920916483720270224145575542692048980328641056255728996007630839045676743775628710754755803536786317212980455718626885108343464089063389919945783944369591737663028116483418284952155377708565023735131579552791061417785692625746530380933485183427639273573091313391586202876007141485363233987288423611066832782422256333323022362335474057219205643918798032861256064504834378847199883482114468521419987075577654317587649163222367859830878752804480695646571421036153486479608200781090691799534153695492561105836542999227758244331901412751981527088971475415124418041661146125663833117305515875805181013790124113810402243527132888493509598724203658771553795818704644166034184464532512400463641628930502734906033778536872597742386997333911686654088865038514608726409333916638465035155485734353192156341502318388267202573496425272215618946801290853541359468197314400136592591155220417195234381830737165774549301864532995116805030643101950246376242911323915366112119290138790415736487191798199130067638924769846444375370836543588267528579614048208761099036825371779441312799585563843589459318194446645145511125536966167854961635113748188779700777905724899198712201206506236450518945871107013753708350229063192948014018425065353031571270232879390180726516543653066570391480481409300724827660323700120966756579299860666947337988537518716972040160115050469654243464253530199379950048277317145074772487099427197147268820698678446576001747268966942680882412513485313492402456299472160924624958809967478290095357499383474744125829499876030651784379248583597214389471041940031370388975103699643233974453900355932310464661326461825655869488402705062092600607203609201697890131407414168047263940319557337413662012845977880723088774282816820069869497347947744135787620307180133413290866935097604892400911863298272444994269542846782290680133349063312755441769771671592734917356661859825827852627587622506038672323250503379417194545915479442333989887955338082315304127111583334737266934083646789378776654752673222175789842881512447622008217043814066951068691870045540485460304286073373163479236739256650383293986468404172254027332839576928541537031020329185047922078546581320636574306619489600183867220583609872022326742990828918951585051501075421546785495898785572199119703995895938728947632746700605372874684680233264100124331570847251011518956200533740316810839340055060586484894851990400784205270434014134596211713483992765277295580843710479483085308858738157124784747876317656896215393224652166295949751749657362909628451465265392981254114018656915459117630749975404375741491609505676288378799825948125425833441315714142051831816176689357608777103351726655173059366964889780773060256170802725074389213221558011511902034655750402234588561936153544836742017700236064822498918625528360967739760060743346914605472712220787043011713799132874044965196287826888163697762732640216090348951146118272114658784862213552470934599274805604419455908587804316831414815717539367201321291124663843106425590449936552519130913919850475736264325515275821017492522188754640376938020306053379160145737793309126020094015649905996272378303829956756294483800133693717932815086281705331589458602113529835290599927744906618605955312099418242246069915307042195368050160547248035532925201094060345721242129950319495627772283236431743199412458304879721404197373655431817698297282969640629262696547407247729630711148249072144601579950457354441491590755155353273329156932898130706634642606005034851218880571205677450344814323106354407064648730240540282394976849457349745748799066810432413907695325136212486977587666571739444064469951390479642910707252283989645362824406884416090050633130181743374239958528988680835131068170466359510187204208659246890646412449501360736543837711418089342288049722942541876574220588452119776147338501321212950815685516644558276796772924749333220277862207349589711356757317630659727697236213706885944988526007428604444283372532892103705031965655085567035685957062794437686519642509720021002701234853107272822685008372213480427535429886916732203119290657241871739147358894811885913455887693488874128474470420489440201629610848398724275345766469007473567892541760900878500288385850856265782972530583292908694161480023911141653231592038672500829296489271670839257182247908305345715608102713124383872226815017589572534511980986414962214458511307935624042103221179538929999442817509067483530401945164793742840591669947662428662559230743749873748993387880780742335021658443334211939898337596792078326924802588886028314154642083693128438661240870869528250043723938681640743169941152207494505635883664272296364650180869202830015500904357428666985475775040691729806060431851431648301048305026586144890863345765980209312583938205999853709751074780668713378433356171845559145344385107031985644674813243895088034092485804441950681656748777916446997221141212017209788136716360340688245781782682870079965704376168075485933195841435552242240053106087048045347166645365283456358918465945671531269201050462830765484738501232984294258206063824779341974729028414189254182721196949432333277825262211207017627062857035056104413318338966148667079981761601173789241299999834762941365442264914636980878515550202439785299903681386116979721388852720958721782798699671251376915536472338466768860028556989695776453653510622698378475038570718354294918642615466513640390272982785221118349598839835885110665118519240224747615001724500188321062892567271219992365893414520320645912674254988888234210202721050950825792528505915799943366719224259811267131586152700737413334241434961073010255035292249862619579212345984762670007326997685589421199122420480946543266492159150716546586362877737209024837232784223086987973357060639534163894122047334688841065465878497068564795661865239307798821321920059975493221936910017177998661516870945975095140314874940634902567010879471452272837317490957399446407740735032272870582600087452046594522456865031759433523677037317023900767760942343218916091181939885222913734020566140471839907978430473372566853576508605319050330841789376263454628637368674062207563098761237456675349552451669799228524338115998130512652819638769549607160935184980071232005504843303963934316574659027579223400213449015545363755288383714290020592340928502079035318038112181777760889529107670309446316354108436080349495596148895084711983389983342457837491663008479415595273667520972731797947815593343080916761184457711287727960252703000058973321481866501710049506735790403031308450090164639253887092771282422380042335767873033489457229792364719722355711478722105432858435684508153567641557718435528715797961201331387602274425511580571834260744790905092319477951306359040701343216934353786987579861852340388957122536216831623246977143850252400703859828660314395343004138054587575804958408452721207907871382016865929262290717736050976729800283781521332080778594424316903412717641665798258409483812817139001635996551614038864649892848678694474555019673292021849895680742450132896885248177345260062420862667800570763072631268189426683296467642826055310707737079091431971047131721776108674932256322511921450444424607437201258237173303917084684969543303176516255296579140990664451999446163668281187259380617273151510813672329417156030851418322016941264353512219408742580234191701755751832025525862824449664186909114917315633709468915752405277740113057720888308082378622384056288642903684535336298104559927629804355181982337633845644456250034180737507926257986819628033648583753176353941629436783864472650016972541623498722912275878390026747493936206262780269047802650435037735387543744353475208719094303750831534524342210469258568654558150685061461375820372504018026706599838114440053618666076593341106099087976395493696300157091697519326671820436206524385484838902687812465085087292907825890565827582633907284026855871587606675227094573243829099753850528861973065891388386742695821871544481660767330542630485290220615529826952401308626817562944931903049599433270309592275356642884018246295680220180159924181044004671031502762423601038344667456373072410688601753628818113158033904707117534382223398622499949832887103013598946373145766941586483040904494631752504496676157355183799213348233972693366281004287306779576520212368408460188629683180266535919248831996183858259772460002424617314768131558365301958176703950429551128494064998095220042291376742289653952546783031159783582991085937619033691405054748453746092477808868701925990269976115140045867047480999136854994252071955840400423041749415943672905096362274384873745783318704977656810626079030515598373319739516204075295425786918627624427214592912199854662061931885663645111289396628518256050677547928472659802906255889075728389285163762260868706977207359415199943284978613213358060119532040203408638596374827836135188307712336923907364915728148178904147799564135222533122217015720313109622024538894971337061951359516702930081136070055039574056062046116877949370195201409173370763925608976051565213272852091147513811450591965435019185794625736108550392477248184355299328241975343093939545471179991097920109251010931457415824611673065269976556739076827679990639622040601598329856590239220784762481748358566964955627692537661039606675299677509543383252381965299249428895085533442374420027468454944095142640045518518182503705807313806609058254836062661886914560476902601510621548698106508700487291999088411560509248795503851582220945493915548080211546637787846993575095337475393231432092383243884526400856503184371550399894439539137477496707708362679410223823484282623564503617358718159984424301094721001274475010989490703866005833732710555268573219245373826207498948617068762804935200457311014376339344646796162044299782215661476612862211110830332667874175883403310623957701768008988227654967927060694711638595708185234284583280508985322557738541001730081517521156587774237254650113229420889399897487592209636507964890559571895713468259933051336785768892943064788340273741493820913964104768907667201320906722632117142475787900655484736528679342990884988725516327729551733846791574691948080715194609938350741670746279152807366876990975491816871821226438091145483928334744979011856085105426004919323817014703329744491835944167095100692785772443767500886903963697079886074263374859265658797993085808871746618964684901016887204037508494182139186394734062174666484924670114710430799945404878275918259771174092266395797679875296513992914897253629845280197388675383904916123109504467715712798717653151083037837687308424175949611930083645924590786288705173314203556061317007818600779000812536016714848350150039846935361946542574609211446304991176768336300878182310903609045344785750048843863068702568115792111790207320032103952502443363178295883598087119298412125059558913419182696096458318885129560687409397418254015846519772241089396358612777101887901903314223992239978482388272835572524042386880360898050525570546829015409317793468481548250252565636921738166291209026940041630121329969258589848079624259363874473345167988892279101828452211567306346835960426745494388313645286811142796956153431896510868778013428109768221019180314461406970707917336510966359616383566128993812806680493997277083418757276294130175458649406932722617439114936822653472562985261518923907483223685906196712370853257197369933438631590157230933171946345219054475465155859158579545959866087310591890455448394437853430008919336204204843867931560341574180247214148218980801366867111691963572915883231602783266686208938135759765658802905896658679421826014539357592575955149225305875714810344104669902733373071192655451731489081943182509464367459100566351008519519631543280214346064238979515945109703668125029704846621288193139527340808106175955834310507076129066761436708368310207501389904101462905942718048896343978554311761094578290508362502749103409348516077954898485181000677673460122813062199884807029134269845694768146071096429770863099764666903761846495510785286309690317851314402969209435956107401181674008032086671297600302252651393393036984566673959352585619469862618811505109187339148169252702565865658132194033044098093454369920028823973931984672194513473081300131943732173201169806380315618728808489004641551762774433453071431049439523068179523699306960083610390264442632927058442685336120170256879283930594163280454864586614767545825375177667453896215811207296627746943540247575509170881416706477978393695909634914568104422630034098867807672976742204166292075422345781317225595143648749369915005117668134451896368605404566496645663174483141912544543722690020675886704502086834302991235889711203866005655384489786568216753956990606919997555610550784473688450982842428232450849140391487406364372503668980923187142625604214008546441044149122202571933231374689309640261775630422415818072515455928980360643303349594325610780845309557806480479952845404930755845692972552316567725503889858784756151126540003623074307484989704283874864087028255037496821784341295831608165781375734872292752041352317261387252703068379651770614762068346583269778216793421409866294496538746022815546358057921976575819294444934009138840701661244323011857696831986851950967824492519736997497714899901044177159294595256277950645865902596861414704966621614391429678980012692369713852388868808819289073169022481848157795392843365436860936525218770017678157580224613235618597163370491290239936593769900467940397828692102199664857476742765638725842114966507118554634051220373840825980900882677529651340511721556808950124932794487463329522766982948386751235061492305925894200849736418548719770391462003209465427584514724809048485553495557737316173369739978155125817319668175605993333705209774486306678609658011544124963345227004183876013356373773585793879271641104522265801871855514447507482769401333910528217543168315358731436395786826745500631957325573898310021021759402919482916252801992039948392260040352442788224987567222419298487999160958816798602643525365776016090914299308537727316844771545146114275685797725468542089622400956058476091567346288006556055029644159971713187562614163302110379819340782651646940964661519570292654226218747970690005832746377952476854604571013516241248479676095545212430900391443386762809357554649298809670339603354019850957594473127181913168254299318136132820707384179310241593786759686938814484325154436220194117700544967989315725181982070076316814039673695605196452416385459488515461139980171370272422424284170917821727044683398927131176909504089466337524127789643255155154929572451089530694110769048715461062899876095932650597135169845806612966230696065466941715326693985800223687536431282157006308269023551046343325551840058826677982947494548836334886618902386409870862696876205225547586096430105336382341230793374131785223067176902231598446057327420999154364684610673022014031506993790216275713013033742327119880060760736872845885664876275232063979107183620783498156486781931429987784123569561761020777286110669628525877863403142383219876678623454068483050606429715512700321915934599496865065940553856025987455786860567443501140739903962593246155293629925648450182498023827208197023731713353075897260964558969933958038718029731457447523943036271992934371811287308411514456321914800072074154869931259617386349792898479163344879650709704873644564250889438224132943979899559510734983097761447543957972367279836441140274831614020076150791531695771362285655825782909827993268026933670480435819500775742633074763614001252336627658548449348458681065817792684990392453835872159172960621586253587637623239078204320576095969741813693764522362134120957233551885276705642688093456670661853613976120382471507644805939007925252909719793006184807480598918218422682551717348652329397876211575937068798361331772986345447520472536486665496260953705492644185575185205486775383709216706355796748310045709604892038358189618574999056405107029341880416524138793918549277737313118335838397496457525991429876844326291728457688736016894106460060451475253395021897377149352022706485659011970745425701179705065096119138128136170795508926788373242116120632897860085873305368792724155965281164147674254462374228571586769599504624382977058038239998255279656009694088475057027668754593711620268076206919027709821388789688929180068178983304057058358836432157833270114241380424938748508837089628334562025448898762959276718645054269112244950218291166277485292130871355325609813790831516815973157669439724632803584815612040082122827273374904231254862622891244788050351336236223930464644364848800166711339341695877254148652760511659093153325042465050845418696472326285101521260258731149715783477472532870119359890005266705000385906543411922669264897189933006906505271392237360238418721183310418587826102784673405870947520360502103344686882520410540777272114204036210234862567627082661690284195062236217461575297696451506994620579488698277262665135118407581061317034057497118022418918440455604471676605284146318986800908226013797964783084089340666892006153383855487943978932913018526967228588050955377649699361456502425600429140378940728334786755780027835353738600757011528441879172989203621254266437729032384788747676183451522046359820281827124393756997693290456656510856445954006840007778933271567070153904996747345205513571959213834524859656448485256779320849506786416137978724042991177718746612430963404075574202955928695692243119978370557511705057351682388422922134151475862332296066906257331296690590643729289255709314839587876347013410961103547505653136133124641941293715779266784764702300091297626557841040404775174672728149426840623910981088291249777147179204990843901520602460244012990716048093802187706974780874536748364353521771270277786555505405965721624757495818237758860962724184217238837494149912667393397414481126114468625442748089162603413193584536702846767774522136913956386262711156089980609299140116664403983736141526497333611304724994225863059944526973304111855049925186985267871891324803105393955863256997997263187726172866802727875633868966306941476345116047308465760805691003914277311581346671942420666045902777114461879901774928372635725477284067304502477005002574821078481329994380981313937836596288084173848910788363591129915342747749454613769596727317158151882685916554060242794843996982685846009475443736365322970173598820942090970448293791622469860564952374953852159263614768731475957548018071554373049806982658718429227828405172530391728904463988685083581905779958830508845283445359133614377474655007149908458133302328556155550626102668466096824741056646021480609783361401024943596728508214694141599082620796918417599785391060294007567655131024780369554170004128573866933521501187440346479405003212570206757859060306965707035119538383349185409156184534938310549817949082384045879176947352497722012193542000881081835481236804663945699077493217381129395088333153505247823819162680424938545983320264500267406366969957687871486899379341825674983863352365409158219416650007622671680126822134649243622483270421784844550401189600595947072217144761284089546365230404679363644896608960180791144760462087041620784014961736555077509653844477480789536275511111991736344938491822799437960242689097306126508503955404004274220360339092585558073654191731020435124398840626492916645674279705166059207565649095597822614515555847150349839415153196692237921505509712144532220577180784916993939144454493678854915887543931691128939254760772087971537598349818102780956487569870643404239011287421758609240150025289929585789979370231296060185651738329073292124648670443379874421636032296953372187884332353791284112498316034348243417966086222583946756384129527534802892865792028660549276395160120756889614830239625124623315571179935232263101082825258694914292962688576106186565030183572329731748047501009551453698532557678068627208378816216571025044619052155111787314577205496609038467203011141484441775700359464407287194561212037554807624261671341056138278126450633134578558948831165045260733936896177870380354911904817154095914132307782922424108847473476829413263859160782634217579578707320545003374019972988817481951330857168573536047507443233814004706505221858751959552072609631203637517750196773215275172469180473745215729837817275865651003291885654488101404952068455755799102748954306963797682443969273933784249301361697032330500447407989843125935695849115446376517264776522154363454882258229776821497148847895268966120723461605916737700002614907437575034396058384709196000062793122359590545916624030522071654605134369787928862037727827294847928233891287429015912333231913629136544052680006026241234484757572917494809405998061879679014541059571203031759922402552008928664358234246093692892209951921299140199829333751805794564527613692884133392193774945771289372908667250087414184589954541698339893144329903042085343480329052974257468081942823810470695785309024694581783994978902758248995105180406954552054191966553380097990678842870044951532137921996471358463866881080708498710561843637662961947365747855850916691369906128329070151731786619710798032175959465235144114559188947835567786955044630412263894001281007171216809171912882758122780447632507254780479354275287139662285258152250719431594078870371137522466869966787817139405739377590103950022807805758830449319066446593082320501398182457395856283878268000116957195740988711190153254391525963653377641588776331231409678602016481969701687991052149876363880679041593041967800732987780549577918572181724740541931113671699827979369231830061803899885435170728696127021892876825682738259817080625878690337673863530868718813364612058056285428593958020819006009053099958241614689862151742984906682610815270663965331512977054837031374346916464755817098105268672471532034978181584510209227684923587134439560900980536739100014763851780607628930116491669109102421308145034473560318894569046824479432490776146507054616031384087274100850670994557392521589960445726638760989430234279039987543819122292963746474944600860148822175802271676445900482786925818416944252716401650919568485651643133872934771955383072724759574464383983509686988428385607604720496167484251334584759476645084393686886157544122539710817193944243156650961397149905814043775489160872526521838449703247225332152753902984710119222388059909328579601854393435327876842445542257988632303730037672398089657832835133926732185093092625647511631863991381146741229181570505444440286938167100809966766508093208519841655753356366467495972908882088259452862810855718478250235975343599779569045716786243938562176126462966538028779800319646464313593637673822719843385512446557239868433024040355846467313063178359814966889460111594614005719054492533487358753014634317954675559490012594177984801310497856297974524612927817286949140907892551292051542383815112997928191169555778200588352584187449384796073727909298098313199824069449313838247489528041745121906979461091032492409372196758611724943798194620527245448160846448553468132410166554774862568619331797866059584808240742374567768910194503677095896051246772812713916895528637120139004834432059450739923917132942212207124696956047236149763588800085163482383553012282186616398176839537840549671798642787300195268094457777495638651920487231858155291265572731936238703690643516573281648768683590649828483661990637212528124697690585024181155697622356187119575856465335412578131049843631190819385782200653098574975004385604808252660380660545930427509193844744318235429223880025044991459405209048285542650992636053523415573054515425428480060511116828483807372379739401409403930552153475679247623081772571942741070377121440214365337969095565550096732849819712889117539531078403899857167088597744390363913609664429963608202960099256467747047188380067505790693348626119352610954809993369734072315007829957672195396660458886896833415787588264476569295486210924383400170509335169359473112340173291712078746646249300819502398146947892893667337597027120884286581046446000912624265831593162932678738565770898704028821499321373386530112944397896267572769893743257883291302382157834842220686302145390933324735399770606440333872794914002053937331578433829039892679237669344775494496290175820914481499666353037133605620090772221625864597805441759318444890971123550992957276514411660491236019491012200986616231680108715963729253498791233473322650131575076113877733195340586508074151003164359628609585029357731615622338323681526001204404914820766321837234516872121249320348119926241433383935786281167358888979027310663102616369793707092181252063855227823944412829043185529129079067939078650233901935334556685533399630514789785444773014335249284681864342385480076193507304637574924713773725130449415378792297829100650861367427046676869215032810056449120706960682983936026913328051051868048379116948449247475696284826193267910823420447179383479914108702004688932561726713322493898951452582866118857819855742345313515637015416669769049241458855995708480150512973374858850506017821629142399704017147747839162847805433557109174316750736267374551604119029235951622198350468023586236980274792524074484254397773494909692791611337656477397333485552387450950237148199622984161371946735733771238940315570819928786070844385090138706880719694267054284232918251927076608993486726928547552847047306249848319471089772313462182568463703005275921964725927992299467276663744557450518192880880072974394270965983786562887208705950729971984259229829265552905125308166867426050843953874492865320416903880679483245395192029120706307681455464627565282919327406974490793585896595710046811339090407239810981530769861520051202804150956411489309719942616923377114664289353170967904308356604927597200428722083831962693620750769203471177262762785556640477386692410447368552493495774683216452718153245325883748559112153952967143512418095715079853443346252259391944034685724498690228093378702294972534333277193177811607376206952930554325782539883439585458809148143871356912321776998224841103504278461452230218560535825618301693100116666733264749591213090537547588961888948423009624160626247480491711187681139385881100186761328936534906211687613225027032774308255535942010327483997494182211180033054703267963500847978971637782133713439820415312958699837252718459229567571467619011462270591501083630383427135810927643757225768531180124041890420233206027212804784529824182323274753748883416953756704452508789013405565748418414760639838431020916883276262348182365668646933840222052237414531309323812016774191551906352454294175758000503247693203540736272834619457648690348943276794629530745372533803337859243856201982185435551753221423402264509718597204766185276658306708518266529909390220077526222016252432818754856602577253244961502018278160745191934113932557454889400995963682502326162625839580167810109663267222822935022959627710104592769018192817783141178964179368939538099604688954100091641634872255896977182989097445545377991390129162494566268777308167721924214574191519736959829805733936166239137187909429507104498620640511565108241853662612475460652159537928873778696323801026293602428367382615396854515124121195654548728828945959559989372591970362680108744443187992595106953304554220779343441047670808327473022933675805651236418257577447509674254866361062606980676207939919559171178542187560357781786128208725199262033377208167486410653250159157476905387489931302360342965734031048807399582997815860678959068812215002785117233518285817226543340763687479165649273119840498148881851052945660189519708500200921814462792538246818025527930466215929284581982754357554591470493801427536972198963020692603876187882831858973491193335234812359103525858475528182129189746706715469497767570091725638279758059780172092083937325263803924269968613912160187099321656703344920480767440477847211569538536621338350737115523374443724570032985055321747387673126138206505800308106435675984860982552990261507294504515726646617212890358836880025192665148258837015330944223344085168353244983787279435625128051041729105023820211185426533249116245691236910948112644351240894997447427586994169251770018163752010716397394784433079690174076622689437208576934277478673034825224830225015294539397113341258862690297281167677145076698105793962029213828547494361621510264750765743176220143606749940762640229006846480739430920344452642059011553778531426474936593987824516056703856764496107496376904666718852007288820175700151513360163281930973360434779486295782413694089508697955276186450061935015127841765952472532245871909956429133999747197921117396767797699726285177582048798614005725228232256923140050415639505747814841388905881251990064941765535079866844020578615853937708292531460498752460136876921826101107009603329837337450645915007454101464880179558288910006221000303054756569648937282370525347631822303067737280023491110168280619155150486563528471139841116282962724940686679623159475294302686565308203451908399106197921000655912092498542803250099850843875930609369653889589314469212312443966001395664701830089425589456295862524840046685840736743981930581082392432073786956167150419375625629930655604731775341887998913224128399331378953556065635123023820048627088244682325987489129426904781914597593501460046635340531508363457092676608815801032667473789160698945323933730741636033699506588136306144063600928606624394304331319695445020403570002824010043553170403030596050245558055737381530211204125989240442543531672640373005255439818348362058185234101308236875166057712482962088844134150090097012201394561557803634540569809159528820031000019602970849360771261490744456175900237071256086829666120809841224432870582398695318175477434447937988377813897931041352652842275510668204701098998251267003355693433331424437036024297736572815709256038149619836492417081300767650331670944588404378110948869811400718380304935392192513520349648796610909107409459954827219026952259880576099082419873377043416710788177345268054998337284869219066180628207063657282017479191197783230270620740271225013912970453169226182002415967875691421531121489585481481828327262161321815269247064946477996848261875553085154597652585463784217350153784770209890488418906137684930777428297537249391663095563256045017725782842074093366121225168545638273422323527214703189994489980400489075956508289259617359876410896995676940428941998225900300918601247668991808454345750356266270892302913082423279903055285349626882016242397992479429171961234260386868093101958459301406093262821125461059696966175606228490049946987491438994598972891199334147259600790679571334267828680373820834481555688735209572697290207218417720370493684930170892104702290569807903096940892838007561151748468310933822927867751215587547468348769195742087501106541104352499525737848677198402596415424806488847177617461114992429177194606828823434642376870044670686128258381436185808697883229391028252998665208439821603907588109707249499375774881525240500233004687223258423466114702395991792959342322725152480537984047886770073615243922489037422697690165331883571446386416054275387496331143024168685486688682111580508768477595998411469807834837727572562641032584342690680368130003321054713514121284288754901594339926992088802170669725175485937115383833059088700313852375563216405104860797479836729251852104100416943184272640134225379425338966551689017656553999496111891605039866374111599435763136702721387596985606465550713228072333236865673077157166690169299370342423657906001743079231030331172301542202875071899881064612171435752259050418977027362106133422327146232844837906860151266747823119846179695476756057944101029109254607821777746334990968465773065207922681722802698038017289463356664477565504602647871245125343881775464566342480242326032108456771988329717805860970992136127826972016166266822770752612958923443481241335203684320805020755384962828470199473553771175157724797320904850770349346587524446947604791411182098466266048140723458569351842636927109788168672559189760301636626506889015969087540005528808376498744191607951071493226894329337369814047819031481899096099361097507788249548339811438047162355373818675237160304074313605054443472732299202504552481124897404771933819475312041699450374239629667892215277484034194964049511587975848420925389537316358189550204848594072786627135165770705686767039670217302586742795422167314102672856036030470844015431260356259459801266208387661641830850545021483219942631473269490010488945772981624158959392583741247424045984081896469038713186579448529595729011439862246143453021777243410549950650269050424866968565513009937592403483482122174604025442952047576607007940232911760583611225713336716271256510093849587448529892090212227938338753837394584624521362272112905562030635782960425403564045107420872462820235486891742766622192921790655181313942003138638940678245764266348336153853833553168701156747392396303051805326849902943742730302675312968090708126978486542090794536509272910564056151792351033699025863244110412416997628944383619937604404788705291286074791223962594705813013049550941654895323804457651946734332989951799988582472851418098013861648356309583936219703040495426521612890526091035611391477394643076463378240864117817678735739933416987081293390796371831691764374239395881597493515147068850515605572615551177035646702124871148962196206397323909915028048270273472504810310511642016921874895220040475002745093681895381351441351135824714271389576328264545239732289746792916177189975422017056156386145073747837095100955296634395004027775619509586045024585189671910258195307227183508469784531025479501109953150688793616672126580749811974208054632405885092532394869962976098769365142463724717189909212081778764115354970064531359052911667784797377662991976961300380819197993152015665994044124202641702014467802291560347272552944467960515708575987461260197483328256582163754325219724196541627003628331507081280967798207618374149766781206044377530366361046981932388019534955450545153141292936119675584018363642711739692781554322676635931375207343000626950331697802069718654532523340102424600713011573705386701001682421637476935226250773936223464755866815246386318306739475296920011889175069540177270551599021295496240470861914174431251205652998563583720092092173271571406963870238461958253731938133555171267358286500906623059462907719471910228762297108839787903935315406719949930911017312566892508846001395234219440862356663094634757508520522638626332884701757336960092034949036003181686066653002297983948260222585171577528793520974942069100166077668938867684136703556225817171434895961475120793701962679484593458651524810994908694495036675578872562202785067274269087850978098883603029560189455692450517370076363244516054233586704687700561413480569673291822458685817476633783966417605192362404367612999810451867763464266976106822224601853219535932444544063678793793873549724302023822036022462915523477079847890872930978054892295800610477246278424249780111407511450627023688196203989765766477709562397963561415530861332036129961470085040706205776049258030831982010128564693831467958192008367940816616179742934480430181369308333628745136419990591637994961445925632138116426234855508065281581787046032089462371123810022163677967773948061770615966680203311405769645429942190546464112649565175908465003099456056936687443068298374188065531640642255655630575881869484957311049741361571114806157872401478942785393492645156730500598639521061841396222611950241119952422457734813451143539122921661378405818224266212384965966239340074958181722399930705480877056071499322365992904960300511222827213135319164138563717261473421191106841535441712260702789934198645024969143446491777750511864891678478296843502986270701793559280165897767707908584670545964045890236187704836059344871993283576730390067446653176903471115690139519164488348717502637548376295233169280799163887178898614075696437538489457501688503232739328190352457092357466471976234733027691211476697977074132557876050723622978967231964933172060639840500274653089493274007440812140002253812519396220996744610355245038744708968590687017075938648523977063817355042228815086578030422228757912753721455157821902037813069550457001907616848449764004941537597513568452221913778922160212241584717724604565917672984681922960117624063408947780627936917036226185976465671958151057293532105793489858993791978543711897190622572633545814438518053511391541715719248657968062180765255800255200448629881977672980209798623008077372278059051997228336075829511235016039323839838376988514581139468647042160556344306058114217589175502941567280952889536050593051974430172366223822970633223336538519743203829803340067445784445185416578872313918851367790071758265388575632954471072668597150537619686274122547488402192103848026964695467631587817267149816585919747113975337190672917427103140129870951373511862555176608180533950694726488325852403733144980566889436154569000773930168047237628009719640759915271379428661285861919312010246208175317648947285611603835069922497490168477635635503884985084199901412654995952942803807580055699994909115415875771734921722929824849701233087424820732469871128415611719043560888434083504909971490010880499919353072157178906602784077416295125894133661912918214212377224794422589191030137361637517535816234999675135333548944051731915382904222472304898434607300172094965906897081891225002434810474581100178961265234563123198484909664244660693903003773473069490353946387176002670225224921034252765788381201862767441592669539368513404083521391076291765233469620071347014793191258233918403949918596133530234588057154049397161415469871401493451311313919299340843057469643370465444246184991966770996825312644416960904971754726793538808638942834864250407652281134227234482452628676723579651919724611218717873204502517023801605831731259077504468736437810232851476188964668890163438046124550411207831297687616180132088903075866588966718679232320537751212777453859558280599530313413077607283487054508085800499994171074058384666240561331090310683261806625849323880075392666248876172416321483716114755995591489296827882931984111397842634207606184719817215639423479134554305599112073966087639896506572498088183713915723470932965470927496108210341703912967422100239997997670257298531245633416269117802463412430632456932031440006750752379025042776453751950791020070056456800171726362436707108305480103098823864376499350368857198425456334213447589910563807811688531499872533302075679760500787822124998957817838938545724334321354849170171826360701602019073338477687506204183478438322616602218386913573028253236041989768252691547261023633897152608774960418203323462079307969614932495804030956822296868209937985108417248441325566998900499257795397166603037115733387487197259858982295083714948216781870797895276168307682210352517208899668127939295335343999939103214605951204061289447853918942880613419866824629843194177053501947113030912911882445184511205967622680751135613878460183285658112123209678627899806093663657167073288495715791953515658096129269099706748485961742848742234764524697727685652624525946190101143952080294258509789025959724758661992234011400542741353065775838584696399611268893712264338251472162868985161976778633552750829582804032931565225125743575816461561846714773412782176311222823368248999877064270826171054456862389127434245250724217931165674230397379707089646367658269925786417961042985675957177047901503619390903455516771998145514730177972625702474287783902057027638344128536521771032198512839513157003943973248593058523078517190989946126316801956349027057007261414804272770649170250461233870124136087876816202429027481765916497798903198786812162100568684586200558090590250667878109679605138448954957926925445201016714416256286364894036695754767866764787157509130933025003850485826941068937497322969768168030877987001901534233651823361558733023754903219866248118577165328263829078284109047777874210965145100095513205379872368280391126677254492757918941024204369149685076981601595520619062552427975348558089595283415043026010188113391233802742983888358906222248906770761673589828819437480275476709254585173786698881357941724525935488555973291458008434970360013966482886747167812159389852496457872993787540012830619092642368399217633534157011320771413915701577834261040888594105979642947412701728096997304450476880823872431975017036234808008732879598651410909544027269451276924450658207613904331052934458060048684359714581171026242436031501866522241813997957453947537522856584148702503404529710030122137350423111687875355096942764156496035915891027011449406606467169760038230675286926218108370149164723513005511929593153577483211966309758505115162856022454342987395529512689907887349638260488581182333504739728999687998485181007362673378284670643764387520595476837707471294207511192856975432811108218003492967499715500085806251466241203972579216113912293917528005580456705292500759315720359942992819531901082269001664204736552397519309266847229195134779655855191604514563678456350921674780907004995889829576632522178991026843352598462879357101210794929575132671154004562061306014317133911925075138548620450658424400719915866367314773156020227815098528079056434624499248341878367427519757867515875766588076146253231156501285453627525919457938757684623645398576859831713392804011603987439575349497786603295995251797584562541460502671893790043576784505198134869687999340696464966902765392359635119412918026568330906087932811380046975728969568984507216018421676989138463495524312630550900023185291330627188930031161158025147248914348551187096340976703748991622351681857546278129628983499840243327405554154858736226613202790834331027029365290188754067789358723225341694010682612345119967420582935309461550441903663728907996164273961358109894079635820992107717102900537875606584263789472044883079576460561451965188888956679259701017199001135173532727028528161591901710700340174903159615059690266827195168222229436458958452891249345830914394223133741812730724649667155336321117493596031497086775045736820828615325894659392616453173907377183424184715147451132350461324507011931165736102523922054502193692695853373424833861263799041547812062148013021130672392276988779850950196785069349596554348789748272244247510342938974937672912289286242580134230859678360527396836315016538877840984076465834540586225252382253764808474275121940734695227799450058125864827603669500518215659208293970269987411790996372380171884111662302740177721889943933506465816705621520029204993591677659751363925744319179046531091969364172593330122354828924879475555309491180138441518338877674132344986077803274764056249356623972916499734791768070260515081422697835281795121323139668949196929775762689761921926771681093900404717250989651027040069497097313558384127432880681881444768563375377489998246977820978682210892155515077467512082267103575900653950234984945016112934875419571445818785126452708479099047722651251296532395583191925576824273445013104129944510588381233802967734349456231748255024386011975187309282810557829324474742668659662221831602833989510973281763836427084692775468915890749714720990000216852900340996907789850838212794821288283425788138461796426998265254137817341140127202765756368145669178687162955102035831211801057556224517996981053234368633740387468242794199233066012610147493235567512867169888047675734034524037926158975720653827664414024359144837596657005551494671100193983062805423766942618418278159031122490917843615461549891036484046957482205327925269275096318105814538390101353172121482679501396883685130013951224631024533037482681156659825118839987013464366988079162847425322842694708044137970597049527039098617693216183890009623936345033648072835812166073678339015360197053557246456429905880686433379668638733259446907315399438509584470020878218391763203321872327906126511800374204586238525578446620124867956804959607297039719313707898588324612830070205288552559478074642156458509560968798999383445829028634100265725194882514482674769034971958044251877878014717649291992970567054187655786616088027865078129460397103474316211944970082865608713869781295886234106076417556172887546198739241202777095490828226775571923329464263583113936461678862100053319006943921290825299945307890563777770595298692416867431270433974466961882846480497143305342294098821490375187543002338273962315805763173203667459012054673014890930808111430539531520721222491049338482045138499165365944897822577047368636745291625853438429133735197916495842420642681779253747006822985549349724137667900482371982398698881974736899247983001652154114256995400679207665583485407573438045278539341659101823307673985585995141011902005744166040892648924024885874423405223501531268953664529406614043237153887077620052991386276409270282170547923315957570941729251193805209028153883890415371990591109164731576680073552385724899843427950768126040889086426798405485768011861879305545531562220591107731355467847624721418256235341236651682155144853869880117874155910921759838111190572762838507250690860919410152421900431879198328591932801194553419408217781544537532049026710712520582988723201322355489933569977037208485743040597526181240887178083690162496466991360120585439053571853873184063621350712252621029102670510045520709079976191630373761109549871801538327369553936744900538338901721891437889140356843267056437803858552367886952469236622344929334996900137643950378005921339561714559950767373888665388508400228720643611682836938455306603207340349297231197706465052463989137842562925333215963889304181303293488195213239946797624566854362378093154285717061495616426450165185568281376885534628685409472044325123943740395064710584326902272113729515738673835575845440613407791000170140342297679488595447302746116622058784139784050116668957553191159731780580810259115080755375704057489043122483698696204064577599458140472839516873934409066138068445045366877756851872390013363594234546880823031593554132610087241211240218421064484278444141904364933610969046731682915259195407274249264162614964650520226884720200352247294416314343456637133718705651974904844312803249876723001473832536810532868572255105600690426808138373171063551771465560958904539374685231026865779487987703007260976252677767690658741362699630042668664470962338641812659851244535069837376478099352951415679369292356387608699359933497252148392171638248037123619524854750411657371925412273484211332486302542970066377480823257599418177289864990360570083974395098285245784584094965108076490382220865978004210645211763910540405691764899596918569342414921855742639307663798999197763510619651251763557559789405433247732021310410343490170635002539930658724896691266816136518274889241048971655725837109900733581640957605076952721437232736665068311515038021441841947359408765099646040473669157532422376089203713846341869882231036374553298511512052582961607201273003706385211581687427191057214857323884905265384589809417638070895749195558606622927102124948367163520183015553292471463234343426476698502425338700186967006104191616313040100428832865703474407307344359108619902508963266386228416778127011726434451294112341978727760833126886029176887696291367065750953210964925996340045466646395417572954758461375994541901193795467988433114762994039727397327277774694701452013435171183866323791900513992904331325878950121948952301769762551212677452776203079401532854757038319595551276637391728314547861876319032505864294122014512160034347874263610965089288170507901310652827199469162245785519956591064217330168206797900153807860174388463816247440307786036562247399648349738636522438607170860590473499485638686370160334700754011483873565491408029570351635659499428082409630929532814816149613375892179796684217792983931385734379369277095601231874872580382593389731864586140313327104284993317525640306869691012941012128916442427213739918268212708560378373378710996810409837739418284063976753969693530681883742259949098545283177106598668673835860438645423863174769503229872011780755858683649699486908014090675068919132060147246038356103392871486629177032481816236740483933829096438417453918532736583011666940327460299887063357272137552898793776533742475181757558599354853894379277745676280317315259741611848652190399463440654209202245703541251208971971690382436254724417304159825546673968714001790731652265127020762891142897159771216313856735578945700397569166142746992389826154134449311816149955942425194532374847852186310555572925458908270600498949503183393100983909466343282845410599344342952868360934628330797219941241365057730400935717022990862669472947957170727919196209856941078879738711653772242629300515931513046220545402660410477450597940691725744336230839083198448231020049870562284015366914799457620390682480869114079386355020984377324267546227396472320725133311370723413333215879438091446242920969805895826962036001230113749427045804154197110741406223053882550445477814895584291335734822941424755433537495084781652922947996465167782785246616247232365833659699279314449841116996395388713933171287176709534405899551082928574030853609844778665568560814223176357272744403430574579331310033175192739046777090212543518048520447162829552037376105135935137357673294552076489952030808543300943936658517431341541467826261422216727895079573851517322510615078917088185685326610779165774702137341517627308278419802306974175229914328787462715446777024459838670018453510571983478093142916204933048549726059963996170376103711995303509024062762875827035279055012411892689497410765384502462422272126808768936486645855671424695517946527139484045831020267206935860555607406943931250980102016906605462506025952158422153410255102904579430030660981409998877687002983332043606796201617366830107646045610359050257579207382613846039961813538472662729116010582117999530409797075296341999425893820677022549049831190756143264196142660394947730788477826527700311936946428789237480942485213729129053983468459093601112600601799816245929602895220148972011489632565580389042883777340551897294871458304551723615999001071586346633267007694978156200024192734476691726545355067246500666902958725449405657668582666860859531842255879050410825235363911529813815075701068938000510693310090094111666636731940835340214724593823617039986914268782993398606772293617677125858724301742980948234979470768470351379696967783762680704871275972629329668183535967735863213444016668829318576815156792287556981003879196530614826188140444813853579645338462945576323647897771729459873074206750914757858880852636988516415074181311279977001120114595296039251227265330943945979629280894569085868972323896459254227515099280892590604170042575214261693858787649539705653971137238176769877489425716758548076073701638162042054412399694969212238880740953675872938019534486177232372068594382631324258018596301236403041013918634344467322242914367862243228228562918264787000055855056728032221867080591065420253973460367489731372120146032582371614488583857419194671013550270612822814679563507511318695858020939630177678547732214197767903391274718314361103885792704879384255289497027081545661182103112164309283897214736975661208297660908102616406152297132855561082124010266575606507907764108626112900537614392975868614810926401276751998579748382592801438195603392121850543655353916530046404830221549617212093632001352923350466353738768277604823147327105731618588842608850464134545042966878333998275878432761151253808880652047368755409372273450251218640572071328027526955127556793351688242653063418895591562653119863694009436164370665318159899151697329635045475945546736806996738495639681030275677350425273929514064493585779264353033716681078761250804190703594641745830343955366098722580530659536984993151101643100299246211179886481301768530910829233671022697959990408625607021343058518812918432881946356160838790025570575431226218353786992335937757844832495514661300664475422835488809309747847000969015965204056116592601626837987085735087543000101954529115593026807196421105181037478496548120360813483160696393787229421233967669694253722991622553900138877405032860120500661038860092363434382835666878552701021487496922801502327413270251875966916370884048527071034528436507170826117903876033407650131440702439346265503829997085881941039002666029969837709730877139655260070407457810316668024263166103362250256475378501085728437425618053263399301914297764602736160817587321641847544665630063430425215311088826470779220175575213570415895283301680905458540553710150628742335655280525295167607653677374039960945479444744122283900093007780087362804125649521517621755328557825704550062499742474083593957985949242709637549962427267448034644745728134658306584746982619329376386932686079630406141334397824887534607873432702564357274791159859841303257392670394187349326685584464908240100351385139334019330042925640091612496857442715819285335868648352804529201495065090265910025659730203990894754274133681092372099664734143004839891227657716100795044287328340361094983394716150375213955028526797806448105110898533913786831735353303417060083957544107024264779343228437273078372708146309595857595940943337895484592654706659351085628546900518762155962568794543417911462727873218579869815188364989146005004867250169673058825491890586533674488123220564743476773680526725327322435891126492001132132986466647392462680934701445269991281101888325375818077457322816202040476232141277039977019301287544948496425080398408622667862183904951052452710194187969285746337182837988068627156860481678140630438504023005887852352420037984390101375203162538228106169328739189764535780947999529448962311643146562634548432779012946864586342239704152194303962990862587966294218898893984591785769178990029267497658105906502260210396259935857943404995660900731355575417183760046548169506915594436325210139012263894018297405825843994594200105340695363613675374893952879311776134316194004014717434379684902460212203164740741286972474396097109748879720817277491518863938999681024888931760696879945353242313144572786372815167016843082168145116713967592601524272499907232179115770066873134266383569461303404568219693801353887605530705419645221769889098101602332579904896247326543101000567249136231656518514137978984301329634357279890199470388840846644451272511991291802109330139663253008543506114450433577243016831567126741142506119452824359941283117782837884548809808315804708527055863786763655938030335632372311092489867269481483820657229289620895691944829745344969298092910131252192594679411182675896662710061936894962855603432433487430352363598015123525800134766939476196552871832703789255843020343426846943378672442196474594558890991901951730760008680737985583678682440983577103688769168255539445075297466659525895606259870139265881263523341807062161715212065071947513651800949292143454780277508886904655459193346445420130640377178600462679363318818208410160971415323619499186065628105787928765917400324114995105754449989294846186186327047939009798015745038965499236715532931113241580234413288683334509145502306163071011121079996144028800169622185642741004221905406922630712683940578244582705413850503335664432218354634475597840405497360331183958059128704658249639047862325823888749316248557770672589448809997879626335314460297920369748524959937530772862065726912756788542331543941916901003886140059843321547613654803822002257855711502988231530683922063226815582566394318645194046655745879557427528575989973900890341267704155454452829182999847558771313245322806523881565617555377000889171050786284910341886192130745733237533420711266085353274660591846614163156347235548984343000046785076626107864754149712668637685617846402613620896851788493796270847650957848873069362715813836736582942394245726019082300323770894725750607180959071002889305258185832189212529852641383408920058680547109641659513753677449279715246016579678263452190819625652754227488689782947958142634574034777118375456212523226337958166736845845909352463754455674604611955080229372643126457170605948188214468128564355124194921744237352304752833302769322038870119073772620717504956054730809987316529590522681558180161383570661110464533505394342296413827298565168371486705302201630004160092454552175994472576199755091754563795377533502214124101279276508878091853580747281478977374937474926272615029445698578191010058727558837033099063417776463567133821029784448678717158237662083391687024856887674398834200575146276183814133770598848747900515827531388049423445154056991453278224912267162611603088110195024502155148985437767228977509146972009453243570639932513584621728988266605871620442168248658121646068194485148818054973495623478561194963350755380839563730291417970938601553633410344819615287800241951658670647016168263194241527276379100712644057623235175039946292187983437763439475079077365258337942179509633307281091239733300638856627999852917133110432712751913528302209680173013752072359508329961350639089703046569827225764003130551374934802212391229720925996491824422842148851078813754828598495612357617203604041801054472452827725172248853136679446564667667205216125653470831932872939874559498037580501380929365767877899770374279132258643118594706897804682381287550101810777539773245821318732291878542995232910373795689031049639252646775443221507878872857056284210635332657231686744550617539975034833171093135042293299104300063944569152287759942884234890721677128452458142033842689504667202356330116187658725331259467334530701001776088369821611267194137986576685285445974396495681852966204323859117023943582862113463542426676869697354640142045363131365560005084366924285548116206791778323798469850190601682864468038371941263942694361728615245400368412647155169265912186135918386186772188927119663978075136295112668391227739327277907312993471692750751813318620622739419120170774499351328297871650287297985383386663387244924201905274929772993992840428199979536513849668826217824106261080640573188757829205717136471933184891569599524444054372102320956440801170108113866576924049776315638602197242955393964682321629428611036180939521997458430058499797573036638699100608010328113203914177458802293676518523811182447667769123052635275165252114930472901517757319746214101463874445033993974692785571845925812288599253894707276165480971254081479306071759660495785999648028899953033102868636005109151464245229197313505055638359185034211102490293897831692607041485088243359011816475296101047868482213975521997300720153535812051054553378717062081768173472375897344244244973157315824758942030893126791255670970456307369027692964714706190856285168744094066768331037018147975519138301937384120857923267072178190970055367369435034199722737974714965542461100249336835789801232647848834470112028837337881789154800988073100664225943909240463659387085728853037121459327673853416953097324669455228506120321010092101561708270399699430824994553293138270480871534918629771513282236723562221469681028198275739573840424810599144769008901670832371244460127386005668662248214689328885962456508736516060723708768724732720567544962058630734943409234770850243907020886334362378675809281246903154337321219031414487336800235891420369025610645151400276773295245798264729259884450809710702925352584104435388073012661373645767153883045124337478163611415314306990921848570821621278022907460892141566709508045301331069213032331425704623131647269825870328192394084131945130408948296297487002378022913605239598064332615284093830683372870418337594189248942307284503818923459521835226128223144836128936607054746608914762573003925203500175974727554572827926811892565354029781662293634823447046795504869478029830045213076308025569757885353969947974167819626062627765318712670382827225469567387287689069826633453305868414864743890895418062367767095185360547952180740334182834459753667470105683452194943991057496387330112275565925085438496926383307520266957744142352520692929634000979056363876753292276909460041643872234397176544871447726506216395701672364188661818721530871232667805276599349928490126715722996565341600259783768830222467976087271632942483264229944227356733105654179294743684256980663940430278110087022029753509954381870151417132556050950473254917671266969578221513187208510857682833727374653359934631944917263402302546193866864659745556845485632086417857319428003285303586971328879881629977950308635709066994579488189999950106895653800110864509240504868495526525163380594970575996317931683866202234940698110095643893386642996578071227990614850170115259746905389433782758962226181655414303380876287441474942395817411270996182367975286726269271763120627030864249630357072431923289192772115064792497347335837704656213030075507806590650826166642061575636793574757484080960723909786956336806630512985317452611354989843554065252240381565075844364157813869489392930909653602829787339968472783252482700896954793351886016370372510617986826160476707086952929270271295654178021813612891336516440473799962212515273018078049391974916811534501454883580918280669861823103042554141055042043523628670310143353278975085904003964165865139340155696611760174923519992915228693743235263094886210469115349329895246901312455913003881075278051335211264967357389309855928577129832451113014256392320593489649164527325550125448697536290547011004005765993049760253544580028989333464668560167908339832242577565750009850324200570328728925673591588942634974156185070586713274793605018388275383505832465736491747297312031431890154814822502949255824128031964967722986552201744634841813038253471231143785068101160386398317714323330015754387616743744848294096662164228388103497770156090759297126662158975705696883077644010916697942066485561417936492251685414242641904397936230248632494454468694045050882242999147468855974416616760677215660101892761385515759328061976599548741579626137353860520129231306428228773958692018993690512199187046419250851883225573989186506765220837421429033121739029568235291246868008351475069806172813100402083826000247020671179660023037420243418020282339158050870755026891504764579420379424579764509088424707162339784629239922095647717757580205964254998094097545647801265339663857980001130154849090550704415656590508081792844452016027335350042636802141211132882890367476012126727531673091834971588866748974306252187298856878369907754342779275062593097360174261304660902657054175175293596621118257423080621055505801741710792499049478156920401730962322893516322216007756110239952577304655927701294462267820636511933646870079332009482536569381910931148238036170814495210297312579500528444497837015027187650519617225546327717715960381576117023432768839019495106905666633991095759042654491917573150062036445877274929805057953058870875959644352384538788166803322192170638115083752607949220603226087767565968496614381897166172637093795199098674059187156218630986052386957414005791120911011034393859616491464139347409253447952035858004483085639457278694832631674245139700075899120375138241053679998733505993818315348722909940831829638319689327545027288189803615692863672777061314870109547068362195257970078830554239859382346231633659729604910475095812919599612146218373944169278470001743841851766908278682214439429442036955595168216431786548223547127240932475281754870201529327873527028929345782648386751038723592485913565717712791485416440116076569350753801280744088306974320406390192093633433152657438449346682954627226909996357927975815552018850000538858463244783650173880701010319600019839922321275667112970826799671929175585400242486048612919275082458992158370288538478904086302871412784550424150177687531557324281521232304378521897870353842163101094615076888905784315703062263010977717969820650892363103674545130056006184491900837447111497755200149381242390412952916653897731166488719525538503549175484112250972096098560422985705484669421585924253199362943406545879566841188906728985896677459317966083802846113598739447613225448811722642948705429955503911144252197293328742314834904088950521890193372543240265175018288032147249242171914743852031048548313645691852832770426762788178326436795693813339966982234801335198705959745707709233398054696656812146491710204694492051641693322790875475974122429654992915983490680431087533629644099393266336100433902417586521405555348152735616888916433334948554646913391062523198926874449871284780442898312636585927695212178485704551264819698749408208627896025718050167232133857891045508805790459975602920009616945517965632091906611033615065991424803499253877720013865730106192388723989509613296959596339945328362476324422053285772747632153125579343919036491438937993395065246134990634380556969508519782969431002818113017802055621413040716735867405261719596910845683377248714950065967596773514122342043704836578180575914255425915937392272749532578527796435068212233476664059947345088543412044141840446508875474829809083911665903425497232072608605359508930319445556382930536001824198840594198640435843156565133324130286878667411089235408664099125379223923827639819114864750065992683043389421013641315165314590974070659190722825767591352573193746586828860835378119687810743013891747941663483251973415044829777372210682127399483200405839541773198739521139041175148781457574657783394398454420889611799799596494708567371638529237678056963873274514085747227046073552077138065427528120673229930749656474518965838557497341922946226820978974777109467181815741109664851003828296830369634776488265563299467666939211685957987434242340535409996911650943809328844200150447681284704678089911812226420288704437224678736151654836195779403281072197710698209020588896967261196773198014863210565277766831538373926359386880551484904381794557042651034144929834469363343495244454074549949472539969069339432179732286231461580365274089624736113025400600273466221836329575858760605289636386932127989858170352215315969385618347582528613628687135056589202424583516579964041363193132670419221179032018874203735951922917552207686030683356511071116770796022842208972619722903870841669690750444732247652105558505876593669575838583350373481319826707367137936847439216729372850500613317102666726901652689312812979835076809583966399684360078361219496817555106106567794192827519586751116078736737514193082929714431254865476159098395639479587410616576050777569500423651284627326134157604550957922696237986320483050702182960673549929595461474351863338722003168767320786519214300122011309630481936009581637762480047338398446470360071569923488412664905543336012895567062280381132378960291036971443150165006112447601459342209502044983196825573222045979363387340309546450030681585866125500524888685365123719397721019698681423609263950564152643209470815715584544996858455732701662677210680194428282326982285832230549618097321721094187087139635297513675188781492934727012895045572843539089207124452404779759249849427098779985879344822112056595618381156155215630709389473842446072306352093102298615842953928361715301924858108427294432039757739878789211553577315087295807159827227699319196479278209404075023820672834257138896210935467963335303746987591280860286627100989504803455594333504117548884500950909656221908536559111373276105872946170059375118932711277422481457453661247943358879044452915342622257466511833701171646959269604690070487280150252137506244093969326821000171890504092404922105314736265617348783875568013449035559270486148433061573097034782975671598299185000763567883928983478483193281401903688230350279059359667530701983964521523211817892816629677274905930532862152838896529069396644453772650651838226879951157858156172912251040876377203558023639312140352223465268604835054296346190509146638470463168935678958308827261646759093461088943852580523142471923803770119100545338846391028470582616576575446593532863268042881747797660672217310312410949281934886517076475038639805754472572799189875553608970033939870026496444419307453249044973785529921612920827439709643572682961019515112518835589837564533470062573594816692988458956017544798857331384273964366113172366484291101167622011484357593203546815906113843851303756176008461292937770307971689431923310645205326202500035636895147712156673332268731764074275825993926727089951978187772264381203560721779892249805607345151152430776348602325818889623189599253971552968857074375255324911223843794948392888540280228029174888891226334583551691269371029436900499358635486584440416001475645068201428832292406914514482673083424945918528030410389268523486764705878281560874801845932748084561032170675613733565494034913935451868149345432270868312841456038968748161574019864753389957850343652606958264605878762996708321372076978717776578905016158208110549385000444025619535104984033945478872672415003342205980579707820331106240007154766725875667126629899448197969826606110865087340465996515264485881859311492908576858584197564715748928142960894997345758900628975443551682352754071838066530478993005986394451152107908482295622086077996198360341019299872210904076650625350609316257728102444274819396159451326107032144253930650861779901153722774556275397260715849439899470623930781189241597023123323774850096446308677906801694199001162997269350012608840408395004731235293175479772646057748015737621505070978212911993239105684559256991803556345643094132913818074936169261965764142380991199356555000434413887559127272453553916065289860416393630593756701594560388803475850436947609694457462096797870800030342818406396264677380368935306124276865290848026248466077897375953145877164153620836374112151583387747997128735670700615252262053212072968396714395843050016152532383503756833072472370873691163328055094964510786852882836015170215258665315524636803872915412789859073632296200067965648787806564442178245636233536854011932176105544751350866200384489391435416698137397569467435671641588097806818665895119706321803166319278196418611362364516736551198623211383645289251705957626698879866627717502103912714427369892392152733895883340910224322444743460740943896689755307723521281490756161785667551637704783156821777577054120175858152664572325314952900582257021190255480479227337674422554732195963714152955000349537485812892081300484271177435138960173554112634119606158649450076099077891559782993422335479108948992144029660700474798642554320746788225212087718756870532508068415120388821605837024671654117674447897275518553207199504810985796837168576667971292731165814093012388489920194418407292209480657648897173912928127869737660679738273658073237782163096364096941503794531180403508218394129693238311619543922072886953619959577515517560961292245499554446036011580271786175916012886488392269717548929686814359426874398758794508901185411219568783367366404718462045331201427111293411596322278560281041039233631729001510552061758639658406866483911396744520869595561122790992815118597340401266209101750564644973849406953288021370169259834877887482169169268700362719451517175576837407155126086355420967116734851598712075354483027817146786079799666155418639188922314114074316467277726146743685336630827290300284501670850306073806563339211738951880146025783669282790411746978321706697936630583365743349419885820897789831705131740846752344475637931236315772056656571498179556824058266183502234172955698913784592574122209109719055143972057172801257423497579018608080624819447819825581000478812656573314416386139653655209084630363311287781272718908135340230729237761836673642724737624633565603669242350120999321863565333462811414990602099759619172837448230716616179734678840209948629209987600360919563302152722650786772255657568924871690858288402427105281559849143894818529980951471994182085809771452055767991305612182934045609962977985416847924431457079729307885852842585497158904942612887074022970342261478104910411504215285066087008621621406474962724523532792657933909697804905840449793029803365583540973200965098697397669681473870854798704974863584390347139553499161007014748443990293011772555978411532618107544223320445320722094664168536073830208766441542771050092338809808769055710216240138283737305136068551404705544842029110592041680278748569362364148153662760342266502426146905724906775412713934643028480056702184590899074297264061396853176451453736006074371988920787209394685988220952939069480724123866537776849698658817837568659748780404555600747916157088312687859524121861781438630901092479204791529662786228873351154443365645878180239608816498758721461620367525751971069623072414133913048821995602026276920106845005804121719626647710563494396700679985584502931054536856536880251197047185381045667511696262228483666675165297256502869123933182452940231653746079211521389837118211851092283817881816674965485014397828469202087127395911503103881760002672948383615260364111556070581207886976055055156196993990146026503232938917089614544143286035538694819902934413018185034738125308940950582553372699679317670826445298003761797924380226878107766971190727872821506441940472670606964594025991971683592247201986613880949366091395797236747345548847507901887741578797257999757879592310999503234790591623290411497067609600741756506680048616585926872296334564152772602286973908534513054102700082709181436963864960380415656120890303025196575933766787864088584024085815050683616280430208008836305435026986087484443470497989034041531903556103691142203588977787692784225262933970593406609956786879190651891504491172521787964417409854755130405792565636529201556951486221673115892989249150170267275983006757548120208641537688883067694731651714771486935060466412483582109150742315605961637961288829295866626939707208689541370658143210496180873116151706776891944011237819249515555946886401637311304218874793231289644789450140765441591280452055035014774283667740969814711586630815511034743381352424333441576358300453112487856267862123326353487817387882787092588194765461328154465312187697609174185947432673314329621983159395410895132689155979496384000161189830988852789818533024885421910421280728121774325496196879596258767194433866851841590950707349978510676022977115499465608485591742356645980544335519111052218038830815408635304823888678869051651935880605062264152274619050137816199454215707476835404197525324489424564159459383243288633157324278731759265688705901990765279532139845521382794751630730246410436384235465210455485227705482767122398267935111484838332061047086455969772332872802282298701065185701928997079446303614942362180964396628375914700131258859822469349901992018730037401418596011312866257824118954406244357688102001761284211172016936257376399087610989245012908266767069412786805036107937760402762127204025153768278507385165392604395898494223518258023098561314849923592020639771523474860662075413958511812958995522933737233208720725078059721613818523186406340514880630418470696877331333288516489081342619059176406734411302899216950000859266999454388144909417943457762763194901533461963088568238955405037554588492212379561477718254055893005462901519429776689805745324432963513344509043606376738316933789052771486951356643208635643754135748849298534942649466457740920427724392000810113708130677443141232482020728651379708854052223152766425963428470386752159824761242699199282489131457501682663060035923220041824449331432092375040342751911945012351398752997458785705430647082304769114361339762754371747844524251845193640120450919602178566701274823918556606399004838501788918997086197454211144652643797174067912983072639457540695499029275245786684828717598078431037938197713708958941351365756588562854264363727644338877353430212864947793899377231709735263446189256075971195854527843821150618696224607383590118983147493939512531491288207475293305959853332187465719618727191866529358290052601476917842271643754760798045642887228405414823710120458530368639808787336078837653901353060094557825806782871457250594457259742014817289455277635683844655876075453214502975303595848621921809203510060693890826996109699811146767579477329674622738146647550789222462724063533238796020255241045328124162044255636113856137293708322202781056123843865990215024663243417177992430594487824467799279784132584076783764884862993983144785981113270610568022444762778857023280372044279952092902132573756270356019249781861870760674915815731082115167149388119865930210337640128375895424179898034884695082512414944731345848149313621566473626185416264191029694716607465543486918174606821783158489680659126631125888957792824074827150188412768575281670800698128628624744271085359734161035059217972896721196040221281918033862996458355112393494038832183638799852724847530787893664465562003518001049880891555332232284173603280960686605880768859084766869278907231799116484332738199361871452501608296718072266879503982683780736374149640230247085523756791102548678543126486524661103512158913334839037792883467100800125728845297925502700747297420024167450753855159945015658354061026581088333707825989043717992591277330225870609898386206287699321488892769535829259593187088441959422487785301976370265989054696256003560239459047723474929552058612080916662990301167065747804505175269642020344231831947539930469603629598175903748497998328585773782571480250746950834698265585031464026603511847903045852143365470315158549571347887194191261110286621734489637711418300444464266843522227230980890683136522045309603330465362800280154563057575430108447943287903769928958584146554196030165106360312513696725106255501237051390980535717918849488151986644349955741480318409436691852733317659642937812136216138558440316501603791450851345988685443028755389742136936500369533725395131166921266785903519437635856929710826189521560686502135892263717698426711594720470469834311406849955701925403460576098863119213211679766248827102242720496394425805318022896984128162258440775269789956446936737169110422528599394109038660299134537991109954404423745726837002180452770025178096224257758730924540427126876973354681560011983005598168855387678498491774931922213715390015839628604594165411804061061315189267436898230730312898677770781818863809543914262515404011128788345268800285148813745048613339893565587294825412052703969564764421431216945992866500761370197573457889044874367996415304638915506989898662468171420702247183366207896252313458561025888528436482524360640790766387715092447989068061328259335860135950690218874296893892925647322570729229756120336271926509138070623513953670205662972686641943995468378731639912916851155262881218443913939271199915942390969942056861676594544583585116323884650318132873640456892596435269323895241414599576855009358737954111174884337910282200983204193847318125647894515148072045987281518709214369570893888640394449983757728354719998838716399625397292215101402772198814845289217643251624746851783142352786576666628829373344087863187413932074977781595497911909588550388169029456280363818088845745550529073168308432820425527941305826830216581083376436679952051845111544206559688510882823297979007875168608841416097007672804550187365563152204604210744635500268316236906850369460930688804829451664707020540341771619321057090722178293225915758167098836830352168523442422426596987163972713599568801366354396452308619741549406280360326562325708846910758088923973937707229708826687835938364042393090026385227527328273590941188455648734453833305869574309400352156795374370254931794073811562271505046752604499277477176631761342851015773554710517131681247693867959877610000761684554371272277322827799244550727757031831432028852307262996346602676406840044797290235926440969737156357910904429095923959129969945805695596621840860046548964109474815817248494039981777328627426923071263356575857196393604736297874813850297216296233294485098907004783787353167744347517137067451441709435652169508399649342264979415271912599418379448862063513973949662041637854518161319293538635906613582934240529994636909476658125417328570511343958551164692232016028926111316125812574232558404802464479047048063776459449026577156631507049602100038393048657174953019062717635467732748196112629409584456711459321214418132135477142632171123555690654252485379169213664969905293724133637741719638906648885114148645480933771616844601817236666996085795671940918509028559934518823255244137737567709435683507085018648133357075855764532319125958163216926964114919079235743896901753882538221089622371815233830366122388808873388145074283244368991439556593292160526281296134748072446116933124525131651169058027060948229848170722069934241081047284844434303953486117434385060661971621878960316434337196990924381691484131778414977192754303832966755542616307189403759034415231690380091830659516466961729543333555550810798643740605107256403044290732796205114992128455730511086636434406067316570241252896439264403923678944440617864463072080826946290894075372892892623944275259075077735197370884653699113672918613224254177562998451641732336416618129265162303040055114687492841640867524912045705336602024281379442892869850118909312277666840853518428776329987108753330691327168996275835883023348802859383794964076234434759019883219451748989217474763765441274750982540537803599760364800328969660969164972593049797957892555989069293822127369612623981979974415221331392482007988193850415794800077324032364178023844495308827306943416203747678271347581342037109715214613911918020959546377554776107587255666556220463316361543346526138096366529572314178541766069028273203963872770659271306918798703594205562969549059657882818491227996806806329329453420228287587890150118900466806690664893599862733854837444386302487875835412211265537066016011605380848536706903180764740648065510163224614366951684668612788185495324171044659804553826033937202034626888227942048693804037534146704866048050161546020488497099458515895399297464997652944793181826634468777270784405773130681480002915569539249471147297648638434898024431672998332627837354674007991847257283479219172774756192953543236986880554328093464436424218659141123210244505185969654392335552113016601077751795935068755825767881933224280484830140908833192444639105809599406593022950797337854889508895916460999457510285132543656250483639026716966849334767127270909543558733155171246000353644539414220333030166632770415720747054129146676812290053030317657393094567001058983683514405852040139274634193385280490426803762452886100713176259076356180786445602578530949818902566320786332373066126496405603323311178134246345768521877653661968625940402156967686383583161853595881480670509570747200362805725412518916818463876911924712389000354896236829517500771449626208996095333014494545959858897043270629450776861372300021198469197595469324838204028196300214030510819613361323341109542637399345773217808835159051512713891935590188590980822818175024406340695718499288733476139152871997112631837668421575321057870453180237187247894834629177568999303523520223013193669372540406525843062831593293538459209062783970691393191167177358445097532545707055654777541938217395939287440450210431958844453467039538987710764987237972002945179422774517034709389287657895686245089381817745572693010483837635905321192359030453767795612672482247700994758972155288281565031976543144100978016229788624639369503566588862756280265162318263816032102799876431881627677679312218933248966711748484983640252903000019301713512051594005857031520637992522669862571259722072097549103897435873575607899107840899727271209777703656654015486348015045352618245236627335431721652185367096109252278972452822511896208387108053413282536825542505263057612236114945817869015806141784933259876603063596997656461673584677627319373956487673416555478493861068505524405625649409127358072710714118015798195756259599354083644026589483998824109930623830264056154327563450750858020525426742089922732889002235433233453050210267724934139484577244341679459266229997205427761231542968811089264545465207911855729719670815620806777455917427356834878592733371155178932543998134530246495513000101813976672505970815902435623865592559306474605897654642578141152586360391905474874292270182988690979638182516360353269843083112774104075730580599263052680103954450333480232518597873519755165090378601701393864907312474362988118886044303696125562756700548429903203229254674269005295434730875062942143911228818404245650736726484591461658472007908943400516368852128550161789784376480090429449748831251786468019185687066166930785200176923092272792067129395595851151503520718588090939207168098461439627447272989557018372466159233545530494418776853123829215894891797182167956259415250168406824701237741559945249385920451347300451366972967353812721485885822290251265423406231019833835669948029197648277806621584510962942023667237496121339318485610793094289978109908199209166899731624797717366090570651306826971952663342983749281227828061074651579674075901294732277652451502222988081509189003830543325489902465436637553583265650600143815530912555219419337970977745006488649396199968393248384005367955889339009489896132564415743622825624329424160693107634719393031794776756638400878716426064448642474358491044735301398532913773731628796025899652121104699604871701999408701479404026194320238938767926041237092987060154312861031225327488683700098335618924920395993596471411766043349501749857369048550150608980823328985496802967630978210131785738033326753601295140924853708609483304164791408631421438607599825195119217028468606727894667808786437507572066720589570344555070519110995715107833136934758312035866121782066801343834909498987177644934298164486934409219585952319817766843316544479453267874047721889565844357227743155776577685067126139070345521473860905455260032474469853419711302236787957064922094466558765792551742705329592216547103268804594368426876668856935041464387456127607955851796092537792077346456630588876425011990220306290722122939740871291716021304168634234049899611115886601292095560211834715916122164000604610986013892845245256799256163696668211558684313355787002954018314581162278384526506069820942775813077438130498520769511432125376254302579533827563006403799559326050407483491168518631002007517403500035275751364896679691452594591715781361133541756426586678822573099684519169368321878175649787163927396879957352131522639069020702461305084632682089541204626129667804219570939320202168974412375054469053439960837030646651596156325407187437460801182809601314941599070569607425626657529191589390750784922792340226080454479891487600161641533928345637755772299455308071829690901774023729981566704358261322350259553057302322204044853296676683727483245811412649185727887666243632062431828282209431242861498409942486577954509032490799078016362193106904803691783773044414865070668814190151347843713095216120055482687449318826056213580033418420480822730950855226835132803628947563448850962762791960709745444602422015412980037509822050757968142299575892251774762653199964095345320508053043972960112198462700324418931005981148770658516162281421064916596882029513448068508457050574367278957464832808369144308533757098340762873501172526174669929161854653726584175484497952920128309883566965994712479863075751922724350298836286001763856078471171395172986359276628303843058336513235909215602131478854947126420163679716894194334662215222127397965389782564949263120009931964924151808938639463278958071786237456741488158446824451600216509314148875196167888331128498062510861515293414450069365366756291044180501227604952108518118383678339485951708349940495503448207086420996662459524562149345630983804422278433609037095599351700577601541779307340923049872406057405028162989340278984181180391772599631899345776878604374169618286673457241112723477987263069527829712068919389366930433189758165800878967016565752227940686086346808314494468084896276032196971183480046745286335631543515971747164113560359065898571305514548323331188599631472336845533096259115693072443388704364656534142934029370261635104311602966797780228136452829816827388331639298648926500163204641700910674240899584896738557759999160857702344747734363481626449904704060498138105750051100393375575594775360160408688525421035680060769177099357819324725968622951338475833935114488360634978666182947861936271996160596991489659441187070241997519121261878187631699125076847658044652348787084515176670496085331971839631079600234325871202467636365147003470884760466881520465786655146775400800383867808815736232549303607562859530946142950407813762659975675391887228670551238375366665579286696076967653468375609293990418394544378054704322755068350175164879382930525362090670941244704189566487318042089736512332145655113523368858861418693799778899108327681977489794133212464236243802700061498612888963466759221519664391362251694899730463297531098257129673048727621326562888416726941407976639911809372500547577482191250835009266864042967952122562001689712906413390377906596789931572992622133907386381170846282000740487370192703202425003617789393482879839261243071747340642600790553401665671150687845490903942100273200677086592840923297970646046544559131557814991437701552680133596586539677222780115003133192074629348194861929922958170148088741942041986258331759789826310941540663730086084115279266963512098319139441625775202943874943973292581603294680398755973834736568529332399609165035825740510076252107925042689867737666785139547240322598065882978596746974733492033904084560894610696304154620844402299904742663512797172209752740114776776404214886290048502448818995344820920199682137245753646028911004763022884880273019670821741632774846902719253281229455285328223281329127863554712226060634646612478406708482938703957311915568581021330730892311390936691993142681842907768963834955294174254876163946245896628802165171221282690203309853336252998645864492195745290178728689886171492559361055970632397269444226575355779085490357420243450641068154606720491772455291454704982658314621737992914819118911065613724333096431223201561021758695500645387732430024655810124609671470964086150909721904859172230565657065613540729731677736777105391525122001229150114166527471651795471886621673464181108553090742242732963503199405085438669706594652811531097053920740458616017426568549643392891274715210946625504342245803771117013688007886672970672055042252538422775148884353389338844913869024530787258420487133356951184839974804451159155180217686625110071201219457351907243271286474407381890674214666419071133943962459567352190050175353598265575780639348180431804227211426485365513922485783234795924767872495162101608010776854022452191614263326979833680173840613884765011676029198078981759604315598396524838260613093085699570847734953197313066633016432581713779756802736396799570955388379826561294790023865394114784899821030258993315441140945792270585007592124031443034213665145121038562446549623875013255848548088601329191245359264337804070631237581248816420316027250459479597755734959539090626904490545195857616799911892451528570552594196511679016543922702954705434623781624398095193093935594342364704254689346517980549372735877942271893295735876349447429222882583938934745993961919388322727730932979793063222443713987692683002363699260707904306249333268517365934105790597300765954734312144288905359181354025565967959199738145568367769066827173056332036484473832107476429848055025454949846425194786897158156951224885808878824383604102685357966584861398622737954976703164425339950071748988754013066380021091518167649360351796364596455509890857356604354019618448626626086061772434154850424701925785196084325589003050531924730325649786024817645477104620269782939517540278593531326723440343077736824648261518832328089518545099025497681681000255740602117603218712918527411279129066749675129560947006656207763763614673214534119511436801240318867077691321073939946467903158555176476263331511890030157036643637655991894255896629936955222765532724221694683413883408452951757514022553566516413963150042530474399995832406908800519960483398642882891386819717832158816427719515755804623259583048954430746932788980880820614844487473912989900187214573469121971108868823884636985195691932655178337062249225772705746265286976392766694238051455134848937242782276762068031291142728050288058029609661469363154988172548854713096040823957992881710983531572027998960143017900624378373227313818804432305705598226382148875024643212342849730800840276580295270184741389857632989724785571194893475819258946637420747304161656665460392713143286447041032024432409544423761925613614037867980085578616421363586948088571533535570999766339344599933475896183379172088895647704038893565381718625020520107661697660394489438337054128752383120885554419732972631277306413391147084476185584955941834400267680636977205010471768431042749407148982351602851937884539540141440207604769063317029484126899943106967143034249142328100153738955015348859603778299079945929132225197766557442758707713355631782745972053861481356477108969353984582415860088118845455799199423091028824159611563728929581214681289648641976837869973434154360269923155587543138457947032333442021662917081310305600992947373054944437534375663165231089764687372252133289271783958305344487646702476039921480610683098229329182627606345072381246730538219954373272603656804263038914043971525809625013260212316819048909242217519607527065791039874416874630573079181856533978573493629332176050901818205728625799753432334085480439847694450382428823728672204281737493202022817688323876463028326739331777422961519162715057774419005526617830972195746742498835142682730563787752407728715077293706629961560148385217682535777240756052357109842849068691330947739742887708633872276669823821905179461752081037665203842001516206354934252308912122008787575421201195803056569803429203618814659141069606683843959948622184434400529584948981291481134609224810844475248257376273305099855389984341424395947248768546841803204578280910339867858506728628860375207414500062983701370982794928427816691097221200872578196692121200391698883092081978147712759221895297215771709632684060020047974461400229518825897343151017043965254398138565629955824840822652365673838857557207143749864204753373760663203087123143149883452819461077795516889051438356299093741804692949835555966510792130462471430058438728524882408049382843126277976633050593434182275075507251415407495816059796672963632534555436808037728902286947630546015922925265967273736740279127672279128868234788880766462757802175375173913796041916770901130697603345519090832973178799813362413090101225679091884478585506354987337966647733806628101066480281472299522352688409195852668347506154269402674068999831373068338815084554635849113549952717226292502393126259273140139603347863823322643408032407714958433815085136945116636003052883572397847687664070809757975772355496968125632929731718122920155507442338002280446125404328033755537007302432453225108118509204990314091806905090401997269038866436603585444851155718524749284100528403828554620429209676302947393346290288511118712574123913968546207626924664560429034724937413826098972681653781481453611216645061967301721128428742058534019655201171263805989352728443743224794772346631214055773685219947234310519613224900226019341673855801479464552412976564286334456324764200495014276358999298323529453171462508463985912989230071109712807674865477773121700031549863316456913999262592446579689158610140376853881597357388214082270824027814554817864279188743831412107516153857529236302205959811348210037924583149167024104166143353446399131491809446040234045471653008861909894130697488813301543904192618076752875226786461326968160823833084760118874943247789875610992966016921064200043503072233214073988550967870563237878564448292983055807842999757780814077174580726935833235180065638924550662525990645651080810667637926831239483978070601532097924193216357450806099826523950847132533163830901228106517427262589743473669808487810454536332559295921450619384206754296062326992411881398169427424920654600589477923783410508433532457534769492611400366050318779962718237318370936677975056553004866351580859245854697863531288316083772369066041259780831353563545061075130963496321315932316008889209095843805366715425299347182708562923817350953911689066020129624814416082280290106267450642633244509445792145272195570121542910674141627916440216688915499956345054197721464236978318196631717168912970222775670105461142495627653030347803379399175484083833960791616131626814775599361142439212626608556001525613531241895144305650026207797643611313257353169352752556628859327834913062970624319263418528499321995421804693478376534126785581275335515655362593204126476591851352935049500118055103329197574262996451992006896519188863971220149144287183871932351076516319673995269296317416238100182639705808560969138679550187984935037328121046109526719402378836343995845484112283814223683953619901181201617047634132249335635698875319761214221002325775678214408767110021459503145966762432621087257165216925098499479609088087485286082674895483897669276344740399166457162027070741773570162704704281974915420005288423049746642723189297254466605447251105065645891797422929840043719066778176793633653213167898700524148885288130690988400664214741931984295968518690135633701019165622696809764933739934410338758610097103160261237432482622058377931571962927273199427230522966179192104627196539394709625004941832186990598750440239002441262456700041654939842845737027483567582583531200236644308586037549607469579393253535260420745726707249994679477404657869922908593084494248493638923191378722270578509628355713054757949087451445685014364335662289995647331040290038222836299618034239721736277351089980114675530178092710280271604438798679510169966189355374285928450029114002251413408780255396779242822357693649650294273620112221565617777135914494874757394928847374331909151871609663028098510583918124233955173904125727075597212314305473387185002215492834864862525585968016143227878211573692136680986031743423652787009791620032823268718899814237937007600593837463285295425174670893619324359163669274851800411929367823704705651828291355330369970284667414576822621749084622004246645593307656311994521257998669089723743540026517000833786545423635722813265048150740387460157307808495778545410626160437007885167715180656805057863469087350858706438308275606003382570483899303089349739553841544388435207833047919292275854829674688653498090059732923471223189242830843559317234120823173471085732384104957050109823677927288518237176220269759035066615930409277931162020378120437557492319424787627535176648059120336941004670172378431294895731456156611254978882391069554363798246695014792241635249755783483522429230083586531269397451084949392614278460659518824975209650807394167072807441385198733479538457974053915271227641522028432414709031568341640493548329130017757648505640425974179935385682415193736710314467819832670127818004070018261726803237564884675110162276965116835777376292577875242086215797980455076625000704707885706378797578229252223580767622877719939686622080126318324317469070866189926859703424243731209641413570478175547605561494270063505033531998759798173404901168836667298727673525017642505914401086878846578396352357982798612952022284082629848408375448197814890090971367741128753375964931180786568615346489003546680207811238208826644770312721845930263093772688537598078561891543952611479527211265924604775895186760516869645321489724277605810195203647425072804668451438598386673875723836528173855824406939490058381747658716731645327097488021856359633411614897022229453077139149186811797690478177986810446617483803821999934365095399667498777529400818435520938635147218986574919614914086185036900141562746018859770292039893381336707490610003860585277888694328491828101463814894942543514606278134280511684456725140487453364708998874944822700488055696188577264215653875782750402851278928295211057592971559964023904698494150306644249244878471481798159446702693958946580055731961492124045729251085277358813099828650565883931698034119679547106190763155003524528714182486608598749036580505298753386769348981212385254791576917598415345722636981587199153154602989764939661982969870051750516967586044431699809850354862164869737283698500499018385309753111651841433557121546675572439996015732786869634712221790330581287296825490980067801669979966441649246481606525098042221142510284131499945592411484192253690231901576119023172286735736629890010468513810014050162091208063885977757968862400539931258190937954895916292858381588654615652501182406012716266504922921372677824807887888255105284383623630519938924717195753208909706120744128141996009491248859028609835890315914119516716883224363005731663145869734038396487596911339059475634253974912713496759070300224859780304306082758788777913516240803013973992545396063802316954420434354843988228415188658148395108307245499779252842244593864196329261633813720004233363230380973747171773395260068101164352374824579025237463911708778655711952986475500324650232463703880477589052670411579442598950585299559319912046481565941569843274954805059914160766534070105846645173982422575362852631775605769083947600504407786366058596930729548179007470651217976098116457525116223300201926246669073110563925118366011376390394484408643836850256398619076021867603084764879959300707895482960249455819435040073439641463722620758128143999919596609088152647890037967012526010801381129280428040483168334869121781758226449535986460773214854083991336359873450074177957392033367154043595654686028531146809802412113777698857013006297788358471531486671936478336894697923629019642380149378839931760161033951290594939076867608159510682362968593362958861613436740763415454854799141914389033947501262659969402356726425477730880291135855102244374990332804469156896917288746300122286897841035781881432527655862741306138250001335949735803462515769209983107911238892711395930926074877615346661244894376091892900618090203945277679737094785466454426599965258839913305396801475761217913081701226716213904812111795200621387776376652020045856753745004510823916858867669053936395695888851807805434626929011147383113139801518638989705970836653569702162211733313366063155192072154144192105821570374517700993660400096259118881954856466887486576548617838207416034249538597098171125185782803822532126501819347084827252045322349671796336415114857666425937781480748803421684797087823973045767240679900399414869522895632189412791504200091176477731675038064168593498095872049996825618063844261546691256160728977664080478213757844155537333881897592383580770441552810324072586790070517861944393074290212780584623562750412569129060487099923031489323984692982898889448058796954221340763450745549291091230525677122642129531541102364545805343522013202988832767721702373164661731306439473873166714289577458888750828719416522883860913972220623256921112724912795222426266812835233564098604173994419282473543810093702255981946824708300036643636652212199645482213588481158912135932758659553175068717424712030898182251346254589023522382499572716288861601448381482457510597080125248545014550425941431265844793806962998435711872044257374074331043753381268969836627995972508263577061584949374338119122277192981880240411688427015674301574804656772175208518341273842577351424077668691997049831813214480943093829954099541326440726868472091794268574397222529785394523662564979426649092596511136746581931480043194047293291834385196241688587908195075877100184552687173865963820679804766084251472522447864428462048551212683178188196207029332304671840968246442151495983640427853270568205968922232609216455962217047004526284472481808056377910441754695552014988666348057613170031106632374943768642067637495123309360556891661163223285579262658555266822038469535136600822348831127821334951798012923397745519256781530612354546490919128415295821279468479140872664073695238733268905743014895055220906007754080558736407439068938847549976859670690561434649539063799348994102783227701172145175023988731663160415590146450700776763286790729850370155874223860446674681746212473685809410679029158378480178354564532472310206452030965119751980039916707521103233756302746302360261147187907045415488491553523443317988416268118398502825518828080696273349242672852967235007439605153394393089529478217828609852551332609031270774043316526377968035615327547959164747253146985607137096246476554796754820948151743285387650247342570811659666678459386824189019858658815067472899225035826681618385874676050578683552391116680308366543762152642644421088298231259639072886198891102875365417635276071153228871975912265239064395931499291033694954537444136084637453603963219160305455587476712329044101440964110685606335534932962098919001581098084048921977410292548780585643445787029831890866367581823206223268568192050750464435616205310429510151790205299172416915034880848924940474574770306111011005907643547544680528667917340919837514598462051447002674647055100416875143011591264027104639305758980108177815892144004264470778925345170588030381621985765613541742850293756168145488971010462495842871811793837665829144344297457088744164440513735123733691450327038011122650988470693042921688398573299162758992598185110573536800062545800713976289932447988828713172539253245119741907177791328682997245691757627110416336890618228156370571403591026066816197850724247406545549679558733408668316707819652615333706816986147556856930137095552046685008205236363326588661010728291237867322899475589334163783990047114933529139620025574410774236134941780678484908545129419949569856033180979611212894901820992561703414820516491617297109768521713514438939371632071848969678070919396313632003701260338353248040904003392406850275142613810416113613259409049353743123927434349526862807725353467098447449197392887439331813070517462981598616384130733428680979056999169938939998871813877665151195739523799164650087102684257502250054131554718743997320037896169197450570283799097982368344764357422557260265723574251992389423049227347298191749293723866918475441420809098457775766281944198791767190090335046380330335646339764932507806306828941761779031454415748351627657334058622936964416919660137730086833449797047545549021160526090844257015003547769398565484538615385224368787993201157990595466274590771353839615629635208542620280407570839316520290260132574827773965297325791202747486806895956945661283177423678295752974346514410388384313556726912444419815359146840037840898515519205200659072786904234402044636078079110509338686610978165616701167886836550029083072293942812272282185571123188252952442948379840418794234924127664304735835250939875202541930609905925408175913475090419159111330312851712779452278135907007807353204004785810313268733585113443941809485591395273077553895276165705488597861323574012588219849277235312010418084203695832079195780116709970596694961411731720615532984086923350611408600070620358892719594642855601300941675108747254666737607752517012245589141775034304443672786338838986630894506882486252304518489781761829149505228187312417742062793509183833977266810771087058966818071654469125625972053920896131030673372410865383450153057664766928887700138815027755306549265994280477636471251779978475884528669336724397431648857171140307169545615118684587040462293633306305717748871274454471339266601496768017995299086032646663104372892556757447031794038015030427293106063122398208106855425521745414808830790989440142390202959572352228529701222076801530511755637076956618066989185460313315731617306683610646147530310375440249265069958677381802737199626589517571957507426294777222169595391201355914879762659146213284348382014944147933509208322061936650070155227871035864520241456284371623603387754581403519753394922324826729032737267257371315060469149433266106735150586679364506917039019622980519474660334381816407407979536185621084252571648519823806859601233617267360696889463402885424003653192776912505464041041495246017328984596502349778184419499452885638035336666510344702684491018867205549907111007694918533638847810951149618597245020274947113336866465499974669266501834282326706047146078933182208352262414717034708192174950205432069766651873143791188758615954245448186030331389813745992991026895218384843087823614380790266056969217167722770341772036903581572564672135739240978305426026019404207505182927362146549729810476081617135004591171531103958775216828284854403935547895955531798886324369423856630303957571139742227924913384949836405073394284923655252937048924106159929809920264562498043888221461512016503721846695380910221194912765182985621738043457987465544984312095995341608494878546058624850133553204147133379483693321747977740928864617380475283425714956075293467864429209562744775450633250416260428026050662358277776890117492129569055773167097924463907851950949123824838207004399037447274923338562110487849042452842818407811801398412625301011261201364161782005879825712855047072883181472269768026812297798969493462959465585995767414064401884743055181962851890128990556831515776149655089363239515311815883337948981096018737910896657079470757503493822640767520284911838700931355670554068378967674736369278099059272847992298489022845653068879174329183154951393073735489353354852237927693706600584017946235386571064535046788162731629877057029230472364010347636856765117463188103236619417119434007875558532107612496761239344155292590933040313565243267683853434867256440214117710500961340851728933655278968492897625498784386608165273920836568520936109109486915820048781039823929045444949055097305591699564218925549018102123169264149241936591639020971449105297155400507987803577724060787208060483389624669345262790468413362908709417857444600258703742876464496214592718941118508687816639020478335349695896844227479756192837910054302491019845657775072524890979058550121334305877885155913498440820348044113241872642048053383458068072398869427750668713588259942405385563654349209604899856176860881155752804135359879876843337844095773397087290753977071088986064807624714611936184802130028021917068962220250102458267861979454052983926876903800141236762785126962530816341269216745255462417439208280286152492988670819476463100921822623851212196098983146191502289960559493027036955494260853099924223582675778149078095421596137690507780939866800584716429148615083313548023270178530227308129684575653677642878034591702638245835069440567255847510436853174749506549873537954993382614857040177176117867300586434157961813765535103918887048510158419168547571525105544601061510437071395474003129334629979425194941028692991593193509442494456057826124455601695068985752642710711282351172298007905378156322470586624328450897354589627048358083388452328326478054569702844864725355303949292524853120255834765753297125939865999061982989906527594394921279046359435023676268242152036488005242263325927552598023992725429335296101292890188701973165798483525031362653552797460471826132787446604616690799691140130578660317392266201979095927974420018264783970278988918573676018356917526276203564154344203104615567033816959181789051853806576502913135663630153606176333710592935111846010070487798873560105982684542935027684180608897073133999933948065188079197696135851046138110925241469566228419848812898952004331015062092278122559545911518385501920785187613548435474880531976035948763761892912634873532698690723711340264651745600396987616828229344474204408537342051887562882747758972236723011089090004876378730758956585361962003037733374970753919853663528421304774287794963513795241668168509946359000127332369070814276513343526369807680292633066391259822274676440664973904619427823724566427369131662497587118214397324988363889856571006401314325682773708950354133341519765635239325670172953923467634953981447677808805958468423507424738252899408870612733528934523478277331043399107613285645933155365375082061596360544806845849215088703921712153895498014324510329500873927908195271434061994993405537350380161222065133132666442992789356918450817317787011483789963201876606873070495432155717210588307761397181084446551654055416993052049667362225755635502216115912041950616061195532948569787952764487098599500072053595527530061926566080595096574323893186104798273104947688560897197409173644345660517087413210592559096647235464837020090412165364572128096744062292858148141605684505800814836144007665984259189511638301118143431592239735426317184466835237917430144032809664415402571099894453836062405162627482823009063469874606130588781356302761690893060641186064146098597828457585699245582472520262568880264404368733506757312673163969999942813720390819573832599512482779314941752469523900409934038267987114616976625766523836913756170823852604036323896867161486163951963551026487784894958447075005079171075493900690404117026381103617033591320658073671494240922911472693692665476771070960821012214935053201779577817447515947986744151421897998820083738794795360114684871023328117537307572498459372100362884224620229791771033471433476354375899595733077123003824832731674645834925405181634413170486415888040068041902972456020052531673864961409665050643488450959363738846760019369772698352296875031900448999570327213869552933597730446250507385987485778374016610598917694682796277004002182110522310035034100605907371491157397614657648952705806410515950070334686553376575198177874584403639017943707833411746205917535619486616006857125681420824064196958578092226933997379486006472445455703483786836637263659488872673837351704153938230698540031230589630434997077130882819350408529974749856985206957257558713702088656157132564143475623900534014065766330549547263600857603073033330707828647474315590872215280351669344079068496391150770369532673008218074203909145450656847288140863024013467875643295364757979658094143230973957003828229130543753618027411999346385557025937470179116562362157474079241184229015991028116403396749702027383847154070881306651448233395544803303909775510537681959863663364528366120689455042171184916951105535995310515090453986740420410126887806424546587056794238273189875660427141399895694878637342435578528230324891773834825148460243590712660545171442310097764314363071519464457248938746568324297259575566352024294530347585133707889483414749040778167351048653201242986962039584143196827202565034461826334080181680943711696373689787800516249555296827134100359271709188204036353920543126967408968238650942557772971064794807656870182569028147505066230335778987434517050405431435343208020768708352135000797599792996479186462296346780836843589814671972550283837285794374129812630125078974794373698031489729747740783260710372399618186617498516560949384516140251921216084798919539007774395066127336687292873242127616863902107047194827094687202366734796519629737440266082449760383488832575861647784997972984963931183076160113605147900059289914690986485226439091121040852787066680299523218462173592053584293092744537751443050843883246771338533822655142509817283826474713910822442240107046466703158695782484534384876549840312223160281076384161581331815715880439657068264877700689438490127548330903771697712296507438337944003591486629875707435252630791081908372681299699388685137663553402946083769445431617911849704620857058700307265393716763161632468946408252707978772554241547986660983176315445309682320592197058298395375413896971933779740644604607915739811534446225048738496163151931233703734380150603852542396366697426869671182731362353867711211282432915275734655232808100811261932260639625367184816173230996825451138731481382921689220527298872124404662699154799268963510186967391424158415486322445413613275904872768073771019472470173130620427620745312200460046157577176133913056063023442784142766252583898769038047881988418992020404060752440146990541409535100972390429663519406688732880396299719258255438061263071439483987163823800640886605552995300290271081753696986504659874867992662093215034412770626717472465256968789808542838994610671891718479112173401375814839025970240159384299166633814971984340972054179068378588268959186822202811603021773382886852687111698352202932564194463464453650317479562626074653723388754429073294538173056040996176802334255980066904240482317223700410235004628310138284878134910569815480501241885434797555701148727525414576381827016397003707686923561293464418621615446424901083866606633900726173203635544655555680509323608873079933849712809909915513321739049578806582786875270319363520514492799399964065355653998055014132891676216750230347890269547043890213400483886488254916164355293636357820782182796187966625035014697609731970572357126465312294744231937193651373204775333911233171380609669947322204199083826982633546957506740052375263263719577832739539722456718192145642610452465693532814810174921773251747915802474124515982770654664367063391000549447847060281876875995227952689678133312591756341147712640243558761148119795591925230424074463678798683520005456643549851116736557273594536629436875233787454173189009075949578045274625702847203158969943286302658000835341677982254038518979507030879398684015228916937974813390215395184247258740680964855940809620851289757300264928597439987297227626305337865434591638966815748912699347954492146569448473612070549659254158999861279930227056393117820084661490373306128246216267470125520611914489844076510599392877859818158799229986138860936322020030935437795989454533183223516835519981281991104655868314312415039374926137928052208793662475853454605537068733671232204461339635266871110812641774567256683963909881528191072115978987288693988691159078446340382590289842839993028051565582417069903125095620166140693632987819816719662094750229057837733763912172830861985889981223202590686387539663869185141546749394650309337845617359974663809164011983592157729350439911037415590823461340794168387475152459348111629527075792597940817642820513314478741615429182522782643131756978432214765295603147026710856630381881317537841357335233716357674682442546108442786366755598681363908072347879854410971033167687236346123610265722914331625809502430848636677694652024471942699120797720597486865501865547918740376390563904591279250145964056850846753670033354819040013543326508410546500218984213115579881024832789783041245060910163761541900010583174321368937473339301040038181429001069661962039744266039732192946551440807975029497653529646948134891097298812524152425694290670255252187634633394509654951296720216773080926295486027275269140520874129304802759587792614559436808020177942515916854534902792153830145231261376758261500410840488203842003243684150353138087154976872474792999537252661171609353756213180682729538050991625321925177809612450569289995855572072326294952300728359922396541656549405351206846704957181655920412550750521561552928428831034194825680307534140123307496533044068646049044236649839315838468940991882872981337188770004705726646480746916973723835706828315833312700174018400420920004986561516350765638296041357877913174284214499141700295925062528864323477796258385936409531654410324642583839348871659356251640200078644781673826783269021742991767189137798450123938517917562348212517460160540314953690766686100198504773205043281113484394189464774353820201941654417456418497843088957306923860511453103745122968425625666549007839421486831373168613074938791902161377657394802826232011205214896371558283232139434418867499224039591268077136218695821369769906570257108653806147233702155960992985175586500407624246114466177722204947828275206048287431800562074290244018557230562796056960494662852218804131660322135809251021214575431799689156319593189765160195927583850651307816712007438493904434435353393245260003647518708653856505216450137056514209340827182609622168399617532105385361177698503757393364891516589586836570829115692180706057163204781907460896140067036348506055396025692382822702771844860408600595903472838200846778189757757146904656048753636472239509350893699789275850269999473928144082403310146052468875252234269347353361310536033661418603242361243595708783509695515947708884002696531506977729459367895259601849638454062648594070148899439684606786143220071438042036554786258694275499681284668765658120453464825042668278986053616527393075754212917866341893428242081312165713366740756067155582221406716592965956371379391854724212000270075503583405046971934417955739184441769241131065877184177150565638725344252905437039450992332436351411948318436763604534742804151084150486566282387750289906062972345822529431726237601306406557774721749391773659436033576776707817784741757169467402090616223451252574339622271764423526989536287273957932527803148852945128594649740760172418041661571999990695673524378016875944289538809220031289697669706317882752606921770808715017258355519366950323628052034983201699985981899554060326645317108876446342203225433718462456439028784634349170225597004852157040524153615065470737396741539729108950466025411859275781167511684339303541433534253195604912579961153699474250410340728194745482241155965845456246088273817062153906739747366876633489034210409133463984106331924439270442884227801299020595009602449642702016994491442539699802323164075536699628624277002842161379921916223159757867133032526461462798550186128373606221847139806066657106822525212368848751289406175549351310494226168463509993520947593020762272032347779442570415915189738270477646087414514986494464758248108257497158195778195207250238837055244890632861589320070101294714095613370720552235087132008899715670897116808946599820413122728538297534963450275212588130037316024261450000481015673787849183930307371327708838038323282193639346751108557430610692779185105814991833124128447564505129181148023121023360973603192950236990066115775492507997536610863952275175622564731752184818115910836560082276951051481826422818751750068302267288798368361314359252727086950567011878001801042454549126299730537877396860246694410337845067050862272067865980411271983028384814361315465278006095926118001189832501793631978183126848870929168998003640833250286095946296947494551361710721566888979326974771586946511575222042451890463460528776592387330002780956853019922794632285596555764794575085964382732112974161623878378386106383112244891355963982314956338081616200621418725584353568514852678602118202350264141211215790813684427563541909548698158661508211940986408195275604223404616739234079588770938520033743952253935037234793481196336505105655129646770923248057391617145443475095539744412725014118886737871309714594908262054478708941428474548506781974664684708984285477760469483129202684137584880146729874252713104528205724664891200012770054118451493695962249897131264314639895434606729098846074672273775862988692145041396031353320704420685445689427777238790688842532229056248450836468138377668722054103998024404077087525585767413868363754255729684250417445933629582749165310689590475421722312421361219193841309649961666919112881058077549302439606082055672621792246006505272164381028188583637150469571272554900861769802076828939978847283165022962930153621224447315728109185987256128761075471998893914688344440762513593444504075850810768682159892063325918774651795627375757520936448219093578056494205732021047821216877583552068437475618347632064397936210305215900193775809952400980277906640957633542451808644463309889622870498359853252189327083441092436121114227271397805311765143081086415332403924439215679681410996295975221406402017589281715836223765871057084150767084029064044075756769507171992324825833366092867767840934971423190679512315730247908751385603070481618143426565123929141422245097896280057433551252662103175073838390064819143767273888666436112657979454123272732838056929026540113227379702952336338885828959888985016858134588785662686977656207150145964643735302690976360446371678711511863710251864105814521049638139190733394731062708857071298200873624432880957455015904306309723854017824718199919014572436927139347793310878161731689032619833418792973870818860928761575078491182186441017435779101320520107131132289708845123786875966984870895144905011197359267212231109877235294662759355052080960835627979230452274893195722676820360179212453394130435362641195377523689516514383931766835511344369923683523546264265788980992586359215869431015540331934281624255276162009299290281208467505346537563182862412625987483082467670411354086250272625110646035651690595735201932831060106829252818747725122544604977846068112865614957601778003030823573674461783121869980131971753105400834728498624659699185964971340502132560700209183171592752407917603672979201294903797302740690273698489006615915345865103096891712665613437218319172777370859218226633965339648039979940020305106640711184426211912008882038799421887756085143892055415074510903558545945919399197112262058961316883935673022327049917629578429246556328297099833762504955919388281919595584068207340799598730540565438160858387777874914523002077402955405909539650720951524462921962734689443530661268898842739930935838448312243244162029165591317975001005185409679066387618823309178755258896583976881978736812797814931059309395681401784714985609907843707359009634900437621713739996526884317307570578535146314998552201205418681646910735158373615885497568576517619430923476845368930391883551221774248551289299237625668134473599220808283142374676263852259499879800153646115424143530646969267641129937317768920756156964792810534213472376137688430834399260173292617844973260715578927444000538761709165449726360661690488981186459859952528368696207702662154297757097619534290588795821468234926865754829547036987395300540832515513284656526875416044744701891264610267442038911784513824870749965192370129106296548804820972147763171961109559574458477238758702152868715015109226298411143100946073614135869388783968169752806496636597181457490860677049843761823272778874756888047679812395187790810285765207797038997659391271696416381588403327650282725456350038637784215588734889329906023323225303619024813721607787590798062441905395928251843106860887042282374520793580218865142230733296899269255060816814461955290068803875331498533522416838632293952974815600843571528820739308131529972962762925514363081024005057288851431927050772683947284882983555280980130813175650469074191161268641930573037461339972643672195708421336848919657525481492608326485642557282043792544104478054304814377152858310422542982743532159664403446096554623372248458367485487860942517856862360089016004400439475698595412995718075183621061785333928285995591399293960143821348790088013818948190903833887205131742768140073795091495621974958389872031163798103013479130117860604511087855027510581601097508022091710358943086397271347648948385666619626249182269534516014938382894726948823294916245392953869688604754266415951646112153502478418841673670406242290180323532537489535310690109973853138940913916546863920414831555305013621251112883149305398255182565266505324724063945582320331928385198699125646917964536378895002261168071713435912123428337207773089401421812883895700399528055602566854659448707382016812185639198833086903538362252154255605496900359573650511826739137531847487714907976353231938451881963837870716284490385068130608535423374683975628714348382990298601390545242606302843463583618207540790338068682588869643023200199559747085435527381028993149709133783315364917610135226177841152824636159552952920527521441214194339875854566450624576053721263824192109326328200525503327502056995943859092578877150286563087843671050267037676479022288480684512769226783613331714455177831804159319417120441236921818128001309871871572418718918001076560992668876989900936744751414911610860797168264568755901586091505717527701873926439285820139536282381129471338783400414066259047729823555461186300191863210269153817426120101961138977077994430366185349111995810774025727947556007869784033591142037263926827763960218109951726815067808620113822175606526749354570838043468094442562592020859579947744902044135819874597952270349966494933176256274260000292546649530860450579066441644684135498053246370652860258292675885670637793086195895468135279015337927630168477299820316472730836526623846859680957572320803281165076701506280519294850853990465571379233490673806787972336586911709554716812009356443060177342398191323810120423091629435952551811450701971166782633575177535831929230927220502731283054689536640309598430595484828279359398693045298595029502315753952342555468100301397046947471697518825817143539175329361027387824989097131856830548749119149057241992769550202928257659452006850763819700646156859062333918137768703640405607983448145208575908997194503653996443731654260853969474321223118406689372934452496292764755895272843491917558972813459092463772727852891500430589084382709553958132885286412296640921446099149021612260275109235220242898205610395771535746238915245519292745758201533356349357999737263749173361858924766304154358634055476787830860405917480466697214448804301902889284476885112657071731361391251033621653593766324570698178250033493309631843336663458355599278818019025467268190574459059674006790198003959119870479374629813069189038296653921832344707681497918633778417482147710988562948453275220578965445316693854900685266540817795038148114293901938518487180101353732752989417721028660780042966181749100662510605140521277397984490718643646618265623626180510406991275787337067890112694583563938009887255720224835156731318612028522322653219559250345671639397800053466233603994843704201376414715289986709672159378520019391761316479982854680927185640659607439978183090594748909062500776271910507617595560494120295808279029200439836649465967729008716565699289477278059427059357900286786643684993864400134922753372970760642860940595944481302556263127127328718099645847093640577843999981208551911299827390141922488391022091074933298013133629433354744873706956521705385665773018219830948897412676577056612632046690467043546863820786479922065336879514868210512665005159343467985598223291375299491642298426091276822874801913230420339815045581519950478965791505201759621948974952174259995277274292498906326677585438347892753326475448540342313554441493926051836055339818812462030538384299192042579045959945665463172617195072156819806825255128385774433217740817027810882927206481939963512360095386748676912669141527163450994638274881027206691411758823768758464315329400539491574569851588042988523266492626659875763020547284354792054287671736400286530705870111903291626959316040908701007802937604828814264412336672381858729203243507131430824141488784149516408260650852710744211533517785982937103497936576162557772202267591450175155924912774063344366267682905194142230503420293543942548129459788888790056928821514257275670484035338994703403508016622758095681243485821008998631481565515554995133492782977210397763388983303167693103265643149350909586905085382628758076719827928776334749673359011637774200934035522123423432858037520668506156787093556655883054311803799672097729024031019244182077437419049742794375056108392691806720295186473094378612724112001891344247598356075621489176148534877356831929795441377534140462754512672413821206529703666991780433669041180640023708558379025469350510340401062441300038806919583954939714030114520745036306990158603346024559357147946189897614863181455686571947129653384844486795873098938887261569083431256176638903758016195022412226065041943292752289160804210822765577520593833891066901388150554559017190723201068415755556842214975726945970952109720354306593268662320175527988199901120241425100981243796238353042680973263192933642941712291818499939152629651533361860568344613324575892975803147720178467882333929366671059310291872048570191422258838931296083933445115962633158569710751748415605807279260905482893556677552441670683708576464954853075270005742833540815806684999233893118049033752971810332252661712743807535679823036274951146925874652727933322781743024217562935369165486318132491308780268289010699969471450599821944592914791445745718781072311579154853250027238770162052533680545788237482512990137134723244670075693291237695116776814452944337360684848010218653453908092217295483023086141750707855180611152378236416617043914734962050684766884525239381206251353050008037844002821560919161819054006655439469260336563748467445830063252186624721903133886508318751112505153811483600667960251222290529030831254192559149440581614471960525421900581766345796958928512084326340480040487920341859396883741348210520468382644614638003734934910821454391476759901885797127575463649893164909935825765903994866399601733355199773299108872557831582408947672745805490719420316081283370188710937159342187819883189114921148799093554221163773858000572788175253060482679890245304832331207742530358603167579422264265610450277947040333952777290879441964217288068308889772234491339215152331576173211331707864908185465726794828400942492773938041534960947790034276354112032062449084273238193015994081090941389604001653647409732739512927499991613342724014708888376574126766660391180736704930740348491130310511339017482856030529175115268900178296012682476470484002148564665990992901446114053909938172961938971156944521009707741613692794131228016415264490100776800211974652624191207227359117179014203613563635550678367597454814063436811746111382210129242270349224856227345761396424594679999057945653288451092739629637334569997372116727082178658842643970345192138517940975013809470769563007147649217370316717417092034151279711901043462088534009062555635416112124591926138169475480442547531761218339472147987305335471338347672355705605397653987237500005749557116655559124678423816481091789179466350217132794205732180259925406060582209800600164887140188337366102883750426599021483730996447817524912497090677117110794997433468376800057969407042660023652588788852815692884011300090288795651876857758561409468137466895512134045728266892690164824643644394989847127109933000095039383507547106576338115219604661490389963779952132791151765264573796157451545625248252892067251238880170215688764348109243171053943212199258511469302756386004356013241382802604889166029189893537085281146799270990423790899006828421531037450457290030727338107250387464278347839946060246549891579358226595922466764234859024692966162860745551648788253200799618251290067028984548253258835696348465137710844683352516422693298718306113690052546708157557207938517331549751052334423396068235422307281576850480115889085198831185502054024760065237008735530950311000006056101727740793931753207145077148598478635674672474222002077026405705982920076262678332733792194488801228878747614905068569038628413760712490127511471372290938213539727915590136144229322439774550560505715430765896531302326041690499095584929122224345449514218977688255140616160691258703828120047860693351554385783277304576599153634546929892886951955489734244625004163391139425552410370149121720969603590765474729159238065217447984333186305533880317620825228581156969976615678268235549318191025196835812783532978202260784288006133586462296612181837427760842829682034576348231281240504132101881382146234890590354151375901546939237316146270213152656274254051253348040071629733368442101841373433429704325688112224405304802077185669043457106355071878644003644301750072045457371419424106705307006678165863899793746470867497482973500484873817838129858536502812731320666328298420389457904506631733592952476570123744241417171957223108291578557276259388578161182789398831565439578045256486474023648126042097072875387275852164912107053757000622135724598808277482475675823041295556226151543758349086216221794016918975620083913703757651910877521827311933642607739047250578070315473613588200506308058803327240672903252332066169627177055452981597445347464587772128477740254961959985937268710878470124726863250749364078856216825435377171020831248222435448258239924119843041278389275596555365727329961873651051634674130683085873777446533617618895847551151240964755824669615318123757784623760199361552541219642907513838998191230637817832940257971098708948492520108135953612306397371509707449437944768254284355921434740305890663487647495035226277926021268246564891750545868012680214241369142356094888242028343142427609633182874512122827618733637616567081760161208255935977988607927460422788593060784724348359737186557094888216502872805781755181343187314129936602437149462200710682056561088185407072290322316747846291440426609955846903478298445387599073878975990250493588251690207313994587024087780450927594285917744758533763873041481371406285102491575452132903207940560432116463835258592358510068530862616615540305812755107267661936641196570824208346693955776955021468914961214965621429159036856880908675488627440704946929526167932977208697646395378217579092973571745895814881238312161841930739560918572674419223270115681824016748115740335776307607875905455919675885056588410167146258210671884789945683931639033126850612229523020643857016083071461749842818652041436331079630758743980374234441441938144667501179843697252075013034917899558639572706712459073352102901375937109591305004690194353527264571179924368065205474599172714718701056470704965785471806858030822074505466684438778912854831070125641216642142501722384209563471830911701078910991104813046022803687740780667496590359225191633327564170497594443010933630480859970196041189662709278776440926328081866784485524161912581204147701053838892301108778997235709134554943434893672292068984926317840555851349434629848816884212027335191932955832180451453005268877639631498275816050300633061714046782656725717845690792799269209135944149329111924347015004514592348879767535854240531986431010223221720295374372366330665035874875406374494699322526173589138064032330324168484661886290390757985127144537065321723839225699063936072284428602100759281325131524966110058530540718472945059397055276371852010045365695183202145421465711081185515029442035161084026413409203760593929499757676525393778521419406773115506515412418861378007822415672786271971844520571432587014813360269610300222096880916719743756469820128221993091669703985402431169239302296699656782856914017447911847877646454118438894133230600662636427483086512003642240229806738573044198110241659276502111631670044422221925581524398811223758663395685669377366055438214941316919808079514414823791678855642061619958589299669841588666040760243707061241778510311514061124620488090020867053385642505617528910760721594921574286875303446508438104232841212485137547495842257714797012182831312798599487573590058069695427518184665748185483084701490658569498620367090177339634922901385024311250172464163019572220085307966842083664415893718691546225767811526526121730376710523780484992002091537496151082784678947395973016954231314062674086384635128149840107526421260492318153509507210094559900683593698596202588909745180708300950185929395158680138825857192494234447082008394033911693327913390608951595083629117599184139080775157092964104468573696061018757676060704242441526267823468137453868374081192689122642226353361791172308149972258668609390866980783040706970798218525564467470200378630603930617006453608815025885578047182179508849009165375225926579019972066677623913599460944466545549516050966510727956638014065442816925699681667327659804097116648407093695814076542686389958213669056941923730650256866237001087697800440629038512051187681415020097227415843198000025239327262316874229750797157243917537618891810053253946079157230054382716310878036166162582031094146224481511639965830837554727056424809463940718436938365033303756087666913741941293704931356425320067311756566897467491851763595207100590090566214760635528701570544766083282574310602267678854935755818228399011826900711850258176079461087035737477834354672653678961645678203294739368858881287155992096794752103388002756672323950277001573428011569402506106870691110021936846611392678951971687850134938520057505701892761959462219748065439220701659320381912469303330596779231018401995602797023896722737309420349110647132320221645132339672795683471791345115775322725378369738780251893218872758421667701645079704209814432037868972013600822880176180077415517409747742598809190999811359961923918891872538870383794123588935075730203299125529622138565919075531938816783567066524123861766680253509421883226052680577234358200627146290705416521594419465473200158182987313666970828063084040275678286902599166946713743605887814524072810779080756314835366482024621964053796515147290341277885207398440657555853026814467985593611959148701119146047333277801523381321016054090554930668002372836316346517929965873501071613683528706070241913089205087533407448003268128196539125544953970275138493121895639111322373325015202881846332651760613978169475907526561369929006410530240155040577372133346559857495047054308097008229772614153609501715739558944096411106534244869756496765499601617620142365184010280412474811526547315343652289750049328074704560844470437797779394634582410823090716325325681201924461209894620447288882463191070856193426553684730347610464904319445239471119564918070534018081014329351756197674263827034076216923536513279500211025156663428616525525360389617092672198487595984895383968146516473955105362887427216434982857871963745038019716038745057947679140039285374318150771866067023309143662404231198955349466039546871083944489405071079497988088206499654566170887433325631276312141239152834935688048867750171706294214772687289861031056433308809117943635132762100302480854339391461836101441261112603976959590955587131093413754547202862753956856505790593703182725134295367904724724818365045658404117789093028517269031600564638881876141991825084107999268545615560508379010707869271176662074615442121086233055150090081583289962508581227533611116922182438732695933330849284938971168417471893963359359791531107873937853849505132043472656198352899663308676110397160060612772979655162440806514384917522493997980839431700032329253027533307849969159212418883377034351981145850285165823238761994364349621141397681475599652857624964668906907938976463146505687653563095363846708535170230688395156325071676723521860911068494602595065065665429228678641340944547705837668450707580153515066173149236347552057419013393710716752331479713362221704018789300834176559710799566658331513472385151871279308757548937123498541382098720384741330547472612570102538542627887829699686668284976697423823919926429060068281643295993143810968090221249623529131928900643926424321021649161534578577420813369459315059489138389933203207340324246561904775889214501178830198803391584088349216825618488163575729572840992488261178480080189494422102065322316584678088795693361948811313818426964735839635885835068160732851956683446197568383413711833630537568471694202004279298422443036064642907611683817672452833062881372202440763019639769737295859432483266107425607622461010581003396547255022576098283331335136016766864674408076576442865746732339346207321492418978005946503619246075343592956217656364087325959567927427114001213853955311123505775481164005926280077255201394806022290358976178515273674303802187962421601234298309195743013700898511517271166937584236805254298416549621118422852854785637134122351862920871946481289561822448211587213885180139497657902256456850228430660469578378496730784286486913571033388683417339936102682809431464257825244449124776692502868989752213376816924482824767598059605508766810945206826454726239271564883260809705319145352756480388729553724185686279885476292793163691774167508530362180685338374640678765126465415477598123869372146530952497299702826342302817402578986676297470051693556184877577742439119399918497276685515470237522076948645986095056889708637404810221411204296637797108505061205654792399676216841720227930021710747738933622711061166283703052445170907233035846687163902206422695992386116565169550209784059943927153131645409849341655124927503315070625726020722423280400151319054785811466235701459518596264971695170436946200845003099405629531168260737743421746123156529799579041698103125771871042885543924816291442675578375501404008114137124908225585249275001038227415008171789538239905435960679998494152836346004292302900366487426388884000623990100018391044059997149115301095469085731413756676308491904006139378549594236789337317712874984921011120993019716041587259717201781656839171305479480828698497091888461206890029953561375318851142072279506786099386473230244759354766341630619021440436435000646919375230754173209023994244085192298303395260207623438922781772280005345808869032553787305175230661693813522912189403711944686943158868925331376713883654726333403352855258599034545768073086380112179509660778555132510408500553753994397116182368718117218348203364111173284252342993793182950570358007849508425566867381844552798530689049618156370344097153372594633516259866434785354731923941236577036002580386373539944849468431600424871236954562314254127758467475589655379462713261367299968423580842382805333495538734873003286465669108186403246787919298935561631639708456733807716609999848405619440877118475304092266049596385063791418474568122529615532726914578204226297234087324819007155943162917779801677921348725682113150064698332466652250534639543942406990364987024318483669620906168910970672070735148198284481279596991952109507777510051157843385074439269405042452833215767170757987086318824613141561528217100171734851437511358620275659371565005347443566510178515497973117779867185975851645243497021209178021965332285051839856242936177968346266873985926605900180588269066401882971578577948368498380234933255962259656646872679088425330593520300339384723161976321505314722719492437155573293831758841537245279771958876737399648430171288874858360541975190932607377371242550817206530512447360765263417065911282757629597908568347486914153205837810233358919478765218185755601621276093491451435582506296931921274797355764402888064635907152301215094500371397915843755348253997228678127768541786714710132367926966598613216466496103652954457695129520145271372619657772919252456907269463306458946194402249861085455984442912117557636857066506220094159216221681980304919770974833257073054353015873352950935239062269585071462151067594655818317755778871280650595505545155931963424135086841799499693620695116643758383446359455142471023215791963984824002132823616707515539789762442984981171637318532735904154073968821329806634538982518515254700296581359639487275543855532174509220746879777613581061306520228997286792426021351331046097664446289640018923370039002926581199516067038178509735278260797820237755318154274582432512070540520860645728384061895707974458480897899018607992966340796209836371271586867760995396799648033938288831140222968381548490344408984785772222912123185768019630834476597847850352521865334190127147139878397957666836105959707287310447221363452375864664277491199789659100414175944257376919142866211420272320400539249810229370705484666336203322906268526169523122282188167408947705992142830404088468189156299676063121727978369676977211448583654304101543008804831507919729055278705140409048073244629527368345562974832227782819369010329793258508526059230547804405746108736356504891830127320598452026659645076817513193049799792915941063213776123915413465267413216681999163220568868746267465547283211907375228421747776113397171004243816794391554170034823913088879764744702956825224501027661885175331649961813977122834337475978070142213535851638324250267259721294450661679293956830880674250917794901888261930487682415225822486635754728206273644501736780701395345132141311488601327727195851249357701234116045234488791937663145978261470890536479861817849828332292122102245664741910442423509246053479834648654902312105502830504078047526939083713136614994719901540983279079140929087531721882692278927138454080624597851638689104836029349302788491913525900734519091543459137251902979084727422746982522976528919697360269926785402538507789619577641878185873321183799262415528192639989498366536607571004371488025462717521571883618160796635587701933171269800137944828104341083602096653209143988519489874477287353022430589346253778448125274157480132489308913862069896917057832611231575877441597784683464451477794257086292396267059188754368391594631938381237572908062095922617716978816177827029212236655593343174167618278034501684972397619202090992964625908693308587836014845364126633640979213412820059270632371294789891887636334919144059388900834025930308221763232410104287638481474755102411917873448358938120887226546617935688686860310123263908131620966375969465505354092378874810197683669872271595851685702815415686388160042748249915291220380823987897395733094918364202190527714432436277149090616935400980442125048138502270509902812059578386720336253200502943550155418383586576752982548584362856676923222163689192508462512435149867874096364501421710461456641121107183571167704129161878662833820126162545885930472120410391326994676172834363269826932162654965539289712683344357180856780186339650859791600370776269135994914267477145927787264673623893638057409519277917454485120718768080165532969374130139813843446928750116470654509797040535375916381224416664116262179151059932207094601031516395485801546112233885791727691854897972096052014126104902825315184115978816350648582327099428622094327875610359516391826356825263517774055004711528801263781534976387950221480773903370254640611976694217174548744654319202228882773388314187987611851436793629897756137194269300051946002234784730085285056815468027574130766180975074595583118065372144637206891907224100044253144406457372928646660740639523340590684704773650104301753705534285984660044916559674516215309234908269484679314964235147878542574190388860334361016289779249953135610468227298980370183807319164450907853012564235834863048451250036128818036017306954598753557819204995045787197982783290964421961684444569255860324511951312614373901574868694930998786061179916220857815486330220584546975398355910457935881062122191129085574244979832588117609942433055076533518091575602387541517580151315558942517875021434351432298916086096853079226794900744218969507865783995995601016332408587526680363367124969367294818006398874723629203451683199202692970931071783011872745358057024124299880567313313457583558911730798447627884034289956067126751000411403713636151879189826850967395972023118340651380784733641938070584982244921449123523893513424476528727963274079132636921484348368157036008448295812327521881351008253218707589125980163295500110151307445347070256790495083315662988759540622655282603893894288423602462486852165050796175306131126290442325921865646447650465732068165263050912641986789495280593866087157144140747791919544309998384195419570139372304021814567008523763805070073511838991391556380534345292355700560135548407029244044541741770927309781837434852982675859372847008517597637201153969727784858241336121331475640768845427437858937527142242018929539527572744512752774932522028312562076869711699779527222707179825779370495751596530929199693725495028963189184193660071572259718268453816616496874273026009187251075703294621809683635462952578723003531881661599238159208106415735418405540589302428734256006897237891391383478480572253721837562945035565148411179166095384791030447195800506951369221339781857601582430817890188230004150287853354607671934061139538658192409511869580278957547231051421334700841061180913902256952460716424796719811748073088712083384592329438307402577568191405211142335858639720853109275771000387140093545854162298525675505573071670213840298723292604923081787709251058773891462982773731712462610822423626376726311512483692672467064339513508560410902953720465960135041142861801705823780065132536463940843761640197499058139313477557856351277457503495332399475858272718926000293963956873936056235902119190170858436589688216751942754852924792189377345476688076631660756133077330040986317253318848185030407537373586767648332783846128861478527908909125304904519724998183703490936551785328408819985105391702165821714231405971829244418390075134985124098309033160026033528575975119710167163699634673760513223135669631501845592081233340155547088479694775371140879828599413237929313264111897581334473496117907712311466943791819279962390652264435059336190175949100051814191405856580629000031947826451467099257285298054398290111273012658952531239513666525373861447704380368960081934185291526245568221257497875706032631157805555207874761736995936229357115679736965639185300706132589730624349829982249548043807545556106035220427097640659968526889160813011656295548922103890014229239965726001368976508422823742538692911096694140419124995631205836643006408628196507322615282095428014908316332303041561837114898961478523455387852857124983916178338879488119590351602505202286238780759346621075033892246907024606802114409450787319936138345094669092300216368139888872030524429856607207420731399846818557891427112061526713510272293675966115533456002780025745466603154076083317888067500924625224282763736000521715617827959832280568520590215824244608765716401609750346820737269692872293234142856431068187926510755448770248461753201824404915967604363398913171559101163875164463685526752424025310839091720591795647381497546068614301441318422147321479474564587304163998533442240110402791539207966303007298579203650537500797415787941908163095971904276564425924255291799138394225566596959544805109898015679308833908623032779634699298282404077363720661576089749813102694611943218286102078809592473421643466616776639052723545136670750725864262964823053753563228910993941264601828263136492512373488057185542583544913547333413225134846960955084325265646558174984280732114308948531345024026698923324094194352680115181677334753740741299880394148886428488203851212257335060802022957861675866162769807660714878111910360793058928956176416544784456180184880907774625509664853384813216972244552739957894680342325406993002793007656001047269671046229577934171905626822246406965270413218359719289370518931499123440652288540193562072335112280531332946695022569944362195959052951703434516863754048937313282893627195175369521832144514684586092707964680471469104774847117414180784744554328579486897480661267001207967664722745077891162032843821003322380902349776540760003947834207323278077384128671261179955286427239541953887971521763955064863967482957061124200945660407713047751086163345618460863615205731403360290328150568777124269049583188653255480399906865261426034138082049042738950241566184286258196498218355901046953937287833414744679085653436441041222609627563224347223929784053617619201244147874063851918435036568712596172846161237500749525323101952072481655267732850355353208686622618023352387487562956036663940973133293196146652305624256474854105050681174912725535659689976871624762382865706614949809456916529205357120256011807877664089302978632663393130433836763782473949944853122590996496854487974962655435549927715328689388803362413396970241231416969293081252950065907400509851893914885702320379767431845714739216562719303408228002672641158518261980502118097202296108424320455686164851689087702390939783318946992962840564305222975557271952840624210453366966629953024460836043704086849611778611737439723480369002819572280022542210977368717891342226484231535497189749059990477020790439640484591502794481085160076936401078716153114755437510440436499814011937407247212221163395536940320527796391061877422620653816987747716758554802142252499636785455574025216969431349892568845734994324156619212611945452047935142062544803862041313557298179146159251370326702671997059099430683749643800562616602045453685501682718808833351544329355311904358593772444160346937982478456314911527547104432118486001205633494645871318564136431470390123530464652752168620382307517544740092459434626120579042479482042621116394320208621063299814575858518102669283439744481592174300361186384997624513309804471164839899379308597511921804077119776953314899110048250875609195790419895888217755873321086202349125015077505500564857946590653437918976992699207626549580624676446652963359104803242685825855081607875465603905719963600252099296462658089955711113495258984265095971185440227654516897941554421184464789801599374520069858618435089093084687664807716473603675014353383281700012919098893502207780315949574086621731607496045750789846778578841563392691934313847186060381458980383075582282854585172733209994379739795787913654245526136854408952062431481919945295451812306073238127598465171774639577633561628574095741988295302584355681356201191901157540816576683128240354061691145615028303519998485680343901232732007991494282533993253966209135236340954996972390826401468683481436400505115447787772243281949467024440159393955127979468325224523586587380792913563816850239021695115617896903656405287019160539322791622690540002985489641628488711468386115649048618622487330311912258960189481262021366530805491988829434691796171517961954096268506347393051706385882294037959734098822634688209149793396121839780104796227861799765235235069461129313543893920647116619785169358304892622023204178373150055728868018152406495733197890316334751005949016950822676489058996508919629066498149963617965338529294785656436675114335799078584331659818271348671304974031677181956228912301358139675591867702112265698224829206196644438423920977160106555590255816178238858440781740638342199239907490304101200931848252744052476951902757217342138185226306837658620581252528421260765827248584930739322195997964933219649767139787732786646700994447478909394910093203164247666594635891441572801427888463663829519144121308108089155999963332104950775111766544023691886267503578330757655837907288336284474475299343995456325030161417203263230337407921140032362645404553912779988132710386407127206601186171200054851427721324848535659860335018775968795025779710136684229351458772642410094741639472651708324998560478602031753503706333376115623981600470951242070468653415407788887843560408396587314756663254006465287500822407496138239028146714824980404682583582985366854318051646711704021107352666530148715261824179471178989525688611810021498377425522236552127304446793850137303783469545208739624999694819017039695248457856636147285187062400839475112260988381004870769763918539707832606956832291317260011513473089426710999908635384468361132266283126841459057481317982282636569778410379984490338669755898263623559544532476535518986752640349911801802564910380027581930450950378753933430167833792931002668998960922675641818677136255843208552647705076907746930700158803385968776913752243042324948598490686399782828271912299754227650620426639398662905546518888994030056935377548628719916718638377249977060910878012027229673220085708301958928276270732138504561493780258288905282095535068675612655826166028733446035903918607439344312351918211008126728129191860656730319887931931127771486404270194838618178665998781198598423299918791282462654338192500454308775542589878113993914372380349875625750102645152916739386369219495069939911792715820441003688730309557969601854573695589144028980178564223742315187003743839826511383318090528651126316423532889100122383199976248801038513221341415479050828461400074878512564023161131473412034771062243480072131006919341302172105302000890735147580656835230317041059309565775741706999482222349102217008739970721758141434251668057057781262245310879021887153295614525283450002217801530235857412565378998014903882423558308563518093117151693742014091285624097146894760503414478971099634219039695247637129901405956493207409994778129661523832119799350546250091458357847867643051044572171804629566972701987223933623961115847057483868216990966747659633917813438684698797071629622370264460952834766646968581800397344025277904855232499422053447632589024533724412289496649715455321183523109818166470077698268487322714873308316101595991722843188148111210410919263679275244836060798522584393657953240110287682288229904214401623812956710599526200112804666506350479704772608289897641344386238825347356748311876563330558926692828650595736994752488002876933362497213806557882324280432131166429944985051985430867431538646634103832697699213495083307826957233125995773968872525054764243029991995279240201586588146665392506151091732435573225424670354496059109424289134303833736534019448223382194524864873505686475685970021061551929254563073704766907662986700054760413492880986985287939320730468966210666500920883608654080235854158448670830902158929159347474395239113442584321253638968208733122822802943127557213434869374602636150612236237051654760348918117430093112929312963124780542772502596553275628726668935549640789520476550590305195096724836167938824498785017224672334880549466490339417403882522240968119749080405020658395118310677729148807935146619921624400999767911078108368131600521244882904807136141328996526642199154017472141602064572425159967419485329404470517400013264258895607834121007194390772157968832048865180190641633753984746324179664473047748541067768783646479771785256619919032208441059389014168534882532956401803954720443551652350867225715792666154395923498086444134171577259264983668518726340315841766524584404829167099694293805314914697588722067672324827328155973075286011268232157558306816221032073190444482879319326527156187778011188261093014183439384557729002443577178711557269184805536484028220859955776975804649058232906394287095472053295929093483009712455005170852098129914516852531011086793141305915715766194889968446751009378068167463214182009058579344597386850551034266075419743533004650938532122703581833095265267234209952955115072860531382388843872480119042227792889266780771694890137035673523596421530529593301558813397768390640651829435422164597816465526554521443369286187054884852496846745188283044484912286333555261438700199406838652017507047221767359116564795809231644472389557300066306741212150710706493044035138447429341163892544954023281862298094774249135120915552752435148690296298516744094195671002618497721543180508117896119791948685310210030746098580514266595221727861602531861816055355453978542659683201450522296411929823828700059717399308531947305102770991281159011604238879772694927900716089828913483721213169965622178706993776733996056073612183537785720679152194941756175370566291987240110502124384580080235274578152432608168051061227473213565247082226128739501973159537508443815094461317321861419211232980818148180295802281903053263549490660598467043248911172613129427200429544628517829880131193108841123897232634551466859694042637236952023514920614758778098232131034415455457025787214555688756276690207899054591281913729103870654040773235626016582022903320596192626315847076854464573929852503478460257500693212695348972870658879949826497213311865812009490731403287559087978650506747173707083608268298170656861278426275337187548771725202362169511406667425752935119572408753058460451998055860341836391619017348343422272250788632194937106486492344623950238498149124085584114267873023778557132239469814658497790249060184177084233607934406079078886567775166253767896183464209496096055767281807119902793891343512612355477345606442224474299951233239960684350632405065742784686894306976171633204917646561357375953075431212937608149863016030567100995522487133421216311152408826531434811339200985960508387186841217154234921095524621944445074110439719993293438000052353352956169289886574385814119649696141875680330782969973125229904692775604616514543060062595469796582208857236767316104996349165347223490456842335865668632951803831866834139940712954927137911518342786363912556426993834468057118067232188196480285194216088192942026486664065774858576131021514494250258259814684429088423707171984777348236974554694265980680740138454250432431409830385137850389980360318976060100399495950046366495762939293942783354797241181000322991845511397327925442042767682911648614732425712040411914850587973747316283581640704202141319087166453244916294360500409268961915172958757943863086265660888020534727564668946464400564985339680985480520594728369034595945164473651632689233667074356888488666857468867579634210197775636212691233948137847174747697662708736317909650727907125922868154906715315701867169142545878175019120234577164771956410484769112567165253980277060140653059894841179536807245454422012966490089904134950183051363844759030557409272130744744877303264346314029523617028030148104572993685816042857898522066789145689806098654666612658266947408976563643481414105273274610462635455640078891576853335026171831043248040060608661270071491932004964289593012504626696295230159494269260632023388581967376674838778714294669375537995754935941654695501214412888856062892090713253831562591348941385190966873031071541548698460662081106530711492581586096305168302227110888296670904146168796616591254319018262308511369100498191041024858799793352078353705905813561474464632313606414979272098380822832778538238112728024932368711506699979089158083933318918458202601061364121197012913927583109968791142161309360404197880677265220646277359494024446318258472894751199013756199254204797035788470457471736556075125726786083412116056094883418648703081881776522343722431549132503884625326839397364993990398865577350698691690477401720641302566866852498485858672492801436358616486910528606291433867212801648027267625160228982060460013359788302319823067059725604867748814760771048094431591018478646683479883827227827504187764712175360391067921966347898138598437654350389283817546389408500627701487608867599512549401024766904760460726876182517228536135337768914693566689645685909088051925538672306577982766602212076786855890997428002957979095630715572679088398503544506389520107677638907412206145134999347877436540030072383696340669661012856225159638636689579791459469436712363439113872506570388272983315449322592393496443283147531062056516323876917722734120282683916086178627911520375845711263531114761182833410190845715682330356875186995974785396860651120632155691228706408639450819132397073887113891304896666736965946032840082003806151850339142980880678927408547477872048110791439847634583822308492142839363806102025027710646774960193769730630374349133757918691125506105134398506055059723418269916984769004445010511181851409481211467366045131177437851010064410022197375954500085549450183821547853984245573321257997374643804942657297012561834973471221233137071557000711075006374980258830421497794682721883342003639788227252698081958622112576855669666364734047960001446366144494545710208796801849050030344550391206135890045093331863339266616245588167905231155480111840953434191409956611309301102722790281240558164552906790335058037862591721998503614647530917690082071529174373255704385688567129321697955017327220425726848576822709153978036862811229995221054312050400100667854539917871304572911913943502612249113921562497988217379865582239240177676745334885840167045853206909980645386732640145633081822388221078128109992862241372129601368502951687824794817784139024145186322734778670065604309220332613509036937258480012090836665611862365091657437097904920787236338249807777603092510892291458658349116654818236310810850913249088571502984114294029057656743009956711784519331836632334014960182550759501325245909550827463528819409155051811338188354892867583226390840442322763777989831161940665266874457032733300779332743823761038015358036805499286692141399768335434853811599219540727647034783931994211458697949889040518893244691019312745574960527377920995142488156102787661224857705737108372072478808661394381829541199755197730544475460811483388238802760748214719678734732373363571091493143469042076187953076255456469256464090960932067653969520288114852525503763443173885999949147828005287154860231427175505334932645303172669078590169047212232671074713008936429429894859835635723670701718244926673513113386228659772037410707064889189672723469721528345186365272186999951554221381144837579608758214990503076997750313515015122689178295361914120516817307699383907224470827393363101399782479405053006206732737552528448153037857055577715360438791582996876568481852981049521968244204149428550696220192365106682377965285681508223997660400847556613857904820008849830111758615333393443699250210159220910637624374849616254129621161719144057749670301162619452591415161459117838240984220969233203487148842464565087442523523760713122922926543393449317118602548448001967812635971557588820853894411642441608923046824844059340060918585309754103267584800025910912414630388069950010439734057876766472400925725992010136325378830759907302483878125389777643413631715369125381161560628409062173502719486971028637833959418641491188413658247559643392826212790024517490392269329165066404275642884650618022034847067589008864717197906843301388665620161287646544586556646959496551968745430041723116966919413838438229946230832308167001468285714784176372272428352712149274970200037535145812729793285914652779857156358345359261619962901934322693984850735951734931518351077408544296454259116924855537936732509697188873547015978661081780786747595853700770140851407452690710733204666959247685530295444170184013264534323206074923170261678837031732769553881199252808172608174134309987134601393065274684746254475222272734307136335400379426276576538482346774399688230694582535017768969619331048999287318565728015040269668417225563087720972832941220606233502644933500396840659731646979614077339673568201054763120240549263539222004273380297841823305867021398972932972556332288313018552604320575414034678635562492997263452182471953534079689362177453313922619945785473411956940137000833315756454877676199754801575908401903097291915361243094692563620913778540638064508851950661374062249678013420602973598565422313057610547470457202140554404658304211915948901410394254617189663919115849497428623437814728170907461679070375645444735864839571148752205154589234122777086056273403329320053127968001267955194638135376882200668204505559163909313482519555401248359074553148516568779013370725825446096703316328052053023694747097608908261501914492827415050863616901279979985901095492971655940210820141627758519797129068341696121582545278671252724797815794303674814508757952935932405946961514188317008958801616089112203821286598824236169990263570528265300671805493437240890471137019867727870811439628975283923471828459567344460761232472084024391027052447207667335209431093094674276912229387026428282339561101242426660176401693100199047101255265451721889545668640882572513663984781274577301879184271719872731344800073080142704052721657338224950556102632614309933758004312350707232708179177198395764732143847663935001031466015411358005887355094797815722141607621728034613089215148595287178537419430770702634954798870407054094202855681583973548080193550448662592579439183778130430650638343245957794077884591700575991680357474070448494583991819797508072580260666876973950684789693164035493696197189615872232074169606246963738149931878008813840553754118755875433126472777474543258566354789174172050621561988822480781630973211182372471225223935658924133881106893227609889493735836087379846915615557678864536355619327644881387661577871045315264344435520654565684256502840268297885507731734482133248071804141754282134196143212663954543593408895734068147122772470206191201824360362057868863898328082713453635938528561948020995564774384595928162121602550998635460292193775471234010095533487021512221304259267963554844807876965208487394674917508922350083370153104321117680671522146897000464910948088737755416926538411763670453758283226843764892326632464202876568885057419565511689607764499241348049667674143793543009314119896079622575201575382762156946299757354600866618042315208062444686192680574157094891377911191850368094850135340208342419762838941800610232765088524680871781258301859931543845453651862916488133244744733144782583454254354428491044726167417834802235795498847203045438197992848084034359694791013592481495749395507665855862044482519229168399162582149177122334074667093279309975171466769378502708854447415480504460961601459695024884369197999956988338509824278197631858166165712415916718858747480204944863181952826190174142645196645428509251611582054336436916401834607154512728113104248972379829549551102119394629035110539331400655848542645195193665810549535310187475293233033031472810402771696932048315057673420473666592611180738004404436173828793982385396907754867776907040344046414151566927793209224270216646822531154370968811711468799071074148599417825998581439535160842082421010046260406031912399139550849796554621092310463452481656594904441967852179562369780259056663227634529420046184121303546605321985616091573552818544921614526566958079838566490925184989066443849488426647278449570886717680818095032732726954075809804839490461991565884979038685340429537971371110465628005833388341482785012993835154518919837414737200434429417782068880714220075824173972314841072797636663653863511852262168944891339851593916072771372591948163115549974935980031783421692206782953283387426598030694254473498620823658165276058079642306899809079570119182728901837419706321374979881820282928488637204356269263456094598281123138546999473355728703956981442072893214077524711491494754576518703255266103509695724090053144544453174607389987395231136277093508958271913039933449145125956508781955720294432275308990209258636841408704820960924131380168029438293137500894127015300501418690022058612702836926053572860513591364642685040240675349020455063797097396454642720043391345449188059786106506954575889964344100617901663449718390447793257412687975938228509393163978574950777700426543955882347527500635966941656145476596750092471444402481900026012403803739860366304533806856976008862534088131206616821786109393526004278492244894609485949930111039618982092368841007831026725715536702001650502274964399272190125636790426658203843473819766248588502467526521451583706640586988198969371659880716166198792323545641601037742128756875124459296520566037553095855537090683010188115880002621798879055228494341895005556677802403909772105589541252533953925782611395037081953089246034866783152020495604675503461091167718608227289095083471425059549796543863704510264541093475601262047035225098168174804897004297143786519728261027423735171166585098480440147618092010677661031703480429092865944194907616877148364754894263814858038943115194631686057365514250285988584575702017380893672095521875078525509327880273363438047261754907046524899266620759562781518113368545834964450719846669016726353327613623014914647759308536921637288595251400138836114419829717694196047916250650414567542262968945084675923749780615450983759461491907348002282984628830478658420256746240748195999278518905985962962008214019474588588934129592661593291999101127995178442043735318979498408879081947801485168841096340562040175249265017221727369956944408092176504993590135406154497619916527724647529630460903676137754076491961221906521944900909174215557856564762995058284347078793962337952168883499637976367805964906114065732225456377375588520408512216141043693536215743947724526987810894725614002993421187261130073576538325592767449907869381618155950912957833608028836602621430163425340895133591661694648012834786986481046408448546827384904058999521304988079856980533444634459648921266278327822743522146484160678657468446616927528599372970278092544935435997002564698727597972159188019149200767608568389675046342385816162484184475546752438003270092325963385315929216729159692856288179698202206914465291271821123754575409367017737488947563910514830162618402449625811828764369611983232530030281920528144183849762275559115804400637204835303671140184013876194157593003357672629306994241959148814575425036424531899050291390506679799790002553404668951055399689853259890402413552220333693540679063764584916843458698824648791532754134934850729846479790251108883584985750495229839667647139792917233892853109452469548299198675075650708719059925349737918400757487395519537703156322407976278928310483786825738463741207541254934402533425555048290637726570440358956440762107864717918371026511646335593286708447110540839330552890484254101215014205616806991460570284419650450299831292929872235774227844885069874744035420911790238588498249441327302754834261689743037512731996958768849349369888921803000186905902648576765303432874309112799286309668306703484535578749210463825013821181467932368679605798908158260450464448740209989650417007374199047444335264495149941417492083343961857384489424254406029322641157356502306286064165508456328682174387404633102663990482702623718463816131763589218107243488837588162855194676895498982813729300824935846709544250209177307278856198198732691083140729936569665302857055997440569546504012426976060722986872722246659778634555586367288046701372779544635697810742555226113609382934033694925104726406660671124828435875528965631755679223555773698289313607798054499716683962586338503371944172571031424908427852669320203832943389743720209334093386640499876047323711845865243963946572594583358191224219143374614259624331700440393599450132572272352057176259725920427628084862494679641517990706335266656064636955636347080381829524640284041501682327356970027205214594475236691429183539272227162623335033236938797377061955809057176784589214261722220939405767779999558111481309604821862038480912420014088390733813821648336490771267380081429743706238704905723664418253897617221231939815033457123929371135723885058000300708955240188357649662670241104399207079266226886023000214336583405926368746944909880602972778510570012578350409649562602798078257558854814254873686115104629671051172760393916734172953963464147276631293924575938362874330485696492519392088503969638082293667706227056705084746338936133209774735929295857601864574473448077279565528765040695134924925400562149709787038049344962777371931523581171097060527031699634315520377559483004269147307995587078790392122980303920007211343663772781644214906332022010810254635771021647733034695081303426341704827055950541972490219170241207218336184659576657997024136558527421639692001980404860063911440526027935979031034766971526321747264902130425097223480848651151874589498583316733147457479181899833060878575068051212321762520804992804561642984621811044489494441486817751415032389184785871140403707965181362626444402142185343443605129011015660567633566963674877743245049091839394910735362915730891929616542350691224105711729489052429944264231633745968188510260132889114629842145218712682762052942814980236314874979153643617475972801559292393384904809693219984862432925448164411936813368123225460539690544086854409025675431968124488678389620549333360620618951557675018439196090016886555737105119724724624228337959867034627454478729710887676959745901975742893353104556758702103926691225217711915328947055110496781230178438670280197814884899226801289207798863336803229981205058729625284133672676527037436359321470474807524830351322858368136125251181707762686043002656022440579689801361380773563578343396658166346145507549763469732978327063480385619475566226869736822657957357418488599055242903325675913542431157690037560223187828168351641858781061207975700690670560488069906974039211731514248293153143482582849872647867572398355012647648536469124345342834355346025449739068389327535558979796796718004379066532445857673816494049900937566044322750526931982955674192808695887039416675745733760718148175712997287539274893261836036883511933736613018441345804035677606462375799415267622177272398787522566804606180536178505786766042079728607031303554600280497555116686314508592426374391570865033337650756859319757925620757040414559044954179395123258892309649334428122795667122713864232794320746833847605066873873560080292574005984756372338502924104852762903611753110599989779792678330355753757101186356331314950899518983345240681165102660773130025006403318688106254915731264338337795147746428270993031234886283990622500857517350903356982886429484591355943030708211443877775781377669201569883781523273063871871827793066329534338189569485154191947078419522784610732066482684215847601191225544271325673261722644906292015969973152459422652271540104800672281017426666295303219642846964362854740961374086360905561555485704072231532903075165168928428715813481274970794788460961766220190648819551565353042053357707342437815919241609896452568523117552105177883437005106832176085781256208486012693856829577085755150707181590251231741799080984137733831088825299014841369775538941097181093439121299837716613274276938590755668835627406229601990419084088335557242323629908117517414703501109820625494126148071485739421562954524274061106442689996216606723992445011604105501493849317855586806131013405495498210247799056239818386184793007816749887335848585142850664158268046030910165846649237956086784854394310361514694602198351447503991667834414139605696915272283065713164619045567320335343485417534572201281649624160989990367477019014920435581418345665691579511764237222276586918566105212652082982114532346683714700955421368264024511330655197236700240396330346575886787959188316658114064437492963927010754722949464271838145372794728127901792444954496574000028185354899957175229757458503463172446316140990749865323980316398797044424937258297500982501464827483851160500500141329009419875214524323490465704613249751808024638348570142785931284098481839599864478322405710659222186082547642313769627038322793973802593912834750343480016770567407043846449190140959962665408717374416032299999554992885792495484843669474767726810242097123962852474117061464902564427429886427935140450220314581730138333578417816634484535157546986728747854133833592219558984538164471333261296129915585176762606823567829052120210733223181588051157098936227280955207818592675629199117838406917188812497563564177297481191141148620755905427484287495645131036622967694208184024672839881342163706070589115230139783639935820183129794071371363136768620823616871394981569139681306211148832098651442872710137818281150947102866346181296757361214508559642645247348410673671690311171339586333846656994974905428186396920714198034356974136352402919379084551323094051996193663786255283028719125107558880523428738470675599434402265667055286785188491557588932939395576652684901862517182970735184190585709219558025488508011177472842165113672812498464906531037501722959988159729164382894541943026192743244080908635984096513794912402525708395375365537177001183043486452675870896880437865710776529245147893263444639994899960527263758931880925656787761161209139049700091018508978467448402846680691879657821684017634648095324232583188574754920521209787423496390148018003551111875830916985852870670629638638760719136425861452777900536529384741535124275845271964111522813800488163214232299325284808971334301625398909407189902586397060642283558022240226100960600394256406868364233952325789747822747288137153634794853994838995261642958742960937786026904615046053915125896882402350045367766024131181345838005477775634751638050136624566668787576327678255131614603281810647612963810363117846294531971768395531544601295685774949262735476227661980885266105461976254449230256510594375230936822786268752792227619857670053790147423458047632537152080161413263354922877826209523916041354015458873356273542199231225370257079220096480894017453973965045971141107717158293597460740927277501405329334737366468886216868936703912344021631309267532176937700824744666088224542715560253655472078367036199841524963375498353706258065416766549141783763264932745110860513835191545052471960805114521161311143502471636036440928280109501021818971883151210919416080869344530821763009769306772935181835196155963589464251708414171413559926518611214199622044633548296686124130933116889557322629313299246958791036374294658515975598150270783335555952334848694312735204886545534788132469624875929243276713750834445482510397529760597338881273529107871234711713282411148935419802075858133111018150040817265269144622627225240475663041181821180662219404523847958418038534134175020731544478825176920222295527531325193450093925955861125892825474369083542870683044174259219023999586454589044779106164664644890003256572316971471074580734180398922205604603704440844793039918667393023427066888280705377740008679648004557060311728648340315139030419252001815022530147568727706674664423806710517048728573196769279180122822166798656057104386003629900417767700537281731462764748448818071160333319477869323458010050209176543535638720671056081986083792041976208998537606726858445798765002402299295532162367041786821472821066607491908358094573835587292795675676684530581404580929524309449801369490395029072862730234311683427959131450426645424889342780200306634127312372000475734321672247481264060703896964616996780466852884242687842481695646802536959367563633905067983777718719327958413981577397039821154057549015203349678400568451446356754155476840187380489214337018162874746834854112711445646875880726217941232097151380853049276761874831419626901087243557552988539185462794769638842642009799053469963803931009047224046512492523993440489135116454988751218448398986922633933656619157710615001321456262131674104361056085759811101587622998509650113860572920710101305318957349933219991713459213948204498854057244612712996991104790125236923385749037783648298537626037489139365365168453929320845872643868266590030485002246849144426279347499933386002828996058751594995079738067286236291085056826792047344396018882760222053467972252043661396876857225222672232523599200062530769145860952932250706470479402179434359866786738544071539264442215360187937492091689688106973624166432512186086829049503719156853951633302145454468410639195235582431083461341820636975074281032336498795488973043727459175615016599912126165309533094014009115711178734465929497727834304466378568632464135944422367579159543649779399126742428068430461775924089639856636997182668583649598217323327468814645503055832691624588261972279930742987920140622625366286678896031006805598270530657250827656156084558853860556363782229983036494444027104023634351100572298370188312823776577199866659528381239186696249933075945680610455598750380545486852517142499106788164083411107912639048610555389757670606674849998409993347415976980417892653617193986619466949552649140813887818033086870887864913299973181126351117481781524519829376371082017664614777572447268046061963692720028146366750941794330502226261687890372618014243610988457651792594374854062925395327673950987201301383628569484189551567075102111119243675001600686102792065121291740458427294179858938690582374801410209193902640936776720102339511899803650704795900456206771996744198712954059779055374660607524525577339776917454783971903442850326052397461689369758924241150471533397974723899372886182897622294778711312657198429992781711601643207414096274153925114095487346959798789855866698304373417313493866515094703573860182624951783067509561521986454365098663582395962024948473802753097605231501931743386350976548787077930799707722305898951150713801608523285843108958390540760705875123367652365038536685096584231553796386957833605556487266156916289169662986313382025444581114975969608664763179254146008692994574276005340496223866296790341135180602724962953689650036963216181880177244296344710744483451601303161778274080469753444328120544911197254831615261504304681635511123854535436506517198091406748413449015314297252889955674134083357194833002165694411027016733084184923108910840012179981664555468271239118364471459404275132986841820226961309524239726819678764528836565436180451405993715893589388448262242458433314707740063744460150725838360162441154429944014028240348542478826180300114432034233477421526776188754490024673112095216374439177291777482332346559642698640183742373463119220830084748787343421541549941707031489446410814592155521926766659489281308610927939303327145684942269812285165183330261044258090623586517094686845279974968287139799689531584615587151272783897699922162594278806008633483275851338843882456607244800268449985884875051017389140412535808446910969153019568881625964066399517747016147869260469681321106098878072859064859810470405484846410284551717586925512335487410607026658523489235997268426919875728491338064411810099178665017420071989553253601247943433412493456696013447828831809120410960437715590785162789786006634473747777768532086453943891223841949410902609843293917297349511990380451454364453697097749212133822273203098109611521424903783050593452544000814870867061475758434680325368492843426985317693666384559428511058933636808931183826586378318438864650814177304400783723763224704623809516479478865898288268713697244941006316097998331242125989875474634461114124308000097800770748717174131988105047843504766042610339915113060862755082756063700880836109241075866471040175189945125537465136259374835709608724275181623273343255631537229864296398660480712349631676962692047720865678299865239287553223904165607506543307763040577657217024712392619291692211279657816977345123032867572039555944647957036030617201717409196721622635014360798527237357372749758058834748822882261119913352324667967976785029009937930831855603494461191506083824219679623122984742857214714481458939458112089960250181637829432780730219318791414210532690745707166577860974853333336155139212268479152818497670260063974267493563251205797538697446557049837264818992003573992327342092933089560383010168654823074593765340594978079272066468254757200893780164340848055714028431555974458629133393200704315131580114546601260848965765642736973584248295595355304545718530356306550900708059183101177376046045800858812747370683297247363143409518750605993670605712793030823519616182567353871321752209392461635326596888373891483664339661155065904059926642137975669361054051580560183563749530729731281457666998642730200265416104086612570995935945801199744300707953970815299119317513884964721311313205137443695878199621353923806157600107687357984161642202672046652172171086031584440377202797406865395090434594540288979617025716551975407303819591460526399256760557778311352035281851060482860364807711859956981060107468926700800209211517534493143203071472931145706237993655772573778735320786535300541627771095492793131201371803540473415271149041838672515452978378183171162194164420701659553682217760751790727835689073097405568684505504076813647675094364438220544134230541213444328447361879083302258311760560314364345110615909694198567143850707660182599898279720302453548514859896551531099198268809163511037210244573786471566655083170891808811449841363407915509135801798116723088550040571369964081755667247536691160373452663103080365113160788858586953876230916195692284026559965567557226924689831322139324308610002194373050287575315321527306657091693259891031057939087830687047224967357408224798126185446708581364350888231752578697346491357217088376683856976298949318306191763232163059642888231430995553057694676003759939039720012673711854814945716793334079043784143252033982495677451942901189059524145765764990454888790620161858775757513423910140922695147942970655600595279412517925274836950631205540139083246138695285282972097370269485171524199314975814710780611128427327269294709694029020666654216958148973067447089428734390820226011684890456096865244346100443089895992127706243111206196405906105754819908657196874967744541435361279272416905440812198385435248318888971097830368981642333926657213099520289500209417144231626180846636970170580146407053149462587735659771696812061587261594173829226459971506304654116540021181147000068397400626700335610971301249721874200007804384571250125372425186884304089759290663912376878335571148408599232827257047294605918663064356013437350413243251403980263270782204136704809372303217065729039466462504870592759121714341015010919350804828592710771110514262176601717549428539622715053910122998079240047022691712632229169001435793342651020922843579742858128722247755192861156121880164304492908362320939956937820768473986202373463653369046897262580352474307312724229766723814413495161876661747793633959922592966164708613477226544409342565090980543649752029328658413562595679531287175727150052055918130228446425105812710348013958873896174802817191552122887463143950923366390518932144063186635224053275363568757450938976316059385609397447355118227399185916492771172031166106681136269144970639970977877786487057501409309770333580347770867380272570301582165220562539928016220005732311773465832974658321391121864353600669262511177325635856168592191121227241480223526966398241705923363852551982220332694537236691349898217738080385480870568656439370808989011686835325251167044794807311992983954100322959879825627304764267626417676151420421869629163315150197611740902765281235676051351028049284868931424309949311485310306309298368940102967969212059433754169185737488695537116344788800441308744654416342993850389691810731118968828256705538008404482918487870915107158541152551108739047234830047689945268617488471451206640193882130642194146295043730021744578151182253623243305337730522696897247581761404083531712850372579796327674368293649366354077533252256381048532553173392365528897674315930726265401612368425886104751940855516941907245767829530660482352515234161305516864432313094287379433229105936403213735495926690828692713664116996848582350025789420765945163104764677196743908913931348566707441127725125435167877803997305765752151633507691409678457900386193353145525829825381647523911713178624194879835968470642411786748406474745270466794280054076032876379294631318777081870863847036974642038320943308626638352341535417821803403181264088686276026744627594138142609447706421497246751537898273528743850982774811596064105222204674633125894061289826102983102810118502701125310755565105014161347611179178577013137970849398097577918924759444942462823579244607009151050479851301887553388849507820394431457456840841753103204773962699451670390237041994416102474859663265806672075427504369840077911595776656492735719017652255797994247312965944435631058044169644315416595239195774768194217178868268236178702513293614034193985765990543364383424521518709430017619276630288165430649793767892830981700059036770182208122438756824947360572149158033459169311962033025422636017922132478931533337433683677022098066118828883242114569857202464067469820188726947780584912826351038297510838836217135453618840094230571594437138942339356894144811160504576414817481797553054561105262638813762491391169296121944031316807110197947678630213647977210652005746103038714327913037132223592689571575970277324120406579370663249867594795024011545450325526709404061658276976692114948407403440799755239199501012224641593506919844801915345679207182515566722194647849864872928793532757925008528312025213823749444610326631628257848454204426212918520048663872854497363575274214813397070513596860461849591964888529310307052707482551068609416590239848944276536387546229903622181762726393601623326132071389736798642010794682469371221467985223863283760837694340338299807782727110359452130747927492796911109312167487913190431436519447386194815424846615811764584600269639685302612777256282935463356107817521456261660106637983158373214778851655164673577818015047394019613007610056078009184157667702883249505907003523770893365674485461155820767905387712102220791052412764432925996661963465361248892405445756835986456782582016103375809674647967545525112545797597991316497281401488142851077377360152875438155059768415976051384412402850496615333250139895322266143341225953611168147171738602270953152134204832304406729382230401026487424932053387082693461200746432856619021130275812734785093578077962791939848622440644031592037926815839112283195163381576286945618769933201995318062913494157242235546384884288186513716231470154568289966521734105480791368116945394735288121494835287494496224221819714172274518971558433604597430549288878255914361441081363103548742364621213763192783417982975883284406615413106922830772976233309682461703485137665574824507546655268893433133014852634974033149936583339446760288556651077236218128972962564749211798126686372617167627697520275982891153571047977659639324366187613876537518579986938265319956201059481087984466338247748700528712297769313780406716284965725511157069127154257461840675563983885682926917142623472949872440478545897300745048586048072835140454769271319601270432930577894167444123072000381940384039562799345210776559515602620664875001682237806673585388370530425624905058162167341174309429566701719973314140929515214959672070762001011022788875266100081101293625133909752488077122857836658329166193778380117853148610692685897926080245961575761578980600382830800312750041619641111401760508438269147347064040037780347806940847927616153795888692457363717216874999963863793603103127860813568176168531312210596601043579803845658858757878800233172296054664262464383841322008411642078145901515976441897543011605445258506061440336075534687728378468810833307159313476128345515325984473304416140724666271099137730389982743722813868991488089708555291273502873354201550462682185417895776828960079244103569614602043888549094430222405947363522219887372828223362288562914506381435869334317161416787433031086855750332166619761463285041412084280351748888599704500597396714779307455093875790462700440905948456322760627176442615869458452915595790505222410756020045850848118686762824704283944305980858085306100038773486767025525435093193174634414294253345763032466896744211077150185997821283378451802846727861956365401834118407228883994913787084300858213919836840856052886256184324683732420563561731947547816848589486840980662863745003290848416862837495021248787139078280481383830020263630896190443491612145634890499527438529053304052654427945421139879692131391190631591451339732335043161477134030473597993051129146240020379804762541284079877876074984088299373147160408529972609011238899218105481209284533227892650863184036618453262450059267250918007987537920827985885839865159160937647975474082900134253921981867902367869167327332677012895959569364759762946525214291988965136786235273771208483033081775686481438617203676034543285405102036318513596626509976928987606762667378140603158512365311575753806798106153381065015112256606885402516104545819911895468826046203930288299370587775006184715058530858770486622923367247811441131227610733432213790932071616529302667377629402784597477727496258654718768091372699729754363696725837348879667046117270576804254495448341842612108111288423239449222946759649065276076614462633908292436614721477291593435989344688192491794508348938539268884711571426568350329478897666198669672938205816309932781687670048393907847059737172562700196540208387028294081944659185401282991049704491073825253070974416671991475755512951512283039889309260206398203831007789230917456203802176906463433617601837513585612294491050298441593953536957889394141920958837002546480841828240943933913784407412694887587945380843109424680483040628224381968425862061328761892634301461302609670022515850060964524883141505550409297036866622345680430901589448027777522252629502947488974682822874978049171380535084686963940972266186047887303463474773860147298052558158231723508511974137876902820017655692514830449947511568254154682546487796794948213034285926685359700162630864203813160820751351836323769167052385736323804322665776152801420302893853922288414954155972733648173756094339371869060711702420147659146378870060396293694346689266263743029367946970362682368445180089481420158558562398672086029148207869310429794869247898555410196542183734334374032265198061196709815903555795868678837463712154773429688588868175601319281631761259082182705232605309943649150150757902445896761613073599848680344754982856087709169164719075713942161092445444515937065869811446146296122393381222363994692702495948254658583409553948454534299960772355735181410811363495894211621250388679215257951788385532555492118223646962361123852371054064257344249848436817805318280804832475729502976161562258798141412621950023616274058390217801187072168719107595219993169027528425602099531037715971851661028521103290989105278797804627608615101710146052462176229686797478113055823063603456804581159788574057202159770158121552914144447153390345642935328720155371379339635071182381942354429096175728320576740430549018833671738751586793837221977788427727290583601876425475615186730627331327372563098010325511725999593021206031464942273111391588402196396246834407871631000254140591137927973697396646669835048564448466110480717024546517696990342514195448947556901359021826545946761259708893307020626795605361632084983519768463961767232976839066382731890578153194349759464714753295938956769733974462867370991499561831903946722840554726042529941378720207301448145313466927487459801473139815288746617122511353819184002991442619629335751897887540474180978793444754084114900392954928021135713644179165321981595940371350239306253111784602988091197871714556169788362463976773112761110133616321261907831844436325093501878330152456046553534716009684985456879778214988857293929847604722226589345778271527716252401207700883267744628570975248662736382175911926177332406466476466800420754525319166921045238771979311667364601513136524586893756855592361545811078042791930125249424712242171167944314663453348017025995498077765070791646026966399559098243642051502762619157699889012386579101660205343082721681022621360344286845180931730172001727795252705187604897710506324581969917378630318532263280290834612828117118223189669878828792898460121805935223318074787504922257931379306576687415343351058738252049684185903598475609752415231524275640301328038758676883255488591968425030889024692307462699188338188092391460824873559317947517568934288303893240820587687236815799106944280391520868673962265390460288287113296189618302697711316041276781545006619805038240565640948601641619597208776046741549311814541133124048593045024568931987524537989281194219704466270110869266464748242273524672172179482221018291132766092394959520861264801656450667867271035413007344547869790744116345434394854670894973155953146320573982350554132078145070229219535545794612050011959863370818287079846404783446666259904090394528092770375506859497303586059018902497412472874931496343701441998995122901668836533322815079252063169279523314743751429057582714210413287108368336346715304652928580558025723222962168655323979328998604657247020418023006550913020114389036694675169614599064144671209044833749397823650315249794739978814184368704931911479407973925451847240213174193259917924897256503878315042492216957102108668463796570439410638292011666850724038821982404955951506199582561658550138435458959873108640227682207933112109233950147090801451550283821811306321533894143467685181598551084176229300662960677721694654914299643681065755565253419681088836182913103054610789411732619608051343394883582509704813844009149736695439158125087461799690862350180703512423304603257192179206869282336863567991653961137083998974874109108561051555981783612256493002925859487255531910614784573830175074420284169202880404894707631340277578928102363390116144150693915686492256231162864905330019945563136597921210203877403970137960077704988788118922782753504852920286162179538534853311931406421854357823856009193780140983411150144469201562126549571848939739148948741197059328475414761568611593981274640913502200387021825502477702080566628227862443849986167185835100193882390748443211308946754065655303222826604577196560735174721753091106584158159401411696779881185463607431930706120914516928669373543158420126437481845130820259728310267573603242726970601846616573990761529672243767888005241123829535381438586764183891608483481451714469632095145535627941171165301268966407646793498286512592819858924395732949063068560920690733831131754793187139785222192159919153174321595461006673134416284850152639849739761941981106440208986198543725308214173670171215994695102380936438138441270047492210312250717816407519073960018730284839815998772776871917545117639922024278591448283756320118021317386934238712065546921904667597773639286563808640621151896379094230407412844045974331151055296820659301585724005918838138956083852135415302765761877407039675495362595741168417993607790997309340222154761717948949658603956247437043840081356538090881339644872621597636610730518433258992772317770147513789298511731813054359772506486793692639237868759993799951017783350805438988811973941922288909571622826061706303740765009137206879001937088869990214242420260885460554480684546269905062397728321901047839045483974323904223393112977013703027181042924997315959517794277532290174271437534346260576453613224486851892786056853236311663787615346311287994072485324053294385324622881354194976445104064757865658132829533340319084045316616623472283552429154451191293370169889487214288741817709647010505499618566423348347256191177761209907749746255575850507307274203273770878074854208272816984709669797256711611478805771206367867786068818321417506765317277617801287004392353812570199432621558003093278639108031106507088383372313854905439371765597760998072106003467452508819338300877819644964276455745131692373637464351184378866560210640939211857791966285865013820805481476562769551738947940566662725080777858570480858417359852951316424171979789420699973807482422622271122002836750634591908826027948043103117320908726850538406042235995899323381347435025992210790901716483357699922948758569955134176092174896480343375320287429386803525288559056940409133864650925902462744377953289097022056699559274243432021554601166459509045216944785563960951348959610189321177715291889843455658650639427114386864947224912639714433457233108145573834362731011358149897389054353246109202433910229348067433673394652691638446487282787035397624138185598786766265953535237435474650133865867278088625730736771323900482172928116976167985234010475133810977391853590362595967828051441385964110619664172140934621988602666466811645190159258110120611183947915433746952595871008269730401865808693360679317140599192337021033304212983507624972701735083799918312077763477726751393737472517978559370333303195357315256231235881492129427859656960880372064968327543453853815119857194231529444002688670956991641312527939945614038820179315217913871914040984757266031632312355923760163691360657989232449800207058513893040740832670700075470554220762881439941748432856569939415165446862268844342384259876284978182534712112165170192974592845637967591988719876544514087850721302294231632840441174521515488823841043094304979639711571685427587019618549801492873392746414547577629925544989138663252047892812408891528412631366589589103040605146056047157117134069232054457117532275590618336130589378949864253436756412937089041475921458365874318160552436597964084353407367136066379045773038421227041637333954404778349915672216128433688917079064928693239304534813242771075383962098346530112758850273480706184764442086161581359690220203997396998433680790333714510137565737584812233764473962550695108705112456244576628388703508089743685259005303781315996010845944842342095412364233485024972921064685397863979137486226915905180505764913381245311526977798924700675814717193120085999317129401291430487874266964333415198728468969312482185667312138212749150380846471728625269221182021317858740547083443163812380446846010878384675450455229690119230616286438794371046563563446142502670454438104382698910474846888635967536161465443350662529702129451609044716009208903486023885440546124056361117527158497933084351232612685111507870143813098892794240574247169543057113643774361264038609783634489189621457721216831830891826754876581102191062673917934865328997734635491170327597406298261602973877151942195989998338837342923946370916595113470896412657901323062338164734708459127809282799284074565006919297570409288010570247606563792566117465574881471262373984136237972692598875328896372286111490659851286728581406870922805229824199813875658160383204474144783013089042339583045772761247045136374077024015946254010339831013613721950200040714414222780969221887294063404689035484811098933888844010320634040418265292528710649954134251555070824316687453962675897468438103567426160765611763047541794942475601405029014816901122082395422210497809002651974088360984814296517420449279904963683005013536982140646390497554078950254311078212609876089988329666978269417358805671130084282138051825293723025331363565662321949346031087961212319604528048694898709305415251041968643611635201106467726370128841499134593774348803913404356666639304277538919682764553661605340428661479886603750314650149376769097132409299371441070576773544860475125283053353541211037856003107469749607310336129499743620236881757306839445772135876720649604990982195840871006972693316346402741350908737893178158361288623801052087479486723426775075799881293971749074803911837323253145440949346159914023774712059601427281806874893965742380893166274154963636975109217975625691337094529190402986346702286920269969663744786300670129661666784282401434442620354020409590723475224443822412375819734135255188907347785468748774850768361051961826957125607268253892526512523771567693813080688471119244005954210020052566248987855348463699193927379163641813582470885346613647263582117042035044095322736286720166939632221988673921706502696933800210714080852094816597803041227380104886016500006233921917595160926755672161155691576611722138465799793272949539374732384991034897079300177635821470793656910051981399247782683347859504185256824304406509833997890038244291956831311731110002412077470034015352062274602635871678658527243438277252016292175042543666958690900991490459647323645569897077810954975019063684414668167388658417760639455705431044307285242617991870993470612651358977276502069376919110770670257802839688532774530655172540964038106589154169147552979891807869409893444603070079280433804703681347781212071773340721904159660916055108522225134299534898001579142619545005930986267698289122238552552444953305256524611368118795679124123493778454641843608070659836389485289452929370067793592011311632218769547654594869081359222373619219900111511034946840899942448313082650687025225150256628122761675085126918733565985573101116201203858105833037084902755708005290386563635033739076629530054092787764999585622073123264052398918534672645289775605555897856184362403449555222534067279742142213262534364783102193997251195450456220835925080211601932338856084013259708435561772867621840092536795847375258545998766057399947604271218753703043387210138652528345931563967448326755582217675549935437325277780507336728097643678362022147859965798869036977737838888558822410706642800457296358071665855808184094749043878723588557132142516820973775452925969911653261691280308386644894686866486153929376525447715659849609411323897798591408613785110038301346215649744134315993015599292277035093486584978616116617547795221457144349409013679975359436830632869380075512054919954091729947762438075108085592223211689651667100976888763486942253859090349113144116548304471329142662189373184007228939476726403225723522844089929546324916881185662815614592380546735031649109148969114383392118821212280907753215817698183499549901826967182048895575145963443934683321196938370986396199947571905175743646044521377521220924863359849215791293188797342762066961869092414912302011433693288160623449353525108836896024977356195308191220040192671480945421290239751402716355100217104877100555431297826640744549995982665217169663577121118844601476475372631478795022891913860118053584369571394100928663443927054342956642752093217760100470687564951875918718896207858405312272679993059488474768186541987875352973780304632366052103769882622147794039361372173431518791510442359049053696331777710199518005356912189822718263345278569202914529170420914309191298470109590067788961603000397328248503988025258330620170934468474660180706235660496110076774944330418413602565282356288123211532958622485460991385951819222531572804080816851661299016344345999766696398510402469006942202986993039371571296315214338385401791181302458661027139458322912082305003552728836397156494789526011137664504418644231505089108584865697921561169959201242385402027963114851297376326742565056089292814127473293078533747904011351334740584430518925104825095472866376285506801484279035457894280186300173187149537807067690758888191967754129279426948020115853131168142383710655887502725848318712933231806200184069804554968418489326010148838962366064306948566603616055660207860432904441248280481487494529318702458002921082121525967339926562976339679808891618241449069175710264250474694535927294649634307533889980171340237876546304939417911083422349211255931314825380419465476342025244564976649065777873775746138924595056642542911554808977368040766393006394193746320667916617715055839778094183039882770733148220862377867265196000098065574085175201605458776254915482670385978280321074855999915527815505833026327208515253212866032794622566653986627257935189562791262378240131619822338130757180954077658846873320876686989155548756319309184848554777712241513631381597060846727388378176430204641783429913776931658255772750129947073686035252926860063414059624269050725619624220072162749539153678245401033136275887064819442067415187593979722916605605948143845302436938708076752132878892576188344557146889186051651180259600492183634058652749995938473044594801094374219354991269598735411960554692497622634740829423231788405862456075797435535129346648435176438527660254723672028003395326416437613364546879962455625690230908028658274189164642532788212929450114479505379350507889319281866963928326936574889468728944532966348709132962707514665552795493570815043175337789376498002246196712565044072379558408544328653755514003540316445720268459303547154513178785268225217294346906466298683835684246874626709315100779912210857046012658185872986452211221074444213240525307190157205510650334339288611861628425217166478122131816099154932123144622261529783493686524146752411766437062514872942303514605450049539934930373202350864088378515721729748130280791330690902692668450754856626530448832971857830407539043984439077006929522655667873703706862743696778871997309166150090665301861300726609791918298913320967097306713030703436019246143617787592803083379707396673025717114886146072898710900590352060528516810694471497865437249474592088951307664914137820789319336671775811978193472340750615292956677657543837812973472206697011909014711255878196910283792487901704143806629006635986503652332350122199804045074496194898636291943819715100227882839691413804054700630793267518528248872505187654014709785477353640232639775923004070367334825856900498956030990586907295131792732390986645689762200312654622656673848844631314660424615982075224999505556695373085572317430241615804244848792111589099867607453291674354009101031518296166834420533267476595865624145530417456736736484008657465782990309238187530438632109799832646701050209774054569533085765131608008122281280171983315322341370464619808470545198416552440931159317385437678226616884909776972327980869021495148577287256260848485274838676452145802913689405192756905826930310469977751388936550317350381271997268779500635610216233405325945264501830855321528023856405659037891825909481284650745724476013023641518328496462277245725336729834608286734682090546303276564015772289524632775059000986745380516958495518033960714553675242899973813605772825875056653690196061496194274928342882512273792553804221525329338387802542814509142866959596717383202155035844284467455277893723350401025168872822826084394145762607604644596230093050922049463470070616185967422256707719049679282202844404150843533932446167049986203528278147150775678718858213839025433572166364605661142850992420791223504181474040558329243886002414037925262566824201200771352211789245155496596415644988168654421487853511422148969230057412308846747968104507650087965171522230359351980605946448805343249538903638510835395451063662114705154361928690305698896420609610899698694259391825025503855548743402028481716433674565254149110215846484227862447510577851862422537717808313496932971977447949084975093109674820839442284353788638509974223910698798068435762243771946093088893804679437858539207998982469727667691332416135992170681261317842480873908394650364559711399830680554511765852049827756437829358374218933822126856283346361800069529074390827109229161258770879660168271806334945812515898777939978811039930534533966354162277030111549811523588746746422133615103691470578952400653626549828378865455978077979653648991037395753096399207937187438853707140389237119937011688047213561096980653999119375665723461186997242802287845558042846434947302227374490765886303020972779262389443192289962311013498909362874675762249669267110397074148732729266272721371717321834639435484611480385120403717840017220531909399378327574225509753207439564975212767723560539254063474018274072388127564746631066063938610130688268416065811344617773848272398940641278977558733324897883254960546997624587195374623169539194554507494617939537264053531086965135721270653697754681452214739693829040682177379630096043350240741310460928827238611049732377379661638390367294505172722212256576786709545277600804370964958681774388872989879577637094021805636743018693491865689255717890120702559448979325868524254373578882866625181360178153364201107038576186104235404005874120935211880669205506221691934311752423132336323864019767923788707128030264614325070698804800558420000204855240865021515857419352471608962644629729543963428755263862270834733010212213713240253490053604983251735820936243310468016494513834476965174370165210641440228619080193735441433243674402749178688961893057707503012331083627055422404442191226389813055724454705062297284873248098082336737967506400281274377609125931361991452942137979621504697046946688807597173490399477776459057127027526663435006612645779336306161942209991673663868732020120674819204670331134399993114336801592612641023558252840267720809917096016359512270497766923798720112299266318135012583626887158603006060341562265237153112523118730223819027313259747538571703155349067904135473557244811222953589889656488581672651571341619783726123804444811883246946014302329991222054761414079323926361817595505328312012675726028819910979301965741860677005693892065131779470098867276692789566023507813310154800168209122665271456178522494357936467911886960647455083580622594906480162660569406678614389265670680983169303643102539831058940238338841058661723147618105640394452296897879531077818985232856399141102212718903223452988677089943406383675742213431636425479854002993176872727767301172033311917625155938936827620843776355393573256313747386583632313604624099788607886313313232639571853838653834384898837816745620927335819460228310092083814197661325707283361935490274631506485710460958026217017304075732441236162423411119992854644880646504717577646079396291136704353723055596695891684252108080471997868993045863976679515090956292918898388389490510311316890943327022822964286932083925629787867464358921854641150512264349452378027308658486186594309104802550469835311576279248260123723014152154769400593431751198354064380198414576175643642736222044563373924774158158290344551156387755981443676902193536937037421280513024623698041059107200251005403448908469623643116294274629708127659824526581279787271719456052998439400584563002751244958652638717923443838982191775308006560056458535414829334996460808450610969284132059907590783282103398619545001404009955637574747838065497236867191803535549180410453135783748076137048801544811027810436537634229261551549127214472822364084364593406739299908915386246449602498792133900120025961419903977508885391459381162702336855999061767582228588337449976040269542125505585860457316269714610120155930991756757450862777354397815477662496608618273551851927853558958917217817936959335616649894794854556192263688323775882514548748722593536871362638184570443297922668868249327757777593589601628310176476610888078464291393016489925382619772249407690754162645324931501802472084636101053887218698821575653415743165300964333066749275679378853570197336283960413182012604492711696299327571569417458367749917299651407472309375312704540036737204039174061281246550712399711287469580764618596210595517168559370860221899397796353887029922104033583829232600465992656566197591960083168902101649016809523735572848865672624168318784077674620329080305441682209602470243660867875762386852469070401542924313079472217391626718756445602133241489415955949067394727926498899179973362246682784523244491607371092716256061968870993749181585650750401415600853460297071901846018515849125214243355381122055182346962641359827965405884085701328648738458607593077536581040521785554960588128695490977377746643529168885009499218772974490282874277006592118457320692470854379717557027460972713127510797551934425065764591215399129039966757827861065357092374619583644850350299600209041186880379527216860575363641112474636232217186037334769160541223144593054438208459702318816552042534275154366646166666126224532612807489291783958824623156500421272567206232972681048256591467174214258349570595739508262223376092561293753652344952762873754053364659909872466981358261668810659265476594919377588340816316332007566086498873263938582020661418737184823477529433307801442251439492834997821546358614464774090871325436630283300914768628933937392716315267634548148888348081106905820445784329517660926755544908311288327208569197679279902006647274382198523403742327342202862422794148288137598353287210584470657320551630066843439738552712278754687969450358197002883303807849116851682631669333709038676739422128786642167362254958546871438355912905411744786228671673043992716386664328272707826910772471514333294638589098151686673359224779154322916311120496059574786473191297208977293264051520307315514934639104313863530835970611287986274835718898865270209143006829140501439331791216501351484908189589570258503142587031790084983743719094688113665813288743259197636820514624885423895298134554658215702258374563330500330423724452969417534763935990011439733804026905523799099011082100610219778487381397581602561857624697215306348771483016297410869378289410900081580708261770640249475034088963408360110947263450621144153162040133658381611152207826943196243713776673698812975433470470352635849833114716350585045043744521375828524959487649670438919102672557615138823781356666749835993423234522440414245137737903114645114746974310582707445722274640005863289502251276358838607010241686026321308884085849985626882532182866095728225342267157874486445582898941972174386081948781087205564054766208565011539899000657816412645139183247464982836387795045301466871971180908386112855829192712116962744292176141168738113686528121302282260113182342482832336190332223815203599464444232713391006932842905731328024370638665532079326959765997603583708614829093797350465579299098081940581700499529756738881768361700630996798639312441011531663930421299264735772639799987689858683318091701986577653908622424386643444788003718506340288285149492717626929520757473347266922576403011121392031132378944565720472198136671547005515577136865197723760477132405310017375173734062707477618471464368640163785602055448139021355354626442734517066288281976252203640364113683934492711951590214391659341043210575291658986156528115464977200857571127829641802979499089463009445707201449379933316247556107846163184812749056330990860450674954024632428732422829220198886668160027095139060950621524713076729959642862361630888355226136726407178378978852077992805154702992566289296464491172027233512035843151510588728021060742503628601741780241673133457999512208177713200020424728984690789487038424505315707274060088199025247583498558203589310283786374897698102701905104178510679179705973894416027710562254419724369330410010546726668681595044136792586495559733818265550521339688919345914184896636598957070283462439096844863757056690852997584444763921358944123967685142398874421120275672348384698700291144144587413284029674698521008401851277510282921197044436627492349188704890326657069999083032927647936063795949242530998824873704323461595435008870707136769005452060942641859179943464080231353059527104796607671414652037922651675402250591383911642615705141921416196481636918966945076851756274024474441266205927418082298872703654679631321541424002236630491437321138524739841337998513510205644281689068373850116472250061619408525369601370868286446234561404983243641171972682708334842835624010321953202683898939412525611064241360662099082098520879927532613872380964932230593972167655949345303179372565910615865369764493464425359276953661030520153633055652019535854074102960874248727141385616085518548336870129994369555522965660756913378725277376760809789032738585394227644626061732036884898016866175802222318225805571546678335220799303642627336769079896778433477140026374830143878116619177534003589840362681950462803646464861927765750475071791056866995719622295670354928101745833213434896813092104889928494088421295744227432854684886695532971515409805340910935175725864385512046687992511541237585167621979205278001055262984440985832818791463594386617539780068303469498291928508076380687418967484756587374310470643191705504920135910738368792998631219548431930212384791575127860439519972443970917054393142403850871780198985554646652485640323166129014712439636616960982717841311829687682192948591214071302674844266605017308386686424296922485440874309839211835823999191305343012562880044327713048632698378734159066293819524141252594868343155239843472604433313137992707595970027094978345299022436654211603053877489677343423006417369897800316898793391174189255158090944353427468806826622484781828113033674554464517292034972082307526550556107300880579136426920033296197147259720107603063155359781933413334922951342687647252557956558408933908489777906255128231390037781426468524787359634826227102180203373978515960543246618693742444438695249618653110713215826801675170642241907607187832759318234761070486399903607661732881868714780077746903650858729744246185056639756173788682324576015928121981541729399175658798739350167498847213178899263778272585750926309595129616379974496070129284359316141214312324443044443593587485435705241862892419826355992678941004012302155441039005497474302373694550022790637839245200074202985763611529192181193819253199691952831019830918655775656448944436072113355270510005928791594606004634244106039669632600936245236696217933686055731661870563144301953253259793201342447457443037468519288406728760070816768349604225199503747903191083573330900679715510483919100311919548224863014815960237330384457081108672795363429716509520599505863251847869914824847654728456401815829786059947515217479342858459767253199249990659960583354226090280301978053243455278227951536591242667997012021149647005513615456118939411048369983579781602919450284762412232438290737277686357417085313814673195499241085181004653835361545645735710988307573758637758126853044015015886280233346715530524054119500933195154394136307234853936775045595911468448368859113894329908541132829431441111272664009321065729381522565520367793126111207097603993527845313195302766596171435610021042915838675711986414243538560214922388900867545098713923828252328339847479950835738057916917946319942676199656319186048952257872099871368528846162728831028739318219558499402357340778032483060955139447116369896217808577117362475402108855021098969893697728236886166311937700834117909418017304673058642222384246194883464092701712042855870260488472316354490421497765659339544701314039111803283801933156229214299210573588359825233349426010366617522469506728941234381542104598314695744511668651783786106893307464925963042071516744502867084166620415047416724121932094595074160277689056139931112378487636511818195413577359878096720419935814995226287492776944146227679859547630143924637398223422243899357242002881269372099131743438512111803553845897103253486429508880556649229817239505146792378963166252918153535799200384600124584274794211300899284395375052824243726209071818015691188172557145361363160772902112194999549291552186783335682466630831100136293149905852862113264303960723453769482910720966002724720984331243945806036712098277751490345118232020314630487171944097837363681193917284044704538169910142735336052177176405885275473339860080461117471992374421099231146456216994830691954828558293667980275793162201310380510902575784704055562924186972285710450076774173915610499785573083070587858107391038025936125889530824814473138458725017560185098107935525057006330469189829591939279586628383972451913094044303841118264629715786464985306301239577351294224759690044186078873770160719910841176071445677330454527373054022346798869673785288620711382851295025751169095339461846877740727109555662324014780226775204973200996412967708819906882486403826877333264923203379880263498535757413849028818880982474863592259912786219081661895550907030534671540796349364666563576109346601380820003658898324351939052226322750466554870031891453051383123483780737955778340310407641171217653269434378940479722685681979336896223780620527346162016854950002266001752196962125374852215136673155872423755005062198598258734351478823501646545903047222510884455775503920057828549898918377929257216905584077701789021260751079096995477790534549342689056718879283987093697184714166006332241510998323557163952773386795655898282039621020892263039292756860997878609383821497457603816886259281211582663185322684713929818929621110621782730678246086195585365318271301435734239832100323044561356170683781863695136527088310219200308834702742940792826487240394227676679217060117964326643107134603406837899363357479886664447830293644008795904695075512542507696669745683436874332304825800926948594027412821917158321899783264706406039264730344218818962069913626090452254417489998646348643712994693196032823820269597371755727696919348711582066808326753417393271877069068777925630321390300265732286773733069940008984629184392589659163562780999982071249127361151078958343998926440182642864848606273518333295229875359806479805358609844238873168367567474417786044029041693179259687846988805306749285950871788936665265794951524556592211585157999436516077839727015612139256829834447425319717360145961030907835807897681450614078756518063394681511983960320088533497799489729253010863929429564490435361410009785088603141169784410876009431541154176043326655059215562373993865855371504633030184075598776805615999988465249990446585043194305023154019114134034633790383812641608435796384940563517037299160909678201988688776976255297567640703326672670313414816124373372382734386235371418684832370462370165973394678195738726410590321472107290163091551258528914452060634595676071788703645188367093839357483161451832410407678807117326746790999502811727949628026867506028891880488350657872195090434343044639837938048622395902765002901423674069014799914307280579210434044971246239515183678227530614905390041235328506278677066269159996888122320196616857407091624414143127019816365089084144938356304114536329105628730513803664459113341302882744412306747200722925724506848419380252590777437386095923718307090143969046654144921665947836839610476612863130162811377383720619734754916522382219172909033619350815437731877020445069447954514374669880265446972907520161762683062731554365340340721001955775061275820509904452120602110616031113385495335997068795314941141386878186286941856822155064108135109973780420761265452689600107032663719954507780919985089267804126634781073224756325111343794657597210888827000908318296319350700750927332180356878670118790554735897843493370863674500255275925442002853910938471935863065689129355856258612598967745688978549517588024583552012168908000714459885366937530020283153894831517574132505777831974811176605984170797594769595922240036938058277146772389851878603829320408088813040484282797699800416487656673899855064348879095174173577960847349067966417746932028692886023240573323725573352309167062847138938240897540297991005859904324341472431917818687555620789838425774995794859344156174120282157197299446012194482072800242624376881140884955283161125585586903189317464837081947550132295506994260843127301022895976628596535114455934841408931722274127476956175259222793227002589057046564801850965876870785773907648441215952400305421845608714145397806386526790494397700457740510465001192569301359411770731422793142557296240858587456924011422466260321048071894877344358609192899769044468651446839127147873620805694104919655832788284389759242270027313563593457169200946350057877052587894171952803973273077725327895929893337489489315160730847958697677962787578472448375843292317871066676440785500881868406701445399677150104510007907822692576420306822684653121297134078414624113285201347757745162032061305325967570655236912419491514387960730198809824171143876729258799026835777012954218787928372979292168822342578166089210506522899546797789215673427192362130350715501583197637917325126010240351352143364717663412889662517153639274875730704911113651191472727340612086067185659693972045042644297401796211292578437053691416520172621582826538646960420585244601780879472272454006338043510501955410914051560199158369307046860855346971518880848763503309020037843282247031211103737415274257951376662864588191378530259078947539022976341274492420029013961609462465510209731861051167679891468152490590968062977918454334427219060074587269143068746938173619453674059765702305464014522131617833765166358992336317343562098244649189195590437912236206923253457914584084772453271360527835154870974830970326732163163966985022557424138337515674609258184093806842020214000475407372533247660381652687262721397902391335487163529117621114966334653450566145757327340931042446641368169643057635215118168087797378384305107059402388636206052126752482023464240518996331398630392815687441118269690145575113392241264177920150757648744756341319828871791024780613317435963903441251533941165151623879591095741258013921027603645043686431306474141048242399378759962495160802519906194969330432738294565297851275870090620850587863810503699788279000035776493340550877634205410275158057178402740677098384821905102324085704633478084705168483808852572852502076432046216311903373356779409791956717407542082928091234003271901582426919818319102723983461550255191561453004025745595078041412126916255454997908447408765976260678368879243803773334521047304499281845468017304047532115670048934849854924901225596982184291126105026128903985596694774303685526041814180742264436193764089911585806842683346216958544573686955058057758130603883366836694491954476138781122723460025485165607000254603004224139907034018064632710199638657317485390644667233049078218013409057695460163494107597054560019361504336818646940028746158076252850221554648560728077674774351318366827317113626372503490221439156502579254825166016248716324271170790157732706098773925399985450804030777507807174371118707505595808449137470158514454090819492194151069223084386212698105443102354189884745715926877529833356172062446184552728410952867848150101644828955545117850511688024750255274695954640631098067561728105588132142786509058316014224611074109182154761265838699890295731764466206282528196248585033131724045828908176558539727024191074211045040651956276342322950491856000733475653783658871391042303392634824647795548849610555929882032915282737002336437922792115677706491140804947687558217492222653635680860293863182033679529299951623200060762399498364381997413549143959776766225045427040024772404637573144918298110568779820741556429150890470514157852454184959486864185036655751195264590254798024391763937473742250787447195982814289747141696524479504141471298512956674117529510955294672521597285749027090711416773359101813620104342004601200839399020696597089494751041506851380136606057353062358216341496031174379895792328761686640107057067630611223294039078981892793634319667454558330561290021424956882286668871052837094899100974651126901231479892169740503928605426358545266148728387545230142116372272284083378952948181068840101758607910633976894580619717446857619419370408907500106216785093390369737297840908429809475606403111643274946513379549940967841378065967252653064888968072364771091490525275039701129075830946334050840872004679485551084554477060968220966882487726426418208415083334200885967229779216406112645321410750795263016351172675387248446236905482046852087029416162031914326454525734580824101953865187157542178310264236184115953299853145706664957408643610120245698140611115127241178030946117769886117644043631523200673625600619908379648038110473015583055714877128136946594665754550452267505709593633830817817492945647178196083876289266639190528067382548566848639291854567867579659951297774750451472161198131469286720141198815227232153781437262716030005390393079158025467715725495739150417134436302362120967096092482150054184815321260706307882507411649810925477890450998141158308758854897736401579145625658593483551047691294431905464751421514126745693983017483969660995577231646398693361626730027642229710935279140093912290730902487082496995125038549326215537185844855644901157944070247892773753015325242985823076007781508968325135231984518840649893214474327086541164017073124219059053774619765220481497908898025784179955183138315618773936473700926683587300941119926393828055743771910836747578578047220985305466140999121013934581888367378362747949094785116336586905076193809124382181808770097454097995898029553694978673700063770505455224887745081915629011417079899340167132892935788464653486605157326172199352699444331543138814057051999884123166375283988557454129263275250820549549178631165874232659470505722131343008326022310840913749953927423352510270633247593464098552210513304474226418997130819307028875683082676295860315814394204085514868166153739042002821028041960878622430377313125427139026437780541871045913966291184247739255716986465897734229863683721204856202980748330234980197852981119818052307678888726684767302479078345188255731695882749318702759341471729374508417219270807875053071701444186933144525609180868948627741070570696834011983757452056414090559458859613739613739687954610326040839366523353737837724191848322980582010069027767278852291208427885649512494686150244410473883208053661248924771929776628955165237258328597766769356074743408271251189416840237029946594951032910960614363045150424895250631740993246184717143676304616234510195890700183141788428268540397528292409759676693997484839435786954017529136031303815200981208281401483544481231151261661436639337815583733807478613380926351891809418729382439561317193339704969159176315971365396332375657790503176464268707837130824223690566043519098194409953966787704107517168539908450764728645547598664611538950513881409604438165956530608762950266678298823923573481082560732755004437529911865227309363067917438058678705008200610509629787656487424892209230244960314487685891187899911457876010619492743928090823792555640124215235158847486986330542509663588418327823384446769954885160449708149081107324261822929852977572662193563937259684242735744451912677520385647352441496914338034680495482032001552005083383996204295076184296863636307142948626604755836042403385770937463726454341047760459426773864426868428435380284560318982744291931738096924926594391151458537143331947682564516023135556109859486341031637549837048896323117376467885355537551101766036129682064707841808415618335577226460038523736782131548203178248873007187174880326519407714131424478205589569778699592778059702696121974211150049877008124281020677752455630021726659814360832536146783600363873136952712611680105038189836253417704380438482586527170113110704755277899540317676238129074546268366672900993724852818799656313141800636902954098799700023435521104657403302491482150062667668694238434112434455101054739903629738576627154707044594487521854860392671310181918295661327034899958422247471966233291214359635385064214392810747268384340962193418995476198905166037562681936975194706478558071153031815966833099383272112023199237919056592960312461240890350389346574697684224738626783472992595292758815431069706837558160500217525034124008712512178088310726751969761326711879074640432974310945505991533724538228320084884136038646363786325487232380322016288478984915944268873674094070017218427129413354769883758042157294446204837640239389825472952640840306145440641844711938615827544738530930760578644783657601406917052787568733933604241817926567517321366705499721441334732558572030437596229145804080618616030053570740039117236496248593066129137060045304113416782928677381648365887491995814183419663116722579678610669442359698904715922320061141859054093584034903267274583279051210073232745872923676982517079905218680659635931593110045194976672362594793120637771559893230462060927943175817972356328513475002919768238020026560945365879545772391246079755315367701664401701290578242707053478228190001459734643114794429653263286948112353234429906206804569214889947295855851721669400171235965374645111080736381719762057011064142002796033376481894754956607276266758598054082240981941272461477886503693634400315594416872349005106473367039017317774445315676841225322585447158397973924830044574857935635716683172143040411520675429590691528022761445929025854069863714574354865692614747944965394110583817082201969014134625372004859318294109804862073946464999023264858114271565567846171821571254695038486565874919480247687792465471995758447168058815767880240102016229739310951147912984475070335411904866168025514083947657824289532675454624340261063866892593576746414837196590732555444709243839928454966131153564941921376812205339271049734813256141640542697538806176591916600487340382147752318618326031978901825757536010719706641580499307661994107805646198983489049268026691444965761137439164326740519247794648791290010366536677874133388634176247801837025492187072823196078561743299099942010720172728697726982585395838915860150872968295969588456469244148825070068795796377954328792632439492279527603700065629722645158546854208825139913798611217420387896989704675128732429177204280145382438700986525989008725792267487511570759214887792897669699968200056291758063695806637444279805464253657246203119693258753481183300893511345913501342586034699684747784231439177650782823072554426152125972194530091121662929989465120738134026849477649297533935978520852525878490731509866342045317631641551603163035695007129620099962158648834569845579079884598967034874052193622772643146962571206942800688480570853123357448191030376969208911869840709735551991085616545178172207792201396947775333308116856383504717858971954030244387500307300895007636099927360935456082644481283538801780933232179835174224860901530053021063998218611991250794740475999732149391821047769190355535037447608806325072049056271045566509573230773602526995415950545473535289184864697221321774802645520031799641052775617363921804300316233789081184883141549196287696102416479690348185928084819701877220110362662107115025110542544141115132040465356810643806938280793030298748945289676960861655818073217700016077786913241301912282981448569421263509890320196678317008306874159145035916353463956656712110843582262391878586493193030937657210373144605787132214036938793517766070542399095924768572130460022802303716491310005539682691055534392002626639564520865566830737328789648197603781770351666873068999719513704370017567560018278235508256673098282294943950889807010505509650991533362619757631026440841117972141288243677312732934502096674539156519551497668418890203672956604406106724358410836121065411894691801332542795603156176253619053792067107459438496032970131238689073908810247520393343086325277623886093150393439398399662579610797630133644785900000842016379457626555092619136400175079909458918636419447742290739799433712496085440007482326221783863624861324513467965081504024586119981874644165805020180848984286096288818061041980743121183066812648185402888256883512086997690082355625636822515331656327469596894540001685090163803422822780823660019583156192935981338693042091398845461618558400117647033717011314243505453877490934903604339156481714432987796156970477560881687991589177605266667783788974808883659133444869288426712167258291886228382682309187430502640682710805862342813840708946414311135158859376727469506100186927780512972871556843951251320893659086138657593261475207159833376315191396966609849441479132772234517419519104245504624925698434955178225064564878635099411462717660467905912092850716646579986876448547936813945656892828718350365268461499538968339080359438228281214877881531460675423162802633999337514911964849681414337514232825631142488197354506334891018586268055858366358581033664974249178876409442880952292352110871426011673958957544749749424700499612675556535055392620199084226542016982607365301838808267581728235268729417548429049933848511009292989746669782288347389486415222656410738538469846974288845483113768158710992417390942880422983149922060458666711123689218988924482653588678419064877402751035444845221077021059518031613250945488419546442032463624719749675364900562828747723100236098038377462802944408011493974100875784906394914876505912913359241523719407570759381910774320888825167242727651228616109543640176523850154442083551216235871627885883917126452287001577974081964238389873340735374293254069151171457579082503780736926638202351374147824280363541077762074518400095170968951202966905717779869250925984090517605609390137733938590847178967127604617486360685648744129310835360392550542302631660567392101492064946887783337358642066684999639807136124268650486166282900930359634401488221571652200425268755258485578917300325595115468790854433543699872875923811190653646846917680348976144887893490099844350757915109910882782273520560938257566619842464589385795586157840109728396324438621977671162416955813068468902595504106906069631844518109021067704846221981679372320418152078274849197569234864028282368936724842777507363513901061604056205847544812523832521339191233901671173225394873868341206075240745705526712325083497794599459475441720502964193919468176972142306553888614483638886797747431665837028425273448801912343411485570321171788305201646458351780320172819383742958899483981706790915248166882715927796712531815075496203835660554504238817641663445825541895844365722686134283894628048245723031742661919746693945981321973038476282232112270319517508987612188836233131192045902808831478750439772525629422139773176093322226098861128936671082663716176226736046456345038373838776232004764950712681140309519876647758667521579388650817477400187775149784152562679241371688731135676063763515786152173381879072991457936978725990676986500590292240223621164683374589137070683349729885765652510477198633167054793738213727062411053354518215580134641716547351200623461404888912006211732209344036754984525008078384310677791378834048788816391469761430267288809988265245762337090112905740559256931223480994188168470243038871100030908944497466372281597309061906959074314953566566089544314791896894388540663812789770456062133258146291897486272144004941756455339814851794003371408558604982219185038990271126478121229004583555316324319299634383001496043671158424971111593950371402835984317599088038465814409316860346392663017596295987278197954516830200443811598128431150688652948481960159525976262207836878276584077358232426497362956794138681251044272359508824930670229789125621096729060851693313777555699341523509603561819402614491071188529149162408995481996249996132375269982076865167834952595308436876878085889236262133025463879304109233799750771064716612941839670142135098426334852539815772247364660593069057962335116352029805762003614986778279838656437397716989434540316010683010439924611696353648813364530949495845250020553471296272786914739669920169820885058587773961754431027302906328224448278171302123131591825250284207472648636449399446637396919694403956742006019052246695130542275696608317201549402426299838458784430109241563194216931311588109680690207202287522953867307250334167588674576457777313951946500989945018489131762849958021150848362201767518472544744110330283018761943471855676287217199546817831244048272018710770072962059014241636882003078910118150175680399904386981041394170977786207657708334076666137913041097534985000806554486269540536729700120718830079226296619382959587557339513223802772462571547980391033314172423616013618820760302372568109296589552436485125606246707894785543452076844988271653495727389294995929232376208649556102781199003039230355605966057904194689163359397500939911794083497911383610134623928009418098779390958339860155965753388524418715997311928597922372089523758654579439072873010106977182818416597749452607539834047734041243298785332769729265912615795485729460433524163264859823581736135823333817230059873945631509725622605612148432930721247740079591614935408155679202167970395633397361183508226019783815499502053292231874193658573007364641558347428767415322779957193979426076765074522230605151489891040880712389269654339401086382664873187370386034319995666038797174657873124460855243864325487312950935141655231477923108860202450254898066993008999457781359655305530905731776546080543513215165124362371773234663403431422340558986701309936292010653118498423825559979964260451482939753408202872733563134551373239684835352670941155588932219611020847622608264007368247654389423338325653477590584546461556537542038094221460619810267155539337607803078385482759646571652321915402829924313895710771495439782483191699132585740724785543476923050109136694794378366771895805427439521765747807413324115287055378690829213976576699745672825117667904478332108375641207399510305940578599173473872982413035128496423928883490884031138208400237980519012407457407752333074731592208435676711342244689567681212246042071841308522057333878743781385960071594619455375198720426548809906984021336199066849311386826921616727820295042251105014601837281501605459996323905583975230515027278330065801836655193058723250955950412939682667414297666490159985891427514529488847136709005990602198485141252359112911788240849861945962460214556382603214822131661596129657139201329829196017277285960518625665873463337331230708185849650364890853677318852362977393730497769301427703223683645607970858445805688196616588640375739990459747461283216665000713014272187821859395477629370192340617509154653777031500962109268951006121529736176382548613146995829801243931986240335669171741529391621773104929886146355575279033214777765759054987172987721680071309204367114892463663365200141874507072252070387754187016315881846186588502469530918581327215843316470856464286725362933725639779188572089642991657514494713889518816515134633196572060908394128210245767554290378283127073429810348162265695059309700275146824379008988163543594377926147258599219211671046259613193120492383307683681358100071709571521575848157990687813505040370289695229147822589629110442679523029592084101872083612257926469323210148337946197414354229030840513087079339371744809392010924948761103260817074703292337083948916243254021529446470539959420641547629375589190101251991826801082212580942949054901436197557532534658677202691875610209833450812295249442279550185750566408136134688232571521401191346380712301496707021200107334815793990122607318124134354166743015877979263626522114439869789499677939501808608062791171945478318838023172121458067335707724654107396080063131965092142369882493500606299087886830655559438502413371339447617176671138467809618154888729263734393322551386672986055955066177352481309539605504519233293104375963964006942928493119658285350973040852635046813522361137831391826141026294031749824738548730939288308237581153356897253495547749146061840291014961513084341853576635516511012503266839270786433155701403157434347890602956635309422005544970682944936322553245708729793374310280048441664150904804699600357753196899719098181093482576647737021076828942089238855097547365296449475048424103318896167266921859769449515191329354374532208546859557380914466166085752714256485728149109743010832823351864670003507111903981644742466899664679791597525626966553040929277896062700854731155069596811086637074736540047123778003148984796502784938238737836707927860431450523382902267711948311061925255503836893920444185097694318226268487099260298736033638919296274279996355037410762894155896592774180765142477931370881571624624898732808577724027874407746698429009121047082445732959308720678514854285328646655551206617200115653431887125967397059034247404724259506737755634341691034081713545995247616389562169063907090407613862825154737018562813107356273651841172981843758427911947683361292180621101545294151187438776396522985334011122848545768424963139344198378736532094714650642234208276121560598918437580904269544601345646891541125553049884451570926777274397016114108087466712855845063853930984368087628172656571310423410529223651800002584578664517227616642838255010058415144665318601053520653291657808814990031057427350409995255659645014174511032261650205431538750948869578695050055499757653668618756432263234618883091183541359444661616005631012737450093880099418304034055305228306242457284686463700565795406003595543738278691161117076818578895031108051424054380767527942163630239487320291970845596804353589677698819837099608662842574557727280925335448022045805436878323237447944778138045718742902073350110749040818355559323486151636384346697590491700919133269622784569759786467521716070044642425334459871206655389473820403241422048570836021084187114488856527211756833592239357895341980731036572890765285509051140975232677385554126299621109971795789364672550306848248220258750724447531258876059784884730133144977716942022143978314892969428835199654873136676214268533380158801772409532105396316056810279237540896589970983814070001647080991118089100170978447057396793894962931605590554695616180772869539795875948605943076250487075387676715685572225033283431499021692925326358981788794631578118260646446866411262411044703898784112307490202784730392146732979595800721204567283325343312274389088378333331344709373026891999631605023062664912250200857757509894794388623735796783855341217167435283586785812763238496766847855248579751699453716435594884057209826885179885587566955895766029509693247476030022704815839189392284192034803309171499209590910418017410819358282449927836277948623352462818218635778639415150966464122883123089158987437575243268285112713668418618156950711323968832966179203012937164656600111002047478805071241899487501648077477083686889478599993230863159841156990841635305817355272000237442490398575584323193984537794992945811107969750891458244044231384276505104291822846811635951455323490175197440185501773872206605839630191612063928020399366814241457108765004152534845015486622361274695087027562140925928243091340330940897114711563755263657098922289649545594890928459523132432022739793172515440628843817538702704285743174159053128534101322670890282067153202281134984762538060249526448837169105259016199299238200702292408315078550948688611988595551783236562915495714126740526924263055861902454963065123389791270219747906435745719481064175812057144527681880307757956843967409631871901780140078408483223261896903123147326964098550720463241212604269529519041063774338237699697517906234489441886798783515802663456173005433403849041795700321658068501030318349339252909586240658324892026534255566904029164445125649044599353594094769045738150799713082138731781166636413934224600374102487168514666922660520812539189515847062835702484813326512044742060658973432201126862147294737014040983571961481745287097726377446608466398690108172469807285358170265351181844959363812795658488172954275275510264505964900542602434804684103149109761419923844962031280531807058090002004246887260762710595444894006465330055355177233746557585061175349181138341885850722183111656215804978943397709278138389017073527929451461364411298062125792588135755247652010339011061685199183751842071902238635322337703374040518318076889401351546071661917502152574008602620071910020433528355996253196957614955348082543246009349811350444513842924161550459103128438986905934014871536001546767018053509609524994023530893176062359673068329675580074924292531686693541996965000630516586928588120848980897296463772885109408344133505848077978901549313039403015085531868010021725689267001807505951667699186174550463611655280439487585738421435582301878044591577176478830336615804931012806442585818006121134343456824249225712628964457523931678466992061631868362934981782800287249349053542007991122421020827344003293261371842367590882823037472872274815655416050588491197483184775744304196386309488810647704776940533948803416539007239546697587283562847197636461224851380129460079142261983033515656470831228831560204597523883108749127203612593810466974115776291432994987575867364712950499703938776554899819826724968731620437121788583203263266814700983569905225489557249172940707769750140362034540009962554335219214905207374504820973400528595519421794356767751522245103793425092707414957753601722278452969562716702196902076290221801048980984697844154862566867291950047876708503370901624043430363780619684998613181209606949645556438473215881619897805154187738709583159201215113576369905883288478081506187363131783120801290026396726863941880447419056367371901736384276715298101998929900137516104968415526094657465010047881483725376943751020721615252441757651813136152258701913843364019455239103420979618374315478912202354842739420869052336531281909359110226391865656640922007284464692408771847820776653721914832172784671470432652759142686553880232968795763774773985659284815534937785287196223384615836951581200317259531848855030558527210529062862659131107913597414342077750750019520064825912155054591926868460447082938625589417748737599554905597808791447586908324307358103568419657928044104495030652533264509534944692434315345286074340514776012713035199425487607013436267241626806097097553735185608700647566733579744688198441797104497272455066894572393563159688628840342516510606859408941594497412537410089692949619097226085934438198375122412753134373369170303293761093639898012080635400373302428558343971893422747474506364071009463785565230658512394886210949672634753376061037732185248108765561364040545521036397886268372819706359603533499146138332474762946647353456729478340950364018516379183034937854170361011991608216259207619875903009735820827937362917794066548688948652257279378766959752647600895741431236753523994033876773074697679834629961767414018537452970929443853176032102576885397520319733607708450256463464087926711411584703892448864229263227692823978130577187485174689161787873712104123998717886773484722094146014164209666851075897350721925925699987089986357194386727464703017898653214830180441352933260771929505098363853710767963285987294731680182700794706024988063944364625825243803753078299355624799449668842471996559985976582840178243590519865907864503835777442916248979076427093263081515030651646378168937286614972407085792599262005664431840545790049033957151732647270696549398478077979369411362453834720345655186542697203901412860333719468940873938071256734493743500655978126995786167415478501842798387455430761560145464015850930319711552216757543269764858513925876217342652140706190795555077500105723165153929563452515760758392124096823701166669210759970889788061597336433794470390623258389291150306503873261604988408048713382609832873769194228602950474905960171602434824920029293330183613819164061833906060331547849847654545589583743282769801679339798018262625686444261369752311860870239713495111335979921680608172461425315495214819221542794669831525108426938056073242468493505560300916881389499859643821487962121041611001950426561027050495291763003421046887601657761955638205044161851953075335273883158876214836049585231967007358206017494125118907900391391797282214695787820629127523526105801613148482204386060098167702408422470362786473693832264023824958465712827888824393707970280323229990817561958584959554610719283083149861269559925335567068237855568082840175546530886408059478579471768468487618471236912232112961711333735955773307721393394360732218104280161536852500595055405704467657815216431529015987055849231096116832337667901015695740006042550132915950081616881834174720428042927323991349110298349492745021244149832171526489623890732121268745047042195072628457299012484225801616752421067661838014198889045181155490643734978172616145321033149070692742495512888232542723220477738108632547756857001122423814390822582147807035501054955877728102534144568737303898214514899138911220766246800184228191309445486893013010960205176694578672453142252323896825614647933382022744108410496327067079113008913131935315783753785439974654985760105668609050683119853377592650019693782375277869588806751032049162061944500624879524042401404822878769747256057276389298467681917007133766045272070969186294877552712564034834627890261907136222732844060863030206818485752833909464487509581149349949055236662308755994561979760541438821695989178952874269422629468579671972977548914231276139821805106110971017434675217176460277179949630709404412598676363612897872837687856457025372645455133080415116606351293355274748367924320339561631629897944334056236243128360696307211976693544093371636493937301677484711303186472274207276201055715999038142826952662625835572350994285655506158930170712034397125579690616747948396925441483288083405881696546274017899415836131134556590569153781925567899861008885873516305002976964994047051189187265164077830613103574180181259556995046083088037841245712719395077092708618483386165686259620739237876470272917246850398478514588468331670320186715436221118944068917459194638030417551310319255137864800995530528698845713225262808113642766577787686593339039100052948586502944886718252134813366141556015931614183211098870565031847613996552657517298576791385953964694815338723238879596695593970739183563506088807509481107901093082906569273529987655308202716951666993867357194375851969640247858146453086653361066501824141494874887726452860037597474601590663707779991335657455567806337964464584861890373632948209351938338573238697664022132482635649882616928795183804257612998420099957824311275914407867041837446335704967535067419293552145398154963042630091592078280330520963235492543369194813492491943516929759472668855981289307653033285072567774895246315281236093639068435838590176241737748020312642290914026398931175900488593956377360498887245416202853151931765162936216925400056021330055827419086107703187092870827105921392241364679171138085121675879725538610169567853211502154866400589805505486709408842276279940258471228003555607611162775426433685211134715549206809964409674723158082003276632071788468842067568870267209607760507460500923699701806485200797021736148386571313973432341034191364482145963028067179137936191955097246404273469163037767771065251394805457215593876335213235590463024758398039137006919215195003004772632810139046352687024563010577935353321438177308210490960951209740063239636879096674838949129929534849373033738576690052369720053013611614357454611177935802772702520969079084429806838161152054113707039250270430400908767863979074519562424385225803208521199381819147714326861854454685683419286268347625010236780010964539985099817277691895879157585538409736899352011273939208682652225570303749749343610912314194571658569878739019780814482841245946453199141522912909008387270360776753185830888945690680010838424289375765625795760185844072591523064564930252135032680883080475470622551693077765655387956395771584357645565771410953504754968501168046261132511460910525776263608937728997291053065957893012730476163902608741333532818628702310647572352446723391420057871395618415643852485453833552275526493257715613312059769027516332121920504524919951598946086343750303397512610924113350003702855840905968584468340889101762458039269292774788939936457038424563974675614038145791329933426384978140665366445469050525214617285212013527654054803539684211984383354540859510487274639005876551995748157559289746821426160286875024446396160434783994414987338257426025602476887087065544604250437097490390805171958466062849948983382340130148692963760343134204954129824951797034249991440629498370383701921485456586919559600704303864274981187255986600227750436564412370998726973776204636073685712252351646493771497713859795326266344236122510717648154560029051924018215790590293507135753726359749355196570195545848488319677440468796830173623508650467701533546109095632747076698231996901086822254952379103956063947543761774966351586164286279373410766485762157935215589845059235492241686973399867422747285221921525386788989747483980638770460259485828273556553417225754398828113137439362965007382551498992363626524588518362975138478692839953189716377904883526619967537506330613302272336626731866302389000081931076947974650835365584737892092914968149063713486575425551410140293577816702494399561006420529320888546900757527202234179999880549986540287520019915578780836393677620818153068160911156322495565184876743771303943857202394070265371235767202528970957558539901966051715808956842491758042155008065769857503023444949066437868749638235608507792501380836555894134518519594165586114864725766338630488942902508523080908603469711976544844429590812336038129204713639351330013589954317197347961844767386106375193747406213251395513257826140004512400501122273962622983464540667616425967969316525286903581518621102835832817378663466697282798759743438099792548972383191187710240162154012995739717364833074970488050020195462371566634595614628033200100596553586488876867523402550672896574603703992349235444464938239929344064950178667587160863816468703089904429977519248910525775459663681451649983726930794019971453156827731906257226628931297868040724099530126362563605113833145084482001385939654018749327831507447148291595463314297179286916630291681056144872794353215770839057827577922190063038969202289357071760926082889550936278177650947321944696047798898083852401911890001799460242877940175604939762537998290433182739019097319278485583588173629164619940826641289402432334160216737157653857837102639983366151394765987346457399435519074942470369079445439950614440857567541854101138986538039756395203923193836193213382333004599586579304925513585623313008916580441342425376200048628025287807480067275798299686873159180914683798942256022298542309916427429352892440735184251887543588586275216079980477739820445343967689312128124680037116145959924627834300730309632493966359778664427784496196361688895824075701611443780119896113788510769718419797584987426336115956066914052667798697300265766075123694853357206619742661149687718263604501886145393500541581534361039488581201957750434888928572992266077408519066831970486897815938679372021995134640176273007179300569693821953984941400890745911044563462965298503556717565719002094392681381914652135131281742720696358568396269586623207852416114399287667540487547558996451415592419048826765105138897415286407987517415418590644208787776757612240501366102177953944122768238320641728463160164454136644097003754752780868814004119838990156181334767083588880957569085413762107061386844710641493610765413960608344571828100547318547428736620158889400863423685482915606495808693677266555494247373644304171786746456031719173062446839720169235653970532557932358897491981774311106425874756617776954417150058796605205385863497054635292051872335034622179632308982759977106652200417796300371579203733796082639185358029172113829764381339504124920585161400297336537483535306157696126818441590784921144900365347082225857328992490765778677991828251101788506029566279946070264860468087034762767794803274950541450624722998970984008302656617342918550487047387423202135357546754892526663027366203068755173777430773099660718662331013420269596698395477266120174939997069241753366200806253260694027265756978081688873258390325775118221509467569648948605324296097209220643961259363490193246212472838740695049945933222194508863026275214352665655186805667558518167013319312316136511597022889851599314998689298098100099747247886089128815255564459942273892164809815818996217692538823187834297008193336633233073605484741041012176215202034647136647946721317779839221535773117836823717628639807130907364117580804961366459034552925119961387371737053925479158799874085743440157811563597244746798103414785109780751070370458581431415881653969737386400752714589464967186382216035032620750448769325604154910348338603994503760630128213117834965846496195254053712688696312005446432722482009698331909552883164856461995551558029111105529579848347642081195871148001624287252962337060576682495795444802778095020502077180558666756504824507631855408304893602596944883110922463941178541320546467260625701027978647248569790629077811914263002323652988919221543955529501851934086486783324360147080748978125388143072616722799828609782623016650899610337555358566883841392635274634467931548823911947085327682085349868387831028208064123862482167028598616252046920316685349247197043207053829608676237294857892302684217580393030487569924090744889447275389789557915099039298992469671366566921784293263749706734909524192982819306308099894610902885715410080391827565599099994951426084983580138071965890598201005142544465393179643714867539813088700650226519664956952521898465754326219101428370013875405370481173057385045074870132047798076149916526403756530661402391258745497179880509089204716472480038156362284208371456443893714444097947757963439405746954453788393568474930686584865650811799315657053882928651628941987048471434932387278700629131687413492338072907746055911557534093573689505567771258903759981942470216171387529458357554930102400552624597583791846404859080985778147798271894887622946474076522726109069004511636684829720459067244995319486597016241348080799540535892398990786689801451112103560651529814841196352478149419635322504615560183154915890831601797403714051473841229577441661102320449930982811013265943725676666597394140851826244620258612271868289686482043166608073986130068919582825961180281611152189120428515667463642003097782231514766961270651153113072382677355754839506986195490414561495292686453589961091137281773558835497183318168413024706126406157565365161508745725280659604682021724509040770549304086550793821590821645345159581427829650555609635121408724987777623856769561335858981720789944104166455959356190965610294358357712215454267469317293853223572450399058984699053922538892555160878316573720296902762044658001911270441612986732381285715977786871497373006160031721871769319982457091707452975213868876622799407515491862290147601397713529324956128780221653693282693783232113965416886941962492498449579045438339619782717310865177145317443112331686020626538689840062918905262977034085762907108625498842451367347642762441465441171767619102643550967425049450972710184596938010555874755208790413742370575977787964201215018419849831446256806600456962873137394485763763370366584071630504500427889994354275712129941964678019434415240217128106429883113090054167082131568389217332711988159174231879642202583962232789529727358867106626094406116571708159689310321758815519363260047144098934049228472020446492587290265265561306080896419169518461319638056763113393289083623622772180085038684488622012853397453291740285543767670198769599498373069949425014025554174055892019628926354743515946561069631152901571297117209089989617840947683543680500254058028655305821845917998477946057129238356890210486313560195093545579360520204580757427742492437034589112211842586336236315168569235784815616616626767892740304003522341715453387590083767867851463604630658254486737952918083882257270958629914756462657914871992487572399110003021228566475442281957849992003236638199655947070310589873358524079747733625926262362859515759450347814308906564314311758602671240911171504459733951316769187101648015933433976692541549320934797889122033190107768732238359934715272110361795219670966747460983780975595070211977795803502702893682687017792040588784871855846924198596249447291847913346059241197998258414186752242538575058642442615563568908163564586547936069772879512441090652063360525518958001608055465424883712754578560155460206826538216383342872736114478532857968985661963189086378314796051030854763954361194293557437662076958205177577501819697855558337062440267738106860966678425048163466714993183284944456784431526565715461566719126146841825402711919628748908313657117839924929248327756655303695753287818761637351408029345783374147380096289861895511289748447247791166311652331365394919196741969712085224978018742846910850561694227400897088670946557205473793052125615436725430262832734232043481347774934627635148604384811347217091350576396167184107596722331876372659426850686892248633582848673371775129233358380243972194271945900615517436027368177595043894306425134506921630830915377924408003909820414494209392454017557880351929761051848331482940603406881438633562675457224811634565796199090507276924454396371919366079481805401080123434056986660725749578685397200042957115143517717263073331828661247131394212318246018486115769513442661314642611746684919725650416004299413225496985964917917296448535309224050673711863647238817939529621831494248539262968697726339742413780857992730090755510148074114585688107168687728893809470584815251514358528744725368485749719924858554160541843224831792298559283101413995783784203918892208890613189314361915593348152631194938867686913058642975141030734554737990462994645334686437697136300149271475904945447261706310462416947908643045309625480903087802114950943032680637652672937778899678570597018962606358856328434726773598750737693530715744641224650739135864665927120767991701722278752797301650199419593860886946716479776210768369497974486663379354910715817712157788027622313615496685755090486910830967879294393904543811688472000886825508340279021026929102892065529468060888752409921482801226201031241657884588165937118939672595539166994726996194210056797047441185573873492043504033766388969976794507042647028478787578553636558545659702300384338444128563798200668087404770663747901880284621936907257843669565195762598945997491435593237611290572863371014000263373848218260268181773504537018671384420853453953785844270786324189166119708940169571699324546449103504166502092435402882943250782573001513412220973207613107527782444807206137241782737870868274518763610196066298225078283238577425855055922305120542680823487378152081320890527256973338732231415422822490095043568978874597912536380053470700124965540192188308672290381221517237069349760292957438701039125486618314515735875431998472651162362838445131253859230663704697925550505494991728416703499490110255819436094849200900534045805938999927767311794609930387633894894468629211876265581686533624723723449902925261651110818813135275278556066179813858528959216206188109783477502909938416775554603720852599734859617632488202054948574829229856013116556580814338565568133482766562986828834837906956052265498502905405485259354795753697867404081215982524647331146819228604014778786599656265823070104760849676581806098977973426421633780747854609901357193128599452268261552298922920385512576241304564819635110977094596621086956516169225379378800801821561526280772637860819398985070069763055592471703873283018330430992977115469369498778522167029680029584840331071000621889026979492517018101836950517154308602407174379914246436307590276832615048814945621763070719436840827175772556297795268792991846441976326048413099288229150850262779256847439405343444159920839607428009289806865378218111424638452855563137187932714825273299334084424497013801786730554069771842087052127470583691967855507275594246934242834507421409935323262975179456034036325518335736982711508262561829324458676894603550224627592372312070417478921371522595935957819128078412223063592534199696660901835412059501144725473192020689109054653101623299721860604379062533181074594711379978157289861842864188485226255181741042326235845616649131662785435378071095353709700886246178096636204787779679263894636127688427000641639225866335393610955510536216265287702605806454912455853657121113575599046599473529592360883661482317640875771139060897022621804345568960479277820239160279682766613492817430833933636541542679520167904375356051184786187978647825776311406045277610108077534559553822340504394397580615788135360296877247861042656357303352857246010942493652419381784458014840328302686319408400706928123987080682067324489488263808767336081616801760731167997130494626046630164019644830885828495466288408338088573551569474660831545717934601350222506492483273846120888576836114306146241614915346543766797483604165321885993583233169790138070233136873649592324866529282033600057663590376207046161469040367523423010259912403782968616252063734187969599016125488874964219531005310865032729933919418296861788774533123375547661507463485113837324012609999917071785476994772839340675624795903517609339880241553447860843327722039456684695841104328486463991621942179274399767854056674661075627907853514585302804260612003227960846394145948324459229356591361566439672340053209413382540219495840406600996903067939040933068551057554181107986180750147797759951611902122088025297391439250664071155113289255980641265169699938520178407869602282675222894766733322519701139271535568766068144073036072020101155821516057436498231770926644635686941958586966895522684543220004210010126750929994766967268458661929377854553930226465201076447027922096174382031274949287481686113145692488566237708599107739491692274074376582565937875665985965027644323311241135436198483806645651606422175054440319373189881564037652923853870715323019108032766303180926677346169071587880940818436868969476190399848528493217285173201482473329608879135770231566406136970589815760525092015062788042977901697709212536042967850212786771414853998732687096600833137259075995970460380955584863790963173847674736917096735347540465561815059468585548696530365605094071758555089185730523541582314417876178353495437392950632130576880651795731858775182317810730349470988576989433622325837377856906011510973442675508624156564048656414309217362343725176491263303815415894216767859648700390722617340683276812171286804998065065394324689064867076363183947761791611875258859387024705645536826019878387632046457888150194690152052946534813763211174727914232556727638464333018315399577332075596961806984707787648802751347929708893503048546213538685918401153333939166090481812922173023273688380832652563636058593807279031671100968707669197331495044517000227024486044029942096989442794517704049341918365204182300797896900482321570449304368615407277370507424759371062721360692103258270737890939058406334731146254010022898754166287023890453545952746436060794094113743097273378383784964743935463633869607229862050911454766100242192652198059697491288445741106191337351526270182534579165948684943205113659172470466545824783611204411145781840686093086801583670866998424378267610285459839839985832049785659855326872701292710141599304376670775836329624817931466286215575070869507689560240156286436385860157573006835138205457381356512064282722983885167935382753902021510705171637241039519118193702752377486451967042176079476528113053089669081682122584742266993143440436803326730952039180300131164247598516418133318522033608046887839000577152154316066209660788735918919524711471165378432054252094828383465127296399447115739341572776793449062910871417744123594995259509615023034673192894360727535511930948517671740812552715061420919452504674851842055256682236515575983137814911769114767675338127142329792514276755524318430681340414128936768167849282099418006691078809922131295331313946307046968143425559557653169250705048676884385854219535021781040067431145295047055984301158082330017406792683533817015354529091606547801567010749964673504175399824648466984391819696636461998805389243561530415127094795404417758317604047999552865332084414192752383885472205282585835268623860512996046556129198680110624847000482562490681836182646023566088710439397946947302682551052547385299293896316462441300625029948946467267906005952850688798845235319540185519367637002254235840395591169436521617168461478303009138178643041994425203018287012050928157242162376145994318162173300611460213944807579181599690604109528213554976318040789277398653154422367851124974963665016503530940376444470153919111130976736769483824485448800803718593216201465518230350019675540820049423774817848029855720361691170507964485776411514434786651627819823842220953243831481986857586658281106820811081988003236647424735740672357480046432748240612397643392139524853094151505674010139653216376068401061043398512537786480903379311369353309016130969856270375519010807686756425093076657828334218623846120146755442743864353626068230336251680414780851656713925645208642983993020153141600146657467898030061133315428985608370739036035323939870074906852788484966764566946080807267535015862024757640854337531012934408511791262949829944467165475782981897637932909822683750019016036980243024902850952044715084260592478220796622779807478725355576815884315582267215528441259374536831437396659519935456289995552800245625293236207134036388417258054706290820021770301205877300290959245595945723577691212577992382468895066139716905436283099343582860614466893838588499114163343995699999341402672337810914939320032246548635592530068778939511879829214700440516908274967672917838914855279424771724534320228191609401007368885766574493436849854583981961560131196815093345748906195075471644258139492935189996415004415073363029791610782335528934231426110953186447770194916912790773516146837104203602795979766540038603637378650318939408060988799797564673175901955010387090453191328960839725718883581169708713506045264731704700795789804500514246604520837757009914397255383695808652950017081492725607110745012902339560239059112806449948789361095440500450520858358699957404045761736500243104069719183726885498064814376891197906434063409488065390827729743796773082165264897398958991852946133964674029362377477020036291924945445537011539771621921614826740981937081336173562749800169015821461394793955694664680474942841282721529709439098820095739145433151291380730358990518871879520053436531508298007411289518602141625902903613372330754549414197833825710820950060714717155974903000927105759039977299034387798061447542419181147120902479535751495050819559759942263528878192098222883016790087578123971372908662171922260485117422511634901521297324023395367785384426366751430902920144569745711123883146333268651361941099910832835996999078182624821794536744503087021913979288744200799457094869120255779930745185757066470393921682581213686284988925200513205742617348063329125630897407166991907158313931415348509147330960569675939094173735365540788252329424221790431543732506696311453031254705986948467659472107436692582234286192886753498449048493939949263396384370703646089448228368996097080327319255347547786158100495718518122373436768435186641763841405903190054236864339417380056878782135108330453343290857610300266569276537635270873007813633666345004146022714371959243298126588293850951587999712594845583884428931117914176422907469278658324522318643613016986894586077273097112528817096579819031634428304604503460238228835459033655215866855010350740150265582223204490477077014838205702291631022725449261207794911757983151586234949625876303540519013449679703988921382091660543583502737628112243611910838351761150578942736941489028717506571016595974429540330438469568702632395954895474177561878028201961948392448555664276716238212293333886534595566384982581548609241457442915647562680657796187217060669637681632469392387358022352045910372226320124459252358092649657857235787173920834028465194846639257613957377753978548851960493448630708623412196369167879548553408151954073202040285811632206184064084345222191556852842117491968669880201107768964054178184664033034131600623790987527042687145711580398932720244414022352177185836097505423264320801251316431300012452495692601941980862935772641067760860731186287979303300421732743036594766768899189177665912378116817235008386926615945530284304450172260097705223727058318406710194883385359942513987727449000285764487982161594513179970497546011050307991189684826177890726940404888098278773256089033119503584172028148966829417458166570080138463820637085690159901957868317508456777422700627001393881604818856508413985143518618551966705197156422998276903314822389392775655464411286981309528499538516874004472362212366180319328827288247780292237475010795106919575551578561629506613362711133341716983856703479604894182194111086951907114395543154901787022011212187932272734982577241720211737385253487938461107486386535776321561192744522985206974202006758410999815661042649432966585938667871926937208296331652280147209195076055884785628698491121006161934061301689892829710760964125132773986044558431133864149407088566724091497929907263419997599448910076711198489103787697853598868197997092960430052405538268891676234418829948063274362899994959173044699070337953856979734963974805272807171559335603942227601058105223069227267004774651882277653647808403754554508183045187888589539858933812612781121244574592992720193112526513263744123081068952828881135236989659979303817983942098172028592112119880247747347440517067748124331512012564605264843444775203277278653586128655432888061361654536605550835673315385792450707229896051803778185528714673194606942318570130089618892139479042628955051026257535546342668570146566547210360809517545088952487928844435787264648677129838877449908939384205618517755073662731870188346668782571853622343471069239923763729428190664719774383368925612478904824005783005508844891022136489864846775307604603282181576360159705753068678071640372638799840685829322604389660924754286712855987527656134519055339559335220674947184279806072787227168542292192797128493367155295832393687941096425338331558541138638515716295313151718654117737176802585651406383111209647550325945887059076850339007240447889643682695449247435391781491412177423147845777898155230130891682147003815813141067556080990270144781497008582428695219824382757567830999728753799672537037140355336637451244143219815389173153368282083715803070289986678820754799774447427237426426332958670973893433995166244129996598496631897514482220782888571665663518855311304844330472305200470486875887753143762188217359307515780160401490092700003687105330480997761332732222935267452994661367775497260976332007331998932231181792022959559612086062721559956844247819638773379033371738660881388806729033955001038522309919484894252148948957630075350190624048817004264184773922255783751787908963021127676928429402244193404396146564810017071259223441472944794126994351146164097552091437935138460503437581592176542752342107041668254843449192923935354818306929070179438871144592757306424896597651061826392629698445180290987967404141968410041200325513357869466576804175192275492398873339061635209588667300872672061972251951990910035972993325576444923535730320922953174772638119333368824435616756667400975372269372676312163712405128630449597372872743061214860230525654588666437206728824709269645292172609932693067433022096742732182278580610199757629884797455241838660819495671382529302542261411989842215356397312793273503647643603752332308906692739534885254573359696871830371548276566382871804899455386056567814918445059022429077128357984066902540345374921516020660764287123388366523147848936058639948591780329947835937846397016371725928525860688094820523875263528302760593117394205097978227588892948236653406461854131502114690187284638686038166184674990841793475674613829549518078048069067010794918659760645505572651993881868124514945424786511593878487137674380676772354009578672000295239888459952766589127207834356112873868331283111835076180986375569135141608717628044072139085719753450721471715444393238260488758998058462051785835796268354803317631607895654661882044135285269685630610401097756840483865463264527587322823684850752173827231843406343127580242276337127255686754403531425306312692545361219852505886467750782975987824046344731913336664531136128278140064005420093505355490648891531962423161273723382986421496050845586817697474106280615863731829893855244843259470036572201897490555274795362918375077704775344786848243854813408804081415331410749814104317010534920759329239713009863997866461221730809619557038445396730593266191983423479135675136368284540821960291874179616037497291833802594376668728767307032719742252385797995647765197010359425383616803547627553431520209224798563930862056471970511686108359657809246374291282369159884147775044226059393601220339228704455778639074355022687571325352196591625760073710955192077861485451140904177203647901627955401980865026640491853674007854297377626065076535557156903496382171085736597897006841128005064899448237997751724712444322989789250739252128375053272728545480779314190526338743631941208130970426322414824044735000168647830965418651660144275876910413718700833623780367463759968978835512995281684526612980325248543323767045013823198603478207186125793263574065855157640427544851987780011900811850945962564986040988631018690063915913564039426557912357835053711844219205632454435561472630878091627766273965887510139831819600624117015221107397828006899121950354214553956313837952577726729688701408991866128793479988658948151491894774008322775273949527647848881018302903875210649544320984386310342464984924537991861474048539299415773652945332426242894038899570906567142740731815399777463934495923401914401800483067593379579987138689058494428163713369374804001734130645766745032811983591694701162435629177335777168073191554922163523701556185359028542561566278592741253253744971741092478896546777769688331056195309373583302586991933903840157904527388935426417341705438691509099431565897126664903566316341450442519284002701608824613472328287527552138451535869825691567500775806773939130738805031678130161748725998709791734068634337798293852937902648795418743326780577258253270757594040580867382799341937435825120489117078541120071843023145340666300288646047412929059580139776340935749969512967903315704839741582131989852268609326770241015760469613618252487596076126570756069788300368408974478322139193509828061177140867332285624954491561248498934655349015120185192621807902300221562365581335721541693294612458508548577847979336044451991919199239408237203684138107230513882756970102357354642895774790657807286896674366456651340639566718033592221714085012302133590404521529938559473703346268466836873787401797863584145629250431552208423453503409610157018399908108514951781298123145114328601717429391821789849040131373378446041232101093307510684437995692432582669642853729503228535248170669170017480826843564435621025887675683561505073470918223619552100100670128063802326623351751036568763103708351346377793603898147019328471216451327794388094310360644487448809195941576901008981045815289317096126238718490603216548061410868918330158875025309928954265845965339759197230605385378374497035723850445156796094407971278104637171431452258949746262603351461980156793873056328898342283541957079623169315424850415339138731992581244149650701556650885376033905520712918809766004986458966757322519849296105772141801246909523442192478538490187170099563547977250976426474894053932039336034364129775999661749463015978393626375923021544425190624855805153296078563128734922214078822978428327265406556833520677453980836154490885210707334044792238730663881384594100252423814131013101464832226908960157440314434531452570739374141311520293906852198527898385270933083497552290522629160415320620003371209359013904196417785455694645438926136480988906021848152847629584744219225754941194300325480306413936665635047932423028495487125728481022808569991544658449458303975364533910059590347305484949445370897755594918726690105081796595458581257944738799263969481379398813565889397549544929565041542699026385895856553759373610720294539026611252008662411018518907521852008367471164298218097120833663798828408020893345365173537168901167665413008115593998645685721248569751123426411596170408720876681070600484759507267266743639682459868091184392754700384042833071594195627695516863081969316980469212953654838306429971252063344596610010675097948255815234886946405245595635291469755274764995960855223808523703715915533276040812718752544568403308664434483779826023974095651416241072391417990944141839224713116126264483861487466546571261000631389207889545454884374461980470433432916130763599400194719585999878001564105097015756705782649443235492607363763388544258151801102043755422083539532385129622954818706304708138477539879634630827095598740999023867630803581666974100243914019209529419827009992417116996290165852587121759737992669744465722433700132173896928440241942084194134717529099608008081678689233950971793650135418682258570298351830074817501159189634517399524273148787984682085626922251450566757044632793048125570810811862151057198235022869163976048170842439013777747246450323056458313368850806356828163141631643052453245441184565723628030973193683345582929678327728163084903976268101959757888515827897649638548599680485509940253119174471819269049194110256691498886832350132606818093967435927030494789444229669415421145119177555177590307370429678726934110349211429073956762023207984144174573748206141683460991226116395463451278230612348922706998647243974548102680656834377767467819564725456357696604239602142121544917116505185792518365511632851306831425278684400132452300825806591392091773313128464473637104522495557472121417982776796190446287374159071696529231139737692720199760726151642309717639816764275092977368066073407764044993110962441089684492414809893033540512674722552316131446180437800059607449437243573160038101989414438901161888112263361226026213065300321922710625422027295404057227387076116140154765200521211944011522138939661777037813486957941017854577712157011258922032579166465685015928629592816637865801452591090469694700247724640201577128819698539907216137203375161698319526198399457136168849823326658130676376061329235150969621718184043104260700642916549903534658295845712707023758252265677464413720365923423484534535961956656856757715822230578219314273441483522737238478108224642779234534431585655124572111533907138716757981444209165366661550547294244553889397822678608055641084545538605952719896056665902870344825952290846205762437302448386132400228315148446211993840044420759768866776314322193218649669010086380761287095387663771308247745275110896980729262454687124940913524623046131223959011433613873987794051664374692009720504238077276324928193234508070108820067545110181421747711816596769111367009633639992156323091561786353944559145816288479558686469370386156831558918567223300212132165846144568903163543788940311762381894106602658925204324685995786892797548866877981284878630313056551041708979308665908410017016964026654267854083420463662980886722596391330648099986720897292828846665373659714700474399998258913320591799852571219606623178101292074662147214960586940908633658128112272937341498712626144920078074425299913876352771661078878503821102891426449099305862259884908451658129278957225736688800137572199367880876256144324526738693452093084219667260029719110085583145896084415251983922310548088609638474534965943484170382669816775148616022207775356132149548272335284989915655773635105599972613634852154300715043942159003767961204464617634198560791670748914696062076987028346514717849569172051020862127953520881261694654778253799098269851425948288993899238079601038159347336836116710924501529903087593511949419302532527368796032884291714175389520449885009924569276094375813511064272910385061549353077219325737759258889493555599005957590454225178395561732266982963396345278335350605543691423549692235469561677201245782995137649719154382704198538701593363368620398956907486376463208110053579815954782371838131054760148730167092006335112857124763373971069677534193463339495441686593522981932050184190380571687143348982391888246118708785348987010790418075609952856183923609913139897052513537090175572064476296103720293295989367628323108631280773264885616368479321265700531928610233042698681882034603069999581602143501898178088916938498521881469305837231853015952044817821807175991254068276249028316845976095699799311744929566982163932283417625347927848540926914944659308337181714454957965286203867988814045818285314813050924642914594699049267976245871420132128519725119279687729433068248242137752596494919454181525598714241580896752884032909473855760654583814994351539374800384910640538367488692693498124784421848074426601834476404055960391141161171214761122252025614849474194414949650780406938848160940794387468397742423426882241051593811797156392157651169498802118559914372939813930923180465673293005312483473945976404766302629712791887626693943146688879934421902694439126522836914114985627631814677369176893847676884260013147878627203203610597139858310993405029929684933619871171708882170951390124939038657127095325043798159836000025099563035232626382605424854833676761741278956392463437792168249751737515744166828756277292435584105522225220596420280313074336600005505692520961423415641450101892821277586905005741592760537277406770972585229989082783865028498177132393099778804792693065528373097697415632980035102280218902950991422121979226072755301563823169812731902047266729281091031720559724439606518238292306481237088866246345355195953937608124752175555043715420852961981962631036798711373477815000622098223097227845759440187136559863320282029551446290256231509550672916984045363909042107596428976917574666315907680819924125902962397713074167522630545434641372183858646612738526646024047440458864088118645107911512955049156120649364969028111298964529686348621091633509859592429232157032803484855828713637263544372097973010687038356178234151047638997055901959710056766168058194524636121342299713255525092660858662021294885461712116584580015014515286942929658179836764402242719966219925191689320400286056326061037729088124569652111915945482512552821132658519758424555422475631354237804211226396424098737402198385583981887692378312506724652075822544690210595743130373894784946244294080006794714094230399041332998164477970217407695023416481956806794615472905919555966143454265524884827167234958024131988216792351536048579205727621969074266204304724606305875736445473720810723916362595014504486669493683705175315376050994687662069030406827838776276492387969591787555632796979066003083314373873652060043143580461397308134674333245507608361856401136858357801742455127231818628594021455248161947983202385192930636038745100211273127634699443152389338320607597575795198649452528544239675022821965908818605322847840145051884354936482654238692895974540202174018688155610959543118279604021212610846893211410950960580062649833888646160088274485231369375455651561932282244240808743393154772728354230807674957239625247295479843460066131618589764478529968095059288585145094484989840324495827459972119399833262975906363052865210434596014337035549737028028961962271498206064014800463847274022300945501276598260774187477501807732696728251521456196426234428941444979438346662371809890127125880841651895926452966362375676493606883025231167238403697222851143337694303858976155763192816378749506464460997244519439341526275181760829043885451686048120460632798032722531100727401505779748856329613802563841532884967081313612695424268543376866042686130082477757683292719116614454576789999844144541479847894276371561379198165559346525109477717413537028535435603158894279228564784828009355336454632895879644656267827635318553746393872844033318167777535570664803042081667715995163261986985734749326887258241567854979530080956868496409571729224270381187939032528677215908670015882842184089591934591201910513056262919237287502586931283935019821041279920835905053893021705610643467946382151634065879468535884217278059787317834152181043819004705086457631744446255862735032197624404806596317093081651319422587436911989507314901881277293572045184401441049960604643743392965828208443105278424202509933241850882204252206471802476688038686737811815835891483559621009773167348754685093504406424176922193176113614011542033195660337003036888739863504228269070314784002883582905919893458116468836298457264660571136276953664465378782075162603924172373846823903648729011929214757858768011693068311108830569525604823418318740987751746221273564964993655906847230210875559445007450097478650468973949352354253829917739276279965592624014586606080854366322041346939768020064327212755936365424035558560185212804750141400894067565772518526990982721222935853421001399857102465166335083987118024211795020944962858938849668735012714008907183101140928341979414340411912689985289211844426161053142157892230793350444688622723798666560413954012282901313562062073589574152707282990689690766469602046209741153814404292721193308623857889795454862309211511631032131294733315666332494822238663791720937803499815591416150595105163016797555097065081622262999369222358453220255667146111014355817878854025569435059756374752269186016120379463451992674723458778450018999903297297049545984202498235241323872382270596269431092389806854419194193254760590696100074513193569900745524923210985702719942363164228114741355201824500472504793156992303619603876081440935648005950933807079517239175538424217369030724447169976864091167103454590269244334857367309485217968559815608065757532995256124509929956561892991079506984338317215704389121525341904700259909506347103585952458327951532699829949129463028337029248783213205589212251517294203730050324741599205292538701911801452153787902449740245294881429030217046855553699056087420183722064535276653245064998594579416403515408795486725373023721409896293536488417135937456942589169279528114186013737202147576394171105079630272694240025591140780408184098236244451729157522685792756884665207132183204397735127156652549878548962380922698737593055275581567205155441695156161336500242243070450305443768212535790075950612729352835441040947997694892388287284723908453983915411380166289342966773426072530843269308262331543878270498285776221364211602052270878137090793348153291638381268211750417789130086007880481640391187273034013764773099796072392851629739024726068635464070439517255012595339000010225064107245761228690601400574208813687824660270537772819991423833659687363396297535473494696312436139591088450109655600081540717685122292803636514731041780083255966279216489514625133178727302806626202311206968309838085047144604520600106312145208751230464786642183284173620485365353781191798729734508050121929442060395367416765975519794564828931378651999781189205936946670236404641624124387480022147724539099609706711133364691011111248814451900031752378532675972485899836890929222903030783146173383642539760358343142038005083096544642022397055284817100587673922090431025716571570269822082795354167443312345271939593587646529392422429742544038883463086166288257699592809837894301092216163738994717401328477808053566721900459021284278816494540829408978053980356663170963831419270259650262656799790497648419512042699656656199363330634940948210623787650714812896294629442256950108581695821636654476119705248925016708106225593625947239808012950150976795998101869110568381559086782799861072690387260655119497334247821898625842677578075740413592617552878913981793666102207806632961459497625595007660387103606431419126290129312939573839068578149834236444947611048511163485042498924912984031610118279182424357456563888441177279562168397515981038077518456195305506096489308810177956299728112414036558280888918851839220456684424457421999093558919245678859030912109209870595770109084891147844421976395411601985092851207888636063597134911441447314823993918694778088932668015641757858286544565711526669137209576263660924947406116509244496043578415699366195976341664453599987724340969270154122566909989125370811922081165904500451479053061885513927401429724576482566964302829092196870348991078950956196681957368008225723315861939976572581969555124345878464397414633436083294205604944956936811142043497373622054703290193443691339721219454867801740328975243730672301478590505801781162004413428979892481371833291179386147317468845345287307691259841152582537999269326842488472395234043315368468921349370205178481307265648781476041145668125348306355182128375996860989697431662669365846556299423782578828427111333649499137652437914011546557140061295726676555854929781310270012857432423639627640634953157119253589165400402585163531273433462629258911750871585742785598239640806119381821008084744448927514881753507979066291681538011827963528744813797055747424383225477575774856950588832549120606283708840650426579892808582110324045593194054557071649271628462026363413395990091867088703082187321423738215886614592077961036119860800772398823509458095020473071109426411840641236396054144183725032818147635399376240896151517004484694251150019637530630975629077328186705863753415697278593912857306907322227803936955713816046574872042231211844535382457269986709189737166599807158027701852110728780815499267186094635960866991229696035991044056419008801774715223807372542835281770850661000420000743326413585864711625877045402016474405213379393753846019030535010902823393166778383587075563098141212195762385168351420993312489548850153516632051509588528065547324709536663823789937216519630898784212681787102101763239894332027389702005643666990453366462149536732598373155067941496458409058833864841882430100593684962052496127159823790231271878808700806456193407897047265172036543757138728523338877005436667246001951088633014222223130325485318659756862981935762202331434111855709596686978203010942467566529133582457503281880231660123770666666883203553914002922282760308517573284096541374238821968027666839538643744378772822653289512602052365129837358517593605443441097970916857366809546441591969427927703115488817103688322003341402570333700893054140708015197144227663696735111263668915178168440116871638745048302812195529248578160560522599671133426052283944574276433418785912098542080473278086049473180982190601858366360430631353163612418766150652566986388117542455071042120609763718559623844589647075205765926135585102356426532470177276508254105175091141009104744084938307910833213652355564616400195965165342381536340584356282378461041404610494986297129968708909282071569509751241318436355948217401205572751560007162079336027491414288526349293553565318247851018139487698597596917893898799398400935526768850082793077141552032324803391233244949523754349208817268090139610946562225843929874936978081602255131339468975696517043852144755740329724719427230242155467576996836673407373166766381991702698824756331208053839476383554328368179294709342756333126117187086752588335857221532004860363732735677810266536960199753774106909933237664997106286933835011427321118417521266362264449575144227959519160804293440328363986536799867688376643236143718009664585648443525969121461639493485695435235713836435742162284846633886551928908130674897818540606044158587996980544258422787932655110881971961642694264922095537934461748803578084784101820218106286914012098111632047406339212347793880990408758547824951905973417044011818462432776889039858975462938032465744485552186106209503137475164342135597551465297187210262785780655768447089380097874779415650253294469900763502472912469964718315077673904629525853005218404321511403125133480788247670461929521602223768093532024476563428626509726733423292602449915576744310379472171970661915503424971659050277566267636987086204342271725025431801671037514687409723958738670481822958922943002437884796815564064652054265474049019768952517636399290169604361715843219336704155571612757859893091468801379746662295835486097501795167473700808328755095954676498258147237411615009325716597397749933287039710248969001516821637786540891518077045594876057017686682446930784901929870980980004079811094866509477645596856222274184530110998201247833550877611839171183884741508018678118150144911376466627100489519224633606272129145965604270233946681261049291454981937742319091454351232560751219134555951453627048151219500052341653099347041303819478515917927336808103719554161822418963579668305297120142867494542199920262194683501196104638133129180998970621774280930089081778596716879957837654864688967966836381616030284677306009273925572650590240922563930395505670991378099180092757170251247874129132136321645652046904491341226063307338848006808106618809228366343783700824947533864029240319934713968130132387271718503586270209217845359289739949674512497276359579164882107591849811294910171137479245604880613172157036672703789950571035127889370130769738652407112731662147514487293944350227317419609940024075533211271197832577375790169419517639652382897821495746078634776005292103550960983391565871297247036571855206364468256091772506926023512834491640684156224669826455496289583295701770523094992039534593560745816299858039162816004997207059288478285229592251641044613066881768020261961591710586736581130742565628340715112983921090216542271444245746713008922758486562622191142337636286052908590704031565377669923640378729709235844514749846417744691731154608881091773584100331364847671126580319276969907053760850585948850695429231856699335648218790713109083165318437800878778788207291218902790839590360640546397367836183689691579686687421679264153495319815085349762389975775611376768082367401261902284977156094612437117916793449709520051992795185054162578537046922796972742431887541604352045820553311333018092587292280336771713760269102603669267147231744986428612802391926352214962326981499053424111889225213961955813790113077653401701817417202620384641191656128725196189995379191434282852417685484935944921432795098734347882873832535357689883927672916092729149870398534580581632368778751170213863236010910235353918545509752468840770276721222802096551321327479888531713053955387811660329096584948807087638387093834210526005853804163863654328923575796853224381087061457514073015095525785128362253231186821233935422055004914959556205979046753614171854458355513706600990126713039751041515276127410711720967242898667593436466672242566933208736924563627252853340303605100740251347310849793516342524328544468206397115820142717943483431671241815639640891447758833934958509437904874359676615533419823809704293928319577824938651715440401643650571600437662735595520384893680044577226099745811376464162608265454821298324447057852127779954884193642213965497325924860747599724524965758697030916762699699133713440047254408374580024234632396931742545806617586403590241417535318994521544410448341130843055851243644562985038847421531745558670458495579485139717069658684075887507942104013858521475418673245053043875604562229958853783750165332496893285096007846512669085705287531892249696911450011382590096934402554547332765642238831052136794249591322488692401768611416124352598174660026839316681771009808147655548123578074948383025953479883865118711329742763452412059595768475058803898890352301869913655563591895229658109779623755924811234229984031835994011048471431343518780250872689594667479686091209291403074938914305310403700915745664701045855863910940491722087233512305393120789852558864006106047101757830044752340665884689918053903647653496569075093740272338107978245238925790503732184862287972812068351870007396706192276363766650938455281048537748459676365817546811711854669093894630562970412960994535178467528752592483431233862257585525309010790471442407093017266400571658485125978108244766280224771803709902643239778413492351915908107717993668010893071082565856050468798002728020215418153638463064412515549257178909410077540656477207345243622436345670599470589896987926975870707833225346430961476161713792010803544979282430125907865912087914195121841201180807309350968517876503944953355422996199758954514489882220355841060257106247883008816543659562045290607997112098665119489022756506155838721783692797688964044763976797902800048593885572233029033983235625683851082009752549880275999576319301358467644996962558620549358450572034461846239996412883041081458879428790103718798335738286987428858939800382209515116138279369848358377894841207228927748012329235701678674698362577152465602890656915682868178669901790731997484185858529908009778053257178652269301710816596189699517585795945663325251836847756567525069745625650716307382372801618188967542266439432220080658239206278209807183324649880258566054272586128839064387254270282889734894580024982240176826412856264614408345987096387965902768902322542395051462534847470913977568940985670270925395487663654881351587816579046448020065560360376884234555825613104758203823918033736357255703262517369262294706574228530936197732721028379054201039167328227656112982556001729950419904540432768563291195596962393957809321390823434148955370875904378749430024377427492476785558024423488817738759601719068139130764646823027443704652174024290135596781266702205510366207904621097069827337906710808296373429033567588183987471446970711128860637938012960907770585759467497577857286256672306924654504684074586566901983847611946586016558396770090330073612904056590320844954210704767007211584494829160376495477866230881214432307721050188443546136692932417108169594806963818569177121263002261114378834202105535433035843194526003337973875243005599552186661155060207844834011307195074805585951344446500290797145981623401495443702770101410392426652740655850531586591436359053941439821501650735114624152549051359608387868133676037333026272944961543907198028945293970647578104073062935927804594786480429172767473572186357097587724076823242046717171850902564946108976968506377923514740902871570595488491308593587105532204780467905366399384653851379792562538593673264179714489568731299320875104925382946748572635982167146708127560119445853221702063501002372845369041166291394200094378769834297561462071844048693907108627501059265683508753478448148395749140094142846694147105415383774267476531172730404218309301985715452661779672044167517497402694110419305149931489811522665427561563291439593163884010076279008539352777108796043906194839213295317706223041955618155281979054983272502582091023985054221453354306752557451227389920986949841703676525084743095993579682390700803713267993189817526169287675793490136558587170566829359815851998351709407671752397650219070545172885693741546573437943885395617713055811859868185129263577252427424425809271415786357050808975580656399563367781731378917817653465308027426464860261967884321250147989223010047230816304047370356078249281828008076044643817060125435848832595487234607995278823008365147338969823964229097699087072588378550222046901380802406744320007902370362326914845472916777340019519947847031592126407883216562916289383088389592448886215832825063551056977912222493633973952530808582297597836026375522395497362367464560315551593882537915199537680363784324447881178422139851839145603150608787973313174597864559849738241547936655640327005892471465126595998255851193857101462159253488166618980863122451719052654175296608176036079776430620043012538190287237991898532289382980052973329983101436392588849791836226663971052895459776067181976204482190829904789295480115118890038053303234001733474087683325312193186851434972428252336606913394668436845937729511150331054090587410421880705814992723932001625129940191097250016222207960598687401177455732063288052729262646159557265621879672699953826506213341596478549310030163257913830203177090869828475807057908251359126365526832012241567286990959756896951535762107451174499345202804158766559479200739668948320511427687260120347843142132582395150595682750444124878850959110202776187530520875997799545597153063068698534623857769067226800879042326180938862281116525402054180012109085559819977681584603571168330360048476301878422795990790841819954700157513967692073737694181421358359470544868821412641609293191681368298575493595831189109876095340251428107513061344388012274354853729335787479173582835928744280656683229302811575542423478684339125034380039640538813676613607608994362147247419908822771425951524554290052490770236945422580085267911451364543361263648744440449234482686868121811342763614882450720344332054024554573752077312057860602682754631062882353240882256501694641008332988890980545185225803988455751625188582479990055179598419789375095294476738445300728815191137366427875968703744462666286541840197040545843539339947627212732048123227066393116944825944802457796255439479682799807763830403967569339830602476766381461429263579500588281172699605091408645959657742806260357519828006233893683388387666241388500270389889932475394577223825319905161862397213311760754917890763352695472803172294686879949511293076155201026895458459905272949379603893642482562034168678910885039339437369835154058012838551929624399470009693584547687500817288921301758496507748078353428871753439469255161389305446185277683102382522866186560260489573947311249132961878733804418745899902981730295401336074479384349455663316098180768383733056751949979798173125471487205095187948791600447358830764954449837762660050209867464491479158995988458657565208025055344207521330992855807808022278646950758640725126505383228704575627688931596463411285075114754271892946658166159332805993170092340282424433091238416597162538498577367261615881357135997858701766098006822757295702278031044850284282140730753499582146861326688996754864537001920198040536870526702486267850789123830568708521131057225476193041084348306688448943134530360791919117810851957650793830996889408031663464114536011916217715918456711945353772028483393643479150739499462604973501744141093356734363110427476132753273519823296381858079758392919253895673175457155299365578594638247607117705319770476432174597759819805481826764604051419562657746204871031237365406476775490981965905143473436923911399298504470426140816624860344838257399813806772552507813644921109850662110499975086085649962913517889199198117395896604247203098459418932187644156410273516620761236701420356359609579169676400447135745867304088517632008350294735397751676478817085509856249899497129822177893659943035226705960959610812709600826280243171782496909027448935371256935736645858769887521844533007349562030944049444317288698950392304206155020765438022326564519765995125110706236682791979998052486800516032843274439023853289073802916071558608461105012784254060947972394102148586253055512586878599567749771667464185250816581428900735184885764933222537994725598549913427614466385945019247248486233611931734963280283589952825732093797199662914657733224863217576017215928213622905638071269196975936243975059725892909275123205003381774972857090671963390102920496745841274888380486543505564715970257632923730678153222250924418473213707175856932068628875938105221711055570093037276983658986736032438307912458536430130779684365888593167486791168252229075248644394606145477318795972386599041092364817273926060484502369515118414616348077330839652753644289737645049087690491710996093762454614925783786639262441436299521806488703514281088250646558131834208986870270982411469815471132342032136242485331135781911446400367090812098737169622897972452534284912617213312239467457610422788135632365806367981156712146985553698145341050710536812672686353530543099495797667911633410473200968647030583541094862745598794070321639059853495612890083952942177333874292121194494666904856518860652997517179437962461471940035302228367572006752870957818966800130501802963913819046082588477451256638933459726982535887943383896851012369172076368682109770008775461998635263403384514612853878277253859124841998886568070111379628218154641526582455547761213305563167483339595851158744056428657662587583535494022059227663297140785089453845097265257151830400900521502661648441482328117981341501154777357994847719689700655230420290755201012093735489658231735522333162455815371079046112780283234400206150148810832065065212936886035509438281439695709330552260113876149285566739406421172357165797883833960561024410383070614636134013904193116291316398105382994833220714953815198786721450404102407180724618912637767456474550946153253966260408812744011555727165900386967015029347676779506181108762523846116709425424407003617033660515666283255170287629694139882575273423863711450524854627982250234514779648763057528626880952497275918508911246659031874708543219269204986092067736260467954542285800239519185993388408487046593731143558046922102281841131893089356744569442413183484712897594066886562632453504458345018365310559525304368801455189518764729642376439077779670869931580266408760067496738508072881975892749053576729467163848561125717796888570649836845849486056777707018202206870342912005718439781538242836400617538518127594395730070289422409147143545791035419579726282044499574950963455417736649561997368372703188967849624098160642244192948099266525638112093805877645584624815453837059230459500605171767691435794377785185474771922459758544385682413774190909859268074661644354664997185466372571637513513303464091194146514406468605475098669134545100701539530258011807743223805450834697527368552399279559540300596517133045031746492532587554345008085201105038505306483781601489237676832717686951943397485298564180444977873040343590595238541085758429710229801452883229387362123089031365958224992275101726217604610419353236915362607566696194194153093564877449407811996768988495620398295718347526695110573997609461687667564929497500239573843302194736408750642369931945472011249554854275799815732485732173741689306328171180971484924508586501241627654411393360413623433652287449282962491103253880558203615232791433932863340239484221251799635461472173378052696320392896952929939276883697512844185003469852256043920969842355853671900592078704244260601536620425238045370859358918113085055132465699468153782269809084836031022656507436400956770084818887163805776451319523417301183156517452074109902941320328273777502663415451481743816747219846287909775896657245160020665249384312554399137085139352519915629153873987828338490132025069624067034418704936041865006539434883024610909495034106280490338002010494649043359984720051472527996360233810823425819575058279233104630243862331697853365423712796141359537394250783595266472290928516928650460693472683369560562656987542285546299976606567517720751209925808557093591244314976345947922877014055507271790266373332700499074070016824940252927568053289804248634557454340631965964424290128574480295612984753028407249682297761960862110301662717703407415344364058874192317980922785154044956444902702526537130042601917986010339610289841207834932126402850706587771603204686123683354216294111880589055871864129745318004839001950694650939117996583312778759013891006185248393099628555377822790374590439378983291152952539949313589791256497320716186680529095650112102701795418061107152772421324994287686220491272728099789301419227808407426385375666132789240597577663658744982202729648097623802905692497226204591836886618446097775917809076829687080141841267472633749317522390583948589752554564393793589431884729980739477556291296852902138276475135486506396465387725608997669993278806510577172904944697405273064707746647997829640343018396148221585795647243877816197727294645845579165713668149926943167849190942273076567006039869083602669931696730530582653847077941239236376950047888382132555113618836051812482262831944086629208472041993590080858402320523437914460508571366878639684131648278215875470756871766268835040725859259262277125513291644319686371870855327582601373692746381421464859263690274105409731886527270768626744503476399074068887441258086464601444433696332429438976527013850862187746259578808834343386889744865877986501182354876037596762578163591119453407051835561530240583400850691470901614713778130524215636366680595419675077887896520467424604034490241090828264023637958882654711162634815210179576956686726677532646523184728853806480595088914478874892274361730790261915630945452000032508475642734972586426011250713921442733450934090767469532700087990675680179957555933151175005025941799397342374242936286585110975023207166214330883845019868525862545222666239132201921105259151893921883541510385270867530287924266845220088315226090855712302907454502071022390513498584617081298787084413368563651728839269355763844019311447862071389651641734095977213649899250377403049374351819814979979644017482624870635407193275326384062907890428111414295488890614749528620947132659526284439625597606624564334444022401267318602922646322078329345392634399057712287622433361356561253335494665694888559434691018575288343014886722646443792469565704033269156910158257554747099962639916324599568023864962095728090177853272949256221656272568451315854820801264274069622536345293380111826510789206812204658335199452429261392613672329845582887060584636650835101538839200990271396193683909892821790347479181808567594798950944973468286180787755731020496958963463278270555817266357463698161822577467861942464720856578512062796342009193373063395193126398700798887852253599225468068179437391564372968889212101697519163606648548441506150335975191848052993745460744912589383851169317040996281978728186450074021270946506232195973517139137438767834072074446470079203109991091000484070254451173166535795430810334223733317487804723886132517352807872087008154877711179968218409706520317957290099356024659447708107819518460071839898002724800305677594275237052806443471640740897108033682541634119387185754519638662521622064209489922265610784317594079804730138426594568472402297226256810611920065839132842034319742487555334899501230334489162944951408656174493821382538889892582641596181618331925011809488709805647352584069867827584815176974279138074481723527279805891690552280717457625259914968561272645862686815472322870590820423663348732262000529041226814488838821518442499428803525405704542794866488657211312973644445650640255965650594127347764450363143320513217805724877340686135333823278177840527383997959790404727925869259938822130485932511079418403606422844767863637548086025860959620555507970330317786662970745646399294393737912720471882999323091178213999741129476468462817749138714622801383803910308013142863209361802151184341884922228823153050741307731836729597918656240130798997727243770711162274576429893835833246794835238558672482367211085240319976677529615677711421088562399477540653820166984493641795551910318818314374148347965330304581555408281499636297696320998088790131098463682908443720880488274862337391627966633404341957311054931914867385256966357948286947037546221975843337568151305098691852616701231499188928215795379855932547541809997510795382287641641471595961963973511389833815916330397710629081293694197240310149854608825309591440708263470554228532885601456010821491262208468013847137781197358696980706250363028339124827004546687961532470115400468577511971072974267846372463320370841731119738298713472652174279162115962551094440395716281257965979195319221126088363053684286159413159835972379697444376900249668353484173771288849462142112618255328994037033402421368493423911886877109398991649176970297185793340330369559038667823568412095519594947098532784226890692986568747230065431241765468961112697638117151677911564106103834122261927441243323165987332994298066961383513557320798564751763891051493440212913775173388258824563490293654190775976352008881122563095879688856247409047722412450452497498387393936974082318570103064647810503327373137672394173051210594109932893564158478941602092617364788092438391409741163514693168285691888369790574032282324327650767694742756562791675420580719048094003094296189216197379575348296589775934439877674185197884224051251135564698693642831254849663611811486686237931811498705529962841512679017958159663433531651439083077653513429834128803481339471977726044340087319206723789833290856851202001630033819567252728436120587897835373246961728999586605780041685576150101147190941512905605606350668748865883350664649185962308521141920096095709123669463197309095408231810112783841004155222695452641577559997899339929366185897515953051726130098408463669475978941019701481714565761264525650074446803078673201357806191204796836842920424551180056175121799368969273087807644623166104252817697849900115439806892695744938484526052761831083452719001412493285315393449549944011528380828646767490596057326601810720243823023688342304018454116479803155087667577106375037553737588911869160356889981831467335985346844898465198956750747324207558997839862801849043009966063224087768531379897062751548653031309075408965047312573612951703882580020140176634006242677644002734300878753639444323015681395419338697608136550498793935685743895752427854049627931819013782259005206575263708279744815239192715180044098159970495510849560013275388009281751424399632290756212414325431686124213672373446010100738813923914722101342042863473659006730481583889115330867932866663353946647458788544269705523528968093928284911750933980936592064560639481979410500881209831696114091668416564800889509255705350050110622231498183385182742587925219872250883954053945132607611593126473851459329918948251591301075037146919848908077033566625538090238668805755199084050593795753265300092995045051664993403014714382794780412070048919821005401058945144376241021507631985790017843406218500369346781355663080172766595665680908875585517986355173674516591068729303957046709410608570099590181999567324388514711289056462787624819912609308980098061378147056283936512544736408502017665385618002545402185516727362476130146501757852221739941064339607326590336371156716207997063663758713566095014665331199307828753878721080216116330616710917594657980354418375098232348619117956579957264007724949400664511209618822495507303754453610593158881815141286888848456001943655815759332663543577305409582920840821428644953373164680735359068935947990815924460632524501098903881147180648753164313823100187640889540543155830032840558670676269332006028132443130814451182568626121073472504330806518740801965420559740196623143595856406861033510422266888688976553927610106142361026804390121192612658425421142249225341670291340301828263712154519489347299609188189637710258309755766921611058052049745495089044006823164501753288725372550010518435671653086086472735502941391186100346633311520565222138601696627959660312455113221789524336757490852127403742351094323965155054676213044814661326362258489572296802005649739207136076560345853085745798362579270088943250540428587074537688324890935374149175045345835151966732026209747554943314280161756897803394750325906284012411401474037086600784777143145281168631676994789250463453017219276233838291797844272900508597721956674469730597428867493093804400176919643270622799949492939938426077302814547376204538692496645202868430158337924125106172680427755584319580539138288137926210297824966353341536660194912147393786560009597672921656645969556043621701093061957572698742514225274536707018711438447227603977023172480184525732145110270196437847799819673143166387574802990888126847874105100427940662715747024148869178103795421941834349819697896015164971852519695154887181366034105517732325879438505744149777887586885372447042885082113125694115224078695858258908298912986487048006489076415465100982580568495196348710844733720457746067229877619717855256614681677999793501351666516950483808672025241467568262263574904356871722924249727818034868416166417383802099621613898898684816920803650633625013589505525281913961418323039205815439269491974222285823770741736815438316246699957126348074465993002347619124674278759855331431267366388607424003474085333952596724267470901550631076694964545104691140822420572926206080057223523292242097687819324861409474470177495640172670922861444817560827858179730645512865954089288555929110152180930954321727717166067600731427252520650359656737854790344890431752640802307941837108645036969373460063931566145202086696222319716379136660388147380755041146971330358257912453806089178840144760686716341638833652069898443216981868364793781493450162035240211640069865231624152935831509668511130902836563000508419976518252898561409236024035126985841316765878914993418241334529397572053551612197741300121824623989000549633774335615596834975522333928250204264848899481957447871202053484580379263454919390778480266500932664384112437029094682958161142027610799040118492548795915328256960388818010034925732840154220109140031339167916955386932538115126906856509833403072785300210493310560176548993352793767609605403042723039828916989248232234490604484067322778718089479710020732286597897615190761259461681578376064937313639185154458584100852518760910861447333457994154334256770077147994188078991244065610659161334714423638882347569003038973605906600280082369255155713510374242842073449455436555933677266173960531790949105172220769531716103341532058508000382567356653017954060081515189994923965697711161595449123772188086425132160912441137879900458417658315414039848388518745881234135565417691105483432853922430828195284130460578066679474458220149484618818719594515178619108831063555701864642400065169051888800842332485012632062482406750436949692116587559397417916824845892956960932245199340961584153558203886757298687876606653448793061584020625083598583216261716117619675107031197887249196093987447080341130436477702555269039163429906306963319993979600667388351455080530651009543484275051846812454270730283960495729327935008469913327175462211076259475921203034506760539950895390349930693239071305704914767172585233962994093428174922705531791148307844831242689394837288467193113716468235068726566827741198335819022936988301160815742799105774957756735738237060258644646165349010211628558031401960264898792877179337120044667322589185140708963900922653716181470640003573162233066663767627719684214570852293333177793485766453973828946337033799904012851747947149069705631881541095404231171820411688511685731137869074457445126364375632356558991322028298135717569253962962239547752078418398690900064839811992110965221782806310618507102176155258189733563509742364710831828790487562389567805381769293923556034104967323561196159552897063396201033378490024537071911898068426379632766238914892748890311319195589894834481233246356529568869204711261064582772449628930306743846631964325011343650039578229070511879913800577425072854496322832456894731355567593227122379636640253064237775564953096042709225715490501773603745327348236129265767351028619541830472707114843303831272566519589483870040373920872918454192690816910053392896407590260287578979277327758580172624908816880320908277040747799036931815063169463199563818128669061493555434322477165616409072696511868607883883739885617028608875714031563920755951883712174390633291075013290920260426146803313814800476079275810251941278474095497121759507295200834838004623675475432952515190988872100975680304721745126797910544867074463421502456713792719725264799252242376712835835483376653702549483532101500516982235458384505507765096352023063312939603442121229266202608210015691887094730117126394781374199727843084236574878966236500159832525922772176595821510644233342828984967284474536766806378133346323364065397440312542385850739911755844031754265893797958541674713680492266694964929234908141360049917907230075191289593409821358972576958279808710153182696319609208656840025646219658637675784978920339176637045677576413650349749446590845899332555397897568922505340285163731999944555511648159275161205876692272096192452517533706324273128014485404746176477824016977491166988135959028619527295203684696318008253708311571342666892382837023188319970835667525079609488399704728349428555954388177712569397123011486094236209736451792430322542496726489539134005701204984363501759119982678214384992257251854553422909915092007022662532114009432687356730148014790378594005583619111775493344542615345958335468507387344755004301478916223410136583034799219526757760306826551465465025287694886186501564636107782414173576151610170128013249855541680055482856440696701814709742154542529986573639388491776882185836770644395994881879158733985788843638313834940335381899466687183567200143537746977383891800451549706226748504314939419634335425394227191301016761595681390766042782387192692751899488196212264957436019231529838444933170224356875230453809787479049124956110369972712117896585947243208331076522237770377720179614696281473920712942596781603592460729297062765161474376842504955966626874403030464020013632854373433229978950300400289927757588625487855545199597908226429065299748650068759549006972269433434983691122891006537973246692156249919990444151053507107911440207962605467614809807882357213585197620738037623029415398088132866429524789165419594627451323489979744883385203927537875684909608284954812817281612021338690621338415979648541578042477136085934314748832022642400771802887118247468151230578180598644149190837488807806976623725258854684383872746345118857019115917599500805808148864378945732790748753503833156106777724507236150530087202315715847426474315827973613421818274846354336417711443719900226201011625818735587033721704340650454226200104814831620081911738396589258576479261464029105980373432500869678576600859489813700589322170071499823576297475692111985362023128408561427021609235286027440353891772370095332403609234477390200077631055278062295980657869687703967099376215187138725884112395952268988827631437238635299305537224586963260903783533147505786057564368797211015452528510424051536066848819804564493720516284477692179065384176882992768602451014174877240060019934954121852118420666732888603395815993568749789789855661940972226530050503280789413973571437490088965286214233209322007844185780013984020125028814537331125577065152242059356015258995710827072679316338722610428482811943468918901215215319394726653051781215841489395118718467500175827481756418040865616076720696622764820585405990785631172162067771826999265199979584927547229579829542841960189927504282895391222696016753731253251775645576331412997116406501444267633769913561718484455995703010973359579843080800987527133595001157502890503094781120347895021768485238642668634910256293269760464163228374762021765015031985314113277210149163805567233274517499591044551337714376308330748258034088321619966678788357826361561231899359048146204881305565350847559964669416503988524479133727283880177876009107415233192255587726798389711074574157717966491124767062209143348185407348758869739288102424213452237267374925411308995350706303003822292290126848860708318318092770842912842374785945241744078252177367351295869328308141659959377834276474820420189916119704446308005636494272424647426783971097627639530702904066738398608027972042075617391273196816620112805309751848168373680390132987282136572883721132069459358338808230527528901177448239830278005466626370559628391878546366101808171795117210707177560165685332920228129931822223361623985067957522274808484417291033104688937120420500923385137026458575753732468230665778867152589575691669595386031856876856453175191339337923536600498797933363562873205950519242935210835620885711396464718128033183496125633461125737770863091865484426509013157870921551126625094299413368572356471189617113332080442908211772691529017895445147139604373236718970316215529272599543670826717671947108694546463138795743057888851589186385908959914991416457876172159366465460825211316670070281159559801751472856990245017728054223702780464448859953021132670870208333382370526362230744155714804498683171640961551600547099538506593701410127102536038591561882495726675287134881935465591351378135581662515225883705494617981136561908614715662146801019057627605132212447876328141094483193774768569047426786937141443143315217066192409566525579111861119850331233379028712566011473267106812554242461324898097570251622329611658002532056836901718568575380032634392566802813961907605786539002897394806567815370883424256491098606338747169505900261941232449993318171297084727315003083258915511394493533219505543770981383706040507155384445782015134363782641178230674463128586317844819379139603476210154874370131198292703899755286573928012257430908062201423078484055138483061729650202918493499592986240817618792495550258540558028137144526065218159827380083068666392237495985807549248371977652685989561474265274662033163092321905066331829293594592354901040139661640413150236917861286038028375439074037951280667489249050777178500307710283372483474937828222878969689178318694952377584100405085391367050600041388391235113354969129932550274487306040172266888287579846522852473222943620917624816611289818694168425691162053101217531284284428121786127486036452575190171194651696884271316981028011291761697334615785058586787855193630969514405560958838453632984559333511781523444966588212908056334610560108333672721371987345587284552408347556382223382337609362386266238241774620618073668468670622309202497927368723843431482269739007918513113902676045756128026707631859213108790775469025401048872090680301642636289543802852475031462778119931524486903272350442637573665475095891620548198381723597501410563134722182722581772898289522873925035149064896812351769264043188826731925712161318353030895840785738637522562745122472305728692583028027438894344780678924745061209066695966829190959912659974626726412070877726219300191026395328646286470756608893250440933943436753485792343502773154208317954750444527648862073864963249132347907702857685820142678845527311604326897570319121558855736047020353431589169039878738890461348522484825970232005734368897971228643440736490294689314978300191757873830298687666672179435444121457057238197961086404840819768030245310135030693333258066035670599662411670202261129885842975695994195556429076754186890880369241533416349376740450213610880312062479182871265322049270885487598232549331012732787850720798614656431891836338441366750517062664154452895875895290251474217985323752862181740538337722463908564415105612749972031890582557981648190147966279462142439364290704709331252354102073355403950346711401140660914596292560984012896241400703756840523168075682767965135943017790627962399864043350847335371982848881448673664691874709031306219001135167829441728714716445315809406850852382133133238736254863082517673326100424121556860177865780116743233146818360462124926504409873104467635385938523580818375612239303944661338367486613237425743581936171026747756812069993322559202412283286814494646495769534611534053097752849423800300098034717594119240140075118855432043687694865819572632628244462512452874719250459878329313382348618848309171944442201158039213088569558601502991007142363740823708019568925879930627391720023524927671230516045052540697362669602640033277765311935986811440493307590866510199594621108116896287170775093066413033739172943211338513263601570408204135404030338827711148639242061068391199389799858266292144051634865365810360730249179612290759669436488106916575774930352736737745991858228051409610186724101618290816674509448274774501991566965725914594349832690035695541189593680821377896960035393257263438479598567661830682877060538722280866263972490790819874564713491525522025618544938701630788065164813448962201264688214890087870622537216710278296456111739436371563994848781905328235821752022022176742366119034786949868522449597754112995709783804222001385090371798788338147644118411197901561550838808688733477397387094038017395746688718993852204483953181180568764017514977420561150695446128477481777074886791276410519704052339232209188432899565521683108955377318178236638083337196844356859387401226424163446749293010638373741725816650876293037530772716695962218939301226979430243400773397017201445483366255710282449863034257653314441569025134675375873986795240717218449243394035415752581102418847439848022248938460539211610827335392009916825821019067108685558427513687452829099627679964911417260729187638945913417430088425291056273910719884461063310198622799078826762635099157198097897939483058843629830567780844583374265397330560640144233143127940039617139905290926295335588978733997190974735282307508290784550538288516327880851201438712596981952655776125434099154653226044658183496427823746187397607989344801766209830416197777040748979047817074813331580150327624373756363312080617056068176505400156592427279902961642519151207043891939554316881259843709653009069008852203005487410563767844984026789242625722163636907235757891290769748341895370838629838490613338813101692862287181092768764112478513501491861665231054767448173759902170357042557438722875129539225474975455929167497529093416327503360107659899380582079637029586667611687068998181981812771554068324444911512002712532690612915003965624959462849785727273962047149617608496784039590066540594678322214200984141469348076739059515757949874416426310563646356151295619304807534185488089688887616236746698430376320260435002607155145433065068881308489765858550290813452066160980596902840159812115243109700427035820351462838647989769662220121017887516789624328760729310496938309409580147720626460721066769488727494509621911172294792223216012039852926350678619798184485717601796314622760680644206570662673546258470502221880663273194285848735019459730549358078770861028984205905578135315554715046210201249087840160915748032052451482502208999282377801331899980738457665258407041900758634269474131389134963710709872947773573858708321285776638719120112358756831460809564596886992556749643494172439714858210141264876962544960898232225957006309275088306706422381700138015103836020642947155572721692985947279738323535689822808791958120303852913340928455964908635643036086314723103504288776862540581255250656956137407958948708419565014250861639751345815554439790373805801911871816092472805331315136402541895580383190165121742535004718010567766555313972759233262972381461635550565188117618317966637121708939664054352694952794411131242788717401411343508228043138233185217582057969404718009089073280829966855884907059278029036725147775205683131738901848460093444924975057846514769870194109432862720904040486777026430622926675599864850130051034620307717599039612439098664061562931800294146781920777501040756284934718932789927305634070497765686467452289745460447177471978935291531398289263840621831089484315177758128783396287584258231292046119376342135409720337190953700507147992677320979107599069118344543691208495297887292010752787115795337754072620334088994527773648795405805565473656555300113039193639909920356513832203186770937307383758985076005135649752311686700351697479400234407861657985481723070805694383404467749659911546070821651838183137902670362712643648080166452121023670236562108696131850947069970255908728846949167784380311692232183260262202474870627395922258701536956655243216022798474344531676643331083193637805943652490530799644312071059243135130398449851447853559312956586429895600906621938117502544922272565882777644104338175753617803550188087568800312075713090222252306967774114315160470480825029635270480610604673387333354404571469291448398052514219187311531920054920049741743035402118668894959399916723641705695053668852427000663254545504825580084900184464516442347285385981917315440822443885315183404301067150606583204599537658298741510136723514895677894551144713079808079359343343180871757512141176663018335840219014703584336106281896655454922964407246355305517135245642047598258761699108960618340876328929574942120810726783532909654519149075521243540806672252403006163551790842870064641127127174400723623272930648288912716334391264263589635116518918053846735251839449863875985942179368479214531237022476595587507470626854485808921436208686023618873337832728872618626676472620261961180818437461165342287221460113386453728492372556627527903545473857928185242731553656916442514469016984957994362570967862709255006750694180746648574293830185856021815531658150366765612193613802876302594796559558025622759638779397470461209276267836360126157244579182538939442172783983804479613257573247109278637410162409229132313163185763587180035052393348542430441772406519132340425368300887731603221629079653893372873081595930758666106233182558905059864917067453181084347261255169062926906312357417990322939894530936210347722442962253857244845649310584727998923319083275996948685618726532274606879900113908857608388192998286477321013124058379833848205053765177742234452561754627836145698638338823815249180165276380803700304658502078985101100039109962546391824187315189179192215766408102402868465882981775906259859969388236597061304199458335418353925164768081681295609303713955338071125352105380065642461384867366942100280010838397229647512612916513683664004294728564421590021366799595961625409467727948600594478051830484983161529568730078319649703393692673602100664764137816028978789568919735523138658013954367363163291782944646149162422993624779708668046789511425303141589926405321921127333698818470888335526910925955155441249631503965720125108632070221539342015712875676644350754380976438611408368145819461107010435493590666158157387847967515074430986693251586754171818926649425332364577604031634269862849269779518896539012807098223034975644344175145145282042451032532640526378641481949566795049003559215353562742660405128548092081289396456930479781639429077763962122529026852827059355533787003245434525944553390485046608102524197096140225710582086154371593530353547733298330904833934098333310591203082191462783034912229273522656677905684285373853116430059297681599142794841959490215088235197825233998513557516281741215377008208276765016221065560044095797424613961214064121829831280345093236418018824037367186869862301107262912853066979019922446907511743166524141867107080111515013555112515887127457482726024676750382168747566379386506971336514243151523443456638195634577195632309944155525984962202285642993865812284196081646068703530500333808089702778750683434820033609345909299913689399324290647528706757336078094684934335790100352367610059171464906367820449996513295656927581888026955427799317503763094595367599607396699927839506521263896687919345633728337170856091318729422882627432685934286372059061170650007124582788965910418893391029627759058152236070074603600456620244390676464488176537469501551470611124126318966104123755752840499101247400113499536967430573144123966010368657636465876571449104530082255716957964936959053817361168599531173208012439042689138035066291357147146272525085933918851213887888051875953166682598439874298303169129618710722979683936940186066476508678174040455634253873064576853016215959710966658528226979763128919454505397331056196138735070277791157446021603051295093495561069655364991953087955552327311424775022366947629598803885142303958341439687436113367132904589441288723269770845353056971229676066186752960866073646084727541741708119414651466024785665352042534720991795155907120184693222954081853962967518812916323251109351846029576459237841066460793805833116884037419408777234773900750522749051664142075099296400339891798093380214558193383915901658525501876823526728015524408600312990898057415459858853377273326889013538516054577121232046559060547966399955731357678500259066995526547486799133498707012574262717716101951879012786561557044693977474692106876428933401117276207139877163743274142576966709825749182524665071704695030960818572276452086098852893858164055853524633011788242840494649616614102492856043123784752341845125695061407019398030488021363150562144305638975555616628846289051001449066763513250300790780855414606597320612334095514821963300887792508559205465584334971582251362822953752983014506415269502735987382306680264528873935926946695330558440595963228528169708655643104749409049848720136726436645121939595243211606692508370277877794890863040173150408817337808432201904170371936244012041587742850154341605531224320134480433312327814421081628492596449922218302870634315632804484334887507562593253612715665362541068481079047614780957767117887283409145885960577073574276474700139462941253401121401236490217096450074627452772242134587302292537187434392307799077521106249016127118051097767256800695473618453390443570378621440069481083105725371457860483383717148650655945179853735230738333228168117007315182968186929399817981797230829931476950554556042967702799647748641610817227310967326424465791974301205063128079524368104607065323156892923412256921984723493579249336659665873142538287102466987928828330559258682074621397625810902425282030638799779451625105968003404404783306201813233941199690285896549073221214221865724764066908722769701136413637737660023366735270200428819759626605906266949237377407172684658668161011422462535719613269686871863079805831181130629336723025553540475765729953238468129194933855640329737520247952151208258551601206653767738913497937106982525898020666047709554623970070586620059552394473427576435105345169102372565655863605993642657189197881692460950886399631246503759385369915781414955663914409811170586373675260170114668958442044442968091773764364703333710827291357506301791165244050726897056347868043060092284748356339813969238251206929565516113589279746400663765494715987901092780710961314388378800570829769114588256402597500818127572194169591918592260053659871196168113005163413107303896250031422577705818096683163434380605606594063649810569952982992168856924345698402296689653954572427716712308477145819475427323364886247690394461071650158429101861851578258133815105065779375122526434827852194154044928870354237831174788696772740050392665744830564992346246686336298733017523688586604703325541675069636767074748905053485507203496648014762193906976463438757156978021496969109774796140750891515227882969174122120879568585306124954169769983829026944082537101766902326058079628774625283871016886904563938306379870054239927685042679881004151612066071935335280806310021436749762113635356229956069852216099240479211702778480949109058997689345465225519684850828238803360637158704866185842240331118890505668414041553662385231400615189872856087026663003408455944218411897688563059457309049875430473081758732942931688248724571284016853912377803613499842576453795973231416204569636809527592575884410354868828006441782740528666561989712411312352129015396117157701770989872753108797758028329446759573023803446054282595864851131695779504601073738884035065604054925339831590761692208428562300774923304052256616817046167069741488134190056269625571791983986410574159912574853018445167939875764484275451030596334230578721003126319776893629784791754746048195348271390468678538079538070592823563528336143940236545478589579088693479328171036062235454773075080431499576965979723495308130517841005629242543324757177917144906040888169672885696327526845865416676647492097114623945249472605064135652383693151056735834806539106065208854833040263749440823959430518948901859806930840341284840491106783025647448223518039657941022032657645050790319476683976424032186288025871839600872992712982359767659723144212619442443408632441672597837609218019193172162080570632016212286506901658427715823164469911290095154145130553184037096562762821909198953265734795632007493854256760964677589189421664899413037468569102881884780065346631248873063346118556554947434809586328872346411038373986826202932024282768939779085327793432191058799145773820097750502472279072775628864958515488106962748897914728441236530911793165772635805114180527024873909414329038287260516095185467397525759917928913104543865321576605430247105426658440326872158568258440323242769064116597825556254740336630970674488767344560360332751542763912334286250307079073036084107659800870062413507428339301155623268731734073749415786702672026104479333904441012833358363600229373221641701048278087628998926976953414193952770460421206556412771246246124414853306977925801153085676459594805439749990250535726891712770470831854728856997457129572838444458998357022176453988148787006891392437611362360701500332560782189620706623375132494379300868277866241516033929906576586729842729793864995610585357764749289335800156258243831514949540646203938124504869888571915630374104092982714370944199237895840011340386644262928662211593941876909494256940934883860370020560609463322250789231297043986732569117431456149726211112322149671245240439791026098602665205175159760602768250972477414016638853306893575796570442348453947783774415162746314402999651213697450687630268322081078830774750232230798913674827507170749132069038767133910158384273331949167467783315663211685145196854323392124946476380579030528887606285958781868958325118357319393729737412178151463693228151202535823906595489395069186530732610119087574765513139887813835794673068687114471734118547269233494577385210432798801466324135126464946650905173154933987985664776229595229114676005661125767927929352840415774248638154012337689142871156501164610351901865712519222670788212243599910434333926702304105021681787957430868208681222764978652152187239109307849833960450424498341073705979863078977047301250072770118477461551405924166123378130756331786310851025645228299100272524986941932555262765580791699664735339964735497370541028931373455997253348978971246142327167554000735134767590100980846179943359807145129310006185922174118454195148640722164625510383936046907494682210009988509327902778795520504647751507998893916709490491185546602546402089118156969455891896794904993298970759148990921029885264318887454127915082001551012718986756968333639494767697269674745737480149351324160875702750253595484793583632992970211185161800314435927075806190839554426069783545119755339705884100157247894406724112217742012032388611599215599921941990831962851895850831721773087268495101707110421215945624832282747691782363909803755716626222650264810509248823914849050189441527173674860290013376979347057705968343228708074378789780361671808138925113377452104298104473421280227703650637081570530465912322464248742948713006430350825197222010724751812249812704905948042470268646737173345410367201717726476519828262905869476901153529250444306432840589140558794081335668050700935335781423717194155238665512520663299605083972928587401259990998297263409806191250242903265711889952551592308091324941455723629906092836140275292103513025000093875076088771766966629847285557273941330558346988330641972909705241308333463006991696553154417784164493520317436627071976732987590324465725895097210781562421192050277812907162951750539473651752526179514837915440977663687670057565424114320270085688384774392673853146136861040238745660599143041310949587927943026379830264332339322380573109269107548669587066581668964259783429400417257891786108895082010987173970683461103114678992594217897021948347295983833168613994707085990728368048657212982671993035506613512904542721733355636296886596860381489489549302445504589274736528062955384794893392290960797293895684815927189103367268517595391327508828454235198158108341758237221157398313395463165293417456014502171822478164883131918058599125915807789053651259089808875401083721274845216406460597893091219017555459716128501856995509017899602694005218678185182934720042781896869708933336984235152023411668486358571934634242270332767239118896294388589676901820861300069696933379825355108000777592586179060207433426304175764058775833964688573365254924210908336980892263905342318262054991209411030492388401960984774206564611169430087726734641561199194811628948832478795273184957027431048287846629784874959759593584435410136457342927867378227282232647249748175574845038052409133010714556190666915457371752040115126968212422687664992378945463096750457472593820137564989026032449344540337856043651595191642721453943655613038135781475251767099335996102901600795527070690406551398445154449007671746478320310957660123154132800347301504322347275624096550766161914949237921708453904475417285101496184170528600170853854293194147087508074611878059609827361693912035190477026597816925233112307590051231881137401947908939290042014314140099609966828381654533957778488210719725089910138585059191896847538948245043885299995414662350340480557140240974613943020358792827360314496385153394906855152215167010798955284985395611202940154307124658281668542038183477811326940419968925473546429146591963732217454483971412227441313322561165118159936253186820449393731177111916621629388510823211369143005414441350736044435187934073720064488490151590740560625197250183305497877189002633257941389332290641099762323733832142399119158997233617322911286008541174007634273264013002121074669769622918119142403566423389284038767950225684958237848437288195648310495984845079327287949108410675525548755722946122283508653236503045636406185599399751921168917776017106655690190839731916473832554916718024065258482327348037402516017226011380870718831816219524588073345260707711683937629203695170012626876480269536511473111500459592515704764624042170353470995150245690952636599371995305347302469772389194500201597542746555552556933375047179801994012054590733158498319079518508585619822278764298440189013718802388011226402484285150595504810320638120993842619159411364600140512356409104908750719721733549576898242818559374445886087506360391071136882644250652285311768285477488685967960307196265997696477625207626891602981162810886489050044047943321000519624019813109267064508217638558478897387221316079802572947008622813419869904842230704906483751406930861463696906214966469213211375962359088802073328235402725885627339104828073193969421666395920203763084716567325011642055431831627880026803592777405774979001262257174631179247326231075619591505075072928234926730616453804291950251007195269272186355227758403589825382407672513484968155158879388613936018722034397041954230201576015457069272698809418536904724259483456394866037419869563757683611596081143485276597446206710103449520497140876846230419834587717673437407198380094075349473811035012103520651446388965258557386250032295168337324849204794629529016532891617348724584233254126653174180509189849257757975360945218642114591717878025806017750641072016355676192773968868127732203039143038145083231411781730017073118767441531183059465358659650784370001021312547744465056060799397448878921310485786124066740098084735159731682623315129216630123355453726596653235082641635155141437869818722379771267386497082746300850523550504524392443485718411642330862678750094068484889489411831847942229834376089067221240073030577859678057252967221395175072062927714977417752522476361375625779239880254197677455971389067199361341205100035344300256244647535787789110063929179626045237086908273723562664773157925913860625019458512946397117356247601029995010514687315321755142888148612574628736593330703696498789118735657572877569074768040732835188107935079077899498331638560128273405846729245723125463030627535704381900219702660411545664770869616015847368316158159563197234538228475488433746147779459197753487015263392480309886820842774459425201907244673513365772874938202627463959013772748789679467400566293194025218537764353639711825815332448454222872622599493174932266745462037212981696409162403943829103092134938923264521110350261590377090710911372006359258161499906251729307542591793262619839737179320674326483618660980629238452783410755627117065484567587682538160932276370173274162623311088880833524431871381289049056500005104494337328222568779896828573482881647539620685636468920957582149524246425609573741406344484232678591872941518736182804875001207102364714590189728122391080948808148696155409434494150944101870988899768708150409401527586219322870504475189949393247324404118468316834758984912987475997607183358431304801928620281325148816068492483411423573373185828895095460354503854172406055035343663757652575004715274616842089276513694840360247780656367142645665682670206597951676145275697800759108837155111606089970750313691019452037755422835747486655571801925366709603886741941243333686271949379771347850303876162628075136832363275441855259348409781020064516444914837051587747860477562744016900504289700591374915808154018316788787179208390691831207947056391089148578003096457964558902448214551587526877533644297493409507469553325315178600898241326161572253660143330798799983092244277627150214798907551143031047538606278666095905024850110475703054611089327361250242898351702060783915424376637071788238222971267376549102752699229020476187168037808133751199035233275611789656588957842258598869968015135961399989556632574093900444145756009886025193962728737102539723692373485945210673981544020838968009485015853214718871543481211560953832669809024176894640163753160617999360532974401782915559583277025561970240255048057312679043055280662178248763096153354395381084277114244727780820424024465568743240808849117229602742560317669182047709482655310595123997239051006647729179131644344542265693592895330380238578897964971984824810764990587177014987358438687326306620968366520584642128066307482020838748057004393449736671780475377697334143151958795632203511529481797459085164166371884350448498969208583867296158216190780636635954970845698462120532685389856035366445457452926930629009152554828710852118850709919901772564787294031465961607457207102605866944670636190733330029405401580259820341113418183359074588147121379400243232578315622439007549707296377826530649369073435849024509296865983552223091936724929666364015787150894615498118735269924994138694581355653027106175980218656565901925671329628974467949611113616292598473617681280907855473085293517678549320175720851223835133109886978298594915662442614811527633795924484066653129315750596737048055602457788539946555611500796354842062065501532656028008430368045093676423909414598231526639837754580808260991748117525015769739400963003138768088838990353868106216595293722056142706175068789951863619885114838245585741959790947652256367131849613616534264873292863802837589946178940766840778775320681362045763002508355556989082399799954813622949710862997144916133743499516772870666709276285775031834885934603453661373820690994911355087947472288246623944327259862091711797485565806750704907697024324260644886208003228282792253352216623260626241146545051592928225700951829758589479463068541157902734980024912668505209119210231635440393221958696175028470237679815640814520561995842303390131217245784938736938360104456085255705479791645943606717295530578745254011613169557461068129939981960551902687258414225699253725968227611708059110342027367015071944463286203423843678363980997983063333778262185871167410333276863467601479958440394678869992576138832758316401197141399195075417879968701347923386520194387610782489411393611670655432414121029106714735837968577986509817409143481259527257978921445776888191458949120770799377102761051339531814215835784907586326514804177999578512155558829959943240190300534805978650702851187991946101337234292148270880480183665215169946145450712610794770085306364985281596506952514389383072377492750579602149170749373558913882639147904452832106346154675123516340507779491438180229401158948596673793067992607248861356440551691669614873132574807867376453207046700390535043662467856504145946961967594609099321606395828220621165630125458551283417129684760497956857117027319358809650397332012926441277701768311254845299390603053789076170028086795638009819953883201550698687219524473835152438275232478902067910770198128863558608647931319324914423240884355967975527185720755923546587233673135162952248934646399831075263506079828609185247735536094264686893692148993644046768290833140878823660630107534889886799123379695033773220822205251101671623064734200392770242386437021672798778717797800881070476651278210074653644098411288954795635692893083240802530917979115684729100772496244526648952244434997340243445255673013452914840153355141879295244395399536033979362411440571235475420091613121254100292514467840248807774753128550601131961670440963005838396565669168148949658758858019295128173595567306023566229900422254927958272900726159197049126273193153716784237410562534554401065478040138183402628162213354715753654622753746907132711649589022980115221080248597407787584735198546051845996583675373396087871788718396701785366249600419284749361559585792325450032087308205699224479155700735325496735628476694108361722341784237742603467585748869818352217118931597415427949829081000178614329377286490284927717018649733727587896134537968234762108480895324280243794530629681383273192868234511709497379079400741738214016784362475272715544804213784123381301804749282649999405410624886373393381242582642779973684430277468158424545168721428352610118262470398703728546363383630662145825170302705080379052190864351201759300727853341186893905764104597973026943488238681012196779027998472312163975702856013873367320242817705457836592396898203846016306204320893131109060684300108836915185482089591876098742230793397520508201116682201351512822068513239881907143672644831213292960658578385422799710841167691164188357284963093044821195114045548989501360795460789856180946339508575520584787858332621335342507705260843046546121443968318448231598992619293997332183398821996998963377685866576617495082216847480617194002531336737898513258498285534857844394709878635391440014201618269797445659721216970228176884141391901644795475326817591617174589307600448179544140021944975862056267693869778989899789899632473580147267464644534863255227064928639421642581837234019334815172285684660227166857789452064616511876932801703343841892140081362883484034047004428325261176215958423804928403912381058013525149419836712121476390130581447990599418416180870722697826399121991547100344643919976987197062365524403835138393280997457867924857071665547305381166044948820425314572491967685365843763988752532047320140690555237790066724205541592732522551387850715824071649084855761345174839540930094499983091017777497798949727653644301867771357411833800124932279426405307368990393648105963939243490795021153398171666263909260800234176869260211915400539158386647708239522413016749659034180635996076048481136911130202712875934486844488657093194592819359463997006523719200894500226356988721905336695170028992139345491545238705484175897121534734937232426272570995715179884634888412374043860645988325630235791119352645493191467641573784672614586748659207447373739614394539329950111055789939898714922057578462474939687563763064617316182896352053736643168923378381951440895475478682872339939627795116368611801349690401982391418863746946609713587506287307356064332617594138327423069074864526998843974413295546266743539518300174844192909953819663496390445205409568368313876833039345024237466789014143342350361574684948835828640014315768190617400035308464853087410766824434768355703589305541962730019581434686223140276004324276225495123696939328412864561430182852586911380337414069287893495054793934654085057777577847105706180939376373986709979080910838457826437695957580401996160514853608262102976313741921548814279073136926286325064305712156460037168896086059272897306934802095235498360721334280875362922781430416955276398653758481885003591565114233087373743780505682329255256033922270996972181813708830932216364150402519131546252929229227931630422858039681348733682890771412988984934949908697531697315301576507838337091667318491477722798198244981824827867931046690217683482651869546299195215665599277466911456123535003419860200707317858504744831672600189929327574675033111346038895093886422460513460339014351509654639507224578728898708972518797249104800696676460566526799434593146529375299830737438937164630866930724932184535346378299790812980287149405565843128389174513213216836865057345693690086504974368762773612742143941499617708137085639332851463316707774175938833290769397523882759887062293113995138204934191947008246578708976767567104768624828245190952459157847364551202637727263800685168746086886931307619585438600811394179279791654102702462826589906057697094245361066129352503157572309531635672847686998084545478072270195447925483340367500586310109299180533343862058412047583914329412455455165328545290202170009450846539182016210692545240668854821898192835094578556758926976048230940807209508722612873987602488399787099826729259551398716022693421601723383298095357022518489469786232745358580925668704130360302021668390156423519743041226136895667415824426728460186077474532587580796695213722490557477259624141394700426701137280449914953202880967600019648723828062592162356165367185784105703315701224997143264727422958846628366144985022268224639716525698513588810826021260365141737069659644570283748067873015428103288522659597119005826444185317094851639363617351598196905659229947739571296909365915547092254439269978051339844896943127444111953135828531175824401274784837281028385237467454228415647900611670102080852130038334737243387916552405932945476637733342561576653262226568143003996542765353536306962905898816547158197970197006733232368531109444396143169798082118173245923249106641243972473659199441057952543248556231123024010333220330747309542679725308080157454074923409720910355724672576925665561886791885461410205938071903658365011318598868854916126391870387565533699041236593018446251977296292365062251333447502879464898427294127518297590239345704129607881673920868850778992749497723113611602671739972082604618386033635263438452477840650670086937807614825084363774595420968063070251136961313239913659062128381324670796577540670496911878486992735212235404891557124296880757736197087701516741454969481584732872833150070011197222810319809368265987500534313316698226040295948356218340365364397770455486718890920627122398672370430772070562057670856875138403673926289733001328835092471643232115877830942327228799627987231910748523567355938368274811188875565764635328795813549350733511337442183615943743124591152917571518704938401736992405567406258919728566998047141305369390314112969749121681399349127759834335134592781083782914376081121490665613516877169906817753056207819522424662797931457989748153497016157540360308183035180461065723136730818215005206301670757560637183979301202424715999459026081608154747718237641182599480464853284994855046156600868825187776015887850019737669095542508189374001387609573556171781848078021581325608289464300072602573219388006332181636164814976217961244677247095688207399282634019248632165148682310051118777327790200083004549104509470670355022264420721881106854031990951177302591305913025077009132357204381550756569974848577861586380359201935178654900747789239932050764210263520778302435156100741640978271368019049355377600612882287873465086411592189249138048797933992530969384778544740529210657231174661081172792519517715404563758133742518444150309700007118065792640648072225876969488188902935483314063319213404718520065589348893033045283007841948324904038762943295048882424355032200605636109314342998744571343535091715167164759830250015462001359575205977836533134766466422966630280965250661362323256789858217542470368811017124152425181427316529183207763259755817835039934697370127954634229730829513221610700564858639693719666840421563856489693394556436749507347859761949859576287860178430523229525798785004835964375844886962934075557975595535036698122576746693356788406253610458526790914390411892041110917318469733220795579379797289220722039139397155208625455739580523587975996347458006161715833150370850955584618631779745673972259059183247454457747368322214488835464519394492829504953204829594466629337758051713679178665154095253508054370096768727981774175579627730795979652412978980972558537993656177210121190455706403692289113145716626854936629870763606740452306566724635465100959709605485423306197693969318320821757628149700101706029439414078911288085535166514685037398983510311465349483495322297135570544841201965023358317457778674677425511061444763735573544951308546980395412561242051639305761106729791606221272744729676098327221644007124798303881826402784342170213684314706721078977932722086493663529058079754618169822425023060771430403587936458685104198302242375007566681261415089216626951993865120558218736557014126779020266989448412797839835720721821572952507726269409163712258723171881412838476653394704698862982902327709402011224164196007482271346248952952775645231931593168649055597575609712918123615563865757984496636101881436049361199370909214357675240635617473464249786372577625145450310392090180804396580026357580393634931262354512528835143142180265958421938698276966184924967137773840054869467174790884903000165830912378091553253326771898595575052805263177102464243003959948753806298020023762532993890580994273116726333931361331298036258604003258415522507998234889255068925856798960196745253867826596331064779770649228418947621572993147035761228934752037937091288897780486683242677840146889359057379301391084116156434467255557600547184002124147798963043053585970183585866183585813096784553455031951850371432683433386149793597137530040298034722539169614395534784528172697957549082396739347624681959758031289694429899940577115230297892898143898264497114190696730216552592852214165009705325117496846261908075010023735616001489893111614461463889210355735778149312505480437294498041216754519606753425543673297746879727851712790892220041284273856458345078351320381931575750933530183916143412945990838983102573782840950479892897685290202409010998578623388857408976456770934429276594142963705946363220960561469004536944354540458568724120722890764444949875892353797785438514691960656043775517106770649678554920459097723061201758149426726123425649798252644134449617064614204081704022639776116024969800138353104944269884134079013434811264942266044806961742107759522785698851216094114042027522650923496593783430332855771393071581410882583224031322973816167555304829092086991180137559149621453201899075765784378956067903133197238564911880195511659875523908022423211633368581182365350329198769629512180041727415814134629739835868288045556547298870919291192302602790526378126433863044201828504896343208206208115153022884471015923057197555735142936770387906904479229140258435483332870667422135694461991270624954027500306552475698893905973518699093592681977749070999520935249376519935999758088490277570818823168400943657058491297883143568449455433315358492032087728420107322451017886240129299773416376918681013501150792185401731401378439098633532472086643506665115565203801960439178644671585492993627680430523172504390580392774393669534398385639149677414238131097114359284224115450618156435099053871194484756362159777130282505417355307938083071437552301939104485678260766295675801826980024370187651304665367937027115248971759064106270754836125178097075716554940594884123157345686796633906128663619683043726948465958651521138152059346243019291211061308908905337514160154630978934641729748807198161933824821787541723218440840139717150894936508462094537107877858423366151464735663775169695397216441585958529141126421797075986818385185920975263931461622759996364496423535961074186488072032072095671340772216771654746583083374489582855314832686779164049320239069436630806768227088264469367627219859955559641408171299158639180401199451511524525156447328498986480001037362251555152914576658195078440169677986741777802666099320627803225840743845637152279625326557951902993974857342122338637048902621917779332017180992275889891148836417748925258268018492812008988147062218970533364097991354404519658596800608071085312796096499885494950976389067905801592566154140893247720280189834556520730151398139005301664499490968401919233514658047787409979405982637057164032599339680425576965060907259106593080073294157952626327489571552760348319813479659809935860179679214568211101601943359004219837343895441743177096929446270100368771335434765492250877325129590965691586004523945677666246586006366045671153046772928490695257556713247453291324578750427183865892618827414834340303322386664836891603093460325603445066273925135463654140677532770456961371237739662330257541337585652481327336608037786556588236232718357072948204886182288350717367399707122982319169933146769799428552320931065433510633382332188938984330278375271366689859832973523691160654802541104485422437049022216398506081525519918873483009570519076387844883040289084629445470144516901449068477980951099710090888983969554689622493670486567489401823824619345476705364669991549784139511888787771740712160219925711683983586303545402284640570335735380884510141096684138916059066184587008524088402679281757131139743467393958163397907537751377665992422800128749056108742868298907579106622352746937060004236563518109464705023045265104711557376786193901470053826246113926127680664277124430998516950333434607282166023866648041372828263584839678287314831445539635376073839963052848474867230441760030569200997623280404747302054663545267589654695899590000277144078388204281188488549768636069058181134600429942292783611160921033435749912236894021021414513525342880383383586467268327392108927482730451546165896008970326008984766642506649349426943184434486280131719064885567259533132239065565030208052436655369440625958992585924068168396038617412380725383110705733974291722674783644750604664022201791682812359419420532656669183036885322526299615421506629940355017603006680260141916194553793418170675315792859141916311478063623912802746950211649397934161747270187276131533637517409553638341214510175441914632700994051942803514286093242640251194891209920825068382948299147673362534331287536656271323196894381089634291328443561022473049779697140845131837924476485202630397673361320790545186451145008275130500151216181309750608418471214265927873345955736636379505484194653981901495426763942501961590353033074355073962054712068365342578352582895539854033826471158097085021341626893669626549411230965258536119090635888035169826016434346543707755574641983570015872988818615515232049846942014083391090157732712497476842405617120810202003641253777079376651285332302143473345443922488322833895869312567165019060691093287095084841042973832594196998736046283671534135113483342548953459325523848763354861464713840860090440421653706408257670601224255253402977175686699852097752671164683525015447436001650337203873166697836415060712840650523253687406773000976913206703462880756049451779765677505125389859981405465470750140797947229970751156594240501218503261860861547233180247570202743594713362119968893491570465052876777967324381736739581282422581304748583833844998019954812193880116885799558903755250278304950540025691678541783516072497117443130388117145083507623608996040244554702602393366459909405453932062560191436773418268043129125555636056033048285441112077617880618349095232061584812488756557116827192064013769115218204376288585139242740761555509714644507971349033307389375860718120566630290163275376439429204061008463437513512682024911244412310155586374411344201551720804422097211645333078981499652257656090820132021690689446215112930819871236678688967000110333617919565519993650818283752407623579245486938954165610824704586059363295767704403909165048059983943125206154415932609437014181441602539444654034814113415500258898322510398485869167631322806258739965435157604001434492359512573040599594445869799434570213556705052248230825823523684375811406433844266102188329721502594453859734298185182940976445296999608576118229551307426439609612053159450865796408686374248482060891305501001739754224248449504115049840493624979441870120275428808232462658560034232517396587618567019587415859707138960397386702873696948472323255590140518887188193844197332081993937656453726879727847489739496018326646615518538625602476965751168955932949351953221031358723039190301812259715092298169214020003920761396739431992418576138911909908280870633993174167321818321826623234490109582618722186959894494744132839985578659496994295144877968313747049045845566097602814610188477492522633467685013438075147489048265688030528061554842497904689327868669078125618247464823059019388939972080783462815815994353154627775070990170756813988435089716132619067135632295818572991296900472028930380478947900566409507867598387578855007322628141984514977701003698041664585098636953326325514496868023856241266943389005022103974059507034950084004409924114014901740334224442520534786945375735599949714950323795824330212814336878430275623687982574727821829670259734235008127928135742949650797930047270681108068643409479110702725286978034120741085398254253381991072778048899982765089289386907426761490600069252329833612879054558687783827585292068096864214541964916689336819290273789870203597862881668805228479148400493837598756418073700459554849431019181507679827422517892219396998343725235428629808324236785638794995436818412348940436508644364443735384908026922757164256949128669078636476325674953593598711621844576242634040452590142973527578428530709593667788102850102180770398035001393859860130158288137118612764193656972163621861143724139944136095430883145043871467048833545678107405735444850393626055878358010956034169273712310867070485858991928894960695955170579457718023620661545718585510976526235665777130209390678854661549052781679535679639932677360209435616864950873893312081176335512797698183831663836856363842319828894714071382079077778487502949580742335166741607752915318604991818275888283500334103895512968502994932128483638192373713292845111540348983867990143456248199242373937605013206634633165018685417984426044871090665236721686727401223247492656162504310600074377613427648321049234265775933511429338285534433894938626009016186287069287718608407228498096034098745083653267484530972247586027073135176832603574773305437733174271263272446612705800469667557302117421233877143452668448766126889158968357124021231052917674817200980878986888100936083882306290814380148337108429576807442036504042768739911320192413836332294079873878370835727679550996099656327521348868835575701494953155974106789755272403422970360982298589563419852225649263457940914363328520612612210322576117510874683119214852419905002751527095020181723763700169494407482585324558252508108881621955792327932854212461579529890596627619696222328314763995208779286042079988635434069640975978231885163700330508213087130451304202034798879514836606480933131797590491812629294916701871442466938792496380247616246766199799769221777018397201514033545274212319013611508345113014279656486358167788990833567287300540011065905041765410454282178042356547061064362047973856623553064487134741388171583457913319095842258544747788602852695059016877164919155444947038758359016309028877498948568169692889813214224411656313969019638280434897651363356707592650981433435789891874943373525618135531939632942148271690385644450494181972856044580238289897789384655874198224555950389868560793295227541414547949415006169601465917376504963830860434278123223294553365432012335195784596611675668313407240780537262017665577684452727739989529871122594035413669048193985123276452937994350121592106190293194030583664717147692223293178505053249636459709087302290026966680284569541245182835159816853466737754340794998818893977195047739924686232714817007071553607788300250391430251767445043089281745564731925028020613038988042020314527256416383945814513811365142331995866993197346620788031171593437165950986393351411274597763162392973196393286550432369097576411506652590329474312767226864729945706579960883106161940648818532503233066022027177549635092358487752165796604945140860153609930933680743972257571794866212288228577313248072827764147350332239618352906095432550507478541895439618128534555538788918286448004248092348672999907235318463098987135090317842307491260493864233435641150785530208553431724679152759852034293842471473118232361665370152790263257873560169696766816642062247964617003839551767080714362508822463606702384538211094474086211319339374237303481699328495963986266873864702725155877954860987649606252475345219430826647039835823261819353553406042521273796819376741351507541018969501610256401055894572753115625597031978128514299291085743721300301494436383445415677791814011387644006875160473414192514706841911746110934130085055466523613252006897081866869429982363097041890258881016040401454301167861378302293845186343228560517263982861217556511377817904712523003219451304598861120579940493201300687252072954367032433968203115879647459200924665935556531076278214878049940523901291343067470449250900482440607683018814956587513452938476979756133391216048369630319105618862194273447971562625297016828172808555496131285691791171340741096947631493227168794943037619111110369707479906341186534237900106607157409129544525776105784633067600579025640922452797230080436165299644410744837717536567119811814201083974448674248651665050208930047576189871434408347385215094365356928708350213934652415154543606551701874682932633649406126220209657400773864746964020624015628965965436047106221599323348541784419232734692052469309732256534150316940441168937934421075829836597405799614284909183155776849271671191397909782547492820677100903903869460933558421245444909489064134076432254969739581503250074976012590916001098337229820043702666014620277351901731408412291777545128201481517002801279609012897193242971808277709907394587239087432702360359404594099291374798133163972278264754629345837396681574892678421041309425794982630302663746973005909840126292996909272510655568538320988889674936243544439933412998980462098830093948613556569818716837321604488970901620464212148988974670738811739323236993297232880315870937570399358421665011320052306130267196657870554799597409321502614360290907841749183830793131356219780694261506694563089356786750415939818422636580251751465935738609873961264899357328016768564567112199765907065247340077521769945175210140736404304666561597704010147725379375315412282781569676578437422701814857181925281969106994261030301183894510287096750280877728163288633338700252108932159409789829566423934770184979122615141163639713675773654472953911716630843420519391135294818291386340519772091173319985125926702125445259822046320452812998898336637463710014937410449831867646041067400385170116324051223220605099459549056162204371043897214059159461559049531621170002579949748095160827477238916541784152709978004440746682495467471205645572816909906281312399559588672349458919856191485227182625886826800429544388883790309995543682343146824938523381189782657764330517830790982844539857344946577698233723694521090536580363335772650985763481273294439395677913219217366633756620773692972714245564744707490016265462169484495250131185289342339180484902928483118472540557988759290827135707765451426549371403212676858794570945228384887726505680322157128185777149652633799226717610297654225265698770621975300069573966947898126636466170958167685020054420043850380310397659712604085651816196831852985172219522497095851913646995417237480046476437466977871061433793542732462321807133032274815213070060589429991709386922590988697311232985435747143841448844582462087328865927421845683573438408981002564466993555585060376075628550028722024013251480685542024533264711798513812212976088049902238605787409395346597345816165860730315658364611505183454142864725252291463665502614221135059332815074740864915018550169052112226375780835732768335726336007568627497975415856368545659776123648330630246147894812447209712101858408508471033610588939562625046639176583786336669945625208902790272597013968048019632006776620627073909865581662031060412685362717866126593980038849169085562814399528369911183052749845778721020111211071352823160591015782080169390479224534468305454657141728718130623953159158068572871098705800550780351451230116322575503574620217101273030935398604529533930118836438255008091245342897860298842466140239427433134007451641164389413518590246104295206857104130713554397459197926424666663459076893035758040812856171638243658543282715342049621916754181328599648333062825842226522895832981601182859114959751018109545826191011281654675731988867781968051665762138715951401760902611881438429154659247020085919293882774411844288920226101750339627525227736436216944577380045451875318328208505152945031406424953914269592174823473626314379262506061638846187996054322130188781891458577305576057281068930879861733063060432600213672516851727988151857304673595695506919801308945124738580474530955674209125034921763699102829286831614805294776945153141049580651286595140240327808976851501672869163306749330282426711648304421783909498048610288460110237336378673721188704802569088665999493421313633121747097787543623488377159056483813080939112771291464443774947226275359193404757126408388605507045995141992388653535404310235433071560921289181247279588323864060838258310197038948550384770492287258119040272092948894107932732025506260724384666489709717744200234414938416485082726384707810183456713361528202250029642242535409634547056181536760769123519334721335117520741564215513301328529796714098522887618427655997688405410078554591221204396808164629235471417047507991586838708073141333545559617777321670816974744458164289546468305822475876197862104786357369005417531923707529604390096011355070641132336551312704147155533357643292175318134097605886091643682784070421040178913815978222219967294136742615674694008294353278883163246112330772348185490778957841456254735656836810916840109348587969891826026421578290426232679600928083823865981312857880037114202811994428874940935859620218520135420177645908252466170009774135583140741121278362764112166247070313060293075837087645710475255334112104118881018074733272734209264916068367160090849113822320102491159480422083768454520887401215299627321681300830771965035327052523363239092507453775842542049538900690162308830676137005201883107429854432283038495040816896203623872071237464916125147241530058415387214553746962631922275299290133851860855784430082873913995359653314497791578861498264137673478829360033342162890304252938670956265076617651868952679077503555839043695071134320220418741719626114927001314578164105730660356029650630814555910832718683693994057990865015449038543328157362268184275026288528299208582428308232520724823428859306164034968251307491128573889480660864545005640703475149739295948251203139068431295173745803048770682996924302927914503584796989246406229807704032243388828588301982138202542534267041496638765672752315843172784097600428493010415956953776765245686679607732054554719625892629147642500155754121844667198861471347018065358747389640894736206885567704161123271072479577741896883910496368407490272683183752376492605899207920158252750199953527439627194124824726511385023147281256860152421322550025016630904855833935143415032689188247071868077220629794797319863536691387160494007325041673004541189378673959805569249368657813712919693987425989844779642085868798273742615272466458211378909508049820494187940024051346485595959798911981228571445476880378355414676659153475309918225964493618443279393100651913188916778172796974170046850472011333455088946950840935835294166960399509556064875384800257810784261049249285733690774453850329908957216232364006925475503589897932698736165460785410566105806757007822173539029589211976420738432815796453819315848081552028736411012546811859717514204231648069311054398006288215449175609781772743297919187295320643853172491728567023078624014901147118799527566485842246696419829793424082373892107639733502021559016044309865810146857073936950741603875784029460651460670252552850294577612583909681947591379413723716472283197211589002513350301337526180398214541966725045654804456581874441784938980853614533826092485250041209524139217223061560280700355245839227777282501922566405671553858342579828411682841251748942098749543468692622563088740684961544579281920841000138874879040519776831809499331199430152114444183373377394402910789880171700446088840612211085577957723485720241551273866235702656023413624256053103654892164662189736280513271032836740866298827764037794689109442921038433072025597865355207065833833055723840354721417557226067910577248344523744379556709433577242642722496600863480740932270355671634156718134154150617553082538003548006426913755916550647041214426577299855220187695958119133605599574877866539266264482293027337385366410758531094925939241956865057613656433859303474429527414927061122437121788033623682880933136478277605848545795013983479555274472241441505336563668387756198288931619780690894582476194592726481953079065630492050656414630238196830829612719238769204302790901744482021875660136125419586358929842261344830602518674822583968002816315224426133460969604310593032806153274407156576300248057086509124429782092506561597899699853771168399857524714075042803971124532940029917423078487017522286160398432729496345729478158351553116422139559251844464590475189490432833111137231897323213828594397668971651152784116748691760236625676167992470061219574583551921238272879058098935556029041172074217009777639171229391090900454110563090251432452481579798896874835315780613873653852976902326481720528529399535394478051636297736276938215386026282750087986368913374706365767519308916553116971537938940944340964582111492755229887444851489697052937667993163039836069682755567903562234663595787032439030934938815572343423993414064691931871413726159486249807995515049678555506973237701379350401575649434525275560490939991576630950140056124645496328055541643157740079804382746640252018417559510895261315274910908434787029065725152235945358832636712381022718249337907241653108719163218246403650764144343215127294476462162152992641972732009041542816325936236696014567570079981000260329653942596266611521291172735209254047902469934354421477030144912337034187626949998370175414072206749692261175072460760476111453862746115746681151568930520111192864558301206771264303131510139159510959859578524260775276327493411901128917902512854161027128552497814012917199208115049009002022638655223509130483024273866336391582532322123636003235692011437371066465452306190478652143528675371555517478546356680104430782349551102462279305170617114341683218420557714354453435646450207281289991582461196105582101551068808388947165637908093483551857300747316290633743873438973135602280873426912612030451492913500524840876616898179563744729818141953631039097580139732056625620175449629267202355163794471263821302936122855724038959949403411603663641961701805357420335374673272761646191523243979728342638478916770505520027234993212939991469425366972178784475929801701015312264507519533305397636138112863696872186663136552850511628906018691568416399903212385130065652328572162514973132852410222693794284632729149407736963417863208759468889245644078138034962069175438374503309098078667888453631999064247038351824263936876448736718423131343621405204417964729336682038012749786553914713201819642709498753929736697638681735963221664144493128151859840614560151382468101890793717254616736210949213595347000627460530206533264072468494904496511964900160545679445658544903251830623914714787995538441845205706917072265774410121931931356829598284458108445817963801416492650342815727475867330473448886125384432139241774143025765912384635450363754289476764733461523798166582322786511287389421648975089483422371847706508072640113816735409585323867771553240234644610163496653642924277289897692384163547582643487024856454203923344625859675454216566468578403771866317045543942767404522828019034879301506004132695061827397943930770438978090017271315257857033436143108472108179260788382535604716569351409835462335108448279927015481189639958266911204481920599832163819294861545376168632501896885036135484070996736689729463978573697237481299055877628709793546335122920557387735652835955426750305710339117571413247431504292767495276902004544192536300117090917424906892172975039403909440588241981890004583020753339955306605906801745945108593952178864928922968937328093733497194219929143304954373015310585408189630466238441215564688655027871539614080197532079736562754512225945804498258854250615256150705605263875577362125925494623775190836408401770489535350576573781524292166238131924399839055963882989970164711403316028029987968034310483405699602582692827201995717139164141392235155152293565376949144241741828571827661876481990679447610441504490568455198278727711697298226407509233558339921913890199092780603751718554403952630143442225171541973315629607377734017107037613895190838898973524459808809467706960567468950599562232092341280514226798939783621489437695622361943212107766106681693425667727350476265089123473968143108666990608958664372482441042242854636602273665259484531792878889366852520471332279773989335084854019289166176241108843238590965853893835814274914434978691237896531344371089379394404939781033720326659157240240227973847511228644046871089843758435088133281786751211943503002930503375549315267059187740021296473835310939916601954860543155062849467318077594654169073291091959703903888654202368725176888740655540549365690341984730381834520523622746103295832926956007048927968774168811455560314857208785877053525417866838580648618830766187801263050827280384409910292527150231077039176478845560269470015373604457081740289255894132559550354604078965762631981814805169091045964825898255455190136600926658471774417639378081926237003567084778148574517560650158147234712832314329742822488398566426000758378399261636350140029754874007922325484371646780673351027541407954411913618613708196538195982836209973064162537684040048273258075066690262067408365793501615946007414479436851146393467269102307377392312706473848930902246546775368700969919557435766015365376242912897991047647372564850025262014049858787935377873909997424204467129890030510945108795072445103657946970337856414816895702227188604822427612299651177045195498825774633432454488934867126885139660199073566156018237911698392883692328622350588041846135281197500736483248258870717688234763995759300207565236556839879711836795505452220809967256531812903009406550164689694125336764355305244481184075287937578797639803023779051430876583434433992329863736084973726942720430557823917038216362855764599992361685881925600278346015058644473468013623323467908531644150986783340354589082591489669114850874264599188147574301862983188142360071927474074027904917821008337948846065881714871461966708341464862773805822873003171524729584635290180722299785713973015485378310542278193743398262234885789088332036524265569712123955913188367332793228774139709686855284251991537536011174905508106154439719220266098168027703995928755135169643829672459218934922578958878930954316367665821501410835331322397431332428965866219348312996611013996890168269966494396374146850306529671963632451938961509655395978669763152027922435939911459305360448856002252145685579068734522699718589962435558906502389708074938127809470445636439778890674826133770951190936051098682287588840976209749050486381400208692984311241026827707733688199311154604729993607766688902335058662545402078736991500774250859469024977286691210619331505203783869203945603262250819692772418476302401210228552367503914136832147787078379627138295638828944214726285867694429242937197539754390119168535325619211145756629863324793468197082876214444099383658983242748188587797343743399625826952669681806921763818803880071832883891541930976841700318447845466988328151034828165630692450227569970742805725318174773658533205585765555171058778302050659961184483035618611353923522437146791415308822056737627366577546900054346840844085487750447932130979714921328526248713902221913196306580692071454159637613314011898082849885455817334056404425921856022999376828541491216008898116519775219019175489167415404709073029215253444186320816143803331501121626289645161199494968277323141068672653672393450940901763885229118132793416795938478124640361262572012308780301625111464355196102558707184079490370736896636870045083704515592890122511448835206320780511020366501793940124631557330183305670882713889729559248468988335713336589934396395421939898064550861613129171629534967477948317544961962847870802506731937034751472330081806744031378671691448154593628407759067168737715533703426006009732185238228413653033781797723110188087898981623223433132566076765592907911535640500723382701416860676562619835176630469138812901275991962993957385775859028784124878833165616304723357906785704329633752278062467223991838813007037996340570440081371893386714924064501647103258517002238994081642584336122577476407415408420616493195969113940807479383461089054612739120812608918129871087454522703535411716256476012069849530009000893648762367816089743411650883296164768571934956132068232021430125865869256004526184446537849406692371924036850367475376972546470268604980520828893692470952517903547359847819375608654948121795838272481460558865784764325199997439858851100815256084819856053993826922964325955102199135231052139896347512281635153720207876167232335156448306686396830853274239615063830647709286580804730431346730005228925493660267577983880083256015212910575652472001495792753505369323623995857731700558776076427003946180368037465871229032508132239420651337105860100854633286711337790275849041843547141628316249957117293490410202366447016630110359357211453622815008710174084305281614414823388055101478603751486342984239343319795052587394595573070125779794410466989970678369927264152009228531151179244438332236400885070079763547180262777308379272046643547722585580074809033232882391091897782426652144757382594900631185909436549267439831522277073239342616560346142495884574663553638676151199705771011771869399579512707732696748807139249188446431313034227925795164087928624733569167898028987609089603233202471654256171470874437798000382990797982307490743530312958702284464803801753378745193014778657741216568368977136732265477105842432849566247140089251009807998465147158183409209326901692785026972638332372079128470642303092682337951196297559814621517642508715731640521914466533138307333246622869853055943257847795084916836111006072394668065170843244191850602849711432097821557239288832351707424280048118251870145323462082691302098629450991107266466695102689256382199138450091103681658901640405100128766450936043377825381996756246819302182198036890241727589045979062815893320721350201644490616331431575616184090402143236066398432962731308756477656145061256423867326623472229622906766762685264367607647342304214858770843247329646646036067402124022285715918626768650416261133994962536780050242266505179650907638411543575243063571113113966407085752328154430032312133037297475636468269576634721631094181921569793748566907021638398398064101005231201919420331254156177511152811780160567353738793624007679139798298850116335223367704310215255673836688751315464696687418981716326096617001800366614887653993123088737984001307403074072000335880223804786321955982911842243209442795378206590594384369297455787890344798444577066123402237429408618812208993906530140755115181442102384795054881761808169015300722954507971274484998079063096916380315002157303840601199761518494908529882871149709882823600366397999999909610439888096035332589046445386491268902642345549491207517602871498531692600547472573663216682649093908989322304584979817759360968285868935116276190145043824729698470996976267845006105040216283617349215557935490821162752204535355525837578071500074471253831561302962535900835328914313441778289480208736199806503835245561060136934255811719956521959980449386046696063212896336020186818664768513492828416368276368162854502729705206340776503848969820347810025699513792153752821930159725397016199378596914866549637641281496133274007888508186337406779373568311600933295583949142182983015623953246329842705065720668084748991263518587623850482788079278323228447051753428834568613120788056119367370487241532342909423383243090855959857647300163334785786455565060587964421000565798831961441098399902870078043421233758088989407651837035671697747213430617152230483575211585972283997938948771509976664878303232849094816088317847565996392377275694583266792403672058067698286657968449659799235006834043144287110006444104728003734683157020488243057418628249140738484232918376661490248663870596775099423248516659049302167910536540021034927661789759923919689909681085761007523933956977808561713090780821990016504810737629311587084004187222501760483199210287158899301260761199600889957202894130148834076179969557871233394255048874785942624815964022956705319424209098303820476347787631007449307177766077702940638186667315399798743611723176256841370235122937092317272244789195311149633163317264996863195008625299994424608467324307673412947336627282735921735080060951878765538992440188202208974406192278894292291052164267297796039688907885659268132127346916048757255970417665348184307360866694051180803877517191352250854689874299784805584839295514111433376798794499413071127832136788784510737293260469768165497354903060525186871558281051439521699418623630310116018808931164698008734929071417749271802239376986354099969897341078235357763176518081319009742448394047387669557704008419783236650606722419022553021167429066001424731910981474463928312033785591399998472089270124849904736156709503445122088496238238945798271260079751078944246915869403572117392292181192245821988095777435418303736242900007776343340878044792853055474805482309324341255551822331984483222570587837240019511777180508321001210761716825809271129507042871410963170637609870136746075177823342603730049170173919951201618184930299634121897599925453123142487697091184916470694770120898801866703763577668737786974369888999408100113126835877236418232466565405791507812299119094597785503196579077595092225632461857910503866543424241888504652468822260653927169141074967069742107894999045015411547598775055539377788821201688551465297081406661216227890730177601767208648685585268874057422765744068392603237412309192721128065411482219418922294105721317490398309346421627748766942003018329989425835838699081128433904651953462621067349218768936745410455804457144229190768276503618281872935628372315114561890813077142162045468943717862998731625546346317288931162686092165645592395777376490180657666318397873537088155065237322572086753447951391633747277358534540356142579415361378212636153976101933852037316682071582213475730196525045730136866453559125850222026812801408791036235402762333508493827837301199586942401554357003455808901888843533827184982471296909861121963519448302619994597000576104833582769067128282722922207789705059444441815640554292481364459166614361957565313721755495029537285016549272434036951799505133289222031906081276736780721796081368893521718938470553511576153873359954876126684423683062566724271913811865321115977312214973917092582632035876054988751781416683788758493879529823289459017014285295288166248623202537986442574336735695616951887342445478140400384888756835165913052656657973723780078460229196796077134771944995673397067443525515347674758063664456737419886701296304143421047990105320798997082297551512939017067408561144323578010989332020562995449055142503566083360855549660474672029410405606768266565466064812127787285693990107911779864041133412187422967239783241183083061081853147146911454505216310934388756232742224396668020088796725953824976982116796131195153428684093215530339439241054283677277511905400494557704311982455158887494389218003755478818708897467671530057589851645243696942772620856632935244291543391622325240760229810400049818977706075178327714985043719234872360729816508026264325052418838796025505539144563435949048763491690563156764411913229751769012471619929797959017292811430429512363479342816990420898107441151817669698787269867622825255035079571462206687936131530566886576462367559371912082169803994205007969014826784874037195498222333722908704400221207423400952465622198186602541131612735329045517964175893659283968060453458533711161839591199676962629469793734975828404551785322889322936957691786318359159991124455811970302477661249383492259846010032365740534051679931182089019182633867136850741526285964818941812948772118933043301283115445798761563087930814290613940504627104699254566866619518575725209769000001161401583746696788610821440555589363641009307248525935558981750684124342743082853292255004912332365370587002598098217606139434209015177071568514792332131564476224144985319251603051829199500616701061655401970212845533700614222043861786518142450266749601759571628976084020492159306865534701547102946481301518220331995528094470883822156744172524083664374377122540282903556593834155428820699252621557975843588141592830726283993085078581536920298274202232117496255705585355266599682538775821693150935889050402541388315247274397906338021304922733392898432053347837505893667051044964472961763608994125091099962653715058173635569260827653801241464132681671999551215582380430761796390866913185547670071255827855715058159608573504024283363621267059231530519089015434198756620410228200820377699894635396347875268459849699863263149331868728178240839000155708368605690515782700002179437645955278149423329564915113732552176853344466529256594009130958469206639124943382794925486824621711482147704613527869032639438966177116975828089041262886472459734289350431719700788352659236787269375978349097234417706794554900260081738350566314944651637291887526482732745073482839079572819411674245289118591530329976465865797852673198118026442698271456527315628203772882152726915372495432308449683123853987816142248424746925319327889079810629720369189617261332531587810934511377939373828531434757755152594611539572581637984496918458076456831312293936434711489653914303512750146361968729668307170646964303513555912728199486624839873985868626616937586339070147569867652726286343086219097882631454967332467294315900758188152135026982577737966343893356154544335233471221866851792369235259934795420003694937841965750394157915475751086401184639192300451799213783697704235282969989460418165897743182128612346401613629888442847652802257479179329205969768777634913785111576634545145580230974812834999410770197312732480796857604222755609718480852091175500200821711586494102107714441078387591183001667878971325130813902029973004938329977293377864019790897178821218048698401713263748463350845755205528774775128323652195570673496613253428512817208691997023322200751740325892701968134237930855219434605839025076377035125550502624712317771089322956572324768578977918188908570282277122571876284862680441481673943553665681914522899088226731938083410818196050687863329920000241261300636825936107128042160064155361911624045549287715435806395824086502049844991075014841929835815651426177482877049262738609943169595182497693122395278500244001622348031742085167778512459139918832788710429720825156924214502902332574221198322666095453183551988100098814683596977119182390588657160470769908293552486137975400870212937017997885170483830444136601553982198431887218638797789337747366751959325116787797691084790587709471199638285460070950252770966740871003979133945367675077443617164807403224793657987671181433357399865115787467937622579465926305740362177708270264861006299510129977818704175387853780923871763949886121195614303964978021590598215983068785256213763645597040534845907276393499680831438634169033220500670120814697616437289827064042403757695051564096889156537135540199539297936914861002787136977441090306725632597755905157333901535557076943202700761553707572616691880921413209899149519555563499916338838721340828891755530895044286272034195340214777539893555550621224614996876791837826746801182506571901639441493863116944746238641407804455249845772080736140557824363747328540416496548708764773989445961582992757341985713611890976648246316421865766586470656929797346765740898747194680902815472641482092253428534344329008854798534336653725733874150264127833079715938391424150748765400653386042790661669450789478453071549414424063746555146372961988778186210902063011182705499258771072755021181783534644733136162601804525425449043303170394031120838704897645372239026779900386636168637643959298952387462739600729302973400764332709785412897938761321602826651507567735413342814272684741106355192134366864815269883813569825046501309222973928876647394006736312292892908024028378189377814978053959580891664804868362146283814521771535139024925172786302679515306208005825247655944914401777087506936166724354866766823352530799631498194064835217240899307946969050793415799616535698423709846855301866362135676171788651729822168659284885765632361322382171958364639531522045258840590096433137137616402512711094789029300110419547480270542409962148494375162348774661922647052492705463912589674277148103803842422139373166040839700190452551638326075277053930070142555279274562972368357716123396115767933321602892613736240757152317197326070983945026847007177596447994881567894327801441255229402379366205678417040182721975936121755678536156238748575148476877352422120686001834120832786454086164795751615473532176946261078302038105114543965628603799632703403279258151776705530874551065403381853324491941012042832665194723699759409254718246920530693893409346947821819053842455852079007625829716335363892907649695263439639269141514227844674445403043678209232514501005131206932516465326770815174492884988337433274407749065827626219300847385057684014045342732069396040584929463507771542969488895758137787911406044959998067258175043876334563516637283134098793738212125712225424585080244078067376024362171169545752367137743442510559170314330031282345989203184877172466040803001709418913114721617614397313827553977816588057527164610524363974269281828654880263626190649490675301668542935107689831568506663455164545646997046591201386757393166499384039992722697580335212348332164170480251658883643703720161543964524488710072103866226263422378007866138657219956185947253025109025125601890200929046525554136625365366366848034679175274943611786493032475653665377895211688196781260122110084263811404092428367890629660110685475612871058165674790439125004034182689776149276938804925892479569945698612436085421816038787544016804601418301730229366047162176409703318941530357006730562828841817769059223603031279105819470548010338295205929568034269033676064906263466586244099967923545275710421369040213086305593172034024893856356595270624661528834817237114911407946671911490179502732217184791726312797668525637302540265522752252033286695154353454216479351552562038584552122005674546885852182816308664466283570640167536568681086661862229663095962380393152374978431122856791852574396752903456050259985940147886460548383841882205653621687943569285771557468628252498606073506322913511496374849735754252660113782031361603554839260882521787733563818635649733958432065487100956404842308681116607868869844455883574928476726642549954307250901101575175668974866214537280119362683357212345434201660612329666871271391321243843350780461079777962846846471217675943599017461703281360211686699221122850364318972044253569103982103517674831018647651501984864700723800230480355151548036090712348080057033060700013233328492570393270158484785716861520598302022562862264499872123133003947686439838749135997509016992801081199519803606361357698281467917050194984744754885520285091096856528330169020465077334623845791907954498038940481453523025451558247380685937077075768826056118786128327697633685787223793191920419337968212791369909557229072397735712514189533038244015938738566129753820274301277624982879614706102941203250691346765962169055058235166582712412437517883810330339668067951016226969445733284461872531428624463149515488021142503246922781206251278539490385580852730857688519830690650396939565432989190392494933089064535220257194991780218081558599310132345527901283849392444949451265752650710033430571121363289319462013520391037666509669302561669939487785085364238807007649543050189230974524887059637153947956467431283959619895045655800662439524058053459505285900150633902190867889347418912689238546546027313155243090856524749859607110323358655122151895943096712298183214366352689034201811044403530969833849663055675679035030635653448497691040560252327855636694280092202908464406420718576361433686909108681184994823703877939837926830024954523396149377674424403851722811334100732163304618428670567068547797853461674362461287223544749376478204365314522409853051847263128330805352654635650854655991851714025272943336416835605954849889900597813269955663484404440715804050717249122008951959567445338786827997588317956235639171373673006443035774102242292880493625927663526532252347127460589098440759671993646578866242630122555378220518555492509297696441151662611635130052483007243612348749240191394606013753599493903329889253085449182978202283518104350015802316839855913090549762058252001624100434677447736431802551198210799915547251723088816906657982235392966564413373714139897481315118191835194955617223264538581097610557519443307207710214950810588235670310483533903181647303863111250179630189333171817303282800357871160024370719835473726249917540718940481637864298491678886862256373677156724554924488813500903084648874348147250776636647872453659767982986555714105570550250631493743341627478266940699702708986749180856982998840832387405381393758370284423636427808652105777046396107433321058904181519998402137500605790162375058519629727281776339113125933948539089224591021398350641934455724834058621695193210004136600713861039812965727298293218509810206088503721999713662218505935874272481480688460903958532635176777007342463050982641332880847617169078754156707538021629588354174716772229173568019387032025247469084395630304913718261766923860227966921353926903071579683948107742850541727495175067010054578099657342544282312499655787206798643182237597077604566991848129316668636515944833478968226513339987237001801763769412416759856383843101127565244194583528546558879393502319894678688795211358925111936975145529898492297506297433633798898410945254061232757621587122991944323129324143104533872288486975629222652232393114290028566382262264285087571198407306070546723137069266563600177113466528249565724860419071414903700136026977658941049863831505307401249284379788840221473611727136764733242340585860161690149136122293029419050550184433830920310627167027724469964679287274422318412565501914371711596653142079419470734499814475464738975369023994851851518740536193651803038116428685303467016495607591787653420106609331234998151432159208009977438420640948912717408552244430374537846662604139401056012324964689450459808547250672887039367465900758298778302094570674650948399682755062992359128271516575990218085575377929596126932797634105921590116514837763960544685092866303525097001665382556442600464332104782288988872903446158551010546627298300036399817944627406717825212299730789416723982961404932056685029386457742725312165865266349909185011967221170415948425222375410271385694264339151964331292117147654968005938539948173222451846098728924179400883944020477520920159476102500558880654873404579378207953140327463952108786346822712594129268760826668081483361096123917161778359186039579076427863397362457145031750611418102963503884143126063280005804554083328885971576464656581403052053228263442437893053440395408806769828019792978973145805951607627805822706473781742207508285265316044673499584007095182100930063007399737108458947245655099097276022175843575342590630407938267954335725310678465291770528073338493304160601749763243931291668226946690536754302680298401259396035842221175135022224102776808694534073291686120057959131531672087854249271063162706279366095121666363666997684640873738872480466110422412044673381648421108017478924249004356675760163718308879282242964612058861616425970462252896103976308580650535377101957051604017055902776046169504179614975375803722395456473214745016050887491215199545594503747583227844710084470556187082769673734084739695469154147648648075081978031820866872331297958910796151399474738600306647119349652143028015629865374820257562051133401621921233175350637965877294280074601244830708963368150381486151923558885693017287402060492566924106240023136296117042975069635164453265429840584809664115893237435422191807865746297971770113947781788394120668699244737583457146042481294372640541434385066803131219539045537230703973520865467748877568701962875138956351357853878023657246426529207844979743725048243208717891226002390275084084377984987724517093068764267666764685680116771957124124798677368778774995029918230759130116471006361887320081548289924252672253471732746322043241844225455677425916579607228466011489379110581244898010228869566961362937516710597638125439573341467077209815592925447297841352880218882530111691674463102145868940875189611444127121948992569262399604238533466260668977177668705927414846903967653935621070286400950497950030514376832656188681898670793676757545656074648747121942337191012496931890506202477069377037895095725729503550838423548723285646142909075403887254960378626303272314420858599179788579318215649379756115442681124698245861738976919576886849922082587419469227901276192138558785253053070062165658169538126131894422999605587861232712715079832900195308410135985496386142070342705758809860060997503416946817506966639053344107809419158310528673371839931031942847146265320143220850560644323169222850504735311299234952070876186242056423117402910590097432278070608111099309571218820755874191186051919560477936839378143899462781208667949939779262841267560595970067601177627598163890098220168546013831636912938304953325703017449463962585569750172698537678462101214205428601895082482308826299214803628579025664141151068493539857936840133350006832921097725201716253369861581350473553052656001570858254586155610275061630667827877675940420935336911282510381937457478132692638476587917666482930660650983277370749395254364856616333962974941405601814504487813647644065494570230211883380029607350052747395357793211423582492262660139436944600143990822433615820533729264318575965440133415170278501155686286594671429760660724680299048505471970243800652833523532555593016054912549327128144578096392385341157592161314865683521190706155001480657997049045239198231576606685225672473631309296059800516775322746046626768526072977918590232449798201599541046781021695443364376359630181676606064729434715853671392957433463942238806141169104855096003029376088626775848271195641994709613538303103945355815808342381768285080623160200916731007272377336488121581229617529913796492577825945308992990618588542894082457950223254160336737924164300325194003667892180114393273432719428899101603856540942315244828569850771246194816412558086723284886059374881554866566239482026133444017001169275480538355458965926196671254724330182260385455539390498932631041176342246363280818615162842888424959170458834439228962630403864784750168308566969559687635179565681117912052311562995399459853840965486554453389072756430030647648908407854099040425336715206906706278196382818929883011736089766787699700963475820907499461186073660816465004725703383219934075535395161260417999679549469533362165673459896390715914584782780327911041767439111345947981099572693602361070270532015976693234917221949574702954795815126998653127049918211673792450122029706361176501820469355300464611835962539649695919593316530620969276334474998923827144102727137162609407756536830571423989709424655495982809009873604794800240587629586053456377467258917628978639817253275142688554836185400503156532144454957492779862178703036809788619278450369195163290077797952074950881980046403692960527431403294080092127328832859964694692493642975225388268827962581555180954886992136378208139380015304498818595916123518510925665396002067836003834859726080186335951071872459097580022813812024097468461748798051854038937425715394927423400665845537425073153590068085331654909721416145826294944876881023090029389988623955602970943249162702432774498333899323258501303849710265520612625767200940986685174757396319830463827277478145059482603480357713639300694862708830880626842868076468491812590219763518495156646021674194894370246844943118447294507111762984027730304976156672811553434441034687639362892481110080624792633857424543171915371859494426815000744257292490301772434846899535657615765478340367226958914945185253511479957871186913679752641672330241200288418143455322274905319561141791266753272451675857566722825447795483449662427575744645402572175654463308885753881550705308058532469093991763466326608325859841275144710426573117242785310540417982706829382625041571911378885248981682305973821189308543645694714794078415541446925487777980808682595747385018261692071421743194223357051665788384455795605127603095153954393696677781650667825691476026180532721700064232308768249550789991004743003077881957171412650341331514136272370323181993714982946650507697612770675413215302105194563846824641498696127794832785702626205462490675180612159919915011720705819416073580138110722610513241871555402225831829991760431514480075300773899440300140601211304283481998413212470550498597070306928557033043136891052782752972021881643850274266456035206406402382733888447020616839543788963070307069503412168794897869133039383408723626243206789072614015330845311517234549232378980150225886419595047639729576437660966459870150661052265402789020055726126759597559933761136847349514721962498639415613216067145575047300243584152378594026323081694567096054529014222556439736577028819628098689822510884340219617216997139613896173241484463831391857856094472285928923748915564597442270966570276188170503542089558746460054755629340121950605387357308836814738305166596572272976600751886680584105592927363975570242768865935178589937377391942745930021255278810283494732295520975134431647213510040397584605644076200356068635187224926283086147516820567118934949499993629657235333039706746321009440928460184700172021262344588352475172609222730119754409308875603682704397917749776405414946565549687620402525939495212970275304846421889121085512122567544441457782430839441185947918781004673729793049705554316380205544179726215499626744169992249156113756242420820682018170582434574113366421889473058065222131117115525907218578859933170745481012277618603064168224323027566439473991958610717009560291299381242308760057991580153124482288979579523754480681002924546329643289622829584343333402068071271621987313253017192112797871298916911602592498030709747973368014412975663507701177982100543767335042054782186801343525669110481613287033849348373588750757618582433504788847274093356890964713251857912711087085080763174915319362972748104069059389886969119087751267582864084622478729652357878405647217730066405433770953064662209063791661336276249972921132183996046268379609532389219581735932333443200936430900227703155163423118948482565213337422674906269431185597773377133990971668806892531942768441956085516188786298339745814937077130228759271746112671074985554629971092446224253552716497149915309717852854751358432476748927428068111036660575321931679004278545749341937432018998882245365299598720438705874494949786497896707868697119483886300493226042140013912043455020847159235748864849418638108990511284052754366843823638071910235328600512574018219667914003132588430975783383439803405199401123592099936456645392620083075701774187221314669708353447578303957106013788464748813712015663115820971757205423810746039972465765901069632851077245436097538635138839174214881497684695379363507577758590615280241543099222689904241069447403790768519370482384410754153148122911175020361081861789278277074443003294177957182047253479902125006934436862887523008336126647298021003861656337995482151911483727443263060872274988566472088985516549969617101759250876466406848686799913066274709810512160496449758599616421876301276271436776244009852106456357848975407953007841968486256769471386435530380223976337344875243102961018754774051995337770242141168369382420152964653820007028797002104347770198316227590057989631234336806678390002695882371980176440735713015002535871276640614948328167829997295847830241701435342484557895780261875715573177412295888096547682624290029544193597460064734299831644065719555297005522177846534443707391213271371704420948919410035999766191779018173517047180412983443100913303047659265432156262598304096106248695643600730753785900192561332695506610094967844737402989516750465284954009999318506303615475221154429538771281155197438518708819817519780298823274376923161779304069524462605783056687281796817154253382213186935391995800396352803132216512283863948287939592852338875495170044470423605250786608689417446438113245774268728227496240428207912751593443821702387809893603439500193210232135689147221620287607774582528437570924426007446849397631656310519144849406816530274960156329158927541623902408351415387637902614596540573480709545350052748167137145250548529226111015974057606468669839063754375147605532099444218098291465113638003742720906874353558762297508834930778732616439090687235394866625998481499139131316973115432463124386812549532190672611257261539342719320285999106167791989524700267619164213381241947382688521953179104983876019468863885372253354935023914696904249429987259192988654459552548678335573119269184260681979112411846220183993585562930232690220003183558242907412395878993058746442138581478694013501389981527370442304720739691947643842712608159326857410731894696980604340866175776207654488856091487719437120609648456827532613246247052857191324812881991595887478073787292585898391249489344121219131237509021129341577719117664153609192467742177331927718324981991001930458106819481155424821115685923085764171501305994310133614577528009997782151275714045343115938661418565869830159391831515392706467796126471645408952495858921278993161291449370730106397653983840762320513018022598633307604652656233064545677434112699184961065980142930293540945267808088955479077720946492984550694360498281356840795079393838375000893991603520270536444639749705259990527762465521628617596766064002504806255596125060013649042752436514759694835300149046602926605319665771203015038616233871951961342551652842506787102779043244254839849313279069176703803607469577354774694525902186071415125254997625605694566632416483005594251597199775080033573336278407302594074915794464192964873754607156230149688830021419598709254201165177572583098954046220204024989187172448122187137459180036804927424845877135330648959035385687492239184458633360019689638309415370411757136165175765445114655614481777804153143418736274222687850791676742871696117612464896712925913313079033731088887580559457646988709867911837949838677171807496359665394285292363445495457097333825627577983455934788423623553695730299702297280473645883065993995381212789904161922314427350273838395104697234938040639278480851162380112532888882993749053127343567543704050019253907637795443442981114884087319973608620511416158906558280999391470727204289278137796842632884651475395571481133244946030420491663263419486886491096803320090740358018902368459599012816192990938385275376726968654150155382020856992083942383131553273379205970059285106448462911220488820623564833687020119867160149586787461531347717345172095330944910729945834913508792747021999708107644793823680716278517534780717094831270694723115192765256067536949266347887799188628358124119533834691356707545509615966843034007733558488708938647090930661722386004573620148437581922085720484723844558059022888642017926314674738309513784110471582892467647451263675853919783693794402018361843208700873601910185674821099743759775461240484290250734601686829342162948331922884280012164970249013779593938841575827215883421828694296429258314797052397092654174762513974909773556797607456071305560836698775466321183768842745565507147611162337887741408826195694673521514626842757751854994859965981634966544463130656316528479532983466128593835464398363138642146991779060546338155990375674143917190895332184758906536638833222553360040584925232760968882010061194100994166803676867088017248357608838529357276784555823644750062284886798899119758174748548127694668874897670894928776374911167784043736183685741366153544103302441700923844254435070440491670697599730209300275413519534795340632016083917102960675537655086107585094239001386146416337953318178225017737642067434171095120428334894596426995351999906907443204781834062367815171933086040663713122332314901119519956267845122195133426698626621679589957961284378852289673759947693686181641751376320302656777415549771230955463207423371269695054420865468524403318178447865129732543918401095150443965816064941011561082188448239065814356224241085839072580696560637274991387036274556028432505274912081630749867893442616333277612817769614391387081582865290945181699460222436857955255981882370443505340390608552387507093934850748626577597523828568874193703318334607180608576403414846315950103141169433821176956803502254802702740423952994555788786117774098206428498577169842528154360743772082827130756369810089647647475524582618092124012730393125745942100474840088547654157114453521743284947987240414800390482054090274895556858399554927968691262299390511990361282196035398497953537443683565738144937061666739170845594783320123625769011309620025021767392298699459206893388858746459246857295131147719709678156571835493177062268970283920241981638843161023936246834196080811500445357344423163663373403493062463728372839772160135538099592727315321497276499513739444952654956701960903613954494484944793351369296217448201268128860149589727274615183389182022799376689257174876856983790499058867073683078335217121260098164593545270767817005324359420178907379320717977734955220441569474161127371129520228307308792385883023617796685811095089917574137372366005778863965054565462658052688129688898877010329014051620186788110975536886202311091941034656760703778791947105154610611979594056562346815242712347329681402189596580477477084740388911703927735973545785832214523185561472764114824155832881203597392334456270327042481074420054264699948951643507910991570469045242664505029086795930572214053896961583705438616338833494029293449618429281818043311336512029347879474780872685005338004472303740028885512448834255918603760304596241050465342125573058621793264860445384719112382767318621736932920194838176805564871532852030891465970727622510077541143936698020768771621509686932098883330756867519863449061027983097480537095091267495711815037303412104636214123527755128441300624586327128228190006292339206642757546370914377444201217169759066579562713051384105089928081304233503731365028899403157943447857613131589034107417748052427800875859976512508288282848968099763347704001480181593386564506470784512564006342604839029537137168000056234793707020137735855913352563728145702495108571086225713363961961289748450695343055482761543485818265267106212257227191474775317035972893424526291145408725316380718370257408616377005376392396239669594779817519183558309123823504776063983402017250302239979321669859703725912393444469543981373780624988916246999646236486530395198005900191397703609143916716447240616268595225050307862109918377826411496429245160749004737619705939508868641510618764773467711052072382626429486309924102210814476083632763487617230539329992835114778953314001313755206387763466050203682756910355560156274280243056219827975616625029572529448581274685000526975607210780978774846041716653441988350174096891460226631110871534376291854744392415510735258697961065896363565156886822830921224966822770555648487155596390891086910578824441701640573467282223974072349442621199192902267978713284687955385962344484007400395807017575464159868930412556050135731129438380062987968271619621171045670270266458857018925170505897011349702368111896715407789557821413327898960557931480886098982615011772717933208656386426732105242795336528511572336798787822691150686001691227624333555045389350517645480415099568285780821253049746888255660932189864737593401887082738940413614735168448944964509694493275994885897301454776278631561979264002369748855473960963667441483759078728835242196709356898576271783940274726224707031431213543664302938280372115506379341973741073868761233453007316828734279516937727813728391679290120840499141802917891739152085444551454376835869359851872009687955689436212515712136417603415332249141157882657138111217824875816523890941410796230541148835614579275764333034298134210113193616845096900571849740047318856847799635316863873670949997066205717165238439779640728648517385181423485690938383044541178934494661183100979708442412600125898170502868729871635295689719007740987442087965877388926665510071656448040662224750525592801713971383669901205926414612329178397721853223726296872839410282660431699603967724274742568157189696079235373348097314526497125791874210974600494022487970722019488143408653241055533240443078679803877860366516489207119053075883325572292726711677252642474146650043936555435893508810372973104800412740447244742286907378010660876055226311670675133106365218471503696203311730561618489059096492783070477844758511565624793943491908245484008202813361606769561668647458618679691912549387548552634174883828911235503158494163150923736109282484944223863535112350366203955024037145576366704401851756214203356463321038543404896163472662413300930867963377570600245961235520118530102514766010644244393228384851800362471371698931163584726983709089036641870300301021330342913582888631247640784715577279504519777217482255444487882609560418612425043826060436284831123866023880974758511694508659945920668982685673962768030712260797211426466340919268524652090564809958167312542933640046711493279826072840570355683970964387279801006587587624959250297853342844886599578958847864866053079509217246871789174512632857757200469303598394429473121190070826515281336579788077548147666139285005105787775715811937331672593965922402731124087335959403458115479363489809405591624833485369454272890821085832121682100861226878661974810489983357444464696143355182353099250656970979659902033933832531803929168434441802956864709654235013333327701347643701756859552667648873863787561894339919247159073851147064411377856010422170919181198941751378765251871328446156804977047241693396321920216047691846382489618660796226754930783979758860848056225376851127138604400069912650973820585754374186619827025923027204600147473918444146925452002808187031801300663310258984260650070496720097450064134992342807037966279952073576859361395391720156562809485052793965238411218129201011215514532688283461551264358228848096964243492416711603378451403496085544683583782259893913610487214267190560636495262979713256807732771130322005856842479656668837545869455298876635878650675852179374168941753621660858587211856294413923785448338204021171372274203731647244662594846023268047537249719537649291695047144453468173117217410612647835661504605047282562297090372580934983511795105259084851431430348145596024231120794009690055308761721271236408768821273744453928577493848533762837720652040477801373274980272173395773124471096942262940362973390408589488131538912187301932545519280401966319446578710896239937662207283220565855775728116606750864985093945219730880835429239706900912687808112875845606474664047781943342987149471023084466528768120464237390325049567923573301054407293261651120021212878144656695267961040271298221234464965545579066373808052510983783349591122547064994254090464231504346553430793682113049564871952138033777809404722781891082051321088986556527134843492017247773859570708614611623529075944792622860485648355026326583274391598227361041525029351872891037973132314398599767037909765998680651383054169652564234545506631358667376697502905209075558292505712570118248802300186864875799856004531601494193234053256539354094592188628288661262707355114542461339697929826987549652092199053566050373175494887731180554046900997909210652200977662705300440235909988822178656057228962896791938937524865709250485632999493909349021240166821880692217100939080309276541850932685379695081833810839291241754775957143235795865245983834820265180249542068240777768408906004199427157892712972779199466729496809386749413989220569714647160171056297353996998435151228958795629758184946901005829470420751567933420804986190115745683810210101592118867328742157645108708007605215276822289150717239962479637110859799618828763360685201437248235611828701214077293220098435627328436280294419365328450653152669598890943488355006300896117823827511062834977035056206664515625359287978365339838246538809711724443779320885137335999452103736853320079700541020664713727862694537852964647895942855782007356314153691851573048243838575822526252491153499125957892455388575487505056630416506327071489199301367054961010975561697533947183713405011461856776273905620212257748383625903492286737444683819052548095669095671425342155804963045727186946149349989073518776675388243880310003774929794985953917157250384410154787510757588348186297714068573555154422666093262401132708321642734756708423960095141030980040818782563927012477953091231813337695933140654886359432347858305842013063097315641506536804563033230140285875788906990257562302693189745608061950105761752812727542420068986969133611684864584555718072505949434807604464476726706637080954739595319958169191405320804484186431236759780252367222325887168832128398334704192350619409723843635847106301726516276019929359706293218497225762058029711820306825857536234683914532580832612246893451213275750824454803998980598448035326786378318953672746184617546663453816827524197322867525874664058940339356373500216047657827750601051438188500175066193985690161241084650616003548055560943003307034756431031589458619050497241280053618138843419219595207829885509089671497542489550478165062630401647906250483063328405997327723487702558087115144991905043225208079459196204130911138945702170158356888791026596926207798400245823051306847522740616408247729457546087353706080493606075866909696196568629089265404156774874262209780472548024271712412679817987558884307969705649634708973354558924667810841321004308365729533742068537543374778017316737972319797405035352292578279643788301266568873834664766796688534112206685643051100192197990136944119574474873417498362840715717337950195955547070504957472175554360176420045450030446799510827830446828536063102105040160360387370515546607623607042579822669871812545678725473655885840611651654882903285781978133599162923979429957056474829835167562074870644957655429229032170157164292923055448531399763765825302627221065564613731352965722116344636629531436083869144457867094439319360291551537790646090083543949339525044419861377196976617737691996462476708439372919656868445864606006032871802257952818091886044617044899043300717309664084881931802995309147188420913449609208255990039378097539400930599950153183213931039745429231976709815022564609892399214416935509119984514329961925674318378525818526540717769608602657086975668296434310284026136226473336028890995451019975677532501753794307008712264572245974101583065787473926497780106157927158208576813265514865803054277563274710010401069595760076761008338631834008437075130329399752430637757794187300100008417057183986770928331893489734212684797446646324855332239957557774139245387697135325292084271674575154776677140560327265695883738679158256908760397947736471377871586536062358667901735886818357066790208286628249108995129119455566467989392302783180719464129644162597119308593991969666294455566431212747320920740264675146272890986626894174621854786569939157955082667437987486044507849638004440385139146508439776357097531109425683572606393238081086831490925437612833206993598389621345594311027445101661002739447740613367660415821266751575409097851819036590186659752001626035319490302915175996459705766550949104402414210751012003037764291613441968012963078399213860079522448916526901553426972332443557695515123911701111279944184611020866023238507729197768303596224704147166756783100629074252588613928735240196225712283667872535171625182037266545708295110723468897226655162003635691279470221639569474308800023722318716076824884048852976174555651653191654891172187003485290016558470594350072614716138127470706166066009550406141678083614816983922070135911902542131471538992591441290747798960922342170748224099374436711290241780640397092340594161513872569012179623377313134715599205645910847027996334952407447773647571198140431334918367074054996040151524589278458427640705522239634170819531457683477487501461760181203052244138853279509706308364372669010443865176232111912921833133518006416907506807249680636360952204401943772207664533807440433075450225647288140989747464830289167660539605288103571228281067954499743562447882318842621653089191688141637760392533468253952891054050262767135742615595587950282509537907565241675688571610241002707241379971725186872223900371980296817521991365971406009423590502623547121342539331763816188230732648110870681828551240352635610189050928452592690580227891818586345227729287252981266448722373500628845267156497559214240508099961192090912923552223336494795465728280967363837991486188623375169184911761203079997456477341315390334860997927952761076680966906754182751363280854566084543127230240384201134947796489481452443062233956841488345397871012077306353832726844465644522064384701069322327651357736000733976339131056831189787874016249982022547398725454472723361132671249634497753954007567015520548626369747940781216128941936424366088318545254068574539364937740455344488523027508658397426042589073511934917701081558927408823511331963673854224446334728793561941925581641175933740396686254012105551314973838555896797479234382288892908831756389510882051016864792073199485062866499193262128400927145792614258677081880188212210605871913963302852370136244743304921217338214800604432759135444238210105449705911333816966074083595203983837866181354179006442755812440321033595914794334856916276638447689896838137221049559341821813871713752632773423739132819716880950640904244664155198787805169813300662326278448670386088438186127842538382237045794977939537917461739330820706455363777839343871905352123048847409315162412610379235121917007429349416230217576600097953854099733591001441788955293622682062521825382430535236477893071235645986955913639162125918292308173589746483106486846584739643202576861374309953044008400949397900915718070965206311605974356300928655675043200342070414095811977909572414224366215862435792601899366355222531736152290182436448321551675962931386660531649235917363198956674261596184566271523976389436182301741111141560952454723582455100267057429626668340858472496331985437984895511975167197991327579918587026626072233775978312934589396750526245560472101546176710761936876281458499384537902978044460882197809750493790237675153094368039820942150688433792046652479244383442718691894222442972550508017582648924873938089352888975546335226170373190840981927153805888495196725501133589298799998732729105411196612394430975093234056666311297298807443162605357719095170774740583682748938984472046449741182302791281260291643820905210037958264860936936626208020479356739094678722190651652910123548886765780640095941667757695107147594626968722953678116459540844774014047617293542343049141930449397330257503949543198981094384276907582657535853029282280936751985451917692693394002377776439266945044202704603145165147343558422028402072273721148173613744570686403291852428396525719226293028994715745685760414670796614464632298414129968199088490347429335595558500547435449745657303581818217805146724026440533605743359492897284834356380032946301786023649365820179311864631981316624810166327686090888181693940548749384417761424357197321015857003864067698075007158667539605613731911259850566666008799975812516705130446748367210715255232509748443139333202037861931125575215309996820391480183845159703852272745778004924065154075177634705337295983897558799144629952296567504169146699180414144949237446319706244076008298476407172605696398598426950460920893225048791260888514399818500916606014157490690243297715678448675198571338652965436925739360136335149137420376429791441192372443978005883939211633594341846583199721400960283246482557158266684368572810537509036834677137555320496683898101709073754575353683346432886596653407298988073571843132877559571131151291801500701067896436908738301642536672215518049834174035110736971251515084112835799996438828882791269584657014811819920821673976890336488290202535545360476837952177020203776461767292740728200057086173098785807893212043210806786444582213375621545652699034574242173283910352470250490138305444507802399095590089083596641768740704894423295764944751114953630797809947587237735084805615457601417249234130232777768292922827825022336821407561220477710591152650237459058554855354570940267798104613157854462033488000787539611839268474586592953408028774077936880226978829570453706380744007951829059652522576694936107273568091372210564654540365884959580428869390918045301728891985022022437028310184131059622549477283649667007094929818467494616985188757706222605780764238417596413693285314444258040223969297113813166076861031258743462157352518232068515338690073620028105369756236058692551459835451133586382104108521205143168010666957778143550194707762631368442965612548715469682857875521558957403660863524880136214592325573127222077643818611841058072280592953377263025536477914243418593571378422672295489600496105194365130816064198950339818088046359187017942391708879187277248700498857627603831153490579516199714547899357813846246690337016183734275164169455201842111129059899921694124779494779142044227389120758037554610013128294312200955747209883711455742023484308723094057858913043858864325951121177566664389468672685427308890150966965696853421741903440382197828759828539472287884783710025810059398982026462263043275479661082129592313634838268713620779895515787842127245234238450854119401605939831342365664779086139575241032127687980633196743465229843745718268516705003773973542654362691841300619147277656726231258266389075122467844246908692075827486503208019752076360126909712925781714657187454864906611191064368463598798558424544778842799322433834538434532040094743897945444143619555851149506571623693426362023278925856446395836573030782464984133451399343454443421256228981209600625496426039674858408813057026776098985656830517187855857960733855228945895783669470391910316523374181102193265214309270102430527350274138405293089640230082259169509650323358674439850041930574614104482149683972737484072903350045454598549893838544454262380337083591414994064535404118738789252364445888541334159479556710678890746805796774346094647017618097920035792459887105464444876427260250603756416604639522752072101529374216078084533021350521229467313272718021417446147152265733504139680950746680207721163194449598923310815501573480592817934878577457296596490076726826513992087255853190377983845118536646131334532671322298458334795456601790238072118846915280212690190802128268985031199533385309525440574012079950499467285154892012631440812250264922164759652750466051073399420409426086392780284861175289504280472702598502761963328467540336378970231982594035526128800454860562888856523719058710045764386731847943166461835796593777006943335955688221528234990196560201871930857089635496054246162695656603666770596931546638039993090484614136800110901460655878808997644882540286318769947971719524260612599224609338577119451205572637248219993398788909436453131323520770440198822079676738718768116175428060188460520384344956569279471595885622584453298476463719830552560473279548087085377637044154067045666718598660455137065375763103332950015603970768597345650585389856343937635599826511470470082136117477752351946037881930447635855852250373764894336913080862494145825267696710692609446172117912227750858521191404143621566043161440087316843596078753116618113249163550230751291988606296971785699405711581528476051498435867614061280019805417620308923540653170756061105970836989676200696976772735340553612549569032029630662219728498654716918512890882221525274595963988253682610139530175806991271888285814086975406033968786721816757365053198284738953223077427168948183668718828510036308060110508881920582495446503205295210799280012203950898421452292265062774151938323039401839919146564836036566809002149666388021548543701144960068928612450611506923657251671933797772285653786746313051315483788852504006715436372851881237799095771424118202117830913231083753564959468643623093576605568474863951477826411040644573581928140245119528398332570605455955444926761332026937845350534263800111714406141767141427616617353954719841368741734222552801157418468541139145349510149755505342179631397936935069906191010325395303212188418382915177181296537090028730815431797161807767449082022375818960932194821984449202782141281885230990520681659379501080170861038337216023977955806124268766452678167227803459119883832266302370731969892221203119821523753998925241719878843771671925052752175431490049838698154082750771318635067071805862343560790537762417926880266709082482646277635765315874312234089082464940608966684889865272005273873140275528931690913920947663009594217702197771058801016877679907810650110700715414959699899361129120125199253179301782352839025215203950907230886107957373360519858411809003162149110769307960433595904571532011591304451249464312598112648761985499294799075837778246282707449172941168338094632738866699569664549025954613847970044657931160855022373618344462204018402446513938525829782428672766068270336246458148908633160636975072070209519180474884650768587135539423984566815134933635520070226439258956446855259027204778260504922515460068677034466206144688025246125173986886400222534686587350051134759956203625518112620203414312636709320218190632516617863371449851419745474725506264778992929975510930560829788609982254231924355443112920285349038560238860094566877338230973825483231406300226962582392197279142804686685003110539036982019724642088900927176544963480365760951179842529721713435512791769061175984893410860808051667698426781130380685691471557312288790462399652462967428788661504440317659554057295740191733027571934753144483075895410956003515243988066689554512292056750126353493571058357181483252868649792651610682524304437312845007316674959320959105244786456028509630821499163661094755220571440377509595950938656600455300978770571457629204886328085404328150947371057643318523282252901704416944752929309732283754358916997534755335723564396957195787839887876921869156496152623491300849201648491149389309224226193711229150679994083120491122124111580716001647211043109653472047821436053521315022194528210963505982445142950790140177677803278023371819933433366041022045751525992869178814053651101949584257095052518378033242729251447461536839569995540966902615183152021787017519671653594354857889376904907563863236749053513829927268457477159773335685895241813145900823328136275408126445925013804446028981547939199691645483532295744672676134206635397284446723655585341794090371848229706189378292778398155518185235007042953873898751677577501453300700617914140172322812765943356268432889274796184476241180125504736921387175939402124752248431227837773666365246423926414001932886147649632289086110511159296568972307478290707559205951782063083761320791358291474146140948493723940656657041026306207249367045929575313493874855336520183872118591030207212400018136772580762354747637975493142024525635167010387620044378995896136630461030115304677272576744388820664579259824497246580736804424232068248002231011836655180893213294723469600180112080973844656984542356041008861765074917744345086778298873324533687497595129076124049744863293595350722686017769038702927813545366735048046745212263182616695739142571278121454106655763610757801207224644097387719611226615655317314924363095100913113313528013774981984995375546959227923250854140619325627146476207116346654185353268283489805572944923011385380885802184500664149479361146752778790169125317439385450840147379046158651477433943472845563347082556504595162451959653118618051593995428211087429861594703605800595948461669822060518120939077752403682202315510199851495784928193679138740261125895493005129328678593295080490378982905080793288717052286535416627768742923614564531342777966755371753152958359586022118761729760055052874050664846801680311179513139864885801909500740668452983351272558378129620494714487024339898536968673563306145502131326259015150923154835419947362328009713503837282981161139717673557890065239688427690813482275833819512024999186690224188386487067517907307704471568244617042866732205592893780654574160476138197950826636709555583230818496007351033209812688372022270970331466656566604387439722912620586778243468685988733389941751435113073575252754346322625312059193455242106563824398845999611485652778678189439922957327321989503139913116434592126007605565522406011185856264802298345850467021752195136399760771892288750739964757773395076156202856450055309805433053996957195730123137769786592733705337587263061066488680615846730668025781574240382190760098420637595990692220948935068482591987597600037418787015623499087413022813794513180952613982150680444304568733779875316696549444766696889104471694625338074907172881513688273821863602906809684235029889383530719620435001100919331796739606640750278873967697395317802435642191199460286331954352749390136845318297177878435621988954316859986609651807760295617679915884211216979768646702948661481680792647674698710413971505223377543524790198130000283438457219090017182222094228757621621919196082186632568424086711173996809244337259368396140688438311948455070797506267785752193867025459691135875729268317218795057135435431320461639351823464212779302239922454207596188449668924559309560368698454096355218423276841347422298191873008997974831411130040130409789068172613548291836533699346638277351657865826457015017175883954111058630095622365506261840145300957250417610417379434666797513122754597251700143964280680273324719728098857931051853640570216353061957418150959508057365650971576917012118159483355439376960508730153908366754622622012292318526195707648592551609476566395764298391585206987293426927384515714405991100380703323264464715621564640014867976706635081850327679095714927753817858045235646624190541876762481092864791256502220104468705989105450006785186481604759201802899792981996484659987795432220995561709724387753674899507333065976040104369828204602321762030025795670511478987782806218878739433148167643081289652090838109171006338353788495313756450250135347824309819795898790412231725633966612367286438346751181406011574786136771968254080579759360242506442244994431313343351875837003816282164019914329078683404477111659917426873767504175480290808249231220511500544264379993239773685267852741263221166511829087764944258670189145601003776927477678214072554818495795838169147960065816682229945480135865482426324345639958170508386068062252337224190559486034873571987786725883047774830054057105286518531613906014252788588061804234929179487188126912954855399809034614585921822681749554043193307412145671054839055475594072643613950774685138932975092500142929190264339652975922063937644862585702593819936090251632314080236159386076449197935307018915258758529445375956115716848889464570760495738097090163984270975386761925371181014820536842399016829376643581680263441198668144676726217791780121743084811222202023701713775093685585580167414795136271568826038122802499315899803613783744142606340595036695807462743661563010267333826578961704766450658928934081780901323441812555744018399626383064976229916522573456008221640066595476115484600677883617885701143817450001463926161656151301983946245926330259228205373316084387263472633901953866903150843567977030963396959768082480584234760748459440145425592421353809546482422798950475386518046097011097458077139272868319589101943065422603409498518702533881291671569301443074424500984232791603403920425308214809102652258689766549985223207068109692121018089305221042243392535146255724365810614011354034365560140415428873290205314928666302291730750238250719682733020944045125799334122536410382212360457496076720289278728496432529786006135521340875091238751009179926653656071244875942312315274373603553030201171142368086332661037808056392831928374610837125099210649697359767938768728223738259722518598013841047588083846384353481521309095594105923877361773332825955338585992856569637953293007176903463220688012223678347799733225339073728616955102930397393769869563743554538384197642376715764766012362773165020160274056989334119731882312368876600730882431612731579266823730308259713429652522468308252861726202711456797948500816605005509333391616100800734122961750692380766336880936568417694822515166749263691107223436982644547105072912055064772080180356875755855221148127060497769765552373339486315474703734528414204305846026056352417429284134850345312959563954633730465580031664573868631504499216169423358643886777316090645047689743390269949439735342307735874168415376672804501593047992736051983403893429143598403330334748085715731142088778123908671765703354394766763806808375345111677634174590903285566366453073213013565728284113796536375440219532951901884109581129961957488753132154526076455774378273691722471448080575285042239927379063701980872179965308059924321542818875827017675270562279545196998813665270393233572538063707029004501585766863401881003305797347600637831586125207049778328138526467744023596133929243598833874039168798631941953325781151825923753615320521395357670821088514335673808427766554894692165430987002066629622785467034915257414329011028423068747526667127595944659796655546298278817596116171090967460455608897555109692411413343979366652268457228912973079316427016377633219460179390864324976041730428955177742122164851623718214408438989830049712525094757487360739525776928369534145695342588183826220107845510576023549794162369435990510911014612164845763024173010213990464858704271160985515919546185147301645469869775892560231966652039960612304393838816838936146499159155519758393694373231253345117190528335158078497987692080756440689470078673751369718993447747454627586936207276158375049301931987468054020688549244613217474379541950186973545419849773627505939326792632359975732462182390985137470200992011388769377514384932521453397097213081524280102250932845947256319259137183936285957778248702244488926500661757158341470446660458194364361446772627589290109920929509521192495525671729302526419540560985713352116855499479626014773615728328782922722763358588529033147185947214752429306200714505256674772448507934446607279320379678853403469775537606036473234508052142348572698908545768153141119146954443087545007638739110288837459927478354956227414716560574057014122906942075869255299172927830278836954376717678124525711459030333319443335603015190393479200404195376540275660375908606501303031186350913888437327699516800466662119679291132375084600050314153829148110223916424503631644392603933247244924559322020706558122395684383459136400411768757133468638982578538882444772063614853408329451691566587604366821346882939043749023330451957247343087874739919475752218251085793295302124299049145427000764873537020761360272413635417046892797384727887402059384134298893797824835179342661798868509724772656665717087565563756045530687245319925328780215006208858538328573064822533380633842085655737326997276291115982850863430138572433114401343357708659908643219091889375570812848824786801816524746337154985961322459256857231948165394889990828202968379207793939741250190444751547003705502486237168604584777636043754776331101360737400864468308678137938285118126373992577785992678117769090381939963643650272989670721225452913269445463649957632935705718610556186641905876443270223491969733177923626203065137973109862706822153269312604563662129633290926304303037091635348942069349934463444483908327492321375741353626602864022004287131532445386127066166443734172018168889236850069098394331967895991647578648078910307664495320361705540282248352304340154434663542511381527466745951973941146559788223170775219573815518365016190029312105696749631445656108866078264027866063668818220591719452805095113222745282124768290938539854577392570788212141195977859324749806439503256145796434058520171764579691934569044156277894130273353265477725168840979431323733315251715007845252855097700552401024927289902935538585321064576750375011690864593152030262110004442542649720392262360407024895885178265006573409450158449239713652266506985723052427915479801020673307642541426369837732357206516917852703299787850538935613677083421333919783259974091831838816893299923160694891701037571538152279725750172654267860203066953326525077919479646095376834508619037934823916951122374843484976817472549743861745404059983652182144738728044510971967524068990756878478658288873799496372458154887271652746079503007424361338267557368527068041884348074722778421892932989173665746623587583311368255191292654923538526537162993303279614209168828258265042601901133810549342094344350323145541587003843276810258845152832522599262518982207528033312273278936302613134141255663628713603324669274008170553545255036636244778835251631514620199482224676613323142191803127416411399515075368920421638864654837736024647567986714147902497819978410211596328287821495156158815662964495894182849766389409043375968443044259397095746977528639884507387414631886424669937355630575428352685516350751704371553593122680905702950807978720867322562996645915755305047685274994981571665987008635447166201238971445256174385814107734691621216338685039762913424557312011753074918828738589003935023706968638349214157369329641966271886303206522066100663884772768820294605285769005139421052565531979656849998236668654895359289164585278365787081115854382887241590408675805368743721614611616469252140650910368895771881586612007538031681498561147618519037841756467312041867009726184309387970428370006301592206865566766668380300216410408032606519908042988359172625935161169925428356162158254370720403497527812965425564638556661014072530816197924267733063660298284106470854832880177248789976353223655421562494222747611559168345261565869389743078924839499884317943094383426137697539530977696488078186630151412885791255882814282528752405370377548286594948286840726226336619443166662691760007493122821630203294192698093191348945145502875891540475563059017262916288803140483372142460521699990254342108998055311479202944060893304753189237348454190058982322775184898958363451025898857176815727304119365995729136483865465595601172095703877513186550628146575839696886795198256335236866267341733714775999209878752658071320498118094736655482576929231534526499239355803602364168779864126454293678207820928606325277220911412677641692243604372304909826794756558607818112908905290890231224461081665062338657348065613818219764770846388677180146787367991481404729847737403997332111736700485101222202907778214867089621499727896818950489856003340653387429993295532611166015514179619407044909327039320504830235358870003664098955626969177914651251912086335852566321486331048997410105880370810017155211513577406537734688410218897674751258506081197295521409038445831677742461381483313522152035833289889599243446302240509387710541701079599993339716463536055761672298233285164320942258791914512623469811453187732348672773826299221806059875580158749634384978568069209515723929773464767784069980212789016733425424767984485784886890255093051654515041323621292940574875040119835674036339524119854501151613793631818170972818002372853881127965302754917237973203675255704416568315823542519256686060735270028599546455771951665393661393576645603993509145852334099671564665825845834555640363944096255250113550963036918902586018261100204367094052068706716935462857448502935830749371083830578162298895423196389349105500098313002166978017087356554108126884978915508829745115862964992073694931591614218600735445505336784517763719596331883048121228491148920655826927947308983683310842490027395450376454363532979916391985264184584027257843420714871003636997589758744731639414023902090267576437194730873071632026150412049914516739111387405780299730517914293338471495276398431759634362778611515265147217577514542897759101512781114711765381435504566060514868534129920998732142915546845741637441338587764367871546125170066157577298544975018902142260341165058312678766999859826395201710399661329604659263241708693624921423366345897994963204603928076322689509867033671708546203014681637367551499405793966177328760076163601674398731621441637036958078687596094606589529122209166774079766211279017401890088791415576086257154798515736249873048129389599866651803425503085054678261644459848939279465435737805109766789090439426115648797399287651564485430311651627741535760277572745055578399373466000351505914370496855057900758197928400312178292250309470532885532572452160037063820972945315417331395658848166375004820593179807067002534175738397970068811148310062798008733531587589768871806482433811380868482767624802263792434637095486199452015280782552751922412886878067394828767168849688971526388773101443691940496597678212151776461393841036266739849789624282275507535753757387003894304309800943352160472097479774396660194923767351269293038826051689313665306731704750770859596513175931822472492959927249245231795874077706313265333090664786924616866371271828668984342978346084796455239119533961721691275161848861582892124950190874732741278955779822355210753266515172964291805764059285003764807874024545544061344173921457311528552761220285711600726970047036837993745604675788576884514227169394741368377499597234764605789901033283860905633005221059530525997187221767712358648978532086155430897221126377050402110995228882224781190282402838894040550878569912250009595185191261535804193212694829993625065991503033454144665998922013073231579362195440692039858740045354351408556591619524337320817021987359658690254686504422129002974795918632881281324840133024797898400679391302578221127850100255465366318904725335587160543776168107757446413165385150817926658162417245129043090101468361441790781529602784150866778865292930898935091492848355657784180870760341733214758507348276047226765103680933808692662745960226005769175456650225368915479765818465443971919548631527323943499927387943693849589021555825322080096642021044429556150965916910998405246503133859425860648050667904210828710811986888489207398652951658818138813724368773471622411308443931514750656891413663528357729269262697463172627767551299131600820914171925639692835153880735954790217831001335623804819368481632746160462050698296681892307207980751747760604374388140912751548250906759353289105964863641476565847281816336845136817114578954213541063390603109613796832067942727293809917718005564719069899375105667099751759989848138435704311948627291595856792808830378803515680732912502197350094761408450607871958969886287884654857140263785338698566746139994585463647645523501662032500280510405021082759197760273086440900097878964655171613150895322430976648556878691007888820481781797774276287255070490952796557265978267245181170872171994348731090300187714116120055569528730878573305011924056561073599191748187212894608001087263557820804355107017890561721052044172087931612173633061514103514555012079366973909942291696232949854476263215337652390346858499238807592937136469621643826132193711930046535190295188614255349941716016971917768279218689024226191188421846147990331621925954586979867682968913276462724893700626122843970867054499239088603247071270791259946291116754561441264886269063432628163486762025974446407941541556524517082575304307217419918480496689085941025155087728234698380060161582225971222100310665895200385720651512246108389469720953271963801704170239435728516624300961295498901254817085905696944394948953348437527495999133268616441537676435447919730613751134782112798001342048622662692975994396976979780439626723606341286839184952861545659768092202318901406865211862420497767553916104904409897450934503014742764307369715185318174205927201640180456550203038328259107848553570789916145662412409900672893438316844159375260287986902190519880364506451655474670676744339653482613234423384567386309661231906101663597710127075472227998729654064277118109135115362648863711482105500928785835769379943989337371280137355231990577533906665037378591035655036746525102345735025006313248454896390405712316634665463254669494987576487330292756032347141514160864874887126151438852801470789704886854725785664232209067316251156029797869789348218794787928178774472569405703432518553602547350830758989735040838596622510527915034998004185667353068653962885115692617979187110935949586702032653209693317155601970276534517574723372814225607005559910611856672530331809495788262540006758812705738423318306935207683378747800625309245255050760347792931206229781803274211749320927457118902832601371063657782505122743706882473448499320076026423697893022898108696051171694481612107506373346490683889396869949856370357937784389651581738115147049649119390623713359917658299569801660167524583302372241927844904279981579654279979143385838252782510541363036390968612294980242422690097440321789686481325585042801779021454827977409525458806457594809786659281753524867286720494615382219916922238660180834034931015055301206328349945680812667387633674267579355941029860862060427839078662717330113035555852328420825982487154838258672607669629138293734414067597838229394242057540404989925607101166793647659727173789965435111673715099746137285612544483257184722210829813437343857795188296923389494186446618205248226514857666443038792601608584195706813932076490967024527578982524355376815721711749006561980782850371104140938233220444874826543160205941617720220617301809311184611034337753811528895936652996464449720415771925794652124277245935169122223354309705783185856476862569276131983562605162734210551129772700565092069813991353242051892126012351210021909897611809982484443532648333247156510859248541324314471466487969655340289973555133782962386190946336474671998207312601449708173161783624739112563237732255660703466939505793736933003969344493967984748771406451011735174918319654656492032389942591985975100327976749209899171039562571133233922292189599412894622894505698445055663058316189211520626648894474397935032930889004157151905731570057590721154013932946205427975065688944492340500974319333066290109834153568977637840579896587779696730405031793699340945359474597725094450615960022729873284940090469248212630984565104668634478023762269611724817917005515906403473835293017607468763327187620036961284155653259272859582648222995784181930529000547152728722548145034428139259474760765503979076500524189625282746861882519097642485441532101074003177979671815332617900310705904534071184029621024664069645730622660238929929744355224750890310118621073309909069337866681950716451285798858399955593016847743205314601804567148633695688073157987057194540859813230256591790792644658353695061382922845074483080357474868459451236989644310908922957191903281763692489329347653833981685082449897145975289642788175248269448648273029888445661040406550775062100437863776306821611398216536811118628454301388257522492360737065146844349531786926823929664233776698940304279762021211731254203783883237791094041507918572327009385138053424217761032735117797453029945782216650297591617588091256376115978201317943269388045831945781747086072395474739387910099285563888251221106149004941994018333485421604391954925999584367134520696917335832276915830511781039349192890457065056090099970447456023713612968901705696689438961479178443579556693710646909175250128791543966782164986249841301187339075215069823652388853806577004807008309413291146205365113480775605948841754482435928422712216800328248303384724176004617835014818962339661632247111720299124384477927242759341929937311623153161641340240317249267911043633147752790712407265119705439074488942089081351145736750752047685095891703207277921852134075774936345696297313395857153465873838375262535461971404842635030611712919313855395832156969021245690476776376476217968575773102637155789324176710339983721190238907648726554253842021052181839849214913535555208160931826202613973635819486801107256836089340723560613498714341930551505749846493912621227894288606146670040423352203077238739407693617942925310849616658223451679842973647864763324133819507285017566875423573371194311237828656299723429376862984557049127502640077199970868931700843438173057147825760315991423884996315826678623230482363317800062311914201446139775025097803941720867590861202742239160978513889898521270821350305005079342695176830262115732329173378428015270631203281647909728772974051781114911077972074165343659261604440097080324797913341928110982514316816499378675906939032987935310644588876978077324982563995887864948162892750994275172294005691372662534473935696300908680750740028396676294013747994605899176544589376744143084162929493851426801698049225671756315824801048553636725833795214438229374425964852924171419082571475833455320936039106488547130946023841321388275111938945267860599416051969489447351145592502318177173495831819476875747712488421129440678709133271057660878666305267720225917149806024121007481360955179668326971771832639025713322383400563133478191355923561923269696967648143480248609942037764574931519075371285992044987436013767553004675429024735633233831372221185554420180452138740798626804474724997124897080125093105855761811627344309832511431015120802534462216530488571156087374114122286505224793563947722257587215047752708114964805763884325100867047729149144598858069899560627550614346139594732805964066692643285659802003711674688081896428778756649167013388395059579033403928536135857927752668951992116519729036579725656617238129690648422210712862871012346153330620243801383768514774019304999811711148265541932852757596217089460763902598547194205154708812489705810919197819238100621929251395705996939557497339931954897543084829897420681748772059461267566838468056814505830352318001253991245702483519986197255212366814936504588970817425839717265532372835361911648814448023734459128716080558130137019466034542521219920319827628994909578760844359918930347815431096183333744997999023595112342698470138965933304071734996876667105470162221544405498578398184981734463742924382509966587310104559964525988051893120274484969660437142504562736855443262380243001196466058604849442033875067015950319274038157611449213043739474384256356428453998140450981028138652361291016872019248283888597734172933837365679411199090381915597069142577140523563504746540345606091472898606845546643294420842806981482308041253822715147572524102729830608823338446463697324940574051128426835350035176426560910102390503020978743301144132313262341850720327750683968274581646597599403147350850341201118650710944914014871986950043624564374995138210509858430028742816991485237257736428472038814256970544822962114135368381196721205583788068543226152920962475393515090682117995269815002049888518094519480102393949610415025135138004774545285982561923896208530030317284120638431095395235162026388351903925487499378467826306578009969065273009579749465337409454207030657246522302318626582383044336159895031512389554296240087128333394077837066748705577656517291625888719337583216109384365638444847111887379877466764844157838605578671767075769951066419013847526979829981908176145364959737832651128954741423014487722280182281473178567984803508602012983034664256370139755375026803281068447572104750497415918236658429540719917858129065714898710037400463778223298173377456430860689059328371758007643366186273028579058014694403003199433113107801286751174902878458303417884912547694053810682095346107285355371730943924118260969013739742955030717978436572323467141167769497979663885692567026588885444607237122571170487780904418747508605674915969383920839816978077210453263198018151602832089026965525989003042071440999630187065360228200447644023584226901432752558107476011170640568630528286581747537545169723849043210776350875835013559992863789260808759255767057617911194760114102110461194837643807663102538500793067363844869298668486101646179875210318344560354032874012500578844556870298777856677878851509118160227692677665771122576904085685153977004640142030473290809494875747873794155122667940718428507712159145069561828989682132700113805219393227223712888324804244318578792779203377981738251114379555937700985127119497401963969863141141520339256197037683155287902703485021221848155314987519743268566649103372577008138051415564691578065687887580453290857505169633404432972968525310802382195027755752538574837399418340692415833166909511051237583830156320553419206393198287564715821637486153555775485105850131311153634946655284623529680674951024745882567824576134582938466980505813219049119820331832120621051374877243886210519357622489254018829685098126232739195325805729463769809787692799315181655147128595484641951472325640832926339170124741840479557152059195391420220713372568364257522944753731028672057560335818181040490553149135116318246260210419370172865157865984710791459977081983470135432962357143781436386543921283728841043899155942838470064898801904441839099434698110526480801044659619791988085515186996371013734668296490606911660912966223640494806328561203441879952659598187470914402185274285671745914719683459672085930136425322367844476734121437238483329291592929180170381858244236474493339488274974239735566984163233496213399727399265985380398531421104114656156263260968216077757546877541009118923564155594169439902919407538662127347960527341575738750419962737418784380767727078076459714700600476361058608828512217208084161195311591775722887568082483688651398708999055516141777292134835273484115426860325973527687122127602988221301570821391882979701997174493238029882023136011660132514693344530935431077086024787255656089105715658144018006365163424188587478165241331022891993388344064572395592135191480621580630639674642028135180201959332532617152089865416613952585334021349846199217819831671799425067710053211533704171769920758756335736473162808699040494864600250545991935095201368220385534302755196509283004248813642359681171217340735130682898843843138948531227693643389476401784416337591467232670648447608450241630512354338840304980502935836691280254299326356015422752291793285044300313067325284206654987015892210989240337500212157226737704620814186817333271349517081090371600329910619310059232584504146248873734694647086549046142826642887582154091080487865113721552890766784308416165238140983482754246170079942648311868294090921839967760694774408545677664287158579645340061919637975778466763831977116138500206574330139477674960899980451103380782289060518115609696850789294726315083666741393895842401516885775938887226537923868371039163967547266302731877661826283117452895510746685053603925533696043657757347340831859171270906007825293571503728175607832987670937637366633873937209922680552978732482796620325000525605857740188756440662106377039863457009120194009276386519095737474384898034224511724388264039978251271321397582920869547422947619735979489897089207243079071954923951292099350253328153354805058861269487999973015517061987362827561858213774001490368118344432024222888147517766338170209548471196875231252420284786659182807882780666932392624474463075758244736921898680021639719689898698722941905581466744009741515690315058501388272671406616974888718941793272394086219406679713423050755884765771597648879614286364409197384199282101463321037689696160257094819615094141823138239104315608975161478519890170628624133435877462404868114510505928877150399466012216439714976621226505801218987188418298616333144940260946341508886722921345998552744289124647531742531809790523742037782367961021093880415082846792753002254615545537475837848363512700593558679688120876035872342800812383026310854383007214924344125820300470090144702976404390788544523262811578587364328985404402578282890119328324644795460312508647009045281553517944566079253250038870682103756313023240124474053133807280416568950629709202494902051751082149226702601786090927281958228455697534404299325257433553030141835147663714155760918950728555878531333648411847625550725923730717563881580006988565532965005074514748088268707188917480533585892546500073028541945938102821293316243782086504957206411642428221795819799952654388926291058685887906034116563727472103766068101808779580410166498607930545337275965554416767075893594356569482884287012746556892325847543204353270603188727279877598902029929435358255948040586310649050211740765480110779616832807593950465094561968889120873915745605588471965841752789249428811746489492041186509974057014714913449348473941700050665793094367453638947218223258106552944932378564441029015220147378750442729567502412832812851967956831310507357529068235320433024168970536901200200845262014994613853018229884762416174222066892873785882984435340991354639376164755052333925956807511909771026305302098914063274065646263518938399152171812003326988953991919816922822390338566857647752779580608095652188552605489157951077447518519865157230436610870348976749720154818672116263819490605772104731621000740711414556310968939061344010383571014486781257475539286809634912747611824840940098711706046597990552589133713390630126296646224103478651044046468702111345511246151342070630151651390814264331170938328918250338095083544999660599700793389630536108444621311494488752146597720745468913412789812514614586361409070606955199152239736813017816601305762239491608882531851153424765604942850719940122006528618861783473503848128065953384489924393613132012200805226029368021071169861800901561800487538605705797325234202789333516632875929727528171796481296211805443466767936197721460025959812093399511928662215309644966921337495607667178102409752537609079534346627796807595884333727648034418150978295890945097809826621539203000025001811793185632756082886171789535457961924349668642120161362653615471899881542738267931729590139452498209334485260874549781729677957983939391761176640640895767172393483033109941926548909719102688005043713042542503723914150266372087557716823982013026179137610234591838110979348356137572916881208194276364021082719120466422126398462405036281337515719887290186491387660045567946241017499203170104129791907020542388794693460103108606099699809002363652082433241874425541410718765784468784948618257947017742498737006546557812004213735708130123651984321505788226888978427750941676004843632096491181068479631296828322208719820672978900661444630994461688884325872468767876133213226877793887278015255157486512760625509323809500148697851250795370943210480758346517929187864807858639152090406593096644134749400506375490786379148940584297594631606114160281972745724471423822020786842698380815107785128711572391576770711190696891987869543588185290968135662904605737121863233442375638307853477772816049647860805065739580149080942707762278126506145623599298754720578484208387519942536052232784110810899833298453053152894601553595363763032894802517136709356976434346308199783797379038195608872837004712297844566548645644420129748559742574565678402590420312175479601374656474073457565453457501890752838590853000862024179361411388775276443546072459884509815714598911223277205856239432247352961319458670075655405625877674318377971913164070945758049110305434788551563277154046893623550437666456436842762682164461275987054718076208163713511384080712328159435360548837151075248790014380089394926386147206722217092950979841172078027960629752999871551214691799980791705221437270351160946992899999072616734362732118539976001197878636396833300582753481165844636152328068234142768771823002053946293739974289990758257729375092307355768483532645100002668465540068761449758053566867706492401749094273417786474414078236613309022743797683861271924636602390484928917126148555093618923823959000174218729373862708552460323599109827816908533804217431487371460524290853115826761778461537608900998358105253948428887054346032345763817340851537353863316598220859953934380922610198357927290640805352802605708912726312976361925733422607145231701450051970606445249059996229576423746666603090193387216277981430270358063854196353240971525563885267006419812750333599417969900643583861435332887980015733069868536264345024450989144222982202627011303167121156050215998927431078488463340530766505578752410061803094082151532067906773775214239786915893653079558796540639728970448582490986007292213373633297947090714169281576589490930776986732126676780533048798463266949300532954989486958076617263332115630514836583996028764376889734406149096854275327797393717624713455000396225401884005855357085096853848308852992175234970273033236628912681805757520211546900495672828528264563222562331190477325438004059010252177962534900947761180182541672905980597132981352323908024816229709929607261655422563950901160492332782202892116430644125400503940572479077222903945547858440905711057187009878628859848949986144280580012799638605465505510803698934982925486801167845660593188165641566083652720111272885184471230681593732463430933392121730413720161092671468225245067683748322772981921900528630276322092757210962288543546414694717084739462423039144709273769368670732087404856329601248224358967786911188781414564727704325642480191922947192135618234721391345648584308610261845064349257584778158148342833570268737119273611143782501917386614364413241183797139512323928899340008772089628026272624604119511407846440087571170604727631458783237665737425350346283186826104076611877207913567522818829763909716934266057064756559295494168402314862475723441628653550436361988674792888629379306605912285440834896198531186302942704497739204005317704026517375213929239592334148052068658976152985996696357934551071267298048237035688863066439839924197148150395433750731027310853087113620435884189420679623206792426863033426022192417758256798908233788587160764132291273520717927460734557885840272019787910398920015884529778643819279291032070808475860062258406507966833153295559590166174071198596923446021054001109781078178156241703491683076626346397025331206832922012040923826589481732911956743881982750542156866483256422104681046296244270103082437840218337016881985730679540069080982611502176031033727674601809596066189813779831510103733773877230522002970981592364270176897775553070408394342088720909176398108201736499153133128805227211161610079322528639108672000063178505672639325385337859875119411247616423934049782345846675044119043379369112914277074301686028729789344605729019667018025465018956625244872900838710173670841787812014836245177470298723984101776036431646788552029604274852973259740525219475482647382598688821854899733702567537568643061372618152658652404694588049574669307582835673693988245265069276262925671225290707090117578729522406003507588893685918894902099224752866681838684333829723733689095328701641415010268034114854830406436913858458341692711537400677237340236309629414629270358436838693964405115637055127557534685876671027038393012320596134223658908092128720743333968510006575606948026029067235026974670479038783556806093059566143633135160895108614444645544214669631902898490356959416527778529905723774046013040780782585637792257688619564373752762103137794938965209369720408258882230372045007903066843353677011722318689283030937314252316949854519596376716285575546361816756667727212203776710804656999510774409156576201110036607605880353237515216966829807247082620636493803961191311854300786847604913596476688070336081989996352250552936715526791156369881428666452027512653964479223039747228175359589801066968836162509580432957317743963042017136918849115170687016689061676297893848911073490021809696026891374921637753053019075786838218612096581644053753809453416590806761011408648681807370123126660373128179239353309436746129121645749912113051568037653340149828375709433900516882286104906384940166591694763482395392381772722655387594319270373603155361096364774428636491433001978113052720085319385789183235749915599295289694129546663421892139341382723573348303200881212477053629343506674432253311909168914827040667171673205685853679492619964934636162296510215311941072009960736454563197362469327017946946925994697026536769165031034217983984711917825271382688275110259051462164413704107015743400979021323004537678988130528374149775480102028740146851417160887050552113534293344828299358547042827300276250277692256341931530154752629243645840215358233724827655545364493053744721925698692399405268498851850966418423018145191022808734462586832998133394072913578472574120100851917666471463761340921087832991496375194354770481072139893555201713723902218231744435108465540662432310081664060697657131078575192362421187075839198764781398415503502593518826771218838100596881500544400733331014351547458226160880843962993698178227871143044957935838317181255920348560230044673930220294241578554921869378609793123724501368464618579570084608642328342734445611483630953717710368052611392571692144039433434222662808362692431055532403863414688911115129612782539495948068672200369353489648152923952914351957599032366305446078053144071311780242851861633186553110211499091096153558209621240545948163171976321050863033580189947529556462950106888027623732080949944685315049812364320272009149975479727122848865076225594021538058190836170289698024780918443680236690131309435233064105451937230642231216039956826594215456483967213948124713879411914034189569680518137534412476941859330863043228820479006259487121296195176469157821564587633426443450584739579646915802740647572962479349808512007573894079997992538179251453578427583822555323539777141111413285006755253369024841541826166311687107282621052762198819527160281301766708188625765325426459917726101108765182039251897173071332101502318496350386064128503037896826496027040071599037569307326690371995629971154587512831633684025415484337757565716518052937081183942789954246407099028396429784696930904147590951722844581373959080025863563842767959173706005999234497555481139007508367022827024073418549263479640004105872996188951357162343213625830863136252031161309193379007534086497910222301339989870963353596126117134345382693648172902006203582116414671367232881174533227828683912765727403058270779666077901952777770859303395200361907378159225737662594431978013433636153204993152394599693720558898302762823901713029100654178271403967128706801979398751418645015862617165884543780424034432363743172154102880576849477212824849633646841294930412411072563370061057437239634738082058209260782371295500064901307006408020347045905743210050557698172877403836283375788305566262573110565646930461612707610856096010883034552381640666841261595397851522767342336693907204914478022994524346111039261957304534204298572784897658377625440350508407996577782397962562306932747740424676230960863571153836569114849392032219865485675535605583696100214449341540546491474614339994832656754340867266721553051072863258267775476926507150084724424091416389497624202542179675732605909961598720506058252609535671414638299289142879810565423966351745770032154509560198139590506877409432106121933083935053150159277453603663187741038530437746861333489855874992565895588230249259603314810995680596004693107516427482406879768559978518413965816690752390081610977858484947786981707486353985147325303616736134911130895023103423689776398828419141030295554919282135104504851466787638541876584387549510035679584277425897387155455132817760804122794053745153212326084435615963678007805690620315181659827276999185744219964410489648903318805849157508289699629688519044187085906762856065132980936804259958096726998539446469168915513906022837648898697263257779668395284083228523955695333535200841584052137906149140207065877195485159673400327533658536984082704718428739194598903890443252973221550861438190401508611183080594696105656548443871268130463819414410535341264478806972970665571871519535100078076734027854552918248336187059808528508352213535850298213388109630381621611229869456039715789438187633573793835263634675008159282704248927604960331817715288562679108095018728585324437087568739349345538312575865268094595152510794721611916903994376672294865869404815355066504281026244866631706821286671337027035465157015129718372027477110388840996399891586080340352129685232906675160858269123071050296014627087100522641277114637839377366324415689687024233092593983922976952053146905893394606702542294793483320043799554404324775617352558904044330004365938424339410046323250531823619382787639769006264161201052405921151615674244069467076174608665455719007837931857328378277246692744410673235100913698557282415902712702542522856003611689831236182759078460517456551882952762025270662624909593342753665728196126967133301256944177819231950020094205567965097031297724840493640345400344682621962648817937109707204462387954111145609425206578316721735306453472762318850438277697992879887774879089397528065343472023831024477080869222839203153215631635507385782875161234330606505166815996669334336089559719045193872543574926938199792268271652018959137937151277264330466421836569846668078548460736467347620117381058274429905852705454755601554496025140178524060585379150043853165206417192122646736096076316890838456093274040626915530242998934220993380594824110103214754633204922554656043449933411603818002584256580033336647009253980752347728956925318452472472220746697608517148372198871091862873414586013039587257279875170191271032214488771671343643230071482299677580667073841724505481247123325798528591159557378003799703562113129979392270778540088671153055908462307379630531782357084120898283873317001746251366495646929756535165192643165962376763456160806017643698909952498633754603623025572672919568808786981341463442079847845016439293946503298759924715995415813451039975461940945259216907493328018169430605541467121263158118536392051986086346821682283784417339687580734405954818738646560965762345184239749436785313670325118081147370255409140591181681261456460493709842773430944842066628994190881596858113718728598323635053435690021464577407903610897901776051603755084277106651532267286911225763500612597171219993326127450500193431187516291926342519319171581630731895012951305272135261624365562799418604041996300342251804173220001992568873737302186578379642603439015380041674795579802372689741092764519673728776348530338379211788764486796002160147846532822765766394718398750521709450366792293966942327311622504532817436466827386276908050865446732219962817562934169706302084053500557022632824566536064087693098739926247085576002969348957202029886840936031956097647998334883598318080036051748769085177510118876688335741209582410008830939352737189258532895898876442886837306249963846170084152786308726953405825408585624701167982237278091311813140707100250903398368641362142761968585075331768216809441147587055051992859588925212032780854233114883003764240523040210908005682661205879687530094298801225791276079132289743773121867358404204348932376635794724910996303679855964130139437725269718218774783527595869563810365248635317807534257150354867570694932257662894172245081474681512780764452367161517845415023896463507018432107318570670629949639832389646714813789787373055196293283523821377632086331879650900215658486802284604295244037125765140350938689681814181965811768152888278124565110533203464199172970739813629595909531773459666703587167761987428352875497136376661111325120046220786680851565578307816777469780970450060278083338155517720474487779025313570662993226824279790563239828624751292020409936319344266176581879567199921053120712257192043192940869680338021238340969474065666684747940023841699703801232148413855678836882196074328825592245062565970546356338778354482388831883535675991278708549069790991824898676943395015213945786964053524252223085840930721181143323457742153623414174788580956975456630937048814236921073090018436655581723355530136724358500322588785214018042815752019105638175257743927516861024053471940938927254157986562488781471744914938017121915540911684986164435339048318158872609959088689622763753803384167303740963216250064499345994066357439034094178586640721553603283379611081675173607731269980822052888955343764043834577110528928086336598746793110723815033396583802505586254546058972099250283434935546684802501232495095652692086944463330417349947315985036920134274275857748485942902631925236912073509746287049175509233949935735091203573048643954871091830879788199389388127883582265178392988835456319696303059974373409781510978468470556210446945331267146482399222171301669674549679941037392732658176539373051650958382619790745273712462627986864442871568836384664950594058351586111728986308233494122900415821255791781376900483328716910851148710733161428432613381230080708287806341197709740298898986432595897178262393093258593679460714114799764138595847344985533894766687839494739066431756092535892245328530544977756596874777172475487278318636062273288971174750022626753831312965045892290429139538668871002541144700073249676640418428922038658773881972118911214022893014525910213941510785385038500276366153995223443602670746625220844556371043929949705428335272750413974557971230678567625912543984270703052832087732219234516425972770289157734881583805653376560771079831132425352512882846806629310563985667056087752568181940468752658281277439264058083173532772947240258215818765003516031938934530719094506236375868732415553459236018794534747913515186360359950445951263336171184118173474188010639207743834686597786712215021929665893407194228962507456019568533408991008639439801375764993475766951313411944479697477666543991306669476361666018395555645170572343201266456959635418116535551593909898779524491777537792139592501806441763055895615873533415610365777487222004353749539377404933509547777782002336050288148563655743716151265369147956997020868876606924492890837720896720715259001756562074056063006331945038366715527645986944260348836068575053616437337324023639774082290395541676520787485519511209952372546214690597510088697386860415074817496805780586693948583345651847644636594993735972776267390691837460526626098456865966560666906292533043323700176477143353742267358572632394274704980102713168069063301530009260572822799614830795512006363054629170260548577989274649471410033334728273224056709309964018877494077282898962112172381766180720489436167754607603588663495157333597578111244550087135981499675835002491730040984076244227105779968303732295782784293670765277117206140030099708963538762080559380552864854278775271701856340564469077613747268068985250367358292242429944063304251953748924377589357375395059521036969141144855464232093148726740788304392496841612530039415039750566547962194862744277819190823116929215274000216697117742189593086227171804504610178370321399819993339736689102257932762012466783410693981834998875195059839844046960273972561001483709391018106826326410421934033091079888028758699848395805336120719998010458361793412817813000193388321901537744714080454379760616103464487865669832634473213563341309040481870068588317146028241451906792383218170983489012733700411066719365904965597334611490747360067361156075729344856786250236952493040154728839699482765637717787749934030610742480489239315662128168667127810375595467600271328745584226065578734523433253008090332112231332162066275693198780784603627359561417679700495763640816405897571919910537388687297908629649151653825350541836931721628243947566686019298070810324985681308342523691282046468180334436487890910045841127611582454996284744873241202381163030308274279670860682856328719986906769871871755611683072086421641749530507966928989533016369244847060082978904545838644281310385244541068258506901150547928175813475572230200865825896444957620406150592867411969329428186222766610502110143756684824662264069004059557435619110524013623957197412408475401035517928566839637671585031004408562584705791483563360357160235396492763269998644100893232496758572669655849122442940067633407497567079474257330595445724213758159466797291534157698810682262730844400514609937397706075403259494354883156917302365573597845842752920238949093916098343121021350593794341675909266285668960322182995381346298930921081877938081983880049542362354388106982522505875862414676039399322292744858904739039042342025928283402617904610019090988566820543630970452206883664274926283719384182993379310119359883177793957918985409826226776085494832723878628698466479731497809595696365340692537726822759733145353921213800348660722643004973118377004015662007909739822860009898869217927256082367728287242267500601002185738101504356089281543651078682909763544619716045881663865564838332387828414323036716622995805201333118670259632768720812281190595443977794715327865186942589803515562728148367694086084814334509895893548720374738362539768849857901184296156593101107332118182037446241736126258259030750353717963208664946910748059926426010501629629191667423663394386317703930080386512926773259883188046125027203815376070049702367449948975724947852647672493491763710380055803933290364857612826939269725561442531140392743663197065551647140656627382497051562328564779187901573972211971959161040923057613481835917869268510769175169360006016136394975797939394800397205836305154335599222519987583056469098409121902036074104741061934200731020282129145329421592838686614208409848227958323600229054586585987829470906073733613247637006933110624734298039359592938286444393169084523750016337339648154597179789532047891827098759663560453745931862293992637913903666403429941642219819965028916893563092095070976102067501476541380239610641722221558831311154441902894422751251356961900029699351386862154793536619260022709954917750133556095645542874961107751834066122303679005535779819468669155269303408431354967978998113605013220462151102819849136161514153873088430133620838314518460808020835902047244887735244434475323741083400344172272167175377581437974900915501493686358279409814317277616569458198098630701863093377440713253806995369758131486472061684776093115283061699846090523224028812401316172265617690440114478902864810275326714558490455214429693615088358580641143219886708288261415234862317017443695832274576577072855816478084851375753049111897553300392778750443220413648446194602229739315995747917572634455717630464160110984143955087961061999892526735726464819113232066957453789224492203427120757740608128334775302801767651407999596986854284857408292460484364342949864509068458176438386449436706282568944765829074797721165596850756328493452138814249754425138936101817996960651212534606344867733569608802407482047352043793409615449589938618497318132724833340654796474436442985404660137211549538033309881269069220857731174337496209139933839142043361851762138767937815907760261415725108720445400900017367063196497342506465198537425684477429075988342442035135988624925055195938956291995279894073281494839319641624615320799401195134712770610205235103903581786893774325409311883526526653895248308545741851989130627212291388198185460324325372858908782360927362466570579004989527956844882624014026771080890074320200170211562028626444316602792029119011286490618505323992564505088817365710516314420233662809576403523816757323490500985008615307269849511458000425109075479370203776332454820899161751311074877543932010232784292970265597288581933469262708639946414084804243728832123364284159518902147214780857838213655867650650312586129458742959001479921791748340755556781559929745422802581114176068698081417716879893916102035135545423963376575259219042383714513756890866355916268573473089869743259071678385568431241879572159761944751161306800157319644761528196646542897841653387386496093836415262592549963993055495203520558168731472625482983250319302550213377927986401091004934829670796828311416490837104631104510030839378682032751499857666071269372466498117031888121793667363079469839434156579215701854693814109933887999465160038978810524612628057803050777732783044571296892691877322489571578835620867141778869550618080291962335475720232627912157883227946825769066194931745361166121571594469810236072007081900464655659804063420661454242758056759090982348677725189860120702413679482975928047249321687633286368043014190716311551704810261671185946930386063183326960496666058298102344767816700726277231663689413224264461757036000253264794856545557524922106918587546321470486258502863036745322935890208337682760487113344162684909160180428172388192003737835395361665708152523184389491019162192447612949268078299705937113947752827757223997234389775276885197883324010160092019140734683642748229586510562335135447614930055347311349070818610210668903116500678372863041797729872926697604980279816099725902962590756303406128230627055572528738674272590719363925334867901255021786608965752916366708579534452493537560457217087410012762088297098729222090490432005968519131164163351776417336066977893983398253959139078677461714266524568465563990626514034137516120321829651067796906847284457696084015223941490554359499699354585523669057335843939910207935827099455469473309897097579417391574279636393454222463076121662805497390997064807253946096656655409571578173714108601731729565129911428696441654157443117681003614144728299221474589672665725466628218640003046662371110917068630012876610290401878654504679631532404270750496896172892761670499471315878986997044013927135023556669036126353181071166766558061182558962738158222788007352970962781773133842111645593883075545891811714643886142039822903943248995038287585297157469432090885587069880003594610925924856024617223870129946027259600203490062773307703304925394522402875024600892925542025173146663804040746453624556654586209665414666924800328094351945673347685009955532039981191209110498441913795233974728130695356267980579618906404905897831123405854327078825030473645362338283060819428735018501023794521494186939899613278835041166772250725582474698651523783183891690126278741718833690085124985339012845739717024238723927614159789178838412866610749701587002586632046615378533554291721774712401137611796216098958380936175020945052290430462199503506959506236720230235762783939952717449690343859643378407109670506316335547648336048889801720323242827139183048312535439831407865694865940694336881620464227113083222018699209000087024112815202198997879561786512051398921440398894310612543005675206158188513370849336144174455638556925057252376558170312343003336706195090544021063520897617189277915886497544072719714172053550204432207441856223646914121659278906443689138589024983082967844025512386787856366317432905381736830529085048845224524554229433725033255370778129189592475292617747418189851282729365160739401895045236220866688662989676400451541604662324970868304020255849124308884209584385586439393308147262843050916277132809030573994422482499854716659048563006169935926686211629200468564617168395544830205383826628533941534039381753992029276674970422589667207395315034565562576417826047153409388314602113080413367993815502271167565131913698398085531586994360339649388989357623504692449028518391391168218310826140104355379147556175890684613392385280837154747289846485402309468871594188542095460388440216439077018323691731052702439097832767597146164145912564116181521815818007082814167826376125472259598039915548514763711109801372585467086805353433363633763671133402654287420494533508702063019254338958486035670834627763686655579261971480667163961662205103688101098447351600017519651213781164334471303076772957377421708950696739569971035537136751037014935650338437448532616133213714039938126183073793982546956801062826967375141805520864040984302589227968437787605786879911915062435291582569473112548830431040595944872850443795650460735491828234488395667340400168305151559719684890305362051454518483443095461685317593474372107111057512105584786999459894381216789621010514891483823300623995572941784121063898077202633970809681730330740191156975532450646226886646012618352275292560548745857145609672656381939181268462016620264720772956964080734491874965914167395029213351827974395452159376123174811862092107949768886962894926553667119014895508163784715839924365303551457169269031259918888483262281485567256899249370492035090668946162609950994569850145543017375194840173702526022050347409816710582068583300576151864573404336513525267763795677479132600995828597772867715681557183504184774780715451006551817194134323175393960163850983960111375989395400442160224537599623821266828010793256566249709485008110664671779662348501519017815668491435015813689875726663841777097466882384696127287945850316077108404603773013605261382368545362052911700699246957441937989825592863796502768947122491463708619634289187539278490654677084338082613420906144088401412913036548155393211076893524402506003057212967262526278958016332401623579979373538906696848550757968415077160849548924543323386393025194907105141704105748344562088515894727132056552800293131831226786207004141488726654888876031345111290268010273200585189532966948598788621483836871417987885463706149705869831498000440119668020665429952645831655734691924325091047348680500667195097646232406421641690862535933724851136405433267375940079916939956642167491727054450857929075933273025103862386427152616231673903745235762091999161629322262362120361097461130646810880930078875767226363324142722445940464615436857406441972179984900705967789171476309864944342940960659369730381762592430975375174850590622255326200751999845724443569411599086330469509589654063905411242984627367908340674000147622762805001357376518886141436577038330936425892769508759343224247159469286671768930733173231241850981145093832439007631427401221456094166155725129686375182750992841221917312440380385677050543483415289416258558328019462890987424166773675566993521689871293347947222096177845184786543342416643359383093538099740067670649400971044666925309458802289572169078651147206257263243416282680595367246828510016387662441375791674190078929388094292093061559595696683080940085671671757241154396206864225343409577282077920735913967989635243714662423388155649753147647206132091303720905398859875282006812038748780763920695663324470363030242819295057970858063461122356163868892215403889280193730217276866887730079938324919339925207287144657539986523733838448149699190939041676490118375853402907908893647185060008341590282018182948614774330616597895635737495677780702716918408757744815962049000142031891150188116868670712909689735139244558396401283952464288130201449104711027950550720364771503871684006348653484220266026835384910694440761559126877964200413931451429063715904496755889631718583275570287951716511878120539498328898688278771593927717030618934848006897940529158176953434536904950164507452977865982777510402160478085923403122013699665686750931281763583752686533429316544692467851717575220219666996501363507525784681549922300100694859083836805458617947856976292750315831042093304117841646008443326761918394179850992566033811938668867635094401773400232588377232155863299219384214459742848925971882523787222527811945292964918663606559069365592332984475588354726767817229680121106912475559706286293971974391425912308412399337958054397077838782540768269806602595433766885030847438757919506750214064257325183875435112501932588711146144421431496397415468040579182287942322058186738407174750834964225818455354093620752577859226714648564914901108343550401421093485801957075491753153663383497758539807369405508334755829843569615662652420910000338631672416039246834293109357064847804958605389156932657984509156872941501195397474699234878746776443756141038530700753151009631860445815860520019847034138854385968960434592691790783385151734299572072962170920811519413307839337402821541851026389562310842320377441378996547810341656860798019836525982137473014077625702115397265197916927870625015629225821856587702419074032026332670815845893406310162030872328704773726391875761679628467778021452070490284207378554602984927250896747723951546034123865693968646441127279593631246035567282672349850630015618327227533156533330842014681808898083512752313923552129033690447643877661940208646677630203504931615195533349405302749998072721598184770656781045701027597510403673260200197042454367491991216597353779283498536561698059736328735783478068225006024616308284852215476037942374552969063678423409723922640174590207937407607175465564817931838475193648498165608536612504949649159066330386441130471033779186060780151089921962994068385261370499907983395159328895214117640572972558904027584818475271538778316335291964121126007058444932403904902608197729968307207170020594294916432288534671375934276511151479315786008902514213041485212927709980102938451622433633045312231353732607394296380801794290124062574386344396105829429547906499786811832029625804545019002732161032876671838492029856691521063260198125780895501137010147955207652959664020495477850175314267280943882953948319998728506262389961978604640888117963512425583978821486533658641150726160014160562976740972878233528415806861277947555549747853498879404706835392292347670610174377749978776386975060885126638416740444318306314879169393649997662590089126670682068057212723569018023271718362060820364277368895432732477928452915026924039679905461166226140881357089874234751906071897490379719430049803544658751573289639246859061649499581981750532351356803147266987903554988801786549895665842039861949545546665642395363443235385645459107610947176307113293540510209389644733947606875310225751069621754797842885402458706162630993390533151899365682748756570568286087608899924955790708115933791548104529786924848116737739443001814088097977263676328751987692966014533471344665043112892740328736339760608075904580673040161019365724035637215512987338917911953061188773165359080320897350091209900659983742123316263302463483069462002860597635989187345391851764726223897399464088147352988130039082406989023238988299771025670666052437364058190039325353657462362856389863714339480544964967552071067299625437047424246540865014627309834480692159361790295324350108468951147741721545251843358918705785609391089811683955153316634666167574560543436113163815904881426137249195556235178383271107866249188655981793472772237924782131695713032701159901024314594319901795076586707108068457251364446850841218595672014740322772456894792954615215215633329637857832610653148313603358760401443450290130938728426142741043016007528079238913444233424060523126722127669132636752928411159216986379186012531417585204366823046338470366690815465709857849278246113321310379807186036858672049479930168226103416926914189895651104484141834431062999359969509914684618067785595754872426670597030690502273574972828096994530234534499076746572808252060173302567725687533776985452599721013422496973843028009673542993640614784312747732799925005747913761732870942908001278677417740168900733117923505980484514867928329733527728381233717895041736192711132290439530345715575317436154313564827544517710674130382252591938804244554600360352510908080185163399300827321997916764397533571176152014336686082671559111631197243191932931849667660145994241856542717096405816546376750322114040941516634009107703995737305946833565922631107004644584560044284180215627834477125259986533784890997640714816976935498323720205294312897439991046458960246051343801301204043404462083578623611177269513631498506424632617546667138468140632846400484036935672066774164188941875703066712976663852944319863367005924644798437251052011364424253712088499861004899952904329031661003888297507221545672984546571092627658803595296060070865903097135427448283266619736880928679935209216393435799819602828374710879083576781971474562995470981579706058600578315455376595298100515311027624637910739895530905238114345598582507361011002261880919407622640711894980970343279137311395111245356474334615809063691766219304429037720049557574810675692070539277006766811309622884883260557190943657930279428293147446351450866800002953747784238805664544987953956839023830686455923500228507418809543314164461939800144266911580172679707655743093063515235292161038239487158938043675732198444120705162960098933424401423293943373401348826434351011553586384008151179150395443447776531965131954431473199367080026745160819009936719612484018535934196341519460412105125268580266081190244154955017549223514806224892223405457432633178634535022621026288982648001463267861828857479386222674875863451029538711487520851470918671525048398333167713962108396216873381150754674342601518083177508612701371669151299105033355771134757060305470622800448893721053746581351084828700074540502386339587910847032250126059534391818232636822671340814002725133593338476799900387021180943975095729631943591172107599220221542110458969012772445100957865603673715026620752344342524139597897286058349293559152134245741270215737294440434382612955186299166835299451795162283334834684002868623836507922667805988691456978068961330641852516065375894941198947509598873412665854207256831962764917023204016791711915263829105296103687350239695320562973276745862918398791194564213380016731930480587967031603069696077245312017642696546403554328650574845858059749061450381808389784753828398527233676554359287374665948675206202794550028201009584878595645176059767570055409848494055823526837283413075106875572125918363505023892852922858406226726467001321183305564530491203619224017941722169734800712560466029289090250554528524947128773303791865844152933502980485175866482488092291982758345217113014655305111070269660411762677788646566159974539463664507212256392876773954842798845204307991047841563520490400734343167158785614217466230539329234804917909189452312431690945138358963765443615861325282093845527416924466051915231958001339965360340130449908265698563006891747790436328653408155528481402587455224168262045219223876988558996674532043314503580675069887411027441760080727945823428337884763490476234758530009618295528933082676726400024835462879815731317381486553398444505182975288405107299607934377484521463274122880379896920203965110399049679486124436686055230475413792450042293557058119166563633744262243390849011435113376326713621662242382197924359590914396805571139776145134583350481423882361993302237710199079271750366911956124453266461100860196246259327777775261113348133631430662191044826927866061311191771854149892308362856885217983349408625766763471921010540409064809348934766053068087494172354459096410778233213973351607522275121081124607794068254571563309232200184826014631251727886581538989883098899145892255711001404074252471190439049231812320397049294323086153390701232922115242331705822040476845082338609197535775696323479468884384322734194540589691520326195181890464019103746062449308076475291701136226412925758603038430160555398545924238496523681655618017836956222280844321642300246757991792493429973623800300693859312682547098904869216813719941879802016519023268322980187864259099629436487356052053702532219110376304938578434138160672043127173155647710346571556098085408538593419227648108948874409024364063557205490027372728503053884617136801483920068344979517677215282099839995779561852746588131271013685146436436427991846113054099594779977782780977887629817795702572922119828607534544975678822617023756017897286445179793440022191744301766590892760831772940319301762817967391546811121935047615966609601283529498512174650677543870727522462982867066663978158832648826977383173848900352323758930750945884067426350012530250873995447828147682870703516088181550205320636553827647933039174735964056615399717342881401570780720533658475107062187531013954398297635178470473994152962331351705143225174742549921153534182908770733483379588350261596868016770090813382346922321679456093652864747356603514478865304266768184625113056361230493906834041515649236577227652139773206745138389481144574754381656757829983691152402955053813574794317538984000850772154658733754632839590990964567114461672241692528166487240949794333684867160376807988725835435373820506398798411536141305217004659242841009426358635807657671929219309186327085357005175051049481544806617340294341225797670220999983952468113775400045609865435793734630789280065182773527506698282483466309985030522753064015848650569445869306097496161095984063397101444128171902931512411504885517305228235320035348129773004760071271951423361725497974778659769613456412498917081978336943790412077647928337882375242927733769887637361621341216782538457374046332497544098995229868104682511355836456062136217194390340914734748037351633108100709150735941897622470730837794211242846034874429908542399552011872302373365727424546627283204528498000481124446959444820229288746617919731841108271668139753715185757016810381472853454433201245878578887232350484038332625104426034517588854623874257589453058268159263457619983287244908138257723551238611535988043986581751391766397737744033314527799666532494760534518897603084943280342480472882693039147451759900984949751676754991481016768967066649815510696811175636476136288432690785475807805930126609035534235962045843549357516306954231797024397937141298287706833652524201530113604814519657236509487084691054751676057723179307384482588710774987215343731603094206737559608499537127047571157186358260528284003320412902017214704526340391310221786231391068855666280587054293835529381160900104569977165075702595510897996581798580588733786681032127349832954072275357045427148266236348935703960415762261697090897225629508925412773663175352166556782517291768444874396189039867304510388224488291281734049689520092355762718185938616232053619473552172478672218979436412995940273330284976460382424373974289124539472760817072821107359118781509302537103218497714425317759384766594563943681525039276271355440490433250861722961098003106683758998753339767950271136338965907484736281446361475028412504569756864780011469601624928881906927845815894332181067761129943070529607469778038833791501959160193183657316016773975503181108959195232506722665608825144936357492127227694274325121851053811040648235242418976934235831832626970670845240569400530800439614607662891804385042858125481922390931267743478690459196248540303161795392941850248621536526859233491839297696921890116619997178935908706338425140751580076522058762551761064886826271692489861862974625196120761203904918768020142448687222525785081859049063765260220661826072969805069707155554697564642427847014128357732258880029532621590730458807429660704357566834274860888365905274493320532303217631943165049551690081910294367876016266604121654459379578530269891651772645134137200477743243241350892742343874577131222854951718000876322091983835292207333044212365090816264487424939038519140376216158631122019178084774201957218577937729454332564166254063722426328246192423663200820071001678669925381050665742839217867440508008623552075578252077856323679555439326556913883807607500983580022426862801337287188053758159384364217051078234092097725334111478988453941292786575210995407663965018036440284141864375833440598587901970699932042102243514785417266245854146873777795251305524862241141555154140662078601036690786782835878354906611173468740822335439589081464029552261920313385821474605230625709679728434751056045160649894278551364326823666700349778904337809358472041065156501473842176970738470461458767219684281481878195819250750056531182833017030187032909049676675713971223354417667294371517122408853156766955770150678316285238017946548586713586959064915781450772404640222452286928539647936589075045266667831770539223174328443630045849080023079861118545097794064322021364309797384367213297868760520236348767338476160062879688739706727482497670147821787818766514321600031486116256613918108971340450804448958866308018566633019840183057427823359739962041533879063920559097778429737730335420534229042938497536161346376463685123628114154776814179793337412134431469352263731754236190749627448648800857556266087596362960656773175696310087112216841627356292085080654337257479614955669628644645942294156089693697068240104457806406313058983849067177864862076211765381183717453661535943495666767297005702126252060620779209536875339560139276636154727897380119396712405407274956797847443042335408518645544458293621808439631425503712839216304855694809193737196634045928826718215354068803542052691693532848648741284268972483753676598356251742498713664219851372892576099229228428241128950986733725915495607112081881550287481145195131200245967473219255240539542918443488889175297864113650501242124404101315691783506333413868895135048646688382897325995731286989819228956463180414560432495041004118062026082467592344304570042064973001421075245457258327866526913865709486796980913473929520861110149003861614582225229595109671407026369582302993633464856721460161303013644392924390771146168301646640221859401618582507557222333726535534130639284707531321134214230492891304950124213861980614527353113822118730064329466492058031679829171650018672247819530815226970392202184882925078597865343535517632926096039906266007437437991256980782232672927920827601536426483456947842010261819505223824947254260538875133069049295254917404476731780001445575627698933957099381771232043263931049512152588809901199410988307018949332814939291427704362893913597430414723747643337837608629905187135323263822674287044233028074193305537825343383356924371108521642951299176858273017645564164976908879502408266964299457009815350849637618903955553486322679494633200863825491670323835857251942406557357850846009491687017288452821807303169548907034196514354727292799556215016136937186886386508661495400396990282006541970065128475027169139372892274103338963958054247324979773958339806010138521700572348616223581925322943504082028698886936211579601188054404567966758744209321253859103394720059764432413775813545910225220890063399220065898425946261123840679789625883344021892898574400824951904972801930775140832886695433556697723604358052066126779238374698234568562747128978900826301721738576607684506579627364194996184699658002601106880846593790264908972333558997690676071524744514566776036240923611259953946012666930220205413321366736141275605969722622613058909483468158714281832260121100173694492007478512273667097582046317833862016035988793114175192152830203194870268592384486014720526613893888605599725202371656435465960779151140698428160086050486124391940258925606718962939299287258928576374481179894551627458987313819273766172379034133473206483132652322633161085823087164864292709376767336622947851837273787012845920514715854146917159518433258007898353084388578096665029675923376091967839967576816994060078840711443773012537493513605500328329051157374212032470678475731709186027265480848516106353701283631516067521718868119849860754788430325334756826027285248591662508889551659586303032252446521249390084021194582569435079027386062651536403234715510736749449457600990032380553526290030273321556384379337433381140492344327974584648266926123060057582466152216155505853113063618444554809782152363429537811130373773933013912183839347216186316251382717790047916847232524242833556666240049580154605126812730935172087016383557873269836562493822785722778218469696756089879884217945693972568053710843530250298644927002772981255718999714537819261323022852313623715632529370854484574054827972131543566325890207570139383180679894669129633041859013660803503319019005916102121852595080168584998100486892505602935897285451373954499962204162874992904925014871918409095192467468275223736022688122973471720243816864717115255146546602517093801557964822095040237791904921036242343958624687398250845109904057159133234033841504082411832727116238081552994262444854164685021736321587708208575780865513085505364802168976964713376933455640669200120584413713556836547374553968842223463539496139961516033679825067394919325191891268857445440275276064520138797096467195347883699591560680962094717286835305702141599154012413437378704021763512509281744477164793777419545702916259486490986407063569476020419413166250045421802426503334336875581105062086717208528041904220620757032919693295046488146632897083264882719082383986469496585288678314435697918836602617431070349391852756755515138514730111417196714687069013303883794668656056788921343420846451516234733374166829064872753883785245557719857045128183948753769163181973797495105272759235795632099269888823057284698165974554007083349019660923541065603122806127315987752124820013971525836232453021509071878797896338381911313909830936962086318486014651914099587600022715709839055430837171455602924054243401065797598016944667789277999263282769735201541997155368419740156477186912372272886488546100236030508637912836492202105382292259759058378205427363192796795889104164894796376099522072714116003703671982291679797034340392139688847804208118070535309532281706251484396412463900905198752984125083588332941004998381890868375188517872900711058755146545156417458942825485110779196933980727727979067002451313307476181285605200850062582141622168501076277808921236972278078583308684030604295182795584320444544573571418311706776384613970701480874307899482424808645137486855521442426006802705218619456744493990641600976238179925452758438159898826236253960086884356507423953352973150978549761166518441642999945184423549356360078506922339180921219747170303785399398006582322979439505970755763059704019506179670132492432014965550319815209490022927879937029859118113210386124691181060999960767575916200590340588037841310434198658522923431617833788942878170292261756325656112085362940972376270963083725018037918774909419973745960924430170127637642855670378451347256866720049849245521450225319780644808655156096562969819673080472039943195103426317118365302754591935146269538774666314087135681826293514439906312122663510603382081446424748323279953839783819215185778187863665266084493664213456776498920806650461385395341454195624737745013478388313231499813074746712752229317217140611772433560910250757209073354263508387024974397008592490373287034052566853551675415238297704675104582655410029159997196236507241993083816390693556537156292944615818672630255196698092110194961604522399435807185267987071162576702703414509470816700257278635065122873552984854902627560361957815092338177376640094509081287993513909313732487122974238335528621454127486266609480808081605249783504932662466854048431202891700435373354275223967410286171364220418145433483712781804387143082711819032612487614109174075392576677547003792226485670297872474582540970473283464053759314650471780074717652415644013326688176348298277680809071776325866918491298072175738559974866535627521699386313851911846097974459608940188240111365127890504286751932477113813623652159104375629482898267233769876718841098776195308856085033446453687922753823898220500586429800735074810089752946294950530608720432761952910025595411204419930284669971528120912155729441521871887106929727225268588033671668224479571076981524666567758289771670009809794359349317744075489418709186096937313011807589924138278497743365127137576732712899667898670417051087843783770412652220674890502986299465181830756654068995983864129463393781242555576614903867746945091742335869226033940412257114857907962649921653675442695078375116360950846830409773322179749799024406701723956904407560978413511397716983307275481223143919674532150659108482654746341786814779998477715754751789286178299126887476045915583395397768587859223863728176641298660673583071341464112262767613940342598584099408392531851358938239875292629046292982887492539658046678918212485756920428441559176786814601301579358106276629204019915756813315682645040408634383369221925699302543756928218679427944241066842499243888639338200405800702529220065142465067887815211269253134297516915626926604943478129875150122588571703880582459255857371698620380390258887752664433981984818811795838110379511942665451617835517908785936175119943628538570807470566133146661588175666087264422397811213605768305594435403366675583878598528301574003168785505297113816440569801347473319603228465300123260514067040062070857597669815995784988074707512651919766842943920943841217302069053907961917325098708205881218056927524216749986530758994051577399745272480138810356460157540239631579857002494825072985421665437145350172713624813504931352090115154406270145344520219967854085236747810115303456168955625399656293688038129908591540722434991338818519857817978253230530692485611165764270143867670354123354656263968509769500411449450761566860993058160574908482776900004712450551575966840009223538750526636749960567543761522392279760866362920303899087855812403831412190444358570800380099035510164575121613782220068276216338777202336706249425341825606632853374399885225020552445489503180464319705491256823711873214911346121861904802033898553187110755833495477461376402748103092613098072176395733299193489813702910747259300894492134932093727974678334704574137434661483934812904544122183627782478766710119211735595078101182062029781509786523497273745911104899172689296676337398354374165419695812161112564141918630965646624251697189631622235754968307832589477503156081495867052453835280647534821777454939333614146858121200852550921028560954632339065027120045224970468065270520709810689011897338531250040499111308185838711886840348553887862550904341886603163161336080577446436690941151008188592107631314342440904220796502713969358733534884732519771629798702573464000768782878897323958678520592428667842413645700304279981173134300387872947889199769608293908023550949608283026186107772940723753850898177564792960662710829209520456234017867905207337245702410298105634011000872816651398199705138999723971604999582682588978142745207746332456545122238076024532647950130266423224500518521156292578375603513465474334740669063088217038624899458575172146574474926986477115370246039457515382941887105087280181133701926317892734799792752984330767682544213055592601539070938584267185065297323297896777814521036305725026491271324029432564841334692575129047529720385480644714336863814388473453953336149931924936147592117267405718855327680115562360086031490197912204121259968780981952107595229538693391888573903445279247871988867604196084566868770231095038448783622668767712010902546019514023926419584835795842603962706608018301101488336646360509969163326015506813694823923369600921445295385229065563792443756585867684942516477758588378426462912952786728217882859928328218865165039632946888063889978809232397500304832688490324572608939968532735115101157465046301785673550623028610622415530620989315502511609503561021438267608977701359646708610578975692764337369798118962193241097525059966369558514771794333382773499203856090117950725966026790052433907672718955386698737473069883896467559057839527545942713171754251652951822327599257543133349498181274577651659134021146804796950053208800817617600864574845771732496721371342415976548218412715972147867589760591831119178200382553172154079765847097927138824807596114729490788657957144868359910434761919064103909625231776306218752585673166870918207645924296655669808454475805850379381723187110323347485336369963065284736327442255134668178753753002868227672097368252415690632312793272624719915228946576351531844865629066734935150164259340477353953530782792297293088963451596611241504567555062256007869413758837519701924606750409972444196894276426398516914434466593205231769067148071995263536954074471206340925554695021923901369818425767480252582332609682401629771879076512738017331028590730652534062217106713142220249555883799045468506287821550594873546463148937565628282149998501628389531382538988531706097823763961969617984816938241973142308080979391722537916271227353122266853973584052003042192687291828036603345158818614624992362577125441614684330384457659892911662311208238498781541678921074345733297279399361389772494178201935354989581782253329877045581532574638714616122831138743184912174527600162611106034219647071646921130891600653930818440019635471226847630779215268564135903700920820171402940176537295472793811199582673523376987959475698473566469336775486393746485900098480359927188122182945477602233608253831669074201939278663110202731649914788542039134909202035009666994732093248646498797630359140563197673404274522357980100273685459108302373304637943446887884198438786853603200933166419686175869917399132671992738328607819014123154289928428071651339874158934397080675715443278483960919445645753157387027921838630423413093666004742952246130974138443533104893516112224876561159181374805456791832146874058507722595570960428808450915919710995744683352725535742954848395875828989835417490425424078567828209289765148761796626651100151768069908852504190431485564125468331311798887076697180235902237347307111177683958091272794347480965161993180391444904410713250553555188487052546946399140597200736152688680331930727155515560440086992554006396654413254057188245970548346985652552442404425717584460436361071861724135303705597861908396873559190051490571002018436452667039085139792146165161392876524869149863986583330624365089298483941928065033066247094941262045463398139421622800520580677370369953547315307583009648535239247280249921905626066348570563644895364361194834157525515560695069329024428220739693907636755932240985476191034136688718818982880725555797624966682597833005412755410271557910046075717432626524311534396176736232088239180015339199055194297437324178792349811086438964187831222700133294127002698452334167992516963295770041411207750071954376035965671333457984805988587957862353407286825296195639554348421751957034647300834905943871642207036029273996574464089688990259086102027464435640568372835373263042816538397824580425254798243303849372853668567179181195434963718764447285993664164725991915266334910649225823892881544281353584210440570516841584525330194617565174701654608765270650817417310833100467727861329235615616255785645056010082272285177051893330003654336940999067318405567413176430440303591246518515911713522827410660647437672650800571536708583458809218249753199470524862270898061702150839326571680695969583727998584876040923963192855939640067256943111126424111428614968276196546698196792580363427207615101745996272391647416188680497221331500811240317001942025069106740012076239718675979600049582299145035544294552334419960060241371966757682879572125629034411936398653567860499213949660586889782361398929041325967729000349990508498990957293743468862586468020090354715026391477246679630209731691926355300616618051977828066548315993200972305326959716949423635505152459503199640745566002768927547823531069562875523000766837969550569420125588660707163671115906636422211377228828514075335779886900871964964336471291822502048658974389135437203844369234449964733489287717821730103939587847142333264918182683329287885045225559755675932663051676411165345137041411981276460833068835524993906145379613312821242043511266127740391635893498454546216827150906249665023626269373292278175639974087099855010440124805712919228191103822261523374616031357378398761127215427702376501009080502095176052995627228352938133532023432789338693916413487891870734171453066316262929998659515608345306250873439269274850784000904199874127006511087142118095780878957088336829291548421563136943828599978094552241076266357771412404020102376224223698759612452704241065216340717770381583837841664705633344434666033470797008496290376518907022977168245777715075295873910860194763932512290615173221584924970741167547306444021665056605889708272284578521533862455463252549206623846942332846535999000304694305563554224440701428230663202555571055497791213556440162826001632200633260306288821411882259130124533361709697487515735251742526769719507025959231892691317995827296641376245718733686231065803359090772487889166323373758703836349534270670350341202201915099709892020323437325840104298341931025578132466588663511783453721004706749676704511542631984458034795575745555340603456082288057892075743222413049892961269414569361770839595355913716561896784912790907829883822547383929885960708243110228318861295247056397409930364483181716109440680135121342709731833014713508769676930259611191531222604304030444804360699623891835126334575967866723509746746247360586080809430464700184913648037730161985377265892692540507562352565480782949071623362946935881179618083302257133055949004306655708418894600407333184891300866921900327666570711449454726012477574505594320179745259348485320460006244406207741645481788306815083271250555153697473753536270335445868945446333456583441561399471177595419666458488463433353700299626199401256047319062128408754252938839354221300354525979977416701721118694646228951630396202684699012646652554888715311259774434857415492839191441549841281015110541939414180464357742957875274659481901323035454717346762348053518975102020353470052282874975204976628771269249015058347575010414985122198590982839259764512384884562741669214342230942287834677550328926354090232384039081235901668134598254387566463986544093509313616434566022784570611856055298508076335500918457499588898803562956819838601916279122405743721044720045523373435729172212396045043883729537691622000565793979816973679960457650736350593173720991230001122936253017847446061119811537824421481953690715221661084561937929591934609336945839222136793944995879690857554916427099875435931950502596733907493097760697041422253057417385247679916234041446060142845800620000041570192351416168292020308549691585548658313413289534406281406693186684575052103025585097006799486067905189868625094935607299860728160357334366889380090411582045964068769621132033332322261699077416200228655000257844522243829859752238032287078286245235864304792115934749610532087422718794134237609370456796315705673499757378886152291990746769174112614001384370453333820008638379741682901961392554013337048206733296276113361824813516240364179272987060783204280844258976167330389009274293333169625460768983469046998425582072301847835044784290297398289730239335850425492215769406245035177704639642261097134116993192733316786673810662855405710467342471916241748045297552488071711174951132376614750063596877002441062392390490566524782044905377289088464714047912382325054285901109201094803939770580213930997088991423317735187334353449024787776947810335391797338229647379062627686331004705147987456518498893610672632601934113190479456232056948651480444275230308250698538413980614958898825643363067766631002224986146117902189159399121653368147040963486620361934632599904571918941630381173104965596554822497752270667029637027137013651262247748412602622710225168269630049520621037543568079859961371282914741397408842468295762576659786795240907318852980385683683666012394040809671913604645668278421858673810749382782355402893913477824219609938890665701715696523632733799781236177223914874306635004141238875522685483707584410583551755675864031839725052507020771795211137663188941266847066896922846279271860795094253309440486147367902924214943024985108107631350981193413071352081341296108881195994715731378870196800944874194985654796653305852170755126549622731636148974651310363667437276151901258142482368188961506759670134850321304495547692607540286609050703531980872786289031401638788093471166384371053304362175655173697777542724818197196578106086566299130466992767018503591344492110286397945279240695823018210531854395477375252968632861584190751188843587755269529352491165423172876334020657989499566724186696992962558064400553179475346569928847423576732778969995605607642633396148001468895932752238608662580647515839228386452655632357892540946631595794598079840970728094356290297576314160985836207073470236776191049631072953858645165859195405331239881461961523200658411745648195360007784389674810330812396751643993161602743584230270640211391222410091185148109833860035577187584877841404724084732912924214657741997877878071299537189862586773747655155117923061971409233811140050368983783032926475601180522308218720366158499683027540795706620888828987899919534245911161254827402727359190087211230992508424965988289767549177735866861879362551075758821381414298789561680008812300994809280919738448391230890680332337635180929901259689696874222462679348685731268023715547601675914973155739898422954169791967384468801134597187990541325978997520328088775971524188634671065121390936706551647262248973844358883909576754273957304272002092563193392988423718839789177679116134703246421766846734215775211799303019999570939206732402748603921871287037955416151900774059166161635389721871523418908550743590085262053553887745167831081309098203135678425319821657779837181500173721112841203922718879990710316635614506245935925403539257351769369281393772665585797773960185799863129142356446037027736737716751871875563924899718177871402654141345870188686843819002831387192945694997758769741667750969225121995339765601152950836185707509262728014354654235961053311732921768507150207113412174980475585337402749454656322909862218783046163324138050441180199316677946289897679648128560042146538466098541894814895963515603575651113588577571157708375476277540999232143085496256453188005473017829400933620918220955627133257020110998548746788373374160448582952811571559975797254200549168817309721021227339950309011793688024568543054936559085077431003737125382256040306305632686228547518143333097632508269677397074478926739417337723005034437932775102821627404844422385369646861936420822915204483171282791443660489173577517381593526341527134955308770858830513808171660675690414958575090522658108725242429040525038307264900493949003833971579756896460392354556016241743324203225730246818508775517913935969942932753590293670579779006235234779224247511270382209718035328136238704526143443547957520452778548403870881642503805862167454693276965371003165680821860132506533668722447762186425556170759296499071628658398741491376093387059255421809217315204329203919740951763381525466054682079730649235973557542122914272781079382995386149618391448939334704392200930254245232117893430748554477203693406891407797511611937701860559451500598293826891900768592110791087927282646225138690336652469784962344921571757434239276036707990698944821929136454347836728839383959203250401098014453527432146786833375142213493624604194003560661131932222524384803134481182946576495924279401221437025881467003248809113572202083795146627913164880586878999260409140786426020350796730627349574390762969364015868265583368936437066223182303410701321299995841352050484185069881744767020023088127888091629231180700692251118860115339252343514863285067829988797276726133185599643383803069690694868834600586995079686834153069941226404561447363527373430128646840704190859385829034408143630824031572940886808682602880643509141029107805115924884811888238430180165710948285906821805581513304755625555973404030698474389577483948825335561670629298745297357068059425793510467082469468137071874677184724024783350301897163382146604667504049347299871508638019566118848944361085752822515944064470133834737993835626842986273872306382657104920392512116705607356563313877332218733106390242426858441491360315826525857556849951817279480463596105699213817065926390424665225413389725254005354102217399688713400063986944078917790476358748587973987491847281195729009590978433924569624006238714309096669932774989559080730641765622237669444367946728858574325712534728631807070704595648285352677533422618925457941035793537228390055855302654102966056760835719250592561329851090512723336881206791654248062550838987869279634434055435970089174402594280489032553365198903461463884559104235239323246337343371671040131017866955865408139408692005556750210269891825549936242854338786359315189164570192001787872983543833265923292905112379583795851537765403323926341542144467768262746469801196016535295848892722720978924901119294927071109168401117798373970947714702190761002850708859658332579533001574254455293208821524781737219787234712594672681990899064124085814593488214688887840698886152476710049084377656976733974246993054996034248629701336205598750773882716319507998083511702069318866236616000487875991233476755711564835377425404804745359429382291044007665056771066962255856141123137144801618283344545924097069633719947987751136503249892346707590333943235312099396929185078602034373467597720454936228645851577748323324348681854743955890118926481127955786288758108978723830174348902034453224409402767383308363480467971288095369274312984057432722524035606134774103742473107030423843817502110484931583984615246308437691568544264404482717031500459877494820585797148328504251740223282589286158095064751302428505526944643614171424590376615790268721486334584594764788417601880667028403054916798022525573507219693460158186822045745219388580275342334741707249056914775249479398088340705197897927782050603340387406542858498438165322998883849102686289671997219933732394060808040881611528535949005070238839273104653926505601636935131296345161317518434660232115135518440851969924479507792003909310361282470609789367346838238147220576693730842174535664454287849573585588131370597652574240957477015169646695485506871246977202027618640049242814222474864693191785804746207740061721826767598827945959447269468275403946463312536341194216516214737160890249710673393807141299970275876154476693324452580163166251870048833620649432655231794947094692268634514606071495161804310987582408919366226210612228428332030528929884804637036887751064785687964074964627094858089098123992747002942218392644159237320500155117107127816102989526807414590519333455144553740944003254665181551472716542832913650165931466791662500597785503332180585169913429131597695154874904011128092140843152440265207921046687211243810256209378615333721347758106911222713117482020466599874621493635589305837711135105761371362832208842003669551915886609934630541855442798999596889393715323060631052763315865525112442852469903816106508522554143361164155311271714120097111947262165101520249617580793347396505234456401171454499181433966279051418167377609276027868386446650188150449176455357792287138972468841759218303549395192766115153644651471566718512973553316835263871300335034095688864117038888921983190452928899522336279700157059900716080676330837249354032422425606698299241412137202946784819410139249525292843970843794336605296692105700803378358765833128859884914653981219448841477847109203790057056612713481737500053594024627122600596752761252749954406815508787167198924105660922882428561918880864545228409279548606261029949510808135265698797973058929056784237314834332567886995398403040179443557591402859974946015056782702149495996003836284390108128719187738004351081420580877103558598645666230116048593281185554958659939404013731620836441711458376273331145685672752869792633378775696013720050187086856055330288503741722341198990249393854866014895546504846156720508400548916068159455433917743749865870321003036542337433539290859821178577613460248134664541256251711033793434400710503063618365736491107089920398164645631022977171848134996299147054591606018089600500120061222195504271850075961135510220233947661769879651761826287336821870903199068491332354751498179243635146154834033516454625660190181852001014177624163457355489505923085900199932402949743364016009479034921477682637158771806039274149549281995469061075989654244657902483405401611283044338652635373126897098801734839156380997458424613999738505204801922623573633789828789874352696432014889428241562586737090531599255683453755408646037864662177120787971361910766155676604894236127635430596164588831776476965425914436296391280293729292734606384251822556042267786694394099225014720133525177229547500190004233467500528253139735005978666932581463888147377160624868922135246728205029799226602906495884747211432992489464595405332541469452327841234788516717976901030397577673375937227262862226384164128282811157248247893589407288101856754717585786750728076169624008356447074913999900191265155738012266240581331017698565339988302326693532888712638450684266611041608813445374260716259740222693132636997355864271100834760987839263611593710758036690558724589972748668388495365301612879917143390609023014027086344519439245226872910578718494356521387196879690895072297022166925993694275350281263847142780988022027286541744825488513396589467172445866319176838238070738631262667513616408260865067504568014071408446245716865112188674480904985113659798196097864826375865114337233140784858256599697682253034397067342667915873138711068583364135164020255185552873010316395975812731930493388727654118152839641169964818479728040259045570205801904148648346739776504729596207408562683267138767428123617811289765133907941003147522809418998937953259336274525271069243254120491489729920502322787838596011092592639598898105684020570677748956395004921236340499152898215101977412583849300929497743637772860972898973608386828642606832672418027765745748419702240767969651392706675584727593459839042927036206703042236245553706124270860036549290609063679252039931369483745468059415549268371141974604922582910051177897192144468693148908685655214541624688622987855122373545907033181991046573773391826878469560132055454449284581545692041022712229883583874244996139707481993308212182983328341516526501844942797389957813078495286238717960733586460874998547097699800730210729102238321716375109611203830534227433806497350164328385900048162253120009378568784137986002152315784406089285138743006986646256188024538563684369824767415937783393641603228026129595272072198554019421735695825353895485645642840145580052714773848807230921789697913985907272401448152696563606639935626239693974056505577071122964905641084874513681464082120967287018804349216325524894070061050142629811269381531057964705692215821310511523400103585965442769338608114897525998613190367033627881594166604952964456246559358492379780024124359550189522569158578318400123006174896544962603225334733531064958947200583261515549752363407699164903428060434458867150838667501886215013950869637326436975617736192443087452014903306065668204969128830266506126981492339560964933731070436038842771917950069343690571086837291450236679617066463957990799753872201718986057092718949308693439404087718501655005204216377152288483391075100855554036831774669504816344924243625052550501015612737539444668798875546658848242587451885295089208217287298202379115055401413669480428644502479101652147356450862103382008918084583680931701984741531825240954509990505559395123100084758936456777322243918465633523543064321954011276678561855788669496902046021739424187057611348336187127531368380388796698615469440618753403771764034383259777281323309421851572097127773867572047716303824126122193726943537046503563649190965882074323430095378574181942251003235059596308256232035699766828729095327347332408631053319874666054343715802017567153855089896298325871921193401456614918689036281537923012973066635529598341948081518667930320052234198941499341012285492528799152648603940325656964410285705582075673851340019822438123477522737719517541566608307885856198373315586912149274043752506431330549525552681832009988577121892548921726601932050339959422875653788762069139564469641593573009723954707783100570648359502422748860309905445651211586673625771764825473025749626592217642067867911499330931558497252572975111889119926783186081261548037977275509930714035731236900166941584804943982800594297057340879651782416181541703702578495538821935738865225127259791840551954682622590217583874739658161873036808858927471052260351117304824852840400977569301768191788710931399257851779605648939088253589644920912537339364143228386770074160147753902677987927633167895789667829176123377386658996022092236800716232142588198637325249589904584103917443446755179333724008899443808409268727460919660034063720622555604104607386753653342579507788428988156160712350973399240363131320177706971635056983066863165927245882578177437414630355626420222480076137071473948252787328650838260889620201651129743697521705693708926607422272627437642630940443000185722772359905690063648487954874082525110032950313732089728509891812140513344021936990668388311321833851742750542963016210047625984309241856957320698523275367237038895414938659211406086246876075770598160944452074629315850782775581327259267167008955724249031008150958455404213183341452249701137395572780963528841703055360757814214856138840023913999632482711327734843794565414629318299892923825759305125112790247299993350127964084632203852969492788956186377569234884394899190433059227330258287462589099010597295330655977392902462922425639312508734089477063351382696600080943349842296707118985337088827595384126185746964323505827779992357491186812965674355601952303705952994774136322986670079724870623183836359780993096206063994288814823420488012471254716916868735774336911903305423433425252249345045553945304369172656479031389002144686245823226072264064908803356062777347648303232160322339862587359950694419598080781091578900350140042958368590592678567176466306667431196623798349859992831560814115849563250864008377582655261251416115982943657071570164888549932988802754119356019803636291087126118891507977050723402068167148160012380442972684649504151040988751928471593167361385918046956029979840971405137436459189394280298933627256590384570194223193929915854032113715348374104543790092376748755869047201206405528915762220137300553676526725296469189621595824899047903272885128527580102796208789475187520192273239476727734488692396133879368614508469396485944519398878330608831730028634939193553909770416225493929583347338311165682912418721409261868039119836264450213512948549309285586532995184311231735591269309999944011575396623613107348870897794220648137535192187147750165823421001152094763355763271099556447109908284489741719303307621398637582212614975623668851104783495534063047113556427444778275931182415612659450044238032195131337379952038154756992444253264298769799937474649575074069541462771249462749940252957931865923637509756493813963307454509015688159573604833179583337364317931479464087030861286865421954232641903535300380321741680315621729451734481897841555095935062370687068447507790688350437371693077627977879709024679438531751898232618534381057130517974619373059768072377248106734647526962643721416924372884920024309150307935417702832511210064338216204540565021398908529787634848190027355342326092739363341274782908706923181211026706591170687341360113975549711817669217059411289546310496598325564820331853889487214934371229555937841655914143302731010055269918248096154026247237030371188955900001426239680994443166390417448353734635648944064965374099771254719069645720962965009658436319029215134951105989290419918675038665312810502033561634704304340330335896123139298025693379826240834688082609526608537394278610034837104217891428360844237994094555690147004819428016214504017496499514216262025935755133184481951809562878031730482214630258628518960866482980117911043309713378501572044037910094400085221221426165293171302307575771899052722843307820111821373559532355720937037381008306648787872367251537440657245872612125142640379433913130213808551029855927898212799583193560569588620209070344791731267796738174764608432181617512446114366133409142708480291712261441769147612873252739551404942659668915478291084350839620169746746900255482774131700490654394555498246368551945504576086268202568901288018519210417919648645044358630254448222118338315698189752200221712113986995330681292197949401659708881830967583560979733097789826174224113943997368522332960954909364802599162980569606677359099700352548294453793326597015593701822640119138419124420360957399976925708790601415414343602455287082074319793493591923915546130302921497608728644629455944526064746034526963351830592089793902962988986230144562807816784342570652507308329677905361415927720426770966506203694798448966219351819795063206452841646764890564641432354248096522400894088381947148524263822383515969165113552711765755189139451138510590662360370830579466909624039595904470606575045571613218119133003227605396978810440094693815802828407057153338455363932705201015276730250126593924685688727879645582561851240429869245145481657526148070486732641618071659023541195403065608985011607327804052371054253875103991230484500619971142347631253802825976357672278463879690152316262115604085466435744013449074438467386942921709076182535078397510665074271194748354645123416861010131192852068152866100517289979207542904907022960099943479958485150084574260167615757691074569186847577439776038205208279674228596928172801983589130133837341444546338499483370416790544705751085750258895966094833147120926740301169626411184911527304265009091162072447473390885511684793712157427283112127966772652953601658648512443206803152144994500731659288500800096910597371929357498529188082054887872519453802534397100202190064421795020833697317977294927868837521763377320571231981892352190157130146055538711713757286604980110702143203136218568582964769857450600322937067548653267550099415377137294364679476530823294955756093904376387149672586413483832528115722583340793250284333450829919343122506898324830886860623517321961452748978174610138148236025815507447931505435489198201518585448130345342480551327597350140261604603091451637012542783981502639016758951385583870992388606474524573776383178355326853702672651639593154453283576125485530633944361369858494542561691340041433770594740228473727501285986180476484966248058142573726636897228824754380616462410294103431576450457592331010468954337001338791811957548889558471046943912630922231285562532996728221827926569416493945343754060364115045475256793621105185851486728625915547599750892450005778163344178829316732445309699626046845895355647433906491182424362779077964886489407556980695546026638909715981938861866784213937466669461811046153141050317385521560691228431380454132559062459561071497449793645333225172116451043420969714535344981764138509297598145871188994014896607024334667013299355484506886563643915734713962095676878543269744781913009605611537748425282503726141349087146026693519935585293385397732181538720669935453369425352716040841175956890412633250076675769950314396375280346462721388785619378505953845266823599793683492532232205514816299396111042799501930053462454600393612362673507253786235999335085450863074887181354729497668136360785030887675000536409788883961600408608924425933262073830537150161427552311888206733225602826658270123110355043201130967532758425128281129178066947178022822896439410133930414332977265548561670437127163766222857991688507160591040406933685241651357637874330071032302297953898481832408007186677072849937688234959660455020712455301768855968332101316604299424675866768402999646330000919490376448884803676324382970604955184994327950826099417959382179829606383360626134449134702593574508932694628241794153880756230312641297712902537057251867021920282197012523451030950768702721995416595390525932296131241527060370599861894133917149972201623494530804622495866749929206903047224147957289322195945082900934413004750302489773651048505401001638008207070849786473169161937242608145775710161097242876482978221051807382445936762541021375170152297871747679914039572109239057163573291452513806308880300097908070034808155478514762658153971619215510752779974630628507267644365061302252345001154835902353124266903960212156344240166298498137853651864362020987066042228751244643982733032888381354939152168039635988226433414331974378226261221321402005552411920283633918543162528314334827936017159515141011697864877564351839333983633821188751154620527033990939218196339183738926154745102959752647787133993670811567275453088824421933079945673422770268311834739380140165706936751906340209834167703807454202006642830160122804565895917430904398846279925929219488804444434072815330546426309612000146773059394498914705912473590375213528054538264994834914321942862576068142899252923142693231019733528642122091661941204956738747071993739560663501982559536549124562410398716185597461665162522088546077271009712442823880320742103097087053144378512510048300121349502532002364888157478215674593622756604068591700484251718062062253390142631997834029160957511975806219321027468924163627244393912534273111605957280901540923127684109775382800895252389595250515195307331844107746450338523334418979371344692885866593093378263375719961651568319845495264022693596505908098233618469364988162606616070634707655950786881858727699366085999233324512557875444740315841679838228833052521115159262577478044365995927739682326719624336565816346394071456692909294447962983031460918674446819024126495091958460572499014642972602997785894273031486721080570760941993136136502293800221940449194180798550701700633520116192184400967862332027813670099394734199530871457349865375593298357413327542322112907809900180438899069364810974864605006206714316507142775882978826277220620510879048987581543922118164708119479860250262733803333725387599497008152945613742928841740946271637832432434298260047284657629566458139557720152752883354403236534402427855431011719309901263090421709668190729460928131375742141957757138114208103906954913709447408853381793962230224550280445591864892443095792853126708562455079496020305581573407688292097651174061053822401852824615083046085807137148204351263585942300608434172892626430098500454594284185769865359728907190720651348859661691657037514303908475288190991457295174783759154807824178122374309722632726346160524437656703129149226835288163896909775735887237092743671452635158241260344474855750641253024327287423961086867698564009518265612792633776506423853663681353813840359991749751828089564294720391594805003590804348265998808458639426430102626821169608599159440840663866746314057277224996609159459770816310202439133859962906606135532581814420062794872502012997946518229628136741882595799323667823783570791167108043879750433731253837134717498032177269436915225072371115547773213295838654174458478206968068502874907583481350589325278721892785711745483170113007833660225373243772063104617060737633386428906424942656555737111083550420432686012109963876119196333835592109008866069702315515862008991657783469405721169628702368621928064080099217364260145764409710136095725240494924533001154418167148451660092151168038847834494656999562282642130644942610463677185100442708982700944455948478525766417874207525115839379009920189657870380740112991515127723869228755778852718414166796007043116402655904095043841894529590758745437341207641136701278117088868883086185792600152030099319118126354206027440333788972777478010160396731571870359877282625455459692007779045400469650878812092012855091636190973813394402520737158378036400475192355825165495234413813670875053909303808401367460684215765677600353920694009295104743534241083508169931946220750838827732797127379424125095521295025321042322569655255367675278466743481340040762008729561696452808376980721302462871553247042389756594890249141484273956844958507181702149456743101772032092676207900297853028273928629471412708868189572665358815817285149002747606050699063790642594980531310027769765205685794453879456033049932566577242137201346395323012590837326214922314619363608883095702003546825445134521489247595055403013984063610874545439356297544315442473342117975757452433749410715649150902483204567001044270486278838081198503279834020272874681787264203199964638539928141393005687651554115887977671944875150029129610399439466775844932761764566352676559924234099557481796694223507617914286486273327375608074308904845139360575948878930723854704757167994310375804165567552272939531040008427631908628848980940830142093827747254814355927952292524262213087724919596447677267650391174795255404576349732966664311044793922213584899811843775944557663871145774597588575605243446991817416624208527748954361743466150342668693858219226367725045795485502794146034484509524179840782391908841035214391517937500301753139333138260054560931941749758267103004235637216896616580782207324184159209341331507025732120195554148062068382514502325185304594599207637187054830600182378968558471557104995467515436378864352222458001516394376266946935953507803870794484862777962619347796576315890476870792054548529100137512519535090466225182331314711870222433847613613013877916360340171177615313794947785888159420399423502557391520280462096961033777586550573060506506100728093248158671484505762410565707682681503609546042277855488150466080147556492095457046998678542115627712922738949556563807750904567763548358535720300072879506454776362679231519312308253583572556258930708188902365874804444365294301670842483112369728259439999953103810556046989169325187645359640409972286592798510102101689002626899218827977644324663296466515461888987536569199334968033598487112537504071848659430594934660049995866904803216665298851508838571237773739404522326119501964109457287741432722297958314696421674418583738321603766607155997250158318963403484650712627590737722266811350821260940568691037186531527305268254854858998447309054211030747527526491374236420900522518897648401479724369677813464386953190106920896847318504019810302620842523350226190109748216170694266944635846464785631126614082939051180478945229261700490033557009137340813284631852054937271432304978145530033586462337612566755214307335574112026896045499574883426719146657833336350703788013282081321561527994317868025984575114170586860918664047223057023664389412392281198005432718286778125930125626392339018931166363055841765877494285729586335126797168953979342209334282639247839930724926017900800089148228825840970547985296182499147218074492483053141041848395677851395911233034312118728920395886858525193432802499204744025291594683880711254444989822171515295229084179556540687401694068180413604724928319360997814755111359770825169767839659274386766568665590846717094024271342452507240588938882720759287433689436003652559577524667298448460653348320937863063279364487313231826633422327007452130461345330157811019851858851106615090183456524181575276158699534571575176934359657241817066252969101024497528319620814096176954568401656712299168691524078117206820187780419760962251442762594530238516898728611738091400889973579402340991658405562441265966178393956957735480223916872734584496416144785785896869251909364986221553208282227555210551748457489659806253790989756751912812568031273341611292778787758276536067187358520419453041716639642762462288306534495731858314578639310703800772358711911982728893463263045513108702850850736206916003587570597742728543168853534396038142999147644059146966847515015286155969631903465058046843470229772656056217219888536352549671608837359674919019661890474379609521432324935490336949062788059387102382388266575767230009973087848249549559317705062221871208130876610125871005063857452225216556002305050451942397013095823663199874479358235199190242212033762316300644923747844150483329993998909461837386823064370592518609094198899950010062278530622990300345876646528410444649885293710100039288398198719455330795736125463967109713539526698952329349748113243011404866323232474067847866940497049127233507340665487741933008584772083421024430191158721379793486440114852925230928423132287969352918170733345087011328170646881689148688530919755108561464996199608004246479228852503249604141307248822606759493041051361744524207025036299269117927197917106315231084899421034032373357921680204537909624343596576309697992384325301570146852838470174375593736307883997975797708530295065127945040399720076793141194266317692988989508228786080111180760816651177612772957891011426185071583562616528363701929728184737357057883448249238792796624640653162566243553113753359102549183829305187235851075307533935234825026846618900399312665994199064950579732948707438486665024770349231994534929011999614754536496705325043235776796944756154892969348177833805998391962705011257866078499939048724796090372263118193579957828747084977415516921937727490921786043281340713075200363677741862933392878735950466213778293715848432647618433633653608420229635927220198305205688730857171611070322673738562087123887607752664400956695625296114399466272183340593752737682663913986377348345239648114085775557849430171408078407442933908885266621043179912862745226237620355492612072422296468891579223168173808212758796848136376109548807062208433965068458024131367213178985406435864919666833973880570327940853300712903494207133739039528090036598211136001052397068117614305848654945616815950889665018752829423894217833053723812291748436848833299253385694138863312878845336108793175912353919572975689891716553803305376842161299550084940309173360542745256732317636193102024265361602724617806416606568480876893228279735486586060157343105940046973192815491492019945039258519918048862276343578035555428797949382105310717980944254007373895372590491054474246923204790995402204142259862484306328721824929574247347891690712848648592922863280741871819198612908673414241787794138947799050679791342668573408047075589998425708800560720956080756265003476518222228369337542010348223869263017008012262931613029558815182417667831523120112512755226187741457869254977244000787729053628055761375610558574304762823052064601309320967454162821535270477659985012995980063519025345698926096356428130039224818660845532948725123721589592047663632136280655102861806170774398232240863138654492745709568498763245732657495217870689989278954772192225838276123677016848428526161121103612084985501061069592584513687731751678855722815415234480569239120434126751514785408253168719710988824346540624074622555078327358578228874579074908177236493927456982321678791940968334645787925604336726376436015176705527348607426311913450325038219726415007840863952054416451009181913566893162467581065527537665080604922901855956590741032012248949191835729321955453678893828322700140962164371836103493302584127599213949801550843406684474467403178061787465240420092416370811786149216611472151005223016824992658303140361900145129547871127014453641858436731759862041415735785683707550156356322199876653197584917112804603046754509382717392580978429988122757846168050792198737186929236221635361527528740475323611301015044636952304474749551447625323233309375197912481117360720259687261035530365532187626348758682806257014161571204176905506699131325807429806506054700053670970865118815564869321006025339710745329155585549435072535293074436730301501447992695005886761954005915197230611103989991420263107111581039846842847476139201736690676208979686035918494374753113506538576953767690871423463674685042874386474436613583462484411952460472334684707821148844549134322196525769311010146146934417489936074145789765501933213519441043794779741426382457878612218312704234591866096971138934439530241232908085676145620447984428078274735332257669690799957043136563111970811896103413867162174640078166294091907489708758633654322306705027203867331800664101147163876387132013831994911129281687389661217558325972982177262406384729712744054770664322343894329163850118846733577218051043574897722373686709788181309709161100751397153977642074440902621561434744702339895705779461563940865415357451537071404932594298846446765900381211095499768737666615780111184801182505863924505146894079472338657299962327415183839817068404734401907189981312095947428439084072278423501645247837071946748137573218219254190359567670268811052932351823536434716756754612267641067457908615969051367443467077132053053121293756099691080343196742026819563618580625275684182446718384412309557346263618472345553641781648013581796676599293032099600102742900839828504514405080404954419118138644030593511894162870767914637748982480306444188691966545803063782586667111543183012563021568163229165231089087707034640812348258124671103610724077580668943010583252141393167512271572165830489265839434118053219211955154000319412618688457142137111277197688263095758106829348906548106135509610600021921823008834789038779253691512250961641600137047134270034424040218424287913647660932110245913204473833101679516683066125006568211491821299366192439553092990668688374196156569148741292111343631819584983243242393053641026731331082339942084613979271204221873792514970749873707392721035365755865971780544542659562091748571759398963298566219361637191484922579342885919763896217538297601713177049034951357683185871105112382817553421169444173064211796553814189483994945485877618603884317904166447234506244475264016353131770152338814375347998580946743698816414998252900146938957549459712564678826197178410748947454867933462326555602701626675160587801930791454260892112378499697658350657176535672669245956082094757286556266763614675864270003446040998703592800751816026242750838940089510846490580220917641874269169474904834021099454005586818951199787919811650160365831275403839915303896397468086991153811272722823940105172736868817577689665744906087210335914348023945705255595755625299170671679288852470707711372273097119305875794294128744945100895260804376562746476431493757477961737777250262520902218709571134622545293770207461823985672176099702519008363655214736353169359111632134225561033934423805039269292325684429207109679868897737367528963304024712798086743670736390668086669531806053225604719554604443307286941916203170877179557214879990765703623116321259301819103222606333937155361423870227641130399506282587491019574833884874173986802574623857487758819994738258217342536083385723786327988547502776564097098425091145925742823038238389936701932175389329514730490480406517384586805059655893557737986702127018657420019283403595722847688031090535037553248492139457909106559526402824685578152406885715837492752825003973193471656026529533512322214938848927695970220717673321525149882781346045665362953230149451953302752006577055594113327862775858412884790169065933128551633142814136721397871783399585997620787140506126009023419897795095018059703083175284245730307991061347576701119297734057756353850195543471751454004144229291706475657399016603231208462692003593084723417213557420184517798642005084961343398516954481594808781590603206647644193963467247767321807269080703854693558564553947783889373555826212662495670880846619349118136593762223604132177727591678832345554311564881723739455188826629272331389335904615858325590862459974970191733289697936593258812810158407812964263670667607261100215080695300588874409947699695956834966135637042937628181719327018764134038767804901565003850155491785440620710003495836795537666367020907202510341042675293853841775619873466349915509283130721029849688095136290478034437139473019246454213375274772433570437401031808263736962893372359257442342387277578224904302380089895614734049236620040219457193522833224100293795738771122516050693058533129306304241213348242396021212499531959665133717477560536088150754395956035940591461633139567361212361380834958191162635126889310655438575783764975125650344927839644192931998137079895490865640352619369682137955961660374435331776267692707211962009507734551331942221881115454853206695113999522585392499383397667226847782002254751314993365860662211567111074209346785274503200635195291805009264043501436716480742470432084240760949436967857880348273950052382163653889664346756447816450667608327771525434103573119571149510519637283605437109487340273930439076542670401821637803029700844122440367722777253892121756679090290904245957567737641576616878442639995386220407134296788425749068898319378305871946006215598792390407403136465495835114293148464709758094261599641845538830477912084208646636406649979358217020254197221446623591302495216942044625421698390857857786009210995298083854827842875608181465433733017228021778190031847301512995413778468047672654694948231554154724722664716838692103961682099572965763018350826388701680689704332167070651027310334183717047994398987773438832162870081418362440455347559062582809784760135667745391663580207821077632176057298257147099710345228146886074760755153079721377450978212837059289512805652827559811535937483466681094174546138746313558563582652242084748406600894546967295199900444020430816334979554237387427258023040650061620871795737621327508637387691713662998800942460786697513526323685193971638057841144500141240832617894953147287363624515033837580749735155769888762256338334360598605058995400991391194294975776508015858043863501603018198749288937390107526140375274267114540565604225972305780941227308500671477841310407879099298383889225622708718050745362089461619224636993483987528504898045765768640915013282459902298961150956188859249842986275671452247494283728222920888039426223397378350827257447842138505219427257298734445802268209120648581697714403284267402294497737009354300666400521663674134042953399840568365932627636418674150680446479700483650573634147975469293854957858258268599730990509688037224867838140616852074874120390924948089243662034250885090539367705352517529444307441904076232409122626008131930254904687336801944215506327226872646885172036336473345250087692678027596775843341361063042818033719362833280696369197180554055468830347261131325338806642379117539597157161233636617501180916225974301773478842134509106239664592477786511528484508139986865159888191592339329573085685712319612898528955221931836981382729140123175029361661843737224975726715362884495853054685855258373536654440480092727221645242139924351155404604628832284950982510333517264835065098160491724530708228813965069893372236976453572165730931724288354808080289624531368049144190025085980600243047997624769067503525784873651860501460340349046208936337992495515179699695454575620130187079808671239120249983474517127265415279423486653153098756358688214040019747075530069258696808237650784187971453749510531662660223324586199999403133755956425872278187325101979734954407784745366483933442378474064901214564034486824933716072862765694497694613220089615245700583673160409959572321054983990230582049611526192601418362899161681066496710676650127584999792136406739827874062474595412615499056004295512158221593465509866825775948269953222934122813461552455008387143386695260507723059420206875268608408463378093345534077148293561644454086381263526478048523842974703472934674857068764486365166054785219821380550876462629693436334857686197052713459565963843746552707604993521590212723198356609803299835840409656111663699120326086369051367620966623969151010238003388874628990380107528892335817171697948689073266188437366540787359081480355287657214126843678884139626349256814966169748600340225566940711102602119075565453564385076012572245104910539778210093972038920796905392334183446378114524822727422664010806438405485066853346182193850088376418533684337560951720634731388304625768839992165231807222418140802922601875822415009751653123579797098654648818301093766033091126470010062188938489484366067294309987703176824202086587625360849553556858193097946779675070271453386613653540708945074761144157348041540213916445343702900362804463061798054151525395669840130936299996637096374361898343783690875244246177376162924209771139802847862226420458350055313641073045779462982650069207114545076416271293138547515781356622268659363197331876007612840418744495248461506921721099477939061384898606892019216296791386760851977718021409962861077022065635605867291243845506668706806363521788664663158365312648883680500482079530686004376197884214783218223619546269502834190647143830992779537568091356659245557920641674631992577691089196703186305894427930767375477907251394326433298326973587260120559777758552548749440113551557114060281334917523817649167255904296180791942564172097123816223731481564447679650692626703923351885103089858051226943502536482991802685632418423044269107681704508073428481169604474880034918576715302903677932658277802492202724910423233877890760821555814014818022530519922468728433497676962667432230086821468160154388567072943223854947063297287327137887143433757478758349297334607853533311980099136155772284332055863976249440548437110729974198391326119998619802634224241559985644413962391830241739393472719320359545362908028320178704446889498927215502848884001468832601870516715725566327494471216870243349425201071754422295119162595544641339747748384239709736469831986619465640222561981199107240099388456195038914598007226874453278706572710844194067783334896286303276034533158374057174931542735121750514931031521512062691927442086297914684206272801357584384166597918050702545749051490093690256843506353215558545797865661034137626433821861361027710751105948934691612625409490343809794772995238543707666659740351793372715199254205412639466598696908037104915182365508888656638512904628795732981670469237801207535007514144662422939135069146294085031761421938790022814873131798974452122078325500559643887361578908625536144325416290660917616418744344552816877839925440605865439072187403852003805178345906682117527771587418820237766313027470503106843039014188373894878029004670148438628676989622713765828953514766681291994285332535660045693149427608368482966614463692870817833733138033701122608798255171758100201990898368454834948130493584768645732395710687308204987724816375917873613153013583536834183117289357153287067084578725157769167857708244041807168670612756432265623941822229630779363936241161579680093223190346357112330709771196037339460984255282743631347986110762505114411290025013283607427445774280961371207438124077509441011594821088714886761692118750241036574971465835483762308950957709620588964738808265625648685275756418499828057946445021738684857387363171100250855269174923190973489909096610470826391696044961757063394047649376507484213557010071432138398614017163227392081735238993271432236767977438920138050970058121711981970166584910278516133527765496697174570073747071099086507159822921585677757437805986276711110636780293200753120580060549291720175304418496842106784025530114883311265044924486645632214586276596012649573518079998557802495068931507652265930444687887942767071213364085242703375182508699333623868210316694723301037001342303760374231734998282146857838281832310973015755343582469616461374354704992215837403618581548938424544786152253295769215696286003399456152650464474745123579512835749094598656416394237152037944018174850008160612059945072956410578839756184909330077949735387921858372326294517641709016883432869126146905176292939588192012235502733207292319972668805825492239201858953635972469325155957649664882076723653358656157150060288848580474491386695336013927246310926671158284753190804820767623217356369832246471088059621082118919201500437157342275790725561367746898293701670296547531895010266188013839926775251072215537206103157279847628722929813324742647006449065332831421996377646639264239336636447263564909172887452213799092654470587855277783527784051800723786361322401664917564637495309917792306477079745215245741333359223704260655395271494866240291461256547809065828023889270114328417666006112690964024265047800324323195433135651541374072590935835526996647938677597737310075138963275373617423683950970871238478456066079098059661588233388097198938212810482147700317833767566051170908666011022692409323071072157513071285663390631150149198371364565020502431910124396703873628673122686771037657364042938426816979037141847374802825659544526647353530599841529905177598201163547158120003032333223192620108103497077012838074683705062480435259206808204559426507188810743995676072626156428954933827529176448932392891437831923039496841010128784860397948167307400533611569880759742774250084206739223513390499372578491197321231722054946700887603170511068184371602956315807294463723536188158994902493761258197524960614510627909972753200938567152213969774701693324233154333690499843662888057250352840695020100676782428689056538362509346773012868753666149972590565468427474912669105642508762009485372183281826505182117846574130491478142819580193055286109137440605472050880233439659841366094404624953556715607891440775053955651815593062830395616479159755814691878105124975629762764842917749517032198701196875600771377585709064188173746896444601508393035349649363972740447845827236434138996123890717364756594130702977062604515031679027330968275025381685621042993554132077079593174450124569284067251578918221418860723635493679622820495100035796391510766516560640373575009625658621243812986350821375077837287220952498142307613499500370574218126493329524305807104583819443322408265416265864842964687956663054678234479242014904387253898491932764564852464169198571222413897092169957952536677485445023505793420370133883790753558125804034691867737588470273819724807496514112791372395797298354568048584441649805456418731874926922299393673684153953986441942168335208810716024432731744656776053816046154193710653211763875425565058111518647885316460864713785376094644979445367643628758942952074118743060408909420807399706145021691322321630467429642751241555640925155898097275505756174153490663008784437458557305509262528189444206812063217390536046292067746279388276764149638567758759249721157004788566757023731759062208732658414577643400979416807293081571708117138259609454683772224228564570358502952687337914887879791407372359818773187043065069213165760596623197137494604786151568114889776519675923626026736555906467374500451816978888976865974026927136912335673878082614590578519573665334806592025980632815562609534825072266963553081841505914021633822290659837009621686756479576917854154090961489544492337449407048646212618597913095401637571758117106459620594017535590782479654941734688224023594489070664524577444950412315587611811034227499723073445030248183545423922178083684829982454526501976854583834620894217921252996331023966083545692279455950781368373723303535843152453732238395403514942559530163495476804166512855828428917204214535230512740803237526399604960495644139777640882653247116011092745236563649233855606123933607465979012501379023803832425888710369731154628880818463303682642782399881555499833999341021404869257456901210579227916873401084944747526621373146269407816723589706338579893213393101724652744171858610186146517247142139754514569232522750888033153641303276678504859348347759477497060793168618497418830904372584048232669166941439779614637101726957555539666342664353463217737874516797707371238184899087303009740242660762757264802118454188273129124106862794735044714088952651423006810903979191312478725279794108466945233424052036986704835169915130566837057018622348115187385510129706042072684481703808988273058857058988892476202993043025049128216352096011183412709781533807827399864540393247269974879451025440452850301001091574098313714571797579308746205757030528654322992220338847160372770634045926696953899279276768373107242339370322555479452311768990877468271584705898201703124560376536950802409825549106317893501085127549746127124886852570251970144823521380220973618800105671617654094160168846931710524858957817496260072168814373876596136314272293008940286640385810748795607983376190881719791486873362576064966010995337622947264660344752468993136079106120746814125878805631375650819154083118370928864967203466951030529982510007752063119718598640359760905993194713841206488222754131962593705600664860741014884850794547669550119016091923884013986044458645539024148009845838854021910664476384977963245332404110848797141106055174817362656292394438989293213400313808764568132955780525471460179276335063198466247939557744872827923843129654828689325394816325831136786506121792997245248234658612996975627606055280514487670041492226502550031096082992627003873019822440058902029148353097114534579183299633291217724060516477905899074575947739920362661723483600604187460988908498619263128047132719521557576650736583057628980011816653744752356988932707632172069980903011100205000140705652141302324600999001618621935961483322670878917021189885521164644911034731722963563916640013433966598758637436345512269756402213479152930712107101495930879792427646074636375132123563036378710120913727526063583886188831939599722613017965848572285540418502239836631395753253159176295165606767022389067263986827559042946109743381759285873958653640256196414440625591466149168771913807505465722480036818748081871796573393126622658924684935799063777909133710734253277074878027725691264137829229916715290428319708442925835260033154715199169665233128867133650890971495121488323454400529950851449638898426057099979013805642997587630676272399738457650873146541512681774554922786175999499413852968385534364703891964988595749939634839284351066167104344868143607389406996658219073281905174971249991170447628069358840799486693362538002761717599225534958010908198530432849260085717473131213722254667129767085809337873635424242432546465299749542529855728927386592631866426971059638252312937095158301948173574031031758148482292674353245515678731670760957690646552507135618452985246333060631035897157797180519886902609277107432852941636210814370639637070599624502467929667814189728790630839378734807856148872013623981818050078494814636696379262735889386238365187441313012639167719825092916157859580950556818471927560317880723249751731987783541792116271600973774873039891317949534945520525165699970490123752675658412739286730971590796247929626654126663931668709319964248685720816372674926571229955990188389602692546973475719213926957944455955820865176293369171604655885437635103002063447448209807432188099220499595365215449868451232762392098364755989633824221962381509254589406700608706993234584232817665561930874953300855429056598115327049218955922306685541009781388708727876102364073865773851213806634735769353215474444958355489942930580779003924581123046956501647160574838851481989848339411293693079724656008512649678354230872623925983186398055671180151675748500322056500850008311612539861601446737948900242199546313536144245484953994345048680998157064326101407841380303747573557216875963876652457998696897680056168404158447643182252403461242468230565211226623877680895814937690496128607424425417627667518323002204834027380896431518121841534552295543749823253655366325201406706271343152114630664409411545564399438626116287141940588975070289058610113845245736877198219212991685165606261974618078124130647029455546156102860790037425547745783117086637280389877435200631681447719349643233702864476904337197011838341761477143070900615234724480286937131352907098075436800721680822761456546109553583648937922946907939601967506105523618253566568737189596196222337210250827818680253618497507400297653417301227574339296090469424406872288188435497323034684770518450260683752560785175996945897686427609930217695505342616266658574600087429698228520226506056637008372727736946870278551989883151463949365869475954071783262317659718522467252890179781644288000566510191413944098120206015624763976649057941106563327854911245768190389409304868107990532581845274817300798288659557610105642305123761527752339002471469413844876311130327499711007994367090874218010980092534310818957558280176866459549584868823819618411409477097107866754261248988267373348396488714597150457802309392308259926868262112225543437063277965354791783794127048694207846980867901684344995133080896055226335498393160887415340673512361457626912416074259039793254390034748025019303910743971822125360166999836902079294285224928203508273257843091603952738570855948156814184783164975669148274520955104331846950959269917305141664922288613178367204379180041616565395001065685693062029322228241920311907025475267618756316592420783826992241063511744430435872525949433683453024507715675426710515578558443746746826293417148715624224716837587140211378560751189790193254669346761827842814706457401793685767855305682014635533755725745418750751373465227127566103674265590813131067676131336163713064309292815333936362423952798856056304068420043480917632766886336635225306268250773059345087038207070089353529357558530630107025751637654220594582102606110456510615387858156215172682758000419482391876878011176184570736377299569932867361922130732472687182480893309151162529857663690309292914294546171685861253276481120694049695731428276974321218555362207127967209135823563944684789202238407129769201912181962382419444988762221250039455625464028257504342795938720954866516114435561830539845227056051507131892013674947931474856443023914248415318394446865313768878162808565651302302820085524665559889836760899889688070968238422426917325411212939457875300112973408473849937980015333226732418155901607046265101080761946290013387258590898346444575683969916647344604956113038014029986922359922667209250311365071948539651301884940580828245783394860710020936415939012750011666115613317247048422061928922974746291612579288714219651796522862880735237625555707314921241913426309857399318904920414951177660900520423413978957413179928481665489178679613128268874284992081108852138464222808424566155547415633654337173692325375273723867652800526297092855309583931799509379830354781516700608824082195178503231057159385145558704537936115806137149847070967194898886345019989207976900227207874815680768091328188548338410074259513346929614320959308053948227014067198499358746979665287441605536011397846058112531582939871611412912507835977023199781543949386073046384389178353073418112573016753826981460053016021874518106690742119440258515643780472111797609062161947806366554280801001820639480909096521066649890258970750707287832139919039152143991398816710521990114769300976328560430650023008546574766164277823732570546525887064789761099877774462195832196529831204800349487893541819392214107807644267358796275380260822048497513152167448568380410244204065005261391374520185798173806905518141160518577414758515964111766364539835076137634296260611758757550266070066603958704044305180060802226063015878627122628528368436660165126506171208515436927573187567230140093243144551410512778452382937616405909965063386900895227505103401011698840534483743510930103957309361430232076133317070760285365172668353171952529621563734940871291129057874150670693937386062398312284106484473698230141262518704354009946353091537403126925888153483506826750813019518575989437929715666379214499448093099013072445737261037181889404261797799074392494243311911040034453861601873385434650264299086606705608065086381332606060338082982722097226363691429227736738793504244663271300903393944105957544114997457019521480983886920769181406801880662354920715837392975398344660534913633894213625668863816023801576793969068146609171395340987271658993959167202864806571110491368823507742440924702386304206870443037583967980042781213456555247843706651332328601170952967364137571842867266860187338288962900263934930765567888289008569220278582514662023949275618391993521273049852201225213203616372971787158647901214607590784420818289807082588309513721934181968691251908750595381007209284484555691805709593345687250037493517319121480107179321522839332574565173709975723432725478319769336547161824294805430234852517934855145252183552399649255595217846447103560891653358263036783424054575119850447150149477859086886326864508036046984984062284337212376294141418830993087577998325039943107274087590399619810406944914382597455916237894018544823347684691840029545345029080329287982091190392578737994938616023161916009472436359070954599675663246462958223646254514345890975414058093889489018014640922976832790389585959126254435889392653057044007966221101090584517455951377868261250846114321048644119695116887187595262828953514293295130801994408832488507320380654652106355714460330477050405016851814192708840183564534044211886202085067159776998490982599333370161569396925240590740954532009411265828081099091835238427253767690159967813325637973042587794519164135383176853583047600477149715997897679317041192730801699954040636118669432076921414792315666474811242425841765492101286665482533261520450402134945812181923390011815153119156689523937738089156822479630692208888623410056564755833038799447719802519493281472711966581399036917769776675810044465937745554735734420749522624062603670593493879644589238453287374332844885180251460402202775177450394304522135228721752890299398075524787887654929808698617632202425594509102087694304235972646501753516347663414859354881714611299804655326689881221216390045941952927582002206138243890536670895711702925565873509486719316842273578004062760026670980973324748692768681093614809847055102538516203249581338055628524960116531088831059186136424261221732573347675341168790219528680457651235737362621883424351684967616892559944507438208629320090477989836660353291426978475574057578523670576525680679857534526424319584529663804222609778546811828977721782705249104778629367783634775896223873300607049446586185960398528535717932748784869984961147697009229096729154512735366602924604640830134759103026394934096381841782278187905070446507412001289757955861482319128988173017792115300120583518619503331221351876434929553567118301770501095924129580611346304665073735875448249502106288014154758190185972696370146482879364147917870600970711793061275176466839424230975528330334031241030366016696829056717895037844830141541822826416571217105674388880638413117061182977516705088611440048794247465061881701177106903352918413776212032801930680287463885869973183686156832093615402151974327124229694959676174320455921684105140449073764840470222853151145588834582942035800716552091017319721516165481083882949845762410570086505511363097658168715536946273777186104488008250271335989843209737045248470281512716493604922701347763535051235473369757749666534565098598640144702760999766080025022307154570378318967528456175088466509251192801701903131559068146932210897689020928823848808813460681553720652400067402484058405963772584472893836065546424079617507476382194272963529599600516418393737032838447818029412857122124560780087591394056862631348261769920396716645886334987089429114052807559345921120177412970112080715522325995794175336233031014739272773710023360482356970943463077067861111889465088999873516481018834270965696650989619141799040116016174163916943187293146221119510483699850993465453802617823552648462015543407144599661052013499087905941123279343930088817434660295535837987733891600026529084982996978769066744690770966164897298938167429595888067525928840316481578614146865934510980520948973174101873544095930796238519941594887313140339249619968390747305442525489976559850508721728550712532774603895379363368684298546131116234140091519386967533143530741345415950366754595084555137698046406154530164329129759237783724275492397674676767272911102521794853688803893119128263231150946155724173031362025128131350968352861223710903676459775239584940150724756160868475339588229745441168546843877371372666004035001453647130994116349168287767397405102330620016480194514786053262921450810159397723475826437272889616225161240148835570388295891299332812691514273015002530759064488728076552940323159301954304182407851055338036439607712379402153085774461582736863743721145138727528484073507254194477408634466590955835065362980967461363099064418582993940758041158351987201248095088931694270475697392721841007193615244454270447151592834692102026198122822108775546211576229329105623448255597707533809008046000599774847086553431458322493662271223578023203661095077504869411485223563392666577207689777184196273858342235165508836525817831074669270604004331625335394418298608992793788133577734347796592353766152610816991069111619776090360941112791643782333138169223207240888714557947219094448090602008426955395032805079776990621343627373395837515683085046098463965988523138666275986747674668274985061955152339780194695484629180103718980429612413544611441685553307085154584428950842601257145949431368015415604948728173200179436629385133002345465680152409687695068452884339265170116095012033302510605294794669641109833862327033679214952459360396258588993614681401998910711422001622220233364288907372139434231727510170237323902107128722763553998773780015196770900875467007644392845292295842246523045559503646726182810956101574828417343678538233935582577021645918347131141423502576927317419324432549574303934734048361126380886646366150756225166001293294199713834782978350553006049750517382101177881182217655224113095079978677432111174434407587364428497160948855540835945312144207942838027542820694995417072017628245965185382810580379414104012332432448476862222835801922567621441295339019711782502126134975988488542841755901253563827327565343738611261522723318209666142258745246520795663747249549740459325753931362596180349411104977844230468844237059090776802255154988275442382621184099845573048109272239325410896838845126287215660943671182555567187846312597709147555500275378476225131348396119171333716195997550605516318763879667480336315655111300453517065548906559040110943193792772466645372206069754421355771063791406069532752723838946490692741238871044680068832392759757258051768863874355404302957408109326477351192273363654515361283034578315764622840978035218081220356909561593745288710663863170705074960790696434964374096643479402022799084561315048064093011550437096559348325308756072613436010874549673262009003343863893605713033991140882638908179914480482235481158244209832426563586613165092582013300798663161073578606770743417155932109800405455012808416969286346471087068515606136614822990693360602095577381299819488501227656451582816110761143633208720435078081016373113325096921119298906857940146144661652294003780352827046418967823654656987975938801694830552898488574940859172055571551990170148292482891901019577219366265029531035984371296353230101737304465302743147004600248425999064062116788209388411952983043060944092410056479492431554383878938826286676126457159501899141996217195863450698757545031603197058716055541172644395700650837554177003458184381024246696522606316699240130547997924713783839893089508795490025235320792746331919916205512195495555063263491502233696515041712125982316466170036479471077108245307069348886607092524100025252877742674421404554305475115864833171467667535414808154394313203993511609132226127608129598963353166919542397928170884204880662677624502849542869766189888877056492687519382890363655989501254403116049352501421505905457783955544924808663906019939454177493056548430444322979964084458256607354936880901246406593559565798295820197886431418791575538066943940894961211175388696240796767611814903149330099021430268245194650422711673210698745539786204683566281884988921730629689388686348253126143790083872723190241506038659536295283814348722290535806545347134989644221207567266961286170156347743125301809348214784625294532870866808448070402736608994532087707254161864932110707312471698602188720234600014811173604172776677116545790573125562817801781361712820308032180872838089374273162316273750591529304149215950630099719407871300044502640685169392922297886050742402909657265735920664619355212715569456548307467572291812247663926526912700508132725118253576761795534622715417147773950600309597940919698536657318882365532650223995188054790835088094278412029223857803178506912649774340941876123937765636577252288002811547565325852002959311412496790413677508121590664682172902468396169296897101984397376441120278766782480896473243807524739053625082219539349802295479175983214459311251454455468086191612652599693161842693297076155847665443564529522985540952031686838361318732272000855014023862359173759901655899786464840574016926218147654653484608183047893650935500494135215055576068862088443253132665789911449158510354016798707966911921174353464990377229220862305763956438520602717510293024165753665250172832031429551319741723724672679932413211789513937867317313822490348906025850827229341965923984304852329769568700510635472101811161213011337707867833649955571211641747218639737897930982554909892177615013287724166488706768357126668589901548107874171608416640559692582619234711396456763932854054020000801584266492908004893612362345769717029267194367850087345463913186962691462070707857702673333772285529700559944758587720224213716704028875022258475731035577585450658951652349463722694914757603240721323812967183279815262813158435984490230012283210081304920153019312501389283136933266255560916698402264082548600653249719626539175937382129453912631064916973453901022276432536371675118632846291895470009257767616914312833762293781311884650191019930788508892062153155339519005838951902342340237781589786120168295792107274679709615875908809140217753144686377868278954132523643668630775185322168336897894280501720200166773739207277873717828754994446674705311692778478040124796556307839988256554489975525670050980644430454944519100765641809325675337165980713668997928105702770960650100644123096384450613210399213250878808216613446792225397039906870783628342679869406863864257621194369942429296670167229377074758146922485406741836980278109974020777879986109319430585135307034185166670177951870096803950203293430803544897706415609014034540127525063013589616726672903141365863972089494308730107138964743318603003484098456922822128436638146554409018641486123873811457898763125398045493955116855688658250917562088339640798617563112586584223582542189050354604045554714188349504718924360529457708473628234427328919365393172266079264319902118954643481044249186565785663121759352008970242248867533625842289564702383619477469212706717558069918971239838538170354143400063966327308605091155476651155206134053257777733556465515407093176500870395015198882699883897206039247145104886914818266554619782305566398084276129471241995822663418901173166860171642087185900861160594545091650113599007499875459791713568198525080407668855232204922074924546628422239437403964751397135012549781678140039324136924479006986630711580761479747467939871421504273126381965499085797951622113027568611188881850326803752873220618103037057425914854961677101518606728944754783685304475344646114230005399834211728935334050432562067310464850646154433736862021770633491971218408454563666010591962080363123900959655454310678071849515956123166947793123733735186314423094832676246747678812415844879111444835806504121303662372137349046260357345915001918198703708437010380520063413130828840033233876283935660967480298921194084635456203630190332071924203141630002036398695074342403940888309882717953954916855273265787771781973384598740731381067977508625031472748422839754472465394099475085258431850324597239581563423906430237581689920695303820363544467575046042687924340628031073057610657218252615154684460338686774940234483603872317380943923259148870003983166362014867771747564916716721202367101550884364087468360105180462516478825746177121002629265756297393776636278943436206728854849044970144212339455500439108777464477638167891540607289447533282286668174171739936795952551590834370670903544023922180297811904467429362166415445601858511562257571178511009825632027018047271898674005828502774376409075235529634634116059794675218757999156297702453947567233126506724087781464284978438106832469871388832466131694759553234075004859315156777900084250677291114150910483564505649179715966360996674524259120109734521639283404055644587453549377990271089775298794396950461000994810799606632367079497405648321482787013236500443019766731037894883609641477266504216711326590270026608373139253943682816338560833666024117847397974253614332597561575038677885514017924076796347873554861077980416593329327757832490611551065136898729239346409287117534547148005762142444807324479099775326092481658290709718131570947343743150169502113302903102729523736317193417321488252816083205735708315977612533776753418165173632380380025717431505763197218481862438472962758014812871399077735810208082438948065674244146316699839178582042745226560575794676762706607100968220089768753706935085537719266444880593858962262973682563143106534644448575591248569887215714478666963718481696919617561610682353541685812848210718732684306604712789627102569554692505157745841832939638683010884627317988387128538767130441794840479690721772613923803583822102323223036381173797909242079516200047964161968754169767003123745315459161645688088027689784501516576091649222700332791189720394710983786266235558742034292823933470299666171895894915592382656281434391470000848491843226602302525534031878492329309068718799053510107488703877698447230564946928753721284619395671203265802775272042238795953001562191982305987826699085603927180747644934261715717876210617209667521575152743629486144143326221674352492053528485409675704056681160437590967404301026548896606106243931455351505004420381003771161633202983811206674271576944200878830694679724519506954862646835872468425396284527865842415789974159100167274302644391313883513479580373267620181370778996425293316211879828228565632899905172741838461252689248005396744352395738261796715940601451526849790644727174344979975137084729912911508166752534587491132975942954676299267956129691260843407397098396788364161175337829564535868488642375177203939065524814528826830321950527336028894001855136646930604196468891307404675225869457239860937536303475602831762784968706057814134431991247501351023433567100519452879562290999499207441933532231197270014131613453468686614669642855486362609360910542808999464342822382955242521873743916309711628482542872231513206758969700935662020855207637209451670592963603809344926055974072591073640966870187090007744736229750212817159281906058698741147481275509193770085981086286267026317248739481803243605028984423542330949140958737075547078689453853361189293355374897941797432197835900810002430571057819657151521236827191589421706836041962970974472311259073737315613733083074726656307461087148994075006347789361017947058388013440177240401329070671034761244085118728926977973820923155391606744966663615796990792218226546667796333795656401608836391591192131954722493168325822929694167102916488410489634806365554959959030518939628655509084460879841107265102709643200538049791139044207782545513720663083293608106101864644684911728055423967540596563970940333302302626548009939825906563697263787888579765360785138987365185271026166032433866530591332780129680034273593653904816244874312412180192929219866684773831379132307705421990904200455831230592768204938179428307197248473531756370912231226178855018416054177328446965400181053933675422935962792531134027011792185825718049909179767367509755830506664439471745610062347005177376076997897297556083216531042749173740135410516964010178481024363745200454443072887687520698791364646449349735531308853839637489154412347880925786337855247810888943093109410982883512327263168558659986288363671639823112202701921622522429087931802929332011916409088360320215373539126776141352255415747132130969185002094204163560711218745374329799887697968146811112869663528193087952567534503020505184180980884449853916910316482422398801956558892112418930017000963128241867810220887438599575915089820965302728924500408405511057470239386173706528204753026109171525292182238985791661697181947325561251850669680682122968875449538341835928733742678864767698168883655651129363428311530652019730094178968998723222643152701915936162087556342643039799710033866869468996239682085281371700303188934389660863918887279901708989377343649215641187983562995106370577731955664338219482607831144130128923173846932333909472968533282694777909803024805074247469059678773073325478177058349860488575679979811514685685262767977491147118573677951031375572466113005413469678662565869647877081305523802618956780379621103099690459816134852411185643896656071635677166134126367242503279957614261176653279860532344540435891454002836356339832196227794715949747768091108280894130799568900496133836243009894609819996788675169638900907973653256612063370829837056055716130991277629214919145626561750686239888666093213975083459319699648889451518298889666525227865207557058767730530885711186089744228592721823389134864236339839501036332274722903177074410363850644884092946685298562352158115152810009497711509790809972656248121214229216773041767680777902995294689336347797060696793166191500777330442431147692213379395842710934556919632680316049099315315869339551676621777161820938464234354389417391955237805347337197096288054058608934684426102141917147882734650279731100742385609545451072874101368094733636909512174528828212813557928507861613993745533205640260448613393564700404504858994154680812055283091388575903862187325335385611131078860149661112609180609147398386095328603846270843561722312170752920491207550534861342096537174951933487803879962437334387857974522351292362207650007577112835397146121338315915968627242969871575941565129815835615188007646775709828472261131580360510013226592329930108807236999234557755421942645940759335281410443666033133575114049556327292115962397561001658325445557674826874593315132401243298243280365235690860663945024819882760442478849647509422457890919615757313619140117816041417561754020563086396862368371287200507242582126808937571589400153618003324160568513234234423777237518060256897527820548296569548761828628492438094086268917920404195902302963956356939664669372126335879981326016406726784146622406053712079378958648973529078996464756363724346387806006679368869945928806049552875774541797196136037465797735664181770995306415413753162329921835269340644420532373992858613996900458482140973514478161642655660243307409918888787686617707736903101853502915529483215682181208400307193318167919612314219408375775322104128828164915863412565798534290908790281356818713768537254784990387096502488153651431057521381400485357726030392139627158901280004354278506167673413426733889869479265028461250392746406632868903675581365738608619573247185520635823447105677883879182621233122983868201823427088489419854101647657139341725438463544729470426398640402684037609722631026147688762971338157209683460395307382429717191240363963148429294746677644562119501287369629490839397725875060908240769940272858875986615955354359584314726031166680811516333110221200734704196826093640391964868609360797044142792489319237041449272266029495463461030421661840908874526304389971701813230772145398493356875386925823369103998479649095539861735391838618617694743591491707543055616244673108593783997220779041966393361706852361026554028829362998346109844632725769946797986737683604728447556278700819785256397408672198415791047540104644165488809011333112132383909876046860429021769586964725199722513158632556307786436956680363313780248553129365464641480473901228899599313294772624348830278802201521073304277726909943227579607409542734488421054800137253987325388938293232634837020257937674838838170626846554882856364160856736451736620744376332605334217357984389680348977500826666985421373423990588457093851497681343342781184754090349787160358509954717794774464302836467119140810894549522173517902402248046599502114469813611192742296423819948836696689408887239907267666706930565285601102902745657321370443432380538638529303573505708321424341472757418759074806162138333923177619887982050205822826567164740811836054747336061096002650917325028136933661072976540042417488267471791687546114387493055940546405679573264406992349082103900304231567108303437545723772169353497202538486128277406443860033080273844229462245381359061183685355187043332449635557108029223020160612965663237745385872314444707242449512214792165021619928998734714558610693741406233612218558851809141206832561822255815710228692970356133493630073551965913779956699184921157034762807395565531453556526831916674410220443097582581643801504084402031880522775075576660121294727155747179860920457839143149831786702251675483208075120446678148353185810471289998449458270827988083197401215656421599668275886982480989838125259538689679688325569933538969770767696360530179262673416386369113582464433177161827206178243562248090467760178518052382216449201368027828305559793808016661527923802692822688354413871957073222487154095998358734092911051328391503003122162576202864449944304574402244426295270838160658072466985853426238759603543453540470840935818092927169393324856889947752333181981109007062570156271158802104017286773400523855583798822949172510909848156537429049692771073363068651914787097353062320587994973421508811477915519291852436462204583577735197975162614175895616619472602246556810523540221658972967720041040211035195259000580191901549577339425962187992688891617544881737313052983108299260464103787786131017333013826664834380554434606294724325621615303624738992141831933834701055013694729881989031397708925377741344997618875363566303215389870909293671417098267899799191314750585264263446541817419624936530187514506635145187017012602712558804276314651768491484116563290615819576134461662490819353596418905769895083727494989914503091951338648690100667505569539866168802292652689079351376227208993183711934100953313900700371923501341866030845567302171736585868642802353937372711090507092641869338336198976819085231700071428766935155930738862209667460945042808087877758353102230659281453345020114283272307294778657145650546416571487458129920002969599349132366035237201871375292582095803214410848041791529455114742888161610620553672123302704907906365120308009318434406397687367329550282934064354410491392565962589595125105142957782393227500044010168734912690658861975994385558332639740185390058738874732047115031244798480412016457495351782917528248663456925949382808862745177329840496031936440031795091476917254237598110239981686050960218974779657658249937472225228186917108675947192594210060173476699407474218022401205907249906450550303148431371577625741103253667958526107872374092211609231059329775132821838793448829354872042548000019011614664339968244661584572257162432299881548497567423649108107567148471232303800702296029202608719808929860183062555200032986623260397739958274806372477321524180028382243697656477473975933280717169483738471071710590828194295845134619194129612185068161523322077725681590214586324893379480922364758822431709256323713116253243085689816505620720103037030561351712403684462418731828770176506595761203355867778096711939212305461087558501631731198402716247767365072995262457978306209004499247959007801478281723338937608427383012021511584082723459961741756017710444543249766721782798290948945472705919588338361711371969585100632288057128892684522774809117150936714015457715764983436782814616551426620787023817786387407238768000219501423472576812516407029406607178920684463645260954606860044336185390848391820512945473957355464408151760761966994672319414852711819165584556769647297615890255532776630487797431139170004729440824666546895516463300839890887171276979888008801021088284127833341309754653781813643919091019102134817646791907967709927623298778346252130051620018587364044756352628323322523851515844990266271449149124519507163569757868253613928292507801514424490631603316516555514521125102979191010495882412737562230062680662810185005887868804693981763859643259371571691470969769314395395340663172974210813238804105139605528512223813116342714556276148019663491063269015918811159940521460908298360704967419933570522691196191146287364579516069932033853600211288484516765606130133319910972450142745778096980393122335142642907606791637554197147411295886375814011701809536887482158985887438932294121281718468105733803240327201402194018212201889880848127847956439670143875718835209066043101537879190014353679203432177791354848934317190530096810076575900349564673140845041661657627983702433814731391278117168200466178170630621347104825562311796130617121892199425351554728694946596481614629817673216634847798426337599288411481954487698001443351164055744777198615588980393439694462263012913456540143193017777763420244726627703930597949640175524606697610604890133214106151325390131021367557620830018101101955719197470042739858381363160097809503857863230395790881688451247841210096202308238849372299843185637202967984408167519103086834113504827575051406679508172261188227619619947295007030488331060703343521410425198969636133880685019724066702398449366439468211348580371733242557567538020847190940599040029366444695268003826837527282831428408307366199593794524641614093593662151294194072114944796179114358514758985978832623210751878986402352454570936233550153740023259361338545620511673637559980773134199656327212247387678434061324979724894935328068575591821977393904073314285173649505767993121230767218596604330919812733678875676865373402055805476374551641899890236075748646625526179128915816460509064300222430847811333115363676474552480638318532323382380000301781060142111042033927073832946126760530013235695538690191608840064449951071026653543709647055610290731750452544715828461758590566709457725418791046808630110403690271389126221440194181004886973457079266767796910714399029962697325207400770656877875874981908203664598710245212566103130801147931771961839030239125714415162636391225854852955778934657240090806657514909003197935384730158391837868951518808016157606933448934816789795818091443392461837208483306400957390962418353301200662695044019062936469990962176387590995344907540903128881965877408493021539011673153702521675014761921074441534594071302456138425924377077980187883019183762763329611819244498416837014357143250416618266246114463050912080804791604788526884153042123162973938174536007447420825401291586085851684260853219273567197257998577321556777988900564994125851427525658741191513408749600946557230543120598133036121203142950227581184459198382924698946642818880944756727432555286691799158216567588903140959558762609601787054960527101401890151860182790914456320383519176461428208879660456313946096639019024985073184271892437088780397806780389341528509436211641967498985863104227035267560140993421242262704412274285166213310996877682373419274880759973374812916420550936699043578180645115188542578160210507057000017328978418614450444931980195975092014484335994054504248510763154087109160478436021750923648331699863258876892747892817103363133383593313982557139865897594663693213773618441602629852077886007737694035428868106153640259796492682714580749101558415035743576231233937963663959232246755617458027957546613677767803320741983482539060664144359927410159247920888700530914593335735339500647777717356110335934800050129838924857991500429077588271950717589131708398621195800254587416367004908322078494620930829646646507359751459018211836689825743185021810120486449387612187164474414273974799878031965702038948937196671786142208281885465040345849800349627430359910257761827158583596928763359068944595117526793817282945246910389423903883857416663097588112508534573648978921551350298735299156310882759397674027629662600886778347654505773472533261787139106423569648414021589056750383879917829815580339932136760758149262329305114496558831113359560093431715890311298125710096224631369360443030740353398657560238325931056616043157301620005386175193964121569810916431243362817645703057872371277217580403835424371841892883044976357257087352024727900182703182883994063119633831171416672623483335857168126796685483235725934287374510305468528294562874851003676908006260028116083375339494256034637831123838988819115272892775030832293967347077052300916872991322305725335258639138539134493418849023584132309967621281984927608690774197459263565423891887925801109714133941300336718442255533606275712230896656310113098093667536784184660552818782162589653473207911924952502093697007126899669410535467485940980807515025791648419883202432604980881562116914008539083829872823784039539964691688520292269186303630812577241756610809437803325495013151639269349285337086696480655263341241038039797632299576440925411911233181373898779274854222377005741544978571564118468030431273206076540894218066984188363935233886110895007325925109457887214721117284179328851265651379549097232553671548236564367754113003057072050526379247675084883792326137038884683698723837496392505687657535459923537894107736635782167959029903513420016632679883875874739788724532102742901586883493401400379708984000343451979842698746720769822049542001673812261673717896863531097398702125048174359570344087390960015719598680336911384531845005377951212972208429096185375192773873006429285859868564108276379128775075122764318276644992553884295304311996337393849505668090656951785171722743679498296739897097310585582655149652823482191492347883534513588126840064681890313140586026744104071480814747074164384590645383084673583293673635173522241566840532221494116338383106179630331742996010174985614961222663337041418292390659433812971419455466931442006023047043222122047925351321152412870580659331076485712694994736234841320185590916586241968834221436370665048821646851168718746531677165909406715912727762035637038876234859251690483283737375367026692837704299480642603859640880978947991970807303524183062004333991800441831604763459046007696004309513150462370396956279723787507115202099638506588161007828665499616055246236431783265628115308626484686811927528800995290036249564913649082567448609891114586296112594327492056536397175535403877760716905077047541450785000609755811854884731647655135807236654330126591939822491909422957148628300030100336802208405576491432755669989270906103401239865789045866698831989396353287306528042372187346728208768420063624814541097608260215684821846197228165917727120296792166710359800056707614378157218837053178456736189805853367102142262765313116703319406559173729674152388731584825090895570327263943155607677016694761570958078981651807782893301489565689669296314745195454905291885444700314622579909098944683275579509330600229571488039351366142537480376079774670585541506075875500402674300703340719704586700191196679466230632951966846991704163649618572056401182627329758728080272264414032213698861704482415621043309608422697172694290634150053433044785284011560070680193159207246854241789877825210515141016423055587823445298601162959230983056025359202684075451706456827097129315228412591461416496563554177708857409266656860434224108446746122041122770827471118524752256514864310386166126839437797244774224617184616341991345246309455813576380018199333516606343875620331872210013309356043275939873693932746727318589643520795502522773978203033769006715757941141443680304309259551504556338262552915541814911638101794054558348176895018990825193715712109053749018126931310623461069179139983728692225271853129338120149941819688043646928204718927198036451969891508263113217404963195664498901964351319348295854008384773258241975951022646049039311283965630511557806710087278549882536040296731361979797699212097280945021164928426603914755308329450162640764733466241799425413606258873195271215204009032128823743496483627643414788324057609610494902397906432058018139079095774771925667107669902166050971386842223167608846682066554317803403584830561761972293429777933128461408385405190867158446444404291314795551225522507015888612178435811679945546699341934381525558805724367700275741680267059563420322761451736417919958102916387633049931277367816070395658467535778088849848264451986193897702365190311198065183083310361331060692521254771553206360772757700542672011661360387671089617930341872765327557913503057975210123756911354250144252560888375251903519399171676970952806602685604758117535408259065022475884041593955375079775005066116664221404615469206234033154707719936484670439725728623165495151671882340495928917264010626310076594817642883198953115912877314274915760010607961861322204723390194791028177468269731823190060662781591127936749546799956296086252650806150132260642411030811574618871782865607039686453429347644433367734442709233284195165748862845947645578519723968393509388080811221300017704992437908640505934479048889293745637391741251540922358520961217487174699551664617216331891839034894955469629034472590988200944755330644889393105535007271852547833960810540606617869927946545457359340487162275882730788550118575115953885260476892797992383540151118368608842646334962622881003036762360414000891193272513860897187309095092263755257156355156106538682156198648416562074702641453617327667921507644519098171614488621881602358934813160235710988938681040101036642966719049801820939298193724995756489234733812253345545059944523787021857453263824817935361317635769810274537696019691832025490677747756563303805490070155308901657221023858759084576183081263675898983854645756715739350880178149204579352914921411683366516131317900976699833004984127544032866962456628612331824956595769654109443175967501444875334798012889476700108469079295911440388602760105969081379714500579486570816438912457129332487516858585913024298268460022931932237715310469119263486139791521393166691284396210402143636478081106310280731527116531201714451025143267781405873529644018539352768851973757167860271399826312330724344245436612904187003190326776524039235984538415898651627629452989800902407769953980105848159130415053321946395326487472392657922723738586138025699303340916148972295669033005768350300126150409866041735176013941705149873256583212054838425116630399959199697669616178178461661038556599321915297859512465791508978632878378672152021361383780347736254643121916316868011801426141508825621468561202495259870747977516170467826830394428954826983088869112015640321422557817072666385526707603424182798267281086930676164937620695581702489545758673950784511333023304318850037522709255310596799643495549405856818552051180780825847749898834475084424950303764918476538730979659153082778226203998688868404179702946584346935086796764512876993317079547490757980020065890259302825171682161127850080477065542653664641586301609768874109163548507014459426177569551855776655324903373916518426912361837215085574689514462833651453221221829367437995677653811151632839314987298586552783131116695873640748525545465312219646711150241175980932161228877740578829164852839392727027485048572962649600895942355015952513081957808455438512881998305412805529171543241997143940609418044004889994949757129273984828939384313074436135168433803044445238237245801338108056595720529041344703243179003942043953953807066203705888256251023467128919579437738535240759554364340695531920695658159059882911637639769683738689135779716272153322223724003285608360854090621524426933791599407970545091363069216491042262744237033020956140343330505255355375323519538071497821570303457645945028060925906550588698182725469054196282530641977282060641441895839884861057554531909890485580873800729688355024379769888957035532851118575602214331993692125908745079427904436119963788871597941608607817787084818709216547771083447767856270416609429222921194802035120798874439869919587962123749950694301081974980462662478428932292101228030524951109134522382071945450384548325983735332024292076093797460441771276940845739405279001543576042546133600060972827659611787150605764594913473730796996086907217442794774086604244750354991440695894399623287212906396865334752579150914082990055289840399808899303022942778448954770833748956745599212705489459151577539705612944580670310847762607680102529549849470635847011113335319485217561477932747609815410299436055437681015515636504594720916566962343484459342163336024919084239374243213897820255817172390637692425964139310846878144111320915947966769167476780864549033007999855202751533542726485748008742395804166976001040475912828570321799413335548332491857892992520844107266035091035109814966363312980890709888284925365808117955120039806128236813237631044572875739362159326199198306668928676465582241303214523316464682006346312220616069046719805953618618006099992661731731792966014477690345826181796260199415833024954656276216304904238170179971305139489142483018873989841727181988176096540876020472605303928861725730611255093492120911848514919466702421354285237422679245505784152079479971877488852595045201525092630334048788864693560226408607268715350096805767208459872277074133012038604323267646158253872195983911076511854718912710940200183681717848334173420206091475488222348637483170541622257950081853073133940137171970571225095043042031098229451199953508496265289792400359130399383191022689544505025104808314740892553937992985036018461015766195370850559162560967051558010866334662309952898988274159841847524654533877816916251285305850730293360898344821660552390740014353990568611176259749410055751654310204339751138796085535735189269373532236749531934282417168417108311228736898253663186745428956603637711528029354196505754975738378219589263412200334614604730310044135616057775012757974584416951891134752033857267652768087730492714422107246552737383714984757188708696204454668926660429070337793112917042725993936556069839658455201821658268126401041420278706301067646771282524341015590954633891263961222484255413291307291979007959087583209578256856505323012918426507995237614410223370797431732660518274997822219810847648336343323938529730250996007689405343874192794249562185442988626190423076242384727170904839465206743993181711254225517239495282493847992056406781510341099795214797306758010338005106217436698873998075113842177337498724487903368251581509449246415804168040616842606422904582518474703837425896697576016198759133020154957527871319349884013591134338170736015753841109914497445935281536169627656738403545891599478339604684609298107390536083770369038519960958702024648285550380107438414875908090020755161546116305688420649502842746782974196251280504115782108965454261569906169340023005762326614755032607642574837122839003679076743974776675871743535606774932307357819248972442779229665663313880202310414655858473684384403730148166009221697023824419401252387859831571983760540981405853031457270719793937363788155928202226640740197744295585472949116453753706001025788572107940359690181113302894129473886624191671898206099282077675215413034942324193911193282360579996005919251937070447354525578387437496658590391605889006816013411592213161345000440449339916266025566499792194796735401217211006594460515960449845811853855762653908908308377156994278603238432985310780838429180293936187647961486773003588716318251745479950826165333297374066079385164666737485648114984145264062502136962268130515198515612884189600294615274952482644069128529568818229552242240643572881300886814964512103739470187242858685476201631550824711262693483782844223793799870229408697686676592182777173224815689424740952693182345044050283651345976960445982755334856891570528706870651159661717321859160355512927796501529587559999974491768688266750082821253812840981348215675081375353887217921976237220722557379220314015487905231071265012099315970250895233863851210427560906426537390084289109453894340995319873867573000114083617202955572692953839297240826538286925218856343665845955444577653544708189126477933737527761690333056503999368059129036605631458503444366039434571788500105517380793632279778161090759325738693929390732893005644026311562517726355554928327100294139246354239187198803690153338504811581683014655249332319041529895137973663895184447493937149370600782738667632688306564383240119669429858418452479628948760841693115609091187785951440510091164136176878409871186489029374426426431713922546563502275779796208384782900096967106188759289332600070620223904375603917997118659534903275845291190590461501740129873001680367175747428724217982247947110585123517979555051281779339908349257736352654476435610000670333155345167370887199644647459435256594270667117299769888546716051930654214807190501404892599361912144532210550466530871080204433027246702343654040923655596833254832298937226453382139116582668174705351078592600270349505901192017530004128227834659787193726018948643840812485365584471198915565134108252642446876313622278458319218140929989782529798631351663528207626426626758297932153984083212049532846976610414010442440568316780274091123870661667664595258575225122968014875588958342933933007214062441116684282396603876289272061806573741614399243491326026552986218352687717816389459027720938072817836957211201582326733107892200582888677721556046370985941313578272674662455906011708884191182098246107198035478375315337832402096929122362701633973388561728059059593063331566764333304839353933313072045153530696091195343304261896470437250843494029213359538098481318161890377253859216856787544428041483063292690161441075396333066180475615459707009101566900843320336239808357814820117446596276243997279874048234084561508828007495769907722849936661873399355973415912832341506207605428672104686563124332174782653734693363240647218407214518800415344888681739632626569360902848649008755935912493333842652761838687607887609684714369859155040292936915889699315907124567767844435525232208109274433680478485874281837844745459551920941167831968833961446436885149033765621839306670730802146518198128121146078509896648586797319978004603729677882134625274923208713965287353880144211411492998213448918046625507292799405675008621413110063312543319914357589145742526290996138660382829844022048634721099074755759075660397564931796089270977019630900627511035139819456799890851317758812930648459231894582176524573245921637851827892995115492008822315254065070728211735777362109841115956537986659432881254227127817914602782099061039029449195396097676537072358844966647547587190880013171708881972965179348940054665685746359596346051265092426089543502426485685486284370003345218628739827746572315895575985793043147508820024317859040308910793700457675811411305238958722296123106159970228190272511859894618138130377282276556553815521502949873054342981778184640229916225290917028260904364482276918111916683534279683648902753776074559563025694785049864801337149818458256602075477296235496612681792419144939935943778359963551743546345211684226609521596539995115926975874675899334793343059111024333015061756778790763736924785588278110342294192504450307885000226299744120404439473052911910493243839922412491347329760111532748622391799220776615615343676196417259760711020932996543753710937803305044981323286045326233002054687444813765910039948146216660583753636369700483020566618774817572722149037541474548969110757442386182116496786616682628486509994100618004622817951400633788111502346094003646714291109967938376192092656194087277802739228186407833738305725282597984466262347121138953273001748546381800055538032311027364402187136589094732846910561194881182520402820286942912814805256673186294178818160641590475004676501919003139989566295718014382669681110476066977022090199346827802262170196509288992807225707265896801179750958470290908085321600797703527678279628088272531259228425217492971626494147028647327519722942076943577842699348088580642532765663356654382017268682263880236501661190449680534878662271515228451572145972422493069076945316670840418191902448843114081108062876237800110182149740758038548541323248951771568216384869655395625039940820631339871369418599960867423711873879009043333084466262354932013465460582396565652750213853935384579516899269455035637751319151826742531243283408464167449326551556608434154273754964536514822912208765201859640446321496734451415774547879883734877592024926630343301161011274916612246132487667414026346806227961724103831820815951464028914215646109947537636923045213368389957806248473887493461995090368219804595728367515663251198151237053638343218125945524688235001122194098075508097882431223816974007804448717577780879334284377912401798092466347861023721060631141575604062913518551604111481529673809241190685974342584840208514165277147916272066476862979650855271148576457225530061352853886588792440589547457997934881343131619990112701581779924113776705591084338186688674927306045186400624241808624959394927719990435175801914428847421991664429357544239570197453501726880292801026051056003908114002508744676022738474293749380361705567797204486792192002095778763433312092479545453081084211361196689345043633421100365129195086171023460814562958792118090169783822811672974384136252157632878671640040362532900278526266072864939614585552098459327757848822935527938321249925045365836005572937834792898610555854979356492377725742951675274727045496129145206751866736151115237125207688177544520153562961574294334534894339284282390362009494855663376036421203201668865254137361538950543999797626139978949103446275128782102150125003814141174517602770379114961405110647592944819238924830150222632685598177414128236385819939231193279876600233728198896666143037291717631349080146715555236812898715852358414294537272127461482308199456114779891635336809804603532753011545411737256847519755185398077951113042202773308571478635711400008476498056143873350876595526178260878709592116454760585200742262960345042090085025700535857226377403030955791411968768939055285095456138627272080720129631435962343231131679719820439485864744268954895668475252529586317720090849151392178056627509088615695795163372766729514206992192117675029498285455297877830394371948588366401267524440487932172105696969151577011059825803535026012430786824514291637780794136290637564087426284163839619462810929189264221468592342230913088682820131324130830483090038251017016388173588100098118475492887288624142759480226903868513031321886715572240150312430887092369363103312294768136908565229320714405377835874380325883927363367373256357971240547671052609626235234321384261477087711883774454764811374905598573525303106804560039232223643735503651030364202577470298901863680583367557829835699872408361433542787160059929332959878329891844949604608370621098816600769519884997014703150580900615477274244041000664094072376194573680089653687015081907995894729656306450179058505055835426577119239832692541690247991899841524217176575546564606602870039650661229819384499882707902771782731003209610454318376466190903733090051074810858511486769801926217129488622207028392133929238516017908076839086086733189897198892936092975267443488101497876701918737000034745718290409999758657921328316136198798651705880334992752618622407994107124835706854675195599531555017444000911068934966955062456596912494694556930918137084757735569134420960964089645992867038257734450808023399621292149271563801184438373537306290126369201176834105395808315354647816371899956316543246904938523761005413945236664261720325638393463609710621705945127878107184572899608009064298345796091457052365864429305109095486648161235577696713182720045835726803339234801591196783201993027921505289784875289613784167833991943627270440101330205306751902748153657654325258684786616900491845361116478338884409744745795810954298946563033634637927996249471071218105735822442186092977103496436711473114562723078838132063982825760366845638837653522700244443720032308742888956380353857564934283132096856106668238523650532083219661255731231935442490966350796205748383198821225011924735165848290412017080842746785966910159657210116593638681088892454712002227372117639977969349570347256033775641059881971206973463907745952486417637193610188188741455820772627992572534323243784182834017953520500213237124876292846755809135695002495005145595861048077423165726295111765425177865087695800254213469941577088396912508084422884896767926700167687725562073715957979209158518152347047262841045841742550696714530320663093073472147432490313080307563643075453837310440250494165170075062050251072455400846019833768197660224387593324570970820548271179184148272808603623761961877911646502795207505763319504152678206177656825093801932234874409011134646722755793836871673262651456081495100755217100036090185268177035437916491364647838457910968822430073077971702736967779801361667280898647794094771820726262426192568011104952992392725828341938166278541248749397164571446888254287961674524943005530563193318493598978732952119203140030339058088104851069959329839875192554233925040320033944316752937374237675291812037957982851963883092468832247497647261068931138984166342411145281570935909291531500281047982880676937594449013218626020024098055767843915595213516224510202901698445995030254274467753286679436017752654087073606086612013910170827210765475395417161755063409395976431231011866464653934831651104163643097744870849396948020237052710806389753792770452974016935726415567797219294122406116113663698034765215058747930367351011928714022246677100762390290942258052764223280457394029763876945306948364776441074407756960405535084738844108202808257640581185312014313957320381826071818859781819311085300429921479290290661397824001777781720775868773616836189354119065861820766420484623292426455695603389764579126518895985976328005600955183001510203763219122718934119701456008739458987244137828497407497329889596788131874215783391901739276191617612461064478540421962455805047037029987121140742847902669466207963996731210756654101337208439344383063197502157862407428186553078558302701723555578478591504809471560891973673201386217375460046336028691020610641596969937013172192444614090836170791565957928169152258732840006157831160376659549009047092130998534908018271909243838000790063605480096639525335915690537165986176918199724804780524671929117879520344676083559201282680946561303660079668199404609088067165212721738664176443174503346332815986637229383801374195788012837405767750866349198596195920399700038997106896482889838255124336568205078719192525758651748524956744675610388458755837023053935601031523231191510001936364001735184010661604946760559457235405946332375098726036116648152417225138099987089464637101433108946798861990041877302526704063817228214529617581617816596707315456156352138876395358629093774807180316159749790121572262144573948821991918401457385937330283719124139160049077470895491478679714732192776712199702596573238742756789687789521524907054891171503101790150922747301857993016889964656349941932770297476066781572387784097367696592592257411969545782496894080627067171825147687932743489619426512112679417120143881479446972550640097008961296840462308164448972689224270649883013680379633051483778763385462331671150387365327957415737295009266689322309655581688758077833866069455213681148466205572457126044197086366553861198041106924375538875599615358058721713970999473142472791850121232430701220901576205217019586289292715518292783201385522088055805019456767433051568672901078017184131738034023999919455407451570131657748626660269889779450725874854515260983745115058479903417086477050020393285987709568827200544129629324341523821518722742719010266501943415475406727377846373464577094594348289538855663677711325773457974119893375967133762667002553553150380831363449771172484813648822596372710623307674723545225964798448880379477366148305794550367823204195680353334852260900675243940043335309670361131338705604701054049513007504956236379651936149481768273060305056376444641553300694294893146739674587839664678972239242133221488752675412263799331514920671471075911702360081106710685426154565816850419846298780873176638650822873215065483745304842756246052575460576653065397361621604679377288931498943284017267427349836874980392193099853157670563223278063866275032686935766461765355814409591878578034640160522220183638383869727197608648464173446952248988338788433262576038855649619809762819352814791111622144054297909060555355291259284128362931518530120214695539272868356811815413554646548998711233384476540263787558038007570058156344747772414547521362166171457751391610839338129390096909479681454527782726390614981144035917301103896625965001339159839344327842099019906322957461738015922827651009603937323940523463848735877220221115078908380010136476265407848608069942746483869981479246401141338432398856873400316698060961434146651128223625751810667125688321678609676873538518516553839395372066135387903718272592849737284310287143067410717005627850368965701809167484194175910784601836047577629809660487525223025168878296738842313174011867236918051716812562741596760945919525827346708544936046784615246685904346122949844672884175705092952807277042841653543336930605504493996697477934977655084730001384675757865961987634660155913751279315288543238711494240429091013634202979997518450637532900348119000802847450970849005554554335159064490649673310846665801324932649624370276388035468610852804697141100792849565983197953888353886874449571561987846486081551908918871085002149537507968355773724805310879695517077493757257418188690079299927531662559861583421242130979017986727401135303369694209584149884738942450196905948459755781338217531096359644926890571111289727200006879142884892235628792005134384167841065136132067966072599999741175854933595774917924859868458273378753131949154875902569386278014320810647402012251121965298109285503219009922617398579431198609772298283480128055599396958040427071056500600388092030596323014871821314330606012193458839826514508492467315938736826267216026690790278501823336617408714812227794662998506012620685571057527183307427671180870017571959147013745766231920973039507320873765666466314508915751275120278012880514652327982283037154304942809486182102536597068506767660196648373325421122897537723767696812396357079150732124552083612779938439450531415510430176450855186439400748350237827794064683194935507565087636998797456963237136881913829085263064427182538844576648964337107927321455731694530698431391751513041203785140597315069321061269205373771822127752650072516533185026418946883458092311466991456133198786100760705238182989625008124512165601295867505782394355331021268828317384395072211186994993383034382834506371704872118121342783210461083352185333764559872080973898335641776598741671068909234955403801970022996593645117783331416336252107132752554321310998763037921135195768423978543377168094124764870933044072989872525251870559777789376911549960729507001828958409771117991740753511416158449787038490609152698876125596792922344441820929800101674659570591708528296593638486930259401911395664924252916500283016665562037794266014197600872204116709211896211385702067743789323409972725364232199835304176510681127659731855552833391777065457651338549653125053301750538541237174211485509326638167035257877826944601139187493987412230771118574772164863982442344847083048823529592354222411978115728638532129734925548799788374773307698326139370803085316739556240361016230995574669776135782898582322280235625999477357019905990180933668613533673599854914594503029685577899539616717484832010041323830512209752572073051831639765619358334191925063221075164850147444339356141895091902245633438848620469355935000743396929531777610701647674864971193018427813662481828996103451931617188791348102851335486244512645909102097053314253065801375112342432181067564538749208683663063348252978864297040039705681180665524864353487777112463563185336954371159452938009289616177969082037645025595311421460702158554396361715819834688072117957705841536392112445144547945994400865851880964503076430741670593001174322166304835126731411864790490066697491932721565053076721108241685660149708516263560344281456503442514514102343405139765649360553601277489950991304294325496540896891192167654924210538206294011324244013917954086373929236615117512006291524041717066680312520476678992204715845785943840754131409979139057160326217168520956797056930834921715868207509694640343101676213351468038061595341738522119025029913996315291286098287401838376535409308483246582596039462381149461594452886411745168009895158338889474110563775786435850666678665257782484426180343901722548890779645150710418538566273029011086697977844428883556211784203825761212268022290198190999026765637576818497487209402681870219513553000454739015166010926332449367984168186521109917156702501194670775147527762865224450736479476584799642853514240345897138185038594389717706334167017611607636999927074992368406553229430301699775385473065423584463380729044540869912850482467769183033049006950571318616397553662601345810842059911993875977252381634148689404942527024556879956690683762787247696965794723542036001602631215589101817127562057682783767124267964351703234978170544357858259230570303404678589526772576795998227209697253411614468038695183495259008031510407537991667857372421328725769895644678282064311893846796126716952471622010428518510370446741885552623817229206573587721221340036969863615125383260148096216799610100768952451602374395582442155361951973274447985100137395872684017464286151195509306382774888300939738598385043156828261496817060022349749624055670259909533479226547180592310075063341046826882320198661091260684895829860706118127418812107015756455271149370996455056357966824730159372306034334765357589839827057963511827594781060776940887578189923078792891623603507520928886937888126783839133465913565922057725954814503968898513526668368875996541247001893117978585183201552304854557989677066265256569992525981679898938957729619254493360675578099414955918551138313106864286056541220450264835819890389143402129569203376612380884894086124396873663668011441463698361873466510896095061140214661718850588971056576695676539178055237996848988652833302286679263212231245222228102623455675119440154768066454723170921369745825446078719209564451533480587990506515222140081048794324627505739809311510045765002947882043741195241011487725216838026530345654067583012036618873530125012660582952603607329207979770486395516269935884503134336291448342683176406510822853768172622339599581713554125259875932393557686065670072753428047232400057087228293888295385224422723498186957016327130460144918832572858765096840940342299545496631834180342618143116821782437031609983604946989018701451527213809424674017469543360772892066196183242065090229495346158153109520663719941862599766794100843307094412281110639248221922091624904227989046445831189484390309967451130059317334538550361068651786762805899412781263706094141177209591528616087270052582908736605480885218841938034556843552036878308202236055344571293387348019967847668012670704043996794684279960331965850777040730913031877082448847318838089751910116990461255032196942600667001315772938829861455869386926540850586151963328947734997148853164953633019895048307709554956386189505838246616141926085506804373014005724590699873656010736379685490867116095478498744730531369476630140067236440524802218409548415871444113035931559098082864021976801945138796773333831606422622420302117143035821441744928785591374272034661613171445982668900907126507296885529129449598269645726894016965477990567237079273847447281880433498638530779084542642439302906043209901369979859867424874447940604090345308786920971111899744828623209864000680121755491796467583506882195882492171507231033821805769655949066126138218741401217819672045755510523382324849589707630206942006472367617639091207581993943099163167318828588401859124535440940559714639697166799730846165955308271914445726315087501179151733285524567528221175933831510929718341256936294208930204525312937495219087068103013779928845163103573899900173020551774814577028436005971099346401644453248396527952971740469227792510915938784034030957656570288564372963666720070621408880936655604181852979881196997332852917483712796978916399876088724520914117060533725045595738860457355119766946965540905985274978698567915500166748389837937219632333610072519171881587788249706321174837718431060289664689367341578762699060093393271011946309964391532373434515111641607343891381766303836178134951757533205455031370866855641360709136309065458961626335221378587220701315548050026513419068551653084977418306402579001193630886603441064540882712479220753378681824195552577445047992986958294633933592201900578481395998324738470137843811653476569945772921976853316878548373084788052712759961725867659677624217415685755153960942432502654420728392820884912298527901971211261864871479194694713148889633418938059466389093840435789074279878179657190842401407151190554923648034111188279156300403736375077478257677639188395847086404582261419783307495320505712271386837647407007077469033027259855258907813709599845651670688450970801151649316335064951357745361531986583572199898746751555880574443255933728099227864803527196272330874184568271322347411751296320186554254115357234775047059023849378399797706348945878191747730949530061528602524296256743402949172904130930969332143242231330188181973377392380515565745861342355318531058850917776507357022708832723081641338035766323000836712751791260471712048277519720987422765579811186561541938935994660540702678249828474782216418787100368008279702359246366048702895598604123365714878122819839755693050075100267396616147108988317017221207042901207850977614792987220714473746262848249799774886485129584386527599007152138133062184304369918168944074531526511206954997584968497556859558794779661036382066923267468022573439370668023170942898368546740676740036796775752289618410687585422794525516766764765847379603262699810315804180631283666389607146097813037485243283056902325812757110882396754473944678631031791673663514975635382054635502432910912307904484541596012186043606537004518726860738034298022323782343861403211423517323236489192216297363266606249175775736392760720073958536741525212014112725698788420671472307167462030436520385379648861942818020158639372362695747267698570610689498145165721959683164961411465950922045216336957969011080168544504677329298379127597794273212392545085561787580825327525579327648001414404081242102415713379938032763238928901085124031554940676128267156700231272884458044697144167222330792801039154005884805331306032311760741744765706463241690724720647205494862345525215693266249270981893281724375817108191402524787154748926574611113246170545659798839127988695631263070376038061654375297439587013171542858409167126196186888812617893503261875716085425136959968752593192815246828143447387308831435272323792018067539977508175261365878833973047721180462346880568218066732220711148465893080586605930889811483897175823384653060698115607344081135945871908724121587383020862208623740946405164749318205784381976875130436089678055755570287858090075802505376453094513387116860287357822893511986824976330796150668874552519149337779173989698533759440538010781893792670100496440495197483920164849442830783520936147873856259159689243734337852893830448947506683601935628740670802202094542303714552638408470089149892209857334264357094798603930935972775568780369107465666213050963859631968754888683631101647235545968353670344270172841783502861643690804198370927777898786424026525098675442255115149750648581707624702028364066595011390166323741376446650683736487263282238869700578800095526872415551933305393284051264728126013345987351455654145307174386204830047222850793038827988014129855284955001050854676274816351894018870821775384196270016024743001662716952786389571003720316689720694867096563394161378451285983059198506198116664384326525337575554447873449012553246392066447136140183257137734643154582209767355127408965146879285410767461895049647556657198668490060974176342667660526935527973850460906500209421701256267017349153544633159418361836581077558217015602303150999301135639660043560517711923798797905371091737703537029317517229279138601173346032222500021872672862726748030763993011271756737386249013802709071415802395727030494577494316169694144046428262703254335200609767170535997191520724252980156224358078626528114178013122246871342979939262958814000613224747647887839555607254532377531202347963174001282447547226516812451165108241032572303948675508563418567113076272126571621158035981280330856490083580326036284968089016991239886333900376870760643961753226257284311370441471973539320692970299089056390413118339443521185206891484114926394931192410470190197029599528551808688145715182404236030933883119865905267012684597266004576516318508572667250569233420555239223484962124557840095749635564545907833859083318136217436681539617914570184817952473639731113171175645675504849520166257966258404195256846648172404032173266822810599819868146442395481577236866472805798390793395774452913449095014159031748701178540753804801846026194997589848044618350905711111311790528936646997969955021046043774050226242800157157908320757756526141393565742215275343145395818937331866415182803943636586110884577437280128093701875596624158485358731895838790149759837436279067789543544951139693631225143052425995880800984892877179662065489262265574901104521431027953103862094656195870908059713705711134070826036010322182361411980281542301983592713249150640456600414968487290060463059359434895155241304169866737856879987901300540643253346810117405090813465722327620231692509709357413715510549057235720846483502801284282827687137464516996422924344896936713947953387822494748863271452171472595748085263928987629122860170705451735714482997800094066862176166315090350672901310402516014507049485148349749578650551083883143134481924807299158585467598862127338957332714421290288128212572285549192972987584025095584888192080667427993946530701701789895986683098680726682612090108954035671603683580901369372116242082464654952232760493823165974753781557785990559059009905731682258735951743556930312403911182077269911784177850841498419108776782534959353956769282834339554517258602889417946342296515269844667348006648087633743181198362854164452396680838843186284623112960558618044823814072847065996897944083383077193017590720311738851190193015228544978555064401311632120591924247293081103149337123749958139665756241619280709955524350118038522086442194874813118657976932271147259297392800376082686201519278136093704288036842068784369207789536714167969997202442199921318690702969765195589417038855306000746179374697363906267469826058101569229631308620545109573081312720039660962252328704118359499031294848645899965521132036978713537071700375766582895187152686671498681274834977791262944645292398804713679211712322470361543880224748289656496637641023203840697957769347139682221076641312769432285630783144730339135231929635815621642575804372493153297200263797534465474211456339704466737906133981999824418035194192456463149468217501015606570107118371813819441070113239091797380607930572767808604248810570063077028548217193784993489443886532074444928885079386360037800248112088860410186196813551011222372387838393958005190415410733875440851012703192479468555808888362081402547135300723906910641489005839657581269614817551973259364922485516340920631750712918398455427997617208858963389165890019398062404289242132314701457463159767358983146808835775127380876559023788071853695646932103000141303422987545500532809355486713649086726880505681372310275069971147617056934560731138055469247798567977724201787752505964450392003812302740986570155660343078873458544982541365154120318304902015177513656446684606925947806980223163924063466709545324348458888785208091126931329017132201952555093139994806320330419594142508465439555576897236831055141707187490256978158431191830969825201682175763676258533799826156414190600375937993568253318841503202912913441721014268707567296342231173979525098649202887998557554321047744817790307982351396587720278232146399298312978213361326543832755694670989747077637715303949912688623733517986873706857818616136984914805751909636869399346967484602899521176814471093168111025658571421768097703781883761921924390935274960403713692803825765573089143685614968042841347739868721786561136141136826566240100900646693436243284325091167400928333149425607622586398096486180973066090964947554639138764910892856234683931662261327384094949088084394951504925117629797364029174606804439995323252658976618446394341714091603245473323231423810541031825541505282622778624877111450605839855613066482100434721173375633670236468941199937418747806138804382685394370413234743465619763765063749842049894620022699124280053777944765423780599934003764349050552961114836392798985587996561333913365358772631381034998689609223041517459909320226365167606928583688200940635477136974768481034650628797434496424301711657565615607287791255393336445381112274736172394696390881606097121267178076076946784409491190780821951643978541121249981203821045946667707588176330297207916450077720657701905383313119073453534678422421086415084436589017731415103915471272921651726337163955034816070754314473614840510720581863608095695553030173241149141012416169105946657740513025641813350598468248727243289938832673541027589119329815700759003466592648588975367542001843301663432600027933464337057766929998759542837986417309606650827879698193553939445145188734817477746201053616860913384721827306485085381946054583973712644186338148671270886846642226431474290972079437331731749845977120928554594324256532686770722091310572721987244548222895629765835114498690059486139473228639463441159262036998322618000185610777873892846185331729077218272443545752002394754074887367252186079014622816085091194567329051447190548361928361728003638304443128424235691795131075910059843317249366349112333080771191522061707432043353791421875462231075447570679365482153145592850528906597326998008468184621694780240650017710457683171781787885870324271300951857148857716911651749977003797289548640742461716233443905680781283262095764120771573434612573678208048716272843987800363758622887661055786183223868125253786157024050312490343532189372215198604314814766083940524048470517156901010697586083701411493062198048539213597402958602788331056056498436243567620896471988479411433306728893980647546396984079980854629041834549135375867928382729231032905107224665617385640956229021738805536126325699435645066883646701636271211350234937990429759690608629117455301483010957229842674007157658406207967862982014061214219652919952801598583031653822611586323066527072371607147382325302664793315986840430523131938498366402409344324224104795109197600243208022154262727201471193569248095432341312657696121890088913621295731826329564525159827679009747969956241858068971042438011541125146188266939821796204374892774848232865386870788369763009880519855420253289971397888431564466358838469233682843157617416380438482298589751374807783895300831324204255364447418310445143296370676174665620318764810479124181096298914509927896570167158322688470481441164751557943468273241865998016103487039157365830845304839128295395143022899328752859164727998592001397410204641519898361565055868999443411467488088133717232185781268265071848560393410909908289180772227416450375637236217776202069721538735221059693457076090691553213201806238828556812008493117373520979562165467317466839897101174052432150226354703030480172869063445370857942521341841309929137871865292141642641596597599108863518730125023607704286659116462944585613789610987853182312997655352804258172601672324843613203641698261257530559009333224196444753142369543453947521361260230174116996078019195892065393279254278890430824826767215163721697666697136658188338828043519084635373276797004162372012973360349887916609229706618378944029711697599110986659287978069257043809488895879245815910205290530431281668147638256498231644291050313094212601981842572829731406674718537406329774538274162761307403175948043106198135139797192966819459677994270090261291873038088895021118604278839091138092452750441550830789687579346567385210289356684555324119211788246065454287342925686880206438713725866533425968586715862807153411118622722572156793215719397056058610048700269835815135589024401743793966334433656983544546202725373367472942870564811433946072752803398289184570855548153122616357859428378524827034140580922570458198247181186303581727530632120016042569280750571936638199423328029190916312186409920394396738126147324398789036849536780058879825453057588008932604626344489674290250133344537996583835975718828630900541216655671792825260982269880646431030198840155949162356966471147340365516722509330858350596773534722045031232916643692088148952173204039572168350334731425092855256040610753423201535466206459377963222490468977612683378035685538585086850465840790855641208237152587180088231421690077310126473011421873451752988353316413659257206326189996428799709735605753936577165598605488714490751460110110082899042972217129009226209791838719455464887386851072617454080230260397827782056380857247483830765217800512279451995734942251992993669188322508924842545708179351668015729054491739262750899801004844412728503927555179050504272807019044721105556517410799928251787166828508089216404803950563851911058234022615556474567962486924854736168144865140434839748708542269183158969750966843149027413130055650129278626769344760553221501826432416360270152448027112121833422514893356123812111482752381874610835167234702494300520521599479393438386958115465663878784267438581426003827280675359849263827233196950295045035009829556735927972582201932759716077350363717402433864353276856596129524532636199284441417095831951873246553701841340390130935703280816755258004777094594660529625969644808009693526564208833131168265809868142818862430084014089452817533869859381625085584281639885863642567018513585435968058458197026418169250989320310908178596554359694516626397512838289877501992889544975702828218295080481942985286492245454684724146264475801798251122587898788660112517518729267654059453103869381764876016757931506467963912378127308305187984819471588715632586701985115728290973354148464715655471016317092873371338798948665658175630501003904409687002664137648888587979257588027110080792564390849605795261080252408378078807258750783884243635557526362765643058921035668554864962728173149761008560447711938057835046171806934503958822458863931635427641436581599889545762179151490182683378984987984498406899825118737748104208426697206619832748710897615238643937622206189196809237601411339996777725373132013836301739342428506187449251576207053382964774436598981892162355273061186105584090551179752165566335420661130137223664486032230778358852618296675681841706239282326738567531355956489363077011012203175380241549671675625352174400607447163006816488852222103399315341932396971743142967475433387479407006318215949158872699745980987951540912986212584977362224497160098363350164210256355043269985098780969486754712554085699775597398047904242953864638038231412614127828339318031931755206488310627970535454712005031735337627132865237281477323147462402545378743806339568531686212127336553413560430106874866675777669914964995081950888635347288358297211287673774488626761894742984940450371260048387287853821255955993940195910921173420939350628223170149157219963846001964826293689753813894913132509253577833091726559154316948209334888052167952835946282661452025360714163123471440574239831825082019452270729680887864494804543391982560001404204858603451862379802037307555980457849629817575062685046586153304337458244135049413562716712527843260695083377695073986157689192070194379007472788890850509068678829276975815408333786339778323879088915728732967392309346691763678753447451495375418225410070281290439355953269949105559352137363419458716294234977590246222443211624944367293525229618090615081758130315694210053290505563736637839358882675733146844410378320014926862067737206433093916985669151632110790303959954262171523569400595620748873699155215374877429808946723346585824350618277880850511670347957021761796589204053759642070627531434918661259059942873342626829080176893380427082786812258835193665219078098815905128232471423763986598586894661980742817915579421697769777324788558201602546248243499495065588757854814871368397166430558281204525515261914001814605460752112171469085871900181983138089961928880439350642270752292037404913159773337206596215762138216180520100440246919950651910087687872012275922778945334721259938780717621143361101374411959822601472544945820259106773819323948321653298206826045920220419332114746865326202883352865800357790076044236818105655238092158802469909584376107954399352937677233026470697482778244606415758716949435036684058821772814843912874113093943418482841511037170078139749530344433775610261284482264402194518695936605575087271383068642424992102000307067396874788729482045648980561620153681340834198165101482600976220655130874327734633014608144006452214586235618112172330390113238065849125385572530375776953947352491799780443692294111984945061201690550226006558406368770545469442542160851322471661345460376614538726373675957296254673356559971298915664641460170203962887050253145239090132173094194417301352496357032128918004106433496126155604866654682145109104452190026767783326656636532459554543559512171912197473398006625820084480626478248375425188565943408397624168448023597038623111279831850503997318105259579641507383418697162300116695012438912201354263313011756111940757199390981231877146280518258465492558810566990183997972912275206334195351132106080802471597311329391499760119470688887157918895964871676560164778093500182570476576617907584468112474371672733804846463478242124317183209006890838280203108720099113675481542218283182975753373918492041970628620376797456280879753720948892525324721470035020169965517283297873828033677563722929057055074099375404232267980918478899946095707186825464151566790869922941438987296627365953793566117149223281181567992949817222608567806918239835331853565219815247481223664509565932487807576450349228623224033077716849570656158544827037428081554968101166041182079561402113301918875862089395446461235407819166454586595657878538308871154677980286301029613610755310004944842104557868293664431673288656990366370614233093720292096083702746709810768027337739670695806941534473247933894658287933147211035240870800140539537729401336808156292108142753204188216541098119284734859810790235683467753954654942085530570378690853292725794575716323881977091100304216781916829035424991585130832862798891090138276332815533907914144007301482709150044451728507369124738921581145813934765030444731119325134182179109631332152622514692420972241161876435830478445127094257979151827402377600983609220635442799067228462607145138537094406846577522342657413540265599239606612803684989787806495694897056222134518631172338936804800068428652397526434521649373910804115287754513989804574289455265116579345316356715957408871834295565859637246566879173184736922284922352287817134781733598784410277536718315662088580198280898816861104610865298257132176615492528669236588706118831293940206478380711713175239555509368639781232495425429144303790471079347934928257468340451304963846379066839414890566222168116643479515123844324807119955105259987430530674180475192808229167475856135497293763113664140577047482518798358814696128046264608000769798682607199922978517598450181926564881632962398643112596388353733619251310387913141310150988225943978074741245590005081365371865966522992042544971592288147988641475027904666952979827367986888988792667128772461022138162244101646291616853555522303662133575484140247868747483243849986283328333700191914921959056227003773987389569728575760499579409340660263437754023102109158932633171863411190768041255811726675987648904504156822225960843813006800060156983805063991342959443783296878731605753469674061733113072755195237029200805466299540882390263499263302315966365945987575983614767711531548422771714056339397786315672766720945479310861926625157808433547122511537664818060259569259759005979805877190512692712962910593399889792295222895166724554328702237746760628067183870727626884731301187904160228749005859846997660486548927202410569780682320940686059954590980872248056093623871647666768692506629024906745593297649866835335807624428258369091643180778306193595120124346588859996622336927202830915337755495614608853749126583847435612340916941932920915757066348742293715434392293999144700462203608668984111322656207108853364936465803024898616235868852295303038036817661512600282858330897143225938569761868513119628296345260851476746186577546582542821509181386881808764469313159591690990948214658778722903330343645985385476470821306864404140612097779931487340623914722001871567631623383863352823900944475747555516792511243588108230643597927247876622532082487678671467628572961248769377994883591992176504186308045855780972144000732868270347468454269202981430907528678279005440131573651559829788049616160473649774189882671825388221189917030584558757584061344634332589028528868491259769170953826790611026790296680585837305652892748525115337411684039790368230558094596024792785089820744874464822432310208293121394265880692174437893073713804719714209833170667544930600939459231691067389862248468821360498306940086374487483921029824363146166572453237614957785123601345095774488502191959983610777713048483075250099025049970618821306601925116449736605563947760722354592223414043342552865305646221234289154808292435935508148251620705949040003618623762113119321056875800159541723101014566849414224021012212340180485547612956186327596157047985428537666118714206918856571006546874367173823968049552340829195519094363230147725426069798740446554125838889734303451770742008082126366299476067220539146926882358737342690772933344921515249623021549545263065285370343978407757722211432788998082106952607555613707771630906942084391311896703929815942912709740913382345490389982356543535296937484267624180705242943427754639209810619864474958168611965401408791875751933295216695783772498011558126067841714016325978756809182728947718671867494760174483152610736746732776601300996065589277492241218800087663248811507912450527869409683770358197166879630753696434015864374228339849611237832852815402314520641181174366539933604804819211200256870575216861111016271354063904232149428553243304152758825233615248657506821169667380685652044102763983546656857288364001091750460838621559840428333125031317409835297167772096789131428938422071152641988152233082078429856902192502614406455751400492018173424861298333031812314566782247930191223688423929385446139667909810516863696069364095477089065733990754920838829671714640841603650157322971572947348041779485414697761732894644681744006593780050514006449608373041032621118702592825239989156606065026157348707362667501117118056210800380304350905715761190283728804244700399934249752241721691755312735729390509210589078873431784358776143967729914921935401608946930217508072314130621124514100024953882466679033235002721053221849175241546825167485166269447121008438208531273859543758436070179752806620289929171896138701902419219766385923606819141294932486451757326895200503861146637857757274216572687428815294760469391032157943244418131435320200256649767945227224155026529155372980228926986655909528274147465372480312354120906944061474272468052579288943683135554979936965415399724145649869073858057824576399696252728435879826891814671614623111536394989600203082669432527487070974954206584963647636012281971664748079428167100888906148508522587790026913811900004638793028976650604946789564560387639320319268991565999865884118424676518135839990512163946293079107589392881425583674092561570805157534831244909822676144960481587816086282291137758439792764064129536477924372864196417490457829816167945298433172692301947055923966653895187993847253999857010320810257197247341517266883815200844195262522586620537831642471798756284265071456711645843706311766444451016634084132355346942781213408155934235267998795565047709156144356448046568266440002285878666489210418457388621160610337663682986071100829110588149110192535027675947926599092530408618762376354425505112783062279738333946041208018731760285831287515714520055630767012858694959598601635307697798267883117741379053766295322106590742649806748499367734315648469326441713588961447355292691378161540682649875826290474998508704038597628848850996692009184617574537741922971210063984330029615383345353620864216778261907300833718363873930121023090908554460738007880228725140526667185669213993090542630185115398381198279352968677719937831086359837520513085283887942070727218249778445521935987215092681077835606489119322131907744613087371838228564474686765367520187425096337607218003625374311308586612473290601567612765673694183488077780930919083587550578626189395105087489264305220174137479976168060416446018950580112557684363116226988822394431173455071751660080280697475883058426253873678149374629276803038002690152258330706883154395561490818685955844481255014665966968966730395051681534359149603227660712856905325125214283867190093210007777345133877454370971811127846137648246574039576620613065218221066107961598868201891016920114296789289599554695026309114098064431315657342705522456391716839066969646542780708455300873750465937076270611002969761595083504594300994609750262957794300296986127303230515209997954509372165241744590224560840247256240404415512633461257145232300338995949358920430202422886239943072690382982993656202634416551904379397119109823013676923891819349999142414016457666139377236398371372742038984400197521045766544441972520086264239307848508763998696417302511805060809403527222935430707913141500835843790977087193318411203132657489369821029317745550218684827540158315233873948480460060580139915583411782034749971148119948950270018926001462931710256438136638028450083970312957673782640581556991601052431487318050038614767517022052765651454206430482826918776086742571955670057345721601483942503945578790694474071023804762983435464887252354140775795375957199654952030155177005225304588892743298010308146639522848728775265028236457654442996688662401191776220940254006219498640274192298054396525478821124883402276601418522121947055466704408237635184331341501320754800767983640557618983767036886531851597117244919100982736059630300579767906278846682309347877309246751354382455643475630486256828688457867271338364199262576300953839285632753290232335948720041644347841810458649736395866875806767085261364326794792966083889731432038468756272732087877567295200713615101934765208536421097951160726350062958087143839404431320313522266282964826308750621866059355416550581845372901259918919332027666881551273177404293958759267114161815871848425975728920534855815232403481219201350954959923722870750332150688041270544541727221203747260304605893720561555718035508622269676054913402598498784258000896376061277200171723951062208269285326260989784981924069813271966302997195708025106710745749814714388915120166907953771797347472697270189120168753739861245366899361322573480189531195681157811892327187519498903495170174395167110475380779596699888043539686776767922394166328455784894535640527541253216403825827604910755095203210437926793229557725997484977185784454263365988411733287497338183422423819114477656475246138844976023344180016156490357203258288662986276179568935545662217608548251868028651648702549614985976588588712792825014507404572303473802201519513632741710984867716062585920615322272002498517606956358169488882531633014037937765866154335572836364403019866156777592180191284861726118533799459162658272249835974795671726083342052620677849536360517980237370667072841797321560129340833133316870731804545413360476594271801189959891130378273437043303497665481305625670572788750337504785397950543625974049291982019430384834520957654426708947830690811242959133976428054316739173135631026880343174446966948929047711481677862928318750413092713394128748654520831743805983319211545659365282721705419399190378419906751590578781062762430822545787400654670992517506212033524607318504279007662560395104854983143093281223972753251484023309650466470976988712701732794107185078304504933207350601697139402850757562589766436439802768642489905943395039794835654444439665449911902018270743218784862723796355132902824046568772480587093652274796753856602807122725961715857455635038088491004301284493872648388078082562030493150649328020057350830388089100966685691903300169483429161766946516587750132404192791856322475557196784780990219083082258688963940033832175115307119325898201019646590502717829947513010598417482689208181243913275053852992130748154498194461690438558106008262915972341473444304023360509555900857165086911308006408785841929089883580687841212362724085329882445631057222994968022400002555181805431532162873867336601746878723908691247591807781575219807044655172160182083764019100687237440328555732898865036424611615939234112836310969201663186262403005086607611423797511859842493732416472198541704304217605987197924233574053999366931662482401800483810873775862444314484492408696117100254568672889027037219990523853291344494480891121554978440652063014382933463751649847964112838681597359107943610835499237520752144789156541647292479870395427794845709186958585474996084725668483566502382034939977061764239373107172538939888591516489397547476368720393141717809078384299590941717766378367053188685619830477246875976216884056758414653232730381535207883472460589551471040694642438937242652639629852447339097249417278774981929263107737449193584816089438945806091822582564516799344284085843526812728724023464669476242606808049387322353028648922784840494545698661941001217258299995345590960081356292186750556301584717180118092439129722650886476237969084627620948500212644811456535316613746290420537460243312806544229762664651678634437294593548407194944332683294343344898561008003115051569817048916956215493718858029287806508133456916845388985096173558417682273755617334427880742484891906396332415180027898260370068445327500423398500325316415513154189080425550771007933438607303540879221538492491331764105227944382323368355558637443965711169526640725743917198059683314421723176131895622925198054293704319544145922252305981572600116469785308949410944019460237301531086818794668324409015381005397722819213129130870630787774303744499447810246861567924344818021526124200854337229577176167993107674570828449258002325626037279406423126582864428434243039863368558182652780107249067380526145965312429532386358525976125484596897083508317985686061162248422691545118174612754543353450316738220942985093024344837651081826008315643844543354802371149618749925548103102833644466128308647906559920454798319083477259072774369108194345947326541836439931743968680852260340200514848772549569429079441709998287567098364005759150970809489604230026018924947324094059777126999361482864089108665060862738185510978309419824547892311543105281493517606164097559655048401178911882223938231690538310417984138463730060748708641637597841643491673506353317425377079358058859479128979104978163203043935302991811903093102232454151338525578593930412954310135068299228061415382756479161762614733294787769150650507454940500525127424375880733950232707542382339565615937139480754792006550801247948942475899171041772927611988416595069197079340468317797240905100824901675105453708729561783944078352397407045650324001380026104107312770579737023280118846182818469161485120352717932669902274001723466533870762885201302401687837889214303440197524326981260199936011188785433983642185133806875966359962848255062645170856566805301255637097189449808428079692756452857747971015420994576872243378969803401869453111750746618862104602347607464651369191493981567362296430335781600086386878544403776611754307879280194947556291456069499233205950626994042368705760206770832496792488267776838520755214544713221806419925646633946593500163948790557615003951631306037719994909983275965865446823057490924995057174199666408560075942885182273812294809186390764624750476485821368674450599095005059970003773955323381518480520648701750839350466111490125535293569997373090704756505709911776634712681209704482629647490785308194401686108204454621238330865324867477957567357792420812656198514813269879150784500208960023719857949814962360187847394090072849276531798503096765224504051319234653102334944295054209384731609372319921430305301819816014585606547375982047835055231629683279882047698885617468766897796945036700557777466029542110101495095418815677861228047703420185701325377538445652258989575073533165121515885938387558413573685657419555604249819774549985839272814978869195638233335441658651025497504595336742850691999993639044478362381918173166269860689444784652494167221392629509559253829019604683120460704767733375794847193050126472077209457883961192687756691629900865566370442733233393987966119302642871360186521129380811972857871778712316480551619060311807772400639074659286809067744009058442439962748824555178718976858696990437817392996048746628394874354820555419248747554336730876375960566088121771962871027291881970579616282466890069865668635671932158119005659137605036362192420524999138965713913800167563924197472900676025545709504548375986699985183801463939771770554575631481560298748474303532660005577125964992318976669030889915308765519389167830889161216619454845790959146221568145481973673840407107325544626221975769475947685720952644542729865652451195318427084101444582505810110277386628680540104988103665667694833663051567339551292110865242806908653038315421226682605585045519847898000745936881556355712781038605834998001742421432783395795516664235880558115921876560938816094838075283036646866150282913713209791221891065781589021683213096364068073087099738784855964390020369137903324178570587500225466417622642861430971597860338355264635447811209000298297272787110722123900067165662276474371090634543978395760554960907231402099520846057647858122559349662343045830857223100601500963183159246462501802362749624489252473938099823098064769426981672464414022873281852088697691366183224624341648993412382481338284451276540951025139230780054277417477226030672681803916578954598915589672533909104239525335654964257733515134787101729121285218245542718422101650604533866367097108801638182717265195550236439816215622888676889595506314496510347697228072773319804426804506718338340607907380628208563070791103581956483959317495871413263379550416476149412659027428778696684085011486804152683379294901400423375887895092320287066800410407985007643735262274610069468395367038939132804852348017707366285610226749959801828367567784943503221666664065258357578518801222269830201436513485142479083117256158893452003610336791177801226228781410497078991664480210073465447846235002076795221321704198136256173511647685811685301277932687080305846902855576897717338298004255721098619556275444312286234018606939402200628364507171063211613250949539796987118058918282088918490319557934168258438940044013160162781196914661671930961853360932741391498343292961643262202079292357134542549588738172127881373603220330674781425316649715683957518593861485511521046151791994405570607637341673644347873364742242338413719147103029128270177761834673299159846871758200849438160749085398182635996994016625866021004311749402291165060138722466636627873595048314626376154999539324787969901183042925714902596994213480213060093580013789716022416183281614128759430685078060478565367584905191449830691745355911900855072566921621680001362097875750149644796008037921032584408557721933313163109422232615201104823251099953807156270905106011821174763506809278350190697353250084216765277019720772502853293706545122380003235222018621906404374996364692092251247611896923433062829416688188344410622215227589198153243613907235196785500856693273740489442730351681741349285805880059606175828908247857758478525419781114426272097837965791225674731949472960620163318685505631627693150570070021503353172699606193029499108562946427969304618965966677247406517566662331393322384107928021458414620054291833560379004756285755996645704896438788786616091001671039718061223908348080702688730988382574484100705319727924561390386176879996668870811022897351845326319032601289745495286842083194201808904993461079294941200298477643218539965257375647312266861607214285234777229054255464684503908399802001786215667429518794477105233027235465286821820686535363940525661003830249242529173425363122684007693893830629477161630754549241990483227222858950129655097225151910011134862521011470127843233350121633104225640249254402281077425230809518644896262945046320938262744594891270906201328116967837907794678956023359559511669000979165059881273825557137354161482616492677129548533177499478993898342892774139563757286846208244864535737751657904353020137038799195474977817079724262039360745607824623312895993947322185276254899344315887752929422131626024906789239673502929338794453803205607467381459710620079004671380130933712242146333776211352232401872651435520378712715881733243870178439446000110364128411723051229093431575628103094125546592749412842125759095926598100797430469990020102984557933107229200892370220181989819853054727386497702287565765418839866044048898539821006401240860952094814146280470357273869550138669562860009679855265601248962345082706171306301439168374840564115465688899124629543358728976928621253441856100143524067066537212969860385651964904006293663169090218561956694386450661950533520684141248749868400861118817614146362692524041770478945974006083128133322674639575675384250056529304668546655292235564037476124143115792236584483120357309140698171143171729208451703299828072289284945775177127377210045733898130476297858470447033587905900555906937065330034089492946062532247259389919671052811027929454755328926011054241659350306709379155298181542177973281343858681803337645519813636329070003304451308236003632636831951033079664549690763278778921511965668479391866108007333082227201616131698445090013867239140144591572861880987096842678821683620301016645158643970192675966915408190629497490951989687096440096270027457530764384241528476627920584119290680037280170842627896201935625657618961183873638477938787108986216337846050031947702673792267151082052684502565323342266488455198338477243478697967799321444590566085615050143729392228616006955931316738387329367475511975666321523367805206667508399867068428566578172319115079161103430010580716894149365466863698973936797657293167553849972747019876042801296208986210747183457034733957082319826632747181389225185779243368571145750344110762316808107489280277048987594533077011865485838439158212226327967464815085888142760935722354377076533930674346090194100654533170938404499259674516216426706903806414082779141558102437025373669606845001413323533395931253731344570981154067040481999460369004498171789719783104952901941699351952299899854092736680694434616553784733702713241885070465014345562709768419951174146642820686122594478140947778451370346112334698938348074236743405453386670457801784213132004893977866961414756083521806269539191760618651319701225116460101279838327612425676056576969911597466952141302218297331420177962544896324223895476030893867660791954386168097234983176980784439500479604081939733163474299255813468736255918040861131126703079978893368125970084201539916089846639297790267970992208726220744224049812390200881547210746472466135647333952344215657906847840671004659192257879863619218462496956098469080493292809132062118843032025123601541760657963237689313162183881473029706991178683215132143694293157478310813673401960801478423800719876623178568580845650711804769889525379138986202375218091785931535439662843316878953913901371873914376262104460226665246068931166530714249178761483205942921217673076685515763558685863962758494737620355456000621617264302260147390974644517490058243549532395311620327473423514652164901802260369541283291901793140848016212031025541957754473857668738973896631311032947941784610365666145055797082373551862552005272009628883967821039758176501146492137868880073425041073692824979656800567637566105365813299066397538912398142541474666883566673708423747508867056826692489640058855978124895418631735267759373582783403449973361284738837309221309444230372135321535932681221521020114319276581907027668222453899998063672435470069723689527881446111104453812715459961703032808831172130784010918178094230532186490299252477479395946069889155657122545876229777359305510474690222381147312321726697659913169651035019024022672490799549663879995302395101848127444764626644651795630469382733284625664921072579327428504668514506689370718605585448679497325346146865867747887380673699169018284186463411584715990050537690537281597308738144147163376846032859585195960343624444788854062835057486327654743466587778884222977219957156328576915875687988268844309797232646282257560901700148718531210492911212669880475739148475320698859996574094217537632541515950164114413130334228144013401059406747631540243606984372256193657156358301772516031079978419924830897726243208934382153556517051641861759377341779430038221173327576811131737106265599314298724969958610544276719191014581882179174443926831871316546901683898268615450545711264425901460159464778109996930793379780226290171278588095591627228825706348424119048307324142008391755610631240324285360809064329829896674533264135345304237867016454282170649023214973862072944241984248017101825829694154452685201991619803665632779248421835399040733856460744047445809268592859584809339923360944833123265234461092020450417197018301397299517316298199844520873478872352513653632232746047994462876232515729392238414717270984054501445920723194852048750899557716799715904910763640906139206954349519911838988815381083758875102195019101571769203649108613234541510230131549767817755579437610748892156401098121101591536283641921602756826630390638240903343810000919974756039149008887685969113054069734290535860485244076646523938487618755223947056251273555579744772397748580440800313639420501110202229036890257701863521317833971156713516126795172200564995597236383465680364295547029170666662123425414164016344103748169761871516385543680620282442811746263701598316545509363205018196030169084910894717382882895280384695215781464379520152221720695745786487321817144660755405463973834517746310516603946065431090374746410373860250439345498087063320494556235152622929321880707476839394059962487409223537719488972601723938454711218797399673360299139102397101663503789723078498535036178309671044246196650484827333728173574130582861494902575059396995586092337644948844461848790918164378101044759724435944773212999402881797990175047559122917284654400215806846785780839346207945972410365582370160384814400199003597614354398992982368726556427152076575520690001133370075699147228121237740102229256771358222027948210389183643344765089476277964937039302812010782960368626466766229799745201380250240757993800620766427134797301461272402524850155103328921060824587787170962904552927498182511331827965862787048603718830991068341278813876168148577163775068983101704323201988653752194154326238426717463374914225446049013538303501068901269452967133897812648824486892676085329034515620002406932503025309122492690076705962342923287823469848310688065953079434856310885389512985199496838273983303667782821604039872636721461432573568913967512451234377864739317208073648800169720290422554497582312338589216903878228699456693093796155512394514780453668911887306839804938584182734507660802422482890278618087849771647070693701835115325751652193082875402215311133287709151162412299988536353319217489252771818423037277026117930888717070415780440178391157678025728375169516166047418382188300248507984604745891381546653872677663283122531240293276316631408046508557583632882484254902823919861838096838018034337067764396361092690692258635716617063974086941127302857559885061417441634457026682111517545193114053155027873200759077665162415797708561711028394161116995419006742436418821990697322624357123859133443172786078052907438741655517518899016332163585992568605643740911680871525053891643753780600714956829911117542113296649494945580058054148858395008962593371518890209864371661516422420161445119195473060418591055084216184089693514851552220017227773272275505585384276805355865811953291231355876761773420672381519636410329101641863300966631968916745748493859023963717841711657330721282717768823186242686596971927237210064790196067480925143024542913757066869493109664685809188284336169508130200486729193038106805046615817888464052178474128054115006889955869209123194801860454310631687154023667491079588207851777323870542230861628365143937922510349189096018060289656685751121316934457943090777047517006704453276802227033742866309139919102756924877980828627314905400709538981597416613709636259226985917345037826058544656390740036592873551914854668472418008159435576530806387592488673745737342521427835176579190442446852241379510561148490720369248973655315706084180114046164807262585075709648797714731082824169135218535676862071913332417063465228136366257103770985124559634185015871678549405256336786161704580109451490613500683385181666375242308797352102448639794154825041994770714056931757146309662775370488047907941222704237184543787531202637002557862521693904519916774193033880225959849846567865110790331451434774879954747274415783198816333401784981100707765564782575636523174741661668012198449931056057271179789290705001441422916026466237738467005516449865064939458369198373976959923299904300445275258758428212183861243840730509777891744863483700257950711279185327989920176052440313844373443138952366083154272622430581495012144924545346379326466158398097756709250592541169679652261115831099452306408554637132197955363886035157059766967823025811316407325295089767662620500323010118090130817322268720189602988175333227493763193071038049336914139814830849712057126632457317947424671055307153281550787928284032431651731671558761576975256715340166647309213602871979172623291619248496392880017890528128729539947905704399625093063564238321907530414493661804951529210225708600729848889989078300550806593218911874426975317551288739894728682320011523449711388206277827632191336006709181212586637421921198757922023546264796551482066894224719164383806863606817309538903681629941384540442726165760847842712691204946061005109747684640945815252605475931914484615295831460768299649210573208027311063090930228426465067208347272307453609475207872679825888961446786278236771562585213695495043971197001547353824644577613126346044327072131044642210851098060341648269956865433692046536853491050373940669106324024107560375971777451928052725674892551838876736287773288770033289141971408215570599432818716395675070323806863117625166098777433842739155722552723079408749835834413873652535459909047662892705327259603050460112958725178675000465510651931705212684415921489463620853615294333299527617347394085478622181404904437413983903331709627557298694627124257659057859543955778120944342964372342770777566296556964932290534391761061831607719684543317728349043886526884005445402238212009896583833974587461191656731511707914006052679338871962700415501702459593472785657011987701828570412742439033917503511521053619764216994223185522861946835394458606584152761238131202971340614584680474273020338921594179240993030466924657833047530014929645303721236470007841237430168987977831867719319060819557181734373985539224086495566716846626661102639470251593180838892611069168167246801589126441039407454291781482895263062911563380075689527252770360706681925844889238721191094201585432675262708709602213016999393876180259624319283181911780538114801017247385710697222719635534298006102872674176826813937551283051538566662370620027634856155476341993838677241518854513687709861661030550598801475297338378523949653260551171251678164283164991394227725735271902482818895125992157080423980589144973015172015341122011950229518942721768692566031124804571634278677584290979097286011544677365475624885235630551042293351041802776073398545762364094724580554335937186906094807015478766550662823810976263673085627613082669192240607568669096451018427591950181993685348140136584794304551830483569795172859005041111433773818117348478110262602828318059825411231463117254783865258820038244327020463684486393975378001308977651938661674934007403433393871389553779360792638429667100647345179679471757042201263189075398604696705919686073969307665708604034631842438326174488472781300454080388125143220571816413205781100032857310469095141157852814723169333779023757544728445724635744773130354299177164327417868913366262883993699745471859536783379320559549025041117401154597642960126567670349664405707199194552869238496731607266085880862571740167419236224402885813635157289068622124828644815858903135648464150763773085512213343710716114422098843955999012995957838589882669724438442333035082165159593661053551005733869008147186333933402241782777185131899147828822605965769171638999536713809185565054781948732180158967893901229785984290714394885724998320080154033029850086128959193067399425835287504024865363748177402889659287812359485279986580809870605626815390353386273984381605183014919912517312071834815189605246287254139683602175342425851313822171602096407388078446880778937710953505515306242720673507509843102651461972104491867428387953042478562414357471129102203042626417508674183818267963922772079706507190234252156135738965871372546311616421021472659757687840934443824460715477690366193946587638424960574989020879389098680434136404832634468321774695492659882122021283174305147062165046653369596767609312478213556156737406231553922221939515080010963918280187299179902383969673168469015965593073801783913399041003548535549722561705375661148369988769482576215947017276258809109496345999906839973081491530468366242955421838713484158840874348679679571989494706407941813048834190100282635983872887454983834414109029229241822039594851645631930245769599216831643073435419804882150011423251079777220904730836563673527604624637877299609966095658533431012406093548992757072988737670438201283015582316850515448520567764795401970416744572179093271013185694671902285935664402777551209337640040778152876140911788332859569334734713570003106725643148672457377436848350527826697554120684168737926330810475675079321921267417384752479460122684903396881525419978933831748899978755598032838287464092503368573369711960623315272990893818848408691739835019656942193540686065277422548220691621801049272148049012796870090910809960151815138044035261802144932158623106165558179440278371944091539732453841077700737767627274083304916368456601899216486451624849367861384673893847833700058084034805319465698651382626875981484506870774086521621342161703939510030591180864286694804585897068515320852396443857781155335449285852534035133776038133465777632233556942886369241670741520056891299418300522236982599277100217479143267338752431653709877045438185577992177335919308933865909374475452584350891987495584594434954461558149435711917318455149187370315292820412424878362387224708880535908858332917805626344577059718248008957594995142197389074243883147579485023444080219406458605132668009998096267258588153222849197574498395524044723996376866716928971489680456081593508927855797882806151481956623952163313770665354066517463364976106698925212431609746132775180768653682445354832386196563199610586508829708747123520817809385926929726807317439365847574369537897423068028635527555434275828355285581381542946684957559834821931931754855834526754447863000225265267423908160294117976684490719865175068762995729058712681439181722749368689557321246211117919228065340860468039369754157665520137436595423778128953900346239431577729154504575729429835217963372734525817174702942860328386207824743645133027403812645675195506879873517721064693573303473940594696458960353557818452081539845945482460781513602331497225201338788931457906798059940629860494281035151541460584340615945589709354662167779467880772187402468124076620634058528169082775721420014627742293145100563006309987573289325897827844968641324323499669667387066585221271512619460533486470235262146520616848536440941183908452136642330106948379308623453927822843994267523924663653667805571691129834464573000112482494064603966268657151262645217980435521098223400507081455070691317718566444116957600495209449692099030683309213624314187401753608664870350402590804117370232682818536631979918732163983017640351652753036401554478672719542516279797450595240247136811093178362793750188095240592478586633731290454962878832967413874714877940563795540169147273718216946200668967299712450854670702098695533146717470556375257605297194763317122795921426985925542020000926425284924793088633611940635767452936419993200508956616026078506982951595225654173192491740396477412661248645339559445938699150594593504982328069896811384902883052909033184684042158290843784262832059816260797840450327665004367798675652123914944020217227901642478887355645162563791835910547137984004272000980508977566444316358102820724668071917539469668533246201971888528434674289259332477921773054591926082105427082237723013676258785881431792579123633776591297258740146309734195244272856451803967422029862656204132051799181931719747338139371169923273145610942029042393758264759390102004985425167175801036829339561975824604966993652526892126133381993074617148162537609003503033383765424490982990251589376841636144873594451749171404532090337388093677631627216194066130071256461611615951873341779505175652955098671779280703462735745302396186676488029295988332851493037478551827566961482918643032811796691624991194393837925236366610187556968401703897786247531465978869266567016371455828710318253779067073641384716507114080291200641890522999100067251070129446493621586624331450410543951619792902814789672097969582000665485415000536178577374092862052077121280700048585852101064330212116710601675217607494876625352880418457665494825624203487044682516508432346592683820809094420055730781528954207120206334636645184278578296408041826718438010945814754043844496669072323622056820427430431708604645183656937615930315129254017747864020382940684474471614464066967534312751432109149826550909618662345151031902895242313031726447695603487698426822722486476223851365476584077552398370016881972823481640826406197046722774595868682411808572792833019037127106823949135251183212679041655294223103905161133717209300324596877143027062962568770856950581192463717139773031342302303813053269764015749071733872960675011968242101419066495209734276695013390681753321513719353614252815415606811319492420535013065126721524317253009488344836990516304601346447502928845712451074238256430590056559235037413241802083566285852659217612160690414860523417788496306115214007241420384175829074887495473871052116597092052160617347081257441252712118634857204583938817914717791666844896310052285294288729541581300892848334480628518066504429169532483143972032905523618924291799534401707345239073498596493485112153530865899210688139404320217389493682016128206151041939230808236562208229709960615551746377528354870070385858733819686517538590974856560744203083844227894916341124279552618122280854804223408134449715990855443406216514710649061159387742839828839537968094582368665112752146277147316707981760900404289344075680707269044101157993094194107774171872839355088719855580785316241761666018644947092449278656185780797069256809014831786194464761212574812699586915471543157203772835843657495128959780282734387626507912321055469107447782877323288655351334995472704743420277291110169817869570440498064433381961702868671861636485392460096212345974648233091736254042902099485605518516241743917778675720701603104421480005315318917851950540287310454856001801598133168600939015502382147669820245478319501357813841957015122760421366486593569680135702429618948897450796488732768394005729578758880029623148568046242780694650339450686511206025476760547833108723143170574600222681099197330688911715083974201852114840640014509875370826196064462180628110120673361652089849107582581051429414078457632714546534995682637474659222765450641468919241101469039902184330910493534083141343512862693403098442940366117010897705445044302952249423309154523833472303655067873568003773404260822849180221290238738123112752795286861381140811264097955125934137203571978314822737547495868105758847910067178718467198516598093532505753002302314593902660703056380387139205278300202908413533753964724701045398505788452199988587988399179592758600728667567136412546794170968069132726584278060506387280390744023861529523004828192269010017921846688717682437453476632177651170051236412026622436132380131048598092901116333361702792631371000566237872117299116683307535964749896942887207912377807761663851961699535773271826289466156498334585778875891025474147002416249728324563908016072454422248852633676705687008297936007267274421071327735128868653362193290425939013075810424985440833027298785994959127129992151519346728125453057518733159975299546859118160848315972224080926249166659993934847555985054109886059931402452397053351159989044283957406758398762018844483295294535331992588055705703957782692798103270337939852456221785244460032591675106175043089199284234755626458159128283218783009440838489345882640236058045783683189368201548231372291220455405241238749795515227564750200338058149480553264631853586561852510453078650427206927126505888849520840187657356403448918783159252104364833894021572284248224746653518679321173605503572399233997042625740466081685808604549686202716511922743020158684668630038170110153544827894336791643969571661451166099372016493429945346936059591070174623723025817242513500365131339789514675486915405395619769484497229726729977568672383276840686678165397862304549609116030200107370700336397246010336247333576568231888619318471260492672250993564504796725997464999747233573282121592577879968842185043381839648129132137011677205531071892788216060898910242875013870520604060009743581742503537950520543580155163134912220456250052466962607746894111918619984265115564801757662984568421170394104589010409941759023270045690233034723803796382107475842834233319332933345354885808352738703552955803182885064174246051907636317161282251140956062049736507768763199806777981772656081280103519944810064549070701469462024449512591255528130148134276166998397651495550730602790560470189854900133674495358108981025414036592781869386367530159566652724999255154295082651794251242757349760980723569991228113594254143949221387220814837891374692352548095380872612683397276544052074255931812193345479885137082606045349253776115968838656867340686956731205198570759518766265003058023560533374940377006497644008575036772012452468220670887632673703240025608290612839632225829658835865351312327996756493363575211039781425416331858276487832133916958694141908736738055404595682327294321796321039514349021483525164887261922941333407564391468338367233489038229610826318458793587294977268970653626443727332852110537975971532427775967247952873915607704491884188869579111756821877355852152180880899861807668058088428307137936987119924605081938168112727472928425799114585950540555877952738800373196861723795097050635986251858726047750048848745793977137545095940567169729057289521600295464104045230138384603134654884203086867197201729120117192240737605085268486052761635702425902299433407858900540164035686930539600744088397813669240109496319740564337834260537768678964680293799516731128245868568847554959416810668310063940590411621195420323087675644384437349095873445715979566897106399158226246548088252348075662412170848414082462650860671566248650760613195027578901281779614171193351522959926893329902189423179997273114354411227150447101718056497980934391132659289764102423838486507172390288377327652340021252634926921322504713438159114283551860103361591383339956925538772475984137140242570706430238150206662654025110727988367440872826997514297370427307400166750389250398541441706907409441298812065407867081552476679728139707554681378559052437084229664174808335858031581504921450726999421685399850794531340066942808488114454115934049899717451803651192429958698001631550120955585188247571520475639279630532177808617689381513102664344027729247732569451879957871872207882828249330598214378805618500214122834710209321601976419518732536062052645111551118828982172465579644889368098758741013902590493058351768005717950695614548322818106351788328136516999712275450941735679064473575368734418036585539139958606359041180489308683616943976439937036805667718532595447492185434997849599300610058633587501243787815065259286261277492490992292449617667793076095606698195034726863785380125521843761961061983801561393490323320587734353648516216476289972516353273438971800031907871338267581579532312635732333822439014659332063186126463080690279563048340424972692105759691066300475144028671743306665677728641512672942873168204998062243183534833701117369319149368037031650780491020861218000060962290274403257573247165263273766393852679497415614380517962052455416981711838425785653491614749229791346942684055786943186896816642854994607678672075530804269100376512287244650927837116564856145994374687123288747008835511536727574577302816306191990688750276202872609463931441333580137380539370313000146598822892786596697953135480187796308118516631008251015635827146708333492901387357571423311309549202782148786048320851386837174818779928178785487350776772183523983802974250117463372896820036039628502759727414233641927495898710990414383070122830272094758741735698335054834721368169066359570914387883647561563116151482858932421198131338720589617255353652901021518324758124109616627238284284894625706176600603645857739173235990762479344565122244196703463725352487810741459134381394516373101836578644870984808073071074677772213745453560298815779002776943153636248802063884445691192888057722338693812175756908821788238906590504424261164973323180892426414544987554260344996048016257039547441030048707531935054182540489597609240639772357527351534941879268374433373243645688556480910128245792290101371579392978980179926048853539966830482895199681803727717676575024571661313747126767553001409007073209480930689057672563148559189192685479950925437069129125132998764094586758728751473672846166256846960182142639768337689137857020027016714135819213552313307485254674073722125749056397045280848220418773144065255782754155587826112892159323712954383601245336871719184930775401282981683298350921173719551093723608403324585331696279264662622980459114710929080329325296940003548867463596866765223437783076571152003176128175274723642737281223609185150246457189666842028151453929964314734990069894470235987414361213366929882767367642591244695157840002376922250007933452286064227088561673251695251700855189274252240160612376224299689634360383632033365883422224697976213859883992490631573438327080135300342274644611111917422343615013366072069139570118211349354229482259859921564170672632159323200765926007485493159367459035674770065030569263488985935819322451626167174516186850224619272477446889464321848606988018260259323946431425729110612455096077475840195418977710281433584307635490813893183899532828422170975172853568219969874534760677146435571715449343156541995027505142357940251446848921431657340679307102238074855884760608059000073817284904710859011588339438081009640331660360892571707917823034761345548061045049638531177143875294147339882704546254782119709368349793163944255199331997650685750698915143317850744491305443295499466255011356940439772912946072763194696487359714514503126312836169223516807249686773092695812731049323198101110608516502235936407349629012639930661554425306853261151004092966819285859693645451855340552032344443187790361975403858033760195378680244350326416088774066248184433568266253027613199716763049881659407636063349412656086247507214055863320992725064432294377055900418146765545986395153750840762290742352734161596877299750808458225692516579504630385431358586236530680401698794780204877692648802805943519865012372462354209317979834137568988418861589717650449314053504465125026531026430648074916227890146392921077687180310708402992166145163409812905631405535093234900427340651400560289982893001238243071144177910202811995191201752289377120509503221801159065044221931010930767177570385637772637235026122165403873190859259276588919952396475241545123338532620982959729630452440984098847117115728039721673282154323808694984173247543397844454190204824812290175027496834920918395227956430238580335795241237507030982042177583292848262848431990334672471362477915662638987348554782293537638980292903573627958107686995833657396448811068114887089924737668453225492326114937795252028927227853386275108624066730210772014705583366800874768778748734311943879820582603446500325042337872086069028558232397726426645888969585573956779006425180487421656477298294790740045241191592855875470984554351342090972673084767490472398837395245572639933821007136889718814022981823016519567250462724404108210113604006764898530548736854570811859576156777020383531785932710362697511942250027550117583371739494021995160684373715772145041411067858539872383319632975758065528484410239254826371823645623768536064068574340627307776483518924398593205460102300807951932281530388511459205081453992576457544965749944458605600664016675737638870989998058226627608292023166332404758486823354303635100306915357971481128629167999060221173390962885734712123879541597611382659266548898736193177258377453240070152198680600150938101926165965861406162483733336421643798531134241684727820647047150019387146006590616571147524481167199852574651372669731793492489933203719043744491243999439992944121994416329148206097836732761571929653179766076607298999395462545994906027519847689944156503315128057631449427962737652445803971305855818305583280186905873822172078305365434995857869975501221005990520469521528140393608175924146734448102474954173922690017655908918344584095099406089883004427718621253969633489821327613366952670446920647740338598848776791827990287617535889559653485925316471491419548829816734904937028419493913159637398735260614708295574905901212436977050730834378248436516465454365786298988539981551009086738703998948355418393673504759110856197659472426491432206249605876272041114218484153978221100470699382206381632451268630234105074491777338574556712519956216010104536446149997150413838108126208346525481612400348823619883378668287171081645038876910513821791284521554721838838966051242799790706058429053065258327423961253910183247218916326972159866674605975737753478323310509723850884014531637512978031144047470623552621728548501264458982704722389211573798168577010479076382886118351439101476103323660411274621846398096092338134042665401980097538386630390679168226423072539337630412332284317401269872910338726129002539574105364519525462528737568986515962449611897700626918783049882273351002491988351803061890037283370893588021282681696767211980292689399278578483236087420871102928905892889834934827585373039635884210964581815394147986252123889803164537630770463175080149397986772153639165252051826117687021808127707283266728043778645669452359593577707318521323432903818335973220988155981742512966428337045204933320828508154233990280053298185961412170823205681951500711705246509736886749246357294334827245483978129490070977761520208898501055755176965616554551089161490183419865166467578788459794733570663097351834393462698670880849755215030396802251184406623169165035640283087935498123277267196231783948883245253723707676680904581905374618455386070888188760814384998549738698166335716671452161633586644597732853448471066502473736599965491804187369991397276094344293265874211064197392192678974207993486495558819926087007078398606406649050405727234040894384580968651396392441906136791124659059184251903453937785229082913038338592959566639021433675605502194009371071342355980113594615107999729254516810634925144817882390794805149681161804895279757581300910297755678295485148595826077250434332620735126717456170169782129284007912393182964441264129175490423224727251419400297539259918524216787740988584411140965250448728001700374943213085185678570944238938103189185370807867577450518478743252639380964051694143509960202902390186114889026147088179819756399480979129750880670070748548069282497203806537413383799760903998511133349029762849919033578090848068680219068843036239243332684194044278382981740219257043174995857192309270317056233364251483544347434389559913110082845023157241973286305963777922496429528333405526738894070386746844796827430931972767283015359743363709958343561316107036046038729640896445803266399464791517001760802982565198526557012177581344891888272287709949152114713150694523159079362008065551848979496552910196523865876979559677757964395787569924119884955172601548734728693334599240747128862343439807792623016915510212765855936892679577317213299562238366606465241054609230940744430134275911468238982992247416206940670999491962583391710194320209029182271570610000899662600739825874397748472370429972216995873686155791078789794366857996330087269525368866879264156246564736878103460634577666102182909344734117686995740893054946706042134816531642110971331112286718598790484558604742347735689509979608158736799512869742728559426604427454404754233180560595227695570879938853240022977066435276690762312174576513854216380239864761108918006858340498551431307358064778828790421736346196837608499525090038628296395295879486618915857116370862778055521063559022908554048913286068108872806378133104872625331288920084494511821177714566096078917551947882089502958744736200319691073761737986681058588356005713176805810733785940835152225863517260662280895357365671323318859539176870428155845276517844734961939132584098693682861849239317676546674461859474818390515497845910393744015294619282177869348965177574123069728212473940639917843408811442355441007556689781514509024414172094069927467177254188775414646436317315084740552055911172944979886745010912828547514349551037294203954471611579779429765078270731066441230774984564383766291691933631669851957520367632298274710189848927088205317900107542862789194361205436610859304499117815687185291406422714348659964919793762045486880595664819153103584399278518471594886024952226680922644464280408395380225236745384525306207540203595696615702517444515473872646180613746090309135233089555009444008255950189129281852172382385838207895537912656831100987669154582740588194239361645653668208914863535590280748495628481038884030447273330650957017633844620811329932971298949829508804875729535652447141628285375423159989535337950534944295948448307298963096072451271864770722120942402098764113897350621591327890812074617230353117388595272065884206050000099717269589613273269468363119296920880333566155725861926983119410023689779546978419256163182478712933795443511012790147046302078769495701947749512401141800615376545291873725383333337607382306191007810496439966509356602855442037513304507414097665300825301255955152507769504035130651874573931033495197335997704957566448303485067908712817742832339603165208406551484878595946225488695896822822756756841925326853881244372480474597173398659959191961816278039770137985315347903574494878899508661457914658138375383581273414284675561984070026578172293831543169345771225805779534806534919285591220907875760804454503184487181637133195315265610355618140777810852386594059460711809851577139978434133887460793652817910690681500437882840072770094171665917704472398129994727901335104923615391298232396207277138327046501669017369488599500884251131787442358136320823465834510024810860249474001714032187096948842513429041651927038688998591947306201208191884747440135448313315114929433089969588170329237879370550185045650359413650385771609882739735459702198705349748813064782605948092240804063389083566826899494979309313592767236159768384637768871888618880605581120722333294657222252125690220969539505229278852551835258003096288990741706335399880668320674488414818262551069783411788923053180033408612391330102209476218999586998332928111423738672849467335295943703824253342621640169702193324581747970465059111881507329968190322115263971278138615280277675088166478784992651949963620435612330406436005255718306683167177195033505238712078754789012464565373767011842200727615472626482112315317476907560192655375438736702503333072834017345641408667833969494016162536935564965795829680076831908933324743657862189617667169115777115232222536206545638440525261788076554193994954951340770120373118910125714813060841718565657890128392388996654824835719411736078444191423832989978955177824057717512873146442503795237623964762126228992474648395653204062590517421840191949487540137563308760177584155579164972957184956689250623198775225373062410268560202881901646169769506157906919750551187956569271229016476025880357657083581509645416132863018062477043877508586171300477859722247571276117280800669707795872190341725781125540843400142231065267480069481595839467475121945623969420045090020971537775280440542090023517313924035579324695800106513734350077542089979190258857784353593599985898829901197003880866156664401143087372293057584605884596133184488565755638049153324987070122060529938201807904866382110922600839696606831988793188081016812741127838037667807411447652634234434949204700662002428490556939387081410595905217451704555769052703758411377036673411322476625331639483687720635784920036019817206237982796273400438858473739542179563101600735452352448106360603877355572732121860819422214705509695276943817801553418111018091682179668783676186948873298285048672559694842683595866767918782696807155584268573091467557300303628329708556724100302165716749347535308967640558463405276738207559593186433365762153217489207237124345683873216751499992187619295465859192360216463940214945973369227726659767268886624623690946732430610776298992046174389126067703887061962673732860184064689514343337108707383732320829391561086342190252973077837207471422472827955255527804578666350711592604442767912149795652433076352006924561716062010009278229397982100924016762865281211056141197308474034201221676942059238902273151302834462642424560004274204626347059092371706228499046954411493435472621085778521171398355596364942342597905457277460940852141427561799523216332666570205624489114145110469936075681887257371722258771729874287043430546059535424162028382944412795608742074701142727097344970020709844544373989955159479186742985532154838047212218509612430106158525429579432969997388751515362462502699007745001466399436286437734556226457613217175034541086121062347071277380298411109147975029638202818604134322104785462375475960229676449891534853113424867207663770747173528094430149519313217061669717276798522414715338691344729820973018004021778858543982589919175367725192119422498358306878211102208335956151096678132542820994997192617665931734971656664043376247713572397852329706833371137188629357300348121078098167355543992812531442463424928141362931790525079372688919387797027497634421880625366296998394701846149053467721874503342679166573250933284714391736280470535887707731379086491352715679260684407418479003861174676282900898889830402500008762401162289095339872892329986717618025498052979769619025313578855330102396593426016305854491414097653683034839349561648047430229976716479532713925976605297007142898948454918438222651775443509812990355041966422337208041236716192953327897436833737101122155276237173626128564814529624340965600491601933135317564705949817876308066165166851839214314235368197655541540836235334261719390924822340930318860899737497871579677459753992775090987695979526771421422200479238541037180347802523528243409586693446522555125287171560199367937851579331613377528917476136425855390398838490285778709120358604077973609760139341478025677432275887027277625461083570701217239994096559271421648367579106930584737258464267155513434924989894846553830614346816110326033047137011711722335661850327760741799901825228363406935778174235839177455906680794870619553295469763433352966228689829622619459787705428784375853658485972026282331397677950696256372924468323001390675976941911746399198908359844118786365007572029414481808865247524563763457339428286866895662926118399867413816336698107070103933329919049207393337548347654059025237983425834031267644473956280813448050310285585423988605628380103242590059846628419351912099599673279415289450164204662646655364377567024720026823474327037738070287013850753068718163420034907110982429636795654524751307016098291515898355960107381540010770935669551262586549366368814454975559340466473386393248419760147521895831231761762758614240003868063619743523475739545298091572558806282791648121709759612359378818413639154964261595444539160270452721322961440140992645052724701743761986399433207858199882316921888671119064715909589684172383061981786653422163977459752524023749812884935041146463105788850316218046212205483553742501560086504562797324412475297769902947722524476547631075829894431908932987603262805106146102378064520204445038283463506847458333680949354059757126820254377688542476335226439979401153203544636113734796823433827906765167944420109380217420470229820521680352257089983071747913189046575233721471665830116361529323681744080479522439330399285169154832649739541187099211114110548777360579521436683579740480301857771350344252714795150354792286505937695600204975605263964456649102601022023172032954989923918409184504677740930300132435746103144705346434869726077965997441101199066303017827074106626013990455625779087756339880626036582377334615951693057303407790662345608952281268481818521257888663759783401598120376738092412143493691865042576423821757427789824823014563443564397305513466224729910559771368048630206718791944302024208191570356480413447071952545206089491496091951799119924377760540507475331286907097023558126392477609736030366109859731180377566825434425832106202380865398783181178536682928426336677327977241616216421366488403515462492377417221615281290415960962353752497080672287919622626638609298307518008896997929277974815619992222230756077674404869003604404211247257030278440163734484571599580659229851489225826555574465805016637317717107833393966126240664822325082017670563277881669814520098046272837498856192979045116486767190713531760550047298155765205498284059641064674630364201967078476504009264831671176507544644615442869926018846829118867922963497208714988152484290244573691858156921429971687204498470684584770401794371129354845162241575232921654510232935165822412079561865571961763037025011836152259419169623308755971928391683803391131876844953869942531294546927434689470737369185161452007738216332942326472666995771989960675169750174320140372215682636683211555787863017232356004797825477674236822405370720140333202441367512235918162095614808642801255865461573643458612074757146414830846027576308894197861985626069180070674936634948498140754365947208143405570040880754728188220578329068223174454809604015414823416019567470932664760279428605924133433476847337976246966413044739453639891910148541065522629497433011359228721921133300539592641134573456259767372145348012172729237142330654866178850120426690945426734856839223176663003010196430420883270389175527495303734033798194589903072597045734836725830939792085604806704012070971682861024092600039807873407070430315416309008499075606195830936378465443691974978973786733375685117857810326822092420659543547626204431540739355059225998346044765835457642737237848588782844462125327347819023641940375099279656311697265969681809429862464940252235958380529926437030061316154691285412609748188818275659750131387229890196703919109129866120945465536534292542020269707407412877947471495830130510711955379269402740436399306529847244368037720328835165530241472786732860295951689171210870700383521667425143729147478907499923587024974260554020164799035939197956230482273851174244006814443643462337814599094988415331761152361981144333779958466391866578480063529242998710014205366435785598279961623492255716271555392343603258952676052327156890525869797002962293742586355078692935600904525644141557484655516692912970863612304836259635766847088451195816333298131825437363939129975039102432225197969708189782965496698169659864541351304949775166864934727579184295090585967673743351947406491182691809523697599224086818530202367236368254629620463857977850616797700400523685328759737119588737162592572984539290792423845102026972437548208520422921935879019895620695455733707987874374716829370415774309286500070665275435198170914692130276393263474783335909575944338604764349584644283753913921263616391772082678675571022550306150830607253706425652774687495198363851783851579141642345535094435338292638815666748943568936948412130856828135177188148056966367310140877468479613771107420838314552525182695701897417450120629586431485434930926134567885460747422531720169462918462783971294261095166744520615674522522791528645321032168587422885062397255417756177935468598993321837412964452130059116196220848567599352000955995410729654980988352383991287329264518694464145810330819846142296376677902258343423259244175613280832896524582114440650821835011384952498918612998394395897727398495405279383571710464758305582812630505585247778878507764718713313287064000278984658624422961537014728506671606340100984312142568658522624446430584220131095088865822620050665672742191464691035524673097901146112816699975578454732283032902323827414365951055276312454080445431131975072363884900996132591869537045714057867832041448968546163150452153737363659063686637957022087543892561673068010492929237872038925290772601338712173497879212351825808733302899444477349081313381399748153823220535676638927328908465265716413141653147754624830670226018200179145101564062581032122006140263054115000710309448348838099545602452726686027466536646511115444568009970691038237543421089975135088048115762001349665392486984633639783093604004870309042167712277507115829564298440153812717108568213609446133315863222088535334560176962686745412401294585459707500758142367028234554867760433084592781113726691915049992221494966194671208674281425835603555718170980152882433924470882722922721836169119123255807698386319391403687413038149738266215717458454637886492041487881196415245998574708173677897128353731511660663746977295814363186558021371388702368055692749760726468096392093587077498064172338175947495224369673612550215523714588479264963309463383719288133400151389440482186125120176519277699933385409216513816821769638808334067172880329265169600487001023928158210251427691277251565914453376784766296205379079859857920775556191006651363550724347649017974319405709047922854519664240328107548609210611851030437342826106263040818361425384442381827153756412412069301548762495498158127957283136399289127794857574228811353343035415963515929909611820817689403209338984523064153170033278431629209079868963716132812589182120003778047450586342510930843897549202758762009963566294565515557472312531199968072169449100160129863716927882830456320759292463756808284738263283816189723862724269383612652963038733945077690647990180002507929365676456291291510228253813184474678563956259006168948160548529440152613556763459016778327141447259673156206367834181523744154435608331531728967127074147283656950646123774433178078863222110499116544378367450771156826422941657185848901042421093293383715507035007102280503368021854978978868104840260723058198208903091245267695924968462412194767054848494704585146518861447073951250807124520193777743619657633649185858165484555878477062540020435633685692456934815056827235411142487801253525961771457934220810819120009465047043050352024005560711891913348329322500260518465712183963949672818920164072321222557952944208592140401872452662209974801071727612829349944767262791998770303928449862307044323803290332449272326604725987757277818613353580008755043211360772459276219935511492444647398221213049548836120923055076269594773045781279422089068147547405041481680727791129933069356114865120888575679339477658407367048543171921251206537316290542002172924438849209346411408999577100423999879759511703664477793572700731286469321891584298314228578195352804494081733804009911643506117038010380120361337169229216043972737974248201590463865205326290915611568521485186959032161856670247469844400646974172141841544984075154557472028233709796657326317730125329346204080418892666186171853399130715111337298232379790439341483545001643908052065333282238361338330178537161549599604083530250914087851553222902854526299303524384021331343077193543096916083176851770086971212242044869205425631618335846745533461661151452837883492182810098003504557809467496847300392293750548136985478193861828762278902653508671455559492858968647652002003703462376256630099339588771171348960215500798570066724214015331366207283924893653379838451445030482546935745069277515853611715453227282053775746499747879489822082490408634137304331722293596906646363743429762670881853158666356415035344796539213717691416718819016147052431893328380190544561385177462860417542712148945192134474920304978311413605854482167578590166417097090183442156438988271556941702846644996954808667603490986732009927974045473692604522158763445645759071500120982560389140186467077050638056315998225002618897079630678308732631520753871612198355520558359981727381858485227479512531652756101176291183118144231997456902472028997211046246490166896737307839142272658147276081322792569689541062089471630429169478457452270725363854387750219847145158407472947039861634725631878336423121197760417853808150943116677841142721414809520917412696287088398086320986986117014674867186894459496746798760669707353288022139226158862326392579086094937827465034470409395421934935423959725991695087004647039257203035859549063311149129009792348656062224900203982199804360880906764247492463572032050512691643403409397829541936680495840485472730091302965218877673630767853268210418140273564359239509439518856118729929488392902450871256038894457061342586341410504307040158535965131657672958336008462019981700421641983407969504473201778790815443983225884110815492600536137150127550918034013458052322338686233217013208698730098796444613039504136183803125759925510670316659618414099514893908656404684888782520843708308766525985137190209383303260767651010062647652575842322950155414830097020774938277260130832904083646829920423570959117135925518765360490507645705753143408425535818192067265877152495038070584927508321244719134042489919947273354874221836386950186640296287790255945167240665788628699052730575613395127978214723351559038416873299954409047301040987801578329898214568426198302398324301998894311329020283217004020929485769696356706878493622895465361879032033449927785730805895573958727388215680277211032158373264571148484430160560792760256401778789867609955426899249218959467226156823199140714729433419274073934978552348192946434521415416102667619010521768277257267161805801780367019721750099928179003288193240367353190683420196963740268512903031564333564601591595398020509314477395062038426989846499960563287371250401609820424816169317447371423757774888565644511194121250616463298708667563370708237050681956635538815162348564787457637236221680146594291953090532704438361209941322880338963570169881952301592807466922469891095608222401992837347489731815235320112348304870595882715518601043002699555712488553343185986888902869944844607725799423829184525219571247091192017325457712880723039475368127376013720270400228348900441093318453746595714440532208947304927095353100372569331858697205009441378813954087965166547148129729033511732469888555337981432246432134490924919297521990952918551879617854538718054748072910245478871427366712787392251595080287599801189666753016066211062130887796523680437796331560152774795427560904308145178777157047408892168963169661782653095608287407129517832987959168783357971241310490414657485661855928612254246817632651428909596725860180977624332979870206578254425599534907129454852511196894931637820782824486334673786345196063420999201076876760177071882247183173809211083810898760696876432857704080345191553535958185559390266288899597638873116492700442439041146371911980317970498381806590109596871105741376692986240645804326520917548867614534599714043973830178913227965260115393378384055006668682114277444286995357075674264350469634806565344513758434292734606770618873258157361594883037008695367161182840305490853649494845590183621956901900579684673428584756568042336778533479012084578518828540055849402365547964043200304186392541832188398530877203095351857866422181321391705081294709853521198426067711111110448787159449133756405962449638421953904810972303069387757243657431183051043592446828561194833885988030471339599373195245579715265187333375798396624523535396671534075731398203867362707243692543764022615966611604636356589137628563185937209675264128151666029066578765539619773961356349760759451671914545985136428587555818937425459040036212583922443960430057772496131557217554699715438815624952243028820216193420780061302874924362346345126000024447654020810450917020637985665096726263703623278026105839703719697749636641816813298517067203412164255705211094348757911298760907974539111987721063459154932293812907184268303907776245721207636667865255825886264146360079339654677933616554567159992257702208407329166086348481301249512209190472072339020578835367175517729002509389649986772381127273925139005616844697405345576133165645537258680669831479225392201853414794079876959241684347119882588604030624633418153517141335760389552825074086879449891062677874881414930173716525251375209360135365557734277830978527779457134383644111191462058480277134931694206688487076652917652716888309496457173891853008896884369593544881688801247327835090809270774976284970918379170121826445209304569153395828052602192617002879568973364741164788578817577400935117919170255481329066384409377558243202728437286439305374355938524716968778686845347297859210235115139748032538956487878340302027896791177394581569345846124730473758837062615787696231524038269153960787315167910443391256797178309353088646927219743216109025174903835675919696309583446065846962733157493156262401953788400718998837001396537704834027399653460888608310394851039068220496782323982296869786504392509105716696273848177202793549202507205730231981704919048670305097212507801189089779295057954343410569361900808034960593782466256691779124271998575194641186202305941452062912885783830971113190749678575838461327082051897129773492274171683851469947538067316225230419261692109709159475500257535022275104045506397339147235587495215380071336156885310802495828038958594982651380139292469562966945505230490718894547228475972143861625727269830593753596704029054222670962164175518228800307070599811366026078679838386365502458018651058573618637611911772913099704696943320775308816624770812264151632915873279454631930805509019537728610115148114098215449041165389338833939086793242775609017640892082884813191361777473384594285676297589115144185398211789134768149908245732517562165780355270632105594869441641474493408985940984731214020215504155161771142626967597904787883431288090346929299257945517674054010878981210903286865981526986857505859697462187151124323738015835826832913354304776364504098309086280914540897182810724432504539967575644109770059449689884318355227423291727156648811859334664225690765558403076941370636106670750937692442539896192808533783745183741718427871532528818786052163456835577543043921322891317399185826489452400484036843463039123827560137933492859433306168974496173818925508585474049086011722640457315817509517434426328353723849385735373978684194041217221678407796804492790917167225221319899956004385474733730366391631282221443920390590800441394188987222632024835087261747074700150473273394438129798734149116800689066308207978264136298480298904482517769168110934577131174526717315190134808856074566435115957597872661713546543863589662215579547267605829916496494188106135439797243375144930958141836866163179703194054664532329665659084361758729178585462464766010106707475876323364875822874464351427101494947972444566941545820035388285881847046360959181110215522654111911525000891544451002138622751878553060744706268509691258888727897890399043742789589213165663324174843828004169734044346387889703661901618937820139858929693050364994346495853019270900241427763950038079001552761769756808778693154474761001598977246985238619929434921570338628719362469618303576973297208652962140297107759715310671230695928809957847888744053164033997376136804298094924838932747831771123906814955911453389366900371157112192104073792900848327389344196313937723495416012897270060646234564399542740490226599983921681158302176757279812052386741788587327966858747118918887780856762904535030401593160896962014498599219621999183897684277903230185480163352233711771820776486346763160318159016954080502434846591183884643085529407742139103224014670474112993053932744163592724451622469668674754898689454832467433641895183035942906475362281588509427209292752544903256277305654703624578000973068144934074531392977426575432829211938352354620181670117240367362517858404187441461954258336618696062133198210667652933213939287359955743717366436585645287166482120732717330702275258266361186921345116260958107914172276405390086231562772854897301056387474154312138452811642729037659896306672309720434685406088335226828692542145173872376440411294902900223061778289868740109136611989337104104446514462191275268933013327795231415852061497243910384081862041048238199912749419230000770928157285359701258376831228463783741659683610512783086823684627808817072626843227273512058404447750369844257145005941660849080771692843024421127888569004595093973704618918489321744516610431767391461331457965516219881860806958251672149821947093147531589221248076528077510950542715247370519658307970403871908924249046783535729219015641694046885589535614616992259517100295556861749592202049406384922687181820001553150581000327707896422099260541496564619661322340274793473794234842003649285787453356989543752741184168111057475459898552624777357122501577309893743363122040029143767932880219591207591829445408192326217301449156388258765009099499310461560177194644120640759027092377204607059553048345667269390355364933058718389204890711486999114137919668900045327135297422411162317824485110337218013506997399063689174059049374273896140469767140668430618484883790917203033652983482499676987041291244768415153839872382832463396195133587841324760898975847460146984687163224468098190394445920315277121283724315818741276102079903990083450465876900030842398960962940598209367316915274822603117223705872583975275331655174687342145541530929407933980587930281288364021418886929285773297232451474274579968372173170684159366113017130039966691631544457456892590822920962075740771010718190237004195054604962787659259734939302906265039608679534841045910877225963977941187059850255757700945204570580017367220255896573137323986700126566891450964078838465733484129015253144695205122239067622878958229203939708308634490743710185693693151227686351434343767167222881238882977159604404823742924021886023990167123832634736471869887579709397028419506195810299218254874040272246827988977818941254748977838413062228049977042074048248529822721385926331734612617974960099143269053600058178154269559671494983660739235044099971975407023544516472917196586156374410370186925867889169359739445700978601710356547245593015825840881689746317280062978566143631989089577198022193026891412080505843844797869435114466880333760474485805206514522167682733070346270186579292510074454460309557583773219447150839959456744436723583866219692094268356072440299266328776433534862456453704788270215878287977689163573722856098541461855989711070047568628074266258189060853149330247235907554946171498785511807758613183297941762993083793610560362111397395078890062468734303569489017842341821447083185531189111165300191640437196915017199608721646165549347973549157624924134409462154104768972678536266931757213756556881376737297284323697687061681989675803133605797420078894216453686846934194985351542910577070781484465986985568048984821954795082016578900306233866903742751952867960987553104448742525665891175772788190405160264226853836211677519274448170406844127707692113765558603977114844618560177957219392665432557691341502120857420129157371218965163538118715080676156522836411962049258510706039958895050816301651336074026605716658978180781654334769051754135538494504599349510470751178109217280820899662860218063994012479861229520775411985860669586281610395562278904169047269303902064480154800657310185069872544758534617185303908019169429840406044195005877186726813646715964306323210734385015620861735460605614602527207802306553964144306481126309894489073335697054126359155980465044126225315735911038160576137615218354828556725458676012551909910248260517488350826178358744544443679570474568979346000789585969643583649063571064982246776147324463241515617166854490587729514791292956479820241544493591948113431674735037533903718985892525145106296105253257804672739864546915347175644865738744892647982022932475801781056977264972153897615118053498365145218249346100297907036764050670163245727353496949442984182848261605915529140333980042905363251483897998604715599898477922548678721094323719465083049191329399896833295283460691087225089449686037915022645642256905213527201195940253498244531366327029185343183720741166815977454996154667308431831108456124049819961042589182515154063748600858501767766290721623884539858592309441089263065580643501385031626758560142734292259774142288057037427939911641857008411066471289290797078240865279542161707319685722579725527601786340806315814397172459995460365541577831105379001216816364054233315133126425873517534856329361382728892326764987167226404486943224946820433792798185262263521825507147959741787870793272736830723880781195555703557848897922932931018621563186603669159044432239294601051919842964329894695977137464953257659463684070895554866275109186119163882463041088572925983203959695108414680777394164254310164183154341095009295294685537475475493571040779764844080229886685017698850442591347072848279088014120170378647935500681722483648325623269380473099513752063376936662925571619849111813196125510301849842653504724632631255851565068637750592901960301473449282156033061618078024066536203191068605361220627745486670969172574286327414850461672279465789351742128340333343639518900867944779032653191509886416362012148644087891828025783905307898857017389041095978082597887913795014130354691802620986457530863894401765606981918094789515370108131842193763454561299293895990751285505866078325136676898029395564478872311858890762481067059315967147688027725106262533566613951234031998284318162795010275379073687370039370189011355614898835694681028154283665301239204389871431523397198100414501105015712124503016600074571768303841007019539897607066797930168768504749200205587006594004232687818641218903754891754107887237953879025995851709610484462337091809833515250676835208222807367722251893602861429052758979767403581927761178560097351200115971177102955635881184260345985047419337974165469277175136967001581075929912825465444184832512742590388457409128945992991692974751051351755574584058380139740838845555967140580865078371416058348204042150643938368006792946389424244495783691540585502518719070026843679342192876618902848199186233869442150949874669056072634441492855479078362917095517085762567159137258093941251071662503217079926024309635966893191231968544215718658875460685767137574407539025989655938113802605239790963376704618870385745705743237885058417249352878004757150493976213277749129529478729785248296524823449579479139026782570703580031819492545721703707505697950968797033304744672662377407232662032064392874094437869682368805393921904492457058832151202144742510885722657773431453830722675362016432494257858637173593550544665659464828247824355285571204360992581149717414274545189816668372319403899690798692883936879847062879630939731051845097463776811428936698565061492023381231916430354286668430979123957659297945100369136431596539276147960182716624262435171358344543214950033541000637059056635608497581711773620445891184341500428390821849771854258974239409963797015576469165818915722432990745824378826051525747566401116120449303072058069248158638265584755540751755202104371466009754204060313954779718162206514978548204240292176144344665213745263187679719042910012088306257690635787471261459052999809483522291557708734230330985327001344746959795092756003312221018799206160321608380156016176277236050377559468455363056278044545502698892139306494349649204508860160617565571166717724318569796933101726752849660918964212217244449155785614283144254674509089758007293324460501752655852999481794400173484187835475811897899004044778506207900829044689510737266708790351973008589483165908776618672399855871917292019929610230740666675946407706898783805195870796546000485860330289859268118365573710903874973995709149112053480745828701025050601898372619615824634307112652748143379606731482728525039208526534402830432838569611717616985465513656074691984206940774138803828467737574626742812716469969956847580138329163673574477761565090608259631117033390923121912103823888477739264976944448492034620425524503138337473322761780864629129444953876483486634195420766860838811956736375551190193054143018292871615575383233740258362174073764789919864809985537679484859772333948779472892914198046543816600409935292406569207054690543492057782402433505150725000496465764470755752622124317228134021312256325169481085527840489841782839769371249095661559478463261266882189034510570454717205357529230502254990777341150205193506333769695924355156472148416517791380081457158484687224800694872697620890450211813770993978062279632554573557166287989247883924892591873496735546092517855221477707877831322851351144500892787162360470943657001296276741080792139135811045915477234403969138954926977883824187169993901127880200500624105323026841833476346374113106230462656768950176332436998809198873888558059791715332163287287602745111877412906665611422831926365300052044172201134037658419910550683629293924414670108124111663068473827420885492707811173465669296854809382014459578819001109839733986821472545340506012307342909986645512609567379352109540806795041522704342151210204250336013927871382259843468147006558936857929041758287488023320526655489030573862969697211096911895950120022751271133366721958510975131717240272689882927252525526192308902753611506569652843392256145897280552472735983222514251800448524858127669864317461457735738196568107468908421621830471837727541132336677932966813580042519715472111692919250773407652473371073167637299625286082539573801376554326208475901325256648973706059741268091859011831276484586377239376564961691494200137329475808456592040414841566740475213864759530309935261773522302380767890029408890664127591136133696430377844344991155581381263640356386577353657460167068639349941920182634514376577644218840893046065715719054823542505373571539302784101777005822440125553213999960846522341309919014983070789030753852285479028400697403955020922996491236916448870083296511973832022314261245948692425654114841564577127317517563616655725406308616715420266753019709325965142850102154844986961209072051885914897758062003658046296233723625290529538564503298934132153921964808078677047513301455869199829664582025631024362826590703992272440192890331726407522271995299263936129568410492446015272758143456466124245540369151601008956142560127805997774000443613958332417509967879865538423227186494846309875979942137583021929712668022258470160204465990450296570669501556628005137236566996470491928529470968301517111998747536653286815128256946310962094889628308791806864053088155674774387497588735292853530146428826372177567879442509929442953239240209313423919357041586391983208684762029601447795630608275579789468435309216820943970820928255887337330606771631935245912152645067669097587380704790782517652883680078595213632935077058609669992461713165270236508090466361725104919812604919995154517174909868162917752997503551980406781912388499270139919485161719677242687003374424290273267253907799008174464006979345418730617218019566001108173196964926390404081203452075320317013072626553882421722194378878577371080912056651029374705907566498671535294394643890907411866144010136723901077755316154318458901964873207835479606517100577783326480053430217950015790699270198936554281261046437396074367173646060307400933991060430122931679499208662407742926966247637323913886573440311935659908458398074873757314518720644204095421508524226605572038163580003432851314452348661935151131059383446656158828008172656685711056680232698001504236649723596749732008811429969771862466781515746230858687394104842856510201608262231341488913838171242686355641893319268120338309495004727858047855710518750962113872934341629991220132217998851118507149881579996324151231974098761160279586440603644622051261755321050700823693829986028114239779723952453495943877557904082556083429683993546816340331023223106253702963098425112165575354321866704721830783395004230399078596816220749455114058835805369833903327134740359971108596035186153284862993406564436731208292210142217815041593390172612823224774910853680390422489292786512999840351933857658320096822831495698040321094217572291945726174742593711672211187850933958581950448605450049059578181100358304187500934454078846151468312652135187495850497920734326545356682280155142048383308093391686679837945575239222060394426755943976089156914596582310682770240257586290435582037985453772178786980005894324677226653298481775113612265072786285171030689224501547617629350830700638319846975526712044214913851118085951905012209751312765232283486033973152628412225626567933276530229820010157482363235174641527537403882355422015920578984867901527957517075055146083658010210776358062172028270065313774832044917996213893902823790527916571254490019991041628165048212450115522302064940016033368243296787821657705147776476894496916942440078583632907870375350583906043522235542910829541981614688065248156407118966748857959082539968689339001150332244234437224099200370526108874232975956028696487867134165166746956768264461364273198786563896338454255575053639459104199020713451699319308306183871100267950703988598348424056550365055777973605025582803116981118153321581958572750185620233041227944177601120192288788297960985274402450344844107933031677374662305905570027807191059635646967040339505749319971220496905479522299559091712796242627856665713522765301531675627662251905117878722504428830824964281860947732411592941699890191150677576199993103873023119389283370012185916975594409053341716909297381198304367191447112165586498756507948658108680707725162987001430702174189551106445638415052779964958765379530732942110203251046259232251775942414489794718603491106002749032147619704612637358870832312374984430745322569927119483993186435666018962039424524130598811946640364801056292800497391969737378897051398381068747684482288434435563064828713686179512611076798136844078007505153331109431677090972215274224835358918615922336446654746916441765442578661447359024108908735231763011723946130638773534976764788963387182529737374440016059942794828164002175168442917584213108829818113644650659271424275559990885976536142832993341768611903030162798606495575334999097234071233243295130435904270713168452119978038253800425325441985574293612648588063996939284357022177504453701651990213973411925810850525777580561239357848360044166332445916289424158726986158429470678285218325265733459839939387537665187880620667449344153458737548844777282767434171186957058168715170152126357919487928893801175860538032544239720690462063285138246753642512570861188418439209622135060310859971474546242437763759785196582970882307565790337691140629435555341827940182680797929296243284860736646216207498879772514032651559390774316974411186512579738188200088779143967733466297074170794632519069262193404019443855411762105048210788351591873122757891863133077344068417688340278430243615198096004042730677505664347589054340325581647213067906890097276927148532783768451771610436658193316115640149554973459205332897988727259134422097772888090577337872206019263875072534450143404179821246794333730037053383294354501211472331899972884552667302406701303455623756167957516389673487579967912969398953806689062324394238001515231292233960358000969463718897152816810825006960785349580646771881078885831992990103252145395343948583817405189726798711127152324682952879111021741938539848252676870904389432418783505415508516850154709977606514544920999491427199037794248150935099336704768324585434770446435119681335795510181262922053814934496492071979836766818413754665211977831099663225762670471414156622523367786207283780393083447774913677314797471473436921523359309042319850050875655925498503074444463193066997344663017131981884128276145518696681652210809108300475526787149815745285470762346196766033687209707451754781523295628280925301941827019812077690464675853498722581528273017971518560743563364587085137361746728943418418901638703560285055915649175695106313886341784916321924625781916200943470628613648428252670626192399281114351810590277552831756886437708982175166576868854973378068588776606698095263999544597945266518137320808660383278370914222699169356359770206555146847750377987621191279110246025652457321065626917667662525961198164226058151873764570629161715737337038006934162140282484710446426493915170718351511029810564023046902781137470231388897863941127974962294825171408185570741384126754211291836481531887356691195838505700843352134795387158172982293212591412493161846790402968414116689626256799927921096305112410921760872639374767397152028546475395979658004865686656786995017126003764952897899730776651453990937553920499371045440872752207396343595192742041108674327209097018015265234266440389661688295371737034362219389494511081956965247097599640134576567060733287188275258913980681647927097604642069653599410126661878548699482469145785051054774762919877715938964809006094416547768579160010153828013139455746501709231422982966989752240595544236780380870320166087493880689305652911947726490509772047904992697713378214790361399049848624870596110994720537772811876763361117790147345054681149851243578066395411697911000432778151666845910152295031687219410390327924305406454989997796499936792467173607560778770245162414510256961600512210641483054097673578124435453110376971544213954417822713763196779453746640712854117033670859627144232245214242427247288053604507149449546387889927524189818218167682119662664934953926670590772081121668237502331684244961956272563077398114227014874469622964506288220620221151818897698208801406581594610559846701794907773267124806144112661219084366127332891688875503107208318734574663086362784230938183328971939714202873397912975623538548350563157400633755206718701515968889290913913341972555378531937887057490861913765405724371791456217723157652447491988906795071715817105240874830895128474322589554498430317618541944563070457426450004117040364997678161145921542186857708985395792300023973651649107076120469242634515333089787167522436521579812752991108005542244188006561419380068303230201944386200669444652322463503760914720252817666305723885031832652379747126222131766532941591999188060384309571543657908167421512310291215577332554025131335508310112336084283170789234187104939440166355286287756003858049584103997596116132253936531068133260801123555518500186848102512046343849222731982888616698806534556866927470151955867589355026739347752330536838873388524936610009797570400217181447002334710870570585581791605801250249720351474479140343494696907994710091295388755784907723021212983267671565499577689462012057800447681984083781623747117931610696491751440488429652272519165134657151532955073390245276148806574102204095730559451233595977619246277991019818684180708291049724962723743248958914133448156621584598187537945599013654593458378396875682957350594636859442557287132586348890385404858517532376188298310923571993435921805093621892601633063854097656047266505520075958220636356149920475614713757879968390160483752282355387820758782288342690450859143423404154214926955289969480956515451781887001774274827074055103900824137721324373186189288653757884019216522789657170460272677806525115136093067518922579967004815901098004174470257997850341028753942977696940569014614289664633285913278385164402082776267134761847472597964130256248589925814479162887396905767126307234809048039781002577771721758170152110389578791705967709602646971636470866360653170152683071791257654647299192839817380391078632076562403423113994525350825112291108692951277155117604713811968135091388801614821807684645851621395448970015495739788797631049406944305661759315878604827382029181454703333152604776225274504841727271597131987587255870093934090420017037410854623536085887547425561634408165479435014087530181276755676590891665858767716726024696806804161591485036370777155204764073201341991721873276550048487971304878352926024208313930973685990559557107685125814068113843385242515257243481214967416569249908081362959844405398910338947928439352704267427000054514524219636078356487037607292249526110792261639316619523351252999929720671227616704499431629797186639307174826183203697314778257485682915183566356900291824786783058040721624456624425269653666777651326008502707572538836516875749422138406325216287913923259475525581360113485566531583326841887380213787761107009460958511925041104297514858411439054171864083144984769528349563790089662485284578825559930218458779309711914174625335295296980004003416571811631934587925595699094783343405881576188925594975962269776876518816930543582597884755484643146007235842466803098526749684377526480966183527184654202167930693676344369823597713052922565066154346457790550873926444999752348614515241661839326521566337055987358802372603550858611981966996468787177813817873715668320483360382831240802679516663266229710552398616322356692836626370939924649124701904830096207180290071165046395582239086951640968806336049228919587425697515456831245817407227375580687845534827167443741092337695526530064326322514114708749026213654344413653610192916363224328236790475082441908302683483948270651209666017165261248825591656325268443831569010578183648470185280054026301503333872051698532872497286168394572353342202982548831491726235957098610334791428569240511077242669399000234420335158974424117210417781035794229950389516383172256955804385021453854520031127536947474476792396074647263630361861908213543068007388418425974334681964603366867440143713028613103637051254808630003055187570590212875023286751682415339329847136907075781561327403419387590149707981915124518146373643664487054174238145265305499844412974597224341343654731456119080295689157272043881600260152186926055376929740381226896531063567635817593108488375473147780639857836389606916779568576237899775374215280220793510154189699777156779845790898033572126306759801899828209428415995523821334863616960525021190933491866092181057973413600515360727436636854622648282387062479014623285912314786598402176214724170680894347995985910922578884361991364590085381183451357430801065056315696434922209762923122021729960887103088391539254932978108863344220458078485831491419967321659696578975474238610361136077844436520876291795546319346008175127898292472992816059674638356683309342494633179247149342624648143449675452720136019240032318717026039092514146090650312240891823792640239925943112398397556514724722767404257751465777930042256527711398392589442466023613882300914983806259776985972762477616490270978517657035207831549459563906606280081361511221470039243703853520198701322671751660007392849325609888188582105126059969457362193747556550359024998128289619995657976111001628487635438878608632202137656718152137988901379857332436873780821579471924948177519589624032300227286140261232804020461024288264363575531175739602570072430508624403910865633485653991825290972079918458297341481091042880762805302515946138770147875621507193591770304971934828875190924455662061130890310549230306820855372709373414145177267815174454624174623111169111227766999583181508770416840969379029369991067632225815120861171368534191620634108623914847589333521012951120910805909375526013713925747865681468000360737828736212121618959940112007467033997630924667305818932177392387318709236777218169860856719924642108972734913712860733157870717793863947161364134743146504165344436034156622485601391489279794373751284863348976493138701266732153027188921281600178089635662350486247586321373427791471002890569986847502078395139275835521639700960165999243401900323144386102551860464261710241181389438267803544615854112583080554447676341889400918260456446572312281097965548070279593964755959078066844826700446352232637891883804866653470319220683555397459597577581434857095379935995238022333136850085006037398789973293571095876914984516161231052183649024884064148323182691741158846392107747353845140320016327080897928492497722979831138671252091441946416009871216702625645476938142816533758786271392750384246945888991089946307323841378800723864065856032939822071560602748960499308123867201044622897278230726486017065683112647630823018182707658012283623161703529270135415560773766648044461291437745181506687057957079828087855918910641968435362471983549391950222867150171437644676062009723452006105283179913169387500785579757462538579529833074764647674108743949022606792696965115371966474737468803661301045163875143494311134502190168217253878958813273336487826467749607196196310341014709137838513875652771446114993177788569275343122758310388842389423020774641746768590632684994253994042459568545582304541685810070595699771733866810464914537658407378215997769213837547781694125157973909741891283292122730610958425791556981020317538239841988897387519301256311676912851943569616718332862223603400196938883573680489642242644847416588910452162668074649039744024727783220104925511069191586680418496475618251916369484383741326754763473689851211462690724404962398665153111247766322052850468825782682355895624806892205039776131471100484026895488572336490096936908420409933072333596864877400632659200890913288619115589743942555957175999787417026738248263699564927624037305633290910428739185397767334452394965475940862728798261129605607492970530528682149201819219411009657630251549655086404672362460456701799359067894628891606686288795940592649884629063417212582376150622880966839524751488244685759008053167625449886575359356364310446346468643004367713297072087303010869092016204971037668897632454160202610275597378823653552662045585177371169463435156029413318693386844039891561260675866722243477187009033819168883282955197743783241052341192286551768036562115510969385548130098661206842115719868256708813227515363612134205227152076466902279214954725887938099241185597414181319768496133783371709817298476342273342085666377731546345255755302688776044992582373474635222300179435643749833886997276288044428461019705573901909803459562272050063751134758437391622685035872396789601035763271416441456671429193025153282452187806828735063047788485046538759491162962562227202726395658547741541200147488920246801553519503186421261675554778179811933783695426002389357064666817024780160128023225076075335558731481021903403340251632399863923123389489926737273707373640868439891328376470466817302205403849587793777136216318764285739971587187655879923219968366706067617898184660841029079862972256271255381389039983655401506199435532627112161177958407270491955957943334424612122875044222709843569723510439158316480844988270213515099432506927296833225413525707080952582332221684355167106095418684074286438261531190917428093511552606144896757608117754151594319923291947981498519611074161716497307101732268002241886135984890940842380006047514912618286889046580341790981176673509929431833259545813239070134894182613838298987845501833812077599386680481718577930682954613201158600915318568753798794920061643338072654063657891252554680687596803527021385972073371648552257448620761086798962242077319392915602274392084963004807652979004889617415394772727600974910582833189907329663696729490214975002834192364851215828003147226740534359594843782003131690236131520171720613889535575325409263495992565273367990108747983531415797140885244311309308345186434664836742628184428135986736623659672200418032087768410697174391279545087788545928746393039018520519405341195807527771086735715365186083798751024634358569759135426789275530041425643798548873154459848123967964226322265195382026525135747208918084943449541894292091899798190226332353789957852082640126515025425511443921191775968405971377206672340014351176875826593102504574942562866138601990275777887268371270528063212749922268077147894452606650091848578046183818987313932367571323834307193966893085419074308493809212432843162026472710060623474377513467231172735468318767407692564350585677783934422811830362561303109637569308829810982397545634148997573693876611663177156142264175784948795940323972836104863837487919686107265609495097024669613280974276830895135600772908556512339681686881012687724968312526158673051990085021438524577578626640121429710082403889818013680912161084386388128289469907406536084676601458800085488708679138058057609193348634498465550499690011969604432759897613668032327800988044270065697997700836780460114590831710915177331972258699360328498614970077372337991872706606791819608209216172553450004669672538557542255255550809492915848326381989459531657317808690850721788525956154328238587917561429854096948548795432239790570650253092432521911995398406781697441906964375489989490415439396123643449915403363990041974839222891982235764697069141538484037629236828336310218417458363280557482033682273230476117578893282351194376476253340230111361113427883726652390292941798614201199847467828267358982312091295453110530064994614092531735567922245415064925679866366887368488026245398858649308086611036368630176798817882251089976448267949537948722726971201453930458442587835147652470572532699385786946826024239139468130097603922757896010336126639979779943612740702160857101821306888949389321286032664853832722142080820628173437663927924273430730075226866336070043951389466260110755476573229824506669134215102949252025050038768142407394399519412257578692792251951292708918698500585599388417491141735459019310012003733312455794292422358691615228957026502632875162094868338632750615253617019063111449981687507803808509789834567023329096455539953698542491574134691382941218208035485610922255488038424269537055729260642309368113861343425724361288834378125230498871462503089148275488444931268702339113408598293236881954125737364661285233842043987418139836269473704244507814719290466231044176026003805834563921419086048974503367946557795676068297860421057082808405604309146652124330984846772835697336097911838599931995882381870762804117325929682317035434764937981205077768180141981758677289847491339396096677650035367176636793201972273529579889475041412224286654916874502564082325844266996760519764506595135910224059511176023791530739430900813692697831571082613302110257982287212380943961215431749309516148513429836991457573852125845951979897524264231360840729014776110606547458240110011325411889012457723343986054224244886942519641562502668935109651936692372659645462672650547000199438859592671498813336962818020662914308372053238340142038403714562725372215655026946178168748998694148101262248319241206092853745632186079093779652672081869194505516188335428682693591164010830386937195300787380519800316892221552676247571222631088846772646711915536520534903857729330274648043644952358927205269731250628189899281882917496371142913363443956420372955769643841788361024762030594340101581182141965339282004958492558114271812438321145294818505836496275793573344596904387268647318334845070686871998277758164056385589140202792834638840639205847229412467473384645047440580852057186933462973460427525458181352843427219262839360991168920349564765305119361126151043495375102325795596769463859459584272714656708780555150558773630468596634623615933496221465862540817573606594052472006773086485410774535770815973246243456409292621127557148768290185956435953412202266963628269225356251024500159357020736868317083680187931474691363550110388211083849723116574545278391628412622210635091354818494779985861545142561292110437325311296548678928480451741330939248431823845880613939167165648342170571665778942044328831392499425347408577642943594080253366149801370179183176212466946657922317654772552445587293562646122889466451871340808326578307845710272133450186673801210711084850832530027758221923537244294619771219202965301022806223783119793408298596434928884408391816049332829736675916456174209289679528222251151404586835554105291223864336479710838695414623864646485417699736486267199002889731153951804479015380503847265190092013792600851329982135622368687468800202732060340817877710218067941129717726257286775820044584040941240013279450935409468520811728916466217508606897421730275787475636867674655327892248469436658282669726128717497651172434901086634344948079902423669760757930803376134379534246690305247662897691235772049722075890545484920110085603417517564041918985777751866026667468645601697623716202964750582835532078718409545303139029083703368991292039978735953805040810116890334829971738348850941830976315578505827718660644156434831023218439510530468070238845613404051961980209678048752401196309958972090439535900076126475502397972364044554561552003454693931236044063527538290964557070334048806065472797731429116354741329765105932997798073008540798212169010331062138583228539050386675380074326043788810937784922846919076573749539218462644994402787349470205051902130562509843140797148004463801473096076415654717280317047375078078822708395510681630577179047263427875804259143062165034317513933089046105959810448410020270496729634639365778066524642547648986070926348070647488924208383135260689889146997698140762592410244983106768156438453294998147802979593619972207257348788111303210253061396566779615323513110512093656562783132077511135402296610739935024803439743437860366084557960147545049377547097538021118336984395338447117506774516656530596620626879791120198998474793431111717516282970384811834480281033351262552810804991465130045737082489698684314196863588864416593016599274357293414757740492791050069442115147076407708726557708744771562176222303723047126370036840190761965129039444591268676463009047413838714516614888400793614088706934982531857275601151819154426974132327580787367570012356317541224216330202993556801089660227738085047223748076647151262407310027716672123414124263373173642710021492842424069436932140187787958516363861769712950330315730140536302462800573996871503915453067378967761431347060198770769125803127049758519486072170799938062483014778332877040702387686546260890122938307374317255456501645015341097444031874373910756764599136026223183324658944489876590230000060555633993103659395207118083638340007372757166954718099721810135972448839792285490735985247623290951865301476652309856784043761776579469293050783616944136710977474101027644599553483644126186239906627893844293282016596431195528425833860791059291521556323827450040676022009849448718825969539662838006699814201749082558100560775272328622751934003746261849669789640211185904174931846897411590799850629786194901127651345535312876395246113393295650636174677586977708758705584977801128126443502614119957396019726164063244635965186434132322174026360450892355785174473025344864149975273803163108883409383219770064940627652367856428923409827475976874834907527108814758003200219052716031688222718109640851242917298543864206016161930759871155694506745314777662035171892923601737148810450413315015174301905765471012281167382659243378164409241525489394757800767120616324916508931611406631971644961211190132339829049660359732459346003248187500736453222217267317569173091259184148613271454454947394327616924462024430788329281034115681647483477081839327577304992575826818677697808755989728173404098457863028938798561852166340790895002978288803739199274713893324547416811338798922905253330952998822177955014144856247558623673373585513826629790464300279902063813231343317562405125407995379850497537004696099813708356356798229102089419509268718061357614147000285574506584941037101758774041587250783109174049140784860866482639754611169542769834475929641750070231992752274899244731478117683774422467226529652845473306851269788758905757548965048650734090194035161171720256109583853911761502554080058838549472659199859634073335845895774730193820158786965020643974339028750955186836957205383220198780597687498231367552852831202176108920336792211733725144474690430834553538309001623757477788958002762973985114703739604651476323315655249815053521843448182052676833459064798048437259793708193900574008571349836500728399754130184433677913554808998929322387117113528702013156169692515939053187177934873506186809846723840553999131250755417934892980609410070734876492162425838383663099203434468374329554427592026298751975572615038605849305176148961673165182557077521597814258901965926148631429276679289961440200497879114562916403005538259193753149658814836861103033339143845582538365144776116999264009680209399783549425787312589236530683025406340662717196759654858605437314732804101795483842791918594562713598666395465367573333387900207892799551128391463277246374213295368607231023170265107561273676895373258174673823417511694165233955102161186066427981825097314250935277235389816420250258564977814404349782230522258146297383937061974764029188516526583675882563245219557340957622793382857450681815268178845214358562773147258628326824942715696339123717706128627080805657612814669416688827995885233497010276099639925257250008580083983651598441075979878291687788123876819763283855010865044702562138592926784394256173987305083834029548704878114070702190425012633450360588326729573488809202701355919712459514185494440008052672030139645279955900649693277401008888480405678183365916620782570898836329126123740496070908838455567746425729450000914076405401709166317820211624266095754614746546802981085561429364672204726577891277981470932347940711603746757966533152071944563365672692287728376359093405509582441867136695138806799138358346248345097018954616393549416190964421785853651887124798211754976381120579384425974579822353752997821250771097305050444119329020911319218559038313922797385655362272897949172361102895908967785079490599796920706703734850051091712777496748767852401105265944278008041798308131403937189158840652410548401049008931792177016875133119042453192609748251471320544537530224100135354261834441948157453044611610908868472659613308949375857361743305450835715266195384129240714940555483553974245353175769198447142255549965617793777741378561032516376412978345267764944637311299306921996597446841220075484873876678297795095419409768635410384690276865406861349542950539644695486449474532187346289759378845793507810990141119590083379090500516565095029406952545362655470989391633779810414743951250348486692968475346204560651133954288704801853179669601675100520401542700635679871073678734800300178466044860979105221252550517890247296140547423330281524098285575870593883365121478592683519257823197516263348266584924175195700081010077227215710915302905024093095362679976813357527121771119776124868571918811464626331998969026491652445703790497301003578441262983036470174550041610475151034831542368191020179722186550924041154094825822349783225698912848499461155718532739235264802254704043502998932456157406916586472745453327748158826557402100908171455886778634189276265727746374429143036212332939360166901569543937495244601971646610902545158589965767314905061020430446843696766777400612159787355706209084078496281884761283763935960163955561957482753724716698534226254136736848259874992285913373965680375479821096581782605675466302022389279187860440726351042290856659917629536088957735702996893826414403040938152488092395556469533324098693012029797144394139906726854454822977502027845604559724227501650110780781534051652373261540029661172155522331393212212139072449366028405803465499341178855268975075137138834707222972854737268965277069351345053316468004406495387059741987609820811167303370929255321327601829246978352152814457134633674475209100045367893648917778747568293613776760798575938363678950265119361965389529914665764201115792269946479250934582807883169100241517359342599296049295080306511752544428107943308213853439473394017716015194215737640855541302142655757876434257938582451938348145643894133103738687179561870597539160849681040128441243855244232464092496927603425360438106877247896524696882483262440322822587060763773169447412627028338782766773620740350936980588009153757521579755252477293659544656519664131695929382881587672346548909993605027832302060832260893230833824915070962309299016798059019145119547053796432066856864574898430787970065586987335919925881181659937171331258413228252041443465434487140199314774630103782879737894200164152680614276071039732928993248483723005565050588305259640112473455458840302970939598633801851592580289450938645232605064804851191082793167835390934385459122019185567495746734181412440511743510232285507377592121303637032567586866655634353650781163375320527397324418778158661738898618269784650055822955724735624307327111520515203229262809282466097479795911726981332333447125809116693004493888114343997193188284932520078801811380224719704831223624270405147896586198925367194819368460945494514864754404928169722728487496721481943976072946829132852320860319329656182657883108105073405554474664701638575054343125242053991032399077049577334793641665919280979129936141550493289941485540568745777808086955846121802255386175264027349097590544471246245225398700191146287538520373669945373087536804461833953261406664948283876818822408194728060302169505748375059142620161839837763477320976209946809742366454615981187475825748858804149433806424516114739267776582651935513843338149746212195434902305043841150080615274861530226748903610541685460926828039098513746655924463332151011607253097372282449933949110607553454551376245908193062870302324982692720666387537797969426384182093785487336349019781853804156928075239216696003166630440083445129944645875282278825549264593705374888367169051261571045757626332802592245534197741039165294479409390323028625740002544505889106215815975222353482932348018265662934609859258932756639651452593860339298924307476153962996715383528389261619821319690939208619632505123264000583846196427613539555348142295503476173786711969222803920700154680010293075930638774446476738439087340907661329130537525957520321829587978629167227335625663848641725816979812779307862202293742194562277931021890023036620222587971319585743323462550900364852017251838219647129966055489827454660442185040959053231670382559727863787919181858583538608829063074571472982707694927130593908379358522077906008960818300906822482929273652642172327646238867779328992991145143706812587423045352715184382660746622635498115955467186635523979373100046430115221485471716764755023721273141935851684498143897400589620113377665605403937547189221507086188542150287898757441538062751972532943384712635249034985980371274535229905747461117713185673079541520486242246143848295353292601980388723759527378680506881995231406129846534051469574354929996846324041818997899876051629013565216423588359759712398107418364850035394093697943578286300989186369028068659876563345240424995290792764008174094086258267539206785507090723330724895973006234271542290289019711960188202470299783743429841746530004603316078652776817889116561841913374872037537110547451901695734668200023551045962753289386612564878967480131221817359114706856055311593042865652809543914722662109569066666948552742980110598239616050448310553846034224807470185129108523063491300585789882008904995756908439757316644970586201219433088331510638703404188483519854717188367965824477918856145446849810349733086878380468046150137198930344527288129546682769412214132484470840913886828698242466667400130722324359196207389720944302015955400190781167950488180481420002940815269151342959692754506290605792410326392219096421921579031119267618036293817723617031114754210309674438060878154699553256284684246773998047963904590836439467275703648657186205153609022563597342038382477548178447260983660410853598145176812688041533905721187913368559995326464463661472059719964167602878122162617416984422450733770801903163966141164139083282010765825436513160411009151237016906680593743825548978325989989930525257903630439298173492846236402951437478564976433030722508708580946361862925440401976495158461806003485357150408176539830970487648023329357833158054044348941917880358006216702101648012009180775229699443752562712330637396942954100155325159745729706908129863222911870443395782107750673649555591784362799319400753441423749219212463670894050654905052549193746303443549251962559809421112546002072413935228675677079387079557414607203817853911106772952794444482645240044473084455390258620197489718678738527091895505845612326969885288964546887592860071130683532953833992286507696195711624991172373610696069557641872438975474866596448046580026073568405410309856175804826722136766182346026631115009690651165839678255010808501656287023677537901545923173621877387166494252100179121077895333353709374711605480267659151669756943877237850324773674536746133307852456329345478220965407464259971579365466224110341161294289745168150158491366885346972262094694588329612818795054500294443564822144178169996696882722039536780209485787032652236840692588885931673601351714022044473502214904943254409060736331209681700310494904261921465253988865128278537706892598361870434590880937148411933439509879801253444792385268913822725236192336091497697769890666448036385587254561334268535949218467486551536522518719006331166844003868057345320397843900628510867247624006339975366088003457429026561499881038825261315152523904829496670203906669159908256568223316239992083564916628798318518602489258279581169793457194551094590677669472733466885918228331664112475929811672950323518669447427806034476177601146840684818142595533555956352068431943998448234719234248295999112301231468518667104553439108001430137102451190231336233496005438503459122251049388218246605773423947003052792687741862561693142968940406439710200249757238808943905443033738614473673897912039532089974732802225331209361352554163220889834247616711509855909568891846943514852492080468860357892367888992096658551546774935563142086520669990550129724514615080037562464343150474510913153539657647720037816574016036758901083662605341949055051239361987774008137357713689791730399045793444484933131046950164494506057910858803931870517835099168583526762625703183998542951812044505245232475759144492853045143390811822202389908324326936442607116037723045502964471823458075168228882910647480691869535191034805719529228230745677773693548987392089469270445215012461956450447037250339526641723764658412200028356757142992183117912717405117682964673918326664600044800676031191900723973399545363977056981531908671722529012704167856334518634587706482363853602047940687779237985281938794062189188349970895900047280594864508467187828434032883234212910743338491180174346145942177022107739662112905404380571311093211344725025808386237622584083945078732054451849496941667592529215979377440679260950379509702942996314763197281094160867400368549763683726764386342536176747447347532891862129704022504251855395946168495471239813460332139854323968471142731070180883291703885788634377019399633102633810713069572690930332908379792112449997712162205181685328265233061757682267592323199986128233913804499911569818470189567554180329882295385136043066193005802061497153803288365150028536850837256409780048423643207106963209086236728267628616237296817106020188006947001125179034168773913793322979492917321646777848564311876094571356914129306768266755883534587572650193821622576201217073389228365719521851774057285106026531461276602934693123379704269317007301242073685789824810443612338061259107347959701736048502692599126157985907814534276912427696047945454099016020482360805221385547454990024162742729433859923897315817594933749063496383869211820801016212748119601308075630064758580598215600242592582795128201031913957003858346587069688903263255876132337991910592783023051570379030021700908843686698033314487511743973073001445073324798722678350237742258182905577866380839591738273465072980666630512020257973104907519499845321016340592622129872390195711121037608839894800685342982752185135993986122856724577082355854894412100116082762063143040163946580748953695341097702222787828351360464711166436709681775522190666810151066856638331792651638272668289333189465502118872510941270081581460046668187281337130399153856204571106846609026417922123031770221457159419757011464003430019992280956998625659490646204451302963345427497109352512486652854418998360973029677411263062724529136526491590641785323265052804017858873286762493257351311504733227757079573447833170604464150936570771372306739182153652508053507804812218573485894648718532975669857697475991593458031113931282098335178277109794483537572012619642631643385913223506813667587092595919201642219256207631929593829962413449887345195856696394990892080942963936981618776582566137331234793772362914342049184115879826382276777517994703904932960742574588983170959348649858155034964180078986294864374161067808824339359204589146927717090769978780924710705517258122331103601702503310037331119536117348950213253196595134958619015354155186355558597643798545140942967062530861574979812206890698391650169315317727946402213139154335743751536385582358105781387957360723872925660987496505135178681590933993931456154753806796478799331980770334892269527603558608873859057477544155411974907330464828166896192560120913360736331851870520077434903800698671981255445291725784371854348963024948984754277036349259149122097181808382515938115576205685002303993287618849889929380481939418576800446393370485424822108533133824232922006294586698118918375456879617069370227027097663022582342181880243601617831530597590839043032627365509329462157567526396222248947459277683255104855737042136328491869107551747327970551195014758663941662913187085650321839376505435027666735458226193904324281659531337007617859089292689825334271277121116703335744919761633422435536776707589870057625705280116796686978149434524334982334671886484487422065737540402330116227001882007928784609116551986117165930132868672915122855979658201914741213258161204987339364828331287449223614216619114519800815946062273904367706504700594254235972651890744372290407444753895650734514524008042014026230664486589330844222330607733810093453713722669311070672095496584354830786145340340732753740605145424265785078946472226721164495369264581495822542992925104149056424557004259606024389566746756750706441536287479936192583787486259544231220551941274359523743703236809409497657173131495495515039644753622574819205736015684404214788524164135087673736920714073008307101061765403045434984891768215732798052405220531164129015426440351273246214489871422613857334605948305939210051583060694497186621957604296590917386452648089889090537767555226240235620904591338431048990860939017331933767022957124975529729957686933601463687029164488882114589988133220607756049762325287742277778464674130206635029247707911847045915513924944189081083357681161949649970761905135083039337506599969751664797745481037590996613909607607191140377358044614613849045170870223355466589825924470627160725810932901493388424593390918976340488092422846327256167934786360728145641826003211846917776300394614682204835433155796043343999304174429783117813423822896706752912714379006649746207103596004258115496974277766332509680184133327659067761096298186144402574490084252540726926244482444961990551763572181856623418392048262142914003791494901742132038658929175265514107545995716837478401833914597239314188625541031987189406425223513223872462314247976049842880872455400716860802517889957273712804173828702880020217327457180456527431133765316377329622295049335026775725123455561405861076022481331037739672775140460015189234449588855128902169157155269657311349247249790207022082760157143615748894378548853436790365048673089498331594571464439310681489369473942241416719040353195923900994284783077658567889136067000828009094439752723858449058145000761709928718785617552305129891214412613522989084044061432082893625134706075791534145422992945734894518490340977459199545785242381135192864040149638884096023312857535067579154966029098744871803218304789528978069865291459740140628347834242904800839203949947741082942551865568576342609259684184150655481355614829205010708879928286440132280636028716366053868439742762788478740368511440161308583948993639011453539022722249049996056287884271838116846507102126427665537535837406308937342342909607098942466380446363521408760950755547584077144012157627286004151013072342613843028644387123997762607145566141897674830091757837625545916324598819051712772072141162621151657910936384096361601767820456449712041903674227845317572482276862461485369631508199212426335558116156309070234417987243367096492348986837399059840000417801150013029505823846792626312197702811853515096876628518342794428873503413280456520493914575349481047650295650577267801194708500269707092441390460273641659501161215770529938058066556079768766335247194103731021739533891268939752884368733324580236474122733688171121391667366002812897023573812023353255101437409010855693525223293629341241547756450453098642546713638040895277707801307081217317141411233088723438198770055241574990205549794244969455683778094363346905825797647218218057108512157442815103843670603321710169103850300218414702050298084499445557182957334896117069341864061045046110609968738654315475624154943645108984006067383037210539680523745157930723607201772809517343954059171970339673703468020038211918728618695781336458476839024177424035999351996062792699582803495980678204024106402353380121046673152292346765222163925884303681471435625111170141802061719005672149156398166173084896962580514874523619780351682417651289209434543347291148130525927381265024569649096861034658528895491405003853939797904156997533962100189159854259816512169913881526321609002321240287557472113658813331838242429623697920072888179406116771335420262353400510467115205386855092321469904231332908953912041583407284688074553959078874809259075678614490064065977781898791167424843600615140999135686631279664375168257221990863262046158847002817498075344550391588597661236354235805319615585190389507958917084699160601606392717715765217237503654330988329430155914142178314227941004939472723241177618960943995212501740470515975935189113670603657123073588931360905859891521447614979722130376332667932842242159742256961932906459542006074276461608915783229954664827636271780873542969911376450911404572569320542892100314017034788585874354770039238078464434947936050370926733664281790574399054369127366533441784479894406071914754699360992758372415351756130239164155816986954874233645029624173115277984493738547372571184591181220686916084583103594657858853697315387997132245531222722801707543802071613941714049442234112210438912890632601664168742964329320514763134648643868213674692590735065199341968525687833831600062300270039112257987858233011772944446458631552365682575353762565446019938931756352470587398137449535857544236149706874977833729810604846783475120745065879290753491849341415922513265043033469395540852115927636276094162422515714217363351536562574170653761013187119694130264962665764701950564842422434266730173346812715863010555503020432191644496760971831992448936246652528798858657208328694165491378904369121392639112628273445768966734379555939262754052697688251666622000128989791102126860504392115337607225574075837765334258542178632230863760030207565458617665970751034568506049985964282605205204237242478067998419520333617278883108240167293006062744292207244873189959538631776994266652633094394072695969146865535347663037796284225642162440084519395247003721062076387782667874977218531319567367694020493609478455174972237709730663425087139427003402129426788911483425713255411466809832850141350592255275674945607966891002057683202897739641223923823343307143270751891962373138391997852653350496978602437885711291444032428430517268739841945089056199043168606246891230597437557802966512906149745261890038882570846928497966536616621099785246814972613728529711594269187066365731105493391482083019413384072877281468238901697742718172407536636688600261298103853200210415067152657065300001346728820069004517672659056393008264557928862822378711466679059869505363535761658075262950504691683009299561339811897617935971963774883394021511397086028319270271668344122443222613320052256183196628868968369102619377940723661608455816626893773832995427775962891514553330412888684391019434730397301724928749816113567155937110131071894930019324474351897083037718905624433312016557967190647213923153188526126372322738058913085385593823556843927997987977687693152029088516663830170635273302502223852263702452462025776606121190293603869255061516906988171823126749047537112274824104572638777733542995662903893271722345683392873170021952352994710717351764139674489022019594633349661688531457638832384442272728323211382105064431262722505697155422931286043403700477491302565880700303486588082177276350841600316770847059843645701747991872300151406426465514640812885496295638232889638704526888923422593160499335238578536086457801649263798957053092479527573127845195515943556083119814169847101638040756722742544833011160451307187668748041420851793188408964199871031822206258039962029714641924939994100954009368908335136342055069373227190726947093993674041087398785205436214846944416461409657833059811895716366843473718515264328455326415839962278978910861659684556672280995339997308717005327629992443478996530621596443918291702923012409160681627497615132082554374978720761622812743627844410442797806858252946618760014953835278005245434371372523866110571189714004617729734396652719643295972432957008531741418455481744637817760599590630728265667817331334254419331418545052716551850305533284293911586452618151026498626206562489284571076036167869846052442394784147969275493307557434849665696916900567526494303760641875447000838452136788002760297366319866512296834249622575455902710614153883870956000049745118810811476564779615350404102158562415217896213309159998405428556507495850296263772222141437083494453764334787895112931914220963028897304877638444788770911241751095513320886864791084912413229847226480007275506646653221798927504163486531536580075280237192839720494700815967041904744219291927184923138954071057138420331460666513768805781448013629868539517245868898957113250210949348246571571507829473879933486289302047305626325293129056484417620025343771354940034664379778411435555286579749825896062839906213947614546753345997014042248896178854376059648064005834314204247726531226441381781151554600991722488612126872670943786536975084677188798751229728924196890025457532725681965669936060803637394483828428267105508875218477323726105804470215547328380103074101166860811420678395626508119138018359861236353670386327189508909719990429999357932333432128524881051588799393803892989797576043107109346796961340521115998661332478660691911722857224632878158643065281345051911078175229027989273194340449139387113833516755127235668706022201441320839520007225194121572139837463887755753285921934447225074998086532698447292774697382192540142852519488845115865042472880184960679100934520122935512758389948638772259062955694331637454280479657907975789846712824931654164888564851876667261894467840907846382544370176556953392017513227812041803902651061435259339652570341510909906898783342257569860769561353394546901065763951443629231107715780825580295912180604475965184836835479380322561337898794365483738724820436870895330552849188216068488228658792307535548731958655562269395710260163127225452591481086606860935252193277478259115568454428513823240147725545420469994797668171894659117288371313294238689045123183884817877125478420131598916864786725829715349380108908995991538459101151512868590440172609059503271851213899364252659640398712838400920567010202486907389413843701367569629279519018846659692980569253418679231200307623052349351126744664868890381192883233700163282954279835893886793471994308981772066161278211211171341046858863074416850207228883798241331694091286663508500527187921997603628300462987097714688904298424511668188224001748446693701939482098469856850248938519149968543416333685221956007836827150873822626235518202043911255176181507246044208129440111454443937027157411452909158013263304648742068779787891040630533052839528650703739865540650422257104355479356225670360119152198222952317378776455835828583666425967325500726795256451555041779801180618833542326475880435800248251319412922960448326172087946995885730020305328879967131522104636019054689803819969323867616328900214403598423240389488902218033098503919687838370494199922647625376242547418017572809028924280378408137857391038713152291135403389151473321162418871603283505727871008845721355580251301778719044024381910753824746298751588086003867303783408857966101024843502298600365539032156296513831445517091041855568561746798322690018913662467822761459820386311937056565512803012725949897383360797974472730573088265802113548847622943027002810053363722146119249610347601705669043105482406618119377213026508480765950769370457967141771401113988332327251377370753355846504368267514329298707339002655717834729598813517802663648204130891755970423077721259310300543016364989239653266284972558659548048778315096496424749971195798328274440529039870493353579388372794392682305743021006807631680667874737567713667560198004096728277672528052660168053191677943861995723912301510073415861676090112555322911147061942588786286295080764856246184131956034212477419488772642951015619573933468572328090769687452916223532161630631222549739902759260732464832905097504081437592444477586296237550084945110468470794209841557169300682735400511478850228125994688583225109419702504842173941142963308327088888889606554421446302256610325532238699345310100701625196044605189042166345672289073505640111465281430051654977820148427583841960041979105852729328932190338583958136852841248271638191448002576737303732714296217274227653648220946362920028898185912111119486838831004284129364823836557933787075560988188303564064727881359547109823485661978256482690397381387973502951743624378676996992789392058685055283155602280146123316058474786210024175710415360232096645956297297829688210423429720076031964750598392431845462856128444941287697670076256171173684904945620366832976307036483873679985246176742994793942502435551746813844026161307474726102209161794774832197944317198818565736003292525573962311363372293605945949732292968730346686997894354793513700001153450149602331647664787589722073615230542169875703131505925176640753830703317236916944245484454695591477901076751047230722435942385135251467142796838908160902508850418906811750991501819652637647533603768720855449772401007659682629507253589155807780726074092385674257637468652696746633601710339173822360804373221232555908449136458548381538749765000003276394322185875095186320165488317042986485889063508330851505736135490333801901921758630151063972904125337801772941632497511146390059718770525119776693896363793460506326969543631084451538647744810188939149540762694701626790736576930578884444023441214305449303603122859717504352981232976070806679740058086832843907748968421296991820175972262721870319362382134632967793334856659600768272758786757073543760914296649178136430610246923211901680300085180130657359858902515832482122651099926644167212526035596454953769126805623933788408289773773029616094039544641712417094836817524940091132253418359874992049762673863806083599092893545816437157148965845851982894039493206473996929458862249363165001941408482297918234055155874591897033112709178942208535442569536618303822683425169557032000207932582721703811693382761187159001604217207056168223287622827305502339834962931495888112003706947971061467715974491208118928164314686310489379167814024290118120187839766907695199872070134572431959117359757081672726284313134145082587873899911593976680611684531691207174170236762884193838666490471089956165289550001618278787364107308567946833433599333082005283342194047738522079818130452918553162282588745691724942798787635712198492644087518692122517199300154222397452872842169571678437037410271766308000112638329487931863789393653554362133153335554233897615510644967699638432277371529993672347393341940901868385233505581328447825384074745498304964552432926836806587188696570386590862811536786021775398029110057927940209179038810049690995786257034194280939152100331201299475694902461102138530382542291773869811057072801240774122289605792300947756732443232312411564058981592887722746064717338491375816511463360390677136889880129997273995450279046400327623313704066075434210448142796441645455316725433783525803826478972782230097515708641180314150796313149757176430145411032605067552723383621580254287296468298184071174985412435055704555792717309244956746148175055143064937751278401904004852083490477137674530952530550207463546901504134469872016620770983659495760351361599437494889886351318140009591673582431666053851375231965231200893489983417581586500069142525765835432468183002290684874298851501202107768388763957117736280486080149750953767622854031713236353244756984135453334055122767498303841215316701739712228562352780777046373787295969331868440364071523841750953549321582481854197402988748752246086583461598681984646496491231902434130222116515979266374222407934894908314227103778470799075167414282071957731395839998869459197193188708581230055721653357128849815086234381453405414218483154554996987324950429649692224029951679560798718312409947139289558573029928703961507413309317913662254530419208635353473747353043020983477157827494773555845067207567088840427411436130967320820469018506263237283127533589515043595596056667431684728150475020591555977286041454441232353591628253378355023293537721983971554299848476532970130882623814767608960490956938884573070240599855753969727104256829413681071386154892839986246439610103993864311966211265959142237350151346329425544009714412342841211718586635317254587220292913998274845542806561113501857989292225757750048046247543282526706449024002188591036722931422495544987461270613135135602574423075875571143006859628256763338438315397899088803381748317710024536106990123607814248842797793488921182414045254791118142882462953941284906713867662209135408655322399052969076279746812133761336538721901863506728611801593282809832434130930897646507207412985313900377804495333681131088691251676600449331843111065764689564508225833067896610934755725114524688753438482911638051468951975443467796145344205263693420774168087597636422636945817630430792707537874499338758716594059918307120602402725705696287141584591541694065804426296651199363870795485105360221976922808444010013943982753557110868107836540876485678618262392678555760850687257372359217394817470069321878772336885237911455379742858151438728111662377804278532544309419210740214121233218429992042384948075763764201053315547577915742612994136113356637260150119211693880871026169415711185002141914534627890231584924029486317622430265028299640327850452263074411615218463169906919022194310327337948168324187952077598149264169124137062144573858706043433915950606713335338297018783700963215453111317641145524807968303093206854025439002254687776813954979333497800044377249697115044930181587078584152204615067750474497780602208589629463338649319574967398969192145553903360185840681761601224834566872064161980153074371801720512553060307365767399340609523973298971715060687764483180811158647555679965063759014798239491699985013453591789738302709366265367149345578243451542098067959197882183305490328628523276001009263564426635365072882527164882003349441604885431196150575265014758798236377103645622511518623359174704274296691607627931533871971185974418324450588974409745032211327920778951982181732588053884007390269808692659285281693278260405783730941155697835157234907766480791039527867989703057411343067974509844319541971176966236564303060127576762542160962277788902103581847674312350232518729101901175747072242397437300697599479766893578433668315204228678484827809035768826119217940334917054747437891616809103230122218840492090301708357935891884725020911769454109537544352557389744062047696688928724377418290247129530033229028905460171437644048299119232037990472768211440771294325406904417798498477876161492195151890165875038090029921651277241779940658438805107992627122891067450170577740493991684263163745592046892739563039809083358780887268350393893277481282997802357325927256456867401618459776396857167357171983752523245314573869546524463472894995120384901312946546850511592456745046548151783445941181348848944750671237615588178782293606887344713204066756843165113573022712224040715194398703440681053465783783268174721422082737379483872666196815529058348835701727535137833197065551471098311160553163175556210730766022899760295247924586154829421145875392245041025255862491872469894576767855770053920884314774746692791507348774365904985467650970391844638668785581933210459348970988737715745207026260291561847908591699178969477899317078925644368339198308030565514493933817482364594128316987234849938314581744481165189775770616913382748803176938930952978188268373692201617725064633070553466083298189733716464430092786373750991528891689870530819836492716590804836356336525574208651494665685508016355415001936754687486152319329909727630469037688109046769255273532772829597779819390746467437801789234536589114174259369710744728487851541945667450313918875653307646813956807773002081132542816318107902484784912185714218812430087108178742100102399528707038289388415633695893648357450029153011917397029955159285144717177482739402722135168318517487692759871116506982454875651454975540134516125440255818051165508260150753120068545214827623412868731347850868844258413920550282629199920811011821156081062011360480378663218187278151064554146345853637400137143853444355691591973953116018381691481965229373678602755395876616478474832948197924474591462869130570898197271517173811251646425017766071489565476155509056416391049370310728675483812832467918987814976520126141611224949191940440975054098666343161416616309681529221791358818222717733148816565499875893243477951699465174234475148624705642031151628479158904339855559016955931821981726829430228517374289657355653348432090965857300503250312138544358569334285722077990627245963439136251790488495432561691981421678904230747703433326873944259771405101964064484180763212458245481354890124714550018940669682799699555339849988178778292570118377625638178861925719110009073398763648889912879017833919636261070588288725657372157319646578986558374087176694805997356207087066871710250639432631120572709432594418775919403167102449270141078813685812697334323363271910915182835197790035165248179605699462596371698405418240988236392362635642531398509957489357978136809014545509444391936436654892145259638443244063302621230603883973742737771744822220415227360959506838506130393559518788986262723440942692662944833799651228192319376650436475259421456853974102503486421299463728073806650673938019804174419473330403465198110949861811200859940306419003387544363370316402121009152411781618971876849320176094017209214803455627251990505473596992206451002885779939806154689465444504403777223514726272654283331738931878297037983937635144257530204437933327865713944538621522673401085337295724930984551670747734976096750843864442403263484272946036683675669114849368969193463555159450811334006821655126501871032004887523160546025377799443884297054775839961339539673734235054882305117617787080170939430702545122973404773876185604664491793667906371317013685690717031452416134149835880016015211004712325036129856241688724272259831693685323947516492044470256625743616559291292686877909342269518046964463707199803148844932634267526996181983968629518450941371639345655721314654945169233936404010250810863686097880474769356889193742492736050918000350976160221825421279357295560781917026005169258687209841887156422183322870731610752338119595440053893253727503185637609534783383526763311944076143922287772206695502969068501310838868192439891646953899769817813870945364462901204247171377946415816668953375179790385440918652963944720802980737979942911014197200917707491249768703797254952906204048942996783540317030744960384403926358815625798383355128191508833256493879493546054077155763449993155988609401364982987614873872270604922934008952839025693503295057131031486005407234723429015323870524579973040323175449024320248222100310406355347415464591743167884368009489179300988522843947932836049610665319575258438434671087040676778810293048321482850010844316609502218393433737188641796251918847713508585796593416399980666940828429373071022517538409134236755526805592044357003540010455625688375004327350204812824646001340082384496452286890557952790774843879521048838390822784051149678584167427762253840707979823480229069469199674368618814616952922645243039520811964153552753301176775375047827106257062557479004109536470941249347855264496047171017901222106182738790833772947061269773554385749891485275898097358809521093107126700604285179048487075061516921093526860443923546426046930858366574030611358271603069003575296257411760684337267870075741800057889295565639850938516824847410357856554014106882171106780550848502738756765377985498140785681047347752897220002793670548704519800206246615893601443400389505883564942612759758743545576453583940686591813137439223054673160992650734676175468054800810891433206069290739145320863049514742776733509499018175314502832640714091879532284515877590629828073324251080935089503952900530380235101279769909937662378862757996806223032171150139715177929211634880075096193592094871318574925062516840931974439640703924652986682874683055057815886700758122944167875292950323118859088977021110915158457979917943796048676434524904422633047823158758534526237052198530867834951341949677244726068551928201366450081823321878333799996279319579642564969770905299123123810965830747615985720029712924287835333829172416858933600838759759394379286345331898388784881221377433578005695165633236825868866342332154679630411413880773194569320717626167655052437305558277236615505968625911449045026454749434776875090247308243558066299725839145253757155885752853344646828401579684867598696995037619671232859231766882760814107069912252690497155531504408106630907073411565254347253450849590216262568026292310450555160615925006104709956088785220946952777502836834085031773578121459735189598564715731217453151552803704390629876933781285821603176892067415653485736238098442548539483970639326853811238957514126828305701388173016748456025784562353833511875036421276089077943496453301864425035949157988745978379171391090080736978758358171406957009194448157387136231239044653931662428219228153648853330359379696703639081477979686870808976117597769690972025739183552323528269812184938133509670577976365967765162058379810116165000809300703104891621470027412790720011829057826098547140545395393762703106850989028143653640790809008398864834108399961439517183916693213513423496395313128852077478678677656905179775796592551607209205546911605146673374486942815875445287578482530795912566258137502977533784505974104403492107316981831822131797424949810996652050790299669475547711230725471798438408966609926717352643867036348222693638546219210518644800001985871107645614967143132167130465110740704472572571242742004577554557192952099895515617875804832262760082855884951493328031447274915775797580398502484336056022656976943671819009941375609552986285423049210406042592576556930638890132803294627457044948000435522547266594027628877890242202964633502240040542630454735592114605856588462919534400941167589147817374421103471318883103980732016847476108420538403453478209411367273320271164517459396798470482687885939104394662384863209247130090557180300240072508297107613204280361326949123053345571471737584193475251578347294440911784129390523287913051934743639433797267433516987930955192518171419542289327067099394550295575296890242134512744514078167610011119524623428308160481591024049278668662537570859076954721713505765851313330394251555364706296614774303286905064817208648945614790523574041776815524015330899243397699941613251576172583379216159232740257134799418373063856053811035776395637142867889483842271122341447637139233312916293835391097777628733705316605232997030261647566718536031649880046535852451896652698148928838716650403664945336434222455740421067938201597487523440704628327797654528025504276269307793942179449476477912745897730332678411798144715114000480096396482278492561571997130933718665413350975821021138606386120187794073958513255353132638255580001895450419999637299306572989247745829010083178826190859036368666535272834449405757786521503015193401705229294996720995758906738354301310244399805160399598156263860980188556544422436959506163477235659862594977734014037664266699027664649126678829811398307103637863656590302592212400371126358785565211441046802506574799342442028369109528671630126703842810232529926999378947109775126439520767246466783128080247310896253767276529260363518491466352184467838819600588430630791337929640854840587710048206142122984336368288691991370726772921257099299735016723982826624925380509021461259600371713877033398822068989060891508406381435053631303825630684053048787693619378662473556871944956685343709582425332433676704662108804367490814728232792622920268001487958224937425311188872835340008478551434367483810923039712660369125359170014308711119555334805482591885255884847824685757547754984752054668292798655988949262155460905614006806843597646726227188508308499291855244833410228787726033333154659618221989903537043565806019778868036924624162835009865747802561810042718523553453838231956337937733956933164747729091302591757458321187316833416644050809199011318523269007260928801660695690431160438685184139256203467494479111060934167247487747931113757314604679814622223264817866658201239460940528072875755288128022125571675541647842444616813738637327739367017358243278892188147744870241673321490206059354604635687421834489819118083159395435977490672000217845699050855827252595390996633381331132569109513819305399255006414432253622053946797264636564130523746097032398150607139982592671873341265182424058349834342292307107078025829031477627197227371663975110628164699725749973415278917130532181261602135238626974498772880806960454026051645940058414061005160232790428224777797935627503299577077782571390229645833288621920852260501209815453911788332223613979391676303071678386369883893916186472244849212615263327809310596438092184030586818599729103066301447469229065887928093549895342851381266460479458564069157081809746472976817472419055307809522022423737360623063536680040548307820524870354374273981131400624846223145752263289028219816418306433562516970286024514609647637507294098953278021918961178105762396272778359439136412461917660330456048208230174713131187980781838194953096434121395679334022131212369230635784838220351568589722976583633080652820597705979780528181156880682085464126906502148928733865144522985368409187735410643735670659931248490224388517707295426169019555796488812437799724308189529651366119412662638343379357332590077135446265774810126694866540525391167202446276268488557145518418865871864823923850596549988509574412684503805814032055478866712051318403009908927834740152671360218327704633786540336020759044436780384276782185581636914432602592833939583163704638222000656002767292993539588920646245132278139755186985325029110465108550646968240361215678339823048550683303288831225058423620889549945214300987342246653605979534839691387251957134705100576257780762667151339021097174795998943958812959894888626890013888237293532259515327358456818650742502143034441320073633039287316003817719334308300673435915100478050195209236485837222712998622234937885173925977354705836032624142500430012546589710837827204823869689404915933698043884129474781607627157299281857487849439574427404604143589453154711473051670264036297375658877776187957261895027916264367809206664254820132332455590561200856758755414935610038989999934759911492778842872612669588103182576381100165894846966563378620884922820909099602276816630784197669654404931713045321073636421431634225394830397866212644216927356936393276285617974440799043325405306287613639220304038369728286229899301061750576822659635223133425378662082261760225530205470824974874360626714564850067476747585668353764401232630452994372324828467510396617321668792329179281068528590731074364978970260680784307210990017367364424938047531250123312400183527352261659493652805247970378434347326315465529532968598992850196538886195981771194004973951323947044431750942033352791025064009704104539968274459632140075593661407409342920124195253090774214627904382233923834864816034261309910811046286650097945370039985687637825831818286317226474481147638010821107867536824580194091540781394833038335764255995625450189711804457562192941067128256173733107976696129889734917584377376163876789318680516044682711693001893288091803349453665372409737635470911773340950956428666638160355676798162362494449553270163967789508758622047160343526500650706440977377834084739361369140044026507959700085928722384428381833534595210204219574302418926413329733711136393130339637557042581803523774086149471833958006470013933929453367782334173587154023988786257603943156801653936002972353608968819045603824040944290666018913293428282680833258686395959337554049748240462092921903044977034351317256967289894308304516543113447288650517777663158122446641357891066083453445417500484388647806317321814249368896166014480355347076899509428865481636165307859019354029576022536830735677619587099349374676135257879391295716696373806891513375482746507171472029038953287384008221083711318384753863917548222201259280349513302224979433834849578184310717645950469926186526584369702672017539479268977098636721068224728529887015269280967040670220714987048390828523305676087220347061756854458564376246353877197851380904288952716650644589366252548981787876198006788465915866191782015931375923217952774943118758810277650936599974568802138173421311612408307846178783389174456156264353098399587029215709130560326164169666373818332657923081584452939388345554543806491281610860706425494092466214380331727961867883898424116571489184873544954487437576511632052143997898314922401842500527831320082500952411949789434009491736483366586472605536406922773969072571909984637210744156431859290406114381480265262895980193125246953704335433182501558816853984947380441044694893237215630235806166160573472087145496540482260174328193443299515273110239716539866921890564191355208676443844388406290095686282232630292640398038523070045391717581167932471594850714202355160420787305637374336848270419144540932352425388677932522396094593044426433599676366610914910247144058523417831822470210366177015168607177425610760917902606667119547301667258337992820615927634219545308114989635367050951905695083246842509637313054492501988094416438086905716732450396815390183686253796442230078582765520355920831764002092082812513619904312820701982606637696417587365292654530282422919993726882276878876510761715922595249011703424618368843539996729051552731425219656519389571584264661983711122265993634832981790261758129266809476658381571668363659411117466131387764517308626650418135731536522214579439932523925832855540655907598941861769340416525673170423623147800380523625100826242101746032217070187288881207913120660937303835308007877319459444986868752325638360047821812573750562534554570353099333209161586240269954960279847981168851983003493065661581105327769140175243777621902500972604949418904471425417340946917474543660464565692767248860832555381698747884121851620735441153631540842216391468420861564700303550744054530174169699384869996795622915856050682078456091928078887625958490077189119305639164570612877148200664282033166740355353613880863187565943800673329012195582338022270549705538235440211413343024625326668988270154396307163503839315736240181494329922879366504357593117923753446639786765265067458146528019909106235203812888103182345636716074476846556903629618726559000945631830776472641705108832067718340801168082517231402173808392803777795077072006019246422349399822403630293177861261412632039054526878767477410152617081376626649029567056865498619304489498220333570305045573163989040110571486070527208212926820243050737370516699470669592032165687303182796788037853031040572661890150957529949118703569205646366719301685250257100301651089720156310778063566042329367108164785679124818862315518033317138614630865760436471804652973736193853921017401900661758113624960123172878941205871854718908121827838641190150979563965104819297217239212098778645081354485391898513638391840875231200103478061033229946205422838810889215230370541851263094779915197101620808236451783687735243343158670137965711116234539449952363316652824548699259360618528699016794307188100207105844124343974914000657055283056258543756496133151550479517490474375725448052417073595832592558332700453786067106784877752353215099782598703598282514524867073687979881157061561463390749574998667898992083656534604263920475726475676821776755164617928411111346163117350956704797051610994323280622800973309702104077404642513886035429886101308848170599198650792680934708603847386355879172821751746785589932003232607258867062880497642904891388588731830260253411097626156532929155690152030797658656135593363179552041460363786220832398952448732836613551781726360660657536004559096037722411697935976622042647328524242721986894929726494930388391153482696555532639960484547801789126036284481594895262062292843811454421233711109908717292033645020018081478592771074974528820324271786475176526972726678458900960007315134535909049182359712766752186974982722428231801102261866483374836085481771932959772317652941344487143679076092502701484606835369952205735409437759767806758064173142462190015435544675173945657431907389137261844373064463946414396741924817255496433616011760434962951341010584081617157927908598733926707657925318539739290855046378208218563408188461439688527126480865916801359777331196694443489382089057294659079942097604943407178191365931958289513585279889680822221435494437115802098540085869988351386157535444275967885039915436099710484595111859911235409051074918907677988850763642736377004192269130942840144180269045739166100563621865444155708682210908397030268544974860783056406482073184214461246728187843183919992459444877397941265179293994892890824529899250794085238070480326277769098267473456387047753585303839566273748815680607856004004699628508646459511151279754013097210530508136502413775920746643028235345772218792262549648757705544217849219899668800064420472610385137212865186341790152035178675907693645851855990916289236173576025109355576562439183892652795237551763381736929225618363861531998192964801184893392863476350711209003596993567194090673394573222640051231023608200098304895112508473787419215064609233887474410759812405134828270687207727305142469983892857710732621040453924051566972796289464307014029939755651150742493542989281344786884491298324041923310680092649652831465614838162431072095101894141325762721657482488346122633468600247813440529126437285885114644587088333743711646405387157719099465768868335704172498988495750428417301062780648821491314400357436177819089598845422983547531709279032248203594018040159614729457193192407017380072914434722303428368257181267000226858754644949769308378593031238745249016859888937806791451135911468932733503088233558114231641032469745848783524387850480904806396959906046860482811335234550172207214521585524869610849483837053955315768684546440639487310271523960369665032427937468084417205204987361935522233132956607031745064394118063708797198659668055480216194312933763526425082276760758309770223503714546221649637743228495804185649792081013093282106017582677160590585209617733590528569146711853637232350083335152027159277999934768620764366422389952366916815762210730529671006320541684073478204043394425855951117893490198641256393694123022776002416792832499425688168572838465403514432934177930635621231382350572015066995318106099961253067231493492749966058594827435111393518363451430577039360006084635506812619848584290121843830965264193253318234446390726016893281241180995775071159159361347689816342679447807540309071988462393688140158496723829172976620802054884996399007266023163669264894725399569316956016974123187340151043454880224815928054309844206734398199873729074986582687689031764146612512907796793338391022300989851373212557839742864251686561348892971070986704830386847536694334644947075544661564497458055166238310135296809751714320544992806321126161248214411191809563829129247133926411183698382336593039251003047629721869848680392400524500620062889700204096689259026722782561083642005947615178246659302130017903723600243018941026709345413877492717944755975298233270425769227426685238344000531193685128180884581919221253098598296861827198449298337400690220149027483127084473621538800272102961536832597280832966997794477814641271138633315462236910056085014995206293498624602591096824307397418791415205553917527999691891414630385685083739795119993492029028683143707110313714655827649873801389315328112567607347816099010501351905845098934372968725402416073446705672840991492187412064598426787107533711721680883158869293511057870575527263495919185240054669419017342803616730202005407823272103877368519200239493756375112957338250348986761980716019886011314483452650061963048816850321375404678872978773338200766375093805963739492748515555933900834066519002723912872417436391575203978637871450085174819020165453647202931528566620547209299409780490950451805242766470774293609158511016544569355731028681627037671648702947245127624516328463438243661998425789847548142197191363788854277477878884222123359180159494814707568889949735818769403814711996494978436732604581440260076660915819220436621685686188214983519260752373612267260953172887855862519227198207752811181482272744693526829468090204525009979468278661004798815943807781004866330651805521090962564813845308954172842864613775368492776937018680795161464291598308260303399887733260968421068353244695866441114048691941851701444963184211756036208725366679875776210816139275722069695945396748081103668314632928563303813287616068987439128536614462771501753270430760899137285397052745479070241299121381953666322589558497637636230017245823601202682631134942305733753073946720640850084779097895953488481066648903954587256439519756484261747119515593346990555790099511471491108716464878452186093435097267470883593895047023779024009617411601173500549185380854220693220170251192730036771410735187909918701161091265147961976787174979132207508186328815009123274393363295021294575552566134259755733027701040639058202135752023747497793922033706278926922473779958413772968353948212474156678707309157582502710224743297976503839403002823321311262847964848690511933951250667078853289222599084647711143174614674614967267142644763192548531230057870227695381172094977972130330397414116404540279824396755166688232573913728103931615694122241669998522672890704727783049161568774452406643619674729338901803633026351060193931279063353035054004588021996360989137091439243677540033626501645952858973507583042982139307615451931715038500211929013558381157819176884761429969235795805776670594424225343725144590057672444648253557525238409905459548816976236333586340835279047696561270203092604801908643158005636689517112431975983112156295791414450011090022517283839925532978185400748413584562834605817568259050640412867304065276900453609098438978371968984272506143870812256538992813510804786895677381579068341395414519930591282195231874591052362733278209862401606344346682968090403966160275430490854800268421927363797205839345516199983392474611375533219287369533021161199156564392537878879722352457520811545648020991208212581682666468827506908921547254216745440115283077408308722765926100407571879245488562107619242182086082105549496691927988802991888502464400396641427396704070953094093607465866766101464663015643857539576458844638650748775396170763267268215313333845541065814593386493188374669010938465750710201246235860443634261308002973897520557058322441768430467601719160912149399448968047411915360890693830580995788052069559663476064914901410917823881589012734266706054694894779491579469576245065748083739386571777327418020201599682423256556234313828163119266869488662352746625417683337482997178164217620961194559707815183967302506499566368191724771719760584241322792894671085024667024414215649163277672020702173635902689129612898816879148113460490603749428932710719970819650613637157073454714107374261421073675107056664715604266221558759440372872140170521705289315464970690403521195063772964503104498713581596415318554704512456751605355179723441990653868651069429025085102534637274759011545683007563530460447783967359458362885371258973860646072856277604187805521807128140737912158444752517522017774056847542312171237890012208614690451248007252648746187778675104938867290038733629541289923621772611186519974445007688840845191755692393934831056984178581036349796464691964162296957963774502464349516203739896219294197154061381096620705645645336494984172613567746900617502997426479372363539788439485699989803906192434861345448141379052696067328786124906415078603803260861158838671955428401632941865506626090461764676721168627899591537532883399685161073477909044920297728936903516265565820492154018943954661597198916410745143192133856228907218017920123421464824269779973578394388684238734761876984596736758995507509919523128805995099926888022700391610071677366991138063981139541230824233374904770719222349269933644552592759079798652233350734211698363681640585701923622225273045599785562545483598664963491651912970413813293816392460747126079163493806063499551108648274793425625652804466600692527774135849904959963572637004466163347518187858783879281392087345111364293691352828681621873819138065605346698341074682555382493107160809264812511025860756934201701764374901689920607682588129764768463315141751697907948724595666179699098721849217072113693079961193607564439335339042367833840274097000628465680280475634925958242485611139526789606981134813270509850220718106330867102970486774332111888949341679582973780141392947904118454760984036322611363014045795667980021743249055779238360290171963061991522915913064524096964609800386838698681416339417212786962044576224727079010791189934646090157430098286747089923609057730541958294922560861742795516458621687420035988406635250713386187809125305259631341805659197166452243397184422449991046744205257470956103720315948857035533496744640858362337498536804978237517430834721519214169655166439386136770697464213074222650063426106840109342731417093131859442568631489893002093417818419382858719554683255874077855764400368592035898948761517848181912381820024288107872497524262945246364191087158820489863132808823455955427442133458879564574240120322597566863478623392943109998555318509007519763362128093311550414892645097137299530115372432718336697235020598986070804324984145973949770535452690157582564994510883121113308909250310949317159098138901730185169109447890439630789638899919434414999075536836812023418543781613712766833724377005128608923843592640858997534035141498734540068374874906571032111276720406265071625292585638556799277927776037357588213457749856206923561583631783141603887657831796054023041017926464172281925844201703293893930975070855507215154335261127730224000086970458691264157845444084367499347415996576336811133749417585893295548196333870274114753784852434805870408848899304835947993980200254093448490246063203390078698462447367050293542031156150457943952882679321907988816597035351193229559503675924689047641954437418831739662284725709345429298024804676961536770711177919231438891379321609949577714048932522806180768410181182073567105150940872315559885283222284572046030211311754143185831452629967609860874385466051372978295025209382184103305017347534184875303484902637084494564941406080279844351130577245460026937267689287895097275367242527083481914700005750973252091283600803399625847932374886560431551360609866628046929998796678545097299372716706878150422562371989172594385759033525623517648748951345433785632989269333188808370126043674204337723449032943653375929826824123582477588333084882039923980509144668928146816472368722848229439912754310470011015000464335400197617776687335138027668448566989129584094101375503350627040780898000173034290858564854860133229920863494536237223401843858006626014212781304590798253966309077266458313267212679200101048425087503816256933526275369948538754761495808857124263655941953802738197077118338357683914336009420598132686813406460214524249882009693492039239980579482405217362913258163881955716510010426663317845354521473392715628292667660889725379309477443102391443699323072295156026307780442690602552845178955643640495858666464195603239041351555444454545508406528899043348005265112656076165261987114882007132214999387027162592392206312101229019486528556247948819078348437235563994220799106022740088417568218708343129169504236340323039656907365578217935985166495800169435775155768910008965732087879895264146708607210985675337105763581232150450368277256350856509670833798498202029565915367681241003977281712176716424244972881038317320314944908406951432565009297593214465141938249599737816493058417658795501301021214363332574391042084602427132789913504762079104836973815039299866772368262567672482781439972791579452552924988911471992129333247585427410561428249919020828331710328173995794112820281651930661531970902325260684477669041353498812567391690522016507635434013605696551310219098681577091226422819628265127473720355515946763133826287812777852138618870814189420190868469398083223619641095065617348121864945469059107447650108812303884459936689049219558646694326035219398570418774071810537278845197368296699446194677743952361410886612927565512795975841982000262728937662285794647204521323693613957872782401574464366333361858048693430200646428853927076849239218768870127111752244225640347331468675704217487923457474512867059468802423051011529863427007263378623890791155512891779056301220878264429959967388984114765480726876771262877811623748843300008754629759748331331671370580935510355335012714518142611425256410909422863708129604443287458941182431233499748419212518848393948271587477231020588218694279150520780444727928584681480933760936028820553274770162116311511434697075711914579213692753135618719531124011200665206832540364318857848192810897592077877514932406259829986847153165374382732457181677411481729275854323345675515803878521338353264977559415757251964061557784671881760845236726579984234182569166169954154834657466042663168989372238032444152848354108676343631048376103381151139360103431203610348847360736297121183061161676126711698222433837895973602952323107766531473050359153138162603466810238757800574719426914335757531777192288524152194082170610149127366985631098619600502159876721868986286820711279549567731354046007402254427036638715352326262779538564919213327544853665033367402199549641185333064164425112999166290580462381511847715780155125683529112642884171603638004821743674780935318507328604269825574251852670829761038813093253173860358428433952115027793155098498068194438281948041850091732719551987766218195801016065563966181136689891904853205285486045112584699173699405717005174874511042064327305796231330480466917750054708650084544498429865834799762589607699229711677961915349759129405165712541673913077037074932521013704904379356697861736212680692453502957358124078682232153118535330950905839281737443665433555974529305119235457088205501668049303212274473259158494537990810881185496409838988659268529012675485067559221072532640963466040706820219501272101969524782447021176678380043013488607612385200079643991071392085787392599564112733409769962605466337021744238308076311974423869544239380323785789992756921384205868878858045416496537073095787423454299343295486059674359879179725526373340201777076232747521979893430154058193211941658216588080571780687543116312750023380372290569748869749037207768861068298388573274527896493938816856193424445297925920617510313116452990438831732187530072998411682255195283304749750142266483011597334586545187748468667448465445948498954090649611070145836020067147405626911009967420672336789023254588801473727771082574513609369063957178870752865048148671895115394459271934559433162518711092691916382780071559771303714177215681166142065730751780883085256027957758799554449420109635300941217360548818847381222956896177459144057177777065589212946712797351320761160388369974068302092190823706623422650399113374639937949017821975816056118351589560782075422554737511059739399339311724139375708997341889142883143942991127400554610445601714391070734877783610216017428786153257320613411516682810252565384975249743387560935283358659438489866427036708297108945158102293946642959696251009354063171599178106607558215633243076265250853749296954854331923561363363454315641052763902841882299986361528757819849891226635328304776692200199016886218527362017804098911746289015512595369185815493506292474169902653983168687710566616918680137057687369929357847236443543510497950682691527839524130506088067457560058030566964791156608911771175909390724006493351665637817776595135864034656730024231779600892748541189186461730836975557992284905392622728876140925400262379812498811689290929917947667692968207368257532562087337275883607909248180603623956921764916322719161779330384478773366897048331021071511775995168820116620021903968815872276306753446545831861910738512852343994050038028989437366272122364950873964374256774351314184870916279067301713155741309193805797667255354077836263238666583866120517553583670485714697192832311115314094374746161083172006014307584872187215119328679690362772926035038774424000653438907767963985868940527853058346549941488187978882824358160313917004431228493027348043917201146172250463515397206327498444467865537654279894058654505475705100294147372658988229108012412599868355876003586597303385222153731737234638678524025192708139181469799673957557460540254497900630959231727177395023592390439965227781666361719934727526046513526412251635644061601812144402380023191019866255207146977153400536664693224161809096956799001066079940676494910311444448100344751101509785351704507050311625093743145300852763194570889772830761723235197224579690224504137961821426287174981574808759747325073335425993899402024268867040314543045399873156817524773339479509283162471659974295903321702825273290286034767628883023403363005570919315487256907772247027576332882622894220304393613558172748805171182016665706624401385627462948926855751096955194540125879086114692334172309418310529232899686501875892733602851430615118318519558439409451903480203832580227790077277071777318232172837887314312027026853479775471362895069424509409630772947778444696699963867456157535843579493561204434374426417150664581148774546557044496422210781119687200321570263656613980934058243152475777163047250638647335934887608922617415887983428495288387960555784993976879369083735261422629163317804934089711779673122147768714581055904936632272945536801077213937692228478687917152268504621635218518760110022545114553968146218683933948006998580153323333724277131973894107909557276177647799363286638816074502188579298072765838869187272616951056157072348073279212651846660648015304300409963976188323134488352953983150053032572813170676306740161445324238023529213870573000979891207561215624069279291323816072179512330719264126977835548896065635319664130575472556197416815434936090837342719001186655221466556658078411385200651240359877382147406933583472012877457661582678896527669230367370585539251410084871055560967528991896721541119612835454279010537209193135629844637576280530735032371466503283250020106902066887629566960527926463972982966174656478622716870328388186416654632656058558376100621103092290393192756007016446094892102683984319829815370118995683725654207110844049239642852715070043248676569575037650031253506195031933392049853708463627389032617555758302988103450153427111497129629947940538513047326153324367243598762851943344376747394887611529529011783372357389727021459024133219800028392515004197757700910311432812220382171545022637416859623180869559875110190595984237484442732490762737203411089178761293728570969911419106831112109249484080090222465982312647165298405210894640632866989510623259872462253590159409329000472529973495938724781341376926612839725921434218824430273715775367754432097683020272892259922784980149322408619776875486478514025015218871566465147681673710234236807131889694761100399716824607740563276171002042662478185079024431874255141636494226968374200996614056522264164065123653379819446842877931402238483523303023383323377818302609873831639953460072248316996563896512056369623544361272538175620652383857235709307915358879597664469316727392681060300896501849875674819636720128768076550415091595477003272713950574765303939891343342421509822047301284121128109891420557345987538288306332983818059465911705333457902634821453304581462421990241250344531648284530959896972675444325744108470705046372107374655996070254924539858017858744469367140475294785544702306100084569183492347918117655307882324353567623790609758020904018958107398302880954066791853105465631459011301071085390326898844081548577962750515227107486571531952816923365609823941261462548387602380779840957466652151084134352714760723276765435090393282761190719343438688486135291600021217394186785264833478193615830005802108583758581814673839961633614494498291117525120041296554102890218216032491689463096596952016574178072492880202706637248381497963842982756893028768113598970107026726439803659375666364062439506824665078412955833744627838973949393002009158643885239878081264810930180064699450400708634799513447693467658354916861696507926812475780181145685746539192632111173787276019833183493584923951355955741006612611008636080973624968411502210065786146290491624479202624074672543439624248070546036792333130532656162159551653820206309473719993237557929085495922086547247311545697086204009416366409932956865969250569690205914978926960795754159306962274350597606963855640291815980996306676128194824643123329445250383300835256967208133371712933083159696637272738092029386135815360564022701613412239328403850050435208913416631013257570493935276512218366953550237002598215068698755724235493303061563904157892463919672870978635466743110611582484877350997159673320232373468850868115918608685683208436895335775144387303181058142374426107905152886400409672262824079757606300463689932717534720397788025392187903754163396947540015831672465680057851423390127848411802251347474383200390054102656859595660570735637090634786184986195228123916555688431688390604960731280845296443628886112661489996446262173199010373648559717193477108272389604378514038545160127383148650237795601567261471106377158103537370055773713461537199020085258845417983244108073670382550445105013941674413619202051818667283677078910260692871953609518515131510888067011648457948495084541462425903420792838544206312371278637992705311343909860796748883749994361500874106615544000920070505818563970016925854502694371866849445405780011223302945269083980270855613341426827257030092304378950136802857070429930678744093472041255486399961045379738917954407249785114802195370834156569618936717960493192205740276780697794390562402794344927170502613596295643764543560220475026136827128875651009636353788857300489325798399853562108041212450303339278455192620541789241680188940226603528845353434816617537381382306844596305431956078774499308618063140921286127564073357658355238403529811397742895160858381776184411429870557827594698087089244125639586949025172748136034153097698073467449674736396969165851932744315093292143064803386257865743077152427312950206956973411079485062165203261716210506054631289512014806858485331585795776958544554269773774232112353782160939625603318797603604010894566654767463237167128720092819046711413368808613017957295918501478579145479540391121815220046902864524278643801917925822775768704466881249623505762593330559653452995207102323460198822014991952244705186467665739501160785415920820049634029235461994988801703139668741900730235547897741004015426589150061276771257298390123152452589688171321519915858335320487024411149472662169759868184286948364695523960540209907673720638940307974820625688573404287722311146066407777681342312871601984937369863864405281403182520704491794621978725222352702128871035376853979774457899509557790808884602777110539810619115839857889142687962940651504352262395915614482220376090901089060686478660583284406181323733308429285469554539340723337365754450284752289675221203371148286693059167693898090954625895527293933106918834028381897333928003750702544802436186803144193105773602053058579947447342793151093742637901523758827253192528634392908923393029951831481039444128827462755370592732935798026257146613689896707069444846701944671592361710896049339561616410672528925459131207988247964928281813529558606582226827633300683020526661121217468579259423140109869120886474237966113019694891053760723960120440656169318588525533321726279524308747449451225846920663398161307433754791271802074762332185691508296354580316413623671539062077465428957161734701224710370285865770584599947709448014340252963943255152522184497633644710945420433849529731951199216188305518207659296828699698700128400319347441235070461130881537234923745356567879199955194648675063823500650643306814113433254701528335382009266221655884347319763051642869021996445251840833484861838711520000292138824209376507492342231222300386411157381926156981795331209889175074122278628700917773645349399886879846660368909985111348598158730293114460477388738717708203194554260126345504486071286028764368762855154207109317184197270914544849907696386829908172307016953029397154055049798769052159492558240295431576998155268009201613722471509783962812920744354386150191842748683634257740212294378474345194280326310453734709724536470589366239038068831849820537826897686912357121804447731233617616041667853722568366395417548250734968645285294884059342755079303960306173067629049668633825447960194137211681005850217570135707891086747394380172474989197925408442715474047893609819959730228970088370451522670568623008602304488292017398632403817992299124368446964283095487677812392002092258045933844343626557075687099114174476358798291470477219004960961699272154680002840474937842189627719017019524021453562891270690265484546752575808434446339103448805057813052972739770294116375994565251909707630963252766153773120763125845901699087255637323653587764146418457101864799850309376886340976947551975438038880371853686369536803776825959036695567624399555822319568843006208071625827405302439052750814307265954679882918792181515204100529141652466765221896135771449220303108023622137295256720098802677786291848701258481021648076658790714476881653089620964245067470962312884962395937913151793316938858526529742175533410771838185326816903284299745526415018047646686244193361460816563600352336300559023937434368286178537167695467567666290246128241747169915070154074776775317510224531381545935237327179143736530320399699425864239213530262160425364016505556460548784802593028516708965079724097399956286353332405779921324077614464739025859803311885450847411382157048837090431626028481303622998877941035096639142425934414769049376551074727389041576163254715927956895107540598315459502309363057268122899314257310011097216396332776277316838020562102954710957930652745045447057743910267998070257741201400292142512016345944904402502635385014110761324207689111930985279540128333504823533065216091088050718993269337497009935797780792314919936689066491563240501813520818823252760176714514045672750693584171607946352533109575662424198412998454161810600291262100333357379584765425976918246561195115989700588376561058745889215878674426392480286331599486212839726363563050583109699365190695247146546080630467853890467055938711284658392353960786997244033684064708599056080813707041102646602813461598507921134355382130245677654894960926931709549460454264407582500089143259012509647852622895570913107591572499563724695726845012014678879435209088051635768993541812529893707787921015272801774176437661943032140079347844332582259846771002091871810861433415398940312728753993515964729249528459064922414289818574913735338214288166405090604078884595570251263881232779995979292874033515438686736298356123834431918700581778847559740680049820259263058211922370637430809576708716876626871595223027629333067502361887317839968321040823568255973990940017856763111056790460819222627907427112175574004688341955810807797787571829796273598949914601696194946583096498674572666513444603473282639342431237652538514949233887313798907288526181744764599142134007784159334945287362025307124610986495415684094171786730172653110851547968397895940672222626996255658066043098365214733837041703522615638829805605561346333417358783632990467116769323246389166089870931555300239320040272913385481836015147018421210990707146136004074331039035988168426156664147095764952910702065974993877639844736743411172031346256293412856582409171177868166311407944597949347020436155548306324293608183231768790559067289459429511372163246226938084648085894131832389815021492610850539340701368506295237156613667305235725824374889008952223613275200501079325743562244308902119356723864536825172471571346025869231372727502611732026791513899114138990447023424663756730387053683142630920372562257048021487153062267151955493744240507068177298636637843334670615422204409970200689876920142735854418747486885917842548665845177065907073233760005431927175296914995905858819688381642462220215182822693643433534136626782173586295475734479495842992764414283590567865875075836390012018432890630147691673720847929590950498200751660126565381588761029032861938264080821253342812276467971394031597942992581457664694298812114095168051395710754145650068355261305816085534020273876682302339203832572843590893476542622346031699185529948527673556259921240587899975244834984681553994304075125993017554446624223249036874641198482488844203056248750613811764783587177732212655152722565103365962831730188844835635233953517103076445280158211315770500763241864863472102209218894336609177267271854548914612810723480449695403689132752006690329376617905472219517918709084465543916823861481958858201254384905097065699683931248594447817368314549115558330078048557335616682701023036187373045417675293246412763669623849521784542922458314375620340875423124866897852595349697238700600838020918871203883222368900429773656085180102120676759019113788775662196803506580180701839345950680742612902948658278909595566723256986033890761253253192848405302445084647317346524310192614620463777545030262090890334609112814304196901060072871832179905436702488497237866904037950187126397275222237871898927759496361218131558731870936345755489225336631738740588996718530369520202395092795933169199644622677451852189477442319590563553945535707338188587403937628356095900781740914797968288587582260937491117889012524528772646988401406055821114751150920937054556688272875468347614087886664234118450525963656845814499024591402804099374515771566597583459292933937656028669987888384152535927829623050809621427843930481507625551505658636550301809305819960920430351464070380257484077610663044127225404653682791739095442269258007974857139139016082032084245362626491466419012705972705944582332070982730462877972801311603590772626774900221408919166584787586387524154847071024704249303573750477168344268166151471718341831651584123920886065424384624875825131653627732563692125590639277596513967883144346939117947746092513923512843765279827062761336597959911502949405094808285507259364736151504079267335423931148318003100993827485980587731770157738009320792789542674078614376048534189148784082327346396992081773694916604240153700392336171091330116063230713947126453309372234539682627529543619983798077846633404588399060212666769164503795674423389488821779073002491020719818461640137748029516636290820491072721999198735278103507293964623261768744125676773331021947950537911640319432207795990733038830038874681273892491324562040462620346577521141763024461645235830381024146837963020692719094860805125239794508043198613851982675371398349173160102283519820787761090778238437585059106199594095757916128771013824944330752525920733728872261427993856549612380351087658586414943736341413405298118778840792713288167696564420856592471188401289209332653301648316718144310961932089458519480045239957792211197179162892586639132369233146700737260900897152625235133098554433373203637012672601742704202106334970215738334576689458480256717979340387698815406871286116299346236078538514791309001477406875599686326877776603867846836083243274847750952106193877324061830070262264931671911038882210151258541144969112852265645001119692398582651105635634320130763767722641286127480314171461178981339165844292077410238195001601360125545886999393691290390215956094914496634035426779813621056404025053178130571615684425101549228748084954107828975954942792148103821091390528927081620764551500261047305984955644298737107619020311628904685485659872714118539360652004250661519393914678844458038772436427893047160781725776734584800136938648169454004905716092787107139956475450883639028351912393084295032267246486769197791502174801550752378572311006935086119962868017648370559640499688795127243538721682023908047430873432456601970518324959144694083917968163229744310113904369154837083973949189438350673952150375151940814995723793362564626842019020767756816264885092762863972781307912284350578920047178894557247637842323008768110027817482218490148187897904813478881694572588055111713162593659546280540510757150544809616938695344192768948478435993540133175926039156552632592599330762743495367325293020664467732640185691231978960352476978712643645872909378303347148518216357018133038555935079449849932434898223269583071663669180349701099029279777638549021021250954896728381801392667621717293320982729366030049378493867056727365793752410695656148227481219218610164358438268013842769340607133997016875909427210636983218521758340400871642845258265749324892471854483662460804879314324931052053548708203599742267597980939051017648004095584139335555155796759324441206043012946745299675511344971520470305626566772237206383759804093352021164522021132814013601847242073563708781415393240476152173225569787177269794349156525179735325473585923402051388669583234281015320714342289192054976242753262256574320012718070943689265583518908289439747632951030336935270789504050138001892527188645408856886146397914167727604719424282159435804038823240332537033655724338198276903500988506118234480750115836948973317365438164115065222539068199036193756546580477544243620607294552745129585164822563278352131671705272881242780141847396962513824814115332659230804423436897881844476619334776070015576971167465558040954005020881501220765457691885535124381768752516026507288367186101781441848598423039977007565408048904775399525750717303401950171631476640411834099067946630512150437904020147887538660195972660876953580410508364866786864988821193759774964787888703996336762853580123576699037873334873486244343322590520754692405245028482725721770408792604989774063512844025256228970810688159207348727561730370513075820421012709357103285451780697100487493497871224859361628469721425813168716305395132558174209492262838260269619997676808509919444085836500924766790590480568347671623513215938605926464300144092125784026973644246654897735810846906550482124678665333655859529830404769368362876299402822697040028270848138525617022905191564300286419625707574096524301969369710244254972239708608404780651909258644261207830690537251889911360383193187770879537204750495727215687846918681490364251350169386823274211303221876653364037898373058097219349923414192202795038421699970512276260128402811995013901501342772640026152081863049880315376312417935618453743212027161781350662946261190304061901288664843634017346536758758240593814143073954805696836378895557804756732512774022729627996014572550209349495640740857497950158775504113405596057459481135866512446666731634800845474568392368497600485195367582457056550701397703663278026385008784049324950060524591316091463257203810248813520270963584185848572417304487027812309342638681040497935647169379671266956782318619306662409287888310379103719794829079539758599334457598425367730043719555000627062763321801539932347303606163782024511724605031850867611755978329391591483627577207120016861183968893949827992867539873889888922487763174848779065330014631009800748988260086363102227076870823485879604667216206342081505028361618487946516265835662078554003252044150547800317269613072745248258385160895786208153194043046743123613440690370018657042793639328595848226759030040099285730554714878073647684235185409795728972732793768622689755785710720355474579058763724504337899297964249406782301154825587949216674932838271891198481903021655689313598377273191805567971709542224789895238318496592233388176742846419431885320793111759570141722745072859302447532669905324153417582548906285842184574352092756247596870929787227590438403716090959563247268518866032425693948590574566765914748104192334663428219388761783928367859697070405904608832213680151752547561425426529842309521140826406872496051262052864606734563533142137008786714621327027987251029528714535821403448829001158398937425737258644667822501626314268107960677964560759112215577305967253493697763991307408567191727457365124998107220600328565152184456162293439367725353086592476415247999506582421454033233719667339119664164471347464221250346974562799557588929223705097561571968606833696531539262873785065529580180216408495983125366789615516623016995990915068869327546591446101299067438057825918435469957397914559505459458217764319057336633404371441109163379991278894168585204252630302093807168557585414113799665048483757286588538376139375438942734225387438979908470496902536344267054447695475181703822806069260750242739735471648155811657538085385100515444712059264451565967250477586399973123877062070462225135633197650579432180187164312663998791164755062866052478526586828896017851172807337483353644030566289475670002017850019888991495988715207887405067031649988075365465316962908545839980409210312592221836744028118398588584673887958603986588860534016911578008763763880664761399522096610263093049082374809836128554601895145049815046946760135258483740619912435155273965613659673831145792300351487414918262682756927990559434961343356753440665839780010679340548351618873166899608538528269988661915898838865130518804264995298342176674541534736648746019221093348033641725479144289203509047866827074413217188289271967753012890252894258621752449143719158910986353891043450911000070584516637883911112295009684711878147977682574871003689193681153312698329913406151195201755960891063106823740350891782521167264308955788818866696238266716146794680540710611575813925850345678233589304932187145125122549479591910404419506087453478262665617377177103060830321177274095859885928355020761342042915995850696416111875479847547252597343038003890868050170749384746371606191835980854978045887556701261056667675109184048074699284037853291160338537571331904994214010952753032274957163450638992752363573362473415969409026088396744202355951588868644654787171732566258736095214419965251853423063236903492878123337697410175662613843495460516993983634375115602506248940004967072794433308066202460699622286667810772039206315457950322760539827614777562610540171283663766703250418932386748007055829835794837934176497923401773998632369655583114999315624503198379566680723281859129447039794989734859848490003426273736799203211210024363021007089096480972405908721259764739422827955765876172372728879907350204450229574687445652237007020782003510143905634878670327510324276117074413042911630214136486610645725440777825665333229378621478850393661095594370663134487074276221869198528642996046501136985348041684588866824782196735680667420206933197884248671102999338003797064217998539415204212725841397990758768096753684602894292409783616164460790971466776678813140159394466564774859600873512782977780694764294104430447561348860169378743476911536843815873990877060872703672629772412003180834132702814936303383475542141581018932445396948744790794737488599537046354480006233578095095519063711223029256559599490834172821576583483431643580213936393271006669214187702954200345931213574303168821202842435049792711414682233842768883026224532087286319048922849624118715319870789556400628549767693430637450501452655892492100379644700950013109652828568278692637864726969922658966713831955006125709312391054284516467635619162840694569411398042069909965013781758850875302728427285240362079357723096920336303151702515264086719104398799383259117189589976175160888519604024880726226640741469308032303504292647162841108657063443361425504521996517872909262891419327327280230455399127092324996161317225470438951399689504788773247008673858883665400615054438426603602838388141550211941160284719205203150935999090539896023636990707037361967074458728521263673630772066848906562303226790909879961744452974895510713474708691383410252599360917498223610635546661486960879661755142422168401074473321440829635251389002257184213055589409675155066456177218593284003660539744052860366301429675692210774823333498862303529703869109500254560948786087008494433963399883137097660375481665257844576373934490774490464610997376822677853860244479967539583813909801790995734138687952343112637611386107073275433159172474015991795386659658354012250277219814725398210387543645166010801306055418731042563916943093753682684289309181117312357560657064584340937133314944362885475085842169413149341750487611909395964334634454217845101205877165144438208285669620587809315660651084914103086200006788777625506466235626836443667655131548962819309024944757113539436608708787374122847290582849003682017015489682836396324879214788829289987477730255223085618359403199905212961761984237198403657701524916167201205928508556207359535104007818781165120106671520817187434555821792134559242453235359750526475221587810954561365376578961940168434237071219647153595958316788258991534355581697253812901544548111479880795858156658341535249464981935426868871543375855045755794815012602238337774819635727160966779969504334519221487753485250416210665547938261416068230124240523108124497520474949556717702107248668598302592018712831071431690103715507541918708404743454161422159161438559728214425421277166186880089209193107722325792070591614697802331958141157660782932147599134957388703667268512107223947590318945017522084064540366592029347165876100982660979688745248787527234384653822763894051193825375408798605215378101238884453181578719417780432500692611093691598199832584430083243889307857236072859364382299659616742539645011296453238011655307866967251155206040009578036021602606089711174964834806200133673657288878947737983693813066680852867799974556026071262751142477292938842616583071942106831068416811610247859890578669614623215234990817282138473318649111204624845652373642618534574359502592771520298228246606416939591056142297279533933463665362741526620186407044656021294693964463497100221709474499613966350240394748366400257413057248336472263197592800694118957754927533656739412669048237965682154970331040242863297535071891131595155409225321925353918332909766015825981029306715415861649214894874397926413781844287939172612445485281452404640914564680509087413923446559362461449467931015703177792463959235186050607693741059057059624990642177523273182178040737506770948849361746077487893802030419361267322799186051933598303535918133545698028094641265121685641345579072119992429517325630761139177753110560614524774255607628751065765680812270421835393299812315811870316628452821404032772387198278184278343318581629317579427545638768951906894295363176153271639348981672731899910920712576689663056693483191189086249187072419555385364194051492610003340264736224551490471855226353744934124862022442480240372404550328503327749117871094269215858415499285532551377700854930018500745196191961465133256563731833443602878248757182495386964093608180817991432871906753396479283381434968176330847026958544541939231284720170643474363630672119619822704579011379682330909145214333328156000375688823518658695257516806776995130208390362035141883053606939842513065724286821132763714687442525520301401254152060377515987383138399033902991422469283898080180593716645951218407665249874490535712839592722410936649576829874295353294312271142885213326076900510344655712229216539245946523223850588408334395968474029070688813616734363410580275451536807741601001861344665931273740774080048318885083167095810209637089730044958855832772564438681012902129189108679378823769988877691940814923118684059224468203741855319448522227529221781048063662933146470496284974076961887695104686694309566482733417877172820925853452399221722388790647637587559023469489039128881014977647431101470699818163210535277064139422613710163532207976493803221136325503935846705877816513113906322589797915500747005509270343532223085685518790999098746377675309204343801203884999812968561600366258180922585279117648440614717320358899665300012076395056581486211805538573694148007637325733350046851535164331173494149900766128582952088684383397728903991542253848375359112631002128771641508465432773456934795352717866134159566591649123960120648131567714043450664002207279420134530468074786255627289711250529547523232737230906698684414087512492415206722494634540764229328017768140930128971125219281427172033084635803002997124159246643678504463279636319144079756256782401033953330953977553684206562828134149727288245478023399617595260924834051049807603750232392619931872732249998054026845392323509027426121388425635137406472824970295430489802198928399058192419581001787320190265697276022835571323648278895695079045335753231291980422509485353610744033646364676220850526253608069192059553370607537586080466911616180280630751727361492702883219362191420796134549684248606309512202789526861620644158588939338887633319349626908240072334284459251904056284537661092516779545761940648095840575049389158645253257196762488042606923946078197215216319987424738993673779823463733435379955552485809284133509521665427232958633591278316313424252742918537367278033746744066396027723886356409425176456827245393190342101801826949467054519796817313217392259513577015668257063796998417522605179298556476395691103602417274616295166564258384978887173145587519606575523329037157903079012028213513447301757887931679667653481448302097942632655389081052423559841929150800775588077875235792081721828555323264683978609851855787264920134459194846434717599300114669586309095166314236773619660245775992282655428732262294661393506968067858068090535679834594475299185765123421255861869262033344415701318139624014067927110296763702044082308405928699434236394207453256407361982845699491122154906032341067841821877274028798263275929682897958569717513601125956986279718946737800803229050796561476517930698898627831663190360112972924878195558685126145918503937488596077495664156055889489148313204520898118407493817219064966328811055650739669145567580216293239329288557949163599332657019660922910558656935270503280030389461011482397779214695404229243649195455405519414513500639558868190695029039243545024565846608571889780354768507043260028279846224801300066373414424920693265638703504564645050380246668664964277125703937010224697020272730834043835784001473972406231308819457313732211778377152504899384924926017698413487552861370434121888290202135660232108075532422701624432304828971430411899509762791806970952439609051256320297372910338306090598213988445304171675071281475026229614857698257020231866687565818992914192802333146224511106464621772954339102248680404578890556811160632486633223685830438907867210974170220031123162943518261780852713106770951364910855054466536488578904351679170900692410561742073508932041788208903711321823676627058249064632460316501168816848662067448049197891878661792714440858409460635313142091294489273026758924257832046616654040742581758705300143338656407916394822126886007564904850153394620650009128432235012559646770965297673483554862363420875689967651443581200591690748266909249382407565410556031506265242839501283567708031466254143635245479956862264783812054619859960466215094508370126792966759520485842899983510001376806962080484633389061240309844340964416083131956430080566242978479074152410016388891047949503388748883012615711513485029058231097840607710316672033191096728824677770282847562606852460495658583372484351955819305552593588776580788128327218670074730723038543694901066152028953034468090973233706487217794505056658478064146306796807837142390818469428332631881189883675517566554535516950230946275121299028622575679336858254343560260055097158805119918678353921661771213735442674179669032221139882121983154520670881303419267487542629795637216648904986221849175431944015245013837383636411720151894134438188851845736105437897877239244922301032129490820963012302254413001373740702898165122903976196908768795268947753504852352377166953533572548758855153118151593671788216006373958466882069153850101196009145617693220533631673198754344189610845320604841742276564567937720423182436969493001956820533680166473857527010816340439763597704981756068193270219788719093499072195197800280826724562518197503065005978277421652245806969016391972864327754085011788876482222446888463478437525938791041847479309393263029989713270053564837112411638615769883773022619066088282655773213889006165806737213971048693138005516218714835670640795244680930742933086682499205881575378379537100915239333540442248707887302741362781747399341822208912951788677454873482034052980515124878781701401777905076196325432762496575138198115930130599185886334092115842602312094919148938367586655595652485961142286827442456118580246304268391409768712491419024672252931060707650976477286331320888791845894417385057693428005765846205305907480798994727072396091075490863808747068272930152964877320437927902385235927896722320513883702732347682125537996833742232909885510767212103563565859086884783459041058085811306571193276910124634276440744778158682324845474555054136291890218081535080593387768958967835864222060963105588326048367891399921638279091556868928939478534312054524505539923975021273242833887961279364426499842421370152488862993650431720409280023112308206221426308050272823481312537932421769772712887156664787232466167092772661782435931601171270290236613385394643886276933666036331840384628431708647936545012578018758435360672079894449708501714210640582902212356238297210425635295421936789247896370395034476774854909774825140597617388587177199716523356446301583334158690501554024949098330664323101213495565474778468079922539343546026835221810523342006145798014995061242565544589791105257874106378329596065843180785807456565212591634228832769645995092336959828449854536822325872004655784824390597405674827932019348518364728503090129643563053045374559394607423142444477657009474641393327454847452315921527085614604792299252942037251031096478187233951769752376798384003409172758166243298919527617618714654972174919939816602688369709327830352055015460845082375371430877046630550051687918913275534886646685888035661375916855042697888741887418550059869819479289526045032653732736885639094495876770840283453561270722147483811398272387697031303409473383547649659006589208488743999785129302145135430773473895598042615026688543913377600375842097152361099228973331244183760818070404750014536032608680209135883477716626082381174833528754979324430951653040164239611232208184840775367274293457841881103437717127471275926680726129997631853397654798626115548886640758340982452585014467435250996355707257484756322049985776945777432741981367297046532643273999756677835654996751716302020764912100665321910109581994529602564797582739839682743225933706474627328878233506091059461724646975133397469140331918292931651451996423821171792427278790540226685907274265058196731024119133526973804657302570258109640961633247537148228477142362671381973294383183610217245260184558017047158562390477060151859403660131746736329320712759764485804066307997186760047947749307231333933238714293660921177620085895236875916369642665475315809380974745952817992969762276997989923350205891530516638980852645438733443331774901409113931832600261604229504782123946959880978005117938313852686195813155728408675103450563632747374331691090492008425389324860200967308578467029428876740302488498089907219040918105618385321770386994616129594297238246459397066779838081310888989670898913794218731935125689680929319035179041978062707489733161854945859671199229056036042263158542502877735693262142238055125332579364182048860977377519313002359381604481326030033101508513809545436399112810539757358360600183849828535400894027314696669456238891939179167554767894044811379743365486282911675962459137895853645695435354899203746438852239003122135430651704821453697240731894476010449581351907171156012168424867189435158733654589464523324401829632002564273624686239544833928779591637306329004408260618549770916730429915565667575327481913395516931715426167211371901989647108414470440762663706185547037032136872508139419276951734139196154777184519339806587013531740430126551063372829879813519173806742377964503478962229561988590627927766804357577117955319997416211003144278168969108324228850622889671788075879044174521721106869085064986690841951911911568298036455112240133595782418740289115065845592614454494459046676440473403343267384196490369571129823593625935877456477042827834900519025378534095431679478415212115819632664736299682163240212768029809149550224504489917737656642746315404514806929892393976455973820782674663284048906671723345983724153530812189834863675249294965167198388669813082402343600261409479986813812539719097293685550829694914791488093386714138843181315489951923195724834013668756284511741410290573689122966788956860030631413133163911447446450913022095730738181941562421740654495656714926864155461964742565798380409899062968615235297188956249135784992850684948125915469983270900839111369382212601141939770297564402819509623508919433374755674836720218957314771545620728744112935948360247201008971095274221936694849130091821884097665765212701641557083300245413942856842752837798956152441097144095295100297439847034741488897888341313321442324783416085820003455317843995531388349908596127041895391151844457882727219822634175094613921766604419291384481206313010770265858170683813831093140534829249049440089398181710623830337257967991784225977855854907819773278407522176093494256890756108046833575298893700321833849083516326475857151856952045422812925288794168813896240985464392065171207401011829827600463472618185947442364264393814268149092993543537270462044056516187441017808565897353493563516490776295206325782676207678565559568942740592199347509010932255818721346948193546292552793600572890240601759071329906780535925713332053612852404703350035662559104334569797154001478230580547664766580771276041918801097003132690670545102929640990822981771931847508569304308693909917542014365260751697224957227318503523564097587730450066146175385383352062897320298199731084965674287152299962329077155443732643050953556234615158370904357862911648056538243415317559112271192529738069526072266554924864134301905748540758676928329535749355841007471996874362902614593378747236682663397027565030098608620183097726131748768673231306747547080470096835554756477960693948354410466388029785925955984520644393788932969374440742295648753450868371899657992271173424349007617038016289966371648937252653291611971369582426926210972484580219986039769055804546567025469719446699808274329008558580385745277611478325458005502843152529252738372479147372231400389539997977267329846482270170195485811180166474957758919201332442199742643521161062508011465821580154578554510435947490411352256203668024213015013531048957333424314352527057877316628234081615374207383352108647004823579462043435184974320540131563434799580135465011630985620319376262466422236093756445855631809987714006279657256631001450502010934795915844461239466271363877966378143579964706279326406510070837136730106067464835158345132025802266953231037257388285914709419059803382933695379805506163145666535781556005080782605378597679752905290488931328840443622343499760520589583227172266608337761041043931208331199186147859434291255554432323840560811774946754520325169262658405737223298948784011442965108407894141627106413076315005053805562110476177846555336931858783583403691664684108659154767153443095759907417143565477722095074215831541639731903429517520101785926029893566318320040756077493027284045406811697416000722251267152788917279220546873362862731041740387878782954843634745589048120082621845697241988871372204998053952006825551732964526632911396170854952447906001169911305183597782212093701072989220579661661345390420918434455594964856320652006555291657237267207847460432863462815628083557187882532554589049282487259061580391463660849213136096960500511394740628521289476933187515819427161317399896032883179021083631273589187153807481711040384776002692013045097706367101610655274544157985563241113889295318376826543710236362831468892314804064530697797820712643566901875778547242423045164774301055330220486781938202272346550123977041911956739753124100799337354599841302511928264413944006786546151751787341394135994297654907503667241455046465421796304426868821851858036378341527944005737657522056670268025828820896894592154560850878700233664055053108102474434594938031942781815603377237012671678624690238726568427810468499994760856930446827935025567887770518828526198258742619890720129622587463415841320600383191207914254444728970403188076089123482138030304375567111961584739231464254415150936952237871685354127761836663931309381594371309845954921298792412042939042679225286138338600095854595200338038621306845252918170940311840455099732078118781882609264731484704464771528082740198580951542018523366133274929417538700347897554931534475302101955873787416188530201718677546747667075718513438142511506341022008433330617185511605987826643152685137045290738878484597802052186965322232355039928098798567607178574275052426812578497414734555103709373213206139221876194774807885501776630713381549467932319300574088976989728279087616435583468146908192308534137767538920394281474592043682291332985866592805840741733124964766779662734240752902430028066827453084325603772830451416809979646442603952858975416285804874790681525564475462962480076810146060339692087592725301267502172007968444249233722588315579225269701753205048036651008255854381627440046724950423709999430572652635523137423304178099595394220893684595957830041683658749050895584369044809969197012388084545036383052237234343755768649402531576467559200337733813932666524229992425112335754744955377506535382456308977283473691913498153607042735465553378344175848037246350278708051776805207459350928082363303184252101212961451163794870370197403737145589139461272079433019887496763920356142583348902797908407179985227798895189250319239132340559222616857952837095807787592364185166833678457466530924468647004068337613494679794765157900039014693020829567787012260053451926849334950685829714207356100597813279769459501229229996727627986561222772416227535195160563441331344228107056229346279101706687993648023615922871797999897096285020718135179260626159013315879617012163659416356105797261674563769094156706949276574651088817521905988078730014641275815227619275072426423933204368672555005001511737704608138216461944432904620832771413733520591218280498357657542158205347574962617007841631921146394107438541908554466379160383109409101882183574260709774473499735112757518737363332232815013548691589515974608106149098816968472359585983305310021939656505055068069405655227535891109890013869436060146300583172744961586354093691710154265247013857016960791515817738109216724546267381852429417712134571389728735432131220127405069765003204996649169176259677344522078654319821344119860223171070918404530989513951675409857302824803061496244889447934718254575152777046774392870370607433898505457971712561211834440877493414851812210782288671143261084743629863579791753472058528157465589933226924243389674116663417851569040122976129235784942561223725055696893715367472337705668172529952567034169394029395393529221843624236630097197074843987883058135419194331701485475955858224749743253794471070370764849007837642610174718636542621816683871262002990801887139150452455411769263462789131476737639441088586755444039505075965050208671642861396010101090310356126303973197404592899896765769973902698094802115905334823640726041320267884826609471848671838347400355653838941184268198832904221200079477018625665067323052172337643344186365682097807545368244118051050789835194684818295403467459874655703199107845015317510820286338522785444774031069907057541270128312579698430496774601717152870289532847217059548802723205077297087254571602199707781488901360183452911944007250310894694296565510992555595487812772980094301966134732027450299411142278215012405652972186921940494702350103655621032180168821248974287949046615576816619828651061938388243131458347629825565661310212901981137211244482619512212988647111921189826455091839830171259770087095527393888156409347188278679756139125650009205299781304029992907443758100669829508038627777645842018350192371142939760536624059917602084205736715295055204098583576565133247751906429605317719936146372284509302660213099644301977677991017992538791989271590060672233138493587538790581743349744423549524968746368531627654986312458648659509103081083741294441621279686385419732536512264031301413937875260102339383944370885207856762749268397516623927456885558011058451408596456303996161130669018341469285596221129515791768739979109193331923913811142329385145015165055580885867035301483799898162964944327489276201652121084184586552820270395081474728298325406006498132856170006582740353780569252981336354679637365879218499520380351242423537314849993292714680433334887255945488178123818396237183283258252181254123302477298002435590066988454906435045379246943574172970793760883504128173546262588334674791895610096057817971623738196469380876437696223307254119345444982993399961287915987133602824553512550718461451810993716860996841160577808932504645345871401256437750816754499561124344378109753275490552764043886411966513059915606547160786653113558334148390438009254781631792379900951693684360083134104198830852768384256338857387863764716554227061196698565934317446003982049708020693449531243986825194516162079778868492307814556102542039269009496873447759161696482363322621353224524045731649696015502503758134659237004036279917662985377368374498705403287697047351915980367130236451398676557303062536916641607209133065684795146550866973384162495102301732527564274450593421658949775428201910525325482209219483262054058656611978011530680477290377802354354565237333962686966145175653725802418743546983007288268220246873378362218479340148714737746061195107095002991381915259253817528391314734331779697613353160471610523313628937051365623796066940202106315104759444720102762359591764348615915561638392158641069331272722086420042032596405954699033092016941500133980532293890233842192226709208418692272638089928823451736268288636199967348097926095652919578165152130247856433228583075760913971739892935949154199355793888498323570296088229766673622784242602814442839117652303164805968659084439719554238213632865385153795764231011065396246266864385327518835118052403921925087564904360451709651072496755238324183266042204416922013906525960041514651739709489344873298639421656582487895092219668313692148958493082221250706362970896764571337055895218053375524451611640453921227059299886825426302547605104868827818106566727989247515776571538357899054511639394843007933980754712742660271737236744745461926480249780483916427281943845334440879453298688520815186952478122928342891772764582581655449351459685791528190328671482850680258559463250748036288666102315508547252125572680381558222331797258679937750971515136281608848969992949117245916857108928031558542720743994777831423657604574619907116087866154785801277591026478448942133376999226008751905503288428688578823044664472549220467325014417638129730001360850002871262104826854004230426717870998018912270359285812780033060806426374561421790803292552250928651505791746095610235092202537223720861274730532630463172981753229019354293040844543532556133772722824268500170086996812764514980563507326833549768135973475840845665539407476875278201078289012385618204702194292108032137749366983129637921000986312199985331101671779461062355122435334618168820710494392865379655950480252205422930788923927414513084714017008631606402877615737134998773667578538453505605197426979809706469496407169250293144772448080524248299280409224259458943844037921628076281358693354232674623038245486572711038462583591858796530445152259845093028640199275628427044497341816794183133354303125925865061696953881845227938082576637529590513662542258346191060772213324201608378941651835324225297938720575357313850540641887280736796102343845018024946994136594024324004953616811365287048689254850399068981559615445847611678941541432640279115068061948657456324668174163307558545125541079434687989743073101388420205591491577198932542690912738414298500691323427708122068093762872279862690250873648647958909286182939156646326330198566247163525458438399244653190214605200063455262030398618366229154512583650620299228115390841744472471068670682702519721504239336512436106823770673748558173045794891816540613802139152540401234290128769179948858840179961446017278220760150740279785775535113643091408741295171240881812858835846649367869153842548420945096917326225418853666388409398006633668947850324598805755944236817255826227576457678323284706886229405402144905891655124085129381024546309980831469541464505924282414589049046314926994559425848107266190465509132144414471239315969849064873584550380863786929027373624322038539175411188364993336002084142897647177453538158099687563836557116383469931879848656181354602327596324706245410093874910071485339625618777779826069387727395147145493220201232225427125448022807691299441154884981884057940647864194807991618094350718955221420392892356560502108269787363351455641076764184807961390319017480754327367089371087019956824773516617611414513200541755397899498917382015640655411347105857842161815201885371773169389527540267065569846680017265019841828777080978715241411141058621642145880744674663952226712570645774957320522881588798197910563550036829622047753065466284469079632651873701376758926220129029354831065299758584597931064466078318679987515533085080656362227892681640646869347051600898883852211382765531694725695488306590138794488638285661456542980661611642163417092764048755623391427958049777670280137670336353476812770538920623032111821889435269755673637598082148287234612751490517685143549573220374279253052026848960921424838460473013011105961711076147612013402639909535173453259850294472712239797024563229348152336534591129562216524975400805631580338261478994013814869188413991099318767335939866962613896142760998099044447183495050967944276993838773898254081728395640825127823110133984309155508683552370399652934438836443404298576474079889317958124813486616027613136420562464360731604174200782916067934425359591424070540302024475592160791883867348167582073834961088222269111916571840006386702260572189798676592930253854874382940398126010802339206938220975770619723623660078722434378191143078600907669199119999276377970987618141389971399597410596638981699878884784616358222811333100405960314129275858511369957216047766846041991074593120827491870048354659347147489907617556576980225716191126554001617815836331164584205791752259056290407148823566128674019903746789763589120978156353706728943763829056644273314242181258540585351659071148961475590975540354302920321719860732963995720349148454091486244835278701186375584157174900485280977064078666607361929756863547339663055855440761388526613839266194628911797609222061623468673866313763083108740613451255954907284455826402349616146275068647797793154980570724067793093496818181152209577749576496848148500707283474471367054407236737953947276736322918352847199302819076041177147163848757410601377169880021654948152512057157381770634021537570551326880230627448722780276760102940068171956765315254789027460838924969859106799861784637388357009557653790001334811473968695461319815517971046113714061757572335732386882161011204208439311037925358662875737395563476114088156830018671703166652165066028986187025441458071612400968212869751608984889191671752664184251797685256590609322245847835146193591656559429563902145233033585845161616677246158931067334125137243472614868118550049297864088192100025526324017225473672800098073695756769929629153183261161191389857315207762628266330906309034692616184648568444854768996356271240994926663300124935047946624002666898304066637558724362220469388264773774641979299302797308233806493957918904628926927868380279086754759182225067563772635875048096940176100430036388958468226171531196906890863138592369602329577506367453443639164234888358386803311582316215658878297699422863407412551292197771701298499289652400453401983085700930329800134710048818338857522965503322437021678984717649129905219293813426316879821311574165378149514625858860976182985082525919044960906622388443521378027520130354316769011646204887026284216434524809180798454127918066256141768624280077389502407166311642192201245899921605061979584222879240964408972625748541947743834541881117540365707417737952100529041455181696847606707489806324424053311338858768887105552379450086858719862100042394553852059055126369065674312893413470738434403140149152501449910496437084047012533227533690513236193651991035499440430226587846609948489015291772834820478036797847387477186267332562094995975787062172811629252550635972949957563255159635576538570825959192931036590286700425026523611325533089904697445591152942189571035012870371588744274497874942952299208772886079113966951265395351627247124832236643229445183362768822708003418430698742551074329815738859991775750412057572807153227779448666802529371977267765098234188293881880506064286019807049976037511103172798138818447651773413701689185547174158271308296654660021022244313254190536590530488964628229708711505811430307096384523141904899504984523046707281991437342682973906777835441975205603683314483281028748705712255755435801291092483579175523466852570647495788179080128753265098041331009069235961091496841735301842563620637724799781282008089195198847670358849381038048934994313393008194154996171895371702764576845424423861345342242977038111868146315065275680802012179949270716049144232943839646050374849314643659214844381210187654935916027643371240756383287799983037171837788416073432169532958557938108389602409071329077739401251461001978046791283968303360208610346617422767455391237739796566123036004196037604751299650388358242855246585558629449146476569215146442658537189096177458560203752513292937211366366619453824968886647798227869533048837177321479588027397301376639794395920539889894171221188077945479209859182436859987777078946413844461601190552688613259520718579228710097384748870916695810798852602887459535356879451287703402212382572305332448965284036474547626648769953072946031673542305149380876203615878470262915610240400295942121377831513479791247431044054762172279831839531286830952656140831807666872643215627512238611160076963296786400127116491824553954603125127093276169487413566857607240026884959641138643101694190770274446226104506002452497974148272849945348098910310763199709405389710634196903237355393555288884267923876948374731870112765410292132553949592866333242745197673381850323227188097467013671729582203377337586409550364811423176867553369605738461661566247504757760387116084433092027058663554092885531929860159738054833286406621219517850548573284142083094630034137211737719415424746375702624256058383789731755367238852081018298082453334711287546285682319406681890315122062251881399502409007604381048111341179593654129235643286960895214164202209577788535186838801672571657663968636879833704824483727261577434347947819545132970165431476993014165681233361862035476253864377949649086546267810480729627657123491445857610384021277284909029177888822867032644516976410001172351541878606731992590766411923584574375124425822278533363892991763924512604839402329986318230686296279680819456351623620305120184446219397877214567085072265344261826504611782884208333982357603373178566868103615913855106918211203727748079624789740682380960933185323273563839158862929772661656094796821593328014004582825179743115845595819022739834771212831855644649283711362494163123176950880147495874462031819588478839057602453161894521062081119945202472386314848976955454346590795843435139126010960030449151092966078217315552036250592695146853926539765786029626175789794309994888425047924026863143807645418605814749989433910375003546633287620328280570345551935185947842366699397708952108780192015814252596409815982883523447315009301005373694943828207485751353917621396937012979873030990034562011454093344157039528125227598239191714977049505240763193968321174155180823548553289484191692833537094093553353995626236439376563671351292058543181513973715398870760614628852616095370026093497362290526964841269260350869136832013019813632811599196471922356266767314677495415743539012077298376494130883398860412785364116585735602004996184708921350075040855303255783821405598609505855581329904714804633344971092560532003136298070186197192990695915078543909815676856284258315345660745093895806370661000824760055315427297169055214939813544682116184687842688555731827769290157457728257497696122564080564377320025922535320434409374230238503394120064299496448662741156385870629866712752552038595048475853130057180923659697361334745357052985088006096053339386529782731890191393347154119889708373909910263146551817917856006278509836062906273622911000572777749285452463284538794836980003194723633908836430958314003216688722677199385702967213667400377320489814684552213051701464282652138463390749848824746188652838506391588614502530398537161917007653397178103606557591041689872462142404777347200030935700554896705223811368646288698787845899308334305735518634531512201194454154195560548152947930110748349364254886967943533903985548900780810532875015606239227792768436579816384214496749363477354647044885565612318832086524229791210519373249641644783723301497328207633455831160309776318608013314312888059758451925129198560187671373098442393539554589988579070064676505354131269908602014297960324424628563572481306108832678592836779255924577345400717820786107950487294020812961259433356165551471355589432834830696635045580458376169115227900212081686740226707601405047570191676672571132348128969649382800469990261755052469669001302174522239813308035421969792403226203586718714126271687552924211809612501618282422334521145276987355301317107308020699463391548844312941940952549654289998577727174435244499349697238042879226213971295023002407427250038883344407356510020244836096720459579167592209348289503270565869527320196164027849645688217639896848017680540895740391909240870888472213316307783663143855783869150144151031086912329212080490809928811015585014922885771473018279005055477386571147659684336935979893076043875737334525099024051741774360374521888239783197866110466373899558168859853307601758211259625541346060590636973474581092920075812606999753169875259367109417836235225017115019232201001661051576737572052261572211106055743732667164357457617599127900243134019654785327487631730216550981735506886177139736418774881790227114885150056273196669265082901181648237450301716854547120893487554655947004784333170535238726397578906991720355137899095226517034457205022061588984976889013745047579829952227961647242350282310225496006666007519624126339530705346101461374809185707622545145105038103005914149717352407758675945913671092515378094719457295379493064995502202169661766135715003130853406134321712355108178041964754165372639155850895952406697726769197156056530043747036522305932868225815596091701087201059311049021048998229116224605541092723166533959617793930828357952394459938656856010242801820504405098424869369417558749822196276290321501846723507569854813706592908918616533566330626039804064927366273847348042739540180497041075613348557631284923594834380775764517117273483286430840570296850078023983509316776975951123061791795442064534505255502245813777309149233562646305339515448539379871752023334160395472972829522958760724597726944752519109499136929406717497066038560169511220798667544198622731154637746861001604148021114168986632060134406524313665335465665177880109792270087718610361040434512292603575021807444241807919617077690763289541392341727422442338167941330365311768874157249973213431680217523444784095023990321813248790590190192175351996956397980604341673511423442945011767173754475066147750106395599236946206908554074757664059332877810977476718726099989232065341750829031578192887834784290413088406836506857820395231121619842886938071653328129042203423340844182208742349960881765808172519636071804517685035833317586505097159560595459514112486721232722017378083794441847902449797515312525903434800497334634660543830778243433820125149672035988499476695885399468958358546486335694064435897546353963904622888880630407459164022203790370914991315284684067971396279096505831933496127297302747858246741610542235645792979167911566697809724879442615451431038481855636880126467674267457456518244914974561493537038615380799687812540725898764166090837269500860971128154947494634077472518114078528741698940995591650251521486677340072718380584448504577035606397775934261129297645172685608888872916995555979991545462659737625773492927050684190998341342328817486767311926472212868165421429913180255897035982328917247138291043341377995880983855857096599031357738803284518345530677442926857316198227235388007874866131765792402188356138946923294060432278196521445273586781540377322598585115728671456880779128266165885492157110916472795560251755023026143179971569382745488924960042048490103627009238869740160724745892244742312487301907972009796761949066692186790816569266675761190342857923876957464853627961662174764432362060383398439041226027552276787963798252649647502960966254378292748063654106205882004932888201831683438341620502155386247902293239273791455052168349800103412207813822328067787433718966898532710558668240341668860557071702056633186499849510480576137633243542156929234531732584936442703842510521686750282255801014393120990308436193161032440192321052240223646930623884546697051742725643338110007430464371030604180718322145773307087061788298610508098397388776928402339741903732373759209892299847378032965740676612363282120269774032025196921164227845135233815396762621562775816177225676661737948457426573996309407896360762432653484932475498450422682139995698531980202748810432516311681973192920861809600082871341119547958915456449006643161120310509679107702362195487548097154574530211018392084274096056402718005257658729257621716128192922785673992846316190742787749757259993311288794126126594406214709958640752450065174836029511541120788092456748400966003624079567357181936987895565703000323444895470873841129358960731511111983109509298773375910389991489539194740041723483901708537284887038666325364957725415835802207441296937801452441626817128396891033178203121124991538611685536206444862577262878530732195592526987621838837710095529229607436210092662759627122142213358843663534982725471450009453945005391760556360880479911372371456005170432439205384930003216161128181712682141229237606200489034956629749695260052899421816660350184173876687339495081140678216135219617840136857523821854061064408183585097557623906132908588178796278529415610222580721241704778539279627003662721874960057934896779677302035035852029713696232681402392634669223601874752434596609951630547070844133738347357009145031762400906532462672769122009331105454423139677971789850569463023142015992291130951353051804225718874005936785855506994397245274240133059807776073663344968735962127153089170151219338270792688186349819431987295859496265573008708945805873294200043195900661503704206276007335878434339833917840266133806098747779672535378448836455482064326672144530944291329653203507360048540185163418479793850968839026309084649804574589637744791107431643485514538621703263535013319250913623377150368386440681166945864459386826905952133940991918173000290366292361874503595859969778246971125400688025819106805715415678061765120158987824402251523117504812151421561805040908641773353806328773234203310904724593196915428132681454896844807939188603981032186654657076482944796408106369945059448818514999510836223570915387941062957250937673477060178585087056613961666980066969646019497558381572042192253253002423155811656365572455309462694267869875073415214641656953587772395800110476427698698814862665351487494836790256660931378942975103070462608089152667181964312113866975855420818626447740775504764901394005069829891594026532759449837937643380582768462629111873411173027624201555889456933009925922398944677377552524274786550761662489710806387268905246827191332936279320896728322591585512923362868457939041008369510243024456630311040044514267729341730052353392413515679273496213360970690701391235856402913196520707338542993630053251271328443711349378953457050549692057485476753105201276760114501175587724062339408599999669698722065644801663477331633435379078910321052282968986906096066727925524233076211175050245359125590178652198954607843149772090923832322355073062158802821947692678260415320495429122374176684908707954487192623266694285415676182691848377674353776864254485074004365286159422452081942518278607785238736607374568065886068303504204796360218431095733919766027787678937228501736517516537084952493739007776833564966011853564458022615517735995240210988033011613402805486788355299012206116185902141814532597429508166165979308263754508758025880888047542318106016362408829712596981764480399323170866662304298604041988653813755775921698129166371348684613363413755980236168541424271007131008611217258823585827881117086416676708966259725899461728122193824082700387768791436079375168284327972687931441274175185936954590888244550102218111059843892724169811839551337856652413508840655193823573169435448127713747148711567012317431267711041585660449196791830534363532542116863579673199997536601864659985858400584901494328012910463088891902434021891368574338356288652998360874365775632298390238105974793869650065192846308141625443270062146670970649405209869722466297296741328120837866116519134868777392371367749435141542749325358784481534642385897660406248363173546448291037430205148324744866062049165326448511710175534744998910116707745728803136222328431641800426885080145753378025140921149342289674835296914974546616650083958052877641997774374206034165403554287933726454800063288398462313632609564193061782414050487334883705345482423627098923032743357684570522455690220232761374708387412386801857852902902504548520854004803375563653828051513265283175127048147717461396898942945356515564588870978973556274988903619133345749514290364118853490311261585167645112551280591287974131411957925763972368883936156396075233428458295807353365846217577780061127032297072115994810237733530167889480956033436597345080757199487119394092038822955936285017548255410956817815489410893094102892950512106576265090211690245146504143807933400400293360932286471761150102286211451875120991318826861151585321123516629052069024382070549935804065265991227750862507608151210644757347656400270073085433973895376934077839604897257899772365051488357185176862987219141359454167562249363145478642781779776897893352043632962068211511951536622006039651568374676184845599775965712218189936056808353425512875281910095609931623535465933276814889809504544693026169127191236534200333626796388791127539682466379284589680958281827995973185575613486367281301592024866102489667950124797882125242394388352416800214809834894314303856136619157604595415451671266539196381600033321696071848841939822270529752680943921137789267312031231474111657610827367337537761009452086478193037621863222829852068232070106748516246032066747682986768544397784224175471585248797060559554016086944311061153241083264332194378657100923776774777535744123065577795359489624961048720620697177176648651835318151829180105497283607182603070097914067548379503439033701194683242511989354348042835730115639402307961618051127463240285130632560248703567811706292592171610070169595876467176394818188862231901452403763161699756469957859326014477172851306830535182049597459329580973854304347990902122424313144133418447433427731356359372660067815502514432506165205489035791079085448538718933154675427169159798245577877996494550381532971650488896792281914956868513480070781517529136454605546859443942011152245296592792374920502094217792804715241190581478309828568556314155915572805995884791372536219247755245795946916617745361393280823858333610676563510947886954259154081313961998195235061896639542269922726063735190055297936777894347760144342803019578956718461542541793373779299801384825893109842098070412982688062192217464117727352984646516380078995711824038048105844865574816020071483091812467312613230685496391763672972364186951494071897598195208313213968787321709324482837229421855790441165794960513801679607192391090334192013239868025575633274148950545576068814279982630233789755976460789937784483465487075223722587569462632280704177306440261915374450430566018067072585371361865866835518380530226240116257070742819464946541901228939782988572306441971840870440056263139326877572584480699892567644499250752466513044227706082937120032239523811493281424081567681199112792077200236000771559482181929000732613775851828057845997338956233548536089121975968699969144945038713790276361556793321209709381075739228768359099984065436753119005162719329410419723140276203949544835588400319624617057427210778692906495166659777360737837472451272011311867998471878400380939842183972921186740718950534273397156983214470979663787681779306761544886919409325626159937145086269198363119137590358916849938974464248006651657478573255532477565722358380405061909809550263377610743587006892240933843786396550926141757596886746582216309772527639671502571747749100892988999370018362808601035466665226270244341009426057844940962198211931778711671914451797168402396263269855400834478935664940876590948744097815094097209085298946376499508870785270875455366448998672069312303453388788909640935119970166986976782061862393942323167259309817917198317951310882739773070625948193928086762306988310397230261114777424486831271140351787703703137636562361874684228706262892714556310234190922184114520711201670029370106082410581268422755803133071548233395722123182424463107098451704616494118067878011418068820857297919061455617063807701488730257087815541935740605018018557567508845512594659236643056469919078177604200384490536034870002753527104722068590836915857549982392560302584996715050056902160615962951769222154746090700968240991932573202611587739563917199221245903900696448973175286960110829474984234946766078648765601085699546090835004411028124479924998161366703245992004294827661578347373555499342594257302866903753951010417168922857979859830361638146333531398047067022911940439237785984307224914461562671569577225465993526647893903890590673391020650937692405292260299913789813135870702031880645982947330181541562025783659336060663478868231805854773371770116731959218883871665635845671669292810407548909067488513866022559888819683239953249486012847825804236319291537383614135226698601945110364870346600057824860383008719609243980048198914612634161386764605950887081263540414435225737245266520131087005135985245913342703235773548836653317135647568815860875036385118928568290921835952262053523206261721515656642328885710902488811357198741235961951814393366922384674285626730949416855045971521846684153429818563071043555606312320406777422836586864796447765618362846207455012122017578846497391334318267160024727830418358966441887667959386795924022277541670896773147788957350173537018648470775902315812209781666392267421078042424393025113123043456283970724189720035275845313744840566854303419884911032543565719464633702198528761608150893938104880437284468578566649380095032448671706665601449137560345714208735270944713689220435482430706699185607226273446910695773301479515733464483705407495718460185818745678233775046675874979878843208753062888273065841394242020892857931519986504568018918218306244921894796903620120395732201719836352263263094493858894594516464014076721631689468029620800194160071166896719004624803570686744131975109786521710992622584847866714004010998548947494174020664712613525125781920040893363743648884566767333927985227540625750789727763624396943506783078217758004134727720350214960006011209385938739275950301548678502345514725964074007912919036934830402088919024974432362752336794458596544531382810258016808685151530399582892019181006931528894459051451294522793625738955225074849483854840471452520177056947244430542077184441631600672545633096811275536407574750618577208440657782525278199862025554612569047133626278177354626921047180593680113425840586415387675036964939569829279617490918003264858986161297545966630106130140981389577205256138542581242957789276250921335999882250584833049651378579157647845134818625928782343672459002232844959690334687501201438828313108333755667347109238785836870510794565186684967713900663851424309424518538403220362785527995672196198689841192579840581787126883033913587150126003462486929343014241170377048667201795882515589421309652716759486454617807905622532628656897750370736587179364504827901202627999010987124630960660377324224679969136545985723831797952292190222088963800977861212252964938053639624860928909551273224466344280125497664717474580677516567141897388739797148907729474425041417944076048762178295879738425696038583906186525736706974149449534644853334435779247212153274118846574803587676124110689307445178229543944820013860867932532829346567782849157220832988097229480119605459597208689506538613511229143261911153683217098302974945303869366556006949704275768885002659995381287925300361768833263099285767348936747872532764003094211910091827563568246746093013925127045088106947191511715454156254000995785404023906656717665467958083865305039232511438612631149120222066368084212720993776560135630386516225570634753630832119162957727936624181476870312791148269499579693487297824164449784557996714728057463547839428412545986395114271550120324497104929850236627516349524104154961592239961594104648613516562039104499195582802851477301144091979893495698105588664793299985854792854601178725600757691422253626358929073036310964685654810348618442853141388944307282450687535759443727381200949856156106615509044716912067763674383755385352344164345151092297507514099676650964742948066933603124223860476079487894117255951401796839236740186740976733830942900242838314816024790280991496501057175983817418417623224388154637354106711946706941358929226223380633712210152354532730093054718727103691696708390616503067951407631499181724495635759345709767521062780685530063162390292706887095394041273345730734005417863080994375872437230711296967752482372555974919680549053530248807722186010417079401874882523069260305455879006399172420855145307741569918545320501710696487895022512977161246549611550476221690545642412313315458483025496635114076622506620749528784902606499597173456096230763496169227016172223514409642020459555385707715633954700717030352599900640695990714541579622112596913829433369786103747677845089756935647827978777994229277794198009185536057780431086425125797922795739342119794617950094049949679037476408282002666586108806953830525792878629944881465032029462442096848218551335590763080323388111150479728561704727962190315614888425197738394519809235233192403289480801569251318716200740166621025167557177443123552928208176995917139842303863932033588825158893544248506164966269492164231226883256914872273960903139014589201777225313948139111055638584116595746926814021681587567376176764085442740474489214784731082325211837095651327686358821995569810598379054630193023203976741457976690013426682760954794862754463323716970521105035121996098958706223917396512846279253103043381514214461895345682812358450258642939137675454264141510222530657880506935488135030813225717463301109717853659088527499959426753326731192493355795874002748973093008957342819406946414018017173460699753988762848636200667334926613851436771773163372951671888040328397875690585368938980304986866728046112648673213386179528368729588766964218169159772944048929303960503263108157785058160883169196066564368873307315127103995115424551718155454182762455828987690888964544769132213898103275259445435706660624270130388572849528471674460577273513408422912156429224730239694637451894261535537892880300132113320604120502616097083905771757455350558140256412072809899773116721434808059735108632847816946471059871866643489370346676421611298647787537756688424298012168512252214359336933037330018405786633355863924351559461923321038414369668710498066230955156002989895962220078663794426559612430083250978903784346757751256844350884511153815394428886295514771799286911819020245158310792872066688132851027989757383915880171791774575365432153398366001652807181912365321359921283913647465362409726299584827618325916027892368903580266076340476016459840147282581131158087335983056186168710071455470489788840842432820851397943793313724175221583286101792713632678070459059085808317945902781243170102389026733311449429679934533172618221254133859589363701481382199894648568915955278681242001509629858504142865786098034748628453356758841746751196432751945245178012570561661066933036335932227066502605326169928917284423941462929448009985361755100477952636603334093335643258257633249644787274430614467316962844986352741002247989868481122370200600292626903985253202514255372558407981142813579907050779053229037396055595513804621118118051462155924875891492871197195426850207770394302325461951965187670387008326520174107653889177486299452503864077769999213358028940011978924036916216552667936315111205964503821115212392897234492690568604278789018033031740374782360471076076521395077585882002793407180506692029670502956001648693472759589499451067217641962161162166841629507841705168312279314273581860685729898142747065246623775753532824449095671136338999306459955322711228868963081149300451043685584498048743667883266631332905565041737408639384801899705953490247868564235367613115450633712966178603387104331632001173705764134598421217319365524278916875240502381871631058546491035664555980712331110984964701936406581183150502514563607171765245191636337947901652170600215540338774116578930452788879723402776856283690479000711503287209702522746603818006928393728708966816201046996994858658861325885647589794201572161586658292694977046425036997476977530470876449431008154283199302549538842796384261429928859701998484866181386400417587923333858867096458500282055361810617616333290914356925292573582002671583535999594326654639457445067996234141822490152479834616139034782863276613887813407153929452898610632380315032003756947231486636358586058775010045856496287403842674642196683105840491529745781184764152511999691896274091024250953300605911582884142000136767952572571999973135185139465334332392012302360243918358805002228971707827742084939525750988973272259199070159483776560556226720660941372341232589932596804109026715764552644911961821845723302167798017926793703037839222285600857881888787401732110549614371703800600182887656638239306461983661024040523188336252637253794825578375725034870795110781590515068719479343015434978966322430089234687827127982124135209824794369537120967999070218206884236840948201687130904629697157762456407422144220562929613219561457996286675858725601594171393725995511669244041671405041546199984816157616203154551938389982330127056081063024974331262430108765215730171074655979175203844308814451266523671130381452119004158070108190498229947149092646857482630881344789636128173187872275176855303963608842011554160769507037575360998002199361271795230584264486053952229728500152326679108532614390678450682266494382787129417288810158756204180658749514937116778089502687513921295363470614333280159602362371442159804334707649863583739731304683616174799288013924212545122228779527215015487260695789048548917339288092091158183565389639926706943839361661509236808357348369678707611918103403254749036582079210047511666869771788716890460435459771823883711085241739974463656969969021416926414622913246883165915786985385226702574231241423504331065574657646786844565078609570616751113778794697423553764605759612239909990128518849008475304235671860821651681643482848261587199093443482320066139405109746338204177607689240180746133286521136473203111975504984716060240084034522537201368587767506945717391959838595417617079957600239135099755969609531366661309349737357656381907766435162368015793646811854984829339828850784625463951580635844269303894652164684114600368139789885231444523302453046598692223464411737806617672116204574754234479739851946442021935979578366479277265765366144893639935407082517690555833062282843898637586012623257049489393940544151078765168584409665705172543910825470700685820885669064855059690142616417410817265909946497471730349716804933365556797820679725275274120390390170112918115752741478905584363242340847779853315801799957839906341866855273790996137416074068518352120045447655815911086930019897398714099128061961918537112851045187135947398650845002549873685483219462967187559003887772769290958748886468224250422117186591084154245050752709705040211172655963604313830240416043189585767145726688835850935095268586347421286260466897545239239508565424007441108400272951974285097832736252332695922072575241604605490646014468093537564364839732497768510848821236785396450585758579354586825440754002428631972772160249500139723917513494451453489310590388896733406198775694257955774436012484222113069832384341241296514393265576325623478240995755522094006990439894144949232406510890281110452371702242724419167656976896999360343843257912487412575941122717904913435207624829196450344876931187375262388407009762991235343322641537722141811860719020610864852926826254578696477891562492710663533935612890346274705377240480269871982529202427225841015615249135838136300359905993622227064097872380375756859859800015038327762771634541619823627920501106019361042875556680283531467329137769157246863491727270304777028335862879189188064396976457721104649766169786443780159255669096989373648888196113655740573344605128165642046538697908325465868115020023676142811862891335050082524116810241658106347936233146682301934216904820468108393220830480798698641382343242736099572122833148071898874589463835958702065788187090630063683076330945037293431142317304546559043633831145144240757099892431489225339048506287446231349924660416002741003423219388414107587156726586548659143495437456651687842758591840323875982347205779693130004781296055552910528743512821279340508362854898034585455441745759157242666582708816692850798438957360661974385528056947431535636678479530083300341739579555092479893729957630986162406812333525519203630430136733279357073148828898760605555071717523263240790851566692038388268957303248600422145982600917270528723004923736763470224116599110820465076098681306266892428208736829132358873020394660165514808228822170730964286944045768124789867397896417386304679647249797409771006982797799562285704756303665563730759022262804004849784350282367127494030233217971183509773587640007705924821169258173876620637101312759638999700781525945723346717793081465750981468628256721476030522003608023783620031377158568262502353067968497287277396611452358734051794377892660573851512606452021824262878168377382251830867244304809236157630440629414017303162441395481895443284261038134653059208748774791264049162115385126008515268931661304348387794530921486637231534392924730308252465562334574697377832084932358651340346238082827953173384581071946921919122370024610098235754452316526022984506113790948328058502225435199653352004866457892619082835833247344516232768282681442920052803638509432471012653023489452869480017623494056936107152220243832073950993461392143606906367001912579139533989443495521370556612238478092158034846917418508022876162103866584585882231638050334684284947626001982662961469032565810208610602360659997245755815739026608582087698083458169656573014817171997576038905111103070768832387803707520900394861376477028709907546348544213781863486890120436593512211211092394501679223568157576713821438139051881065401323314794907568364859129686826775630054325186627014041654184191481306413474546886734285924977368851863691794009107766299143382234145531354986458863972212198839821409156554679228283770805659508404565240889427667494124147901909337356411248275974454662483586358606270492200337042252660056430748786077681583029395729769200516726428607102156964927203974635991147391850908920064903210277191891130334347377803975663501789665922932927366246675819011896102541474079752839790901647231384613691609997946865619512165778142702396168384240372307727473445737424132706767747628883538219518732537625847813038146818699641968228016870132956687174259571228610191442077144794140370285592150889437811724794895532638856103717414369855544244391070605152529555470356421786886846055124606743894520601541731130426924336285739890323834558807430828387661699895934448669905199092192825992009880896119534504636597190205107232828276979882039151399411794794477920881264304525271508620171457016598374024278508802326330646127609091132511659967921455800691982306889570538718190446528497946191727436981310370651691492218690100238372372788126617114277080965082424082814856920382394945244123915707061027192191022912576889443963169642234123192026288185876722308979425083660275039375895627374529636210710687539388185163927306064411581042008027696278640529062064400453495927302599893184453673408389112949219059697333652800081106710039348322707897698627314058101958520703909369801776047454257545769974960779199920900257335558138649513539797757399886862033817444634183808205882757491674882227708067284284284616401687780197727009390390762189682392043135928738704546152520314254049750888337401480540596412267959662273274044706120309637890706611177433107304251609640226525850256209181460401035739453204126732614779660798296028740844784627432594372558392859704874823058656086102918868482605187732683332397308402534593318173482998783494778570879136571736229791870891960170221528667043789219713123372509585107499209547896064835302533032724783660287527532738951854106778080656563837989579229741012057159604574023514348587038408131284305020961758677091989862053851676079803600306179209400692785533886374128107371939613558387481922590249555892321560081168287839669810420940011439338643793046866032445727714736187875267863640840595114866293891859979090469431066601749293430497738781767245672759463467631809348746655885935095410803358235493376949228344369101616575593447327526107557207320397486152860044920296301110858922705392102167733129867604324623865670683544749800744861346719081089406941578670121176666563537302182613993982394840922817965420651688812114522541892846451711437475447743141754957539244488714958968469422761413430038474936630605185744746485254925626022350862288920654661673878048767022611002617591651775930719206418049769723276687484902701121770616133157493855751602675519739612853448271214493098094424172976840247138562159625709711365219025468531019292762626296325618220101024517614756547129835859389007898155850263221945746046169960328348083907974654636422490797294805728417249494190650812840274226896085261291302150919302687009688101350168741429332197438268377576091952720628876754360995415549804856977507575410152490249174896375358536754455606542618535170735950937479131008169590094546527850606768218589894034253584054198355206411081161257134739912173489805997073091313863547158680458717625306160714691370926891261384318128495501116988999675185782368852914397549823379849452719777832583972108117516195601592102802180569172901927867156216505550937594853174562239875058367992197154332784965002849568325737415216254610377536065318601439788509007228477607182152269973231346245640608758673639487787527566399664348951236539324649701471436382414107741989503316976093255225052071649389474547202877897687575577781439881742736574262495699594036739415381792998123626211522249214242287035817387873488062608248884386475551288878578530632753035726087564413895024303721625630896969941787799106681039755064336874753716131195192319793559210009228117408127150146500032729273392701007229775897413924892874423827643378812674038777396216443256493683813917739843316001987667578495865639422630788465866560445578647175751664597520501822228375625963192180786609493013109677152319894527016915265376379025690126393373414718377442095254761835850541430331551173978210336843145954253123684166947588667965390130605766044858744268670391027228578163951347912341705557465931353129907953432337008968305812107161716358158254566976128467833060230097401905700607769568931444943819456415918889419406123547474115044826440442893914628266400561130340768796634015114674543219482440820453391136119343454082763242692399067835601942506560515725955673232136469596840172756027626004788972291670566795943100282137114222096452873350216227850850568746283301517811532260813065501452598431663126302644794370482180158700304011904347525237625907412944692752505464890480719636321024409125387845855676207222945003999407770652855746972503466972950140757854497324054241483735360174031558091640086557395602256514395656638555471961904599527513840438618868187752573340808967328606933999933837067125436255506577087692992503162696119140756399725667306351278920732866226924599275745479310389668311075858309978185320686318429469429480922980703781106447069155079371304686428255143035203591108806717967137451216962639438483821766826493573102931487039030598155517291679471845898113080901612456898631055381120308059656096084330555180789222164445531787293453715969139027544094147108127853431933111516222180535263398211142073474883648010260714288869825440344527216514477446703740165974955944851513111242730935568587459726817839048117437443633576619189427221083754214045389695356087312215611760665539930448054184989454373605092118217602823100314321856861594420033482497297727741215523619392325638417041401475430270628671854449743420635131810072618442174538761045143347345365869080442749663145122564509940292908969166179570746654999234256556305702302658196548278148795545975108802325725610403651991799860297322773155265586319092718415181679717581597215279366847233993653265796477182536506131260678299526854041238000572014929328728543847544695773797030980063672638942558502034710157506473567922727502380930299223462104010210673300567144676096852960058036437634697428242193936956297230734765751407822756178878333229948136227331328668357818495233467692230287422550800282963550034518040962167106591056696208445736903746360563634898106144033660528030011724692974337351936186439188863553811317582664427425545723669272786382256046937466284869536405618765011830385094012635933540772579564188594636416889369370726966819801491824160370599078613044689555466047403930295898579412794070308363762454599276812235920334280762965547179733220608983830944315246838280251244990234704974371591973205659953343138233693262406871735923602443360741540051283711875807755490682952605072851986208507993083103075487216807260597410723630862928643555740242465651148613347769800202014307336945548818427152315992925024573906004893060788544208205104138787612713696036771571608091604318270024252630975050742790809549149201343053280554757952270600830278275097315684406149838282915162106802806562409843589976701058697628817504504349520909024332902777881511764905470405076339157176408768562418982510154301691642073530944596345583629893363961619659066076811039292101136702082260992701597121586498951830946066691493642564694250048501274082518343181024415011096549432130472760534837910259717880285549976748076548875034232021564346648055873592458405819765607229280554417243602420923614031573392253037698345546139771247001456901221586363120630148018146719369423167641403862565812286568351738904832214524888392775661886518684281537013759033859690224278559487387759695484431859221187374653376966957325369411378256515965209924401984941572558256714736915250507390805855591547577168783875693460714782534836946275721019340625345398355583689287668807658947911354219599774043461876645779034343826825461944715723766196248594879302439415994745037101897170973420933343342282727767542169205997602283054879315045013849257258215958226495746677946033998249815623742560405621674989508185786222140788726087344935526306804850532970198795931238806050792099214918406953818647619341252518990083718038541712794341752892921889641147751720279249604602913739658094543630062128101217684664026236042281930978433498552314730779208849100182097131782225594693035344363070048299094377321506709054302930074234732353863962552534859131885997511134312139860699946956094373761840114383734700844532088938291617008071950523752879834661624647126670168036290193897314207844393298195728006121046286223619699989677144036036265467016157422990979524389403642695170271547683280473382561126920621147943539961737912470865315812331675241259863278692307739040767549729611997620159843493290693322022947336003250982367120150714537904706695003899824992237906292397117498092566807302188234488596400218049123886496656486712777666787713059222469422561004826977730098700911495464838266638363730199188297253588406116814968950011077329706899844274169035930091668027587736921154454606980149447677859788266535793209700715541305551688112531995339655373330470773227913673540868477217232435732584553726727040293688160430999991638315039999042748513836603880971846467687867816501482689384641483721759626939193168554413662345770541705348345666832625907487738249267431695930442100254991086909377329643080221210272757907079668775521874189703678964198144952070616554846293399826587537752767254002385259437803608735965642157348230078659026690598712093938366920139232914621710376158444842468268584159605841558431225848557447247445850557128730991244344912905827590250678171261025983109095383493793974045781354255083116217106804591754187654770883936540119736108423215791040864239169942007354890204838364606738035958829410788203846391866937452629672819378841805886201006034525204366552049227793283748996003897948973774694229286169220559590035712042882230879345821006092909420607358369528632400260951287216268134540809935304625090066554731630079267691127036998798173317077924672825850384486838876940868705166826191384150286580618289248696379861557387924589345799384649215112953467639730346423288070087141411189324722240890402273445086173420621164285566417677308332129571064540997117071445129318499410338340429006349850781452995501251083635235209272202989583057982226454284733390555468610104192136058907766802405585671754377555673370840460201846010716547627705605017538580785604194133973896008644600154842749845839602404439733387937734923270920773417079545513012410775984111999290252070053536778110087193699056524585026802347610248308632228720682829388766918028376558214458718925470582943431616350278831769828094446079241741767536283509497158300726529402421840653072223188267990898585412052807210461110803292367955175670097642077204768164332312498953641039760590590170504621721499779444039751963698502844109497032328671945503636384467267277978424672274867957723202156885090157917021483231869254711851806865068538819237620289606598715569549983242840336272652628872302765556218736867251922261586214679044007791163145651148245096898706132248772967637332933270515849501484425855116318312166503235842032140356801746899286817531496835636154610403894839437361868803341277319467574211522124325144244560272225371331637998474844113991294704242255725438411840869214542191500493946264030318899662119862906476152732729220320166466110040667029888621189507844466150475246458695892216898856512405987390972318673199959664094273218536202620956550338770418622248252665016540387503848969128678442780116570187869566743992270319357029238204499274723269510280077260213343390148096305382529102378512216317648482722778683764937883764789007348646712951545483673393959481148453990173586112787085026385717227619280270345257859005763689473584190843311177402022817064180054580932785416839505605053017712339913289671511253589997260308847371222928331312171205067563821968243175141049207706210203547793704644821482740083698526259814753491759385750022482282725463933276636301522704720587173277524995211527395174814386049729653268151577294889438805876171397231999309777666817286700490424315028405915107496299469004661478272576263543543552435739728958586893135172153582994439134643441930401422243609167078496847090174881943786182547596413162151072635147474247670861071190679260162485935127473354048513622157672908360090715968866735419480490454684649539084897826999445450349395754908485456525754496563153079972984018262957101601390028014751579962479862961489098544608524196981783143686770468781276409216891225594199596651430525552842404353308435288536630115168652249798587318643039796735888253823310138877167205670738610654718203832346751709431363579214329465517446754206250748916041158932509636848973971992500028187410096108678171226980853200944693981413411584336383823921897404376133101945464374423429765805100819174715081279483258467091969124664925786527209228993744412124712216233188126656024988249935641499077850393211918806990431053179289927727110405226380723685713810294461771893137293481929990001009708862230609128911742274973442717022063078878770848597731204387671765356500107981887535333583221424968008836589578145638199135687434185932373051443035684309364899829193894701496365817904769999468191425298213313700450601522260832723332191355465839796734462662724831845279901971944233001418753806334960005437529707936142448051869996635843183898640016786787241271899807159289702198170839831536933012318795151996047262948723105054982463965503524485405751635289564443440630253966599298601592391085804766109608639158171652414125389024468977469476882301330175077571613065810286803590071861613368480048306255452613337540613679970986018340489178487053916989566689752916960653665501571703432684730121833802006354102177778047261461267352868240463883770440347992994842563626710534640123550022182848090555446062497413055150440458463716725556519297832699683278661466805114838170421836060318286570213606185320671566314753741911876139657327122790587313453324019350088654714425586443933220188794273541563429065445509597228580651132497314462444050451520340472739795281590031071190345521376220323696376246985092978083485004724038923250587331824392944647895474847725085764316074788321129320301954586989155421915603679071876535104892135569302693133630771281949678525045805818981081040019476094478368745763899844917266377372804742901024470984162539547876838236993784445814514665222949209455135296729504814713900169907946806906737492599481747205202664929410269481593643434371130024497488896124761925623707846461786270028362784975420515517055082262154969867246908397697934233909292174448285821176222857853448556716090242692724066856795888131356828638445629083770360605684576542449627075881574705132767413396164514558224224719662915986045059694061947028165850555032452782458477285355745272040122454717602892888312321149962669128388118490688553098994553832295801926852691444524419327306915660119440812096417630103226688641127636320767064267555067311495821768227608717454545830445458127428745225086768441725521776600105417964490630209809192630877629995368356322598082566577151696271339044709065938701038563336446336483144768000293968713066567115508693414318491366967939812937722058451088309889619378433591105297620680609248588000133767750125786770448627640431352215891130479049220357741001504610975570329871998114128182361243457697953773233343986108611552796987675565049075375959354947257963589597082368691631313370712664339384619132943330620696390526459388301088320198326882027244255862004492116294233199790987408810764935875795627569505607994578774751843604563659238637468628417156365250883017038281778366708987080206425193244185706153369518722686879996941132039000145024115027793355198651116656009792922445658089878099865686195813447901562469214048282461173305492117304581907796412970448785687635664808281120761252684136179795109075852601499554575642092314063319744381488851240603888515908167247416044550130899158695642961642684345244966037545926359764515500382026516103442022405797127527413671753956868703736666525227456763327837986418394476737458197597435595606704921064336695914297529691660449150951227001509890688095406985423139715737100233629742427492074835501959790820536783551393003263963169276614762641088064957006096851235401275765967775894069699989687221466383201940748288520800808233681994803932459879546372016223240482580854057234456077113474946799881644896027870100973496289596148160690073460718491114956571264971322910239117446183543474357153030833083077691895788566138351326561473231317257747368528406353013595140687913920595180401156057329228178247904113119761352825450412347382957031089638831870304160279161642484586884151163048632523908049678667108221738546475927199829824280440299020082787519073088128034772586793113196303793492211900303010150259574709430166852353067954953834076860455359832670303022056518767265776725475955702206917668420948878289177317713534309255919212003313892652087830336414133392840524916885175798283503905708419989670048645249458125798089382280463937865965487067179107315301906861153029049937617207751651957565175848743027527729037719462348106665010119868788942827735627391921141853537338350382031626898866913950512239000899022363381753063378142644868699498186717350714096981723656497716575646894087481521118435909367890956529818862469930060718808623960848139779907468026877820078192696347698996517500653019954384688749865276109065826067220292888121381334376549199801852182693287209140446263591544958910892280161323219370976435173370691597002986526291723382280359924426440856191085354535781911836262339762396450882718924826621171630391265336774350667403426475850618193901483538677556610918631108574156005622488298699091093473110508226113252838656868160181702975955529166496774682437722015005222270931267687323707392564320413817288215146296778972603999300637172207098909242463488736400740988051033328349879914850253651801695001136740347637964333322309540619125370674973538149834852412975173241209617075943623235195773438926658211211482702822092727078314767749496844063893813587219403800427434363799647383898017684421658432017594244914025542412471185613349412537247676023499461387187210247049825301313606354047767897400513194597905089914866924994221855931590988440195593681499369053553387167089218781320709313191618018628243904494300726029082086144291629632015814640427202620089090987965098257286883028645729603518709820296012966366841080245925903928959303041465776654309771849645449489529928927724090225407443861742968099269669936495182190799729111313956564153946216693909310781761251737422605802416433889527259364397137185706676834283144956025369918856674476682240667249005193867208979224187589001339820142587215600286828078294956954404019465339646272951299698546290346012814019996007867324727950137290670051905584641658880400273365562536219743441823185747732881458496156493572954538772892925593036914051996259100812700386826509636441533499741053640064733814254339861989836209908174863538572247706803945784863948765140763347263412713227247407086788129622272477039919320139646040906075853149974865075578237109145383098576705495590652472142268073192866660364634019413490817638027847459199887306219660876529338422729852215545519188484460782700242462032543036092643391568093913226333286411634254834029250170549107562760709566179097101933584389632783042510266665715275309184285802082281851790192584584754258622182872377967521029640834469416363541185990894065303363803799034667759052532490274299196063031715109978717361476922241409218232096519944592068853546303309860536238213034295791641152693314351692057286270226881929996096974321898014741167345889104294802266491725598112075604543801959653591130855721477675622164877086001169623453463985355972434028019697150764763340258208224068718373248165354488849572471374084069440018380549970479568268646599529785196619399126921784690901708295205824507057309973743354540084915826288896507217059378288363945289612538341308996203902046168263156461700955117142273273933895366695252773878461155808292824755778075651179994448280358166101061588058931778446076832566400969617868816618951142790223399331144836536708062717771771381960975254145018043823372810739252330284329884379131455474305256138421524066946482802689657182442681773811974712746818137435500659649147413693771227914650604915373123072816174605779943401212674884646406987152019351763127815526470021771579393891556628451103677106413461055009691812150706682186925669665315096710332923725201222376592170999276585331401936794010966845715941426684011480617298763205392256785385003564043855948673462725957783249464764304786465101898791973739216104888976434456169280317153255657076243409480680497184142783695614377200357728944513107900292669729705438186210387296652367986269232352797229767418551940090832033006847941005118667597909122985439944121143683125150586915445522993381198599364510322138639771178032356104830566912891967917028647944137712550736627755695122753055767636397181935450692810275455380648449135688069229626930129419217517025436636111077837639597166647702848648933137620324670031390109576812239972738570534990811547963343943980242099339059235133462249499148185662743605580743715740330059502580787997980845171613402016588479864633226218682805364197755890258462122413046694057090139423214774490376885725279167789508919388819619794840644973168552090642160967117511585928270349551332432642509669618156776413640892062265981214571314049537536079394661052053586228533934698529058378783753415728722791449758047328404901371245398786429369505305965992095793639347845091871567821771341220094952904897252276536939401922630939682906162028557924218403188263059976724598161949591959339134641232405582677352357403608842493210337029850815321269346574827042973736855065227824561674408413268528710850130004273164050780523162255618480826409722856662559397544852869336188977885181586543300422812684240967955787276601157040207329184823816416077328288395686044386164401033685811485113333712780791367819700346466433883673872837280907200652785365235110983647510583890907112763968679151258204152313472591087718592663527542630520433239266878166801843758129349103885403137436506648104907811595729409396931495914911910265072420061978943102756086316141589134874147345201264472101269214445319000500101132203078142722893589095079380774021329046313215829880454259049671064601741585837676347741058279136777771880698667475814036077787860165868128575330856974048197813955381353341317858389864485484951728406030118583715838425282625401175301802665391712875425375623856225449843137593752878606484233369892086497239772538105253337663487143589040476766044149923259990159048518256235629658768766242325311597172960166986997864391651412049895008054853607984200318551294174307183664385136638118387181176198291475278324776741200747034299819347817662421610078940175471167713500382162722670346401948516705865457631630649718632057935528619549413223369561290809458599498717052315423518410407430022652088900412853416409389860229890641316644940761153791362547264650189579672704572077242941970973023182533664045814802589393829485734032339150250136627068635766154348755490276416507676966155800947189436913880258062585167447798984714109035625756443395897633587634201771407424736074797316685931590541835882643561308806971321498150735788499768188317679930425178469617089829291673487588876781212815136839455320090908857068498419482147253554217641243172101289781563487876208998528324065758624254776006778643473312608476066803178067648387735026084982021601600858001325003766417705243228217800942891925176292417388333348295536425349667402516138545836467791588237331496823810412661687271019574177244588664402955124831267489049224476064737397945623233494851497240352978417500566210577157890014161814261154375487550146833620750316705214186482457662800973414479495213941222497291351493184488143722981960494544591622212780564490307516294547391028454299601228010317876026670817450496985737982323931401650298727280070671491362069330703097179708394088793928579936524441034607690082878817271354543473113547330539373631667936076770632353283756421532532147731827378215033196061631148371687599972439848331228875145419527303173124204366310519861817065512568750971025494484591511722991937288714895052344322864063653646124107224080654829293886118507387302235779494816683732626096476005640192198133293069033584515543007095953842567282082270912394842332436838006853701172521544581485627750776146130341883290572717765092565574718033494668591205791886611721611607431295527061429673238977715141627416282650159827476460003697989707168469023499723936383954401334387556947639825596258367200159751986763764791470979770874713610165120036770124920677498341616819023286853094623420228467741929005878862774822815376499898845648404841701383062086347710422935331090215660137244794787257069971971030105182126628218588075105599697389636523708173424046551328717047701688931006541477769128644179464249369861027033014680165498786811611844173283215415526020833934595672376946792797563620533349678004397001813509268709007499303465031370814531138636935971548241951547936807360473471279498692397537371840097226321645891829554245775792239948563930723600615141686573155345528718313434794098732814650203574640178785235740288425769854380198697844787665500526981535440067706645658749801940587579797452740084917154220743623041507273548201836617166144118966783598763390066566354230383841450348554605862630776674673303967480652299077011355143225362736781406459280113619508214001958147064375742045257605016934190191339915266029149855856137781108980606616807899160477088351489428644088541279993579410372796520608358094849789442360116552256772084411032389991705265575694097879476444852296948775655941168243831811345371671420626339550750167376391663312510710229707686987988402761351593348632621704159968449536512537814439359160774992371350615597493084534055039229426538502242481338643322206975881287203554241151045959883762527564070517305258694618569927438373786129772638904736746521495072980840041162657355628018517506528986278300879625309758342116095634295289419352375973074633991065423891786115810735938649825609213531945888750384371577463670522903844299977483576586558447132053558659737912342722993872561052049416916940491544521627710486890195761099617968381313429868172069603726226233882544976893717216233991506529530302818170848912186025098859129016648448340997226055488237231205217628582514437638457944788669915586833004778728722679104933877637557258536037958595173493292440776121082418340918463077513031428466433843585736598763693647100084765173210983884460238031452848656599350098423021347741830679159614872081233211632218617548705904793328344470100535401758962854368715500971789715412120703762687387742654633087807083117992548661625562052745871722656044058794230900663650159330617532252120101579025899562335203727064681398728046673314451581958459227898717020756866112484707136232435067133236767833948213652168227987923236442738620072781865751690398362662511317279164528133543338632135464757418052939394545636618712620228697487844166121635086707510389622721465105452999505339765515149005069401220085647372493910548602563263001106883100280105675021139835319077309517954283307285218862265350199560281970801534120791978737438121209988055122277688575929140997009813647266392051400119337296581996642497295132079697311187329385313321563014674296325178102190008734757750355573171319278567643503243280433670170064721214675304490453056980257658653587865361723300894875649488824121276486845897422268195244586380268771811317827339195876488604042715245913172531787552830874020089486695400100700486130430766876332969280134494642294706396708847544980884724685363493188471246503537123231185768445470912293293292272836239171171424279282530990638988349529465653034817991842115865064743917019205975898505683258433571733502902184595456373321006388218086444532356341013813077314694925333464995530388003172072610782204109366966669276835689553302621849342037069089948321665755036033830681537839572538699970588998972463620343967310964528540676892554681268350226206925270512458114138654043210088099399433391721944020941630310233105425195171717644376466780562679326553645298806539993969048283421623976691910270919206904347900381112984951757925459459766157735208353021603553284720382217071844772587419483876753630262172978085988854508052471337272658393871817692815812463815237414019891734903567362299553204624542649300231732356908433993924836876888394504729601817519862318912701761509613283939935303907017075485487315197837351674447191720629929504650131450749193937075755787262442640824275897630125019976279255057377818184601773555735171157168951943061417324194112423213504089761217634357641994072355692116964393904740175592991841274621222525098600234737067604351717281455838479055029042245059184064362824485922174237237575554036603487552614516247578211307247108298539463412406234920995381420929382172047582615097175664713786156498575159942329236621218574408259171611092895417878377305873018738198898131849339108814508060852830072835566125138054491532033533417178816668867277402197615340679359666173982644252271269005276019704849897490712649397529172799694958633520118275901606823703941142082946487437917296884894614032533675676735706808586007410048794763395515712968228162727721716104459972556268218726311378955648596741396482275123098276904458202190703791217558685878570019271640368179752064855024005193322141109263978778556579679675771034680285775458840630302340617575519958359843596213245815806262885851859782136923956839408043102899645284961573689163911020841971241178902205209176878366694903411936959183839800549602794749364939024140945436257179794361849296350424459974600408864297258207290756723185672056315796849481801579368221076866744147073478698043643083694904609480152632064483652835329131053184682874828993170330792684997268732003807818518123058588025876482332442950301929771046109204351361030405695016108553096039434109273078784465760904181922667704531708683891447260547514010330838092988325399595669067410811410364381221706146013651056613727466678190563601044283628067627872272523702595324439462160010260866410598722417077819578642488757879266980453118366052805857058727580751186711073238329477483203649735771262220709111767775849963258899990560926714863821209322295871858276877732689188729304739285914656285496541937853233562161621672276360287620872428719287800869838558681389926674199545979539684663238244644032357065815823027533370653992457303740017713962820481382467651133327742368115082107965914787637215722650285586786803568068414886394861641455685171001417057664425331503944576977845956050292909641187815550530942647787801958969466480282946695808135669936401495327396954390442212720488386979769088605949657360321635459582036696118398384414959634918222272959024636369695025178842305783617965935378862163471457712362359731716838597094770091436038697270695080174966621668360659210760219460576902257149594740388669017613646522974705101501672898870573464970065082946263782923190712767389520494866966791450816679435540256751217962609075454227198423380877054118893726914941050434917400556596626807656336531888663851143733800920704854372896774576492735343592806924389104164589087560589737516127187043295512547669762891544940132065645395518276706228863732703270640472164466471000579343651691115409267185232908127679654392381621783865380685468985920390344728017643093593688179558195579263036197519926494588059330184103902263949936126125327447834470942041221319888043542605232465062564280292184811162964086367175107202617481827339959289609116929285186233456802944924320234201483776885332479355021681934996192533694643807689665146820103197611861639949479250849281418297027188520286167012272601580744213963461415767166648382391164335394822210259410188975175784606808439351427028907716151999732802017763762717703887363328397842689182059363899770363336636116202781472806853433544137512327942296226795420032322988076984805739465646136327194150452037668977496847576944056005968045678401565699016120456924328910485135440299741633562712317147336195193612596104860469882050314032797296654389899101444980422833753160906390601518099147568405794711289766683238607276591300877834510666944785026548681236405356325302252002814623166559804457808895501263825221297270979564923561049404949230752115624273286720644470836904983975560924761407133729847320902075404115662995093444214539930345828357889461849358954121093522218465879245534544482332163831064477436763795687810492037044094434465662199066787555547003062355147185519467432902202411699265630180576710294151115191949968810797462582907889116642515376658575150765421799151008567022803936349449055983640529989096218308452568738975343144411712731652521778936868678107033516942782558215370961403413864943225093139643667769065340450795925006751438711244624048309648972672569121770508708334897742937643426480158130477224519880309801190243534539556898053486319117172232859211315901222320037151757187011601163037816680189402494867076132858171425316320526046841491200166332768774985258900326942874368370353336764596309702238611716165885214175332873077053565283620355147252173973461723094625506509514497160218308989817411898846225960326648284905854826044045955836754838230759641114943812194723313381087841211006298718621758142563379035317837038052715537125173576463508252626376111147670447208880880445460515735976171774394666177005725897810683451970859954269631055616255077831804107377141328161174912144213248029418363238279000687943093492516441995393303707315547055717132093182660374483926541590607726782034225579141326458549944919769565755668366383132228726199253655115379425320980085675977467097917076429143623158388669202087306602099007329385464404904720837295863296958372446251353256268559291839519678173288989735600140398352513677176456061085450744018055712134475684780481022408850646376769473808991303222972739156216073436361217037619152075321294620510594595284770742701902280810942329958793848247975376949153357022313973243669809728203630705305036138145224050291468959000855605841985155262166487483013028945958060229851217838271011678361805112525436028908104434665953364908133083869263174963463124013441918581174237598774397460143585456366589689208950776349616308292593007953905059321313864286329087454366429280353725385558961530577381483168591217346059193324107500284334775218016484318752377541173410544452332220077447329639774639059125530725766561267671335119239082874012798133557299249984432712922752173685261678524341363312445958239193092224026373455058638530894729939115640402532384354236925905322897137745525569775394030838942603027710735650196982980755795246043831503663627191855391513045451865669451903821368508000676848710644500108053441778357779232859098246951758728729496921517954147590602533359748909991661441056059348421356534137929686427347600224248839176529991319911257443051937294494744376256082884303817984773422156791299711450795258268352385177213013550023610642658846655129761593981233614132229080559955082163744396816649387864995067188530140363030759305012337021310124369080639074321217468685873547697291878404590131099372871145654471083211684642339616592233085235917231443374611145999446765729192240382518792850147447510953351036198811901069485142386598638048364717107489183193544945338835303854967666326252912182241392705307547070906286168124375977134191288816392336235799628230645240100407493619888808564197118021252772921293342561979756832723856877308914016215816081128373772670980228641518883070510425974566414000825031063466238675818104171035836735356547353715393835161835954021289669012388002894697377190017170968258066909594785862658327843530060793393698980194732397382966734872566272788287150012257315741410911919819489876175401798635321068685638340273755564356265242047084963615570119768700988817926005978877392123293035087498916035245125477050208036885651441557820682382248402125315623580427904648111807635359821112471562287897515784375400308568622643303247496548738197444986451188574544048460739544512619243042449825763563544243891362883366817931428649225907317958313831932910000939291850001278977782679577154570952207485590324227904511639867860157442073274134153404216198862403580517001410095427982568890955617489856619553504443727431273352891059958445305274867507342125890538520161118424831392184469506252475575657646625888628230730300450869765976476396871506325795777892441603133436324284469245449230898683103572515319540917344935605679458960981296915247126596057871327318606256688647681090139878200734609500264219747303499407619470391866996803100300757995381440769155554191930207359445272941526119178551348205610954504045434711767130582646262574401829086850862055742387496199816531718871312763565880051960001388625580584255744158826745030504787000644731705251662923560125778635967551977078302013642558529748022927843696528509931265036580188739755348258427187033516420378580914858344216673029007605512386933124501824258419590010350636418785348397711780741086259022819804408754957137543601455978591395807923122589006862134539481937627562044793465193182033458774431645420241305456907071775029677848694284405696359652337492526937106522274476476027351327401337965350894964428125651271735870541413237349761765642850535991081198818568868368125526095804870508482181064652592962650341124812598475259262220646577750470943771129639158016996639632938939029899107941033379602745560252879943316552617168959308965839073461036263049083009234091919682876133493958341180653168841883977613673440115763247101299948034885066602381262628669872765540522723102616126652802074333568959325195100553599073849986910654919116587933286805512652534860926451733924966632712710235627048563542899903663988379634618892655336708694606973785951003388138415895569548586965335414639657715150646025646037212469894090729938780200278688330701326544309685249239929131221058512444138682734799095764769135959926086635231978152219892917823409472581278016619742482389822951899284499503262274537810507683259374795093512806259323907812929511823637820851964793641909518197151874434890258184611534602336348979829031263997083264663544373972464958306373912225069089938483328803661592057222767519770301540477310696412334118275671533968798267396451464344027266610128792422633650673711511751113812884954356777226729873496259093908480842600770582371473084513462670904752049010048647323361030600056104262763607936976010145217973174546630718981749861367279677511162379712751937733212920536998054446027522827629560170572416111981055718129467952324178861455583787153553541263477594223561506257143946464318530549623117542050305553467838393604184751142038425278490250882581866835268088394492289599280579141265250720852989161642173410894507174185467192011379121173565810488811477248612648008055142886143266718602482299494109536930098082710734767656046534314079031300087777072075696401861362150150204434540368892897544833505220336915744537667570814178965969534816536904183578972330684262372619392195279452600855098121224070713798934770854462326992788458820238540812868432048573711067672742176694119019673387828649334763468287220896070829402351243457026613826021689441909257834023226643762794986323889659230930986171312499228297239144565690169762705040824579057052762985560454827596944491895519568575633672837369207209766962358307752965576161122047127724351344443884245470572780130520839231391794345745463743988801881202731844303125162648460165935756875465148091743453241013315361187221663252864883447873386734631091804716350610926937623221327757822282508508413145733274329904957458999314517238978081745918262335278709531584790382934809092806644592976551300178959756745027513776571542694370769426489297548210777036217539088073063634909445387109539079254058408790012726859558624859450266609774606570185999781661596553539294219424750184437223543643359069075840663410802666847221639923457401525244898120081728927204202211137731721198444060735288571355493513138196121756839219741190252973525304863181604150674791013609106719577818153815548433778847284800009038333453580620241989684131166865076452363236890497063048732062655378862747983509716495762957703269244436806891662089276741802053395207530025558804797792578220470599178922284440183146302933395882372605920684771724502284407415621458546149008743603452564900014941654411986317631779884891590256079565936096191308670489953004794003043034998686994742465327144831855465695430311584831480324351885464598603589459713990154876378718970609829045478884778685792668906799293629130633321278771537537746764376267402796069513612140395386273299715628968128562490259474555313767217336441578520280951708624696673825860084781147970493420585133632499883562902572960729612935150630345516409342022210546517838435493657113348171643339773558261558738382045285417447371793443713785223043958883805898214304363467859900540471292859535360751132884325926430900740863819352590233863945456719218671283570104013991917574537625328246249421106831679782825237382491942098250747724936353090402999853189868412088242212700926436237895492690060771743132036568162160494804831226172883759237257656667878374667439107685923737045317487681808072871408631941198225137026399911414221132647918009458995776679096013316798358382502365438068532034289202500147952287177882962166577510272323453592958373342301846733338449256932465586489451909230386334718767706153768539087235092951873615012624783551146028928423487970236410077605282254286546430545517837141955876915943091578520953464498472755135326130345408574721219297933421908111889639623753229817932054531647516872515593262276501070458122521866912457255112645605922883406490665428619588413420612864118714815976944958454844754506294198057513362697632752036148596002967762983218784211033789630751556845978312282671138196648181719679351109430900523552032437018997865002571028488883679369149227086646485823288633216367669984135316189293170701610224617662430764508467030676536136067145562298680067764582769594248370300909546621838214371996607864691768074537591998301873570379404650036055183792063080593541446215331712212461049092355145332939367326903730406002733993799440256775449209457134059059246815737644579437235982132181086154409101886499648109506902896944966436750411534855858079067415658131291318717932678648599577284911556918616655803049280230977653125368186422337754579597956552242668426616459012724441294435218479089677351808637241738971967974906898650974254344157752715991000190301946741011260837441762678916422297889995231208337216602272804351196301456711979963878992588373731823920725492308127068577157620537127277584814364550423005463460521654467267408296941591366927106358363707806852991328523957444117816459787525396463527570688346437617500896862096640621871535786331728038763300984486984331899777787985388765445276271541012504938699177896338586942153892653618453908576934376419955136877945403102211972806773314128791708585749115189593202329608108054260548700453498723258068717151371767812163436801940909724979954845151007588632358671319805906803676544617109657655913407948498061033100245760268202045122029597124140200023367762056321027499263471797245233601718618963518039597053340150281121367706276990189396806219208339064766764671707140074402401924995581562227495264792463566855032496104236808980648570314371329874248148843861078179471263670774710250010713594321293590691924704773405379783757712441003374088196898130887614042965629862255667875139371814153553212250898082751375374901139146798761623798030491980309416431551683136427560263705609270236079104623452426643271055727013839994095886036417164189198989863609532108872229602378535717090268705427130175859667147889351208450178705407459521843821256981953951942780906501296193183284891056632152147191646345464438826404173440702916346745380079506274542548705313321516926682799666406920381189689373703111139447226021537088180562392927550325429399904674447372778576079230415952609310996914888960052313700573320381524446875036268905029155352430870567288771646220545302246740709337607874410475333593208133583057718204793551680230261784497476326359795108691222042908542111130078033553165606967553601458305571389567878592640272699451473143433606884168715863788962434881584047569654284896251676048872633665271163796572821140753086424440061593863872715104430169242669264417516078852104959871282667057866968067261163544558910600260817633921719751627534286892858407303511716809977686799370792150198388443868172795958645715819811054593625760374127438178002201893721990765684435982069886421123031209211771371108964646253196117960006194719356171799626120207797251626419303338564352498962197178051871521392303316356768126209383720607766809953746930587721451445274048302261883779648516303727767962925087542454394247137408766775172512702842064294901159689378264087833016211910303848143766106657571758864741742214829100199799948395502789567187497054282453054619288367214172486043415045715986673359402074956628437720782225954075709412160242456412368472486154480875840674533689459135155542110027709820593290719291785983515100244035423979399405814888875513232374153897539428384989265985872028034222536695426706472120747016815349263725293192802266414891276025883430100227722930106019903241568023580306989283223148105651930636213029187525670316147312382907376169764575810880281496135555311926637428300550309636001210986253545877576582703158611067303771184717317462906486804738753392765632521786574632225564025964861827058971368642748216076289292625871139590089519051903278860036949115758059591518333265488071930657630563730231100195234924135911047636238170113321164186367595269833169411167627907329492683418914371486475744679850634205347559726196943922314784486663788089891773466288317118714069601696034660309437796477564064428623591657630336166737100116704819388344227582949152640593870708153239697212926407496740611718750646132206765240411999323244782134368742349749089830007681172150582000538502103837561007827919075532759038956052825870799655037573022959233399165515254660063054883511326893101553886286384326926751718452507278240980213286538008335226239497069602754913471347553569335643099618402989391765506879277783700105349282635777433056338090221419109054434069819685250993485866578118283170764572163913451766080841498003879701776415229325599569438685939508125504434766991327212229622025014973783019033255620521938780889437096884801369437859182958708521919450551128331475779768969965262814023253156352580737366187596128064381958430042131209875184793115944405871803493217316649385000825581554084326372650925804567194083979416152943855103049886979983432357895356039824825508328466270889085191730101841628703529659487474887228010923779224567435722938764801415087697039426839448778076744562912318480354027480598476086213299363122761843602048248283038772424450661836548830290710170677927734807242542465614793327047039468362546398443354297749703244906830635950180417276775626172295162111840996480461868814173675746063631482976937817711776059878366232943088877968769749339204186179733384534223659259442155181522332243191408854883992197198473396870504703508821120259172034877548844259591196661506327664858429260171441469484939049452453386876701401870857606844657919594588796876687976275922779188350599431907745515520099468409164839066111415731256505572353950915096611595408122229891908290008947031243202021400405221519724908560970064680636675352556831997978438128849048880479990416549760594715280233047926152615232105664527531079434500898865106644341282779691712366378038721388891179650610124735762443931511557717568237136005282983831018238019463092470159029000539357427735131949823440815606877065659386751631987486763778471336809250410957491105412068343656416039118206808672582939589940189333568714273978785343910992055328964067708927037345441889528684640144091280784245659608539429669892059932535594456746056021353389860233521406155293303559428178574347754426984816116091420696880387536513241026409313629432292119046935802939005358512872079767496145202269761783442161969924779983825932203298318881310642232754652086134032556737862607767564834037084248342844534254725689825685936062053952211289039437947403356051532906464702509362048494187727968230984991460967163125688807691078507826346047939118780338655940848474177364489921742139321380539108215396816590309066211105346212949430615239376327348619867857780375349540178969219309277223190355481458088630914148260673624618002112967420157347969135252495814767237910483143292513273374870748542769830595758259863499832617876486804350149709345639942512150397379519823914547179797352820603734989762709741193329252330845593552662669227873493930397792305959927001634825551847811762396949340326526876538860205055571206936454660942052975090255395755948766350767138100139599468287096070936124612959639278833840624131243257016877905844504016810417488211308873249845966975408617754464760876037921527251293929931996605886928562320896105592534266762986325784502924211932508006572331486676860681401537419496882916261386379228904081475948349473787818557445256284686145981782846672335478213995011239297286609766886666624090215603689195856131484527436826768830954699506471100821026570659799045136576499332350811937829865452485354576695975313951611222688334821462812775712399624799376486856676006305028181427535784289587432120632709724564746094249075936154019029045976024480562307375330337261688679561180476154910729937765225782959627338682299885618276858632592427858517945427804701939460239946960624861371650458977837833820476904868104815939490602667619812148886415664652930334203787648928242785018592934488906255655079610685046612641902735511583394502141858660933976719466000008323235516193690012724426767940887075034883799823819539434790606760431076679251435534862200235474753848359803728111741455415224321841688181898436352633521803942013515982925009178438149181451105936135814249123416984627579357095959116595802330710341463367800701425368160955362530139529240624424928117598266152294288492089374732158330871943799520803037743440895151087583795809051666965127617631579207775142020305066178392867596554204120917601908691612198674900736337374286194412416148053465562497712264625598284858104077424302597193976853271493633440853986444212232591826895083737031805887005253517870412152810854170821441435504946263879701139922438590353632387404484595411706947456772031699400431797450039951104164637189832856953690876867291295238744930984584260998885519364937668213183644419640568784674680214832804322640423250709736130077788738263717908446554693056130300697031895690418645142007316895657670967924213088226293904037913082602315051972723449884168831446939890072731953292451361147696546906439687159839809905563346184945132776590221856741626504589635161465199214006451767367465618050145915773312026338905186409826757095935341540225395282139559359564674613386944925699199540303243296053285479080882346346821717914317379219326972189583039212463961579355034514893042637578033351396841530150465163442581098737983558007419353039991362111365252386982446497125381184322781697888603770357095189038814325386551712684202384609135167440281682648266408891493864870442339586335109070803504686939747965151370560037168333364377803751497099099719180150224433799309962544830151387805191820126816150489249590803436520914931706425561296693225146800995852714982888372948748776644917829014124726472704459399552343513105956855657517802314729982209778453506882978935741212924724061380979461571210467129295767534182798409963293393755911584558378298994946086037561716673482960217372398251934843288183653960039059613449744055343262293816229134448135272402956357704984843102384007628957640330056469798353153588957564814012734793377836798364961688671189071738034105189061370555632084092986851690718500904387253387787364496445874055152881422210677695993251157430097715051029392445111331370695399208930939684295642645007363237847939874235537791865345059678442559530195993095404088753846051368128102934643692707382222240332479158740713348626136222830989948138050943268821340254928020906601218064092331671036608982953348537788292913245667928140416593663869048687810875631928750774922328229491564014919931352669127767811088120728221861825629509787120741434183118289803066530637919206223899024628112822620260872691357297935797383776339803784626944944773479718129473746424790278381857031343707242924263877080836990468637926778311096189482079338714130677343693933778212313396381310481594882847685064964559120679567814905147726051227153108180152521593711506330032840459021430609476026612301276237378290098465364952592783104151072595302912830068781608617069289645339201316210773872420964075404148459151762004114452753565072247239520692854995028234451740474266362436828240408529329209336774019846084726567130034037641209641361846521116224178039223529505594188566289063779626262614735704519153817763996912122728271940104979748432590308754425321920732404227693152120644304015179902974465278046351136784065112764262704851650249466678938621669656491737084291579541379619998419355967384990296544624699310116061825274427591127848518199656295326282574148596350761603014809901077721464228031083537428879247443179660083465903083675962557322055417067854886991523968700246485088654613145541560966200664939480794485599564869431901679682861113072285291937036057007951660676653934477167756653792935391295895963010449003972952131028594118893675772667990799478681511466529118203086723425743253755347517349727217383603572213122973506786334958687560934563715026061689343643900885705699835530862149955004267079917999444921934569025177774981361791318063188044544917509194198345249632637430399438539795347038092514984922010160618404280850437402835815980881079943612251333454984525359619745503077877047110564501089944306126961568637601562347434449458784543288559579154598371463034997807238233063165105813600016945767462388449213747343271412666673072281262810236628900199807917444528446958533968227589903206065237956401934898771416152081950913248086143273118490957322415872788835198347503404276367827184749490493638804804518488877797775705405272637143928555681576881296399396704622475495083058942444240842048972024874453460227191998458528075810248582634263074864492612076175452107297171672888289039979473051460290082698545027286100337413551653298983171727945245239932689382860946134302555138118759690242935811360298138122698528967704774092199260888311367012864260900373885966179246439645970229932702615027302165295022537728499906411079579717381196430999835590151803470691547899252508677839986419360860762475830021041052026664852936655745628922479334836222712812132517378187928491079842581621688204820396541460659023616397690989464534498635054454822103146986478193028450049211505779254958042727298347052007074636271412767084463227731118363679200497663885912677972920303052277258717993009374501105556994295549915287833019544936926913254328328080437507931505454733785863331496074622080641719963983274750988944978206918643373657553526155090211216606901539093260240453237202591331776575789017264326273262656714293498677991137479363912800872650572448685698294986224376406094503209802122379467061754230361773667179248664402412660912313477331014079717789403531236537703804726001726287387124387607528831857852157760815479623571233971135618326162552088365161433601256681887225875172343640551588736475861764880984808403271437898413852086502509867129900914948288578948548809975235577734596405631703296520704249413508324620587868527433673874790040935411667373979496928569149347263264167968256408352365957616853293255730016820776301397494603473579912665484960489085733713758272313712881712832225840112008743375095968265510949196553325454891385298296782528579736985789428223624759381554282435633740880892261793263813104248819417426883637979437464329218556427493778908387267963669186138914305400833852749088802285920616022716888238649757863665687264427100817453784538652886073158432472408432275513190250543778645810717130326252746854935414707403554835021887666288018605887160190744968604619725180122686714272650088253683222672739372550034330579363854561320051693345899690939522264486970272300016313534558398402080844880281480556010443094557249064929948249967836007144047953949484373610260295188809692365527264112021488316446194124105937273007454000484480420532553110146824979574320845589958059399909127664304423596428933212595644092810185727888139388662046896728266757144807890115800589949389609334865715819571974853132078130077425187931138132510210221577032132268358167762588087760892201450335786427216016149841897519688828511940600221218798097792479196150135742114448444252716127445368613614009006446511215804294790490441675659127482684254379570707466279947896108946395030340169675772751708040772763756141978904769779728942589657866795468971469007265007849981199923488470314161894007654449638698530411067951570571212725119503609471506747403740107886178758023750233875391591806159619327901258412578205264796933433399326964801513098683762193596027728053170142575772886441915823479805148399495678156254332693275838319429479658650059552278526835543950525694950634802320164826337989688873346670411788150578855152281876566002516921235045982219950178045224430739544391358770493486255757207530084303494700321339176796312323191666405716283890302103393858415694243992169327528301178513360308360524597980839882184952754290002238325576397391009141485240866463121698693559554535222324922941019297146693966957204410192259856690257432685319005418216823497053333398955496710797433170886950981578732022131184768035429395503176995698630525242557791892505628971844113373710149673155780199470486337904963493044097868704875177773893274834869686321752486444429164482123424585010401775132774313312916476607547391366260439987682511119715831430452040768868125018739894908300926287396710958184175425891932256547834268140549494812961101366947812572536159693416878272049562832851019125288174476372790601455097545664102142697737285859990562829849812724066008316739048402237642848573317556770824899244504358414837438072014204900690189142357948662525845586296938115386710599977298398408798665919268972887597240573029622417081087163402152979431944220903304317219910713290067736147335286661279589365681242854561080334095143769637701377096277340720144197858538473845444171720343836090964169926777843833553559797692521676529233862243973238722303739128810386963158099198970694999644209683405926492090117703730973621277905565606380123165295544314434682241378584702555266641066973304549988799337318567292390617440804094957624376850657358216672280697938591738104067202449356894558511467089231304024938992778360706301420486635180897360722879810587685247599587631024380396472567695127572641958934627861816665993332266978467726742739526481971789484913323328768120795731697152678513755708356196539041648652869023836524886787596961547621732641007127849699401374293839510703101590957004049318994467255658471729343060644783930446721687447451658445496467267395298884913077026046408310477050916398363644222313628922887419876207642687082392286434931898937323051821756864986207161625776787936794806610482159775980324514658686401010810040663343775937433028836116652069892342880299349784927755053675192317054960574258212498784350499240705178235917294440519603549580671785659211763405477500301015922657217255300933911278964804194440338473077053471825263789041691378575510065454198048477239939332771966635038208872450070283862229527066906946056464344696647893477973992987511021791601392297443794169438898764443860983315732171195833577084084363890514467214823733830209769469022534938193107511500754453139336859093561657815506872766360204319730599455714408219501155246910713251843026580314951669523136288584121117911939803832969599431267924341261893813123064003380908099446334268125879763386036280906184754559940978826027870032096123405316357871714029453288724059900387466529342250375002508326061777679811783251901669319698441010343369435250621636520684682408653429077696353747260126854137369797859007854263345586709038451256277268729220261448494059937411942184881111736428968244742889352692942149324693275488468099070068294653567091157620494592617800495793540052326587096974251644382050948532493983386598931930472395878651815763832485640736079162160615189565158146647769146434631189080032102819870070625559336917157476814242511030659000579465823034256451504695574638474205467209615988633565651107850476359412674055282581216983809979731711070524093183518449570003811771423623840480846753446518360129809595494858593982972909197793278607461562348988062197825504398294834720180771793813923456387488212015611274100701226503227631777665914344657109175632128833222157111693631158444074421601285463490574101551088385222045310010642746671311789631214339126613990091079368961387136195903560394320456654910409945753313506496144784131555673869330932116407940500326506176575307855215315660218450320045424424000865310988925309653894327955974332575606840130720063961785748793923620226692941822413969347924634842647850478969440775601517655247729079212401102079330198874031606410976858079169658526967235015401737929623208478150183148104483456541571009170125799672505381527292202505461937599048478092656879032803034622702698088531713742838976638707561649032908574528705022571990546572020928039175193529065322574308251945404058599918363323348963242313687988947118270483947316031842757297272999345213807759858887019850655829339691123031362000286282578136881574592025662603830069777509472257908081110142779178030257316396613978637775596613567429235127397410016394966188038339931198458447201764414625630312447443523286510152532764289387644185755589130775152364483594007932122676982694353078253096987306638587153644547285491163503576240643034458235790742451994628584205421805125868029677495380971457419568590845536835055173952290360457215625234097250012522237777383840867815414674415892424250056102537034325408346624631142872113181579039456289786036483573380012413543423153606080883088441894250789228422584579072238939757336403172662301089675613886361933124345739423564083043963847579441997379288945516039087292912458711798438379094342689520779395870156463937972309563387575752535059141944148778157475184856045156842479994540964269558567493700155423974761887820584334433128065039670730275129461368990545394758033115748626073684555732898663947387028559097500482741944138174656290204374640542794693136290577299702384315958813093952401821945602658912582411961788095259536149479637996966046423235071215447017262520074821599155132878704622594380687400690872158707241947136271810222919672738090582295292746279002879705178834270766351631401005915474887669970209525093419414824162954272921172691058525169590402393952356742685202107983691315675394375585189085355098965821630337715156865520656531681122985179590814491903485441761708942688737666908680031934843434312385786093154354911206268439971924871898305508328507920083493609851200233984618652334077160188754066129541389084282610643795780674997449528983485559002105644951981099693919644401325512956966068897129626816692186965566147924409254490209137694614737129410387653586373120699116102501732095719737156561737232150811039883549856905137851199978679960861503480746217361730140888726807633104350450606866593724630087116706025514040775274446976610416708721529772068093774100175324569063624017268856418189844286255408602215230552664268421215307871506442376215110801791328017662176775443317339671903324712203037064122033345938023108658274760413327681506300170141808284783202650526984141382463577552038491182463008867818875092606592799260464894826863159189178346081354392360118541100341502658620302824533764980101747086294615079411354471606945936306555824997399292252733371253295437158059386375156497303720025175388015523216223357424458656984859497432723264691139578575869235731794619047220258633511183228265653765011570603858975901528489062924760834517907066865114550965314165451776816098963126843952053235176651776598730639208719275999581811109459926268648283690179992347420488867122215024138180515326585186719598065298108418568823816443269915248180079198221959797287645200895814819371898747959153879694379562073537899924959437535542108684890894089621242050314415829824565338247998865220535752463723953450707592991626274620455488099881005475858299460616987475734787839280437831488603171641728951172079338904839319815316421022180171235232568360331421492265862100060096257691795185371477517014183716605605118615119579457621388921495502174853246919885779887302740972792850729072666022970720115985168403294084278860194035837855881794580760216149034520943973750093474560913054424556978050361816954231223149606029041248499130094496252445796716809798917821053089334499895792674199346755247406318625653329912775762806913242166232235476618149029019024719154727330712977852666544254417684185692272535005517922862529171186776429780019564586211746852357259591750297131767499771397004665501244709969446689920072279874398879156345277344187152206481731000093126169819025935387065388370298547757566329170575759926299544276792491280446314692047851607901362344329309554155252460769185145926336186053147516711831782713099072898476070438238773661877577839519121088077781491958299613105409197127931437319130770071028825967850172761982785726649288129935884852694156839649456299763715869083011214386392553404397472831432853374675136773257361298882366825991034879831397060612776219005312414827025351750708863217995978363091152145076945830819734391293435852913869829075359470954980796332073558713053489357409726283157502647363027477456903572874274265214698175244540674126798775331164843293045469117964364333964199619667139894525787443658961903528613110816684056669335958143250995091069010217222064891494778888493565444149727809708208331505920986891189309138558515978899068589243208112135372464521115127682507982736654470900037517705692891639357314531997306249957597662944662367676658321948351421304744362673444449349964062900745999169627471165904678912949274646914066074794758711997372345485913392458254181739609171227877015755041220034285557905666821396124554170696601043307006227545212291806460950292532092061143957811112074447190985500711762924615630043265399765005495471457512142803000053888295374534211060198941022238115317008266754766998201431175848420829239996986359605730913812354466823045720761444189233258253245511911941386076197466445993093171437235451316106832033085999637918107809795781893376198425216053184798539706523745033180866413195035657338383400501814332549164580645977432458223191665121158775109324972553928480762451239575284456975923582436173772205983708837733772250664859318873855587362479615836974104621530481849694744543827873179910492541306489066851003403224496183793071608710819213306771626923609638262412800969694363541435020398067774856676740946890430629038897322119267533244042080142361911085558560243122517073364068398511787921242946779694833208918046263682970446006872525459107483345509312673423075874184824389704194630794447116487988403391120985101296771493097701492223148274476028880961299847891078011182208172841371099272926115571022654954645088348484845733669750840683341828773293433901414110028890324636514999109745939936936185416608117717235444948315575476203565601844843870517473135139674898995267053306469125416429172917998752303876798120039346088204701158002783277517616021533686238267350186985432596052831082655241950349154032386830828956919594885259762344595860737721740762283099209229133050873847104178995237807221438924936677447204216438621332338251437432046100963692674467852175724420496282769175234947556673726940333533837845176200398701828474152106627563279327756970510929382143887875193128998425176470467250310964371012019826386744664386154132258425862581871114427916900660746144155121826898140576956706916373441832827301563437953921135454482321964580263448863536914104427155509630000635343933662929087865424172276002783740066240620076319210289491342862053765798514650223519221274230975447038087527644499005809263590557898779046548061822143192739565483400142402663054659378543547071729672089217808099351062652878210270838556349040407714979880869235356946073661546122855475731960409509763621649879861594701074902124094851197030692197988667601781178628081558327160861314721785033606438560804093981632524748532650459044178537131002496720836419926450052974726759136706981273538145503806186627667464751093234059132418203879912280967477305067397777933143319100885730401350464092476138835946068873541845446461464673206681480848848186150797299073212186519492384478245326812801899251408944078165824169356665837526962609606952641053589829612399078180948088805801501226695612440703304185297112613495507345154284552326452566506049740876687180042460137768636032245591860479169701799858224147363758278429271898824414000163940295515181108173207133366237602742551479050025562556736909779080907978215973712397794186854327089971660893488718830203703479284826135364178255740423241508077276028792433323589213812835355018609871790829679237079669963109493568352210167008938120690477967086964636295276321397385072609034869509673861543226617013230638314045268394274137147955685880366629987262425032094155109832892342410304664970314459468124419280441169755947639758492785213239421890594468024468055990511060278097742639864119201148836577354425664716670646819129144699546867965054397606258057260847652988520824636604526894808970616687321786563935642763136507944090915665384344507307355149779600050063650433919608003302610770561827011561951695875969687995879119389663363905823899976572551165028177177582772445206065424361099601608491341839581713942292166065000808757911515386437000575017534083556223672366766386033676118647272129153797362892741563684530843661950856448061960187505598513812765757595112070398638194149111097201818684012833896273029619208631836505958088897802120266012113791185664048709922471209475099729726361482145744477628804296430448465262883454287144129181325611108651781343924945272952107924948228295781876798703942265979245422639383315506122324022973575663498062103294736838996910595501504454063374411097647657864391193463581802759524352417366884110494599776519184150249040581574164764262516406523058971786427486972611866956247626602660504272925554309163047898974110550253604570369871395821509870524636155229221896717890013565687857606439476442586760546042935039899619358158125691734056714765425791307055975885857644077929679744162175746486591091745109984990465036206339853645805798372933760157410519244743590445564396886401120762964010937715159665088495422839564772153204735268232579321739089237817809011921685283264034954801665092419615923088892704695563437545770083957913510857191409824999543969541585543938946187873639910928073478243310739444014235879688125200476076977607000453541637368943388775689267108243069109437648654916429083626387138266323424863448258775535911627615465222044996375285775777454167916992401911259684785059600458711562190365316111425591360996971587297590320750320341229687407137312357114769139906319365646738828278782156226767007182535806287287542209602732378764092397141149742709087584302653593669392695323877187004588002302177170403047479723621447177564183636695449381507569914446636841778212647325234991312477276499948033255485615158027149356012815570606979367968760437279695362923079542763135719467392052153058188287248250178266324864161505585515517065156304540364859557013978809766513700406078087506246234140730176172550634065789485275254355699716701365931738544792990688928346889610279340828321573070586757388835712922900149138738375959676468739245796045242115480570053715601412694851233503871457990499385920846907130879930841279860865425602637069694704131220044664929966050958924422723891129484678639808826102988535213062515549403243167334704352870843542204732882346249763315192035390519553527702421849823855281218440693170772197510761473518986173317616201827375252492036684375350769349294352419227222869825459462690710654947503957039914258103009456203707429009901139281485276751253289118581277623279477616267230890442163275262994676917951934607717904127746566691999516265276367920290185440806502496494717198058470927238305735435246383931509033863496259759246707752801877450416754202812332842573302606648545483217470470217668220213089091444313988559410247522166474354190645740752639139785952279307715391449248312967827324524696159185818749273553995103103170097282002986801628132831842172979657966573143368082170347247446525669131611294985306824558672541776398572847925186248839901215111532853409677812683181592026546827344269428124726470708081565768314134919142252905533931707304120971269456789848367750661609996476442770968815859356961516916340596253791547916958699006390362035001554721851509260321831740569185496085241987714269859510252685873613881468194675955457753354081853610416907976732817016479201937500647961913877236633129332742485054613918515340240221944072139410677989031561346220058970108936923718998684487255239423010109091741217374931523462619234761569279894215527754464568451066166924140372107811721471674997926928732735359815883338057757769971624399855425492593071082524488045713480210832969065780850840874379253626781254554164701616197984353940486766785073709186191605525718155596936664336946246315592377358842034448294435066512517798553569519602592081350449865092362871774486621839742251484577403929016536948859343559343273708360534334615272113544917762615362434896808928407602955060743063789339114763705769084146756923501820250882420943797744992923675782095620768516094143936638582009907810569167418618830493883028299022593169707482647084604887744437359987591106576039170958661638146463072031815523651281630724367048717598299436444850632787499098229445662437916918054542074927162937699891405370098864493279362254360244791466627120060468062569034404106135358623287540394586909814562253065702629422852689347458870439475637452737933943454380803691877371349455216235281879615223967570732973351998729136223775962889437974800712764696243857202955021911801505413049902199433441424554721515808713368485985864047781327185904911725118298699718588326819345851518858270544864083922006959997504663476966162955827823397051066287455702779617992588740561403451924197230130369953895197472038552928429449749634136446927013100450018461850773800242704629515135884303558465283517344881504384391981773381413665732989829735239066090852326141464174117277086714334066640956090563942727745364568900950571688740115680314792468086369107175522392532814287430368864776889050265348630691081145929864407690975270701639527229460120379520470299645758393445899943493339907110005139807401908224813348413310704904927016789698076759347539778107369837520202491765257050955491698182103678266975150483011324117400108565125423035332057913443204734327626994290203319713742322745663666795474626105695734674988788579469173170621514335575454267174724370321751416336473283627374151648700461708130346907826195951552162289496119486972026402630382824225709286186334591026147579842388604170833134034687327079113180294790531457997365817042549907103864378874195804890446150144155419051097449315069111984038118066127079510039579972929366829943300376366614852901488536362594773713643106531731898338389298772161993478361286507877076691023010399388359334180032432031985212781479386425593588230016918749128778231082845367159820940331878869777026554292135237428329545610538160933446121505687191490331197908484687228695118233575735186421948431056569304055129298529001445313185616632050864874832264202660041395895257237731766331625964810926790412220600174481078915555149357390401035577510906378434383249395658670943083235142579060320564796817087581882078748831341740217056859896175637684012404603522967363015195159757296455987755552574191765141606138591169780200131583836078392804794145975185359194316423195097206905379654466036881777307420852801550042434245076029020100446608956685134044343420914831613823963446056082411200597408610242563469743491149644916548960987229347195600590981354503082305126684302913027164999332702543629585320314575214370132506220589297657173638933289963713651752447383432325446528190243962127082390199783769784942659782632695424220004535753966068020199419499704083373934146527006797126490460107081703156070754317650496889634555344787037104157292698464776335846888694156656527987990574823322257719437141483090873855659380024854468429398951072093532988779789282925035505379747400230715677862499515729110971437015666788134657542963263985463222528600088599843526254208828944248816282130398435407967211500360073376885494192490044594770213283201961052208160744308049621351590408823737538577360038316569500304679791783926126492526433875902446615133621077158629042812625969481764527818632486860266687612340700012961101092651306179632218820633736896191160528474646003904208978836771359565927818456094702020570178631683733628991448780453805350606792730795434028857870310978256703392682879672675228779122686296703230406587925988647576288157283458488132616929617467531463386983859920212503440737696847765711646763244582770097609077123285245430702081554562107332960890180114394561425117425483665058693023674652904710325443958125308441689808593422261761307047352942134416894054668899907976446526400691807157406205049567302685276923141793432825790396032963883191376862702141644237928855056783252547339682845995939239726213198992874728694462981176574695020622393286165131136898923903248775352149603205934624587869979604971214551507724410271863095146685994594193839573719005913695899890485744667445316880802090927167736377035497586872808420185255554123611339710113469474901257477209508113382855223872658023366513193024384019692963283884661341530100724238949600818498435937036575474062894837848237157868018240618621545166454770158604306101367179409684198582157041493621638959933927757741694814648142187021053224252580460037638842651612464593451063800063037924109843649942549962256112488827847330585364142269526226984150159921023901091355762839225485829423441453183116355292412621731785651411163832203684971236051806906137220467351825812484372448339220329275786752143758398707133431709535070695843455943736352064815486558342401170049860636968808001376867768061353649433513592926176827935021054940832724092814207606344797477926314511608496383781347375446348233377775981594772863264794144566858551721740140638018325673354623521463598108002700170677181742289657041829167998379095921889454315495271740912660424082787166062460260820612994055469448434325612339140116354839060085723579048942938248378705808580406189452037530297659930199751214890382658464087613737774844872439462981803656987217143999828242693974800837100253900951807729093922913282864462268715281084604853134001821508852851849048410183252715938543239368876476658956183710776968916440021955042824915538155345197307027707119729703552856005219511590319097634926884724105103069433796815676102076718527249570363022441979578696124357398637737043645927145082404240965885555800049703618139032489033913525509582479762649908202788583764813937092600396684241561171479745625302499438654809995506142215227529873606177184819572880927688969336097279055925542345482874760089716088572869610099989075000386688014734182511133124272559738562941667847172746459202085434557297726237599463249225277532953233724858972521339408326335688302900267826529067256069745593839854301604448245138630431993310541271810398248986793995969445072341322434548635838537871107230017275991359117901162415273444508442115944796553486239303596876429586283297656379902266949058530176755423560848470085619276000636715683715923328568886819409158844144954489737384303479792854335423023729433493755719197541330078541038545018306473306974705110020293098259315176459641685937797979532510642916908959412572298139447263306219142036066309818387481054122750556000431964120515903387102023168494351238715707313573968924938939575881650846285560679871327714535519275125096847616996547677339434021864265050402466455577972556284732797868023791448695486565026407674422097943070328605883794996172135638786129420544821758064288649614280652785087350602376698853248623329397619757237702256202363503603897911197778638292835838743958842262356679354338990543058426502441899797497368592762276756919189545358060067817221769705622247209665338190048502465815224939036756506813936665299243832759137201122169783162905323977688368916478034098016292111425718413195921205307335621735574915990918385035148122600245589242007204773571138148705048283424973331411880165188539020829473637487754703268637755491327716945197203004233400762312244181020456666721637499291143214653270772857786343500121851208128084043007985247236259854744626025026832367486996031856987167122521669243742418973564001838247840189745636774262097455198304647973056121856697122881081901718428569507492314131078917169750008821955916342868907142246958323422370485992253302513177527533219411329253236885949422075764938805340014227685585383922643523729372851133573769709358994677178356385286578159365698056501855053837355922473263642851198949079363401838750769164749905184747197792543940890489014506838538985121080920403152041633218552431833180198911509208839325094889221657345011352660633848643891339824971750440171862226595916024817567901972721514871682402658039008236018309947751229115765342951688682297358336663022664746687012098562791974072111987423717387427228798289313585409828511065487453131474241654582635087486367972256189301834103479192467294978236437939994520451322365718498969433670916346361357301684328869821510471871508475516206145062157181073201089373752386913876727145343931342953710841066616726377470950733363891933085142575406371256892622746124423711271213828045548199035262335451962046370218057412942397574135229139068346418163315061089720430920971458555881195044212522575191837426134573433012423067745064148653669963385773135322017984779397296626437211946311585267173007354824711962790227387789384888573325192532988592248949701521109730735001114038134756431920821741016857660478853381112343314622377811328408027124321651953217383811032160925539954309606004632308588624710112500874110806672352146744272785538563127674818473163377669116529230900354446644424900967749859048933020921089263865010016949064713140825353558815873641202524253335874131844751087148308117218122531297815790088755204285179075993241310570344250257633990284964036572175811249810200333561368355769571081542512239210785439019571652139848340645671848538881815044340716166101056224915042650386176335145512059224750173626928961264618188817427138503017500030465209570827226590605315748051012902015911563365459526271033803986952374544349460793077077451490121372338349278250590023533426635805895822800349333220741607355315005478359909516269835344163318967740200307073101940008807829759889048363632678014814732183543561983735786948329742267061274979357165740067841480620689998083650588112374143384174262457638599286616511377651205325539803580254425949320295753339683566177252488316878129053640622675040501347748264877767180062652948143127464686590253814176470291950132564860668494070997030906861860250391980074836997253657148026181123496713093621892844811334850313762084242675523844878126435593811017125485471962410573963274211071105482097068370256090658484630646056022782634056853676765743944868338408125034805706093007471675334106279272519920676730579865797651635434760765063316515112176625033062606208489241069247073300616956493228811507255430200019489519717311047649399620203441350805534113464233336698429282938443836460178769453135985800928139129009865948174614254989970729499962070675507380566509667993430279907549492097604927080181714768521757708392336742499354149411370146413429425951032718670684571780021943183365492371470600967290877889662280155220322600242784198499760778276977921278617109263620769303250653623852617315928738565315159622168988344747734135054164266249324560067609779652066951066500090607965788613015869082747275396035410264182088841726955657330591314522533696003984085311665899244052523698784151702659118465950788536259104364830921581827719765310676051084977936502806808186944210583439350175086287677857468794745208792945662576699996944513901362153308234466772858694270128072424357740898568945431662486712499076209279530791699464667011124844940946854737439473915829797339707135276317159881388344008069685087172022739766297477286489469006301946103088288619294227162757562133494004796652896149526494373841045988734917298112807261577549881324436839549064923567103060466501258759448300441406185117647886205823177895399871044523373981918991666306827355341423387985154791933001514183664610477036778645558497089949532932418663119127298192757873759861591619635439643819059314391955530522988373922783376167803195975832743095401558053603025031091802219920941054586169289777564490571449356443759402486368930533423191377715579335212603650781959608333809098303262334371768309626014109086221876173003129615740692941307963089089875589946461286022799211667928327875976468715518305160608566104052497287684152797106803582702950636710105480162041216817380177229136302679857957285598699083540885472908148760952052608158196569518864798791154191674020816511180094907257479161489771452273961379753228326326447670356000882982833579729348900015698465838769354230510154823196467100384461615371935636752992669606780272385446853570284890229028280362248965397907855276837347390431042285994077303767634171067484018819990019735874639953707311573572480393677990343315863017904675586622503786385080981864148424854521519282692042237864093615109696370487789008799093280975078340809560986065714697546323136419780778734014372179695275342904106241891326777296922330431987918637917579881167922714460960446302118513621104093844068696877858764485054257643520483870242142820727494713072593630939767129634483407708101946870196440377298433395270197651883241066860346551557365009818318373289320144175093718096176627707591151857920159753053320356086575453037869081918655170001430895705352245719259934645870705713600945755837505100385234535689745825654101836754608658951392582790328166842171123747993616509028140564754058233952816033070484007152137868944559974997497241203724164684473554563672337077842513760688882480568536897710227075356365116719964446863050282750255712743371011141153117811768321194816190083078897843161856862934482940884532687849441419229251780080765416722276596897902932288202053131383805008837762406801423527383838119713531630496925421782392543692816356184100034099835938565924712719068407280677149729341912369276957015959440170077622659109206916827715286012498973875432895493133831525317881373106439639578204843485434945344966110033864498126072520962209696409010248233888515200082655325179618532475284283446756996719938425866469338887512824863942860769316075439406318982409762640213368668364918629627192022289020186877075876735657577186622288911802921318485637783253440912501617370802322290121375077345699095823628141689145310936155939551490749087949669729818730302010125013564085792349671314684130168020571726635708439489029313202637508945311979199355498728644827188979769683605604404576800859821081615937514979410658866590992711378027807696340796266823461563173302372673377252854963875725896486971777109645991251050951421422392267343878648014494365305107300508303005222690811815202424355830732093627501145349690886568008286860587525752226602720194284703303792208231583184253466784762601449170123663512241350698770003411950813909025701710071566156060308355284524368353407902771497075055223205736102196215186195853128612055761693703847851065396427099703220615555221675519594047263695531019192039886554030012463286458548886452873022760949182507076057927265600529951934294881956348197227583945715693145740667019030965334294687336897943206392986026317336436675176648889368561620537832956316363503066575149707706540624811388580306372002783148862992247610020439489479604848430722126577244810457657382639205429369269643360879918802286219441182328550193697872038016765765793865907730160891814168912815115573702466597087096412317676492760313865244669293139403693621814715406977370076564467651065188954862181288205810321352126632368195373277337210245876305739301079376219479821571058245258091814021793728239086500571940402114129611443477352665132253725985956145863857878781214497002691259687114845712865872076096286595885266332612854309244865739644996399252779682707617221050782377682069514733673214953894160274882823972796991051649276191842043646447373317085545100227778622192521754835139578515362790960257995645525012734149479527730067706255959954921067383213317968917498193350594600699822076059387630207886469891212692897910889211933807641180055211579148329794191415421394684278583127683567081292981435415979357527240713980632910387302449086577556955798759923265502201691046670887935268410758318266582228509417088307178743485700984052736157028202223883579578434496795289059671695402997669475552607812598042426046280805522305633468986856999021758066310068274957234900267636000602019505937174176475307751244998196764197270052369247271854509581489978524207478735020123222894101041626212587977830690721598049877541616301896408073950125892052338252414575293280356753486817658888156837181815216507409604925901280009929722235903146991507926597287588257705663763150046225300551898247948135424240403130513418880231875642743469135897073702401751477945245191825914590416904771956385884970253239769630141586090985747358180400513122398764319345798267397546265788004232022135471189579460492897321493702831482753060454911410764951100316421800384178715885140284393308713249426081482577553845291859448994389207043366513935396564616800930701787628313933369862888542095094737219657645983029901717124446929339195128968826457778144233537198548506776913357019753227174127339158652652659737929678010468829789536034068804984673121647936600613420514799452595534361754873816234515109495523008692864189094147167543056864920588081116244862486010351272428174760789526040754933978602578566712333945040560861531094042449214257734472865169520512301882238864371036034107011010907752077037210741078693574611659667759660163605187668188844425490481940672714576217573232430643318525068758426724136055974505209344739443344217367831183444431838068814671414231054733624154327997779084110319161088201726092967899091484383766734540858826024274371052356916003189300187292119404575214220369157405248657151843079958478335648778195351443505901701303106911190720296144640600497702760497015091685660471079898126153782692285943504954136807815463230518982551519126897273434550406209593420548544885866010468592150327062635731121217033519486745957960277234830461980753207475122174471217720732188283675670958683245770917910216152434297737397282918001268331750804621171768543485896819977978948832219539401805389313330862679197053498022797590307180295282224440136225395859364350900772254732976071867902733028882426933356780674092217051552392014339280581159597739087231358632286289922950196168397798944595629719881146195750435544132621497353959532077535849656864600431950399903156969955424697562211007586845627491998242063658586729190449720705972940240481530660056335750481890538201400526607220656110632378069436562937699025731483377873946597846804784478944382348946956880824141336062040569146784473735945824582506463760109243076851005133453081223638248460945960467056658378597057986407783910750742370108639313768271774509075546045370359361740907575450575164482580602159940115968587668829823953146669336977118739182815216150386437083978005209727411087746271078410095141808829993159023260134029868902227012617112383694031768606496013934271793471885302569009560590391090520642835684907538208482652290130115056404656650085714985817906996188832652645875072696072299119827099348588180536596092464790622975423762677770205942725580943229523054162965799325010026607811572836386946173761105202826961958914303133324626044195978844563235974819877721356177028865513456224950536603751995580240714612809911430052507887275986089848238298761916554419893274222259720334178030348522184177333478923055323221883638333921738364975910605759407260664990426712386984873554517454078666324611588998702182917618253217679827981303720127845176826862177284664718094808573751354418641132239171673914990683135320852193107372048074832261355253936971706019952519437615443253633104036572518123872658096114961223880443460826018159290330345320467489414377963755758399812175146217712481455383760648604520472114373175297807959868853530476146441959849953396822017587283280904627385272234530664999335478306686817161262658772251520803392651014930680310546693268829311862237159177171721460099680235698584610911412934815920632769771746020749890794006927636589898326068917004013213366277892910938265566399617222162234584258380499062587545518310600540077909273158755887065617230477759581484410028251081475871816500458460213425572379545990127409430584849210430909335698789090542242736402728341554556178332311153583688999676831301755917302143167055220508684121160536004181904563506059519548136438858633300960224380301482641405218936933444945997714471778936009990499237015776998519089634644438349673647989301599663747980870316334368963962160918271810823889891656602108414372545557270660911391801705926470823498273535785126883846140858861308235724350994847504863233829858084098355009115132665056751211158805550641115544671270116504647311428839238607379543819738292761021755559319599804555484599202419625574905161398074556163801605224543327809586277806135513025632743377340924130773326393252194678771429651636499500729329265453813168422927313177004739914433648172660717945255501404056266522940737699605582658044435472532034647710594089079841159145450919032146005321642556175200211790145914902682086722372094858218157539039447006985803249007475007743196237777417153733385817533396260805195280280234385621783554920563853341640510470153228519647689725857750775323533234469180470357312105048505430012544117138048206063444860360582310310738744804030785434278330487963694674536213198424615791627692365080217950108309234733754654839651105269178624982695220601679873769378625354816448374097507557743931662317521449549449624178346821612053433104985016737512254885485287293608185593346737447904291755690200585227416766843099404546426844619624388742013539970967307798993332505513459248556040843720492231562669066952658794880386079049186758620779860223930553067072526958250949472101249547984476814889997236125430895448308527801514744770226671705244279907067470392767993622757891860544583812635036736125998100671372454726061605893608961104532532103288404685269711723200912786423703391324908539717716009442388134169431325877699336075869012528392120993956894496237465453161243270890414992724115460664361022872608344518784932860105454537531288437953885529560145593156284567955598968857351238386897644063543257022282881862833785313273228489196668527345221434375187113331592273010017992544033510597263658747170645479554655708761150931374775363737050062498117192372148372825716542777914514065747425099316395898281491519263924190776785284300612375316304211836560219252741553760600060884207315713797150732512290001311895718811606112983075192391594000898413102582569727549827972566346933438189797132322363761430962138750881958818033899359245880081070807359308163601050976896137565266982664061700452571408181481106195168518397221620465956571178687585489086114687242752029479116784532490173138905110158622135279626937307441461119011305883912339022834922941701350585336164776242868270084966415399716965957291909743738550113170710294439872717396668223467285370823661567671479862737876322805567727578581727700526040276971187541004065743149499070460808476419379444273626825216322160045984810982824713002700445345998881829781674499426709088140389675955637044414647595410642058603554889845626554910764590148535502614196264904154130295625284593359431983447617507824477601244499488544386001048882499737105467615687203991869487713020396623537839082189628266059257660701136221661558972925779230250190765434186177843194574511926926185144149588645920059019787327534468413197458002075611821596148015339083667768314533495294847206764479617786771606033443393848148525038069714390566981465965138790761881351060548047446137401891804332847637745914135864002515986709459849072281118729462711367572712806495236005965399764987069337863973511314423132635102532797663103486116783514488634167959099396011665765745598158001888868860717139954917510590816784681590970525899741696908306434903941296212057389659622762362136874796389687295107118149102580453138572727143490887193552261882842612932980236719045257724088222458103696475789417571364035954579211339961847244026169395476835499944956183541152266634756536142392926299231708895715131893392562378369300662071223354318941438613743648932892536239446136991535799014647974033986828612209996641473782884600795607345458160016078447380956354747002551349052541849757874968170319529503779341840594926722157433251018216503406652059936160760644495607788073964493019691139563155883979345196734871479007440863516375635068232369720199017288728891678085163673859285943257476792513493714313695226478558784828341439327951161587069924196054842909035718075437473711766190636738542436972763488165968508653671777973517988253529395437676307167972371700770459881312407563204922665295017015914283374673505163724955779422696692562446513066389635499622938731141421908111014835568013772966651371128999641242099980031935921800645424004723207120040712031603543579087039584256373440848433216174985898569712502666082336114110659127716034890818140521503626304326573112178598595769477893833987606425885444815167997384172989103201516355047783401971551656083642654614859201078341402217696630496303343807656198298957565860807466350220609818715770542599234457222502105236294952525685439478938423565026750526721072112142521050043463437457376731611685646648455325023391591148081920964719147178921398789263145824348154966355086319387696176511414512347885390169083302133792463340426801700388199634507313279873408783060121576808395143005067607164056460923457234150071823574771259431726627174774657541450898846970391184533463860003694332655409071229999319084396495283934257158730330675810242500346594556262666617813659323549503190915633421059432441926712576185777681338849769039426229126382916248590465454494815394570626330435838767217116616661656087304537413362340135743704991094925593175095756399050747591541378275567434171501786476122261985968523755807549870226309113867938176280042525541066821327009249427284387871888963754198460539415714125075626725386386184917105934043118220006248974283318615417032372534179664078556151313150929139830893417498960731862653634763939738224660869374541450858924464180742803289575166389664228604793618761468429660712381253031757616304399362313266963795099068274103087634920600325028980547795872881383377164105171656690352390977197224567988644077852438343600518938787819165121700403384572249064962165367844873727044559125703171370125658517956085528066017143137360385136911386689848118101335953476246484416821027573842259333669715624976427803471994960153809387428655781504732693567992992784717400114678090708252075597096512639053211463303608592475924709820561615694375009202006130946261093307351510455105048229634823440332679598309046103537167774117933241255499822651201955362833157311009214405374069824879230861089309285551331246484097091620029180745668081562832669829722154506747409215250216894187449066591905890640262590878970577229026988996005738929197781132994238506152429373083290901007468299005578766655706673380744639746869370183609201808898649025824156828575497970223906234398188793274746737103467661869309399738392739574504941630822398892173081006693505707501552017201365594898615879302997943334039315568326444103158686509601248541109419321689528226661150909361757500821901973702195048193407795566609543771477207852821302144391278287428168401366001301084799933937834705532305323075179689721200297827922198710751670600354917004586475692341925182930301132763915681358219671362422211886084621569929727636910782430372661188993258694371843090702960396049577969509394855782653054854757363551415137966118097863179820749033816932476466361554706225884564137714665324975765761539815798840185368944638073394765596573241623202897300682093215805899269933993647776061692473317289922173930463712396469259389627190984783965213300962487339911847713176214173338481271278738667994807610190048668440769488133945940346081566711130777791286950588214971947051171109650675488447997690147364337384118588035185963145440887602301768975268640482352129567911518456064895779446586101330746779576274320909215843740290589900869836614584073587412748660620775704304937009433210079512177564035486387939903640963368511478725236825832866900049696409935788319375772982702694362769345539715596229363193625991348146548331121308886659630742756802063067929707053819858188975413980831626226711781147541712382825919208191481200446188716699058933832857317620209122550316755650953915390478126543282574158656076680103348524949597348144269111641909009093027420438088999023328188643510365864088330043651691727282529525912614864625417835089136186478237855444770379084844265173685095269671601941176048730969623865168398068598174566865984155041009513926680719144382780108109553322332880883410935784376541985210890740927134169927208099027232651381784914205906270427678239540714416984226956672173202484107932818673106422855616227464716818461044080691930241589744998259417960206116003677456485282608056110856183458544398387803696660014889309761377637404053146619291028496847593821524599811521995277239108240640917856480582290353761310704665352594099763749874497423356087699440345825326866065713769042840660977462523152077233869758727617792161662994067608417818704638461033939167666432633711393849182381388224310294950220628833238749371667736962697766353795884124257621468268134655144827744010715009610176574162200338171797940617705363081580561081721186374853332387077452663863814791870527569074409011957845950932714851122026408100834483620834757345005149550034154097504828267291794647115309155805147797863070776490562636431822261784561431732114045322691433100037665440260096948463371233900171426663145855161048377842313795764453168399271997415235737292116457626080685183388475088693473321366153178310582707487341669290726086518336258967125087337620798395335571480240093762657780369852051031597524273544862398785083324739491410846180232912097647959394661295821530074930188323103060244277161941679081260283771120362975498712904370349731579655881967389645061803482588532526044812463066212633444974383055619006818409428366699189651211761687661511311881296401903609639433100918543801774752151730569424543093268628745842387326951806909644679131497406528277601121087238926555177843717155127149631196221320122299733457374154643670691839324809132003655608922573956307480960435845693380388572330183938102870678504266592234330231986961985481580501556573849273127949011327741326971947416193917813258454107490861796468205560279703123190228956971053974755221898751921040243092513556974717821926599860844937122696557272612449917923953035134020781170719031760622486296277030070624570889101988330428022268830037197070906311417927588552129664686007859842024168786325674294823864919469936725152711354606003111522888475819058856912499873920017301144900131131250219237353888109793678430516217551286059203254383553241964111508350772778240385258975302574821444925786514631717934483519682303303066027256152445332113935589213766646256643118627185703950688876656578204624838069097507656091881491523972287468701967094129298951261687427777706854658684216775917971950871104314042063287908842588148875554238529764363116365556678034240028857176316696104487659134670807743304246081351828025897348864130492585957476075866580545496080396052445493999621547640357342270171223237720558060602942486623080571459378434107140949617191285052235796292859488768336902768007414138038091158268281869290688293280344792173617349906276649397283637691289758862921150129670059831907846221982710498976256970938857119800471080163531203786611525198829130857289033862151169850750259832258176314749615354816495446299295879735009940914324899512577545545848724476995542064325154291831994403167465627176935587324074193386901866639166897186261299599880839197389096801579762705629320717333420116462390019192385349789500952630109759211751357838020422044551265457091855854039008588370779777357507211468272912495559359902950699427118583119854613672730842278056802404862795144867010490345639116075392033587423618556527132773318910970717372996745942162021803781130206967764585809366366808847947631247599975619748103320904711530261552614628211858977453896231111349770326836605363474905496322862605912314576426812505394649514286295266675559077479564977571418015612467517167565373660218047977365020914535980514961907014891278551885034737528756407024060590983243476193620585594497258500069780555732230458064076075500784194776075584597222913777146589316383574374530966661867590082618724994807614567288053528630090310046980332732669576520076984125162157339539033181766159389388473368456331391900160076556497305999370047251451992538867513354588645447609974743540102018852413964072206866263894833078021592764973285006133218521125230756365902380343144551712827391208789456914218427175020287516468099624828701722803291476927287853568730202624658590401365734223194359332532760898636214988283632771421263173892122123361862004616079655786798463131892961931596037175246099980059942181425516369505946087306746099109177207735127229083139741067493142734323945383294410711622268424662641973382986104927095852350264779810414313987529749137345756532823839922824087826226872283375084573836767696989499675717931830123399496631391930661943336636819892133744542396471820714938923186741551803177295239404438822579176513313142424836247569048724416048717261953028577823047476904335739605152668112670695152161250344901485520096849819585768762710563574436504668419319421302046371244764170545610460731573725889289139650892782407793800419487734733734616412344565732224024291622965160470491319920494984784262676182212221472259747285780721611358369421638142296523416788838757744870098590115106588504879711852098026916716467090255719243991683128256349619759290998181123144343146489838669552834585148373044875254499187508499485797283737394375845069330619111987664088180947045454378576662416140825250364013494251538739924263340719560976923007748293266541280055499119595123421001887314238152428802586441251843566040341821776672737980299242931959941595405045045407246144245070354851160592177535881766306533712574907177970929477686776707737912603148826906665425967599421236196442904588340132104246154657879057388606378023725753777942505252624176130502004059497877930204043644982684149843525578562546098907776747884715499594946554934418089315859866510966626813345623872002658633054437673732350038228930901669407247895429508194355912330675172509280169744716731739417620503776986149432162479207727651514011520872919593643168963119286672992401450882628759011616295968184534473429757179744135915228768483963570392347327943877277591646285379691327355355347066736069476401210485778784905396108858883068374358779867191687700782368677565719700863599797420348715002811981606598451762526861557184669303646869392887135595555603789344458261227157412586048496799012444331540666810113538653466013971235120335603589377384730464380035990797804454753181769988918140091259573901301059242665174230330157853422294911184607047951034882382908951950240414419487623164998924762530985503589218498813387974027713394856174351395782784006718581955510261151510494786792596344611654551952692721227243534271902385783079999061271933834037212076015517592144393215557023868501849401320519021910663799479919459471010628619120340151101424008653059380058875959158195313672533818107725531034113652554549104538598279162386286582416285671194236896956413702378838312234623489376044672769969625842185731025596849400395336689740285315104833746912946686613413572052280452891860918750711684313023504942884230122091576946661820373174342422486544902176989721341136704327170545002331804909099905083684717147292521474700446290398411470164969611789089067724678132389032016233725750284433977113099246357655933321942717135559925194275316232569108837907250283208479810902999146823924506814535901514713518654843605641489299482877193350483757804972502540379929662382793168913026046257076782633675029842246843051289748749091220535334143192352014757144885834479807360740228146636245950677444889879062683359781025549347617138177805256819825485918212410012799673987878159130615648751014739853199949517754331597418810851156339344156975902175533072075777412827736108622709550348876948123326564582154006420690959081707172326435875333470090316136267513285559073885375833099004198779384064096668167438824801184072425768145660366651784344265911590927843882723560054530050209892884560365930715341399977387133442913864411075683615488789337595131743164724086734021991031501162895407285867894244225540215356729798357198277253152233114815449067267166447079136738036029755773086981813128401024478178527742186954651940511193235924440055872606823456199487121762185196317764457518891142892168114287755820422070751931741449609088131857448444219235955617881110692405706896567841070649817206106426109132030119206881856335857824281815476242346573650827547495840839947075576866988078468102210096212903004300296980670486573912392619459502057479802585237682599355174594397494150294288118714465169636507277109860783254624578182248957753831930798973678422143333882066888021237927686194144846912254318234562555833399479135995574518559583639605968517399875097822195745921939199243074690749247068766371984379715678326279413587214125859145900337977018867333351810784743182902433876931382693035971199298923090912841722098083077729926504330541652107901793711492081498882531983727288768539187054141391677975640089297031371784176101582423646023640555954478969085777153417826742912472718000997492361801284888528656852221112920341178520682273642307715510697971750005493048896192033354470506934751844546138692724615607288717038583264622723494905963307331361460284606075769417041939151865803060326637833548906080600689367673939422528603985630875050953380198806514611097491466756746973805915921026572129100849641336327507551607718551411747898099634467455397812346748690744798141741476221998081193436705819921966474558324371533379977839631166958134981647012298477582215626588268314476948817869031302828989657369233592958946870677376036182331188890592807505280850755123477205654714915325022461376636481294716122703183764845126857255104484087796057417611935499907569527264875044870011192108422121599340449917643671230453437777730338565826441383691932204139585543267175449716365682751059521807883545200401453030556663851463401638097409111332015245060835469410294661529915645975561826413583245121761651137372475438708108135621221516130950456063817641866736771931240633708056458180374873229867451422981159307966692000106110375018769118267245708393013289533336177719545884559782275724527499162687399198860081409619917966613477051904295397177746497239946606641139940286252829591700242428545855410315553344508257814816271290890655542794798211959963095951360736809137803553276968007495171024357383307382004325728155151451430879140993823163601158937148321259827696238025080600070147585126565176081535525212362693021866425133074240589700824682969532636996752198442026030947307783413770191759213032363869614080572990966448908184026595089450235265441684073673229396093537152840770380692242092608757863395735728501346219759644804629313908188004984026863829362055731152793958576075231540120548163563178050912991893891463981799627612157088711339763884229104519040238859116010692414735844250414568290778562705524822579180193750103568406431198301015441325861468329304314215228159997043445417561297820512400541281914861833270128314229222561118779319665051141157190922433079457186803908684823005270314597238774321206014667172462975952647695437797065079872202310569923279609302303582042033851446290385664940974634918397302941469694914019333633170094126601008163735925326997041521709748167187723175342944208812998452155207724595036879154674017838030382548500695735334020217898960853257228771853138319016778532039393251631019972369850389450739146632247121300239822686458270695809306225055918924938678269123659386893580783773754567606089256212314640605748427500427572977284476411327840371908222772650353659711208691598684443672381932985221578138428580617024772860559288746140531173594517788006312709494189316063317016893371418779280079454792224644691562613629864746008003165954273952239400679877159026762024483753919290532173978175607498079169911942265789223532744134129751639087317949956327511064006284008411019443396364312344065351113402927315491798910549217363842465529025665096908190035166447731730268786950338030330289867946317536760939244537196799306452651830850527542369256737660893039644672703359035185552198420096658257057158079896891907158645287366347858706223811859321395403321241141232447244665154062202554314049141221380575768638464559008245483314864761016860145947162219770079552701757963561977490861811906131021124345532089641421247065192591250624962278445102739819835200633711416127888535729087814417313252140062777470968785414616611916194044804873529970741146481214658313743147420715832526593039016672219314900588990796443623027144966074375969356209751342233549962662184049559235112977732321654800354675617972099468237148779785776973913245287559726592293685809712424289897811956105367831486314427887730977706593714170228879271262498466259919903197180158180819465884006682432318652047684597846183104072737087774600624511241758752302710842639067436900639872495882165559655955672267659698698619055812359180025335859407738029585330420292178876668614165645114396877331296967070596643557291503932169927805694103120829478741086336657730628407084213048819969065456381814849078210389118100416595268495895025583862740432532344430322535246471069341847303266581584463835203128569166475357113624301705062593661488094647174894900674541153075536684411593973213289999767852658397513979867005299104430415374395567991652346086741078554724424638577452092261900450804981879605204524780269551570588589620566160523100438623290966745060529631391978289253829229181740990010932760613372565932243487982713732686293974822059509145211918022903494211828533921609685177992920210300938424403713360844954604453151964309382322719190581787989885938477003877640213787429011513111313171493454853232817044576806154813938792328726973376636006998692115466770004755894476163739463573102061291548785323877302622672534514584206173999997087368430051398986439606412735731428879884004949500619425246142871247995168910882151586225746580581498028506953500944775470672925180348427577642967385998346677609786228492974839027405612875786342660796826805548867095014701476843857211612574745148931488835929517440235293897413987935588361156116924623329864696947666950996220961006007205949351097927610867547522768095918606154074254130233076085624271126655217624467215189003672906956505135577631698759517299163605421011059332312583540766490523279442888428815012009770097827763021526893520814593706606823923295275550266242565136775969992788690070698204293102119154646305585771177534401385902129038472370320533622926020864712721980832816399895289884549869082188779093366329059233845478813739030756659452479939513202001344297920455209849213928466572715380970147649445926146854191806620280240957139737246089660325228464364684803060174081730662825996141353998033329720026194028815529237222184847752414350888908830369966338977693852413873559685794384903875217474847062519080287948428850212458732744309063446026026995653782425440398116871960816522019104775747834914765191293707948892099506881120168653886459770315376235918442073510002215163280197753201747167242263759847965544911027809529341986442136640237100931324362199875378910779046792939921605123540673851235926271514077522858522812138562373905343462057269124589455583547067561851140658339011350506085694201269159695102723153699988952005318359538936251773808027923357008450430343614633918084099783531155103371303101306523184629784312762854552493478150086028634622945458763754855205610998687519810269008986288454840860414577692741329612092823732634542676739886968557435586674517163637254889362116862600725973068148484852232292231675370574760721014789797450184827352665665320746051146631909129108812583639206428936440263543130339675667496843444919762210823693082988509827081488856352485911833256814929430075035226241368628796577279611827634166639583968416281692706454708815584354465875359770225517606621695641294342256016892771552335565994756122413362405279785302080893875767444583948980158687704209293493225829497443654897475310553593384753467473482170259012351141677871268149823804556886112069866153128522772779889743920200943585050249588169364368341543024145157498995678023063625586272904102855520041948767998438082906114970110784398362723841002740320337679250725962445502898562858149453067580918414017664543559368589167591955498218471840012592724466795813704841408785714464284667364197912344213345989645451883121929368439060505581179194172235221453241013367149680016949587059346425944146415420575969907000400859824164627741632946330225186238186948819910762012590594620631821765080768293119288436119177249575403674292270651696996162143600843311790697171229777378369178324568942473683690657336461692308520354982943830497820188816074319355480405994065474317758681184627387701058883615660250716919327269839451441632198659853404035307378709396749966113165473208808585040391523931540393845267839108144166320684830076643647098780257481560219882534521372554005361236366233866953851771246492757020012519946503044640613634576190903793521964526565744126960337130325968742926554340255079741665016810895345968533177246016813033343553496711564306937036123037071135820524167270767610978855219363138878959843642080052717627480473917689016624711425646673331860567608407379027670630143121511666922343017842170257407516893380441293418734067297579916839464196486308120376645228830263119961698178906350694301683543502980725693355939198637427276595449825352389570219126311902244478967268312339850417176353989952962892548050947243298690256342132186735494930239232924341104555424111154601637805578372419834780682284711029469874780138164665656995251428247257560982970323327870482215542250025569712165153619203560285996993395661586264846764513850687343512041765761256277906231327354345103310020251150591373197476013923935418716695774998027499182879522223140882415787235986966305085807921624590873509454802262819988935131163315458221364684741955648874906793353800593471724247358593030775562785369699623554367000892858092026417958974874640585130606181232501489804544758413104156840064194783341349826723725252621264588246566559848848070398430551199239156310636661745784451523803860420643075156802703782060922105214941594690009758215307885631302237709617956059146075505148247361001951508472379167598628517535818085626195497163068826421588462696219234942460584751756191396229288725071170078856037726188567841523628817218090731815611751522522834569017908645637463338524944186654082273313977274870431384250768948040773560965138344255099926474359275018585049675012252881669839202793831830934707494063739959218272302537956597039378662459295853657270417520086496404640550405388586945925826983622390263299830131505799469343886844828251251063425538478422669498408467373308589760591924761773470434032758193324602058374583219794524214686785221366412749515590212578347781843338032543994682487233050076763946629848669541301790087021129140635528693312842094532519703122938375393722282744857877423682730532376204959758328362821598032754717531218805554444352240186474395779317319848783428385140246481014645059863250771384074769419797546970258549150471117782859396099754946500169635502229045880688835392596464099857823494248241315569994617555812477582847348573041494599315419987531634221297410721635460341843985735309449847111703305485248690092762846753588369359403587039718101585291947067192777807777220735085388705450485969965401937229513177998368775540281402576081306988038977715989940939056387831452107667841520054434872758966775872491017091495874745411990230130818795211182506460657290637958704566974059187464759140683883206888566059748963467378100370861547794226199219142509714064146177919699401625813449951659966477566397611721071366566983076284910786417947408913345322407177690199113296135461808667440098160606028316046613224536127235577000523158085301845697274345274042256141188193143696336082266865016130988061695698614128165003212136566818254626394863734289620837120289672953723464327609636103714686194575045330889788980861437683870780065789898922813239713192093995611287180192862454350147164882394690771438674950859881010540033752420087058411866012400870236647912577418822145578084426441971467054498042074831644498511546253110226286558414680233775267157957431037853582603560116465764536257250410020547232642743107978966693378152629018734034483658447371708062897284212988859712677593723341563832667952454256036851409807515629720116409431651840898434896442416682728548800333739969091689234951804907394016794377218470165530698604867665911256672457206456359676463059503981661816457006073753682909202811844929085861051933562859092996265649170285749256569296378351984538292206144739637586407362441249198378149795146043628838822816056797219407688040714917883377466255038493879707783583858714551971069669304111731111645766378060194982178215321443819668127428821244727730448537537472038004166132890797724177215559253697173031523759713155068183313968916071389184517994811957293317754516795414624203422914090935825398083089100758270390339523906469823941759580169725033932039425184640299660224523286406262284423919399369985373234606882151243252894500002106354002484776760052181385443391825440253765738295786015012410838105920201878630239936089379303395432883482807784216965552424119779393883501762373038286724354478505229601705847442099405846974724764676561470339739891675267714796292311743579859879696642996917576679251094258725802414091789257227388718181905910220950790091426354826386265531288548748119498147575963263605087924766700208029002971512276346342862855407490762592507250597905814540589840074474436381870702343747320611019298523020850449994356192880267085911162085203370319108680118695882024919630610686013992958514129539101926988047411811978804524236457316124932388838912140239240907123996258370168994713159582250963123397257066413716277248207843442709555743404754068279908504127718733490199879594000615597418234498127699974886416885556141127519082434325894826817064507534529633508664669205510257587454967837127482030504376357925460017174744613639566690244858396075972712342349595863361123986106051014650619104192482050058242681686447990120096108886850409057503640438476143242904623006795679617053660641643120494671604378464530773099572501953063991631062055678534887402615464616114150903710053916044567916689879462214871178266650724305789569021983604783574567419358490204489466664405225780529334288435165773375093516367616096462802793968584082951817741999368186617268464033182511834593120299618553126342981095087994542492360298177611696189986155756959847331234745835967899473310680425535491727941443396636432291735530164399272947282546894133660636223905557018992884560512896796534377136758659100420637166954566376867061016587432714863348106933374083670290732959993588337401996466333070887954424175990964895105070097367381431730658772764821119170542835544104487707285959963391779908446259542404288936694230090899793570912891659893197286206732642488643383989309487992749390776435398570813646536461940634533050804207061763112945017036456206534234643951033314586211393008528632479481074574861146906514632129534699945113373944591406627954860829890485447215785496617451000893714020591074797050921058960818373845567252835050755210922102650183446568104363957901609736114954407401503774325969011315106733163626458420548531886642572544388690802174299668391848466508505164317363097147816499429302355223935985685152148679494895677704396786445257042345965155992327662886280114982788053995574108653783209647583114182284740971058105464771236913597032028310437779345922278090517012765600525668522390050759059202380825175113353393285188280115736111939928561685860638523576857908464348560448399097358809733419127842593431103939385730703739276094677052158302403174716806389258951962268322938228803174712298637113418378353939097157237189393776485288827250645156587077207363069656857984953627415565998353625992391538164169925217293045621403728736357693168172525078587137625011176008793433607351855655478443847213974094292160349513720963107349900899352284751217708362939061914857813983797451878156035222661257032664016355851143842823889645662101535812190738177617893291091235728627569674478506107308028133022190693795670196592686001544274618469403046151594677563665342714314783157649322360279880528751930094092014584991492980684869716899446793531148685414471768100811004753103536025782672289224106192369237706091910200368987859734922702359646607250728357467442275884421462267380363206127551016278367645417248050717110208906085953705116731130169290297935456218100130325615687420533919985214088071970435932774544223867923428810950375900735979387908377582206806520860555148725495721677860846645061259687603024541988818291756463725390741116252906324111861037218529953445132371671674678100541464593529857459452695252835312827371188678269720761123283854978246061819516280474408793583886479759538528252028284591493202775821909181640789050390938015874662769832547515616071578407399457043841468795151183583988307801635333143932738852912408956420270188035617983536543432417324550863967288809350563377214541851349956287117679624237897595071050238935694359001358333322337376562317592613995070627351992477730069673719512178855330913550422527694825426389095080941076748299264979399503987267389105700927206748624521202836005977915817959915698398995248337406325008906100552695670146311747967746760762073914438449787661381167451184623992249647241208627990441659517158687170824988845757222833406124006912324537238809847858056699277407154411914764864099149109971174034518783330257313209974864931273225609629321560832752338696938877327189177970013237010032261087516440289782696230393816478972655596163611781053984173540923302787441584383078982452776315408750244840055587701848202077024710684537270601642768647298335644678733796861788705273346869057585073401231683014411711647887615806510396312070363019291615712219569536463749476168861620746390028723701850135049026081794912454151075628011377752200925370388019032842073071856707506099471296696483672495042246732521902869458490543124804738108661148153608398477559602796848019051265580215054617750566530343697845041849298708534116149254332495564406579799777901768606290234666361110503800222786201275268167097436387665425987680323426722000732346914198490208822325135080547702173552421195894415712729068793724310676613253835470498330344272465753220608613147692991850050636298385197252839523325490827794681123820243370058318320408327267200314565554964145191520628571045335290700601543010913253986777384591053423339975150070418373480710836112637889301738633748604377926438792974955983015666230043307270052306652811257671971082014106440731472733907207255439270485074936638307806107705040058937634537696375876383583885168107866955799161599269574248840509415033529801191038770911485274636155108970611035659228308071967158166736020159119244851740536714626089540623013475905065013013119874782639265507853847213152508681405038079643352248823266730286165533510287356432234995795219057848474887203275925320114086874724023668971133249135489500452253603175406943293351169466425518155820353870782874849503409082303757783542635845574174738586113628015070985009334946743212474624884262124545916657623581428621926877449627668277736462817333327711918645400204225780687398513387183769952564144210155643141678267989569080543302571256690586831476239449526160435251198245750070816445003320260190953417180851155397477757557882273295789231153726338250233392908237746844693904537566920602675590968188003422237345255065563641218866518372040076484835467170674317075650200895518995783839771791093865852908418849325254165407566371899238060648068908852958749909266250625498415944784725853396208699789688355352946004200005401911435257741017539685429408036654353644860447689132871755113139499462388777858190506690756609332947451094356374609408793566156515220712875445438052637371132672041054521729856262020046205857018064112008190718405786123640758280617237859322840303928788586747175199206608567737674718411465459661255307539913891242054389891856124133146577009656767496129394598729399415419346744189803712173408258475215400447225309218056664058963926658340452223027404614224850477162257393277373723182207654074631009224159403398721235745197375526029341384867428517301776610947311893841237979543623585978873102042267160146758638785904052349652959383876006417594892275274071859011843192239975307618157807039518700320788493686125176077790380310204266741964404145501308370131083242383675765196283913069690099709872572147387545961734927734128839077659991086947310906342324334527117025476113921168844794962602448347643516960804069495505471587678029751286435595769560668030475777932663617043783302970117542296557405458088701771368063290326774228752853771768656404156273336728769706301788625000397486538926097585384292946275563757567061578622739532926946876840560497975251524137143401789838912363104290743572953740240578864168215131580202654597273036610177573016379376348447669841798824131827078733652924256419459225092536645201210764164069419558458406550958774635488736227066648263108630362962615729058240089935351230322996658051446432189061519000353267613970839741228484093592964694710588672251787356901270603116676896210548655651265333169693417480102155302619897335594685680054739997619701626251949469443725405742013092975317080272393120599283142664116158613761730501854845677545625890443871347014249270129411439406139579147778904764026029027352469367099447404235988520524147950982140522025090114815071602336008260020743070343360818712744659039914363196315453662067258215287116719036719147007976135265635569580705517671002013238840766678397574372793393303286994998752794345228904032517655314304056728457481592995479576242662745834187950138567079804823619351668748485204462793180423564572144440671966611362895225883724752084962210069223865956381695326145292129595321413121816224297907472898287214730414253963810217006123055696554538732852845365019448842967081757988975679167214200258852123203368557081080100163290558413329046509943402541896387105689617040792668970968640836776063912397059950722014114627826534714592859854590788620810922097202327585669937314353140290501792278137950621493284580188597321278531814425075188257878988369508819916989263221013042155235859715370472897190637193545090981217783971325120098545504180559848152927884906517332443275821434249662904901756558062781614122720826627236129590624952440781579414730325750451329296814206917679905324188996284257572644035925036229370506174325017627554398441958524848509687291154590824033503771180057804244560446322472049319336059664752374895683589926119614381211346959295679116755548012758396510447559920140348940781129328727911584043349079655308002396184658446932932847192733424373641586187827400554271510173121474083823948197305394457253173159654346429550890543494937640388165444320244267846430481237764980651125487713371272044552319736260664838811057250182218701106071432326772208062286758878228647234477797974745609595744049108681293160945781791745354658190330899204724994210800149888293149876968493411962222600315709185265957181447420085202346828021313698291520117227796772213697807454318366258516077501800361696476019469216763884959890642275921206758354659021024319498202394249924122889097655638027478602269194730566681167204302312268397072864095357700966401547872887881177440603057830229067720221945643102610106591937676407855681266523604398725224316946522654557228280365927760338925026815580701087554445806145816081401347342042214436539244584131967523350836834958015155767970788246187068520936656548664201696749559388164642259380130274542007809049001842506358873017906791506360631334662607167574410097866161293585287698407902378951127692836313154819117401085439596511678461309347847191499147393988246105746399759247741400780641547731615052792012759314928050244251296918822656228037288253335588304979748854615860369356213598495479336265928711350423950660802651469027821979405958773940736677321393894104614161570389971813836067987792819665535029793905972542737835382573091303713172822726008762575677284942812076785112576832862645483031886788817794230680371773676983460281138418042226159717637433448685990010358730367866554768569952842740561056633957085480550447458208822825880014590007916295737507486907381997805362731179922766673767484026536840589901646836168902170540211449457378184970868853744170908000237859656662500583763212958644666863599049778570255448044699741573183972230482358651525410786989835488411286156040684194296259143167885718306509793247352729933624624270128555746005847066810707519762924618836069706806466138044384032061360145472908294002451964894019708627093525686393106339169575482775416059887710626166924484136879773651810052255957207546264308870343785373153447332573353746079546594633807722388011654735585042882164556843971143388222473288137516443202080555720516684457164287954593330579544735298225144595907180348569896687413463330473611060628297566753628288312279038411468302636994948492890563938827350812736636052174334765912152452105051058296323306975390728732395211309289041426153940168294827786243245885312209217699470929889115908795269736027803916661804674251474769643218638656359902769487417740602055926709026364533476512493569545288624865871100155015013557320884158201235651502557007172725937859137705731926701836604868752350763601916605442298061018053326392725332467700918429779282021291245474888809850013478291998397492801874732612532093700901119532023863241190205190280627903967785651225305435478581863511902963555821012047689040967908623692408263237149398427960478599817516795795110644002034345175690987582193382758480669585461863533126902953275375092210274370295002514528269891392816930954130679595574961809087016387510447501875931910197979510198832615015570288940293544380218026566060262587204267426065452445480048180507977411535844124554956339077771319879942731034604737195001459674072419918466191684178463207313196504828050519559060002588678389676644529303716205277197423874740281326749264079062840511883538065319740534951594792352347013226048008879931575124747302896498239576623210439389199598895581937725777779723417881244540745357507685826533199482243769672414884403731108635542592085675645643319010882023170075986910164743588793770166163973898801466633505741615554849773832119254221717048081688045358099468689244971896121139257693576030347807873669577155694993760843374204280946038236508968055937634294499804603392041528375312795185993428915467431486265643068520610320272895794339923417258760124172180504577138547817283902891513820946777474746055020459645938283315695456870175803148565046772600856864271689055213016679048363439220338731766045515941165356622323433601957436052601486668908457104154392959094555440605327191339075362560187442711214602988305079693357385774830480245307042435185134712946441554375985173235507500822711306563609758619072880156636133809609404632075380384341775258081019023204014428860631794862120507581668302573397648678226359647691738430951919575755587316736516738101259283967495909684069678246157931573966197073032653125280606423032713052119268492307649317366087604378386495832663965521013242743936127791113971325300524598619876657442393589357672756868062442008368577242885933880058560608725640675764996067096737865036464633918851010922647883976638401013174673168855060510084723108932424799937714407621129598792565186120419678499211052331788492690926345675673542873047555680803010923264631147449779787373164351870796297238818378564953889877952544329222756886143973449621367013867431314808250969704617266823665308245761728758720856320130605312595136077624916303654202069161822474938490903090649766887062227540681605591946721452455879558067610985442999777513606704064568664444801961395579060450902737599361262182591563762798643562813946976954393165601167261068239623535558561005056128604750390248765788712164961183080991280823938134276585962466536686686239339083742660659343979926044560672520204403737649595062085923401633931459767252795682186890255493741547989242854846890007316534650552177583552994155607668654607189050333484168689345551809775469690581524278791831229051190061493616734651626112316955034024162427597849250702558627306552248349607464397072928580936441604802211803767469232854594400408962526814516222126786819355914834164462264342385378134074824601818059661673783815690328585995629416643650931191377989500185107329711708277693348041634598530405415937920032855062963124742064306876179266784498099386672790697366013710965280862370206594903078042858878419921931829386595287214791985390765428745660989048916053480331112311724492305613419618169711336605861585134665927189378402350782390253173219100659062631627612322910747874027419163633499214578516969715373457143374446288129505845668031639935317993587754224271700791920895337724108576636289438297983786950404098166031339630926514338227386420677341375475725914678425043176589946365611699955311910515114823272043422136047368371750850699171941535147213840243304319648508891241426995423625551954476428402036636060346992172137295207712446667985921506989654846175390345865316438156710769066358757369550033548531220640822908241692154693243373220282411184015631728221837303206331339637612320317681017996819026246546596259747326134127316688139276532779563356108824740559387057189958137569559659836094353731531137340646013240844670968667554923304775359893523150380377970938653782515727420589573897661470465413342116720948099569266615543213234449771009194005117046927616111623866022921706890201359767171271633017644873075061435031187551561082462616546797413786754495503212598750090880951885245962223406009858020507459176861296416620437165097013530479120346515227780300072294702819513075286383812131430896759181453587934940976299299951499214570721187918589201510672040928539256812075053772550579565548186717810094350455883519223553964915811794248651894265950163269937640664270064777038052255147610276029426407184546378609598174758647497970436643083297505510297808120582872029137762347348573175908210827147781039098443316022631098009038506589060060721844803642874037418055153880305319714891025286973417882039726637191716347279199123572419318699417592303394922332449414345648836741364756570206975104996524340316673685807151591464250407955933438589714185874237486202541886455696491069576301881601390773312439131197581941620456639946168956149639560169836936433110270467371907916982149742245371158288621973213373431950681520732440251586115115419121938666416588003135944069992432811513641002411845046761987854280478273496240875221389272299155386336008557622920553851226237578215655564735406197652770183383603924159298604454451977249984041416251259618094690847069196412595519316182586022481063786563868280114696120309844420080468353432114328005389926923265388356509702592661756784894101430229820268033491585668433744597593760531542728349301234917298883522941304441455217018797519861947671989546408280737921606810720978678794206928115423422489493392752555127313561167732072217319198046672271783098125749463807961494253413433543670724443104494633106277678896094355371339172616105768300197539762114536834842580296751525598031476658711357622173995636400275685411799904402157880061368288125012066307049727060210709541582947830487483390195262190584551021695164923512193767581528270227560440172316080678642231284525161844310897224796217804037116481417635744246648282531598506658805594406830037739573644729896291117100875387562026147017366146664077477299979865511422120895037721298777621359418814903850938635056124899371137393727713305482376540867957776913785674596846826735056851411224655821654680623739252364200294940925464965363380927543781510955058074116967508592952124733572379945054874039403910092741214445812160628023651431670429102959534631823300790881015648562913184309589509776430698472599300167770638053083562388770248621389635943103759233516777511800810349249465073724539014877604655497964835243671302738713907207530604757813483369919878923102466949607804208286498366857097126076976788712527369571706425763617798454704704236062926466601781941966092071959914716562052699551304211182270124228057666282362445356071303037319385186493360123996540906793464966127860689873231366247182406321823352020344964427621484233606720014383583357669262503792219782167317036203986545154969418948826482069123457509459559149993081001096448575085588022783687712724204690915854101444915105816176396884228976737672305419361118293386974068915826845197751030451261353627499782379301006969572087937469856395001479549003602269219075788276803445462538199817281815740755873720606214686028941012402068512407905210824642919044896015158185246283960667962796525344294824517783335681710130215504511891917494892087266413868375788751074775457966786195834559101806539424911705598114884146497398828859716001733769972219242013017470515174738826742894102796805018087988143243433532904575009883261332546829408570688228078913205605927792721559079791325101865631576028365310532125463678746107723855751071978599747238491541145395829163558988938863467947569380673824757963516312542833919534747245126646785246122146548819915449976714201742986319313193696794611370593265847267540837130980477033899935099136034480009458196222386394017174077712338999652758402214848137908016523671063640633391475180682991053649319781467451375198327151925353560893989397690524162515587704819433986997572953302404700123723136995395237920450990211810962208902948452882643314631871809088074444323618018815919229345394346552027606064047702494590999972566211289750170902276420852054595356804973395099405223973492348545573296544270304462048062101093613050985652450752138549754260120828975807630467603535419265401169661681098831525227628681226091778385304313489506399073080518215033969700452090360478319309253138365142426664617513179281696251860680719581333570138222963052108231423291885966987840029464324623174252034474610208788641858937978955881483721536406859182943987716398392596858180617546998904376854294217408321702734743803473243418033708399427633406738589195022155208050561480034448923803992603110720768013892733026127405859149611534139412337629191074498816920800669486259878113355422774766167406024654407608644561988212590868163492670374071938526772580389499030468999799542174690497848500424630137218793244982082983577246916752298483422495589130984114086725304439717151250775192341379771428855833618903502549441473520479773065814065886815717177404265556310771263816638721663897654367818582317732681022239219390491260940305878375328527053090196591552765950296171515278921751973605132323451126244470760454661391071599967473987006330951225763044848750726245386923095702398394979911297679182381059527078766585871081290212740058745854309259167649262253937939434081522631462429611091503014670994274702058275539004699750749642959048350343950055185359718691862086751742497699178614232612629771511420902114317261686386920962699678087733973962564522041372230048081565015063859514363606726868698868609607154663524476458570588201156718323872679115195799048248847708745421960469985569023657558709808767296659007421635329237288166466651187928663409422147462701655820076201566201501313458751723621538943512179004523820125429095586457949051921785454681452727140055133884091130771154131583395896435299660060806073808311396549341379316056209989636178544886507065461072487275072486058875918196724417411038003489914929134715347395160698852201041911559557991592752474900035266817241674104378952231340248162370102674993486989345764172979993261662985666415182328679135872841660216796060160283187202290605495595348392117392033282741179580616657605506718662248291520352415820875353085661540907544394650319504741714586586511781398108162358276164164535373213521030588934091542324732131574340365548304307259443758332522421015083221582314976024763451044909768125418986872324629189156770197360866986702991646507024584044530850558667816861284598224592665505171870521344837944985802687437571755455846009287674356429768339827861654342461091032448140666784052664657295148652749247977172881764160283427957563632516736112019961561177078492393582918250953171462053523267591994774019957531980275312229403035240236392707094020280312917252068731707783020320850587189004847803860658163018276986323451782004022055684245296939777082229957798585643835001290316846776892443249352732619673534964550996726806139411723792850255122409753787654852467467061979955817117416446987896215850470128208702830587746217411544392821735995818469582624383779814849356288768703470820120672631085232760524588870701230962078258051527614268905779006860528313422063582523852161138788730986620380006821605582890454567799016986761342041128343819580721649636235838840616756724679611424750583176860416348451578238695914574327305417781656100066632859260584478455327168842611527730487663244800837244631789526173267506216158038261444283077535489882607663891725233783040550182610283813065161524374039639987320983024573601501325319057211130959060072746939842495795047558707672600533900310539517385181641200523008338938452025816605912298347792186949649018228634890776330081874199200542573673416073108971701524339837716145621578383986014223555662346424914507411312906218878870801542228968301385029039069264341534221400673195198161163025737066218879529757567299617173641657844825937482518177480354825274457410944480646084961649934407905576737991060769253921977246686109054643299062730134803506668186386751706574116206352551692801226839548370604174611521397359415835594606286666276721852046690834391099799491824978653008227812174308507859936552253917723485763712539649007348319320403474436553493361132367362875215942295833248747795126890424861215811658927525550780427710913255627597691172990393685588709826658682082222397393234809137475022688305437098741200478141583920125721961871687967030883384495019214187462637724228994442386729867103233331645304682766007327174532894273816890317052806965063181288855403623301563805750771502397644469556829273038363152893274191088903801385671532344137581754913225599449853105503482914354030688363576367466467769364172989078248100136283036209518533991385514616431238742825266760705351244755333412340563571771947620261435540107980373275868271915589448146904430448521655738909379471363424628961239832624063839787465889787677831463000736674195844828926445853437878250291821873739212031844820570534511903266273205131118317639087398860959260150688382744629000530928550856834024839390079367834749247306610633977816287572519244831910487520695717805292593249822693208229481456018966882364669033932657143001693105122836699475548578546704970687083674046808014096903677164612200316363366735264574306633104806088901781728430450686937661556960699974835128369272217497329859339081038857099548976178927384389783100828594963031650710043805257569851761548550161672954052634937658204309072871915182502631264803883869982186978175778265416787265820904642312231651273579224882698951586333535342918170083345436025402497326171111756652003629740043737052862005837841430545312866694294540265219130197789409714649110940272266122466236204663414975956933288171216593268127819136463065958380024547185096288817323365275468690617945997367972554743457844124266729428630850670722084839966580998395022529257282275238560438496155671781991994926799706109359055635358242564424980007812843565434331059569514226915590593788299601886661751764907163354350588279779726262235522186006633455725469384243627943361548703049727924386063707186727199870691576909894704801599295299738038821410324393810599198726076560852667432507391566943853743797541615956864629540873871047428472672093911560669348219383699448943437375218468880220096405338792411662773752876807368986185603716645042332198377091712468745138940496503761407320134302755055339590333592888023024024563142052387508242863230140861380769618828317961533350877215744872800602064042710233103646739931872418977815192568342520346816405455783792347584376500736869701328655886856393668712369760604434137015428840991878421355809739887845708956348215183019776750233164429814136650248946850769545404665515584415832574552865596153867152807932568068338044015021375092753214378415374532483083496547399716733622935916297292820848119183590303894833314249090081205914954187753700536512319669312225264915750003124407686827553865007793023764421783745134492084861980167170381153637801761273570919446604898035418694396434052041000542800808676802207544028949028749333759903636674415910342673245656350596523472945783336996230203726174951410668594780283200690217784780751903651960935978549886458466833502841386935560785261474076972811826386810604951069623976855598839580386758532836524551042615841217116619254697054891097396567394270530273725979966865901647736910360133851301902164134849439286016837365663036892674149735596803701125749661117292682698885801530237808360916738104878327840506108789302876990607336173540349095525890905000191199267176549229363133082929330442106236826076705895443733555025736643330391518615838961586906841912295096889454538280256921797334030606132902277943106246341059134451410965240293631310035466881767560422485698220536555976800651768626209896466462695097275338421710040969773550338914193076619561678168327047856841580485524431716865979226897721972096205886403371378564477706051680158543034744401095230645032682410019893593479877142494608622482933016755666395253940905958913390935424187843809073807714408139663841037943819027222321080166916810373820216475201241775411654105080487326685651507643110388114503229066429397454572857210605248997431260452893446846371083059428363048520659100743453105594679704495975200478500368114004352451410180053225634803452293509039983006557921352505090930498605793860619624855070860706445425718889537951173508380586403150947598580657153047627857300314888773132068844443355982050571727949875586668350629934319882669575836544440493893948170505318163981523756868961606032988882489373147434627611902742408512115028851938868284985650156039297030417321313162190923489417227243444943318611969232803969535937658639901774342236288797296940818490480380237665476004163467433145323582371865379830215338250473549439213258559204760733300759459061260424781455017690928560369788688024248812821935506815653147173783436133339035492499217005997539229988117514684049623636574090322365950783807636148183687594886491125538835767496382949100398771557856108068897197418867121764717861361238412088438980251504367348536220985056491850525945135422221386055379617235215051980925797775961171552350165065813894976757112284981524163390908765439867173329444446458708462429155789795801117540952472645365984312190082985300123490139605511417286023557729722893890650275493489959131166548762937780119001259009439438970265793278543604630079630935483296537285300297004571179309147226474342753902642325008188974924122222630645443701863719631827770737361502172522992183760128136227454882690549939951837272370769298214091440743307426640232184569561777967278693807149799975575331807434829329812886105767836281027866279393875204032815445412421610270593065757574102521400021430346693309504787156426555815301785437644815532765208771711388187246562266650986672909972124677879855425745824330135843485366924705535063770666917776908871611084434667150159949418474277394816739974271103820880034805361479126111065836785659777774977670614098046003322002425792868417029455419634421271443280658431100489924632554704761291699119070125798757967666884560474077138718314706052055926024886391747487902535505490062667874561461941902076560344385555114282520659715872073336044162369523221368042604957909787963302499096113992038107688982623523271958833773406828703746565163105981105842893246599773657959946207624530500662640358419767504712359793597113732888280416414650549343614803106050654457273497849381136422624884647062696300998533139508844168585576045577067416601407452226214448053802471587712598626614774894702991717467859444025189706017024594489822675036451407075370898854575489347475424448300771195220760417130498203961567534718469100229153242695375514237590106642843888505532885397908598698160778554726215023941179300015370212376288574449541582945997130751916780926755148434153597945917015681978457461287083032374267153419152402769592814681760710167953132457524582622156874083274800478706780990632027931483761012861061340392847291409749891418867151717112901470696274537880503196905936077859262324248558387801765464922458871805096379183400951920012680507158887979827829483310187320043591781883989114732499082913925085557741828980572771723536215447650791413674001596472154987469636603131007795240056431528208373819576107262089503750543188907471654504974245821940346873445838802374450564430946261951031165426648089111686042928053079831337173457479004070232567181804225909634134393190054097570349658821172412768642093942834615314714902705658094008186540316072710142536059230739781453509924212997803954266698803967843447538885680860389897561066141957044997302741108017068752856153706530423113840694845509871509378093397902443979664960739625657051795880576483863913010591697635074042734037617921295858811166938552269170124784274346277533083550139731928817195930290157174686694545995928593729939977846010563050605144473250379780286232048843902568823329337650511814615023505942187507506932290581072062585364600853329734031067009796128258354135190497930359717144639639323223208252240817070455264714630115455898918745460821356956982556750120896424506011454105648736202153246942743951689667908463450084698405914555331921937759497435578667178116171542526204383043203733547306058957138770094575763254799208689851517989074558726190287091886225954360526189447589208305113558252555606648417406336490746908306579133748339254085249524685209324003499755985285264158498362815153920404679636826018344398352714029970637670004518233826940350075519025023829580089290548884445443767820370611367961281656854473287924429470010887205179989221108851520295356736568040610095932214064808656837417798618788646914855560565837373796885136897430572697556054005570072899175254080620301343848886801134902235909748573118551226360432031154140197603077750588867954713686656420170843606102667273149888595439744948075478455810018273193163248841280448872229695679855015464855780486736535227902836997918084867230649622210045270857683350352120696848018171376163299756173842516034047253710005635164034216249202717966824926458930960182645026923102266570541641475347203415549137704215057644528078090352483936210930310228809623848687792314524084163727118095305889004068843766781431498914299893621278545260143140439048499388015563360595131167318911327657778813646907084703686341119632306388650748085212568284225785252403086993703255692093960818587414181230484153204049202349890027324475930203237947907764447523984455146730440321096898524496196714343396489589319055233849818852746844924836314634250006421630628686858848274533186699267347306427350363640028560222189663501142918263431997416325337236879855345111125305526239104082639970934508146672521381105913047210052428189886265331694693319516752962093067522915907159998984617928805926200084863813881128094405648802106048865855191846702365421761783505181721320764619715568376168842855890972407130518776819764840992929984019232464661763834269707811453551722715023715849203517936817522394857812034194748102789940412779756055493691252522657539636592433154730695581276835750417083868843732028329494985903532183737997466455256844968683294286372408608207355305031791101810273768933330342549798665067002937348748484047362492255092527523699887851946626804071648160078404463851055486265385660471907256786655890927245004810846316449807006807676532339802906599038762152646486686082015263757316044110776944644163511024559016349005468681619392058639633944598120530415192347525242798484386521087634935336562303266389523284632119894357509659372127587403389421815230290198803323251958766768984988264202016964784711175159439736224553268760244496460758876901301487963876815261721435488602797999583380507028449575949665315061117194591153787418599505246576673359391877078152500255684675899405400394670754618973775705298062658835360561171010843415551815724320094185334506270691763808628707378238695869805760005749521191451741664725765084671801326508423422828102252196711361558185833888741556992123979692271988514737852522597908593373354920727572264628947096088116503360470205219481508022180785782578773713123995978734898961753560539764434066622683927816579438213994200186168519516088983223576023909484829874863503873821292397331630074241830181548823289888512075203180101798192675056510068225595357219355883221434333956809320392616533570608321482945751048806173389968000877029603913129050523926785407964143238399967278809492499767400843478888827014867542763719034680643349233272849402809687301877900161099472818168759291903158026400098269967967922393022684606063580088749497060895154311314146899315358878795343966646722969672146861867605879121553529236853108986106821238099897152235975802056998027968976214910787935891461304363270864024698489195507072290380260285643963419839501407141042714097520317330805676894061900279101693974458153904150128104921442571533445139239707744571554843567430961238203111003084683861815488627569339818601404722935039857403838124588604596425225521786219665023434582631122271149115948872522907981865286854611295051488094453061347174195283827613380242904727215389323999573349056182338073808264093987091253655841603107470302872308607863538111665286343582023633514903951635797666432328676900054694224607967390622163482435340974452507576511937641267841632118785790023277272761338613110363940750259808061043625030630047683530308771179416121497566499827384071285049513269413219255048913703308910781048203213552128823613415528895318641566427561924625487790961006741966706130582315884686152229343605282556027290571059994746754373548054375018327007662569474586892433408673211101696215814544398738801550537368287923797464936950220264787840905815348072132210628987836509257009265986457656408206457110577376312221874436403497761342149672415975921598660426332165802778507832407490542587679361036876110611921485510998634967227392326965499718177740670433768434630959924572538265907568522172676235705773609885588820720406930954409836387449219249967839008663329648294218394147315790426888422085376575540369442227089588907469057803834703518129667271348482826197265640314788034390799129598421435779253871068685270945004510855482444390466860785814782928871396414282991797226891647772262682506907130891641484027964060227445563613584343739453431449191607261737220735724555367033751355405969743137661657122194865297609871859082594883944739339839638456837691663505892591336816639067262635431404801058646273325753810659140661071500237328053902135228505193853268114671712743717352328138635740198711963093935888288530930449107711103109127588755236519821532403873018721014417015526992163282588919191088325447268331687788109713906421680493272705744758869489817129123287735005922995152939418847419151327085678487122198862806348766120903072022520250234687740792748236431999961983199176464766323962431350443058167281560542734514114885670937555092434066631408942963548572178618452503741139586918472813782041342698933086343135465310556135475392418111901546392583187432707889280668965784834751964549351625978123268891991378395968003185445329799189278686378213094902483364185670584537596117358074530761382293565688377075118063994766927739436976846903746404881420828742286715893160584250122638640705945225129272048583652969376458767069025422959051678130467275976042765587086900527660953633123013537771854032270787977099525612942191691390587552393091323571921951795584691571156140670880575413217211204962098539033616966578221299813287573493979984606888840106435206475818437122336399774557882813570147786318315059026825651307794115012328675444809588635521730918839153565233348449350398741690709426387739999276852627320876567119960141921626069499305415231416521964192106759874181753885005621348725216793403062377861801635729166939014414477896953361861432796878253803738257835407217512587241423335212338917758690470356279954646712439768096473418723942358879396390424532955310159147297133576072082800432659299912899603302810293808730670851962243818833717509709304645311322526533388378117658249652000278489378304265071019214250318291828564634114822250127012147495886312277686890715368865620334085510086774668815443083699017880556426057657698414942629508101433142925985762587781005760254473217191873963168688898975464413133911069441234697393286367299038017232423427889386795598601036596090609934499010386597041437891372911977600948292277009029811567320034872682392897595098932131935784213116863689120816235089651858165141202454697636063069153449073841213245214511065957295593323215935318726572777493708445108136044952673205087181676798386999717865792080689767225483993702473454295476110979987551872114694652973560051929554326038952651251104270929328172536628765724535386215733866575656868133974141008933231500816208266022649036791950517293799809808501349278669846646436932785143634748181490218682323984515842287961135684644390655645066390127367119976584070245327877443107165878751492545685473151506075010236378395880483160169574597702872730626673502782941872985718269335025745044191329135164630236332414772258450207737272672567211044438628474392697061259341023139920833044418145112425500582080103776388169553653557890927233509315277330500036518402880280470951200241549302378167928714641655255050567885192087145778452700900813643037479310879545700071227022453999159752234774579448544943442001464603266265070749709748914329537015494491181641856204060873232467143984994561714968123632554353600971537705431925290769097869693158326730561150791730590622303502579792183624397940312843457343389462882992578076456353063924117845249845466581211734736134959017206787550850519685752103553210333195894499440111867111134488530782885811099577434881712487899931074276082252274745118603228576176296031898916407325918219708216028065724087651427506439701541088398178421686810372813678430118790794457298812701050849849527257527437561878469897915315008865599991211651559920299740539871654814950895659649595415439706111903438206009961335104089874374411659583674649997506714729483145588558532768357424303828938673230673352748917773245821142264243225091403002915292315520688672784811703601837058568453514779207436587893517130491940166919608506920012160680518082726366694891373077083169626271640993851619019713065870536494148493222224401254871751269234609903719680729544565564018883683563663970162360464233237022750268686001813595762071942668283136650269318301823638544705210998889828737469543687153135457570776607421388064282113064190183283195822307704520070212718737872006458864566699345230692918688934505310361500001563114717124823895828197073634440864691958428141390837330967847967895696258395256678480991053794454408794721165342280843943009109888212782033730066352106645915645899236239214470672546146899262057585264929230223864896603970776047229250203968931096496609016270141692730139948431096912836968321085207414909053386095083597288400986029753407626162014681439024672346297637516669916269994033706849219648564548894163832693789443610033397766989721880467818688815527367846375351476228166708033917278045017956433312737529034060522563732094544508914099419189915278722465932514758064158446006469566406191736107590164518597866269376531058504521582230411944295263331222856228498410554651380964419085316618555190783577667531037543630250067491549779754060302489825846749442480236713460497763081407159200943976521126586353002582269309998358755565573681776926382407388658511732204119821038965471592604066833765314978718539850534535534065250820793260630461138828699734890705915048827942309456267075407426417597215450010165314802135874426992021655940936764338204250919528637496024654955117256173904698671712865606560743275580880469692855493140995454009744197447802432818968411407465106775283308298708332307830948353882556670900706148664883125189017944456376232900646483670091535077615169918102191047080791524776205315927033809520015923745694029421973127660296663630755278998552531036586346286668221271203218225945170678082718643531377388788897471110711045438296377322240736555348860297124067950301088537304079565495289983641001225153182690258950172922411089214258956693930122981347972575692821686643389741512166774691454057891103921135690313948132337437187480106620985092890318486517867692006318238864517164463741841977923519159524403738100505730021349066929741397204784299589815777497172004443083213090327182555728877766846591493899911538988969069989737708264206529768281392000568120299870626856871879908068488838977732552655144118303372144847257995378379363734212172198792092165189122359985850823982175182244664402962124731194009128859428778102090286683279768722946141899337462643801812244255858850707701974965065229589923847126309967421750188525297459024411010724689171261982131328720214304900661985872600690373623063138554539009797129894340108168972962016559600209583117430642025248325011220688177251028507492254803480814496336677286470647532645170010207068059609773920758186309356111477122315889323104040460517570329497538866335661857040518354149109410985235923300939363237080560166947220820960092658811681226859219214246783932769930791641530878718462415375737609793292042836863419506662437746060303954415948707835384878460045698390394725767923574167012469115648549860262632376193555402333198222339678421790756064873201430469525874601345285107963739707422244471542050888100051208313177594591790253938529485442624951934171814559554800556582298340987839103044723931392902257626747435093672655030569730102740389860461545358597195469011566601618735856319218519171193174324485238702644157753752834740573564518103756611840159688380971578783358785354473104774509820167145308524629161667801886216035930243353842165044018138952526386676002592200483769115464571931335339162106402836218636072855094925953664320536864688307485409392557616939616422403507467359529638763130227249395991921173768276629184908197705422722027802291720578534820525164405370416823247951847077518835043885284029101226358561575656944037279407556520882628845982305193054857373412587165577193299759270235524389368340532428803853175385418145267609773070218257450754450381797362269477834673947806706048929273083455690294242114542708826969970701122061222436786556029129807226091070301689730733392465150728034603669475076896997809180093145612115684541806995434602758197331548742223442062251738845053167948324279023824682902687488381650266612108553178034034804692081627219288733353904631384819252382119720391704006190399371162536986376292682757727165136303880861542892015709094572152498422861199796217198171592655928041529201594934119404686161353127090846652008613335893580033234564950164797186777091466905921798770373252730964288002580814108977165235261598880258022256727277328466274621752742904823434109168890923888524716915472232680514666184080284366236141089956876242311713748360642846986706065260628511637289380463769918234593415799243007339728664973667738834540932122154509473116749675769017828622526112096921744869305892472642481899079025796577491961096532103212570050260471609124282882397246272452043658707978621908452203630089867865640144159726891985852834095034724894411814893025773523687912213901244191052616804348373530670002764666453805293444361957302952692416374301038987179722476789263480385886489385879963578673289224988854470268981797390216178358457613219531386146816101969875008219615905751668507162982205348732653259472289728527739619649329123718360192801494380792667736258031580542586352764120412667260306123058784305026544632994120245280063611912359075469405204390209229378272763249254674971928739719860911520461894661712293746929504524987811734491522075155856916679525112337763896547562789809253002392608824915497176779480007614328143415772692689495364882441590139011763815329252602149902406304899591919522553218895822493239376506089373619611139029104841895372896891637007742153484600827992560797311911627787279668638863357870698916987360770428612069500946146712162953902479053477758884141507470203798016626741644880473922760976472087933077889807036212806923766706305874734372934511714457021155443930408561066787810017320735442586407572612987945287819561340134498468177360793742008441201478500469652814462544716027135694605695730991997928363163187099740516816254429473946124994324593174593490948718675119248217486693144286994923176100319772947340319137631905172211134416303253604266898704339305321062396299291408211255880729646262736902068060993529922880452627907817185516131709616134784642390077357372026650206020860593441771571049347757738214786543590008659596417202671293233022122527112248134407154134929152226510400389394730198901315141423140372971655648932885756909018608947262588472188380096130820380855646325765830903637874438702099821011002178522663690274297447400927088778790272240943531420853271861717716315184210214508145656357680992108755368528089191797910869725909062340991604348947637135341048916002232856397872613925024890527976871982224725918655640990522570983571659211283140008574668356523953327612393679978223228893763188478260115280416888685119719009614974923477211696509672921678626660344498965360081693355069320115100490202479309745588820439443115533894930972380209436077714627838915055540073495731618276290982031382496154056232510631805420622304827416782182500902412787157123186257071333763235810739383153144973205936565922999254765959838540659247749470436347993909537389026439370066567455628205201046469488549814355881494625191829529129639210113666890158172043228269464137224350330104284751274100365511183410142035585217819976844656525634515619177283078114641231937018923528809758089566424741132306516090790527730569339912742778118142564709874744118505294435661737006208398224506414532185719557916257522320944673381822510967650872623070825726313889454790691299002388148239165528803543303290629584237572249298937961641085042057347513291370557101070415439767736375448930814932371129542133234187248972003423864241476788143716804903519349230345625927567605728310262642773758238398277615414898920959986912687875017659352676910739831713062801356496504529812749360692899454169116982490668718687406310725712426205602166439895028963967100356861818876420713642997603893036379616166359047337452530005549877176692431143808106247749457439605203599655660551839293621276257921920152678131558776948455199238458291385843251401646584840242782929899381335396913060326104609206394710261320427151320273208385895409912230449755782579942594955735957054715435762746589058114270660375717503068715902766889463357141319753860663383787046423741457884371372243524859248979360340759580768053182983888270636735081728835396832177250722677270945209773413897512724178740565893306940413463440599817531768804920196715699946279712076964254040997719166708412093047139828288448153387545761359725065771629307122391492221648549387902669484591258849248130508133056096799795989918143432454244289954326706956902562688496916765619257226592136257708138048263962741185921876403832545828656580574034647614048199937972268409664876716661249062068186468114602882671582186073168061962402799610436145480731957045770874101275053667767141094563393621696293346061951611119604351683510273601067002991347846187017152416823293459852905259656647128305843738861215510715526430733700692563041291349916226642177784716929483167796332719216333607298969634264466397344352863545270585115178219131703679712177259915937021935673224415406537642450109320904657481957313888426675863806534745082929879836553322505286701575636570263245268490838308595361900123617882788725328266972846669121775553899547205862000053885347058438313424150205685803003739271860682720666110237065109966022718317538770837610840785287049333316810510750618718456077859229993180094590969690190738342454418727238014965812182854402792025653369146949044538891481015127102051305818635085920242993319110485284108052196604059510843854484277104902702496591982857438709182303669633680041756182227813683886607181321905710225173159152582006762491282018038381824631602974898696728391307003644326229580488795784122399652014556399620445453076351214868330354645459750142574516678085862392845275543200912953780712958433316277784183268073750302145974375598457621777056856469463897755303730384512947654545719623334437609512966045896854861698892624160529262293836112839716932060027534251633564217485738270255348495815726368048637430727624694065827856618896060137389069329854501147029998586764189441504752350596047552270913032803740890041433265003565167173959252956563272289779465046618010814211375740563440528023125400806498340258750302436658333065445177834463799859499809697425273533945835896674642454869419349613949900907291578734073663309260801225632745736039251437849589964558151598534877697683858775694479995241408732574687906048896309233902848725513339168214322824642876993007531521545792610246224903632870953016670085803381697508059494819527694252712446424459557920737695694413511533610381659519824862287879044241915601159873506996906037661900451335912098696462498638934046640058609376176073339536110230832725535213556649417717009097754088429281487009651285479148397321809324504267421651067120307008091313792800291455304989957307265128179011606846307964360378886935511746283935610686014803279393922328219997964114882190144046471030261131033923290405715923445737700883472695659134077643871739432677342715568881742578318519466032624992868691359889826511509867762008720095349914837492298572345749353325497848422375438976502684988032782655131235501999874515508216002405517406605234382264961728992854658318873181737521332188861027229226308168283291456854045160313850742498242744732039796348141294289317757393668139455794369221383826196164005360039903324961812001020280549908871423809029929878176149459148205308772109709677021672623754441845565913256801032234120117005825172501584586710611975344922593823956005846902682795431899120923318523259270067003305985763658427109830987593291582201512590496638204145577770565608059971103150793129173198156633425857894656825513667616094602291926920595781858190158277628466050003350715494125162553180123327934130608681744331681465739193114250782828147980672469099370494782837200270474593155304416608695390469342116934449795156514190410219153979737085961809033254274228390300852222901663018977383590870165964877691252249264810097680857661516278092945744797973607979488806941082185149154562210496446985411386980420940802721376605740181766933967628519745851554305689554854296495719232034583274536761009715112690689397344722093209877189462670748213079546098833666853834366243647220489876840292254725633852312932645563400861644225840496754098752172265044096537933199235800014944967861176142936954647725330303879780706148634743483362986808066184589766494605605660422983797194212433993952741563911925500803574400245596261969532350421011496112759358330126635025163327711564686772092638310577560977012005957640234612204721766854873053777172404384806060490192412836688828642309141470733802247235026569944693878808379332042797503701761282412090467934691327876302577891037951617885207092401431342290012671672302933490295236786871228858878094423595504709384036487663516507903165723805292055796712429366412746376743071120567414301540508423961892540609825058987641417736493284920960636184419415652156663711986548555266663907612837611603599454119296637256260209474025771706231412845459145243365899196776837755538747786333438322006289608455759550152500247989368229609328065674755066552140523402962560922346068459994129545717663268629902079340584699353741565910335857509128268636298062021468288144850743572195542505141640480245071328881623643125938289599247165088445578218409335160186047748446627524468184550729781581171458584062448872681420064768165804894675480512294380782251412840581557647485044490265204764997059187478345007735602214920706728679777226597095244952326866696650760797954379570461494421028287469373069755877093913781299582389244624340816681403481081862096294231275446081350299423652645647572541535961940698667887826140462866408805307031345774204806460744089296737350790560428145771648532152589388810797392329081451359749476136029285580232179858860177811569416709841145431521534614819674938529072221324447305312187281286545755803270637936142005090592420018208127330874991087399147530604702849103533299921162224681318712600588094201481028539224014779737478432239473489611137502923749794310298385148091253609299806795342053395321522095617173118961840312695070003748867960917107107702570675322801717390559262769869747993895900391848857495717818322896510072074966628273661838279357948454836451861260508951896962344463557311946522862027265633497437752213000205625789446389324309224385631225022944422253711409717494710339212222634600086552090139432846939451445942304586485856428912765314602456239522528037501721514792423135703905082201575998805612024303556244181560450881861190942131575247694406492805495434087239931921393825401587622380008282889852400085266397270614687084050286237727492116715997559122579584794603229582165976834235162259850740056308905488561350052271335242762629321115831446877190475595541114509747657181745974044909320562712024981037832022581317868018722550210231828162357809335641479279850193329072011486303421326605757413800907126658176206520951646460841409387803129363649271794680940778496657983854893916900195092227269866815969995164548665733224467313412283148862811337614427825941681246248733090790293887178414328660535988327395546261138832792486001479379681771094934740168410680237094720929639990393678108930569847886850497854088954696257649060587722327780873502681474547799138638696960375563645707306621395898915402933602258219747795254362822306651999286989628002730425779004971517933183681454807548598988215869657134743263854148456076981233498041834334357880634067577805271944762522268309683693228231972323971518082474454545670671595849024934066241363279029466283742100432980136743135795071966084987688101166556516349535140113615471731453124913168100606075511592669748387448500817530172717700799880869315840913344742809682054319629652953031614489579167444542155359147771790706543097924190362638560057809062246830812589134418869662288151865571390072488687712322191199472630775589941276507930393868086390733012274693941510617361400970659341614972578303729037525509888939072458593533484176335982398811345209649406226162094367716685311008473101508177235429580346898587339058632485220546264169612323930313101992188465020012040924506795109120898182722320707837234541654821921960176283860278321266645472331694286435269355758537616764599738350194064048274712562574317111657637192436434018019228933895347967708385040247636651103025333614016341971082386999958234476265434489425059889082468139195099004163654108653148378210973837329454104103170777282658888371775018757965734457875774161683409784588743646849490885822348669362182369232266818299043590551701470609390042753441581775882492470240915334309064181314134044076678021201393601050109389098871434106596494190990585311854979867767905901122952891313481598306662966332790385606152554621697202735285041624054952444684192617217316343691964716464307179412600906682307035030281600839872622833299576610815037326338447283794948579823929851926601457496997612169488353812164704207663361218639440086942143669403429832794058217849544091543886714581951984784453628410559165351832694398720787983842619582633354433669515311234065270053855468272392789774769921433768497560452522262281596705272349544254646127299452334457000113958409429656911242130868819336230522341243753794581268787871434932471018108779328892295507473224211888630513508064414795005836393720713967369688478165944146339527879631894367747863969135438612610587525609538403467975984215427604610135942167294744714333752480255582381483166343409780194648094569031391282975589282230032651725039918798784193314213361011956636861662988436881293909695335726340121021720337241975637425534145510476313459948613746285226919678467901790284230164015679791872574748514652208158774958131244014541479796618266684958720147299728710932357641740798263713050556159288200177674790526509743489325933531076737774242522496051041803195290779216759894192707348570520996218469790241027572483039144735275565748875110001877494980730983609348709074592617043157569697361604538873600668829077396997624401491989287103239700384248060384056252743734866114033323451004308689004510748551477502101753544843725117298449890940464097687168128155360729841835432711132895777452562408256751206061761070498356058454566127973505787544548644440350475129546224637226121992623099640181491264205083334718696094350125856467523692498204854062957027337542607283386321489942488548676873376113235362201543166864682720817224476999527706347251746792875364192265790027642854301560489137538436983359007441342790791253383803985213117497392277087685174990595259819868018968508494209623857725984152422712102775852710160914952715588496509223213153878080534198969106088742419811150462485084695217593064200453819465405628022655433225304169011770085150251424713905166674736413423373707653158720276454895972291356915379476296795645497883645106403645625099601046843818456810575964801171372835670021542774691939952246272946731530261855822354952004591916351221490380805748809218830132525933042733369682256619145720082901456010808435419003026536023466853710711119345557532633166380953348442638327116916193057423885724980227300411359121776758488630747244633451905877005428240729733434017991995049244633371114727021737738174151641828306064683065083430502418754870758331625582179958713975355506730388388397875924572393365619731065289181447803007517500384895253331720654257611430916330367033465531601663315425918651148507878358803302281688342547987252862448790670318752402148227471271302829560045534011259845724295206404098777477162749119830568112685731773254674190590456194273818358983821468892518901270104553232692114463860067048050526118475596334153703473910080240617051176904038030186119857955856899305666024062293484092718789972883774479152546988274667835384844402888723710774562965394163225744503681034066997328135570149125074713597782321205420299014861016257326772069438388398612426937976661115565747364780790477601560759004037632450204197554068394666571899229854656652859126974157420944772241738490727704206965261568768096280022450684140776372752695196458679751924407887591486742427577308168432899509374490380783237400743622785834171796748619360941303078358412636202171234282228331226021890615281734671933875007226292837395974795016099571014899061766859892995235195211903694867248360713515445613779291809123105018447608176676634352207352322664245759859588517736926488548992810143163042877363282204148018831913932135329874833811523547102253126780465386262190275741857925260269866986398482616402769579462625300721394333299363235455302926261421192767240066040717146802094600279740607250170761377511045033703967979819179517804169325423926625222327445699182961294851370710875697191454105246511567421781946173496765339618597121244271452134537480583478123127543076469321193015437933484829600834522165008111343281471626608600530687822376198292883037884610818154121001294285120836064275901464661845712786352676209782412017670877931926178494420228978298954640488882468723775671461128401021289492862302407024397905496003337696661442863821415710284458697258339206379878001422086521606403788906889139023176332090675970640993273866082685925408061838279532921000938377929359135563887990392793984644507011641422594979963572846656442100265116234747306141865616387185446341010470260667055336008226266241636658132505393345806880049324751004672173301162318784337975302169333499636215164214508173707113432073996789387118928244513975735303334263531373245891216866958280874395576527358109787749714895099853814159666752270448320417216030652797706072583306139124684621826372470009487368090517246336582119803342279553427815369331874001431697327762392185368786107755079673737024532598009343007200850936493236850314336106446260220794451837891170711901014900521986333577603541394789506339567586785659050546212023937840514517520331486810212966447278302225161857596480092672870320149781397784772579573981229054022321674935107001639793542190116681401134206263883429396233629916111042051051384288471335820262369769879073759781749202426255721202666890546848962461306284232071356183302970585479102621602818764982639601313380737788386029183820363502833181475280757712452946760198320286202850138345563003958166358286832609948523583075906774005317049105455585909561393055830858089160284000571084552280109085203816541410750355388546415635943827301477772304103108236072252832397920669342945573828954181437615708671230336587489203844251858320044628572650939504677793565636583035822355807736994557990416429125782754822788588810206087907979889760261921684892245356128087364001601009558653439397620554324444827171389093808286953055189887133020481431357131426743333766655837793196115421457247825055937461132892893940073890959017080623276393354753849590283545497919218775776378431492253245658355461824355838431589915484956700336949805276051970008330871464615448262042820866660678373432906100127012788115005306971854026906109788970311319098653583733315272462703738382353480923097508651720049121530996215918740264739961543148918073735262007546292260845882358520896570350712476193421434809660081412757032621124216675358446616039032202478950063292924187635683803155993388734097777547123284759966304869083196117281312213762780078373052394496212216409664812667941906254932187677909803527351266772239449688659319640586681124826215795463418498131128986775144157653068216648809970202563331906749851563520391122000964562575540124054214576690820690019044969740815293846625281120646926500178488006214684222330723261391178757202927084927249191362952254944916597606971292345267227021611697085915625122027750763435470625761491276988970779832776851445351364103194346027127597230081657023931142596717625987266383980565789055258294402650380961685723653988541442316642800897049955185583812033201720223785943644568974413769810823618824396465184364599618191739500958059272534317506920231516137014370742616419317861416203064964637797747496661739117442885216355757221029959384149101431561924209424090999719087258506562516989713101845365628357943249329915297256570945960027459730203091871276259408380100741130742754755297096874677471840430294529127665707186817077785773775467609440985939738027690824149624570849641875467761483270808087213632199090065624093738920637923599779655584876202544725314902701184778940510513002117178817813009818030185631250057098704483486679634832746157377858933665025640782764444257524855374938326712207186366682278797376885397440199775125166739587697032548090250143424208672194220453266766883542476567103535088288919088527664308757367844652554269279412608202211898021447752880236536333020471154634057784908173053684148173546063598194155858948863695766436190339508674793759156475673179262162960018191074291208854778697684643470530083519330378465477247018343425681963413414252567809678071367521644762839061326114430778089012443901428916696546743663652035917005434185364941223772620832709585339046294987923387258127630355434131124603907771084912213417902193848516353875234303718482810081776485451681403905200725972666411324076771055673999349013474154330147036980473823040200237883027693174815301061239561088855709158064787368141208083294796039441129118790994466308099218851580109196793781931292842738448282759944360161304996012884232821770356507902880361692850138650604433032455558671808777958774323880246372386212593733415581301164422791479745752163154095609542055066876468322070711078040040211611260661934981417775873540289851715588468499164012876614849698208980456760039380014545910265681948788946597049556880578700566721952223618761307804512261840504886187396437338486444234654348746522855687115926708773022682027731295639115925920834985826387463577039240026148576761078357903967090704321450559778402993739439463634088389782528284197518971632058261891606793919683139890384585188182444316971817089539723503591492092481363256082677097079682788814219702868732052928861042653630808605107090589116172439243447571826124348540371497651744885031965430685629120605741173459882581365896729454619085181389575150790936036048267252314524409138389735133118854410250449626345921686258521122711660712272835903447556095099685780187911728455278116936213936794014951932952371462421747752757567490336300400675392984695654325230235903297189281483480139260270428895052686396107512494013297581719248146542231449121204269261975354817829449763359241670586641512550298239184140795393406720715119406191140767502860170701084892812010622061724299956057104393334830252775794970673333168728856057070643558103109254370021933380085395084561690425874966024447051605186001236006505356641065039243362791654477407786226997223192120624780428785539730503680088735908725968171911561218456875280384345875606723418837951694825730252535197840081159259689255723312051465990294282380222573730971577926236079686308428864361662401604221792231114356594292369829758071646577678341016877282093747281604007315111073169736457100550272951248567851775729974955045139231316633931688597296259851592254993733310230926688066929720600081841158786509884172358208284803650728031449687247093046965027876946621805409486160254551621833305095311034352794863672928071299618648706164640829451095902565865624887982823282149490501998036451681044041268427347525783216296178896784939313880965547699176666631983569002358980176632008895032983296620660145403368372371335090958053682122998521515022263522137213289467585396379232989448929232589459569919077842876506520668120655280495115156606920071803696436272104800585659504938335839038673804772784335739696022415440907005279365499795265653084139121889203974879095897863999290315619662092418578373683755204814660949132809759794437684694885390346609699626108655805789178447846805721750523380084103550651592416764036783360038933711048026784538557291695233332119703701289912385121789978643585952245398651013785083248043157555929703180352191072893996643367067607497451891973717470607820283066090353457112114277561245493780516684979871596626659702824732881867306680061777087967961013931352666396148252517982472230758263746675109995701524692972736457332067200652566274990516149680110170374442183332833554908792072349509940987631077002279175650464905585604654939276691558989157303075453456847352737979699225523060116248561471794988080155058234578696222809099883961947483192099251337448157954482382286275199155706011865126386732295338097599843524635828762541583377282982369874395279911598288345674337860016349195674052023276313779824116466012720992582032493540981080801991639034012276698173960351395120486327027354746042817770347333595918268995316666521667356146827617853586758749294109568621531667474999042040897864002490238584994512028593510705361743346884626123561329057190287192440530489989416145792006020766051176225435288158563089922748285853634687983830143167754028375888787783020700340278675203530850341839634894916562717605015911704010308506688445251751940982171688140351310246319382770359988844728366653795248191764182521346006675183118813516803738820779466708919887900499998603821841299781303173064760864251373829853697436932722464209955926427873613528580425177223463998827382733404332293583328670319933103475062146275538161404953353751258074698689135358281340747473554959501827860015839877497274225750128951603987792983637208571621655141559924663503282397204975313586500663453903733336234563209980042827902647086852791004987919882112875318877708740625230055925802765050002057916314571844854541239380556653674812412942603730356023748646691721522906313573611379247557180419786414205066277007107262583703361175657305582542647437642802346462291980497053255103873757644956277325300160970930375225941522426037170300464156833346666927824106635836929394272599795087843610936848595654700573847773618636215183222803822630250378176090780541334870526997529721004164039702012935428044760924391421304266494559079390003582203844398407419545711140333836992229110280628676290132643073508169735361797599274119540670013067962393461312451241394476469746019103083888331490293966102877360132870799250929937646183596242614441545204148877089767157403954161714241599894507190812747445767175703180254380198597241308373710020127470653066144259830269511964567402743603897893499367276116757542878058214677723986487551908492540892153032850197768464684120426509156984832526472103559596271673356950602414340031038524806699113189654897801166609596846243096976371356961730405589573427164159800117124100355315661692358801883200294662159136933016982717511231499865521179246308776512123291387997516351538146431202826801000160239348912090240311994162838656527516001642132875732448791636152405200194073297460424485629160702927369344626886439678088981750997738558687548834273670723534643337853223720630478794726085863893373755775784268490793110271878812656768999094805380269908252850428202462651363990812231217204451913650468350642191449584435333006670688327609368670486417262208204383650683964087004435853959201640907424171053091462889151482485797880014436990017176648911119456247153826463885409771414067643346205053748791020606559425560561691407016613490316905822612681959209722477885117117151928409924941885433797371716473635072090572378016725238872509566964473216038329304187261932948198008002455752984829890664864210269848748804911658204208453437238505470286564811110200414174163970170132794882183949623093645481945012670779067685813625390996018006870585967409779597021248231126627410910617075510347785078478089029490272443653429522560502996694270448447602572815823393254913495828617415836386015292065361359201556185020125352512395520508501378726603865649415897914661537292525424970159864044270437146013518072357969962229082517885242896956581401481017255500484946340224667217940642627782945475776224842258983109612362806582054008883879458240157290236913045279988870701265097280956961785164536955712221402379626441691228608126103080637086149758498687865424491905887077596958909359095888790792793547231754782106376307073247698290366073501575299213068924639715880985922813840095349139039509569663167751055834244234649858711944238686307039891899963826278197731332749704396646395606282209059779445442305120602536885713923817477586080493376159044398035337350342077058947277477256293100670299725795254344065292455830000622725733760757217625500284219221873404324030063980448509625344479433887436539993903793083912216715053839597891068243663519076862536115199646148485698190859200967101493324243983080306036214449681479287688633004341270867942964780389181740226820496711050503749652176263416969266170930277643104835111063697318046594187212326233780071111423174252628214136805162908775535970404485559815787200276814516476700575807499847464954181636275624147825390619092182361181097127714145194715556340376998232464821621582755299817335005872701793340569875676262513239081765016022595645144974643456893904624227205230764032583915979704560335763673229220860224478529171085131057417256797542904463043641960946281862363482326000728131063746819670330512720861554158821587056834225732367768121604063625112315917886781498612547201116895699782876568420845216584608358814569173011577768300169241092455663374346904903376895543182172952020364451500253634792735262838013098418542057531807807163686447167791836751830135307506851185709151753250479714520123254256047759459221471842968610398690409005676913512103263892816170260124552534229159350951320337716514090090473522192617047686818204510097303554210746688343108106617997290526757654298432983380385786794911826023751903623984726339514283226536453935013401364382303217527124078496159273975589275213416709134101681465955446460246812737277851113431794139359744002527667869192793954341807365034003428521836939423844603227161752500397398429320963855305134498496173740776955143912066202395503235850345084482475389183747894854702976024205504887796359221903660130324329420524190949608737181453557634671049572890560595123333713704375286594576177308622320922434616327123229920617288981524556727983313558242796545188834260476072275692524395730264792506429638402321160060159092392815280099224796628449715135965028906175382102029524479871381883277721719127448517486306233463639650744096878467881975011865362322132077019942761330310908378335812879620331040606845298689753552299238138895534100951741489960324734654033150373727718697131011974343349776509542202453045439656882941467041486650387980419926568982459558254751696812707633770635621551399273627055432992634825069996677278845767234533544582077232042151469431438989962196413556286039227790508272412046949869436941360418389095055143969224933041599781085194321650965231684603826162771318515122909046632255514030497359411336338163547289015503720342287986603100460531210761948346161529505874236462228088299798154924590187513264108436938640499247009357131499068513536495816561038140973523475288131162243939614065988317405526211063768305957690765948575147196408823144941091565544978876918526888928842463608583625686553775360237069298631615433425937489250003945369580349584078372121337751239656651941671974999971287162664581700207506049554710728225936840499205852797812531647358729460433637894363616636741035311315690765144121574254630044858813786280609136384247905756829961990595620323041530599039060775020211852423409993486755870890088853054343088600448112575998973739445631838114148148755788855497468109003629374583219177463305604387961480295935873631918120910400501234618546390443059194763674567323121084067304363423198898696678428543560110431146246217312433664913879996176015322651904237695399330175678121452879466940016394167506392679283942235004696760790067895054445451872911922786778253680421860697557711084556916350138058725315301253022205006033018973620198160560848822327643108580746675456461845166985701045681774521222377731864547620023938577500193479672176380608966228791073229653963438679042785742248015723531672292718462265926938374098981958971552187949911167442610389249685618791240082017285143306717831799490102136246782769131404698216315261030098846023129841253495778706742348435723074538596050917852222603125450309250451196084491553990760139721037943193529592445682559638591561590912298305554854902094908163089937896609148662297383140973017518366220629844841211471513535272051312461750719825822899809753823948503752686658320707690475775596845938214282050190922256984956001865832748965490945616444728089931085792922944698775636500966523067836727792076982496359481753321085397254267671709235756078894798249335022953175330120931550324735762856261572248354098479553766166771391641897759388976277018421930709305358070906290716188293773934872800767535903023891223612025681636723522387389440893082922762062415212380681034226769189792492834135341346401468484012877200261878111158067795893488723504350495244059454197345114410756105541555541733569052664891423503251957905356438470918226017496878966584066892591328017846694614434526221079655144393722098712444312606810776995774398095989380622830588086287750929075522938615162305421303931015736413163164751795518658247548990256961761583140638781172629406917380685841324288755974629809848493737291436903512911172940850894114896571346376610469044637621967193675268340609306776182043655684972958344386028581165644739372979417682449520135414453887201249736933705273380493167760555213062566318702617574276582634866228966214827340177139293839027013935141891315353014434226619769931097581321014986278228699311699314311719635226941936230553911867082568896002129982781687030261527327409373596824901062331295547429110174793636127298850197581504045460751039915780009989750241643922688762267819750070013998188138916359662256263325948430843029856643445537888100346574075138254749698832451589383416293638936398549527241828877409632340600206677851283207550024257566189123687682703760993946792573677807063899445124894482537949778653830367724583015307874142840658985359863050587868955469554156375332408737600080228183457428944401965461351771306072142956804882960617267478684839774336314889095562093492331854048411612944262428993989772682547131656368894154030910519848854629655301892678319029831548327160891633221115022517722593150136719356815113218643069398246513450455623513789005145400689710245921848351052676580694772637576811783017209309996265222860440851780975669256893617821449917672906156694192653445963814882913176527417993758898543092867997405830425182392148913472454684089770868334977911101643999734206133229617860092947468502566085420558054130375575172247052031789004733519319896593353533249998789161415385496675876289910253193739245618406801910948642409822314857422454703085716955475636393758767562265995079150461969810775559986433107596454752556609473472437591185088838901828939205558059687714771439173489955456645768942893604498207120956977985535005158186023222916874997192077372073972880369356531108184704470385724709476209130282590572670536075767683196705767006694705327833074931699486176428369942093726448744551263682732710752088466350825043617829317405983896361401992732628690728795102352807078773296068546433474832465368197896375379153088847277563750110086975980009132616241968298625666830316009760275277568584571298052485226401656107835888268788100064698077670403516724268839521024856104109795606649854336208791552852151556832141461895300353855098448694555926652806249962076546143960171223744150741133148174383081477261352074990797201058632531375694771238827874590843670570659661865895032209129004089269451853547240361024025652818126438290508223008229169461930955071765593505138663789172374546726488377679012726049929203981639722864230900457768449188053247069529986283430246941295548604614942682147305781479187398860921582336335879920020238145956360777458208845047987640359607487466197853368020245054501238891112973292486648172424539053259880264076254849317039655684840313135172856743807526883194249865265900150281995889576109310574157015724435240796121965510086165230334031879156168032046175177369765022156397984274098740796470633320806703763447136106012326807124161989129668722123052187314867160871885155351120605518867026911549417897761107614561066992340779275382961994721790348614243315034572510467721546484254808994390759781146915402908040199412017025894750136048570942292971980473144504803012402497054895496672669409462412043694120463659314931133554204082730624686001492967635689825647125379838684295031101622240365907675201411405917093983612752421605980806640613657366942071624428079480664524913667175327345571111294772515853631216088001120666037139375297837173386273640848392569751674483461771884464896957605130319020041147046685088621272894109923752657566071359025208696648671858262421359330274626826587837462219958827923080601303149587867656789332639282862688502828383329738573123454561514652028773979455567563697406237737953710858512068796318585355306093917684013919069889557780511908070791294061742176401241049207766068664733422631847146126354946177867414189582222096879767961311353272429476421022310798894037995476087800691990771033085035273198025929333519190150136885703347609923138274579359873331975692924558731639487588792307108478421896300541565497852472734331957914989510813530551890963643716689002768021289570249099186156040779510746081076563983653431348430339843702261788219325079644291152225807824654170066855720392913547647714180352161340575387841095941450141946690803263166346814280215739698474088979427334936297757284767990888167050539868770865495635015519692288432489484732753114806542655359138557494499388964935785529111230379976051003851500484770905954349429627046565979745742699992137768318586304564343996244246601153034069912005929880704934687811127023191147887007897160136765674999485835200412653327560976161379284974375385378911680454283550239997225254680649349779349811862142112106004134109938567027574387398583249903365976309941281161500341548152509010149897756859487641531884632256180635251193418029137684602164430795927946597260483111676000728917945621854635884222140114643329391084674256847796872311872128614822099346293766206751341077718207066986882752877296736569729851753461244338415341262775650423776588333380157725670121490062661648183126533579200771327211060150986765246898735318938043011405143688148395565213424023690134018216735679806284087094991302852723955170195301408987014220620331845807544516364014393988351268617160953952918126865872428065210200102684400197008368248882165988719644147660534788218158137923686864912432672765257843574102396726025835600470399232654014005273720824974864986542148759551586171448412248585619906170749890784525015704027323896288883912314942506268570319202967101469572480608769636535332809747614390123640213391500239114639562234558715521227342381975713177782095409615041267431120582545802376351724865308879397750664770813824484903041120420667188836162576155583865990434822589747932486252495101068514591580249015503474356277884921417078877933766966052485033760825404230751340078884636862639997741552756556666710038617733157605547364623727563718493017441128316915090148668470322945249575765439983553286190204742689912432197348887059814249860563283777805407403503725317296732685231251800585337027942135281932538993411629426169127316212971639464811253908928143091447750523584636093312830578497548694761206670114292908515395244025875640774516405792420856891828703602535975456437858722970040716734370973251804141555531798488568387330314652820357557851817216946418576044893648236573048826811771633146077850539711590973136779040705410585246664598021164136965825766759521403671869986687246895383108464784515958530217048277970366754124515200666001101921137154029656259182712049069900148179790208684900260548991100056682238846626756750038986888220174316570646906811326200106363957108347824619543280146246976913885047865211784472698706029854678653378353062931933009239048580913173896654530073378260409795695620761024095125234877322278230869559727458683286021874298135546473579988892724142320168124861353397285412225884595744313636985382404262022068906276084386945036493175660582151572816215583747502226451802589716893308352088894654469301306474428024866698920263227944116939650034333476567215346250585441801658036982297562923968657164666486721376292310612438859990600395500310563456515020304333429255907418788797291793871681233051899663929836157452971752959175670983742058038836689967142182688015601232875502975142753043038778208333383154891083772659190841458949538348779185445638569259852933149814125305954491675794663798862662418986821413101943608548338008141701693864052522888182252802687235240779247849873318552793265681675669175039409828975408310213163674092386407269275335265934079391265388653053700959276831272713096231137751285551815229437650130498197250545854976994930579353279645914170763360621621240149425543497898422112660196937954276070753359317368183461697755026488642634355031517329145680934379253778479260785020848103088808849633373222072992088194994411153325933110133361359168630311063276434206522370580667182548437180606113236189187137991961740529699502337218061641209505377197235525639335628524556081948433141813026430112552335840118418535231460701448327627133530220387356906165353114091899590063590939945565710035263532176051066240968620357631742948379796286479939016869011888245147648362296759042117000573811924915764679401719247399611938797455884188800486142418145080254318031697705534520281753571301062394769930958614707396767773383203160855349373793094307838855939388270593809207857214924759591016723152413418885067820599492000910129715500157743418402487296931106542660788087826010297020975446416060451429337938306225276911258690179400483366755702263460972431247300186455135710013116406146571745801045268916812305057189502277592731148154968289969552272046496410087681167212907098151720128619607668549897312383203891964887904797082838339120789251376566774234204045720020869991095686080903343692918527927967339927520415738104408725749045536274522114574732116915984792419330642277329907675117604790602033978837302389999048189795110472543254685182140027107007097426008502206227723812196106358559450835031414277889036391343238583303598933991308026478534151820770364264787550613079755606247110570169333230068662771963609971658810662057721835221826262620097649754128959074733437883244264850449455775057653782041581963217586660294007522491267688963732138482515768635660260903803321634439509505876517152215785338695344476150493800680644598713383037587132851237195696974358620204450457420543382201840224401622744055966082469325288420455450562555710798929706590106176053374486547330530951779020765020909373634661844825833340349058760156592294602604902529178839488587157426595652787659071007907178430946434268083137370936540800296517706691807819344497550695122648220585438633723955041319068221467628633596393479295319021299387846040873859262038081489756490436674732878102501873219233153693100275197420876581554057297146846739571891323443856001439506843566307743000237467651094161115772412811678957793426809980144604629650954562386876137691794640792000921042551239201567614730995296257745443956540016932548274587900860338880295790806062065454189536074370124452816319638597365793473552418343627404916130207310482763954756119737090851324861137819052315147957547178012702895858351207190127809666289567059364374444509988760469550679422631227424433911084986644280883804980360044919389533109136877595909178762331857539548516288971868064940021564061523561499499593938650021993973119251478211585770934994047325737020344760385978313917582633159628026779109711906588912518700288398858006014472528146218300952448532218340871083169468410043478421634123110991055828261397219933410166343368395870418129293088275821513288772006170162587400470360519991760887617603956580036751937795605584934634441851672453608611024335305686635675373026902488833789484379925489287083117259199581140833579066937708208596687836312549268071992548295597854432576232065444919475121274097872828854273924072822706891134581680742829129899015642144460877224448105120209893806579829465911942625801826969032300229464363077733829878765153595342468826999603516011717632336734735750977382968706438440478778859224959824956071743124407589750675569555149389943812182118355113549165914104861471006277964563442041986344553334193820219023051833213738995546524646239701756816565605885501779290619994104915181417881326427160973888223500144048819251672272810542819486054590020532625757297976468214402068849075716535109837959488751181914620983497787122057662340802800011639771256748304711436827256195825688030574517142876931256041060319922952509046284274184575588972944394873420542753932719361639580794111044311048181200663875192239503197355011870917899359504177540738613544874663491549332304941161441091595242277875727523032906334037132517255574681977696734775185432733686990448080552869856928210731690002012107973321823125927948873173549513808362855469304806708615186992791873741583047134473375482163714110093289002634925420429944980312612553415349263927318364597004603106874518944515478805445400035113968479631336860676565008305879940984703325104419547775008176387338590353075974651012556254266603753934193680677044652356788088603600140780679809053328399105248905539253156262790995289140281000157038853386301801400852765004678972159740904317935267029306221191786910698503556937891070473093925780507251257220000673760757640247884457601039955429984959871513856508044948373550381512585108167840069628754312625088295397394824421037408392351343874241636802342467504125607702572425272839207302105290583632889112063704739782936167565779040948444225335450105828913013390546973120789766942123179537150696808105855688351095604070094856913776437398957034579158879053289693586789601963509446739635029489551989000328137522476145361507538062478083960466869648849870746816187332928604417520264779850488551359604533846293190159629186544571460041515461105886252452165555134190610745357929315880210740406219234617497562207714277580038881441486451106964792184530314338737246971658537092554174669516747730192305730768612265759712411822142721119714579351142083857993217461505525748011313690512240609787106473281813599826537562986755415581338044647113595436331525330351698110821725629795311137883017245028232484556452595625562727164511056544739242295155167242282772266875813562418481406839714137386296420343736683264563328535799073458743068075069999173080929108541278272411486057849456120116372706619350935578704549653516782143086314649031344871583861922644938756672790313531887866592023741463156607525551079228564845091059314754948482760707421095556675426567680224474838570295536689290870535570878923634980839078188212775322646875134717597673007386074150731085909423906685277841796745451612135900316558553957435467136186812824730049867942973053399367836626036348837636228303268270527280804329103380974627375523692673604291462515523003702717409270464922097586136355160549434227738349322628858630001049312371335100129193811871573002959796818705266300852460892684511282673279152982161521782066452806458265628188324416066211963011708047487769347483568464702699619509210139408869246493776027145657237468273561273988772638906896198655770070447593481027615839101426869870779187705101129262948937105132881412553784610410624810280089939437368457905964140745485990812712886969288720793752919082815783358824051768243356894030688963425799859138170163794282444580452845222120753628528315135818378718522572993129191267178420508230566284255916683765384893483315356121292098641995981006728715703193578628439550199838279730374188220801892725277694495379854933307939551571479468894232078098778498798066151031393605518823731884821801695810272772831305470074985406836007097604380316359774342196806890361121729615783296049502151331030132323807152184089850323000328784492378878000498923925548896645303042215439256874827485159756902704098407756976865907485444639282442734367288586826995707039648452810456595349041342990336462998342370484370600587261298505284552834400952912828279941676878651176855190471963697863645201352618652158103244738343476437343362638116686208984176048172631331346998215772724517948671122335184606133784818300873582910235174139317791207854747453928246364455715205061732988523047839096108855701342977143577368618081751534849822287897544742069938568578253107745613664369049495661176699226681629964611092740124159942718137469008026031303944733309790192419768052214989835862711806201111604971392904906311494186097865467642898311003574406463409816813442919360789390762478381857225548299585016582484163852552049053688504392755277656983295597813093059810839866738523947885447993378165940289066255315791549959940684748840195480302228702295141826867470486208941117198039253563657696405651555703165615800748400723927019554687791959516001632554869462413651569755189062186120377630111454949163372424058880532747462779796706395930673413637188584251466173187716655919544561227922539743484672329590385690449121222644705237254262484490096633476190751498001287670282352731304399910407215783540775853709616100163845499371664066275223000937066397730773074668300762581880646084102481765188604388288116994106787037810169399150617682840608929480459548019674728179717950366010567416871905914349473727088784728629528835576385410685152929312505163686482953302080670330024818410258012944252893561018830454460242555877314462986493649158811254013104761874121342521096427735066916362762202647290352562629562194207212573822131795924245696085796177722129800183643148861145567607906795001580955541005781141766667369301268423143118881795569232245936189669486264258134831469257755231430552957777446089132873862716296654788391392754706048945611690032951054837595361579034244135154083349820041982436373052289880783005810137500681824608251641968333700461566438318086241236996794129052795953651296446156602544128959056473559545465790663483221739818137954481988775507725385640797531658355055506035137915621526414790787053733657262445796385474669728400867304956497198613676323913669679792504576103522598605884287332027606515849615435934234022831374321051077943910236856362163575814820481149072597420136538868259344936719101837672607453451638584911714712209185919360724929698505972387272596825309069698758017670011412491745597464370723043218418093019462779128258483605128736164181294252047741113404891210448857528283532416594052920892581760229871021569387195769033770607073364234030379884075587805485035450444186297128242359602887460931822752968382606555689788854386049469135665471829106628380331318781278099260791825126236414095307000932265784469620007800685580477236097770803512097630213308868932884201921992028135185784433879934855756660345976270152920677835229304363964330186757873801671275719459831366505402697270068681245884512193479521004691834159528072766801235761343154062161018047499887932821694319020208422614014671197508595122470442288629912090462382854115595520376171802846053738959473026973647907543099363758396176245477687271813900899452009262486016051703538070754491537034897081471436169757141610832606121814106555686374530645230988617768742293636345301250932095449866023477368733376611733055104973761552341172755521942782923380922083623747161661568215290838171319367048265552569613255092239561252510330672251291495962893542110296818013065409119815364452860660395121619332373553979464410660114159740179553109853797824082884559103340944567154570944808528553297171358086780358217439313531752549804189943643238100355883081938018660570214425218879035188117045387072602971531696830496877946836454078428176474576766095535159095230417349691889779975483995178781113229947854098188080377666616224064775897647919277572062034955660539222679612081073006761069640269573270853592714910679673217575750769385934644651554795499735738719251869045263417500657452511023955399149312565953145960565177801654485649483908396509462130902316282087846140339724513663818742557450504681408177493482625196068656786304741308003446626929239679328877828158932259439897685203977805493107071516659997284328727958745075401714237679305827195355746531046262932959974612990051977465163772181516923429886545916242347759606570715913318854848824379938149548554801140231570063971847942001201149900655953464947203242822253651947430362918136583870021323197857227765727541431677976600073355151362777232227371308636011736608939829127220715131041703866468025261317457560784006523499364292021066297642073121430817597823686866646493880267467973930295357822133563142069632241388220432045836091916316612140415249176806985047019012091424283826875610380204054459305459944145121655648292572574101291100075374890585768215148412919082187912447415295414893676995099561066094853378400781409586202476452916153404579438750581471115854476424733358014475703281770149375770389472990521077766275674143678670340741244231811393829248418714870085147549971889753531583134643694484389104315793496414902668784042635939947671773715205408578394706228393810908235277110196773241788723359290232308512571592458147991741491053785530837145028037823887627471247823881085763321632904115928935188926692341889023350123584166182183095607915765918697759807340594419773732099936688215632778633134282398535621427010756966694069369987862053127121970362346057209839830140915221681537798584909443566310463766021096504056334302137143394887452860006058846681939647874871844559912018771313928357486278833953973712576796049227634052818036750285400022265987984328643788737883131586125761879658330530708305084561974284599250026760528335470145053134093433624212059500059956994295818123587036290141991940788771103491013822581953433504895869252230516049862873957362415860276270300757450111512152393285790633148796721181068053433607161254020675062963166475791719019969707299797289515860650513125907861008304403625341935535559360183699670309255535584819811846500866086851905689630480092936388133471798712523853435652875856660172497166338527864697442758830596093944768723541580972509864191219668726784511627820947156693535111636041307006944062793669681240202535688094257558360278219602480221211715928319372853775700725748623739632586892718868048263213722026047167187640822360067021361987394658817927934903153919693619269410893544615047382600516082180077519010108825533756525739157124443915555457888859380501261657296882993955739350294466130056913810749233793615644227997376901206780764675936245069424604766296566866716405318878695253382458156743433612194631783303483043529183583565849546968103605330525443385304308894186952301179254743300934639267629706495194244165390755994800038281144872054534144807245999055250730192332213937777790870685140650853612535178841264398299520812665059782398485790765326933091184289425540241253110027142501262208036242802152515035579733708880352449449872409826354680135988629251206156113450744877104113267803504042421061180720123536273182873716200408974343352851107510177735793068310978005082711880573117904591945503871154810187072952700457936684196481830312454676823432367502939776989689668458602123483124193801643829279388996066445503532680121901891782937725815252364142480439973757226627645289733005372150340643155469247432469014338460428590226709525378940508277711325565227529849512751396344637399349468343222363528438314166177915400905440212662340366386038543972332215447721428818632414807750132547094819015460840544480433487486708317301564361098238202749848935771419283349557720480978704392510694739972342312619572223526181903951763724742664210118673121552095556065326078795453959359781333599758199275291462193548328897598122253882929448779521390443329034397018869551562486973546135303717741989008785115123749252913555599697476353909847961934983979980074658724617304813547458415577884873600471672791735267316359652484132570401738026242179489535632347806803056803134113642737460229695567410077311893341787784445700327336909864818247090320398399144188882398203475972518339179255659590194336343734479433710392023086535846623242798397702366073548112260899958789601115543387372386885495501967005565948860316148284658649740248071641352834564401800777256474918458049695736211903044807965966625944552640714147099295116174646217201272961276589274106102896064725830342300463448506834828416621347182125276645374559020625254274810959906474630817911224093626117074731325342831520591544044145978589311025819613869793574242323853623795114547311064271544616581584719525600182735658051563656459762234884455617896811760300749669756671508136511862193558298032577727657055823933443003576368556153701626856113830458007880725855302205414474250669568711249796047614791215431907967791265828327306352119777164919538975420859621346056463085282378757919421343239644677140224071332091133775065441652820961053538111666383359944731666156273590697873227025976005972506072218268379957991630551410194533165874348768954200227367185482967924773678994940299203692156164598171290519351742664515610341685313392417354210730514745963941382044962596724569147228110077249198990083665125155901396540440707551511413118384407580889176127986450089225527631297521057539860863120024078477508670339897790498943116795969917655696551313881894405679061949020053337480500843024695722604777706027725865037447468815321019821841758913746358071393057182864497308917274279590456127893565183138267469569545906107241001390513946835064261145696091912558786117957170236355079029463001774212897424395652124369214536955320853830481566433971438905361403290184838276667976206378795339981068095443719843563146188415775674482656924252134704267848921161366452728341152915234948748276893796227713889047009743125779699266666223325780486144236598880434833175413876806672213091318104062110375069979786789472420073540070307589055415846048360789366986464347383676647850302287408671913028829223158097696117498611312250232682992420864657934318024587741514213971489081289689066160759529050259800440649380764154382496570111947052749401959414908337445284740733454525072549185807600900310775768524751515727788692124308518278899940494219433626024669277135604837789623377526300930061755837364671542081040991735505276293661638499869569824107777551102360413934596556662163552205286958516186199715194916458848891750122587527060281628560128848222498416822883263868277129006148425883262933356943230249072539324996898998721196362476782167407518654586616214449909114217597689031389333899514929140202758472795143392406951454914686956160614713484673190380496966675709044122177488770662930079650874945600797436422423903769341296805188762206762792021977599972795242958596721561745193052285086003000684865240977121694399514428751726492757708947173411730100489640225627009285137507033542015027041333063931709815355704067486598598098624669675867384841141075016731283969248643980751554702351044131425032292506476571163464463681333799366167488757836527239175786118779282507252101405687335325872532616168595942757228186675321779118230527055886790242733672633991347694511539467538599428295041586872954843477638847413133897993896500388103236486447129347112562506859218253230102205791893587324288306358282363289359730289136766841987680460442958493159934986358053019629905972138658891053192824918717497045124474903895495282528441056433480949779880739657655169750487637235853884226657178947557845313044479041529145451359082881875999734712256335094659689295992262380281352325244924901876892721100559149692651591303867109622647828922167516548549589835680049294041408895193175149395428667445622111481694370633388857289160061611065231311958964459781378193314969374652219704869021482564915849616093144501955715098211981457872103245279863407007244803346975461523889323166277943821789581867286325304553724837994842787793227494181140743553011872106086851644885169162179321037325955317376658796378667454124180630305530825203957276237407616579313526272113520959083393278412885335305821841788355591318310402399858156096207882798498209405115320340233576119352079589751621951097775817991752446805799829244263191350163805240690743526803122234592304146741408492769208112890021920683976733067615390130939052732757374568874189765352736148529581958222874707002915398606470556104282247799312310614839274500035277934031374537540833094757657606075765153069487684824810080794377690652822854277525219065005462100322738623817639651176358160735489821819499247497708037747526098739087731206928160730799063003973845023451682315409135499422614850923611760122007676311262783210207156213056332083465923778684978958719183970222183098077485100259411775195323943940541676902853144622069110775781852788586807049337668195496213047837582431890993875864125974734404019861414581175953849105257751520027050478376756804024799438545241987560083828975086907338177208829510891580918882460384160445830062624177014988592578244322169784737434142643207180432628066209499042705405458877354264214292921642506680206705463896802486611602255029510951242807435216609231314434467515198384564481439787609390110498474642551421161245105266589939281447784344529337607914197091074985577712408674631294424781089478107475740891738860606711329885778631417543569621627296890796092049206734043947163548307537870322266361754857889273963111508486457719234235669425592087173661208982991978619277659947865065762432241022478938534827497835678717233965598052052991584005484027251372485567282404363719080078693384410832935594818928160692986489578693881622915916331252203756558490816931894974135074661319297218781797241457801298725364879143706424413649101158222354723574557693716311455332673320010889010450628226039053822830516917961804334912227310286995357616469029496788424389364781965219532297951778352576021887508678555769804965163777598129533237895305222958504077816543188598467612633083691863101767142290052536993977596964895066794973957612756654236409100684299450035892207828483624615411689240463894101135901077848885584246371366211609267069721513487805989863508031699734294724981442398402737958626918780982350043940804567218794487691565471437677238106101538575911815554989558325452145039837824748138287297162865665664750974496509157339865431701961036912878084111093786945781440695940416274879735738175506130618683647918033300060817764641062957688108943184343662869096029502304703896264250885841311418908339876875632830477905385904694604766073399645902112352711410940700749173364998093088161859020000054064153394215076538400802002711578346146971251388141970614217725956685202817175451909669486186244748104679215710839109234018284488483316790381825087270485805679674870613194561995545358717507034287795265621527424431790333541374490484626721937557090979177811414124991633283952707941986773864409899433670400907296988015168122215073362033687544025764858177220249173600578837894622659966247678462429157774053513543205707619707708733847275556280182691670469967759175456625771618465433274748324949980049648127861268155675372566494405165326468043276241442899458971379615212835821895176358436942299866715835190757369809488960679795150003888259358788391609522535695845388886821574538720871570902058185751330734180517127806062378658904790166005021129838006644884057880033942731334324929023784753353942354275922582441943510600138599710899525087562883610005257913996155957782157447999298690776856172277714845365641386757326108728996217463170902556118120703257311736024766168057630313739170639674621111604485979248058072692901417997651916000299270406077753205102180813600337913224053334472920539488015524812892732371514982408960015720755756832039167747845448631491298365219564367881464718887412013188241207966635637558861295052421262370090732198822220200207294253404298301755582308470266789849382422922976098444481797385577609853651117427051705990280950865784186173923929535759123016009243206812745680984491503711467019058949441381016998467300401604380439070568968598064240900876013616010051380179253092003125399445439887055848455597691003471703126997208569148177807864074443261805693543937855670145502579364448335965150322202877013225332606226461469746092930982400601307569800075902017460888664497811383851046985452413498830882409208414637486610069328886023423511293886395134472071278484797460098276709899701692264196159220830242058492677311571714569213540259613919849076907791906323632048217880607995553881516096569226238087697752201691350574612430375104714244127362479575756028555627496341335129900794274913108272708219581832512808965813071251448150544481929301229564121967082548927085831636973508021433968039378573753879067847277298048244524218466037916685862489439814190484384514687016170748140111052434941671747875703685648328360347123543839606249279146070170655837840696842402719527960068757372019795085023522115597222347551717848237111748479793945250510510644413516782430391391291807023006684018344211101747550328231448272057577534580857990114566754402882689082441420243182836576106399103180015966040638221399055737669710836165580305917075591940219928572270794378579389163464182093845863143607297081015670072334238211151541189948295813972740583202158391920480116808177359128219419944086273020209314495667429389984000009128795787383514575390328241687417318017360353516872685509581979860449574048546271647317943374725129726841380927391389990476703608278766441327869870656672533484383427333548150056516852971823348108292538852044929674939820075683138868651401244673237624352600078414747639948015289027868146198511710919911578309695206708625766454892487257478946142738611545092796092566413924774684235985108487856409124822397668668347199420575840581132627624669828376973034301876077538295008458723048810175822716091854954920374411796993087295394726947658644210561371766850877610899687635444497455427899849956501154788164407342281366489772439350692208344600439226256568839093279600061484541180767118954108090025268629972099090247726438191531700049884196804298334320694661353408556324300457711730367438903263664923592982764771709122641113688359565081873931339370398847051850264116939870981599942344632314034733399722999123233780663910752810417905743015064690016237434698962716693642631622554222349162533803996470523640071863303083416045573054239124537886664622276491936581960328957934086321019104589074576690913732377373166113473852758887713501601478785845998538823195397381366079937385548147089028132339388737408527041576129912215435118539783674495658394196910884378200133178853869288442110821808109002309166140916402834182364542534754399561161147534957530211579689615972773798345101479246092032564236033504158201931607025719553271850441457688831006263037626712828955567611976923821714889224335298178491019856676413893935540033160942010665028701158987188109291710753678128776961068339847034024238155085814256186371706136712510200625420821208280525562446003037965144263768771660695778354925483192283346980064625672596680420503240284442114600908663463587184445068223840108451655730562239355198180264126855119706958459361256280529695459240721325458692721904015976826099001034399275879352378674608338663126373012277276680704751242320919409062483945111477980616774546958315830167993878445949380501536691728971890867706809180526909822935167800266742584205234219228133228205921449595539896370644675853861002157982275950019983377619990604705295437726582334576774588516125707704390277622489788506454389443141165956918385190408477187527358701079454929852709013708210996120197106918257965009537392240980738343608214653745040935963382153752779279667364456035084250226074738126232612140011645519503543606255570847583649387062058851943066657463222396490276216888184594812870322341395311115026596957949313811448608437138495531916638512553591879513602505489523639686890681325038030639612563837752676867325343201543520262964314305556639956408682512208972663994943456479311613225021920613029756251542198981602231789779852821710663196563149264900236075112880951170391274120087839996528064156720466270238181207484060396865387006499341289563727272726188573532930964444418627375481746183620714146127827873206440720173204462608731733618655193097764747644666580197222696214901041507398213016616648105154032961899187524429955513618160132940895695661705777871492935704991289808204249106304369678839964576566445420391315317826234252059931892005294351655030559378116930984927772041387635072443457247910203323634176779239757639217376052242402424939172272638792167768278344636656981046582259187118310420016346789940322145132591531626992819847576273836421842704699209919095735298446192517702293871004935870854882450022737146309418666091754383546138114363383832853923432218830810766674445135614000180897216283500961929381685982427069630837669618720359083671601865753987331983029000685280282909668359113977196511738951443464567859952631316931244975313664060451187586397209956115434019444695141155428714827885954425063258632590933855745104284580345458228366396931346736912362540373362049109638926282862708295620580092248499963618171964947569308840470316530920486453883944329098333026287169147474223504368734644427379206466557748705585937933913679492236354052244653302016559107688311813176140978283554162783720332913403752652419031042756671130049209260014695570231520146653851696203833743771194116595199498257735961156235862904303917157624990952836064667450154139968398046497545285102180654618631578758027586886737735379189100751664987436852549096146802250237112923135704632086367777687716429301375207128795349405452974709153817705189163964360934089542822941827947914174680541829105050541790197759527749395316061145757962115418637620414034108775358423946085971241544604428151751982481999772413014787171892390132245314854124359798318489714882001202335721896739356664227589065240162645669522161052849078663445570087875437249058018003447862215828118465329561780805833307946486577915142152878590959441205244824865718947109756285183069370672029069865713994862192932993232866525176922890509481384929931326714637985094224783842516890021048440604247319055912832546961499143733023921352879600037661682138947672264301602144316631958785785505344439484924263543722161061314898590866447109581643164843584444740592374366619928112371812103879109454171339740888689573237674506033233407032060150881405773495662279319098964875793519343199747448006209808204750779802352812652754998699383490083298325378714378984317611588854494874340903608489166899674736888289863579011673573531461794638249045916836406275455712170337738164364637163875297239958356438679233004264082540978372502719665561233718797886154880258393613789907361498756437392458953631419555581824626107353818726454441836524256506560835189350774791767761252537611411881518857207773317176692675436575426695904081309499819347098631644925820037025528355774902045385463438473632241075515375791619283427046275910273430838015544516166737786858471881571003099158410233256833643727266718415917424438079427748527867430382547524821922972106140085608008391167007165617408614388701486779884922485115312355116145055619808630255878499754126892173382272799004295082593932703271403819684890351005090947035540433143302081268562093205706427835346812305866729422169966140554887574770813315605148888630751764465734115931171877519774709969669787881233438087289639479577850875779418896071940266750175368155440196214041920416147012717971651475070537654944566927395073008602696672527269391681646887193601646741739982318593542756359919630264167574345162787740499580202159733755397596981195414921819225126788777901790248859008739847696678713804743344919605940687482021751556409576018439072047850069637020725299847607346935799240444127278617936718420146748897483673831973400479913352728708236650347964194843775247589203849708825699481378602879242667335483739824716746711437763160767539697638598823927086662622823602423225489385011603987726310316605429811839362114635851867464980282517169083484995340179280269929866920004984417544943545267561656904516369164961456781406003407870680718037884666194300123862866761012035974438062999601989893704877920951081306166339944790679002497157330078407318489907496880537992404453768621738777413425875759450359190268464710332772427401631064187349255487862870385879339132876880691978963163240465840267747613724799656252827795530999210593012640967036966157050389483619113796738301125799582049534469780591944177705074822411054595482070582570570514085814800232533144098396399937834247559837354944395339818860884583851342181925118122716519033022107528742176817183372867638919679523243696076931551509039763391543051607302174573821075202899951917047110216112867767326906425473478368264579833418483080116609610836253467106555909103425843094978038199391493431220017973915042515572916333295786465171299980517358319111925623947865647476081381778946178591081269794092494385522005771035400712891407605358372648786708406871929598072406989539197326967949902508491527100851227468130100151819598300620988756021408484293209434653920871988981030837632249999864176594106521229094926689891326213100506009539747033719451636878617282864917050598553217937248860366550060213706211241086005907134247031645412368592102507230079192899332925996856535484862720168415650266743017032104811562060035593024617849445326307753330312043860432071142791210501090420662812724705105893150134847669557987570656272696435829662642541109729088049262102790536978263867210593979829859064883303213353932365351633493226052260781155729480051523494656180300072445602936565117054104692723743850100331172255111971040541164487289588867235963972774712861725063486248516844986852786084278756476936227150199540637327414029221581998542632281467768336851868138118657867566628342421067260651021489984505966916672134013638782197141514845338370278919086993384462875513255786943761571141870742304292183788482087637700603133759348801850269889587073118661667756125066908484170104511148747442144847515845680121001524289260942257370531818970102495966674465911851306411433586730758600946230609933801233301401288792947308786721665106054325494929074321920381660999284889496097219852294676258220228106035063488689116168015204581842831748581478348541196118055835830365738674808543444777011579233544645582619595734881443352283687606263436506242557916032541187809865195346628977752078626937856924585584931604926562597987903684704691265376852041145008820245421104716097501365972368434179423477673508626497577471973506872840330296210396640642790015710631601815997227530530018188777309353291012841784964115465763490134358122527785306962149657572513985918646507477364867591409574401221847285144103241114107440698541640909531940298524369721576827174891977000679170947470714321282900377631228613185425427014979783255738846253108035461404005720755327295771095422754333771450295588175101724916732862785716081964711805327454522676446572130185883318203798668558881628388904545917527608097433709231064137462574955202738148022709639807907978960144986846951900392566244050633473693734645084436746510430456984318216636869763680737994074542796797122498232146917800990698638094232662976410771833319373493459896621056158465345049015300954671360120419841440947948865177874121888975648010597821683896557659417911587351430678238023588358859275860944691858187994387273285108431947190944326514115286313583553093505491017422668873261578005316708254979468915119985354273343192006344932863263009745765632285215270615953249434825352527793285869731715280283656392871316114424246582554587506942634958969130474448976778936134134224519317304995462665817109948494228066313227981105047449984932571838844089822883085873617027106287773475318391972730972996917419865248733302216802228960633910170539050038733691859539038304737340449737674639961962364614358816892885610213947313667372600465955551428172900948308926373991932000002545565190594492264936827453573242836375397090339618171486645312480656902820650710478762582824575667279871757443074642099569390916325233973630569248344791895094014511552693650003533753116703350236368405236468787441606164467574376650158661867059654915405079765442069358109437084135124973098689867166503458038481801566116291913679397191396396446455235042969870084989191473968311736517329990672365866415646724662108506049168977771341971687134764256114640727555584724673519203682291764177718181075574703847413164340722977761694213891395225966549287216122386691932695701367820170704860858067313140405631072823275651781772539235741911890133406506088736630059843401703000773905164738596113905197169401174100465615514889075794228669350005288010267105529913910258873774902630900370259641196326025944123468749854114012936233958032676826985566078300175183683623120415467858285645654809739918471007607444029826354350732780790008875672973142051335662396562156624721432592941245262871734027222881801688175718039131282389712999679849126534815473170189235528703022025672436347461494636382696424230404711231299307768883401510368184971341950927213822134764895793276431197031478414394383406674862799373284473507642339243307556746031118241587000359518422787074437964320763990026341075304319224730724625364289832082065648596580297680711066506638423920830128783337462511145424681607632253679135635450044683502694171685588994303480281939114488449474521841470651131463762951788339400094403165313343945662434717086311671237359031302636232441653687468768959835265815647194815003041018420804569688739683937088940644783931778523445352427978129370733777311701466553575001025511278685771526796119470499846712830481561948631934772560186463582399724970601237952516193704853017848303326600353296196631608663554018592064482280810599053160118864436533883551899908420689732081278842722818117288566432244954792068949600312168019645119237565191658305175973283057085201188667434857965499273496218169538162981498326919580516764809754060123120466930910413504054909596179585018313286631251290396406936556025697213901842524290122992670251203587495763281415483434685960752465095066760064536415573646322531835456367921542337001179206347349682084726439610902748134274704771248842676324484932108727013563334666343789384349683038790067205004711144164520632818501663137327229261403112432316407621176745005500144060570507527046191005269917308740525297596725830196506362265260605230150350472798914267060859177573317759772969494187927836445899142106342903284729156452518395722564614539873037997354064742905687004206967555513523934522768328065934515081306982449290044672829215478308980996611469415024679406285203076882543690524926322319201354620076216290467952857691004232501027428379531723095747102845565564395414321880807680410388851638752519304642315427986530757747335995221352577700202958660109668200440934876954292589180629336148846527404819773058605917243131895923114805813097773491869226584445273491442924377838664024645855699094917755959645407799051045270701663407438120764742854880656866256237611811180703214616610601742520733077782902704737619958975693461486160854079120774081936251272439748695881815208706085365964825459965086390232753732205089284375585222393107146754640341445743921346162597113878819245338505647289696362856708939107382652556488179063940398024269142872265587991052936840080581792908326676982452546599113390119018504310628539548676835054901939366335947198651552742217429439208227744299483971267736960198367143932517182266992597601540621557175310822162270025755648126068181766581600540345438920880531227889204173353313532261773952092690629438511993601983379875623598609710355749896859748466532327075324820536348824246291679183048697756166573426685562934131414699969898882349884221576909888396980193301308851364569680586589428399381560351777533271480026515009406089271909015752226407602851640362842402820873810090301437321127346816708131447192926654755154983639568333206255332614318178276865104843667139645749057648816877231579896167998303881919874186326840672726195843613423258367460549056497277110796348136623902091421778553350842017910211459062054107303158255002965677419739015893191500328801704387648276552430547644141476669140292223552857732806284220609911134878574645524954076895804926141503793630077423254846093341800872321893168213190491013259671907721883688878252763019189007734672985318004884519775587090768095759657365897422718420507746248109837717133754808077583087656239717020740126321233434392850080376260397707837716550877060577219647962965185169516061645513982317826203927621338283167345528647624593372267736753892777176618289084165033085253595287195798981945930949805755004542279067573260961072723145053604585396198957460504747498522929376700929709415980283779309648195146651068452209909825726852462565008093712153062634713394283653380655685662586677774014350172814574347170668561306656924151788343440377060866421550910535327474829188592383132103287990999812114650097067200695136050706051198254573983052890138117388338697142445122214261946434588821656354920298825241934211623792392749187965490916393082798280164657786731471945654368498798858828800658962172067968389632445361977332302620762456630162295489387861577949802425264316750108561104287149179677366755664552345021739370791529459339011882768627439438773253128514231587312330295556154727018221401707277301261841240195037879373064606272221977702008665288216469556772652574309844073562202424646533641781952451159940902129819697290342761556434944540578181448426882157436834839447153794520925362019154450901972122942295888041225701462611351305684369469358142101962330428990882844446893531627059566761549199755436762903067994487866490833851208484010984362180697762107683935518472967274468406804853086397919779298272781795414963890530369697628627489610470511734246590382819186041288163573995663208627063295785560531004553299757074801174078848551281821356059541140475106227020666455390144822109761794529160174457017802873952273271129198233044047279509311712195788664959342744139944145695889108519295942143010499479819641416871521928417787809600741455514504921255829500173971460664234511131340713661484904420533659329549543328940744393489348032551376659029053495145376643067755522746535976274472631608466372378264978336353509301330192376006205268696566262036943315355006053131366910683148952082254544026329508341154483518127704051595187418061839982453215565003301591277338123093991178256453631569579469604031859738052410031620436971340525031211181059853871498859137541034015898709311007317029428904473515569089590313837619150972778969085362148141982667423819971668394154753510470946272489720423690691799335301563189699038143032511777219549330341663628932885869542691653529824306086910703129145902638503461461629109053919807455640155545149376931290838730483871867707626139883133334494720665404223903842686365716664728680962774067396784787672334088904144419662987014815982093796297520164468742868951264391383253404219044906324171458946103671361683041209493871054857816487350077295156503128296264864251544236069559259779147306571199213147681640188511864151683210647205201483327615350150017905581454663163039647880166444689353768686364173797926149873237197196560284729969660367838398388653438838407488270352067734528369626198453794590511647582087438447015326004528505683386608954371467380156521064251098353089460124597175947096720828315421499919835554121429142823220585306355485680005973201310056491467428708321208793894809693663665554576760262411921166567943995954955037994066215249107942781193687124265956928789316569872424990838236300913405888149358419604208145222092877601583029992406055853635241739449122050455981956920160527533216285056207199769491788388263762585327960957521170482948896056123549960375901190638621245843391976796092160639606420524489548706358201370202374827626430091349607986435000051496814830841708529367012822067296179244465499357155054633170137080459546520644311594806417571598484281400295725913511506437668144233878165146107118686967513221112852160424359572453069085206764865815357217335334408570713836847802088788666848200197911097778383184593132475664680197305263346874420336629060094380316069927740649522345768252362207747691465685367830449353900482603692403330184579392854688664976951988835375420316967435299371375102345304391040506542597740995262683511101242345059775573224483426409258739819868545786821483581341277169832248127766041547627376582248129282716733124639780829469692185820984615315824401028380279259480720830898112811050114579996232354622982420886601440630091248387015456667221102318407262096718840306523668379107597478569100048502761311780261137506023129474705551003948437864488031799445442054865856278030042860281429835838389782088566932648340999358519574933011486892246913435987657598337692555988777776633894260933336388138378582345310612767550115103009012203926202659909023666150492944134782342179359783941020459936263153295006345200152693361155682700420984620482614244220720005296739516297483543715873614174762750099998249122048415550134481585709505640348375795180151053568190808989937773821679577610842152702638515084274535976810083320330170839687427904527371054110538334973034947518025517819468250982046071896153718500222698157331635183592471380471848410632280092458970922150227524594296279761571990242782537038786146644443308510543424588777999440211267884122322692884032953052386552665430612663232516766062602922791297048106078872148894504020671107900148472392256104490379395147038960221021369016311792411881634890842246244606488304638958925438270632858155711429003601161664475154625532257051814197881623893274880831436477461556835254431973446327377155914744406517069053652246130739323941140008849680141932477836997695927532927117724497921697144956675657907386980836214252184349773150111528123357067288185130363848511903741313747213780869810683496264477154957828879487085586216414542560638360687579964524271247449188702628450634081407701448021230470493613645871467677068041568732598208582888129768081664560673974102335357724045844645098184216730697016899122718071984330920113812216527204005306737094630277362984232625619774417088540689434438057607549130603772993573142132413325546859663868657143520138907787192686386699162206938640122256494978456519358558669725850829597981541571249089615084851475448936788776712167486101054426137312374670299975113080515030867978956109549959068981165934581147849707853104329535725910592830938472614170959933349685309071460588211270382003988334026900325102128733178059037167541965424283667391365318402221472684559420512863514933098904985825771581936495565706222885536725889371109832053774375217094042434472208063382644916529070113489412927657345848958783285624611514061714039997158533517541428803403507378829120629272142180845706183936984321551476961567005301902158737225427632831808899265078819180992029640641753716481542631873917738217284913123641760312039918500622826619817090307545116525113765811808129646857672535018795987366015151023904536367764620222093808529621803596292991077898395582926207941512605269007659323290495064596951755097102723068710659760953244710553500539245016508419821921798262412789365271438826340689484115678831943636510048898867366910111258498464747862794176970553474253912714442224987127173776637319214068532419824574021840989686975657000064822770487057947103025076965481037123850088657634986765610209755637459366884837066718337133054205644881850198053360140988583617042883635982778606119149414310560894797514369967878391336554721540127334300632218774756551788275069660313215127394435506908001543952810067779058069892854375479850399376641979854526185875032737401346302029918570797103845767641158747101445444454061599619985122603716769066665238711618832126422392032989052479714611543434516428580031203443081589106860987408814083993457216254951516835341643477795644387819639182097509564131050760904546681381982126455280211681489099811431498986839937032060323895560426119797782142219230489858850826573583831172337695221742100007616179254141928856774246402697434365219880257449050394104142618889928663860932031626277871125722024760108116352671075575123501162057404763119930139069707857860393386780007632969898671707378365964178748218218253469008579235185961389177053668158380403189116088194145544571922933319895714860357601257706011010877919668947692742532337537984867666717353821665733235044081715829356037597460061053030692934154481947442535847960275613396922235309586090901346006602955276695037449187735380867306966689312280684097899144288819262750043151695925988331064213797566160837422659938675770527557869705767278028329379253531899037398289471188232419693111358633294550539851872366411189857583732471380450360406402222463788500168381903949610006140059853064918644378013045211507683334009957101764104188020318703035799186189690551380090426245921167588766975098055512501050493834177915690526479123904604476887563592667459294840457859103655284827795610857341094552868212525853914910796345986465153643795042197066071845591574188510662436749672019658994910433760515241213523930678842553268963619860040311575734098650791983591190102570523041807812040135481741982694275730010585860902279871225999623729799273729078745671082229051370194347592456915866899645533011552821744498999976776110736672889165494542265651936445459084315847998724942414322564997115381528608576009470350245736324554046381761249713920278586743497741924518552293731723935449351456694822115394646525758127822679241236746072176947002229229619998803136093621993533186832615306053918570247243171533330027452218876646701238152496031618031269762689558449681091694192239859316081695119394820950468907546807440952707438975114412598437638795815735898383357566845398093804860711707322136718003920007264771387938650507527560060929002109086463526979270127852085361916335158464951029844528311706681844816301671571631637500904524339477820372188274923245898505689428829647542334234869276453990307360145402016617566099086415649175369327830455241491384736516062072193356190612669335725280002590415953935890254517484637370260926012100214496866269550425484865157594414142393577692321720168403972375135245707393765594756686197939008990304989499155722683764959356149616186518326708828619128294280431475054939916144282916586845493644099811779795836410509098977097608418034330949240026790712064389981826463879636041954004741782450701571746843035817227657479888125472782473931412631641366939599440526929970761556608516357072904653971458418361295580997370397392659018863933789636466990067786567404871963682128641147402282523823338302299023938273272449643530257784904732961615100868368690959517775469173143859730308612492022042833652291433854953473680433544524188630153185278700191931968880905783839924589412800598500255329655835630554721744523599084850375548192237644221093910679370927658820372124389042211028367752224592293722567807879004483660398082230482595115373297618236500887945238542672439311859572474707729664797776452284334055468176838726495276530666856515752406196690285462284318784866863741930149521880074321556194415435351960076191827303386083675351042900605871972911014136918999308272133285379441737120511052231042277433426858651351686309950925762477066186089103807600838539889042699294994517110430585207947485871087548594912604305338252137231748784244994590817201738320351332519510401151055346389407252982361394844572629831873358406288493558126095335348588240882986857822535435230502527745894116535078791600983205836916189332702294525927009901513707914445312926229282914153042380215046244950103409549807550517307029270784968019241377677050661404392955109554939340675814828786305677695126818684184024411539493003579087989566375606010914439045255642808585699618529700760529788152159141418264844806365430262984816616408274099913593124390012468835634022931887311198266991080855053112487545011291213675699488354733627245431572749495749861611521499327337111423812955258089652788116389736132725389615984614180786343924560660530331696800143178409631752974270159501579397409569455577486002416536763366114564315124329140128529695507493129491723616199935754811042659248038519862131354964681913352656707891096585330081050369708086884749460486871299590228468002185855908119841667098750997316026154707404589373824847635556175870001039332582811782860721835374802027623258242359509188594725796454429628163305676739851152638937864938048173607896681058384149986780090476811221039811794039697408646808065778188028823871763766853378768635267335789504567082320968140348829346038897349791613641163916184801963163375867662161584629434861968264551070543363551737928934817845875100325301821194583187477883602050302834887863574641198831599405157715191875780484059922979768346584781366641505761121410054683419810865266602162169958084989421139980540519083327625876794247163926343063064508209890309949425250809395592219518097889552398730305902903418407773672873402320760840297576285167351227075994530495036609871069074746565026765216389254657803768944419879617284650601686273757809975737234655329121518153207503752251220732197558915326486273949948237508015639670210473464147290821284478370735224761251587312540963702547505419905616429717522849363578274574197643776922992925181870758959509119796023175073635833397828934737602710125681994071553382566218288031424768064622281856941612795831226319753059407879731184845576914426720928409978266192581359412304372614030766544227909208670652798126752416856741366197600108577762963211374985758216069422831937193846706698796350743178823656485820071600770567382756777843566863292427739370536792433146901039107931690441794110047086854608476261175801177232914896048891690832452791654002471350057628035558340676155636881446467259569274507576213980926536900511136430698022927393243432129994667051134941595967973366886989319078102546622922931779254419791288937403630716833260939622418116207330230628766637033789087947810840102434556303042838809281639646542767940816243420522899291241962569230856408489599814506914330219603346626099672899197630471566607141670082554994627853669621237217861828002361018690958286505643960149121085787079601312110475390960204787516975847368065850950017070779220872172766944356641854259795492105695171912957644902001789882981616687524977446931568278260979322414282759402904976069496363560216961758944303259240013136603408081488370116004643114812029883598062232723174180453421514095984503844331484011257676651070052659992302674560411308806552760949975506259480452751863062264987305876352113897661702743127623438856964641266406255002726760613594479113772393443829326041720124203195858308364527739765108198254293175890437329732255972554292746970726215365099680862494073297126020863577017230766305033838731912945696509819682641386349888160984528472685841079584498288175857482035469735896169934532368788171662136585992586934503721582942945239087778486152848757789361644455965170724244041228361721184312765877195690058762271460862782067544652361550864640881979549429808243414168703540571598100543385617853480383695387267143198656202812746597738678039623753742198156342435624514396272241284890492811966221784923927302379785690121624654281149772046330770628964760082562968572980397166375754376840113492501465219230679296911442618129259023009154371078398397101093939753029302880542823852702373773248312689202742989574949415620413238050146647860787032260178722493676312907479245174657176937649504568571271590742406973968945272767177808291897461452134297757808265065858295026669919262668951453579671394851511694029602035195130907589685117130134377568280242681503901705420230158889828919730210402049589519977383621261950426459231706006004344558598215602242675328115163481231269140333506174445554429817638358754914332014147684516646318415800412279076812140038565072184200990966632857787402597604976751622427846677633483117266919262524033074533105001385829604187416951018201066721078052542328208698224668079343125579861244757488363636916845456880230816078472544210988126682065355228422877686683432411346303613863317212389866554929267151386404757173854042108254764246023364385158136604644459792230568930697797974144138261963588869580787423870282789833090729574514351883421071803303107396546762077110902393176847393966664076951904318786133319869138710489494587221393354930995543247621450459124378301384806359865179123307003979450296595176653639587508656307191036491623832360234098735921615225761467785462341519879569833704371272142225625202933175820242147781016188214756336642576641929175191772540223647606361038498994952229449685370541692869640239296831857814184363936722886968602685983105778315971908509382552454717212122696268332023045566610077226773192653819909102821009205600542665956149810247068774155721876554750372825733562405149054064087646998694333064928108038035451578963755782771239988962952736932171977779465065071456286179764932106168360881573867779454950610474359163905579880331848606634493600318709750151566945865408211949072987668513428525460383897206660610168028413248641821491780861315100385938441844813748938780202257945250527397786863855297968454922676966049067572674034568350106186213551328703477566672159022752398380761702936297661485384374920689448666666534927357209001714273636352123582094310774783451688873541562377452694598081885157777949758472034341134370292262923520376207795320437941223126800038176528152738748870156015895269310052363516368630379010606263102728401800812755097615583755128438828751205603711771378915730017981214187283238144967657943504579312757404078667285655926951265113071358932355737641675412148587396143980821051344604825163952193918070910455685849383121595506360448285443463551149017749274646355935874791522800264190187008079513109452435895540791409628958289334801762877023091960528639501474244357014831208325452479827406362565577426116023409286888845249300134264536978041585266744284398054797692792748277668518391552706217541345621181385951824101367503980407677647830510440558866775994145823425210673365631867612578969859200180721306308487039362480137549941235274951543883058005118199566506170660282941581177598698502923883378168836023745216846493096414707724391103209117165243024428571112341096910764322996602162943274081638204301528944686370860674845118041957196305386464706217243187880245228466438120201950297613217478529270483318069923777586202433683102548245953665849263443893320722344401040669062736541062128456662478943995472199515517381221477808227477444885364234524175413265105780857019224193117822734014085633730598055090929745553435596233269131898980215444045193477588068069789388765083083990890674257697354969765702098615909056774798174447648065625899929271027521004163123557115812211289973786721622503010048010458514637084513471006450070133294480507105773800505761081098121770719268964402817034055336446005691093182554080877886398543881804117690976812206174982136373101968336739423652610461566650569748536335284943607046514745049475914285244116508084950514920408117828472595560674801542589209690184468582365971807031421762530313417419796655939708787466492584046398366268587402221066846313707444025427056611919852407870052626032473316556084799937184453103077564514432283722985531340422411251370190583178262190632857352935880596515481750345254249542773883134872059475810477715640850731798708212865092017935900165499068956742777816687376744460394233974805324615082760818411822767501834243737995805097259867711827034056134831341242729957901719635634450606690716998217092644191453924011893144734859141510957224846024298487958056840556820150438130090938899705794189682306968473830390453919170136371002942392671230619063779074779700227118798482563753733522177251712672124228439561985085847273654277157084665614079630893727268487254190710299720452982032196980087463558780054015086628863568403518707893386372156930542383841110975886793177193702034297512229618609839169729561901717929734004363891819715416419318627545558076140018962654325288935613965041221834641558206799065012903529951530670811618937955948089713486229735096951689956000602309152148560283595416639344119423427212708915431241511507262322708283100168951047957994346039592777144026160450525622726671611576441185738840901815101850610141925128479734228022895981464007852108797902747954895964702764935558172476922116179027528015547917961263702853197644342708321173751793998799538194177299094857175411993705551734017806659519486740380185693572093799180875008719101209775326177441597763641145864803601160974634901337972503439769748419642903985706563524876185800563718852378049395101484238257097286028834678506468004780991807313092330415795412695637426614181122935697704056710244386073664557625769599395047446539578370325805025111185371120756451720407041521062357083099508490580268591503077075830971596766645410717203340297681495536043407031613187538944402188069037193210211710299786882550075312687468202873464717418161619647657413253655360560938134612825900654699593244852152657860133295334639858577674041173510748406170147085557630517133314709057358769588540401223184096944175609816765903728359088841956428525800977978325054239840436293610754047849169365413806875501414705947457926725023880178763437030389121309875106784446408327352687416924434454712872749621726753905714946802137997311354206295952477335769331403578880495132732001671919891458556402715595601257888642302216823843540990543598446229622352498331648031124059612881490447375556122131095104221664972725316328044102028040193225725714261026172189758301283326159595156686976192965720446680702691953188138574747709134264277181872084095256437674951881806222606332447173002395499582129150659167938688658923819663689548471401007072313703105018363380247000706339104331498905935398562646602143438923074677405213015173698519391138984550564183332820682701250339889988139485995211401844726018845851651214868010135885841574001992913756999798773321521937598536332498064758428728010761561072627438200428333904484947632455869980831303596074846034031362915146548633371997385495428616018566408513436671721243550827169353680600414413721649912427823190642069231452359174772473807992143094446650674860015283250262790133819166465689860766490726367357833882599199997222196326411135128048443298897752372535567282423300919231175520099290696614928138804008581853093227297772836843336364771183872795858314132401558524065184223009959037332515169475399534568169216990473214634746130498008888587355532066743432917309983823796659041001756592152329241003559451683192421885371725621207366347262729007995516996339456108032387094865326993281849582688406861416114526659218543367891695498521114931799357376111155559107310451604436416441889608159232476596702704829340352959371228378347550182299860550670284619933268826673679773547183350549642357857171217464387673074071226471063396537654408835764742677548108226678925144795111534748878358418621988968169019030016856745357116992443805508133083854718865962432258945404211579616714080804516715592258925297088357383343273434480481608426752930279160961142546598797667878113674022155545396123534595679125611851802696842065231306398409292732323891051613014720397301954773017067880496613040137327161821820402463099072782249164263971608977073465506646101490459996639192780577326588763612698050472107730144317445823539272917365843597836754192488985889783054012143640928134559834407668359275237435650654152756247827756999517146727101771123765778415614462587142431697171064303818612002463322256469194507878203100381545706654830150333968012486820526932644344386576418570030233177082461863779652186615388117066039429550392979467618386271056871477781970005764308222129457392820052385979776610707432129342619015109948350845553210341039657950406872387243200611413532991484425370220398681872552324003382197051196808715368033503699707891137494574863392218770223030449676560595716755040357068186055473413545473431362194049079442744733364030062552188552877414074102980063768028100270888295423520150677738801540705656610359597652157264635429075775154902323196875668146723293160333562485225440909328283650644608800688169007627781405402797203548678193898045152348539205156934826462772835979575351429343953431987285094680005048265086025133952212949411373198070354180400075882342742114931916923638140150995501740753049923743045613811430724343117787408010923641461157895911498771591182468232727518338651523159216100567085937064250342002211247010880152439599523436783190554380506596395948255335061361308604836122555653872782177258187025042529880812437789883349681967512986485706295773289128707779175849189522376206562231489335057566570760723512354767164991030275408383981691245899599260742357455935217544351352562289854834061846168407898025715014650742912763876310880433910036631973682734246676123537780102573427150890461747282338913455981787361012770077483821562842674363890087963667417207305496608392808409289748199459556910424744001435852391875654116921783724404715657788264215225269307337261374116983814639022043970164076586742441040740496154393150507009787229096061943835744313462562588568449165374851845710017798286208520888968653327170045530618274910739729244232662585779422276490454513332949183101037403828508392649847677798703294485203641515118154371425120556670998044619210761177409567376977524687291463705933667828324598953863734978085032718946399317611618612304457914040968581746740920631101836062104128436339530731130499034431186371594788576514701621691254673201281377066696461964724612547657105839994033495603770227757044177709327579186136241500489660044869958536513935538947426462232559538834618387331534230171282645759555227800407074354708965607880001871648146844508993273421064059905699223765354818536683093136418641090407482784820820915625827029609020231799219940478827349379228363823819357737219846431697233161398608553594642837020843684149777015021117269515826112051798681610523723871742778005190339715894894972177276071314850530434378707435917725834947112303936233146729070846236529907633161660808752988475745314130199356062664301858918719918816261829708336867126056184506992621415796755587404475635942534523158526814697776189813790005674592159502014025729199663321764665178525083080769203849351579098716967034908493566861026002235694621968884354362879287226102193622912053093677517763478421383053491709015395425185046571177911524600190161395846640275539622567319548423230711674291707886239418983598756165288453836546094724162151280181699370093150098195990520747130281341687184784265986021360035231026710441997841387737645316576606030863102147695052836210689956208863375682319006332706702375426652368924533316158856774668032611359800946378502327396759923213111237321450407130936059737517234959229738738204868949424638553901905866762360313844844240365300803375936442090414242874251276131475502622308535273017586813376902800682892581930763200975449791272984484108448288441828139808502544207372373152071966895513551653567178583609888382555750076945730283519968510052635729270227548201642074902796943585766854470544110049527643890167033842179497750647175417923638403453915843249543536686868618108031319558737439142611673585493763301057704735584405983572972058561554385768770821561881385769555648104648568926897435011270985315210043430490545520018548080047101914359874607572607652005218343523463950491563699642319838287122267976599750387947201005575416631099981869080635681563873719590679969992330420878250839747780605228034844252135949212361035384561455344396927192502429819718187107042311007349322626076055211568883657243159975795931642361940728538952379651701568003026367420484931904097860246788546699984976138182102447072861747388395072366988573257250559266042430732945224825024419627276554444232202642689476174533917036968215994914751502384359521388174998686466551563318401040697937898258190416992001755264799165386350774709816049319057124217134362519998138281350579023845197876400160042384284096033158498623331595866603562618271833279607527267052988848806082866331287159535117242414180938591692842588663989141521942064788779004853168492522158274138851051934101361504801434150346562265161153264586138031024014433722347533019062724311182949255992602635620967395320384110039104780941771867147056554155440393498501820994551277370752681362680134527364657961465774770061263372520643117805326446042381156032434108809666626418973496336090899949283807624208111522041860531303935565545938717231691680733642258718099246432125753920396256796500835720290977822354296500246039594438007585226566842091065729572168885996869152045416301923681534562615150675600947242982404731330150171194380560066010754618151614796077480532072719658149728984306902357437323770036681884723776329464139898187673078183874590802595575289981311106090789490220911946025060927798629384204957219422137385553003663424698056153188596833232330652267165848774156167402304695401942676501983475456673757736650953921913464431131741431667481313291784476564348838729985319213672214838294884162963340376286008416163228604766800277387344249432928115908386481802492697303236337581237389402893267482340378968440565575105186052244622416849046686403614929133133798133725586584365306308911646049739152863931230961943393282562641851528563791359070099976266403763293622303379600534011794447158496041086933335882715438544627714255189994842799092591578167107059193957856364441848674399903096453967363098879858775089777464806044740282172356274225116653414485200643454900892860558144044408751414467588953397729194324996754273153928217156069703016173983499636698707339898745679193622998038218272003153775324286702968671089544226578116673531756024926416480506214261100809554466584541345335347149166065806490331820284860739607977965693827917777379487296573059578111772688430780484023372832318150122704351554919112616826659094853815773866814995870800595895205663932572170914930584667351081353666324416308835054549408077000830763084783474013016939340270617496626101002061498263013940264467628148654163482383059606194218969750894900153133776343880149894897140688434062520746344290708460404540451451887007634158162090071618132224043447755274000907174197756259241641370989797268045815588893611501841722529769334419544771753287658921317883088120719297359545798717617004494496875953532711963380774297184259474997995478005159980234730231854285035594648807860061648503497982728769551687351416339674688117320459292897310193885787735952751074426782421589696575942627425231877916820699313565535750306449157027322770434395312334654827309864454804066949410733969173053724611405085716127726455704531314620907059092420786764684463748246628503160325216451565399907955586441998193569100965482652795671648359432888630534654040968098530629386244838785562725111615017830223974912529423496928908221412149492780243193477857102815512930024734829191581233550908885631265711175296622957368558507510749756436185447866491446302841572116657492877073184583549527342796963195094043975619369889966106397074951875825194723965121298379984869317515510866759942748425864565422654180417565812819157800119629819445612421686185565834096070599185830237971424354340108783326692724365896240512311951079943530395449024149462255595687983614275208482865239669614956320261032988515575605976292507095366978133919599233430682975586160612231094321529935423186767026433766729731578035841992848674833164846926434151095263894683601633325229792518631796177528157606481442982305400231161426582822719287312107253705135650014249937123708508253196185996327629388689887837550618564321874631779061969892572790568392330217136295710515115354246498347188319766631562919626672104095432209964065877883363493787003786341164148282032035014330733445991982227504475508744172109767599080900214671477232523503108855903500889465242547600305898137318818146704625536027283724568722422501280575593820687462773725527186980368581150639062053448612551357138330534564078402468287921212727063893367426118085424992009169214809334243599935257228389526323728763579553939371884891997032989365961141891040876719722150315114621375411525106077588918235955447850673141872336284749049190510857924265312982168241135187115464342256447714992112918455442036498693480598186880117348791536618085712984650249485297833807281979301722605537790564148208718790584859712754129257620724401488318091758662410563316975624780124020369850573208160744178659010998234546618294925226100393357203255565416342466427089763947203748074518403656341947911565029217146564166340912443998184646625158297473980590593834287261079332182055834558318708053851195364097989325058018449026536326364538598632059692255890352443207241515434710414388843189774340893611552387511691020739271338867987764044510191820137999952551001117421317873626733381202440333996808345330873259145752924031614461692439176065812054205565165911909342437114583108531775047148155399982174641448832120488034077180091647467251079608177070421344605675400771344620618970028715607622697191746843605605170124866227189637620002800704140703804246934510646240932732754207390407886346658333337413680560950503811491847629767711304976686512443690609882788419938014068528433114865796465064188198152048128634179200807455680921751317451915894183428809577902823345518668893053426616231012355895561695922039671723332319693851580323656308907828836085958326364113699653709332212142719570986250641671924994616981956071286994082337848923065065553470713537309490801269437717652278855340864435436190425852928077796346193296627564633773661184030744385903041523584777128538688706045825341362169260333259772615988243405560639909543651623693297844217036241259911124903446580265707829370490635360720708386454168759005051371464666274946041483186901703169038704570445967998243591052026109212022276095714644264957959574770529203015402731072052646917148920123216006099879782571370121492466859868776201154174566841554246496419301576143294181821905168881695976357753619713428416991936679402861064260104903653412504275633332332964960952015639692573671259201828185703210934361713310537225378072306032756697902023690422747171709204661067657246942343856288717242112629049539934285126180336517382062176834818425134020631197124467945830298802303862388549453467039092395359187972586141410748173602893154480049889954101027650468494276408862624734613215714893779879589118650545054628180233517781388255249544819550168578188860047099071564248141576024358747086846852617690462134066291204527756732470331742890309179248994545929209179132024118455715405522470047657399888339728023741052344820670885451305048162560553946812247693578911230213243841607017252302331399888079299359105908051525014149705749030072447787748815998260147955729285032807008017260207826949922530868681378301523431056888003025510009389767612860456043471270575372395987318737172158112637222421548295105002681844772860510587049895664631134132611474195068912252385986849336290564769415756220585514206662066673052689096747421816491370856380275447803731517225930336086087913425955195309620179130951801224078511067981500147328460177946992578152580697500399199688976164950375610144887651049517246049449451405289732500202460150376813543066162604407029584287553982086573112754486496134615332340677294968331218299065367069990138058450153082608914366495474172823159110635092490330438794270550422208582644645148691938679990530706542318886535531435648922747671440128060138590934042090992348184313101043366571764143701657365926294828185051170654735267490783306156515104684348803501739803122761717765324515888457402388822393015428231742588172448808227100169399352585623367261618110565181021936517173733442664998504590556090849526575222482011824928945157557459203889431943202338974885289863551023813552180857256930719178338819182325515488134459059524640510621424086933417477359574977934512204727859500298037271472284091752517913856739939876969282519286702607122483864295770141320646572145673527711144482425467698304292361503719115543337351443347412407175063061674247632015944019401197037887687756617907344425560005346334179780109952425584383662548963252699333390514352438589916073686893665741745041395343008232855828496701250546494118282104233050368486635800618146531436352299239376337703633517704898168019872078701569385400262480477926662711877038045402884212605516642028047848324719166451970647403338083583924819270888761914877411398448430391338238408833843916610851914645810659254203276822059229795469705546721375305843650395156079959606939712091000592751197698078434863786542411415108378428213171252633305758060705854823263877386906607815965271537311976264640332291781365141331857779916650276810204381679428021172038584146134951889091440386451266577882738320361417254380687462114609566595801935796332483138936788402424610730106034399020834651656413719756739769935081055150749449443254683574890945612052262858201411579510516224742584802311092663982003172071358772869198914845102574020734564043350070974119727069308702849670728007532635198213740231189400225845766568308505346520776538638844901466601488228764321231244308200259157754881072701752524241567665294805772703528308477462220803379830546601605131000516059228473379687124655454915513145832926281354348258286145986824343530485927089689809524568148989434716047186117755091306424161809882772094050549479664061512981625920081987320537786085023864349284416280535600171236285539980647487475665450406156640545363515953143491179983536430110226955313074215720966990797022484375390988711885790307993655923427252151002669473109402638798584784765094459341178185560440621453534868664187409603415803249678125052757854381889931783645219337940605943469495506442014831487628814557584915328290979909463286777058052909562016163790089613177586126849791632157366504247156110101817983530792592795079125865493601325397733217855884659270466704683168683951624654263863113803860849674347769565095368474971813789402930323847094840027140256584698919195866981433831189666430059979426124698883026197983534029074871474409924763343848273960447098604076993429984445328549011067197078516342503525974729431878142932080292738464171349193139955544960705708111713464304312624096720512205380531045052646409670528385505057468302561321196430805428796927654886105309759161867815628045187166610129105436813153065020515480590635802467494156258370002044734420209011611399945025561070721959853765979069478680344491120656699994176081897810614255257461722300265750022789175656560531433396819379718606774513193543963927703510077770948175936672219416859411553893366713795292021301391366762452473729909396083837662196740137187166671821189559182235615799631917000308455716451582059583207281256234147993294235853586137163005904667365609586839251355243972251195498611163668572709392757192297588270067386043113055029478539078312810440114117926225559081215093904064781381619292322462304930633266084325544817807088236510563439646380119158062786130571497260911418267021260332447870738234678100017700402645781177570103754009358149676545627406055076450227534473495300009987860308720979127440489874553313247988103478006653759235064614606025767244915150215073965537864961261080021072299679017604902147715964116367046491064994081089380337411682378501318930301482373463310675714845478180052093354101526349844426382885893139663241285219227085550651329585023166595848301942789678736493214535423409559380706683661756734242472678179200507522682137365050684708337631309008736950338517896411236373144236195357984626654617621122095863498918857641573535782294529671597483049935027448047488950081775340309525264698587665954597390944230498416817824505801605226837178561608211467853585249592349263619120498541512730451097434945716226528979181464612169408770798787499652553052746433175285542061424039946298999486860827233859619495600165225960549329159837198297805604849222697182421234783164659813754879104409744322802258294850977324624758823949408148344966789436497283448728093657537414097450237915831904027092547515826620355897470501677506914428544452906015011638158044925274127750447201353233322330707187887439567496693815578946131881265366256559726962249812442710874832534855084664403014656380402367940942616462219232217227685975401741089881482143703370802716080718479158878956364006284758730361253340082483340938705473822195132276345779427443136685927892676817332561060083952958931215221671178465982764590470293485981848329676310722559337098494150474910349598964736068428737206951376691549139417347585138104661283875656968914122936696340379575061732386937272255666814254261138400667115521778473056673789270666968430493833473207243336878723899181070156071872324183848483730783517376560326828565080880899516011154468085336774889046061300159727849272249279895777597162418843858072410496800273967396136212134149404766728795349401240847322475568058274979079733991180715987320291933191682947380465000422974423731195318572765150898829844788992052055349918430899534346532669915644236222126968307067691967364804793390854433246688675621354576595187451015502549124665195868910788796781269338711111151643553993563021581053713807932915029082768514956315019550286388834520344369152912706951374006568395044753674728037419437679163936830625811003106025148683163897158138465213588692442467043849125024805074985187683895923471694481042533469341397844615641711409520913476116060344384955093423044277165030863139475580438633505624688641080670804301906373386607049727157712619793501497650860388572122150111441508354669148216318587881745530813978288327191360538521161546373834219278661180715612937417230181534058743792412941500842187100355914952428183092455699952562595135900339314400924516890992661804538926564466980539770896191407614697089188305042301155040666635309119446982716232377623876041751154347035333555878816682305444433878581654144330718762755409131679896434891559912461785595988872247386317192806487160300309912971071111412735356404582074992976937632803201725500129845945064101637431158190653949160121739354519751549149081673854479092260018986630759075210281524924794551527434993521041339358819685647078836190658273658161027093483457984239818453325401601741346153460192480374943196183129966752238744970077887331492865120873033517566811878947892332084075236883391157329052243537020643869777123287110422682360312570863232723415369376799145998906987706560182171755516115922304970597256157599824649978553011266201599774928973716986021606531973613569639468870708889944349332958481446411092911503544999552310937933290998401434485478926612620118136235355093183421751420966308327699065449794836202262576663550322793855113772673707655975168767209432878963748108147417673445685269479576270475856202012381489639067432522853395114480413453768103560195554921003918106888541909592437380936703287742823843446896445390241531932086229354795909531466308511147191639552368453390481931445877513910448030527719541135075559155583519813757896595169017855180786794431950886001365404879709591513094753590968119746099863887090738429241191705693920074667345380976186545723331256068290665808167062862189722284417376982615756358626856956105105704300257827373872993178691398328804271312240068696483145096909019402336797188988615491521904465346890996064390226168450137812066497420921154187666449267474289690094687134479710727178480391354936512661969358758149476458484159338593317082401137096949627286440135358258599966308448131365833514876007989648778668325703423502702430783306653053844206811984708967753018752438498319731163024547533491437270846437728826074692099387532119077898279557718034097989666119401831620885358973185632479012116953897453801687705824256140448715651442370078724423277556851217265617690314085960767387229844736032376213545265820526066267291087276062273765275456549521337152447168033139254019662653576677712713031749211258332375181695807893106076160920492844674617265428891302900733402935219942750593059680449833125022529331840282621831439944971589681369478610616088377641947865881454175628827797798182589014428436240814522194451577025828143587205104526174058303711578363575134635506655168682429324765280286115149767268435927546158083178538854632205068299595176543603660570467842040210075828913947089529708900569833386609758944531016626734158826806853525227085972162435334246556755865540842769091583019950454732601319136116304208650802517335883221008043468956853206899103167257416256501694972638628243912006547843988582649186129868759288358809142703030898238245420306526055503164819167850771411351634072020902869163640150254741868218643235379110105883506190757197819841552421447873626132614089499525829595663756980008817827149533671039693093375010791385962722518394794988224487552314076180466262899618489369968001164288464663869501017611774631781529188279011091328036725567835070920513922706903368234559140508346658381619433738232071592834747265488079582494227576468351929774936777930183764501566397653538335918646863652159706484393231434818884513511874716910172345508680776874363472054813554319456745702204996375539862722622008216149194785807302310318387372321162961178460197148034172469537694351025984595913911058385889119872756890952560680680141503668756107261068350900381866984572680878135373221602420948744128381109449553976597824669471429784035451696576811897732034193901428803695106819450382033263968409160221375867812086335253265850187265885572097022936812539192491864213369441049249332398312947904323515760402834555397576743299529115243790260736733137574111119482311931290605010303374819072912553475515260520022899637182215738065993333063362051084287508851874104998392447886283530246350381352594233222844478776067007318957504828965355702618132006532902861156449238086503977807826617660189972647236338645411623960282213935681664182922861134404383541543462612811800336460807410871393213939847893448795369282706217917215950829209660589542469949577678385351813730676638178277549017172059543949239099871432628125241826684496116685627177728176546163138830213646600019467812750360202993333769129783662352479143177669612628241591719552702064736462817551453967383334018813502793824518301259325431236702192456637535596770928357463553509888339972889968009483045268434234487805648262297190832242612799658966106603880807880638461197415330949331782835247624890876213081396082670356183029491163694870498022238115792789241287080734304256933324900452754407122625786035764313773656426326175194368497072207646851090508469125187505376128044321139427175493716824335558857466814192006821369864081149781623210029614148183881217516093538567016740981348864456798688009775593961865773995078256588504200297995414094100608093995249375321990410545800408735676511484986862134618437688280994186633379123656650016737162217711792214403406027859537018184657960036835419990828775897435969070634381970275123423100661315745544562853854449537000079723676456646927814487451837022055436360872694126717914944296216635001084242909252660472695411499321221712124505443938262431270467655649389532893918750403792927856867441385894510765859517618245527527675510287850807822598191783604197064793319645642656445108663864546709456352025449495674658918120948213211913774366968058426209892577012647041413095657587255602120163510944381301516734621869231081423445822407014638747146432367341178695308147905194505973129963013038445824684017125331091413468265891060106418459113833380799343559155252207070710569846867722108246526980889249731445935577208738433848944150815465331036113961963500551837479038366643965567440580651480476703801892771207297651407999198659672413966674313727095012581692902201107358635407079626933060674199394499370312391852243030488965361581699241238825904300420306554163452550796396592880775970168191377796833651454206360248869890630415512129685922275676986685647424846569841224029207640907369019170763944151898349477584646599017777489418762731225766214982837347950531635336805624651254483676006866027272185446114378341903853453852671183632942085147363162415465097622906908886391358234443010897197419107845008896066063113658456744662979326079749380408970693357490463586103210909775878111036923727193130988624969432007010360157957887003230062193248466568771238645178590057602806187702336344062427855773174299069812293457047774769596552115603604883722349507353111604021739077980522611990633337843833241690759574886110887034809357663390390781345225967916683445617081286931667929428736823825630277178829862521655584974065126471351250530242441525705145378983802630758753130564970581002623309879809881298518543459023872809350825751016726990311737670842638089142433231997184507498524028078303502111573632525955155538955661434747499841484557885711160494077173399990567565886545702676505023592117345618462546147292032501016301875860321267236632508937499946748356621399071408297875551612911418462371430029949298154403729901758780325666678715618307283578698229860747474940538361061483410501794711715360189494649044785888678928205499332162405545110054292969440295858033561120708042944872002858624254711016717077518713297173429970424041439899344707391267531608763499746539958719644175991420427000573353430151838278353839095056750792528235512217503398865498971200684406331829103494972265396230461942310954535574312371471517966472389107066143825677412461163600677758712016529191105227628749067248007551712923654373504913137073425513393615618452953737952097091311582025884904517655576025831412679127744051334069479065119944147287267451812494119483085546090062363178022960190720089367650202584581756804247059025035604304364288246361572720838068882876017546546187923284685359592642424077338509377280658312438681425795585403617123412809173574324520715948545915291516516961241135924928067972365486204818799403091591027669618789977241229637523786871341501407853933612426710868748083026453746792819637133599938665394611370209492181809669582192687572348495807861217011632195114100894832201261044490574831179770070633324673835169696211807949629839860862093704340574793579598316782422982045617605646126101848525496165114992931871245047188729702697891901123177190215744262432060296670990253719490908044335258026459526433872836694893246353040937903196570512575645522288663629287496415213028058803668785729637940306825077552889039882994169378187046828915786306527232630144992285200048531643020080139624376837217336028442177937713683151598194700055046020473461762143308245192341035857648599123494378248523432048351973035499942934019479814475636581241712432825657853486807585192372482972015313053975474721185811332572017021979777921496794358490734020942109761320614833204491674284070013065659370511195431087058938124791112372072969247494586848682343134849606377507006544216228940213412396242906013884346471010754684141464026393127132292192758733388332336510435407170127279490381143597299370480621754094371602184385576357594193076254941487149244299575601271811681149806917251347609965446810080047402355573931086833511295635684985981813187833287023446434187178797196642033021596721816131318691318532662615773575384196635192941787980375615930094538880488801323896182215312869230690774398749187762405117615770831093810146210091554566241372593157513459195200581467043532978445815592660628280925328533252295258369230206011481208487356253820551282602622361045859716455489409819076809629181427439149395963511808103359600013164054566380170708087229577170486137165095550201242563387418553271462155133576742337143474874161379923379464028183618051504606217364266029142081267060279588781365056199810261643434365193110457307251725510739558839836535425119046421349225517468949821350708548290097817574760466047533885596659212960966000299744818791574158426229340737795509699529866697844451225268360349598469573770532967792908720206762387730834909565778452542061693582555899562277145855675096077580045097561609096190793810424074035105444159187201359984473684060543626056970423793113163325177318429815272158233590881092256056684519251768472645875190291506476797711995084867375371697260883148478588777757629983438416921453469469240639788365084631176136400215983318735153256262669883485353040831619283274775332063584284599645092755393313241832382655936143548562882356427622074847259932439505531717907037291160853848224319896108348019284992603498120711210532852352463774639244306996600645960437177452351134990424553630345455520208491615073210101381478422194237481429357088242413953116850688223135349414128016704058478613970716578803000491215723540138688755634748441092112122655281994203129786620118479214949404939532786639259687869196147901465075773727433889383822677391881600913861434771478801526202683132446074567485098059258175893902612399957061957027668072211608336394503982008247455021285273238699494224820558949356086753552948500260379874022338205447652352954629281715093121765171269345670033798203852028319737682985266614084133476016011867134659574714047019954482082826649691541253604917146595820672088062350806330972956080243966854574695220715705961579018183940367137922228635701991991414723393426554689675169699423755208092912241167329451265188245747236321974292911913536186511822705178550559271584904527298000787599325955636998519888781725712837526041429165352332382814765535834312138276476545499211955668497569703914448939817033640889233276293190800335809746083319878237298144513633910151158821177745555746834549260428712800197153439026658602308717219840058986547010267128135749637587859813785949832271724475637280477420809052300980098358096757638691552509827205298776938104585747666566506959822894996414653492898987980904060156695495377683874061826904285729599429229132000732627144297980530334517264062126118603648341908638928512623043367761196735940067668787368619079998601182849485021464108203617001406490939372075786804556510684029712490396251155381652673076556125501153701593101639917343201910795585338170873477645348341964378246526977762528904980441812688872068130051399690149659721846886393237397435151817747922789065845352633618094528185934756904182693336552446545490090621271011083395947685701774571935283726052494356890732250549812507196604141707206654334519454387485754048920608342033010683455974285134657961590588371101802884395028926572366196485441211544249555728736144255435641754070348986131196976746142105203890826810791940674506542178343100131086156545433034823119977604681689588090008763012272986433887190779251792115800923064899704197581967238907997738483558674502024374270154789543356852433844277547708977741931607018413742105125244519756505754168392140626192908345848074262235740017717591820859457842430256681858083118402875366283512967656991950688742145393239793276251083799788671292773619996933057796327051360122646717915699588034597469560736745493245428245949504954679096695480495345284314851672483730888420730957040157010143963586073396447321770857535681913261253366494514342421328691254207598005718220060365889693824636419323859918916751385750267126791434836305083901285941942853652069976339709985843752820657933493226187051396471627801144564657896939708420795632111665690341468669956072371022704777372017435105672782810422282646465419594966847553321683165131430297647839080669896154484336037688675839023862800807496686737824255004183141075659667830502477268417362079812125881641185730406204172910275379487172159361079419699785005939725878860358639395148791736074070465112944750214620374083865459776328146611560529303574832856565634437815697602516597486796800365915902865489300598832042373933698339814969646754791317506273798132246978929187836689902059260511855909483592340870844478186565385296078004475367776148744913973571017326081904475183413872211623814910229287066204313024863885670560950676562769226997115769749328972750627410923838754193132660884356582624498877343131287477049693177554796552037400181803514809662798789680764270032082477169177446525435305154761237093553138729499373954408880920935734553701601928724548355539251105753084963262071930628605833392418695286388077244959063750252239159632703561397550966397057421505020804808417154104698564664665139980915427363963399092126512962715428497740074715791465454101975210958040280016984279304696856975071392232671695696016623000789767313340010023712090434714484038071142161364474795758492709403408057080684948484036233916326287788324425035683676324890263702001409674641858705434751853439846404561298738453028733036834048098794432330852032668022801939552356076241015425554196389771011889651807118865150797905491623454390412079298410444038042524746033957152013994339179794080511782734890082070919319777284917094509231316408923584982986815074010355420015480879861607654117932062133470920359903192055417324132393405688349878276395691982378551875827860693169275413447229347660304207577200926126085724227968186484395951349994956063702866759365914697903435542412331089114977399487943589408094859225151672821669132312747471073949339218960040607343850983511859208582074540595032614785123866364621210920380562842720441089093803564818827257822222031749175719170034228718761716420362246276339210726914397765763000358796050130709084293185318068429640771215911384516193716287467210219106952195881554830081971450707323682474908925122398379560264463862123518416111573159353965437409127989310404098758105767638172971037228412896149107473515252782121557906127149849129838950098058552888128658655184377049051352624979798799960813245220918945151823441146524005334848091859658309690104639613554315170942617933440601946045640159050499639306605193834347757011847788376453395234150912872985373150772932435202644542967029687137422499945729422714024840112333445764891709111647486097010094394585164331558141923843324646763360269535750421317228309924379868869352038302387481469996349955752163856888634999856181325245204794706045700092392155852653860480563969089845997788570606393369885133148905830562606640618082212160910747650489642435382557728511416286342541476510059393422841825819463834847028814019905973397710779000429982792835484435193112220444524335035813170215556794701063091923034237389651635989677081098513295843570423692864513107218530739715278019918622265178088693218113265161070492642103357194783582554517389404578187297519089663875627944467667193794482154407695132473025387477941753682308034680573451060328412525658665263205449116548978822010522184554897845216397370843876835784889532512547779297582457760983101898124380090408996755543833804718266653705164119437827684145489286888511153172410298946017402869115479742138422107458495502611521153690283904955431680800252591605533326311549156932128900561339129701951636933138094547088906389158796533471176918638554864680862223832998426274569483455632760338111114997721700906868936599179206358453724605744800145463136382815592059289819687797245753292745157703778153703905083813915700953506889742517006845533799786666889007934125680643774247953493674174873916386505256232791503281776232421000297484650930589975997286591322578269775720206928487204587657523934601803186231369002686600213657644493725271876000953860421585447560801443972935756129933894206155825209492544634542967440836171928991340214660542103389383425366746041055514047296624723248446915534208811177826357720841680515773063530248655596407086835457154576467286022579467166806995373849662884875487277411347200275402562731815911938359115208782989800443074178895669868495120965675728702277779290428172925977604168299127727212111811141089823044359906580908346198725639911214205411127434287286218160967501661456808205459248510202606192283249549524583602173592096422865555284171375649462840169124801911891213817222204516239284661334951773800613920220610089860996404538616050779695608826387566979765870562117693200677118606245181043756136680016070673110526647699047576015643995631833742339932590599941828612909249432201551918356260497672443387942092924809863670871123481014377324535326342036017615816229917899978804274257388039198272601098299894931898057409342489750004850551034791814789510296091601706439898778866095799220290268033008123026659993797014569073033355444141482432393792645265231359675430707727686752951349945028657626703690357245213908731835960688620143332164558803744283712173696002103988323097204683753698578200064055004027757942069579995871948779041040010509480782419348852348697340737974497943357617614787034438566016690516307740132354567535242268230899997121212879986497952151572332638135788878254012828620442999356231930705200062689662569177371682499458922908930424546414764082113089360000282073545458075489884552314565335816810325293604575324183757012963937705645964599049892462444991241705316294966298560070763535276433726620739244159768570006564113579279014590561112418007866314420348553214907802393047725983218181425245193800533518709823197792346290958832758788973077748953242233281905482147605268342842227433070696412393092383020200170799735016006884984567860037255991906699745998818065642693762994466554658620124810356204088204600031356819280676352217205870012084868439645357471738537918139090386513238125992215521681504925061126917855404089413094147022565970899673202663294546849159386043442262453843820737963424905531234241112541235136310591177972549221846906886687140452933903217150180605873378839042804906565135836184842527910306740380766115871686260706991591444002870575202420321836361127942878829422617175109091438478873154882481686435767179664924861497873402366680436293385228849637742615695390157310642045615669607193077562305241109170158483495900156951458747714789283685308042864753682506377702722603133519233813809646441229223946840785304182553355005115664723918268139483302473480061062989703535118953718492226847530151298914037659732725161174684262059280425339970965096577921897316157760725417800495005922706241666383169501918309987078663608163112316196752537519548532695585976981799602109406178583060593091563240433498287528747174701811088647796130119013913245767734979399019988185212024399808581995597232527343590622136170958133436244076761523169602658068775121672159866320611524582719037101562071466737769995370301869267786047139504931472638602390926320076519870025270856680537147697389044622730095279791925798800290003003856486058798042459425860031221401498012095881476317481263743229926401532664811137170412311369690745880521479996964151152306655704714181253364556307311248756678400689618990871575858264491298630294684276953576897149816374401120737396826822423076637583204678950515036478092240998174041058795941143300612303761196006824227991277769570814253205475811404867045971824135442097601465671559376619086221816630818564809590412104887209265184570286229569000802270088898226073927318346283263078025289722849434378435409108609682846751983519170442456454698156331595207367032583007699310791442205784638263387175204485733759490363227309655020561557364573437754305834374667078673051934054115627444914723723430962542528884673832914590978727165259133982496472979718202044214846498390040369625208304949584163270513550887981823605821569084007357129179847802861013788828873689432484130814110161861420019634986359371976955882924024873161216007708606487891901746456594661448595999650756794881550233722175454365358437384441709586242648281469975780845809716714868215305949164356990757248150199494644287752889205891373063044145509880967272685003979386340126976700777570898131881802297044086170117208928399284195835387956982839476432522870183178926335971127190479251257139956844386567750170244988451562805988714334613351734483856747581994447774152970355568813649542135522933468079166283608904334041920026778836665899983303839786853737276424738429870150507096523908562149944586195992129308535860123676457220686846397507132751858104545158783863627478537595841147813729546014238470867300427835593172657900420067279492077179752879862683884174349843388407932347889891685118106650976002523959259214487510441110218979465726152541214287673866428682201836313798011389683861017306316993749384387190286219286556056882478449645521842598528034162888028877566448885775412926684694497298928946417371025365174025669138913548197941577756883894574602247966101894822040023241177933857448808637021565781061404085524701240089010583906684785684713773690994856021053160142596510919989796077397393110677398308038675713012619894677558326067128092115415540130686510623694882032020209639512552876100899032808340066550942106540058814676484478701761120110964710785596681026580233946758970376700781247284563002767682222889001386558493237364142459337689762294206890478576510000565898317934485746058679053233917204172225402906533050813536713775289315113756408275259324496112414566182187839510666582163079725246250072054568797243231122724270598249265597066462842420315100483939792807175059721551872238818081171110701113035640723081336477110161619709631363273202847873469808503527517438209373176791175197088779585718347271948212758606788443479947539920434911937336481673032380591229184025748531488454744108154976189699067557554957510984549697268257597865636307300390763246930427872880537955495023299991064203233684917686814203153627701286614704561863947888391618829046262984831172304083163221086008257200091190820485630322242356111672076274386438715354836257295400635067802820085211236115994180519196888574837830593660726832717662791559860914068587713528407539302457992500202873706974614392305031650853766455620766484221018674450334992416463730782002648269339458112087342820189852026087368407233065999899035477606365925636211109120128201198267684039329195240000712501983588336458286858612286675135454520625011999646257462917695031125578850207091755606795068777283188578875447689320694734845321031884682917596112973831289474424125515946345908807125810052342657468282256734667150304233109083366024373235465445099507355318042816848499022166531629495253641621504003426424067128447372752311784688272209668345615071120686304554203534440386550431471401106748938900629612563027025092966752118398322614627208984479373092587877187194575016364725909867445559953768826347453801454652291231704565372213710127434856400345680885290299647790753361685487172320258295531019838993847357405007166013526475530217857311839248907731346104587216090724017184931323322914470742360560429802548055958614025615826063789342309246383510540259791221360985160086643486095104876794924960817220616796347069543835935970849178308310003707738127095112556276247458501544210836300142330562586154830717914191597402932972695745565916608662113503470458436868403319506718876399704443203785004831649382037719053433876325364843068229708403336302202139390265210942733492444783429987374141174042274472033780487201138551543774106743242864865207246648529056084842551813188360037428813234980371109487482477609426665751407324985272085968789078595979606308504783767551430429593967044993863124378715195907492673934046192842947761986546694597270446836690493751105909671197622363638897441690275305260097847017769332445515593176284477829665801043258247950885872834617324908022672715832955724083189179809628589925071600917989656016427362355145658687160873418307485471204031747149278498651885404175341852436702247223482517934096747012424923436128954137742633980417290535630793552114322247321107623097911778635921451443776911549189701599085754748975058352393135645032058495166763873329583967627519655531303561494910927729288972844948663126349130104373939343340161464317557569088870400720939143705583243079086529931555627206017314952051650950521411690825461330663145013449307604539181906529267147566430053350345951564466724399755634487451434393968474914224032789374231890748453711193660408528797997127133759106074834444527725904222192602182016147073894776381697445795076124448348919943288182075705052857729015249360872040253667603487875822562152566754460526373765756169512367034571280475575750663840508957113442694875603137669579809932023261619521017538672573193766722939394207487456172025475229249656833887263106846712537775551667100347237340770329889317402696923867917314759358422441160159043363697280754121738202559319060280195759429437751367773949781022309693424882788606416729162922293348235027565014198297562759449105831100808022558780022976455629048965581647301870151667130075296332441212334590052891826296749556483672138416922783307838271049026924337934081552137189688704776354374402237361713969719377198479333652622597126637668840590919712355368256155751338559063220786138386966842511025049777172891203536307142867481168372104295206636723794724624473682117456791702612122961765557976646038175961155780178987603933954401557212359193927937590869374136593099686266590013990726611435316675684975035677397955647369837145634680487955422554201874606743307085986680328371937190117419873674848783908320362054509349866459008285283318686702085259287489395757293542392178954512118945606360791789456868330134651242078563016265587397550282568042409975637032182076647023279332104016808609579018131057945491191367252346269598540149693711180773017572031214607032001036965705721154973459528172725322628679402777585950649909194255855059710865144277636785820492928186793813562794394181244485917301949548850840613182658368513111887033207167570323920433346152470932504628685465527675375521873074888877912591785792423088657845206681233473066338634071871383082944679253544164764249305848576168653976266284950261564392538521103538146378314359219349508977204921776865507560793169017163667029990669324641846432494107927246625377494850774253384723680370580389025608730554583935273472831019865146102917370026093889287811756099640928743261946954691351343318009781242020628318885722475938468611144043238367929360567329946023816392516347003634280139341063524720199713862687926895724030650626978239174084974227784466107145136676498781321906276342864196945404519105471107528342669460124946242061706527741357657582830474770828576757179601213672319499366173036233840666268775754101733527277343053151791344529068297445043183611706970805838413438243633707446764678227270540444350840153261060031429686187907152254808409151946677761985508987266486981019700650109022635305564548011171992730655308401706422911882967537746729871477421699386443420166719919678888476774031439503645599771918580803871171303105027941998079494702958936612926203269069449670906467278971293576732398114849319895343340935270982846925793304974249552371465729080407571981828290174471835718584466556055457467478537878519880556919706479312992140696807829053175689671030088873632108191611843332296013416786252335031414801697949459722486230520662825783883572739792840443452921042009619913253146065371326515314586172229312850069206406346334989175403180353861185621285185089153678996235103272619843028255979013369078697316804581238595486375158916446645761545411428767228009826934273387210122449170878343850805510412192447549846314494690061274712462077210314355066048034695826376153663554832291750160907844328903462464499251905646200364142031416557359788818069624443283210123627185757847252929039025264580786546337022734923437769025630544859430230274606337487253550463056401315899758741124346552118106671240658960554200728527271104499014644797010056935287896575776861952891812028156012398700011620895345344926772237937757421838119032177170708293015036540655479816446917919621666209574352189919964230348521183238320458385022114510026500782943924763600888000209489667851394177826878157586246321180680711923347355421726486193496257367425682405025091153888392205884077994267748210749786401369024355609734041883377671337494597141547698813396321559960157560311525494088150653438122499031155385771623998838833185107333747436932906112974932730133969979415076863875717121979880786803696908906113806929288623756953643194047535831066892100588158619607310061373516338447401823069543842591306611871040055644945907166663332508289270429253081459397544120901312854827165521392011000350830545232010269375845862441424759871671847703999806771682216753143282564869688305294415032024180262453722499045471608788601480838070597891272233365822242457243988077737615598306673871757672093558078217355792827746545652952744092781962187096553212675607621162303093068501670347168642989196342124666986359983667384960433128660296922541473001711015327232653676399749032630838960578598985224526212961713918101785294831277229813980903582645671848531243790016475435705010503908704896118404574750307727287164465289338173957853323619516307420425368438700415365119691764009538863648972196481268339100450571941439459629267236146044148629308587992376033796768047600687730306662615600635232163504335676098231895913344785415411459209862761390037260101269696312730958559977044220059473013625186024490925303743481127218743879811994513138138438390111257073365067143267867426032838168069745392523425287900428210094338951148282060036555721125596175407639781572369992743919145615437006995507852241595524114159955738318589730302525070594349334992641972987975359466470198779691390753767073815990007687261589047356888541386059373436839369805596482858954174976041272679179272217430963052908409509823575057218002750367776982263111976472620575723187866344657063601785733246936548463162795034156218224701338449376615738407454030703007325840591363398605366167370053854927461547578211020739115298251193418463409531086473510985097755294167303624118265498540033766386146062123152015223140538141513025850258771173101010773572197659254302768180019409978267227002304583259370042491834998988386754504076444978001371805079820334222040789718674874281336882290070788422082531056947602883556483103056671455033158168282740035665683082341751333926907937633137889847670935317475489597529847481450392369042173729397347847179203990835310842730368689016346179712023558330797398413221872241293413087924234953324442917147405900688210899537836754207252815322924271533774443498836100333359642017380371092306031337932315750452890915051784195640772712014473350683691565705096566771997697161423248392176447529216423698911079519113102577078881159853587303190879822508891937885761362987638961703118707911675991513834402290829532900930440895144908615423126074864687950105131630407739764903438635373671606640965360036782647349441057404260905974978280933752470465101301432403296147091969110543085258338434411894032727526000413987572816910086852496491064065894916356322928394808776493994407958586142368729946413764673679436360064018735149571969884401921249829838611189777552259461126720357219906284150759708906672688069655139865037230865938542921182718943536861427148090676840922410914562368554430325408250162414835272319235070532482558725513075417238820152850752447252910512453225312169722688474514711623921117199119683832797702699077641770044211300948470711607871930297153462958221742019750405282634847828922296636303860804537761424892694745926595576629161856060585884917934381439940004060566770786721350904544801926770482495393692916182994075964037261934931674521963028289149463852519142278634789822380346608726251297881430684693266639102762197499226942148400114343283465091477832532452602734404672033913288455129114253166804638291640032956104828166626471854454582877867863877104694478862935218609233163920166744003618193682351159193359334021182782952815023923508238113068522347305389244872156266176920357949816642699524003335689797412318596671713140791299986867866971210294003382317882029474136016411249686132114467312022071467446177290283539644082236728513821546412912175136770466156418889009760001857467275646031453793776802315872955124908885648200946986445260102542101193849344451077530135284511316708292543801981606226143484789883222723986135631592645151414074040096645615258321455536607105536778239623125976252226461547994404576203310093816177535012607813843116380151060096750591211740737259419130451080399508479778391079882055580681605430441359289704556673109474998977758849878343765406476343112625699421986110073975151741680714398865832013860173747644934477125396255445938424028625378321629416724581064468960533341625057737964986969886952471152504939934946027393372324422375372600434092700140189327908293951690290775445607557367685480483936498658216380842657870409736854504990154167078842276977468913204857196807106334384633325678260960757586018549050486234177362969656085757676146912070604148897316263800300059329490278739309033050104987832135043434750946978803402067740609297251098163256583815945961904042919630829878809494559526722801066867712073401929135570639751528233239368944764305064968214490084207443102815493596693756293637368325636907661756884039160221304318630376408146841704675507614489370682688108878648965923792417042883746758999320729522511743104952454300573084466282666963620230263876242575438236106935287601152603395022782682545885869679292986031818335989372330482571566618550122771109840791328198763270393810080397070655772560491554564259823838820848393918885493532069773455101193206832832608871363377312575494843191270896775844927856351241605380855689776738458458937270055040084073118992135894108572136426447835946479834859477116356932144721239520818568040954398642591569805619277372600920219405029843558171273477405260726218281398877927302190486618754955926993613162114843778504136391994802689867889080454360207187752681873130895207653785370327056160884882204213154559674631277615322917153777460492357161821603446070223303624198227126319663608537640589528179533556713027577670508613263961826891827457064436049634759346679928831157831853318046833449574372539894726583513126065482175676197233899461014960545889283890759599969638595184288755169471070824339035758706522833553357017769118228706240171200083508217845924032373664580996641386634532273390138247729947045467391060085438850616592577163991454438724429262311644606233469375188337039426920048070560964522617762758269950092695165249436545572575337035398961316976967080409549977885209236653371951303934870126727245036783056798314238680930075432650169285954885561790145675465557904419302851139366829025745193100421095226375886811548736193438081535125651965378145197591193914032822430690971086399153296742548442587556958868063992678656266988108760771400299289573155002591846378548697602359687027573054587960592828883069774765915848162756729607501782566051557553164493333118692218173381190719601715776241435892557976870212978975236553834247034065436109324379084180360877006961738276734532177166598014554705568262423083575509026604689604273688625695289852283359000402231001473258445117727542755520693709835060594708180759593530288049329183188263897359905678950141941707405059988291432076711643822124689880619980317043987513207832792535850494128521123475829100161866676159087184923567029377175597232339378783788141868763058187426043981902439190931829340020857381784978939815449461290227011043225801370656061319937930132355555519891862270305660201831218198166275029231134337073835990391758895386060943419913295191880294763978752727846845108437483485933052310771139211702919941894196559694954640289840776748371683173769546938650155826601348943314856394100868266912639763072349511356248688539175318022229976497419064921419224306807624462246070968042850679360566474003914931967716451432037616104254740111943855980007194577960796178555856364368503746269898480267073367038449644663936113642986556952531145288270005628117809735715407715679728179745328679827897825781031870612794450120304345888469600105871327484364672604132719600246005151991018894111734317404169043302810072904476431678202570729654668644717595039197620912884947917957417151307953960989579821743769021480090252024829165384785677867749303104470327218437114863915512120275623443237695853194626154451521454012134186983845038620419895098097006383155896408901381351717445894118939889104721203560359389224174589571991502588572153717183052278668956669225891627580407096697837041074254423857455629232675517703273347909455258427868246479717284076723701698223667363471386031151712795633299755264628176071552839373393471763261543022070490045971084776904784535776776706132605156967015621686364982278115207831847561596086170125367658128537773906959379012657681559279857785956102494243840377690594815097521124435607170828973655665772785658857695401839798409085820580630185552540452360566962297982302903795512538859252365236220397296676445850342922186218064821257026614359130038230448066497897436904112287104373519548778253722660761468442983908871497829094454283655780487563117984113357695873398694052891057857497071982229975538721190937971973398820519386032236068858511110548717928936978698421896827175181433849018450893698358346901586250891948204278229530812089326222387333688559639981187272055298292833982520370970048519933734154218658275936064842244055891551444801574463037450219801462528655629710121323466266660527397346446969222340717054929836662479786775874707002875326219892991924540263165181376885722465601400968511355634704540825128077797566824164204736203073602870035273651047841104813655329442873757948425563196497624619334825002486119359772145624299741667112862179924595620954467016830984127196896751039507114418912689168391717173215911376789966974113714894777249316096600875065162075672176752595112096920212701308756071712361839407001511638569337776955646199212915330485660627186942228373306309888774745313343051509388406164250703504778817714945790650364516244248307737089989230197964908204688347433893029045684665670346077209714800836119755088169536180426537431712524332612052743786271527552112987200117870017126684563815115370009972776974351667841146582109580490450700258369162787154890898602741574175533966694168973604148854510311017170366191504773166274741986109458641878161628178290352568460418301080057993562525184845291419458628817368746475492981920624615839281571280525543651578370485333742771462365633882409673068413217688873563449733684659508624136970330539762650968200640439015987908487196779103512739609285027656304681409757233016875057051080205930547806273071280533685912288648047387314049448362494626704320377233120916954137202192797129301516493586374101931019969291475628721632962080363472781542659068484886388841807511851463429787008575576077289976353131675170414535155330633615675977264031015043215207819648915783901177827827607464413323755420893014295372502665503602656164204228094476549985618964469654341544217856959829216731354777402040168777760997500315345454941607999695749257963782017009694376130915386625920734072292767620791643859785981774272425504445751755412652810997196247145897000074087074994154988295498811417835293818039028988596323609355134376778885708436306827259979041328524033585775151949584051862331457141552437366815900013723573733487456146118816353666449892835722849685692790095556652872305885142713117265540639394174181612842975500943444453026493218292226639646600678923276259327360410680079623358332761074539911045032620750574734238271534245814631031606889030473257639609188031945332653820776921369356296536951534442256001168409137996359338538903712329870896667031617185678506364529314430202277314980872606505844993828216856051504050740248655669435580305118795308974842556539489263420075329229323063079534651756102769786338918065775742384275019868277567468273290436720672001616135111179281795430987592767760498338124530723367647419750273271585569978741515109543410598481752875887823645785966934671742858581060266414384120224470837735337651949615561487726848409479567394006227389288472129726072251502028210795832167106599167302154492323357062391700621283775360807285856957575119822931127380218298792084897216855340556653825292615334637654772063386868163394769811890750558789684304598808736866229772090175410861863612941723273807198428338115657799285968947334016018178935867279728349856455539044615368963765664437120790905844182791755051382101496259363971563924578075864661536847240929150650140307467833662318847327667840582737568755678570115113288185691932374572332556563170638133564789440565017438027493597324689172888938854605851930404637807716033951873126968330583499283520805759306455116699839758056110465253897646966589012029493355476765112702827272915786429810295060725017652011284730150918148163791689433240721811807776236260204105231319128793223334943873603429720928439894195156609502585944568902998688902250177474304497600370609409397361286786639447284316592670648183172295169259910297542342548678264456726916235640270397423750016411682566872734063235275306375047512908567564815244544803161000972856204635371118103464322458961536080633934276607415277057141492600045760328855640746504825317706712346105076953350952695549546272132089111302508166680278904113183947824308029650778219753919875623694211362215082397593992424671516583654910624679331537824263335786032798084053580959559520861423183852268908572692775632136179865447069254121748455851886390366371788289574552035612763661181008806468646890112032372172238356653265854820259645074069624995792538226412344774922914401259447982505185796312380521488827960517527514992224583939975536967556313507824713047891740084446490041707518237873814205318745239354534133685090642620263905883401262034930480307979989818326818489477803424095346352348545330335531283574521045985177198658086391234081215416221698100257452567227690248296192890154088123660539532705825846211069860158320114937512685067459488750147659230837048386728352754944446816198065100150514671484995504228677809210567966536801212207350440206587445609932714138263273567086422811095474229998018795138335196187104223446209603614263640465769558058670401891284981463338520384808581775715755752605534063574797293370994740465130471683741730995457548132014680133935211763060802503970401892071349549972794296031069038239074890558161373585282426252017024050666237449147634371976592879308692836310077508537637625365262977590859378504586311735738276933489582620536223067302657893725223880422518129838060552064180136103296405098590556631504314579586108559863233838920237041988268730865024041635338302303516997728365356733400295785619328076083376971007948384621232532961658183141542113661911919133462523247786832270023169896824502097472667290060387128034818613566911897874938316416483103932900271573309458787833873271349134348817906004714693054958698182291370899453724424953910859322922660357544518155685940225166727396086107965027368633634287751550348031281931474244951169933130170002023285080040525714741107684961766399890109971473255827081733443249574380243422760645450176778035015537582390307200289495432476388343298167088182302113670603998176799922098398756610502257777013674574638622201517480214933753522385426636194381177627988922370936515473305935444648257969535456503296080745856773188669991969231186353179471318359973108881946278969115267940451862937973626874146209600164691319519226111087592814943369910522261678949452290171022725094182992387986963707176875111936808454136441127202318030982166150695580109441778422774845257519327060716111618921499664755457273377169148964452742658337614557625663120110878430628173183383577527602200992715645316410257508481334472824403790242550265450265761708654294464693950064394269524434294263187100190265541694272353660993871340604201147590165576680828690042414526954702970906450625771022748296316256058055867021262561349806247631531933617063345794372312041655437497517324695231915926494306652036589384279130660032501296966126376775132300978075164313010669132334078910746750826604194357351407712108754502714913242135794546533888696161863440819628517018617520778673213054404875210236271155601768174782449543281417858506946188776267614882358590651128034794290885771866347698467451469059473734418571699667818125567944529055623343147469652458132279896647393932558253887363261526215289050107325005098104382720001670508223180809630223234245649015387332302699092217863987317007908557739226853417924973688514973207041803792621772434287197478188705716208963863255592883194673795202638892729921478829273991224951850386392199159909221235448147496564487961535638119090278527433063361737433391127062777491435059635856678678799056950253409265058118622918034149316216590228724152188129061284138851585037219452248465565370278902089533483083496788372789484447581103107688827597894830268011924172344574572621025068648748350502194039465807625899431518782508893210222621975976328504979334103975575212452355192675686936244880871129018349245810161695091269180362789362983183532288030506157118272020412496521135260464655912164758482063394221130184611786625947937278554726596772530013341104147422929432307273321281487866668521229271342900238195172243600872800148555856424499207213315861564850680556993200814890831725231210561955245872121786740245128999056807645793347076399648169606386076355680389578564214630965750861826631010824688845340811271237483651804088417318822040077488962139890351146454976436729884882118524368724730819176608877038836642705821621477896799213051852741281821832996949308426826718193271831108070653392007523340997070043443473427967146849564704132733850191652308175674983272146049770241436611011957686240307738428511504449909395230332775990062248187307493653110086721665062193181737757002938386093347974235351388299709834055557282343944695165902208414208851382458389923521252792536493785634433853514823059815755695970187518885885523971659623092693681099888484368972986985153575781762965283730432462323098101929494553958109425395599060103395775330239160230715961105216757788480794321129645782569417310907003395400781921855578963932153655378302339825074745194031435443123699983559117995559257432428730262407378432565415350182015573730027288537048246875747195895402706714383498712722642636969944305383935842557014888780017641416282829502002502799254040987113184777655077542710507881209745590822170283680205950322008613093704141965879934053664893922638678497281851649158634853932988733017268804555938381719387589945003182116360680836354915843644514564385571746758309231843462639544841009512358159230651841894620237515241193876831354129921265667209586794299502217587582244612507251706639694744662045354893926347383010916681069354695472079996135496633221925437489420503570665250358468650528415047491936395564310856626025956892602035011450839920244460134763195876008033289783721882922678515993161411192119298949222249092713793378104402178882232268862649373349359124065832995068664373829310340046822205891767389944679520946368994951818201329238345628523912765870312519513145165288721013620298928389972243936642854098264349998198138552547657517330159555054781923346161991142966071970703522748589979990439980485212983053367834050134852978313491206909575432844976581922650245432126709785708201460038112822099195611143616957354694832686889787381829852229497239957526862853961864148611827651219934204847011971383860424707664105897421655778097510067746750168509823030257370355928316471121855122167958554512284362511836543512437750163331855777466298152957380530595491740334917709822324933858073103868612082898252206982600607177783480705985536987828079154175029029564863389923400810919832760091314816127402118649265951632937069497689581194495989260104451611920608287496887407039498887024332777547328104509852350264283184191070509352868375572309875366408746040846281121247048357862730389953826006402056400560600735314396224917240171945752794869851431156302192751604993449924017943561918203338898626821058053473130257391230015662343287377929966102174040883790580161734235122847227746444503475811393061159757112247777158638735204125976500444176368492172496560914642846355559221625419239930461266517051347177260647305333181680450371784307889161244886600242605812264274690015731257375132494329205874331034314148626764943240176865403529999173027087663688398625529773332747969037088613736526288782117512536144643881252550268204701601784318310427904780082878156099183386727912186014528207306550570274123905972774958075021891672520118702987349127734868420203464875752172624406932204024003173691320970489949169826529324376466802156711398304979698411770039588875368313462713293016271154089622679857063278384177507222173434717418155128284562191982284060361407235359252614040961482281114878614435030114016866784533907936699442884087295922184653177108773192077015878993651876835851099625482101590951229394158962735536180775975883550614741994225177598783211354783315490072508588390491039410852746089339291839646138552380475032152595923348520312225407173141817018395316724366139491897784728333233665466109388734593674083278005580547642023872086729323059957727826224229849752287271892678573248923745712162259174115222976272105688955027282796962669926719815449079591133638788975952527339106336934806225495095620694583346935599571878487240715131755387384787787271294911921447889018499648122141375097443699519494564456493318989818526828773108417056703159740224905694103069687071634026043085287937767752716609237106479818610891085621334198889666258971581237101519138795425385857938007493290933968833938089108707712712540233031345623455530013351255853303476800793746150848538923261352517632285070636678633008258505823452894880117167937916706176225169895106644232626088732704028893410121908276858060438518132268570868498005648228337875078882384250377626231129978344722370459086741347608552927447779161716319066972528526124098545608837148686888944813083351459310073717103171027513267199527351842781261592802966506602539535200597263970040263523164933814716814906270076963646484611445599783138919671707796732951247582017834290235118563107496597056565491780695352555631024892770382076989110410880288980446738303737544920105184780123475950638080816763328620510566152382666571785298347748178402374976927284951129343288018633840783462080583637014367961230000791401937941466277110482364488042759974096560266641081355778193885570195324192280240631427134300680557768646092270273061035630120167009301747528209067969859887664747856561007530853206335435041052078502435927751477032001052643802883357225029761594060149378616831281541650346043273032379715802795047225459941122917194249207068677659869740329210140713497995494682000621249159876118289890365624508611787297377188369607025977571380715309386256737835100301501927140899449981632509888129619917297441523786132742599124701650477417347692078049381826815260058573251510678069070484000762715680051097463843349156812411610265882288298498972524818094489842014222167034382898856104176387107262131427110520210381596664107800744181518303339014485498860922987478572448784930050191786383269185962874182823031309384472426390775243315642960886765758292208874612653731496307575024670591130834040505153037059961990907772204929047501910457782372677111580735708081283943118057063990070655093935742550251363267342498683080742721961690525968334546604071422575104104583625498655221344578325017447919809455493324360525231331927227181301987243522483418529381395019530655642947769657807599057942814153679816622121885740904310435963831773304926534117528630146056401900748199891253641871460299157566228716621963929821849105516441332535587764177661591507587813235490165078228959010802451914497791233349709107644654511752011818429364359858165576689707356861081659453805996692831528502932587679754965253975860619727120013044036476543179803177413105654442961461060564327620344786301776284427021847344666815476436512285605701084648375368449692235261111757309961225534856332388305853918969238872272062095726095937905735349527070657865855344864708632186119665982744819557367861070863021411868573089374175346408807914365289290844212721811638626066399665985517192153391052310133424212663973762200253476337284616229629519165676959414245545077407247229535280261096304624336335438210295451608162611975481311307197570302367615965358954852509501902566280998168761982854370614228266588553270962785556714001247753442148357868256572950183437573939548823959287267144932277109644344838833995107087426600766758065911663482966850030413107151960253095638784579639818485292282824868463890937871772868825626433933504758335605840783721254309049585153693862254642005637845355717540887277895181700595678550980256248010448240365845381568012385785102709416610117156544341840823128812897755338047808887307880593634962681789690371686854527925151768199340482994066795708811485008320559855798852890002581070053072351901053879301686632518975892219224633806895941111756673474856280752945059143965254608869515223777316755510111238768165361046578000670311016868660042833621811652584462864493817690210384374110670536230030003314245879544511529143688208070704351173711564836360813206110819999585193887724285104457965620968991158742929569693309080853743415617162738223848786076648393681341008247355080331215044024610187208268341354131035978165653619573039040583110663091258910543524473504931118594954592824835989146670530794801839135868415947838811583194549150051559081751314172545482161702234779733690806375912413865772373873086386891810144605366574259478401403613249325163373575703441212195940719145249684507123087197244724911316253201103302736612713540719309997803573523643020988822062839608101818793204054266960233199156255035985049723141373910138575513995688063699203328409782884401190387362125031240978669764434972583187115966048714203906100281238027721236673057831541588144798279334297283907827184057062160952142189719361319130641393238787272615609900657141368318384012837212479900307032946834583629612642373857402713048858352507190228593679151442735702551157261567532505929596726271248514788577818982887222875662433973879998631532930603826038334744691067202272251383647008335381194516367934954189959120027955448310286988430843370940874131414704452937664698886561267204714053413297702904184168683308185704558438481783267417781864390385362242624649579782572931089733857784947535501913811380303832245491347403516283485468787176571728076459158844255050187785620727731605263087945214791552734966746456384221275760232156753887998029945879046525682562812536265972766195451028095407438251752777095481960837763363826117176473418137796587126043335031263713197272744128000702789401845844308315172946086356047710050507840059846697220385915697791911129620067748606532883981325910695452796107225921698437722287214427798702904630615440884734083244591232053488708001376633500110285269643214735262110539833548164075878858759016767733141119894108028062047917401860635216075744376016287699714826466081621115125970197510784305927806645194939271643293139312288506539356669607210029595968930760854515155356306492405312552205709913015759798692033541412015327216120671429814181708097954370528026425800147170730619211697284317050205680430853547837180610187227573398606063061750764663931996273608594676479521507169654667686347501210089520327825804911145504064147901862850043888897563307147974146072409472683875256182534816910227348978446678658546442329900746052248778971955092602032003286058665083284441098185985082722333497927865852321668129023600962245503047029053081915897556001281134219394372263980627823924252514430261602809754792150943510565116445284093359156602798637599947821480870400995847391153694152831082383763117391201682483905154021599882303528611342217503711666346993651762069149303745081513345456499129605158180910356638246012062057059020454473841827982960321416473700430685789102219676666385103832420946707668493076300222430302487776319174691973483345391345732415670063639105615587176055042602751279565728070811496100059955983112830202301319472824007612787031538367022673264558467763331156729344608063086945734856685338470288137462413185568018915410967983130378703400258495939264389240798710288675158235145617511880370624201736596875732077429867357157150792980824138514670870641588292511807718792514106112839348850275299188640954733762863555244264139752406114420195043734322552959755718525592955994501500570837752509269214069234697032346194893058336072076659394812285468229142992998081416989981661589951038397831699747908370806661380253946717324717354461860334312676227524414130295779752898758375612980183450113667487403750030256760377864660045969341555128467734123871863161572388261208334052347924573162514040651187430625074682048216262697653690056289792675914745532499568361517961194524437062220876460489783785582664409458565692156490322567507606278054698854442417836945392856807087864212721450071539244024428822480688269782534294679284385037312243734855697942693993708077223214707644079230350299789391956159769912364651605567545759022204633583190719390728635798979379601674838164321680495080253296276402944679563483957149314324007249660811981707475027597362368840040199361790278335001543301901327375616510101352446354504071541981483668134285072690021792993354058918432807776403989756184158542489984750632951095871946680522281685864845245785936804401025221320687553001240562908434701553581314200707747832411582211699823687878924820367529574334533487839519513325650967601134357290609232124189802378749023320088373593398867153242381576223217688809176185117414232345111851198195895118852023742304643998367085272493532500783378327955930855686795499722722551509194607799168251639964379798158428343655074536072022461329903149318098755491356535640478266040216546479516799113322862449176470615898527459097819141938534859362788309804822880893768962576073054420584115036636500182744079991872841883142554879765548298285601518925239408742567648178767592595991354498014581906621161424486732215223362980285815469855162492396934992731754226213346875694194312282847549663994877893473899080313900258792303965551984281583770882417361509829360426617191012448765802238180461707432043828671050773323328918313555873615288602763322556093963077379658221377500887525346873938644222409292353657805492642422067709543077546967603035094415946983952687150128141343017578915401088204905737591516212252166529621774673290165307333388428580998140642128676655810811293573175715022503732942675880041873509192781181449801035575175608503765521884329972082704673416196417451288090536446775750790050903544102959196234439679950278762516948271864541814740007655442136038497187039630596976090824704782383475134388431394802883253613622196498433300684404176782166689562792402448803067902551248516966155809862800563261732217237107741517075101708296432573824552687082537621517094090800654067025543485975285126248203807425118463056587409839490205740266014493200792496590352852824647228249725080550638052107507280851046940520015409456672396520425904522439873395774496751130190071318102125810392614475115543118846627077608493237088225854845508596599308282521268313174267528374923242962491712876868957095576910816103116729768639591415776298200807186417416679976360371449003936178730036190983169498174519987512120087126168204828793502284019843345848701123942751502834101199080769863495749704266620082261026947622362788424709284063198576879280727542888155585634167121117447047631584542576631033757655230355747174948459187192496145054538114764003807307435262104485300974887793195440953886547222055837235051251570110867557799803385776822772859235873076142951740257389527857333966571021396415485925985642136775233148167712901216708677868748144924641236290416477738336638432616317153506824228426844653383118401090759632703375753999038777650321134710324225975417919171748851173220894916128661536516014997269561882114281121325986502311852202826232979401209393705241444649925986205324680344136667165433844054376195356861915070271196473890217258259689866803833440330257558471290699144056794871055013769561389478830310479682522847995719052767609078175188045332007097906865559001877565970893063414192930463948214281544845205629489017513444940797335213246076536952852654884692019451283059942805530821069184217846624320164470615171193769498553259128708065312037324498994668535906559371900535197903128682464183486882874025758146217234175885581063126297716699695952226834799005390268708173791377466649392897832476680092062331804216281982497919588084290764074319332112387539242099147591390194777474190469442114053512337099206657764571506839127141424617119903886258048525627541348580843362994207393936068499245566700986094389127433962580757499647968104604151035825384008131146883806903183638948547382676303047315162885184188012319784586091076052708065267493635953650494566093306465760178886037842888291324224857414869266612183394841181627732259188556570263312513821692926203990099587118235265866383257715559368781073287445518378764533986007342291699750877247093300921565911977866954153827701542511504623950270956184659334512536927155488310981835291299646842236709875288155374875242840694231728554944373399464750130878959827154850681821860979668381267056707662387507179231629488781752230568117426024764702991967322691346128684494161806105549209564477326900191242120901346058479906694420044777253568987629661600085181903016201700468986081237240376252905977405467879241668677985250991977216162131633652380872578735646143376334536295051488064488107291006107676610221921137560374627327592735169640794403999451767352999607188223239362749491035338827996722569260347093933488879757280797236033169497827536179457016797582669987055173451039802965713667599426770864241328258151425190036153579476225453569894358079296079095489460201756408727323401848466544783505308256461963543140550572902139022926919652242637711332560184017461840587431773808674976907060069022900228557708856512668324929981337446927884357436453836399198880845674252796188599019110994981520838243515492196803211610206454358821824776669265584474732805458646295939495371951515101163630200517331052673986538522341043574011880986524081051840895850825779058162383611480599965414022133669788868372017383269652372316459254773958696733986033281164582147312977923132939410147920969804102944703839906642280285139678116227567569131247011695326398867631807142260271166032408700661749432230878049754431224266761200458319473096995544413136823419037088217229659719148124148814784854681826333207868442478466944913423617968265930674543359571581060262414700961980388887044267693844899069373306985069638759742296875439655137856358946695257611184605839354964287951809751061753565394140961126574093179405472717767171804520206503261641234246321354207482231167502315820143323155492351494207233526654255544225605330020866815109675065761161941587921200783938916530449347591334766799540868597446887467336622790841484508563969264800220061098193157812761579984416019021745953569158595005880476115766266938145135462737647670280584758758560789150186021825111196634603354870211816457327735748618747856141435028707265354491358559673708067139049897030821600532272852946730627905105876896071340492051473872566359732124689618702883865784148956142210870397789908773235666213129955662512552172603673202977148733442928880667799096139122077752397979281348215028358027096890440831001926639600756465675616895206395766830177787290824419853480425390827112377490901359034576199797960455046745735039343206300482636537514448720132853907049622728608100282811932260652961652460089136533600922590399809111084779954312280960002955542075466727694498682483370064292586578263626746318954287905250266618921739786151248433954119742802553387123987725363708349696489663854699470797425351596316119743170008825944154540126061185569747284845123328665141449479655067283649295225455645521063108674132747234932683421778889281646194441607490054381167101655122765706008934470254034682989526136843753131354115396662135872362145506274100794612679939091371413184317031282240832000188687974534256740563486432704261181293479162659774945955163581623867267718798270005901928204486135558884147226997822944371730654109595028559211582452726947061849796124711174409936785035517109273783792579134279588321444415979821840710909913851028353964674248583367955093578891195987182287369149420458547211999469918052092398545171827217758306523624369059744900958795079647604809127548447031400821154731909471446858140831894300030998215261668840360500846052331019566248256524441908534475523536882903928366788467656433631834916425532105534234969056587143129860885139530051141013066555415760366001221880380455484785609117798499617407087002684309632285922786244107789066157725490607443565032504418328884009517466753262350926164536487353806477433899825024454985563959127206688787785402605483351540462102092280470525337781723954931925182790500367286208574342743618321083426634411508766819749206717426756857180293299652958988337308440167786620376743861845920515972361557276748554454588558012537349311163210156575027407647959148578914359836692512129580858899323547141145509153864765966158800341507933138610979913198301479521381150222528990036030796084824505411136105787038186875101774727491649423064076559911140745302847509647389528986641186279328963843677477020136543134641265229734376304917088319525063905409613276046163607591130667817619491385706987912995386197487724422293553319800327570773448016349052397733045066584992576454061735664544107828464909780055470820814004135089793295600639973309442907254802651616344134672446703335968369298380427816376209512520132332804935021230908106872524336877244755795304173637548054268537027677340780825709626607029601326772409241121620449457640034331897840666120015589538689380850920094271682465664597106131699827680377163077163069818330851735754705625846828569664144532435411586135746406796815519881942400083339787667578062692292668652856434041562083304059797971761146994108413129683392062891931928146965659245250477849125645055187782498236643998472571892907278731727542153730579563344613183704331052279176480031177517886799292618335441542589136999699366991831041344146819921898936736064571871202698823180131965701936008180917652197462975758829315480830777367696891557121940623289057887393522235925914633549486025845519281089956875280095069877529130255909303936953593796247130803857588835623214875232143967044700085816638769914960714267382037888153121147733576403778043797287181061149786524267089033801937726079476522176254759628904578312482665756730760971688140484073247417318612003008870172232981558623889499266436086253414314473554339042044611188068732383042474017048349643253036016367735095110303881871145419451338643146408063809028531749271047062701869730780234907148584265805322833269761715390981049609777170245903319794366986523915330436865703846993201228851209716072702018335299466669119395275347205157218611341367397299287680420108130982528962937350621378005181088549550709855755354690795469540378071174588511941040143718845075398651502534232798936291043323533839579272658027794679968442259443825487490281855698993766863650397070237085476190298410792127226606105281968966974066984340697639757370105137754893186617148570274788338203304058787271025533160742816900667861275900829148357100658238538153331636346048650356267745754590963234078541912999106236149675821861928134622103458447051768804760790489659374797041001123402337200927261247126206930600395176691860093088883453849069868437139966463356762309771139338338537383539478532005817832331749163788834820427225723744536604049516101495349167401338319970540228857377463517815464308161654124325546341302379610610566940549273608251348456806984460970235966424736163076056251553734035887131881399892879613644712873014620062533198445609168216981600699080650722764583540101466052407940917863633848369630027200137516026276764689209936031549593655756660544931780682236709357790378148897613934552330565169658607184917515038453499188882452010346087536577427943595235816434504209116960166221830256261155571176798112795297895828961252849297733909128834228781391189760624661361276972391448410184508455227399048081576854090097974626658239645156296123461480686381169408012954915683973673075516449491757541787480975245152916732212971436064175950417605505166042508287506819074184208603278219175225895968562576277772874426199856907125557976544918927318118553413615680580685246189338141201734036706246102517352037393283396847087840631396228129531972953711753746774108997151798318600534269597860780770319203493447021134494255827520725450120250420371968286452567610011839204867127610752259616977276839849319855876639868144401446100763461613922003972925552258433101265596281290724309813515033049911957852471009730613051646834892242077405374786689415546115958338582167502357042648636072903883051996529694602535432740907891538884158497532210340951883118234663855481647323636780816999064337312354985291808641835039343714989678243561380993787896507425466904131369711758371948893265164393383093602436452919761553560030769254743804853685232417915613930909451340656856274554708305847936910982586525547257954191551071166665241785762236907315872430726045911235990252681840806761996550879167513291567756725246835391778768355013068660951137701389403829658478034609988065069058235588711721591229814933697164712807729339899147534014638291359882991415260556525915096764949742014087554848835609710511163337868966624172750395657230158739547188473179423301812376028076184504725999681804090997087831008004867940323541921884432062415701639745962339037878699839978359774427347333516124111458294536935970777601754232280620583189282915528860845488110546967047683128342838928479289020430882241057078087345010156939619346864524092658493679645633180856764231525178995549328889819071058763169631799068221915160661494450403763080604001626234484644565001010328595745892862455449984977347578805717890028647168910112525658194979961965763756002346153622597002744744249256241082455148666006731417626913037323629621594619471524655138799230725152122826714262433048238157470345124054435892304869317303581903662006182832122840993733629618749136261675166295831303084342783644279163263998618845978353909860963169991934205731194105768254630065602815668742760605139875750417474114998677287945310176058611757882048693516112469381319756693022670725818740629129016937206859396186278585588783587713057218065204213226675523008671602700401133810818716366727232657557190577991939893571043111031859640074600638470778056684749592222530106034698346801457566547617808879666910351879494685778672971206831498477076517762896206213399824031139150869487972664367964366074067668424704986170137548109846268704392708660265093485164667059225665806452959056036215653050316220798339520865791410719462888476978002125969772521633303361944524441557336929287329421597707816763028709440757263160257111163340958383856838679193898554102858913761197687355647148836322279133039789770583617419881346299853419595750833322811485385929233325498186870705914252077973975345471115836329644087847129785110325779318087493231546366657818949849859970331176396678320980421157911573421204799529280773555893460934157346068991405453123020232027190881115768660242960056249740423162969433821756036015001705375035904505636928778072055993763582089578337742659150239086378364418987412747201718740548043435552638529101802689034925305678511316157517372756580501551097075735946952147177644261307722945248481312324561416674735243419965417173699828816450672221481669246377923876825389852772695631664053771723236247950358969238721785364654199639320555179852050757846381145771114402356981627786109475784239556351989467404450547287125650812045007137116133161224853813805521215721623244466723829142706326915071498444530676311562651421163224046619227844469483753501730486477967978632321655815416592528227996885649668032142650975251681782013522305719156672297554753940081595506226735580687646625841486446786894136820066756843873654938951920863709001346686406969964129139049844260099950425649350258208850086414133305535183252824455455251098536939986781471859807105427791876814807278835112166724788137693904529683782614921032241581744817838287431101665023878418768050672285004380123774452301283833942040844166418619334863419724832913461633212873830136570196343262021019530934947351009900193461348535237963615411249595925119428403854619500032817005649067987717069100841744029005383164129652122257179510051490227926386727597937987462970117002852679639868287351942540420423594698533388550785280623574194257021000804350822118379389130357190462063583212817874103545353513907085344989814792493997994998434122268334022384687708637568175311115600851127896839483706439960959597007843501856887257935326652358971193281087759211600334496648635316609629380577788149660831288618533798124545001660177185978057761352940073600620631398724332523281313401315763702305552629655031963770922358903631936041134711427490905510033014831519886160696771354643359249677560756496426927972307478729181450102617071300473269641259407890719827979852693621418278592174675413475143856210198278574130291368896114395541822837320357571356243432732543182466560740783139777687851938833790227777623517083890849963121746447205832956179919260064138178395514088103999911370301395147206544620828578669053652906138141767514801616300981819807626913997619718386088600777876670104870685552848485965685645534997480546710370491516806017079579345270348049812998207903298425453908405419148439866662846647096124595712860818054178692569855112509852365196465138869747113006060830153761500207477844371235250337814351791528696444442923745286876476365550140127643476549136839643718652446810203341778211299273304442474820430220085297494039832836135435476858968837366727952841606684909323536259104142419845289441403455925816758852068390461193365175879296618528160564097888536420681942070113446187780317918326870160006992174624985201895022545124914404321396926193241941070071504672043883878724919043883835032182682129416834265365665393349361309835057551824781824432215081980491433234804227657645262670950222406540573603483608859500954749747884990549851213413581980031980479512406372345284257044353386027924007578870579390045621045430282021553567813490429252821486211895762934190917893685324453304725266080751912931259685460845978067158951904398761854626460734431149084402680438852648352515230470680958255086602446841782729231190766558178100142927080700452285799701717050404266561173836795768976742927916407638932996401893382815131906203316177165938705243082061202129088409201789729732625297544241179375529912747704222255494079089593068753265538058953874474519556053453037565718139018552123764774579052361028709895422482780163118700802150221295889364964723215329622225527672056778755970559939928414867116447735834140553563769752866458859806262243522544877240211384227079220838425595384774799806792642209235375714054247196481402371862430381092746487286494428497585688612865250053775989797152818626558941745497788765521966192113561431450546823463966676143140304960444506630495544765691596937587156755427940486091277509004990415400386820088635881984830024730053069492249537186742597717159058622017343580889641536434419660596591140572159345941560126091277297764528944650459602976422948702776232937717812936640213956473743618127662561337621318945782315720461365585697637013947225326150410119868725870024413118559371018896583968039757776815071011667439822533018548773950171138977760016443523920195261026555292850096039327844546712095834483746467505220892741498237113118291521359015322225861166637174556313506562790192684385029191640031060059791396500095330321740178638680215797791414749891961680503559451072670518771430922217369793140459153212859244057520838487281864697437650448051834885361739583335586092142075239089311868522357268902284605541989183561481561546780283152214504146501093008429146864715766961760894030383641440744422810692200595718467773749542399789310006366037681092628806469404373008540454183317422837003781092656725409519319521329872456124262082775819439168757937571499596002420923340190795310086322736634043698827769053024427061859954796895830229017522282778064971591144746418942692674220421796996969471276051257926058332838741766098394629185934624788261521621661893631842559369497464577886942645444194365936419479570979923776055862467310226417174635507487556584085327961761020677504724947747492508952895011387707704364878530818525649468347005338651087473120114343658582720169039483189626619034585165465668597077901136069990459074759681002359585219103857696102242540209267182654428078016312059169431147313409683193742923668518329763358646414082660440856394366385075458287566026117436346284850661087775856016211936235514405771174715228640537386069061253519355225986352096865487964793496433088956037232987064028836016811866477834192611228063855113741356537640054333120172355922558938449289970138720241405367775185279369185235753194162268797229701604495893419267984352112669004443604126781570079113485851563437025697800400253314714977106289419060245576263120221362006876726740269144209498371449810229789336297378202931154183568658075075172131520437566170288470690770682871902141829892685025311736336765232558900911776187001801034222455221544977589942709505717828041073697914178775387302773594392452575568855364395689802741572172181703942798753329022261992443295995028202618461890542706930119648805907811886411281513021845123873816806975859542328421747332351234768770587162401347199229441004564776290906730819373652483192303240034080410329188261187867372422804413870731453056347468866257913793782551406578552618495907827340148557057424855238696245042950783672562440782100558941205830066924921346480559172480326074566880262597149383987231962761225458845365097573611200569687006366779426483696162393091738870303406990252301244618755888183536677532154066356082134402072867934882623964472871902123861909628112830410916823075936549873341819366428130004751627377196196081388387496418489096613725215633949863593233330703421212515656992796245792196324826407501765898144101215508985851627621566129390148214987599684836193673106605325152088479008032892796952265275494063800434166156797650757948337736760890085925381220706527192082722456454439941045785249820155698792848109501408249995660868941886937787099675362260387933461704875631200733767505240120937766470940881294246343216580620374263173962023389419560289938469086237411279796939362950204374228845638376015422159241847493592066222606874966211849586581531304656134430960236269343920713589236898260293328304668748397224485376199459945862872992283129230006357480406638316303708627614657799290895168422906236669611263252924195346634537621848201840627730627535559536851894918196834066326381565366532803733141388964625922212716876980044921707049695810274128290619911930086556572833789356506838987226416519103740024645262680306470435113964456731305298960843702283926590572315124519006325633894217532132361879510902380034013104591516613669740562299787323331233896182676618732820605811198429886064804111793359074723374240166843150242738000710031071127397573146689039681443096631967283798951492741461410131103688404888521305040160043803776919147154881766112781521264109887984357679614632455464827286647689833169501739190162706445350056397310726371547328183055590886125534433101261409565685624165248257548176535160544346313897576057908855030163390666359495715537304780475697440609195562101392504333987700201205673750398731177856283700568987914434676898860869803162111699407648056018048329603616738467061457919593431326289270242246336958451027940376567973046824607244045279127733034624202611836596458060777721260381343102036965062183995252434345599362630084889917120671401400168222955464628094404225366209423709510274212177077105091552190609923929126286851322443792726909449757664128333293460369498463220473203972925499182076480488995065538410509690908960211291360901584584161640780149343561111418093812042729981436544944208036876689276531085207399991635036692331655034777867677681723362781413045173787954361303073604150920096515323962013708940867970252789258641411992341080653375943998244494551614255793407487248018460288011539574472167445399439214420155977862202130763085846312300642394123252829052620557674867246874205477600719678565567079549826167257823979308728629491049703104034733374738495208787944846897908423154690746189200354594740935116477742501180701750408038073650018144330405039816113313166471813114908334361523773239467983671631483263378037049418033868684202177070074220631724294793551313048534986861538944838675734461236399705390248668556592939742202782230617066985694516517156808390014073793156079555582492997811571361891354016298272454061727446823244292721063640725602062795288178530946003552828803696991899495327421062228108699770900403039547011776471911155207299537158041687161779349498012257582537455944468725936133443665716465049148470898300877525403020431046270619913669221631943925203378473044811364892957881155944330006017912654645577825799325637573149843419185003420071002680961129608955198528980522866951880480573764112272287095008779500481123322151021768803329746668981292591551059544525943448524417893445676205149659466853825933108878065073645717373197644143746941541081483477886631432059073847921452743682990842258501973423679330271553411070290351858150400898815265045388875035243610458545559494545415112840328452232508973484552130278120817820952828982966780057839752789021248988807326267702895896159983056262203404440682630113745431971930841082731612679389166214150625148326375951663065376385662592305048196328722669217208746458719689776222444707523064938649499344603774849153140144401788019944079690507945449984376343317740958003511751610463569292974283731145697435179636441437429994786669621620827644806418140637834485795049088846331771480094177560863170752615444374779589691236799551458367910057309615267081994452254623133151049974404159868699230879871864360288189411367343776731021739358485877510824211579903823663848116260373950593574856581639254563066139448287916646598683586534294749215339070488421039240082562433195946109208885715682244995538014697803286214061675809371107950594335583223557062933258143177274385161563605253357050506781184070374649461123228924264115507079079711918198711643126319299674259241968709672707136380742605763331563893312991503818883822852282804164289171592483893156981745791240671971335899187619116856013168524169324695587341179077522788531986994968753300961972845908462483821768727261339921129580640237029976124146856045004054407495222315797409170615775566990600887298447140730569639307311497558636919998689864976057920620670752617085678707777362029110606320054438005541944455852883995488002798341562408619704551064795354869528336196178559964487588373055683029703840961954529108068037205803834318745035416759490255615926670147979898164981160209826204241374668079150840646642674806074731279958824063325549365058489498888111448709936605938162148310525472137954082129887137932118351733065814790946200649902256816245755904393967606900305775618518361205492311516812180787252371697897162400832923708001999968613008047248235534425185533703160482903286090826582635947383866194681929344636611711850415547326649091641619596492907045346148848357340932663085719761190890338475707686281596379303846507729438869797941344596704530039082764646931838454792529185452342955176976449915741620945627001966358510154700634616066642418918315549810885515783516290434851668667238635062422014154607017280368856500453667053712494638545408658906535410584039650064413692213415992548674263584790675325593198150581579326190520480918464428974044034231910377295693443491041896851056106113797897937759694989940194786577496833793294044131963893482430255163589069893884681192442997807959339113937246057253483349300347983707530449935474470617981990148171489005391517978526434645153644954210137207255597072026037889665357330667362198365154055559032605149336705742507253825799327190295834680989279641013958330699870298088362294274738513645457457557744923123252354599574638033212870117188196663903189607367328887841914816623323264956581527784353570519739812705604498405778886065579061832585478820911479923692569460794435273731708076038768762367874507200024297726862734687534696191901528286649612299169643996768221114874442402259475197472280706877181600582995254353602076926826980088240632651058164475879196198259154687064652468815378338165649303873232189104221392108053907530206619468495156001120582518717968124906373338171436188956856272269012491076802616136454565104670127683975555868305556682329827344677379716054115954043453926147255474331074249864878262246303303775864215411358704893482225455834592305913343677311539826740885824155087921889446750622946026152068070077939047381236871057858360843367277382603030809205066290256235709501972084545416554828115064589601008005424853325181922646399351493039875064236434968913753132076478064658482918038949934536048771688204040911159129468725696866782054300039741422780277485117556092277113566783108295100332880415171807739595926720446289124272367432554418297331989843831340558058684306583396812826207106296826120634924367113988936243262415341889597160503981108573136040918984050437949544256244435331195120296475498580300136850480385617253421055706156356897327506981066512580221739025695491769869144291709682777378211354014785232483609748606657959488386256235754447346143672181151671038573823011227452257333356555272712892931069092909389388492696499853852455618024074018948724267874146429178147365549111378389435808571944427227891867423220729542711418839278349552098206439041004406965491839334463715897161728867428215413314798387217053458698266863978747085778458777191777107372945087903664622999503189973143923674707832326210412509215635914813044514435336612576525188911054926494457662940127029198174147123949979869726992957491427703991031556408849213453107553802372399659833175104782106206677328008130298288565590821404893075782250369017551667652566113287071402278091626152205181943047074766394349989611020686276522048836881730523341897861767154232603519615755261353214012904240794223945615706760722531566574037057855307742195755002360873425296537995193871788965308318398800667993275645258011425032098427616589240329617204001888399419310001840119670669043232362446323347693475748624329621271775591844593923042787595904594883039312145475175313674731861724981707594718738021616029156335211296698709308516987570455667544715533320677826676319135255009154307088743251519438877699496126013354719883187648226719331126292969360015696947133619346374647813009393755406558366048468843997778013969386614808650772693905649779205359558925797542796930459799834712336271059565111704947801792757117985282676952557557400292369510858081655131276306663341884420993215215824080897903571684274144668555505158839973525233344685066800400075676848469340750417712234926856294233638913272109249414517539822286878001167406163081114207645009032470435461697102993249935625036473478195455465937011559112337305277965082610093979552286918965881395704808777242082083419413097807695042829702077132405585760838224936283499126407004811284285908614483616807229340283255087034418900381684715049527945421599960731862172766155702297615263695467277604219098127629143435514568193425138035205416225276927929332883828769397666618457340695981252336336589353112910375178378182583240751086901758476611059818551277446863248621803456208417197579875855162866056436760920980920071869275986641597883151212722577439961470797300819544431017087937727407962618791727953784071724640610477765576330086183895326264806736762665484738677405185007670794110708176632704078825396709660939275031748355713311524828109634931047803848437292433284263430752397124380215933106832105663930126710810012773805135250262590776802007417639360360980592397077726592586321180908736037823663030218166297268217825169715030264581929212722085144229538545092392828449725743536433187906282691675294566996064373809116544849678995935674648925072158539524773816168915210787347722965304465081490574294432367950794611017723120043723541614287918401831218736194273401225697510287234932849334538964370080466450053347943489786928521114709444987036549648386744997008472540486792689150991397465812036312020176654927094108322356287671075088564369093122984993566415059304243416606919268661132427790335904919441092657750974042221844210245468576285574147557096272052804898579204133742899797106172873042560650403032468080902531808212169386702227044676038099071816740829810647029170135859150110403460723123124455927203808015980954980257147965420667207884562851190067840970806320846602097575728313954116174043622806225998476580217185237287196042251939960466996249525331355766135579525534719382218399831361980360570888191933018591002985926420599246272570637806588690958270547656609610598721786629083845185704092701683693804011114535924713984995244390879123678312581828295533918906337698222830536189764658201324228790767772948235985003755388524941659686640795907127204696034803215206040575618003203916481085573298382887220148514801163687680632975642430528927619708094810708947435222701052597469250312240203128177620357399824319308942553929070459924427165397168670024410198855406351324699369822879607294557853300357996084053189654682539309677651785090056558358517114424948335228709009753948073974071689914098431730726761171260768186336208288822141454921951159163646637181877664236659645799846353987160584632864751796937571042296047163656275010455827455197286055821835585510847087620359165093345597370553381487292069425087841122392805485058670338476092560382194487219270972240760208212657543013742188450986195273372370843456750599317670071407992746671104084917296310908081195585800982909025894053570047186985235490021025264152234847303550205893087814230849963589615467513644880788651209828637036214229615029474337206826034000139315302617953485607878992245090236842935363640416185428137868596073583696868437232394283538593926129251325545009810475564999309403639492390672445959018875321909070529492817922621484067643237819628214475887230500497349101486854436742429495490543180824323422413319137032362837376010510301662650786505337578592173477007776975557291770603857919533889313732654332487061168373194661851959589651653387930613883685547657102627270365157575109309563125907535019203242151446144873371133418168040332412985193876560079491926754379360069890350857402804018286580068476980970392288767245780906642913566581494043007443681016311985915612312438779593010207133699049418223266888596584630577196805681551880464686311179099497090013784491643013847210993502097832696035197599423107542577316021107417617404127176880910941152494530421704757449323240080657236713560145621386320517458785108543597228572915756306102108871151319967696101918611609151393494766199708902690844086053265881678831402456337539019320364316695915851622490464440007443319684404480524195881914188907687169203592481879862936185324907629325738159724474889046611915916458138381298352384157478324566869451319614211520358831938846339292305455655103837956516979283483615444471362891167569853786361397248832134368675192979935274808206961576701686784968568979870743960247679901716027126322575571714264574297422048546796149851796539908087312868002801874475678905947558792463908079832221431907656258911163850681421562610497217219881223528809329985166374660975046386232282670127055953831013595738884035087608940906720138981686912915999043115525882095115688623461182171992332887487242134813124450641883291461332160183610019057560554148537107759302271498480046822278272031433958324650005344278149810162322058144554534501806366725676336167906757433835920984665116973012506156821698801846065951413853268293049952542637273429164381550298200127667686815874148000060521449037529643013614015848956178817609392763430549632250957236891397700583866311427006148839272604485636045806023034109576831819279065569347989045384499609548734779369114764861672803396605204600296486655270386295804894738883084652121799760967224206652193082869566751450096364763218346004714197933451111985140220275235603354814398456955500123850957132909726852810304950581657762619920847495178534083800502586287809521069028092687211673678229457044430927254585132192626613827049322862041810848788057977495047382824940101499551169187247253511761370852029542605005515623630342299793834193730970613420072546427692936672877924131780733201571692479983968519855762281430298004557882507266761863510278220429232083905961724188633501024049260130718900922891008616441298075799739005727195189748348726820923709533111231793630619691247323757201820386666714054867098539990278729101600299612954517338668903589338825079931787333684818327984527609502514299597217556778612895804993139024976173744173507016148714070289714996234018028543882892587813535432357123108691958636158315436641695218164276673339095538174219385499203288063072475996850019340083650340115164922748000464224529831868866840910173687247310889629375415895109684679676374621014896764764164441408487234228148606902932434905615328400660038624537681423674782085286190885824219171332486839225809842941419784752467036142292039083467449146830545464299058450462285536379231180528806048318063351293613216148532243913293175967064711902719845187221298459168120375829937655682067761568916223402363810812695800503556628606910757308828097032819698361287166354476100020086033838361252554758106755767724494808454679370070644795469051603477195638528045868773855534898944086848969942923822343081381236136370104335541951088310285251150194300564320093267813567954073119460503529639253638134749502285617850520965707260354000967202735187607645264961702060534255890114144219969091349194259112010408121295768126721354375395796208425971701977221247930555101181985586288083882423404176057476183118846201428196609660941344295369701312939330692237587250484272583436382891595506585140453838739465405036873580998978188399447528315506756252068055479508732608952488283019964896064770140818162363176623282413367866535165848186678706762402640416613931797539893952061648328612641849240879427027802143021048296936759468267892631878587594195996140808062444818898934342062429480874270249416749880138105872750535220738182537739170200232913316892305168705259487962648874355820027048638068877834434199251255200111251251669901200838845243839665878132947228029578757983230132733181603489738109496278239230198624655730693654045907553866424813806914747715075776601340942711081195522887340464070106555903966919158420716929579561296370475647950622472691374739866392413172649514016147047499545934139440149098141551973035188756884488156618145509826311384561216833028050592982640232885289559228959883003068018557862330461832689970427061432046232093860291930004570636040371671509552419428814006019302182545602261389828301400999741813748832482878625711247409965272550693717978985507534692702831178551436712805976564890774853534031082973633593296694439163758549660775016212560613585726282752810790393486426682129818590293949040933599706806025315465944051178920901154087484002882220199408043480277466307917775600233167958516221341839090289389916691744369297925152928584619267350456174637404514734836761697696750270451093050001200293906605528142089014217695260586635997108997469685794656040462165037159312371096916132508725778750953249367611694685356159414874918578714339785405081508677505876194180704571898678031918402261137902911582559571617164760249154173468510503244066579735729192521983996588169053391370340459553776847127852804796497833515758851193890163310965382942365880051772566341420159337575131134147139126091685720640720358734913898878980057895044708107590752259918032819023209192739704839764847725210389140134761403234647879464099029467765312039656648001900916438035801545651766582164153234641785505176721578958199833003851958334042447732910821443586869801639870580039432434033082645292548105444067397512555657806350958762605992271916669016902503827750586714137559519399917495656416412839623510214074342916810593142559914520289131468974607631275071690611258545950526288959819974434342967476435817817827685793276031133311667341356801224481764472602542327839287193980672402701128418929483541784844424736008971582332646010645561504496122893761270550319240876228439443406915833912790572184637962549398409573240903453596496785308357975298616033466326506763314650505520194293032345267436568177192716094832864955986370277887722803433599036522197109962335291084984730955549478907155573611930994627070896683248481690342939916539224858394666971847157193174625730545745308479840516895875565200599030114174306965649296629706899755644173367218092592907867848475428656862586818928176832296650708023148314061916082220972748278281029626386018257754498421491529638769242265742573529465104713195908841779714127760042395451299796503683849475831429650514203867533229547122757890297499172872566375758558274852789739267780393819155588266248269720852925960194116576611705803888430497130470514147096948481884737550314351626398469964183419969683259468851360444496657376310969318200793863264006156723247949306974262843801094871687015273026701113443116248999516334231388409483284368337339492557534703297921755543695903030923438158654321836661066720435011428804571921366812964906826879423117692460519991871841615933188760059785956872200591578734695876040590019929911080396572571714286696287747675070442717333112723745400656364669141788801791224264802275356746018823397047290956474012048036459395838853777557292908026954775784854231882901835510330328665863056759837542604777570845504828317042793418257083669414483193929505629936933107979455021477328229870303172252614750484996507002380899381202156089119623067128850889382873016360349464658761424042613682019818581851291036043854704791505044567638101813963919200981240628104305035283396595328989817981325547524732050073470538625026783365333123999400213246274060087219159858767732243956676871784677942457975019501183125634872186937029673378910247890484043050410112194398893710362405073139046380305487393130855400332998880527106558199761450633642034368196642683531935989397336932497101249880272647898544636382747412747798419805687116939221938677887345335641868545572840452799126212012068746031856463307467374552920002046842534635119515977099720750411004234022486758769247892217302922754536287524101288877545396793414318857226964368892029097892571040919605497971593901333309968997968811218189499918348790898745914030887466609115833890890078689349726028611452700661411856691350297382573485383477039641413885775007793003554639271054637458782352819787146680495169305607660010179576733963482881138221872579390942217431843840863765266446644673100809014836200236741303776653283596472270940111620261505995549376177485405614930196182814689444106206767574804636262505681993658350924002321624070876553198956806003340305530499378410114362598363019987653181396994489832781606509841463294277992319147423082869155826253912836542893581350789766177390326831142012168930100975761327245272458050681490311738621287226541235479744588089025502852463926793921956071938116883310511222144568991568865304109996671343365412381920487156782712851681583109075592272383546291320623878021154298409610226803056609764412878618341558521693342026434691414849688562611063965110428153001935790472792648240405052727037514382995382813485933768701927920641787160932567888955646780552500162050362134672041241294546123183338636147097787436450827985783276515817580031266443510110090925208802679712922168264000211974950452840291622082947310405898237091550197840877981810453950996850787433778823402439036200676806505565545746298294334472364250865209542713792388118620064161728276600228338168138629471041714110434248120110634633390472989511546023918940295086867841283869345117724712626910786929498904922752385300809952783345773304318454567605447270717535613839120866369107309079427395111550404356908195935507130651069255335818662482121164889863728808837214519020937628806968783348482620475582860264923320247334708829778792296398027967312106817166506631709973648274034036141729088494821042292857719001199332306694227830687155391480133868647392116442381627952762269897035162267827831977724788308623418361757020577933880837557254123785752531597861353578599762079593593367027439685488266233917958675635974899045980940258732159512376956894056711584379737396278020499372200075156397886859692823849757237719338819050591842624127737410968769833150721584626669866868386405919247897504895015438829533191109909436860280336397243868776578969440496630098163016456433592177193926552144733208070194324351643377062310134249539031135072602945019121181256369901900623090109185424623169773828854574766111104866377897829759580417214218840062978058285281759805526734810404513416321800206057187690985447454043248701224630113070534524298777867411806939593521241907467577841335292120754702055570573643611298923448371562940819687799693426624109938681890903982530834829239167303673348351109694103856262342197592448393708985011447161963173254417880664290485861262279579589166756112800082077639580345071588944145047849021959046431528749391166962689379629608587879900084903145570844336663355271405760727460160103910312173101407412642210221014769514693530023463439991360456915751607828975657327237942458286676032864000061896223538293009198094909010327299125985397162501851705013755289620476668808098614416280121704777337036327476531089826819100096238018418456457184732098239884193929920882730198233778726530002474740166111561841339410705554952948195828080677552077718864287993341730144135490944620646981704938716352718609040356640265962238039434226325367901323674178591889421751815209382412221816787975536083694740283622710577771569171642910313129820592182313217358380607571791494062901643730439329278525937869827033155045498172364163640221362163135164803874875444894490004320039960243478069212373392947200426500944579684712942491292332194563480949750546227633787481605622869599614377695421096619013557179136361779981392933353633203195027141349941984659612893198165040247308610223991285828737929366936874911423424887223678398149344488228892416416817965472122338559533855679116713539271253262294983036540197732152104283518714471064240104473290411892323728821264049474445616270630539264190661749927143805223388109347823369434974471264551072270746850712880014431036894654467768912641033385825523537307564486346848458348744195362338872324515990288103379762526179224382338699550731964937922018684964806702132843568848189115451850192799153581455095782350468009807486638904340612957231618140474290943872858320742855909281612125602115778359838081506618494407253729136118533728085203128637629243153023325098441884253683028645638120555160002196147753920028158024506696875911142784805490521116854665103672423295157346137180529888498563133878032912622810154802486260608745785485699647312263445076141060020236724711932323804527866578269193342378731205172353755922057410172010690069979489818549909891078124301320238455758005489363020093772689584321441493919131384905341873801870384105800248517222729739442692019085321096403551968117022639030008912478078018626534152774046415314149339249363940715240669576177936442396560418463861270988135831703495554603154733083750299900018447860785526974160374506128504274678310318219115105212104226177988129602732919388542072988465723763326274155860297058197229800710909675819483400941397919074211926183402325340850148774750359731186502591343558038559249485794681461206304380931164874982277316059839557074963099121406204362896294149823154825076940644932103017918724258419559892253729410278278243192703402545529515111505831229429301816026540193006395004269810457348826721461241726190442727042973591907045322746761225468125067792425675033780992277147772619957950293577109165950407637345570771094811967351633318375942016629801192267856700222261825179704999368393037340909616510040402791337313325384657518173420564105357684891001864181886985362313477001245243181630293783747358954232655762322981286028876599177163094162055619390418285104168466780914658160577623695709654042470282913633424369609349481588518384590361896535538750650175466018469967349998635428722728676618613696968756741524313881580365399164236144154592871295642875732843000985169537953149418284050791005010108712939708620227149580615500140245472643810274232859788569133450363460531234961102810666795088583315713760912919018030253598968608326422754342668924114235316603270715043826905509615792374459679664893758388434615940525415752688594764312978211951240306728523600365581728912677135959622529773814468785867160051959633011186730040697523249814737803803301512463418399294217028787274273456782402330280285560300194911953427576574664033952562258152736052091024895781139003962715698900215090966572160241204439883878897035692089345313868616289767090915489105009957760214705967164135738603223504796843705725443483868066137786748726336619591534059266283642914186667915572890855139923393878804131370375434557186406601804386202757057910325447494266821279184244352634688482068563766966665009418923522268735365132007603357939127018556696410390471727165155959084218493543042709657905526548682513823641788645456382560380932071730785832392106167393399385898525661021221136627865936606935083892260630868531866441735661318981794192917314239963327783832445958599752367851524698588894503788197829047703517620535656799318096377580444851479439497370184382930477185840204039104338971856566102873345022513326502322342381773835006168611953598594560162691285876331954508613882107978420134664829360171408534690333977734653124335101326056900187585639092223954058161600838455716457872302614007865546876447526368306853848249141670278607239945732010453000724020502227728990385106692275699370788386455600923218640537113880021331643447954898278950167595471590163488987850984877823242077961936202637432829534573698916027696799674229074182275132408878180165028768636874689759564956647330216564650803438369539654742079429664908703473865768921083167794171489162398627126116903783143081167700257846782448582515425553119347473310761427697535172355302013931955824289156701825160263478872469326417395352989310805955030785687246726428832114039617319581649310210936979132112332107184200520882317902728111717665832002870884644919118371008557829652443893306591283648071134176335380507323814094027152995230679084776322528103813287768602813726049209204587675256089166022129744202502996685162203440876737179592052533015562818165816276238482206608689517232970276759199815035649348921279444539237392474882627806959863676713107208293144317392242935814346274309656918550932756902549035651080607088823818542738189179061591985644651229149516145435124728320141169782302582325627790540098446362936440114387762546049854997205755295075758027532421066937175498760479666244275247394316618021946550226606844453293143015223825643440802214658835260760260239550738373507046522406414723276935923746758153113237938456137647021514299723851958043278383390988317840413294689877507099656755584382156414020843011882721235547981572354813886445179647699208348117535943848111991087989090018037083682292830457580338709109892167728621076625376523836791142922925608484632102446600679283015199296186277685109694490494282013979286952363871494326740719699648915526951384556260622266130827936657643870830778638862952807664926386273331369496501803422714407077458288774212889367186374201513095001567194157772330725414944885725274071504701853090189148193571360390295486412681990452030085245553914721043288946332374532811688511961347647418673389679382797302306584294123819534956947154890070968676949795713113397511245921506107545923196789987746218547103845682603694603330984218054752480093180601633821503187579964300906923914907214876889475977236552737394605268638160732324634280596639413580696316265165160060125804177382347173463654847170381127707081013886276792643286489003162186374900171102656710677053932905091815326120137437063490767245406379954381543976979166209100190043462515604773477349132825482967259468918981348786235352179923415230495605567109472341636488805661876266923319919162208037728249620774993232085051413845534114762867491575706543950291480454716153936221405767042265667061149744997911649036013138561170616744433443384056048280491223834753252610976898858358136388196186132667500461990179708941563402186716249064217833496341678016637081958358522303628673318276114249989484713799706898795827675380692183647084296875996729079895330333020778229614865595711968442543878084873282036878967128019342952256183001104156896212425087945492979071714226421811193704090287802068561241474571931917313929290270090285889107441762088882852446596243135638159934590853268076790437869817317989358713589187439292227485550746865077281683751936431559040136531298951464233638173328417836968494007087780461359340228061385294246908209227859628704072839382704164221465034233720006412476903585091626230953604671559386524755028494762728617356222255564873410982691495928153783507049462595875957984406341138313384538221735679521112132955829935150049617917723934290920583821594889400871593273974144863867264216988747929646763216476354325725674968175934058838526202479582145753337609233836363372613038662700498464145921506583642026259307984341381798049034687611115641982776666473297865131994286337316049777635474826673210577813530433439351757438749988996138242251081166008826795696647193400015736104311757600230761657036715883227873669654350723746646485703927058744230382210998668679918139808284817104460601290356652626402465639368203596674243425525132546096626056457746932574770589032385025552866888474277963578583034594416903628326003885119549056622526782573503964696757766073147341386790960197413832406049745548368861150087130713025090800953151543512026626260871074757664756648405670245752304998990531519577274590324512658817360632036506606222752757305560916085795052705650800552989627482806499354368171725085237849980474414325327467390031590333708518345670578250958693500391815588751288037977121728026959335469959063992844960639528469698594390707674409456708415162844898438983741866162782504916974646768339146866775174398811603227611033023519273275642358940002180182053728766903544656798023003552062749041660119188825301113885769721515419536212571841860529683277571845543948361651659881864541543947830230999557270643427126998718472325527748636443685537552419895915451323133985103907348759882990056741805725259823923341091150230509190802094548590639146161730773831698211754864271866569320280796731167031072676096465170469690013149311418849016039853079026307033433894346787482647867590882629179653299808072422842008298354051095860512614874169790188128407561787448631904392381565741280018887036595501158142793179046459452133324671572288626725608486609168870585126550185148873729723380764091526310107701646715334897579615666247824276582038191364179046507185589218996570609604533620455541806494170970818093868815259856834058362974126595120666553820841643393203633894376792916696552915791798820403061743571460478307517580376361437249245454594606479306046957314413898825263802132951280630321200761392253028925662206027525331647133765612528351820200896258015879010393084120089904153884292656420297327743266528124854408713680262066475875550157538789845573535048227554100848027488001909040289350866086588228194344804828766758610031363755333879934485324761927111912931011254080949425120646873044904731499021497069723372723896251567016286876179978488770639395075888931067311303790458720047731644433681006825711242441009080478544681998546665292967167486188477366321833260061630194208283071026822925939643204031382566026185910530492347363429658575398459705615184133450233222118752738417129139762229141686582824839518127792432931113029373064763835397661769708495077392474330842002911366575830552430771163901805324937360620414995361059399771643028088221368442336879688268003930588887665627023694102146930480130552076446607163228080787992020686555724794582063049885681106410750278726029946730613424782619649578937484336246671238115020694277303110883184086040625142412165079980450493990555911276390515674293931124267971697453129623795199448512824365404763746387175868751272215796916256626649299363052362359825626849430837514366322975553007964030783548341384630237354977757894062949305779162717928672726282024411755022944470308370076015545686926208161745172919422712465729141782703352362139140966105070641755190817310692167079740445109921360325187505896402885255754433438382440328938968081427671665929428965562897131869237930959414803132363794308431451049412057573353039836479392501415839562613383684662505035933972505646377945356267127223835067900877689671265785319657887706947368792179885633894069736145901146845131505472781811655392174455613905300135184873264488851008293515781398665214577475085176167496753448812997410588645455518946669373051275863696385257296428484331557079691006704004872313145385235983497333012076348286778258175121556984962526975663524200456610253138797830436298629020986684269324466808887007454951747845483467198274762040891500892740058900432781641652253295580253343840989278105186848051374655364861164644441580825244188110469787075559992122669358723165486014180282680571012769367284436953507838697052394114608626789847319810536182595058431438980837811152027205346449726635517854554376630867179088362659745670897522642369917749452399958335221461223234260614728947354779714953226546844669846237842043232901811816548116377765000365780013970002844899903408530179022701719302039961053087165146200779712079335957424250770600225226211431500350633607525458977561231256948950502425989055689276924199630203671175519472286734562812920890613443429772339660008887954464990431192869585554031527280806097385441837065590585623406888523440368161352484033390021558928549711399397009576127411437685486883153530509747280562767411354154865114233950352976860203646795491126949312775119765030555921195410202603543942756463294489301202609420535714386877687278281184827654424388982136984087731102821945350006882109114907918543764623268472152539291392370289646651535371198678433416563604055962881792912558838750654961701780000680999674439767288174207475886309071222524632134353240223887738868113409081941809273611273462879574606075285511056120338907654548035091354153668108042517858283020783176682897228390019259314460869544562005714066602129798896696806062172542448310894901167725358579774648063908118257672263505984097762048123362334285590815582928126452860025570867683161039803594638345535507526587820429921701123478469442757641104334389262009612246875453523193979012169656455224732221176760968243759505826361575412336816933209489919308210039128460176206107488369938749891247026204628252419126419490373133789167116853411759463640575224970721742661539050038489404273663751583302488154712431548695212406446203095546366989683751190779730788580091440628356838354924559767215830964516931582130410669808735680159564887548550178199240768841010674966803006169381131358263941247137103438728159600912725974579595951805462426455903745008766097289988260570533684668897526290850655314018323803602804151181761724296288211272358966977226615147263942614102293744190994548618486633579883469007744996083105315318690278229818556619928004459887706070116365809153410752202894304194141050705864275572228756039025878059071122925255139146219091524041048978231932339019491023603934894429417987318699380529353412612432315596033396533537114423387517570366605180370032428106271102590431359321038456054843122083769655217102458870960894436091869665693451313341249676919010130800272866414565753952354717655974841025727438513741788447809292901980034013635502971257995702825077648497535190201280526720341544551827263761862377873249694589227964552322424257539036313876954417465038898395340964365877644204756459442926052396858754773656731328047108432638380463119661845510232979926411152490382893096657207155262715759729028502340552934468514713593489992922942478632708408392746419727078823992683889313944500300032592074383192435842216252691267693006041921256303486315105910849987863799827976321405886019171703583790226992150812996748448739455121169458312280109760727666748051862123654519915096499488189835466830839812424395731570091582637138097836768707331635470419193641440291564165796812169893878252802619608595361450392590573697752356110947717171339087960354946392818733888364278113904849249213853487540558553209301028897232895747481611230383690569377598540569872472619718993039092544594854766349479731587481850816755640729308636019380471687424894031370943714960231587399739297555002122886996882995060628426698813245283636974101915334610978452243560723705546979507387240578069686702931841013702158929897840487024144209414025238753345000856091148693440883189480252820913599525233370062333213957759125139470882143772934801306158780357272677333893667953266836405869887626677056682785348134127211276007800898785560507260524103472997126878650057047752166864863659247085985116163888105235418393763505570916959623717528001655942819735971637779333132197108967289665884172009407697141130422523126809163616399615506618076850947347105237588586089057940889839871757995221206360107218043704732811616306044348448779854042924634484957190933359992163274705019460968402079506189285922839926853679864060035806903158831244660518119972814091804674212111866583155981746094190452117809109840438472740258989389041862027111814423317127015823847965503762145376759053766452231095486682815230461946876652078727531257733884262042075980463568248519385330351403811371570916436109238269082853325570511829535393928717064913687124264457658100600273041281524147166008269155789362392984044635019405030035841676861250691895371423846710696334042429363297815684990622557164717186552032026665868743912156259120262249908398896087112902636529784801223137812830877341935866796526315364869780478965519991160203000787961809812715154275253633264587647724476737292675988967688842133568575218675494487893469447578182312894117173143083115249880700993594343931776666230071152312645413180335770728493709283028746391801649732712021645279283064626220211214002604168995286068056123040030391729761369866831610676572960610764613975888426992798835877457475593140107150128390758713013822866738648243920331540576278849295942455321705228885998054866208894351064465136390715732378188215671366019137507688652393370842998689092449410164722586602696105140881044958580492761350782042829760865302716074694117918449791057016822975320707305253022764576659988970398172882185223891060685932031152597485213960453106251910648940021451841333385366154824957943378532298377490322650924480930841569977053965254071231582865663512289569186531353115585170391602263356270007896695437818852985917799580047983273339010456123059704218848921148014085222641508156783440711921721262625126616982239992190874436618987837622778945220226638648926244505409541417050130496827273889587971301162508843991631403243780368667732789848372344209422784437907720669535093578223859092941992363707308703378431626040563645796654284517179707789594194206458413579387519436888677432269105998514393358890948581986949590252135760403852389623402590150638284284716830326313414544377188168387875697860525156840012638701661554387124621969275071286271069150896023736305832008044910396924993228720517458979108637810449321628074885519845364896719005105171844404517918421902724763107056686742022080415588187438612821644831898457943461213049921914451958282839460064675090819288196152817212674481321457274096108755348477307457505460007085844251490251226328691217810412294912421378856282489022683958820405634865665279608112867110601203670335795094370993387131268715204343412919635121496093208979327069532987162711602826240702398767569512476157264855125070666695167004308066901125905335354228411407373341075678097902306523500024559451228838305702891580951969076645430446076612023842339831477382045635804700271231059331181608921989684218139643916187945124403838420384126322890662277323345573930254950413272820023561003891076713275900801988214454199903237807063444891639367443096181137543148120203101610458091080852667256271189966180023122501796278832694197371514386786386148036510030073959749284901904307502430041455099663883999879474377174181654705871908507907948383485163095366319231636725387251597883942396193015854286695117071458423545509995180322094247931816616193495187239404669157824085641261786493467151668022913345285619261199084327338927647718966953862470460837196429913710500141440806909781353790471276065522463194199407966003532890461257878145198577281523009027161393060514612356521011064263044713263700270899381127394464984847412058831719496397641216674869831275748204375908350826176464513738863836166727766212185725110438678736725068812246781847194332430829366546143130967756373320414140735777296555862983315345858052262208621219501142142979669383807211390249332036253583019603524022757997749516801696802079718268165167077947766782020406997649127386060798347476709180544870475557598072747489591099584215617726985126108758756334019480781668438891902584570163661408028798248545005651683508247226119338337371299945108950852038480762115110173679591311763640983389989426008591914320971307231016226797919866807214670567007389770734237127682318019867609565339938472002005827637083269071310865964612547607547697761673739320632159668113677307054355554055978998800996213834087731651278955918105167307088680109375308035369212275701521224417574422129899238998604038630908687186608414795049789316953194005319424254004960777709873765464110057881921923437200006201989883590515331342191361544692405484600944139691172138913745348975917667275977078556935041398329576573145285452197222200786540224498585044982140603052699935561121536618537664976571782760982913245935692749104984411745869961513539150388801650290335667747461913422051017346704333145193461035145293012714199631362628376740544489184955904123575766278842093755530505175546099545181470108592455226929425755295154757006770100911955239563038382871490642389211116532911001300274631729352263783357968703857553082586764126550730867068728031715126557700106308612271709852043022631650048891454044362870981636590068480455939813343279602830769784956101641198116954981091130717495823002627273708164566276434140875192428039818629653156021612262070951246953878244426739045502651074703590664907827868126090300025606224571980882835593492952510598113873793743573328282744205420709252692759956354375635211034903441940345714828543474838736845694274599618117585499831314836370354820054252337200429397630675512814688184598297105585219261808697904563162126223636047159925542359737387611335977023802205457690328755992560131600088127558227081202721609429946050716230105481138650544366144618017238075306278667783507568081947395905610500204772144933080068727485497216750712186067231763762356046082473074487896182712825767197174643422636308069999205118855453077612905162504150100555099913535907131839145972956453758490662898755051735401789432968386832176145280852490739157047844677047459219922755673750120159585231046733394636894493679856992524034088250986735055090804820173979191651491485709359648613623882113554610542759861330511150267414493094279471364012269099574394450347027215563349070429116795301532136026678645727355229601151671644942490229430659670821654146555834729646201467480724401899791679137962735804775432285086730408813057786204364250103802927456036701127288730999444979950793363856232924550412763212134766185684264561241019082209628855324176096647932262975582671848862060180784772207647673045943443843511518540210076852604920914762994938051290048174196837440682240723854937174602560524215989829002445092299639214952039831620360318974149732681756758191483339133670960202999843663877280056550899431916278206148722031307087111653789782784238299368977238308421265197479920943918691214945509738821173921775911044992783738267789090088768609678546227807136953710666546509266949952810424805593675257995348013499368994099615001698613018154526758112123734275255357621334556841847897462884995773125959297024395352692260597325946003623954786084077861599403595147075002055344823517769855219882288958760180580466748377666240318115780875617333110374404788140863117138132435258136298981546060280141608469133847753293281209202820979131733801837284418352063950598862444926945118948331195771496314747763861617348944368974627378254637412299725972725176493215707700309916917594735620994279978950146548950610511648648379168245579500881821252610993960397812145170102581563215921536119738019024293828198645383440878971400271427977710692380762062118673155761780076305583778491599199852727881748758631272018569366637523072554720175877845719753994302012997548277139575905945202064501539548847657020879081258091672413638439744219059122947524900333627855357925168090934532371175941134806067186413489331959527927834832628481077112523019020059437125272210822158948427746551753496537207968778944773037298673048797826233950284912654797939601112291881991207257358171781849869208438336790796177695767053391079318082530026987210954982163785216021170105846521157988036784309176604648927577198421258074027875724616675595133006568942871882652338794720907785889361737464167583093159979291439593448225514655650841489407481911523937566696175378583087056571556118170163011477553201013245778487758048740465477224099895840370935852611307662666361459752758699747085988354507150788217193890882653239018620177579021560694651813248483527440483046261067965401883610591186046209077240416212179917580300228823651570389813080815947249800533391920518178840804378078948683092518392312861864465980077090218515089537055019280832445145891955251457922342044070313093158538942129453006555011402334847051435664945098681705665205118098020183394361830395058137429914447286188272347532862550764913370702919615985553905624608310969176196113254244266364112484838288330658661942871696299851476541892354385762764803509748175934381291864097020105811898486215875238769268143295913417929309361368960816240675130935360214245801723371500121842431162889185042782144993019591790288701806014841637409596680576328165277067845791303389272954299487976478176522887978737679755234527987156531434296820607479348627128423926408016786618089149435515963457051493214361260107406932380537288274948994153575965180089045367314818297952510977974173539261471780396423013873659639966423373781681546151817687008135215799486867188610884370280936369611210417905540068562512381833547381877450218207713880802225948132956790744991664460116159443436838134775993505649893674081657281518450041602228468284887407275384315301256966621839427803171648517483935008207525996505982156422825517271720069764212685129352681458464788443832010905737447078605995860269029085755369984184459781105263886734672064253219303501739412663593232404301902663364503662164206605259596071516775121887014206574869320665924815364231895272111589108198493511995546096106514857417863836059240662259510668279519437298170578632094853389100184959858983385863561718582019363641847789841438515732378377622131544380667448215767846969573901864671339801310556839122257967175894954026465258405060724307639823431132140914645183574546023851558861010864545297065678584293533063639603170432724861243478432219747277828842768143100256828351332839267050478498058835230109302694703841670729905605095755639205123027688794952958395119882896289371248208259288320761203642263662277249611528358565333934709030561940277892600149033139038112437592547121738890558353755771433679118077242929251805838108006263219843427863499626455032933259318274430573360308963963156797234224593314871031874993239455994287208971257490174357748627800078199511170912964402891334227657325737794709264358999344721320881203827671883728299287515191165832220410381067316361834687749684428324959569559016879513725110750637680854061852423236505186642956689969207450575474400242550411174261592148543852288583335917797056245823435184906331991075904347057151373904544582864662172769288320505845293725909703572984470335597059733231382387715503844867965690526729466210461352778853368797455355874943699355738741876377421352200968643403073787317779961910383539599738008711030329268260776543023703869698481111136700452448592637850640409770949349950938469027029807730854785400400964352420227859888728018010850944663366493857588194068602551951646295670965467694218969219519065005347814178309823377817022894778605173966054594177510020599084253608999083401206489241893873382159805845044869844116141490399952509579408759079895805566537394486220580175269256248740189627857468650261971773197276938269688035379936453915235941587519561120039986074002166932854145807749569720991169399314754410680213116171414845929326487310153741298339297517254566719864228219924694416393051058255100160056477879943432724741568683378031324516560136321747336646538315703543719705046628532393181677457690382714293464228136671511528448622698280830419366189177411859982655900391122779323676272618078932218718975476479973929148943106905723333049973577050012959809420313941804875634109603890747757691685654864051694623988080724082339495892459087454160990807483321127131610046291592973338832229231571565430169147946489693649223693995640283333004730719033189891221556288476318171410816871023086791613740611780554245227313948644403052508670300999459807002979462555910474149175043762030849464322314364887482357062068503651794714917683030603093805550156258079123583633666862488865204974072548831004622376658080098414676216165797712976875800563670268877403335291260999063016705286162963790725651616938403205942522989048074508235241720311865405169333602254341180008391682213076592335265617988372130862206303571137989455333075981404995439177838154809879832237010278742537334523201750258104670174946688458377285080920952152457376301809200156186148067767887630479476389892884181070198526568811611987594123368943465245955021481025915523776053983681755844041434022226995071936777861782839636970650132259940468899781735718512394531454180137365372166679043684183152938401238633784174424082727228740580764799359597953008230079518310982150855144618496317910703950040804995418523552941471662840131764602505604879647277830245640579701501953729840670364480928576228912997090457350922757364405399524288028651847830849291512072753886572188478451580836359269493159374571979016262624126386610569336259685082380849652612178677211634168737987170607246647874995754566145733044078165467930309297229245335167953342902422486659345195786284813412261824030869671311305527627290715926307117002402585540870805269004522553041892192735703610497301657354206079058286843761375927039910335857201617871803614773072560368253192419379459780363546538505797378516148680844114802217478158674224711734472990939843439607200013484202250535844564127938824408138278916689582296350919816931635999427588669732221901468993836710463821259617272856168436323430137835220720854641695543617912342849681594820283468982774351262944280450104203179607358272214234845307335023225335826419184335143945152857442554782290684526656723849491775394518043836637223490076128922739374151820859165673084276792551796028594109911145453230264415372536645008627373221509994036419322954639283949211360492969337637527415929653552021948192811639947202445409473117777696873449841952482258265894464143483542372769725553893989705265486982374072642033948947160455927819439863751391942585312905461516541041638840905162933102669509225816930601168308995778518626996162252655398017475781257982439144651650116998090683083155986327432362005511580701377665025549997599595721719843127497512890550967328977014498338708275590886393748035930383210958812608883750508303903495718122659374704169901579859902016387769988877773869728007440432748877763325411072894463635986900726312541642157433652231285622430102942232009506633378756304411302185849554630546165056423188951051951397796141330861445963637400049947217176333452050824350374812143737412886448556647814777713564801387074392874266449679372277491287558317078750714868173664311077253626147641220024826020757637439638062012835915490898959685292974130509696928186850413101887171027109844172374298539851849970441337250099027756596238870343639190342951210103126945886053554541488988205749246656558741185182092034658274368373405048458991232474386099476123658490458643049122386544290345427397068555546357183165610563683178969315854046910994330342151311501100129646302626944928460170326388068662385543185479859106062830447654671099360563108497046553811311478113418385006888952699991127484786566491324560299939113498688301925642433425458881132312992819432935154588104909667825979020663778807797191847794851338857876298453026947446931588592608056772150429360468177985139413306716263154150413789024773788282003468202102004929150338506374137035747626268997369076026200862826152668800494730335367957422265273589184402895860884851659990089035088723420626735177915763674619850310443426793957528927826629100256977831804187290919303350555856387947038478534217697175256446292668699786486408486258230317226269158156061218597094849725492266770412913790571594893799528010447639500350346440316787044256542606647917970650647764928892041359473829673174360658324608605018919681341710668173908542850232802986016212841761093805954432360389147686573584084033225172957927144478035638876167371450172331387351436603551742292831455819628230188136944967349285600554345251724210096894808742946664048578120776152542707349729732336309377606755864069686666778968913203752198970779643274875915006910279268237897460241920543358502980077684594781409805978812282932109832257106418580302616683517530662441638010183032537726457546883424261900650460338770278981787159377385098161717504100207236688811855751596070682871838597899297826610834985984571955798666751323020136304547972880353095627946455548427222724594046908724638116997634079585105369898591296886021054983527160751049386407967719366453816396185298131390522366160746762580172085430575165036981732305833405995515048515297390539346455116276772657647920435923655372685098754714105725461861498902949140981185580594664702117379216598816629747220363899615279823196482719065448188509285710839509688440918152781505666576805998446381992963700710012885723873586564901870216072476176380718542154585655656932880672346572818624588235863606603811353144718225159034965820449023979996255327341327795282780267859771492848763807305129319774210048069181259528684727422476452788970282626855533252567400025593182946247911832546569001974795314416395205820221425663412678038661729390535673156770268866901132228018325228818125020089384783732102289858938738319310569274976771955728639358576698878196315648213405026314769894585012779857529879658108106502220518518025612586059563265974702533280893851514377703068196368507460805856434038165943947787786636701752479969121591029974867726531789595274868563202431622560913992800118276296666858524668824193527316547133396795509672257313312095733637291761921665496358993287457413855329214403321314661056715947325807979139801676699563146852004213532710493240947950293927516902328557330112542943494844195526787555825992789499166119221655842809292222415668505762189194848054141541447624798458522231266560819002573408944897152160213901855567703074610429242456147334263942010579035958168690398427082044980620258614003926382917395369950152903628988982268078682789505935771574196838477777792146500259089052359850751006023985969185783392300677218950655542596947724836778950552731443354181422633874287898910511252577872525350388429786484311929347207537053714340291825829245723294660187097639244589738854471349316856506818669274562403467944497626050165712431191183117044942963647152651556051293385622777665985922733182577820169168254209357585773096250532373613710576015555277464690005963091167970854960981467546213082673248096511541595099371301615135105351768143049756386186145224707227590459149138187685927229959139379547422605513874321584432976012351819232817728891823120093651531190908806719524949951210125094940416693035987518645395984546539853451241825252703994811574004811989963910879191169282313247169511982065856414709442442883582401756821807507674096848508527458539725838300360697116277648794622664500216133605284845297223080618557521672992135872812999375145047140743125614749247342112330209763915294882803794757885695446338270312055776080732644576838468703623214652702757129457752371946793510156926746430077689207480202568168855371372744460025328085440433638033770152608369751340558069603310045206674341678499499826018779237998326282992617901407936880268986011322518821931607922408157996502408940042908752865304323990481995481585834441729056433605261284369820005666002930576507668018962350924887324675872580268999631868283948555231351340098908869224688029231949729519812343609853688753038295610229957635252551410537723921434415387997074276328770040932537613416548593239257754090352508651578102950487236256173695554558302130419081273362442546517074271884443954310358255453740669103826597766718135684895300428971735414926318571416726961323209238755278408427324948377925026877511506013126352464605408163924593623354106183184271612469712586480420676359750017749478056935434159183681531194317203956464834713690877056147234580012764044960409007700066644594477661228155847018624464588264733373132920288608997099943635517843415224185193656724685505419096194711515595348743597466993545805048885779697746557818945762526539617255812239290189784135589622338997107018045124646272690522996020181996049753077828444252856546091845736024515469780199663664772164948805207031342354398558557271154538033518637687591653230114317166075258758784516205848184444519681088915807373628016572935603518688497968781959698228478612436296645690540371202957333406802838133995861451665226815969374052514551405456382276158207927891579674819759557707197949152250165734218189701166934339794365526334638307933925889893397793146014315119603291289987109286680283811482530541632724452405227755544705138890781060395780494313901107987926632554338012231032019112128743966217898498536719946410474870912855491502787069121235217803428746781352564384911550225485921988086037074973722809175581159368700654696227879602999032580641025513872894605764939511920032892311897229549107283343627169652420960393108151268037263026876576449491471955000138523461026881312363106067460728599498481279524778648140070698359901116617233316566594120106680360254901267429600924372872991934449668838264699020388364152908490694372996499079681915127786619194396951857697159522416413911026521284393764758850106947853681360429539813701073538108530986057697999296244218807512243340321912263255628583432793554462568116809799112561230564056614923261123625798228243338486824104064625176510812969259800345969458295538783017946138657429496551322022300333052030559855603733245983880706732102158828992584276699848726985042346850411581725309172376842888249116821558483695825422845729119000400373493938197082732438601740915395723144476911776202082003173106574964540627818674286395328907610111855435318776256643930072236255685230199055741158135106705004860063245047747812996126520418037964385582028311380327534725557143984639042836821209927863597211207451033728626523855984988839559348722455598122833361743339131911578576193880827313355139701945167019336213991629810962492179769571752804239411438255800715442582082215632011143106385039511344558140413971569976574307307838045536148925697730453470293553169052392928089600065173937494154767078315070564317053301141674696850281048767464218613741069171074484706152498836106631273986652480134825872092158208669680648735952623945964600782276828165718940508971347895627297478053308747352569398064549607917200478483786803783752121818092287110425992599627668909196237295981985976741364029245622123692928917316391955033187377925108104330271337827509849449770903094031675735578844859918496547181207435038290341930233246960237881673537912988211759875998393521118613018617979470548193097056700627750461239045279581097059833712496582217540520820577075771675575906742484506468571507469381583425039825569380822583811096204328310133358285270740621190104396062181656475002713524455093091169089309034025852047923817420433759187864338250318814104876619962882304542944926564210121609877853384476590242190060665124234829516585838688093473317055340248103894025287633241002453800572779430090734728715121168091459400897760018051143193813172167865263221518385292789902175697259466550234079156650405875729076828409536634698379519944777254938351202618388422611982550554676944168868772978461115488653639461072054135708637422954899351789227642135942816065869971278160870962330508899228139015320901309389410668357659144609016257470758727705506768465179994083110513219356673960657668817092850981723454577543039588381413177944293166934116228100070592967307912084130774451967657625293208954446696295907963657807621767616272694831536307470275311515031668634527436986684918045051247250730202336978233296580693354581309622069806399113099922922777232137623830854371684853070477992945065984480580686430465868182810981581241327698446057759651359166313515402341468868288476780812116351413923413467081549916967037443718429431516131929159978427518658145891096950287906033029182224336371012508233107315814070317631961596238389841862181219812397569876499914512696509205569003344247261024603853841263538955592700733026982089496237522220833584203074917370263544890881990228350663489783119612869562557109129499765356239174005086843774261325642632314644322946315451886684570363061369764670809928681378866716857574513766521929324827018523078198942295174893809225973043269917248758353885274453912351725724092038011388333435537930492445165014931165823860592810891138346072807947698812896257888380651699735040301497498183326150892505914366772242596811698870941073640587111727078778738653402010871694257036620585015190666649231947554581924524901452796779069537992472016499898241250524115741566602555188697585740213930726870655380601521242937187382367283620921224755147201686416623509014873746814431168085683575188568160463451346849129671210097733483170583817155241240759060434497592620767943521075179071588778476180863813627802533135395919929153854354632177757724214988527915902156422689456059355956804250301868800662939595216525761102694911265777224806589878468747316859718640093388793146537143587829810034582274193411550015738281676873240571776140984242437849270780770823679078757611900677474701345979795414392320225278712748074032373701919212887774495359356089977448643647970834317985250481439551976067936935371367429934495498367350997869017018127319537270476882072795386995128174892045564378495219085933508096100960894711616996189798607760749620785888618741502916810059957655195447513060418540113862816187499599322082083091385754365380026192021497243233656271666008261090580909149352360803066576804615529015306436892548145968737270577298878425833667472753553914049354754884852589921070910211657911808136374248643678248039556405622499626312881559690411086471884371241864572532606190057461031957171859513434717917958376408120100281529433973123344758542514480511794080053786572851874946528644597416213747102483270616324992393094678947849548094010792784042425997864250771397695465533318775575321345831302119714509382489350159371267733552954869056234166050472377514180100276094993146747586978628880539362585070305144636459890992973551606752309683195946164794735955160549353464369355735251259718307028727018844789907723400203998703011164345984124501911860209583437024159619120863473669711162973077017654335889065293468243576011222911254725856238579911597522826355629555224891339819389062375022084193054951770956493518729100233385413092454201089748379597478390723485744812969295392936661880524145233425509148263927319257578024642930581427948424848937723909978652381399762715623310960903484078949684593467925860473066907326635585905479995822127135513898652560334983022174396451924726256175783862207215968230537040110636792469007884274243330283734275394029189529052469957268735951384146929006059637010204600302980803491028174040476292027424176496645135885181030122460406973442536776778262940647195501755810366716263284927391805277500763841222720395247230157400759231080508433851205997559706921646695067182375461414380476175339086488958585338987319394185808924001302556085880531640578278479702957384052103497426264790427466702691523579527436052925403624799072208007816201591636082544087911988397571885501860980551757545969989946834211569791149929065720747467548377216797017068850190205800738538911561876555655202164297113762333059129250638184632228128157307776880755485958582088069136849968866118030881573500767810888490575157916688230181486115862418471880639476196202926351955249427339374675425335031011415464342571319428588946839486445450949851856300348565422205257761085873533436497222860016458385548238585923660039976439233471874828894114042228741729865921958290094992022508467448720192035938701257988545428925229921774925781012927942566826595004057020814540888642028977617499211043780815050936913922738554458213794979316057673480628636080365806628111337121500270909621530950107235660814677182205369663536436237088158602456868837385699063272961421109497844633329591767319170145840090354100235415562073948726903199768951742695053305878515610352646089473316471633258437063689924630477809193563582887440192630042055958424270792341304351525695070931274540412420439826691779088251252416756245963991694225702951271209857680010352363581788324053890278134342287172671115103994993798553439398309740177506777396493212682278478781223337404349518199677191708469390541319449231306642091832365892602310722801938050730486410309722414862683747774739142785530517283681909096074377784003172418056178943715415368226975743206347808980499448359771662221577515394852768088425631463354980598431428149906260699337951011384926240931298065678935926951141757669495294225988504681346167053128965748634060307031710002470998302495341636084408761678664706054755326626478615365867738812158998931034967336459417186803484399170228397251193729626867034290645389089644696579184721630320069341120470857427652787215365699023380535018864906052900979294624698762001302503724014571692464733685121828720516563074066700657190931776800040952126868365892817794079023720479551803670812747355556404881117771385096942882549961091814160945364117660063072691475576522846510301644405589666240999070397927784534396877855108689616055486883850466118128168321877181818024305649631814586878538605931033807368429134650001824264225567487145827107464932475523346356135877946839332853819042549712766087627882628241547403345982666184842470104788115065898054807122761699886835090163497076946480436162282572269734640706139536556659360987205576943804290923970575932086585923522260499272854082631203575597743736000504131613705153751973221137752475400745002889367073230318581975974769844003409215798598493944722605997843401615586079188290867336441301945649763931252975524039703630058277239794201519149967141127331736676672282903700591273679591584164131421432825552807007757177393361934950684115965843440128017633814198042333515982877837730543126787445534087190421799641992873831849928342583652828531107640442743188076083241102576593801128385612532957856961659880867060209035447055584676914275867359219798996604543032842933013967338406492646613456703511219104093034723826158838904832149657336513829597329363078154375726430049476034105445818201492516586812575444891279525600015985911457217874784196113082947140701429004590499143037731339114923908802774520293863015019768633733884545721726890361599184268497808570798252532590140840422930861211016203653682492544539344360139542783124722297828406826583205751404903521824372303057692074504961054033201412179508028805420016942550113889200779140321954370488776405790951954068954409297117413000406235944037861842800029234657187892745637283327517456999968110481993634798528510237570586681049015601184951073944793509018148086314228978654579760505905885507900617158940384636804894999549501684147421422328805624006974047619311456715819535389859312047041029104353413553942063478131626833460890222171317445870072011428354585083554964435144467275606999601517794600817873582946958849985730748282097141533186728266695500372009765510205911581915131523869526268122485982506014852594755968105843982085742321615746757286193326248561168946559740755503550523086829351696141422486990026442099395410198117378633159094875870499609088575655080972799271897447260567841647141162984904164395655258977610572437084144540962700464630247339317664985087202000247143523052412580067126809648779827692096812008457807407860033314197321956881785912490184112092872781345995966399434612816559732844844682936634496430299970302890110959975614868872830790477428565823574716707651598965452847387521747963916237387079681203202043483999642885591931636901429642237114686765856021260821405060759086601583680975199455410241139392675849322586311245365253675636083621547727598352688488707913427810179713560064670677936779085743341119346901459347907721905742529900233983320557559980536077936915502223563543057113617418877265580406495081745178785579963047335833289673343374569081599327338356156263096978848485864824528556014039339942535398214298281830948514258454430333643045591347554659008355373721244616820034047600754975842908562167043696734631134529332756327757039580001952607453920639964253574937927475335404118511100089377304739008788658610440784857246095259158735934125307567492284579927778723427310846855873985309293419192153032834121658152398295854074119075625774385993248812664163398604906259594374510155278002142130455097624892498500140760780341041271882067849493359570937199363100407467853143377391619897940804717277689254542752963234726174676032267570597119642215548914731061639039013578631363588228221797716152556727679450740860755664303730540749514587098879280655356069724334920420365144015897526081930204799077282517479035629618067614343929809873220999686228578371961779230094536197913651602664722888087198647310682817017671219094397914351731033923108206125863904072750968423660150407581821328927174838345015632277194573130362498567058664250255853426307698695500134537167187239620082466487519241130224146469798438793123430113267196042917737179189079618331439189662496239428723223679254572203630444172856000871692545360309882646177967881868658550835473040885097187976017318362963684457142460551023419244494503128972575827322114093659749785434942711807957696565495613721788062662822972003454048811461138016147453371486567102301959969216850710470718496609711034211761532498022683874188891998036446515645608553544418873644373689741684107807027545794531997157670712401200060968405858284106918292800298495971568148183215742024647081700864175253771232112821822654256882344908334232385659163310372424358319934050724887197196419118667123103999099232317504190963697172761362685226416048017679960526284990112721305048896866482395024603037821762765086756833588092195117360614951579910365321719059502958856268804767389786692907042199599967560644319113133895966849072086021756766814327505556188427274147789290420935780593718781462058808957121302626932664256353788072053108798877397588091239063378360684903484357536212537103258894378569210902198213930399019324682064709736822915398639049087840103221669420367241024862479210735150389764722080796597519345803837705564781776231595316618321847164572165821512781374816966211493647192199612937379894446531584950215421510795674976111524252732386979058760649320886642273379057964928925941197515037022345368930207188052153895201486063906882242504849427926637234039570755043196722109225352435588339283557096983058195040919670668667687936088069260310923294193701255616214158996499929267659936576686662920834956582513867133287954564190086963060577178391828946488202851455637364460773722240031140375912449569701480388288745758339217630419541030875058172276643741848949032647637782117314735410445775425617815007502314376576178782090783893253635920769642640243731023440767946449322585724691755782050091735961758021943569460591981350076683292919208771106398254030458870235429303716400572263072373225899853016574315563797768708955824808828932449564974594934750854924657517472131102644653557609832012236206833444798509052729453057612387278791089111979904165418220598236596743643531340508431338056165605510855768681711775792789435944374772248875176811828776396997480382246967192755473842529705432703570314689118818149530652598954985893495128604246485092511590563647544116810989531447495911249412278068721912607992977724005495017287964249207636336919120572337738331756591635406782295318981578943349393979651295149005830272390146721263352351182889965184864720471605509330675443430295151802946882816457118003248471380234289848405955799695875693463254152379771247672209387219153175333647724740426834631520676344923105173512894628101079787144142179614499306501258763088414006189025138096568375744344715793998371379362751625287406586315151587506135678913029034092390009599425337813829332952818867238358475063571264279620569055100110457783132540383827175773138141960484444663605104777338555529101081588856722928940443006640992020842374065613686654898654004512453450039737852650015465541531857826241806538624775576199650611790320782711911527866408237118624080494020705775370811416841112605907948102339617090296275507441960091985194936719588168058332035403078469910162386417166192832401702143631606448754511674580813460972534571727017518703707174195266615506261731084683956497432335509289494368163331076001895286966073014803947944307396781536162881164503720756644768609555666534221682413713831743392753576126420959243773926447104864689507356424239921719888148223521714555336210479402741115143216649563666446643432378153941057895813610068162740761521205210523574529668745848562855595929474587356724816317442014395508963920152330817434041849617950343704113656087021318754490556538788011493827626121139095470992512401720564084687235910362476747950237446759368497248772078039916587243196687613100514774967991788633871544888862191702351364644650819381284991561821665148288209263150711561616482166775583660165988650895592649205966679279154913816740737033706396145491177478344135474873527188129274680815323803512680373559332283305378002529211715173211532201661827687785594264569205326249276835089228881649676039806350710255755446571216182111186611797018363822531766294448381113536307563644487760893863397908576095457513107131755289605388088249796267188511249356807012804932476114045631917446137888131893769582107835091103796804457968493437465568071839704053990013725664753805071591996180019708707144401963102735235960544516196313328353086280919117685551559366344404993194678564285649037718119496864803730950470319254906470500514575693997497159821432999916455927034622080683196498273328237753020116859661037280321738680777178229903445775902101417016850206788731683938126436593874095113754948038739988756939964836331143706696079352463465863425392751709758081203665307749217659371547784339355239347559407499728933003119283333215092123585619499741160171844542320097212180026619883558759724300447376049676463958028631025266388763221786221339237365672431300219888408072643192851675747553997037107504829757068118714154815431431786107091287449249175864786722579483261530505594488416776862064849928185662751704223359578999596166069037431985674818604539446082896233674077704786155020413360729037456876835250397387486977770847658362594576270023689470948743167252355237465103800680263976786903133438597030571183143487047160699765509108421006870662122738665350886640405610896770321628655686949648414283591247585613900653528356220211638380492488440766480564835254475083494156201110583284166955837745039178309901326535584721123064285847143718154464618937100460734236575270662180734208565018446089776874176970884188455058686883248193313488240977253213066590253987144961114767413937544018719816961856523108941183930392419379182106004878688295522020073372270982369271305209069902984750726340861605774189937203668710473966420319957335640987166164126237505665847647894344220473776459659820116377429326706972475106642533840035727075955733872924263617786966024352709085645042356570615651406273379412494379942728183816965512205786445181514173549151385542399051946355158440792190234984487803663059466277524392677268205010470203559565287296792552225154232008457254578082012918542278896064939597669590945779946864974779461431600964771604177319244197399095301305604349296410864288125012853506051749175852212116094904605894130516434093950978215111081785225009463197044692305485951059696484064508083967403183759158802273718576304930361326530832932643890360975288924712251124054728435018241880237835727035816358113288887601774417924560724030843505578637857889123110197372224508285760390693256502189059200433234657386175369407878325791374996748679383323801958895212824365985562209622245934511759031009865373006315059191705395194381871473779751601222523024098966467978352097842243111553388191477396826129864594420066730210638071462438892814287155477633997703344842296810778819894071223077165344008660087632680172251619678177674970168135906728008382314217117994844028424426239794689370164956421752312651649872616896341898249939945662494411739366767262387163422466865601873172821924672918508805951394369228038732695749524748214872110322353247028072366226222362847779254980655819665603520074533135010058214341818585932312697867623410597261375335386924275717946809863572330275597408658515757506220839146487056374830796132876289680710606462082213909698759396025914188250580950035615110384889152011831524623902866914275803485512675643242806113450043052352167182522699233674640090149676771949049959979321283664240283474793750512430569759378849521461253524225423403127363985019587040896203156919460279103928306152705431460842107727431626413741219363344406905257955874806979653642215412303999703303414384007687015523730419614800562455310442853125680667266652755281267778455885097669224288452907362178450488236221875405025757415269794798556256238393164291980388187711266844428679420410882078842884597122078424761219800167986295369136516204500265473487610164079220958492115797443775643047528862086810370710971056610429337713344934697729613363427495962668606675860252578004938806131849119599368195740228875519406830054360095003010928997114046838292163601886703165213418624551689690697351185963816250312120887834993946192825915934913088887158272959610363959550231957683518214598733426234108857618428969602837752699054016984596071616360588786605999561229125475250324995723869258799026537442994554575063966116170437661944426907785948455505241419825261586301528446797564664519033324405838332933237446811976499737726628515915079039727410011633892719727968607178810084024566925062184612238466202315722435760039909236482911328832782344093572975340714873061636970230966130654435391860536801927814252186539213064935345922072869532794028986728785276053819720027681412783495696929129477655002408290810031303823523065445584245167914373541305856944627972970887082386398808835293169181127430008545735915275353419142996510251841306898547637787493295650822379332502078702220349999600983982293063094936999873851994978244903127832090021624971055293646648817315088384265123800099514306700167299982742527544856644044588626634654217832974253110306280310139897501545027269222674439770509273744419188576653954858549149970794762117540296008894187169105258869483357759847395401924026181308257274889258573523922763249197913703470951834309263594119315940958707622223411062338281290521817893165964349170501418097684287253448060545544416464384945560418741172841273019568801363164260642698330663049186478590902822197367898761904593095139005158440765282002420245022333347305110979034881443846037285249486702853747746520215737744738695964242094870617164583244214853940385947059135242700440453159093900375297464043531741743541530135034613032526995704369244147966014715568771999394522799715231776418947551630691359500320182458069686466336331199734409311352084144877508633930516001394514986135282865463866048526248771966639341478816290624508392274264016160113404853849917122572728737383154605039097977702057079867427494768585632968409764447128459362978943449603187496722516829651989474429558677197852544057950806518701517105704345853767283322735339795995094372407295058497688266809640275936614753885061023989133714360077745358669152899278889091811918531738542310649725990217161655567783100925656490639897279537539392937151735073247301281620691690194434868741168269128326091177170312727692986681967255036364015990125004173533913075517804559618873997090554555231810487284305592497180873225996471686287147830806255616713517702678978731594306341517073740537340363396044947759330315499879650997635109210251941181623430148056514841311671428341929951065017526285455755346396082684196355788012786921775253941425506336002464841620793441701586893556013052449689457032840759012417047642100796547744685932050260352213716602124238674355366351997489656980452989589157093754379729243055588944179309961952500785184472358070191238860827177024859340048393007334833721150064891706874464357785241152376781951955998408167677404901190601925532073887717826856594258056221610719901272552934486459019533691691718473646533735646442017234914225643638948012922141615873733152947184687112388995633992108575923500801775841875130979576927559551872512936957723732818021464225025963350045700819210273625278011409185372089181951282823072578242077826901550078844956686190134042270620257651096594870441498683026455102332524787531990680736440579550569999530413173862002500492786086694226447964617378422006931255637657796440490613997975354103870761801838714398460752585781640365214363942549419831447754760367918441610296136200650495785056595372345034134742724167186424548673813573863606355476085376583815921059052877810629323564609891711201946433965666367724516507053816345844440453860894349778589455294628111397438659997262717880978731372039867797458817674781037723092268810058337390624957185244294082743841318479304442950156528528569207980980574189471926180282883999033575401540364331177388824627396549802251075617299917678566992560269308747666049658806321820751946383908326843585453273316713793895007037897474386628140404056182990099332064319682651420903307551009021335971129312859352696977519172164912173642443554219093126150373121743679022486212669624840001719505603061701331113273917150732390363765034164026325384857974366813623225665609579505440376615439831240969517355263100591217762231171622983627120652305043933886476021177325597150611269388204850500547596267230911649330980993130569187272126215108534384471273104700521849483449812792092973824744755011294507193827034912176691155909823994660316393884353757388660205032786582852346616230321707002661316415164934262148899193213379694319335325267910682260735790962439452922448320616892602971994847450827227215367572655327913178354692610493340910353246023687735705888165635688118159654743948594619599944087251763136909934288337120825211890667307700390446003067206237450422800117394185371155113607197450409316986179185689526876143124339700347086980658436711498059101056178348832234362139749818633225835899230888575934899940700975662546232213192876509343419324128096770590644230448000249551031413808961028330221841714134998913129240978140618356387430598708341298999357573272593985738379492124079263144290608169264016135505417825386830579165607492676699391280527651762152744782499085531175817292892365502038079057134194612331441275342637733076034190612031271952417478138180878703308396546434822884369525893552386532802478672251160778196480412622382706505090718960766496197763635392501237032079132268131596144293940813694045575582661664483628206243841845435467273533055411447838440151723509284939950891678628905871869330410625339321146211675179962428783326265655151408217693275535184691645499593937033974702865684517959392307199878607907923406806481997584214551108412293705561537024932328930721893577742820876444195159277393780752671415854168390212078022875529263493537073452563591756794743094703185990034557532084255739435495215848873487705294882604689554625871095786965061374819529889762653270050307329547411788736777957448635786862931362154212084659973820542930922145469768292723663658640979131987058186531721304303026395664849960510806135783459731784054389417843033012382932873143747239117864278930375962228565770307996995075639445935507269428262142059358861466244003514619767758977881141819143041426525199688096362438523833873612857735792133953100185843824671010985462205443458496464826058097735037734444876870919266892130515104588500312438481543323025040241840783005431710484489311071305515747831014957007248721472486455637293093384998696580828213300194815756239226851074270748037841667052633089862258964428637937477125433689283752186153311115008237326108069489524888468948838992060641933570163839222198120974806517696333051735204894861007370494511460806316988079381246553088846642747970516417341485842585045936228075776321113972326753998067519186698455983710852541344732017782967915897877798412928313635637749637776397501790024176703487070642450044531617719525956262285842033140172720369000400212274009406607479219547953697459927644597680060386481893209790089059173240116063957134579747682129223941439159422524464285793906842787255330275422491793857028016455669630209071388752120165872925805389398496981734259798077338652043049735020382294941170429036923476065966781564831076392734831932424813400377162856674997858500908109874029416217773333518650264815506806505396221887651528081698043593065032714198724146219758574882622293186071143611333062232420671432782228175007400572312051706512361161639239506559102449160664514271373492438050191854846032093996764694046103736762965631291702438263945295025570692484439135508256383906123201462149956895929893476138668463141649432534999800027312975672939454265483711340181082171372885756887581605877258605449219602395346887471369138034930810710212297862178466384076302040018244640212344745067005600140607233985997194249594802535086903101342335187386762381199392546325442897768878118939433354150778341531062378762730881720794376862837481184814582126408996204910653388894652897253784015716518652366845072389537864106465707514123790103262081143669452120193189970787689742784536854801783122008086749573584343346254835276652325277514625725465626294017765703568228283482975305216679566035596534167393677364491122071603307694297110462212486251008147259810590567872846325338579173585912756913006446785940157316426793104562199705457616050868145562913209173531063840537842017082935719246576180687030500863429456744270021892160644215150801102857613774210372203476370786283680057635977738698419784782924775267679182642375650440287349627788537383959580566943597576240891549146235619306752990586260344220994588432799165680693135891573407177553532261870161581179908375441309770497655203896016885463713134443347484591793457924139992722243821872364479354836872164919096633180884300490973785456094098496910251560447207639425603787957590208337624287169577070703323541604928447225204223329418707686620233778657825817315849744895330358545472929036989470094572469856214037183704698730991187119123122523837417233550099332797634909117038852808970827226095345813975045939783939122870442429362658317517345032026137855625732296635485660421368748477517212720696407437108222328441931135665352713271483903993740206604354701916375453381562335081260427881245635772395120378216469121268036984549659975736723328908089261976879311261317682727786708581030820634276855899057062512035251897672867605740941638339633633299407665655804721578523116386535816602234717826706914242844718349567869775297596804050026086817994773975750673588129846366473473656604473006339856956285018502136804964249604087786893578890440842039082535714734698551864156378366875054752898202333986779116751207364796952505827234154671648042016035858931989522989030744228539208269920039112503667243623014254782652126925616718219549445297381180520070749717490894236397823592755787684317763744245068685756337812650601072185832699557650690677886837195065493992211337265503517574834321936854509200146381494465492289685794170340027399805803888931674513949755314387135675676427006414666102889882578264661406766292360329654092670138586771716029707132307868191100860095986953951236910753402159264881400153465964017108309989486714040640236932574493778816452730124522890949008267960103668196700453058490605965586462897504131676445228250743863319024312068171022704808319096949946516021510315344917553277167431455020590496549508973426443365747661293154335163408641419054512293648485268821496874063767426163077170796965091600248869554893726957814293026517589116256007218503844248257086946419035264677889574046922424523813200842526010950057832927318367592618971968283726445165816305188599622595362616803768393542711581890678971288381467204229622705745948763459132670799285009973723001431858043329403720316539915191873794595129381654027509555345573416574355751335917614935791926222534827552980122823145257006191154670501423654515969319240637763434440369271480297843550168500015423305730120866075185528683422393523708991268832675657245907718334032363413728323211267618395144907129965370617190250901677938377102159457175656916513225557019989497456331854075352169534188515613803644820946797001708509489148629681843504132900761542081443303104826487437386781654781936439095623972308730277967347812130939779003509294175874130773455970003103612780315710165733816787062475412767614391918770731751110218756117057180777221088938082373133611751152739769981088828626709005182171121236731020222153022187855835467400114124054186635846280097221723590395891600025539259681024741620982091895060910443033031198322634949593283218481877362916838048897437171234018269760198508801921659941524812878849871981890390092302870118760836799621509848514187847450068058511104050611228207644086235845170196383337835210211673096710318642090811292072190388469410113621954417321374422140533523146416950365571350319603622509467063152453532295874311869077764252274113809321168477957625153665734908431656130763117604289247876610630342272329274720826427525059615839760732190729400908656854055501970472336360915286667876623288659220084989576388804370842155966434749037905149119891859381459464803419205967684605169603088223283916662987571436078223958794108467030831350331575847965521851910203242646430125897918469946602914249629185800042031719956993377616589136376342574737410979794048663087576417462256448455423047507786577009926881629833660313966906654612624764449894971362940243563724947564751271223076969777963348764707230892605564477376722581633222707153748606674699776599779725212541733187215269296384053453494569473165566093724628181767016644597418766509567269438341407109011422919937832248237757863625272791044609611812087051730971281126720000802944886062558299943815175822412211913002142800475475445789027465330587672307277039177858698726141224396151150323160598559560102540833936779136439669969488218406618140801868307552603873043387019953086293772425881792758954454633731287758456965107946869259437871209830831388197721290890458661212214848471178089252593626712144998362195144027681869807007587941699814907491197676136032324447539496811970942479801509690145732410555346190441680079688046338226138652754000410595411474811876220588256177003754122458930857242516571870136965942516313379826868127943527943312874878019641259825433539327088662774114114879010370974743009434647478741773775167275070602991415819759752113793896694565836015172608809232149997470241883487502350678684846514522341438988293031078954224516232654439530320879223448736523914965879984455880938993282633965535120004621901040387835129910526411872905342333703247142869537243453781261692518534573723137952389861768309705111947151071844623379771006088155731118188479732496708754410073220196558533470528383205410040540104388683514340660920110013295294085543295183702457064591645190608754864871149419206862524281296365180324286591821836022446501186947369195248836255520393325887225545967609535232748025873263238547015944139803136183733519494117605813369343493562384061557795867775985427312514240096726821802215756940939771835859223111478495842216207523602459195887188606044521357319825960353582907603828868689328905554394973851247221353523267965818559931276205671526163858720311687969017456272354513954610473517174371874575774218148153492653618442490075999511554231386100873427860850259689027325514655411692476411072280992952436473284962999918119071315572781930644248626225654924118584078658563666467198756410257111769895506437147850012077777095351741609896476867220055003882381813153700401949763646399199307247095997943074806390716888147006916597686827191950953307649636165715277220964072132420095800078863224937205677055796883474970886527023899177836105928290296661274807710774256554075667897993927108141649222584019087379155585473054598983306582571744737011131082315456046430872096384765956270706991267644315549090990631101601368536880459507598479709767484392652076573778371535175389082247791735160218971887731793910154015804978507256390829913088048702245410432335572670864342208770216822559731320098604575623172913887482514174590620729704507824879381733534740272740588124036661240329732898888975878846130222461820741670198144930036855112503618987473612245294049528925707903542065957395570572372537284109825049820058911741406752091369067703898970492509734782604116462481027321479677308237227604928963608249372007093582438437673821044369989443515011179432658855070883889948945722888494686888780176743869654583521513632434462760168581860738968953186397173062117994586521645586295961780414822445015673545838777353575003700391750191363823017934729178768654634694040336505748321384999499703405808512098110339945558323492810619759725392974250603903681665005504489995193459632199508950029942844378898042130818037222073304237820829571704194410270398293250936030473304336903140620465991491254303765886736383248760499678343637278590091152329762766371949225035743071650485619857906160534045023161282873953856119359821104813436493781990106122641959827620765379206260036435906062591605560006276305376391470052644392365395505089079108722399514572657410347927503840486849459841598902041661401515773993353417033905515648655285756256484000811239091701070947133585335884116163915331299959447576597586842128151707938985277336941153092833367408233522412740174823119538632466392135174741831898182852765848243058450812521568681074652666266006192931941412242149200146184992939792660992165449512764593225073055947353153547227916119232183217717138569920528844056716290931182565312499377177556724166824313898754112599303133782697774526116285769640356980546495847015644349030038298268814876030888424967624635300153334915086443274339864745942754119453642242287876080557223695309715282753264676299471446666232459952728179474299086517984748536426528405900100206304440390915308189153457063082234433167254546744190438158351546538367729043364106602135575948775268311294120696263597632118326514338347356478337481518646734993128060779028552017959790696497366091206701226778896877071418422094921765409617840882513831336656620277705682630619363460339042437528620294774749093746814117666625189233950065316760529939366537684747266361487919383948776022649018921236523465458875980630246546328767551120758908720914198958513515902631136029274479976324253069950409846363281426765455717648309325139914703726202812313969506184233639141082309258891042955400189991138016017704633168453668750204246684756920377250840232879634753206170743371304017479661455232083073167818465133542067079802767166496262059394803823001710564539404218682896256150922578353776208802600827925368378498895072054537309577559145652170611535092916111237876366356446857868633401490563839532668161235643127341670602929432487657254524466084087145889833864829433459824595829205628673565442287355881634411428293091622896005994165263703210206944528321265744823355557017666996700856383345878325179457742901557960352728188255335630356274480256626437890046102980536847092651867304145109197326322229939322612504375517249336520807969752095579567408060779586260736872714254460727122097122081090462301051524253467960697546468743997320927129451179266429598429466447433204527167412387937093378326869807998256112609807923962379077941033947691616595616754155553076806207097056697412331149014689461085783325278078346472005737168550712182951941236043641211274750832844228060734212282095119169748049560428956582917559564723405814361709505370028121912505871835350643286152573205558460957921317412649689757549873312867049044925261057182103110235813409320621469913507031382946373022211167747623353962353168666166859670020729168690705003462024245717053540749865416688427223589696787315178910812601698259859319456547573246344963683392145856819748169623653241702503051399555744816386183755767326993339860699375968705045284165915140119256432682819471992923670215270058046718011093096024812061238727439898213706583174945211092146844222042910803735619224163016224810407498811223317899275728369300169795612197640119364832271697287273408580596286100130121689259686305835382971342688955973797487717875446231277867586108845217684073825920433599456141460836913444902824171369072398307363207880627768908709908406651518079861113472369740696638533522273288794135586794804233097362707834926146336564593868428511036202602858259315932080982455108054357610692282678733424867365819627876391016374978257053395559072018395420450430296640659687164857002718321663937657729963582255048052323308913423381616899454230080640193132818889663566032232323594827461852026462882478400446694682912704227587932154339958241503180254551535150364225578242237169976041383666547079855788383362811155582239857463855165096381519146849017372958978031814408666664207895898447762099491319416236327279760163550201606576755467346204096083455117487560903126837807570005452655980806672014088147879250644852819422397391718361088364779337341315117674556909039013613540718930857937809706334151694295705083830390721898720377612795727183365090060870221950654572393527410505247964512186049100876502632243316523370471961983597557864085072043486960322401999474476743155234712198027290317456978905098110282105024257224590547065712839720825432294476645770902493552230788292124408833428397014886956194382506154129689270826801045178939568143234452592757483818239079240122034476024606450302402437227533638057863551240284333367906912504987009604816033005632277819347234089492174477804665455525257663339301994710967796357937952278341595594415181549826603787762441205234526211545466880577574147197838005421751708367310930021156573914371038730695499743057156030027119746098419415727620451104129599735256129784244325079873377166225140685393177001491785143418289193770751573111753420292104690124955239939037784885924943970952884270907666740235070582040372586866848816770126770001973882252563614695442092854125137320902018074702769785789169746804774096391849317921939393927415226744065333258143534492982308621524018207166020588945803287043555199061300862510611488134917195484016836613588207661233323109381489352052816588598575942882451898679226449646905575855373510844804197734574237082956265138930189359653311784818357717930175149367429785711531811001156742496489392077738711846039088665006241231267441084855312375893666353663812426316614481258953731515848386149849956781212706977202895774176942580019024364930468004811773145325712173413665834719364927341586656928633169654533174891745344154504791372461323194595286814958311158655408129435035151949555310265782925546740047468440121567914726497850761631681747178297178481994551940162594228364294536210156993913536775022931424250377795131328511729749885322866051547502632095808680119722670453812437976039663908604811505660333397294449589765922029840237505754822446737370576313922737708865302612112764922619058088211702488381293134327552328746193953285300752687083982255300188565665884510986628770092643047433213554517032028765422412268262560837269605383040202825842491180995011632773041653095349303403819535638008940261048254054144382327069125501084107088049749495746817560957765354366066172155838867501694444938971447442748548402977374291564802801541249085338909552421718113086774280338191175633505699937652834362135612232524879395515080185728724141976820362299917530203857505047429381154719447947303912938933579644282266933222436809670213916549650741006028765696150609213446954949079260611403633350263473040434690142104774381035823529712374091037858455176627701784606964092733956965355215752938698551295118365916986745392375865776352122776039044194276741329579793702196931915310302062232047337948608117806136232601280250341429595078868018683898233265138075451081410272857062476515582988230331099979615988866104150626149221483995751288420478023787299035669488299887237230669531567009654364603790597354471450311973950783663712044785693885148081392095413260792733363137080873998627245228649325385381851737533243231018149518772856357526645766539810572371763547073201756217440226366108838866194789242740054362678867123049740654493299324683239209744024494858640736891085721042718791472941889081550650338136496980544218531671983549722192725566746273029985493499689672650838341673869353303089776666626496400163296106347200807140879415030090534703259090124023016490077193397898476955237516536245447727645842537952189678469532787977200321471657267090543050196865523896887745652947584716346196552845430873154950755757931164188189159126968953223029017354100064540370953598752141384625718402651563795757566618461544331685853010705229387619482952758937874467341229209277965336103115299293304067145474174442644298458638629418227780606479865794335349701566546836052563974805399785793012380258861522262946513829422875871136398841554586975988805969131486442369617355003481540939714515387062179477089953109052620308039764957172233883981809650821987297037042546552312617293891894392684724028646964058727728282931916299269677708745977504844434487883796406407727001282002662442582289710992467035171007458538089974258000301978793419873375898227714191807697682495477861106997070160923393714137739072371620478781467520245426757057058149866781199833847018224221734992942406869229511265912526533326282747035227675266117508656579597589308795466711709684204363419175732167375036092387741298701882372652477012512839293400536786234301418216156299703153260777093008904709803754425787254772820759420865901615446815839391475333325516919455535824047338273542752403904454646464917375309682309431497507096340282720068976457130524365702214225603155747121527776286257419363889249149511890629405283762265786588490320929505343915907698507796612136002475757242465694985675944206111345514670491462662684891058476907142255958875768493414681031733655884350628066281836528165910477895859961417713061804544187303852904824553722835127749132288432987740124748337294515157366004448073621220918654319477932323246256342437209327742301195485658195977884259345771333354300263070787116905188565016573429694630824659855518096181881721242064522133322234036613495540686875705374206759516217755930773375827242600455996128128699351852584683273465631985101565073782287465909150037418160750225197681842264055092572047929139460336320285123729598721465785127290045151105448072410476636226981858687674874077777684628063744982005444611141301815744508171496458867788259437010105216218177130165223431340684076213574852147301112374683309652639468265208269394105120443886158777153289457144995292388911986200261860259888442849154454013656315126105058467787581887394561874162952171648810714106216510993505722465927261461400770645240399868495582126473725321171750246940938224388522553670017377672036173276996580295110619629465732880187550573618153922510452925380740848746883228025098562345368439123723703964356044624016549615643479768382014215771463037965156441279388085534354498781245523426609261444689807955348612523774952087482519281649582189365941481803800929713427721698352608769211574987157451280816971561528758285292371226127194251033085533177443967930333808740649337661770619233764322071725076583178788071015999456896860873084632272174941239346490836386129379315512795286861047616478735250174220460720442528762230301257727667619961168420847148461856360605094422735564349635984065069827860221776147208328516410136012513021728228856323848007274603974463087533020461985321779852215663961789365236835904829650590611053710630451223259650813983428655424343226947110482018601298948325327777556391546946605627947369389749774413045847601138316443854183576112728104464068266184113442735721701373089721776567532231734190553132442347967092681981119047293709554955120308079079321697174963555778415515021799337913194021021570067963492744845011661886587457216908591846976108727665815087260036970275548607768772053643101121084209751682919923018062272522708098148895402345729727674796950903337735828931245844282832625255074664373150297910059313078354941914399152232352337101678068196803373958136700293116392957462574911742754269423695543387622822086062517150058966233341167409297539864714849264543295568842359359849721217910181839384624168826776294831864153895471199356271946704768901113874090207979418939940033656078077388542302307485623686539310463211151488934616587420543665882015042957377135314301875382028880111926718673774287619772574957901907700971496001024052592668028653126309368493610472814999970078893373829227205934827971023300930912752658010250482140162254015392944431690932745207472117629312991307998204075897642652985185707027517157321222818393388738588634901239049150899618773500336120143949620585627876816748527799241794724240151836290974750218443624459721760767584327333324222094279423887950519770966896747152766000170516805681563770116367081965079367204086322012600673677321340251592986878556010936333060478318389682876384476208582174246334157978546160721763891760589286956781915348168292665380769889658005476891966424575627494865413221273802547556596686559770209291996619860206025369767769613952168229762031019646025428334149341957607726437233050375005875977051049754824187429475852386187918893246335562257267401682556825468213430933413567389960945526690001586569858550085763042018842579160467632824969636598196904649800139199622709302849403199068785511099164398308166292852474728785425027139107957360404839647516288967101728831856718049178289152068192779875795180505549146551032287081766105573546180501616294395909618447321821565366748303329226466381988997351713367496943385605752171347110132747173462318606495082757729266002404790137234223485801003389562414978474657443342142055228978524463333013796571303209286300224955655181693058186791680354927054181408810792464312894486111852087904639400773999968384011691328854603529969335226101780143344245355235581552806458671806585706178375167955740614561023963179081715118837847644495675012126760031870839581046703676190886232427966724446483448324901399628555715948484971635612461527054104197746569542018076422697026235560810031842417353069269979828095406088730354885032849288761414369564666455651774190156471880750406680989532661658822526379690397074792996030755839703152489542448688693059337696395387332046247435559912306078988974985663851658168521735063078705891355672179161334944772743986514869729006329486325183875542252183101250656376877479507242107738935100699288418457563999372733540319189756477944383920864955858370317787332039624651282535664990990442784356206442186531494661882942324429602841701447479789568311850064253606140642234361380273052931830601259073149348487681683820718558082097575419083480590072646588756253500871599855098805032750865836948820741737692935588803021867119759974191274579455311463095383228239334404007369075089734855977234084541717941620043836384833482721684307065151435088014057842131855048827017422929870386449342531784466561136787513423464014825041367405038356358367244277838421150343584543988963407651183159001404935919471890759581042178495763550973833856847981836425169967993442668078570631657418720769969853040262637682338666734022495288849384158293293758686195775039141724427455751762320440692788984786886044924132262723953698231845664395042896832911182726733274436953421190948355314160938103347423579330523942265694065601292684332524926267964965420712235010476162213158518049071827041744256796209763371577607511103042200635633740623310085444049385013457036100667685836621574837156000678493043702793130820600647065006165073039134453675630216217195018001411806169797887910856536416708532340131255564744448676311413927305900655273448654613817897883215297712218129915323708025753106545594662085434591673445907475688918598173384489061404834204888473413335705394483688434219193025438449478758296251853582791222123825029560484540839921237300513530419062520862928652017058278248000327749702131167774721904544718126618017776488308728690639048229988539072815827534201954368409493035947302760190544025399821147982612997680987629799013135072140415917284615267132059503934308298212164338556895358203224078797999586648256871505895027448627471843397705521484020331850241669797121203968287456478928796853614605879291851616777028677385529884766369514652418671904617537430853063863953522103018641695527995005009599447919959122209789523455752087427348820817190766502428337657289984979112391037620563490188550345987777681226408484212648450064215219210516892183268595143764328133187079914941240098415998538451096810296729906204769566100012798522046091171420762416232224834095609002952384859683564381935219761400176096595051749697344455391918642544562359904117217431731191233576443949094530340055752795811384135884765179866508028398985983739898559674400806314491410483219914597752958648148643859889301507240741859999635100149260385120770784259215476710922193079262732866102576330582326825479475126068836218907336737679023031306439965361004686795402290976541334637382919412453585770395455335033097823778662775085324370027308691891750756489906024626337201034682960098205710622344787476068540480651781547209495528868224897923087835093605073035368130908183294451320122198745082046771808109953094713972363913590209954193637721537103218796988451768983989332717932050194137466164308720060854742827654331785096318644583278671093548137511526492384795607497543822677170388331814111837066876099508543050795143051378040419035465007801287928647948997555428331585753725282037257396926998300297095866714495281258248400208098328819433532256448102986182002127616598070535972584939799658263511013836713280745165740558311341030119896998058233980038789662560179516441995120005682065557854609044964532141479555814827817797794754971838772928566737846721398923523542501848455884523742246642402535931496574730532615176156298048887866875815643514099387309312975631574249376669978309797344634294972082984999635107553728624497763027479364119747979453975324970538035833519464490807188849351315506219519921846307879624022452783921058161947137702007060799180857731821862602648750045277029188175519916504204650222238277038596978231867311119749985161212466142526250238096507910380027247196510779485192739100519139390074198239548846106096848300630870233606476415591584391005400926072196998355699900683187993225244532780005874211426720807998156990684133743429501346826694702257971403177091324586739997407568800420639618748783653101049992228811001552186905049615289644831336703445966836485219496722423163086843022965618085763827901236919675165393138946263046720555494930805008346697357562907509094522003619976803569254777234338054016282500532998750398606868543334572845578826961235154493546868763647920178305534500685419656934581731184938482283935525977876001812947538562314815095729326716523321477856389837876043301660488143732919067790335121460935145103587967894677866959279099421000002243023324736244158657303426799887098363985483390050451005176267102849469008782166451605421180480185838772369714375132565792318223936470208279200135472865813377550282144551689504928612214402234858404952249411077774807510329713033911796115549818788221038021551900065048289985552005338061233911334300504107215328173190741324901007814435005225005367548134513020593558574237550627026308396459813604111911799670559419224558817483026290161446263176622274842590207827901257017505730357245218386780706029156928495508438254833022371345865679150890439123914835374800567356560986314327668311981630334594214449066260392797535682275566398519338153993209512957480302280041245142716758237086380626425123020011435141789822756612253616177768988081073752725899894431545029322129892249242321920296691397798621129176415503575292942159090642534615281528284934684842458390822322835980915209388958398620648453157360304317481364534049541612366237854327289007416461361333362608683498787139403244290295858920885306153979602286405816837787061073992829048512213440596603821744320303431244282037939088560531605761025216886387704341149575932021118904962531189368631071723311603906225581875632604687750660865140303022593296479462969734189780951426956361404584962992045919403331665530101084095567875640650682401684908636589850259779919401201645568590796684023726503857838067698928153744172134199397845542167012839974760778417065500472863152866700840512239981855855037940584054638083561268614694316465593793078728039614498159808531343051426334365755630571691028764389344903976927520068218913475909562430255526717103068834507562500219767220091450290727808770806243604133787523786209180002695545800294037422737585865835134438261988076683997447693369184633653110196594482121755644610087395737510361377654388855775473737374498973517110157623923951962055667739289417823231859754838341261194181586379139252950263400378584724500255838072871259914422189436653796260359511036999176944659395465677354300279643392171305429695428248879952733097246273023649629907731955036115446953333145363380082254712967823948307524423323050040746699853830826129239763973120738866053383116917880146747978694438173497237707673605654896260620664802283936344163789086898134191680770340599415838878155511542915444643203066067115709445553522597568238157305997460258244447264622223776607010725597957648897881128863663956984773314773056090819603491245601620783791672028907039607732675871712998390936547294072611977452487988600181229584018780933772047280459450132557028731384589637761717819347379877949058114106248738767331443357629699580156829995510200692721548291353599242634035701856451320961525349210151317364189101352779670955594599570779012255926262293028151410287832614198099839374281894748529162786482801574898939345755255604063806371925763132709173043912235048942630688543465674119889312014212380447555918522837338483167799264687592391880065181474266125080774531427122401706994739321731797354504827488183292897572974078083877472308354140954204591664595548371021061458220957208416318407418547388468417164170156448781084738006275245342815332811001354466516802729211260351329143647351489361298851718339998049600530463635655595625343519635933779605946048364650510084441572648337511246156953587156777012876707446614359759157094911507258698053514539523706894603537504756591881860675068659380437142908075719763335618315017926925859241340324770953043796218657968676017438615375876991258248057248104728145313090318005103013342220395349369932958151814078673087120728799216023361265787252935597773917887184269680404935967807509550874937433336721992691846228765783675212862136329301053914442930524361925291752457423416611431172071369286381158367046149663729823222814367385075812110622113358109277830852267664915913201558071814932542515046882594364879867637269682160733590800703638600924532892955029948919891225268452343517962533485612690773595129914325854582371590229725421579861083057808028825790152113553119297464454301515708180227836145986269006383517709787415666165653102159538325233272038942934998569073507162488123663349080824982660269274187857532771445637468305912430007254647609376638568463873070917156682856936019949303207476812629843803758124284288147220366185090953405773009705632069280929076815691729707850689332080028465311294648745050686298565288904590451036130212604416555365274215646687251672021315588330011359142482508560386312537923881312423992710292820620724848090363429387577488598591269010381420391608480764465625613688713081038208330868945472442549106795596571903049885796389416256126639331533058360434694624571164764488954354080012263979608166627254710197146665355511377667663142070691227034072447823822981150303928866280773694471962262835841647565451279985716428548527857223107771188278770410183038015033892287492862188671091214503119379752869054985284818070882093910740892520838022947440553603827690087901355870576777077947410094765382511008496873412726967471380847628650977791893954857481193294558611291772821790127736497007220202281807154570804962416693074153038196675658317707424236418014223482446439435342479819821422770515918138287482833940144535903202843345755044065767229940099292089133088296461064662445816876300009750833781064138211660232003093956833109466635119967203801038747059546635676115734452239445880997322698801199631709254283976564925279215960064326252700245834250178462721865609377722507254748706118700522726625902347932475073314316573174420133412667848217620793272097519149913688796811701201912251780945039930694763349966912153990176882947579628192026242248720179860896586366578749839981805080596825596587549600607557915012451696342195619642300232418706358104262952072343065779083970105494103392788345826933265007877003600065713962315835893922990908417437352957770054138865469515243678119154130756239045188163854240531787304064315743232552898671791646113909318973443544768377402760394885433290569511998712923243534306364837298154843200511943396378467961886661881231680836221395726147625725295970758293235000174092135116070526402281396192102935603317218057762661315913267801121588774057854440049589642352706306867582741346690179529014744908782668527261192160102373018471549987589504637024419458171052723871346164095197120453657073348939363662283333294935898135049158820344609383830840323986204519328436855521703776111608894402572157372253504064054818744634016775327957435354759453211578602746325929292838593039332526662508715554746981031976702299656985496842241267840595005796218578161133209749516912252419422541203805533353306542654761153981562256183863866260508579349353334885194789064111469520936317796653354089073302263175396561301898023381363889757816340412251551686131140946240572657526714352641916609147160115941278879437814650643152599978224757011245314238601743493813639270794690909980896457198473449054757135660716807426950549392294938030604943221935338127539264124938473079389550458751915440428422994001678858696849236444462822653480866662145039923324296416550746319336140743825941452582259745227121819394654032167521276474836603125353626157484912336714604101875462767712031807147033294161436597506695977939473901080187297800485728214020062646502807522852186941363469068898627565693145125701610921131342820613735414707222894208430827512054401270212872895259086964951897885941347081505012107542159371575875557952389512583432417389231798429752399059023644527224744210079131879230572731362190635928024897844270518611929390023753977160727722523969599990435378890039953978244374368684156280047993592534917982065338422079414602311447444236717231931615649480096862449438499569906710274358682555656970450650917703740859694611188387343414048383885733299971744940132336809695881952374499005125109087582595300686263689471117516653724719027588079034558655671165054770384537832996172035176192988735523307144197980068640083760910054457254622393841237110455114340408998693865978694577750519505782663110565299610740487174919643341586334769115688672311763081914455187056957415613218846033849019956554505347749662461935385588293410419128301550379500043901616492319878364395096060810197955277329276616468878918368821460655779439891575054880092902602877655633760363344006719766888091694095508097816990229415671270598639275657495020237193544317081235905719654285148255434922233208523911534966774884333719618647576040864902575445696683051925147570535364039123978306742403826876369307272398634065104826281324054334468059288486765687982351700591238689024724703048371013361294649899856097082557057886467606259814992228334081192378402679408128865048106678730365329989012129993824813604696571647828511037181377636731699960435180495069740230061025064170372829431717742904266423064473091815887283993480266234576124321898976457416899744657084395440480057611542338561427552997619756595277343331885609308352460749508104648677211039643501310766999211378602016895092814388374857654941630516744436513445309614803861989311246644947822813849939293076263049195049299799410956137708711963529899648643292850680343839753265053521766923402963438777432801996970127381612032775997066145636661673430567300674311912882182768376712123804207834416202094163207315129693310112594738298840353634626772318636471979979112243431593697217504963829831614808669113501194958101984565268885530703541247758427419863991475819137217019366204055392446676365893478080747533799292695579339690236954360124115431423630130475430989524506393888226264301233885140008355375557386534241930888322775350171925743721857497359232853655024497377181803894286165536599633689171987710346402011376661648904195966833417635365417547195514217245445897621328953068655397683315590872749853360136956657100077830490262684854959438310314881233483138783127467594522229852485879334612358272362262509314680692687560959305143507734844280083064376285878094548834457350758632585240813196940335036052430903880973982331889754818749810473852486357632981568654212024184557150347518660867266674341205003149036634732288136242783306902342459399557850845780321786446579791467000180693099337242571986476147826662701205317814988703712825805887337600541546017535849076843639517178783427753537999245154887429378700446961847683576890767468648115998077570014557919131259153734809620667836740290165679089456760677296663126499429054159980156636190605601862408532476460743924090973200386506980440488159836576528118645619725320817464168368043880550413489069450795958424512488221114019634647402952283870127594569281225787047576732474436286600289690595949510117635570252345223515802070756428101610705923306179883908022604330197853214700251479018806016443650201791209488509090793952785127240340818263036309173777333010480989904863871217387178790006549631932691468002856307196577398531544859301274100574521595598983795452552058533625955004628593814324808844839362026450701151677255830015749987399261383683214104913768984375666841317882901276157517904627575402881272450151174469510604213286282682498861458187074144164171156747960200568887740453918054827353460165448335454449776607817583966643922708453867788980589694800161389008037813378233289089066052096524954899895884354228579629985136322036548008048564064798360569784789208016295941149681986858238853147545839432990609042391618134443232468506102590530403196949044796127411552090666629790184214500382008498230876501790931443259670853099998311592751505493673037993463484686183163295596567204573585752183620075342055241370223101299792476742206551306935144450140912094450702959125820388166493622713259714004974175659133535790275479707217269818635649460400735569734772092708194706328803705153985438157151929874402902287835554826401447666168561012236484714648155286251857788490175781263044188026191081716424284706369351832614195751538439598831218662558980803218578556854019196970735592230526105508933100154760771253875582177352924122337655890429977893611989620339289837156091278619704097243406071171687663894089806599168995036614804020515273414255079277359108888572533587060991480704615663549037401279393202493606020827463047950581502234245498670331138064453847277524376644604004325106593005027372193257960339142384355060363195406876031460393090084403357488514855960630421166611167709926766368791827998910310197719239325223058279074015219464943542287558203792252353984219817113867479243708373292894790119637392415922542349332828234157787944617902928762299020071856175387805486570049095101478158095871069039538240595815879363217859227342187004261191360069582313995489397041287721716421602710455352255630965937068347596026858227825012692717186862541458985653639657936786481088733582577033273480966750557761306361089808259057081919862513855972291311116736895794697147569527861967057118617888759629538812026091656939888482621848791845411974539565236658074696313922264434092493597962805968544719698703597723446769445986744754829646977340044560203817638993712385475370950375560812389350876977173876953546882913067997840974570861677220225645621209595661070532513629352157362260196333790726523800728605069768497510809939161128303761302172622043516770323369881038924410883981668414843560128617305600716188466285331838868636009347379498795743270403515414892752128236611821672890997864087152783753554894264818846397471920924861850254659260303131546984217438245206492945335508229103060478357515659425877706736461630310929545096303035234425363605666034976794029516420281219354744663231532966972096831557585451008030726870954417511217673513768253957004509056727415990196681825981962571731800257192449031731686027117231812846162739336400465009994797225261526419975352026531617373642125157400765312043360258094829359788646804807593937825427513626043132438030065774729869105387069528448040598828818070020209081245610230463229113212516367706954766003001975550698099757852664088552766382893426380681214324573365154913729191336073209735979733604118794296482757361286022269488403958435077821965449050107313015769575984149059288705108152233638086780357917802589866025336000382582950923982800567282145581652617293083848582005064529054835914052120848491458436030388175874699861438401480508611546041735360375114115164213532009827048993563651781378684112071970688575234994995011609527388713459678529641308527135551431617819134369762934664989243311943659053889515530802848338793069052851849807053616465544932177608009957897013586693874557417388065291109037621545087133141223010506160821359624155753026075148133622756221044261261302842389021275200167918930932028941456337275636625317780095500288729862578217262202464386641561761029196744604339168770980949930040070316888161639916738102724524111292813273613601936112484620986055948655643310500375975515605495781469210271962531466859542789820389223852460156820705379472433097739870598424095611548943672855158393915746012822377595396684869437236807395172089246570592666987659215249238722020476059480786121976510703835453022425975242543544837180811603962278833702764771284742641508699113349119298851376992198735307509299610951384992048082319218299085103613440673381274507639100122226228009268552631678978924710576710206785347525206580985756252962403582409178460806946684992857965500447873975647697563117575599137742718840117181601487112469484585044988124595974370392579998226324697838786182124259813571545561033945625473932640232200092197588256967643529823051302061705051561332279747322252962688919116299306731007555270536487566627348206529433787288783657843288899618733143733667904735297566947994366648223852160240628405268495342021533058660265021007309753113135425052490961584501370503121614857503364775553979942242254408484889081344808454944691483486210910251323735058994434893158784407653490245799597794396127100035696688508917269879950664388486603691328267362243496331849126785597107490567257393185727330539776508481190026334741041343022015383269782529275577672522928590536986911979173428079417508935932407694016710182599848268729490967217355710462541661320762645727498104066866849555970858492706198790348430427468161263723172497276029215650172250563218025921983362083403557053119441254241713864441658253407984747876006538621829412249932096584127175178295199980666285769392359827985086305196573386488160940575003263833450502571823746870148608318353003864818619451376433267300616928818909212042634054010625682831150745064902446837044121666872720331136994685771761496761323548546278364436595871351646516685360158511605280357860497769896991761967428743097023860442962111824572752021000675160943417552029587397755779668828518251852952612634394414634173524064858213283504696877663521731325080024347274921075609901509535497413721514584815983201441554480074057057949177595858486277657577107574337420777603837711385868551891059247331526072878333541957074192189647416543993228872737904406876595863102820819653507301028690205013021883844245224516323409578427285868839450770858571905074395081219033375525134618042094033993816151561375349626939203990553240875059293477248570806559629412895466455277451629959227202373092860635823856844311163091574950677600227105617273614442000581427455351758885983249687561423306021645517057931922629092630196927392028669146414234623066408096450276950837972482154094311145553285385225469296952809410135598700707162975212401558079846081446340199710970894228848573867084194247887318029906662012984328726715232053892811895468824819441573556134243340122375655672631157428065813677442160789618271329287373125877857875445701239715242295187463629987213137805355760986498343834876140743995709724170540881835529729751899949171286344683326166942126079438826486085020125813939841386795649262749527384328874776121986506409751495032996176323470194509818878841904448810021022593204730336393839423236262393190353531089761794880020862519990240935062373325415540510760379745988790506127695816165771784593722932461298320870953221669068106486390586143961492759718889501457206350890930411792870772809227232896651501575509537851579040670361280906659038362112207758095395766832589779916883434717327310748778904645064646276007369967712014096310319760305257918095232631309165643325768282976925061164629532089702061861464752458862678063789503698182041127905024262608852490290939877944280000802652777627613552232290464692180638269280984204058637941865112681298891021783333259253626636020892493774184967271969186793370396353023841123554711903472145808486529494268008168586818127777740907938985797805482428984433518777625659552897848588487372318364011459361076773531420304777563286983676991834827260277190893176695159983419863964696238150578489402326403527526725486190947488006855758115814954269841654985041809182663410645869633723397595620923710349712636936732502140418258465985796431207135357989554640827469910806333380570874049736216089251397934616874963007746696390284842920047950667549694514535062169602940102215763540032134611015784362298755038797962230856818259565054768387010748142367824179439850869774678932376786789415168278043316119659650222814254928358781681731995445944808146504900544249003844437024051486585722351050521907842602228172118838198240244140157240684903241217324455823854037607994800416322103623730900583512827321637131145113251210174118528219942591937820491330303229841302405095931617437839412894994133638810252188794815241646651147077142550782278647479272688200997226609590688280418045351896905358170409857442273004161272234879423233697639381001264693609140684414223775254128389727565423841367624428010602494547804458637519605363842895883834556512044635642394870199473127609983567150819367741993009240108438235963252958588237073794998335276962102237736478393402449569079236764794291776232443347494254873463508746988226628884567512381672293177348731686145021202232524457305949921606744959770414422134218926245659132014743037278070142100647162226436631018602941337202761666264736445114065855982684331015298962922297110268277242714090993287960278522162039848236810096666877297026968437942588448110243324969992067033080119979956615203738359768452840179991943610063369718988935652250990928468747580860042099990205050935753534596767372726006011410814662845821642718149762484548299008980820699368774710495773721039965577252566059711146592191087446142894570060183567133997428343409717650351523746591222155616440927337144950358670340360860114748852577726781416824725750200216820070982427809829374607274979404444273665676470716623000533738178900158920328204485886423979900660123179951413997044643129308827400165013650525013922331545065055481571347588226854093149207367036680714204808553800777646643291874841273549314229723742342602841207153416321100978495313994563280612919162552929697177701561264499483090221621065111697599452071119207770627879515306519131327797650345698944280599078621279629177055653576895557435600837327876149827927197097592399016466550558760706243970161914712351265985269286987997176085691155881520060944399067868110164968271006444805250332317002061738094513809793321080995503154117737021503713402611210201027809855983410463470276023788389475023392574157445421715031249260167778381411246234915643743867717816050374751647418716130525277004357588709765241432712501552101472102769814163432459775981509278267382855806495401460854174851502411177332197499253077341247978049835239392208094457537012036880625335657981813803198655188515354590343102409943255693471614304172440274689940961678579798555645109720646133951693898778694533032607958540537515958742242928174350494366204920750926762390460820241965815442331101126624806783716427919031183469158724628605413710578996882793490567202237934670851990334846011695481243824354328007284959017026032691762575657939978618197311855565694106041737919989680638601978157832624306420756882014597167644874317764522653521553754562360687909692408147124775057497760665400437532943031512108036291419712677502128590353238894025169874084307227813661465079450819971242741572231373048921464184312814705371205952695890214628998340820751075715760640696827230884739306415950642923197920824369298931369643379284364272929118381332140559931099193625436542178671131349305037638217103969827575936501371530758047059950037410315229809859552813268079975218816160531109128261423655936368460227212102201531891220223095423490516654933564839819873392472734774334993283793375350397871807462847730906538692292100872346750253186477368974703492088772554244703487577683602884160113143743695419676084625935651801238756959871447933941871442974481528907723861406783257463908612462288425761296860704997498820866454108498324098177222153209563897745368207832286562489553925406929379040104093927101218118600446888298639078955561190872295554176837176197702340539736033913473680898752752446183019900987896354034794083497424300647159118726683034604855764041080516395773006534950324140269908357535597300340236129715762384924870751975637608450620530161903996703338950543528071067630008188299140960735035532114519914414653137191196368227175712843844075418999255095320111518393466502761439962244045089284728296427534877412712341196179012846201694273308024077405359067222370055738307527233152688301240955487629698399123215164524184611566674212883485966851735108019422959817209821593123261105299674483752603652631295611605787304678398103514154020228729606560834718568230430948930253268879874317968344625003175356922366039389559817401873969672550299352922538031269791159674973009233224775842604988605712900751178162442070117074220626002110902001441555043598680682031022707173695466607802044121654037935893910552358018726096429631618880577009790768557585284531826104898801512168251793473299773987084823664586839698713222164827711641804101311657128358992312325117034047057768715067503768564678146140430356571045024408945688639157041682951060865062889330918334724153438247276957927187869063627218454691926255413155145249895991803342332465559058187016627364640789993334271386868870753835920708640072301101662916839349375759473366617396036439786307524907202871029407327340475603919415880579334213899301711090803524831001730329097735025691029489212524230676151964605042892476443128279448230284884868802210005601990519344523413410555015069777841249453089175761586177244760829701178481482025204594436094281977611315516362890021244618381462840675834560947422719011876658990851758348936693987904378715790744628227095537289473548647424187363498314034101840220032322962752249110610895397135959996652732810971730045958754131959377866686488389882513638377365982990932356895803764712160692802628636698076270597978843467167272122274894929492346776447111496940279547741027530022773045515359409280199120007430705434209303681601894361968153768521314769025189122894254929358761140477384604128059731308796436226091564329111353091103406249036477464175595983540133199039500084206420184025221271456058055498730213181080112930806862989987128933967640472581885934030400395864609770137029668875190786772605203496637164312977380401906834235704888097508370319797344309474452280321093596318585961470750265759988024204859541649126928884999531045466537388035721063674428755814714171173970252688999291589274182821347996301198161799796397554138804675627009049772401433692799442356853856490634313165387908369086671175622813965002505007322055854795029349305544949021112946489656097888026916033332539379781715176336767654868464605763602458697622689790472015811634240304836888141386065955216497290521118976968527704125443485257634816341366165808679332428557032855352289948126084150597367214327233465092893618943538942012540890001291846049598382798654571396961756205581548032203909927807263597666705457772036841060467460729999954567243394067013077012712685925034337696170328796210793706432680431176382727606760613182861793448166477332937627929862744762718824089307281498192382300550977392047203708246937991906111824341864226444389151608943835346589621027944305257853657365211593022867729975625460434914197001619357764978163335688596136784358886257366495938874981515536983524977102876467704909423603800780352818539527485768924603882764713420750142091242595588299071846042017883691043063254899575832658754527670582918042326720708985325062049799780505223713324897736301929583306158384089172464781290293732699139629009070054324464667022377467330644129293418727454167547199970573657456433759064080827520459897393433329849431678829978570596889255619685657644552459099181631780015340001329145128393390758764113830764339062433436800582405045194558675354681168998131308018216805302483626179761074813187261409273539301621534725659549654775822320953221305845028301088343881518740193911732494147245518449412673243849424849266602686396729360369790957395318298609100976714119577457538722968730673968275316626959548196171623222556063187869701289703852739693527461604529077444031543071383239636397915603718430197434301854346976608343873648839164373594053442012038574488568263279961812306166159858044869703843841059839766382065197489485120389167070199234152972038860728728661337440119184429742486650115652624021298521868561342039292101379164040957504442444173271451945511472456948251013765973096777585340649794289268753816966202404884702394705926088772649801486883548676710188159419851440861461920305579473546869507953933899245512225899342627629891963667896624797903817469036574768263482214609428176626588562538018290495548402136132294846955228931747977404554686787324115508750468687437256364072393663400741585258789896318092053090367704750612880238636576891741014981411219021642169105133642343415133183455434162120270122600368794113586345166806582205438185513882626571352427418227821847539954621318557210128211006902855573133629247939931695638945659367995507831407847339343474012181387762490644585045565611409640394442364158824644674578672530828933201595979818008653666585363282304178353673035080862041986502742217057804314984316379649301337562012586828498019178109098102622874369129686936345242729272817895235835558534275562445422118813332080203206336806813122257133079525921157395589793352122466770280530855965354862234556495268450086483274329478426240502727541868502660878383840593442578689157461193978288017825137401480988323019583953977217296442378865836891626107941371768296212926511373673732176879689593233194150487495357216143817074354364920772404496298197828036192567559662298234186384540526596054908329037816000050810543449087130902681212960408233714310188272791655059106429883996651363301650502520783337043696980776756890381493549600692324250243267189504468247311758923529510300373043776662817908887124462815146810261347330605858569794872689220398113411694525780193862669717719637644574425316088604617865120722210343371474771522647852046235274707580531141113123988097611618866855109337224677277521321184277014819940188071809283702461900640365797004514064108476782496170610127880300855846894023009350936877937864671030583952178533706751508758881882868311391240296373598240804191277040312620645642837214110360612231512890582316776650058474854180947068374256894587426463382018463577206943920732871518392666101998004007217908227702303855255616449092180190173386839346610933196275107771093198274769029269018454014463080653563429680809485305754575226663026414541941828640617097313134943143368623207152258041343085939011550848443203132389726845210542344206336980636477261885694715872665454901143450694841374127799031647143669006566390643258239772064681479206712468693592972523210853835979532376297402623966457849750325878012359877208818296464058192456945215118013295542305395555228614161965668884263175316548334595362645035679814076476792567095498610574269050458666697815265519844533654834662546156854031265467210156732929581989542820489204572806123305252388154148365638555094254574374255041544503433562985872310070535077943146860512393138301065509579503596853630075051343056386070054978237398433109897970229936057065158388372225279394675399255776145859134977139969153071050674006959833005228336224852080726386803459749897647919060040214963452978035678828337129083156248239348647911724235440729742250506224854994602651587576876535849275711645518133907867953200752173824993361380194533113149256600252253204131038565938544275755802395501287019994304195384437666416882200979086149205392352701223747644617103490716800774349397566243031665459355623580472158695181403446069412450484584939317075727308375992489863190688272809475874994927668740134740133283956445207223777998438421796837543255389370551522362396795046806296361140114294398581316293111333675305455216136371139420116127386772849169128551339652636183698812216939432037741576360115706838804147877253486927718228721467748777174633284883157197595450804797655516553276730810369594992998353340939455817595315694319464073242542474553473242330889748178243844952443243747653942854847794739751450400124255635784374232983833606623590739118384899727369553297795492529403345121748378441480181307583148510714709456875918698864823467662819798368231449974947414989549118437582643570783641686062613695736465288472857960377553991479336066247117973120767197849315610006673615860190623880204395217577846776392515515705333782415716451873890721872675992095419151944311292936211986791586257340746641519806470763842324627336038490073813270050092296101733926395844967045730319127260161032771938903633242909787746883029870588177655447714092042198449428958761603385447998942365133305606235328695712783756571791542455080460852511605266882714047411232659177092347600170932703247118792265738545747019966726360741270072332855337209923436728187846884267233527405773841245662394484752404810202415247928620266508277848716869061294919683586121541387111013427525806463263904497441738697082482680110257070327218229898174542883478498255554632135530761575093249339383162838650165440194255525427182176997989914047097224573720436203323059096417782391677550635640854169151966403608373495786381945435398234472534288340013686257730683343127224985455407648961972594466473013978444688371756226482351308148498124047770051437349580107815153063850642100458057249975407873635172458253181373711902027094755671595520295576688754780028028980456523875230428199557744101867517961195390194579376560044829797669708546510811946138669721839155292247357788433787440808527815353289316278274460111037548832631175377026327224216991297572181865074733708209746509019019276771106782266962856365902843964219270461880048548603225180064182965432365240909177095758649287659283441384321330595819717482173047905723177801041342898315954572869315565470297276394260563186527081118420884914887792688788182766611404610465845529567745327162385067436548929638364280900419130655682988733527599137408498246369335566512274091639483659923769520516537821852972319259000585040014861311721623152361526804734433723267673797548965094484075451371880668806052575735235346913785183640504941740217750164032791366158291749130667910030602941006713003949762345268388335900616308780960742563835661216093635284426028137996222859423773704029427737672616750442751822724178869963643877819368768039658437968407391163361268179554433502151335313170904916751817308591303653486067696523049409736364398880180105150270080652994662155345054618723381448393407586282219383508312751673167857222123880216609845340763016468288293552521843660381308551270824127709185452768597720722105389732482013056164331406812398855377036675263928288249686372346423239320057538046947239561154005402537862063212193070630504612133793122391940045501993312310507401161857840498213349105461899576019182116055733391274251667104001116094798432079617164150697730812741749973507100305985834433388191393906236370931899044726033122371701338110503479098944532751675459168389272459451539962314879168316702991336750703198547078713162385449524356062489697947621377163683192486329963663605894453667894432122205690819058132565696991209970226507172283670658286215621658280485479531013507956462533288016563903214222625293492005800887255745419143899553502683822980467297022057622111995372835236554099080666972355867151569732181306216082516011071312339029171959609755457438964961465290458665856713468072213008140079100310331393555494024669970946239100924605836149116816180413710284250007343885545813275660175977946731236034300618852407031745696657245087968543904913776998424107587593948015314483756082312093386251967582964883891430400119281656089259404112894258195530365196853108936857776892962892324034753060228813266569185579365999704970873858011945783997371761944210244358295020002282741076841449233087990374625823161926056060694131023026497131230968900246393510399566407240348107666300321573345410761033835747030178852823411716681480019138415397032530478060255376520402284924147091345025475361064406772029393035341298167566769637649128840830526759123449838656585110453214481855674316969431787640739666472680182799098471924519878358254328103502762656570406370548345501547493888841755231105095590465261500642556552834416196789934087697816544191232458601262423948478463571151842888296347472831907449869028769963739252756183127375883832397165003759283550087012841053322747795548311770166003516594197558753180825572755768172878125662760480354331536425100990648159281839964959231592835854257090093645520081910461302531297833226666940098259861853929590345343842608080227695864024270550083532394026006501830466510428462731141523761375699671323739395599696901075820033531026146879964326342235981898688508532611718270613598467089825369472402257123284429660022692823903979912081070604065705069236060559667952834724387405412712744364806593182500302616930104512505354105757436575719215027248559321177200238796708591040508831929631454753672463012860297753777655037907437701513317381208934103215985017073882522859546172434581627711542783226864291979181590065279469686118895724469485798583101893464116192468280309863488350405461006379301224420402323024234512415393175273053779402604086431065951477691348355196957860545310396765583322798873371009348976006723215518994258464273800642075503362517182370544398727471715859526725007142987529138627479353318336606681826678686812593145811205595175824052035671650444000711184183281166146250306052471688874933984140004945868803808818725467494284396454834576007437888569009469088201376705649239942177193202725094187429343221173432222702689322855719623256993626382205569213034179673559270066920784122054669300443893787099139590532081463479699205816391478787480557727381717719484739534797182328996483723061881179925296160879730393645950025382069837083694154954296225100892350739103816252035859180913069731245905364956599900879084715116571843795836819176048478503756209678845872164855637537959118036330711269268784596762588627733002059247647317427174487308488088878118345009061326910710781209090801403237841508267141619144828170724460295490806308397097038529203958185995029973670231894637101801175096105445744453038613122767162354415922118575379251030643891814119644618453857566920442302531731787373038080213392343320119014894843595053260744027406539338880091819385650279894370436012457962723461421620786715037717645829818323173017082423015851624685785342419341563247400437342524643646150096081339956857796476704885234066579213498172806864151783234086228540885117179845904183770779926475550373934629117208860989339149254639201206851777492060089780702743553953759280608033310691181129882154509115921250781180407541007764068995716048873488206738514323199959676992035241766750363461835343572213338876756152761313545592247518026490609066044696162544236664502401041612543153788094307341515025826521354957595587352651868696277425228024595220843961886141362574754036566079286890513957426653221225398654935345712661652106217882872448603304586179061862012012990776810390237743106123636115883276481198352494123145174174561703576357214622007949417204537138990969105293267297719816083730866252820681134873633035841859593460948750695692198485977407153244868878843615687363601770860092866695700235917549294102038828846576612792042416421152414611007766585440660927548749579871504675781395116771953792777224163269991601634335052780606251851216715896657145110781116366713774182092816512225169347192662203107201064364158266285818249902764053863428487516299275495813758329069143698519234209560432333416032742778771827189266212957979566826629832229801973018113915809679960288998597044540372529648091505378436314445831171966649065679253173706195066947281037364010089406176271734740127809626997343150407210169774894425879003912655112280594427722027293585164450609862122874120774582041933521008447637611667699106079997338906083248339736085748758504743705344102040824498746706663519956216370280255409204508211044075371971940488291451908430414271629994020784689483907339818845723806978670763481082051521423107089630695011830146505818828007632948988695564777242502713261826362468656556556421839482656397996147296305973201701157896037746198955208468745698976870023922205486243167747709378024676899788473455387581350368975477412114074659417017927284526885593584660268834133881008743091781456199899612864578098074170903461784775934752940398224166218293506027517330053586163245186498743488555463218657698206545056994984895986012468517736203479653009055292283737866649503449214512444145824750203323412796437569288099933414253096992787684348356429753143269667695109619078249297639621639208113728788161369155249448825355486440700420883348716337511977818201842768586187152764186397287305154012804726459690195681445667751295746882235839220420026652955804327583093916880361596269911416545276890119814125927092511692068960782044263432688055927030631317637493842208035533648549457916438842192064267707135523472719022742621354537972595158147133462875912777036537279112283409637325998145425438772975157898268189618658405927049401730508911106095978259762378053467395187279818253036581837495057029698566491829493079292475307754472765603788307632135086905389970729247654544222081098144319779864147717746757156617319039286864753040955660033767949518448961045561085381739381940168802066780709841303699432216232557931186426314673959725949424332393366922971314132277488029226061513650090946831053851666853854065949184489859377655270961668630096322297937958860035596766641376974582353789658143852430848642792508878840333356474948829964199598578181370222967043361933913994863847479946724963112616346711141882899919582271567260947421066395036736953360481609429611930717512525836362743880900673165259591818674121934048337830534104841003723207239460701266494853300709107160657202446556258248509518053508103890816013219042698447463789884771247563339705700131009401343725810478405820241918710104584122004271029001512907333508482341738794055220570328543186066500831581393846808569971076003439026411908023880598126620418080963328383838048272112325098252595031414765091283814863159541295742012631357854861451717641699401496085802566128627762134143298733289431070656366002519132283756055084023595073432582263148632430242803683859871755257309887163342603430943684252480993973815565369336250952468601719852079545729265014188997957776996907135049569367030939420110268761492265951188884361667003805715140745384384295127370785039178486046244284854085555128684715071257196528863902524269166302011513230128651523002484100986933206408826531943658813706318156144958861539135989985386057467526261091507484233738091771016162959655336582183221125979516930082392787673539409542831900199960308083781310530796460438766939967071801186742060362150162598801510627980172534500831493671818918119145163288550434065686089484401452625221998539584976694574463971568600845287214287209479874277760915333269678137547747610018855150763864722887887468124233697645765679432223714301625858085146925903125084404552695646145925421779568562192012980665480979578773178892993455767274722329714014951149320720258681417589598625519439589172973759359951165376734765583241003442288470747354487729520713385440868138629620379841278152081188629585249844189514398775495287166802463721721641935471676335058052856969527802062473067407657404398697181622024952706209549483139845533317042462425760468980946342283376975584241880698706211419534017099192131811456934054519326484348170313333053544400876211878345205611503789800807037928304974026728291315667185306843411107457735395440651000393985556813672946383727868427584789266520086216929869831429203225095279404455305898879587201569870108660300759301483329633765676581615018766410963045142939812876539450563980059513342405477412291982591309736642346684770587978154996854023449210610038004503159195434379342013044751859191571180497469500831237221169774197914267706821241074001771405605659172969973113837389594208587535901759239526170270724622101797037178703007486605670077948238867737539882494377376779924025617213995593385108859993351103471221976882511052983364006593296185191369085092323592748884280439976306014114430372876655563483613438313965598508450757003607956570205827411715549693913877838755736616567711179526423062608021478631012241276437652601976180221746290405834606498830595663894303184439928849627441732178081925675423210471154274636052436514488501165810612794072936734362120354274698005199658819464497938118848815972529024945623836130965611259906892469497033402594255745334659133049409567655937979358446790458970797270568882162239086172831742697031148102203991717509083362240112289927788142253585173245991587633345448175339187859063913240084423519036266783490784921915112873091431103995210920708113433922381809366193764598771718341184018727093088595744064143990551879958576429507209339296365521774994519934227392914512216691697549485274020238029274737088707053346450910154284876226298095681610025316457904898208745094002216334236661064372731425163050048912968941750309858946144678435449638740699048972534212623595763540896581000069524002127197072253223463567764747293956812930562526279207188872681678875565628252828076148379724490623880328357739855289685447120898522409166518398162364693665056510675055806393999989383814523191914133642214545249111218588086183717536456003333247778314374348710100527287181078321865456671567721147836011175863967379548741620943735784488198820380954450334029391344346276797841965450330669235343100256099744509853430251006740764181769931622863865715699744495932204925071192530736735719761484038149248878167250389456737114141800090880420613747627661890011350514505502001032181522483664812617466694494551202562096115113601947480965739017380400873127876183349306838748246701830490453942892204036520581998972159349890298861807548949519818223253932612209636146019140807915380106547959584488306077880940253646645265184215687282913933438134199437458389539878971880332789384748003994508528610024654594637180827430231738779734425337884058018006203688544533395014183162892955650881136012413512814774937657697674253528057604201091819892890086926825620887527723465301696111103140277893131209168682499649863549134353052422272837785427399676434543423619040123516296903771873097349645944132462627846453372305476623130908342515477323268230734744059391803381621970200545641304893541324631420123238747195397019280925961891771452046528526181654983139530362073337700649790595715748846168999678196970054872758332706577397683599030679427672541639213986292486818664838016777658992151990815532888991809946182759186835370934507363409202821004888471922312705254430305853673485970886078784960104208770562580276983530406014296115423507146722209915516552728014520314321908907872910586419045094888556475668912245974071999357753311587470370942228408412177367368766013573591954244377264051073947239693438890270005496728965399312415145457990496802124408826458611896105396878375041072463648880066858564809230294956288293361963946130380901892896601425264054954414234950009903652494866238407241186940652330044038292618935257068055823430079701884771360030489890309143601610324622102303125528582356276049789248557043336199452155328231205119640617362359464797941658781518383878768972891587577429100180632631793306413632282005684447956294237543039103956883648679094602961753849334119421610679508523021106902555263563752774674684925356489703985703314202154538388480014255413951843670247713677132877547322345296294817255551120847600920578681642823556012731251068605868692539708504229510411290827713869953771253872086997049046151559802544425527009771564888138498091298480739442596780016829130190615495235757997029819764141614396338522899631888647924909745904302110417488259550570198291936838720539713809810370580048754485602902848805222490641404365973663200571676378646226310417198160828451602134249584555303350763590587769307467347975315516594299031771119269269505067635411745704211480880264824931414310314088684673395087894590412794207257144489390863366051744218013093679583727540246588545407452195101981462129819847361761621710831710521012482779647786518051016837901888974707906237864949938133469160486154922521755106939699222052756236791543092591717338220971690616553936972825096503648167240942950527630767064448423241877975267506221411590662502942888761738397942978836585501717249955470493013386501567830331223330082254885730140181697460864939645280962036649883943923973621467084921008509059110381523677055448616545701970243710368005089792163305208917163236945106517279961271757678217799326386674194254262822390541241619209457791691975592589308844628761241555243746683769830102355600040285690097754795996426802363663168261771949630720196716519558934212988211234928907130409339711369522122323582273985766357905593700792089294941596083125724960196535443078488157660001027668610833266360810909492802623064282069660227270237981093817548454247783317748186575012278519594081395714972176881043379346551053060979061575143265059027543359947346314741141910145998709887467474569957827037024412678344977867135581381406925353943742902950503858272043070650235842873033393854648268539503318295197312213156875398776573872238870729876045005924104878402910516363248622097115370251054867359816678367610197731278779170199374611354015586777267338245484810951820193845350177677472311975637407921195543792586336297594486754325215501637457068019899929132556792883460271590147595867827093076498798236759232062207027767476296703091176796372525194960749586638357566648787012866914288611799809941922345815832981732848917122526047668340410673030208671867285307634870570950784421369563174098356920131469100113759180856270578023285951903201286058758633710898091806450321929826600071727112798676650356535363283654123949701527528307250593855568188914158205915276945459735285366122808877158405164550483316682659665373751911031073926655717057571353461740163186626429985974877545192390156759481447566044806342497147826144154765743556315097080746461519128422445988035894863777102606601092414490109183855585781852229163280963684391332980845305364598633343073707945900203076563936712764137159675463746791457328214713503772264648521319927734963613316524718921386382357508216256423772411794582335470761950625547424247153724744835755828858913823121232283399634001223672629248099368180836951988208649102538610641643954437561276980837116935635985068866716910436801463123801500713369073952307412363092634493817492626280454707087876042640825534073005867338107932201847754849603030504751640742894405959764809752365459723333506604899546860488615812028205872389348772681226936032999699451641752406868577183690151881904767034895775942938628866955728021596064823199852396804155237648337242536699385142457640104095409896971522407213341016505613062413579850568807944850727319410481214456993379299418394882570283612881573317802242246372820335456164292119197701746321177337951097528394610552024355444404181338615593662039926995686782879100634781526315884237481177185037921833391290463844976431472740042189362974498903220365169823014902305729667602313289401169584326401760345891424517089165319718657853352762779632274594103802657098690673912236344450657299293952784534321435116271815482661433933524502537488890700701054078358332527703262983139645256059811005163024343929595059830600741847422223512038626438663376958695972573887870833731482840018510873790317612596578605332507489115358037377720659490512626642510016448545473439180850617447241848615405170863819879546968432738775969145214794573557400053138737140904034505340985036382323263101798235569729414574320528583310995273225941900664061669187970622160002787220583918596824371166491362065295007465856609657567306020028004204715819847404473802666714879536302457218957128063716081555364412845639545817694525376961834749087899887273402601221310147882113843709144978543333251863518200313023009018589329277959792999437589753348143706316108359109127725849904146675530215143510617415275172705843600974643198188893436381840478133980105834323658279574524061584100523705907700243175478405689951483999562640335215264330030191873986887598134912881002359342552292006200361654823986140516901232675238886579224239337923759753237311649279035910136849966923149054692870490041813295087504927718532501689931140360937120660429407915059630109585124975525434486084352229817931708125039166912417972758360155759771509182976175642148623360425517062190335657552588862133559192526145980287000679618952300340483103439429056048076078780061820892428082122777122651919176555354716709056603558904264372148185283372829647142016858017347327355225620568078316973755776995115755831965470820933785588187446208651251420786491823664338308318637590107708271897835716226548484178077433829625638662406883410789401551258763107705531933745124268289135421926985473339697931131416099491576058778919345090828940307759787750846263478737108686314717676214364805828683643244194981104602052879555828737646695261525822500606249671668393264725642367123662009326645392156299288915501134990114635757851798036733841883230216921525895891628787457311583792540256776081493690045399327770407276696204054099788986993573449105862819655316260222904949304640496980071359422603140722595099302469125879942027766951588658415461129879536764424662832830685545639540197731506462720023256874334949235158862612348223411256574875372576702221789418130994979718193236621295963398792864101673588753796480448286294957965720577997705779749767907600537053811949140144084357829612824453754143158770862506034620685977000936082650915849690313573160051286657624609403501782970174237465238876189420817977101216749259375606385461679172694486092974677083641938331551835533023470845297866602286326157485637075748780120586548088574164828441162504055425710406577068083712011166071457849434846249544222079884733372435859069373353084651797830347958791305450773860016768283751443485090822227621291537124303646373964645462696317169913650941941798323825619123000091632460148279900936931536485133159428511966400259725706716793441051335719182032105659709993272439802954894220552771978596793880842432269330519719251332629511034319070673276247061405582521187997422782004686008729146147467820041328350807517290045430528447194651475159210039261213414493925856565166566117512473784821534309447727112364665745382765077017267533993734649400113712399498169608671117120029599145590584259111189840559145863761135198802079239495691664471593399982644457909743048005791774615819273823406543012684173276496999557178237669959861064978798418594602734616490959605309280585113535298503752525816568616132364953868065923462636716831342245717210166221634702773965080870806230642192121331680379075345008569853350122045798441230015933227358028939000817585037526529263395186420806336947903193660331596519371595040906705699333414598868658585358635189234193841622425061029820809158100427880805630371526371678306246729144583732259053012905550060931829377264357514326375434904452731543483735092651368330751943979254026294069322170965310915826076702661892719431312435977478262007619157847982567220895029457942550472254798971589014116905505452949377509828084235046730832881073467755539066533174776076038699850244952392807934755677563697352937066884701554463531304963076806640952450771320802054534875812778858777982400668283701953787924422762179461869465092301245754106963619548885190755463299313832971903752859014935769886485876732636246029892779569559291611939306345726644475307002755489713971301189048636108840816309638945888317164178353489573008425095817138480992441377578180577692438229103339149808710032788425077336968436363882068735611634792729975629847537759129216133323501118134221236367231226336647216787112398203131889272690609037607856929549811424490807667253014902449683540861402939176033109326266638937952662196589646760174451441991401980649965583092482931244983614323916028047519617404129976241853285220009883663305937036150515194088132279778146319707519564491004828936904184144362684620665325388600144591285337335771327013051705136213142114841722344142587923642795045497343322530934529046647966127707082976511091529560269851589316496650452506142169002703242854050008666450344617963923812152764328831502351773999798714968991740604651691027970643076760806040317417639448708980706800619735401498393379899524550553234545274000295589638529271104599792247283588121385412745297636598608246553650685568821861106924704573254903459303801243228047765414603217724023737327765049760563116810157598011880440247984489917511446437143487338004545172164744503565780031706198248206670689646455036072282108844417675953464640266877318469607033737323475687337185112455040311942415247714257338035787297534108247564066747531483479688778557443510952136515212007516760456644797870519843362710601302720081597854239853664080195090895463805481012813186558890173721406706151272062505589344513845743827285118879347464793018373795842926045705720698883095347965298364822946465824165659119970794155617946489686873345900600611882940936802948632357997310359304049187351411179365478847310853554522649247463967145314456028354172779830053087246183663010859942771252835294284739839924287293875043081300224315227376805319554435149105998583918437246729623040485538709127395854165993083122578675054543427367249447584764810303847493162566261361388410962588102108056538270819899419452345276064142446953045553494023138891006881745878500622323906979651747294228442030533839952025193855605791104378236900061289181766793405072664155993109955828656586806142231990381915995671494575577233684563038735077952573588437834565800786421567959567896727974709983823774266377521126399674307482550577337092453378486751870687435339100802683567940463545642904541988364439442918212170433252615457719002941007390956778055314077482676721105290044681020533005844281209963293950188137014048637292134349984766970614250522731991059854482376883273986765748827210290114975601493119946283603797740124694460494030297132187781393922662924822632225930702282063195861979085974370162789997951683729229804703356670239015661202809038616166595616821902290417895873436926858760914067546517864156338880787220291675164936350471472744373511256076335690177780890759196424842775371872398204787667176644454481329053768569971925351405426533064354508930068827847883138379996830119860662054226335716065820128819080378916782658443335015150399080580972443692290971474792131818178481177826820729248537272891214895995414275329782271564603761289075384785124246905907957447000020642586982606390893902837224080306341176724118966344274609896524572685427864514413384325401814272233972994470618964054792643889524209875805978522275097437823893159239060430240072408482163485946747277970067138467591235507918087105439141139412179040782517407022999509708102376478362293623307155539152042235538414493946955732458240814114215622074515897397014362822434977283411555612983050986052630825581643931641076157880715957159779517594881641901558104063398204142008340247769964203381169792244525903004423868509155740421685559810291769359126245716516999667617627033651982052244395532717860310410333602003469555247439008320474677702867909740041752348774340774644977390972610083210166073578594696521080814643486793510267252196629526904514740868616887805194071475975213167676596281527534368898320075772798533858532990533104701693594320333337705604509127373625406738862086515791318866423659401174705728947467367944448197417782147595069096437622342146175845534056382238076096388387491120089678623568890337946089264584204843391138841298956085611343138410902942550380469081128938754671851705759129922063828760057450842822733262526388475523513012454960790338746808572498754144560446770957136993171490842995409187102432733591542990166159334781242642869288642444348739973632118860612166914733276937331405329449420148014522596414859883062979083368886874419935612890731348444991287537656774671933756778447348578153761471564637337501518858908525637223401493165971269652929123875602239037821874316215189740112286168201165141383417308242683619810001595073686772676525063870049467927982786027486826542452984114746945339872719636779208386209586822820896229603110420473047543335048070892338492832510407644177667268556412526482839185938766031227117909964897621598976534158006728858164380530188023618790166062770332304964842621727413902366729867053332653158282973956904568160509416722785539184096433405176920145127933664556958169466841848897518735844637104194093590988159723071506432278118716928836786978385253707435218614032938365264868166509729088718603736504954489111409263820933631318017201394056037643360065300099926277821782188932329151597039639805374425102684400243511440869000928966434872291684625684782397561636157032964844050359263868245562103972937177640379522419948380774826573234847940361659794389476359641635768294978798079090241987298533671198268840475145886708998807883958243559044327676020628640740321232164777533947547662591588943685750778517779345177109752435212416471093801111896962360540912584822436335321782539185898144499665112329645072646320027904466512928626435429429918452524060717168690683247506918614461348101480199194267457262515279429179025210683746397746769728985055508913242445098847429253783464830628362691022028450525717566619366745069655869836551906166872513344791371808722994010461146558624837584103026296191962933480099173716377518603069310681491610521238369661796882551101149835024046209568302093407435605439688204785788873570608247383468670402890783823927860520387917664523526562890665957240772585764748900204232163188613616802478882302069270872036987963608619616126836899037669686208952143633030973892433608587237962517977193942348437782353268136671722661046125265202641182754080362691000410776236361755769738573456872089611662948744604781752941235783745473472591119937843132948171159723619835693442825698175966135064114225823005656949606034790058859080207793610614071205153545984076375772955494653224473561731547544460301799742594569596368017658608184550428422893575504321543857454263894207994231016181659366783182836641413872503400831910460194052892921751189742449817862593508069499040969852197595371684231271365435680750266542457806126712324808028304564925200096839970582020577915040138474252421579482066018674503893834129968858324134793505545580408220459199588811107638781011234739204218406298494830634679666763721975181455170846679077215815072587904272160687837792713356970476193556215111734740888347267567095441462119351529170699682880116644867909633427124494901493121481784967347181921658700616783004946780253254125368911640019010550967873320287868246834841758085874161476638609588103347401976821094501650627014226917549417647815641850494870134524035341962295551544690417120539969018169484199723583976064616390581059045282357697100010663053503467404628141491966309946077433764936814969462321469424986049350669676053177395785802815511691468553155697411181825876049381586109277692817818074946125934140011785301883147975244196572458643892896794919439539124095382036320657124776393468388923945833488250104253202477204156561891800848629452610750298746224192506325737177946098584017921891697852620614171091456062611676899146658428874795654102387009377123626431665893051892248046673751558039697573637617342944986087109646309875812803807776857872912184140541721257825632750277261148230008531470010919489481255659879484100638649849776407512485322579839521268976389096938978750752648672524391700689954358417814595287083419514620995680328946816541539950472966893444241429259888820702650894991278363694301721864146998245594754190910752826911136605997802971465022364273920630917463393346886458469003725269255258721872695936778302002407107114168579985094587660307741506055870745339679902591768026916699976314161121081268436697720555206631410609289871297452965819329250340701242641960065892912513724190521963846519591215076803058766239767658392164435298881389048575398482410996370383980468270454074760363563191508363089886423669254311354822556466542183955116329914798470364666859164461248533442473503178469646165481149371067296015950100275883771303844069899586912320342055987734363286179356034857378852935890358923815810799792232089923118648854911543057330250868950720628033224012562992577824301917768970513583433473721018427339010529057485484221183542780377256766090457949858412480033480528647491544005593977269778455641600514307316533331773397957759058494646524507448413716494872028034113976870931068253238093176703675036056164552646654814351548664338404371952125236180239304371809538950477871116751668061151034346500106343658513974206012800293577132578017353670601529840477557464449683064163035115712240159604753692584357777013132150145982224305792547334461870459329118167617038715439314523514584955261780603022625478691990876385139247240601087595058349001015390962051996187400800094486498597371137185090082643150287003475793399748281380752584274995521192995384617779199433309168150926717303281921134176329045492303843932372011774289480517324281459324375057695425302695945583774082226753287117135582666239502569029011811576133760859209836073151099450095139796299912461694753211010691318609142930828176045867078651062931312881258793122253817222200710341191036980446953038746474735552307382205171292313314597591970562276900776289345443550591566225823851355156115716129983837570761703830477406209667539218675944701483140796861481986862886871454369364026116221963703047323422523357358075006792893312746027730093663683188701450595297026467128634302302005336570833661611380346522384358136584310617764529550355326581361055671660436051176811566764373147317812173310486952873338881012815148739372788193955194021730504945566854265718129392477420563705846216689074141790949385589207926188715312724908707550603900005573808918797061540495104249279515983647702079687290426724588208860910064124998620557053041409315457269188070824055444334332613220879527645351952168487903809471536493950018839769174994374224584867591437520293440941798503051925814585914843703803696108811250164079344244883880312580282293567769164560360550582781428370138289967112085868536959978359917181348859393614215911325819603940672576807743971177555633917636892315102465013561816086906336961345413128010585324930828227173307700869349553968112115923527311091700750716330360813724455976856919615141460910432686071856160440647488855349181006085398380462647929016818738339631296508328958481025786965916853894147901899979782316885735175287147665860315677284978467679786851819482115328314807563625536777834486860560845042535940849547952504674671419097021408084876485651405770236748864193593970877112776307954678661375218536494537070882781621639902828149125360792184510857147068666014141687121996783687693116361624859042140839437037320997595524189767299810041554532329840435552329404596592183070727756678889124127902234425550020186147742841114701482561830867935937952999022005874478697716677747363447635907565451309781872689900989190480939854387193419250704689325194352940246248639749395006813851006300533518455228914049902376745814487800984526558492895943187521090011700052783564780694389257405424875616409127760599827183704699057880065336968178971773024858370206941114436366626251868786560300686790142350205727893186243785844064569006350022996042171074260874910718462500759369927608355192006321597080844656499508415036659814813002755762693012746198489569515769387527007539759165731658675041898281550453277933573727482289520598563562434947672587139716105557295200464611718269948140888599033259755953688560687391842660905975671397981396452475660937073632135923782334513909055549728209617799383139988971640598478282677230925275662412944233642546876404970687392449403415700140580068016413838253299705847473650693637769344103383054865844267452507451760200057807567662448016710032262056437720942735231832707855178800786275181411512668747216643328961216908138946999495967507813410316221715653827031891737316496835784869679091665127702109395873588259233394143546368734066862772973324634532384035482284212437146399158808524071971937128715893616517795454532324002434294699814031871579208574989411696754995185410992491520365620942310000856290740753495920340647100437463913747336505220745210990681699452555974255245612425849461518908341050143619332403043882522061754768661288604566057358370307291465053558356947623993086860889469444436030610573106517200087334095908317749904063987790380595414977134634791558106873245846015454059870633539068695384377741920673383112824167815969116787598912668812940814200509085134214952010599771969936041211503338236307674745855343132619648695802496508756052090569829678823293956371013024734374842609338644140865803528361646435668366756634902256796068828618899971905061173945922187473013182818207505555526911653420179169007291012853513912908984089834394097407122034500934362852448337910881146811491911978212243144983459142664111313021962598389514639637797314620966820396377960274071895398409870787744405869938322684926646959919555878227363722317022469477499125643625829544549097182953713361716311058019770278931099806966020932471414323923576316484030841883418093912344229357996974887412710593248276602503704200392661423791577782699163092944848764486790242900827404517627226573203444987922434499339845941904621126637446367137761068575438210949639877243755301447543839736933998195587121750823624316791398387432373646741263030748594220915866012880350048808659921411742048725391805439109560135051575006308903649960394902105842117356307148995013868391660401593646177856422645358215049581090920540261688224337311564001126873139704254210665066769485969551050380663077795496679977002058475454917587263703617541547656679075512798751197629142611956660678704956314697080715975608129306033082313763430682314866945120910477942851755006352151923806198561892443173886787811966359377240975653703035900633980030409522106508405925747848541606194274673109531640661801399331038967454505239188823746422619673928769754933909336966709054960472556535291078777788541995915242072129240574458182175529131905539842221366572628642599727972649509560238338687503569193884120051460628570628369519509144230144618116379392382959677225087764261350586406675424299626871489518992770074574594622060880196174029114241830767898339357408223723508619604435215197404918129594801715074810673759204698992915527743616983106153541224646691573005965261494590994955538395485138562717027541026920388858196202157143319366292734614982814569878634142102249950708996578563250408894761843858552668266753854334116913887362496326508480523133770806575194594806370178737294743387142052656758606328153175977256053697496933777340523523009947936465591762851515837654144469699856860628232244877248164922993684965461308011513598241258495435560207926004413563880916172065589610049737519833726158792168179797258895208663059939292676518064066017374970882511494465426511422451433724229873454354003618366245005004397826620378662707098939571255612549662665064044242067647082580185461322959777199947714607901856859731179165129312661066763962086167107724732826832752076693170707507278337166836838777649765865175293718541983860819172478942730634415558965210775373516253998440129995451239544407179953794751930105890959543217696935647194906670217276138989969280599046302743417406641554014858533670168502611379600284239357998635086287908404481053179328656265240909105166242487539287929088682324475572510786661267202663311275268783603935442638177539523188807119744937801870558678281132953935167215875063591363182086624820815829804720645499003778310823143958683474836525399491834524091800015035014968860199608943763891714342236704555892150008355237725594962773955805939519368973697943571667077087318900857745079846071089595979270599908245371990912613561887451741716079564366068340301883764392035813868080246353500976545789105920456765990614715850260554780698931064083656608156802438650338872768292083339855356526295243344419926851554249367449854788845869892916803312364541550270197092027985702612407965483734406792927051786581545411999104808102882371432468695943004870268074320362836893060325961316625527448083501362639570876985246680702182794289461130008748869505075705959194504278250943608033043071889065204612634874016441052159968412982212302690355021908802497033498350631759834093465164059191837702256579236069174648222282700612524811243511816002817849797641116543658768513349254097855429213410779056890612550460108534465147756521527523966712484393967173284045785917113021879046663775120675299201238925664362447179158127237956268485832895529418559321020365940483891018680643519104792786946088367165540637886879266348776536160281056599127018366061899457982744418801687518483782002418865011623235201305376290363038732344695310066418636705973132373028828251703176849094851349811861748242253351587230972710766093440622559163165402429186932462785418232278626013355847740541196760290960379960046991183575283171560878075986815837113213457378236708568650368208867405378253696865139052171678295918011021626788562860956859524917919247424937079307942119722568423109650558515868222978168597362850934419985863158389640968474886223307150837984012192160720243437439298938301720626295933897006658155062004046015485956909773496463690747563942739938531569470890928863486794236237424818603792870498973468155784412702085091582518813885141982887513545163905011965341720353920162365926939935160770048934166841101753900733863309995529263259217018031006638895838602793082969653281186982222899518949417151209433470292617530540582960191935845398481277862625204264362146716567536706757052111455150873036461772848372624864572887400558267316823954268379625995565121091714256475510627049533387591052029935167439712604141920291971871251034267896642458432446285596164643010799734803335775348303329570919101983393287327947626285169982394719563928131610823872936852682964487606295946863284993685415059302620548614508265640865928582603042997520291891706631720014385376774442890443901780373143996422976463417335142970396542139773250559611360316238495712081962970957683480283857330842594356918600307337396078809081972096459672301251441736168749777165503872756484814950226276418002394891368144023840949738554364918377277190717986560682334937017840873588003692525066277622822280008071552269648616510427306509258539889472883849258643893355505022915206970800386637323529654774068563170223478265703246834462520703640341767771290765079245868569056209867698701356245171174805163455948013317206895750197885266441153419100689184538819196533228951492615718448393757620429214964183402140758375908435770074875294684321783372200782922899296537013445079353614359076885046106847150224370667301742707724326125867918125530889596050176171146837226112757892215846056059796782666321877967997288747985566707895905408684599308112278614903728070803459910810796340790950499103865399825955014588158257403806965333453738577987637403983074394718921625119596548250588117965922504407173291559072803978148311937621109000760623693216435130605371448742942282930523091898591488038439247997693704497199854252172011595709659623538930203970706897344311559298952221934238900259819116878833756189856186277397949401625375467347888024363327465473931744388475016396186301751480923051907444582439932335806241489693594792071971274762356925140426367243242162213979132434426715895040876364039184898215995369527454032955982418002107732182224448121687206438542283496625017227496088550359604116118909267125214508787280174746888313888009366236542450527652484310459960322959611857551430094241465864213210214748984763365784663679454185490441435479759242674759915804084512380728363404460551141685588897535394259959199322847263188110881615243819047487388071294946822800040854019296691621860066118968177503428633605935252275205025880023302291020182393780572553647631659840179864557983513045087739955790435521715362763914185279430607256148857682913654551417294207073857345948013269661533695821411444140574666661125613951646005837290641371462879400007450218605871634952227841833921426039884601462071260447347383293623181301186942806025855186410833939081943666769366289927077352012953122582195831126111121531615332147723566822561143117906756984071468681080771122259773343858762951657389903249101478306435032209096788274054457148475456669453080579583671906320556651719426023089245799327767312036558852590920782700195595168309051164551855435320160685352008284649734143976635262834368557085400949318148174354337246995476028583409269307690867949047414716739764716991102445190904059762023967664937767556699148234411295330195111801855436207033253098535119696229440911325601995492142189665005507048848371757772914556453428949046676558045155429383560300739153386220614251817348273494338478939191721241044939698546298141757028912754175100093594509191725019395097873781177672006635323279901064236242144827387308495272750585302451629696869231575417857558154807428471657964867185492946540386401820025927466803078797057446796420124012376977883912693971783751676254851947604801663344669721354983062634711000291113777301792207658996863732624329187322205929672072533458181708452945289236721560897224259785792726667341488435231710412884190686135227088491173884414248460996408011163297345999700271443447076188654977024704082093630024662854088012207709075458726286218108405943009842233269373553472043919557932102807566048546389675482940793729836115999470337349417435461755822664284790645759180886363975602430933403412756732908442599028989496459303126539109730697392321305131888003886472224543997769320661204414972253174531085533194536331654565059091138720024886546305054287399245417297763383862985510131926718457848580727390487731730347956500541002959647003370806659807788745798720026013949620355769619322298096688944562915096579916179662112306624122500230695937845216268285356940868764129698674928749301233339447628253868829301924203138588267951484666700746823780417738218783013953111812563909931650433462753620408061221758566887249057824105047159429465318634439804822396322454709704216608849391412952777286909378399165359870467008323858033363261557055020274038867210060707048226821051903934607122303791253523299858550440272542944257998070059177641979299653607825627784176491823169101111677680716980422175188305946000219487669090999308210106922040631213169688571941720931795513762449707055999955774967822903717209923068374307545945364077669194851065093782803396551311555740402018603218056421655059087646680950256110679523999194742176325728569492591456875952421935663516439589513894804652616127392173007025674827968760317769574911633155723983794861633055301692498775597073541697190573134416624616176633232507088255700551715681433114631278173326634189611816577689137069171982813393372536262059749120658071363460472558821500556384167797635060806442206286635649207444789417936257194374435322078397393003134783914442984007966502326865535000941591655714235697082021737043096983717990156811531898215444054509931920687903856299065701645455921279571089916008448564817835970172278357912561595583268761570946789308683527469667090178145168120696021040625651972916563783000514909726574961572718524908359186638338892837477392951993906330610610959708864258882334846071565442215478153450444807144505895001015495060851691135394894467102705361143258130828868935885656508590204388572227540894974082735950058625345380133508417136389527416712897961150080872921059744395765812993891237989097997138993396008734308652572155455643168691249202484190752018128742243079437254749684130914453371536574161475798543497763265629633308109506907153157810148115890754455451701890290526977317472639137447388607276759062457545590285119051239271538250011138616880046336528939959467867327378462575544905913609075286929887355038731325604164432060838323153304418480069936061628668995489381575445308067949737639836570064548496340850746461982611476458524311209422711945119970324522151125763011040173855812977019407848158763457517618917491163323770771529770669185877814717677139198642267934789856369041745709326688186921382787337364980132182548081374791345288522252992143990480849057581696046715377878460536647975913163734850851295605179561441814339337473014664045493436613009689058655669671975453335400990405899913801428317098639777181417993373446242066314326844055557594833261590032872453642388801226710800911124972421730105012089697592475846795942822621206044013256242982961259548190192859022676140837645669183937841128908451240778343692405767459033632131849381999052224452494706135930543928118266781891643586464820537083822729383951337659469985988963885814836832997273640087825980503717338682787422225251933881998973373176795482590410797437109938438937296817589677540618140734885332423057042871194541345118535705372840571202317495472586294783286554365153591333377104352138101330524900833243356454256422422645408473203894910671866818779540430944910452723961695763258442358529946842863721857085821361282729413524000717750671464165608905675876636372723505601671217616215935912991392702797513119726831410349682967974783943424383376646329893194309463680588770953799020350629379916253319591007820974233612614693365021892213735120516067673463201365184461514982923721213743078567452299318725672934478617500920307677559667288087065746710041889734346167563566957151230142835249302229500240194940687278902737302261691367919471620958475125348592038228561552138432542573256879952229547043607085407075435111485794443311319266998583588376749248598468547786089191614525307703394226161267201342298308112985843398657822386001027830384879134737117651524030879213766743003142953856841467624653078786370644703976684704727825379804006059701622533042011217878637736026849863360249526121578351902642119276398960248152629993681978472528956839963323891316665518379502316815052940092823432600769154418942079508026738623510578062097565156627756449011697713894815849649176996169388634050060209238027258453070669500342602230725229825003483456300937777402692374816531292655383805885784329616328569841998525307258558238291809706103711343271162108106993194813082710277309689055047108945435117285676177295683350468913114190253195056787005231387857285035090940229305964327283572992090739762000270332251650911511109509720984626570756282037694490568447855688801379047379069199907734340321722111208583909113832230214736380304278910074767407352265328562628044736131587464174508273361145342814925154568808475780753139195149688699887652021799883468119783769134021841575458685256907383103310891322972743079808752690978715880884762454555679295518386439583228131626771984695982132669370277027225847140985037844363518596139867579189366308433675554888818880564809992627220048010260648382041066804471637885236245288566916292496884439180734943661479061709006035841668344565547847302693344340342839381531851303304411422713281863477447853503289887471833266678345000907481973415997493412207504757322068969716011257423550075204382851320633678718144910464464670131329293064069390796308659943930752544095716519497413638483454004336388161243250892469404886636206325038085096009453302783555128168593141067121001152227003542331888541081571681532759191669239956446568780304488014388956273590023257079290595183680512526438664853164382630095710297975020747225436819998449471630153714489991946576729301890473039247058897421584147905181228082661347189459529535841551024724549801518062255991838260661743378172180328726108793571037615126747950506463553333195291285739309143119437939407996051384392397501089054061891949400390200085415462309738099951267879192431778683075293878324568022956847564679938428773363525872868164585379757361141628880336227479408384275769481016035668837236668617911509771147481242347182831713611266683292082993260576759072437430535211787413246952284588818746558236201661377816078119439025587659384779550581670442494036320745945648246894930806201137019419330299622738359669218349300571504114450771115382321871045285426130675857045014038179390105747485477052513816290725162233443731252741873049640776949477719508872249949717454078599021025618414584781320796612156904893054098767201050255561075192632391178719432859761996346145802467809147676979627015446439339906279892249275590591533205634599663207657823912953741671573175670277793027138864250479503827371113766735311144991197717805051509248930772910669828090298204750007981055591404671409638868234505092717800439033929653733018159744205077884865262650366522988940239479354684373231134557775050499245178008767835249215387034057838610535014649300063337778811247199857368039718431883585802556884470681898223449458640961833045590315164909060441572455420152314287598631431592473836948993693373274703915077677921043598100625884537033979848249732135046802589983804032822528587176509036907075916139579199171619264692015155402932210884076215405353060369653059156988409316589143930047307284839996734375966234773307166587014656258423707820645176613418922416427072961789019144116542085423299758906619026647314717702886769147405627439451289122900570444400716971254565615329889932781850495374480627095883125435256131549797357809977217877217316573789547948840091134155662227303425893254625973635909125370430575066800116975076059095745769312813802207057808947623659869176256244901498563160291158663755125427236982881435352490633410099939960315340714831166775874759564900384320589317098735270156841036524867995504894643515025478369391092872154676064485475971029895457207321209840100817529786143681046365879990215188397549579183033650257844497563482921162620039088461206062273338306033113221618077320965236634345086786845476858143665752456748002072264129461361596773256998777914678054316262356914544949616250585622153147261301154303408529582239302069995018901122008773479714181200026099808544099959359355972685632312039335660059784975697459402530085490387198855923011564086258821508605357862795969383279970137913708280193903119451188137375885450553954949336026485488812379372542243400965669321999621183109279201641653268585362586654245870901562302886173445438639438281586301571576180250805673793352260850240167354242382744993181987471904751182024860736907483107264547948871805324944162239762770187817228317496729060311378184976514139560057596222679605611853814448412918224175574502273682880747792049877035083616428417908734165019987849491524761796866224848171015713489138995901403149762382281933368164297138747926791042662628075328121395612736883010620008742776860336967731025747865480094502225923837439872433849273764394389928267679445807421604735832000693406498785935411785168236386718849300983953275740272752608588693737093903604163116293689988601862048759804739500902070502483242796598893684433449006500377613788826206522756402130833907902980091275367416715450300577167110313222224381234254881520603596567671919180660245547778679224773172173345511827635966672727342661612993432233329950863770263589924701763731069351225295614952815219822374221152725457310081040791479490487987033731365389111989417169783250432409905697781632895608448395161882349768110107631465277886024000988568010667083993979773137328494174342062723882709727347364231754853133072668885893991137043083303026555427710709296251481426903004759781188111183922103132178272660336181862548119612522480959124950928097070433849823641445547528063887053385405553902469003402965811424230779918060305779913420703035478462539304342064672967054371437462595798475336687539009602469271967054371323253993951728857476297435430317877057535714849886616434721855114381937426397812647975765073661543661453186237072904600933781918083230505956637964751850425730741559969059691667502461361389200246802321102733958646422688803401371934917031938791792419285399734317323341476160188967634885407647954440283209368397267703704984560959703644223175823151111931783622474815250519100266072003135015374388976388844437707659915478180067273149675339832734843879532667710697023228585926849438077522888311827515319166062370860087844853390901546467176698065610838270057537132686058192741203786533097904512342343132354988015546836272730906842389908748719949130432370696307534411606689701670473357990742728875194394248220436497792055035014772845032546387188631643926302639665296030476567065945580527293524905699567624984011099951284921932578190526918140101904469579366488735110241210955267513769902844493356375784871291973377025703356139092133621517555271248215168422367664850772581747091749226380253854984962498669979487020558715072280735700286669654885807284614826852315244369414034643488756198778940262425293084060916142599496343752679215448318891859762177549018308921840343713992398155555023721646885636294332959352742610215420836406317977522003591483735364300038148401088757037674345073190103669760839186329794233668866971180050316746671716133091146082319810891879841128163204359768358562262517756293546423598386899873028665405581997507828013052938645150298101018543031641419135275956204569184589715737437761380196692536561428447916944157570102725371676724194586605172683618651126155172602347230296793700793758868604024033591916804359016791062733519513335575768430978395949133496133088375357735042104639476488434938786447550020375432895763139684400198633655394433434426108024851916718914208521260197881434235488135092577368871528739339434229816354891815861579896744869356449514671278230955475623599111022644370388698332022368786042870289770574940277747761216581542636020137889798213637270053636316328818339493293293464808178852475212302960738835585665141158536677973105161177990631002888063407683261973498777202764933101791100485003320216466149808907182670874550647486952591385068229278805888289133877127177453431254879463280690703577173923700155112983882886171228865298609970421093593335290997558205551963179080745945517167811734712164669445558579274638030619693318090622458026439600415700726821222279991912227363425529667780221847020051309653517738728106725970996972885496300707151141005461125971233189920131272109672339024201809204814660957741830853783285321571067299166096721012372462085178305288213250223856762252516989613392604501547749682546623730370754163867937877341986239423147394700783641110403093023054943128664493093015329561113405003948017742341062845115087414922488289813307351591057827161423117290789350614854345639110465147097117379691567628941483539340807564080130694621316840534257625578799176757645993624350532688177601484763107710442933131252184817075204719484350201265019540247150147642364193143171702297501599430004861401624158064215423665458969142295146484241032689784683348286432116412466585949661678234529185897867831374455535455872103632065141737970384357256713447509767008782480483366753815831203729580577066744922217954015885187962981189897123773109714999501756920512003965124219609647538608869373884215012232722631762365886494824033028656358979931773506146381529315177699192471467075975662863470692152124298610897528613921613523754054876602466677043719530317297352987626313469271128632187158853029927817604123630282301916664041479119520716572704876407664372928846572667377344883109037950180101010772545744412014170941728256995826095940635677208792974901050414580177746869887629925907969227925850300893607075472800088106211978706699467903083432491011600515781690249492616613558878545358579568533217734030067543325695463908257373720588504973120590762175902891100537739652855867897879443286259112511630317938965307865268578566289428686670236817054360014454827135315796859290182351247372042296333973231432908193750858359440336104257241820845381488189877769049850742875815370084418670404545199731984441584641764600811136086958396392186371908007649804599518558616389216208734596627445361400269480417296363483101389528356977475817634301931462755457658023976010018481274501320560308338566178978570849448984120780729754849333027174746385775119090538705832376388525245819611424459830177840297218457926691866649580315451306042438997504116180756653344815663498360302636752177865938738174247933806834226105053729529127369072693674246180583587107726060066137226699383151223824161965063100948632683903915222428193925421181967020232650440292570262244801070241688442228931603612445628204800040958940804154832813363587751777583519777013107310965594770181018869222162346192872056325044440994240557987974315321066090464755512684127442406566357297159541991990251622458260691530518929886418693111744721916462018910038826567914167914235649245746818145167329982447368378555682792557875006959863811454668715686848562854438331419045574087952089364867649133306299109623938624165092360429828125350000042346788007755472357472031675188760899370073666139535385803197614867497905987807819080294569761901317343082788122673681438515595103172153480400828262204775118103800280688670105327377897561111141990760745941540917753648097881425494614758790603301877686350470147214023758222155598049158734581544185212398860096309331303365301620396555131265306229792933865923469256629529958037670840234641655315681011887895203486181168162387483579726652983925909884928653486435786843804246410243098733464292121532957717224942408161529369674207886586319789097151233422583383364159535398877753412805945786621092452313421062388335923093248253605518771436564820098190054861838473822249510265295842547479107212126972980710524144973536105705156702945938718519576035972061927182123367858101528422524225144212017560595027498406691046875967073122843875176386390976270239089632987598516054767619151888561014573351164476466578213872752160162048433428490716978009861300509170466653366713045728475809456818414051041281156392485375244028314815097178015166157593813572503822598872559370927705709883689734396992753482092930965033660198181433017406950526467424103178060283233474921433691489032016848843538943649654892041624259998483434125112460274663162956525031382821399245318452905844495943797459045196997041324249569824702982556784082907762211425677698428952740290537787309702059192620261432892520357940728912481214223393017792603353377456263731890903087501208194777167566208241996113231454528853127482806044438292271227328440606011122194598925210180495959047064580633534137618872080690165227324609144414178664098292185634896105106052739583323673891311548893832357673105802093230106394844926381598822003099687154855763646864604533796218388237769922297632069653033343689995683777169609993958662249301714213088532351295952936057872100651515659126402536338350232291990112402312371541052889486535903619944517250040918924271441296469883751450273282789584863885590862931104759966793823703737506189267354574394354458862708057860587775153484702837766140633055572360671026100228147311779452037907244904023602622772467827887494534588035891714694804184790238189901761298756127214195115232514604302173347491591315174488445401163366889712405268651713112051091614389623581736807477580190090895307965230637663567953217377078107132720681114863475640959407186574136393678895094183230212919478447198249483392729311233664484912403448906634026676137964573966835907319526213297235303855386371596887622295752689087733486437282298696589626515785589040658311251994964500592447153758618983312259886979887996127721762202943421886450669118388078713137779366296780994465593797606336331332394038801539841996447888139773335182291059431171787827511653639140606207439453191731882665303797747954596302915816097180211150723282822696702038613447962051194341257705198488240076440982507837487305598363156351952902520631522686395877713274716591585424853856168866943030932836642630325329176684840929486447575215505815849719007446598277276079001099023493232194574406988890680125740763178097248975828642452592008886945893809440839605621600879578890233352986815428759032757538087374116101401649551857319722392480582662679715011642842198036192589372232906831794065343692009325532401910531141426650857092285580982137052781243429005345885319442236647597180617386906038505309187877378350596920148849829378411168105150975661653326906912367845420062702272727606747911197277401118153689079401451305952685035984561533574742230618242796423428856589835733774313591219152069559111812496013314340870167133011229403721205629492453667850021146560500922659881097500182449658946215130091073505847726349382754481599596970347961108602196247225200635761025420050266843094183458519720792549468695469752319352221690297702363137669373281575496261585737038438480152097910703572516554967920823224136452070192849963905601360487406807439622460806902367261282967854666720819001180807395273418355539988108393861210067361613997238906874551543624735396726758660823950459001961496234972528884585298620700564668532237451705039977970099001674577842345671083602086966219457872495741492964433484526290506628336694654396363536643357818395509290950751071782744541575832630648393601235952442318755912403818742595842372373318002104499795663960255198804788526223701977063442171675647887194602767945886303942456114963753988416633905140296567942055025356528664650251346152384844397460520148731322995052006263820745416053810668072702128245403640532712715195537361864210871924707374945938179773813810976465553269189138993656404841449758455251078127913483273104347816145725210486720708615921150121375784009704047373776256203841475851264028687804836232383690090700418565229582318238229019468847199073507569371246281339787222815917241148337099478717214160593117862755921691403772027522467781429766630951369638483153258616791417269292782559251253136095533009509066853047229612566949717401179432872746234838986479422425216063846315254891995015370976162021734772119294629417489550774009328212060722903536310613615645414758129631158885478112819882044240528614850707367739761980551707445467966666988206368673136071946359562101094954057410165921742479739681889824447940150719542958851449671218723187962714496137250540882353257679751265963741993295957057907826399743709321035670328136858827339648527237748586326179332940106324283223342319040667029513380077513622180364825252804877048874507591906287486392851135988041553352638810133806570158978659153279639000184483884203347698880797604921518149907608195999231776418536630193409285843460820553334326957377604923560960457063167788580585403255869972378462814544323920177543893434913111321444415946620218435346025607728260805932181619055856784534843862592716333888227003443839779409115717967033511477846084236452329113135688821187776829312595571048001661845222102447576486434280378495277877770060237899535991733356737758816303568320028426597745705499609281960680479744668782228792561940683940463272630348188838848054084623929720868722956017852950221009784272745520681054415090003595061364971829063521694245051848261509568002082159569635700770248687253861606476043552913922898175750826846816140389819517970909246165968494826331122802544214543559883151977705001027512748727260579853572272010165405848541878206525522975523519785072645956292610094842603804460414631351934491561673900846097775204987829695726483794155179175312563109864255622259424135180507084550434280056268984750210555684000480256282103858602165456515249904091604997342263771824186210056440106201386755263452043148947102503054760493784474008965670055378347755425598089050383278072832683502751549115177299917563438144220518909372268254269744087929797795024226663338053648943600236844725610834263464473288661832552920919338148833088243659291185849834301912054254024979144748348307248412027005200491961088879882575710507679471081980210841523044360486950723950737597724004236305110665802330002383623492478053667700538659668352911391609875750014516820425805013407922295442754058343025724653422399714180645882408964101520357626653849883293442784785669116807045027448031279173280725388639232726476677613028956415051476713912691538386964101894538081389878939589220519614201855608605416114299141974650347557940218690530347328014887284747577278690334795478204428496620641880597183320031350046713195943050606686967026259972876607064783941694060754615687286466487052334794846458039510322324006243736416090988307553024045172679239939884770113060828904767053341766112801169338295679455073558053718893128657218265477972468370283057093873352744281688678790774562762571112786469652902136778127964713666961207400825781357431283857398414693384721201856829428967839044527366455749848291057365304897366803941974372230098170512221447692470154519092134772693809167323117172571627729100663405397360689728997904181087911234705390929991762205226648348851619164517705998344737344372156943729775490435334685680707528296057564722576932841838303458849997604334733112554436461051266045321903928327843665309089989814780485516068013033399786923568619109232876233625489510801206197389812698211761324941575978845337867722568515120665770584675332698698893718485335488498394439891313029564067911290298863655268344989189058183001238184032831417411575090143413672592256101333454201287997963327082184555376762776900956437255624434312694949593011724479236804531000484723586277258776384812923866590998837737998258848752949819382927799951293372165879486619843313052453531560056419093609619096291123274326537926195949876030101993684650178084113429007176247027042740518121381007853151117467205799800511395673433281470287604670450933126063169356280076549883089174029704576207020974100267136996370077047897731217774794311787757914088602524093305366269179421317250126469385725866131042142390839503010270882892198800258655349721586655647324904561947362931323186472171664367185521604915846642290523688805382661327648492665327150151508584169607324717800188846159508882358508898037806381668458006286956145828881063347324559635331609239895086439451792371008268583289325284014603087152125868363065074471159265862392028900355278615730025678486770311682076126771303930479264752576186403938433715206617915968860391959361984169962308956396454454630682365609060454211757340688889844235217391930193959719636166922472268472887345574647833740816895801657081885411963384632311346105566120843207525014046425998297383445765928109476010114269166602178399539209860237467037332770259481931834214403176540464059598578743239233855671740671862270926907745821754776697407376364336953076702657687835760296292110061047516850405054261537232713903698289416722328518572421394447300218967852784628406663932787575009234094024262516878043174295363624946515922357397821860905516075002574029751347087560126564155397161051688740708319331660937894023224331965851678698339224122617277153676583803440632352852517054376297896423199750531490243793432618292248257434346805396937598478431007617153923812905974422490136562126890461554353364574569701922767570428634688746574133657610344805237136252170148025433599761150157036145293963837180047667944536264548906033851700158923970363675315115192792940703572754792316065970190452716385349349467482120974801144982033154813055549597623977941232465337886493626291100907943176507771015179542402140976597723537138936196366292955991340331805053481335413040903221618845545539192851890248751725267411067063702051377961653503353812231787539312961929039559082492426873971050426643961040865364459098441252534160628580786193860624161783738238319220305179574442333793071645410311236177053967464416705757855655572125986512254394540750016854761723825273609683736748992589249817930936773493663551897967292765486047825199945627081529806643427336144210131214448862115540350860214136619291238647422819246071181885926178740910487230859240265231422412165451423257366708038091084029393739301100164109743181097029460352492426886901010775339387495687885896341333457840186485549918983172989862736270233928625330661350441906936234073069736781838944817893062060475919020365883799019406016862007170900787645582385239312015344632653746889441274477830976501451721541682879185001579095803180924449197426206380908681214310762734783363689220493699090981744809353632292546249544903906633257544689283252689431152051973620124626472796628224863793519297409056149090567919246926485446364085091209688956808536316031077482921567678814999161409831748703973249990089836143874087252360481484567462744995712949844026929002645581824738244569207475284674566891736771570213176894136323926814444734150039492943646935536524951439893021716989456234381222855877438662689412836671466260474915585772863449678496802300379008320107550375492204353111111580969965048898955959857731739030833623633683893894079469925658145350094577108449604141615713545192584439416871523064603541212074572430874245074350082547238917584185349583403013086053525811166856210729383705594044328312841881615366994392320469637116822129600807561665394915706112122468015684189691048959113198871094057228986155440230127977664032681296215218737904251700654361609639716880929572230333875890978261662790773446983566566338245523352546136712877401047837480505213581498578789855658413554094142364882247790745854086255993137259884875161143084969004720689251169080663194858148414176285128083086522295445656401319319587114762170556860245637475784114338926597323670886456998279814498770377319657481821911976582685754024836814852881698945303240738520273199618588210689588210408327710389233522965985368644304234743895965902696935583193525640400915164691062778248289808399874386498642546603446449402889019246513796696934059765591410138322185376213720718508279746592642197496600621049509753631553722252613525396595401006321762288283161357788605594087666901380981029737222428533104706446647295532429822507940940325252525238452181419304001757394271042838235412662708966514653143105570783255033086458662790154175453385111161505496309531726858977217177566609705560697372878507645421564050495514551770384743016518328357624336735564538961660119790211617014487208206769539635729761088760845910224203014753747598233542176779289705564013828838033645313692251257272323796474858170119347842001439013809198978702984514820508121168657731956012806815304834719597379184780716497852951152036031007293199930406975294909844245195369674060622926063299367430501399670734246345169977065333941708741267730811882001138115132231793607244981059827220031078733040506489287091699152899509050195992324630665799199231062933743608486430272822585545359439859361358787562403631696078080184752130936278632328959017861247924090533786113439380942419854295481591376295319805138424872423639779427205034589554538772272054988237681453253595291233782274717302232336135027885257491332274733300475851882008921895798954529576848535496414592455284300741623556050013548641021948950109876974080716802296135387230334195123198437913811391722736491136329347695312566850758655959835548933389790916724649368106016172533613209253881161853211948181979129868255834939470421448371350959045011674755130519983714579380236600619075514312061276072140893426108566394570795283458731872554053347193312357332571430997424622775204006454016844909205462789448853052228123071581363496592285115852912192112092242827317696495365561989874199835986049096704550226651970218055101869059211861719283398179594136070553537689209519561751984052059836255738089164600323449040836881639015822222985545595595361275712380201505203465222790197293971713974021923479171351048937568151386529117145819639840508834048492685677251544207442886063514103054830803305824696990785247552218098344053950525655883352760814317785805978500706193327724753199963318610502023618929245965221175844519954831263516637972055019215895025824338234096294951417016114488695486281959789262854177123926628454247351640682296549803966256616573695544608001272328123793172618459201770849162735294593332555561428244853419361027578489916170337617697267188833666482735383502194001435809027924749208794673620011053563600011423113931827448417053488569840594120992488259989356390426578230846216758001610236539603145952499083661426657908180187916347631366070614829922565186804021305463170644502233353403807156923335219447483084824626773973681031411832530903204332621959576310692801049651277135333451239354502128863208322343473411469970357459452848362777058596869604039230779402625519015848284758900320080870200663199777953876340059535970496334328023062077349857889090001366648148141552401302625437166685536985142399127869346289035010661848212406931756796682429873235161854198597334988321243165293044688443643917561690425785494762629848347345583019343014941201141167314379227600742105493080493994231091939926273110133040461975145820768199316798233061270905177307704825141057964822656212403977274912613502320312474408180653860783518748764206562089742076622833546222419435674268326242518954428439348031632961359065966970955659254376497627332565331519285283630632873479397237186503119580991081380022106626349740601537310286626099979331077330385688398135781106086544619319572237058111450482315349436546026285917845154413220284159536575809831844463440479613109801658642626326161705704771577234515744794962175842391572399848106550384426295419223491013375003230495517659712573917273892164142524353806768689916475905976150425618602521457753561871442616618246049451342821218652522670605267124592766168460241052515092126615500959072259518593567593075588712418977502247455280095276317357530259946925669278682378926645392010973632436746755197086717122658153578854814709940435307170449860949671289801588525324635332652934584028321252266876277372966733433951291770499362870952310485296038922159929099577067348217051323813089645557658785031421131583593862129484947242598367827123423788719754217455059863536598981084899015375732014150646841163060351590843194600878011328066297376461347907789016728360243200845148633445765353919776863212178357828831942788832888337107101245080686455134469370733353296328967771160248416561711576341030853858760601800414155247400493124923747631317091509108713760713199252245258890602742793350647038007720093095540924491051948382702085647652596367193479233604365839722227804416386922579302746314007330493701803768296516055458331447974537776997381681279803129029203532292824572967607135785295790075832670441595312765007439000486632029452808768484437638895093679355531571440693705167496140459984685860821071886558131467304322675226714429888524656907868692862279067231055883288393009311088447326215032706956021904266390205957387015074777504445529293307156356056812348209260887421106576713322507315324812638268531748536806228005444377736764127148194309584762386180766392714282961344109811472347552307170980085966005578457671512572392621613956812466962488320345973445281998002920650288185180992108801535156527857223711745013110939196687219224561413485523363420541323449869719209844235816146011631289185861521187462635514808347658208304712313606455313410254326223584828826395927983735243964617020058838085482084760364546547126618011289739277235695224602311882976603889022834625509472458378021310250614309127973654348303424850420943554028072404392287128465354967740268084517579372373362148420286890292933684303148731045762757075194138911582338467556941094649149665690204486851478516030510544611631798643658069379744555044624208056096333515901625251708874934529757623837494999221591178416597684199213410300169336065627697750230904058822876840398365904683713673013418974978881176282671883699269134964884973670831360528571612662328092029777823688853547010405627914691522843665015079542060821160589892620380790984464278427805741882205861826634321838890161631757321543248866348319445030325189888671577561508885160385556147411633316760904690299188675372910175254539097732623559020970470197032391005161919023422094107241447135062281631378569271109805735257337105536801900173950966507088692644265898359056865225082832771157776276614853898232039935151697067112122710017390265054998501444321063263039516373227897792366973221479551813674717649514776254453889834373777943895137804363801161704555347737189590144313201049103983798221582261364090856357261398965022778370405192633076494111326932109866006781884839917300357405315078382594888728542232218363526668849963800856702457536127733339892284382014879031742475556175231531811819860314935592021892599877428564647497754925463308338221688766972372571129129043760035544412661304346475870787391554608710449154636585856279311205429581852297400020176596503200681996248021621252495221848473409657647296352424993556773562100767658029385257527910647834185861178036964917045886456170074887281585540078212378045268376919995053314965835044672704543230388363142771552931583504820497308731345498757427707918782123294195066480516501067652488899454977201248969264236501376718449124608654016269323055201611309371735265975178207279273135782310535990072583509637250974000893649524555175516740568043371788890013956915883545210913981163446692157556648744372527976384192287169396965319959666552855011826702774687924166672796620831931519620912912221666973221162763417501671458689780761139387678332630531586553411418092419028707986360168414857306897562040227161195488401988156146817976882961694050780724094335705968881708747895397140181319837134858706871779679077351355143507137428536784556727450882640910471641919935209587382570481321594520726213918620487919574855547501128824936859979592633742846201288939466661618161536353577037640790809354389081594635465395373671419394004011627883584027747787814662725750112031414399039136111260530475362665971262845767130696927992853282201295271946576980103481564322339271865856313786658296598641309748335560599214218156126836548195175182165433792534643166969031498967906366692316893056987399998704508276317056191657422212198785427348986293714586888751843274247285913936826496936546881141035215531193893467993748795133420527334975507979655597816509670340027061971450357287428701416770330236361643962471408045650526639315031888009420160667109964638236426541911440007127367209615242266600941470469477719870758568736098653503882195926764189935090465008680376214157024501181179903354223475186649289303374130972941402598348956815947010413949029145611885438749990507405120957669321105595967818490430845062894408647703504471230327100927128550128476105251297197593910862090205858757960658175909076653967490734454759138064287247474210906762012331834013628927201679352793141832407198026621904463675395973334518449411752987726598751758734149970818278613898386092600789109137416978688553188258963390123110674907678785476301656604145671245366196798418056382428756098611631469967296106112451757232659591949059509885196737028839350824500365471309969405861646675253318919595155624361724813965052883654998666953621124774563070780107456512693404381948179440400151192659741404020698686435659701360943233079632586892617768541982746929004314033827552477113532722326540402294450436091111258007034452111636421320314103085145091632376219951655479549382639462952855452391673969590067723506854988475908391081742044135009358789286976325637642221057840787820112574219568811573944785242836482480954689174005391598150673423577092065764050978787989854041007815125133874759358520082031711268706213160179805501786741966511313400305348633027292488207577086623257164822249869099729100871262903329675264079158303408607088607234610267677430606472114658151247407760742777695748127869638814517823576529546676113930295739301787110365122358000510683067579013511986944726962574897710030622489252984024504250033291765077708512291740313382113933259446863102783183981661895626150961867868549840430390593339190616966662917101001026849086225425210834202262720560209006800471660662992743524993653604159248439826654556384717745537159821788586025869734078354451738029009583239475730818688368206957673477618983370138930842683138609028285773305323741041870951071645283786764212054565004696619417183086719042046014453159948742700890739322859984594510939888115809494061023012955048639332186900152107024999856664835140530938297435824161332592235690044368016908593863546243726700419042920447371811070430915727720673648745507032883396717466505956222413662617236940858664944952014535460161512014977243807646237407878191112875206067123585276968602120821965262777991309903173135828913437450939105730879382881273744085373993619226030368032912023348828275784131044060479813213633323862779294877557057925578620028615533475303252683206482698864328321081404424510930125720070977284200263590326963969315619422380882487621805155757338316596363623596858498050319232803518979804884892590584439697728930053609785435803020436957066454348913864655851723206636600502440546408950178909130263824065627427771231361953001013245327989288176832093323275094207728608489460389840070599530859611938619837232166747041518605601702846336260142834935460197861376985416686529425019640537440809886673836632083812807234063894438671472536307752698458777754133221651500629524392199709988348139485217271708767195648267483090752527858008348465310245702398291543800463990955235109375218584861024731528808145183960258862879695531325737586822390067324905853525559262585783068223111855269023121673498094614802856337069979160970138903957851704337422247739485742101374136163751943240179790531984328109018479906304854938567572939290755471879284528299569524951392319850427848294723555331404017952503237140520278733263523086744408532592321640539595463728864400096873550420042867147623944472773125743964396784319963292128616630564460264776266035878340884216758056108732800214803929353803566726125800653647968738150714433067995531168498749255048248435536727886067466429940164249126582981053032587634086273635649624783883678471329504047212148115594234443501712425746818522724385598859319498471126376893985230955084430055795950802702532955165770805784713769463760925930418250749558135089353349931761732569932764691093898960647392154893698966605208393578941752613093788872824755939351763209068479546428153456212098647140257515391023816446814476857129394860196681984251274322286187149460301878288840790327758969727067423058653103613762313196113703529725559346987189622699854212643645160426832859088666953647410643843945782729722058936258050570529401487953567566732473401907173648040188962712214432857741049613081303047850076868561617773616403499397668373253746723754633627381172700566439637587836408724927930827773616249553249900121141556808096184849521347866754935440586032351742593214295485388928427911291010531786715282968133684311338620550866151822413459207437960642231260395342850954827674060739031882396213884794255655587333975677965870182529476442845588345638026350837159289239028738375469775445318512251249060083383355302933647857411813881945559760704657541365792290615794790603513161485532441688006403319451785828646494699090486200196661603106952492242059216828444307760840290602227953734671608403387736401520805793020016925354306575929421446672966142387565463001995604001220839960432846502913178956037787121227523820180199150651886683606181763097013292116553886818307897290947329980767804861873351800133174896594808654140509690797359724291788036227062109081013644882703101691611899587569785876056165436025064786483222690088479649334220968544840522978131426006020132387257530186485433396857941179176264953033897217740333202467300398882372407834551616761269082487277940682677398352278251623445271245134591654166518665647359635747354527005253242237087311675113088777204724485989048802152151569686178955521496860596185849320768985655896118936181660782537469270190911873540394403142150019828794005797307043597434219310312901604089832385492988766901493718012690468631579422458240223856800004096934283129928270848315628845756096115363645352278548357193063195113907942600591697631204437424287958718227155087587966611867076400895781569936344286695876535102831298210385825580565354131633813553337496281054813669691763992407339770347051038747239112862741474073476793103859851491867722630656916565883198056243771984679755960355856285273625397781529865043365661490007487119539722085438556387880695688930669961641426562346101960184083881597625463708235794505222122284674575850826552809528083160377743865394603183040086558539991719326959353519884334756568182933297382938312160222183695053287896094483946004116334102946608158816998103618523077721091793695374484425818111340199469021215375910392554913413818891994748407847289664578868314516323814240797324483725688283211294670256454570862250523219845964585154364630950737378712953422557058561474069848914852806618319616250140395346373622821839907573264181283840032503209417632965855542583370260718529360448663515869009127310241935591800762800320610930145832085925131613761223554876503390680092542961972746356385416557643082717636063935201372731256496689608388090170314133945882744066336504569311976412534267158624451002440146387354452106351072136412930821494283050423941039215982163508895846548082953341803559152259007899617308287373003265906174103484152554943017152082220930642720966427251893551072887044600269368941406093882806272538646991160493118438875495552198470020351719650245691134246450185894983084311509256314595791898565936289836142423885250027129822023195762004917517680906366314007045061112187513869262180819217529555734264999055072858892320488138919554298951103384498886134945586284103522598514598253522161730734375184351553509191404091749884054861221127936827939895575596727755307321983896277833403355200956329836770986045063076148563181971828751230574433548765774253871203502926036792318317607322447204971621356476429891540267585199311411099057507909647098169358977443759205637093808059966273693326764318767071115577802919820350636587183040337762540884024173128830096629337653160958270940422440769230515508144903628816326965722310672827827261561624648359487686488928985010832965606457740526353424580642021890378005861144554486821994018655287925309743812736796045717875047027229594821029267923898510302291892385566603508764563199289403998345134430390130477358882911805964142426457611605458886511431345501722112932728219790901332459245027244719721715182150231147694938580613940492803618909022856614569709865768912639706181710634874241662543985391375014046079536309827962522346323421040860681879891013366551409232253397225401344060390821592495942112137258442885936359570932366729703128739187593070578587769073312948347210935344713301008114610287081365054822815032858414229711848770944964409732933779814662739873688300996619626478411624996076600541537153939079445515145371434780886217245368819313235523906818092054119005265895062546757974101320453796408027440061403037697797054122937366565588306584808499208868098933135748765655305305214813562521314213307692399629749972757007658441609772967836369858127977806192734747630867140044589513395450732218259337444009703664792118992740796362340385748105915939798207514941893339659977762987286176572670008455975162580077598409590837365676434187573337683023562711400579939102572735289682046779217217335944925346789429283884903133414636213295720404353212971969903657976984356268685986728465064915510672172875403782399195205118207506319130302571294614953460292980812583149309612264666945193417422138078177391272555520627336994732787161450047327103969348547786922337855851965491355087940976613286121439303675892243442528819233784542125331793007635677994221521457744661680733838679993837515187861999769911687479846668530726439776017761052625673696459234929482588217981914911029818568328208122096301076440755550645330231330409075542616742877361078176265595256464601657729334989108561837934537877256865531555131224616826915223067619922862424638146415065752343337056819879028598678768803303011859144146505190739814733951357891041926987170209797326130787329397281831951249017135746960468347687600902644167969562421079406121449125613338314641221005682983370139152785441662340824904070392532622242023867758802982746713728156697869634630199109054682408129151888552882385391017353110287750474979535271837661808913182201935338314861342640014352072453090632866839950778826257924054764608325230643290468578971265529765962745089915645548836067397832719954374453808130058651786484860882258721785922456226655651742482353618590441544479139076047016000748294876497356354047350040380314264242550364234514600954157959958494781662002862126317226504754572971297033671241875651601331271353440533609831787015781943459366011283918681607652716113710179023516362875344225091468859063872297707020450695475862098140585652374904746105280141277798864148850785079514186609088601334837354472740661677498515817821390631587406488832415225755475258890437696529104661522168986632489009147775267290423999116571622939393766158007374448254651198365929622390977964820755902135044458787827281629299629823070181245932659248747690791186824432424946378290468335450108648688124432463597455972587445787484617494938537807851149230445014263401209269022970999002684208250483684745541173357561407473164209078988173626881938099353450300336569488841390533656432402890103556548605717287604607438868470153841315711384416684786008329203034478806139657294473918074737840384022693678904314252379586296886199868821496447817169817868625573910576240728731450776309209035699924288310962448138071515987330255539410615540136962708563655186862412080896754394734743020267884460957615021619821966229415629069208256740198431552495123959724316935596575063955966347544981717258924278743636306008105959597709551170682276913180976478198335833132365535739980913226426485196534432513905629503157207244304641826311127538202070592802672220816960406791460768824596741833575231887284626642546125196708165256667912506638677986665148982546584064189916747616651153515497131419432610619385392328123038593186218269920179777144123684166406138708499663782264722382841351774209273944242137964474288156301304457025795877704921061241752372116400472951468150309629342562001459797804854384596403847490018196013728661661067425840257191806393508309271054945774057801349343607987024096450362611292034896893717933050856293190547043644200343500965953953381952723986454264961042875209542086887593777311764080029361197913612610153704949999389452233980137994147190484393455184825815439464158401169144389597972047641363167083799040033173785685309056884142804889451489454901390104023888008533024595154273934176018629677701741365356119977255744007670777285479062626312235904229206971389201243038203908919456522331478105031964982336583892784149391039106132834273427208139038554262908578524984435249466327288163193435151091452247113707818640386130494286852727611227914579730497790621423297238345721377586481177581755082692992339732801286739798857972066435168129984422075474843041281230799063682466123989228646370262596117256145445151210737832813570809461885904770804324795094090835525226770044566044116454553757053638143037300490660582202652619618848438764442132246140203781376114042184246362725437310350677860432343623416065292959572662587628850744961264866613115199947115547790166626864655394875327839194467030356970878342536793441095727069102988298086073434923897542015187932039949077466250115133709750779253097288614851752146242213085227861962418049976091309657277337058530941776157970116545634439908320988453325211825643437457499575126968056756685397332406175535340742212028136659691700969287641525480242263508261547596688641664221350274153974385967024230616020567694946215097725860108441125845786592941262439788594603647432058588111723570125421694440529787795262277934641620802900262619966059940818015844983369715195111403383608596582215126121264550102401555629313527070373622704123720117850184349781570576536186779528642925425515442314786125681695271914304912543111341020256977961525997246553322887579738426771345254039640441390337062532324355032615786023460167709628048762095100011189832433396550987160780670889238020160521946234324146370419281009228165673497526747191937462063531386824381942259948854468796916664224449838329321172627631211569178123064978612381314157040325961407968282914543122388953249133741100183403406707385217612487390241013238666778305176961150289693238285393258567971678853831416488209655793569559792121668147188407997748254330416859162503064567952892747152820555421884907102435613265583779580149364155002040498343012258254490734016244559048924497083406409162131747239670928333108600366375103124432803011051468994704000728283808257055719198376698635583742193402902483447685874992488908664510530815439633499545130397729962285983098771688718913503691644771725321307736370900892862534175113626634835750932203177038617890569635255038147832228041352360614166796300258217607703186104254507646605415891197349636741052713745953618169970206423284810673399157745919393907178521179835093016067733825961012086093105448036684054243039135332538119080195179161224480065482588620858590191065996352952120655916142933016686423769573585740677743608333377012627737075701488597845796948935180468193624254479403364848095816584528800229686988654434681523856798353146026884552788019761670617066105699027601386714972436111374504241070369833737855437210174972871161229980071367494618980228468274086582217338833345807975357332557403111859426480090551127614370137734991259112187244154866709449578369831627324573470693259128339805186557944196441355557052498521637931686228665759539953196193255926155077641898921909114608732413403058376357514793342300807506244479572592717384302626419020664706707547426688725619032501832160167136246462342675751286189659681347526209234340670290137456165483238625258332875009904256726130859998119428926370592987470212232761615609089593085690179272297046154798680807219325559753684177647594072515240217712286681296084798437704605392003126556858929875379611619003710927867936390173464586051218484516244254719563513462425576412669914911076532512169373991068793880472820445008271465609676514129610406230063478207028528996235543153704480738885194096443689873018614712071956186463285001452984038284518872801402473137554399359981827946330132864822525795167821817447184420385324113714349426784633392498411516728429326071721121293778428125178665911660312236526363481042144184074678241841733057188528060536126709059284946477818732144420736177485552259605682256162015871800837557535100253316367013874159908998823680715628632395360882648203631111790853270738040687143524751670553762460825935680846241122174749749075368301148679231130225674827659625402205916282095430440157859938597631419056150175259898023130814981305087907987544298674427676290944476803678649598208090706910323180086891683928951397481658093582884215035434679911683695706094799509267065190280704922485907555300424230130723150287539901470889466133925705087319440416382157169638334598086201991676495249520721041340456636318780739467329082029457247788182945823771784557543715653104302003163767907087745992441500277388930603789888000721132301509457558331852606001836134641850484726024959402925305107856124412103067168891375692136255161279916620748652777274344750291969171006298526858287150098784493635234112469711827390140528209835154142238813653288265227366749936524237599864686484197453672205128113781599498422867582893474305775320906810041282060275592970112772624177129622158745768145800339998057248970784805890879221056046683009723754333236656167580005070419561920336663412730089757944663666759141904395560471282952255141549235855377548667707968003834487282089833994240261362610651960964194115489875905037098632921411689804354822312152685703847794175607537439417975244283889715792416190329839173492041048951771422246322460695867432584432628864243422670604618789562872395249590808160384563526158579072807273269626177041108985536335271453237475105720780893296005244250787312805516513666089184390579146226962063820669478381301840130328631304108358426436546798868641593795986180189526883917013043675827853331461881500047297911539300231882986612648847229317431871577982314783507873992730693679935185589952860615509803461243095797911776288822850741446760377634806527499886045170006011745202927024400709757741771549431922879528910786880465134973232168291770511339603144991456848899071473527202813033174351709056686034412553797932445481065772023006226267507136927149955749432458582770777050272786831629206798104926618438401766237387085638690348159489070910183237257230200900716681703071955149488414751047677343556464788296127753779610179153825685630425972740349787783368985364660416666989636945761128905286336694534993454202170693511521407480007599409066000355747782789007109959038060351043668152168803095455008759260145984132591361428084370027800611617916428980603983639518436100349163319950452876546161743332214808420097510776351642555751783116328856863581950385982368448734958806801608380812628831472691396477622258993086122678445426392939856610456237756990516270582782934585342804342952770644011170619174038640627723864281688537912479257624073455326109052853400043804376502185448639642006544069727680342639316348932950085489765256658992585911249485139497886852285294589186080680608941746376590438369004068722482264553306713064274670403718901957254451151081998270632596015905768019943025243083151254307813598906017076471434751297881254022978532232596934998880116854101230138405458983945383405962314676656109545255506690897944143237579949334029628386144352203514938894738454466622910191335081918464853212810136880195872893625289028379417712127995615544638405846320635934100384213210826510541053251192242370776992769565018094554837715096867516451379408758464033838490967079932201512782311193119130857572144876848726150282395223710455523330140115770437002767207177769758507255805474367667173800751073192501286110884783513708763003639533080073569137595497068397460528119730176240145670221529331417830399685680176271042912253523114691360364983740108250255430705900584231515907943258081945415934562913156372045417749302967631244611450510803463547208277639298391520344044117884662678817206151134622665781607553193241770249447960471163869519903228251592411329613320224901567058062346575303243055753716284700900215863214418453715085469112674821877703629267725270267202451065383035948025884673263152494274207666439510218433564495057034548669797744587987251674536550270571026199417664823989137526977872882303310494177347115832819734942740081348932857305261034859484913454115119423731722548775111170454850137024421471435866392501149211477549746476456823373423960905328742625805842492849727503542803730973081796684483948847519471718056010159735562959909197506502046155350409452886228337194870528275046061816243380466266746283746315446297209791742055058429397642737569343677997630391419755869362658912619308776691973043587645029507210209754431836773698584645668181796169842131496025777022407890770091842443619584667899382820110297015151167777245696078614075146801442107201762326258741463160651864090458933761554955530895553920104398207178647364431711556952099967679834806996500476168852084519369167592072185633554429602337546662449878141194522087011953451359198522974506331536672729779953972674012996680599982529323215289428465475337060344427440565924937310038746339084552538512341989146450775681446168172617541560994178275155695548337488366242669448130733124184436664613675503378665274526438380319557038010764688035607697560992189092703133013491816790799974131199884409163086309628090465767767703480721799941734342973403954727999237905967002680747262099735526419709181737210425234228894127181345446625836969583759459666953850694649580743794829945219667870249568025087233370177095167889478977375341250001024779765012658003203887082222371905765465075971362612439480185482356019772667816504729755275369854305278752293770816894013226087379631371895252774758319578977144464722574404059543576685596731210083186191868786554847583421256212321578529394047911440473516799811248132671811625063221634927462312146805134903697461073073559793350793692498606319681209471742909189786452787299192440634170592720215946186017160547420334312253295367749243115569219912877723896398231966522912830226037148548503359839782220451664535072277588321312402035912657254910535433694012208077483395997503035118984855309451296352690591913397227691045872479252997473651489924793734511567890351811859857978251721409154232958694480139081242241393066780148476200898781443660158725932889648917994185350288980357106547080917259046705753060115839321354541486220074130058167119648098960590607647893598697376213907512078997037172605024368915090437682686381197231355672498837454243469788055974570458124364157934405103991247638384558005821928840646526088998286307537622153194762299584731062045702783624078135372385158206933677778836114496008195872665092556122330681056498022896093451836500754223578689583837161173592445265367691319818734642160592141713231024051347342454341006632454512757192906392546822057503284849076427641919689054559189199511328483028302670604303910235749781987340911655829177989062395084648573128953455502401477761059982711224605874505131376312981211736825537466262735000306101249961677301645321426658798567243029402956487131556170744742025825762676022566079165710850134640323907465678119616686893467252441975485089462040873631175299829534641014677051594077254135568426337632654598836775436055580487198955677883546163045630735717607149721667035584029129045310263460595200131307190811398542342715880688302193444134724624141317030314006863642481049975814128509452158386860001597712308990940905000399702908912583487128821384540241156751204450777227874458703186828215785994553546683863296146797557609808245212940652017602972673933666663827329849248147676838118471005468256223750686013381960267671099661778955856720863301369689081407849804513256634215575862099092764446404606026752006165451676944979054624823804917694987754595876340437465955040462457183367402699412672256464152364117621262724220647578997555335815175533619399489786430794308257899517099169723544526502569865414811094809542300865700182847368877841169320409447471342005404141556757632753567744370378673701291545733498548410733895154519363929013064529443610482156768511719179821476484014348112273928319182272650129628312908709025644477643367787082103158696342009462010231493911090593725681189648365548371281792580246042470675676167776443075963432969961690394479574466858724012961890594395467412494205261158790800941879689015973740453405904427694833436724923578807906950010293086143163987971626097190058074146001552457749760870641189316415078653809887373549773399843047043534776490737955261997768661866100173638820329808976797025702577549700019675156670165480598247578436417928326051280978401938725016520429826727548395475218317800122277910817139403714817769215466710442996479607245083013014626581009918704375216563250464595705328317456261370785709100835886256087340710263607248229585303230300548297551770317403088742505716636011270076139122823499333398951944993409308148696268404631066668590940882435692940279608614389815126652885618185798256035076369505406038597682118467606799093085638082595618747463286970802288037532682238063899501277825772898164815918452164562238107358508202660351617445473436137762449685965813734132068437684615423545591071155659083334375294268822889102249427253986531556259878249476089271897826160564948770075241243771758420619525700517144816349785761505300696296553593866647568314847941970154138933403474137459144506066269588006224780445976362755991010222589442228831123149899652367821992931359294064594315379825301544953535776683467910445305096487309048650191681266122249396544737017901505552953778568210606351368426491981472172327912491180932085493381713996343487737568469431154028770367246555897980628982802572698147633123257548249244784776293624913533881102590160094683092426411312482866671230973629101657449684556620122147411507061407300299686296135694098850357583759648997138906414110523964872306547467679097976033186493639899369616352185275810451249849414789991250679578522348855426870153234161462488447171499285251028993648373714928628396854852497518264537289860672341635981846254621526721112842115174248641268991573699681944011341258354220942076323232797938651632459763752309843024263073754410035599315203655676867086852924791431178193928722677492558974764435503707541201184803914363015272480809905364393215296084000654016583671658005375863411270956976103614770092916827166578523755188585810398512225148060373015877053617456946175076519221706189992454461168354053686315716415293839338607354848293534614696583103904393785119660605585566429192228252804287615768481549231828722503522099181686645283641870038553248146292953503058444470177791422094388862864780090253421328387214333568052058279632740447384367723701070243595891015647894615530883648881389192264385601236345659251185753671444330533146687119041430943053039349787034992287761854782823958272504100258024573334971587421266876042012868639014677438189685317957075804931219822793069614890719506049676485487709600549494984940712880243964169484120662737862659985331178345745479299544326522658923171558835719110925854380978499922241885594789698722546993636317224310820850535110738275463836808674860822641046090699165541539710937905806575675077646215618783756994296116621726314731964086351631695880364836637572472645378090055605921200124549445322345849637434310433771280233534887320695674416148018588663068751433308740871481933888719892545093517452171897626036911483951791472318403972158386986545865892632871982619600317613407441932940392273826511369680001674298202377279861430811977763892897938872891650148324566939987100885159359317323808973779392380604443986805227511310985108967989616142880354014458356947004105230714369931449343784391966900843411887359103051817476620574677890027476531418257771517939715882200693903875679543154263834545935614078879212413297231246997004121932009764241483560561611636359236990264336376527517403843382887115439839868828988626367742893944862531983469125874917458203490409543058260308832473357444726119724366512097617152132694355858163555971904258220358683772112290722654724892167896359713945679668951426879097164690020978566817156923865871525506042712816539229401771526283198182346234792962482629816787785333669607311843649069728943374778860892097661422177769911650034734353888606036764036466058604143115396271526382173719997747204117899954980847350799536734981232151613771348342650525688928545486813058295496146059030269706126539872437030440227924104967939538811067718492255462920444935121642507480479386678010083372262284407739369828007213972640878613056813571222222130990349190698807815968266896252171161908886674536386321515108687690996390667638895928646501866328145280372177852996643771029398752002775364641989809409587928917808928487290343504347179736948322219199938751710311396242371192855657288012561209212727605615459161810758795498813875342364821711446384679884632385787396984844028832919707499706137420514590387644945522254099406876540208352995421908199334282132219694625311328124426439303891148676582041783742893423662125073962301436223957609051094253089373170713615387383039218171077503615951920621857269304239630390765235763067276045967353532604080271860493378074202664925817548695353817959690801421974206310451421405332460380579098562203566695825124738810773191902220962036317736363438333764667717536511942570174499006409051136510844970235119854524510987486380529417393933734925209902502825585233159982429303240698247342594486722045973437327972223639218027540982071647155658990445882237473377875884865882006087873739240198036570085295144212017703573252308715321593793945506053905832255416943881121276002097794343895752249139741197860859891751757854920246021429571991956908005650349700921330176851091428023582569824497784891860957131077781352888046089655960888525037282530393426269874052980219373133379524195659606461177972612732037855152419861765189102101437465749772425948415181806678487154579130746705522538563103430898114869052218677139189946243881859383627811880642657736044287053646518382815368306834020353223234212716911872717159945299321244104512251714227734060667435590067718206142128061432519961183967678848322567535457683164307483906003036080007897484349759603660432067297320866515297351990132359588281440398363454724495447466407310885823342545305646454491556873342408833283448655097172148917132251205225940988641622561730340993320187816544943112194336304362822868878399172716072889661657760115979799786349796060589592261789425223638294427563545663750098237814489770419206055062411429439959350202509316671233221737120477709326881339350921118618114683577642031087938108621128687531643598660906314013018922256240693240354792381243142905499872160200703154423174781269622315528086728465224757206059194904575805716214505368516160758164295627583695546905934556379652119366354151231992934299867060404686488383350932915290100922826073262398611718758782766547770267858597504505345114857658019465046981820818944876478674922559128921475518447661614994940987444387349272352485885404218536090218068153432030009126094384407061424759688843563217168946086370610265697426955158835929799190134612344488978057752182262728413295361362343242784348214610885741225801952615809235339314582081279647781855353138709581050318823675732232483178622754710405834681210267257060434920263223149487864873937158998317436317899999992319388240955033501587448189803464445937507875349055178272189062883529942905455707290844890921648366499762450419379945577684330449024614441981418738959096671367606585994581410850404201294389605320054137967626537432690402647142160003829930425595306159824949473542989102308586369626202796686313379476311816422314403482542507025013937400503888377898250039992723649929681313735558718540920112628075158115292523257656256286468760716553297074601986353627614925655847065496773115273026472534920688085868237414362329157487798590169815128915695783045375017450909442001922313174601538686199353467178586341420949731906378462945003485910868683603041393976990331967910962800303116353671142857454885452362565408672292166189015951814980440109149750347342540421977785547965992317476307392634201078369348973648026289698490937409249898825153480723067855251205312245500512232963319519429174532276091400559991894832895490026486174413372126085900577904938618871405397167217028685159326681444073679059831407887831185941181141679372467902368765178061864355874130075301627972526680967869506474749463607167951737489802295975778354067246296168372812419716058503326486592282479827698363292689597784408591320853126053327162486563988908633916574171457949011106241017594867865506132881076812724436965034943068762143614692095365405173574088219802107195535247920715110623451323656405215900583568543302796027688611639086923148363920016180267088328632212821364867017254755886728437031882898516670862609641620644340181170444838780289480444895091218933405626485492290512343361337869802373861428033589407022953294785384289442817416523903065811833609162794740313486914962655862809004610004822669524884729773121197381202633198780644097697965648260687841606697313453256197795081404551269627133651980052125877419653568468228889853491971093193194552798929891201181964454282607876363167525365200726260024248105148857184364709110837552584904254173200048387790427978599208137568396587271019663773046968466103419733772470867978728884499154370220212909673382386350548796534186992213744390049155941553784482560031943667348080744884447212092904897622297000846951967732544528849169763602815194790330728801581527472595564439112191641030123819634262888266195000461553051113818203841597440263733136611130026876955950124168587182901735104934514479248761363361853059837320118529924320790187831478560500523240771123476045801200368057446993202799565255828168616712944407711181916728016893543645151494903506009952842036670961253312684484804283750122543518825057198901730267978289448260962791156759205286236944450376834913549700008912299410582333179396074224828472838441666043960274381087583817569333460380867509955308333149136826043599294777142581050068486112600894408052110055517761105163900540086032094845009640903687244393680589040025264769499284894466040639535132550139778114596844798926369418627778107755614102689492029460632909483235884600619824633784793256219386496187287270977777126822642678660460503520805810304806863644608089499636023090737427926042716015107049674306202083335216820979980361801484153135050644964599933770344244642803370801878203644862767655896911944883623987833492280607510495208574457682515247327043615270895589095397041503524264612289294404337183553277495487719990022967011466581366065832466621875593003803499565488280240060596901109411507862889361688335326937468031521741259430478109762776357830222954141635423216155585157310982223280482967540614199252974187106824044328987073744591515500565528764386478278940207404811193094346432364446485631524306767188528388653300405426916904545998705290903500002838209797623614582484806514151987208476490638215860113161191125296695569501573802115817564249913595671308111619997058736184684641438981418585190627933475794228552929100620555773657073909950188434763044236966012291679348557140209975064435384134033165498408133412307725117009182445795975681646561689065587028068535209395183332483995401177149182095678571933802928950142071953703933054806661811859972499991763791690611543824762127358845903649062650488635919595322584547309605105602698003197929607408752125710556841053065925042714306083171661691283296107057867493628333153274604286871673879460114148390671197458478433507105924108932343716591787749646332740893508501918458822883867147350527502113541899543040607722523553432168036816384701296188516571382504899426032395301412381315661574890045873830149842344881945874555137423769130103106824299869167839091230075564265642103364858153557776595204337106413497988990485251387389841051688205766676866063230465259288399363575780701456141943410144760018688128902138212714958584787332320895753482539267820863732299843534405032056971513557954295509915790549715271453414946026946355073891514816692399209164294815643133394853726938344136855080626012005157528179477813368807324558467669817613720742756387589368420873564570731451634211393246523534976679948342330112372238172392745781033591878719954903799766152014991735895201678761437824760742462090234271027169088223785064176569722081378427699574914344452347186063855251254469674612020041996824286937817085170460336973937214187905894591263719064173956184184590974098704236172663802093307510710085554973798944403037189089849570965468794867005891551882291726876544112137821063357772730048188693987623171940570340348327679567326942199219232440804505982310823619114432398576339670280857713880173798727531677034533590763994608108342011955145661117826439778384034140380986389952933035922097783480686721103773324528736804131210009543427308797130664071847251420557009765002802444515946197829970595207111630509877552963652934259004310142029920112316807511220356528471047408634427149022061650146407416938131074765291104915662199880347829630689862426020841707898267838564190506459333013225015259256541386448017270888688731699617856788485014320218676731039709998286566224638306139317364802515454565828200302220403593593664815931554402918858112904138238876439140153563900871535702408716532247167471626577400084228371115245402274625254697364815972832255735659452686429143824642387166413921172530312131925182111472683195222798455313082145230583192918050274685576286775282666245092545035808888963279293814411890269197498105443827389499565346543418289727207220480875431875069538771930738172411877788242610700027910448159190249494997021782983376600055578109793944816528176544171926577362757491184278781200430761631050074979150969046745160821234568626872636411267042969692204935440891553834529528856565156668475252784386877979801655299037135717825543933305628192887404942501361565903067693493355908631490613274922754094904532741906430242058525761210320356728134883122988498096150413895128324109206035631285444648381242898239429167263655974917803772843432370633820616452131332056148070689691264946812815784031124796587563858108827409072663777826403428242245345766890748797813694469180636039729631950455391988449256726219857001160270932147512245300031588735741508331250435624585699673496102885985522028686429218335039901364254835151795003757297374468446679571581019688797828612012483891072173435750636187685359970629080382293559475309433527395111762304801347412286283097099613315422076803480319597392497127675505055951319306151171901882059691090440559544159507916255243438787432237930234619943699310856038452538973100066144125513577874373975615256801285301653157482386207638377433750810725183403880288682182295528329662632436625988503477798032363872407364681402400571745649053379725757675173100141450029133422648356202546557516271897107581287345902520188270347774446760600442609262154823701145620332160160586376898392278692633686635814174603853393273278422960503597742241953582539045561004536864532828868382843208153400675151563990639107476810468440483645365455929403092468380603194599730652809815224885260511877286279389266710623751998826825132299655192112772681297517577003218058588308197945969934013241674294167308164812921913039362867642801029632091946607762047735238361650477599482916421636686626833759632215593026922504627929584465743741849542824222175530059428278288116388301662235018710524911090241013539783720210350533802749094084969452626178675063552218667268307560127082695306853232932494313292476704094835852337933125721014586264480151993507879752301660483072261742709964270141868308028088193021224538836005053571007137889126107067970842236632993110451256177217796296826263614119075189322679588345523170125542438946713489496725100455733210799081260518560508854585223901944610924518950115165850711521788073930690510268689825028062755803785593909346768478890460252859321785328836192178449816183396268898871756548624825923919207722140790934924374303642943116015590765703687452200621247753175043160579789810292433104873874560180827665301757475100609146552584038171086751852430856510379779517201523505962567167374300171028126281514031229950899862077769644867232636560009751333543068350947417537767173344619561281901571601880580763153715252157603642242930053390022921515839931641887251813776895951172558272008220798946594318500023675950990575605543594758691316812748584995090290204540336565089370461993357129864338586974472143282919793621623096735852792162266939935398878945076822146952786462737591897671747776475995829228765912756988293861681689660954753781503473934872543379126687339839907686459274548953174901105788112263125118222789722733157452956388033353916813480121703555842047985544537623961901150375190209427030995880805439147129469430948828282442622045775257356081834891901725626915378869408792991291277173106565763488680245941924738982890644155281865995578441921672520897522056879617080555473341338961824707499286746939969229054714788366800656083636219479860580506949593687238267538576000144333467647438558195640148941475473822229123782925707876288448404287529912968782663443701880179253670760061614093075158051749414477240322370346672707736451416087641953991111825892060849668735022960183162101290948932127448449862480063125040522669099406678140244691557929894292380266033626395672147523117937437796939270199738661373603370499035212657311131949363376432426515281680832198992912841865172277523340977902772320036670572602250889301654649262766992083775671632818434268656010101784274473157691170004111058854113664656685828567719495025303930413275110437441966225963091489534288117712940318744435783363425811022139237961571060840825333117739980021238235693479748924157447362245564947181315222587245749123587510239571932945695433107172802765236375860262518174596128827834315016124032358772877350259198015167649171382047323737119485133525613044493455771070563941298175024845197401025063411340428457149002792997630459632162955149246353139989776154991202709862472223708134484122118009215257671602253699169907283179047876998239748835110029009192300885912110059163221269105887815278212401299548194496241266771127713787602730734369388189526348222013885420044301632324976340467832566190599916265050180464250233406448125973178907556413600636998169142195745826177121497258936131915993761675704857967978898858765558428975230287092011297552356156743857684407093715789371906515007270133989021762617436797734511108632164716820301154969594395622766224100275958820218044526296851089805498248574710226896772015305589590435655844156823109188488586110876088598822502379603398005654339007193138474281816293601403955765541234304092718277628567180129095662321332944943613480320820701337624096885330385156707598318415251879775985338243894500723526005732712545834747284464390733587743477718648818350527764555044215860280082142597196818963143474985808948740596406744550031064379051538650636607517840082660285860226785091037508110860784269000887386172172026225454264321855792945654516213774944461850876865736976096274019463423718092513405481057066034043826988302592102554285469502272880508713845598237016593022855667462215189472282131233113565980047941612358780002470205257170834903252359521757201487087619983350360553770133789791773265747887160113464410000970764545606961235614310462801498571014756299402982006505991008204668284703863781283175170024503679958055914911385697697316403376148185437432285212518794963367915402009461682444786387703108321930698451540795922138353701747099715261445265697730732391228761435561382118984999818734064839430658662569001792968843343871989035245851496417324336553743359844421733243210625666224997522896939970049217878408699490133992269048192932581850200725402753011630298947269715672180253821616970563793166795987940448668106806816618726181265691137390944568869955111959950419359807941434151184720236662772632022729570732493044054044285270354010133037519956644882866698315017350974011791919163174197308137091725775475048540334733140121636075376897283307580793241513093403374634732883912622744006553096562195895972601686234844203503190491543352559182036507448634239318486030384067013592210060819335852121453323680480350289454582695428510808797322632461395878967428251759201201941809878265420082388791904577282795181041880536991408295378454049793217104598951221983142380808447651595973399915404655209393638919651326434661355725518573796063872799737887234034989148399722712687489410914056608323977768365808611779881295261192063992866001581929019343101431589896291993290280509164902397552181646223837636355079837085200401966267605870845332679065885547733670217295103318506237737794932032825564601609943553825645415792788071720412126990508397757339557159014227227439075914907673382247125943829932414058386089949658397468054928426282864712697343316957993318868471386431516170493838806739319182479054228177005292349200348262274132240692314864061942895319520478836844463021674416773292685440631284965272642536443613690935368257528159099400543283840364831994804529697770219625782115957217589214421780894996122335611621597724181587682508203245186292666133478237809601132490105088893902546533487926520874651669785224775767213390583512838914201736767207228278371229162509401215306738911124191704168845358417409217815628341667973451220245411394283426620161857655577613115696673050066559118988841397202589139338379577276447667090759094129312917557232127784609611905850031300893826456957490797837181993362704925084663950232632993974983497010599192271311850694066331564878288771916166959202222986703047441502282823450870442147803794357627976354510263093601285066275304513128520009567374850464890293027306068887087322040325676649716992852291960691919532846300191827526282530557531161108460317192051221252514394386919408324459463911084079587794454773721235334966542154322816779426215796641528315841902996307505107954566730508918390851407231990111667332961375841904807870238099317002035807048618606227844437415667608250970386080848579872575970839956056725036900792898232682426368278635599255827326164459559926164240933385884112577441321512421272302627090450301047617239032405815374245803694189948114255704530650314980235290843480594174465015065513409665597358998967081856891988127487846682072613641834470221038298766108379981159627798316641386838446600517835163207824525728642221880793602223544119973381335594837387473327708409527639987305280001145579793081738245071797344951477021563210743072459488260291298588141637123382455654600599554316383256066113898327214493378912841033557360832788922304468073727722650864880539793832039566664865513158883126428961803469373818613772028391552528562557453231309423924056636747878203555028203297456506170577013499266011034381956431127435498352949187192381883975172391025578640246498992995494056478751476098231300800596481036478788146396817976497620894385150592140745638097742185964345856857538285643277276085894824595470952907950814816709067288896713561925101074163276348590943784096110641900426832113013401836829025961160433234763789689696864744661404863276102442410308526716059988272459518795600570136297682625225230512416169604334689945984874407673683291696797339759797904815001705364343922992522199256409647601665001039656819138345803121023378807882266195806186626307436151142343326539023949799152002843347503827798980449146232445564059141919720105281093124660722753104344692848677040335164600453703135108873939012758725103878488446005847147988573906316269282743794506285753157932994519459933874560156992086946464503694484173027434633548892834861023596130881220816129754006259498358718486938517946398745989679489271265680485861949597652685404364330271166210385100958741477367812462526815217557486161605177699540161157011978280550295133103798496083486731281557624444255264319683274460521429439149005214588850226576899747590007899887237108731298062474886890096842087251285610328010072733213577177475011871964487544521271906881446058321302094871189347358944522026617324095130635264303929871516955176848856742015282076412088867217700542295408934786284940673130201888813023614705870111940281744744023813535789803535286842968335335456615599293655607639963599659580458038909099084749500719527804713897640168658964698309615866149045958892069588641736085656253705818300426821629016213498598871284229112916460842384670592350128358243627449069630485410595718355707528717642974746260037136534237428619518538752129522429108170435820191297922224813942552322435700781775464734322324314829739080462254435614342351214312547681713120694607574001483248116610788105647842977197460962829547817822543180040214349836709344623405518451502456260347614314429821755357416985661037843545268899847119170582887932096891480019631003494513830724236542909115945109518015048396635970160362905213311068834372509765044536805428158173043446083708627475218582823617949910443452898332210380911243255023889028659365697047166280292757765718733083123055627658172882643798230726751580309434452399730545455955447377146285367719932456021115725688749475112273796132164320338729619720299788309451254219699985611659495977512140278308442501878211060563430667451841220373863601714489883670036122736877595224653773630549791562206065196231514381224213334799524785417193901266479700056162077931641890632907493323184872272358949523989077526609991184064063324756608525814179865440166950277245855449470453863032727287458357771204850775238441799160020519935714791934750412599957941379463922061039924498854128774696660693838905754930860693054600464320849579303188867353701296187935711867878805056514467617317714926192330130239853141884956406125716368179824252240577868921605995618042567720234351919388913419263211795971892836789074791156374056370592430925349391263850572959060856338185966507894135266701941429426947438169464583229977430302896548350395963411294274810803502994481327407548531567059779212039165506119042405882144719527946137328260078155412388113230282763613640045635637380940435297916202891456616614711271342665026477519905034651113474375738748221681441434826159190656557849522068564839598906569472123387737286596136694680316630595361380036134132551773464162916023395404210469843913306816741353850504962592511501111861052055181985053253001014138636623949553947408052596589907269867140641121926258470135923910841219973628190443119328914254638175247347941825187031010060844427359943531318881339247210350367190074176421434128992663299739667566176374559995254321234498049498974255501166790740497652938132137955216386902999201081096687803326807440220770425829310312600407941005976960364125350554334027871423682733969485339211119216816149965999348875907426154766499850728232785665279713330047443926300896105399444985405629349194643264534161117021874575275567814653196681224945467496813047892920664282689698092473813723011795834705516777969947548944901280962341941941642985386489015633889403717281605464282003340528416434539504057429239134254015108543039431634015965099613092156729127182430081487557906908358775231459839365854003524952960255528219654875073133038606791106125110641802056714948387671847041672801677671965984752675801866543261308144023716840822203259448436612967242253629507177690130225538395043500175588394459477767340230566144052823368732227977534366400407200115942340403330150471377512605330167944152384165421399889523323161332223592352288104193671745420432084868353777021706070005564284044357227814562967486905165641870080158124700394053401696625162986427589980089608301204643379776417637691086911188466569257641308367825762617109346805101112855962177121975968631264600075033583585833676338844874294985377383802074465628230102731452578689045935764405566720237773237407500673127096998759305394325998003946070621343678126842165342769764289779298717908848157172502784729916033920895473819870342807203318214348526594248746872830579348887067412881795691056484090458999580902959465296435152125543709492686713968534828055905531524996988874788933311715286709514427365939682498074877103533854718988986885397779027162225006230440796320211968864744418723176138005955863192136190305828877674862657482148792425102368279375637861607693346977745994977926337052389665913332363720381993128879771307701252504622404312893201263495575996697013933763553551154619142727806023601692145265691558728347007464374130191229823466413365157093687763979707433771897790841349152395860733449112027667841339309812694727189194660307361938075155184149904612846590554398255662862500267133887432901549248084562329851223794137617543345256764907997836541808952862775331780416160744600871903731621240017096366062426543630953357229259122129038403303087341657264015712150831088737229081828384577860985844852499162617605667042748467739302767057631056961146967925496751233322248404166127760057509157979230686965104734171841809175158917027833550103517732581727762463410890210788179176017592294347118228029534702856037766914910197168939967833778184693626736238069002040449297583676140840177245016095890768493317794656644625215347273098685104942798166856989676346535859842683623234796693760640570130815870812115149209919742756740173117830398136208775545863134260179435221603963935122772537218528708907470522737036126669229679177032651848344769245442594751867485310930066313639830597114446710625885302331523427427430480124509003423790331308812527282051459991183769366331407336460590288065389493943386524727970413714416179361469066751530916212447810111837132248904723077275217871316984161505629943050837662527590781868652737161819704221104634327281209503519297472015874532894491617468625810360096639859086173915737445367753070834439121873405975112137003177224005447699433001213183400619349603078166532745697021429544692913518072737965717284782248559475195255149571280562500308497967305173529782344775986457778813993145625859770395289222874005696858303392342017542726355885327371118149595440675427314986640575730338026685562275574803484131342656665966350207539676283036309238125839130189915524814243967918572740084962605859528395675327242767379032363437456548904365215737635117667171216733454957722711605594001006309055882891539722585182374775820163936274905710463101291890724424119007983957394024803879329696919685659141623712533661559224074208776372855257418116863274383783737084020406813414501138084814633251940172815357380013309498331723247187495745730793267377814756469392077740844063655509417840523569770672868213269958419846641921623221538190143994465666577150479821033000637099086445571748339836765008376638505701508287445580673884317904311441203860270297930774494404888584410488670679013955904013366034680161398283701387351188780675219483733661763136598834596203422039890836079300839767472046455446093677343666488435459830795516354806634137377106198744180790003835587972873192341887975777670813983717838942980155598230701401644884849955051254077815111680273329259675137268582021550026555032346577597983532717392502537149201425605346233778250509964414815952227707991774763487313809542072586248380145329282448302628248022264464136094627088366547186835881468580871870284302543723693559747885986821971559122661126189910594996016880946362491455664533549250791885513901521411454509204331367921510598581847538410081892626002407668944467536823113196730102671596728602195362333861241845503565809421901688927033817152025030388414199389380849469712993718053724463027065188441370426558707859147305020206155050747173805372920192838441273225375862108267568744331252501989553193879734607585701998239443187516856315319638613628241411434590088009119363843262577455735514365766082266307709912182869679636110543849051984063368770995887975055659273254889711038308748053107445494860901765744203925751491375551442603818719081485961831836405421998977099995842038523506404959999334776355456651661565845502108989941925841825845296021840377845450605975160016300785322603015668501372782860625675623881618114135385575713245807234155897486072659725630189871142689315335940147613313014559296973327843183902432418547075879757790357581109128393060127882963915468402399679929180539150285621021072722680481270929978762392572917567360721929787138617798084335560984899980382924709379331941559487256296041196456053342731018723575758185113829671189671379400811225937251954880377000384431799760152881436243534648408905543809461837460547708774925264278080993500694344599133198925880855601770561295658638362727128114664446304640306426167465953451292692845406679637519264358208589194217137259675956562204065274893538332814590673679753133868710592664395630735127967457231236124037021216259813355440954904402434984561700493555028118001184646561365788320827942278592951804435389807294624214302503001040759142355976443834323327142549453261877524884943191099355829685621298995276635010768246744185206695265363218136666127948966397349334634196979926204884016922226806884815626981134877058711027388549337480370747486594726939312305037233729205624057471053728938525503972370602494523763761600977616343384624507645309911209011299067053089237035292371648765491166797744909009051259995318134025693372772609419030243517460946369050207507912573334815275699285288017050396070758232915101918020301796698671080364635718940600331445940958039694151209979630704891651666096024148399589021462191876867329587468877787925273530049757656430775875589365300009804467982554616409993888760759995933235131614464106976572447408954139679908856296136028789246450690944187569392404940565818701376260498233218683345777291915606221861562686536914249639111433117775875712067504852806500979317812736834454777640080455894025398570442751970312084115697169946697564348591439861030829764560019605376919792068485047747158020834126495557565532525453432886373900371384106212154668209814470089690215438287978635021861668498614044121383326805216294680760355679274424909839763230087512316998868956689182069572156513476342063591611836588656134894237649882495187019182039445437801467133305524822491855750312796806769998473213842977637928452236089724391257726192818035882008247296029322222315137111973217776232332787079896305126872733719239015593872545893068534707938726127827456157693021329485518603597976391988697537668047279172595745370545985340007369350554843951903724101962725552868832011885330197813298845936424059274923157538030883185652476917632285171600031547187488288175685062849261373791510146766930812572128677370949543625936073908169952660216244067653404264557786658428171042951103830089903575248791708335443368778954033063979637567348335970295816710243855480046723346447328245731906866852110782160642068147116021363012562037551107004694369543144598989178078734813167857930773626413937365930383485284646872509038530369247975503737552878572515524546101133163572998431513074238494674614022563138569709575762643057146773469675876339187426837045423884374303638516475102191466646915357725002061183813228442801318602367492258617356904563901880994649704628320003115413340821880054163183290597065208612209911348004214791463268274756305561551282451822659865555731908897428535483984311938036272304224583906387716466359089015368818430685657668305469282524997092983581212058147920814877962488954570418787541791418171019216049330988008636060075744102743535113478487019374663319501006249044534040152617064465012999495161223736671608975675276795845515230794747968399913637461998112980261356101702581154259604187768261861891204810251213622205936846121158291011747743724419819608764234503978226873850474688468587384981204786763069015009468326521846479994212361056859177380658072687136734622535913223761636431408203258665203841799289071295558649478049996840365480141895229812119341810914032204665797067427453971609589378806463356384016394514534371155885966709723663680323340393201943865220618634053332672806997349119563758342742841732293263948430948287841725880341155433447282886637665807453536848491352854650810441759745035692750202083111689645376649948164312642676444816981276103780642887639320511378738003527718816403711623961227764792522058409244102869682476604557649564876665346555120123536843079002612996083724716686793745262985175352691646926018400594713066369572449558837464560675779871352877680670548328096616042112084537378669433093958016625563287596997008590232136159286677130329708226222209254806510566047800334613018562186358373546271974672592723348926754816110363383405288164738802704151246839218270696083601741864457227881107860467867391658974663909135738326714516021300252254666789672939770747450609204802141155253514970993080303427490946068426911324959899663570297662729119778306188480322879105721064728584610589609778035594523236368551103105409297073688990811892657667705741059031245885174747821244554105293879060544634615451156833707312364189182168945086693290861000418867896595541283199067551196810590071073455297215277886838015297397427311858663335745631708658234655883489990369903447902625729385433434661774682448698447699293786000447110596399842326178688257070239558539074006543095147694982504497297861364823372361665490839977865135193972442339457536923070217766343950420810709825102985286085190221601802787676499020800725606636438143582258420987716980527638311042583608783616744112419755270677526815026384489936318906224012164912373258952799846229159593192150092703542563327829349618469393173414918588640277395196860822006413797251851171441878877880534333173954218193243595338823544352152657915438496857811918335511042360677230367634968761180241444766351304815549025413730059869137168383009098630942503493781655782210134420202205135054227743749574816952257472311856414843116982103472092739443295237935442863878536931189701311627473872985959290723606725943059064478931588451961593194407998968903340894238192107685421186865983197285416617055625109198415292463305280886110582800234877630433247131720808718021757647154851945331424765481398292087066989903405334949821115057643759352794957380381223337792026130819949429557327782134789438617967143269853059755150850388241730890473060758349614992299288349331192852838046491901732231538913432750248684442301882739312354123352594301700634496252308947066222149899169316902365172169199591473174262088902724859858473503424923238051855878478129511848579607116483060249134535543561108350466974426658805428945204384670460593259580627208719793484767098409275083507038815745212790357073031762434155495583263198843057033061565018115942589420557734834369034413014940262294153214221134155243781907989303116365823736221492803568501345019129922039607844797754801946253877324755458469799089982681020662344691160327156788695344687512648795674595864830738508107018511936260580002727495973154643980545743474615655865260719581276524344660716192621518807473358893306329576349601183019806862757284342319555716261696864279350167552293149938836118401693868364043811530519559742222217986421132985708968517319841911909220035307704136113348152169547075840959104323190625005902341898450937662176588230284593250178932081616478582691681299578322951004483509873121250386748074508181449114802535956944046740939264075097682430854028821393946049012002712624222781042141159388908678251184902850384719552249811461051630470070920396882890403642420791459543557051525679130114968533837225420827386932585656492884038739751733799672805915171994015773821893661983084459509098258134488121622056443609356026783460374432533983809795758018046428530246623839807023682597400472623214893660968993174794546748120916227379288837103684473471851590588104416622873865476603742396600643013167601799220426070224366014802212211337954862788218990628992535298136255584015416023623989033581884983789571872311580024630536723585324611578832319303090403998477040816962609898586041725926839857814402597437648003190553699734919070656094481988879311077057977631424513609980195294843971996722328195376429162590017168446375853092397849605329380353100680770808745376288409707255187756494907712144576186635769720988476175326417065526042276227915051005638391662453417353253480188653939031690895311140771307800068045406136319970765469231176428763827485948178463803014782222701919103297700696650332509347260221695447649812784408488661484255316652577416202236601523609900574158794482742015107424919699505684930668974746915371409745045536848262000427286094664404477633419971628428037041469403293572695542677077279557793173248381357673191002951538361164957402898082458118271953025095252574274051862520611134036386228938757348170045548220799850827154066100589640460098147035822050622252519882820768871537896379546114176968248100763830152613243136476070114505582192170126682432446870213118260554267648160199468603142002737009882653164666964219284349158920489335892859373869236496023562990363948969979520893389462693778218141075095031502010279102914002187473043131869996728707033823981907584591557337866361823627378619772227970633652281624349053667002757870461017819302337713049596896363110299095995743624431138344678896896694946403427967349184320195875178289798301851872269584740940265678920930505916488104708029377372293337727622550344983482248289443345074466293767561867829388325887803616552535136977252770343120115040588744231207304923588594283562946027342902806813837926176281331092815215731425353173514084492778179253821027774887221535155968157506038668238425914714770596703547139468570236851597046478753600926430597032407276614594111501817325815919635256334615089658391149194183374545011714070048786011748150590901975927779201287361828388837477920409693214954545208341983510836665465068587202300240629697111197550486913277532764127482553667850882870820904016892794976088074515661873747267614300247446520938504032401682736749657842065699929175653009625537440870623912198964218182632349451675772970410777527919437082860191572245641699322633897567455840872613432405729911134022192015123714021740947596158182961691925097183659172996622536824189569499551946401417168725370404039199381810081323505798103230411794744634606127010519767383025725036730422767964123488013486096591263190441061799115568124895603187328146169319504627514024255826873141472696193016176944651994892673109279508212531826009586761187681471071317248146308885316122403954086620435641065654753504365360403587645361076979219307266457800600021614761171494749052842836864258162280104232279186984325049774807136960039805185294987112761744895094491102491775598891128502105352964722974235069738942329832050642502496507412660718832060964497122083546252358112261397542679086892083267577391197142374065131409704674322391253249542555826129743695517692083743305841806958312471615768063360054223210623047548158820890430035292559318653060861788691876538813642437716624018241262918656560333678607331535068872901131545210604993487945510768533146250114931556665559743496239111519587464467187721880817964933707934085836115579256178573332023458421286634109326422024074909691120419522186028265193206526174402306292563420916729775000737795616151282757566125595701127942587796985689925702811229802230459399826865309265745872673362757935760494937726246191496990290391118347325357032448131389533859307801235258483910510848268930396313990243446079157722971925125583619250365471771133531456725022135599982520990090801872298796506902447864698481742456722325293400465512230785086084316877432951043756115185292367388509119928852548562798370674414633483295466529249226242249267282316809974554625448815409172141973670612878581683613849343984197578430068813741829337175295448601325496985593112115171630197532323827278395197958106609795029919720665019477648381568682902831094866314252639764778414875604024487626846202286907776253082836657842439637911626810399441431900074319947092033687745289841203658035235738973918353611459190195094742470528620550009875069725005159664399874685100458467557099937761986294322788504061507084206611826461667436802515913392691475129314546563135928841151573561716438414687807859452374907343789070805542776477581894258146164825029224414243961934429632485756588737212217799071666126530266535072526447890489171612134976137864779646634314849594985565093483527436169549930029642652367173626489214668752400773608513190796103525869794389316009631639675993100694330392841249388130357473521732720102107381504740381076217295345233771585078754051038022436132118418698910467036510174035545946433734231082712166192703837970144230854384284226242453420493489921133181913468231251053586094204923249996428803867655264012026928088403387277598510018445864526933218763877377177734668230621279457511117143713103584044918466380416806890421772603716534149848234364713418232632964005516519406904528751081332623166617179872622811659691314257302291583606900510429533239863161729124185383369873071181041248849383624956802928295427370757569422962606580932548328883072599164302298196993070257831972082474516391060410454560174009928837521939973588483188559444220823433168880583203087740892862448761667792168533680098444569142461943329029637676112865442219384991751724084191976714704459331590998713153420446279714552701727081559062412702185762925991966549343740899369426741022128389758760773600141221012483532689457935132472053504609508121293915036834397232202254367557707900981693889726777438544881231107898354534863799313961411390290360877773781070141978984553374531724663494590206270860585400372164784715136759512051693748374571989170812337065068402756486753852806649401842170873438088802975224258719352187270880017778749354240834769435099268355331924778946680486868047200433195614979076017395721329137598476989096889370922174794741239252874037300734047279349679791895478820511083056047521316901650358762930360408510741738481956547677645903610737397264534815472491179157635512973968422226850861658197110801232508834922423303859269405701234823533183830491022529150519692612437551546769972858101688840397869597016303317297589739166592518021119218729491289299842933308479940092129560306804965032318450995829714764624262173007935076259928283203773266487248874622359532870689612917051880449890887825113246636758829890252589114795132514386574953807737297463527090177467438399664680447889466916941405039665373314155886306491577569685487303333789697883344443792737266136348505554391657729269872087951216008827605480233748351896059597980878318157578653957382765843474016118278358783648544111107740088740192326438992553082543273146332987554376098536783610838796326042793507703753078975590945438431050362613744992249356459029805246061344896633117034250432523452954222878854985062832554719173631027485981592615049078040029861277148154248848633040659737228933456495026481271525549050600735719135002027943452949427064697975464579073136101510461132861790951709796982970028610402457569348418933461936356491212456690259854709648376908860650728148383608766498041536897819726010786522358731695153110116069710583292269076667930395631642095216955881494532206729355847632481720945257398311348989440553607674146096517912273463512688811940745880518292117233413311773811200096786064048914681350082013442578466894240380754786277732944234777585938896688843671426308055376681678506529271240017057144149712244869717617127855290639255553124766207985031392813867012483990589075274860754797588151694637072074885685686205262332074742699783001165195350762675835089327759356954673066197726895867029155923896788635645579532954323994363710869291107073637956326727946580436400690573167933771735368454456578056803928441972086770984822895846291631645503173956616425490343530964786775272495328103653192256113636291743698880192468147431761958292136870707177467515614287053678077790899607114551347342846414719989591197889087478059677815796163064252220550380396511966497957431058524846875771048799201482986847455541152229257728104746540260826033235945948773942340762866433883071667889012655290506320720141985004503371457770886831124503696649222393384359592106614574849512379564493822418378344344213119552825587521783383920698459915455626132956958038757042413477835838780025375558773386200310918116128093816910660380421368822513994290453704063737266423709393928306997765786077894252075502121181192031550127984663043798580672120034215879053294613672303246713998591391474344054532743414392478186622832421814643648469840504702409122833544167341035414963685941845989850184728809120236557973738604784439402718572298160084299717857925922737035637538315049410186405142969152164580449102865324522377469257415818819956301089244371427006231420913176289145516703124816000618848304687825786551980073232000948084369040528497151471811094491947820946918873285981310891234802928097216089752404250085493117057850672933883246507927361385131109498762812550022952037919973112294866782181145757395692050232389579082647847023913000991551049895283455847182452678443443731272359037179988878799746346548016104678763955197923223208943546204360437459347828878928214040797199381640779747551869681388249907756516986896109199297214475758208485151783588369999893594036915867333605978200512772669037110942620677495260694566577499045018570615574573009940661298767729877988495982188448704513563367049493241295532893846292457540896702904950759331858367415551095365291146806850152863711746344505769317039734715457089116925989415000536976368073039732876748862171323966004188740452712326158311863110361317502036842105197111588903742121942938358289210451432725250767740564611421294445069772219208714874908062967214864639599133945274322451529812397718551460645287473538861594576490216378896587991216935396524595205342919050972524360291162092236941793482091504466020819634420905620479829333876902196917271071837030921125096530439734432952479887563072031644208715858193113584958084848638855431356821496132025840578965245352825813206363809413440680950374796704989659390189640604620698755077416027100941109891211974166341497550448382829344562710035147768189014740799716407654048496501456063551838759480175206478584882282595443582315562744482707114090472211011607690526716001005171131164548786854970209459003128372416453350454678143250536206856290119321762311177901947735608376429216797629297268392527089370610944458215076965590553267081844479284299126702892033630437978173707413963333453442201463668722921301171119732172671730445118977401052763384463942414356880212863971096800767146505644717987459597096021618747458562980552726467683981319660336255687556474128104242735757686390334839700947999826545046300352167505880583417901753756450232535482456679399634554024399662423368697565271557805562781778502696920058253662765554953134178448007851480607345120637670798041866273314577294537193203010177170592958956426508419227193308013500538537525664647039937510029787730141219001371036880168812969964027711901551324407658418216594931230438023244737615384207482480060501331122725255108040958906216569028833499818653305595631570913797950509171638433539985338912927918173282626194581951791425363348151835197647346057436373983613008613813734991396720926351426770230487684914564335551993036702278847081659600863459224404203143222984679856315588674394589950461851945067299847767462573997998173285108412853453857900275295673305020727028987289175140965003281687582993441234180784786654665389927146132074631622962011907778924868361951677933933339974626469596251284237385464578719411318742887422779360702940885082021907593060276768870517842981035603112989425988445711831586131311709669760868551412110095221684924338086219521271641225842498715987072787017507259110042879984081213949239906345898598844285212492603699324173647437864366558766844992471946146825679667432351672304094380862277615002427665410148624100175572643795683034698544050132832236281034634737409351780196228666048397350059971656774119357474780709278798366096064376937123201452659037030516237822477834123072006456800957719158532185152904025109804541214939283969422397373628784312845253549272418846345216355595243935322982204626121852136546697866746313794604365036758144476045454200781293501009410846773441947329108544381652922292463007672259727355365145636240813135741570420170337483361860417647867955974884274289371038371261954149511757399756308137879856744572231892386809081002949364452657631163757947908392156007410772322624701246845106785781235267899376661089164843087619377857587074604442199775023252162989018474167091559080466776691965103676888778337988441806556715452055855111896334979297347258225163502186443967131722188582679142584172017893144715713302198984138945737057453385527835216900254925910001815287931377853129164268329720071514035913665016241246790646947119079147653235928526935213809798877482601818758547528523885783796811117488866472306385654810951256671566594852301986004618937121642576372553698201150988947570126131260757929871428508241810533388691610501955653740697791392777995129066458465093859935684203424153556400399522521422547909951418827135198297870473549384804289803768592435769495540102590229217570847008771459355593629541425942461278810329946214223968324227002587825284910518379087673577559007363430542510200966546287237830056776813580048983975346984068896433284092914128137725118580505960977072423559058088981832087298259461055509138811723484389265268858880005282812553583684377749527903116658754084934479341120420373038832527592338790961572607126805543177809698280842329589649665163437846234058747942904756550618262427505303088152360730514144040455869533908016428199432245909586596353104313347119338403859882079861323908265793038235742134969454587775570803145087803897104816228938245991887910317715390717305950633225577696856390516655376253301591558880145140019259848023741950407874416976643475917077971513625287811694641306336712958367408745421265152868753482778432471640178791912341626231137702299561925504997576445086406233315012377695352400608857324230475084250852442686186003311182941270828032506093063321851262029042674170242047240038852966011903740535364085529206486831912784387233034425688495765791605894699457656650223689815243430871599020788193989260965143494673233944465581997618266387574263838920230627425827138397427707891302676733023328178696412331892216407697334680905318910988896108030378910964256326687811171441908284759385008573676587615721347397125898064073162472873294118960609491380251691653425370660404211897774772785619749654247683230868110748013665692414480154542547616983223845914149431699604137429579949584960192269737620445876009901209844575092254891830510463225540252121085453772796728572912133284989682502242488200689917053779206993108851811119986438498474222232276739433255937778440591442779665432250942799414290417117426057903307288294591952962690045235350654939201694981759491347979745803976436566494168736107066670767771549767067796488970917811944016026120516470238546444692825894490382268501181234846684989497663441099839271938553018837670988849572079084551445180034018213302728692131404831543493102096020014408194757116300314210046746277007927592713273752889714371369584102243815528329162240256005212841902001107313930337812804553340771695218228795366976190951087271901160016166985048810346862544755337180399624130082062337885950955577515230639621734761561940041580849658713617670629579540368699481618221477382927814903700018202433462497336092764210595477101875747814680846525438441618705455590874089584234453412541042316222688970203071754112805157534309989957746401047689384557081499558355242122877751959358110286750900050860991866740492640709253403610767364417054518856635254801026193293161104129196375812456955977125301443451283970899586290665871918976144613229777987399053859912417042391680686119275088265201339676451137526208848540961716661797852496865118823942586437194187533220894392301372022521648136432682844818956937285131625885625439394500859152344717017051497955411009097070170266541704680324795583989160365479245209826148278389688271082114985570957968365304031150698000872818799409336022477905316514883070290997473581787036797343028566353401214646134026749683280438063775741296031280847728400617404394505211762911849133417051349861964460714322156575822002225924126667810187078302083682106441736922925447101750136190211972188054261249719845642247684830157077551723094147747330167342547489190594306860866397164418834743882584678267503281256166557685590036113041510945736977682413046153766502733792211905305042600866106745709993419412156946322207692409641406851736715611601599533363309153889476879472241239240389290397151618263587361011653215080298980930165711138010703249121639777579700519141324685520919062598562270443314229095005648262540409596622430579582711690572825220462871667062246786128503225386741791107878938998708380184786068413789809816538168477010371356181140362250573148691607748409301016151924089892114694618528929758215965909083593639906451514098742005920458520965348034245995993147935187088241906883348960186070998589091322621067330851963314886585102539093521756258503011644659779998293361068321656208912631483915062447654711497478313414363821194876217780238588329602142287841636865861707410409037672113119958011562830062419265436613145424488092652528755121439980383962631111643554286386297967711158532700490052544100280631232763366461585074901218861685799074395248438468516363550776028497127691499582770387698555913751758048938543749127165962753805670472060029376699465710883735341868256475030486473522019138600153524762899674479475741304147952572225935059730098266012469533793973269323026565987490084174728946272797146749947616388020110985999969778693716183234559780299307646487601775202042325984121956174629869495916089420827223915181592853005664196467705931380132683136068937172108157699689852208208553349056267220803673237467337761430705088201217442317795693820220734824151440045295378037246003555747687954276578857896171755147320314149544613199697695431760515618848843592468155622970624088123985701122114373963419445689897322551181858765996317019182326456166425587906005774713158400026366271617842155649138975390582048280828508594543486323072325040607927869151870444006591014032060690907691683912488741121733371915324163425406345203381164702668728685970833917608982026722824697259263111316033600189676929574687926073888068860148669747360135609878485888657863169147734387541980552536174394734216207894187481083370822649898236395676140247880586505439172364185995523162637083650063846061775806216619843140445564251434942130416127669235578074169372370959116766154206061586201644634577141374343972663129233075179656057310351189535635946040838922835252295197539376472496024067386994192416573678260552329978689255547753738443310875039164799762051342236575757990933531412766773176195018546924070246872391659979880832916628302073343437644455888418474466585786038778524461990204309081668334767373477279487599459343889079466074842183627174605066531458674666518125082058836266976543925096371115271855732668116129530035042319583842822092853231568827223979980308010980167629290413160766955781062422844386544779697900029719738872728854923677759965068989345118265231857191332051827220542543673109314773801031185360750315430796017035029159822511042713093656409488096794345692243932704681029333002879223001362597566086198150199814998546875859987734716056708536391943577920429051326430372958509347864665319244203200951338463952020592624424000899730018226922743156241521272952263745399364675832484663521498454619297176225778567674737168327437715712917678376312939005854899513677895020187569492276939581382699471092066153257060439052314441620829968471180792029204445748870558904402384413664692476172875253937076793792536786703414335860504810528362785809264806988783800810673229671573052265264221904673733170404840940843693743478704287487996928177234703494612664804532436272577784247703441974718437215354051556786626695528815924940704768037891600972134314306695674032053890816734637140967129272424827876335963735231331762210855531318674349366700853863913510130484181515364695712957715010165142635525699595731781838929880251058570811093126592447429726454108837190349441362400689266360811740478755651394236810730808372256282401239796839142624250006051714069203067481142100151978284513180715222916097763376373606125400750529124883592363291774669185592643993917536770249422920401217906109640427037053420054637632438047978284023675713327110173809653092811693973746880930757597530593535987852560803019204028074214575262194873442122699464445963611172752013978103132206436253439838090571771008354552929184719077229550279802439292411943001655078930040210578101483521066102537131287337009701120658713604214011299669869297807026401500636415405156308800871826521791404959301945724235048519385997441691178837470683193701393690066091658378612653199959251781295611226882440716874127831630369468510413112518964955195289889714621795720806370308452577793556003970990253463027715454056596352800396518781353060840672370157039529793321608216098004138859453984668130486407529691524789893257448168151302867939321384434178411332560190176084871271441319329294485526438730483163164475070010058943339823742493413238876575652328257625830465919208272824167748480044250538579818342376740884276676365950095772122618499636533829850144065409093145766895919709865841119865494064978828682209891116903419646199297359519996046937566221190768684075492811106464827202888853475516661445284716604975574916901326427477527798114903049351219618100674588858600317047347530542066009277262940814159541563244486322202439585248295496339518014230302042392973531747158506455385104112287072282520754874379767148449843966967826108555350409368336405547349605131585462010970721395825406549994127105870485921682427477265593792279561668734790097079530165745139098163563669089894859921334166642642569747868325479914994315628041531093366013995263703490585679280912862389834639551636048897721701040349151891406870965037394073271151279706092115730413451406816146062797627762017047262125556460269983147111896517569412718987618882994779510220520670650854955270527191419596570618192490809538017474821166153332236253910590439254176893742071066218900130432047185662062501336169472222954817003445699459025082179128917558104156905777602882102904334475748982441739627935101452581327128443171175053996013159991469033779876510030730415417440677973388300553828820552056265784813619132257631648754192029668364956007680525177072618287965166277804279265242526410060794186121026526585545390158285328197444647092563060077116270589884401653016511188028510819381448072518144258850972553118720940942391229550650288965412584767568648964987251072765552487057545190654981023275135790882116897602559312179641541295336160224819763323615319436781992324220963397677429953185286882585610709459894624502193798528115663772131577885154857311271434049563276131820924429498117896986468806467141543347470607013279323271243781244554053018353697272884059419775020947705117083066133495988573800004174342975074147110018567696359894838341923930668285738374363094662430953122168519648428368662081113812479425834280525749073088742788574867070846599524113559232070414591528951012886609769445206967492710320253760178650172179617165707258568186386553868052874372546920498718382797894443245897988854336573018665791006342387388024544646396392622646925806679691831978199847369233323020920535120688017032988253010219447102339714251397622713807702879570169757473413403530546040558794068533947653214398362472872775797466942471524718879293087099947966963109290319096693105388761031783580202853276007063161756991396735157371917142181426152615512204723160365612872933194840637321726552889189318578337665340040687001243588692671507644933858099139571501407123388499447164926655432265029311841856979973743388965821124270743375635451168737468483274046987612200192500495484389791279737216153737964147632924042768281413080979674436410981100995507409595567915854705949299757370749331197818183995355923596198979367916986002184394683612773935757434793529718628745334516582876890087415749270383044827287786457545738461043834113868011727781228313110926268889582594654187950530669577463826705493055822863582098159069872669119561606083353380947877932689097521398533789780816726691026252373132915043041811666933489455799257163187762712093971661179726153996747136726537850523222411990413362961985154903252427243291619399052151283775301255592153431525077765319158310371309199611209554640924280120494737550078620694309653212334271865535836380460381177229944183794921869178502131577480050045231405977954533675929534443671463942437360610942193880378572506566279693061469704092724982233373958546640356638645921069944219521384126377198222382601742836427693840860642761291568158534947877396422940088956658298699074826572561816084990612918334233215178884122809399719155232920920432990939928093725698010682923386784992136998461540190563465414730527883113813968985315771473218890550182121211044906296897066383313065614599337541205185430490515776380149704196828319597275242140791319609920629961431243562057446917476025484193279548781178505736404780974891956284046110769715284182333601826718025705937498268226955763924343267545268001312373059730845221857488629339548607031513200615511268848125543818564705213858308866700365696908895323000522736401821553969008366263019109465748653115923533584166871743447667981669892141542530501279728389474097046850405258387378731821760337365719372477407397380630612239825546683523339255718813997800956969073085642153654646388255340805953216915503011224609297961388584803355429997564106306762418021822184726809902308273424371227928009853528831857477374346456621815456974712631171707087012704579512638855060339886500550039864505304326442821386652651873165522612304187533813765668340052297973150073936510729815293198206027652692514657783568205164980308185385813283638355104829433388265408353726680093061212402958420879157971243545334380141664763752992194756366189893706148626644466750520396046212624938450397914973338937985550015465790687386432453810312627786196777344645869823371190498745489219985489422735405564397789439463177324392386152296191604038913058191577236476802291070110568734428262648565962765767321461503390380736477673846024141538086886850415307873237024258088483954545687704303515237470885011953553824014371138711131325601080086191294297816177753927352461068688503566079165266236064345186007600931490207673483628788774486986983021639795353406583332975021915355230572507411069561129831474425727614451735888708237429690893038114047239732073530328439317033062886781838056321179139906666532931262035779605225033457398203047907021735553838204084732039596157909999474109039720338810487298233718523528906978918048990644326352323088765939346558959868639409964835030771433744112945407925423337421151513379609143333332957397126810890757925360218818922895071919981533358319206338959852426864083176784973106838375083920609959856468873268087480390239419680407728031549959762333718043102430238456750295474992197952454136283223993388020870032983236312073324573364154044856183048793835164511878203119668703983454499032592113109840542527194597968294104789097464179670366713974091223190282138681863094925188729865366462734704378838311922591282527459903587340604265977767822458916960857474262654184532399210870657427723749717885562226874461518706749131787055792478787667249204943863343974720148475909111548948860086095498347038826708725107412066613321775042795858981086500133686689902479885309292753086023615157802036212797329138293938951014160815782139415239802335139757600134150565048862536021407091751091690644033620661026708580470278433277585870686634747206326474540063597109450929816497901078637200631536965839313095340222225704953516733311287924459938165636429426085715882566115376672149830904949644724734213485357041631034273757621434055323311154660418815111973422927180815181745546857172242526381618360230482388615467902261357510026999036661921091326221699244823610310346749082860304182282504453581839445633056879796053170402723119870680266192468760131378860343969030971220393660414125827173064736621973390984813538453695746992134386680493596881231125924510457604280461528359925911038073322994803377155000341049539407204556361848198838398706123676875357404513075169551992997512220402728735153020464150379889332342937314842240996464961985128044458697808789808821944049941770203542951102005126435137582210635797019489473935163398710881608878377192957479442706659017458863883913372797961038105142585837362144763154180425554069846061201834516979359768942659393555445388337291698106711637775600767360944297420989862198597940985372252577385165154636726671378306855789061842782525741302237152156899066716294354814893302727370849250613938163401920669790851994259985071283145354602050267371442899807589080606125883926501673299686863912668035926324679617419212054044476067497664940930636147845110875447194652747968132851864851747595434626171342632835697633665428875923776949923933728483586843257479389249659797374746572534656084525875861064762982365717818256128024292701227686774137873675052124897960801295815416934048788040130681367798767967986162608917625371072807308601196543053829290329715313263517842160363234755164729590795041992545390879045066168049703294962609106797228694024520652341906257760308242228820840196719051444697127685640422320630162568320384088118222495300173145872739744528505202808582606083802940209870033556487954694982065373634896335204424364004595225431270425795491680249694474480562202838177414653856282568131906530376885397534391584252545889206413927488047019079311439186869359206551602220395971460900390899606091316838905874946091681951940512247715005214553483647909104565037330747466007998898142872701532527114301798723894641497598532846632061241367028818509923683322878765688997845052270664937368776909428170335965414741732574440401156554118669678844503375054883711686824544775737795325038230718102914088385783780774505643189864431253896032587339136701882802198319266955108256064560709826408784716650764511288819978191075260139201405187543240042867725629072391862945007747574005388626522053679652537970812000877362816503694494287573786929116262705839574015653682489682456916109381999149934876832414580269235235210617630319269697942995567813114969998122643957327484239341356733557629141981764341927223085229992226997022160310408400722942116373614689156908347843724164055560663533695994052828802022172552113105063472553083779715874557500483317363991397991548864400542968378402741835068196023069891689954119396710351385415576590138800267765511768601108343415546114860940932201361929188196699634967060156096751844353581511039793419289180030924663857410206826606261400263366198719839013578061832505767136755061531994717376906014814646289242383045791894069518624952109362505960347667655912875072249552677471302985397901374728502633289284506179908026521264983775093274634727905948006126061159769939069311053419458107630211838413643755128095481220275870204438799744678778220991911849437384524426455417840538497865283651093420885562313463670734302472213382932065543316214059638964563241815535912118844884252346878585499639969801992746060161796112851571736987111101115488656408923860056802626682624458129149128107777117174120313981016329573122784496351406745945026684802400444729385067697627814752511888465878607952416885961833714523427864624809617731709403144646962625618028706068898984356128100382924923841163645880261620023347637220025050976672321927325356863639915851400745041915110882007082818809519073649345760384155492040612249917665027940285597700153955507888635993428437648176377137644173231298396559469500253121293499772171666211589050986361364042193051966632372203523052464502681429524498076105568588917631385719102374684512335138353083319618024046645853933687555992346047372653998559608667472431142920646949131303343303230269954259229982876362195131401219519679674333588352394004673845573061797284268765594388165231637899205291023603576598345771585192066606788518509927551658256150594500954307863252574123838391424673401865000916815166792556253782980072281241967013294980696073883888806616117541904309414843598482417277960425317574360704249051467801999504052249059116202302163780229537028164148382266727828826543855388869351139225610506587638578415342188092787287826953682527298203994925493090118788214271523544393715576128536307821780908977227096158326647311654492175923333032249458640530619932419960280383440380869544857562617679069473664886740029123581598604829749387027615983072758891658272868819313394924853052369322150909019949685097336270878097309482181640863264182230852897279983324112704958354518597001546401600385745760479651914343961490064099963809632653155091528080193733852213520736404698670621983385219443757836539631978506175399593579093690754249777229985644341941238008406350101356120356682445088199724129820343973538316104732203793619324814007667713431540403156319823023395794387703678599491621900920164362519984024403150293072659191715763838100452787617749222065258386293639746200324969886880800543474073782371938148373201119334234671774190767614389182159843571024811086647743019964164629849840978381361327954344850615047033063718098651892303497004904646273016751549097807678776584551306233221315033148000153703199281699488605414060438060944178683857007706082019025682283731677698739920187448253678073415934956003094625752945393408112088076273031810185109548181099328493172911140863475794633633960600430528645704827621015158441206508928244723971354141402891183062490970207790620254398362559707307253736339079185581325677380976991803293023298243240117416599644978253733517161212571849693170197880901764152636386600228754711747063565909338267882300507578138559067079788476358052519544201607316007239917418417693885008295091004402956605405746494582216262260398500835127977663943670112498910971239821858375316965286749971799914464120677841977819693060201375962306819630160870932503172116566642339595074523781308518167514201251855741000574481736266612902338776013090327288306462616057173090086194327709352841339477390242633749466840140560097077544872544043948148700905723052836287917009220459031669949749672197334465116377777394330346309134598922271355737916516680880108200894580506775443570386165246859728050385360684167547438381439604593176095569139976690737345761969068598892366881183152246064081278056207335167582656334988173537778063393700453839616531187502305797925843288823825024244166016053398440909033531473966660940823525287063650024973975838230112020204489471534937089375341995547285813518564025836959053534718213659211218353719810603815213371370253445550128066908148965794690791648256502273133288324769561667224667701182229065507223637508660270897624766740192609218088568620160461025527484560680326952650235812825937426934933804276155658506222623061159814958121833680567298549806248076365792629134474477765538990931437851755694997864003522798191725479219420957382641080664200204462451001783920726000164115707758722537077099980710017932720993683854789221721223410205052684617232346419047135625365537033884737178210088162525292092634929143170650104992429450714806402228738877366920691493089801749166676394826752185933459285799412444742492830311102057931670079605405912622912898814716177139917627313038223634988571306456283003497859599665062643250626313883511215911823313459511281148702886796200458242245243520844178383690151930151424502544230013374734883370742236238403313785148916068087330245097933034936510745157688248783839153788757514609814166449056233251773421494102210894957355398110033035187493530213679374678835440394690171130986499132052642742987566696314748123084134023906063710018290885689945757578610942038345423979191049526271292883978953305682682762827053295281042717858708771394545200390046785536598871646859300913890233233102781846721692484573060169031442045299024857833128613772139529904851303570185422803600192767275935706978962772171690844476584561154317653132985485431008539711002546167944756257091243255219664402509333490091216934374400894094098219436795261463821063066360144874359492296395919543947899002186429106004238372695261735744961262731045729731125014787259891699482714253320842553139220738600036017939873071542998727114721529712129720920994650484098395129092055132803905039756885265484930171643254094952678326502667381264598122068095969670399842715522760092464792311852844135622144792566262149010520913778546535507192576150936391759494721147090889173976415247390971720700973902583645112601596298737516335619052911939824312466335830715802061029474926982385605905135842800288556673459131986512221557740347949232893078939511153011487652150177683219768477493504169508395236260889649478100893451678527063304699820062377020234398050942556955186561433562737039599848226876625828438022869651395833469852141543865824768753738781765514655221939391582154009612864628372830234103665873622857277522261656947712200537866240206385367358950793862975642938813874185584497604174044197588174766027914459669404188602059259102018799575858017939229921106824120555128349292680751676047901171898991263559872645154847214652638425647997124163814853564946242507604725154158197243527268108498123475074909056721967893575217772088602939896018595159995588070986323147479354861901815539179224251209235491515457480098324301551645131827279964853008978140809651236256129689560872172136981005245922160432090710169780934116641319325009838478117404423143395398743886887140305040251224347885035780639683400917230257794989106278352813465125763032140047151623936283687456194926472565261206523179544585163170014128251373963167525922785153233787774710281983797899899360611980431638760511434709831487509076489688615056077132256836794513419334305239609258771279319502839276262885089637457851439809222490373159395912331842080201889226494347062026039858328465485746207780378994379384160669920791244348932922199559525969515105307374411464896977352486587404309690693346725509803812605203322489583720943779626284883621285743120231779157971182993542776718969778983516061068664454236314289275151145854897177318518928609551761365037819359870843097047850555838068908122941588005910604527544590409821368676787855812313961043214543517468184646291056474124726917722199934142516970027221200670314614638138021491304723937847776414558654128243525505666403864285284054321381242724126725304428176155828290110376920837285291123845305417005077465046201095127927709493480832588147923707510571162340804071513098722143929331449366373994944759377903116316997731818101918797850925565353917045323679456234484805542939781101526228394945464140937208133539442604205045806262988337459657691880717680246624077437571533305137218126903038336773853578624868099576431901717294622248685489076826006421042590842866520692128406321411641149431557062377546112105312781177543034791416927829351619092726489142951674571892133645762303673727110785486833812919067925777499197640279974336266456231799261551029236283753824535299493883689044153947015295014960872296555068548956810784800875615708452702769384647124859280406006854730700134677231316416860239626365934072360470742543677259313542484916454143636134609337235005904571204740177367877306164424730107362540937839836650638229103498311997384632838797145509045770471053120900851574559700425800883405914050588518290652285607998880448725336953372929649651320934734176584833100274407047976783351620319211299003768831496323271651224758371413398847312685578251816451127182830481126543716869248531342959976956050464713607939919985012677698987316416060018261491649631849497210246538024397539020693811213783407812169760421206406508238067615889726908110392126629468997544728820519543030582133670790198642645275819787823815323043674827237097523405507109843187507134602336253412714076558435491856273423985013888013623485776866861443849564164302284072944936356598731544592272422054943616034736686037696455569128698448704185321506034317617288683025956145003259469090380853234759674067329842927076360578641363454118359363058605629682836084902588463383550711950161557368364808277852503527822588008906102906305555294019023714201063183834521370012044354324564083054166377076959806695833256508619118548144306707636532319585769237881084886673624908144121388317902537770478852989839386681735821942294055786595351514750691986200845317684623855640806199674436823683534300258580839094540705970242687556348995330198635653030395060261679902420013428359797181678807610714112760634265032727822812735380729473097204715595724975703275029171277733016554571510067345461115816354842524239420884395828996342983690926169531836067031152618835789259487208422442090885408389383702634095921403902410512892874142814634539147599205410321353992779720788018974626979304041333002007229057086550584713510856698754331869297849032237188305933569616611065430109792299479634682910533782153553229909233564692757829761208980594768329952148019795184509520978282916386794953381702580548250670964825516918808241603251377769049595197465123353668839847043251078157800011911946775731133420735531735166736264227716037884064244597417921642965871639691773158884829737154619316108470091990812054774800767193938580046566865691460591254747560192973665537340159136834097851102439516380940096046034580361109308044820339033508048961926777773912949915446774352225198039197940436263293653218288386432717878223081577332516566374340488835465456601603168055175280586052393171718444896865738469058309438989394827693372907004818640341353929954732673547580258751474374786105102871250157406765569686845085703325482052067866356864206336983846237736595105623827960997792233645988041630576676701738591765896116647985859057671721926495115716405840767860392092630627567045702492029328499630035332647124252731465424074339796067452674056522379724915934998561091684223115481476055067132939007307680863973710647174942757856915083672030171667694685959280338917422124810191600124059466998194478621178450653356618790716392337868850320400254734994127791524849984783669315023155323908609454664982494791072291685087375662972930609251439945772747407455264447690971371607768334021387375804749472015961634686592056898533169304698067317760693360396784127711885844946677192064805264742338602132405420350728356286171310499239136490415389088974255582370604854228621961421268695368450631109958783131012807801083657542282592043639467277191399594186616383898162282816552259021544575090272524980647317234912684327341888311597774839470600015148691896198687504051986493717482629348675479438304866609096098574815839494396641757064659784771271479239410054632610961236373259565054016686672408496552033394036768246112569862999504741768081786827451205129991563896711778186124515284243408473000823238274951038850863209505954162433974225885601814881469276264695373655756166430403800203517788133895545452407454371775622210627140724257667760926822197890503293374820890131467730225612567770944477409161927355403768209959245333158218220181784954747747322504765837238705849093788810328121613508370395910094912163565657845498910367460009966500420335415874860538192946385928394583343713950635391391702696360217214935752949615024511306897897802886589003372223085300795142856116062970135338922304375161143166966679673440071902107332694815005559695378777398481916480599157676620735072299229398207742914549851422667343500731819288084295570502619910809753174522183001421143664423977743694449274666819712450584461305754410233033723403579720773203952305232861748181576211617966233306010715734556824560428364401251269338028438457361104829041256078819852054313016353714362284134745195702407402336953734782052295751629163049799821149203715202675697227714228498268976267410863458937362747543396740373417938528802229459615602196446461029266049881550255053089323623005160578850965752959802886871948187600606343631620974767457992570056394892603884328352175963668030234327673533992168560882802739429549628281401538683557960171017831471295516826080323911270878272599163800513812250618919293842814837711686182916734582366012129713579293882812543313444643687797499917154459777979353596257596974344874660357075731149694061958645025298772284751154133435492189465352677725222131131700099610315937142340766645560651678915971505663009519377937074939000335892085023527102235985052254217882429629176991231326588671821419362903179585104662316932141293892925119655475612580897041908543414372413764739431294847147611828040210459819019533912309418389528182270955618089374879369225649807848215017530603731668264551580381877764015790678426518239726352498236618601682587405644587306418416903319787399376560961734430136035230867405372423044994369899573278573999882947184702188938208305942547562775533235071097531147584825716739756658725217716545843995491976783598862324857798204905866623566327303581224061679837014146425212634528119464245590351787388953964721966774074225662064794624601382940279908376907885795957611082180017563266251713030188635618479549890855779603854709335938816547524753556064761666040980846312897581672922773640912282315425538647803233731778402070745333342920592688294970369191161714510448555481172493408290208655698029900869338963979513644333446713285256265315269111083174278065882041003018927635559419385386467327639215624258229087213692075701054194290312358442475647110380658522170644082839802335620766025752739112833044984840272733698185965013438079130238271733132693860232135153332187092163238954933189947660560427453122105980859651872748114250033574329986890624510221175905673735876633974727923375954437208841719992713042193598911032006432631786562072898122587499450828807655577832720161476220214094556442106125917639192757956722148194976579795175583240608241941602588334283763186314174488110466977190096744833532174670048410571442884759309982766897826421351699766102925047684178147744116719693722723853825857296330431785080745531094029874613228062085972036157726807561181578458068165512559552674395683038950575258747714626355716431698697141500631680042128749877125493023806774724234139059662632150258191944152974608122341410853677436056454912261611113400286068484512152374493356263524902664256429692124203583435437685030994550243341123400685559793657284325198020593062967310301072442023729529472360507011826689630713215915271507218486149406390511327945362090140248848607318809621254633687102481759941254241746305521365178216673196404239121402870379901667685859070046601083486846261894116284990886018781255974164633892543773894917197332899434858752070354004053263236713104939390440229108072059127221752978715086314008398173000395965708541192786375290045300537707782330371909319183777705672573343771200704249825715877491120610881863075565932307749873324126885605338103320030567100218507629748193808561372585927095430433072652169808095676228588077147057555683978213936694103866416504051339355436175237237401787613717072200518515693856761377609332930482623994771039749790206848032672721855338592981517876946712376448367337358651186824523713064352965805644168439911996639175649761757203279384200347834730598548139723695977126618302989446330621154661086878420659583517145285527506233192018796281005651403471226689588673348517222967420390013679230229511643962945263480683512214091162717812326293415386200517952894149218822147076148335898849237196593836197398889433130600384263574196632730299417610367828226240888724979203176298067877607981894057418810667903854556919223487599029893663846374304369203365495515578056394503394834602509129596305395083644083006993908949308083478380841333388224032288526168040955082334001785930123067480551865329916737240521374535189401998480849809832623109941661581966201302379710979478634099957801525053637532157194435340737866810684553920713430143565825236937518753634410600929571138336330061877344658056889155546915447820239190869338990113135203235040414889026225893699867142507809206380859155599715073632117785510639201514516814974134138802086402174415452098598379079662239675794770032235415775932322593809041583003037190852871774069917125421237116230272653102479207374651863599339402781157432430917129456400909199898768209331974591885222244576803771456762488073679053744035645712173146885516869374363585066264747999622423259459159726023226208972833145371101674007757133838965639311112389731815409608328853687696485324147203687023515450700558262544913779773621532689986962291333139379155385855962015933753842286488833008816290477559378518016590184151108170084516296967514104426963548923962770685295781158334696453238431801916234791018486462451693592146206037086258925700851128731855944471199921683314478980931173479679875949218004110971212226913967768557837722813879369306161755570593491122000910578422860006574945533995355259783273601332050318042986377318616117672962543623154597218662315739040933412492378049794202599554567049173547661202893322195052840528572731753919211948174589895227685489026650560074098895531721729567962246220022635426790942392891530943345546654091908349151835730653186892743538051992267483036880800644759156637326859684534938322561469954752229646075544758500566813273672965120330489444763300396307117360191704777505194593341125010429703764305020721716334815625914392885255082129710757128410648731581711325156453499924496501329393140923667144228878576466646542823055321277128444233794268986837874534881128429678770866025897204836309074266931923264150761637883851222991616985988972776056624419408451730983125235752014158161018602325963728660225670128205478419020990445781337777537847064270129351926949618720163989021868605194074646719927390270744936924005056741372492373189151035037321335697648193633716154471387928849591070273751305825658761569966832113778234414691163414397587027211469130987422464833630460518339138042559148519255291467267957713202132572176277520063209900188794943605505285384639729547939646700344088964661742825974784524874444384737571662919364287380859559649804780622381728578775930210501912271285065552857910942296709849523465485413674747022335769602588016957995666376900946659527716904264758510717616664610843770457556938885715588143127134803880601649824922800651057142089547178907838263822719294090417708283639493856856663082948935575569706981020805340296012919469970162470911182338073582940897035414937252334367368947738647412697973876979154841324184419112845819762887950369330672181548603538187356340070589210176057838204174926955006740919956978997025757788880555344504234678501687110245511927343819695537469547080952569492883977301355660827147262019835683492400116065266499901199904355145198417467912031639022535652669723978979558488102449022092690641471998278750481754521867955505925190546230772946018043112525616491069688390588555301211583472438462309066336741073051714980892587067126569684664555847640912692447449499704848109378754535549337628238235803866237972389140787287961347122614771325194026437126365503524090702150536836407002803480557854779649760325898953946183611690925950380592449085541772307162604845224253087628698328349196479512606581702988475209669978756025190641552974166688111745128631995239396938642446364461706717875042341520360022103219233872263270918990429402563208346368997971476064378431900871537405147434060598537915429485300392981643609930358231564823347591031884385902978954213581019999020347885377607392731064047745961895415776345083009502325279444612852223846979991234556619602613855239890756677951171278804795887070783121199838520202956189305165552352244955864610074230993393273891946645621240090055420558075207815583116444788945124949875270462449951121884747357678663391901269406192601103540836034292491267161857060995198905228075104625501391818185598347838591289166528276109138271053889569934175581426142929813553597128119238080633516992833472125806446639778601110015197767426213559038720569440745253322104916141778689474901296890603734242469916767573818138211447015261475433648121172607117080225027170040697675475979099946055933956418566417135472253012552951257581729871722237031520486552912168108291118441252817132485089119093608303484527742350984273902689092251415998021541705966956104037688000457916892491216831508221012719166815841051009210633722292094183679360612424104526870500904518207067235574344411626198545001120306090922297475575463329699857671460829408323492379606116867087096953376644942710400954999804722934368008946023077228533859995261867198650808705533252387413641978638450614529012993830682823729151860914759158551127156348860481509735201142130018925600059037887337648944287483234071881428435493301246220866601025659424692939399601266104960416258494749527116418017374457097250468854683046394832139642048155148402467561921044331275317585591892427070898125612715247280630824065596581424739869990651262834100566750520267999017778278285934622587913238368547836646988704660304906816662460096314310574565882639304180310389143879628236813245005723947283465137780166454862566838759963376260714106733865126990771998907541325913532564013109068891286463254517133547606981264794640349887316322962486687488453743201646855714939661225254479905402829462671678816915853348589123087685796575588549470438470008356943979666891028008994774141603333132472388239286317164482173878601818041889795092860158840092960842221260511902275194719013877626448153459130002951213695109937606062633776513710307635991572271241501070539138202827606422184220552006539272973222760851947134900997586969159602630889515909119549727919360416694461515565497208362787723855696209644560555096538019653778294822077254106042010798040998470105796836374379124741359019666611978516667620263428707938531314526914513202929815455810509894558754475815420257327450248033264697155808489764505911978748320077328107593611104363726470083207235176905763466950203395145658603077427052629462790417512040692419671587989130770929725713696680546663622682128085409034159486954684160195580678444084329342340572217313747738127916469342238199418637606067295671481632772936895763205845755259189639388263423479836724587761849839967845383228002272821431271015393171241453512421991692115311515818599805298381466715509232710127946103772445261811717036838736235183897309050895930434844755526086747041923203309003723914552557662640136348266706199802641608433610166290201534666685726664095972698167123446689207433437384592803218782452244783020096359494859447406335187277617224304493165926824593262933965133487999710989842236647508223303779031832799045850495607337126237574893360562306727597449897752825296216215793240261243512661119906270933621703194272183542165942965600005481298646169207507814502162622087555929317247034146211587303346932919574823912866031177277639487950791034535156589510291858705090408720794007756477481534064624307770137753642380836265956163879897215198972555873753508010542633688160093159680497089909739785201118752906513251175090226874330925019173099868939672439445947400787542126626385847509514078110228485999113812958295859471670766272184272941600764270271361003189284687757669213048112120076141228599682275292828832293209390080321436598263191211575892275807414055525789597724212313612713323678085690812128014895267455918487510866912990670714399452667089374320675201756572139664041384669642706676867384716700268227279339499529090595429725569351992557612047376185024348333997254423064568227748922851483580396583342699856294836419595192922056400643942519721997695391709401263043086459406965224498686780604358062284854339885146666812503910541875203106049254368149394442373973867473642078728417234518971109990864433860602058190029155523003045671253936826801460970897725255143603768291110128708389557509446203357389785646913621088589159636841240692990324536791371737502575669050895902086017848901974964265576136912037249502338999137866050003547440185303404479219576185024505756238000977458443306949901440162486181432773214900342015856604030228788960621504520216774294958360526657664862042774004160993025640211733908475064870315661870198851476591644194299395901388322538413580079739666909151466041254894906694999284482949440926079328165768400301301161576385384268675716986866852766273061981016065281543872004128995393161082696398861945989147115255172047426612934519488500223258140073025489660204010384766075691117839587463185559859341195477069418993772408289381863571346280877034131412461681083669096436125327730965836180754356502747534670877652121932663506095962774448989376875136621318866498001370206768818688687504517234951310478734797049337859336547089882655531761351723124399204899091403900742521659201668259507056900532655794789178571137788202661286003251741589263069046880386014907713092649932452517551111753970565357947235090193714443559846892434825925134134576768474050802244106526657756937858613056269031746053432358336786720755261564265930078704396369167026364870513065636743781041458709174844983774607278169570296982162384116052582159191882616327431678573558296282552079029340358511534447280964061392378657336864663501321331954057893834255591488789082954842088275417686071688627749859776680120814530702221291960337173461930945480745244797192388281270985778120720927710618509826355259954794225881013195862339501493852055107621076370664920377145207041766581014925134421631832638764568071015320020121301612902252544749417523556069569777354772120103811669121903077888589218473392045989371625330449419806118451336494396899799019778689122857378996359563843641174082996646002471221166577279664745296562773115139866283145011014161510691084337641352471954745655856808962761870443252632964315115305539119396771716121854727397515486139188758595534071022924415151684673295110156180773329495874221843803043857264058361483190369351107830278854212146766093375569426709765395968244111308330040614292518362961379183807335362299277924343347145799878789790314276058406872029986589858751368414345016142088864960759526214914778409310552820780098406488991850822743961982161739160388439480426465015339447214126839093507661116804722192022866632517491385646438835704568317012179867659109599760844593238107981634294091905705775168166630727170854077384747472749537403876663869960364826395301772598731312683253709643735639979462017393724868320316774178301517690028580760446583169468129493895521469761363170098297699959813554097113332396478041714367827044671424500057953341380683466360293854824027273969392464029217226065331797650050221927414095548217833290830271695304975865680024810141078136804543890385526876721353755284414734498310968012484955486643590159092421703338120725195372638957228807018254843448046227109113568267435665772057083933898137948471344049361025748104577323933072519237990033350349509090036592433659191782379189782654840553704310360671815176127040176553820107948831659976742759202334170465918194153334747259973333212508499330990417015142022518598818196868897261860047412622741633520197529710906655973036803663127084770518154786087285392715154449806231877075198434404808704860822471478486223007582991044945357730200708924598122684119156239397966883406650498060498884207220077691354786904398138757985076684859553277107929797815452699182375034995011237955031681788927832728282667497996239653129338209041423529617759993267855028885059237774125390893132996965951028573423552141482633685847711812640799623671978546149388303012254179174885919647278093448905624808214827668591442976222574831128576833431665297099949730144860871873499561132761435808780647745162280916387216728310735877788043466810131210248191557780267139591523302440606423538425147279958690132089205537864207392532982351417555962015987817991067103218286185511752990708383614985572718421979578556994424378465588883165686310970739691713857809604669633074024879234320746978079909128630971770737350796141786201986467935460769549476400509487320916550262226443913574404970309967585389141336434978828171857705855863415944411628495420932329709575821001224902619666058059558956710834736665617927602265220841995810729378080666232297685639212844554617104586361883195884185976715867996312802362987536780478954283516304847158934771210656506688924075910906320736392858399774974267701935404871812388815556123142676220189174391413018863590113172415792695906258587718877968590912987688567557305164876760126888330135001894429072487014586131226212891703165312323460571242424195368155304894832550067337387415890205759173799513315175989710471845112492185748264735312269125973378616375061439185538930349554514881181264522876703809439035064812467934165868361369058792757137172557905281075731772483318732002740415279306308465613846695754567623496419852125957777583770839315282034339808941976145923127608905455614111045199548179438547727448461064168400363757134210549635497158647570438856445235500843734622267027502421330712689574273133416955616999107631901384126928617993523458213458322729693790119459125485317803234225139396355843112321043421405407362420684883750936073096698899146147569880450739980399674933726545060876802676739656116065502118413648502995860746756004495000372383264048302893790988300402657411598280454809158927815878272638236312407896112815423632477481238193573060136699342377696683639827971248922731754728197378661370551419672108545851796802402615908391148849069449634641738289758403677651037714042768809292910810210402938994691601115239580218660171105635807690129747718136302315736148561965271363465400374991069099917358209585155022920494498073411556337153720855677819177804684670464423315493593649540183259113262375812406630358114291776562999722190060450288102506181270483771152169612573439020405734707006379727221935935679589254505910903056131101038867912572606971287926659998913450546133355098176208578438347571000016151140702527242422989056607734412194301279501330779335293294564836112057079842024126457148738600800426476600688409678749244489959078097156726132507704506564962155837655975707042412513044162324590324142120967519289424188297686604784419886051219251065076138935255782992907733749231423933385341337964546059873135038739565759766937944770713623890255424680994538235672829407960695253455810863540455819972467486768490387367765671641816763018743963777304020532160197513830689428871026361192084085686287203403922538661163750411204440057338847840780442475428507399196356554729900568362114273011838093528138825224654326582080982388803175995021312259152430644636677887234994603974985088625820942319011346805411764128008854227954449086472586960382757352143960263175314129878967502480198613108582968611117928754056399406535762484502958317619189047590814260800406918153437414194705985375555349547903140627482200630661862464256925963003668622207312266979577097572050350932721838070726137096193623980515844286240466019112125417064859942052556553673511989864035504026836648730166755437642636914587314795087742771778939054818821739475342009808538875020576123678675537710855828441432861798888064415142293680115301297038026239702298487489541536229224225266044047684816006275602667147161068534067616333439848335366658717820473686952808510773769318827116729125791006679501172860833014963155827481042224486357824047197030954926931108600761005909990094965327749507409257144748710181353193447606291354528796220788308646646007727923812955050857143896301489701780388987497315061317194716031432476881937809535663805546512061547590266908402005549627539823275570074204294448616796026230560590377356132883575393153508295659569772148307458958088323032852431356182120383648247292955088935028789761203868900263155277804055679386709005655962665257999493805083357590133508127750055733477459778851307207856728963897350934455789068320794072109910234049112859697262055629211705042098038582928095761601341550434068339414557755925680243417944222413219118412898567449976912760531388165282305999712579885176444177150649914113588436683870487972837722569020194667540144314575208413097157024716891588352115522597995104970171010195379300949816839213618736213069485787486650390023776775623950835095119532394281670582134064846640976825830836701575305931305357642699607501146385395565869248976117329480486929826391816227602533622788727226345367583377298629375267562128662324789746877806479988727331060391595674739433282809830723739658876021915580970940174196936028765598508324319346148503387287190847165149591510933737141004558553053558361120323737246737246577430802364325871112903560534117935685223228731299948361613973952126221561497852068846564314157586962908710982937447117843996078191325610150651672965890328899641889170473451430277273767416596179269522979533490526111422144381291280833536523006903301726702176632972610829493936793522191315836411852198657989930784195388765796262482008820975244686299156333996095396545192410047124334649446961367042758785000238853880710101604643955048972542310561906348371783984454024403280508348683677542531909495884598712460341977524779847448858094990722940029686565492010039538409099569777481416065781601025765777452263446158082168697513289814471847170121116349539805832792713034015699755460838187149203603005613108510593265847906681986075414323415913709882456928915309152460316045633457021959128751061851416552646898743293682123646470717341633654088792546352325317342854095233646804928736276122981408568552501524602048393551048062123319780845284734990334801522428586095258785092710300157952929484405953836282279226305484348438213949846560765088251372396085868829657625266214267438641400871939164260700111796001547877712348653753942896558715366536956725112421159905412463522779333723368838169173196410328955508039017501739558268611521318193691006960506292519873514197784913328842716227405000440580708479399013201334823006511276868501488992462301461390753933831565227926181489565977178420652355174004916666338358912514909534943983596315204631519719467953968401821227352575265047097306956268425672823914870252116128589267502030368822581103998287603392280261277261308441063958672160016198331326210511110307122773186120489507957261282786972273858895719670475052573734588311140376600188297217336964071256368705908126757795642586813458212939089479005483301683942246552273449028169032704761341920627321930081452868337697743392632179586556437444935780952273354909892790413527776546754372802776247739998395673615605053911787569598617424799440460015791700492300553594975768678281031594615674825937734818204367004018924172411932417170028987005306595773945414548111576113221565721156498575406243861903301495005133556360542173834857954215299773900459738384307600852984536851070776663663916353099892817771482561099845884534801453484135415498174044574988922099717649730545734502367690269001627736863058385222591413178778211353061630463950071571839780953393457659604491895179161371624290883964508539647858857027228694885187644352058971552853990820112994991692758743983228639209180240874901624971899186222211044023806380699792047621065263928029011408379740991164116304182878896130752789293939189494771743389176519633343730674251769502563071348412021105564535964158473556029945190394086870092606684007278971931923889603762289728697988371671158413986686268304674160433326055128358716296385206524849328254191025759901704698174400703446469991806194739633790594713702028246227415722249832256716938971467632795662032802668076397066192931465188245527455699618575391694439865666232031340923907594799896864447489931146271167184387689427201811515260152615090598259618046149853177541034504297638766417091971787829325957162143838026314437899559418082297055648304504298803515071097375597898663888421700690121446136834212050498354777558990218212202105872225704773441791042112840198352817956752663048134062228742204067456230606573341832174311678664182130452812308011370811484796739522734616683469702000388740544982348176150681101159452490571970443292431069384608215405528439552404573051242255169307632904513096152775524979010764956391228755973709892773728969156483040089895796687967643572558304692344050445246319160797610484849544512493541656250279214758781015678193567828579495478267958752369664228968442102444655746546189466946765081246367353864236096226989828402115684454199970670006976407183029628703483425869584836615136768722662047283630906824019946456997432937853792652087472582599836782488970104163344458039420357687653280529448692867604220556069617987728713296951378790745057858684734956193395863420181667304215027755999995226041652726316289293150253078421800121813362767048036695435340095823875175576281807761985669324898462279936652843495698092817769527338246933866227607085522174058717491606069895226734292893232279609167913468873717190945767599327294622061243642595688478634862530497768200884405181207313049620544829877328454969874357678132536261998170764664769882676511821622395614931594267354948953088087642155370051343955295955146716839782837161035202899137038780062517961671524719763696736114945862107788987999714818424622374492336762876697452328181285928525578744987662007833169885473748682921405081784600769425442191687516305889730230476220124435471738144706802246275273058228970053589044057657220554868182645929837807477982283019504678201372275193789939747201060090986492394868521943852772973383941777708511891810884026253293955028176848900207079083693622627212449496116089290575373767621997371330253074286626698630780267343554013173684832247900539234180724563887298408305011535358606913069662779942084932815802632819681573532977705668321165103244244898147709935279127254664251497046965590254546519291440446072824048910757493783361942036395446164222337216278015561077174209910339027081871396029779303428063431888345389695043789780482463368951911569557372295380324484391860412774621501590580729792576534768941999526170719309993547638935402242342373663092657295327512363199690278707530056180995929167588712483685562761776787884510200771397702355436637076285350598685847700702321047516647946724435978139828182907310606254374167959369943201302447599794962781753755654588874315034910703034606963334899526592039640708940268784680471178436390994873313349540131537405023124086337358076260616365610235832920594882500350703681424383270579170163510811557681362291783771898144779513277776943000523880623378226809529697626371048689864892971147955917615359571306989487505589042228333777096703337580990545227154192098238223898431769183723943608482363426099475660733301948543994575380866271479620170655482148853487369962397529910873428517416166333391064167035333986454517872218806789423556525262709014387547819630618599755788492835991544355737035326045850196194540834059631004813552901559618702443795807104164580480559401533512938157171714268516745254561684761483232583181193983827673959513107877956471391945886572845732536768421367739858376163125272612089208550883268208328088578657139704308849538500272536725191764303066239594928031480270554058248606375995969992901726975582508608241974335716576018908128801918371681731702938784403402864874653506481361321658080277097994460864760222790147193563680805581586280551043254807952851037919630666138347014353621242346523103262642060491073862554492399617512521818078734276426874683534913309147261939857130541275319443432107394924477316808273608496085056371259424023317115433972545547461577901839442378380756363710197098502731669498499971577383911029775524379418054569120166137428540788864215402289766924758573492197022629566393710269102406316799926145304238182165645134651537245299223479410068119315174278552635646838758108071829592253486278966198507334422167632655714030571161556000273691253374601145888588686064094209117431411907043431079878503460266495398963044927821829589747448162372123332865351356319391521189465803299362554239022272558029793852047851498712300666010423958005288645492634929096736127749846998779353727699645585553129319951210818844904551957803398311436157961749273948285726923464226810319091952974531879822020389537446623307078164923136076246894719396689379954283028933593056943954770999711344605735688859120419553717214099504602918257769925948090171896466637596527729294080137413860856564575421114352208296551670890702054656722243308270766985060040671131645573117325910735110030389805967319485281080965466090894638330839061231413920393555081023008804924024483310241969434756610317184699644409265923003969381953871201131769905298558806770588967975152469366845193629055018556098941321064358526881737424291812165245277240042382741042278336431882009175063527199445012780153936820717628238309954483504076463505389929254773631263368877311263004990851009201946739126755061235080827123567881324908977461867411159236621729405366098513083034797764351372107624819040898386167476844696630927794324348792838622317171166713570618174712619827536134377644682194025302529940227397659965701255061333479803606303614307378016270361653859118899245425703231228025312866647789570995005065089543469104441174059226210641214839347969789080398124390720768663911949030969590283987232671011250366233480478516865123269378608560613694023688884006806004242521568464106799863557535656310183445309191316685249310949840727178170703995601920731978189480552374036180833076005406313830847471158726028401642295216983799761792618734237064859452488799150088334109809457485294407091945098612170003177062781722198790809795024625194100420244117011499850749139395271829879075230518487456835527626848388904248205621647378383461668961027263857575874252643459297182693799771076955121215277394179159648869541409910776074229261477035856054023195657391523667205570372096923685891101534115476618284409049611706372832127933136484746208329617721627719653684817412450862395557324555709122670891222040415120237515949475381132767846923697352884170639001146569669221842175183633704947129457725837397139683093733533465114239939980560863356435120986685350876753476370364740922376566066053375166557684808914213853619605063973947245838791570150925451678689638923435636102699580656760802239163990564405331378306945051856131510142482979162297000544895149740591965253994605295823978229536495020467601567013195521406524317042230723129888454187709343585145623801765944638752336071956124204462263343501977421132736810680161933767797876204155640377850663526842074580671060236323765419611528633740231858496543411856425899487362132712138508279347776022098552190200278913812017585099364833221863844011791841084324274338859120983496283809518400110871290555385616574229037505419557432029229045758751842116172547023227413876091316201887747692850701124814990510088492200621076812534301954242214667800240366995619731649376827349978275063380958755484911026789767128145096769559189594124241440814146370989076570400319484334816687245056346454364994032399584394928460405103178525040779947578845129384053564408414938382588852297299370869890740955058334723747902416454205542408575285112451054667787744634405814622738292602741295749497034614206506980073998330909379472410362268012216437813265760870590819494379751153934456665524704228201349215433191671996242710091796903338303484867875197306636206215456420016275504859469900908627479843799567029005252513632799980351518141671162688090997529951360193433540222179116435432935173221327544162387721523408203582608746333084167576304811153362326310744117635533989301933414120060543343373060683285222283098174511472311744458848412295040053128314641199371774026659836166372101709058686202381741657145354097945328173234379703561530260451763325326668866667907582176504690087223098423699357636192673732374013867465844327210315281889424927251070446238908891776244894933156128288870126651767909419521390322770962773846675196365686026684790862055361569185908563127173851279660203279694456838150713476081292951862600207893627251402364776766740089711477899677204983112536857655032350347367641445160714741362020317269288368026258588709775672310431406597788048743640475840353078019383435206922640348441595743134052474921065310249448747206112204259886579533980452809309054969906426508539710489185539527096455127366276718749819961607211335105732438323716071267778757193828419668204680610033338043417410686972750409055729625410130654818106095855779166879619465033752083659216693567332126717585893418250385065711339024625207077487077794529085082203599212294955250080307196503811845529176412594038680406134322885123046698788639290729472385863568496337758978980944472127415669586877365558221178768638998498216829665589940662698998873109924536633078348028563080339640569095959403912397310658289021964060712779249878018799337143140158066671710593441555721682084607307881929405099771501003133273269892633232984138251182148511456552131349256200613345324011291885931759973159368068570023005460641174477655281915018294983731660109626109229800373352978306443960607906570033974343012468641422445876042313698005264841788549680407998097613107694314971808085231571971628514712222072730545856085498828351555513636201985732848947813589918667285747563963080996079291644446642934687868472067991577990662670079954631368725542544086747032199828047837355947738271477616780161143463714694846107296379348225937127187441599652788285314858540137650793155280574325363099475505543860068202384563633214967256216822703617534903496882634494978066997131953115646755090489789677204403216237941359921227960629457461012187616614968542387953941712223602330018860028059827058765193394315236523388113637066135798950318319548556171902126119682081780682053801672700827117481860655466590843166268589255109659530205846844961958040553243294053267686424001856442517467698143219173842709985400137782079291730598201511452469159746033915017065344703775159564593253776336294061458233479388606227688396914362978345787779223080944063230452316465173101213271830703923910658282436738869357213464367939906462974623140438173149993179739625066678080968168839315641246351432422885504171914395942932928206390166299950658886262101476284145577384497774155407529001410720252365586289353451980935086096848449400356428877729566900253733277214239128306287807003100266409270473149794565772995977826397349626365366623590506673680714067150431431382326940256535484681273643740788450985701961150633983377746565894946969485570331071527866481922105240628618367971704788891106811522332811136981723716014058993758854612433550815501384229967724389755948672870465556436454167971896780856175012182223171351638535672725060374831628103220949655050662854685944254553322944602409471982445927821780569017885305838308487473845021384325337555916815535824326008191928687480690212900258494505298693884011401491826237456229766136504492251679053110175598329172759138688311474256563276728691015697353192310995284021493884085912166449127267751017801535535387582486519322330363630484755750569842208361129547668826511003308330326987994375382495743357460202570879337835958722862204617752405409337187154120892419616797990357304790254631790317461122612114495795203028721597734280903107968180048117697316067604214423789725399523092627974214264613739348711165015369194925276014393444910149955931772539351815019676808833831628470941808753358398006748915390084885806278994579288783346288178425046893961535491082358161465877316907089940058799356068493607245644983627679932057779282191568483503149618541607787304716475019175483614283075106713492891074886523808169014078593934758164537205379641337868908350403684283384911977183212451993907844332852474478646653299636577719061663800111796112182251534984670724670712841290576112099153767509409755952110885318390366637350812411605258370485958428039343288571055178393079269871635508515912449917070583992931723065128608016269724203893204553573491626793449552877120537056956201335392154582525640049514643531226613319962282675508087739260185922423725246699644932480686031566254951191819178940711549956266276238476793156973860779298482559234002324658587478232711761685111035082669453388638366047433380834731901819044260493393245741637427297139761505635149800902762300842685226980924786048159271252102743046393077135725289911153288578863235986758843079365131437405015183128423850048410910836192055496150559358613869588121208231128799674167938029903725226869209894297759774609082982367032097387745268964030643747377487383300774953060794790571092864116341642452212453524343230868879242069131366692053783780472843338534642224116244444382062707874504273837694541402658757412320791072274922458733654689302807240956623177803456844343599990478980106473400542920657838668224825015350290983953517334310827570071963181377955048448343661555267327031757472277258151007013494451850168575997892357893458291950612333588733021925876510237525801858779866305511602811829863667077752316126939899682914575519904711393644424462557510267165455551357396265253535670716243600286015839449982305930164890696676094605152964116314370999816637741660472574784170098168798844184626081982594330668575607570579622453186770445768594947356333316866642445222039202766058453756328608217209173731520224417878769149371967850412402563443428935951435844676901553483960478188551509895617966010452349494223400884548492406794776848582509714781696338123570963315720614585666533341042409804391083050221343029654329009864348826193831802708422525744166036976029895128750911050714230566747317915346384400870587291253693880107918737678984020547154081575863962288864625766678607083826626075212629154661323377853575763682746414531758376490347951095074229540593026099865115209305498225020075072383513198651200292870706171275321581056873741766267550051515041080653348480388840525840844681250627841343408833443228676628778727577068207820663040595912988197622778617177056938759453696495481322155264613965242641734906000845706284049943629896791156109201226343324804390497248121685917576002656312580059084636361492423709301974849352773241281371673616349299589314644429342373120896563836825388838275586920718437185256011084998936806306808869046714610842995715353682537327742659852542256079454787880584996633118857101936159466198636556718750524956854423119606854912282919098024312061238320739305340907290693459971417915250780504918149554335415939447958664716222600644096605937457777125571833675796948905783843300747538937788328133916698385959794402348029184756687968936717731075953082481965371743246743901378548409955017919267698389409191625541535058023353372477137769102689310578998354483614109621787166192609606669613084582485933837552426323948100356107502935478467908694813780532640190747346404170764870207647906619412139815010192524459261853746590431855887048137448465399745382726162709255679091414647445259483476838620870512375808355445509397125633768959118043010001124127706018602427610017378946764722286770825609667161765466131434904349176085207528657039806649127616494903052732875428199161446461061489444538020181095013940592079946054272719895880194489931362244162038517278401785553234082845506563265473619417653510003424662608074504232495485808967393654828528535781919378912474651599447994922724352618096275787278943193066755353076663276405953225069150918379687737538081587504705608800179476451781266426511485006500963291876746796433973184176567088856567869554514888277142533582442465077647063771861617013987827210938436100291858693387091985982798713004454678545052153779344777291825312146117677957581652939256575862352856691912523565156127647733292314411504519586301364317034406055837544463666802695139113154160142974272991916200935902544129826239368365036790237038103122679520223861755298617555764804829850200693422761291575937750245620617433692981879855147769215969907654782164083060608167734280647589866004556905269007338637916865080695574893876636148268601361756724398727787778946377872080439794915199099751930660584471173857534820332342175396333716519418642746716378087423809072529749247231758235844033765056943150931507535173065931203711108416336179401260971054196101647066198560401136319663255899221115590833239704901149954428810799333743218285691664965666336542616995145238912810438018766674083540367069299025924785068641240942996447000984057201328773202575073404651451777343846986708057547280707946116585890500216063096522802246474972387598600581710693318414247794921947259682061544660913080376680134146670382982139105752217089870526813139627409247104727015204775042881433902382529870697667334210751214568680575777413542631049846752489432013741752546474103003287322097827780818789562990159949275157696004123205573964834020955976424756097199846015777532942697934149444055681024492417960584047271931340939828933542907735060449411559721753265637185515471399724594471509157303939089022381530017605345956581176889311945457580556887636953904639788337334486506234647308096608176889108180928494021348467137391334967461878636434564252371883884649141371597958508787358426467884654325938438021881812050538728018654941772951979291551032063276615524297827822416792738393100537951091518452974166810707260307027476437594906866209612273445425146605702214304487051093292443832487874393269249451877852331174982768893657309639010622463207348505751284298676896303093601211966012927180341694223555275162628761348551376377965299035585535020431643666586128550214212390797039966700027644137959925840547878595488851083187803282934160373564114092682608539223339085731663415483418512452406119941466007973014426418396141336810534871316877142117581329396806798321547071727554775694588726813107495507700551908334924745730639117903420055677374220192278255449966377933452192039904116675163698188049285989017715190748583979893986358877288657113904224164321995552663994576862237930036607095513714645703063687519124842214108632399607937289061622435355661385093250518578925416642264830157345145501165176975507785171599595098410301325004996942690143228383064487737370298029157838291551003645547854088816511885316532924277416476712898024585863972615077166729057357769283016637302884388570922553436547121206893869213217265166451463136674602151737689859342482108469378523098456162109204657715512205687912855864499451692110025174829764934577309094597405811189996968483987935670123295788319508044319756906611711021587923507098513743233937330859661771028837413963618960958871822937671880202263371598381432793482496617431213422602853556249467064998001224096439691502722012029952427498344113128832556535583600264169134888894160652488862936403721246002394043415890023981870848553460353150413085431589939813539864524854951433784313959747327497851677675734559009391059482960532526479110890001356659614907796232901951820294062634399263622901357049876126087958103421693803234920154758958776790784784855811717090153132019927995352411290501201674095144831617856423245906530610817566562050501599323263437004236364803389513778719442974654037984560446085910258080417054009431116063357979838201311378836830460473597235190343003272329194498972391115165430955758022790471390700760751396689032136948658952128369868369866696534670631636539667030041336557760749098924923534756297008380647682712221650371563384312480430512277741216051327694496910678897567814041122047825621528335261563846771915259115539573970861981411875036229858652948057562770968504042852051466802082102362702803692305886345599064092676720235966677119207684178851366408249091702243608184068134655886068656898008632175229275745336780966529567472525380349631868262001669183686557827595264599233040253146065232188913953250593794875458308128363870448626718585096626680096761394388387387728792285962966144778402445417113312930842727880850219026293539650487870398136983028102909822452861217233232759859585398430251150754512354382267297299595477461816297210640168613076590819697142807593995351653483653660644958709867353617393389758599316010107630027330443514398469069377243837364916330904343809911526622647945817804448144642866437302035118097799852335825724824294986936440988221660741461976691893728752857663061265106022182358355205882949012671928772694852228317247343737183292124280586714542249987297825287465305498452340583064223355784206930920107529113761754543097253110868091961215546004340258522400552854899487954437882673640697108675302209216086390969318924956986629634768442055119177133160527971591540371253217889442329427434303629149031916686775587156889989830213184109010843486812057824163261506165494779087139831388040520544047013625800123907509687791069192801413866513639590866289404581726526850064486459601396812043334007158248875053084893779598971945464389121030384399289303393040257835628890744859871071560957379322837719120978260112826943808616276206511600447086491248495811804242892726863925773364679491152692352380455750080734695318778833955984982950392485590707489271329359772575148095595866554847331124087852608324757472421132281564939792293073797692812989709289939282229081743447883577565655514210878528157255414731166826965269037508220179131395333452733912199121810601858302174960474333424073097768574600537032946296628770913797474093825057311840623994958018185128163381939922981342291977809616239301938113680957853449102658987015340142256526318607338732762419989478341393892428009278454922459983794771057845614556448541931603476637590841408976449605615518280399941718197838908523121507731852949429189488925159586476980418799821692271192692435579246341772431156826959090508409764438659200309944354897035772054133141681138143137209598552917187201390238425452262646675691632521231682710818194299699805261362566179369226352958645777351031006175262920211570373102372390454767345885415790493669880353645061222304527524318162525452927292791738185126328401062756265277025364025759825270871458050876699467220757723582385989529170163550698068592882495554495145247672746905349673967544302971933824314410097074955954648968206975102565394929241270570002849333485715316708676147277036812204513963769168151003569518315189486464102871968467706144901907444529750969667687902079132107954036179038337262421701315760798042614246435068041381388720678744044692918538436330599982903723713115154029433080407276955194190533944456667814344132226266774634192684213576272363105788327462185169743346483206834173917732264301234774353404192636244994070027890507493250285656978881711050186598876506871021027551191960788926106006252371398981198029977950025742283743904107172657035915774254215783840313416766305350679161847214124123794449428346179622309084171500381816236385927987908421303853331743342979043736959709872759787542770829159743022648169391776234929693087205933853925790206873242283224969520330127137605011208762359351712225101790023360345950488189635501593953868299993161639395021495355123673836476680539186433788566092135583277179871416774025190677846743167755649886564769169294555071765873408147166547646477258682155435959212786943140666802694513072474107058111882741584661322305424303723726153615076653732450139072966715495483011638488783661792637277141639513348408868521348096631610783359576922705420413436448248348372582412035462481204587836046404674610738619071292419605592379403891612746381202333893859681829892008049201682765443698960028982326395334116228870565523561272677986382054085898529406820955544084076360349290124332670112837267138194984106617940545306911422036766463110066795421647554005144396751572391449034205259414398196376204519784280360773898568407516910137072007409647004349833566064962023965340911511274291810863446993356495614647579758476427067392429916116949550689050062224702634655494739647990957829504773051119986619167026710970987719551429882542117444464240579744673981713677886241505259865898080808836100978808700208699074661648231426264541764793520494600478548012536934954823428781398132901937684453911322044667365081471250173149779351945441376891288277500664554883358812188903888400137285150108481603195957948158477508506158652928107471870245165176164208200457987558854664646349538698525020605505827055578079385492353825352171013100666517641784926291450064943059471195609776608055193397580197185174650609163373301468724144274198741396087247365487746676439131415355427815500639349263645938424259323134690047704299764957049644677347709771326221897155733488552360090125360296348168437760844126270989105730400251183772532177078256540711738332343806673224655978512254452609117818497026758262420214794123964432955732157660347421568749199301474526524272901871227644786591484026106518862420473037621291449991028264004054832820697748114128075149446513179444148741340909400883140335030896899589959787488031484243671529988607262035263663903763204775744793292221619784498745285274578999668777449466072210635719539563120392190170565288245013973793002356276950849283697958878232554803754884340071391174900885362706751979294653707986784190257831476545576167233199760552256513612860742007934671973105609531846463752908140177150364665249631982277827593378967752579760717048037251129250382447578669511084535142821698302417563578931039095861645225559408905654909874349164848957689013933009675245956107863818681759907918746072697038883293816994664138481987427245563193692258948819125612382446996494437889201836046671820969180673900126164914074182263740523871328322603905879455952973055897364547570819239528689503366468450161737721126226006498358953030508705867547232801641278801746418504373217635175019535333201808107256722659700815876457799989893973664821607329997288966822815136452558687358449019988005837683805083729777835789106775727375390962684387504099929621107796655106698178014985808503661024314723045380340532168459813990859136633279192951806521487361097078090993616551219279347731554459863718887914129592794838894824214236863708945052145383139771886309253315076498942236339450106213421394827172756652815922428847780609951971081088825683020692662043552603551439956347414524645943852240049245571201408040077101130302050287505832128434021032104227788049459855682036040830320427757705615779325439358897234649430074543851468868136898507136819251811030320217468028297549783730507535684246992986001843759306694521289655061504509377780744928900778787623411841618086671857815586640992670353739241778295456575994943558021658775105967657236777154435927586925138735479344770101771069558294719099579933853931506867700678502150988353471823218621457208309726192048346824645386544762545803989594431607319993856261754924243604413202129612505318571444955816027771514088493180282882890886713025854712258599973114667960606596163743328796009890954206125488627346272331898443248305636635829833233525154395616463029571385841189875270778922093110390797717959455893551191291953400982201375799730461693670377937095710883769910203462378812196464129780880771726795320651561175582456190164937113510957287268513928565525270759286580961545615334961622211382384627850760808242569480463987608530654647297245306175214226566998305197600034455813551459707661124664465464179653777581399114473107287517602651775355604169628571208207053629215706458592590353881406980106505326115465041568736006483486293612017207134522092141622130921717828553903461353627636989497878690867826857979462051644821333341869939853357670519932167081780617465334875425844555088654788989436145622557265730332727636559061531858490278234255921389644601467936121526189662143228858286356671496325161377761320553017195613923616772505997517414256335758084272751278100081068577119306266712856841770126903174387190979094048599575840839380720558374874786074626820975110495204595950419015910497555680122312155726262565397731106901258757832071917916592070480592035619226469708462409473111923062033651113661182122766609567495635499422106185665887932862688774823849458201210961155931297006604470805689090551974795039632855613113329029546682424296075518874297996973525222682900759608081318476825015715763562464499778574041970597078081634340258707681086761969052727229172575902375120996817085644730808349227185602943070662876011850709076183795187891095304790991071945582044605785571004782182036761216991085764757910672072321769359162515187311504420854258577189906898670918894976309875416261983693349286935467720156262535012072431031294112989709512441245907903894710497867540165562057428760762500560843809911872327936295774082735989450468875763173357413509344358224017254458682774145167163084199338949622506205831335967541116159853105047296398624732144079163658569424435214857281486391898360235806432253033867882762080790491129902433369979112903487324314122174125147629624405149911778659590098792432544631970603966527957246807576182045109733079126982035610303711446985845993438639576917208972604399594577341541251859245149635709973608688584092550303796992897798073257493209620571868108466256827363594751995239208879427113902849268354425606808580707207975751127608775431302696632892855335356787787959883391153215810671467201191278176257695888392861575171773444089538517582281667395399794109135125141118659305484963959238796007939520875619713036236330673571620685151893903607851433892304524311374303796505539207154008462575128723461122473480875887307726390866766246798654325847448193913480651071706504756982989732207020545767878080876789607254686862405298998365899950240359116636377614019130863475693119636182853575260432619152410212655836329534873734169147712331242934542366567360300331845658854960709859374734912860086213408495734273689278817888344749856358528659141504428139111255029083861637891108912187219053803904502713389474023188621170781293225921193657896027635566363472407507745140170706250706424262392665239139614729387509272012944357170082034144069474398895853202703666684830112421618064651828880866046106393798040301964599460244180495681673855710886990678634652849972045981376937817418183937623073826844263959015680395372170502379782623043289580554616383051934862728843217512240875543926596311871761301910067464276199263383528859352959824802927257075468175165360399249507465052442757554670116873519450884066992756729431327106536225608420847187600047550825268905421401048715522846348955089464300051304472014152315721273968429603367280002504695171616695227987870784458934156419498869755573295540784711252041997142452043366263199811651624151423757379409452727587976816931329477094051074718311690877346189554078229963344834718825844763809718578832351589265249996344147724954640998534957833202086047573457829406306901111013849594282168907774315754084300904911024486041738346890822841467237317821609479467951623502554253023149120367869342867483324507336772826684325332512593723830213957197563353953284852231642801655238221795314006417727893658113896536170496000619118624996330875886778505428753090218698044913033515954043061049932684500951413690703886649559739772644695050802732774881247933034455601722788679049685690221797110672485097748358297676188398417430449666994271264013677760160532887802924194516982892554660868458318621475171314816223304270353314162614577349001328740726317772408964312100041435772128261098301447954599145692231697668995465974932534195295216008307428839106427756183263975047348908036092495358007436837780177168066924134980287039350206364528702531729687251426132597734197337967217900277557321394358380720059375547341216528371471507530055171707067323162129067036010085841573946604393950887225412832063295918418011841820770752058539994358367282219485138518386992665906999263398076540385662887153177572924791522850680286792256365551082062157421787396027729331191007659066377043672523009752810246318878063363279082762863238560125768472830709813008599225702561659311852159361605240807440124051167863238158569718726467243747518493685906482877108369482611110037240203596707368571868130991805730882566009326081975988015393724316010302017009956965212967215847970632977786646023062481870879583281646517520278666827219976910404384944833933706994412155105358772217981663680757540819613714730203249294098588740541722028913752875576152002869511599159275597718279780475737192558505275510149549969595301598472313814562176039083541122413219998266931584128229046701233682475194458993037067310338273221299167609069453960444894479846409477893959376451066677324677260603046933305619569928415516837389067446604250609527809509247953925304624222122151104152989569128403727014975082025507177092312403851702917891960747205387960668624478973615382729008275947722019383868260131622260634166576232422830191708558293611064531336845134363186119950343958949086718905529665279234856115927235086697754880049733092624087728400014439831320777253188133307435288833371509228674953269284032967166055816893173197059658641600797800427782626953325431769490471571194436662652737323893488670630695172825051223659177825919810510198900288452634358816064884711774604572411337227156919718344613873640608020738406836585932304633517274755167894935130597633292738082353034750982256398526894830539249053897689935304309623794805446809053847157779578466839813886471564678218280962021049303565841048126828427899939405371703070312684515646899707821052722794157688298873485546298233279579626087442862677278881998322306531807806498467758505728655487663209016797357375903249659182142687457651695387952222950059331409025088276099867912593606662868824483567762464617377028331501995418728327042289610936496330306034061221648014881280133035728339675761044649689998606992798680481598734634184442991707035756044665888885077006978167886710905019355566043853418988220919948057221634256043079926853030302043997239645659243379043293062927449321881780209012256088920097861478162057911896300209379254416406751671262374304036936212404357116974778844088517713233390742164326481843869531182433062475428393669234676302830617755323219197224811532807573565350878881640683442850932110670680213340324724490350874693318457106749548237686885122201900829166099646572633133808355631050579320912393602419950378196084759000258443809810867771697196881233598859700160297430783973745905869304634264287745010045274315187357473118871811657419178717852774852158808466000542047924343288085913962778886207381626684294922028085092162068838891840471297045592042638588882517371738008897241622051460333808716294285526581207719973811049016657849359271325958755552613556014221829179755578815552542271498246517196105739021556373568266790591655341303625023078138109291496836919216711367826508727298307423289367003432817667503537855000969886079541573728385449826808505949322779672596254303582782107968815298983577138698692321165283917614892046854870835176299965056393880395577604541053647396166202815421978945376915107043103118727437752434546912533047530583482633291902305471135048079720104647747934128386843788252843642527040747519798946980410880946995222967276141716866693400174042541539393330735041800002853444598262919365834779038500035012210482020428774703408370164508308196661101195019687331319471468657563823259652859679346255490529208558752871447309086812317341377417569362021378577570610865208562677891649876620697006212876239599868302343039954511872929571003469750850767945973152124184212001913782939370305392966331981838365059709282331399291983428797847986580315532270166182363842118526885651863731260008714689725602744480829793567861493317439811696071287126148450810574916469181266613824713916456574554051197094304484995339979684061340298583650241534203129234384401035820477961690556430370956061363610070700104065850343247632254203660520853452594712562252721307750164230669647280683829663471844547902171141522973652337549379429836149838528995378350526852270374005616441916181366862657603745557215255585344897629658437572094852878372098419531882221541656738462470284052639826643571373649909236836020911963221750316288104185733718040366669780920744787411823913657401444586518489043431335103995942712026975953545386294766857092184732250338924728071381168892195203160463187667548212333458322172700467946934305113658391944275608281541586949763734386108692402033793258945257925241118910540683769615844410042387801015674697529489617390431247849654910576411637191793300516176181835469169562324613106851176747922051396754735202823649853049031859695742283015291984503431780777167743648856627750053798242802816086283667824008719788453477552930052374679514535716819010383902640967501503028154842983680024889524362900446627705479773558905346057105334847759620056498190216544377531039793441634542581383889337298658141309977853838054552418281993669550504745377622521417380816281648511258093904779493251258820685694247910779318190378387456422363583082127138723003512346707888337797063600635303960110304773444805495690401509226231278725459034409074758226573346834781018797002351764058169342435647995764631895853735105637856615667459504132678834336557472156136329403491774483333682458886010641745539405522236106192902867911548740375149158108412351756711537519578829859997546837549176782700046882059664496466048720808714264633541088628879956111569033972503405620894169154055763394650860214309174442859451682923822429019305967602443141664482535103259366586442201177958564125197429894328942157758502742416721704038840593569053165952776319727375540861439956806956668052979978835431061524474264622106888735493028823465319764441564488205736223645926662684461944451293476999635684541497544369960405876161317476354694294333695516169481684898762080206367097493941335468028255622668649208364034875488108528544964881080782699319775792303771230590160445632589958167467484889366540537468881188162512393135803902286606015205296959407604719899748122939754238184767857919004962743079887022320916902870677463887164434405097400584147859268251016001979036305914873621174872342020358722675492035936222554890226416991146046325466882726916504045474733586446918805917599874914226419310800216963077629171259740292538248511758161475180063958821986409283859822623101756431018550138910206306163753638801065088193241735191009292829980308976571941686795423421956208842673386454024898923749796064407950383980490007358552095129961609978645114112484828841896316744768897653447087495187937179773772481547025928710693807476542878230441427243110027960373332686383588133416969686341708839835248631341619530786565389559194125346691638284732026180512722622294121487795569134409288406885664994887427247370882559129997862185805889218332640155065609195274485009908379292906370123789701704342566191903973791059811422433606231391036539830225814377507977699909486270159158731621178409582664125220864012264179126431140532807964048896745297789411550779168055772739275405363832982452158340827874001039235566292737126388172065834508585644947954059837860438427968044843237502623630008500666497818667250825774947141508635454644821250112255409188065480232666853525759808477596078405922134814571322942617890017743389274556415822803685606206017669927150123123224597267612143884079965792033570911001125072023851033427235479870091792037527611874241450456959103929013142711080787410777547618629659138974450540314754871214929669604557604726734465967509217242284292194261566859159627543700257276542678734877456213685106526124189372425850437044062067350982438611651418641620115359575472902031283984486128497543387764105772547645821603553671619012929191446016777866823961169696157863685123764600160073208200947450132437985527317140039911631688713075977308458366566673977681912327809762084357777078279816774105466044163103972393396369745788506321715817559247394110076017849735513938422247993330758249594490541310229661299278187977502188918612748951847105569208265963116873018743196371363309265006628214973717917301184985367760747557250881193697009737114605601030212914923494285023378896308398974396103620460169418533877916082969118456888121642340076220769445464841997971677632295542832465348056779317605675568747004809840958790698458549084223951177703245939225274782071410801413922771374184428766779429139823792047359969261745350515436979355835224179133074525124517567287107437329130858876887866238344222853170637934376586649188201254140214524226054372988131779590246139516782776142250748549911485831744659126497317334364159591067409847303868530272425599265204618600353644015458529191875948499582163613921560217236960083838337491210908444164810159957832011635344462540250021996214874134710514054639966580475256356336990012720139769994197957143604720437397375877654295393153446726960923774513121282384918597155139079528420328907088979252481915182793314066709475223946348578442689014974353960340650136213979971895085247212211775564148652400614423564176971666526927361909582953095700229123910548246430684397160167644143292426528577842473871692901411474866554202753054225201013259886303397734659662701418160570075249447352360873697292371072601041176666974909413157417306305856479248845248481637217128199703273062298801423611726889180719459114647543556504002973775738734965068184025970551858408420588972083212735562742109633546940684477301693413153877632831671825391295911378173778575889943012674493537266129783855279818711638776532262576148087103215502739048155018815081759449823156913172714002904856229604947582150228526251302035042070197532364170165866627827477433307272300417618458284308441894590612612469518912563937969975031560822726756079528540664269867450918838451863850374285364264384037798529966761766107362730933050339564437532864458699622169078086971009854483521808947746095910844863339993936423103507034792226693590280049702357300213087420968915661699756675517859346023217731429521607021014599024689498855181535695341370810488343727339180765330074454670577764844746104248927711496092495788521730646527133210841973945236966905612180729206476139331667418042463532631513779643943424052162013958357693134823032041057213993184413224107976179243846377094950288479148648974095459358699853879066578097682903319674848173390250406764579577106271681438730932231658715243648843478988646777428391909792977878879151645582060946660888163114090252112287561647309796784716073565670685070287979680442540544984325231204915413294673785267805685745946292064602556339254998003187821470963087473739157644728515351421440183719719766604607054481075559964543408121843773404864322269754846764710347028922741704371784247843430107716709675887264419284005169741755456062981577554132094285704346722381386685108413702730439743084842868551122566154613196771557604072981810110092652256420907288189962065864971347803410656229100112400541924165791632479558533340589094167855805698022424830145631481773659470772522883319411702861330028840349315489874915699864416974265434478013164207795533372956779138115627052492628545771678068347682124316081415211920278449060294284887074842999583016347071550957679766278637589617343990968104610449854033604553240354845948043178460954182421782818148901649047661639520627087211449479235644795750561863240953728237522369905209443855075973073817091424022567028417398066187144581968839849043141269587211694348743781293348494268932580980636989953753771077301276689327436535886808633935487667278826831012170277032319087185867810540428307178688059927403238466153660079534673736387850608593059491406208207933648323378133822472757506933140881993825458723795773210112733734870298317375274159242608585317279322653093403553030254298659315967690639677539666350959853227980337692488055918742454460230776981251663759312723812030812719875673397937656852128773756355999875963716541655076650275090164146728032783670293307196726931989762296347468423711459868229141049155683738062644237413757107414591776869053690697482444058569703175604890726367714100321714015783054021398165302243660196678696919539016694820883258335044245008287819096825339740381954248705901004965224779127323198260916562783580268128383364670836122432806317888406748632992145863588343567720744727234276767172626232849502971709395839473815803656073661020369935526354873456790861965615600072063032094057449392089272307145242209727975158744550260566308663283461760255010030686146718956724463146620659243793212310325348273780797295318415220902469248256329198240345497762218946678107747712645252282763217668737134134721676998513679025689369851794896172560916858310580379758519961024001313654685647627274461310926618818959798892095280409804139785866199221702834747940943878091523643198434785069578417161053804961461599518829353352185451212047318244158132831857666019220624551242326967243432590682662950117482602731196903830978560068235149675585309096388172531748236955085677148941291843046951104718134807040349947769877210099261975790008239356507694431351115781773932931191646826018185463114692717664583537196720434055462888920991317203213530800032981895438417420713447536603648212545664688519285294003987720868588833556443705108926417943991909973997583413947475366630649688392123194347912878520286566706618086778532243699861904377290237298809987256971629928300008404802651030755822690333840386008164158123208591884126310820000188381841623899238516252291239891325139199742966413140717687251298470804011007728662842015372770441484840809451655788194060152554574675871590287324417758216026328246071617534218092724116314361845208736271434580931923462318060245200355055149042279656901632880068497102874171605925953324850732378065346344586978510182970812239637007794351574716493895656958205013839864140227042808127077556949243641972614658440133680545282142361705122672732159911853036838557823924496214769236050272241588193795206192764232097741562682396678357717569631518095867502455236431951569288982093491544528277009549140159035990722409687175644539645640997662671830596845816651063075974484103733286448340890619628126191784581132008166098959247613717844718325919434719871839480360608083039912794717057702221868630319484274669185827119402768050076882370810109808675440158047922141324901452238803666517617437422258934561781585479105027557225238559303191071809062781205231368264775896417668228369841891953645639375813543413275893958530646169753582868746339179122325796198925284987687489577461196735646228927662206112836563582301014361550875159689623146580725732612469587367570154214373127564708533478925807505783679585302345111788665252677192410333023443778642837626853747502701637510779699872651238013273246409674049642079720605276773684989270857358175526723592938344023304445219179317760878660629194435759142509329353132344201563239121339130384669539226496159575632657459488555350377797623143212745662200479760663638638954733090752455208978993244361316656809710450371739046596872339360722868973945956502911916728225487912564506673838123489643133354275724568258163685819641005104708101072460230232493190215292443557262006798759046005733168305498158466574234511527554300690463328563138396299666827431176658081676716625740340070636951797725078594902994327897924234096887938570445687370334297097479420274728852106859610905836183553529391641904476686617133866728084980295857082446419717264754306214404417297032443527586443956550989969045060230521470288271560991451697922700628751597162556094438368133033866831555604602959231754807611389167264556167741003395197403106053865924833059465726167814789529025058691113817520288870801740635978657872967604294413790595721822911556652973014459957851927314414882294340543131133353712589409103047274892392729733681867311987527336827286745994172078065801176315516269150409833121403393978926161667159862635620224185959199597365193145978345842898521407721634251018614767345980540733455116645739904026465574753028981342763655571939623427776096366059882381817350319181343571174756854116590022365603829828185714866388336740543090140251742236803405939261295416474506757930798446553469928906802845849188241137811316649071214705836289524843251011570755517334625151858866733872370357908995647788337404331497377161384467561274884334819980618563517875590142561850462342762110112475509537230602246011213302358642403406611725914502732069867829203215387125372037006205064632105510707159375172073699931000291237293507168920715951858537123133285513490564634208881138342491062176722732288383855246015465541627308757589070894492060241551866942611271959232626502541506573598168944680253836772074512723007361048002696763754178757162239515922398958922379709446998911687436940403209657004995941357269740831567430360530117805119174512854487826013888720415535025732159014154667787879488785260760968535621459582973939796662179602660978031470989995307429075486238237576543364833441613324782294223976433881813054275401553995099670335942862922917909891418591116202002855066788674670210974689402110815115428660919266609414777579119105526695710498499235773073071199499597464528215590743267245836565745742633388527905267681066322756579542029916298331478333412711162718583036980923402354423645017104506550344864660734912731357216895684575230987392461091601617571600686355476791451181274289031689246041889416484246760193421776932746558502325575791957141103734822552302042779627295143428191991518554179395051475195085236187160685042736157476683831623313999529224298540365412470795231157926607252190227225972624599748988706508482263805538973858613015532256404920655282444397517603971613164250634737577317704216554157049917848159634226905920619029973177212246576373158373602712660294617235976577428891276691039988856569403700631977176873037135256133498776583331795740215342521209915325120548262618961520371946158139647036316697917605422092578807487052750843818921383403199480005019329321408781396064049282503722730942057538477446449482746382629520547840246468427699938605351885278527517909235556885952279400910037329495994946324268074080954648188212153921536763176406346660853504415868392362298501611687975556181613811879869640368568480544097230437518217557888964668310565200704975580022274876841684805364065768367969019599023203567346339707829965283444103018099521232582066357026681765838066003879125409994397045907708598507782054980102139510105930441005355123882638614001628328746169905178175808036455823213217181070094787237110503118765628362441854844452068633500964744051709457388708625091781579254938590066161757266111173633724983186191600211716968087246658239877657750986827840163394603431605756659334702616788975815133489701175522179152417822517447262638829352627588337071118793108177915653688957162081543321755444012328078071327356529284264088563094680515520921321420717790047470434736365089225455992636007860509971602604650257420562389457149836240759107671574815072810631814892147283869235033365909496622359737656727623571578462291412191751752445702974801961738587330157076328251052053547020112401205867260739151611073457433222842014855534729338059093263560720438911398109486480793435591219179900413626551519912403807945661876070462867836160738570666735738083229883378204116134757148439480140971217515262136793984328173174639585693864852907288673149024012757258513411951697998480716694237050326824563751989055696561020540545007220443747195690666509034241309194651040803769825882668638718487758677410424595588115375541292113943910786950725612071964143243175024406069151215946365211546389494271448618240228855077708866619270007008170532321551150156947033700032329349201773769071684912149615380239256257868318914185175457988696679020657038043926752255134895773269019455274543135032640381364310814721014402328056849964075966048644910527968806094379068507194818695515759928137887771273911090150017110391910019439978615491331226127529111420365993573654626776223529227918730879017626078168259283686572509378586310471008462778718438590504035244503062545181024172298938006627384156611652865784682011973006861681274673550819806927628789140464721698681176722759566881789282622773397138170772313985521797786155886315614133102343387510369925263490192515446360449915685657562716028649518754434306356388851433668756181639572546815862684087411163252100196848122900826020530832721467084094319269594393299730686827750471532678726764760011663993031477232336392391804654107295635499443836750723748492650977255747305095240742342255489286560033565007382256490892414698552427099995630724800410460193122678960979323631556117581451620315825055323148206183074154704518896721812521606032072874910239539758898924466254639456441022382365176911526975384844104615978349749205846483346263912460258042025331441211340269832029472401886673052107561645960608783831429716781451257771854009533420340603020381121386969060752589591086781100367799014948639612501538305384039400764486303695209314557530802185637586456343384024911652556071526409877103330193068143686635420515419296601994624902824902942821650257755941133671017781238493590285679068700670635370180015497432075406713332115530173720848188692433823714468256828019343944364117317199641230114000348943723296655338445347001658026797292552228320177820709659728821688926595843966011507478741819309916450017449059778895777359372597924423248011322697138070178272960025627328594372086847930467684458249604932003936823581761872876971276785969083977694147002819402872359899338692605488464428723934547860239153124222851855414772632619501207934420016583619053965491984028806162896654357242774666706926253106159004492809006045803517410603202840245987290943892991041358232940137120856770311484573357972459692740838161742055925035692856909266803300650811320807145595510933823748831913428356940599636812860413464496750215965563617029768169088518128761498860806273896105350537143638915907271526019896464398852915049772622109260762583292546021207386166522020303697137333712273316297167162487548088100494339989834474723627555379239501568847738554692351254704012938786401238192759808588287076314888543224414854534832548547354784432048217057152681820661293315671620241148917169435153502393752866225031367216924297370081427001832488670681513311188048996804614914609524392859672012812193046944451623745484170037151038446279551536108413192631196453511091651091139524748327004281330239221646580021006767302602512001486450323123062916555005213255720137705912355755328029457945545963021832536064239374411950294298542989620370683686955495825612905305216645198523498721828006718241185389473770424319821075965708515517772494969475096650761052308494614670102432164248428173227092143999021805488473249078681333833087637943832325659283847458495899889699351899672466392291301835744678302943460757571459893166784956099719331438842872588741008877680793709687430587833707865363579616263227150043717550762851972518108415368255105963809187291322874505686471017887038295067481765972954769292673102235835223930797947486123805502275830368871777365235435446451035742884028156598253561981389069080184139857877161937766662444523398558119810046404493131100167293539409167541120901557228586403074221340535678616516736617748789614279467770172458362526473555827574312360600659954686254125743786014708311191938381108296551747712242953963599984305586162056791687703946416841246543946444958336301030237331596013643409747738675556850669993765770773990034833095075891927376286056950807187619937015328152269406869498869578884792354501047012272624826002810190929032542493797275442080458530690859151302438035431784000705562255443888571991740012001009050226119771896670675496201929427498434397464978393415245288743111791197380983960691811726643803045589501090906917551129996724783375776073741981085910506856027614831054026872411521363854502828332104800161169538680533300542530135777491713843805945649240421444412385250474874359002400430259956265256439689271456194144910762655329163989696188100387298097727316807750505822609906834372877422256228615858162712284620476921062407425273903775283637816246097675133095692223514971875906234881575472043429079627904042037386048689375706568284292194777463111718560086380015755234909816239348056809026224379044872352875655092879984306090023203545543321886610273304992552001814801413347449192404307337195071858518091169726762776467766085910512193825270372678440678268774785360253178733167188961097706894604052418139821748522905728503449902164379551427694565026149889886846561102214621297102623910188079610553977344702249656242570555841759094578284491658769169692641522621367587988084870853500962215244844925692303910151332013489767071795240940500060036709441632331482595298941281969170071801892293929187956401876167726229883083865160708898054253811952337204367625507537013411898355586452868919788351964581699201538494721363719118917306425625258877772858313035947443215298066535013575881666706256703286006999903744194400538019774283024299400014280911496323761961452901883740775296053216379358555994881344022076706039729124576018140859768191994866341277579791373531872614198322645366437258013663578154513194241745513334771629885752926008441244565692718571490782318089195485748025672401645942236676034621853835941329276518864575191871350816861222563193673386856894700534671793862221602560072220553962239095418152811760241767052307374455338954949800799286136763462164826848279303546307571402010733522432153696439482783818399050834241471288533255536185347455455042726818655085728513262802558267071069810669327198883197172076828922890912507986857253498265859921895225913468963210113104995074580329036351503661359451090394834453815401289467486951482930679923813422561338525966013377778184955889829090589435177312909030698871217176481107076368356583181979394344284492633098547358350050929532853520091622881533366517203391658298131306765185705233996306325693755660285382887593290190488502975697373476075191439729903008864997063951011221302479188518623055975478630859391395134978003401955818490857993639449678945740001241876183794289915223406262434849008916688875453109949551930862182429643083824452077873531733217877213851133270053322406092238989011845074784053138269518856280334312480286549997413872448640987209383825151993674960938540847693024823818680518356344519167688733455636186719245582325510201171542800317678816717214634760963625154817499274831508467375276688806058528351469041958501631439944155482438242454411812691283860568842192051019098586229260396287671658973517449944275110582543682709144061783127306730760772286567273228235376075062287892959782610622942812050667097032024397348763592510334178524769299285952937706519824417808331531326109622029093459635214447437254310522966612161457999093069167231932792884185006241245473528982391725831506920699880474277126759264437315662819758260538032294176974036534387755457753188276730209839297903803326460950075414642500703715612902527643596724782378042113960799207228153683542585877380382228879737622867381414140363844430191242124113509895645606176313739718498772013112891061608972966288488933066590510074934821511632313025126183579512616251505994856049128782159653253274508653021536149121523320129476204140224526698052337947529641365636083879783764865012151624650287375601577867263032234222076229689123224333379921213464132403638958545010062136361164725991745691906605166583789944750193341308502321473995720405725858805187904306191234370885304854727938306413013279536939883471725600466178685269502969728139091641645936059973535308458090237972090047319733691990917241462907585215024770248322222831806630373674674887615188726408741074228324770694696864852901064328180027244978764662851835779977048649012476272083609800905734419784906449971347057417318126778945800656108928260673686780428547273062304252309143976022524627941497787308648137912877889384196027257270104790621889340880544027236628640308665746563905427729841671620395167060127647088756760282563943284810464341448501086896943046376257121441745738951829793654966912704332790721407621731976250392558513909126246248296161607540846941954447929984299208982948432572553502348291318069684002213233761617277410423133643614805290667887468071572500383715361379561819886103421469369202675917293522072114341174287529944008842829325671037949744104001433053752362905815535282510953755296505419312454399519899890969171694558915999046279547175567725319041184481161182203507486012251481255914423622266900490989473610290473462963691761358296382688491400530408220407693956217771036951830055817951998632589071699330892509776747587233153033584405623194916382150182076778581690373708144187394613935992787733328099413547499685414947542055746361301934480134333745831151363596044737319352855579570597303362308623290269863322788945152922612721586858980266518588430751087959074949019730704009350881843033804102596884366691635035991707825572893349353956756192122549914943813347248320881260484920672957232367272431605075311022540186998655739856812724256041568771354314405178158620608015174493053532640589572722523620124595401406137417006881136153440860554231772950086835997422389429707147204539919663187647995676272199539275120741826778038434466856057396917714806196456051413251721192674226564608743315606265123652490287095536198936359268423645997775538488719354922444721252145737832885969336838774484616480886204584862032286877343955104980476995987508426838596347412604293875570702723302426038711535285628980940945450343772875446286741457912203445108456991391608640191854367187853250757583890270070399689703057550028390932594144289637518693039555588446326356055580688899768516529725357417544387086212238619221139594467670554684787926735347965959431192297297591927881974201291954943404756498029893239658877293741261745185601883867044843970056670486599209186107055897297508358234864729436125377097137400099193191076153400045426294366183321184355260949837314464854108248427824735151162467280811017980510459065668489626690224848350994343694306682840060857168083456334846494525412384207402422700010590510445012446860879772440762508308311459536394069568849830967728595378753379213754028024858195916070321574087506102236516622107328800906511461351131338983679084941093267636649767701818416801748732752428611076244016722441823511274750484496961289695819589756958238088906533885236131088968628234465342242568990590173010797655081767420704501210233412524677021003327661360892018973998564731935522237713074664533943819733835561384762891178568245310208990871693974904429403122840433331719155338061148035120234963997712202750165324777368876336814873919831093752964860476897349432414257920489151509849555506084498369727249687641341741060889314863476298523406440425072496005668178991775950455471366732979009013099222524064887009398266871412715593451354410081208972675167557231624110002885585362355436122648208089858568669429408735017988762584197669549937224310065694690019220052797870498290830274393895964050531049650960317774409893808014387525204771995859215343208165087705218383716670446491931697567223619785891622133771309072820614534390341995847484284115813688214474084069135687018669889876482367228280326028276231347144148734197767005706961589832392571455975968094671945800039752786404375899175053593532793727550949635111117819778400542244682408147092446839114432233673216997990987138471841656473838401087336708750112689544888385173649332310525375882983766543178742892939434189595328091740639654748779995668627909203352710395490439786159388511626291282315736491318675200925855128953240921135163044679354833003120262704309847089203447011831477138001543736828798300799625801257113222336438412545751963614396714040536617429755158864984861886600254506864887761417940686030945603594320204068003610761889057829939891586265793728738909533264422094583046611653167100937021592347183729840096093160452597336152929180952149820926409072095164118966109606073007662729857824951420344230846770573886128734200816333432757500103657902235737883917439065983471193541400535486966173336019907389075083808810174050346566840646222830536038988948518764153497211410336402295682574659212974056256621115903316899479618671979629426657185866155057638529579895690824380619260010009535538037520647173539224247393644427259050390762875174488613509001644052375809774677949769836430174128353658434216500186876099758960629240826266420580968050641027658861701376363752378220885926164345707733769427579795607149602429540467231959347772729834606206022954613608447877911532791154914625211201503706082584327900673665623523608293206973835417204860543170112764790842606348990860890150565978938208609547144717085784175398140563390039732487811204346755809679729357317896819498630273547574208414715996493956781830228434109268111009554114190078964954289761467389702386588548090632686659545186268689136095011600333020351843804975161641128791341188513599501807671643205827803896662289391933024548596307288398116772723388415573681877671115931146259071505811498443130784570812445702298211731765830439191954719410596653881275220026200615246485095746457136885983044212088367829043723276393119542603266801620219826305271478526392416850069322796670130564166608367783587849370902990876251054485556910104286336989599579970099174587126059461421084448857554366946726298030435638196001588945183889947295804828039175512336431510038475945156131724198483980084457219277832623034346326231365178489393244803460334711045341342573972256094480465768089600300908299322984969769277222754592471209974970159437902940534687825837341418120424355940929971135779514909095453736211870777992679799768266724684094671791162183459469249009162996153836695138448948950608193430871318024723404889734193388712635621164116442420341886004060928173828113666577604981479109889014051724514933655907042133785206035951033100428357533814531843129212270312013982965368487620577471362558113218253793084993535594966866186994414035634877002481703464935362018677035640872118611947719424886184937305858987049986543489124327274705170556931278911610511892541648582333247617645933274069631104075789699078702219732728862598757296472261559022175466506453389182475849907575825308203083024814569074478657959698358851791787499998222859515318306584270542792472337585531439260561246586243931857901397992319316557921579015576452396747754245985394614901363391894718571106098962856737073297603480725063411577076606058032620049070964132307355472831872556697377498060702764331820790871370174700810261381761536751770977691642793810421263911033014763318686814101919376483749020460608234003571924132411506587957186287368974015058295338227802133760419499285880050703792514841751168303363689899107029590074971671517132436432921305422936440467425909251258643236388603891264247605166981498423166740717914120816884449777231937043768801025116549893877023939305097961083429926840651813369444348347647551186760022974284754314214707560120791465667498435126091113398757117733866766055098829883637612797209361140397214764083481336094879881296747959184224476605586855102046010521795431475073855258504338101914479245480844453813761761983722417431369814346356705871804918231130870278248404000296248551746470196385623415535373190771473813456683167506644288984451437967083481797596331043453398389767478661222563671809203442039407476160049751143915480352870789005911487943390030167310197491471220046651377780344280729030440113854456446452159322358516905360165521816070506330355205008297261586869588344497753701942004131571705354096264335646780703368374528398772861044205953554453453074049307903676342625041759560318844744470468855617347845618495554852430966334032547708803814637437254583804231336107518963548669398679939599719520309421505667809775461203505312377575726247861689845772914960010798561059808762747678583920257771255649165757293102364180730114007934321885507155491461811555796195433896349683779633915908093803067509880889319155308941926845624391821151190767951767863166197229629952474853862838862104922589478319672227299904196205856251960542470109587452799416924742868154158405733560037301793740080311677095161060077016146097269286596824465567752975217294524476040130993249512462672996866014658728516891826345166062958123575602235511933123114856601451375842844007556779232798780645325770665512285155694057094607701472121801645206997339246625801974210941190621496385884643138862356546807466066414957458313024869731427454546831699516263172150608469069331366743988528293606639416548162330163138971289603112394628267225704665935343464915829458576951198305928723788285799410711237684592462276244989204822775821118440551483448542368629491011072489038838686597187299336178406696062430555851910319423045123138506989144918443322936526810261134336800192187169923527057695514668924362206263601364955157615291918740617678846152876855557247419481297206428383049050845728455839221712744549672685467857474597665389526934371547670470673295030870732470810847938410711958683557520212848351480628350493348016910265193657087169351746435510163374080325884029048900549665364535342913950156344561565524206054488146775401791118875147952307555973753693530065556266872773289197674692080827803111569140657631445355169722510400166578426446019605797904902499519078379581217394376363533474802935416116404718493044532585233874364038993931645657670740752270778665505783650469323936619845795886075865994558336786582338930447478438328389626377327396079636804896787182947701194931724840097522071497934998633620631628890249278889721988630832523495820903831412180530441358970657803086967203792184334692149612475939770740090707842606065125974295930339632348288670893717720992204003932952997780831835269122138897038736271806294892413421646906888191828694617771239736867338108892063814638264296582708500822732787218112266619288498869222115708412740300461690955248819501164959977645131395595292666801703794418779693658557431413159172375003702270355151589606049379158708330661385065488585344207602177269619847223971296071113716675422226352694768381738025476571668527552714367145043305387742921116803989751642310832884048504087611804910234605441482047352288569008494184734861936490244275620043224836120779135794702546814462287097584597856851116780308582873206060031038449413529954905341041922669892974806684010539631477451826838674970557358599916669364153866042234560074712026058001894555060491824999322016715533966094726260206928172626642338872265349168516399166529147140806457839401244217355024365893201281892049136199344283120299029735839748834637362627779951043256261567103802200414154640789958010572886288463452501901822544009336342741395717132289392127680944731806496147406528249811024456076894446996115571181674162259566161291581392209388021917064924998954782278618342800431889717627754428996986355171876680801996603582643966163478574398940035848664059940655292071837616559167870333914285696109819084356990674011150899212363356848080597152321936658896981382709177207137245222662027165210236282103028701675844285330807695464952297185587910810246933814651777867729456485945461524198374894724233239797416838750179309857402462768963858820938231997127357699056337430438533352206131087852051577190528157533911341771815421434934964088878398289445034319201352978880837137659751912245740946475693924019231521404431321968046307032521952920446006201177146288628319581864059513568393527388539255198126333932040065619790112315641426407851013725080809044877024270364054675840847722470411197149713058210521735528183948703643053839573252975979988749289971201916699325569258847535325303699331623441415476446678868308151653160562268241780198068193436199239602401046583319584217613568474911226689690084359215216245545217010268662388123908198521804553328181811506108016283596072730576535065013910352342387597925548872668258695384889421122338668219860880634869255687587265639455907710929821409385993419051477612702451086342126259933170791479820781008076149544417299550940752260897556813930097544177848923797748398262814664349272219558259550026594280273081648427060720969713571873534657407594960864926436019090234598645582282068884940161425266323703449715578380028515780450055814104122547735065729046786043189374782307793866088716627492047134519483499655039497038788210254273296656279466343634099616106816907852977231740749148362016332698314842060715732900854153829740073606192480407283209678803912016377637619878447962800509307921474326305534339322136728934482008579565268256326700354718840290474283967184090179791822668404521750010658112031572389652044576333958522765693171305660316475599345440877747879419368273510433903887227708336710766881383824256753717683941793590877806458363041216132648973778616102688001223774072137724055914177861478321434308186357739969203480181267318468254472679811715933682170413006271971722973083226079953187778615678662565404851778901346015342659966040639466048073482473590833050681439812036256552359217776583501878887734908536920263283264668419704835204979683654838582075611159422980573857394898820348106080367981727168590294401998556315299623442764377451180539631784052418845189382527906982375013157994655723204261455576802246649804783555813325632919018837224004798574897721653844647827236716740125925524237521426425084995643123912658691465537802065670174407057323145901140622881453772335831291592753042957638504106990276155671594665648279037358191251515850286664317376459556466141045403756638394949310807461805707349032778749367941962326998846051836012313540488122513612566054181026947119345640762203431855798312234086650683591538360890181053383636901888876471288209045123829403042557438816876203840680485810965374502326922587307680164396785607050629579346906490651215195016659252759969109778249159600439968781926769385864768978395386565264208200880422583870908990032378491643230021103688988928804638218484796474655910215256709251365711219249148138516379168355227249000308460992970230099042033782079093446090834143523355463342389637123967711621119748686585437879655073520778115308725670433006549710460120875542292204475898622392483253273200074952687487027105757634233965062640597692673231229322421993871643392003827781275874721856852696886730804890641415681947418172726706418240458485398589747771574354331215031613362729979653768450614544627063203119947872713640365676496285425232864917920507127461116920695081219448845419444771207400348304364522979683440167756031898486864489901796575648177525414378852984661743239898163800612353333455824547118756207043317290647746313149872045602690104700764044879172766804433302217116026080282468293817715898178459813599413595350288378097297874783192674421314142522738320452726893488661367742161716730998700869364394102228097356635941701951536917432812811502662537185512428154994672407837143952312931576535601510250640191846343635772300982613907343127278683538305230469198668463926124457446734950195300855400251515979111825607724463695471562785767925186145245053224945808651153514406532504748078545245905159119533194197000255037642192294303097775950657207508725899456347111714464313471010624048226970443691389522933400221218338090233417007920578783269727436863043529214182997922571339748383927830882016977273237651823003433566640263971255324626830655594522522666762736144063627619629676088757859938856174281177654263626477512668618668806376809009768057488403505028010351197208051478120422785414979711616673352218648356089973845099453778204884834534446225142657384785759495733304751506855409784919504861180825328809060473572508275509580813820743392025648064461774733119232142417527112795509310373881954305258427582671647126462137120297738874132074340445685333423257790561094021143486898178597035027994764335175419092278206502565503281625145598769480099459782830047106941071458898985226122530819764029412649851440126221362304989883285871139479306396757364222161194887170723560695884480352125039663949606423942146017402447083770580388932668245374302290134597805464079286100344073734365017509993787976953222501159704892755614681148414408152542770215375839324725410122310163735379486268532866011151439303215128953291748599809495742830895660133762551976449386367206013619345989868892390678604310667565821512426052317090488020115989917977931631388031047892015438784595396483534465226284999230732387672978945683719909680661403202817205980608490039597332526735347613890186831182303899366776813044921366248374599841413553542287185436875232385075307285510510283020453125245724542690006702874717240525244937218034379080355903972717494105713864583051802421089901143679159986347665820891191894943168439531412143093756496143786106207556953616780358222391518758323071916257112142225574106739393371267728024655044713473461273628092728973909597125421253697546958575137849887865903013385281212271494367481975415872240850570140491861327365345172819387572363283559679384979356319890167988874905929806430950516211670449879916879075514170570714872283045989728835309686258614285744956614270501045792618073982496647898472458075994429883917851565224416602614733296151560516695808218627185188590906338003093337829673147279923563945840805848018097477275774362758213357756799804320581469382025760859412133695801069008308905316649628669059777938038554058377892152707708596204260188473629283153224471457515344047924339655006382400161810799997261339218133088526873141022142547234371369400094313758896684170419138305156064977729024054186358390608205500318272547082307186491895652322697858993336546987097220492967501067353080915619912368611621810227532585741943934444181451866890257288785178414632684375062004757672243790610108166374796407431059314310454080140330333739458443179322459497394441723482197953589429459266575945737900043615402666431733433125944372281364408277061104121817916853019911955056838383394836330098521370590946123065672703900960701174498325809471568603389793297026102273631792878068668910374086822808111874651372148551150929834878930962837174607993025676707714819431610541311407846342335019246446998407672271205426278209195706834448861385176758456731526308287125661061290535884444411267647750239612367036156245936987563514574429241046256508030853663004268810700570340514569078426582108372105103635910003276232449563394974488483204768151817401767388084893832009703368846861479054254869657574404433658049041568048105343557346310526588423406109287894605323641149485681917369814288529498858738662671401524467563349169899099262433071528948991989248690813099839213759842216741965822438401803892653730067182722316229591145801278384934975001521104331265367916308941102073966899138809565014610794111263918981016724938294514518116798191920910788462037074081911399935883827792099244910033382740621341731289111967671549716343272408583714355727709848973581153570684849886009368147743773457933672769236393494741696948917944684911090003739585908190844715745458493199011257092132812785457893272148058874081799093472708418418159655038161235085858735478722087175665682736714229267493989557460403750863531696038437385933937148538741695739723408580160159049562573705231592705017138558542974068874714695613518221989515428992938277079306202066634071803121527258073135271789109844439964578937768830210696373148563163500404732201096052165180635387774662870365984769551141950938983558170205558006592265934844732895088235648757182294872105598367912663716462660899023821902957571723477384543395914776878209101543712366384045288324958791890293187548117550904479717557296022182011831153314848890871613089429705932375814434423234755589550036937175476288464010568511348096254176057410935536222842109216213258510933598296301583785169100666217033142086622271565319104375639363505239335137845084600819005775003067857972859283807495756943512355641582504164650731832900120104373121333101296145859456521494587997741739549879701353824384792395632255462746559644048862378880887251095320290187971676093406290826622821741415609873941330679727411398461780921514106558312558067270784370431752248604968608688466286431984318545403584887928099488793799745604746658636420138422825123222392762119524528425614326600855889242951466499651617691670292201608807341197940604431618852561105001911271051643424357731269208726760161182952401001294892102763749406893265874183629241965095866358140395773625817614711920270581558557888867351228578483214844764567500460841693414446002973496414707061022287515403356578968208702681902088153737948773379458113916040968852483707448484508535994867542743481083196634922858621037417877287171841293800285574793052584340256130863518700078957956582009426795731353917046886974352631012213039338218676044429194132510983311597963752600856503805988241705640762146813248074584449416095899403245463926335640143175942152772645185184106873624140155650165007938298720842819992632424076941927972219989744470830211299387821350074725622504768460026753410591473790042078073790247469237694549694944356155565061910590608446523702388263464482455725284142395455364874290709068324394727857423147580308014951536726248004319326582299789288456684632488431951716032965778643388623622152249185641106159314344573745802029698486301942031690077076944543976894162194668161409476496791906274747556638905769511673639764767004483618858644444611269842984685564773673251666117232682860880060852902555013603322210456044208976066417324636587886873645347104917015126594907403436543988631880665457107875083325278595909876708459666941527943346709447899698252409683309193957222865439985043254617021675553431537908510535588760852614611919384150704701207206768399839228167219842279544056017096369300077575595717332837367592681972128115087716440597439885603082102996500366906015824121079162768740657767506269199279645567887058788285340513468774254042358680297674457167674309744016849046227762149179611159447595230303370168951702474203313654335569504356384276788807110697833784206531417946272464278066342660694411512843257011869893770640128274461600017391967523162135401446218244946587605394632695046679054817299917309705078825055878462414208773063247088858949339172311822049604049051677953062257077152240737618976010461176354415251655521191401839686449016196073272089261400439547646721922454931104854142377856318097356707147457849367767765028132849577360589572923080974284450208148066907623519384587204721424427983218476695713588352254984821794429619909183208050854754692959300686595685320856866078519085414933862229887114287414458445000961716223565769665790358786612925238982186977494275156838326853768020591983924493968714650088736757626161281755758536803953297025426942872304416795962321608134227815639978470698525098634602033769317263570558929216517356948238717775379156395703705208290893588630127991813291887127689892718473671457044057107185870420611761192722396601184088793670713939914408556469181078993423446669761568695682184426264387708032869800729368755616685697089038330849889680283064613043728811162293593392254507538929249215454060112775009894891149749942924012124067076081059864001773757499502459024728247545099608038032493332115938847385247091867586301041802155199758386900796592287473198347305216052873036637803709771106552166613581085669790345387306210145454344619549944376796674490888994993756599288982980212273663293729095248508288197492867353053369129718442716382500710756930644816081118527708588879234361732024081231040304879286900571282708575175628097087547460093658561220779767294037613488888328903920180815728200522452522396810302943801315143864243982195093752888192023741652780109352174605632958000411869990736508427930611246822990883919396827313356137560199943802895868513834210967718664452339400615342847068987747083074463272098937494394046903408081715059534276024647128250756622215132906801709763294959363618483840699059754947301930903172384921714433102429504082588945110313701126893085760835260844553977557975570437554716492546321204438956795659237592133297637070675902255788731713624067239562443448941212479865783091869077591436571785447205216997187697341364023125383324148044975990775416319535647953288635675528344600966700979453667534386557565974630233758580919198227371115992289455517450872017223615278459039290203777817666217658176734924460641229173477085948313372570128281364725757055672269093059871564233486337130955010035777248431787329494094123756003983992814023142921966819976535772077954231962380644475784069886337258443975009773058578490439045745023931472971713507198223682488768061938997767928451529496237950355481604523161863263418129458465474680065542976359877008754566661852508185678375196308293643666632717789864988885937549667371070959165078493875627684074771386360579074134630979712718895801268594970014500425411765804132000515034750903862162276845222714424738095966055397444091797171421592199422454763870207973533928550381268902761890185434192926697427095913396589665463212273858436470691168846169710872043262190545155640979955348502281522804737564492218520143839499905622648965481869384587213168242917933594389064180500295602404374095754878259251639670756598467193336532587352253862104960059212605058841299323010658929084711544472983683825781911837275537722903107283417421534547173386601826970478052293815330252825018228608520689229649896369258129843347438423817295280330819040140379847685554786774460182737396322269736221958891255136447047468714961178792192717751227459307089846435578711513064463498126877484429615554524773661321576402346256215206674986187326433907084276592071452439916770262223056440088284665427779020320288768317991040892037683948262148149015186553609231380690276611521334085035218354160797944287158879720092053530310406580576268559142716739405580275737793734065888101631517083823183381524775605718619188436448999918797575774209460912044921591841364906048768920198694772681404203424999510660556787105398855702812981384882965573874140046088539545306970327066770337633658703178902367947337097375055271383419476799854748519627628390228460401457111420413609952457800729110245808095412536073009044313138895519606015769753169745221565632392546540938939588452221802891879427163241861309948641480106303434841872492558906846777363469429138164990233234468741002734381744675431000650438533931894161932903904288688719988880639276619378302275057728106775957087193224213458297336320800144875680905180662404758526632748165037429650499149204058308726236125517771839426109735869457424198888508637481215754105807629196067905997675562466278569395079478386027481691437231367917988904896214557968401513528128988691418512211816080852746886540375215179875889746021218632620829800260708797598068977317665890587547049010691908520644989549883162300636594229697975741234123695679930727814419802173920769354371250217669173583490767774586752241047137101640746325655481879103456629249576928322142848065398406126000136420604883944635126536638351037002405157074034380217493782760469643229444356187385424142465456245911357692980613183016725496041020330598849052180241197378027626438451529454138333122086694561043723248755656218422816373505456579516248754654994349359847075346461145872811070304489684946023448651082096616981255946961934441022564716488996693725863277857192270021888661769018054302728521148705661394349808402411424210290578698627366269277098670308102847016624485244716528422585256522097749219381055394405291099065497393760769853466546987908416993332740153590493951339255115602932112810981127016917938831293737609150520484474990561042338554503950974367812486950539415038265867405305670920084391882187398637133987692670056302050520098052461601346440331132511158540999402664492639103880191641154396860743466292625819391865709902872015523340268359369164359300703876546567640361447136615620050366087640870215652638726517660287502132236500333330436741617311473058038668429096548566226890816332354179221064252230364287400671275119815104699226613393805981019327549800040925240395724307730447207224496945857690630723134206440005385517198244487248746739565764855847004354917580403281755093781949843720177599640102200157024235775343933059568701672151909048741637995167789841665527536200905242028388088458280868451092501626488847358893563927290025639155864234510683236903243948405657478433866535644937233058307242840954999747051934112184285932647819921921156853295771153687301275591773464233421035275600491567301104520819620841288448302754765553768892958070459657011781223474537951688212604311942194504974338021080838879826449296415395584635329642830023691760534151254829893067890946674011756194157035523044209188478610060542975110250015688662683833821331042556947264011542282598128458077785704571167187607676462354579514175222083596910812530845875895408413648622001621206863775779268391235896421233743790142661934096238461126341648565304011756897699206268376209497139830279388422514061343200902333776409888762281144807972390806094156182130691092483957057310311142746986608059000333877920925995495250698371117611308064173039928753758055053690391885407852733318941918109035225732941964046248913398136651131382180539264035863133357832336112917264369846737312047373471326399671752808861687318575868721919085344445872050527297624850337266453697398237783400920340448436023685659150756123690875253603502032074064497884757293092698892992815555852498715466910141310029913835711172129123827217588193308148238612102142592345410029050638529955735310201480392948827658263075944952546764744841117376924040018075081623742878580023097179434089647909725042548929332723083959641854157965008521490363833632566425886118297146465026742952736358931016245397066726104261438445130557999677162294982138144237809094893438954333777486281555960447886024469807125766687623651209400291242513484320783209104091932229816574507490417228898403440573473981654650196714905497559290443885281633841546208196042912310058976316159441879187603095420175833838256533741641921357679562816947729397855036666193433270934681305004675950675363983492863076683260494318066841802197554857466753922395719085317570130331298446131571008432329059523804754670640744807890996256430150178306161917941234631186632600138883488815855158798504185642729855698868054683129205932321126690471917921544131093622946443061307114401764560202543879723779793155735486619707012895445461081702055047237290811998851107477533081338692052849094253094129336078318284606984977998668761367970824456581058098011231282706904017437817531677043415059513405342274370094925972722449317568822628087383652353973742354207356704235812292448446432258423133579263590497940230033336845621675437601352963424211271286041552403807944629020376292177868531769456703396875427714338403203201296613383492504033889460007883323279436559365884335662884282243101206740073968322117574027107292699544679391267830860454206829951844084291688970305073218685038028824603515026176243368649860460366808134710248623151029528852461228929647297857822851163543571579215944559610360984043977453780678874939413244702111999952006658934544664297392302451353620862330968136586810241912506556835505133542347767002469348848628917255348677514507195449544220418552173879810404027701277298933243945751020825240479901417402761283331078116210736157388067153800278250214616066901737186101370802591688271602113195935315154873324974768719300385255022299815396725499141408249658520668963447578862695887248136109851548430134245494262128248364924069071350626398624377539000018553350460072687686215980118044316821689855835574775084040118561822390935998052989647986497138491073129755604968103646144207341925204306870580893927520316407290413154641076132732912037115753564043588052111205853403296590294402977798896037081354884711411970627554930852251356069649897297923713486235491473293440332592914010542502789190764688653259036955215618489709891416092083794647165497666284743489400863532412477608339553571877106441129762550961453707235021803765520860285080810579838305676042000892489161012995406502834309512584976709018120700849025563903263494997877007501595556008400591025142053300126358879029695385894442508384789243205107920606407181048010107656613126823757110109701655983929676464967465861052648050536806561457444394920000917905735528930258897964111910114756331605005170023962895959691653907536399568314634823147756866344755462960428424737540492107148597470885413483069690291213826124198090396961907920842191813080025602260843856291740232565100840524564302163626587415975584153038379873277290381188682256682518434015421703941035163757618499506853508608120345512511594090121214952892205837793821782007207558047171308278379850337484503527606695512810716877319816834258126048971957842979403907006958101965068168644504499977497248414537918825728132366578873587507263359447720947872610792408483912141953533493665697853767901448716194096209677864965971143528682247348404928591086933026067019234338191348434218661246559022733915410013111193406854153424431461627639170420783157399192988562108987480568121716114768652787407326465639117976044059137516092033763420604820011766559253456334396027766722266623432541086730028837986181364876122184555406978646416032695641297024646493706729724304815263403514640990803538168865449929672311341115402674283767972939864012081537920603427296103670628843910443396439802819013649243706902303910634242874609595107622078722281972428658382540404018179498156936086124039396247776880615850980050992781969985030602059234006831232333481825402222132949383854479275811342362493234700199309972248869340420694814167987525819660848291906231675343870309348794557361208408861326396598969734098019244362822338237575507493840424618149776076629869854774401384165362049355113329847121529899102188788060919954725693503797914160503537112380666754695612924774028188565712301001608636086479881662312388875248483643447155691787503301660148529602159021368958906943553895687700980852919262716707345849224580398886894488931096327139149113617322777795493702418398073985563992561613775362998298811736308956038413768073931387147789568567879790652040160088095234829705322853416374217141166664304264076311472230887253142179440608298841867866031215586119770950436597420374209789263351819037465980190594788360307185373601135939031305078749652537225062940146878233790098460631617123866846044362718804217622865102465133663314593688574440604529960210050816845391350480370277218065450291040200760281731275214636177700059497778464916629041179946233929109433310065460288763308289779512845588019588205207324357291052302784860169606131622094709220591274973154812027283561459524999670017741106394842596029740609271626616202407933112207480705439853941355627093534475403669531412148847181152662945259171788155546471568264885945619615093794556610484126204211621665885661204699908068845222693453073475227677787666656556814973301790000112070000330872952648672759213027042502296052461687769167250738384554577173579559906203094239350164063720474492071586606237453829523718529624068648586874633126822325446802621693229886276299909335085016736695865700340454692359754412182494314403696588054604947566123092801252681642499394887158981337463608495584956245289840585721828277150750980353306658661292863969644050523590062707748088278432844602583346742874455598092287621637096585632566525993466546406643955919506267277649957667996071426769422459973979170208504495589539828202702175700714200718129312965124639966169553458108639264617953939866430334702250585118727256623768893755574295493178351895624464904002546631903438907797383063275785744364971238856144641680400458149672806232411571057984631201235202089029350708082507346946355025452468341966751399948054490581898028229147662080181899103455242487808894229265514524424816576224275107003580526158708460511693337209158967531398711022947129718062411504986803004451025916881112743682339334665364358944030139148666776923881000623052914297899437286773283938957566481766773287754169435817557253815669485876531119515187438560208340373578330515005284669280248058567300984474011420297305326447501917741142140227450402400706517043400035238862734353855358782149590853408932983777149139189354998514039204789356847978715699352194830571148317836755869548791359240890261904004504552587739986964052419905802339943886857700350790437950819011138405491163440409465207551679822352516014959137674537228279543565122197933469363210151172457561711343628201876794000811450504816677853674949529002538898422335480014343673503596963587497951108564782811532893645329907198134692301764157167010635749066845216430612035820514660591581819575944319312316738685438235512811709242381705750894161626794895900891994851406537799492889926537065299768627771515016944246593331352517663889674602600703798929666560511049488992532396897446630636998830722429201694099455960221660428598588845894507988628310422475702915016082205655228554798139638841397048807154053953898777054074158735408001498776587356064318665986208715711286623612297569298994213594421919844906324711610629681895844706559619596136839606524758856957267811720314961052121110944247940070044744857095106628243208624289133357547203169722596811287911085963755000124325103592574941852386111055984216061316443121158421440285270989242938739720219719028184039301841772630330249108780211568645359676858438376205784861245116810422883550441429296963513125429522077994087506263270541688914771928789799183902272949919445489155630112396548254249092817243446471769368744943042122142442860627832178534115721438008537783041695988657971733770751738925716507081589625063169827477158005509428495522361946892256479651257888955461459883981712850639092323673874736355860892812030018716264805924838132128768505633970296238678006233077711033175953290083032412191662430250703063541444976623554650723717272286618926443645410251456210294248686423632878076716179507196912969817130162383682295830686666073826753781118793171913308317233679514225265333272774669698648505912543254858151110209395392728642097469897065075671525613507492927687050352507953299412365703532635997199318894713645664085616196413876543719901250869724676919420433181274935215776717903544409160511107298030704076035087961011398444039431794813797221933987627984071432499858984328560081837359107441762576617264327256098340864154687172521311370791412508755471197023945349088872109398423058786224916951888161879652715802171635204588312111503406440814157674771937511476002540847857376764705271258142379278307272794511489452805213702180310520491660024096863728006141268271990495612500230732582012521452125305933291609130436015653385917209060764945236875228171016091709734498759417068923776882640683295112892151645336911956718509947105022438863678697974756940046561157828571161095863157861421763361071128609415564799979803268285868273049019160237910385655446593881691896641709172551723831179264041527305714171758855600401489684076910793932281566799786456471020521098972288591992875281644398012717736317614588605817938016554174071742322045671338773142380103614640719218214920712316918720032420804145213397190312947296869540473925765496466186989607037640419712634042014805797501597853334671073408844428258526828045779085879101200060480060365724852999699070632634845186799899349838628578900718128918372587169272060697729440161715386804250192788153443774557416497859643766808626072571151376788586319800102637681890104003984615269214911006199883687815195199102144718765568469080683142648919464222683596625574468015907593963039261280331053189555087396526926571330409701331535794410171650201933341051305627557988196350232948305672683932869713287259230369330730912924467464247512534276451667309120737386338754990660040776484137101235786258370198398945562884092703009865032395395723913031632230517536900684644943863217879151105817868311179327316274233587754180892648772951414267789525033050761448471463996943136579418836506123429865573046740885815996113583547243038569763352845131839328204435121286572309793834605738656597007971114793764873440364716878587592725438175987005026789809828416068533852536485462734301666845905751680670166811972256882218481169395973803286828967984799026463077602617719816021345271309646991375678878735037579870110159543673142084280501975627879714184350600143937957953878395788966188766208587242411564571353161055717564920701658999218978807387754058691196068384145584569326366438533967671303547788324510886847938582005762628598975904209189000331754844002277262744586407902537728565626987239840110094300947792572455445318364511451942509569098126809798834709053615831755115369992307693552567596596276367917061651480590385414370693597020818022214834580226932926153757836405901229733809654315408279727353237541035450704906732752606840761077205322982161511854154597639465260534646788380854101937625295934733924350035232513635445043761420268609719966494067950767169642543553820398104897057888388423576331227112490419240170000526347962968402535834226588676528907042430528831278348711889774389773163606662473054864544126663588264734804351377877586158716725935355360993134533526340964550893831553356208542578081417081189202923511592129845152219575766225873094787081161485978421395454591781098336191160431343623596747840244251931286888931248522842140117002241924811482161498034830739266189654043902151432984712700008650455242301084736903009313953129136164744144986066774496572665678833187845446704722440819910829057438760565651842028734528929292787380430795078723610968836727031591788097978464226742608871365441913920080880870359035406943782577918178809065839855441655548088884810674567729293187550718222045305714526242611749407391259443881170638454006175783498173133047407839739619803860411157377718407442154387336856916826415693316431029655515273005067327337888410962318398026898747438962758577313501634329478579764327186724091337904387218959544725575703960668431759779092337927338133832438182833508072162641132933582542781106434956026227445742786262153033867205651517936821231513151066636212466149425123801274821468762054739183160063398483035688398719301089278323064072193935994570509086949482797933956576366723439779096443140621065077619372261965212684711929090603697798199458778873258101610289998789562705661396441033226961144947215399891145164551229034678340304507833245644699394754458828768412136982827591525507334754991570029207813067432093963776098557456627584461871937940734633709888943600516856505411648060120455222095945653856342410925859019932240067921593349342551499390516077959938468224039295940635425450821744578094669395530923382241098674782401552588927389082311169670667860999819798956051166804883233438502566402991135294176206504277697285415650582442405758430959102864168229527528756169244127237426597650073424061112999101614422672848788330323544764887567396027319983472106318940578217872732759186245998766304023489736963045919316485453534439208327638286500713191487664402601231655772016327324440969170092205728378898656072274364863130659409446695043559323910033141157822522561936441183463254790762509788778136993839538771671740408888579367661352909595781673534234097429933292390640155570452215929877886881080927920491963749633902685621345536390218041540011165016534195807251699338984816505672794011949376090722534390301485803311633021166946590655488264841829724090748533078677860447138475169376542491160835976078297204376767990698428711602571994173347011765633088493391170225091877921002301081954647631246427016928534158727337786354183855940185761254196693373288496940631704166545025801857989653546893478352339472689097562635318829867952565902395671619781541759321770371223881795776679773311712569909274618115935307754953881579919802511647566663611152589740132947057984158771152159244677939986825361025787703162667539185451107528394432206089900545694343772284359758816080965627780201017675625117477773827240557482523587720647658829623267540693716702343398835235272498744965341133349416018247238556707799018877947155385136443928963343425904148115907022080405134488925977250198186870568021712505837661527456409276331929198739591074363381073139417928271812308274753345557544966888860281623840748404055949793489032417938307051979689638862408788348522181705179271366837020453675718658511558678659309910026019786691842930543678848294025880237586500362988154499556796969333618439509251473006870533137359709206701658968934795114279024242788774374351823530787142697065748169077649465436701264295089489011776935266865058145363960099762564006676163547950221939085205308527748591109590475899037868099955615406997973380417353747417260239913653099925598480143232508941598664545404619851163252229327741128347919180930842648096591565668802291134929152261829559014433398529719503575410821086587063558858311022053290644974529426660024888072097163939291481234589959280669616129422575613994124857425128297487467092859311150352332552806343261494977541061893665405120997986344300850757447981886205434486919106578096819955191934020872439796143756226499216998109777701849474215096567519018635501503099338700996226923057118137272228553911967236612831654800414218800982948152897747481029550199026356177345919901234972415853653056819120553466138087999326155725364688100544949465684237550656442229602432149662810737239516819056567391273288649057164466933086526831688699002660408992307750035442536812187465291741714129544108959016840642922336851400559034797414454315153495297822052721768292585641967029558528959554436812440234449228929784288199363965912839535519682538671838906163499466545885561567742435342702779701541141849708662864665077613434869347559292993918142937373310401955429210136848077967771460939413096619034928686707942762066011334351478172705700591824238608736140036478142605005618704630265170544128193520275687273538080437384120397521346976739067654623494285458571954345070000563146814412031364186741002561180027920292533967874719940725150123608702480054225086258810936277014832381999323714634667813973292631063980238754311893967185221818464839963707402006986248229358573090108960147080016875559920123737660435392233787522405071454348806163520735318679978350222399014026076440178575532283879234230361608138746652252287459083072882771201416977909457875249167671137169489322449579396809871454360119092926865979121007542045655413745722420668881091172129397026027693217779347599554296060601577177517699872610391062630831019705044073151832166066417664612406662938375938817909087117035182231007076413949516098487103174560850377283121582088752774456641574139991236165040141125950575279516510980508347888473497538568731766370294753144108841710890035504929713700096345985186219233816683141461598644774449892165530212714780161497273321838436712511538506514591386281633514782433426998599467342926950327664491287975260190793589183455690038739343796100198463091542853587916313477013536052824656611053795577736367255967612304943619585056079223699977002626449647428247818232652844552730962409528147432447339851624930379880927585609065022059642944107201911190335721192279558658430556261408390950352794741304564500260167375146299155592920107147413670321130521200147978258399677528836919813740500941335930564598912852821892193401088497644143279048899459922881838107232357552285236633781355262494431799619311135884982643612443955625687583765703312768533933355993172973998313743299115893212325459385208079405377378147375790204209980014910158738964797297023531988418054523931870857487060775070383634077014137089870226406032716010637118144564580724485423721159665999949015685509706581087673090450246081684901395591138455642274656743200361674503284721889464796429056685796820586639601515681807521466950892482493543239654500730481326405992655214036946923145872466928425587475968040403851801275203167404327760817015650131462225361467576125283011444110966719578185970635900080110482554017973513647003159766272889129513464140941767390485875759452075825259562416908561307895269612190725915384728823348507399256310528992936414144196979862849601222008416828208077546884400927070562980409534492883826157411987170860632130436838301907703994967994418097203812534351354872982495140355976798896002704416374915300002691089545911096722824785084144825111657896996497433799484324595443988494533287931420424614345970308812637656782378892473667816690531253482728326320101759129903154671771078332666124627987860601134837970260274734114782907662354595779139509884741146771524702504292873928388046139720097527044250263447207983854453177674590716425427029943925986953083726940222272232851604099968188777213217909005807967646997452426916822170200875015883910585617124744504154938259615667083603453968255017350692428651615869778147936133318589201965025825715793642213707722255102364487902406273466857052969042529048183417810872883831033011246728521897632303630234500371313859883670246608905104989302311690510412760363927381514313492499150648036604202855488751195710400583409080070577023660357812580608610370346327550719411009286534105415184491538638673531217604259852750747257420501454219708343216235690175509270635577206976886113820840288028671132164671486268902149269724861046313733941990271610342186676947409082631951127871170768874827276361385286014586678551673034879874711222275245457735137982602801246310461640135668057760753034424560410673124446774699379970112030125978073742239873850316247354737828935727611321471812878576038936576383137155887565671660673033979877928598479592391317127693425587120592555845488357745704059630346937886980906026896630987263712785074609383476642024597211215180851824034157321228287687753128039473509135338921540215474758039089952283852784203930946820580734108897624058568880432383406025624613370333620148824875444361032983465914735059762010950511083004530797394999887833011778513005727224555012552932215868296597296337583377437870128121727953781234300417369858567233147739638929554631494583603417464132555137729573169267367623382265089758510207386310857470274794267300177422427545459533615579046865882987004172130391546172100313929115789526597344223998255758265449694541032563263224642707868902153703122804423469279318328588497350167968735913003177568604652765311754324606599321000559974909992864911392707976765117675436566696248531032824776839427833119441241459110980704498210185549003772260074709209673462825161386341021436155870657485853772013514645606015418151837299021967404122142952658767669731264520143173150374437906944279333157040419799246508400654601726272559294482619861082813223781579130663148997248727253772218962781947905580348110420490345999486439001496119590763137795937902662105839490638918907987869910802763052355783660634422152447054006359805634722493443187458969100365560629516750912657730261236821394563768822937440460322982473365588295010497119796878120604434619139865168383604269916830228130622429902764716882690334778212163107630926704436138053963644667802142473086522761309011060870601698950139599756733310051776671924511525186383318923677889747283069286526395460995340849196408227123020980431320556850771581373953895427327568474370986184754732639150837405245981828099833021842355678496903699848179961624386571449217348193669856043648872066275166888759086274322068898506419752779318227844982348817490351431506537766611903117673099470952436393491951830058599236052447075187355391926957852520856968678960960563166326677182291013801031001320481773588554349707172048640564978297000588897058977733322948529142516320814587857356226124771750483364955196295679506155624492695567416083267401068387869017584205753306916431385250712805623862317669729566634297763206679133471077178346261917425270384276856429432505788714546595645907405834778119599314961828627627799147762702271576806853957158464402485026864051751177972804036519872724418971219143850702190371117457257829106964427727148522202954418960288101320512898714962039595244272799407484611750683315458270734664081211991041438489933011002181604165061019426853097340408904967661873043086981920465484791872344495486235265596038139189667338718978699748817073760373858372539466610926373358115819881456142871741957308839146377006094729837063511394539419512900331209670158918911713098840826488479372716751531087704309984388132510414226552676277031502068087284308828223354102283178439093499296850469600654353565804519907956582764325126235805086369811267383766793806796431989563652388765720385642939886936365092051501650151502472376851846302083037784337443441017210013734636971962855147273811713291206375173917080675757720576127930526365831514962496431482422955612824111021884104344227693614431213868294343759375111056867630289358785248044334281178185338362195338522411991314308890320526578609673888229118128396509716041481926884949216484435505309056008294839565776583667495706449350498090386827591316463125595699356518712386561642933987123352025225075510665337504394857470186582758114680040090691475846497613918918322141727292308543249539035086249483218580664256955397667471135481941001193034707355825973123153474137052068454278341765859341919412037861427920114016001352929255649648703252804878115368151182883380981338594951112562308914695969123991267289604728001899495115307129457150603798071474086040056660184900155022840737263639208224024770352713546550989244351686452320406440843991989437910839846819899631655078347500005707811130847085926406628250806754595334726344979599478002860862862247155992999803528406606859375205920310820860512959689758752235831824220931244641503672255369897062814629089775475471571738779298039417167945844792442662221920099018491913147140123673361330229671108908262586119446852603026315380935307729960475907294619412522310380579317667266896464147196361495002099444505171000631341931849771359906172872620475187774966938588103077565886700061237344565162052337922033720525541568226762592335910635894956436222201791718782577845976509341177706033948161391285542923961106259305138612768783457337366974179677000635095961806032052914056822821009250236758151324801309058412517383760886589727282958650378366691904401114687583896395689382588434839258453909704851224068164803813527289924314297816714412199385780334817124123008182556026066710008967188981600044470663713207635853049777889562030542023750923185435332802035411997327205244106215982251155829083508839164400676577865428774791687934103792009587861018803282683520448835848052073608677140473442319003794110970264761698535799142152852797049884048057174958038963307828025818509788457432463353848402686277611282489440805862684976160624788657330316846274105012619151259796227508962739649322935048139956540475281126914321833156418439293430411612476005723188726204008490162692073556016050719429408795486851518759081828841038910206458568066593860243044642425079648586390229403738783662037981425711642646276169991398565559590989168909664030929468906209434017435212330498440059828327587813815537039965784502064395271737769293290145046000342240112172555773408191920317133622244308300362699010669142977061511400468876503531027842523140474975822223164874750661876603136936538037340722756401141688556868729248076317177837743963711761616979180135390679492059574935294314104260102946020730163403313241839592737265076090087914580401278083344903832191151674376812854400822439841853086014217465987416421235085612327767027983550398718329605320943021400328661785738647275200102781002307953363130213149732482058858153261090134968074080508596409658519157612090454878996115590586798183593383610035338801158710301261088575390616758575316142184592494627732697175489933207261302145733812753989835227335022769924940673922150646377588591464660664623337672803696792421486428991619897594541300201838201104639804734153486784473352313336726128595794854003416250492267849748790766037340764343942332943887560933771181206004717230379432546449359528228561131377684714459485317436476131975906145335570752985236819380368953696659630906122182177197258718984588763520403705294006645346040582634225645824421735002119466638260387936873284342387505990111921185975931990062196137452307427134003246037541321548237834876637652956427202635764382941000419610730831297963341768084439476776006050464343489644507004709522807860619147012182919010880323516759185469884636516154631340742676216888142116024826275288197956637077224418224208312032524063857650318860831469077092032547058030581346401492994824069328128713761162133874179289483584710510851010083353673652664358846729516352418269965991876043742802510038744677616086355637082610400648390032993433598506228790822119847565626331705857071278269949593687449323917079957184657253968848642486954337787991908620951886958792048485234158508417390102885484255529162774079927232001226523315160995499367537909756770040000229661589202576194356333881311643304155851045929091109386741909044374019034332686857923714595061485894711739493156246024032341533603710676469259722161370583015550480223975442414775285399929227607726121046847570715236425243366375359063679849557458500660496457786591927931786880854505388447869263229497876379082638563548297610762222155954722067640077599100326325316920637749243565602420897128967648673343210001598929260039234087651392937412612889514259183051343499678518873734715189170343209640316819886985676633168456641692827530512614391600355916719593321530787407486018348489658117373956970428388611308188020401452428133801645156133464396989699555444139992297976189586238383845448100414625563413776559654080527911675925973271033158922908929799270996442883709949738677666980811630621533582668703863504782039221019396904530703704184019009413171879677409895945590463429204301357613233309551205263351140505869352346603523549825798998984227578823765118484941210988222546580072580683067320013819677323915784931691026200679818915186921214360460968363733288904392132141634210982654369952929010381138927045445915749010250363079063756766650461906898841846663476443813317329941416615101264044202090035180240032470558944288229551392377184651385805617072516771224030546732134511373303940757439332487225121100935861637641234366317041301045719079011569573596053252448723180071807047315461914416275967577792227026085294259779664623187640306115762509218118486513412784229616530690623641114023546320004326114665377896249620405562159946591966174032338877062107097365900383856477437355009331589125108376988486289796229171743319314630624666450800528047688231705432220557810242164221423566395895138670775604892966731549301169255108977142177369202834732936460461239653374315550772318814739881558678094193869600738463809211546652124897562545384023703398042244264806774131409007394323956042043007719254371844896149519340556344554521471446002163149311188194589997649455884911927431393636459765868073097736407088035303891300099265491329656586831598290536271318756037315906801728981226140612401550777497332700557128740132192946320022622180588735574009426021185407345360551702095715317126932010711803898969721804593934544059168824721382183707550196945515544227349353416770685854039883454220784953638690619133773634018449648791170112260904739830228109969152371678664808473288260272022535932850741806855752728052003348233418957807948304219770386768593113018582957627953953699331392218004871647853312590504505212893732192702564240468926227108135148918607125355896093000315949350304203592413443588701794083303076796491533901786238381582260246993324634982338970225816432543128839238970295797259012018736556435712463972593659947742254717659713059249798704158158098714053982237359079866592639994401482533651694649655442445460545752523023925661091581968624529064718954508791427451125730218426626986402897580292993745192864126012072501374600884850726161015471687809819560293310196162109504243436602519446040748312345370516937740412333780278968802815619295144162867367578582740045020929302041613253584699650789645363466809889930769218014205470709175509435602469261213368629555256814516533056369412346325885591682377607795496443004992360460634359360397228875417656809124094957541511404500009442972249747297573749608991040301352734219254030405385729675325782257244115368300944475566052828315036480791557978669453758409526327778374922392939502200047574112302002275642078267542611997792772915091983718720592175140269549370064090678862139781640236728189534428921131155729625795870544263143955428896204291402408703696307583564322458927048100410328453297932385998417245734032945346396215064111400547378087046218533409228941160974887099366829675174518397391266040690203156893138915379616015652201643919423105320188025400730524712543462814293429179755919034804594313923800859384531385113745319939578992296632508118567717749892678043241082966832156177879294687128430208124272699443772496913791861697613290797385823958626801622182467118242240082715944364048883409589516552915576956172850015862512214008769488812895682643005561194730096214490702836380010888807498157897320778081922924837294266265641841480445116449897848400134332251634094870504543152433485345523143357555033758438916269891327210511406104550713668088122598554043704213995317198821667521030547659609811565979303253555447743484029603238307737391959979094726128727474509207673767531595352209892215991541340731331112570505494637159591109491885321518340688600193768819717403139627629329053124853165353331768777223344513042950933981688286690537854054983398703610821257539494144778602170389737321464499295452840064820980830237479819382053013161733278741244667156454860899029989034372775631891251206804123270494948573274645354034392954395048227128190412001629990608262626008073778505164896671866660999170321151761480644860385296233195231190618358410061186924255853049910737216774904777253004021966441978072301659108041787309520402752172400416164438560790511021405937824464545628303439929823482500701528909564297140196193718930692542901175251868706409226262880752483743671513226300097417148713422963342265458185446498178927337049327516526623689193410595754802903807311260716937285730585099489554337222818189889896545526469492802666540280351708781076884679673476161170563378128424206934528057189975183610729420833614200420523084721425484452843503143368787375578142312561793528759279462669131142432249993850434147531439226382706887540364546242922534650555029414678858977333334456538745984388731163690655160331471990686311396101226845849461500098230148466280423978559379414759037001881714388356594192964319963972236505601684887748381590029207616302170721955205111467965432384415161592364919250544069830774185586452434666900314316248177707510935991132487998342516767500803936213056673131960956047396635878928868832532167668741093629053959733100536292873373560210259237530161734074282203735880659847571256439475264855590181182907473307741697687362548575018655207516009982619248252975375512980485381940862065663807517822116243417107899052952047470409209260643522282669948390043754944195448297816977466123056718794020657066436241057275875032964434868071048267683930247107358660188276682794970269972849433092946891255602496646936809475961236005676273870083482882866190291273859026700947665362644641852787877332904092992880291519774068220908323073537011562456034249149870467400970040638062225602475385690559543076030594154047862301369708129489505302130838210411733902130386497703494622924693333324318141146811667124656969364210199155250551620695132885019268230973555225127115946569139288603819027710976948096542682793890976628438559280459312670201016915007877567214226481107453062249096799089062358862514040536334632524271365226243902095424546996708590241926262871454457036066020044667349061755150240069578678329003640583048832115343958383698227513504765478836484666898062131927094855567383834170528821678607727004014489340596753355462018629717851988454257322610666026246174484196499121384065525819831930545738875606549408369431673759568126425608615119863120110588472224843416882695821070362952249192664467546377387386865364256996587955337114010934587358254947216161692360881366704577094896260976777745165030918867631196375672253476296900901084186101744648277140262916241879549006224743434949424816569002914302988868589560144164764825479203094660394977719237866982335379879725457134904833050755163531577860870728517426128628063485746059624911644383819291942519750176181833699004588788006326824860533037403206341519578185033986671159972406919017047750583174726646594744939985038266097120552153817852874187015315063810700576122688766132773678130703021064801194474531499263358627110400035595396682346047774771756510934411002968248062882666537277902295711456278178260067033161139459677673033314641505486247272066927809128822415956806550854993661223900419314996811931743334514322796425344601866609816752001127953369004669374184127299421260473490091412086781452805892740716554691176670661575822014299218521014139828387253267922466594850169376687987600024560577490024713592051800983120372216256816450248275311198039352191008639736991692685694118145994499328705142901514636165740176492930601265061390614645840710040780131444114092066030561031137178321249572799843139726462186396876747431266578860886802117671761453928241740544117709643784880812289011624215342191067852476558107532472963661463806343657458727728455582413365137449284670926578302945410221364441252472330619077150761293366380872466277215572473656465348793847367584828805337453223803666697997147113971249383604014661188651629808891732291851971028694121035493560218118866823985253736417530559564651650151571764358394175080535891080119178298515015802476797177216070121673136883879375855077077634968387380969660659736988261872026349693882646539882166244448987204518384053570501803971614133659839743483904919132240436688764065588619728993444136635976014076319826689962135333250764687057570696249244194971401334613374974963225637441717519260771837528882592942714706923433340356289881568996825121719572494264909351057529438069984714076955429740241258128095535279791147665949762616057619233782127517573090155483175789143856356650412382903617827099197011142168240733867391820630233548771350002558002544010113111584383819597257049278630830818360658315187219117497269859702454916420113713077449546408291771876237058762900567440070086401793093932066309262653255109670570038981755326750560177344760650907195526841349681212046730366916683912717001808041705561547614063195421859673943774641785826196563814533759133159880324402900299477521171636773178119229133350670213533870164442347072003481376216450641563020100336695488668797119925673886720929984425972231113570018470764658499622365859863675398954352991600046743440839529257859731351745924141493954388159260878275400888765671390337576349625609769583946306719439378293272303233927213621295189984292669707676063419870620782354878110929140951263182765352588270102153933119637075594187534680909018557938292897871888042086021712293721063949376513424175125105457228631449344643978836392352456476076042599534372249944527424222773923012043795316332385874204521757277748698030961379978914425342450760006398270783722172968623000614194752168375857803609267980549437407998456207563025077459025696474289595961091916822884724512661903112782077947598034508299256613666784280211197194482453428769811348033332401954789966750886941286207483060269569139322955997120171143423178031821018047152636979521671067781993215721636522544046942968555444033231810397433972771961880697605291296382287893558124771319974431699404137516129052407064316699300682991186356315538440460893828809396743668563211759040760107366821053353691029185051606080696014750522999096518411603425493491377923088773140661003428190613416905180961043857953767035723255325903942809269830057758568019363718804369474948969933075394683696900447053906950685798203257504331545983476422564570610276111961105767906750931330215576799465852197085704210871461329343920967233107451190658795136228661478044983054539351799560063853760513020013127147448387633205134984254009019468050225155173871457533219920720310353219125192236560660555033231948987187707485770096161636483303073817889054273982451645511488861288193989563521975163547344074773383792749150752510897928937403811909739318303615581185292147284767110068635145840969542312490135166324766632391088622672533581944338062724450683344387182962865766556114244018174348065221341154328271398348308404376859215830737164652204357279276255747869610952951699751900762994676816843848257132806996527605667106949740909962848044050207506134822306218799019967443825098646685646906751273699151369594955445013505895477340453938799473049148631106965711922576920124661713394793948766389220932844157967003389345708927126131205996073340609179562995138902707872760501300843778695890351358359625573023790527420123802782232960644283972018121560504187829149394493590962751586876455056203024546082931971786460902474621363122538614536503572359183271968332973987104054031989858700707947521477383799067950102417741999044083256932294824927968773281782601979795484219570765442815370102890605956453965068350821303023281378888157335342584132173523396920398253807258478744871441739984020951603618471361802734886875606507739539335794605166458259657959901795756548663385532620325286808854083799338464777305947516169020492004319503040123526626736762993232964418523774295126572923791977629862536628576465777028172358534043482170518191507977656779621173713523746417375876563695623928163051556598614862396206181558425567376484647525576345350971010095677539565650418023305909243177018288763087100781706292623855892506483132377901076911510333961533930119641521994784125340131370383245609658220255886770529365647890273667941196069508708219235754684176471067507946981304557615316207075125441239013806473144020049775067007293412118888855274747406339937210464677202446725697333511289732610281290264613331773788127714205104635473103122562623143070812370762902736174269679345912629415541323982860960752621226248954015888597234168781391055846516036132335244354159834226057401904594571452000945135170278329173079670974288352683797998069204852791990371655393901593478500420382478097907712260178704648660250948918415456987042244498477874329589791548711129363234998652351670316730430863676422722305368421466616577341968216917351663932900369970991376742930120674851664302553044137428765460671479032622266983094296568370552777120656069506756537654478131979223232130121847344854143625814053202684200059882646643599378317795481904085014406080684308303575513206158482435866016090810259580677668165242979090896192739802463887466867532772238104354792172477743770061861643276321723605982067174723778272666830380526288703438072797118361695428794749918747749011086420772276345859070081264971994797073899424441124012812722059882771065932527348380486459542211506450901156032644729318608220431995110936033407934660102843398234944180279131983350969058233956747013211503849914510252101400774499928788241147894088301499793362677423848961639000902446070802097189523337102456918340790755023679869635853777036883917486366942965079648313549112309075773941192553613323749317039063619400961931393702838437164382536752727313860279508602284050096935917809341423256261495758914505801319334708720143288534392998006020257134307214207024093478744492519555233196706677412466984681687518529187679886326230280628909879223019003639603791922587599775805758226037003610103512956187305077094700726022973223919393519707598112052494598614140607496735071466949758742289078964872236269969216722492840242329689324801430110744404638257039261125325347682742754229695993406871193578630143851512301568720708859503053479453781912334724729426360398214197910505692775750309875636889383806700311878442277224147772837006739557631293699501253370057489580820482058174346113935694605493110338097048278708209689381421241315568829469322407360076784646689511723458491358274555121941258197964979301371997748863277280780683132266639268112817827792440939764961397632706502195255954316135572537182052736034522656823169880268182653643116901090572746942337521805150148685208278785042086577881355271593808717792739920306340163526620385046634487216030287648082832212947426984533213803390996054900724883452038499963030368587360104430503395573528193841579835172554006761692488796904241341312309809817414609959032560417146713607559217579170284230151140363377243540360014360883903826749423140297929664519464474864664890565972397275582300917508551587448288474542487585227432124325646680794953621496257387768164530151608898226917412765436024903342750256419525305973487365811911275304664628508445187131049730666801432076101715382341607847141435549145336181488846619110987338181340338412141240226769818606476056782243938321678023784083456249268062453090427930111514753601316002183147710246301550525875067928656501033893683182528385384511015042093742826198995509685807972882118691672515044034852514347022957003579703486260616164460873926780435898781916442317086987387670140349173175873482086660016315495622346937391914270802172229834721692193034760360163937471889161986026546544344987392519418247902320337963024605982192568393609103285481788050378682446088398426451216447403282888038719327559317072683081017439116843259861950705886774646772205375223583609398544548578921511094250460124316151775669346681855295617030148242780109119005892050984119787471095293241984163181554851810908928166204572342111695114493580326452661901019913844016238672176311769658048687091844963595989380028482509542107974418682764858681989929445961194571323829059636668795236542615951389126147402981456569253588536756160842746381896342190360461706185966910989790996143351497306034707496922154663573237402955184981687246032431339087001087107931263089341359411655818175098809213305851281934863834265479476967705184586661917294527592142751258488890400048702594193394564627103502654858233686262967044245726852871694482799157633410790213101460155445386016940198530183920738050706433667507906112041943666002473824696276376520610822634845583293861412702647824613889770122442130383943358004167009512041761743909712349254599775899039900663403616898411734580736782812088932186022977245343258418390842759907780517825070845075670816261057458108189439907503516808005433228239022748885473919155255809871308279798272057386596605987587758653152319462812555771222808120291907778286522039183167944290069542818269086730993712700942533084807802157134303046937498770642735039904492851373335511619309734524380563847214712769396558321432501393372193271249717313056119158444394613593026557812364699292747933132450092805972573227827476886338944602719259227986060291468183533474941890690698044096795766045294120380217354358863651927919569079053665709057692791622788744804993698547064787691575605282326036530252257232626282972640527452660851341758215701889435276408220166310394322535733332872976174065656552435639721818850918641749656742843855858336194158073286217240935465820658882808619474486629357983298644160890078001236453109012057625577793435290285126422902818752348665675357547825741285331297147208189644010987877378717503161828178012621345991724428186804237917191442994167396563190226641124649043524112009713966381405059953754901157991136675372104184213289404968603249718665171158655053282696641633961586197000340241194712866184060480839077406998315119642998428872049961078397891852431089735231854741491921101794596689534085647170772231541331672314899885520921771187718128176066189813413215632359136619823027361917300735263261700915195859521043161630005307508528370809970835382444143726861328709629478993650438634792653637846376292448509033817489169564067133576409889813140463499372118227746538192679691108171110910778985357245077359251611155650111730489407993105393751686510088404291011146943977901785985756723344640821534273772618906919574278551131663383874212795696437216081249392176389013432365665658463119086229886615360235487417525607468522380662328427475801384275144714568531464489040744826310795699505585916954450867771050026687725417572792810584347904190815823167788449649894555474301786544774271736887010151515951170212781992213129325910691178493923179403414983636944321312196936201327263356818438531526731002525893250145471601798521601121812128987673912050281557649199364971913554002126241491447019352669791209009234834259710010493948011262110332907124608913092425037320482538907562297304810295457696180271549851256768503682021405229555616673468414438308963264318749147684635464237692980907153188042063219623424885284839677037634954040286762093680490792814725534929399896458360248658306093073467271433596237628503103945511554751032902311937591213643287314628781363800486649374547170305457349251648800990277234644474563878087980478064957879923001258132393405242342123404299583162948019846248750675388391409648678071363145666799007149277566207087078233018061752453543253381226310888324419787808615009219946862890081598425971570376071702907260021275232801750044320907383379884004093942629414238962887658572254184443617031308486222067876107872150304459206283606237132454549011049101724076902528054215721387168683490429009924284979535605116152730943642104224963113219519360263245545943709648247481954567325437466240764409874496619614173045357995649876137491510790625032774613478865306925811436775234648195168170800728332175566035721637368686788054715295169443638089373962875094719648062407201344141134889726367670526517321209712847686640446367290036542091030671279621319957295105900114161123126638890102685138245965139905156621671044340267720893788411910653388244000290228948015030120148927485937651135498260942397329387334388564475151803831239500680078022161531774948175576184227303805342731113226279487476882942573337227310502387890327801972043601053737743205423553649034098121130323651904765282453331973144308149474357996854832785850372631091783626900742613266762240630044899081839668949608555600224335534375059455408889193821224191550496627512943903322168799418882747687945040641684091855942356647414246242035520514831289709775149099209773250960317384309259983520625418888381118006791927010260324305735355644785313388166942127353513035524323769338541906285989241265916224158621281612632124909665040746374309852296272476397548649239342532977473647768599588088565970951206129318656811777861266508995085532342186888119879293248347878407220588727877791897390807277497153150843640420922929457997294196848840668733422146344456327021903411061736133696699861964399082175987607984821077592121897616475736696297441813277048735823861907620563419394012947795546743947686393562956067164467704697621887364605049752766747885472129409370500910388927146533360155830039496724611381747329157438029426541807203993778618620403186693418706989959268133553842857114281388371392426588645671584647552170329558724367345086049310679623050082532082741474004834817470896514704453203491063120165234214775238087680913587551656325577943299123906821000441090005305522305479915335279142462994934029377853072380270242641757286569661064829874306734963455872614805445120795004680677768084107454064337339739462217696801572670477378914902261379867915324459515822778157686157585344160273613500280836107796254976960958035160855748272061242745057079215812149620628101593114382177978371748131017155502489969913441376196704305567503030847185313736280852135192891996206984050138461849059320218380017935815472983639114619884705888062131937849293207758446421425365898511191866118684571963419422549368419900780233518191310784910567109119680755040254344094365038084347646730534496406921375551211005121641734870679680403920884716869970123358237518784923488095450996619532899012533820126234721727885535477756347223103443239186558286794850466184599481512135794625007915322754374198092594481724011533635049366473201345682427071842191924314430283002960551476400669511617523249880494619980056833614083874031856042517927596790754308068825526327914785169982146531858217514581941519539098980557474466562478232606004151327685108564037245649854144844604565857614189705313838072270580678797350263739826796270434643117165969404536830201760764019397511355385757133032847254925534435563373446006453895621912159159603428505486158674163857170662954770147879634203007489413548820107085168447633729237953245850374010660802510877328986749571684924999280054564672864221205145084841218798724380341204458920737091530331355586986061114507325850768173670008291692883118786029185294630625487979937959032299286742414928840200801808080531867059166121593944053417489897235291397541604125920601015135442418333421841176789948329586803128015981029357667404044427154171387441415886039158182492604569935598668190393731848258563340205022937520500023926421097079521807395636019581515411373468384931727539244147423138574963624788993750792424721892939525243299250833719240239477686822950142323821252247133588611611254904628389447773476664562384353760582075597039703094019500681097193852157413424386427401224417767898682787344505563129629695031896714794338897273986636652866979015244041850474927837670569371908171596243221577946504707808874029001957489774313456094202575585067871024223049993650832431952642328416170812679710736491764417694866462509607789124263834150490709054299730915361219835066323203059276748731316838952555939600390920097771614009774970326396766153598791895866077112428772904240436719215032400626746750979774233842697801999719017413516560241165284965572210007164385925493762724167666395413025103841115124207076526289815064987769437389088450981619105532801009055229394385859866823383149109490477571671849874839907285665663557666901941798703713082241054479393570164351379213967273949126658913301625756701521434556260746929682641370799183511215376309171206059368056252009251575733179053685545862900693438438654922133434574124105555732585404414816630536912288938402825930819871928064602569718696545348739358522482026799680341012336315152233465484125164990149927512251132679949086486635286488650237280869222738531886665464494415625910995114075410241096215298550159184070371940605115237937843679508000786901742842495612785020004302577889355528813240293687756125835603279415089706613340419788355082950000750364584317712387373466417500877073693745258401029211114781106218125883573805875707584916045704921748423165477511134297551834919626458992889454672249228376083541951707171678400281384292906004371303876928098109638735637531710578497057737299377208563434804070253414370814450390505950366099744831549641063307517748844456481049045359211395813273444637835834877386053168341255886477494338936260365943493244574424036300397841153621849171982311015866330503780578964162600158784155781474736756274330396301026057217886708713008234547478928241481933693254106831021890802199255403198504717725336674293440334200661002047424700431467232669533217810681164910949682302795348739888298324971589270208051966405785025370874605793427249662471408891452063371917515024587659889566499859763027913533877994050688799870255311273115417463317039676562564916243425843511074352259478236556180335120430917257447737187115987789564634437666119053347623365512449202180313057048569191355707746169795632232948063229019971177888808554786298206604201295100121193823886674323325247910648100646046063106924960878485068586029344055876690225375616066330891160725045477757985540396808683620518418215146546519031242300433890416909463346632440140058538253101008387429516975247443846447081718186404438576029675550370873784489920760104634801379822936502925141991957652186851725705341763841935429059654607773776613639956071147774946463262920213018916286548478289269969152642755356024689211477767480866178266128341438523400148301213872928206502339641509596395465818040187142545430249224857052657447248895540111874534343870423453198435216922234535684850951452007745901578123961662587767185279732991152907735091129497988299423130436025206247141596059394098849240298784901065859257686925428229319903200247294066381230989799193863022974794271983120594078930142116671258099411561543705616460654442194402122552109772351863577199245672475036230682476189666076096055791024045376607825778029551629742238851973857684795721331515783877346109737048638788272926424192881942936268116376207044821555808664288202595708180600812255196534915185519991556853814204061769335896611850721482398469884440079946310796363313880288804141718041853159483426817069708767345678243632837925558495065912419068383785592988179819764397603422937410408380206232763899099137690640020034833833448165457790295911311180379116717253106909293113004801107516570969455368518100607081635131161539239125011497809928617806661786899875527924589932007823132207730754950324898671204987082939942363315474403589260569889100126444222127703028942875783389343267866382509036734406581646892472556375835816043153974316332246941115933134901817123456951790781924616231554848433146670438113559051362292671710616423783622492777300152477607878218345350785683549820915329154675357271857569766315670956370149532845222247839350125326758729894522798355400866020146561627371885923989454163156904000858117692861115931912834076277233031187386779786315330085680290388650636955967843517666701694657796437780661993030152361634472636259678468924212130972439851674386043928659964297010251599145058426555702949034786394687907506395930847107166911742056848798033281983230903134896276303765340506524882876532013911839922412511892755122306251749317743104274941264549087209856148741212527560406923390410357277025575994931787504068079120378772349505683972229813349573033979344366733320889825001709131492520886556010913247900402650180613516310762817401404322759095005186397523945996808919116218498624049577735830919516877099591842184492755224258804946522602386081425692176421666459145871737043373721869037116357713584748586525654788179062665193524449571639581694336230877918036226030788460947974562447929044541863694130699784903831899980717155686040080295031863881264365062940907301057465044203136188511908408003341260674526161725827755158170237642159676391890019933923751758834301691445383124242714237793816360739537607038739391703759734479006907582277567623243447213061825838693541160899432810763341005338742811823165272783903991144770612020471850974752217759976830362952113059902207483038695703550573980677421420726637257923298324974262819953858422143413222179344056747339235836980103117927200957221713916662320654580989518185376332094303908365028576206745084994665598198103946438703572566883121251070920087208754327154746514639516485899138329757829977410249802849042099732890277620941861168876692824485448341399916281150678339547890848139189101526518360691936087553327497086561254751147697599856711231812565180006681338183070545108330873929389090218662237708179512973143971064926723813317959036924634650701561428602019797340126241913946840988944693952397878521688098536663725138456816244501734745806016434472634750730286238820930612541320809818391728855690659868287129285661906956746812039103095797185886711164065000246182624628765701454062147097561723136841763660077627186340506874167825878771498899077622625965065653342884484318132693362937453341545506241589058789060607431934243627912320308285514178003188507378695154443363767567741143166416763744260771729223388681554650756709612485247418840853194834967725408421996666535880434519398022381281969974696156046341585704584915344848930687564891042341159479227492140565186231412965657040380401324679934251673235022429109824947863036456800685788615679683598909472462969294259391766563826525644405420610584069938858681883322149479465697707173516329152456540403492371354962854720042775270387758179741237236710569265637541842448024218757203854619905784157883766641617081074428528748770493851575308195968456987832923186112285584450017370460461814250711368664412712607376773313667928184730579981309541372406572413500916771649803294225865094757579590543538517750638062819061210412575880665568917734818149443246614843857766346208492664458524141566201488461263809309315399670973881019498132280099344888626535542661811908705953754452043798820220286392106490095422532956549675923139469722467653526971747493422206068678852846377501668627403511550028850455995636317630364377454519306418805910764838492245938502276125863372132893568658007165484577574005281606039783625235088766973355201901875599315163590946662317768319192051870690486422546831594237669532865017922023685576157482608576326012855341667140456630761197787778253861784240149011602657121530624212979883749786862608906689255269848747398471905374863486432145814754912424756375350305725921777807559764594822648098115213066518362196809940857290756082959181426947769588657386256873419135301129156601897778368313220771024136984883028778202403775926474620462971316846062055068718421343628148732264295003161134717546426054605905325861492760084027556131315464053671979012255498435260029396895866025042671568437117879193591573117401251173967873630209750009378637827104429071821951158317650482247895102759131067209332996260968988627728416901134891999983422369885387435011674317243588069993100217980012710941710796476487154229056023007711359946425899368717877291932714719224016369669958143400278105585527087287606056999373389398235741760592958610464974512695196128618390308924292737516073195472385272370796006794172795528086496038954701845029010282293622912293114432058773845103360024600372322643885043654786236780727643571122511407162546718177902738484131791204935709329169331990101753517602325796435724637992604725188214995945339748417348225911859525533472722194257958261480458639028080631124485763481999508069903250600812588646462694978291156789722078661956627069851520716346833503101984000460904382747554740655837952846712248038951395760005645011451074578331350514530931447235662394057080003702005264459374684559296713862766831762834474059345929006668586113675060363921789789348666134374266451192247367917693624508656808718022249996649315227222626195408541869291971681339846328725924312355472428284075211983882163027069908579260654692461806454612464732420856503043765188575332778135665239285320907468395376280802354004593443162690503023961280177873864465445795534861827140869693991355002502226411922940923057005218211954680555468461369624188250997396534366530736518074999786201066226050213782208873643894653771131047492740462378259707084957764606126103431196131791551476399987275483829829219616517405977795296202790478497317009416810164704790832072961700541006566151711730220459613215558785624343131652189982280563653396403636673852817394130204061358365490151857171751439323115025836034881505184487191737057596176578880032993744707413702991307630317736209355229025868881870148541589437906657996399110805257419605007610946914007624756974548293392754320304063839423826129966176222305960453680533547295788787040679942227808207363222925002937431300098718426654708961431336590419055288856108337982204101830874906992622687204798994011217750596108949282558026031011119693709222182220769600827734300079050566021509155184482001729081380089479446696502943270083076387579354587826413121756860021472481533456184080553444832960889129423888206533660480940710010458044737407880921580370445321367622281910197014775501664768973319959263955405781595227702521545077982875049799904993872637884445338899599737092754838444698118249102993750154526390005865504985469121602460182912182899153991930253012738793937417410742103173961899362515708915898733277839820362040231114909957330273172667047577569712842586465582176074943199009562047522445050439859084303263538127408294240090564987324605809704704364169707714317564969185124205010325360880108239551602620457847462280956887338246019902737747745011730744588933330627373864063555054829939457395965211418114524438815903091299284377716306315136869378821188151703399023225775222520321567362568194871212500177886889356218843894205782749649895597384818505786836446678496739277044995959680621449112593711420637869774694616676379574907905623061499584666489314189207345691056053751378290237650263320164571584458103886281708276360318894646139101721840066434612917932717431603671695826387219268643490007720398690511188290852567748484861002968827817984376026637361798770975038063031454543207158428260677309727034130241832275502044000843878786050898680494366845296515729873981936494748940104468389018806985057474972051170129787945822266370155054304335493593986687377574833941318794126952805230501785144062520862006790547339123013326948434531413393868871853355257513645322441217160703044281935833850752603714253617406165349415748693216877489928783626765172963045304121378805757138620185938166181338115242994317873097623922814957798974616572703687143662943771392620570475393527550912651471711343335798439433416126471372510034341321451551685085831640308227697176134112784406693938177272415094262636442554618096097188788059343109628710310261420235289420620798635603343366707251489152529339156008893264714362034979912259784646791402572402233685590378853875142584329205062237169513548042747350700062279911816627232294512494031115850806275890799180237670772107712237217342456384316424753229009684504742006943516123995605592954922621893949083484900794442815617760234829313914060918375663588596704465408562178042609758619464931898580311829294673985125020497615816948239610185757814629996014069494256597858805421713588152565083385772863793071939182461265653089547474398113880504068423297424329777418967477494867328454573358358343073138582551741683599138338671636548311817249818715314880158394570713420337132019031426916526217234596977197851564839370246383471576186750444731021156660110782140663282362252292167211342139903217750209135064560334714921035984698735745221572391364492121426723814990817849711775040446613549210618339759010077470218507177914703970377079986811363285798887535791158909802805698585088888827565595665141972759315130727519894684191165578631430739241386910011653735795566204611735445068846143204919050122547856142803075528306014236158943495658579310321707969689579738851935941175616924854145163262515195378077773455310112882340367377324647883902475281440130459557667916259225111370277867617101760789884739183862896907394036428521044952833090513302762817439737952056710059551814503683810203749118632851141818430715808256491590034187204646034634324795626964791277988781909931881231844281731380839621497058862461299310354329979284133227491590788824818382039643748941527143505874831070033804519884922524207697017532100934748570747689764766230697945692633638482235902578203380140007720562040099437827197913739263450758241551087133778245588984488780280200230446276315203012563115578472621262806141550085182184514283059582613119194529418635721115233241280365995732605345767979205245486108728682582656949575216758098970906779745081348265480168596176995445716477687538720445643034928726102535669693130754589420973790671616602546284280016246260294239618684097993644403816572327773617337926638280071285594830147644116503511460407762862404271667233513901395435499186637547910987784374098525376369017162008939465350236480647146936497150566692120781269987500969902883394118402174422428228990352833409438237863828702310703808424696995961967386418452317246060970923994310727741860594553635927666542146156319784506728776590368248772273127095344476253931406248110620558760808203546950659310130918962961890712223097749126729195534840504242218995583726033522183698290728967009096552620101403671021479919330575263586501276791999462731174080217977129826092760919487549812721092283441165537243008732765960501555569432348088040501365095006411373368404034299606741336082278443625690145586521030941832647630856161753715774139925862645504633919673934731511498628336516945027838504661244895682455259441371584472672929456693306923994019232218683553770018483379602603753204517561048908302498772816278834684297743830708784208594614937823482636524572942598518047269590015806875209929505359872128351205562116076849565330161528598403509258729894265935961549473591755047873847739388560920033770023168044264903747483392729259609003459809122164627027665287202407882017045684932094112439593587485461581345206334379485912443248797109960647640634651487606761113458999930504071081476622669092186717393095779926418027823515199189746642717044514077494095790930951881568171571824053095586774290156957298648801455319837990284217434188876130068533301701489915392176287071297334798962794170191532400875112661242187108728072007246141881204586812200946537069445725642011060322864680887817755973712620559043787510281579824157733820273869823776957545624722998378236140748884774848212136208396267206032485057217164073230804572017302882669835273776950226464019293984028821491024099487097132799308305711455952653930182647208231662308088912254862143428044600063867559253443208327077088991534810334697238603508948998020002313648950621799151578390521810185106762163087161325847287093855443090773618855170558734027769432980143941665740521663113250075367123609450088247966979691080693619325914356457976246284860210242621401511721742139136510232982389543298789814510502271541285193913415337872748181311036426662657424382706298884272227146203578238680268209244464374690704635480544294834587455045012659260819651901204754255819913160606349075471846113691449444799288957865243988941687055219248862170968464735891325510756047262066209259365850998267624185673008320294605745078820345675573249127221881253100333041555516630772471323073822388543831793467321959578769946723771625747705168882531837885219637437157701764945310639111798617583404794758884020706888345069151249681088433946519916472991304416348452566465115466120008364521999504744767450865876138021760449138791686677834867901442965226814519444061841411637278806253573637712449882355695932751321306344119798903216776473407105237179541969315673854482065275689974144295144056867700334958216007309855695992158947758579170716193329447730595363099142472652543445250447541912562335486603097533994738006866287571069293611010380598801732408467713187715137786158815205958997783018785516639781396257083994258551490006561807622429913690821485202848192211184263718848110370142987433779807133725988663719941679275140242810991552280350038262231443628130012745578318012236751185181662842811844573648390184577895496245694297228177297861015577721570042225134937431262513292259953144938788856431007618837159869725425633637777091656144816354638201483223557138655669669563622913958245486394806487846991822279711428337640063446462649265038373602153845555752873805011291765133752489632854574951797779629251404742825176679612908953003017703452402151051141291947607446613781225568330864321200642579526339161911842813506631614340709841016729982589705507309162006039561754666757520555366344333307243435079617065947032971121530027574656331932186300009028297249443786646989672523340967941059465686699564578196189442196942929046248196504116374588953258334635380178291274083733403644692392840330917252808693794598346846369278747884943273512094747853439228449879055087319082323518211838589015019081111736717120581037311083434634562743638715705738791889116962084365141194705555372864911097877167463889942178487361051925540801282636029284303206681054357084930162357163226632679989032271878655964386029461826463288979306976137016008105170162667838793340477696827420619412890066577083696387806652244324573327192957606191606577221196970214987703029955402967092911187849198085865361573119268173598753752269888049576329731534213809265298436179743223018413924705928131293499909811435752772077639081713066516817755167884399206224349679007347145946805851970491945987368142445123001982830581997842547031002059204305673357571136036685944359576754891803156087825405766829596673181271344254256547143948502641777809745823372878687254580074547839569561535770714948625456486399554402787563001837135957865761121799091057094245459715871980887756566297457410671868759198856913533696272600806254760503305733808393002094020212272336992245079993466177359502136576104723469834024414644637695968202702810620043225980354596946024192043828165666061208843759854407024811111993233905364225710853595412154265255546778070048095020421982602837660681483644027325639915401094049154920413668089664006543614811311810291732921101523866742786885623191297560014558708658222416207026154943154161124617516609117361968887005014158672895927216817481042554131505370450497157813162906021681059069335252985713205742163203821417701403163965574031279559540715401395086542120563152611876212175233067476063056162371658774089481776032872245075009545107992903795879471670820470478247271492163490317921497597461639799145060167351852103228392105290778287794595731472350101744247532214580593407467620454159995755344986038112609878957596844469784579977733273219125881386140634635200263658740727091187959135056869100727798585971739219996992681545131545942394238365181592525644860328100196982626255314522286208322627830837559584245495492905168992394737816267154840527690536997320030734877881990255718976867328504407202345660718179759282925382903814272132216207974215989766216901917513652962723120023403108216610443630591301325746798924656936969054198886420323355426727561051429039117983514194447929132943964625361490456224482976499679797343574826476009435439947046989188113354587739890971213773781763825219204157767019572240124401719575593164586409181011190393329160078187562272641413944626193855396102028560161621658797606633321772142958084701196182111205719228641781504592317749557962040270202126308586109637972966528870529578492043679664350431267853934106859258643164555910201913169314820064088678396435791613761093349729474242772572367196053477811519864146099790072064452274595414805797045034981231973582687944105122854747392343344893029520892934474998410929444866510516940495428658267717397339509158044649384872772344360910300531152243141294883239370467794954928970923075295783314821595177100710397592654489934174072230087208683377981227368461849658650350823646713881995415900766865191171960393561887376330248426360206488714968371538551735295945883680570102907718959761036918459209399295048001152222441308126921364600801550105159852605785316844232469177710897715962287962062126523458077721598877711744287541428453416819740576147058175195053631196184552367530338277688683899370455990950857235745746353776345755542346546535496498084782952834004573339771538432269704801443621154365523024792564536353939915899163014016824390922640481630563750684539879479958678634665719048564545581261495895411636372476315721072423284105424697158929679417489619643629517579823248852395368186711253754414781686213597900489955418732103154099982618443646069469580376460809441358592410440819278542703554904514731704837416180534863926524801196384133032880195288896284396213509865191003113017534267347766631227611725149770294748680761009439981556422399619100051387511186259383230214362472452388673208742625766175108555439701739274446204357398588059996787772957442903599945760466178304310597845386577303050743422184413925774796461276832878363852705515473633083117854511633486415689499493374578047057704411108644343170510689346306205668789920294125443623903469351955317500354842148308564751041886663855872814934812901385688503784412793454890503799495241064818282183595101148318385206383143843319979208109611977134631188267110600886768453436818953871350938101039928101899310628585809107834021405675763315754414388718043516527296442794292691065951715915749886733017210969641754333357291158071770083931562471337441944199946952377272363926420138363743407297870550907986363099690310645149116674616202145692103254646148730991679852569692802977356086854400194296652639024706023005197157834419074552847826298588870242171720152257633364408579123296705743613208836929284173231650267103232725654546148762210622993006917817382178520123926191910656245940682510151223225085847568427227018355959200819330045143862587575403294744256032519278513290079508921420097547031762421085500685987561493530750671249866486615385739926974149883964003631111162519250867718067891853575363521192436731827921130236090868475586690348826934590065601475237918106913870777809854071288137836018197366150346796077922630241457546811321660976317164723363792996776539140089549717774479880975832468672687337954553383876415256633183863373291178533916200957774367251630142933391896819226245631673644746101274954082643883361113794523712368838103943718433095869115585809284988298027750473283420699190742262993648742482084873804548717180203844813905476566605260563890495812513536366024917317673100065139463214921801509459022876625484834148432590759077271718438696363604962939738961184493556401867352033999515537114061439870090242210535208810964539060667452777138194784286535053325769824341439092474199395677150983069817375741659655567898334500517044828955864408735274526340445376637201322685256717663797956138592943873797668338817322846214032624362346107090901982164593450425611993204436461721169569972624945097303551553233335658897309529230411913577769930182939355715731657136022789083283257940634084368353729513992995003113119652608232709869663538232992825536345729188958247154905441932457978249168047879639135225431214382634650367412090872392850707197254358065916380498485779988768551437938622696072233631192850182994278718993141051936000830398342640932643013121586127849293883440376184324723176150616448191589906219427001423593374066868668091700914782558818215811726129347490925086373069396122355850697490172555403626800344135784027700682989700761045143537396606929340186336191506548805827491934870193195151251374611075328176886332010016169691088683439326332787800805250996358589957400505456147469259752109278746402534270194190822704472105683213062867537116854948709853581433641392907572836063617739994138303264857392333527370458318709647045022454250533011639410385488825629738773970117021571284849744333677172750369083230963510095975058156317269897670159280127519464473930503195709315869663712020421367068954844759008523603475011901024471483910220900662277645499754410316614057573328649172301741215597766094595261644968642110934934181916572156863533226327082131320536111360729376068518895638250558404084545553229765760701038562400652520810148467194844053602162259531220688641919034049402043581545590156463454399222273794014068816777282031276607135397508041005704741802186209592827958839315343526917797079360197105092683412684303603354851657543543943768988343090737040468672961193691438321399638920561079709340277412985856955608986487873553211823143182594576119209576008031872569382431449908399829053759977893210695426172266968726293999373584492679535249215060311319370360728421887685546184446105272239517661931076500322631772675039099727845826549491895680346376076327949788414832650767753117424778918386505919844961805381338310164673683732975945830323087393784897788369608934843675411687733727965202051611484040628417193587806004653360695996327369836950472880452596800975178270876809453753284515146757270760053930825118466935231790231227413524298827043933508546034007637354641639790430122404952407759445885715866833864063238265158661627950614573144942249015581533181240647488567863963105166127453740074843776197715093711868005668894468863092632943369282879376356855799753042513531337957901048361543840182967175221364529223508386797633533896723514500596375039297486562743864990743349620651636067839299505292471969312492059522513486489146024622631271954105107775338755049894620298676473654456119507843021260006294832591480225591772010762314942470375736441970376269677043955404165618488500981885237239902331605929484178804896003620711224571331828648458562544613832711594301053476261518804925011761508943144084985290392322690259493573368909527250722456859657618882899169511908361350337757066732974618092244571210495524744648827961313184333630467422496624447623940979624164032472353574896036734651426033519734627740273379502569471541122039573431133625043802967264454983875117491446089339415123509700973361954499486776863220869311531212032112175162723548786624269062712484326222848148080323870634130560686599465318419767798116546776188621759701056019165268956324804140639340729356886447435606300866868834599248523515702147179683637670088487840481324950258949534598149392479695360937657285935544110601904355167567045958838083616897790204586825025757378401689214438508398012227284326502878270955775914318955332196525086110590832731690433930464442157294899460843887676053247058540439210318231637174395449568235164073645428193045962035542233773088759805737083533972015968895798907138055414288364640121720350195829942322040576901371197102824539670285296465069651546766661264316706886729983683702515551786493226113193106846968781067159147556534197096054420523016657495545858246333188191063414455990222400601608310981128729237869989985144766001570333054921294271277928994827700750906377991246473166769155764449737884231351186045866316715846708844304109019199375168399415706610071392129128688470335121744842168032067002178362429926740286851156817988807237744822922903609071775298373372925131027553717163261433559296929862151761381521166008913147570691226026857973410373388930165185928726177117871991754181817500047722285083589029956906122286540466998290450623980358374075393918547973215531444524025776166670927141296811959678940735992615397115920752785813924888379392421116118887616346943050138066849203488715021153623042865313510093768808097767737651163526691924345292802373419854143868413314354594957316958817467594992781235570440919321491168110210345133118062036893263683673587589412165172983393306060897830723288996004908921550957707975035661152704344037975761135008899184033462591455498296541897846376748260386926460737745594056110244006209926266546131800504450867343465743516349081519252723607417435237891139722061477745827257257665155862298914293654981998437202833225804659559132088993287683651230253652221012466721612274292210850951268995906292307878122928093828442038697241933310254556621603971328859352963869561009225029842029548837178998891768348863485376612902692014994299536059541907602809797654908720066557946803417667077708071989411730457835203025045205012292310061902152582268765990515645470007664586925116305879061033511841041446571181999082109189648396378941338867121053572234815461010906907005867195739665173619836842222250666031968068687072351488131096658194100703355226966167780788903921534719286176501500914978431730878885141364575680719907892733725483167803945038363321929996604172853425219960169364109966903582692747882980427961153066682804325005999010472385255215679093375154337531289904055717360628527119435417353435537794112804802936018221630914831210070560097524044567689396323540388872075869196663092853445295409969423716873607956421797708356179573837922300320327450681553319146391359646365005490057355116375319409582943500095724370414446362750963607272126515681807457478607556052986558367739334896093627185734646279373347479081138809251319973725400232354734880077888391511559334266598002582228006978376791562404993200112243345759728612406983901312876672569012216511406749834440719357629628387959549999607272410919573184112508271025241349380504252659865109324754689646397149102130517671156650621657133332768048613914241806338199865620866820074576791586775680609939374696444297714406030477244338338025382500063608089257308223058098021769710961401256552582004433707487685421905156354447628310032918365934032615894993757698477427001501407431682052111198198671952416775635401010105569966579324233437714460209270314793585374776139704962814942580413822172676993950021060397067457037742854476482199436111672069330774735540273593216866724780831959985678633298467608103337424795292165841183740099562548064874791794448569158016447672234349004275729074403959359706842218876773069000897895483250401353242096956626163725580676914778943590018526577969335093706464932435284386964021717714880523634984628960966909289272215306795731153144191019342568473433797088975840393346378396218187773873640697642258772242492413717193362626568285649889311339764704956100021116702618021683085573001145532239096429492365825748537349940492858179061348971375510417173051280608632394713768586755284290749914395083152429563962290521672149164718005677549409171921951406271122526032359268901872981492939436229238167548157158366335908950952659407276639066925043212515062959275030559117111158413374727553788295092006996427551661610240616415202716953238719988561504145999202539019292843767895569795834297168965401821980048718460703773174250998212358375406489377403374707366484820517020669250535046775537141366794976033863487171357801435362947291913234927696096335737120727442776952389569517470429380705043817086524277053267633104724183646078871768949594194685101577021287711856665213960070741430702857139133141688540849125316379063919138412199691653611954553614669496550291377086013077567116141818590023419969027861842523245321492103269795034752643108984002949688920139509880591559171061315277645699644431544059974353140121903941117377643792623069299027017483475765878944349223454036892625349568309083627117984948854980680867298540642419826599555453707501777727581955715679927828422086968124862473852621458334168952113614949403093893635277762154530377352916514812598579795461278591530265028866496640682945837954805991762518634404870380365585192033716247614170239793276909421343759182863876955453682808867049489962319851970375906358192837547561703503786798059262944179620485550087500358971683274029444327218868438700257083733300711646413428942296191320923709901884047968850826343851967533621401298567319309633059289892455489745303577542630822804875998022195848745956069623507797054114660031285402828421486222691746481073820774446012690467403868680969649228639365857607565047052263937416836996725444735383436753023674034191915017736265850408342657977970754700633401601793747852082299342166063806452062064492798753631056711858899595376387483208741806625691115885848499406331297599381846808318603705745908150643954357355421843467875533297815709736096695815337847198183732502898320737256196079606936986588068703043146723429081611534768862626673390549606769716130668513090863924882475837307668792625291785196566521937247881063402327150371837774739863787348129824604485206666365136653287162715742178252445665451269914092596007869041721137050725794674693221552494582951211282695272836222811870511679886167999983215611546983676154381026789612655149156231413257598802277483841298264448544332402138489030260914535209937324009130820316160629637796867925083051027925359279490717085286921091322504320694085491622597345682593110263969390737163338375140157770964114318427649277214714908921954662388507413705396931757346653441097663199707312647326548114828905586738815949267743059891839161935217698284457985099798541539705310868802164244287348799815285697847471852985292395410995022480064459719471704960900110678240912468658352742186542154749106748186693883427425883710527215160641498594601994705486578806746822382867553238411988195366713152057688985190094262473758357040863944191095706055270584142423186377541825361102480632158599113747377215343549637731523502337283836924384882114405183023060517842337517090132263331350544457729754376990634510840144230525963811907210567428506368036061590600321472896910646281062287937892773901411904146629107291271385783459584655120842634615987203804564856763648520077654489391932298660904441891413971483140587694039369603939968245370461452510439819375652476520351826190280239545203579941727569152631306257850288749589212306525426446727371456996394610299448744454394202457677563837424875315202267440435302395131943843290720623811551174918349778053439041365669711782021618494904266062662026359379856882091842277312019678604146177161203383001757566070129322442077050663543152683204964619922548392629903142719699650622207117205229303883383588821984028533418267173087678231399001293327151234951113953435187603187059215951448769780016136871620336979834745006516833877076241601905698759513970833749675761489887727379459477636312555155245261569571312836228940123697658963257962648722833604780063714323674430904606213660153978102845077074846704576469508821949962028939814693953206590835231108253477534030532341533245292722616588699543502362425485853019443248381811924461316798468092886079184752314126933606843706989892404063981064286276666086979100429030166176124678529023324689183070178984392965008740473839745221439242048140904819921714875109586881307221892772632396780107488255133226449333874621792863178590050832212498627555554494127437208520577271482507888805047477448553380968121164891774367281201102081217258153441013304441836903485243178925908174310554287982826731751322236509943614419021807841945925675735988830092490912954017852999945090786936873059856513409920781059702923899566362879966196987200633354388624562872960313582565941790413708843163469747165899092884415725320748175497151107537603248911171499166723072343593468702618234145462440070661079189516588979161977853908169029457533305415588546467320476025141288859620404498122662422235425425808177581521636060628049821939737852688628359315882244938765200616426323726698743415055659876791310365265448748164928115421717011315891070239486104902865256859896246960189498350494887111060668940525157594846630446952880652831654284633368179564308457017212350026413562087778528119579541570199508955842712545289623146162390127971014671795457518979069297984288247509442704895159044637530769186760475797650786474455225445755492470206451257236217379106950095846703079738737082312821671908179600409450095126493603942379066244079345543632544288230819408529988715293452464391412754883835906242542330106966248942697944320495148540583522014486242663934020725580573876052464283990817060015948847599127214949309122206430683816819698645930041723657966350131192702363621805360782565461791768834516521444259109104805088832763293931780910157142134352794672973322243189188538848016489030912126267303115009017433563865598984445827015095271279667831845538020737182361716639502009888461020506295257314265631519508495766579406500868949988342454858358505478713118796323720674774178233232712644959518201735373987082027508503003037444853761047944414450098737008307319176714561314472305131555683807785395658182131102053229322617682166630640435919200448045548808099833422654105419055877271628592359025202447798442347569419188712315059151646155177276392578971058552433185930328899478982827091595661254993066195591778458097256899280748357969993488783582055498981914938574609632357777609163237799177762207171558877487067087760375361749227116579035267855784387427179892269370125464810876642857579406793597976444108680216337729334157944570153643566762216587941242325856223499186926955459916109590809641501481734862450647644182192326830453101047005653416607835287680379626368477221128257351013882891801450696460085789653044162970881926932920097358444708258785829147556015324600530900520104137302061156756341091789587882973260959775316752021206429145302002726338087652620615494971782544072424286083118418648545464100691336703048634784993875809424856424277219232582636282853837276361930655787004072432441710132684976548152502210733344508671973184750384735180976946808209138514854522858842547391052182166122107321418634117368677044316101551537029900756726054081306301605332154509356113613369167829922537312467519424044106640494791561303000078662159192152356476612837108838714657809444846113874854255396400998008907960701347425860292424601122137957702138418849190463877550183422017883782701981156410600145956935406351259100717718043518151897102928865725485276154211091555740798101724500316054958645624740902577886899308318592117868120799203962025814203447796756189032559156765502158665125211478635320208774052118621091043113896708141232317084766541328000621390049528602995066206859321375285339051363706643905436433866858947853662798556200672131325042010526988509124823839875656448349081346371693788450496253670360602461097490218065890369397062230556969204032126297513380985317775779902796236077041170243724070866159564318888529211224286043424006950300458543399037349170519526307074183674903353808407576482654564675452643683463713482933046371045026190248538140953410546101338371565430117286538691235890302178209770549795522690844352241976170988639043475609213115782292707876381625234157046557369054167599493474985816958166397227811357127579500277612381014965822871312132586890202391442450424994924713845480836637153529116529936177852892005803260211631931013123559195925546141824769355731498996793878794098599701093397410497922030196521492501976173772479662206752522088795071413225824412428135250145874044472179163146986484961731620538150428233915346228785378659132072060283417033817304647570841950868575189917328966587193843824088635356182179506730991534182289948994099506517039439933287260537605397337397850567875254982838946102802285193272010058781779678212232688735667235475047386981602609966464004723323265547348013286822917152488930326231455422365666784199113957708074107204526957806172999084809683173719904824005033029237654286787780857784772052921433179026334140499160717854332590424975624906500284247716824771132470751052340168001088837044661343033509214068019161423832470090702046751503688553812590145970464584745547990987385081823556043211246330817125576388960813298869114988034644048053269258404160308918468593902558662870540826647841435009924577403336256250522195299885669806342037370427299190988310242859679560772184583974728072662080243210708869997096032571610926901684291463092980622275347757664329854851761533856766695145580333198839338402352916210172362312957103799673989972204002792644145736299182092551469051880441959478744496982253347600152630556567412821116565644665597781577674378426887683181878986688442388093647412005578153351143789899248273196595893731162950517413592400247005634565850754964631701995749466839535286117921564776180390316523127157532597268836024064825693303546872470676035331588100324488489901158660352938115450220746751563138283952714153481351515564434306205433194429692471493483983338986368447714090631773037920135443569506882576224184851638546077847576961467426302256441263528226672997558111315911051890775779353034481319348095020271520764780595208182269174011597592569552337093908415759056792364105255352400913602608056362504856457824400090437586746994302677203047670499353947330915565316208390881299122505677511593384833237352270306822156475040783924334037505644628690451674734372567342828767477106771113978831360967787892388110091586160630028810623074989218332088100590919510995114885568372813600818935191057522465340252263264842459497585213437473365302338838025969724177113482393261705776182200332291947512636425370335204756696079863293169956903910962244466098165136545922462956206829831985779202341115574489703178597782759869374500520376984864097501343339294958651711124975648314891944951079857444221103801563697036419127719520709195833840933169898635004923236419446482885453714554037078848115398551610166719404126866939242298223952102601560276682055267439108514862637023573072850857089522246824604589414851023332885687926742662414409709514267115399990643452422609340234771832525385126267931200144477151595984851600783057974832540290674696170086283165550604523101916203307321009825306818689314918410534959874157409454154514648180622843044074530379130237068519844622102674565758258520495800945592404517729649234054499707030423029252810963375913976749490454948782943512944069209799490211401499826383498101199588352516878195898675069431342403783918497421039451655598324576907146071300609335375011854774158043998843541728179451784494619519262838622902507114651883472755642121649165278435297849831085319732181188780878119531640211542860869599496623417020412259882516374955721942816170001182004924582544003874198844180983600015955674929594108886628532257485164004769103629541127835881896670994804200973121412859202171448852211883119821407963162852983506975909725564724015854833843130103253181114156101920887923087635829104166058185643041282974800426545429764966699067455013682404277195475465753040965385343863436006287403880878098570080381775474678482227517214830318851499649297022793912950689478093486748904837292266472793213694481638326774712516929449453974159576175410498176888893103852325337897367042325921817490571376241207466125915034751504649798209023404896858145205504296568548230387480612673136924689698357282850641291358534183765226831117797476287221763123283067782470458781326692453994156563501943518834928767140577526794339653879599321302786474199396710469916110164287246904517818348804317720364717035977905810365212048256063341493066651001409884599347653717871869396695184273132644212986904416280711544490806393487918870737857897989527196474418119549884809757871679291813877582395496547211887657898516788360819965534306987013308852917004457098596985966904473189390249603263278112804243202309734877045225411879890049075664443512754294945309626253644318497523910259382990505272771916890398267299609405512470113349728483994866976421443505639339173193839337782339601433270472341717851437975544707003871188366735688856091849191323217186976129575958749036627513562009081122633456501613396903122059111124823368582621325871429708271721484941907458879137948609655688154146080667108752780577887593767784086820505100135893847161745712597817500202010497307597798165446155130951292545966283464095872108299266550839426524168837665309454780723413587306284863519317314822090029140190802545466734322879829398004802659490690465968415972007330942946612161019500849693822727700422977640959716189183277259934349348743980812353383903934271122585762764281145661738830269520566988983669234605115195050635138291959976851406184236441095104902622916507733305404583949430588477095839638689751277122224994288989068815003844291243411236525068124869950936381133160263826251003289926822168763610796722742127755601414615198704237372221592060671213984350097908438783768794971721983606099427362662778278368549332702349168430014760361149815093116050596133883849013153182017897672613057828047198265383560893787750033523928099936360993383600458853889208213532818585139185056929334092738821961497140761101460714297699208719442142097208574503135222048818790709444740461891302487281311702146818119746110952817838868449870319216555806494577870307251246443547754850941373032097682494216179101131911204553176821202748773668492052525720700444471838065680385457998027912831365837162896531988495452887726126457276610654941494379006715562576675587153507319107842687313329911267061561399462884367439601417123277689907231626633055903339685201517227694231470207644022213456942730642336818522569753785167169005111319589634328965285837049970165071855946961585213509402234535926889612651971289757168387017309230477436243427992799232205340877347665121962131859038036593009600221213531000795769602861579949254767011562222401939238647507642609393586601357731726702277637054701200011187869090047237879698196969184292669969840368713098764497166963139953773352280359541767063838243060511575247527364584055000711910556739137809228264023922259054160917130808957488040236335947012159009620769731065215103855812046580334159296482997228977292137161871438170322301990955301536722379425396387564503443121872933751822799823720478014900243624347467470258028440422981654376444656748912995021112305819286926120401243604537679693410779202154524115439603521441866972224650243510943525455753366796155538687461761006868326015270214725657630792379277952861436316058691002757741118983328152639108797776016656760998648712114383101232221242303966677419031221360627525505101397446222558697446488350244989043194809450610945976754187147673721548169300504023613570996395247377077231480923294033697150246208761564290545708293380630801338865983359217249959518916127593382320482625468379903152652179926465692367158183058454986043648036407113769677335332941676984163746581362625198370097967122361357212173413197718535850592792685328622163518566731956710960684645765508165005446354297675564086660271607863957337675030840396338558723978682692105450957747010618360485153019319542496181264645099748641617749781236252882379232445698792450143576665646857241247128756090150080015472838356190546097406060616374664485936692872779360016791393293464571657342812074209858304863344334199735269359772218551729195081209738371632745981298475735085776445231505481923289324697920741970824104816195461663287138675269946458533743791781429782232695711718880696408219929835828587729576120620273290444449388081925522490756870096556062317576740356875302500628967774962755902879439194821926741114085284966026774057970259487585307706481098166463490245623102436170940166900842973565854140848620751549854478370617738165682501610943226405546722108502258424739285308595586056638650434370640311707437960129531999944865913852163820800388427553605332066909188663115514959071664811195856542843032372977124481602506978333628224817039069973713005299238092913974879450953221289582385098391339445411056072589481868779311164081731708104197809325917178539457929676277713080413685945878592001190867411990904062842047359172938277150527583413037388958539016614348317789334203849948333082053377516621880516239002758133671374160783413409240593418446824743861572338489343294548279070016549861456556590132204159210406106200374945666390637571551089415690131662590925273426119877719720721652730144425374068058881192921984805386402368701729034403864695112789621315570649872703049851315803042108715811026359537114469788879054543051740181378808422252664633584010933535229303767752268363170514608402784285136303360954029639242894708041320855168992699497310660615650382233928430144708208666893016218927698017125891742364986301323442546291224462275535102061046803082308198644778850491467861209962413203671396920894937618710181006190874303736680823489696419378141915646518387068981518841915343572456824407143861933100079798678633671198891901323497809464202263928161779762949203227810284500995262929661179045137608175940483651169052126026890924420874556184008273247412983801225459165883006043329774246652477637902259950564105733666162232657150965051118258654181857391067662094385249339786769326699945759794838097042704562329418244142722343575463046157254181102988845121506498507733819343784412798198383183884135970863939801385183559698526443741261558738322478088653997083813486112008702081501951705152698005317814818698304899667170393617437547192584594577773491824375359626833915253068992201756816569831890685878649922818874843273937974277833117159600301597238255324551997576627871407815671845140896135270558381300585369250107346200676895500331140039434502047543463174004333415890796363897617727737643962083657836569355903604172748294596816257317263935510102420575597504988307376215933939174432017408528265855886495677128624040837605402308690893600205365523403479043547151487199100184030752133882039453988781138579170358534888077384297892018884462288606827440186866495700737638603116927626853611954830451147859640355656452295272763612201678838305529070222619465370954502687052304989863348050866104431307001538516015078184722762529213024277854872545597453356768789115075736940925186489411357734440338794877020337726889295748728255886515087825713604100288039988649430974402063961859804783444115350508075799436208731038205012128587644127112643910098854743565634587717208503507010601798242985433344301936288009906908376119541856663515181313973137939159001275745282922014010115163219911605609934790926110062707613343371108926444159538761929010805304298774197632172570958429753125533277559337798394753888043204531363247602216517384184800473365022481362619936020288261149480773340492260500851258506280768692603994417211985223207773640572994487414526336734716424448142212038271394344008771559510562437536091544149992945158082631813468153105835760663374983794852312139643055759119588099791720396199006112065600364603183977035669827928765872198226946305429908166558014525630735119935879619554430384809164926721813506088225329208547422115976747833573119933492898266140724041557794315799454493860397049625103426332047290341131678359552398306803483498421818979499312062011471361737557467643165460981068772028123688617570181802770236053522634435144441478210098132086979378105761586539244971797866153221252623816598658137438824494547063312561286964256723533932147529618642205874844031831052503230127477824753063636735117033578023745139610249037292896819827474691932368591302602066412665477935193860578549571583282221840641151950921795085311325539649488830891125914898691021984230833407823575067116961383048788371052405615069494314954744156472530151745751382262059840344300575141076919908418623030033800370668183003684919881018484258876204677619604184421974578138293877689701931072853987291202286091955407588683726968421981383348763110778125812928946553065830214769102711269067396382646290766097608639018548029959391459337298556282244970584045222095218405632978891557704434402686672663706773599307478204220748279827553878242965020209657138610271263901925761618262311058476392482083186240314115780312044425797248380962521953359456320482016315258165581419329469779926615255430978170170385907958562695102586320006459063513586774642039667999723209038176004617946914911722318716852601217997359038741267144230015957629128755794403596094006897648554167424589346308680414552089860256327853392871778947404770122252585385964766229550203491492126337691078075250667928242492395446213457049862894145074855866740604234175915893829817837738768681849959953485419763667307845199231008802084558066839994517960401937507474879620241912058717389539257080472748854327837728139703804010196399666654231645143367403147190506368793696104301217351032378731873210305932013117689167454001730602393241558646110709234786190953424067319198278280470868453329626214979864972733913011422357378808943298726255392008162129762809037775576191099994836266348996193760683508127108457558279784405259968482064768820340445632335605349114901685687459541395278846284314354203069453859462089971531298615345754516657851714518812554993360628961842767466653686100288376486751023407358213852756483491642076723760343400566674254465605465879880559053534468451083041067565305763812125601034992757132977549222192547372931323904989984994263797150571603170882260998224990093318351576746524825123415063938705867264435660493726014176712519856240723086411275953614275822818258329257744111202561635860607268184474113742214638069055854631266304333502196857268921335033846199691459524841832899922491060046428960363776318377071200881432255317567701584378321098758322999459420092719679781594822047622806797598000364766146747822353459573464173986410044342962503706678887513209901654489474484940893232966048946196784459472756782653433450767538015205158492168782110089960906719635059954021956154774245275978688705912664150931610974913700219785173221795229846932829994365272434848005709207327180502832265714615444464992195245618871385674966762012440627920261247679360472012420020370863191248886026177803891045614191466610374911476025639159517634239252050375754770328237702212814264422084268936567264822889387889357126492820818747421687442473466140479011269946193721445566229731249192543923118790978378512385220961483797371107610402665980382614013602489778439965272757215614982056196401133463436875828674818299550352409607383993145969615356192908797370665027691785481194557560711741353200548197434164568008044477132598887321588724497928123351508569852243656322416386929317399300821293810191190461185891244871924980480689202526484982789689994144282500323029991166375825443344471520236760274709810777001339063566702478667144235580810458115069974932959971524443400607640451517553214617749816315199342700989091322477036669939246641203380847998801997740273435371463855171719377382327239475759235791943058779765667582752073988951733926693660353880635445726774623664717449327232759027082711336957393126686337548166843529318698726115864270348142370779422999925562678312723882379826713698754350336962999399979485989197787416588410457460378395213271721947534015068180850524256207870768307156754702096892663412276931657195011269405875888710764311019668881537682516037521883544165753332308615431407244491139079919644086197721924574831890828954051841917422476603237637296665372326065694829731926975550581454366568255267120892701800287631706117337303087863851501710506966477062518460061988765272652003635839147938578472867042365297665640835162233458670426192190458291995302595808386804230051548584930964684885019428036051479753749578725652262632155133252937230859788601076579378516861670727772168215088853599008299874421048123237613159735379881332046542907847565461670489046581145437479282546455061292331360024174526711503724512351096410215912391132974779746852162740369308599954218555546668018773584467701258130598244694869964949420919910452890007141062336968130467937067727474701272827851262300198528124042404066312924438636693029540641217615623866490952837588962746640340279254222262783049989339431964250945140877946691775460779583837580376055757378367113798471629933591299573911678552580119217589837124872989436435108690673528393745108973998898249259488144994273182885582632009751736917555735238767173332126376908018703949322320848626055481961134868849833014043105668054323289312861915591018393121735007675227823048838160117576964102282684406032112999421169760624957305966550884468693143096761968920266645523988638527423476710077054710147984996783133739540116442778291230980130272746108576837359229826342477764868926736760563067027357567728380085225009838829211506600424645977022607153850671614024082872101280690666460911365864138478635439023588825725691679398501000885261017168839709778915505437077888742405473257156765554964452004559988345971868085725028187043744857863211498656066582240829165063132062964391511388769533005241512314910433131755559563669569992734828352776322916359202615970319215820233760705941118854541075812644275002675152104524620417731903227035135793139572619188228398592219171877795984628320817787707768259878683852231072166143441276120600293535760238002351830611971029270179878149004376552285743820027609103905125402225705943151343663803583869452398934789879563488025641508484169869353086563173071686975257652831073581279038299120403711402793619381006380479099631381374100330606368761905549619270790707736393625302493063984165097732589602610002662455071871399542105174293630997319901111570631086761841899486253621667990027991998702400490050262569641137776395816852577107096917825242246079007746867625296369613120786081200152208698615392633472292658420383368685161795481053434087283190766552754967141889624253933356099761985372574375776447770281259456603672764955848798963756634595749272907562976209871287683400170636875430165506963854405320546620198604540011613285537301451012790599295326995035290041254148710848096910588211778054511872651651643461065632250714831404572778385035474668749240255766935439645585503162294185642913856666954585242241355158549031934814609674857304933098298115646383971332481969870636625826278247938462590389973966516806981971717321455295021514554227748643863915893513338336399123398821734410248148627138720481214258645996810159271176752268299590812173765646151840644443290797017247680748475982767884327103860585592192487998918617637304640553966196712470449298372325115134413912848846923580222697943806642746956855510159235091027626624914481868401898329309365581575881916879898437716746028807531989815028942689907631893658673300401147353785961024074896280823820928033699556229236041173784918124043420629522484975818734872376833373461785564537475467742805514503036896850508531420391523927073659118782800549769162720745028118636548713667398862684166041558834382238414972343860293773037882169164119851550212702829840700023114466570373536682159429601276367324827461490509565349677703083040496024275813124942404612228017801642828723225071253872200838605622391967308777340180299224473313739525434489013202082741173387337788049418430308384990452875222912172157915965360584059875224490889288601878083536545079769657118231967922612503108190524682641804184028641182127064581497809512977323171594881084287339745993533320156619235994859617086352945594957716739244919878472283740279403272021088659376208898462605141031601689129876854840446991236094408505992989041460946343818578866327844258173226140207306274498761318103066377990360088223198706667897018442396056552359379626898429785880898358719723296345229513349052542958843302749901399190105393553441607557132581407198144639994416419660824782175896046137641402950176120591644672021331565079704148878877088316500177941198478720701700906863535953873993121708465848726330686411581663527438213929647737561022229456417805717779205456524415681502749820926667337666288779409163551521744018954057948950493560201044829545552588772342954527127225990399104754869977963778887360542465959326334230814395363971078945433261229423932118037734160709021718156059306042514337263192651881603197310695620599297316931072184958067150435880882491430953189164021115714912356618303261895176238296771564548768251441255557229401651273454850584584444810135328217584471400082022589172009684167073639551175772084640905195883943602187402456771801448951710522677626452704760512303691161703509289991682298419052787077813552234286477379340517925952373551593482433680102042570468578532694161987565688220090734828585003141217997254600762580801094632282259496271218864847647383451040159212616570431054930176862210452590100018920806725259217711487970660063213205988291279688551643346294624010009164359484209672837489725706903348327848338465310030644350700112969773409271419324850369913847557513814159350064392331351304443721431919558942244487151282986383706787676453905458488712308242322716286644955044349338688329291802656383831737383667819262930517497412338518785970770639870740830831137391408118685169264582044078263544811128960425801244589956222793658305824359372529430946176944044481405990808722513700794336231733291926447552509290198882317158043488808281334255826191066258535645678176579516984325222159247724413102066319984442936040970359866612006862552505986920078615615671884393490258126403920668282679597703864913122566989815737359743447603551167389484751326824442486998891071412467780317661904643432436207280154688792824152074628627263185615823747530641548997009268696511379368551988453857411904388888855997613632184087433383406651280649671312365039744882611953482065236250818868201502820062540147450256135956073150913201878816509142048928232506435787443731755558327181497508840402447265681909109568391089515633399030516868017946534363263802996920196626614538056234668527127063293027582696152159764122766349625733477192759307579552619243218456570531795560969427182908731456950975368544678822229944560545085970467968327423986227235860852452452388113179112729308425887057601567099650802090472059470931004174555224150547986575424589367753721206289898180565734465401104080042245796986626439993099452751085716893841481869863632057538910843183522417405189893084008437492511149571254135378884329934720886083548632908204173421069909673109182339252988223914446020104130966895497790061126427921609885766318539496488785152830668356742607830919284431213111296812985351158794368346786040642383264262988367309710395856837282643340503253894311994033020052012816686441183268499955596749691533722784753884727088512624200954754163619368050827115933190395553696046673164635598077601120332008368480006032505678452568800358633276707667374946253352418793427740045403796788048292024388914522529953800467800639696376570962550340919415769583284061259773989769015942921944737847994866947150369260474595792833030310226244772266614594789702697994261899093119977529041670968320006277826607077752079795407841078860082985719125712268124793427476382580569831395494699166525325300049491832003885008095701322073177961738565137842026393332635648857217276462226563753142344637292588352169056285006007181851875834131750337637592172977510129595458991485392671363044549447088450572560260601543863200409731211255710220938119461728111216825071761507997672244453364730264125024449670352276402191949765367276532065588884432098667865688832843566146436475449011470573489526130222726775076854816433963342169185758296246591022206135573485182853869339238320184786756512126821775041868265573956998977584012968654561244601814684556953885692310662941559846116052759581536674745530063075472147607711089808874216672554645465004772746747512035402116371504366662419445535220936127687769719626269805980866541011128419133429471287946027280383838422544120860281252478901662572592680581649521379710868318739403687460104258208642777348827263857710282554771147825878765976273856159339829646740219386582479737709367373299219118630488946615956162315902643332012917263756698187828653247033947471917767384891016941801848215290992731942679853715404926418526982350672468438246594490052267870678859058279608548284709010546675709882227575758025308342376375595691022279998975274087094485737501965255693965272487082496453472633970062409137285404008854969489533055926838828371493663961398793595873436107420802412058599363121966005585999734795823552711788518378261604904839238299467366421592595592120764185544741972790132907454398816311896111254807381083724865212086829085375620105210065224465235134827028803002495853890778694062569158933692266684797617410502990390864476294901345817158421153684767237438039193717180058338746433452817896593639194623021522709248844506897295027511883610688786966188599165681841079425618725716596703002129030994643939286217757037032575264679620926053674630377435135958909754811184331276869383348120845670119557089039356305762530144836286518816803763942882987703952770356567834899293421670219713217628115052257607031963545670306236293922672867203593881419388024147070819868307253124598540394049633948002528854194682662713138297542558208656329437885789030525458479571302015332507281393255536715806782503718408348163592020524679077500095393134543117775820153203298260274698906338401602658327827309785832630537248535999991406938623984002071231392553204552652359330498360355885830666889777156017902349412949477108708716873134345178263646877512417934830429822789103604148200442213737453857669157071009095683270947882539094097240394535529229954594678572677837455979769038982425403644094684589222997233342596947772643839284019522013068069527482269657128722695666198353584943684649386307496485698337781715289167950296500774918611620025055039581832655913369876334417460440342826768480273826874098925582281377128234220259428924146875745613682557281596549395779751823692724691412767106576266384553748885054686555035556854445507758564927187949899798382016117668479782123289599668286965562427274479583103235042850523828191237781672608493233862775296458594144417117310504314192707394848278499783292858385477273176582295382640711718404221864567042513350700927033693624742350252306970317573631350095757370596384339597836656180859426071489376169485253231728253714940310220531215584169870450777453102880799796553197875784100241446209889321814034771215229485255463766739141033934135617900592203987097150043600259327393568543205669274238890892178750870196067613076556545896152591532678289283600818990349215697811003618058258544868375669948225986031632500723233646971231872138745195536233900029099020786376047299524441599985729089807364921199566390415795552811493975587683263804582291247983309947478708510988137987309200528814918991800640353083730375942009901170197234793018341961080562065581174352753313156624609338446242997426162480308238841493649412084721212955864670254360286599843586991944508638968029125389565881157985564193702107468840579503536158186978690060215777969577065353585298759667923697702933547230814868230065139347525115028403178672868800545932996656919390522469696521446434191895831628177685116568046065347501222642573966192247348536941064895798966184087628116968399846831088814141537895495676176008359071286705756430788653561452553391215201449849156461896903631606887155867044111062079568586567385269294043301725798045240736016990597320195572483055873594568017180450586300827176292946200974026931549626873668914605888349718653059501419165606680803745111019134828126122245857590119890777860821963537958714243558217207898878187498215899958277068064021075327584258881381854480853699369502763262873897874236960613688092084961239799509385983016767508523156823570142030374726514014678317042923592074408103007001788288088254382208429660717216793619610738677333142396960460289262607290770606991420536361797446674098784311413943704023130070765598842945484343389612265728913289114770628604383750145293460028110365845067929328141937549426896275353970841085853888850477728555162161927035615695978923382987342609539208310904105929259175322997894881295985175242968503597311069877432036516189207053301148132408958153415029914253827966042824161273234572786247966186110941251531076438124168121711465347400228295141945536510730303370191243431992670325851212894295096514003542604449737733490998960842705433438567334730920094793091555564069870657757951303393628509343875671309267702496670356376783429599178452047858445214526189213737016861425542839818310800296013841956947654023991628699430609371006530198928204399491241557467022761343157974992633841983922266435892244644357325619352826984545117550025202004833247298769587350915089099197611737352383558313243925277975766816928669613899664184849246057751878951631644378912131353576704976500853604997454327937222225860260956827041273540170914700395392940295301683703449305395164401434474693388445157550378218581310310838940692551337798279075821118288583883275699534296188712273201489991624047294999145232943191528144739868083981305646118362664541449422807359457913923761600075721998107460575104673419125579460797740775650780497333036765779523722101666328935487244962120123234837241057652048166431433720538335686964169191903984579369565722921870844652821291995262583673512002860214285450225296354217570974221562561605269265046763720050392570068081635310089112812363204888191995925000572411481202738084669113558419197182885561876982658702078535561127290696367387818133673664512267186945744081840620717976456215045494750833136279863054431090830019826885918247171575045912555876170408858993064088276880862314119937911681574986533452605666632400892689042634732044534445786148338142401635480872346505834907595897713469932103545548251429178300726335545232588918928820786814577669388170121712755393251533187699630062984125288776925732491379874964878818871087117431000429891466050701275713725267381029481598047303943948977759196807826628748768937521966583889978099048029475048714834664088006082622017453376670263983395436548784410833542608007448113849560557460469696599895239601197690171377742490928705955360933662582491585077800511070227792828223514047970621999822873520834196014857755932390053515831905763627833878986672318253161273172825792299080959937230442858653450716967493652268143024202015462232243832587740400804274069816309716685231115865085376052978657824927833407997866668008949036252357325537394222622921951215961888646096288229024472322905533014420137965625970700704397307636609059402941367783196852728156611656131369624472825603898417119994186190986088855077653378427773345271515655301460199912220615262528637674437299575378436838212998651590996561823470221450111063108052723322737941179942323012740055664649823270565492477300236670265528219520630660774886990802502224225211603622729898250890757277677066054925213881007876593838779458002847418285604518704954350679941370309204886049254289528119329644338192615861327225888394353018532379697776094593047022702322424184842574671967960868676153693579939138202964611464767165562077294861649672044085132264159805432605565023502386623258970361620749246118952248664712872287619298204286150642504140256813366254211849590524691264847523863490422147027114303963029686765128274575705825171355917054449060721877957708601013504306561086942204055004750939246479516865438406600959562093099788272245931976922939499693099836426848128793186785342092567333668710499465688487888489608785215753559400728016560787438352826024511240957085765518040616778249536138257650412055575467600297921342153656615945072883995680969884101887661422639081339145508535316667670647225519073115497618809499073549476002854643096318389568264520826827314505009166890601908124218181011505508672650951511044020663245580927854558384514782529126039230020958050276733518013366211210093418297092014814772467131008294949771067169995617279114152033851377565166217029869791408521856543274220393005355551739487779489431951202011559907556899800148792200175934589140698589818363557687383765103718271312506827224801735297312389289816807928679516206066146611024870085311314880792185917070220533578264253609242120609074156795038865061403212573816788654073637845251913563312301997563729463068347327356689866167850950483881269461886237084650839465291460749560057241910164694484066897034706976469502086216910329764909567154393085668255611858307290780028967372305863244686271122680458843890498866204299514822470589675318057122388994679250751808647931969723392069293667377274854487609636136815073425932906948870218775151664322531620174392780616515248144961138769344298115182567691438972656289053591462853504711527757943186609848240159213803404390845587102236897635926739152884808418090692480185604988797783107222728639479533333160378962579144356133160124008187675149734174899192796124212652734643344536715492052695735839676789589607488876203212406807836784795451300804700520352103728541851769402601650584322062840003451878564550166753011503739484385609863009226363641988589643119250198997686574207559624780396825804244798364696145149240380180770794699886577781834651592875544461553001944045872988985227075953088584245446728222652072483102747343803570668646807411989475295912159114782110869923977096439739252441056842384003815830387313314921355322916874310578711272624152088811939881071846105572194069106712417639388041192127054318080626438001561050513144724878078795388967098860809524421672511131233572531682251575790132059295892067066593267812687301622845523215612795384871053087075087106219815880234994462273855348378382414411560807171156636993504212603784981454554764424533599923752789490414933667437481599165397496170340107103695085621839245704508913916587774293865454915135850247761327217035591440874426044129433270313676998487560652009421725379921873675188105715811079034521212834232394230420990898438840723169969740462267819794022101863699449427357069282515905132124295542332513985370935854480906150330183328075723567784863652450184843538567735320324460164259475085935303972209164787566240314047294835495529864181173325266429846508371283573717937472925494315289066137179249561645244505078758039503869722734090221420204805193420506900297454726388480715091775971712812220575018424546576357889690469438914868021790488257313566496870438558906249765202030146649680978822981408336052421330300765346343536128006612839693881402748784262798652211619981932301083862744636001427231734982511527571466954665120274974849899691216305129730141855513390983750510080954182298445908863892973597884787543756054139767224139001418583629135483908462197363041702272052740334141120326603949273596088263938298025144895913416168106114022451601932525494487267887850368813057591056902252519529420237333914011994266196915264644663297905266248440854094270761668064961854647052258793342727330019601463371135538852275622101488337546947739883678725421534886152106251410554206606390613210191537711364061778653546363436982889874808863060476935698377995094769178174175458905483059035444007309862604369730178618115535528416078632307792296414348290130232603617100949793640466342779190127673461472879060336290964675044980862673679126396418693947661312933406231633377736478103390931631357343601179197108978673319018289698662591541762214747377051107434872719624762370173867632194740534708737814369460721989138202116576777275181686560479442603636888482511970099408013206892166531198419831329386209491818771743293190800556788152221076998429051664255183504514874732823580266211275652107761202542380025392415192242987831987603944340839390752480017574636890060906729391367031014139220260160797979537884478138003081778662444361241267445645245676774347487590212855739844845885920881623630029331643445337196004770417174402178855054376873643692472529994644688685879269515656093963769235844019414850804362034966628432294595325331146282686983074877496717100387451516338099188104383322304266490703676903689124866046077325992304971489615957049607135626847306552674249506641793504354144011804521239652147048160823031101016115114326974869133674775432765061532938912309170493675082686699072735196316952303868977326420707260378810201182945143903792461402000716514124976190647806596151187689754344612274194295446783637365521466744979956938029490252747790203528798530849295230607668466734007653526078329526589329031847041077910511471009355380285902941963266232875801044360138757150612593386856464159394652969575573711074423372661405886177648659090216727453956678183923827374053271574205780742483598037730726166946666995987721007270368140456932698810141593919282359212555125039213586954455637037183449942116937001113094132925992279644359600917754450023517486631804475885002987724556183557650578438724941586398708462760071596390647729025062542013407398998809455206219600697314760724119027756009489737588903018954940748977134525735517169265336589290135540291132994171663704937155012606510533283132668447734102920873142153202163065427201466526853909029476156185921956933191866448894612140101496697617146146817115923368863738608600488753623953040648997451349572157171509568288190886630633359828834943587778132522912342917638094814982549631554223010824763373136332237394719243172859720074802396438599171106387176511425863406075431175554589464806807225749184449606900090007487544970114412163807228710554630771610396747326933193561483818197733401904600454183096130587112831435605123728411962956629914183888573148402040025956376218143791929457157234177163136807219971167022475919626633066834667878198521857849154785973546443796337970066311269243171075773494334805343329889764415784809379856383149263525304830010205438084263643909055067484621685555542311490083687314811981743489400831466715516699749882931015816534246118656105652735387168051937081622910066722323225706816526043451569635049363808625247838564141439059035097931035558543873614984275335245468390261170672183398992093771511478731072966534262561564438740089082030208254339216172808292007585225448579746064265535602917484391684305835950228568893198371298064619133717612866241168508056341141097074610627222077538271537216798194471033126587116492006514140138089376498662084595376950706990076644699484579767585993465275231883969351492736041867742141616562113095778394905151059231488093877446622444861218575932705262173328843118846417710217414648090508154746644750890672076679976145419942096720521093671988971564551049074047157797712551136516377790960244216394634218529124276703209585868954016134211956286353966860901229190247050328355140504037726759501080833647464476832521512832197368003867383677325604623631512978692328587716982262047328794851899456293076034613861758008966612656471224251443980777979968038223804744731294743216793646818172807161874333579385525022020246109754921875967137340150236702825094309212550890154967756681828185647051740848584494623751976412598574962462757837859265109373288844328042383004791354851823818732575894043770215971660582957608703167675213116770021705170056619761213937521588207142050070125605662553385877619904936759479444583290034338708633308888284195440264627740865768643961085890753179104170061650399123671984048087602480175157104911512244401698194527111112699362541924829967302593694195233941796472726618626150297898444991654843772615425133758112040139986744012023480645450966803918650408554977518616632307563680092741182551649984560477767555276241265413769745863911995115602078078194248389467672417563873220541109547345741996869898855768893940821052178919362667915031010292870876341577381520386124518884162671832157126467515291571437522462996947453331601615098653296223986875363545135132067940554015908770044986540310384744720836951395861172056654535953413602905349470068183270035214822917796755805069001578715373328951234120578405439271231618382610679486321847878190551880532175417483514569604782400554680131295724191476907487353183154169389305449647318491701645625103919852696218425652881317011918087072892415364340303766247827973671976981762543478272089361905895483075543195341288329336839710779329497488517780553120484347596935890577439663185474699842499532409159686287211547885539575952429029953787825246280923012978415199255011916392304331906260248796381462713477151570944518033807962877212960135076072003047802180150361071456707677921619721831059562285050969899206212056486865995995239190594489613933588843503764365012961394274562955235723816777070126057140716771578377881824913864986373971133023791039265901824230679926688066920821155838136252502683046236977187562222129030516219028697136891987987349081692587773541731031143865411571529341588541928193407924857695472905782047601164071672684547802127174900723118973280724480797997987755485911478528137616755981823540762810048104219669143445765561656096827660540539649661086237144126801843425876808984313928350134535981074564908388227629914832475970050930163669847773603427241001880773610478187355370614407501867947285346732036383861830993473591620120851762358416757687112815750777886541393893059685828363397703979545365890186620037456578986869781886579416230121954939218443495080928744294777123583495661172622150549297995642171715867162023926308751476233170151437802100025919137034228993703669361643209640824820408272027105279347819664600519158550454891486432302626025554109719656194347683309523078805526920513655479177602195335631683546341828422962115359596063645387890317981450462539950903338453989843719799084454761984334614523991473409051780835722673852641429884831149326515693459914978007468741856140274608084835918283746559538107748169697605046298776212734924135079667292498169104426270757135812626048298930845467798842034420644344193756694166611524760911313090099082837935724539451078065589974665870737399834407679270890090796548324395860203473083337482563923437376836582883113891677913865283188827402872056116948695058713560580912746637725204302800803187470353102600562532598639909893691277547778864511848445592243427378515213650612618903843624379299242202019426107921155679376185818332234296575866176699987050719546784580332311909265715810226476971512011177431073655151737695544939272904283750202284359146013803071598091603913884039011324574159540315614136999851571594135246567923508834369633210612846865691364951380060610127962618494893974409863613459804391418209888684896570196654952483732046260320089207365965745403693654554915467520809569023294628314665878769594237829896217261534523932795964036344757143873104634740199303825342654345856416201472238001436151834770266361838568408230734064145043491677845374177290056822767496276487402551254407892254952448360609514960001504044041000499110997360018548028611657522403082903854899197801415151718317979403438837725438688271280809101913921013173340293510944512454566606703974325439593039877492247789938008506120981306198824438131309583569300716066270819341428656975115459605233764206326027393875165035423985032044040032420705167647364339595897938661192558370204698150033984283872324042316556248539724104233875681941564456583232689527239280278340833311727562565728271681760649513729353606626272245923599120464818539353078441301307133181018129132766780488359153112413705651391254743620874776650133407513915954166537826302402373192903366010229602461175695986850590844903486717525032762337068662234411674377522961596675798388479773254678004343083390552142249186349098242156905450283055261603973749460638121664321921862227453530435588419151194662939733673080482542973449143198653769549754982785281288106527582608633743607316575527732344330990889376605504855525100293545935363288451983106962939077299842981881030259884025524206019130093859017068278455860609246616937044418896154685438243117129569484403641661771340320652743862331412840512005501218868349571217144452501048404494818053355834387318810250726537911479138007561563928438953410359894001852077848253227867121716807961196266643882223453661593858999597010910170752298728279543258885796092414459812914079628115770445368708989217237681705488433865004465656722021542539783187570178816345353405487097590621041424423680235335222819300751035115321217466060299736945798969631144352414916365941958731309673043066367520408121729949457888233353022460249341268035954765750424994900231315425295435002808424128804528736876972148315339888917101984131438878044308685780686967329514731758319803014075231760139523001491129448488907803148957091235898942847191152158845539144747201642881361395925180561629519312050612643667770152369902595647684891243698795439841033875493468886732204562591120448803178430859684296549435921502780716428238177659189310507024420328216538832644793593759349844982625485071346718635212113771684123297477745175263830026820604297260383781373804520407998370511385847866707502240593823425386140039530742698536963010180640900186059679829450411509332536021582074443392632702916309837447868485079501737347077031121638385037138803494378859162027375998292712726327819090864234649259526062340667080386765196604469938202599053374870909978502701695019520313357458887900597434231986005396376781108808184676207315931259197516155681847826294231724316470666327643012502388436754765648854968709159412705044828460123249217121658681635708218792259360460198304767635867996278905317981605390047445419799793615642334037041061558213430026961291959508403616181534267107915118094990090483123394649417193127554730780428223936582270338320583688632374359341534819574553264620929339872010914119950411079290914752853972238102355185280897229335184440571736941488029451400041908898145308815080514695479568103876651491581319589279319692333386714875300297348804618986068017265990111781115050356989630385382650066202996934449599607839592517773241630607049229711874477677761496091494673552098615941045428860726150780313916110999834638748461990872888550558245497301362271471321512066132728983943737936997645159284079380980713099346273202900788883203510957719850907049818893720228881060562932103244265889481174544480524531070918349587092794868103595497624390123570925771541319281881371581687719974289231116704554721927577403847237875594495130498226869681898066703246125405488003248114806352853624421190042412102116317187055800429723621629930999626467304434604283450047915777904490661145491731784056808595477233329546923908559950649330719419322671751667985185386010258424433452313587698025336221097423464356306627961385582367427851597224139253076843214689644924054082081458404039965019670443862793344799831399182490754079116152460250959971327424582010633968018710142563463624729153188291202405917787385166398580034601893551615376414980182371298633370420191130238857785499179449413998501571990481265498279353839346745810737424799206308646072794744083918761654004146287812732311370408735534412442961316243433555911055202284023588085266858171996844053624691393638966764620777470563876424098070753192676449362667357736767075050426862522023275380333602121469984344900382278775714392787903963167264941518556394591828586529422835631634538191939701999882183433274324433523701745866151510893593874908106429798678965219322351918855058276389016689361189628932777010427412169874433207031892554462379416947247128673658229458983997501420328520575877375365193236413794296440359685761861341889219083169196393330770170109253572461936245703315752809243753271352894464669010278429410143207455563887697189088393924362863522390631331255649666138798756908862460213539321902033082318619539695896407956738785868237453894835500444569546645319437386565293958520212006651556116591589633667729926737455478613809857983385746335139601688424406017717766581293523767697953468940171138342457843793927874185393258458451388378130579812513432647568631663809646688819115266780947778287910190132616361260315029749592702313501281387154269644549874025369977288938646801568260753443598335886520372848026733122864707290736831243600238384752216489500337765817662511758655434296447376514279223472312535173348977988758967545285319154740617533824640339523707943979878682482047080531067225597997651213496825493307055037050322123888949808639542942382026549415653827272573816397867665537013169042373723251336065907788226968744193719721020365138109706519988463707084597078238490392526974751715892211759624683000578601165715587212009162544601086488978681374855217705356549560471171616295475578652018689616712833611420654494789364337515732968893423310981539226633755441383726433216290972994178806183992781741972935300550220709110817026958141040558477753521330688197309217052304013891973362470459620946108141733800946574492687731848712882649456165084837111239719151793415526659151593208279087422783957916762934449761324556803806468032297200608853106097211954229514400159722621858004573845884400534056191585595272214858631568292336872466207320255955591955092267101116486398924409477528161973706527949533360072063812571237557516333862875642005205234505261189191303561504507484358527625708676853014126091231099873154720615925930865295594212863011894745519218311453318820696224515903781033158549298573223667498176571128891812268167319553340950883459013665913340375977227897358878688148478553674076933824199065674284487393640679583174560894997854341493018549933036174878180204827131689417017682386620080882077001728535633418617156550384888138949565025176739290885916233028825559807085691151093818007880308156367130884780863371031988851920227742921741782522239626284253335387957996434066790881702543194657436888512104244627946119018051561334366818137945864811135920408240779092036648084181687031753591069016134939032496580012528691700875302103747438249104292811341978560763332679569814910352541580673486530708431600748680271560636529972325738360583839220225299548342101552177354899075105058977032618732258802009709580415859419683895021064296005445847253714509977253713526364055985005563814630589229210612831284064140571256933877104351934246152951033066252603912062313193282606432895329192095864273291725079326956773047892342822948807966483418523678038451839191061936012187392011269130700014350097724677924822549573112683979684235258528051593601373265848897214922985393143305580510197371857638817293322751409107467070764785770925321220659586368533661037558737282640958792978195707556362174350235782217826520905831686670246129927529958329602976159130034714952001928875876527851950354045110272082343464129201486415531389719952425688497125244821551176607551608139724935853675205398965559380527274445511336425265154468518521769091729227439030319680221583253386473428368552613108935350407661581194811188355582814864068317441175189750831284248231997607894100760662439765763502372519260815679155358182930112958350161723325998326923763519861670837600350776331095363889619252089268619186463611099910246898476670634078821836172512135354752050599295985166220589639424598241528994079249188397210656250812835168289928934189052640416966815043489694403322990818196975767647212315043030546372813612641957483462229712569158993692440688626815370665970579515520682728129936176018534234857791658143310586770364388203296421128362854414393235275099378458558711184131473879150662117088309467882608821949167354494541580020173184466177493601667176287918723915628993678923869076231426622972225865960839440063199395016501270600197867769736439116695510292834484976204044923894074235366493811196339798416988046677239237490643999904669328518782089890853803180492121023880286517940908854941172325785934086221515366943629311102391100281114300798493695803287363682603762100427241540951450512495023464320426567747865925453258903327958725144217004855456005439196816728355645857478693449314719259365018854247353201888234698814292049445923048189236603601258814421134854534378265659236901680292199493319282945394751603098272043758005605401899565010474010313258823902802406215010764094840999850235346006711382853785754478589782205504486585544345611333507030588604697839874058238772072937530079721109614513925359014610698121085023575926557829728807938811130953571886987745085755955489088777269740377053164734858681875195492414273035821212083827093575287214694898466664153309512704654819345416158583351977656893435982065253369204386223544748291812054750145663305601785646668613404664291873873800038732914029678990195808562857199899204221589767242477247892661206282191025009768188396538407815982709463697931971490556115742232197472713589479917674217949256607523076782023622128957208486909360551293576744080118569391498803291855995580919943945025787085244463048599206120979329309139720536934470529415749542428586104002928677524808301540936538494409996603804100179910930352137906679071117573989486946758956295690827388235425945316474134078102583654835347726207521787401608818691407365602573811707673589588989940337060215397189931671402308389454036063229454294736145338494217835168325590644040773379329961747673162717334190111019987001048088314662354427944474648047761527374733688929356839230675663844680042923338506668969862226527743671140607360322088945799481961488659864811350283567470553875481716957368277297025144508504431707779707180343223274012225227233809242914855363107672689072245571980393764578629982287890639849478706269848462234206904013794482706970851711369767414524425848462572790076967947607513514519149474053252179306869843132499623010352552300778678646450075593165465309985906421381064807723428734868039949799086999516572545864157729486219749462864736488497173226907044114300322639281276105927170944213855168545743563927502666264376504773983236471981892137512574943456147717123997639166253191009743580117170824289234572163777506901820702432174196723341099217026594867790618847760617072293004516042074056032469185103463962838541404619359163702062002252356849868089600546346517823449662445390836613388098451697450243698586106506549010872785157926592073927711222673516474696024680153986559943796495786526161083957703713960422717092025721790305872958982704504997300777439471687317882176607376111777276459762119636227722670455362800507568394320169759653514484966564056679803026407106552492696247322614762986950898648078286199219358271240480577986493045405386909076700954478775051101651322432825408347556362893252716940049014245845830285418324230756076154745876115560581611418815869754580501401842436887817533777903337768485709826316861419541295707462831661497793751774561517699478927234261880755429339998032276781669863660819196465554721358353310875345273166655587271834717673805300510123495373788574553524952931847742122609636861825211394332759976390329401296807336555236469281330179393950319976035991374748158969183712336226547912140605987285716975471626667603031903967051661609784225838101442425924136089554809569890325226655786888361403868865563406171250816293558852663400436279005756260162774605875440547291169436583656078103155215212250479732760646735570213633732124035899570288111048972980094818453455787803848959888258614603104932944034938195110385173699275610476217272408167503197425661958876860844007572161020917194045054434276079096210878408755127219250133162901623588852923407098896227552462859808703488774235377197343919109435485998285036529104524255396382465454283391587201082175699489135301459957399429211262127823049849762768588444791034908447697703936793472386121127093594669473182929251298043970759839732046534262084542219283954421611376100592216370067922990763375312078775834555207717944438274326910403409758750771580245147828172101066754447862209504227400692366937729485537506203542109369755271666303017923867870277234557854819453318876832442455773138996136782622835804272024776522955859396322437102572968957747995301998638837516800735959305016438226313421533167910110977349973269384084366587639315317052009353991946624769089092849762680206169586297871838196379406219229091708850814181122996275015292271591324241619828441763875273985353856152058021341135369319288009129957154076030825837083528283004957420279142552786245953006402577637415752530460268657583530272031498823691755224379819353331584318890019682664356812167702982792067898970443394225402219815360929912129226170306385090123940098567619581687018231299331079213317669390608526224057751345374124455913887556443984695861373381796289759846570963311696572421973637029642545794222599355762099405322922340950819388623144861069919310591419604773953132640223968110970176639882553640442662060714991058373373670445571053625401297010877204152559427923620462290605594324633260740297607698662534286067380791979535063136690133280877571084357785733110812616658104571962327315172578902653407114535179258115271977681333288625281578463283601933212468220123248961901879486758379482313919573876821572731919141331192021318643565740045969830866241147006198219896866469843174885916095222118636419681570196057280838832469009125615324048152989799915824710289656592340028209399784868910732109568158366466380198866907311114940714616110683372548930502711976193430025678207724812370700779162767569706251107973741280908433913154483595535135367922332354742697814044642219004467695991775352107527411623433169960299621204291593735880130435248171034932340341498816663041790883804970416383018412659093564128644414396694301199285265565180053049747916442422102101970903163113557987568169061389543886791600506606035033306915161514961068414483953735829184140947598437951830727513524305414677062319685376592025029010407615755439017370502054366899000006934879294327450223541011988102057408461226341977288117704607481337798003653729599953629991385886129728469454095188648623140475581991300798095001411593706920131723558961831545133852423011321045895880289891721345259572084120134142863456445309633235004197336791426555162527892346365248200763356668518259131935656779889643253265232320561950651128378455239121602536121020980507844337032285062224097013502831222959188812020718341325225084868815379029552899342813707601925665453798907779142834304936947711941969669384336069666831881229109781275935562111703786723618723142297672461746245617226344358777390762088285032628429642187987170683397791990106694971747620790883042707146189807038207116301265990891728450803409552892329491388876168204091603053471678677475586838332976694140491759856410769216264119585512995992287932204104531334418304675570327523648364672745265630296350831925794121157537007615395208721500481144581904687381759879050765281859561156368443878690638340727200162075287466046237810497764335908922763509597025399586728563727238070748568299453957825832784664291167974711433540667102108762990321984420343268312632565561066818305533936309216760101116964419219909829970072911517328159182916546437607369500995398938132926192854660155566675578934483013133817524235203042677754748866151533644704056765328266579994237955833785760088324967605006289286094082987510273102613849833254256096196539785209772543299254807592846060039685007690263457025034122084883501333115006920790437412812468116195685791181740327431168024949245143905118934284492120846679752205194327247621960117080480846388215706861989862396701966915608232181858286968012640212275403630637429954864013198166909892136718123534442693962229199139180738511905036173584530757858914096108579704891369364684282112316542210451900845026122271080643726417572309118117414705049397635805808175875066260976936205297676135023826291203034700837655071056230904407128642999236705719383661446569859332817357461027940701102356512036946451623421958259410767468187409419060746460732938339439445558512265169066250344730313322803180200013885408650559255668317003411327585451591128591984242139486678976024775859944137963982434459094307058910282187939352967635104050726630473076406730780070629222249603983909541274885575261491615100049996440144262630586706853533208866937705787087119922961067934745328900333556989069415991505954389657317724680970992830178078476286036570391672498717139324819124342752123898430433270563134722222256862868624887136067681062338840299453219042231814241014778436954122590997967856469898564051037309425932342557407904773536515548019374119096921484025551123913708968444762000451920486783154073242058458322811427785569935191174661662208398597787620837799330689009142315188445698326631481826849843217712500497007373795046271971565291772001378509282138199307896175945373000344914088763882415372980794154930282285645181157115757874805338252567443804399027720884370001236814127448685504483388630723733975286681566751783453452690508715117087926030847244298323762023247055887916157968993740196313456269915395929810968344534737648586171056909019650383752116001477302228456938359154743290472698587761911770829044083111151638543079695595915397907400305899786642232221983779438514793911125101439688330547256579403721137975723361626515752610784552154293669287039327598218904794129215913832253574267488417096933763503157270052062223601836061378079762457035284397989222149263693636525187723829027293911381206358416668024046071688839888862297689957930261744265662634955777157816798875958848423501943268502601241101598807878577711501229739685457803210507083780587988792044547352390066962449753880121052279126369589584003801313568710925602597991187573193302078550334300911343402868921897998429752161026586376590181088381393294271910501879321758214281586018586764375773286393739933553817282056282471161392564013136771784212164518754671097304457758726682290166848745684207639481394607737576276772392541533454526406356102580188225875305854396058553304767775473753133666364900854882570436713929801654450945460542882472490765790254654545461723152738105096783711514666950095127615818464658228565029289968119760628331980800453941983184996049277579737986346336603929117167320353041990530069754754128241198681722584651628870808297797524079362682265251573863756682220525628282904365807964061824831219135214891344161610937218864357387238074961761315904517058591806366527563729294633967881983781231018636754475009320026156856363875949243753756663481752527364101543908903670821525089883085425495435031995591178061547921568185622577285140558168090306882033013711156377475508331733819833154925944684302874085563144321343811040162260742332798966802734203502368233856899316138702811970883583598001793923555157954473197578437470543309594562614265957520802290960927733037914179966329291570189340758497677975618951156464577875898413097912522353581971980277228447074124226365373340450575116971269593206803303202980689631550415519351758581258249160314918942181088961102379710299102924542911981890835892254295586493725829213679060434684434459168410097514088013512979886960666612705161006017397427110449356251274940741310897794269276729785752244953908584839437066465595117155882870086415733918745421931319461552280981949524341561219886478391738853457257552312927369453053032375155522203468866459755113114316767327960398668927002244108064038139445836306562058537047938563244426906085119990933444762952285795504778726498073826059836844797425417318047091499079019159775747998197296461081346328202606197496621220867628706401284917110486876460817947337896142879962278399134143732827712136747344385339977606489964758311551272046023185566859640503845191973043056306721450487065133320694194716999760348043375885943295472098462237341314644939366219643053735465908926281970233567818231381871478243238714296323434013983818120299605395861894613837590512876506409554167196284387936006172679130799529198719799583461662100013184872506374898871201239735267596193175290549286897782343613254070085025567681392952692961623977058265099739552432801158136834988208749963953304477230061424772882199857503573541140220505049078053281741163560645941343094368957731910599790484578941493183758675175011390482177412116598413726936022108318415074589974422281119544641550252964741876464659040250477159365436499744349895058254801290680660460069322285463673018967796581254849813258750881844955825745558788893344667724762014340321257658404277386644865167725071409126365912153486612905498817367316302766057577897652209724902072154529469130028359163158634357564848756783828855005126313839672347020956025238423698415194086572812139710851490519847502235778973372854667122199329897542076901253449213309087492829514435681961338297838583597183443100237211294806685034847786318140630355182202977197456323220967158797547011947984249845493688080583276589225211001813788865603476616746037883613834183060118561530241602504344794705542844547046280033940648479971600502677923826498595350671309152963645005696769276758913399965878588130151520335711627982476781026048787523688276642600470727497067610849540200979883237570749348053813116228382257414279887695408843851704386983569654259013612151532348834624917002979298826916732705382268411181920947359306917919743063787727270356281841298790334413350869090672092851678760232578262532558484742617828796922416809530192138179485529434305996418290528303013519886839185279722630849453458318289789987900234383623359176575736213567344440621360050399274015485507075020797043618546437244083227457477340200801852227904588504550772229691077098654228259570108394497852880827546839087403805112799101815651129773688520197765685429377331401686129319012597025670506114138363457732272072755155839984694845703556978523602130011265438146850270081591936038708811907894046219465197272732890728786240496598803317313233865555442221967096754321637047656634714717735992531761969146718000135013497829948357130469785879364633336581334067208842827039926229766810003524695398541563457830725239607185364059622395646963074824031555430759522458522164109115471654575628832907794752932306711158246701170009944873075909980694726509691973844921724261497160151821986958875401959696052706038503018832952423827151831299371634098623128285644464476923205219582738718246981966169315989190888892066354092238415302573787314313408954801623715846168338997697292355745400175420254949907683787653256097975538272809982871292451060974264864900872447256790729363269302452527795337494584730440310283615574279064037592485185470079413446295940518084758594153079267786931669566581499090204555794364448631087750983935226790314331984093078601044176712515956429195545871530939947403960950284302372497300445497126536203240723435652529937170812553389232822457734919640693074764614757216855048963120511423369839811957396954197802015839112205351207198961221337467034508028647880805653936111568367300096543488172658122101423076783469324636219458447096122348037913046294093684831724634501219361188661051408824715232251288805239030194459471817318173968779668825997898064435281762938507078640845889729061138717036128571959916459744461453708548623404071035292851449855090556243032846315602567931906040272291232436188845732330459305232980297500314462102684672748687593428356753480367795141781219396527190107169347565890411250568400407827567919202516790590802936597110070189328190953208103398799786462726364975889908290279986584100237246200894377885092098960315279998028178897522569523087604676455363417736315874705896242173482114510710337294407042867360878426286188357970518772466376077858980228725618807562258510221343981410841849526533831959567479002564485381458707590250910997538517916236012590140545817650861854127433656948621960152691236065242114098317041948289125104146219603616871291687849433217223753969589375699729528423118671978953367129443338711903068547285338110301579566239979821607221974410891308102291074776730385623182492457810412724622624769099545241707625351475383923554437317834488759070990220963792212108726210297651937936501532238430529705187368505618950011398658828283368779637585683132968638364568266895525759405302265478824053765565070227726834402274738193430897993115022177925410115859579542710786164582713990136923028422903301312728131994548188938405435246376746816523008884540624429702444163472309791666893596940791569737285287150400014913706339872265360432347447400918114709116499609598209428339632219755284922330757014223863915004755093234312439397645425954170236097738286844249266209691695933642525175592830676789711023447048738201465949182598895172974697922032964136917212117232275554863356641513689820767404448326235098934295851956790549310519833042277470746745595201445308727558168541325530901314611709936670453734446021738151959030927240503700435861138215684425569346502536906062901012569862148879551869925016998607375529639593115694171291260750487219810816054511256090309641299992685384933642948423859211547026414945601022063668685365960219737676075882013807110701878827497249282762662558284280379295244695633380701830013281333503333926810053398957854033144109254541692937462982290363485738837348554807342605767363863151648298948030203454599024180736419889413300950688864829771414973186870608376099756294082516501137969017804020298334758011307550972895765445884973543663186611902282987113545601572411772519665088497567293634183272662068326718462894255577093982256580230832416523123257043838423360080838498912401093774932154475638002694301530207499703298243906983795827392208024544988568216097369972944499158489765241196356679569341651295788247973582496579032973780381001911686821649360465602989406916684285718374955945088704622297909074519256419907691160601869597409900885444532566760897398891508747604029284679129915145238129471320612733380464737031971323342330364492044362955227058781893353105406655481687104754127120651487677647814405791760310823748168141622681112423662874504156168108459707893951212367604519978099034117303888847609130564115494430375334177733723068960760216344502575250787454994109623468745351127683470185069593314310671386583334067204504751307915259966909759571571981773577988272971099378208756742227200447285251299920481672215039615719835240008690511257594447472459308624285214925607178504376018037350900039666208331462902301445309985306699709189513904957475310568181322365167434216912415045166350820517197104453394565378028523962523198381172356256273496014507523586990391362653163758059115390307993957178753345096350390999028642552563767670896775648971558137759873618976179120343639347206874000827587198123728410507039844716454099432215632188247560840582367625809737096424753245007389957081120559796025580141422903465443866198167757181324124081227561103237218493878418148105224603070931912391656296861339478209546178606861194132475148491954620096242276665344085465123621222323205280992862841550220452703772439815913622301052603373856968934179289728792398037803318923213703402226389149889767937226917030671645984606642841042684515118301643630336165278207137165564019886556244443853918356780730904288966828172307145561198500747471964995981585729028127005393042965066755210134863283853722405226991524652758660050241272222747639265025038687481587857966451770324388265912624735622967682408792828292472181001709084576080426657860629985715011046399959429598457191587367050607307789175793929010558676654185414139018572074536750727824896411236435458100136482625434297379341763445488546789538231027090449666849397338061736872788463877101766996873420653410312982655513424491744964398762335551039538454164823179372119773421045508079486128451106735275511194403049503229950709777364102605976632430260476520280153019023528183203143921927896765774818521011563084071818177410054519363801391943500283132338965237009619309699106974611572258806944618879203205959170466632928213633330843162532959897739726670333951174984547499964915341261135927617052936372695048093842843706838479808677377539262397960909190127515107657926950336569946288806658397873354495140294762697468630124812341439113269045192140067874844584658747580682453165281125296009605511457330897801396451606987964378859431517492256069942440800384520799827218523731148922973525221597296152652341945226299410484266794437587640080244622443390420661433484241849828801920076521497103929486978563161665685012279109405283689977606340633491206032439014217509813665313979369474779948859672263538687912006039945649336303494275798291493295284254286927222427256636847280478989202568682863655859673166260270622950319311223798613536221908858004713839786823226555000952503655261030761606222239947727939519624834348474666411767521509160999364223547573756202424343757137604617474788244532944517488028023444006844918774254723379858045610376202634433619130715306862189644241585617057033585495276095795417967061242720213160046599264191057122766460776698089188862266947856304831563383018150790308315458436200215541633816091826074886454748430252700123463910561786095802669360577241973350348713119829248635619322577936134162733996892252688885777816012569732397297924503339338159876507695417368896735174959239147107926488408891433925621381746598684607687426222390164402477217752959942918895011285640500087692527825376778125424436615087065459045527112507666318577485560968252517712665157426062675483018143371710767788996998564236819228127039130429732821861324187442611473965741574001358918517935913641231015585174003603951477067056974421924186816254862190271579237215575391799473159591575901915446950852026342274742717057317636888904679336290215728158464527394716429151686677710246685902368391318896138580868142957547438279535114463515766345410959430408493827733092346466569276084412239480288977405023102220433722245816821916280466919588151776941770602212190993932207640850724528500161806657050832724857207110348067431304028435330160030312480159081872015862497291804220924191795737770871270188373408461824503404524611921931321441448391749449904510386339034704659075084068610318838367366685563301090082979807736598253111781244451242683377174111468484693729795011772823674248791549486638458296799875654889887327447821457734561411867983318723444165475095362148549470755864811416584801181904677176461539462457949153257444410141689506493476756401928935676678173723484269494175100310679223077949533479432516056786307782405739970278550628429856103611237471698572596654790115074862791464916435147452781748242539392880952235458830090376844547305023176051766314184039602585336347168317281384265444825239203893465466890858153424965757977079385840869075377800862016639955874904649458457202333018732998993333496564838454783471971453613025064364917543126888318526893127207241599485121483918499523974032069866681662303185417526924844202659887329442037786772511246127643916269007084231363944009047492925137171094476570817374452801129481723047248329950675342973972155741567496015250713282705460990059622467258257372589368827537618076849603009629801210180269355154720088375358074115015642757493621581968809795438454819487081070331693530523651441399974717694913329858115539198914582647765231675085633637522119555992544004026183227061772061099373116667067092505974629072100691317357284567645792585755364402730917711536551670599641417197356305260832419053181842787809848014528356212617794974819197834022352226836573969998855435485578840037759163245712789667794655122075270489283128833702015031143703023908708447373907078781532095730685322117328760893759247274634837285121420383783934325749108966298002468545146680240941573441959859109417478148206192786609438979855553083363389352257608308065635007091419446789032458792843709474378687791326140913571879137584843025817089678840056027316667777275448339364211899393405240932197652378774157976686267864067721779625588633450234113851466535645624997412946930705514513203441319574061816746602452161050140626033528805886931431197469288489915775153778342748719882032605623021540485233124013876069453460372806433816295323865060264932129385733858783251461284829937950584381277516953434315083479955736387712144546510418705696037901647455823982899799329612105124705585860396097093556580147486293877547985715614835499317249370220384208064357933427580354136548550421347763599682888489544052428972803059697575354442539876606758462241998988105022392025691838793872653426410740354323022850863513712110030918429086193045842750257445933290644424169852275932346198361092429030978939829845419714542847557027629163511368297333602811043437707961405302222262056013841478810714699321731457749928598229241611535020354237458585935123351833866622940814685776118583217637536652564366075322904453715249356612408309213953670846809670081923447152883257750836166238810915189766742077140217455583232690035654282182870018792070390084875320731327812304393333963539568493165671178254118362044754551798416237451053366174338814769884329755152155035706619077058817393754735687431956706593664320342683733015748474804545744173612347699540103056526946065771623614934218541458544469541261836401120076880883572017821262580314749591870915184511690090836956387393619647265144910671092980776884091986623225521006839466514614478222867057258303819294962971038083672898585612747475290872455453080292343046271113286282776185484014954614125446465072267279276073397200975813136600612409077784160261202694894647150676906201117074097886683263239621249237840572853708750288265320012170485721853430533681672977940405482622654056600721915742098833883425548833721824072470603548307423752900813467274151457094360899584623009947877460522252022332724114197471785214950017713039871086008410108902409010619709906843488831050086579887021488749998719069611874754161172324873989848248472447341743588664519053284510437069979972340751119961420628874052245194166421396784593093785914511020137173035401490902768599622985367962712938896307332857209768376424426434277665686481681882940148525391135373328594523508093620651026482682108140292842128548360015167301248780362552309990305864539446002178072961987165077340642844423697619249155186694066474047127198833123376040566758230548370868224490174249259919792212173397828906937207550294363749836423897001774158353928652644571000535853726256893956435691524459410955582537021082917124774323543851354463582395670635839918327034796764757510738681755234958304494366761027189771380417407476509985578662903381597837315852898139410535553923867867807649030430556713010703255784608122842996567954602492349418479041711665650671616396516202805871290866585188584607497402074474163656647338220155207613169130691527539351102157723773002239407007039763050074198290889983517247157139850074171998847980195475816632134676738051784055261106554591784341090477346384855365308220413406178604582520170527961308516956834907024169491860991877946777019344574981856206992192391060524680556244990086303842078675566992144854963793874486230318286270467804532941920650291735533146559215940183978931431082865532931498669933095080114022153169599824307255398993104688933702396821446592271964377941753028744700580905103456440246557746657396230610131911287825192466769231377718837996721333471622476651062705433884675319193873571712590143744791890797141040945075500336771218230527743718301505300231984015642835076558292557059765005320666777196972921773002895079591483287976060632526124494118117506160022012111004778753625935084063406732190132608865607358144615297242661998065744128957624359338116648855558410423517074184096121575051742956852126342026594451639001268083561719223118791940467029312992522728516561445457305161748459091046524823961644816017841345187899260664847780216517446244617382353545348840384033491474268971375109837275593566292209074520191566130454340193757143334965033718995417839813478362360053900545657503889151819883402690341823875143216843261035168575281915034753120792691448244025689744470880936000156831130412134064964858318561127607301134754567502570370858260957658083467762140437921857688842367237173293712182769085771705370785347273912931192799938945214504597763395797371210922193614124240302214848601866058243712240955088732879775433379875686605058151284457038548142640602429803456240469481703315358401504849740843132246920785983941689154730581779170246439604051245078948843879160920748976598743053624576570450095616164841078968862116404843155511947548656675995439952847912007765458243971878053465996749688395748359809563553536813825157782150335173893048834688682915229853421930675908086891447757087000368648064006884262216923486809094433871734721332178554220825867642169945690794402289612278160891128616160213179979845476930975874562279865921829316955411645477832754365119103645119584434518552999646785176651020606895474549733052206206013503091184391970907458119412373132059129225001748505741191174295084363460186777090116261452564492657237944627553471323128667601311736367764911413150625230673865976080951513942297085609519693923180972459590904185070663139129463565486351017097707283403882843502259844416927867882603840218092891898796870429615841719898369515303344794588348056841236458703225995153751170723697714892539339303604025142960244504379785926311914728806786775294848251425309534800017374058094133182430401391563227202074312787649722547303545207804276687033663930546617673125396804090209270255062630270361426329566332608464988980979210472468944612692652985120451771893373974969105575587640471594971413927291590139802400957085558410635938618448991284764210395678780338408483067827174562004652295499631382090932373740951463979642946975145359064578511987018277920216371244539344895262652770256419354188938338078909491624098017102336429679110899017302142315587687537183109589334799392005432915252765048974272019188023861588485729079592146794231800179007763048123598177527093037672800566489125187922278731451717940792176621676556423877532078411126764172184133599389372223846748152775775458120864376784978117234363931464351312166846866225250114187593111697777781093427005206933675898993395474275069908193233525113510013665501276212017357233259920001796239875226556028264912567967072349273169733768652428448726722581476103024034899421809524298629923237070402290036769899377279179298833999220229838215613100447081488909582102709003737408460757245574156579093739743783935617788090103295905086491100336313874311457525763665892352807435132628093699329192195305128969879435652844489504053165088554851645232899471267693568831058382796854431111239331914072875376432298554190391984639803247104617916129095233122602890605577714493859630304141896459241767719401551055864400291304943582367381673209815720103494564070252269398150823460423089435634410261762214020757591138478732173628391158350359898304620746220671729222401681404849176689846813391471013874002284932563450117982904494015147403984460543164388129058792909175555992897800642704921292913253628193956968716682468172928713385003927484907610071289983329454488158380033916139850931154178369529253479597530973061895378580500773932406688319072805217238964728177231458018513833845069869901798803346241134691809440274557652861740609532149285964260321997253562097974282587365739600542505227123481151072603030083435645457942666983652201132202953410709739807422265581765860239263497757783147114416615027168988135164831551299586845057484300925883977779090406401259848412176903941846811759222644263027598566733057807502920895579586168793331534870634692368527758140683687773649103962441511475989099406172040081124253710096692105057437984030661291852132036301844344570604817229386270768371022800145169228881200221952181731220861577091895865860525601336701300478254547269696139478783105286741670740325839587906284695179802589633733188975511587346846270997038715988387540614514524022965640756649097172033665895696147854244909739206919135594702008547910149642799004146746635060669921257827880394578415729641353240829314303054628690546291266464842590899380890039251417362999165657773426340957071094975487588466229945914977451926856331442867410040099853744366155262919662472976807681100685560160177781339544951498227110664321429673175100008656181433148856196630806119183918911900401432400969359175939624901364485294706310172533649200320961665306823504321673199608842302327269394536890607507752296014300631384308079398693288459650389467311901045691243659139351101325887725191050894067733800879794991362240653555817328439463824579328442103051066354857863725288409194203392713611772528731994316172942682834422501186515243454096654421515937548807293464191315463478746907098862109687457913466486166010575225043353202806204024114209244589171085388875072826249148736024919469608956445560134569633063618670330566007227044217700160887258897320790115424490128831954128193036163326566654469804962134626734836336039501096474970285309990999072288103710027364625987688027189930924374787975271204616384395652231456792304046635622143214673617487690973874466279821650247069111890423263485768307193750228685990235815249896435909067637116268045745185297893094522128989865698890628198880057593454553874898748751221316850347520351485409806169186679008818643371057154527392327889712978737780384928104866420090894879243101379292308949386858944866158238091347377686568963496895923751115447162658079613200370004671294382581288427065529846294606080386073202940956456785945565923319942044146168725534902514132359477143071722469580964012206208899956214842553632031666761909547179682943542177208810225699939286455684762298752235214658542498419497476061445413066977866926484495236684938587580591385399951057400179017732693862008982331681653559566200955594667373524038515367572923665517696230989638342073923873044848198419947410872639083982337824658358919966524856800217988037318510986385192303388366689976630332565659961406908258508588366323276789174169566044645560248561665693737043479816078087819131716893080631869137521646718716151517792357538121907063273295535485117857224381906583124320139639114869170674877004522475934213964419024562804661649313777105855187766202852524679763495957258581084056932457145794299723616015116894292872743502055126892740677323626029855096745687943088794033494906895675772877424810892337199709735379052496997980434042197741160647126815770621466011372844020558415017456239276388874167116431735985814951800099900702952306576406754895985125408894624254614443220736781632555437986766240776697913799750292760649484864131046531120005773588729585074374833941336611050663751052989256804294277105130858818838577009660235693781012935949580289804166244876370998533916922853184072906988812743265129106751347424322251080970098746886972475246001415974050372733678884051112217292598862491277392034550045067029828908772031752181473244054630098538324631934007975889623735156063331191436526827158467931992041425704698428493067307397240419816294390053932692786923283371763980256520332535815528152573903219571293311858470565218628278111428474699886234442282109766223133003854119997113109328060133758963207713215107400669285404474718577173403314929055893233883206358225786058069779085673110797778054712050862447904531281898689024676634424587085130644985047723533571756097537826900082866934777017291334429040794738314960851130690958593086610659217342170283250800925392768877069952343590169859251653131226695709251751966990664236745186139629250211341861661187106089121429227832197520227410453886954283928572192251491654034988405879082018893587679420345195931317977021785413797623504851962728324801688249825939651869478092347628912662931144789163930114623849988598669360116950257739718133915029758121251519907764119960121187404533335163830989309868187756614513909317996249818949227908645106007237966982900452736627914279606110213200377296680308269567728691347562847333878251369626346313481177100558941530848633154829342399573864460967450760642730345459197443078901656104886259746346221693389306667906430875035968073613709850357202149622725749274321559465219247200875003154587662013331658990440196331687543006169509520698529440888830891941171229966743398315876235011253550697143760352124762576840595337410487638441288795117958731847291504958700321524672236955805410913410738467659739584392501229881693368509854637394568419903070060983135476571822935105399159049371352266124409684627080028585992242962548583172210770325181564508573447904589154083343718999452217550359581330729333036755795995413400501977552191533669106000148689948491213668589951330485558596210106782639965143390506058160975839976000961004550743277552814288796988338053391532814459477883093880750327042820859401754290939836198165916150118786618468965488696329978721633305139019408110102598874342826356896380496872026903566871723345830811722588023830168005482820065620900135537530145778417447000971656507355126938040350013092230145931691627694422793384529323994524105432286449100864873973197583729554282726542081771563308659857712116520496133793476242306765763806670985669711235985522314465807904529294350727808644036050841330750143045342936235328289320514796815796071665519096492442452113898471425668455386462558428419139149468089683450680751963714015814229498041331525556830922781839238665435792421348850242549779155670186875854613617071292635373096732385486354534793889704317603400811069626486320717521792248132582863175861842647363155940453353435098246452596268967040509882602976828287034323218629448504229824502967022676133735743227765184016578718160346144194326365303602216491404495958936579372266717983724651843611904201445826241089685044841892343299274808275314977306804667420663387449951069869074854036585056363143833194242420598504528129641083795415527966867893690571922474758355672695322600089300517256243219539818858185581958395647307423190905635233059653172398332235985262187372194800429836235506570332373655083350552716451022894496098677931476544451088308661722466610657986762073829596063395515713009122936269518895166674933820913581827738526011166959709999463113258442730666249410543520103401888597616276145624775378008835424880919869649163044893030893878646360093590034952674862368285985704872815714024207045969345979333809511337271627968467638051839532674922835637264339269320693576857005770568658115474112439765833735204565180335022589023935939937741237461706923810009933932070677868772273470337536842083853757540161478097837450137893438655324208883173247868511174842848990346939304742542823881405531265078580582161823429400720002415239003687438963858385341177002290698986786270304343064227874324408626629791097501184950251510612838432947847027346290022392050139608878761484123798699148414994721352594963240167977030789527475991372401061398261428782547936810017257646477598599412901219189052201632314545129371129103045463156393078101427149856341952007382583805384413526740414821712697688783075270615610893625055222788661938596058340307070139695358082104554256966461721032581199576176418540847532354111066956890444889665926531420187828399289983623866421219982777343791847174758673340570035471165494768248064925044127992415970927672069458362193404194945590394658653154458683737465272386454784236525716678447488430863641022624172930417940465197044058163223284547957524204609330904181762585417609041513021104213946210873174621116554007248351488079981321759522573151503041574121743939104418508950237229732296629014530565566972337529034741128377131051516008535848262036708425024787708662710623102949903948784467286618551086106566317439487621958255195013346638259324533794873419426716200636553163571298871637919088702227745774887156321047313670418533470571350792710424535014996655225593470097226691599362703495644426908074992178601069428488107257289827886994981387444689232212899248792362620567160151235656863347192174507498833289912826125538288331660421695937627081256837102473318998220075101885271402481947745330445690593880565055192210579973251171612416313950032043701486964798565384299401181165387894133514830587427675435366831836225613266706617171919877607614195148735063390117085597787223772599261084705703945088408652277297910409308237728121181507826039149492804407431731928814104479096133252188183243105024159310619823792636204476147006513181913877049152855452657371778052733438744029898927341365730675040778634668290014781732721069989012856477840990487329952220755604430087695034732334507963173814350429548560228596725316791472555031517207421794357378173407526892090901300553271948192906839173730975735654423676718166811869661915818224073484035845259521668806666335107367679188613057715009532655908260017095536484551581446619775401772343624983561966248409755801699165820168630779320738819100896983795935574994569916257800852919588536489321369932440143109573127694052048264986333005741336084450365119863944585156947575300262985116576852578056410114336211855745809121638048265864349922990576043520770076747746522379765586644107737363964050922690069143752985836022236749637373043728906693149549777764503032372956290073846226758318430039964306135747554608807346469429184761271749632278452937390551580924530393831847730151978043088462960377678586428652460752760683679008766163387167982320735805062457343999908992693782274473800263644074131482426237823834848140978188402104036405872432892025875911474444717020851857972940149627048026258633560049345486285614568788087947679688485732187439629646220103991636601367207750573785210269277983282179303180194477388805409009987832473849015455595560289089606317552011781494230681988178029260927388281626236466025648299094006583956964386788145890266163019387975003986457684017659105960193511964222140910841274402563027478541612620164862894511395193836007074515111455322198270443357431525114970227012999178952113591711939950517671721106908642188143663677421743706617903170593397049216855935716302056801043626153446892768068941154883380243859065158778637129437098785858927996914229166271510435018520874215294465141074908951677430423116971177800779419405213820600198725999393204419207773614677147779875798646871445340993119244089869977092836560189615656576277890068642146814105209079206986471965190994901886616998499774732358127918488138971311295096170711107198273065760175892295536662762369315343940884089209921842465291515699364883437886415171760613666680819051189036755040617886033592804259713301167836081517741687645980192202249984979339809468983425478833105597423778346982696557386568689292399062683866631042984878360314476836832462626828428954465848592622555018224573325293023448817933250051114679902507590484797398947838595266172682793439141173223147506361268123028762374364886073238543995776304154070329429742170698195090872732317063764612273995341947284447155614292025617833334965536783657598583407339668603870508726607379134778481114298281021013273269979391978521294772377617972919735592788584321096906932210403841876469258558738101239008847206947740598918722165058168907673068224905451462624470416598606642612011809475850969492409260911288488972823176259885470959962756245936504208218854428025073008337708288176277966958153824167450798948522095481698854394721359591691986915477517452468764324160700421187234881324719489147691405683408142434118682381253742249255758455050573668505274589786095782054262674696047319663573796128855267137970117900461700269602130545713798367890181048288792775244388516600802441422806573925592677488166141914204200073310832961199430287831983054826319400952055459028007062487179051028360693997620601931179998368525309594127864335277560237513675382077672500824077115509701238512090653405403323689160279376444926499963178104188116835091312149356423393690690775438786802344342820530791811655645134162871395312170785783689307749281556788856033564365487518938376624517350969607219124598867371748633992518739737864704813683804972309853317206515446638991659286285624497085617062198673296210046869246207461827468492873015720407042795152359962267925843879815396946332101963774504594852269933976706353100978262973882894198019909566962159405395598318621789058506140021487942783350197482464836832144272113916422446132386922680762266728610370835948286906294386020877767939540995426994309734704287137041564192188489473710349998405706270789494475976605973989940323421898513502944247467617082963031095830811039600385515401686536770828812655673568969114298214569535919928976282910462886779585025045970762929458617330582347929432718351069806278844657083010141739312714753199798651771404671476541079709437578312156150842293103845679894794346110627230354439177228993285929795683575031713916562742641327754501047439609637563305513050278106197605249485518608555918686468187955687809553721586656471542250145545279420778884976397850476623210334106442739709439310225192701325219657315464664518875320202087598465920754817150015020676897304418874257477153848244637904604028525095887239349287888484575555184206993811232507983349617760803012254000639105128665493267205657379663953935509631366481328674046049377430402327476354683249894601753680547877600894970124670311849391375199398174973179357993552319422317527926534232103745171669253076216503071691709397245290450124229475951865322249990145777682592717392242056771529010666576331808002137299167261417239880732702267770754688562058744762471279555255945637734188490128033255386315546572499979995446823708445203264832586086730359742706923397639452198638123484485339175923548438913949726241471589802376733592795632344149065716016812681528908023757681911191960491779102381093589757745882453794273713652771655782827590478038179857025668210039717191931710230228627596567048702402140240913433067233182508909587480038854877932201192642621200936776348685630568763032363693629124114435673921386341022785868640268476172316065154204842309847681523623433030007061723684352524276372694766153571848386520931775463115176915931156891048184178278724568132407649858535776185816222919539191158046276104221162145418587590026212371826955116009706830962920631480621568409414179440077843275492661412780236851920012061852974708805506166073034027522373610989172315866415277908636737288417957081390588330674286280712637809346710481006905720289470654664224585599992698753387553527083899466245656324716608600583507721931151755930282863625685756015467249396305317937950204023572155399271694314041908260802452567719178296824494603533667165513379450789876259069209938669719207608887457947164103288135112581243846274555272056112595992524395736282653362878422616212153598301533495179474060084201607619503792048001160511475510709382406487265323816076607134843519890602022420888913360682158558363058513578238010293167291345866039300897655309148733389274397811409810014820678339230308681814458636187370988686031328183564499355771374145480188846696576575236327170797118141294519317322225390831149502782816232449318510171644164249473195340499650115908279258719801259326230453982237141223825397588749850541754029971173300909077015115094544720569296382787946798340084727537288920920124836269089010567316963443621544391928806882779805399486481706606556428154003880568579832395620758107339595536193362939186307932060949182626204384106608746169560062774636989594702263663776889462634254948222920907543219682586745595294160495542917198133375509906330415911590184060106507620723102980458786237614302450384905808704965151564722705798928890281110420819345903648914744811114464195760887967917180215585745878287725892114260003623251353171592704837651162094331682314509877442223322749471410500885090510260440129125966263725425661487761073672197633249639141817833677006008247596078632116865296496360282359717012679408618542686408654888988688073318730799807934982738129719599972186045246850897649955090963362121368258934616710475799611234605405879223977035228388567218466582619942023823265633668721818035783992578175787108354863189273467392731009494636080706347341096338537190696471658407760086634545465623517549377208943770890742532264905798383430125426065838609172507948056461367319536460117388287023303172168303036003434598062886970264612262589387469495030898064472285059596712715587775266229895402641435783184957438902161823568343836558926863759527359892733344226895979447633757935395220037612623268933788615438199896573914674584755378776562794174931868503638906828916273203249048300689060109998926702527492071617326789983647923928300951464512399013944401451391414360650281719649862239082875348604887252140835849748467416454080004514110719111547375589351656677599659021993198600484551634972719272500539824245043880765552403124920958472257859525178317647997828968145478518906424518251334625968121427935736335829211240107708608425212712930246784342703247696706881898275348456055775758466560094589631085639432934356747922158406632699236149498459412961901869750947136189011443579883253232528031128389084737241408839706351122071300420781989731538757271710376874506080898108114049549079012331557593029883611332466889742436633094591398629139648102642611203704815601390455091916954554390151429523300768877272780133842012522594844080648398598319403355931971841048811884811398610105593272316455230933196777931768362708618560895831135812670804389569352764553603159888879470943370561576686806625627116247324590279359462118977761146356974658526747994824517179476376522160090370641361989235066693596624084286288545412646725108849152640073937849668343804219298309283311089958247143293424768123327310497136887585974025905189365539571610052966897049656862538438754494841262461817824386677389456180803106414465206016468602425406727651085829506899618187131392404120719816927596757612124201021291443835261113233483140058517346815988450679185278731858449875546108124390214084196793896920347613711760658941592048934814710108191163820046617799183000220934062398233341993467551011827050651220726830062293220450186189106463638021771152247353922663763996900208417818252214518475270207929621658828371968889230841204713317659305240860590018561761581250499617739922303713354250261053012651837042812410202240478897114753743859836920377341596602771453129539399851147779122346320913892133705373982182767572961570263313773903414376092634927743839628223279095780897180922467186331788633825041814344010465153206113629517829482209803924409329800921966120051342836119994168168269858401731003680705183551582720935556093933314010271760156032627600067566147956054388798724551055617787508125087330460008222663931587937928699474944609455975290458922388892888938294480088682324520897783555143602152306631421608235429965124158257766522242593514352655608019120934610033028753265291825514875861954956109408065492119249665182632442290622712078980931121194208676981664413918532619227841998990499553033383900890601196138450161302461646846434208055420318995556475056813332881186646077758201690655860589576781244823292263938141728148306834213263076857184331882190682842846875113809794960139580911337168464948048702432218710289249945550545405290397797889804254792732545362167990824545252801152038081090695523285288725828686934882614613330823799417990382469097436710030265990744167437750261227896924103394129623523799224727709785380062135601576290707108460611142829271763388066812968248256603853153565267690613338513525900104846901417049968550828051746516548502313107934912080741531067692947730819294858545203731264717053868736113839974647014130467143643932808016421091624878840646924644985173152749221447965828626776664811387385464536566916555313196085889814862652207143722256157825326557447623830010462219229187639936924675038405769830723494893737505768950228313960496109285710341414655822011175604832123299359836945887422564705693706546112857735002334596694051046116930422166053771774510953516317754868934292521109656771438724125001888179451608783980463634932571007959399250782239350122376014849565506656245278944875049386696640259893908620375998024237562338280103114667500248881854431836158912889016361413989317757988221705484220834813535600099877357357503676754251140112669178615953826878712285647624774490345968878168374303904033222717101588206608987302117728566694655316439240893430059540757538151099294494270511619826369483800416826093704639391747198051212857853184125834476845145418246422329723552748714987432127799283892567227815154105503965938542450815990082687425352871605510298912764900949069168826061111209700102653347195945771332970378435214409424928929289452879816092737512269966783836104345102900785448017856540379667093427941055454190293769689560159187120009776338325940449932195512792422913360316783063453263487320693479342973455123176994837263369674224893392480249511417036019273741381140714824851424391727462885351847728325101955814864697990050792595959809069565829441582447104859435383577437032478536194535095186158059945049757160228409715584478534268211576961446312345645614581403786599989367241641347498295045749360346635796996138895088461330058461199341029228310832424722245306766110130179522640674120276301721626066119245113394171808951893780309502803202505933843527657197753279345615957915346069475966105422541715379105866046063233152473130469176725692903445089520898772803618091657105620572670315196841640795375739248430112546181846880036825610763539620792273444872507697999564571858748742393680054883076320333817830516802630995752254459758819396290543085706435238789360925554088075298618803190926717087126267781317603607693736284541465991501003314666304714820319338363500365508858721004581250934950321263696408599064965929613520243540980550950908654765151630780017873560785317472677858023788436354217099017163092752806009978655293694020792184922069640497173324117913539851048027921539450481575033308302963239075186553490119864751913612826147533885145611394717078905284966888180218358972616734039208677985202061858589134759999224810042684594669466040948720425065148764872492622994502212364198595419550473905455356166896810401982987397063595136292439990157653381392383115254805321993388370595478775641419809409484927532065908413109530562860371444751043614201501605832989675394471090099279073659200142247221652355960877553361047576791212560776395099473158346844104064594127223162853450266373878672478289869972915690217096813427463135242395821421962594177740646433203282314224704397114161713527993820033191289477201837957609091992763829098426552093812152049387588584200868401773946016050082772555086454280141883870040602234189394089000438680970857245635565986080947266872749454266022961397204548226083168413736936799831953652915691932358386243051194694497359250206082243940560617428910283426351845216783104059384330407252133199505993120531062265402484775006002192815819260295150371059838113866942558234599916625075969448677765308871574454793491038658726358188540962357268999564546660999471859180586894507250342690425320930160498076074355164394447435643756350572857253038902861014294706049957530403670485694792617264556622817830750964558388988762970088878199338439327413744585664517813153435434253953076000146182925748498548510859190450366870996459959974711922915805043344513727278117935172209891994210450185564154963264929290965844874737395563804190718431783130453702028026635318401340421573053359833352408428965723629830084056957142371120803701201582923306927128363612096050888503858727140156445419372871145153136664233416352707232001110993814854582475755331017985373586825379991270366551662952567208030109617681522122515016825506883424323766465893712474478004266761373446575077721693297666892034964682298518203591047404200771049286147818756183541737331497290431110101609754363881097958056520136102907681526044539887409286554392739215609363719541646440075157633266331653155508230778153908794818736605244197064977427929828085092795693091956855099867521820681117675616312952668174643188906970585208782249418027625369818266100107373928667750947008314798582385130393921586227082429002401128562651299207809381102757551626892460106167351341478411361542610317412892542253792182766093715519145938562891092317408094237302640919377625750609009048845492619396215656041207998521260832022885959590011232896843424864968183496615505015468672253062400344628065598850955629892268276654937369321778776617112779957398460153388354190778565907002330431289432169300473672912662430004063519413992242350820842585992280748927738519544138946824719387807068723975957118803137542870925801721375767310096173025462720660743391067010189841611389573163646440400539985285431934331390249124744804080147661982970718900424155982522586773507359454717603896499441934006516046077697774592039629666276092787893621154663545911476564149983406099900041417707643302973139675761130293366896059528196217392342483240280252678424898153687766170353177088411863351745926433638049545383086217917901281329330649817089957013160843744661594085103810858936845604466714191586341216515336198460985030694291315829983957977119813041255559537342746045802425143769815579691349284354143116821010346987516595898552192017887555598767606539310467520685407547890069997841143373927840325499402154510172992074051438790231559661862036736059973938529366747787248204793022686681067429834411140309564175874922230285671567047940297794157089811446662178926944943534011643386134785458527685651163744219996835878732136097956956539239655618567127033494485472846639167336479352708679916414933447880589487292974472908908254173536926472386046700295178617479885774025861807014729589475046251649847589073615420716703961585619134730211990396596080718228369032181726731311890839785916198148378204681651559160326460732347681265950479197836296905889252569855197738328072495724466767268552050160003083955214498996848276640347795001891693387269508589981858892340944893104316072056595436878369863363209985204070078622465411288931295684681757705044712234315105644795962191982456434018875780176769130607499884780123104856019389445124155714473376500777154573150196168525955316955064396140019126447283395159618012140271433310727345922645271553359511377331951859367909831266943434311615552328061394916060277928689819813291066287413254434121685937432129394061968423666951609805968769142448456653158992501840102660326209786317615948054048346140618317596903326404280704913313737342401285750052716411784272949122363074059155241783178653862569159815534999099305687399910432872174189292768662320272190843966442877802548874049305294873807158397993043536297268794088185734562623778999754593403188091524297171109088443601685236013464078346882685744177454823054249897987110980961255740523969129222785457417615159569500523674240025544141008971471035470537797838813733447109669438223385861766516331325411404459671734272389781729589483434316067220545232844171180925456086226204364116888233496247910424419449565538637645353207808285158296028754879241773701402380165896810759268926886118060219092043665412930909773800810550489334713072143521120993069409469033847816707585852360661947792146455272361324308478206816625470738500659352007604852281818826209787623058434930434546431712729226169780273491546239497398713205540657405519721603156588962112502613950779414842670383206696669112259634173717996446477777341925989933383591207801414422254458843670377555909620760317104109816161402996546715760581405289845697785871635789725722132747285843452491596073982307334446046150542837475072188423603608336300516347400518122956741844869893657589689471631424260363245661414785750954368032151297841412627325467388266571524579661238757175335379009182114007601255489234465808109886996358207072450090121206604216258587765391936154678768501185531457486216245302511155920685014698684424145352786135120507573829004560845992925667977380838740787262561455020873507884545740888697546651102019316032839686509271682267723336807681170149379775823631200323873888705570860104734635875168525172378792659332227421728268151868064838558671132307961499698143472836244854759070882755703068347079877857292127601427853385120237851909737650083149711515610650153631706454475127092958571675086789236541452818815283279384112902376600435646710542757794563650465026053183629234646455950800219621944386464324297473501028678390918897255260888143871588295715375356934315503648212825027827292123794446333972397900004910547483915018565284598495253261408071959075583137647504291731926233057787047610429115280590184370099626325529993471353331254049496194651739345294110716215419453405920272576135282003569335554583742221002970632701844845392659804100046975653809957528578827304019239454672013654470355022581323804969848382340458639831287551999575359515771154307365211863957357278818256993251233453942009523480445327154419996387455950172768172678060663762719089046777386953417752249277273285740086072261832485928676050169234718669612368790395576291783550931204142262173027602850892802310949264062928814859843644161892351908385067847413121332475827781294797606566589940210412661979112789968748580086913203225867218532164323508349814951337469269506277881742465255177392471874951739450312912898430533250809068433350511850287143182181358093759112636891029264160997143708537436316593464035081856422037426710334744848985519332088115861433341650349956863985644170651745863432243837587006927546721767346629124130824018885463865550443896241851364503103076073633927724477367070593761350023739998819458093540364278106806068843012645212182395364257082795121901128253825198934268675085865574858385667351065302554527429548662639471542507761817510854909073920245884510402110095749903185929832508142208544261715047776463762923736698024062424447229798761479390293275149115276852617066012317246558978894984211652901945858464984445518257704486288954081252729749074075860129390226574918601373199249179188563692827629527526301690280806467208110384784024564840364616908105731735071414186543959220321755602044943311157201921030928014476798238073214355931938141820867951403935181908801779495577562296877058601955070179481606464259882924287988254944861533068373611487364922146856905728748613394747098900660884866842047614499011938845483987565083228437291685459909876746777822323603153732724647428459578656638020091348656123599928384962885024702930191325632714572376833221997748971966032841393165792037792936310004973182067632358261376699956704095821073794721433691263408059984380476901959924344072434283419773115845355916291654046612403380798550072012231505447549087378310789930629081543415171187205170411581711124409190527821473729807195233485566853634761154839320077829786699014691427640693648557887733027084814351062942284584068723102112525394322228054029550307984871117997287904457293631629016451402032864904328103862546653625891162733441043176518522323466484830490193712464170859655781073906248097758040045406827011961543235326292201033912709082987042669471702914739759315926634510118077317217850648115554421685378537187796365400137403864405575506506345608762130101616313568105119437214787432977059353279362325296916829689688908950707148980952054099767029753514444104404224423277314912918868897920690819829433324476491862130617904529485210541371929854026167740078830788002719956606559627142237830862039566032380871013966675462467803885887889121371526538246593827565871686006349996373873913423970772623572707726886234897566776782819503753305027951112307314598617005912767492237004956494815468824809491809933868655103107026011001525933955649507501394739486292113980643590899578935787515464066071192556695140409564060002935178732582793121968677315376256199946039926605963043584593414188407652016829539875030480386639139132874735863465990154723602217399946958325221283302177056393373985336705145758168417111403197746538081744373576167580957582239310410364030663501112202539318354349604917993191942251722299109182643367627423528680081933312949993102790208002249574696935245890208964850231356060092805428538609931479666848525229183866468888291362698324524405059283829765107807789539338644959924546952597744013173192167064449780136314604076586315376203524057732051662284333306483162731381857892597489972374278953423569060625915436918921445519220563059662925337640117406675647160376067388768632754331017062586012031837473621301853964967148586470646298667322999841775761544649939460697205082905024597112615074452071356872209773261619302641457485042472800548312134342392348306701355513551146713556541253035939498625963386638619294122743398753167343145546782815133899561811070502380696625882235178139753373683359698060638051054092274131307147484553617924813166492409605565816353510013275191804692930972212660119382139707462468889484136864056088812111395312155008303694778344727326553077636601184097120747537998519755674984211049368911503642120259688779349218502146020867787818222485535967505345202233928955998561798331165456572501706788067877119813706016444064318193585750137677697325274087945767582768642132877096891696555458949132017588104954384757589518055056804006718877246148403409141037138044573015708336084382350167720109715298792571453134071400487889110966853941888823140023986124471519385204026353436572892157937249834388010096064102555940805638337403071783275705182352697076108951348941035608174191605048991437418304313853644037233621270451168722432749917809878220516626302603812460213309532142493240669546769151430035266528455618727347372769630514831804497610473545589819708627481074586908103210558462971535759217698840941004317829631306621804420026922144925026520534470672122299708225537708883599461975318542229626807574449051566069879491891843475835788198371381199883792812405055369772988477869714607768741289118622567186472523736600069146952692362170166104811758727702882472719957505124222340605403004608469675004466370785277260304440508416883024553481678724311524312137857792823400662297771433068519071725272617596630467046563027905246404995900895749134185730701842856223573998268867790531726731008134593408700009432570456226457266033032353853661908778912448428394025383638897241811601253360855174142392169119978800280897059850989346795250068956801365660249885487019985043899179733004459571457449516754889332929903908937974746622442678574691424606805165232547066570632709905286197580572041165612271005834803975985384814759228291692615768704977502418244702638525032448825279753235310496183043001113071539407524415170870242293380531082375969830877517978043162987002284771289572036127066934316897454897017317216366796285241609928509790907956811616821592395366545877763343147807916974517777925856602611176093602369697669493731961989018686755807308012886097099559191141001795628615159548762957861424623921137517037479023367519756188023823609734479117251481976049022687373424609315283173392853116347499764048221982461476294985048681549937481593132398790203182240435142651344345746041602266651693991622400416180484576195060793074115149891034679706739494682566131683614115988809202927681096088849102726842199161258582106326068642128731250437901511172237915248374196928836806045731895725065429022007485529362223791211366652533267375675458114135731381650849226684959445020377744803443401699525941725028862765293253505899260691227818696633727459609307745544901233676639512331141336462595818848851964303339925616159171494320126851546095171054576470117885866135554571461672950908781371104026744389733319741549009235687043078088217392408638876809823498802083759709025992845394339822015025559633228985974549679307696880482245137401926795196409445743601005182768120552186120312554294082297111063460678985148781450868594724529485159033347949665943430515848969121057413549715045163741710108201323800226507116354861438062844913832975603005166020902621362214732466237474472174315621244299994288709347578050245740320091296372954039940088527518737599968984917871669878052936807816631392963431439454545229310169290023036627239876044587561860634498325295529630871644609096325340858264380488624455091772740325678211306296303495624493943796376416961152056542062053933797954909192073488832571907652952469194766416929105081167232130203934871020869429662749059345805491122118272533572928163734851089657308138488509776127811789972729024613946849265630484189461896720676324515893668584388502311522498632313239734813651167274650387506282175945962331675530228055744935025113319381051020040238832141717858152290685189817612126303517077584556545538663673469951134812739732317385322663112434944853299567007887717142700160378678572570462504626616336883529810010036381824617720588483009868358342673755221900899174698994647413311055299593990773322214985266409981076415486589805421749836441186438798406685651587078918127527422052687766652440618327128410843068759142736180515378082467959171460989454919089111705973715119253117600536781018539779890728593090552535335338351962748252840249470967875370673980701149219878177998089105517513438115980544519353570177366015378960510607572571493733908772974202850986446364116292682930342271665141125570062752985462444928088220725686471586039794749485422511970459833161854008185248891148766858141603250006472697930105428546741714859826726049781051079838262543093526517099117295267165856218946927350934859640951162561630992706237045801185079571631215321262366901861396503569266840647644137068803753057222255141630262361775743291615988678770441383204000117245573385990816459686056692393832665521625677268376174682560103274209059129116390143119647025106791782731812608848275526772306394541642456491247945680127709285433236558680148283075785448901112142231245394539594321751848621604588892663785558282936537016439250106930280962258764173760872663717361861973927594755801099764815824264546770934356204421732287970059814779588442861234649916455632429675428126820041752047593724399566742333018629353843473081689783679216600217105841605646238839611479713835731716486915462906480340966385659058238281348893881157298021918875952289129183432299501291010359000344950549153575558005084346080946639294482990665937403329602843957559544989907035107568146769625118244034880326168677953322992493056476263395558487143589828166968227538493067781085908029229192654415416289165550524810393731816993471596556217156656784924284980521190960219269759129791625021857025595154956187899012596012056142535809790237017257856611596665427018619640280016884020083506572665786991357826433534629640075983414151118318611712670999452640012765125236742440541870242415671262636324981890354989826574687274472132812472864261196521092865085628941648811920105735853945638994938062656458108771345182547620020824206169610407866947051798967146949473486456695413961221260889070677955978873307071355578461994826146852623527973313700786182913784667320089103931831954667084459228138774117560856059020839305193778538962376535278483209358083136543793309815728548372851055221750497606827844863013693465113565191084058110012632946232570068474738617109638031824387417537440938414800402657794106950228323821958816581444106760497112725245616408259655274613813279445301954006214137069176812437975057630621512613837417098127512969469866792195908102129125010285749697581164083377193693697986197437757801665295711001950963879971250059212548466997470930188257776514506289826580235420926973370818061510105174736571549086871918942642309062269248147704349783009670894941994105570611346659549103950703084644951903759310255511279643386346971090866433233213415549472687054596458719647584696783132961819446355174404423797768368067802632975015296182770233399550982440648678374255301010720387877763825595114152196408817117396304657663661482518265874570621703018036468514349372491267678120862085292966061414375316274506061552479152638975283765175337452222490280946777331594783235908409644782522724741620162622765922825259812951263779273465208795710959927621864585600597653511642950129690787651525387909791802173964568827679406223120636492886098546489890633195459132746639673458586062441999707324058906250062453478000771042138215447654578485513231343095043201806675706910279116025621655526853551740939249430746580681308912442681527242189412083366796771994100469887462627435653684340438279304329349916044840804505209130670379599384332475765950473555569066389884289651288592422411816487981286582268899309823179464783641272943425590230339467068229403903750949776471337303672671781930217597375400075804722154195646829341192711992239159267463097373383265646397596016048070069058725666520271515829436901286468413459585593466360540513150151762692959151219625670669694517635036374898458863200898303390297059677596823239997480465104076637056202658234321157369550029027277616539674029361457350180752183482977083675622839194462144879839783288129724804063162956176420596779286724097439493050668151200266464165415598270727099498942003635302260011588686612701824807187716502196443517856463375202592650758278667123019791588180042619378333167844692301546995623052229105267758821623590770847018688544504521608465008495120304090823325218183517291165571547615514661723100854071134546392098745500841132954473363792099118627419460651410371559486197076793131402482508006292283192705448717670514308233019203560690063561569268339866723335286658363643272950281233538628043056700500470784018904077466410573690487104274456904916442648879501390670849900666652958097611532081686311687583260057706124614425431460717722840664253612598092345314930976546030753123721394317762138431244708427494487401089775860617743062383791188296752468319975794164661736160119134024444090184111983441941749439022768729159451407957456933628692686056385489538635222812442854885773905976978257514569853365429439207757080162879870801973148392574243544842401362357209066269501499619954800665603124703568553287530290644409680969102440828642088854831274771066990141621453314464105341442208131828439924652837583355325709156646893201355676130482897129900184571659262160532809052327205991760262227598454838643624169641699422664387867607092949068800539489333000859275583106507993935602850317030879293233824511818843484806083254741664382044584878792618724277883866904817192123355898577174912965188993800967559264156962645670171461356234645583693048795284999823681224136316258619154147584561429731050207292839980596338612983997867348838989440890838905164649585073069261693275978503285487746358486303071927520440722349029003470486915241061362372380993145310432321566164242017972271784560264248211549056562489206875791066157306754690410363157796287702138614629412838571130971911882286850639059807739510747523880056467200661381643727681418353844012175475442388847992493938786146464818435518755970936902424224280764308025984655526771229499532761028620338508935451070087768441833979867192196161377339534262392381977160643058051462766415982362296973847775581809112084405724288922764567539715952815972298783052045852866801061825571085202051076391114426608753436569577215459697469814460284084045204301050153966034119785233055945315381979175242743493136688889168060661336829101013832409798874415868507926641583867960331393294797621780321316595460050626810676912553724137244357869019787080196090461333928010924402183861578848560723858369786087531693698991395040019961390530460236652948991663646251007789346563982645647736220574532652610800982576087929758619636702214098843140071003982445400634696848703462186732879638347443631986383072527956405924626225982449524546928327591524606434041601641562646292602442945672484030643148941320459179432311897807261300252631862964559121633082626737556908027365979475127075695999990490781452974005413429980891705227757567170496602565435371927823987118940900003707107647164728686404415032203283518131783310723885450820003178402200325783763999405753353973694068599226257521180185497458549548815046462497284949208550422105499384245550720617283733411648366573886350201646007055048716491471050259377195632732879878744856879109918822332390565423911128296740229972602861840670220352721344145166257534138204771574843500541629342916845749724842590080522359464380647999622780649391108980487883937546828221241725149891236028709698295363590648804452696573642123881146831492462826058180327958527067588541855342487303480437091894342482497559418188121748985837590842548763986514913412514148008263460726604243772975429452649139575742869546724370428631450783477507591206885569155305621018876397814749807939010093381374158092988788699186439167344342934034985889275221309809202616886740927998621701167433170965914646960710726408618256143181534928386037220286035320440016552651562737935142281621282771648798366486578705517656085182412232719181921312290275399865888895775540787489137155377190617960747312304739765598080038464863727824439113031884365759702267491605349620165602537931845954815859669710608614370421036953218777839070991802651104935608378566290553731993829346747569893661668561706097396136655335659428478341258569521374080685496603855354659354406351316875864365471870732954103981638240415325014808920394641883970316410094395076840522505937743131315219207696534645466607711067176019248727092717876783025338410655129638757916943935887370717840409251617784719459202613523450190565835997013864834707007162568215000382742976970252482858416919890030130957581641201327005667852740576970825641023151274353494976124194947109978861605043105118092637076624178877842849850813872822695061304998803101074813970860756384045619772998720649415279075731910407673142455121450919522703505052562606192087921133341745541616248425308475512763396421102448398342117065121071229338850475803293406419850160288935747919113848990683730638275412399684645017548493770783394431096068442971302322319486828875164487907350954136062891080677250970680777942739868975797314653862435498993808978712229379894144133405974081094024628332378321174449220408200830191165283593504789214544743472106689423860964250328497135576462532289305235707653874318653374211175018350274756480893913085702533078802069050612263258100170702306084746435589733651170860764111379430309038857690346506135411700968679125118728633953845307638264378879683178475237408451936055957276421078031394203550105011244696312995387830166448061173693768496819349333217139593092889803437110817385130408947124831385588064521975375058756566254413796472417956144488154648672260171148658977117490045166860394123123331152114198120774198878965962118840208708870493554777203894938766326296514275312340372809232985567847242671110435864987402659095585119281962719093270763806012816873645065196657806912190971962702318479664780203943225806509661559872911542923019653726070969661949004123487606656904299615135080498996725623723015843328301983517899694681072183166640580814838388651573014369439006425804244055466613834378960927616117715936416234276825716077983392700484925448620005436541703078127931926303261085866681121335236145257716011875931386629191840866062099425166443699588649354517168585422389214647201072926864296640593936221083166694795541924574341190028551423564574541084261228045918108480785688279269343730798024843096964238850060262276951709925716119461065365117479225867421900234076469233750798294877937992315987273942260296976753329915561268102715915588294469521527897505765350142913756590021873009522298115821525189895763659097422142824934501721380019830234610569543249551609516963041419123164790448600227961952061267572859602759099990373950611629855120031682942801570535269394525989661754722705691225645919500270560828039159174238506492103587688507265590017754042986447067513224840651871482684096094826860694554567987963821226715415389416251464713100399868555774729328464315491470485364624879283439726949042857916999036561592776006062017927747304470753608225811795381640245731948521430054903371451465195107702047569830176694645487187518273962498018878621225737138694256190896206466600896043730832079865183949750517841494081744606451822803611430026099250505180339968225339099449802669138001728421143500928023751993782532588178855722656891382304920805018513358582935637931149782844376771608764608035446197183035162401107911911325324741871578920158219413375511794718291619109163945089507244681203551390412779101003598125640772852934137713070065123831949200544535668535541738177616413391464692091784552982892406163861002570920320937605390651510004573396039596973334824366377421014573281618117320798973594052871908647357841510453867514657618852087327052820442848774875425696048345531554829621183000685172474400589567837435277445737031950585033800708727309512802295914681586064321133627507328660613522894919997510982622415905089797468310141466664581467049647386186191318934814674735910396311417219482205858397948285777753996035255758439121852648883318993436403231998298443661224165899614021152189610864190206136182851519613469388888001487815985018875013444989010585186531048057343569687336845526469426026292164340043851792248803566179641538990462846536920800429958886782601107017803067261851799906889907446401767495802259320490081076436142685463097455722790913951317882486695178008352876762278009130729481508744406050863167714740314850851145582214585161575261577569385936297891405843664157448811240190654491206262725348482681495351868839818883617587032382295495662074432262441826863440378998956087466288015620769095629382518451182025900837370813708166348979442229865574628015334519973227455073373462272733577771578355322972632052012558500575721864459846387663901739801635547710708044244201936935864463075272496297245417089008966026467297589550604735229895361592138860974835621112028416006099229716301173123049855672622465864897576475339168626819221340325046154893728805863670617202410650945289516142427393780214321557760001755827893644231683388382473239790083440790351289702209364679906099719400068168739348497168498577538601429732902247070841013761463046969252169788173695710007664489734667445169080955396020968640997793011121416603377333640769590297231551878585750287063462926558569431614123671915347926142771124645367077523906907378072161452472510849396733815617563652331823863985856858215243034544951831500957268424062661447209142359677510692474934280551280181742838422440977039162152873872106908782163296538161643553450065456382833750874599340580782096710037741091358299171471155436672252582261957369826233611603438153536449794834275882762341762392030557715080894574810216427718530093755152247875805778742464583219383166442570270042687687038568310758800026664747528913100362779314990488956435673859603703674740617803045218109803516504291716645667421212125762965660627952750919291526984339788573112602745494392368267013505847458707393567886531234044915863960361564098047962133079122938924605946231804102987039256613455641495752389072152612616985932375751475156861598440557572375325780094552304600080057828414027650475442756131809266561443201133293219837508499793815423293020933771348173343209742990841466650259124638904960356059069728269425090487565487451133569121784630295129757775270864197164454718581273172262856570515925107540568341793718893258779365149978751626166993700128452349200723005269900173405839246871951546551465612165572293513029895846903411027457731255788068580354101114538136241647167122103291824765629912939324911394823208484172753816903617377177662501659042150512165807475589268995582726775034093051830815633812758599880664112750103346158010635011758506648198351589581205188872841687450845772036953863411114303113685895906642418807620983538536657472690702152641613631909640344010427128935453566868767948412973746847096899766641014285297246112085386748333908912601650529558775397454806369297940885885185624790104533378709664479452676985719883632098209320423704821063013848105079427914499047509013384840533096317219481913818516353902911884316025805462868705853452304269817297542080010883629339321030610050640174862308866774555610669024869512920807401295896726748451166715367302148784882462149741223583127115734670215620079222757642195009356461411226217495187634461368028336829709223825572088154036435746832531471025212048839381925742760791497299909350891583560831003465289098526772763121791015437293183538820348337415711540497769174711768227038454961762505206117462654481008542896729042545259035452395264423032342591348365998518802728556363116151053027377933737640298178854342020129804876415488916676699976083824509852344225459563459991856437363632498353220945186576390942344298944361266387919626760992557904703758373956808233300354062819856455624763344945484373600351133444642320990275771130623860747891874952376360357544176945450037368971603042954677939523944540158281628293040228213661770190983263180779267401826291410810957922165684875929519406532329125507440445333404712603405249111325504994359439488612028553633752498311277973541305531839962438038138511521871706222662024225784651083359709878402148882588455426113863222788914042642108984664075645614536738089281967453390632879435270137652508320190123757313707141330791612961031029775487138213750303219756351989111388441507224513467635365869716514371897124193125301028758394881558258882744246506178208733273412544400822963310043454019791535875950968852678365285013819880168273169952353762235290500580027271563614435439068560677151409454886836436585070344291780908961355004611770970628568160693210166579593940366870723978242418694071344680814192178046399879907569275069619679968568525955489180779840858727132724788904159176908112957208677877370546820739226941898257870658340733407019066752324210788828757274412238718308600339000008933162733778525830148019700639005929735608808868903860998863417315777206075910313980944322195835047380861922033554395418891780978227188865599361264055955345011952682854813386488682870599633276543165297287799940131085156498670695848976932461451841752454164987904722755795874851946997023093000131031788459974856216933588291784418191993241210989919354426828452329692260216288943362837024575882875383926109695426912680665060402909714612876970502388429321163046362945912558390991427863301950014847867893012122736862985379281461370286766967753802694709628876179718163773166164662466984480248134702680059033984534913735458726478447971045831884231259089986464842358165848681315448982786881119111298528813832112106249358764424736278440567434819539493368345620469616863442674679106004794084004064524647155455412012192699220485188154456646042231665888278961374883416638666541259582861238948021674145324115165105040333434096722458160804371998529917771805589119497306466088784692171285417191701406648677847847950028461446458889479191281059940643001806952764501665291444108560017741413931674266371249421982446183717017114924501135843786550632431446611176807346111292661710935767393861019172762970769119212133879391814613637241680594639191271997391150535401588887735148765387505036459486785700455471219983877889521953317795829071382980298651083159029495713298904788537595144187906068267834838548526968260879755446531050284606693803239270952526066719325104084495707398292505285940078038004167813870595017427325171999372396746936517970875126506006525656172694954397048556525596182237632099978558641961988810022214995795590440150009110834802914257074956324604523571548821703639144677758317063495174316661954720366491881164718292183858657817223321149846135328246579522958286071875548690597785189202284490970632955050721034815003331106367838969028922103874943613448260275304738948233602699740583135943236399994951688555002187073747898071176166584351765281396974481511061076096950561594103576393197131130620991760724265889756511556559289492275323691859214305675285841543459022544070821265590752984666076309890813870048356651026367991295159273231762839667098419672136022482637057706526689498323475499491366965064134599537555321059451559040081156075150620684646207867717722752224687309827063374750552702122776297732985542130377088484476811331100725870894769302664523645657615522460068537439326021194794604253884655711168402342785808667240578120080863369469911971462069870432470479230906134982739258850847077711860621328452961807653544038496380613519818923171850925434902746410604464211369479772907459953841168422626785231147433876783061304891907891913068139215699754404365539337153439508097738744524148910732531843218605964821452327886918676589270860450946826849662002722299335290829427475012201232728352519838639177228563835610624150975786382809098807757009413987895674184430762224682252815308001526145151209054214076423904798638316252693630115078398761013692754308401468950125368957107083441653615394492863185773056085426362584185789808630773945979668293132571585885455988006695589160841362256217927378847519090824352078216898273184020192921707873217787249850821627579717438889390917445696079189656152426756192528732330889743995947012915896684763918099538613518045671268843402967909451387556643769102114383803442968757659995164083834289010856448494220753976393917886629185597756776107507864470823042040002264556590932607282861843704556615353102064582699950720970665524320731936807470785482192803088911611798223693130502152739582515615768079783298295760232484401508248038174167812161122858828601910122874894821560590641723438116832023463080733062632812728857501700078322736220596730961313620227307148914936230218716747327588267610530578298230942348894275117849793187441124377043244178642956204109177747910356397800445032853253568677585876630777602913359628723518371028951472223213324561263444405851570696164796128921336953492717418125307463119391143689419598428310128067504700228652908354702064104627472256010445750774198962286752569369475583241522471979186457870879151686032483844200590117899408433182470777658767843950279736198061396366218803430609814378792533831249136670163353048754323580620289801038042645174480217612833331363847254604388163243524224125994859124464489681768152309910761071455575033679689715821873617760798616976714201768641793919983397591090068040340421227226908024741529994947220851534926158804608596385278814414404160664842240592127578146622925073666591720315445076795340568444523230140722869447514446528073496409280487415561525591066421039133350246571197205269682205354703570994501370596815137797211594972267900143518724377494196285315502923847039791807125470348697025907261892445350355366319577302482839889329805997765066385784248350417472885953030707784346248264523526906645709496770799525731699197795881781652706522650553631416088655092674739287218084293942232438854441086316674819764154248731836063984755894971194748670923199443792099565543895372864958914302699622566811094380133216942978468481065985549925820608504994365995849516535458762044982250693577166304337330758630329765732817872957152139390134170729458163660371814289016004818404837353672232764510218799829141555983394540449631154848566622406238790890938836052963768251442531410736448313718822921827357714985726512353812806151214271960096460224545910811188472455272611396836475606076064708579444660625395526341073301779705858167048577515111091808711612291160476109770988325111437256661501346738859569753283736538531264639365118823353769633271195399593217240290348335949380776568429926865741024401533099229520826129996074900179339859083394339516760028507132525449798092613330565912024773558168102924506261914350124613820692349172546217122494572541418151752619713745916390032128603567430450213274692874562402361878368230427551500780622570559158144057167004900377744029470302184144662336690071071014342878757485031287882155817943512105592976135245939549988478022320406694097265329943547313926345437853376400286748767002195572942481570159567452237932463107614920029273797750563497946640163414468635582319384376379680139204668620167307394375282419263737910888743222488506303481992036883363786248175694570027810578050892056412272278276861849673697945936781589288911774785613194206939764802187597731770401526222934012734403041201041459019849637533623312048418910093777242731237798473683984191354442342276334104240576974881694136882862981590410926547067008607439445688975367309260236376636136323713986920658285798510851767398506804162801195557916547961414582702091978515283945539438963563827152156033458973063572882704206997259381313870019547155639555850506321251754064937636519743903417060996104630116932559048061371142752162081743868687064305199993653744596741227597135757039200511901307580031173948914301534063463600736835690479810090759510765652656344856056025484552756331896216097193719455681886468236972033548958198810413836401684332910856437018037214419134855755752947958902875186839299508642089419766422102976695521764892774289795330554076148875107313700597528304802047412071725653914328776046918061375493933739905356881146288340934296365175760416516577488033154775351357283641802937697053794054478221258334684854995820323275174007425458766976255043938054045782357404489359696219933121021677163261011883591257371716694934799885642694342679829945909046098496720502237463057564880281532953228576928301553076304085775686018144992720695338935783571230995348226744815351932411418690330305625361964444221883171910734659456124318757146472253955464291834177632730542921231813302576411267998899541566986869384770586264868599117040202730056186837811141876959896261538010652720825027891234002305704446316169536827506103369916658429136438310993840211498120946916804933805864191259052487929515906744132844786731834818972223449840279151918106795748922829382903266539369895635338221695640893914083161635012861322763326999624900054152215093811152516024855594360061447289683266979706922489168040313467645677517468469059067128741521048084335489218301642708599182189001750132069448733919695126564108356538496097978290873744130069674266268614856428949539414103276397412715088586453562825140746777664720481032122912708157959182350978833804392717329945096134070242425640177726163717332171238390025871999323567099555139596040054229297143279063740709056092754305842707258732740581112870029151647535075224528160475807202232753552017933680725830136784102992551190691645206156893823142358597369365476085557505371629772517029122178482655468756802928163189707273071708766963535959863577252536522942070235753452026167594944102922723931463422707125420192803151238747779687332054191964315628742677034198974698100353021360409467197379697535993706145015745475069053010000250094579030077127136136296364398412126134347793052736400003448497587356976700335359036981480583427422445370395927175154086274325685771515512720665099398905050057688197410846011091876758045716185815771273898167905456963236552058048875817088052301726455027866214827340035502713002797480917946730585672229049318861234059433887333213587510947337815685997422987521003694550788554590952848173698721870527230193376446514201265129565859723180761387076019615442272255010400751540244118458633277097542970762186714242956083298569164291182307155540102383605010407514071503073769883579365017503995229723173431221704762651102287978742341580271170245348558815890501209943816813124180393525345727617945478985433957606416015320365329576175346340302252235405234433265770884200076250961741425589486733804912958725731422611571411815783766898456184022683009365206124744555742014079678800945147236094757486620632751586050907077662773944188997901611325249450840913686808152261379417410869465160344862834581716708468566934003665476445862451607712292587332429263746769926221299159119517873001994073314312027917222260565713601439493083950876662804627878551979331576198358185350385415624832681325287448708720927578492073852283101124347215051292727329736331856833668452287367790119159355230315204602680398259193995262708749450274961328915562410213538600710629566991362937315480119674819231035666225302796565578553014442195390884650914893616492628886190572111040972323541073643238565554180773401671610141619962388043960767615266285878039135632683470119464309693429279289556962644823557627132681240924392557552411769050787139197254499452259546801627773128332209079044284383505133778398832834908068379481151754211885515188376476670379465517123513462092291861303005381945161499945179925607342941627322067066154335390088713034588943663990994785419114727862319888193729526631187347753686400499007861137085654397744169771389003496243844264372447969335678569739357651379240023579547008909773740179582605979097793912225573679530030365168905528932848444985005498782558788907687358804647525208647078536063129127379763090723115744290052621740301390114503187702180855312389289466278995053583616868683968382613485994417182867490297192820156423166509934170850682052705186471293086639330588392167116881832271120631649668359261715089117748080305894709442940294179358120821841947714597837304786196008611590768877126730291715509963712750614166180119614946061158010168919586344721831730396586165204275934609100726513456880992215610780534345371956115517308813029207276868709665600929464728995932662270507160944846991313376917698224235353828987166090767161726292570282972787368197454491969843678920143144727640351053523994115018901225192399297881845235558420515441347837977189115970282668488449119539577995487697793760102207714998456349292082068038768713891290818954432112704534449950626925368665441225392514375928178265641308435840034501347939127258927438954473743976441655645912026699399144222592709135816274575721672715965462201288017794581495033889552945286349942934985168944021049925216608968860110352795290796278920213373310738172926977493311058627833537125569090676560646647299259576654035418214901806904203027246708497077054631060859824608982098678658412490435130546273978329385907941245636955440098949546762212747521518326433218950121564067007170002303325463521762781124781828791526581105199611747123900817277984360706355507821926472444277773528351545344034210017568982224885886161153856834716980840183664771007757377162206943856664399740353488749378721959286457803951271633555759501986705551774928845989580201102371630407967730618193067195100444195378190844182784182147170971638994598937854033792063371703495277358106500989104978893468077090993687137481857630427945102758323770050256290168065867364997169576314198087802562637445522943848039571241755176368610255564709007893663741702593666512247229077988154019778841255109607865749867219103739505049779180520561692190862527504899425542459748634695730471454151741179691407862905947480941613588758421434623127056858357770957863085788499628836635354882060667588173943495721692172665854293045144299615817587181408425503293480136044470211216983690520763946572721137101424394610665389754519543911788052786501459959764216044886986091420470798855471268415537412072432455931357227216140617899096329739314457688970143502616429412848217913217151680109425099243282128711802794126166400518300662674777414113083524355868258023451772104995966720944353780977808808876699112207513200154632328197318329787719855101365266404089702389287255555592989891383301332452003901520033959747363485472070778022917837829039243165453827575899155905591449992800479502434965243903891781261358707893519685430880938422644347986238134228266989574045161471741836117828874282466537190230959014842553241572907800185456550568906456588491683281784798558706163944324202726133477060772948284311955480953981828847150717001839499996465773934419524629862314739213657182570167119485306163224881578276563942525038325202281656294378488706588360714926324378453037291514833711238181012527622954597577267704535852251984062538497378638353826373432443014286004574347164464479032022576294759062089763683397776889258345298616981941647507363805109165715161243717305671909304426908865252445496230451531559986115598996368099071196494856783705405432111320816391633966479928654367457026003148249943821034219236678467077744556502245410967298110757807650914037541676812312118075458211735676184908258561569445904029585853019225903990539913431935436811091400723219011561564609497838322844084743103292339816157205928625437851806990154302316455360468476687465905836973705023530340397775152687067037667552979059173947527207904481293468113618945831270536048246368368013152825337215520057642746281396610619080342483389785476515538782574488582522145648610974672245485826768747450420128975481220920830620019061944721891445709882454211619234508339541699555620346588483376620913110961350929469216000464339828653022189985435065702438152175640155483424647852166341753568807009499077941582140059313610842789124860004510794913876894240892564667402235004043244359389542177825861997540382863697818771025390186194594825947158379634157927999985890750017604361295984067154269214457896993252930820003960345811753320523336463569588198793406088105518201961976765039751208719710951177725609454069258974459588786442598689430273028513372749024418446683232784365254220905864430650338671911865048349230051287909691075406715867986594604857311201638802088815349600166486152901060434413164242781069559125467560094005825413823931321508857314665093881930115462858249457669195467046504532397387546624001484992628405263441138202493163316379003466083591650617633698322701463644876859987413911045720453131316684199939840667717168404842811997478142333648508414307424535934732921401457486635642892992713568326364205086867242594242979102379982462128091228596415084425711443532443319357664762232023472030001755312460349007869691295239176491134745894440527944983782063343878273967228928047235269368488271638788003397542803189724858034221102997793961779642501449967526400623636271218346834738995117618325294857191052309952139648352675672499292693015758034087280702559518216189533371440435820624292330202107912851399396841230910842075685003542618970630967336202846222778793415838104606502439216581417547610593946062631735344170752399263983724029415222032839274374925994684645564225110986855254621701956352786791633446162604476150924913524961184378330470490222294260215202907870194046268794382758547105446713863386527838983878618997005988058055909686356504589888298089402676776552862183320291491629319113940699869030242888872239147713208337080377617096968453568064422009605101639253351097227992952198251102250341122449658566779299235344512122313463618149713529108343464176088264349707433041539619963610171496606016980971631419789951103368249385859125322334746014042860005682622487279127895428349591784336302858293455620792269370907010076675965886818247462974064624212453653827960285494408606959566475748948111289198052779847325439698783766950569599459644342663351473346628568547375393777135221133639965729714856602528318664413281838470273787545265847806146966936890150478197950469744194529910933980012479548701467608108856506233624074277965913134800845412614902099066763528681609788885009568592716049494552212873070966448039758804207084450126202003244066433298297922825126702564494847920565013930775927584710444487509676811490251178663684334805993599872436237373589084774047085894664027798823274996243764172167131574690888913081656102104911024403167779562802404904110461698785209366982856723986222727604035156821318879393831762018577390065138011298505592458180992283068344556222154616662090596199738967158610463772510286027686558937076585697219862342129744808747274965715452473486729345153496392235541422034935744903937458185182002073986409871982602465577510719773267642343040887667427677221316981512388099657485528913654322036362733338922346442709341754184083636503560756744966462557764096444530261410255302376452479889092405639060740194531290105779409180634606673376829105344950213047624456867097924773703482831464101422816513989397011399261198297572297102644298733452009403882817048824861026056288198382138954463785750059430046072327455511684684441712032998579179371896452952617315908894837033770373049386884080789033219888899994846622858613366806711350047690978345748783707088836158612264679534135944853213684214032635129580579502466695858479297171005360687434486364347080130400062570497700806334072328595509473042584115482668005022171458613995931719454199736432621942107508397375647326473514680633732094622460563268255566998381099553551894741769967350371000373527519108299672725042036993121708566409820932198490360093806073322932345230312240904357572415081489341062662774431208142981019300836616837401216462947890509013048413598644279432562750475600740966467679075968488704321277983654208434951435518557324278464854717188506074949415381411773637436928610904559828725489105395599130382105100634017210606656173737773113500247950353916968924860021567726354299889323766479305880805468097890939232656347964637803684994101956709668842378982269512567158636581826076925600840998567371058635375473926934171310038426023420599826887183540128545102689953108318701622141806979753774325261504368058499734269257043667317720413528845318123986250816021426082535616375133451763871584063045582780234496555606586259027465801623379626206813720672663013828286876356294147629373842487433217383954372404777786645372657515840913184194055407571049233035069049871841122836985263747781501841302255286707205921275873531386749329159536691185496852222705545493438507914945000837786683633488201566146176208904016514308347892863358344054242732198490094572046300558895279859799977582130243144218537021604664951537603319545678783793705914203701274509488519376144925028149784365685435687743240558721563061419440137673322728242418887668894946010759067374374621129245923781296836305054115342054546147797908594488972674852662342464023594622214703424607702508367993294545957485034395090984013865164821260373225792927501385328551557158085826937495923659044051764403294021729169443023690379147107355814019253960339369832009306241957936406047199869005254066560698374326067316993909282378495312187142455330988478143693452892943519812474198114572524266294361729332401539410324658564921762799131259043671633241860539889939714093949335305110966350868649368916174124064778753427657942564084994193610531675576549601080825845879002681065183496368868530499606308553614555196933398030981964482669916033044783243675640715479046082851411060017728092051893610436847128489021648332188599451584996611613085244268185139214160299141198627584441370457931228860874881579211686215276907149929265207905960677379138459193499763626126467830756830228453191700840526802269366946250076934423904490395989365328811832156915073650944297687488303715066831635335448109862914036137713158654126993016411790993308207825007514315644746684809939601112037430544065442663743741840994380443048407592490750279374513380283823285134872046262845511317449128965013699187666807488982143228244723502451155756137441799980895738903732601723036861556306640924691981527264782172952472690979667933933930548805929379808371890032274667596260554756071613262050332009723131632696218502445961462745990505329210289109405396270257458178739096390522750052038996445039272488724556944709641062469039182012050161867386084537721703638142241191852655923679338223762066006909265568083785339301813918559371178980395980076793771043601381503996604605190692859476329823336887490184650365503905959124917896582632075202426211426368447244375245338363387891143640929232762170883192808211873003203070487164021146317013306785623095131549873200249265127817742636123723147416608704376356431472188666701540422725472413153837810572138814202389416428684075500099020977156380578849933551255327214819359139113544110265284907211708039534944309716840246281482363141509480355062203634154494897998558988361084594235272215001689218246151015738505403564512369258546019640070969142787797613063099187964866704502808811857486080810008256084284705386088927980965255510430228686374235285419087330228280122775839762807962349464800591303072859005476113749637486940728983867710932833791101475412711323556192499360927715699526160068560989520913172153295531790837326045764757854825781570751894650945236355854860463927258317633808494296234586423875586066598598993322226862933722089025994900537378167096131939206071760154542735883075917500167838785319259183759476830529041259756985163506902393388412045351763169823483274744733320990873570965995570964308733461026471050319721150216546762219066320045184811557263295445428135779245476488320611764361820825855651012362885288218422409490463548656646879267838092204820986634687036576035948741444382218490283312951835173821069318446746660693940758779953831116155309011057859221258247254955832020017125040836052683594905642425942264363318369612271238753773047743662132947034342288510016390415549715056462415007829412355429132168996928981304426690424669768103115569579599936660682983347104600468075082036191826414128503951209047801677535940111324058566493055723179702848595805745343262543829704336647649045849498115808397744698972139172500525363418034566254900172752020708260013610001010689528504992085185367223439320962989844023971422912597186549004212444994887400844285695676896639141706286619322263643163619996058152355560709045422063385926388705274707410852616481075772076870429027737806417187581506521907833915686590558039395346572323153109148891004605241699278664018778635656046317888775872559266598266642474690498471924850131776625198041023802664149040002631015558699181483151730601656234047182477630354755579515369228067490697081160324062044367710407483740095765567884017705977100763038121822172439641438484623830925313160790062692674533417991497651362487882468883476054028382676008612966200372894413336533776399268628937930379262786918492781867683347516558275944739484471504956926508455610944239096432930204438167184288048589191274422444756654183645509029057702863495281365653872720007873344398451096678799417505305142156915412717472614832757367520030419427873981995059079826922751036870564441427977327188997032391598119413651826556129646132109475340524076532308202697538959087263809594918957258419782977981650481534231737422103624312036309415013629254424930365030691661810593160199978676839221859607305984278606764985698336517962492439830891176230394339131176001864292661294163114968655902853389451072549645327122873147878893669261667611641916558307844085783613435902308133993207675042430085912911822819757433741844784368956820709920504100068570335284925406949098370862542190322162565382894209535416725180875107298616817637343603504358985155157308611682318004029471633876634679477641602868818618978929054036071470346397570404431201788354200054275126167980605983594007386050711471332968407712239303483555676648041375114145561959948359134736765742202793948753176898677819753208493313835696389254206920876196493866598020562478199692814748910480001405002267232938962563892082359689376627038157451580699381441073060942806761401356930813261794799810681284833423925886826535493822397582285327248331109959395978922834034098146658890200030498159648777607856131036680836551159123023059489744553397897336481885120180858712088858302758606873485227578676167911286186197318022956754479160951902226438109473082976805538681184928360114543261451003613439773971837693958034634764785442756259729901847263065992113156604542618125354794142232761407339678726368701341480823918194711027898595310013640514471304673359684991684124323316330332522780885183242102999520351047704266228546601895749105908857230997128328548385920386100924745576514474832769055397243083043982293851447696752517226958439795186768305663586247127852873224886080931202246877110149015277188665820236006725148440268616482268882536832643556762635929008221205478106676982210267900301442792338794872386054204582127508882522033602799271238324254144395676451151062964701169411836842847389199418262670104302159563589515005455497459671130197896176774360739725539049483559180286325204232661503641442483431646359714737827619136511432966456401030050286649589630277605644099420828906130704882639218468878608282859062857807877648959508481724291339393209800593107749955492924529286399048857114473612830065467548402460246689328991111560228596129662832474502046779219363091990184347888047239283930041339344572557935114947071753241397377399237084338009014923136544350615592786811913133717273946279490042949329937683079906222253139686754474372482487681102394184522613205750143831831715845260522112125473358379689172354268895870071595730212016844606981483411261195535736840522078927612350766632836534590833754049199383229252851285172785794308212141616564001105698212904411622361076614329918147140501501279765829255133316456185496613727755803504968588780606732599082928814044400362381576148084986076833630310395766078723107894735493518968996672466518319269924023555295463121937384479781447355017542965645155192800969890498954060506591307773306452597649505318269638099538747554620443229817787787416386324664383850752393756098706645933020892354242302316007565287060943602333955211059527004990400145865370767735682842620926520386331996135297000896297959890813186622994928730697001507052335973204564997810516417566035529000997163941562418657245374121298867456445017057301689118454337782688475377427509342920347699709720981052137213186994329018362507229411173097221797780578925717171601793000675943280893258681786182306943075481888805890839159435780827593582444297509446611111305159609593977626310340300666488774512043000989031690143814630962793660645162707345877481874294143620117407466086269688826616678229949052427440805560242298428429554925797016626608523701070736745494368681789850130946551019053822109200202752643680339060575194351448811008846975358893341398143497619503740238551518126622369900293719043811969605241954482001462033907084017977986586059683762808829971181086480855193459042841456431727778914413677387110976694211410989921269242021475754834711621782418045915247319829162444081189002250078810460820814323447755321308535726072208771310799039607557474736928260030209080115382704922917483391053410358864150550995664612853263194460645502632213589352553456880348899240429488140572031048875361068861286627042864139244600658660175889528813746276298985474023462696052169703730867059236467658858500156078954134648445272745692223879726777288736057202340987934154671779666710167253650251022220710631964447057358798007385896137344870781030709962635018626100160771811331783231864998312895723201622111812238770124136981372673603285197423926656566914433636044065749840972289209815644774387675306621557685010150461722343737750250482039617412431108983733995302774785794475983704086305473569941250109535257720166424380212157602935071146141794765968099864873962659190606861185789618861887030279611493060542651711870080296255249201987649330728872400296409332639727867013829004986036732562660513943762350306866640604495207173810658193250352597066140032382621990882949447542911282340309287571720036858665792396248995113927136459920261239992761121054931312214614183376735765119834149944082099716796652559566731607449993092266427923889988085148274822206128801054536633062055545110261162067055435724802753227443874654376872840157622649284654257248944921308984314896875432881879598645432454181667229056638928252077495635165678698398772517124912975012093786365629929470129344665089133577115553452144359848514187641781965794751476229853622887883755478538254938006814173831318780188318303116532124632404638059386685612400823806911230573740746211408391389775959880056538691658110707155487072261144916707393755223374983869421382786728455039382777828710776756858813039497644441877362927385862460803241755550684442936204730402856659072598947782493421029002478544396606526183810535279374095867763417327422294876267141287149462560152416977699998200113563938841055000875796737619097466953395912930409614417377725427612245870041468840169744152796638357186767953470595505927598174194619420987501512449637126283449497981917971110041921108939009190403269118869040090638501598849570254013641000199575317871861805414887277617334455752239297906022148347929508318125807675077946794567287757208620943573599504966918844687253154917656753640926562340817425180295299257033426647532614963982116787692975868559295813989967236742951163693339455993384075360966579760683266202157600225644120484067658170080488858830176254109497596135592927323276182508691740109560980946012528754482392124521247630313993686624895991267835959241936145062561709700800595829223429594969307424121521870989830802176688997736550039275185036058561840690031329556363274104477480164998750062210766719757466072639115646302961618105343482148002819416729673679146892174811007288154712449338129970140169652756864849143570779361825806653110103543272480410420049688244632491380759025657526089965359431746320008101357488427328381881410850418566172111462780189853404934434395074675189137003267821189750335772466184918534360058508227300680634799703271062819681655138247191204866157096636249670289443957718846381120976461850478050366922640415914856222743823445932767645005388271858809274307569704324221731911936055210260723948275642811884873502155449859933887650215838091966653278091957862349149955841666103673037852368282342829499579585065227827478810401662561029400062525669037055199663823464728876167098065289492005140834586455944031116092771903272004024908991545100451717246690310928108252475753613067281463268295317894766569579129939436116038520363699615364563312635517566213957894871189864089741997869273558430021713646291395145646005742121898117499198899668227377288410601654468882218719974563336729747505807191052870193861608874755901282896014183859176634156686394540501254801940164530841492752959084900446894888535233338902853028763563040702136890461039706710120805831655561370413235557259045565682026602528171510565269316871528702744426433734959942469406904041787008445552540713458742700785817967747565564719178022225298710348471404395281668998681367322338412075130231364890651115979364404486895178791423980961693909153704560732130233566487337682058347018305906434533798030892960775012215384615791796017320118214881365235588596316386881404495941582294981733519052774113942122255500112088182441534555991112314840997653540340802019715550719733571256670544571030801823008563422799641974248612456742530914353645118622210483224636116007964483567064765217564310273463674613839054187029571269179904576277419717325220538480018079528890453488231590560847430425705167013254286860841335367189074657667507572560613525210825109420767534131456689370015785518198504719936967958169427405394591008454863272348428593786319723166314937755269833478667555394861629921002670034236239601061598374371630871197720245792563654790861336431081117538926108817198469388296486461738354294713978584905324513809280395169805963352694768770235962848066429747550371297495783397839599163404561599504610994373464854128894001334971920072461655539365331400796049640476086173964314176248012779349807032108335501355320905897714539715912519785102092999160348778023742152270070634075738530267731886022040681249752333542161282652017833694778653289855871580849639243083554641819171421384976384380530612941287338509910457285468506299403031872993613521817816720954378770243399447433259887439006514557317482023892050511139373830732909998220351703030415032899009035252965502661100189892553233400534299135359712238618831530758897298794426387587296456539617060738331101315531763611474013854675943681558448801224356575177032150371319923265798006534856929699933333690349632175830959433824797389180973495471784328326185410601231106495135229900578915734549582963082470495959418533926869541969455611315254717967730754804118516952751839843708944789040286246097181515196253983807581439575855670072324039135598011279241309354388534005880506914803740709285812356794130565684830486716107931946028631639393442347054047608759268961102329944096668215931735100511053610104835952832189859941632758680619167162341239196810774290881210865368656991554143705512209560965274769883701841099601472864264215304736770310493970234692001078001855292708410355463023049772105424791967462873662087264202326194132082650821853545680055420528982720555368953595454187449397185864736811141927684465057215084022384193496886476357220208150738246766664179482367840569009309181133669147737169389344824314948324298884645733166973026199291191457982595914938304040585876647930146618748833456472704968270695868477307513494299805938284805082308733088280193746049548399366957926862646666603975036323725682328471700401925653128324569597037265032143267245409075404842759023182473789008282427493967820461539808450639274771053367035346424282572071000215694577662802611226150967543127039141368690722217268871644761846193887612609149970080096561624453351864068650249192118464444078887180268431093654400469197890994931115790770900818194825122305543421279255462427402027664781753749271028395021098799337041882371179312599804882823741047533199444437611270383138859119062423179594408443146972476366050175327251831813342275207711879035581361134443293867837260057524803897429093476558309955109054165715822928000111189668223900498316248604456360965506859149535698197216570936753307175820156469789925677610439836569167401006425470553796463701090992738915777563253090685462967858131395824994054952186488006247750444868042656397279866237450861208919258632860427428547662926378674857340396236516477953757021501305917373994121702901681267921400843801366830529803441424647149507493615919932998990839465839336934557192133755216916941084231497453510046488551202911801617763208819185764339971573312214894884536821248247277606079619012702468695803187893722193647849464371225423593295445532797949483203004149061905933356153103909787980118458857568194283569908808621601122081551152815624753724449264638310116287367217977736677954105614858852216114892245276840372004539463127142539744100824358694755146853457665825564883041435472448337072199714172487805973677097592405354054653887450415469787342275089030107721759836554297259999818580079007123063077024765414899782404662643861942987504892033362909151107010570519388048619937220421590965434648471663346661516571598870883614004095051488603087402247054524068749770208002242643535433867864999784170708460907378628586394146436041621998073592809368765448601960534391872945463257542641069684096670500697717627015382971060313708178129610498271657706622058638523041869440585966377757153026355756690283505278602623938279905217475615341744293224321201969890235388293736826323810245217068041964432094910692505588605264042718484615194327330073216414330150648594518777510691227330486946017494211369506569198764377818131335391430540318320847339761146863581114216231379312171187168570905900012392675049020164176011194520566914048967870105551182550378458898774615389046448651187610628033341143855637288418966794402006293862968431918413382159264385271898486909940317539117565416542121718949109307460255416071688915263912401259211690788424246469409207416797253584040991702426991120520048990225524660006894815231162622349095029230342076769736573906196274247443093365157580619530685686414010063817047798813968270107448041005973812702116387534172997350279408941632217481797879868299967450938691435418565823323863321104495270437145225849654715276441365313547593945554883061765201428696995125084654434683010591115299015666402047571594578982635876326057055732214654805748433624920951408916400856201783465250236116165783688174759711503064846982889472005123994990687213064151316364686864500862866044820084271074503797887483815420774069932163619847564147879690877876278116772022362950602513238571096554544997788685430972523912525603380364009044515489023430015037545555434299056613129440206779470184386768844542746866884811291216991866353026538667858390193683215791106999176656466734953576297757763146467957366455898216581866472199372081386568351865159912977745622888460661852827618494929204265277015352019405617673991520638166533998388572183828625631391398472337412598977385272294947452930647603168814984224426016175194410505549708434844856378030330796194436425140587744557731582881751480041252223192808708933489342232183167191655339545433809977949669137440240669205873288904855231995556296477147927335287332651807579867774447825913601568620186462172442702918353717220894414270866651378509287091327498904687544039972849592948549691721796047427297243212171894613858337609635793073050431615749375142188274624885426661684984944034620077442477387225603647474433704059369673200175520087307498031688017796062002637761247915278607253399941484085697467931859175223545349097545557985727314884501598878032216186175172321409970861542468563951637582619147198287747389809685512498173387089153391321169719826826501294488571716747291516557472758342266973155093164865132429439849946622947716601613250398665539628769479195400482909477708680085586106559518448808765100852559815544971945651094773081095263520948408634396332300029875773946381539619270541918017777649985806153714117409085438645403085889653269962358486948395152230557106885973243437077591113349113370600601609220765796284216573027659597047805780536504583666047779960471908079112224402783571321008299473640934069069683530974818539959169394878425586140959682572656061560549165717072200433904831681099040541715212116914507440091589768501230366705125751668262905535729600753516916298880261100900611113571735380836374733830695904725665673362926259241738218769141463848966381475528013897187317779643410180400257961798686496074287784539241454007359552823589063085361059857762123128414931549408109855894707356692869672575379896784470692701854146683960032722213621839414236696076110122434462240098908483254614983400550451641814832122914776269805575020229277919329721609644680497847285034102117485299340900179697840784419731528748868979775460922311308246587345631202762106966244665146855768792596265235144640697408234279075278594013157506514212791906614739980371805763904282308221362469080290395288715554358044563006193688119192680242955605175761210823375958358380695860844587021507483579967481643809242531791421368894100015867869851570562454293662435256092242776090041878596053479862435275398534650480532293735642819322359831120320994619904548278317590834554269954391696874292039801568015206924456072884340342118514860900769021830237699725754694335370773587887363917137853688061834812618328895654694162667125777975558174054385502078213782055522996775441215266793417926012254910287193032231222935927847160194826242130774689349552381806448386828246278556929273424380154178054289916443724791858299490092717059146745086471456311175100389466929754700664283516229724642887757203573525558638616319443294087218337288090316033024751569325474304594746233110911314468963403876513241077912720919576297911145814171880039050644575990616905834682147710257656487800856584364818829149377688710845388070417339279125134625660226420590738862702502393283481355722959251222434287143279053446381368383712359170936200582209566110671856417446022197886141792084697072157065684283119512415912224430460692785599011474983490402632283050382321360901605948996917971502067764000503588621392839848346274083617947499627115677670739932415125382270534282440117912003575178896301957807168010425302758534414132697478365811270567898136127376981643983822496823504634331605921677879356987818590033095661652714779133350645515142556338985353053094890141986182434281038723775690162184490059890899404626154188056351902488024429925824051838167842040585564374863701030755295560844017625463544785620138013549512124362731941315217161997003807931211703475449385884211222053168034085786144679144902737152223457631587047083492951153035334195066370046902716339773591692536368874028397440141834587959475261887759996116178204065686385523785135798144020370303988737338754338776821793346165715603505126097859732556193577332017199089474793302351014101346017859725700652271078763686691027622040811156176771667967343839465701151723304570709143030057504942167196653464108408569742680827307287361965896802776643801297656019801032156918017851810844248185517047460609127947182500811172427664948160045895222346426749918602297169241986048224420671256161189650323370975929894861812678625257475706214075709044327746295722287240583480504093535402560445086961103771499247181530728753156519469513227195663121769214071754094717995225026354411615637676478808642591984350070374049298784305492811524368148238613251754941775639547115686585741577563661403945700537238246757378062420845284349240187316920040014251564884152549387039495406540550769636356589624598187694552633933547169283689588591486215864738748152676972443565129856017940047603443554970049726797362385508613352960649617513753307079459014068781520912467438398796701454153841904381811880102378386135341018465125979751140826258926600405553473483772957389173111880333145000659274504102401213178368039664806193186790297433698042238939957732666595034026392614485621571060767841126334861505048419342267196005594761246638163115015268599349522911895675623768261308633435190681120830063567075228451154221620968463616567639139116709755395946161414463370865186193671956587601345864219035425319217480971019600815217951789045410354514797751613414258955802237494661780874767486731674617167805497105953013455131579868557326247121602137572094900779273264852937522833804074613754663557318794932297973574840791252204121287947852370515290185041204376719322422218088207231405179502343273694581828402773123376624576087363566504010198583844404375620880079851068915489554622334906689357800543387449288189216535547152797672525588563174718337536064886769246791647931121692676943460279841036079857111288394311894015362489139146052938688375103429708236725654664626657532484463319952470597758635603311019679750164406755041151615549992064443750537500546562823675089599144105192107868390845895836110172645300930838167011958882927369850443592773960115485009706774480298460337992211008837974082409019881182903775845070045091194729794631779005333084592277250252571591688775089836883124753714740609880874657037294511273724966911963351217148634504742372545128593706045907487621036673001903758762126700482263820411400544826854241563988454988269118591079103392299890158210957242643065262678322190643708366856899303077543666176619292679700135974779065862349413213428440024945496031447504881938548460806942148934768374264539079507305711792626152682863087122172203112657198429893606765913185712233621138411185386153606583284467879234340172940304797926504540386459995099102481186501227767159366210029156785520064879908001236757388952901384897502590324939602302320660032140856808492715026926017048806017923135365401363153973524646180224849264481533848251566919644303080058997515594982668897627083140753227581818588706634261356066325724508533137191110801722681039869795703395763797051100270173001281745106234227797946491218090320370748670883336069396043313787197108751745956787935942531101501226717215249250281853971165824143396161694083759268474489872576887409417911190744671423528964205427813039040904000403378261017137073387059164887808149086820247444723805253583123659281680903683376765231493873845388578780607915701785296509139657379777087876737661137114656378482844508175865350742050675180798221789078232980489278315695715138469212373848010261307398246798114326405477469331328336106936100933889155755363883165890245789972010436149286550578960777082055200256957001690490027210941792201542443562386969538135540150633678589776319806138941151469380992635976448893686248772580728355296515755211323832581808672365924068414356076561082146039308645926980602984811110914059330180656433731300008988084703335760889786374775339276792341516071523693204743165367677179843245034611393089629177138256472897636407488866577197775314653754112019184550907690128978025185537142704546913913524400808021336554795369363332809122541605909804063921664205783935276652439592147110813034545875218331174839168585491285224759533259312679029834200345969720450953147047223116400581164011869444683774959727577931304460141159307065171187455124802124099137724911442374212175281232940341014141460492311822666831365644919071665603899832870103920283901651302953625365329560243591205008139607832030768072266970165949481715841697819795180899771546763227569718628319966138939805260499733048194879697557665607497115158846882220612471050787609216277696053161639875666227676675064689862891471856490884325811832076610739559017610100484461410054645358434564997946240750893321104001639810124285478629439969151971086237070531618601211587744970387161115330061090563117147938263181115164726917409398616775693793144208088337384009422519633839988724396399143095220367213324430043379274950192701328772724953782673538669977921882923279039871330890509345750622356854262907156099818640811378414951895737505289098744492564325073999253489296211635076482614730681241377281006253499861367524941355498420644501508240457606391294633705226510515796679701853858083389556054841800036648423307276715847972712313162227176898274880976646177579058222569686686406120883972833665989148641035070347888987822734664112522920821841164018357604084225048959275707265526239357095776407640142395125163189487504795008759610862466666146477457834328500431504231232986369457213842696269654050971446514682557880806617735430533048780905819559799327812219773049791484756742741955014635186345426235591664819588259910217278789849651182251018716972407308069342114509787820889304745631727096504955701319376716580812517187271180111211149511924416897535650221820068853493468321847628930971049704698357231519858757786803211323877404167060692104299174746830817948276284423587828041757942957631085197091555864435662100179795682705247391331174148095252002649928556575390485066876596470891282528251554549417331714885353465438246908329196845880676019798811170080262239963202269749247197495883890592084266495460811699581386900888427321803878338631471672559505077422536310388725575991288053351306444425845193509993299410154352054227702676312877899887387891361602522722554932221505624748294892221419083589914357010240572364377932497718867254994178272616034130972868875286306030770909495156912430786054219121128377765356066476101070169435497438026635812582125347463326993830565596662315848015252843915921406815251277497133977863416238784745366957602901570277255552895347817374974177257919109156293664012810177288121229032036705726563398869829840630650247929819809232451114889929430589094370904289426560562322332153442269782283487340810493764503637394535641440682785569636796982635114141312574721702803912745178166894899541848090131976656778691600328568826628670714790961117634677020150086391167494706456085100372229730092116971371406486117613323917238037892135845837635562096112221755758602199166559331846462682782194644481564100901271262450881652730330915710034566834194268773112659270520374298533398039727793428923860298929828377983190364960953909219211156098149866755430721208622643361882547394104346122605797177323910960887608569046676648779100725872027677515577075470299894928230474771321194274467291670556603947152601862928145878978979801321159691369573372710965473624546221491666829309837248191988175747688121504418592120992250535954362064858502184965936692133802535173221785525395394343332370558056047519882166870578225507505501919921810559443540108977706681575736767078932788511924224255941493271427083974812236566470877652177387903987092077199533904453460180423696077204936781690518670745707392630305145268473790116749490657790047454899383739674233752898926833637664666820139905978097158351226321272023284530558429245525258988043919804846139335586080130849597036772326369143748060366324523467962402115598390017247267638546432687037395694916872876144903717576188192621188514544802601240837408264843540579040118585299299377737579093533391163139795322431383989668918896217502437190480757242923458278474092547243936407635704395955715682158565608451214075918583678437475290349820251026752291460752961431160611350359384627220583407038312044053071577945607823582378540009774217504788760070642677272116277239978989940451885918031374511975723807177447145130975374871792442517099540740138710833603912715584402671358068896842852100236451730743798064848157454052787762453810753953385548016105943903857891197640062387831943208296952225173875672283774741625438070675548673055282124519133887808218355804634429103729321873560837224532290801429502932908119659309423713742692231843920913218532633929372012569013843431277063079227343247078353062604892443912596363341684891173310303999090886679045647740709727326338761236777501683292328857739139993322161149756745149416650040852992496038500230826409209043491783944370958264890860607992853352526185863566882809332494407095596446918399016130126731376858402788842603317359511456412231489972179724993849502559716893494155327782425994146252216909986362168053376940544072352650894199418214801556626061792252882489929485950836794876593157543531788472342682563571616725175691416499847837877480725608828965343758298656696448244651236009074625102986452719693237865218442975286063521987415912266088464099521782882142106259659079313146980565134641206896006210987224882512488097745613007340827391023672958325681530884119445493432868259430456258833507205258360170238017442912385221003035716359786983163425074942369491044703301047637910419130455178359344513192906643128858220096405747055280746235040751021031216333710071709349435664375227609883493485091164070501359044639805712932286941255883730653783309848440569685372038608794984924304052253101351207264924654209825687468750728298086614637598874524164279552803723588058247567218845977821346343941695558733705027547317936514102167512984886290273109429514480946024722949546680981244901473392275943200852126323793782213868087115863593449815072732664651242891709354402302852531736563957144935748042268643772256554142311154024008229791478235828473749560030657768401850607687699095007630138730197157397685900655036414751297537362003302048918090118887408494932032298466732378746896913493678675089836414413185557538042138868381977494170189530544735877660198730934720016146837915412538434908339213240553340921520513242290547958246457776114739621447679727842591877640104114632388772401947986319225267253390818497879260972169761391707422567199308128019028733114808922635548267988924357895225198003665560148890648256474005562470297621994496205956041111472312282617079502527079651823039138326333673487811598949526260054498777215106007006842856133084562244701527907547899093672876367111952866149226107262047038248789214264559056863258567897211914348970737635191286151711493093828657615657061736190510984362483573273462972102271280713747051924893930932841505718147849654996189502518697821609545640672133783801751254173022834184925597459933210446666076700767465905809047663661496482087233916350202321494696854161969054526350709504656593797943087743154414049983791061231448754775864718687157465484912162737815800879679465447253546634932923337081649197790200090501914669275217149540326545950589910275099920175577162937507824516497775126721555396055067849852490327739057238977783278813191680160496879534238560160405473273521617614380533440264538283070296878403190471509840308189419288011601057681447837738098946442344213267485352418234438644175340822023544382063040818366953799990446205637883447194833632071147679874739664479118808618467430208656615821688852115925913322617300740283709335935505745276117552938063917261706982615093958125741483222485503314280895629621083180777411557100850276809727625771081380218219333215573945928103627484382874018096297357879308360195572651199832328493281742882630307067258533081360927629724588615898959767672874155331263478177416372458855773449879072037932022456089011178810922341939800091904769982117546174092881104430259431352246112123274043322154713332475728989629052871943545656032810800087115107127506546976425212087558356525904604424397435601751422815455587476371361712319048476993688677960096560124513371481228278169846269248351770016341598447358044014747839533185838519745482205068336904698263225084728503584780080378507318959989143017185797712982090789908786376245437900539247498105292855143794626027599462691847490135174080308388675544653892716433256499460506084473169335053242269192638681894014547153716562847445246175366229693081742518462127811467442978906600456819913410337788888174650021545044147724753469340811697134477477791963076818138301788158016753489031078113328865833349791611563439319086989944529431573123687725924611571597238291828255925643738685869634066020315755452073211967693474518543290799513831168656967030103868999616032464297501185455970529677188547554305033433923101991419980138958248759784989836339605856106434816284955962963910788842383886859792377910331212289217183586932591447120373634703348543135016486826097623011443666310345581240404315793394162535735785233338738608288615416614430005266807203162516671935679369332483060626531345475479220013132525325511799808731746489227624993110598329998443015755345252605101078107335662577184346624937772236158979319541721566235037859748022955452956710452320783458962419054569200660427151905354592529528566582380430169765025337492413689410126102827611162594585397086583586129519348619463432566191355292044074299491016536659789840444932659558196630357020360400997713259256867711421975695429786846905383328498870330890775222860171155233830137659223817239844412620298121855478517636206822122168545279643540255958595622838295376057935371849209483142553352200568275705735597403443674342122271118978466376860468203556580088363401964738919525770189204112864280613528818951105384453523090037023765906811611999069018029794882587119169917471114075979168274234569489843958111351462271872607737127583975030510496910317600436079202567303586000201394308722565020015827228953388357984261221836740767882096314599106612707929707400022373411594559290394900556617476876228030144925113729269508077555649868847737341948695908065725177238274922324518091136435413842745101485787021137192686847295349700568124351071523106571705097685416931197458434232908887132149156408172783794233862065504712704973153499239808802665059033153673767217811199859239494473090385812882882900372500833982920042968454805883631230039982411087332587169629838173075571599970411855256381779371673034279384772894515695847612298081233614242005331335103403223866670141434895717194047244459742191468817667851311792267035496462575612585671830269858438817969083739620265206008500914559443108553075827264116974841444008140998868174690713499458451092765278154644501452346146524722004557236399755406595333630775977571106207853145232715679923021283040220735343732995699839879810733258508119516036487888709800498071764712507857516312423498000825151517313349713141724890245491024899479935637497844166080558793657651252022206589211235903927805093640183404087253741951534943612286259913841162499173791962607968495938906087515054752112211330402157332261045615616308073789076143917582878841672792789671401945480220011122623936649121440005577278467195630458831371799814663592313015705931542372142649731222637562139924455243375875217390118533643296448584290881426862999151111779372215164544486334590998920678936919950218857378536018505874411265816363100472519248190926320593294481560735430111981577472229172503902953019467692038032699112168271414786689753514992172077683763901920688089752967248202215428049115562584270966887332340303170379406809610653300543253084946199111799847466707538491037850214329341896015785826836379249564120625382227962335092262963189896356162862607593698051209560151447993941967110903773121496884894469607807965671505850464940048974863289305056803427070405644726814360772580398947482760485059527255111356916808415779027319942622451282322694107533634472191142180169648899569762765626509572908675295464074648256729586098977235923436254851687520141911677819986435127993912334901791313992235044942898484542901681678490029839810155878447126020960043579059105024898089836568699176675506043314879841640911857843798380907884123335040936744186852988484644891057031180970558975872272424156570984048042400464949331924492677387928332274473306413516902891413073935583030831342536695370185981132877230590523577474006666175176548585991020265457897858545945401873063830496521878641980562287735219268699000468732655131789584506286580158601968464875899499686185436440268985527397347230428466110613301166594618547205745917369926720660678783852741227288344101701782820163591256903150759991697321195971562874813979715085805874281012950366559390235238948733477136670825570538864377630303358731263288300643958354955400204172832130348972641253050296347735900734237427040863972557922996298954491327480476056339204305535565383297310471503510967890332133607388930225633655106917530936676505043994097022486210425913280271270686515858915305161835129966121943722098090704735933107128895148130016651880089841494890601655456485877271614116805604562373303753252949343112008811954855147008368798465855940438993363993957298245176181169293401786363786390009224201154041522462208226501784411729311414911825226428386209767062592183951863116504923755482466440477489820202232192829706813259172322265171913314171935786917547108483802188557137785518555398073959421373172200354147415412110426983930894360426690168644334222478257009643963803862928366975074480354106553880161069951435471050132036586857045403433552621398155427027659771063266196378401653521596238121099462201517385020059498235403029858126880459576326427015723501771947479794308041795984931759340768704589133154119967437272706993847995884871335525907892113600071207472864689579974087819548639868445356726212975016264897587517687393730849676582907752649046646108611872507633423860491698776090425574273872165124338204048330879123943657171706935488820833136512730664657112252605070963829831418310815706879416915692909814540887039542333875484592751643708464920210224635448087789707675329081935876944071795155484493216995606796317727521460211832804878888954434042068954715190847130379741977540412194182247611410723467637196203069604755589026141564549728234451211220180606730687606182396148646455474102411480927889397863654506252909694733429343835250125978352362167520174164467730408672629658153818457148868424511371398062135024669178945710639542989372945706985269990083891774353379057727708807553178737409465550185003317919672367309812470756010451880043940892334614415026265314648650234348555237006536695747138148663401581628163936631857584658983260560509698731388732661425373672766220791519476860214333832602562837174317436476028630011427050577352585970302834828050486409725654585229863827522909166194511102325867166726132868064860018864754703050391448016956987365189712966926890815131494654968179853139092411660352421231076579145019779777166478894788641471451868754821642660562299538465730539599505136202949143057717306561757483279831446277396283250861743795383566255881437442206647729738482459640310971665417541762090547258293280128753288859313442370708919346884545716991552113580278291662721288455961160995997759677960933682570257546530569462061931137063373622996375338079818178532962970050122147701711301651036847824445344664500929590597081362646671503542866503293827341252344302602266920637988456797696027858603595944051395425650719800070175688856772772702699423573877324569517004140417108789796601315686308240266691127534323150456435311366423622201364943370655650491058939828483064578207146916945022265762381142309346224592146104829660641390826587491975678901896767628947110116833047683916551426540063832324066562526683221855711638330497344712122053229703761097299859283524469038296771899407703529287695743499763950473265783074047727256764490610028862563672853203210971043697824046433826789882211396316932613851618280620415182180256110284525871500958132745016338367817787210265081092545512535464307084860778954047234823313908617040401400265520256258204860838258479225036097692180507902721424051764208640315900802773121486227039382407147197338269996017540486651535189026054792340683821246439002085508383419462279625724637548756090027873185967919329072160087535386113481971614654728765112467585374583727586111752023792218028562773690235792101649537834714358415266045023028408871660757153520748419332265529163763532415800656775435961915371559658007213609342653456903714955193762239849179579257345985568174797475858126867612264285332423518464989523229620736091816278808420241486378769250121940480400162494610413505005011207051415842431517149369239616031450532335548679180266219858579706401860695612049176141095922023631225709770902248009177985597052762801550466368399510337875299797510635079271789292403414930342002650160499137231915207755945176594570598014480289206734756644282418151176344464712991872294943938140252647462740928179115654209808188954506471638872775437506146158989855042392584993884916879634231584453322071468762908781603450515335668235963994524955970999326548556342631240926002003949957235616415336510858685333682528963350660395734877096366232258812462220935718104431267777090137492739425560474404703970299653578479629005334784675663583595483289741498334182272013478349568716613500120301665646521754560510630491159026426591870053863432612404193409962986394565415620943250890394968764381385417508000922806329534629960304490484189859957525253903401522944833339474842199444818012033116695589668476636474877823262578530877545668732316162604214095017879232128440207080368467685490029882353621405231411983302176923841568225213575819151506940239262226771371684920953469532997258365006697230197677656842049562204624100481225612306603320993224931776148526641648644143766147773053355599547004626685933217123384955715217496481211479465855135347125919959832016465844707517244675338082898502708317288764127007228443070600222053967103186765136457959859601815558308700379847328716721391087677725791978106826999815525911038085440153499125080875377280869930638128012394070680839456813608251106266721396852545392850437566418572925693825633687634376007595860507737409008431027241040942129398362046519431978365962098675668582040142905807713582093295896751598673451435121171480535434456106176028144971652631099318876164801883121306452376354093170238171299590481962880860021043351162814535370284920849464199732465661545042270197230234491421112463857739559702101683510826877619522752808016369853603835497543649576894164766380733404718685542053211917835191004219905239659507091689051906067812749323102511049235761770653310541330864804041174362322099230148258802867087033537997489218274747028803116378012003394143293157260751791456029854854304245634102048906307370664191780981838462171988018973671929048496549306333530028413345161020279774158752097579040329052533748026220631544136344230849195616329751130720056307453900253107914028007701046116464839162734623233864067377698564722995647919888355159936918979839343621385341433269080640238089517377171271171910189505457765891853448128604506330787174735232297171326635589351675542841752578235029552789366846521171899666574784109718794829724982891410973880360037495337843935417935848531226110920452813430640297893080679882957901953164804293359242703199900350005195104613340903441355625237426508050475691151495818402956848191344203873862046273566141164738589890716539675101631088677894957964948681225179318235950283592769058549268955442351075745845762264827420014713541548990485069107446929702454866991505446759063198295512295314860255695113975945808505606176801330199250355357597382376373830202136466439253687672561554213843116567869577819690294226194425799819225633463648901696987336856396991264285434574528877773274121537813133503534397953410300685471781303511179529911770006272286320064859669897414445739864171877202954998685322143904516890613778504025159920720327135670362427196556905803310740303514245280952992729004134705362129030393246414494038536837798614824520657492045949701262738783735886778152385384399469284136460155213845780515021240885561093856606197188480144452103329874008036830375334565240082623170786649250054825120145607361075923889693685413033748812268689148592710471026901504207756223829669918883578402947894013401042601431011736722755640875820180216916231022365125189048238147047835849267067105903338494660067452672232203426652816187222027593136158015380068138448447464763761889369707375772652395885382343815861586274365129632418327140521858855784416995953803864720029102721407029633471755907096851821485279007619333549761138844625248698637131956465087898407501994691020683963393807870964358927539391613850166764109547355604402721455486697085706144328075147610464834325874929246056533270283191970088044481282097765933441147710883726497685715745147480686585133686623586071660002154845064212813997391921209991884535092492901015509234875891236067305500835242304270597803742906096788881009307986900342249978766587150971136561913085208386517254167694960863433121897887567356918977357859735978000025463864924968541126594773633257239559131529403094654117142071209403041815298113163457767920273082247169905416648360793273750857740531322365007203449431151308815724949994478279318424634002280864217446493667492053861668449359996589976446677383130771858174932688421202240041966876445946639065664211952952672317800249682017065188767598471576172240798908040486021016728017261530912061656105608636583234228453226763913498943816981651721596191447663997902055606991814002503487850675787951073336408595956261253243493238170110936175223221328695078682391138238420733936063235524038155690630208561066595370597846099013327841339049230606173348518393947224932854712725905625798651230051802869336801460330361328792102943433500822999604991528671288640888416227785359099550882690949279767969196997125298410122073568154596722145482448880793739166541815934321173350844863090034117877881361919651704264532073195309559927337034303880370402812018565910944128688086436982323284975714439089048228786656893797131352194779990810005783902277670868189900439828251067410560814906660132621764625750026554309347693733186974528913373817702415528903462171766881096630220872867137854719253174524288354129375626073743332948593600270237328328979873057509930832735741589995511439010129376486344470202613554374105939499857164815281254963622522163017179714699403960815344997010415490901215207369233240307117906057649891814044853593504438945583819336051541922092380427417870846101307273631385242298636078451311604208637919464002587716355426890464015662274793034239631306180410890521725772524415568992403286374905055620700763309306862450552336511734200447792932694547611370116508156492528296910807743798088188643886383348768866835608431748670635532243205544669949233630300451899880671513346047419795363650114255344160238127842975996540582244051525845444263118920481073027978442608212086277933591177222479783839809268274250182621687893264229330031818433436684010753918527528972263450148612617088217345409706114398164242375497080216970832312370416633770607046834212637934024740501606910723611953379747657349966848911708571466397486089415332307761907532466202795808533382156210093247061836936280606230308050413716268800827306864660965916662200666646188319696814582180728697329360496559280926870126425760754544948120299009928180210199633758802762993302991762715366590228525622601146625642956057094450070005579872045999643170408696861983831541002155218951903633509414854201575360860092919677881746002890678496877413523274815490470350759452108158791530545824785110278331238291185368451402474087980787695171541939287265309670375946482604111430345867409194081471902451274061275620364008511627247969949434501720860776536568127744449570483756714192862010605325759401347110046843094202573201591878313493160983760312039777946201941279367754797972574185465196104862055196139037602128700636395415573648627025414875579543462962882912951311472017070639742261609672422189548989339914368131246562738457785305881656178130408694482261856544359398567777114493724750848865523074738862692075334915826690649531766585391750571693740052665460241124635946136939564968787587655210762411894989326986231769487847719549973593558819355883832620804451230313080898926542452449449289328706154169175899796629475646285027596452108189646415843145095363976076150156299659187279740757558556072439346742863105945956962366983790745811817062106900074966437415839123609398435442165316735933407457657647489994502491197867006537355382569339556031400779179312772919237648373984361816161263291228425633185418934141094431095260977097919392716463394915900538122488132600636514493277978582531903358213948308229215525198333931789188941046135483578034651366489719143612447586249967234439298455787895371000560769687466611512993524923740831368423771533556428100570626203122773325858785662651763836871770648885315027121640241412892076950432551301456764624548161450683446366092098172191036868255910054239727688944656736496602946754134655840557704907741794493595897003069591075657614062365715202556519229361860973313817221957485015539638795990395939145195626623496380846687427380601394454643911205621427566276010302853272867672606350488487346471973964482862017584130650903311943088580376513092167389920672832203221774624781642632946537135701531627886338652893030391318054980232109287072292409326980886613239154312696229323786551355941777275584993324591923962819045863338419585232495859573912880488130142698674905319954098346786234114639081474652143535816490533888974800053085107786154151366869901719736755922745172820851911541644618439566625265159887981784596851019617150089103661724915637766503913488319919124010138689607699006693760963992478809103346890947508657428568739914559557773646305417079158291857165635921586978846185353146167357595849634017525974443047687607127529128564560609014511831372550678297054085184038556317740033648932379481632560558714359390919645848342852002255488260389677002349250528360147914313626804812797110425426776053522168970965412527992613915220980599414673112290589804514935458184971239037780458044025088368863742955216926258803342335206879556966664490163408699869423318854542675574161888387095004590559166699225780945772418984507730677238964327555651662224998192496418322625013129874446912760717509470631323502577298996889872066360810467429263345408710942481176790523015132360420524743157842952723686783474687294558031737232862133630550963606398018647320536974576122738762156643770779520119619962395865327383125419957974357856692035476307303481283797181294786123994511675349709966899153125099591362783409803800807448214215609328067547407453119947763321747824812604387124637677667633909171180153733712486764068937856124198574701412683229184765303112997737535796286829978376022162072341843017686736308254799186716331824338316259766240101000007190682229612963965056661465841249892366748882649897564253649064936536908515902448366346438522155103587675478803614476306021868152036569460734817594544384231262231961989662948821574588863067032276211429750971230842433315883439431078684466129549378845665585923760073125461735423687857329784383114981118701922697142361910092182658522171167515119529845389127390874915003087011999802828184479691864661315086892671443348178782228814249882800071593779038761381822057010129393090760959831114283788068338746254296243621009867146698015796661992590385658009986072111746279751000220446958224210844430395641934937087922294101105523706139323996744427845353919960127475776478028401031637765322131340326208848529646648364033006170895386606855991136128891508938553528898617007774929466658797520447227518014848542817591287408009431192364477443298762830216498788484220668690345469517142411161691448398882019783667037679343367916095604281735796417794743557906661681689882568052477120998829807051476157633997152228476952327036076686548189213918603494226602785235248624696035965677661217517988883252583801117417743226769115066698223155826083737068461591499949218302062019766198798731510918827156578653154665132653362775816479385960950252460177119595906389505643543531771158137338729149555746858479882086214168856369162423265466453334597955370357476802113417557855263584470730915761271830645751564437859910703865466872311573390495879044605828940284740138195007918967529850308498278319783374499511139153320019606408442507722363466483243482270541625398056691941164742575649247325806828897626987166340251013624251944572064895575066933592720414722290107374651512249971379237383348709171677163008977205028558737586777944394547191802424968816064631688766150712147519267046813237073048645596027112130266170338808421975176834045458510493616528361773987505129921945124483400170910711001519614275392438120731906281040754797783829245674870115988163065018385538258208190763854431001742200627292283390885543315363696926952264986547363419965369881431046957495403257148896900722775252148658291838471825270180772737572103917103995280590316799582192916579475098105918681256491005460545901573838590890796685250796291520170241824472947438742634126709081521092806606368325688527206193869278561113202080464475184944258385569348383377791716474214313059180932642835924042442999831228015370994003228834518929701005367658719922267865297044821026584467021248182856139711523273034706411804403145822582662301947032847264339870211541498217788475123667623396903117452007426007635622461189020850165282481190753580676284054944600328473255317337967788008526976636992765228730725977655781279263795200079510075271508240985208656067868246960544682102000696085289707962203900472955681518780551628083636774749566526021528757280921316022862296505466834711530269813011590478706518655013377613747397894408488133279280112687078472318686055765702111918523994783588242468345148739625489291896207359199200701735611591368489824793151364201431181586519635662656673342874755353424785161949510955758430260262529942393466690345042097158784436232162826924254516992254623900794021824163130755498397649037603897426547967487584448352272027370520231579077743715694208902308075060622777582311603978538936455656375522942802996268101332165517339124669445165351022849129760874269697940955916855091412133970095400713246670400020635110095096996308086783975202335616589877602831772111187041974076779557099493615139523748721237550268135852342446216327053233930628512985665050881316538748730977384408247505428660022869311441906142667879982757889374280580898296839832246876496230819162312335733833298279759535313186731891629255631889424377874763676470406794079581972170963300308563189941557629065189554334692636253697410903037132846658372779783107421094561929814676105620823399369137416511298683107107255655835351260406173148151969882824551081548460072593322601157997762472040548649278846637908690844154810436180338996758133780543420442490948233743413788503733201329326474834692777487899273298129745784816255373321174536974327696360895535870688277190837922434236080762084491341232916049164242325841831121284377025932240054247353815984519819319137332007013635123249771784192041724081669469530364548308961834515272430481314645678378027346895807404717838963297287821179671915482592580637616373970855715289913575327432401583481326282204108712683252576685528700961432519403172808319985284559985115591875493773918602182116927425816442061151563107620206898291685608475102970414487529297795973533310549993072098033912509193614509620288120847356893207908352715462087548617698458181713935434383040646165329467038521135831035494058540874991825809774950986224385760333602324898011463985686424303880987033008207924485639663216647620690218459160130766720485353326492816644158322867780814859719049711601705930660477911074522291969138033955855115017947203234072947067670542094970736050025230662987350128986666589214914241189384231595106131922797636070135131435622374165004690084735913760072888803377285874852509217463747109327154055066485673198879929126775429010977790073815832408379821746566731761311544266447399862689047102517983164660641149599535496396774719434096832745857943425018735163196387091303501917536626355381236745756226166805925785355646992497452740115460354479432934802908015098239899787964494374435031896601591205081843470737163652434276397468300439789564334879903494043203308074243171673266802069925006825095472744271693876070953301837410580593463400012923086166119832243357267448656561097761496089769990517695048762977485379666476947351093487989709697605558481268150215454825512739131099367000993327205778128421257759499436647501704615887323749476078883332519702846755551458930391285279138570594702647678083561482213537603013077010409387548076413942270318804996394109256334800582502093759655799540092864178792517096533149157256316726787067748150529308572620846699952096927883558207991697371324586636944892866998929299014011678840275103275650245843083288161745413426072557716434229894338427893793051036178666694850472993958920649874756246609778479938024267111485207234159418698720975563800324434664671983341014943610888427040860022716450920610211531123789118852508616378533729514943570109026451433166228530860846989936541292708006398224428314020889714436265429818678254918368198315671633287362884151312591879721396801440671167463284547539150602442141596776396443470197475835356593727599489523431230039449172471648130364689297974330588091802013791290677557341229561646670044985449365320207118241466395988892173447492422628753384389123560406586849881355831459791786401103526821479078817597239486989719340576148624059292378080911212785609726538836956008863005601455549420620231412418333118518624134633815723522242328077119021005130987723102843958348154755309749922616928502243565474421755280175667697335353630684389247192169526442429965419213562351475850050225965445050066942338291077104810021059600046947443943138307342760951178276590677008585184947152255918825809612901681139956424433683880580098853930734404513426178942222030934927543301551231730050477410853206699120545755060419715172721575229470249850572051531068300260262761038060410666936138109956968174459869978514974126978596315133644344434876057758009798923341642192378997951845900774791965556690731567935822430175240615852175919949521869983781732318268780948854859762720659559357711021395519885025273247282829335914274515895581315380516256760569068413968445320577640175609084187281216756710215904139815343506370676497251463351561436923445235462341252830771730558585215303690756050235760749757230149104687032013170706029217736331215515940436782401605013352536641564753504163359394566626276022499330090939327805845580962111145025330663353389252749215003547813125685379324118994915149177724273631134550061241456567813613329979725693593300785714223460102901531452297832302648580688523248028898973294418329817945030736760826365129029263502659366615428155344793737777361720788648872324824392349774412688210366944662105020249899097118400441789500294338803787402256712577104732716822073550320471904973568686526496018194123357585603338535136145651047055762906037672304074003373074953768928928454659430827326886779048833643093459354858045574314925187337510971198813000924159814456331376977797238759970098096480876382209001881251740178684010432299964075868202683023424561084822567010521632897411251048928213948941426324958978659416999964547475290859138348250159460269058467616135730174547876115498362443971628985002118399356396597118789877310714426142220960067440748227376369071845730828389700385443154165707529447376744134582896310472756048053898301512498660636878964290313518736054168901460987300637015150721004629480874233375194696836716759417308740585125081711793256713210586278538502759229743608754386496864887487226223584152212522848250827568311533316546871869923615324988936993004815756790699333091324435068954385958058838773292941283965148126539735224399072186158738964672405956332879087515846553135841306514284482655011986862561407117438217091695068296225492891873033599044467256094849410287244051259184699890795051221449926910936884098603037757771828147254853682253323188560285023389194820217161335342880095364143328432648249208107120824055331538513192332564107430245137602647960707437598246907311138850815778291439755169592874844464997369259613424005243959213898981342295437371592588036848060475651802313091507024144245604972459732635406855486656084733602441163171199086685078793412261100800039281565234791558598764982529170982542137307697045840308043440904793156470820325116441287970394269508670457235725173575656790411045889905549001882569521204892725593790294397245607474714140244859115524596152603291970023589620779553781001144560244653752188368666092705827800177699806216311959648609332701661469901568243184797478278738223765189680740232030366649455408014863033407242113138872396534133202977086199418239987149646956709074621457154543353604171987862451118194777155551850244391532826133430218017529351736878277248375061955597566230019331992984214926292387065179366954568009568272218707114519483925102179323893160460102646810574081955729379288098313960398154707301169419351833946739226696132892897772343046035238483044567185146284565139102964970218639871822582350498241931941007530469947232847903044558886371985828762636216845382024206052081404439646882601736148918312176808292758521503755657424892961004706288990910419988543711111182182518203019212743277915486879803009407110220612161172943317688953175607276406022787000998356507923152565791379178798943951893810737189847022785475039349260587379148920429017317778588762344026398145038781898160170766689210862965924407380791224031178555434407050090507828202834633695005875271992713964495752593743961085074200438031941240560483084624348463892221765332470457128578242400944288176047037517695290621349977950986136014890704306087677461887672650030416349612812871512739154756223140135779013107322616244493194177331112446970668699276847231412136703879512726790805803796834899777558237286144263471699408233203286967551118389730028142149009581926343469657181241184698749327581856276955744406893860874798534095293906005835958226453350018394157971955301079830905533694562158525171664042530643723016185175573250113637005551100043794597312484441113271998553381449600556887474347011353487405650204663360757244321949143428667100081691201359155774082788211126668783299080205881191043202482880722337219188460747006378275020528998029257522995072504652001686230670150375343437001370585588052187045170703733666395301087185666470488316605298720907752570114178531896715505394048247420801518402654546094766198243741512609836702301027618046278209822990830449964001078988519829414941427667890380765295271735171430394153600546922153066180884572715541456916399122010039918905555695771547110158311203250743788679648384745521157087930016141543772016267436426886702331643767504799409806608780708446062033633784177999117362598889257606264191746293807848286026378100785379534052326578747390360161364545482153553642619253917272478304775447941752691977027372364327163663178632637138679366258167948684449494775028089035218262518902377040338693864829421200796135762283341684818546531081428219288099451600235684159063174456878124427296773530770861508700482813365010347687157853379010810671895649536955785272924909889470392548035491149724232692482529898915762472340232919969945241447947552373822115455483076667089497987427658017549100208115611606828514930917418746867245065249205341225677555057430710476680027506528857409952674339191193028084793211581722613291746541009507066125282214371535348655625164229799299358895000243871901429099185111889947954195486019661746769852063680239181956963843647393690496538921614953228927539112865417299670809202408002978645987350990552308551428155648763846790629498768180348838577004775092547243016563069173753850729444310841392503088897906743734038717203546678292380301172607239419503439682387753254468973717472105346057711854301202356469076752603723091715898679761488331783836828953354186565683627310600321007961754716708634909274613040358446621023123852518852458288303580793135047860522694418857995188047826932948936495110498352836545969362438263319013702321058776812862310298738616095956014632825608105385665221108411367645571725881250869040203347821358042869830652630379641149661070693677402106474203597855905073145552175805166616402192539724413573161811732522072897176503520188445313579480783410980605734710741672781763423527195831619383021674257193521273213599923300110991134256747212814187370462920222460730287472137301588178418244521823329743290611832692634309951989387137679948798312400284272267747558909178811784073010252308302996207751528246271613845485149418350806224642381518784647627056045321247794612940224851466020457754171030222260421577485573812219086808444799528540345002939301335264217248562201296154369213245519325954256246400460040703873426774689083131236397987574444593730910661142196368546434763629061719304648782186637834186827517444604049802726784098977446521854939902108487335868160533811569764162697387319699595585966343504371814679698697127097685263799599539811849803971615132079335344148623850394229486819678419908253435148226715399506562104514221619097514744134281013612276839420491398325995664067109963365395463146232192098126123792151249003920962730185256746428922374299710452305805408585043252561074858363173290284612987156600753272942053966508564579972215706155001389779883881933826175781471573446105388452612969523498038029167441057829653800983892031414032450747564079906199930033554291335484505914525135661238174310008796744456991940734398930875431764975025404961859343568202233169713303723980374097859285419900100375700362499488423359961640871171517767402310081395244359152205374926613442879524836517457780565537362079331519829944139275545685049302602082948563135662008805618313229176974405439473092108190845900603553216947076272191906921938595924372619527344469405440672262372516737288407205961029349153199318407382303376013621058454059501542941060881612829328827674545844570304257642602154798232444100730420774848951085879289802123783744296286203975108350941578169585817855221411339192391273850798133082368350742920249148904317064723709552943179667816929938961475590716644761690880946833081108905182411730040684371240057349182339036258630030676310081308734255155057757502447425451520833835832086920338748126305458220946544944019385574787537845081819309439552086065605847111998024266419682672331524856135360884703145172777252327756647630097350918290340577174438888179142679722488223306782323105571884943469565641834200965182455737477200884276639073187842555751075068803373885041496536251310551366003477393479311356085035451563368953441299478432174279126778200157574692095757990062437833481839549028817478530023172524967155013490072034725432971751492307771385748832661763541035011947735117929350323002711259441894546849744305106879222872109809760783292428488739430465498499760281995807096065443814635219631550623607341036779687196250710475223524964734794590080544679447527556899276245408895058271327040072491628956260212338008148865649110502591450165486695247503332055572953708950892362430194984824250954473632379454812159186273470589753535289935174697885696629852599970719789250056987528464821893698356443277322203121984617611531873704388971533203627267107226041896148654666373243426412999798155477506753353456376960039015565346205417968341546526381122626414171895059213145096447330319388046458500866385314242245529029450163623480197219630775502921694227025235220614609034759802028387319320484489216578240976729102154629199108171754448047468995444330883892303632900403465675394077877046317677494037375167634803604549741237753456402144260496971801854925415134140179741532374786390409063744125855331683179638443913031009891674242052285006864706842610122215988844822078914879316211171225246141391263098932349465861563505737721650215647150593093047851672552330868689842323747678443390152834503428876574364079093637091436003299762349264915036295813734635884383251829632217693533967940820379837131360857803649634066294183405677853647054216636721917057658250650753555181625864655072012940347133074949961631229410791801037168224994076456701624880629830321818842725038632299092741110315920350070788753531548246736529084449331758122896723097550662176836357251959594477907258392525718889425592850482855606951173357009080514353702448128817110379121640199511137971902211529197772708676105222279538803127650415340528203820689754226692426031295089235957879535886533895699205537447569144857608908424574577589558868604336651243277671835259617701557378822678104047428756352165028436560895604695264888264353219442684874751309247421141102277574615615790301753780002534576108973779481112105790347083183926968084750432504449762844890547703645003458957899083508542600797345891614966795006968590158271371722715995083729540137408101496306899573867106195077156522461649248550678885290477926011053362892832372388664172753365693113000886056775872513857717712734970372273532270143031001944942759616915717783466862982333439400733501453070431794282781866129502329689866541068782710063116145833160105172989404580691062730194276947717282043455764759408791308006990302256659877226534362403996009156724947026326831269970698188272839003657234142589233570623258161279651802424092142598451100794724753649330681857587894753974295121544886245319856993628005446469331944436069227610085255324334663451394616289526012875387442617265625021369859857083672151657381520225674683056280747509430161032965035320012110990027998364828991536437704796157721546595091307247551988802376551708512164949800975846676274150124210823313607781504691081129956017540744456439210676039549193000940473619547906058975432401590425320377982625093410222298906934621540916101098137533551377664369468249696760870433586711905532279250805873346372965527838786505431077220352051961248954356038038441446772989375987881761166566417626357886997312962318029669240482286887328068301642828968241848354558228108201654160058350618737603513282036528876932934041818867349761241583879035085229899278955609881283744907963831600210641236645728426508209065087753008198666355835168429625669651640783773850188557309295396873944193808569071377838316434438099184693958401104288312476183593434855115501529916027787469935257410385541362472960053031737677301901678250980901680446520014948967466245322205498407364218249522494153776096962034995735481347120992530982782961761292665130156151930975198256405948714778460983271372683889688281388557602330659000330083908695642283800855541105195707000095359947274448782201491033427245201523131287921356960242535486228350134123445766360410217575056333291577020773625834704097780374032404730200845762949118983646113335121363849391119098211869496559169289584665881825436902104673907859650811410075893761614888343908985707489584786137452659479436466148385929119504055871156359380400396322023149365777600996861392217465139338608651867998656782686410402085329603633001425458032505395211497950568092288514055969817211873072636906301579867419474335215815770392599477070142258534605117551170656751677369953640104778934776931050658636481939996264909254957344488219965146984070705568674548666780950706939413555328209751863056709195326132728939164559072066064331692301223663648106619787967537165676627404733854567688451600803360299138881848377882413834704749335798290631781110382942118197057744793388697110587539015757475661845440058382251695778695054957367664016761085243760811004283754088189999435977003056860433152845351964663401017891209810889046730991773755539596729474595540029756082165263717722743408001108326300014261819932852089640183234336435928178733850695658996881494833452191908658088546670177634488484509438357362737038096014178250473770548552932422866127556341808606960265406241057586366933442346653125930187147276415807556522664253388445441981921596460253885116557544021922642353419451136702578621992745178538389357028053964342200760741270399252458238394287039327186433644599079917060141395745058216741367238678349018309495345419647504226918928275172475500834142012160414647662430501241368793617124196486432883503471920095297598323871294950336591858467131455935171295350226995424047476569158293889275333406886326956160796000262818153212206502950659525866777388693669748070160771993150134681534337021838477494922534949155447876893476835344916541157061044612516547969220593825726052300252605008488520097965234682882175289324093728022000266768161635496151145015298146286704110211466776935859444192259035733328530581962920590140425015576635804022056335566088708572552199390985616459773682254617636185647904559289351656141149669874629320669932324141962010268887295951145959211442331869793796177988876283808844391881736294519477230581374271461023102423709726278671160191704275120559841649952573379795320818280474083867295082512473555504932399791482830672057185032216765834812434314334428241256084106328771806290526840234258404665855077092516050826823293801267068393728340485848938059728327565045244480034049728472255726604211968213906505854413155497125196906491407588797511903900950117160117132191432147312023392527292877606224055319050712660190870850280727337775318706285474408546989852596138873695275465368700363915688127661402006038074831888777630295392061211832137636738758265203492703197557845714971381278603130062277901229919815298711144210913541146355079475680569461619871312774500013352999011491026615435308745268062483547842768326965757303853837834644438250445592830606169717159673973204956748758789919375546622654020128903450421308119381796349583643598517016365249822079819275043746803700225253014462541870166668106408298404420598583613009714881173614512289399491904205202094067769901878307614824433441241846751055764935657981458526224911470162461309819560520631851647477470985650246012634746531078561235695968052525975624846737393232661742055349561548573273083180618087884325323973073772396056837330225814645889319613405661851205991581771907477889554518680353711791323834770771387676873723865696405978490055558849325260866120378626442066074028662581437906853596238765795483696290836845406183728458661876790256539469488044198182256670967822873637648641606871004336470414333803006813039176898228151094300273555125490193702916533247468524040650372327913142174059970500174796184534018277054488726594515080922220062033910336997309159107241759889807869298740281332826221754676577528579763002275342874416064845386722038831846149999067315444681567903346288514886566036331279672637065578671117554684648328158426113542793898002108256767402681375942551880081560269113176277084855131477867091615596445510936995866431608087144128385011259714250885829273348610834675871084486086876406863505321711123975765239074053573264894887928413674866115443970962902104473068116907263580503409332687611889472761572246511208318628114658106036820420717003780081334216843496784433715740527716429545551208680504347640255953229182815527718537862505090386509790714012940010638074054401059221364596599918477153284695710018405667752029326083435498126831010824339614815075316781476253403403842300152935347261829434305795178513570942209233887884282603619510018898001494703718942380944897816140364775573185394555063541092832313488926422844142812604740682150378497573637569209571830773058662603802706820850766777324525460535821635427528687538151017134430269124987996567604826182354344971080538088091964954307501062261966427647936146196866787761440363045315816129590128180201906665554147521179178294987662328847267761902252525634794571975918846206688885264503801654217208136558726238277291526810685739926352309707047808144681852209532443807546078484067572232528868035387966146163966515808340365669078876079621996816827323411125933174652405134938998729335998454487223251423696916127750095277089795917161662442847123296833252609083352652188149409598978774708276475821191385984703324969373796435408714131307737092913658344416802384064786007037816444349225701872953826606533180680625865587058970545351775004915609500645859408821348933771806338707098869966382886360917047211845934090219506473600763317510094577733923008049402056442023842396312846284980695172181225715238532525021092750148807966299272589503597909976095903895048879543209087320901635324126227587996728167394617424815942360692166140690798937605080218945490259879104633161844754092621163346217647563518568502012304788906519320232542791230014530193520767209403142164625622533584462051623350523623129800249240807699011335514683946747948406359920389121528981719090883086593372496884021090470809558852266685576070552395823814567805130068963687060582292007739128895481379074521089135468156510759469212820975128388971374849973200585507006271252176494688501524295108543854502215563529554657034367123501649034859620327022581623820624059954740770256480417338124819520594688644842864148775815420644205393146290859287533716653811873083669839940531377330416011472066706884987173307238247321092068222679914630614731591145690250432363708229682362773857732422501235708548325735893975378980560649502301162568857730806438941620113855921254255908844118142421831450962721347403546269397874402211912363564141259839951701124921929060710097110510427055856145951244559457996029002988279688853856653458997352065022390340965478524329527336784766186528987521425980854769043316448710377661570905672581161917957687075991571738097902772271037488773945374447909332905969866610693395088352534240412205318778789412883081168937281144802651031300330635457215933347356548941677952064794996299249406348590407464195847544633333476946466369805842209016525085417207950300218171194901389791632903627404043442119464290363244622057601814969988913678312861827152641388330625497408941365660802868588545039957868664909446628642196953037520336844004055259540624186582056401179040826262617808124552530000046790570145346800466910890271694568516593608614681184011579666583382071701630724780761770060911276097186281399961996855362805536632022766438223971755743539999717877705122335402992877992263402520611104194475123028047728983159304642331447689460770819830461066665052532762674576787749127736360275269796156845161741610863512484500578289974664561880475837575343371638018206354690298576861409304670248917842360979334791045332492401196778105884676950982791794498400424507815470899732982705886856556704104708478084901935267601392295670625426102899652633966130835677551008894363831520418759787081290091451502330427720396757916616538704167245262507259862242020828705833786110195131461265852175004021220141462742417113547811941950737589675291265372100938862587285948335066762889924709725414492691178168974537551919703160786761936351413974173692370885984853603693502781508618875925879261294580626518576744985240846667151228488543743801960829280327876335398156303909387320276761105605966610038680087435454113094343867800947938162040717621912531400893665739027714930639368261618181793719334390812899848314350710298985656762684332055311340437425775284520380045890107369201629203729086772035165334667182460460293474911210987136383480105074980256142420304740884694487885054750840315226601495922810564121724935701968917099201639835629433362724775337652431515481825229578783942002310347273174182579467999471563888656107070886625036000835970245207975556424079098285461423993669153095787883328056791439660975014726580108295600767870246206627711202257475125270565656664226517290799154106289611243886702534911329877176624624680873903335685559520228774786686657047568720538604026736135941476153003168558847323437341329824625056373010129526032110334090818216935775125943661391951945070086392690014495871948084430576344225589510197794570085316005400521425696347230460967926899013447884838197486398789519359862477558683029654686901278271485279844710621683605596885774673351229360587599608045647128265868906761484628485329658970243761131248934602019224063702411297389686085291686766906105249634624986699006003080811311920702334416818232020491190761235957240138669524502126806379239564316931173638500863633206047788906664340511278864357945634589247782642397048500352143834150491705980277526910169162916123732021199639769905420889629466163027091618256109393900744486243062625814620856337689898711342407316372030026258670993725033393960229682746727854967456881518950694565944555858380711174937315406524814306553585965549108476250994148717056581001908796405570346489677427091448365168466132127348520306876954773016557938356653039372517009391313077406230805492404812403865177290247543765241789857937671759137014976107182823141487626811349440727765609119431193514433978414874621655453979536717552113916157119759754397169743022238779881648156604019688070993953015497112914119728954732096717107053551811660861819983866983162320251986156439796219756962876179048458196753450212129785822314426893561496868286023748876468523432865146614819990050809912235518214642719357191928132591475354103619906910532356194532821832227972014084526678822754702594144260723339338861246448486667294522390256955019117378440771505951123225832052893372232992621212017383890851952413905301712321425800378394617831843802245893587522717077150394874901202083425647281570418290038953172715320810669018319400848383473715996223613827558161517635406284376603895862253097043619448587084390297130687167918547506939150033889538334051228181680387584552785679786359398447478534190876922825862242042198498342519724416716895851010885642708918362657996502267325284191168135774927526954337743865759572017074399876741579776892465091742265143696502372573596134005614676236828916525114416064818753111625135055156786210447685342797734102717114792174957657131275631986661064514321197120463636396987458159952106518790973195336254583631998120742861836791793817810520974645725913934560803296069244002943024705637742098127958080512832793875405669798204062605321140516964997978157621811498587112703142908749396646346566974038866039446708843193364469683817060046054398560168481256507812103683941256834263072757375291538390960715179590609735773473796686722505232712994066764103543271946928534919929801787770405822382073149793993058984004525412729879289023646471060665909177476412029664407522730877311911264609484203918720647013914799354569157995815887420294959070895109206867013028997782241594404439657244135408674238464893829715027963484638477231542284469681013214464532189756996463750587734980362864049225086701532706837506346856914246269930268620235976242581944875544155822310536847680361168211992625700757873574455199609772389082662471339614965236440668596826210393041308287166848600149144747026216689071982528078051874511848653018532074674944749973648120697884811809741629274585408822518668555349727495492789635158353799148406087889026394946139488664389108332472860933976589618618113570446329479948382159333338458100504128943710577378338093776347437525296885692911712602317607181717425686223517469638968287458755045270325248649115912940647082260777963745261689024648557182292671972340126203900033765041730263091386420792451797454211505738094531340671290323823700030510669674331942346484374944255330934221819599365081245033750421550301827702460306543140122675287571888480961153881220683463925091843649886488566697902324648198245833375182156123527815440372463429709288672301844057164316429124396983696157029540897358603054888848883347121300319726221217177142582921785425129814289697619555256677637695357163698376561596248626767370627042169781310766320283964448063702779205841556278560676068058750767935493789238442268913634819899450944843635192458824420503999639602563920257100561631211423301197653530722989138486177752793332625731972304483124436061068600659253131704901906646301239866994710676556876252662585514225788894097729264358130663766713652105776513959457083659439037277747141855439847055504670794442009998778644267665695137409858841456541274017435204111464550563448058572359259683057977458025905719865653040390488052864082924185231752088481644858537334104153775292955350723893801833940416529583142341738932962199924931236642014924453177354102223242912519758544434953968927754825005616512263238120392950516323818739512441727840905917803610181247622320851014325397244119519370422065435154881474187910199895263922433783196641256451897172503042301163141052525041841699567037753742481454894897325928412276427489057546239349341395425339794879760567080786235758039812223916087998852513525595368390108903951923036094186261712021927083571022708157262219597498124190841651020492128000460610092180369278963312270671248270914786904680816629056264701052465301144109311556856523894283101572839027935916787513423958254087937093912695830348594003549328413225098999952296878672821116409832780162641282132149307017840863227949272684349387878250245515811109523068492670830323815091923330857663848897871569526064861123942848651132789618905108346572700668520636351003799684570003486546180576497816382746324686558793036387624109529168482550943533155158054203217376706334302916700584536867935921411040162648969301998900625731512983634888152552525880901739163678666690941643216698350275510586615878684801647345650223485620061592098241564589315148838720342792177209258996172833288784703713154812964975346830854793570588625284409825553465787915513538150103219387430150195538718176239990023561895058507325761159407332665135616927814847203297596961269333461985124160833743447875539343362338267190033415553011724704232514081462130737483778244292909792578947975388185742344742967472046074587597905970376547335025704743813678740007826864393036574481185931519786585250969305469634173636746485190997272742458659412166807122331982279686368522471845622669947642245705141506597184605461380055332058239290543021509035280562430166826229573841879682295337610321681939960180801849929052651000032869940313327120147930159637294156816945520738272065829892850585546818692113597270530098032222870878390392950570468441296293010850398793134233552422243646834081422479058977860846592183481308887033605867801407764718091597876303454440053719005405653780405703978719264878312576288558645089617031284963333174782493923978854524618984915530955362688296156146612610927199087083711634603068197105746010379835119487736511961514852977887334684402730978870362580366444132297938547406875975349863820578016642816585684964146339682425999325763602479642601205408667982927330284480864269445687677702715532092903443960343275012260366402457089481363652407055430148130372595445065296843833614884488225529060631479185609151841929468554581557380093361352685628496823824316952771332144550860817835496126242156322073628721605881506526518296156813634277794815960048561544453630746911603800345808045894389444767860913724953296065082267484194487140343959041814770911853310678958375291004600604404637385510280913368071012735449109441135286142883866052761645189216662291479085686762058243476622897007922450535758839469388712149531072690125720778209914290765902041132080358876916756647115971742183055373954483627247291618906802770692665044898920960115961689521266946744524120235191272724855286928111121048459516177166253993139823932285535299519407624158893734433669416497779296185648691342275822909218705687358217944038063133456110447353836005883070961792612631500286376170111517619471199845989439748880098790446957192468843310113971556347406882161131272896195087489863913934266264648027272058558509758803632540615823745598016428839435190053153664397024229385126879434602629129408632934602251154965625337565474684944315394546163986240061502918609272299755138025905720957755398246852655645336213643059958939301128333570059399155690682259240860592454486324182739144493161589327446816314808652643510240091613154444463009121643072601311256396378280547903641133812527122473747735974777930318730194959506992636557507907408693758481577416751266618494624378299122297976870098235906668271390013683139680336504314497109896874216803239211678581541174383359451447242823214334341678483332185662477448333833441843187293140092004935790418376709317570824599204416764350790661402066427736739039675621845318477918664506954896862944834732870631522355245206154967927131952791305222666395918536318449872535733853362409565990320521752595727505232547512300102426006710917670167200476969485187651618488820978884238171153025651852640218683066035525418687102897317567233411138983273465854624416581506835455231933308594254373754973814770887364163783912455957570768257023798664708240622328812896391880821380863593337761089547350732652811410960592320539913622765831043359007395256153434398168578417811870042005392667519124466860393827742867183598112614085712111341824093960995329018065550510486144862642679289424493946317470710766392950053622312019034826701002335122156653017059088055478851915396719348857389035200732020190619454983360179519670995790367159198284783577633245427931426379540637842090031940265046393585212071867972592884148695606474974203830144517614909959274949389703421102705112476350340861438217744513129916711586923121271937381106747182142299516753551155172741542331480194933136786958869770819581009879888930715774894860444213502519785433062221157869925886320649675310786480656289202091967607631421810680297392398263446758642059526242365335370643180119383360243055737202113508786311632738664820039606926104701541028602822260318364392539813865025100691651549778847911938990701297126595253176355949443764073771860213272341981718536602645405068837865256262907804336666535471535175954062471596771846541921229690663782849415954265729446736068156501733664275641739768955935285182821816850855012223757964275811216337241881136112538583398113579535785486429481218155375394766794730057418712872206019552547050085533123699177213524733714661168301270202544919220381050436051818551108536165437314781075192505880440682546349186054559377371381790815826811131467355214323233014751732961181479593862854321295343821955710496635333199980100451432644178255193228830783533014334085982317535185585665148268041990138283713254324568120727235104220908219580201980514208071473158198257764186125458028652759687276889297925624171520425144249596500037683576420468214571901196419197274888579903672313480019164479891141805629538810918156804706755786628111159479976881705286412321531514402856150119033254485148348314805599144896024702227709900380418266189949712633318618437874259594891576441958547938023414979085452076730778148178984087995892416611028878885028842169021360966678970410806191374602799017393083897469958384470340245040461848411433510327547851336732893514066022601436506599044741252414039865446990657892367977988066419887990341220943330417038208432411831982516598624648276599310271959130130395935175250384314499134082181983440275950371304587507425548284582562778588647718713464586093848512347723525520498132472193643156003213033350646346265175199274306432728083277065489445566066919014100629973958575855712838265318203308351575479621943331469872305504559562026302416456624195617040788624180908552172716543430708461113422809228861364407386544405924172230563309758797402113719426666237589656653971341886134577128437788357720410021020784407268769418169562424861704481990889147727457380541265855445837602940690819271193116635937279075627785517935490763921335784342124015557457143360659220578060387685897926539325263013557114250196437454311387700171067806581800235498226292779457991445746608141132609811603773827883997027811536975825768094678646515145031437657358807773590756286967689640230233922435693958986709624435787886875975108498475310989135693080712863651959219681763903920500292199401080263494941709116865778993587355379137582497908988668696317709692447972255534182426211254222197890349578984355242149480034408650468203699125134885223579406932734321466374580954068214261780779016973708487622656344220167281697583181827378770436430818901134488363843731394366613632423860041384620767702501513783316059872169880170791801796234063841775277824882364509130279654823689565631556597617205283681112537582023665701510775154796534990402639372750571798940309971166393947306594388869136570241425064925097236852939842063200152064680468780574763308623243784159087084292222312886864057618537325468403272896892269573331526476952869397125302686375185333167715272256810682638177889445943504204300236071399857641815006433641229318063989525527691151911804982429702727841506812708165517964775824378084044965622331887113152414185264664000405979009708624121209416586728406086914697883712176797932022878786986477324925996190931435729997551927823737301173405807988082043536133076432420394760428861609464030344436919821607331684637907493021629692271854341999760472985483653512200477734834995532491062864932569546522201887708694203642660264401533372828445067512438302506564781876150000351499079395760078930593333295234881411246596993737120522304690746184222542145323905294916235989518839522627796553237518469399599508683423337276373766014691506283121832644839331750898002756694148004990765402471030190641683458682097046931540587422879947096958702743855886223125101559847027710677317831320955400258992584025680645938910773174528796771637700995072031557501765947756158278996045855468521846809023003314481405243946262673929076527811829559448930979761607629366728733329875115812242395452916495809305885184384262288193032481335982537227037542365716921487231826960617441771833193616668739318898593787585141766369597517530303936854904986737541620081189064540080588458656997930329983562815820584044195505374705229906253828970823253940284804639445985223984486971435890585450128259330134793185224050790088299016140428522730371948860968217500906082891947914642043269577215027329290546402273349439480917260908509151810314642284847508088318689526104767304551708274230146142972277067346543621473285990395019419934587535768183099418524975453749651376409128041998223065693840581068333203500254362670868290461608264003689882542026278683994496912574609441916412112809626291829530416569804210914704159884805061801210005086886326494973718437796783451463172447980728366425065131200005397955787354119075863604395678692796880947302709434489166173488105819548678358667943254467274248509034853561871684838200515886964730869270417198720838052230331141781336959286390887421676260862861211196497846383172046085364219164647318279276364733362067136071090511135572583071692806754478885966706106158374361154650979158955048536278941474780521679949300689629038620969821390562469882157391028997697970108206167824650793367806679020580615482555080366126725570108404770806421296362377750532219617409632552463613575609000670411437291558964829813020839327936713421220904332232771753060177734853355463161462966619933597233369142420010464280348836517706709711889940498422309406085537422055343461290240471737242022658733550780757601597661566122419502784332514742401149019526642153549985465761555344719762966744406059488517794642326886479716171777130822398428065207737645299738841825048682929831357419867356765521832210694769548238564167824674258144595094531768929061993574173710924348623308998281974407256063404798423541695149074625777647369424466186545173225077971839550896336675891081143492522400216623761849444935174521887760383927934756005062592995087000670150092985697985652319606789264099167940932410285476382568759329630180949624236554010829011091795396851450188152985127111888065457702091226738760139696093636619342925759085010847219232130171708209433754739470513124564086235245108589884262198302549673950953872510205435142141084297021485335287354232875159464714655878391580552911137010628223032113124477255800758388944722050748722792570654952320630991077157014799587439013551722380066088913519143474052877072552407176529627531170803378100571301783598581433653902578480388625061978385151888074921636500306188751750328639248742335970099657211372660579467011714536070448378226186375765765414371668804074684837907420579215360717749705818175966066773865119583074577545462692645232506581265498381259513548347480085660565119675132878268243312974094231993839907530175051946526799756780891141841324661614228859846313313679087974320637272357649438488248075000634240363558769471559184773113592497389538028739339539824444409777944937400624626767503776746528079095510161979904412215611501267738313402833360281769681446387373917513353572345950746141758283798625119118882658183982789108888906406431543901920584616909624533276890893723418279768059860084105432397932359569469129361502542613835251004833210527630910831680650222571948873967448082097431007943701714155008694941999178197854571918555801704754984587993221970196233262853926162827376753375311696592575658043773409063145118204352801204483605282007482832638781513662100841327447660968189433862528809993894266102190754018235682065075266654498582586922492167923546588447775240278698450659936677217661539249901382197652817082899984825932782632777318694651199019158172382015622764533568059015248385486424808921563712593349233815505405783474363350647910339767830680815141322020730397057676680689382955293803842775361365849435827242382983366987431042495271001705267495696173076946746510275766626588549795926575954238912792463265839581980986212385767716291196588275670733491390070874179688088095259987492863547680065755010791780285122997106998674835688801271654135342609618398239029480288256551813635588375324051825067754001112069656559683236396106549240132578004404685023011177544684659143576402093955796777978067043152835586283044147944778567971316011084801905998194003122304503622151318017874495090842713047060720949943595449284520223265416338728168621962387195208449822494500889510845983834619749068268218020074145947821571005871316773635061955288548632094578695262438987656955946196619401445876519244107410594824137086245726910443334412652762011699318034661083153289362374844219709535341678273493978905264151387316986764187364962315317233562768024869832972106155827917825634406614356333349462552837212688125129143030915094372735020929468377527464025403494159792931869157928363927997079524281824945136010087809760470101737830056688588347602775036158821483047798061214115982495007173246563621149716532274363516253023474386527566200390725865923842598621855688475778675940710797641810206371970733396030323389017482042108211238282168110063299914712653642077559149289722553975268246962988800558499469227230403072696301591470132526811253359532691103425175592463907724106516620758673723296593888145975401083311758625707891380545160552948381874135711323666286299523836743892261888271948737612355360499325603382062328374642832280368140097325567207199115887747240045217108203105050507712081033483389990333183361747114992389857255472906060815467575989192462730048231104809804428100486922874149169177418908537119857716662670656181990155102909575477827174671888012942192602267602953314015171255640584377489193922971901013647945070996218025700692489415878951209204838535555106427786702404084759024253765590531788211344136492948029249219597361548439648301694527414982878010793894666192273059494436057660265326313733691329685991550816007355104852511971557417396901272273680258627107835894027530265090389292596580804421771631436090859216895354617604961983523375660631795938830874615596820417441821431020314972940768091477327395501326640564997387698518059899070416398757249545596862768378668051458136006186245530942609649987311291190666066623215116969955407173055751137978991438813334783847884561522780412915062287537654034792643755525781825494896691210402419881742564732920648647675570533327029319254011956966723479904593997286480921071637499876588152314315338516995733855057553472939338899614482565696831910619487292298858177363368508780186756336729979102949798978912396713608524540238350694229902490918169052310838538763443083454153451832551195450418801000587641057195874869462456998546960969453142426065469228718678973940020827630137424257594103511370574539269795820577144868754371217462532965128014039180184836006615485156052668816302366121491022571920489536793188121565268201455296385769759106445740749108613273871251344688269900714988974643859512646145937001607991883559104950347542500372116034073230834098514401162736935385078647935175861263072439788955269774679456792953880560060247444611073848314224856807572396375488902893025357298843559994157814844442621275021295204494893613828350606708094467758237117372545140135070767311579434659803953422411150176602150808507585772264769511775973981161507469431844681604348751611954495688058578612014244604324360730243038083025270902329073300472098991157413865138362897643855329599569558703464683238116541522944072622970233761130750035262452971639229205505177957127946090507785776632669683099379546664186235831663531640638315313612425114031820094286681528419242508573583800134105132816078031979454050611588676600164489602522473852522439621307384191934464420061952183522571827392919912404634481242417430391275819848983016434905732184139321265495032249385976581724647894958337026070113712524521171835478636659671901103311742096222270161413624032522013189736003668214442684102215073355788111583517418719465582787584226341424984218969016262232888258444003056763481551793189132963520752317337936084004725682375045583955161141570450792833908802943866977546336386911480426591350868554116955527786323857481263800754861718936000949817489841598255670069976765879812236201168332057499359263691124942015137100621733606165546526681872955420011995904779488548493201334106813161957115385593157849379007790514015164128550006423068200316805009603534434981670853770681825759434059221741689183486311108018715668519943984032901913529444636584429346621636613615446284485704277279976697578380090955789683863448209191997867270820602566204239944077953038630982774126728349379175455952865577292884137388375836725431517194355129503996224355779396562215820242077466994037658585451531010232276827388579630515800484820850684015311508564955899150215265530942117344387193892688308238838806146840756807677107758616303234657149019678974739505477077565517430611619736641430444693671263451509425162132540139293359892186062454728279622572318678281858366513406217340270485128489011808243434517908658688321801016887074844978733418191762389956225525089750407867903558801470802133848499274772921803155796078819339471150220512213928895590484520910209633272675321453992222400835506253393155131083654945168518580222567929406891040682925861265052638338219523703387235664955623825536014942573219271494737600634335408393799493402492628090237064963883672876423638421495933635536587888127332617729937900094270968553735908740722980596103327987157538249527554733158349841378587649664612336248056152703502174300295823152167869856309104746592187163655176285589633903975429268837196546442993874641552828369592850811609306174872740798759095640494467781952216602087817312489049304762907913851859122019546189655064355903451832374389842880105241698160673005023277548282843035142671884268299970465631774944678469772777786779773775425348878877538120727075729144364145164003841493865439213695790382840953748707682701646038159686345976831764116616855509046154521913320349429027342551582703234469283384115046279873031382677936404338161204783022533310886339033099569790978714487766900427057231703373881897053486034546142828771435946443394130734477418777257570287712385727534750511378510005489729595593389332275556626316626132886568332142269780362557696147910124549152239760218680981051951053303678854318824022069232339422260911921555799790665903895638450167039655776131034771474655837945859561806752865323260047258737264583045625359783048940979406127785894564115975880310638040183514067936257225121830276904038643942873419770191809551124034594011200458976578882974435547579536930232088580999293298035634591034080775427702740186105678098267736413342013680373081391791382405037243948688840880299671565677227211341787081687708027498855142611608054710267484123220517656525327414253931032628448640597861639404103959776497893014585657087538397094179055546859932256483708224422674678970774090644688671016693183594952705193442681425368271373581204509770529810497270705351495981402599768941057221008547155030929160763799240807220141820325838716090199614567589399842316322590495721302293412282491360081475114984033502292492157031111858973989109921713006056297470397283235559213201847002542221510255866009970534167500413796512535498221372160912041736701716863994774548363941402192256669710760891035997635684955571924274632765741955069968288545276783193769562773084907964446413446111297486593555472408736737660220151806186773819573180728193061121995852082775716880589630449783125981963551770036065204286869569380643134760450119152585318812226451878079880021790569722031696398081304320205629089347604949728825562871212498333404831511618457906870903431169413088215276773769418737908885459631749903735373400323997745435911942490440119402941077447648482599052667662145749507029927937787455738993109021510353872189382893529917361977779076794945194820126869037328735053150417513828668761105383456058093947497657324771371931645741758734760658886878032419835790185769007966474648711153893784619768113208408295682401564275954509076125019913250755056115572556694656594302678185143527128782960445294158727594475985663611005292887587116771516482825592730844183648374339952194806463933888659030518928876255093201780326520434672813239757581398213347930127211392233440596387247474557129899225164076941461978187304182302388942685015443176956449864960840149374800957171698642445986260253316439492218894863407600860077179982746298889288627442473934415224141526017812900368288989218656542061415060143340944771734644434580613456466809494193756045202677907897905577563071138372826922335417483706826464813773967467411630218270185413296563561817225870100561426472038627945097665262085037336054811016841512996206548031112162640249868120931520159176886697941585330752415339879874674623876080408196068395082087826496321730990759606988970961644144245731029838220400398440036949934938589420387946055342890039181477846864568917457813948149245959739162015381193842700718101110805610862620512043147766311971384204461347423027343309336110772221795438430243812037235007051459781529967452284296780872082347268080943445832760962895231471535910508351991486302720955189993073365875106737942896662010545212916686250648940726965130916292976984854768828381293061831712814412850296138728081572320464851343228330690715418791934265348082900097669906181773129424156561696484939298583078314290198947672486461055217807926039440895511466395590570720092506755297679365014143641032799753580618673682299185362169662898215386073692949406790675632476935226610576175980204753694451754741378830841390198305405034111667238734747464114392885830805009467898802643762448430429293651110023352580778320155913626148175947724387646321883572160418554795664812657528546021037878702008263560781921864055154033068089479149280142856304976232526298299759164789219203367152931755974422892734526910159359462007525484214879495696387754135239344887496817834980640816979901047916875745804023315274618162922159697828321024452855163607527644959240073605932000861698100696355389355676505767922662175236901877137632682020993804419028638722918948388086247998768584096103650684270146208290481131799865046646724023306914099670099234088419069299650760796663130846369762652445069239531798635578791495912678451520095575837754959707562524693958640149282626652788968343116603074114928728095635469140393999626586395076265084871351733552931820260344302809352488013815541416760775647809467882321742214182741918195290929815673386923000719486564405016124471386265432501151305911981344267407619974563488660031741262253591094649500278717588404372289462947134730586222649572325523890826930601519152417005624151816391978877082001182930385227097974494338680711599247819426250803878113727921249092976253928326271025857477564354492879227802844165333621896164843428541519783618050953767690181960184972437710449666982384015529290752804458508726335156327159979206896476283453424088633512944858932208518117473430638088535371163651200946708742666535753806681435587824379671661190842845940986646502482853434657467688579790436636592700145018631606865960009900309332244653387910536267856729795433062034452064504703395405692130298110080511773022470032548178241405976619140089102611919416656096472148828986198481908648820014930264764444863781055359234202004041673086402790737275104424079082993286224385741641395029958684240854478376227792813519596242293194137965155099995617428976819544964739058923321519796505032134994386659775410428620578445703229891751651278791116522119834710634687813480538987165688970987364701890519301817112785943473708680063553163847500767183091857365665956663141825773250138022789991761408980305018193243143973912554357542018014269501151616873190531394325349240750245636216436621274505326008847153925477244019210725985183744302110939797005294321968168308633683910277703586434182319401534150793329991529766222981500407800899209809107963229866754359703210007144000819593012523495248345520677314740816776203887310258812210439860536488699512776420946843256070689051787149875805064788839101883909634089967089542796888810997275389094447460125919983498668172509945308189666537322920003115922893620922375918220948918421933586920626481940525453312812313659853407516124692319589660375509018854076908693222739721564032763847437135865301609857939805253338142892222719706107334517344955580871810616530943105332791245928855311043053267311713565961440136228930822932767316872742645775820730999798560076990538024197542284426204699299178554708485710766913553858143485076794938125364395415085072945792589959937571136511318298720217823611943967500545771425138044371278359110431935814656864088713133418457594266803639803837647630553296740547294389515473174976768036515192969172859532586399847447882294131284667526639214188048353825260513559745604408552390963190927176735518740947318409716494836741256467720996334036175757269052135795691625345842194301994777989669541664734517339815162426711126853149194174835392511673344212930367964557290462071452190129493318477308770967441865464366999062576124525629439878124308770690504775545363505602415233069443071480586628117931743753455449198968502587894459185462719915152026680540003267589913215597724143216725330021976384456991072047535923600330519131630419080118898912874609949845368693851498073076333256805508792621112529619887930937988414186704419636975585618599062484246020054354311275651530897678583740091516968842166015358734546828116837007374444805591732465368845610638447107972207644069392535371701668516285590431666271445486057177415968856727413821957863541046479011270573689045759357106112966438067268097288969382084908082019132699653814476905576832407153908796211742639592984092563507802271008721233839239763073174245695937076467508161783452570404513822952445793294051980649758097010413804229142818787107814473628154182702840234668389426613079248496348613794705147255142441787965931071877469361416659945771178215894410744772032096006668892665153284695145154431114899513675077093203339721865712343818977450828514344074972078619475111658288459567968346368115865168232148449605444774327789895657916830678783630864192422377482357596756940805152971022336833819065362586385522557347628291112342392009328143806052636449490869916487845706197460618684854111317555485111995574300434913160734320917869293038353116666671913735419286731324512285782545076289609890417296578210132551139626086286947015241485268932725418881521224023364946260390275162059815202338518045991892124083288458486835029372332847976412219155141659696174186640918012580786832277302873151009062027362121089393299800168476213567834892050830155900064022156403320742279639200408106088539994978310054108409287183677658621720636894106518417797891077327042267025802529084359504346209243792659040606304842286174358191170025024496929209227472262992358032619139142996780045840919145939796800462453479540372532938567956818075823185317660070210091926546189779628056564429133555035497770638491360615718235359025855293600703131920075180350241954537002147677930015458525589676324941732143703299241463219898047325451475749996266392540433602915998255668680710977580566721528435632977231646300789786596646107167786582498488489745205962816922894280694564419231722816611724412689933704339796410244730012180050120228318359694567617418992009160705747870063041575679876172702945147982971295886440791873843793134290899115698764545247065304699798051947355860216744715131109343646471257751278307767920266302965181916257232039872019345168050202223413162694515073671041957922183920002391799978060052018511610695927087616533371680186059101492728401631425687343884324182012471492346288206267332960175381009130612752520925475793066742792762652821327330407760448822654534602969193666367697818965098986972115926643575031314815991762935678632030973972070179246182656431879145355168685354991791361603336042499856128276057001693236901990126830414739231897237775286646258681564429814738269180568164444591113429567848456270670776611979583368528823577307899109614626868982419203673034258970928464823834092573306336786400132173577546227342457257251059191938200930120640988385244691223798935905420875534794514593827808757988689455092363527759867843938129533202524160215183809449201315719229777739664869023755774907310508249355361925133857845375650507991863397702106122778770599675482170699950583794396689986958897034828649497456249695351708798837886590234724420495118372901139155670777400121292385997140715843062388666559024670114643751554434686000621995017246465431714554153492267026184668996277824003661655335280869747733360361189694693176513292215772007041203817591638952680842584941648623436695549560387002853771313966255163666434129229400498080900552260140552757331301132306788916512941422824460213386060812548301631021495632239766248282628714267757153353030496500449661076635993165823935626503488342352338438502120190257958378311529444230228230365734128668517465899276290300287173176774660987668429611125394875945486070217298870346756287945349410539772057254452488923264639038855534541483024211584148382097041665674308004308275865797812452245956907286584305643098281617737315045748326779621948263813556565624610020965721927544442032118545068689732520860665261544915409013043597887096064255847247463038231939577204795286932180909291599151484074614760288968952529127056347146963397305643714126574170687685200702566341727851231576855075910425067475396198035277536178914025500375078132000939647478360958146390497643327781424177462357696579584876336045132062058298129687819295123391780325168671673335208003422716230348555792233822066438653419536082018326763624264490711317231570588378479951766763864691349179147318394575483549740402402628511525451326943049549001018682143701250263608725043993883676256559468886367156821738882754412265861798803090992683542667931714924161098359500582790419374486482881084895451161393572018078215724582181766596377892854992180439635704256243305627514923785344664437697310674885393220530860275164737968907940068825578612169238101389567895574286345409923566998471209216943942164085732651643660057615897648580618532471699573015308319643300745369010343072852575214911028133748546487830019163208569821096084939292050191210867715101246606072192764769309728486523303318357348715708710131102873542389586771125596213384491571309332945568236326705735154267078710118764198218623870532730585036847166615639161083447203504428142981787944779095134273890353100009801617289375956505516882387755858010939886390145864221535487999215145424188915381941300969494486756343003214453266637132735772558886946759623400996723148385397077842739610857017922801810767985600769343849912077200108660777796260142798438184614777004385581053628813135798943571282808805012127346006939384781025817754083152306202478923688008190820046274043764875410133488123858012072608030232514673852581975465599527397405134782020914055008410874468907274491248246565219255065206689549026425859780847651068826702922889515840902021187398269981855008850918827565280424101061531161805142514612564642945979431442279531350820335224947931456007616140358907257487929267702603830535209889062516726951882661402529371050961952611526126710050058465771034406255042821181717993558302591930710502665849806424938322399090068493833097360066981787327531201163384095281525542816257831328228284875294180213766314264512448425523944078679461934797042363818716231004862042442009161062470379044601339911286208397348513461414464443558164414528678933544228376961890156616489002966294949490291631809292895399871339409183419433447771041185764532023959718070702859133583779894334789924713378973209594683380145731277297016465534484703897382470646116303582982460424241393482960283819893847851373469330226274381564660815445608395996431690778494701250706918882994514176583174367029378176789423599281974527475420342996143805173740838260866763342950432970196760738319823936866290928557083990720805153974524786824193468220014533623236152033528514303148388033871757318987758863547779042095540377819420306511611717373415032759429646762189592099069626049969370362151225641495691529680958489962380067831732625412927013908883411639616163719960580029110329481483972065990056324908115053511356613846364989825948217339448078921606750445910295291135877698945998168296782812436437300395540740687391008594971204477041325465798253512356659746781769674151021916784731370816919926239082673166820499126687047683485626815305536316185831429250103721510142059160967353627902482335529959620933911811603938890489437119500701486903133786867775598244077781136645654040323935512645384156179675832949892633279739621799857498078528581010345303416618988319002914338996176821745911385290975332140116752292998510301852803396661068483935993994653947885442102231086675104797855760255383541157092257787920088242679749339821714163942564163187810872717690218482706469626976000874213717344081631819001697076827344529847663593494035841428789027649040669129252295998539097018570557211870579916040820961417705627349884682767406799580738139975396808175106673571936681033051996158531719347777253688009093125087223335510534865941510831806509692956642927573837273934295410434287258510524932292967871489932753500967283170202482423896826639361527512635315444099144199709872200657655850813419716666127227660487428008124933145099035060111359933762974221168408803735586800287079451733747872398161056177684908153605664960070701409101727173243993807635906120551330320235871434268082338830122160604002605766923504512665005976771841623568225480250596532857420023380549605135815202709237310398373733134840806775034208856566725137729639075026074569694793379928798662915208309880188667823302237985722722955985299204530447503839793953555257420624063562989524247416469757405819453429502179961230983990750364330722281478686654989557702581470915371154081905992785264459061096521279509337455085003323622214130623336143416604119416216261531087160022465777016390286925987502997881013092429977708001930526343089811595386690662534163094909664664369061538384272741390742989171895717812554561498693706369876987180044767122930990982834533432835924568182639004894149613927356361972523380754284168716563959755932137269611452297610664238924660803697757254255820308779154624602688888923951687006215652267900705095060504714365783054868662901897881553279071320040436507138106297450255663756417598217428320518184158046675127260024945209619511984311725573577445940724556851555868490334404570596845876547084770583177532631543851165560286466862957765973714360440919343837771107559397363972906345847159492378307070965895816240905036924526569819858173504858105901728599601381228712460357569731269041853962784611986080593644020760193596904728820255535092862515725448736405879435136973899259613570921427555733661637450330077200675925827987092815999795327325814180980721548535264453980869862197362098516839759442511996518238116061969730380085535998911655326701193761584472150246175745568764768456794840645513925342715555912708223276965184541250735665176233394175306859078702607538547459393873834864194749491985849682569811249675006378991761514663892903694480883538237367106827922692819631201621309890973640873247231577834796108107675236269150636168213399457081935715558494784576282115310818913847898044822111046785144584936523509723592646741219577175634631049858952108169440221846506379765449580715806072155071790005921151425198660300304079157179078785441354922247712676949489471741426874281781972088982273323214478093746372691261706243617888012463213301637539947134961989308229777137363530903815186958415434683646211931701087282744748805074793193910117554698291141425559843864856596890775582096095347664620749125689488380294832267514961626342053889767099273947183735560674483982776148137223506166991499100030750280415733088551505411443532158354664782800982994348467718418689724119423895974098462906689780029687654926798717017203750619597693560820176975167698048876196559893015257912132869947429029036817238539003954040001446629997027445245944519238218872479120470061685340351997850879542009690511793179162293489548864325115768405123188194983429401365039726265613618000220519999053904792755921078525593412556944064143596080068212987445751787353091842305617178353287963854063159263148025234388812092798330890502287712458029911411153036310612939106447862766259413044746138111588573671518654809903620756442024277859156006408431961888159801964315592395065724010710915639355269832676861288600614262336312651256264158714845057275104829459915174371593548612115920280590472921068805346289241479734282812570679694944803910524694280646486843718773559452457192714646123164283147138425294040044390135366164953237300092816901666461478820349618667935728908289266927658593212863701611437548722846407149572627684135618203849531953968637492557129492895596892333247861127786260089527569490571451111072353328103301508049579325072070019342033827804984633998198251582567737120461823404225449781463943873516200321069532298468356130663146586701682814950260785373790069254378125865479665914816538438637380729984208826562080294537201193940934512242356676929595844770653683107076411882100253829368286707653124106364451476956112964258150876709561486066421572350114838761353572319021748002869391770112439552024863966937441278693646890941955130365937827848416251264369040076757301061948359386589764607745131330502983511960684483008234706185382676325961692791191975302833291742750663678637361176938342999019750773627141335985339840527979834198301910628621396705929906592586745839733206849893387898088221073536375971743170652951119729783563754106401198712347681868436222024363638486950017931649335002522257405470988198980873165795370399438521090271644887436955067895163953604742023660681088596914233873132267815469662835160060314950130189776853291236351525779957704463399056087254073751164867260272421234599303577385577171665288270250615909895791942264765285857358881662349977026908976113564661158411985795848357830580159386965586839903969925624216152176611525758041879783506578872240322451864841167199030768206582082724618786444530046452701818319854955861951631099491551876552865508173292593729869635834975380864046669310059219990138280714567621065935536313938255699147100432052551364446421243645578111007900752965916736294171407298280359862080417320948118552626142083988696284541197784597554121131617788811472830384884967929488135390879123186128241738589172253602666334833364943307654751263286416743583053204501938269998642501426637749559503388765557365314160683392421138700996433256880902974884419542445076391979870486502098610596493594000178707569180568965989817080711103251713101400822579595806569996873541765981753858650914927178558065432690099380872828260632574609917657925453935427295129921703253813603018325510921660727038722248876344161946205224851204472306623661499954262831339391601994646180899203393817450397645666519912428790514915715956849027629996713192191687906430575355201857953208970823055592699397738456241853265724751144842857222012159885337324609003963387573430186739321979305793033596934537780825927319481124986144570926609420950248772147476710598479294622840299356883107351099590962096569637454984602454883401262814459734524912799608134515598778002254645269426230515391871683344757640821444371380622203471941846213108182628295421343071876714702414379823263064652882967967774217006136399059364461815254517733745906948404639047535328807493720625048167595336394118631616783730842975027928800308135824579362883371223115012926769207119048315686622888462154001618068676396760174935666642909328513094014298106306330148353531607614615776605843614663545577965128858129978103396771698469990844972154609482173761676585522630655865581581215550995487921299413953186496702748463885460934154781318480752365647956474766649728856170406454932841051249721222822284896119095462759984209683694547222935040540172837987289134388363242207055835614309431764910942908234896808143931968485535829155381275877155935839739234857367485717501727209902943531269311983885268044503711280971568425027505098447654757706033564325779756653330079850875003524314748997715148203755520890422616276937487847111092206645948429103611524771448338747241187474568023657058021976510427298824119881506229555489533655681228147661232422718572575224331886730208473876673257418821477626280770513778255992165203770195729147325768055609966440364379084256697063606375342959048161908479944847652691967782131393818891923624870912212776445512743297596931508709318940498070214648603123790722959036176972074225181370262559107859022413703743451748621014357947246968165247233831263128000613986966374060349263449316797386302261675283661240519403084647607865385338486297197545936710254020312961073677773731715124909784836256153857942519773418147540384911841287728727275850548725160679859206587562757678859604439383557235204148052908347907651012423247474773312693150494262732558669658279703464311429259342126817394490631409445320097775056146894010594541411594244759769278256594534046766074973662273537098490683049285837995229585070429700445448777875670507366335447039626224064104656018584734180795470036644648737373072305063042908784776558525374613379423976436652028278292844098131277261432619773873446482343067687167289374865806677780756948504237849955417805983017700817701813807179645996480581235115431317323467337092628565715552684018800606416537528667851809389338766521376502982701396092829081384049100281939069848586413077150812448079431700445959864327600518801479072176581945131192055398016651963396368769437455969543683520046152201548532617195159449487210529643657718001878240145973905465839456142452525556376658331022884385639435916855165909999421513053579498917918043785044066306700175578294287553831391999970112810510518513692562750295074390155141730525205610308387947349422366498973913438933294009156182898058206083964606384690073154673968065843950224439573597249043496865092282600801967650405248194418957410068996245605095296502321719380323529208419639290004668619997730830052161039477036389552219079742331990966814491173701063878234825748632773086696666376623577917699182199959961241594583731575371553611273528101481977507625021233439621293435758181150061241677999503153772943266975840311071432589753465213751572767154088546729499920977423864213528721330694531128084746289073679383955533381064356712782291039214388076027073147623044797909945629404032496901355492920096467340335707914731311943837605951710524480523745665175559512836629859910044245797210226729426350219297897408744669765785170782047866964627015436668334105311831271857894212609696691741480627386434780343108267970940657095533565697122293514256749605535376942330476318399398739708610268414527460777090749625969478010034554795234178030523553830957945563914430483071308170386725016755569557432419902843777053741775182321595665410995737433201921788217291310430335721040140898472372091153317254440451369954070282258618707891595147265394202407973511086304199277188637134136244507361616579610881352535979321022646370165072889323233818401087044040914775290810531282151526641640503632242814031287434725046537441849851563195439111487993382025537209611710722448985652232790299704831649326837419996508444529258321158650573205371385330972296563718313604137243252904689829331893997299321441532825295381863931985164289765808688553203837519320481304921671443249433599766972502250309696038711217852540224368654732875559595415645029471007237415850098761544935241197765455672236876649241566800028697309308688106520253954963827569464363199478397078498990059402779541498878074151479909776862988600021658297143800042889542952002901665962236749031650611387151912434150319431445871715868224276160009669560626069919026913537929464342729059412100379575559631154772789757379390653748595986731518755253745192179295198948968030203546149031354316024673495903151059363383780003408857836124326331927490942703391391867050036406200135771669094574527108868377629445022586399930127755271442149712124530478673085633646383941116535409821770771510540692329511546272542004938132033019730653839365928511505478083509192061225897493408765632546673712725211451848327501469871913650326044264998963168380950564594311781362228727487582976935837047494537562201329867224227848776871509073943841303198058794099640280257009273287515859838562990647692102879092434461952135952008156653488131716096462697938760259733959306908857219262519118876571559018945132332591193402603050058081132341743500105843245573818715684555190759465279201220877856665092959637917282336077978243614257200480073075255865366832761423451947433682608194015075928470136573106614843077301471475296627166398714248314657727681890453342658353849654826517448008022875438192866813206284331195898981652139001337719079522085803196168753494866774416922380962269961509494578359135889473800469829856304861244128912462346311192193535857289277087538800366309323480977980093386457104132776590369750533525846037138095988704830962731726340483662850335501450027426319151089335543109154124705855502749350598093392416285877218606142273907895564627701816306024538756096512798005919218220978436552221698928760152780155845729316096776943763891460761887946341448292660687809324325593896738010160991443476685902742699171989316918585918099229127140969433780677655123676571634528951253801232378535228504942241835539639331923720370452003275386089674592770562450536011791935121613791530522478819605572360935884863876273493640208995465302043415645990488510926426739479058454845996344027444812509836677609351837943355162021059084604955882295270065955683279750808354377890414533362469029906113020434645689634777759167800088594262441886149530223056594471077486862318668586069474945634736071012691663972232386703741877038412968804548240046855499802640335939246686664420801017772309486447716267291052781234454739298538449206547457190434886716175411474712615021182480403533624299223989021438485245801078386104142515408067851732636105792566728774941904178526897709611086857492247047823956229440257907330524430593191591017733345062724331007031430604027676217975210197720856687490170944034080687661883107094799718593925113058176383164352603273661487847633593282922643172714380811780702820178591870160242339072428832340882143926659888903503799131101238595132737973599534609763088028500080359280641349255825925615370443933656237655584489916759492411112525330629596508296213099621740629208296500799659326777469754548877880451331703771409813320364844167129284742291299442099336687228504186383962882691600435436915130197715650433063700139853255760783207122674931555721332042013184977974949387071895991611521811054110509475691092702096787022833721741914140453266225690121110252087574335659846803292956937733018011307396038755567849444887994239929383075122208219243194592504692868380029940283974209632958985566263107221184413412814043655534071511222211384787175426571536443133351954158767547836137308491792690935648707453268527120325180407780619880660898982920191301993601389268253653824346536007736269673049915993206172372381477991069441024062572647020867647102020426681734880272034403013589533308405670146552663326410403383533349117500280589133580981136222238545697496302806705709804749928990639361071259253854837834158362826683236220570813336029781558156152389049474081959438991404938114943486669427710251960872655767816531586268186002838290081836987077987149267068933574255616960426316992939277450112284580769490453738629210185605140567959916451058542662139856984143445041727245380412636930244539415876984216319621298801658616735001514884942220995410813221517333924601230530570607028476450820361909839380105493676169787066282965823321230171118428865932318244948147041033739287503789887534269875832754954335099313430322013488668866717491926435238256024778228824773803205554048209718561185829584251894659333466247037226464926783199473665491900754596415095072423541527256901131915392700159017735485699554418438796410456818875934400787530505927458888734793381995538374441040103150865178471232725724048646861307499220979532387883540455020526835993573366797820520505183551281526937625494696101040610302141174133441240978506357253655178965637958073793047310723777344808184013150012546448063617572687168564614113926336419774895956331659505184495833002824200850909783459008167673131720458777064064934459857797442844564336720152009367529482702027297940965285434415851130309259342788605792132767219216683152446804195840905058413673299994833381695809799398110631784757766395481972422492435766143028134592385450751984724519048337075011603111870060928943374635074426587763093086070762642529489796532992152138485100932878774958884885115428491455807057723607122462234624876473880359988802514915188454400794659550382876606240871666497039524249565169503441599090898297453881029926211096117269505000772583238224502479507377212112848285648669844683253720376329265680857220514819721845263657142512773735637098357709471288814269224631054684515444652783782333275549759536943236141749788704454931639852883436159090279081972261319077653591099433054290814513979511823791649326348162488638566094875941702396548883248820052859791832145470062150918215732289699083294288597853853846912699713008805400570284114098789740905167068218595653344567556041152918238750752789894403668033546465062455349818620713590081409069296291442579753651942839505230065563288329692102561185681981853404881694576134066630588803853200911804131746183512579958004079607148291566409339309172493673565891809678264182856454352163482777837963526175457397117415581983190867441888594771702826699787228955097310048574723377764769467582655304968595481253013661881934342396668410618174543045964639611509965289299702286143712134815393927214616983838038718862322829774338624902848647651931599325449133669673284868400513097040743158517195884943579063755247575361720882425780919666155731600428385926895402273433836203852179819607370476353491327942091117683970103886740110426802689952699782470088210445349342845685662961133085955185330445427754009004822474635045519777687645459077229089135076849148521780518119823725772171415413410836068194625866526787768085681492777520187085546415179063065716342460359343754536381773986825675542682545769411341273544741632675511143909314605877565161957739544830189614710867607519525153722943461191132330886424790922796205357395416295926685816568736617765325261488966888995969292955824789267400439227739807505378109783027905102029342387421703529196038310857629791289024062812028640195601726595008554976840230610699723683771116620566894983515842601079426414354530834550771699300592189686619721321909261677447723954045784267061439133290884481050692677943946517257574626652132237097728686910784063230012917410611771884098156170324846581169725882271212743082718712886186712383156301249996541521488469139934898250817475676755728783024170208113144040002567471372083605444919410139218195070769315677483198399990834898590352273476199848372811968845312298092713679944178119191778332506882955451259474899160164420860948479363605458409750047210664845856870862540065423007055757466956492237252944350116470152503140253832989347700147522603428765713763549001960578120348581091067245241654258008955027122791351691801680871097789407914505373585154840861646727328066237446121809449287648501431746978582187604126222505648873646762496125579493381120429983622903064194865859426608851720225780067328709205204702497775250286008720890268301877569198652457468225159817114814888033666058715780064879560448120531040589645093537211069658673355797377897981819957791787080611987063446136526232289457398393724439598038091900716851857498408396211382282668046558951254426782711931101218024439161068270984886862755343375762116292085460768016637111348591899156467253294231645395460207840225138591184510676572105476109595845177778285849030270552646625032946173884831430078093863259970150747052392081077122018842390912945157290974837035530536593103994734994097039007029009575608162519468095574251600294279593903043018378744401032478600254676964134346173643908295984927559701356359745182592553326191645588082208250925107065452814836334160718990077875443887014256523499386021424145082784758610063518052623632532947706389287056017847599038125066648564612803798506180557736767435850600851325006650799449896349655001681672712138040553776783217912393877579069786484493837234149391953075243677087099465487102276647060770729381774406178976069893410447429406090870385877127862321457684349992551834086603727819869857971873942664156492170625352669659700621403363053848985325151259615218218605400251133921836118303369662192041280267918846990459193309114318217941198886788067979857055917699962838466062175564351812038086723858775072232509199017529965453913548417245885462828720607743030695902159484148528410843306627838678427092286693731635575856892963795594207267518200965433698805138617461236569442380986451156666409690698449198191845719993332307971572199119439202044896279649360970530438947963369060422427003233770145920360162644922028568635637148455890876585328519736852159320179353371745005064040268512866629369681393071155206532246208353512806635706637983533876508012737698436979794738103079792526728513824258438077315518410570731121150720194886655707359089173367822141885555564923808807853081657349111840650001448396903899276021142004987351014137447665898869320598961974753557981593876452212380369646306972413981471566168555881122811985323954008326122398299536883736493454879291530354884389311034683171557096988860427103976333432670238711933606038339020281955632366930168573154070154321868627355113504236573397472784624449283180313052274321888038278081487580097550575933013104583420021376729860200518788082999888152930101210111723664717321344201970304248718436457422038991101589899463247856538359117612555452486768860582160457343691698484303756951407351494332687097916830104126612639515525776766187531475539986500774664600746326889622297410982663721451159812016657969199535412200941259262218072170712475988447255582851247036176437622896204151668906851072855480977231847107223750191471140385811148300072883649854503408363973900076233700179070327112852981768587712893652540000380180926264146196530929379980473441006845109412473804289351856199320095107812656027536069357169946286924059965918767813041282592901860823183817408684686342268271715803299100369260613688539004093150592867901551202046244296861962834201686491262718975132655264905901316574159287177898323171482294666421755172280951416538458176844396842917840628619476417549614669174817817075125173034076167000679488326956760956868536642621627939490643817974748690217717176100899881199768532867045085550420353940096976495376284262714631578934648464613981872327174676731093965657240246116721033926838909245076247786725452715355596544816142794967771688147435551403837204123730710872571747153998598832490086041361427492244439109267605739716239272350242602797847591281751104189547777076885132207740433840997349103327451887700021132540137038057908985209605806934327433925624028484641744485083377135224410859902729006377514302899416903475451375310481007019714647373904756003594298747006008292283802269552593942584757077404165217409686311493640149549928444925375881650710661580580682743954164645095629478345853035814667075520067338731969795431413308577357334621074879723341588945716264224644419522328283578559402506703236877205884964362687951635355535242214081876769639157025021959830444673099759996821223098298291371875200300777471456441179997823708258876310652165206726832925197717766159699449915801521195037544588101090604013630082673469140045165251432842220103526727545207515150041173609734792692134052205645079259330137765804043555272433079619264242419706471660975034446860952253341487902247866546607851412675292313293731040224477295648620847479854348589339193883563646709000757535257689723239353812666260613337918341587373050125816130340866482114425065627292965280974181202954057810024671586317390996330628691796233436133262719908132303097836966146025393613713387677540628225356954342367821463190358360506576439118620363744780496759106386939315604429303963355507910058733014524629163185556166758248411059516693255036743783464118570248249456432260797098548674818598340146575057888067852198683877198353967350216870814081964110749163814743513569982424046506243890196487690336332232380768867050088111341240347972861051588364456149938461727486216368696726921718672963355358547630776127327133176571874219560547796861351044457343647655709115989971755935751535000377552221567605928071741704832188206630661005238836684303927302243078366941868068370721537149303646933186750125439917121227650043604283222400120397998454627835667254365231366110375001024866604072768082349757128575331332430259818841061695128260367571326437475411987770124751313754087692511403224348605120233755599238690993496101288170637638382017912720339039843040540426032525776384886032059880687829020113437479346402228247399108251336635481753264951008137702654148799840964860076917456171206827821860153939573887908703676374063401664774553023827184668765374643982769286398864754910617322542758812764555665379940051964692014522994704835301341806171093158258044105267827679201131974187213143354837417190048781302738572304891296384260131390916304884331715998613393650440719192168379896393020914321653192126715274173264648468197243454404615578436875629641021583198956346365639664596110887750886240857571284918641581060022934056404830721496380829027323040970267833832685731207060175592676191901287710710077326814876587715778717092435248833185599722205651586986814796321327490112177312370841459642998397572802234912183215491809813877612325682306542477686973908099435892032727297825989248054050930907633225534046286081160908868954708749799534996703380507737408045918310322714803321373769009848216954442085402880808920138403924412701583540316552789370153506864890774790585575076796674475067595033284353777898896148014976882358587851100604857284326046186859780538908643738261732966077809626171507868143697913593298819454267150464304268932332335758142488159947221314081962276787194596991192939669468664604043603402040731322038912816590966488511701233358686057678006765094064475870200884806895921227195737616015527411611786161217253339351645799772235630244127132881173252150025414999790122657355498775131892068950897687454926251953476543176777055826168883209115856611389490378578009550730707713468631899364731752912480678292220501652699058689206122764745197132270998668793302071141997177185901007436363377204753674119018553864384233964454171390856081906919119692141414640361145389555157697592633279221049170291829869750336910651487376770322151432459990149184631998708351087699423945139402072511905859704349122231553072521059426164141011676894843156499072892544201668533259920765293378488767473308344891429048837966588995306504216053514156714870884108695200396086800241274762256746663310551760551591841529003628043910328107819532048282523248171201621735578010273658588237586188679080142258046883064957077847558415704765787430037298303460311425413669230329689415248905878055667474090980055666695137659748080348105370199784322476521293481247822460194441116856804619279121983589545189744598018167389360503258943429804717699014704364352750572959350956864401695840668560475777196693062802180594114023240043205887516325001682540660026374414244013568101752907286383157289067422163168240105484640998528684194581352327170088588793062312290996639496568323350221444262522821326258014974579143144913950613896506262417339604703290459213320014648498488636529157567950835027815295864605345381563643349290839373743914154891746158247104267521319086942255772066328317263299127452975906803390316794938835809274425631281408593275339388124896313353167184131627289937385272853137053033434042129335606041049916336274327294034529023574195594344408862155525685017908559467507288225576974650099677810470282281593988810754505054007854846970810583346887015112169850032523368844595541294276063713163214572372122430969412319075296141310547376831231264759936550587663457689120400176255705780147154151104160396012504627436038588984414356729829306640744660077522665913806093460238499004414480746154463840197050023812450735322524506972915754379869960584817805488351215223985260812797536681848027824653527312827677915233827363901159054618685830286456928636158849207157923250127460796220451871435709384792034678834100070645508025279531088500016066227684698403545955515858899669999021622526935987712448918103728199638640179729670744012462270317763909289739705549312735056364678658145124698615188285773015131977153230571414641609280138085079874390867532745681030505330550454632045763967867885870181053698677015521887987264096992390627477035848258150375047369633716360774250920634623918984189366302166680219974637873563670902965562025419015596594158474240949145822201149314535295640790286599561204567088677081915324572204761205802335606690428859201431953984879885226658429298387897115411682823697443715932695518266878218097216937134841417025479940581054505113394969687882493272262589217527485881602108643763051178921529296344953004593303059267134498374650082934791853518614330762525186815602892095730312990215601349763281025289807386514727264960319585008886072422301729938596911260076495321536764319746775355120202741314162330225991777563860076947719512658557399354079581907161799243345075711766818362948805859941668218743200292967061430026229171451886411221275567988703520561244997779151801423549182517973161865653088825013836011820521691077437115951330418018172341794946602274246465580659038665045301367995862994006314388563536330064600842029582933738814601413727127499894821058890769694811281884385666916616712665650506492511381552790047342117256840943753435930271146137627447168314054818496983879464004725678962562159068112462545780048437735826055725452246951527622611342961118121438738339624053986943712413227499610002567574686374765534768306597606053238811153552568948128640702058426740453536822380804354780713705306199581135783508455745208693772992060247839413175323477386746564937894899294763948127494251464061693439479280641420895709811634400986454054736879658795482063703144735719506960610167842282091996950437520555047136689682804847712050737244072833149602729594580372143398820545958910547139780137354317716564613814702455377010994413996889556950036990784342935734967637063356694780012069393984309896270833479206645597137569963926498112321094985581683783466559470982190503117366878834501809305377156856471138899497800411283316549298817934147878084585714474793222329734020845837760045095030253365822559614410891750103167980625668033589240334763378429950787686441569506479093017101776767759829377005168404188885854292343665187324159168264271056102256448506608047208078835188206341635777709122382676143587657415990527292128281404765416136499710959974314656226965450577708604301210478170988621772279900909064468688668659549409033395716798718604690417644571208356463029923797575342309602178938896061134798912942832682177935885970251986559273873813293252735389479832594268004217579960672072414523649117711531518759461761558603941820557959054418220291778649773729564811242433492857892818934807849979799613828545651174819223556556784570287441725611574238388308014812352197718727876948622626507083084346603740359042740218027669333088360964262759555808174869382335375346700834058666051884969360793520597958511206946910099940990924934530720274761609334365937386620454005365959300544290709492043967090171463131834390087894063245588047662724926739455291431627511806700562171332407832803363102627730951582413438949089621654550269167178176759685114694499634150993020883031082515427701035242888045920664768993873070743726327934356743050566240063970549716791244339687935828639656774034590328475567255159089301084961736020072509421521486579455662912864842896411752706400456797380596813971298695600328992226339953076348223275749639925916132455575646266506143063076536056317792657267931153963654772152107596086767482558850515785627757844065115399609109609086114554924209553047903571214900871670995462387735842135004361472365008745190697361777346609916330859933796039001218680478725234872159736402997363582277987451438021541833122725970825787042161752228966861350397974610194375397203669799295671968823038346004467518808438243959006827620878186017600622182451374121172225023991662869164432772161210900452043603821639553510176738978837036349643497051429253217769522415503598197622369987807096801046070892744223239947402191083604652354607113828721825826858068657688407708130145479350283463331148554622283890091230856893357844798363249831119407000714020976502591490361322880921331293785712921440764398507065590456060673990215642179408642105370637536441593753935609488189912638645684369245755045529928551734773270243068138591313286941673187701472520812477888333239863290409420872319911185219862451304697288549048362688721128546695334991823976846117072014184247867612967547180516478578967674942580502487785838582388794019022340604902864622892642798804249149897179097476394318984095489785604571826543658586485972557534060262167987056094845171001424111622387134980360662251982762153644997349195559911472062713681243820313183356984270633315515793351753315680549839125025914438486716924097278260454618463835766714800251150552189728885370960671880966160864548926552989771757947515067924047205494506438022142579821461919065505167887140430041366496841176165610790193844165475641188920291182079563650112026396052931097234576874756246853050886539733180880132156590497843787601934911731724292858069643058039680807740696248493849487145948352202541167247758053310928667326556859751086991330210561156839253809531168942509717848857211510793918588584865039341358674999015180036937571196553837248180200042707198443584954763396907585770682924849758709645482956257967814481724851302125876193038656439859833954744054510197474251232670365556584849420978339146157684214269677161908629007125289488628101203853686444101584919889910360032873233564519764989648283988015652064426208340591356973223443338512042703148833772942689277180224066573173005528057160590540618714316252275350622954856918682981376683397066252448230359728924481551088417053329238551530990054497943059028202144684796730923838146472359522513636179268041597193083068344699476568948715625149079146266087891375556789304669520631384582389656336246200674257556454283385274260636489594793318316123668341409470313106838632779391544179295971591428216725706690744642481011165731714375358951158565454143830290352782856038776768312188613480888885222160288713340785282946786700690355976946061970793198113678537128679942174453133875572586968911711965390130870711489233899270269376890510804518920843578158879016843753145963326792031881607093535827215305697642446369875021217783348195029178114563277878318179484037183699453627213889655109026992525414568436119734557683973234870574171331172994452154994384076830435298871264856658820829912065072170697823478708449221390001953784904507125975606746544843074483489142619355307777770088988523115489185474294870343299324349176965288784583953820515428797868559436382894436757453992089670749299704394438805166633959433570911852542557025358748031858199470533074938317176563364896292018290683425458582098646023275718018742374685453013397618522683079687891987006749816558400170734560855264523701172425522532132389882898609195100884847448447662589195581057184364697597043052233713463875541091351581205576497625064104442120918390404863351083515406510469317388893045868495639189923905772130035854315680912893421356827795747897292489630541832789961352093906850686569115089131248123915128924675035853969441928764817745807334731995116235866915689284784658007690469346104917016533548058129015416985517630172342808570590875900201214774567111853682712151134337511576922465608978635652936677833114491718779254921676431493503276851376106658759431481795959284048866944751258913726816580043705400509910712393002895639840745808204644459550124829969384683865718157513628412101340054764328783342524744885897332665453087352706627356611641049715876503287306410738013509751085049527368057139897002647261005197801843243125116801458568373192436684364572329031197493353533547634625008221488058497833641225875639877414043068826551908315098657972839222353950264919085137870215134022548961359503947574296828125399196058319340621395169125511434988890725088502684522190843986277583151596645414717053516021537509532075213174666686691933223103229361906754520492483524253032812903794949326702603789543188424543662880774774796417766365571704963673935882972831192726498271866096689967617385941146935197141364628383039816240932910205506846824307928231724138646389278498984679866644789719473524237707109452531102350638265822732131995280546171829610122102978357315035076151320793417466135032261318862089256974074857989192457926864108541210155643532524660089589013438340687353771624502500506209710096825072772048443498221190181013849454195435321203301391038439489051322279492575786252846472425358244589520741726454537097117852257411150050358512026122285619264851896172751596381651049566852271231301060608090972247608357529042072741733672567931984698971087297544140316927055447281374764516068088605602841095661008043263985523548902304516584459253957055879196166248644197086082774453977941685216326080067129607442113710835271148411143556108142177365053876373056800561456900429167993560166573142514609505470178703283793940337198053234572632602005409244355743381405170971321837685068264653231169325468889038535651231478203464867791101760545517634605669885529529637523746749865810089064538639621740108877867888677000236043447239858012002579808815198468858698819168463606278115342355588085062360110543837326407850274927269894924245740440584456759600202530003238126291374332269165865717203918280052357542578499815970721267760842046649515550695140297951484151107320880009831516568783985666490630687804314661733458170151149976696545642408345004099262907198291185881868894941132352216168685071314550659035891212840663861089865685103434495308817787435831267073845299845493953074307348584149166455661848418087937648967528468309947891582056232296756535813252247157782301227004304122939433845874728127903955127188559065756444305180411614797170263244001350817968572662103749382202708197883688050566742879854980359469326703144196608686215111407906307927915941337337712095240174676975781842412080539490323564152290356107856588128449600971656510916019613760331529401936716706815067790543623938459907891855660603265034244694056217851357527263408049333199426976685137995143785805358037128089150856455739884726091465075068631910655839780173334044493242341312538201578652386637996771691413177126601651402706633803669164403558294704110477645954411892679832225985395815572777932767116876781708320191479577163412246487257726447605403350221164747644758831625367749206932881519492688107359501059181746369395880295679693073338504711519876906500583867449951305975178963870992643565361656824912326072491079821684429496307007851047809216190624281468805781245676575300725067266602759869102917937998773915639656073683501427669284875561933552710153042014707616506032890287471655260750916533290884500282626313869730192347228402212861049899715054912106021141888562570174203354897210624749392312170921674116655874462804299329852137646831520913777597404732110475868108227629998096032612100840494854204897030173913914150141140157505509932018395808922814249179975964992626095641908812811478993894415670266053132313025597530547881956844961334162771601399963530877512374351610777983965502619115785863427130363301269844777469480005304072423820327340004330239216217998254048523137853496775492802815985091552733930175656611586512977791241744219104918985737985803226881875891647016828771378240355773933077948320397685170968924777688874100620446512235387816380901614063785117377066917612421658495544201805262028945973428390044730443014871542142939157941487127770877716914172540426888207899806773687535814582787676960682153951549469792870373348660936727114859141568552268445299859380802903441844066839351853307188583730356740901869734974321891560400348199100194508950054617339540681107023339641882181910069095043373157140272941998835026948315565912927574097063400282017306612908833367222573000908025714544685552319639607212602726980899492273882567645337908519362835334688469472753473287561927656421136529409122738716524877527659436215113419781510859143088585062415803172279543292721460964159928841320386675989497059282653702204347659982416024434693893255835588852318215981874820124897240449330113910442857035790684977436051745906399874060818672758571734101641339708041327081709535333823720063414680429240204742353457917171739322360083401867684628813027007632381136621957915562041855932892576807492560895899199450340699345757539360743970092295279732890756971478294205881823595134659475540143120952414258628910883383599406489204003088983298222882018073552322451794169076494144477609853916893937957027699536871439152607383452659567447174815040489986253070725491583594469726665053653461519830984109283147627120748818680057378037268050907318046584711649117040435072934582816969617274721280172164000757975868209162347507033419934937294875037622778255561354862809367359343759674992551419491958493508762748750343403024340717860381088264104326187787101372437607434283449522083217263739595936900544723002349193436564561234354635037653104750764546925796956723714600140721879433370620802853585819014908119290963970104563805868432168391198148478683269620584307259361490181191650584141919345108647623367758095318517709513683613626685692571724032872734724563915559146324135544326759207951152312973954996726943361297393586567530561198682861451763019600135952863847370503548076404915897307982032353011483639731700947059699480677072614638926716647315742207702726766487438603473212420882108286929024128036328913205269366859613340636630907658275525738463077004006754600126397935128570974983075131821958947883596609237032799426878830611776624906525616345074537156830690653974632910337349783717119544232094927207432115288430503864416085107170741365701224928263557423781539852408682279010325930979055632923746007212970125994086239904494396511791955722520439752692498804227453737504764970734994856478341166660908650466113249720764947819292179046317500848685984742729514698170439296896552944035168191055236511607856140231282470674012710026865428473775728520412519862708728511460598785157373082101438432396555458944206314469591478623760599618521338682422995758352060993919364030036752739682090877514243028790051946613414581717713095166127055568823552146063598514740104832414178756165074158678341658203940372139324391119224876079626378720563634716550794954703358029151614793637602916702995578221658709645318772429474573825172003948639958909070393049551880088560023884401180147443083086761912102559599772508275955975942297575410077880967483042782122458908042364674526355332507538528653937369232771449079426428439690873744346952465968947707579598969068058081804673495334226911891426483960338416903310209480116143312388045437410153060138503780676577779342049633612162347108884882193520467430794568855194584568931226471739429187933122987539990625624274764343723883918935783583937538760230068577310045021809210564394973116130043551028751900609713528465023222846277392905495466392581273350512317737741991730233865940667765558116598516315551549300863055721655758856091594889283917811822217639247456312790290350224978286325804528480543763812227490964123573691019178570136268997573579900914737637266709894573398284214518341960495159712208054240251388972764690712887280543347908664298321507923828733464598047298326648645783977128805837396454846553105256808625727056256817455699601374227293016922523112205961988846462838143988523997865372134570867618400149407210777574016875590088089234533777466151974420173995214976807964363457745706323041186215567020733782080074017131213209641969377708421804724639091167860268193082744492368014387761153821313879837886025068297038650649373481381963556549992462169879827959287031258354057746163182657607153007573233256618827766388606227518110242289281729764506670833528189756514643824705582816633121218762632224592285714645350762085938454545715077738145435889649225596203914791664057044886006021360372917303407458992712776211655946125397901133978328308980566829347658255482533384792190003696781101007914134483710597786615641316140910018641471282502510811640045993265774509859576885554033572195324207859217836767599885083022465872889971935672261080160362321078386591874541404587872958028422301850760844627724170114309825300407612682583602052718107080398204930625313634601623508719185265530358668734349343473412018148444929818307566843609788369983362111357661837690237269248038784776249727416482274962462536218082804146095704888677161579526672584483875266539730602581442497842260643551953146862578264259649151882091941581042998665436355265814763037586795181732831063316746746680671051008849345837524854974938131181317631918131985436905070371121413038809712122120902036738981466119372167536354505672299717185867467313887751517092457147862371788740131771637636321129943455394427468495585396170153477018490606012528917154632684799175936948377601981019261349280175781343918300951756852472491333577202624899871118759964684901106992825418877550768928705309983008226858792286646714331588626455506578714304868907368014978712870455585350122816222708492119746633465189181117641067028330559245002100565980062892389679543013722680216605327120077305392039380551772283726669869760381930643528439887227306850620497885470533218811287104671485025679996233051903401325885844854459084696041968643923682279016644596553905165672351527502039225269346280445929837254149953537216480290982071429767496526464372525373261379152844994887657138264486220569928258694956840899815914619426369963601927012075064591264984333308910104662366055566123555796288399075324398130655753918795609437775902275079017758399788944985354418371133680269159856287467257352006170418528203602475772280388557940641289366115942874302903735441567977509717355062849278449043632153987250383789721119267214147198949389308284268829392618844234402940033825232027052749145203577326892741562653561873744600009054000958361500075837192326730368682521536872111280427909104768881586304743474336093023860430962734798984428262423098437972332361077159232447880245498483882422995386439096379329752267150277369792907607771736916557022314547230782722229328755327565739848388681489014034749858049241110229992551300297970325540834126346590130025048360736403083441075316282622557636081694184246139829572220382143179601738087250795937307350155907137952508974682111693660411688387736203241678287718198401602820980207274709205954524118019326487605991864825568579931532311609231850250245793441117078012366737234732203324462486779602672928597838745252620588852934988930460211644793814289747014288754800704637778780137821629045005272467806385748737116251431108743913242019758553121733391752724775460716647924761073953902923992078761251843630513088550064421562473818445268668423820767306061045001051945914110881005429109992761666923900544018404529951550724616152980603369828365512539983565023865157173355964355080322130787570428768464613574155438715381320865080153653544199125497383383451691530332058368096241687594979412042077707288633791459108838694114974112716825347503941852710089586391990542275257454839885527518344214897953430458424485300920979506042428405995816719515321256528248265164177798185512209565331431850993942069093793225257399835612463191899361760181446386503020329440330079982072050951433317504829658900819124082307078989001899987666696187128315736133522103432989431334040439437949143328940286498602695443863697853871762627724175462332088133168435526236027099061309988489437208032328201552356161386685033373025739244313680659272841399552146203958588336903594722960578020646694696421281834927623366599297441285605414736159519977354211534094166389234308082062120056908528787463343736658489487626557170778538132039636692913041638880170176861465565477217343004555733170548078375582576369526955931866282830080536039026170285769889307528594819641547072434556599327937466660093980280523312995130409443735490105159539823497861671335244881308184611503230240305024328036771129027201290594868775320347456538167613972490098688225955024534526289884307727827257517515120664081456923395251205682962204694229120721064250065473425328084577310865973418570905189352549240719772033509706144216736664964496061765806663657035132706144916989762275503843114561615539259318613169857052616733980213688017117939446174313553498855518455236578761900762883244177185707288201994897527020378710682203617051478549154259232592883688248165454419205809549687477079901304506743791327046808693258096789680797752734414902643295758270797050344246890643401315549399931849168516127618398380869609064651887986754224008821806938578551934192632223458560675900421394507652586623898271116144249694392142765626542677323244353328630314970426476444844883923257567653238094351324628582217343588430197540950667584831999140745314045026563037418039070956967235262125822473914653387969136835097843984328013594908669275914392823263628795827851860520911169734993882700258410965001625012295230678941672509865756275301338157672907524231386914806814510545651687989642007346683927020436535476888782947456215600188449712495185507785868044211086658151899145212136642633243556586365184150486092805529465559775897896282052045579982899639074288708440142844709008252084255701361709542028727100663766276931671512150428797465560082129216654691651502723594934066962292799674648783719601471019303843190001187923325790964861524718066257827399554817333331338577294039201450348946301827092713293738520228117906418375717090312006693999461193778936402804717141978241330352107331158883778548331009320870986440098051149504450581849390896654334454999887347299415218841891227933711384572073847225760005751936953873381167542517425736605820385379847425408735702107178672665148294217453881494613042307253419697294844580983632509344152933583426883643997443911846095583603714972966260673654215077658190948609342544274387164756509240017567062269869566255255809191991068260039054454472473324360477071584042230509836977356551093972330469973373771832656440424917666597441336413147496011844658509114379872627451238913293781550222362903523497684490715092335346780701052978340036730429585577994880149752779399858341884983124117058867969862595598043845243281675459379476801246966364942093234364834951209936098622395100060288545720742525767485724011530938676050158387066276508228974001059525436974271065045987218545813093598182892862346722261698516698308282362039514383608316715373691641519135655849546189462049180393766186068700077184397734037969435072183560702308299998052206576455583842552164594606150523210113537043396392517138408260880455042656668711226729927284952767772335242108771608509204422027341277638742616051681908206366963366374550831206535400957757795862706078650058586698787339800103664722306314757348783521042597935810986147007723068677383691197708984431715164190080741660298907466995189020570737964028001569751697950571199491949980465716541268184687233823962510889783431910164375380881772259901090382388850729255665700994091007087528472599258801424621724915353071856909795878080452045297942459458121968715980289590367335076876714694867400272593849418514646047038268384275326644420438598924208320262978087143053495429714640043646386514609160092715464118434995311660066097343222785507620370139297644735189565989458499103360847526758336008459694270647242980466315526787568247128066864068620577424298885598900482224968219090272190425992680823370175033852048616277052730160543233707256847953910940389125903980728224738585011557241073994497038129690050291391668756011881910959544716706660135874715280361958479877128484927259287222060882639572099499107977406525630037811376254750517616675076844918047390121987384773508758205111086297617914047654667534509832769992374879468100932300724205819746710463765575030151995421622321098884254135486816500119501874088235985831794962769980443952642689155449993008886926995303525363222850862238213617672978080587936433152251992827435336906681308579532573400477046252387684952777935331150290050544372027905000140032859424346044426393794064962529642135174162361021114618964316313559600232557534648180653690278931635723067579737045412830370130367770481489375058453379557532029242692469676028172150474738063371081442626821866016679563880915056979574385315054376625540330118739245055341514670980265527316558147623214770816950210705518244367212215154812373871068886709386110212924140058178891918627183294154703196341252777634820767503153154956111702921186245545655435857199563112493238682284836984225985580685687740591766432331700672707515573025633497251650515504703629873462429851078608650758964061813783494870927360941065459092434328851891198851977290698907453019978204977045617768937842666952540405371545440145565717232780638150781062876851679701506214463743502941279616131349115598665902028091680496498314247126568634724061800071633861254999398007926012773687886971176085739231483862121497860144888738132235329110089145429822338953183879207860774216107289384742177356493835061302344512505941318836573539270938646219814063696936601391873511352881969399467082734808138778341906750534355730119100438641920027975178092297662249055765008205717239865882758923317217693573609351678248395537728988177477113554795376476936517977046595330354207555190197562494406782033607929581051802549115632741122073418608485112608079222398317776413520877362168733138659793395045883038885968207743808335286227830445229626605699966617727010145494609480502939406718561570124306571519741843269901394591279261155448310288742336942203374764032475071867872426882731818145673082191502376255600009947548941148745456298250899920736339592530883715891656679604721920575889678698826855915138576512073498574914351626286303454072169618074764530841760608087615301117973022088199457346473032892120733310324822375659036357811236823690061435701441110698355440367157695056053451589566182125991706646087549843336992481154765463543204216768054274013636657106609498691774004770426405307364503248500083412513278698663649738515144026893878140934551881614099823889308394144238556592148937142864935489327906935243295129843479776487232125501276345717270873727701811579667550161651521627351222370047847886590727303167195442738254434866499004684517706388686360126310163935925441677594417299004117264340981741164296600024190900309654001316634696288123608022530384713290823608271387766337038200043923740006459422678469248216498783358394746929965691749909067266887479488303314288368211142850494882826118984688151729259686478206927879775882407236599389326188864676748902949493827339190544096229878763712370643856030388652300685386201046427331508797117629284165557652695878029663151159211103069554472457743456651436720608756615104044541991698285275770611038176605409330692592556145623588572829132745908068135188978757598197793973111018822722248064036243153207576791725522507294143459691212433802509272071005362371671543354436354585162544899688055647608915222830422404886277599723349961641222100102024663442380709408553022259922944511012033350361810611556412740539153411513517185169458554485559862465107172320105322201648454735773730789301220477038352429638587542627914748782689936339358118143668214221890511299551459943034591030366794394422400903165004106142601932093651742772225768347847655844481493216919448073253621840222595164267827630452607962689342082094409707093504072700277932394462161090599964480263251429623159485064679807066254425349064788066504749572238275826060423560283666100413556585164706191559016890091484983998362529543432266122565902705201526904902994153295386773807236935569909553305691206712204004949743500124210769551632485045870442012044783768514052584612075018237409912598549085141387605628080421583700500936891368694184777877493157510067603112823769271134912499856000040260767280364604496495425757162586433251450722771280931470159645392648539061910432749106447802253574605816562687108574102894559138602311201902632591797171494273850836101718804733004114008941064064184100196051306536795507362246359973938719797519820544786923766523636546735719144548837330658198747836252406753201369323825395394082160088620500983536966745976140777812448252293486067920341683479511505869797088036682713462235346532891010329919146343689878258779582532805594594552020002612378011950507387076985981288092865340498939852239846402578875975971362165687631800883502474662009053574389263013799370429012989018747554251563626427313304988153293444394369771495819121411316405879571592670240665389259661608858140641906561022379599436927606698075473720029776148765650844654002182987161349315100977471984890014330491755227540877617121582258025879132723068659180836469289662244931792311957417248691376192600522530064384074407175795660978592181886005417381137870272385732848507045595217258822134737001520984239883496543494654622728879128035528962146429586658408770544094753518398090717349692671851226832216209603163660640215966718265027011932119285759873976792596073729231979382688117864557065851103583816752173757490780172399409403239150211636702640577398209986730162012840142053829051482589812632393874752702480080391312399342260141225708352832202606568872802669755259140205572091238834451884874807957512763162421235317651594533371352945358641279891948821540091132600131137258440252752966697084821916843331374631207358663948588581013014937282948252764353514994069877499455314033207900177486088130315239096881146495372337483857087983419595285602581241187179508950809338227257826437432683594426997368843950805835572261159009403173355406981294278144669120902981407508250854302448751031397672922532637639943248502003635866441090845736116671004623365535950982436748281441228060194129924104959054364417779876976043988197243575472084478577785600125912270482156177429792374109045443690208020296834163789989587821401774889267390475772453035925332714000128297678660692420218709715897357622097307631267416989574237163324467306275822378391449909464511948437916803968005922820725443195109718938713367760604568894089359724864077929462302131375258435449729147844254645228400124651820086898468908938164247576732686695242441012712570524897062649443691427727336681657394396721137308660020961082631185733196404498671494628780600409987760775174559331259393599757172186741896277445296463957408538831682138825984167722570716557345541643961630973699468934293922500385163346514640867607182062678294986512535487039591916511845932712131452991044178740156024371564638145275743627621776318904439427283336860942146679757077182382736875066403832595105394751875901741469139360236645552951639805932306088570699728804629642619640508371210226546351369156113182993849484211800070241055130808634612534111639441882021355180504354725261409136751013129839678818611725216609103645261511133462835876184205985943963553404291256189772971547507244187087552354075522836403061816575558298580895313569439059445568071587639614054562449674027612323516707363798700547594900459553379673382198589353297070161577290126357890732636982840471363138529779472186287163858630026674859562346213844774918144892680253849712651868975978148481880227444650980100579339916671621850911777740153265295467509937483319653575593089603562586328644992564497161315673368128366519708262491616797723013720431451249080393997253514932893743531745974296195358066995131579587027226572103354251819189839600958558883851816207539131344710117888474460683411018098017228627994632539233861334873397617171530249352804898684306863181593337192299466972867478732578556383910219997807075201245498796495142744517116882368575774394596760003871871380291044713513812223022934072956889413752598662680580096810620907271259955716629503322282800542741652426654236554414086918555460251095816938927135096773538903573469369568845029234455438847074681647723192912356190099582099398652926292221003282480717229276310628534536957092799950252057512016577553484325010545332627315540195886518215807267408999211065585851757996528653807668116806640922791449747130399325244809656420479711816507066522388227947193174704476113559871269527791530767593368704435367955389518930841946859478276148691995542054151789461965722697052323256295079466395292940762659216218813291757324898530397778085961187539101736319629754965255547614586774509752432447743582099207015396572864961551767367148871637118814697842624388401056928096937324542503517323786108068525686812813578229542717050492116881022322420496616834992407078844223114544089271333814093819165362952099386333318167406730221631759823674137459322124157642943630307744788068218772816172505294536315932653228511882966597037044991661116793876075663505448700147963855840710257647549424445320653520662760637124946113582880718404361492676863016316117838071282971591234750282413677677019858738973917099090275636371350482765794638774668752005996126076605859565541296976775748312667307264002101747944282994842077168124844529843387536351308087847715364116781072658392266354241168223978798740102165064032712334296748668002152914185271554312943662644033983747020522239083151996987587038076977156547667538103209368100487562801988463100466133717311682198907964855673816887562642639883666478424773640605339032906677564639612351632511228047056143728062155563990610646292472054558617168487890327845107134406371705644546597819664229671579811677388492021916285378253409810472049024511253021130009526191504450617143857001033310158628151745643327253872083906207035173468854018263541530598300092169186449755638693073229910898469630617911802611096120761940908476833662668786285668393798180914358437202588403099514414983683915318722184702601656737078093489270787199262666731651433641674211044031180715029739868911211777788896540979153544134604355366374785006248269323420466032793747474269103526300751025734905217307011335577920705924835846521569941156363582262605595413024952506851181133234835679461907284794250280025925909822161662776960094261972162760176191302972943708166136077807037954730553812980249634919832650588119047882323072896967448510143754996561926883426735712611154243007527650024931328610768590834047049208268039891377853773357830553257692786301635485224038567305410773244083459712764904840529119260304590357850860049454377088833601573222279350556948954257808577729418394339010815154692673972069087295025037486742382067185746492850264410755266674240227976738323439218838902109256665141757414570840520301652879476986445745198780206737989855741056335754171025375950747622629915576617450432403497834257342015246211435781103425424600429158489304646916990994763862665244178424572513211105280886217687245944654812924170541575782634277839676572624546728472187967434440798217480560756951496187042009802883975203390129966676674302522614592734882436353423558998055554468620506255016583153430556892629831506902757776556374729799940636371196848509279430878128832736894069610168337031071218948004279457862992280536732147482687663391945960737160719027564288349893396342000153139489230258490755067244442919437906835901528833913417117969113186185674658211873993557416643033617928971242435834631608720572463437515756098741472055967219700713823272028144521779944185573107275135549211244506254016399879184443784611286654640475064540615553786599944569739620253040844991896613791394600780912910128638055527489437248976957706113054176432761962029199253421117713917101589043328501526957630363559684434566235320424909935574186024598076991485104111108391268622929779421078976363037160876159395596096334208810999372188542747574531801242470591877434419558997783296907681418060267261832052093086748836611618844693899245427168805928032079251942581525766114480805014154968218441800041161844565434873592073180385082327543573224009981322608032099595861313835315740506634805471723875675691391117609704020758977031885289744925776542658148380716955079480534709033462555330408706508802257957844635669506854999464555256535239450942211205178146785510758294697061461874295181851853581280703943948409032612047270824653408602505369067215293941235981766229290564181171695037893524342262642135855875112869008566215752552529460620732545458085026663634062271054774885755731069774161271552964731631365759401987723509043381133706980862535312353828629451897762880857583658859489094466431514549417037686290770137526144244642642031677241965139041347252813277388448147635947994779517402299033371417219138893333241249371037352395599862849653821007647989384704832110305057205132134451834830103123498990187666307941728165177382473036973300172493564084245926888685506624335006861939835455888432339426764364239208027349794747157666519669499182038825693443742330070681547677524816187568324444948220221783657589815406564604281472759154303255650235237753532425739156192186815755753687147903696668138433956533886171129623005267249293683012181191230564736641040256177361335874519633656870383237764687210185458195574717657095846474441246648895298528953489513081869297567223622583890775960765915199870838383438297942085438044546017575629463930839907347145448285951081591103547512633825187363225722233388686152727177315976306871501892609601326691610476003890707979093430473156282420253445234345486949255933817760692923198585628207958715123666840706127264560279490076695612942750124645762431291369546053429725757295516022267108279446557110118746819433958723098865982777272358655300270540643973709532421223588545107494741040433121768772612443832804430700333762338951834383244036549760111222213286740543639718270495718400662316474765323108799694373726753117752704616141359870102848121539845952644659706250737910300419413784223692395175813839602318787389293000502254500757490417130203119301508491194687270176164083591866930520701018120589717156802894303564195614985061657123638415523587212745960986647887082344266219658652016239530059350451483224101001506199615488032500609625899791897743332945897304143969126342532772038108744927526404472435312822389136080207369006978682638342021983508019289316679338555104233508336275975226495369086792040844430983499086984987595276607220723522539898414653198115619273420441057974527474903607513559836853103259321643133166347248921168476176638030071937717095540425719810547733978927430504532237772636464106318212605038090469562171149771086770086328747071283019494937394066380997634872715999945518943758921430221822451972627296995287959990328334031040269325381922325803694172692263320468289733969093949494997433539017528183753672663400961085406138399827616653456859793414405698487334127104626686707496482506472827003030288697340183554773265676282855182246017915159032071646955757255612815362664333468412520247855561926881459720748087131879353873649939470943286883530339196657367560984565750064728231101971117236768775453746766752224755932507973069945135508005790763022944854285921039213971699826285166317439374457511104177339873038728676744090250833936662329760843615726108074497547119812794741100811982340626158767147506410021826717522464421001445322899564590094641507628350228560182332497305409397293149243363616717640916569505305065523994646423652638845175650497855316601300724090103722013595106274234218121464523130636586833846323356999782253981352411514647384984856010359112876964113573497418789417979264747855190471997245940522014621957603871785877467810075948754995377294708773749111271781292320746756691784981186502911091820329996555511798176762757675927879922086860579354863610840488996182013671394318753639061549763512469407249948451770155948945694715494450415747171162360300000888238919743773726754748489125407337572453086695385677688316708335129371741592786502163482283011393321110700817460185145824888271937766845619264676712995976486430870095243574304895541869543467151126261427878406445021333040606165114617392571373720302729425394707837322065434734475239477596205413886557036811347023719566570508621662784257366751038898433868602710425954057923218259001672191079433610979283332726914963071035830939292367531371979123455182901327688290601180815040631190105270080369762623391761328362214415559861260467029682619152478306475521758168977970141656178625029253370810324103519684198645378531980036844682285232753978908856524049697459758336865422019438155174413559759692677880003445568397181633633299533244004980427954068065946134727349108521877563486947748489726732458668745494538215512909047645919015107919703027391446385828149298535079999063296489383872881138232206805875495249797080613782387417573177078376254142942749921473397734782276266370185401924151724376022685033083404266432977166463593228343367306613157552596995057414054433209219281990698913868434955205372843472211456621382218625614966643801783564265241317995985404140282823142089404245669666823172115005410286380243882705491062745135108175038527928533194951833964922916825053044094121203929504291758786923086575523594241163200254329822358009700620209796772885971995358179631571766847514546998287573985744604822028419941777846258609917690193629740935948096843530547034001657960038831282935688681988190671108165583575007516222548353661604729576764228116208307656119547969641123259881973462173695748651125827319332055499618094734079332497447487824195738417872903278659169963035678202685480921833882613491266948370699350237593378687774872373978348383946396076830370161746306081775100880669151465956433522395571116972096765794587657523950332744593470383455027996436494411735345140958232946140319966884604854595804565273574508755326385383312717577253843770616765624953244050681987170310674087479199267296740992941702530299689349689927662886227154449002250075900271842318904777343912493849925263091689956022491159093499170557633218509074615106711981648303332342426311981900763078351076730246162075621804570661374571016029363963080777580902141610586807588121313075258342325200914221881453829134402725308887897151136692996091284137255147379734083574925800442318734212517745869897748614700161518536167360617910883523481270971682457430450897327537718037465336525735484259165089783271721637348203288045532903613461509538259104210927644220551944005033133996414245435635137748062139477042303278565732627353790871287644468975792451668154429040720806811598483507390629751285565580262010941809859216094900776475031380503928583463684817012184684278127816108950016663675960163477950297503873218862608901897043405425264193699160710376498962818211192141003478850206310870423767735474665426144871476582723294962407449988781973675527876632905104863508075654916925234768245459284729959312583065821858922297487548940841634995724595270551676362344478457772932123554561405747951140873418468637988822556202521135250641023176971978899092549565531890069921485844903416165032780492013170247410731738934087290959336571140428009087705375847047471264202582944019114980303624358512296716383486404288607435365615647374996368184727931469877686785981674527399897559108824908089126291620383282518512762602692520590856311242653947574584465522068941654429995384774720417021508322917370414968316041208833398083001698492622561525465074778638630817663063446222018527246421576247765668081223172952771797727153367534998212320869259505994139831630932274245520514289748642723861839698263757408950421532407546315440737626053742589565924073534969047721359502853242139081886350354070307891283610903979581778151081999811426974596094930772567723185883210298592151251812670327272601452138643902086487174384798059736072351632957595307441566746319453259651606889516982910267640466862822421304315174722746622898187221484022129200033299580626803461615986450191690223126112059891462065240393934542047577799108922923648608299372795092138988616440366501471867393136434335084725203262738584476147776592822481054573180691523616552432995773570860543733078335611467957916501896327138230374881020646627339137902964560178154613418406506529119391471722031982084986067559795419651397413673242898639700286929751311812605682093868762693330998067414842470163791991320340000305121228889578325400115562528988818061868602598251424089180695542178316207857540673257298416848512529022141393588379885468416819900252147676559682889079901951265161322656872370787747549943940029112253014020366399013277427352089380217379155475521950594711688664236168792364713522317914282989163753858181508499293076272261912167174465138684205800319894061392646369410689291117218835789308128001533483874929447815836582324889574722577528956914623171337384451968575913011917857314303578615655806843081860738751831630577141549781101799221210358021582974424044521827271192798541715610341143507578274122992074346913580876930990953937291028765851627246117329102228617637195520430305198168060828340176763749731908553288514637033024185244430664567057835266474400695266116120848803990211739248581839294884077981402928809034341512482796170571512998935136955299576709138798808149408297838740813166214976924407013663946543836949505377472659557217223869634259875675522124760353611310630060185779161082671179409539362493008231622423711544108352303738118296987447715630577425688031003886730423350744051450066881120482805050976455016326774607232817522919522521626135499546708104937143157873862456670146024791651911572528019206285512269533584883888502287019833645783938635368746406173498772670192405483348298612884148158849128226109672795728990811083058485277984238521738084037462764926178645935908173890939632767311454876152284754414252374589256627369647412321239627061860985073762966985431210183958380620892170113399390375711322129230229693491054417045206067905574461472888866212272052079139582135076951777671297738576841328124915053121218158887257695737593415137857807714167757267398037033941925820744775494610844402535956037922755437269298933366908433107826677429923859414271722887261039982461009043448361706541496015296952045844986877563651968381568815696281334891263792267098529657837170335882679580134891462415353194530695131293568685938319724560819362787186877754929883862913305842279981856690546203343744036398586522813806772933524097203592940099009172628161505674723602421600898206398503321001308153838028426300191688264004184123963704836310562317690770827014510699180149326595051451209862144650924254324512903548868786046768504557364314059404902333310151931697542213354871684774034302828475103550002477385290748100771083056192141975823129837780844313147893214105797552804729019704177305178008075916502974252594128043461272878063611190265720329188077351845170421049272168615185266181272378020482542822553880621316362658493880690610901601792270145728583497810222627738002991297577208254510448080851070331624720994384516593582309261194669521997054272110788752139048532814066189251325178050861813525526232241885315113997121960383691026977469958646265627414410672546803474972208728470940768383770915508841113672945876164254380301229858059581171873149624149775154198350281307797046526409343776289889928802174005128509594287723596890228725052947355180334199875225087193278048628353562317556665116853959136434477352019187052853032056097530809994180183529260703874904605844094488655613172161580661975121125901811323213761626470650421411262002042057631049923593314267517517783289737703854231462948683011450868893680628527863010408314493652671058734026029897883447898218179749971925796959287567386696598911852549509321661351283911760870262653039639863369525144444927562124558997621465721637536871324031964023757171366667027530422118046494201928553968751834330972172713506736109830222114720668238915776375680962274297614158021786487396339550470266091198309930640323225735482160260475340531658038768987036941546613932979204326484430414988319098796834944573824234928043625893507994821855784987377162931156846064786744999037100988019578406258797545447364876255044889243914628679836667410435343273086880454032036080729798975898886151086267669741271649795098199214874029712974141141588089583759736114474517271338895620984152574664907114683650822987401204684504811941512449791679709162480056916980850969224947366263821391600282125798239341578958541788890885016066021601451392602104596230351037563213961598668929754399391475987674473808065199769746229685787589768733151285612339136184407898431085129583061318926201474370598120514351274148023303408398632870544482980898656876460465300095730118671261621269092840965936009826955546712253482966397314901637841973817028383760901575402074282904448694170213121162139199666289342134824457250607198061743522550363385891718397740612505081828962109596976867398457633989354712395731338856176181171320984745444675227133027051803123450557512489693832552321347046622840309694061569559219349148426802832091488843209394679253541168608311165398066658899979830020702850864341333997680009470431245182531308950979901267504297015640354039718383663778146423365240489317434670716029045944184973510496590545664044111399549748142983138963818029370453482707570506528386997937713393077576935043919140957349175603209488412134023112331900117226207640282103078675609318281807693610461751121166881089279727807306313398985595816702766368909071762619257653243303232386380544835144627019574851755118927795132555724042726113322735463537591255461258182213615657127763569177570515193269161177708638273464789176102984594104961295705500917043618253163889634328924131776534547183896880889024624074433092822832777805469244905027333915497871492143814273049917143449086410595865248147340749311825773541054478466653909599787307836584862774347072587289728692655894237299456085630120914414486075929870010482019767304934845026553925974563316306250863836359538170453955557537774385097802540656198683982940203267268429861978168599453741534622670638040758009013170844124073925630692724403883120615130351527387901178989150251279015376487094496736322336483539898925642754374660228452865741736328643846896357136296789593268564591350553587173549597799550293943330577117316745527955238629396110842507246740286077875394528008309433450702447866596803852624538473396963491033404320051341080281453483089336589422983938765316161711185449005913993370328551789611199145466170020052317645328941834193913316065264572324868223490740908372134838969797259299935959061924477589668062664393494287014256065458776228939625223645745518938361873344772301072244955897567711051835396520563085755224843631426345270625915827884010504759037187370292631342369636149659153787991227264375647759054541068457899303166328490118056270574217522316767400659691861592558501468294177958024679098811741224023707847453110934790327003027637160796050721871623699514246608510853219959679762344194719626282724727063676051282873231674666393586681967773981769867539606776988710619561990379402978032453766550755377356503089650743104652273858719294545564358518919813475100746853700246755144148475412020028535274368605632835535148282350554236381387688578589309065377314988734448273420516021902407443395928325556090242634769661505456093593819040381454417606334228921448920011438362633276824603503727877006172270605819810275610735784675926445914906416621732964385991220903764295189106444603939285492864295777143876847833603699394784937255720338656474796506310752700517815676995874723198299782902056241993077700925486436975913277701373041857472422862349213674770707430722484286770799911519673441883947336597671562502726087529460961383720200128536588586392233839407178156532002312163311521173280483648642572174151824873334577359686768684573389762276129170139596980894925829148579066677816895627409995861962074207784999086323646005642086705429539242174695761402775931185455567250714499779721883551023560971337389703133011429611833766408532967701285280577756060471230892157699294848426051681348049495502205338975617692856179753538333275736371864661052345428798991546453808021098348569985769568016135798055401871173452872288268757875545139528151639266974811888733566576869032700708999222981411137787887032732971386082896482288969838767787357258866332615849352488587138424506739770246190381355526130380447287470136457390451579542562060753635073425635931171542029294241927576302189001342901351162729662709434273990906255430189836312723756752048983527702223639163342259642640477843304363979551329088377017072753132472764778210355197157643572085539083017952930730204218852043211056682717172520678446975326230043507923167927468862944869677262185193662827302486464592347779740171856792624409552604402496099660483209542368171692862302846120813428212118237308411092883137688567426740780339326503373721471535951196983922844180630905943489782031247536591608283173536805324068550590266196038323615388281536696724268371727217630407775221564650818918499895635283580242224103020876399329354246564759874980005123163907008058988044051805836032700263909804220664291509035944667941145413622074598134106351738873415143483422365751000614821834702323145856104678656351138225106842597616056353459304768312319519353036766644288234685442231070468606035681375609631639047851671743329150312830196558909127809069557980137414530700358770192235247267421421878844455441614591956757221172132696414968892675612269932347616806395235963011178128603577560226354722086281270956930268807532792788008433914258310308207579460388208984290651142997613755039152547903547911211503578761511660522402011742278559834541672477180375705474030161706250370065025787136035299832330688110938238905895460597453077229971333701762817026975827976472699529537522806631943051360324097980182710553052184043271118464868844096790787295709982816269296906915918906108914970979330993718552417659584624695951042630535543200173453536096327641310050021018741256209938412838575059756792247217220143866869106825686254267510167067014047673922584165237638799362143677699770526194700281441692239283908881168564281423993435044517068625171467096345217033287755545242198812417728580151840922928003192326766429496813716373615295893063275029275087103728510323034428534348416373521637522366673379938656831675578274025627224837962124158603098910059394760510341543961958701776284876269002294775518569118651992088874586016406626971534593612697447376684514640836847030418883957108690152956421481256497149407948234356212402690612057095940590877984877493382497259849611209846102613732850398256394589021162629439958181053006390422667199268197771060488348174496131319885578968317309667330790261372430716154880201869707006016094202249600289453816485329921216736986622099221784373267970316928570510071516793314421930760515965177318219949713080521992400255989866570420223261259238153090479342271406625043370141666086000441082638412148429421360067235464201082953760066423645441562764276168575867769376735905883495668435866673974959188053576079121772813125508083340905770074851441427497828812690423740111931390369923954971933338146014631039065679580040096765672848031683501589830773140854450893766686599021374584328601172048506756801579201095280411233482978938785920115482078478634855449751362374629614706099333669863989372604129418413504506252275771313117301349351677517562530094407533784629690737145803422967198715696213768046378358680795509740388064548627075689910263894720157470555945936470105661679936356869053647907099090449688122256982274792437707270874108334727726638235551700143773900012728103848433483964438317489759021330039614722594985564072040374116495615655482693225882944200918670333149250649510236244267287388513164784042417543155355770393024876858647170743587554529545690537639220639842460299706625878241626475871971828477487749914967748850158960687290206271035005026136411623433642238711819645303608622592253521477925896959543234572205846019979172231292919874135350861552131219970914338400373498593627984151420797358604013245882162486825057774171873553034870264867138053867397677385170167332325286076293390418726646872082210101943300968352143073361268183170973269897533637498468612265512301259574762543967718338581318391554075965858968921418749041630244497409561469538688034348810270349755015582160040245841060926615668557964495994778916171096640266460193507344856509946904862221350792785030080850901225055028330533815076010835458631256733337026193731492031316784901954110268430332545379652851793872784928563312895321695264971482163134978332223664238376079622604157917861386442868629330865415800280621336225534186828802925735537016054002633800952432328762590684242627034071440708163522358336202167671663357109799915749256424336595383309057024851652351920591358497717918044008480746584336944539203658207092808733864824521642260268782495817050203845230017599899969858275534980303475730897315593828851854530870839811908088999593529698423824019975229359925002373710084504920246717095849432762204293072656140705602358265067737054518445510407762964744431098768595903485878943644668078343451240756113949680087851208761215893260108933498949269172754273824101920328106848344563861507630635799152178158970165160116637566525588557585767261409037743806541153770181680031809799382627297681469551906830979895810253267653807132052358199977059032123093100903689605896507316208447771067136606535109138784563131691674376425375706883390487416447742871231182689160939705737254609228620405222487042044948425496911005143568274546371023720676034010192955358575273037454178622891652898419810645987707637018809310389916371872000607135310252500449250476770827864952332948967584067215402728862839369920782537040723406257153246476305097311561642379051976312425673308975531322667294158796134120326780891762524724151403343065007399944071268795860070128131699158700032902139112774426545063417969487393228429982193215647379416230401491266129611972072998124390530485579246215045245037980648534363014494617655126003307104311892953062715562891351703910339747373933475385696272924070391638061863521374205339688200882294284987218939188019745599479619641054133357540184380344745686080295251881507774907053955532548611847033278180549119705040934087425796123992599829915134995440892355040534925265420419735844029625925921206891824710393001339340882017507613507520314108384702925213799216965682360713241978759316718002035831035740276988843539705265846082825035809563388939138888310523316682629684036324271290065972942570927295861521406690005436875034866921021765345293448954412333814948075059194092476624876673583933400655013354162651537010127365240709168398066273210811023913656817003656708014157345634796959402648891092783379774161476822723536503782317855276156504157287604677122402253661665729894018317203665203825380512694854363622553204764389792570564489487457971967038796953072173224521844009895518724175095663194920351091081842981748492279166811372808211586287667339674210030105390557948937303698341554787720352699624884920590870750326274859979498345507066639532769250283462233760404652086003682834256849118042180776695893148059687398556629084899905922056776197708455513810960984968448303336997541102772965372912124830661144837368231299470256683346739830048318897718647872183049988925554300725151328450610004242491667559773145046050250912081631669320492024980096162760675360467636631206538501852555743485123365056522530859089323847149293273152600509925859283241956030760416035356451864520725327441327873549203873475270952159065097177205407248071941269862404623873607736417636390761189273790600164839570945276151391458458765027488927895486227187111492255123412006024436833327967254353567343856336450772945893514999034292283610475302591657697869170920180562263479681236076378262758257999208901558502037253970539982460278079942606368665834395339631214710123825949567767458705043047940594698633100795711642501138096183497806671963241424890066996682374129648972422546717007602725096177510396492504796806720240006710194754132558936108420955515386453741924419613272718782395971984557746787996462825627658213956062031571294150661812947916594190590262628289980093104645024434158984191125484705897586430669935575946666150043550539748881666353376000278626587257969680913707870014940792782082415852176979453387896242770428032908895997231811098762051411985910571072445732211260548200647078123219664523000707866201128832678528086665412060851337018216905831743147451619152919306829283068393224458702786410191532429459671690489556097699896405069740774746905786767686328811441921476007291770483188460463657479236577747901805391128644223217681494420657122087371868006995543572198138663932492543362408162277947358295381837465057746725303618029394002052265382191890352460755854918953445075393947956244021636995118276238076192600118550029765536004302552904683710381807940944040931337343946234665477760908005231931216650177758820314576549400509089995737867559678491066558892930610133941257005917232056632877286300455743700200147009492916243611529287591456149139411824939245140611375648787167676522090669340807055805637689350199822156926381614478359114803919165546358854232448048184570534536721914757099557903583711430159876511469909248692379006727898479231706933756896075172855583059490751964306670770918114175836500046491361878612065346160433693255432666973224715955098650449282837952990177288213904289018546878906461692187386871084822724370864992911286526005795424478368971881728113545631862521433254220402725911026545494395902161679229473769900070656925025396531490884715920224598017704979711891479381238764913642300795717199808721417170532582682807341777689797474428401016823840207525695438315903956642068120684203918008669698104693741191897585977527013842009588072209899953807354560932919341657202308592487750656213287192922709748554021367382358293630122876718710607821629228085127877479822741678387324143823309448108381049465634744086289587813190800345562726857418501290538354971884545783489730098293680458259428630701193516124114829047928275173537776612930175957015847216932983355749028775196642111955008792180499988854794473294548623429739839401099685030306958984570121233507465534157897565687089282426241068859994838246959776908643995333923202296651814265843205797739338061168425292115157439752557107508820701817332730683911957158453163938522160253528913737533833314467195525698305403898421556785502799097864696099959106074222455334882928669623992119458300857530344240548135514710144280969231631753316813572987761045179087232180488563451072222095191149477896166889448670748111606200852699721311983964493978538872282353979936751546564459875548555490116076990166774392533680123276480523170155831368306726847066047190342007388542146538404389619377371996689638343058351416671438722792337719383182608114933486636018124049424754967376791444682057824018568966960276307410889486523809000150609353647192752107944958252923312944611119335185922356755423122446198655583128477505663606920814872163274404586798378812087874156395870770715460323826699660127755118970249718719776999658550793082937245737225623281682975029250569150127330103572684440203860086903843194811020496044540305253554238851350080396041355029985925312653808320898697447062021242292755473106219738968009076107239560836744368348016229187707805731769878971919005305087098309180013705500250833215198591157472758190147461673785407252340236996411345105175154925756606355115401441441008342741313778708746409506787433560910036029393740083352520453623437117474972014219395396577548371805061782813154024264302305977380844979556721562744800513696303759677865179958565233003778545790446744550365452744947157588702821710929508125944908704665418571172443865633743522343636594872923771424245309878284882456064774240471021748119988278035059918744232110661437059492982376216386369600237244486426610399691283861324568549502079845668895906942880031177854259030038635175570282955441274736135564438590493337721417155596024070571407201028014712086142153215143914564191060306365211190444004992844674421002492040716010492827056967659473143071402617141469305607023890974888106373811299683312178928884205463161153513767656682830852468195997056041986334837666870543360768052790323345906690313508279001403903618425369161357763361376709002588701722860699110772092915159867253384704335098273612576611917773194950929516594276491249629444826094661958193668182141461077576204442376666131295882110840921243370595939325027812873959242139300273861536586262698971687848366730490125098583132197434151955154031265768747257439479537613480062637544316372105603821072847921564481403956730795654212393451382043697498348249937944758368600021661614222640100097950628854844893784146644664902128084909119032387509761393579750577680091487608784061955208857231151024200927707525483309947602942695689024307441619181495475183714638996792462211518105830894156324034410105027375446403012218060751178724939331565020432293975028564869410332337504825676519439778006598129421500711710668685052799712253059243702951450224613971403721340871550913193398949332715366744219962269484823188088363657477842535909691239357980786519465938127532002654696030892368917482695141972000628504499466030159778017148088405173720245469969634353142319366170671204338273873618926717443787341292668258231225507816001869403080309245734020081439107805531451879358048675090880011489455309540546406081674524505703050168010612373676095858977155742160916508923724840138944580287105573298223414207294683511624590341377215529869037465003804075736397290094183724229671384333140424425618124317647412127321386553681829065751973373029186861198074776627559978349398836794511997388804141013493498663321277445391417381694185525409827157438462985099962148946986351777755240440441926270471001076603537752566089058828464159521193941729401520506984000500011203262402126726638549795571378201683440201007505748420563809529327027028220312358559818051966604623643537786057185205889950215106195651704903636180351571513371684112409311259828118730162811207119520402050092311749038805698321546091584638420727890616606892687992845792998784415213505507776727338490428834679234768330087569798217249499756222249875573119188590390509276465476935714172216541220814707750630012576861648991269393219916931738115158640036068826092659871395630548293926921641455906001059100856528355145668322417306290561124000542842966042238679025710329051786318918774134636400840474564709349700102694995645654832717988969695302341336761164020666277002746939751683325733011386451813570543543793056348212998543354642442482567319510774262305575746839585896920879466857528544025332561361964133138657505517582097617021266818264156742187430070386859822885653175587993508997924568618952758990378547038034739990880736588548378021260597031514478563761362316773658988530261058051296383364223927407121158076109834725452612402642348972650385615855734829466546381517241741428584665982343839837901620287221457049613478713735272984947211082012288017847665650943209206625177277776457009737618726191255484273494980179781501350999150782040602350864456500678286893841664649612067274147158717017919711061330509521352439689624011032991505568240032009111761767869562946727231818620560976539503695116362685158145883277719837080824869837969235798705942077767465285833580615618106306498475519284207246001879790520775830706869584040033035954890529513841114367416452391587967420493821369939527083297581842378649458704153156640878892145512885784503208299967614026055126851760536464740901285465386761989712679536718041681318224324448682424048303262780490057740633699624997312906761934031858390943790359939057370854097909180648279059540296860386950156014926816733216134554434478824631918565426845357729868559624842098189334079343243114905342905643586591503919207102142812795187142983435595003942626374767510487716160873960948857447660221570610299659670943912509146291727803285116451291863613257288665288563505529515301285318726594366782010506048305228404990117704097615891475865623712890681777280347790772112424861915651001074030355621624528432715552661394852562844931678101654507407002354147416066376101121486774777326968017402031152286060653988115548119142318971284124958617824694360302510559474440971349285321585645043230694995323619250528902037152867765552805925382694512618420532977952759143667811120837613831583260723668305795482206389728064066554123346142438647592753109635525440038310120836362122625832478862336659433372385709608688214653932254521757478910639789598183695699846203540412471359827579367363981271091624624479445932999841305250915024811484363421282420903948370057137878605915461377287285882730133691377342936124934391685592452261971598191687205909572222326469024582699003634147478205345297986794110075353601493997494870778546462852328255760587863040508837612539458566126823567146282107091635571536226534921889913423380689570577789484550876644562827220717579925750195199308286199712728586742702691936792941093915405817822304007660485280280855016380572173845531966290224840385625191078325515281586015315702182110308210283132366913363987305617428911737028011432659880760924262784391710072237623609125692966353561616249020231491308206175648560695433221874447870136833667658945417890218099265860665516537875655219210810727798472978942411072746180492853637831600072753817226000411627307297595236470955163884228464983503602707402263646602583402014183631944083088364089792464101958045707326134117856505568329070302513084633648487766271232132848437399288761867505343703432855268169492910215985922770190775748090758198734695066960173516314134343988366917395602173861854683070610511270559709262882502490406950803107694626417207396441216236420414536419972662851551918935748483103875535278452787164183997270987630112992501976995632394177860751258374657162640991213040081011658210737104396337031958452166724518911970998097699588714432443388841102984873554564909522817668297770121339553011997312451689616810146235769107119981929132707945487745654444011544089951250632103407495533951188334427658946884898102007694711615731786081968101278865356236219429094458708210569224411841798564246377833615911627214768593386092709552316565159875686764259769451741573771273723453483776826616954478602224302151832687704405007774799549910494495189184222811272520501358440874186782846738601877423723438490233665030829797848422872928436631430418173380967831385973933828724429394315624788269188959948913035038643463264962620922347904387212176938400400018105714004623044894687571846866011480302600138748565312804353828897951773798628693015031554483657589116426431842202294426051248351685487364703531670228052262393593278118123055351156222079928003255208957262183080926957082470521116949445033554167669463716772434247291517208472102234319121124166984824110281770061636982573345805590672882208030274661393399616518200012009800691336768124071196697697419861203483786740086255960830633444969456236821535912006674996492784275736825619656589284669195769017808543061887465244229695787241246226653991879210164147311443987270038682651068751900862934906938901775066006678113185283871378022129201771084499121786786147752584366843982288157500277862295950716906671293482614140846974480033628643920753587956381297590217358296239870978389938038850732949545990577633934571567843674375216873633544806269181438755023790269330869736328853881784834674024470732605879522389724972123755341192494155919359746494534800338744645613964118795375739404985137484713086683469885105944700356967026952706607660051246407196761347914534011125962835877902240225191311397476980484195974385788791529479739410142935423360959960166276979163006669635515942483409124096407098947328452204858798711539315044708448166207191278848135707082043174983576532096473220800824769992044434818199091108555090775104328700277507932789103840235321360512491456104205442663657896527494399839043515565090421586101815061988302862278329432402393940254426629893572275273271688327970460811275789373552739705794864508336385300063478138757702871702634814744092961263879589184414291908137451749047645133718788599708354672266853562708805360154948604067520407697248320629731123521273726307488031033992074854977399195717731100255177710722852591031606064429104227526713494443895054462459084759800320837584517060791798301744686330973212055472273740467464958808218755297523334629414794333258141838485641572765326681655064660610862951879139083746191402611987830565074004844066092996424060458977433233042394696474226536608634492788785501256364162518329916930857515361082812584428143326051279228050123179978966530823983822885697283628255720631934567889860471678273994957328974579267173817043161360480143646292158473456191389672050823307910780833763605448067280175164714290325195854995531320421457065431074112764949233520440367807568975143293456659523533682788045921646227493207289970555913678512905175858801990055542223874373971363476181965353632958565297825193124466295743450816555890440362381983937138978670459441618501292836058004514046689342101856617820068157271918788755629215333615471596228512247411314614257363908033926937516217281042517255496783622366918201085915803895419901166741651502840839970053411969891348041724124563328904508616166886817662917179697647468960580316187743011430793704230307683086395080972725181518675786595624327659521137218131038042263748110984115360235209890904833858533031616359166331063119461537552396276610620306181190210911180709065563286296170528239325433148709481244480399170923542582117871074149697455959355691807299571800817713099384965063024414386078948147011372987776737709136583564672551119681057840850370971160498761900231548095347907526766094159541694047866244144675053298942359634372513396259488599241861160761904999930920919821135644327862562295000764477918146118491517769119520685117652902510006276103988393494943465044467516544096215773453395968695194716737101158620835635884764439429695681402082730088905598333371046495831143006384213797854647897227665240907018653440942847981846644324443518469163648599513068436578495734039939707433842924862692149008126513762449069251576248685208945350570977075531581151703149602968278432266035254545522183318473662816277213397163845534070808669366416620898130785571568143538936712532313686230334329788616607166048915735032749003003821710801040442875994191066162462560399387827265320918321000877652067614338597735234874629032471076712942989717927889329822653450253675757710602929864411507798685969130235557786291658198052773849315419443152551567742270976618463350567929585205159576172424506312417334132982256329611459316124179732657423694835828833049696784886397691013429480062825719929337134953011310731274284133425160793758083819256951147088993273289513607314966944117831842472821376097642997716317901988683703790362103982428736580426313043118252933507883810723296285195110500551078571140573032192903836677513420984025153036495318096430539292917710364265449645904151164171227396408875592479690423834323907824442187229419585754286837067457676142493231241243167038159130894193667498920571082170674470160920074469889960194301973824206442886755068027233285826926502463483536288217798076381638131029260611014876583395991708457092026316368307496190287486859619129380648211428009642404643409838111662868314653049944107251154646830264843203867170818209462695647638608357928301365774125905509257391545571345398244796282261331217112590801441266355014883126924929787691441550964281707055231426069640416776508586394853400050828951692450516380394385698134652581528762897085444197983749749826551139159664740044978689856127430992900517692182571532932557704593632906400750558826523783748317484170093559266217531781902748124220821460353676735838399340136706443592309624318879901777212590512247508230712082972796023145821738905562544007005957719632369942560784634317644451458755949739020671519645292668921362262772669546950146954003960749009437526230308683288864394430290259202222535110510354637030913196043893276457933341158155355251500700669984706243849469752561636294452452878058001595149675803659054064259603977994811854419213979917642818800362022965977508229363981913084885996991604026362351003242888355129491993194804468556614970587218600353790790914338355725282679027986815698182304564969923662661010431812654254405868073555643906981035534358723630635604437434125441323062413438788339196262435168088812231530979473529623062841753209433971623222633739878131429591941971390619310074663505924607898514568140190236144768296520914567034550726548081444589154281558417665517000141271720319997000307177227511064442204070713626211168445349905666593125752353317755561871538028703355310272839360412270958508094228554956541343424693353371282205843943843969464751085561378270958449187161350204463743693980270975272385565580827336119020836809829544936138522721124158335748212674746309655422068652601358661199476277363583264545385865057355671049539252343495709467724288500675184848551732139642218660080357159632838699090636346406782231241132631231390170730775952831463723739032125749881548048203386651899566709170335170429066813933334180382311961896037544790185844189951467621433123583694762838515134675286313162669202959715503832976806902167209527115953357890132472388214429397511081963924773963138803454667847076214899127996184170401635378679469856464010218753627642117278727723374009536408123056967622486459345038472838841472011267716528539820408921580989049571214858848140972902919874337218004344884200186954282035608463178134053994431324288762103380769782527621348738337438687613338642575797322067749411825984774575546378576563501192510970742867779952026196749407367609712141741372879706751957807730450013172982437620600962262124445167026709456396216609365009206362367006787970774839638241842035681511340511454343903922522485985748917024946486521445691236043387823535436742306328588019833021471631301426627464923451255302877935097463477305825703849643929750791828293068372023043111607249393379392725694307590210079365828393474795873656162538666522429088703205786007168479728863070979484045297610406342332156036099754691166956318608336610006462677970314413756545510631552606476744608512047465492780160472835366348717060332855739288883348957122473962177234888704053090839407488740369608614523081756637888031546821794922033431314733170551063235896003615541109705734096565249151600085957050825995755551905370417885296913735892274083401579867907688560503614146062051947361349588093801912507868933815493147447302750763438067663635141900748025667926798423976302182825683955179128716491149192923806394567200202353953230795498883316803443552931271129474581855733166860738439622004049313550772890062102457601146348771747415851568111439295558409383075764054474780465149421783586246789949807354910578937314199365027649014077537512895635794525564761328784671638422635202558757951434141531213161374840152653043420010276094085927833573132846618427712384227150012068389535692580450591459094024973107228143373030232633291356740954843730065980579509209172578984948361521232977922002080350058533617612206186448833297899132459419288993188951871722833826547938202263349414652230558705572248142431519559931553090626846985466759631622234945694364056861907331614464573051932329298781924804418744286080171888876805736838237236650611283133198400403937328073087559356803880608650893146219572389498451241098436896743400717972993475986996798579771223362228668265764857669217834876856134113273477628332364437929985931842623530255410996646824175823517227226275911587401135116120212021659071027714069724639568059192468627152584332547207909051656977252326655466296272661488662429080411136967398154245987496876320446208284740163845820667554587597884748891950926445138590833571239335316539852763493774317891714536733875484787128269670136446584290572328167056161161251783843334343366899476588937859764514263174821454576475161491689929619517637573896661592402939104027244566308349264982382486539761808350676477557064912018120229351479056472361594044974006749646104608642034705914902040270951134139394632430149588445857160844135734809716396342021690718179753044670699173955545801039639374830275244558302631011780950301750433260398622931941958170332937560851632556082039532988446023259864546918124148588906864069773826163079464936629362219268083507459557534595158130228788964111308704982432493592598379215417289569037211150014095594558323351695906569829464471870126362545144146025478608232036464438293184646012129489048623328582292978424536361098493562219505140871974015997529861580093717779235596517488620187108632790137611827187568614874363334471124359638427329656139531908092683643561661801971506374939195343082913855282993936719605887838823650509184914604359510069321939616942714897836708556819147835406220388419715575501255926087983569546222869695087984729432046905446612001767887963027876618162105445068973654189128268885862205411221556531563070354225220382156422754295089421624810573052378157861590070250552418110788819074154583158398645985666243070351442704663450301254332665640474217553273218472767684410105313314077864647296417258284151709958641715244087394615845603456160522447557993598964743271007997030623394756251884757744070384179361140609499464485225584316272562224146881264404540673757130205582399153229512576771344497583625466333470700299241068813385519065133145463475872043662392151239930638110728838745763080101429976540135071956417155207775681642342959719230103103935059092640236072036124218268604768654696590895107606021838922609157578126814785088872982030706733335758707464196640977854485209793962421687534989772592673244097679647050417410339761231779293482817006112738582832928552047556815443035137368019382207643655571009363732749832936505745123462150838916929241595095212393113291094678033127711374502377523510877488672271916913064498740748546740050640655476222416330264562814341866746076125826007518148267379661952725420686106041260026435641880649327867184933649689007682346093741331533341688261621524130246686347993245089228076272011708639504601421915773334886671643857133862703023474790778777601926108177935606739154981375508964878248434824799455322345112447130104787375485049863141532048841590744510681752716052793714629884018718415923494245082341893151223124245312816488351403851541997278270965229345306960389799931867916318137440163586209062435456564813334123241250426153751772888502681131616156107752937593572885225167023361017690096739576245006075003961096795478510202492278896717861008716829849872659991916584283458281419168820377372613250548987703742367209204001544558866050416441188918291452315840743110485890711782662661742112160278664754038406942939209917186132701008553752070170268890159889653161121006761181084321977250542483705786672097166563973429677956500968564329810440422672109472539761663476759894451893094418660968332591069595003173497503969336651762315385170990302208080907720508720143230219017010186496869267165201612290975398118996951733099911032643849093645019524115832139607370978712686890867687139618284356741789903263877264526447545497581009984920827797937726538823839695853429821749391219057597937786705347418405587818601620652215242787061919169460378636255581457070770331200739834773622442698384348592568438576126217850049812380841094158410869978121739616057828072368491352006208031855593395314919533100153861938603401539138834552028750502207811699778773489178667699572520605071456957627826508791083219258310584725491235969714968339981066138385603842373397103081405310280983875769040833874761622414812079221021569179803984720566428173630468804490625821219313268997596977314418252753942883426649254475385780045927013398067448047485889785863677919301463519129511473138272154905552053028113941100964827381980732527135413902926901697591023828198777072749355940971414959818072429840824440408807589244519865610905958833165106512381371133462712963394721340464844711668802887852886384331071809336779483334772045847410301966984336265482572072490338136160290298439353174238284081083066946760128562820977284342806915425226893943399653103603819979870699926211042360204229975367224377113507423427827452870813993652297960706464517216194367178611865761340806937359134467815036421780604639663800333440008864519133702955493152567390579559687161508754680348262386166571745646571810941461686379600296434676561540725465736265255045651043103426201825870980144675342108489946022773690158950074748762199607250365037321656335544924681093001892370396240333381194714198479329235068284839151627164011267443243918342190303423902179785539282290912243254333067759171841093800468647964910504007153940863530428745889824481590983423836128343358849386838582634974963212261290993850653026318017011675400420925760011621088204753280502917274633457913688897143456269962302462934676990654325175280296314830135441265592991485933627797579740197682471892815180121798940655681100832553476220265824565388049358433822021059313532580495038674647554539118195683109463678099229310565227624466242105911162929165977067566934869679338825233964487942176926672689822337689843140979336197587245479548868395488628630338113005272669953804538585177297970441653286156832733299689064514984053990309561512009788985034121753815092393830483151012912109929502697514569660721141088551702550033817268091194701336261498272517016907591283981170824951845482053744284935219866503724796528156377338220058908918072541112017137582164692240900828583607733191567995100516129229109491149429680493637750401024086074414834356808695554340401987802380453375175994862403181846370835645137605493261606426194286870171824996759585629247910400407355007658001451015100514861316247905167875141862346384381264086508462201830121621712796980001862757142965792670548280214335845140917673561309295572366601070586532965455586921189389586136457138288831687706753345066248234007345542586961880251924685017571054843140869201128185711333118104155720751895735912773375057405646299984106877099440540261501516384712115471574597173195064542370415872893426543904333426299662547135281589857933452470175554470854521468395124741367943792143176987024113980574878271802148365694561401681179620120904547001128966370677430791707717692276532607885330636197509442441445759789187786344855661975264214658902498046948505963655693184934219023617213638059788394530927742054103662492294814668574142123642544384264322474389397060631927953318683118021033956608408097950836304661116251920326361188422955558637275755004671493703079114657623306646282760227717375102092285223675716999523235508686613918223148862621739596341710259177339669336703363940978598262089389189171625582989419427129272304249541042338459631504457040533761313832371577693522264601041612352292475082074556701179597798160108533450663708698037844805271975358702056080617197384196329751260213361924170590946876377125358735173012090721724744010271391997445023884263350179970978636539203143796552352855177513155521339320337291445909624223292205112761182969555720001833561145805341289807951150889837255429305342905583698427301190672509490809100594098256744343738542498866727812324165053711978058086597473705111129458281363849120903462450172756961368171205509065713323038110806559276653044912740392456523263894156046976787607139829627084370211337917538826073800530674114059722483664422285538424452776993271519647346094396410706208312130760250284617396988673482864817066173517284715388346972753356547498377898309106030233644943895279020830945718031316379396086291087444795457047151039712835968565122935976791470232614847222319832902896341656767317869439869382542585756762593907222006628944153163786386918392227423771582243592232556524578553105524095312031345009191716826365457884515289139100291757306534776758158680733374821527018153710468149495411422539871435801923832653497087353658675252858359509841597167243361323632498265229130368288652053700785018598990065842668397198416806842105642288075193313479104146445393355786546094937237631181710948456817645313537175179499366587838888824473112511879658822063136945677113683450988321818209781687329793186740200512812809967077782696820095794112380804113053383725706993985025920432218252725895506443403761602080547513894424823329564574054770108877941698745930121611060154225805411943490391310666143665745835007788597738089938293787113065473767037163595914255576308989204908829703972754767064617272553917052842946980360189290117043735307166344201773550604592216922470683411872495482546316104148537359303950887143005323907357873756479938082906622061587764049145599389613959003895648079370478728611401066300292586773708592667663908679935464132495446595480390591850205771951565792363277844891640376765560371728401175702865202375514535186770756350467565240863622356986820080268666842400074985248474986654348599786437410813424601905759183575845633290338230854380253019528653023437226914167362483731481706364969792565158659036200979285677567621084301051725368279524030054787399365468296467370910863759382089320943007800542493509598745546338445518828739542148221100345691160243072470729862974434103875384145231171107766619662983272041580989842362974066909921948519042871497034869402693429532336237038771596958812037362773421288546575737847921839475919600132074904067643911541614886329795312859812346118569643479406798417425242901755689315648940105535476775231081990510871237315188215063465286279524825670043274114486944445596336318439828311118805941709764600050750319762090161086987024845052809120792194959996191602663909397038392013055599801348773365511417753309607374779267722690172728572803544301261872013679310882773972076530306877896004164584039396563121744783767728708464758248356976645613895607009227510036062704394039756973750591470871549934566569856566509353555592213138305777122921676440200052614213054214962177746920328182991801687303946919808830470698212148527212154023876263878650123879127996894754989699362101399275284300754830142420023998138091191121731740468492164402239001178053890344359317905343641586283135279040035528542755589292856997809073551570599480823544567890463398753503186750872028965892320736119847268972020767699221189804026008639994389859393880595125334515959293347046009991069563185837326144411264936169760309978172161993356744720899786149576718834286074283093988094656440100920731547396460762847691885617731196356175137376611119807288511135725421633808562563202243264516926195796918686592887362758226093005948148466132697777678777140709875858031483293337158627334984064895153818269571396447056664528146013409119461099188305105849591135583177732425192560701829626553731251376438236744397997513599814736720841464330394013199514755064529957138244769655092060547090011410259068906072221049112745101072213476816605708428283014476011056939981253447812037744560114794427712576065583857289147724795650613246149264150943035186912727552969224108069462077605413511507120028612500862087488473373785891032298708294719738702286306459609886457437368557513091722760256696678437850529498498886698587024306333659854092260225022439659647167724601258013547281751577776170262470179804039987528166969325017441713675498294148671695745709684187259764817906422196306748404094446522893526536547806665614833476200974176451571236733459200203259584681258587216824869465303332257115464843133178749729137426316816211355791994217016387657430923069843369318897732774524202508091089309022309493928687108239436987127910339161422330025369802113336351476371313329651133118585666601938815699313028604751004054308366809582581675246670628299222386653784458382542602249181264187293595407691471996703839185055710539994901158498567377280615155004087315238864345730966849167884788878379799386978755961051686019700738645617133150164131209677564502978695835423693169365625350870517762886390599156231381143018587333768275193863089665561784328749560174833568783056289601290284079539757595408179853058122034308768902956131542942733460536661722968095879263059810270635966741372671504606749499546641750868842753112394136147676936733884436870441879305256490948659358869467706083054857343914590035169364907486808868336255532974416728158027970459170481017424714723539489687125568476570176969091623091613247055021217770324692326329350166082440347997151904635609239416819110391985955799959319677250700966160707394829463141565455076210836933788982172739295346710829598265590770800407946284851353741608391174556805640604540094663092703772229761142559058019059721134414351308125771633024105132744151775047120070762394496684200159857809464082286053969583220565577042596979163328837050887678612813203540450566049708594625995647474536800496935059318836986121498686420619814191897745181705935414672442830077728974136347848050365264533743953915493665412513160784716308961477570070778949900423650373886862965927047257690701114041200839193729869929070313639964870427255706542532447971732673347795043999266973528475382963423337831081204798023225488664630349854875921743999770183641592417265727166356309712492193392263581301462541050439086428605657506885578033112077205893809507282037985450743371054536445310609185347175317989040562930023332643096913250932111512537165063441646470350205459717153690691364501547583748312417071890047148396215797010582668646823905555502959931270773278076215306847491842616550233714773985085528920952679538350813225494979697623486082340732970042006714624633050294579079568389427507106643657178406054826943615628716693443289382701053330621045474750587725103492997579877170208741224262935159615904444155275349911914781732916189218555546500771180068716824654587038703534021515614654377193743462092071183031582863013681442283333618079284618800611997539011352714891012677415053640210235971116153249360567256629209704402881491219618232001945451925367815859449624147927736792235245197095114377622523257331073033425842753667232968523752777837438824490725977409515409524269424544188450522045004710361544092812242063058216069089453596587623733337857353618944631092774473894218205350047289996823394563663163276821505493895574160088543434600494021280855856270287560230090119743106148345540320866586905013219072676691195511143636209081209108511683363574294922409097032776108412758446476618327912940496932692447160193737897123582842490661111852215331761330893679962211600145509019429157317642532627122143960948169607495504277797106781841592966304237776873642280338259230820556687791472181348769235298039567912909479507328839809637272416383696036593739148441083302340712521248830005796366448271978481038367862774354839332335548269747993584859093520474938488115143675282604203954943761881303601048770232684251470035137376717285820018730228037727943672588518858296615526922510686147481649396472571709050323620547147661444061538315814344302336288058415654262568762316712332304436363868687111022521607230479406437505603697558808448407139020759463274976767299375565902368674106732747187277280744134484111325091626841555598017522797418006966431762505629369711357046891748449143146495732897406597448861623440205727774889970464263414912643712302529952849017277056274886226936776021791049159769431246489325897087586473123696175854788248887893666364388214321767796253040875574919603322152884444678830191468244706700259537898413800227024078888004211923304960160850382782069601451316234041797620097626240253544375201294436762183095954799331265776053285164463169089346643386534121234975164140469779125870846637675075993396029620326952318648185321446683897220587613218274771852827986521382198398142881486450716318442699142739246676085764344701019625557989887564858722485666149856272129171132324219821439269382612865164466083688020707754263400039793568809029473850672709171370909458710053106364997607759504885224010204952611861962036708101913908631453440619522058500342378227403604154399873952861703559814349933121087556945123539129139166811394537956132127147190163220260999141046817057319405194990047881870358073217595047286790062226989506162763736479701381546256780086169026383159674334455180286649455307049462011916602913675129624315625764023180419236657179330778482452085480534749313209066374890982213963007948067221975356458450791660622460268630149241465322093096250226310418205704941266140634132012901817474368672987916278696373993093827159750490111727571570438408832904512386875877064320278817909557420490240278640506892858154548826669487420833539337337633485370880203683910363050879679528415320654460739684433932017474930755030962478747296680157855360678432572755178854081579531181669436107680355692336215200179682933659982530475846246194720312459038972746784606424321799985128067312789969448820440778064776732724306856958262446144968671707603134369275016120663074623677860837939181256790915184011134711562866510908026502920026672881543781094373197438948719632436885546247294225288570860243921814597085817196599137741535310759986546840419414637195416422127105790335392161056927776226507578994857233887711537812402561310599419821050390598768614245607708462360339740764176683091208422756383871519194752383876004384040618325904439126276769597755266675541194692374654327769332052085580630576650050873617885694087846719907645370707261884197451862444591187766729993286980001526475268341137610422309008029736765513003408065667190353817957955496724245411047580166735281547268242238959617324226617143806216100758927272141913720315179897275260001340518318197206456035169702858039988821045418355458997401715128027783859370402794096880896517851884726926841825945663378645062710587394175619156797095448405763554517046159139006705869802080328837451189666931008979975841407429693285674325232235044427845818986568678034170394551293160324014454977348497987366898355213583670927903728605760129051062247313955170251437265745056159888586717950631395179141680279466003297539923625938846859510445376043854732105000690203722433819018055609050472641201421000611562980018164731323347587737562172632599996063894921646139988595188545876058724935492815726374484216940909456846123229444482898777734077342760965498186820180892787599363003931882998199571486340752148631155008549582242717181051691815923394508385952495689097422304879457885399842507991804270917218770075392483712086980184549487591396232070760372429120464870351863349748795857889083159315463865039869974785646416624567396010069325119657808495261525156603678327260558811056949461425300957302467651310570748805711484800547753559288271744742051641062231125099417458041948712796186833126969450088802131593913415998215630744830806616525027207206612015006699036058456189819630287150835622835830057453041160907236547861565461037489863993505368087782136611877288864592920957299172585706648844126400546832586966829709485850772767357633875341366178622415692731232337565300772830994867424964115520158808618032462030494853967871171320579550386858853215670530338118646595048661367483864104707302318072708992223691352539232525572252152114120920709576500406619761158893816598570549880936508381745295677573254886337185529900840456113230668273664902673894007330204224426297544495495605712763121662515999763071771103523637170404783172374424706219397387261809008781464549520664239430056921776425690616767316234994524736900672033976940890809796937975279281967077500468827769337194711769069797523916417448472528057770460891057383831296324542481370672060572841856229239441278324810685087237838039115856971806184452692410578609287222587528789255728113358013129127713351777790273974269298941639771490792679065935074149867232208716976674116684878711556507752630893200163751533866681975646513719924265341722204233512014496681043646054051212444116504969455347358451369258988861396230203777931812582428972046132881719608570375015908479592701423696387731119130156792177516703108171778583728036150771015934367945998820775872076397475770998459214086644586588843443498996952319608018112563547213644619559776807767888035665580931174417350154828558733080750296647350564477885536836005222003949947550338995475536976581543909018560032174455157653339522312813459316492997281642080919572486788987034747760787546579139919350970101897642120873898676382535783539148674232321503594385704050696950434757959334389221624084893544455405935883199062611418283186901364307366046323611436591631718021262657191795033796659759456244746340667286549645071958840420945787724494180542197230778301209235693471912725816328082967683355733790910032124107447692153622565775844053277672155378753035706076116839713549021038348198047847314127842414805512151234614112927822435911114173069475540793573096466930658671271262369844299894538225996590848491299494634221762497876391428079242129388710632209916742456862058337216790319447477227797276860184679858376162219704407546419040942220287324794235142754361035513103856417013416403941727454095036997978199862368190138834142089695499691239237123982822227652043859748871959929933702744044265876375187494084709975486751324251815798923382558613415586081547863419171903819908883093524731276943469122124358030808393499017706021822020558069241532586503969917822009211386065427587733255115196042826850906535045942000211039436167884292590866807978086601779274086275851803105667385131897600857585113350420609157313441325647898290044999380199239416953547690567014040147666937896457635303261178298861130285438580176891835932465687898513949170688690884124624718210953095660799156519465518127194501072591299487934293320303255379783710929945759935737141232260376409315413850745946232687087935982482563028120028260309863334817173048780404256939891181937870224810455893288070284015331767949966149767561895325174534812947544783978205310590912456282264218532756509227430387435105208144486083335603872699371447998372804277829613194686877548439224165155111021826457434318125965106923330305321423375203257438254323855821997862199757012626698460662870827722797171684049934097297966219320252604182313149712268852123817771126636741955673375545794078198294721197904016083392336549633594205438635835074212056920361764217530055285388673972533824943781703249108416384513218841515182946687701159710935669046923881807510108724875680607479686874797384938078952615656956945014314425228868575689127016368093018583663279137411850310213275828989570395111654645863244212782337430422599327413961232352344986955072820283981397662046402369982714814858673513380970335254620975997848936678790636879029369045572683903665794713773486020490848180156886373932927962914040401598819229461694593357285372936610218229263989693765724645481253906818330859555173653359162533754531983919518818828505005256434632223124182246306333898419012759849282794552330578985200070050193347389395099519696974959868636639163866077160897435356047019831013859717521142295229657455433775067545858183016628712347997675619480219556151822081038965022439099835819507538238795579235260652188717492753091780831075313870025971827668905221207001615838276330190463564052474232144436278689065552502250612153375655058911609051003903801351705683893458440672326535683193887068529813697180410553062823975105178004081220906740930319013300871042788649894953397280453370581161627817589190591082001790986265823932214171643844886394500676250549426932063285246196363516080703120168776445014698459558656444146212078857051221915153036569467845099408414537914780763466007626499300239207420985207173338871241560092608419470679091035269531910781123848704238576563789876858330296796784540600408564980092868127692283740131704890183608972633197193408205808154873998859984776842530881045161401994071655547506741566604427185581057059265879720309877320250272226647513172233385212741894960248769764030525012925400351020304686431009671332024795595815171236319511304672226804257503401442150338139328133214381160772737379291564380340354489922899251245575845930976305460895435118771066563015069357790641168996089942420703059500852319173731861399000445566991653784078875225600205804023913784396299671950038946544381678102973155890204110528021505342900947223335745831426457337524633584082816763814446730730250626454432909615209981881426607423714710262929886036852504314655020136573641817336289844845532201168543246479968146444839808217645043440770527948957403917817691877777637560477913558924571798166717666100206619499897627311424256505976242810673862180583239872779601273336254603702875066553750256078059305885952280898466479545141060261646814259505688037225705637155494832467854915154409064739811074756850554941909095274834366265148345968363705898763149963110860258849618981054132233845259865960293522098025443189380621175654957133864900974642332255654742392387540536500410353524858275846568740739831914839706913793278622237336468758995763733130479871743049413484245576800359299648083403718094205733542956581526076780995258677156288539761779033240347715963189094821152724391160091564253565592288968731935159104835228763991674546407374232321776469096472074403034446949883634177107111757874352413891936097292830226322381485675608490522354531151022287253937840529540416606595591168533775440752340119651583641696108461111637661081946209708559148572062271307203900127404841702074453847966424148742284488437047105146975793186289879216709709461122356659086145267757275423612261585650008606462933276640555328152472341530258740092509091703675755079862422372267409833917281451750675511145358561252224665273354377745570777346140720031244600903752979655762598948135163933264455121408152447588328379640547062978144372402556955460281981526610877764548019550442775842290270643980572924432876897187889593496933782089115602908830657947104712534067346251469079869191725727929166780318764790517991981719488151641861461282638340979280730344032078001733511548639388190589687918049379360369939292781390441812600282817501804646189649968468155246430240722211445846689994605440847654374261168437506274174007778634956273573718189050886859819729325053700810449204210364238319693421830365258387993405046135478789782092289649434432771784089893741937755594828596420086635340774755121412400734984535894561594348953530363425765915253051907827994063211000390847659740702265041438256125374871303113836666538412974800098290837927148601035374598515044771304550325387979000889543153133345415113140040599152909967235952002458019111984671550505789689091368565537605261654901682298132960503033952728931974657100179037419108265599069056889274860039937230420395130694889268914230646078530839292150229231841311367390379043628726326763734394670319005435459991011241341026288074383466353130470936147351947444461163362481729867643750516090886992908955926284826707628423521780721155679027596063964907700601610911649653466209219322128088143764119136311966070339897637388690043254231531805774291950636561048576543493132642824134480904030150261671376620895300207271023906426992571039065827898232784472034700518278374071230230815811587956292150130578958173984834759383893129098409890063142975286216065009648525290406946940086552974264175844871181228265816547590262073663678344748427379585474299336563776599318899213330682580616499111213084011950999216580993899186077845489096490853382474021045011519082877717591190270682064621838201945936628821394322159963923713277802018480647971221218819192171319221792359875521437245544812341226188315450640489001288188271818113815150612342995401832335285627847924554602844019402744701838246752301060552133036081082433975412806363180929168675164556200814168456902679174674039370354230860994751873742783298693906315849036750440942528623080080057272718543217831589369306420336310803003141657427849500017201276818823208553819676069428263974928093133472857203507315888598221317649338922766267811377481137025037962633610492378294044921588284916123573759043171279202869137650753944996452908708369030934114242387963346734072672113410536260577515362143759767081720086056917194544770077028458735278266787575378598532889025538016595171027521524962617689842306003513425527858883060694421126276691742618366417709955569811489362059543453951636809509360857782263872765338878342987098946816743197583295067377127692903772702132152500769098701712348510176530842775519228466707023085869430082051356995577995267209793055117975166943731815898176303514852620283883828969454474456066489052567877801545431545536457193650446847925369749229067448034313733589194985586301524538286977874808805416897825566748496272495878291540001698891705075808324186155160569427984125750619447293390165648840412818453978220380256411580712728955458165524441612272331175613257718680780247685583035595837737854896827172653932767002495664222810104763803848428471394121960518343012952930859317631653734357409017999845879606504786834775716598037325824655359465154626226758580978271904439898505799575521254378930671209017439127783830273635619004822313090888414384845845456651941455019219095925071288445261334238032450900257102991277599600087830090294115374493490531260047174971358328736637527280830719542061418594021015435237276321350209810443604004576474038566100665243197521092811417124863013972979411951403783945883659173419399619102758788888492225929884092120938337635686490706626953270201725918986548493461117519423048579426677063071952543782923581233665161161367022966547221777686754497161996644583262539250998607624340554647721960756428921488514102547726369936463790262323480530134549876241031369002559979566374004420439724502346085991114604931065226531208812253331485222298807470571659975617017088449119034465887999911289247205341643146383531046355347166881403888451029328126026914752555389613259627571565960705153660741549978586466309806801544058943162678218149656740961933460131976261197398986893889331080224432959961971680580371453644377714328636730079124472977168839083885416008183827682958313562821269700099014272928070402362791977278370493693066399858255496208692678394714092996851049992270285776865847179072245451054736579306611729603456440687731128765169143427579275143292046559000004852143823631963416779205965267851844558573044095976554129499314606828668457507448523862421633465403459655967618189921937678806176795455244253378569247564476387273621484439438321944558690734142878621667947842621279809911987865195784626145879103794805691709641779607359737222007819101952448306435860593861976652323014802451272161562147748389379202978886102633972427164271799337467068166994355601903913601187733085218493771619451331086309872320058974723879168695397931022252498488249094775563500775558769021008019167513370097181932582800936481211408364494018028220413038082656290410289362815198013290564275706708756774414363935838967516943119713543694723099132342699493940774123376412861201798673238840277257094895524767433779881738482703464515890275113236513437840616463632709287523364218631105564181923937963326371412201014143740893857708097070298578729265138634338136524278454667712704028411181953233503065671037092664554282258087372546679982580153450238655194668107624290079361982532255619665318404773799203799210827305315265791129705532946414553709903740169187656660626886807409645458212948602157922227514948745696395802757133230781648144918144241007006120867037121461751459574901087700201090847914924508390744051534666094649126202203688762011665491055851919096719144342733298354031679109599433964720858405035818784316980347875734997469896315610557621512247084671736165478935889520044132122504700327349206229917546363963604751517786400781310932577753224868124250129223754428506412549674952020465534337180655597257351974220361502631733507010522215022336265667109924892430597101570677379796861272071637713725102794328768066484199873476723735323574808716295581833567574155357187099528426076747428890530629819144481018178638891618794780872251353456108484607029523390702757070650143485998167988910977895223368950919137972625684074190065041751836330803814926054136047464403161593496428732108170429398186710993394490910402581327507345157930366777456015358407113754809558302474389580238086467477383580065876084201327815266079108071044429767052209007166599993708052990312677032277282983708560383169555581823265807530913477088052704930013919903721577351596881079328318571834649130524036303612589537291149224422583925820583053967393667076498036176260216029073283167745734347655342803335305675733736441489190292371004885115853169231876162999513215288645605219981946812874424181386203258179690382248051430686297839783494294555949971720158556448238411754798403911758874192000088993448391961579721905273650390778383525749346484135164499239944944823138088139719058007606023812421828564935531342978842177220981851390637491705388615140583102372274181350938298505145302198169359795849437231578656570636141371002725022326057116998941738209589733624923040561846649055552824634045245880228568264494585878655174350300286622967785042545830371119886830608974744937594744278338220697757435223965834313487080742810437666266631306219353707669512823276598874000010427858870528542435739119365402178251464888129611567145386496957272744838032416551307636783258542691195337702064878325745445921319635630338035439034924354181073557488003836978944858770401789650101896999672185841462464744895601722916317363436414416662213503326253699219452747838099659942931738551416054505851890202349961986675265299640459887572912210428983228588323258580951831740669293734049953306485880788775200780107636303256510875790730429612422065087898819231857691985455899251831587221904674339082119355282119151163127978648435196622622071140008599343429415607489815419751716266786363577289478649588256368935433823959191375020933257536243392274176150430385531248475205399242761426525269036429203109473277291118378636301811976495013251267407330088576115467776880496612536866208862736992186536015757198093082663231804656971196983022213959667109454996616837767495617002179244144807947021083064679745882010712968936849388203439166990553245310539541270784073173079356147794250070536954946760749363396469928820458925177725293289515264859124981961995963813214955979897527871745537109744066982005832725451887605097891476739316608639521779065590186337639143555723531802372776495848404578879995948537733490298646750986214151167444861006323863784881310924234586846808206475603538562344249024958584687455645283979816009923428177578438695822012222075336738990079021107443582828965751689522772032834261764505019832228996897894305104691936615826028417499319217485949416637995948876806401811888742852815673401356268051233116997496607587350756430991401218412929404371734047310910333825801068124974252279894386670159482697388041012728371657135214100039508247959749042381284586255969843923328951980691884151248182522641368320985853776657152445025853237979234280491351259324878152763617997216659826289906804270936013480504040489324815347649461871533506690925777365326265322549452701042827540920691085930259774978354769873661254558786926373462700475488498858582782357771488287297057082866096266738391074439028645311939631654171640077523790125112725163100847461040612747447360216398006624434964053106841361048734805698800408149333903445634085068321978163489753450755042900966435114066582777413525633134466183144632291445752909461671820719577589229423705154517395857850791227885979398589342710001458137168580427674056165929081248375031856381875210860137071186116079280476218553677781412124619028151277042281449572921006343918010891613634070474338780090818832888877662096329554057352783639109903045297531455440177374536461645225792960047762150204689714775642479501952963657436174460979925349892104826861326516135405934033634107090700550093202687428582953797616917332228459225978672079562627115562617444951913544552585977012016669236311872910086637267833052430401543504838553180726906303486558404068222355100737544395981312396854472607132822050569747363100851304446153805625111902320147407939019539413037390079867865850907779284338958426779100877893579445036781030988254638971687406217539238337369817161426107880992986638940208540505442155530534934530779210246866927596400791571511902117060938865319161164123339609834550825788080598188931507271826900044226127558145246481890176418331387936093920902106763760071633375226925335574436331029539590275495206640325903507232041084531110490767796039101704088343467106633522798487971357441374317546259674159816848233077177827592536332326988815252880975284432124440586674825639889267907722784135716229576952678440063727546909439670199430204208333139594564738521599248736109270556870736598525211272291014587551206080161368527418094799843360405267409602566937841727372416609064750450468756225858661582283320244546156120296530750976862988036439944628287252438048863525659935262304056359446500895085103020259363837465742260108996824909200502501448600259532339102934564480840259265309254135001630183501203343918586902561057218725323335905388974232699286465549784567811451287661914120356733216099233253323948313554754233774475647628910373759972315569463529446397977958163110124488169029487222203013358799784261303337257388875138564492225149032849739592435249435471489591413998443066297014904537008594336457695961141114142759503406708584428261236623326379576172689474399649780173251616604941624040945185075397352458145775387839033913582915106486085734787133934283373265952449753124611068949692254963874760095554665307217630694863318233759565527031319869341517010007139171614594894713050562833504165398467242447022443515699652075200418423856892137444773900881879272334671704258191648437378693676966071914445855358030129424452898991007585879784862790965925204535730736134290456453275290578938348998856754043586677458819712065567265802058877401276911494641837309099678326788191872547717192651185425516092041020460582646372068302439940420576662273294523059057923414374951965974728025252903139663936926755632611547242978429299545555606002831376451387309609784580646725880632037740732783936962733053385243548590352638195231958170699701530050518506738306842549622737181470256998240241728489265083130394733583534574466780193466657507026445110509424063447135442343341647560062867770135879055294474366957822971903156637354494095286555851113014268845402024373542515276852942731481969252933002450554989968062302017094106548560962084077438675012758142971775384478345991985880801857534729411994600628523534774575789605787766261436107636056449300825869499540003629779711279825325136933662199043379173910273865702747514140282289123215856514889209052629084393570350988024299228332201786138800363019788562663623761345246716544524966067965703310684592444590165680895019501236992709169291205756196306635989666510626021407235152014239055132928065795394512964597285479505350279221277181653627324442413779327774837674963845038531286753022279049510159992892370556800694302741107484534263409781491582896099265559046185983581169928932634532528461618494029187758161026893583185320223674315163529733346492118905216608638949588422876917108737228239736770877321807213347034601079475591846633024138477536483798676954830476368485858701973963920708785154497228746091049595660577507703462342269265804888964734571189051603110286699119592954748362253105157036366072636283915408323422369376727586167389680749383179329089145138522138359695231034666625205744137518333737846369775847576943809764610186375485407370215216323320427798389474812215940719122949884782071700297131116757764845514991843035282497664131498360294010976437103429053702602718308799757946697490054163476707955065845574389428557826023219016259668452190042738761011063862222496632652040179102554014238464097963502119204315272376740448948440953284542329508981895799654242454241173876784626935952317741645935386934771379666963625625778036543424220666893022791169827132229588292186192691360565525012739647067351093310063723805436784665775252099513582934508971799364046292363617958873939164145165221784974757830315230085287920464931412513518942357006469707792326297470536336358811278240394445370113042178234962464590214097356771610137445327774733247858093477852670796685293302703966795634877661777709700369938723363207274735570488785044614784563262894971208371816255266271304266356140884551292573588802491024328216746889456256772672162512067632288141480132443124421768321015816743761386364587759553606727005019135656457322462933297122280147251556405397487018924356688083595801641613292742946940868716618351598203011471884332400419718277288246285283288796809246369667703363058118463827991170477142818588055664987314938137176350812114555395309550821315453215585003657991218452663978511284317709883373212644238796779837660352124552888901727231320288656998381022827265579359833979357550409614864441139905149646403590324989952675611476487269241168070974555421984180326316376056718351528326308990108224795309545250376084366646904366132700465586434794407149025586041000117650067054580048255990775644432181277447702872698015354019639787909968604227196602694550618068847879784922721121261064866214062761311976742559610132921583686331513566971733520476467648398192626232731630414196878084283477315569339513880072247605672564862846426252867216046142485600468617303253918347271689703600316194184887717897723660149933505685332573527092399886918541044993653387794665307460382276192527623867477678273944837481342125485896174393152029565036395925351888013319544221442576714579375975370355101200215153015494084070179073043211476441337259021621070804726903217724581851667374334225874720615363812624225666579905372819922687735554029847572606618812712929776357569392187234329380143795262046719114827481152348907008790639394977333855881438966305417862089302030635255512270499140280754920152861473183507520509518634741472296281368465596539580564530605619587925177861322238236418084809805586591658366199255275357522268917378711502596556136669464147587106612678495472754941987413392465380532687862920617546112192498925846337075503014362315436311845480095262208118120142003863256161002910452847521178259239492908211786274433790400076015264674209892625057919003812305387137520462708418660692114499820028689177759339274575809439339800532779652882751255983621134529419955077018875201493045181449548279055940237007109863064483034122215044979120461275943800982451892990959735465648055714762086677802026243333931325737895025384318803813440384496153865222135700359203804197454975002306800267859810534378149794561433973822987350462368713690357708905450647528568051907590106832406436512049364454270254122575226728620485119371053926213936133352372421427916348303457196811894980738660183153200445354992853929701749237677989947681822402185832074988664501721557497782106380390963261747204637626483885493654043767242022075607171661828089377417515760964446999759281302679208851151078669599074567033855007484243758872957022330019290962177266841300290588555198122139867466231248919134085670553348555194164850160466108675200653372157071797834541385545082874265184674709114830265014330434835890723070361174922005043243362443879511313743181183555731702651617821568519288377669917194319585043336462711654028458511853460614196865296943183782778085195741674152342790174138347683780688435906334119722211168878273904392497633597509222085274412299715295379987828043289452343366006336890827145441662841249772678060316728304716827152512287947464705154333566904561228736437969086762761326924058885271970274412302938976211763200197880329796544708337875390895145856329246089112684886621464576196521020867686383219302580960239101725431108823095479019961668218202711688976194443950178649822619280280417983439219145934711630302452647715503029219534108560265015465486652100709480144757813351516925411363091788157105500735516801130986603309605119517619368497005936544238759729960001022460428127643813054335086755839503338618498503764872529946831427874904389677277535283357251578183531060831905238779381100738786767809590513759178193932269419997656216920556875071771651202586734262120059416784916670616853008090802551197031043888488736281103759101722811883174279567136928292064150454287025126894018100632351544407897976759851955549173975544776448531441750917069829484057349172593680165262308882455795474662627584268571256825556785138056618307135595667278419168782492856503591455364894559262297031944491983441850447533326898361717840469624446849737926492216435810491202060036359137852348022935766287725905061136599158529571293213340343711710491005694917242940585075038468594460661914004733389291652079440393173593823414131063329632912256933811674715125838662382590552987737761030009325273251873328473156757775651199977350747196228733701232861721870724943276506673826828658817221010668021365106824492393991461752261184498080232538677732243713871578897700036034822120133740589788289377765639078910407455166882734240204735771699313032806469052877084592242481756775962115949577812581861833346176275193223594078744851363118165045527368908394745191859788965439737536610435074768048099867349445779221292208104911420982723105690764405481818493741750098405517021446044471873176500127088039619757564549836429617032062961524381225618723407018544141578335183342682129887822940394503907100439517283486277214479141061635375441253856171982235957195540725113869810084353490309277049500781855255868006970110375029301932512716647973842794983071720073963105783721990972778408175958021336485559493308563675782603075529834360236626496234395839880259660661378165958343604551742026629683022047841587722043040957770272890042404647039452202895328727467400874958426642317096950654555142719070091567063801368843900724726967994807004520133712113599148854235492659148785733605086558653689649034078096133625133841468026281881297433043155830805226652440532477639722109373919693047794691904687727120924101329219025550738183563481800864531785454690872141117038828239208229850742590497971807857173785333344786235357473430858925101465456517182373529040335119919715655463304118781243798200422895220117899617056438654911374574219447060291790933640461363512329905755753186541627108194596082723377307122688785511800978481702004298331091994629852510758705094140030430448995274071878089488275401087883255008466879585651834812586113080270820631493241298344823296725692488208712880916118047762824092135279792531767619728722204411617501303923032267510049002085163275270346830906810957478873581641546288396332365886683325914368977779509456623159346686818058322469573506532366809285590267334050036192527524967593830082971859626181851134138039202498572955576341638680092088926478600653504455632927149926079024893081479932603399954923723193806577711471897015741808202229619768805204220984591367712984143801550305745343029474089541934540537756147898171232671578795657880764623201475089184687896006274563392320915946217296806234623151084188393071718577232210338746445667467762452190939111694488939057799717984821514769826618728079014992108297695619545371524062283210946368099418406981617234653138019804127060730330286205672238066090230921169088618178299487060388720745400520261916754731307121104111301563997427820386364178355643643653848540241129880184181900239625538321257148573439689343021146932354246866559939357152089130178683606939809016876337526796391506874437644676388730898340228298020601164103994048200999772747092077526822260584098310307617095197687386147032561212366509156792799007798975877715101234313585571129422367893224309625998735494894531623239585782896953789076014062807237737983815920627924797305640190544957758123657365786442800658011526023676471669854069611719614174772920070775581950913828682552053750014317776572807776177832330677172987283967730601929863666778649100055718961573906242766998749381622448476596026047837644812568232994981932418175193450516316712590727391490596315282904244455548563776509909768196037822996016138967770321892703783830922752933105821147992952219113854977574116429609289117996643841080940736967743141710903541118363980565519968525007394881943032733533627032921420472568343471892202283084771664107485715137626922911805564636732424594048530709166546920254542836518860283470104309866480396799769349597631725703603442292611789229628754422210449016916819999384716665931658123033262067462960190503179560274796483614016797305038758462138389455462228974056964602502794192899733291559456471045115938704975660648625054956144817504632958350752561622173980813780274979076501928769572141165888554816455712671260674302834614193925707959989029072071823658006898586795533046364227808401245134693861914856337583371675055912032767804215514216452956401850187164075441385329513098514076220949941243464417341767558704544506540720810907360600616704801012297984094232962373364877901956052889956647689997984682789412358009205264042258411909039647056985521146989865755603903503352309194849191303634940415464450494632666803457217112098717506094357565358425136041113199508604732556107835557110093318674036119737136118069851660431337718071794158357389613414028788930543170694836611542041932056906673449059564365310653822785790703640109118243913411829602398487582580955392604402152195623242416644392787189079574723094194113722959215788774252208651018227227722997577494944942247423639781500662906508688190648587320995859880833865907049962341693273467706780593706131119342103509174991152365540701779926723198831777685010446037098489789166830430729827072959962327846808590728357705862974241184633990103025520651181384296832062950314507671079942110610248348385249062737279643573405461027446251654676565941376374535021026045554587837910526297904626462126918918501276756346268458136746008285237031333697994562495644343669547097648603184827005834441686368184278878735759690914209979535105357451869046448178480067637659832007429997245411200081875045581574771562862810902644745453171768705538809490669937452979689125920828469143413229155623213222722448279028978401334766320849026462609360139413042647990024011052286025917844231446527763828001332853925214100998284749517316319651772999883665569739427026081315111654517200003577843585578433464516815058727190933066251751427021774479677917751499395793044885703514225624746376374888972813238081548115889690653662967641721889970107176258867926418019208577218192593898731454197848935399486175692249681931937621063300159839180457845972384956789109290169710971600152394399815958904733187336445616450926472483881980945260483128825153915731413674774870238481665180254604971805241620194484863076313152704719419987426000160793733229874307539796420192031485090798583330546551135565647424216162163155313848615441478767111891276845807953330388550546328253541707633357775559914945826635772403582134861689520510524036962734599183628630836642243561584427377655556188782324879029065531589678229957469976949419904529005473679520371396617635361809195069554050361545781572759476498779081215572180973274423268894033370141941102284278512739272827786092351271868358181782718541675992156428714805046281463349917088589959729528591122464720746915177771218611234759124382165201910900188550930048450122885224418219254885321904380055891262506424457595073865625652050540501443106665100581969328113475767172024714596607518921165823620904276172597663162666691700392703183838084432777146168218426212465211641335824508707087133496918020901498490761876089412803521529727389396617642684484779254433407508440678722289784667567858552243897779330758202576911531515491364074083699855293234382579859348810325407838684644064009106095739802299901354724828084895295535800331843884456004650060883841695909480174765508516444343005944566059488582243010070134111370749004822557846318152233640760123857970884254152453674663554788018625141370390030241524530222025763227002829461034556375988369066654870627301972434671861433888652300183405178261404705379614161315182570986697407417492178478931883644914633942123497799909403294384160259646781747524603141957556031008579002633608244603500121375483622206559070872290177215989258033633276222424064739906338569130501479171478095088310824215911595596863298410977239129234229858445032622931084303680027409353703213704569069121152880470852073113142272289144478159392267466861652266868080660423719629091458036792622034337564613424311718315950803552314055137247605912807234090430005031163514726593769111200967038269204877094312275255162682326880665738181891322727855037244016312570758073178954199218856358549643337994456449802573169924884369044727861892438548252914392102441405992910435820501239354156468982228489148820562299861688637685022930964069781991868576981598737348823978116494185353653663167576726262477141555592458348683897409550079849236727567148709066893002307264721757346517275016013370154474767708034041059535643747965167324346210102278457796589133404582296388179869368629045571533418353227861364030725524333443512549996460013169649883298496919701545491337064266154305353923688367159725109976287325455235493955101160029148061520719858876085658528075392846684107498324180361861422527423408469066857670625991087353901060476819321681267198806046915769884603487748923026308480327760696505765796437997352912004935227265325625924677592613802983546543836809535750519086809233400209023405655063218507912909629213156211642060058921889843408126610106267391960237041978211404912554644811170618661866574352623248366178156803468961689293953270356797734560070985345129465986400776315822094057148397719670167807344136858748953016825202532176070646972809611221473363107677090711540050916717112481386804313209932648028969675520955071341663391323412817801080075788512241885143689343608040630984794028961373527585719054329577754741809808622550656755353943415123981475694384593769277845755355049798991925944955258559949321460466978467145929265437265296370390364724518417369019339651962693810778173702585481488602044938337601369148524660751799206947493507739480549598073781141118389835959730523779830646747195927800454196091087812377144573669070030822215511963272637532545707702020149315776368889846858010951612324555302726355318871983290078994109727831764195834476019538695875523005702059035610329253313512161175346508116301564153127673161814409847446890102958872372881048513121294567606457290381549861472829770301428821985335804780719495466811040094704292955614016883405651356917512049012334572183391763204096559279733778535410135905952318847007931385073797650776615077804505418546442164971663866016167377067830627635978226543839191222056172976443257751905615520656572858045754136681657461872605022331489826268577667650764212517267197312651815452253386661302480358462878430486350113242315441677192352549913506876935861585177321854071374838130989858322693008731842412185936449438483207623530502047773173462884293335644077262911667577515464798892535558934446422229887255966222355214144437817721428661519090077028378117277704436854448901065352435802958507474694819116402084219842425986877876511514023903975757837345177052915444736027804275886117208076965244451382881527604202140463459890270069383150881624917788304940031671614299568633025913122468474209631319959536538575096132658684363462604582585359879813111070839708045303781766526823993840274125389487122110320727393424590470505860144987485275423961191759058114789778634779057644867971620838490867665984720203502775467184289259853144724480016115626716932026395091985268868077310765567705976847050422629345803322364559269601675358306774460285760048235522270958324691674594114986535902781354513444810227031595397542070212586148086546491862887061114340297740563027700911508662461216640047338631531657605524878925905081421193014579576526441768776692773227109023541441176550801078436680602427437033254566360636812608103644049850942485839657678997507621980914438413433037483494651840299440861935020071219059254247537499130751364827121538555328046780888189541182737049534166842938138525670038744457409548755259869280288632114114929403880881538026511767913489323375307228297919211337959924638216189936545298596155638875320900529463385798939734683723359115109952885386110871303041467413476504436783103750413616296702860908824028060119927707449417522513469410962010894272415188850556492369156321000416329908283464329469565391729315888646796500388545603520104642730610781679659420410565887392436471566689659885433745752675880027091943292048522372357485705896035302938518500914808908135187271088534536972395365970013409311643987480985694973044678811133545345644281553206971938018246045588057478463511099995281446618893381413912402119285154074730592727059691341106248546627779437854362596928597423502429499480252001462187020658353558030311412142688200374169099838698528584944590068950904436348559130690506040641609211331653806218187791087646311858439769411608350190396752065027968808172845137388978884955838003593088934970785366887211081787158409587631099237445046195821181490754509388015584983840362587953264366689582165750813329332207013327754601585269729434943927997703846389860555771407010673968540178609746157724954234808521174376608051934463119624755579255011090619959800936501892141510312601243027613470042840597086725871282176896300832426900750270462382413271826210868560779637710336078608873101382277477819752647411216765425694313381646506831246915134606331135406442786514227250492598409110823477135051616894744066692631724152799218524849494818233579611041260959604579068609385160087498302940868992362262996224265381669936443993533204586344614315946958380662964463901454107908749967008432819898598128004470112637748948785155170631549123244392310918227615240335140630223168768167926833953907687929054220345405336683743895107127152217857631968721943097531606239626276879639920037428185132225300985221612163090874791792788065321794966767808839098405716864176422495579607557062487489864386513570228856918085712732171243003608569700795098345355447306803458912537368316497864585541483128522049257817751938372700750752889740348872976181805054375573359721675208326159855319747156819199532995514035372746419846699186125805647806859627196954925320796987344831058733424127042723819987406882446846664469963442471018585713618119110043482151239268315854146534532301957159561172275666260508231842726952044580989480118672649894189957502121526692083883196069540774504475392650145197873120184126477215491934883255552995434503328282877025983494614486312351985439843572334223136785196112467080757681042406325985409477214034199235427062035750399089831356846924111535144437235484564606311260978002057447483243467606594674969139176234689676565079520516214242928326643863041931126041529299313003701112162768127410283020712475476108067313014584656686230731663266630221171817453436219884828894783126786928254063618283308619121110459475228880513275941920327084419733767090208095620632361570170945316632414006045427728339396431779456449766807855280955783209707200418670782926631373527446507853260537554124670319922816980570187567852210322104605673710983587200883438584012631146753093003558186021672450266490615226172685568842871530333059626879183633268575287468297340593262256157971073791980127375119023237747280056660855980146898292309864098494047163816271049012859189770093495874041731050865742061682415256129278661957237239860881964036018245884296885286483778934751782805833570033974916244509659915117423310725368693224680554343365363263443963369201719689371634644740725062042531716433822538934365461863596388863143008205049800190379685886840398241969402751803914432618973439309454198161038414094962147779299189525572720212576825869645551631970586457920119434493029706876008181854635730901068452783913111800200139957033030635467981883280403287586131839447417321596417272318429321169888396860768864272127367438422702828745466468612641483309056249624832596459530943098866738371431013175208573832924404186526887055378623944595826864956485376025089462802280334118509053768244059126382606991389108832623092062636227767621539247775868365305141866221901124898204117719932460559639924238749267364045410823784639860106432196871657883327645069111823914940612567402523259747963324791254093145607871757092793386780048771531810023825898278066458677001043866273246231210393848203841109056611882443675836486109539527781806654552149348592533643606660946114963255927974341552261909705658747756700012115122246940913057297849798254552813725823228452446056978302249015154396591106724876346453835418916632641392971986288684919592436083426118258680194670763983490334094077225284631787650487038227912846262832517483133667369991722653320169850145341631582221006259080126979911649298655404254523045119373276667192161648771577165981337544506587165402516998410525968971679262552296537774705780396431223841568714212483250757195918975667668809627444192563225088714333509657398583486299545337742792423839749807752597445327171493491284785635359724946376929374807464225301177244626797171791582782197481038829779768149964606741885778877557016338879292829312590066033523721354212860193189200058009054507877307641073594837008755708357290205150012498538354497068000098476029950216138791009541751324622995088892548184330929458093356272821375270114985947105594625848338494271692003343661623215176584155256868752755394699061597355922266000602039484662277399875961417267650879600794548239385638790709571355769575962773327181618190778645447442001569169331530556704525359655615286076389174061336736675082940598305590958977879711646126489334855010907390178184786735080877090639311435914479856854793182901882326636783164463612680504726884889176608688594328100742497744826596945929373333777691321557305774322661659152109703913617397599777238953732946751259568525675154349838465240856281683448345971465509369899202221038719277684487433669122757480607920501656121681953481288869849782920700888499791899025674955952418495851778662556507044350069109524151643109646586459667806947108041881362441286165712632090639645242882093788217146695039125724111583406299672152433256380131627496246333995258551925005386290284276572121857986601582063451478394701787323452556668771082985945235136022435335145315544528869766862756479207434445791208056539434009467279313681231828722188860952095516131700491333973127109048218712982751245243972126042721968138037236963884826724660413774805282242173271373665554254460529848643894220309261468640427285568865524211678412564191309304964960997244323682893761503497771078294990646033275272762986039310033232944103423068668129178003213626037376963806887135310926803713907125227126601657672680537192570190042336345175062763280235805977629952134138915791781578922137975805551879143654333506455468761297518607203433304144673961727303615887013991672005429625234835228659424011710815807965669754158550121199032782747703847197153414281816550686852916931512255388245562410839136159869661647165400164135201143900236608665068597273734493626929947482620466082971826953304854195367840784346944780731409541290667056561988583489502218437395811329272001175086948230475534384674858870008241138157922201929907192085734798204308042947904498210514776128083019891890377147121208523961467288365176093718058956121539478783638966124182626583093135249705773924185661954552496722111366790468873736272507313263256936673710117649529389998455716642076279128801091571064341769734806567379977470848314013633755217896271387493769920375552972171092151061212192886087834063368773235653846131566219461485523659526004130945338895806002833228341572857364025808512392602832333256157661208504169283865136564033331096872113720003689444405869950006169670761616637039444563748884611073914497143826552209914842427262865668909118839744131038084666129214581036893516795755346025739667069189825384092267675819353443915004536002893295362028181900566355098503544782536278747200374146611045973130341811875888540489221033482556732437765964741221514550380613547309497632194037635046775542715779828086778689815182484137893196075329136911379073139229823948225366602982792099188352940379362762642785964501202269754883064139673185858071401615981718212876064587578685058919743766833181925563040949521423901005338847891210194891668307961025961036579913585537268722852993808967055815009642822532695929783615172915413322537884171247041545900886340448858020817026340231201977462497600895094516923464894376643400207328479399579773123886897406787077666611978070657956154804010979591192022697018999726215204138590363220184893026876983115666021830218290049134751219092384659909882964349358435116865991496264403043985877746656267723717553800730968684504587481658843945330226937066056500114983980236223699055185658818021677412532519737548142096910214341407328755373598882026083825055358268135514895781948257648430318565978571384011463941610187727130146053355970155471309758182643714423673075283014338877816313967851315093486147443058175672724186673620509732894238096267857951840077701423942022055863290240827987495624907389965809529389964798654300467250649606779754022586155425322612528645160614219175957193347829393913539753796354359588349468730276935130612683910634125091981174505548125795194413280951132705935282626894303812422402927851491965666411071394715191796687528647610140909884107507928941370645524255319728583245577135094455648985354323880618935215492084930528758310928167198612412646436815940237367493590355750376922209984907346959889740230821395919123874436090441528663030510296111228775710504512773942461132199166667960703382546748203921103963685247404085632077543594388121797644371983440445397412198392935596293366241178380190319478036904051588395899458301917917483395538022388873795300516229197418046636477825062636036924388888710741849478244443759802999214145643458180552768022059809734262799621057014523576815191676773983919304064550846355892042875260270766079728014550495711770284146643338502749433635535420684640179761980722801855685330760263800017909902903427206073104313638676073148679626616654246111925546111830891816737359740637886574889164821947243172240501138940265165823601364428341747492633916614756500349214196225573364931604211000155424659025493174403040168063968178317165605189396320912728378061764194695772424140836874890120727922301379314550273215191451237416427955339620051000336033862998307694435445764759249366033519662252854900535974717745158771039109316319930151726044464624555760892063312924164726678935175271942814412867805803365389191738534837846125103618547998271041337564575630723240435051262091411408345027987321325619222894709478596008346141026803250595502099031144276417232816642688110771402847974467833055352404597555041967570569675297085792645321511043864826816317853042345176974990036088173831802179131454293993896916790047498599025345693030287150915567004632967203152055972352745098134951021747011989907490783482244917181653136265903947411527045149670593357028927988508411778203901025887805860569374120811077500316921372096441533815275941186998501613707825350565268153000586703634152709058132391062887937303047260279503367681331375141822507770126134915916442165430724518921217104980012495825779551152549293938806767931375039218402070974882437600423692097907508601507910977207520999767683304045054016596417488234299430878493510576043895162707975467514552358681284164524487219844704444704388799744822709744696328086535089452667623546674850818481201519053540547960163787632508479509834638032196112047916623957402289655672022509585680201216190782920859290516515215148685567554774177889193322968914516404694745209908170361549237253139154227417232469854771680806052084627183928210909062754180616540639305799912637518875386323210381685945998666401551617717998250870167605936520108370672161088330980843452718979978792892983375052495982518918664817578020123929460619418923770550643030792363656673964027418844195335645939839370765982690377920456528254959811445090269225120979365012649953543720086167405251898446794439969440219781751316229272640170421025673247923832206051724184158223213664879824109448650326318637087226909260610891054608224207444229236862811169600055907918566864329118001169740163891891054406013025270661400293520754882624561038262498037422873303724498169561785464138002456021233672153043065037454709000773140737040684209512227056322910237788964264798909256918385291511408866594067494600501272424028958413311127453067098092995282400811267201532423128313288298293873649944160634827926472679062830774654066513102516353200776643991242567655184131212480956640236671375889364939217972416325606324732178670128459402858977601711807009250212251334804937625048432710920427882119636092584474081086168340354446820645838282447047657436995960899614782034032435818422676458254997921468021555972734257956306862113970498989804719204697058429086834664061369603129217486402914272165231290262192509025621441456382294473967262815588517389773231371719953708034059379748484461583672792744242303947330931822273557103508323686656173542343142497407472766374709373547741384110480430972786718083898290327229364964343163707171239408730056882452527840450521593980156887337174234480545529420535646346483831380156142447281225094070580296349035261711713566824597375004449179863528978327290397257334809235799721996098526075654799544716763814643588167528224291012247962056948506439626477391056335110035113634166131736314885762635001197940217824891970286963129309342209418532633559819737926782552737754195600458683537714254812063448046732693110889681543423828468603784428026451866529165860865900278197280188713916932645426099537940404499040674323232047642320049554407639583932973029629125112314173623779601388779601144825122302138941462891418291009267358825380654512494634747680721011692306626239310453277082031916458756550518944045747662477481987688974367084190343388811433371105979281000442820503507229257449857165654769627902599064881277895410792645672294137489733581393811698508909372053974688403012318888006627018340568063255664179101909967397614971257295883340472022183929670042614210043558973444773614176299503495809625519324600987559874037667962495783907258806275962869975993545569529580165003425401757712977779867432012102707390033248683868650961670059802934203156230916249117445667062234774902209534460460760119953437302883092667139490109396317259595375024349457458860728020573448546908881682019844573043311291944195581461434399717759217189913464607804554286553966312631677378995891637431240826465424095189807476399985273174494666383618642445374200205240388952365136831855178237116734665999057041259894840350033296920126788567462141851302996788521639580558772673539129531083828172929132487107544556267828301549406088350124090636161812288468113094313130879607760928673500869900485200649005212832929256887665941512205096522184017179997146880793743815048118147103370618820049972895766228042668528865800093322422962946075659636718729400789593070795542576630353421113226942410632635693399965301514414580370947570494343794337694946743985316415307383629575945114894433040484317970572458506895789948025131588899040756716993432819422952355543966544378748186621269913944556997852527818183740236020260388605562612088337797673019333062264760756333326952080935094870556793269483452874158676730009590378167905433967383392335451429322863590854237374694475617977663655949759271466510630932104920018427008984519389662935591585785838215416806021824815742456825030580861980494999738318287935023506195559425607625320955609497348349952397372691084400403551321603939208033669969642004914912937831860308690401749772507182848622418242749592279531995543050585622565428452361861511513890156960981221886124760953072459868273704229860598482296895512756324818531347931620269737527971724892288345648276206244930772330951920908836336283683406560601475758439016508397220611550764243859707811938679046928216166397100951471352309682019224603153455044943782324521445942558341136665007723262184780958664771996416647406577007732506262173555845130036928360059570572958151127589244599409547153735787778109917136386371394051285706935445889856545617191692523881552042499800398544620103241612747882614216136651104643218524620221323444395411474709110834655554612772398747034670458271657880717108496140326943916488661792613905569496626087506518484129813330393390306196476068040234412498547462399421689037772225236853475796898998577117855648009548533926824026514084930048979532832654686364497612572889796316468855551966559231623499671767487806882496254117248528111700831008787451559072716312527122334453650029750051071791433556142976908162543397912729688989733808080399894472583906896781751740100797446026698436959842862517202553460418334270566430839188585903590466684096693866673257059731425322354183075202471129122527891393430764159124211024958546682485521202645460087233988740738494534361688872105976291308947004400961273296659090253045034834983408055807579079267253272053672945972178564767541370623905660657143779109208507084581050742419138095358523382725922211437562624247791042585731274661982101608358620207445461675374901167228619268783361626707955001390973693702755912651647038180301844561303162478976509632813087955951479101871221066318361167929414947852298966759655680423588886147010104179045701232999976072651562279035161184940453259230071021103658783997919448078784127239394711119165961915916227581133839724746459530363538654168525202246173380248999988500541035199403742951082707477025151672430164832841778847271996174432964827184767617788301769165652797268726693215551981257635830698172827583668646601849252809176558152066411039593051131616263668649550986221376169523395956545460985391814462843678618518352036635856748424826109214129597124164366027906950557371783801368780263535601369350014298810822604807488304524705371011689537758877909727091973452913333083440999807083076336828141620099919487862699693372862560198201362202200619894548126874638412093893159652097250848803539036188873185973603508195453238581169952817428360468430534805761454230409465067303258365961658296272696469543402771048376950946835745790911168286061353889137523375946956370652530981165297307244883572505329238278048839293347645679041927283871635584787534956146380474416258246172261321842225269703696075634444673054372075793765623401889200301127191366675642483050968737457617423041663838171890598841673434486887052371672279773744182931304699735307185539969703142967667791265035411979376236450716069535196883601762231615885219174992813440166959404064189911765979020764653479718536321322524839601284367249688812269232650116287437801981497940753844161835426944731825998838316225883352064431038614173429375958844119270025695040132338963296434603319195922099169254873616575513214646396717206287006954316047579518733760398068689634000892002776792961011740507589841004932012822435808418809220648956012727699233702069378274952543845384636458223046491655833012464553713977776040934317016878211120667849700351108939223332853957350167989467925692482970194491134082868674426306588631547398016438229231124397672491455048998057857020884305196742302661624531569801360179170956368387330302924695767247840532389973868221765007160336078263436620965973616595834624948325215461737633696191024080362444625238854506813634987558344462148834838993928932269451671710291623687307450101494663487243891923355247780455540986502828033594985906525873431464493217717314105298770494922396221281307722729153210789643754878310938625235143906327655404420773699089924720029488856599264221794268146244174016605472712001821986003669155676737623465611195346801458085565035771466353926376880972008625244994615898755593418405932634044331352307257545091220262302724804452748129373980730662792933732617468629306555773380199819176462093779775117862248228057577202254052003004671601363872514068198561371765692640409304935999582917356469999556525590774990519572619375636411754031414791836775906766413993877123152520548197886835647464300159656507702937015409117278568300264282768042524333187713318642806409178889918320862176024064204547320850690202693314487083435887528718737476113503330224734229788878636103367807632548482394652018872212229135383934677253280777493662919849134439478101155383829451842708527120382819602137186042093628797247844593881901961975057665587540523442057392286037994932532510917604699977294644515757973454310301887788559739620644991723039724763407669330900080826055452644246630027929189896158070650645130513607117751486333069200437359193542217116470001651747760537035391784222240848133041000301703037416745224319299385212698651463655200649218386732151206946573813416851827971928923400001030517216602737594581995572997930271841982741526428761841624348846572531899013248427414886574767963388032219874407455006407877106397281315400839589428586108077989225385795755733156247527994502014667768383193002156422550093595324141452013431580973078704880952473670104524905879482469223168158328289366574940034108165700681133796568287984351401561962320652937668222312599178515195389940357270677768993416791720138214641744422176808875355312135823026012247823162376468820380129010976392961631691677390228553747144852274504698001162169772580792367217986498855744254626243521901106543679848938701895627072627169856362264655164696763277423010439017188440055345063615462722953928591931664862661697521779505636063984825785715842989993932387145769159654582898272765189030503055946158976604394515860320208647964804006250201911465517469464703404544035497471848190954929862932713373566952308268313685975148526049095089385991158147856959230091151251876940308719223205364135097768375600674940305010664574619746577417158648007108674383388619675265976517361476736866644641561929962093673997663347956605522684238541919343389691275442299429972929309330919488654381880497779755376178879385321764396610727744930559774553854151107297969990782452299070559493709367270403739634132842449855929466619602854412533908055126559577376273237073902994456582258830053354038538061031951369073828767936758597646158630718197627529849303368608544634349118574896306038014015552972144541418642885272183707725349902705057993923791392864063506980608207149727344283255140372265460317440371911313036909010062369288125975151162923890609932325516638182388101123035148310607079224328663401725167591032349589961533910873680936425845611842304799247708657005162193280163956261816015137060646450499756057232754140329302215234275226527509736025905384451966620301972906141978330231381413069938978377651790898412142240987934541719680024503401030227400188829870004195976926834217976610459295292703933034802781846824203689035286250422629391386311510113595344760988397768349394252090276628647313995750501871977489077464176270629438397862399071377756385505265770320382154919817952299685398847987381848239557556285935507957066292535043555610755783041049866095270890651652169121671830739041973709172968648921843577375760562034791259384216697499444821580088051773403764606281017251610328060095217497349300318648147393580257885141640217590442838806802607395909795176982926556050788134490338749980459129789909561868261536778818531217043097132999683050741884476842713024169408890308204127897422258285517922138414731790282746108942599224635721898391493607867403459737951652946495319734471457718132959111430016521716318992563747108638188106631451096982481398842724923984754711908720179494774190601565908460759882510561213043953379803451507015159887877319519243484922841582412544784086508453394833565497496547087495766162072428820221834744038811290766953771068275370635178067768246465506831393769437046441724312685650616634151987893247086383163609880499364348532149209326044605206318728167769461143639420080702458729341851320341823805102430857143470327067119505041340251944897617775680045873959404755312375119167696852412355864107640489585215000487039267081184547439777829526671460325478128294928908086416802390933111874466630167402862995039955511653995051698321692335999312155153094742969402086720452934529055030216720862596918324658757597221769816353703256890588567699083959154979396226564639350397516054546093469999797470406771026791097377973957119635529413055523092229195500291296433804008499812778275847127519953046854008340686155143840687762911252363384239430161159405453366953281825274166464132524880381759937640723415785619605020915788905405218993078642757543214264280251023538152791433802180289046039241263069969767258912562549269021590588562603699920120353240993555462582022149727216270350618138825436371064646435676412563383617326127020766474883990845366232089484035285199811095750474444147129846794665001872453767010350436350379588629030313993649443469240331428644343117504419785428746158919293742812327961118185729111351543781086093086516516865433782932695471748659268373511159915849032289244291550151818087103685352837929758218925749384194220283659917599214287473974156906827001954638271573883990201535644686420713826000189150806712741859894192633070578969434147631871322473331243896668052909517088683224668311978946582758114244644830325658555754942027229083537096622019743342302478597420913713478053236143068609925942563991865591625930187567025311780751504908353285790956104894073494536023809190785265886953551993189676266009270002314973581819184242741843158715078677738209251344129087335155826369039336714844529078821773951675962690264964795056001177390071923595847013178931910567684375951349949171540517579290396636487538092104171796449808005307608161608939185352422010582913657647144355313851827566020044896488476523742832145007667092889615752120207003934387475998406090896710037577509532701406410833282443771318302507403240293959473193361319606577631968400333792567846919839285298807256635899209282713930620474362360498724040561575883900684065197652126770999448486656563861563647075278504926488958270682269120041855380954633426111091608929878490564445998549331656665890591871146201937125715066983272626339203511150364085902658638302563877232767551236794546318952006553200472254115822080688399132266581908597230018670550123839754378319662257384616860981263743009178711298302142654797565250203540326627619441748080374723416197955620716195999828562765183971128100026905465751738419327216865246060346627043417294075795926165271956676186493819920647095012586828069350668382161303007119132861570971795543470195667498858193183778504234053202244618358456418880152997817252190990506945353421469436019017427065850059032889698276881234114432439822678665038369852825785459645474437301760017088286508572054880453107002021290950417228707742338159077257850207288568596758114054423040104697027720473556016777618315088129534331234800326235267341977950840945438166907616286706678030906416978380251215519548135136060681927797863483474575308532005697361589534778128233067986014648769975982826246499166872301792746335665005357901899392814062558593274106564144578134924694715982253301629840234744653968389264970233319648676553629278314929481077789177608498561396204696836576524947227678296324029643514398043477524813992979730703588534612699821019601291877042372267391049326178928749028063297919968864682964058189631070566886245554734993785519692871021915126675792910819511114843004315067382555327072548468642599565321488529772733499742327240038272020866753304246984786968839790254433530594252110614547650862239346376257240660934871908443297821547896953787398569336896852364844530343392848012277701275263260378744165252771883639372385299889354280003401109283390682725602506292821732545524072724349880011043608962013155191165992180596325752536714936992256083035203422410186119556085725864854001444255749846052984312062514555752771270928547028844235385366310947711083493639890396659026005620702447717409450011944769888323887185657634011951452210384199136609641647591447427739584509046132766560647244588687513914285532648002526980949893729314091718902923709713858962413463413078912135692322074103355773310579038832706092931331843727046298040880423697271125182833770893725930748503620821880011115483498588995125030664862747350595564855355940629681729846770459466514062339291836154946470229185133811343645856987854234803681173753812620953897569212713363097615204574926306704560137414990957725811891623237197998990805589676865511151494707563908324334922454803351901610964485568498733996613240184396410468101766270996636298245962955621106482821547468326520177858273836212584002439818584794745833416862834427046483067720995791302875454395349118182044868642587645792745429303273689517669526983557311381022101866141055927723916889831194207552130603748713908307296472192893333088496325341820819353718538908294386599678632585684933286150853230290798191798097175473529483887636411513036101723115194637485345928707481214987080876256006240813649233177717121993466502493919435631117926135284203885221861784702480595144207809738121248062794648430845467667386616197523151110932096680235965079235357872794841559416217983393172420047785995409726011633509297244794070668688276656542542143091631602038496552356411266426241318255540556970310687327596548629598728358112811733824354770991079534770674688033893554078699435998602214187374635820675259154202431590457931687182634323046506182057802273747107502360202167096218164226145042941529125680602163001188879253446111831567335301995641537377118954356314497951478142541031670448627225747633411802312666463987790558249697924388286670601722627251503574499599285776131953961414868459849254707518865123217332690949452961909014296273614413643880849712099604799760776892951192277035117652701136988276032630264967132755290631308490663778473382948404453184354432045513387001771353177957829492164995080417170061841722230032807958254674049727917024586692750427445383819654193435985808062732244065384317803592394024436174176117590578918558511582682823954787792470476501475684634857189386509281727758196068140962133684039240335907333081587765534577222046479737986290782024298327583299444394624388125024438416956019125963694388209853542085494244079377533543273135792635103834647217526337434984352207401472975294597134600460079168859608024216987458272192768577737069341948742860785019094954782455753521942082412029819566283461487694701819873787926458313883528862935190760031693642530760751987062295838575161972306529022371197326708906038386281780397706845500997702765839182844885507072608637074627102144751888949873981895226258004664026427140890876350619103306034442581991555752539516204818805698166947945361957428461105867523090044886105584846747376162844246941637369423475234611708274265466919901306534547891827634460469710676534650657981195696624769192891690174467186608821000661333850336072338612363223950628494502769572502821649767051452152792664678174643817956456025062094403823641164302308036916839505826294208637575599201716446982415835752964747478706536180738445179621842438388030046747110582364716097630182670646567387129520331050457302170317882188330046960311552665697823949868039057903479319374905933599187028612974251953534750191183130883322555664930756164944197932074216008864872016330873949602674865641882048428412456738363265062697022890723954271546249884897974750935528070662444841944515707038145047809768275695118076193176633342689677525216697309133651859854282860958734551290704096457936113738902550161080815335640299684681643958996908248186191722908712755533200455611394415485953367082931498564023751432114587650172371329392661618485315905228274083813013920171529939697702270437901904078668066336749997145556249645388885427547451357984342515894813837248885944023648920138003382960101328894261878874063589159383899134923197664842925591047179408252751156980033019095731850568213890536232389055523426010134581572045727456515068852902621433378113206291824811052072333702798838263672907994357130884574493607155680620197303384715049698912519751190945222521224568039344734439172679759497005432064363899332347379727402157895138256129619043831876268023256194978135725295565272547333475258134395720619983234472168476559585328372353851407473836532769845980687016588701340692269927730240431491473255844421371553325172060735603179797996218983836339156736000490156623030421895135403493930915036448219473401692037516851246972509251343138161087872102842432608829833929822954826093303927007619513646624438071123035594548779446352431667307938073607017666385886072895280923014147834835536955878851503555612033102593346742544876258743866766332423606202483239428970621515637723532291765656854085085564491285668184147046405583399019913313038755149690354249477661410047848601900985204791071506599729976823414822359423449331726353859205732100872718327636835326310288756882668017936292602266183796641592082270189138724162786202099021842165128188190885374219116651190825748214733405386084190917069563593944377600832852167355681511601541826088522555617871025410293993506741865998238877874910663600715299767167716282573937439506377176439450401367902810380623143700101967490849430928535652945701603762373402101020816451709010840402876350607256472340745383557396306909137438800625316338480181222093152735565379751769573373309192025551466170052354012682121579520675878395613913734177759747032982058350806386074608148902559912988458959178696555680169259018263064843936965889632583175778497232585511130838850105597229870978933310807751649285688180723429528853170207837589704358104692618789996904052204609801398481665451977593621431973766114468369904141427885046054519584546763619821134863138492083294508852549744217457427670347846615730331371641020866367211671251073313600197765263861409535308343132309571410401737496983047120311720862492026172384230615126654050056275373448028873743993383496496189770974833131455148695429112686223754864815041667219249074668497064190133279616026661244338022976774233489236306078798531963775395660095377598138532461162150026020001026778120857785136974464440303460342861869013145983609925902591587800487789266808028607408626558961836086297341106335718648404853978299440382998997883369988753812752130785248344312317900298313381578890501358765562144563899282905111881226661915237393003395122789642482342919236457332564012196208461377644071952494245721774670738384970606522677764289169762143099165879460646995624100309227686963046366214974004269464991358208094268995209179620200644979313723474586051700644962020841386538043402667868315142240625086443879221686888513812554250979938264835691711689296306349803508953563593293112872855247385496606453068584369255751713905590805961840741339857562273206207695591842795759122098956044055247620184224287173899982018479852870258378163584997113157778511305635519129152739335707394569871810114366520550196159939307365494190293595742479795964442307910739459715042959831023738740377580718601652393225120074646257060918387310878831279085941791520621589704756638890421478908768198653836891514279574558124689008954479115244745497583399727330622543837741121674354501715376639016658408126120548010104268607065172906892847043339916769767395258293290435113635334971421912598350074537174354392004400358926481210501781565051991156555521895719881289662731116282148660032811687096517767405150633553419498157780360128440566543207601181136535416011497263638699833777759405599507731302380385645039360424015685158499592195012743584400888388086074502807507088942899153983331955459498072012758079920880675310311907998507846166385202667080263368829947686818663858049109730623172029130717201116398097592675221846687582871707561341349973415513305920780932972191738750814528090386945074949100552078749257266025875707380391245602193744117821361260261269998309987071927702039266706257738103732523982401874719972673301059785980675188803445096105445848387314230313188272465290268705232280869547998181783487325234985973996691123387360867744807769860784059889494435858137055285515356797162873929361590850102217694697591075774801874390575268769416872202944619862746698733295306987538222536610605321307975031984988693184277010383203227862433450923343468330466328454810319059834080058222334408509714544547768529199508424888688529266713597496464707925104856238000061138008057315363867703904514910369334770643574767741464507243378490456707359611785999354835287144960516386869162315131750697464675992579635868224511134100475770926410546679027018729079940268459300414710450083667077841777326806931155506411064105836617398153284470932566780087927728675528469082614108424260103673082898323463749829706784627869291980168157170650448304561443776886376371131949376613508847197513544501030979918212816195763076353427114976601979676129227697438685713624586470851194882410974788480081835203143641244916488723638737530356546499559473729716823174353776415282954867961539651192340473989392234997533733500436445617856527643800612294587258695851404718764182407480162080873829578742919765482345052479669526018140102581994471366125761635135929661201712728766378039152600443015244498973374357491846233701602545788292481195985624358606982313640504443916745331125769189053363225126308133899790167453022069915471824528623131969599219649714266970516965211478897751680913421881855759988217037754624064553713258722825149357497069452095777378601734750503091733292459940859803411812303550226865750685695561697883591020126016669332981653283033299651447656076419969162699732487496577687321053308548228644123114940311802025047301669997748389840609607051029390756766419549214724858982158992050576291267840358141934323863366670280333340771219491260537537925988810207216400141139637161655111982305925873370127095969700261061929511778328614920088328241069492599484402091368613550902521900096805256146219091542612721346556046661277167117397522727304955719429516573468722954524597952932320135206082711150500794753347952764476243228196878510054191651635667169230235719805128876611776401658011717802114863346277041587044022981885543254725690586235652820808826192168441818131453866714925362615603854883943869086114295902635785579895892616753745675198501496714745702652100508252984555706226585662018576119527244639697045099105987227180691994280249091087876278362299379688904642640400956630410333085540563512156671469820858380459879267580058705338730599336972098918549844249221532430193074812475438508745819264143061921896433872154079192144846463478240089491376820707810139749085748254973477137472036674660955248360366346449189713968772461335367041647177392638042023410908892579039546616706971560065962023463958119381979114299920157000818687360539673248897362410352523955752325539213375237832175541667941410772559919632385804517505108087331411829476347417527943039233908973803075848184507724354146501856439767028436961482143396713312936774001874014802980257278580739815199019652428913068163858639205053217457073254621930621303510698453262003893561883487479025279905568333917533499593394684784121595990013841441857889359815421345766670405238118103203094185433452055202184305674597579363566825797515520879560173889073067893796791026741605495329682191840710123000932471149544090997715214937115257945650312996186790378302205503376336498057236593324734250490369323798513905149358785531888468987016522497254334024610461560829843057580694883488315927666300773512573141014614494527544742920950025329663102103038553252625879868452751340329956352166107498700389737446815476538877179774007773554772570588080681873606420691130976294803589671492150450606480457124438716064885635076262617335420215096712608567774091243307568436649477120863249128911564521870167283705269534212440763908083699212775096776565796977984607582684056580218155081898783906825291136309053847102917834141884493256748598964168718634501911963346318528010735796487897918809247749318378535573245021228026275142198736962420288128766714855173199441317804560212311617984283550232121526774596597644279731418839441520820968675712368564743656784837335784217753953605495327992868477708760381002018174174637195958782443720113642271955372606058302018403009068662482747530208589727116440820408020674765197149466926766669190319607083246895641851849689426011324946916276869588049067172511618983083846432222055859837792698795508397435257342379997210049442970407616531846014977115759042789988209897429097203878096851960765098967301547365701392397071001503802170165024371160257536159804859018004492474076271570815369801555466479089109654653711086247152137358027556920824452742740723672136156597215976026260551071521802278845276755536253072753753885772348000963934988638396175412458939604737710952162101332414479024611748594436596162063739414865146505761792898877300869016547813321167734157444886851074567860857124242172989279940564302513208784645510582941175714001058237101996949338372892301202148142169631124394134617797005466632410212791243731915972023988533836576703503630270695896300377578979880981405775292719776616535999146888668956647826310043178744973745193035824548670132302887715277032755367082349430582614782252911565801223895406877164089346604776900296595161669898473404540048774786761166019379831366127469314268543772000904971422659952530654909670772734791827765289266463707873421875839621392486670033032784897595783893270767974395529777983284697549837880327832905895636633162807134008408777015890115097712720648874793653598040816568714749069701502455883074795132505844082032359030343772037870874715632938352772228956436810773346271320459087623984252108079140427447357393628768990109400591849793937373216639595615046887730737318307738912565204516242129814891015594160727547651958404828006318030581580599371485721146569823744099162901386186320699771480073905918866351451361204294550717750037730454664387173265157494112719087139691228850011171502687895294979268721959048716719115982234609930421370240458060192908873601131465902543602966117392587814747451984117890028023041583531946689456180597446992385014409535162627045746173071211327493749484394083382496770685288853376273173324733374417829095812945300758309864919712976682772137805602679935085971644642873195678602805629686665164835879495579635440790733430514512761440508171078313623020704123030422265907462182606201206984442343701394168393512935541304445023363709255466320046447135669660599508113248500765962743065087085562015383508193379636575928163623226010037949874081225868451292216322051467795186499997350118210078974351703697331957706763289257754187763988737222128423498690269137711418568492801750360864885654180681723857852659017159460745102011464887214028589134205658422275569392056427200824779538633901439387341097322013504290278354252007493716392518974406804168175560233814028238233435508982563089596414390298385561081260023764318345068486018481546406929747864335518515230293075323526505317782175381465870271367594095784513464818229727985767260365861631952491006217486323281295561856249211575737232983597734255328272309388309344762286546289360210264860232650079871853566230324119778754183395207101502800366904375842878023667408672513513288605885414109667097984202342952040218596989056638660375032855861742709259064575835110248513634631501698331438276531482127048969376673820308025777253053618751622467238111221363791515532779908525365158584552534076322075960577213086957031951605077726586247335058197132941783438132361339746817641625991990276020523649804269641767548866861051694563891503794626487719199838302393127354792508662991418024857361562911637990319854814099823463667968322154033016674697821206963789439543711704473429113674302130564329625741259401941024215146732538140404753908961662777069427241914335615029197846244435072656875936406679853486632266233098399636128578952138520874067762948379687192564909041570041943888608979876968382904377767054350135050561094421229137171513754711487829630626829158320320159445045380553361968649160850172373794830406609238668941933413147616506617324701116539882972774705292874934453289920431913668202796380305020360979973648484013074154760209018734183349956615703279795088858873556173589132005943715575949230351160003686921203999166936138945437473348629214117092618234390743089154551298306949354264887927265473528383631893359162860594096350014829524925150986767202590710480036606018973694071431932632303111845137098180052355722264401172370179869893758853914467567709883250896473790023076635298612330864377760973830563389205595789721500127667757014624477136560689063675211756955189206089424914561793132368953739990242534673059294143973077247273101665920783845197520682029584050630773460041141393207304698173334846755108787962014073561523140925796989292915122925848718150009933443697980110904199657335196786414839557504452951783839924784468415496913696328705548292941051930084623597594797705463711297796059434418080940543153823707389605082103515621010637691137603613146373314721142316061666731968527791610317912831305737974878655228402659322600113835494049650154684114290885089693680711394276039710929537041342583921228747200935154378283998631626009574678578613359084421926345347606444601436233512290315899292303715018478023005629349210717239927070027416865076557774386921641913739439706391958360799682722668405825721411103374083414544970334615964362936164768522233608987378422037473102490044967031903892386554431588063130851181433798241523981230997561957822411350131997769264532641986143894365454613441869469397205430473284707814490619500882631800310543177496808944214306973093791411214449116001586472112904811643549305709546950440561278100504312038714630929840053266603220036714973163542025142372031819974497608183542039058683447378580798814100624910708634432913842052641937928711621507606729245346084009035389689987842897822474290454166782947074682766344180615109721165240853981910361983263274570088824644298129230584006018075590641329501080377217564458792177960953363328099952858019649198715411995665591258093711845210612988660947688984535608910076225400070304291969564357536942061499778177264627872791487918374901236692095337282743944272620196245822667273754602613135100022210599891968070542060779991277170894835769196060066456281275545814174850367953004489719748416004699832852838522802608589379656233913082630384403537921013610080056085527747387273800566182491453506236789085529291218009315689170568311721713980400314998443863141414856663069962135500081758980872999876801757953847536181694877823284810582033153687762006873287313937328991265080911302306235453919749113612056579338199147227204607110834790556107667034063833368164559756121280795733477502663868047072681448817188042142349681162373640376421974948758558845945312172979691251248154837684508865936828986035085349947350929441165086016882019104831180611143279582732109285401307293461465757867513029581919187871475648553390284619248470724380203301701855909133562722284917033693397800170315235029628927651669473893630106772062700406762172203338396829931272665636964829205014596017332066040616330666585849500358501591070140165851975938544750949596187579105423763860826776976987158466255617491860952294621818709071522729386449446285915731634433100594388884988664817401707406574557023264121121695018599074842102969243977366214589092919847320928462372707736446474718386085165009725273913711763905353127486040405828911997297270929534581122568187980429389426506662984506845551601194648134323139549822625650577365319685245104339206575318667826694693363489425561447911181853115538512646316017662089499449330679241490858380798522341304566173342676484092772731700857342360032466855004716442214083043064087434003445011142240348627507330816703341874683721356851990233901892689871433204392615476769078517720141521154757636461066630302264205530408327600151312773697401173695372065938704299067133650398944999280947203467081645659885884813336613219973510323932084779541838214151967404324113363075653222048233289557873350553223487741679650770788419250305615362618859957030114374644768422433069345326689721557516665708279519657129545763898992054046131098712482194653667126318585931335423315261199868510684431373588782652828807001499631869482500101648104271788521447073201874079127416494099773263145964618975075603157803990901176288834477047811270384545878696819700144014043973329244023315592433125828168678147205129767237724995896014956141740898774095221948204923725365393266557711601420755014483719139851540402977413013495612864640140704939302366021065041233435654204264703487471257962941803336089423807905488631079325505537611022188277513625022451831362066833957750608241173039005617925897488164143570245530530878708376142704736612149303885857182502747241332801459766460875210144017137371996867889807206039906386817477988002925477768033246774894806158081208808539798225393347515430499089993820288105142612283590894723497467081271645778599973186164866727751667804156624909051521265656005786257586247144826711342332382873841480936351353267220469431312424901638433065845062494928900256438880728674112538296385496854931430183802547342008162059591774473860697892089001308028561863403054239832700897417466180778419649779216619866914985915252794081586414857818892512900191979615609715308651652646749037901122387592799820992512863980284636264200264607440847340351182675617806529314324816977057836464066355900192347529235023427449934160873753304707674476360633739878838928101076507074629708475308078628791075024722882861860071828664819483765326086278130725397524911074742806841945615754511947299679236867634576042566290754648284688064140049694520894627807189895307560688191010787240454887241468648560956028078599603294090346279377308374949634887666439698273220405111571244987276322706991482103831931480874742621035660043283083797914634628926594568490121526696209872778131998783632814229610254502652525340955984485713405616327271713719209530339265134573885888963896933778364742246631848346462254904991157078936394521871638519697435239280318125664879146499161628382478072132610970611454436672696405644289760478428492929689177965383820391015871744686725479304249076635120175354211646417881748779237067251936962628682452715334082132802500694707912023806207430137646823263132103817961127603476446747315199463208719685178044042530706518776677982641026451281587847041830928849877790309976283043823290684446872643401278215493679378462917595708725819642872412989400487183656166377240613074643059906211410926574440334351409444049974252826118239130365544542957971787295813612229355479457620857460369156432524088816771047556018759501434216862296891667329956913365961127447566742911405851395744100877782191259400793825716735255098580611443766638221964913085649248547276803321270356712513454465007861851734708880638752460352804827841758736360589595102125835505674864266926039709548222101313729665165341268744570740589861471962990069565949430294511201232692785713216586697118642401092737741354666633676958541108863314339847320903141092539897272989775377139270067970884164692954638210931980761297032529093187309714384936481738383073633194831537280364789276688762810765532263526238330926713747295549947198978220260226979112792210436369559731024616229341380006398492677006298983452174461179076341281631902672467230420745037383539341595685071990418970037315697216843485780057640060126013520643572401802470854817699951856242302035483519469281119125080725427218759633175430967235697409592533756912375671565620044763521369584986053518791585689317260467290780758330180879283816893627264916290493476733923028118782717131528463532228927841252011544099181905614470752577647664553121116753650755704542205894949269041449661957304824667707531913987321411669208474261805835882768120244931633628634924515163464075753929195190271044626983117951207845788057117006889164664424363806452992984033735514446332281061290206500068518360579474762850389192504458906104037359517320360396359298701534903891424883478989568741816341563284412078286773029100359887361081798638490122825909815057659982283592750373352574517902356102632753551997095174360673527103141695715591021323998877798559860790863682801427645973151803239357970446018193086202974100829732828255714308169996323783832775118457292045367191674200793433436493519537754637496922231372128124842134913117898084533478369271388960733986049473977032309353795401424025327821456254335983547933658579489150770188716277719941657474596483488655916328651022089255874057604886174068809036014131815461375394133358425474080129782205740282536811815434352137198648315199630458900410162778338648687294779284953476892142565008170916924898820256991266754155576619884750401520762410310977878841210625555433567633427217150675529037903764931689505033796865780475164324815742185874367500203484832837501059449470509874446007286949054647749190189612935143519497744056113307862562221143216371114700109168362735292184213481005980271158802795456831727653912327084109335040724574719996954005015696639496811109204729172497820542456615276080065951993906700766478183573778149785640259790618929035956956524752737070239142759452611515329553408276469670074589160182650038556549519616295573014040687811888284474773824617252987258521055958070522540390745325300889821887684765962743717299577929046266509936290067596751448947233142698148470312478381691061974911592731211726994054886418125471649956295746296005254600145718633668988777596829781873649340855200253418124456542264826402227232755418198496211503916232211499105474055985888766653350369212503193019598200437101825611451490593437566978131703792671392856323710664712213785482841197737110283356011147395309945461256854618293702578427312963221448558848372585212310892865116711038697632373548532812664376703348796877344241142258294628401703198181253007257260953292365299704419722445674250959336633535486551484451500470261677275065072645578277906689207589313890448065481000412267020152079668166290212324591101399767539252491697204519987671710405432473377371234727864020393965662703443590158949234742275127599500677273455921916931125367702129570672960257801524281050670094358729085069251628880092637919878626627684115232040961341311681415533748146269452790560266720367579897760952804975548162300769805776012205480892166894799203660997051294269381013592290343384047351677364237521193689625307260012032705784357109034878904701331214814697564979668281383312335583661244631493280362834434961725177076299341075261053698937607631098970438271524638342815198964192815773427880219963980794917077686886999534367843825922806191838101109768150295583355412935243576164659055275206657967937210432210033846352477870708657599864906594221543318186740649939402317428302999866809726412522286049210802358591164546154297284465669688873784697770785197141218543497214661155693274518005490344869209241059315025533077241811852906836795576065178339446773625926597721805798736471863033023954617736050530334453823635921794750410223287869566203901128027896635220467667514387340490301262340947683967244855264801314825394799853805455378820355375906344940467453114696072282761613513338622629765195402827572244134242181715633102823142193590077776546355237240244884901172102735274319630599952713601492504075313706359167267047522892345215422333968680828927942107780180235193702552836973970285561362081609995154073194440987710008401779272008761696817423958870759583567308230874455830468083499700488356845433521650192032791907243923043053097851545872872693113701639126140082262698278948517263226895893897105207912832619322427892574830090293563797580330481901777400533984719182459592569720515177985744717034950713610700019731869157446102722431633954431548713657548616586412490248835582283346482191181208713710094199836647254212651724882128912620621586197629034304830302324548290406415554767683845763437489612515511197574883156536700308841721108147544267372636593174782799451915928134803518352830084331193354691304073859266435649430079834532264141959417208131755756585588843664154896151651129447561542541892142842361380459552144901456746172019944725344774234143128069117563731819075649378939247802953908365814587520241977989448243646561195009474817889930368714673192532949118186778301186776686604807174670677830552452427843263422689172182697041042951302957504212358596261090670793289039860947622253341722246520867846534200549603256726352605061639669957624904249749520014508865211004588897296454721380486381024013289342808104508849158152547282630980402658367636217541122263991928119990390061586677285158287168334195912310029704064923287090614360542386547257598817877376348330270725468690788906268067297903159507079124683788022864250815449774325892138502734759130662900553972037999547862111191008705623468553349686336980867683318223075574367988171508900819005488065362255017462607302127656307039426799142320961709247418634815186516016764778167438368472629187067357421915224727903137296487494963122491314230004234238671797540065086635771130812574919404844508835512191807641119252645859880533491631321489050037054603347750773585502034013758754838232175217159013588153791463064871136149859551209586686380130993852746466321889887289143998439060536231372755492228666500412100372958930412405726084583556696208395494053771090149731422324374917252872920885544518645551890798951380075081599979560681783946943467117124594151130295381320028637381881262453104799956863304207313259363763756128497682684657668010506188912629661797557870372599928700985685712738107438028014204979780237114994643607514368447596669852382211535399852035416075432818393142708229848199436575574802826767714729071018928183767484790156569990536786441140879861026141109828553450630279056007434496735266195278635768953118436833423514205497094311114849093010162977798010544188579135861592113419910178520077423567411619137008434865521161027851337345393741224932421643004590946706356698172808717972859729946258469846991584635579873183075381816971835636514614161052182849798055177295281542029367474997020510491707122051324727714852605885763059924440791976211942625281309241101668043548780906466603293077908851049328515740173641795098622177302768004731800701616351432419179752456340393584809683973919548256243362580575646655257265829764752064136532208351087523087783966150545103557101599611803336146622955187855695044450550760065145187549202543111014785881132801313039629389761058337032594381249405934516896343993538127309268910508990670230178702628773741592504478522880814578608517152251511295306766028913740323264662619515687499947356980553107567863082096156923440425407742801016044693369575545939198237643328255747865556681633524800002568166780672138668042257056942912485486469081170513363619521957355684023683256693945073146631062721161104443996179992078799586120046050867291666549991522836713773271049176796494581147344624927559836195812927304447457518558042972449662795359692401811556487390522097013395863807278188658798724819744040101636142615144602793680655126749286322549594383480583217615802265567015830714124171056000791450353771215166849505302206506176986550864854221467288204831739653240468579193329927122445356885157194168483020336425845840174516379409483267974846750697772250034439483761114209975240241159703070281830441738157479459285342662385986675285703715611466161832969501171123920760244521567362089874645972775270235353429282597978306272374451600179537531786180255281942907582405857177064781221001695584313067065766018668747762176334962756958210867324906450614266012726683474000951465012787256784108536118547033670514709869441935578975963479847542568763468337247445994281623794991232273845522304449936168181522868915085638446127440000781959390188060833584575780712387994484696825590965289657763886118257268128955780429728165175992813012522520213037348412811275042388562493898181144600327510629008793624165846051918588777001421868777023926284030005627589511345972856230143995000434580386527783492246971911741796971371276291745653206188501086963257041751573864742900326975199088078631975755285997387863630182633672445687317274282001700878947764721229166298543657365763829247836555704860046929122579812115595804757135448327542263107354948578948358292236385382329316384274246146211479066452245879367731274285283129911570473358065649039249602455171715231863923695477664165054118166267789187295425232337868352992185068424433152643465230918071195099270756663391533106336521085822883235350566023294049352156466941562616508453409583803663327924870656949006017961082998084836918593222983701643037777165455969340021252238579603791490904095296334122353543065256551337220646137918584501704266601698503066862286368003206873680817375676477294408710620903561409061690417264863937520755057474569046127560050220863341665767793659818782969441335505525446619259585900705966405373042239823219030421242875193739057768034181330676651125410919447248912113621371313888941807550301879929591857485723766655934221015454201957569614766277619805580299541519054106422943983213096365938753304533157624492146165333045296825726133525071870510478850120580194067896643290226833875227554002068531808825580414818357067490543557067233158389632051765309715225816682509953472267192961511398266283234556605008413198550489132009591336016276891195993856437034546048505192916751708461232164632495471797528542600911913293781085263229243973702812265688381517559872582204545086880434020280369046245620210411516198281119899248616105989045037701470492850386097576346804492341484760584524572771870448220998256376238488145392371565555684457801208417821015101703959141928003295251828993539524609955847164796595866424917154393076181638747677677577939796703889150821282123977215969993120761651816578763931958190778087699900830346947115485558478882131674552218766677821203449755728686593297608936009161474958928424828175102060305586752213891429998415807386506235986936232917811084624218294448956347457916664625845404970379781529948897793178352125639805548196779720519876242782620116299557077521328556205058080421553279305445727326807996131649754043065923684052233479463770096175510635774752049181297570950607337143617859414508845151444681603847054915377081103020765039037948923499615171106008077007299967079227977977909800474053761313909759450859803679073318086492721544051082137402378438965550563202202375964991350283102768861835304015182831022046808782744586645115205204815766534400597285041295320798611160306218532023383968062854389145074799079456311982386714102643559829477504633889714387067767013822489903886152497481981027909471235310151692478544356821574305352901555855934595194722605930118523431125514970646480515608877746451613748221026674674499543346243904908472193313570993312446536199114106151983604577618690211476767934413811986427427268025610205245850907432339401124575589161115379389847582981638486081203190619254373828473797469574125611798600595373719054631727071322688152331782028293586472859855418883690308105602414747861802215931588216973880087944314329219669775446567006729288440444912948580323566223849049334384195030522268470733560493421900447124756619788146640844675626087112517940368527723867152682377216343856401245685124119223210420396430789101594298352838039162662982257952904564489932204704615644759582126963513883398122408811595993603914077640494624082897362860664500004507008217760224084609699838445554253720975256919314931289704783787673198915766341020416183539166957395811748805911078302534556630125113532195913929769013196329347715370309294301122835682971400206241704804535968083437437178894440907993051672802723299053509130466811351181815797655584456687099119855837003478979673530278130353009046681043576209007140527178490085253554780680495392422867306579518910848519455817719965487035418480571706120995529440409749505903840423211466110452984580779616554934106882687841562667811435111270335583979922698976550926648665707103199573789674157215521652255609126154482556291978149488317195646437419692254698545158011548395305747731158956836290671519734897766060666281653699418624084688977394413335161009311721264107930890855290408477044334602208607802828940460221944640188902118953405808468585962938540346299686988466049482030104300448606120063976242417031053155635859083415999685630492648951407681314929164713963348475711503329859266145170490197036880383020517528938106102105841183759840600223310915864245137145038090243933155223507098688806568599552896240856565400545014514280566312907653322660760673284102418118362969659770132524684678794589243926905004740926518490776657839887625443006733382044525414158168308795329722713131120068642948939357781920588066852699639316850485350459771676882893044885441240394336836071246631344315719926552843772237401071067747537605034353894509566007766228733375329909804486016555825684794582275828639628055746076308219002935557397886227115983420343955858812152584930848034743975679903669522083401672071591686228316975936790334814273603077319928243588944377138950696892046682256913816082565110827021091113686956490045220852963956432490653821745997654342024808497700068785615531701370432907948858595175434791445944965570880984155602654503618351447278056572244334419776826223211708653576755079786157716027608101625912358693280678117564097976275288899928890456646444941780145801827025305071388809595573792165618532560965003869875372105949766675258285291649207272399297644236876853567642257674460935315803028083305647752635983146583144572532213133085489287304309113056323603119050881660169256293427005992716919927404542540954772614343056392428914822069848027587653482231910598702495077654088323235158005416368130368013642189246546258439947334381194275477266644879065974131032647547155469846535915542382813743633356708604522049864282600098447135910171783255479614535720835767825836445384075481000903040605206104394730497804353542667777335651918277785513523683262237270797730244817537938346053694873782205928766867256923892111244860395930406925974305887020165109828670618270179222724270723407587728735491953202643371131628607853202776198933700864668797220459849818303255036889471530565958365754089432156015251582447795951926260643320754704957921049689486503759675007688706783519444244239963781448933656340375308192049917983697168902740112774801104608309380232829690273048211026058726792906207698983213644245256169484163167123663726581073997142396497565404147221185473931591215319663665201651883252653308305744907070412737916502647763025825596698543114975083108562949484059046988571789390019169503609273201537703984422591842391846519664884188617774919525473051298722725255294337812950418800831998431410387241837572213622474580558333368698642087463593016537911166738942575873353418198748984352637183471444328733578897119780746172217192402943781851765598410058523551828781619156462296826884870101504288296365006016557263960795749452622803314095568713698486710787049140802328561007162975552859283798199323681350755691222442087817641244702233564347417584451847511944133765011004582684851190847380371309775110490909728544940347149194356388242411571040924945547851465371106286973308509935449213841228099958857205035849869172802630723779886965469108166977114516872016546913943029656182736644840187854079325954513189815113480799088446983630551551506639849311874975488472477809898895760241695446432589283601334886370461455611243233390486202571912821227558916895873844139291934035967248794323796491940419269600692402677063653354243533699469361550174687593837336179898661367907755039987540144765576205028109573930962971275578406784342711531425232590304916825927940598025484019386134389144057841156856824601829770685109934880132125738617230513105770025619631656798714402885545671427737058485422899753419345132034075264431487537951329942399902413809596615988933733843439019835382069587004060454430197021289845231732783981750500010807865885990534969552493975674247601407661042546820862349591246871948679730527115334868139356531196460806177970309371398660965241026341607486568117757989450670166265781179547662931192814388312655777228347396466307920581706374838776526827738563908839213752928321522128834742168244675287034472870955087382841225061005377542266483063856798956216181560207740177460021319544227305176577458955729026611647276360879024594638217928881371401611285869374695634373796859595095360564533237964438544654961786139869207230776670160655345237510212901014605592121202647463207877526323413912813541174907020597027882332586016144454609866624379777449496250865624061729000707166823541979300088248765250844965226568556302317738833577325585069672221718138280770369003938927194305837310481035567292124054906242328911151399731872832377200388052563109454683644893113854103955077272487719583789703764575443862610736607382507535528691220271657833687768781713299118800616375460196435724492624321780627872967323180713324090987368783186295933949220388728115113541749031739478135950350349822317574134369231587600833468887880600885662257795889005812026467393381585171736239243678744477548063739171339115078960247231991858740944036625785281535297285050036211097209105027773561754608406856651983927769842212841815131667925140305837608742172959566809793009537375267048490170730401423989082040078598851370975031334932786863036351796036149440393692947924089261781269810444655358815877392687032016444838973274991243693717122020186160045205429463953481716178836727203752992118454056115583947427485663904967136687604575969276644767967837811452964358609705669814140265863826173237664680271240864635535957603542787828780239530544616904037119961449580755861262753327109549370587602448577227974598143275396159003855344796069478462427913190778060273218256882966350659851790427441973708690886951143488075622350268340143373599030451008203576329790294348577293508427913476093358877503510702065499070277705221933720474020829934958208636680544540755520126849131469050215373112164873993842541755049447750204303374620499360511049124519248369761571535060445869085787662310534532683028515870876795722920828189019909687847272787385107348587451840817195241771960587434408323930776460412568032246926587989958321051909831711917116853957546342012947243238704397206691874653700525193380860515375128250321466115752081429634514653232526625437420266695743292913884688650074056916645544053470888175627607552617305955540314556686793437689953473033558328879283726176496492974027051431273183587990206497670342657357576724519876169993341234646759281797482948399041442332218915920414690568077731474769703242694675530895724317684047458975330895599384865804693260510864815189110317631984587847835484428818078753171411282963743911840636141580947402672038464839631822048625303128611338362711012965537365436720374411650675705112836713548917166075393764569407380432375950763894662167857241129491432619194587083068723845954181225014979713103559460662065120497505185209160312115763918952973694601427584021503904398965394155944723901031812346303497494480901930920828749780964401600882273448846855603836487789533703499978245904038449665829865027892992868369329164070105520278372310347142220781007283395402801799555621597223436286209278752216248966309373567013637221360234464399827806562725065594033956748363972348670030889524620991031732036287434436652089762199149214943715230186437333243649999336655340951259777241435333721974376070626371485129267101520705423746659911710180373194241472561862457610356594119108109749189778100863263716896909218991237997221083380973939794768110308990975330671943212516625547870963030620439366065900280471551513089827753970508396199304391826785901181538608165158851257691689905258792085704413889324788454821668113344579793263869680416466126172037996411673349643982975236044883592151996086036611808671028505953476019465990733486840633830183405561670310474044656328630665540311796140725792206778210427496227120547260729344366830775238207693124668625787034022340391276473111579799719644895483488732375421174888560573301809725271879410664966839621677546841108665141516211168063805543466113824554951832928600550535967281100651988056708214625630257572540390220031184994157153163425602925727832595298056903206767233791814213575289166013018492742328734023064802414126361395026508703023078952411972566687040090568496925881376224384060063104624012431389552376003552674680785854355273820267751923599419188813696789613356361000619170566290205624196363601898203894789934901204521723250526276494705976435603325375076687164406877671342047521832099970219583334424440758587595922237600270703986172105700127694480367426446039871573314148955076571858246840195466076287183886475408238046044323570355714533270007856266496857905841941096972620232173028080905577267481857456464203318993651717413037807303787222842849554584142413856576234826750519006894214221962982988675075943815431927131923684454328934610296114540543300826360628872897321479515381746989970320273634819739546457729501269417522917396869173065216053963754247126872123655533181152556314967026008075140647259935778940289785326748999487905990538929059978138775854570075158597525003390732296518832636579346412143870921432869084248779702881759153851936016818290701847678118449384901305295422878498240677418959236587959848822083652487976900079698243349742014906818008624795822061357788732871192080695386572670171602384590639368401661335622762088911712356975321660389579772742774918140680170165382364200746475814820604370620214715295984408019997748652804100456323223460978330555080079347737973657275066443653601112856818355802836276901450458369527783845181753384764025422852747928872285917338555201553353310600758093621575773698043834060283806461151916920986441253448004268981269494846393157220379325149457064818643204248708844827192966733369543417671401639102810979468604214826375698830957558156248018061651933860926803728799335697500918401716886105688797086119433231717011724564861408470104992019046148483993191636205989177770073987993246168793206730778964755508116833088392220614981355902027689682477530422066822473614178222353609515206956155976574274442175205227249038299674282477660001645117359694573288161744444422317555671571217084472174157756070691975481346909237737279815416937304970927672758373353365000471758167530606868751100980489910412169696201042804513624874984931901839771032132095284993464492398620590062262884610576505685449402996003621795342291319754008574983513294034530610845604863955711848069639488037456657650414795645800479816106147971913896192848881379174407590281433443233717340592802123034196697204946886095493223416038672491037412264845976209009886392665389487677175999768718619498509629984850662378058818372198318522186833428991717924210010396194220659764950945758852110191899635805056281834790132613401924871600445327973837593261774062920291892436727132297667393268759491985533094926978941941091439461948559378308141417373124769029477719054916082044438243213593059266170635423780947172137511166269558364428698436270227702362717807256559837372366232817694437527100775440669055128289674651297502291621717607043469603619961430728038512216405729088268295091996818398841980888471474616647102832237079091756638304485359216821375089570500879752998785544911820078873494885056713180451388722898794193126447549526230630106477749389675917947319369585139724514716018347807654750750750525193103270053132953076922782756978928831707196222371386873744280205147490483976374706448451937295090957825455145781223713561402105781087543607609083302692389708893093306862035138053263998700814740335571328030982219932142736350613112640192611941269555509343237422824549705008038833395345117981812886968873282348017322961170534165335498689116074016478127350753292485656560013667919976158063747355965784952691050638031581632726948385483023629698391472077930802046652357068773171721361840397471002482392494761304112193105154043159462629457032923651391176877753175564539418748402873413627581083797518099349628464366820764755833291545972608900543699606659092969905591668822926870514315315213082950538054722135026178922716561748405159440542036423841284246928198519801988322914501969217050695896621620079902393266709070438491975924527167451119431348644160975958587283058854799550306929323278359900299586397740315410791952390912045946646063048131233995875252348923913970086064084991668079477731200092259784512148462837003797557317502612337907244014779356073704317088121038516636171284538553657277655993883597507228641110759934345365896516272325875268284514282209696255193115386095468040979555936953578096866797963201000746608868327597349661229587876394034710865530228887906924208148546956999488364860303542735504021083568018010611074530027730307788825976024709186435948261990983493109242670639042255485788843497115702106930592032739731967722649221957864587416798724105905703458772633940113315387673947707198072867581550342244323330824831632597113867985846789556999536516290302456300316263506395223763131213184160123559491558116749329922503791186188397141510571178489221954225822230164043157492337527666037378041944433950668778291298142610358262215747412832891752189574773656428820180373914313842798444594254087225982316554830702983445218229041345938156309702138359589200857460978309717457510972663812379262372106461705667312485503455379017676483003014444386112269196119209436127540083994282839250529554707193478054092386814246626501969932282387403305949394298669035742260038684979266817810733244075578415040001869647790054242868329517098729720241157102254537119882734118769981839939693694686321183647272114329736089983229845008998281009957593788411555734903947746362505187334375867331801920578928649511948443399704522706094625209551712842170788499835226462117640881932262680208610699415026621039770982618007687658665141575139688469330786623849508249001838233728219364217554418902345878737122353404064113788441656976055045904167126317858189504613927063270763999779675286020846710509906114682044238896472160242486189465142980297758216607652612455160199273106986215477936976035771988045126478339663755094351914615936841870022836212690684556263600991365464611003610238035333235961996526322478065862148305855586699542110647070696862620144237861179134916244815425365302563765348983697788015401642533304907187319712703113198855944235415525123875812086200478318461233582739874673466102995615760916025550980577555294858009843470835855976020657420024398479672910795787718778400166363201632118432135395124755573243100551629880253751594420243475174171975039909008018926280715096538614128156197519956934093050746143751947312230178907840275050920670355293092093339415938971489961305353814910214454982934877710644334011469490078654823685868619621373478159229885425355712112159044088889042731484062691682237612714557067327704109389567288753244829277661477349801170636086634294037546818842780456992407255943683134030785117897948907705932534510759666058321364077942149587563530284390958990275871888190219308216360758191478940167391168331050641963637014123385013323831099384186740206177086621712497723897705802551561961556233112674067743958515357790269673587869602218094094749308659049747974396710631979814021481271774499543136221465038729343995281741828437901170688972473223618453146069424033478833186000875052780814413729084587862318453464395810212082545957633153351674485021086051497643355523620839370659907196449288640072981342810416951254500344446127365343144906178937318237276816940562443759103865568145901878511408454028790585176433601972934644059427371594173137515919104133314557894028508639200613032000892352526562622190734523726891631629795679608500515851794208799951182133316967584316707156407366347570327290744787612508911205206710608113287121272735530642808604644275575450076263137296310234465411666549677972763081519799096860120195067512051163534274099325612822942154936617621057203696465037713146914298109382685914338517060857610866831973656017854049233899070259843729214368795626274001781514537959326628639785548961885481194219205805611200774719292731505365011571943765979444865118715384795419895151679590651161615025018184860608407872588897840464566112114557800755177197052876607666176142416161000323842839719531720895944865332327193529791494908078558620322093724258057421393607260618923680388969842826938244012813847090076853227703748544570688643404787058340155777478734447272249548449395208770100348546994459181342670661004274097458654600857303119261060819792619131864333789297020084268911141666642811031038508125365818226945901252885569604930219569536473863621371174559564901977318151655242359466390640118639257036358013360262024327597969233758111074176955470618155293650331330498127545039246710747203741282514275600641788796112282391399025549151846003124553603824211966787624655438254834818936126283529997864734419252334461953694297635253824100103197992187240970069402396302651139783298842690004850128045780188570401349235944454716906265308639680284679744981058220990078210895965879320275901270141498359027700579126031855605623946715228865698830995755095927652639746848082639062573403182658159540376899310559039461358881706015264463671280078564317300415093169333662599734340933804237411725899753810223736392337440332339875072233602844825088271613174984418730740154302519124063688777799890026790695782539711299167770612138283340390671680470494725957071232406651415870759062647103815825349832333632215783710137941144281071277610485239239560875211034007099545360569514446711436126983573418383996974020457383856786404172345156523004373853217884716033459796974240973592739458409020411959032234446246344207947835641079443072145804902240590513387015625913600310895045898871585329975215256866241594814544773619943756491654385106686190864939968921674470223903686576371493801420302318641059797382478287675378616470898951056726869104661581103219407917642480405336597561243482943243357835596939065799079315281858671433037706164293480147311461702463278708156907259905457936706098836027292814060691840461029425219807027872503397383818884169238696723748346560298338846906262744285408203958554370953294340486359340051112228815844679506016545175257746758665862257366626336660899614050043191095048943878566419609501019460414932010198451425183032476564627102961283749880733660059307108031893671280882644104487200621657125216079413899360181496045186320952191320641396226214010009733676419951961704732336237441995292658083212771106664949195438342676690998379334693538584204174070033341859695491983546847991065523683802341060521086944696786746069436455235938583828620085800756906016862395847682097397809974027198920913595208897937534895035762368678364258244325372123754516434994078940292306217820894103240788197823831644066503346385774544021328821213223421710970144667792803331809102161032930322728810696586670212035100060162348196513931931248331717865341958844415671227497298314528768916230671915735677892230428342549313860755183312730902045130600617860893983026284193761709386174320883866141846955082411284371384119566270313731931533922850469008662306322707065811570846148170579844891283614314505466032335818715984827256084786828825047866057793278299567038861967342557971901547615151574960175583119314494451917292712860648368982782594735925420181985185467871681719066574082622164400371666300015839962530862255592000221627849751408387909406857161718164758667650064329561447202329194922821954169692841154703694544214202426018067109648407679507259614778188656795666376368728713558107619104115836320255541943241226560581595475908932787990786787285086029257598950671305473397106389173051305842345997096242960374579292086431758448253253204712396625470666735601996132426712900737982349429531848115494549040954541736030121507691899896999351103141346925411383862449788996891639342115842971583668882366081020058910389657546692164757464007363668318763084340018857410501706650175204608741313485632429114187995864498955991255732146539150788561170326249326073018403982297422882536404074017272633131117513850693390475978162393460193518746308907898282152929079151706626567697123226898889084303713518084316020901507702372191410041444511352705623213550863896776984375072688801066928978434572715254021644640774719848442010177506563388491781950705645140580205543339157002609175262340915641692308279522567162307772226548785627324402766803595617760204627742131693668056059184746169187999281925153835629378374671646697965770532755837482804135921392018531008886892954038831318519670379405778787713325546274730373811542034490957741818605412241488847404512178359758391887398868886512207429289703744500176557387794080158570369963554684730295333170465268939584185152725800834837129128247576305716963685670828106139241898837623776367993988478908279748277735352653986786987631902397801831621113404279186208798827271247852262605895219785868649575210410244670121900986744933826431783665732874079497883417391045343884838633562370470506468883007353532312106829865461689776473235213819788317877782202976895572919502548749553097639437751134793898797456901790141600838341916878102757715435611455436390290437103552903130262206122841153926137523743542701381159332799379630573361782476947917452855246478004725482418579853817704566418163641729846744472137877115008136507566982913223697903861809603875706058490620790407703001705718161866447831792827474396317815592164260545750292719047685740169388913018807959015193137434177983524169371642312389182222803793476923673609165437329668499096037533456460191111258340157949145598392994885455571612954738854677230073115112780093578254282394810061792842196361743198419331537223714954040399768420345776183048132681594374651247071346363163991530890526494013005238034083720620602802334104277884917530485170950421511138292552202311351770391256774028778399118929085673972256569068691422757591255149135519300432061278567493175309185390494132654126789538004535542249780377594694511885247698410573248157613221538020911396491624544030267532643694198541936459145455053656298068916357552298609139251858875848721191139825710015437154760602928432313953393532837258526592943502578106913156486187401665498333288954782937094118388036529034031427262648971313979328247555822049955434667064233006311479769165841058621995456987347730291382602212931081541416398502970472290883040848416524377829979814818582536362079976359732669870453119234252735977905864813892377336935176929328956445705407151274173587743778925043330827361857337119534789675941899651924097870818972648186452522153623084465546240816188471645887996367500094457034639295851103333011987614113881708434609087840459704977431088841081608789038959149627277766011097332162313321399979399162813107436693867397590888751437121916869833218724001716150753680442366815426778653412145028350215706886918166225876702421743551396251042869358016555032376858513214719123237016077974426933470350343155005387327030799050151538428195344585652096585955231924919871221355452381717471056562699146262423648941924751906448697738674134722000320419948328249553257151944606680662244746419554655036250427924167172154413052021828401840656291971113087181913920634560880911093305884553917219360388017554511190751048526614792600523300554934935853257960354113532998912010538839774893140367370926238225646842525569388336601532775316044803816042077182035390577710485156977896314806684565644804772185182858505863400917030447103626870665285800871316076020965122634071457068878866600442698657880694263691146168500672625329755295939174580441444115667531187781420210045045164012944773849450345809304353604200628698772037339589392930217061319198104118119678415685447473134485278096292461408092614958718993585271193955889045134670640260268607769103392001058304929801324923149311407401251001780302692052528398164951579723845073215625269357844723337001173283132383067279916127416332023826819298903268747246761572628977784758629964316138356705612293595501919688458968452124375483139800284677674447761918355095921387766607864270573432524914417897762127653981849293154390589128145240986120845515652616823896812725599251578576563172690984866538757178271169641386242246245978487957481098661668075798505533200346460466928174037931214998891116419339716822791739800787356628921983745299056591825269818385875755629699204218295081250742411855451927264199003530665746654807469891892572909399827611477656423825516252375378965080296247857213827176774140146085783216912104667090561594590073007449671554915244837758464154529367630103662841977881858565706086525775126476787123264241845426353387232778768186506098059947719184495307974820331176136576301846812944628220174735746703134318187763339414520067967922108852612352842362103917801574989151548736405332601204147610776385117491155534314804644115003598194297835273563474678310455804511966509763127592956788538752005519461490879067373205238752401968007693807584687463264034154746258314922621201422230115051131208548469468245213616118927181729898088822639286099647944615638623169879249150690715229119265624764518646047719597268856483913484328433710255375203504778817550790389281917787403019687790522198698529179477543081597145245514952834312072238204025664107758590001473101373620163383707707622681739766059462862610658113463584313603084107914280427378561444280038427718061629153188432295810490306423516592345594745183228166158583504874880426956814454766004488051088161410678767363953729729928642155911377166081984024145397823850400896474001560036102817166682079209485844234383163407433853934484405324530998377124379163294101841490339529972335738740543590329266393812956196567993499859416443320204619732587214790436891108996414084838143110007214978487162749847596100643111403214330387032567926445429171215127936956018206457330912566008165349190155527410156234765158329248508644548829667022010575201254579453433467005978030355193187295791811890925332516953998355087581384372956517264536509669276709556729374303076549338967855088032741170132765114365124009878537694235623125152399971601090548499468652775143289027423608108564772080244573537827898142575323872245890861629155682682870871405372485378808381493253522648396998536577040637016154798611348604352945526720781923400108183331069798819028602662351916073674553451734756620069092671179056190011793717627245998727683111056270456550125618102234850925682106532194011876093606655896631515802309884828207687998864861697433864604921585731275067156579513009300133751885513984983843956951218463906649549549501228818790101861331217928603877421896385750121052170295644874580192275737432104146201163107939466856384386696216967112850834257093058057543837106525828115693771044960400642428017233754860326952667844386864680008813191046789516970514818401307904229120493376338715012413975109032878414037606503883839691062307620321499608433931560662200509401972224836677649046801865640108966720708599349199603023807331827066102850516479474459382728932374756120051697516179261454557675845992623195090615523920947426842088662492722491138518303330978215201387366075232184395497798311112125755727579588631488575554147243493052197282399235837731914662129932990856877390373990697255698842903405886193313128734613232326593700327810972531045166798250490756849616843448154540997544383508643107218424503167547663827127903872063446500685419851263083021536677972686925341298732450313552693006259564311261186505320741740472163033697983027237084118527420546392539936438839666162776136674635803793093081812956046317627036794194736321291559853533832339255770222725644546426533520104444325359114191192888363446318177108199407900841725963145844325054615789526560448344610543601879256145007740898973571116190020595101634854640511084988800807408172442937885286825677431871645959570865558446132483254635967987301260119289665892322033563191727520315212502213847324951274351403038953388697475715763164600420431512272368723986028825365547709490502214312351779059658914515964322935709749240243970966705303012877024016093643995412532769375867496434753159233681515564126195169004643571322472215746590935122310048344134668535327947658990162267318297208572033115742907074080214748120832061429965662081129610868192743568901371079804844787406624607937511552985581511525571079894948591132502370545647409174218775735178192701796331435582519464839898696483414326001058814378256870902610480680808615160115440125636268775344365480057852557808739693899623811263118204309399554412925117249761845561225489701520998258572869094449995526909170732372231406878027255408225082113901902324534821380536914667607722332044873839524707780528784268750259322819006838851628621337830027919236660768452915428803862027171658296783475343475588493223538986570769341228589443214262786042883041693887881810723875577681168128505984119470072685136623513958462656435875830360763430211876195575621990380508878909486275637877662643565796120549487877518438744242628922426095895568813619932921107956558816641215857104300881167905445253909403969478094976187563896296713233197384646737557355740149363428717429383818776507188930200111710778122962430810405988068331155155590896177939478427106833546045489871179845008031140834749842423521858336671451984368660058485210607346898686812906186278047689686545080086811272100710093160072358792696096805823233327254867890135993473143268153017840687949680055411528365361624331338812495375191953030575216864831608661797498525984973899543341677608644610305066084833619249349088283927531752440128676631398796722488608152668518203186448836122162795335773552481960731071809081063748390670691340541214307322898270727616817370458874787382181114295024766160596599616518878837291345956616001952757014594527027689006660176526803417091107604204293196901151028524445969035425055821338498848387278777133943232023425857201839248221414259109403653259238677615325474735622242394887111899401823950562100420626606018888012388685410292828281192942721223841965939965262005227202158034410442142835718202393182238724491761696608786578603741975838412416947686283313036710069459099975123655513871363499452565725370458547432600726446571633160316633389780559082229154725584103512778316989281119946170710174842404596796194005415768580595639862323397627233718559617299898792168751316386516014607861336758461807660208994459791655360262267614131774987462860923314382967003252481705759084005155439986641175034006514717370067962897028915745269836238143849715677318472439756843202057782650465219119707989594222039384889265114787921284817162486503028872499645655366592075368942691243117831317319058088613996478576499780789858956920407799395906540521705965426431865437723021558603052578351524901669736537455195047765406493225167704327140144213663591174691389669063025234675636724207596616406109711454865581997121945729802023562478668418280014374771613718222484683248694681055970642514657780456611815494499162110205944588581200700263924878152824354771945676091706110749859410195942298326725501839683797405081718943153268063072041241506770461525590880609901323990929898569688170312973132212383114105734855677398712897490435308936481974716074461780822581711932944598852628194611566668992213795645931686216150092966032523467088179423438285839978780063446902988208942501094813656266024871895009027718197189165971856359808910277247460511876614738713210557894398494812843124715804704133576801560700549423888226769029664694365608383816916166063718688776525414831266718184601840538625107482078057999387071058186708361078578627907735640124881055650852966981046345021061993952291844306972470317912482576905828448280228935636803592648782903490924510619088363006187740707962817459500200896710224867433651627179361831172412299174938761718493842272575379540832249471386152916434793265650421428737536097142455383061763362339844364695188294071063164039664162582472198944588461030768099246066107350888028785828650649595810251931063279327145111237310382643527366075936845770800656532284451010671630870568469207572999696211552840928583746335057211440258881519083894335057056672277782225247309243875162173929546649369225463002187949247569691347056461468653063278800786999534233495851794859723516658857331812616180959328738285156013365200586658612378335834807428553671734648006404183587636959971924611613376360281762129964458969823088406705666072417133471500418710021722839757442360347274909881471190619892838268091641156800150450077680314950948392461779560919053767627701759741588207118279125286399216924191171799928979269735032088220931544262946554830133551159662665752906582652953799244083763585231850021679039673303286995648083814229284712741426352681194938143144393267043466037536362814362087599102962745246097738729969599195821784911856171164034632393765664559314133586937048037206733793981336187307544685401456530869160348923524164331058829802136954408124276278511707560497291828765886130358965020637971524913199194269813728132856855675069444609446593759793488382414887745252385435327513464046237150042050423395483733241710729108477662081688620738789812874080160049094686801333583902399452658670507676490502938132109095522991702254024200730244345755327870469642667967294732902407799891192334806038067587836662608414956448167614798955689504584092629577748784051467791822057902106895416490592074615154977654346551323884819776105342604593989053527855023822358090714571681663113783326465430167050251645619345250771045188553203241549768525489865925493013302658234883889129535961568723332095630014098329477900033029153810755318796180230480069189461015625317093116936493830047753129095360665526839560142950955872899858496811424150916410365987638781555678292442723791562862447467390091641275866535318617172033600017480030608872588991224635467269838922144338225995088884209722072126428231296903486812731578600257727767973588266875702074248880721077896003091048495017951696010665684801077791266335736368002205025145835945233300963703768845208073959054476628792220834744153681823634160160872879277454359639603591309624104531530765785217040215159593286340734714000350547130118907417253860287702532390112903809528911748849929094734583019914041087663538658634275473934050887828544305624887990385922573299449163604939722451901511097853611616674547239129545855307288273449973587473633110420136988976563410110945415414030252418066508196524949225854795127103144319097284399607971222396991106473404376014712055101489736461353206716422493230391348357700151750336071578621426856172319478927637560928711018924608189979427456967558580529957634190065493088122187153513129176836626295288259874238245327226581894348220315876880818407591516589843670481558386946904811922882389686526772949941539269169913081393510494769651851139694111204076606769868987479057952336491490791371196170169812599134311421417378427731047423264317984032837867247500487592173680698900529474961160302339107814290196403502409026245365627841581865083195147839181900509038474684335262696706720158318834113359925895180297133891165342229256564641234236260169095652825773855318064482324882133122972932443280119411815433806973097945167443261793847941355821859563431840012168122585927423007366602460651386111631794873834580614549058096435609385707556913048138298094780357506235583130982319833247822152717117390752321230117044192802473899916185207050776399094596726533221466133299391420586083332294226562496766953490009616024828343317811503576968352600165885659884070596649456361675123947106836210985156393533314823474634980193596006756701771428677613930753061243498904062443106672250516271936257864664913214210947728374161636186435941386837837062186070987512387311794014931589053362108806784889299232722725057301541214522098482260220887542098952548878121271929502490868038627223728477219250873345971616803948861431412617101925388603675905431199797163409996544288663499515944846082643172122899237570660454546214759615927842752010653194065302125204318899279769384090534974756812913004888621458853025069921315968504955200306683243179080348797863873104446097062242682557065052418496699903014409524445718187494349582222912459417979153188131458370437916479833468001037737521049146290897721754455322314371426248041667727840139383481538284323531699291898102890623208834683947199530756523156982939737958104083377354723256177775294780230826098757189215495486201342741429345625455589462698866413458825000979237097626573104240307014801076026192393835398540043544983295656124108311005422196809561577571168846174626539258622285079895781028788502428907114474913222954733360239019385293461936017541512621014073515046522938278572697178593737531899294588046753872562616421740552392299546933778158804922433555484150282162890005013563002976738812166592736749656838839366242324534638463853826444679900083194456212295676620352490819135726480560581067645134756597140767406349785602394386316429720105921131306104291771499144826444380376057421260828712882521508574549515587771326084497737758664288840466277252943671291875448050834459296746605539394699903352255164626150657881417724418913929553951779233425471370070979504577785700032688743746772569796831297338231548932781059539485848964791243755393251665968400214886477608018545064874532769994903206482678582607615624612624214061272808079320522089719235962465909861489483799632724141945210581381924103484118774864021668903128125322543176696564325722172929512950462007589967401790730643256356980269528135810759835590130422091910552126411137681030639590764438017195953072881681781197142456607478040783498975299214828296903920139985667342266405784152272710821037231799372885835901279693585711381709129616059539195696159647917495420555715240499425001696808109812942375396478043444792730663219705287340949437894903774504319224975767283671708069021607190759342896205168055029542308590895045062508306098662295465733533669040363050097537861984916016435980043705593327094609183468899126625613947790891995759862179989118023391986036794595964315093194488270152018660142266706656566563657293371784423883457629042165946982871166138079375264408932620824765234707097670555533773002306682354997371352655308518562327664495267530005281299055217116082247704020655317119967970435243030431400805655789454539866541071306565781356471957595146804096722138813429881190918138943720541362807348603313125974879276777323416810212642822530121468946235676782395414170329657333239568162145566213089678865643863870564739585412625218143602773569730648164690490981416043451465775624862198388530008578326183744760787373739022272457111461642790795304099644233679626772119064125788654812623621521678063369127948919714134702711976412457577026631342856905014079923165513650570129954924847247206530342424447910569665344302561082766415079089218388038640879061958177959499284464274235892463709182720796613570656855485602286351668942214030900128554898850493771995077039873734759872275975570838819275732118764140064516749211616701837102177525110281174925736854520576779556305918436170723293560821577217335461884990965389160899671153823708968701550300875528454986209942306135452990203590585358457014370539850442550416785398436853229584183816333442337805166583539056773891954323683136779562734731140293619999240209947821032908873493403636624880896576185004365904385019616218100123945415644244709895310542914991071512895576305765194141714822489351835169092733265686677585454531050956346715099588642174344368141236118832102422586882911844922625097675144805538007228259082688884572944695861820260237690063909021771594283179425111872896303011755304495973742473096488838237677850844390355776938013217470932779057838435299670866099450670596556113538525735601773916723898244199342988509615515409865109540376207804987174021558699604907621005297524954140069001248378155420905941199838320414401983663852304354427863026755296873912453339755448845116837229504742362814209800473316505987885838253984627304614139050239864452859709798227856669206393731381566351070361760009756181500081852364466451445506626951787334071854147128293036300461995901774891829434753352737334688802918020201661408459847614736039097605458669665841969808265903937307174447364876512012029375571167867229199231381016355942722372101718974768574920146030904093609735846400132676939769687181110486017458318109347174523497957964853299805713506258580467433817001646539003433563188899186205545324935946763726804612830650764341351839189255341456664673487235103565530662609794485622194686171018817731988547485983693642936664490877064494137323273165990074871084574841185439344088026860492018134765016604135986752833404709007003036111544535142413913934444678656914780472699717764439933990052960860324577637377943964525268899857494579161498201205236470596642273461863342774501194254316601983943990709933844266175073490744728548764052356725516487822127768712068389534543856530163398885252580176233957080042851768567064200183341848430500881148982151701618334813208791764559327035788150649607103340167603187211185961775772506721073281851324458035351343299691288345613281816621798674188537912768115702390229990709013120568422805623657353678519573865522228982098074603314438605920447834877185272671540562637403068421315522381724002273888300820271678651114455789049342622012983346139936517836475473089515711962317626142261082629426239645111481228366009195024172509168143225769635323540433322985059553891277214991554825834787689439503463211859087244067655853184453712110334820225064907484691282550894412389597739112207398600305532529784861946556195735149078424630206439358183413527417737357268111629422574291636653345548083761631254105427879903602274456646003641051054474739822495055452993341915105313300037249828233934613530555065707519910482213101687320021814938194673837290665637947560344165297951614604628793404764063855898819485037001180305384669129052641565609631039980074650414465513393494613740675004481872882408487523715345125622701172509130616711960813782533896610197884889720185689371995328549829611299085525541321799768869155096746324250226536480413107492248097295127818947696486274941217340404848647601704286859471312618627382566208557624501574266751776339610753600377304701634141007651749136574449411278592435658526013226429842778289237990898659052649899596964333773522981493611700761557679885328077230426383475807388821548080717371089424882547066599140626905285886923035623076214880675911580543719397987011539800059206289844699201969491190457330809121932134976166746591168934475776631854616292312021728453266798789826114740788392620067884724452440118598281206859244709445133350896540680610825734155289387867583870309033027031930451250735843041465862051449719829567437790613919433225357500475682045887620924864072406449939707167967955184245350571836079399996643490024778648662403547960613047811076286261902127762424311850115057169855065983981262054585641969782561633013673154767626296943170328115237241606361621937657540513637261804815013404252254522844495506062725516608984270090030314373157043590211849610007444024284155037591910029988749878383933599232138862104620774292147941597571346228530681630814818980706739048270747282418811346880380232619200711369016106327359506056179906268819885261723832744272865716146631256163432977308556273380043355033937304890111847073435190886786856218565670638254271674781260469865245292012525137413275584206074611270791484765948210314085431123158938822597658311454641944414330107459467570387700445138371406865697095377292642424937909210042214547058426760860280294193193792836492602077291490993261336091290768296521380869234080996959716694519235586186783257559572791892286299999639521095658750000539472438316389421069172054579937988460636749002678425945383518265989191967418096723118684474725132977295524667736377229249326443124326710344982815342810648095290051084749978010489478149230010042584135857834752139999519590694783061664439007668870908466447371894321273526251890143818806745059687530767420147086218018014461305781635525431917955137658990804329920617723800820977519380267819110261341646233253993539090195124006346977073774081582169612553175524480426051342585830155858050665859959337950207993366901980760584675650538283607290320429562137773069279681867568367352141369245632793258624249318848875161211362891758267215817926642310838393305839080889576662600232473449358174450150314256818060620219368091237528081290717764684720605599636866652101710510984269809028704670064355871764019757734892499718783265252768868144760914021334021358426156928184419058640138500116090364621951540094480700118720572439066164908789118380105484362143584814644302672363397347798632379843393204512674648947928773401169475599239420078901654872990864692598566709537122532589250153457867733665620802098072581052579014628296028636320923462670632708358430730527639289232158425341800660775620625809017118141192565250700317167289617645522776677791732270724105404225875932989473319717222118064217729948345334657716739062463225122290706161079521094862375800926877755436737138020922794282004544936722096449205271900144290534939670295344808745435312878205511466691061179116643265832978347016905279029707566724565449938145274578214660324579401959904287102464011894655996605213004659752282028160587883271414993989381857721674067790727608918974626013343491323709072470668353815856903010426438025218286143516870446497429918795492002589921307985110813519280264208899425898767906411407486877873854589070135506213403574330104808096124914919027026917112367717825261130483912854915006526349563737813564498093865080942678841400694010073936657526870011398964402621045688653904318506202555829511048073526959805749887926880700603218312165806761621144632860549246779371493186316051267114671951489842727739749263585019138574204532435387450667247626121687939047278435161228641749296861860966650300285478747596285792030245528100922284491943173001809854419469697926376783235012359691104121945442228805865447263005947821980073370868715195007914259335957555649984317165532039496875084907872703742221221017104435811465417053518063837146259365765378926989743657897251667012920532710154820114817013054684195123785443721345913284078794191405758542863892454711650475113141224750102880297771388869353870563025783454335636326969857646573152634554239695184595855283383767812794350803296738846064061207095484641149661908090148844227259818832691414377636134300582769335925095362885221367719655161708961164348852194294762196244557705472130996848923477056582663651893449432266862040434991038191557640008200533233795368920652743467272861841884225864257313350828971454750163691007524857638378608358842553135999674120601475654767414430818818918076691692793675482084299363092718849517407317646046721149204790716235066495233233428353536488458562790864664125094279737141166905549341573062421084916025882143310476692463019086149268747156185238845389430357747188928228053544925132567884274859841888020454834762725146299890733908203913261227803688328114647316518496023857081432493406317692250880483791068740250922889426835213158581637978616126788985934527566557584087030082249978937201542329059228713697297700083580812737733186571840820117307671374502438915213262186567813022832340454969159675051028151716974674519810843527430883469099305315880052606270944991707448516632225713051690700523682692543702812521312701591502004795934882011205291234950374830925000560156097036069512921532173265342523569879105393448943726056393215703067979284188248539549866267695039648797516680535413820798200914012832698016095100200133379316941122728924899477760795967518508582266508260272090870766035930580183216892252791902542435209908100587535816600226721684602094729541323032228313977838806534488271109727666793517454928704795403324239403271292219572872038531430578874526652142619088210319334763948662918906071519187145460197078202799293703824501204693546911303978198735630114204556319344891577874128712205605821677548695100097756551384115230365274057416992778099320514814334879334567053976508216189123167162301217628953292099584345007372465641229558564581275188736727854580276204344595690180832349073409041965043510772113100742608984781315978498452629440602560112912368295993624194423984924241725692662800914740292903063552288256843183346507124889323486904432050288566172821690469512415622784234784641960333920679779063886857684198311743000276554051070798405189117632819597860591622585113472707400333555160953056400319658034625276250655736785261271334365698152892452339255109121788919103356354423817703931464393643708873357082739974042081724879369698073454420430955597730692914388423235460860932001765822336550260350016278427648235997620808312175715841876470626680683766423000150637302799185793856036400801716855072322397488664863106645771301540509037451763432562114109150328405747066524015594163145041983102415760624184097240761717391633117403127998049998138143167507973952485908387686299903359997867489796513224468627207055966061368461567264985911757532340067500645475581122460508622872216816212412069575324981225108557073582127838587483789848235466073905718307569408091825211397753716466701428249555358638605241625852190672294283682879332824206121040420542891184005369958398867094942654594374075631035576082352579496182542657558931297237126752781571550541300516495203897265114127263232097646243971489752036391108461952888501059181238623198308825247806754429322137224615337623876711993192932081933177562749147217073056363559755816600173406334315112945742844360542339241173395844210916336107547011575905651710820973845449056409757099934253421987164082884962541257338355067657252552948918861217888090784254225359127926924272759760722377606401878767038974346591502328692380245519595471415738226638892356222022862586364565080736892532412881498473733267633482065911588993357325816776745258396085113209212718087959510152515648664027875296912898317287689074363677834884999454407577458417860201569784985420818673422992641171337663953681948087255347358903904209159254104723689689818082104607545238039918745085873837365914605913878298306311022766557190563369093820439982698185914489987841892269676226531389667376062487485992961087822381647251982893633385564201680178138201504508594153152617342028326026789641315491183656401033565587719577126227800815230356504839276454584249706475932265358004164218089745848827386592127193074354884415825125454873461334152328731495682196483552173661386651245072397056087194021398116946449101408280016472687840020527429248366950978776304495641017686554211749242112796789650888863803764644278299127036340415366686754730809992649882257369453051815065543074345585030127793347131005931274184519685449525506351508226705051730764516325671677175483832012016272784184556733466484610536061079404744310715157033735480654029971997259826378226205261330661507394149552233619367740209035626769773216183491292263086871208086591155589564535494613688514669936137275249375840508917609717260729860782809660717785101293925346485528999394392689889529329542479399124099521688942326358482629571402967906908270084641905438427149342910845293857314970995882418306092438010839162781306402993149298395568809616954798988088521624764375978361156551324041711882002329818730580178875654145916851659746427973430567654132336491771805081753006411198018460937133253427617065902225586155651039576327257692706602571467986634284760878055596811488413919239479036861270249516185652942866034707605596581305146286288232307115850040344438409010733646801685047732876032082680975222082466176572027682601398416310631172685261487325679569416036810078606941180217762744395214037114703543115609125016778527167871548835919670122442504784332757866517990758852201815253814644082621247455387502379058226476732835023211390658829407080998453360705085806918979195245364972501960520007453137056644840847716138888849627290040493239580687698728039769289935893693267785374770392013426031312058969519026606744314436893980906395519827342469207947094429018930093036225240097655346325944512058506504955061815494540359927321719372965704930672001228867748295073104399428219618146734741119349227175292346996950872686157264902521899585506747036075803242204393845471866444687060488756668660887196185224289442603440273346253885379387587861616138767182117733806856142251383947016033062847595543583133591808275300269332422271478926388113520825073566982523288537621183895712116955138788366259459409446260140923299571419548943867748880351248426074564685320340497643524778233554468004517578327484907212632191829289242568445710925225159476917670497998575445873825718500345635136050951766274453889014095123389708430946499490053149565211111697997759187492021589885213696892860080818579794090403385875693385087311046713502298218666233439421618845513888482737219010246476008299144412685774615635220967310758797644307467728630625537734728118591609530804041512255573054764791908367270105842265390021027223007614530530806527907461814959800074077429725930279184541238816788557932189580538887406346180192941699155256425624202521317706480772205533369796717929406890653355963238896677810654029372790805586810507054764768104883039731303642891443737141889140302694745996271672866931882097650712587100249113309722208289645524147306794700017682022265314310129834421450872179419127904732588389738994218802591337447200943024334929573541757914745665601144338590277300624794656127869320501063293399383624743613547629755195352796648656711701138518428386744318969695097499145004853691996293307715648229383935238659661881750310229114023173399052582660875585143734714976211829452052426176161748999484950163884836210225427839888075909727665886561749191509927558897792693871009945271911546145039592496566609345750967005320361223278253854920886018096810666904852541875085065281079491711683771901219303271516626316450479183912044367878070948061399123070753218778858492039771335736929485782196719885969887257768951627880202666888492485861011072196576251291910194732430509650331443885657382112080200981905929833875193566406882325314914402302749322897139481520729005811908028303688436800235216951432445562012798852957766328997561383473052811570360592769855840772973768653243047178800062126890606850654357085282134850156690348132928459048239532353332666328308403298438838516508186279553945022604331739878427272574264366810120768142587552515684509240721310476495875934236713759315442747906686450617736894205762330666991492013309229015126034590981825704575645309966321119195326015446288023149061917249735098895234252935589745611540962131298663037695277603849303424275770057727453735702998452332897690854000202446695091396195200117352122024776983644045528117736986309688911283921711749672418889458631098069282291091480358133195564250279586849667838553531113331478631532877672924682229051274856642654696706430483883534186778034781408577140210464511314433372168859777047843394111240854879957189994385203678763761547326289315774619490572903455946652827938103963984963423655812087129739219505961768509093593934000867532801048146658766862661282195450322701065815109008308689225665495890839754484166482264718034842340898222553716389036390026246373594179359781307879672666232738635475946878553642189918652798131385856202575708357113190834115409795197159515246612332539416995604941238202052324643766142059559027044228378879567477065879677286100840154218723511143907227202622445267664128051966881190362896815407850101402839649016208560505653212423281807749316312038055380102325141662328154840188295529602199411054165471390761728294402986445002573691440809393037508569325340730050677549702770308104704274484540101197074371137336651104887373010401875297176349797520161810859001857404296812806933299058598787483420913924506351750470432036343673569923169349394808775079472595499571618138429754906632839964043282233726964855112094360409762401202110637945288755130109171747062944885368573801380451790580750688196029040779486274135270243436102675216907383245538895187359362423969403228582677400338098047636504957884562432287196322655620455918371234624854282556697910865291662678322791521694689090827072105102579487110319751249946450045035606527865829683531912615305129928615801355849254819039412811229369577109936255137659238585022827830885418142634442388661098839611519408819048074041477145658400906878286497404954532475395386422355849544196063288068394870476709256433600211641420777279846047350476343704797673005997937473860771635096512348297019383418160571486744852358621944381158182839761077803314885086712556460256195840066547247549273332000587185373684756363962993224809424602910100504315051763384106530974548595717742528651533731009432704240983186249088177861864149956733637554795914260631083949830186278454687949584131262884842710981826733494140149714869913993345801492291758707053172461258359943552830584526731058117432968843909489982730883701361209425388172056592768451567695015839548017721954385297454545274195678856404426884549350195686702063929409702550673271309136827301858705612258111860032365500584992013539218980610126596704499436769219642856296900106938457362054496272344175366784404238939365516561440674388679574433282302828938438368008162545857851240564795974535079509982121104976374137703909480959141295411689297971904676130044553070057879386479125508000938600456641578515113993196996412538069971689641805891281729664689903511064944571723589518059201344602993374836979842361896378459213900878699084378423274104066658042010552322470680952972692902044140830007219477651317439034978914970939048401099673173265239896661234105270012326832247463421581080070929924905369103452172221006367375574883754271524397702086115061571453480954393028187679054041653072703384331055079160405966608063658569378636490503323722918511256680918129389881975870947973084572181748060239057995762792417695667648783617946387503378038743569618231408942512406139285521271436179593117021641605355894158803203652326227481883860800703448245408525587427258079602840652559688412401500829364644771435684621406371581047206995382215172547565255277230448903501763179718247161232995990940275438783312496163010497274228485594352653522550602833248124885809423533738058144618368190767967568601947395039229645976572282401882770302387688884371297298405444124003716433088965964021678647714720982721577941970901419616135377837340762861208064722131898755101958893833858034519005621616792218298460219873226182490291118732963413246187941548354085229565943760984586125915815376392600969289297210557559678366688033777598369540777287477229220711910217067527019291240508291302167395111292833484916749077194597550426955281690742153894231308302652563703132519610511780453011804481532092360702983002283393344646755829135334749250735868550852893942749868904680406482713021813780105636425967087236334479310827428296954564756663569434135015932380051559807783856287220901076820116778290108946651168097231534309586672197010485752727692087406006748581002547768479676661244298547040710093088519530461646218431911156060043904247377951901119597748299368757352185669214968018249226936423949740111007789859709384777500892095411943434892676356092835721800457028568514017745984683367258449089016482924670860026148098091917056612752268772749889414670069016056116106758082392520877469778083468846425412226064456028131819399470195997594182306896978174449899261752010942375190061728025589144879125908588045774597307279196148448757384027447589692420180215884815601239013143751736249550419186608812395269299034289498441637171575918716804504677425592782792629993755760639348698859622968740810264837294613966722912406457090408900910596993738756890730989617832793748234484992403730587029482160596081201004738084375565454940739821667115309053702654202063659910779538925059327563564384660046642341456464343125337640019731830394751734619328244290559222175398979020291785785441371932382488388177145017419967758518215175336615271916286886546917059563537694418368974437476060822956117362074103611480619015194171364835137699536319920050625001321279010919335433892644315234783133665115771950555812209258784373210605609080994417076096114278510054000371164423191238486961291085547926581055423414659206085418385621685364996435870443526475327766445298356890438960596898458903496996141825755981043309935646677291999505709167275498612204129022078215708655230715868334096831066647026090948815844561521394300406227975256511645757005861650380217688320869861936640547725554445591229017357256043069433053576346263688596942621331265452269572045259452398359399484909641807819377438963504910975489326825860888994956120083414806818639633855676805276479008746892927032690466104641473984728415591489901807227576880152461279026419362601011058998698444908731766481291249300675316104237330118314491841621846668238279800957325641377752487440304101900137401493285261061863535690897458783096285507500583006172514063099978763947036022649563307292518021370641426702168764640961244023391858804076619517784369743664527828023702447083267036447144067473489550445536604548110983163996595609147632680592974200424367386585617871256893041660930920839463667329077012761709379352416693302810572443096548160060991418575312370607683522791943773571536814469185541104941855761871903184880360645864830180205449231326152860213878293402622707789852440184580346367786495793580315676659519979010208792549047221154354463155420204772668633623145757799517525192458655317822651127265939879471502093550805082230598876235817416031637377953100238852899189438727828565404004922170858081800499314196584361648998604497961536843364288468583027297216362103768320389601543990762228916091413009632325489299537423304390301620257577408043858821766200900791399099042239658866890687770333815473052480264305493728796800799485233450212045314499510725925204588482044397297060049518470393417698537202178017361773689862643951248106447983744256309641748670517286385231595027449330251512626119096691216287809353530961749477817733827769270474150620356845313762453970978224633416829567994888023547774764797409373502753329505004579494340664139055914534628834317521873901530001914602527818087786063478791129407473871487518571003752915715717005638346441682419704402046234540450830875510574415474730092449188542085266616520775144196371612300726243344131996225815601541266520555816010280319134048300169674125741564094211293905351829264364913573650112493446756540329552479442656484502325548894349326166900023998587611528956323945812579209191215397177418812578754681230126898059533911511502885484296960893311345653114122817985685038854257967153942037021363105125276192158834444009970515228753375613827171024325725235052678200234874039010424762673996113796699892666665922339803499742484551293887676190042441231992821475984839537109913457122984416332196914666628165580784823719337914731843302560748402944242750950990038172845373599672011149659452102665207847624625387998788523770768012749990189675240070671379798898164607153381659374523173592732564075315078101389087711672287981791289002317956808652207454983519655597606920110972525920636317521039603828114692457873859581480607958380450430850696708304169411365479065953347589509512901633502940941278057743795334478717280745614041626178601798815369842582383288917127731260669783826117578012358269375322498433957977983147574662667481426878059280961802606413948044061910031486269652170648253075299791935114105438490872004391700812298627593614832956787561356545744895757138372745644578122541059128169873019495717410703669690482418292405265059781412816099194740368630704856837670621374522080625136948600082991082754061448815958563497423384829569586377766743716137398762417566469261865929183793860059376956344283289207849649400928374728417978039980540353950843266068965421868405571200224240178193974045927819317905273384621436752807954940196148380272386050211829727115300379177304283700768362191230304640943869302698041626255538203122493411867723676731362029368314440568253822734521555487735377357926211467632456158735584597233941469787553666908505436183098089791726200689393125684413590071751689186185166618404559847526816640129152546004259368737674905280378539512790790367224612198657711686428062614455171486357616188102911839589383472252240123520604895999531768150218219394487703688986972826686074756204870817397228481306846595936157328436918369623933829989130911662813726289248313017205336271140118911351899072318673379449867591576024163994705638211682670656478303548893983830736478928843946761387363142482127845194623531934237660600340455880418700988930309009872470057374284193359014905547197549777006095129401019984543191440519463455893256551614785532588296596089546480123502006854686164708439120790350560511553034039726860239548041345835932290871471078512076552218087464368456933408694224419885943756482954450860998995526601581991530952777017709371749602083100887044956759744076715352477347240745602104951327599367655802401570477116735824093729116418274180762376180711510044757829086911393525303900317159051260513690209457942892157547937714791647947746814088971843015373073714648524365605996087176538770840519052103277333116910681767182882011857440750343160720203505901530291749162535651298823661217515067816161751506430929531133335548546793683267122476766911227012347645035062267619277323320498577246605785299109883967321906697013738234861701273506239168185306134446096816806731301538345039448652615981789759266028102952646385437221443767311676400797013007687662456655396284205927678773307947102246395876527774376063713014996595379006516846435709445758831269518521234105863660132054743514043542053334402544162406714879858975354800747961012545410558071082668663057715237990970115069198085375535071310466039590418445177794009443497542428902973053000599528004283315078481591672018858333607042848022194785235272833821877119085380211624376605313931441111548348438657726511051407599253190468919779231078955342612642801086350706254324470047659395952654998983697228050108679634923001113227773563100282358229106422692758352421796900010567401178204885532321695968035799617149869765675446628746763791458804059094310084253792976971383498465278266604293522322309446861833502888921138097555031855592912515535241932738291618681997947818047598702992855111326821084299126956075331487154479501518342896316119995708459012122595233202818631653681422975304423005361288860020969883870182630231473278524614925084345751316672291068991891333273220036802878484034391301687181201832477313407154476469847803471523194664309125528078324190328159524201208881269916455517001605699199817982145413279420103475906528385561588502346162070067522091974837555527823757703669526860586207665538066880130086998948246166243649113085447737945319154013980282852355477047672238020998061541945442356112563903641074105467718143501323929522017722853336998672167038878864007336339115822435154525696056562453120198239719464773292781336876127930696867883198635087822885128944377175677232120374986979287822609099833214487475437087595769532340167887948150692522455717246719571039824046277069345982181487471724304428836458630878616841070621337329463491130743163842935282228995967816006992103111959152777408757450803724065006509121778933381808113001472419455213804021978863186430962156864193279392080838723638754483739398816293991800723144293918925223108846847976082049171409133441843695267809934767623743342961979787631231312901805147679364101080340857554264902221053775208321431789623317175344374096694261043736090312450876812418015136577975050355582975482559368351176024633889262743119685399055206702577699851158938978308279304679643001201434577213364165350493875778473424516298964557292195907622834189777290534293561486686071116266579964945530816949840170260885340672189893458521722287560197006797513807742008348877090973817565361074882684670844043758464346265163422963954828851916943515251252451943005648223373822937691653559349251214600884627868530460786169514840839877066860839985568553963866967177802163245203615339861503542266981157465955216920054531922693085722971223836836825933402208298058218823718394786954018409716169544463517856596400551928711884108451099147688416052216057033081290428372125342863082968904226435459352345051722938027024153224163024497144496192533798539890221136071621183363752383601765961454553737457633565581267650237807460374144600467105558090402446052532066725202956341666861778772662665333996759860256182472362826693047841899742718810975814687521660858581453296111053282156072552927966237027362475787623069694073750510555408572777280617776869635923550664704038169860143167478028759067475586026711172373213008690896626771315335391659612746104961354629992438531577370946509478682988870297445973945199138744978150926189942907147295141742771981635941654586210551623803061635237642555871729185265424535251960230923018132936001920974760894369446328385819159348130501945983697506612765359285683383250250701595198469723055781183692933131414567925438884730493422714261278676770576953986152059955092590582534165385199732966938004730836283785674852075360268229625481119006389552615338557608303783979076558719155280365958846230832012999063750189151843856447970824584116345703572500209259039439228104190502165108911619254966595009269689417836695485292133252759895530231660821742400941694146698286624596246275346926117995290268210256380243236514903847885910034838004769112851427709030457872869194148565403246689647068355208723815114636168110543433092209302641579079237978444067804370156697755376720083226373851223429756269203186224337635078440209399814279784618496336583829040459160741229463866845588304064057859823485022000230549694584077509629529255943739058764199905927213652195710891652170272113500351554672726642745998577032938481210062501659646288463671726671735305326346834468354045183343392346151751595044583673388755037811373428448473091078880081108347509065924797078746879616079702842355678972870862166019086069026974841874853327862772255108146509345430472015439084546322846613440444087277064815950401599171876189457279821775257116513002042267324705648009970992992216249302770935553684059689049912734648622584072715357669128770435540161401167644986457355960941531012845918334743015238273806247739457566985532497513576815550458321316572666404460587699453895363907466452060317778848580986720217485522378092240725875543524050773342497153731149126666242002016289856885974736308345929824788542373271226389597781900442264924025675480180619100183756813103279163446020274232355664199356018213818303008364930957348787343149476650366445695200024865850871620351656273026389305713927831166964327384231669238338457868697497818610059946508036862587489388565924083849713386442004732512566137129333775616645493036376995767087449701126143280689545796060416402255623141408300439231540558141121852527688612309082340449151247319231888046178377022322654833798210651741111825243813431320912382903330940232249947923283509440490218012277198145731205882805820945942108789078285319001229108540275199764556400136391058290933936639342224172372010947650199833805715098023490457865597887905310681011564863040589353165092909300888044728050246475027161502061507509416706337696703677806168007785556917491675728014742665977571970596053579964118266285428323103296438761438673582258017681287200315966231223227479362023556950582674407378749963076505199120198712853150015220793715503307882449187463505643133846210989884573798958745715722614319658219407472650540319033076677665509703050394354681210077060463087240124736455924215939226017279903163535955273745113218978197757599897768125237543736823801116803398430422251679063001624365271231558259312301186127944686918251018034291289936678805748555274995004899898779502416548497496254209167797135015979320915077297840169916913751942773551054728511431609591417893958057652322246313197945840058446576915167245074079060744073303374021456308381000429315010954504973809624484747452947758737321478832632867675757324057190612667423612380873701543747092638568696893837225749776170393738179413958191327022593297651892889867901843112999105159831929900929286578951814324608216545552159602695389777152131922477583327904850823917566287701321361878858529403480824687655740303621887573886930320686124273627446358503444045120917601430006149873894361862385867995830598655209055968528289546283453087031943438679390443321509223444779416649574848797400501240546922152994327919977429971939126821705968142802571193088860522482812626993099586170246743302836442928109147021911058421586983138431323098220875941248636344175797809066393958396905453039104550397777774843048908160526472109172035182215219271944661866337641580892188533926260142597213258814091292291287775142927010170523225087789479791923019956888311046422133683102582460528291450844347205663646038175689231673088672476476342802433826278779442386275050237786032125550538899956794142268418405572696098424707224546962255086515220135611585146959570381261111126379926568638688487738522863277330150047933956404963160234484504102709479253533121278639798360649036266416360634117329987445670159673968182491460724299935105125445797029448291977603945827167544747625341605831253990590186233687481207081299559272111347207330833697842581417973669657414362920164505965044027298610456412406338178135791049543253318117020721461570130804550771902925258087464559203680241246935448943055207502119631285873742509523582450204168681959662665227687807805299057324027701748044776706357892264822204717619198307059426837947800467238350649058529055123674923713286927336354141744890831204433768237046838753877405966730862397989287298631972560994990803067353128339939403601447571509549013238853664854699285334696493951928240267566414545685899014525654654231702816932347313761197355922731446967100249882862686531429176663685414224896855511606683564913712164877582175597780627424524684698619973813191435733375796169863508083715689718799544714912271411159321321432497909552095762577861472938659791430627247099534357037046856549562594239258309605660245250755143752809751312104493853013971809226660828665284061715008316760602591400667804335597937238516455310744334276877568492653242380650102914671545606675627810989672705375440730058873471990479194066156467885400085046442635418263635908867807847620747304462354659923192392632283677035839417779163520929700765696303024186052526582151270234901010106644207852950264056922033672739503068712070843832198041289971066766195246731996586197677538005913939197570951466188112709526022932632747405739221687665371311254539548993418034720870448169658186532391848336684469654578707809199466297131740728788122623902668916724821859250163703201838279623220140736651604189919338915700364497039083272008649065764842297267774074003940437158296008881851236479380851273373691151814518105361674080089430230197001974977069292490723890714572106734464223512131018311785869596123676266988255322349896848512098415890742718237122376872823085000782087607133221208633043071908719332291625606482349178750680147990225851237146380881550108499310412962371385437685172333711657610953947191281074737457338905665448371626825036966454608138500537951202328644197656132141395444950735568066801621275589380439726551123064162911366069001534921766416888604523793989864957517248039040303280547068568654633544605858901200458583646294756799554338717708260859750695949079992478637317568786566401616567150559224582536535160869842415841875781974321446700167299786480347168187389048282193289625027765366676071619260469218018098384992412940478973749221609720946274909470808637245249510469944104082789169696114403187097978244809372670759592973996472630305425984713232935846423294940152836059656067163899230071126942641284836835458739742077693238651515072077949051858933470420336894813015500100850582598799499891293254940318241844753749931391792352817637221256517921891353365642113238838570263014519348766474447662415509289544541727190276567412592665741220994393476147126954937461031191291215225660685014113043665092933628812572581682370302691852438591954740085531715870586384609588339019088745248036259736196432079171137486292526299492266256764066089096242180110231745773948975064695727594367539039738081075751374817522672357035655114737480016704976421645758757164903620594597986661679679256885767014744160235831452170054132701834723103379573300951691603642452091752689204499165152278822360536710285301395569141670111157126857815312802122129178908658240128692798319233137280222061615979097345105248471660446608642259398212961655894351466748434577446620898360582300847621592236891007696324235366277240457381127954501798885738816328696287997371432256715491039253126719209102080045446617981425149320010021693751764734358965791408318953801400489056853209932379473226833157634526505272255688632553439492776256801798010044419536158195717003714812557227638757781679702422144585409806316547695241116341467190663912069654221160285113629829409928571891930188753111887488521223488077351690502351201098739453247561670206489773513941864921171807913850188662727804294046075226730503373542320491518085187842060613975909022341620675454629450135327475706662199660657964192325747608825509879962460486975441412431296162105295173194349182689876926726129453669438194305749495787546144186578306444643843160058811107388057904113105378070373398742557474393208372416780086104961067218802894979902851496019236144734842003839731273785699625349914266002044785347957356064467941456923222953826575226349818479489728812433000280606767325756470978836344590242942899195700244249696224933184847473810780183331332328433510662139884778438801043587465687816750492091810684310742778931187566918323399120143822535383213210228838869229567612852820125419661800035614732028907648996365244229398028175237277563961328445010045218510094435164762875089718560959596457169091783969374114457502055591456633709704979249556108914820717212187945780107883099919884650493738730914280713992524108612139589243764172864028034517866995857961924633170262055643413504740399721560968911969001227696241925218013995553024943629223312420276169336439742972694195748547837682393766044139334493383178452736801176004921289430715228538037014390402085658042033691010099340865763991880202693263079225186080770908360814326631377942669322386842811145354859394228902597903807985072599354770142833933843589835109427402314575751577437353812405475864575671903796012936201636059452346418891086077786744509879861269806346848606454126918740424578596327979668042068985523991222472472394327904632046335283285094687607780669033097820340389092171310657649164358202525956330275900104435268622294927038645626591298499324673637231230215676587173045017435509618028911788077603546492951566231011705964696177478537059823773574100314046448528512837509933786407974571901334639576702171525959086698797741670590880126281245208189639563256904244208583158753989484089914514008685356113345800865506680195400542509499699915437070129320491358192539699721382162268392522315722916980427658391041227592568180660592730357634404709802648579211307281619073618681353208694365492280124489921324286474051684397703801758759531507692466024005633821565557031557607151784654057849791431791194031785486695248850192313285225921374697201546405323462281616586375721945544973955026601437511452062552295344255437273360803328062229884341191624453318231862552436787594657601588100867020955438981511161491309609352254391670512818079548596478713868320653703165976143268209757557381119191494515941798944775672343597660693033396015533908974930568315686839251381555303692068689072341677128911766536598147953918656657399074146902919722872035431296032442331182284466398158626109680820536614880293870975887600424555581391512621899312549212059472647894845204706863514968378144382967046918355813124136605058907360780874211556858663221437169357863308441429508460579455800170532731293383797256940243172498192758089534595021312516439062067803122781715713386734415212769181190060280544363060749440055675658002355655926713799817630677185279080051098828305704661734861871722231833946249181395181420804643675127994148619828221394166025448676868388725460256526376394139258551263676836628355434303716175745202357492948792585595433631020353361374497565645762425123850239784701637812345664900697991802213419735489704975207113730734028111177378362831320201187430018400746627647840892290974950339358463390814310053133256708820824654118589877136229884303584949830610337957965266680550096164580923141086719472020959327427274499848704854138438760770090098377025019780317516399409927314100034353324741698307134358214705970113453472136586845875876710381475909759752647660423281999718446915992323214723763817720209323523328167663449896679984239847683438097513210388140636653472599571396042547104527094074769164334898346804066736283738350421092161869522510507881570010117861059737722941847663365057070302345494163837914946914557907142326105228759992683621293970275437470536740865802406891029182589279004726943993271571998016672681115594955358802009124110476785886040004283616116274035793366971099463302758027331412891461141483480164103910192170432646755191483600587278561575670010168348041890720155590323090851138662438742614954278095341959345451524585910106948468764039945748544657272612060931489329687429696953760977381501201002732811225780550043387323965020058350934853818197627222079498405947095850675304535170502678360354976874093500127745674814925854924511871553555656292342084511863532222401201552604782378392939687266332659757923476528192359122143336614048216072051647183423255908548164790246572166464482295303628479315589875776261357026725288816648021185762755303430510755396287948286913755424973316752371508007900805068948897453898564057054451839214484769746281759352102152926414934615269042761682425631912619789986994403621011193705458632822125369034331879405583859442944030931187589393230208710556332448432213517197918247740233658261288564219640477227548384588560515268078622676139249539418056557125188376290499939453100833252231602662402520029477550841493253580017429524433854751047980270692338229450248957449565536794201559297437728392640654284415185593988245560962670563090076308341057623837712950857963046220717069006276556673314929990317535044853374949849422488140149419389261127353904453137953417355849350594491625967639235995667643919107296903850528919048370430731173756170220119127384263229449327206625671051960923317736942713643996946568558414520817390904957308396287330489824742024648400241402076825494527540436946121446709487437940942449820077378312109036530789476686452666407572538480773004210143520021427178845979948833974821924702305988956534029903036920991369305714995047596332697350507077463495551222910862514197524937583369262501564275558373985619031955066191759675916390378340725308169409983713395817427345765491979116212146592472965767482038860237077782568378990441284429035548542675002969038905201527794405557146724700651398330386092653233806785454194522976730680249804230751529033462742166333381445270125893550318464654656507611680152940893699556622116565760905881021357949271822005168692138641835314122597652455290886033530406799845295086918392362866203249832763142964594967258954179601834337247183189622300771908892258863275922986970352280673948329980912722585892420121427759485334292903065647228028623554297429782939044641727918422031874676096796688866911979585483237357490881662045495061335938160395060434407831108378446567181560624568683442918289887849659748169237224642265742013756406544909501433416041870675123162753290658938774986192382141277708678497423336658531009220281085474848836212078025548675113744423110748596073522159293670293533801969914162761242522534620881437435293302206028866891353458368799445567254194280299525317948392262914104132901457754520510625475648803274650532186899543814390605786735075510370267204078933684679007654915004371079976352795719520212839229912524082040710503748502393601936867906982413235657393831896637658342334093080445641497966745644391195671479688356070399966248626966804902580154738906509810743400396557081524042954146240359924149945937721337025294918184344535778211656286082859169593707310426846807321610743182627183198418367209155773962956569861627862797823451563228525680868284922205563323413569033921447752617203750061501632206556175425080989574214684001940539402497123259513650842603638489731893435169789392346230350450284098683904884807139076477955752929520040837194769317626403881153216333497398151825212350282823510967237749028752325150409486830710249093838136013371426037049581159315963871783007427998708016537599129256726586024482096324594395932704109572361324037466408456162766677007075758833187329809524801549053460225685876048408944461507741581410191806333463123896423572917470165051185152440274555074113252417762819624997434662811367390886378003535550654545854796477614223780720684192429832397344461405646373564107862663862002985754979958358497924906758280135887487177709278346771356049177779684931123907534973468854155178967805552763137235542795261541374410411683315023437691554632348115723859003985337095578798869797025310962047596511079035275475237437478524800226600164847446756071209790034319103694156510878154585944897626417406246882145452640725248943045366462702430398347538442713766217179929104662501802090290632548772289754745793218581477001369973992111874252265132289349416443247138478813104141338737495196019979393147244938756388792953829080893039962375926014011737123412464065135922179711537899701813904345870364473780747098120777885652573476798060093588724884080322047832545120133045657209205722040368006942970528725821519420556816097076042804850950407636192591224875738224094397236371680417241483115694513990162544583925928143624162683345708548570926728979680993068981284980072945534437394544643387370613062814085702649974646700401485220920886253117421085599128077591314296650817874839131832979780913405401398573487040566368604073692566611437883496283595722463119432788167243200990607682825352184951664385933118854387817775193291818415601729448308894423642616734726030707945085974553264763248101182099452710627782364619276160134995169012957298087580801670246656245408047757682023493195279828405041603436976493546641463193814571918197787714421392940038927536032166230730147810593486044395701177302068324528579604661565140006068106949552281030686948384006573840104917211590700925070642514371615229251897348142580027708506558179278868257669712302506759093941674407207232477083622218652177129263399491558877247444532044830932509487282711753644398731418631156910533349887164618885799719056509085184850212795348537844103345194654267842307983933120169952146742444209564811483863449986228426011431031572784376689545067920219025270598147431274448559880681678886121269210753371019735637799694175865262583021818116443526538782947414936543153244066234629037795009010783095948261005766484307992491180700322794428680241080159501235886422924364212955378486662209802162127195803555534030302332425412887483263394754443193174960575105931615375361160370983372008100157142488419220600248116392457934526129994300496578754161470091589624227051204771056812331917425269647253611512706214013008098357636273793763254093306311340620034180418061189740606233461458106366247462158918486704990846642168430680629784736375471619842682705879203774807696714952343454093270078620935718996251857033941694759992542703957788634139495159779357834136383634827360536667539664065219222162763217501392661332837606871096808593345442881740559305990288995838109366257087340163240221201917608852017949625571416732285221974898960686308181721273139161800314105744572961178159659960602466289910832016443615246649618148224556809042626445231319494274780301613283200825524855320373810005924909812752757039600765055099605160444086869715489788056532282561492211319358526596029142036176460167099916227737461582059608013701860253138422566400955842731207736429328253504257383693192608845801830182492655123545403520849691453358806199243583442496265535923340756021611436282871332165882445119114016731396438781421785234734099680439375351617246698153091057444653368364444122024378022300804413547391458039619559813336145672020216279849288604544235499250737982431851720091808198924764142849801790021171587504051627938600255316435614538888621957801060401385776247512764830552555837125414662839016049205744847922887344242276225284466215149740652910647917511824712128154859229118192278450118603711724721580461516386099452332849591520745153543996032530492815586949668310508336856443326609481039653224304589239037021516534134088468395417143362505136874972332768710422737194903438715655497915754251492351083631930283695484967238647251120858221641356846906762314349206387176268752667454762676165505263803959148164797241129190795610665991917112953685374321903495041431866104905427443533384660456254627702814205381498803729175980493669614530169254063237161886710032467214643679830063093817283522649350068483048056185912899182567015993575851006906299974363587901813367109588713289135721453143485669575775063084575695536507731048773137006195504615509992929697748337101903312216581181188023560367874249322991372619472373938476049626235158020402559243935132775905448261902857458361843960905241534737858803268007564216309785687871412626140485374647521260295918803313169240990045784353120591195255551882084810922132061018008128845651752337605603013901243109499649641637637570001187204399335605758722674900379546319053015630869449007841587708393754050162741297472936222396705685281560292641624943632554861048407287643291297436311373266717059628061251449133461231837432883891984255760138586353061571547606310116119978409103059465953138051096143057495149485338762362508208974482489479541499945618939852174414452754304732204282847681684698763784274561776596774630563270252651132629336013370698523997971023766669248755486776430872549625427674240487427889052494870084602469001276385798469001659890365426242387226796863358672031109217980700471958502393865196546630643378066753993367647600416711310547602599179104022367021757008725018747668386221842800654855014170729646498140525476673158608633999345903794240009163162523976340015031497397746124423179851704650872811020027917659001959370064503152665922902616413545559578655148836682052247723577278089982294384081011325659618532217038042435588619918998011323615521778545587170982821013056191290179423077302427437642211105142812630801423517217406118248707010169953558805928212276182117416639531480547868370918100118942153176201193995113518260886507760476846093011914094337902958112266971457332431691252154373677366902262613290136585995159395698013972094824238635996841676021543640536788714800939197482685875666531212798359131452707565910469414608976496328463424549662763356976613471646615089393744525832784189865012146515322330946664171122353234896813614876395537422753851167399247078003812976499270239731452910799449995076901711266825549192409542088799032264599953396542987867063082076053784464719944707007520575511615473525280932952839963161288255894881168843616428903608379199645659686561556688255138108645595372781264719893466118369776274407692433584447344268788042875207880139946868643093030451940846791321225771410670993825014542465857455568148388333971693912084113331717687897088127292454636909549797313302676736260093162023742389980131386988293769421634258742934167199489435295674883407525918101088890299024756272017049371448732823993242152181502762010682461041174544880971138776247605809196445094417759466038779925498981869843457467550910630310070991753909191662889211308772550270340169005399388996500801583157629526056028341290350978096269190043071780271351118875309216533209276571440772281868291646341912294586278589653323627739167318851299032920629229265085739380765876286190058526883842345798709678175576584031763838129786109857615189549536937617734829441446701157147959931822418843599634395718852847609024802983380807669290241370580000069642223150614050577339051421770566121432182687086861285274075200247788630421753762168221271026210082971775729019280363595071034530549413835636111999062553045339778201438906693476963143693315474238264767265021574384104358602301027976317503346173911323396539528889277541909330941406528758516704185331430765368297007802271122870688809492654357383002923606131139024016854897647396460269950569028869900518323584960619064866419879955571663701924163239208305752710737751761084644447531815634578132276558793311527571018613328836315822110315331214424974725128910810910119034502659632542735479844958184833384868855421916529413055327534709295195111276213229754571392777580804412192338183614178082549011019007536990173703170903522835459649054606674618274337421731509320459635842189419383987306408402925198789505571404508733344068269801570674819460719852228833494041861413456732990255075042690272722440392117537152495320040588626181473883763246264355420506278903312491948672941567044218430576226827878072014527101417930898656457328741026728557517224277327510965727654039922872376417682505631055950741486488689815664719290653366732180021110593641051325728263827545207351127918439382017962428727003271836897740087633318781445364319303083392033053186301367103577258136380439630952367168034243979822831547751343132843110309010904721695820684297371401223748537287137133588843001516886042102134332456857477153860439853641863662372932205908124356417610952604149638169879139783395656216297784341843697338624036329429115484832858167174373382924312159524316095299991814538085917380201217669593413485441864608243308800447558095711080646148645814889259558705618505397227068983343406837378320225802764343487155037454112677477712620523929817568731811894361951486053906968738758749553526005711835787256860409450612579294409175223488923584887531923012691650832018110059148948616947690693242125842162333640622237106203563847033099578082343982041803008309546528368147820267752962689067659176893391299100089165692958558587132796003408991411264163241101735029356860212094797553393782247405275459329886888569488217323261197360913358714647469545962764878059044607057462768949853157419269769877786025011464687583976768637922894021628957182793287074204970473418769793815992860360883272648177343031574106641243332386570291228948573466808357307276123824073767080288341421118293597019250415880699605428329471911491224538134914250511322423877182519433625676623440733008639000734678832260566339476420965162279122984398942946747009053648848979175064753182643857024532130438672942303311380535128457501538094018920291124367067401935468272267565592778448575430290785531424422634650088559896733582622785497806911764492996453727123162851843001565928539866809120053499651971289359587151370563160253970759642324990287578516982960567066613596785986714367608020995791061746099330375426529359817056288930748608703584204487323740696166408800236786397515898685327148005769578007816444729703906338714844382489861466105745451115682422372352718213732563525595826723732469993169620343101798342913048451087190006464867268688485927144597907682640433133190027903554650011087819027552938449318932603179705464106854164912762139889129043698161895176382125255044157650641442331664151725482151574502449801315071159204882196426047592038079879564545970968485081338220707742002159188748039808899191108127331524061813112673935583879198679023455265164200942741604284467039296126074556777729990133786968383991796925506122808505319430969089025128779237044201938831467060917874260691476034025467438810995767450830648958887702864107398718855651564299096478671176980399204432514349969697727964655878317819271776406682783798582099091913185762725506726359247968980008832851208104868769995780979574001232961287008151213239636050190545545704101000532896060600116435432560236532231815615039514155430208150918476910701480667247845259975256740070707579668017425662018117765524028883278664795603571312626847005510288303741620213506891817555924341915013472031400904775342881460667686885709496326604640955093857438756810360250334558548572435499282665701032190947016432373977701225065791740570787958814099920336967274037791342617769212091749757346143980194453255424976724617352262351876133706838741215299140398452673792029540047272291804429649415302709467722110671809830697208281725169864454556546368687799025330114133257891275993443491645278668232107727902060468616855181095368011455634343122853738657707821967872676511001038267795003690211973651580074887564207492996033936695618306398181384608243104697391495514796269797856182395880627544408538917862258253498818667752352549469596498783148259539355958863618230509321658054087814671712718792988296200346668483806138111634353039529548368341803971537309838762633406145637994417133406986871247730147247901872548481671980887230267877728026889237876604574229077356994135200777855126188865208428806750728380933662767288236546963429086409731654435999813844306876958263457572821991400820095963618020039838946919960070091445196308283158065693517492862131499425691581816139738226516487160315637265182367859199048063226131365179503281860680659022424813978006264642939983181700721003827212023619197390700653081238724583324986991256948917666380865366721270848533751279145807706135941727325240447740211104645836207476748804774993328770579438615560545560256590464820432776693568966276314613965329105954110601033929733555797512516809009288918549490544039019432562369031749252618964435753336910601280797769519943840249858782828578704074208211265378967239422922422972523421666188818388748365353326771899140490031118076535984461676488332504251974331333274058165342388149847546865429194793509625076633328984722529998319329716678608289014254534840153334185578530819890628508947691950991819311811051603263819538711209050573332511457459469500103642082624482095156574259463374301662985668026800627771859170974141884172136624480137756616486321688637374267738470761556198213088382724248880472176415816121192777321682965862530606534818021107675464790195033311836220735985473467185775782218381956728867390437120697674053090038679213197000234827759533481019591009238401567355099266847876810448648529438392212424562960410710645122986057561002317880106157314143433055980043327774048394387177007714754405984091538331919752449097169857072609819807283687729018674595326584122072646041366172692162359870122210430136704386120341378574949736013242091014079444787504255818570818132647532983594804592217501908976858453614261638019933084389152254634850857210934715683108121445239076172329043270129030289612353097977256775011400604758408853213852641435936171686573460049634672949021349799647817560392175854054683023111476754107054495820181445875869378451085251473248077611532355135085106038431211299467729275832582079647412212585385226358813088182772306507379217140706904785540803878591651445068917391777221963520884889714057888561347235300893073353983483403621184445071723605077137534074248728388225021740319575491434674756190077484547382060833007868546461148769433071063531406922387265639647145550990428131729822090745094853025231228340056428237183229665490928992120432298577421480006690189472968556291095142820678674532883126571072403594965348656289600292601261048700748903697953979577573440580560770711786565683570909361976848642226337146578596103306756003948520412577890907504279487732826601075661328271513445633969792463703219197984976685618351553060010792572170100901895973050378178336347032885207376893172542640126286717087450069279090619777308970728733167854450296887862138606388575769571825676804100983095413722967465214280646467681970212250016434275471977407709817295380598801521904659686706548065098186702605852214310323431497499561150804969245785285108653651615753093639815636085141315548115681646836058563045020573621085222183840400253168198987170910357540498843744193795825261585209070555959525339748733963792907922371309059455244449669523873709912171995737633913599732953838947081497221991826670818539873326130464183068825238162983601902733789093695229518377681072001244920083240036797065948583784818806607316688749639891093184477335463281967040076045421361964445194966157718723059660846365318860062236814874087360772921136268388793375524636737689504264221537338218114749235505624339336020651591671620460158838519244340214236133412202455585981943013435382012686252300932741307309304967090237674350899828491974987287780655010191220255869419686470593208388327245273942102194228652832355449384720965020528530515182989146745942645934692600105202386887563224585568951709212732192709489230480727098563248628680312050004670527075051738393793584626084477891729389474683038855085601930069681371276489275768463975781081077729646783492021902753687709702768049082866212331428538060960494571250935728068723280944862781037755952113530291441512250714686556327029004333668357147835182731434504026146160268513470631493367836231331565465933737520894272648379570834838577330574194469550827335337132028381615005389282654005896078379394718923246412430393762003444493959687985699727869151819898412308533413666022365038539356205172787743411974279487301190703479322882253247409240188948936385922366556421422626676684272121289824870268932388808265852869568092579809829367933774629803109030402689017554469664306845737124494553803073026720560405638931988239262373002304792176980625890676822885464336801415753941985060334799978073864319245806278873862826163594609748849907736386553971338361918296767390946913063539314248470121866769695799320690630075927742986002117065840282845472508581735778392773391020390308187488343466109669531768437592053775216460187799555521242618276108350110733309279490328495046126496661816673420456271581746911535187082199681292450153248355974980323512694436393806357535692194316347694398050768410724855504104672543287903366962628779514224976309652201926664809704179939576685683877347531470766997935179698405586560355431644523148441516827847130485426798808689718954403048416646285226436626591534169221637548244561166136385903240735089780017229442346114593139568414747259943352733294076235473249789695491922825282746411026963408690900414235369823773415015635245017716175497247446139218488705094637587273027966391787189649304237452444151605169471523674999084179660415340285301692112861026454219523618652592188164036565471620120790662699653658005135869852392901508510645251679781310513104241250385620852965939390913438832877729789923399137509472370774540943844152905496677346972926763267507904644019629115734680510085578269428760881485721351132213112099261140976906376343257378575917455516444402825698423277923477970513109781140805136400274426360387381744433687288932676366442859917765004705880456982533310392574315184987816164246237985972580557591604059986689825041510596173442264968601885459253607732637480093055506500170214131684021638325071270101535969036695343250505155696406679467626622396008621932525605276562627675358339852826898460295136721265876464766815416246564470645595676557468866848478306276539541242271564225649348052239232119466775249654260497904222474761000425676781981022730549573546097950068867748155365003438520255975789113237337006925494141744919937776195841699135702886232277130689522274634775772984920026514996519236871131127036819010159478975114794757564978648369829118948151069653989618887861066288352348560537598853898213519903926851805473567671897933021726372524055269540465510544934090794712937570312633978282796074878815795609126593807059754297493702608407516277858855983621488295929831426198948974014358941917452500019296928848628021065078733585958685074810037974085950505237321438257331696822675663297646262466606036254815094254112408533523890838916461846855206475417852282999275524322698017433734064578851750674158954509913456437801343317375742813459523389608927278126621851673348369883073643984894078215640601696708612248600459198984676985528030687107601588481228550029661266758952432534338093088082704567790643190045795909849424103532824692989389575772452487972159167903441271542388764462557713923258951971069105694240470089932128411034886494681428575484508422006917758510167948999418715687207162210761061000074875913940176701269268402148752788225923105152233844922828837811203720377210972770418304575453103890640698764269966334662948667652220629739015873751302456263427218610591119838372451206143992913981923074380049875866172690796467101431820369398674990028211004436146328449575960549106948859994324273384062564687217483507380047943486486921091085185790595522751038450354727185286553284061766678865819775562971716439467402499336848304221512208162770242434766897911635745932946612276358622804330350511674237731608098925120353558192630543669916070557319186593243871138208238719342388779893205166031712929528924056621368089644580426795539018506501311174737745577183785624028794394412237415420911669027897666483852057580591510652847119693856912413401842577513399713895583033282598508958879003034448833708802323804510027612953553039276374176726668701596932636663002907219159330597396133871589370388550642305536174261293720033830502095016359224927355064563669247550028127682917843795390413316470484487737247133278883911509635766693541947747783020755445889679556919709222443375476019725894326206226041553793425312866584422630321849294636653691847451297564256212191965838476787890122568910261236849651356228686120034740962622328704666338009422436598929637640725407075091438664925043766598586917168688570083736682916743901824231457039703364245087869143935098890513400110797090070266138244453134530741315218723620732923080102695198845807004414818858814850922572419288875350164670979439533199499227850903405373893719903857553507107846592530799561335453807041801979050349804033619336648286952334384714153989177439906178178111076836895095806142108445277221721047341563711543601688984479258753241689140223019698040521906060431731710098615727569336875293002346313194568652442659281440636200446373981842418709263763454539233049809963859304974743238381937212095425771127364452420027099661999309704791813854800835424036475197973333280964768057508407189405894072744174730785884593091605846884876416775615837658648762053551012558011856362799587407129427319736253978240539851722554400952412764418231046936302334234122632644306906669594143814737096039894027792623794297593640500577915913943696203963369052495542914803903100164184069066240796257570645058900804704636841985506289164416657345223350319045298895315658477439020364731643359113411901977885310830035199880155057403264207703710666835525586938605815520938634380796544631019748202912782330117055924583093989752263572238947620831101311825268188074667118727564880114619705091607734198529597728907518047839607051497011259332800720479517658587260398684783336221539212544390167546733623293699997803876316486770429985626477526112785979247348413598420482391580134952043947322024072772524430579412165773694834410600635427325898766138694054317543142840473749851608489386118712399787853672627041246446768712891156171304051170808308394279776688293454118238316391603754321916143940831450566696996973019124390061236203569521581256241389081993251461697862632065144767336867333634706259783237924956974302132586534140540490816189854703673452071018248801177962123432371092898621893297108737638672589557935177193925135463610603172653989112996107135849983039895778834644037530620109200229330564838144004199282920807339859256923218194814060643563888677846685352956706607954628834636018150203834267753502262833264631492072833040392360875570825030645695242970853341177460655124404696729645029546509833575937877971808041276556843818672377350932207500416639953607456039091319207172739395527870029641072751445849632838258316849513551434366445045209668552909556488555060624986707641404520480491070943076486702542618688646621677157809237553080408305324983653904071640779920452959350925291497254550837432901290149423918000483596386879598596789926025816651553513764269850567779634448061457396615689511205305614334620906089905978285967858073026098659920489558824729517568060553739372271460923106490497988419820707338425504953828526036353706542015861129737089689363452311608498128043472224586019120971565740384669464593942682021963497671337574509301128822933457367103067711009626863642552481132698463868440345959901206660819677953160987524657585158981950547057540308000590195931200021272304961240156961776491710696193634092301354509821718078254640903885673260021658866823240980295791450324540548575443867939975120960949961567635609963078124579768663970783602210230831675262767595931143078150788150492566043235093864912622817929226233343846515237456325666484016077291526524479218117561736570373529929225332351638933383661410660105107808416096044776835576511443843399615650130033292540365108362051858065852173108345748211252799853341313383688185671483393825587060417111452874543143818940313265379206755781189106246116849808979816311187746405164065892468763288523039993527352560684044493226024372210604641257889175555710966242530313610081846983365028875399787490137712599515449223564639793486219762652032336078883860093173503352898786242307951468604513801319054088813798009276667189513468735676977773946077130225382283513018657365275762360622708059589517883669999418263472459611254034598213023165566972152969509989336681699492091231675879868538621384379127935982759959299892285668187186868042806648628502060497551638256703862423111301851803787075623177576232205105135350612546114989767861240225912845943412563548205817556080864805636503146628248704680214954586134709417482957655026002500656055405241424182327658390590202854260626665470307404711503341083979646272509846392260227739271971474410766476724445946448238301925637444231626197272681207121559367768932255250692483806386800209443695861529037657398195049867702636355121906884053290026360736022412548989962291577382471008027755182205010431807701328861566802100987166920431400030146554581846814077148389708311166939711877394625985961371181694847878220480915896591950229649166274784981107914202549945183979682289377163639620695516115057130280748124292518776918412279760618474703160144287893884174588482763465184776650253494623697459659603542340581732067574821629862930610717059449556565299242599585829931678753955660170942898277429056933913234547550144460957334034496465803464848939170739829981211936409110314214922027826908676619694672393313411843929714390916676981220044401902887359167941783172424476502442978808422567639893813637656816875840889878211346384511086759043611608914822096740282302288285215128238422998023798519944551153405148895527247723446278842372219081919593959116059101624303968789477851015266123211100014602092879269994364193502694153960235843652858091126213964265748624767646657566922389120164071261630172756635340630343320448345718372666853220908512574781975712139121802723247704815118099127484421847143656440342151378630764646165758412608160579684762548560202330461588880678111455862159247429505126103056643311848823741005704146600742583919002188352514071945378857877910844086694539810816840886729217762832913922174191623211459344080026005105397942502958799045456739347222700001472445571934316194971510214166529217363184515610867610527100270316441264606539561116298895086171680213925718614331562904329965116501729891214048049805270693625338817390408701747826904125132986251163163180269941769366580391001500967126879330825316776015622550802003319052383612992142967718208162223094148448888015048803245922005354788084414132848260273183998659867591208650134676832488079047298064604869825663229506841131903044265704921367829400554603137466766726074039088176634521264906929215287622073430432675162452570831438793970768838677298521465444181073502373579408413449816489558960274696708097725869108350621738826413533115946588261238442128147241916310828120065104722740403628133165406945188495421394305585922768983370370454469560821983765048029847345326524306139279516962934292601584243664856470518011205757853850482210507471063367615986716212843298333257848065255882330217057457832439667351156877097075132958671165120201534889993574344537551463451849758538529582980773345955536215291838522757832699281051658605714032777077547347767035498925035349333535748256173963988011849658744405330690721623976897240176393622655112782924608282232071105571221250459046704527280539460951988089181792847246763172299867919031989880310768186291692976907980988536094812801043204986461901412787582383027825083322626677720461345557213445352080426984707660066916918886236771320665786707797661061382105775142867365569537885043505462411975518035360210536777328567551721226188127582936897155746306041077806746129498510988055997057439028610987511822035422825017044798640255601080988646559684497176708505030988272358002578616675730791071773876669576428456826903576231142719833085480388114301472996164380866335405426492851728445416382445456519279044587644274797908062322820569472508520731770293445882616137167917347272313528818249222743150714993569522060264835923413993459550873667547372331856311000748144692700697448299346439844367410065623257579092050439243272898894073822102021418537404538351899008791501794898398751706913167724923254906552172650611394792465992802965742016478437264869699838119587012094359081073039358173882035854670403211179686134699677693483042769373141719576137033045975641941616558623911276184617082083947767933953949761906807602383344298058967882661772299482167135295805365359918310349829425005194888389953959609981333495809868721511584048938439623959848554620572040041094132632742729948299710636861810552531341513426882881404576000120004558616259487793241980440096280770949801707778898926923746768453309439480034818320991884735398777843863094790049718346865718893073263290417990949766673218118118711543257344752128331421359793010814560560759948074653242904150232485282827505887487144954677820599388255041611277836454625563792399825242302674844639497237170840530311934508612284780449079074097134881328086118484398269219415505735260703468544564725472311913426187097200853416061587451214623667661215720437998300722295573879953655988195989238813506022004126004656844875804815109808269839386359657254570550011125807480804509812799308409111587208830734091918111363768322357911443163296848050845104136661143150099180783717523952408022794275980268388921596478924957061796481439580588453144353626507802972783376924758954164057653558638918077095553759905389251819975252377405312035436914428164592005017661615409769031639279669954316640080819181113541220326901359253012144678788179638014326043558308839558633495065271397009193184611439160014321456378129083594074757712651146114411421460129582185124728029717455522702524703669372358985424134001943919715860994253974589751339136833075533836405538821153595180071736347549071488133583201217692129174032990418559775694593294155875941696415394041341706966767511128100698961629125886818288015635104682542181916757014464332144137918902656349689952344347446154711067115716446320408773453673659418995857160065355812760021937585596083627941386085178864317358142725528350683778362662570511052952497056920584381679716441039187433840090933119966652230053804666998070882054360050825314359493654154556576303644812588881992306284530359156543129447224753439412663636467077897432712842672907679802532292897856187517689310982552613257656904122636887807720642150070869772259524483310550700768786850228305263037610616183855237376706455428943088716013786705994345529276984836504506419936306432425646635193762124348369770434705627313061048143668699854687353193770258874507873538941460224785727998582016686289608828876833498938943157773601004208641877511446314064272950093604251394061384843832998114461526861559074708569266491338717817646607060176125742249736431051647983402184563415190199282880531365320266152085613208779351679831823809876874736310136651098165981877480777873917995744190122604277930181399483971524114528344548823124400732058381751777303016383578102368433228011022160235673706429527033183567587674821911889914758912450646939485625407239948335313931827276083734928020110997448977278322259664792911798826893140382359166430444260649783442733600237705768380235102152899419790815327138834755204651300911652699667824780645162179351285090183581842213936312210558008523267391783243390245815997168374321499008490623556936954477781514893334934840950334719950584122560680209062963482931966079472619615288654613211609261316879651567967234877893676917032896650764626606772505521051931350375655469003493658731275636117170739437213913198252588284444865985868007020367525164079334848595956711055722484050758727724227341122871439629858411576776205831605742834614040003175641773752793211303630331550914735686796706620783849734516407678279396176141430225002036822910932456714348807891625215652914177380001301900581862874295086155080197510652036131420063075629135846437782286538816395250177096780657608747471863027296471801175385820026147002380877656439900830232871209292319325320648384077652441212910627139061894424791182691705282982961536295476062178064002842744088277033435809516407030185818102637823658579200101007828029751575871513361770036098368288971327920956213096464153043629261762270733544496942349473704893114514039199358455166479244148914443230554017907959696405822011563817944178758886353854599911599252275637300901893146328777698924665075455228882634213775282853884112794499357585723392741007901596027143300893627208250534140073029238302244638837475713973260548357411623072702559847474370668992503465796923295538489662067398964817897075620499320857273927366399553705182509162318097151370339392168249533620907257756145013447130424402664836292641615858046428926203050968094970767493402711444006664103304169461009507986689302230421299580321863973072986441026058278092851115152635529167902249467883878232224862613107142545759735818436328347220864176395822672120883667088439099420922341484432572379288275130042586408405988277977234232104430590365950023176196538397652709374538266124071852524724628810935730205944051045150676079572283533530158377578565784303410404530111712656419671944710159698314763503108576763716243711879601392546096821734894167165423221547668850437087244028404165671807247392444181148248896925194740688095379022793651709350899521956441873911481524761664520878605776565614391748098832990010954136509595281002542582519418919116964696519114269260087577274384959792932588556839159847455886051941856898688847148798543966172264411047355598556177117140463225260976414845125223321453472083181323472874111838698227918646053468457653842428712123935542595534130288685658055256378512484109080206641951424679464899177866777549654125465620871862541072815107532709936988056526133444390987084198265446376189448991312192705712425348501017036120862863930887050970104741826923398502729060592797077992187958407277968376433525430206729380844033112648070673379621046160309727622108527016455023825991362698371004286223932275145381526143192288570749074608893145380164616352362990225288702989826839837551002615160886613411106662976289756146915019853841780782426224658916531452891158112472812247161660850962563333562043136129382962739499946411138687061859104512780614226357266819928058316783209417884960523103407114277381722051562398577478521147534438729932095104496844769506381107666024965476237886393069809817440374454098369816453609134347464019363300666070979913895185347811975087964467258406368824660892802296099113760850232582071960689192169824927060952820126143604646756394602870920093926484268725263002789763735999020496911057849338582362593873507355346945923947963143031903638737696801547683859741649255453966846298955059159586997387031475635885565696961550149338393432699320243084483317766908181864269424078455883038260371003355630218855293617717566346979771549052533184120353991027895479981700583026018521297157502856035355529129191179585269587297223209289297221328532405037090813179807477255121409306503731363898488371803688512408007829800170550822079704936040645222099296953217390943702425828592746646529088475847660675986175640817929607366825302183376732281586920995712311445434492850751537836205257623058140028923615141989391851110876152050740329422100526583110183381796361210364721164105688714611944330945228499099996310185066761434584743196146079684589798676552467157155045712134361710777574120694968672605819066850797956882911608540550542825653016346964485566827809054289605001564866333145251444114074179087316249047130263725830641627042819006817273201977225135154202423576656167855589612708051679634692851234812385981401523262502189420861892984123526073660700127562760585714771806215069025732736424567541666211975519536278569934084359173522014723251351505875574863855222093143057546492336858210902624185669541633126625848943800208105666152806892860435096724982608077542592378292422039898499495906843706244384704938164350514065301259378690617180972948562280431636193685136286459277843418590260087342819013020557958248362284737263278869930377677848500433585792850796567554366765179831432839317866642430879613365725944596759523380397623666873456780602151698396286639771462116291597984791013849161246525151400389488052665071434388663643472187098422663025071018595720386827763865360574668590383535673707364903029147051354619621787403711986078080090915292590199657081685900017101486405326887324414468842118801185846212955066948211017177570356858653979926797796849211087116546969296771056412306558155469167437209919822989223354173893722312577228570714113887822983774279924078211326114363034751209050406100320446773592095397252148345002907519996238422792351998270052149453340400931151128848831572493355846585049710780084924774026713091557262308675615854795345914133367630059407166103314269252925013555809098127814658301289416935115058217333855522590703309541312980927564137448114450430632164248195806797985111495068743575341540624515576515556738707587728579847775375603262930980943141516797713270812417094656720555095564920329636970475761196745773831740620727980868703606974086596668840270746027077485247933410699522086266579489916540884362045226099684574444537573892430349350897841300653564615536601403022683783266245267407042832432205349424821813633237218839183265814849860016012431736409087747027793531542160847205483516969907774345685443225935270817829154236991468660330906200927110408220581971482179739892000996799364626582616263679802993408265201749669259341951611566109522436448939786646257977653625942809621397151831997529309562639042486971903655988613730404261018356373929509246795151659867496506810080425268815997528155942202999726317331281755400826699398823731481954150413477950156862642909182087648892963512518111954485519665322479232906139330702695311954759998617370237035506236233841783724980666383591093653646762049711108713606786240438239507669311354666268718953135752446396897454633148490034357486769306096096035567613304993735852248462455087002997339840037762004746996379247037178943855340785691108984680201019287464628480597068506360166387440963996100662121899730775192548941316683322869469526411711601158188547438299478868174099565030249016228826736900927549171380530120830795353894646162717660306184238550984639625160412144985032910714443205949209849161876527871353899548102636513748276310658724149928878047917688941017216906359474637569384550423564042622141823742940516961420920973286370288349486890826229228634240417983897706049429454112983953177512724846125752419525983717534383227802186712657544296648230129909560026977903348866081866512062808290406484317306446515212936673500953861756728506153186201042987944320708452698064336920413150950452550888711127454481711921326438212852441131214051863897746324575647179503476125402395154423732586080131523980729443895356883978555956811064644558490210342049902992946454039574811410018899181373649503039040362964932988224711864221826241079004821566589462574575103046846249761766461157278865416776947351025064809708946441908417203429649895664963997204055047038334463396250384648859007131731188931271554758515067158523690696522982000896359177968730402155564712755981850074768043021719954932455730667070987431155704107738273968300093712675361794488749791548685355099233416587412266209761924123801092644611749484325656281136413175370868607600964762632907351232387182228586126997458137337486531322077818187016040479724101675737653643617159127148090673924881428650680720629522061943079968908129233313101296271738674032296977234370042845662694211263705095885025292435053347345849531676887813404455209546910288295165581882657211731136389253886811303593052778353635773177600379476763253147673412881045076158187656290367690097610969132214962649755050530427022867005433352348390368207371056642024009186588043392956378401086334211119476017955623821952340968576059457520285390227300812512453864086960832381264344597660584767855959711426556977252853115500052298311763479452681937850263244528752450550530789480853336280094790538013349222010774095616973123742301382209471395899892828946531768462524669146451289952405219214341303520192748513554424833399386509183121872381457995681600425216484867631192187682817664200524847934492705382447900973680036049873253927591658750712404658869154745604065027061217646178225217168572399330115368861520730223175259445383444408304176828157183812961001588410011626494405829279180451041392702649838018218329310869452761238282946474509400991890497011034297994626623516622931590290917733904482334711921036801136705627441872506138898689699096911602819534332558387215350514341562066282725392355435783375619789363569930895744981247020136207015238777531098389724310978450104082875663883789540731045510216857913749607751236083974881472008633996821115205857488261640391166435526669316189654799128801555464975173988787597692464269844849818770795489774095213302293347013730750914908458883898148502254024805451347058732995269570632197749100443688126677631295906168473912977262926749482187250314612601111580122928640139004595960814803043785682212684322092947437479546818383086509136134054828290411591904976515623576765082867568756222931707123023946425044086182654046459475837033846903158262905073439434158519315420537496789502599733752332799323615374048417067006532321271938480560648092469433024016426962946827538854418587780584931349500380825936100412541011570888833472552054588037485426049047399655320342641302267602558644218643791237280260657185162875733557779634944716441547305548498323355877106447465605831263633196225282494660346198953145413948349018058710549905577761662815729738050001807756205485000242894979677499163673829591419896428285721696674875420532249369001402123257302854166180993565905062184531545345511964352834049363566855428110800950504702069078721003276033393926749498293297378816016459947862854144981806729159222507219994762493977164114864769417539883041537890111213396291411987599604812075597235256965616967561824817110190992441770210552458621468710601549655137713330346103288099496333555652176045878135692448689416830893067739054130576234732652677803560842755401565799266280535212992004939977117699376576641644484575009665654659429629135101086722137251817286464202558676378260949458982355287279503493055666597960487880274972573018498243755707735791835863311049142769756540461270099466417303733432434026036307827090030812564101817787283194488282402744157558344116678654440033338890075748554379320819720665140485260910542929061540792007284306359596904659206765244506113137020847184904066014157531966742979117636235615504343847662341315071733472718183927749148943463807448554695008753105767687537763355596321851710080915360299198078395089815736782414111540010015399831542670159681731108880456460255786812453853449499445777073756108442545277490753342978686225487569006158543121731139762417255900952373054435191747225773887641581682335570926629599619685255683438579548097792489213468221842320686623502291050343650251124165613077005202816251275065472883989189145842366106157593853654499734774760678057679100989858762527478882089197508431741216175651750703932960800278283134620749763634354899105165446016601655553824230695025802356559543081662210153512199099197767683758686805201985694161851791307528421432892217067849519582177054976776674523105655616000527317914008067269888663019073805764276071055959208257422078179834326163868440832691573193754562825564518949487836329074601383789230124484614371149432996002725436967070882586570029633332842729589420612994417401230758655043508871660824019764880052646300506658661280019033935050046556532164290430639479036748427845399925023759163879611416324157718263206782283616574774746974778949772820052692600988046501323408811834489472603977683298323235534354071444554198689227055791999317112185002881263956808724279766903147443387648822656656909964481337570407638387990133465480817727351216219156458586209023026418846156623104513291537436156993527873804317946013210791787745775549757082855202093114771685743520913037296983754604760479326403284900704442981914438424932518357779251253182346571814461632087020081176426775958774662131336594539315860473844375284657009461380099782456007632439493990107746927755903823467475108829199374117197102541246780556143987392810060295171118735766509519450145008171651313231033850338367142281453290554790434916328938128925546780578210566246042066732977746504078394194689357035322016392735538678444167922374915856437852127459313362564450692085972414643937002097199933264835306525943015975933893551273604463304005249132582051373403947813562607253529048112543986656312073647535614657475171168338654523341144275243283367796879717107538823665210091307144715209060504195366914420613574206328740806140287131990087440861367131763743151290264158069233931576690930855342112549092913517090601342092348021733103765933098735055473608109156563066476545531215325266148946114269278971727163553371440214085489290949394699806822578318388877452752125610281030609358633492131621616569761782712573053617410558926705637618113155497407341155866005909274899770628428716712032760177394440881112840324615107720743407895007227104592212628301609584862383642104630303151751739171601360079841402650489801558962809934022323078271066853698589684916207784053598643929616877133681028384231071099799223095146886946227779513198451497268834436041803201545549952721466989004762595178570245577567714855041908691248561338470421248863161109233732826653869838930020446193123008422610503116246527514583676554902633463426068268691632015018167367348228943723472489226614462757822923107137243150477868529947475843792648636748141009871777618678153953269893516821759674299787869841959196004952842616326325416783762484449433393938514489787522854115426537274869981424302333284679056684064534014423431526596131716439112821542762547002542349158328860912970686068174855105060654101354279701469803033297456260890406651485129728770213923689395858170909793353973137520354886506079847631188828186922637547556709682988425118079584669022371181025478301448761053131695081701917522895789918557083862423955645090287524410030280596760783891457218974860570783849780365714922181390627021070040472195303161606520866650040019153679077607135533155081772286526932076178582248698302994928512160305717744603573380032865594010554904258908614164709650900192697280553633423753836817752815141098479521263380747928251768088580391131775363492820512549150107086009973291451096450926683472549461937836163984285665240176584023787322876096442138626731844306779875257215261605639964990458088729892087263547802617895968962475503761518921291536212436296706679051011744818600590231100323941090952042335227800326675338179563317179724013043294149146617722351708858781496050939418302541027035611395916950464553471739426333013882466635947250147804582485840722102704979053433717520477067082746087595289339880133542328822214441061355532371107816003695626771052190899024527259086509173045323541082615178513905454733706084999809896238793202093569823480387629229354402245369990653440529305365021261966358615216437088192470246978046512537555518481294196617511456414745864758344392815351851767425719713320186004208699194257805740639930323814941520465647864966436608026028797285600558404244887772138063339125041433638143670583288652349862878467686259241435347065321288645869756395889850386463350100377088972448416633861943585393044861435000648962752830607151018765205844919779091963671224344585170842606282401085333964767739627384857227041296775218163768722907873328829174220590244855769390299168476488154887589297169913686427431162378877179228417939847409953614950744127912677949886159895414578778647760697620927599046665948001091264199448012806675387389598455989755156897275449768625854852708771602783307429081896825037438112721572386503675875486097190057015158568432888154972751697198204504842486441717797638661737128384933851766046825324746616599300259810063245664448924758076400755134773693874704590268780508167879243462432453195646036709269790444399941692499584731097322085869005774819863884749114553031718396437049989995878463202783857383770431242538455263958160971398471276948196143651431358822105780335555823001686545107016847453973845640618509215953799666350362982813063063285949446821743382022677311725865521519510372328126600152908973348703253508206561042723660265813740472216658650342941293198741507447378929322883132509009662520819025929763583600048341364110734827822461931889706229791493925389166540555798663976135682358376967979162790286047914701885212832965014241474828408890944806435583484068577046736159588066599788461472794710908697712150312893003236990062270310913824030167652029027544852445992055168797843462215051762003704889954245051348037034271102632345388183198793511477673218462885328589836858297866871584027438709824937343543147202329935122288450412937101089242784292908100336122089617049517853577777332305877274861748842995322164665183312174403712421838097404405724332820649175286084282796085196575881326990373963300021977384171177213151009347651545085705557533440084758008697477065900385019946907035399706520039490669397459705522507277863553397869490792381043261032387069218823754488978797968162573640941724947792325177635517737995449969164823574809127026996531989247835846966336572522388882232086063134872255734232308734009767563268984955853638194628144450725675213127375844292868663888314092486577297169323373976643913996099817968825264765673450767074993139660430765814735585870453315642844398511001324738972687651208986427448436282820492231298805003927173164929551208751948234294856392245647084262593365369312609611947809586020038362809504044316002936310777201070731024697014480976138359247785622806152666146709457800119029119071178737246122253319643546436542049805581324094956867043356520107615705138894048841266443902947143409155837921556603459877689313695926464728791590372145872291269926631387329677609999834957179668475985983452286751235547039713970881174334064690868254338824289450446225772221477368416129016817640388712401721763569753028386796749819404942898701760780938629815029871203370762101864771902529378707070832289476268367570402314308919027094890899544229808448203378871446669805167936545031793947740922268193381664310856536636638358509657650209136660773442324865548575375828802478262477543111899580541085156081683146554663851142592526968676549798828342345517227041080190584975761522787966689617952846014881035579943720601662586647197625504772330702731571339951819523678589909834713181287153245735127589150219954035521108109332249387333930657856786609439636881247599439766014490160704506266682213667117887325351418453170241849654583478919109369803361664382439423391753681629887993044889786120406889375784079079342968345519789610380662570400455864167103943997544920080897454816122347135601050979496590838123548022860074071175497819429634897609567440183896641853556145540646884947960712354156479021223285749461325903845839848584369158465927320790560310049471100244027187757606377668118579930424022579726089969896741942464038561628263730062516301983088387787151942153087792045702276373520401742042367634932705031868978293509169754658777454707665727822163003208615462225951855095260979233783172466889725240504599227049390419114384177376294993443469577606535982627706113275956509032341474494541325468347988789172010465531997278204224372885946045418152473453400995896703844675023556484188485880747447555785123130641507595002322303294464934932072149453441004698348085668164907092661937537234841287019425072197055609736845917298928476435169475529674101233550993739315292717351628586862657950871220398037793088875528845215225702828767404948306781498823231117275446319971801782932245884128078422402195945135820366421780593695572501309964568529449150992377313069588677499313166510080499939241485423665967539141954828431755813218121602219350940343243705844127401049343778695174658941913889305693439597000040161301859398229390682866676610376431505874409272698619650564968651538914111681920151546987720493537558954260791039162764091232032936570912390626250420242618604487175621037414073664992833850271159566732833205360911465424062395522896956293416431808051244713544827075069556048437044862931748374534291196958775633130232153746819045522894218493634693037857654343232397619891858776298714118884471245412694438500443249149243028451669060826212813056091254382197150110643167309042565918727676391507871905780820924965197376308769061069433327057980025817418677368081987911045044553269074708238982148402375694970024373979913130834040194478501320104543446798561565346585576500947346414364150368565690054573549028618647228228587577732705367124218120980404860098888234928448947613813832187772475369340316437230383084597125192236982562728177850745062067715447658009941969100381025580921394461287456846952570201429312871007356036347574446379375977856401917098193830453273755042722668997990441906834596074276001324200278969648771955453341140428825360757299682152879110352622439092942407985073446016363003286201300133938717897403098733309624639203501946036442519429763363392005439349544868441813704313331608281865742772231323451170211977445910574417541696363073316326364332584811896729935102455021935228492522179821428250756268730073339517859969713781073473455540921051592512211360281196518305232268152590810727350736362955084358321362441252317619395470334872116541049716977366295991022089494856286684678235082826916274253649341263222811181163547084575001175711779871362287549266940810128862954539850341481500503919430710493614820511080916393069049723988442234284329416408901847820994294775391455824049762253315805831920981192980915168224106732945549272993195487813819438900876920431999633286420481052943576770340726696137004825066274572633365020656625565433449107807063600012564696120531447008631506083142823535345704222877663792698178231691029080661060161868963373730174652894164195340519071735941185898858946889402342475559599130460386042093525573543375725759252340179991069597373307638085422539723130346267548729697171870787626199632071047219730840883342853245797418726285864486659654890150288002714953658050413270151858397179459758963022033651930883554947129133423038070125635503946856088942943466441581504710810614644388346387649106110355839995701020058784323616752176294437538956140661272529105245233337177685615007767679868334969514447249315870420999747276381619679655710448629316234245464279502004751688817743391459292468937944296659230710522764368465151268867480750559495304287819905659627914830074405358182371237020055135635039124501561958888867167769776953888447217923139816561832207735349541462803156894372968925167948517962440373548676602471652013354097934560214353344447640649671576884903562378925604239077204388251896091232760022114334947568967088963244807905365593138520545436283453958548339935475574663991619766143413873722761095777566725698212679227058401382343289299281469091062203576888963000007079907404185710728639358909843336043779927989079515120699125623670126241471206855609072877076816192228674908072562489917026268472184532754519283753631851275414430528917854600516708844447427209129013835063637296031413881426321929183340925653401374023745988391043138672153177622582644578818398106627606953277234920173553160458555041563805555551587346013002281447973433326846567933595560255264524074493158333652543702879398036090877846257584615298651965341329323663225612537140194918105904906575691620531380928269655138309366775653778282140686913514570583216501989762850176451398349979839739396215374170227797250615381238066189235152578472267288915517142337634587698982007011695687785439892511832397549535124610191275563829624919150493589921938826921680435102597666144531395198789111003868309962179148372526465432851542259490862043870315070434231458903752284058087324726490491932276459899063957344820162630684411388496141006162063059477870080748710965490772308003037765323316436959246034552752108692730635308881928062182532813906234431241538638715541654792725410413803510563205789980695640366090266759784573925219262629499958654374017071936772199818381237400366463781852557150510725165675760392393737117466267467461663636260478735766478412960882184748073669540460657471074026349079710692562767105877783280150192038613487047037863237069170594396878329040648105138477665228941523702807206971696299352916610060555055820606054202272605009555714568483644617372917325276496122582499042568774958270831228577736548079471209680855189817624559083303539491844208637012697120794461816581704180826388202960331406980139212295164979397607137080548614999531645725443757477048525953378749812959021615876798066060481256177804600452256464294976529847185954797848736121658321594386938818537519730916564916193231123757399645441811303319208409722169587868413581814437367495617921651363037346485929913439006733221255789361443348363573721817400428296842243489185386375939974107543762772659292869610539071793391557484565487231182737336204461968184565891354290874066937231276774172827313255701756483856848517387525501948054570569914927192895441092900728904458088022314957731782909531290807780360100274948147128447569829046160272667840039958817159429543582783481936538073573472966284787497601838352352867702001833614526827494457432819058741605765619953522232650147360893965820050820193404519839017810552972110594331192309874432598051378451004403328756174689040458576219386128144148279549827958535819934409771994828029674048207927205280634930156294804677202072715163541728077183978884524560910337645679237003911320385250661893308777399544281749587959098395631013207035813467510477687448542086147171584730788598998541013048458770023000884348806678578625886196997270975203730860890749126591808317612352545525866986835893810503078530285056488918079392851461277134928556605914689420042547987288314105799194819610558687445626561836999983482424557173410192046787471696090913213838234504374991830885254338987961428268345934268411685164196904719964761171975264031028815535755314517258037980857954674998609248737671707005124542102663347579977648384391843982269955837975874373306148666356344177838343764571535386850016226934013691410411819183259179986193319739015830943499287480405948035147111549890281168840429652330797381425824572099499753711284952337796008885600267595946264212040678581884391755428749372151275957489572154345498340031511424276118732574873823141661468180645443496017632555085110672550131620566532963950855539188440830112642704939305328089712653638962950946550217497052237495841532493912280115588420188357470887279119977136798251510018027768132971910356218289399865555772190101304089344370519928707563821966187369445862535495637502402121806217028732521434378195827239221122866771405922683133552832412027525291700467716007309203583139697776963734499089718028922398386953478884339227837503994628015152022300401477703841537228685338504049216584448812693345796044301007961757413742747095868914086362136654142897119319606068276355890148657750870286298340969197088877046363776900915780815844243169053648240501897671813144522996806660918630654871407931867148625957476901887013408866691325144345626851434554446445795834894796176942764164403082303114626515636569720261647753573355931656635229654646849897336135192016528909482702343617038703587625728644750842231829537849027974517998722548906053939702465855216681965743552590593682550134688561540348415529457873567913915029568942189159217828739911144547523797328304190572566570724614900687237292346852273634472712926404078031489145096439567902784063511215617096368582966423149586514820144805929483467145607575040774566635961875062436338911104992472050700007927679579047769642502040832240965170784514303625394542199664271087592826299061446282750058879893850258952141389916038984440292419093958776121415401979299595886358889929926135487890120992263603862178246917404172369036464636033806548359608191915486323563014271193839227811296127432137006172571838595972272423467633392982128419052378920458797552575898828934498220785810239676624817101812584918660974935696153361336628354417953313662143408986727647893237991627527589136990874211464776872976739791880119296633936873345941085747600771588380455525504203627356258202596981294789449359799213042454761624551045905506526511050550786704183762169271050846195945835167743202272150165794207757555347865440295263779185929178503823220453635741152529927726188044966350827627372518599682281188407950380080127258689990217375310660801548338680270935079568038463970582436117334219210156855354174118507304835718261202617203558420728716022023011274431073451506476962391293557463730687628595022231451253254232187904688189885006145353133259323625800901770369017293027471104987420856284678063670568282393962938375418669846752318975198631319292884194973499141267479093369224019764415276880883076032901300749616926274008689006958760453937981517964210978589184981364891023065655572552713309316817948576665502481375154206691152750740778124637511163440683130750557879728408603910400284074979989929123195515839978280072952676151697297024881243789075232309956310584762159106858450129675499878218727218236998356523454556159699798019266339823741405770290783728086081085829165761856421410923918960967028617381336086169349121787802939878537781296113070862200999142715591505772007678619251406877989520226098021200046595968027741162651785980298759993372154328712476496782343853131481595678949796342823476416041539267519617692497035186440082555449153872338477451877284489822048114572842969208124804942589960209503673912007998418783438168806974337776572199239488631513892043797709881926268677108834820459832158091635511293027230529198997143643589977190039098605620493244788009604025434708651850856411017047382235081698696415536824348784638245974406039456733757243939888612402710962724691256247702345265592459556785153989974421674355604025933150848790466471905036838638441196104876632858142507768324106379693993751257624234426473008478675777309686616630546345399420938003819126279509106832076916867859741925731450865952307817532587109119489539877935147593102963814633401281600324491365863590686599092648794036533013100009598464875417332155093282201320209724581476358661051831672697215299645189713885650497748730681770125858679854370637946404628595000962351603255100738671329435018367068385917133080531288151209283035340992125626087360513418529891866668040096162789316824101348043641766611859416995624191288279276052914861579455755954160324785706552311159882574098683308209349124331719624704033494234459290888734744811335858922517683123029825940586068348647272763112869497853999720012287941321561626010197704794362812029516234729188560268435246523790684298622383495156802024818784466311065437672807622853479809131299397780930649647810156878940122868073979050155781042177218651027252905944512680280583590090241677572033546229744001061597947557040377493825757960676388927878076729392485707042624364126612184307448497594773012055318451429393147846354191762175131571424308407346989513865245105322467110689749668665704429608195166470324800324074599680630847834516720192457003238909520630683744922187781864112128460941573952624943026604117825497900301615003169346141329939775195309512019611865529529259309852055981136860871660682287561878545229997613470492734101821669628058299710501122104266273878357946560220728957280428425075376105336444111116949033693521724682727105225724328782192824685011326962799681302424099632255015212936083611018241253258057202582702835625548530798417405676541003374855362121043663347129521462902397695573756212401354415465842664089773246828369641917449549115278735989169978718891624003275992106434621013907234114906978185492488053468242624397603070991221114558991073179614306573365835624724718176038651195648097339270558992279617729239192283179524487615729076047254876944927906390768594744472923403197792325715585495218086823508081411148078736901259954807076024041949015847600708473509884532893151843208511550368210828880221498944143695307533147963330971741530051191359844869359677107601652102402161037832445356071470738081545278688198027174950667860274848438620573395101894826789792651430050105799513308783832760040343288042787298756546640379021612846042267656529548455339146251286154472957507688258349336239138779696095465775465325374181239618749911322710493142185036428626287337565304718821180128804053090388957829671658511981117705173237875412488261374252914493606594320005455322359582313046458918854036810207176027861941595442210718238044963819614287356554100314084155892874605007548238891133044808669249802882967211629211967766640383896997795848146060710357059998938071119444601482941150435645322289699898688452548661456524383286467245795712837330122762052335994109627113521071241624141190949522155159074857979220421594173897319830203289243799880082222424007112230328067391323758161786808876338134641367924436168643803014570522370670063633748759223286103907637666882621156192149417568583468420897385780895326716590070182780331965868118260258824964873264568246292410801968019945939618118400669290775146031756047101731373042045705774955148129989682037675412852161942704369629225634212744755231671952284161796587200773759834961986659642068500907172722308825765084077912302060623850609006410075341743474749933778346131660709857698652832700906757795639361913786915322531716020564155595579391148036157029338968565858594305420759245067513366751086246972823950864673165789594747126075061164749045389955316007954856165535555733897843652640813822290161250335906412973769783868142066966682661931252035251786453925163095968732916555941288636591963181106226581103134838417023284678567474370496860302779329263522937971518079847775602814220184117957216445128942994334429254955688045419738041076009801813569321152197925983420420015527979809051856513311862942707276832191110837435639849990515422607555221035234416601655485465438224403540861591915653047676168553561522081822521884528747734222974383864893713386781053840407659762859265637496045541160575921231212627524589219407314406319586730267095969713222167510596125451276184418066156733247759562176497581915223578304357244230455860770805169413334919972253501507004921269588099333038844330460351862498694158697991578463691986842428522581566791976229830843994961540615689035161533080549967458811138432648995898756680116184225639572470062830309755065814215962851959848202678366833164046439620884689289795100218252441917081111337911825323647438496057622401300418073064500039205576657440567709892523198253664626015539971598250210356366533199812163040831678278308682676839087236100460744136553982872419660835537753695210461258930577297779540747202703909914456657073854408705495519508667371333266561584663020655038049563431985196707207577227926964794813742497796905169299196806485106655279161904449859875130419134220372290694877245886081336894730789497354079210886622064602377476394278446041677654992556106791716551270432160713058835256694660400563893190356210055331180061314886037363275239042548206788755175986599309550712750842623960495216392821489056260033289811146868480068467337797350062136916616423760203966087551972980823547326660412247158856235248577608287976768109252623172563185400342817641634596183176712158592839073168913550869691478233433423313675668227658758547854473662273103810587015501878344933537470673293885778385358551343358773995701130161146277999252595597420434749542789599026209103365537323365771188494695235705965931589340701052204506870526303345679610147326263842759753614810354322804995390613212542273069801351279148613525240895208166135861868290109495518483413041108834184044076723550863515017719600973131944746610890263403858572114674211425414487223771254689442182226497655909059795351425233895788575113739562414127577295441681091113253214452457931413059620072680597179715899786679787196060308226609575044244231637440863143679455250572435986547702626557282759827752923289570327741542892998816677145438719663534056501419882771427728853244483368417411794359104132596325015076305121819643273275967629216133183169049838016420394899417961847550570494593367877459019782373970370040556578163708334657729886892119868549218261750356487756901325173558176697655241818535192120681534319979353583711000475581547379257340488915493650994760540654669009532030698159926671125847598351208550644928676935768373007165811671020134062123219920692945088871997233859492314987794682504691537665165005374825859079335731064048244400652995323476336531079711322719275937099938470558875209230588184715557807485056792404365140483385056319442691725903598924903481624774515634711622245022159813894072076781203869197803614145327400768526590166438554861447078765116841283675445871723875369926926178993309862504277643565219241239281122604827110485566423902313382362369301109936607718081467301726520889443870255708231854825369169712201159897354900109392234837460614044240116527557396277505658355462981926446923596873603702185440668486294942509807017372399611181911253279038689802338581953667075865296331984791054760424408579148727528871892395644025728386001034082481708565300582883896992153334912031371411468900503037913344763351148797087724636071319257273320642394540988530854445636751068708583073008436637058663407634128224364267810966163031087756072043130873762802952507229818372837831852097359901353590840017995483482884884875282568062932601326996886565247401802195958876445574588969681995174104723279553541038220425065278390213519112017893728281588075686746148674789033146373708444745879473411969930212422245168094696447009871195955363855910921555209306754748839617288398776876802202928153170251811966302480861966438985362341927897108073835039744177091350911674815133962382046496479707698122835228351283327500203306150095048705386329650449627285791244596310916763208960127492804792185286366412377626425164346583545813498513974516090054324716946015889709614530725983908379014318786554330517312869014626085723580565793807877848866960483115081391909334480469292888736976262264511696265430934541343469820781719725485836186693371853176983014326587177527741129595885121553516951406322398342095247340100969157746481693126094381327584627111654254054536934017766566363510842128577002321270454149596685085081246366106610197529957349966448048701909567274256179951869885818851572295973800865743996998166287604917549592135937981340777073417250486265633231544290044462838777891513304653545737287012462291128106095991014808286458976182233460089459382500016080208484073786436946464422086074901068391801972871819368859152851652365255590455101858069411682520064442005006860535254937929970172672528593775385545297568075000177423917827454622713100100132607641351393811542286961739876769302137086484635743220341303012384881067379714785037726763879665507744668889023276233592809969745128623672693455401912449178280249574730564442798602252936629173431609963354003906734332849292431553515545108849966854734046472194901740936553114432894410732669478855412014685500529224729898209537521855223909869916184645732847888271685663899734608948853849354912298938179851614181898565019251314201816243743381535386024977093921923304109558074877203209325605435429118791657756469987441824547626963968845113359508092858900834516919292953086650230072831353866215596322229516315050034402937328873019401448696305366335347151600460416137186091106090957904246105428246525735562814677725247455171314635445421062651128015680565977933844303773198785152552433684657425191965513778426850489963591474787865841616624467231917926601885708642554095452916889387305120719875743118247231789243088437726316507156541589561992189139872835999681447391147472888811702009145899278908794555117877559804175021332584242700268747022726659134180327210852041863975128362284763230008420857322749071442646722303215486624014587518815538790054040148277029604222531585225236764976382941096750572945314240667536544295585290838524572632853271931970273887089781264088885605858393430315091546070300257617581452101820871243652997202932552862928657358333728822285914481711245920916643548943848006601945212242176634616815517125836226149475635118119093457295163762419378089850473492162083663959954573939167923286796633495551713174460763699446484480461802612974071414418440130537833629396218064925427720518434046977451194587367696406778987801467112822634986494047931397878677511436319574620166382028280759221093013969739320722263522085781768080087940987662426559369289476866474025201166387241456009022346205726399447767991133403606976939408358382191052137890178894022227765777446799201177635668519998969453700437480664381691654907417145457522950229847518449471093363494662275833964042330698996607279909917586609925292062366083884692946474037345624401853712466563686088891347093039793476493506010409299428763962748321968489648158447969386429444612145104662458822580191670458543804803513023162832944945627763087948883577140431198985446528538266199960067220783009128567214087110371259336246980686054536586402513754628562749346803876575764903030804149584865228815862969307688927020808519452990397185924447567196239118767111319972618861965179540375495029987230409128068514977965778979883821531114648440463626855266564932217242092627775219540042521946795266267816999032524920367440120070916428141628765235054845320166574518492980079878001939951009692292106389755202104236609076009692754695376841319384000467366712903875641048810340345164341834279281409039171340049466380268681249921513355681789172570612661500299670642663117079352792331856045575391097874632401967788311982410120365921784855016795831829253232454491002671429390538982967379479809084886788772059548183333132684698879179059815454606100487244745307436539872124154070824604844768718784407593063507264154659205309865217403081357112297738003936744435071821240835355406255172846615126704627368733814320255004526627308246082498575661690956806600783236801982676774312618172472470444671569995662904661959341544700176072534784239417357843040153936831341410662949098456632447664771373482504948054556410058851706721665346514715035600853296904325572388221487296974382153065610864897005327491954240334466964163258018960858837240888511105914796070326458820333765223227801956314289900031806441746717035889593517177007426728231579327226508571904132205133300138251712235483781833425034852821957328728557125524276005512474550961990980100435816420193897609792598808837613469497589118725099913705401293889275418765179968096401363889472736904359286525916942190931717073868881483851555160269194317070275961982410612942896450221210204446322762924043634620134957285490962444817425606677996040779547339139672574041275105760393896159370385727528904218037162460162366123675882972735686268329358785765023632450734797654098779234308131939955900332312819906439366137756629334520790949426678677837538341783584372779355892334776906808435365460716385121915536514513969874419339332242057175231818181646451765698602936527919398089660551455548262066981946103984421015336345036790326531073376620362841693556467453605033722832682179912894780351264537526873413916575574584753057284756667646421494536826279977609140448464336476518918139100521922069357712104251559278018326508404707720413623499682733661492832365670523031674669377973712328558466536130520043626156391934568344374327990004701998808798850415134417568873957701730058090674378011233101800879457835082849394252885934675421289308457268262577147756633103680849758509381137046274116277316280657990525119936373957573991262677878363537223736743656666763667790258735494928835430448638380045064968098422637647969005188436993555186602178029634873593550024103458024699940135316784910616925408644547495169533578410860868983149559741695885344017304698214032361050916052751379730292525827031497567519751643464717582213871944862184546495964691407534689996674364606111823773429403494651770932323744400574375139320259655162855700578572280652589713063567973996821493970598410833077362369140960321767986819800062464619830352353239569742607586729346306554782721047676061709994346922063064222680562653016688481029946077111341423712498956559621924419740435488027747296213307609672327347480135264699703895640820183596746174450135319526771151227488773957234371335229004143677115126867458290615219258657570374440862741585252931289945085120209771282296062105850048845871082432965986948172350154987734258481379212888745458199317545679367813633885159165756457360605706205494719959356213779833943217400100443049164597676100545671945091221429214821498588542452425561679488951246955499572257207927088879364646919885273436534027843141995108575967716393740206504774453117958607190861379726132165862645135936354424459987521125945382801241436015212049063713211332778710896061572390582660679187450198822058419627928805553731562519701922250468106721057948588016151546036030919350290075068512215622085364309242573641708527622644504544352517177116095257203969808303760999854080455191051486608377991409028410455937659818788955983672550184582831670587234203380184677525375007405441985025969849244511319807428713185681818433125022859342315978295513222281515703885479923931830972480543039328306716604139860842186043307495920322275225273659570945030519276527438697368122410959046532589779971961492918118399436302579599133291670162305081579003694612666254775866616244719459251776679596047037392201064673596221605437132204747014311694462156609974806474637726183839427131855916191514335748887200829078517300979308485133798765417376896873906015097075313984358463956152038704664192080781171210782175433582441064567536927333003863879906499597819407669999528868257151942356738073174827103833218344453640406009085570766609823398054112597504709779802078150238979327392115615637341590317145391686713329049006075490859501008731368234663240119557987848643345978468692492244937770382207763538000891607120796196059832806281727824500698648740967557706330299507139473249195991293521796151074507676002392612545323786789253962129179620353426633582799832144730123282916161869404067489895348604351388735652456303289590989234700843419307762177892782624805508313186087949275272978356591237348955603139775040419708156279116195274557525410383696677462429522439331804733593901334131739888263063656339227311855477565976911713846188323013026022379192115592630345924484934319316481674110620402527801050214548654263620409586143756070081303341746805295230185926430733242375786281959359055355241572355045089439742767684971950852350421345573672321144514521057957092904135919275863227169867188362603912328097205892429401910561576592306312243047666950720871585538911961347047099304898678731596402095302423457021167298328905494269303088425989945453337510516931410614735137179334949360236350418233936507831666100448904699080536402288153381941298751798283717437271138291448523673936546727668600378959997054443658554241477910626642712643586526728959557211827812198276913722651488365506611718891603949466883552158615377217348129447004737573724863124797390938449665134926333152835065701691496230625741738925808022437436599793061338910059515372208221104925968332698827267799627261302611197895121452301804854761634505350023718734251149141664345512959103623360595337666297362485353169561645290422950421908547684502030869182030252597838707838052133343917546288701112164524247862186195982500239330413261400446236698196826487682068980258275115053782532241146056925807169293625404640206337911475939297999541989907393292509514484479725930576832767917809869631760830891646785774834527837063164562823038517137205263309413721187095479374421974424944273021854251884833371681252700815128943258157779794107675869381035061492175004586424219387808125602863245750225061420257026657724796551822110755371120059599751580576155842486608742464848373535508723601783231718827742908595788369877016410093320097746286417615342268110826533574888006648113192501281296900588349796375651453527136388845849249270548885986082939575763525710999958459215267163242453579759969793094074318190688106329948406124269569322008159799040430686038790901945370865215513492995822078370738531013342312641381524099968059615223675856839605868087016019830399671355685386316258750991257775160066295681895297640192799257977983230972443707868593525453910342950911268330804424861334706593534197774620965629466643786887639879086807049338631100672363422903973618139094176353282620667623400382808003561204201038080915814856698624360246330360047489518636928723231603942286729782760502972944575970688623474661421830814004806903088830606484090053451207355963668902060462388555385123837682770534488853799508750295305885707000490782553360465724631586711835080920186534121793901889606971310894849302502625301063897890666122558370489197791749179918041112437974470175214027255851203618374084619880854480779910998984009354086198562698518765066316798105908051606260718721517384075669933117988952881676983341199221782525330687651077464153582444832098926383853364005190167077597373814061336546910025012368749543267965012505780178329317586351607282236088070749242623785737802351065285419648793286265548906077290521398577392672568727675132061490139209720329554273249294769013237597225538782744239185058602995641686150438064027701663019713617890725629272047840761073461575262453331989336419901409374708538573297834704233670915880733090540174958099938844583426463107195468832278388674846709364466341125370156482801054708869389746009967582824208670827154529349162163162006057319185748903375724454576625255857398467408031281450207368822619586254525037271192623468387307151603635539592624766406510868492332829841222373581337149770644298443251723887062360180502021032033200237137090163210827849297969134348789409960544660134589414545735300564483540253569488523366003020243674945452880952559983468933776958280285918297201786662631678195208253404042325310712791043438686383453310842083297258196212867433395470806128068013226403406782095857912063681462487256075828880383940759540326144382023622901449325400102310184211781436805221201612667135788281742303579078314674173222302164095773766329605156877811609467846494592420213006111122067716240358286217285014201019039289175277610293264454370173169016011614253481383237910990907599585240207063003192341530381749673706239817055851792966493228485575780133322450522283225426875325875556171681213851599008873133948815362749748286971973064522024249670682369365855369117486612389192254142098791511108012768401404239014315006189836232151674186493400025362086919866946878754532337868666179100867233190751625727648927460821055133545795825364331842751948601576743374717020937176075829687282674328253357376463299590618281116683440234398165823861964840595866621160960368770763676278006690313994259324279603047364211552328931141246565593853284356282589060327983715805158522821075649112192151806254503348879830948479402581660425824374787832016410884592620168358518715418913366093930187090017993395948469976239224073609554281886820120559587465344281936823008817026284255893591054431252902742813218304831906190029493677942747661786423158352883358567611173271506652565431519604119318041388586456626832218441416156239157305341071652845333672869674530218739679569710444159651047257136180881338649445541675961030686448965774294989473546423260581028085979123188828698098777074063571749342703364724013577413796721948313153919596596382033480452926805702672149838445541822095369219699303450408673403829886387678536504382650141249602256975941556357230380377073613711978653036617296160663720030704322133675796280205111787856627607752736243685290748681269776979153848741454371634314194651145619972619686683220807315353913706514406357722035710265919127354754099870246313196512025355339969670362265306690035173555900717968337094813709328889566836104881504937280845455871945124110218019479135812764513542917578806264882909831436931460899413571793493290550576343656773902672738288650316679564607956944973318912879458832744260768742427489892844688634480628043556745206255530191438890239474451435785601197561137654498992321380222388128658871889232668481217650968983228059727878117004448672359379737491719087432533187133522827484616478505045259019016221859877122837547910107953682477157109568692119248850313316513008147839862638468456678706430367666756267283957690020075465039377487129964873599966583839319809315558669605499761289042665620186769361150727281850954918396412869257318385948563630068659174187110184857108592455712177258726022299216987743538710356386782989491918537262555956790806916393020275212075982240245333241493541011439369362805793341529326615116577225577035672275956762807451274924286127513950149699364522184806980482015372772581891826285673659433508755467536440263871393413640248073690973921321040642303807182483596185537025266500403842104873946047881844878016368235957452081743349082266057624588079301883785462209899115256658357209031631777148675038131951022478658664007137894620590035801197780189234696354403964704521328831720217134480880126600187213043581713652319179779193685668559991493960822983576763946094573036818427604504011852534750075743772842677596927921298268471643406148026739159083788271856805708442227665178859134989185452828572659266253586441722167811882952363780774816071770043170661798664116952090822252799175720829922424335144857924950165086489842467107415884761466492517570316594497785906507018474297779805756960403879379841870886954907734525525401661607459361153944887265646799904352936197001062309847650978677692149254832333666371012061852138440500226683296013592225508381264182271736040333446786686139787093109221613352064808433133368315457278247402995925079496893154220885180027146542523638388651448807692076686329694497226098977066745779673190094798236361278684964276801368717383558279524669699056434108374984894996054848427487206445699958213710428432852895508237352538993085818381812072618614304039402139568989969213475726212082641206344412038614503965604783982285813135045445721107905400903999457169688828043899151730957811571407640485744463004882498908496802209472719006340723029345047735569337563364462261869707244504384646190748549794183008058637043827629080141673596619761083188221714693870111402016320519243476025867181016987227511162090831784870061606926422880177779844296055181861190291841833870132074334709002429045119123096870078097111625180495529572119131696435162033413503657035958153516152218678542117726034799859182185211250062329795423697201767402004981662840387587714606009960086291342082876601730765598691383880043939373021886004540672623215788106643061826755006151320075102665096369156926930537031165546959447075339430136112177490009506472735679831499402853967436812772017454275760364096177944203837692334498918466559903712130686256361060953496211703385413721158972525784921975259130584318901113696706452949088734120822248018875407977470530436535849266737579302469246697099639381902094816580685254814833998660436547036663778340038430184547901219666594856410723819582558558407614387282318544210828176357697520425886181354316856182693811147155461825859078337014978423861361247446091263031571019891624270602792595138488230387485184126955978188996213633236402692368220837913754987036115470882869129770704019857094602160663888712240744883442001042539764872567193641702104382566395153393743853306990200465158312359562366997751438511390829474042403244448513485029717443516400363398740596432703509763236335759716225501360305122520660313906774871867376274598105208588041333485446744401684531222315285873278383021026862174671407732584077396658971947264393350806616969113862233916161549008520708840164033033160954953890928948554131284109545453680208176352979146458289698073542103901934041545621243964146591080763822905556604586273067355642902208434070958192216985480158428075631997122492041612182825100501709048643667577818240171992228364198612362198623262911146753455261424007396168644452112161690089290203357512885975682161486338577337055578693911354950571500523195249648406563368034408696987686527247459048448147164418018157276157300254513854033151112965198862941541021182276208315182453378827392478736906816168019193737747598720631013200989937957760600811817825735906153974536425512937261070883956326280769736406606733240994892896687152509015780340858013735969224792178551145663678584149790333082664937690539464527868441068158707965938876941310447717987878861687139818699733430889587367553317486714890069732265683095930526154215048200174453088795352052623107663878688067328246183881768881462321934016217233538924489921404200498672493166260788951684258478334567552623892166538933209492263583563270621778023171157889980742617197264880709828727325409479692200986163395222335818732832358363398889537731834161253698714622300267178100863975543519088528073927496272038122737066894073777416484782679118141460053077369408518602406243126606611261166682218248144284019332579459674057836922497328830382620384763611014007914713417233645855204711832560560425881657819124750099162729696625539685149359803460234954200669409777439412661446263626392451194775383932328491641512307328972018392620893346646399829481716484903279794412817689417686595439619213866051000796179317118722340735648809968981605696719762257132736497360310253333788220730199930730582887815834232325650693429549996154358812682870645944717792534381335339800623903923299868450658277743641310773962567834560328985051703875546175707960649859771933947381564916684409280356308560256675415662459316249115709699381560091899216383674564346292762391126343739964256390800691762555784771724310710420243663144267895197497995430449341927857012142837052067821143507900407880618236950904605420463978781051701782830486611584289725964421100315745105009320977017070627853613876596965996644089360624705348387735942844633004922116512833567431446382544890869053944632851706308307267853287557932745642405315369589726163607830498643829016166856300636603648390654843006412551889060055145544478932623987545858420823976783915708766398651205588151890984814265276463533811177136677891380515239705408473437280792520130344827895981579700082824325362334914516241307353949059420529938946512767402379405138817551966110649636150424744666598582326430074050487795410271103522685022137344939937521320129130269433749579777758251229847428163857430135044624610452184441795681284322144386359057947188086511731625904326407666187802947077360282261064602627843056116887691516255713583030822503088940304765803117141383667824549913980584236052238158856863936068128155023115539894563164764385691315492725206185647799996246456920281540073045566827144245244920594912851100996876671027382486214514343442628719303281566698197753713540178177098699741839645982037528878776214936402699503048576033310680027220134331565751688064666965461037966477026477869496369039324606232153082161859071049783330462599196933857481953396570487325873850773285860247250699384075907835801226540557467290262925978254480684698874811276414315214472406797129047386305507942818874397169916527568575601356531681373228446865838063580150060037731910237106847862464738984708086858013441640654722294252607244412268738677030132645854109139806204483535853747657582405889620369855065080173352117098215870096963308220095209943307966185519734870463967195796951112020088517840083429967523381969056383376284061276533150758074966250477118987887511624230551008600715057991558051758991218062626283011679597690657196046412408703392017149865931565353051472499828743371633891509682549118775486887357010151644877650688206784714892451821929426609807753365963643618941472381669496819325278976738751347614148956219119134669573362061328968561726892423020929574048794625028864302878692406393910389026647841263397007179135719568644254692701200957550727720946904908403026262385178603073561822818733309119435601867532283454211312705380062629236223660397422457273613585621695240118704296290151329374863818713567905886543039047219452093272474027372955567044859103417744998293413490195273784183149284361629493396240982753629294698375446396859529653631991247909012542538872419236821735998009026022412589665000619278242669227419527635605551695358950801851776594652232022370777913307796092090890142586241323658003116530688299833346663824639727543317015565052740765360958383778441402345648548476650619776753705795476252448770381665973014491172725628569351417606290877666443658824828845267453789761937578317227568681434502170895775673201194827990045600963318330868626210486705073627110119043885455199307603688093887648278790855454264863192266896749064619464229672119105608609386097396129355382209008128346944478309979724996122721316711151106575681130896483357116762029515368047702320644388199145097705546030997241276171427268726316708851626379556508453010620606976912986843062079079196246660561366191171396846749564623650597318183087190093367665510107298231677846415126774706226850725422326389931848028093097356577079275504486510854456952890605797887019583031482956991959990655999776553943260981814679756644533630205754646886044351088299140527292095191038584917919212516012559059188761169765398666663926067734767048116379669509325174387423629968606810243251226664292295077728784308253865600448777241472766577770918904513559978198046545160605567162487301194759445041391135993074226789832574050965196068272295292685114410877614333967751949978550404736603195326914428998430180779571046301290617698055176458424286421050875568829560820369675429719914130554612529694304393446113857890394513594549885726860806941702529788522360378976233907459057423853707321264517340482866412942607988030123739731329935942295171452542601970038042762357549802360877916318910613967145040720916814148647013114125803944498654476300947738012294159121693602322388750788937523830600249158416063716589089251139613493283614471030608273292929078810131876729410994587032526205994181880363315848061620830754386608847596624723445308919654883164663580780520581706530746910984445024590412174240956645186416351990980295817901375061439877146760826429064738832313185789408518948266420923111703331365388762508842654694310636259125003328418946697310576182433936144121772787755406910565374248930542937941198030635251346246660227745883552254348794435336649970180488691668017172362946718368519189870148551532779677549330668852268123577392678154758443460712781587595067869103400781881934824873001327018992739005990117200496251238111302180065743118011853952402808904360020820567671966127740157390924179464390227736413837621734722131424656951411721937889821719458323996363639070598809765464303427533439239338156512243087796009946145535711238967137998580262031373845330991462057513835783967601687273131528783565933400761433340346897582410478700878243610755843599269201632705165604720232426120153381939317925636822943606979375780346556252414607041709477985072560239033869764124021665818849229334457434861127054351395925261371221590468819608525279233280934904488766472676694953850916569651005570419678846100723138098721716147602806577570275095673839995079169730842173444816514255933953932280999020405698558766423367980795579691991828141216410033028987986250370075292482072573318481166630021926284060513234125352044861132234237550581895385197095164276629612202647676370295090515406370129835986663793584339043876220836206910864026446008229960841715432593536647031880530346923283980685255059020804869631151718357873574194438284749487939743615463827449781930714004691190148226316975513108889587031685926690612287209113205412252670174702475748065603487361991763271223568670910883880942302244806228625178226573205604700397214492292872276802503360597708427596607130912021644121244137677563769173270863787613221462997630227034771949009123279643746160704024029080900479328931301936842764330733196798995423522659651260391030098576821700072044957019993028511267725433785327250834096391633430945635747221348880563720501683277987181127734103781018382360646234237916978637234717883916985846619228658349125688259665927399099977737603767196351256041469362717542986175147352715619035709736638848017852365334327931557666905796465653743008277892311669417217576206791318135459014814441767926109732571890198513552113748202800398640224173248381177574631064264442579080150334013033426375903003363650409769839548669185115467522113201761008706280822414109204400422739503149583069208540454509156236643333553976847372921427442525932274289316987986201649490709018842921143795584038463870724280229676400215724273022425561163529526980800459434359007569473942464761799471314372024540670568117675127105094036200680526967583437026510171177806501180752334893218344479601401652154524438344984902595991476236791383941179978148162078246202588331895974288872826305584949137601092511869005823796293326856732935649930841832182936500658492017943834180550326224706551229870305591509127093581718550837626573265875105617637007271451482352232562041188139257702878938952574026291308845244728049676982195687485624607113648018855602894234367877450966176695867299261064950630801835727027843500412244893724554115261145649458072206956599739478584861819386856171741743507469695010091280316166925660645983133815635335174609054253250254510761666222870588296556657887404127958308618846239280191971894211312077715936194499742522513714065622916687799698482526700602410694953605711482329801642092797330605241429477349665659821438946442436802368484110596961255168359172751941686134731809945342709521040664656713460083136790121790487289689332599665834482982549304819763934311797885052099041138558957102910412730627275779796308955933806632084360274353352313167896920471450843100251983601412952545944783982085749669369151439972278556559991942088218456119165653804780434718110580036976781995180257105925583971583808935127841914494263819935533898135536362007968644754921838099469858050103627859933736912611596693117052824331017454049046854924379139172013478146030087275286297512239541370123227642884847957911012731455102661339513240106674365138924666766804610628373461634884381506413479349850550200284785769426747698110446825956337246529310169369714730333116543242811024541465456953128716151802374315544651399111353327586707977707353111332211020815864940061898490288020225913604940149422677908679727888282081281282088193377063550664297115796527014808905497761820275055388643023658942068374888185415184776345377327725950708293358829273606021877262516723312597185227662581015740481625315966071818849374260775918173706844852989298620911252451945244590985886355658010339243141242282826988761674781739704438154906979253610785124307436563435755283680766494162621054033245519855320270980233197387872177125025384169093462364263901152450581296335290568450169718057838887240135204859370681323714106348010339644698709976834757670452171196069647419095345265400858194025371720227219041462503285191165596231204745212833127715807091471845916211622356210295982098464916297317268118019888557271446082702799217316865143247326670536849656648055680345275693889736640950304823047980030478363211359522446549521823632427657866021387239786542451893294020980152767618749779067562525578319757666536173623064365422294066109721474607005699016591957588273974078608114585196142555678224901019433635950543986927359783158699559130308077109021392350773763990806841309694904804194507550980216545652331773874069071546497182544176614215305597187746364419034686160494114388702613304819085736659205224715278394791916228945888930961024357822082478897176473288339544965864988467241199367136623507871286132952730445442248098788340646172480356186502715252438614172196715834549318674660778066530534241190878618085986616468298739413576010241784371400965690880642170969359879933833677115204174534129610469816500728804364967417419208275567589794821372144022533586599263113578388666221073014540927699461000973007222043623320781492825320109178536205741448325723539518999610159185344592023703305416994330687562023548926510230257736557653129750067478674316568783252811848708923322182399939327538752919666687477441401941733947779315316517887561189934687592465734489232620004515649074175172770454257075166870119495208411997720223260998420884473276029304707112626769453751793808326890445003814466430576352006664729233862032963838800601505862493941581129397729399771459501135531326451029801574880407195885220131429913533581916462177619992249467899738145479936389956782864965252331759022727731219899439294642965505893087328452996232570956848705468993950580205536929380857020693855324387413041213355492753737379497480586492950501225990318826604573165964940734852958070028100060939701743009206833436197747480463034174146862013379391494656642719110316512808995100210735230578505029023325253941778855590922706751032218344860779674599248487181636799355458984719771273804001361455099911580937728534792040625323835547904406948468055973390595536711308350066690874636790349725052055425374288378371771939537342539056358193163027677761833751603292348893158366776142928209897773116821847170843434645351800723894961596403273525290535675955539926215858434718402890177477519457905455661935591879053593539999077106465182717373424968746299894695771982001691573311768563305305392991009298102615070919809688262013136701740835660384241323078013033597349209213878029091654830248772453472428875023779814073829379193456756261180434918441361132317380993138455056524022614788584470376658116589084446026185458888497087078110824698509505335958800310473351646596821647968977248936581027547450945786087626092432140382115674079030135832016685434971926056258235424880892657867688833205622981305889896828072073523219263404472941578998348428269022205448741205764430194130148446332144685449137328370865182027797596452855788907610238798237979287811476508831440068705414060568965682990760551781182686740548004658682001933008261816932756841459618233823435380312825312863964251200944049023744776952409879505627695415793379980532498000895362998713181873122746568240124709431049164924812081896574955878773794235098571033503597018839919072225191627228649052660945281090897961483443206159475202851647404781336944052952974711096470452676533484751889770753158274398005340189698802676344092356329875049598904286691650441378513177651287584406764555521969508275582805521740553301189442020971248762570479345137414472147408024290035825712181400144925896292697163063532909717610585483491663844320298347298647573329811175343188888833188168534933090752494927967199697938830301565212737400663172926730219782738896331935849586209834232856575258183265728860232936501114113460398562240574396466604042469508225254148951241904715461063354969194814752276428137185259004878131960646469292577046085014182624004544470649618751997625608396079898398993953864852576506002766245370662762184608139473410177071373415297306404475548997618227333071179606252512099888309121971416395334126432682334621625203894554745260501793910782283058020504602298584150343162420443601740432920526095848440370628497707230839917856128160351031566483009437299386507727687296999138661367193247073229020875847719726029646527462074374805331823186565133564957927816702694120831517161001427688651937796350187322284129448329665992796222262664237144590014328151947948757453189454715432194368794746009885050001470492342656496155266676928054473915897779667027634660677818132788023902952770080031661741913463453710221167211466620531627716275979170695709291611901826356027382321528543611427848876072777581931586286061032807884647114625723455170873968201472181178173374260051597815382321204632748672335529751651219985920154600600763135730354505591654046853452356612797936379603237675301563065256756871478989228966628735586973121639844443777662876720129024594816324422113672611228378012254716439731847235528264956738148144567648650818404960072170446370873634965636820610474686965706907383666174147099597462502560871957335964441546656732232354041533465105697058081130575611600875967430176368420483987840875299288422221377934585729158846235407587359959792636906579588067814069227978276281633415114046897126191450283835829233392350700977859455837728662214679304093417962940255750508343345589510890424356804629435515689152531797762437589965138741465278345371627341592719243295073950537656338302093828917996216786820198634792085581941881782249398873372490368601282893124367722416933132490576107007490445284895347526114352944713142411091846807355989040645250347618878044108598747446019347597319086616906985876164886200605994819054373864101052348386845783475800193153874714795218031311103804569316705291322128365768625463464490719134430391735142917477675623855816304551102688824524399834081979973393245024379761754655744913227759215122691144562137206677378645970527885145157481328949145199019158826292364922119010088649735912240020043573280418513168919490905704929154214597912821567637678685338511810223630894405792973898209534990979718092105022264053898063791575101103400158770500847163099490337449657420137308564795244280350026926478578690742423454838889386200962878042005999463226039543644902220865570919107345986302221304867305775006657102321708377508221571605674852180801682125004949965804598944230377321132690010034428297936124998453922761902075431369442815995967023830103404186115797918760810803821282055790392672755335467084506916991007326740816956084094551362312901268870794114737042367043732614991708866679915154374556615117460499405044198928176163181333746577913177003067973932318125134155825203406830978995400527389655397164769788746032188904107770412479022514595536843643585910038464271495432076829787102711749176714967855120248978911058128081245045423332625718977656739954403232826591208947686293539326783049276509720842611993537871833273661103042395044229195502370011090377611461445360665880648045311933248705413145314290477408028808357303917652846528188132096933792356233351628812081815998209246151968536700439473819981919516514241368085392155134552943911678729942901241880461533161520807741797972446262494157057641563384110298457577540597087937251011476459144873507314344552863291749525253539406987713843970265860762906314887859461386473713290715483282134282134453685302817362651006967419812590649592465179800504989195388176966688346275946153264473747446603733578776862760774604457847547449581370952191058371043786502860918416929494511099585916676634701073008993800036550612854706111879254030612645798854680593609087251833885833237376837648997838897101520670650889671515048108485381011861388127791434827572943892769127358068082793207385250596262504522001244411069415703712590727937252299992325072834241065157914562363601265178625434701236592425210782054386298171077682485160681347423297106201134192615402059671974816757521680912826182314062130843737941242403733541281485261475375818312524728537034611816761417597746090274266595355281975057105777101833302226624487208031630958365382914142080158545887513065081390387297377418551675049926110354413394758926394751223312890777673664105148430973502742721334703259268582853083573677252548406893420386431945342395419639218158345094239213786600936530218361214944999351810127625690630492909665818222776832511424321598707263615132902253348847301161203385153645558515753952737845692026620795837503921981845399191300288158054337280367570787504111747703360241182518166338134714578544775542902852943558984881061470330968715142673275965541212835412343993099206531837582327624284473309925605913201733138315945894935224035287034383564171085468079880380416242999828595101939308767029982966798056328149718292396740551518359430834701132518181503883417937833968437883497828652203675407718622715318046610183156452322043989102023427632340221246044994789510964402970067830720400337142618345423872738057399822660012577226950645075688050358810822010934470253369557761882952213122987190013132547421925607629284406628506710618504159124123134200623611848106294545049349989933679751829731710590311352363428661781404610144277399400670141223765605830090460352365372286099940534514508231663291142177741821556135600249108222864318361408001244328716524550856169098529833583242508122069416868659887067038065854850311225819628634966543464647852692613891964271825697199238801440050598804886147588105830462533976634867955087635656790635544294060907690181358025123584226674208949752268936615785828411485381414912347152312117668375925520496081996417646979800376392042769079594397675817421844142754582542388754821178436425092280779731090045710691921619771766322419873057322359275946629841901133852214660612648145618355760772085611751485752682247471571158620896971048609684358471922110286763893605344083774185516792467894582008875995818869338490131791174970819062595473291788019551338428766783821549875695251902778230706696791376328348560738302038116394432637690624802696188388061747373383685960456179889452532462501390147134211541975887671384841258457997489286728969110533055040714101042002957867066237432349068039608260430348398351895128808805894090696069436844384234197888540675352716758101547178431627475536730095391706998857514426132004559506329143004902307206598882466062226310705916898034747279819722813788076742561232156433995524476120175757018167670341617270930988008895946466586877041358856403537054129968619011591564385989490132509558298926916010213647837377126681251295417571121903951451173706929137972219960913267679452411999258242623828540409414262847270388284297320489469930731462428153659620069040334622643325415025169008489865197930867746710361130016009110403415516521549966876657534878203905343880136908119179647060923561537812532685825315176457410442322516964028941814456740841898821582204625721821871373815163268751127137526990731754686319452452860792327998370228822720418093413963078364279647754381706408013342930934971386018061294468735708036965188623500187192056962627164354814817935974316129304002612664194535308643994330793638979340892419684968238007821122956421924593427613855803159709485706080063646201187091817866085560566902204749835236918471628802282050429784333026841664500440009338681816614970889729198958476323813933600989087273571277600924471440386597766536655208925186764969921126841464096167177995648699904060082368641200547346486342933362103342332986892904901353528747766000286805017773135398502528817926056183955541522362025612749654335436038290070208803033820947634068295093517820067691201595184616270256925348832252418417976939204378757995777488549327742775055992667633432018969835807346686131124998890797641707562703624734086595412404452552360464213022213626449529189471701135164983910648582167150350884361084139605003516921467998457458871101728641466642157108872897937885023348669568886659838513435728609966466819768704943741800546340486357502905398758804605633283150381206838459592597080321328256203034173739235224526789489430977275113756263540995573931611025910732644025531067983469750980550375755740055820773746651154252562395723473826894360235997476311052839663961260357704521609989932825125335453839089436681460575316149833372738387758933491784889329808680956494347393950351433229584513206736122317307034754622407861588888180920766852681195653401541629758946430315633561017774685205549762018199582876035952820252187624838725646492400839542604613538406279052503858739588793571340507837612308071454052629181084631194236262920236907408946325944260627514737948853073146753315212519579347190626506401536570208887344883018536200916187211465851554798352509053143199859119377552925193549755846648392844802953977239951258907535122899119597793582750011036324729963652926215461320533337909233175225630994618189619671878347499092085938462408951861431890425523518536166219601493249740818071345567635151794832268031922064072670514488919957283639044239969616743639677645350151010250090257569919964185602134568411615284083334562382860422974130884410610329247216388127189316543861719961782265641821532998177171727135759951331067340803890350185046616246220328460945434668665355513328632749448987154333801738730452728680287583184059229902557200857961299969397384655538055234466644564625652352131959809609682535673296672828700864661021676759844972751150422618577289484932894324206266577960507270314413684748950228805913172208376047166061805135533981706383022541652563168697973076235822043317949907847287049592088665850553469323546114636965567679686543921502207478604477813015012681294415265380328404826083301793371511325056300822304383190198102397488104224145178253320955562550021031496162030800558135518046005946697460222119411644764773953381666361806074441129299696776652485063248384998718782800842566668500479035796837733561005527232757238996876720346715779877332509983837413602148621828316331238935581311770606138802713095925573817902204074636512595361020229449400739511936454064783007607478953974229610639961307514666803531325105358069993033939032762370944143448852493395852785534284474094217713578742636487609541167890353689587466544600879791196322646903109450476826333813061742694972126862930135270679783482216256141005683338752228387802852309370164206623166925566744439344823751412505504444169085301162660729236408419374031466641229805037157699020415637450573959228825648296940843439664839499008828229806572744766277263274593729451555879418414188349466215099979351713257942022687232927728171867902970305543807512646980144014216453614818564470020500702689506884416749736820973262762387182353399129105617361098810260501925871481425201361849348888901764195322828180595872242329628227477768710126031344517869789726237920465104184022727895665136236838032541024678185286222668043706285704776816467086676584480959408238571807386037185475528417894375159932049993308684363823662455052440214699157970265663931728972065576143693328130824840816737713518507468273386402097573278893703089153319772161553231338789907228269383232378202293146300685191145334351597126249591638883573300258482304562640293372133284565011828260456592656351609217648214253960368686242250657910897833890811959830295655132697209425606078279336684284925749468210793059272508875554920583396685374144138995864119777476564344805381674230652532113600677771927791819250918590771653229022426675598497934585125273953033736547772792886099489740280274039392935118368776102614929618768755530635590431847327641283020056861470968028121899846683373553706442618664805971950748671986692260180430932977741100596874465401718806852572438482548573610179014934681094985787403652473550326730566926059961935087901269769671559655467870011285443529363912521177833112669278687877058254143085935805914572767676287734893699914241245858983935021210446159969572724326393790288357638429113488671273584105729201999121238293144272780563767682240418688648345922952317742146217293331220401364308087535837797068631784137155915745020802708537371617991254012330027890234018294867893605093981942871025884673983531244665591858367916054281863549923013120288484338707644843152195976950205237850405437747751747759372885261794956425939119538091825510341009111255887411732559274001204380666478051598739616761053619801484376114505435419023246660956590026290675657808457904453901110226085460363737070983622216088000528952913098378901462189392314947581309055488742401967379934620215435593762576544646635049061641422317614813269781205141571793453414846932033798367031881157313397329631779581223261420719150124366110220825283231776718949163282054980072446146972996101869278996635816508210734088036096954647544539368263400972877617060255946773350965187450090508880707448556559678485314555398465577174181612215056998002075635886764036628601683984968454230682173774974477588897106070366776560770438322144186559882857132662361969115573283414477900176914644073224129490696368025725909027686671324299957370703300491396620971850158308391341407671923741613513355587021549188423903181619562541423861937427015236144570082853908670387043740164826699020871679274448144273305179412716680261930442523219120195484117525358464678876609950689091044147408087596457965926020701257581172083663080222673167659833010459089294824618696093531986264551802121666168119879574504853772232953523894273464986746229608703896411723923898522736150006788895060470367728719651386737112368321409903883611531913738493930993096643471256922425487273588689207393363987233344416705352388488777041620970996643821368322297200731047873866306522827849012025664233253372685638654020259873089524867316249268690810138980265542864301352463682984591792851305296016590845020771503058592439148645376610878699883717827151341999582766363132487411825861303491773641426721080923372114205340665961827620412738140837643362071737856592159187498131556449479714754446385025658755079891408751519796163457601352242735220846303014518159569933466057618108583231551957155067734781407395691448471017896953912367013924667333248069000356103456575963130496429472034342521667649577869521028975884938618479132053692660302725165531979333143276579367999501661336529514379571904893710486096414640624832003084125901490077969251509011016416875535229040401304138107912025870278569784720516669537346948564156881132017107577504309134978907786600109233415868171535063941322382919354029322324511877238091906193623266588113974428762571444850584904991181626099037525415016291855987610507724929074840344199039765177289206986356780201125273480468581090442766528083866324437752665766321146291699111666662841793011385351003186393977587466342576177778073014733683885985422907303972086016890842727830558740725372378312818525143561828447972662070392238071736255734965336861343030253704025966026541508692365335734613160325246407248086560674779068680445518074221398888885336172555109986310684625181701512566066855791719410607133010108425674831927490379782704848712447527283936889654548226749026904590993493700556769365011652413886801190462588022578921359605151436539269623619419786667911783813993955475441542825872116089027073014756491999977291598562871413626628256454338307870423497837314317606737786263201538315561611852128003481915828647138752850070280501828893169376534864364357836156815969314241781086680035933263509579900126332148446171604554663610038850484735337605056092144723815612224635606483838617185178456637182970881233813068669632377868856745312783177024547398125086107153831184945070762061987649477997834693846625258507303448909064358750564482783043626565591059654441176400025630398662048587193906193689670487020785159354085322548281324932796342894999370539081183811117687926489470981278755442535131575224486580691591627574626177873930472775247728309261874077251837061891222197968458688870718401441419109751614108105235732580154157275339422263011564774257981522080572347659136405246081603766990332374766404631267206347354163825737396198511104609388312909087259433767492257252370672699643202908075262035414312852959536984453291236779629789035708991354550648742002745964585354860083209322139772416874027794702473348224742941769727850919506361625252412244905819173450755760491932120008463786283160773039789197923878118594104425224709339578003895612825303380160881727040963259512734350359586910798966132671480854659313268440999209768999432910663909075490563724441079217723563207869890203425230324379235024129467750909154889603608532091827476654937318135958911049408817447863070643332612836811117787973960530942267508478881861416702776609444221217080121902249915576697096215477188429089305859950465092408554644476029442991023490162044574439562474332838560828784972398023818349686146205307960143331484903583777981999635001171262602320333943211545608998909019641201084348559988267872556189027662125679786334427065319138018291479233019100978336219493149420227625705375320869125700455277120867828702978939300126395698219751260162115025246462613228232793800451800973639712104957368181543390773041023245386320256450017501829509592314892861026301412544187757874475982008474538730530866660619335192900499659056147280707009836246528716434317341074696633679831238066246285724929055450055353444557337596538099840317234179783431585084609015778714779199523873150459059846676729179587386326041502594931720514036151293683372710798188644115052101077941266451035090882684037176404059019633687573054953675701216175253087402623086127253122343959722479039992492684640584856083957523413375740418074348391228978525311051047703277430869956706318153056006787874977779319741442341076801282631519244425531547372677278500226881466295836213166314814231913322712439922680497734033777763653367176298042287926068500002661366304953322615175179227273489221783497492783989340820520025799793431811442492773325301058222647058406607676665733709530013965761430996207079026904045834254610339351267970414103551290468606110124948348998414480724468201244453185480860536133663867009235380340672270043642332587835405567414353485641946160165716423822682087909204162810289516068358008096499922512749527352242844853496673703625044893354653796515135456780734632151056745902943085080538218336324701152990577253080372353343750259349352470752472979937321210272049347738262709608259098218285493865644804653014039015510769598607820169255441120479086739401797434816269863688012447533779039782529751324467387062680270736652981278297181694592465833227774265505032870635426795803335876842154022044042992200333468648099233289840219450851542560400852985940040703179599063500097506200264736099190936377759776824987836892248121429604283604171491880054787091736623652863768743843975395262456164262631745014818459861084420672336938369289076025224416026676347338060298774118956835465614260482647378571389358257868211999539180968463276595263269831855792437379820523718372849763350778050544688088854925316485009695455943022812234944227076153868262791314958785619362978162520477187945210713613660243461102221263892462332754064628330193049209413156296446924805397609696004020414124431269489830316071651259652731604558715003230606228886714188998616820736220704940004980220122247626516766240468566700473187623590689236593079383786347146728571313956168008002094788396117989239750015371317007801779103567557129319653398653259577205221582613157767460417439363018254575235357849261332920266564400453237045334195381659561164353837395510540872186786140395645124127583743547340341285698515007224048167719889793568907063472142330472241036944361450710090335627410508952977127603880569362077075840779015758653876618258844240737724679786568067291043868497908986961341991310861920318087483099565470506011765612889321922368992583542859845691629004517657946510665216571329649860103240997443519641383090377355782482440310497040199777529664239454519410287501228818317704569436323171590491395983563310572955843666844873780716557822708848457231521465917329183206400848832219053882866547451984389774513324867505047660595903224400877934922424196363704357685642997205943816608041753364314077294278505418296412838882206216741507226375137483489222620463591304366042382762977057613275634110952301836004430315449014931212118750328266791945716918057417464918052991789440116853864682145873069904991016070743697510904024993482228448067893132532662100143438999170674679948921094213411406798728725495461481530811873932389945963944225630303529744516103401492734386131957652101948320115857729435303173298364743623566901406381493187186147064979912186255582730630349080745437796886508507204386046346599911763634491123575208759445571687085050106972375391173242241436250335206410821551201215481420630523118697845968279991829059541706182448325182096273746870704086451795564562575449215897853967533585631374571394477064899961524397587236088277217699424594157037958464563135946852597528024131554457906367857636925274787520246609264191076470817916375321969214371063959288096466015121950199461241423771268845881382960735127740465318081642181406416490492736476318617863396207351814057973165768462871034930240107051811226549264130898180684926626335284606876883129166492987572019154366117709446782583156493732679602302854117794441934559104868239698041986767185427357484988229759418660902599072708618495623218093553184207948905935870176962652384668688585687487355755078291610320226353837434562076237488975389501655597455735701827197701909099428373858402119504460246794271525742851585104225991292792732629399000813595069947999963409427556534406113884337614451910473772366698394414758007729141355780340024380440874679406676393856108300653976210996622546705249590620084957406942801045314254359174944925747561035219497888394855620027274814759216764805287594806670956099567808128805843824095726728652072603376358849863302966672818993378857852437299483125972720885114654947498439097720647883886481681955188877185326207161098313564941857541048279987093580150335262079420780926223848933940106179310791344883564302290704627901668475418630455904474884904619676361354106664747177458987550204623320915920648272338823649806856142746196411738686520216617805515762275733706275771936393173446612040583111593775359909278856264196119784998033333220925537036790327882073725883357602061252693334967375286776610449964744583068185206235066005839955632694689803444176313951863344948520468439975886934894741392645776781191183748882417321852871451905447079890764403586759006933082421932930397163922293751909112820497639674672400919450115791178973192681352884804315070948505848942559242403692031249215718598963648622579006012204497669197156935605370508574827466086365880769299315223271487989807370084781282867635050638350125648104955597728035807856724205121516500248652585063627285170114225989674685478392246028923145331170677288601068087184419856015165514707846115815012608151763415321361645135645048889365241262157706763449758191736431727312806093647336328032060895306540505158038525376259903431194866864359520929551686448657076632982548338603413269554095885344295676545956857472383365902341045751915363898342296510826651458296474889683750333544326899046537330984634886355532676321312791518643539062406721603772341081753888730469721653323137510626195990243038103464211322785008262705778152951670408226290126646539494158223522525994081139353793850236329219234043219042588473776178472401788885723316408390964177808434960023874610319469951696654633730744009169123611838420559536215734627053128211249630201181176029441719697854418618101962784804165011413754359303435125895222854052897036852406354082914397575871407052452982016486122834254537382666547700943297638523516567800709449210321613821182852420074180560832274445302070042657542127078807080545479052236395545168580875503723202190744502693699923526072359823579495941920761233699913963436468968652579182465968945843171749747684882217055419036993694725920201036162866874557324249920980195917515251959254287551313010445379763610718622242625712589868817144925501609015001729593364414978355153514643339066209648927164434221483704675367037231645166623393257114481358458091224952598169720147078762122659041021944882506708285054769538729165371999193189891341019366581941971180297568231503294674628646410835281619990168680699527322625538045352078049672910652241083886724481313509631929920688523343146916908942700337352812536661765013751573236453853252387290844975499852834516009063167913841595225616908449018083951940294908606950849630643525971016964460296277419503790744928710537769351556860527647300645743099596701794382040378243370752269643182854838690725648945401346943695232723390503189331281506500321998258492776259280421126838340846556300365087705083566225662333850931604704960680017715568046592084602579209159766895110820476150404040475421809177886801230726780286363134536973305951036381589397386988860928233197521152767275100171261722282996638274741102844601488662651438318918070166325919032566893106606846597213549588867228122513621282418958204423663702330416880347448603644136798864336824260535644148516454529531523823414057391779963833394526517768366507674285296199941161579623196549435376713113123135787116094037843683546977914805314018474840076140926919482196800976511307718273287378685657392254997935378830666809695368861868349083132948649977297355505069110320989372333738056696668957319240926836229863407979567423563784768607181087966569300635727071853995050508529093772878126829342026496260400644937160600645443550953314167463569378302995469609644550061390253454846222030689796928664522663702491834774474645568967766753184781131238564952878559209038294468096805480610821021823766725986629118902999740262445520742026873708082831203439248883018781034636579909364344325267047827136993179002224950306060880119130793051131903670229960244602893246476242610917486070541867159483415031612374419395496837669298597803423982771938211280245827858716288894964201645286721176992233003937946193857955282391477959443660225016399523727383190496063868592332428698215067728315009129561546775481852664854923602358514239825423471205661525602606087896851634760539458993947879166364081577421939299719947622420515336535695360614439631549785174687707425032703447023226651854709430850087833707240326863640366220662895369435643942248790344862306762512207640538772814791997775625884326372132308004420633211531205306316035107963540875808407745504284985585573487552761517496238310466115731096787474734542559242251536029463108552430463874085674749608448481024909261933062565995216071570609206722582572889983658696932778033322226658723095066169248048087177251533032927919696443496284865293338994327140365665756887501190338271016854340625853320363802438309451857342353048185361903866592901674453503747052818890958116136801570969240712526600827456879418047314539047142101728638155837673232820356248937167569155849112286792714652455276105911215563982317106265756405237658855329211141310042481454836974477729912876341995557714689105258180746370868344246349219017711343497783172820855449020783577211535853229223814664331090212158576206313329772234945358061140787980154352892170379038942596535967327531761044795267648404599710635046528176673810861919332785383767518854801847301324818568676209633184478974753987167416340539876132423799013881694537780594533744555219538919637499254819869985011123984440892358469401282467163114423366707078678425721780570090183282080401283595976618066883434523977232789000484746912960179024341683379047039560733540427132264572517520778310913572595010730616777028639065564620363269768797872061069608813279177206861285963880520457268233248227123080652531828950895695586443948010254045711952890698271518873195129376366455212559468048669535854709989597211080999059334603763907621532973980632432962908224078878090068635687336371979658660290423672046043789038224123921089646165332125078683554670873581575743427692894213600519585808850342671616491754807997423563751511630503806057616899719372136277086140192516030312552197550491492848174891519416616532514776238957906546007839257971447681575507068469326811397775746762317659630325790774756126781256474437777852697792945469959135901945548920504859476335940421486954232191872345050358310183842823660671109406684127608351768984002012477667999680230869450082622416970014691539435738393833904324847126405136244443029491072691436279206908428387471665804401510636935141856515197672232538155111727396905089019571688708649234910944143960106102644211507314633411214430390893983080085989874514828647021825039273196691312621515592954529876453456137927782258794326180669294301569649010001751113918978128238458840507854266496600564083221415515009087556889763587998757699778449961115464569117172770949051500104252146951687302788412762197348990755252535718038334040913188025536203210081627069226382382115836484178986614846184584559883867293033959819156954742429091193774554956369712270970553858520139628728727888153121373980383522523779201984448043211788498072666163813506134030637401874238749368687731040355231901816433844469476754238776509242752476523278207385113751655363492461147229714175783407722553126757067279776135731958306571962426706532071970844306206905320378205893635352121041926846241791446735826295080369804590867583237215580581842991995543200201244275191681744820501746379693510075003344884284632988339332219174271459820826330388514140225768698784792794200238443095407183459937574178793747249002778814118619191382469547945457093403387419090037060557057966365571157065634581197868213221874703671569495202088730834132286001143737040957310266024199643729002462308935952214495147545855788724446812246568065565625406776394181791306570980121253291644427186522195015739539138980771038521045447521327382574915028539749767677468417856719792159799607523187116012737205196796497012706242750812206541361037508237763218485800119204321455742267860601460481353226056689953872634439072199962704602180003841246504564760567469189287032088810341530588492754749030232917025417563076877849023224413829462825654569048614856124800992091821901509598804202854875192788724086297308996592427756421393321204295097220611741387810576071932184982017964416135054730787076953639557237375306278973906240424691243616172048350459643371089596945896315127888705752964828962538055398997279179304797018144049265086962285827751116299040115596009701847515187606114475399892587650293866704281676107847428576243400974939102948890116202582887313808321391946975530439814058007343508869349776278169321580365129698013679451968031594600080923136787795997308127301072567802305018205203305204931338675238127846071093773187684682831141325480797569362514907584944954186638409523128669892135128315235342917983361620216972266527313220919295645583066926184979414721310219661320121137763977305435003625672569458118114419062474653426746834968161151360233400558978161334514829698697339409199730976981954693707184688756044479456714583984119386031962601007360184952654506550978389811409383385704381577296656687031800441529491558863358524510386184187353312768678350960533492727892288676712870210872086966167703307582965482969458683775636741825762964505929099647304282969747908234358735274597119901297272852348351819530744243414678230500470177514740567414177164186859479968254138229754354497840124093731777164204790264631776555725486570327616977203846397395737989875545312195523413180281566274305035849556460813616140501338551152645391377154006479209766382837615656779848248406371247722244174451124264055701823606503586475472322928264948794248698547827669210201961869069556401994656604692052014251999469058713859843104036713495702178608921736347052901838879365039915108012019000356350176907049503996009690767623886712816762272613280327972084449179515268004483104777124976184060431514210154174617388947307213587845927979118938689917032040726111042874290407864813799915745151341346244721531261777645479325440556803735449020937207079619535695350226138135100772243265307500397316375273714771195933887034911797325202539083050301221166844363105255516747285160170367471545774238523497643027160408511525611320631836428544507838177938165829105919580617740591211152859427726346274251512896366668761073427246178044425349210756286635668850627130076125532242330930348976440127635692936921259987542804199368049881334329127074759774975359403888480265348782233491111897974436429145007089480834653310819777839482300018589983770368315785159034731469585917785080127895008085564841461708661484048263133006468597081012744140411035062163451293857814093605806050123144134564203728118158978261275666379836458224415518207572717395447474737845253368533121438510278767610175649625431985804708975159060647848513979111887567422575074189813321318838022276166846282010617149681426042050071900728238879957608787144882537515869595312743541746592380525489572172341637216566005209544023711340220139334061533589773150492887035002626808251741193031187508902145686269776876905678908167707286039406677148858199486982582266963060951104892764787477179607408869753961714458578596144261026919580782709664187328847897435590860717374753846915218281701880278467544772800370041893041695260362581791325039937298446566146321098366754063970133427022343624925701204527792620879230342274695834731731535489642308222831933563274105355067596883361962891800142458484382252233944771566522281483803938508930634197690850494706127850882388166042457086001301013114014622348132300584791613015823531479297362260210965334202106563845164558780308507445709619040392913007288154384538763017924267299486620196269386430852698181452833385467206601221572676460368651069594584540026288639144514817704946428190346762924041598367451708841501315184016518210253171080509120951627161415550208494567142294624054576113261442421005939600841229132370200130743730387840044626544582583849899671405855030586962608988409992063820184073920718122595264188074074555711150636845706736557863997811842330495526986775333651805615607401954724852340199370273690702116266331702054340551725017593930561606463166693985375748997194170400473679946331242274891942640685943039133207445752758228800908022700697074696736368324062363977253981683957185254858806692223871713730395751506648888032725319287652072998793759972267676557573213517535215040429814301490011502342911632893610217746510654609957283373353847936943631906901817475541307496813741783784991110641097548049690742941219789249063508284618004474282652678581775835125606420534231573957037284494742472308353934631672399621957101050936511470024143605869574983288625461457445885058877964761509428529832608516973105059831230805835136299017424784853201458812872611174709554471549895317087224266696382541716129149414475529820210804271700347439141683133201199528039507936151727555905063013746477015228342298602197362325940585763784192416561551203062747944655959612167629250356193744684506742125062928324744867012117565628084904397449709358716409911507529555322336146402047076658812292374073640978914853077737286310633476841383270017606474343681666845512119347486731111895144070741751156714799014452640128967404649410686554322128248331486453963252031196683415152678582557678960128128844824514176436657009731033939633251456777013356129584482677674046756158515129792129098229498122375517975150209864925342779894277991494965646063289818434438328611745371662548034007594298917390045051435019793856344342478138445887658609418000108990609755336761339970730960395917722490598710819589922359404926463250414869254850750629218253615731003521692546812247767324300837794124164667901098602488324450641560285681300850324281568826544935516860275357875063053687345077473757705665237708408824957169970579393311812000834841544651422939579438259394452541827234166043004316309492961712062143630502834350284192029848367471110313611951267663013452346429393711579627901150912183686207506947017367050197049733140004184310549489044174479091520209363932274608959443736418522570333543695325166538554898187832436788067955506688887928453902935403692891746265152126900184414132059242416580512799580166450336668694894512251264408365623406082583384137918469927306017429263381256296863420111415528753390478569813636783956265202823765354448252441156673767340559817698724667808676914966989525840642096543058604975900589308784784486949747866132623675322535525576347917046736594735492909335417282311344920488598347078604495718491653406770091175645997839387691830237276262360504247876560977102444390681127370772511251671144205991551384676960875445134684546478343512160133359974185311965957835768336723671995394778334197964834458729730976959012640936346453374745732080535141233654551839138525688119800002898159096237090600463045138012963217082335917045146649872869189291009843612880403636444140925909449139726578845380932259357319214681790362230979183389936238374316748653018376259085529401485314635860458998721743915577258521373291257199582312813300230717812449726453569440598277952639150699381289607936674382770868135704321945748139263161762648258191620940315436849593476606145269453898105240427582202758093282483732256666198889362416392671319779519575249159073682209918801488376429846090467599471975139688809593025151418984055401287521314098912586414666663325517069569315849148542092430562385891278559598400705138456424714554347375126266590698062610037581553687464687709275732300324273294399502785641797477631036480922858621851391845151585750416845510311658167791486599009574268570643974395979016864349958067158316648375425001209950137370705590088299062457815320477365069264870550370099199796550709304273380890244339141592544084271419717948742393595818289184230414815791188182432929994878269077159218001278861509304147119724129910870442028621330135793918134653412735326867348846676660748162912391302885958935760709321029856785798434436014644842455003609096013063577114738539608858766778745753402554292221628846313883654806992598794499531174503730316278614835378275864653482208973681275397159689839013327060724947144116272451001434162225923483508924715606757185492068610174835386654802637207733320741330756121788532375523804057307000759923830077876926550206709268826630176023953180249668640049091856271431211775815853928744531780366866524495014079834982091320330104347260927254791967696460478059751030407330568979692579348831570525358304610162422898236521395729705151308370788677568201170393908976804041136626623509890109567079989779210516215756832073569722145689322059716638508245073314047569157296691844446931294077085859144243631772796274587753375659194562769419031888538517523474605136491029099496661973295059838346423536709589613018720917796942051767005494127484444240606698630999429077015443228301836701739619704708118257255188202376228820972538897380203453192281086688226131051018001007232711251205604528915185752772299766723201925618413758633712879929400790209350066779295396572970544724798817266725570776359081488184478171251617606015842564189606736249024502922114638667640886277484468051645678338605014174886555014624381046461602360912430215085573511281032379514617852695717170111354324083904665733922283254574489355625275608690394380483309313353374155667020477162486868897733805460182258675059473744047431967803427755701241912702423306594851600872393141599208483794700082419212333461437720719650442869779862740235426885658262986558459286577355417187850578841356217232349256414150427459041157912557266819028340810782485306366431279913555661803589144217419691803025063828764092504905040148714083656175435341744507484501641154590702551220984781725524184765110321054724065427174013199853312299080926470210762279536105047497440033629408620094538191072488773692583613811252699471360399624457775925930428959279359638077954721244071157843283270225178529233749051757443787025579613599745318549344845699313426843099170100221007394342355780974711449198002785953400489384769797240670780844595926971503274807338424926600275198636065765302562213764037131898399466876519130576588899991745827883711617258349159910565693728288785470912665233954896965738066543451987597915884394374790151410230301905483013556461806254805192253648992994159692667966828993454249844376669374189261737211519581465424827206140482383128492362555754836351059228101283814679903022686523183494282537304433993942369469342829932186751867903731461303939806270807777320711706362635591689544460450806000603605663907253364115795937497824552006672272429367787222642341732021522231606643150395841675518822599762058672369531965923634761049414380408294445534965673436503764843137000447738087250465141193186868795600137256252371524312432178818175198658336131351030113220507759816480698638852252176248432786440297907438510055279529948894223813468452126068418684783947388086846381429553508761887440708946203619234629085917443096121158879428038634927770838606064880968106077549663233819412043104509246728925079985102042562058491604329293143606226152707641190646910528955222887810641029951992293568319136708435992909608802597152766996447997892426060591545829272881527040850870338787906755334070898804180269854322633422572437934529632538952368763478106257765548542361464081887811117307624271055241848584250776208543932739307465992789572619749115767511309327956161681757460374129456838601889474315748256793050043617650531739272214280856407366436493823546172269322091123929057226191861243934548762959002379090872645433929995028037389401988237235339233684687201647996628551990262166317583426091660112896332055628455680423441279065982409808390962163170391530131603413541412473585834374611717070950107600943046773615806845795089912926655282680817272316119096500781982491242373128495689409806944780036671100064039621891747757509413297077277288299462824998150744986553949682153643259535388560541299935257788163612183961251778117330685288638482551873803698306273304447360516205275225200897539852933654762748809536706413434896865807462236110324191729555096245797828984338411226624918364018251430854785232747144568471769940804527345274472768257733501679716322056437370631599215167656146589568545903823642383346837493895547773898293500348239642641255176175932536268388405077946746113220806596668774245096617005278773627798651225481533825012684263223197986684688092540079982827866859255984407647330653889146894051969113327474833609050756031659166568605876106540337701101584678730659752974608261203749069194635950369849789038855109427238698753430460268634708384565437750515274883638044255959718914101503545403629359927671840331893680024091158719078437104589628228240265186438084959450445708671818499009763148426749871834241429668067746457256142780844645935755675942616226772410269170574919249125470411886771341886453493849545617835948443822845671220528679232901274148557074830129838207335123529863042315968988167182158588030860102523578751352874856667460878874896968871045855442759441947375073506673634348673288062269139251361270726014053095715348791675181867845877776895055630564691656154994540893093902456979481056460300216670179437658062792299176287417591647098072672387970688538483148316898170832314294594299310159045824105138435738584372117760060588077054928852769205899065049000857523909440937065326872070955607835704016709796493370071925300584431520235570193579553008721283870885631115066085156830754854335530960375742863311513878650124832047021379602745173943977701037920078305658546022046967319321380864400131639512739293126564574881975734220950232582466647769141620986060044489468795159470815200150606864725822376884668630039999527613072707496510257909486377043644665401049641777634303742838455971602792419714491631921103565223823171113596100395301227640926985300081414101551911244908555794383994807888960998654844291347760764205529356664654287186319147597828060542619260322167737462966454935770255096455789776024726860341580243947289330756921628492402831292633357900952502112147587691052987587992292577177641986743706067843325287117921341894105059741524558310866856942802196877819767067960391166816591198497200710637426889841342369266830984773026618529713515997219377532802593160938647797328843414070400315809047421417801939836292599479433629404803695571017046939477770246009093884741404143106316542156053014994923497383639546169358643478399190713927476200774390195496782905626988411240658885395533273329106571588998185920016835036011098283757367317802035741257880888236484840356545661950294672762300322207227375111602985733114835865147802036713564181126903717756287902494555571121005844816687967971974986654559378975562509816859178887592058798153664688595493677542207834310335196956623894102454916859738942319644598395200697932728215290452717246054526769183348671043420690058355056107931775303246158923917519926210991685282285234770737358253740973898585671934930735793763060422111631895302284471096519109405036161098631376029931749268012963638478797941488502804201248012472770887449478190488189900606451719986933034660714881347614660137741560077401470131253693595666311028584061336909988101595021083739052356300039063648313714748579510359620392762268172108358515384015502925643067285387928332694589282327608125702634306520387404146079228830231546486041992341701823364628528972155423460790403457276396767718926612665879566469048714614072677954372800770265368259226978595122518562811284202648959404474417966029306971339297232148188415309333045971031947813268657962394544937995551946697786934619856661257935928509162525202543995640116261325674896356404175304253018990301909804579622836300941855932032960797139850177040494852302480831623782798822641605461867129406625133190537615702173749207732074609197959678913887529591164834160438428430680543626486430801763502945551576750127679954371962533372321389927682032241424301941190428073301971977435334246155973805445338062369028601091944471139098826971919377720275661445713936665419033131598859832646290804326406925542075562696853346416480549068260510614899251146400745216936408582777619161219976807695823539313239491985259560940647218995388110092981188065052475586068219628445818323897066694650571747563869646146499769585500182610452544860934824093648828026376174385168290704868219698121481942526753021578884265326002074749637679780841741869306990612253464615749382163327701062111161217016158504764744065856178946400333931250030574541120745397767034379169895877914767732124739980930154356850617678285623482892240914842819884809537471509986535113203021547115231092151985456356530845488812976607993325192160045641733354745279729653706620658145156015690575252256561203214780701646216922601023535547148382814769650952458340806471476186187411169534980384960787915633709257646812689574129220444774355343545837799448972836885141900094375516374694391972921207080536328342084826067739986418142288874976892140662650113425811045756183523207764390505449865232021415038805752193277903697608218698188117076655289648805089743042260972815694866188746720860071248994146705379144434066581048754786180090730445330917529727778027815798439453924899296185442849836407880597226941575094864371607106225577933410086257864577433324239330565633099578150220820497243038645760221658189875168263486679022392561553773841350632646739108407795942371150654791426408906213008351803025623284546254255726602998949213325796262118002422479106741817996813896666573357569810376943197566506172168989712101638266014264129972056205858286153197269195242445937404990817057098326188918628111260223590470022514213806141169739940088233955202616144155546330623370892526608829445050114817080567101926261436383100716373024846189894274440219506750770468457415413002079290066020282630734293312844006186634492545368281822110248997346535263253218289846403928339136516114459446490847797148331195630216776099349418598180659638871917635534644494664570774751636655381155150330479898702196378727431234877246409072511787703658962868165873919749208891321330117985958202280510898867989919384100875164214150868400673681161870048517852363296084178323098042825029753960797566681691491874503748299025195038628876788162685077835938528542909480171612973406758872432665384620597538768355420104568181701966336878064413124224247662764043879467450254384135768735749075001504481790287629009621696360575369346423590796979086569631503438252167347148289321975694992850323364911003456505364873069131598940568374512286077622725634441320824024285941584498637923839482764267690695966015345566729355746344231664084490845070518757153700844110578375188062093111273372793514965872520717844987971937395354032247066378996027596153271468606324158594164301212063574090879530595632245101327181046938458983886185352830837943921724164474487007396338672483628910094739621651403619752395637284672228994394101836706049554305712702342085917268674113138272719738283309385833983002986043398623382304275887737281436575400748034516760160403083025524829556550404304025127415134858499905408835354878882650537334947232153023964194469753187850921226808533802383808770580434991894564069969999428590181804016663190451568410262675507479085292381141390840725078748809114498479122959832123456199175331197284184801013485054123978125078697447420125940184690268884285362783103388276623671620502732363607083328285030049638834877520417246222356808442264651836044041224512763942249633710856558817154244659920729100589772322807796196685590742037183701460497017349580837464364038289544769697483388280594945670655803878002421787713267897160808161672000395326202759649683679627297549913240044853119673549039490227125434454050825698278568472864612905685512824888142911057637023806081213697613623739324235019392514601419179892417004158387516481401325585852010782810501529521359039139960307327265765083025150759425292809313337601356203973647588593323965597370319446504848951219020207568038149530892126211596064845144005508369610552765589352244017069932576322379654767044194435232091314634009759983560679367972620901393925007275985065272842152581218120394045380026870499340071857229366842787887679610740468843236728366373945262048993600876927967821054968276498430675160088380997812813503033786343031837849273382417014276578187777220533809393138645443728317659602645798418422573601349067741289922649004043465603739684260604739187372087123959567287527111530504555189615433442940162523732656480273171881425946707553568569935963337219084803523322425617938817743516097884944977702645500841081101950562924156136609846877027280934749882224860286864018698664762658073175659688105202266106394173632327336986175198992097685920550221740661030587922626177760802114704244360691647456803110173870576788912401158144099364914911165889195633804709568405664002230887030377385390646342814180685137344873388871486717847937143703833408058518044064566175748923952743934120099985257953269752480027003287914865952820575284007595151381753382922182467283036128242083963830829126794682145318725703787258857039546829944472202135545055631388145431168131359102453521937973694423757931499259616480721797037205832438073410158140098135968543787374255006184349422401323337810741850485698239716353647596864397185512771280462075162299908805047014575385963068690730021004563932238150710992721065314220495493623297589340805127121781164051052948263853502926407390922738411083164901525199166953044751015903672318342850800004815588550266507402523417874090836544271603226261825102170111991029519060203463100883608334637357691407467710979248455089507785249725528045787500681739497781822568659372308706474541652879564612059925923580809893275453926610482962773142886165165993208876736028157489517373302206267946043663129359279280259229328454872096909920088371541264308310051949515527290120288835405074673750412200941023245543795643524965028362056787088046339772310738208373246567078452430181879267244243703494192389060375854286225903130632390566268768625486700619705603766132280677095559645607283057352407878888062693693517918373064204405653149943832498654054214601849980598230926801798676373648240091697068088246304757453384593400324622566184544090126747335055903419399053662881558397220034757496270262695878427635665667217464338796078810666996284041711806257209043761218500036510443011735831869923151156275212871371772873133500235620365256683911690511581825879386385592244125379818336016152289192457725136465997011802194397404606514370782807145224325933191636337982972378175063220981519118753635655542485180860686735641509255508606762332330157831363771858089245415261496047505151923573093189395839551876947074610286789590592877387045118314833650950558411483974636008720526224204488098877344002911815140846365522966175481543224198402547786993340046007195131691874381578638681982658450361226449649709737492947759577997827695773689378873671775877363826695063507918735582917090635943280843075397074931872803915550626271141747811021128627353810288366762339348971135751238993280108877633689124198138571065936837724633476466016650821295497021957445345372043826771198174220146776067229777937776015453906827989493921917850402329992211027242368081702029846601339991796234650232480678142711424735431377484323288754198861874404634127843803408043208631963104718507593670784097504766462047136756174082068720248601692971835151561879573829358995844287609242197236645731772483952175725075390845272853441675395139312168912054884366060427429173825412842701403595046697548841130364178604843315583987511573192592037920103235518911708504381843819749763863443310895004792187007754473418818101509335423839738138297406063351545638851118129613231041453515117407455604216296050413899193070079268292638962261471793531782056158216123963336836426479971570114813668360101554873366787262852836505227627126538286728324642986079514921662134772683996830692825404287468499594957966533578908263846549620132383227894675504328093331085029566764342090929398839786801903254745408867992422132096361129449992626162256780193894238628039490273441741310671231031867706762503106453382901478759225499237535796476876609980444713233967095533654580100519888510307521256487738839947501564582588047849806574265359374914064653937435412666906417278078726855584540339136234781589215228607212157915826773911537142846769902520623111741423936121392853628335811173925759973166462581811151698423586071364207290500807756913935315101345258583060653012201775637783882476412167782541785311684424432440108927563557312281486554073653594066457176857778112507772770811491966393411846890128486821171030693730665816536308327450421228840532114559033431852453472612672735887683180854638932324500610961554043048830879132796429093579158062097135002249619646891393381996780614303354525050613902406650958853122641385228168721324067449618092653184198773167497282413029865675410445116675274901375231382212919890180994404290545959149450002979313271058864597302946634567361490707419676334697571641371137605404937817353689110235742340874301599622095704955228096230733960792834270571973636966040165349324773302365641681717721757738768963433431405795738879749016144614500564560504009150964896850054493098933356889069079132530446414551349324491143623615001058010362565147843410059496402877045938394096123229053710649502283384586864735484782233121350723441076021444874025002101092693266080683852288286317358414606646827856370817046954093805273685957256547313614747944371140104952187672414868472748258284531409283652072399117819255131777022355812298547772740342691333773507889632397512535056197201344708706416567386390187839378267272945398591842190266952307245842453182398518026076330749632905067443918992663147401197115013965180956072618249499703450738391695904142239679450375398456749524328307929743818659491874125636872407390312562663396342532176729167463085691461466294842476423969482432846145962922522645696766934045391693369906845351444645238297916278602561850655411975524447512797435602191368930742861074486162804980368617804365916718358200817690825758147707754706011647838248036323779726247069556795403187223012482482918933909799698189932671172291333073180172649676926255916427778516201751471336455954625025982385286393823315856235427419480599515120784516444283269605469377272543159861149964249812246543623974458465380017009842296460782212173974306159419243496658735730437420080863018852826935808602209841312085154982326138866716988674781661611277562138980140299916099451434507228548124375591347483836243477330289370137331740694234019624962140655996883160595334610734912415919001855863440286266371973239009784888980430478389081170158852738576028393599881658539218297512207374092549759867011937058918998345383049719678989174529660147888115193701315483392845722753689435040008623900358931072515112789476565982087607417736568741244386809269610235389915831328545638037959563739823802169302125074403468399976265647838901472659567079410175888780253996451888307832097102595489355005270688451928043856408452270514455363051894591091395579201101685170890788918788172302277679832237392943142954987627778779116396718641106511958901232057696159339797322567814559658003787595582674354307945813488802046084397229538745544879499577528965330692248488994959154392177506322195768748951163468392800212251269974273206187989589459430943361120625494111209468530864496729375638089562794840706507281351834359701154597280897958656018281582510582315155603580689561500519041988307614976798609187218744440064687548004277699323834585433268553014498059300237574810830626204444161969341774531945185373995918268045184074737070958948033513995048016044281258632274400637607540462022800831735134649514357736097723058799780349755555234137806710818784141159061179226159563938851717801609283480543483330138575839254142708610887477444308008118055759269457052183453468246768860873495827018817923404980118841491636537619148512883634092715931917276010761201033637067763312963503675961658179896385863818910458600073127664966093981945079366443610651031876967786814222592621426120924216189105430178892051364633349559900079014875812525624176283245521382574185923232930888109063499785695556936761026823558219705064476266594846427895768569938208115483997653365280903186164745583303615074895186040945849045287204370114554072744282159228691335987937741685563949043986785431726284725105477013148623291514414942002321769209777425295249749339884671534775950725533531327123005154742586004822163475664540859387644570585414838279661993324917491725963543561825597921264724162864696769001305029773833859491028646684684003065461933484456968812172788829235571502200762427407667102717808417522507448791943469286604950341548781228875791165833022929727778100971462996815958746188687027439919864450604579929167352766728721060872105791508619623751696490999322104084358523329212583562524290452158566796998001782080170634687124446763770997645080609067143066249627239384845899806603015957822752317113632495014950492499983620916751277780071451351141000320346086145333318182005049078205011934781208179375459949769276697896078143446315897422091332721092426154993605652138074720419160811096187820279071831879439072559159148269511666424998914175852263418553149158147288776704248812813637491144346343860072497217891015566965329440319235877156984207689075214145330406522238735970052870934203119469084548891349157624602755185584833283452432276634601750802145036876031417991971146692313224172671245479731064721119667262440325894764351586362408339443314970615697754638733863013140490468445676205641846270387496679286134992379836913894803906154952565099255648359741805026521629279984330662276019730150043582624971924278919139499732457059730665410192017163651578126965254872479960438620343988606622777774959851200832081342077258094049760538772067815952348396444373175378957016363127184218335459315802189449095343468027916005813183652717906399344828193278732407747999972700896041521643475084018464085928529488311697627600360866220122718257366860601272809225044548723282028705827458224187310610937437235521574390384090858042570643296537233869381707856763068380082200843555510567981967572798441431761939381906061305419607541671811705306783275025904800071869051790938163204432750243022360399269318652970973231229567536054071882128807196890368568999888134010057635045763654297989234180494116900852423138858071764156092973567948019114848789966938448567379445989943288573906063920702784867223768973840458592316079317591089646181975652210023000644690132853429566123785646498419639897148916363948317034300280672329005679859697583130172255108845856008815831571240641781648357041883927217658940285113158453064351426718739879516418577656978385950366116530278121225689556273124485642925902852263812788102823262952707439783707217777925377956743033445144233651922967735932058861489525781568398928313521157496513465967566620788056806242015064572278779352806506240663592911611613464720161383010942083517057299329827514508380407492753954112065063548894491052785061348754666287796205813600290525403007183553531285051293204066740012650076992085270424553903902398301236749190719873812491810554441909245421680043574784926290950923877334057127313062868848257978879950938231050336340141737473280529751353037124741624516068277227739507902552178104688884473056575109233784810605473216756027825468730653112626957628333375251475563581178909874880618884190189024880125449363284745440121973205697264675175326699131421582695591427297335864982554545898554970947179800112822224755552561026272985221745404880653207387503041515713083364703471370041616217972205825040062240560329105982311130447196853369559582492634296188141372367242684054663581107517532495299230085809096688863017751195916410292171904029356256358100203537084478256405555250007431071831611850701246916043519029190984852178653262965627046838156670704754497075374553126598412426622765249002351842054592050780645082811134555638328187951766577357691920214890644281572122940438152577164809951237594446291610578796600276527144420291736302650094812310171206721155624130252055450911414154986456305767964309238631396371638827148612651852212901838611354754158437673220192480124648007164655739122057144806248844553775486668354649521249310681502254014549225428506697267807018632336255602657015921691547266980327413451736786800635019044889784569021959748820304501369989810008862223303357121308893443853722589629832845182811175637272232598237954539580895060476691418057641767017160803942838796154419949861785467667195836125881546848273626276971991115116433981141089789545818257126042545987823991116033360574328326467577310277392453051408239320166424333036727281092884162495669769776865761972718839545712134169227507324096052440042583994439172705545472427819701128784315381824116334648331565432741786121224921675898031441701111193795680138337036577834271373350212163527417884454523369133805377293212733974538503659400490673586853514172804640052334593859306960221933682853766465910347993178640711266187245983219012256211689008699767548917605861817792524217204040048868973998715654332507843399896442520351589125061881167134939785930454057082879666087147898192279618460345640248696042708120627873649036884228370017015870501283324327537847396207528153904997178413541553308816858275434563596025386776644782557733600943969037556273193013202341394251138446492400902433538155858671636092539518892092077582688154863407754550057306970586314147790225333839070745936684626765575122416849138722182306499842279132448967776865083426730133229858096321778146713935564163743769982842874255030290384164447906253939089858854644392413756166401608555684156694164498724166400515874257506362900333945052041168784183750098087214257315182920459333651270230903722656126913513175667036417516547239250342140362574839424251184675340589508347008086399111701008435040171642260738305917018287823381885117223867506042652855134809549751371290265839095262738640501954112114521838304334354176457969756642259968120466199472802608162216258774797653226681178933776736481768763387198352123409267771240508519703118954928180707352140566701505743529854051243563724034173407245573270331289457121196013044335780390514961554877905592071729380740470354541074341845105470589902983919443226545733510726813167810549494008016953485017240206740799662228668342657418849169845272771875657595252902184100761986356115658067086529026335839815038509518093935054224436316376750291177025198832131449833859329097130742042738557090125547861177651210348757046668719807968377262538936994824839693774515064677350425368059334348477863221909624227515492532404788971614611180922032969243285470532866016781429374663771393237981090293839848111726986195431427313009609318383074475042086055076008268683410471708181983615421459667006302242043507255076098840737263322786581521036550185895094462229451159386375390991875878847628840135639645700445474183893295641739696856006690523650493340713369262746587145977403212177284588836930517061345692381054923249439984594781752420712153226713085998576134969655799085407721982359693078065402474473408445801197864329294452286679839737040331663343283999341276986323166154976134605232979595723955907753632250464293367822493475218788836119013690688609709963279833101763722114024819681105802156925800132645951578988628207791664496141899639067834705908859226207791970518152689194834177333027202578428923194931088677349009579937306596238092868246773324652421222463098825194494629323253354685672060604740874494303930454762119040170340210075072493773030661024891488961612826524360485683328380849147973292525964709984862411201854227030061841266292261817116405920130485004016829832462192906539613855050137394839238168336306615695380061066958095701922781817959684256893506802090088627136666055680182003862805911676743155741820581367419438315423912031509969373801626356143036221357580017030425445129463876107917712957254780445793770862576402335156895603394012824883804943064912244536684152408010870608741939245073649135422650284675763249057361773087053776816255172910118877940532579129410602290510645797380207329558721604277078178734397566878794990797310069318087437710779788604297513641416451697848900713943060707302173745875905710796864100912508405560558512393309981400327369801437340185378637051713909975722628263403631441732206331500119309676272674945557995526473490512134187960587212009251546105116915190278972226063273009552494081290920492792853527161670276137248295826143386922554650718983367961670874386984677219244577484769321931437457787137198838938568074018935491122219857364045666071584844758819843405550966241801027524797318736929346499677171077949460541777059113117058022334017076750758542830484032806647891754729499635282236620326103236304390137100727154589570648094884335522478309419065180235324789220700614113198818870870130547419529849941335319956394123281630843983400147094918961320491849572675258259231729564455592458484368300250473281986089412619035966998099380479529702948092857276531867198262846032725293826530979284297954445127349792382864895406008322846536374487592316385830282021010671064425895519494843111276603865998964866369202485728542520025763582955503297926542366381226826384885322940598681905657937497002949268426098963019567335713604627243056082662626695617758013097779650189817153866058529150830472299806845573735862242408475400190390909051112350518152362574647699181710136537688154669690493654602173155103736076251885201695518805535822884459272596871207545867565081174063804090910668574535054905661047465946229296915987911676639065581679153224420555374024554406133964994231508965342217596198879020083709507731347966589513852080343125557455895081319538925279674844620293878243319885246058821868346478169823813558215708585231975808170393933756316360344831005597880971346057416549648877420585577727388427924439070251435658253321847628533703684743627986111176493835872535222576942285480542384330973008147270490103579814170098498372453056272871790203667418407714947926553983110410132168628644375902731873493513507257047526691836389713834487984941418045901434105467288680726357836391053668969446966830222576700713124502804564718013501774272562456926793438538148710585857234201473369315356837728035497937732140084685645007278083509582568425352238414024233352438744128084916247984495254405055298971869663902912590609087459935218470659613734172866965052015052139262393216761496779363563951114684740961170232947220707574819128082282270153735644488436898382842734795659232870314829469621983037365552892494203737958409199554014873887228323114398883617473117663790782156552177458657767370419172728586171006069267199592927316999812107561358340426971552800456283266479281953811277774659421766146996284724726546505171411700460575898264088277942812505693953076483167339296240937406832803733197216052650231112964461473541011749777898241570346756870458892312676144903483222830864524983096829663869643900991422108899622571924806804220303227946635200078555158935797417611149949822396564605019018838415814860598094311161571417953663675848732400645253986088229788831286969003284812788397268036058457329788192319528592722881060224510665300220976521728144229271323331255491412872866281169733641442920055442383183549012307166170238235263289387593893122369850379047405692807431650210765335891777236098862592358605569136451119701981434636031583161414836521732870597745807735091947401778765325468882939071088881077218919993307074442076982020104233005349071126335598574480312857395443936483500099286526779349469674175763936976759693481816901132502406265474343594432521277539902738761786171936118975404541814141515084538077723055360720626795852773584463934436635539667277885903755529531303927077630017123009461376655566634124554698496030146160659839586744021634055667875662255995047574091402696847824695644940869256219199720549262807889303257785225562120651686881474606637909186878465162352288116350036844059991655362818988425672911397490688528878435706483737952538280735457185307578768525298712064372085273462054263838669556818675799852389654256694347574028219575301406872206096525110079060052182675043792194274354531261994166482623481738955209839871645705309465472286084710555413033383758384118234797598155576960931107139114000389723753148967422449757938281631906439890837024807715794181669333144610982808439424667831694098965720115497687446117774204425756187322387918663225421799712434780000594608395656452923164684915229043059157841358150733555119576106526047269947628253309415414659813705853437669642877519957423745930252208141147585741884046228298368224200149611788698467768742458190783986000911127150666209641385924344800362473545660448081104610525285470349205360269492995257056966323379256377215600722828874783983171961958617019992361226715916240277027643119875997188473500560592580909813258658932166824303479213369213405532586901029691079044965426850259964360019412710872212123521771760482569003730751623375072291888120706566425082076631282582923521407802601730274597977448788852173015656461698892236006066674676002610476230275807074161268709769842959432061031254756919705287346906234929734990452754001323313363755960043742951886422470039430035477727674055631291297137249582859454754561110548167191621996785882708364994645674517547303673414428975228051134535801268397922834451618932208890937865984191151390374607264377894899065755464164792777881783113467601383575189779438311562611515462228590386940510533355605955278846033178508964287539956618323600047400183531938547657141767098086307135652153940699298800754907613299827332488001652992933837456928443166767227874954415492804308138787859664851064470048669654424112655570407521168358418096085387299196755614880352937192427703644292010188761827093751130148453025610119279169691789422933601454943666235542667119590191347553843573701429764804438909409367464048395077389816414351940152407767776244115453751798557963715435912260372574043227339791537522932560017843791966608821825841404190030071326524061239722457539093021556115316651941499027570493179910790347921021577491090402442367617608923732453125495674317896595626147692017595944701239477084741742824062865208107727833215765905005654571153382096188552676673518266065481316792524862238094666207682141433217731041772853462542422687676922284484424553821879397513364834994136452470834007638918754532891689277193176752685158284671245916483089244010112086067137173639134429668835231236746691757321442632464111759112912877953052240637875517227686805189780739553814300913035885926533430282345740228671765447809300567703994976079308916591466531773221532698249111331109465772654687322990950810478178373528441195284464051983124683545708138324268922024848871334513128374706060288706485953689734111530519929715683000515743101820710303629092815192047093939068363189265728738319288966044689925884758606740724799739805163508948017655249190072598848726680408590935641768393182977131550837904683704638162215192305830406201476277878911491023194384973851802837319812823634330861473568284868451782657645079717050006724323772745080105036116208471586585026989635324712950091990263400485107187254894802254109778237991553538498387170410923063842053474408500454859210086758069055729815764960208107358517378192475833402792514645537762923016971578501674962978769686741540965768135080678254906947429756488151224030491978955642454692436382663487828729849975090420014392070976206993104242538987550196914000581965769570358636977226395473563553482564126244974737907316137560652185376467865360604848094328088796173727938952271300421231573080261535196739806736978338317840881231989399465917852668084826877537822584408256300792257161250774655808853842763392089432344184424996624952022999521429925201528148841724144708554954098273601685048806272212477201169648108839844338155715929448978172821929648934386102584953819489718044908111325706062700531304526308647636022486576911945267014504977691852857120758873791363205621600948029449153832806728362061124155529988992471681800370994359943863480066843966651335892303728118718866154117184791687287806812383799851456929144870523811492548054300223940113482125207149973513960533604306496935414204818501277404263624007917314070196508914699353258125785621112362171531979198127753675208572595383284834200655311390038144374479922981278273442854882729190336406475453940411435027935528799551274300655456922455992063406772205288530178263943396820486743478527387487557893256400277261179362172500622659583895699563662185024772278714310698556110545617561991433150397347354646303519302359705372781957870691372563958027090004375611955502585770335798951718307219305315058782373071910646851042749409206780679378537234575270020903998609808457021308845506785442803782299865753325574856265881387024154026932134033468888653140725788390440274781156222227414426007589097430938000256057349584370408748809557860841735139464760581523142513866741396204007869333016293126472840472305901176929330632633284891886904008205025107060138166679926366525628988289918432999952242221148209723326650973868512983645670820134997948740961333638346310279235257018239838124985739648148611946234690067607507785477903159978788986991374675742185669068722162160696886263175863074717191058829415212719981173250511518708506244879099343400045009073791922016437011350160162604505081970563405876640545290790741577715460742673627064386482215664589294229828351485036522502969325877182050825103619552803510772832962123677967787574335628202807237817919509237749213825604831410673258440325423034702373408742922585529080738689343624754833377049242028633093315967873430379781655527812491505879156924700529031777847360782808687394824500506850371591022835824382866931467048887865161264502096705507866482966521632203012265259963524559642982925528076010116837775068684211454205413863456315195543163748501662776660327234571320313534284895232392270943201002321500749859944168679015336381782272246393029859585726836294393423081124937552855716231360354372036741678077608838372591902123870068135080405011597415114285961450803160992771885192383570737556879130807818756276391288439196317638337002443546998858569580700769781912707370271202217854515296511033237973342964442609482376195451310721130766389503494937649000959672809058428987759482713318765958021464936669399205716345905085001611977323950281104676515123530694773484357878816477349761283500088015275061447822699453758983014525951747497198483346769899918238134050827974236485886984901779192094482993215876519948988983831747962391833898076744654004533762136519912841604525029312026923080618956834974069469518800779569011793360511204446456291699755171008655627885925645870337093389802005299343968158316358965170204294112976480368470917460628473889099387244878314409849747098645270356552244825225467433945697897704623837824275892283043260924096880709841556964875064730650600280630164092877780878248619998095234137158520256533159835325796663814330517136249009467736462571833083740585816939441896957440134068336399631839408395624738075008693123031222015567606941096626893628421608520234433541990995424117062357409364179875151925424906600838264486662922810366563924792596824893829891603386221152977140732570261321401067027724582633663561131002275272919198349214495639149939456638175670318519370636668156987726790810605720808547960033696763345506675613479788728766952151056224313472205667801899912166857225547409773033327958678703052086249305679313156925708204177516361330937767879409562164393870372058845396353362690269067767251953278515939466074345755012030865233201497309440396208058369460961947389538042156087133087905700901637481924228665410720065158555870488788040088921218339725973710320637886081635507065438284246353774067343436631534253062399417721060725839804243905777265411418910993640387833947788527240281394194564621361772569781735464210221828975934499383842467627736911036082258153957226770947234939272699691242183444346832667819583071925426177346100784155747145890759201296198896769995899303636865580591025249219020514438213178032760700017832587843339596962385482244098258004593943791942775532063595900289428542772698107962008528325918694344246577259399151026321586789148839592640370322895809928859931034825691013812564956917707024720905692720480448681637155698160527017448139779751537118875672895990183096896267943932781711847037715933028730034997420609523165993091396353210301827956085537288200149273062491770574733386082976356539046068512624498143601404060533253106619374801641084294029819195232096595150669077341357763207546313997606635070270590275062623535810877435767320961004064189251831062521693665009852120947983329062790637079600117563997367357853193174251807772529150439277540042671216665570496151977118435597851727433393000582112162906563303934656642641594756495961232374144249652269233091104774654825889310722304575093354167846814360522962078805503791291312950136329632674895203813530494350624701795493120275007085431664605200805608996576494274966622446603088098500803065389074801277119419109011118913652664651445330109729000929916340690418987950887893862384476365084598163802771311237909504589861115959353605637211917261436613800601455657617658827732547805724096593103880475186610906427671981611768236891842002474378423086699851101248834344287649137206574673112797103750218776336771001896701925708763281741789876269790974323851370875127108667890782992276955119672746578263117097764826518357337800782012334646031154383192693859439337187219700100971416225846151056943278519681816482173455241854367441466632188114847569673996016001666138429135754598441648459091909317386640321130360363958914276159421058982310315825405695366212279434078886874105469899006517865348886590395547108608354857514504355666416882105544690564593676981245014529870292133465405116749004301464355264464390117469050423862097637629223807953094550969943536079388545842700050838776353002697165909806073301644325916484055152407583197741762235157896775081467291210128686096902683122622129951168641321808586710362509577950736204623861402966133660151885706924569248090609692370684089115628605856433784207464109052154182527209493691077056879570241292319661463179826645288603160400321928795465152943573196607120024653518062028309750949389747435197656486315299978733391037936543551519986648326179126539987264929107893388781195947747330701390881295811976983455190395331316498402905039077808972141827755895096254003679827811552192965527817713653064642291093386539221743845623441515364360663887492010583208034756257217756917800137809406145235367402389473873505009157300137904284940012175995671250048875221621985331346322184640323649385804564106460665034575514709919603717591516895798986565529735908975649382371138722577753536484193216650156488847755033049537241130802097604952946731529685937776598243199928791072265262843011819361638179116580956120115900546263005838966990764152298870807467904857593478538579279466323706244427131236575515765786025000899957342355707999942185433529866299882706402840696954419425673918483478053892302887835866635728550432482274151691341614681690987372118889327521273779645989439307322374050254333290145475911311665697242492772811546304081459428898489711121902496033111753533840312070601674674731290337201225870765899968095857059067618461781254584919635329019485815728127180728536746206100041810416698445349161265407549298704631074511940975464242768937805128622101916436405721184830841143890009099030509169886982337467936110362923521902999902344736272444887956647334271102246593851310941003953670522236687451688522150630722529176982128528510945211259437722993908495092936617884832925714237166891405350841879803288451527879726322754017041762639799608721067786107498652561651629186204031669874679935304811423424320791507803756176539548005208816133412222143004631198730563745631293441276781229772575156920781192581242588455699369773530606053101366201431459294242512620709378964645004216680312361963373858454160546893449223530443500220700555883271052801498955825065951605258816831530405572203063667378481493556597919165656053080473760934297441938624566368889677746597619119140851044370309887803433431671665691186254862612725776292333965308871615228043614919909735952513864647491123966808747917160319019820408051953578834764060209734223094539497054598233826526626501029820846803588799966680133653273696197281521010562558851030333939521612506598232639716138351922075671324656113229027260386998729634633523595621018432707626109672723911044682074208916764089391217137493142719927538495082553145040979065511264109225244669518741609977744522929628599114832305562511303782876678410894566252146006363757048601768614393135987116869346804175039066980776450185177757555591566551610482480147001170286736410076735524214153108835311644460924221403010774056436803248755617981883487144871326948859464137404143823260701478766897267590962479810142474249836995344652223286873996025863367272662130884274630932688235617932381562895554177415509158163023082631206441651445342253992166342935341161427450203519422476884054106962370443655239163989328500403795227180047426466144904332446732406344592264897119245092483642958184926942991670389931455776412371052589740146240274412819791599691087262012145279163228195893367993721404737022358140361689908244142059369206641578595960564540057831312928422615851009836801530529074714022253867499526990839549401200817326407663745849808547187122851780104068700830730881720683578524630614745664424789009406327481264870470852496693087075507511608351214699827543350204831906632558889133408613139512844756419112419162986659862286915600632694293762795400007443275254086564223723976806446227725145714575157876917986671259657511043208091719488178604473115240803933516274984552600017142540902980921666668901032114749490161106655286733294016534370970956246568803689595522641494845681401010315728235842011074107926963244422777293395315875065151022573962933447327741079880414926700438593008959465802557294673846955010104956107016229543369632997710343246684785066176034798558150961711372118567049045299509467122994522013187781280227128286621274612476021797734933710643839142065687601069623522959504732325448561615452640742014522999095785734144830747232853308644482890475818119965641738176115917705982059717711480467026668938530965469756272520050127371653395437983162438385849681365946478020962155222431468443363033316889919771037650483675366617067057069765087026029594248760246217764217884671086341859862348757023376090159592006236824339620023862687117064687878471953584659172007139235466392425634326695753994638501564406247299351385786415257016189659611947728418282795188022949547250923119928476782630314890274893607276068567059318613295954917028674858860290275032190005900004264208707092719102802309394074603225905104345382298361758627830565080855846864824190648375975197312140166275905192407317476336716803286461323804479131384908083441435354514511135489207235924124597938717837841598882074991958424137042356870620143056466294732864261431381465791601328287550586973798650287761646293856062703103355390020495208966964119796002698209063631372568807230617129868551053052036803693716508461107929654883098036807400295347243483878034641155724768108654446614108683696429356355495566417764768826213652793518485537273924709649022432121859211133127606160596569333180897203417518799556448606552578968230644574969086857044169239339688800289197609177613868862363580721116145633765755344935259153543338547760865717372857082715057394238233905660705503006543737320160242887108015233342542219897230898609494493822830418962475153483180120289782207745983448674352394875867205523069827485920635656566931690645363335310347579467034087345054212387055811474971759868297443910005480011455851623700788998840035816575159731350834860501100128923218937991714389256974515654267806799551778450882213431889819418104217916686898280356180002468337868382527519523667284059955591734228791440737638832845062159560097821295252348057482586684733140301503863916021547389365371930459408833552324333194183058682253197371921802648865443824678996557461970540516699989791153362932918838205147125635055478445642282648828790896088248797822550350963993931376007486186712763761868791456325852644519761250265120409939835487771699993716513669313512330965558377453404952692656142532271327113338843887950551383630101003941526581782514675305917983291680991152826163235131718403211762833928105631650294931560966960612034019344271745451082295559507777501982606308236003237296571907467307491011056535573442013997325343446748091588700344332003369084188720970321562889445623409060241726653400649248545558332195824203402420337650392479464588033503193468110692981537560390717532851854955920845916897647570339050447303347804569348079638660865249489357742381281271429728459702902994015999829828676371301172656205367261955464961971359045955786646049465604207256673256273944237456054256072625612120840231515315365444812051714617529023426772776460033236549010032130549571288623553673344891125733151432734601978598348732971106800422298975769104389316912638145633703022217307767581252521099268816099561965165865994406299609874234225663723368925737695424030341359150441248327660220379523317110131967427990504905095485024968276880016460083607829015803987039132720926575540545085038109063698433355297687855043006551683217148442526626479677757776814881477267585476013500522194874107241194332113036716436662707803066895642076699585288019465606744403977521199155155559767357517800260914904681043577182613621418000024063792047585326345246484104874984322437759651306044448274449312362312873826731129593152415337177581456744828297664246503163415095672299257068314267471337856717262900753406403475051512085296030530169830758787799174044417477265211548830303318447343564269009035409897025719763863190485474844034552078408135650411496073493992020856994296907792049258240742875835766616755047919903728868048845253434711969992765244413083482348200844162840901013640819997837053438465401540174667733320011765578097017120808905842931017711062521118376152085750806185932518204563523119211243351622989091536977175392674173787712944213816883546630056640317232426744023474163666828245076474301207395824532495179960588341472039723750546017970253525382121948866897026835360829541044798013123336231836007548773906486202022314930528273691753784595270653729160693555950533549756939633124641853454227493546858865435498733312713436256824544346670827688083608997319030913343819952152622590818224284910913989323361051426284978645182600072028977306772288345387688401250542327292239171904184138002914894387043620513122755758699596594089540653634611592449339375626186437857181108140880446856280863911303875211339679540051597028149613447857541456547294759931633010201153629908230493547805129532181744099814173312921165556899919079437295236754781196375353549643137969951932351886837230200434883189325111153253902307180389487291381973612336203895793897205353715090671872786227398955402722691936197386508930590529231985326921680595219971078913532848898344818171081455269416426801539825790011900329649897264299399676234935592672346543165833326676499440109728384071676887103270443753650649586036242345496310150028510726116764121911760383916536168325232976982100863467354311273795929100795292482436648474815319749382644344842021120510489663007916485874012873819005717070513314179015504063560600888743338326224021317757769795497915792198507396960503958661121750687759079574104896673411675618296515786957903472130414770150057728799815087317824487742057050443476407806702482964863923340275436280036606950517194626677756990560371383210966267214061379268890687004674842785700974741857395166517112816679576854888761744960405341394365980016759398388382844193167516487749132317979971349895158081169512898330513561066445212870817110689995922951276813559550159371242356277761283029859944781818405860945329472948617286541744831802865015814108345192553407316125105351766283082655806902905762199905042333530561707345196352804223812926472274045566133744266255588785326742982229402367321883609728787967142224255071372270586441019854194774348687019093967734123593651168200795062901599090235162947868291747161895953904124466438853611170564557282072301032721712420191988447016561055616271757838633022444913765833966590964163040437382979484628331697095371136800483720507752147775825678720660187775622869795917413181654620415699674929967507209145441473125616086596311222211519995596232019724891117937011611631236237564974532558963007963586613962185313572162119770230866725026118418556562507923561610276113274939521459068016828044635014202641138489547635306521366906696560238418818611403288446860379778111109793914194832189533495790867917167567776420934923821745460776502710770835282105476575886938708442882407786228115297957407627085507267061237138333619828314963873358845831328727937247198739623863602750553141599363283259733824369144485411711409489359364034275052547016627573537341738535633892450224852221271260381093452876870243006218545889084489663193398279472109636181706429527197465684391511426167385765730715967891022526401457387600184637570246963109405444356817929430324486713529504270693019379462455666227006871882896988168669777889839882975049827413459519680429254798720393801031647040782255523646881647361631850430639651684968593191766861115652476320976693908009733441766897839807761383950655892479492630503005527102048173169099647936870138500142160766463768384606803779633166979620608408304554093742808980190901751689398685238897972125357216636250612875912723097767078730633121138378295145295742589554592964952260271141321815056745993657870447216561750279129813463526251708403189566752661052071570463119450992735354734550096685299450550659046081903389936990743236749391641178121904407243822229109154489755164415704754112976213469556835452199087321959528443868924089221322130420884061843661675080890952565008039209571235804820680905075470088087436513240687013647686523667988194346963663636139959446306645333647373619706588667456954314821324481301664040205043053619049042838923502058178969067534168776128742477787410825645865072009159830074965350184811993763840032131252356881044057872228746326793711939455327645450565578051094315303304637431425549957876363908736046562921185339458797765192705554332716629387021175605073667380444554516707767109067579560805753756445693484350114950010879447334673443020696720321977941598913455964879120719268992750884581874647787979580717883739450487069128660722162886304559365319850130791610655106880137831915715387413484866638560373790618658053691721217534957585057023071269510277477666336144951385015773452201376601404016763733473543874775204953189921720735407609472733534826454200725164260778494031217733058177356313313355544082009274895106295722923689296282512799635163926753904001345723785763969262852279005497553697204862485718212780598592756772048037252928278810162583560122008098360173523905974554446850168055114099509949258273599937092518648317100291136864370651628826137826372245883202734949406112368908416567044072792748060274011312252439353401614362363885336633507000917902327733006690272192716978442635641160541786338652165191238697085784710644566851949897226602344170204650448070973012754820487562714916350184005813674763377465109879781975658554599667563058136607111236701335170107011299661263321016668929180433656169696341569489972180516475238612738006964591368471590433175863488496017192078090102304165392682940945021946813661935502650335875021742857263700814898626788991035195918468826331874327064931397820343103163998495702274608096405987540930109057236118165337592574781467876093905109024076487118319895878327839794885342823941088056241055134748015453293405709688830447051151451027514959357451404862131242150148138879967539791764767660182593099004269047614089014015758073168233182795339003175757304677796647584123568582116330182987655604907295256000316308648831847830850021206078674515832629638266780859018724129836356138244345767757630080421658667549024351359811091595980484583890522333085438395468633043558880532777995105418741134457118630421656639534123465055569703507582827549910137145700656348020952268269909944893761325274584790698021052439092060008408842485393821821016628658786945547243480502008657504348760832523002907606659811084855305431325466394199608696674157108528514426743077493747217590011029652105068262559428349959793503769923725318936244613337603272468948936069506576631409606813108517683191769326991865953902265644534149862907272741397047625346478172283135278120288503680780650264572349398165920033358343626830651537477230340383198810487698822882528377186095140086583033455267461946092084075956976613050307253011976621221365195246431819342660883188017710690798461921436307933321609950225366437954168386768465845704098538449627515165622878699504962862162307679347933164912792559356520360898220775751631346525619561884445477615943390078535113518852658687634834935134433569097653176538569212982106850499958958965597201171859864636204620562588070302639460649247182446464988158404212914875241697808351649479485119794614515319697986312272258313131895687474197472038050460470310788699012332356777182646418534314254024925108046528484334869007530317509473128963673882882370144655985686946003480304384307246660827855324597073882592323326469573896388468393148813222346061454962106789589327407323081439799721850875844629832743967283190739146418075093107826400265776107968477567223011842861802967183317971342602385579523483186897192970540833051860392185763857687628015698748524343589687121640392995802270759213039567725537603784402492670273324899722985670080016138779086703897634626036136667917696667634537522249757238586384429908517174434959880451011446232399921649886876407076458445344050898692085671372804272411321913650375754695697487558420726539418377926070626701392316844097951236874779084788368984373828577719468768195736453171493304693845717040891005793966985284784942718953925191122203305307380573661829241508762396979071598271090735117858781357297275704000566356117730843249834658300007748498085572329744620669459306244007413678336058582357333196637308770629412836757800588032942378059718201979256200544030501707283919278411521078768958256527999090396591177939352981043968194008559373448084462558577694294747055930228524325056100296556528952652089877824444077081574658195817684055377675498310945100051071426927182406189294603994051622262001490639538726558870306794375272152835313515403648042982642785303524060316319473005950616966449898021701432484169609619928960335759097024454283732918010545757552769684864482876418882409771631910973739251407445580404011248546420122424581158275295698373275479028831163548400070410852003088838185531443934247848773973978743176106832490245784135028068542995632582294334477772654327151454502914522876407763247325043139734878009712554407237946450008332579971069831149925508034614211840954901772889299017580799485798663372615052764608937754613659840983748216482835695584670190433876426901920402332059641973157171781793940533174378566651519656417754100444804129046691282150279284657175198203801878250576072326180397881874097097045792723038130097546555545815165466396599512879374664664420947840323795732177798199675163776801154931234140434820143213203263835639112857468757641972687795925185296812187202472904413402333247272633039268333532182315420966662158994277204599343575778731532983872596987219157394475265774323474742837860029774598890988601804349870968921269129800022161481427758668877382070137808967311269047212524633108167598492520198491835675802756075575667720817483622767855906994207322359277186670973249030961121882965400142833862988201734633654777327222935660314794491910851961174582471317051910726553941708197239847989059517710562318250377767769103055580703297098595092885179074834473985663039386326721214382216581129944905121621900886280041422210981172275934330176989086227008560300935581638649611304706657964411317868944311717495196240118514301181859518136170066835705572493994407705136339317542736676736310300374050560225300205704304747585955270543703616061312339063760591961152632913847960043615529592324288026384839540213569836143076905808610284286903559665857729414597495922322730608135102659470879531732069455141404729595512742483875766564597501533531748452374024569671722497353013738608981143543156469266305177909441455990216141827640103063488817096776713801424581400068545498074284137665396733848478324696419749575514847000792179841757205455440209476709763693514442625321720522430270004540698660723115581902876099389841039174150139607965973687539465940624567371803471950422392120254403858902637112139350623043915482727641339114461793170372938700060441330192514165397773256194653357444182341561316555158693192018868167590870261203458086907773024632529072549221850383940460186151486939742360764263330882160605350103778378184523417387874189625822492656157701923385455537251782806111247594399130749173028873765481162511928561784796885474118125670817772073384585794485845624485180430513398588533503262677295528032121195578508646155808837813499362890355933281344900299786079250830306857180708553598894029899091478886168132232283284239092039668568190642864921455755374644399604173253702310409902169289362043740502823837592292384112147795385772044878164592159884980132446877006298384177582840744800773720055023562520498681080761127420810904822145589918699260027564435803540578905666428203880412109796546231141361212110366041932032213971881033775955538764958863858641621708501429238652232038352766980713630244309455814284346145347220237988753911888973943286994418600218916716508903644267359005174409245854611355437036038680657964544223081081919082134813510919147904377328633530518464883435775750653813015294301654755159095767270545178309651337777990272347157258817600676789586907011828004268035939357813389471791025993011145084674766792402498319399634885286807414870006002599416023532841499487122057005730053274297474867271011651426369542792133914327212945977469406262282481239106119177598313688804869693332949058539994509268590503514652363760537504470434985506817615064942195906369560106212070432524769624790474247906448587355365546678517859850136154781571879299495064175321763978864931207922193699477918758034940717752721058397527952188759775336374282378143915434866924195780481128751767779909619684397028595831797296058920902688928334245742496656299974168067441792831436767652817789926692296684255791737558074105274683140454216644817189436595461676393469688560159932280909858108071109051534195010946446095941555584560185581275233651202492907756076034036269626936121952372424643700420771018548845164991846012982908916807515377228897469793778648746174316117051260331737434220763133853300039995682353020653151374846415974110944475808026958703089491922603870376133240968581336472030973548238869830865185223916917990057265970927430350166378507048118206619927487721436112371999351296446668153951906154167021452235014140589362899636535489502368417658075585758654138652720084689513890537152017387268296948245001824269112795116774013809405421115852375273561501986569110379711299539960082668728145067513460004099873860250728581661490007681473701009231853869729488013709478916455662744873272958426301645387580183592167424134623314287016597659728507751154288895594546861480744480562288654964998712763805117826458193550651426224189238572497138109132150533748477626037595612407007033829620061875834315571379066115720016458958336542228820559632328811450097233971965956099040753836909302765019305575936121113303640662349795626029035275109185369085716458870115881131118155281339789752391356288473049906838305018294292430285926605757162133281787111466567580511903953422088466846168619086834548088854554065962626274485871246941873043693584803771647507147835676131241907710680206641620912298092697413621217094687917808719213200074829597900127087695822182925788966400903843664998602287300185958664532590716568287325942127640482236589140462357833287233988412163168496063163967180426037804433046224005016158470450655768747358453248158285536451349875493257425656930419614613293873301136504133274850395494725137711422860284855898762011665719922462475745734700745159357603175953176852517350613757343976191748238829928891391861913979390901051994428379476353341023045810224830726709482946361429642120371863930832067590342262890808873738086144190447136108386337397257761865885656475047352946568166258147716078294814279173669004974109439423655490968700443614245620063001984587284569606638158473359590662118442732169151282529516583262933208193481447598048110139700236791091563789692349762654376052146328242175743706026126896877311727692510313885250871370179130116204061466912607990145792419628666263827339950841377985131492909181015046450145978021889330100686343141671517277035567376559174480263454467302342768662548548447815860339358899008025936280218658430559708603503140976827703997413758735078369109256764775804258794024392657985104939269646923339511812194992043767315300569447489339734492351986998871828328681893312554853568737635907549696095490310908511152978341304893416064127221057784267463044557152152165839356579085168235026908597116880880312337071233809874719776781498297204522853594483233103093839032205150809001555490289558689681539032669620460199576610576064594952555830272268452299757960966538747618795992439374991991599972253917625023486096284870440311800564288373965836499339419256009245190159963461453315735953919817202862857634010940043892966760515985046184979729844236545677271271153134585264147202737138780545721254262980349487366700782226791950417493393025487111887145035053743298310134350151280904204954239238820081887793306651728134131385316073810968070349487713422377456452965001986324612639609668200909959559657894036511708660777827255282242595222747434213253772124979651050325044042083464035838995432287934625330783716990147048550467485607162092507369307814228158235990627280488409919331031722700479899056278127088580735887309103928022203949847996269121277898375794007379788924832944076767629309647316332095506862555735783874658433595410663462182383097150959657096238677340727144287412176528295406721915115862904828936514929162696676194131318851614853415084220185114344508367658459613235969293060854528775325462007110805533048462775465517530958041620306362517678288402086609992686087386601867268840848539496922017020813993239723343699432469551582126732106947266150548491838473763982300693025543521923656048502607947832203689547059858384004939642863009075273946043760108718283601687029388400513917943341105915201399331717683996894163448872554650747081956899748008514435560826275032961110123786328891071161053762157950890159364211203408374312090774285326037324736369682149086144273232907807385513632691630030921159204402705461588695965091303349334211758950916350548353387288292704812864039658644832797458481299951210438584172855331120112111561862878987233024554204237189570651574099704680698014993758763910544672302064334911243349450659891235875599167081696218839619881061805214708107956254082266550709908849731669454406627543640538203931401056814851556431797479714583748096441721932904095409013666671609101031557097252430753485230605613928662436098764511819421873442062904009801502847056651744952765587631120921946011555935438319082040378530512664353460374122893862065066542074609999762113679831503181366974927750942912491192414293172172832723867651968211764317788534694765928878816893236012266970323998614292428058643963967310891159908785493645529445541151375600547290895629714758784498490800842464170489520564076842181515254669921908330641364447001088210116096714676398034705687126081815658706166199162897281697939886083173497358947524310705532542248346012886596968464781382948770247789427965467080729653871963913180363312440822905327971025582443744061588590017553140896062397862042081465520542777443714089037889733121852824364917299147934294028464983076584595135431761318303999974430806488910398544470219937896715055069473228980397555005985994035431104947134144755622569567060651885060802589199829772240417652354317259708049218332102291883643258663369176605255334533916949811343037070964108334799370347381572881759793387804538752669405154111066930143850732150071378313818033617190380428031249224535062844945322931778571387147397934625206417755282275755729706038545331504107538007536731983211058622088615669510084186987868426566718364123761840907629983356919115216443383647726199234162561602505481540783255185944644250907277359760757526800278753215096103569659757914113538237500399371393165878604530379683783886507094372355067832485774519249728797054075925551668513744720822393091390609719990895799746112762448832302790798733482686713305524013561692499053752775748205162874670482306549233500361272598250693771697887521942085468211487624945981697166612951478564045762919629617729237623018968565780221344212143221018520536720920016505709706146363083445388368128017358797340781508316902938345635434046583338212439903457039262536693919287681984207172817309833150169697600979835760609118972142267510507109329456975021869809023143568669644131691777573484294926245020981621143969593901163462554474359883024947604301652334698628887497563615111907696237501389539892645409726790408651579740847902533736322881844714943701098000981974266500219413582912063295987108722797418684976306096593849547920338235570638784255016985373091256261639688915120298655039554643815648128761197811101770064336007754846181759064985560391222613422341352155908839010846601763354039554029690083708076391412677209368732094361429918901946728696371652299770138153677327051009414374342227727379885138158227058009113738996424554793660313973889091296755153161239045544185074767335558388555847045739953521568430242723900290909936167703077931924416329218842936757488480136216991004570677910598456246528916228131173920325735267727747339996368294330494690252971867911341235279480706933936008651161519881234862615849376147183530675701890778068212033050342156532389330655827068317825773461393962348981124921005697252539269985827076023457822710582069745145640124452484768793017762264497340380911385588636102192907396805470562410547795399641701632487324250239532379274411897711931102250717792865646215671810501224210648124789079346750213394334539177176121271946913407189159061098309730642738130889888738735302296960424617221555193705882737118268236804547345657364066655637972938414979135412762839257083979273659387575817961117260572592446236995597845168970740686590019402952499377610542087715222891035455048955552114273783864703588614148544925045619292137197035485801530216704932744070185102052835754648402677921733254320202691114934056185498084066629035234556869572682106657446754868524838605349405042123763368056334655622035294201536718258111933566853404410576827992056985977715414397535118013561952614554073707336450667830345476697533353555847448070587379145948299029708459790185200289113181942192593086653335749383595747155976764933715499683139567847540095167510237129917565087778597372078594394882030150269570342736456045983561278876210125168172412031044895179484322363286604550949369130109320225376549338205334500226359706354715104379763632029184160004970811641307271062606464670329806351592821473007392389309734270403719849526411343523550496288706104319130917434497147074578717460924232759796541362790385300737465441627323764605864275642785290865048580648736151656845955617543153366326352718160717968070924568894215306631021800277612110085621912709174595783279448252341445964869726317272282705814767232477592497259642911773116239640074449315654738116246055661917060307076766923438924628728112905923433559577488530221150445983727905986660418854308782741695155867764959350664635327884119007380945024285521024886688260993329429417678316384497589808969824436976469922245704873439795799903196830259736284186336205130816836792372789279703858227080550870913811197875839508565955015722437027318852898474404311477422131830069871781358877485325488844349456777045012039405011672068375959913410348914438783473915453447694243967125522572706274412675265402553271570793279718279394981994339195049791303958647619288003220689471264741999808805896818457155402482289972059024209676875309521706620388348669553147316141986192311074813714095494568062843315421777074015387960541855693236106220970424050587204079384638454014662147640131195087055416073808659278774243285615951114396316058393648553590578940602801531402668762186074249721358813222918353318954027986228825992972976554769134425578340047285075392901580489053234287058033520113952745777759493336380306606561684186722100896015496880406936325722016344271590258956529831023727577579984471499079918124951462062745869247276226085079039043511112819254986038146072090451267898900599551017164263754428139233751138272665768475794420923956244242533031400877335475071746061037238490072783688327023707321029035510621582309214882171374593711639670534329986771102638678639491151676076202835742324088368474250162864328520724229333953427755767245228703603242687005553463488687322286611739555151028595184641752864315239231405399659420621543153495955018630133681127108364168787821878732592151964846082275191949541500637080210501612820390545783795822140965352454195728872143311010720845485595298226658618223536569959527331262236283899965495124228656286952914944868712410024503621327001094431360452185775006423405448924033388223792922478605607017678610874299635904034890328140450937834435831752217169347087881562287155676070998826321879932177394451867058134375346045983121323829623091627422864024611292411844208591294439643247144807568738870476881712149558277522613103626442476938279652169965574342751691691499396201877910211180904778318239437006178206663829101762817661901839598278013984813704540371113279176070733147809553512214736431762464720109655133790862117472928695451201166211758954144880254948152286745597344524794297510669997152074676589637752096347115180098611346891019206371734062202013783594688390261779484829322599717366466401509356299283605153386066173981418954824884483934855128277967659692999456274875095425006309966107824918015683403976485840953786299549068670690221320471282454527567942553174224192490279763321227852112451176299502957170351213513420247451513523829315898702146859910825398422881438904954545696404809932133612719482210639417992777854828363014119151162369527668699637438400228949347165006753568383084172152034545075727189324716819824651708092810949285093241415806295190673160595109753632764012032077097952355507535414672842221060732181759058228263851351090600873754182182858053192568248695128075539374926543945221371607604627130446716620022234067965834110558236194491873753799467931595244130349839531704436453047416456934293617065939042624304311909208233225628696192715911832327090317162354047808338021023404551793316144117174214966523188690328906946287714713885198687210651365370365252313188924589091838657655250182432931747836084583165607937740721900127943494092849916170482341498045931196079245324006851812306321935767462710673439911758749902762080316012845486185764007839426777789437958162397056811750962680845474324913541678083527189130066886133406109729040798673812677033367045759672859226009542082631194928844552053723359505070218513164757504879160431564856082009403240295342404202257773799032461295703895846348784157008030123580644344911507897374667454112601390623050129699776017825952617808937098193587210798532426127295921844013721138805967045105292483464143655079631258989317035965580642811346265002131061041459375037574946407451924303795794066678166306407787347725276611009319580912317213156518293639613203677520530086161212127203689565022303829491806921333780159270181945668723848206340519242857521799190501795146574566295651752211510251192122613449029784182146027234146284394078575735709769893191913803276226779786024912270456304345139130325270724526150094672710626290537086370598718379148264683346710769755536062956814972941593003903627011376695326257412887821734790969236869206402687830621968641964835280318832227229885634126315739574806763291731730578161062845854941495375198752370943943362286449852860824805510805360491925587960449048314671999216661070877434533979853326606926420553196311736814511443060680627128907977571966710148527791333141903322359624183388850755138800398577391260859388856935404243452111821206054312550888170379666445190496000364811551911935966462453363720112896546873707978533033709629968447747795833619083436375504639818297271447309343979621447599669885305835990666390389366771183846857203545396961224756316909479891342287055345475995377506932790545980147499357469979058333817868284987763555161726595544550038230340545855869491234858279711508921204275706827649220328663612409649311105037996906522462814547686480421023508956480154732663301369554269502105925832782870281976206036411721290362037418747352851755597008606909030252017698082643248790293510260118422977719245245873128491303429301971090918028369272863299188084105096198808129221454685028854278711589473022251600572890996530005725337839144938394856175770235157236438905776169903076401479365031906028042369819066727792251028797874946885002876880312919921182090483383274391119638068774186799119357182320441648865510087416800885485369512025391284382086036426067345744273492036223042441983996705877918269768967997214836433346454061355780610071338841519466399034901903802279442711948655412931893066187867828416756811546053872854391237003132056309049887311719332599341311148425536670475770900461489197916887269140093633840731594922512573192966325109547741962597581605219312107386465755985027590741655651495471901387142717271087182451125324661343290702863404288335687832563733856991707287945657835543536252336789496720016001046409260708625891966600331496536592984821179066875769662313037749200495905471100492443444221171814113085309048752901450746297931576828607885909144079851010493768678315592268446235519381541911920222271229002262792048367994062736601880420559301917819586376302288343383445360946012815069007597425702070241938432726382764739225537028695020026126541010011683405279369342833471022748338952588521777789605351982574660979620787203658639279103916787085913770860172359542223196704818307767369279054109863347380826440584612712173307811646235466252035414585607358808007495946205787509296753786013864071969024386680174139137958548630821368988958486111721017917862418046181981316075475264927447710356090203221792799348387459180305670827671198385337010688162032857745081421580300275038087396966288305471338557038705618650232484021829710114760287002996230567287289283140133808809211476284301783877861939447712168478332136801892144042694446856485544531348361064476801403461954804678943075119897099006045105929279095061197517075403934676446384766000262862222808338472920133986131144340602134077465793575404201627280296566592479494400407685373759541030868895911912588937113001841751049861193100111478065545827826746489727932260174057392995652365773449999456156652252013615673284738241134256565102365752179784894744218651180217558660039437393827399735326626935917201521468529536680653595838445399302770676570221400522876784736619930991168645734657005077524033472514549274989531207395199453405890032027722256085602700227294719274518286148466852338409160385441434360835638414306949739943596031764155685374408214021769706387092112936515398072766051268361948293023798126138754100178605482938340602981945111753714073885861501582292641864537916633346673743368871749615560982348596626429265704377245855728184596745715842856804997875716736867811990163934246094792307697301529082540662132397819540844588595034829493749116196923426028112778714664158136721102566629923469471679678553048140091012392394659718767961000122151933974410013263084577639655976348061528748520832286761544531735662783695424451822667613718913618833139720781543610175993240308002331941705361904386660322169931275168126489005190301129944513073535455757119855721084180124668844085128777238131809992694713618478917918316944263745089531377742456312083820693700124289125726042074652798954313964559759117388341597896740102576386807486297551162837102204032593042196677422352303297269419507158904653605181591877402322451944255952933875807181348206367148039356599733116065086762418781425843524165134302260871895685281719299539571125834037932139907624657818196685836477446674620031454935642522483860922866802788060811920782080924544966125169017501537049677996232981178136088294135516679866380385568936625052300500596640894455353515247013380808696513404454102919152770975421947873463670804023005970345189600893552010051188524430448001817855824398085579953190820489718193644929365786220900826773926887755137130364090911914821282984482691844159883728484632591260398237119780960950898469661572159991189965512379415984214648084028893192931635526994751942249880403127009922243408021956410033611532898105835647257921713359235656391738259384059769323033061920364825761678869840566191536446085979266071121439976579522592152513762004098059156600601515805596946175331690587046706686917457075728543242470371117575083140264363405016436314713338109160832225170950886987565825164978370838373436735785750509709585905799378325165959157390173582977178622973183926422748667749812207566563028973022973028008634387977436450500839955881640502584722565602635183191604499185973009886678938219922286651739573111380231627869364637263018385733146216817357458060135736224729233826162194925925649697538238988042194206203728053191267488623337860853067002818669261321928551183866367324630055407278932336372283249722939527240398476182829902539300592599558210050180591796824879360075793095194349505174785313038803408317690575462769867056203691062726702263338293057369208820975637804808041479922600346367605502267820470126655946312670685215234247927354880958732141516568367132079992211796427190830423221150652117223116774883083022097295330369377713836703532438058555140557157804431455919342604242066984663960349761381435399977833930929230855097670246270259479064450904194960557138766148277200588696808453284735379043915067562481772747732392167405049682988176453330989854027424414696421305266402167932065585443788048288621208179768776003360613125628288407544186035510139866511745013355884946189795794416436837300448611024342869319885901149801550342754462539292793091482852581424414592874683864845881055532161139254814596445733894315121281343165163021170876172256495426555657789711736972066367070816313976954945858417374213671339405024555537363024194141512284851742679387441305656494793621164014105782376953294437380864883159787655330083012157323914921416022546008271957437216255295129099597809747283061870386156104170303324769957039455375453883184959530248391520648937064979958049495923317755076099526981947749375401676046251493595695423208004158811415688119806555934055211057144444583883138879449818400792311820675971160100306603326586342718056011581045159912799099802017642432191116637804503047362865739858340377179055960948774648490597394019488739716810901385798389419951644156923541619120671493269608695970569807479375929218884515491158530545148163972893369374325609231779127796325167954830508007044681096948459003431915713219848370372397968474540762429190395580422522170361281734082635747052225834213916698725948425260086634470006717211645791300032875445050990506857882272394947187970692794975596320549212037633315853378444276683318593315956155570090135345143581175435032307363307337282324449652521782027312850718247194608861330442763406891988320310531646986678838717687650032141279660516686505603884692945427034905174369827719789547329835951725668179453959917451837421884892345158700922371134757144642167552276604638906828150092300767347569819217611670986790482707036408577097626945389979676213004152240667580677637022039888155968178938621798788847443717405732522152141958246420759592022428704983745564618321209221987630819305315548943391645658299679506033729682831911123430146219402923971036629778522120469095597451544390608419392607873539914845487963775326475922785720149403833176870589763037242183568967629362132485327694611732759777485909001289725840066414728048322682504748713187161885058301933355555907201227416094308969162569017956738819506407083440110856370373816040747010241372227601809884348639048826398169391937438252178842382966476776275130797963663334667703597988535371886516461850372767385482997827346456884558450793972359855377911458598924457600371737200505674888788968729946164617200201300080330405339097683354855814290407911320042623540565891516985658825707193181714680725392189910639392350502653053471140396333246533518999794213579889716350191945087956283318159532109866838728128972953223089879464399567595104645729655857888184610967573847919102571078555994180093033172103681848982708933695294432241823414481035032322449400849513432382588512143857473318384713565023059352285454871463489272657951494097816788911731542298255705761507695290259593772300985035545651674387797734706028443020183941250077428933153639633916958502842133993686529988433613417326855844587211571123083125042414654980564547811501155353433426363413374789187463048434772697515256129094816956882308895740430252597748565096427871246748698771740122344447871147961298261459519607073652562910779808928002725215806271354069977203305710725502113154123260468808658881256749451389214803829110384350138042978991533641735727094971698530772792210644998574819106995166867708854328937539079620569184899023670296894827762397853525012375173645865016567896326126262768164947363145176391704736044170351294732683958809657771040115946966598179446410921162334491533132344698407472664579407408920392751374039048494529364569597847493221952553835018673321918515082772064356380543953342016054565587584557797600951102864914966360046896108747860140135071171555087739947497575894421968069474732871822202923192694206244445741967110344341192780875961966272136455275765391481938883873739096242480779526606250697665112407516987393385439786276773653533839472719947297436859253614426696977955676609617612048675570233317309808260614116256218986362212327761022281806566267409666468237305557691685480775491108761426205474147414271495932402312619109103238671997614225674719221046039014618976634542226910915557842486823701789409351775941548406707110570661830021781897369323344666356461239130802619404705839425567528979998195080826411699806207331589762926454617246065934502004234345792982328996390086594004910794548855590248010398624555141013087384444153785279809712586150595720469988063518088434176582239575360561940420502974238563389306302666887897440820415172111577920490508030294030759391750656837265957438645813039547720572097656221510660732433836286241077857733708817309618956662283828753720504603027621602602080150201948874197391196726238146330980715001805505954096959160251659573775847984147058214604492649326270988163565065668225020851501274812945815484591291681376073378895362612564534256441665001349084155887445303571174910911045039598970712686596318197512981122355407616626806307055233987361085483200694642351123839330414388499940075072102630007133730358670619957356838457547842932222807687800494216254057971944506551512975672111620141741160274726333688504410211412810180855705468191087446035243059767381413845845320765971628674052102686843897702185590102860335951296385814768711470385387005599664153592512658605946391381219770840769338423165295682116598031410835151237583280796410901787362799152622807460732309411054940933774443147157107041863368524464121431978030055724791460230325268537889803554769011696472721237981174268948021559778504849252609633046992449183760488322798828377946827086300095771363291317961583247625023061114820175650640129534414832860759713265618006607959054708975974430299550284467684851359557914463458807920765662620167383460554796770420313134904707831063063708542567002374833980567909425130597633114029242941600649305104150111254260584327367490446316327857033601822677961988614320793268432857492268677350645081553843803341469426121391991389448894689805919949777237796395205892979899121992475171130289577954869851325232331011531631303665744191556021528652311052987350966261818850490458350639881497394267575278519567517925833064852902645916286505305427869488766217197196356863517225288844229724880828938020941571203217651817452268629430189212141824588279202320288767347519143746297487825633503482050532861541583813800814712568264509607670558433026230385519843980318770837848488862690294217818448345169977821757696639262818742087697519949888426595639207599116467463424240406881505677157217846252054588723272570326245282666108227245200483765914555367878716583198896491416686504174445458174781216428963491418790106554837867382156708889543760434328189339302542366435006217928060542440101383012375124256614722224534147347694435072987894656906676150073160217829745671598745267196786729869342741759064406319075681405102780798200000605487539536379881568889319481174918773313476770978621343135711039037384706492691556485865245342472149239823027626444067831536332154192434967002460052797527694551621692072926259325994525900774813436638774915132493323916781210813298113854322269962574545165572575767703341376994911601888796795318186347487881133942956667555629341801653976359742795305596444927223842690835000384935426395776363973161725099191436001066977905712886339868568775678359360702792945573901211327332342420846140089403583183103621776239433233422479829758108385902664520249961880957577172298980400532068945835425295440170423558153458415419116569777413914375217094032656694474076247444947076540269462451078649003365713963876876637337562514379619183488160464966442201932438355617240272925642348449771447178675660808931813765296230934739988371009007126975090974066335317101596070997008253440137335823544688491676142837042664964221896013237341054626704178755448122829678294681657375556652296488392153560973058955546243036337830111107446260595404055925553390834455461354286087693772282947157588915085318180048817193121917061986308767776991912479737793551890713595093184089793467051502840366438429636524599439402425495346337753485825404368720038613128326063098707776386684374588097649504503576458623828789718107946894553700919193184032518975504562360350030117897242659559301726203555832930729157715935483494439014029572786123469866781268468653972600573624937060643619707963421470094035768535678205329067246247870869469468610189534143543292129873662015852205528647790165765771612517105572667410470465505787643576363640928004310630899697978791410204806854382352570474370661140622348438213675648438076345581683061225444985160429752045704604517525224132549335366366169612926913441014201807785896084502667364366629031711280805809775518830760609745677332121047390521599445539489162049752558356204319874599469182207005837486734117395935811376522472727909801823442653404789239437585839549296165925426751394159105819456826833423744006463389870891893134877214726478789484666493373482579460771880575897374365914416408826953236487452196360129246623293738076374131511350523139901889321846649694037508797154166508458114230409149931135912612265649286610653691277690465156956597639589975310011027817860265006062951397791001008502344130076478995219092139750845504088975914748120985174942656981975846789524007460579703475448663373050675661827498215743911056117888903338108376269966130903585842888389210639008884576634507791215284109727418831076000325594466363532869841256994655278171391267750865713806113091344879223065808421777885067358608805997519557625907292003279735582029579902026524942248100052829529681258386244972175901640319375465931688302878711340071130345872179453514638868523581011524037063572277219319541085557386652071732503701462965713577645191093019421871021003860485324331265567954099680396469759446293109024997203832194309828920038244672043531825124389434983297587526226349591957154628885365253184427247536604696992298870690786928062663035601088112165844945805252682610081814706083830467621448689986037985365192016496032940927460099063005585402710226588496740236199015042356376409370163888514995528104993205104653204663017284488009693200787768571105020131128459305535738786965845823306357370895044338774762470791827677537014092995961974905178078990994035556613186938419809950381808203721670889535463629014844517207362322842036455106546232323519420643355358998259225713236992156407719540074474787740047764530127585682109723118833099129394434997918580815106878422171948597858667253960043388497576076040782007343085683870508447387025799430594107969894073817606921632710354099999809367494573327960024066015969273896803835199133264862401029863975280621354558874919127216571402516994519056104683933223218501933540957743582335670268709770632320299877236847586261754378063019322445910780560946713552073232650320056961356265478588853236679752298751256155521574855245553948427807911917308542456637468280591340967552483399794546437859742446443518649295772242725103747965742092042724901398197210838960225347640064694011798097293208315382666413345567621105377220562176421637436457944061296165656052789777649143590708481739663665127993069157707587908405978838165556623214072457290799312973299631886539046903273579306233203488858827130521540213508693583673562040666048589635943087397986973407430786899207512972643527643323509788451654846163120914706513303103996311821835290398437783467850142081092454126737535226022320324577838319983053679892098943209791539248521031929542893779503991971377839626634144018276532037304583502832480898714795157146474240288955814494235920976029073336179499919891908974766474505134127091180997458532928779011430282957241721436902799256167554431421908102840353481152685767001891311916872867333481132779064227558530204268868314465233691186519495238412036397814183362874994827202220497917229472763438502163118873733966684765829967448237262880896539001533339190108327859547739031250193183394771131243916569863079785292611490068017282382699729615613870408710714535243098629098757732038884639384909201980644349871289037193383929071409280901696300207623725884205849423497653262832786122094683846860252027356632608339909853672208215949134801137898856563569371486790242671512804608012688621138943162087847201135584754697824614585869047367985140456353495625192603138707812063496918067916482082282991289869281026450009373998851341430042233718329186816774857995307976167632878561720254360716597831091518563550458591932264132979780850524499751511585456743794568645579857169436327255195677919891321429880559022585094347279743825058927937389371092203863106688664307544646819307767389759771527711446636827671611022761140006810852646901085295161852236708477316858723584082929810280194826753377468668981573794231087714002856483752044926140907229374235162652564359451826020829944054904936299205571954341669097301653654400247252374815981383624794024131799323454013214466277166603616256665511968606130152773999606423820806855197525880795901051189208328058346218133895973649978729759672453634512682710503991449181526396756114502870025115371035310041517758234592177349948435051895369107499590211829962499598864951447871962199713161844854349583849748734683130953477152160028443994802613260256241885880891260817350285217903319990687492208349029962544588134333953893729948459408927366640559555220672811752235845832443327143609885240995836187189958840407566416817693752513456189304125254616182323919744808842575455138312468905037392863955580737010676264438348913978174400452115924239462351365612576246457901619135013397901398954278109484132169067250183201564046982943305243440935831269050325971208157824626759149020309222831848114204644771151817290307345348363369111204919954256608828107174974915327123477291349670009836404454843405311130618095839705264815234543303761169545857795888684169774261572465054848401093072780582489931787162487457476310452713526056014917221002506840198978924059419260118110643807427083392427185876611188931186207091736301446114360353498257980110091869534431744895637756555870685204180213162228596285388572909918361448205243223907974798376182479812010415359032560554149335102992435623295253149818636901976695339366303817063946056961970284270234847112652443437174020040178504426666448934045282338985064343179252390622869132970671787405205063672055934563716329963598254369488981342410253121355495442220141991841671508288698371241844519192737841977513312319010832779722950613714466339466265592685067127201436757366076899709689125312800601789369330497655136625357562058850138262942624337277243175559175172344352481785785913816032473348397050176962912945466118767011580638809696686644430631085542813667478243731439779156938095883658896382164164235186301764932030776867962849746751237131610001139791580472602997156949300483909416461893078118682469971531619049698953876300390932060536976590984627109267213377814339975833775425312458771988056605138528078701706270345322930335588831342054710930962959082314508369306985251731113364126317338234886673065359043320793151479310568192122272122833001132131632578435997057221579609983949195882286122422150533428007356316732680040691859840511946423517937435978630966227706330909765949514152322000911638949050001322014286464715433054892314394011481448874675128525825717491222189078556136912109628344496667677756963944631221185501267393369302788932509271369141242155363217109752339652462301965167721816166523342355219456178142178562058161430560084829194894522917652249879129528766829781177246690176460182717658865134975940882418127987698395566101820796602768260969925986952754875228992744105286487475109745400419664916664721671208965276421271062887459701064691077245818621066139232664686723513149129892559309069296453351533629791482473283204367113185923624610409614934600154644731749934598948904686636244901716783793538628342684548763302001323734600915412377468476863203332852358404071693259103077868640331174937543909530361486953716121907140084035438318755195962796420768595416057723967383333928582644670748863927850102729814735981356569261802600949697378050459533050535050890818598240998426874394778235820210752934347586332500101710482271044976346174995842412828922099913621168777684608800122862725715173059257942197659653599349062865682309269269536384347065225256187837105587332082350569243065250985971027525065041631202999480739858732127166538093632771726535019737966385360220931834607194709369230793047569019690196726925949258447287105125046175087649780767145712629210319237295198298361742266228207190597190218786362639631875419373865442911522311491285339963619864254778156075242987786552034022614364827236695619856428305460755487173831154292997700511558912635240666081451650676973988087386345291300996965718988934811389927309443784240807268687169060696240285505629549239203521442339922280207210005315309711140325317544164248538368103855783119225830985118734816552660245888349302671455578168299009462691423332745928713642671425594894111209461372402847629937014257052747646906883514208670824809787480837987877902743617904640088819530092961256748090435904087986780741374691410063921235907498749249105685384654992989095873725083805412019927468115024294234647591243251689243868359861027001585281073841306218910083720880906620357399427375985136905574673471030615102988365560339280985361066594434562668338628632760028634778053913700582088149087001924909445536290838314933623936105482590593863621367506732808429095614190350798645852657213549446101376938278042301364673566984816272576973000716230678137472404770347187166447642954372358627298081811318336521113050799117201533487616382102708344800135091130474149476194748553383598946807777880317327865665738391546849639454432040373849914877396738432132773270871324946628641561560953329243723183296896236234370919590178284282478256567379563635105959356936040032774827874989434172196397926693981892222647451782809214610492348940126974275936741724509560930827075669965989044652764932183159245503000085706229164809643758600100312859346124668104632238050350760582189272896530347201377315576920818121380632194737601295965610155141469225856987283553409380747056162269890998614966317261155196524410111073195478794564102895751903401539977056232835974750590874899966588745497324588250756825968256056836162115527054429619424199612740709481826268458347920621749608861238245196338827597257025976057466114859381679630973154072253875969942243327974041838315330366500642884548383883278623496849263545210593966934278469315450964613003749796439588670309590658413173860114206280764015738305110318117685656989973397726180565719790738708435922733570850333710331513915142530843906499919289314970353981569258749219439747675977558948022716396857142997276882375847844662198152292493719398342333175893411150557094232358574607094547304536071729676815661204665987743530817901491151788271406838634745019394059476544160609011691327835588939191808374416204158134463578914494169290466705986773970484927287480530225956440637915261801248964902468829063326294659217565096715197015647757871441622124613686874337717857048243030342055408811877323431509216078050411019130017703079050017004222779114140747311450266686575009522781569536891720673442751224877593843820020807597726846883922312864867200203047607151845834498647676961289207459317789992400844501528149033785385139533743123691266348402045503993273926030179071540820975503588238421130984558143330628169539622267755916073090319203264205839437527082885376415834295348740310933378543773685876951130789904501087456594077405674132734471830830323218565760309727857918855178688010313514334746211037346744348135466977078347112355318262882412583706692402229146622915567621480618680984277666023961078553494989657880472306871979123933014250654958427151882438351194784783944548409521003749307116339361861327541025291681772910402804131234949034218804540891377143363789754360632921229015003569092262635237150396345599855708890191177061189152522518040319136685750104723093571941746842345231687969656660303657306565297365618805602639358805391008857847303850227435648834711943425608295108795966485495442411753833993114598137250777686921464818091253213487079807024834739749350759698435951524476103137606248863814200678548902619282324533467896016824980129713342859374044720777624873445217570898110734685659691885956356620604864215891870774160276022239699234158466260425757742256248635493984086684756281156891865895101412853470129580518053650427488275140396913513556418439163606246339999429090304343940427309327557771428263491769882872731025728127934029547127419580320584583669911539957192321474233513149523265781447635047282178149742369827684958010822742871529366572027897760080636546578063504739755776869949352337139100750168435067412943958955811591992749483182139304630554347848655960801344683110698048309188769692918347710898452438768382050467888493406351117370785424106306785282015412959434120489387696759038373684176187671395189627215929452746714274724580493148807838272256652486873718893164250479735593394948968209708835072760336605746236891640360133657252661974453449934672355012578534447862303807641473956853881874190422742773520464425301133459659057995868886896429839275948975450584135902508944331473984726596323558039695656687618173587164318427217061240775831665785036489892067216069712538512427924174829038558100971976888923650806424984652157568154948891551731118341650493020071374823105128199719609555887182628391274353616514187732330593378252860402555657034780843892406697263212063621192076683555761916553079703750380893140808660510266648713113989158589813598702798762116989403599917692413130524595828704913558350229223702897645410047167207996033763546467555070016876281061376823766748675536707726082726091485361416997855949398869943106575908094460519242593122059389069296334880429701173459308281831071592625732342065361143195541015850938080101402000817564187975860470779092696115048380626586043071502795501520249180705686489799654421258079514622567372257339181262191274028558564537592124967042693675863162614614438343822988851650356988123280990727666667854759258059720066250663974126378263790491435529844721455685437941822356821937027247069491117812432203395480120116494377754420894613985975260962173854662530547110540908299954901802922462842403340322938843130082704219616668386605763769996146359216926255078300419268760593226296973375026471762923888569442052994909423023650624972553468545199254353338925177776395943477013552673552891744629393019570044470374204415689374140081899292064812776936145930210534406459891405543654278010834821711082144392775071383570645248174244239707457226096764684303345053814393193397892276825340239209645042797138784254999730850121136532293838185765801071447011960939416278609136143951416463338642137298606222682672151357313482453789697908288028638985234413949644761673234882502065333685567428094549126172331961024785750380993521305258280857481582782223214893075209085537609464176619890218543393336256742680439698357481641849781973909486426829026059540793630889710261157082459081858495057083977716142810129205072649254719394989250733413917319645531787404283258644250415992893308615018037604208819159665996757017019640841507465238769250712727905328330285951015239376763260670036717649049214190465256132802557438683136412501185849606963463707811859369511282881022618561777102327601238942426155050238358753730402904385429971167138089562906786957748883034141371737171013689182601118787843086921541376656452615779753950533817165770320288330925138813687907136049984205319045670698671195307451970186442124078235948200385382866127488716627656970642524602326509626762224186189988934459106588798906849041467529539074201685805576854261145866347781824828074862820011461845011156637812259230941211093950672224003483692605552350335035294904439366918952274023198870921764287220852250640061677791372239307130574017878120566835329057243577406916718827447977733099734033556735288086832752477637685496271147721816161120597368430647796283174447479816709592595239862762351986734483822907703762297739496703255144826925397634206268514775506419303824742024627099016050044937539082992755565849590840266092920473733895706367654819451179979354221270049870823307320514116426989652311270683749615901975045641301831417298492651372878022124593518580586476201575413406990517827617554389426107693033003530558043422775633911392324278507576403271873257098367109246928286338006321630356465660874298273029264985865251637220903871195411474046219528135905244874530339798792440331752840901567983284040167152902538894110567844724083642849916139437717485488779372234712808074652746116834536142827285214029403857339601761074996780502274859159646376555342199656899738707500699720742404142382276810603865645208954661957274371796765643902725666062366905457104076106258594274611688758849118426661230471316573288010204502972847914211936579937394049652654399451932945573403138201678074431013853946201103683063189808532293886378167062249935046965096633326041253230591573701227792060876019039044285905684632525947103177567976704786076578134538799312165925725839668471083060052460834840717842341121095322685005106494378003123125269669975687444832270204233395410251757325857489777871597531881143666291906063195832775835279125001694659756633570056651068813355618268919665669827161977911986102538255863091577502126505885563470824163185759655594991596507823563676781680900718095682354751003514119480913641391213038467342445812440542405576220558836482600445959660461437305250049830273652322024770188506086930435112709142077423430191162087106746866746208994099730479765613059414885159624668110572333446418333863747092841532882125482862494288334496906896329017133794350990214337589623705149597473167274444478790384168913533009505613659403942605627938887117049695191716754002241690016590664113061699622495591378447288945054828519606848290299839537286845911025123661474131233925649629839261137409524914860822454573117199805940754369243196159085642324600118441273113187589329877419855977387564671877184734387337681875534538678346793204699641516383918935279160181467951265275251235538990385709572860743146091319239621646650362261012526966800835229661292506990100795224131721726391809788911104546499279376131526254062056439489323453494141152968604112475241078958451623912237251913941359716868301570923131613802551495947897972658521728586286806400182662806940460893431803598613654893458141573584220428094376702367129836806970171993893079946024398629223660331994001719171818088949224628413556292659925237345222182357640170854930847579286603202934724619497738451842172795295247796703668562862925553690446430977312614049336398674563865519389665057363359438797901151915033826726018895200657607933914967915323440013421519516521141954589595860076983109656904035916135863203340449277138140301856409404141537827662843389859944693131395791688681635534931400671643759036874649643406353024573503168891888861181970220766211566030327933381100295096697470366272536935977829242368400103239932897683677458861691685412618585056040320815745350413228436753277602715282703029866549489628635009795827917315629825167878192335879122984271967696903259315612588593784388613395120367945377211665802914837834755096132867601708675784566069553557555600289683367363496205008125813538326652959151498433536050211946810943464030522020820963722288953980984639675528218442058012503829174758434592231464250966975394603182856016717217409805220436664611810698912710691466811418406777593526393325928760343118661222792307025756915944513747234793515219371667171852870845402844764613966906243654906121630727443530428352925194314887095883982935976184230932100569440476743326005248091421817127214483882036707922764396502292644805790287830052789113788799105163941593254725310375311141235445686069212506974204053433710115203967868925734428641069752806703781102603091621583483222002959192359545005549228487588329370309328641150941883385074514738491784979083636256705981142247669046159688285319769508998088473922025511512058350871198647998964959402637089104960256170096976370170682566264596424721090760899962296161140027102793908083299480597337712428232458652919152634148348782215536372728101207103479305816285783487430989372706341158103519298955506705508875637316336245444506250740234412992713133489957105614044958033260676254214899489191686547920319198852040583825052410301187692861468064990428398058154759619302345085044847406367762681010126562558704370846151501904453461151229470350637495885414839854773184834354810781057525185963355863650594893990841666884874138521716552290861189769613210361915043055875771567723335592219927756596332975418870091332209757448586139253945848578624720860204007411830242600418236476423882242493230495581441088885435028660307180848092801813497053462859377294995368009349537404554057527438328152384986111971179630850261536857708056505848999001058985596316715022619554849357670945227154428136650150148115692399685843147408309603043133794509921146917214398872064330500210130525092329820039708851454408440267758553695247622112978706843687913587367840495392049317235196974272824689576177646091220849979892968421870675274041962391722605943863241198561564760056896110010185027605914239795062541623630170664289710952320893568895485329053883955784356495179226708825042129186326663032383170901190926880319378811327604053335751235167847050591631576209626823192925958999533191826429508070300371096626546035742630316322104685301192155863247057204540343188943487058697549457103169699128781463492251415161589907473922386689433350696642627993615403083615606024453762181415221590645934249622617466967553259423153232048571655259613904172516309492883519660813012411500700197944070009610446316190535449233128772455156964938236184884696655800438977918168137760349062479796329599241060161368227557217665031250362699502952004045150355409109742407589771701337072031260599180926893728538666832677219845893382601436183376061679723096890667288746823371846947072224287989890953719972746146422440681270367096112636428983082518324454840127370143045209400907242874652772502966646266861104411906736049353936889033203238614662767952282350374939086155034730739796107711482380570426918827594808781915693682511171188737399234895874690176086067696122071906262945368050846339623989275599156579879726028754132579086902602430311515265850259493100991732830533510161419232543290907686731777804563000545041030240760700772454545668233701667089003818085228093187121533119777642374800220359102127250509963648308494870636677335406361590184080544856726541791962470641511870233900908316062843492090488282229337906600938669384718030816187330416008486978877264751813326589990784559829140382291034814845698689892289426334121009531504499528231365177207344173632136238065545108381075606632993082169991628541877505308117820720734142481202591359564122408639344853348993152819306501037512894964323063272252902623094297522823995397996471337599784730768034077212689932948850183284829903971657359954306172138576710632230093120489834011906028389659433849495884290174181105284404901908869396109623673143060994731730737510684645265235634377376209756020223212447602392216924260309223056420600199125534560985600230157030015716738784711248643055609614673933877133417853485723324057017747224032829370339771671809972435056055116147880819380105784250768095028191411239273900663380869283599150731057271524441546157714724908292176339243955041383060915986837981625899666255076484087716637843783769067979873773593835496991313807948042993569396219478118918785266828187056024229973938942152726680825637347977691120147638242918266101333970821950001785277187479039966372198553964331398805450117473846574535138736955356298507762600462319116628190628093494439030475421715742664026609921170832459839047109648393770563132614738493951056586149690580276608522977142001466637199430153591783725986117471051740008495590444277522897190994804617102640921500831952499886054585097248984919920820637603032861269953406455900056077652557422632135220608238473688881255339660269063316840643479889628325362137825578249905704437837310009852677480019309711462599884313229953190561173225888255973664093474716512241751989064389548385432769537373218038676525601841204219712620200105298825467622681047544101196937529280987884919968761541273833641272097739678922563266375411480963685079765877595528809461429847275051577043618981394110467726489819896705769878724606646042478667263752105248843876868280590418776131053081316878793331389507285598396002991981693623023773930760757267754475355974896985964519163254251591196124963203604420147128747991500975759925308359331189598049770665167547961200168573676685013892590916577918017864581016128861209169585777126811860361754838200484905203488793094621258264575969280421512668448579262939200407028629968555746618739376831915301056400985864503304796958979863725266818079182153935510820549241590508478310926666517910458526944871465124811783345370491454993083072363530765004542779720144882206332033939920834001871609260128506406041785629934811581070936552751788836746551619533438531859448195570685671455959720057840068481270511562026657186963706963911177622610479836682407155880240301214734876598244658772013093565936636391832502800172255214846281704943651759723313134599384616148830277691635052299105023734814924300974408900134725963091476145049886398099243216668140104521340911248135317359969842950894354963423010648310514191925116832469422740529995575286767121137173393558034757950810465878470788737233888789627329245069105112133132166252895529193499467218452953777245708933133405842009920630995485615579227402281106308154898818068171413868671522784955766786118389611526715253461000956670603402891151448321239263244059400390387731602342880637707060027889312432221285908172762474720007428733847034381593601790428238877467593505333318032908375650302245498781328349702376854948437805483957047643122400385942175863726360583198686421912049048200644406503105301887146920972953554146897820388850207801863408227891719215970574671654865345276039380117386072931130898496717264500168618046547708368340563220351337369341620157135602637512550636661710223685993459283059885740468861231821559810413124958238257652061432637922837969861428926252160176856718717894316694106919329157348667489649756611500320885515487186066874383557591343723325572359917699383860667896290279018220883623615842415405983487664933189160053721708478131147358661305231672054889348775421379016423305498624911904854612100673592309133834282955910223471110447729696922256096930757379665407922822147731637382260500150838237898345842593996110990645457275071541771946807049394564915912628574952258072262783439356827333635318104258767405865059735320207655432042335539091234776934302274419670234603185814698879534164259615127500406942925878266611100376103491505329831275660160120910175128020199771245433747014579921423963387332094036230933736566429430622179579492576507814506031309249454979273352367924141074754951964349959435925339357168467876092269149813381573076769520666942670313403398203724505816893559959971452251328517711722862531999709557042322767312489622850574398040694197823104180827726471275621515386630844466719152603098270852864981540085034789876997083359363578542212591109549361512375367902132049356624502751750846555039397294531917477669100466378317814839862446889860285941986546371984498571151067392349949979414366921689000537238895826060472131257255974863770021338878050456931199859598981114308428839005667425536132037533640715350967366603418759201773762796418107810538321196198953858863740879396865512815529576594953877969946818960783790973253330712167763807963650960723431551383904249526561811115575156799110634348249141637604190622245676496867347578508420661549267565090632094288270142395170820917826535945541443538920673370157822797384731632861014313752230591261053133466168007025803650801926631623596533034450339192717621791295083500012282361698541015573549549283039721911486113677807970520069213028775226132971419504700111655379383003203515330359146010134007028638182938182535157979966093909207420154909981910172625588065120729318145269870936108145443747897027475196981272507443353455401184518874626724990947445722484901403561675321221071179670092859258659967597787897561614853306330517619617944828898688557880088253716351653745174159391765646499100085080054054779340529519205096145814418801087743335041480709744549287537381787128288590317218102366050653349596761492395057359803959298988962012713032622264656246592238947167998847130200065678167021123493704530218468245576812002764984173543814925585112189302890466750333066471021776492629301749533021340761212516463853245384786625443113060845366004391808506552581117515428394869154793251813214677441735939007562955201350462317363880851096888311468648981345210427128361566965819288064522301231571257668717277230766946242866010665975482410926162109745621072212603174054646290078089701576177963256154813012546073377745102845687430211161794848896648818419504551874526607297411926863505862462038919882594186465985657541350341692276007241678478827603332363795010985192387952719137640266813106400482049988124383704440762621443296653360657429682668365758268619715698867546470087571920491264540664634909660289257484220809219779656885635172437861170031405554424307322686730312227531662236727919053323363824206647795372851251411460673297780781616647496957390813731708140448924932209055601666900135741996260831648118315455676569509348340541473262788478628512051208104104499265490812462590348652958326925897428868325263230605790968172263303199927539733145129852963675311513863429031977000096069514360085154119209624189450930593230624589268402036308443426579158917111754708664782241842068695248060730125700082745812959743188039700673535883375307499312984930524571028051907363768626200403595772896462841432294190765132964261942505085110837147701717198618159901851878654925208051965952163849026529220554817613762884408108422227125508903456064444188813954335982095046419233968077869818793273363476288652308107996294465812795064923081935229938173031304828055346690893549655561296953820610243657659252847531487872322374626574792965068736975914384748401994159403650143594475121413156653725846485558967833947298550864922593429481155787383798683712329762804475097878833539634777269485640319136296109338215914010063045390555926908522376028140212833870172486376695863191198711928980843978457718332364642789295720676345365937534929598819086662987715297052973015000601208744222703223630757737726759686918872339986030185346966333896765026340783268546235771486094182014196308958820823796040281612562231382292605559300490498701002559328910427931577937452346395159044360828327019486012442804175885936984792823156028769063528539797657744207886767605657755161142378622591507613231413100152767557293548258949935668470649152418862920774318305885825439232360978731396682150979212426913753485375373784622451389113700553002971762130217442993562821503066832129981604000121019161622146267749581074295335536738486154895801864342331501005563168019918957818547415786589485364923429994748612777310441402833196294371502216474273569655988382204872040026275356096474688242529432855248295090509166018433501184208646945227301749780248211810400834651043807464458257779679788637093974955011892762764204123125502696411236606247265695388448182855177883493636891993731166736256733433975936301935109059768677774601829591430528293258917356927040423081130010871230357803973459227235527448991323552962178682743175951891544296441938951110519029558711659627912713591486015024021641526649063845686049323058930851983285958608143206770403629771858057755234799207379988703996766415235022798624835046867833681263438204986503913324124173702531128737486277702093602884663964902321068230224178523297912165425848452239124025283933659053948536340855496530786101671586101319193458348565745344229756675123063511527920764418407624282927876356765063022538595543954179410727874641444360787307906352784124437582911234805833883450093287649933451161251841538254993525544517323879185419488552888607129882348497964200479157067460413592108764839092151410071428325807868767669481834907190989321384597425122946981221486383278111866987848559742509138700506655073806699495397667805627908517804229482022014477084393118887170479192977920289680878660260049501769484478749711617847125556650564570843343370997616707209035540879829354850646501008325444306423808431625072166447756560680554936927152707004831164497335996793067393442648438300870303593972053730636248401476175361084922869679532620056829374632431407210820787636295294637335878454583500653405365671099249421553744874706101971125351586000537363818244061521733762641318601062043349175728700901760719921955259505998583799907394710862223083197308214892336539979000394179014847060093397432499934787141431573556699449573826131929319689551508883063347202391342405916747834264143405160200461387223742638838191994070810905999109913731581645985842087120604967668846273433810238539827815791873033743929064630494300351811051770006467610701313144576334768506305031208622515378911065106461379010167041476987281873976117592718587510203201762655788712598276615766883464466549722788924676678107889934981934504375518375115333396198506493874913330424362812198187093408081417674770946988337124768372166871099901794651361208338532319586988111320867572276054440384171342858906645703028874071260999623272679381030379869882182006143541698376492278781218349388703290718055755113920341988969939735006992434455926261140212696048807182579279667953805251030997538953746301123997652527514632689590676569118010010289858313002834633512339133486372305610095160588425802182377137875697393083135050939662669139484459515984696871424758949183765758600548657506618359431735596722902129476289813027597333859286065971593970097189557297872229390210682103943841331652037867189963061488567686185438570765596468248303500102616979654453358981442866461837105197690711417936262547399456794371100192536183352450203126305680989792252377187415684055340707545890746216910388631785257488210826425497016410398398888100987766171591872950163289986871704002231208906820684460663578933314217382855715836264935938983974132355464230544360120651828399980397579736086422626596870181243475008852897876852478931273729242218373412243001966571432992079831731465131097933030182980384841264320868660168747825630712029434155013561729374290486805822385080489817412637211737542187163217733211296900369891535169603946990440810417075530392767363598305592644738277710606036441763865544454850677219776408264765401066696548645452658585239076468046471122427138358901772679419514917099386314802526656854938230031979863058859559741516663286283833149841877703583591342036998000257074235654685788135283548200432088737501526298334788852010042253453765576111400321847695291424277049331798064755035611285021034990796339618661233518274499058664159205792461452877675935153329143339699729716779267881667595483309954587792138131545766652198826716809133404335476853353570730063240808231201467015503568938910666242619462520711921939631262252964274666273643849393131756633784056939390726178003737560250707151725874308862721324369097712837326331365262337556707973616124415873707968008548595657079579278316435721499785457664254505781408669111431829664347099067666940067041266525641007120839140367153845633944142494575818263938859506011410176673308137305786302367719541517818453232487766207663396424959316149647487728059157467995423775550894260161992906071129475905756685866251468276915505248789934612889659146171605827075584971153327020961543402594439057787794773409059559317975313237143675803223548231644664738480298786360729179949943866758732434195395774789709697008776024103013565956204521973842053447698132187396283797128207581439891335605608861194401655483324697053027471202086186452672881854397475076725964682132812627584510158470666840064442228343988280377834628843323198460610578093467299184248412700397376828171214027103988153108579887152823821914002995572625528945918868225389949519309024185812365276598106003955793927188495263367423145087397120472189055768660386805622680157442997069891514534404862897142250228469985631881476798928168233748613603790044125169471407989608817691393798212207547208648389636078049721504517381054311303681539871432168580210503624513358786417349315833554284762147567279354612476713888303072697063512512352314054414881420281169381348745729361536890287312317689951767693812967705469513330468470593393472822784870101533069075204763292175886617742178222477544505177560519914313159047841992860834150378039932186956383171719417505346442017514592149425984068262217533652163212265555159926226162118308865781379141524107933553573358708925718574488443186175173479554892847007018279378959713484106500131924804152994221708326883881873274170426674100507650456534667968390112981219567046747220203828935953341282552547277944444048373341263756556406131411678687653198577322424391015774778095598937486274538945441862671158785882028901820544522596566324841983998789870060582341774813417448561868155260125869256391828131575288157404472358788164053211483882004205403009585532404336204821853365616404642955046031470825388308157111674746158192160372972158121605809742007698542828451002279567033700184637589592452817127113680847209972542118432143367004914725393931583270670326683608892338092095579599819435580916117045040239496599199003826300611955595312192526315570361734132147141126640274094464096795966005481396693665461502449714962126144143127326707489614668128648658373282723204011262527079158003673880010702903488018653464156065284790594326295971958556553598792179965388860705934387944968637039524339406675728885989849880182121203610771121526137762902385627135849681157986481562920483810199769401767330283539643892535588470244845049120158090087002765014874585180760479673617930737767451902481465574253427882534447715119587750871985124032205626022056536506155738526573517664278908709078203109195774903171059364016130817571246842038981596346004919020603558237202674072043145838412872564566828520348849372391747826003723270765837748313048919438695893266845818094502702514058830215572048486429153975685499273882891201059037433981832197061914213536210115060381849724096808147973015403215125323134477751725044493500519139371297088996720849264359813918580123490288602545989893517246563297797661222278394619242189425991452516283293352196110527074508253831763603189876166176348535879154055777827948058550358255852508581192638333492931570485684465356083107694254663261842310649623343681920718118315795162530949206501684030145558049255061397282192258907816297588151166085354661118847418058473137782857873709009778141094554148432389722315015937699230895856747222958937156601144958263168278100097105584123020465525226958430377226721427966055705551607303829358935145687228872174670390704690202659987141006567860550030197838241224165207137571973127534706348231247720119136613298606715832473564615652612428898575409411660546635718803119542846425715819985475353456306009341421936690367878910142134084540689097942555602118188511822831006300337100575100700831632790249925373396504213926361957204987510984222952896049081728117299858631270437564797743623942224515077024766733480361358002764795423509369932611762464198427535994422717770510910013033439048120453490465971536791569579957657009307204474137114971060475285261464907188664971060676373663522473754558876522910601149928529582069278656079976106133222077920284091808510565731117107555762052100500194721636056585350424827361268026301591631316020856057457162735614099301461144385041650132713767122384887637931316036917066045740660192412473710440238816315997787101115051312616703863608168387248952147623438926743193729989784116656762705928391404056322552593958368757440685633455493527448704747300606961443459987229407031787094765278354403073352997118626703105932034727333631300761535172433470320615476110682756322184039844345952381447876705134873693435739134546793870382787475867929513158922303527507366105707099786780583999471244494233189224089633419487493151680994996305197390407527529422310300156416248113650384431143721800641342782467276743987264237043418811215009250879547487895091646191755840579215423486426893585284001863901218988252244441245243151310086973391242068468172304674439425642315057300075998968412693813840735165466363936459511287907363966184017139779428670946472174229934848055736623279891816810790885371912738272111880605702963805567853771136139693115489583762372178878297048666037556639320793214400609228205720422496575625060099017145324234869927240558144761657910335522414039045868178221261477839451870167356151922568674374527195334506989241417816400622476454282467311657044638573420678940065621951610492156276848985072378474506762038811798889309473827782334310091168501668240868203119995150046388873391850222403399697646243661317800688757467316104199758909784985712908439007570183493855067235397857715282908612027740736096195543921639866695340436122474253698784486735394657882533461310778849974809217972717667060897482376335867058049012657896932320241921578036894357665486177257426654236975571126833929773421977528825392479495106356383755458578587554952936318562568570043230414447938722058216904405981493486931754978773190885994643592436035434183013569475646837334245680762359337112643456452065217226844574925584066717195200815733671755663614809712056236968455627624235571216985349459070621659834647579292029564477902985458777166978269838943832257234449571069396695662116846948965411497357214290592831695272239168179639628516433693070908844095861448007197830799525366857044537079024288646148084952317401593798425022652591763260638508424646954742228955702556447516574490713598182476589968509166967129951353178403439605339999510568918863421217275276852179545442563543844727877310518908076542937027554464705363905408932628500967445312596642854305283640754943563867098651969774817065443745664744835806025602319876519346992817644270464576050203749119552023387206905838191201976583198430604531183913664252859161397989446141117844886320501708193763682769636517996087813040594241530440693466770906966164654054482243713397833868938663019604013923285052550268641696761012392454831321060280901143498478065916196360485121740095285050179186120513329052107254460648806067126515554396272961133351036667762802779552770151263377208398837397903708737480999857790668356800199021275257298468369379704267862753509303683953844576728250779004118418908105194754808164955635025482658831267854088024898355735847358978278458682889572269147500903711974049777874455768735338943066039745450557312361349652221946602863481366963124923188833018829807750931754953223342043390144650837601582664596171945676552527337319007749199627814997967382330866875234912037826194397521512393239669175713543362489748872381901797181527116136337124029790875976336681564171290402126482440933267275531302155743977363916355257181925897072311561726879444667360674251939167762543428179130704120868598322581350044195709825007072638512874666423199611919079737481843016738658134147135305279374820886018227418817402098079619650159841407932944257254262112190139414535101510536610558715235914592582239340551720624288705197978018451756276047116502453993698175806531491186912124648703275163731149744515168097213687937161368348197542757167321195579381495086187120466695207270526950629862334319302755022645284013605097698754924911284813143202534044045568004002546485481127880654112261740270284377996442572028293481766321534818527535936915107515425117373916474390646379860245924593902808911133297689679756147378292418264623328760802874314627103938487964959685086090525085439608599165708742829365784340958279944529929732952580574702800636547908953952640693158860072110000377777800906746547177707571691167108146780445421732419369809879714489601091839986335225124436500840546729439491349824805391146235264479533191849302220344229732388307998055961253810394923829533743196029038955187528980372200959725197051789089224212673518324916613725060926871244965404164958114322123138837024392181280697643142352565075869422386366433512950999945981663146301819296953627524036849777409179847476025177720129862202154595108102882783143372736625276556250031162692766165414887249054967067059880421478647297361761581060690495025185350226532448279961773800501911965017249843189554810764903905806152849122210422760141316095667494997532244029005401105373700987184385356753187376236142130626526221220174684680491931946162557709507430184442483518554883405680085703442254607534328840483518435395249779623354691824795970687432355604202154250428012328086144827688988846050094181615306873774873584717280932472908351554140239806651178994813248562167049904591242259995074763262313294095680915336442869247607831530531249993451855451594255709132265384362022044883604710705236493215819169233503483027398053162751539620159716059012223101369821209694800879572400809958908752494124425354085303115264190887341274845309190839187105265185810888001796034012810780420449479285003892204803845830951257957766671139335902768518081145590596797593301332226253816805231330604686391552324106732471402790878334031945072552843576661725733707173478929451189401964482269902883324964925072386404908438008475871936861678480078346643471086348235045749658448126472719950564934881136780010066330509131002697142099718081443727948647947941055298339482681844883272459892973708656835421761381368349298257614285608555319085985763475394184109374760507657946092480230973138656120922472051839945365145753119715975218419566409439404044204580635716548367240944478947625827547411690513904925963706182941188501326168978239596802140889384313961877002760845951841628104414878910197243749423205135839121352632991459035074224510034406644040894306266334605859505836781592011421841769222041744164589103912581423396307564673667176417951824649718472936892160743360701102446359839862380852750687811531690139330801155114076041596771583657474079903074332866734953345597823153480282104955146046062523824361689836289559123262161977857272146859258337494785719803151502880949774683121268522989588977699868136272386585641468291921658218748171447884146122908405909921627275214840484030596186374339144753039341455774083233475634265427352166449107352989563639838552588789343913619387932809951573796497465883235141855799165848072213001391377598098436146404826717777100514032723131560102106072605353379965015945314724749370424908574813205922318816984206422642221321853550053299151698104421951846249457282157542034138040577742599011041755341760264781188622960335602707244888842599985706081830956330462263291156783303306258792076166346093907999245410782322250790148919663217905494430619219581114957979752458700451631916267449894711471225701199004653400885939951331315479558797976663674135927564568250228231376519360127846512212857932527777080195424628743164304968889461378442506434076028844976394588370570675379891621373372474600046860191563786602671997463284722312841951633761668281387228677875153338275449520866820049524178184453999214173952529635329384239051594000758330155181541566724923652282605160661919740050682042424982556451460363443605942673427634877385390452210110998427209436384839710249712956186815287695354960557233681619581133779296747205552730539310793564837902925350652009761371522703093655053580859503340031102353681939342091388112467800208988187862673751211161420538201239215169952000622654850227995858707638209012689204570898222005070976958945144806693414538555341315390015579399359538155025384976642837583688620034102768792510176773885833053603389536640290599004831420166213957281232378798454530516263025191726427466246630013190994418134452167508646606806433637520669395543682331753468446738356667921689757756579752621136857230988143107604729505001913992040057905186215804380349527221163912117276966530859479112035831139838571889357815122668657213996978148686840013680514551860130956510763460025456891018421868095323419738206441282249921462832040630428135325174607248505707414281900351684183161500919664729458981316780938865967410478384485380818428300552058062474450339041417366452461964685767578905598026076996282392342354851700605149164810392919562882203116890108047181137783430721331531060453999913901749288235902282806245021006836077774263551304728007950225533936547629188889764374671557599051837044688836788512845941552915855173717377909349833111139363456215992340873664791501166736478211564734291029864751583918199424944236593174171224576319587895798775951909231656938460168741263603795891879803901165393363112495676556109900042709883249529800093787938145122080422667451355984916843985040877885114863128862351438945867347414182179954942817428453546640424173923892393085333568933544652755035659030599191708976699573429810889356973893657345778832482269319127165088871890477347940939842229739414588746854006648390723466436305129246034648508158170266766232098555774749889533025839171149259943158289172282745861564577521529696075111106269264918947430902043185772945593191635849056730161914065816784680527373738952697448203417345699168190998288200094369421496703625625728262316667252552284128666569587768192041823313195810533195584283976856118952119538260665681721307942905077393758171291450289666262414555934563883052949022684044844793995394612901246186474570598755882665137118822895873032863208606078685753255188668134066558820877567115197300164823093965238820827741931359142804011218780632434281464256394168027655237134311860769071296727492243350357221744591035782282233751918708851608798630493845527025303674701829213085768026399928448735582046143618294081941754068726448449608047869373837353972220695594575490631477102073231886902391961393102178728846283669534622901123731405307951688169125843257380579820506960556098456363796456652429053531899041785371990728124733268660658669914603453239305983856837582548857081388301123933645301592021538733571703783637454494932408452120879932824949498157131194226137555005867587035363528088600155196165154022199649071213714290292456595809009632017295349579196764551209052098467531691757546891897616965702347504601924775168934320718727598591382555622319339797089163412688642729647420036289271861419354668997233131930822822725484258235551718816924557075426586032935194045558099777120678399700403634793721584041976950540807714911512300941644744715871588515024836348511333339301066490519164799087458364952557597312375251700942347422606151339350868799955705158180166276852699391516303476480638561419801356396516800095501753501180844469323217229708528825753993516409285279364803279437535426271185210346198584823820310340543615408537755830890960503560170633784538087640773428651242993375403376685619691440641908055112087617915641643720716162390894412439839460002791387356269207389394015018518581794442842790274949715337456666498898717770051677454072780947120765730508170176361479002881795032794754836380288625656130993540505500661182420984233134207306569062167021746142780599304224302420784012592209190098220462465346790484743483169734698077241670813133905856768530948547712473729373517475570857085556350635380796595949217340891028776682651055808680428364426873215704413518650968215085740702365699530431611902660249241366093575481287679263477654801634813140841750330655445833409215639538809494369601210135882653497036000004967979002394512806045814225052523402954225302822319748250830397083776200492714056036826704784359345788313048579168931478794482524056772467159578181058319334251025132114059371877787118625711655933325021784979507076541267492474857264405968966504609969136120246566371325495456377862591366131968004927293946546023399022076674069767940683210405798561500882162033490222966200159225085322224849826914174624237220613194184982124892275704236992519542786523145707859689054390331114293878202486209717552210775278119844804001282350879662642868651278039929903629586917989099721556033396907641027779282928347422332691690167092936122055888259138643060942646542338462211021790889973276593460320746023215700214978879470813518927723532896493993889224081173884078420078034773648141619871099648758813438476572852153143947111547866627306882031015562656718124116550663168609767572673194267804303382245631428721773483300479383381205291498858070887938977975006726827511870042783593158837438642995906892101948420263161859756040470165310719480944146301025109738232392283430982890080643392764786713835411908129379791246442224249862755953726926489110142031265146627637373726110678815262976596439548037077387887464425317125426455707136173437238320422361101572791212526308978464301131724679495945050663108063103445956876441898236451953256211969340464314564193106199676107488485044733679919478775082837933625163425391373106322956475956943840632033953458600821461880286221146812117423614369884877665675447369213166855079292441647766465653004745820849523690954440108296344560788099210668558298825468937810040919812077789933946932544336997550220214968091004120479518536366544488733512910269549318353444212929560009446654635377259656557037429247049522493370610399271100626682999176037417787688313537717564919969662146181239678871391688627373649414354201615324897647047670840826180388845467825656549195883411907761318413534121305818973578725822051543059629824457447266524897306044413150240330181240556852952459439887758963892115680338132324201054623155348803155639209667936086614741226203457107231469541277575806791561099072987815276240625892095947511087915044700255144329008688975013362752144925676032647328441389041221893704382384136373500190895919769210930345427955850949005131951190445082535067588272458537434985696295518416674244759380667871663534522473840643239905442369131940325845577509844687637528578221531556939362621792436729624779355455234243709565935300758129745388492540273868990526674610011961570452808167356337477923492155893760708420882729349915049025300970577387169871804880409008008637506572466115076654894568900247412774274159927596126198677064428226158384027769385649998490297767348441417300437080511393729904448680208184789912026883770644770327427404559484646473348186717877410579484550958891597587112733181681508118567191119057244258393571650031125173641387023504032341657743752669862043412146310940235232352346446648280074036842910669732943449773375384029929116767746459691685650855162990227304575222564850554119819633691362101999008832997054749726017740530343189432482004138436987717771376194773783138786083874803163154955615212940009089598563557164614380758665451580856030925697228317136643082729478807700539002941096796706212077099435037869415281682562240566615780583943552272685377035995244699324521264050382391656066891060970340663235109646643334664051968728939577981500656579431973872805173216912785216636626540124047705329975587183296761212391858098725673858782717814753536856421469463128094798345012962864331542984346673234562480735310913769930931021606772976341299186280644770978512295574396877383079251834395872742190767111810589856467787487285698594036261708331424717752055689171484161825778998104806952486469620549282621922962957836524856262148395056637714562263312360746949025850473363280474493323302603981858658604831062168194523270219130758935393898346168523890022398676148740409359057160903523842328593286388479312468387844053146983054249444507669821345410632604114905425343867674736688814247103522937788822431437101119426404607595099342303478752637966499938286575339060269449869573119147169223782740395140394551035698920502687282119081292838411305699462082091208666900316738009877142636280358395991072665961695589973291890808409868549499398462489251743638269695869514619279134222920776761595664172283394590561205705792983419846997758147527733143174826180925272069081795395797733955127763327243379671730682572299949244790109628867759827766177192058896402885086575926270890863896263849593996528749065765710763375771137061614018788451553440661414636333921449103142197072817693798906935456650232511100936080033935226672842057510057640562834623339762723520814231498206548310786840477700665749888659146487924103232045778919461296093513197218958797596695436234438368182034679631263473733211444038742114924223206635527118128907233230649552925069699993919181052868908343227337138114379562937035176377363005906691290805319743029802463587613683985573362770614883970945984423172603864197326149199865894203887389712469037605089247624124748469929263185766272098448165987858903255243089640558822306434379151400048930319383094412038272745847212370473154821241815947229491733348485173500874518572340748991985035309259316214381975276451019507916947929845513627550051408820700151248304149945493847161400694626762134918628054703741146144928846273938047537726448470958334603498226173976984276147566284981355812464479655333551754272268840811988682358857193381116051450128441292146290689884046116532644602572080889104023648986771649066785515867784112330753553668545978930967143186151633093348738193952910812122512842781881548401562087338537215533857545898310691739282607664623291470806813955717552349886059398132331760822666103767070262537048515947052496581537201201416152428027303180148358270784451276554500258916588983860031516751476531575885953554288377589334278466262737604035759249257770965511142151025707048673878897044414550351313244437603589204824015730572675867122021179054764773047643011602241640134466073889610681824184025428016096339507033810593851136150045876571281906451600335929311863325540763761029872773625916313665875797635950106635020535591233202101481058468203395110008033262673286416085573720883769961054625263956752830064666222296690310663273164245338324201880768258334708992256455214484663634134585281415534271455735544298778026163788941633614027642404499167450636249786323622882327481971198456262050399967237151201916546182274273896374550795721063950939574083844843515842004057607673236999093867316656860377599887223213711057204117748329324374622150936513337109960947261635317057982894531380029072144273649662116214554431907746978836359583040266479250094897811291004656394689550361314910391757960752069637104283816398007491848210939052046433137862806469775472619876290492386098884516874328742795279005804554779777051909978040511717311765538051020013994006910820651661848567199327436927528047290647423547494789498910437404562435204535169622771423511299076700065328731548653554539094162495755646277527793251429095423452581136365693167293933084934695480469329552097681688082507344661317756700044322698426192625209900401521719131296273235671307227307975974576243362234447539751966824050386722147245139570656755524071766666503791565373164115247437468183120183626806391572415290738006803839208574768131938192428503802970079342810158060192314849355292083436238237382306122018697041946413373219548470133102817672176769284990166778928893486827515163809053465023229301221092399539694318441244800577266642526723357624360226213846259956816636784162784772267149882202354987541910806550484043882150478302515620684753191529392480023841930735978447772416357582228507902008630657502694933483792729838753609023319108654801358397333238841878103035031559485440450206419148207159782774643154642372864338987224325440507212511504933589730389744044348011794943222711986852800758917957191697405600219974881068870571737963685226855062968345556694396131716391251083625331736545380364947023276158868167393238190747443279106350134649641973894022990827432271316371749794496711512431719663901596675128212095678170987456547219188154103861238427442283565230006849997556823199878081294674215342059284445499568885130647319849864306890401023123640153171210193864908269456946399439970667191670195220807372476125300454688243010301317827707015116431892832199853469819028200337217907194487604800655706449541469773248365557678367958883095558329611426314657013984607555910161914410428087199939195433527109405040379542699914661071194435685366427803684552676349754186667963004177140276900853409267446103216739316485617876119909525219476540740749928866790173257372890172915863909217186868760499529333479793900656071092101042295597222973656654978409283730759400045267653233101388123955648149287960344029800854106101223313405402192514589308973775367096871407419182219875423034543255770685725393837164962017645314395223559912428564044637826838165889114327102231688616284352162099043771804949272559469651517995524294296721775046489692381448445511862806431612064670939400261243544437715591372950073506666923338437034902750528814723680123097413448940133802391010255641240771986902812762375360351195134123912884817692215672212852630162087652389418011695760545456857969868372844532319332680487039244217168325233127492476448040060560559277446228524959667027277664485779766411369495954488097285300669778999299775268208593280439242407506688188410442321573384704462709748024299154514117797342611355036585377900862001132375260629811958258791501894067554283035126958213604187217431871948162747692077617541013968276785876460136291977179942919849086558172522678097397038579522648312693419459866405302317639742771191265518101328730811703612747982780226188918597131183063738077861930078901268260736914210207068610883486729372478994425127084613029948299365880010640621868290747117985261024380188083306176598788805849056789474228209345220159921633388241074964267749837515900997186541647369339850105842140599353773917994617793646059281415975424540483234737244718969899514782516909186944930576103599811739953404446436367188121843642206913255410460411279322073840352814369271767188066091972043681366732306695646891826137248635455434375468204575497180930010792078284174098634119024163584346921658692771908301070216593181289644599517843527708029474281620592949534331334829697941638936391092958516024859024141865863479661855450195272698048266167947663365582951853610518879405967648113710689448567051760984976903131733733301852968996281680396698132224496595163008785756762420637636235181712413318343315265527400914137378748168566315009524705490329935679183602201743032114921466948945473284801719879435416077644591785743174214354935277766263612304427364535425877747078754405400833428923379980794835551052490849894360944889469284207881449616362731589401597502696508120640600040420044059193772092392462706242924252727423894300892937689272334820845938076910841597959543893474460457714819638099548210206054286493253315449873356091910219455300411981794450380116036840785451942415301315967178601584101727968803263568317029638531641333594514617211505251482451474503120429139316656191750474192156334924768964879204788190700799392412750973877320157983842224850394487569207938903685525513499895315226969883081141137420153270580100933815007791066267152129405551086571141062585050893772524558919180806570086094653483662961829190973374274776296248929164593178090270567302491303636859328225433492362574795251369443245287426006625364740750426803545765744845256023388950769885567270901820664121986774857825786834658148262313881269908128357388911232144587201260734303208108652723174515155911409211768268014148373589648935792400363676448075552180254193039411088730077164846397783858758435275867336616458583567276825706723310065462876234980621265618052281064377081945228642529411060393944972258521555948641175963807376525455204742470261541428061784242730196132563847115971864017188969106414588408406990481252628857101081105938142428758279106790458178483890736804678776657521012434440641503425130941066061357945590809334122882025569855064780772671514123865843774846525164982678532208848853011563908496094642407336652391009203920376514037096846654739159681049819854155086283704272382998109160273746171053151926615397901128603902170127786098336402242597360229436323477716185450706524079583837952528146444170138513422823372669961422118886386965372922350810944675725021224579330730419239171705687908647084904257212080075053006082784030325715453796419873430806776465248533342944690641381573009646463727508100432391332182099757824224903625432994693510550482605831850159244782698261660339451623633281692691858045828918864261280242991870481231645649841779185832789018752561561571489409462283756628896351002179827597106924469371522562980306070471405820900163146728401780280157410209892015032595858881766908481442020392150188916192054667277988877589437599854879894882400669626218696364025779254244804173758052791863906912185008394282356672277294487818620120054243473329061259890534502301445673775036377297020851198519600130521154977427487251931410563857879698112491966568085137508861972539827333971666862940579275919578950519190951624237563280720393642428438409211651066363077137766569230875421661335791537882186210471856268728389111411735542201523910867934775620233532285290433262577207989655078409557606116298936543947553840519087289807643492287565335226729896298705598220695891159461272440215485022079035702346614663812250692962936644469168923980865149840884752349203866589315673538328214178689735392933594561937321109772944248723704335595181602618518439408632070421877498971307512568908280492508605404238823366090533580326668896755526414697171101421243928531287474652491055887692772309166657563202519567597983920547410486689763976856763856357900331653401131597308398921060049679516287007935729995154535832137508856173741611530052621521559672056666000694872365399458339712807308670856707395157245694229131117570582748618596926349143453028795788836838935749003092082423207804537254391838990463654740487447273475638323956690465208020501096056462855592997828494445176827724186642316626974261674537264278437645070423868664376663975800982497429115011145573282465791601362377743891353548263063766502326794077786147286532246008757548709226413729042907455011766796322252109499055010507185005593397509838514478864957352328505184578837628233323178252334841736027585008794057851434246609298493807401390622887794271638549436578402085721604987486457890115086496565679738788218465431291531209693714269635657088062117970047623924866375632235647347226258169082778518809558831293038713629637618773845103253647044377772236567274294768864866771926386195302976062587232085848195761193332416027621425904221300043553700131867257210745877427193451557135926381727310958180258634154791942214017327579177277095695630757322782771028042276014275300448607835601944454113393421771163513121808041131419250951107533018863612812903238392303361852757506397397949285556024274395531170873420385015388155254598304854810284925934006263035846917106839759196813789582119083152179214035444232751636014069659365656749134994250711422185424045343918004072091320478969987794455332413150822579904245698981054408450968639573116146017154760539541818803523954263002871140246829303928497597218390221896984327477419979490389941272481511959925693307789381980639566839276582969348760686643447123159972355075204514554345788406394784675115255929723051126845407545898333002428608550446428154232600498774530510338211283393414046715950298289993725779357384585445349313823336665477937369200336077650556664042657277602901077269288044518065599373635987304613853998496247707236910346204516448064020103686885409355037637769046888512617954877560578125246564828688166901192837552752971392702767037828785476474560949101461968504020785443670054343551186637978848577695462478332264712808840467838748294509789070232410044069484549970273842510089711693921631501212353662037243790915216550325675300025202881944510497553753018605010812822603511876836444365949451983557731958516461906889458549089229704015516731731856640830655813119631053845923408600304380542471771161031862524719107218183379196910784657733055243806583908843705469861848437306618731752854955454820180480181975661042156787733448878001613092717742857368344655448312821738587112625063493741379104472940316738986045620207982060383444596641822192889566344359498912175800118212485241326159407172289020501255430047267551574298126015309421286127281177628989003479941205844074295242751448113351926716691030841307776594969318072988660590014434496831211316780227517122688802394408683504899683384267158180630296060490202158842239872935169294633884985034741224131842793839160727224274704314496613893284010522924022665093571266626908502934147182053875289097540078386598666608827452612201659003891831068878420201785417849254176185943582543081736093983886459901632223138896787071164261624529888316700792904034300238842016848508411522237990849588730529972988954039643641916186654589127023247822334474385346166279795961636580190040864823924523983377911633173310624639302638444401083303826342254704900868232320578269003984153734664357554012498875940498742659968827898790277476340677684282630440490839183588124969819493896176509945229092274176095087309403426169375064444616822158942410296922300008682922334231476293013914745661276928348103584344491306203688579715613776775196695901057012038605486098279037725790113381155540789511493272062458121578287215901967045559143582454893357303777902994845076908404513630263135727287751334140521914504153036214214012221900875297502169326535521274999770623825421074332297256706492856242360530945895435815364646623953145441384532022156373823393562552091402768059780755833378989264463546703487796561072667121219404740956498484592062861648986486419642548825653834355153124801756257622467776617479627620462390133771663459301307027547785445057033293056814704311729761354242495554618844390106189148267207765854168525964394604454186756446116274783346923818302631112804009808655855075970444572607608463521826998505479682077599529068545731336070539441975474011418186004544862716864247821411274391266268085075842459104996795774206371239931744779649576472488892511921500187868157375472391433192807045524618485918100512673040639228408817931006637993689826390916156179722171242250618679695282247568225631175073248509185906845256567807972190567692624183034447607347089864133976432532224562454122758298361091822726459844148094133567386370167442010895962454190563868735170002336547127491579871922770064608394444144398842406514647398119117847641441594653562548791863315845513550466951771124859587948850681756733546956359384304619201755296704665232588718871895020009701073885475392104070639738367058235182895968587114465983023605780078355289445479210550347057095781181502344399342154187059699024674670587333211313390877637215068596844120808118453397435840895179693408609972277578982185079619750348063039352525128126178668862618586225247069912918409787700087263887014618253753003160185095097534419563912968974493225577776804676989839581869801559871640665201839210782561520538167049001482203035790813717561904871714747429489060949172294484471045294920833299694981140645201771806064057014085942829700815506928795557059497312567349664351121162887299194240321375091048997377026574863982995196976533676552696844875862692589734527139122890909657234600453217529204869996523809360247631997727530844549083845676937133827507415109085141119500910689767966955199455273639829695926593022750473535068089691242392770318555589517578708895419392748998106594317513382698993896201390787696383754893041854375945492904184515889423494592068147408262069042863025064473059892010541504241903385656026680207189683521920710351797099144155541211675958514324181819482533439290042280165515494338774644647057627014980240915467120560673523199516735255818374151798076228765809031907245364999521346393760980587553255491651393917496458653825787454166088021332271376593365449772008160583047328133655159561023559203829447454736563973706312041406835897393561618966439859413311873477596390424653872508118601777424571153094394713733103865399216524293471502452764028929739250759593275689467422117021653513434331813438674673891659947440945945828914849674456536016688350236042617435355074273831774819942884646151970752798657993182466696227297408918726640815393917929979611184324129269448158308729394649468257238065891999028134125302777742168539292426975845893236726047156250619170710765870296708681079735561691167846438808327838555878695362055426307756907769099885593242570927133605144706150179456779559861596931178601795403638886936199726268225696731022800781810946424730441680134919987937374935399610303347480470302740153869931351717507824405475489782786450736158412951076640339344541075131175163503673352766390724108380666068873267361922696850977651311713495611712822445798364344663370192377883071781270377265989080082328421994444259715223065859822893590219142992481933169977571000791111979551080950379424235051726816394043622600347924799393238129891738006751682489657911834896671659203919924412099559333474799608439487536884054099280052480084915437933758340971814713534258044091613782951017808022909053793257661692564897276132397084806180018360535643222664373335984984440127104922520385989970223338806471663097508247788288812374130482857527853472193901433240023325883411792746089655661047649563299043363425601033835789229010747587769959190512950783842586000882672819928502916098474131762456049775977504872083348937920485403495427010149357525570121543194807245113506716796288242597119442435378748799812275432010447597786338704139645467710725596706313675305860307056341056737146852086652892424458178039533792507555352542765201091654436521993462671549420053127722947208830643398457717542282296143895308788905196894817895460546110889948344466844045680715755807179016530340762166825813970842717519937168110829867353351279145904024785937458540359488904018989040344167678794388965513387867201628268828021111241987549450137750946616876984747600539695932239921249256735430252011292951152938546865899219591199871156143784723834537805786149594843505481060074937948909359645704074400365067272253324033807132746476979324074396207675476654921103394586683806786446441822588090456103182033988828800062159554387418072727967255145151960079724574668321678446255860015656423352286979963877937423069785767660747020603366481407865821544755134562671633624792879157846877943418916853201102017601310702603484368797962131103657312313209584116406501251062299100975322579733722314963880371986060975771921665391956053756998191370673446573482293411183073037404644592886665421979937081920790829162873617599926804118185109387449116353182823121765137527814881800315024001182175595226525344881349337372610477224414945859830671779758064678180897862445395562657106591214744835234327637209778043145355725418622394729007888582545432957497389195206850214210642717561977527704048586217107767529247146561097419394131007256498122516341380204954711246309453777459940998222846296067642717843634029624227982509962046230951302679344591884426001452984313198620274509571663808967290763422278212097853254036324722112220891704945047809622009277919818830945422851018453034513046582843007845526196106459840277526477183650776135638632961087721739254492854689990877848971334821679339129153848239628343897167562577720747777384385517766942619839495339223824899672072478549215981079931673236634309103213900686073687587802181469740658504678018707798013872251984557987223639268038434411034038712931502764566429660897431252115357633443072699557935604315303429880056839822071052832783971768158945603042476720108006780543290954103184412594904158433144375210040648120934696251444584782792773620357198934574603348934512632546650341937092315298212036779259810221343650980708675294070252373141447725811630290842800170283752990618151858018229431857040282065824171380893961464411615936151248842751152642022508818688809442654484291496265772100903362440095730347150396618703809673608748055569035758826609415229768923147234853997071050371280835711380502190518096227670129406427514248753511233988098156331303250370491120475920828437910040835109347157967466808426583332896711163661969501379898467143090348895794061852056606550304690951435270968250093976589907049767815422484440841697548527393331735365192799126414435301439381215933532390330432151501486609270346309507560520615025722239656654069101287248919269374678987669355010934063689240252444346329316221039131405545918338876155212832469282828897315878208306725062278578041397083455522627461348582578390664706288276441761066990310409793453232194302623761126754720813210526907595324151083097080655599043620165208150796755680935574408204176267477930337608429090785364966409540194679866876014945855920948206590144937561317987576472241203988644968543408459983914889312511074928867832701720020424263198770222117639475353227238985707575708193631062883696369659208509470064849296588405618375334079592328027276519145705166141309177379198742030482110223501577680919741509070217194539352049971585315603928931869188928487305621680610869558768354126843954767726233661945481048232447486907180612308769354114226989706912186819047564274266119348201018775807190081906686319557838230583934222530107281671261923407894630286144087400760463229005165773175514540417585330129666038071701599929869636463917359097377477766591000722553069832516763626254688670935785586656879850441054529181409513940604443420355585952102556869228415275076765749198967398397897396181777933854661751948813690914874339530964301442985105622058509933364757230087938002895175236267006687918279161871291702291110859844184646491348539087559427333166785223250083599361856780751716575057506879033319954928789428481864530400724831436039787636508261961060072858510971237751356866980183658575338078447739230443104339510810552075990741234591919520876820340177424217977075676102708015852144344753570097327447791928451237606629909433164035375138136446404373388741009860983146601692621447835684186105360671223642748433853429403106041259332537822988771561788272345856204864448093627821864466007152950876194070206412874483320005260691862762673655347363226501485511615029735007462144641228519913007987273936502967568934833813808717493664557793181303203453453312244621263091386973883932398105891343485624039011153169948209332141637845252245916121685490045696235094084683481947678867754521121880431052402569578322406937318672029960449190171539239164369312493106581523746836002819152234465196035472521154587964476701932907562753345943390696326416556960713230492787343857460079557490947716752714313617809192120462014685057155195677363700373490673132522472469632225258277365034838881455599651901294748863961814159675410616639878384386197504411432651651315609901460254967752906933960529206024472984304193202799026853810849481308517973157830199132444500802278219682505734373707097123011039774632726990686578644497572045715981615977344338633207095526314128418807861655622584164349823467602352023214295264925505675801861991646463507556807252018484523549883123866742903040141856725727060822554219868159905071686470573313980601147170604578104378990438840395408415263756194023039288553716797628102559239459849941493033513628738226612120593952117429237979593896751316033958593912259060714015109456562297793209354424777629822705072096032189267524072290205999883194112751250670190874272629932694904264699670133896728201906626490789426360538278025943139129218740109212313108235185974067631187671373384827917958206273896710797839288893812158024956187247408011963736419781499805096978507822508867748516429664137629651966291682937713502343092992902085223918455116764940967958101719871981613123428466058952027326142743080535196051316325716485880328069406940744766006438853562297128797558385455680862947056437360154769167250341077061984522736713008374573877583454237430621414004910091934582844073746118576695878064862939332937554495356715812784811643627507088873347276761337334327073986810274326396229699257043557278292869627696931002056402417107324256155857419808851535359008333076262423898877875315341477206548963832194088462260089308263580132446975141568543902028139759009197662854368024833630010446155521127443071030723244346385563368955431757447279841796785006164716923719973612748824928697331025274533731711347278816965418700488109419792568853479252398934808778281258051457677116695105967602992149420041356869504608127557159205129786472626341851426282530523155775199177376351924109510556954556523622211822914586389940751348050603074072281330875272400531661699104628946783690823728574604215862030625316761843241017337680559022410637808840646620661779024698339066539627437912660828119952920560478349990048528511549850270525702719069288015429129527048376462191582293716985946579082826938075483563876412978817707033332823158921592671151584689499535984859184981394998305518571477483668685818499847403758537507022306852643884847296418916144612904093354259655688093363014956714167886512449161494217401497629616529825810923179826995727676367484929489665615955210198612362883858940793585341841619398433698076113971990031615315802076796865862000995356841213567600942330360466727390637445128902019095926555846766277052420510671507654003583949409672330312729050598135922595235242194498604276909309341573729770609850090103215168290513339162848693376687277564076876935920499350393309694624267149339023457462271010705923488434328485419650672310864075456988560388132507459397934575626505415778915660230625279493208114919765055351668961478474392855243138713659627137794677900803371820635869869433222383041601649028431335767065636052662178268939024704029286632609202945209398915858667099116910187490086688030851946569377257486580142798843264297636757416838797328945904386373038505714322178064291052230075868445563301518404234640731966644445934041150684008700400814725640583336687516790743056364301586334941232540863455946677408635928081170439377824947396297302810246703269805404167683877514261977655175678978227468594251629467416112310267773908627233836497965989683537764001192585377524450182034766696631480902580850214218256855131368564951930089889253094185077023959582274919239970328713075352951176965443539394353165582590176776038438926495797771876540102661811115899751952212260566705039980204538310236358056543645009669737670005078829285381343134594863701112856434656140780417073076198715463852165129608218600651866723581065722513344685446250407340212188427790944881779780597178105268021170183477947430605597782670611571987719479396362410624110403252189609822408107226256680846172031139237150240713316792659764938680632898502462404668121522734196914913299347564655264245808015328664327294645312575494582264056403519924386268150686222600544730073428087747230911126556163701025059790989250079716576130584122945810073066218138526509892972961813655999162059095687248773912082104957004705121408433629403495117752981983692202901661277090687252892220492357728102595322283144308478061553919329723418696511766068468709881075150532227282851609500753612479019635122074820795024174275664090718551817241659201543545917626471986761453713527880590023515284687657984326833697949532133005992076439644979058083340390802851440059447707693320621929851493980263903522927760424014788061236497208492283315636725577378060942238644072013808333501678096808707344879185423744658723792800193046099460563012609851601650986340500458113501279130512298817526642307300357525213155033644798246122241870092870955139931754693146429073945757855403592266614646507842633715067954148719542093360223976362000760183891428811284628227904846844453123941689273771972678021357583375214417016462285660969098141264264981267876760096062728805583677927941985130050698864304523393972711198655873175280377907768228866212606524802855718140591911072462139186414415814508993232071339837762221567157107755709672821927931077401330557049516022403576715962397197839184989993418881753456502378515155332143386394171495820909865072736931209188937113818669195775322674240886819098319882504979425924909155454133821017898307826184828506966094274407982107618784599219430403958733055781021476954009409850289516894963065148240594502799713215748832559506117282179940032527651788985520141546964529280517899732812602894324532929087790350259969073467500517497615307077793764056673444919635804259796508227379667944369521213814398761557801424366343423039716818456848077221200392414872024697029319627961044644675004645549068642557854796485058091447608082808837811330477495468565587151006207594835393110621990264580633063976428068233720496791011421908246189377095207443330463140464695099620480384667735574027629338039841090147620398923166199404688179364348997682949609846440166864685758194592738502801518107299696404610288744040559870841444495429926528014530462825458601269604838571700809670303739826605672861670050142304097008763882606350358653282199585674564559491647228785292871686868837414885617690687463257115715332041248944166853891871551668196894282425243111612550475893765065588663344818814744948327209485425620475346948928855989430791621373288418530655711684803505417923170765439845087302291707776003520112860371061792182819137555065952374249394645090258924686506124522384530517296891609022431152962688986525760944309408641754862044720984816114848412017381102653807048581371367993831420205199964300056806101010635522675284773434592562305878759721662838729728240582686946492874084699239240138612739461409645778147224658491841837045733050810052636489789698438983997096564630469752573167341600976752229726292861332265576803126721537556663329778808067563647651240824844838108820521540352267890026576891560693030816072839141432466067432981738637745480476239732103290599871646020343270055082786215704267355956454221029601996204904521254513722301645574379447471618716591202986604498385288586833704727864242567821965896091576600136497972672860213995070562743302327034532513184377365086323517642328885509233441197831912803413690374195081002466575894183175834657300490662942555226191257896926208715553809452491164984643045206248927553877405612551841426201357997644761215477807359368867733248196927075008323767996251621612405644413551954314124339256742624244296991865059854076720297143803157934000587615625071259067324117607496853774972133272998346499639927766128306108754386916146543824901266288442719412012633774406815083856894352007151874781131859575805137383120312909682818227563575252698920819836352490112979856786418673179678270189140229287560523469240731146352819684119163026744955850979057650199754949912744531233468790448824370878485047215732144283818136013899125026964048635545254381932761907463659146306462083322795607435296387343324772983106974723196463889552336785072259067594369199104915795662247115274714099548828102696189919934671693799239853740166076187159417358172252626350171017324738535865639540186118118582187894927683335516862178511297726980399906166900778298433444231546199443975657293589652148475683725831249204812301701581800449874365290542862512172784462792633778078933729808812202207986598629094397481984694188153438059942111570739369197695125555596552889444866556310373565220480520799284117570207560156806591539469292233391289743138724211150950314102611503510975193502176578406041287355021663041452309697701507932869814040638974793667949651037319798044651038595947677171165846104716309256251065498273293111428867124871464128287631976718283229985458380821081032148836841199853850489104525567869178597092619850493115029663321128484811105388209638576238150684910176934179994466486234496856065756303636713827702388201254605992225673116896566804261015164029525186054346453618492492790252096737171852646136027998818786413279755583424184351359550195415625737209213625019913494332635884357159516009209625835756525839749388512602981491900906608526961088284838366580210111623813398599968733327691729120889896131237513042748398324840929903398213222231209310749367107418176905793158382926600341906392600967465242552874330450980032939236319617912834809772755110844642529540712269165555398300779729669827020887189055656110266546110202948217737301181085546629088150017721098077686280568915976129979176077213870879578304521511218158005628029159052481448989667405924205492189420650875888313844015862099197596436008995579980885842616007345836978866088478074224890321705313516470619325785169158579385932796707906278468012117569703495652292610488269354199096200755089018532878295903266609393851542547719013369909438246108476745923402818537117022409725212918439224269964665428190122262279565667831067614963189778442587712848268276424975727276715826296187743801811763258215076840141575051611804798304843850011419836007841395235606056994455402251556140893576676490907506632937801315144017856812885323187404027502691422971079532682008889553387429988214760960243250225212638055088698481711212484097852802830002517520053416045328989175803561539557151064461827764533555156802768918859190879716177339292286491505759529581551090286721251270669966254351182236229930663639686160423173136970468219199367959538152491351972468242613751007967978577073286517641606633089791422136376274750752808280874729318289181095290576284648684898014990004220935354713924989205541745438840552221725438909608991721285278530679388590324171677945938801525334347746048855260966979453519677759145349940057094890670643684538147780732027896491278106970756336168350702155578573853719198043656814036948644261852999749218218187010387908807277246222079387896744324018907702323112461868939058995485457986824226700143093045390603477477228765838075357036435243774518371035775949834339420139915383263020985519899440517896968790847478752084344243079273923073291443787094089661956992906551425139129336850057307008381163828621291538978686530316572833346092509052049751989497355946809817119681648456010284473944914028794237525205229637953025410970488983430962230132310288971771036288670144182896328802162930630190550634308910712445605624455910454021379963224412320587893472577999921684761745444756380923556696159526813798668281666427292419017259962411159091455789962147494011297195705951750515988328341020773587843478288194032392027284732878073433635901010808849432618939918701775498197499072999628016132535322130118305697471638870601947337435370991202272349109617357301706749782950402403413196258024192485302369969518637609020912009251762666004707037550439838008510189006150972992942068168811162873445477208052471416116927109508812156271741810509961546315838523123532912851785871286783008325047675187460902496501020311958838957029559302668520272651839255284385532766121303883848470283629822721627998686254045949063374882303294882297923162263966384205606477242779686316606271928893320330844955186260820328993689413645936694527085921582512344553344098543263547119984274802982612054856170116680215299758568020232951656725783301183007201815228287639552398404339251189596221744007933545188562792538773465552015903002859561657474851540388122817007597817948323185131033167207111010587789509701632328088598435132426785523577600829711351898857766187181740794342758579107751365113177713506984389551432394975784306528145002543929552698264838934559418853962389592287299591579880903488311251508769125853596917723531470649712557403598260419764044955220004318814107459493831877523547114322650655535830535070391168794305457369198831245117631396845814822363240922673330918310855161954058903634816028073423819934129960861522288161576385879465729861001315126470805674565416513896519960401735929637771572482802247590523113051031099109200419920567373037570229496249983386362075846979300748196421277895783199307486743783220850864414661389931896412579929258259144426042758500503532125690061640826531850060378212076382869395828342003330655997122043138870910475651362845900620194138780387393792444072073196197687075757588334183137809465831836925250228799055887858478042812260072571108806943440775860143566212606792530906250987921986077225338654984133015515054801372442916834250273077224727255304754939618970274596190560852718121264507111556159353490013891160141117290143894789310832116660450798198379353672249616626103340052920605448848875367905893856310423311722317881936702067998742163189859981211791306467270590696197901635817999700064959221373098928018412090331177103147113800670936365784658828818945029243047433806979783993382210635757677284961922045598194021318258169930759348646401183344107389680627815099617109029978446399845292100621494819448556297864808537980606709970791379485139407172990464514619727927177829848791534329899250384312329190575224927821442914750284740899618724974095562398350804695238471973370762834998128618091221654027908992845548151012859954141853539726811632549532901951433273867261766247528604710198796533551239232408754411869539662832965466081889357204275647027489324266591189194246337366983188253763400739899512862891424398490489346434399585302810676080518201689147087995594493183524054398839672088877766697942514324223556539986938193873190764071634149140183365387777133830422012534752852486803982382713969986623359946584139462444639242281002501910636650361732106407749071543257263839421588238052479483669433218564057016439321446651733288184111384657133793686603964979873964953534840534924383166533154318792700810782715382943208597877046512484876765501052994737965981686200920765601923518968974242723377057036652136474968382103257788929646068549435598401419686910623061903278679249963407067911562893184335504417441599237383858340655013339102270092717691258280660047962909729354275012295798121319948395790439903407989723520119392604647133337463880192333870754552625476972132386756162406661696174077637009151797480231359137390251833290180340652610483578562797521555513918894372480642066546935375037794898810314050822931984210321835631106888948508815571232027714498488004735839730012534535081810863251066173930042986034763004353727182716953048522533362660010693061503628151482620178876575940123650877615552301691990474130141423596133446385402525107599084464816974656883518048806214510880322999169096432069840421368324555974039757601591465789951966922800309767304772685590120778874865808168730923401464618218642345250738322406232761163859151959323269907271944587488148610631197137634792295945774418108151352435327816918257090414843028534960746896246537820074808743707069405449614472211764721297883742253392864225758054574047439004044097811290575762459995164129026658526986970133555843351705322790070663681970002439278144031587622257487337851719111823015155832471372587940546988590998534652842794644898137819855303712415374251935730850809491794144645172365362745163723441640087705898188251068394068937384280455105222771317553686410601768813525768190004484328502363385812528413420942444024842084945497007201600767923176398555333362346176257145664244269856153036926798207391503058662295653645587285870370857312984141089789052088832547870000454450030690975406821160210869196339279542479942246704989448508775894112099606772272505542797238016794642301238377565347338398219129287531162983479593768326623100273551918945551937746992824603495769551862786009991855313063853965725413956833301421395806967007957316939081723278344620136924855044809061931269443146429236708901633683678473097750440268504588352839033683535598424312445051356092567244260781430758356094400735936536600188654876260184236139979122966579609547551790312837039136456352184118017935436433258498280605287957646138177412808215372173399143948280665971906195360985734676949753109484613034261337389216048197156101679722314814236592316549625047821753630085473666840391095291943733391182668041992803515345252885191065811579864695832900595191184413177770811623455202696976745950288738642242446291547136234027074988139605599578149595162349992723546071017513236978778789481946816723762428119664350699301556470000797426046550372179695226170268752477349297585029499953620441241088320220278443647453964554417866227745886996678692344162194562706885735730212124762043859696888035729032707104310544967723761759545494489573557164284680322518781904589236709841385904395738513766505810558481019511903405304873510463821067327953765585406020352104804455098260291564846094246386853103666531418796571691297899084397670377893735163529254112135401081830384767759561408571825474523429233105322848008614195898625250318014132284529542205488059876299174010490202874240899474782052539499460493994903355531051355144123886175107899708236078720156607206076406974116077212569303647405883462820427246326529993748166827844166162230462173723839732639684435916634529865735629637890195988074328150345712147476085233315202808712435257185348591205888190964883136025743397336249178611743681175243471221848694147280847143582179369203816571320908825034528968647017692706003714479844762610594902287923331955785156375279819599851257729283457902214091962835213467263470930433948482488263895469288801689918260947003075038255399118407183020614058058882546388113077258175720853864524020473710240556717223796750818177607186595643166721195308511528578186521421356109195187922362837077260919138402483819709445440425515051749202621297760853531486664150356605918796807375928525161115220968307565534503057350327305213544533885007165519563241505530712607864226477023645851419817705545668767567390273735869152202703653587799400051264339852859974431780754602664817753626941324903444205056256583231842698548614715942695796774296820370320751484002497079576060275794967251481082261843485285831096244344254091095349482809474372495085526691390750642897549568849533173197525895988764661770372343665668637413759245650467562036949403287074753209246614051344156895069937647844637462885438130843669895822322978889697291798465422649185144245024365824190675383613419923000550728386513716872789090699310647546300467137987678146439276078656678010812110253001169862564269130216980073781534331384986950614971095095705522119883974363963101247636914077199978326608484155993562984800994699248910356853823295040840354701334930513960785307753219341777978798723658111857505011240534443865385527748912312423236132772585677474147750511489925194060984042279461703414042998852129943229194490113997335614493923212314994936767314577555375864230383815503566436168924540791464999574726698947240117004132262592094311971165573287272651029469882414231469248120459437291087606623700638157673281345286621246634307383082279651754132732553457241351665350856754533827027918085058367997491824872365833557151700224866170823277030696360873915392856577649780564907523389152838951476660592996983892857257320211182232468659614490669220428159908755098256092273538769467482821200558764211854716811878115018240596935268994704235977121705981443239335411715519171732471652491369998728660013896525720613048473526399174207910907528236308087715706866924179271920274681631345481994851025227267585330973995406610740040453042295012762913542717538511665310203227777881243936290479366323560494554962887726969137754761673831842806673226011972973534795397993728259286371252440299996517406375185554116546360850721704961782624432932462845678288317308772083849179172074686145483221262461039360046598305219482135028239495639154132213256826200775897756013405034294951126801944454317861038041311230517367805387118165415249234598547824038595928384327290418501893968215217800354445962986310492068131925620220003463310845669386334983911936415410036135869322174700104046930823711979859661583997491882853073582686846678833493724462921854134084574949139835377780440963220335528744800304337625880765562473525224737866459149366857696171303691229933201742818840948179964442198458527272255433633623383704973384983356875068114977828333847291875052451808854898711630521867843258441790962498808217160864385564715748122345199985648912520171111113826099606570875428613689762693033187793627316186206845911222596108969650798592937446531847048015480478585405754853431524638914318958969405757051702004209176378900078750949733510276377915999805002855960290358084550349977146379521666575351044611129084427431714210987183413251473730333774218601363962741471796839086030787699850042364264369817697715149850591539621069606557687533661780040143437732617146883695333737582595428062219823382903018774286053312437528473629388791257815873061446462797605585025770540793150103388074043345022578540372445731907124744597930633385039133482125342285185779707252312665220350371694478597544439569591459648891529417539989194273817597227201613617118527181969189450309654770532563175981449959711447219944650767449186267768813892224731033289235492934213009175125197738781347348885624668324834871601156075245319150254192900135029392215085338139855049890823621836439042867275614453999123125096423936043665478849100042931112624811021838082230250477726305844269750092481774513603309190855454069843893135173096843209791893416690568168073970820319433376399693295229681709655443563877515506994699510620060302215346145468038580624597182891123994575556390905043199714620131850523416796024039690494961309163091615440352015763545867696813048160361064168187825532279424836970833555434431403627852591470370734085789847330182352878235043835074486273712947057705327206452653644533743028557738081760933063071718896672775817961569317385376766386753827515857323550336954208983534229372969617028431913840331854653547832545646319701892827494446930759316807053325477035647235725493931655674116954891168142592477258124960754754386195474077468865271304297215275882902396954543238971579343431923555709901033840345762855815251238123198297656153630084188366822243898674497938871760544119311232888241457875732048376672406331266939280298561748083340120308081357463878755864316855267007171583593891267690347385572398099006383734100266858131060334491322734289267684998006571056999241570486712618004958054012768081201327416599883074854812769124257014616045054169487778865667230156825607869001129207216052912256842739703079474769660389202281936860452051702612829258779710117982697781651148801067579579519195865400307806378688654652129398842310107116680053035266553303948107876338789647687624321480943126793920343503873342076389641215558454935405597118930395463992878873221815557643005892039789131871193052345415149426368772226186166327642056779965002364025855035395901014101663537656910900556608456735061990869060724024953757679381456809032052501037782452102540595889184685806213777923841138202618890879531287783306718012748404052673487903070223603600867753796450284217168213378480513865757681025236943633255417453602131941790384399115251397991911369846745390359008607558353794859043103780558602374647907371604815933008714363665928118763154366471730656728633703293590937761786905732204788771144873185687849006112720236941037725218715151134193509256727434485093280834574376105483856425841981345612180226815972381566021908259343360587209641682468021440439620552514513583084509902391954134095983312884518760838236351428484917285140292196618043209060998447692240840043473837570700894918358546780509856991641912024746165857917136710177024837921474856515739409278745887218614155497710159451976253506970428925142484310005759486071752189847578471374896279425241730104832398433405835396989276931028422819628032045453149216302887803578461577418353507821273172274763852598384553852496451432983783366387558700772951000883466968251509351934469844487652345269940349560626493470005440584407577300995883362076252196365626682067796969102333503921746449178106979685964123083462122383555698580484212490645769445583213590154583354820915685922440755703080208539436509597236202008586097909637667149048407707931942503322269509574037529360831331709433268598215601509564108343303752737824887392953464853192023538338307551186861019126647020207832289766842826276169299005722504329423225628458813398829930217716783465745158976106694647947279429509451102912102736146347423858403618325555496448629654473821835229434526119386827766724599103868766980976158855344646561492052956695698799126991587349370806920586027348847387826524370286866289162680202220292913362826748185045447683864644358999905478746273101160449200210654759184584617640535425406074496750991545403797882854340823193312434606237824145151428285862412039705902320704073186098982139112455204674407599478368629608718417920944716505783466959796179511513482442476280907135657197099197646635540620969035304148679695373443378040327838783421959886298738323409494722414111958219152502013078096921528951693566358582144769641265966707001251789185975696740300237354723503293619587060397918556000709845838183448384242071971453274717391059283268087626827385222403502318258453508434183120219397821185776273542936566985255509223357696562162663760530561622094547138779104864335834217338805649634135382678429845014706630999440353529897749836063941157922452535616339327082798510547950588074894966934665144654160951051320331825820105881661593621029036916617584728328407672552248193464418564544855000585671418312461920628625522504123403225684252541666745121967477089775533889258056578782613512690057711874670918596541160142660027489963258482290209499654311299167279779620450604362954708769393542444553687503716436747986030636010077594614123154800378371904881340479737072133891535169257770769837787366121547052999626061794198861891768700134682592262975763995480649017026842367861442641986439358180821613167961212102505006663013544279164813650905167374390601466725976114913010030490379239092369532468650416891936494924181006081264275418255689811223359028365648019545123330747733168343762990266376820904477183153711954751491767871878613876412175543551986886275723921809619247004862695365891967173050554598937586781389981672542017739190642291023306686862849021980567555831923956834407805732847992808208294993835533994185423437295167667467622901438391328599175199722589014444944552306471759186744843075680205351105537264187394962696486695125580051147678555311168447339940931401272403563804778692233121916735891674404725085486978268902949119164248304460916469641233033691957923711195785071438799330265668573886774802741956915672487099260633657232491757153582668958613147339948211636172984190462659930206474348911566550878281319871302750485767577862469211951348371211351469288052909081127598728767175435985831888478195947505752276304587192081710165973929284533450941476031905129106957037062523829547395431835830735971089957620429076594179740935108076199993733408383441205343633171562880792268495013632951039424815632583539415698229980745897565166789373930555668604611966918468557206193412100859966054057411424846070838211439148166328979001665545500881713488745042861395577212903600245944453921538002316038959121662270314206517107573921603268391075382894999020157191521277589609097267336815437448535410654911656776694602744596285187361148167800165499855113984454147024876268432890350450391992137014844173094673984686568178543840134422818238886796225319814334232598105901394083922661057442089326565979095290733467887524632486453365385444324811046012351357692787363922282571973606819207902177732817453951402492721064678415060349753537693952729108683860078870601122814368804883736598103052438504022646501205936850325540245413969593853150848813779889706397475128665884718154614352839052231811963208687681373664762508198239764378488629414614290734245166342145225136266518833172989233203046722556533020926759332829485768682905867287417901119045953249262677320602022728811131015187847847348867689836561687505645045668644327519655011434503310650628570676597840231309835474701711299149873352504467449449569943308508360951249667931588578059776958038122402154882160215335310043403922633414140299583319838557376605232429996107214651535945176922063671277516204367368093236725554797388750291753483655162530634500106453565083873485951234790235844531677153618301598783170509805569262120044958773491314522324240275693945914220816212154226705127449424600657632659889197488694182225882298865820621723093164113419286531976188188662491661546633192074311804014175342867866448299942737862595495486436226623373234507187696333468923723548274806977294343253164447228104709821011919431424104553769675794981878718453775776918520953956680736261931644392951024090837021344044444782457436030073517168877404954226206635832572394795603436808712941371813745781665173069901364760925483371791310808787314205934784080269462795786259232353192954977590251712606164820327925922531679426815600063492249334132397853105962982101953512155148515476057296830464454584557481548571995006107372029206382928736956908370839573462767884605752758708927806478191851828499995865283119948367974026909616306340074322621010746107138223084697166166053196569553602559369837259644422350487734213964415195150573770023452480334789647543373818020808526841547221485301895999939837227898667305475487652601912505532488254110397676185544549565013027781661934033741803669530813239652761896667230515459163147805981464726475407441804170811979168142132469402754185379746722155990562427418818750220979828941080005518460570304775693442773622181797675033122017055677002800850836399154356405942946270129064828887490307817280087805986902153796377008381175489049221748699016628916305098035734164921264102450966494210480172660747637549961760860685085207242384168779487289377174624513910473807253409262143860249434136165810824202790602054906340251818863462391109600602625996668674945580341520326413274904077492228373713871269019957616706853114945247717426133879363203290285640326530381632048107069422969252606951818694844351691390518873109357958638114029830194206174122958130049503644627748305716074162584992789261608231409410661988493635107860965123814034105002392284904629908808993425115049669589327330576571850173134202808537112504962668936167197677357155715354537244511235285271268512964369843508471474162004767211371867053329443106501058657170783887521919914545176598962088539804368909748028452093333052507328238111475090277346887394375110028987338964579793187222691855357526724372737673846028043383511075386072512276706397110461165999673342338274180417937486483570779319612566274740121384723677831457117750947927794693507922111343098320994194166632788471329509795821966630285794813282381825631969471189798073029781271385222008514744902470628105295839027348806667827154051624181033763454932663433346879247297557389720188444013723275304571700363331369989022500983128830044964469653035775494114427280789713238341079756343480098781646521364876683528210916640613705416297266392427633264111974101091459065171099610098520998007186051252558572514969896348872600080451632873137758854987551742280676719400954883201590659660368685086974039264506873680429101927579667899564566681179703218846865416766761970625875424002149118864671291027992413303338109688991135334068751931834643993470307655068291628419385304923933501253003641825226520434450015799753478734510611323117516971396838970304464582391942416131576178591378328392606971045463164746489019143160985075558084895707511672344051217298538371962880947213535489055438991554519389103298748584322831787612562706021391385644990788496739480393848091917442289278111915639953602045442225120524507131676500018954896563212992435362493296763676888444172157693103040842727225698894149438075667298612831658332983747910437644053673767544932483624471422482763088166412291290793219922258551866356208750684843112380574029069858475666390158493013718229165546676775470939626654474883763775240459104281545753599407787398887480067372206879775219324847734431450719470625075305949288307123022501403316953467523996588180129972838889179754421776075451094512159026702987383205498195963281945708033690469646276480000336926044511048462787722353109111460468908437130493109020618622718093027570068832046478754456175431883246029282490649492004414011377286268642480227333398758854643305664245705971555714131849945937600652490614895622113712386406563504787002984318865765365853975804796441821081333518217508779311606292855025842330225009207403996911859642204791172111668410467192745442384486083138292930024189481488859650715496219575229468365149647303788838561131669315880800958458683108549071919741767015864197840144773122973459434656717081031469834879186633037091294475576794209861438413331843438345704759881797143859641058288051558629315619299757761682613979770904706075448266661468274578508485922978944105443537033741894696557415518484043767959534325533879898925138588025877783363863307048333162193760807443978864593425965192111515802941177643948758253869133442476491142482854949080357416261801308632219306784431214061704120677376845455444091959797396353827919774444059572442226099269609911751255834787212217550717175559999834638047751518757091672857490329859665164390823147203173212607784565336165492788977437383451292079436419188764900595058697412405286702059557041393082971884543451674851460833322348127992033829734319674416510530862167257565265349140272769897867121620108820380292223583266958191002593909187836378125675441527890358435716499350960010177945894748258779926511630733604489270072333702460022208340197253011988517179061145589265155514135170319561050973507241954616208849068446707627206383411141107446117041691304347180525578007114072065432131021117914129058872922460639228857979069615948111091123986214496643153409119888792714046265857824260346070567871423681923669637765631245187616179474305774312459750264088485178292415342903120590269071027236449558557439341905018216546372727325690060395272538983231053651474330774859788020918809942081893645088263033976716122583468651912836583579841261928228867091744492190127112518343379683987125020440288323883393919585358511449003777235411724153362549141527765927450211921199929373705414606716813047664586524663198471306030383590404772953101698305438654230803555494473592873126902445607391867010718195903302920029278708055701812936339474033634317796713263432703013967442136989595817456808194782656206843875359268656428144319775247156004028355749791061571492754497863998081175055040194510858560108946937793455312085813826895695758723945099961223147816373785949125343082565349476214291533044143602493392303021922501657487267488267095847630777609088715379933020003068341919210795036769209030503896040655999507671705556270173065046695897056245350578538320628538240703613445584322753242820475814601411420165417268215775068405875768844955670658249373583101675366324868623368995767511469657758466041637660074776725867604106867150578563802356520866071552841813740191590365672009668681242903659075368797227139993059786821104883503578198229118162926334324297580579865102670014663607100943565787967052450354180669071093694080224541049672325225829209519291204228026903087698373084793599094914754916257019524495144890662930824357478719370205140168585376728259962716627182882371595914931721112646591173732239407606657619337539512877068511403506373721944645361489473694767438037069055343651148263249368828167369915936145836436053874915805561151935317608607479095872138189367277017928614921590023862944545044880561823592289905304690327905399419783321355833936418628003871353224960287721180135335045630251459341430320635175012231880895999075623340187396850952746216590453434061275283601011662041941542426684305785723817941627720352954779844040905001554457986156171149165408075050066684014879502795324957285556617378720544429635089590941295768209378269862732313965589241205060206390500828124526966693381235561796351165987454131680064456083545399656586680004414456967061365432560840346451443747098916646293356961933405444897416207477517489830675885447372950950039054693543772412148159165703566444014239060536229326199742491715759590428344806909146874427820478666965755797065986040828053653642609809750411041409286477100279686661618117960176533199052730798796706909742020594867234818232445910431178681311182369870541719648217800404986021860128023480868622621966736232318268349163544490683545349454672810319631655982671397913255946585446744914871501422806694146928448295206067679056599522168544293923549658783671916860556699801737935298855336943452505063562298809171575956953554376640636078027988640953806544438853780555562951330413312957294146634310287546853996911900925338252285164821008119547677897894862147190827646220559861209068586352325838156912949856652198601343806678437282464390124096731864553425319160926968238897424553761778611611209877870173128614816099290273151677109381119924599438554073106152436634396954451983931125992630733841991739956757589280615170839955984351317853811118699231924576207453015614204745601574828541383196870155503578650334476835262898125528026041575238564811261841385322238366123171981674983185410259787504716496529966732860583060144050142504234961604841072792794570783425897088075594919290964882523478045900485075304088552802599208967003719653587893481778887657202103230765764853995013346628117560399197850462461000504397625681378375397931747870024457121245672161680881561637166149936157861706789076771876079284122838368195353705083037756215551765426133242434746769107695055861553291377572868336788863418692899046206721080679145128034412981377149060252191612206162729841223022549844556715108237933138549768199658830271010112435080437381572785206882999473486881247032593907541882922419010600800899669441407127096823404064956172948336048874403726806171713056815916062495366612556199980430978048738056001323801597490021505782012436105963592081430656571301961429727507194103277029440157180792072207149966104835652183452843098010719784658165869796102193745332806392834309139963750503781286373117213039483186089636048683772429876195950761220799067162722114386014819747736770727483020888740691151644284953548082964560475238810604834002813810085257187620867714277074748829534478088809623584817092882805860123856758399787276826137396111499549791829819944058511141251216612188912329707438862182339276655185619753843612381490239789190706269827301159192234927578851976931750328283351821524442897012634232571869298518576705843592332330092857386502816699552061954602652233063957289839592072637948252849906851758211225439662875201791590853393333850972454781151778244607260373779808183941236848093758037658029296188919751028188797700645978212240984374195751653407162461399129016586404477410253383890263424809151115516130214254252649632320421586852976733185974343105378852537355076434412425352826247826635884384241736841682452244578946736519365314277019147139010927466690135238780288285859461226492999270414331070779969275400581423248511366759241240090736765194726765403099202131031372812987581128268906363190905206023444145031170937600695587265228075049722963374843801892398960235631881581288630373962712308977947091810225123662922623779641458171000781304590576556933893417334395108992929038402733219013430200083327561260825342900712402697132157060092174492579401210187234769854304432838285834298465002279301789579301880042868327403504652183419163658875995056434741193890054230007602206961245078292993301819242795672567802107112461563775247573520278518938569552499578779238124820106213327866831709847768927305299463172084675933785993442633063824407814557754486845388730274769124774942707581410873868420753544019207875718607093494938096015248220937181599607125620621536712368376420908552735890247701652223144542951986399481864724823551259855319984722798356128173923444015336048029091647580325227404584928869013133207873041884401160679777021234603505040063371503339723063300777041784471059278734659373067887250020560354895741706991929444982728865227111239871778968674678892087807806780200040303424172910248798189532749642284170068840091168181297341099041059456953287618508831631737527758100999273092979695583164496295028962641377920995722341772310438348063726841222728676030015931320031729719608730560599941788673104807639602308187771993684766611971173911653065250531564215936665425281278141823925974734402980508233105616937941839507351185974169542570460568569710844656232566949893158776405350161684386124861620007894583844239925189476573840890947573451182218523506572127439911280446649884348713985964042578899571298081530869996211461354861242959479230150192505183059708490867098560865390260858732179127880381280841094720116006940421724434002811425297103941224142678081757714462436052656035019554554120420488585044299503211949570384795487439275555128572718328416387458543437670466934911299724704177807009931722182063870805907866949543502858813828472461254545985017454086952189915020348960575816987868455888261188575054886948194339399761028968829937361981573515786775900143076902832534538986706610462473638568337727954435923072049814491857213287978289650852445719115154281270731508225451983939775190509129254085265823746246326478612497001968535810375812954682091011589429740689998501024375285715811206735075761596511412722897633365207350081191658238792498097968650488821389196118892744707055503224108276399071736762859547399556168895290573317673878049797814788979821767399858942492992783035889975559079856377348896966876885360513142866292543436955358797243767554559499290740813978143153326198049892822648171741965028415758759850984447602735668836666577023651229949115465699320042510204844812227787172637566541584897147049593791761377569534722767017607616859768634323740445104064843053044206526993095329969183099903709019241508238530238222109949221291158318935190226719889781928455415511602304258222100541406535477129365517763835631042429133695367181882362748133210366422376496679804233896530457615020669084567891971161194454615229150317165760271807225601955244846211493450785363007149253526427451412370065788076859272274217095520951341781761690897925184580392241750525007687580112130661324715911996842310629334783182211018906301019595168440986172112844376126376296469896477535424936678165983052112243264516506901223654547287051370524933798645275583550499227645111031558410406550897141553284146200927188221610734561372420797060413762489996681084334768061862764401178265247039212650258671853572882677112243162212310491480868303442147844623954748973491637190540593711915613167604089896216974206176832689815390119007074143252555528916545602719137719460530218098277685411665884190588656564626976439790639584559002989822005967609117830847693114855893307376812827743752594564541707621429546681576518220557873261602826445448924624891305220843595855748556574384442568923563343207570382498643284720558400476236742595557137893024354136347606886998365598640038005208823695144323172402007614048810998237016767770050749215906588664733583374127128335138315014449280949595345817855112559938395990511291666755869215001271817536087355218652450493866814777984710935590010538926030034412594157498282172042296063786896190795136602475534297828297805395216949344064710129515967180844747875686997368512890897292340784073559990441905073095539027974368433469860873525247992019472564873878843024335176716995703611516483852995111543581723979067167443656527837628417231287157128984302515325146771637099615999880899541841864879593980620965734454294873271844008191298773863317664104618413677807678418625382493989651075671938952308133924084791049531869975502920293920526830414306335448076905853807429047922571882036440175027472036868107049936935476080837144484001923826822409078006947767244033507146935928782671180819847420982816921946480636718482783495264111305801283267656931154967678835416141679164590040386817507603209387417261521459539447269304251162684857529739019824292751328944716279212564624826278983330056278704680881799000595243316642167558297208969276726639881451018816419380978413191441455363830855026340018642226346911759048984934820370409050404771746463450957153245141892606693286254917997777283892503518695337006590610158838991540362852574173665692055754460389460852898185844095502697270509428408001174389637173413655008291090656865452081247556129209919852724695080158921990813288787525440145115524050649662391595864050381302982977226928026307344395127374074653143619705344887035024242427262642028619340447966521837478558292314768356341120956553609441556424322754854270611775260350966856226185725532106775843730488948883434562257892285554603271310227252695016623923187218172209700698318590002493630980804122363792698886939289319128904420546321912108150973492795155680996922145422115671710140995236753927853242613058119362198940176866963662368181350750666746872561775134199016542853193224607953084061302309869482549010000639384743856935995578792201865323403269110893616346856079053004418300197394184982999159030734650371312405871450306649826301818589559944385456475334476990146347094163925177892223509475232911166112492959078790880205703934054514685637160551567072082129409605766359638130952523796444707742663314029065411188450487815646924086020125200336345041152744741560799076449170893786299252485191185190106230893222511457508666015836045404829734286157794192370048005351030486562472041683991553908823971805218806206249641390646046221645747875843638231209435253795245367530777086643784092844902234766905019432161279061290291976231985383790320070606109886230464588144157712231296779907581920858742542297424118429052274189653934266837130976011423439396125072819649533171442354146871127812986787061292492332015596430343135078512314405835432330771068168747428481274418822583817166459594551925568632340095519402578227366564180764727185027896236321220105049406741627560033309308217841505188575434487491444110897483459647475308638613982083571807926924517998944665076640882370914029224453329336785638012494497873731649246691371291596808351183252823682703927326714076014192074822067328274774105568660958772966116741228505767793084267477626735133465874277191559625346880730334316671067918076735791749685784409609628695926931061070569196518679804955674624155289907788767802002630256746579411789534613798631772309498331244301903002115461225055864804984836019088613499140353676544280424764822439373995671385792403390319011001829308676295677959488706187809132758252445344952677320329550690454228547089289583883620308931710348461617860739528123122249400962396882046075917752155135599253537691578233392347532886650931128641892563260738641904620188918001958630353756970173210364164935549202140090421306919796205594084983309749689897737901349502048181119387648699861705910897704417250510699541112340676644411936425791681444781887759836128633762851572431836236865218003323808403238617795250768461885591016760940651531913425308415926832543076292342353524755692805965332330163701777227994815075110832302110515358424046201103296262523942492816538266743878684545252347006421077940079219348997984946871099588489422183849836660753610703151617304741174531351339303046904767670047192707001953270276791882415011115818375335101822620182204535022997720550111180502427077421072387837561939630796668204412403882138526790244313496549745917455383879205070704544732071209708638573039685201435476706495683535401370942922712527128373514997538398264853359882312394763735524009480960508060294882383887346665878893861506846370611041559419840253696184160713589226272661541725623856416026860958281983375969608229832236597625002222951760176490974267094592801461635725475840456753240211433462351009850713019254567253100658121292149996053113718775188054351835803573930143173294410463673953061636690358470459123738180458054940998882668745553819732262512858277676072851178506507332089396823156716145539249162117035312877427210878548941137876420908543784292246255694371763374313308858158297477622368868812498720798047813312705618798960633301824539301562398451214750317995326253853052286747872504862211492370632691790226987929333737436646212444311797765746318391139774384972565125290946189363357605680973440512591697621374058442976385325555191927978791071633384208430540575782628281656694843830922123792732247890399807513794473583060248173675675454954337608530613434805358767900216917140821025767703893455615929150002401439527417014984212421982112148823864014392368595738690519531832230438154637225057536655467158353154495634625746186196163580609207428123465667453767344895316059524985199934949414801109952320841065186020706007097578584226913625294722086777749104368026515682544362923798702736034092825979413724744881324676230536236041443183625755261294926658143725212205113798297862035606025582374955100765290399446323497536827737181094660624708414293609558608092746971823917618525078748540393260924958182557563580139479898625141297120389206112971565594790971627286998580369120341479850354592198645746582134628701769960223875042513136961239640181165642725042614016264432813682148309065912867163456863974343091379470716995509649463770982183036799252121899566333841208876714634014318964510932087553027060389842710354182358953667818806434688341512497092599505409112243044326934663866235750986538310429705048993670350157011638881229015480124813623856103143143628671723439172971073952243946138020096391524942784930414550199147181971016244788313564420122451820968567372935631024335718425203738621077611886373931912358564496690270749633410242096579446624760775454398155221960262724228648908054378584265792843401843325792076343480495482065200928604392668695571731591330236053754899282747175111564208363968236639324381361125189581376422190738015525475140381396054357009804335684354992197039299247163061566942259439247218728924210245780774256303985538949176042628627306113174659044251166350361306360780556382165290620131385000797410304019562852956245120089627539956283584010265137091491655768995215657346314509690338465605897935279818071480395676712759318262493671686071259348471777281338861006653368477296928924432613694072045402207557229384382449645504101066842421438487200133307481082118902811592089670515313072295524229766711277133629768584114581585613103629223255147556428256391480522171368419805595748664516719818731117313669148773717333939059347885984625685084033020575885879866358156589054145204800389099858737879772787519344525982706292512321580196991271868398182784879112678951822692112244203988282428777588253120130058152298212073624735115634564811279541682749032078766489788229064569340601725915836031931614380774013930596230111544209925912841571014822724726286629738494689700400832660325084477155367975700346765974500514840812790387425417181766506942527849261341332457441382055705542176465064741514548864464250969035578873287396087981648715094830827323991878210466145012155955029526974975003943582240570292146080494648378061057521108236530378551735776074060028093295489730377809185401047953050418782099658556979882150488979210958951986717574569822765841447612022594861224460858335726977354097854592928028265936874714106076559963147224051363659123869672019919735848896775773153104695712626173983559740071182090793372151173890693893844352064156537784351878276299314339912957861740487583736071448924770973819330289090261267213842467192399107711507274512572799549521888522396114958241062421730845662028608117699909271799024331522717568564233877591568109983137594919470686575976629901080917766693161587929277226003257791451400092575548517307610886692478654034709072822754554228250706092890785235209865521441382325180600033449249190289719214182886117861203513771371594130052835371985873693702158989259833853184373054202551924404677761398034288796684581672702792749748709849366436885277845972300381337788144366391895779530954241893313028386502810067882371228635846968769309223668321578793282945898417125084763090209041644214279513773263722405130694932797849945271914537718877019181903945445044443642701533874363256680136591398979764032177819658470564781173068343526990170934413101278131944998666940875381755651056420801597550060986200875366618217297323590778428027103616150358403407442448158806054114237443327419089251614344897156785386087465632560444152913787478385714231941187054203715766569235097933748225799267675758534237528678561226109201399120175863371285719801959573124840756644588171728829520145678879772887667205625245151325243158749800835989820087512704321322206694484136013106410944691083357953078051046895509853427032176063464210186909048726416140179880702934301908124459501408538386076528509137684528440739719964945552736147356208277761493232231873760697680340969456172917807943103030331773505200856619649117772836346101980607447080263432705389173319608733576948631064408563210898971356116180790810618309066289387580035267746952838586725466494280131234028493610041620752576505778363988235635811437130982673540717438019301740648099189573716030825557549575545875803780264272573327982922778052502351083501380426185280426027503475199910676458657731350150077484917459989150608060199310545416912232449510110898329484062943387765183242163713856189672697708427046301570040287490873656064919192357594145416626821396528642073461776690614040721808332378248800927426413838020165353631676949692310988720572768281634809822701021443563553264113128351362732199893203739766364621191032568898212217850067818175955775189915628372335005459700888654659710973943411963890234383739478856915444832820621080004435959312320663701840508586581202386349073106009630551209394493152735538312643917587267258296636214613393786957677569945347434214286192119064483505255675860720101879447015720992256059142862930867044722458179847023179692798295309593399373390646184906749674967161524168098404965853694736377758537003107527520527110080286240538873967368176655928385365152745361006714095253565729468870209568307643948761798300743775762051930743041570332806762948712522134954985057368099906151702657332245106896553866448244268672920884572590143404437358596092609990789763788891634407037970119038965810073944813678024111346175450524879840504282829925546314304337974599883034936908253699615400126205699692298496645702523234732463993620647503925560760771909994424255813076121621275289038010005337368276128573205755183734691557662905122174297642500782793914426610346023940125351171007940592791985844620704425015381963243324010992179123453555191878014589965571987519949402067368906531713930355333268957203435163298640440921167815618893177585085489412576150559891848235070837716740596333908097739420086277330836644532403399927812792058122604917289849698412591880475913622512811723916300636405013365231579023866159183476375926529032095124360184097643470314389751114432958198228332587493073834040694614551942227530765840388375547995979729796848125679625010852907910527969964445959890299522654549452284166974849420374693031666587438292922583633809926168304985020635855614211092195910521301271751966487531636632241748219047254984944379932583966483786532495266998455363471965504952136876208647033979840425752064907089452169811779965718677052055463164855377451605642031688845162382228058544726647597911218251745379459482912091384874788458048029078950749214382608561052526021739504841120424427754067288086473029990339534344576048527912073093242999598926544892008205212369696122744078713818352748614451623077725583550057649048582159560879157436741753798735094425832091502617536808806783847578439084241093708938647992727777358731206642451806623364219430880576146356937627317716911070430199979233297038010359239331119049843602340854037681185330942993584402458244237931889936014728897320184205353001304684989863514683010739948869637094832074730738989776402811052433671647981122605996996248948078254090890940477467535439939787485213604956859371576996339118379972358772081686822872085936602810972449269073913964264036138377608191444440395987202620477020172637084698609556144916732003293734815238893118510563221235044551364147682487451064983675130268480747016480350890896117749914698713758176318188216471964307702139371134460741345048220051888593379409066255914115907411044953511702076419084341188985388179395063921283105721242528835543748641509395190699325997196168440713106677991618808246249616043908025539821292059536328438371096867799217783049165465598698271199480287479080824264546497183262157662552337407227857786949460268675013731903394061733025221761878999409832728685072322606964922124171683892842875448340795988267725966857568588188725797033970057619271971806229287633615913134946193650240766034422751577797664087726485367415518637006693274051900728680011616458240071884336961254689442228095635154623305003919897839371534684548814671879830596735665110211402473621697968007927994423451940644255343938750356065226860114637266456013811415343108209361362756724255618879121400027858613759825974799564403463972215721846276665010208007058422532557168224184088366263946747440082072518381352350615260850253973066719082484828067132111966436535742768119636324526123002158277659998731071824757780284026001776878783225717352577707906866959412225001538631299911877874488518819883883211213878417613693652212310636378724689837634340470743980472818382382492104818819401399948731581388048410931185197152404047711962140962462422969525779808612283238293445354485311372209842733192201343055498224485740510947993747987954519929356997341833173679893527715481208445069048759110820797780823216292007281492327930776123403096213536224937819977482550871377603014358494707943124651139788363055037919136888398622731765809790227358764093547092652221197377808500009510536574714625361173611522380929956504051772362537917863973311485458993844554042022643585432755501838217821908159051801147423906578704254015903143966552628305426270448325348460156076247351937508983531237847496765669956326371626796666082748720328511634633277674239065479904590144961322144402287763488577416364481815209081765952511592041176790816900592050550680368562318096054007424101790071882365828038873801180546740627403115571167852584962907080581138529115282679293217973815913006359682207874980022610208817447960313341673513803249320717716600737348585010651591072082693444518260005158242395688715330481764085869416140247321819711299822597648178647948972236483105076724474354343649665573127090718786836959817607842252579010565975691686945547770283029485982312168513714434217935470417488190776821314157546219550546669189708768613368425550406418778180626531942722838205754435555492059564049143606621873739187047331565871824257816792704646715196306231341585316523053660645175672259388386440124223959305073863461906086597941906022269318563350778252868119653856312841576301936943593983768420712864541339212709241849824044061859341870423828514224613531570458163910542555136434492555004477907961714149554156025431317511025104676410902888474913546732470410437992227291552909920647395089636963223060210783838632178747771719750556056398993726800622313444592059946330619864322622964580672844529651854920315391601529958203907564866520392706642300272745071448139221158397750186144566438707126070615018182107974489662083891422415155114816201847735659864229971934269963315883835984976716866127098021637645340630694321352314958345761496107857648641367140297710966046835132265992272115052064105141284970248945053144050896573952838884218490278606898800799425460652785050709811769731354077708597903555813023815089528482276897765471442080393539341444503136822250903461280167264827218702374364607780352241801805514081392346585316604126004332032884020748718660371911296412765968589014645575008877225633884671512998396573997851228569524378758416504054216770932773800888394185792510437817870778355958430641979220579895771981323421659851410569800490015483829856821202195371868792261530990133481802405092750081871934100214119819999955134145817376113571952141482431824491414922214280840071685814011943417653853734819409646233289914609805198220350629357798066174981613736101745322692557529011807524041221325092856991643114183014826839901745241849720589187372142916142978153390227977353773832665988270716400665158524341117849406185892017661787022056923871685661431742705872505628341081945034976888917176055806625873506827128475333453049204964434807791604957176575433062417779002903924246179610534304149961147316528355468174545815015751457413910747946463802909804873519604218384905226408934520601874572922260802775157544313904502699020727561678237068449202892025404525866888704912146882111717826822369021342873004893750413419828832279041546117138457470948291660631199283334454873074542669308743851890731637476542551084416520173725480046400441107296683362927722276985066502949386806555629204770376418591044289370382677840626768724826493117714613628376419253787690964586514961351397093004068880654495094953823895961335164066008488746528591232518302832888178269881492788459676285974634954867295614430603354202475654364027374819447876129275364904757560361186792258779842268479150976771178697268775676452899008717985307721823401511352517106047035121422416486757585781278236440889182060428513477087732648919733540419802169397184252482532791922944134158255762099816991131830451264532211099767752410146206822141733871216781187938882151783786834537374791930998944330965214077236486624331135001767131542045352558807084841293159201750534724681457752529830456517542582422608841367946086640348696239992620498006293313239033477280214356197127793848087901029706867072506820017178527115638048867658989206848677323802320856707438789390933095714513491137709613383172312669670802671647082623781146341485249393227027460715354222915863771399352719071459051216414872502947825790426619920283137936399718092743328228304630720544013804454465739432606669341964438407159063311466784818327062154339922801886515876607815334982430701647091636426461684828421978120657830471008884929688626484145781437637840863806447303574442668455607681302349226410068789017539216049560385483166646415728109827866275418439138851360710879055370303503738040890742337906982033008181680937062343090388840765483203930019520100038645787153783216362315306074259597884684160439060280685913766189208421376287312078614471934064108862448918237783000861754331324012124868650108410372426418482987292064641225693574237397499190328540242191680793834436604603406858873476896947675570029618700648795818526017534686217655694584689704364207816493011922223959220834834009990230859159252366335903600828383528405278575819782803383294016112698909668052314954637178764105391538599633630363561093673459811941144588504373254240652151170718433952574106308995062773332042655964137499758913008378898897008833322604271264539065427386389699917132319947981847759244556913536139447064407224735174530755829673376485073122900868270033489520996682773498779615674473201120727243280275118960175724982219053063967121557481632888053111410925633411220149781458899180694181968625032201352024649862984678864122709350993577016943287044572023886661916752549048196188373267323351913825632080611352431043318891720480197641485965538289373758224779054680009536460419191084173448070994994941930360532197218258838482861732173686262479239535049232516033987439694712980030410183860329954562102092364734676699258211784096955812609097309845692053273311887911126451679586245290930694659414929921459457649204809597278279621743863053482428641760119186592290151043828880870101741438299166636572594036255335091867274269376576467086641575416329868002329274456254000688313997064627102515437427676355319216768002883277603043879952067472347805196644154053640833455958974570067859986263113085294443837748456796760343803141724771947562819645857739041091183295539680977041855095181893402502535533851771912085307033040299622183381284400559637341621290724732027500398066260322175983645871037608287890892438695454039570428111620374499316952261294862762293089055150138091408639245666871485175398643101861221639327535117698567547838053239622170675320702296057622411872945577205880353787824935293176767022562464671206338709537211781891027471974117633030152709428048959923642496612837475194823967543060271583898274178090808260709909155040689037572856824605875104430747676654229299731496906958630264378102873689852033183496928637897213481679799487872152197190677747485862937362394178520113323990180933469852438643061046219648086818417038682280675748201631510793479825654798337892602014136423337655769912465646316651988716045177631636615254347747650398648885040203311266184722820704029667909178643291190028561748183763362444724944674130567495539085184208935533271455567077088265987535725649786819074601534417667648203450920163177856696800994514181297737864647689366885204133846021128553537443257593565656771907665008107204957830744678435404875011085366735754071447557022642579658436188412484111311570971880429588161054112665100699528896614844185245830388406927958624222392471471311560869733755270511567333854696756788909008598212630095886961944885187727936837968700915853514751850510416230814583624676487927657716656701605063436875585889996967030918834266918943693257379302335438892824578359561661521220129607618829787230462874382972496609463463152504277104931471421981873252516860750781527642857181505232172235599541777735030151584898947008636854863044480451728713538383805998138580580599237913822032114811093616190535592079143247413532292120393800076376848610155833729564512038184734950208476790590150925315587423740506917008748819481211882856598553343564263495668927370056546317034732049518045934510150154097367289766419037081710482932366671997560006173888148201367601494821600075981307339510990663543525834497433408372462314646734163827479660707351284878511715686325571634105629814081984882293766154611711359978793992659627625620614963485989721753284697709588481145606276020772840610580028801560467460002299471081575575749756177579803397836380154296890316444219120685229157136028480137006426555794037365710548872926753262761378009303549687242609655193774173255336715596306797246273258896579542710499985055244145889777164339934643750776484504352963576074892273857066006184027227726299938751411037688397986809249087865694534358493911685624186888219383330549830376335046380292775189758356598988165918848149897385698567644407541137228146890140168991648125073199207661995724202617826905822944573584954528018567077350322528667563975147622534979301350945400788472452075081871774170811203950322182819617874018708391683654741963319504168675940304772914271259081448089906655128264973515924565393454191697095483272199693932522959915329644555479290088053171231865458262799449119255132840170088551186757459367685984880382701570484100047747222119101764233347137981573613058557775484614348524275908146879506180148801389579347852471967065884554821184661110146341013640104561519720861387495702690217988001016350183989431036280897968757546185133725547100206120725586062618219116822323453156102976406868255543188878496035824575384758229435665494011993563823297215590303279873200609078019725131374591897013014931675611185034755510941679751359216328242389102863634726546344697574747115563139695209136580281123941944445783994806377442422743018008369786723213639038549573669843102986755943195137250002408657126258897529836645545412755849423974837847278462967878247304302817202088996026382016789949952185614616937145604212796491018060711274827488562494435192090460195258428053703657917519631485785860421344967378438814950072929950210853821596307548646517464563173002132521233029518924322211754628342082784194615247382970491622955797607277195985156278121696797546492542260899511137828665175138559664313941112807601565649033629463875396180203725348011145693652361494530897736195987503512121184530021213044643936384942533029104831985695005816167975630581894836762869598392388239375898254117345147751868559571643868599443395288391834839425596203840416428344687438871333517683511651851684831089890655806911428813865420733247914372507576220383478632209685062435445383034884496107666727312577783374225178458921459356533608200562319611038448002287741620165403656417402808396221872918235530797229447482271833956063552498307747164044258604626220969601112236708676226188009249805414805779815886345908851440843934753691353411851491472477539175512933007113955918266157326375716981444931247667660825108381328371787513572965478457053016146479317695952718137702804589717067194934591911865283150998864540448728294101457207736787108290817267507833391568887889420869072524805956401515324311720677741548401051301241328772657193025275256931960352974445221659506177647044728957265257664450745358611309528493267704637375156248162903422480355583857279635999449339543922209331331697178368522883024422540690096276344120428898870250219687830830515876981136136246832851962773947078659130356557765993758697733661487799971760769050064052234977777938172598187912100021860919003431424612117990523133079203445571944071590823329658186202263552184094441625521983814658544213328175634347096952655391313214701142763958167040441663874140155459305389180538817431921951388009396845667237953593053891476558920646522884549923536947895628723104977563961216308800731697819567351363410454727661232278791040275667519515206687150679607428121511876298438533295475768689054686735715043014895179432970293351049202307311464124637594841901918943170821091351519804850221333029640167985506598536502504795992693583799063531691824699196393070266157444936357200513478416209619187092707950643152168602053756230593721122315210940638886039615029754643769782888765589497481523216413850216091198076125973068511918412953988111091378317580524138559905347697917084437255171477547422465556009498108253905759316786855323353869385445434149589882206120894345255806671677137503937763309711652423511922708488342476686154744591495057887012591310293215428135852632357527700106478098479078044567414550043849426007359726380443644178901012184972523486455566018860732288449380075632295873124253689346142223515205077254907191732348381002604538036356835494994616410002871430278283453437859718616255211595185811876544632136845233242973252736158715283614113486264038638081013142395705468594911480629880006238209312593944765755584687944487197969287758823604629707984171671674722645757662406906672629819386163549237663803204540395596352369812050374195333041707948835483670443494087794118198461310524885967383480683605675481543993832807581072064582962356280510938638310142628484728853413124548119125641296167959054964697370584076700325984125732825895462738986636919899082595083069892052983434760537686946623132175712305479852385260906738108322082589755734840507905753163593726676304251366295940525149190233414352764018200794019447300092934599053650972643330523234673540714280303508284935386977699830514126829854310073292903019556323603039372082291316776784829848123870623103476556871129192963388010688363032022311342563113656613527369596391883422682183785544026818406201831769544840512792427591401956231416959805663972432133858110848862322803739553838067710615609600077261910295981735232782778501958134762346381796876233226237095554635316096194515004750180452963228179401718979074004733970806382741212277675498009829086167775693026382795962675982818437479584966244300521328315848133054052585806663132318756338864318190631026548720856600436773621382353745119508813097031743939658414834418117988579736499106006267263729747402878576003546758661488267106983865518116981345523239759148493323702223123629977191290636862221968770148218753143503133175052183882551940892090510837177358490894711795200565333598531579263542156954655171983405533538176869466255043635033700476846939809952250092036418532650360947408681729472545829474708185515686493227216695524539897030784229465645325926240665520209061888870960833648011305481953209609539010401265398073541563455062309266854417026601465904288255788050319633647822637476411045518870357382596491274686809834278230092760517154557020414154206052928510846744323882915343531325698306029991121294543371007872483642197181645758427713885064601379040371270096384926780524602888430207119856125908390256217194257472522486084990311358891769774707721075971562890555618705326307239034486908436233913439152840379972599753762645036123518924680598716493750878726942521106523515773270757346558834888164270427120992916752619908985282829311605973071492728695883135473114935285580363119544132823477604681690665531461533857720274501213497859820677502335577200558860372361527184120735420261802857811854268757380936827492989274724599132802118396650914295733505454293463937450812843856764342741785266788895794927328839500288235406596958864780788473177193488529736719208064479919752741034230983342348912722264882586294628394758153808923126079134925647301465279238950245850006125526991005429359539956896453085651447884784250720041925669006166830437407106846671904202637860573616012191823947317733366894670432699256206684466879974538296210154162501932158431543386059769421372074033418996410409487605464889165857382900901140183077066926127811607899225369844450655326383542334320393466747209800234628068645541609152088165627387314670211241328715631621602923714478958552305666256045453350897449257987195219258399423740010431286906246250387326299016824098365045467806694708032640600877133992174387490528297676919577161994419942468657590474658051620400497730624419137853216285630852564591036291578067157399541425917231826138390744532118350994309920095202527295013861373294332453280079862853852626782883574593583087612686194600211794308160108136584345382119559541925841126996574519295284454907417342032370210669953021152990188312949348316376352169899801022755023143888282121972824389481144395293910157793892908104486360421347966016145189222927753747569852083800974504576916502904282203964452636880545383813291320679727420717199989602713464718980548884032844869919846863864722912949660547967880817374980094220597978960470270429625166038290137656322308773763367827329987799066006852993645858062475460239769351623307306323701960563100066342866833153515815214626837761873519916351908625074603715963138096357874417668204553371391742256194558248578834276004310176304471198470867669432016759709889325685173290151309320288406199293378273136334426232326419847310606100731167898952005698740341922959847736099119986354487847009518768954777221181627323728790032260832052332163362663473867922660882593502053232669845175319514046558072575060222815914364091324352607755881331221360443727031483385666416934178497214985399684599865014648358461040416601557849127656993394669641695594766347007463915676540966426837983605182621985977825059398687757146926208826504162670747173800046405801809689006436526464149083574564683562947070744075853662548002761134376347705506188592049575745750599438388967378835670663018429047210809589384444589312703590878553395510266190165399834955868488542642118459484408317675736373384813779591355992328652631103826445511988423841801371140337110091382647980379920573300491997828323238466710611195267790398737509663710428737760305304226400811194852502031750104005012727660020605062700351671386427306347949313387364588461762253259978749042437111103151380301414185779168326576710113945777006789309219241788936495172721846451158822143526244367013048884581610705856270725415781517178030339008925422354639645174822141966631955474877547486169164989108901728853157133747451230566114162679839308217523811657217194422845877318152579719195450142970832400917429968542072628062697770142665578611813873406858379892893361620075247484667188564061790524872986249224553109250139775564278836709791788534668119029288307098650657486327036861101596482185375215887263567098074340344311120931408483116032116985863746225325156267828526545596510905523176448667122317115011084913245828912589679626967811428704553919391034072079297673240425722115650087665739148282049546217789611583203795067041703803114855543339479193713257705631862777318605362719985116222577458042846297030651731386671895371826128772623676949384393078171729205443402957173327461806821368246273098032540425459068434478510319035158609540204890752317186665431314485251489988391290451533402169007362859965570489979439520955614432691085295471055931480149833556463443132067369749758225015487716010363920257132827271134183483303168289422805211677740837205377728256325720711021731678045385544442213224222947538419963321347739858388528810459178238300104868901091611520915952671002334144020069081610399270702967709195107258884182097083465219037969178672047162581400843571932437493955442936069942204006021746928305448477981387624379697862357163343887005058063875192363956563429135356510191332485340795877501081037535930212777467594571696115786983971072287774894296902228268049505966521615935726983982001327284610689507662009406360201284326451873602464045553621855136815916017262064153184398927134958154951466742481007847090840073668749964377137118489496563330075520202335569795224242534468504201715798635358262821686419138832815111456415986068342925919879764322688085876152358394542122017616580814698294545820248158763603364286984510635345276112654004565509411724241118971562205300076340650651312079578499849262645525326363000174365731395765562100714605655497005520256679976356575140045822463835149838297857772629611802233183518713774389565202251243789838194819733908208343486664521156719529360216648336274125946407887355086793785584154681845359197799685120544779359315629664962968031372592411419860523125304896471250902215365434408384998770293392591120769057000105698789607876294716943777101990725386331994776480057298966936623611835685399773415321073153626398942711812268182411750166090504350281857420157936413628981460072834580776777535843575701230259758535449770975360315572911511871610323016770713412172622852180043353097494095718569473493776356831860599455929938694972576625575716355010276655058158956950854850692889629063385241872426780533742201408559341213615631415203006500314524272812692396026173770623134745760243885753065147757302219408056987964806616399640451235811136087859788791859092834226706372589610528939232535641695781892861640320113355506044735695630235275742383726944376575847293242954838262803250668366777506170809899476328288307467642954809134196163941668540431487416775277100656619025698502580137215518467805819799634291600017123225350555969812900246963159812704486648732531705265042673675650209446597985620347173303863804829974045884192442559115686948813075976222423086106902788343578321463234685157073368311363658665447977909017492269925500449850177306372722578361167275766647244013506981321836439571281778452790930196042544901155112335398017344690426327573249571817324598793573047001525690729567021795198513507728091759183983724709476744836877471181677946169743045358415126222764035975794258082422994724797689309955309582181882513957241484220676021022792983043576778124383021576975111264802516518910705260575372861844058543226416842362667458167765802562366479712862568453308929736562883090948200461386825091382715074489046105886945415166137497211097347637727981434660821880482877059736425506055968407897650746352233127922110523933972004008130383957072088548202762642445076796106448139573535321894060824401318834871702889500473266337124398316997055104199514438451236960428507139988577907781517270663045074177729020487499607921742329654060616323315075875341939169013051608717084370445729570734904452295513746312166798828023091552515784535719421312666140091810301501178684258514249890772594485189891695315636866704036183812111280882408813084070685937787150607725328861654684507693843277594900287669787379347527440009993563383863328152829265808682147836079436804321311047958631230490473361239954905829944093464829994536869075058593159984940817457928782691730101379158290863082516168356242167191212977775124441077881759690528827097955481054227022110520958026753325333973106686838887333993276609325488087201667245801996060083689704590825283897157794206110962754775151313661516215934851683121385162774245525831384936049610402901849337361873301098195843568741721132660846865591733199350698407403978516180843771575273408845983614905586194070372401779181761631055027046932372618418497940403978716245401712969866027901165232419083679475272247052347766094442483076506669778697908413320083973379108614492735791044173556338724549835061800526491982863687820230147342210469457706638314617170291659822783574488457441728172086976462112826958040946778421111683807723755378955156245349727631552933730342143304352310160610206787690440031187684279638271821837308795503632327750811079418960500112650609212792803795858808964781065058878313493645756863908630442530158605576514033751089901359121535904333058359305056166918045182229768441954697510207287387511767866054954896081404084384310739876039734178095095915716671587011091084620351016114213517984420728143286664999226317568192291015882152196711909369327346749595602391459502827475432507467964705494460473191787186375388261161897762235802098461067732008071681794216303831188114843956728955336277255952215444909286209429457627304325913577405586912698880891995574907117519195966361872056809798785011276774880587717294062584969962951211667362189144987366790659676212530016698228650603118852474932301563692407535441427310244489078872681021201751986486354409865141502497065878330835144487392366112704280030842293373862378341645421968054951687548069945615453455305183277055173627805991757925263965071717335250439402776727356260559522622377106448872637433549521227529772377541223193755975470631191201930544038580605461498692033358078299997409713049071447486123169099790737801763766880781553371887119515036458134370247161564068448045765884820323213714254620067967561697791661493376714594021415873032110314477935831362929152514852609824574412506233548461479924715021305082356449580454515884235522073544223076538256290624611895578317150169183305025165196706951557410520305639767053130343636127930836827880912530735737207911858336016149581485918620654912191219258142283140686009786536519257998140894454720892394248719764022847251332879856521626086038389170496410540464865899818915280864997970438732972328800119583481624097192971120746028293509086207187159487835638580119103158091155717134953417846101424588766120518170076866610353675609047204908163602876993184995473344629188995682735807420751707118866637078672415174067337758798593339800144401429589551409293070880032476841109390221218819490098185968414107514462586397862537590679147367835163750172797014244127184488511662402631381531506346936950955273456123097246502683911243491725785424144267713190448970301517094353890222023784545571570310631386339681592904503987452339003876995015565493660230661789886872784216143239013699026271653982313878041732765366053363835080958077103021395657731974991819884429321081488511444488794814996817600099676568724015119780960335457727135361163808456524567052204685731266918833355039868045954362947023129133677104260284996392035402872058740094207220632830949190422298496131647439277501498387850468695445034656425675874092866619664513020735541725808629603887892159466859025143735849517632415752064778897801197891994439043003072196029317190479816370540129644677496776331290915469165368794470083340423048316527814772843282246714329704045708821747159797204614238772377720563709049598292380224285382376576291764764776328831549423647030961102494712032078130312186776042076231469506147658931285707286214289564753224869332259427143924651739509900837093153672724280796550033530626239824696059355582999955836029653615857449514898937448701907159513930557125435112459736818477006049736476129745265952357113658865086068142346965032882392482565951586827838249783473381602488092909474031791932635517247500341052897708191490083977237814626256969365802358620446208450260959664605253825322036388730972128882784209449496553489077290293665471383497900328449784711906943393791877429146761958776980540291227755150149280215590174125065813407410527551327813820849196557012468368036672127011797863520867262987388848640369435601446276232057961482156047109185948695117917476772944121758780077278412252026397310498831419079468455326011383262326488641201276591222215524802424699208000136263373303051998931210096363775341436101139080525055717552720834633937381429709004743413327267529524647357519808724675868593229829113460316165950356357541044624088493878143002566394232603400118443756294217749198682596759134025517392716748996982119809027744860303355394535460563035959374386503978226545524273910420893106564095348761184274892882911524594087100721105968085083865241797231678682277945193925981761955076957953651651933910582159630315742207460126753933908213959035227965430875835195408709791253106603134828299178376108619662989095788012924512348697911764209221625120836791592716688513428944276121839427211489213757754833635655764063634426442263940936608296716378284822561769333782741332660175161804149461011937161705548953868700116733344395962812769205807578524836902425380171183378668138859822386416265235748146128853163367394351277244876537743043873668335424125486797375410782172769647540836553782782335144627777418291584472898542098705910867706608034009152454093754923455005069621201214303512947580404320658724870339783578804580392910477728231888390605851899983007160914861649055298471407859141994904945170168096982642592720683109658490006172319337825528363541211434002648730125464292603046966852813671447439766557662931152947342819961013580355978059947412698131668103248552099113180070802352718875649049668950183760584241186323814452190135019016681302527142089323072279029407575897452123707446243391243980876265710944464966554775074277401907899130877436321054728919590847106954110124602961041049251180906874576027055331036016134144281250844612023353332473609064539201775755746653653345648619591784917583278602998222906924638292693380182969770870417900466351043963387916122274528431479037489223553732815219582166120967186926343563543792707731200929942023371087783119841297236744234990746001629918756544439777155382883420524720711870385826976621734435275388562323118286998457095340150981926804041581437579172718300808458388795077010376404243918710248903935323572046240876475003153438011193143683642582978433856403843671375034017567118733615210602772296934964994067091134514947032225394411561058957686149683687651206905025772116387660963832953780928780083108119268764943346253302837952569047659293793244080685982220561233573084968323721766094151524181973680680528153285906116474866920349069345113145643488363998103869735631833048166138258877287530960573159271251030602285737841827424622366680647659338436059233518489731615661302280245013769857832766743466619939215920316583344338868428467513789857383661692718316747345193246973498307227498429326914085500949372822763136442184382488989583436693427899196908211546045231878034145110490688264425166636664879057282162488044663776809311191976698808270533695017819221620023428225215633385839083299598549362693606643416917302886155196470421551598907933023023632201638403544999734869191614654876422795429100322294776150638608074379486917188278517621490571014816119662876036001815843748838448498072191006211912061824168792207938463304413850619663988883558193593600762277203907377591768722598086533006723437005945047927732445712655954454756372808851426662339069044975823571339105812136552713995638622833733867721569606492325002657425047040877945605458596187602576996149198739918072090345225780601714693564943079821827873750811700749717063643665245960089295890821877578838435618955273634120245869031761261426448389327737109112595323315709814763367062133189258619025260344296641858200954011000827779193330813327544087257932496889317987242947729889757582516826770038448694274370741304995994674537197882279433989909792113388855249670470706271963937620829832408864200701428625637902960802205504754914408461001039948332802241844782162337353802315922352006929335090908550277429300774415426520398118957435815769870966506242356300275074140416800086934669945259753719519652672700736456838643998915716462110011593820276770037819389665556000283686787377526514754624318996964066393871458669065937073883059034805210763473348353620988903685673841956555926354344802144163137205856715173894394605110242846452191239745501681253168621444022020389083776353692297521001297712292531983979722176838658465818847086962217765182831248387940744660257873802482218118884082172911083982536222744210902071021958931164347623691883706042241718051428243125965732563508998831866060140181229476742702531954848200618383739639243553148616968366580948365471169753796351601683916345456987299580812207934310223616612698619724074348108641865940518038948661313521881434028147077043095624994791884427173758930284396576997606770355804943061634720274343683715191691101303659909099264650516870955076125742195771748490986811332352136856666562735342876239554039162421749745870036330827186360771960225880516996343825851530528876599216141911602355351308464638881064890602268648641565029291331401358716141184626721378920524513714544065437046451270506250983686859578006759662295859551549653720283917965589361575700855780522913204924063557156073847183884376575971640741948622957949005244618668489524260209916738761283369702589031796212793088341190968289481403177589764464521386321839118449585520747481107382832946416361512379626410836451464506717699016513843061370170859404030416780492018211589400647288510263325292294063585281439347131471580205591304856942332609724580379100872553684226851054972846169479604729577808880487320642049853313657844481864046315017981826809486996044740324697315178337912437924718339937121898083527081331459142644970824671982352618338796776334812757327203801964462805394764292457881491751306058689237370128346934858804640126640346205809430863761471768037555486624561174768210707445234414579676592207895964730713797303419517568216059955022054480678954894464069616149703748700444753773042944351509138497957476882212565413767204148922741174077532424214222834919155387046758015262476435227677955755567099796312355360387227413684486330688819389925194514021997190736658628769239482494077749929189523635461291389980683560876250887871149279656487787266100507606901059930461305490079807020327487427453867185060233240174059120402885724301839066634934502996796569689414979707310376140573614213183537182814326353410334013217613585724401609069115904154409783615175023569868858891826801102045986888651375015082873143570224465161841755522514981979208984735195783318971239110320102598118789237386597380811601223419189546715949311523699471847210376050189152627863722613206916218601456656900068444589170356982955386458935705587229585404240630281628584693671218282423489488127525227446095072369444660144639444577801618136805220339857365111247126338323945130801258477443436235616704793245265225182454467193942741448878500697990086318756991412073051531861235299793827403413192608480489281246733604376360500291450875929012299912640095164479481435291409810236743616533855868873665724151860149594087859746042081123388752953422119270914379011030205650881868207816946011510681298028124644908824295043118427565694198226726161633809021918327461267739980765083383165465689557475737257346022467652034445866475127148220130249989596451178346286676432804295391257705863942595271005349551280075753818563487373458676807693208268694673083729577870235697945069240437495578856566029390319547018322812209136477678088374924293393337882742916635346512238081757208915183549252907542198997605136372126277675805166268843156947227963360118041195714579886796575452704900629779096815444624144778574975799316262831793474950889687492271930136429964718066572915902706923026815995102230325091395515938990785923197278681986772706692510138246542199789149710259754936326147618262734489554508042570742334494950711722696106921682922171826264985806722156187151398457612105331213932276295211204741411381732298374366358018849850959420598789552990547124315258907157509085217484656532105276380137917972813952118071475582164495386966541730650066679808894777417853667197612580861292241854865618141066439669970051677658229758546432146403850464058594350757430955894413385771671714004270404855527694568663803399264313374485655203063137778424318089033141977756565214220818973167379753409652153809662669063486143227883507039800668725505559428641171741084195081888201688276641286700341014459681454235869815165843077387055703540973829884964239754026568185512970863267813392126606144253765040420639002156489063737732802676169620399859487497563390738940820770418660327570553312566514346951623473837153228357807576907671877829975596269571270180881161352062367611917402804576354937647521627293436029261009211029263612311119975061263082580074255232967060791124373296075786028079107866589036747689724245901803359046340970196703719628611913037879668296772741104207333706266185760538405409692533952472276028324067093305687191141921639185324867015201043888368687974075805602480396415820449275775047676649346510117857931128942912633441057274466063444541234053330450716018178529150615678988181553343527748986444636597131588760803813333428740006162551163642144718719371572180952237411960384437494759114445106986573395779081114322715208185066661641231190352217322122476352511339118146066136021473649877985614658557039186048444025279509331685380391383754611380563420265230242284537812936479928640365534108829880280290128709702785683157419784829543483812597050331364499463602152753300805990549296878324611260854643347093825298570227997493942310297881917651577283810474447606628469886486664968789795342796439996413282771239368727075214581953155960250189705954688465916827126403381828880772828050227696929331040647885569777068969953374847507332506612345618505546028225675512768852512401503025656689204688525227015812710453743651771714064506253870162835285881068310504689267252400210129221241512020873166511068861854225217778481142657014556198259609863302362202732916153238111220527462322712050941633917921273426352322016620157543918046149510681453206900468236960122799073780733777885099879709144337197494797650079836004212420269389212399533232948199524503862898893997971609397803599433690974607146358099783948964173288086541620336988625201772892097537815023666738153224454558757208939669115634128559563439641900402272054751347930936516411556026674920408696602415062732847735829154055932224966734207940817112258589155757874592558364465417387245228189197449139789158627649452609407702585134170836124876154605736993956401461549553544508288515020224696821271334823879969756049776197028454728675947742152083901078071710432022463922405655139441013817897646780324869017218619345894588616835288644819919838964728434063722248542368255690944825471766611047190432337178917741332852720512785918735635084591888370359647047561275530002364316255795065865768984542238636555940879869576797812553868724943320736242407612791050795170173507921658105121740608261638991070833428600714232499821002270352354536166123179714462901460472979432399219973899779752971665986461695238048575839848178325221928352107446401059757009365712609247202244050016833299924697638204818749288463724034741430078112423329902605803726771391892598280316896173437459242781698518895473190745160066395692365520995659266204765968001087424273368174659217238593959416567539537483942639537351037445632464253056258190443702339829431074297250482512713639933587107941965010390245113672210438477375780318500118594252612821314223477143264847625605374038471434359632335332390476223809404839917812308531101148475673377317164267366959915417958580845147742031401519673534727602089323458235871745241270633974826812506392079323040362325953013750340774075467806646955673963783771306148784293405497781901247328897909196619842506294223283956286594025326648391273079917353267669006522814550562134721359808706776811112317481126762295175001015856100683517933850454282485901993195580723649932620836620402815690068362661623520318634743400526860743496183567563922097430800889000842187650741761719241587938011907502089778265551503528174506261377205700933369199056110666156170514858218662369231728785783795333251270056649493181173245731416029788270396462899440189996384617886946997412450699865768546177641241159248041742033984040459975390034251635584256817965560521802743086745299118570626480058146827266585619192670599841669743662356905299325973361448977957065154564059032879676539203615362430463699857117663941902522130881597578041522497566132654475777197642870593573798832812823872938365540570016157140821378574189855661443689587539266294189728313716605409791498352517393740199449501451517703154662665791188607996995412131153256668141973637717953749482707738755684255023196718964403272652288886964637606524659882854364208855393977690189927009966416079080381851138836083518675023590766619066335846124388059978519673721406999662896564143657444575574418431592547259501281581292358973284471775533896794201573338784692410386159056229625927323594128671916321311536227180738519284635620481144538812920912038092215785106370845388411646650521838332039553957706762978228894071577225221933156206459456641704632864048589461682187177146993223194618478282460587422213746571084836384378221883157894405863179044603063743039709790570352134114924460367870858895866053738130698553914010775438310432680177956351633613702047682691880586647343514114888494789447504800886585210686205990948704710317877697818960755923465978065202553963433423040481849187985945219524209093046107416463617208083009462335021276661199283835183150153535333821825060854095497915826131272525774345019452787164808854962824196656143342802631567005850354125452423327138919655031263153992787536041634116124227662761931775733851661915958065336608222986769155253037000059410560224343035602003474388379205205887236512286590859817112044639646797263048636052336100918942880597644341998127081944290794394923494335260407268406891534792096141288417367794744598784361396490466296548720695601268582255195029878781503546776832188411173555861613542729464079797148636394971102254960439940820246833513432138119907222260475133305943290037005324658163777754176893457279801987134341793266664593937104871167630798845385401714024810597031788321129961946975314733694433268526143955187078501120294528202315117682492013460418894392176473250606413601825021876002758242577963253031417110659496625607503507861428333327359175984990679379247833084748781009813871942247197503002012892053560301205208233547132361080900414389657541834031350000078138917224479828282825392522695887282370172882820075455106279529044709975512375979501720207041409599877925761531868885289831268455601344689240074996327644963691584574198320849134896916456265879031571676785897579600857130587624383346340597646658523778214041829195930158769130801358954029865343355553646710676172453028164747495108231991496967376305290728183432217698924246020048609921647031009588657768597239319402807217026379876736329164411683760282067831909455784663152775613304034652169991060772195777865640506609685305607698224928771375353534283223287782676269533911970867960210159951383274706850701390975313251175170085662062464507101859207593326545471993278042307566440832411489174961972817166611744549215147641981736971207236892684195314555078099611156853555590093300013810368873073031074358935268169937487815168099698589127222663204579710233616182130842749346773721643528954694564228440886756781862344412167742730741111270150041624408332404171254453877759213415507518473766203135527051091581335003248615602351172062404990744856758565519471411676152919360263403534726621091439128101508067093705115368628690652732417497515123392406480522305449700504602586495057852217976454462673273362131201359177854900631090973260180647499793727619795805270578326039353674669668125659660331370930486698840556062024082690977770524476450442606090922714237904210467411372674346706815869780581113616223051810410847703021292530901830662858879825447416503872150914077699221147645699187229037543439932264617382035800454609140128891760642138031760390928928502892504422996439678973039936301299904345528836607024349495340401121447853747264846901150818737051886041434153340677824076347475974457701459041854535185573974938829838802187313382570469954475904190380516128198350584051850770484574116641849789987403382705098260715297934908816824572686087710302533100621662120878997418878610309534558936093938135772650921309714160238401696530532189070069692688222898044536293550869326808882082019052239638663866437670673477952226262804000114898031964653263406813233638944751508269220028485798110916344189147406772961965069597158100542298364787009342215073006303607769430545673707645459405135866160436719389419836405703196836396406784212885449055171816321248795842673317580485583079381424479671341387971722159790402771313734893573069093904475560897891444062445841737353962752443578654091103049481892107410127817234906772420695864942261020737635069341821513200502632251955472581694072048659249932573927857036714758352324836888379780069971348669942973531158346262584768840645334132176131473094056767380050535443225198186681364830888439231822596785452531055909097507689867072889967338236721434612930724298729171491093611093255719970469550538510140841130027877763205473170064286118901116725670915344500913744521583039122450909285077778290635706240186355864489231948196437194809294248341905328917029379890089009003839580238487113326408976718066506729406762492453704001050447282698075836338391473552774910364620843037313244804659466385786894956048034112208546959122372938937477126642447302500284395888290556643675603779816984451827318674230530111053826975128265595527451417949890767063041284706483879660051465555018064666479386753822395791935305410794123049746250902524058586985296717159960945767644047518784667441218915786399802281482983137664917535618446167245181778112941115343560877622164808174314501375049553007303223345874649223387052336223230869347748307266675662307946862929436175553655149791924740329708155614956812647940135353145114129372236598682198771959321323291669529437319122297758182772105215097975262604325361907145889462176227625760927980408612403266430431685349576691887136496634127627303707562944381529460594638426817540508705542541628387978217113864087838356096836441867160274366129214519655787941300543345913322388337913164186810526049114063682656056761461247884185576818594458273351950272398460536448096133628406894759565276860645205510458440011604075186881042240443144483631646164205111624911820230786923901451975991069727007724210453774409821346764365659587530343127733967259659497195098267156983347679207598017126228096417054345586372343728246749381542786599466346897592394611955127655146357157350022094658350188861671586370224902749486543078576087643659789910523252871106037840865794913182635062890148874786596903927439104467029375335165781587672258682586438584503567161449486037846712972952528809084684589595922693426570755956624535159269958709912000363951644498713101476009716125016972515465535441096141151287793167533979128966802228858097739231122088423196484320593928865280604599174076061595081959276285220614107674277221661672287918120552590733955559706407001006906922514443469459658014954059751880142942790277134288103693464560302047012729277498907020577132792259892009261656788449683939372839310294485354377887719675372028868132852796682903543870493583200603460157824793037390091655323781925042301780833707536293623976723036614202164664226406232565372146669860587485195726187822660919096500548481832804819157515978424930055075310609394576866855793942080460587189932789153041505075153764046435988559051204607150086312921869187431566889155362423694202559811178169594282018230148540637340203750340278135272414220710574770528622461849808731877455811608764686953886940916931499910906993694132016367747638254279756559730111643859722651451625850488472930672170327320483953889918776772122516923955243549695745683040627626964613033862278021379188530227755201187838261542633469839626234580984046895401778676630883999086195945329247129466722946857513487916152333693789010506669651489325484950516076741810126311893138622303016020438640323682922272109590486365653279512535186708152029341510847176756064008411864822064128712434317672345893781515586803404192985465117793897134161436017193200066235686850666896855258254668303068027622256929444164275329451127088753138480534927037073691740927878203341035800758598971731667848604703707402749193912544389311186265140648127774049054118426748615528019947014956143530742724385417718644661810134582999880207497722108902370843985387347311436009080341751278003667139360474888394890799840598439000550416207790258970458905915681003718033690533862266482287535196051424287332378259648175445425747236923143224499310700892975653399889567083720442203380342761330178106030720079608104315106675143476810747473701604307153006355450377893719701473850122628305392968935385731200074832217728659006141997240691436084177183321711974669032597042052963573465819509738842202240526104293958518091392291758286270627837430755027616803958136211655086365850251171441372190589085736499909848733682029186209089893375341308751579654242746610693065006104117687948737785570987344759086995636298558627020156737959286552119180830062766508084636326098001715875565961952386991794814290265669130553566332504843438525863266377442078146299902496056613022121804480808728294146752949154256901372263272321992974908954929916005324596278439462584575403289912763764986809039631590534056603810581886894718752625743532144315077301095533821384886528922748718154714190161616047662303467703350253199842711903440382062712800439589131906384739902421666408420494156071913308417675341388359637645614698573057780970400040203470182870436950092240212794417815400018057220774686418560424152423252099448994298278236832537977093175603543643838786627096232503665286182525156974992206802048729710263275859095888976271764279237313555550313625106805039536023029291411380316305200623364804717572397940061091773329056372069387922981409687587014086767705288307000489158386660223810079491792409563591611165235543157872092489536342218662298397360736271998071693755828719864624375386528778208286290504470062280308630471583906552109381167873114134187312273357058950173523580529144604415928591170107359428674225683685087331599205262048141836794753121838275283886877575944065132572805624081869972094364788090864525830551321704702384354012247534743667339184526045493429611069915928686898683871012942732983453653847402474852948417286012501551565268399293254534107303102177733569535944237666182139758981979459392159594840818010174659264157103466737916875761125735531311089506838146663814731221266562496773749557335271690689329558938971799800893910630037785538855746630814021450571472371594033564279246643386539288166538421311765483464379835767705410322412303220189858266835796474290486298185076934502382044260304353491115153418879547320875818979424077899416790005701361443171641754949440959487722164023099668595154519149665897486659073460347472890118741192531044533949058279244446058753050066716674596110405136344739477260023980820165949433280020666450913366411054837993428796310160671880235719798490329388267283294474466656227903797058691304141359140406241564339226070411755324232044731435984092343625134046458882332932403942773941557716078393217943098268379473199051063417727456482316191146945784383261438664298114908950914836826686442644265925288011208638532701042945069492169377812516194298809982094817005955243014038857344668006311272300739681737025652074877678060657843865298992058661413185302293682123809805394094276167455301643470232952696945422802429591502119864875797727090324146692958410070976689164665772457691315095713135573199096315303920696554027877642290368846810076780687607635702196670088656712767319850018979977966016079469970329218818502262123045004693313260807376585075176344496873789274357764174341662438686538758849930190962343249154163362343940091268378644914027355210233618510606378346727695828730411643339415166404056331756893310644561568659912740192790049554305402103335838050069062498259672392213967735263458087482429372373509963317264460408852052669256680925942294430512560689684932668498324460565159949463693564807394465448754809022123184917018603398863238301500236064575785163404926042596540445096726566161212909368234311248623894068970447700827340331002894347571927661761803209457304122476187009706621728403278679846671383358588531886689370291880071393480788389712793132940836707047193127359648861358745553285967309337032722039223874499387294881147147072456725665501453372272062504885966803514793183946162282747442238083844772957162537996047312326190014886276919931739816989823091001501329417074825493812321158551130708394976633358575742383258317852731769358776513872850999423358685949341337379820878719608077560876266405947475916787431190364383808992655710581206598534103795193012174026733878798508625746808951249977658546442868888974605368763302729651187596306087714765409901282746769927008342159176053115041780896387474239861085454937568158958461949844089537127488588942599203618179601598273333977820758003813213334376065833700299067690573060780979340700589618836444299713815734516721039912343652079017156427557746752505040361092735616547288718405524453346378718021035435425831973826869916631128535376469833844791472743814536465190707051785769259733613036716714648058035260285864094972536857811436731459816916600870071721978483943193120090699346737297706668012177931154123312029142544836787121758938591881821715829635420792026875900047497532604968276425310845124613164534239995106255685372837293572939142421100974127931724413237921060461872182782310074735712966802628480884777875928827623802446596637170675064285625272338257483056932712511576458150552056155884657318555710282216049585451961638686638347301548576729782292373151060229059757471234813672671194129625373781344831080583574196932493856744296457341519969554562496123770650293260895997554319846948845865741799834611907284451349733542501884828171582436540741693176622990853183892607352673621247049479102639505979142190307257034021031609861495890090389394941374926028477304505694493883618078212947223144110730127160955071096675787758374586576606087268497596249689751793075428100183783899888592895759480676653209213426811759472772506593121577283924320495106862560589390789979310086005120955030564685851449739416292831336379938072496741881495197735270200336277486007264833161555557990623195307696141851413834970430745453342854038217916331411255147477205095281352341558021028315784945303660277637684086926435636603666457792208321996806815398017956592553935951195729294745200630422553719064997036243744565148697117789345946927761682450619347231084171914417705877758160918580783117914989938418095336482254291629610303852114007920651337095366701516602306061899045858420660702622166166859740666039836701167104989125270830330002811700950255665092023721725463877922632912344940526699006738993100088479087522254261560462920496308990677275557324295671103827665412269933768213734780391873180360352812749802406959396757980364624357165283990414668905453280364138077542681056848785390872338439602800670061074226364672800533241741175501745644476406378871947095927340321941515897176878039290740776391195578304674370998830979040507863108930136307735967131162236668977019916139388213561651747234068814478675454679891426500718273053421073543440930326681344032909143856340873989394649952157972895624957844541263665159335934270229645374766017005249391645952408952064287635672496582721300514005041630013516219399102196733352311397600666154606767689294142801048526426144862066401421937084597748427926616035015344595212156915118527685068230212789935727334385647696799431750718952986104977945914101727671588668445096019723109067781254832367930487358243588020881254430199239637193279256581881782935426045991416406225265585844948648080221413828892954251373260585874976184894661364390105066857004909409393317982009357408572788783170639976384054971080442309310435392415872514169920523154932693863415366756221770047108703799784329552035547144107863916519660349398614935046611179734298916390097283925431795448946416122238645990582069420905627853150885035375092541834163323069735656527523953345626587389878196924322144857416725585442741346542409372306316262995356174482148511826208864719031522391881802789870136147759478379920139268096418176679048268407084464493994591012212142751094127238296872622963553135807534275464444027174928522981549207934584686239608888255515114422312542381116561238186714829935187583114303809340949733537896409013417391336354765955387406289167684875293531696073944047304347439832486032903377194552106520736161698217851825816003635494693655653146314693506060768289014900627665009940116217173546003687467370669555867690455924215539917783358865808200900751286139450063491593858411176015080803238299735135280598974822865618988333595770716454789619477166728030771490653601957086602569248720546506878870775490990425027944196381671754429006205639287256438483934238149791379598917414049327674051392387655230136352805219212930951433965349668714746705473555550277401537248314760391640555106432830946663350565835738846142680773782529366737487553646555982802881430076069926460984576265299038205466059266796751474789482463302430225792871593185455061306192379552362304151262941387153725300409409336897835096072483369613267438184171089711846548576144714256387069165059947121676893622849969192641902859701716809278834293613710101625465059210551204215498140053151226736696056389767813119468885885590964316883545128725765113191693798986816404461738198549373657891435123509499105983503557096436935292583383046202956835772228588513100580247813396341053170483589114941580715857585561301777439960438327261100942488815793202157739710654926721445236714143763580505066390790609429755765436770693485686346754804878184900807310105779585525586914709307253186983518836014595243346733025398984951331422881074069722882770886437005379937035651955474785231369834720408676097602267346616129051358194766543872602818146306223525541547574371826569126510969502778288435966561657189661159976837957394440346553733948278120616150698329571361582053183682691558656698090266097489197961650380268562650679150672839619573325528534024326318117449457675227915715767814902242420247931085779951238224489391546954391643058806153389516071107927880172927097209456029195007060145826885134939325688314521130580084533687637808014169776618400535982884195293383319745162095086104864516349613219714235890696859987406621086045681706644856745276693953493884543307254614768057544920598185652139664432139177270807669409038783612960681139423789082082538909274199706135006392231310636935544349740726041007250674709247495907227998111169467700270732240509441857895267937009954247088612668635298181817890640873700381169573084376664146536325540382053640090744827048282041278491774622865321360125324826888129324756018441898321925332357800018063792443820836551925966478994002763222036972434386619699649978173284496029647795678950187646219998736492766307581331447508835612610542060637584611304568618129098300690095490117424911124895418803056707774892960916778588543293868720755998206054773269605339308039752304751119710464862547218022887461529877492703322229435005769083743049198812884987176435938872918354412229769475658168020410862229338800710800883019097062984313436361094462790172312831327728849714742824814670935680579094609181740460112992396916105490365127354318582714049104062679211191971831031460291957786190174555429105091639464982703485176543063907014096527736478057857514760933890810816746624730064034560379855902257519347554360654297839934206755786408631363758453691344539675957225421107175610228709438795900016338442221445005374989102503482225138975275202212380019951493098526204097069797326943422924660328219850422957044633666763706216293820004037488998036763038862173955325216884989404965546592824020007186631057324120009913421940639886810464278149360127445101420181242915467160582894027758735060817968164178175398942046299569022814823659587232655091722070774598761773735685401023853043982539524008283097103269286463031048939642779912674688525857425360755143602690807365926582540420379665699776970471758684180343456820812225799848926996853577854249856268426921965202988162410488687225161985605211664955176790823606350086380038880368347179571042066407024749630146050391775595643892293645991183037941784024604193957197729525621128718922044516727818290192959035967181392656379532436565514731036745473131107135946019222311791220120137179594097463785287949605113582379042934392352527769265584482026402016938887489626904276996320446823554053905649675890029085169276323882429545268067476320397906351975583615492441716539768291492053428159967366119662512321697262875380288690955658385105977626331466562107376564396244979773239267452636651685126449647124178949742258075368863845975002363740688396093342617030975218558322769729857216309795462852117633615976608348229680920514064802269424641089156732053542850539174229562011428388266990466147287352270160591482101841659412155636327081431656436029715705018596426571455306305062475092582209893886468741553913415838919266866114014072041061213887923674834196065146568323910060064914305268040401630317343434989089142496353052961925126351134214269462329353079742363570217103431053700682129309867318728170629992747443098483036049504818949710133058421699677301554518615486094164062245986933676770693020360846346861311939425469588574878281215368243733927064952158490298485969088986335807844406961311706004399578247980384259330956660955150321510311826810808274463860770993621760423870486702619938643059842006113308698048835297812698521419571461622398167663799800694546185543825384215126696616491079346737380837590423894522527376047942357702334235482757182541991418289827054659555645995814752378962254183980620622493585923934580759862436220019943685193165192020698338442169715084175814119613520346136382706945155362744614603570421177169752542900333251949416938953593012768640187903927254396218473732215699915745316555671427366279669527983635303143819038982618168452372505581968092692452531965237151949244681780346641420365476027873395026766623760703881463006290041272057808999348052641670506474521186290229068930714331630211788143861501241761903217606749593786812669317539802271000809000108844253091530682085298847965270723603277707935109734002079861798571259023567849574721917236095567187277516965371665511915059704543363465647348726964135418380081993885307559829295955525336334083631445440142114721304482226301423564668955332835359762420037736372764095993783217600176302113670521879625590515787252898096005755592348659723680945101291378037072823312803567363034625369287839159064218992365050715963497772200901472813680202251816601135051615121833410657240362733038187928342686626432579432763568478780853071132820395350183614887462489411692667828961998683038751173344326466478931314027473373723233894986526304371800360063582486247115084006679892392042809451075179394883266130521215101218649211890152210957382019998064187641500758154089247005513798700219759656738551157233300694467632196624326572725211855980945354419640701921519167617378328198500485910975278285193254547931759797847742447860456148416988668910730215906847688626551357553398909425185376020232694348340477937862972119223558242973536842679002894407254990561879280628078576411114137683073273092648900127907225398873517785175360711843936661426409239592752434355233874915088212847181256172616637621861696723530523938532742809497560725992419457423284392563921989448255874707250178355857866387300742346212416994115350400262773733889387972353738175153600600980482696139330442214552307303381194716553424370638003616493176157824513278067916654505308342187508736220505881067475310611000772930103035736936073830607555940300565534695330949254938247902221409537404517250752494516035114432994457557504034857310089496243943802377981490627085138366942357144379069829987333295199997482712461060748715170136189700812837429996593746214847380276776897993554089575552379100321729202482683131261327184072114877223199524339552790733540961261058152913402924977341160240543952853742269704304466414439407070818408043463351142057766657812972814155294082636888700304184617800288354101632565507323961040928031066425369864695892887452125551936434596930286987705127648082762932880318637485917868551252961534888031550262225463198680377732534278489329224583454778872790676423695124491034135555352705570462413959760406293880167256331182276867549815052335197590793319531328963793953611086509966416611032840015907095602517438855256499526395792368223497254877651180661750811626497266472158011521205430541595029323213205345329400600233679444967477190177877963094927372741375534214517139126940695018598889922780554582332138797609789467950914415759084427249183221800007817680264592106167750336129085808829721821616285585881698764453039295340243405752704721071282224178145813316819620914296034489330091714071541599813474119834561341380860042738546341766923764897157752616730332052566683170846764328186767159736238751919104685052658967013242694520116105986093052045698654547195866010056718198307063320200504416806359122403671639277777436600808349778490653209231844337603119851489969849449251491494344469817594849502437450494654299411255286653392443369578531389505798446265705413682477717084920265399257497894516588238626193175011013589944817095428700764699651897597909485390411884252573225734552872063066158287159078013783696448417047390419698105147418733032502449336732463470457054780925982613256640717351954709823461644877329880346452744755925770066267345935178337583067494154642182559141397630253400874744320831933233317039211206192493812368326242180135109536333252530271428239208842803929703423047679657507994146631965232744325789210990602721654341025935260396350805955846221826401719567725727569677730284012781133160436659914570837609682343858568759575889515982220750199357116116770216332829143938034969982246182316864746475402062631210081155986210395539482538155266224678510234491381686340468482955817401101958326521054440539043641154252587893359318996702241398957257775654191330056836737109318799094666526390061092710597824268593472253523481276750709729449343389097282390650542889912050557534583955384955596286436126251087070963665203395519882609169816941483532818564684139082056252175772992916678167813083047227475837202576690566786517254909553204132573170536345224538271979060744425261477908061288930851978680064878036550932844528069102553944381379763163766081198850118703525846570859488438051619860394616046585471875345448926981990230780804446276343347473044209248087454346889158175687778159589557553983343111267145546603174685734362236250256266483362736134114237655546860486052560026118463250640918101416602411697556938434131811711262636431666849734036668218852025733987106546231499452357301000927097524667267514816658332061712466164914236207128679252581221942220487609152843794224314787088880310031330312778134276528699974572916282611126429910142051026650682877473581769195567166679532814838794936051453309825569457317635750978012069720416624257993766767164193917981330661508466600325681305497667951281223700571951846467275526379600217802158493667171910563991830722496626736101582702677004472339260318535854887666017652349402721626958805095335630064963543204766098738662619221687026093047040469114658914222879997075254385466784507198141051147001083900074459603284945529529376166809126843129392585000448063395226221595330433384880896726114855580520563057497755065102891897123424259919806934844040253009794209792801139146871452680686627208203077294549868531202970465768828755613426446295159296032023971882229887434239671518564329549265467327209536479278958372080666090067921971946668801405922316023040995421421266129539760813267778544128937684479914166567517921372301828178415573528947808508330658570993609220152966098220215158589633302949309584003828101412717198448691996650182190348321393020945013131751218780416075011210182510261988958123760182329187552327976714448702527110022661567249750124398806854280626885325149102714432031634903939591065387750644501493442496398528760150205402903680610236961201981183540062431042282915331626498169057455984197600504699773297740046402475811088446481586810733402938473419255601515184160341549206279895327463536649079698519488821993277004283639652888121228160553305095429441805684868203671608833009183286537258837150855235003043279883125726025124634565537641403297898126474906862149745087941738968395951856842703192743933341634527966928170278328420552576621177068472223727451815449993312203777553473036198766363051158981101142163936939245840457353523926180719739182400551566683426057761379696178959130097538423921068091477985364399140051096944100108497981170166154201066908667053974268667848637687685944794736716927297808106142758102854656328941871637082093131253285493170140226407953713511905575925582861220061644529758602087651699024098118340930031750316739439785294363705195581920589523243492383433242285414589845263614576889476167021374622531567520241701674425940248852674073016067947356575188269733480872622406447902655759283544765544080523269983868061756870342178958940555292795900976066008580814574837191629710951985631033260131708482629237275927038993184351517064289323449232320212877740114254298830736118357900585052011309366740187201817069404269688767112640491202083816098304443246516400506703439960784186960999210132281365225833804321962862400359720213221309743526424452316213970923529459528456445160965663860458153665207286833657558674463963853591838986759175205510058304197128833562231634606542372753144977934398496981089620850904509313690548594976562324853982648559094438087824093418409804917663675343073393013938338768019569948165072371145868759812602963088231723472737991610544115925970077849278352626521390123821369257041807663527252695812925390132395489439567130641429120712933900551306790212464021200586897379378814878831638129956494958127729282902778259349824317023085646939149233330005351160765430715039317876577489610087062860535749475360649369114440835202700892253031495981214529118497727043016984842275969631347772119481734566840492501557672376994306402353450309344707455094712495681945252895587824032824336947101248741547575393913751287396709514909407871865957602074771911957352416592796018976102035136268775578140735536146537031346298721219475142038552452788458343130989356034961404520077119753044104156524716206185783741093593609106063890723126174135667928921547997870960202260764815894556386273170004389304305379780746768321334610670611982219983530525476815499246687313192908025204049990536955152507323755802222354178505358651259910831458164604650495866727611081559200470915956573610024790704930909142178022882030298010004858044559846502947149041754036171599480253776051795054537644550761088679466915128280841587012296628186098386125523088365405186895663252320128356810649940816341042134411706184499229381913441438024719669125895754106264057206214242760562126293700291107896504292213994566358186999400781335285515411112840526021654465222503595288136294223578727268495092636243584671584085067156758119324262212236020388398117662837268072598285109072590449754245039256489451164321451791654853390562405849878933737121423555251221364878712542884279586925616434810545130377979093013148201615131770183766116584228062167393091668420443815675055277275653590253944788567290383473390258689064876381318762539888310982360442794210085928491090813193478797783035265461745873722129652813310329825998964597836792633260824170705276206450661663922685510622026505631606063100080822226873038441584068721061868035436843404379906931085138416354590745062196248950429637412063591440895056021811430789722002112947466846613010321583169864820324176129703292198485277001766802005892411878928490710889534085741532331860003059748445374775179741373640408023706151258737716399363490564353652866790210203525181441596367036200522912513703328438224873721960394026328689495016549796681357446879509127052009941435418172568910952565918405409592734665240289558996387246241346161430661411737460809419135505463911621949836710455636470720483166267789603891003304166998024430057806197589938230872676062960806246865752894233583587789713653225132139323434863604260798747766867519697106560480779679055970903891916597601113072102046799118888788066019094171726158973368562364440456510947903927173507163827739457875332533527337877901477601184677413333883022199158118831893007441686318341087211636558517626893394955193876436283441740885818007269109558663830843103344943677220137105163176305092313867714291231377142749133654117313253658430617801402925975437338717532930665690314151071816655315901316127429344329779003216150328027581682735651116303415896897316678070670282851944945596987669951662257137437075387998268167710054035658119502172977537151695066102003927252539759629264079334965045257220068576252006405216696787423152335538194270590860520049586280271551187646014733923350330249205109582985533266832050926792843952245884596658227305776288637972100874629551580625970843974036470139198420045840933329973356676134329702402541007704149763804634315429556372938482038678193124142263914134866275843421632037548818969211726454117976204989282685416152804487440286736658278975595462730966119792389713666995706037229343209108045477178819147457596792528943137030553563776725394215617980789012030011761772985133236379542278486951724186835141911724600363295798987144575469930752235393583573672520520487544334136843307393680640889388707048668599258634501690770771695710436457617945120726393401357859350105340796542047535481103374889734013289995935345604899710534709786154456794939366494180389943534476912777396251445088999324574718547397324942324204747743314515766258014546897220097661295078553003893112596852902400311283585193133012192001924632865315840058617118242807208492212012244811321100290845834123437451837225795249988368554343271334097323229891711832461084898174883556136039669098319129742246136528090709008020666993928752175544097400849352373956855422829206642523555981965867901044876776534036444306377955304219744217646674616449234717723855070928107912048550149176086856588608725685158237446007343999008965107034553819146752458473257404990884343823109442873570951103653405796369073038593312148999706423536259796326223805238305152820811296710509107124783950500181552778847087959580403696098000762322984315301099957421680557721550905651852943855590409754585019456247452285588958840560621357713110598399856264616607025193803016271918748241847128909367769684504716767703682559930004986064200935856114200794013678835139503141940110455024732721287386253807234059773124778967220734716416886908320320760960184264758968183020271465580226524109509071046060173812535886055200407902951178096817749298614197252635034831146621046840015690264138777489137995017780516727725933316464831461285440851468373699932154694066605379094726403926864249143163932088513956421841557411059292745136686349763628600435898837110625487593400903743482930681731775517574755330745005978902124171652987207498386741939282910704702215705956413635806264552806867077804829138479706860371098081441608630616958205372160994869701390783472949953946026026149903359391694938684708679143878596295681234623368708472328610169209712977795990885370767945423888309905941725880124475724743708692068861801410732244127521113140920935126173744102428523048311434361471263505917904819710042449055239932414920179116510224550828156999870673361880353567382747312219772411844086383544872235605506583310964577677870425641996168488026768515323679278570059303281821199732306314185028467606254961674831350750869042756998821648422303045343557360867011808766030861739091143178137142713026213840625864724766683277413632836552334298656323143782662712641894283223418514584968985972465064161499553755325675225421854341692537016190281706285233158730751585898637411383403521821184901140600388387773323898025523347039564745388276599984638790415550566733108909693166976435225671326137823677791913601688031624825099575481046129472673838742797287216812188740414390235377958951014383371714478671132942684226298823335670368426405854571510071043748182396105472033458279546563890985415188723804793281041272905867758745371620573493654078825346215737033408847723454837251130356527950192713289903091604916740095170044560621983542929546607728267673298944745451369540047928106158986511909725297146489908466264277755175235231449316215633639434121797114441140466187190002426088418770146510354392243940613137318730738709526847172551432062609762736244486445999408656322877994053340263195255121758598429490976804535113944889926722274504511370749389432040780387311251003376908221578115840352907865353675103550878990629644679338797288886677242514004695766432771064395047993578039637828891840924053410460050521652519803387174958279841637482277984857620113389173048848111620371626136395838246555561965031321629889330686372152941549692023297147161998231269515140873254528123124456147798889570514202121966237295541154660496145845348961912349741665354290813870260723356032847617398864939603696942958788915972197305247293045313754440522996295858937597245070324229652108458797661028683538962403563418095019093779768279769908313596800363229597597636690231030304613786782227730854285265254462221222780689995372856752908481621877571870252407847859720680056098691991920504998355304430432851449707887684861327851220518570748739746727520908852184735171208285265041225244660915719105648339018704921211580194435842081245423900199077078790735498159054143003006016423583775955225792663859651335478273143438297584350072292422915548573045709515878869920524921169277737633601975691576492432143683383072905245743369363848751585178290020661252755440661390545292380993073539822149663785225146559222394371158617007372572006162923870105467666471002144504224008223502869039931895645060554413321529096679652019608120464469167750960456268039726830911828718244725052869537989180007081068670245275884604672432622419192890732366877732667907221141867680321979974338634624442750852318766475187114445309500767529965726548130698796276047854746968798960394820973100521140828915864765415566755311653399898859272014871243646263683041382065167843292858073583214696434966045977390500323031594167613199446796580782308581082043257764941820836230807151745149730600334465866277798412101000008001073813248771521438361248282769555751251334287125922976857711502555123967360725222792474499200482457910720804577037395814373938878033436987587554414805317826318907651592566240917814564328368851777366004478752399751644381819706310276974114093188892456648154047508822996334299883712110156243420182456373052878990368235279179107971990841573629963935017795720220602825399722928905508504792061867868357520259450579620569037466410976307350881177412735673475579147073728064473061183953060126489640865557519141008388355476226892419227431184598261909599580311173387118432743043143054220149510691013895816089546628578185889750184473095074088029806170716812076782814297316272365985581647601478121549791950465667023234045296423766893754027899485329280147075031689155131051248989380950124686928822667107768632621752296265153971170548782499209539539580967516394136958870751484055191467137328503851407387614725133333133486439734180986512666097485660300575662412688343763966156525232878560151654881326943090562322520447097262373520728129152518435393935621573159029945810865694435534529155554727947515576702284328456922734211909550290730421808336101083703527935617049066043161596913632370501829669861728152050776358432896743753526065389673650738194161080780739015393819126913217380518584885202314436865009704907625651378284221529849417441208109670509396790849025911655392342249318438413026980067098789236037662381729110616084752917911976037515835382217003133517083142944519275040895538554602048176920100694826419268162132380656584374059343303818902455202684201191811680312371094447009822631998653373359622998993828714152273174078440048156161273931383689214265331889696827430985305548069198743174322538246628547547334672481307161405416601473089963449523137108376973026220337107984515621263016453819079177182714041748704739832795060695061280422316949756548461513678854365851633779583498612878298962296554058828660520696880160381266144465672561338554136131222679520263812691899425440849293854762128019802647578305490011097095922561812466110712399285000776777402098607873039282036753885660156419180325117435809035491346768250648921760393800643760635370464519866139850188857425209499963681354078745259542783949637413796549300757704633882185784024330840281744797515704537048803199454983160975693168470496160744344584779774695696297435435625892878568813542687400657675649172082679564873058069914024902343559323526115324767655513439615578449186999804467690198074220523282376922958157871014653693027245729357581802198178214813264089124935707175934092840343849557524787444139542298468167941654347060584894159080014799490406297443386355132465928128462844211690860176081426598631671799230780375684042964400573391767190334076576095196677330106905813221013821038272129737178859203750563528278361722792642190034621095979004559048563267697385084338782692785460653457901555015843115661491722484614708628724672820122595409990487620887386272329750933629911514065391909104921883475718018381227010804732832306619873017008695665698835353317855261272451691798190909498208022443916525967570703561697306975593363304595438655998520386477896124216653506017088032481485979534930707571528595324300911879770614495437630238956210689737868716879715335003921014745273178841580544770587979979861607796526365453002257848870049312564762572386671907912244063266750157244517246515396185943386052315631682972564107398110530138918378436104102533299375853829550731131389370222032020530438157085653433324908788015131321297097025648316581778076322483644779586712423822613118851181891931975678333713806785406627987267266582034784546898118657128492518811186467078528208433427603095920778664318315103398569268866541832331495010885067148569730407186862407401938076490307020798803941510205318858652961331225585348147225668978291492096258115921984030127556673055888276850987941672748154127581541627058820968256437906149490840081437635449372359265777839960629763054445982583793975679924437472189402734579621637825524478963552831598708440691314494383670134805972257510632621406106720408133069864816686355613565380607824098852679388003145032684376626090178840629203523986079959839980078776125723858211740650501691817591121478857609562256685567108774543288771514249161156417142030564531061554012589149278866611292977874942615347395836039713470451260191559841239674409669244095489905505501540410291408584442773813263218494744005393671414678066915491686781038316465604195880309397832119341218002981549208583056187869014029145709528187072695618953812476305828889351740722144701270204632432986147238268157679360640886531385842294216260079620855863823408987505697086182817109278804116794575293919101083964545606130596857002506679953078401199404328542411129960392322922171970007326426365349928741942553516925625799926775519697387082734212211435041490124558448738498792179899164494105714107099926298616517581910923573112254527568811350855093865778794270779764275172931998518576150585318999305014585850678274656112920939933213151096261250192887430777398475247838464824089791771835928417269901142955530000377516713473072791142895859753670554343232709952586685063737197925224409198813101826375037553085500240064383637483489250860494467886818265610216661082986994837384180779086884121594497461414479405800259292062724792166914403191421233259663553679730924766923236419977619646643245262996154516829493320814520728686408689241452701798558968086761367759019556913579572694207444957838056887299562419605496883574930736396065121881821457158881574211778549533093658275172112328591230630915615670192551619613439554423057418704047396424403338983677334409310518945871672337076457648106812967811362632734414799933139869044912991995242458201641164160792873891141520731541105495388056862376783973479448843815888942216554616306314832482629865601818922070753582620722360712234527785944524851028613748418099577906249264459648972637327653777127045260615251956618560804528176868422408435964937419385823950832016067031157414230680147498806972318837075901714503838980291959679236192848634930565988654379844571917212792418959590693051537317708319149821622310479314400251682848610113380310939950349216956841774383724467954664412264760059573355924714980507505906494208771086850118267840806125314091482908364310119544972577160139088072710545133257601188714713458965966058441951400868918468448589753304205984313488648502072187956406236412768446605791168499683363356865222190132678117882880003555426281143962714361565555701275678037284172645103180444975401769520810140479703009510703424260478062967869069400282248216900587717948428415213649401805360943864602275516820537246229579401489549137972981110981723203540168315709012108560712338372744467392403739707693502092937641581577872021545537571986996033120234685721213536385895670319969250760168717000095634574408947961483661417132851521825072017709341900455943982817588603503300337960811850982525403129934563182692802642702978786883170736459089147815039035674819792013724752058293321388584605710907393206453597951841975008171196359905925533030272281317561326670166621404393857205775026581502200173146880175844250602530108217088234152608063715780716701449197353249639169828778970831979584336196338468232475852810546204576388719465113217662498667342108890219875527821066049446331130540960145695331602941976358905429455325790223618677680538081971672938753215204034851224333146535768358791769629483504947359974527065934374084298709873877616844540427119496002172977417109476282299512196016226538195484340149512097664644930589113974677323589036478739463359267197208450431117021776834211146405923430123904376453554859740134096898458731370070847819346500637773075476863240642291288692931803177273166116696387125074019999601841734222090134459230941857935246396613652334268211792492403295992818371502004024220688896334501068978447224729119774733867085414685660733352651826641193459185514292812722295197907454463930814762620617076692454161398809831341902830068106004783208099577222901625210014522079559403495444186482578267997625738707956729325997718464762524457277258569517177476526436399441266091438917929497531174783034976627883058215301092562827477435549235848408316402539124499312336401371010444866062286950637405088221632906073479664466769174034136055119242523457744047835008278345879583244181303643028528943803681431177714856601205213230837023009546889048979396923608568168285291378993435342741250172643717766897793110729012743129448515757130689515193002049570377213630054389443386658896963492116244118920921750126145844904505066486313670729185119405461592065189111978360827715750170866767922911565320087079929807491990995047331604685147388430991469581855390747443742227470071425219244502087086503088123598400460870902848856774509334810371271313152996507925220715250607001111951472373250683290629382107603254669074785374710084411391680882062021027044769173515810568984627766463819386778784596552108061419406831099997938437168472198290155737125284919330460796770173220218372574736768572998932567359747909194120612361660984376048920976777740204259540182109085753227299953894914216262764140707200349421616381054531062001218544458450888615546827023323606647553554763056332845678518015384314477813242138552816499039715830239523206975432527796582775396028183601121634149673855609279376635993139661540865684065249752069917358237937607292924219393114262185947544106465176830960534861445436859987270578947251423108536790103370376139436624185822269155505696693941397995474526656145765294019355109063299685089620634272932908613075551368474462264451066054762278338451285168392020108257984912521074421043532217999715402464549207622103272184836746310765797448805199645870559507656452069319075264294149137242734727477958302174127265956446866930119918488324328771803887206126247234311901154783092983986695228666552068547516498108761471346317722058069020025310180739843516796786815091619304312908048101134161078449502344872903080437694394127546840000052979619932054375096407393645419666504700422295493377387043794828150151804072928220131426771978246156291880554926423604238158570617463183403168158774453378152048301098014308236297615945115986094860007046834966963576612403204016159177128375697546210826507828736872623145280954816532193208079311972762532268809694759124015664553833572800529974252874868502360977536379958581763765806454717280912596244150600117056285127535205892478175803160409003451026736720190448887043628170806963765983260680091155975942254315870572754055167801673590696647007579117663265039600291720573270433210641327991165823762051040314699439623159627803082633180907452257952520415494537406145313592032713606387179880439634777408667071637784730838652270789870289621748648575712050789187351490551467873950763079061535751805009494200284156722918800618118201255656707983698892056700400090483042934184364114313548793849936891179191469414108741026177786094797351685487086407106543332345164756365911931380279114670150202482083292824459743841761832660510931091667497881684072009732790473638154991636657111648417320984557721787244179921466540501132648921296521949856472041066419211655979742091857789949158711842709884159877705542634904085169785162509058047889908463453501157973402807594653935422438158050168506480128757611986779453919683785858308668242687018914401695413496300398500861187855989560342736982740567800817132807411864701341144887780394943546251942240243551825859412902315724207763925996754588861251837810562733329500073028064403601339523233949818600076453355211043669438363617382360851615114575859228215420589535784353326585849790891452754913260329763929543930748112673401157320912306454900926750233021739809716511275541308032658963203055238514859751218850114582338406562785916484434256311196501407753220386010869233858852848219405241563623568649589050538585402124746074613333937654054161122441759168179690948095500772304399247805992921735007705041406886232876822028794763369206919914755214680339828386965276094857644092833000565708719704027532030210087725252895102344914996796393227337961720961376021007362913708479000983089563056297941541141575620822869675655263639336879555276491544462082847150482349495449625478748399197679081490024602598773999390232161472990222631236088737845179052934088289061730077168715951863204175695210906924984263700956109151480802040535661951473426066346235168081744684977771869000486502692476619488356738776839935776697412497628921891470423161190913358208127177556964475126098596985393962588071974520381091282982718954569538941585879494104916574786431259003862875553422820877838856576194074262468300024058905488928416669602992383999435814898572591296381134762940836813327562115759086594298846312943372796499091573019660336211749911141736050975700608410088217346982861790435945779308394247877481406378551858492365931347752269391248040302234082768605967558128622944441413142351040703066740026650144984188658805524249066684981782692335643954467435787714746901851125540633425208501554374229663282166480073344910387293682061258243881726690867958844331973267689245843898316401061297456803638170413549634663195803821915927175124830954170588044155489960098455713178748083110572735835250436973024983498232567962564648555193048480562270584350823017777222038885110727682599982736974328160361772482293855092476362273129188311684875535337852692996784564574314254056182422173229014736379603263837387102604602915249057922177911852229004937996339870652343284771835621685084480710750154581179368349314515958748272114775163164844923009851510790303712574292788657780153232157541848958146631593426222763308414816443962601754600535462299870122267096548606104678310228617689489468190787489092144755356838706674029338737831004789866453767031640318511678785811368874335445507996542085365119976469692757620502900889001186411865599404202825797117096663962555350287886719124378221517480660691103065223832761634501709407388828755094767118094783261615995056535214153410325922173191187985077950972850719685310348058610435303338141785774769580594913853559002148800290041687059146876703157835618013251423747067813680874003293763619458119490141745636306576065383915761019300862944799888853437576647833285128095343821890862109305789725354491172318625053970994925042964900269275064503941662030653541108996886569596446864595077273477283302981267780438406225130581682390699131714819586333256336592860556676371278089814640433748145388460406060036979098899045742453057982308782994981277239274827772022065511216636588567500298879505671854276414031924651533780603506956294028688253361320404971980447155544281138878492728995443098394258023711056739028945220260708728128862212186413245988997515955496740361585219221677409149747901854817326411749846222988521176020340667778988343753894835775337509861358470951481372423288252398398990995423024828849795944851249666912977488797706801881652655728170875083419033230064235070807466481180819757905949968199291138441416669890161715568981670046749218917897380180618741485934304187795839446245469914073315246102992222749074719203969211006835331980289156387682949413442447378778738099931448822176752664793912673404304792140250251032764927616178521541499364366866031609439335992043935080408866658982621475275891790747203996899244461454818068859754363822801348694272431726427072041278082611521817833152081302084676926787427714905118421898320886082050555150419215029506293041749569563944237918010164270823125196102613810156643740227494044191073070121434986463524690134222494572816314654326386282212937273351595854841437675955455418459612745335741975432967865553375682805228781397827366344065296418682251852513944392286636716462638890708463026276283915249673812399594423401585294014222742886502519918138464973391611790811343057969465535330589410548542852864153607521077805333587684084158813905411105458322135007093074734293756826149894728768770935357842796712903491506615184480952036533821260468530654671172429078863334700612075359305768425848694724791692114438974547358931169299786289895354998821634511044160083153537312836229791293456832730188058457401006080246382550054528297933662207568777305512560623334366936289321769754459125852767471340008332060026230418421076394514891147538294459663612428115758213574492380231211932825030236091032753620121054461291628047855366687388648151297056119999384231820085393719012317086479045878027969348713780430228090976720318528230072600589938290983315445510778965302465296452161550164889131693995506798169570851614645411684033907168195932396485069039674110754084087260806418830636528249673781984324633972583638662889770341416393958998585717644920106166839055902290465654115101917897687822871577836714740558129416050554028554404703628251872699158302680891920740621948902759761957234923376592414748304854548626202072273774902109616602361041847607796196359146517494249018284868701631678574281177119621409352349164549499107850709648264481343102967584009874648681555284965379627449359002904718599458301890183154876805815259283741845793461317844225547044062698090368534948625732700774454335956987715232435650289752892027283669329476306038935572631115178165836739024512382401857228533832934878128049729911910884203299733598863465114325958728954983982657162281736226552252190177273655296541545629649271948508503208738200257412074262228107560790454564668508951894903865968359640701104604569141240151021430209254986310512018465961068639015969969438283402971173127315036312547819464230050975099319755778606739101615942480910986055722229279103847641445985847421731292140660293391036073801858940681483776713503684383602111216740867411465223226144663983150443219288941914825919265090999089702832016841047607985840859508543601517758415361948380172691487531528342824411598613781522662501682493581007394983483945395739838815693677632417846306275654222052469349618776610788712951568404014733307719645461504681145249662295157676353591720861219262521752963408931015541467792001269961035066123410101105024620886296812601796693348261139465570093896735780130741566724513256285970416275237306795792498088792840974534722285512456067454720010050402474781019957801485901806241594492202195724690246540274038167895785183507322699889276562943736545501827187707289853242842831830521506495124352083548668092612880357106474545503883878197537263598191362704521553570785897226482317036246458189688953893467540370623990061906561456551082765990787215900400369421044910115136923959826022787350469190845181996438945903320497883668956626781785972270011872117697365464198717012000151903952153701668382454816311899299244972643229104700157368161235641659674235433423009234751459335980172209196533140776093940624288791222358676066043088138388868171473223400681068102263394578519920762784735139339749216653236190052487655969554509238088993342208381108657344024970123046025708016599072668358180880100052967286224283252404492250487181133273202739203671328527574910217230291787206326061738954779669383816782954420543481345775549838795422887289669026997005265419999302576946674743633961464875344766384396059063612825006387090603671164948510837391972494982870310629799703837152136656142693722270893648960861323055429391472284637485032716504415719923301157322047209602658915297310193670161981877837819530632094501329092003133417866255212722430042871143472651171017320552335337522271132123495935734643809598127046623766023503852472773200674623259036020371484649015380856952108450525924540005369201920248112218222797815062668749589136018774160064369616206399624312313136601554309734910542077709886807597170849198572835862177654265119519923245258837682205131457553366917158071442448480208442872810808046694048741557749624767904846612520438203263588658847118092117288598408367337082326663100811023273749455545011035644271676996161986881242947719384916988331338633049755198135363909785498630174711012202409145448646534278110482511930989857936542787438233032971365283796986438591714613524077705441145725803659657838678186198140394118139141873444928319450618235691575042252518398191524049895810540198414415173663245776206634888236494700986626641766628832054782956377349296163650805203081216453265528961440793438551624373154457614194264629446476897690344213791477977883707493882791600406701370724938816003738421149866761391295553869974677951037134111170479469832681545732247659075339829027467218190832878247262393184251431804389730250005470125538140298131488774899647229110195582866344427883074821350086794263783070920842225456528504083947220856377925908892388967638351118672420308506753365440099172522379008426700154123410094727299656325221841618315209500566364054718332828878386384917744207532950627201160570755962330203584508455340834583603237096288063417389628759625223352634848380277117596482856790667548499386933872950741940821257681007928278453239767741149328534174641234886489349099705005820437287608737259610012480189770559619591043996821460347081407850057176854446977321106230820877365367836257004208655350880684350952067355226557801165115173894680290588943380364483347298746029942544530820372275886533972215222920900472874157760432511469523882098991009018914343882734545950148278508875569969005367447541437167241060531550898110799961205678770675644617094028651607357915995430155023760638740544835684586026850757341982839067277415086685942840640559221213547107257011897237388306761630832354028386696904500500907371904189043669868176304043482573950758444776761558735272610581271478079486145351151611707075202543568462779800505339163057732509186632055013977258371533645281998452252059240139442479938806943011812873823152963471508773685427529534392787365949771072182830303374512349687944726136998024226326792827293233597981392925600654236904339982753205768352381817282042179637319166566909933322311841691198497544919161302115930069864875922697394335750177166890238980948092959461591107777574212071338476620076729866889071474927134452844188908913254633149676183345726960340873913523990081557313853209887670894202137423228640866342941908339389063884857578603944845225641800332949261032363442523117665495109398711079357049276132939060181095918691013280571145504014210509327176586682354712071806229892854965873150595617947319309779894772256227296815221530773792892357098334813118927612297349702746086735369944982987513583765235311191834370245920688339201910515782082329937338090294533467051103933251346027716300575969909021167034483940341518420376288896580387334415798007143119362965840312407416114556499069587660927200858633078421371602465914759219489372953908348486425916821385944690652502932817876912987468206481747867278369268198439655082010086827685117557575759736624297461309671059617261010387949302221871209285094704455764693359601116328535004996735415811208012232547130254850450682797559712142930900818265194221887671230475427729601710167893360246223516017439661495216856925675704030688983572050173712061909975925778640486020771642748093660354605212422235084171231692580976145850936463487327448717035934566343363353999676473791013397231910090549968873699907751708135649831890874254906171601936105580591559942612865349404730911244458460151586428998113200152282332445563624934282648480645068720682906897303714650683103559159018321928556734029631029712417095405811851864375717865274833913161153850486473887539749672203577858121359236389903723435338250286016450319185294397816809802814112120036091705244272112748746287298789016354601889696977726940298347123922284555057451796983972102911477394994192021323909004901695379279269361924738369402465951579670901658225746680091245679545507890761191797007250708173679139104309571777845403151723681513878244770529318791026132659991267627583419049507043323072160147190961296700932549283202486934303531210223083235587527384193340551619229824201686413246409856562352491588586650754600894341108268540680156228789207204720664325283973733296822779452549911067815424395498998534244043624723072828727369721349961424678060778074983496532922727376717003325766064421563842365862146525990310960720425909364202444792485845228334868365339434363656269557005586188002141511958402981399055421361832863312695405390707358470854266449746080244348003497984738736025930144393753020404021776643336256680012253507339109960510163185817971686280777888594055449027291660472005702813597916801782278978237991052543655309936307288559721448203809331249620880277936528713896510858419739442144079712312353145446988272713955236258819975794724757421154412485781934599164233614048797212731890674547310800137201124351660210338646594328235921880821449674079815554955942321499161935706035128841876163626850287730934116143989350850737823279152187443246545903650423588750790261903483936041654906120260408238237951265133173014025768654132117029706231799578989904803634283629610061776549534519185955766423673859871367783595104767244145883153975673180462771709667417304788418173905790603920947474251690972881837270561272009340860688847735279609582369754847583014643036847150735331337828899313183600450701626333575155064255122448774489365500144975178307304709483574144143783478530843148043831920983633881662617875235661732818470154462992041220215958790848114770740894770722742910677423213494011967295389251975087989557006822469965641468757819697935311821061356059537113826432865941379958583681465418156160338615928096529638831794015927286209308519960786157000895746236696215750810571990719439158230246890633818544777875642909839203882259923953684614634345032729353126582244766694564698167988588220312505249698534323325800814452537909419872073961001360547010913252699859428234299989006894106328640624090895573573074670089359631613414061758293702441187539810503688153752242471372114568098888954142929349537510594338367140213534870026692417291292963802599393885385974180381952392574117172215182430410036367313392720035182306298381909317791483185334415548369044985567548874390517297752451025655474023620804849974829138805621529789977639153731075334637590738296790966673610426512194723964449368915876398593973769698168156527808396796687747260837202472807825887303436782438094406537115537256587862055928135427915382583509635112132896950552338179665630714225804989029048458118127282524324648836437713105162059499860276315023995359674635998729793268649451192421057227644409482647920606970360007074551034579439908399007669007514955187813567390766900736357185208523178200699280009064603177093204146279190302212730462797476056727804259983663446150971495959987614047299839987740559838773028048180442569737683006619434804850387638112507948942890208617507373651739447596231830299612694874005147347932079958613730156359850091634017848272355407823086680773441003433883364220924943279363249814406125088242826401440460052991117875874685590473256502083329530014185548109732666149109206078396752036165294779878470786629497740431638819753853021301163308173901755854413835205339572120350317940098710975955150852544552864643737119090679714207562893852391122928011102161693780041897565186185122384603964123440666899505106298285256643028824431266596423194335830987472214526135934537015065484946103368746549870871799048093831149168535831614510236514002947112583098687425081400073424512850146326530530472678064190533077031484087436849713827784393399594212029776573276006619990451091598908922984843640482975780008567839659444158718841903474552731158913200141452202324171669638840810240586232331529912421307684304383865421833578885885436540818200299054203180013908744005640947491566318107996041605795862348479550616066785525913248607233578014474763845101185125699079297368433544982470054487418047375685975584692880904378327468133978866698784649740760005095434560725894167443854696613496871586600260410973195477641564142282757109630097005635749799367271424549449395368286452499659277870709270975994384094172379247370728172036451318702773092112904715679450320875991141890869763130205745816402930504319474671104671527919023355957058009428972419889683862278357966143487137560352701770084239923750984860602818735890950544354094192393607858250430410392718708119128538970379954371208295071612311881587332608938681498445837586272410964810458211910416564587047187889133211390970593750883092920144795874429287835944340629519337534928901957621565742886259817917742306295781537092332563552075584882506016498421023072593412418490214219680776325611282219350871782506696463506203304159427237552348555973617909725523379066434230478490849883195634130454680209392317499425025767101874494980084226458862654702582509385538203184858163171145480318866212481115506768406717874568788702034726927305150623731757889355775463203326688589226846595028923614366900709860146200439093044359200762519308728509708137210606513789189617472920867013133741801410443950678061095007874842527620388253688830032295414898540379221006313022346570505542097991724650934620565699052239002522196276301324464581833572133069637707506706558746503567848011946980679625263575366582819178493567293266214651471791747779708211692156079840217312979651764712961759730761716667257274995842916238815671899887345017752192874896629172174832077242417969458565143430509121506544905226802129196807629737222239192838838713634863587094193110979032053945474230039858036492092394503339192160978675439296653840805368146193891383857071737530552817835585907552180401168867200113579325343506143177637114538472284244490260190169507211802962050725820813171539259862008382361198981855718771764970267272663185045056397041862259976698969426689451431499673116571534900177267715701134337094783930099691853338340044050034930745683728228096961379694707703921874315430002376319338866328241555218077030319394389294597196016366392185328588522389997164409250035199615508232617055349142056563318587293369522829618233939649655304225234957798902189921721921166859845239085641220418011361328585740446359226301833765515549558297219982617081324627387531248665292681336207394300299001679158839508020502654155164418928016770956393692724758164714638357070051292453122495045301302013343139693437415950957465041128456599554610876973086356010008853210501922105522904234388688991883321505944409892308297710013492261017952820080030654282249294045517780359311982102302315830246947970333149858471797115065817755361318463385618071703303145192857129462278677888258352898118209449120483840453973780328530432688276913344103595503421678778569322386838091591073489035911346193336663760653678932837096849512615503578460195744655948944145063873000635115337919848588560115006953194834008179940085781605902367438659162138850799073770017532571447889205317849023843428067114176141568220517675817370910489372335946630810693366640480010456030595379892249831845895106145151120847963147958432478555096065070083406930266613610544989035598131410990191332707578662681461782028758919007970749287818224212708053448680164693231967983257072734985391865543934436009230974005863649896992183391551231222666028165371086665791651140231584197703831494326721243064495664089498418793815840504511360503859621440250472759700232370450099383764981891772738946599892696594086851701171258486696904350670485394049177324529249981950938213375746724595340924153542099982013063534399661373465703354767666550664918174832991542080358122467444838255615683464588712846791863921034890238246698259730592718241027157122587796487907106607775566690546540730561404045165363512005070358639393961599998057356268516147834473920980591871223827900270178047880852344556309894338745895903275784759945062217614120114027416773083685173268750776615741015163717753807951950065325888048901925861327087999179468310682142242192090953844720147776955077576010502965356088751085877805915763780243196526818811247425568316450082520179411011460272155863161194621820345955866277278857461735189660285260339029456978929177881973946639141749448676432468368531288118839839186241108798308630958508958918336357112983466498456963425841265802881332464432079118901041378232711798020977419744569316294594457791604369861286051677393237224713105172478673461342061001347107084124010979236293412858910018694135357109178777733175802555595198289373271493056642423942504349559313455160272408476145369703604441252430302785341827942369014152275721114592178209397252156156029688308355428145357741361710985447866836948852424826848073243868086693654593199549881975887554528445174964607698313681746555036201208265486036376267118836508083243026182321760753546131255547333035109100293250991150046655832535740253051112509161968036839304290469793806709962767114997101736619425681804829083328996207042592698880268737232642279412200106114763665968829900702125712216351931892198600876538605951711452172521985915728967225930591516842696524610464994478245574332469535510403138243860522108371003830063049224817016227890482818398546156442130855751961437425452564921748072468892242161597967311818930284903414369146741421979469709802125571774072872259031504945770316957759347171861148986800562757281828738044805055715537134076223417754898486543275020502459001651250490519359719923331027986544550628551748216182577853466981959871244300857334033580698410017994963861340805957566185980355192104413882121569701695200778638811737188908360858141165012196646708002754872961923168989181601012640106377012054920613235563671947877284497005430462557615642372417204648121786034366575794406469851910413755888043335480268323259029733503665176566988901115920109750725309585228273692675089205399307249448807043718211298073139311962023882402315238228972162762511720713482149889447596173356076832338479657158369599249538363313110155757267142987841012164004511408783808753480218487176576256163398371523570616085898017287138476964798022990491478685109830245027004080649339697006985466507881492104729033713087098407841541337217257012228295232085447474093455088572714074017605846950689430638139551626644309471296207194554208264212319345035994687278266908242466470772287661846258813805973082317530020351749129861482270642512687787961065111861101849176108435075845720699311515876300484111622100130396676373977691110399992974361015525812449333460697851389550719323424191212720402370201912279712149074462556154546790237547979233724273566269141369519708724653028786140846041467939768414407882284499903960072673746542760519741162300777126892376285732182219226921162390912267577744014991145843468301871564993169615669534557701878550026938589931705203842160325256635948063675435873261673769605713477809043374060135097368519076319813020706026828179338012322928153188159924267861039090704490726866518844496763094300142510544041220210128729014834148692647616391493724806553467756155766258327229218816075821303580822580402429196442286479401040008870138761429123456346815403583310435264349914021124502339779897537095662841237941723285537854400410170970049975215066000457517354600417408310460070373680390313666871198308972086063845974488865455400569479990537881273628264495560891261861918054117165626032930567683477548186735028568024730066024635155042559677260436061796606749953879010279233139256126986965652823195293208478415181690127518211226953928558861424344751262443654930175510298344010079267404007864091835063003477632621630381316875021646449855014793891445803822701780569221985437319138488880483781082134186315346576393551730346091035552924442259988144425221627528092705742814122274097454457345237349080225041990239905506649971951630490546465841919179393851308023004485322636984913817588606333741175533562346928546243138667058674288781579553649182937801023288602479452382346590649810492615482250421410309398138158038302267676794581860865022490157818148411439293871032449928913405823261147842720809363340441723724677083303000315004732926450951582787026446857878827369035473082502695894586385281605760927356436508722262688711999654553437473475333480673059829833916531260905426561102684400780967061276416117603170422184703254794532698255750391049750844298601784552278531488038358359877254394355384466658890054530600956338410937275852890033518568819214091660316155400696527558239029164317826587261836471740031665792300236174659301331786189848968982849940758242871831035084671952982017144911102343326915880915458021546081043985240939230123800501123661988056490395473446081044944465190570615022582798269443414432619539460109633971165213234587541306167303030127331617632375653699432052881654688355731790354511097826183010413532991443963251882220450126312750277652747665616480619879592195246109226670983369122353086149118865945426262080838350132069873741925807383777155367170445022133661054257540225261592627342461984043831177205720228196363759213332186844395462313075176989468618682384298594971840009041440734778366893094218575251496107239479060846493668294816296342116223163802009796370256455637005037569496565233822208727856725265798748267198938739587900695821839904269225537885610276695647748915677582932821760626936668222432260252354991884906283876558954056024862826661089570619430184715701631454936540568001808667859445492161206018002467554899859114862722043555411595728853256774051841151358579505564942989302720035031789691335325487655804567380519093645535681730100558334433113607575391304697158802197884249024283626952668997087776184831577019548075244432833154686952685020836955476228321838703887915962010479748816277847386309769773127624228746131919332846187908894544913880462490118280570283433969155526502961700099815397218041510348478579810796905525439193636871092461906472967193726850788849762549902577712552227311413937094541564242224291556586309339638321853403643970892025649753411098109190679227998722767590598491681960753657515556243852879394753989397326414649312045883864664161329475186069319485289325609569745642937068274595813086637250054557925490803817207030572707148057230325184767342278209225795546648529137259381725520576150958342836417531960460832892543636117081538477186592570442488514173951716155601599393051629225038520130041956435129986445987237317438770266335184970970770962205633091258598875895551477247806023039970824610870864747079785305995180103378574656217019058095968510746393651573106555572283638094838273301443607413961214458552574464565367666949180950193459926905179134732590257844583816532463505480911038767912148746312124224524153155527332173820607818491683949814309559858048685698457034387041387802035901066483021121001322545362943040864035656879348202918760978413025963970932604522585958915550153248974337866330732647513216430515100006603533879901596048727859796165083526798456933275117243105822347543078913296965515944229874040184054972741533112677145544626972675819979526396441792618522228298274592533739310508449501548764706101074738831828644311389193384181161399565601368279420081279624814959766411787750862052398867635784438736819630347930789061486283487096948560566007351984782739128446101518004959959938613360557868818194545576788414026029751043019700420037033744089711934183761378657952272398342528094322671724009066895876222573389412730015450054089826059118964303885824470467226443961198947783838720037736183989490480255787876238944262956837754320913805017687609838039928002652982204034003843616960367143058904388506734216101054430595059207595857141264504040380622252072395692465173856389896373959359514147299798675425583015800831433052174981028889469285068831422098837801557302555045205013708533530003413950467847146310084317834144886978896656040508591220878380437124713853556755438715725056257608624107263362621390403929892224888275213005532319863716928612833615103652738164931167930922425377165546868660488298594171062397063348684976493863292103745065680144853189754456677553014385586741007071240608284560875049574352173318916081940003769727189300714024242950542627752962731742987098085604805433369343350295248513914843396384097521495532589143949028148255903427934690911301172116298447211126725517571011145700456755181557405412238721763940372163320136081597560144247245334127282449139800124724437695215390083613532780315045697300027580442423550893517623978566304014168296993936525625540209166370523750222438347705258097860397099281205259502019884435764849777434693111607106163897509402610939922092082459807229194551595533597733452177017821956335451970678369093871480344095283774275184176625436029389395551565635873887055622681107796150044034676883745315749822047034819288203273958028251546268644036606922414260296365784846143795399081272904203485901931174109298178406176282593570949856731555912702308318379400749459450553061007234502217227429958167813953021453075406072292743846986627129111475804808804222137877940873356400777577753987548856727053441951328518031574676244692468029782750678544295009790950343629027843764635658986208663394109526507118606369979536165095269263391513371878005392634159317696870193196249290664069417960114434258070315963208613882034637780053301170121360320239244554039335664892838520694433294693491648654706132719843193263644982355402153828195214184461477695999504358791416284598480444060350500130622547953952171482841693623444755419082835633759355066751212726604181904865958893412279761602426819127074452300779251765305901159180073559349061366757929889506157119840077415707099201958014862535070347650445065692574979848276391359898023285975852208650840531854862835752074578146793751596471131191551317860371648653517172174217315540926518467339788646169104082500016202933208725972093262446102776755805534912600137500095666467808907312895662037834287870349474018339021545340923050806230423591458296439737396148683889636609824629266784986070218544455061532716388916641807115434651052792825026436868387705374082864662878171472516299662824418292342115631242537412216245483817880035251972646697449316280847254649533433448410497069844288386319080624059879598514089977805389159035526566844485945687267663181590870441183848635690514721782593393047647970303224734239081637726046449139725168291739821255113270741700401752889539501491893130589881903093889856841504454251870942146639763787987496994141867649744844953028983801925520704661781871397051502825253214705616055169800286077650161901751020275080768419936794776576427811126635295762364310194058371858742016154974739647732361813124687207356273467529091197780909961442620317559545296923211770176376171719795812076620782001862513972795140385892101656846101524038146845607330720081241310654406185932636124566017971879130554824639286650628515301184855681645265513445987550370655847935849768698040341422973685458648475281321752010634422381511836910810913849473693357440921626711392234983936856032838119988237170641028906993682579355774190461584590472075066317976971088046142919321008385329180948669994511608794127420883802445177813949744098542690790908201199325727544805053697960989399233666546245588008648102481591897416838501224450900109635758634678228768551553393318537814663084593833273858621371738120918683370965459856929155999635645536869763916877039049585934474927694441037775360045031684871124190551379657662917346264286482507255633601787034742028917551073144779683891226771571404365716912278186021908423665661131145523844521394740243623715652344927729656218747823725548796610568437818621281936295790106182564918470564856544292997553205865894583342506485522615854853860865964432122574851040091596673675871328631616101668097368432485769556339760340930517477862703934931892532617310496777402939326139613436298540183169140040463431733838958308927804927912324274172095382803464686907497102848594655641145187071257067649893929746238118227577945891088744905298476939654934978319973633427836576392263296642836015930420684412698802625901996618326418482397422964421984202119433139059782733800138410419111066046823646285691931547610785150232589658617666163954473129871413481376041232450498976525471851034169114259579722322200192474519252698450476829371838362694181568165991824296801259062849533713535746543101585241594503115278779183936845250106701406562577635851547912726925150207754806524432714249124450659451158342676821348360274845543983948069248475302767687924379742298758011987577095366878342246245985859012558973360539816036046779063120729043815879554036912403778699898947565413247282063121950774006057392262588632069468953250294129307118587218842785153852636093060537875343295433447969269710664984984995372706101331104572106192699984512611473322282374719459308218557430190419960154081538209248331868334044845547971244582523879620044426774602438599079836433314594182607865303655896927431568425452557980716010494566462013701841541879102616673804786729478703694300131556698584197341555172886996202500641673732063116803196549083899496782676512068617881026946730298023171370265544453491662567960016347964566889936518436979197611954869902917059919231132910558391485651002251628410214038948564403916422994248648084097086126555707418477887931142305502228592449905557898964249087488879810584198454680611943715561802800532309233005412255936634063716805326230228991223388976696106464942896068297085635198421962988232688887308792951204151852551317094780397301327265261110362197886742456297815850094272070650817641071242859544513492961184160816158970482247002757720092813626918336167939537577920604993626365238611510879933411446915053421853352630554827463164583620339260795363826489354125286511601895136848515828937675792160247735723685391375957456418822692431946228755205075387014071879943233911402903077363242721209215276245416068042163298441914297057384058874675942184877590636143796437591616069870412887510686264576194730020322849424118338029885331703640516826370090681023606099269496641204340354232594834379582848353836182522878530514434490067910475917939032783758617468584484180447337147547050607836890029869644956653550036570906061702321967612491734033810666144922514212904925406158141571870178812512525465591394593399193036766540239417279469108341258466180798949538946271777118446087032896537577431123885754681873673669919714411662762602263111193651319329728515630701127393156755297427332594907822788835101008244879141996953644067908485362434720317961110809991751403497293172645484018070649672957674807468361321827643979188617381911545163258436710528176854228761852553390103368186525201301811501480426932790539364409884631544452679364092925799902420300482665786741713426288218916175166895490427325196070089731955823880813484544655120709541316684021713987115850638258176160622446128234842286907758533905793717424187070469359216748900489226090657301025958853768409490642164578655436012527555725906515022916852180926677381294635139539235447224113421862673672206094701064182231373590202147486528771375294749346559130585261649495874240953626580860074994303734261931798394599861761828553963005981846890111280627745784791272288199562140718374696612128392513372955465766921171106032190240134065931437066769890431734344536146126525813649555060803374876777440895682462557375327870747689115075625834891785542070458980524046695861429475268933836905861117419759305579701219248973598046188489705236998301918649991286939691691716487538498557262477302962503873394334445341831472526999828386699425779699995796530055237639448689701607353494955145737085075476731955324548836877482036207325785367152552566422650285984777877937696050596635962487146689307563375177886780899131345585651653937481723300613917978001199228855588337951356505809734670128704091385473776075741054827546598283210332725223391232241898284111743499809196718026561331249180617770639379096178986094115887082320268242885649170269236756364746305610004591112596056888788229992745910444398264709867272218557249590992417663455523591996230745613037506818414165222035615309582821171083919967476049974543022992506091819169210775602496784521453275959698429900049370553325725440588607533846497108645543197650276215080621355071354140555644384613596072092175631115816253732573950596045859571252607114395107221272995307336378637887249373365540550411649386338108798330346946576291817458116939887226993021248753624514310111873191448461887879266586958091555603223651718752137520948548808466469854019664189291217394065326410396763194359656361056077344346487180056953643897809702213298109711301414755393472068519687117145085272751255296224733735207223405507610663053466082369488298991338581101539541210508148071394931642741633417151234227682195500080233684977316902380767449780083794613015298329171966621871244455585818531984579120960338825300324964401423941271152591054765312605877758249126635259513303983068020176503416276802494552371276821178012567819540181088345227038986998596322550611919455690557136921220055947432769901605465490006625683830423470216323004071216211372298297788558559699558101726175710121054566894421154505362014073059263501340114684281203073229074956467203927469961479622980753330316206232778854555959140075077043469950524760591922625897505743665996852538803174592515531434538791699617561781724701580238070635726887107027476368358066820864396347428095211048448241969132903688496631985199297587636820590488828453583144437009165851184336015667403071473161372955203348886025053856008790563508028510703432227756050686187705830409197429420043230186227210110183108398396902512480420644273580652558624999587211480389535015450123236033797825294867653376010475762354546012615029549426300939605009442666719767125369730212184831162734267112868087353613471376728206583953549771124692095234799332418300220283519095123292552753347639521393388700684350917787694491879919846188844988992216809338940356192641483873389369464928922908716823810917524659241033304442532582824260411390293627770215075416623004803100881125020170469479664188892267519405607049810107937289420395659364735939911613578590323687655344835381472619382657856032253207152529522506619567733353978800573875437417863944727109531494998858111103181481713999948723847749327859941657448316919270716702870286337847842074492875349786900645742049765540077142603160461986683438353480578033588734204222469678849344604427742280485377311408345694367218488604221110278727356589277613727938292229623482721317474558375065070142749432917795957329396066571739285463280188227413593086474640521487760119388409764754273995755907244437020817042268367608111482108321248787858929132562264570841100211158832862841668375592993671101776243816748325964510070236776629759295954353689339436943343455272217165982204369182436454762703370296460293047710605009890348911315135017727595772998572508980291404141619458018684739467894949324770325870361240795235936481163287622631740573907423655289898748688501483036510963783116349804408642452863193471240239011322872085948979504627358515113945982128157124838463902700436857425297337163362531483917451497466540519748861742125281742234211499903231772893194719825319631123259000961895132147591063505548348725045827775106449937105998072759111054849240407357155652225716006238647618759403274218401839963408252298517966710171836676647985811410990112373164338024833293109063414423799549505026262895691672284861069698745152265446025354865672305309581039869058609470780820397514542775428691439112697797777148363554701012407277439074334078621093114917135818178406633864716005133295511031618847508496804353305897303383219695428451117905593440202928890849080487698631743745083450350432618418523550199631491913285637557037721155393526520036663517327863588306106648970821733337354790596616662717109951227909658907859738976769549568186113900476428611751727668953140261769561550352859531966613042458222392459213165384416817280793737985055710150045790982733403053846139962796554746042528088109710801260156187313894558226014045001563330494760503466391673350984669493638197145274490288862203230351157978235420323701410576657387032244125857322700936834297116019504799198344912139609414589420298729934347900344989905446134594044739867907119925428685601830423675257028620845846784002652985012012841933544823576145070539306799254904196437538603730768341145352626441653891732715324625735976132983603581788917315025364782084570604801451309585161243940920279517884469090246782610554855410205517404668194418413040785565447302024293869380674990084413453189890931015476352181220200102301237252885176773954603343042961137609010409479907789720835850298585902115562123949493245324940955513691081721029347504202526080091618750125839385375858429436211698637385796459562575182008777143642798240240194973555788434083994916075073104511564743769518057445345412180369849051190881325010089223973860835707393969024226465645663466220496576383659525667134967873816490258610398730378359370579423280528777605408307434730143340870399709957288922902873640601040362607813615598099343014363060997939845064948061547390403849409494541658409246615466287007105177347552188198520154089053842380345703190268133837246912678548362064995311982883580727327399470955856426420154548664371292046957688464163235432841148570799071074957142884288951963876671846198937439923387580467220312731409282318626522477369315396705360938654180788960163130782034882405984954537677000564162951549563616000547794850253677355106180837797045378427092580677197771508880006583170235012392971082668073386645340262978345823550190258861694787349726213691155837360186384674787927980477143971615700912745021906509739908855680693043082643140865532511538268761679215167468325263272205337755461025786905433841557457346402215965000217551550064830940021683123917578896055347776184795070780011516681543554730315663784673769297535761833785993269404961317524293580758489077996244773645060413035515223565480032284627104380121195897067697264005687759178262218499126101135679135437423903175035729298467830902558435261792129537804977538290826082154523491541283015061962576592716892225244648997030746389081403810522589467818629519040342801792261524580569329828758931062105446929172839543219901745530955411814445207695472575624036812001039673207558052192236069612644909992087071723822542194652815133340366287867492478521517406967933407702310200081808302111701872196237834759571718125488187999486503473643140844763444419009702227932087985334648034550151121888876763741429244722001145350521090031163749401741794130459940069521835025803169584949331494727469703796940264373901796701317760983015175973093665838498815199732161837831302001083792550991883179141081553977478461551581924630190559211359805521597394846680227046245038356992682682179349112371533687470935471030672439207062188168895484939273444947478270410156274051730656697818416785342111732543681267121422546127639460012253070106513822913076109796451736671576724291220323486371898674188199166496452528841325267639046689223289471599796238139602642734277987852585400668682988705790299357063156174906078998038833139576014492394497391540629601196531229183209883585698943503502473973486600782912906753597498513032076707683806373869466266528781301505504418547703552826002932418488314615083473837627851224280777597415598610813937164272430806689395205292821358606233161511917852573822412248310434380144413139070913506453699784829580618146190815325074701033231443937210352439621603123342144385809724168123280427496244135611211968559400451550451764637629986391784722644331591936949147650854662800531361960907307141081457352778699569622746422090861672457670687743032651813588657590099844450010694372806854846605025849239030206554010433579892912216005234756233565125073190785975673747739684383728493332312818015710060210554487183518902235184110393303210468853771257657373060461191293750148507452002362969671904015022179367736389540699062484974336257237773452045060145012687070253188540070310088381518995169214371185522233215023192191182350981182008111407545858286602605853819578248840201481281716516408413850132012284121639122732234261519173233366767239952625028781471264079002661656539258076510547835832901190419287656158763661845779480743332518152124485517453462870290143410967801935084603357252952049686108516146768667157969924760044674548975466934028728565626286330157441998994092712350035352261398098701603124088864089869589686573183591669290173929645025966122338763141483037808670048890595014831172638470335887213668180885068339693650124267010362598775961596738451307247577236646833077049413480689809837117022994139331378226216582398279767323299776834846772651986050494668624021276154839656420976179413226238742066801560207793557240543992056670743237310180049271785626248221280187058324794414576688895347412805915612345269393932480428175337186327742368859244729819006229495822509720968489696021873865749742742689926208621282772267451838836588430204984926443450653977408331664497634018113509398830780654100605782213650223578537137972445664181703947960296658521186686791194349692910778413572399772783646002841586940511799445115481475798657576661295098990662676104916902229467065468771112501501764468204758765119255340774708645979685635816737985270758976910767562153288912295870450587075413028882956452593562125152487011535042000972172687774374507592370614757880622807743423679648788235710659562935444464574567377937179826294048072162120966561659171420572985493770234336745984861753259900921449574737492164290690570880993529658379759169649438830786341076902023934060438734932164379708798951621811690088042978034737366821526473836504292041494283241598566814857109804900829981131290410632061955225734569954522855340544048100635968358606644639302868207645328253378918078297852059130301096833960965770626672626792639372407931940098216284640799856257431168519558719230603525432338448468209035517458754185278323734288648831497368834031807736457000305834328059385197622273509523513617819472859606892689298934057586669768510997684180411184474774099661169246003363191009050053093827256843647539788211099570323572950031133023149351582976808886405521685319008988174645693761140481809462940956706382853321503269893791453848942880364203657618632329137045484663186206033411439705277632696978583064853479345548823679831607506762062676737524457302022347442515491091114307098426013850650771359313736261212880946640993873558138490761514416404652442361728810875599598308511742859093894306747370041841239518890057649409029600962987012142686619725965692216640135263845688530168763292688725421809991192578408820079632820281220579513658642818503012637854785338394538156962754777629704293055017135386629167410144788579689143655981645079831452547380929808765544382922499494739443500345442900908008649224450000380169453913115604718423739689560453377356877056603090971837528333542029535158315800907806735774818143738981511730669322978289805990275483563618858116755689823835297882005725466812280944575412352415706085024191523292638632240180734724736308835863880306975526454127360712625986843108659439960557679407626346912784802785062469153874005271515589117478567462875063133295771750187244359991863538194293350113558513608023680710301321094315763810057069560432541749756294440936232418912526650785528257239609749411412957303262200811531332875831191422892169965136259803054126755536084730224393826920490416334409031135613977924390089157301131483458565994397182618138452113353623891259711256662704312947297654525857078385251267017805488822139379610686996475036212967398443539337647676528188610070260776807344966663880210858552707853316272258296535152329624246426784433323387621423444829743602682168660560404314562337983419269961969695044791662644913576376389736193355842340220014114759893153359848716657480258895708767004668178109770592534438601483147045032444701689729068272977861511934831956781024790520312701684134306672242858172337237715620815800217436476791277024993039130207699777928145664884902233289845863609949863963388888013458648883420133449392184808850531390206427046379051962019705683861517849135163868926711813635302315239434289594034242371586827205165624947780984381042497540255665920456871955974701687088446518529099450557630314645297863445941535576880061806097276324966437046618483438209753670574222570494859576118307314507688290676706044799456016405753078347552341732078485656482182972273301691663853547341288635961940361240060547328843610027764553503977864174224109979731572545167664900160268535675520854447668789504869801456620916956962103311143898572670734322174753173311580720385368367497415607865447087776372115162287114262636972768543695012749923909888556094723699699076441957445255966220438295714120959992926113233980714446300458797415969505045646838687726779332908792786738009871873765991064297159850999553838895551876363366126778451004819986186604859346421988267450454631340148175429132913439121365094125482688783674800473755449690788644847599230288078153104150240631483496176342087951022740759946566641971471468422740212708378174222320280868519438515928342137804476142056773471079629823412920834986670318307843239711034352155984876862334250174835335791052627439237801424872100619632382213045898423151315689632211745218971992740712230042669026860690884690752186610528370113730733428138248720170059778431502465946819350408629120262415863784491631711985073944552682349171706227144993585185190827053443869748318977335322705033610460528834964744969856038014820273550917451865643908937716207435403859220421604060304150847668967649472734411089156379132742294878486330278076651658694695761034527319285221885537471875957668689055798172037897913251799354742452153618637319999962809650111249754310218965735793107651714258630290387188381130439556904768931716563598426568261417815341535557453970935605883952788522575174085141690537939802230259662745161074091151707836426788362365153200649871118323644753009726159883048643284643744809747951613905441963261144078709004204052583769861746955867165343452581475423331794885899562605518395423965288106056918219666586143159830037021105965028828672059309581016427453885115084949982938353316775337321515034174576178327682167953202366079609010338610231621355036629368846167241557052972508150333887440045454399580565631303346856291819780149527087053108326177454591695069943905243183212433947201371044095034936648706659036893507177598438589695749179005237823132886183137908587113146221208646761721454779547021385551149341472529998668769824499793137686180590700667987288179765150016235631281105186023642070478027259978118824960262496832638292172607648467744270345143964967049700340233210432392384497233493753037220695349976948979372605722113773661007510671841608513390074226375009440309222701730897092122646654104781782330047723172632241766697628532977909791226134843593048144007530035694814407036523686864642141602259597966226753385395633036473790655408898418745359208292985599981235806549036554753554891870462602119840188184632772343283807139190686826575267729750610351071475160642219045179428292747749874899062580357889188782449665200042629327715935540258180930476855893193282441494059062537052824928043722237756659259719276097003989724540892052818799849313563541451277567500228808865353985151945469416425318994911241104624856630653588217579312015108460924364807884825199388576966812645488146998971238044864810667699109433199161149831344719220470061206876538548638923427863170523507494482085726970070953764431428035272753523067001413266355183758006263246388887198931713776420973475024531403044311434064377268856231160657390162057153415100029882080344987468290048713080032184892886170017099414054595055964647585951127329382123341893628980780351487787803093155046951176400022811681266960683259990826241556616018301254104004521272167808880972872922242097166511778606835637839995207291770753467156223029780099872669509856182856148630890011935071017765474194449430432764213965071387961005168605943104664419960443616772625123522611166424449519079769970126860345016797414972195426235846258205176004596935066699794140266616502596607795129251489688315202697399337936871159713951390735255226785455321913266744308541854643018023174658477096488634253944339871653941527299886662012451260159277582951769611531705157555390369366668002283016046114344825982923863331334130816248128482437593937452864433067446449244514366647390843054029282153508280099626318588762690796862952543594507303432637727326657156286839465847983278683110348769054850950025259778565664544940683365589808491556599296318716077075980523155901125366674914592809288465661060521475515730748687873944200628396683196692205765035299303144908265634287668163408965479269483492012725143213850585214488156483848348725454229303151794456810932115678936335553078771713634904704845918447346739627837860466231632486013113349656583645695377737164004089427330338578299905576200883212076051210069581972666868290069252005868815685616789305310064172800366240820621228629459085291251290460613075158460438748883514260725003464987180118054969064091912415409170706552187404905667198998356020813697392525115064884718424957810507195345079791161240618590132738852780383171999708890585589436514964926937816760347504184062436675646525544436949724128513087965428701330088858356194327061603107540460900637324457506011138756412811119304958797286544487044272672888786927416109142686160334168045817766238066747831020190386224535297174064485774202697497223680884142474499045411833189602221373636307357710983382539518243186254168343857025450262967482403270402449679644449202350139299386246696214929622233469063728039410391847775071222475828080771648156285054070734161747391373001434999331372294074342374790030719261441068210692368733250674044859747301007665660011346700403390622383769642881898344468720224614716424824606026070629893688181822590091169979234016921815359892170220895108820666970325054374038468241229873239889639825690436939885164537684868417914943339382798839899692316101325631253112537022887863804085732247858153639865821832315509847082225589948505440719969096207085024484740641706077034873705453262077834533218311368486152898253063150786102407608879980988645482591927140421023706525376102517246808253073178226238177126832767250390408256875927524590122136210466806161652344633280754949808298914614090110016483079084962954866903990825758944601900712057811115436359738761373002951860432380845574397163259677606400653428397498327033768977941875020530022124866608559399873644635738378705000547393862588957333309502244532993907021851355763718922719788352088393342769456721922748938502388289570380431744948004114934508315865657939049040795515026827913901814323947023410457350342029081284017158100794495320774094017383845134571627461297770129599071495092624031247118712839841974533518925663946018459738345987233235055785603018832385831326715040116619750694572139555568224584913233646445578318423550308885654424096572449393639371355655660009076104515926239121871913856310173520030998076362676476115065050262812490256298757622454171135995249015056063894408451041916417625135834856746319002609658087437324481552879223512777789192249074965425632654853141578779231768534841623503036975129157636203095215516698376130612685823498193258599052802660819283672751682168087608391052496283537808471440867741740129982154345774265508873369026472532693635176132482981820110703870161512601794080318802002768417141064695560541019856057055116709649943339184126058474876439713610902663895807271835081502538647146142038834367827549890403815470760043502738198600552928364651885223072915250197541419132467719525745417127144812631817333058033122373881281423843543767040493609444100166269834205881074846497490689907770401842403327217758287321504873557965188041996452841456985151716787482173748219092411420512490339513868631492810445833294001327671769746489439467267057383817336400758536220775248675630591657350034197321249680374363337180267705419330749602407361579491432736103398068328574517939646599041121034495408331351654400338748045153713819596932178169077650405235373778904096557639356573961934955818586572439005311369081300518381254197202194951942355610628476243824121909681755477551932443207261787405920118924408538758805655878212871127012196082393737972058843300913842377314325306248235056733460216446826157257947007962934344075649996532772773872696273493119484246250604068911641490193573403822273147820126842555804337906918541065605577671608950959074030011334068037341905650292616735885408754143545627638365723927738603738469216761261242054828745582729370841786498185964085186434796786743766309551649212038734922448180681272687725867939419503662549481317844175107387551435156709033832925151021598100671919398083204507980737088885247874609699664770890676275639313785348076761468469498668203597463594898855380907299775885267892860356880121105235641301355817968833222426094437820430123455524215248316586564204165039915503850687394852374997248741968388579835106577938457585160890653492268595724114032915955125796262297620382420397698835073747053098154809548328001478695389528757174579145591959499061894223761549870231811713950317545802171374317139377913404863515597659999246548613342456631304346818441210428049808317921327195031192514132715008121339032352774157148407751374129399665068902344415967397184655289960729359861567536460289291024130324776975377230723520700966250609370786926465741982411222732577040865487384484038398328894383057888567758425850603511051795285765822470662755741923125641568999340531288091791618868519423407647270903086774845385858993440556736617612289570755029441264806480730224552569697530506631808551756047865916514884332925438187445926914903378277130659808965697504694810258620671228751535868252021086744495848546528484185254594223405806581264350972291866652366700465462123699916276518930045600253114725216570152859885436335176438687709043506025061699164064589514665689889372127259759755919857024952987581402860706320291348889792276160985053072088253608335349331077786010355926250335289959339252000353524172689846563639540756969151516514372743220206496792693463327285233698945716238317165362239527809664883369638716553293347297641264511116839455196586057498063553605142484648675614685479907388773281692969427279841170714998272502954484276158744800907567208306790547261152492062164981004612529078917169882604576396296041016221476288563813425217523143359824603958153436330394163400212254741074937359430339143822817329414152871608441280778512677950766898485298712273432207323288860358075847789987116015116019205245732947690985220286560035785954459143422081829466293661945659514975585037112256540138941916670775110256689891567622617941934058908571541880878878538401350883951404232879526789118951926127219950687255146174784991477997170125295873486043312783100059739550246013696759870894721671973089850009791806003576135146617769173031083989308300406187592950405128867844259706889553378015632883636091382621809613649666257459069641110619399058617945652372630266571021872150065843848441741012261268427692299647071690434037149304459005725837701262667218135849386033602275780667396684114758206115261100992595021483644027140242198018018123340551654653162187793133344515932011378359684046849011131084569389269250387791577522390237107536930289366612076959537324452666679508050537721296953235936518998504271072723124203572157841565901212368691316187040232094726574462373204778710241957259730701254460303532212183901429551202712186081271720672951365000645473274746054266234198158029431961421006129335174169281492669158012763732471652285893614119700891954760663439644912638816773970505185690894310912759479970859418208218663117467190425354142147585727438388814267906836846279872572014716382763459769347176656341489180483423871364924966423243533012194118901209921123002094222428182139937226533812833943942740643350126892852450998563335628603152077079064371753910509423197964207297613512788663493312462617115625169735571491128160039159524772588221926982395487308273173769880870877558292610005947289669837998020167907136368422880930457453673489340141074821107713181514975263045753378058429732414421557794750358957080132747065937338337402175423033479722232796515911788667630216013983035392246765745464248770100102029112146994261488206015584894245304524210698154933243901535174150116283212921388276550339903267680194397064182426354261682824731501254715929419536082581339566183763416634393405554281726988820974192602400744270292782421849360964461209517876183372475234857473342423704894273325606399125896792494133684010760502400817768585335215767715586019933993512525237193795459661621473957305670773262243998961552028289994812248093234949394218568142612598297963656812950390751431263904939969410337721672858091262094293534277201897262945511530082857420079734796600930773432739422556809183862388094719911664686025262976915431386168328187569625455710587701887983400715697552206458764200989441128750269617888121492563576317219867763638096511097613322018516656355521004820561929214277320270466137498220939794392529783694473406687352065223700168673763000774565906479902147360532855354550110769069783180826240353456293095949637649812963882966525610561086287506967142739729286230564398317076780684522965987723745666556727211071537057452114812408294855993490550803574855027267029376607069586217381728199286488870042822549740147679333914439842803688690975583978311466655403494319699788370326160120981073200101347808945378368883124117606695721250298798936045036913368035139098752703305144056237953864789468308060692031226048282217317991206636866066336619729021993336863712567818743620777459258581268523149982012723737011914918223314964581598006514922453948931017554281119152284484720123818173204210147694441281134179133625710091836802550602779512581910679699091786107147176652626939376136250488504332918373993834270189378091320507346589271089910114246954186527674648661692952121029361545068130161607560724485009166500309448742633071330004987871146164559089011487541888046265887754330364481884330971339562217839152615907236379353671322870043345905644471234794557596998589184733772507849147206382406613262214989102705418520584861295232127500278268714501503362911904764381482210084709968645658316826488250530782039815038099599267332294434560215520707864573029673555809578121228573083182306763650442486954356243847755539962360597719161861045149160156547574161723613609854193751744350487782331184597802093044263952538360234976483779262904240066032249290712364244779822124678312273124250551984390554021265626061204537272054451631551603971736425729202306951946647251944211147008245519273370746771720915937452087107465063488274466152428463226311219285060415576098656222700485286683395823494144661815834482441963003328160088326057708561827375884034256694557855397125514655866633151224726463542538911207032438784622337013720479080890010775491034836468105403983336173124891558839113708257906855886659247742333040415062858704737293961239623488040374858425649918755523185979853133354234334032660243195657930321537596758749822937800051656192721544191693818538265674110988253856979872345965843075346969562598390285751549408466906006584706487955186558824017039638004376159908696044538458691189252756881539040836070543808339146111737669657761995456683614126217619773895134524342921358055014149001933081085901856619215427251839692137582434998753201160563549931421333476358437550628226922994598953507055670604467610195406642947447015529537933161742680094898082302813774985474640812364703515326531685175352379172222032986828790997202661498802724506896795139485320678421117517893323288121246375845965900045820893831234230014121226807838993133762185501163333566893821732390832083440731498464322810604547123940209151783853121136715628447721311854482103466147632319137657686147661482219290663148488789528592053237177923293530187087472321473100985798545671087468694988784282169595738006323438009100968908190276320638909464625521722092745224915522523369607389807709275019319580782012956318831520900325045204004835438101585672219764168661111801229046828223001843473392666851766386296342757774516619340782772258533107273416528690425509848531905066906613750435609457292454112021973750989816216340631492905248975103152977429216367547141602515044867063821557208336415707961917216690886784793667791357284112513237357620887186408694728295304003136588874139760325607996924552314108737010845400646163100219746187308480226296687647039922892715716374205731165546385658383208514723980579755313855200351000495867983352666959999348080490660486204897402977636252822130992610804796556048253433591327436321142702780664935431880146182619640753987370175914634334684697879381567934442878680895990258199638712804493867835423171219378051697761336162420560813439138631596527414755263081025523048713965167516144980674773743995963437120923566500288893995063662791004635575679620517544340234262967212951300288951372472683385347890188560778443024015578490710120166043887880343178151963101585709787798970535323544631872693945178649936533580146984984253284278082148211389869983839979145256255160423682724608689879929588473999067517310531782496048047923274579293887602136200125169428392449997055130598869471558135768094543141411615270717295446875949210902106568307801171202153042954771030019207580244092738040136947940487577307250251686625465395316229684178172979391876740308456581410786502424462929969036185640435736630915861771069001388029899332285351201371987073895871002542340399918250411300649620006957630474921043207567373852764103753970857051526251709246807596372516526380989219830216047263812637296766531263403946423562481200033483820631408927575274501630170997515672304485911243007192392434507679515744482596771888005435370312724373548275153062850218238874106896171333681244415941651731149794749881724372964519125170258198024323750211975334737980776468219527159493511080999749411994936909065851127391431569932724836900792352651721202350868575793526252469032078039180695736585748380453221003387072491448144978749289360838375860391117175703703364392253874549603974981103292058659178507119770978729697661381402252928687768276442106844681318811876569596793936859966285354114482246096017729713450917485121836475670195184372459763190918344544125757982579750466440734463859159487087587069302954651947194103519775491615179930086721858216486670217380340610395168852217395373101687598915905650536477529106880301668638889421706998497226960345453587123853478574768041636283594564772921152896637302114288713388481427366681132722041985641558122233751316184296099762447675728240552375721602213905359443208694915814760420544123011057778541947240761794831339444682444605457367721959493820226135991869893292406265011100401918372698191438951153458741145009434022345127980606060066388023200650306417590163557263379876625853275187234618028222979232688403413562450019210856125678894701915679074584010669236552148860779562982168847809226060927101621683276749576439119959539026388486015861463094691076490410360332141039595549618167174929662049211847763400476959167592419426211508088040837634618904433187916548748797230772724778240198215203640248258553328201286291562588184454953414181518275560723618906939898779967707597593607204891068422474827761780500768976830818695206094183437495812087210687770582678046339786208321663805468046470037873440941510064240391071449894670418073666210820401395570070490545715867682302604405585032999504768372544540561821533798877319826243939540877151984876858447296249309040088149336140266971678135173389491623464970053142798284683441881872579537327441629169611735201694637734168578892504269934228856157439106510127341158745369134547860129250060830525993647134510241774793194137522895975122244263760911019207393826665269421801734400212049075534543700180416980741791191031737943875157662296212817293358727689102757036294808728557212150126704356014557947528854998367404061591147059844059204868149555360363083429236484206184563976194160306357175835940082188516919258882086621574865212006825567820941600270878687364518818425677915342254233982772195245213721100602231528053483528374578079572869340353060013502235191004402656636202047976510446562671720221413973754315661664814260960955102588131110185849163630605167932977670232832706142480149221635146586299359175288756929740795507866952105820894204103315265290104849692710566114137295210056391362967410412462412364888264576884906301925085390222432365186087450863470861687357352853332063543309063514210733934207563936950229361888790328893025350006509653395853700442656832284170544870918781552563650875511893559223094994457210197232159014653494962777407803758309746463825123844147280469992118992881190942742273783225556851413315291134133534418969053872329765668385184345185046508653139360315512536132642244698399494531944995477065767080880434832228709211569768811957572593819979262754584131192615696677267631208071950258546196558484423643043071775339622072096361617173597964334111655677345680491453868900832335754850139006719001706284206269406858336569512049278779378710890230379790718963509312420116921163049583606654537674114213782576549039761787877616429032298073099982504899621057572335374065502402265678807794447119316905845107604731130375931537273705254279669969110389468396993342410160642846716931102646268682403806883376825083207234926389070209945094713374123345017625866880141090523829410816944051415459204187951200214784025356242874866753810013095394733127504903681580112905210770386401087001183142225108491306482150506722223163931230345980156324486871094383350863672366534408244815382952788828658402720153201268946335720921510239002226993418099888838119593013164055513593999447212606999073030860201463436796886457646015416795863906639226002056205153465242521360362990769179901308287651881777871095258063974318032259726137301184874484869813222550596216312834219107484322965330087407028921164073815032066283436699569622041765518142161347536693397996198119971928227202608878681627159070267756165802699976964121144449822207846425950756640164208116745963400487450831149109549531693313606295915264227383508925189574660159951571372826852729064492494177224678701899660411005283736413402715111401530789728922769136128421454985370909889579980701125089727172866476937731576612749016657786936735867178762616447029965543602327939353405552013513849127036102905342428178114225977125895242834062808050483098476267969781486532990192640614733103142763226688985916783119178160840224367051860341236546650181829666276570396553504520425599132599978243643131670456665443217727921387964756822122769982750988593869935996399269388682512435604588210392214011912404353970705149760950988407375750416028700207848624511835304135555171641122471303640308912274616602536048726362253760836101476615441555147488865093043661590105534053058772772629661713390183690303577582243854023181390589502399549090933801388507358874190630724731103856890516809074370839560194845839624426771354951448419841460972650761926537927528401466062916877561293996570417707801985544344364623386686054692294601159723107081411343776942984302148945792469181365062044124972458036514519567984822914471945391531045749279805885707837259493753461961860073174773601133109986180834131213161471271002041497136425662679236211748672093126912123228298610289112900269157567409279695426109699730648884121551306368981674951066880862872033132422761875230863285966601367191206305282885882273273315720552012669562928337002306635388477773767482789967642760830427387113502264227798876083729227070371141927100287549464483300997454205670539497340509255277832319948112710960705891413041746966553185808236962387980714351900678230520638903390240447458169758846855132382140663616392413949374337594162083863222803285360585349649534008853159702614651777082521804973676241192412045370562293143008814487684383233350496946481134846258434975011437303005707472773930706243708925361143032830454303291473012706170264328687658893700934485046536449104269532876816784077629014457761191535207971638055634798892162616667196483809337669442820385238535890130002851859081298450639445185853209852316912945820008039183586166649192103083105859307222242319821975690623210772292429975330997205411381475256383128558696971930723649337824745839569397479746183002567397886819526197553042259297054793796852259216117229155580116916190740188791734510657101588836973588011833772221485547792822793438282504957658353257329251108759860564426530844394890007539626867790535911305999571576413747121164171860528867854716967767062788025057295926744487823188418437615639442044171851904848850668424392304002339839082263758364587629411906624029707843043313724460447410779075284390768386721619627238659690641089424089319029464223593835449646424337338178698799983371920075657395675079395076843488349551750180275919191853019983600484491092176674869718937700096115257066621774705890161526576716662674890340110523944738049526472246118578077740675310007469138850052926918801559855172868035054754000197991792778906750371040709892469541399897355239105166355721234820039470083882517970923429744682212955599626340259217819783084487510250380139836103394085603950329488344783219415184843067626090549352329350137466613240369885070791288653792553241614060281903787089710837399748140075378177840758065285445023764821972809806197631636134860823370778901463181639555625028283217600237335920463291491185792878384536852262799899700438101138892621608464395031245068142788031401240219963619984864038277161716954949871465895908103342124348498534088396127791366861086340393781667439747402367053192072798289297642901092031370925412526503857295970254717673559670225243509986899566899473380778199896856149633008362854795207858019178365859237475877899460708559358271286777811859255919312727245125602415015251490702060305157759234912113284281855237399117402166090091186135205964875964075537491325976191233883277231747475973855186605022900789797708652439568885780450467956958429646137699370483559421584249110825779657007172601727993875812847556551908513129779727525946281926604466562900028282286004893885367213447901925015416498540291291471916909462241822419759380287559920066647135143482412190544506450518651949470169845492015735194404857005710035898199318011779005075948972673988150156273653799630072661821384531349757167115289565870527267038675787081207134229978921199246622520548136887244271849366018566902160905011451918739670413967697013973844561714569238257820153867296551469819047311874513219219168972526065709738239665003485403365229151549700106228181031048101533773205503792234647055577880337374943776901040869137446995213402018574561851663219469468417223120833832177197364324061865714930936082079016220245176219287840228152561621792156247567852320507370803110191099068291274466289317656412918318444095456484913997852743713856987326869721179256203952461855302346704324990363750892697575428604566471333751738485887072061716704100902036838074323442687903553977124480018643339881931603038368900660990018133119093161843364918059343836343316109609267294956528087726043780349841991648554101778937634005945035115182669199572764185192567607873288048277429311009610604108620906622653106240494939078840891637842879705856377698566685694836741642322992138708271693066038353818939901337297930341071670954992584649221090879610094488126031168611134226671348067327020831188786088865320199206125294689615633034046061834890530783604672334816422561361307637397090882178303540285107784268246424246099596451177848605582217078110511348182283253778305205793713330618872399618598792388238332719041418167722801508960214311268699759674653207157037524084689956194212843267134524306711196178210461056915276561416109068004879702260563996789618471581545588889803486828872120489780623779627728570732264031736201437368045233354306256936712023327112686849283040519596441258544115748177814004479769948213504337403891853443740835723527807066610155341704752269527535305089554003526426231187243546425983891266778813420493787509389979577776731195165773080533514986616911188654943896503314452301516877758469598248025469596211243886565304467368517316764852004916176879422706640805456208108850067937734710444494448830318738292071331723220708704335507120294769085261000307271681894051932375658183824065591549208318568590047788466639624455650708428676349509490069482635160772055720883559524953396371783835775367856099885511206206182945353809096741452119693123786491914495539108473304523625837907399899274246303767520568926520391463859553955713883462756216948936654535802690782596415794095478955638032189760405537548565807373566858113642155803958073339259654598606594782787631202085592478110658025181364306908238547934830252389650162298355570074628500491697636822543177453664243444533138344559073602978886027661229432710913115198196805671035373906426723279863584900504100842876135057282560967738684583007587679841027273375534728891287401167315298132971251199329906329445801914360089983376616840506210909854493220259330482849682781184057507581290904615346196984641008959044064226603447928106687047299534430440522844141399444188459982753532892736207397466127053195114554496640059541166508085799962862646647831169758169552889136862858527129183597437073229045046374059667693353112783934410218003882217163752508736948308629197060470659160667798144853995844207334495135734195951229812242708302277386959877666479926601592712112053125519384388583220781170551439522131982988228372279822114151400857252344798479711141896569625543318885856615802328856935932275748090263309201121099316640560903819745177750390657410887599546868934372578758818402725037570277469707611304518180533981663479534650114547638263104415856860785872454317612885826650943329409779367537211433485503946237699371283389283758569883981730860573195235361956976989465873366832455080609892159285589957942121024414143499584012411181542690473038305432588084512727183729909147109165907783664366494581304049694383880063332388922982463882873452965209797259192876021029204256154929986185494683586544272316620159051571308005455323582509841768650801597297976661374727375987177732839618403205970980314326648672727143260850117010628120179399832966485390627586721426577830142087263976335562902185652191343196574373325026358781688033512727299015290619880934546551823724709522852369664610006879207871030753392198417582974931546537918695478413607038913266377520796634779779819769572096383520748480475777582101976491405999803605776112572793054812200189771119549045936130133831970893514508164565307638160967343765084346630894691462639874320191449725830143724321535697671017472610582644894809156625736051980122232183736925824452219784752976402723487372443867128025307845974754345270897525012273536538178387740884080877062720750972406820587764692944704428760204523230925077975377904887017243984673801459092838572389348393416086838659310355046984431897639267857175708522665290469889923228590849724458420140175843654518961653842925589806564121877626584278589156059637275435776578676805343485233852526090719637897877058020389411325922943659857037714755419772405555400928073026952034900645716291463607306141664914635064348847193374262230294987192995914635218384077178153750944868351534851657378061499570573917320673335525647234827896560494340274542369579706986538340850552044934934009268702542758291452068175456344391411687761032753825938278848653133459176027965668231006909261217664760023967278437198446795881265564242245822739727783069978908177080526330411864509340667154214778737583631273359919550961367827566755351330431973746243358577558638402640800306863543429118722002860322037698763166407209560173094150948031690135784042456439305625409685844651819850803152700209773771284389991860421284136562815337065082686515045110897949396315920700775843040805142590460768559430199086463721157439243254952418812751040268786420744232927182227957865573676497420389093678630285975546971916424750745295811263610526677650370548015883295070172441657375354062465548250995149313277814238000123655615379877227154734774918646565892856699891333476128690549531848395136655092043205412234101618561309897463779523707851168893966424677327656300461263973132528013091659055185187616019619727801150726882050553518195943397568950022999079626085797111525501498629191038093458014553362491288175251479295350911920928298727940235165808695119252068426035697000108766041270542150774651077587505244152322056193345626090138135300201566874763518906836724917065079472287470579677086180580515208943600082060292285606049923105390750272045228077905002229277106315058105459288366124812856396811784640224371236174001471492598170969531905979600255325278206619328837978869467390302344998334361536493199287693011677204325917578445634913065931278659095974279319094789476927584860421236689847883731292394914888923750508787170553732448198498210864787160206523740614123427664002084638233104047201844390703451089214388807668440294546115871537087733918774241771795892050221826626441386427325885916683658627237101433486799232715952797381411293900717761477083738050974260716561381638994546445067810581365657848190832271002861161474759398893268972874175756599229245454843378391506583773294146465197721273290567344938012698475078139120246261162521287968744741613402437616269310353617300306934786786823991617758170366988626062750081137846782993907745764532631908605833553946762557619717013959430067678531849213295427955641822204714345050058897886367453808032484202760090343151132492576732768970841758736082905199302211965995932308805477311699683643964003477710196722334323888349489325169795898030494801710650907581629938216193738106032468521719804151614498690757677072591959214795341478201397088572615582469933351504472153688158182551316200929579902090468316208098536913244737863715762288198905444855557250588056831440949765492700673554557853832617642123181997638123962116990067609059108575508870291000144817262622812389156597390742022298603675211118364588500926768351872686239152717061885667910069700718823988167344988235575592446742359583158466640307445232775296948043919088249568197630242269664115997295223536373523397905949028896812257345547582568453934463196624468608357187597515120836247142540435564686028195120249269144448967203855851049312864838768592124949737782257040029021397946805194189106951869667320611071856484777465570691323188779535721466428531690058115584802000314415973337604481185958513108028411061146662757565946028254754475849250502985169065811462502153559555886891841355375943671870331552638300157430340981384707741496957100684756868592814281814377507060069193409655958670125572118068292370955636843083886830888747053195203022405936868207236710811048602992026997062478421748931896261854103912315707808238288208001079546534598296142781592105295688404244954383721664177217756509227969656530154027221908442130806237454845196515319814576166037243379505594879441585559508938536147468617445332360977419494047788743688715562939134192664606460866773155159529642399998314492017043467213291367749429338321195185526144884130332182637308258010890353519796077270695535894840768569667253093237587559223231741730365605405219500650231974448320413689890006010338810944318288316582251383134478178786723593058501489543489537973212937453671520938748219960900967612522087264783920532987357779383694016549110426673118473639901026216347940660570191754068386120698765500802282013763748917553205138880912128635691627688210339338901842606662019517570449548775539533915535282626618586448767834093684100850266793558114599269692541626234996263500722958989292869919576686488659803683841386922939564657584950532375949575615920121019505118684626786265045027830125702513493416038543875138997985300670870411336157972514370153662413985074567134488941422341098663776424512780426535683363656401305241595419040627844176912120957435328521585569885434891260477663866721581210889233555621796850605033968648385009583180698569027363782543581920325475532303822515235295473438552218779601099724032152755393422026189485894594773806453389479893478994422819690135650321046993065443768126931391886955691593377651850034054769815308892213290806806561162848970790614811597476705150890177722910656071054936261714305941110108411382990279707426647423183987189549857073861101683470435498256943884107847371102417372356632181896281344563725462668883573536076740739507824169701968187005243183944772065058959820638279984685781021855149648304059466465578218223076422171860147949851004849750363719824118594204123349184917565842315439023468177697639478680681131485159052016031189842053943422129975016709125367939472763374819907979957280394576512295834293780315606671712347476201270457376599091790127817670835834662606713799942061190817771066890852159681901211817670849476640965335265100399502999117099827317628863369220760185607498238456173503895078099531981249099000596312977135690210034411074139433172033611764737773610434762489882159779678829314234198459664326945093000780306797011377309032365331715003703387866075905835524929162221362600076992036446712561571379435340279840763804660375487620656660202868859236062779599336926169930115165644932548546893554454400801866492035958357016239332170468444609077467355241373912177248874748158914828956686732886413861383271999350314753926082064961106841976219813018743525158485190835731698561395709910699058312651311354265059295380931724819276087275461081054702637976685689120473744822477624719580559816610913752650685426056513730908226133294945123782501531843992474633098836520888821496378141198627212630559042179783697202749962181248856258385663191410578172504488879970830620494518731204859616712257010581628702023248306447866649458447145372125845842159634824057333977890540320062306406507798132553030908108929649803226089723164996417615987168922534379799748632548227311471363200340439693082407405534502918637902552559828636023263557698011536743152518183383101764393626385271773212977240456871315497439086432437071851708579747606315785879305385023170292448193911235330299338314479871800001320557240350393643980929811841508358293976095658155127202933935702922298631670323384191825143976627294331962262322768356377468641822879378125911864144786491384749029479861611581424588987951642697432302800849255686114754871549153665653770048946303443059020024857074725099315681651475499870413299177609537734921354900984252556674954203714923447695916269243374372765592905830898193815396016790821010186554436446195062260954795135778116065722909048790185227185666099680980348331047838619990827463947544520146207768284425317926845479247535775780010565385434447315338843371268636247118169995891353849594321290468270482125913540988293104782724461077444161499980456413049539227901064046608655502762920627276873886624427964677238555037780115213985408280774198807574156802530781841161147972510757782763841861748418907541326893478093345485893374521353317794705305081419249084568879061987751859569117678533102551123546285539268166258230786599288786616852788266161579070856854477150898217680225596686474822363410564503044431570641052571543907853681654228049458290523329864561277885184705914686150732239947359692425442968743824255165027565903777035011533769221435754920465658176638806811066405882256629354351651421502205842305117062490205681929303515616674307576260760526683469485078724896483471702532869021476497596552174874377384517299524252624616207148497965204818868193035078758454256097916890532598840931889977344954432436567068735573790258405840053859671580649448050946481138741199538154280036628306360819125414611940098673093374796263369902216349689407073577800651840249830005087764138514617463431547137495298671475352267852450808040984353575383727281874641459681232427596926598706481636353751881291279996484839214889137377260479366988400307326917852356648792950419512293863294450226673547924105200389819343521323154810781690088476948295441044343547073434208683811885866386886298161317638512660966391139761079177945997562807473110128133958092539247039758513172213914584415120487824647764153449925912727051619953294266299471948134606591658483481220375159991424794581971508368413651406297310814808078743938717336053618531537672475361336151739200770255676868743713072403902336249386434230502581843490122863308650219843771656593504419616038463475614586452094558774076215079546901731105802598935438092780346426471981024661613589714621078922503612123432153852044040145446412583126508733393423558401278467240907614068066590413599427654561537528552324494335123642908887698812907174836350798958247634802925456398118056971418918531976650182975987481471274740334114943215125705095745021150661956284470938112724224450747090052217508989178389239310502561906324760863581323705182484958134143636241831325487546026216485348303505507047079273156984713221546874537779443331284219161423989759179360783371733921617056225063658852012801283864337462857138095215231071651791000725542036478231019531212646691727760094650331230725869138586094794127689368534788457203943276630614299301048211295320621757827991008927521565163570652514039332548721783112660792342292605438204846146366042946210000488223535742135883841493483658697058528764549934408767317854929690240983985140535472510051914461503890875379381995289105086908530015864851349265019904762745188501629642274287223440051581257261008719348774169896844298628101565188270390683339534109158519397508969910406101020312204412322036714634600282664181064500499748585129457789068913247504012703862555212047570688233847042369187915787501227267705664732418601041928831569745505465724848459523360621190128276621519619636944266095271213736095090257608310858542135032908564047568972117651427681415602675538593098015523136236502576455368812300822347287412153333103595007436161340384886599764128674964372300391863015484123527143157205296058398549368285344631870047851931718152143952279861483495499147502320349885929505280909987082493710354729595494070546080452787938239396824561491172512897658843669899295764372511835887714404110151595085825257639786036541978668228060704852821164096857219353922822419595271628824448895641253377101279478070449055401284186481311694351970554846905841462164298820908072235841770747225763537288144535018721296477142801065752514596412048801988312178864934025837085862234208438438302310669669606844442768540340712115944646821223075268558245752135978980366121064314494560128864490540272838385346403990826688290212408839347584356959711016710994506349206703854316833808692535710043237988095236066764458553787188501369013271140244742542928441232647268309750993912421216481310268523883422836950955051636288833300480855330615662681783833104060361512393776464725950204724791247374452686322082145152648090592505196154889186304753884340216757954920824487050309777959611072254450713494210081265443248061299176254841773662523617176645412353369828724905885601538829438464782132684255600574591649143556713879908511726047187452461590434964899780068101915653044131583677548748821556012281487817233104618861018158424913348150150865942617286465318779221598450933155954167311962948302832190007397472977665867465652437772246842311508318481436309504201044516798363295437446057996057726331589601625791543918456894771028723235824725862522847403385672079048204596667678887574709943868316823836325401322249547794425949933702045138423300319314754655022235794006542111396146972749532830643912454188607673725215325345089396950357299598857810981482500348703452179134702417816902898520757555247321878820954625363498639434601616266303831717958224089079007549350043692613377480310748574720067462062310376796696579625081016070461612273996926059170882068752176532355456753574771900532271737762923987283262823288615256746084478920648058574155634394391873200233164891201242202495441733757088726293034632784536221456418999471780776870791181901667071620840907698127878352487533821136997215659048877253438508216046563171325360639339718427018035531967080678711758929108118580016050385009352215642061150961366511308783876593945479010379917276498324711710642013578178044591627297552643883393111863839563721083875437683004086905566114766483889825672683956470228505691225870639933649147917143049044422616377475266877294935137879082770340718804750561811562889719690839801305122126979597469942915301537464063922770628600186817993471094984305836904068339865560278978874411375585728095144316912438285987311146829116633075231464160848000536365894406447367845034517920380750625421881290176315616106706980352863224111920669263288707324478915516063813086328529065590980898229921816253833806260117042147099407421087757371019382804925319115318272640305632373773398367742815518386200013196422034683524031019681828698152809172407821262376328580034023820501424504907366022239402208802093832549143093258761893207889762278770352024868372633622901120256399986847417040259613358752592666375108756661029888256432727190898485684208990548624297808464031371325999098305901360780926572772840684394442229305526653313359161316976631354932139070130448839266653661737170833550076466160213934216696837584360908497624507829802506910739983522212457633143871179239111870193487088676555484410418665049337267958281587712650522678167478986169224233162655138289986993593027588622884276972281880369008656958693186685532534617381652026576990526935073465899970462566122584166371950097935732321340496625545000241944297358436263056567281985366706983465136946928239097605736046633022245396777821571458117068917688568635201031330307876442382400152562755855742235842453383366223786910810373183954053876183857158423490991932971674849076804311909380661035219390385322958496985296217361991504643296927545060875632593504435328529296662589554624607502107353026895415560472544436633561810564107954320373814224465665060930352854738128582677512798987882331244458243294131351832482454067779769552741061363623612090928680466125761061968550695517346411746998084390109974770568452838989400038000428600698700575136329612982672098417665661874591114452402915951798460563402610432186821238828123546776139128279924913764551968569582873813832751858779233739409357429631234639294469711045674737710997026890472337343887003263304179748487399419755548834303455841449822378115144362242235192070565482379988675840929830510575306221381246007935827614795255097039063928414074416064455249085558529456363996163106818437252938640899606110596904229655388169812797209741271703709238100112979476564559516085218715521034213650180507860217077410466924945735506848844830664197836429044730344406599948847652429221792909268881817846463948403567181825377749173582528453558686906922202994468925514215123432679860677638004107068583530453518087903903858938775953402333650303527788455302167620561821656389080925835870197701809327810723701474127107024729981061439859253386393428789377927987921551744710667031529074656204582684311678414527991454797473349976544880913863832647957497355780793738966256334480897734654040924640428156280348118451540546478580165608170051150520070152522965408907187307046402309117624328455061414963122904538511419562122857774544938331091960105348545175764116660452903009943032959553547408705719203992803530833370151778711399364326079374119447604271875432531440327605112828489721717179929594977085217510617480458848096866806412738406838374968481311328163901072419891246549768251384368509049237136314446227312708400653745434378278232957264865666658581641780991933854732578998415263024549987901728701728504608953497460663934957346746200246234837837075970741095827834306513764051990797169528737464201691683821354941087147052816097756262571718711639222202038220321925254903768743085902413108595852666556949057398628799228335710025103311859995036905385063056173061754090865953496219724358063310538679194004293728651563293161649741355421030032751529133865997313253253146849338355039412309973872750575895678300278296942653003747434135288688190516330689755397221609717264669762979263981158711921758601647589433973174985424984109645946476216540590840158829315462246911641215061701854590230589638370874585515860883879140305936196526569314592070288011297165548694019006715471481921158618874762516004880815544189648088378306799271427809573398955744265276484510169375366491168638007593865030057786730250320340953995551279186326915456153959791448990851844622215309491562295487069121810665163120677199221441079196009315943033080019827318247229323743252830699875746084825495464542188952059192465133902857165490966614718474363752472727513558793668912008525393934577725225153598769326867234586726321090603846075284819251593501075620926096731298436138323530306957598000356337521180685320318435445053619953018886018130283518864859766353204358037204748154442281535716465364604663099042366954276031604034608463330278782881969004773087029008346213959000810372850651785137543713666091155515473628076237147654399272378294727532088526562265949312846941338502144625928506982883365020516230606873936008502401773864420987831219781403386644211594027379780488743518744888685649629396807824964675672311540998452525958608302502996021980963528169166479589937149059679961446090358311417286262122201638334253685532723406364584010220665655687472780302769299456035938943748382406358756338337375990547306842868648017409826993816455475842309342226748394720034467340163302119118294351282334709310121779519501559865589206391660515715922937039279844404295082667858895382006790789750686314141167670389040891680362520461940619692852929512139300995624176844551825489274380422256113384871279496339708841166610784904391266776525454550557197130176790233086482520705315244268256951256143888277642082704000770511939823202751988655186634543931726362059328823337114470325009736092445987873917212445903844804498571249332064752850544591621175235461755427138005591123783230099409252638157771065155979039368431252166903077211706478727207757754820934317641763799780404021263379871454918443013468039065167675864669573749318504192315666845033224174825047374723554354065058303643287886868324233543874740679708541606729143050693600448342964420995110045235445971648745310775373453697199963899875478646354963125191159120889015730831746944348718560380340655617599145965428377729038102855166976144539786966627413779587311704610697193385112342567143865254929701618669776776387375496914868693743787743699307927710611709831250578366372491855297910819178221127214712752215440328917463459946873229763032487536006254186199121054742392264884141314609821836775344071383720389976385400286889010596814821449011629439749452667038684792154772104432910709721726512225846403268037997952172585239803845541546382930831887444208668813165753125209123591746673468591797751251878133353013958743973493903910342000045107034842418083227810030977384955163536964751114943765191499016590940937458748443193104025551481552302936690247990310803669216912039191331999596513712401329570439638719808035508596260975902064749213786247571177071464205568239978968008429103125532807616163373656342835297452166893115355844075309022843468557498507713828729427025849682859228384011808927583776059896560490737682586542268611971318779441785179415434273582113133365520599958625846505171557117649689131242160662981940799640573395951691980817506712108107371048411796707271718838128500352839385662099012673022167799377102081415348959078272400847977407507574245721312592695990001935467885680287798715903300180064871166989142263958655130425910085150124401238515685562565289638808974002954863508818156594194485577597051645230268948680131528255090563913553726486191472702076404181121685525909521130811614059906788077926013182952534513011439566915141478502528817234110147979148498760375092722144607746123622720600417605967255973344362035944731918504022438915387339712700084964523123024928133337426391159325466168357939628860012359006511085988075433614750421424675636935825882769988995698763138240868882216366537525248492412275595469788618372164649645926743536010590412916407086796202049322219555328967661419907006486940296720590998618066427759222256583360153997817736219788342082274122608584103296204802316899281385694330862990509901235228210413323174253108600549174800391625179267969716294959571828925507565013908848547363624722779845799291429425450812446874708536361545309961525275263318731167290411001183129131939806818038507307207876711698943369517855828303908868945764931597683187190657761234637731812300125802162755635575873010643612375350379135082804415992192603858842776155916856010882984871448652565070359710263184859929431243548910916849791453472209540893434593411848750964124810883403726523182034625036777190332937591224325559793325939867942716373663568247430475336300528317438239369206400640980196802934967431051322811942171169592599432450896436474997346035842686534580185848937957459882035874422549649062297462816528917337533175982776220159138689092469178534473128195695025998160423155338403512257450208588002113961793136597611606950497318043283071507044772122461281090500843350007963220073124989926609934686405391375897117298483700653641635874631883254938140173363809894856999866727735044453663722152730935066249290358302516384269237757546693223132248029294371059498149566600960723366652512890075014887878319668906947247529286465011152960174682395216463657644977074548567357723934434472691243863394988874081977068528030867654736269319166137469445107117560029123744650024421818326737811400073229807990317888698056739706543661197973340071776275701045643102636217415766940136325831006255035677079965602557001179699696808478543886589226438173139337768829694126872087616129526612233019821151406173735650716455985588483290748699607523529491745708440118127326215975921810911396933044987518495246014966131443745526200788910307152368508156983277870109751312915949478651782717688823984431996343619227894741777716745805012928355766523841279900446895195394653292014532498130017832494576685693544549799273105982188122321816555883237219843042071454332876666943517471357861074137369876086933183164799353041210136626434617688928437468628533253788771479077218945932484166511452865754364749323904726809482992105302593335093713297580485521416610317669827602065161109768218346064319477862773486373441981103046889834790662050793230966865050745399181865498738741610122827015744373716959145380569785553364763889993668492458742174636880403758931862635271298922378279475398689478156144067116613355207613848534077503469380746017054886813661022112127707072786243573678718102034862684743482698336726267368265952721444871032953261980160401073323842046185310426853679982919357779412314059541318179836399399349874078711586235741388851619241537637794569055324284767426301607643483016829151644520712115458037819572187226064338402972937793607613343781360983711675830462789500292724022941464741182597885168690972557389448750327663027809870021797931114379840882276016711874792463926131963749442357918571909259265384180456944330893279250158471909199296105129166373227529254339144715440607606979928343531807873378474078226349368967425781794228607822101680262831849813338985014776451078815212566613171620162529180222681449475893088044649675868603933242221656204383161310902620837361795537373677678743046669802357791503222444164083352151739476445605709820030262582077054088559880834303848777459165771807643593502719270428156884012158325482907727174398371324015252517547275066418157682493534402157967181861642151381492711683118843837406794716545211447659743568908624618767372276822244740489027737518491859807489181678996427159938833456186023727019755953543527367136909817488201521148818313688473459301806540018589306995838330505785140082514854559418809704914274817910347623039693131979729608579065548956768880862994452231076314060973287124756026363957990911489769281751394292743052547010329152114859277619303562952084141268182705594021104597379698300051682944303867873163071470531131735226120716237172884200266871570394469658147624125124052352164028917916094716471231252942874823632233392206013751858189263930609864428673656413471210453292007165715035296069852561349881240071886695834226624596256255138909819047590456918503333770975730282120415493258660253045253017612763940932594759556514094357525537321888373781749818151276917693614652274506315643129878871378207681741068149650658277680756085247898364033123026749414320735367478151555430196953788675222677976244041882967471898942275926167748985853532428521154420215856804927076090436123957689643732082216594546631429116402570127819233955060909393116097218004755717067244086479173049091501277836943165996568542749355939415708875125836221712366970055843327904478451593084359976198738131530425758710870794833069045428408413443339722233917957309915293685101836784838009816278909875310053914910357073311321465876673480150914465879189273933716652258010532415109447863802186397430001380050636788313196913371484726710987395552269968313023508829461033132169951884761634554322553312986957799743107539213977166726739284943398826823030482519604503934689828289995899448051306248548014725830225088318698647133599327523525414264206573094663854032968681481165941369643135630473150601650359121930081496878109863274517574660161522533485349892515634372298275694032966823735326363134436812806725258318646018257495442252133624851421740166082483483814994352927585264898041906691521158984543824411082566773041159856061626384872486564972168318422775593099041509437521770067504968208375525799839182788575071517391605463067348869479124034922713465139705335316814884957750732867809309688826972306653127169733181968509859709976844643695209131332998620487754370954368743605928726275280505795790019510477394853995703895598781253574140367573011335128136579832057374202936643054878029829984941549004990490949285677382848318120003236379656572724509393012806509633668970202036491288552219257097416147460602716770183721712604730067385579997625267455330425431968554497453813110436647866305434799743580457651209677387767430713052079357355280487859017927992215178200740704573024808523178585659435293148980095338481068461520930569804700713545925567327554138417987941307011122848714176955825965955302218534762239218854432294196704282111831586307056411157273396129362506348852827435243619930853077723778022715631520870278350032654104752826979956444113416018470878011717057527606964254435209098947506553896444693676816094193206835987685188143777779733997900920018572173894758577066629094698268334114895403517384637124561622496346288100197300119139364768348450999145292244802230731292708099504141219432872850313916842656443370366616323061587978725488011873151627775621360426322928690396961278873452777379405269293740819801590764438613228762288744037420789183796448529616585119833476925105069803027516756540960465153521531728361816148905101052169351680521946843511468991566911579453872593471080808761091474984809441893082683074639798455959988195230879740499220510575175110423006631997697831935861621588276068242104188009999349701231036167885543119532495754903124901132790822984491436799658674042942325599068012882870844324915928272867198128077400158171678327465304095293242382975886442803264031481859245886127660084579473712433400456015952672618909492718087343897033594405239318919544029048102598659454276091695559774150638701110833906966034436564983555994005116960706183089576564123230713105858968776004539020620399252714348166818231655991723432795668684632492687379150265438222160355915675638994627411211365427296168603485337766403983817200419556791735968925010885028367188028592698593974583916075753877981017395563182706069483599473370121929403801837212717314292169765559621380578276723155908821075491366952883091909347166119299971789966838973710274331264889905037104652032322510826586347595484898839137273576479542059712355569141857844846641981815427642039587704625369915745517216105309468292407898646430807901309157559001918264127725885776861411633733513194806614269529641428083854706453493596132909282227460047040204689000539751104439922964966537505826702998177776045877674052689624731602920496027780821564363436614604216055608819979886444444932191023881846410083281372185067336885581357523469744762781060140851933055204909777723508277939884907527146906381582678660033812850012173402753779847491398583152034457643746332787527825778480163763043061296866900947011067790903236591367098791413741782226354957549042394086032866086220074016646150836588859070066819876976478475945396983965580698991023709382151327058219572491302967825362341958218065722812508207664896940019812978685161601461603330950144148355312025806428710677925340945458694477128595330849350447869496798344165794402083062558394606696239951026037410691814956317197199466559028013507831423521052987315749925551294664839474941755643634746862284011982626362545576973219849697127962676512186155031055554935375767254350057075488843649599527986584161980460234073492709249565235454099862599517810795597298198846152402001982170464077671586603802355458338859419583158269345828838207990943040991598461041386172955281041181462233148522071156916504847614701241765008967662197526784065712945293596852540783375417364534011578269303884227033093614696001499742818474343403469898996334723945938359826395320021892671416588761494856833695462009751197930626608018027064360839605686150300263941176009504927725004191871994927131279485479470044590669670303260256640809147192669135758511757604227744821703240650366880626244802785609951904635474953391989329733998549229491254181414575296217871219289110882995276603020773102633589469909331139655809404801146889510912818481188220539914505906096006076551110666956385499870237335294844563846054413250508248452304873977231487638793111766471338745261338839564333449735881114632201830639624547874436616886136937599916172734134075460430533407001873979650471220706111018752519250286980421726784640489175738078025283008477695539325331926246406779954065540280227554593615879096603857862810458116046672672370624286719623374062486092918081090128612930729415132740198239668767716972042810237498315245556481552233027314462111275465089399762714831945282021019029281990813559568409479278202909874278365175301764881265099102510660719568381884088805543697286082347539255608118453677297189860862255211917283896518788116073337205652219061549159885720826174712070435838407962738284794583456022534441235400519711333215006323266249993761188387444155790031743261428052273911026904252623188609136609924110429613341090712955871591731773706069097573186462096686895967674146423852232862504450895710819889258028058921925938492967639259127189155712180535645710216229626993186568471120383689078184069334181963304516037779674476658842751142150576401671171665681977786965425414692561142323496809188987201756390501522942422081154907258427581891023627353535748186447415976872123008805338046438232392198308814249623939370339404744500759573475162154437971131731508378011851980881617150430984375052416986855805809706619266876032918627186099350248264229839838924390243894627804129322673235458530464149790686647178331165930930953514914954363115813446415458720040740698674753481005671267185449325791170513968891619155518599750952834524456911965330836731378520249986880893672315995557418434987277667122224431742200819129102527587391954089201880812577106436301371134544202267064882403628294412267088829988376656901190873586610937412641927271880401620406749562324410208779293577135319172689922313359750119526951631243371255021454767020074065494486443456580533148404694388805585603952406822257017554502611860427617989445923949114173622593415759467365116301451650098293176974044850762053629633272167568868003230593097185119306595374806092477122524501207659341653094626746449681444971232870183469161575439486833707641890490296017558253751027729420812783953631909907915821176683890144170086325696491481476563884413640146748205541558918789066709358528400035689229531644923875569264778712886764869762145546140956503660623943220416796021542946028886045077063121665737097519895995673058804043964049041965631113270195134246689507156711387562617565872234356409379614833671687358269102923776951526062316768672169547999288507170936975365808353865663504556080409377380273661519562549399539489453211839057855819153306602506793053878118860874334120358827888989247061507770638396693260940199035526361473629799352666960564996939542915479022415248693942362789615769347662609381898964539690184088636500084014143694099491910256169951625794976637847723164447911063909084083690808850739749059017949947468296866798481111374946076005700034923358594893180467611957354877262606199497076806523295321452091984002243318316095295980218671536285315470447883821560893755639906036051206824078954079158129081654418125596192363895246942948878643077765736429216429671540839401415606387459487301927909388749885344887847375132082071658823397943772207046518110150193322894805585378386969361400627307157459010882877954338851825569402067899139401922170307821656213225473688238262535650857003665955982393844761680256438525659307084644782842534385029372970909299483363980778105615682997841757043421229078014538022184892251780864819731352092905485440424416125272791134882705032358748030368292165595007964061017778260388673105685433410599912804592872669966689817604014112602020531834373295465180556264482543216870350854587576197455855477641103954734741914817097263561395878769200017319066523304211381143932408617149954260630191227590364923623715210203663887053873134006288581465186883754848063108452648883566568609287282177472427471774865584974478402197149349875385352777349031815519516788801268988764392197113406348754974096674140460412483879160815073823167029346364250744427361487990295891148323404906980804725382477800376850352582988847366603822133877151976240837831005015623775034534264900800114445795245571184138350350764176984973424025181733340128981317461924462492370613258563675297063332090111536844181590933650585469960005624591595553633725041059756220590536442333682629968401900570614531843625964853067368653042188247203496954094489149369529207196845285707426083805298382724180637146838172181034150736055375322290887642027867176655291897935388831340546309878629761809877900497018935874949678100033309671526522493069054063043814418414317364251997016212575087533656145407564963387098043183305868600113182633334804036649038026053855307054980252744012472991638774690472506239064277359637483346481045216426073594683224454503158739383699123127787266942655160239828370246102610467183498061409985175275580987311732747368749727336063931057926753209155286852912624378968885239822293518423167276009723013956003164030098838047473660919537898776473515917722183848904898239665366430033556045272759845592056139770775122502359365193384399572114242113882077391317365957460211416160552757475645045194611237492249927168020361894053613950566614457514160898524230388159802748215504137162088046451280624538383407473405219501712589966456311377435595089629214429562483584299532452639085191243790147493534706618177409644595198373385555287222639365707607298963497796999192856563800773559237115567158422929175950557216470912621712370693394607345643406611607581063543770607794943009051326772525845555579337994649321749954366898625034572260266073765047177416045329219930144158744767472459303732697180967730630298492818161404343449705765849622989576742215758619352280810689066613633360822381853097438718403792607602013292971192224211853329501861336981729729478728126319372059285588786915494897975930164442501283808975100458309442031817971993000631172516289965463551589924431156931241496706442736542012156731836794417442655777367274868871717414329231780275514939577628411017563584317067384802432317063977864127653371621773862051702817103229792360972089532319247981858437900993513642799732871015093275285343906921382823653933504994156286754040072680170637415292486826847846637062136765190140910115913450009750222077713202923757454517656830402757182349778511533074603315769051208859637567259456963492942340031627536743929403933582047317242480931475792101388653898034372695326464095683256895164308182974291191913138267357411837473274125693744298959824549825148150168324284812845294247623643326852191117434103567461675195461072042753121138190581568565250560237534999561740161413284723958984793521603088962624769799553185756651014741478492483744194768794210593525257879545066628860916233700381765137010035328218568457500298800569381251770904365755546852831567160521359042956749097533665375305758706079276422981504686451491955305270731824982973210694989630296627270716600632718641072913367924490445899118966449132515625972512188127350777921895030287983071116519670107145894361748580947541504835009418041051234314354586236788844399613488183241579804607296052481084089772220256042718763152611707247879614034146917595897379057026116626009642178889733486476672313937001137237053637601900096895016003617903929880723095023956779063594235770276023187985107335892838901616739162580811846121516291560603106656862708657876533447606579774244419532229875804778689806845478896572687874635751648841092071735190190031664806515653461349746919682593897347342679731524796182290457795835696633749179577677955120103455292553070552409869490937830870698393410297244697159558563716629150065782669294775617395224308621413535093573229546931452389579980153825425996000019271716957831094593400397380803826536423248649507218414337971336894540690194470491882419284217338523829653648017414574447070166929989848946793827317485966093638261962282605159010182504305999642962629588137195637204612559086222734499578344683098233026139032427853133575179399212919827947695423894043969515316552762845013224158506729987245420247175034091880600184265345720309798927690535713839366061034755153437942527037682829538848939428403200963396953772183670691193664962414969443969466336957520709509429679257968605512826422092164712119898007228622764518463435828995644426112020318260260096170001541102984650794419623262220267150971568958878525303551404808005748875238626329774890114685144897988611082088524324401696989402527704352396716462887740448183080539037499567805838914359078886643878863232822503333537388791329790753334948836541129243583137191827278929408768727771191953221824923704338702149943755084961527507940631579076798984690805510341780825109610707691814424499910354365756283778738648578148713739911210257967430261405970543759241680371648168528718978258268182398889047080282347477396048015408051974051744722752337191310839865711608977527073610756372230878024798517755546948982731227225262555431522496645785623644548281140519168063362144543367514327340975585245274947860073558071803282446050560674871962109287005994838178746052313651972565624047579209133584578957279546665996389732566501266949480093965324819664454252274112365711370734349078026461043968286589296352129026431488901455585177171644364524077883570498891209927971321887483587882391914394653752001044444897282684702608592445037123364699953191898900706613901703018422109402240581069840956501009880775199231476163825214288925013620053411193284233022425863472713620385903045050283861364861860992093548846457238576593235301681018872787943932949432177847231877058728623373711746092796485224521241334267259829218469664716604866671207642882850684531683682896560294072396479939392510319091041771585154318702501405281082470205168390731304058622701281097442488590529526890555244641681742864071186714842157463738402454324202206966008351789976551439851595738436217615944806926616282219822267516184999367527242823451709685504484892163012006146419339248993581162502333955588967924455927912212068670904802174334522511966705952289619814661719153639472750415839077481016763602436466382252983816630502369404898238889629845609549337317534885636292221599343960320365705698133232495488821157106084883900449674422045118037080840445878733698276118877750486327602288160890100750092664670239898491440475057611195566664287162975847075447298587324416213778235411654021505687895845126805930830053752430440367238040648100515481165002143077176267529198801122915040032816128620346427301340142063896203992889807851196101531857554936822491693236090620275262676045610251887204981876988114437487219241382169969432726385211360187674893930082372401658816112263052151951314763097981969104644181595901645312184882532572251029529075516992982687677098562357761614283110994942537493018788383766451983494100014636133337069646428459030803376599013900683846438613538662973740715761351317269559784549047643024381634831744925421104469866385067771609082471157309776164520021307479026393889802503331965282655271831102430397296877008639643422241845624584830145563771607008524554239811095294177746946728780377958856787307092217728057075071934372229037368419170773580799062376341299230887628998439851775498879023204797513947414504212162515686723247352339782471594234503728060549388090310997686144906567012746074529369667124685633741203697908690541655152485932159775658737799269535101257389486189628061512410157733688723692806107539791424249670941763715159163693184243706743028309350350175965297646332624190717321843526438106344810675550325036849762229821558363338441285899463653069368869502519262293167757532391384561516101361944758397928646787654257636844206672877744616322861221765019815813059857542513803482113650654974784198962713749858821156405065773545188805933209843992557262294187898808474393748088033765861885374267287771839536583766035034404069468504306405450835885224618026836821652604561712652206014959997281652107156072460022623198939157328926595201108262952838374515274131597302198540050697555260660049154214632101315000367693418746440796445165910228239176875103232024947279238146613081669309216023098835367744620740337926241371125394689106231152272490589254058452436843432730131343070695098177349713231773992920340175856154345890283850282646883849392056606465858449685411248409619587409537546275099090153017294249192416812210917049787017553107771136371481781089391453629396382025690084253039417345857079386274817507068500174152933496083712779930456702825362286860061656874403449534310606049525274075231180909996847028565985362079301993286078596641119335576236697737102177314890473248158433536548842576923456202788739270693286852903231956470549260205457038462997097079811524640130730205495987431170629902153574986377709544548554130230116268252934358235786971389443077670602987990146375214973153496066579214166009235006119669158838087759516425463573832261827854258658553542603311033483868242188616928320824869307159795786424217058306985824274762503438003696123051299416897975776124248573518195397123909999468860378920927011847772953520575127365816779469768419485710447764768623322416395818893708153894653648879363294723588195313094365114845182503987607287772483926309241325065765085243416165091935680380262398595392105924176320529447251894526132649176440968288591270406663719928991944370001821684445096099024517043995666253367039358792457933528319381150299444995239000191205469217315534161394526034815039499337404083032636827044740746914352602812848897594550028534620255917953425015800874150960784446628448871811214318605155307491038048547760540318616799313662704054213660089492878032235571387583978313158819777913638203540233517180831809196835521473064336644443840288259042182688584823835790685483196902072248280318509556185565026970679937732813477805598837312552077238250652979344155584058158034636310022541860291596789015634531431790029586979210711550750943097946678654371732348399900959795778666396844822027754258855217080532499100949016206370551067951033028530718413685859886535998268772193116691906423192486296029361393039853905137046940189619197553604139863530935282591084418205336471508542014267588483211394861830786674088657630193605882424332513681682073286871860933182718946060042378296795798901983538307347738079872342369143053010105899696253714514807344169554418746799275308664235136991392379538117415793567388661483026035098057570570605560797828939939534557399523778899994663549464562451609619137309070957867035418876395203028928734150852746725235151183503464545509063811875564352895364035478073079337974962805907239232123463209109225602689397752497698240583905675023410699749887400836521779082653601105220436790642505192644023552039782119665830502898917835978805831623130851666166719302598168910229532737010685008624768314690383221262120755517944983050110719369654986839570621148135252297169355103935331707487052734178441049323131173822819369213212797167758060707715303076626992593840888673918774347665185438654455761051365135712514070288864958547435724083467328812773715575373132754462986749331623970775717368400552260363726917008344147501392450666832601549470707704309155612759304683015538528659382274405893711282807464367436016679652008356009026697216737085674718186706570653233105512613046400880336438781867133637623531423036222595391188462931467207278777654452760103017460573912820632531837222543549987519163819405238261949842419127100001232903995081716355429526189130716604348822350367275564080481402407701344432576140873722912874382622892332485229521751083969582963493048808432868438643953791230243813741343129357765381179229598673043811083891209910470707431408748323671289298244221397733349817407794163750329722096060891052439803084815204656140234527826971053289552217228271925105408576246810833049983380959541825026084324092114511560501124830599138774118174573960803302466622838462540297566237882951968396423136782659706151311011437491750074476820350772388198219334607366262092280399170470611535919796364982054588226809152143686138098309699063086588100651878950052757194892703309513092473617955701431557316918594281038815985014563996723621351364406472805093158799865676810752855351771340169729590171334936983243008969785672218850028955473465295865497128185773644069456466604043928431357433099733407594513906183448317546080270088728533777714362585621168487231405313521446188960498579448094633109130597165818329430669907604401840472164052860141157349410058522629907810948981334017706691571749581873415988893270238372978457427130447677891786697415007072786963354630824971232754744189560782364850292011687392735372759172164118606974288954472815725827254756256191537255141762720519732361946597591895423709649172817902129258268180572348133803629281436771187625414591672513169543621471326579846205713857422893536515138560931044126301237773496618916829160067442098013830092968999215399513910825911359162649337735552719111615699826882558998029630261525596428015637450532494773023812033869290556871830756804499439589414427715593077235914478273199930149255151859587154297378494337760038051990465666391724238886885248071494500945817055503181877222007868720981801830422653866171317054814219992938750156287458947966691085920518430297747618935319023185209059487650903023923147323444659834169830022425157881271580601148933458662063019318787284467975188390375255506644348156060713227293313312225915797519955847919013164284571789381324064950382026233258861355571114988676038033683618856082859710896866246656029444798662157830752523970906889317417387414166079359893340231827036395255502408366278135525194260018737555294593465163142327764140578455973425170397506395662840106221889100914725259135579870350019337161641697893216783518480089127541575623440876685527605980841821124671813272547303253896133370723463773774027140260995126653878772075088681103938804868811265816906954408994533784180382753357742977326434270700304921214605739978789602228214548580378099326900487338458947448743875447979153565964295478055459044901488301324866136201861850557523956978817403905190924801838755932583510523715110982616126744127092208050622737094451721091413168833292706189463965279352281581799612162999621513157554218302277034153101426247690412325441146659354485106714729893092968645417327752771841293028358466178517502208148564327377995440155336318659030303397811274138625650510806192688236650747719810279939912566045020267632681722217398126598171727686164729513406864380466676358724789205704440579079592952373453153958045230297980210248832205426734277724596926043318956826845383559164444067942516323247070388012607574623486155925263370690087383158301485246486758828957738474127237693244943133986466545221931913728120058567074496498213222936168723371928016328148098821747127897655854342354341562912858123624460145837119114873174875294072992346317800966079948088990638005834221586987815034998487280189168088368365732199384746104551646523101933150149633393578209047258008357223557526074072352447933645440003241753371379481052935426956275025544120441618130207830305712603336812037564786753319314344852654909185062764082417851872779365243677805712085518653216281406942054357814742750704486386599107030184194783414831067866464732531787342464616711161312840803143344206418311302221444612050020261399337489291826269722395927490092382818304961933059133044855634956996845520783059692043044944980453100297117617037287496444352254559464345854284515929894244075809323670652001931739993544331414288841691608788521967487553099413516094879168686479438005107511511639335459872733880671349422792668675800076859182515772756838870026848586054076895324303408380467295133866842065748561750097222150493543818546441755950911126827017465955157765602306370230280379553631583614325507156008263731020651728921505242891083506409607249564616014357671046049821397480520166473170684723081294981743017014259880805250811101654462174126683099022480683847074678860789962946823220578648785863131589980726995010813166559054590436077505135502427946533731269041406071365647452379416099261481483123409921030606958212696581665378027831609232403230222019416359349660397681842650498008378842866907768622983653697862732856961062884454665075824020724383277228617695759834095273413139410162353823457710956774170239740067615625600223243950930071433718276035369439515192159861283804226335098056255123556109864337473023555302911199733029761003819349052235080086881423819542692830828866320157963288857944281614992229278533524925381333516929835373223889654805203028078265077674368552530565064962671001083287548403699129343933627465735126592485229970892733961079428037659117431839894817198614565166051474719023140051471399281263711768864914786682885339668684005393181359739740047443234206227441937288378940976951162903707619201423497597957724094735514302875061597836008029264361327731575651394467953500673902624798695333907145360271396577127601063356490765159844270530432611011162674263775483432949422951123754439153453746217414796443726090420011491046824544831435797345989676525135570639311563176676535854308897389429390139684548787580517324361055255446197245062224392808174424943700193207696611353936460747509614445768120579300378393110907106217023697864271333764470688433176558445560216128960816184536746973476909936993263148095193438023566776936152676465059200612940119550545220300403226963863748676405257121605615462003622015744591774170631640485934234629472714771218336538018321612202701268109597068808316503453637868616679996689982870944918850119369604632109976392559743747148875275283292663853999371563937142431312353307276795390822334742032522710060503941320085630027577993135142556952258867018768533458215303422392606111853442988621604236067278533835922081927954453959820182144570924313742751577139053458923447326720499387252850487484141717572596417359549511711416695544589929522561354773998062261809098477858223683680880977613791382242761502934428813470710764713908683098546605913010107468877021221541682020196642150738383439245191108272602542057818603306988834614053321810014515413328222798078513513579882184867237661965311279942063181946853093285053117439152918308798311302661444726398973376228130733261101202842600666440114111886544150828261398389123115263290771357357569656179802119384080855588973812429908532688527583520240326741686077071545508385010936885076377699698009349736266526355020191018962658045941436192047814302308918051856830817948991932456640887814561401099703437389823217371757888539147030901485198904336283959458421795322688375174247044330443548168495848135735851463927497416591179540403169417703241482576037836851093476696987726542668782237830139654114411729286310755758141406148825397915872764472134102990801547235623030620186353548269251756087867930319242933987578244585064326936051023472859438168940068990852867445024047016093418174281083099061831195215739531984848831646713588433473307328706818848285361933756663576390600912047593331382697983543276279618949976592521817067384859572540197590574156460242775402486841519558255792187678992748946009468697953689524938674158784827964472996406809558383707377880434571238751998206811551677399213028158162324591537458089953849799190282389872163943118219607549427119657229151763200724653197961849132771218920055761968045050887872521016377595024430428097858213806672196844251369221276144147467762489256230758429375360708529608856053013924697992137281669616017431810279955097812055039253411135039129925666635217801772335199057832063897128869459831617515784975363329481767443996926123987759981396631900640984683513500959269899219189484442032213579175604395742633317757000619251204333292869855116894603222096341092486329488042764807969867578024204084366744267821310246973055040260889566524816077554831660932760388959293795612193748968403279007761425987933820966465285608556293375210180871440523640322348771962763569551445477457644750245147750160792305943611142780544223600517971512883251665916346763795861710999831223629289964341833106617617215840887766345005616480599323899069230787886375169480879919769324310572834788392544382153262088173560578098429734721308634607366701064053654226496222611122843205421600076885684891564694313988785794264565367884669166746799467046526452501483497745978604358285880328589064404018389274788896480798058903643180062906885753822137693610945757050859377403266024017207204888094718378222035107920534364511848302990069061809274471713000447887353376823802194284506271339713194119782851248027864075902245935629316979429849190853342005580773243222142683194799300433850059104529155270927030067381082883705022375879173522132832595547773269501778263065589403774960598496332734456540547414911605566086003017613409482513357249077772960243211039871023736270970347747108524279969920357681874066887195719027962369943017614896801868308821258659688252169736547788107454304641721009878487842639161658200638781986706210573627550872834582972839889724022071670700757519139238915148593718498840384992431523335038925684880045040615865491430656566564612008039485297610471006577459508782965821273850433184142761907244070736987463566802238411114641674375950102193532907060720291725202500978257465947855613392872129044140472294752621854998873918204526945791808795136054342949300336543580164642067175099391600708108805207114798399748946705841177146648860384439415150192084239924588589680969775637413200875087009506067281777462999243538604485899010568050547166770160894215991355633592383883769474526573354043071770697741397053247336978314520985206557145564846530350574630156653822889411760158624692561286700305062156079031655651127121580782142475302535430795824778825180365189570977105776171673911611542070500241274182141609726265787167730763729286007204191256833368660572609064714642236453240219680894854538418494804443528558876374181935832018996100817029786466957264564669249938548511458227294742047673911608277376730716659483792665504954845856158434897507972422456608843928172797650422227342190336827894891535885684440636965319020124231631782410900866900769659207803566971889233436213806321474954380959731209874039224425480803104518515910230668129664553157180107851751512762403233154272166862944515762218039780972824919226359073881082688936978047880694838783502257242891860436117723651851874326968709383157551152534158919490452003071920646160034698039916436273856381635721891850740120655984108378707296509764196238274905034680720552883451749167776838903395935714945105593885195992803286850039866835609365568705233733010778263902800610640660865966742962069034766557519970638387879557793979306691075490116291747605410022453216792970630978267895948388701065621513301224996988617811951364643083359186737121247935742259862168980122682735969613325239589631665869875492354654543648770838778748528341189415787003618815621368216957627089663365533357339811499983602853568637504289127353205696399063945356108579101678700735773030153115586536198646354640552008862571838472941835961115936194650612929478003461473275100379101602998341639345107345756824973925728806542927737696718363652323613104097575190008127299717711134074677528112185598241843806891188655164028625104879502582171409504892675432979453908688449913166314854900762937102305276476416150176180091944860529987320967994891368138871412851903720567230779168277608028006084621027088509029275390359808243027549579739499883614892953111803171617923178243316706239978156398440897195832461655005796284553607571947291262309883381503054902704986876814449273376896427765766759105144035559417374017516007715799138690042251759384684650886290401412116882009209881768626962910570979178698886118601128473494297245183612723123316716736646158215271707221507392847982449499796395802699988108261624428531231719929123836962332081956673016959034103553359316896387844393025452473989628104422387712349947098459356194815402699449110747602835768585534036398859279945122970074461903050961776236132088050278506577689544188664792498835453760514993423502049100646147789679155558155929568274389097011737744948175629421015194351347876627319339222925729113869703030364633711561202462061059717034733791092220159349334829415449828485173683055294891201206604432200103988905359973644061586141435109950622867600448267345190249712209707705790497487936344410953479400854796644742589844638500525325657542304724240514840922268573269188685508738641753798348329706405769789239341932581428589794601490559629898484883271490199508505624827854442740211137389344359538229606660819134246187700332263231311063642946432279252139988989369542178859511338825604528306027997814007640656475954724559509543004774243854862946886171089094973307672203279085541963407918047998369562589727363867643189706828891441930246673626608588711143907736585007335861894786261757680599763216203040063970748119249048698040360335579672643330560354640230257607639240315395114262136755813907968771599779129825560310396913402170013291905199998419480970491092447069178122893455474491736935713297536426865925470251192439567458616144185992068293089337020525911171995127621182523837635392937817144094204259931358524948255498015208478543136245834235793332872467937525424671161186635487986092349564873524801707471903977284408397288358378243933487133343449539364006315866817368961511088999882937600340069886367178151733085086513551393880341778426668511231716890638603507944526271709864744296728281481543355106846431786923554245292017108923050073055817534549796779504868566852056715527284524547014324973551657424016884241196781259893348228541118596881644889149130169130111389145244336176850783586900592324890506318060875388579084027570707469961280463321048036895083397300320470630409478876339392147035225269651624533355625755922348123964296427548856773837056885512807212518721678569917394698092257034182951949759929698483933870685834033586959057151331522126133344065795622924609601888938741466321878245021666914528683090138071519290881884385099950503142160473851525913300868880205445755276890064302302557129693344093550591647979474471123879987919710019351883724628087049619323394403439161108600666480278971419190781945144450089457814725753844465889840674879458432662459136436745454859028995572148807608481182853732593063339933250433913865327929801721423116241387444446889050484766561711080983972471661242085250565078739542894279857430750398001168613097346784305176358765494745275282838842282507944430291699020125018615454518543749802650004441537354834024755596945487279109934238203869515759101684886945293581944194598187021231799450120884677425647557761792156292865168972285929344459492743871320615618121541176350767502133345860457114118835957672297518029134721721815948508702119419397747332239481120970279570054216368317234322288158596313908368182233703580476607064319540544352448856322097919439972212809182819245449587683541968129866398955994068021954517023400934713611770287707417360790176373985699517375890923925755145149157601368521938936865376955176529077988458220544855487389873995022301672671572451309208758622769988766401920144988329242349269027656855288100943574819550312678306855652416085940781522143499851236983108540474933990587579586000919010967360142370531364699364308540231651474972238697336079634618595238005424601979304061949179447184223943473474365241706260474109389188435290641517328563124768114341405582516917264279948244778439786761081523998179218977127732621334979961101468882053496778490098185696036744775201173783030076156702723198377388469334096477329274666622083744772885475916803912162427622503257707162221466103281496627566793786416961339425064621844859749962087803193819166734640377219277607359222078293453482084708678221463402543037183621019236801676948582756361370617027112345382405066723454601886039835292135749239304782154093240237609554938874830000178387280390577971280670698025741749351235751104747943943047236172901976429379925336054399106435432339270660805045533588365400924692648457542378653752955070443517624153973689807415975195627249230905605272441288659052970929176646498204025620829994387757794791099139655218159622640556396224240611642941969302991233666695334901787729457799583433048673195845921965486489566996879066225932561914675301532616176224312669791654981151632790688128727906848009350439874723693055824794532989510192933473006837004255137286260767283479403493497658717129369570861697935739505672199596307679628059802259675491074377738251614342770672742454743059984714410785883923103864339984234834185034305730244182076122888286850553849377865490175157401163200676937901149477607047016165018916548308028034026225401941780358410844329914431814750186507005572021542922702291748676503005082448361068272359650019484145515612572284657713182070513277070783572031172203832071434115443245470498480028824152519931491593342006651487234476378009931286739167718874059292191245347494784544957035984732753866185028943100387038772380966832108606027032142496587195462678443464985932211202166450818405419742773709087181387847710860506918014849109045480693562609960974825711236640361102024495856707890936483402708420456598478979709144694888521439294831308271081940807813237094984564507166031071468321400680727099875276794127449007216241852261511398390981266794995282032000547810196735669315859993624576416721454219967669382437761688453872126887323059470111852993756109787309239091062485208935328540966187408097133727044196668163131589403515727308312212983572874716398455343712321596477820647220301810589086645458679286884950739709232872078501442408012855950039594614189053322378424629623409283347542111618247103249970833702563789654996583913146930551717147332487551816162899841948694833504815800568018150386376709315299882985190226711662308364277807499816604812095843953764301889948960355934461162091350073040098088635122342974353840918829403983378447787643897191917101062463038783189044847798758230373957501163766916105414527455094192003117871726539405173579600274251294545704998261187823692705736777025814314130238849219949234025500150895236188363720598071805206001039209555669228704916287864780392907351991136522243819113633256889215269372009101625849062795343979407243463945929978243295011017897642456444628597346674005943088766616553775187849445205010758774647859308565125585313883602186541968052463353252276339134359396214814480164598702874705522006101375154876578994360240735041854249428014392621982022525726780680882716764070615328096401937956061489752280175469325861037154770974642173963304033408748240043067946966687359690751240114598455533511472016238531730186878522333385984381551833668711556426164318680634606935725227636547056729680322757132413369230595847922320230743129022853126512608795734847470205926620396293334863368486877972202625072425000233509978207102697054954348098647192502990698718016763400928858100504536956911770148910749484151961015585987674880355978557829594117534430636532936250306129462543900076964804695766787431419954516139883576232707862861078175481304780808505090458781213586870893769799091161122446078215468111987883963335601595815262809888500154384305049854932700906027413081683799605339083385591387485971315753592669303900269145891584957785311376419519411615483811189970645418353928849563518321118223030640584370771285589480123131368545360046250165523433918965412448447162090370564112316685247793666445779625000452783257336780238987593099183610882423685766077397466737119554913489957741761748750781873066092686328974929871556007542274262245710158464983185666967893210022816983148623726101490323100596680512066972840793351471349461468011754786691523126835273763232601137692691174804182776630743355794255398443136091292555795658380729592093016356919849850129302465281492111499929012717672950643568232065002807382985623843239465901624765361028397488881533293244812011588682071758593166525532543431587014055656943428046623013298099241650812789509403654156599312863441709120680310748225938250352341427846224418672862794751243202200819711820923709874920089606690169172468329435595808997702825329785090050774907591761581089514559985795985560240688194729138004193414048107064215750150939930265294121899696306138038369459990033633374236037733773979661528860456997764974101097609803995866350873203532157535865232581270607477929740906378677552373183218153890480707066804338203346346698694312886560519956402180989698568175926754679422978102886476054359040936446242570976575337267139150487734069035460442811181286651860537841964674982044350713762493942475554502119738204674727622576433369188970021550101793382623980855854883457050432520365644783926884091010918999406262040669049329518411083491763270984277954238077749115024284697859823164211479378541485239489570650488661295696988127869391660547688780124454667091246940027758108333761463523070803579739053612998836136200363885870948922083331352994264351857204269663375762323341812799777708166257304297126066156912865333949363965292815394494004407808789038195504993749843363532158975914758655515219928939976098897931752745730392596012894613467279380612147746367083065346461680401585695878052863701455360952864865340177166463178268989253047431974604775228789526493505265797534051125125206562545919674938957869012015307622140033692102744835784421740548327510745910913601078839326561895296185466452952984760311921600901969544867731544577512254466496780478113990261459909328970022607170922137604731584627657390594311509494731335773323156135200671905497656735820876736667795834495907409433307303496527276858197207128629494451649309643910298522964079748815349811687871077013142363825397067227278577210466981916896869335205862730688958888596544999061272645203783213654999578147057875863665675630821133615184650260829913528237293801583875675724456364894704317370909304903957737204724919393122943826833341801292117060084373076311801380546448932390312893217242387278053766028117354291726588379910705238028021059830092031587611227745429105628642543073357125092512576465485852446664669052066643276715041703573379846759168084212587215312555974420908997676545305203456221276422541594134961546092455187372967368320404127560680265097373716085811772575066053228519922059959883497276071658524969072568380423075320638421317061416892459142206964644159603047836645708140277444701024549889430636945227158084387923464859944954213731157691329877949380005183315307497512434473803973606465446042363155744827862216068327469294582191220701940844965621739272750186035172984607053953072968066268635083358593875053729375121978128540647979001582520871112713783287375348224252198393425054897980435639746554551901937580993837549965907735298524771970707981365986688079959203699738367030172794884417605522757306875040882828084891356471305446440069646980439259010195086355987113957573877228826886267060601946628840102457330565756871057100747244842144653864114735939565715282715164087600103562229065276114970396984590690214077157228239405614612968740356895328804683668116242589756439452307832935830537036048814339403633010800857691903045049087658145664064720359810610446015547195545061096997551514308981426812216738864468399012666000943904486291555566079291208968812583333080402642504346343539092976895788710878172751505228991919458666676124614855471751318892790104381121966833475604513101039425622595481402657949019900427668646216990131797207037697235732312699441144288206988694826112236689461869781732208899272501832463421332901411485651419068257186026326793739626980270379687127383475540594536262175308396014813770150939397358065594093144612071282995424811492201744276085777837160297667896759047230955128078671214689347373056358199562135522844877055602790282327304999411311838614178290431236711963996822249978410423268794004186046548515428424153690898477512873649782531618539155091912620846667775986010268677961106590821986308689406427072402327282176635111110000098776096801550102118353406714841444145400441317952344008688460544225771872646758007069611918732754916356268254265495150847923629472848257023198663126316906332633434465412792287206064968373168166014328054610821100911238342915255231316071525419739287479482364486919653118999428055203302325436417068687465002031227747046696293588526836129865507817930215827339773134999239226059742620123968961718726487907029250322170897810677952463963261275202259301777296831711542564232265212206245295613851988252629456545349760771062550587296739099152179647122437454029290560246322581603735428491887366359893634228151712619381127946833432247981948482533931412877619191702080245188684746206416409647781482924792109602252652670865409963682737035769936828456586478989815119678368187823381545322115182564657351912089504999946610308608269341061930787364045875297646759368181366074753923315310271363640017011577918942999363239853713933387445094366568800018559091332259093526406504246291453827313413258932888630305221418322582728838233598056059586484540669218333564013364132432722538144045719516249276131677539632888358788394860438295469322885162566508622661543901791443897750268853644841286306530921594100551377685272786730688013830959729112442313210473462274123249659210287326128947062697826879606209981643631378736433385338531829984325299102504489364833432975265224744674048921407561637470453987746678779796480718798838012342027927711643012168835628878330642462016717634351092998035030269803929920263256230306918900094367517735613890367918669015046772343225587919665460279851021572865862319221914772599412277715635487369027412796016057357545224473333225450600237499142863947135346579450617755051468369589034675247971883750225459400689148313429466815662402035347894918686859104565053316596906718707729032317731170160666418860357551172647361574896550603210714470926746119110638531865311010349480750913436898045788108655499438112928216798367426578253431677694795363017228088085765158310525145668444710090230416806948806664412757221706454667842979904344699694701561362083206278215940141707197719659526857337613445528551123395333650083959728240242128948024587060803614944229007352640037011691345793416521005982352481857966680973289981740841567959364943958433060328191222955392607925014641114382269708496310474718396028460640067473736909369027692033651128712524304372456449943201569460557453357417114647159341136939482400487334475427003220291343642853633185981546643867613514691505846164275056220819779341670711352452823538387258960549558032869058791403694790253257024503884137684576088195532672879287493804082492363663402426761023306549540240154060478795066033270001282185527862479254577429727631890772769329285244299162598025526132574973659018711397676555036486422893249605375500124209750599414161025105330699872326053641358481332063345505507567484270124779077093748935471393927510149428576098261694655954051670314523032823412661358859088232649940852623936272999608300342390984903613223613531427595236910099919486904961687617889136837364293715089518295958558634026008694397728038558754870245221275360959233813284513416640529856330647820239710707864493381741037682399613485317826453739048399153881255819017316292517782584917433555370023723768527663406093460871209097369499734116000386340311914015780582001292051079612631525420324452647768245887483057120863363039199219473768198671346001173166667702793664531762914073428803751180927412095594261669676302540226071748435878189776589058977391060279273449237618487292785508322953615563366384111642070998113334154917835597728272356876857683416547408278608665592899822954609604898778767220372373902302490156247230614522794185683289384899169829859226129432634147608205701993540690569080589734866367026177036460447699770782607175841131084317259146088918901367888586129940558033036625997706706015543708159904722981684058664064269829956773170595875574184741704782252590008498319016552806771895149485323244020169565846571375302734125709416851683543457440207616332078116953446645501752913365571795670794966142849296275672505381887346046673313338488929169001609788339903301370813109202677947501747453414213137188996372895398951877961102428740213405124567949368024275551158048999459282811561351297828175160745042587680748837070006564557154384010827305790092662150708076479283561253358828243580588839983998297508127598361253376962055146398189709844319168779650300720336327453878201007669136824029893434253319147717724259352383803583791648969785526996897995180600030438140734707970975297545354812603917534185140863321258366292478057384398950996229669611841893981847338443692166902853752944277996546760092618600143994126613819165246469226360305340020820750233354649085289628642548316889561996013972838230374491929877941111199234577352490994148888521912281204829627643806636058084838593735269213922682710633398859514681486593367672362876238123404238315270703420828171836003157778003317559037609688298414477196327611193620295051847584139189114442348636782215807606174758548113896645621770270924536090416986816333294359772129416199991220060356278127900880211894237031063080608661409565042467286950225362733858233297943723707941758603342576774969627498207401445885034410139062532290400200804285552646605537643605932432332542038419000786387241873611469826939974867451998790140006233158514870616539007740161902779766079868283490237604723600528493801103121941836448929051658738122646337760475704122547341506904214687506707512316408263303672529104335061584358816635023298281525782036937072236130817821380983278977558036587542536626211162735847719907025417261670570990266039070462125458484629258249085654501865838829500537600900085834095628125561626057482817705271375006446771519826801064601821831251880897588437201340232187633808041928001420509713884222835666727371086045539613885190085240402692967974352908196027897605609743899110502507960292476872976369345179028894570107787558187088334032130144603583361215637467764127508200076379159886263337885379907845631185701565630480850894105710723011595251368005641459922639283391380567699565749591033329798676429814375993535819613151630354094180546792991089240661354960759898460620642560550800297092709973681297186570007357812858140992077393197164435353936915050157242339031479519602589758101828044609104427952095498077011479580447218653919186638959546070337073482752328794750444624952740711324695812264475109236032259536026512712517134362985363782203733328332732640089099833150810870563600670015051369311210374956810866091447641657656691627176372609209818044857659145577384348624711093162884400257385894934222386760953156819827270600699442692671511643229193530619912146864619792704599686387589357178350117037135865249571010241546102644496625866088103905894036274967776337719007181358353618858584708559751348069695188588401291056272725537835716526563414187979709166044972724982448903272657483383532246612438380708660925613922422542553385985799896868576586169978209060786905751763925746911720761394189973258224461836502983978947451634540341399118136646065511292171989591465989538499116197189664813814676562905385009896950066118814203283455763748447077693496133611993037483394324237297546441003409905831325492608964215997119355461374013518746342348353475351097662813159669436825810184946680648979930241782209153423383067391036305903660051745374180674186289447493409338944687264475323022311140371310067343788710688417547908621191694441965116610177755433341581823365348189178161049141230705338505988385052366678941728640716475168838953041735766916382703471812288226830035245598668616228689712624242425706365414448359972461890870594830808514359327046223319425810719635972703728941377836105806339949913997337772061250781071119314966806127392496865640604715982223906546705367280377967846141808657127600379713797472660797901207231393955476216242130735644023212621626440171013147506081698396574401870854109916271022195103652784595837388677522536689462662849754029197094153400014469325998994879643638570642194043431415726922169926254555376146969265193488568165380176131857080061043218346095828897544607166919597187271297182863187575509632136584814678292915505706636095592201978213611788260601972599053087580096313657441607099969963519925889977842616417756669483569730134151513930697505187133071112489161096532141102165051173523688084346617563195642433539229435420168205425357926188605935138517321747771279778805480575809061283210261961227167313330054516429333173873421440101374846775305719297155822783653554521982745859075250907307244462152798259508098285611992618017771953713370357375671126282670911651553333738358120927811829362239617400048477089539781275007875094942032554086494298902238332512265166089250911506919145024515402900703281343720945946051543468168148048641229657334246527087950462578797662866051148378227813411518293850293891994717777836776081789755747009296451512836899027769976373755813033860673712471669873263863752651795649284368187133848270645045573152651398612297119765436431631806619982628882825289519999203539874736552022472460220268982809273920354855941993501242975901819937131305023525988512109759020702222541569989353064844572104812906136574780611124186435520935371966631229687570643206973277693510475064235389603985914697248520943041249478622595376947554137930985603370387084604699821247796032933616312187422295135538420755704612052208316844518480522122603707577005507216221024019993413032759362981247040019315134772704226484589932804866136129939626938709804050273934437995550855056311473931971629910145335492279161436798279030582652622832141535632608748484608281071695358054610777564504907613101203361385846310516982685597630377330772973130025376237321715618752542648933310464905608609414086636855315560283642007012430133371743331798111477289007498174222308913622373564833458317257654198005006844418175522318581627567995404514309399402866018976451190187862758346886490568725730898328942964144202498556682931797669397473720698238297576853334031882799175937876609992985157476437353245211899830226798025818556545309445862613640608763750719112572278435926535133358358325082411326246358694455168847901552278353348393546182734833942077421928693246460170748770127886486712150260376184237720245149474820414788231905738994949811029237880343862320134539273429477977374855596895730709206490581085933206680478670424228264399138712209012098251052690401684499378685160324017765404407189189488616432789050171178943488910317520083164515652822689813490067690245627971184747681035587573244881472238818070377524266504679029401465992397792632049554941482544283420276522462649100921879575156986325422002693550577349463795866129196167466935282436608583603015606253342527592749016021734949235049727011063121126454296072234633194139963486830615317446285748621427876426393894116927245748911521232337330412169165848397121140834640473289093773939191580747390958466213499706976115325576643978339738541838737121198809179523638882927489935413087031204593228322517429417201774468441890702559505280213895148513992941395000408250100681302780402960788180043044014744162077155010347568612932821261653830778421638086974692821613502180347717782172929913598338675705985746449480464980124078312793821043134856948142033002865784556044916756604477677655791112446678038877394040139325881705870305618583477271618354779572714645199689436876312201858825200187888614564518425810041574119329724008695193765458374587833951568466243938234897191463832342495843496819898305139532542996690722933910223949017161798211448891230535373567019518777195447694889362667586203358622959452773967628237863199628802831562616815235937528612933771992821429392013398634257133689771006303593363352799345216494514681005212097231615109982427738628823387910692178137633112458973497131750124624736897796542354941270136317796558201587373991552219728983264591414120379195441444484203286887472073102209167507381755679190167218618911951880266924412327507668875776600818279248299222729736911432089770873221850981311339345464206163522363099724456949472668756030979680641621324858715204748566279535555727779783008271835159762262526300691368262329336833059421348292890310454251504075550764138472659532393704148442934092062457883189202007500819040495450780153073371101578346940459738092878842236582514812803403140013588735872797032725804640904737468539230104225255371844564859734456711202491497798398968856154744098031737301440549902636861929129245930650461876490611056030476867322886333299197490253914019149430901145067725513756440531238300216315141344588815975641054915924208903938267486355292341466182501495142281472084150848868421770933639016860900273809928966579044356519895449863728306922440699528958231019146209820773545998768510310445358297362579130290038203613421731948825443470330585460058630076849726399699696191722612696889473756393797285114293805401397594403055661949254426916866232798178145930632079674066625722980486242999385759791962231653128453520765854543426481530501572810066376002947165356464562951541284612434549521928328029985170135374108768295491880312029249158918047483601873900485918264268027468741205441975089904393448952876903791909009210379506546016956361517523139099210620862409044120475138453416960243971025741784159897997125544085877402022384421718108093549022194075174829891651511424470319421671788603643457997259662326144336789801428613640385074395048171473243842342043596973764948621255045035103750906480490544750374397390361809105780250272360362610907714559718171224181312291631337395145061603549570539176652426318325736088312409110187758063295215946734965992331057309231117094719822326691535656732563380208700455883804873898742709482902279196634429546488273652622227211621165969658409008635355291294664599885928808560721407208441334934789226551749559718921963413220523783478849504789543388994633723067768699922665418351737516849082766476106869957447881145140530087296116959724469086426601341929638940305228885123769857988948910106598877332153549178375577369617501834102204877269994884383159480011723223922160089396067830179894850378861529092468592710254704665588346121845025228438081017668527798544726021303143927801578616070446321991443962270520002938510059280357037537636603468280238603287593384701358494392761509997519940884326484707875551649416051330791532723559934087102225611560402494718818106423397316785086677531423079399414674923372647001472046052805248526999467671798441594256285127644550929995926673854637556211542150741672208106569082944534904608481430874915312377026137034657224228607065186425851355612351822689896996319975388383468985047076073692444423625292503744034501998238282492930492476745499330455048418048582940986712976131474678636955629993732268380388257726446737207065495506847264404491763054539264824283472927145390450205337116679803044092586045293936395056691922945287689126821519554411244772071581150344447898873767602985432605147902387232798562397888221816928690008936168352041012409489030055488576188834237566627209837516500832125480824348243008589127928522547018832146585056326732401246567034067007803647029139488748554781813275392029299385497934172681925509521026227982175191434805603924296838511737807075303795895283343479618800580272477280859866101128114202522125991492725478573522939770922082263983934681625016058924392178147755374560752350791755146465945978443522179302926812813746350689734331640396645536904302683559807897352309742776434906043420260463379950397230972371717612487451476735010401654713951720787667620448697390991270994241159201485846421099591545592543037702707604197003078954738320888538607799004691097782480645019683656043190064582108149087583744514831240818206720667639022940978268283467749850123028499452964997588875014921252417652756092842627451025595257586343242487367780956151465240692385727973813889610027087586585843169068187254163898172074393051323059989118998467737540416140785481389055548939492132072317883956437537482319747207249348147165968040344904725228674130880753972792092569175872911572442669324696718155071982731070499303453853554283916768447629159600184619537760078007695360817737180817103627597151802155567342269030366113649309672574830634733611737289026971752490091902886772565577493726761136819632696194239348459833537365492610189801778738408468884588741472419779984510853067951752272277152602185327093473147755050354801139318959687971996428181744967924652387287024481023365911634238542149350945740279669817352474235894094844668624130114733099479413795367542011759265663194935068517719868501356410866677447933227742055219352772816600395325973245986775279752446226503176068026573091260781228007255727755688637191312670558639778006320073684891057278798319031402451047289668667377347862803780274619228894134725289645979139589327511060929294372986122845331261313171064647125351908262000215935018704416731580212159387512365822122370999154141450483655725813358525905563228174600126153224863571192641306552279676189466412095207980259468246249794943432660591228013354421308845636222510456414521844872005960448422071876688781781823642225078921522983996024104239974104846590689686082728534005206508248937229792064091058130530344762844994746634665326976711971990956160807973365565217783210434272921775504698016200872773465690029828230384640712536049420294361353824227656452867054125659080769117042770424325053315241403715443687108613333557266490345123289567102532352323487507600899734784837257054227285799663596217341456328439871052712965666491438628491745683372183872248061262020433210860205561830373722832033584285022149030484615030533531521426435179908437379936678342586027464010644804255955024549888000292925170510857407962595692948531200598398812946916256899370911381937089218754210620257586473811069200474308642719688439181701064087563504666424644284258353715979169228250085290004998859888866387110388134347874624363781956683978747783277187397765919386903746757983370689271964584009634043577950927187752247710384436846045652927307493770236042386743245673957392825593822524123778624731685496939222059420399476603304190423526724162968833465918766031358616272150462914248979709442601608249275877407634733257919132728238340666154722884355383461537355503085864046788600310762900379604197028272650883847749634007911093946596454616727135243747087082664052238445813932184932703608980420403350476509846545950266126144990149718028042267934566396006507632388361179103351316868267174772805438828884754458288919902768857895213925685029303028933179687470228144317226740025999678584279027343128042076962533701518863004848186345740116772704108658054251720127925578931530778530004418531620922008261376401859656977208614298297499446272635966079042667102247229117503109738737127712699679839349453125234570254778280058691151932705553951024962008570402552415460364463988914532615812435280005382351531925795465683609178743906604513331010519473010906687635608405703823011616652046181777198531334645791046687233582440290701240230082267294039649287571661857757119623914785118155734369249937517684445194111121709071294245339735043528065823543958728820494157569744848181337548383584383999839558343708666646852337394807260346808655288885702543631059335802126374709803599141259470677723497932886557450286987843789972974191823634425823971566542372893869052893001943208964565549927006585255685027160247237658978852886906335430554102604445249895140712148978460671112894550999894763090261839097552609724232947511413655702116033725427613980252190130655016789824013365251682415749741474733777343164763084771401637891136073151641111947843183506689937505116438078517255440042653026380222271974574149286907622806273584063491336819286720154115366803451011804610793391570507686616828934175543082108195140162307250987977578402563360334511075264058086344362852230185482490065932700158809468211244387414072788024083760902422882386101997012956754970615825602699037784301068934257035795372865765997648534840066890727089456718313103620725988088663968257917172131816424564576535830396123614333992584537932941603628151022791752984244799225804892261882988186077982216170062147453400223467337143900671436988106762250297639439981894690587306251903426524055947526867230087548082769574120057171384682650616077473718562197202471105301316190218213077470707323719529027089953202687901286007492997903022531973891007685089778110225659683178437815888237091745369782007546062621468299488746144900972186176937762208197177166851965089413962057667956879802196657078950042020640446503221281745863449844221252442002109473221768768052814502164292809335985813893982136501129461222918370307993848708644130345364364391264642235302265239743944653715827167790622508463864102449018246577224842075089163004900672126894941892575801815323874792039423186912862546286579488906344602700256540336871891334606263005947667772769101034102251971961827092938514738873858597462626669554207028850848176332331700196875929093728746407613148430490665911229682404410507230364219728282943051917516376711381043033229961339728543289569827086357599688785752366545052072259959131897943934046056828212392300813634852925069453451798806617966537545382179702246285493634928850140253559337595647783409001274328621279344103093122363311070216398132860297765404825620295602098058017583272192962357031006628033025274962912337944300667103742083899950731611359858598850493853231495478713005727837826573232571230034987292088551976757726253236860974605089233932618028386318851423210909370366977238496015948723016441012824990304546245572068018956423119118849516091977875630073016396570049682101116018686660148515232690968657675793037823527941075670715639520768244436280355454857991900872716214603827370383037250920930894498586171141080893041261625439515739001798202738445242903342993347775809310867260940830199905223684295125416393202764604900370750622834027138794952160861892839167806760826162411786435947636724456534735601714427633174159634085094371211368648313373143515676614142197174268751391182279931991143891852124349958847962734896054662758414424829072560651105868142817491445131537032204454409586436651911996635496817158175127708983069232682514407531462265449426234545743718748026582679552136060498550277798764917102394016931394155766816904097945788341815486442351793443622581624178133549763602656287146572854010368675048866957455287427768625114282380337376065894872158374390956942108309572380511871638627210601663673355302573184833747228955897042049164660642071133272218686880561021662262236900660848732194001285198962143519490511712920290202468588501651992759639854441846991644382455679187282373471164631849641551522849438181037803987587691293358266738647857340066043335426883195509337936229071377766344416687715412777881556157490736838485918470660771128897564824517257414933085425054885139248911958983128393432005274783895374302874379685150388330273264609961123361732135724306735964977391994948978674635616192853320915405879796670330840108233223739823290012814337592851132911402420309439412972639670099321650672592833476560193663694244430664100694932728817644661636437238745933579373576747473825018899443125391792267114498552815203662011121358021500218187500135900985290673359519930488682464449356315435382609369559339926335121388661363559735566956223301535112303972831359100401893945042487877802236954981269848700548031449742563656400622535600195658207768125521009768891846910596742286650081976020227035725025550127424892558401136046666787820498493222188643328465678181998144366922933112109821025421180662108531018774269638763392482940222621302343971969397987231954363729739612529560471379744070951784600486780516206005349244294207132133347152005384570947156526451066423564639495233191415072980872473991198334993395552010675276547121433370505985366342779542141915131254143352419804219614725700144633727774217330513629414169457609602967181658141463851087220196872062887193481369161715056713838568557016974852658333518191833584705980527715987098640677874180316085797110123263339097564485721560507973227674493458270910500362248724761741905413849318758306911630589241536190628569642554838372060407289166704875336278187476330360017157513280493116699887087280965077110771717821648716150657631814146529376425807024800460750415330363899874761046315634285919355577515614307597157425930536613993520857390455531406318712375566035391725695011471682971230930216308801760108458252112153789685528721599240710749694660223471938223214012875639688432127972854361754351535792718943118927426195908125660675987511790414886526028252128418578954801174561854490329628750712293603959584982026835942919864971569218291977085529595437412245031856249115197198161320786314016112217136632416090826022455229922071877029113223402320962494086404026294772013647244554190314251765351718244814818910500763931021656317279757087898266977011062888222648470830881395693823780840309474748370351004381914444137925126239219656002991877725097909053648394655082208398606815004193409414827767331876386268853646243870091929926003800783642763452631795411635196096498051086834919896349823523510981095142974693618303212132054764585540516732285260900770143593955241434445015186599754486279872901240214083622530292867664718819269293127324904509621354124676502970751989152090284155878520097850053004982262963992328715600105609393817448393331437271690245992641730681352206493396975803843197238474868287885822108178649999994843768929492423508152868347480904511618482924464928340961613014233261725468536556761990222530831746757701578555764227762131100521698216040933000315633720285217437997374033129606673802424443833678627375601602699970962995469953140701635453942019591478110994515079906639876572735293452060382130212743407709827212974930943600020907725884500906059101010771150881127414710733370529724065228319022471171965110635420274835425889166965996743532761278398066135033079869748919233945239256421712418016532348296514483605413286381463879685604719053636111733945651313890946734165266932923542218409944574555116350357661793969775665842703705400758640567926468207332580134136095300467220200110921513095961757471765215167400855058495120213005934703698704143597413453200072603581406796516083672780597547309163174903970413881773655572228976107871185665106512217079569229226504732312646715684310218805883679915729931922886943970456717469952168952499816047736944902323964373487390418854466397157793970598569769235848478345440368913630539285640938356073571533679576763474411053138103795237169798976448572499947668405358628447656776154124654013592454726149711668694333680120099005129788366674717686117026266961941115889907890584684810689123003214288268343535594984194552765005752276023020216053561764360296383336364983227316770928687042423273476244670049771529911234802993611738784275188689703543578667048732615911501920783335983671072223439985343607293495770259732709948435285107454465306171134223685927898012194686796632583888682934597507362911697091313693389696066911433215558469744675986005563190480847575625715149575885138383406006363460209256184986458537822698911877828064890592785039878732773510450964076389244349512643849299715825727981790265564650791281626676194561825837672700703200071915240279498410604918716480136364791293297310439583258684585121748304391303429524589728346227400914408348168263389190696293184345243885166160262582604559017050720770832828432069978363359190226157888689590701695406596528682104216226158519606116265041793374529864262228953924231065506804754054171818628986556081280615352437339586025270149562174179128289009365829781179241903794631807296273646934297649786533181613563260339954036516858205616817138391001588928978520984111301930621193348480854961315134928916715207664538276758916960685244990326397240536232079981981013240004721931486194094773504309683914291246560251260732325324594297820227705607195854069093677966805539537206374203186215740062694970104808877366167773682993490322596198410361159982545371691286326490874682596190931591786137430737440843728783573465343145018859916876396252124365628863712437589196186651556839175580071063596142976242435283437609420690358777909550992218284875910029355576377254789200284466224898669183776134028071357462073595540065887814269893813825353651566340045371158845737886178358273771902436258365979703337873861441521338712995631237965727495388689162339519367306519299751828678410851681405663211183511641135019335880163308399530679355364220512770673727896986924538622273958280577201127338237434207097711300138897490483263448217524836261316471774189087209062129163652338193202161168791104547648432326443955820193090608239813051408173806507476881270003532001817863157266759311698925500244120595121121076088720134078221289495183002952960763406592394991759727709389233695654901010444087495216441909736147863377357871834928120903741795809240276704675085396749029268527187611778132072213285612030828700731136979807701706813573289681527136461703043829680399385534482880339248466896314960057691071903762012562266489530435806965505822079736341831280083553608264240874413241538765233690838396116883523490957149625211227424392726451404897559361208090732586997427924431937336237750583521426100087729985220061946991409832178987493857258679717562730457520863389084054245545431106974145078595129310258205152346668447282240900253710914519717379070792198165112470485643119218693123430021989512022008953126381708090508599343860454863632429158634664917986911289186476008622699662583772415260463032440236848049790744642992873451460277821177954951642967753025566202063381637440691552499246496405499004747272240204176589794431291914778508324023098702067173963288796700779711126917151902815649124677975523479386857999412767681868018703920305601230245814429912524332357854389050871771177839376560682072610732115601975071996915668286395790880341264981677807794050511226730334407096126944212377138621439574422329145048971764920952150716342411637630402558770136621712536400085579325929948130920089396498602331230475362674801520862364235348178420377238495464811730064377477181542778848853231515434606885595843015476039217556832040191387850514143763054088320400959330592536330785894905311528564951896898359161698439053722620677020581070845388473314628032457489121083169917768713324915427859358932841272484477393942680744331457634592751790261028681828243234977825861441061860214622421619085900813322841269177175656756616223930513177088158074184411113046519467913182444651504948614665573885328745917545433970018812804986786452121593842108686728989736627581316080436669266435933225370652148927320576296776979967909473170964410351158214990931701236919341674084653770261349187740857513098101493872819794225683594052358671996967465014962566886533522915682374039949204621363400790245520301881320807891177631420560951283789311612867150026533729979937112398298204936771765745230303093543243426645573998303733252524667807730830705605208310208067489333328118172360023209860790973794009259654781684954272079742393848789331004906963714660363625362185011659382084844475341405674543686542793414473637322463187610650509353871995615486173590092883896584986658926353230940274646184696926707898033291602374668696655977601334985697997720502601937098619573998273708397883156152479324754456528639008303900831399565294003478145680843167437644361251279150518282710512786727568776443322721363568020341598527764512576603943444707413706096349950442089932708229082765465101451692729254784997574251679880029330335279126368273365269673724125038928446957430057792622030422158780848404629353311581769586496139556080697190736857213735679273366140246858126499839686862202377921701600190535282742403610991676289616094219836964402672577812203501544309741720065115158200024712484129999925902364551401252640073595731575993887002690023298599553700396662492186161337560967496943444973455803179093016548684014447324225017300995812503350832983068927898491569756595338608190337374565353734579378637095664868989171239798367539409223853883758422373536156936557831772730584087399717893376968754092059233490499961669138174149981662747583329808298310671601396587997894604594580784808258989371248601813275604400265963385683734252491380831460382497352834782392596415633940696047164096240204029085383668438143360676333197544126316273132441837219518240246799973955090468290302151574660929001529931615229647833278166044522812440071208949446594024846265820790917974296779505173828975340743623501978422500307851396926205140047193218248722580304249123036092561605964655918331071149293859744641349942987353787959359494926859343588054027620501092881999198826329471314383496424802470676435403851369548487099496736377999521028550597036823436814657314697933036294474417022435500671070979247673536657931258919243813151643595234652262018776837074837193813746189314155635461180458536479215914849281274019119428032540104756486311343452068907989122587682427629180358191695733699537866963789509594206647333220699534060944600355871791912000887951359103149237910475156286809477334441975390197404517961951562162865405354931840735386901043621587644158551051239791318633036088203814863683553499157201353932210249894064238488636825443845594314532948857106156630716723456911295656327138645320439592426799055948564996367932288186113583395534071310894140228582421627904112244192159718031319252692822990047808728174216817058677190564443635646254275530941495658413874049045029298096140383018286951548132629482028710192531719498916499369377169211452900171662917261510685213653300621599796690489207274879244535889878562832904613622877935512681491811528470929464099269126737595479463410651224126032452072356928424822164358588883940830135513762737627072056253076263408285873251700745266733274537680814917164839963975870606929694763082601674717504847307877221807307282675710308730991531701286022420992856663956602055742214146156111133655631374988594631182363301373335582178137105350248419354743444518493486579197663428781725321230291092269895986908589631816443408558833513713859327098373950094286713211097848792354373858649909873506103664295053871411147047881461757397481972904332049304265453338850980153139026641995690839867880525984983852858058903952604942970688167456808202351530979479615349049828401776559513911434750733778300511749655986194033875874378230242671656795405826438064879850233211722257252151875470335548081519071444132238401921514517986053888268692822684592776858500232243260758482406177154698982057444208087929900656029055017110771391720928731200023551544543462483459851516911211790775287111650710394622251040805698479412098756638014089742905200125646934014243313827412572402634777750381015504746614340802481072253928917649775036461637888411694210274844382474061060839061780097675255016318630769420242872047491426100351865280860182038713851173239196968523033280144314785774320459164235393906296062320709959084649395893402127697781955705432408196627474870997152410384867845798281590784437077715500310687349204749448177972940776843270030745884810651713655603787863351268130318652238979572900367298362307758989764315462286535825031031671349097985875737338081319000490367724272192856820863961108687842865289592034452021141286236829203933544122995062405453395530794924367712858137325537766213652438775775915636961839215263063242319952086389250581934719820378694681351235367614887169168979916698392943688589391702679137984107918333047250143784739179364392685068849465879275575616473889177083089492390283441329103602801086485282531285673607902824203442820594634984432473631078334515778484776260937431426658779474565736893536778310466517384392397119326881117640689840187691681894303659855861393039637089014205293725358272005483160257628989049252286671255063916067436238196370862532698531848020331545949283898936598220224915172687038122834319116992719042277543576595686142878008150896164066703429532151892082517900818716989882232277306704064338213918608625208434776601680007169536297043838702150003298129595579031085283657912018604657564831586762124785975882631554828359597675443400874510124113995034225744316262127219881010993794134910972044830373711731847417405990510816703997852175809234302457088410182225439195104800154822284775282575105534106887994603112877906159047197156203344853210521720859054633084823952981671534311894431464631231260272509090530363098668189077557898560515406292298567097402087208281008132078033145144188833572372044651372635477096198560149105285307709037691788375668677941362080968849937611363500703076036045478720918114637189445713153069086534662931086816282928680284489081384739031996619007546245194828082221876313472426024087971624949498638926734597447110723583731092741894984498438531215900281098204504437891333243719754262315923277644330779919963305010689175411350658301066198717490324905935949237574664271920750864969866725982586466890395403195980043801581653188344125277554771566718620686966681814061579439500151076234121761127751616359432769798875685244125082603498556208710596227616035713888500211275042841446678822001100674269868719870778212959922694204393397222052509807646309035030549273183560655128195421975449896857183939896875569473496201192325860335821824520348295941590785225533163441869759943711338386609028621094528544595416706301103126339378827104432524209935168352030697025555863654049382926451495281112354113302887266415107921835214067885555831462052572553707017142560079704402874066659380272094113918009480549023328619488989534284641998864591762599435178374444320551580310457053053531260844020855643953865156339453350726410510288689372130466471522089515588252564391403733931355388264939853536358580423717937848727687791976990301398671992027803688230373551233128303111006935268390570936625084791280847070624245005947823249435703299040721614675538424971804449726950772241608527164185243611811225509655984004170879339193781745262643787687152161737885754838550159638472027855581356850459075051083358999663521726367742425586157646657220020860117039471270189778893472170131842045450918766291466129151785253405153036645795165939819231746804037650218688617490806122587397573577637032785155682760730052227514525954131368505421156324790877019997995861634494337205918807875318687861321672350042456558048599302182954898439248515744258263177542165422626070617371148654722351720477300415003422702241543477730614855734138709789269870311375311093571344300081535061298228507754961847516928599144682061157261301249786521119902729510161018654147139503075844386606721073551533886452897540460478445023134664085341960392355640906352881863588181136645041203496172027466180900700816607961232495838585044190000401465027295874114541303046969581162280831300476471940184563129731254192801918119703603385284762025953850571331716237945869021270211228627451643625329684539091129716141065084857742229983448897107345334186456636032017689641062259901030064184115283228102502703712542477522836754197745058863503569480199978358613409578877725513443173324325439051075274329601756429163918177913287371277043639384043748360177023260958538944118580184919552827803696664586823540261811698637855536169661972408217561326033626464179209461653483272056103400836826765540677507201197791567748093864751694212916585974139971542719962516219612961011255329472942455975183782964996350922373852308488769189447496315871630999614621612684312994687493767250384314501943855652440754088130387482182433893333400671129486208862074096464853347753362519776895905834612900146893545516313658951352687160023333526870776641362607897944210505002342431236023010382376368919397138712839642107384268540724941413914880576381787187093369571126008236359047496398636252982267081551825488810547285693767231670003333841443747610340697424103346435835796542315941791457950110193642007163610560795263188322247148318523991444085266667458430838956729513277693241163421077438709331124462230179115907792844362265228432279952045276938378179397822735224130131975832372306640472466497059163737773305295286877186428317731790739344012291596256975171493628935402742742812413876368686836106752611198445333433300649693596540373093801346949798592490068695863113163911904135535652656516029427208228252891052068146997777043503344469648667784978066842072083950072403981656825553266136694504060890870618318468315690109829353645404448773143285951550899375796372131223142263106812236774014858345379651569411709346329487373825507040372310562125607272262154605135967780804043709633540637564344467859362784069794058658057805356442174363168927558406263818602233256835882619006822074979004204382958760638268073261160053083059848694692150512977329896298504994124053332617867117104718462947075314298050019718475173023612338156150963399259940359542291823137329436917260028734451604204449506182842702247458155953799648511565462392955524460441591355398341111260869580008044339362378554861323844062590323533185162226386285550183530179624523341658209538964712522635133078750391660618674465771714354314136064618883234208498446436951245901574057815227351376113030615484176104496211500768644155698782135332092740813470368535881362138028310212600420751021915381177316872893083947420379118240365356068642499996225837045784019049695633700842321504992515882520222009008889525171911290759240130188136663005472334656309199533377630802332754236199983871416331286823275008757367780574545236843432945888420901775687478994965011082870336346018087566038111101753131790310307111326272988869163385166016558595975676992155986398011142642638571476420579494383236363677885246994785062103829269965419268338266549374645424875751840111485002272186782163666503770575024330410853477083549271874646523347466369038855712444828651202926751939980802315160688356655961143879396897751603817658887448626608501078741981545352818512765250309186939595258862427473477973089052459318581946136750962301909260004625121428551243956693710300237307439799153723404991530138057333393720238679525141036807450744087809164840968901776539062317177878150612340995743522610002072753674440520196729224643090445375204776616807516596396004111690095542439042517590870732936763808564300289976266339781676973966768276684757320682231983875038148088750905030591882457893899617567554107136004344525829436102917670389049011210507431565490220425871027724320676045120920649877329912563344929428050926406589895980695808689014840037855341723194057817193305433317042849529573158102574400327227984836166735339987567917175203742105591578122066482466434538907253884487018279029084579365336063748170717056129372582807313434652178344872049037877931719237928615144705070676590467297671100656900090300855246216253960431112880486721687399429084566815534181526035810992831184256224684457108368305587980255992687153079019128097234336833751057324605471190448614390782671778944939511816535258151167653369320617538577346776014898396997830789406777229543628610719311244379761678675663713286864483019799414760964831592913956904361447407065156951339199098316380137009779406739635832155533938261058737796587441468497654581414543430301532987977171234501376345311005753504044954472859312476051035077820631689815210946018792539546356050587039551839325453957552290573687539284653032794678905011677361415481174391020170304951002375876443439730246621471209018322725658524592471387489047211085668804657217487354349129727073854141201513585407559913394601555065336379717909731968160936070206618229901314908874841227192352257751637176056691765801056448503214295361982402491734914009600335628031453391928247465397942486152362320803614230005348211668823374564921995668816832543565197451099347633839455679325804509437008435370119143352315168516764786393222540667127174443127778189845308112124419261673294099807264721013003668795027418305922918653656340108688410041693432924905917130189267461585268270446721534238744781916015842464025905658747349849908142703195956188668752128626388040048690863076192376225107693435831081843724575033116555697735382846358595489561341619254042936756360157634688500875708023292911245612204101216390056744020020126008138977038692287417791953379139927703446258863013929243974115018957601155354273269564016255752173853622654197306033088599032663884441777024220923926817809104374135636489809109386341510848560209610844065584419394084650725525717997913360256946366085667545441031644827757458630894181839436314075924057526103033686841555484309843431331146003512247366503991514279276965833929240524325202102936202133364605916840022124339712962670952235231412560798383550418370156614830558261193124061938901041533442630797248098772081030092790818285298277993265936099808843895655661886285964928682872277762873117726695187172959408807951810161352975336107718588046371013626804818436942247824990183428291686864392820025481111217198127245243040052867710064100412246172408918282930429512239636528621319841469159882268590434651010320708664186108476443982200770686282562120577656712516622363206105160710892138177962895761924965923969859227848038791989763574886279068462420263505187384877764104677516726188053481118243457291532242505040754122827710665087443746255838529062058338266263479908033356408739781111126048053519882279343616010248367359688360723951337342818397163300474818182708951651132273176707667449136001114230431312783241612059481392465685582738826374322772886269431897484338441112115533019110809058092808009347256056406400731130830665459980718989399559053656458049636028308803358694699778381909425482300809735544836023041878799391965767525868461075246695126057170731960743851825550267021896967634430689512340620747970411921701903495064730145410342268806838416397132294008591951904758886053709501351737535068992755157026893577993328515701454790358376359162936541684091142017786644570645348616996728103223454586470520522090307357617351109606369290235887556787684812967775945555918325807203633374106836171149186763014413641365404191722690853247396829777110142320722739695145631819894036659116181266342603286435099194577736205055414294943750829975685810510197555021021255620297774219566608918533108089772461434383751522150842817979818345214183606408123517972164552539949503034546252147746071272389707972176285995444970615726857897058168530500025952630554966079390902063062552298878364416835551778255847840128395146698046226452625438989470776796305804264976171769363839708295472047272389921555925667837684235162632298204245689571982879993508697989583153186680490191508072047407015217648585773790903033278388386376900984082108934677386775315451357451792088739979015394753366194441486412333514620923275158838572510065605754645988534210836967978097966829823671843557549915842907826276712912946896072826154427287036248987788060910824069061911273223575825899575120201979346061641686901715093382798806558788653409455950035857549552739774213255760417848884860197641623795563010663328212232500896715626061108989677719456033799553221879320586662428777886131313255949651224292594553961991350504833811955266369528711780747351967428875321255469505265925223316458381405670363595035090908171084298819786519851463696080824956756506718175262686459443664783953082838371647622476592810508821442995083882483114008151490557850645491886330073401892137617924043249666694099447787978871007660715290921985236983988614157471814171182453295849565188800384093785531299082096924933258615302654386644939459715588031180862029866347669123788921601293409631884776750292448178108583610256723311452155278784005211002948298053861644221794311501600753193727604729704664832757111307893636569468321315723225898920072062635714839460936430172931664308370098088079226297685641119638957833034017367372775758522193018867115170772038241811995821392628289842037650079099090893261532349800776968565017626435836205549293530893991210447570978159216489457550897116429389820444849662145922198739662711704091370689118119551303088599283549095632033901561448566322337715743953503827326124725868809203276045001384350918640589130841277445730061251506893980100815116415607229040824124574379843496620861786119663728045492714546286955005268181829945688071939560438947484834880506922509762492962241211999847692522408997597752290481994048087816175049462996862910181412688163287180410830366512287208073373417621714634633896463471844647805506807008533342962946238917368352935668512846787114966111353467676195078849935526482938461060586850779016985800802492132438808889961125582467016565837534320225808974033621972492365528988161753897834256826623662556332780422490178566881389858636927814526205865559429627030908394136671457519944283862985671040674624143381115481537702091127973639704066569082323437939972357219684695551407074329788342299079086015456058610129134039564142113598224953041970302051757968322910159747606384029122869294443119659566683573690778069881525139566136412676402169726381458001848438242806525627262527570756180469509171630351787038434514134266245869425944924155947378960431111141091339532003532492048886203764650773431140460489855774110892647320543077740919419127223339636733046888000793746824218325663729236052524656058147388487132115868647060658293220536419173112519213682037180727154440383956471294307034689369195625711826612554729328674856040971765119382272424560530987388187122926664368061545769331624119197413878988872073828188388434627594242715846692823728131838589968831278173435936856896623730567718577267807097008008731912148633317315793368339304956488826011223428759676964620998669915213808700075723628651913529583175016603200153123003445249160616022587243453733573136420357723651887090474492799081486126674892443049941910599578283644819414041314344867612685384811311738787286288773882024800782574646927900059276136871997830351875369033540887822843803596134224999693722751956072894367848512423288754333827167676484908753798134251026105669306417002319222825863885895995745742851891783033054681994343747449497783736014235667267558914417150450771501208735254717967149817228125044093468883355754386882443410796145676436137641252278811662244316007643231618679377793858454921635334844608437473762467380628550508954710297705014848652928316651576321273701965755605497843898356522536812297045131970908122240831746321524128744299129783592834730534720611607818856520183822692482772979061838866178293383422380391957563565464634168589702182717859291626254823564713956992229899871130716941061212767803753969440977268096997038690139295419182286681443364731784612848019020187165886367446341752920044085549497794081609320917044985495773218965580501002559471248088258130340235669848416304252951331188658407118017459701595877530610278297321571103980080275878254949556140336994740544395345579603652395234615941696356203047013246700214697121681519080114300013345381263482330013446221962740286357701697195969414543355897125145225936186496091678923570222142213504176463552060347271154245018069194640865880996143260679050854170137041136552930902568680403431497915202534118267652771985541740915768160051282525644041205691953281728684215957262031160474562011883848837442795990257835512654737302747429635016960826838656541001197564506972921594750240378896240057618584157214260896256883592575022353203040516719286330561989847511585928743292957117310772032348020968908995740418232830853417102279353479122143618904609000137199801730903359021565689089401251568551239032365956991927259350737614553333690856966563939976111436413323965833707945226970593821393475901943406297362769046868321766453367911265397829748719490472992996799426010910543764638829607498866370532518303489086101308355969466568020920333559431718106064507660901641364289041842484406332242123357639327457477770321378866057165011386054086210178056428244842617842933384980124639249066999094555816603599669956769943641433125566146758475017624335654333789286645785764585346044127497835006889665279768524632546338147776524275876031873555944532473640864396453986293328358192846349796338082600580982228471736409971056984191096189570989307359549254439803118863728407930974663875231938156908662956784163842100613951204402089646897957422170441778824150434687729434527096443072104550670658727015907597256522599191971739503113177727980516379677038294781539430278948773625952140396381705602504501739304986261552562633646276462834450193119254669277526150351486098249935550679305743811226714378622229554223411669792193128657606835782271444764810659432884223637806804790854866508945834131061422865050094774460796706092476514973282901137534194139659506732322908170751717270633512841264985676106194352457656024317538416610812899419428607981611928264711089451097194744549594005847221134714894972730337492544552433682515212372218974497756589055243350650218181750062672041877347069700288654380704714983981812822475415722089227171654195625265144609222523653695548924731087740132763262679510534878229295968268182427324651600514471454823575146758373996513201114481518772870399899995942191822622871370819599152509837090110911266250709233536743262283908024518756015310976706572224174843477600579885738563350130379428455209538112843096981125251222913723152460810773844260165568974636593179689132140642104402728032784385712283559172224739665126966685698568589702487744114617302978374772186662211356140759717781497907300028667757064797940824481216555396557506254884452732616178255569613546450576131582555340471470982557285984213906003762205359036186782778104635375458001979274672605209595580494037986546380650591682250037780950412449804062551884564042175416829083895123578849569244563152876525104935906217426173610665316758708517289726686882805256579898585016625588823631357057239370878128289828742461125219131582466412041847421830477192706147412052806865852006948156975743778144593260721095192616828490222608938422882499993268860724298334269654531070872759200349785587633642186692224705875541695791140002733764113819555462093295835662934604549305952120778600760671215780305562921566810437211996969813777953552020323809485203781923835871041391827800164467221196380754721037924561275921969636664342183145434454097146654461683723185445003485905388416448281998194262648831650213037748520627854354884626977494741528500103266126751693693604081880232412192052146540617679852965352838414783894946916906606266171443576272750540299495318806008083495984518770386050775867741131322935582066594246231620613372114199063140892492613277496539043892795365783103661053358950923752186710299131316837815903844351292975481743235415593676573256991326088894764629922168111377943733894104035112705434836581315287772579998083026015777478038873147355639228664120381979627594504220651796900619557822327547547912607127771508147891540843479103785719799426233381008962085564269700792191206507684096456559180850778033015779378637466233056204485964292921651706099381954039010950092041505250170706624061769795925825123446525472386215389909781513607135276883697898564075427290051134746191655582559188547028186993595654798310504565392196764553871013914637795529838552931535986248305955569987999493883102765820336315291653911830435724084464086839727002119815016450420444874168389508981383078877064328382707673631325849164252244879074347106998521981800193562807664772803044544564150358774281188302769681428201439357545583157855253039494824907121244083537060715544959453490918060179912872202428744044091092344985796388174434969597202572099970729167229049408936892103153617031919301424612624868937289814957352231061475185139627958213945728571676184762657183241615546247740229084599101713263214268993964786530509608375920817590730561023617051067548568526158263448428975134044632383884835456650817176853404468712521377950868102653020189590212860434719055754720372441010768097789685133552622605125495753512684100526632686984519644330911262951274306791107592635905362219201698839506378116301759923542276467214370148325898579806188382136148501260204121967931124058575713694904847541995287231800305160850146565849365622991306065628305807941635507047122132806273586448770789817583468431857889934532178676438612604244108300375548496033829920180527671570725949638133941004247779305397889836466216257712528114699395969721662329034354009165810138268445905609129665697515867122523031252202960049479982378988778282794047324637738449314084629004073799278337106893160152510257736602896264090134408963496872147154352586072638529348673986336000672925977413382273874165550312744990197800372384803267853556362487958890370074966450148371178780746618662256373671476969057776057267580454627493530411045463742926138398207812522986496060915254331626509978109282168367912800939648752606569810686381128208121543609281761617501656742671529048226527264483990381466198948741037468584806055198093590028970121705790611502600346623777705461937206250010382892124194212909682769499384708735973461316744683391198944430149101889941293396174723380649343897922099511026627419811236266336586286919259375852974713441999120313538311689122506014097151455334348997711365338335597725021481886769387993242551230132313774141420553627421535783511146224068346156317822717040390577208032244088113205521672220101637913907333270824789432514610815208278568141822504674791538554624651672155166479750065220483591411473690151385850690533188321345036339269162434435039287608979620011668179025679039488237275258747561361857579024512099787977327232856120162160350743155883246855068506876745273732371106754319636297991855980388803897114066900783356608651629115007241717926584055861114866044891402193477984692833555291124294451121578530189934386649718900464849322425135755785569038116309277580492607163160891171772056717350722303643069200392653571110878310995872821365706082951371152056056526647716374571749348041412681269268891625071475501103389455391178234056504281321933836420435268222705501224818189560093956079757110427410559962273804142315617061028612705462259110981695417633580130860667884266722491565665068675551942029955435917244933290153859650086601109834195624506601642729418651463465014940602257513695688828447724098862480021607170610827431750092650731731207320603290317609404221602481281078227750991004678682941002773396646453899566936199025369192257858801530681703777164033412515157120619462732841261990608324087724682189773243340411328108964413920734271622848113596475145003589030726844027242208786901613925516846427022545203929513688683144214860368607077308430946908923846192138543111963961053446150632953206027120947197375580311539582433915997797141575048815833767162402912618690533333848119408249142634193391574339678361058765616568798428120996956398152094187339995764767150982381830063800618395949383031452187582191434875565347401061404742191547460809326949975661800924031777761684249968735380892226948397336819137850869531131281658822963703983290471386733684506166848415665499859048222597822449980047649343262918212195738404164881854106099146947857383078768438515614619885381200007388287463184140479139574444597706017776948581818422124437026353178755205430394541466724361506522682859918229832654560799239425969544417091798097836822294348696103231152697989527079807329401161891911463870278904671036192740147549506535272084531688123877555503194599163773399647982403886709632013655627780353019933800841924171055373802111148171137967387353608674825514397932520068107221836312866569715666499776111775864526946127695680715016920851016410364694028220904834357000134316137094508114358089330975498385355851911724283189474395400285657725826775032679380376771492826808953384997501903320744985057838795623854322688455663336971037591812933764884359455148474936088250451533181765993017625961152259599574114580455821974522518742666652037922334110961134469462629416816905047085320563806537904552124569289657440355617337524741428524148667912976633361604633045770637719191821294745864740460376391153194713952284353069666568098014995407209805638749980016217478274213139716590926304729596878970406870333020274014106626863466285862277867032483596568681859985457374255291486612500948385854347333249248165065551414990864526258436624884425804333297806660338219618832571328625868109184586749674806780907839402702045700979273376877447522821392299839738995235678174714910690717030887650112335372310432810555920049502638302372856100864727654377368978991029067733322784549871018186339581495443030438404343708847864538353686438476086005920526152466646875606705485678773958243890147570049047306089086869530764621779642768812723637920996461857143563042392694498122798070618709447677270303251677804743969872025856253295899298947262694915309987014993077494804333497645569796756120343629261668992804983794679636966801300991990993674051729042352642901915814954761756297442569969308933622074960023085354103715214968018673511681787016095647310377243659857803727407923947528450580100236065469826204300610820622092432108936055698683735715940736219680735695264160728858529426074461757237089356111171852847915402397471539670907895514737292233985513294775316235000093634399266665912832774753234952192760059839437988687359584653694634941986176162045966740890639082910075305111162603855121812886643602620569973906360660923561645701547470362400085127879044214926226770732889281286592846646220759017274206222109191187867615832621831846103741950472953888475071674764098048093516531965050840612085388897931378952524973835400704744378947394395421948126898828471192456294865317944350871904059194197204715422765860808873975668082209860978265335839981315854650909631469234229116031431514487534127810142723173786557850626381492024098034317808891578799827740564852454399959917242355690079856279239846888291527682675284941362724439982680599732106537957765161960717899241342645575848484456990762759194431059001396463526095262623700539847124679739396414389216714095838393707240265190776340795884796925826974851215834705040964142107232289516492727486800369145149180022099658196312118469826645463220466121190040500990202594678306821082560704000188170601507165355203118452755116036768391771329781944278528772577760701054631382923083278110695745375595773876361052436344728206055023153591908022324045998985767780041177889171915825396433019003385032098935171065248719789456332794272405316643091846443502666632830339686639846712600882935602996637604988240996435674577711742099592998052305760900296170579607889077785323560739950312497334625271595514811925423744328602895605970369544191686782026217520030659521064827416188972944235135683714813530501160393838312456317834526267498921729165574440168844969737622007861305051008150576965463521012775479411876529634739599647664609761849522443842288002283066900787305498204155659096983746424966253549708745422545244818918952702896518859470853166701612287334870764025794158408779743096048016121364278730623369217039119619974263504633048731269128399172515850320001348081457566940379454880029502983684939489115510458614550506103644806782621821013027081907898144612308274028993557362460661362351770140032382738837604426516775004073025985340205384802070800093921471893018866302566670772373608003785477345088947560575749976935472143554044089925444451754270120235760149772366102870450045058664528838496703334171250200841390150092132191780868288255043339719301320197551075697433730687812006261425677442119509312337005096154787558477927760732322655434064156573862470116447331342283221740711826360039117293476187117825758392698450252142568768117489492165445538183942675928703551808027854170633176126411382511310381617365062178551028448634641044111910868394043342672151658689972050309679777132939323149961624226867324745270437239571614979812164250136377308785910448353862872137729456045235791579268211084027078458378838631823190621291263444620487566917431647904854283895767994038981956459496280483655186988663425232516277640097741113182315553229581323251198479024462300145565990893770194028978588467310667043159515180428098350357807711376720354420714294047729864709568677473174219885712980272656515347247384278198338625187808037497122915061294922226090193600445836958973504660501461631715386136102750755389118748237582461779314830910871235917304002138717515901742806877350335278443519432543578169173548740644123851459727433269433605104728255816196557882865512583280581894245753290958275976174697002384407269377199323177409605897191130073297550414675000315407416446918121655167205529055979380789277656509170513455820729896431908500607125228232602868721330617830103219648239703011640546234595491912878235988422357310229727453905934845964113731374505105457145583614092456614960015841738174279979201413277779567053936846546486545870073192408662808066808923357007727666076214039629033457331519941889428111657573659050957516374687638667482622364816170387418810405234672065099277726169331759849351988543297043862781918421736158785514131697480022768428006630402446746891614854907128240446346014669328675825741594314532601384799492267301360665212349978923182311615527405069019823728174397991549037213716663259913326159183113286949176312466877299851607671613044385780858578016568703560950099632247600627655066538583274713567768068329016692091107067331572956414670144662453227785574967578866195016447036178172782409949502989803642293450252027464459051819197664859482153821392851675809324186488907965570203798410908921717885779580177883177402877761420876545330152121226589542486080466124036386603493128619559214131480596060914079839965040438779659785399185689327190647663048390615922450379293016516597255914678978769255540916821718675455175402781848156266136518923501739671711589102273348771001785901115437434074836553798251917406347144901985735447981632124701315407845862510511762269168400564259924035417553846273238399345679015214751907171953298217829975573473744907850102610081876716350069076288314858523226164177574433841027195369684734857759355529186863044207643591653280333026781747759501381337014200453551546693323392299339574444146630131414736961372446006869922034461656834846399670950527444456752489878128223233767480303417250478030680550720082071531652372492226277462727113582657233878280068941867402512801609503005923353729007128388145748715952564257161527642640691630248003459708507132606434853854966841014939659530405511942701115766512403863730541918832579154451345272291532225460584137149922262856632489149967090899158063095196220579773992000805342011168286128238815377238277471137190976237549306626414744650299632748137270164169617379402150017341989587389663098600887732125002098462489083360499063752032293986567524155977646715895595034508336967950315554914215277011110893075020804252180263396476183429376871325144918010556539901290682562321922935625549611850360132037388841107160226053718125647078127290492257770056874414177523126381249562635440907160746846823891621207688266778537500131386599195112759312295661395358726275441224165728294002308544373984943919404138701798315928236250768836522615558085832488012379913134556092625042851690581151856458117483158051747003867460903857859387559631508417484242568350911390679454190366916998275398043960145420390876169859567064348628275124020240051314396190452804281453558526039923877555617615685025621042545925205738226650072114203048387768357886581590009075244528906992499233636773543667083447773287597456140678773162336276543852230955892060067005572068615560309079780989385340959409801975755616752415409061857974776576379316989115665914627996851360062785984502515837268502712792315606026751308846869345941417979602918950472086497408693793106931573703379752834518609676043383837030417563805365694919276997649571084418704755460482092700799560999289929828038036556833540359775272731015739532643273278376859058409825748958787553981836624361454042028368861425076954265784219664694084671345781866481091611284680590200112725248322039024863118885891113940417003926770435313147762032708845002510285929638590631433339908740328447725960233498745159275840306114793330858387624626333420033954548264842430628793460400902253679320394690751387186331311235827277833029751696301995124762307593531283423984874585103903955177720997292348246394704877905847138931134339091189303125522028434472766422604637763420233290769551249342673163920083403821603290107145730679930971912455060944281049437355399368524817850033818725883951181392436440033328678470303730311879196475761886628352510395641787663356468533855339431960706318177496567165862561974086047306736787771345155325156816918138978926023749572665296170612003668204704412866489012087332665061884221468464819143281446947113841782258867342419254147042573758627563177897071911270604714595154431561839219968667928978322750237065718492752010589243032423317126198068781415980588426902963583954602428814392293036375127731295187053844210898217518355435841746204272787886475401285697766879513416378259331582364509306077366664274196014968530224588688974283918846150483814955385671448440010766522929736147847177592660662277906301325119484217292960251399820611958021275932247097300817165889324631218014172886484427487806069077988172386365613001557211267500301676342213818024380714307834703006300528624113057726875932781057241882150557400142142077285223433820570880716214415668671635899264986741571923637313208794903773910868919977765051390290571096525603525951917785767375832963310663749106982708820008108959280854688902964172795608992248855837199745983870107514254590716545208725926217626135644264246280315634966733623853821120495595508581645030825944076202545777823823505615035806334452553731078712941429239975783752482617783777149744654740509412881069672212049905910545757518923042073593513920519542356401521884756993399550040599818241333540053266391225089945392548142639431110145730223984534949523639764366302141674362352202108010518269365153195230254565623011086116829106821554809660550039814868366547238285730064861190885173041807846383497508690610231263136025524196362065546224624355408504198252097685824534746012416374023436051844594673847161585680090432777704191491516677621040963224266500487428496619763272328551690178949788875866228180226303757611981685074635335012672352377821747653650707128079277703413533330469802526794642389710745517679144909756958998074099632923406373982414428915125455947667305248118273868947751962678691652311105949835997525495018887175538270110590044868448076586949565546335256300042626802050961391902034857302706711108860788681505864847589996575943792638962162396476657913305009470541636136031969829066056042213360311784113687728279753625908753948321033903453900969257539962431245882781779544475772885372956215704881295597275858316057720737376674784895697021329972298469195957687229897838346727520621248265964420260978526223651263053721470215162371050487465968362162061521954371361739801032345741455254240921225373674679243800866571206617573066893452631884277265238125639046389643083416522757166378560766264928323347044277945417771560218298180086942912621432934518416838262781571288570142430682071676579408148989051792349311497099054235409439141946185450295603196111590266587431308981730870617273593392705029618290758885852667403762704859425059041273026986835246073389826482027114020355899706432250671482741645484500614849432887598354736328439172301411377850103951224579236094960272809611355456869193452916491029475686250177948387022374145120084274468330781763139295481464991951096291068721141867072063187425744798225093726266791768174457008095682523992608067061658655807890924904059201083527340095524675463932664353880302120150123316565266782811138539967427110379469344063581873841087712139490493501134526219114038291845600071128118565368112810254496344064746442948875605080063672111456680690227930017854649166235044266930576811462245797328800675798376369069678166167019262517467936430333880030977206492198146259118652233491451607038702396332558122894056460806726386761567583722187327155751964485446290939565701203884893936842388355930392345207815356338636721657307191784304189927270460605959199707069292124131360372737889522728463453570552552784004820458458587365034977418646797181191655459698775430248842277778495353546053825636202232177488196563336833637819378911559781273489611881426497612175079695375565265104941951224086019281040071243238995316372090454426753300239518312890017275960807138182294248149989380317092154785810368072552988853307779482081438849748032546159844799122326878704138406988277633371788018263195522302373432385418158683178169736617700751343813496334062097041899162879608888663673766147902658047503332722399968925282096968993123925956260235965565432367701982888906875371339293006684422399917634414023612120028537899677732059342961046746437273979957916537461890202011502261773099697472365442971817955603227993292844692940808960411812021310993274190653252062812077223798023447460068318788542949163847025559520022838215833752853204674038654382208369438066064839364302581097790584135429481382923846153602820215450827805269425156293528460669964424390652312819893567585433516420844218841342252133719561236042341865821307007994252740918022013188646287794081449730221293889206229610164804807360202929298141356056316354710296686102997320266666130164602754477597903678843835462910002076814403169299780462903648924892583718547808094038796244944795880432091817233314166074040960218115023749021080030809980738215366112496582736991363939465421312997759575042712385095640876627965452268775574615165389569216569634000523607687757169551541887340415893874806833846700529132265417581377540495898177548566874433617240966253644100385891949145029696563602016587291943180609774002568334663385265917169897189227764884935807865510340418680609576337922966151853906308591460015059200017138923673459182815415410094682662885811110628408564083493611652781081215238182382195769949733875602019011830632331184419624026933699114180426534285185174952468848014442939552683981632772473156355434527380942650905717570436312368673007112310181112565954148573429581943990785765429592543611917363350768764813672484949048355472662840509297572301579501620928484636859922444518139977152820720224323714657345382365504039132127550320014935797692310022849472437902684775150561113440755397857091620819271801100157787790639431046055664714833554722267263181781743157536357002973929389564624271817493399262833501196549254385254755291577754818156046533465480610485279356668789027778248114194866017818065745388698818162521636198936966150732499308336591763427624588856485183604055400441640274290213822506743380373873240915297444785039585537888236777725577739587287448893533869441763817003073971627610907657438502245672237892854702370117005180616744208039724532006739548242583471437781912833962263534662983994234383316676758787950244082198391923021581689280895576236147774002300594369434954136749470221735227289804596940895313642115756412979834567615972917420153941484927168119048549472261469811594151388267039677565592705536788124727211400614461672665878324962696300818320214163740131406608132420182369712835213150438641654673612405856564818439571289406374931058786980850333283142277499041655913371124909766836874076609217667113878039582478903569360542020773248606154459938760223696338446063661165611046200160038741357259633318903631880579211064306273337629801862186200940668186464519884793133849590333076814110380022377904112925562434180613742673165521057730335986173926820088266869076446354673348259016830809894791859120677222521826485214802214069704842589903894863037385106211672387834060146961060906701609389696079990243755263136229516047910569964713639543775113448089153957206130121162868774072397562386360477742411309203620043052331601727630621194344925793658644537461748183150362135847101696670301460888310204830315436449575245205270736872730902856675506558824771144230867085578634374092799502539347974115170130126000563068818017035461593134965769245914677136634654749713426347910003090018727821919604672943603954389122482603059641030808871883840013815015163724190248503903182089003998570157617583020891954008417616841840005661270255135387969309189945918761022623458970271589409686966288490493113348505912984804995204806474424730245495544160529478325733176654545119762695417409323497757836882552031816940096784115680712596381563510012794497338037518091864579574620470413678698852457386150485869101508542735772499140101269657236127801879013353052345990983160818440534051022453464650980747664280627568400845744145241219504202254970465636707391432881803495208625388066910025703459034159085450570610704282656953475106155006788477961672631243657368151422291471154382681119679077340701276593525711976740245703258326604088803938964762178898855938813377995776867714632514282480520375028495420533299848394724539642369420709493228625662217902776124926131717490106300106339830760352013544674984059434268312664891743115685095882124293324498774894360025339294323381475346164681662959843315275205337756601672710289368888777096477843409526168505734242767592612722003111924098533682190195481009816575388847024303329747164341243268203896628645736364272156589332807290026924646480063101570113490938137373513070350367928230069285880233600409694843844063569068887810917890557064973287842396837597597072789777585039803532065444590472410321812995633438624245259452760739838154036745971268735949046264063140432851143721654972432538616308942648850270956383230314992992032039690432028908377807344273433623954684392330010231059748812281107870427087001930019395540213700506138438724867733243810713459613698516086353292566750747540051133772843359777652588517719955321418186368241774637390538203089932919829116932327073679284083995997278564353523904373217596812067947789481149615089342873194069823482472190507582119306904189052555494588413789783414088076346940069437208561185785857482708197848831295474642122710284291047538365087946252933896715323364082777746966103264874337933663959242357466400821218965051944195985480121252842736521606386740725340656622740111991826838198130088575866383741163447924648625912391885346375122751230571784633461862425571191790375319116039471778735476163912053116615051418977402401300821846051551195643471186050843745813600556020332630636066097862865186732963314951834345959082125751671567260472622120995301947306245105793274447886108000639096012678223807555395792239740420998570008090195956729201652657570446839250865718359372204953749068656959517633228109234029262353761013551756152132545347614551295359458936367435235001987020731982352082856735202787706234131546048483343958798666579717823834448059241951570769002625251821970605851733383232736612890955744513157629400827645947687530151837944260369213393822908422086132579617398807351563256254176745061996594483901979119029262945656615267859483526467177523330494282571094916613975491476844145494538433824030195228574748402805991025403999972426585736029031708699057350380192404171578413709804415380608967797432827347698718090157799244355914604300788791060284238339785884601557033783081579059070568091219594051115625962055059677584061720663929831501870757006657863807294743557039041642072366052781907285603394137031902762588265755238627144040171034958914712523495149543600062194411972450322655878146111030363060169283564534049008824110274824149405359769641640391668610177981067938150422192206442885920076133275220043533758046922053588338829756639233100263386409345669758203937735452165769526759835539628216914201387327644042010344645808253627716603421515794310022734681726746315998956312728722341175396744819931236045961712850341275961715974724605666658423450256785219546590236504904713371239196201789286541880064748150293987284922772340493125082693789613679851162962879694160978119592291424056626133069116348301870424874488104628277942331798857322287431566808430864250009059062246128772260714164647378943250169566541113020228831076739216217805629997757065286350531070118575170053080870873074693966483086173058901840142857651508991899080740065392127569598480910564486682430727085617116194408195482719632576414362699803261320294406337724566998003717609533367935034837377290014481212510398093974085512736295286387760276786109961581884833715618533435193020308722587002416658180700283279919033013076249698893593945562875310486669965192969923058363176013591383610192837399808916817524987583157112542116167946020301431213090121099807619411312581826249098354460983596179671884248181051878623572495333165876933149621498031917616673674476165167385552312962604919872672106514055142579219118263115906713219097611589904306316646541876379361133176307233519782664668778035439779929909289537066753218624575085679758593576764028977479320853816763311682222795755925734300720923459739266764709730545240233664428555220096903356681354343308645408286601618695769444148342590389466262508881619711182314645730157211004305018052344747582091416308387936647070791468265590530073671366599505916592711359221247106765838422508501255776283957455323113392599623685469667820812805145928220522438037446471042683160016269943457121074021357166167174706756156395665634822024528928590050095345884195784551127035545623234584505553230545620363185191071145619633812901133143221939505626712649658842154112733608766522312740288167054101591340284876653751573243879924537093234380462785927562601280495341654348409924549646407491963468279953211655252877437599442432727575577660181711649558850776964132571631875081148300865717023918571091094464781077118516269553841186236899691922262755501418302277389680607289925973422823866236425766794471924350242017190065803986103833213314044129701617703800253534166324748077674352985934987238090176014946289711863634405809560527761117993510585139554004330555873103239743804523926780854458676836359713638315557763761656949763598502438223831723252177193948586271613315182503095362842018893711213511837259022985834165893326791538135305404365334781536131577201355067362818745642507993952552446498725793979033548910527577584606281016148054615382414597089635954235278237921616858941755228755476061831610843630559869860384938315442022577064968740189995097089777578130751709526284957494244630282612829770865120510927743421600085601309477669212990652796713819056192165640899071720440447435695994972131859311747946680494201047781923427030948347066783343179369913416748824136656490992332210859161351068926891198392990443804589266986048153141225920576838913973161412591924344141796938937280746940661830651737788313288384900433385094650734278099716610224221393419362990766085562058807272902771228946543202132895259744527726353001448787627164364053643559755576794937998415961864877110704992242423213998609879136483146375728458075675163589371126636923165387387625947805708123837949598620892459988049114644968933596522695311301821659097283521794778750232297114116912125879270619315933625825099287730219947872286717103549852227458578591195431285023550080884517229406514103755677533432798607745280533013135808120460730519361077267727317545954517956583940609131745595276989197040585095849304013519711743495166337647174972441583301321362152540536331688902139248392707324798353254868627767111318224544731371893952425950797217858328006637355773683842334292614502704894271200800620013652952719716481197036014551618951499420099779572010908742549075626308464274100358192663150101057696362612462934600145511784920069623441491181288389406987140670870974053878844786591767969241429376434641875710649965271231547497324457076691582068723187595492644184103195413450091330009102606375005660200311467646135842692778795170761206537305049529950820913827014094735806698619717226957865677733701229336326187081829290525497351621809726452092040599423140797961865613010239461205200624616375320737954117494501231163814106759484861012742694936639503738519707693452628269798589926770061584632329476340996633032929999856835682015078600017647125704388098664299238763811152845033126573916242624349915315064775259972181947278968694417268777451858725390696675953734057406468043194183047340159811310802575286465596826967943055590133917071434614364943979874745959894723163693421634977199251854301129912665682184142009569019522884939463011527501389227268048176513993713606951378781072216749884075334848095772454829569647271546085996079482097437805375699812612993719463736254964791582297942717698074338054872995610736473271453304701201376622723553387122820617615840010958972830802179429168491018496057479957980634197748032940100183610082775573767636186389136685431090049590352877348683788257283506802917972864717831508634926395456962865669063202370869345442546175704900537994270018234466340615225091114855398583514854161496784572068391621455940554132425609525846564535162898481231834695605011160942273595003532740155514906836257616808578980590409524341634519615848054905459693501370119926028404177956665861354456488728529146979103598208194626951487297308060787906060047775169070442304762485718392355578531510089174940992528630146752919997428735792709167363684957407797601485686336694694064816419530610173314956814466804015378884428568764788987919397647624192392965041522624248260243058471670070623926904102802415389902480922096487675607273676809786654442855058278007469411020713069580494204100282718048516611900474947474373511066114201694412703217894651323736267084932160585234995043271229312116402034707203507048621441172743463152530010121152893032471238562243121834661994429118186084298857134334704540671104308276147745107375451177827141128002031300246196960900026444148020982546605079363693191369525616775365261285237678480540001595442719857037620404821936273120730539859619879281568390553605416041629460589255021005270023496938842935865803202359990494901746405017534439020378414056446689813585961331307054126714144740754301088930152969222513123079496275449272217600384962586831404958377715065580694212822979137016573152179221685759828925589077372011944748686424091623155317473712012126495913241614175299835771781740881562949493798517401784382570661581712398830106245280443324349511863889230739435760306887693794087935333321430275673271004192654165333734664008066334379177460588745977692511845919562453434239548092730610606689468316308864893423982235200017125045213510916979634481909966184137943252466696402538006304033649697854846227109186490872024549929421651245077703502752445843395280828625253234497980887578734534665001245831759571356987894473668090942091684611736484286942530601404820897093829554827837127801755638741247796246041701799210064656539719660102418532209130960781541577310507565761460891012690114601948484199986179000555889871695226857600571382817029050170281047114415821946471677168813199042460907135906078172808579447673100755027434515461375321453218145096865574767601010328435571853690069181393100908166578769794286351625819348152792781350986697266094982487204814915140792254241286583830112527324975959848972303584068617007386258136019234417755149485889017309277463257722982858110016681763821556650050800677561752368051640594968288970504512394500989971442835614829119734058058032163350529940888101314415073504376689762165848036862389723304869831016273323152343779878189364502729493694477225578935330905131680709477832640130196729856401153218208689879221923523983994865902146747926925800059990888508047828569117630136851931074254645827207507486300793027483835038360496276364723975359837084319219853526286228520910736852547309317183748808068865303415255120175391941300633914712971442926885029190641039985936152339386872608529939157555857164697742806187105858882967792760573988125650436239790733282672312279511437918966867954928666829684824781099262136701356951972043471676876053324133851035040582052611419471576059614823458276299685782204763125340181987121160168478674800048514217572538644233578574555337470788851121916502553153559939721555829800451559601046440124867158880085167487718048049814719232459237919103876244176290653632931525878450956019292834880448138152734892438314311523071280246944414637283899611616676174116162444899177342501414101411350773038258093557764047890972673230462835701083731059703619504778266737458747175884313863375282562184402193128483993902886828131204113819848881402517066909648103216712678611025250191484268040791886907963925367653211544226431252872813650342203241936630448376752034337221190570621273950031819367713059175323116606677025262338210693592540948020385990838739679559119307622187925368144000495111657236166574567074092870649520073070152538027056269382478789115165455951285816603846634400293670080685555422857338357335455778292186974156424920192026953630666284247331016488004542215985898665871953948170842005486413588962214538109519116460863148575689992987951599571875465647634136559469319257133787913193027591450785642932379245980001376666248341778035053209257855070915975606145424687601844814164716653626423506762085216629317187934661907837958391736556570370225644911793185648719803257670177604611498255396685686921136319756907235022879982514264809643422023904460432723986422177897381678479802405411680010736509383799108792201334758347565663183924643000947548980281769397670100672095335280925707557716945903088591477631644451583262605032554465252946827319380176928214068529385433003710211535953889949352773528734189234440157191999857746083730408546776582323435014543706744945987579407853633982772294360378426918045270270002140417620991805303520290400403087730436020622137368077448618963706551709059460123329123440469990494459681561472890684720796489165505138485068863074510586869304924780516918438599480956129205156122043018098143273279749639297383283463131835385613363612418605272293547257719326691624412966684062548490427899681847158249557510631246216560514325086124801608669624094395797137261859330141704604775139918378823079938293270333448370581315019950530263472872151451079421729998370205544328249808984803101015492471251792663362304803799837197643001960909620805695355242867299106027326026694249357465797313225903099033315646182061263373126571325606318580422458628544739203294210279492572573553451798118528111129321183926102795331484943766356749603038683742415978963544877836134701182285007127420991847577546256707101812597404826536126043215329861432909421620290140318511789450378020762389288829260876192117729294600831309686730246878286650121618850388758957701834238269667675394698169378193427403648844235272653221339518983179790100607215399539928737590596208627451664061837136243206352303946273040144471674441911102794226185343871846118912731470949972219862337838135338054424042733560919339145717419386350219439740374981118140078904913025413686385022684135915399029294707386690296492459430187530716069295967819899686765126201241533307429309439661575011809822735221087338253961233957668091809481453164148006453895720406399887673269105707747148372798408177923544000044015407051488281055167732118950032099826590904932754551067461096619384556410225577282139947539424167136219928806820673390169320075120374612667483019150020028524546191258823235220138091533100030981980970371118580539092876747751779744456808056714465901844203015053038022894251900913290176706284533797358875200469783643684970805334523064654293052992808067873930348649429191330276183816642466088815254115248620815667851586551145678820140280268545673461717936657417743619907550228712647501172384792716309153559766111699849641430077569299335472718134364171209110842099712327949622552872766536430049523765033742164528499921203239715449637927080493485254794805706471944330083038456409539316773098930405313768429811140305422849792106503503580727893518791193402845599784208927859417556959697210684889732560480273134884794981887272654207235508635844891329299625626638240228868852097214673516905747810186432707124005823077246439020207655553322053261449910277908167589732879563009723508271203929564775072238022889232052504759642641941889064684512899198429930981737789057096011380233199440192980906079020526638422303022117573644484685335317242730739506022351514516973467194442926450995519154041633440758409006803276774630002403805814999147485122405668473323051398076458544171463938698791735366501423222862714958944473550379605778323971348390161206008258395064359531226464947575805058563487921213210922415676147313956102994863936750008067748461290654267144934699382396008620710484389118758236240360169605707881214174184887383862576801507872201921042427322290919792373788452827237369634939323333292021008991024625859657721888637908847315241154518668636045949752959216092711976196145030593781904941191927788077847150554016925533469915685227689696991251019618751774943794286183994034039914706486737904632177367627524171368304227295263974411552712323357934636940385538848169502035572261004771978892452087880297904710802272105556517395635467101079473669017366203098046610744244105854930548112000509905574284387700917025770743311990414722350986211118394824475906712914985304408304358746114561933685127897955281121027998786507156742848826461088027815481888781396848457316034526559956521425874774296907831312402661757367000637366837707199113884852434181015550916480316886177595267328559841925696000607546905071291402771895335319753158838370173180368422309281500091279539231839406428377225578207246350735760262879083563618754174545760727206690058887917752074028476584127545932238476434985324436119195583596555538169045591656132027067526826450063462851197673653211807634121299379885925795181604544706601787753013074433864711696752146971567113369876199014786967665389995071664945896893609108230509006773508312021473446503246310581982177747197214958925266524032230800441338400604415922831269799695452287286588135115179620176415539599577400687865557016064498562879712186031845510137599352038478684154207076544608623952676172462777552846270706318431244263642589196848909564579602889267143509498107380494277983487414480052095528514101427670622671419005813330862817118438415571342066340420363898417012400653305510244198389173644276769909730420969813116830145931292256523228613897331598239475395462455221766005874536605791394297520326265703558665366939790471164256614418906068444021007860031114331897939623692966121544837495935278247567696947417377330549940117259917825602466630291411511630245058640854083019133052888207333368181416177209182406289742554218329638823167512526318225546457769305498192936718942507670880386406370977727292631837049633227969413613458193858440406490216291399148778149755115144496173281909761171493374330258355403218389400396743125931906653157906916791064228374428790787424461452866590786134969834253932378537246316215826094485406530856268293565909494198505755207871605645993195252111733875420966984346458040474073745162182211150415782432411631722438503192110016905643950405600378930603396513123980852656952311329870457667966400422303347742321921151438494067430549838307800800986719018906355670646837756381898962810109438145236012049318188193472339901761443101310833037794223380203906091430089596755811390147638437320068278551597955813986501068948178798066732151628469582455707496726751282702947317131172396890425500134961297919684273247590824314897711433646912795358526683035649995047472522279619485559470113479760941351968243574591177665219087040704393816597045755291188030910788578907553942966781228912998838413785909821142248983969212481415678085921623427233709735313221047474411851489074108498737584266813166319267083077335382950584419465616070871068632076830489392576458930251537062833460794466064343844276675675541839715923946463549641800801078355071926673580350514717258512431234418208056411176647578283515035128713269552517872901687409329720185003537104127527857930267473056425958352229680380184462122478851684447942235617506635472451649616678812830435706055419466269144183768745939951971122416075976679604879892132792266346943004684883631014424756881100915865531623637456367784287235053033260101610945408928715095295657221654685681311074196594486207482351461885727403159372664156519045437587443799866533351629505543800596997827359801442486761212320166228909102112164381588352683788627866192454405568277347912406365892040555148918204311150737261122749920125149254651443229175418841146547040682583587654685432060873442360263483864464014808191919887346009960993532121037664903823147869546718413290889497762154466543343016873646950978931043917454842548380216946940548099778316888902484881480169193528751350725247231647880959454071716271669160084993290296907679084971845812855074630345806971906427456727464184940886452171445807809159790938663946838339273540913983755963875151034746029545913065928033370459126854903654752898544631698059057349289408495341623479226987384146109891673549166207047351801551569514858042880272675961058052766083672595541880768460228461485491306347675371650373732850569577607420835870080496812855901856096790381650680870558066313974980881218509090740129043173378171066528275379370221293223633639139157867918531272436578756157775202933496404846123887613246495310501324943075953388929476058025946451648694942778297904863483694394437114136742006633934418247449633400418795898688652970349259507154342345274997775516882866631082385567752238563378946717010665656709784635795515495903897661812621346679264045873146570594863122081077617284793477602002020995717188420502319674346510466618760028345503383768994450264239543963720660794631200592572817107657043519839856938710087594879392694896283153392430157634721638917684965552625146543555574823138212429972428563060680265581552610881537756299560215872260466672994072581486678317937377456197388315450880860111654482154635360119888184007615548161636048566185659597284217737891499415968574488925386220462533831098660889704474007358214583362824938354878030954462008872552779112978749775430430945207450951274023634487628908011708099328707955687386073021231424686188980466463328752438794956893893297368355605042370305189614578137274269666746988767236451456973435217035462799967447539825528669459653720340996946090402859893047478316945397126071050720051467158883564381964886325011222080437896021702586586330540535807164465769540707817356712679060327775150777932492993555791876408415291852462224947336044275211269321012629722805297838983496656999736796031405369033774101728797981154526430396658199953935823676004865469824384678188166731997684003205101670769597486675297348220371716563991075472320428864537759638056179614518744070091465784515264241759599050831724356827172202324543301168437857146935998034298449463936376315873286473119459606286441275321779360753209269045380720907221382723243383737414306958512942727561820826448787778013443032738947280540251864547871661128676150983068835773242491763258855398454825563100133763284562225683352713918701542766600156386370635499187676382745021389906343481220569525242463098280215268361546761027325913982833113826067924669636950897690678126743810915310579412142248430046745742129546111532082226328511737137728014531395333382335413829197038087332883443454325153735132127318038541047540740079025502090687717994131542170081851081928503450792695799958786829271194313823715750824438883203985947454528377422222246045436970839652982021201484096477964331065059091221802714782642837637136566606302418125731194316045173795690251021449783017419702977389925836271504996179701714218300699204558850388786599088925797417694220608355045646992670197831745993126241772074387323067612917470441352381900330342310523452628994374275273106203814448908395104439280954176338910089151278080908502462868211303590422940296609432066049294039804424570701198959400775965342685148102114098859642925859443533909584965931831065606835408510212543396095999621270603194239285647241221317822861521398301590447187973556716519023346150733159859166569817835789079877128012539237675599320044372673618136072680525508438346696840125461534887770196099017442020092184135717896076218014310976858920435797292761344064609284714695664599318578542548783297957606639234537083480404717331717244619256194288902450688487908302167860679056953845430332584363554424899619963920044432685333220404486165938109543367298417312988959981618395972856470026365569446099443797898657943258548551099505438191176063277783340102420705327248038362118798831121793116417012079817936287753797026195935651608581647266397495418924475861156736997842706069000849473060936707756081155288292084943357871195452312285545773271982066832238053756339801951751418076975676554089003428260297447483734452038294067720207791852187099117155983659363667605107431969161625795984574761995393131311971592587707304451799405692641523558743065937370563585228372547462329551961348311744780261930467565288667746613241770304376973370616218883963822102295874454935891502601997467976602657432293268747936172775257583071933620659585675512773474313321964857477162327130627736754462763006985792474071639717186258979619930887912152613795849386436109723294433551017292764336236937714295415001834379492322262903776690608983343677632084779908837021794306707253781319304716384683939883727758320145076989127939215441967472786449562912678146512357633720673388428313895614753661821779931664580150262271674912773082531880875753396522301527351435724623127386260851077678787662535600839157635797050562331533350192104608716076849415666398766666916209125260743341920469849078147682331236981357285038582789947283790556016037403481003604966285056859699017024422016816265336592595971562331843313465934673325737429897151491384311213201306219681966593876195972353297218189978608755448238337136054326504096479007443908024839458557649102441984926559023308125435870319490266303567753302158973872278870517012458506496744806674209094113968534964737706092363824340478180695473504952084771093334818665373001844632155385456691492667835388192872855129336676990788433127161108392566459036894730387771376685511000226237041151408289802772819541826582275278439475785590805795700036237327211448392284166976602588366193394157845213281581814279762596919448964321168180165736906810449003636798412356763084437488689476325281005258425443894451038157854049389963402088415097239196133952082926789150914274858923228179893330086673758733161722597289435632488219422676047830366692071231974881723470368889667488775401162190556623677748733796016246306951675090973623440765713011373207109061564145109163631917788038691187134090601014535948492277748178651425476948917257274545040510085496808461109337675443279743876063945843539990615493964642281733454771342287927621809596607660131789444635483580046006330007219556596714441803998588354240030408908356319717394335470036596185303844695048645240711290024476237960608625195322305548456223937327051313495314160987511071998299522850655354766910529878258904488116805578437363345910230187718392038374819976525938786844405076128548538979779679968709510560631559892117031495528160992006168585105022557412940413407115017026472727323837271767343083763811994357362388401746498581376263256480560460457628397687073131879828815824648317657370679219421013456741195342795476149946331659263586663086946111574696543271821004519875312751093340363375145608399953918261016146382907790505468232035017059817020481287110455595706961637707965307692585328696324329751477216905632266626311916329477682355492501993661417349429175617143573028892211720188249695931178013718699612832693499630406374879833416945008853290041068786576414730501974933301844023270553140135156111673331747782965402509807162044686721025007399062197994403860767204616652777879140861433428037930916753577515927773011679608824721812245833336779494250485268651358251259585824052827238593741541257340295027506034171435592697096112877972106401901237671075877337862118178669304947440645133517233049615791046086941236329717286306719622262537151637665016202077433400488182876037639169404880370157643102483134836862541205888723404219281887226576854825189001316292735655932345429798477686126883125529674859335610632150973916746194191606303730404275639160673460212502085658284011043526594490234818058894606808076706949570203278451796363968723675381633271668784071174459052470908257798998643840104338231860828130176974090843162706309798402822942902687598174034722479345847580200922070973633110637201417420805376592241894116035622935587626812569815304521500861366609934513985034201274476196037577066695408789982017203683148733800604036522286796614355642534234419289570232170355945254744926510782466527868810684391891419074205858568865752877847546007059650740739233593077111779867765545631090827591808052535494329692024071455517075661955518334469240674725367274342803823109596149330687409034429115015264680630321271802950485710394857044333603258660859445908102274686329699103027635959686586749288142002559320781038938996397577669027751278300321424756714182329476720303227376258057614824448093369043732592089964366060027474662815135872426265964694289778149628793583920666356481917639669905439673396596106522612524042951217595546327978814597795066926194708577356588696587952929630948821135657219131229362062000341889769769504578531259749140955576092640006468239348204680739496356031790594641401712408863508532915000644467204573054521322973328794587534359360414583547161448606266136427384679105689902922373206814792382686498068385147666738706817911976630693912125917826859642493197397139910169096908988629417020226181375984076895208183775514931095385969756698144923781147695083786537065815297518134979782997081252031794641574101790806030084155774291943376193020281505355809941566086451045292068334240013500995586503309785977887141539282242061401182739345812378821968327692094774982887486429771367817482198696344947471885619721741339396463612051446497799189837927419129897735834167238733516081802115488720172058751598121165751135765881505221527757836134288089550113461956922028880306317154444634752910169957817745004654726454896137629667492567598704617155854181228390668111336068939861559574857647861871895645251764950851916054463591405157448249721998165727694063730971519540377398626965377743565303567678952677250819540003272406406786761551677445368854369813408453494922575157813639016588300301377967900684223323085757857096893225738905881551392090514003135623252760909351084745711636581096968615176371642282340402272651949525817424131755859867020447756711699406903182605306407330035423949568716844823863445248595326259828128093194302330497876882307034745330640675741192687879514409014516851167380899462413603620886196856925730440545337437229421518730273679386382284672517068812258584477314391267693525560770578963533497730898293560543815423020444276242982350729660933870914558771720943096560578741471011918352470498756786963376063438810168458924241086983820476649921301117444780024362033155197016330291949602185590215646348845477427104360803956570410178262510316014936611326903291381561740687575250421673210998750232039378818669404741389346757400754840672171078472220890784054845370727361755457462142881207039911243872456629854661628005146265663679727877178211731081307722019145858383638118940863127398820651313734340549958332638578664691553657987495113101417542027637618055067999102821608575974803568814978075462560013406339764141061216351432507875625013581390776520733508919952225904761047731972475599599572502345409395601732792338519987867416941898813676631152216809526777227169545559592263564983603914668208509865392807183956014091505437919549387640155718350197756497166659755368726012877244497522895676948838133523280912969869493524890940354846136365631495643208931482937801416050620693636686195415067733758779174577938611591687305906125789850754752159802388753269234665905204356552005542023055328171724373075351317222594237759047682393965296955707541189612180269898702421195666695546718614066728772700849386095896308303597288093632184693162865934512229072007494167290857403539882527213137063044381518355676600285344146211711722869136740399861989584082112414728250457313605423611892341650522701878435353826309792685531180530090307702934718249218215773196858015498762814967787473362698963157882029096602136829912406277259103955929053628488001533820336427297927953108080198513247972578319210547362843114339929895643786938393191460432188957692577287348178307042427791237090737317857670207717861873749198795924118482722782165044926960193062296252060092971391067290066748047563334872174347129541680144888697019535997556194688572815358661209907202674561202629083880856592923047176472743851855976946630131492996208130436340273395162503592848958730727634169799404518961615630326299369122208222615972415369730560565058825018796094772065900307621817858204978913538758328905699594973080306184123033126749582473191699805325612781662456716999812933083344557577676828441282947032407968453685729023699740264946336577987116869981898822249938340311871545295675030533001345049686112823247789132095909928709926783468797039873194546189134547818433546237872653600911718148107816847902137386185370258026417082118253563916790487018797769091320601406021675027834827697986166983203192996257330823871633218417687783018299892473801989537451223997693029971856523343295697823233555202601820466595115071580020721901745185718191676459478994726697887588808265265799867689201529032271947950827966971635061204379944731185220738104461212718761720944738949844606729103328694780952109943452866169341388747163513299739133114435593697562126774696985437859675157434904193826175637673079812469419251620928472078123206634631451634984560801022763065270363427550616937244743421952959049904582136298063155645469078638090274775171289216625755558174982415682177786366272168182616811223126796885186793910347255875456138725191604749621699613394569494665773390155724408921084237746899540615054779857068904944208553012742055933062262545720763395048939198008998065627450773185960172788721164570358826451686495333214993880811449787360428775886523222999505683577599414079597824746429247149903709371608030881702791899230641588018237950007089385003868728714460852693861070492071949536267703925985388563908143645609332037478374915675591225107886067803135918278103277228085119421685202873580152660652627906079997069715044245983758847693258129522202871028565549579994036160834612296137597562208407448715108895972143345691417921092359920556331610991040906486882468545181503971218434362800526865664692421263119700822984602011506057171794907948775068673915695423679698155431761078056390496796637516675536074116502522776824396148568080487664319811742610654829691786157146823290635784199382957844133874421213844098578198646366074296133082250617894819386211705654938133021940005181750823485426428254823401419547174812477467343820740712150746399286749660856770899975752029097262367562870359382654287834756226717325156602899420192511700215984891464841335175608318527619698256028428868508146262520706874408601842771380380338470571144601747425579383447600609422282199289369754298502731370920916977409183942860912833252227834694035038628817822294297933969172936554345651964554561288941686353385440257060327047063238088202610610625425652497589778377297855440978628635965411536346868524903959857391865961092421111649742721536594144544881105089911325882545349531426974127664530365343171087290252216161034973955268441897042834428239495884786572566778867507248764038345091160274552498810493369863068944511269370689973928388800832401394006939379622622369638600745011434521565784615974299448521745104882960571092158915542558654256079308643152998559362041629934273027058983403603331899878101367652781896011757876729001730062563385939929814384123550695743539420127265680102392043850439742247480890355199965509518092249983977861307442827599065288292555541571169098590342233008802845392205474733473554602551013179528185959527910297934745658342355535703851657228980150351512530512221943581166664278876306450684347721203611622487601407030680764108738198319613937171940422388852645759577077827645294388594606955576392065848186122966029105996850893232470770294648794848096459939424267056665735530663325406264068108567925977645454227686169832023271577067609530853265230398650820454541242371977490089191295395685187971261839589889925276744193187913571109240139008041815677333690634233208296414041997790362069599523969300805869650134195170769329887444528150918993561862215697884759898616766772884504087947164576666177118276597998939239969382977095657976642206995351106089149200092027073655851441832702569908585067620710449640964898040516083348387215700550156475575066972685859823059898216467707399719809602044466905409688120118937483879449521792851464249942094724149137557158971659039440716823202573520062539943931645317913518464336152628956954274804849478860009990243560913782153608454492639089157107546556064824355499562734987327316887546985783895647942054935002306010088267697262956997337480959989608156717970561246080747020230626216344722604260634855326163593929553044783252343225722823116282736502314348235594052845560641895967137366522855573938095285675915668107545236042810392598210462076272548741198761074764374475390967266229834642279449532729680539431004079361995019232463648893049610225598233830894977498325879345139053402962468065333036232393127807849394994320123313154758039850080033660296803653623645238860173830484537649177034368828346539574009347314756147691667005629857543594503679029951934352203194769872959611215249720145711886086130919969838348233840132149685218986935580933249297367119255804954210238674388317817335325945080970412889155174515145070639849127359157194498771514727032613679100464265175034906534037622504980772536516675499489452934972057950024657842423389915154379425937568985253208557358734817605047701241670548915886832768864726259769115818645375316540986966763051758845236173444425168099793166873473385529159951277752705693471009078831016168985952143651869407801800782964396811279930917912586985079727946442482890148585298554932251724967899441473014898912623535162191341765816952602898793803454860005259440205814967293267553556495080552435340657804470086205839237044354447255326965043386040926358237648937015779562098829406105739656039006537177350132078104758737754163473901432005925266637401516921691537717091633572331769292957284038875294829720215362973466023444980506851865366139469133532111590352420790449943986071439675400560666680595758465286344077339568136579534858930071048408550415807465489901812549755740018664284367999844033012613470964765270199189618061482888601985357425690850500814285022168777462810764108388223265524036779226963330133338781286300413715398649211772614703659587137903605160514096920064573187992060548315080687752872816332901974369864898028981779037163558282298192068298881909653367059684514558605300911035828189723341733035450903843639141831155940598288769967130178529580790779435247408008593233336561796687426705065180038052725163454465370882960870077587312580549649415259093788791517058401545531073872264050358238963006706682394351531844006263240198624483206055486198895487681720246736627070953857198322537276350874469538785923175586435102167853275355977202343522040864719730320243130904945311948278686436880929862945792879975520345032433169505224511963558112392700569772471092706946400360768296479538113040584355032361224499611187245518436845266063970615139370460966536754207747214695152245736128870581858317349597204628943044177534149058426987225093693128171650828736768618895781834674150346562090260139941509654768932229230369641957017862271040721280612047395834659739814657707040458862262818746589814952474446679477286147963219500976783909542623305790391940219250073042917083391109761252869957676271601256364109722932325166302661080471918557433149784784002364166690281454191528313821868323650348544393169593623493761980777652038395806613376128016505458605521963017317916419656983105945223363455974386250624397084337780190135282933595154270342229156252228432896444458443917107810744396927042143218825434609685313103228792128618738191411349078501450161734092625802714492557007612172435968863225937063911479000358735258515334059336453912249212175192021705641448705635047392666031812221321475622717013293821881526689625815106431006062959422841942136728259751110323370590550169519975248677095322894221851237714341570458793552192655445324788123590628987134240493384112504442047320490308580800181778159781857358957026695071630623269161375042655126575378915424944345003800290309205607508612445268576829625201452378616099050034604578064360661280500922189777184197373453053842137740913708273853912817363219314378321820526807955578440188236927411110590932570002577729731540582529413227979622719527626443868716225611511864054784838521073961750161957107130434680682772625226695281895609934417470487875842530754865446346446126218917641305658174823096427341478112583916363604177336080210023040153790257390995572528681463178466521438462418857843073068050636890602517394863293885815626239808869434249584409824944367239160503274353931698453338875818934424191660423898688560969266678241448261195087438933543391467531369656223878882617313614176789383857571988520133026076253577559096380174407069963136096345468429700968093131771450288933302301399423254424598297105288955034643240110380515178156603529037227901855260682834648989054636127998317013338102400386987634522275699327334843778674018345093490157856124588472102383636245575832841790179338494276360141667281541782860133560121702313971732229516210482333554041447399067337079002246980004486849718975389602256845897351844703705832771753858115330093674003738334792576443699451071596130578268225732549373452511226401265640450452773086388178029067059959785295386721993798446299684800114253962441638257833004215092044126662926204445656318680853188943710081246995424385711547933344185230144219734492044203187130640963852093562473142776681974511713644464807708906892303837625399760669108696529572664495043646661763042578879027915129959107142071035759112271907492785067695734339213430289934278015107625354063252161570807150903999256167744584800785457123462060290221422792755910817460888500625083229997872714907736042096116059206860942315890903886689980596531043734655167689449766158905454511816287882936378611654002896894789915589631534019027412665910686826692920099584269393426652334597879165567594450113721973757434583585177722542188897349153141547724579800049254086731923857029861211103788402595040588932429425780214894422269806441769818544004098500895676252394275429011741534157029822205342330023276291429078148914773177182467423957047484213148351005130860741064565396453477988720582710538489740585952589071757787617804504028251637291428825190975908460601142319353900116314682868634622162656726043684576002540568714099069834769494844925465687695810992446546066722411181528091676012923451018627488203740130292181788256627463308204093786134947576159346162860475989770671756773409343960244314782480157651438338847794176784468824375523416656182868984106408804944603483767502444792475264250020391077244680528703175651788465515801981421248637483423377730631051580535621147935664977157060406730328247491023003098725864273578698920536616287341176935051720573889709857125453203830461170408371724048102688708747451887428196712408379056781038010983107635654917809737870174668697522390814885891472326379333125423727888206812473284041679524996374860663609761514722604032234819939240966939201547808779872740182122661415613817658761915824410626952217710868122848365241356039920858874121325618340773369558070379896516051393742261971574434652797472604317108468771684631850816023949921593719100936984409757521606582595701607445204961112959390916557461331939270545815521559073196450432691786774955485846046429922827068045174686123023321443051133535406408334669994699816107102488554092470976682627823592415037400690634033381134506683314926864005641392725484241434988489946805430128674081429628188352226696888124563188183996435000634481074035637404922806938750370747987961076715591756980142357646434178911061940541433393833775031318366936293161649252500151938762885944748981510344188942778202965878276522300416818861829822549016921896487322910275894038203233184701673609860289395435328131386081484445560830011508354375591112507904368841778600535755512513551523329966520259272971214624899826310323309252736645368791014740132427244038751391494210253099215105959090604874127991972975817180580205148588807143823500638308938456375677085676294295354029087962953998459838127165550251909613847745831343464354329674240404679758302235755816763189912882440103116255261358803615440184788741444907628183674338428013179880026882672962867492211133426962718835165705626782242799055396456013655419885718595277191737059296000799771288064320125424748964731310498048068209204186225152896662625680442452955003816516885565173457392464572941459715755402680316771498507022621103319379080408998977251939518524808063865564882528088104527901866297233582484209409225003674075102414837987407899830746144319125807994893621907909475735944691126015374616099738857502825438778180255386302551723592271743419153762135829204929735036359956280921112351998495513772637853740240679765331456677491352246928320326600027461266189557240312966746620404270049861088837153210972754385840373954791797060228321306942218168336576706300486609601561564683722508498452197766634163151450198890690823426774976783379084267302957476392475186668490502179519534703093046868503198551938894964456479763911600014356424045712272970668749939950273212694757506586933278933748755306829641301275685459864876072612556798253380793370036070514978993322343435143005175817536534456574668818271786064826816070475651834889809544543901249185236577496840421876668368640021981856800310129675630907204322856012608369267364282431940337143066280320567362282333504270464558894260528275715745665939259846758342570266729759260949774208519636304286909643803257882994254631715499092317769221395269365590608294670641317062592010244103076214913839639673555458184612434131974515435939570862831374212229592885447132323983896537315636719712256955191052609233276987658752901498557215073056716154343433404653541541810827291568953277259276815606546352075877810713018084697655686946572795222432385253141026393727115854792083543604126591284082028559392045974953832181639459826957274038626363137782238382643333012323625672272857539766832373160772666837823417594392013590408072879651815167385577486588004648480646896165660673753687315090004911644379332426372822160136885956456844358389149580863984020598028016484415014251970641871860804535876915393308731713342631149603221370592909438946808497725577676505072043250728283907963815902640784430014161951713841032443191897430325899387612445122722891733937530921067710532812986924963165847410066786775917627104371318336765700199880308462288930360318225399823374887252467530526202506036876764261336579953538522233163720328330716762649174769076085118892611780817480894085770739002331693429359252286644325530711292434335510685589813228438597792031390452399166087799970993478452223897693951809575461467655620562339630053336963543170203014001808094627903265254410728466410634544361961657599363147078893745717300139017873890167176897802596169671428064591449292401233029735326599563410931725009534025956571917182942126711858885326596523030190466639168230047823458952155419035070772990839735283414927547921909397414588056764644901092212827700992229172338145099100532545189977091069469351220153019649442034431429715683119465384222314043746250567862087364384007293440849068657705862416060265898935101666721043867772685960933956957751500408656991251311379809312714986348640292295455010156327650819930372381468635283277783433608374320978818743285658887497441721352354995082516816821256433516942134593574314712282463669267299128267922338699840701200775919107653084230761553511733531596455376710529548819102155091279836952400613425019041851787460132121726790376589213684568910732664675399780392716008022103512415273822363569368150085514234815492004995109378856357691140345140628644833010693611027969235598522945966752001252219911989572120534068355545941372247362375992278024712382253569317133831879694236241738289223657049767378580047687785590591441262746746781511388015792348777831853440900649256997331467361239451304279892983978288302418720657090516331319628412763188954741112225322894809102956872772846650611599580128875754260839349493230527658885271734018241410758221980036185078202821519370429708961019689881574581402324408879171211101245152225666969698167484311563804855672124084431046683852778016297465495868426486177664975198465165803694306450928567149782496016801558443398203760249235796757419064806023147449449011696807686502250493830893559226010636001931368185773402632667580418955196178175163606099631090448907958755568637790698498097396704760093623469680776339979332161394302190253108773224053193700036548364028386727245654467059667687675524637744758194792505730956481235656145808132359323021594735140459219333694162336400533791621936190837893070688368204274713411084681724078941880884505146460087242537785296912156093123903708552598603663042213170020820593710603881607194597955470761877027985812653569098058845508274987441033843647453378256651632243010280231365579494973515245154503624389461870091586946697146618681246918822350422038848857674094343619552832983486683871093477465114017720787210737023401534960901870971019902190169129549368935760629658831670748986351632319078952514432891831164153695188352052673854212215906827164096829785443984618316896666471521893893924235472560832512170336516943647036986416324215616464636171916034258681995868954248017627896127808044041488052976989905500233242083320621529833377990125318543174111274641383689710283493000610820126206743588743091305898683138992282142689592097457432463192491694536678121224691513566415435501350169743878399636665379775248424952426939114627147870367154400498334814139120794885133972063954752720152074727916717118719017973563813227641815429277141382390733991681512961771360157910130392596263107248841315342222424925962594699290854631318242996895771863133061489988844923409752762144615681719002347169481063248289114265108178572901665237144908416080369759812634731775673792099100768309914525960853788240992088351423172820505852017743237087693147144073426153051427330223114535190881714684701024334667862474004342953813764189838004129134165805259310883499051865103232762929534471674065956737360337865914136758649105698772937922671654106143489701213832506122673512885950923506664956464676608735819901312829938230817460773960171322060488082343367116838604668412939796528233292023336324625456728375520157171801676456091553589697787596177450836395339795001076718929723488419835437608544006432960186622072537902555782070341387792583357393016134257891853116366831454366324256998908360020447078085057245570761661389714320834720821159728009174278373356793459726304984189952241456013261290010208562078928857640932309260221252293358576360441804697495511853686990721250711260261817873258884509501427162006436382507665177054446773274854720645477375456371937613191829241901085421443402100316032414439710509610132946242849856100952045752824776082521753963109068490422648384322611632976768330732214829394541424914571918080901319808647487764404586668370543699392456223838190977666140852366881080705847565316166394699748804317230965047713506001712628751383927491371023973848475864639298025978641436515479568402191283130325609546682173516965494543572941109391069005311698085493410190873574630852879927406964876560665611105460755486457818854358527797780090489321163462289274714045263588674409990350664178275671072359313785973308185403096517001762630622724214455818480478847747290656251303688316444260608040434575664876019119945418758552013652089375646992861538255080515241403578819130378639451507033532431350042104454069400168132244732206370138793928438825032023673862707203933873726516884895574934640795027262024826890937704647901967508690896116548900520938289121637316737809409229889083425795238812482168058087147891494073872522077687479900656363839709403399114306364435425378621676342494609768939623644838708034142704284514575450634706920619419900801386475017579156821812270429542790741654198010971387185376311268122349470531493451754970767701821743667943538269427624367425558439315500767502576249966829405145686780229499051363030252806960914522194085023125611471830193252055600695642894467410368997947921526133456495315285851845750712634780749252331097971411602537159275310890273274198662317733420895217881465450062062614387042812869091956788354757185869514254664116928517690457304902227480298080086016798561574425328232796520835364611412549947769779411407403779791158202922725188361339495233415895271270748237418510985533036904796552584938202337818841726791605869489002652812854618456748034894586449793892155208694348808909303023729088949144556681566941772994844154545204172948853387627371456338205820529930322527119303261079904813248319850859871633507060897189714547102394286816435816234161430296019758206258867935360920837754798035755861022097935330379843112829291662971427046719502986804517110319305921280063559407868146573458116054387481310582771890895129452462306838404693968108710126117224520626171067225997363945974826210300777732958540926682990055439373170206830586568031565488932670707452121602835578185011189024834944560292035174621069932163815255763565301872516215387681793489933164146944324092166488138587275329883663570243166299698602858463213064324451512057675939676405909881422115642002786376810368032957375246416703118456290735385939104135241409109880476837568908960868530451836821033415163839523870143597567816859652362392591187620884546523662527972246514084515750761160456463228820344901294247190303160699619104368093887181934459243071220354053811359356898137829711842581784296665021373743520037199759329577846630688663997707889865857851306451289820837629318728817368024815474199262217328193077255966350711737778349220635230425525024939160546691384393235555758707930523110159574035489581202927562207162101098384831572939004722180873614899834935548212876590461270704426531310192201718181433743062051460309281893014325695564828954167771626520195951408424958885014029172958779287341224258474394848606025010700060497590482654882030883467303135153165583367664965168228814659921094949829705203807209067809517588945587130144101025800136414314373504535976582872049527247615026247515223981659694877526954078725780291188469488100762034359495056710642407390282946477817057552103721801279928506457871850005933161645111433124800393927111168943721521672796385227224906922860973967205815516129722121795094669199167988421232329698988093274702891479817383055077163683165788433483022655696313451913300397928205548159154627498313153458002547324300391807170123448541429294155534574757264310821311719777361218560755957516538859110088005412730956923375810585440309919475844915958847065742292183860118105468281396633942735028086606295481228499504063913699969857303329279748932325735313846006121068696596334812966648043019100106073050565793307956138546636413975418839687928176917655582508763292780243015875074367789806133676033869852964352569889606414532083118767227643697721533764151721980718112005531088060163085607829924211673490968938103528577040526771135987335639537762573330832810592260633031660290505539325996062119432884977851386532959931227799384166390951990258597891867040435357359290901554530673051166757676645389012077388964622019806048286965718991514808686460707340931080479296415227627027082394028406841940707963982943381842048825104196277845561475036039407099796268137039830110700137249756728681958627063476892982113652798383423180009589915978714349867267160123230338812764199625323983803059925831010971777528242912717443899676659160656138152045646088795146379709779989522706892521471371094591572547577531572872414012525368021225279239818039446929632197799001829984813263114079051032923325580045503331835392748114213415066493069141915578518626164159738247138209077821726786732937482718803125007237163794425055545389491064174051334709248450596425974241440048181410304653002418215503241237253284406546141142353494230408322423733746290684346531880835795438027379490184125187873964354345670144400131586805766293020048850168547328499040022440205349623265172345151035924855549301429296866277016742487998643776723453525289170048474056587695969205754804021226394589296675435441403786973215767376192029002007215101817146172470924438196230598899575042638852402438585165329661992547683886033381145787147040001862389103839116425928144519169964350108598559605956495592093766943482009071398609266622220175580288514346725284295533402867612986002776010259776643432951178630747464017064520219520351175318815220129136733012539722813302822352118444588715847948686904644609454470400389690270320518745950454509129903903322223487320584091680859253150635925457858638031651859279961389797848882086859820719750879726810780342586001890983907844830307153884424434522038061467828462997840640316560073968524761946621186123856176944768908329294911581115267571066593280585460182735177944097744674888887924011438002774161243644510087081587105344426155088671176219582786104024653640557170379953052925643874756508884125113985712373363535570238445338123797640395807132582186566256187426884853778766475780084812045510525779435503042859197238391262349184515516562683255060075685094722712421178997407698831894923044458996984523399121098617759875320579634960817612520571527028321528691756412897090485808250147596568007926967005341538395726137455227327372594429521366426426516734607318415862256484961311810833023833703724465691938713973756280749485667790406810459525304849480748924818431457470339765506467460880063370079395617195588246780420742832893466274697095370323602118933269063234644374906081536991335741757357341234299999862247485421900545256377603996416133110454237849622678813100521141508519991831337514666151990658694635543706235566259453801416915688680355182750222942100016247841231861658360794309624496435535924018208185657630236543410203921397359407582316893078507359187337484563942658085408321462266391398097108442477426229222509654602121433486266272189975775065497777225414192787373176266293046640986465655315107033261685610934483276205719115141720456343086129564900207848298915031031841484178581128022790437774957309506798027449550151459912217502185775812917196578400110982828070187235312484348046754429712067151401218045014835506275904304475485869379754678076985120757913785393937864898587588623749111281550246451577841325178464771193913110474979903752885585954237942995094515041582064365731496506664231773888852569301040944423235446805158651126698869999847026238729697427717237421234462319398613708736331493655877478769202654373649400357455713494813257135066012136815328493080030778572030214350789690462944403762260254713759362237425198771287366052961180617779112334087697976825773088437222436202509304545531777179066452981523797901554134614023016940432474124556275829301173809095681872234410369481932034813279781668095436807201139031637651968878504308984970524044254053824411929709081742202444971812911482504208580014937361065162981787301702417977931009853131007920306120857059753349021848324790855183392862431529205027674250148232630921054639435195184017905000573859929154958720732562267942311033626550836367697337701129715497243891084054309205440538580692454941122748574388345589522530680010761876143642119245768632162502982927036404061073142045588810474852520838710042801486988197650295215985876755040063805853374356629388284694120345647304409668951272310847534700966756711668943689931533984514077493971617498708434237565390313053805763795370993047464669579443933883029694973181064454557749775815487837925029975005075770454148774496724343260569292900626519475893577741698599678907303443977930486501824182410954017862743832071622782162822821033340195449702770646101317357981595840055577957647463425025656601095459722758619773309725794369238685126356020760984172734945673697501372982744766670269583968637762427249777261635942430654015605694405882518063783163696042252129707751552954165000976026418614763196539422852632476419837453213157786076549798154957839693621752879633944408556567026985193339505822722743993348367168364718906536070591492834953283766917901083768804836440432291846687351294444124751861033604549431996748391135261217590264372039606151565586363837242720520642810766939369097064326571620598497586013695630832212127511818018026301342947558130792876232137255682608085713720850129898952388673971734968773467727355876993797109635643569193641213790545585661656479083046196074833444875966393024826911340441352679352528904424039594025338055920111752640849788393428512782491912960721961694274836625466049191663365739516579662110461692842291160358543526010351804963353583638119953964280740647034244988358881575439672813794534023631090676836731213670120906938373718055330079412514373734489889508454221181035946998149477803145266443228735865618811272176060685319150258492575428785256457340693910341167364741603451755355383482946880944077801992315062912338521346109338302374865525522629066909632932593239270725035305071913560374988212205681179168067006515407609760528769940357475311642035100238643359747074451620851491103079106191721557743005533551965653662113932632882597357022740426819771893179960359550779279923072804861638430545979550200889560243600378993822534450190797951328180870414820070872837273801984996899465818351454760694968231787028995779016919134537622586904689114070564255563112445448261218909136285930522798386355853519028852340359443927836450637537410407513199479125102658609923599102814972838578956099911112225005109781637967076858394661702577043032553332528986929444088364437199723434235876909653792443628892088325235490456795797358354999005147417477281933563468191401063781396139451823339571246657495883625934873328487747998642602851736824858565458997270889230902594340929993387268966940426970688388143611215496683063040969290464541320643277590437490302619629979950031585277712631432322752617026493062696692630123618300243384328160864446628648454314821045051389639323557934348061958794526410456456571004183440257791621690288523240276553239947913823426724305306983448348489792393749411893808377803511406204314869951227111693331052947017480076930186178936597336044190251258836260586060552627302560832577454401812888799784371516263298560002542542696191368689483556035526262167100146748207505183207932162938918132449350896579198552537908789956783276317749262733390509710450540459309631932644334366320803431785694726582098627104129381335653985718288698423559625538017923310140514837537744843390664095593771800240003304988503820880645083270886521444936977995169689819679822290842611093034725832462055085712097021030232562901485846144869364323519338039795139125189514322074896388491756700016219149687303349280283971401965797468976398641235120859502300644770802616116003028793360897885994343129439191767085775274538015161266063391239454018025284137501576952850144643215949506561601275147674947513665660035718734389563421280595836056812413729715468878417057887960237436138820175618701919728008952950724228208578424829021808158377031623514188035858297236326324700636740562762191619053413741354878726937449146051494705540215669552124635175347355429029922549251812161968413532007518720145820286372297477219123045264442290331515625021668436515364283068235734377712317022781807788576959534077513136324739105227569009413157951412750552310011435982318711683265269673359924901586893842104598687834427478822474529274489530673659392798277349534636492211333447272472282593065695691612081055781225153927232685589198874386745282679301558698784009745371121127022130378101563018835051396699236827056361435571116276782360349755943941172019266801929879278757998554703789997881942333202160795728653628795814059609919449752431282858183824717869148680148896093807065378311365274295116821954002019949939095548879992357433847875837623455586793467614904688000597866043662609577977502614740110634572278481143205146348849106332114389932206155423564574368249784698448120789011773140470877940851904775860995874297357650941443584625223606195784832007721134163731406482141467149523510555701587917894408031375104987011840174884164918318294966050017694329036300980997168820168083312347033700091592907092212123639896317422944818912799665582020355038081030082054444298381734117788606357071214240810532070860438757760557636995714515140569492792660080867363652232703247477960579930929874405930517800079579341302885391768083102656489513430527904479413197339242575558636042892159258028168262022852998193746908153484546895146427835952531044178291660752704753025889686271940552511518206574101437213000295496207903847226521644474331325832839898414872860663799102130201536857524306648406049276371173360214243213974465286739972331940497101842841755700164264001438700195972857231050235077059496575492525353740213482807911686017928300316766390800592398709257616733192983576177409119842375189666408734557128682561112959186539345668436980335997414394362614251332408239263745916524353223409963709256523127554333450856437661947385771560071089342896432799083782108318206203479316604221965633809285456183454807915774518742020323919828572129418785192288012120963494324599584616772120618123151193012024801296875775450574503564827332251246035508724251398642347300764094291508733133295647670145636824335342585095760360072463575633704749236401778249021101568163341581639350611586223435984795880769150774422662244287635346495235135489319503800282532432554783987622191590540767327437812094198962706205367546471771849095573547522739659420219337833345653257475115585737691181060067008941713779553649824317816351809596093055222245468561527815272283559534151521699795738404818935664239516657929329292627870931669242673104105430542359258004671277480169759417447692521323236180802256350253538700960287692685376437330865919429667462692813450472792746106972903256114221127617234935173154339532821040945240500883863115983602113101207856909708032303162583310157840194105342876578139158851376297276128072077361079044820316069401995975158859512657563337045090188679714152838323097578113726024636312174413470012619952061607153244740029422085664908232065239289990938547837462149395584581285076546695067452062151155226930542368666418225839205419538789878402052649048002197715170965545845420281205507271664247414088541941350962244173964486969048981158534746000269909347508937416456341821042000319296484465708761033723592422931689776718247969438568578557176780711539129693223603833995863591628441649349459172287354379234999740668805881557895233620075252992203539592605451591496992136767730202879025282261417154354841384005826731915296142547025147525374501206033535944396533768970643681433346345371366872139413262220602200592559733771993721250248593326013900753304876230780184470345583958776765619763012870450946550995273518783120232170322087147405228715657699164392876132859842563718766320159973688622304204945704001687192318833531265021890993775685300127441912534936542779010745107034964388656970449328434932140890081238019307433069771828385606989990408340902996046458346491445388022390063616595249096236623695637355244782080768152457968778500014470166889234127915949311208499765732343030153390446089313752290874042093618267799996008532225917558092535384097220064129428508200367433491401401112999519358603752381539075519541257913643189125663087109201066300265455367766676004911861710680426099422565167555977812183611857799951464971587659895279368175375595355837052979014420943567108993440828519874728243801746585130424354820042062804336255784744279016377990209885139509415165234232461875404254829422079507550830838768032515006167859430552569837662920318709476158114830616669388926378327397789209988750931385794165555628887783596579879324163438577155274858662945045880464420834204433663131280963710227013183327127742139793251150930038005542111189218686296616208958166116661313755572484629942230241762726100090283474729426612350618803625916121844519769553876038037982830738970782802266844899787484739308781065017415935496881558487684542995563557454036973645646778341719841828647605925820187949957785624208651259818087521548034653193944546651171301517853489901612465441943124127279909834769936108029544538460379375321991203729494924630490823064462558156486752356208434336110233826290217553265816955828683393747080986942702260701052951948152594134224140380718561879665168720120079229551042543208729488158437247321901904472057734179474486882721299123178787268742952346859619191926905828716072509497426897011914436060601493927270377388929355487485407835829508796840653505034612517279473542558865756522069156649639108395702846713878955311661225360060158753248711915097068486957646909410372341735299975385532881991355786258594916851978253435660903434386279588052850280258249425655050189775852907096515539231103964156373938456436780235232162677455002788101453785273082185179655494406183370461655889032372382996614326852257110618734064143556639154710540368781989395623305449730085117103390262201060335171494967085663552515736242325590107224981845982415703002927256757704989680296560882208203518767046980297233642900344920870518133403620886182739667543912389861101619258002310556178665429373460782676942840167577841822131030591084446259337870820092845969947599788385378781051760935508548737978991712204473040009693848927470263219960122745171787739782606423756607494809445779811871721537877961814832336464732727793976177543451128521864960071551107276895447571841640202540425770505032455620433860281930518681066375485197210282873276809249910885131085561319632144540950323662864252584466531462797054295265474009999808000222415989945573710831142089507426443945344177899198949201894304934633223024188662254834500352528879853706355982213710949274551276148425911128415517741869819890638528151528884184907671938652575323072357132911068596084941959417348082902083215992594626657110952569733125794820151869359270818112340562397450673318581400124986226555705315008001483606276787585744204667903963507530825646148206994268374658955286161662661610719291510993534510385518417585023810666987012665960352897100738083124021608658985353370584416732830555921295206268633714956413466244448961895860013655748767299331193470131651254028215931336609999859779938043938468775981277169745498471631565961628676675782433980904013226975082024613002609940316226318970184653599587909908556199529657412782227420756769242051853121947717624353080960634932249729400033919407983616906143812418799287960587733273353316833468760857118510135404837610781962377534219359430419242454152838673455164304177528123444191972718342593424246426514049231353403926078868717717563981852971413897338769237090044889303670199954056627289015357938582636140067257528321489571143032787073186893054122783987145423217238505821524170566052044722286284526889519321413478317810848848401871843057137897834603478158436089127741822486199694714422632644280511914678195527224736288420588416176922686099118616589955083310832934455134648768459972152759263078715466803141433247157738059231043376193552006097330041362541825350841788525043552521279420738923375716396066672039381605554813891041806692263495870364698413581883698041899590619631220546688618680253415784634532420848285140854150210217749266793822561860809981044660596325112980248614784417415119608092889596785625161066967492172821197001281515280828948929191845363486628294583638434004443082250507351573793724365153494770380222975602748308553038033256173039501263337412119946555891929162091912810812602113525789950417073666065955873431723126609464823113551703287902705684117900901363528772759194605479171977997028917949960796589250103370858851100705823709132293056688795929743915192642588489055819391711725491435327336016239553505987932069634620222040822069152732853701648694415089063333854701906200626090160733673201418146944660113960773946000596430940940100161847916270029218076480835765732474310749686645375336168964809623381646009043383780907091427790745493292102311785073892557500238497950204991305892415396953945159183484600892477363344158781033109097793992108261454976111005503012950908730091356799595545396022040416147112358895675177887649972090739495795667167989070392250913935717937311556602606189207488759493530108653253817410941330433689310138578623036858594934512450846336452743032735117211205144197411780761268865444468664566844219391620765193989853919607995432101082913811957968662826593473398498863652061028494877124836340860796819575201286536269397248209195169824624234177523956987327711186006619284565240158661302804542929680219438919105935215425883999450213800370325022676668860327277592326845608186234514162121041148976409286015883495016785789411039903523641533855204713642177920301809118008812287677132248637751775346203956705290694293014859752314343590108862705620005140224902953189950305521090783865302605833345797499299970977146319397971628986078414505286124794603011910377598542218528451483867728718957791772702247884236014520327818602461924072103961736160290355233030097740791189284887574340783043267959531839884632466405545574829668090865020934873639415529698150230393238681898522242436717383530136714287766569555288607559423282450528590002848410347475979923355936662555633170681423866944640306345928788839588143460713481319394492713890577452635930402379006516101438961472389909323631574464296256710275948596215242354015262413147201251500193010302323411907246244558718267465479059156896965991258184370992977808719718560921562686556037422497020789299112057440838705672890481162097849193158159465120540161184683746657211735489014229231421831694879434627473309343555176377076457744535765240139532353460838701868186564596779618800491522554101740644459459684989186137277279228913518771110329801693688020533905420831214422610417359617287313176475281779423444767803367103012422454721904245019640088836579265087244087002894245286290802201463036143102779911933705312084632218190570753000414150991052991615972516335066879066191616076831521152469625858239652916669592555801723235339676442768386766115245943310052692779542389547717789119554859152783236156604328985795371359933275997918233478656418662068956282730250997425862294138631422990137009968070825437034125608556928313544918511709181953644364864598781203693257680087993330861647588886194277524688072465190834411938149114787695306458216002627024272346763534224946358528620966067359834347300793087705743200746536335116719638633256110783273570945474358833553954532803365606799009700192005555137056782006186187632356702412553418353897508076190904954944688325611054634705573628604650811367455652899685812539273272811457237600980962752610345232003850627458797445548737377882426333719366890525853179200961484478035329448949497640932902214553908552732558265636599818294164097104214308477791048165025476549130462242617612306618143798638583133472421712920414594999340526174105404244313206386886330230539004511316258438789129501581901527658792989097338273932230759647540905445828245088595009608593775121730024105322481477616398782491490602868935650057393110347828967477900536986131726506320711833918081072488959464570635646236302932383894130194051557091081262473745960195333427020415483727189460906434840785011675373835929297839908537087686720522924148804418973975287037089329523842350191797880648729699902186832028953877536362595164386012165290140185821016136591025829199156828980700374865693116581769940429544894362138082257233996334102312832558823145588701826712565812572534260434273788669133505603368263181983220906094576495265062350135476771601743442574670138610470837678432643687373203251205157779075423777812109419771076297558028782494051530612778979790492453360764158899046033912800414460804405632086934271968357894036527314938523944385275632091171652436405298724144319998983671983312892125428361706732616455859391670763010060117544123573454614523793306142763310726839589335645547849051286626211836422965164333106203691622118882266061810756271530196163137253127853125000853783827306380533684481114432679661856266346543302844417947769920210436212889140666327473981255277520197699698991500258750567621821565987454040495973025932995236335443732223309340753891558329279122138302256424308068460310862275653943945222421592421969210481340776990863359451012191344173914426351175838831427787475785255957246624639793666488468640989620010851374682022321109625355771886761751762053871513039878444457374423316249478617313544815708080481924088756458572337527682119778459376700887738035425271507895111614065511125939594831462584200334516017851363869611245337051667086215291566653933578948123355103141977160094165095765896144174306075901507069181144124121821569127929746975740657891002047282664705145488872847641756172246329685345261235842714141721111990122141118412470823709210350455325148727241510903486959454565334513378566747998836248423742576910159432546503950945969216657475914406428390873778719082214415071681086571145289327324176578406510742527164009037192908979522567736721857251178862760224586290826655118922286730788369496705172060949015142077594779083287002414743421191282405231666227910796277125218284365961625170998205171653225661959125936074571590353197189232916869286099438656711430558564496318196887349900437353938362578726897152482849919660918979599038399256852244310376164098885523034738695875391842539909260282671603717138186694029061441218804413866487412319889268951834484692042779226187014510219965965708768543977098599223652338928989620171606059272192847305074386621443522028156379180712839825304609813591466205377128759658218197113320845657592019167917567524276085472806630105803292259286688561129608269423786672347003297993877660628818760734264359449787237464787668410318937700819830568209287475421790915587559984329376142804413379960059904028151737955946575176531375838182874037395335459213706164610042653726441130246428708734667545468011592181542421674184013943897917330439961517146513445295035634564587831521587052238482694246537183335691381691318005415889774051410614762637006964187182520480155486897402129788538297055534957654983062069648308676389901198149797623176241159615798120266890098370816962281095128997465752605154186314710469798676551203227271546422057642672070848535764319855255843541374795081208871497321880967462999917000644235946547440520663360704976310285086447613869467696297955196150369831376338350978176362646869703650165823903622526416260446442406787951163149528113347160247282722482154338254239029177658291762328666446944488274804407711307027721350101266573867644309080951633381089059433853290246738745356736617081885948788108567355942294722428362203483812595249049784631319439788644424660892953426005479845524634802687929399151346182128218415266428227625573617165742407089381377833954884541743367534601075957728503593331176738658834921793554590350427691132545765581814311504670261903056679144897491806323021565511878342147571812304761906170166782497663334801795616534001552934646381729795227813113160741548761440769212551010668773941800870206708537491281119264026343805654998535696958995964509137262711906350228731267176226617287364735970799694332907112650540392106664937173420431888463823747474588113946947821647612995973910852569281982683380013018348261288893266065584516432743439640710463651085839701840127676449752857805015025635063284907255046070204669002920165231807320812485225475321563776875952309001827028000554981293311024828054209288770582487084639760132675228829123392355903055474587467602017968560907208161145029735305893012391463707630713216828518277844181766522420265829819632190647091962981781792973925162608331035127093011246552435193521407432417496797370140875783240820252659459096506102811532002813808141329389212693367249070618813267167444584799845316504483289153313040875496933754042508448784168650059298689792238285657416449904369463740778302434844233599990668425324860773982248554681735607653762344536929067239318068259354366494736433037023128589937705790331819351396351704037530846639895362592179087589485529794314494376420012802386062540298557639914225135115511391623404004501655158110081658637322770185091679052070441383937585859594693234537745001432076420006776273955885232662486579640362755460509452191343156568575106076848434640772304416242302021864325466724356062307710078160670279787502611036798002470397973607374717145111421020791247032384171277335060043384357928799955617679027007172145436477075454350314836574929159668384576967095674283564611838052681402465330236739706690001490942591015235543172113063333298874503089762595319059942103065539163211892189495808336408378529693814279473902947848788283387260937702127229906274727655783662592135669654407626621521874911232795895457822054773815317664392888591289819639419199117286335724295831029077210254392841445662535879037739898057183115710438401233328422478665654759292368893837491050938891858968578037257379138411294336644531590324136114636079279452804270543383139097518406635019054866577050497274202048881697580024723702446918503168442780066754166971046357811640805500342417271048549145633997512585868504186897805608871258942332651786098199938508858203434237272277591868788707382000166067355640117079462256519425820912211438413368104615273679116385084334116548901757047402780644675381253662708721366658951886669990308945997564144786398689782267876922635255686457362457301584051757857876024713475363818390782081833839250588100223650813698880550695591549971860087603545155526181653276405709635677416489772455875143728273786508559683388771215683252555793959228609839309302856002921375494975687971290975235917873990677916403747347240286479377725723204792044106368037654765803309063396062355922813871274721634766958895596081549958758316109793561055017457387652153351713128708198734150379386717022243906014503228981581502525783139576363066770602304743075658842670827531341366245622906011649469780428566919560402679012422830378908871893727235775551566835190791682218856187037259673010450773686084748741931863670185943705519620478275172302893159564021767300638106624048776201973281917761603624511650099424951439185650203658201620980922667801040229834519946290889821557864711906865776767592174750585179305710035309403746445776462290376992855287297099643923445807354518243973581404494763231870445651669993814677361816281371656785612819945079801688787697548914784382364260374322200372217585578266941552588169639800512505079010510659381990693642515341988370414744973017723907771527063662813144286610776110219981081166432487806508394197640518374064167465963986936739362873157553846311179313300066358172108039286366422914248879705461711913803991460852460480596026119730758143323411405515344683299080968238831398222143756582578583759379526457758006601448705085361972113803426984453288727617372326691354757174343777718838790329414656905166771584516430483405511513322514271983284916723567607605368959040178705041459029590018565641801931335813830813380483034584135802923252769199929213198754968637948767207905100432011875406114482237870981791526298436526249038624523503286195547190517683816493201872114887933253891242441544169571345612273443852738532438987986254860857900457187717913379700519038777252481710494178536463173237716743642375453227693585749119120024491062648433513383952733446348227168228213369947813214038465315552209978611727555834178356675874475284760882052111833554516152347834206403644202564707730153321331933395532525389835374050789621950642101737737348928934966276521793335919353285656303297773210148615365418380811415270400177499230381177924175390723402313539977881601335054175825258123736444184200195066410071534332857292365201632347626196289100779767506169980579858365100552412868063751886410479680218331513393772758614509171686102959380731601112415250871276221179763563430375106988815259509595498115034472349042272830136460920630069992871072972406978977606682492622858983310783658001696040573215302529507511689785435421798299779959224703798808692270193503052549439556266310014255273057352449916824207522231765587910515304580217250309806804724844589062952058899716834898566319855841455307076230402144769190433850732079928835941332996692023915167328940923871306252505696081254915787254841572930666677116062599097077621800492856809784121423360147038726780548077487222558742698839380045147373489624746335180220901504053606621588259556731790101742856095344335444493779443782791858493341375442746281605774689567942270714114160478179922189156900985167260313910938939067530562940154747207170374324746093684356381998300314570984940609503595999246077435061452599625145054598040307328527850472320995720402649105568176509508187572189867437661170562737999455189450952791002573096652360602068569521385678600168513763139441114104899918191836944282056969415007137186504206410824171626373062824950369400948514490641982440050047355343737595638380601398098906492687511841097267198740216745547345029239590010777322808838656585164387139711753586137852998523644225430384183944796251719633450556866162275816565314664098390375277192300376733037813663637041739786176586894018718291721329911692416550467748042156085019769461985167282844886468118378017398021128659171702127986452233166463216294967409724815692725927969511044662970618950329898058725523884974528319716396239723468376202644400188347588628105632931585637669504644902877229422770490220479251558798778148266395334880061521811874421103990343799902209436514966910682207949881957514690706606230052192495176380211299232339183319870489001944240839065929385559660523445235676507946701083853320591021520841643356731053307217656315694753125838801421331939637056250180746743217460970542317651636727796467390066354334882572779694699582461131040963232798864042381476453736284977358510515887759934402458022322300116053817591686335714253007687828541912524605937398607644432440891123837794272379020653201480861044983527376567015926088469631192882132378961713950965901734092228948032421574883763689396317335986856508235481661515481385824517571474368564149132762490851434682166242600759574229336464915733990369426579705457733912705125042407235340230227780656810529126989820682116931141203780727057150152985463453735841822450370858561511835200749636438524323686878957111583218286673209074700854252074856382985055843367756994153754304776483415388476419274232809245437569142431866738521282726554637791680710706834958284753103699636423499062473191087806632498369307729694517326695955264295330171216066162574387651708955480792950581974382407659878484007978615197527133599611794788193583940184976127661828666466222718303511622112542762822676481791659189748728266973753507124100432001004048484426971941948764611765229263810552912598261637279214286153331294065819677768448634535854801014401169721129259120356863211725447674766766930571247627161811327072431438092586369313567032801963366434358702614064025538836168424137735255105066895880016660979965908739673303180790895755786579300509331561544042789410769677469415797569869870984959226032481072255930735837565367553120697232253177143361911934974020633940081452351858291253071824805336224150479777520094309113575774835932013617444273158553448550967261076599221128684991317694766761617748815779384120871506446176710449113183134497395714487508639583340824868861245281161797515160391546861393702557236610300137514290652756469807098031073492353468133311522649245417231162312804996137243232526171938011985936810577426343680501338854921822415374413662161057207315751056003028853233094095281314048724925982427240277794892345385020931371913867074644463247313454681401886721620358793784502385365795930549074490530741361297906927425808190337532399720233526785229812771647397886573699676058915456540042411374112498432766888063113274957626047791281575774817876519437506536158806030522983302787580212026748610438188596458049344970402809359796755532316672954323029146438273971318290661134649147262787509732480923344777094729503967431605609273644505229395748697459174340695671923962525037684157030367411037924712008868455839547610457160031898289043840793866775518599707219145166955099038236330725345441951492063635220590007812439534169874434657437720755716461171897026765471588921390392365102349068343063138465664450794958373753917286281710750979827580022875054259680001082685578214565060755191559383192886090584718702658234312723730612296611532420694394998564520491182363280687752715486150470273162591848901869040314585218561469286892508999795429070839704037196360889120835098759528811062830243988651247419577841172941438071436512866966798806051101817434436766757561495300641495665508554960230751550506043916090883908839524016557067167724309802140606664209179444344181178279230345725538228210301234395847691876420664438313577217146838096680385303238756829521674567427855618434756045212441132218394251232135263003860801407165332916621571195293672362764341994155447117188429981955729154983543333840624005731799227416819993358441447124657017466549358067711647024543341800907874444996425485690539885934388970632799353372560589250993670672499844766660069843452336756049975906372283243899176374461694766442458796757763615190264834523180736056096338565339458040639815059898161258712537095737592098818158846300648964676567630175257381603754000706059591723812767169533881293534961504108934446577026890381849706665590063095326217316494011322074042927242272298061860422049302338585663380036627314456786930446325785087237053168889910791549217785973276390615601276058526320021958985533604103017525241782994420120561842991238015874517118565369469241302466779719290156906697584008967662565853958932318900519458418239260908834463959056722181261364764379345120652507605819936693302274268474553022637574061522128871212649556837209050498900393504663603935364980709858927621772963976663348138372478217630389018462811650411956593512696833801728345224760340627615819505992557370334382213819515921554791603424841970252141252346471579379300983944464046507469508529823039619637874028117223946513273865702852706052586366192051849775820419839996547854173016284641010999496503309564312665125264643305302986301996577476375006742812292565728577540186762309746528295680958729251621283884409776069745616982121062870670007572778433992060749597943865562746260682276085041738714426486215198399946216003287965148588166916378502932883928557017719197758067472607180033050797279788256642483995277462853142063870196429637507606720725531055096174824234160147887643437170586358472424994014630246655476818936081707979973242891026912380116329054168204794061996944343130388446588654821727727731238985230876875209727635181480343335033314085137929648270185354449542363370095837140618558539739103724446641890023723674845175961862280442922713060271824079333531971938927113712534051794304141751576808846992873669735239894211364752040064410901628747875469169530478920665929439022520750406425697586428400740613713288518928515476674618418711954297942044733938081844757035873571515460782586473598553697966967427698923441453717761246761407104839165586166151273546961118937818682941161213337597312617769694146807838886674171317847235046912904551511066276807137903287139366661562035513671820241952825052489353643510523853689430172825121355478502239510330883999294973782384369636029428829834519826119109275174311412109408474457588174850446943166446678619222902607737929188204836577996766064955188645309096662314687999473742549756218031516186747877418034605577662053314314249237803652122481281827316822695292842213066661140236849833865165236270351491939092139093082465929922441603701416863584228739519658796436496721113359534169361832577333540649102719567033307331869335907276825084766504347940779931650606814429886082381556607435960558599926268631220391449848537499851367182934453238960029334626235594675388041888802492241119862862579243920388447455421662959702369934425462666464309193089794629580442362019415864755456034349555395984372163919334387789633168289390996100974880587053601910728113005145042636464221675306170735420747670158464229274525715836271006561239614561604445970237569487481112897079904833127545954138899033241872188107660928093818037421797892758783233875123025946963264783852859019847432649312551105595487499642668551591832893263504849928746506778659698471229994092211938350963304686897904210150508696687035072069413584627155147898908647237097118532234551073761576283530298241867034372879337596616794196667736104414693629103294136864310210405083710827681833929869115166236123918438532074789827481969637692195018194293190477304082357694212865005879036220607509364143972594789497584742095874874488124334479229529353351001284125654159373156985733526506054799841917101038680959944690681853293185990024177918267235122220882084462088215961908742918683189895554056124504363519683845771694645252396339048038300694570246800981079550725524531068126989477678889055845256735681084683692807568279135217243353268817600267909030180341854614166382282562544724462516335389378209908497793239184701337646524435932664471457146766561422067985030764595866511041126939649498994823369147538129324187047539130938664638802791671151387680455709073391907631352760038111531177463949088209501422928257550650826967819657700396167606793219104837467405014490684122900351056172233625228190823096580141577958035205508777534203446280468252216635956292163593101373103915567899768604634825182080488739809604779535917641543921019044572988950040611844729103766852610262549300409346641306526279264680252223404730076193224869391519229324916701279240273151221850285785363157365203646230083754941993637456806295211273877919488353046075802632151123200453797722088431834492656501724295201203295097015183876359232740568331347671755740082103134289871157798993346493549109497805406125556293806911809317306187907296160211845737352436207400912093956058206335241337432753800564135485924988027472404008340360916315902205999503909619915750716040874601621753159627442850471144779023697281403879011034485888894529680108743587010314680263692730658820102542232758913595409464332268585343022958423605605078963504286276400267967460744020225582350170368378670029058030233506989116531570701910340999659626537923353122624185324515496500327302721982049411615543551496027896065043740917478805302925534450269605516577535074207517363709238920610972220094740852180036966707844467917386122384731327899776529923481771491213709701695747976277416182137336547435721451471936016311852599373911356642993458470047909953498238350471469184569298808234188694717424196623518796938368304080866355669434975630675644489194902082234185193795339247703592941084580983855023818068121717143756445384833773737441007405587048250194457981604166121197388061716987487738033110612182961424911751626910083382831792638368582052894988430754108840331762025521048068668135596711282806118181496227479976528665830909375585496032944519543709309123608761362618051273360356276654744588915695749540830419379825186569937728939787013519936881042468282988727319888910516898641687726088169706566538634451922349751855433253154518113603710243484386741313232044427794835706990697549300360851184148165284741310787791467755359829296004990055765455356122774823332015165675027030344620089630007052855152964074120913738350491713363762660233464262176270056489469015619237353109299818031005558092347838231974584166329835852997699607476810083417889685928843911145649397824421395906907327016893386754849902469972019674029163560761959294790095448387029045688936111540158050006807094361836301025609753165915543905004083975564317819467936550889594072549383217992856156563719984295100541951423181444892535880232122101100842685424216371002980720393910922303841168189220607609087705240737501023942392113746471867936476185164647807704874114063979527900002806529488231929447456166929645561181928203108573280961089807361663448017552814778952062681124135216321382833848602212939785285482110445904512043065116248039573104891866609356710001450372383770026849667626125585142402966674314900043030186877634705516688931971177398606995807393713893040404880444865589795322993264532562150891713846929806275696898170578036535723270363671314945583254553982582010208057523025675610835179750047387447378067105009350483283740697692260458841593748374355873232965125465446571468609141055331321582747806593696808467694465325917648792744697578629058209124336314985201329667347585868182262885241684625317698515376187889692092628718451737218204665347343814219366016654400776726919967127542997647367700046367412233866934084869027514131935154836605954514227584048821163527225500843928490050684868477919482638715058076967416482054224520328665434108122352765059479337575784842681046269570309230025444103241899726573997856056700427634059906821405368151369899079175413012997817349610404593079268804463365587794240506123216298811250111191164678055083264132827891465088736461563808686906291911321949174998902703012336452613402406440080165434939165530914794255992536986582143332008272961590911681078410825362124032141067840180473824185522877502377601315419200963967878722072267879077916668597187680850108463393473933626722692355302792320780549409691231238763887146307830661073052377136494778324328606489309683911211892649776401955462025414211806761108571070474308306033736852708162850652908404783083457469163741226924777553446836373830357952179570551609475903797861036491974446647696752094369730924296334440635975000878304803740177991047973279199693352714673058204348213677318026121020212302548534950824559353567651496094482467573917191157288504081884572717018925865720513255319312125978587056855060291199092187430700996580021956210905674541531114903328933280256844894653307258854850252870315714452958864369012054335360017862087977600787663177282696496427559893724474414721514384832327327046138317535310138024814715074718280803297487042338374166886096864595550668828006251986188443216167376162254304932251435297516277026581047699582791977732536521561719681054226133427883979249110605195091936256748807985199733626074509265566185403084383342812910785354802868737746150883194579181379068431294973266962574517475575731561731908988445374704202451000908811687764319276752104591562557374723612262652611238749886234582640445136002346505667111378790298429349880998445181189519922215239436039138836369435887861885532832312427321994559233015092815085938026175134995779361819660515652822014588931660741369335297855088788759157236002718359188528550654028575862086750391311116372755464853176695360924761610899423918043298944170767510216554258972322556372393197532363237640734833880373231689673858784995960442347635680061346358107456946941852904801022393165801922016206516998834965847798683907418475379187705052874946230641888053785187532113462437424113988676184663531272584761781634166532050329825347062833668136864517589065560239799553892810008058604736269347498895164701289740776552804947131658640727979836725514683681992349008647927443651229062033445368870729373098610123417362376807271326291120835497360566889603403936858025485017114849564021077237087847433697556181683388704091193210477283876840449052353351338769877820433727563424352731433372235486523330843241811979660631239220735955137524620400208998829176411561554041416809223521010133446838997834845313453596707214586758505367550625084728968717373484768939452442219105670374023223462577661328647260501523445197716206374819520411881579837406113779264435819159999831077986113366114746893365279776573617840842256172873597149840380219164827598025582362534742766520041554722433787913583040499826939763753091875854486691630405557834506977517230308370801808641904631781621546882457586130869908905715211404016797035327826381596248382655060362871330157784742323155810436885523373340760916645144900588209664112723933792447578122935269808566162793037018270126036772225949334182297093711903123529711545325470029357731422433346290673750727724888842116656545610332445223010751229964042675441831187901745521821279480154767065075738850610697332102365798487025754442025049314131252228958374078199446893885004896816921878088635319795324010299806203201950012286339640630041798582747540715789357761875542374576573464702671157087506084535715632495147115656999863563435369900048460355636054325066006543534718608946298257417235567578160596860322228664151427901151833180978061965785323562440627584015998834411456701397293680421360750882214130721746907226102954031229363777540899335885543865026022699803798115279755648251444026628283120692321874885345862292718004738827948871735285369605617628922547811356911037803834983667946674244807520061199778560430161624523339236102642601976460252871378062904986185240561692145358427239024379587456666545513022106181427508550219652785417214979553535966345674848660088712843270126105175179542944655471857050227026448970020657694010479523452903205494728674262092855765235205359210748257662401265919036471965237519596853946628319778666615873215870957318078531270636340620748314634298080296590279442412242354044621277519570277874880102684154929148203000543674295650857687716157005033648896146692226281115056606281881898300026140947152417783108510804009736539830877428361751136700256041577250219896142788391340405676038064880573268489064044487349228591858595355132535675196276820113027271240378315713104031604105650842149932515249175865618803338864320058329878581792998927790163742935710522028881222484739856122384480671358516602389340195842052127318040577097922881945084616337985290067389596008412903882482971861351752033689252325662793446269253851227434983691735808577071651918127888676432038331224170251101815036646028295314933145705962210566921661477179125141312041812364115759204429030654181793705678093898882546549533946426798894298764825578826435574988386495755862489563624476620092688034394850264477533399112313999254867456189760073129182911238631939566244264831836192860349373810073133644725681598056466422110950560377623921183125802898034989417526550060785377581237688430766245493566681869020106630306872834923927727874261062466210832926458495504333037180661087313892513961835840393957875995820548433327424158257595445893514274576253239077319682526285847266679621425722287339108743529042354939133544734522168493947472259053344813095997108636457232225826352872612800956934268756835946291001228521060395231395054043687974558968204094671615599924898022969956376434346873627581714399661559029750322160218484091970914113787975518754252004697140647151403353485662681795174854136058668144403692326272120173529431311571228737791465995862903355769604078153163168901518252655664933556425860869673639942326379356499384464395435931625597164524829146610250281847411953672726295594659836737036705783461393202119351524104520025275408058283301364269701307416863639304355075856737117451949894881176352255180491487155868181055558686516185698049803038527397356510056362638653781853148479050690202808386156741579528385567711868069736588611704376966391650318552158337583539879338798088447175664793420672606382332430562600356773012098106521178972204857715263300389301068997614900849789938255002155839817129720067616564369348609925909510924010113246468572781699690878554160974088324518077025408549318658057314943801714057842812332978523912841535818881670465757941926439423491799911537754951885728366518299908449234503242136154294357229819798797227887393067656360302619760298705380523721159548175477979769701630427719085157873866401156654740513729454336995998872106668689573924893644850180533264554038900711069769146489423916725697985730342850938414354741870565622282679248335737794611233256700985628723207468583768124395429064971403733274342576504301669937426608363104389765210233413507016458932673450408110411985558026041674738464487277832877245676642781744608955686454157412214142330744300231992665490085018611167242678873331127533230537423943977935937818341909634370580608234408327606540466409257973699796196546644964203500458724097150586224999674486450814312438712652568489705776081757879227908878092275243677572491656153526207032192901275933642744233847834645782315628228952263470056823767226997684862251971419694511564252975266397682734671548118568896993796581145845381684534581717641174125764809903760806265635859467372560885794764954747904010426709823474064003189784423331364444602843565177999854457587139864861187448624352119265091443885025366829277583569038733709720952988916689348237148295228613896652697023065248823665184458389318092229891655686085783878477767214290533225657222463683151905536311015520249596909932439990649255584284239527649133864982923088147501976881404057004128366035827503312118852633996351666270626018266136031658708393265395373769095503797120537598418043696176870601624155765500969633590536558738978253840449325176806715042679464061411135893595809867442122693857877574232077297773774543740640133800139035245305427911060776045199691338723506312096506302350806400733186913958810741531920800349158962362849925973171792841417409430907677924038788384210757372464416429956643225663769971425703760949822736319553911812055738248670813118638141481979838821368993681167879452186670801030845668013918189345041813746423133986283298480445725830441318224423570931008729936271570088578970292797615220539197404647664553102664866988472985899966061357058480402479805443286743043366327178195169453686947155628493935215846743298402828618573243462930057950378322508769064945118576598423017868608462020053134838849601565150897258709546829228483226005689614964005291082896287766135177977497533645088324116120600063769603039533883541973492529511870520506116696339111844895759293033378328133141522044823364571012000349482638346635088156218445169782896070410031788141499994770261712084594333004025293394148546715876974659416856666980405053160903195838353864573475164968999490382599981084432590270870019721729179562312031183892666329953486507858305029442386044347356846191177114229162199460025849707783301911667583542841577742467218679851189129851215739193330528640442516398948497820272477399552210577322080267974036643186409864476143720575245707694568933007629551269989250100327512397391049752174389201592293567114440028965604603256343423688052548962609775542182226183507875017969342078669716729560418378155916082006256137473312811954545191537959144159258621844257303431821160934535780946941191369308039292941094380926582775623166900821175640351763793720208844301902270403330194233218390427659234778005107744994537027105782830346008430071400264927578989844827408286463085046314420425888560457153911855976302874726788762370148864449261292944605941975367456797868570006261768753625239597574758667134717682537182528391431662699135356984100673008070383135671095370532609749953067332736893385425485876832745104960435156529775302546098195925796773879143856523427655555897334461923636870659242059324286114601116825101945693424172664693415665698971314661797345811155472288167960623545775851900741250107493869526913989538806480388582057711895048663860609051527774207661050669014307676862896585149182359594281935121532037344061821428150893406157515489746570727309402753409122739227879001330552262225449636687728552880185175384279770999577103856504388641357216578516622499447409341869819059651155211263282926114044942748827727328595488943786427263377066177209765082550899289587650501931994007813533509085209599461436934153783334765922898410680201170548717669847757397009455870411435059034432379413548365578051293550701914078675298929029639121198557028140585730767044159131004418985065491646824171319749708885162532689307535319932985950840416560841997252791150051709661606427487483733124258483082901267545047839066402037545470588438921492220348540936221555141974999314154344726405666728889033173804587732149932805789888792957690950686223746659300104201992993620052476346314997767134708990013101749258289696950109399997311524037987497803197294160359929493231039303520420548507744155155379314605671342137644954953144957707681162717182578850909855145095984200251124695837827186623346390208335019966820868390042029672206770073376910326165275053361629776668757887152622223896769152306668079528762985010146931741651124367066166778729337546481766428439334230850269377284991212033547925550037751981751836808360098179687556454253700651062359442375240237527272300109790158041307451974681182221165474681862104494871959232247801293137173071882127313910807436737411338754654295071434794452529848467552103182056668569995369554145898919701770046772899135018951868616039823728774909000609299256337279742279847311184166055705193077344768690992796901341119174818855995257830999221716583866652164458608695848599678250421879918945066623021528889279243745479242084898379059739804365545078344893647867572169353632710811413092230290159406369947590040363218033048281973339690858222367587962813863373394458816477925357055834168017023733350738952735144761667617034289446370910942013359814299704077718597791491787534287583222109674549732121112261439371864025992133518439321181605783210865013548658647225074363271251769219476363150429531348623560519259381678700882674206275511431469845356359906270623366614533883488795747249790536999476021122008376210458908773072968159335721551770222364257510433835785881371859586282349056961226061839227117784244831962141797536619704199055935229500095718024581132408117116349136516698376260413688232551440474306206686890271458921621071721889913412813939718587285733113830208732074407892972338020309650075063758376913244092725424310346974106965932156832130568739163309482876812493902306741497849748864829259961294905198455308131383580680374980307467577699435285728510785681278129055541889788898553294826967011917077972237475445376546765993685933707907516375410101208946568015054750891503786392589395024836573666202098580816101417818750881045510590527659492596261467327830051310898724420835564717078156800339818361126506560476756972011681793341826767711142298785052382176015536124595997469208808774807228554276021788004460539294910891991749363012905046009353400551997667035761535961988431247716509528066812128538319179031522058682793719795865924494235655128487160536741414083883039619391378797359969644679037681808402260626723470794152937482161090063406667938172108011066979624549784200920714050118508194392847501606877320944094375029752131452589430267253151477220818448905378967188876817040468564110535238984956020909739946016445362510869350144617396825175756883254782048079125709711537202114278748871774954500062472699421342277445463850111849450509572089860864792580726840652669087327810731481358560447422391144418635087205711271991605072436613946689531838434413852487141936581886630488395307479045680863275021767971454601675837730847893245766223710744229059481248885278975678008626582113134608974813657569793459465859402604382077997486878288120296927368351894969463762224927517098366960754079786506965406679877685396914076116071066831128835559546735384773941706993011380343870959431001810854215904758316370486019120428912327633876182847128364147887351833005391964797953556651572106419288910252090846636379830664270696384360131524951106300853593038178836625202639824723175223204011562950598706342263563806818380012126164653495173926413159590391082808187138817928942296456748190590587238981749048204643836711514190470344892500370045902755541464876868182830537313533476977152310286710336912707260187089116292252496409733467268237052284438240432188506614282155242328554370755495596608134997156009600742070286784273425808150819822734836261700685887568202077797329151698762094435392548406205351803693112243803084416242997035188754154989178325874134878021425433554647118670576068102870663239463322020538735327616860333155770997657158566744934169738538276547420159730671321773434249389944921428686118424065043174960678688405362380672663245737599812884777599830416146450178299034017674981969712994583693907865594904988001396657094150735607207148286276508084208766115251284257659561049246890540074476477201555734469131593791026562659502190720865483782564652963245919183796572998778269798963167757982475711463768330774874513252386861812360848449851705072830151676547183772575825618148372092290346520742837370832809721594205728722634245679930062820757274405460884678549890974198921819716203147296994885634868387886738770190643608006654099459738040943336699598325266545536311778950474591864541047367570790996263327757834619748210187513729508513644911807156743536195830686111672633694451297411113198663010664707401762265804653588589936146159272990740537196978773561102464150696850543864293804107233802959981438408223405193144086583170153439386265906577340318971483794478397727968469851216150817061608880311773915888233361313154100245478863689716711383100324428828926648281326006056396077855515081124928494252108894260884846406860989660874057655920935835860653038751782490138318430190333434850686548298187630097903377006247350936194295355626603864429334672978149572118837707062963862121203921006894851400927851284524095969927949847032009647110345343912427476373107550849959931277860365244885517176264320205361830594970054668893347577259903333923455436986094708311319216507468134203265483482266106383270087017587644853868004418080649336665382843412779203813952921817777175822793699309816809169888073928356827095443033434450473876862656212904827473736455444845383526949356487035880461582303713122822877740607754946854305007166419914939299880875617384676693368833357626420817725369056907951958940549081949323103811397075531834846478329691704426562010763510705698732930641311527459865360046477889555984254209409038895468149191338226907127799451725275319969696589149531324800085976348818182439062332156071156337829726432186457499887490985088774719724364464053259752458568085032521800844864686164668342499220336232546034973477187652692069710886424541050321609049727495563991027642618668041027812449026657915688743640969746092974803495392344355501744738214304698268312627029468755438219059522069713105552981213361441793234593204069036278151387870120273546953235564830586376844903909935154888550314606475847401395198808736809421840206861832826396065598869012408388403488311766666689514330022888900784015894779000171447016621439659304561770518171357667675932641619095427597239854810788336691874811692605334866763564448414146545835144370898437308536949009039190002561001676062700181361056965545219972859501772244718733006689933255966788301703142972064573405518371275447174833164591577537044426213090349339950851609138328118874936123742361225742745107058520965878456159898289396850529889213999230157371922440548610730034887434462801499671249554495202702658323180940225809887931503410639462059291786026264218834273911061155024678431226090990116805007090586650967651666498936815169937791057116869928001710481594250645764218627995514736800647873838511483780749813991440557845905361821921848896282885466505076650783834411687749731251813253938895473578225107440433245803469801243255249550271363743460408902048738319350259021188207404774270153573440147415813338583343409234333619882440439823118049245463710835210752992622052381098669410810809363435836756015436867166802766772591331118439541888210160318997549116329219693003949812537313103202410618007331082287045758621529258134643188355757116976162954657959083702387856172473239791963276067079739541031838131775597380067185156709749349362735063566623874462638365768662663742909371546828456085305107227107082219936796130443407174832196345375253429403359117989673713400576076929602763383120864516804276564451019842924858613037173754121655737746370050680944641858714219290527129017728137812330283103679642608767969126657021810337404036622490170641355371531240635355695451843565298362458261861409380353236931649099517617716554470889789728882221096824619980706593022733907539432136290257884870741035833772414299775293738162357187273514186592125815184605441794014523775794102598144154109257700196302732790952434300953436238678159782798568962293739613354013553632049753009002915933982450963715346337711816358820718555898261527928788880073218899863256635014633043244682599566955435999362551868956391711594628780142689371326406071531748424235212059469065864467852288298170496677984287497737629474083571067856587581659230179488288017450262212255913450145830438389505252224147993749287387635341511315001802253132049416715294425353437214122661874135118865699212457085516287766003374864605508096016754401325294450126132758772775508664429533730999375560208414238486065174785644368506606071833211662080606000300459799312464331466534211643164464689362461042825711298311352653367545792034057826998326852831848647749448856048958281187327191564950709948644144257816339248469726732448197094795869875678688219466519148195631132365090357975006072174969874880082767175988233308006847640570774346748434938272769101890222195398095573396167381883298691699404877833530211343848372308578467402142652604781140465947655045613951287667072659812154787493368212153930401240175978931600570661838054444473038377642184814749367804697426636614094177856989806945435665315205562445054878557408703373911129472627007316483095588657418246360182365721128713887407386032945449536422288954137611101629437274303170122045040755925944337332770599575809662169643834740123007162216951612133195980303429116856631830627080679035720921797498311059421259221893320496143156358202150468568479230102324749223012060212596298836478416744180434476137794851828670596872051224038717372411838462354835581261021225050776901600329726987697408310390814284732974067583252296739905573512282704713278546076610654804520378885031486575547046002502574222425617675348895212666383348589221541745106805293044535403835629681103303736135786992727818321745674808861159291984616665024589421179421014047390580802122852106303125911333118400822621092591933048071386312804313119713186928609440561111431944839905224828228092008484125306899581177048399246309369548504624698762890017927772035123434175210954160019954466729204826927954256527590753329330087627000062432579331144684670226155442631274639143493580874844840389966252040063667112738510676693625867759549968758884966324164258709012829266846713370270780819567251686475485280119606703180360714624939601420386257914363694431687680864555762941327810269191885691129334472210690938769727093307796003038821265197684364443726179049524206095470933958586662567438924980408297531345621158931289750409443979321439563648303574633772094404906859964568254733578430633029022825943569479360344044372492290063318480757053464507657635164935992397930667602769095481667415396223613214165258941798923561159439613218450579433550510044816016266389774362902515248996666909727093329587587779093903138235625381001215950893823213594463575362669057529568578672168260527808872190464820134810148137396520237703181862059353663029088346414833040794381040993445499253118627225444555076933652797807495128069478944195425983972585686200150392993876923415633172534252234100886349373305648067796694550215413887446223185142849427892021959882422995918471201078712488724251134806598774535403811153935404330192321451930792002692173682174985433143210525142519827803362299527811187031048717031405334966045028750621565771261480963392217162703241731888365104400927934980454116961398508998764396180054774015086579316295176136375898755849299224951955742812455743192994425061227757348544399693426817314840873962940425538331047174551829874203536736085891027222849211531404184066669194835401497118054543428334345420605797533804106764077420796550545723655965242125367734504281179649668414869981586429001726124573665221952786446376053693837210302560078069255090896182003974530390575533270465389588902985442811646852718066778251046120004505576859420429415105570136131089529686529987961655357970854500749349931449016800721822671763181453564392825702651255063485336913848174997215991513023278656504900377701359093162083439020879361510358558389521941974206760590985986601604373533185357313159394793340793236951642003144355819988950318576316426205265161750485942821040793590333417524695624646428907415529111299969533546663170506530707487632675914493421117971448639882368699313849804571618422271762544890799152610880940106611474286248257310264930820999341654155244547340825743737457266886409987399025041970111414240059820540614487207152932662857920256493222782781602902805287127108992237624905929506110324426527545704174995687568511399409316307228603462096213511106390403362923654271679097992370287893597976058334674140110899642419544741746020854391674611979951648786159071683468790115724158394033217941463624424089917726551459480299492724044773551988071749586654397322426367111449068372575784894541043455107198093944299079457640970630194469028280445718944904023540269865332018439518892910675895820407636634588338938963233512749250408136649827138287590144925525621655722957741595835891185977607936898554095803490638450417631351416577591522290612646215058387010118087922091798758028299093164446529382667030678610036383846503520217682790175503676444710264957875594359867638239745951380632810104944283399606379867249031271884813836533410625147013993327717322647386473228248923434867673710637660224210448024214636978076898971143827697682907195784513017352427834168321471915726563206019139928132625664718339948759712049084953586756733365442420866354211961875753135589728820397296056609880190991338040767389343637964966516478066847723171095121495982276185905177020472759294634206829310391507725817026481948713046759713591277344328022484826906632139991270686891632983896531093206991557982029777938115770901797509647809176789430272787734637775320426490586335897368902779936650427779748252530089095935210789035852759897931113802975632131179034737951833589352877948953590282903948940368939333803170265161297095150436642773729364083146250681144708522722627690159467285832803973557792250349016311994136578515877302715414988305259406922129912607533711154765241978400641585681296516137174963787436294399661453217363467434613990962027715354133575762348134349602370808874719706545082883631901677257133434154810155917586183227189817757779643981925152453317447923080105881851358022946405560631849516979618422831279783308856280103212472131908113732466172450857848866933736184665715972395647864696104311222628246969257147299907476222556292069235846788418544796329995278770721669516435818894496922132307324794859487813183118126475302065642497991494369496755377349363880074873591434459446878826528420859045280307645321941123018046298063098188262781076689895311693814632978406624312691881559448187819743020658403266112695529713633803758837050423076501946218704054355027647890995178802339873867655923651096097036190584510685774641506321892484477236275914650258624518720575811453552096575605574440177092177673261163256657464458567308281471942648117371869000947914799293133950352120465868818525577496593547724295071211181850472522811385430281338983644063727448109336911979818183121944708287063198286335330318038527043007970967786306346834979570796042876873162188679753016740521506947825853434112296650559868454163974687343628059627746515136199944403641450921652422725135935065699696191861456740963532774488578589308296039097704758304722830412063002119044867915302831207621532995224113749984338380190256987323655420501451312801276007416078467815762598370348098546310853629627681469851063437024135144326469853585203057985049883010150863719612541182183905135883467070855981734523389823071197621963962248751496928844358743702480139114791858224025305675340539518852902856689914837243635669740336625660441516545330321995050369966241506555221784457733230875527837483901490577184677203450469666442913490405594094318191034565458467580568251996885846889070589269217497731352193264181950923169049112246175369484752686783303256507076225317812604815233143724168488323305401359689082986090821529814082294085636119214943904051645580386004382216076077581471499576712880357307687509681857363978982573331659910085107093049851925143917668405630715459928500154256719977790906657673559498803759936610027038499384845568725230570514686934882684022975739490945094620858035765845575287344242956939604506906625527777439249590353009967079507283064360284832875466573232109833542874121752335941167271213339363704879871923771729521459435156686833326336393973387140473797513736064782306031245586439277615253691628432791727686322852279802158428686746086033413019974770293412286561548912246741329017923309849319384192179513278282824139427028951940733229165686514817979252675247247884838384099600564448230022861951625655132194638584539707997453955788966081711513411797152641590752190473904203230800478754977417356105129578193165398950699613474759698974476417626793602892306111152707143045922902204259362132479656311702125615458485192300170338741198957194649952293859165843000914047819747910937763932036655618127936512160806669218588291081819000191090743223759298424620667930868609215083672431774996532657779957757475141120209739226488483456748731608151992674030775255729853344427108659114285885287618585058922730911989127394514369358769526038761677912579560568872845177161219789030845669255964416279261219970372885235242838979440862267278457180171997218896054700640710179032428957791980587518494618612438003172561154447913709695802375975777876315593810084018425175295820621728965026937683205811314721163342608090483980742644107918205085577262314901482894930863009520375351105667813184951814417417781611244129035693385042273038358080771277535090891734953695500482554109351163764599667113059439729934311677638021680845617836821683052758162408335877511925402461890682162756060826128333026769373962753598960538377167525145958705626145554362445907010168061816329630031135757587765217086727140376037093609828396882686240128980021973740286058452609419326666546104761017720591136412071769823675969314774574579540272977157302576027787471189912558702154950728674350737193537369817647225943560218126587883975422507979628571322077187296053406405453821198346538915283987613904741599084549152130023512976047312964986900550907757297216559150402601046011864305194530386902914702186955198667166090116464114450999577568980187407711597424477787485980824361440054833569440615407517771050714385201657333482057218688238454506173669738101141817087025484480128362711604715501300754377673766949460187560977100573753876225062667771103095899233934113450471991950978416562200140331739871663568825127794614896912818346030763699419247712039156923908142087982636120507405920887548186216086628461902787218100078150714236250295571332981798110920093631298343763701438930256523805894267802312040602949630070628067639399747737987855823945392773639840063596010442736988196359412177221624898904074573685865142186267877512498485242163993872814404831361384647733008409470375516728050225203537810557679519843571692791694450484636263053609079994344840222808075514500596321288130477518324846886127024229864811830740266636662140580667344244510668926918803342727211751060316304854853824925348422386082881719318204687387549236793255577858555789002050835222021832033398611177341384785025747904638169763692131073905494231215164661644398607702183002804346930557316797291952055882332478993649468240281145670111557920217872148330570459551009397753581342459934753760156641266074758867273005455094424343056324752111786563165779745289389837391744317505292394482292759504182204985478724643274606500075655540226089594653752060250276790380800591908773042468793155724139416849941537586631028364897451155390532897690870257474091983458028239529536450389408527705104878540300513494705529023215427264925459609325376673255418629407881457373136703524264587750045582191413928648111972125371440323859876745386388776905697777901258008926672301987059673014903320201707636156204847088574833184506945131570446564593781021702486768105868772401388576024658859276309880140701782947992815557959676333662722474578710442380051036697437756525572184434145241738459969276738818456176678267149264652402477885659961362896033981894657301651826833032547982869438905091257158641403205968222740597147855263514199706679799177522768418644755933146410445301027328091401788440244324800922654599339390752703209221786373396651318560260032471399259767436818852364685918849263721871939322843566802004072762486586086725465445374931639299425170456776644191238318994996709675596978453070134960433573938561048827487765218874543534316310953239064881573146358289979960961294407429737803670526006236211684463688794733676667497317748810493698502366121343079985013723971191359683208145331216337087985220174936466666119613779386723178880743100299503757673140328431579812552937560064983611248713508204584449651883126378698335179799050660334770622361254452708294948570125676354099345021845492796321552478066811449528491336301090403148592382935745994763918776433992983420674282503576465447092531474027114818395597356391779166062446073273381683092000453193438988047471904992371807930001925751970881855312157880471591477531030186688141470973401312951247002694884464320998529952467606278398734608307110928334152959488567940270583006154598423296472132386092914312847256920149089602580385537982117952435380405289387096432845091919500075736771413558138813152214903492816700521572145918669824568119155117238487893604923422057711432759661831659923014207537885458337027016738819061228337983077157417639184148794414123166275641714449691113088381032110068748865742454119038372948851060443224020172528416905995986775466437660570113466529011028431679153786245771009431693400242634177561687248377198160157315657977405876038514464754389699093185484884729726719962403727163334952104275118813985490639388490014231326442258163589764824400808020614054315580243738126917653557546813761477160312132220073706994895647120055166321611801931002258514343479380777322543131945071605214884750598073425314286201041130647962898246840974304148977997551952546804130958182622967011847630148351741753796407256722555643338167294933845763137915693464410388509262601651723631952728484542096866327648426604458706497345237957501470078696538411992081878307335577958684635099001740364172968586294953459550388128731902397190428038744693386497101158409725288498061329376682472912387277966909318556399867434201184007156077178151601346941832703231245859265769048282072044825588264752442108425330015094008015113320175287169693032991047032403016422579530994124324175493996737185983564184359916888994999109020897862375951371971011639745118862424263662968384488357483368722840073544902010602799435174525356772470075154308985241590099321446890603830831395398851689024132916470082541729390536636009609772037761074624594557142038207210583777858351221895735975202320512644069468390618978331790017635828985448322246589208448575937832502883357435678928138608521088930687024648462577656254373179722094262016946657020747231770534182471969673333403537348905594120110631514764657904955937452101239908789141575030306488170929396909096187807292440946352051550911434313203290383713817522166645585120184753618991125633215909619072853402526063738516156444053011438834081805005131235117102456060293410955432205703256321620886853332490533692106810413737686875944209570466150188540392997336713773646084100623824469007017510579338854203180531371746412564796576206934474526330911001453687738363007855688799201435686369957181139461098382757032038075783091019870293483617331736370656377642388382574380431207784244923980506176596441548605383854163169041524426727497478238494068013237212501633246129111767967431948958990785295779260129386386173754397601178252428135973619455586310812237736653539946463985679266386834908794008156500899347489539033033866916144781033767272870560514982004884711109965660602779393110045521542782849975625037185112214642920081209237708894694925898731370253053598811336033349709313334972299021121173823263010528005203508730178664695517014291092189688774098058993453598382214060033739129742682381952020211885082753949782416628897032483977103592536373937268394484803075384552039499392981258321268038095909034657617981075171250716725722036438124680857319529485677874767701171997296442207365155127614636763157095930782440394953051905250534044023647718554733456389785914425446687233038914552355142788581175519961145128797388854930629058388992298862141921788860461647383555575575053106657359267869097218071711331846077183690221266604213293009340443754414143248691796170543316663037932798802811874112477165594311129133410567384424798894921235313726679343360155002190516275108256378447981963324401106842791509194675991378705140544907158583177277148685623311388495091904323233656338672929079107779382254025456053863112101918030331642533475555432284047977296046499255343466621979169950454021609468593987260900244109273485786939598878361666969381822466566839882394252494976738806403791802751771645791298376870729256239062515689304253715535817625448822631574205403380337309642742616544997094363238115853765672147795917301091705013643443055949870681181318469695357994527437297576132544085209631652877641654213189549985299370054144599458364919697334554700015567876003061604548333275998040989427653908323282124008485003987657802497339026290567844613026781726732773335747712465837628181783205681456425127560843084011789489834365825130713351440109434114049744707080362154199569786194139497824839691120391903482198678007995060550645049457177597591251741549168522665211051788082868725227829969994211289300860888737971518633615925911571979253455441482923134216209460429764344503609362025522142512267091861948583260447940162368132067152387200709182487903297529510419612582405299212003524039560908696931943743597655625038876622287039632884952405540203898374458477488514674237465676377028624937792190149623470846528157025566814348877531123253971103894005450935773269472555736038926936134510055298899331979146461503009775887831268651666076421327816500971849422096115033414196786985418575795481655646512586976990813522436335777793165743922575069261444790025592320115047486611757885746620149196801478789970865335939682557308167339208569490417137086169396741993253938186850633527014443164645360856656462010548729423162678220435917018880335495329358250698680331979019785032233123333924456513203804927264179074689362133703763218714394613308609627757012589349603255029637400581626567315845307313716023515438187509952395342550187400172357116352075844422459129045345024141589466157398846380065497946076949837891067468061882812998656411841413180297003988292980950017453692471295771524814244150329217320533065961557043782478141113158283699532733032572085539393062967308453089945301062730734156161648152503656606494230201145261363273999050010816004151828162093466456756422436001836059859529364695966310999136909266154966905642502065014803962889988311118901602945446967692102271432015329598629897215155032893119665432024663046872957789004148473606454754812045105863727360784235828299721794155672696288766026556338689904329267216337307183133511334777118898258842480703789389362411209332064384742522793948693058325023658998423939710855498193051958253041009203244587700128716826567492470744384190701382844479230245183048700179561226883918404265245432607049206810501675518094857153149033239025108001375689794326264206876976710671118846227642955256539939135845392928238613830622733002056591637700310218025875662185117532978846791514195321207419762427008687407528046319858962412555229072497871776423594895374812143064569644233862712497090081430436960247780332704936811834154213675997501961033210713252364413713791545930842953950880988807526541063673720317145001886213753296173607684641465242734139187548277261496082453571210403263292168403498997925351625474661272495428492889183541227223967009287652782013259976235133822408858250846538040407031073996538099619013657537883138760632765249259488933348794725628767013780712221836623582596270853008061879147685978394956925985264940381210917343877976163251723271789592230831372193013814657617166153620884341821132687329770773695489662433852764570039722580918981726725850885982011799759803816322560550555783445634332510229811703785574500326511432011268509673660787576744550502063305571983561926902342431990376149508117036523315420135661657241388222054443384222223720862769804386579740979767409391193960259052111542824093460186447825202679359776516326366495446119573444099630123381501889487999287637287490006827379160673069908131337148025433637340547487962579277033582736829906780112369945000329875250735762738683643256744641122144596841171732059217626558681858465241576094343706486928609082708420718725084672541928430080154544196640307515581665573504503582312722939438092321487015792265184600374163686396157438780171681704379747699037902651317977525308828062699786985105222881565665882307373382845941762215842148777522645260564795556664014163554656739938872380126220887102632871774857342830242281852214758182452870745072251652985257942115270357220210199517062477142612942056318215356426234701287845732836270328363977506006532086460023497168675871033754428375893831779034178851185172185036370808050816475240608980883580066770006337252231148285728180440274170641113941473079720766834177603129653289597227386549943318901158378886450790967441801948605502552641916650746740872981077591367261548224033264101340630728208225341550954504442040560337849321440306998036942493195423008306866005765167639891085485311098630873935279194392665671571995969423235831506932401857647331409255094911216804965558634341396627204732541125072874559733079065326222052859251334929678622033734434941477230264372337028582670009033611309400833567038299569985693818492614795072598023148412219101381566018307928158758678122466970787884723149478109775389636998171105160484961889409187818837556823922993440369077119102088845165699980749439465164756426819665829676017279373181322515680872250743056584386637456570877969112463640609710144057147819409038619848824376199478344726573510384181308098053321063788782992868046725603340994290755854057724238255596916426882721057970237807174540438786617522757814660674521549435757961717256283644642058263212387728734984042765785392349908715444994091892247510129809763828020853937526434061243037688272769223355995760266040023758063654050781099526395646765909556042823606629057774937656642315345116743707066034297529048494998242067593245195347355897618639920765843606161318525164982576877567698377654134899984352914361449752477510121834704902293960639329135364268549676321966901063522036585521569977844415150140658932340216719849353914067443094550173885413076925100148278695206990885569294571760120619196338419207224801580948033484758225950844310819061434821836476609168804729952130971358166870597465680752098804292226358167014104391410678574484174070365433753823535345115167272911589778727786680996753483612693023742493305139278517352158040695118361850030560295697257648824671130810550337784137622809184702708282789172322485299575616249937427297870242860650259167373260740506740203967629277938177844783694466735130314952976985069682818761771386965864198705197052085290502031951880391438601265145950542255931669966821848007702609773026111183296596864437658750054882198016867882845673233427580682253921274834292254177208929714455724420991572970772756683317529864435120545437694974170410166313767220182742350345756693629575517360323741867123827510213568933619346860532893628838112125780412930214570685925914723130939754032802945420125444892857540210912989386462407375603171308098803434315160541146241179409776911510334035278572866143637742949575900437057043924674129389093884201549197651079236102963427307104546164478389464117672659632289302220682668627333027747330958180255033331248594830706339737256158041107821110303867629987706232215884990533566318023520914217706197519146368767548791569956489036708195034862157703631454780104672626581045568472353341145132805962289845780965009559699116840399720307429244718940879578303935708186181605729948594219147931067880439087554911757846058214934006684530742452090204900970519730550627088304566459419666719952115224516347808366197025272733837376425155861025871541709096246838747995847285113249577280608617090921282159990007217757064121779777509973657498114629595313323989341413255864852437400456761839090638745469122513396545057483222423978432781197582507366550668309933566017962073100877656729125087196952787698755431954638867065058732090535890841564339328488973835248779242491804660029474344116939335891368498335339120293525980074811405885792815184813854292113763119054006196534121990600110404230553189107832595272007230473962523650587828054776385656900063767552822953686068728855124611048696839842850078825554873735686497008089612784612258628379782665099171600717009045646557753881665436491888907500677506192113933228010609503821322196986058816447253768868041056560594540137972297033199400840233958654744841264945886477300293268286123178508312474799681980702794275669861238748455358375306054879335724701292104451889464885023575936609723459707983676952619249127129896165647371138926554498310158515534871342150107785177891643729806700375085707059682002381469997209744123286708015309323038649731193996196511810486205039794092758945166452299385935340524556894852635128461854039812258912178952390717690080657538386829553099754180869575916683382980147720031353055133104989980055065544521343510469460900740881738908886028778273955273248072897038268156649100445712611665564139693105636922331555626315250047081579023652600138369303153195032611715435304874194317812011415264324956734762718495624257452071041231441011850700203572235368947367198909076412315252470521124217661629678159034196055154404975991554841730708698290904582484987657393023529316814029175245935421380122700976193767360287991763364110231903057983960392876553374022447137539610723193576809906278718823481426405353936352500922464672737694226505426789343038481632232438951191878129506948232299192109036676709679876241788742699810584790817026726618617657302244779554167531429473460474465851627236299367442027297739340332069206898478620575259717053407623269916405004598262845103655939825999918756432005903367984502377839723339262312226302486696832304151274339802935962389168193976253206041505813112484902670330457125403770639776609473930458017353103439479751963800726594674383645839074639268749117717385258450914712524200980709793886219764551841604546635922604164446232375848024097270520122497938400779066501059949842114427488522319098756300638483379326671812290059390853271346081899534252307447759906171744448072374969305808523679333656145958153168296108595304448069232246820239495230072425312190115832483329405236081063122812867778145741640380125619844436438498651438261835978297153024158103805918075516105180698143709353780009161460558883244208325372110081454270883309096857644223642940213513582068070910564245345501973412325356107059918731572453398839645436641274997147807196129941313191555014814526441857478855094088951805575918990503058148520588476117621265109191906869489013893560125423762225024553105334578501765867599845709760637898381592287169353610605720431715318244750027310082994774007763623388898318471930011218137625236670679900594769662887441328923422353047868721170576718004443173881228897719471890019381775778759600270200053414575151842928329211788447602103918906866834217806600239552390321575428682345543161416510664405746767003575767475165345828455172407762031082280726500460671183106571238627269791534650855280238670378612684043570426031440913887862332571105636552800021412500891437549101456783077667691137428771996667563644039660456875180040935329833769344269575809718726679901997881280257580623865335302695466058430969599771662250181667671511537997743179502388028114364397726860648364632335994863071931352576139746335783656740336161399688491739770778074013343916712395623421744891163638889538558947125964832266130075790475974645177620224945192477038014764423432335299033003186652385828819177136195693497807870901220877412328270925904448037558761846995708488120325986446582467598538798889244349478998103299262012084583062160987969963177223526754718029675987486182815959552226594216592240334759642627153641543247566977129579914483818049425026864200536685840418952319444727560354038734501019178030392185723513240151750742835336088620836085084299286695547928869572393956201481163125312344159810375853745806597714129731580338220345612865586628200904363413765821297968694330692330915328436496264868597133665037795744864069627871902981285782544100128892916972176044181753824482786838175819108982874604685607462265183366901720344278058954892976877713115898508342273671624932790414039475853822621945156664036654779249455050660191490413344074582865145218792292801481826322761568898294538552191688148553516937756777092485602415722236846926593442563223600137869126648005182606136164044380309869450081138436081959407177884263752011914716549658819302471398668377911518640583839328575601168878236978191193635496029180843400407362350100054769359631313773110367645969312409517434105011060570054474450610388809515951854954896539830914989909350413776238433104486438517095130995731210538968251693947977573924738150184367129758459885101088475684733081781876779755871346928793653255622002965085524935475717890929756612172117998944257515262239510675081860978693968436974686555060753301543549282083621578719381641523139852493404932734924293102643898567194058211642856623313600881129602717632665400751550908708061248751095498592349021670057627253182085371698720462940596326868446400083593127314352511610017849981814702430908269204517368218404369170007846797742517097132271478394972848335940565097087933519401323912919137859466045874251168099246204249158859757907441338633643290590257178895587923429812083818142248027346636060980891572196669176713328801921322665845719262459441099413346653512653611738481103025319710238880218724753789877139757011317945979802021728011445868885388969989766988525975862197334397186947983902583373328531702760387453668715545713572320008639000631574146611269073435171258693008635554966732949302873078384247376346861452460777736942718290114598072254796051014841843014340462089875724863521114345271988058974856783783263313593303999865882778979788885074964686876452910345302781167731384834558859839606035604574302804456249623587397361917823386128632617612259501164256895233775494157567023031008535338130051882806172405467113949087483818377547291040982921005267136023038517106450077134354217032264478858385397245687564104839084257648721862444828751456267092642027374267335499488096579171501536056819382579406459868528824711920669802840297314658555765713963408553315660992442932670950688659749896444689481191189365780353399240289336483345344018401138253153611147673282465563666497900549290071598178652917833494272608370996678384546946589447080150860589212816064798797939017085768174748514872065556411909247911564160097928687335216882270642209811490523003011120102036449572797606556553445720461607575716971800708811081871854898493614042906186243893957118988651413213234666166155839229327549037692436445917876910951066598293451786308769714939363250936525296877430803655892493738325824298560488021934840839426826732496520851314494057741235081243159360873054304815494827809698533689726528603093150622406606586487625726598660766874596751611496005204478615767721841510002853936526631954606798507690947100454321878228071552371843841142653803950985403634021844278658249669841252081062950954154513865164980513010254356778027970368149731898579848562176047915934298163421404812220078551742632527478145312579388168012157541737632118333534186872972074699695765761301710206340736024744007082709135517736827600249459938082308003033284410893088999810025422788565700243071774604268883731036833917525453427106830083210644393314557890126582447000870596573122039236389934730399859251451193315662300251861216945686286304605429992174613937895005960761286433942495546329112397827529144891319437694405918267149691749603871621352108173823119354090475680203249075023609077773234775622595018722481278807765348417157619754457365737453617298573604039125166042944854938716789726240461035314083729523595757165526931525778783320907400257388542902781629322837261053878187848358044968526009251168693861624544168670777720238743470197061678648717776416214659840456025142778097574031709766366840518809487386908075484524087533464887227353638048793921437182988573098278363599328899437696757842724269042326991768008116419996349312192467856461513321605568249781857017620656456631907943603367975946713913444955535253476275889569384715994934197370174890735176304914326959455950518700710274864626150165805953792449277101619633333592200565633419328767465888359885984005783694809324950480326249132142552018177075579583086553721485545560938487373070778077122730114079095887610072555914328265409175911340449281715184312149797654750543465525633581821985243582325367096978653734518185475459677243214127257281479811703733295488944845897593059338781800580150193340064752574124527341339172822774391842985747276466640788738927043312954757077867957606908309380938403711874162808992013954263063559909774018050643267886284023306703515579271181661556511004094530432261565887781487362111705231696909738183328197743505203912864500224109312259796945595766417634966309034513489431169598995800220589661466034783574652473202088242580027270555917266482331497120965533745571846889497491667641781589928105463326913328908419491779428799094211063034246328794193916331344586617139005840791452450444453549107878856426861931580157364046225683932906259235351825565793500484018899124920928507970700000505006283141459474172470497927541730778508828896402833362776443923004464782653678883158252062943686582598607989688415644392195356677424701274781681145313374273614543839759702416817601861941693409053905146183435315773090428909538055363136756041617652334159936850050731696843672305688777970966993926534462559311290316392235768245742034384799524251146809229804429926341744839710770420765655695476268094160520735003864554765524432107812346874901174491811567158492778987994013873907869493481394301934942417827688577386059632375141448548756475344592899542991390941298309730496527687363780109560084057546074091562941641765295658930464458649961586333204536168718123478885077303045997767201246736125873556318362940899761943343164073886929397674759322260844620010732897390629856989703041867086461239784208183783236967961196624971677958225051406942452395659604036948917378625099594195177133380143022581801848668269213873715285651930947165918976079873795378085292539456731540268549289814906512083809489548851839631168306020814977447837095519300393994846561867645604152247067101094769756410600308911553318078195624002054820283913042388276776435601663790926169491974638433402949079652814015754771630263530461126844264064906757067725422378118635941153368366548911110408077612548524479623207578923940917899293836745967644073271128875155257424056563422273252541881307556830619315903299104983646246092400880727914251426395233935526225595807337903735285733999610906137300523771894659416177918724426606906445845649833242369048011144387941578956116430743647596959033765721299421626651817884418401784019293268497596742353221250467868292320363219538999780673008074957181731311912240597776340626485734245733227193376627082781797088857143999048103896927271802312050577672609201648841224160152095345434081470143136309083723681024559376592945242167775317676140209272173638575287850944710020417537509251719889946713025234901465410060494417065895953146668116700080608129323914845264751944001032983814589775130218193039577955038475949441744134273158898827120841805898027158183299708323663076779140795425383515476285115091395309616928883837413789100160028321348488838424116898190396850546225298742555653386947918616036717346150369637478739290702907793331539592939082355632560205102956040072294634618703189034500271837943934221643606066562525119231461649565788208480113610615732406471851146970769338303848465524156730125184637055934978878589696628481442659579781735356966477595459258928382836886862431426983113308647479746640768289662582479144628154581422123592324724174811176002633577674113012453704154894562217632654826257303444547243290962863838865793068186366656108740856735648028546723136998257410695302864539721221309242225971541883429390683820860524502630363538978288832781388672137267851319278192750150292382226631083274603872462712512286251522905434572030758415267059860004409576079894350355675320421971799100289916206870499499479317235465663778470322325934482944329923991498718681954297395806255026667141063155041246651741965751005173308280220366441630709112657324800424291354553667317072039182864369998353749820649709373655212151901788173353448185951497432689811283244449846134558270041735324738853279549693080522592518948530204719564906751254470607514656683312896112846171270645116389926129061517368096958041099802962884964614836475504085221787039811310095801650221971408297741913803587612432739020207831886799084490487336220536840752307018434403340228989939176536463876530662447838419028558799730811575261119208006826555087523645279703184708378163548328208953201461564014306277063822919402571756522948217581505237402713122799154126227265043230907758592316321071209082173231659875730392368809181502907179075235319769262077346967000883895006796404369851281488932504598054004975862690888292830904456358528255511862369241544659729413909253264872738106870761737804137361270412064983530328114856562619267902721246018208722150683411673492924862614227895030582395577270663605384784348384184023898503211603677717656004744058409621470046204133767613057185722278414511992171893175534172528009602304795215225847415252090638582203349771669313884931385672529150670417949851590775418745286569480725250448277854366815647969549480959120175247237906121632738490389751030846477937288017175125456103035708731212632580460920339786027032125574971307969691458026205620534670163621869198743510696038101874136949215712845868621093590404614998712944014643782704496860182077407613875616309728313777882017626447598513720899221133961471521962432060232739054232238437952046982228048464715638045732166534019254376377712143696122474887362048070920043161717622191558357319535158637623402169194275400237340440825171170318567364466725137885660558066273380105870475206596939847004987664532431351617088328443253788225650567235415790880316675533291141131270357450595793723670363037812467746678920516503687325132966282479387618282492729246190624820511851315840724904281666479226881055891330062909253346621805828156259711046151052111893347668050161917715583359561687721368817696275846676294218205104847763376982472104953768460716329998064037857148567669502910630701083680504926111867288050498270982582903633820139987776105108040660075551375592198726523258446776793260338880534419330840665329216916442986692851042917193664598408525386812635333038526404557700536555373874415841232261967423056902992329263783992933064333144177221377078981482256874257901438944910625021054049250628761919637167452837677203975293311000579669845363783897377803426200046669069614159939664966610735568744341461484063817917151552966791368782443863819046001369845220472493162093714922176984407521178543181188660222633042682787832586204342034079149730723146366631856367886989571975980294474348743696585961342794487887873857871936946371027152638302058925689738011214492421765509377247191737744338887153950755522172403611309679171820171263973724867657097133433874174257570285736942160756130163524748429038506105856244294977659777563426347689545634477346020313601844492807788884172958666472085365584784890263168584013403519830427467975881106548857332982176289653276687187205878404829696200340098070359341643618868584053358620173806916065516100304432771530429232450952648050848670827451141327949778861529531500514001167310402899683633971959476850207177865203300108334368027945017639259691476746701550527698961733040132878613461086983595981777552651706042002398526188540900803324240450406219515734450311804229388716803150804000996694785190247945035785534124479868387893172743867486677262252265394861389522571379664576575132105696768489057038532678109680218021579107311424601275311324634863543938772511818863160099866343312026934207616922981965891612860580273177222934511977618127348060713177923730200352081856588707744569323178984381170518551090057203559194741958447033758129785141765637338814744564572200585424810443247915105923605538747642791065646986237310750979374286672010527858061039559914133115739078139913466769620219567621509192095110609921140006955389466796381984179060637140968018604019629157438017201574029807859134060040850292344690683956632151172482564366120951808743703925389007111907281859355045892455682503450960357998122551906264994475912720306907978364486817124257970889809901730285405932356553605943469127815541953889673860408349620082098591605323829025347873789509269736485309046537114929431486642075115955524083103083836610140593813578834402891494976667428075050313975525155793044427535881924330471474989643449367987596361993699271573170876145738593651175905667798540347908449193863990069471819543212566583043282776408258623436077556490145578589140317227233216815431630418277625663450398884652534266013172228379229391272765357988730515185467850867884529944140981742614110732744768425075907123763715908414047513286256270967835379053132528886208293058266833787498371291963826386945528229430083233979543635619719246687254821534195409867568493823807455111118861386446925373502186182251606810345603059888945646434716001655807549712750238616308888183792759150256012078841991568654527534232426909665524370478057215491719228875445237350343088924159659227550693504799568195855369297625090070757148664301629122193220378741419498938739317638191072144025297390678921760674340923177049523704232101357194129936815583438872100700250658952849125013787494329252305404043425467282064376701820774135665882676350107575317400344222695094893147916566386798163649822726977863813023261518805731876210403749392295854251410682074208025424686594085425060733707810005613799589728474166393918527709358292055698005115464724071529423095570178636061106100208157980583240380508507532420705724842085497895888290122003578756422354143608526353338855721914065125331827795549244960717836594571056936287332549439232700728103925653608306420994221440986989539972032186091032713317499605615243239829119730729435391180404681438132916356605092750612845618766014773091397185358363707043978505915626313163218157878946840372452709107556352660913722220422982198213808762441467928984752816307986734663755369291968107031258311409748919076285421088674659739735021233713891891010624343675069028992231325857439689647966651773954090787258696143356325794934651429199036851067105039555679222258083002424069131210946832252122127432258045892586095058460484238387725859343073088880960406945781061292715443477814667847932654272993027350645557581773142985691123982839554273087895674352178071687326627399478533495289692118604023419640719629835971888699930017925688431741687187967585744189978148446225999459642563719463151342610692515538180020804098522155796163439752060489921888743792055332836250190165773280590471602307512452765923286545603776526690369207395387151936415798086297683445942041371851903752949756739372973399104901985996893135489349695878312286860330599290447192352603669144424276490534923496128529690129266568275527738014584758822909226279261781765853276044564923375096284190259318565993571586762140362943928310566219969067642620589596400038720235082984197640996033126039595158506538163771853537700400722661137495821463429160879010228493018364283268020901622015355361172494405392387202828721023747654117546800633150471006199532730887515434655085806106335358714845013718963057365361845851296521016800475549151533264070596321425104781563958491570707214948276555233216923647823085179776250400514467877013502015039226086130809825140515859882767653027095178865663312643543608947600052892766986638501764789679213118532723679458795264181204067962506401230024958333786724733028352249042906393444787461735684805816400582131337885394054546356212266245188535309812127769665112884568819493414980863819966610551336571237504762480330836966072693924490467474183155253830727775919159194123786868802568282563455746522479479621475022930171224626851230781053996105574135343293369179207142998768361014755510260914240625586704492128514141824957263678574575784366498900381938680438294208553755223438633949313978063353565972806883567792415728054867691672746555554087109977857332200160159188279543501703740690912106385350656873646138347277142983639221994237896056482063463336934200900442757928071604657789343847685333475838194674033910034451241714131511402594620692498877436347844805187021344312995693525935848271737553147304187422135985980273753015148169756338064133381005451406035852528446636486696221412339181790905612255619514392443503672394431429783414637443707729159814199943415784271645409106480084873670046039940940166813499967505137032773222083373829029326495317199815347944464262169169752218927765203093973039063101646655902497559637566792892801738241150001876540313410567021280539335896147043396326530976173722715101515969982745990544096931426756953538471062376903264838605309194163535152467568918865254473321308237319445832502441757992757484803839551747796247540625054957458005915314369375178702828883112405197460513991156478318459475472799001806523267732061940444768013231552485553541431590480293633597477113678234965826625297602083109044353841900451570049092265091633956144533460666692618214510502662754653089489639341939227977904073142619181312753884072411872861908593436444453114820799871407697802749416758971664963356441557911411309343068153705217473457718431826027418066422030834059553317534156395589412359558939611030918896294032647764163925789221532657294937093027399963005354555737410069769105224476943518704793387255082003640758153804296506332808580216800741966026982065761390763456990210336123560510807146720208957701218011894772243816884763080594705360479270701121084709717994596286076926493100971045043401852774044443224758137915000259250561805044509874333732117791378296356723231862662593453442700062187095365462752831448252937887694708035642735694335768727994291563755428290922172886766000114561895594963060860364551080875171608767273949921838991918024626724037901609732854834958602562944593569898970027350548133877874622501824193652820353242351419465744414422616462779532649150162990072083859122750387909918953974980541623083790840442100733349309530730649370963974796573577965162633189830451703227849721921940088752785526704968545130581657612401014019530361387177972154414931185711415457826126488598551347171184056811918806501304902740616118095665179160023154716799467953888159507571275085048762254185799910669349514980449702845202644158193532723081802652535946568313978856939261411968763141859404416302915914134594639251454999107001734669803005383863312065728592818749652021363026135939819478605657360624451233648318329730235992312297957581021606588899520513426339927966772790919868807243205334726765352368083844371725087811112757109404670184300633461753928935419037919914631822545424828013080227585433346773397652807482923304390057118560770895926918610339895027596620873059301912222743599674953662177608460618746591205039434573348068361528316910654491761121009154591607940417291445331870163820847905257936904148253174923827020656675515953732354435261523809947508639888340249681093670320219424028951682543724074326341180486374012953850929462413062767418578005695431206208638134221778320057299291511420623996000926184857854690465276252701994367545544401207238889213160110475912084103050158186900569735726777224236201092739930844503253067099563578719447756535674262489446392344309743249159566348807926492600601284607817616502576183258569921456070720702043691058691053346752222897852727956559474505620384329581144291794900703869859350954939189732135200135765453891772220048511201857586414803087938660072349358125295364417689503898278433807095039537003096895778834408443788610632102469705576431550104735188856583908812887716127911590456836390304196125545854112451092532389947976936319027764722255250616240061587374097819763211277558345096839203074048304541979369009501013883910138428801115117410690700765312040042883447792071591510172515422455931349637261670282523785200559530469662680649218209169670436453998377406115162900790669747394642092258417430539342091783873829215328357999592247380146234756673024413866574234162011573961593372623487522219074957339550254810608580442643356588772842392061297417006931696655757856834766304961608417666640987953144118253341648725713328397255246120449922608563835892992516269865907605598400764528025244724188951167610776816990287954498646429366799851841235855837443561906502113695424916084471820395329144036621478886831248213908303479588539543621940009572947957814670422761207458941603489980935617096260358639922124603216348764785118654113566009608532768883174498114577862213235024447797676816304492867967731318797525914057960065872475824009749953158617980146188088485580962717249108216443417196488655240500993188803100824233463253255396018658085104973717602181831451746124176671635866530111196715505211006653062331710592727820877397664724427671064358411419338611466000257567306928634836416387134708421052590259879092553097233684872258928766696052025601343153581512217414793441873692284753053874522500939569048354539583599161949322103532375674906151257332381511465388046862727329678901440529935876062838635297248818994426356736605746630182752143268825074031505344415272020778516548817122187094524310169006452957254811699804165561885458473529876391033010318691734619047912031524574036794416022679715218061957057225923223599130784390808088391859502274678217887169777953961967040447182104638151044122578562225293887791545322605194026210561990591262966202923754238453780158424042868402845326415820576608063601041364958328622598381705370873531950968826191030869476182125258816072952748290564067540442843302029202567314308255843325843887192416202416680408369962113616125225742047588062197759503800139042420721296012433020097802747373741637112744440984319595630273645886633598550298843340809225328538574521729316563296508390084784370495779952971826184262475721362416292515578915458342344313049050002850281060533430108488950472714242783990743435025900424486794461511032959192112726819972758356523766438890006319735975769996103601032715171134407225040507802381863497472704046784533298523520376937540878141025588760382114666724289380908526940648646696019498061327761744674855830305155592844233225633131512005730938987384601866451538358400422780480689082636526021820872509277437106024310266070663715886805606974249923902234758184569130079201679662876646231779339247306580440129708722589084325874845460991165007671499787543864212050961861653615602789634222255031541672906493212935079992941325872875347028074351416337604387272938937240613811227807992136885104739001809482698021064101470411757787022740407693560827560187312995665758941667461975163883076622618836415807267410677787204086361196111736349512755784581121829352951569531643073610228257448768359420804094877284613999275837272906120737810166128725065509646681643757232372990953749178769593084531657356323699144959972427001147967329584753343489271362492369579146753619777115390790260763647944220930996109646962110531108728948053839169703614282171271909307702721096639427112500193234577716049182779478692380651691198630127673121660409455936898648667777759957971856714760860172737163773255535017486024917538138735175007146061526219175135883983010186441945554130240906605424542286563431376169940527126313473089312370706250472468158278982101278675424009899730040152447951411063984731976534183877330714625586488697819906385068422148780753452125693134855013735766256746499569253326197895148989534233467461557467943418109563888719398716640909741101017669502388747571622652780556679074684338627437012653880245441134526890264581644840507108773619856658162258475118848096158161225902469505289812886704908593156117868537213867439267460405346034957559742383604175869250628858048905875308403076071987639968281546669480167832069311948216316614841711142573753648105506420103032030482653013316617231684042122180925275656813201974032051461203016836008678194371941578295216931136474436658202023683397670972411309259185099901715994711884967671128716558755230275293301915648303997776827950145680179994655675799310884218384109194481863833341852489545156448223281453993097719065495181931720493565775572073856271662630904194312932062464047841727640922818368323692500649269629973871566700166378285343122366509237198831998029472135332892498747303479424502419109959589785513888312064701552507953465035920676344449487369351062803478788422168033089078942392382334120837717532170985965852066672511335491192761756966216029189858000216109749271850834119763784573418238676092621599721084506506190228390850329602398739443162444199051179151612882739809804298396569986267632765082476286683342381828104603555805324867274360593491885103675886168225977930653118502591410864044700076068216895049368045946540914396217728280616253234741651879422237387571211547706444614415710236697484445750434522324575044283975084989704578229042857120309558808704128966532147586438277621902169401365601708755049073539363998758446002045864961484371173661344350509877012596527155917283672048780893175734443573739882420410573114236066724226902817175505988281377923427352935486419326310312247935647190915408422896196922881858261300474568415546845086988597253667117588872649068260555708592299709876299281139020824747529191402876764751498548644290257800033454946763850565306960488490746573693364211327654504507178352855154111341568577765220666896626403326893017833495124796605104788892866068976611993283637295782043866840308478602150051391818124244538029088128434078668353685056430632589819285048832704143162578907820029098427373253737181379133058168456885541519683777110513536510022231629394704915960411228082927593129166653411381152566433442681762869255783073978732051484783316894090043008251715058160075281597618321765549434092265791302031250607131462672175233396232931877829717046588198148450214498967167936778865215540103139774433960657510342228302373886523393193395051394621803496830628434549283536754963305893829734501367686976531181713807658792055841037456080170913940445824617128582415791346958858877472287706447915419595674067947985893116752013050464025769016284316143389844204124349636032853256393499896394822311206661939001848329547392142041365654369477039614714640073060047053634829702518279717465839510697846900133710703500536765927992884009235963783737343911765656863541774859054177707191448963394787859711051344728788871930459700606361293808559080337703238440081799147347553472216170136007767628592538021602604533244620497418712311581360322637849970424917479150387193808810708885390320299963454523592441071356863592101032822366888616345156407329711041654934761030360414938938181249923147266446396562989655458909684434595177219409356291707081660552155814293801828104333610442530447872763702545588294012320822509627855069248848509270987582074506804584828501726880676773675804768381134669078256376860193655712777612373841308546139249273723841785750400428624609949194224798161972857222264345302814701662624517576316987595890315624742275393667722084964560559117757207094392928266816082370264603032263816611714565342711774810844371523960876472624590916805011885347144963803227337918759707218915938323850409998720358952576026067312173503614669614931827536446981512010005304095044889940307933701812647415994725441236713048449862572405666709805463333698438221602901257221129627086540140239464627082944723191741651342913964442014398957888978477285974591458317305895867948391623748997036529154418010302529453801332398534748911778266730445369810589965261032164802364454714541773305492988359874578063570862900656407506045836386351335605440068620020891343461170832820068853977682562766328761311386074936754114922487108852322077154434918822370336555935579409421596449326246227836280721540055542702905309148558452794795182835633209178587159104813451412498699590804097726861666671212817097702806655900219658846514288681465566963635636433590752208378632649202275577461761651790458812636755160337482122590227951257685890248799328768946105087352395738085964601753041990635741292951431464695287983934573717784720783176719011149194726718819218845196448183950354229172804609766685952126132367720792297106443752083818759505402384022429499999878717170835635457540197462779795047767490305640425699392654489587948039223822062877573349339809086400523907774042646058543128215449579538262937166895243818211087904206906368489430737191535762991885967275461545558840410284690234683783047359509066571032225191500244251964131748739623739250039818153574884260960559968059196220810869003611440423918756745088677566388389165648571508702808082591891616735745794068891446339954358669937539591842130163776782748573249224338728018628925987698899867225301812020526071599456663038082730408906532869455159228011279231151184731138790465006226012788394497880189066788000240935199692411752995899141708155223992482288711035313503910175021193339493525742651620640295269175217769632694175232073133886940714955441400144914822202544235860079018547585460754101660117075114055672150802173528609340083495811333142458090819872783039244247743740131585423446372975356988091397460871085302191004059375065958588821381885525134157044801251843411992558333569617481585615816784265919407134023233019584836584625909662065203804836450194850611224783055662236376242583290003061081923504667166113532942288746491181274228583038443220158854917208893542752196275914859073581625587340384971478162959140770684771890795028990146962443182908511658640216633608961874799116429332625704766023636229753521958145387410570471073729190518198255240513332792023172107358206885510802644162566621484543286542822053079267653458039777103269239211346513768870583041432193219155041505151943995912390155416911458083514636746488483288339360179751543016279229262225597671186134715760012800292774112280454269162955325909021289554432819564122269460007376700013629491214847000790183129910797226695698900404726497411438528590820828294571548911744661822310133702556350828528681241984377109455112155901981682619641254467484434253058892726546931958154298515397660057425132209914051800738096608999016370136553229942231065908139091209887070799443261655868951380267442560635950809856571536635139680742755552264333142473167837764598426751693073381788076310350467418608989153126199102561064640565007496762620311553171397680934655970310608256112034185557858435625911229625680016842944474400414227939691385585085639052945019792627397206653136537763988178510049337966725090828832386070501699701645289868685706672763162515840688160505173682694416919341520266576035744754238447390025799174188562315986620087338498779469598663016264867436551791628935826127100413424319579979813569677853534448561558531407835636447645196110284098592546750469896708124502406825472845884034559817049361969185249497665661371312499665251172613296923752782284369336191059069531729807541538036844140191434197735697300329425355616549493466744776758041926209411888805927805199597909451926619392957899610372322053863708504406421372820994646545791264985593732863932226940865700020673294597763587498298602128980775089308710574542341328120495376479434763115926815019107498436512763563820368725702523939163284819539265187374421818098940968532585304644649003440346464730951229811162697392649821948340398523740401383997397500737574304310583902668737833391121466277514395325226277433373906040540411056103301337786683923003110486593105703690817412050693616826393681861369979496402761723616752620340256938381756147847488495409939157152490757259907087236621820236842778006048229613019233227311670764921113089945383108214417388636228676757586769202068832582477080121055496428374763877186088870553275767647171723180671765717027273616461303494309325212790579085590889023739116325258923665295427047616661121536691249239737288382485018392173215646834773539273993009999582655389238295353751601196012667165270322211559547752775967405828647566258790217498171046026573009870642282031449503400089906298160804937586655479310430572325421737806327567498301618970516398615292487780592725627289380647604566869020534808939158094295326632306185516061377535870283038005002747132489324844233488594298281616101667351724651791213111197091059618365990022614225271145535114985915674066027089167603222101198304152067086786859790685857011554024097352158696909335291583233858404746590487969039635931125989991104100348512849624194372192255669514797243735259598251778337701192973043364421097119291892823734711050693179299974289846828855065203226852780416131951431179943064818385376943702203067953144267717239830982660938785225689667575477773114821123199173294327701725359613861282224251677510963765076876927323765317559284779096119662963653143327715519268403889367742160973937357902342949042976545577205829922515797739043181809680519316331591511064396816230212129742666372514292354707159342062160362273789897932251655961097455689902379889997904640674659435731809917529049834720191347497537568252500734139022630417582089958235652310157217032807781924892883194178122565549077539473639369461550350320898269158451531343275526309323572018252723491282885319818921192690162866729058469570477096309799196418198727101452337272582642703198108787095413006199506378365166417810761545298453661604194855291726813727822255115216267657232275996517812935262808185287693279736297128041091255540282132316270394617235239081846808651714701760494504269779679213635740228497338375345839535139877645336161192789933526897019354708980559223628946730089357228186940941500963503032331700107787109520363673255534939048500178321850510269719149620665032173708577982134048574472614423952777336019688594684643648833142758107073443812129519319532478848956979431505968072831497142327996369815284811144098259398190381137889392072963025545673768174569144384300146355599487667317728579996778689870129344656034911742796919569107247375887594124128630346313627580071537168859348351048943087593863513920877202589073860299369294175962521681929961535101352568786588113913386612545812390825872136018563189980281390082029052059498226611207855074028402649057696766849482974501882604585636450419039979826771333199671398963664830275679308625421933864137271402624647331476901049325328416750181817521593030720440040357764028082035448796085178115791369075591371543920657142461582742530983418761338438882574786612829270439400867149531175340074034356657309965566662118827859518059799980323368225513384973296815790452520521051977754896345317225113555823149872801893360398417815936949571834440588797086782483670080388650790116023613511506263126313285047116390465585188090180531045903736051698675225741621533160541877172949496017886366260535344931549288275074721318304184989658938935692622688355180044210693391957700343519694354242363228626265743313270277610718774752392275365197511474572336775334043522438416409097285919849746400074100304762577827674276443979434833641578137728544972670562576114532072426378438955237004001276351745080428250034497335320458955177248720487312871266011459675270889716359492168691846120838222392774320330771876762420311615125911021833558554981642579026792144414493699327574231319361586320379896280696468568906186289613149336757851273554722152985501024158282933305010389388560610405745827408240880426642838887790668942875613548308105253327866833035041744895106939544521360919301711072894666062058029325372018626781730310195600770904720681199478359598452350353673923030824135798097170680785121244806466093636321952403020522165426120905925993001779960361776074258343167682132821713101311241257397377519663706892052175437823825211797235095143964734253950836564010152585403883447942284062337851478399598244875327488742559127873699665693426618903225674056619038764360357045668527749009973890041039451443142930441520380240301302596248587072545473423073758120356894346953291622341896323001381604467972890693476469608892774267057248896365348391555505249229486112086198531033638514249627719028373324544749958677480164959624071275730122064746298422795518888247470140444521305262031401234776495956923723603165655628893100596144645642567353085275755579296143301882714520039457994584610147295133036198055465650792521217897322575885926981102635935909451680391832199846341875673647338122869323374190693151958805497825295129447076195376247389797647126203278170815490212172523338830497854395191103065674047803964056314927990204785745178770034727266503386172615791712372007185125040956136657260299341850950446951562698478636408081050168664142875436456029956985698801735055990583638984631060400947658748300163505500297693049434679327935086755418971783808220956135366593466675072286996391669483463811032236535542562045011310813679725181054354695375240743168688519537843845237065419944234091084730616414264265204951793510222521152034085574011225135966997187741858066820279699860246271175147821528837451500262588847777449214352219632840291409621454500717676486221087223498108918534289243385624495687683961770484589275309744844055143732470762698621316185562624079617223437552828412588176695404476830980167508871409838129599469204494803597941876388403486800879952674995018788597031000866254197717460727255335762521930166590182068927887054350595747278919506501069397858792970902443402231902970041536907692581978457652577797473714759118844839037360152500247605306023476534711351344336708789348088131164441838616161194149146388593919504967699027537176742188572363705868485026726212117920413210342185889115483074233031835460561774901414528180930232345156212509798449902822921884719173265237225482245120151593691290085850268267728243318732235621327959643942706955539521306617300262559972267641342104655475559620143915773829708704796323466852955382947816681781782803100496788349535435226280958273449931038932195105028442586489854500622450266949355011651366814499827197714802361121040714708494295075888643331052746455056955812188695706995963864034765031405039716509541841225761900330611529397401674502317154141987269964506238062599617845422658545454167461683937694618846261203688904246710259590660316767165819916618453874529255419305335361785582223035312991969428063469316181510117779552793420365650509693475613996629560664081845640282783699651780505823573036056149457423574940095156663096008154278332574571170528347896078177149044052148097535100883442558400578104944784929399961034916101733390404413289049839083958784831019665115837675402301877473587642481464617822222824676094677494421445490370398030631022295305509634540534440248849211754626183496547687268285075936743251196677544510281733064888812678362321177925265150482949555220165905817999339311368985726775952398242501916142075199393174539922254808401914718050727665540546702138959566754739163164454342799893083855926564416093839991068531041641925501374293685815506226694169113057103026125859779726696980473398054097443917428492744081158921043719064645056531101656359327539667734325883021357805223029154613163837980841230016577842129511966761554067660947328175401508000455136060079404064438114056442590515187592768480251343943431601719045105779904363062318366584024343599779456214632319964009421280192771476781167824384001790504416328599287074298266134782017099838716046414352210776590134536830545471350434484572642085635269921141307859554578189023448000553202057129862785402735798463717570378365305910009694545644462568397424095580804902773984072742760403046640097043567233265264468654843401038562878789963791511420884157091901561566224472806796381839622873488822471787904958395455681775433186507271205703223572863491449237489968827733436666973834450061159488937157055106654762182820033643905417815219190275950902814201124907551246301592809610193534758130082528227355495946738934542224799276671381548700183668205191432740129605308784743941904221506464041328595390205511297625489461234744592071770972462604469596305630287809655871544044243350479386089326090676789687997690464677539158309408784798851946582235554531028545815475738282857898513630982676852358072871326324573957814202547569471770891410270823836245484486453237257279909902007864371486974038392213859504717840677227266447969352468198849738349647269136232193470007515440711742197750071650248204598526455002632038526715316838339657926027163863410639515561557973026236398464964563248381986828410967854569602696520750614752839052513635652736179146349968225369334805531097717872517879510380703854023580911710408619734841727010022471313224520708050803661876450455711620738503825750582849652024213558609933221880680228389924348110043523226746749098995115779751659435063388071733069196439033670422898096931696130633711918289352092470024033155806218325135019778639445973807651166539029665715849428624981486006110090118348837702654688641875364765336330229891040967589615378381391879164748456696832459155393265287302040713733930456147216416458086796922483874492228191810902727938581201587435545663945314747194985746763038034025466612974991461764418400597806086044476137618992257515680883923268785771496075191222798628983407722872714917942128443803010027761198533443132394987749822405162277478856835533057549251669275271990211332881835410273854800138420294708888906030622214302317165611973383278138725365178130111756428554541732884291925077074100343710371037720970332024671323575623685639377063455143509899545328336785868210488462130024584341135218737119862741625692776642468422515804363076231014123337683277356742880212626839363712976561041197887844414172488260975900487372107231940299457381935518833847730975115818694956821144579833197023510215305233671160711552869709046624554228406816072651062771874716037015473950469093201624938722457358404017323780363442746375117665067316980961254985678811538528909538088093970673774065303876345882523291925383495666487861935560257350279066579749795617252205898111744044071163267728213923800544477568697667335615505126392714882442409174700866232156385281660398112284099392548674316379985436494910496363994835259805616743235645634487698691319440105993823785805533111634136358570721550729105146851619252588467590625957076405779033597181903125729861476686764421120046843912708678593849615590882505577201384370677133487386748717197785035019676147001199589571876084927848076100973745271645782108750071426462602309205614306338413582804099612514119133576055498006403271621172203270245368306340030807965151113640403915255953416408387124357956394429754773168218858335127684252708548186244679821829771653280056010879334673271306177435195054252883810398134976903416544598569336370866146756448639576497821468807221727474226161091459444855080399158069776580974247158767483077687053191978748613168335585444241468535379930888063924784367144866788396831530031410346363273133773316953142060076356249833323514173964360832332033852990640631823721952500347293913532858192970170705542543414282392870795041956715900877487938887488339392626594121686061988488404667065634478639170133900084330383739531504185633922787153601035527841066417603820259890545302820058604150769715924935581884233333780005848512579674218717317603448004994848465961416544355497014091627810629737142333829796165055220993603566060014070709154979051883855488576349293031363041521705510923302987371594239131908052818849070970560595627579843727928492117131619801380347115004839887608519485799427980265625108165084679970667063055338285345125317898048260116531441953315908660223327792986372088474097419734152030836857865735181520367817042618975834779006761659969363075179825769213372017574149042441978617309568173381694114948136418355854542358303026734508411932931756426815086400997995002224952411867362714004908684904934371937779194337333267624748354106491967289256486806159707214173703508511111479007844216405546016781863505778846921513605116479747729969245971910864457530139219389150647619069434656141969152875721214032504854628194465634447178477961908903731657311489916593450068648256387711969858626126911937896431800027787759067779209483746602627077290526609741932192760641155312029202129910506272020328560845786127861303698238724319145928341715992942400676783015210790914709356534369901774989529840691126338066795170450467038483964016666160135970209807556840588312114554329491579181911092479007007763007605797012189373009647028891676675336291865902186232961959623060663622155866955838476196184450506301525105881276484839189189339191163854672376458045441087801066116983353887722786455946917279483209876289574466117806184127317381599993283568621528786829205581014293521933204854284444387309241955876497094697244301455292661913592331674703205690091810245326636603324628736140854417849498173970585788166811321948000591467858814291554734397282646224203151005484845965503444058319989712882028251749969654963563740653966421311031044131255525631711858971562984655772069182243736966116968494369159902417005826014488110401285067575917606329177781679590985779842081381242080213719259323230355691199819198352691905623287712384470165432026105798619065502259691707850014813613429172026845356785174682593288211590669166298649346202524696228673791575809978881613208298866012920916255585238684962950812453147575527652404624933135809114931422792255894541976745300712714863268318785268833726246559691478287923926851598939305579476792778783745024718925225134841131069244660693480413328346415119411368667572093929971161783856882953148659036312407620460377261041542921752919018822339470672543428437244557972894846687066255391795845485128200185689826783895269566530564871418981138522430501540838245958836919310926305315770794948990848818448007230779889775488993388055079340258725695755632237556410933814957287541346262513640659872955080312914892480983479689397557456580497630533350029726183607008486599019980668966992572456725152000962305018969998291273231937418908700381975757914918957449503961915961179285009014744415878365811977695919996620741468426106626253026475387119674380024505803591796932259411785507791066875266171532933479776169132796231912003215142650027544397577709649300454443745681513552848963081567601722179283344183837941637095465229066450100230927411184975995405553383754984318781380917316506730205790950319767770614596935311387843103478632736388307289545097958668396079400565544255182090026357291578362183526084661182555471988430280793672786253999258894402205495389820867569814666228696598419192385716413242962767159715089442502392491371925037839771745822367460231124976932500951878750570163955437674484105034587070805256467811535706494002890481353958076723742554481868432140833550356855670413864139377048050392729323199907032355175065148675423005241189052454642400435524196197812471465959476052836282189633650576419283500627080545766769749075195731279246637337307051154219981840356807860426691767308938508939880982609415385424914380743356094601238807496871351583127992561411673924319207339302404144744147190990571461936351336256579124334551339020042028631901762444784767346067089086735789031543560684426580744210315406664287297876233806952059412805627061101582328523880406895281898573249462964389637283324913557376520202181081227687132005896780966953989103082623968203976081463983768682504258875697143937257382261227117079562372384882365944050630830564030230951876222831869658773585571239369239878520352095713290220801104757402714890477198113096333031984027309465575010624750670491573356379453891478358825887250138672611308297149539057519214810712493515483890298533544055808275426528793545260107890730711572441506905096722615166228678714250348445161087866079805824495730254078651640619738654124995554038007114285252950891189975062847105059267200183322002954903711662667062515159522845562493872250656359388895008483486429738083800313374730668185442525677026293724349430148755680054786157334040646200811214768328883111582813708390018887618917096718205746264517666309661281113657295711426156319487166726779326506303096024143701375836168055731750619376031934356063771033737402822854503939645037791024081807435037662602162809638506365994856938701188199328115331763556468356941631053802051102456129547347465561179923398476645982427486194792984673966120968286599542563066904089236619999698388711991494810318469858997063853425006404442446895110587312796212647404847814438744439789772927070404164212300194146359086568504734516420041863290977052782202525119360863004118666978738720532259140340524927269495103036642873129203712810648855512341768262653345399975345585264115629087235015929064497584959428621777999196779060631999682601336141224381470769183882166527217810275323359220048874852140566664644739714987071984905071751797592110229265629974478424985677941675346383215944476351144620217938744273663375846692204752591727548605232477767651918457642272257074280136454722223311491964117291263562592334311064536523915548979842978668848102155727921326417390691758764728856780586191584706422170274682563102012877258266278896408966747088995072756165349478067822195300848813002058152305349533712380379180855489463499192014217537449390324881507142094621918167071701423344466850241797013976534211274820687608001138598703991562133125501829902263073127382029803655249166010881648776160102070938689202205168660689878470146466255630769463793987537423418722142792503705033226124918865299095495873315595864669200806924678981857302059548594220906902589420362985971680358920015809439000680389586617045339239454245586695597111785235355238528847562812553578443899567040051259651673039921605865761315952922277626616128075303413303746002695455530266011365096916015918668621164955996412567096508929893629976647384598670886755526090959232193137314406759121127638911321495477715892281652899778517059171987048524647655497410382288733739194952476109391865816831743715751410982965699396482621185955528339734991603928662570929605345738184698781580621454610460500821023112242854935534092154208244896959269839789047107477131059719280890167467469910706415551164721000630605395948853570731340809857994301057604892262509581625401524333977933660921668826688848288136469084714934070564639119788969288234465022321882443377117928743863793368121169642323001574653708598125599836484468268398702176990401296101145496250598270390081652455574938074433073941023098428896998145342376545478088336312888254889036624857010807012956730167159948058800222380216056978195886145646174132021077057219921947393716719126977246477400987347750335389643092258347987915814506796391432020513935330811213540681274705042907571165869084825335124043178357130642995265559892288013283388651984976975533322327086973173582379564323674819716886102822267227755785367301699089542766382100668090330986992930806127729083460252669420468295335234770768661317213833559579544946303500106023141750846602389277185803399522429496753060734582697395047565823916773034780771865476095395633409839154504343487038251640400309056959307139713945146508998002143454000897302608824897921392988159977402993060303092370397794585110471485645572164524876955132960789251336101650172021904741090036152866280340137562208138051796711368065358597926311900157486609075457422519592784061270900618253733300135178022040362103716166483820282010810660634904352672880265221835827181540478755919733731006595706606121859207641377436888088181054160932553224990134375742448644254494149715491846376857101407860512353123392486959598519765199671063488697279606192669602087201650396571065950381472025344946309320226268145915667162313146144961133971172911149716957215883376729232055177978893421548738329851560889841384784324472990469759478960245896048785996424182873417805864534128899361823009690769252154282124873069714103974202571714714206412910787145292673977705262951544814135830571276020311882388883998320219969683480086911857425622865732609284257910175250545032559573958438406067179648024758189525254493615955186013207936478548856334774754948490848095016520388890181151112724987164911602701977218982141342656007429432299281824216313297384188862910959608900848911846531441745235673577434834929084425944288388187880660600971067565379905256726468834657550895047675036420963561639892408796819853518241336001641277225990956098649143061301892280777891907699634482861670502575645133884443797545502191104439241721806042084179929503563551981354541393604990340962467838943370175197471591010788525988729771065111913930978026253059960004972270655908343449802604056730748391672441873235214123192573421100840444629770295958746428195301333874603378304167090530007868879480123056973407659200560461916069552725218049873571913376169787086356504618120710254342613274455039907142525373347332068312264600131583237830514865948238900721208287940588578608095500853046751554072685001773798575069908374451540399149318969625797389079908742492073342120334511674082803542079776999865836601601129105487911034705196719285994413415744553604561309813675938486076664267625956035135797046962925390512290269636880029014950329100001288983215249743214665739155917805461454618254577626156418763602223503450667893317594783556125906278419641366402850449927617508474523729618840784177178570957986529119733883187121830542277876344635215886651422818668694540051961683123875335449614344372348856354403803253882268077500219849558297652151825026866688936556324930414611761479767079652049296143008269182638901963025356244959796286318220569532764042013422707422418315510691238349495142008661863291813078566153514101848930645884040142099482245905406085447233684673950040702655974007837299312262487274891135187642513780446266646080744613661488908719865626046990257864868099903120388797898119972242004357742544036432937346889379143506979281868832129005548716037987943719308123530169980494090816174371039323381652526932898749165460930101963300381201311986391081435325197071783332240258173397406358491479311755926499783903707136981093559821925815663333718839530989114095360952754241548233406171209552106983977667812578988293898136908145986901377450733115199846383284876740360665268527450880601381835042655683657603979749224221287685291096082470902681054396772015978881025738884924233738567981689179403420799998615372885130450219889379950689353354216821717710108532882292345052834236591801884001083581553280495008126282099629284279466869497912734728992220677261223603713137006024265261498246888604470353801390131444875165757845387979962292164142321686488833726701411829142009802142105568700393394622595643445960709383070456634027862986497953373816487219605281453486835988985749453801698220235081146020780969408126224939759955566288859586710941341141248753417004217075638433404280344342968695804453379058654094031787775479187812395718844985872872513214915386020198010137933366213431886062834438416501167783897665903932520170965047202216059813080655424329825749874923734873357642810361768240335927125409533515609331279021323527327504359426770784050463912097954872477431363370057248750495703162735505115619244842057188266907420941131063865949117251312767965957029003948973486194870759586953387404633929454177182743118772674863431997874146289979828021580696742898530770191975420208636122959599125865524979835492287375756916451380718093346245140734918124882213960574964198555733216889620172089668694587581849831882514251269566056008996932490899024796283783584496888005715201429894777820886046701987635334003405924897631394630931378888910686794398186993511712896754105823990067005057568450652362768404977953365390303078622975056556737279681125010714871278214712617915940321055471910471477653971395560117171362494146938216695653156214805653527102761559172661295678077586541324163598283537326652542368132581092018537223554461136256600392240188757104452288172386626319343646305461293454182232229368839470974105166761430271742097928970054200799950611725146423187873652806048465637651153953099141995940121115082716176465201107381608589576256922356725682291417040530209195210121922364951182857032717214049637970660061628661714921094095260181357568649981737361766086820093387730335548054867886371419394376186242316616239131429826029450056485362207567005068157198994821767352496085480660908582338788063642984142968890161996146958935310889617675926847484513717876635327515829850091480704437969305335665636604171510524643436295026202425290573980925023552229318863017942130875107967746365206815795889444367407181451039751182573697457875323564110522107232931708519073135798686286913768808243607996775580390621191331892745618050627962663118332824952465360896429499047986360381217023211492399871008179119964100924683228027750436930090184294421199204678644577183277979433641454025644049856517210468190125699191267556958017087929913418377336202878262308200619201442525548648422891591404220282649351058524144220118915081142771142048130705157814284738218519100342406358693895233707074464160147631928105009040392540302375871364681326903605684797847079545202160913249592631848647021088396537757385932814780652465023110661183936766489124816709890257600040612605353541113001086298399768321783290959506751871806747587692181764410755809355782918260806403032832379113976814577825582209107143040830768139527781277444027167766771987841647849183495714323534446126900335586619619782119429049318480948155401671901952916558458578181449571345569405116628087588188321877146442262952935924867767828319353935751961265592006558322343776226582809733246332724577512900402635099250263228895940068442354281295261924725686980052568434903417277531255649834792898796447549983740277005553606274676092898257496271581351879523531016456918060210920096742816269980361304998199585816758337394163686771492959843695866791562369378768239120167351242271487659633671891156098243132666062700792934205932998437520999200738344432788014199636618787253967832642602632980283852587082454635726621005353536461545280655113048013580201410792922237561362930598853060423436143874949850241993238245643478644148015734086487664497915206122744888264474798586980010417384955231211169307151205735992344955854864471713840197220920418866576558780274100952519326097749829419559746511762430197462719102644805370677167933676936043813811028667523586468460471608949839146176204011522640950181971320989358352493558868361292998176229935458874242865077056929583165890790830428176797061102771602801759401703090032540585543008299914297262894991401456467664618555819233289651432974996614924916897764508394025973202610907776785696201362863025394674903574428211083985952528544513118538293889974266725555687721209045429591499676683890935941129982724300404401300212050474276440990614844705580112852723312898341421183182718208073141172301615570361601367585472832843843092357526628908625247175955671782554203613269298986444406864470320925402118555122324377493861001731287315744090529630826814281082130518761109920001083008946979378811096452552506320813411357860043169986634922069953857721354259408834288860399607609304568654903381642266846366908704087400298333678746920588165961065144009368020941832346684531509292477858255847187097104411466253610752233563318748598753987846724260211510378733184835234751353764131918606547522750724414293797016590605493791436755613453235598147106575358408689055861506226218121981887363097128592595870260134140609796570784874779989490498734409978120112634764918583024352250654781474796513070905060950491149442683781130489078183520155392701506691873313274963850181209117189208556577597206163184203490553542807420593879803429681861082125204775299282062750581250613780641737442518553884680365288572168151804857745502286517302845942601085939125075788478402452325576811966081374907866991345091230084902532256529181862134686522114112614087550833435661993064831099918622213005520955137602861978483775535934945103589330473237907646437500086623208047770685066715067080846606836616656982378223732573564867692281821193857120360245616796680142767648238620596331703130278266820302460305508096740238560186677382144717042247436910595656385256082491997013614101095546607397135961217613041585975669186722995668462768587240486134068982723342113802303830836209184705948018265794861891955738128455971069827209030006018737288860875359252253717405764832390157468758673043088080689561489351193542697150487493871290796312772653122751911327416180971066672675224492541149597492146711353559907628267453195269033731971057187010094559462110898527673493218321239671926251636343171526986662784658542363367035014043638647650058015061576694606796536991535011833894549270992263127416691007026319879942704146111622966005160407050501314020957948551244698118493898721259500989048415878392375698685446278858887080185102235615058596579917732043541224880976534471074627624852136787055393321986452986699935251966290096239050676234761648922473176462022574010585501888065285465570106196935780909138201334593209518006385841140970942523968928745825716989150775746059033307853921525223958301547044037682056721131655791841228910114230148147397149175679826181058947040994570166195230275213381210665322261759056705408707495976599660100750899748043336775928561639351016845421326917403584137306916984496143937068418235176776480380373701800366032406520240631810640101935794088768443845709594695625534966233994479807125311763113774409956242745795438796979446138378535636242475116691491123372905472062586319126044354676433095051794317560394784838730178267254201793208363474567556190520527485141630452353050691667583056937587476455156334042644292113980734665470843833162602209430204707375667920471011201671152331453928660397496874768458120849111038880359467749313030384248055079724919282944166428143461545620494718217907617582164930545234864534038916876124196633270759301255008521534602861498445081837762150084576714899184305927910437606274967683346439227996174228118628226866999967774907483114484014313068432272425400524749642806366104306412307551829868663725433836673637408730276857222279554027643572845370730913296977012793549817800125418874254563098175906713858112848060811492443430032572158006173937985364909545401715801939249338862879815490039076045141041561682014869287423673749664009297785368201676318289855643240930456614991411473687173762283180511553188124725727738064446627615678096014013847240684696535611384896092310450208307563274927736293590861321041684301862763105896509195488627623051769803642215856096083317269858432416552406990944315881278748766141394270181274971513050993027022875712525803557731032594245043342077541431704537613115097957746827776873403806307086952054309561258813101039599776081027793718417874161011463362559993287703588215604014444138849754754380943239899014303317737576426057200879728317972815599534459949611893204817106496272309995524233056081788374172427634607551977865975126436874571655541953633820730376853563896967435319411461852695847746861823254056924617409583421667549154017547947816449886708793515623265493223707258779703075744114223254551349403838301284173226203245263645820608923136635113980021471548648347134590304352304946284004425178550240670027624420967466939924199502236128941297996564422733985539911016879128299713257906010341753464946084370950692355531234059292940217886242480609485135850419958530630052991429355209424833064315279433929370436529408980783666107662609930359890705996103696466330313894629643221300101731942188802825022092833274908454620718273604679574706176540836599847157984978516533706799603754809342570284301195519023950044625959234151366899153323740044721372542705715623877319973557362048121187182464773093117337002300650182195257611864894618526111066607202318858317441554654554734522786164373684759360763112528598508078346119551892787695280513133996121177248328963587314735122855035907529675173066782095654408179533001524022670689519721920490709089416267549467300126516077710938849153214242243141213290594049190479655520809412605166611659768766624866019046848469175062785309672247954654517403053844468964178743435287187194350764561494794062358167474281821925507845991683746675022391157822809708452985072683834119156649271264152841570185456152589213695755070723734570835843767480898944940019640872404135215820689303465859913546626850500233896340189793005373869958483320439664856676545338428742932739214571172970259491343496235334514222016549192646501004480146801444723803801912648591120000859078131261423721348849492598722728478536591080346122477444721086996819181109661635772956243363338682481646927743532482948066126946968117328832135783583481551791967419311866713481652077481786300476889026400076389921518530854860375305008594067195196487871417337289569876587765073250441385927381443471821575858219432470392042061252007928973750320273650752648335427384330658997765946897554733178718422025261017533175862254082866754257324086055304343164110094993106178269409660727383862656808396615831875154353255679137959712886993482619546514095026360718989298514648477696225444703215865226721745364806540095186296555066353647370080418195943419610011247402134607695546010443469442027282617708313450430567256297312047545881987680940664935529392534601319930822642591659187886437210876456889940827609783107636539893993973327022373638010306996368794626583824974903084387824418278392506407874986511177312507025166418478806553409929274383112702903463010487270051286742978944594884125825679428737582844893838941242879727986025407293621572534176757996327311977152406202926729027224434090485163004831690692476398540868646563177498590753742021316815520182464273591114822348409266315529176082344293948712410122591038173288632910110248343641512720867399656026960101024702694139613588261799080755383051484232184932484645362633174458786922328172735933671004673061267059655477499926529669810230676096440082867800496089563979058239845624253341355384252654270512644494782188779474765631377163442915561301652429991301019952168516308071664657959256732862763873506522594405952711055983900308079610221526650602563515631300077878246601342314606706610049541933174552779288794902870437341219283528571221101829815039896229599533714388988107145688073288067888108997192147648382931034709190602583653180909356606654016754642473528033788632971917958166177522337545617094626046838341640658761537799638741987220459084089583271573318062327075049952180166466570342689875183181897588124003931628977784859588931950101582628863849128930742701490046659738742688097889594466673546641777971092096004078399834042340240806995291085662690012662067707385415396354719173742698022997668087643023016199540994941459839790796516470357470551293936808099337465116496040488875504245436605979069126821028065612158047202503161284295767882124803218471694521084527517806454968243567675077449193923841956196212543516788312997673258079886090035490158883691552065172195327718013342468455845212068674906611889353780215288854642182326086386870010358681899604848762267934037850891973863433952427666533329980783911886093990882050781897360735894174395506708851805911781881545055617506189225340480558231644137231024844895709905950333216493454334135722089907180096175426957429842265556353189548303572597935976794033504943927313697108536078634400544612170759303128393222892641080399375355510471886846220652923383714816087130779224005670724453408690395834622389152216810034809827846966904445807983475310911623233270708887215994072582346813323973539003467968459564114918436116812833128351315502741630365583897746717242579720339935275641985965214863190403535115377342652694540631837811031546708085549180862835587775555831197000484638203963791987072102072001222866210635487593719777020510194675433119825580473032723511284881058348349401261316188281943212961870655282895463151990098690461474650370913374849100928002691404326494604042533446328272629049373353895603864905310542182700129699160975301640747245994887351406129636119960513498817947252475647905478830595287742251841270454791536751376102867072154912682650666931291239905505764146559495378137842632641741392779954992732753946059237023490030271901900612338824877382253353531543013568758505932972859157513618609422416568324705766397885649415344834721255740886222302048304257081024381025828924324683523026069342612672576818884566749081162916715315485662990753362437147711309460660073394175304814526346374414824301627927457625081644963018677661004434709928560586915886745822878125986789604242625289579524908816265608675657358975953430913399255222531832537073318708983425823596417104609117086821779940978987666037975668126424780927292897742887778809154687546342349955557036294097580456357357213206833216278557729102121520816586218912087983879226839713395353706690643638620033953984168826377242669673520077831942408173472895657140326962498547844163250893071055246608126258192542084084514536966090083219648462151748463094459371565808428686300085001356701870770346760056542565345125398429828713643750761976457923443866897600281597638152520495996533656509043254987593724430098464276048957208406432274616878407922298164396476708132475852858006981956755854315545757521864847943924630774337222681129152113886759516217715209083518392349646229159660257891550010238431075188513296399378100514665539889783682035235043004411187840725418496177678635282866337027876274741669324399894205081889432755028574997836356967831397463488690244265811275861839170097190450674586383815469813985135599903268582224184560065723589431647290322873460689151186272032882374374149306243077113026484686651793526290325823433294820245397515309489938077899462933258794507882314789855223340303275336008862970075626250930232240761647869699620669388379630287147591747721934136792934514760448264069859852775658955941943902180902267495488302066126529555059775612851645323159487907310920533298737421270025634945244673526139677654030692688132704343448055212058970341239561866636721479155891001656947383733218504093183091065382102754535327318946014190634521515802610512521007792310919939479023874256511309703458597229213964415441053244701585794319575423149520968423046364085739916091615899547039203801298262255798767246854124884319202478008867919831881165098037675389603240234098987476915886387043449793576130341503473466454729903168885348336901599613305768671784047174660577691838249594674299317573492960591349935904452137780600960611122532357910131330899128055122479094915246376530973931106668990588664593002568346530920521563652666888713708549092919808952335325499566733396644393577066277708178228590682488677876432841993970569774844725692237197221864808205736961879985413602093254633808750472783487459117139275597409215446530875857350220588352904281394769492032844926051951901238975606204272122114589205874248268787372779533550410616538178247084657234792450052001998687322891127862364298626620848988994174853703614430376880051882005710139491432783793787445530214545236368669814798450009161944009310632918242747776805411009861243152608102475244300404496456613662566921280739740926847347121214688801342361659801020799501449883250370224541793101926342400554281953629020500359375417008230652957219760297712018989181415408139680438483114841261148646688531299587359154088722937069588453626574617967477991754864455416955000971312369129711514855566922187355587494543127262858746434489802509988801159259826495047730668156300357651176720279189014772311974704317526825872674251476611693168435134226549655164685114775655444624575051628909218640082058107298806587739966794567025398690327641732113103519052620451648109097946862624996282610787365136213482997048890958744738598756247713890766005185755420101960649456456046513876983202500283970852188321195519420198123592648131775427311844648479849748233291151401833028754577550554868114024888956276802631419747521755713797012533069972304883056436129938670615589412790563022484388237904378666593825237892088402317051991427513559346367224791355132121016265744823384901064376888530922022765950467478678641480068804493665677943194706609388324210080878733809709120751483169769749456758599403310893284722851728684300122780365509439692056813899890502008239725867508417513581061051507693515829810215203988462924558367879299845070019662390811160079203543502898952868456647559381926543943891478811823310304850878690766959294712539796391673121980877013745459887584319810605545213056430082315593251951231880740546585139476929397009454532643221345903121506790895415018373112703827199229521882375121144786562700548337738209415594826167463163882635131504281117025972053809935393932414793797289774706332160791677227736610127328154054250067738516301501723032627214510375905905991897877292401076550713989100351186292197090333108569688309445572183555126172688474060563222119838197225639510498115771737182515793483022365510568220207004145808278097939244718321352275239020880011691882175640569566927800575968551612902537289761779539129528947855577557941460936743176205880041584517403971696516565218255657453702834552168879204947689074405187840287526313071559432915161293699645305415695312388982680310004699488505888354284641755343203861789186191241919878800356461170225862220670305646035202737053626289108813217477074169968585622564654307947785406454256996739982311846952779875945663640465351848452080757477430643558312027922867439585419793936218933046514649791947368569576782961376405815757736492118231880891643781131956089057609227134816563297189264026790165530856533616045171665366595905337278257253056731689387366741784745120067586883101480548004882851191945300501385606266983573072938026964790372532678271859089066286555605427983274351414925022751785936983517765923095783841825649296462159075901755260361444033620969567365556670024775324031572743029679741999275180637698561058874389115970085905882028629305594137567494822354693968000593824923229155809831462708628838125029068459383127549104929066503915691092506732653572307681798849906961735265557339275045489829186429734125964089581881689195731771657932950704798078870357184860932165687302977579878669105576182412105190417766396746968905701833786214379662062636415772954503161981793319385692486678616548828186949862528290875367564340850095296645171431596914371368526129122528699268814738937581209509644326641973102966831605105359076141015685808531846532098353901408229097165624648958164203279806186598232160026358842933266635726705137992052581575499988277380280937522481561627322396049995369397833877745432337385445604317826315044021394417150393259661837060643456616510299443889634853800014092437336689898499203319141309597927450581215194258637719366856062892634348149801852584870519532112229364684492723869938544932021182109285943583614481004466569879320008393913388735377605669536302373923781871820725480889497164735973441956023624514907154846497121246635642751422404399528154584314553722878237107796989221860957071647923650490482440487143894363650259715715124349546737774313033304463535584170722307771555789279899480200655733000992105394517320063128978009191516435267826877138144681779107261835232021950877353136419931142741565516314905346446603766037522843394059205775559700406442303732222569814238166342768376107672536257379774804984886183199315492407822361145558674417992694387182872114954357138504017937960226752033305069474161886783898171373462015798832664042775062762980759143681900979038496895876063252804102793935841811546708908966090167122378537760975683817712714186027308368466933711281616660642276224818192054590418929964602168404169915578676513189650288000288119386443192091559950397629369046787483748954349578970505174429525024759404501324269477119081833532507919554227332385236916502934357079555113371277190421175835783979640649902544853754778162084785775984509117025215724408286628017549442642381352055028155173376060776202760562370750560343813564008531474420210964782487530904098200397078534886408346160676536210313923299538537501346679926600107129680340559394305281757598997860365298677406395719956207447341090542597666864848579333996361546323272394830507504855343442919839480575841405413888540524408520211327631583187940538365509603340695470260975837557410722978280812515292616972813188766230572097013865743876385100085948391948139419200357308045041984763652306064251882350668793509922555403283593792112087677985953006301732771837265393593114086988769907425164805958293546916811939437759987185234064590569020148790609402810475852366654119245087377268114843517268003608829861026789189820726099461876957004972688899585335069068347558700712185744128225416010296449301912432553960459694484203174363784159702128510870155634112280912284915548006042311286555036355717398792805682085961978660039837190662051562399868975861103038500887708078460521283969839962779705696264191984809727554320232983420477079334625216049763573310187312356486453624142599162514584213261305666097933654146414079633407630420320148777248449490471648559704282531961936969648035856937989385526401917278286012756057639671500846851843015872401630667346552286124788498261960652756125025835493356430282964800659457627439373455723029140007206483027871621143723028595170926522956717590439587324556492117938658818093819558310614148512023685715215516222252859013786969963201357365481269149414068424711696382839531810945174501658359157649487894297701398917618508240055394140812213198564969020050730356396959257739982582369024254486263959531183727402343177858818078634424299504727971547604357161611566003014362127861215170517105530355267960221122783206995862224155978337946599956307445530740937053005110165868839099661040424272676688004864984687063019950914417960807884479261359922389459627149091506592091292513165275474857637795228283617671036661507481701575307955712855208591951529607138521316673633689451090207403253582245766107853624078927294648027154402088728084677158730303457211752618017246439715472847576488805341601327336202984658205353317374780770775733133003930763664657168654523488129673533607217278570865098717047609634987854627266933906165718068275109438959125222836877725570602635257343791906454961314989474200357946412774329356920286651842147160868128965141159475895280353166758883427720488089492481314072550909809762443537068540778943195443424832683115516808944896647186651870324019812788829641049741204760192550168483554144121502087722589343796304978286600353800080284551586593933268723092825601900543044573499134725499144125344086559141386073998426448132847941681277692668106291415672235824781704095092867134195390244750683159664021602542398005446514455911208374964700269635980992531103899432132815708768910910628584291924188138704581584889817043077329632194605254318678454576480003031888436405250065877833006991663600374514348326822375821788324965053836941111624234713705543718419812134247524153049856041969919675146874825641671784575201160133491221557850203036140020499426616357258859693795964859065747642846131342682166871045603913238587285120988430932564070916006135211917531135466769654134861520537071403126872749297040531773185056377168745898043154408902945833180672333014265134069091771435365401921074092277163360209404848555894957012478348788005401943618044665615801881396775202538407703361703007624766965312082850927674383546140359467740878603205591017649282436799791180982456861784481073857167419009071335964704126089168187800491346483472355074901288151624849588060247787878683599067974444267849635688171005390565029088829437877695915162676234043467832669079958662093723433499097115944496987684632329320227871653857784673871935825976327136020262609914065628895614253631132352871049158031343668654135538802994607148272490790425274516358874889897700536990515566691929761588263416423928498491755164771577023026247476264949352320799076031386404861392756753458891878019396485529262683652259851426699050255711736377148420305055799343821277751263724126663417340184115306256367340735358749196193168818101736361527699018351010941591424995016802180212981763399237801731881628776187878858288903408404199121361809536762920512978993740453078648071765000557299111324246166270476970849068312264540641838861604014497782347519425213105024590253974764192082482079866498655332039472181696576877496260514662654339406665236011463976321064805508737036561653607011811122054843432525342319761772552956296204158716375790636573283746587847052264701229689326397160988211453722481242567017389240813532855531047816584466011515470322928781147386360321288033549623841185820533543869357412452783051582371166966321174217359460071116133419028605494855236183215506584242104952339038923428020428455772105186046654806407273293444289812105515168755443000225009773311225544800851270288384944671870432811410076469040114444088349545065090319867400942347316359333791313902216196420124851058759623544312084310272401819397957635691453412314931537300984598247761709451771783743887291947995154039679087050049405436078711854899153737616240896316990943844463877431816414526872579747975364373590757717015173194740618837696920797232437376159911669173592578574916331464101879972015391870179298584609596747315960662573490959674281163672655402959164663962383273403210637300025381738413300611307206123705589336964571608198223840560227298755574176477144974898995760917933772202436584336560862670993882096488003012448185341178582899016193631263945703188305812705993653362330710017236884309456089247312196507995575929121758644731670189494930389507944531907120452382352449564218490279895766518983487766012606299085196063727641652021461196461540494028218787752026178075507494875428097836512984631967011544377839667487234454777405568185363369512466769209598025772337566656774048641936986015557724355550734721865940707587320085123498706572777255955963103502582682410463787730878925020817182713580228309711129963787644037457571076180275166613444490133498495909166821693593631712870103138407874413267321788035094077667828999599223928030742286202091499806868177548696432527124121251264545234426365569805078957826852563895545716686947217370764317162852203888375374635628688179449523790423691712985761643321066191282326906140661218453579703568143372417124464116997876047293435552959171961010258364564338745903368916250133725395330265887206139335655919349829892458387378979626909290187010402959302635408627884561528712963604898778566195101057270676150838230181606542049237559279243643651193051441040245291989424916774736351658820368137480776923071039158183960791632335562706843826231736015515454129587520535859109040208577526052246943414924807430927224308365303868582528146255822837980243349605957002762727213354998318830542469088181104917254053559434753646257889361249990530821233456032795986684901719263980828596851397883569945933407956912409993990909366410497715104258674030885914348916445103268121281831508162266594871355613455618003365756176488395081923660136513885878322925335117144623585574999047093155228415424890313286419826593028277632602240093536258415276801392608021755625031315435855491671594462556877015345189111031447658660620137773084965930367428362148415861707594494022176646285474614362471465893369704923976579369539702477443387572711830934513616895978225790784595572460612370957192587449167946739671612713876375468168617870710752217901582396194073610863629513372534064320689372376289815285584204979755355277625507151953434266547023294960520925361833457298670754688547492952821196490646477070198359091376932643512063232482845854787022865095364141273917167007518566254764976357999395496011027417134786999959113181140686296594931065865295571251723932855147070330578144600507931801017960478014643886663929628055610218313599492554765748284241567262624103209096068585414000795563648319493266801719907560150896111994254375984975602213524628668061817344049573134377665400899793828487308539247902360347611982287416123277539186620733428806892244627913134678660425544906703357758166446530508410318044945501450320501394810344664766082761018239487806061764613775516688638319027717813713778485805653909077503488877003863193083971011068519313735741165804247848223114471423898731812320127285780015937043358287210020159118851145245628252924071272066774263238309123150206741553056882679302327339673443759404820424563289602074263368743328759277194110251303991149232948471481673021366086000812334390452781816614891763928335868311701890736653232764467697386222435785363984901840721499473836956896006309160499323707366712949312022741336424994644412027098502844140669522347192562438927384475261372282426203951536949230184483256183855340653304175734050259456407288875008717578019086453722982374856966476737907641971338607950688878238337570979707229017420282693630773157295742274037481343217049452415449040586309655505442130664699464010308445250143479044217097848633016511980589856867380130202186910639560115421914126529844124916129605119148912384611435876007877719821995219491980853612444387277692586102843155847629230453307482674750129182434792298256098591312586951817091740870442720577397680708765019425737674513520496265447343755981595666628302192333764632507614072078341123876218706493468206855337016017956552057658310071039742827190069574255874591623849588328042125733971043590575184052951970702684377502466061890489313475820996439764760579522911728425718175283998117201216832704598564353613228867162506497049276661658733871737572324960244009691396705873783870701946239787361532900464946180836540439545963557843248652510395475214129724500146779248915880573006949089254550138662509139733871942925404634250824767149358926458755056146689799341833633040004716539993126227355786208512024154927094640804529347381330473413092540117312147035911416302631475700847527712992486900789265917639275809108224163834572681739349570556326327621877990156979520710541187114488244984163437523382601256725100902873285135636437461212277742436614867956209828976305899564010024239587009948174393183931203320826112318218212134982845681649734979325782136334881288824997792582537085190620597135116876902109587423849505807557510273437768793917481766800155264325220450508729058638440750268948126046391127692047618978001088667023606843770900446035821417231509355805418206728665922423864315098695151305215979650715429176145029402358695984934536846007807259886722585751562544855666495624746239612451243925307853440851692039691156935239226703974789936406705834711835734152513066643674235687345546981696289206581829155164740608947422713912844610371766420828997590692657284904571311932062692227409941304634285598750739216945219283241322013698293014120417948898033072915986787843622306690904582390968483069518916023306088757734843289055381636107775373244311544108180958900390541176589669828269798355499922495813364942610992804370372251506209782041856281738229121214389470386046621808157121798634739853313876037998232559724432383728948011669619358068370364878440595650301876605709615736669414651758341205815411397648182165450329307572742224384652997355565480512040141345977314319760171743370480695039744319473495303283443070526149624566060938831782828822137503566022149598956172767128910222884638615374547634142800770488064025430520773157957485264444889182445827304948527790656086186833489645898072654447403707809338082761161250030545631122333103548054966357575065683032644728902398802789392783672028221260362423571777951226222157442118012943333960838270985079087651998782954648309483641229015750710343128915433968460065770918416113841534534966914638152601725208167432906094134040462463065168065885149173113875330290686823758088249782920344653771633816958912935122114025061965904508011061287910245973477002283623960313587126082873164745620002394411547297635025618078004420350380814486838621962277769112860977593594840347254538623417915171931095397513754358330159876174619000500947743727789277487877469145487658902508889296950365665979531490618989045280714262916354452545959106174199785955803905307800241205246104559721941150189329174928521864190956221110064057301743225248344193272372280421472362439903103151640419046495955042396369338656449474971732920136085161044091745651857569242021391119661577842229845777790255702008765367941004509837089660431519295423248883323315929666511804238681647370164221021099650933320799849043929322595143518602664331577891147987731930125935174591989195609601780807005324705913287358989856901631997191777811470302367160812988471422834796156327630348960113502155409408351776220663721449074331811775137314341264098581470747360678455684623507296020353268084068452194668025476760431967034604655565551250736803612074014756555392896522430685878595463167538044840750644595967806144572629200026317694250812129841598460742845512773833462814958592097889624039885083464161416400689421636903856103797022042467548056356334487338563695033489658151883433948028854550087143718461606430099700074152032881771494129510325837164549402323154581189401255875057112475490258925117784337504930894707356930455487404694325236874000891148319699608502580708387442635369771894195810972583255407228396209675008954737053142723445112311152730756879437809832831086404381204818295913742955564264140849504476781250882292981032025594841585275488983419057599221022845360830479329232330979407940559938544718733067798929717555063793405701505057605702580582478859183058640452115559279251518078494412956087061489137922850142783473484723989472358706837547394643050094133982218252824822268453024338832415778146832246494646415046639217836366830427767026300360389100480058383240228638005140383193816299096765969701045005473909259617496340681950809603169772164252145032984720449604051523166347504148107157179124928705548257698155880505624563607649822431319187774270611180346406534148837601278112906421444182044142501185595373076351500672472701038734254573867568918706924373768345002405367022270897002543230734068856893675247593916001566871399076612625530091084351999641085519814864804352160037518441693772447863934739589893668666806253968521699652390398307755863574408929269743019165343077107585662446207730419689753453344411721306049849566104591707285930197482485191872395719328626304077192357046055075936030241499548678163263664088670167397330019842372679206093238049628676940803356760695245485156576926447497966198292817185931764715863964484466615000373842124220240461200143318709038059394126765111456182245838837689824095350374026698656474966896571048514866148358849063523935496053377689085786812050757653674963774621224135545053939559871087371096166537505615098298292155915983198233736063358656688185070239134557809380515803854932815670972444116545110099783735106644577038908756619957409286363180189913560500098842139944064791228109169165643273161991244515708398834671397671109425691588150536043020556129963492121510355255817770312527792897680244588889604060282555423874227822805696119818408189064215233038919195261419315257410084539831943294497466916030011468274493003088291252211181200375867664802804429318281214816380241902117437386996031500725646392167622930193462472479300212323538037603042746531663120287738106895978172529740814810540839838618786137180949720459933337679762762120239324076922777868451134916413142905774853193390782654971994876777459080040566265268957564646482650236618018971826944573332418931865697765579913811995349509578337992465081149451664828377443125256542026364901129508377076032760253864811317320503526343751758771776216127353064902550530428637929900169842564941441120411961307002940819312099494846480001195414180027940650700526406706425715149057445963175614033565670048440265574979393855029164456407476329379910222071400252927262268272621061701575930947681209498347973378152315501259453549902346014070009412478579749760205569904408927349576176032889629742058267131952728615878017379070721523533725125726469370841846940845042884250973893673691910686686343787051428531222503054833661041072652275384810968092605918477010227780659124429349323301481237358017974752333778708880025517755209317411156589217528675464273452057052137665954975711345207041296561985965348804442246180954972790731493043038982423894565359229187903853656240248026537117415523201542353198795922040076054357480318200814874842532251788534718935685456423777405084331903493675777530831407643054682653343250907709523015495524871402275052121664554827133415456711429518643070031016552389736993639195756575384808337316729068767518275465871742714854152021737596063076322285085939391600213386497895164925718299778035693701435512324527886066846885867856521269641161948582208221567006790760566985241080404503521160975381202487774120660468489786584404866380756398196647933360681917499531829211214686337957526164095038126013247371658205376176719936221986941088614234505681131201246207627129048228508478711298652082365295050561983053209895265447760060681883982841050821914220962609050924052758736648545895084550810105768382742442043979147798422539992472196409991673939357696239316190499120857562011667560840902560297222105352882098917332722775984395930284843768308060127997533678864827818021744391314087990689974166361518466502842091686435350918511137999409247962104927864724165958113238634744924508893773778975152581354694729902922008631402438886877051486040808506467858985967749232563391381553765430358108537525074365227644651684127885389637942274837928535754115298897068392529148848682212604163547837805567880776383528006041619421980778695291315122400973924743694135665217271346957488056328001070425440823394543812999706259303084603453544696974995212025782156922552040429049386681257765913019135854206656702331110889613463403943908119766488316147315121457955456662410262717481222018055984389277978110262171917897474470102193637073138087029521733062035110063735181411036767961015397829107174747151660476127303373788812523180481287144848619669692593859420635928649396436009190074808004417056981029670888643096474916895946252629599987529337352870112564827068959173572672045285586546754150266202567795690901702058331496806726950200099356313761086652323746286275446167692621409121375353353246985876614343531163717191406215055132381307417951755296130626040199996687772927091113420457200486606945595323430794750852698661044252777829676629338599703361264223248450819742250386804770862940292471519143985555360070283671524282154161540999372888961540129243024149156415036953757262075756898485261829089439966201107574574788211957730426891705543983292460660447971550784307026497565032572190264410954541284399352233331501075100637567834455988207065426437063918244777833236857429818324762251811463629634574819530266002303191673333831364787327021568933158533248063922784600962804633732758516457699022986909971624696665648530542546128440985408348898784543772396144143676863784182347265445963137075932095490154555731120418856821228902746457050504825347308528797145783537409419203076206790420664984677146728021617973168401795550221207008968722535965243862204533071932988626776593696305813661354910193798464248236665013547876646941724903613450542545246865561020100093928027645928600833545871751898543125524161378810527315501927084656543991196417477739962092204605910966867037843088046528694621208892796590237594790252428172212897362952954004497945300017986720564340116098150653482163209706625259106845243232584319751235445066401404963349865735746364846420366404926325605234816394850457447290199506226260168929975482007028617218135051851663090753249491280195720077314201241992043437199465225747545922284939108885159861030426601458411548038291097651460063105996080701792390313530734923569863949760554114466204703596397635796467844745231824136151890092484096806661715365626842215902687738117846756027362009520072546451506275484487108205225041062846354366543230695532195339800798421710728378444547405952999804813478669783175409420628938521410087373144243565807193087857874602567048222491770312297355857403870303029847887215954080326569955660636417059618336283733196181993799605777079167010784116012688626266680363168773415542314510929126801015953076990108551593788352973397677575334912970788058425010085524625290113890697191671193274076404287882849109394035987794246100659705645198685930791516664965579055860636218198636433538978288328246289773358331245456433884167307669866889097777024991147366717586527284469535859104782071277650465591080935543179010205649753165689737080955186952661795241484035073394942651633611968311463100916914820760236827349434709207425930659613453808412787613595701594739313257035836069563560118057207250207284920095444328611067240381344940811696713457217090663464633854207254731444415153352109936106287413301339561372552257940297493912557308627707865427906063928446551925460153445826112046068467493932950747699181591185312564844980630707180606841445015579300394411857158293106830642479412087392771843058558826023225628038245770545066691178889609722121112969721287713828672587150129445806380774042053219372266393623133425324842109078461359697639813521364331879342218554860091988960040037440808450611326163821786474052872574206971691008633128244660553440765515058802381231449549429297967047820030681840066984861144580642205959342716094302673747292095866093302280440170352879687001947869732008339405613167005238738829529102515256583717472388062960767228675050086877235917360490217906141985201283824141013692912779760550911370787330456780984106045814076293847371814937897396939145692618495558678099533073623818194018343260627917099182567813977772354829715071378318499801716224408507347435699234788063338522261523961693445479825033768620361818286952394589925267103469338680259997906752463710080689742378270724181111476104585855988436855605924899982626528990420153866051476406831392245240701629918349219717960940878925758542369193458830730928148282801389395239222057844445229341997502666166425853700256670265768501959983038674801444292698463905624206192267415610523656346668504298698377129334213227727339345202064484779378299150356154808879390077552061943299822819912225275902915363258045658594602987746438674037344193410317191359206275914227984140411856668301202059209242550308424836155967871090220887614435092064214497597945814439521945657261585080938503880065590189599410941871759995956530639469704183206379745233138683021627238169221965312606843885052277276014679814863099486253538563743107594707957202519307977193472861038325392556863087606957997273592611695303664321105578038702715780430815677448495050456114725434829964513439325328115394817151066447316254982750325240753821457151479051263190464084236026044946663984595628367443114707682534895249068819939094775693864804090159795166981261005393552185065066424238262532455600119167460756056367817004554183022019732430080058053378508175015431025468672493064487252849567668468876471633370578953070900726471585606707580885731217771967999199770475018981004622241841510368086832114387834847616020789835730851023235542611931920835587462970740808841811827874658194056386450775359815297459626497319454159658346956139549165857998106814376620751284919619760942155751213319390259522260042129964039628750455646232469641207450855541952035613459712149130197649629987531963028591138445458389273403623827234395920702921610194910378072970520718840810152332438840318864204527862606012203779336162598964930025333777924338420210264975318732397194299488991278173855257232847625311203325265506081515772527787700371753636426218912847299370249745630072689615580644546455956203118582996320089521527047369547298396464278112108798514075297571800489320587150430660363288484768188554514570419424884112494559505321162139953612329060230505704284225883880412275698334036557483809208225674089316312349922588672557744063573217659457402098316744446984020589290808710883685483015451886038561868313729679025866636545987444379341646464491392263118984734266312611937404411511282109767822245815087280893872494329164102021794036790145902083304066546071891507368997979042106473006830224543806848229700951842775639516782436367342135664118107221791347658335647682508221687909355367003898131370506172835424915180511358774963538793986127704393625414890518011129858884265952710125295844911121797861365647778295994012247315949476233115516127105129963933621622610359395754883504753482976944114718325338001324678620012236255612284403364596648301524358432250969334514140124883304231075893240313574327316570562152393110084690275906672256715664807892377359922162857154932195365757898265728422219394912270699216115720831894793375431184272687261388175922871780942153869403266035108288146816226819163503248168011349000710078345023602720255204499773736402441632912171561233997278799504000738579441106184846641708875330247390785626931237939369228466629777782215705969982087264235021380936111159718451323986747665026821956633972143070874054874097772288075626824153723893708078822091465198464888760926314839038252286697879185091228777748739564570710107981166764028454586263984043202331511012938293508336769351286145816337319401384718473794250319028035881454759143619223519374783845628896318852750304652108189206207098149278229496061066704652625866027506758895002005689885915254449432502720342858656087805946976580343344552590491081536643517763489364026613225003005924341689207509537706030905168969570751948367806850189474249005361523999174743967784645082576060646169882103852175440350175335462604524568636067795253264815932484840168737527758961010437450141130666857716122474444401035190780686798131364190547194856730305647565245959818669060720266062579011414434942551377570849160621331727025652615426865759877577099243753323177485593471495671794681494000265877361306455475953029444984728731038046483653901206498052762588372961126227071807435095263448918615420915681506209868540214568613054785603487415352369562139301176903343997409880335065270784860760200104149312135992807053122950907696161543267691133805371332885982928888856965673281772952374101084537384287406417935222954321991848117567630507126720685704761554449015995405895375265238169546423908598168975885886828680559268680532546498002458499963745508889040720073856075826499880601639554943062147825622396880999613857407350740072128013662182848148251214686818859933735804151816751859566205943346095247321148071812364372146839444874472120132271399255810566622161340800816218023275798071491181850828726928862634171626449762332434199746918815957471943293449774484762215245497591824842202396326352211450067149258310148928774170856573057595798968879188088089031833302794217139619819750226893230167686220481893161005401343514102369385032037753071872010944327363902737626683632206868113850175200636200217338633455729709086982024172794561559418019528624128666079257855678205869390628619235928380030127169091016223694038692718837508899045112494467766191903577041037648062902986571454112173512730577168487524765172172627137638702108705124139522344771258734729029056888423714221383473865094665259441880558352151493956781350004272712061769809342351082212583072975470316502307778858616788203458982496617008413186056491200709951769353468408260108031758747909386267586654551761135179022245237073293577349064295907349753496373336710978843245159626022852455250220036837727719445978936986137491497779875177174741963199821714967204317456980728591236871138269266294515150393492092357785361300688252307215392848614827129792762199131936509033551078243810823128321111689246820427889673942126485158871769588789334800382308661712480650108022138750567776851036093018032914479748016541455113234085577364760072273185058174275355654821929151313696988192398419175999307080357650189434135403780533876837791071782754380198077581037690612607835588879194121337530801037417856679739364556804524297099778919839726705183354993185312601434174264503919600991015829880320695026591813000310422917573140477874544757930094327744111455592090561941128520346285707431382592309131797459011775626245798021202733403408035172422920439765554743042390151487868845231645817680561151046439712645050179893514014736564805312977503916266589879163437770083397553907906670749427063546549102503816019088782696843708796656091862320955600449464845893388402427150788841265615300523355459918209543545863934833583447427349643185071398218871579427900559691189672821399522263650970302195787551383341683172231890320365939941153202122260381320658212808536007593396847573228117539525341809545553607787512356249427143623624796776880515392122714108928285637181708199850657947756221101830442107980081597296031358765310588651570919581734488631633359663531816075116403031414644226805244030009378401135141551109962213577585072927791349237621515394276149713392644582343576859095140444865294966637711244970577782879365071209478710773032110153584624655168586005406936845348933517491761377516845373740161720064215151610292029466835547023430485507162498922034429892448942380942282774673226937754988041240196827473565797768289515572044851872844106365197398896516696826731931607808269500975649122942096425123462494439149772276466211997176764109623391849300605997913109856235084151031487994617008682295932428523920799952611194462108587296220316792182896113007619803135450542635219516514086279120451937419241021986657363170342791811428618249108214462234560561563770585947769135746460099729342073310804139338776760259203688228501690903264109884362257018169503286833311502594563480314635538878517968526581750730467809169581570753419510936801554078338616598961535161658952029389157900657811995960001797332560785140450237076907827404674131804031962849639508362972710281090673929392202171859830301690331687754026424602152238601333274685079601657179957750465274720489541559679540893283794683069013158070587041687359900745757246836738298279183462512656408873627625167945883703154075421096591653334763272830676935760355231095667246446665854056214885167015158911561966532841021635015746099076325037618916097619589845733020544644380205362310420589036140586666329038613728229735422737430703392221218811078199353490248151241283660697496330665827289980405880260740523564122535343703487963540206971770800783623942422885218650641866154974387607802161309585227818721479964623455186066391390343765736752406671310353457089324331652214026735933300254476309622872547687793506448326698369297249098007236058070359134497084179473748094387602884817824795595567237859160689476763033565533032544345796359792551332578317885327455896772190599723605464214479419497767749993549543098955010407676495771225392308096276855483032608928981659298544010273979948957219175632006863185177046071232288715671914882588332721605294748208581740686674822385959232049836292783537666591762268556570538671957144580217544060285355878457295924646133668499359656731220909098193589292948401912961434303223582194738645388320481604002870903479254742424225580641233755528128183140392558302415568919803072160950383459860702336929018442581639437502076288959155278848154254344013934013974945276162335298464168882462520158459444844264065682519200067290513699887149285480509348914152981213762909447062157502257976553913049913136860223266437252901407408568077317520907075374592232840513965634921505896860688960979940927833714275475270424635087863113068944521446689847609438712783039966020083038105551164115446794595882946742821920761107914849219151156715305214374645300365186505628456988908094148535377316720820315392824837045138512225580237591882675461220955025620138378452287178405380616268684071475600746744311000155573116314713738639468426215060773153839206219421762747594691080532708484563311713950910738850627018794094702829203664071923483282825459512943620641225414600395545669013757526965763016405856195394179969122489991744801117680706283275623901992640509408735081614837134981231238308020134250526923176882908746626237331508336938073247533429647399501456327929765277017153119834399813167753335958969943073543672643130696137655141549497854063349249285422588959693096350931745006041938380794173140561610466776704749295678054511508527944540693440225709808999799169294486047330163379121793149717702616395874529042950794858070330777869531350646294731220508641658503694108874996873922186120457102825103519915000966198360375044758405603564314147620037686800623991305293705486729673243394337031898447072746679585034863448758548665142164818866559750204041044510054919801484793043886941967684934647367519424810641997738948849122369496397150553929336088684509421491040836343700603599746352378180551311378589496410268133279302551302060909320062989092256875419653984817174228464815097733320417408595452125640960395773604790896897342152926040370532622083660645911443491281023737146445641059943568045889458744457342050875349459022868614653109414625202646327967922820809397487383351432236272586884494610124468156121106728710025086248728815113847775626376252275723029625063378781656771953663320011114025169256264667135126600167689140211506048870037980487003550688076624499284084152264700947804909077796268803464307697047609945662549196910812535058478802545752607811611228500588349115269818641990165576860950421680871690152792345013448261501830706199761116025316400318808263319230264559227826516478806327252904322378959475661870711598603760884698526854651402691896663714616056313893692161004054192788147774838815328647032109545027677147752221203733430547089151204248058916649177312030884553222034891090692728340816143892572820062415652596347493243394425805808757612877775749416482896442474041586053746816541578673962440451641602170726658749833041180768872816781134885155184486729298598279922300360475812602003056343649717080571488468364027573394731222379045457582718830840840366571465080746342733532494925490829671224176967402761663806105324247771464949676986180167851675871550126133596328416263029251557548575019756149948074643495458024677087212030968216525847473823534905947755340137963007681601883663327908069206789921487825951942699708500845212967341805832784071132072270255096716821637072214015884680235597326961688668932187117256657574345147033535998327991945486646553975323786559772358364862059113642007909418537570110982947885260148071692066385579977939289738064768343634954253831143157774075757135778024005479915512303192871598567746233869158523723327831886865940944375356084134241249203680557705934445368923799557424557870403816992978514581906575315705214078412754087344140098464556941983704621414888351080523982975522465269880485140498399344684528464806065370055839305697724669811805134865926978263071210389720715387918079774257622999416277339331316830905741369282686252257217516052714442360706560318888945818574936320509882792530370460426810945151104679794907982253275660528694809901297829395710513912909234399594382177223439019137339145299701420051991154352705624102781843114128915959698344764116837087889421830316868527544026204017115814439984026543170344367241463570396183304466386552475463887853838106164657664886251113746154202322378676911053924402886205084115260054835530797747507028905968054117561363770080806824323525986957357871496627968943240089017760419979680206935007820464611095497549245793257190424753554791870290080017044799090469337936573628658904263969861711927524672842249127027431310796595826996010217964329880057544542332268224666794962477386021377126481170018007894227681345293530595454004949002348664029191372058537801735148453492378571377224818448008212532692758667514550388132792338731759258868370166379849684453438374722818799676703857508597805075242863274472997632946531854121381233355396791744186981189803112585141503225599860247289890900995434389939431873170034783199002278200237264971352979643332981371484762459197066101976759918319119270903266104643534150094859099614965911274024161320069155920169352127165987759531779241679513466622240101809899666052664670468985112684660977457664407813228581501720714662090948559176734728182932686263866141258082818650208038626300848799279147957751810083596064123154336454882447849168553311769626715242779322176662418827196044963809402806760946182470755640260849058886436337103232985438326524090241481517109801460303894758436035156736507887278871532213984534515774305021091380211071570025741425406396380766566327426633266499826417738748770033534810513797284864932007977073462218849141676447877713616356711324091579912913508636897761377448836790912993156758824835004151498244755328467253006631674144815333056196312859174413419787820331784560686917047023652187517769267388615183286253975424129276412035378849408358541794701079191992989008150703720501725488528013372233307580178922854514640062339827574774004057066546864407320588846851708195055669451875231622182500336778171689302990067450657957105586252508908386150298212854162201262246821336998281546694501765360518905160393670310875877856381619887029718332917040415439882854901868835771044071923814676133206278135547841416746931973292240244520534416615508851653219623054390447971928389388793613160084967210294415319525835953180152035044402839669357653228336386815314158814963392591833914021505589314503707118943187223280112218017175832771945737883669179708404567178352587015875938443181548626033530170563976997714529916856144003387684561988603030792268184332432998502525451127331209804618169802230170412102498232176710445173576371903121111346691049924082200417516682352044482874934244674726283349004265901563700623858431891398032999168227611842540064440218388737228226790149068954300849903946133274053247898328532808416614175184293975879301907936788401911079184657412664520377013693757630031057505011100866837310963115268151229156869670664568174225907619762966318328881757420701035475734165296209282360538244455339375556133102041084754011210201791304366115944183573676849622353372488434696856072244613293751435262422577703060540221921648199389884523049767935703611886497818361527447563322619000000225766193878032378995527607027015213022094741645256090770240230960199727902305956892800633659971021759154991019587024384343741051239378837268576239893074763802484961809497387546113639762123696521542728705258726083483778531178211313811712845288941630167758086349942719344977572635175893608821684168111869606171619035260755207866619316859352878953366666742943399070776665260654415335946748324630137560371656714774331570588309903707316170457563295262787937596301410996904411765345157201838849304415559205886333352772100765695173196664217143051327941106207665251263397924402996268129352630634587656132350894684313725918653281382645956662918036922568077382240439727433668523446177454830589392851505365200487292011396887546472565588231998271331599631667961792999735206842771749969729244634101272982368665913068489543552618508001356440804042403135749159372569177707730214861518735741903585796481601111764582552190176707522654225721369800682018964272896779779568844694578520570509797968005744409324077039901938979728421906590672439861573391901269055880866508209868957662916633875893117461580836628873413699919922699517997866304915797217637668439162275674983956715258075983561462192411151095766648800595390778832729156727725274876277093794602646463421473104870479074038271369299060803269414341497904342026904802029830370191532470365301778120254001957340874247842523719460044648094528207366549562500319069996048446105988860522229720676776991141863160816049942238821167390185760173808896974270559747887958007723613040789591783160974290705879845290249861610632403432770225976907206253896350963528043494142465193663276852987360872615785023768501150643764348010989572275849264262321607194024840653755738222463942415353964996313698628774669834910211410956647715944711621450608760962844568802700550061405178169920981900593625680313919178374963505665585614588924681692475593587021372714879731802698065202707279672657851446962671034248002543579299607982152196192374357642624894394316134206570429701173348546471694012758278169871387660894457766993889572673210354962848347638764633327085818310808642490126030846886143054384191580437832462860428089947629712247082921819370594908064561193062796339117059205542564049644310634352071249206523663311545643354988546575961592150157040358376334891726460961670190337939159463898938569651366105583456581256135295624256617879184685227002314062019596183303610392180260368470930215628146324424178477313831028543120497512267529905143543106522277230481964934310587432299129987620524159577146417945375949837381063973072937340639864952994102059179468962872888065261472571049400478623077684114321113180143296509961783959706076929821386752553094429605750448961049738306150892766925585986907037982599925096476961487624552055682664197976613809405169743884284413064949664584120423253486607502440818825564386744901807091442434186018227838587312450786682840222097845124721721013799783652951400111242005579319306099607109684605775171836329487923410148397699898604764137645457418978238563574161659354141551015374415234978787920307542339522203167335070612716925342834645936791608716496654465570440011707298929208491470462643615128538998368430663334770632525971039841186279402922731968342940314461103721024058399418213721489847243782217858177903809132065976206692667706359905854512322136749780159679880948490056009230086409085800199043442457963921679230718554281017287516515939730181353470535678284496580587923278055868800468885170632194626006860970792082781532662789903109660199937470825336091652086661927916362458591686384754878588780047108240057594974018154591809297359040961154389650561910369801449066431519110613805858766052846220063256279232143898361933325489759062499118666740543953955430702002808808000057064455658571004085509341765859323525537434320457217789033251233858818826308645328697607705437469243154471515673535449801539331631567987050747263197836857487070882367825091183666271301945451649483260912133127729367175529283674290084798002889288802419671084070499754675771397080612301054987647597241347271689259715312891924677914364473013886693769537891391902279432848308125585826540051795470768551832346986835152205121270362407719626904228819441592724589872073435586172590214910740900296716955025402558986132700698949860491736461053533571021374992004907819482890243798960892393046778680378416502675889950332402529807056334239327844594066363097487023481861597915031990860515527802852189926775178568740442728557599171019080727774798343941187756545278723354044535215678187902070967662708085750099059230278544596742145915276479532603278673494705353359134284516360411839506740555097082924786835440875366547211156121143692773366989785625771644291183979203362974087133341674202171783857314133782457261052651574408235211231874419091545411491906872788609219034413318053120486908982169121515116839541158974075255776165537768015985969370560500265919632150795142709633870127944557843667681885830787635981125546675159371138671452342595749744322625235529867242638562123507886967808279270455739993180139336465107175542523631421575094507370972754817075880756037260717961923998299692155796270712177823582412657962956786223392877438763373726241345903884144950826568516104542147850918477793083430626615276496799031790604913093496874290209722284346851994436991536391012921524843208304755348679676684737320024996020904645163165133034121271428352337887699464885283009750520927169474758751999735017277403200585628517512082382771055412708081863141133296882321577113040610434304529730591524697501952773007385489726820846841189182253621821093201824722045452489541553936987117738486494245503740040500458259538717994943913367234682800488825764684199177052612745818709559880403627918745581389607376727294217825356922946834988488850536250435248377455589233790808880810052005432806486730199124145822301435237568557993686538330678612582171868091678527973834897853101552353879192109204306763359210772669614059909811717688556749696107812496270068805797076421075064196992866639912145180084129570042092068079639118352295833131263272712398819652026840473963374512576487107474912886803044438911364748504636314875413036193466926194771189139471043667301620157518136099664005541729372884771612351287490968042479717952316786319492340001852840219662940927114372770689109871456854099813001213367921405043997628972906695503771802113018975681349957755961747605287387627185537184670479921047918287115445128528027033492275543232672328583829258123309627368314924130865584500360067860265196294747257063640112289047312959857954830181861575882342119028442198614689317487020874646683934717520545586517575506184141481965101848569561936116538772845101510481526144519459505222767684607746133663008520623999856787164669571278793865087116663929021717037181230820849736107124755493564185138329491555736362399929373762798742560727611707198674659116649346060614085433268978712617826172754347731480539421009292659950646612543000359598598250549470535443321735151899077894780782105397503318685139492265320020076848828021065853621829777032177671215555100348481721752584622234934990748194308732360668721369361027165302306860355585380556290716447725349041798412214008488320461808301331521241915916897932694694490045361936803052115905981366263115731410456061114399173531423125661077022934505242515690196315793072527485229099936227510704534418665192572838903054893982016825822089029043138150358990203612455445428191978096151053158055896589034700472382269650275575384188941711404339456614590822962744705011763863718259324725259672283234401836761149754282801321183071979466826320233998278388566746951712558821007465546849383817110920514325775693959827985731076405251969552982230725451738660040906769553111036472191772892550482494362225077349935803945993429408430040605085214298821332168177338344858173383886494469279832913360693365443371382156254296446893180903233159963709286051765176753262931457756258785954681172064109617437674104462521450802639820939417600650720782327063201737887482689662843690579841358737969083145876847861379761657750326608332102098651961630220968842616530601318190256979263546199961554142795863516719933652856243399396555039649316315019501500287357979635297406952674150083185593329041055361800778295488781114736110644780098717599762957487242446191365600694495122562292010063311101608632738936951182808308457166794767065551916021644375948536370376307115434934146037390259106467715388539858067679111777582649998335130502466633045761007701199960647979205535988967003796629287165809453521157702659424245407314571329916761034194385448237390437266526344198965871054000369651711982467577635054421121667817461523988228015551484172694587414411878334714656420002365624538248374357830039766908354562020200909645554612613980662824799577195192340048825319586685341434243029947747889548366999522401285989434286365114001150212691610333794075343081292401759358849706819026321108719416129893972281196383696929255864022915203210904562625800343093658876881511599943584528422363277071388068561649865318065141897113807350505383684160223991472325676708615682347018729557771901537071212379879525451874529021327996252220788068286127116253666192686865291560324593140601100690215066802025608863710352712984942907125650006071030450606943246097303045052017523203010871196660989676322412493601323271047580558985672251620011053935913059041597980431575264938639348203603114072478432073167642229066835603940042593103444117366289964785511271716254307505053170394890853302120898831902248655422557183193717410618603952141092262483259129654164625964569872915543848856271423531377086505893823934412832550902975333101577444520392423347295137756877233412758125580473168129897410331375998498090839717138728050938965712896671880876650259021126044690901095359365651376318349542082354242141894561791630175913920837676468252905990234756720457949684844845281371546662703046248753982694011826935867690873105364625478775297361407906740977180381931377831358249417151736466435628770224963455825770491151931834862393323841623543678635710624089955183870606979607607136294676040507935892645735061570310592350618634027576067641433540156096747262398030001477297045891724195540265451503839426422363140818605375746775319104188454389940447690490021144832041202999546656522403269171678192390543366220987465611620186254999591352216950379093358020130484753431679829613235927843048081200847241031034343486722285632599114253749403388806876988754399505137782299307276137140905424415699020684095496881699934405691273755312925564571343584979353708026972079773521600023667916530760159080097616432938862491338959530764403671195801817498219600343744250003552090219846683384357490612076679218142919766933252505166626848212052983417732953835209906548781263339896423547899982438855746216549852519358381047504191903484192614652660046139700624513503828497929686991158302978548268409999712076778493208141893689751497916693757037032922620960932299521520168675996180266314506152680023039620325747476442637368553155855626452789770062537134919008981239875342269312063916914742938806473809073617632847401000274444097187176637462784712748897965087891421733354777226124358088783129847313535568861898452267897844334311539534830381565111056952732183715760667877405802183542460573743882032089739678549047916099948005644013541762924648655556564772639988805211186733816932418485064279656140073558136091861907193368212293304017516882787584985595301221072913900406182870220555731558940171062128060336307236771845278003631962099867118030565484533056768198507080485413607161076662368573636629918489183052072433352922302241668618668438256356941537521501841612451268241212032132775367755063032377710501726141941971355241824404279986506419954351356229131443404224761461184423455719122901577255738107386587631685780182507395881274333297274795440438581569216438784541000216744207236814406913295773194573048552570264311776712016090985423520745135275809646442117817839619065772554009178824791472919978500570671144959866463300540929653024965889455271856358106560120434261504131980485092842182169723202377396312318582610060284661551769664154689141411940637555358879038677217641471499809682962290208478689632496851419992620643942163586038451547226192975032222808043691769852599919750850096105236509977058495608398081262050027342033366703267825862318342954631624614195731045853560335475957955502402249405430648520962351208566990097321660940484731453336485793801110547029630186479663271026528759840658847348184107573781791876083295737021588289742895460385337879638053903509663769537165877613954509130367514810906816571803099232754243160193335144470160347143902670630540135622065342698884710835775991980819149271385217156163072191661412705896093676113734786739900273899661458954964492825084622114597202290057139197463656802845914841383075055868728798758677580489777042116761633558903688194648543057972678454025173032218710906236244973551240360102982425103372576543702058805747147989730036150028378811044503360704925195698809145748456313651045372885835092702718738857625157862684909181702714493664280299553458873319458272764851481968299725522812575291127374124883860446817648320199400086981619394878471498646036606793462586981140462974564562578592523494697082162785289787556959700321764513178891186606573757314884460563375665898147225739452592036378950509971269351422673921150554636468826511989105019409101366171693703791506802581506643587447755699222639256131632083576183059362374602080268673895406768179564281302806752450214962675704920602715839469018243540683132763172246449754886870507238677626731439491171147108953414889410104234365728715780148347641610337119655170342227618248891663027307659751131219480323557774263377104046426668338994267720902451202160165645294676658547187723209147875596216370659364277842976628416059113442795786013841712650679293633366010626648341007397625842097264668031633241166583139990113685979552432984908142237155857752725050742509139360389662246412840957955380287364731575674797390258098148630208059475209704980420568937916542972566061642374514794723282193833827089032217236647661317749891414119363367737407039688406658805536453204962095631820654310229941536157499894578404849693718558363133677109648811591662386744201181969294590650561721340366623294409559207996445839817644093891634393258610544036483654419103189596196161602890981892222047738786871292394870558278898224985033022433916211899427949101846971190550790016276509779708744466857775067730470405168499341246734145474743084847479177353947165716823639871348229382704855889807783308137509595999784247498251726786395937469406719624559439026721317568639393964071205429610986150428469734481535382062810042219215423225861771446489324197841455717627549218687073522645240914971010431895105819455517240872578059993994181511960489265701319121388526583779282586508784838600171513246721712128076341782460384966960913401180439685200779107755449148300117284610862025467488225016403999882866415829061287581952547511437591108710497953653111406307228976338733393931374555963844313464729150690676823225696121316027184265019246026594707487023354908243243826114514730303691275374074422964135730368948677590825917639659800732820935246023285385381327131164177760850357788972499733590277396382930187071457196858917409523345718071535060478222776191221453546980042882323618672948847182677497636702390948208966848407955795270461454583065435055720757008802760765236597564152366843423661761950963153718170787085972973096801547714848794184785571450840144597285548962760379541859466859066269361472305483848390282693579738525703216235460478098477307231569777497881896911635344449342570664019770347422461313191888267728772372310437985399610697531119354009193981658669049178626769727545506553042412308799613285470382999413686130786552325725241743344331713467663938652920379508101963197150929882298954814310182999011832555107304318263265444990165583420731576416039577040235435823232986934687911702843390189880842817707099897584428772126218726376875082365280138742015594913501085123803201502253330112953092548974854224968984558961908865524025386062472169248523972218589414976951621443661929814075480629691339413777650378937407947952824137938708406035365112557543250227499593934665032042827595154770455378453867815445483446810974073586791203367018545796913600682147452750344223676326909046349480232011591610461818520500338919410891627537358862619263891704077038349063211060416851351036758423247121753377067348227852910722020906264237404648956814543855534268237367546554612110342766168672747955843689670448360008692743642255923220978042933055151887220793872695383078331327927675987158363308174942594335171050772501419787290882526449562877237326234329419515624402216655332351213721798269011917633975986227484993564888097043550993974592686421205701321165507920390032593991415984072053272141191859648863394639395852916608864496321920643876903383614937185671239838402830645368782342288468404549702017002362776725561648389482788516277385057936712706408632083453431752294960860689556902297367990598215943755338400593249366813892836751752656140537174506608027024568499581652807124596230817567457335894740927633931443558061785034270489497964567521742298442101998963054986593551571090494926000913329780400178720777008973114072312415738470104054261586202098399982573116179880544769087307933287441255095421985065950050137974185801403011065397082255779909893197274011703533969391098401112739622394779520974240948220933974772115661543783516461805454650333513232108570692898813136084099051557607902226123372427397016232834053473227471690149920942212602870984585371801568015031657982418304313259071833306063447958098135868570710157897375744250782363318894587992291323859176684823678996305479203595515010827292520791587326964600898767838618998490357165799702867690793235595751139687994325098226350210450002608726495861233703499432933587793878257986280954818562975102668827785253086707206638811170753582242874896889655662142789184864631138613281430656823222620679886342862098680504280403360486239032229996177284626590525806867305850059665847766268252161385448332845820169369487881230228205568415182375202094969374810700712730729219708760971002411067011026333669392533095216497932160755867940334500597303792691600431718528392966445217362901248572627345655800726182715291504848465435455616494274636737803988334746908002672414738334235027376211673506083693773571314463865682164361370733752401419915261635455379967311202271999707673377480336173410311024428223969747809931772209919721579849289801939006171112206501542921554231417084577176139220275979123944969042741625395081412972421608642814340691600334234049569034936970325841136125349149188361890120939181803826475533859742609027339511352400298710403610320262775190152706131468884154666819150291544092589477137523068469884077721046159297870442649220826595497571395368603662920569289695986940893417610374543935694193906155879236008092909364461865189507915920393961988841117391107007799566159820509089366989437601751836770647001347106279489431481189116836085685144536468284576307382928937714700801122529648602022829697134193484078313674263460678450459693612776437944068158661016115574005747701388203887254567022785102016238138565698210008542330553742372489200276231923791186939466156660863098132884413583605680906080907227535321151248738348652548125722872546963488865122524876528327161546796211957433909558032865663961947355505528360935287808230757662291602521971442599048001645124252995897070683921689563363840897869220231335677357336973495012080889927274397494184655512423027449000935450537192751248176326870960609766349920708129893109723052928643360023056939913804138711266800222490264635597026386404763127666032978216966409764784201581368219590246984677398209258460118148259794946369567184588900884491074414155245949936730803026975134672564053292415631341463783411053361874851307911910999048973816528580702736567538607381806015320158509498371051564219812701380697106693971797442084383815719932201231824601382898184467661771247490465080785247433825014102451378424312062953433877489407497159751331627520998536736798407151857932896242927594725899063886609311222778994689823701138389252071594094113481663363424483140691783606219687219282232647808797760685335225275262543141878786527779234912159816683744225144208282397643986995590432045329493508157843340496041579119971529025839430300073346792498218291914270488161508533173050767772372561395858001007041659095762964155496656056823660485069121477136202948330695463672407629295671389759431843873868598532694371554042769953787227611923527252531447464273670354852374813895859082487743645741261650746965670483057257745622941340426072358412132159832469872328946776422648076410000023926798505889964970204786158820264901763935871895287778606900640977521642836429346459378684295564411925689772913367695192909764092912687869368074564195978792472214500109666713885272975130731304531342176902177312841077005088636345818745478218193302360708941021174962102003674874176479026582700697270405709743029958575390921945104558409579403785878991162585774624077427055865763767504588374663349422251940340114827461622026710955369860643333357600978205735246900666788539067120996422502882967225110264397590662375235992662200593453236126589866634627258170280035763902091914401530493764815734137000847962543620352089659146829120122405953015448493058435871648164646351886533591273812848116058272105483164177313681381737053773856055569529384786343219494455908239123342275919032070010062451778676503017626729938380917785393211242432324177700664884675947478578708915613211109491251979742835831644427080536099585407166107887799987681328173859319409156850808858568444910595922335312164366820050141349282794396814510674019370040190500183041056727056587684328289478681267518762408114492778894308178799604592439490828813164441705337099781942742046535130793466741979804279962043380170429266090430005154801542966532837369010257566606059677806117086922055479749837277899403680351729472719344605795721805542357960924850942570942105554790202920124542037840995964687999574751290704503897703145051625234355898447249629576634588648978925402957860810161787564894996493099896306012666526259531181883958161735994370982416833102213544581473599337749782972570371984258817593847339264250577733074370923835151540640127061444582402383483017154348455448788155336021337199578794099940678135432087798499087265575763436939760717527970470245038416440108969921442938819116582293990681932246558247153111682550018346664184034356445738835264128250544586606947848023336022148825596936127125368573367957156515244767369125727354303414915839005113462869618941944356382860608214371790719241169464623354703599283961710656705135946390434538982690772240469009728755636458590143226975020969172390960493192178232596088899632599439257279756816560730810174397183861094616613138387475408125674139959371046801817054152116927444999061639955874108636185736155016559379113540394927216810520836336087234024042198627622266676410706505586602440023624564200925352770722071863204734144180894087066964095761104156464440433196035607976084639439522692450957690212874862261696129599802087151695423866402507794139675793411959136660117166746338213339871515795295026517092507888766285989157196489160809793075120756702494310619459250363223573863774605824641933903463946296289767595477041071678917731184744526734428382540884412906836306721146542714210273558827742864299031456973706157830363869787817322413483603901882827611224441018338891822122570247339468666364005980753344478391711599695524777874619146301143814075611533733923217052945994431054078998738079080225042805745583577156538626362699041984202220438980823598510325529480807240012442894325289549800198209551875655452585515229047311014000381272824835416958461018615219988554033252423115378863230187978546018900016657614485413265923361530202916528207342075678341938292317635137216838966900490205934925236423505745639695046874751974101012503749199466681359134790886611476003350335088764678790729370119132408290188565658492363234406283205457658930974495260695057280644380902403501887279057827193469894790039235902072255610639157258009717889779908622477597114663321098168352336976866263295162804867863606506386350745580068064457099604674235724721776946895311252619998667405201818564835001055103435369552113698345929880608201052062083571776593429794954749892099075031504874716306758891650555571145638234693486112964004635407141789313305524923874085863645173787455631112889301598227934073809520574642677111343586435957612433231915968114696268145043725240456834668583876857649911230460823567450729965080616366212984444446139945723849551825486078546820737893068899226138525956375919843712287671530876434244724680883398445718959651186495546853332113584580068389241668227433177903000347577575821766082813340349289849989887742277743155051879300550933992089441935014647671199402630870530054972837639470073122099852343426876226652609735374585761263504674551430253820287469545334660353293527423640356387453720368859859475527284062324090480680103126379629633002012041031657597299695785016769488453229994578857800902567834152088126463802964726127920538653822287240060664994762716830103274465389144067292499323627033514340593951129666810608746996472665754465910027451255148630413681468000585102114590232031266930068995044959955914579544989891337444993005340935166994519346303527942201860915155032981992703405240050041107933726713077551340673830075010161660847942736562369867363026456771273908517506158508053941980536482522841242288266355467005955925257046891675098116028650346177235118312229507100085976388818712635733467798742403402397482616191366117625473450829303751378866841901747399417687048877548853219286878489204820739984442529645044001758581018250780635828073688594249512969916397234209897144722810313827322715578661108129864439233973703467888790457341417226569046382556611813542087019937369998762090443115454880139449869388123719141113317271032869410113067297649747718114176425828423076479936104571535091253083675159409467833527067473854874051566282487891763820527724163328670308604854210095756361841215527767878683932904183792227257231094431189502488091270432481280607589969985503444168584737142834709389218405209387576345221279069495664882794580278497471890594856564626755244223639896980657391621953278878394224788869847901478346709487935591795046473680628854290350409507604005787059454467260035872614267904949068519375664660216718901922936179346538644824904608940639521515817236879745279575860090250500959086610131739494639876732138462210367343621110480770442800956590890877523296063230697316523830294816909918505919573413977004596505012322744064204377217172699293548824405624782648440171299574708306825897722708070113933213666063153498650269629740535904135073578996612505656683689796450758176801045990267917926575808493582111616142911216331717180086449774414715865530536831788100557916482788513303889102648146562236895732606094201848067138933694265456885947909358858884178368987090998607374599114164090423595575941294716926856269918622494347055492525261398195619510553542984454546904527224382514522048588220288916583441397027857365677761255782100240194274705045055645943943488291602823431286048166569098023865130018768413782133415881439374881037037283059611527744416600473669213447638655207541365972699337550410807818658787598769671860935143461824770460050300405988084399784635463835971585510650037137084855627751635833121129035222645456258828906233933003704801294026488378398695496052646511509779631482762982550991100263531277485719297422572839846728435222327497166246724720852557194646451495558301878027864107108721545383014014735006719455604591123759196904338532824875441176998539251196847571059240069884055722638939625770403743466008411541168945073818558660957733912373234624880791513537507299147340429562995042753263536432461727784445568141526903911629163490460040624941646178043370448450006265412070939231082048183927344611891498016731172068674012269792468867172021588052816776509801657398398185751926866276035756723398313557642968788092108490752109398620749485071140802478226929686173393690561595516091337070266247591800741104475132388321302242011327034664230142068444312096162668195972762036144665197218272323698255066234721836769311097997861084226647090724806258557869421070058320908606904732830797035323749754117905023498465032756851120890631224209964143890074542951906238957988528117153240297862247425367218866840134687130770548986529588867503183541814540197125999088657952433958848578594907032019130235072155360413434470290900190935571404822959628344652615602075081271168273759156586818418179396771992441309777768282900579262595651660335990333806682318942067668460680716958038060494189835605996308719149374598331424551590631974241933344956454771784155013215143279433848941735567015201102598929438439225525169450061989482477090243342040571169392404262355980293204807986920790262798306289130536115805832704068187630396655660886651913351902406745795271707760966120083001068764622566382445018005379163547691403472304298152911003434783443896236773173256037243737920094199793237325756179743566020397773424301875350840466502908290469372256545828831957483931196697672655238247479841221205052681453466498077310098557923896905591118068773596607985082700330073303488592362032974766040004439229874086027466394978463616314842350497197508833888292540159640945273776634427955352039705258602991709824903084687324010946722541946127823742651638613371301161318567516211878336606988972307183922634624856970241568143159781257832613576717414133959917591390764742926335661283434321407735891520445563244480865475616273502695123466606305679935565661471380462200837143684105673279660152868626563341350745021864270111536369608336419251221265249900801683961408130300651283812891527487552889201183824636938511633340432495616131093921626768527367072554234460312262224549758386166189600650627096948528491987551875337683718687184921735655971963752700293295319456236370202061901270200980297969943147754475340193557432043159391286997032959582625897428211076170764071980082893918279587400585554143027734375545349298528565467404743306361743185973671813903757891013275523964070938030429985181390310991225073100039237129506074545895844927592574454082011799945300645453203917380852975859754064721611046255572304212543898601278958026475809528433837334352000966589309748404562578204841672391453321183123992055120600168124629445848490415553169841687797349722292159061112134467008157441924013834828839837087537108193076533145060255062057442016105584326234121625302425548743207346550995715647713361455463234686759804408157759863133816506601218884216166434653229651734980850897031918493755370348111522600690015188024074086582984516886214019465558761142245211260919435751016383248783656202333656851398168789464437020772384229724705632329517307241456622613213415807239610749259156967350987223921043440579165671217957082001270348758761010127334019406512926154016992484359307121833740363711594545180096644144594307165728323894405196574305716641837627448677586757365866334557097113792300944572278409300589140431825418857206056609761773729621773526826904766110615004865383791724936182355621369316445746044106131278531503599798182473745241398212218963553726236275793698099226550387801210508693744444201623622131637096732002150295336081158189573357512192487322517693378217767417845823281794740275222221043760090018396476664718699874230539182631114092704099577896961162976479577890731198588570857465577397625005621682430568295110453232012277720282385947092119876230215798398616105737168689585102693789219280976734233846090937264388333250977725811239022110839546765273686907592888592651053071141653922016713122717802399478205375805907155690706199017652618733297585463040422090272146098407611442766969247369204361845837764359332418577864560548949562769855081606867357591107003753340223043831627551780691320893438475784482315386230393434253721067001654522525704685120001017837011214939571145753747581855894336807295576925788838286018937791863829970035244445755251978668349720809142866609188990779340642192754498065325975559898408944463289790241355083147963970258243637332106174984736806582647358661022836233980623145430820029324326196976291448095664101407823467499098937870946651026488325589901511620255903301732244061017464601694563852138159262297068644883331899472242280883861452286377487177241716287263472546132802830706784554760665335884769247031829905530229279862291981875645045425942000930089155673949113871538442579427975628512084652346116978059245928154495692690520331031025611547233351050718766302089183058822275183729802377064270097577037495233286253219592002377703534739882797367059986708789722249881600259455409193594355113217159418578271000772958866679917990305105165022292658070792629604318745543043885825970552247206254638116842642758794342817999326890729641126886298000392690286585780560524808383582001382080313559917903298539724108806256571423744572496370599883900222490535657235407932980948304544426049082839019973119421715710055054234020092297488597753814088824585164510625521931305460222171576003407065550631608788524562868328974968859965095843019987077241633377771672090123029081271485472463346526897494356638443511288641560873062370251088410148653062362340056725591730339284006632984239193438077333473150373426077437655895138584257542704537123611392559960521515195723585876160880716996096709518877814952365433936680456546014644089734136304879919954704115786945709570609132437929616927241538716367627746960892340835647777837059313976519847047442228442233057710448848286342177833317250057970270570061614167183197577281182631489517455996027309548591289405932415527330684068419303276531231410853362598505946438450653075332261376356739452948139519459639175262024403199377195733879689969218504190218042467988497820398211954602862727255486195750584304512479969434125437084809270222425901191000361295988990208970111594150346525126165047816862527163698519547692991897055780580866137621228275069694335087455271602654436850233655396881437073632332120394185248752028271384093258524659179611803540040754183279398081991691754679669757329174074854736654373385092278432597131302278677006956043708008161992393442462517869368303091787743339058246963378703687148925155888811546844912248557310556500581380089762127164291822490616699185159790532586296063952307101464691602763858937519210572517820099391078459213711773325381875967719796309067303727840360587534570664032653809887621784267573796826538992592954481988692437698393187254089058225834791050640953711777974207959406185572027293809371119971972610879148465119368223549574825662199853136205439872128792883077958369746448346112184201267637769422626984543608665470734015515145712893914118849040798248709980175849864631557649085393582395040402636854885295119692905610334492947727935786654650705575074095393911421296424753650214403568383626718834607313685789619466457592236959879742092714597966341136485190229952675834969666914087629223266947264640543124950795183551369217565374284516500415447580380113585423286468406066052107070316053133315427708956738314208864090209371722188085473132412900543086911274216561600641428840025806922015855438582070506160476194010058095542546190876341435492615581957244053156343267274105807050007905633182628361870887116512388264391274758657316143515606131464730907907040540681405193853384166203618890003479288146780472598090620775959380967551760869143627964827903975785746709116473792009695474516171682147469901356568541265407890615059030964525398096247298377682044186678199121863176781544570294713118976559744885075254437838774062222683176976398015875542790507383187761472854405931267580718164425992462440211489047777960986153864193702565791924324135072707988415905903811731169292351066505670570672961398195007508324802320141611568177837169228123702247691511744388723791268151373726630329700785438279480177410154096382797185081644194598358009019583357841749152162010609860597059358680847477134852943809391307505984326686513483434386722463095987009479567780549396062412105743577251699773950118553901686888272485136050070217841243339716897480012147877958776556586595919638556858173551685317793502789090160717616922545707335164579396605276289373994002939853461713516628270419329101911389843694293316851413145033967744719693802238104042989051350062942958826656804339230332187375247104404987402702966804147665863868872452847946663978220835679918717270444656113788244578656847840315251686801086702896235989718478342098916420503422102399254444887184100816273431141915245013481944619109187902031534291043422466865279064279065218711887797497219561465486939024676087331379362540989640481418850559567026771369391166980980219379286567972337011931871979835243770918351715633799275979611813996097363761693225732712204673151061181254364471511612505700131095836362380908420778148172322636754536986553337081382488467274704218305109201243969727373981485082789134421383919077351578173793828670277511503628701976492316654202543426222418377800822782750310833762543968728485442687953327570994997478808488598258624732987336287348959559765928516673327161026058989860466313212427439624260445079567382700425963871858435214659162330230430624447955149936042101552795248867659461014799730869862662908690074806921965999652110492367810387095499229389037812331639751097428488355908715663213692002428294469232904135071578271914787537209099899728590830181339869267799005694727996399490992654093714944472764512523475370094062685633420163426325261479230135065094797164241645792018816664926264259006345368564744940659588609024348779921610670938067968957187884279886108967989803298709973719390986992172095421459625098096738415846121835698340953299306238652124082636272911930627168322895745528327297175749341794947482697175069690344374628300865443354883324298688139263261930528810890549665430664156241905798226607629516536935038347021929524890908658339191749753686409203407244428399503289918204466388692142080760016885995276429306935072671663002467601741306970939772749768901185671463457697646164343724422639943475630138272260443163255672393350753037403757721681588899261641380707790896192294687283752738865825406718899368744987851435531791308544108154085394146003114381978691589319814088539250324716739234549428437225441711874545011051930595896524782460921362519612668349565791592705503812587267718943135592874794518057683657752813608229680458235867831966349958422733626092229439519554579418678733060251424784276267559959959771534928689019733804985643665061458962818198230555361215044330477805648977034438121507075189592724632532045061792119673359900131423398979435212357100877187863866681677067613266571543179085843866131474805896367406005864149869861999885805328160128138966974284224217593623765611779953316356200769326362748415602220856428709245306571384109011405516814273074287667357424608245713260978754270583265128705488962668818928340010217428506407932960849459641968669927258916129097042806403344149180456951801462442496149103069507689701389919996628692276307441457425399430097919925110508023798860390959131512400058240606790256470666692021067219759365540541333405322521583677756268333817527055787236891047292701192862902074042821057698361954499631919396790891432083641590488554200067305862259786205818055407881036847621279214043798064529925868284991692583345689141965646215703970379683042553205265643845383641099744500200073155622664535443746846513766759624378617687628292718836700287257817702916709558289861619442613358741780134132320141060866503825852443536141594301860486967387305200621182214082454992260605695108350887096177938911069984757191379288422909077009086455556289144538099629360920242168023861306516854028667012102638850873899631861611413696746535300973825302564047101967584787569659647645732935752496778760316269780607263180141442302139766349316515191978450500309605293872930852884975525927177408123802793514581689273207801972646196012992387199917986718937854947913350420590289190450713577276990376524459000522976807553801911595247741384890009382391729785328011781822033842483887914102005207814777834266090493294371136780096505306984196136518736039693160362444976178232336779889954222248977373673800819036231014424378592118525573480824446066530790407448202216504744902876672423176710950491741366403825962053221714830986306769563421062537873417422825298265423272167848166061480819691434679540694524793629587066357186073995578089817736902797109241225303371370645225213072847262798391799435952156999957631773788491135341706903161776719373214132432972350806779711937216212861842470849945533119070206650800587287631761896621445352931868697775990125623281428824833737852327030604830938440644799639397282341589195151258120875882000424895464522696905062533362436779325932711782750794076039734227742722511094071395304861445544249215073951913619097634119625251740084825213148388457728532833309418915319429173914991906557312664949322488126188761336155281756683815089302032450509903023728447866654909812197918003806602002079691883633478130054288431907243725347291720833677495979809341741212831693067283471977906832065461643701171018607571901365690945510072234940447057916388351054653161567573352480390151607146854466469417846004555226709642829192510618698947191125827082173559689999996650477346181009298248415549292660763726311572082566299707012646286728784811582345741530576837518152450993503372630862071729318666448517916691696403806522176218049276989143746418622032823856719824515961941665744883800477002683757481239258205887719102475650022243232356769191332620282086398512552568349171391022699370842963579052341940180913415486160864480402910226903804582860729374094741446915679613551652326076570841047637763447183659907296974026343807883721418078670912392380731498434076490012704279063089566303171755264781282637049167813561203294584201943315780213174988069738498477654667222420299645555178547282616865196999910172589189474543441254475592063323782770604969171600754327285592611835111736855340932258059809776441267866366451781734974017118506919955084206461324043062280187583688793569805335311377445994093997215855980979051927716594271691816426684694854816080549696542469257744104341760759513660138037839488639116669565121466296452924629013903644532520114943899001920791827323154132653559343955040636638801430570986017658887565951347198047554329426073446015575419759782725774048344165321815608103690719486439669928761419644757428502552749303737981009943759898579018291860666466381806528145678250835223864216145119555498765423820511316107729191566681482293875169907247516717668268340387994283244439097234156104773100826744248684691642808091923026610894547947020668716324706606591494416293697065834249179421276481160061126567209698698622739738499217710438768824245571642971080203109120465126060090929614112938582275908305231895482117230719939654001491698020850591167640107174294176050266509341411104011560584353329266231830919820531120429995516975295052528053343788809641370244354037114946679685812404003855115804313563195344233707151595333582174793324052195562845878232317128759669345123766142166889380999359190064709401367211087823976720660462650532288157094499848148227842497236492058096423977377441995983338326349331325025413126206629954511996014968889094139811615783117471137229622386298572267421861608972185574504617622563945282945083474450490899393200245892227414255514510122203344170873291277636147528383077129611916249343731605322167688719728801434510415942293236626321154713955863956274352956096234527367998145505823196824234981244273233716743496700524952891914384851664580060472171675955375295603635167822177345489773280733936165784900723125413284829742677749576501597161093181392822135220366872870495194250832045463535155448187129590681584337032029303973172928380726853619061468560987930192418395605575206909631889890710479193620583900301576694091905525280947507802282750199778116355492860692597823982716672148306013779964299263213039684279205884999350420737205178901592546984864119435510981690607554436777250286730435176534241405969210404799643823422989874201231623032023722175165967098147949828261473589167950065100217677657458879132907060957210040868437411057460534685229761638716765402137535731337555284677811767230517400540328196171759734941528070502243191891828489630233022335296067307602517945954202689370887586924836374616576717333936969668866528193171205848177085419330986768447998400900705277029726292448683098225577109732950375830591203963653441109587977416842012063175395044089808971660637203965575128374855483788445905777123084553729725870734360198523362843824677835042462047111369732130691630922907196024577055500393872710934280316247303891725106458154845633061417964990188858207167772972724136026998691394597852339628802186592773047176997099941581133474494832031634501613896191077898115647410721328041214766097929127205312780012358249613869477032759893683646267233206470177139727050309616131229871986567297301558102841588359842296500428033098386279780245354771951255596389454623603275561987848902265860910737411581674387816017303406846795367908513211959642387721688428487854441830252138771086954793041286705835133933292643664696231123533269726227386524613445205197760065988844407121743039593858717349793996054400706395795583813884550853249648498834066374790257938785696134706009126975090434078952501086671818692066060391271248493082133158890966764382234321818490809229433969100257070506211964297878446103392122844702845172575204977267712079256611170337665343584091813044584612947587079379109931412710748784185949937152835723305068489751832884259858554327254259793389819475010782335062446779313090067067053179043607030347688714333846818472879400587901365594795324426038132931453283687609598018633233052655832432888967010637526724260868266149024310132657257049733766158104133271203601665332785494471314048577765712197871325505357643793925895585350813258742571392157383925576838068096263963332211299640864416192560245307468279644220509022825251110454437119467038503869287062351116135979693861039501445205121128116202602677586736407383332245415117122091593284228336772429522362303359634880662240459425548980428543425840843908259207233605077534525767851070226466035291379406626255201081707082903730951768335558790113746371993489117176936973353339115294506476172843455032268267033523041029877305051513321093202152636870739368529316347280491288938823563828186972073343852951856931359335456961596255136780109716083155790581787713138637059531033257710831843141522394683634523926981818795918934745291635628875121471964621327417369286216543553200872721632914469575577922561966570561934796295241370560857655635335763233291496576326027686504521696441165509609681608432919312847196966983160102145939372383768158592996912865276466291350384092984568436975249856310828093716808816533529776974183178564063263432033882740037307299271348269407442951334572281284377032162489865726315277180193995492504468295416546554871296463131765751220180160376580315024032480031712239512968792837089027914160402840910241982885516696417213807124762037813788066578576973308514430537996679594531808427763574466566878682855633888316599772008080408737599676873140351018252858774230287119852430228521945538343134198929286637589437570727637253890883721695586265245378749497489850669215320145068165963160399944907611575481870633366805949462653526555104180311724615074631644106304023008577943952445339354234644926188536657802784473425044805421086685178619578758052961480215163745834232783687185578023783722611770690336046833794990224836126590795598811404343156485386739278093416220153470106315565483860296617304445328997187482607019910057089280769383022707183052904144156381629105146468749772610943664983521118009615351010618182762673359653456683537823173228344385395628812051089931444268954102334537674543106607515347358290550517477775476563377495906348002832187578846130485332082059191521963762702190135331045108964782328700508260100029576145688933930052256803692027374698057447368674326351661336197707622875800292259813617129818227390273118128682126800942163817899130286964221235044468848030755467522598385140413652323023838031243097771398119598777833004174625816848361865448737141020799376718126427630934385170999767721942787529495696772661046522019146046726107152408780329759740817001457208956780089748659659016718182927218475705336404892200148936657208609830536417075453576354146945014999378535727653174985903902738551745075925477174930958535299486853974151381859882320793614492348415257474433601874438380697376368780892152709990235876111932515037857093114312676654342033818920839942792679846032568977464000921416568867952857962171055622470675956260587162263220226983425230163306025958930367954228644687605671967272446145688825752578873810200870772611506113181103489289724552086034560609784999129761360686960846389922184502248395259857865529839358986831297240390648350592154385926372143548527513058902920226571984177888809389248162694013532481821719149500980129279955852663053950473199717017079236780480160221722186780671948014628834814532290493077922340958823778424545011733104177413456234488301064163182773712812369523512092780991744067742896755788338880308816994481121813142749111731131215533620733403019170137524013831377881133161978901053200729019461980736578565870519735117396051486944185923361510934423766679375136614579561993832203161351063670874632330394033482805150027838006189494683249158637735443852535885597343889717995152457815783502840447713648836733387622590542023973313575305718402676755201349929222734606312238114291529067285447365163821217593565389373926264553565801914527174394055788491002396198898663868882070912783548835211508045298187714171517070551100349458022588454500396206343034467358379233040930752392851874808135353174465470344851352832133849617930811298428610296773786180078118386397617784014941714054796446290562046400455643715904809052136473982033316195492637500610084729917389788298867747408595101706537318409563867709789075383602073340815607971488499265861862150445777063574051511396293672170426275763336016543668165342394055814495269529590519492943740254867971928534168250841508696538612941475213742926064837055933608746885195794491658401285604112850286356138862442271023492126815631304949725394621550919534774172584315007674757867655912563345282563501595122247343252616391242903183028266597687979244471898760018939262700645964312757872238944407627825594294626954503482583745103231584661449974998815848814804771765284675567772154286728904109769714633542580994363757121696922946207965456052252288087068038424063419473299858957429369971657152910421307212787267555896444787703910810449364699533407542219972505316724909887297094267242571778707804862480144674157170953099764480378961325900745302641505985115680624490351961629508962384539662354588743701237061929885139842496198209759096196772596230375182207863659413260409934642302406684333531632268141318590314730451164686104140826360027465817523647093768317416028478476529927349832695450875722672903826899398789053223204142313269524949955583205421815793851216429063382931903518647749386635570917939721111823660452386755933778058221645168866791362213467644826752074699750848191262083507419309127874599904737953514666439521990496939364851384527615693249208564228309759895910999587931886134731956676502722005850589531252259003104460995195214560630538367505636196422009383025366084994255781603669177241514665230640848347367050410170743849409598826607407589252122076442696427386175912435858270179735409533422903277071117277493962104013132987373527505993333652689719044175429727655517456744127846055112189389226909426371996538506763972879645631582130153363355436292271264513169925401796313417331833780539160913136538166236565398286154594001588195351724758592044977232944026337833485581751167714498665809454114583468001700759421354889474963539031187867801973592527182356202960145029873082378717786570719846280406553327721366274986916339338892839305408102214446363273779639865243533201493430756124163095335014704927864323391429913143406932041670552409838892368533193326965162362336498073119482412162247964221138758950159587174362976776804660730599094692478450228467280217536594214064583419024012685813549808250656841920786982025387634894543703966922918903316147928186834891873648440781276325519577364050291548048651209851892129990707561193346496958551590556405548875722167365734919279280950834834373971699045241273988629252258268997490859225082216576615810779104018135784774609066272938544104075096584280241907385859590932971301723198874271538025766621074125807722857177254326846738659395697612416806818166310673344299092362392514396983256761076291961223314736965078978391269367746096128792627506864698733035248491245260370836876703468497511894513865816303094753168782018298489102935629406182690815173585233764785867856094210047879199620715725821287121807376195515208517819129203482836356208559794984657572305030727678309576924530932299283592493114006319674448352372159202093147832368972580866967511747748261393144393404247901753781652160152050353072717938088646455074844725604885152574202506894588611893197052724809932047131184498245858552886426904642679363994607169492958222507608653570293587434818491371689462016694883343654718666219005388592463928610984830024274629975585093967373026531270204211347069264970935586200571034576195793306079933569089287031751852328847135013763960465508552834576499761176450406052832137648970240782087965957658406312845792516978263034050179985456995467669502317595780712128608827931716674057827606500083199528446198721421958990127908874419207884061534950472147211008165271714629128170908707954607009430381155057091806085176802174455747778761665815652938535194327961669864057470800869082573025864802015286435800391051206894736781380772265528769547140317735383706825979164963398149799145955187055185764650860265708468654938840237302207323170442190472811246377262929795382025463763823467514725639944472675297122228480307450925151118421501470595022108320426498149867918915544519925578355517667949028367944853617307010381679454918043047536753658597671238484778232637257991897688534766652538499633289390691376090962963057417087427069966467447159916865392214804294007530757513591748856872889694192643255981531395390859749158358207366463094895210167598161778872982586391504631969949177961086079520881000719213949053343702588112868935601571020452973913953105309752912388487066906320506310253351517393821640011990008507569317893434664524682649532234180204451625799908924336396430863523353103064344781970541471863263388586404641190134818737337443631824377866233671364684060284528713759813806942258771549645432234897952017973889465331191106802020717382675857134543445749084181409237312560963137865748059411720846097564021343738012864907449705861689205287653530519644646659449788766828736852408545240451205478212979048666257929379558871298719216603318274799743152682218676699260692359217695255569293637038352177902469502857803536479456220799367437111078011950818629868257035917670394701249805560603680253057614282115632171871098571651550951264175157996200704649290041507168628590556097599658511637074368517538797378330521808525148612253849621508312590437646662506673410269776729547630155794854019421534223427248335955871146137581078543719811659681182963509333586552766436666828297715059178632309155431844419272265683774881208477433029278090838072347612911443875358170123787109462325914734610011622112948926176967734834910024272240485000044161999774543610016865407800627492887653587653197429637438993789080275961298949416694872295470456420636353032732506007371540608608733697381474538725327862419910420547027675702755038235374129518794843733721670876881530424142806592593375562010260557560516759584238728177501471508859709761774025056936438859833845624000477378176123484821063824583342551537578813245312364582226678916926451347772379179594088631444816821637686558120761034748775973109240519667978306174565498351624200057704756747745590506107917945842580552777611265035020851692490191862621027920235183536820975427341647339935755492260047692537527487369748330176546216418619743496432021178278966227721430174860692400956212272784948978423115478601121480862797855287269764432331573020474465723522949029765432702779662963881197833022959555864717720959557455080893444521639330043287925385381773379474736455786414406869437465712383641026930111876998987491282311519268904000265014590947573610288040191464509201525139882464321765220147584215984610822842547624967493139340877590646268693481712367832408652579414813214324117182171028987482502821532155078906919673648549431931012005693773084068817924847893950737780878381371109315641909100607108211952281708910082360018928856469389922070688770759950778703726860498553962050900591494419911694962829803866760889083135296703947731316506559774658371190047860567381074657766980242330941479157132391005073832513128074006266910455677509409527384450290583313882644928259541310013389928537581418668364751404185432784996086323711835599636856095375812727740346764938690170493164902186914621732825913369204666789449772635597521509374335919282561390459125861684094136190196469843234709190713330265606462593696060264795514511870883665350296984290461477234556810262965203091199118510109321192247638070410008685136513312016786380516096791758419809288418864301037460679425061607295083450039996670751864918219311401338623850572167735865915774097742557843542605475658737328006738211045923888597190765311339473951933521680050386916217112632206593269800914677554149930684344279360939968436412806374118748060937192818761380859994029038059234712422123497109493432620612456593149661318701688599448520820336494345854322787233396934540294871546269434279416622282458604122385713783399573372074385558806711044287599757675028029953776339857989802647341858725657765451867391901230974865709523101345787608618054927758373522494494527325449097406866034837880283937778927454733768841264590236417286749376868696235597677367686052477271724821899898841501602514876403940161904475087742342478742020237190744815716309617310159018201285494877088701114087951246755331850915080427289996495918386230435637452313339938186093179666575348557782231428987109167918474439335596903413388446667511247501821297279843576602546602244113522969661790841770958280138142660887436348799047460193455062120813517460664508108098961064469153961262171569232286813735286792864077468775561128397334842146268905620361364196840638638585138698440339193304987018556259314174184317174595329172698481184041056140343817541877916770544959419787544101913597335717206890620399227222595218964819562675678182368411506791236817672503878638927623366747729969315506532159542565926702617659056194065478658142591235531709105198986097919778216260601794636622071848751355655792373961296871952884115698290356766391938074992346274854679041906405868190928807816036701606222347665192917743734784809159083305320096801580772059429976623480614057174228491300056111963913848081960861027426563509765574050922308306424505917645575166959195826591907717738434177570213676084777342279574675605822603996481446450320647809362847535722780829786006029419060163121779078683223078963900077828671713162066756126121343520460064655764532152645939502172099674078195425346979452172047358064542269488609192952660895986003181534252403856285077015388960346164089595619597278710046053396707864086350546785624363765362534086923678852253735633739546863118770013996492284538128664709980311052078420542931960487023619598943892951828695798649814365292023783451178755620679677770492823926609969877019914406581591962923146885593681820804802114355608243744980642388753718914010777713779126953108856682329120713040903640933546504056673048802316887149695296732903531582797321313279817159705350843603585342534666699469736757118652150793987976768201359429938779299452663759688370955386019102544725541778283393797644732304976671983331669438961306335168294630262776117940732905488786587316651716208240220511307625624777842202940555310463023911242560817304912379826941182789092688337467927247139532391034071034736263620444567789023801692934180179714295097931368322424988281283692734370420457135849978204281124124105925944908079242243748703002009113549528929043572178492013392841862471055778244161324831981284041682750232178243351142494796939234287478650188942780006392912084352957134779356598114679018696478699056524038027452614703172514664151351311835343379912829423693792324826402947999658403847251872952784953732058625506625426977284784989673304919424769839461343433141771767009843842265453466096571727359888729989666793557096082347226268016286742435759950029382948019863211639786459819282541986907377927801297529052766551902307442398222581049785318538910074555633826460804719134452717969323229295977273466132353695002413321957971843406380673878640372977587601504967343443765162153525092852226641670671270818128739778909900807399816995959896106068784160045198546848364580846457443544885741446973735898985340686632767960637119305658672605439242059329858607439137268426528592382064856244926114544363536738268582713504217604636302938817026498570066781681718865349333699745656551511800727462765646698830274678333499263594150104713180654444047993105771550844263866435345526027711301934149752889097579496782599681261896443618684617719269445555203617474568196503128669111796998989691374504205988489015959293114915944727480179210033344631174071766957325456335317604851198359700380228178984691503406104098926213155073029074779639165746606779668826194545948987750749826844386954922317987958481634447636071036048360568549219075424921527028643548251265462913087239048386828370117334576301881732607156133767916578483456603018757738849934006191305709365288461007835817455780878519635953527299025544260914108186196688315752361330813095714448053333890194893776169993858309651771841173644342345125693464353483796809607992671447296093415266456000590978429724528489231558828386969927460224256725422049038288584897913828768033146045909652808443503124768916330275687513308236879450107510632324618264893228857625728942148113221299091018734735480160141465137869106064816511139557051693581424187097132440594599788147624951521680913408339493550771884514273188149715041104159822725542979451415971182066043112938458375986069696314061047893372112156388287410869313373319349491708843281030297496751284939745327377047598125349273969992856079488784132113903741409343076650279541947756227493036983727475114402363417697491346142618796946021772548842490868620450041814836377473537134693094253836604786241175387282294178043483480804728971166404664866944258185293938571917982101648171700476633402280952860059919288073916251718357496497696533840573624253297996497228357572404488872227259355427037670487299643433206357437366777910758520481797817954849987176334514421878483130082246740112394098449649599179440687342707978192174073547369194373546171086583206914040283151125357068451513455394207391984204156591523478916661741973784695212554942039028394512785239003643191756019679978770604363399827567856738587333147849844008599730796418583784673390608678393970203234992744426856628675150130119786676017852028646990144772296017215495057827257214606508000486760043176684880430020450773800362296144141671472086116305576365956398376585455449622743051560772376951540555430947169724018962035386668687959153175254066995157525139775649087655489740190582976252054437074888999052410114799725949609448049302050956620154399524245184448486696457623626016412825186068401044788703195180178438592336063943397118744685331414025553551016762845025140887062009292460017969964128797511042645611317330479506286199915464137616621369547763427781832767551424980382403080401504574275516888092865013000940212968635194092207770914223251684322839704631657012214593735501997929144695780321592184149836179528255040886045149190411074106385487624068611155763995232368978600158139147944764638190037172557961347228424556664172253360905003443878685248793205354351611301945658631905750811817550033728647262990473928828913084289656301265497848385376589039559662861604157422655688668323372016875430634491718086373198791090512201175943425435491764661706871484380132627476785410360600386721577437374707460357156171706798361020152448201468115864539287436855372142413341542232789174571306257714772566303720388510348953714439215866421610029447314074573967648825148360076593203799900700216075363819024531448500872657626834000712197586717676789566184657199239440089770184334386338530549511152085003028461881179632159965570843292131614549118440634267700626740187798522106534646885511037998605313726980684782784136051245083902429288462998072339687032395451659876478897489641845872776073038248877874896324310813208563946821604732039665207393814428540454632116217389153947697990305044815953248321814352695919453530259370720221785034621778618295163402290803474351606612007138435113376330357308324691309114342197790839581868307742860920894218733376228447006198498572047319628495536361313830373501193723488915297776400465963953898286968590611017193789906576670730025575432618559942921586334513802700258164506564710501769096287287477405250326137452300016737855046390172155919543193651017832143139544067507139692882080055084708575852665564953891411740161222436644192204591782872147451145159965080022979114965254544843543766009480226955183455911482544343803538250544320919642950938046577551572139319478855609746080752358805425322749693274674928032462854928915762141768952192913743872616852664762870584664893856146760270723257103231951310556962368146629814480420365075726416254947286434324630912853152401982487538706244631261911449526293868926000162340189597879551341389205562239308431403495385767125317627094771461774006622562520143548704202719724096485662808436134082016044903858043792210958737851543894516845191138948608473211745679833621772917149567709141549246963899918892362865786638236925496024097870386219693835291548674227609865032234924684339071281955825611229747290713537318626551398930324077287604490887452513986718107012044228728511579293237054692144708487077393678079540207984228453325354115213244402174856374982137624904598109131210699527134015604987991938267883298503651851510764835757796014520200507078870716425826054526017022230842764788110196130012973314509484859587858528517969748099446480863998216909406293300293930017301893984595315312810074664142809159736822894978688539325738519885588609408490402882505654565266908975875862202084979370139155999403856525399357888497112851482430062499133469050128859182785153348953881790025728357522557321379610317103272853645614445899506329545714732990658288862021468011463059892625419004154248681549063533684595156966493349463666736772920410147111921417079828428719787266112715057798176129010334138274092466287825629433126578625983608731998335753732208675896324815252603825280621272906467417073892875537228987510651256192235950603589095628298134156487705785709094035240059816092504518682215764355339036631400617866373387155491745215200349351794540356752063548765285538781817000675005618676895107621610996983846366538423267480155187103377365232625294479232084886920070777983989793584327975416923121965480494658337380593599776554753725089354967337061910465505335977658124641203303547590685137924708799123600775028044011834740185923810256074916722064882617265552299019839142687478181566621519669785973145086724881341995285062099455776275829774860642158882268283363359922775758283289283577527944348388522733494846669842799762620637169654100180968067631792266816930080686682047978600234213533301071871657946925563707562619452989980324246979769550918024582375710802401970290349369460973964795775097584901485287670845452864558234746864800641905073047138427034849240371170580358749126954283341866916480728017021358832376150079136504458684454599118298957542450919947253764129966866426999247439297968806682291269279361021076442188304165436794075557932290186088612034389560367786456972903372377379615473283520974244927784058321011069702432556367101491760001511640334799265582721540716677986787590669600677851278929523053985701686024417772663873235256516024067884122954164362789344042925921789589586454538709764755724127720378956275799619244112021464457281246725812413516047585297774262271331312630488898649436608246155342706377126114622493134404785611345041889488515870462704062623738706581375342812688280968505127410951790439474317660033039205479586551766387339844054593853383498233165820431656056410186640986159180531195576554234090830080790594854367848018327116955307619808978645014921489963688728901723676319578905508197038243441585122809129727654987428890755814217652130036488530340047393216258160531849848012220640201381663758261994261025774322502898001773814292840831305830115956400316850250992046931686014126330473586066425684007409444308055738440401044409335785632030658475416138293824433847151951972447157286577907117999040198669965837365420517409488441097835833093757380127170642434843474891345244485431443854489177925547699200609756685864670605740231396319397921131983266686615880161900708112302169658607943983498760202711482605319795799546120478596471386360031725760451197209275174612132098815741485175521814156344402200578556096868880653418387290600754289111501588473582849217326154106244805003801198711233532048178807747076589939688037683412048194995967650606641962246128240837090066507718228888276052230863625829307973621814877913561985708626463007628726773540470840672462665878467973798050251414388155116250422164831856240512141143514923825037423368914507287768905751363348066839174747394353997290317015281683254268159796940529274258259778574061646584558754835022603053030098400657915003434512487446233384893601770047687274562191198962709048881780667172610660485044516748572911429647956138521829997442338696051462253559779565751672344416726970893030091276847414127897094649199544670616500102671141208139202358273665390270738190547557358093855456306414278027550776444450428879232776506995626551078728293505984065677574679652745706974145480158034058503962480960772128036712541120193157165443656371362521969475312716102645711337934209777429840496411914544606788661605367399547880760438461730589769491110816305631121900472610013673104122146996969637372167839418286811104827732540633056895858204897820466405555139339569803328523040974602437347128328949381360164265033096362017503638497354547742909846545929916961177375233719986860396781837765148739393852164796548631008017726180151104948530672425242684159802190036854210729050123967595511880461751076727818259049159204593327745977473170050000906116908201220443153257714423972217634630123259960611488731231460122112094219510254132111333204852420235018875578656162437869458880615955654956902701659768073800031124851579915998718297120702389008690898775542514163219709718203896966235316894916865889489191076266319772766015567971357806946690559120099452924381402331343640592121709542186879241783284428990104180759264690937815577770025656664988560493192225009804366744057751289718880244901752661472773672910171514757920027758094115149953596496095563705423288886797293652500746761763405215732417138213389983771393913551992795191397857368967224747709032256282970722286223680669371501829624528685244423760727960423280879661560248647249482421437922763459742331757171775771783125261559668403912679615449536045605181773780712010731690020482762607190547490468753061404863435074680433633495033942150262756822788661235808785823670430052647377938836384773402603817417838684057778723809863199946907759303291160819927597843671953377270621864710029650402613708026130606234363360178211736353267485612729485729284941295926143020608037972195932672208382577825025929867370143083934555197688397869603888430341192099946590455726412754430501522339800955621459003241698906341872395166310998456827216638922891685347261047441556976004326041298202368910439019010510561124462913503115740526203273714603001961396616762278942165353912254055528484726129863739135897822046547967260315881344489060879174787373940876291962420990219848605663362268944551406102272672839793010424109754562657433623524364766142302403336306783142956691856610033861722096946454246515910879957285846872876009852087464390761406927676433349285951062470664575763882896149549926296348054304008953613051048145190118405031621649486393376160423007199143752406844485388019068263810922487257758349704831963418247122894981070405324837642916135376668992445722917855232706116391841231450468387821877233030028206584418862017263654131868206940398107917340371284810440059785756715638581480641066803011775050485116031144131285770523451279351304590321099865492198427291023908031542622635851868055926360433679093042959014304757948261724577250187260193437022221466560467995949842746531867115886447690294461406315760029462337834623980430682699684884375906360969618849709824439049231501703796996050312697675801985387229259351021292941867951256595501626791013336581363936614969183754621985301001105721235106430358963812386527331604609101643294186103277884492953330728569027613278080017815773888388776227500411287389565602857489359945916253093548447407240577034626276740611536301855068040790326024701756729155255978381587625382807111217364217677452047062892085265934453615000649200948856706152891415687857022269703392765752199466232684351323788795637542530733387638500502187204022288077824249746601133187057612023913454263957905408619160650267974541709418433273970603697776405794945278616052011242671321836580657052393054388708104836060044367697082126610305236766811350108230518721684361598254270778604816997252322442743648422396727538275276430904924051557844326869028450993746204519007296647449864374242367275881198181071781400160798838252672304160695203853561445543421220655959380157728522165828637856231860156185427379433903950435204068464700566043931467607217041681800068622893347930094004531678273216993889465749237610636608208444692426363079745418394287055399579839619902131097204293319646764691198841271720812071654699317911310852706855360613307861726413939635352705951244059884038794951944744170521098731252206318015859876497880408281637635579023063161550527789992359992818181401620005299485816388725433451599602911549910787979976159591196671720077921789952294431287993173039613068141062210627455386392178556682098554398572552559725733664350746498154527482979226594155007677499963300145521710421829355370935923235379057102359749138949608852515888232279045117682941374239650257204413453256999724664248845355246942884521981581108961451788749880440577471417640690570847454315780840196955380097239302707130211815504434741133946103418403537874529090447073329262712776687620861734860799587002958689851980638709851587658964469279971277934017351656591696362194009792692356808559664107271359661725634368457839732459018523875925701112851804044781186723892557083268036124463988175634296194919658170323267930153592078964793469414469585020594243121676979712042312998743259073326473937822535545935665101752533263295293802218997929556320753402954852426409446669709185944798339480223727600841304419998355293743826742550402074752602112638460606693044327371438659717956457206319338397376707429170295390237989344171703776228374923855559952534560987268217778777551260164399538647460105492608022570304837515991577960340273661341697661288296354561496079243975164271760396105337035139066085097978702288383313959902377538109909385653618507883581976677012000957115893980269832991069110558078573811172522304130503331724661497810460737427095183307675716296413775908236041247454924141591969546937458210190857588219308538223394743908569633720265912946224121330220629837189357461058403062883646619052960047361926220131991352502832585913050329542978811666039496419310010151356592609360794210223754154720707374194953340469792440149748974892721533860413336707134886154306294376348000016862134849160426917448323444302849728556399951409952644612894914152882409504972194808279501009051441654460045479399313812186440424840364639215704173334349302121036601259668045415493505907352268359339201822281043720691614806337900290124494168715150754338223781847445940039158843501917807327649115262234993534661699436291914100007712067575392942946983890158063297388554423273478138295379363362944831287982254428391700948254323577243480218317294242292789423290263494379491389697324398794051967331188836054196614044243635407907511121002730556865121511928351879119494625768310466156513537798968498667089043388422915245026438700685536586406877208405581112954400773675571383772119861460916539734561357182466102218971772752814073270510365651130770944774208291645458929451340614875742110572886190510230397257638621863086093429810695470958901502793626099212856356449445334318213387648245106100667522745048660714776057009754616717261792813185773543879387342876619417720707878017341282159731613453389995235101037182595456677705940290140033153935211170409361451912915700053939262611076626475888346887611687958905898828748815970161962862796948399030427007062555139087724449689390203368268141226378425247019722968965014477860666950456067707442283712405702108366795667957578400942679669372757303598122490589236716395094190540795331856224691572553503650699188657445001666810215135498944526928017633783340252515620186989242267066863039525345439762767112038263866931214234673414869669551094725373875206900882685539600511105003384198912722412430263249295683097221192717780902958656359522804356866652487141167188682698214288053183356834059607545327297419603937154622479141528415858133960752083782259906739035991447995048035576235638482811735316047609797928468713313705141609484470623483387642152438600983839316179096756785461244713787901389453200845686750122498663818623021325461294811434192324635323892767065321550559789419181240040760886214774142640281309068028465977316939898857096336314506926690208222575762966956114573808136747280696163680861197308402564273251661903511721310781334898975325746840495288191542939107526920177504070235465029770335236305097260649673572037120210617873791893608276292681415085908124781124153335730980940766467314592883806030250856293328816747138576951830994292795225263724699928795116979797985253554135757958776928831276424527494131556565133110540910979331639504706288211233357988930625810578048151701359650857045053613234197122200071252912664604261908343564204243145355309337773499303710731657453611207037392229530293222383209949903779426947169593879593331447273306156292813152138590051728820036129397821221875314161682286633663904659377674114102723187098891851256429103977074434646224364841912833867376103674914489283333524513338281652701559282190380954531284706631259262265614293566005463391939990647843981468647526703858172781219091304681994908032237223511560774682367771046032593216039362935660841607821160816694231918541483601163703367115385756760919618089838824358751686514347829175267114578415373605918532405104673804171482652525863830985045775711726875657848865868471043947170210742873034172949291987457910942101273432506764985593369390157025226748385808598965566879224584502260749035105050322034127874845325553824869137177625075027550800883002446489558898015901151510619605707013104299401655791174871026092244393028719371012158704325540997249192151091870848772110026334004192569613773709181348244500859231099603694123143783903725812975653487520483093157938360813000811939153157764624835665061341791356530076393098020141537716106130570769539274937451599759590086654400697797322744744720854538040497844631133661660249249935882099560746635654273548330868588400964679732219574112464312626064248849678738115294477846174917569186048544556460324166687916756672660911274048572794987167306886901428231950885783076691230898332747673565869029583330564525323479495023237461770945259708276954409882225020262568380772940926662760880695633525152053866114374852530719330637340259861140958611602956449459176081873554785100102238151035449398907936364352740512883906141818879433224417804666749948405023315339301509729013622384720062248663111154707882661338332241575658333936445563670315261475571734467401279026371400204175786699202653161361917309499440748247448818817988943047950664958743770798699188683999393982925239056828009461226443026067010997708861770321222043141088757712991318442007745472918089798019712500309193969572022617312864509024462072103498773067270180654966445603154256711982194946347074853495454568811311036565188204043914447700957430272340928646499934175217148468520740727197987094204377133667364872758007258421729502737262756949113834335162285732309631851291454415563530935757506250502013513997954352089267120551977488811984109788630310225545174832844386291000248122520247898480023113948962080706152218387178581674722070172882808845079979462447130980365798650636344978033513160479012145581383706865949758038949745830806125941728798667772031940814608000510888159903417525213934864176601612592477067983375335927017089746888852373254088643544540516389587417512705564277144003557724245205578499564992053102063452542993120593465085185570986087192558271300432552975884582421315657396438384708081922340839530769554706056716861736885780428277946673555711862768417643109342808907183494950373056884136801479171729897948937686041026546354514113021447504825704823364624173617881389940036122704842189791861511571733511849070701266358894011122876002541416005231231691509163555336119567277167931534098071538481063323806904971344899689805061576097128068704317076352839556086030708041849279882414541280390180647208342285326377406762355749625371384897250950691594223744848395462187131807676056741786048873873665635430744182358006137942385197328313902996530843404993224964958392941232690845558222728847202252382578139625680466823758641885688336264856013055880479741467951701563399968637044574388377866730709221296527853387220636056483270764293775315594241589530374454163761765835205898699100859936170568605088691590868606673089289088349106317352182372319452527770919224020470988935261415115657354155067946665442382850738343603427382698869155785088710088747500508396874307237476692545293295866277517693659384648440548832521819000898252126053466695252723898585177174325707997894055815329404716077295827982568680807890033946745827204025350803082393152300136191343304844137203878691018246215121163260677388016638320542084902240060242398075887902463181696897052585063290060862625572690283493800986511397971528384949078759589575567840664491520239273952212036048508694241696307228778510345165254707654900711223660222783325320374910495603367557297597461362269531480166871982656930708849279865484832698339014638756838614555991558106775037933412073296515519287074795641974188992729220401246865869685963726400932091977601711064848482686532221913338023363183849964812405862634657817440401606791970223183470862803834484991533240118811729088099550583926627770403163695781090491878258664415370394072328523470077681883042695622717448306430377743631630479969252801373410934348943438089662972497747585534303278738186466698118034626189776916511593339566842118211864762109934442446565270420462264624082571864399409244879283335680241368263848606992191965478838735186248634964136322507128776632394784073607576704341889700215378903401325283953729499245249624857732644913709598726889455457558436199291830169153640111945440089092424468312890792162083072282509868131689511938908534801036912895149800007167889418773719841130084166713036786757919105942359153156346753979009869093413201667606039922770336625842271178026602807661171856264507014387463763720238036492107943003141269196275680722511472953228379020707713591137998755403520379768151300192564065365749511186369304405806982239234175895500671387649454182883662602569245578855011345710053570523002358984775469232152103758701453185279973582807119689282671603780359161753340058755226781595363240887942757547081468719139680143685624643772519094673690456207950196832379217315960768186366719912597550191060325051893893058793673172765218412488472518052333200425100217315968882171059914077715903937790411916292668425136490110933960555863151033549069346088623367966523798741290139207107994161984686866030834653526422331847817964901760687062060117351942689303069091818412767433972025788275287731868842655018368909059004137729803089866018494552802035743932159564378468331594139017133946276681029483077297769694920988268793453636811598740867670199783690312174991773476052892207521540581366312102439300827286779001473914970614946754513474602905770425328832857369646859310950220677066627221089943464519107969605061245816848415392700321467668031502518743110709507876611663137570711360921152677533816701893627949883797724207449328311598301239557429726031720716994974232020163279176380729787380052083633182883685654090923465099616689054864969380367765700179043118422643810398840505022546077200288813213398263643092615286799968583229263191666192665455907665757456765377407527398078197283053734526387906221001613812514786577022140508147456503110999738168923644858109405562042705460489982590284542298251185732086636722893584739404870948654183239380919051559397091397098958474898820760021781609036785795536665180879716820842544686107477467293381461312347117326469632964064203086233585195319922607859889467905849747594633149507062753417824632235200205414418578545366388005011581720174459195996178180483422496357411373582171492075201045405104022106236255106649314370651641762501031644062104671383074892174601159233873767738850336537157267168716406239220077517811804322242366157020430518248869822162498979940703228396775834414057734287823635736050235000845935986997336079837558848881790197437527671591488446972296986300151490794113312417056950608132104851411632401463636410351010803188802249881755970642667168361208306363101433195382887037421154028261414536374016588976360668197294520075255855872632258460727664544126715930465263587906851936421167392424298066714727755276573585505428753930312583573522464240834861322471750890465279858190798580374086095241812895890508460499667347599013117515961108515037838516558712669197342208351228413553066085954512623903853747366089394266520764422937124105038280338564485911433636085823426544758101627859560882375148842764879693598838048841672389188376912538824082243312544398204514957228993518625108135445762830204099011078469616793728936868906037244066552214299788426873287692472978783156225689623527830872974880661618535419812275677206975518891621692844247757991795958662748765059783366378642226614303657074370288203095639885085938736784202414423392688818579470975315482243482995306153620842203147889202793559723594327798406312800260933116934018045388960951012059412194836474945183777528717479044565277021391667352940352003910140680247230739577962616603309815452584491587651671322225341157194836212536035436356082972000124587127234290455326719745533630090792697104430808112301229105300642885179099051746173896536522035386545126198543937808446493986245496369698897121466731535200926139724076104906177061223215682010524526741598699705484694191825267940121471651065659936974065664372779031305056010311692965337011470575789945902173384596233996217976126957619257280105419398294770850743512781443967909479670832269797122941339111157796008393129193091791545659526052233444691191600770902965289888089596241567028370618625276980077530825513303179240925483807512994587193816342655271170619641595230415099112393447568201481051032288387897952486103081186859323952494468127598189531867736578854228745818714313474171836196551965169951382947645300709862667181197995934947777514167938596713030799628122111499962390282405647325283172994016834173626503471041961582608790343616075221140426961094989094649373649522553106353692438785169152735678030651602184451929478957011986573264447296992687415558075450040467055724357524268677448738276917014455813006222965674049290651268304125189898540938206542703980817470139504665902045646821241454905001255048594971050622851851856737332100339881220456203129288309325829922730053320278776527364291018024422480570575258417572686805526701788576702646102623280216837454581274343508233967479516913114355934933068176180258752864794073873150447997151906461962917623726036019056859232497594638546406921497386448570282941744142132495299277281805615861983260243782852198855754082819989041607912825286191205857981760923848443413297997475013865591797624770737325413868181918054082254339966219919312073106270735195429280858461443200805020629236230854541198968340344231351861232290140174462976169892092408094326894792658420250939006585141684200323397633579387412178387294288810303640329271896777967287680526672289416922132217150340415386717107291818889209575904246599425611427034269092221245052564900212776921274604618425180588821231927999511483097138979331259824053526154876089751767369879177861848491412565816198410617595297898495694067755283327612015149181906938587179366265262620038017652411526871970678214099653996145979879048184428807778782721943785871214165348810303548538270784369409932876964793121616543815677860447902704620795420449980919643315435572682979227004997073842267448732680130529755324885878526449950131436480706007645185558987552428781893851434618728311821002725377761619589809767988242655092049289101996851177898550557101372470478722027628421685499969583515656889792144313767865731904559718530593320107633921608411188073754121755876137633632484704001614430710452147898764746180077852275846427813089626007682159877092266201418542907554902003692457401828473617149799505987168884628312924050452172156741843429923183466513073403283201892576057644276053173899520725375144624774412672155791892315764539964506667820375746953253471323127036000828866562104857139592835819334928887211287203150722913783448807025267212061533536946268037523931857995657558680756160459819057702968911662130019412980126445947295902004656825989941870308712682478102133657101167504197987876567255747388008640081930506769835936571698076257421074598346555826753659174281390871562627442634596835221478614486740732783069652285976442165700019583876377368389968158724839812699243173284666811559549048931188076709830887473174508317175283945520613974605307982194540699395890310781168016401144483184721074529307695047411777220437109633231566634647433733467332739390670999977530409368036032732725893463563357758981156741924763379459507725148971844695359412468370351642938876372742794695451765848717855847309987416730388934659354156609241242292008043244866073050700306952619388782189218276645712968867390471326523497708869570205747209067066477440762269075677445167106078034370325636541345814759504681052007152760933558389089135844534157852739627381945834238215064658460249575811150694900885979282380722825833562319527066275214111759080550116004031546855633621562472422678077970336464551223639428263818255219164092552827782744956156517530113284628500875717440371738172185648340241359906065364290899242429519629081454133167604030187096328282856004290952476327554514498791055759993193241449526064640164485115873030539772083102438629730138233190309184139641014780408454345989274072267869922415933336569024335899670176664362499532427765605518194280261257355866986841317785181756519315309276137322043016443779103425146895240005483419138308672195584299587292513091618881084316947404166945142619032120843527011832792669505523501878219958834002007901385406725532637737859840382049097841566019560678656280438079624960442956123750595180955271812937066288166357884789707380441849046536346645714672490879515546718103598117025846907739048593242663088772836141860751024646869364290058603483271555443613890565557653575917374659318621871154296374482877055165268898057999705140959005667279357909547688755726857455878204482993660659724577091748872425176835795943889621214777923880675916730304978462320937081928099271528977906436654269619354190880591306698431111393338180442383587750558478034378576588777089643331995564206643755445643479714713463343658375918699344521874449427832842074012919691865909708284485665799324967583460649839288128904409816224406798007588481865850776772878145627543679314304979850409491742417096847795856337590580770824905307554815257234772392230246755079949179193561581218741855606964163607253952617680690252307979886375642585290282219766663787410497384610642961701818880440037405378067243819602908572492472340598475052136316736171581705931781719001711057301314830185613041747739650407791871948141008818470594003704325240352930272294837757127356943049883191826591219868929876326596157632360276609020663632777731894175790770550148937865164834661913492878127702080909576887311874276152376892436286590777215859797239567584800892863075181532463482473103700722514163747681110261063666566561284900027838219060955728128997344352730852530995226968849151306796845714464517705915132090890897864206860962328205844866571642790096364539321692647237330547903426790066834284240207906862361315300610052572741008681497927855220961044131635309014429831309544684843757144161787859437568828179109543308247721867931150590164219477376084933431121398544075552795567901200455134502522174565959223494926571442751289838449639937152585047943749592002281751438513264161252405981947818242040173228881990154186369349639801465286040024393551660326576411342746081331213366976712912797449652313958719195531898033038269673223598030236827980322086526999045155274433799971896466035629946812144909510215583662366395964622661255314300576352860172158586329859173675628090075920701431507803965827017084536810289288865201512476126896218750303681302213434256250476773262104296988440543062647216010706118445921198111650198405026406452547409877334643653722234008587245437417953372112903697209400867851868898656907614816940705652438468050331295073574470384488045380602159432999097037763559142701180385001447568268961180743698635516467032876150403801765812765498244126426527650325519191573840727677426978547474951714560865879401068961107225916074926727108911085973032781552772590536798095738823860230629215011024410475242394858742558142164411438062012329548379692074768749020480649698042949525171701438855743779424634168455285483268881512934254065802105870140603107570145978397256448037318036851986039400450269375361534267929964796963832023151221697518175150906239714237511424718990271120839205522835581474319353130881215555537765368639733796023819169275935682159113336312684511445422130001004345670259179600945944594398048253696143926120437097661884336429490625232025841544806492152148585209121147887648863183016449854606943697479960000486012162398619967218694505845670053697074837495131490221867939302441324337846317192713404193779008480403023745258962850165855540232669012216801524864154576221180002187607983837411128531900050614743361479966181131542441241346108436442298556518409385097676134620188521387696270238808084535087618099889529415727831784832263507669704833917282910013992547997111052331731217039873681042084446157371850582266065465849380542934624487107851722873923326349120191319610259064530022068244978441945655575929411338464017635549245278952799357279169192867526344346464230604889509469680164733388477540763552355068916299370881154414364421988205317935075923834679868028065447703603757368736626306008358983709308549795684155807082490740986485800654904718174428796043697768046377989843757828934895979416571081264737794767057949759252727027076228618241341420673168353743111716070638490715268087117398872983927310508580710600023021965742208833905697584422667571528955316223396780316897738542489863265331849310500234833199680886877670506440268321405018803857546093946776690021774009951033681979240733555577978869630119501206079150292538462043143210172975434929703777491801316447261758898921257159731365734041297524259884998596189085410592441418763426133696329119719734747256286496598255803965406907469321049814611512611093074329695112867075429508365038435144361129434879605673311265278617618865274667015396088032665119465773837621853205334218769156994361097594787780499105403150362393019753256742884238776240868167674933061458595062892117011545827197472686177935200501022892249050640210151599232641762895994101238783519118764455858926811072025063772241917235892655260485798521057387996946238052309454341877117795586746473032623044237676823554853874822588864529769825082750318064534516961354819895695159109252354783629335013219938007968148625970756553185078221475733382061418519744705499565183180917638229879922462685613609283802905694782406863444387189056555796028970122763491297403389139362808869797812005423645928755621496668702996032169984237010725050858329126684230147649029295304006542073562995712994788836801511026673476398389851673022539218451947018989234985018600790118408768453056141393213512161184568605459285340173045117542654933771102576863808479304346022160820861925416521633790424118355163568065469356840541473085573662173679359620717382819394647988491148280443597030616431084051259563708168208971248128397381872474677612770902787265281880492784091708730222674323556303197998701157470169710713271390716699852170489943927966528346380050923968711154521002195545435988157535168135048835590517333987996543131380516103623422857384298702855426665927518965850608358573349810257747499654533558997055986585359994828555413694624045510678693353563111009214744946300502039014353216109292683162201179344791483180731369005479584682141962190098077459962474010983291016701836046111603779719334141921202467962050975973478327069236563573822697423343957541122559366963484499283842157264724788757732374230220684142535288598010776369638235743549186097841788363578965859821124307004669489109744098655483332431835469066371368520942945876321866375621697013205514068809390127703609190271486219373894421413271645993527218069553646525894657143971881771490181534771126143679214174894880324173705596885560150108922719858862744233512028287656648909689427546399330606288503661907399314763428556822263469488224774766672582482127313770992357401656224961655663866080375795181474447934339612820204697489659289441882657071966826472422912160820091974435129853165945603589601263706906780528830537350972722258981131522557836218425142011774602417000302142718504681065231012824334432041139563438680119976947539419953038480699969899995529264816652283815272860150704004288227180385543828622862689689734862516902817506685246217956188398490220489310466718744652691337372788721288504434917796492830463078918575645374822871996843285800559432664723917856420799431416076885814833788358654923805226506094315971881346400532444215040872437986751745655928812299141656120327837623872411423138881924573364248033478725681925159865156082504296289563663200628487405004943401992990712938587051157828130052975704836086033948945946956511947634379878695716404438973293797263692078342535296432523882348764750994108248487747524382441277194159564654142433265664620872406223861532897800576519988771398488740661608280230728968060269922215371184696273912140425242819584920913543187387984514106873138889000346737970889011305729791727943556911636368060486086785195356805255796389106842862300713373086352397559377742190426784346683750148336602207674618489343619641958486005177461451761121269315129913479440745800618515615754923655535146209424956683152438587256061890535110893370418550969828823743531193168970874336895151975986374209012382193164273297636216618916615985594255525502264893943705362593746277076411035545083124613651673426629936282862128152230228420897066207851611939521949932226691969562441853320967733114125654953133226266922703099672866417489944962967214241291126296384246213266891594474072433620585161165792810932963145318418305471057663753645507609548283913560529625664094364330656461602050695950396317202905926070878382710335868417223560765764445901744768565429251165722328845753684241418989353189839179967038388373320107426918170878456620290000902406989566579904496983324670300379877653880467684786168485701036767894685853652222406290286541782010729274439437049617207612920440374607048070430864707254688982890313169722796632181903927204186979506059537092413551948517668927989829639629577678003093086895771949625356574102483315018750496082102931729366115165247726771015255931508225522105195056640762604739530399978835481582660190119558945584627736241246718973858259293472169694191764550676328370688951766626493084250280009663611112799286421872310238741985910027946933893908947441059288914027332583693605184347751352137624035863937977115188576703392883529477109163591944279542072916513803379730986606498307280723242344063819178589206473326015974448475691485064855540692040768784759616815923633568387803974296656784957995888219448896237869566526493359489027017216387497097489140854739751477138871342286744013653272290416978927856518116545546297759580208946023816139359888104753672372187978976687846952341613161231939136712892550923678990815144942136586164882613688299998125588537821337034307591910249740230537442871329839723891680686385351275273064971059278698985003550533386176707236836516164201838143330558214018536845070030444326234697302871063557966376137179941848361600959634182826229333943162397335322346501726386893381858249271614571520387891052001667788668553505230915419237822552009891455095572078803658350276563082072499473599905378876195438976751097405491639711597253627647402760029418709172180950713109162340180668167082885007634172130027534475684515335629693206595961030521812160298338102064254070865295866898406990750377409903266657907151974605096440240822793611686036245519135943395214445950997205525212056889211799110768743948744059897585232368840796799184768334091361914198423308150064046442125333249827208057642299175711335299666479625238558915466079575224293723990936065392252456990049812288767702533553998699315629864252121644638309373522321656867971732652348404084568617481247932299538181154715988768335333833057357632297990646818732101027166027984016667350166627282963709234226189653951898323149732445128642619137655721472735535871201295977259114812867445115339600728542794963065648175787372701420953556650652879745108130772925194871902038828728084400637281236240355393821558051231017865699168705903865566041506627794713477790708452858210540989926851035403804419481636725765234728033155836749558909045266222539385160446693673245409123840892360442441170384532052115482434207599419259943793049962926878554817610868102097087708590658959035071024594837152460797858019511028012925313298470705499473639766285750400977923074983334280923419317306819414768982027333497207328975862487363922744330992394595125935177914856435984905008557936600768823608602424628740890708884141570821633338522281769164274441544212351586097671385493319683153173874217407310711909216651632545442270867736507560617971574400852055260364759046265766524798297863877749168846917856388360038641641471311152637003675778580691536709203730728233820891115702640547677943372433220253274809679232972375337012631976131813087406817892147555766270817157679097055280719359097389455400440116925963365363966248937983877117268896057858868095475471858291747399312077607884312996348637905291262263889389175474983949035840501411499094356572829865938981419318370329460734930627908349657785458195561254854731929856278895217859771343219960079143539510373910824613922445306567146406512026872847117679730812375127177971986964639733434998185308375797241137361630890464808444180819868106230383533462733625117294671768542292941632330052463166786759102950606577098211374542221790115093522073001551633571717159776270161269059302691888036083347192782133205383056979558741622496998463419187178014309286373605060558300978804096199094891112334332113669110697845721245969801618547100543526473969449359929485610992105979522428307978812658819811262366844218501432020370232634888701752197060513874635880510252230130770179667717035930130263721231235635354699023683384068728786145789653594220214044248921575287220381734890158936661785399939369503868205574675095697563855303660925237970564030402459794239098830536866306142245145309412650596158229404915621327273114120865515238457550759299035917431055202094074721862804119827928047533959045128324782494151495727139935923319101569815613978439817351058766461325256012073174995530175622839612101826986027574095282543235894456440565218134806296041436648096368057440312015526365989753916620089359640156286898139273089381713646486975279630749041778215854935362780312059956381155706823836702037932403402173762476503455423221251446254280877635216506390141980434752424230253327505914407760999594075479155805628829631446654839064471987410237221298582014444240911462490549742245988941966239301519768558876149106890379658829495641985250036297392312034444461508693719431729698160583238057606300709468584482482241089921458022121538567317294612624042342279237886879579462526393920268083605590590484232450957122272378046846488556470689759636612943499185147313529647564448773747075576860935840942388205635974498682737954269498614129598352138111248289817570549539194664206795182349316120573704042080246670128496249324897529721766855234255553284111500898861184310277835215315312457964151038367862138043918658912431402657088605203712020814176121231604094274787774541254636576193953967427119413504630531815032414020905781012245498724392577931930705874393175566431407733775258253419377322648564453963807856864850727182333253396761566244096863564949939091704921990055408982553156998611691599501635240106454369458518654931498706472833105640618064020747394680706758748191813818295053304302387163402556926349290748139605536131775371654785052143938282058669656572324245514108106239510655348889751286916402805406264802768063730843445010296838531736712723047723212871478448661493311071139650623278253267015646570578008858253548736046948146209632402413132251065944490324964074017895516543891819167635090502167310756795443736434507000030648795150934219797341949911414514245193053454695900236072941546702412199465517267379117462656301070148449795015373507153048932425232579298051398398592394720402678965359100501154000919359160448611030759088409831800697538814349280697952418133213857453095002299668353060507318854682482662611953001061702624076933727984166910986551905735889962348326046489959808268670194021763518733472047814337160755226181552489122831920721628565780897238713809337177550243428516490454068074927036105889854247880314259917140277045592074391915642122453019364875632938065122504846456987030967365725774453897543909643239550876565110699560149500323991647420844920218133212020612688097787665818241488331942304704566438049537340002034896379923802457944275874485260236157988556211388888631410845976244964708771342856478530901411045469384292825380251420350198442912364233451704692614578603344652854369735332297034053741485497012449757351295826163884578171408505285230464067667239349078828832108990548499891865151524169842402336953413649152528221821580770669091210380269936560997017936725924135942904076396905742557286450900636781453048025618588620199053994566291169419524239813484323531700566906280471823548073306112238913180896946703942059269855663782494539985293508955568973860600003303486157869861964987093686508754086596466307056315864788349770208767341840733750275243829577591539480002620754409705587240980574186337120955353343095762660380173039556837232250261761886809704457442425014400702027047650105314986396504462804023612122545069556963325585304800736437578719677934799749021668294220038067380119392653794448647454329670038045282555040563401554765241030821288154107853607832121862832725571043407255563149015765004893581667656887288174450461794980750404510040319676024739064988035621795465808522659737739452636452264107647633969130912888474341330377925870015716052051120882591018739190238106159137008438985617136181751287493506746939242366041145650349692226608829274143197515882947052985918791261194653545216962143909654716999948625446482628433487998827191358060538470412437230880416394442064558306099951198100886560439944641962998132459382751190145163380693401761083142979770900487068732479429371278420771914625199878065522671009580620678410057247596551254819115148165288827888589211218852463919225252417699495131001381981164605311440882990152524025327039062659545274531457425152742890530037807482343484740321867238108392582562030428085571896827242191141849065068588448609101262363678620689580865584445894789157550278489357680721449079852446246472706610538607723434275921896235548302458612227352530823074985511425529562770546147419186663463028222095960385536512702738757084153957390663555407070218306050149589273008844123340539179446773650751106137538314450892318571144798363746421722722682281200387673613148248170791306596669773272243620892629747517889535516073084057549901118756513934730263627169223105861578477354453447473185474219161184802004243739828499004325290029956757756721299928571854424136042512293049034718089266154397641133141269452214836752572350067078652259942684067497341405949906848621496140335517500016249869537900957162292149057550896667537585469131767882589426357159171004827260769418559208178634953401738247120755920071138508060430399539478197314569184495907367359961489956109871505191029085302768847689034386923645723017066869696008324491099633852346759514992865509344130034346830717936715817683709595868270006146018070277042736323644944188114009862700931842275639449307445102267691325148438404211571427091942420598234871144817374066675700435752747834751597123855856720043490476621098829403112272926775064685937159370162079271628826991426527853742051520977101711025581456320206565783563867913070400845963952785156787301649422666510583954032674648198345404194096109289824096171370406722811658219565546093752132038837353607042328942203079981684447187074884890752458924585115104166055137079923115467552454923175818653437204711946834017482108882016779237756941788688442797137328990432597991731119141709948795036552494139524247452674892478437415418423151096309016320671754995425047957547638884581524272950034267901091088133499187101734855835165049551380387726400860097949862700704395373463452499012892567114509046200427038421229537059634657707010575880524498811469118647541017236888826832716637444139308283163736164125603698250901906703721142150026826731555057920637231140313361348387198592702333817650354537579804190030350520057362485187595786564422706708368140323370245474050272716242500374244039214189252590233058198721740012088849423523294299589216117546976227232357734446683588902719143267055845305526400574940131749609345951013896222140791819389355532901825594082947364909526555483225539611328451404945177572201293832939283988699998826299243111391636937526815101034335172185246848970710635175361689069036614943356686955527572725711935057864099059511672180784790699911776497618201025275224624136772422222542606681802625408912270686442371364711956676774959294638777448368108414363366434832456389984974901925506629319036807282930520853482440243048844828047444197964793409739695413517538919107860415760626508181729274511731568051653022848359782425810879846178476355033787121322101556959324691492659985193853146707954711311695617369859869707878014667011202194009432617329367729241022270360727805386560489308564604029583799041414473919911687130806321526311795344179729649178637602342513800858520109573270843866355981978798558548077218261133709702707549673257307111067340905256205413395773036455988206101401108112439614372714089710042400440106620280541223413388838470945876043704119494874601919023451660902734197873483936795938205644097636707925270141271094070176354398623930091533080275921720232054628827389568673820030939556448050135981323131050064787997833479146213158208599414116468686433859890269363252415780009165324860352716379515295221066140977296255999313437630165765088229534047200923076454565918450003184082365122400872304083970071674238665816959186760923521125187330176400723647909656877158485661879916874346678856591794053475578836912624716714439079757101832646817194278513844078086889659844399431204639005481459958640273292654103976627742165923472615919172685491413254843589609644395401359791954070504795660996561564154988309938073795928372319464702691048445696864442059595728973366161260063355135933141863455241425404522872001358170484908196377366270193837343322758547591124430470740406785086268120376557154991491413529213552118372310306424343657517832221675063202736089845921927841905767860777253734971873553373525940166216666328186175933321033996310781740206389416387206528811652192236430902925052640187494147656280478409617751531623436051352140522411709853361871705926031920141729355785213502957415082584547112702929969500615734060567191585349162312884486630838065381811498359662713859842451350473131663535748556154207209853465936504013899232362761666195997064431395775195959335412076841329423750228695501493057685661701265128738972648853049348336652176068063226771961202562399161730435014070391770163202602879725091880135119967789608419719666022776595300256190392774581586048347583868813966443321725374865005731105609762020029060381750288684885223722731381251934971517222406748836327517828472297258920933296810686278962327111182319292847475651703099526868351586835787910803543260532130681979296696660643161280434793509621608591310125780278706909719964142024396917709389515879712401612489235032739632052451958951807143853812423361302508211620086002285024418780740398755622202159732222052947691285830410531432882719780888861184220599391295166354202393403859914451270665484484544832981054131247862544875692133591940845032561935621880839748258992477302880884617446602270649958246457919186792302383539665834032333905301156392820435004378480621727664049780325948348283810631450917782400744302633885056391848983277638446846914911556404481795186989359437052100868971015886137583025792052338034264437147064631667318815036383023595012556026634209864852805601747963567473306492090817483228048818538272561425520054673756852077014364631528737229902847657128946840116949269000988707110390299663802715608882051920313866785870225168228940821112866451126265283383646992821712635485290605451577243413718733917378539457438691660294558647491038741514174828090901827516776812273272178810613966452083831529508123167293759266522981055502582474470381214814081179952239054510161613751772714946395620833600303319954775616324531741233654390842796589249853909164991797512024723520320660479954835138472331482858638240389716811118137569831415453411498270170093474046352609850047815276151786487378848692504786672342570664959674727020694036458050731197527664127423503352963972956986001095793041926443842837663436147228429128371960155488898572217326885144421298021767241304779728268172255213221244863523869628107829879599548558951457740868393450395138513109428254040028720232365390882327097989745402808127776594174750422651669081942330553783547898155152991761364807075271993954235672456976070217299816284671818646692973592928715677192930315199205743089765355136191268359835366253809297999685354349206162140979359164733475324779136290088058933036565760590399882616446349887249846172144879432036969222229470659604034494933863638328921154378760136598426979106968064239877208035147601063769367747178022751125352990596681808812407813210832543084742091328744801587214514198874808680508451790228734371704390419371413766083622752250114257562049286822322654501432858311390046843547802596860663390675041068778677660815715074732320473554798650463681201058044576470728680070727932586428143445322609009674504763159062894153963271677496917310381095737800717994307155191815722314565056633614166027264979571565185591967274510862087709582715456487260273472625877001450003593972939055178093710935420907627048230234379634362585268230709026791354737742254975041200867613377929876902787847879380988308548362391753865871420432325286792596611132659815648036951206858911825022009072591681702237319843537612834203231792873035238543265680069560961513452219623760612567187439997155497298861548888853727326721400734134613927144250274494580666848000671068739129252256547334728349730061496861736228453680718615296483954836940243009925000370943990717633843015592971809721864694369101163885712181075282467172114207538889948086587021121938748007742929057011914331056618583099171711254869308382360963619934428405969308850882646654858828438323488465278579215909621427213899743709501482338205419018141741198780797566054678196712887458353976813610222635196082079029055022223472338690875081282736411113491332071262732013626263865848077598330978634852645310492553008836200357706506974989303371882554172958959158131416171278096478000069655306042085593786503773602432918085339274161849243774082741806886289353995116498479809085838705112125440672588861708798377418938741704601631775782783336763493689135304699717625767233248227662521920381396800468428161110348419864343383603995266844831840467637983055342395588917982662983355366678670683212388360106606352501936861825497596255165300684129552598692574253062734660091915797217748385681447453482895050334534808759195695659891821375208859964634897554612788638939762374558734879033446796355482359613719725731050024580245680047285176190208218755409828494917128896899888827327490825108053813873151836531808315343733802442992170252158359169346863239840017158891208543341074273370523561099277780145222953968415778959994613976353150608667285463473720853950860505049636263928787932870201390753598731817971594821199360633108607845833593610173585054493875111302114395993612965917968913805442771899248505546460608474481443803136602478600465492824788182922737112928533740570037534466704091198684666568470620136753472806615369971609475830569138882216104148355234747460495754900272643300713743531978015582109350736847748653943794942253159762546849497660556201978530803513990262587404600258564621590494900503509880850000539488052884476876206586502948913841200304913066078024351777479564041189835815408548114787504690996076763203688849523522799764502661078215307431437770148571279175948539027503686702324307564781508069630147229055270957225171065265408546724779059044891437251869405466891068229057629684730874115077780834362322466377400381526867666177114000137459835538767695680909848510389929370459893676452648826455680793637653339460822290867955435985685373559151983162016495726480226354656649089494816449349653870078163124305562508402635362680993257615039083281226989468534330090897732132714019573903511240175898033103118055197626292567478036189149271924768260949943777374131791772814326036261824013172116387239537244594532808091939449817484170153148101341843678234004279828814765927384791953904905320233129285902558678473872783022011513772457458824777067660582512019223004935450279004895214394723209027808902514056023308555098348658493361559260219689467172576828131734421591869032885598761156687880399872271572906510468736699341270440638792796067616554311956859116052495585553798108104925588824000899515371521416418794533426729255829550908448832270005502128296813373490209477317070753536396054071892194192210594413149608699189620294518571744355660960402498395131555708942239604189336178753398700665401102742989338471084219345716504961954158556828747013270759216154778769820614776268091312985156017414799400956562713994716710906806507281344074444128941624560261380743611043059237367366962606699800309554380389906525760647936975360094430510735151146633822640161185943335983324858463823727294535411100611678003667782386715114091109855276055469009359881483716190417001010544380595406520906968826981630388294627518626209127103173468268810672445379790734085846104115276514416445258219324686651102660338065847720720345525624575807554994686426335582502724611708872027576464937185713889327773354142543090910083391898845786528076799242679669180419263812482692473628707733523331060824669189430691308728805066677026891790297060528688285131775433949889120496950953855031556407346907979486353756409312587175849727409662073626873369678866416696703831150813408140785156843249638684407401943580584461938630780728176402456015934303214149592768156721542864232743066683402437953127353368894527612452844974683901184882219720373812272792722155042593859683468975523439953978048320756505566275328794521955122038736774943486251510237788630706373860418599351981017961218377404067341981767436567583701938326552155954278647517821038886804616509850592400128912317984075385341274579677739010227952372191426005185893072305873858351553713474003372740349608537498068714769893852392578113898032629638773206772875822166183448706908224985946472866592642055960626126970835821118287360810875782380722439938991339127696529073093556017264868173513015757567798070247834978487721741524189158201404297022862429988430195794299770412369254029598865080945981991961185851595017198722119105466048854525976273161322440875479502595514480484696297438723795596254896310252490096577441964976853591462415963922099333148420147427350246132392809072167130458458145963808834574414188209828239717444396161876440002821120043410287419864078938801047692231404782910906282288462762626458518097323713720102916436506743616768498801940974942987312568241388972540343374840428565373093513092202724872921911964210486090381866919288981452222990526874791140000024167349893988043389750662447041035111655467482861321605113918533817830691529888295887780288016961153778719804522069241391611750849242390817977479948730263304348661199985525232267638195824391963947955249310608038217126180687457516115901949297525988698123951383152430296960299827582131109913214340179296579222849386504025267331987496577705709982904859945558004025477253920342649755857100561012624923990632739581882740359000588967763430923095849858486316271602971761931154293969176563213565610758102181186857136604887568715197841933060629633949250312807340968554217312460787520687865610382287109446082386170407451770707677914457771980786580766931580867774602277430934161026973652808617932347494019912761760000445675836369200955465632686825051784925018063333624651311522005277402426856330296009964804150823564966591590633165398154754058729834568697270739795059282175026432673890848801481508654596471141140382479548859077370264950464552879284168336024704429873898582549850051464964054142858531251596470308524168738577956286598920691591747781102926143888627894822548279049670364958974765008272330651772185870178239626779336146243934057981807539366423512540477223199128401929239850867571186251289128201181279441643446525637215710476634937849323998044927133033154735330602732190848309493678849161911453571071786927356542249345202905415667288609629299996724988408360572481790844700229889755317188614679077430790952059260162871843481893720233485880800484828309966957867687604292169703041579320232613967270718543811991285445911372281183878011237199395888425103523184631462199375240963845256325590197662685207233474700350779226585811939804552391250477962760072905058571208557970751946714357978554017039006420277591397362105891842393311769765028670063449384242701822412437654046801039492703110897812033089363221582796926782144687952945395521237684337623947757072685060509729423472185956616070529084296045823753233369257826796410190069773960992687937013489708438155214347014164371878309846924157947107843094325630873853192703280320162379837024401347041058746762159165757825436442448467557867477898266714502109953448679361283307729261573856300542789804514533466510602267821947760346397860294285871016848096288268711726936880294276431414327786232925291478578084428778767163840587041660704116086265557406766349745438824191186738185001242462419243404639224051433835877910646226140722283095442572246752008351111178297425886432798929112243154724992151338694324643982558241492980680146626654956208076912632105057126269218350073120364601135772680113607487351424606871408327056712030265947773771879545427540943152298762331975439799655822982187776373056772430148868773196981207640696062759994549559311372583250501549655551217860164477781081863834698658158349630519914424417523947343993752575226285096623266186991201034769366185606362566041469192345379646144909190326515179265179391627590390222035963382233283714776029961340340474974071482462378505688859648357989296587256787962552855658280033287200884890936819342251614007600201936577968023157937631145409178109295234553810559081022492373031004914190539196317800881999207561238381185891588380230256201784973135898838112868438953327483017708349774233397503644746019397683354459462897995465318856985893445518940233200083429193975925842799656628577459411651145447537422234406463436041117451477534698191878057858862208452756791979558105633605010191881665100084026550559074035952390205917738476802966988305945516697156457418180047947008947145406674362982753264230235512797636902024784994260896461926742964688564856995761726705854358326820390658008590189510711753167819212534025307003360750128214976328601310170952072576423163746727069010888013447393668109194483983878334137114852630182578375032826019657242772017629929809514500941631997452566569869703944757427131856979495596936788098896117949855882355918190768262430047600610836881594732597147469750679824352242545129276389016082078435459350721255189743267810213061228094394638335286807583120595464654199911895741717686533190852102647414664405483796560738126217136901679456749529735655000981096773821763684963985261004432871321298876899382633712244593329917131951282360725913046438554847491288398850017138655650232491614686438661568989657064190278093879666055871329413551146572716189053894335894654884966626459062841281898432343830407430520832579519767482748509863785397646443090291888421283567262322219649776911093020160030181538692273350026025941056843601867800634169369510413659129561887179134972824788663384755087811547398501770277231401904543533817193306615330776270177642678318750273218333010954961028183671444686505812234181695062890893841523279998751143130255279469395742765842217082797300261727919692021104879848032113654920157554320687620857082261818682793738135827557125529857116585736384920582110354175700214632698865316103017292431606759048437221468887044205217192489067440899044678607958210579173676715274337199774013932838840867215127696972163266740222881171233115473671471964611729263565594671389810534464423287733424381061570181818868251448507272457691034850747607583940285745012846643069368540279995520752161844558171998055767474743028773322816377081431448177902050915653102634745190848102446757026856258286847375756060868797027996348908977209258060665802795283007875252376103746701171343244357230139651733216319617533304101257818513699408534384910329201105115489171810033542898990831905519868516432784446900152893220770360289032260227348149957549119663041925556159457068608796692714741859828156793741939953471118730737241301607433839391670719059058474578990462697632247890677116284188845007090851981956814527188044111219922862899558511191796401909522010015288632763370753228754574518736030256674743020912883739332473777811154892038433869696214121389803180369813805033939567780712840001980174999086047592328388030878746210506410221256391135421656694572469559059333320350959871290769852356374429543863373553487295537893136562523024697081522273542093145507117680922810166061329794743567381705878290112636366189056798487343738607757241311228019670217723506470599162544597158345610418341786736741344545948936821010442571667214971391280544865519350823933868157168635887408687461944590131946219239237893003928241849146508597237298316564244434546746258259978052413919562052621301771312458402582808308978383328789563207690853723822921194481352350557800771892310798921533960866008934659179956059870346471499529372058206393199720498245405501254198903428984939500323333975605383479051652645926098682142084580266179846948864317680484920818698843328333020413884659811474668365528370561279347914176555056407023971974426147114185460420835212140492859039795095048896879443839231531478043115224073684030153705194832469685768564035281940977157508558755875354272896628024072332589398721664814924617477162437395244723019810688648961915639949799114219627945372389724871577519146714030655582421306602297864962596041835177658237284865473452342514263541235184371266048504884552143945734015279345376730501606423457918952451045002194024570177459613777829879366280213576422480422511209905132897069631468958853537722304605925326640060565448751283831208301617317955428238516641153430686170472012184800593398916054778031944627617076241624139148780855666784036880388741252381092019874454128734363464822892618314449307447586456084336085236202657427351546270579421425308330099254892737383667367510610975190987661293095762935526438828065207225203404376686081098018158618383862779719553908482111844533161496745503160126166076937299993838406573573293398148491329698697390582875260083399652084619819202870456371276572894384563291144053595976889246525025282065544755732140508379746347219240139506540670536086923657931784671651440322702578458162031381988621127089419879733199776795010706720290004253965707512109190889294785101536704499642810271103646665905229388446783723087368087167347377792627804824357341501081536735639660371671767671676664663756339968526983891927932419293132056262199675634369406836312585603947476785843226025655213939334562028967216972844638186976686908956205919929664303339312774680227889731054392968940724062239232389929397881675975472269773854168080262901637248024101973083543509327819890120471861143845408800964170665824172479438009332342484215004437161163856505044528100924826930291707126294823304188682688539898666718985743354785487919338067913796620428708703412185561465643811828630373611871222369881858269533078622921174741265381720193338317628354298629426655205927738586986865729872744506522375437981515374234073020006568842139064473904715744787388301990784653614213499059739401156272557067036310911297113495743397183145670204626418347824665882641144948433392170087700123590502772543586560439130818688927776089710089997085545353532132211838757794095954924331467184902406205198337077657483321584072103905854243689202083484203881107078979539560169996715624465329356669913559255999816260364568151712491364801729615887808952412473876164452804502017359930407341234366699293715657154809741781751601603967201139162834944531485382979810133109704724547101888012421374662250411405179927231698744154917144960987137674403384800817766628082016041206300700605358034474288601727320483921501627356152431778605736011238782046065527330409191139573674958166198570008940345098119332978428535299404254705460751189712795323141435822258716632201227698992918693717431235636370438669161236673968102100008022678074344251927453396991037116337363650864822307012283655622417416667360617345354721504583767890233292144910375093847552934862289586153376243209597520840359333729692094343448157408400324004880516305402097622360094725889966656827018861395817439895254215656334081757772862463819406607423164845283225571215667869317211923598518400345543797231706372919795954895198570568348053960439575004887062400872587458717073852706385484996816673035674589155112650863374934620517838162889568548670042730219259731944576079703228511682287371693059946851883403091560832941058606371810618138811172915644767292228039543933573091943842050293719047093557381229543180393627017553490228141277290641297373932002929785058041416925390786821413675566214200638486623390765079036302722431328169814901173662674713773675193962574279399664407391340618380021142112079073138982796070328149714000594266368852349961691669188246509433513444004692715822854990822403613208499094581483708285486249532723495377020114037019507358965907115096984452469474915824478617995521564319252215824734481736892807588520827016644095056569841049422061414647495583795637543706317946358762825123631603821040452501326792707748371956584527444541744592949679558304417190021018313031521178290855805875189262780338209710340020014198172270552539001036424304372981059053977291222786893753025751081689912305281748619712392588215328846230814932801475682672484889624891180926167467524607793919852676114755342402871045881936692171396103412814808271934679775107257472429491825228049836641831202344631306938944538271232755094281966694249808032867601465642454908483703777203759286655564640308504559480990295635269187987637452706296286501059402609179584243844499308898348522044694845283645847305712986965138823512170424418120277191235693384473519582441406349182010495499127550079080771471443438115675588657036329593862945632981081551653704969510793734076324718048090523641888911881604637845724805162046457439704418163066951850590653745806027363831766719284943877501831963732995848498090803525142853797237487323212273160338478385848599994707088571606909785645614844585902020216337008960094196675909195434697109242266950493226386509464797702884144407426918590671155257326714984503592889451663010281944482291360207831261580233020338571675057949025176336541855190074358148747897537615980497258977201104933903131043138802550222372436078562906200985739726374022510707657251242212638157662500372320637639502363106237560203836141000189601294953696060536445439470848758701855026670138571759684996755107852763424065911121604796148446841868801783520839546269488003036530671462551778300737405649558003847354995207168667374781520872734212677810590151944767484509148819383514491694150614138428437888759668797776854061122526947591095754344468122625923149923759080608994789040627276563163114477218293037151032721167649080528207731535809102202767308219507817695873032566114757932561575284584891364275358315076730385822700843433265084550289258924213996930372807885641652043032155667381094817081348309293898019493667129035886710488986961302171499413966396942591255041150051288735427938935519306513129201547375962042147745735280634344027892629573706080056394400249521365836167605376831312506267545408378580488171016844487430160997327002079524002897082435002532944777171696954351177576361741984512240967994412012769327757120480584433986568446863613492310504157846023516231816018432065002533282378475594018757801339431145706741347852720176084657544425689917978400329305206622457838388245061970488222012685998689510555003915799481014295420515605281030229604625236793171558746553040094578493906528628508214707294148438719391394902744125048552583984681699910489777252188303860091896185683430677633935038077459601540171029614962564397506231230221862434435842281926569186066043248037312519524212236244646254417027440448885279502323862494570680667075035863200446295732047047809924942004226693449305629294514755209961259243430712702092187949314186229465155127528070348805240266776027007495557127052312952529814265443162952676987542741972840258036002540284228336420681746237307540126386216281713221182023243573510148362486372501075339594113616577565278570913503369658845089869637548297886177184308039414478049417091110298111023298532890509711248700715063913619435878364049279822269697586443687228184384503752486695865305562163273708458004435484925579658679084617775782402779301521418873594969711017460787640388951951832880812858099770139067506264054963370879040947798067828688802029541571635256421856103358716735840122325827076562023305667969989675582754602251114120273176530391023680185475703485125845787028398254159621288275201093960045727253884940059441252783682401917773169695042655276758695299296982513774469937601777751437015940327165564402442250912376222900967014419603921809884020777212612855186064545026232145043234305014644558484469024329288157012292311214154553000450504408929286793192297991651044303243548756799414535826482537166335459299453732673189280500446688484609036752504572841491568164781582940266897453593964274024954127774640288827425338566965590850471458011797074066911562240810780408037709678897703016758780393410700005794505643468741751458319166177550493929892946050118115084432025560488316861098766798484580935306292922462870729190483263382586444846358088237884339283855202987444108200333508302449382267920873804868401605629633564613314215738372330762430648177511557810603391210854263192148313909105496923227965631900215699791266188622677132307480459050796286266931720671845844226360478552913917463871345124313077234485537786535022473149022171879423288746762537863839718830772263793554803917718621016566676984409578122010728846337690094279758873530884114856592121387769506546848733683889435976097259198983851489369872022679333657567002988498747655654095103211820135033261369576753711751648349195356884667423777722143607343745804326878968452456417638011508659388013867713799325649065819125628318636175545954397009318181421107642066312080000219670873875710401464858883798051800308683500299295157184244800351050681161847276255760425721555598317047996807414913917549648132680120263814352454376881646620859720682870241611954270910227946616187226890441399129495849135074796103150641568497141991404739243695153414880105058203880734899820694824157946387482786369450218230917102324741621147480227362691378947299732483382106863843554175218948046316892493189007855334393333504318801849054771755234567446903246464871269019325740547642268182393794845993835093278664685004335352041076460284958345347712021318716758732142566084872174288172045301762421682241469346930468573875190232097131991311629436117994780358149206971621786681760027206313563999143119561469784551311935253480493685796446681149517285401133794542126859840139274616365055036003925742475788674742486210388017620012502730978350696229446185980257422451700337334979373338001847799816079082945554688578820116818635779819551096476976758551749352132773251561399230491211436868787103421756549292078759520217510264547625950819980119349036433080119908011071719767714018849713903366976455127934746136110576659560463655900048556217114898351036921471314814741708195494946822910316915462744571221822436074549037990015150603373212955609580330777822805914493891570651390443683984180031101389039838390178857520975289306764602047270103382017478778671531624926563276647461367245324048448177242614890893093918033072377929251371449670430196249557629716328283095528208984318827423753812274748901692804890085531639412759922051564922304086891642184819478428106951290307704998817583459077941311507449113055395709379099168092026491206390289859047123372306544604146442432649671177269831878504587862801860893830913156568979280470962529663445784191506683215531583158363625532538244042955271707669929866528414311868533134436116619517643017733414305423846859846575972809231011134918047144747455809283020879761543576088140282343072408262318830917615484747107455704235577761414460458996927340240929074787397175782263706891025767478983928799949448658925312184574297050031823695697252992096425343116612041445005343540944769650140001795939373305651739495442933532410896279345465286159863628985488399092307468666067947145533517590616844963530173001012854504883131294077577369616509253347151510683645896622246012540502535804966401834189769287639698959714960568068382506353246069755719290742294146204070893135627329174622357082265125058027211550423249346634773627581077283865370878754863101160067537690677432093545137741497274726207139885626489689218082752288388145767224590474844946133596080641560185080659630465991788896748748565858439291862631830703069849567988896143588025524619031348332084218016693080746168099768432875225277308428371336059959793923374039081307490148112173241413774859374090560684104376764905278861306458038667450412528775014930810316337881257728413649547967262676004669318515889656627433756378631208963273889208973085301548383565348083294125656521592791943294379922317010649805022361380234187285955771603899636491974999413752481855042056183448898386826259099240766409030757669240830358518709774870574992440088376638107335346926623343198482980632260181612764129094633533337850932701091414368651969718016762334839693567160408539617956865268223595402112161539879128392090749612894473632844006158194366629955942695569997477178345876198577924065310869407246575163707602928429301233201028254907242825605724736797126461214431911453805966140772630621405936215836365118931172383642107212130323141067033624389102873292093750252784813003126421850390600368655872470437460695714627305559894022155295091178305460762457498937353176015735367435521636038361674885836010342511254317319378580243756927005852931803923396864974110421407008773183076306166517716805270362870733862814738443565514638826761665641277163546347756232709307034759626310582495969120728768406250609767347404737544290756307211126164703567792329639330325450033949319013336856524129074825675663855670246256537625024756835936516820662954572591607075902603950755616678275856237832654567187274988202007220503772580856445003265322206896477106628826224853665544082648703404972797143598126438920253919334489997067353265195973911255568262746282339434644498482498302611707425634004578922727171297424348072527593968641565716262530626551040653286125359529954594429944314192463358493875958597526092850981689123249856602453451038306871418340998127839143424464035503277739786760512437164903921708627697111454699677241392547656616354722295237520671142500232515848568406769784653248787401028274485670926333452771840350308710219062755089709996296999966521190349804967273331538612297731632930655594989226232333543183179464563898291418444135716731312037103689224679649522846158105317753315955100168839437119229300643515085012215009028091509746318102757461498612745656522482377541139647250588572077779731704665233282415942227519976509239069184857907532805950310477897539951990224345331619742738459794905407475122030140909961220537748946134848009764464736290755178929710303781793461019746639854536985842583796651335980127124291479968006411716149422501659494529669149223307603956087287361698363843238491943226393987268393537871861645106022984985669743783618885709555670573835701292665093396099663452053213322243113848697942108580094231485884110951366042339451819189507814312450139425923058472465705246095539598816999355495685178161996554895706182981504850862189583977574147551320557509163075850836176141196963105555634212420908558914125614935680128456815504126065650474252566783735089414095180399643830724306307057453046142618914930136807396074433982792859830880597119601754438705593470009668308186507926826589578574602026358349241348914604908194531884307636932685220057631942058925788762811066605921495630245072700556689917316916550394092004811584038392940524230062340586047222934149380685666636004021994251928650492707056398203422776231998109033226024733277786988659235475889599450892440667095562317306974669774980105453521606033973548113806351454791859030282987084005365500526290434185861348593921398956626542018856776642683460872408160368007756478119561828768205887962382008073628885357769853221994251696903539405432996776344028882126127288538420679441441464632600024127398969310909997057776104229258703297588769506416909537914791200847719030601510675261833068812014564271311565603172637131141121571597892718699642613659037400245205841862565959764994731420821794464516113506313057429231269298314083559894978956920962802548956738871327269954920507614838511406704566577109001654046763345185285119872344592873673606858527119481306348901678675772503926537846344572127839680665570645517514154672288177341208838291655081298332833919593002372862809253491168223377804609816285089533387350375432767444789988255158682949287809682478819610286216598741891962910844764436473184457847403247693197137201867205227091244859419304332653171569919481378770864602876569568175892099440773781528693079991773350267067005910264756852985007783017196389087194403463546372670281507193739730703442144794184032056068804021634013041357745146523745819645183012027117626632306367886081991642509635104939411330499687346089614151562308948885182408145473258942551522944149655602107752493136844342931697396724871576594503257740503736684440202882004131685622970600316002947889547537538642915289306125428231752816139978832382866892323840923764317139686866564271216207880300079810710825635039233266345160413659473236463876980307417677372343009704119918754258045353135677549163113095744815412610547678553623879575902030335906174387769454856551178217827888785772644338748995077378315507924582489831008624512281396366435626692044150492322651190119631895517958255008335769665777185758935170258306512619892305007706772462296312966448992068157202229283875026202445898467190959187426296518366705213443443834015391679205730594538811612540925008323761592080791769806610477481696212373066587172236339352479826844525777081105055073564405860277065550101777415927654432041134352178398689807342038869313078061242431341858308391508814636783083130251865793997887294130580512448388991934922900137516611830525220676364553955880597696767922677389748289992962329712585724074574641042606799180462172693723902418758811438692894411722467254965100242867172335283124819991234813583927319016409231262050923907905806959881351173077927291807090803473158658839393495168845607473878649567462430870701806870738790654571349906367723245726411924764269785359374008003014539301650905976325461752456346297396580727070881798861134520653770724035766698437112149494583447253518417832870918523740718336248573057912106035026051644094643560202743208992087086639314771690316048633659869940204949411433088572893498287945279318554638974669596984244365766653473801158822431777945880599001644418804588512636440881963644087951542051976428263780924820010889171714459060862048308628420029831345783773380524164262555392081861482265624162473177101823161645563061262870987010154723761141658057557123705168402584144180679284924643324429706028592693315382969980556656082577833446019303943280529901756608058362514443095463064568166217874177038968388812697812717801858147837400432883815613153996013013009176728922421638632159900565655213529497853893606910975614394324743407754246236715854484208020849529432852327662599772003680192617920152995584313004767223154926317296281316173486931417248248495747544740994188391795485337526628312101741815511225505668679294808177449516981067088658741317789115737246723025181957223307188561567975424652637043910564451968691370950088985013612300376293550340235304732150795928477305548966525687179958128341441397565269942744821032276911729925990961747918615002467346059804820724162345654782680084484573755662499936049720724329382073113393719064308763060480856167550167633324908278082656196356056272721639775081936451035945258435725752684061870252292693957786665101354569612964724557618129348089260233176943529218729907659391448713793485021741530612028202774818922421312373275812285815066405074478275896529331310213072438101308393400127710023024045291485676173739310412720113695573976808160511955600463284415430857847859965569312143490089579774218781562661105310644369530820437952772841981227999083589231703201142058703636690377058194309751090573648852244771121340948824535475570915922068145365455140566335682731999144382027978683400112446930868662966458856580251563915979248574228084115696731150457793603610307407132454460810086261091046783264430002423201387434343969768537346330431550632628082536697055348918382680571080591093252137205692467541197109225581725858483261700040354107465826923335981949043636352378908104546809075712404341842576384998910382452761224830531190062982673727522324118043686235015481307716845081220110716775057579546095631412724544529508882913185039145970002038514331873811558400980068318401639192871246405205311797547898673110216552793832750598147714861221499046352380197608069608437958675508176483050718813294340553049984607888384488630571479333127393877904792667279822003616799176910999091327049047593803123267835149630643805532416600630054492255989386061317847852768149887093900111213393592787122256953286475002625516354587006928559041585647322356217039866099686422551175796330636143898432723041461642112784870729820222084584008878796335774080330486698560207008696115040244299400979992940108346856659387878437116694294309775847644599863340978564822520523744976873828970058113863442958718222088929799143599832500764828950776081482156641368190946082694793348291329334386641561156218089243848469929587520815862145332589530149961650965731007530770457131584113735766145840642875535922545395452284709125839001407647696107701978222279131607877621129417560652935102046875773153492320189782649643241150063935850022569777982633231288202452890883931944430944687030262855389713946022713500175572512475545784179615240166822887037117246085919360917527132352096461338803149843990449370711477246862417871178723525539403465572020551891960276346554617195017618517192623719073716503580767455294521203258747298484967561087223398218544800191554721980144166505762900914648290382381594068869479420280457437116542374088769102036444880668228890413381873865733235695453037364832968649576380674648449913393887223277811486749141441293459680806113088718475986654540128124481611076070792796992771115367110929210120900575370023639807888816421650239274264822886451871678836087645382689310928713369634138092202170423445749894265590177450515140865350600562387456868397332941529828454870243108981246196946391736323071403772361226307360888093135519971854070711806691033031552758196974734929195136891976052419726652281289811520117792669420050192216368712767219649698667055684973021260230149704472338303686246139190898492965007607197671894145873053160264660061605329836087445563693136479541912820220931390845188026250484607856397453746303680212652897067685133707726059522533797919123434055893017758452107059418357447472216982715793259047254375439597702209274377875908611132991357862252064123729495571939765665182616857499349323284423415080928170022935120883419207670954292728883394528309701451782921244920110877102771946780565082899633919051922649830559899381059985996417302437695425923085082447846208031741127684043896296744795326754972514795459973774468834721246253987185876559400269992162609328884968904533360906087627922008173181429240730787309985328658254849467006040718388851420298106083154579313853851702188048808683587827742476392347396383421861004056588831541873437506392653133198855745094361751663908417606583222384796155025977838251303585370899270039049835624060955615052787032178790782383171468630353124752347458739314836653745386363796541951821419762712483400175367789370847765945116457336701973592676659404915587174437117700663920185354555993699869844300478040944870325752017762302128115329186686643073676879901717990388057131907415771585030057904948012353528243344092031315576357669550981784344472813913129934770600417476692566484198369831857146788101338535629992277417921173796395726439050761779527546419088583990343777997976774076643686174104227552094025923124722294639360425592091268948600010088458126993446420750440529091988251708555449350949345732116227560575956389098659931654094768173228631591225829366189120904167151044484428854809193745298859029715285554512796074953331594249666252504922508890720868311450550079258594189741922311070533311920526532406445222086976626792670870099167113506920410535924979874523435672521173905091613320598039098510622900674836326398561274120210781207969051657640488491392545519276811841058337012224535184789270586746318286379964363186960284219147844485316947920494004693926960701445839122721448569553700574092495441635303116204847055427287435224375543894302447398992139716272741597533213471263624414542217883938327799162040175146454417923226122239099884875425427933734079947941477116143438912148195310946562703622900160740872546395764452315522129251770713401477436027752394066248100127097677903711304427553173388446914956010455180578610656022780188083675425682147618295099277003498570961759213799600319520495436441718383681825038295104919270660666215381410454274083330736774118582913843997335434541433265094995706005358249860603490279756453149015001280469613314570753491239656705071756392159779457022427764475330769606053220909566953611024517140225766851325831509600616705273574027188505608008544253175720407684118106273750006787035372595636615768695922922910765212535688648612378840439447096963759268406691257209891159883419994033137526947126036257052643695186619975376702135045302019579197191484003038297670299506298528983045540864666978836384295630699851756334564491066990172732168347629636052231664492644119901956629970324401601856602172128915009493534505038764169447168817370830690691496901131978005410548882093891788603838173034426622550917162872367284362277494099735319769256037208671950618549146293967223997238219111401758514603672655350101043055268395579336436250889875410575361477609311682147936364820841941398207402232271204110647584993134542327234061023813409111868489311594263412328524461397464166136480633991674241168319864019151941146441613757546745665342107302489440557849914040102405354212038999839355547151575462369478674972082618323226845770624642870247439083259331320321731620721248079068088626645402112768709355933822282698067828878128503387922454855705413982761631997313631778360599950791842386453833036210677029981400923759102335504487033065848962040060039687552979936105678527789552323203369956445614935828522180330806012243710630723202866250812140408448266596164012300767634810878894764018942703491281820097005101041176978568148323169011581397355174215794568926319782899974666622927262964109505081887571235295409476585497209738076175806482997685490834404618066375835393542371756118387055347815335909740762191947731130105848410566144961648563719169618693054987652059447973721216198969097050166654046746481992231799107202888999031543207335817851126386670371794066947127071599841803792682064498196758303232240291884255383380776099919478652027022461260450051965008466872015482175521897817620442619541035594533744895048887397625322116974518140269989910790860262001094829327590796959050324617367660617771907230830641630301510758769316674839322322278717505878001957640401451927911329809056622200252215464769111097879106637605301926919388585115059947167407056714848218328714063711598480713616563567795438453466428481378714114656508524845860678764759652560590617669024103488065259102446862785944578509841215562489588051138543675466019640481353211662187318828749750678068791384560947314276055307580519015164064619159543429009244366688432778187405856370307013988305328349956632489779127700183150818523500750558635579765198448455857339529743971918544987110598875964942752191643563710466775016809191889166852813451111366245844758709962342303848716754858740561695264058883503526033520665621394273714958701962438277040014931756026948372993119902486577035160155762610046293931179790163486377463838353978993701414235957350611804466277418031267147251706726064649773147279873154483380407130428019645165747929135318417344449430022940154915407620153362198837864347407901064763593488007966651107506879661380663315494387593156497225220285224599698196114709525190218590390328453843988990409827509429915290209027396993233882315841908732987121483468092410197702253004005621775580303637953851859851812272349126694330657559184865553587581572677916870557062925184315848222171951133979799178666897229850360863544471033652274931606678281883847996299193450142808106950140364102180367918900061210192241341665395280817623022937364690539360868769858089453389777996729592154239791069425552449368090770744533511435631417469864164396532181461977815684747273940652710878181917710914258687544866821403518963604316963561241151933208201718889050506407155523752936067502995784554455376734536217055977486903887594564635281656780828633633498232936010051864653619085568475725849754359691192348482584770265810120517883911389453540471358868145571745708865858035095297219397324666611335766562024885538903493833573732345985796140036285645051853260580763587144352464401487967031212819855562508857509060684796840101259213299238900003513778228897738252213225402987171587078619952436615104781205434504757460261168633684619983903331206209851391143415030144020553757053565802362313212490671795167498287483865183567609110667382911435345924770413762577172690045034286643386611838092164969233658898649985337335244941046685662643664049794226585127977535086487170193936812944585169775215235837430724201999923625542383766869639926607723554406397081321073944852550129013825993797278794320048734159158783460578699884269794975077832360965375345752364646710279333066958676604877719043605984095886695044201221888128579668329108558169591392580153609217089744139084183256268427668748583528170640290217166697700167356661783343194151454902702904427651599080186048444156005629397267075097245505276955071938319004487586822131143142450506970377279283298518101084611633297152056433714597674241623289426166848581669668592963485312489763473449036255814342386032496349276425016647584054448805377554478882032594881782320447223794531715043419426643907644082238647621579439944631558574871225607351190451426189314228272875132745542269946343156621742367863905290874984374690834517555086114695391479142521144086774857437033639461837615695167276970488436183195104372033080102634735158847174703799777497272933906567415208314032226829816130341429569061653372289555380897879915613232819992008494202975074719970634376750167773147755407475089116446390080395303992391986591887126230481492912423651433654378515686758242942188808938829734888625031356657952296204267145580923225566034465824138305089122382697245624141972433654694359896631967326818662155826940960273726215027970098791387332852932612053454245720271880214001919384817335418187323554676397401593754183170148633168477594070951515760977722796312533649739623997533041528802231032368265175763554741611131942922194023741680410422756555582365772176533035002053003863789534660174567968228825547840687149416251251840643556055108123874688548160972359213098326182325270313238738859096501811248871440408741054003807487023304681612549489670701057307934616219839610062676785420995123387287604750282208509000176875698240026722666670975390807932678461908165469226794414601614291607824201360251105121159055944360426844301231367062064348221087385560384304193642536655361553731427673045220694655571384249018708603246730815964710108047699981716091370037627967118935385323166634428322951880083763480898147530959606107141066544204182009346897950296356554251520216683089578609713862012098403882743163670037486936749602041885807399737670225428837793678357247409430780584334242077523497050701240827442932554377521396074877946768012866891381020743904439399010459042924790670628360621336394487949331828546751795224016716149591032155390578872238861272313879865768153260257412104998736264387863241313564883798639484385492449120748725336108501414500801777370900541163343347192016933099751872538262568526983758676950143576174767639938420490260250374843759696569507095675767949422338794594168106336840508446694017435026799258453620463047368370329347668950160458182398450828402646655751301265855172600658702331114235895806504436608190873079233601872439693085437922615472897494640218849527381214623618195217160927328475415137749175854397345844501539726048859629358889554077970341209279014241488581950358453943112836223180556678862412258835113275240928410361633243912534654339465297082356681284646741837399125593010254806264366625592318712721793960448698981197792298464673589271917761014544855835479581979197450609840795911435234282621553699078848917255886849997263967259916579907957893792167232747423287495760036304670277707459812847389906787783309575403718291393882897023139765070374166479199776013690718823894163172664233263267279660115176406577669320356453247623570669024630784621588482752040434663275097877424650003932462519216630265753298567337950753264548896803928449662919310742194300122293980439111364557933574432993989946362206507021252178369371615297636074853112232895154452855571189423245121205543638741746792840306217386182944344670688159340391435794621074848232743260691566013208388680988614393081964609015279874026284599776065205446601720209805768346325185969964530017335379839507357079547535165497416125539890008345421591659288823058779429043885962063995720041685435345866204416089769391294957785145952465463834559426026866562950686208776125067653824749836924218158801815089678433181421205076596399495469111451491950487809825815579725650849868697863278008980528078568503063550113754262719873056928259423921204823178724213210467778708712391013347803780638857199937573336213197745817102772792357018023031583864554331435369036433674920103643617000270439159764378404388497407739339304525386351561915932842732980090585256833573503146845632058861667265672725019213923413832016429572566012905312640389454951610849135437406294953442819174325962019857065256216194643864807827154929876647427840551178997121408554344405479051581832498179189570465393805464627980196457334421572901839175265618314148415284449892679950563197549591696210044188424639566217023070628266653092306008149783171534524709112991577862227055482061189989390314286404028943974686143931518080350132777487691513348086304894924335057086185391783654123519025617479933041788874879921751003699424896574493714945802339543172330897892578528253356193648476218997234537148230286992106691078971461189582738939637515707800882070465888907159803982794408874482538831000079108656999228141214963576895751913741961275776151178967252647808021502001094546655351347064877938668986900752924259931256021246620460162726349063341106391284448336571914158522257747370331523229396554478380153589487111497003333151692574649852680246687002645858111061033219143825469456827447683509828690530402636287788615712403482769150416790337445710923367671216761183706669427689485957798677295101821346625847230324839293471515030119565689550070664816711582835492640013136195252242197249505433700657203357537296245026070894678331386945717332812039145899116708072274592870192847674844923527135364268888232821262722711117697697442062793448414519920215047471975209192338309506874905541566692852538627788523440096408577662199720131649972884011316143207870832311334722480572878438125147040249672477883118890970681153512290167471260823628693222136997023804547176196423782117058808856503080552496782930533545716646587283741987802900232887472417196289976456614976109659814179432171487718757081405650356824695307181576606147104819000226473555646016075427265753957074850755708357894585388776983038399458888287303409999963376327757860474582140445599991721817924958629332498659007852612300144411296266844625134171698327472395962123412823726528845553987003504329979289281828962602295453907158474166482752218348668689568911202987100232634147019752000701303227265633769060764670093594927133039741433112397112161176212969578911513521427149894611272254519980961465725547668628029247381390120298995824865634483822632966724625855098987899569091865868147701498928755099037204647573484497348934823958430363600573630603197455869524539174951121068694347449677365462658241313007593466590585656446824399446012627142708800170986165068749921658758626184668383368763106624050569548335800521772138262126093786045585237655300946270791166470905427485527596154624251542378069153646295119240969445760568627901581895086068297742404715439876726058626554642762323896728928942792992480359770426654156106568480422996048205426136948510981028885185610059303173731912230323231393557360655612607601975608093340441579929501310800016968897720782162746928467490509633272219852206424151560917607191180545449009291148820864795044488501404540691651705041633013514352137800850851927087307217714462964003030201466723286293077298278212541906060840138790292876147577050483528619752160338530696695009718680887655445721277323908909374051675620004745120098842304619642867450521330618455696112627600795785274229974689051402629366504236085563493357768526118645383090284636819152606756150504020028246496643646282967042348387712912192479044346686684955545253053958084923183720900617970133767556099343440605445197468658901230597940256874821829304309293500540766730661059176550572348138936496851345978978532447961707623305504644517195031453553968648646372588233994809060803708581380087735859202187810610630146562518534865601284964685977619769793519701640520098389319676436166652234898796367061200110687005299614785435781369285055016576329182070247192127248156023937212550188699781648650216888107016459208295769037192604831310708340687384623620571054386367255631456434632553717811142187077772459852745000552079262635640319928051420454103204287439011510934836792980141637147112476022172799819264869468814358937241057019220288316610107367028220237310402035270915541414570015992569148125966961383692758145572493902437872753202634574570179120156938774198781848306691392746511110364463586795695858084394408761533598257468688169578374334188802681132011933251886303962087200696084695330195999518214033435838621086355624054471940260009385851736881195897093818096304777342127141068596599100625437596543293664981567275195077596996469497692196598590035560924649342599416605702278800914639181752814470732597867172371539460111409930357561822362392199120579821993986777060866422569831993017601809008601418877547696075662871990032770521552012727367379556952961035818767415548004676232342387019775636159918700806598234821493484904704787230876270915956597904428927980936985783738606543081065383560939093165282667555381682849880740060738105240586945071803142768354846851482939931505887652481841933485864963356818309086356269175815866679166620713373405627301636219837761518287138002743720012917111066656709180085690632755680988904012989280133807030333391553170769702424023213627460503639937208336335898818429567747951969366255160522201701266941995129826749347901111086969536156242361898013884241499512352956404076902495354012444968229998031781934430859999157403986898102825586547333477278311249227883378137087320035441419914055658436804120731975291353882406237684534177624199308195232193807917329823247256176618808721391006270702150170561153506555867975142220661859156194365000416497263340444957296640865154771143016648644551420399380790523622474500211909101017573340846904997854715643607696709301004753985173756080354270387390799969455993808641219769390064954319877153266842910095269260590409307895443809233082270649514034866454825924993034255329605394454798475296564791561897397403545313358420640817256725494795477302693792104852174048254877276403490553931317172558187996705856936795637716000181478044581717046032566085862347734917588112372819716495019091635601691219056595693838659946133622266117014045927818156085855886452354915086189468190803858426646883067721719222579530725566942219087255100779088605083220488385023935510106822445026430138261917649116523885962093623043245902305374697554621950738857108823097630237510809796802939587480309749602898077601585207200054827205509653778735182283299925520726104848846883867616547612021638941860932274880810311905194498666005016197423107395317056269968604293989591987203101804206296092254284555040515152650157928113784368903080488446371442672355594520273236920340109547804494689049190816759320445173389136552866079364900780070997736436049327706869145935460947212800410407970130636437821693603281261289954359432908413067144854968254298679122279924722671433312192889176361575887629588880218533920823037128192051143788939791385194132601379962566922092988297071976022087309935479466563499432244325947720704356866969330220170201427476194857174246485250405184880996504300305774275766650546346808531735597561149789232052498462223604382910214022289714024094624797119807073524377966811672074046513459983987589889585080029573865666647974037781327791200464511577906361910460722093634717724906424551877705149723721753264164080830449254383451893566263551733636629210755922966923218991275922860850064247431549700412574420206495287147368908675528984715131493314511025985978614171984301224929833197543210022458175460333021309461549170246135996837710561632226919084530676176983715183928286630199997022344568575768402099228059955047989952600931963560325158338172360073021729584516397617799215334108766737900084850019639297475967733390497189119072927534470394122049682638878029251709257503173658260193977947819035980947590362108952096907855870021668991548487445750814861785881340115707731533827022800073084896698086444450121879882195268281127358130225190475873617709710406189409131639093556468854299049270427010637299424625790512793018376623234572418537703558669487785928827542317389487117790853203844496108498199709602902844158164595453436149625087416869832589951855333242990528793359278942695747876344825217725112798132616952875641161109389402850140663368792388633757809266093221301625676288761662817278055048408257833363044671608835178957061318695309853240592836203911157965460185963444056157429594591334280288838474135106643436458069642712270339398410095616428795828056446213905235530319032522403201136113964059904737756354675287458762291449832912810220303527807817766591595475807867949530378538407928992069982036309132922177857807475398161351808743659351577219615510294819335272112607568970876702640020375297793335456855216415195381556152865882942318140317761619144909294324012993155655194721111801445498752842403304102963612741071371866281316308144335268159296082506222062256625586107683038731232383188803290576660393487260056740470847351558035539123076424854711853460908758667804003905179658624255002842808576330781776837826680967941776604371491374744598390503736466428113482440814869935877512317593268387005165741601334904083445594781961806044813460182836511253307167926688733128598712259622850530066936309977233626194522828041069980201495101107981476616419711157235564508585464235804697576214730280383571767091762726640085942175046544255715194152817587933355962051218872777322794792545240503479281337683178548775906428754227179301734565988377417547496836939088164432908178275752334161344311600314281035832874417213377055107258532802681195128360780301092345730429969277221519579370156697407498404477810672962344729859324600168876074001675448967486462999318122347632013615724498656890101795132300760691042885899260140810384264358644146028449731492413973577550162152979758846701248136637638387091507866430577032709694920687693806293209000999595558845137046416756322477005921689505495085174266033407495288642536715770537820838615344167923740318710278303531223743430446458421401993800228991921051504467246589745342222823841671304916864067537580261199719196646620689254967214690986082862380649027847672120112245044432457127647972132489735008647403594892168017188102171847308397535364883879624355294483108707009119026069610161313492017677840336831620050440035055562913452520081607655361708581624222392247878492870157358203502947158564004216056988817624622409548198222780756373541525142507348618290435382809996662984267911395613643990136370156157238799455644782070000761720213045198411241949336287956458460634187760965386668241399638449137699471111066871351245854857927062670452185222036874825277430078812120349918454565340275688418985365706814802606188102564638589007326429799511882750229413906724524140086744758343713920879283794799098382718963223864110608384651304949995228687819137467541320930710086751528237744659657785338703676810290384537231112289648005006070798959420957980429518148503611026641810343887606621905712696172432992216760716831292192940678672198159985031562163654050435416807592655615792907326431713086692428343151154109932671146618283769842253077761446421089157115423829006189695247904173697358764164374472906568719805767792578411105621321290793651546572524362115798737963945626641440516494374101210985936898428676870643679138218913188126538352361542919110351290130944193980238562336321416225838169574796343218364522439841579309900141804027076995439954925949898221018086904532022063092027611155449907470392786105373310494832021860274686096047557647110113981529286291401486235893838617328758199969464019501509437385555542423765444434124245121306806955672596317309395208892620874897896428426412439814160490794541381968392252513087802361581879804705580952595707928752795155327864637877477131925297612755060093313328950925857036940223266151801896386217450468692666441564090042408162979170372639306062316217026465195519831696980574422464625411221277180530837911075684508670163318165753823346342378047614839650510099657529543933950849445956688306381877559786949961682774585187344239685516655352908777880660093586023624278710411630832092981241249185684009002222618127540933959085782112355833210364045583678172729860175436809564278267057013806665186372385947930801841985587353905278543732846439514419214076043964856997610074722493635598723424071995980522019463353460035035584671137197381427296003066185376940957625660985545048483641725236745006544875440968171845016018405429412305454503043925613144093133075401248779969695327181151149621309920690444182617272303883068496599726726177477847977216019043956761595966087109927970977715128993021675800451451317567933111011234622445222769389816668739646973602652515906831825410775353597586273396711408487443901624850535522194485933780890259894499454038938627460442803437297887969103930853048767614467356783685611280507692872331110709051002331795022932539527095524394344819528786243257900223072756853877291981112522960591673449217987862292210354940645697087305742312015864663986801982500086588539942195874882254698222866060659048828715017664346284396916636697387846807970384585900120462675633362913315542477974339670949951327221733497766325329307856590815301267346943800771983678413926501611684823295807936331179277775637066836789088642939659437077733823592670950278185473561851008788282809570223988141333879447913757631871488240928846074708122157200167948019026832223081053001457167159235657107049752617538920967309075360531524318924361497756447847305181718078975786487959562677236266247286316077803128978189401825275453520959639413337304163031254716649660338151199670976698273643496445997152301644195544765847806857028620890228077022929457351209954666191653912275614837718470384843491970752228164423872535938001219411969664457249156304429903114586059340755149094329684572310927411664342588566505436107048447968265824578539931599413759477008451108215865641052198025909705120758173499798220928659401652260345391952856046246795322218592977770272893328440849471183622749399790764662671245219939032342642988122315015981452936353819022519353808127676581457326134445215571217174400493422669476656540633640990032058601011421530898606931817666887418494851665308281044937312145339815692992758878733066922766076308290959455130789255952606779008973519726572862760851743911143148888691592274917105768094355251561247795032340775451941736367750884653688985962585936397093722403761032154676882418910961371385487591586709675326633097075783275853947323964515517085423830752751521575739161107204173662253108970243591417202430972256286607619004472309904413339888300032080393994029472139678844452259340733663692998143110019922506890397032451358292805911484579735550587082623382743671203561920740556090414493333635748496144830515980827088903757481427301195803019439683372807670720145427765157013012315104510415979719945910580139457911308328332063033035946864311526617166987099104591795277397986605564890980131367723293956391738388416005412680178377157762453564685408470848408382106138701603240745514896607084645003092951733176302617156325178232141131728554046101407311384238085028105022146239244959946937585609875966243047996585491503499404844647756120768370490397252804069231703911410559862610839442437674126076128057142079458644014823814774131448481325588251306639798497045308788386088810813304818983858870073322524535230006148732084383010966085285763565887066526667777717659640646063463590529274508720199201672141071524317580552318019042114507060965082467051585927712059642870771426779868676007159514468353057368273195617947420115232040700501841952921140441103036812518443804100408606520918417603193122209300656880441255122016105718467439477972467064028453861166667262731739247728333991474729824999776485089887793702353655231397298116907592628063693914184836110004918271175731364711675751803064781435633626348705542021337321555411246249994998295244433466704927255151417656319762932992905898519149648154371780065982279057434475797610416027141505502256892224902599895752414664466171647408221619036477066047488189097679104673812088514891191535150307824740481751725601955184470388980191108437074131912705240925644393367845203071371282729355114413767143733687334560801912686036050864222094645091348894526611845957126942083270102111894801853117759133168506559994710545242398184372554181247908048732098424806214478959974283845631718148863062127573133233319476618530507189442503488436286149743299977170075861298390388324334336081022669798681441443656019773878082552602663720232429831567414163709794874797517725225188978772875496947604606079738498340334014643631360353346971830502682102496839388369680616688193858835820648567639348037814259790431944123320296807983561044698851856625578409705150687819892169551582432166910890401709821146495701093592184015790447212030509628527081162939874509566251221264843122333588563196960926665768044840376775316091076035187688173753324366634457782646856109626429641284067606499085291298086217678742958000082580635120680180640816590274809196108534220574415458314833309445786616624386208173367117029623508471022519424483568416035992923656722036281687480656108128500108915477381604517910460357906460276143662186378095089292110615343201165668236884988152406229531728203655126641359325597355335475759807120229531251617541234974061497143692154704560766241136025061597047160973227015128118954168931575039879858448709112088969471632217437475543081769243642663566278526921574715694537353990939066051937576993763343762932177292513641783664414963245911245824048694848165463303585645218036509455459037784138459261224601342818221417054499887673252324736990824450903502023710406178155960331665533816941961856656930487329934321310399820744992399743313832376462809311118949787580056200344797339758261119463012226729765564454038219396294408532660287914415896727118320380675517569527036410010193534213994640740333467596714933868606438608006693442095152600309789683000204199828057809155190280549233695171881268014684942388366383395614099200570836969074532089035217321381554542491967988938007330152187589759053335343991281921642370604774212717280183046289241406198629670993743216056599197926034787236800540783588501995568782561774425710582270396674879851339223932255112462595785382205830748068193859718158364892272645945370486615401683913733794053764644327569266589638433850486099428211359413533036563966060001310453544883249117194313952100600146067825201245928370444740753412851872091901656894709095792912530575622576125122299713593211982060278510246897600800854390332731036858216391832542998311917017235541345789717307957892397413977880543911050356991255686985164939707203457629647621584773266633128207075021037262909432179493352119159556483411052954141862145083066585598229840489422530554528930221288356437214595964944672732421981086326319503648437818450343624812303475369997942654100530100394644903800502167964355866470652146117933678999218189565015306456514461770072075497883170245073476635460406650295622098041380815591959826845632639873541051681083740445120223906760938297751899732641836531419687872944469201837793097021599161185937310371369434281004676903356080584148641304809825505876490039825273653853127570165004293267745060740884789488220540885172398708913840174539990396105835704641899179966838635237383374095507451249605871089909434135592002991288550132199656242080035737003253499449927288911065234043335652176399880976459250133397928618101888531612018784832248618483460751851660984460241087341035800883669152843925390911781916387201773427883904984525584897831117960475556423791806376016231331196618137769668248029198470245604277430502572080284366680814643442217478313328519196100942077006148015921228635705411386356615254178168088760551916401211695647201212906590979864203215785983246601634776257243582787559110424174378918826664072426757482496737345149906174219931164755832397048743590748973870593813864603159521810072104565061097096864481714704584945467936426897775153365391000043637261140948404018675494988927138977870928306154955601969918503338407263165736857659878686044801864608738620598235933158730529202664539509801564781468123173994161417169761146848363257768912481022930164787319840977425862503964417832031952802870776376118685471647650830623771270650501189250917362187511563667164924862323210098791679939866556988835999608377599155583215035526197036463800749468083450728998709265005010151804858311203457298921505714373689872884695471268256681153763818238108297730969074731986385800794486379589521768481011504963914247464514129433101053009112123285448683463274396086961747227802573614732703466452829181518776390848848985259304872248912697986605211341545196944882154970078137968824861738154278829891740546092527203768795089105304731574722290569219697879880292282077388723153070898007964968710527637812739988693328611912881934560863977461451434413619352810348106263895744830803995441368566864880379626967309607554997610618698886996347410836308971093298298212108524088196495057054814263779296452818450853746932559815361937004934351934837355489695876548104131963851983057235044615570103214985143167162900837477605225079348208628317279302125580012461792671807102293717952178089963074772144585384190102196251725603509031818022006983610125549768359841952579639922849657348987181254468800112629576111706901090615105279170984513302720379763099408347899602797134537921511525890172000435204670898308921952114147855433591780048192225828161188183603698885885200082561054971515931969860753466281460948482000599983654424053255585715991487275085634817937367488280226431705728120350732126071784215030206922137730001404231756005043994618225841891499842653052344772989262211190674593349716993599279779707326416286532243830080424838679333735975959641034993439059606367377926807214156284636616040294866416814262751784041891662098735742341345169882848652719979386791100733924031592556905336325148505268939424079849054837562390391274386316531211361234113723940182232674080761791159362417500769084063041794748355191183391706703334436535729809964224412037820172224032947877598826684186815587943547024146210718016276802611666146869536012673665687281681436481379381090584743330756316752225312304713682037613614615873098290950013320672621594054997898759689270877555344918184570231864509640085996852281577155979407672869800232837956448047236809304819888301926513117320228936870948998333470407385339477708626621199535762567429946960762843263961505182872477671680506316843361659260766774794040585113520299708556627497425199426114749619451774787769260990482400277491738151204761325529945844744553374972588253686159909463630128288367063677440144060695453700947830858166112061819414836770018275180707049146421384345474093762414142591273438871606507960716686024285242808521789224176407809289372362657798981270355213637159549142467488717483288229376988355898615430299319098192594209532995771455302254277000836575853397034034635658235637775913792244273515374169787601809172242529829649581276505607292741006389906924281794943017263536551632433699952803851651971424933195017603557751765718977794231668514894190537401439945642961092783900110415186752622506031240489099479706685514159002342264179629476406001936827410110422306518567031907108568723650227844842874780058363494269717098062331357765159273644263990737942001675040129603628291885809979821902595475873637940028436697248494321133436100201595207312814157929202619647037506958157072657970640511297421256899977280188343057326042512766140489029848167974175084356318327740370717053310502181555279493608596771318255342871775207364485222199879059022660269742933774334218451462618585372666444622844041236184737765051798065468481815322607925494585345724581938095117103285760080361819233451809494664427917321223692049614198937623689306425184227757992630300992673081892514159790866094890012017410849823848402209282288820989670568608853637870066380591777329679278531542923742090034922265638951277135313106708186638270622476750305409346775006294776670914039355710989445999510947330816493936836315697927981429872082048786671616359614840609963839775724372559892398527785482433064177430613972881397513798129800949493006667833096992699742487454571991000955955229412162917208677443555494180234727122663742330649492695074131335515425687742005951562356731861575384189395890512631914379184945851398591389416762101306573820524664082744947090146307564263691900226626491089004355903231350521709029136798618884907552055664296678461307420268112482898423745662711786996467787028499263322675566388731846093894193515875812753591866703917414818700232832844213259268644453173480241965464888887135158900531513996202597811628677617191772219702250024893482584776460184936671967449287553817344092985849717043059111771173608335102732066974935106999282724078163185118300302645862768469668881568521041986261185011273484186380554722747317420138582317657088625963124254436528324895163532025672337323513205251871424005147982031755616460330591726269241992424748683981467974381692333731474983381884838466277844764372966416046667220671702038887982167856715537978743875785446271950202792238303043603322590357999073148821178874453181970332630023826052901227672053866837008937676687377462080787447796002812777669620960156163818510712589101380310393556181635211379249189358814084487860182230927750926550521145006484855886725831976049088002594174336672807654331067601819996231738126004719942723606658395380822800552240400548998822614393433811610190699130695911607536727898778104891592130894324659022033315414164731310916629898965721486826613235555872897779074662986414912896120053198050076434922796693942850638001063337276147705442967794938823044839887925951955958229770754992462531675638164379682325661779662605211642405356220031122460259244476024155887463691117924715215571681779016158773008900695921966480771076978076336837315105561358102441492199872172795496841154050404121202923974635005745032829333949030860847491576323239565571544357621645947522624313616441166983515809533294706168015419783153640782467727482779604814946700192534458055283338323129112579857905799511094865707223314688986004765864514125825476021042432347763942572623860930941038787358223492765090995032860440156092877319963308722468083790140999142528594648402205603704973591113640590288365637566677268494867937021778311904728845766022152398786927176083563631125780300348079246226886114822170583545485815580489720954610862035260948209445958557367710834694046014061021191185172735687608398964875295933591017782956768698465318999408315740021941520882780399015443941310593221164077600207133241253525736889329897151905325346655441038699428920857380270458988144723925822648621758089392136252732240144818453468196935421914815073754608639482264064593913681573249558233256832986241808055049467000058388733982858901644363348740718323158740471571465015051869462318977501904400766701192085667290390123272032573069798412897860725613923178624313432135945930909452736749775634240194189775585668978450871198199144056658345147421077009968810897674816430158139851442000073351569971353881815353277234094218571251260579884715727918441657101084970647981310140132577730296026421577692408347178419149064652290248906561577798959128030795394187223452117313687396623705178251218914281472025758180296007113757987565755443874930057988034866290536033627661534818692564790250152342994266293833029506331971167454876944333914843169236607694832108308284048595182391465597454300838034775801321828694943620909846366778946686958128817804216844404630893646288485614749536227161697550365481686776272755074545182837995128626642692105368165960677389497776661646916502766063472628739182145045657100402046328065679197430858321583744087882784255198366696298039226702896790415720319605452749238763084947387662668574366880591492880547180283877831043795762047790531931447390326994365188132278167047634008564116409560140080977909990163943215788239637959163600618506246728594621694167584798663116792672251787357440220496188789642901772776646594147873121546790435115546682216260809242044721975718901361881818436573177548552912063404413448219475571590431772201448940480533348194351868036472754316320880551769698914012684146510955417966335803428584074144013878948697656232397379692416205935552257655497305671699952034108054766629218029693462399323398758349434715861303767566999888744338889040652417496173264829572190237120214478584140440823321864523590267542893168578857453238384018903507352432829490103186711607013512135928977408733590582166644253817656156727776822107014480319767516105943199966831981677292454754607806521582526242566993802989795271276240063338021653673680765152619836537552863561806068802362157732022438118983270431740120651674017942662569729967737438757968130827611467100324616994347624314364050661830062919410571509651770698868474317652990120969895462271561564558666186341214838666054191390515787486561846893176875209757202780216085519846025480409027856723078858243145377628528731316751764647919746794926372739121661878822428534807928624723541577439338400866364762883748910723217044420068661477545931447442598194022901642002816990213890566757637839298580113787711735646477364628469988939799820676024604317213139348302740888561131955690522477578916669889038805270593481297119808092977755487667106626061815063173745882882963794115906942950838862356874406099185443868728419081842744709349857638665798430120745270100995823101006877886255400012993980839120132254725924056564694600673554720809619159929950380498608799337574680877949962746502401554614660155942486620018405926838378687389807891448212028699058619399659006782576475328797644127592074414002597511699331142942571128300338453119479275828269413058695869816405222134566471563986591943939415068225659210196146917429569379303974657476197311425693759629699367737291231978671325500021702740982405118382677832775570833822335204013563263382395522548613676285617084763605357413586693383141504567982333095341326801145986912590009944151410118915001712812310490834281176878458170264808027430242710246581409458495373455457430734330422062359312388347231686082299625220175817168832145193985212592147277224825132739372219730732622742327194202817424123482660296636684393462956208495766637323860514681089461411056021430170710430542303609101802982072779798601144598105453597188534989996377948722848292802949395752689417960766660721950583081277729376359653516735814238885103564551239560908207458341141007564606945638983002299770955370783608377420514394397638997667898601180154524423741212102368953616688702564382263852588329644403244597878513302004158743294326614837029957219037516329153957807760645457466634310422990010115699812532727766173700229252448262179871786016206726557606524668361227417382629067807812231171972645476725717786125623693076418748588161426941938140005004092724251084602933394474991406453293362313072463608451978852179264232005157755672449853806081369576295614626857225636948222909925961896418395010030508232681275409741023098112994273244879846025349213747252711509841758321995247002541871219338447843639092786329278131375780549504766644305256564466045654512189978157149127097042418731613397307830734901249038858336197018806717820051012765779209390563319818084150974098794360073137616988158620391572709639214226909216242587303757878254903543692502618579365098229600780752032288494462903421431638047754183140838783541130930382081350290215391196848005066414475810857748920165320930824101876143740082083482537178103612239722801756596093764465665715758746939896139214315836474819079115035530668834992929041812989913080212207003899170697332823991268522714567174657145402600813967191991680268246401908167889762156374870819826608555785250457284800010655641417460471081982697267642920562356067813475832888472329380051080374891484642002161086041635597881424694427839013088091599722829664893702911617378606796105471941964081540849253915141210407414078693124811908483436320557335361424460121080579269132873941432233252708363107191683640354770801466480979379941275714056472747629289975939659260663595717449902426621416216424229365721411775452436070007160694112574151349795046199656043086636829266372524446073415852891423282948128711324544088495705385889119830735350042508960646713290512181734079218836815989471246817572913606535889289157569504140694147699616603961072397628765312462590588067735356072752757143199876744859670352387613948860245949115065492594722495911017295904331142386257636711439640083568503429954657434455023924455482042843756418247739572746691183308182130972686580042435213770729105419586764977491746789317767011887193602433199030644243895287315696731867448622284576964293309414978542812732340893342944641094683273175896264859226241152687052243569855573187217550045914190566322954046070877535632721211436046824150674758984860675242214995294813827353326698412039168768398029334025015093451725068942492027905725512526555555206792382484587717558119483767926353125445894326633372488944745190034256824384185058785586318948539026764106123612694019099261232139626355297087479250700353527930080035614620437280764660500208161765057055525368873510290978376020361967289044576717337501690768607727167404610495162510839884711057362745077100521300150564280182991255839860506927434613948034944649756533812550049263150921061521349766636901755613849405464375229480859068988404015243190086938361377500108676783616685044155811274945515203697644168286704273747866731554338225349943025212360725716375256800596438506227035084410375556838015009313191380275037989616176248048575810273730773385804654797733665283575794466064332182751714792699660187332433923634267480168591755929051431368606379037468508768070719919481804326249744198539280845869759721375960568543322095107621284403237891966611250232165086456860706125429581825581904600039361012586556673045754648859056277710222915925998930742038612453649953260138015335969004820081757331486677516881998623028485040502004855303290167443182774153449626913373370200704336852090116356580234408351197746986047230922125135710272449495839202113009723203656227346692980274941974070090775490089338327645120843807239230141498936809073096805812330065010591022305290067608618681023050514779460649778772305582581102939324714126872111353466613464667385404025971072303537773612400799783573597426623737757373639656610243743389123672661722591834389287876274279493318114321659195375701049291022559210896001546588053804677238181162974689993244190091134702602290932422898674721415591111722966560493650110902129606625297777281181933130714294538299955981866830425312681799154008087427562826091726921079982699047226560096770739750546283119429064390805753172661233038990978933449719963122355671370576134368271987719958187185117230218066842033797617112627504128750177979402357646496134412097547943664358127059385195941595038984374648943042752026538686837344277998268861077114636516215767602041918810314289175565555305944894268707318927019774237698086157287974242626231965631223720836743900103227614652446450060928153209408000448049399129669854645383440117380198854228724504036465791787299170907781431001877589145742253517459073874702253265006327085064779673453369436161681945212463849225494712049397203523849082120996322782687998673541732192951089672725399576689894581481076047622194218863826993526946804961510739964434239373962140091911313659050422344090383482064664502837695650565434598407019747613265799885709741761436625973488041785001704162546592708632833352681403445655123702992056534629756073561921326159745821805903865603007735617814405110626016979616317680096861926468908641972136912353188141455702242585093198500975803105232420657427060303900080863387556289073216017411836472777161042726277844874129629359171964653716351710910325623610673599407700967901817241028310187889234276655996509038212670612769053343492846014305381735935919714079849357263131991913799242118286744314000126074469164793150646049137700247276316408881865577239659248736272574782284789517578414424328066405736096506404294851277731855967737257845597619774857934544400425139302664748072127111247458241287105923998072775850048678537186969962484015814099007382378020527619333423898828943216671820162037058638103292459407808834758953142942909509806294829288610090035557287828766097599810749819854475085627473133144246130891478298660884645228583009134929383345517746554708418159148084954810739352633083292975557357734635501064026218395578690791599809075822757955969888020631960922733615544337896798662655916958773067635098964824577615340206497929478533651454953220660781826793156278504757935559968255789188625428417190344184949341088393109803495940585039255999116982854791133184566705747601741131231424824519503553419272973768117485346829591766917157718948354380560631445405184425091362977948801866753766382576625800314393712474929737672111523741449195993565617500456380541965096057267358927156980664547771621865231503820513220975660469766817161644399859486575737205440562475324455668257192810688136872465710123993934775702899533400934577756194018533270390208296889043066356476361245411492815123632542828540442293431525022421502438409524017937594082769072227192334239590646237181192511133117108183309837588158148117701903521769353834031321112451534453346426536684612411207457797278645144163699802605507004195016696462684819215024315272431517345544033973952079893472590579089757373843776859244158046150108952813998145225068815931319971066129022275824011642776589660847429905144206353227590655551095532977318131673892124683973321613098459762429843851760930075733903077600924943067515417607211538137824933454517798664440440379548853703491166819048534335288538542468432113576631421210113318083946736636353745700165130028156592522516964290430908492612508143952859501587667453377802534039372571280049611757311965046733363875997062310568627005530431459465721912777077791102075404231701989059237212948117016516350640737272778915614856261509707274784578115009117185276695620644756887221311345725724620722666174928098688783969722890663070742345627373238936926108854700579663724131218296144582626583087660585154573355787681182147570972612919764317774848858178000216188684182077974660674753176992030909246551819944544035783167565636252404672681635504586319583414305448460932898326726282981143889623550460201740485864146894308570028212696646306648176966242609682245991665535120618326647165052837510365272501004648236456952725984879658149544209569671478827695883583423186259839662430003096104659317271134231101203313959267502286648427281295822164287739269499824351343909915416968327259841752297187469204099411483131899563803838266879358114913821130377685817455994961648724262839880064488281163339772408633332654990466756703471375959502257378579845995190677103630240939804672121820762085169797804069493045836666736086058914293222641426498049079386244981488725618913287089173783169364988028884848891965335245929148853871154049703234314048524176575106650778632875695895698389879863916699214221502044557597681095989817949025409209768034036539627187894825865112412723452423410526666945007949463006379184682043393260933200295140771118875925374199364436768445422165108211967892342005241316538748108907779789632660859572808683551676565727785512398725603708980781247308184276167487704982574535651393396420577165169868581666445154371264182324503928053656875121360489293723206492193191848353570236097989801532501654568523564760488251807060307145709067124610764750455700588234601349995756068925553946609971505607538216959195267561099555802548874000622352224186896563018877616026700508763883473486575470451177641970885051531005811039183786811456520053834791651416132041817788143590465049349228630728069799381023108519208097814995678091873087537630586284874205252638635091081691273437173644293883495660631843214371479127456501243853410399981642077939839475977168210553070368086173940787588856949005499546056724040498033201357241004841645973025712952376444366823337831788318944770914530717482478965152201577103366888320118455309457547123241443088585842582636552138092183452566769756376445798820401867726448325275569819842566335288306331067860638506177943341746577983205799505532786115350250256124585854849476702902041552363390533576104314061268760864506977560728237508257816491046736433198900726439361598231878038329310655066024774747934900423098814060457561643239121827205735386784813561142255110919946536022775990303776964639354691911106818386560333931972136280977016383436943746868219545971002612471214140061695844083355352417708057210225901095823311568092038215397383452813647405845023178465410996233531907864616024420064267026225475050861572930107772866728408106432474146243826278815643014941530777591504557517274238934461797541239591305113403237533953982462382256331760899425449797065168810916335159848449365979166126021892206609342839616071605837986302611777700524085401889438816440634182990096648478415316459402752691638367507569822537865833518219391896724689392789776314191718982227012408255376085065179686797942222476986335527231281699276605706831683624887427728286577896316018140891465469146769763012866654146624668787921586281362896168898684340422745480413467036364606341974080093217875778406088615329380067704273759733504894290992538766958149621637285773463552068377739290550231284943778005774188775238261421620827147766737756366896653253801049909687090259503009096747718842147669383003267685540347417623676003858474693939274557203898454502418194215385314601917935383467667127600468461872712148274664801343387201032673317273494855400337976462561743616264866109047292244818483541017805034492295804770794722153438802021612493541348251143353576585276889523865423114242161921731497327727942694718869584876969262820774425480126507762870281930870388282226916374409835449560860986686013955453563674066002782632376754262659595481985345350452260265974325131029603120878233568952561157852536946270469197013723746604389153528603165635556286164763074545516519757258361838669373065468055199974007331591421290224597998543679614735561447596188230007343522317619774157244565679594978094057040931381468736544190463542340992008699097297479566293928015653947809776234659179695641728711544558450621190271091483836210036895209612184573771080279891220139664870392345543898139967329992840911683013707619930029182105522179377874599544445543755439453927545158521365389672112718479573601531399627478550025949580307548305424745705895619359713826205877104153719375836253319729250325435997281824030220926274573150104406103078897048333764121927868495298786721259883410211827436390269674450389394054278452875488537967951496893268381282222637057016854089445689309803799582878581423877012655395521753341385950301478330191180467596986272771145264564582631915535533418358167647315906761497172383054369843043546469357999610674478904210557834204207544055426133460427097444788381757865162040947812075533056072665697260351547649287922933036489368258453509964079623616386374041194180752412476121448632613348550647754287148490846048683556842097331305171700277484520892363185956683032490630268088529838921962802606678822517391678659397958707109208270339609201547377788884849611883266938246563565544558533102367926158295002447739907697315522908313384550287781068965245580803008086627479918571122351387024044545696527807609398503376293371763657460022948204534476229743666555974820962130202227987769425677565508496298922569756839440043476451285230355593021184003573459899384289359508730345243631234322755248478566477534156281091318211770949162005623695892252792589044661497264824762284792961694059731883633790536599912966713971827546461744308286391427646614470027152118659394125202077095728825727124819792181871506264652580841808943123196962460980890375115753145010619887242135466702307716832681769227888376497009847956360176838762619036718478954218269526601112528953130083000746408753047511253094405112695194183242344760261000258993384914920455131906078722761176768958446396057674375177837384778102154217301044899123055079292613047902821892349298199770616865365891008646046620055582203952652600666452107287858966564264448868466183028107972686810389033991772866839275788554358513546263804346158877954382252510917806635875311068249447044988812532870216449018926485286497510597603219924164867501932085347144259661270018490611263753316525990831202243671976432317707943555073124092459000592526544911695090351327918277528820572896069448158943518137331624179685546715085105069285548694761270136479004158380103685665024743154163732829291306413718403823525101951086118099882035084593760510130096700454531654414436941603498847722316074098750240425853548863022340418159209391752304398915487884340791999283751239756796988615270136629840424556019062765056232820607403563690730757255717247133282782708854393806624545397184195654950873177279731665415460388461765751290845544561260899778737143918313434946204744452318200111773265655666785345458917138246431353401573644695254167210249048363482216132544534075654479958676749597033526715744131554549520198967631250097188845412360706621326920948866942791879071437506701544470147725310123353722346575214160073966307053968729062504799196976398941696783976363468948364199121515762831626029961460984964324405083551702685031454879924172924003378680461421581256557863188994103564637637426119374770243689164942614416137740243719156843497732222709025163159203299133237685422198481182682788948304820878792005289276291545173502523683702777399484516740266553196450873795671248081972757214828177739254650027072366659543851197872300484363334749948392963262406259111931592031717211051941518327541819657451531752742280540231009140409732022187707548933720603550920912105693090074965422224226957879686492248758399874469642082562028947102402641296435608783813755239588902687099688892212333735237060306151863961442891137586344059625507446067298848586456721358058240594355077991031932823226583360511959378735362756014618661415939583493602784328240372679312174347086427913237716344254967470803660344635937950353823433626760733078912356489875927965916444440413169220939419622536373469822340803882803774293290197418718743713570307280268425489881610845227804316898284833439477462759591863285402593714439769099458834529394286456553779538584221024813754027520814158817465816863831123618903424403039530013539920122130557589178145936259255718296633797212132713264486257568826022847874721072894045250024340653940712374417021733324992020377815083045718904049449887536445955242872542972556440526337071244005715207115208997633550628402068728283225207853032313060597110775829360677336026525459703751341054800542914308971166094061017115718702514618728621012430988260759510201787634457847413252472704136936469839774886157538637366662417569994017619330378373337354689836865376848344507659807484839299242651995565345158456321640621590870762347867073946859543235662723274350177458346710865241877864940645338774390681896199865278001800486788276747668243639833995443466672564431892472321996399983912262038964815386399313047362370892101145802239456679371426840208943672513165206821332516608713842302912144062656670696299555782868882686464442811726526505331924143286895742323792624858351966601273157531100246174714854881460806535503746911586606814835226421766789934885342047575345781440461375551641466423519213278125636942221872603405023884298405729769148964914821271147131039619733041881274932796642583964378857101147911145568884082393514429669092068084727645600301629108856487798527640911399262781617522600417013328070380513727008437632781609507576095544354467251195126728025296630188299658101535808911289932688170358074193224749333442180043833957220907103136455082191329321770486884945220518512267529999616997224816330880067200243083634411136185668033337225262471027324365302292544207904574711396104817417432458217599455093933883099187226308732404828518692374151821537193102248406845584478257446734464824243349870453432197024246167747189962950316670395405421474166443407113704098695538015912153897688696293551122577253716869358806804830420698795064042614135148777405408934501331452314620925442057065285080822222934093180986499743783623828125753795534181535275094218440968125196459974349508254048372182936440815438780194725768191958780022370568823415088189722968932847200855323291296967477806284923942896564571430948478967086604983386829346512410315240563124432941451698814133722803083036823593904429882786614673214919495589479337599736280753457819147681623022640848813533816230571144009425292225760481661508135255387555995014522208393052920156379375184655746542210513496152787914023392660161481673298657187021159047821528478802153714283870580798410175893218289410164415666302314635281221002339675446073336387185358142984469007174755758276904241305513479437993473237726606659956089246209440150569736491135113714696883649936171674170238261380031747815987196924075997891278177459751515715231878355288946080083242468631171286417248901873313657132714423406532416332453912544200416342756911861039438264062387129710375272856844195856823040672197309474181113607676597017217938860810629267203142787044417382595777312563894790788259359676371222926238334875036097190686921722073312303089771276419367773742577176008569105295914156481018058327603686426234342010830986556413646986841173555474472242349179977647181048586614129498345214065174517016361694514560189986186992410870865377129294847901970200335941327450871451254002357462142292544830344506263197716814254215322192675436550596826780324391683640813462067312030791697853288267569357155880422644355871486632801479876230304069141935968575678735981711793947332943381582635348690589588675529208284325124266460343509875167947010216271087107117797675239384557638734636868424867846916458358296587589175674957047892288533714306733965228960021082443317107722866864308018330465934627848468926922968503315407514981064773296220412944972441846683518784205027023890051225738591669930734967663698216483572553695665975854783913597311350937113576787457454441074736740474338295221614518583455650167996711976188815709720498259106443885376139391557900647756058397500928324945589079493077745853630434453748793527160700608366857932493092868571229363073025053266759769506829454978280733925459859703824511144164062455568997004527196311389494050297904824756038402648506906023561171837935292215002754001182960491394517717519957835154493054775031281057573825849096673626333765664098558844115828095876240863823688967944260096551739079617535982475653902384202121974754402817302181542163977605139057598623845622467537511989411845188236034202493117690014186247605009598840345197898991643945701878409447603322873529355668825035647642678665899894071247193928720466735240119032793645519944746426740844764700418314423381559229243493376349581863412185938854497517425749564429973664692004821687869676271135204169482159551033676691610824474636513185219836764919986359093266049177419084831686166156316301477144789733841985758935941076076617562995278303509217248981072722991943401773513247731204175342729724180561509705702630474864386898362053480510334361038285257609059116622112368323355849839072252801130184501571504358363951054479149557704463288347759648177515877291118497182885559264191131441558644422748844103910256786196273519784773383338775256798544793819890198603390010435817310409305573618777755533230407238594272974966928787439990887951904559948315115753176335878331820475306684452054038648349229044764354036222169681188838858970225696265517435737722263930625749605692148278083954990198282436978070530126786270710905254495933877072132355949398081185374871438674400878970572714072390600532637242507981118277780271994577679796522843687124220325251537849542820287159591940364495392554087461619992532452900159462586877651875899394065330380182563808045857893958292805457932142764218114831287842883751241383233358228526611144729955019835661965322342747084554034648333595745196569153776632111837638003714684372374761481168750098092486377155093015820382599829932070596039995528016613950847152552545224572106651767568240886361681384047458236428065121505223047831423181642963319816769824166373305443449324983220948014975740783661001320742895117555225517267636819289243894689864852974273085081984041497573779732345754867059196862829993978321367782069787722438265166354170455995920556923003171807848439863873063099639205479275026351664625555746587203567292676784403781482781433361484939084130679019311051013116006942902868160148634333654988033321335176398881494170111629594800156058855775071888177526005251044625288310894205777565208255988820104163722759121845101054612973639782141556926964484254266608274433601838083935646153252495958031519666479900533967285921898640523800819976392423218695493995395080271850842547163107862387400982423987887552405248558488807442674411819499825425862898023380838264901075210787569104587140202183553908671871117683375105396252635532737924758418799387405932248082318928571292276828223008662751847901468346188692519714386833006441707833381087375585792140365252744520683307819018430952188825262707739878270243265070614191896310737212201687597244687122788405351319982144503146232284673913754472115858507600707735837290186519035766702384264790174018928607048742977642724348253473202816175650819856008366315877543095173126843905628581676972439829427531534511695479633458091236373654802044771371756842425214240820835441655716775605158479435688580229478945266234053471130351343093820788766229287432612909401009595722703613005537845072756592960332111878355687304527379622070446063500159545473799932533470664689388597295139282402796026241206370209618761390791551015389927027306827930163133840450374563689998046285081253247550835848269371215898407148067701549125306585373039053653206005969131171788026796630482711722750037641506747199523429196225047771629020153597929822091789781802910604323463912981763983260174887881850661792767552621905209852523728685578419468599663571309851455244594154648786876656873801641556454335882343384254899326444023869061835574924028122922589902265753220051259431104914027195036182415790922278907162230722119698279120392442230885500725144812578331668665776298091650235230105532438026700145214736438716296842631098330252019967760178365713616570059030306131499920673904641393711690776837248861776159327496037055485199848978036145164151453932103073670445443934337710099412055114455442180435840022352338959662334405850760767043234388084071565814389507361836273222910193668102261384510295312533435489339644720626316891843771670672640637308071960925954820521912467923160800038830551341112811280955649373575035561843048763841083132911636158475605951122573616886971045906748854213895590042866620663033261909507698853510187706147925921075048207481487191720851420093408959400338670648630114005674812113026593368994509731510885186234842853342281169138004566861057383278464812975781911432716490258477064517199051597175788723981999482747330772966279158228388930086414554013475029253106556650116392738937706090648726271867473466214503684967828046903908999807799958856443302693255542622143092568892937883127968089739887168417245097638526487900296337254596057619318143902161227292213427427705770486053919586885963706756397215237597458335606491331934449236399448771024669192267420862035189905997423210385769640030328028749202377414024629421545199642638038215356736083938556390991425395142668481362550877008364083401808422441009668973187740575487425159390438023952607622910444995608827001652169320508397463317840046313384431390436237100347205247833737310537708171206424654607596483562718166519577503958832481810671111143234331195411291097944472358439465119185971760651604723999650896507905043172552544242126032346796266404509026980239235277433941307560227605621717006810918595229285085627195533571645554376368035526123473112306960294647531048988470759833083736767823237739569880644489904137935331183756497793349109513323120024475442468166298310311400872773733421673148409763386217124841511158943425909321100401709628561659875108884139048498800977320757606102417270370838139138258737987218549342001517093614455766533853179796363795958679893689448495386556767102016629914202805566768379939145969697552198795544738308276877570681952587843830589431975269896650164866309723623180085056702235493232360013977454747144560796479146049736975414690232926130296564918578646716762760479596261252559016851965075050813347528181487663628626718967358761070828488697795790837433361816852574118189171886477821572830797503280567447472010120016014442427903867342348990207678371610184687530725392800839855243502689138612889231566601592202453475540480161481652557886564693228725740499853993479766128262969650729623230769715137696585402676486178516693048454721151422297869827716173807983411346257301074350829022194706878601417266966570226395029737939135322937625147086422155168656663005805464692060148801460864244503022512807355750667389193104589370912746844078601210649766971276577685238783540423634729622505206358969579645508700125308205393801714418390477186996227476215835492824162203971419360589001673230585530128439496819780999641295236335685877854874137669249501598837112084641055811929245028067886803312148475444097088476335829112396709773377071463509737238846594016364907439024215145746188546213484447607820973141682719306104155704718253353111313987401494451914111172566322285102465265275688166704520616707157193160158287557647770463588965469968273346707506119480216258955511344525208729162175582744595802457526181833661330024266190297193892324462100466869536554800824308935493551716667815174378312301819413099735675200542749472984555068231155792173845404726933668974668932146517515241664708313515275292208754976953484977317632490433643304543130658076393602840139745571786398505379086568693758836843136978971585400299826993449506530952875855633479268665202907730964324423101198646859757564900790231596445838572627074932827572934416039684359973577740161727665550645155518995246818613936120796378525199297936717937686756123961892862595995951275684020553007899533499350002246949477506734257550346071305454281644155897882523145324418684607866724268732722763646265406983812912775638596188937525959605134236184211047249067621385191892673175406194242063259404802990379280650940911290940612395501432246140601173102162838208985806675614145852308893161552220201154898892937944416143215912208320581751974082538000386763364757865534520429730456187876868636327377032960610366117454782632161020230681777122167284401611136579397387905683136557708639917636013135571485647829954392588879026592725554421130410729459057259101983732391611885740011928641571483632507205788333482288857238142427710009656234989508464224589285960890309236914963066498475225266979000183040933572107195793622710467873463639953261014209073434893229610207972886425155678434665586957443663789997219365361453724816174743525556542986822895554101551662854023506691149580916039374580260447800231925480382302992612064458679409630215374157360154959279532630874507954001332648485286078421244614032270498624187181434596175186008575786828891149766238525881563524016633228741871968853981505641766617962051617908156767242351133231751838111710054405596993743598362412431239031631561858823589885816059354136692360484292337324867324930348994064907914765780936461876197268570186145134933520700257330930433175985665092740729857309046119570326874737981803562462612212109102257108810067754428212342756579835913700048658904545062610054881091923520741757692556220257398807712083596319619020292042963455082306414571007692515512831675796477077228594792934035357934386250156474072174914872527699742442419123407107846581029986649460156185884848572921482247783951628638358310777171860915159552909856774216337401729598760912623064175644216643467674798153163471921756728558408923163999559327401832710993900473860890883433539200519731895618170641365760167402578810753178081953308504459876600932321266027421707411112704621038585402544771116678021607797336904943477695441087199752533991203162552205715824703558965951774533688359347067726017300327101520971572396573304749227395507998533501240812992013160504354543277860382596557295132072426713866320549534161441812196050752685819912061716633259307366534700877591868695614068045673268872186446228374941310661119541778944453094328200053902088176556174370031362606817750723414597852406439919121318754030098038294527612445072914609211353538361422695779582547168491766178017389039828931479971265122396657445520731063212500983110494853583663709210296867375765042052554100578058274661431025590024401196518635715773176775946044437748015446276064852313584469156088106188476714526690217313421117236296733334500481862475461901037837030265084569196501649199128724014343048576038199761584551566388109013946029470332428072818434159857594844972849657428515007580188861085985623393686623644534526694925747805378441139964921667614138639471219658332292847302758560962950475666486310187027706319795601254409250834368704982922007727912151002152556133567017202980506480589571395464829280996059688833169460964450986497531132151791577290375374216500544670631229218037648573454624107816726788431666864436292449132851079773164301970236407638618464623651476050462270095806021560690013884683513209900058470226450919822804145842732987151767499648506317063368928302762395902066019721418500377443420111510402396564069114138138525753111952041461971047684749755797888647023448761501787419547681305042378601232871134924792187698898147001545974660692527186799180507563129502424675711866021141074807412932226644844154719210921766440920811911862395627083433414487682467208803295898264593767597973105040557719202137014652741443092930695485806603303609381038653801235989911867847330002263566934377941408858132166819878867918619486633835075172394925117212866228447847897453375840214910266967892993063516685253204651411887715009651771717614921579889729200694766208410257019724811064687677950968046383077221733528835265754075765711060496474524964544405483664548095549526762488269291308679982860177967163281382339591015566405180473074722335654639272829838667921563886740115722413557013024910374023839598330626365683726331915783860670848741214496065147044895771634096157181893539071964086835306535064358884121487037361784760288373736321324787338432368125652406937144158221500838890667300138329891716323805121961829692586672542724631523937089303331712662407847457277401258972996362744407978968082087278040423568996146199903999158585609115769629169338289547327287194612110768544188537833752570306950938493470031403331147323799766633144496277662843851455002782805696636250606857956296354029114727546833941294721935119007117619754523311810864151604059978213322211222578591939137347491109358706331684178726872191557176032811674857775370788038057170447820365478585199308186246068116372557305387043331785640702695133195614980103696616887533476870934844907645840477815749790924251695750322986141750260283328883262351730895547161182528739364226407604048418828987749022279261806167702664273486998842612270730555659858514807347438421255349843960739046204758092817480737292597512702634485738792449613630365179340696833112465693902993509145133208628968116513600976324929534009014486823655522463148493161031142270126529346610765480372891513553740779942818819599621849916452924966076785138814653738250719373434416893629654142697098633383298794407179225579757027858726059450642807607632487631612691961526982872707965076158663887073653828018729184454844053444704234488146780373929677439859894656613124921624611063838321889909542703131002500789760033053617122771694955141018336199808707218166657936342220615902235408433243574044292706019557659928243401309229274365153552821081948013827429421428768944695771903215596487005365039543570433639361058013580474601439572544713939437216408831460429041921911244207576916603617747043448467916715282014452686671390007224264930286925361632548482893924600996306053236371107229267299553977739272150440150626289240506300405126787496492925357403395249136784109652498232386137489100602172090627460668311150400517682917858201223074837918956455396580835539382318008242729136311999323562785336059227749510395008940148460703544751019010305063533621801814261282505859067101465260062728932113237346651921705747743566708264107929065074791712540265412219456539805282645052135822933128096360815406248640698178493862065575892182043061904130983484498282892097920246178864317295957366904230685738250350878345577378312119043632640661254279061579045739710077748931722023529728789479353398036900573813099113365551277101511896622046116598259047920201498101286097353778726652977150904303486977891084174788533948559121179141757622853425698680970513467873693010016380939569651343089543721995128890375207233305465329903638894693617241309936542342984210284207218862692904189093902401460969943470908152176918566737311263924365413239515328737989837941920027537810960731458988141995918572877576002600335399191261461705348708387263612755387519731014445029712863054828364775746072168074415053353951693832147854967290042121560719455660057312557089658108173678667257011197278223247652967360784180210549495035712530428434423321863531818938550910584606295007212712770010213558610503514387825498763661469133216073550983959631666421172176577716793333928772338183051190281724502721375579191284289053758194239950416223242959617610191363092975946900006177213731177465798252419376956064767863857921027955286837185710596148550257739054408988025342550725225976163772523417479359947570343035475192540606255339563542869327160571331355416930233789688731316950786642377342964571480558245723380369554146199059510119889437623492637549351580852641809981537390669490671015421021801888707425683459966129966576288600919723152738889405178826156521980225119623439481690691499458017333001456810448631325868283901017601307213093550813015075380599290511179615520734079389714184047554383334224499757619657563920180631996859100451807410492084926233163555367691550477259584938300627089619434786192947917454540438504857128350250047429494951906322018831933438756559951646809037550279872076707001140044634639601554416810904862917628299837481296859327133148538245169086311834869943025735921213197062987444028968098256493273229767475664669858354362146648055016203806799277289351993047435195703341948503393754087571302995724269384920354702084090416659572760695958927323866597460168631786211203159545802250436145368474094213196392782993921115469645436132309398533715382702439458482510989914898542818256008726325054106805186158361774989461447202377715488987565176438181852081950453539393081911635675459222517544666095971465800671366070833372435171672457204241105569984085953170520477911604494440640676586440301945130942360125125824886351105922606589539974774375327522383907233771187685169117302263391905443715217870716295301387168114252326796102833765917771690496228424418227483084502281662980880530583400175388885229296818997212887303170895788087007123215380784927279296340084077788309550012399587261600671437316659178218370518549163096579198648185038378739267746019910681252915789068897374559763903716801044048388328872826388979889124556571234201089274813684431876693916730165135371267851616032735973425241405868647432286051755962039801172482035672805297314002242939499073242967891392902706219751632589239675107175569090117878446278890120977717975353482785328103015283307666896680564226473977449493080696415781636676787333384062400707146426504527189640582060710149122792702570395064019517260714181849520560155669931410446740556359490727353926960777556323833938659562570730127699666841022123878761529298477128136098485830092935665544974493521509647423716228185790779438565798339946263596300401760771668720371429015331815399337438950099272634286674763545666155768313731131403673205988610863663676572450274653592177901197221765550066270501247275405058001781056125470992167623643323471487483047459562006522618818967015037420478421733356552399225828260337411069807599735709996349273869026265004800359890048696841379363334800950691731968729874497422315840221224942135054966108285066286833799079918451248587807981266403081085080614578228841311234741364811173364812016866544532650585032382136236218660905808913250739904382211729580579385151377246852594538635911936013195186814921104890261059107434784274580649382933317388625545718773093118746500605424078575396165863925634360518991207388771282463330635590780173263029888725375454801411689587099745441318891908159785731738755065997651464127332141944161375920763129576054914011816772013087240625521120997814580033376589376016924660159116314563570474344122930650783737794827007250886710271679511272314968587222476210945632425144655928380819509696042662225394082429950594355191522454165584938981053606930157724871045892247582037709560699346957253252858749607889303655547186121302183784486998776207870000689551777306823192580278403326353133137160870039079580680379403576170696818519436747218599407961439898209585366356684563997031346548270960935076120599170832776435395398903611735285701121729086635792692525651567907012958666898226565912600621803830956025955110492560091916090106342830391268201065523925698574575451947918465793119186012465431048872780667169658103610611325007569681831334318412872782369756918307426606040961844406244096979800348808250338338660703703851201095903531142850533018206430222097217912525217844464232543410787234050111110308163653313978699037319089041158460486968190980652124279076309387388748968389941476870734134744409074941640060311050057926887847834893183309020125415484823010597383679570330876214945614310782595549755343639020674940259303583624469271870953666590900424826734651433354236468681336908258537233083848758808858040299370818050646157055013743441470318908250424904418634936360214044057321335796253676746256269993963470689731827136395404724419467523952085871986290130970549593592129882199589840371831287255604137266503476154280752307836387857808990961216668494506147012457932771875817020132004366782766287756926454765507524892702469935915193601885087371146508103625172210627662371814588628567400771281214883586491101405160562718154865110855398436389801363807942966191697210624948426640432569526769748924414444197962747724229189659974237953619355110845768840055808003830795629395015003379188873152318589640548201570953876863435874386981069367585421471650167279957676479749257609740127520533038454017294892141160554438560987537455377028971380026514971820292397583087305596084405205161510552298624074107085289933009370633939228280345712586096915837440691631937132975378352915662401683691183474748512805774892181938729895927251968607617943377951188933647391398138695839632780611122712651816328250643594779873055678199230535783250457308769952945527252483478178606813256848541026919356325736892957541046439702239639044987926964044734253604428314591638127079171137157851687097108628117789188308483049927691363677757102468536311206417163743540782056101245567331102790574927131083587306047579548009462832252948716274634118958603502273019835232295881549106211152205110415626382211287318292807395543464673713890605488170641609137879326929783627240409005734963771714378239791944272984562165859401156006166906343616969482171060535915954430280503750892394135967453585757501548219180684003588492700002081655855189771259437560257801728898625413545501207696660190936291578801225670702575239708308654968023982969126285709759733719887017353746672862521761815511438187803575916569174431539603185280491022437604032877746037512534827534190602657282597771151753397449304681586939953781795593826307020994135540996516414891618145589791568615634327711095126260619091548726854507193414040144109769269825520728593671470303274947482909639940068822756397311622816316721102566135565490757863974948416362903292637583113301467140152431148723371955940834610989241359300932396184732461511669199264464445861160708001259833814084896749851065431014627463530384642488947798557435732916196915715050340497357754178889800090032116964984110530008944875264502367497508270539023582297177089767815748606838010056344969021411279304861366304934863350745868811721648149780338459490790938542482951068472655302402306370856378179926203275165221414842151092044257741383517794712692229522180822987112085408897784828330306524130933762251872017944859887188384375993335294227113491047188869894641344679991905914015784575712227640070154331748804897707703394894455073666689490231692476885261195883811878614415790886394351054198528776024405456367064352934749187635370398103880935731908919028379572914125631263791808854196882150869945307978786418501989635688205847819396726702776550571999313052749154425347815127785120299237457569366988219892968688461646406346483101846099175292648973496584116757297999593757872010612297552499706195445706600028217472522063589960823881027789418682239291565078869994085125565248430316637630909172869726052254745702201425867743196411900336173242316660189705689231086570067725835999757246491510693053937655010749547529806605496205040781730497239063398288268115268174630382725684051292888760076185983765271268634331441429245700370486749103110082236125885570517357032632975658366980863916644702595676906172069004519498137769666544523105072963068672422535764728869921821449541227596079544592501391761478024935418213797854688289423032181644094860719795795235283307894005733466879301859209941873411983758592696436843106169222285765506148273102258065474502614320941594039039050125227668697237678311296117857407393516683450116069291771025551915072115096252638274290896316067565861903263772170674244103029561415807189668127574763677389427634045572667042529836738784229554547454335442194151716895428539532408495158869995550866225974000329205490973283802152420540669192029469570681179975630689255273621428943492506695935153940782565795651453656526334291677982949487581457509478275714614028423677395729208991739784697808529052006988392391101066289398795434635923550514870536742771504824696132357109376158489327809050213222407657402286090249224839654698984374747835214874322161565857317592724896691266562588372137887617488316454902410609825518507354884604549544254772127919917580407640849504185724138225629082280925659317854684247222010657740018784247300959340012888202093724922967854769563847689200719762137681179590789912648015907235672982229790801740225687611115764106988079885473072806065437886520584864188900652470422624369961171070633357940089769526354641750503380771630353931743644086441569406138140400028227108067973786078364702117480330220883221994445569251961293667676043191593172797509678680495158471976335994692129412131648620692605835588539223539962037147195123701559956894457409560672637306980642889254484560180822779601367190249409516014344482124751240350980600717804805628762708460946683717641241880708308247977873811908765515318050928529368152224898064956950030047867054111561853826740595768404043495315538295486149535377269358391899246963265809071335893302235415193820323943981399589555890109637035869913518638486331231923240375366825811895983645171691419736046957529819964363431994680702031473252039485608515657146203690443136863319448101595533719904666113698606490164010304286728638558828093861195120212004005967703735600009460955710874127746745537171590618260801130921627221998013650745327267250325472324936216378618740640730733195055241415629585723211918466954440821482493873184508323325900716562612693943763053494056905270214547914741024797743040354004642598687742807536062429062242518580376960574456830589636350714560608687590873670692177929536794764664378729780301800289396941937261796653747452222156217597718377680509250706740502962572842984813871709275993725092466946277797108768336929251255747188719739073335619533836844686664087889407159874428000003324304423743893595619035002625433453990173633534229158522719792851149489145571297360178710516991373909707361541488415810456442564746972715496315212895991282019880055001823250826076910385918439070548960005439225391834386806315545476404000071460928650521718119610797661851077259301509932879940456259517507450428834080021601833418547651571754955017147865152950604338930245116737607622851749615361916953792124643813818977289243514229369662478030552011785690199904327593783459395573004702952694811336469327915455825048085437138120384114912019952261958520410441723908087090356901487040775915391737326185742921618654043120003194394955606061129174081967208119248954771200557065330155717641601074709072004544141692746324916021308715855817633763179841824043308052449238034336278597061351902073207189824246751712257470066951214658186356012667668902739317271372918656169605977763374768067615768652516454863241041564336677653100316532934781493038311589353140101240919973151057984502628828153224444955951370675848811735143019660968351242782740508611230965508857689542474173316747760943360714331553506484835838541317865989263915191594670075717273102704762757874832162566906637871217273537792533116722697127505809110663056389733870880157118887984772387425256583568409392867542851521102463162929926476095992532799100519448457390768409932888249969047151670099967223579955509344429169750309644626616257570080915333632575670898476180096945518002843881247698662146589637344186196871213366065840536779836344671163551263466631426057866678200438852393884856762948446030878025140794120078292552849459762383064034544983086008013519426313551854298117151154178666352693794313046088680464311458644071568079088459800045806702538043617701603997794852175917765194002350498149797882406291493666161012472910111021714533765557138603464115924056477811154085016635858203845403481593836918482894978327778464745751421286345234198353316573790121931693125006918976068947754813896971999018471796885639053226465409781600004424991685856454710212325161933301092856544289191559919693566585717585902877547137420475543949607760557212343366117861365975384950408213412093520986629510509327684312748466114063429994115017786994914549352211134005650410927244574888220183903345136355967427502214797377485878375119545710159654644485645253694204415048965564704813748550500152441261912552403563320083819150396038663302545391261174194438465267452948128073652207770513308429829628572250829344394779679714175738013997788617942569659517730656855146931810065868117001163191284900528372893989603662984020934211447018391685705398603454806179797779925011270082039524514386548303894901420926869655636052676803036219581584898556919964318081006291174385798614272012197288902550555894534856320354985761724515667221120397641804097318656303456074972364389627336783358207977249395820583210803805980692882342346946981314682162773165947397923274005951814522636550485031204283569134017796211023940724235905030558282469114750756408141378186160978995941871893259164687362099954381624187886646500598184191283215464142492730047010999960366478313197996096499936989654577015848698299673210444967107940555497373490640249054306856201252863955478687984093482746103912610358515315756845863324930912487404033645558934566907529473182047881695021134144036951389269416350491836831243550591513340303135757129666034330483099037977782837479066104864718592473410392910143276722143773993301882518753751076727466637321860737821410581281396028589293773980777479431689802470688338340510634137198007295862561960800319979190730404189999233700621756115414387524549669059738516849140273326592395113019181257839108983094872940646372231114849879068238248831514868506439762648835145457148883672064844738409561104608805080209868981725867921531416962648499305963680652760340287411063793558504868905657436025142177284801169074554421068930113105736808878937001364055960904590599818578762697522144567456405988799850125100065819487518561554062865084597751070208537250121747743807397568337091131522912336053498523700710002667342232047124611562360299841256571889037789254631940940731124767309985269178480215556010496191170140878871765395843667544695570186019791243925726424896392382602245643313052785551677929945443252753644709057421753405710367908457130706288553549919918540879941590746109304500898502546721470436999765741998896770262859920749461989859579591294044547791125201091186505319771149962728774909913706914573890499025229976736214408547863851934775677496778874450866478547773691861880476047207899194017205420386407176917817992996560677216235802049111255122500897931409263205385654249323868670964945962509972574547601590733775457154209318502120352542114281290844403205290367459305930829129238931679377345955851544298149577622251901835816819166899894428649621915008501659293878417228452275569516588775587303696537414957969681823038791249636340279982343043552215613588276343120310691841162327235087058550766995616777354351378318749273989397841435432322228715676400920764192311401213549626799461074247481426676715002639820481868309532424240582773875494419857356770504968366281190792413665903800209450902462197646837532616022614830936516147253848119746963595353130306193668490047885208984844395906421927837542044720472090538036522974850416463143607458066192310939878898073663835443644333745375324814084043982449693384812954661000327661881997585125560840460176824251367833134195031829817080139621224781333906195217590415710457521860066925445531568094487244160582338276568747799829303918697341904980538902647018319719385201191149888675495791721495817362539679391277355488596957813400864489111053611918071571323810328245331632630343720085873246426409744868624856957535905993932619772122931825380463328462839990346351207446831344258292951704163566346417066788937138396486760232153872058960810017938579511952476130694137272006359933320247387304134017794439324876051504054501362991196908466189860702162595826058239216612462416309283806895296472954937652571349885404371721992218687407149256967494286211680617942652311807853588546866142196473169947644612766716917672520469243593015250655000927858981927368974282210048425715525963232206664410036769411322386619692721957241803098542889329724908426499214832497246894810924517902316703949438728153911799061344785232788670830921593079144129815260598010020343161927151399276262909101052353634490583901119011517050481024579917510605179186262962180714810547892819756313582612193715957910017584949546760934994148723816643314433792318115202833878532998810996573889543972251935093439268270986396947560681567740948153168865464387832351056778718365509555730565312434996139545735278614574827870473567796937854773519564742354187423964937016937222474809098925157107813402055506826989544058004104282737063230677141914955924609168215056943969156849366780766720054554864805076046653385800808549788426531961881805986825103890151349939639080027897856726237761071250737598372358666587003531303138078755813547911133707767710055962039785420174534318178839552390268137937685768169635907935487252836996272209074461447459242192782398968530866420913280839442352859920272174754959006082608542622851938788528224764306258741270771329557086962283066274084601017159554457727950349349698797043633363018415759194025782754486480062420185648032668028808800148920789744059530105471843009118134829890112436155981260707450921922229232819108370879682037633966906947677705839882547137866232119881758737545550710399003345122295245592852766732818323744835065588508308566062433303169683658330281894761394220995940901976089292997930676255128795582511509005789561483483880577092826585328201830309655190148611284835603786304390645357911926826935077348964702761318396736068893425160919621714259742916328271005701300140909276457492357275917902913559810483150576205792274857165346473463874765575833293540541574236085377913223992865951706536044501005321525501405415713783825349005293901145685963732324648648439299939792679262184367340786726933933030055494586014562410544090924024153041421099447061659188842683076650892889146717349648660495378682528584424216911972546324860457388279530508171416318929650916392725370495159955297639859593387705072089898686544965560009194977443234234255584300744534904847651901798499749591123932450157404825103286883927124622492169969742201053845525394986904719224422049442534961044304294207862076222739589905515248306429255981434170632425536718617534706982528760894392644599452457625994296010674408783289634755752131414554379374321155439038573208302527179722930274429134740742036645868128473183393648616775678501899648145309186658327651191489463947540241911603141916497111411601724711433440767632023774522683067263176227080117833008633738723645517332187125169628819913573201222118038889984010795737461615194782224690572995892748349462056444438904159301377555736687100096249918834133908901703427835725699070319671763434848755929896101268601992348198247074162916726918921074821752458293693285301574524432266275843225456646921924463267336576382703505035818549139509642392818266867591844723803643718866857387196608509788203548023815322047086302907725477918057450476789444136744660663787921416923192844425714252947260395035881468652214219281624510185467789571000558810450191949941027561008623616990196802893292702133649966146104039038968177103092556762351383980464573778428133701276894460218625278008392166921312673004561533759939234215714801696143231443499654324292861296000840582198720824537225855486056845548771275435737847002242492703510400090928630514534335426918804055263321689875995698453136612217619524635321890743889664745417951001464232832038086348368445815762599779358068689950831770717912442230870652771911063043169786536706961014037309941421774699947205794544856262849590555520132475959991467681768492754062744775728838320562705310400596793592135101327163843977264877917267637364878781543464426202183478230662611639585143006263555314937569782366127022195795764944848507977129102138443378569374154589109985215891318415123738033958358339268895063094521573891579911246556577605473384523869130513330925137652601758958923083628710056550849323996774862198132101118883521936390863481049670086672793042642604215300496563103299751167720179703417146529402393686772801953746036592916503838756527793861470176300451933867426975419785349405528665791776056029682488045503411679566139371889055219539976080909164823903987514881089651109082024594599027576224558178960140463808909830521719040984614996129003169251602470371373175718437618674522681652317209475547195491480514086049143893357047302992940861389327409758869071584061915846329528372538147661741447368822889974904208895526626378080242937532292145120129863778400428385846633919858508311917354308467000649527480774451888040063211212940098681260664866637212511788678395768935913880908965718912730590079546454870263127963240660030786153666801150724140499404343346922350707065134198755529196135489279445331263692006038840305640287650714324393408093245245867532557327209378599811346100714709123415632328730070782928780962327356835333019413836546926541560103302087116299460188088652204840609317531133445159797346609403679879845667320456532604070068206349319055698183957648276468192368208724446906143040548897381345428258024144685971710915492689712703700335530116216982050770133272337037694882888923472219046662339090557852501389256735429269426685629549672393910282323623341216786810945963911518246845712926674682567699220187512328771402255509197070182223607142919294251592668072492929532078513044745520929066579265466071775066830445375682346945609968381803034836285155135331648279804932161905937402078462079569986757618119104078422511867338530167508852830277623611275593910149611533210132421692244442370321579620453326022945553657399920518879680408620260635127704258383143896353634660988045537029969805228986172259546863870341366612642933604173700088824340145359953131481504224963963258477836688489122474497600590697598371843349091199121853725244071886563913520608033597160818040387179100711881611699936007835643103744879232565453927180934006990247302241199563401575751368287026138913784640987994735729652126379296873623015128805042766955981234431716157733238902998814655340172206348506441421067410049594499196277327276103127932413228601684723091182090536311688444770402607817250142254945803609582768162972683216344977028516908262065742553736210836678611038566273100863252352685020918526553940900174302812000687479943656482422632668728074965875459235299990973204227019489784546069563133513652961649864323361280698630051472739085649266654916806040134453006487304426390093131538914124954438325709776062162889763993686995159604931441812327486514450664550285244175308228796466176120995549397130797186219871048350184446625089543420202249318479575498840857169860294254406721843834930013518225515426161085670639797705493592438037483037187747426781985203178520440091670494856607991764791761853261456575602306694563805559224096898555370556082217900838498423129845070258280781507178019050991465527488674355100209733033032162691789973655753439184067284824712108638149599782703603030782679530898481035513277998766495035360570860364721541020026809007335489942226310968660560968509535697473326856383464883834347214393302477611046987799660479635280199568723831807828584730473420676703140868803478568991602073515960666772936296345424958700532828155835225813203741340255146420984161318950246777604264019287715143036670857068466452179353466566645991213597393769821778234645596463445724315967528421289059651501700038061247932815737186451720796895455800756468656956703593016931517356595706491887024512982510940906192447774251484739536357384767440856710196221562360810605365179727596453248440663131524053467742846257681374442330904083751150945751983481288450592114673639975622306641367551192384744209545644689903477197484103551357343394977409771011679073495769718331000308420776911028287042110731382212828927895153724238595413626749479690134111476221073448760394342242229903423963862137519517889777923117571100542864759503294206555110044428664243069063054694230823553920705062445551576697338218558847048588200246810594450474544708723799376933806256557040917042548301913553818853221183203934184487533298509227464747798802337797045056592097807027187635088126676889714732546951696881181157373191374325478951157218095675178261946710273495010219364442799094581863497455250650733084972640231775399422567137455249403723416589747365745455440034436055149677798045945885740571687243371445315418231977395736727119601122252439233127785640516841928206205937214438833816474697908471837756947589384652361307216289963998622639244979655798210669307012601281414500303889943377142778187442004551766919349467165964783783922843046431040764072873027379983077298920746720212864064307107843292017262343130235782375478907260068265428227751196331954532371011864389564987098689215532410857500515930833536825383289604182506821229484604949959237085099462933647634616147847250479392271988107620037014480499103104494235408581910135245847431940973290309205975682616338322043413741759666208052526977639885808300888903760186956601842420999688562855236838269083015223835918831146758927602003363951346817811636592806292812483450119419922041414350393202654705367993660043813139869443970233158854190306638016833760037251758446444113999127465702056531627285681074983917248777478808910740956890887642778068588500526339657301532644771672820435021530190194707588581783688091917705291329265964644289382245177659741978493982213688541257841829336554089343276631851806903135899195528477681121954605881020987641061034854583285995418333467772684229240146149761192399192221785578763662016625959632926560186347679839090290007373615174167156785418948507601862918120929746716686007346037767174112024057530265832613956311175821465761674553910422646623238030243679036111165031173353945747633855957013561731866869762469407219479173580617621656547200572729199035169593251848870919413349170731766722351755609069925767419158740965928430094138308844222609219309800284111999313957504190705011613387873319475411121337898191384157479266355703390860637828731787530808722621247139498123740270574260832953847912049003195649343478616416843970838473799156490240520811550675266011954482700064122563562543685519777843798788451064457341832416023529111800777103429945328344048778458656160067988622309761838855924694496886025318845628277307547422865577882587966433629023825333709742919474304987533509725511984979347126025108458312204896319808137148229706809187598516731103314972746022628377513307489479221281452786703073616177445209517629776732877891592705512222113124390685628096670241557435433736714640182798395723344009800667447749846964510244845936414045000528087465979688618957579084633572864431944094834170619964094299351379539392066400991558466512708611567467017237409953295169236359135425353573849888954187793715423218782552842387854238790003870279831728748938057749604631637667329923142032571901812054225348896140380042766945635112494528990336942966130365303939773908195152631207800613532363458906066558443927840743360445643635304967073406752915485747822299908056813627165638838324960662739120980915377962746182807166694492845901007354489103992200275160769922539988537857540842868766283007908305332679077677425657731369155647714091186658484826978989274231034279139279359018325922021753710530018035500603636694153674370229042895793991597100977553605418822012709044798512069482380745779040597538084456553354985369289931179474059983093762712365693365621705015602872460049032029586000430942294637705518624701559910423829346393762669841069328696019529871292458776174313591159497507346393065157800516451665277019573175981262243055415512734514851713217637177929305957948383093771584168297704490673146224799399824665277385526456229695294627513508234150176086294573576453358698337305263344577123681838624472429665509327221234014697600768247378800529204017578096379064553020254871758397235226848133040469846592991338280642847118439692591922017011289959926929721722259509226432989499256695681344352953356362982788445406656257876124212856917574023558536033753504773662697958866439465383248983128539450790886837246166264927608855239077252586320404956322504209973249725304845019610711870273829471807821314545366082026611874021811079469936998776456092246595053862642811428481272000196228403496405956108411756309484649948094091499656574915345889116785552516023587700211311643489410524187708918451103511847085070158300038667198870029451751363737343673958060362876503740174290072180283129107372969303296307580806018633866898480383684529724261856149759048516486440391792947384324788527453296885675433947289633407605312356525948510877297678250826143754255027245480376976862925923516843498136564057443520091912458317237568891710941012984316139483556869847293841190517578602621265184467272435946289049332700358841659774043981584861498383273617650281426114700109297549380897321910590677234816695456745843910699273807967581300617604706346312983733375171374642761988886724275779287001272251597129757589770013092641582246498174451265646520349014039689724760089321043158400680249160308686898803661968328136097808937163744207653758348395070636396822734177384212195447169873873869947740862126609709300404360144632791817633273176686710705250950220229441431140043698441489612991981859334695850117577772723213082867735977107648932988121983790349155595593608113430196095327236763842846428526381592263159865670945043438788470515463976990147516266497482547866536447623284953088669248266913291365426640428456238970623761669212553580270946673780223979324280321614742515963977045118165671692742585292367956061679176376887266654217829871870310225311739502817648314778233132418930797739157025693810836172209921167104155384520397364192589586909564280461839918625199117159947241026681311861637102796197882495384273902613200993334101342801678204960028449172548305886488898555123524534543944425410122002089290235942707464596977266355289281164226465150044669283878298681874677000454796111332694069991159900750054842879538606727802990019079358034078001618069910256485991263005993843071522222351905297539924141935116729636696724526304587356025308740230153086429781919680533220110342429355250460077621998200836398476786263546369044818000122215861434354787367887675459563785242768055836742102872440633483652625690196993580317589938999662044051458087034865308998110828685389073669232389931492522558467887340350833678596506183686733955764237873101938345679809383353600601990944278368178303036550895899110833769338447659935826867533946363665634123901657116641945723885262672720314457502568322400429714601433133420902135874512450671346143474941738913928389235660467986499731919940123783948370745262213762050103288446350807864885852631230824861968151830447305907648817520754104931099569925117646782916282046400651724905578650938953704131362774789216355819450063400508158381707700786043751613056762558744130445541788231642052877340941697524591326997122447269699541739675881817298280588536994229996924052757322927199080236476354680869671912944492690798610092540910124772602530974862732826313704204282868712197274304267644749556039381731242396924579663810808806585954663881575604587738760541788477474988027502189981674648317756405198982286617926730629649219487370989096025357958723968874479599336615210095497291238546458766566433805377407773413526600679128296136573317643574021058784325844583150512865843333004564350748294844107108421946457362442223512811708530654392876384390956388820500680641448415575821195134334941175097043634027757426939879267874344126916512237222139093142928138134038559154308599390613498168200337934629623753327319356580041596128991867508737036473195981552591377905307200976593565757126204366371852435101354616234163637331244839865184139645929949404723015698872218540476387476915486200552896233416672685169357646703730324036478373782010288957236100036191887347388801366829406368038416696621669598197089157885365608159723760702091652413614512212965416622891757719899928736045774323285094765652063866241730206886954494134099224839720132972657598157986198316581737164604354654764437942371153943104456335738688195923948093190144107528691526822562639360798120884536737771235566464092552146393360921428822741918921164073684601683265183474223645793262459110457533204820791525246150659097612703714220599437027726790669048200138648739713266083486705536376469459367724730593561200901526653429806947224196531221389028403188941145355101343107566042976284508407975794814020912578342488931330417377868184996719979681492306560780263338002356118188820388807725921873646706551129959891406714023226460712278864869991692422441134914062991536929189049349687619917586121676892904845382021309740619451576078174092691194759503190633901367855171035443224130850120561536659547080081990657821547086237851424439812211717007685225031803688380439505409518508226190841688473756986562735493171865239861708456628923198015618660109328655730064372993481858842423142792545223781330181083436825408003000318295552342010357454613440866270697282726898827353157097320545618295355399788635556500057220425894762474523487371001266731829907106234382262204872038047449161150078480845361402011723802301853851779375642809378044550643699065593476373243692034833000155412287364780772213501452433128430091352099537704835411960157414174960297882513155973450511990510492616179809963950265399349319474491095667584461104965729611781428818074197228203148520290605047052286510519009763825156316676743846841091607419508999018849755177625184849040346423588272974991223710806496006731182121861118636504649322004427683601209675355691355730715332914452599749842572885687961309843638869205721742970473248705672030554837250116870531392995875067238242770578134339946518858971076318247411334223811626269983311926330600330105473398391113851601703055187260166480396552779267776678681248417319971592581459000157058537414839498389567684391419087135452879614918296248799353043978347300007820011254654346213400407592719019339719236095081040999651313501609328708302630344748054486870886613620189352495923417875366637704988792165149713569747705524921282060109184069153800736361189219307094632941622366444595142129686679091086794644933229114736328652230280211854695705044432066481456515491745423799268825817209443882433663225441671785972915336554644406297061935144615002833179607781945363359793932058645597165049868074328414830022171134894795669839097578435430968317278562577632993314371193611909760191797482666126725635441563983088727682344149766502413863783647501646098487691872407240498137450737446807881379566805459609630740011476876851084853994804080053085998849994760403144829521127046030808178744174505653259150558097814173938606117639012530964562397337176769710076212917991341056730702565784287134178090062149038645565764129947203765515460286611202205649214780791097798570034052021405056059097782249700002425898933930106557171040822621028745313117175629763980723589662558281924398439723026956240804399806682320982532455656553734818667762063564146714572978242696976709129687574099357965697621988143027366435989457885148659070525575739190710613424126569849477881560026689693495758870759046929631192983901421354539260842776685340715641602230844983425983430479640344975025358425725626717748789999836029277422501562362892413767857883772437624891565340046064119646988467212305711564473078878655360055702983580786127962811011341916876883670514178149251711035333429711163323290034270813182537102957713475469406663751689174317220559405269103341755113693142211308154801535103982946936895297612201148188128609920687631234521109873536612011499310167633591814030361569112867882073429677859038360321919668271633001053691479343324678365279761634281539269696787545179358350059305362931393324018515453968305801273064460767568526189792819011728346512889358076441467381657338962115044863678588626373631687066598823188500060073167617296625912343653209343738387522853034798810538686177755271820285589754678878272095769352922969250041648963652176213170065542918144940579593459998800465292166874385243947367886688861969442400998795989230275870833286476481106939911725761592484803051557025700413939931284481920962299738950662441353124018693089019071417808565025523782422014565269389126722904632212885490813356825389071479641686811704243795023283649435510738792222997199223663738859608980628800433328485118461095189769595220411948088688984479719473222348454786480899232550406300049948532346415456107194682400052420051113357204983850837868416523847100271308114569921858963734799760524214268938134590052988093750537167611398775361181877185699992792717157572256255689716234208611865068132363519556341643982212334092196471449512718513192112554126100834580353671748716055646453159271109438765057826230707094604100180907995797165079893671430269290118192623505842138074184102327615778292269610857354770649967849314056230567880429700408363152523434874608322821669228598026041512376209715356174968100670497632272832086905267057715313064805901838273712604513461009602754620118226876782165103543985069448481388460947107168857179416801510437530199713097494693707765133721836126390283590018932769224146248283081812291185343813370142231225781054762276589809155755893037569398542234081900249150478392260878780863943637493189594835090748412694429279636404018627600313498133676158225281027850303579760668248088323833416086096636208132378845515081331311657649352085196910080605641350454487907853715998104575693434303733916951492841421651165842049143918674610874766137878460796461878969962694478006977213965677407098095967017872917106121190577284389040475213289868738323371561413087712277886670124527455579971200735021828549926901547960353364549955132610510388208259275018876859470176153393329897284594915737057888495534716364308128863166188893462281957831739590358488363558030156573420015923919566324085063501707179085269569236705925823072730389215962337821933780374643988278912894387732715684144513526154780947514949571781059834186313173108008903178901808328310926159320265250406211524933844194213165526076033394807812206420381189474231372027663467546819770168667657149894079411223419396164696801344961043280224616016374711488938608896410200533720684340715312631903824589730736616137072233091155861602173895089081016567577192888914711254439661095165835078181822329465865251561598174415784508427777261649886940466357778151865191590415378932834320298047474198451685374433840701162879687022134738687678192886741023105289594470444599067090816337624685866803532330588675803687237079773397223449160302118266109819393673593743862197768098436097625279568943830018948281713450480263546640608696156873097633236096628798068728421377988845439668480440691952269007310203009614486922077851680513860758110435015448423521758507165113708968532487965012450526583934052039071899602613820544426226439444305621725630557037155813151558033414456202859396613421240783267838382684744145040293666153340911212083219168055355423013157369024124821646445743384213192111345460316300240997829302077017311012244988520100768088934521078898145849910098198012364129669826442887992106529529576671215426769806680590461097469176627995459949082633177901339730294703141803966557800396130916215194616431612177956224340978896947178933900596710777091237004658320997076341354963794728494149761312800373750321648465374639972737866540910683541701124412373809372794647356236959335586085243444411707387231042012176336225145139888768322744713538748733926148765120272362333719773284432467228757682435398481646863960948382199254504422664035396734474854780184702098135869239087312474171772380840913829055505740140843781235126250740480038634247844544867187157211510713476841034571044282036157023010036978154977926171618123096164585562091601218261610067049201770344090098011933695086359596504891170103293189925650880490099313717444756381366700897678842224251272289743635920032939830443110591312342066729260976960083205618666751228037227223816203881296707275768656259947724588097157937805055729545677799022436061321184883123733076518485661980176779642169459043911588638017345575695120164185031750261118443362591950952139465679519621015207664440377420129468683679303657245918809762977423843077791612420786698371708633033095658352724015783535544481000653713523675036875738955985671812825470399554791557741199691794875300275000121924471514463558398441705915052233231456161465457921790472305101523677909841747409485952551586642547424204212028759298212160724975146529986938725700101557252339324201604754045831927873291261797114878985562470707983258497567144903048900873077868233421894256381140212765163588428625773289017331410266099083580173752417397277303595359560440634823637421014539161848986051110567268286107741575236581957467549951667060463191288121248291128482417851811553635029957475157341741291421382147035598565372145882741052820194674904051175406314092750805564285654595137112300348718713148830391771243865466815045561865378856868751579242553893865851014274603920390704182091673450381688814289241457379338777792102571578929071433025409668684286933556266747857298711236371281172120820655776545358568291206299857553419065915315554212428128088038078649289576447093131776761587884526503106997006742218180626956269311138407094187310674836908087104314451421375409003506172788162953028323944023335191411861764932228004506718106709893897446427114732800862700656849364088783080835586743670377082045356779129967105167822229792347804420453799915409805178181979817140271147182555127599338999881860829301105583825740469718784231512612715568842088347725238843402640614297262501744980784644339194746712305872862665192479649510134175490727469342644763862154400246236833117236723863966697686001966428905686024705426854083681147925748777266138266797486799511729645921138537154433115654511715610714462245883475378101562296873870685385916069824580734957600625757853031326095086143765888404797937734437757369288948481153354238436867794556364024452498793628392046631226913985927116743947649790892531717377795875494502958278267251024142452725935461999288977156343898770449442575527128437365147048512952385813977025431362601534978328314478256272578136131855699567735854330122724935862510246670185500509305141501718059565074203333688014388355812558578563844775064637599231406893841855749489056412623775779057606199917986124227494975967708168288648909387923329944199717650571160298625765492463652488801721300779977767424634317605426475533092894570304887285828259730801390484381204978699331788094461192843713632791909258981589204392978267329700396208370294969404261669136359214449348584294660423092429474602383177500699365276207303853796656693238498155457445141240835808565103247443370728561869914961257066026323519891999388168822988887257528263667024485087651522533802933407842397259943106600271535217473938945729312282784989051608656665522069367578255956073786817304120523512040308769117382130077593626270061539843019317208825263515403454367729044084086955346605658820933678484374583244534982350486287195139948760964084096495098982436421880546141483080417257537740893108316340483542501031385881997970333061885817969476472194835189104491099496771287634625689058212229269167876168005529777974842504362289380989392849746340783148271250836623336868352843559039921149717453054106296989078617796118967752069185604062366614121196940013616869308025609566749493085517065392976657892435346663299730771440117733748363862433655717844681309980377734264658159971408095851280303230538433247098100968149721237779938702262852124822194163401221655997777589562000343860350531335770618963148918233355735021294093251397012608580024719959001760640298245774225305519644861715726579403387297264453701867856500028905070579719680834502401501213765354249431774154081912696909143056280742506616900986855915231381331002778863627127067356750736836116654109104926972683745329257275037954747279798609197399655520450380705206723624830103678307239118429338523738976258970058298253630364543717169105540190403487634608232072008164687406467856070841046740813060752821371389738394611799468987660292596208344823963487434551768700356712398951056286343390027508836201902698915684554885416614875011497949568437486764368272679389766889297287585556477305758412133821070241031302386518609766795088847486829815127920732526501068872100592266514402457976928162362296773646334658804432927878810179854034479210955891654848365217373339102209719440070589960893949852782224780600552883297702189603050147942826424885905472580258889098525308635562274218717851773612527351063317699727892386513061762671591764624897676846879365182631740700884229892488405205990765471789906581912408205380260851394682825060282953806019076800187666989947328513647964665055603316656658655306295838191688154056405638334337628965947587625509979882510444541922943523883681203224734238257397707031702225130791091274853110832017867220907584591355744577535247324038389610918283442954437985382777546109061392278309985098337202556652074168124916137893723381042517516227129612880989681843618036935264836399010953873956384580470810035942295280851393200400249416461984344675984143594180924081686377692232554630069593053889272939483074407930795239514634713657834373392734042585760881343011821843852206641023390330116573474586190496479851396753598812314717150161734017337342652207479448830005564368902911130072775683548220964529753881916724146962762746375743843147131073630170849863376577326069873892795551568322522878387743291619310186831895593432677890714198001185474644212922690723876375950205422559769164045101376508977670183849518527347668745010090442765051061375845853874276628700819902150255939394052501277667109863291911515996540164368470285067333528428994820092544398962084094632099157155520809256600778176837935641566966800117417525126877069513329910614526043913148874497331582256582728498182404866846906290899759907132942428712866458036021596545029758119934437142801880683093744372302535296013267096100342287488532751102257069158337178259162712124766255990902019237293514836218207202360200135686118412743582869767621178121765796225719643753884570449915522047721763515002094737086604629370345570655604849713940778449850158086386132702100275757237915365832197288652016191948687849626538866784665379241032353159682675314692333146661777473486368827594532714484094942910133413586599959020673448462069905605828370684045867348213346599141724657028490421816735042557672447142786409362947231289029398015486063020860025703802161736635767674925730634038105724586015967735112799588692402768956572801759514754865295712877147585115900729862559406761575810985200284084460566077928033680721622729991963888272360281822913680538743766433943950512365275786297303943972782986009603480869599910738238577669738251004979248657621935576735032002954543325421868610261075026369439478674618034357613265055767236872985643240449360970867018012185429320308375117668804890531000165639999528201291779649150801747484488107163686335879163458251458874780776282391752231945056755891196894707718615612850335445248747198494594500597180425149158101855672459088742676034860328777173495944045073109556603704105430802556011997096070285338349409523134527892738230130354759178084002464292666064204226810074662611823516716325138567691242590267208648976224219228613493955577306758318147479338768507661823706589640913053018217326437271353090547370266945167400866509944996067536405305050662123202366662134107846208048477528923202551987997648785057561181450102799043044719918543994490933858648740539271922451256723430315864860711718193468066495856780303771197703364086139747673934588717127145105063655042258732507923406880252776711703151523684126687125702274330824472314972806751213155048732051811001130373290741713477705369241667495483457974744912277496388400121587963101791495210117893826847118572151477194268630882464699659005987345047919474626818270118213311890505844419579124471314105062997084888123529679703516711272313225411526774097241809653201497217828911766163038498190353416682188775252293588800407313553188411638426964814242953960992978873346648183310459543714201436245194174634415150182684066115084866490863313413296396125177820348880654100487932101244419952541564842169707898097263676067937768473039357265239059873400837854206534975776031036804140767614536856824877337024869439441097231053764337766608681456699382560424062408532032305612366107010940188721425925305522970425097511603043684411895022610188518871814201845953246350411960051759989369292248839064932326881973163728669906508935088033580830051860105232072778543369133650376030783470527770226988048240797393055473223372460252501488387168918692190072510962331927868199554423270306665677446832984440422113344878949217636691591046576906861302577683390176251717823624411674988279304912995968668198443588621017127611192332185886972530600911938251510133422435389935930078458128124413170237103122024105573581993738051660070854617402082873017869199347701200178698516230547980890508687087854994967620088353698651789767970467652147545550221410235852415250210135862546026259378781439612330960591943398975558464388102571035353449723949663548203014057447794595891204778504147918557695437744986582311523944061806532815611966555094264253732871373217678877269932679654565078357898504594645618148082387952753606264660949065825719669830658351178089956341837744650115136668127684598650065645741751293463859318593125662784879505530187412623694732489058413833287255241687623475831557112991920175251281963353524351429465695853181001393360038747709620367650747997636285469012136565011561362891165060871868849960700243846729800319278666632595641009448883998518276750134987630958669267558780603150071913248837874639845791392691720428682532508408314027184946369380515425720017946571756295665923263423309727996263098959862408299866033109524951925613361268428785304032137058669068675223214682609698057111049946586141808231975797760829161334024776582235586313671749445130218727321771868192843684115160578260928373189579491546039415234053825037310881894208715309710106327181447328901590177256320232144282204206163772497479867563685607906095981934656109803077100518401697166236509747947660398774000457653222513590764871443727887331357556830456224433025761066609553580074841478260604343483550498160858747684281596165394714467536638437085536972877801917155340785255668193493448335961467992927010562730732830660599408385769952800060745402063915371349795106581020295979882448565158337836533118185837190031187545004107132231036510334608879990808083066357569491701501620476519412962108440128619760379735103616064152411899561658946149559032877694526143717815722758773787600013028296212570203710352648238563349964279370716803198193842996600971339914784093487413606752137395067965586823373637812304701910737771364513555449617699932682041841123506535992618425035387474575491326363517324801370726541255224524821873620306084511081581607223467399868882831635492297410554999132586437558443487823273504695615450868392204392241216589147919327193043921103705139348375581385673521147076195290937967348115948890165592043139467122773891956451776097923393381659184724249131283210475926188480554914794265582457787600123268216060135453705037617177351413216419060211821440608720322316614998810640645902747734226464892114453027130709378901872717745003408538747665799858078885875113731827843009234011524964933225481681605358829890445876091743208154347957929307653721444502052760117775995420030133828441226366213455465100170834963570184192195566711754003928055931455761461814369409828808429475069157296134058461286674144577361692194502481002520506184888800895351732038339547138239700975595359202655446441538905806361528645345079110569886179035233307455964146103787471710810338932211819995232283649309714943065748125204676209506707980957695283546815500485336334003646960769762888553732015959623849195896208759890947585769525731354727574000446764332502423586177276247272523287052361308573164333364175375282242612869465951944354568460920194976993354644935541349319989500946181466780303845125204685710226375960634175229598615052269013344963350595054861096146039067477474442611062935944168912872199602300346720321370260453351314918460643542478798686455333772786595057028724019571755931589715022505966112337293460767058209767332688245403133164049379552648182252754576576026530664812651556209927936570630414102653504855341968351907947703138943500280726495121757536362861844960547486628296522759883235715647889903992193128249478085747015607111257911064365730795142162557822927034452632784962468065437967010199657483126358241376430157180975285888651474745473606785787279367110399509447191235510399592759427221146359368851807391157499920746906628497130839440379687253578001197859855598098459855128129095378992054265651533361381522273019157978957480860095464002951304560379370633447796554633726243717307912428827177509279703232402123100303399833666564489623432023811809223155669329666272163978234828780171509164254731337453144388908424434836611344908915818405090085974596834334993192879141959676357421529614719503727312222054034431347821011511722219559666813235419585139200518600878417495961370008094046237357671631295985232410634647645176548901470771003106307656659969797936986791626719510938322881512572125125586242893327827234265539527240834895488104545210709493384709937158124792435189694904950220131787709252896241404951620467087137172563420970943622242668082351400056575571046281008707992160203078904115076123482389374685978866585475280416490795067622068140285938172360971408646541461380470480950145566411887155593682495603592633239415219051638370384160227364764916669008854842684305257053466795971114295168659878537663676157133171220551595527040410511508786495820175775319155494191545264181828887125034171241397755143006141011342076921278744224254285961142456831799284337865136874173712561968392571924702892536548391207034776788084572329438252295278953641357411807954115282202331489123221091214186558373851563851878307971525937926826112149449329204777441601901678334049781543445029079317099551422012828536291901004236911453208093786256992522410919043611323443725498691039009528910055446452729923495783477998364163207025571866064911810411693240288189774342862733417333776188876207837801700883767993557701393591289538496979128162587189806003304157105680468698813572349184867464411587946138468645487562741965747062618113833141987057530859124263842387822362966450546022540886850120754048022357580877434140842306488210725551499066995696893649485631566367483691764894353255095522769681938660458201058693886749146337322350432808949985946880065272933204963188183367529489507679964624607790319094916732718228684426726333751846869987724451211971486705966759125117649790819933061132217852602337652244500292604158058139201738002431283213101296831814870133615318367616642162524103110767133238523128643279759873012596304216749472986017844277023155483809908053582899542331559225296594266902047622537420624258608984828248644048640322646693762916754070785875411908980751601041024969919126837459441901987161864475586289772750062920956100295384531993330662823826731555522504205569972066675382018867934740932445826693740184221449011730457334362225852398690252944506276537337728224045971791996136801984223791050818045994549864950105132494417678711309878985507464843143006098773720896291019987778822710815797137368056052888190862219460037640248666410400611590105936978312673812857993568680012522045787519963148965888781878216753924919188082274908134088100218289310232104563319777727935424054307098809993817322560636030046335447561663487505172935327503960537604746193788090649458055198826903356128514763808046720683510850567805669858576606288378239282178838694514852579507839639387783677221438264643131702181541573584467242470472626572221765130085246787115489052009921714886931428722098945585237286857531796673600500275595819493585467357847227289943759129995250323837756159627924040214490578956554571252084290751267056277469195658358913657816562846486800903426012942792854812302070128834152066125012382999563389256474183906438843972193478929361398716867091594361802402778013699288821475009878507489899926165772656261233185317793369094204873531986489913165363860481519745135914422966125731158098027210607903423885519119395487448744937881970391844237983417527453291975607640927061844558709755397971776539844810830853847845849821887071209267174301765228581799014759137338591940709597372586374667326396750010041764214858567952892463230033578550367299973500794442932306302962647942030450976546492484966397654231591087913458194302548192462710545837416780629869036886148589462385357373352154662922872992063264505581229570413377691207901948830913489226113885610138206360830920484437220552254407675727673415714643050881193478481676279974720475608368581402249624191803812904614321382030401663319461650529573935786402416700048825184694491637583354747104707542096999761012365640687945888748051987699211388774052032721514609747072087098300632731600328808662995659412260060865323505889085582839380039329261368657926365045430877446373623424081770867874369720305309687254803494575802131291026713737474591637538087765756492966354483585696193854245535987940798835124859680337654174397988349495791997046083039007077932117063744098773382858550119448321609017723804542131113941443616958093317515133698070252211173723924075846866918985188078263897419466370147285144366870149894366394346631263483311643199778701578478428018208099925238350410995867524020253624618470533430894239398019201880382242447956076449236329704223272609426450873387662380459856604041911478440631688414929625565257021838340739109739968867008936774817892278662330002766670477072889191260733839470450967955708665124320507642054376280038764968091529231875373173427329437200993174095085082428872862746146299853449985278886726360015632676234721778925216335206656566000113626984956121395067913369875848245820201555208213148828347164303130798278001090047463908286053674379552230720170375231647066428001921816137320915375658423899013835064134906686240496798783641019844856041767795489368586890073896154539933653090714996091126125050122112922558700502379411655859388542469426996919387691339094395953901263057754721754089807342304493754699289520784100922015977697927472190587866555112821349868018430993708747575228531246164888045474281827648089086449899785338579824131882404561333774025819515239866845851880554925519436102927463940871922003221018356688719531580660810058564397780286911632124076526626887327216848497737093124725822831829139953468090078346665846360083269344162607338191055308859483967313146004973568010911903766564772907207140512475813455691847011979499954311022683188766056876338293402994618026161039185802755056404410406340759447206686697797234337083544015142490699502612243140435564350014964693172823027603098368733748579126956965001126386585967549020777025913563176202769067394585710360329656297326676263886470318199113539054178810294087983700226857599177370966976577381302026650236484816308732290166582809989386365102394593495628865920089782718472734091684423601903292089479277597432325855701617089119444685163849305601603684291552998203765399079477286694860415353414916978378882833626128823705625684983482399525264306101235275590164581155814301653029080958082952141339738418289427854729272554430600925967564822763590966434104613677001298080073073704830112554243525626738659495668436729300802241807041789987903071164363604685090181690277129630892958864370227820896209096203278070495389569801826995717115426802188304485452113838936922654154291799766067740414974306773614690742622000926050211308977557805519451887175569678883720165790788402834287824940430068136547447531412218994613148039829846614442002889767144373052396314522913862903975211543704728380508816245292954471937481500800435407475569309858670806622026078473050356844380593849113895543293004676996608177080648762113981351127551863052984867184504407389790196511613882011970274775369323962498137206474863924086331791288952378912589913681608527000460074524787574497025094313065641895066096710200011619454477626255873337809769615643826235247963756791960966165601128784548814346204660767022386755461059058011067887925519200638121450141294662729790537771333923698789667926010659381466729227954572462640537716018226964139860880226990491823107108471518282784876209784709358274484571555027092134344742113516631438004787033374578193094136302702655339635217913412016930371634293541401731413859365979255253334090465053924718015044201513412138731142344467097912643077301538172306239054056571305566945292894780560987008846148686849440052185332283778718484954798283198381963615753512923215956762589168056451535581189146677358272185464629112581700164465394211327134289164554955282413205372871421933263630654115309725137554991749741389813905683110578949191578591485108292581206027482710555399912031791826809533009050969552679123353240555581444852661832529932243181414676313612314110915836216055231227394100905403980602623780865020363787999675671647692196836732210493463657217779481664997163160648867489156934482411408604486135515347213681662870737225264114022195390567178252925250963111382179393245303418438712438485032366737657754177470603685667876974161062639721973727860542385591989207138737020830056985378410985636321086040297803870984620558398593595750318580368219561536197966563776500664297779475826110578407261559354424161139438235151577967669847302794981358994540608310110089338499248703058013851978027027774989452284298323856061616324735101580338391822669516472182471678538427050972957287304048869751594407563837451053970142436777278572347527121463239421292002685663663163017958563590871476241776895898644496234286743057129381290111792370803295589709026633710141499623542924623669355496571097016324472503436924690534139097584844613152647539938956092177293345184902758625217014848415014751826776332018785923962113467223050665150059031305799118527901187671551178580424181286725628943542140530581166473501310225688865176298228136447603445984227880003310760154430874956000070892686263760028132954888464481363231205952755149078928301659553861302323514807362213257006740597538179781339154295951213259443243526982781470600041593455762478371290414916953987798952073946104100395989782387931465382482551261093641521480103445881391777988238475232083467632296709352384664248990889270252484826649295754278162310661077424972081737244391255360024719074361086419787942766534877360789163223823809671630245250224442677653544042492338226176571047187411181603154629339759973182177876400296630299702262567238389316977443062286162860152395692610830233707526538205162383587880932895521157688490067817525790282008587580943261260510478311148364415761493969540399966033039425712463348464001478265887521828612710280034339475822907430082267181972495876193826115205255525921473370025983335230114342506101773143435774223398493738818744343679267917602994216326329806946885573019526869877707865053739003411301684309043945992041993085758944742937635536485476412578730408439511077155608574686470490586556423885428994159083248067448916138071055079249056158496908382454583648763590149173974045732821798350621591600975502103591920089928687837450750847397937427250831834383922661049249498582323289045108773781868094254167013064142882210975349981677975749934902606731059889061160973897210553846631570431684865330253522502039001973573213059514484437276633687136985816462412352662738316689988085393466318958956645543268880740926584919367981908451437104319587827017856422393260973991499943458444271846346853132870285048489116202222208991870965709857976376878063986052919224090167893805474181295087075861117950575184453463760378472160859179687181906198958780824625103710896835778747623465841196700726865740446225596320728377777220249487204385072615399332864094867012325826265470622146304376250691643424091505073204582442065897592197835054326976695279419386432424650321609132014513244816827583524565706196348895817144990609632621242334542623074660363514946405743904518926679200125782881675810453611376184619602840218043924625977449106056068839013935953814834746396861778226023977192615681637800755621865540164797519016399933639380197691940617261084566365624882539688561089483822011116593039070271199600522941078956349219943496843827003605759699662127814767089120373592018847364826422695757453647627081823958392429815791350406348181978809705490698707487091203258923450760164345594649577952301658242741533023498307843404607862937613657337052023044708768199346594448290205750119122447942852100027701795283381109544461993440482664878675556408500183375647351798495924161198162970958284408441375552638520878554883545362033245280765994739819246208293983002459648341088039423143934860870879724031327250724189913748965638971382915618716343906200986150363721504822843307615700728178732417186882373136191715689607093970929686613208963387573287182589067955089506578432709797729430538839789906092213774151741908901030261383166674668435287043319137823291236189643895675040912915152542594459357101918689676709696531109233401797268678649359162224813993412976899388526627341411204037004434402789526638270343804550350495398301632894190059923029596307322575407585163341181717545343739180736253729845623449323818753564781791047871598640203479654047092694314727783947514185734261616739167574083789493311973968651534614973937783729320205950937754979889203925680073407328076988832909631507496730177812436319229273084756136831649034378197848083072716478083870784554874766038023492642339051590536215331766969857934250351878795089089757160730442581463389623224157136957871363588297033022126962884452846682256981068799692142196057032434551528540571117388780264196502319212588688284681491238679477216523679967382262516564972919392567048627476341525475049335440799667868576180800129994884352229237183985643733893786465136353537905153172515763303042747460334534424694874981116513066036567452761403059328166677809445379191430259358319760079484613975305065846344812816022221995375562500626439247313040742628481827250981016336015702730514877360327223458846098269372577605674484194396086595716235998589275470432456020166599441607884461093475275456979961455056950208871789947825377990328250867070516828168176821719525286383714904587851673901613243853400893555318607595015347733477415868075103216810052161612059827038758739313793598304793473486778972657755847798138503071555260881733057010376442310569044516174582905041777936251174547863905528214869313536726031741466606900357537764098570655312925537875497775435677998084432504265144649362720159514828514184903734195793747126592881893324444813603388797159263566405672326234848218407397172406738868471987039659566734825495406665513293325791854036756110546564115920780430115607969162173029104820037518410175495358595305362323039341703737259394352519332154866065495999491181393639446195261132660987891912251189357170436220930576778441704149757912939538366965760054864290668613782090282465647334158505604425941109886727996706320602274588993978977878015490076529460882999645172717841797681262121919893664503149719482931818834620504711536903025382639828434793115534464000406069619252506064730487859697521358191517919808762547642407114843501772880954969352525551482594097892945003846856149712452492106957246537777915638432744569471003679704123267037609952323627350460455549247667021083062150761966907025946983471290696365281067030696332056436839637634845799058088620932618642025963710869158225155375703548332394127906149809005646979987241374611511364574545103356036223469880338883010460137595456099576363034010545142210484832016303981030680041073996313464465387454528410631334849546337942846887971989559602516321246712811696636634879719248329699386523950243360011643359004082966795412306908549773895956033270047766117260827591244999210886605038829592665481259638852455560363617278401637220525316405115458449277692540607755786257269116583506648081238993761611511890856786147724501732065546007966425302375302738435134373615340813393472721484518327772086650986216589058316528708595276901908820431115047782147959636042679174247859530598353382021020805375363470080791699125698948717235221931816482784244979417424861532716503418886042773358586851381551097317278455453174808183093862484231594846852071182350615037623168904379228574236244185446071312573071751096779966097770686432814195304220334181378136938989180607894959941729246252332285335664919053040523805528062971252137426554495166233280715581539311158802570230961670744526485265840792060787220262764533301780527503851613940811261946784178483483501787741161906604784292758477171399949950478789013731026447395218090453618867532564901646768491593281463335203474334342654171274162488154955341140255279128409840026730639979029323531333697959898880053672855676486022420531049334313715081346446886956822412115328699291411630120731323190161777352715818973717673595682041002432220799621222833756759087380941085462400806333160581946298798991936314684538717874308710455735114192981557878002716026390798936801672955936391731610154990718393536103215161341479290696766912569097209927547275747885553131260198975430912163812524482003155019042628595121502937839163972818789247990994114500606620731660463076336484646363372368420781825188921340708960548791522797456834371012706330504577892303253355323289437826523416336868948514325386586809053905774004020834715839934258829898166348379252176636717799980885211684735569086946843406015840395256582607314427512195307563351691985396247032873417561969649006614052963391084779858538855238565159933421888366313191135746126195199906427249258154270488217237307906211025700145569082669946842964861583143159334853929808458085994612796477216143928011394145856001722177217570959506511289802217466018698035109364789224092344209601459742000249813997618482621416123661363318503548479606684687955999296707655204566068443850709996159103667575349354258447591195664976134732334953237353418916550733251120828524212792524105900164497418905575865303524101787210399328661782930025875686478668207492540931170490414000651316820826742171611984162687347106139735223083461790904035406070084909152361697655831775635001901432341864360667208220173230484929876647668471758820149714570568357191482697790254690839213067579537054737719795428980542938823776367436130020003066136861043816678416059481471978166360223118438774003185340693916489927384597199744202380846826486929238185378436272341740130386020082746077162919268985798207388026293192624746291679941865485954644956728434290407019711656213524911206723199338550335017842414820030382322792550117503638418553336600471245870894298798379386647648085976396452529012548331190021032679574583727993962424971726304332642064627247742026487451813601127243250520955956818924828255681426289989166312891494107721252819399135046180614927139960968031253007631341177223806002715690190871455054802311944011429258017963258582781016787575351259898368461697397904234992522953000565522853423044734903418015150570900584050748278629857615270169418818238381448299846180652390108468543598256046707364189242444229076846774736012644878463818301098356482696207969947104200178762337862795882978712470157319968922689330751583289834762317379277131869134558664832446684175514973549313838049364642465570512659806252590866331524219242238273971732144933477433616325303370451477248810850199998432041713938003031826852587069830321401478107411139631287735807852313949681349562546732186288985893170271897738599820526464091492719794043651167877287340586411049591645451232854500926237101320556621908378548902842791532043223200081123898810519999986525423347702003751292268280210142220703095608986387565463799211796396178778975435588263089444848953526931482591742475146098369563582214908960722732766217269662401903872072926052431348849916001511337557677872823598003372650538976300644289482500030760959312611114007507874872903099561928336193460190206163466302895458691273059938957916343054067630090320408583942794258591696434043191136558836072670311704940856087161023832330569581592646532094394270370886196366022961291431246952528464114185445712689219055952987124988268234307025085022744979997288499905499558341382386615389763355115601071038866632852885461032135999168786757668544535383004421342666700765090936323760333782736007249838121820152670642190937150765087069661227850658406503523545537866564744527953189691996666923281923934984419225960293083750014353822489735123773365372802138460004615868785892295349915496518433405425717260647813487113951346689998263187245003405005931697138197853578814490996430259886282198300347003117444443286469411669086610072887883155088954057089938468167593371596413087299974765399871523243608195935014911042707891618329296030400410968023578933100821953745872375263012178583384075854359035135401431861663780622707556005914572301284154307289544950692078968584933546895386765381719176878036516448413336141610732046326320183581676342423357638609476717110044555147538924900857628994168642374123065115595221985602474653586995997526254900251020828242521968925569529862424237951958478728643641220096554285284872478094384159180235723757928921064153321638369011444507763836516092926918344219292619311601694353190180776595048643947543614220665256426833538994632331549719700322367554591783835510398746910234844406411475823273799151921760651962032648991641123089821078435400824278287555214677680007301898232324539304284429320460900469461843859810522107916573120907403088489200447120637771621483396242157239742482805825095193586976681202238695875704716952902131986034688787851997871718989464539270827166461965191930851718249262179559984860301860900086253657276888862995092535286755424578748601581696930584532521243214726465055205089233351814692360096786564960145165079050046828069478472748785529838953279938258608044317018173345129125455365204440402166706741274749378403143016964253012535122282247623322691136907278415755485477454785969283141857044649099843615281087017567536940848495130854646307880123508202777608736626021407485363853907436793391110308854393538969586687166069351706882441544398908900374260839946116400386976878004502864016982325205424897318079122883016803307627877472441300905073897140758945209269772345351731485532441445624186481610465577671520841182402340071454421139720255857284925703763977859564424491804658167947292371626432806703357228165559248755169323454842599829283347151291075911125344467503317376622527144676293890941062015874573166526040429978260610339978393499989002754152142147464518606585061311010517568087535371105752314496589735141250206138172889342256602241490139832428806305391158555696109827457993568562787541693506812037051342037724472607834079052603052715618838896591467945655252672366067628941864256083415012281677290595249931493107885366905824570018976072107731673297318842379331553450927719492304806594842490394263879534077819512640958199041073132662252788159707629797031940008906030792219643832575911614538290593450747182536892945485280873997610969432068191131606499420890891285876819500605385599319011907614654012681671975469002101959118120909250886204249797909638812104859754464866051920940172951266271167010442606643893269760501327291717471767391615529825507303707138421678950707558609941568107433869247376382324297967538336548196397945742225958162780581038294489158930913188501240318877006789479330913053265923944364783116185798603960374884965235551974348298968316907416202403025295081430086923393390480350234510109240628340869708607879618478314631956898880808309271679985777798940846979364907543935106147744859142441508637604187578771805225384569102679579897915075766520304201142879891549315405689482133633521231787597029007808570631858201215157269815736446178866183037718973893944136985790617252883336159282133982235277226025369134018052132761953129327600027346077514776899562862037543516852548365007532647944124065060654695880003838748584667582026732503883770164860573560920370920079335745899740373716571395276356351585807806893210197737586928682411340687607534128772548187653311066190352074444967613419513421441371878873411553043275721018289369149847867633287974268207404138157881566503903976248207141761422274074630924289548131543877737683216133166057816578604968742773849227508085896726335339966691362014707216287014372007871270619327967269846548800858697597154118430380415558009848381650942717524243696437921767769241233349403853782789573783450576137725159625432172800860387871525928318922791468796985563659655974622644110311098472544155394289595480833622922535967539940021603499601524452996239278616443570417764227926699801212300757683864785777331072595452712238352927583885238492187535043561414863180692528660276074662465830550569754932435369703440129811821420168185068282394396964789754445882309168297796099863529754043246850129740155232696578831473477682906048026356953216137834881987045739679987070164546659246303027096971831625414299669278615493323088829617346126316753552954257729892197215315768351081503847804687117807704704213964897372447793280182656116505577236538340415745721883102545804699072957317894042478491144482816183209492219704517510562639998610893701419682278434838496100825266510464309810686888666363036144638144066122055490014025944106099035645640120623805942285557518234083692557838811648655525986079422520252830321923670259623106120395514583952903715281053664501691258323819304376237906895701388735261540007067991219977160807523862694146655367573435871658930607148882588395214120633757715741156798301150043605986352441139494140688226674336191318069476024395139478799603400485004236490308888653079393208809661636375111612520053332763036971666824725414881858226061409167016402287929951105765755480340569710257337439027106618921037225172891443876991723968766377892066511053449512997362960204906646431019463719534778042153655042436372491162979428849965096818576956666899063525570092225237730166566977031905067286906156925403113733055531752616493194410470747243717119559632754401071514011973941835729901193760160008597136909322937436798004642534845665254755429120620575059535302457809344913798052968522099610646244848138844142529117973195505572521143654389242021111410724764848423809935216484345448026803480209135926809612621754263327406796095577013885603500931921240878989899140407701993560459306243181952333931610211613025282034939787253472451467837064084994666467803200121972860924771978965124751829715053385008527797005544585881220509925222109561894982912953795631604947476624882347921409062149497851931358989735965629489299925990108801813903955576557202864541436048828407066115624567463003339018941207131328143697062314871953771639391978489409300326632188974824051873620202536650322160158787535074584031721508476737739036577706642767239052141079885233134414260845923186628381399717778742066194218928092568591710690145642424938156464153332693678383608617968870335469287917014319737282777775999720431074530551653112876355171354751117363995456515633893472806522369950122694922621856058307447407917882800388563038008540119231199818184350917149829304364720006201667656694798263845391979621205485284444890659244814097309388063947602228468784070872646544934637538013331700476168048663624215848577713275770816408112741135568425569174820353746818663936814293783199646914932569370398706998588501594054083507642999696021063281602639291926161120416578587616259359950574095003041731845497820800554869519529908261639642641622395677316922537265054286773832740228025295835431780156321696476855579629296514239944041072294267966938964371211316084455924474336864135489345372048202443018684574103532931059851535717037862386904974350211090610330423217678692397307986570583167186412573874175692546488457509361000516166165135602606350098438457275238302227123379683100170349955173548959821925636825235483618294796785015699242708974962434101112827524577785412747942694596127280202516264816643378089524847503074203923445116744514415593236342490298147133978598391955491974895478741568065843850432378344654434623646622809272815493413545832180898802788635245153659174157039717511576804772495865461696546678868542039904530705108428246628247365118230308818839233137005043487118752232172609612975791859305555647580583254381664973859315608555966813527117950233732318272994426392022180513318306054389162496834743022049994076689830396346676821258239220133831765418230280909257477969968660583505753679415218991541432763729849209127605719073806793119701193860858876681306405497093515456709818836206434022838451006103352708327514385719975813757408953121535424907127619579996026702857332444306304340461619925926290917746486819504588584902361096764638409123909254746833717933093430652747845125635758472250800987358158687616583339466885932868275368221473712515598280963737065579480348902558059872079979095498659341663460877245464805446722975899238761017170233513268718978971933587966729705109115393361981312028694980837646249448881768985366722260661927478972467148320526539803673710418118397884921014096664377119910782321988627252856731133290366656415793816920481787086391558864391899835303935272975619830742937898892965165763127463925762800833620720158826210500400769662310976994770340235975191838032942446030170123719956167389535819107548663094111852739768799285963185910940593574037120757262743084569716738893585353573796825456544903583860917925662791925514702548996561622008533509599250120254217801778138106056146906077318787337547606868355474194196390049880469973438516465734350532284556699183966408479134213893198744130733441848608812071626665464391790110740604830602912947336173716398001432408482043484688356014016752276948790405302180842298543311245272325603459121645665893025772099425751265107600415211238581270374769347040648430766549929834370507982347057087854730506960398904920783168943319431599320219177769211821661686773259750311838338276721052654566378625823417008472474052216921744061266352578796163312911960389907910345820215547723934022925009781832884056327963470261799925650895855632751132265479501122827511692634221119333474674754973554788325521463873695135619194590763773987594062728872248618168994772442958644329253725662187894119957261016341970642166514039800878337564100452324092248312268580603393706829312126639145986726503133455110537521760307910461126599308031209220800490467353327210089884138601139438105336550622483959237009636875622294791813448431378762311380955217377580183687728888814196533662389835731060848740927910066395385961404322621775131090943207301231046169806875586301695081156108160114014215041597628684328486155840129192855880271714803997994678665695762781169844403408646134044557534854461445358319324187194235862991208113298650251675808977414962104814802745890971662954618580805904907012427584732294517545408800926248024917886998500129760467759807542310295999739885421471059017057400320059030554138871503635128035455675443967761400089187601635970388880242861274563261997388559603598596270857432038383404875844535935916508281459030797205082213059726852924291707133620984148549574251744745552013434969940019214442083499524533929495653808175636137004154375308247089999147952628748826364387323471901772490749762262745305233841928946670314526739089500070471881752421055111042995756271252253940440392653686274892471419750074523796673381201052719194270891925474458852759449324187897520150629583744129073288759250221005062158810205009443898873451519707817228591132823800588360170329465133574410961802233267282036093268455112841702643659983645391342197037370039516236633882617221897541409974256791982994092099081606509428722854046659902466245163069913944043510328651369241157431916197415789422245175817738065770365159426495835075265644498026604617520017426797858922363642750338865887860412312855836640238473758566136842409522650866274868047587390974640878367684873857691101895507831851217535459299753826304383949984095834607493516392290868715904368930976674406012943214019891154865005618566129132803150431498575789139351945142145126772229428228349819130017546663265960057398545685273472709707972318838612185337393982830150849638705176542998796525282377460505389857831077163289568193809792985340100516042423131525665942350212899072268690973557542732492882720902184034601308118411419718805168281205730114453499684183541305080341403884509365420264324205514928855850968478794888692195835523502281638051315843085351585567769665286539486370018776751594652711207501883204701172311303038771907635807313943888089924987963253484056322126392669632917161067890486247685253124978158276653221725845342810599768644752256609251252512905961332288178317531644924129744734274354670347743850124357248819436993013277293854737250666710806582711185059552816362603698173415967009243466757752150530063710526344370970297464339681029825198786531204173916310067303927493914742009597789604697627637364151313221396361650100974011896997432680890748108899504148832536653408936796974988465701465848678173009110986193387355282777892278961493634746681790486129723582790256090416960341610169817740171860618638242822707148132991124600695381237855209893422288916229028106791720005118813646034614721583162144534453139469461794277521929748558252432446384992764305130475099222924595895535627529791952227030115965963553633763705956668020736823338738943035544942839248849843642275010473768008772039993407679879185460640354434127590688924257740257052184315894245347320947332319470218198729207535373718593671385055399759232190599929250319414619497583541433942151613586278398279808426825452384297445714510733005896689125199472163229237373029571229640686891481302870758387361227827480115795887615092145263732657901473582003388795839611687651015301943963111983181874782834921050155858757676738631926128051243917913875923988306858035869269826888149291954461553315671682215008106544750583890519011241568262859524028899435037289290569481055897218023770622248054405316759344379167149644181750359022399873912099302893844229925058294208940757138724509677186855373466889760503277290943701674416762438114147588080332081401921365722248228955340759604195320455678098570932110992816966723369552148667762113787229513088472054451514293144546781675454590013370008942706864358297995316980926331249239909498449007635383998528375387880148121195740950721729858572347952368258406792756925280395674293250918546494156049994618235048177116760952399310373088288649476128962692687519731187209824992840449563432308140920408610389970370045747766720328469849186831535272133679657736731120942499996970366761431125719425542549503234188723944260994962369458788714344440246981218119341665515625109770792677573883021168292033483916613432330383705562907506945136638734600604142423557635830613292912773183116081728184199392866651954373577095028194675593998753791826600497461355651165622819111224513643916356457576737228519118999394571447099587264450888119005855102023831188678794608844024705568577499799077989616129409508749738753970443126966462715081365448079436279325293643141021122921703768730654567834622897623196851634305033724849725142911208959748902326080172203399296925578842285792963730070807352438804898685274207282667188939253241543924980631078048402830821491319189331783991588123337404483818789946940932063856442230843868343911150769642974118806487085213004371295123133752579062105751947063024414327946665804655246526549491064257708039896046870647461626433863022870474992691330867866709861083237795448039654864352719238743150340153924080305137502942240509855192034259011007817066588763417718218376070153023472306807960788710369799044644814945345166331826220973744763065247266236435895704962826397498898058433992420469207123185867440605615479568797890163378330049154211640332289208620104978569037156192708661707275625707711310012780391800702338302668828903830792917137789109427507239136190314478498647809687107941086035584811135365202248722914448035278486213458677334564890788337926968480805174764815987370802208570527592922880196247424952582527266513806018583466797785557520062402949263811012437944914136690524696216938989924429097751641616049068702797216254628014464509724159528061900232149319151565312295343347352260135894301838092923868167875945388533076340860406719916437974725218312726990674907279347949009671174782154260022226321223821868604219806879001746110956618566167390832341747200613772753057592796734433291091820997636645130185500358193656930820895698399911548620924191018638264799649705456230971442260510401012450213698608081658396894045036128476652285441720768596660142696963019706444930009240881221569497692347279059456771761762971167796609207449229751187612743587096899503671115331659722835364565786615156448156562962263899652649406136622709750776363231658289991621220430403327538089920403273103943397239530239993358349488451782443580629155677447762599904740148060451621705869066737330599637306120819471808431303743594459883740580625361851279832521791936193566364635200508640755310332532768138967978598912463449160601810171992662992214843011058538609313880587633167652324181615058296245784992587494409936255115307516949752673398595381842578674199701587547837826689317983259600177879890088681581929304858907956138314613291298199193435206683589109463239990867978095956896696044143571109258551327663714048720794451777653571731566597048832656146540303319343176702558682461515370706159942090892631287858402019912870415929072127366720760686896502295805435339700356542161145198719223413232263083652186801505081533278317321596278862859344736757449949072824446942182518334284671014116456512879814030192808873100884953273514146595371566608275041233618813333748989463348648308899949050443153263986072238291739681645441135513453071839202172879961618131918447514069826263188263652596140244326910240016383937097757225227191838665860005164897929781959479456402232574598643517374129254252676629521223424948119115143238269588722950360427796922144432981438538799911599964329351583462797568042675045390368527136123811644539686930014604532683334894010528679465360389108180785347367044537176632430383547781921779764799145884292599879513292154663637459081595108827832429489164372066046494715606672528917147145761280005221688471613313175251480586132303677535613730647183821661962375073286343075073984598737542554929308253390369245386795134501356556692204250316695776505135747007848429025568915719142429174272844095306680164357639033012780382562735585532813202941790418682962761718176079206120034736855567133760992934457804157176427274828397492834296675176917657127259750838850919579376217723999808269048654125453966498578064254849111474176978709727536125295979513644400687903621536513323456078754085267625493275151799994928704631332331099020888001801829330483211462339477106882467678325587603751585798859713741483662155618970100260030928067740699015131207833629517978887763960666265397325166900455141113399775033484275472340702106696230737184286482761629493911630679814441031725617973072454734717551251727192688496840942599717521663748443662480022672865007847274019850220984668099547640529763150938854616513247736591290289721618836824885138620722064744701168199784447833221979557253556214000837352549877238442248159969661171937337855619829089890100177563928368321751209723136762488519617370951696274891669545275845883229911451277739032244852152570117514867203025516344099905981871796621916402279441352620510908427666475142502650981947591778861815327169595460035546794767438598463915162242059491764003376409387581571577825647816522215104562049838579514325007665047384490782937195467209399781391748122731122779331797609512369965537054321324848218908448704649472511142516811416655906440741544271280867870816317238926746510639554570160019174949562768707823812850270419129657603304378497912450173421658314697052665391048769327195499640064378696558116045855491463816553178727273746078625766069959303386998696599118329198791149898868251972909976984604774671512265096316724852424148862433136874909870420740273253990810472717194437973763689391002464896569234677517520201091347161901222465795681652984611816064235600070072134250744604254187495547782670652655595975790113520512904573912231692601900182161394737124773728273177338613553727626766778193639927799248603932224574905196666002403091957362440631479562109026377117426547684568632953053238522561806262961009356345443156401564828464605255563818297599785491087034363910237432251545710035829437398388341107998488322386527406476650595096748315811014997405332788034341645242176135036165997800267381649159479562379287308662202398615902393315160623617354147983074870606628798226041547703688084049256589868586135228983194599758797293028513216675121439811704931660657742235343551869216955622478462102676819529780426145782732365965304177415417781480453268530900132035422760316700105008066950686025712147094018546398468154719391307083980091245985897917216783656618876590629418839528983468065545678998302659656202220070349930370381883335294958102222040463417141918149400044977303181377892579848909914202309287384093191043347683028859810669662946111601058510911037257581862364592565024067814224785991167019911397388173390074462728725736927693541126911503674651778758423916037629575704722591857889121962577830348426998863567784668398065753510627718415408071576178396133787081612340694869426427185244904692723438449204526293397175278102611340069240146970472290036200633235979671078079585069476617783148904028561134237094474459208623834303389752606238348996001458380895548646811510596186859490532526819344364729558612294620689125572756654398113780313857985119383855047356389101722117719970900612198974275530193449699673664353363205290368780705804150135028432995371624848703969425697997355750660243219432697895052751926577918504760548371478910434595464541636802667828674257769736592498389996704368713798764719174674496468439524405436318163312566746818014595726492790060900502159495729580576479157061339342112061746645954296076191600496049184994278089423296142254264161415551377657642331339704050135864828247277887826891452596007414348965483441096371371230328599802651013704760175330022138424032038705907654802658097250964179385444540083287639118914137215673584741174773188395033639253375485160406527360020450415074879894719019826428861643686792300991392944740327493408579247916648354501712407386279994304099338914818398706206849971620477748646844333439282740194417710133474271219817443145169167281895376907194242671781927605396924235854450070451469536600220615839947002958377803544312057512477326904499780715939505701440740352861219279875568001971869067408392571197658879314577288327066251074917329268390936361836591118094659977903066371638783263589824283533215711734645938952261659416880942234399379397302767574374028871093543402538767178007700716007529495429513513230924473800316854823897708264773778589546640629280208328239738040856327744835148652327496988973679209177227173583085106280310564040548499744686284095469953433723309768976513220543928591528648157040691844139063789324209291874216363798528376861383692064238308198967443507452783303471733208398542444475072130031531902750351275454865256288636695210516890855374506756405044414349324814668177808561701158050682622807951801613229752073638822667386422153547135168650675731425028854934990615557239137266827247367446418647489994742835930442442097054407370223260373963197122039333727717220032329135174526032525373111401679749655426984163112763838416056705313707693142506830103757514015707028162891601963248136693310601222516942728133399596623193935382259236179274902623282170770174369669505486568756473155949914637056509342670376727392289917941632560774860426537318008628389631735138298026364423441864935240548226242880980100291051227068967046065823641652332794052666918256737265850669212820027715611680107147468207359306452162009739521543586326169429930768322794491934545882803638273132636585703284645717933265613239887727406140189627091600626895942808277143049977666933550887089526686391411089899831205421490168414018902706249870632021951929819391859946416902060690250548632890692511505389527130820042043725050124459805033372056943235513923953830214935357497752679448317001819449563680328519743087127455666035235675326771572252038382775511796984632363493818334952382817923195067899054161937725399229864688155843112347954451207566970636376095908504258985989912843827421788234553990238923262445407654433461651600260778574838057022534866911223966303165380481651632724995106039456394049240215159958559827530726178624201997334797545564427836149307506904422957891634217924407307656658293445438457529222192920417389247713433253651537194196747826968796877500400402769549668143980348495928463619375005086583290737911862137706972235859879500202321897717036110783148286772663876969401500921266014961657572325255290183263740878866524488539035351773040676362300765217775886793720946418271904248084135101723181723867613859204322168035506407296279460932613651524591267733204331786382703065898254972798608733429024642234998750751827840300783846062221025457759364154176304674788078604360755853138779858657419446360638146341926436705707239972668015808175948766027544576438533447005304628916899819926678218550286867793123162476612841067871703552508928344490774852539386635405867434234320377285452720214832649266572695678626966373476626375418776747131554484807061052510167916034210047082192443344802716822164809363653370243237521456117176961573085586712376035188053487340366496369049750267082591157828569244244258026064113964217683839100740952624645100513968739483313368184369591959547542311794368447191335348874471107029959602234903364834214227087159136395827033928869840383298565269273846865847033298944128107863287406759286499812851746778906622996360940746774734652298901229882471252435074124579227105301654971620324859657537723751871619492298496297967423524212520397647211171894373199085004029753404481021552903458116610316429689654909320864880025019183685862028492936007656951788779839429389927537029180119745551932372035277113480683012776899018679610706508391448098504147486772761439674031765068335680064334716321922249992250501692821376364735791798545507055697023687159011349207290196142409486388716354002236270416015057496584391029823505069675398231263611627197317481949991729136717958266653751483378133621346004467237722607547906587187661923906958980996698867495762919787357114221058536661349037006990866996059563393596366503409027566107453879134150074854794542220706646394439591639920246605557730412314216738967865258546909091592139749734991037898466283496805802196321770208302600435442352577208689953029246578093629875544079918085072722674870224100846183704788665482181627756431699610927787857822739150231816686449051221110292642792853543378993541169205560350519883008729100870761917526089897785749291995076626422420802574123446505327486935173954900812756548253338382411632359198818459920649009395690998978822017627764338313093898163093042124156283014430248808272978439782013507242873075775228319994534015445942889536753014360140478129806423826193640072267100945522988780635501973207311081617744218393929718474966986849722619530234872001266715681437906436324838179574634498495808341816508749366770985517065548557556123854608924309362747913121133633963642671936594277907384784766123377992182785216208577455540399653242650758602183833974592403066716869479605862430695159115899160869932568876363390199254882861464025200052583589167297407784335893195367501868522354828859402409677824248708566270152058253298122523329440407824007229798914571350023889759661309536099572347554296247337812119679559321171492553174145471471068139373826094100871165595904875262267574752915553556990073027810432096997910111266568847707396670608430819226980499667257728369169777471515514574041476552799449154585080756706822207663820406146176080831827762190279916709894918267579410288637786870357041058459679053489998930138515024236075278743719281438240196587175153441700699396512895731483694604574419350218467736629044573818650340104983460537112725057244370869575832978309746117994456236294207311396217571912956489821352557043291373298557350888464259607833686902544968255182939442303218571858408358348808010162420590163314089154405543232555037145605024668978707094745687710979696708542405915795911138172558724778364525482852295851697207872791425285859597422507290597969374358818893645176119487274507745031919900270789456448031864536406144433253542437693346719098359143390177096024654107291908037358098520398591786025446262334095828009074778406485265816516221476641738074057774146767720145067402667253029897781974907977477436031522522386669521261262442304056886734799569598529701354530233633503184743476727298770225277313178775173854488114216412624638259825093258518189746348542060517299753171182940254952757423613501274084840788112481598987751335168247697667816202369676863349569811256301510776270122891205777357342695966938024547497760925387970337410056949270524429464628712138245018444949097963188481642594932924761673451980289015777928560051318196867131165179962425501312132447198147946683358987930902976603740295950592258744313252587329838038819068172896358659180949877877702066103168098771544129746163600670175042607831272446047940154078277654718302179721534441560634603859515579558567460889884899187553677037632231113926811203551884621850359447411413572409276172430464818501689893432809698582181340431446436676376346304648617027467077058319617094543520621590549775526169149948775624098486491421901545219365007636911034201594847350420348737544173682039985863312779311046073513335964242854587357891815863876485348945280093314827567045528945413295354029208986179025689828725974641699789282647583348762010376566195696233963745957330925258138164318065484516879156748341470985270154561738033360339472931419954147363474564494721739323245494552041018754296283861309396215726574921701994029059207623747030270127379583293592851455561061201097117550656362064698585893395067293492365528527508716498402029760876308780187259108071047475868959873982325588351748601237390206667176964758570473743929438797941931110547696828842030527448091488208245951896518695119079630235972302298266467517971341173379622351409021795130443969968531652330567930668712117199067179909713267708829113044173193223459669772494267129701794242735860734893518680575777377218705133676020956512112766301684787426566949072237517623157830987423321238631783111760170952097384157022749389391719368255138807933856935406777813296312045322201803667396397518280121423618702301175546952507469580505560484385107260613977160322067710857129288898052851441328385280514682755064862197294800803711541433498327056983351407020206092087722717657685352234092710440729936661370071069501736508669827151685212436225430672332849648502751504053323352685621031397452900344868867599942175287094969481104789701756159740973174745209290014592672906293324730657934860741074881359609441219928115888862655019615233304558103194378350258710272614894225280119864191399905936212470202626466686006376838033322227725199216561857649669619110060649521513065800727548608395116186218552339255333499706147957160095513203097836427318206723950822294412925456588070061164631990254776855603673742455329256898787047086865642000411354151129679052724917001822028175367589871035021905724932397038461557199533573802362134900995303475439945400786494264586088477118336510719477458019452989099224378258015734135532277541508736814122759168391456859942899254448596693579013605125248551360688211355917795963944804526482886581419336870196492660194054400084610208798249212282624964189117246877283357354420257806713103889818785333685125214644132899221062194629909703762583766410074897297554619605208440766304319333766090443468574315835377596696899535549120701581394144123297605583281516312249622507434583776147808122637219702969264212019116704160648440988117340722909467941225555052001885508057967262164932993099594948199511410018679692236237116096026238182457868260386252666847800492627522436465656965114793178146650534025674157826944920998771649947726695084029018302619012604249744576212813588536977178446522792217586120741286291854552003925017145907083750237762988703909930988916315411511474802217596105765586840810210547237847754795311834259839739765163103859387093556559679539412906223114074055021660835603706471462217342317564685865407532152351308422017630754957324772321274887729452142020719287542134773196562711181315961806795361666767331547576355491325837103501429873333281183367803107147704127058801695902391813828906639198464787147900851444490103079494044098234057850848600362017835019051382060820810841585247610168413233302477293923249416470390602705092385627614858194197771102311688132115373687466038346364576631579339288236877675919705800250822036735453855263297818366512185282516769303852569285570820444336330767221245454949593722247511484571810405944675850743270744692406305242556375212092563400140998325504593264876183858485564238988431400916082765238310757196488381067386493334296962448340448997436634354938123044009633648915433985002946751691396543411512777300728780088658755316643709813984498732153905730634428520318172851074444243227030575602124206564102509751826999438822990187614832699200534741845682739666507153294316420050615335498704027400717808215712439471990626114031784185189914805153254431008491030783888871931383947510875376254014324561176982231619393376899036699057883417821715028648149946656730428979243575958755290816739800666224855638786182435189682414370706598274407886447514895671520719358663543522784461136076977069126203944843460871604168385840690648425666102930611128406883327804529495270901741451485193456971844417193860847742817151684517007926938130770793759389298165095840882375487924736979386487427354196114653586358468243575489403406028581359242364991381786537430172519443546191274959102041260817622545176176424746910776895470022800587081987757404404479305824051283056482732165833475722559806184725275682996716332165234389042299987916261197434705150110825261989195192075202445810379719643275923881145777863815101646538398736641926768707411583010490084759745793628590528889362894577746813582328276374729679688182882442902032488032792287159369166354713275970846673443034035176984799154608730218084607406831468711826139712322827532779688811745873306718675915451449202439369562543602283944341611593175836337887883597953287275262846205385048942022618338512304718912286407810706744491083813876100305960954758873839086455536158324417925950726607338300288533300835127311215747734579480201049872244660188272423743635774756305720704246866950699810761148745434587495287617252722919634647585011022792196506406964844424370715898736617268045994494792106015289037642540054071084482408774300074204756011002160719842963745686872039668379598676861027907706182042127712852351997966347009840862170919769111772793338554535487134811935977075537486589188582237634670784486465758810526919086343336109575148847665780473018297538363106298515262073151538374776700257724503039365472884246173773703045603946465287792751089888562563876048106422990311275031247567715253668739961480072714439413645605350601335945904317139913469254028442949830569542808753016490017563760681159285279335884689277362570811689355030500067357542258350684985716921722555156212980009911971966145660910220084909959490164355128364649147328689165320580350313511580862547058435519759670705016098297857570966641896563215293614789602819880889360896447894463499856141612925413989449778024297603960897618528480749046421328432412725744857510759326915512388237659580342591638244833659800300826761809616951584154034721070366285689095718724566181693169218566268811839195209877895939448373997438354863982846661756351707002750539907245358607245399191312584258357081940433592642151561768240490352443501122075254588392194461212947759309990265362733714765761429784508539479606256634729328974069272258797088869875649619197227834668844937929909060947324624481605648061286722970939909981856744335192038295487687998749213624467773739657961851869952447223393998925580372328438480102280255733926499454007954853833651728211625541177922408746968932189928902885031752663802220168470259619429579753368692245978457723744596514515877394309513831845120054459125619562444324306140716875892116079047826499115796533243170707004713359849922316679348522998847337833282080496232026770191984539586654206727481672065163077727246587336603778826686611173910353002895095094214352075248225952732685994097258280282711540021221039025087031724349666141316847140087247247425873625297534857205830816953782727752154008649289808086907767990019889996424431910306360978273691571093681716130266340577447099331189834077462106336871431461118948847517429675676100564899280051940197447355775651003764059592034071584520020213335387948041598389298985977923561844661326877319652599109456808129856711697550389224464164113875563596217591434442621714584603537470189047467569944699689313879208192153412644028431852809827532857039017728041364360256869091921232145149374257418608230612700612279581109954680223589802865513102000819304113911009777646436530542069415452248870023513969965006089002133546241597179944819863710574228560306685934118712801690680280109374299437640795007665689053618006130627585572350275352616735717592206882784867323222958855275405077730510037852137261477560027275340232381698481906881972863220237507285696708228005308634149225476846474132077357306400263399737729251239670662739550455373835691302793855856500269659511073079750431708663083084378632381203559591973749000778105885656931576187586227201656396515145215793600057090004518676447746479612507733865210867041989340259403226097084260417490056985510061767158688399870390139225460480276045221054899725785336669935684874490477788394686556248765915976857541260669578929978576395942837755976811540942974731154300812589943804435217981668596363609100455772152826550413373416508904232447219683669785612706451337825972686282250882055077116963613306944965678792971211053568560723895845776504281480106900238834412039737052242805183708136169494056140653197911483687222418095925212874396911100979870253379815136339349188831529234338389015239795237001835309139081122686052272689690305114120969098223374346479657945926311161505105490536352017556541769420147002943268841851527822446097935462252661266979853472614003818967106591795692781473782523053246825196916934939432812458969850478395535152905978188737787828773254312992700986748563734377909100137038377014492555153439976978656450788495013747868492774723313761414711096321977930088835127374812916874348022883188941050746691031061769096310139889549663000606287827571798022210161702644817507125012004419721870717810080196417327039433680357971648052937678019927288490303781432572633092201850265879832449452452276097352466555810089688265722407931439474186629446360802781783795516710417204307313036487146772616543657163748158052976511644055099215725125934210604521859716110406609237691032027811335832328944210129340196495022056970934310621974379229955548121759519031248722332180087322154360151961681789938112285730543940082176412470462238156264654919209142595230691010282645785612671218914154327709141560329403302597044449271229212484121009154600398923597200305261895871984886536834790689347852447844961561253289046186709519238582671564359588550398979530175524278113936615003768217159572942723787908825324308954265781694944389836654008697351619476798451066933896205079445171182167271880229654934213674888858731695928807862361396504583886276640147342879615175015920886993200997791849446973372262373291361840630887012594875356710746835663528842722018553047369407743875746759506557071520843551941674965405399800596478818592003484352584886261484508850834888271008006348039099972861049403145304460509115641779021214927136840554063350031133161713494515609641671194255799115172966357237702236773704928272297618236142789069525269290414057414480664664349027039133786146468355664939547940400866029856511940278144560688458964998836476337837870800906321874388377756826892988901816448013328514623093130739490952196319757038505067145660282932133670616824122933803484339882915917615524217162090359555767405097625403301755042174627031437049611190161664166862398638886872521826804798969744651462301724240548194032136923715404944561521245261291444008965343347293542187003723765957000139565132625123623441225496540054611470584606298170065833052068700052793314675949623392138125439724231325131678298171006515772259492937437000031971217843960571975035626068256052564609696901807590130969361207327459534313432116419803481574752285055608683538068892081897598589538650361015556077662956752299781718735069203010310258524230231464299475473054467167020761315601847609976440387004229242521419826363617187288276650298052208638103815347199675192902332935728813536060983808536792366259368359948802416874581643915180659559838584951201595624529129033865052157812172229209137879479379213917984224998211177511177826209263567279208418103108359816796649602528976022259515194230615214519652160898903121133033582850479776534536491437490457303714199259192278889818492696146486408204107620259272641794318820789889897927885918533954607741481913652549826263953895055053778371201475102144929184255678330107901435859441107512656677641631788327141123138198586942051974804806337764032881769822078269083329392044530510592892938508372054330751431208717643212644158072798390283880244502802707352579255513555862703368769928164717136882881769431415458480107449744382593195951207688330525711444887047492344286158582674416679264431335197061879232998924078945235893068537815427847377610187878303904607116646550669914628013900511228723822856711801052787951051702996137337094481721364082963564236995418714173218060939546513491581894127889286492604487409473664597401358871276508554747530846517814654254898292089232479110413493908010252026726221954113870620999157126247610486786962555533637682874508674830426862216898504627136043823673582578620560761238835095275603288030616095944327312897923039218341349306836423075786362844441791543355667085316595303043987065257801105084180838039829660580686472333251144299257181386570004735307759108733800560668295267972755688363923416769550151104742920872972541942064811806092864993128447918509449939204127984923260274486189745385505870020800053039300623639785531487097222849652085475188260791339760781469123951682707943720926399769109941992099389084706407798497601133205650280501931988176064961732554337825738436187652613714047669430186182742582682901366140850941219524597751086018818559852323777259695777968087055648499990377631545074328705188109411355665564933960345200085918839260136007747681298272662654004744535590301986485646102015628207335339511278674166667909895510313834474183041066056922313147060461484232933086704217683222593474733494793915929805809158397355853578057958611723728310181149096072815703032298122756178939147695079853472905317253989241409547370761696541384946611038581308244242205763635655194052713457987171138372983231651884095778640076178677802404333120645670840849524164236638050030320673930039765818905083528026756353889885909087481882920876899875968676978189238598107745385849886398863721850818283531636352725694415792859889475038419983261952322364535537632737348044019772177798394401827827040253779488326157824591322429833465936039007708775343487057452479276404295359912346069369587728305586765293516222687868315170211179097204169006788781411670553825397549388406137360476497262031453727920761716982879504006466939975996366852039580666199425231142197005100915228661174412328210138564007701009373599443103084990096974574176041499335646320974544422447039236407742630016667112137248226874711462138264754440255653115423713771368348691355538731590520071911573850549441687010784016198865757844688197091367737946491262265457472354553836557757694597319235823688424494622450113057117245269367723236846152054904757381960205260754545396615354050279331418169338586267778897218818786720228423727664709868025785045506170038021195553020727700568131878523687078330748000739706994185312944075176175757001014879888021916144981960176982309634080427609990718967094636073811355735230273705793008442219681148593785696136932720741916712311607348837488019060538758226025614683310564145694622593097603634694311574217063438913548230361977024530514548491156948949950635399651679224538719309617531955779966676071281673072074690046419935613270718835333232586461228494556020187868454192830317155577755385747320609408564085408531942803167390070755922097671430588495480734072440572068175661555766422268490448888122995370832689610852458558966610789856966913345166726177082293803512241020590150725542681540389891444061928875170638942741069953323530703925970508541377792968806278358567403788452193824959154341600968830219725581242513512016346418813576041753770309380361129825164183895376055691509667870262021750044400028236591175637356910722264690970918974217316487391892069038354830809199571195460631530175778311214696770513747609557746312757934892481443282599517815020489394514401167069960791267086216409315183261406717718199276702091369202756091426874521007520603781133450816420423697950856630684601845733213866096580906515308140680583279997559020116493387795397609864332937219583097582866229940558288226085094869326177480191355535704238636222854870878691020728134158731954534607059619523599066512755579934014833521519170445313087671626553400482057311322767242146686865805728646447960310865788391728846161645921778699780914256900908199537077354303829037486145699844599826682406021884369870382442443496152667591789764304756979002218674241573991407059678271319776623741952004085447048896405572959822947484576998898768697604136047365394179358185255546226586724065270787090182413686309355164391117648595361225131377277861691996658408247056987100218975094904913678977472490558691308660890060693659727546210358042554354578461467168453668232006836049860969707791809052518864636321408497827619351675929519980304166649838880210204035594406984012702572736682814413531728708537594926776457222492737972740884804502267781436149562877492749507281005954513571193559968325952058225627666096378653299232074924946993431989352092892041051493328655406583989460532308652719650014539383460764772590769924706562778411504205773054563142642051584364694465800389940833273690686097775372421648970551173432413340541868850237779610219030778006967366541883605906696347696489751739729816443684715615565425487649004060074698103845169886271200440026969685097426046642212415996976339419685841236817269870028455923396415852897993789092960684844412879849496114440789356529905170736579586821025287859397525765084368328832536284036680917263613277004395770682135219747764247410048978549363917307958595593540211907652536159276159718487418529347550599337910200657880316622867218391140605777219308896390924528560274581313654901949206875317126514952637653924701298518091165258055771992240520350654463080004473968816605441942404802584719206617422973738112646677183556087847509176857449806032938025051406251641966829000261516656986191600042368723659500435556780325656791481271211489907228997834524868395903932820127485670922389180424100110492718097509246793319730205740429528878128730337762817577945394786105509780914187788014850250844337809259316379742774555619346856902659286171303697760234701620849102741257303451852176524159994891051527622624348259361872010416342304515399177143618406872504967136861513134014938750004770585221764279805957602477442234712208469860255617772377105801383772077520202688976302944152763274601888504745170765174121630985339835587682952782135652751397776075134554579247650628471482604983688671413063453635213359080914709154307894086184657001883215440914459498987287373358592073428658806444439392928944364843093786112826646668597800255679315605628948702686035554235654623684098582855394992417690477256155901425324046074396216704802385540151709761173693680252743283056022036196323832713377465738470124181851589599172427997302625704914550761643856117065391611495150978838733340023381804832749467312845200127287687642136065816734888803515518934801273092104853681919071256045545785392440568299994865992478111377756866099972912425418084659458172506628069724759817793748083132667591468584275004272211082831021521016778220966592692023946561065026592965670207739705684985844014292188674728888826503399524008907135203107570292361352138239469923377971292316834692725959337275239733224653055879114972267779569888281947460999280217892365901313455461743156665685051599710339755430329535183705528497615458856786950950077250372867574086610136672081036898377630341904637967957224106017038993686865210265834803274137388407184762243000443714677627716256078479139846490919014228495706795589996762683050854163759954484675533233155115491560958288718243243790580820608309943837935446491647018298096589960175020798908658565285234594550799604278722189826326443308349701678468923265274564737863506287251845956094077198009853966703860735575562645556082387584904600238047057442511883012088827989596998309556632102835121058844923695966997055793101827725122110978176629632855445931060870102929855309630139237091442517347916197303934264982846179885230665268897979219833911076393340333600863747420308684278321196728718604061700659679162556790162756933158650399944624212731761906364858160699025919513638505096548712190729520440587575884808424268028612297200862469496995707316571357272916392679800142794188049478645161669089405844101639346043003132698424561661502618259237864614828336808762254607454216205074134903189134176105008716047250338010581478684933976325432992979279210382556860571389112100099379406155668382421971510970100505456090501095804669029100244788925987482709361276873787455136171146344402304011845662914181731775220535205664605981552906617634537474884620386007105690948157117714591231309300489471492441321290226031702713306296457192395841666360534560252775062088677358135680360203798741679740519752422164015695158472618075305840748818792338323763412941333369510170390587478669234261264459818814055740103259400738006370244242222930177706799567363514462489415268670656624743999431845602297389425588975022976572466105235900182722073111140820704485510840643575608069538133292079248874332882539019760364766049068334998937614897660591284062673946642605423122284060718572495443750237535005454572119512289129799089809239862754071093242566995170602117628098501753090255061442724025652335243148309368741162351796824397716914837165935093597508975673554312116038903980835130715621649744114126424533751627479224218955609523100055033640003760143089933031741737302925601009309305065256047922711687690282498643093732541217778404805273546268860693245611503952379103438056641189291622099759399899173885498954257615304547123537453574424808524554412831742018127119843678812351566193740295322372572947398090272099885652085068498201322341608534187660645233978805300467176020562391990185428627552967355021582149674419420106431685320404382469982745126897620252725030248100801687081090799073202502308411733730230959794010565305418999153633546357815698698317973275854386656246760089173169001815857520919315281971388722495090033343849122083900672994291436852200635614696311926881873584438489329243131278483284730520593164634087790357209691671737388532437473244742013870670000475738504788029392644756027437312296803551547702954969481431220822041248572540441897162239322129140716002971178082482225118914832911227678594363857183870348505398700227234322689422343883968737376435769352665527734576448715007100308074710621804591955499643916470983876857512358182685679912666572363172964658137421617562127540730420613900575474596194386323308245641755393851738556046074512306999437148784123841584208553368227699097061611022538643716154635330624688819817004792874929698175511019419455743088849239153818123924454088427053424967275822721335083735459401999963087798069150823887604423147929117204980900451162534723267342003662107874666604628225008641462461024516107370264480612778047592143481474409234081215120274542374430252313822326603111098102860684598375914683078146528354161200284463760256469474329850105190492795763151688537320376991378834085835537439815306241357608132592336658752191658407573068905399375637830755994440601475358533587812610891091178392193734897569778190164821874043954647668645376047048565103388197898462998188929046591773847532708219783862850504776802608360409833606881935304656862909566577513033240260320456861586406435372538193514425466465772246035367127342068356178723943724006076612652655553871025236363803659099487513681090472605578987717232632880225055161364329275388469456631284828533441293119558690231278468491797787675279797366154037856186706631667050087385714487396449570062838597366094097166131426607643578147947158857203463292540067733807246028462699475388733483577817133004880633589447451661464891982576938837939466373993307006946681623553397066305259269723962526021895528964979939152762662858365820995340769271895521578035819248586621158651211221669385120435432830103887097336566577624095663382563807933243693788423580950473418261212414791643228002082367730858777944188528296018225909590030127535683078713343760308736241567724641595754494153635028082855724684260567154390581962383244980655855674869015709586603943586661819492046234740276674629648727124474776152282527593274257647780198603486584978861033053341534211021734864267661339546639039179577640138419370657415939344694522373984009561803713326150362415952749663650372226299877045695234878934830179620744019983705421620110284969937710719905381583604444036656808752403080265294541357200326136262300540715171196736766034280993005424862304257771333552760287373711882321274833349179680512668876359030693487874025601076663018800601762491892703450358431631691779750462648822060437301314157753953516978676182944599085105746056421212444781798807789805135313236373043792742101887181779077917513272310548887631877262838777629460052146471754382636982306989118369490484495542514602426048658276826114742939393976519529094674649880949158940948337433426900129302675145247000893747254763881842706516448454525560636345983187814879965936610732902250418083361797198932156326597034285940963406798062540230788884926559156519220823815561382582976564985005535858015016868702150981202955137011384841811356707128779941046454213607022935598542536384672086644857077749604430887720421163197791823675524443333202447788466611754916232166905190359904738559817766357142636148955099210879972624091911078069135710931768584716136811650408926589543032746115916187345335912202282514110410323468953263141767751872087132356537988606499199699591842357678133121233414604702797653438682739484807935048062786458597351282991200697061965452590975620616277138622837901316579502417463287093638906945590638374842593343047806247744350867974107360194020552362771221064510233742226958919294394612360590095665512879906045040641139247183528118422003622220162396404307114615186587572436816100147833868016953595039046267908557167042430187422939490020502656073347748958912235134215954173347221529115070455642123694188922779656003977730881667647218397230585721992570349429531505460884398417307552200364418842122558035702287437426004853956813333826676464620735004606922949448909393187216753276852405718064748185368176368200345788706351575807008098067849939883022342078007251170718101457522302134223252791382725599130507432214482105468509842278293607608163784076132234681684831349274599757926556779463941284779217187676533274486982245671534558240855298069190223854623349527385139820907475088858996220724364094069912975739373162007471760029283140970432739189194344724238849240440378906457646996674571300049355648394986914157703601117184714042413629170214306642159972508892110373533394739809367029798416309443698691978942208192167715476934557321902158080451918460161683146545380153600325734578785147392529814775563348875043308097073898843105117781112041479282547816294511824222909634386994747655369482929074634331778039697689734484402227270684876897941352511842418609878947158396271768489836317932849279074842381962379790518396806111291591502459809851127154108503251271510402327599802229558069062808798128605496776575058834440796650261908461586293617916877442981487723438313643738191584577773816514675177601625294472623664939859530650003308671817093839418700246557277315028301486030174083047598837808605560856326882970046232946121752559535013360967456710681177798742737856875463875754775899394482791010588616054071620034265774308484653044855620284850003745921670299151738222598944209809201680353809725186188741644547833369241906599273000728050967652624513537422849511824475946574394715095650616121778483831303197431672256190883143515244397939997480777529826363838867247399743954380629512510533536816059763832927826843296114902027944600946606168976952500982971666805086067829299638204758576763052996482936049538552629190002393582467777513792245518247022776642429371039156481418680587806271119172359944813057177075863502411061764226205744212357391684244114026086446856208397325859918832994768025164286774678371969208530209665016942992373118897408543392085684616762050219997865741041121945746149839668158372343193600848630795607305183631879038354522547532479361296039086362611305983679643308174031354752813778838984595071215594872245274153986136278996083889291802251918792551010773966334937845099614405376822801783317919317820675123879294876878234198301289580570901542127684576616226950307366413038947167014508906281476970429400736366920396514881846942995075555761269557539912750482320085795062990402214854845086123095211109569012813273184943440364545887520650792296408663889127635498271420664895387496068632565957259034728241137562407063073246110214361900742387112520171444332547461338246582561710763194465555228734837192003444900339638883757387532917651308274006682809508856170169776417328436839535508006004321060799707035648030993099900550367954820732002955693498883501600201721908312184712140815727843371909701572463174931478946934687529333862470441645560039117499612112805765569462575833281188054505682270449305669646767013456339108363376687677730974201389152528191264426859853903511148693823923820789599271210756690351376968966661910651495472201378543182496070176631164194800091037861679959533759507981841770759685656938517654578805373836840372995186925384490011975760679981459657686704282632987911242970830630207880885634694153093936635458165948190301533370713091745006806990807417953563052496925215401785412247980140180171339583496332995058125368499737076231433053604575035583895050272782407457210879059201258859215947780938522981414872488291256392396450365782884853792638093460858818249327770378131877994130499054339811401954069400262404001295754324101517429184742280219909831922381846299064338694638222525331286955774855489536398881361545669028220282905741253447804416029742902769889936939866813288221676280351339439898485986676241998169913468733876715763189541778247516307175273439833541028643944710154223779953136834093612792785148030147943490549146547534102459851591868741378291343662206178072441833255549083173672941110626432056063801567788660432725800298554706112041531507126261898619295672813707539888643667159351215852765171778699359213567644502174721455579722551735717231838715397924681369888864757461019151164648821028911557826815210501017968596465120010089394543288805508498188682940966158798057694865411562732046364295056983284665398934032428330707842654241745798535252750933196481091015756474344408776100670550958898866910853183419289874904406244129602592044464077991133718584922792490953717508465050239650197260581810288273024785011056848551925589684699942614437766146712102526263141689976016826404826318281374399948551738908592919345887054445640238399996852624453155162366360071355948725598768771366630257781029996196625485311230873007667149181221777015695220008626960587756187217154850554607350454635709987255045049159017931848557010173847087710446398679654851837734012916832033766472845124345427265879688595711477914193530468346696500812388971079609639920518314042365395641512509531063148354256604272671897591361100218846035073774074584143338451450436401132178851859789668666367455193699179470888056782727294031765226908410096229137943477081565817335392766629277930263558196233714018860480358969104233421990209141831408642550809092771624790989046610384923208311037662012592855334863370973170643529872260454838477434378685431806934866554640124961104434628893598040296408627810858453828403959817635953298656160239347005118401947454832347174289715450545569770982890129542780029173645588127696070289058145619256196258521944835787477728902448694368143971032041900093701970680336708157639317033044957831384577294444971945633629835182482830527295539315241975794636208656785409289854923466640623401071942995535573171005617918875536584182017190526199654376807829293399932669013738078009965934656712850948946453653775034627806663956877027318336547401876527194612835825726225148640982808871659952767048081154473182778016729644764862221220500554092144982944557139590174382678524667657437119512774473904452886159663696457038317616901926375509192643579768619499796455352647304763412322956586507713305170401914699407815097807472941823652682293682064462703001228050753153718150593624763309185719653721659350576829241872653125505233578983954029281883600761298866870364825386757029092783299301861368398435796210892403623055521636740625160594864331603997047138694440406453987107931816068368331963157981592736245350363207824465326514057171461790468320019123065809017860339549841932828725523419937707973784388071390465354425872098100683935676066449239319738953835040072958667215990497143181216262482148026532491877790518994446204876150157927712174602676663650073196014471449274005332758143692964083820250728179092254393279253073311553245029605323948817048717542482642018413465389462063253355924190120921849474916327872487756849472356681056123258885848179329739370805593721047598331005328260610896295003642596131346427285965128609400319560234629401477498632544359001123397755120628832487656100966917805377007080925506597332025221058185412207640419982152916691516098666371966381178569112248237341186877296022436496070372839097273858288275239763047460352120892324170885151062967827554855168384232663364360947821146200962162865931867551902469861207379885765978559126714665496505606507132964612370330181107228278323668885449534582242448831627538887799754272659773511493243707087296086644339089902341474402739926053455168299688893740115349241631544540547695336480267723658133344152752271667459218758569513437688289869697027707342102483123705863014920477783802742497414001192785344382895098973406594074421323383213002376326659058623538155829127132827538397575744047271432747813182723020883033039166245360643565980957594854314146076485720729285898622775397762091505839742822658636149552659763455933169462203413187844171049884254497339933695808465375905077807692597621917663565889171283371616165522329889619812095848665339867136888009669370950393659066811018932419481831842073609518242802691282598345550554456164414672239512639708937900423392002989073001291669914522017346908948898651876826410072828687891412334244699528006553584223058326880217053747340935859510032734463176758490730187536121303869188145834996564371201895391907654931320455861174800045796347172343752557764138938058303358816697611555728867116881206869801585760664483096185796452276788453118773293490984968108997416190515006004318466230915109308092044896898607816884661470049116146828343877477962654542650215425038020423149807078274573170936235637852806659425101825582127139040728764549620517470696001178909821402928152739669582158692492282903038072118404727858322683255161116026779709879009946901202597565109745233200770490042815057982271479388823309047854974841923280278639189018328858680633191251071044622892405030343121616449302893146990383504959068880426746983540771135295770070789131911165349016439530641836020063347678041574263648310271447485903939238796881391053549295689236388910809920962134783623026378698832034967615988502515726018727027083247274075769889850664432268850497645338648982959997928132094608449983453418157498253508919900188504487123112991489082576303645584431588378068508362531999444490539391537461375996516651162956685946887311933807779628815349653853554587522641015705493006621865217513366303116823599330558896429836601806013339237035972494233992618423067374015223419386476873235122211389031035495722661858843764029212569655009799460537337361171956054906760908206237811614402025347922437172408314460301191685926533696503186842020688548962814567836206056482874150656015210573120481737857957061957792114485542491384848836164401385328215864312488518031990947979706031179329802979451302075294761525867056974188957805851502881206285786079431044670884654331782005658571811797743025174698121851376819672491659233355570915438836351344727853556208101102481317970155875778470247316871916480192354281213852951482617304799531493699685955928500677543503174933730951772741423090453226428152476750914214363774727545246470673320324083769545963004465051491308370557026913741146585703338645689129843312262655739968367002567084214591407551957298090487970981080129281971975497729787767404829188065934190585157194500017995762435788680078948170316909206061123744834511903615942023867790132663323108388950763692658873613467999577609418047293625364741758271860517640851845138978703354592163558139309020306572333647347334195150841390437499744389786935304568556102917446357997207260650020585281797784127723991601099775248798028955838072915372054867249761596058771205884309678038810550960247453693014536351463676250677078715135411185800293505764188859499758042352144680637009916682453458098088534587996299244095519134035100875229751679171020827760194449186050221520667940327148093438466364803830260147660325957078223262923494213354529080009337619410642690630529283086180630473550116896671617190237250907261577620701395364931320269611214725349505114943130025654135486053955460602531256895042947856873429269066782789660325932701684908772588338561428379359320852469744105158451835679256321482425389757221040313539125309229352684203385030799828800449163847095387927447426178519873962839133850451555542733052131028558090504279020536886225954908164536847487283204840964003716355948907234132911942364899130459556532532802763903260762402761834323298555087382891858452092712384647400466711583089053932253092148758016430665741604364273398106793068285084727285510939907395305956937257412697440049446395637162072452649096787268783176413775787749441045240036562760626560659176223447896941596311429299549721367547466782346040810177451003474740185028499545136833743419810291572679771348735943806169281140968312398635520892794173646131114978367555525517699537189052537327886982417073824842230799355116232102360089277506515428001323813696310438696588917947667954160891146271729625432713666421643881111752442154553140023601646650409358548265955862312879886811875719954348005901229771370434403171896230559920558524768778982778980581783324236355074188442459231876862410879368823100934529740102131830045126977881136389328234045310830837689802103117906128884392777466849144701630313011502696634444142296324922282550264484067450944647790624092303298568160751487122300338199120228273703165672518731782756885412552097760624631452971582044750897915587385957614593677649634656068178797362788209762422454818740028879223739456952494020501013478178924328889644757127613038710236224644669965792086056354758851942170082140780315283593545323269957904671084400638261625318433204923378499271270591973538085947053827062239194816266063515382917923761259632860386125518280420232749686704081910942625584732622585313344222955562622666788182974746516159397197221913668800093744204906241673421637641761036940175297381420622778795668006501691366755438301218640731163111397546141842152648297899710046273533972799006369521817688810350578280894050936024680829406304701593907020025309908905175965187587285531979500860598642281303535808602619332476562034862209548810512469347510546243806984611644165427047643238050730850402307735233390281857510784157410830501517530232515399045771171008669540849220075996175392396126430500155053207573108310239124697704768076061520101234368443171131426685777640600167660397002610118421062157519813143762216153030459664091884117104085462125691796509824455395592589867117868015341439416415077946348311551775862287125127110097425329446309799124695598103319312121139253371502970468629938380699435842257745691922739772557131377385767011781257405095079349770160928441849068713895781402426975275202326550147909337312845164300332581385283672486082009418003966465261531460944092818945844934791440762809640438707952367132540456793493545687187378193541140899984051655105995063935725609234636223739604953269091073722566891586658389080574536626937823858797002217907988284753111276983109733379520496755180982355584356302007870427031068190255508715116942711688155727897324441489639389059120011958418457830082158741841154044273678541198629193563723599330182006416678812351963812829740797728738016923086725222338757811133597080296275734344506743860780359100307136674007734933217765819219882472545635039439983155517938844689847987827140273577026125108599815009094537822622340824542602940114975933629383079100813438981244337501217549726522099288515883072125719839655432500606494886755499660492812765968895239312362613838011895964588508646050176802352155531388038452470071123344561683870104807528603536498520222408362496426760048559495676315737240868786122262805862908073503674468799134535536404533488894524926752269707977136574117429487459734595213145461183473623896359011240344980912629860638387536487561942932620658150087444475290498468254471227284813762575641719617616886312978285937628920644438000666137678266951777664974688072604311325392954118173500912948948577625686952294491051327404644762382873001754114403871146496470680696009432641737495643747673658355178850652787809318770592613605413307940124327476787000614975163139289196089126025465168619668474777483166611885665782523877870183936557726072219261756112232038176281161397874267829651502537221176442753534051990706363147833392016002281092982853927088495602734544595327854094594137474501392423986558869044153420675415305616484439785821406924490476779944785033878486049529497823831542020346352449544931735243294357062180243831292884115911221954881605299087922438607704732259861982296926302476693607265533027561175679145417621808922048252944252904984062258464046360665880616411136798597729496867082501055704748847374560472925427565788661375009672948209561388802481753303192211623795573579624661936775498342631600979828890359647156286568193853123347272074895414527324413791126672959571905737859734502026847478863130564537455530056365721241179334990057444873368137199468045186661862974295846070357519489444438057132007114855719155470628713046333242181328030221238498806645651357811861322016016724044448854019499951332030299216604470158877475126692121176265092764406307234888496453360233858345646205987630145203130058788831631174726983004362140212458897718700804091710275026203315940053573522459294587743486917985169911375394907187418380332242817970091434614116152346552056314814191252489232236289666193500149920688015031952387208386159265044890197523917882540391330207426483868815755251874310389863347635982310568161691194171113850170407146675879493359392952703793001052968360250287251730520045463980268437007105297771700519111022256398250584265850094329375025259204798134709990563835096973006034429145631026676404558286622200430271909359956904340573366617947477244128259534813752135765881361167904248879912916980421579041033548722623838869796212572144589052568618636408795630936236108925716820127965696779243793465486769188932695119795059457264416726124994375272093252222952535417521234609748259300230500381508086004884334756800621207152959793349236695944487924319696866026921039690148905956978760600307070974904729167129464188533546520835065456945242073113455709821803107268199522413052900838269730299442737361015065483226602867873828874126808651174873424494712066466981744215131534119426219721383455682217681837158184785311505392143709623517814482232012287610320595954527068681039541659754739068580939505280782600196369777685665452850052522119585400734775187220101744649354306653093116222633802110314644505985525154264694252369987896360193500562754673677951175948556479809572321160548137060991900840481850276847393335797845427896996601359386630227691111426972260048058812934180133134721207865357259744475264137740529408076480548842976786765205481210048227651923969711039059133243677033478695155523435841048150269660394975562906868309515591324395392640582384826080057328877152867515442828182557862464467634614091721356976597253055487615431370444745726145614423988038186643044933567968417853059815312992617193980326454430510440898930418180210503841643195803649128354444185889220618397637507530501168812105784740637312666226125499512203790311725496633169499275240305128005677793653578635407813289174735436842742486821958081255503504637350437085146427992006760050318889594455011688115751435901490420899682541996448703748889066029083457111324089049987846875061273837329055384845017070809481121647439892333479550839853587001819195414144627535045855966154010097351606717920054265462041663208311349141623153530499811177470349597378319488477289682836974561421116586468312857221776024819566675744129899272017253490146699065519743677197897372331308157091037826860738021746176253597826921104267066768841112339247575064990035972757773676506886146103133931816938307582969850436604776318965726203470575349813501674845763610579867361317070121524788153549001490685668099352133841831912356956674435775631212192119085427944624809091162597372441977560425104858998249057353041592449603063249518598519704230111357822250279610550967649795458658701334549237822173292761553534534329844918697049756705184021486099372660927189662928245853867287966480376083680306862991489094075077169892880569882654431559451905628770791516956680610693086340311148284710700140358525622336734105089191509239319245517606220519316285027013054699981277365004586304688874955339234099627726912753079009918383235640438538129924433192873030707098173613656632440150069398490486424872007004117586979614662700718638895485114145727409752037582032053361463011486671196948914653494452587521426418049218779457011023018957206957986000121234475194168257580123916550482991391217697713978494629124112194764475565510396664503319809489452784158569342522261402727380270220464295194824786929387616417971083797173103656951287662136357864751436604703443115617535682543311654574803028346782918055525734192735074194491078737934938804927137347277695565248871420731299943479460814386412265944063074543442428379198918548451044105703062670985288133492381362067369336501776784103994125406559742108685055097874820184689329039085612788482535139217556338508455046194256633999249816699311347161016475484999717277179005127230668881521931011221812547113537960768158919989953036362631805726257353176552253824470693848182601721318599563327209059527032657000318977822625920280993925269190710808682542285114894568875737651603418108814555204766017374996235708590013565540455718302709666988099432473552166049449428267003880819505591099836127093894037198039518284495736804065961788513888958127815429767241673419339081386501412195044564863379074785351306789495315258496576527627563913559480478019227085368887083037076053965999461128578311544968206877191830146712751723537946021068228127551446929669153427726299058448300121123022382225920762582963438996090245413538438835658202439653463142566331515458788790948438262434970679702677727023964784782708963750462101076927121387068307231337929839496139469727213787750722986056359098031130690248542876687377641058315219975944865999035177721460971889886950751309345051145421710916570124600043405970010615751521757426283569023583796158201129901298692864393046389286346324268422480496834232509410622592783498787249181520933573807543932999894478842923791124705921099560214169482264457868949316016888636576442942736622678249266000840377854377150169313978929950488421617060895775182947187940987491920830923721121841441936202410487830280346431149541285128323166096881978866514649769464731747673068476229132589769032913382133902951311250600826700574625195216263045171216740435667945453935235691597390799148475345488571119704228895383052474455777813954672307176429282020747201026091582193097218869180466237991882055709115381701990313400807920525096848521497829837147962904967889884631708172719724287835362929524872267079444293162886140161132738599664209547658911780991492699334402489861194166087430821585528921391023409755634224240705338446124354922236337779403285704206653085006888416297540712765249012497249295128806206948648815562214747380219830067481963198459634084408720277819557861727197531787830811376034181317123556255795869525468879088932485951806204757032183169525003461598538577813120683518032277299477369987567183880363540486684208037687853150477461830121882244948816297101171125139287690599642056536157238745691107667851797670590072584723345415033498185485394556310457742751054122339349361271870478166839479111949473285036277011038381787694415112488565967064770362924090554972004294234058648538931338331440367160670686650028713933611635944767093333887852357447916788229090318830761417973900921895932073679766158450226897988553106278267637772248528515634464403786662713942588209084760366876471321064586438950896009109355017146745892484357114529368478046807586583597324352752444900564170371702199261708493236498565295077866802370852529365312034030259798614606310423678965550660594105270934934718807486793212476534717611411296440241490312052254897958801923880131918790603917008303439122252348482525392184864514884604768693666297608047716853329515578337853389738979441996464664531387851476374026441671329397511652906276394882646836023721986622200318645949033271695610772483722511175880751151005164075341034272857849752003910710017540761683669549866373293899087584073050537783874000742449848098455907109734918310050577053607470287720460746553194595186533140338320999966632962081758630304868324183394863545887964684549821268140906589847406452184919120372084315876456173309233667050460841273156921066980370306114447268554802975955914318141307042341981279048409167096356352765892634631464998449549903779063548796303675439986375353316642759009878440711754810942446188425684844469012479857011344063994587730138987362510853723036113701135553659161534040496688607436651876665835414687131677377542712081035914338114927416525580102558377308742114612129016685179231044004295647675555427444115030515415093626242826206376034363070528658031879170467081732529539587982089116043610463913757278992503363496783486334549429648515690078776298248356465904000934527802209638971083428081394772999479746789497023562683255176713207230516238146372573187564202536236614819740851776092464377065580663299087498878686781826994742217046735775705650643358500034506010174243832446261537125976398547585618175229860727608140711918004907310515626105716587811951407928087105432778733093897896592368565055688545750844760090106191698445466032354033834649141295374670774180087034561674304261352259115244953695160176483305812956562094885795248007562182373336071805501121159066128493053524257805790484967028972730899909434265606214653184596972382226348127902307576448149833870231667214174217158052610903216347495600912024259423955328129452658478816842143606989976190397043424195634275948938074777906822480739359886842285320572719454210642499763884600597363439755026580527134270324999554259355916143829476158130018750348469210785885898960642094790045522621208476003181220486128456395518748735668168625116558839727283729386034061222046927572942632817747340175292987508233648561314074245086287729676925441853508338337674252585580460462202301919795391144285473082927510119124183572828244155552974089981308725822611525357589712738571827789227673162209742015555347182750968771022277503388562270882878689695898288179390958722698946988151750861189634841294460881435676130304628228595713604399111162246847166812317049710095087459058186308808343111447533789758798457856139010517848930909317288034112453482954517501608663921085315504659073456785731124991533575895422106261662977327829427689218836129728484581288878331865922192474364258049174521899455181576229698699303596764314249704528468749196479794015152982159611583187900551798016631223833635543535142799435333980373269708448621101238409349456795344488745491052129882073686504460593778675330047512086505148066815926789560508936000125962720669238372022877756128953606878446185078896846823981376576467283479151752805575495645069996604790271112272072356444493318931814705881085668995167321721268999421890634544367652516712054592341105038903515341551170792066858727511976871464593042735008543667203181207484635830605772592772688911455413561317401445887625516143085522647237029196946201567279445243002972804497390440212042500108821895832190712405044521479764953104954594280121152254413484404720382169581479784355829125726586270514357464167478478361267059727234073312725102729579081256213326282778170103070899920673625453272226994888156797584098520078066637008298903333105360179410379317531813857850458984714950655656949740616254579066882561153329490378068580501283114843197663854084205718211736949678394204242074528997633003047099789753587702444591509279953503952088354147910349435767147329144798509850489338534202847845797610639465480010641928433343499408036275160036923823470478940578759422822174869982519591568280444608661004653422263636575400130007953539689479368997556210431388417616302275938061292845651964790017319069259520986951967134741123223874716180856467065630209174117792010862587379562302822083817387643395195963183105397618214013479360316785625965651583825681883960070517725364425983292907667723737348469775461005220409541093794168950143528979616686694272199996661561568528667736059501009658537285614486020032923649465264769619609422570830412746904636343041923907077589511851495956171840190167320339203303957564536490730742744359039919477154004062701546082316450553616402566494214411839845084569138470724216680918438276417474969188924385716656240028946379401785886986199339175225692085462772840829846374768150959967716504211326916056468376518365356793645045311670076125689744006450629481280841331410166901749647574672534079279240228621440213870761187748833959791538219275739728858719269821792882926433998112286844778847580610732865415101113179341487803105335882739088791442043092429864316911336479431585382588281792421264612905284947373849531305628233542594152450773461718492259488723213557125319803213610996449523977063454916655771547134911823858869994779914011454696204487099921708946398832419078341039478269487112219956244045356254539771113651814636579291438702617430375645120531828695012088638463683240442839979933456427757730288342903293081450572041203304230317389699720658597751997026203082532184303144807368468086177375059385117172701595220436315515377277516885714857987518367771577715094985813397184714158294025891174083394571790774543053174917708135804379661403385904478398404377752588575525400623539633241471608508082117012514735165299326321300205735747316593325679495124636906012404771932123646060060318188509679812590803639072903412217425407935235041854166704415660381689239228737212782031057936062297687149137434931264429973877399490871941723313671029305350149401344184486097878167572695395959949714099983670581699786029437806761611375023411932437579685573907865535184164820849545395092833417406947850730661305592595289401206394648776354349783404494647593694757043587936402334200596973360943295586817593363658289262044717912848344460201128373934293372041489320879176024982929755480919638807790161319341426606424136433625187208798445845509774048159477164136051217623137365561770931698932509401353491998053457371450186764707216293917298635046187389663689924741322286010366979002059915239975096858679946579402392350834159072661957238742720307369436339838200391520263047181045957727305002056562946630026079256463821992049713270664843674157498959250346426462439754003823326654795991823935257655632956129229581212974822365437389918609630263534123534672934784968291617419152998457706656210757625648690289837278115840690769622741483981993328569427851727223334704648319221096711265400498944826569877045503970267564746803448639840803780597052257893336991412230588390414678434948385523059069012693498328503412334841009114867982869732758917345193966615289835971815138989397395777417119472442373837944020806720627446607737457842533783743079729030797987193925617738935735959088104971983756116623229705156156163469748315816516415002979204803404662354837898061744169557495875031307276149437497565214793183496452349993883808636759089361758091345426465321995523112161377504530164618544718027330716470350302091920860200203562480648398630266847656684113923049898923219585855328655522099136714814798463256299459583331613128425520097168418130012644057320865626915146354661796298391556231234231263335681662912526276942067907710217263074824893672798513223747112256378888597821722417167178510332485770583965840529695247226040953148892375588962236452179006723534297377221284791068177456046103732468391062378694488751081390591337745447409825353889133510566862440963162470058654678659836144235980245034751467256288690591046421722579263200666676314778863837711657873577491279020097548301364445112509278829905861693806959209127587174867086418328258622516449857638375331301862130539535706136315317827295289100533781562350157299642315444523552739125039557203014338636525163059232229888504462735278691534027769967838717266202213579094050464146322472568025672799306816677621929818817896802644528699958281004459385861883242367853299149445160695892651940078634151659793007382005148685089439602084909406447710556121609611136594506873526324862689398311992732487377806520723377324305365594474236564909250239244411850332446011630953177660188749317777499471331454895467523433310681639270563095713377127310918785321047687735417494474130995634007902072497734062488587617084757764416555090171347859905239560055199624893174918615604483469249826044316949315481104311457014832509608844439504217169915226169079825696179572643041466194617580359425284719003822349754637873312428224053240033487147149163220330250774034694721581115560618690193792665472645417669221030994439805452862760962221694231746701147335122002325361326850485311304988618211185154793886553227748738491443253104529549737837336466955073646493904936266385842330068425909283041260865462775820525532046930454723529541564738239358289760963176109167581682401544323425868523443480549971124872551353269393811308393968300885575018518689752692106322102002105906172037972536337197224787670978967961670413196922845713700690975819656575618610275872356227782125765838592250552316447585496651494447313685701795247969496662670764300682895570201392517497867654805388940564301906200764519317164590849409675077867185940682629850311492338187686296464145820364885748958087836468295475860264663167519578703519104366226212481064525293081197075246961986518121600430446386693189194902789792462601565528089280590348793718890735151458285400893420884096788169370900979218517488468265003619195791572189259929300639609196369965648765495832737562057397452158249102674262476632838765029760060762898703512406749704734270869318063141324967635782447454444200960404147374425313737670232563409109675729718817300298822630146077582114856618859907980999606378086487478004605947714887250733336964050275577674238819387508506981909421989097887542508379475421052568851506610028777454116030255267785671731570965955944111640208137809743597848964191801840315209722439183585360098715559983963576817529746037729013436283526706976269438635911046393463953309819025915075203193000194874931535687830884576900312044523759831388271847416723736867267471901841580559275026179335286484673818404630294862279542260710260989834943629512084205878272277877494488893824761562318676103412116371339868498046529701937202750233694805245682602517145753075973743227354116954187754779882468804460757558725150644170492128741872083583759726469700574444777687093152099391966301801100145091429450804767348823264967374131839028427051286004176126131077379121928101940281939957022946779590434220973416420578262934145715090782242108577779554757419762698160690931662282801848372783280044585035325164364192908715244170162059424894787937408969529090304478484887547327737672342158819415920460071028618543190924264178299516788573939743939404749244775517262363438701965068962476554070569847137232508062827432502725695705574507425853987307244663105234645037476750475373208285507315468237736206402613208058782161179568038238622879769162178441288180595564110743901455135689814524433168479085284598064389966809516937395183161156575162514583636508016639786409245337722384079334230313795969514254589897708962766144397595522523558941509384836226408087122281560611743610861708195830976260823519678352108149011561474727864514406592208851733562267018484856564771741118714599796866417265319118208355831113653446982426480422694094571340715204382634041304054519608593900060537024219755137544692313324091128076478939136215736773778073312534843209939313441431256888850832502531167215775497287294461961685431538502834473994956925779397718350995115722422279829445152219092244975679613279727131252559505128372136642398256339091217805277441570600984584046191935632818249637563342755252617425895715490101484521490589351540848797334504283073323592492403338003105963641730666888015559168141466731761057115153734468791534924723665372622948490747128538528870387348904161746854049426442777787002551110368517833486988159670501958062913720925427463093619556254776581002642712625790298552954040133747913834545478127361111957397363953376665650487454690254661340488213787826524633009986218266299128289094571103601319029192456684794727150968921186187655730278480053568858407129436812918541923298244382079214832415899407337277162323411270353851452694265951415738519579803094266294544438920459605469426195303755434535369620495004146550724002457081939609749208236346568652852061605269450480889334322260282036377425310123709567330848757427547399739293458015879229508217686945074733567777379473542777191811687511265104540185838022029580802444672044988776296025626793722378708912336580822115935798189029639728022402952954314756913922546320724565103222492488434881554332010565886532525278893176444741118214406644048080583817501313626556590241306685527106415663082848034068315578676393055629977259161639851261020010503508274506924597544597015896167356023372990805139076552401199664883365763612156287922302701756015857000993813009112787584082966510174613109862883657860004582358762606445626365605839278328380853032384867094152692999899333710377904195178069677153409356838480327128212968456389720436524889043872323285845756439396479123244974208545789828924038702532616900892849796427743573742350426399429873931374868228705968166389439962808249437354939315422152609819805184750803138106516610299777267705521918820591452302185228983399921153760088439809087288078697366378904837045645552508035491472737724362852109806296755854665991543053546200050433891491570044548881979153285869728572309890036424821324779804715868407343657544300234553664194248374223420638193011348780121429251327529576610279740856255746894860376191269374648908347068060874857282602816315472824487206413035696413284815078742180309700391854421918732814794995624973375666791895473306712949085018290927377807123958760222165950896178375639210621571128453773821368089935509306676994147543296623230261700530801331908661400080442223880031202967004464896562250131418412205623464235078911709046215090249292096638094247894034950580341982072375011336555968067004039804848810620254234902052110784396853591007108058198977654463158147684402545410720888527511659898320825775461247816088417194258773594981388392458055181103298089414747685491735771487504939760796226522381961345885404490310787553034931825282410945317155490940042868277555731608716033702083356328989675998738966590219429389598965583693956518946614157722547872516868116497950777724110510510785594265856725809879794234295218175858985316408959544476373611061738412109875122729220601181264701701460196829104274509735092977953462968241551493513631262861734527967887767653451521066127914007763681882400048028337383779216251014234654780310831413368066828494299097523377802083168390589604443826056398070801138056020332304446215494501923644611935440753387314045847873161761043717146973144926501429722371695136340630447787534640355232796701410004700921839337250547170627854917364445025125240204291033336322279839809289903310024838494052203811361939855199315111165992358868741774034671152301495919071893234693733250613455363419826661294403667026323196115210546204732341041774589318356402858340179634973570383570796789078949901689556128147191631646701235791035148490540904922460063014762274298851890158861907093897747377622504954147118805844178695382786352883966037560953984388941913720644227652286690022142221500734976568413671274583958173133534900835453521532980545209274132827818916688350205966932381257559124904824297809572426489941993155358002786434652866359132983680695494832839725535530967840117442256664314682510237905373709875777785597693334488155133793616585571107275384025794893728666623012235919417981899704149919843751528004209910285320348481631410275081430598225009247475312217882042920874073715328232355861294082603545669103693011225409398673712221410632738151494886695541508437188965791380420845231732841575012504484664928653026242676340054237979492549993464421238276714333505006776585056107246528222711866344706473806773468146273909409846408379307797377576187598123311888496246257444586489473973340085661205916527697219638245793571270392473904771534864680987272767708907295298303613624377011390841823810591989805543038696530895345177396267100183323407662387061966124196391152959422354935431705158296221076119298681190409675256988110526392538523142901133961244655948130160779185491992257635901894690784946972030898459958338509663487498298846822660713424851756819802259845481141171359600442461314584332520175087810262056018756222072757421507675988290318216834522725810127202077036635499390430344132832474471088168781850198113140537314906273113679390400418552508695987662282330648464058701600929370252162716695914970466500599702546143601074335565341478891966861218029776649798867585730686368166065045135856851598797188925504056537296860161474760318259270897916362575300532336795695087086095746155595726950003503285268466477148969686662625789312364833318686387494665232629925850951924481545977110782890245569713925277571532095860046714586268150829123912123841779000434748383233542275994817825134542962709684840526029999048715221476611153128286427109549445791175268536943659491824987935358212285606950658298428028915889078724869888437866218330988124422242930964767266988083021804977114104408339358229994329089527422667644408966175720798928286871266098125689877000351474018045102105790846461285533470845439022434190792195938228947979920839556667175695872611222043697370858455820645656969089292179208279678723739836914313004455988078966099527411250264619079097763422356525787926945849869682448166762976735987246827554318119882154630430164194200871746243991697451972226710115492769756262129709596332179467816855927269434824994141311904348241752158484538493769004883603974061303019927640865649428564168296616317729625303768451837728265641991701483122795537799026611436840402467510826240097996994603048419946315902159112834996626133424580673651787951556300629280507199492695412095081219594042984734623134431663510251881222320328914376220615054075576487667605394201906301498891730315573735449015112497554127710980637085395481245668722144408011478793865557081643137032134806785858227299487678250681177644502009451563661256867063944989914888337346951382496451960056259866158590543765857371019878923275295917178089123280761678181641779454405242590030001228425421570762123214622601486156118988589855887216202036448940413073586552007828196186391851442763093006400035381867309213275153406667976092042046215933690301375841829144522825208623622499024576118018302157618956607822814892516968191575347135825854571553729895001324734546528979409064667591204416577275828230470373788096562935796735327033774247281542313851969142746307747240059606278120356611913852567048488113421435873881687419158672716034069246227889315470217115029389162815359962083936391128884038528992079070774512209753242866592746460931492268667272700618235043766376947591814074529118731842847375982521175549894673053731611575804661860705678950507609024523444208026630281487850426562888391011411672613851379507861811233887134359069362619304625421603757216138053926893904705186939852260683737490210349034744361780299495209949450471983972632214466107938563628250185971094083895903962015507739634282743621247638570587346110476642942559790913054260738701520262685019892603616429243681432818232800112055853783312798490375344531014698232645332960241020664338421700640361140401724351355259443835830223210806012683929617227936538569923893370542169898779024859613633022376329930341801173631705065722377817307132351833848255257996272527948053815161238433785463115962608941025297722804544946642785445174696170315154321116291151832138307534748487970475247190668275968376610011391135390119938192874311417447295415047644626591874683836202957542561851033050416518787567979875426050130199415632174971836352000598351124463627937706672369828656501109122925509752270898921639248950400862887760420797022554320982393199897641876133902729479707854205410469292259406173327007154931186122331407527843595775537687253164664811709707659075155415057402710883490046758558352601694959573602637056272402720441707488735540880015310736547491792660975247104752852186646902024943649724519570492610096058317914895488871716938191882761473918744871852147331406857324189161287070456559513652776197105116032938182384130870591455733765338213168498416203791802679241820838950563057847011275959845108883701229705942255914593833895980982165654790730825544826050046952535225186099693298027504977749112568373666167298654437929375689008879593953753619755658363648343885298576071266463096362639454097742190482342138813522721334926685516588679763618856269033925975569132803578365119171023079926289638473234114194727574936329633608275994014841851649216472426459700419564188925503782581623915910798673440451548861628559855485562697373635236122256852316008684482380551819065219930988173178904419840237699093387201186021515599953128856860862442356288343214923460299024633524285325831831926884658617026250984609439745091728676848999492188731553956930803962578341833487704616970704348884243322601352732708485330823043537259440898802128820111886051154453270357231794346888808491205463984315277005818023648392378548717967136123619647930378611734225720821918457269871474765534374572894525496038490080240416209012366765133881733270237108271903085742140704244394955213293970048682695570550862862912859436399748862595081075464070715071919444267156898436836988431579224271106971543158850101960539287512635438465559431118577570835920416321264602682609295320338668501152812122666106269921999764230982755036037146725779142125888964044954456736959823871632168580597582139298339449277570644122463830139097050258858450071088986453992429530602013298313100680333413035660473715175108172681035182566978319893139876829378186073813739845481943962650923320645835122965092438203084097651318144506135770492529162071400478179614043530029895000307930859010191690561029296923665122050757898515832311447137180864763928495455309856659720989124135235990255730221334485649037232065727849225057108990798486829298096252346836623301435356412888747730000648697570211874490803285045493434080505506813611851554366535148989363851458046621568488284898892158577687813735434964983710048345560526288236082874834635642990014895664040009395406161534145232159889695853950631736602164426693903868498025795584614128105903966486121907532348746102520114757772372078114734654324608170986721215804855643194816226786649443567271262220824587695772186949057239039514128941053676432981935096882685724028858886627793337335537761156265546455763078770644040101102847378205615574669630064677756427346115276130802324504322187366897569131543033047736035909345054802210170043834145727169352483116533490080593298056702732986261038943763545153772741529538905623610743430095534597010807932376561203714168880141452496216396343903222066803242092698812087518201127075804220212767264071823261435841772182566323436602474996877446185912171017459958587723430382291913221497991630071754992335468291905989257994230096291744154201147647091310028256057375540519654360322539248292479641663426962046073202508492248612060287345763671476521114360952470770789313366324448565316961155768064388003628169449332829715926802080862913498562723715368731423876029917554802745381823586602783162218804706764759700773643088221393454685595234377189693157781629872420196831960070499896449239118192761888927216300620955171525863258266082481299600698771965822126414524159836003751849081598732193851020313774068495413953389174965699572802659312479572623747186846261097573357217903803130888242182234151338743470008171084369453911825376301893332094705793145373518255871545003462451100909094322681399636625381517797241607527974164015156334787377308187382649830737488469693265967910549188046710860051072537270193385474178050153790671844015775138803068320643665922066336766828033758611719949547592723609495275917622264744364133195794224608412592158675359587680595742972016131925447487545769239736142320137810358949894018207900829220963592013701103315797608662054590986515812598731838587604860941968919686062551427031468896747619103735354393238334735425278254726957071725364322997363163830492878703613800802084384417120601835702969931208274400349131570305199171290777186313950924053096626837162269864147582604072635381971330890911608929098684693230700807737971411308173626137602095348901857334884727603842729239646249898152538398549976922748316954050572102684616023805074781760777656734763510163075064938581590675127720539864023085147794752834624984255794404890871665652749069527661508482572957233011822116239152603029060526473968404579528555342605751710778117498049606457222938678623820953454854520963479756211928311843895714407406736377959384106964023441002935627180074650934689470641527981077547417486044570996089661824994789516113380544079994409349547851572486216230285784132190115415905632613997566707396038108577984281860265088699668671529634962499753689424100483008282382694474737422367399918166671848116561095410760488859131664695820411809126773294981233038156811453208999944880762244384896551129593739313558332335402956107189540130897552440095951636537893798527573556397266082934644138104924366779653264103340774500485325689438059180378698684159605713051543565255914440856913151838627011000620294152997152512671327842353946547614512802115015212817367974625418785298996678903061638680282938618865883965531620819100857750979777755955988539522780935276082682238744187136501891599974336007752878392825338555908831479972976527772537853600335083272469414008711726196565384788213853179536746740377585428567772943575419850226283485766931781024527143827993748169195434947919769299794649586546527284149232645190739190132724996548297453898819911628615447831747043381010874612732058956614251525268754664907936620031318455228871418935775272486789723017158096060096896873989366679170715407340477849200210181444052256931514365824477141901032373587481913809502152414027516654950434994091519032772129862676180991870278693897037437668434693420140048295845167610170002090174196921132883766170597828671378473342825424428816955188241247808829419545379383493204633740105279824325840942086910919195232330213659084480990614521409537368486386137527835325132133785724101129304868060537109127302528045118331673078616052651556320293126548384086500452222627792402806946778583810652675809760855377398317747973552125541639854676365677269421390808496101828472534529386522939039122780919253221142575582540683934915249184521259517320968841211884303995199768473433356903530199978447484805486106055304256816904665700220534592602075469607016475807388964345322485089772810808981254701021736882001227926884292918591099102593244478333110984528841496408485680155180148568223553075141397818123549845209607692290382662196786591365291513516765240632091381806228845867721908795597862177442638816777022719932469056527002993331325386580994634965067273018550385933350942161078434390008721289810055407383554688929759347624426217946757285973007424213784886087348010044508494670856607748531462549554261546082899477388738213315694641646016549227145312165615240330926616995734648773147719779949580619877650200153813150974608657197435606122788914079097653543626669144970431627389253441092280320392898605992901871612312462084320071706579750410261247804715077905276043832056087136124627769480649097740750363461763259447093328931226025242416281264772435672001215597348203574118889779868730722013573211001323988732843397117401218349708471436931140359428846984402431469986185486081461617452689744137056089881126139521213310228662471336907590928056575475806599249125849822382482419869838703151519533993195678526220282776760455813437739568860910219149098853282197897895880710333559032269496279167407946586265120868009697006901837837961065992472326998223095228748796474204340673933877305916452890380202006941346903986624974860301595037398953514392001724374090477887868463358321503784727943665049340185616734905672130483957934658935989535125320644199023774452361762740076533899664462934890373808912752829924779985200925486069789588068590550060470691600838437497412952658243638088646442157866909529598409658449507035738706063403620929324621882047766352078175575301585276342095441119534490448982961862651052716001614842049773045786149430115156613377043673677943771868255540434022388091813920069101815538333613437713903763308355038692490235037189394544257878768526553536833801659736438561926863143075792060557232208422326742402596281724691489256411552419446186604940637200351651576620983169847467706544594135517742588773739062564970564923718487180596331434273915188421524224706585386437600893970086871360346264984682798787891662476786567226152762551383885567267283503812778554331099532958171005352037185263823465176278680747435977567678651441927444129775190439678315558388924309456743523648190142166138320521960908627377139434638525565332920503786977138645503857924114183798683344184755712387622642967216477190135709537226188734940690558724118921885021924788039159103684220213945851189261205668052004052257840533232098119370946757225050810652804961679599140859023949213733583230027323761275708182983341189608229554530507235596646787070802926768554469376338876020280286492931496527025050139435379239658360965578418274323528362495155223027761083604280092258977405323823071971254036431629756891805794443879185628625366362435183672326759466717765747372787993146711738814340465033046882456377923071174212849250015690532264688378112518834741658626092118974210783557281824518066109668964358872344607550780069488798037639552499077587370699855347229465627438304284907432479572167550637727785029544272420173580245060749651352521735232662075145661023088225872251504231408416675583534098175254442528454501255404020551911155652550565815939068539263278829552623159678892080086196564025302521626092027015804760070747150177180017489973948897819894121944636412517458966002463843220676340249710859556719686741226841613249727670192484674324772449558609280840569948553461271402010579440673734977390779974760224940487597110098265658381587536693806217318099215257533218957970348986182955068429657004180841961020189400747138819804748682266389390628840397234886679076398759580451280260849220824368148648397977794844614065010447465012488232472017966130531178783119304771549839641045073235556543603825824013262696825686356220078484970701695157974132137091840879737856974821607414359172698479076827784246674588599244635084596773536107610588246843674277586775966407018976618345927914421514096785790692090819489277118905397092897281409463780446449755519415965669903615648806452440133325516002731833109334124620217376574206718585523246644638820485084144687719874235411852071893413249179944936877330505163685728547250601134808676654796076166634679862371670915688565409257156467169615468255105675540713894031321746942889507270860209193737954871951661882134213268573606010556695551679088796786428430983664381207289272209721247581075745873799843709764274319506315179255556722826325151223551947543136966163536996667310006493287890824433492027872840858638705713875194293226516249884474819563871976250685474399465482196899081672917440437422640479711762692311617035113040885399672409082569442899681315958246205824141847339872668441621911027696847067811626382779187728177909643884942371559018553194665543964982244027012496166448636299418723831667813719124373370118490412257814237322621384826465068310986487862306168095558054262174781469849771518445864558827052066288255507258351199052930022440865172306162701810750077550145970411051598937827745740224811568798976086555383782317664601392165539105615022402882157052949212079746057561549847501376031889294849755228146203463020658352270686618663323253280654963578292593776377949669150046063478057518521751537471224372712637732416194436930661707877967582967325103911344223843284601384531999478558830889442945239819856417410506182026676014665966630308496504080752562554498844939510524706253385455584570529126755684769872911522912723894235105966692612927529347519478560185879354957815918710157033055244369442726910663110001576304798582524244306261633034697182645979019855755122766046292917986653775954470456540068027460708035907048799445291510918113263335517401051202066389221531492576203076307217595508587938822576633342775948980606580419108511019033487415977395765410178156019265332932819430912104798941839357743356159796156303466903793629534098438931118028971176920094160819439511860855250233732635171301583908692485844275674055995750824908682355579348062079953136630824161927843300992922880367180362197450134267518525501680057340837005783141525596880771723320115594936163990003839587971948244612290113960264717557693119866523729996202725365032097056256356120180679387236938441704014018283170966795477371457903429635884926215914739537985854365501923203108200055618921608227008747522497438189913424474705279551555482583983250248138253722638421653195858104549647691066113842156965551038191707551150867514655167792513274257281031466978673149131556764897663719527218741155862928666444826917848237651689239325677074622559077849276321777328608237950815541059917138278354043372160883417724818851591335075698579872693957808344794033392979732791671456090355363319094288933073769108638944995270539738552993833377412191145510413796406465250804675418124910122581106579484560956905465320419514386231699621778200266984381098446806456958269555650851817814270076155905710238399390394665691792432746616590400085807792232975807198248976079318455673636849870527139294076739885417913615849357295317205592118003493333999019132957243456572302278297129904784799134566751016124989587548124493923522283512754512405365625974287524206862083728813655283380705455565801344221779357284226414635350162350045382009592023156814378245548644729060390929025765320594709071329094833782643411057209421052833747588095255987560245073939268550492912646975837165986130403872259979732114297277712784565338770431378698001396555054288187379349421705859147723977518778969836545382641833629841304342316204282284407736381900702275079000231720051776621971175175993484142407957486059774865871763492230969348196355480082135681800336630287008891001881977725464347083506606293053358782727522522724896304269507718309756724787119800070327695766387041578814977076286518556861619855370706474847599441041722716856478592938339668321251777933816284364475205760980232610259753388330746784367298835181527156628642219632397919886904548093552258046274471927548839328938088828749026349661827382531500394303880105350833214750533220151799357046756726807481660143971763351726087332159191376789939995555344522789060090098263165098073442215909360175263543071326266337809011806677754856721273212463218909948409062509852427973893502337510514508408728049796157070079500796877995943303952305319140257968895462025547046618312577855972574772965776650512402473323117180029150522292432272771735331278975369986223351241342164267315274868085647997105513660905847924637764347269465068682140693349875132534900816410289063017654029399884155840056117338086291205808421889401943314676524791359447710629360441867295406833923583114038015084488094316635159754864683947926472808867566920473176771145103193329457024700025240946147945070901864154869522398445320643924991284609885707541680268702915806875588280904183746977521461513936646979581473819280868852819956466750446803942181405001186600405590502934238560961699879857971056146072481330473700170203540049914198280156033008622727644607997787779905867345303902802590400072397680966535692847731817560755946855933720261541926346311148429396205999704563897149221023651158265570823557363725269154667693398516644053444186906190188210964758353399576958833265326189445250281807626292801794988534254763661055858073080827735246516112022645591030958362017690148732457503876627157447747574743259198344984000855068020354587069836412372312094388613869822000144165585825314564568746605228848799720373681807826677853535756565429616147313330211582588004665529940565231318258965975659530301852470283900749402442712178321038203876197822570274096995606292506063012677034805323558657870316114969898110451416436464104461407595625904386237056342930264601501106262991567234209924940587241541445138245174583963512017639025391758652558948628537891021254264892184236001311802843454798295915345454426049891846630859971440532379149527179384762885331045519600587224675311591196599722131713294059975569956943536462124173218350294866374833876682428323556518536237832668803971129535975205254821967061158998230330981816052550892278255571284120253467337092525039750211290302622688903712068825630684435824470075964510921633421288495875368273748304247297499043658780858604155101764106789028662462906325724674770814804635638718535215880513740563477396546953819316633174289232681685341478869749395935318897473467010535397300077043719150241365979907788819747744731603579707707902708551560225150654253788340837615192557168585223916004289583733429386605225619109897440957428783918376201409878222819323655101598035604172185277793731908877325503116709757112424497264189862631309261032472062986074600473434006271214759907171746903067607329019986118096249041029202207102234156904165887395034934670222916023258133125632767108485471323768842808508790246139873759174843804112210113554143929207696432245572359935359160481219684290442201603542649909649951180685861839908243468438688028464451862480025183477789695512320013751648007934313802994374529893382641406537338794608553819723316227763235408470708076503617538472786743497438905206221746525715227222460598251582758555265983992794261836886744749340255660742807957628504709739234581501865408068257264458394186551744460142851779045159598648461490880705535028287900002939747829539225424784535163761400213607383690006914483598766594619981371302181786266579007677687793532461377097191020536003582338189085659541220622950035799779000703026298903472369637987549249739867587881997624750833013988364359229818004344443485810867873263240460043676607579285014603276095486843056300764571331587748558015529945854864549166931453727208746783361656072243318067506347675935299621758614300495558839949570412007290814537193075858755707324560430125504224648910677639708625942622785116738067519629774000448473791529219330600672412786781270741091779706907123903344095178498701442408185105462621960559003597637636933144394013675039900565846178950878188479925931673776791882342584138392697964985468578795073413765805891816336882510125818525558369946831957624310214977426549887519286033640682536078777683550907042307547757399671326907406649465655386616956192804658388143870128119828102507716076573636237946060338800848281136823057227922974408322202944003033673726505442855427603103624830042361851489597825990797928742033160281447743647676953840301983517554189375683253538666829393847791763265324591339375429729788224323468218379425078985547541863765672312292773736968333634157842669833769122387615176843733652166114797124107065164826997914551393300500279447450237655977280885823049658145846440914260965791304203460353625216920143927089410870916359161907200287082859474022722872149252712720209585089068787501003743396814271115456374457964586955092463571775654853380821801489387002559022755533434512059045047024839714746592926437093146293552498396908086401242710604027077572651104878173711659101452996888472971184023780585303487186987350774826158537406653975470497026349423273513483570414739567946069869308400873272841746842543337316165799454432811503517117042376110613858635794385483788575586848179771819840217119850369213048652583134011220554758536867435912524793537038225315021364189766211396908154811720554723700947792477064898027237449959090663228574437214371952838673231324230384279776921648338376823609441956574019271205027668542820798733073971229489493126666669462051565588885876266450141032343530096376661688106451104939013030196112272015644563129752817400263099171154026954554788111725989660200000871955365844271341265059998592777236041084668022592061796686193652755963673852135959508014841008457097740219734099844409177023791077653911319978280152853543206050822021980118823602932620813383108573365442608579002445610700110395145423236128601116792389505802241723599334800052287717632810451069788082681702897814384740721793710607798906289833782678443892248124968310067104861104010077381256344828446721629747887996211579309066469296704824660480589986695775375708897251189477872199727979587370267157895829388927193154979872741870952114049315854719920403643535668176509253271500944252086084795788984004980543800213431394906793277872837990709887649917147371958534837977834054186574518773174599298118756727283279545435415098448061305380813684049270891464255042901910668625515141453525592053107377127063123695462929045906284924208020717338139928311993818903991555105148552666090007805617810123651835585806599813420893131831697554875610100648220397545194607258069301499248953957017251086874035788606558059722006819544309539752542202304963622474991180786678962137719964097176618981983449086388390896017731542442378073234309709663523862043837931818394186773149176027984531737796448452459848280947496450283045136997614048858332603731204524148345504488452988842292977745138155076268108311141896320115010077552574499735090325244062117824709120853267541870173374597975319809471568670884685415820901730477338468685712043352342387926564482294483587845305285344111868669993929665738761222109374044907648012172505782317337775797744972652125999274539003051307065000648168728298007026538530624869140640544054091260526531100050666242352164477403297451848557072237451027557409871325239815328885428835804318171047588551746466891222086562663860961099246899278630440087382734625173885906495650501912453007138884982998132891502789208469563724570130205803340981904164247647040961804557818231214716004739497091866128929781324753606008479680043114190438342488707791343306715016046015157859609631373484589662732926364971092620451920204052698726573182737197825047005349866195205042644297237650468419876871506928757713331897165054467706687829054062810320776598431433498723430495450134291702826924906405380717182039209760679244263398169404545670781347213218490683138162098293865673345246014597017263592339480567879146496519220330051264810237658596676308968169681692930401308592281069465758714255615463639704435988181932207003146108548091636076778689135320165825684742560706969120403219119721132880149690182560087161553004820332055956236991017709894563769338495763041462065652242811283594163636528814891810766712535850294342039259063413968034306279767769545848838120472601213249143244324310657740377675254766733947743388279064283378856269072068772431632418385843481947321431177056667706060501915455689310342850974258574850598214567008817547794767041153686288112499539164500462429701894715415833266184220559697829100313989745663977784680124100363120413169651974752547541060948264080390472981904376875502940345065929781821730057427541581941904907443698696095904757777216730830782141903533279798810124545982000790304192208030025665800822665682063489150831071849819053138330995447055425511434935320065067756830887193429253242988823311297095832579378775082459574713766564277178431951063378627762604061547979491956858070736820129886364547383256440874787706674673453505188338834342819525891295456463123309362113349370559093577816219466358247988205989368633090785140237025859677717351370099370464451055255733831413742430973539665853898439252380325718164797663665101695296799655560928177239534077317216531210171964248868527999579922242356545318984435113646245160181278953667926124946626353116465663133742197157712623534233094884405223132306144579324524301386813183693279405517766339112132536754276778916883039726659977828025453440851072641790336824508549219860471212018498172256095253860029099649790914759507677095159689057783216742674881974626047921231403901100926353808242531174674890891902844968621197141966641714561484364853639978888058083692921164794260583800091451115380330949350795902321088946179235898246566422024291657337684478061989400378344045221506776542992654052973604275552551766843307473349292164166594250841809256683820411840577577803927564783394776387156575630813537790348187264418909019380938453741867547694904895692438137699942249699566094097538873552255724893335120478998594797964559697042338488218764909453013670980374592455390317942945484011737417601075347150295439931954627485125299357085261101439844755206967003519361437655895757878206132611223366337989563509686714507232133683394028620128149414967153197761240612723921654516824458727207763469098458153675592102975989570715584966645935240744177051997503708437376578238928832307977612863209426587286180923858501443611069330581391159351438768818196217889365421529512418882980222555556187755945201460369126108341466376391449654603613500457105420958033207827916579168363195396395258627527673986417697125838492245553794722904114377944527180978884777832488433768550182736875474560010394236580464394107927054569976267262141206032063006147798501679436523370273127731115627446208252872090940766564059105548382590870325629253215118761607196031522299289339610024640081359001420492664705481423025291611635545128086363606892247535857632663514028989304568916736853109938338531538046372444007762289977432751648943552421589918016848722676166180250262087666617660838773660988284029670394046603847700960425494287639000980444513515217411540147916056468246607656741708662158933946959186308055588707540961754697598251460952514456822001844281902483107128979246405864193995117367847711875809607955473325462744070336320077203603990970757028715537945418801108507882907628222900940988658874574167710280424919712902145572672810894062672637699762466851131912065327586468496434786703475231941890265011073531760064543530895255772065810169423289624218053193258422412910398092571972078726593180855653331546221265775538549968777010856839923600514854840129161228609772983621784380854636433618616437148927445919081281446251164641535078806356446659014416774214393951577083380309061239049421452980944634602933528375565478720348982247622856197614254358510625984030974105013349407057239271860313722040586830999384515693741608406708557770540889459095337253589932051705043666324726074989376880491819003497600710993258136473210022607500923502929909948574865464998886978275852103670842729556816688251333814420862965598791940929839082642569242522109634484088750070410922017267023524062461729933462370050353236644198293740263116698670376133175005126462711150769009205919699796956205148941605982591736062599434427552494906528317985009247419581423994147248276277215105960920000730450619620592249575248070282756637253218435916670037515423971449390129764671087579935618577533953514284542651140969900937847916903779773962718780411031988332484777063582442193995829139022935477343727669619258454808747376188806883829320301785112791787945574409993571607085686930162230459269127154416182406522825487092633592210386062166051840471230136946693222525955607414411171975735992295778342734764168202572752147420128382505343983227737865628230965599806580071389778191028031449610744345639085570373972007810995023460741078172326853644986931075839326468031946436151715527962469383330469388512429879558295923295723619550751331711073462919546593314947171775557585228293317165468535558527026100954486908385465227448733414251869120628391866967389219788077829156170450487195445069720173426580067212035024866163712604709467882411927487484063261490684992285110322126632888395027103571425532645742227445772690248505033458139025607505492818715377628918514182663904757570640837782057748840616955086280586210136160075045290857597492394917105482011469351467020159054470139802429012196137265622651665642771647423575226590221918355358447466410759798619384373701809686225631385395728389643362029029009277180576178862396681259100154368394374712548420865864431716967020404983441416279766831469173589557208398933848521959330671067239394885743948086302468435697010814202919493819212372919826571001413020129248059020948166711459866682512035877797578155981268165021579182321584380998053590053781991703321050211131963603896954205025022673559647148667553116833709627626595391721962561671588735012078835779333698549768320436552850424531089566146892896579205683233638682428113371792940913929815540459319639066079058554715246795833480989509053041551872637398085172710582591366724949573428061245447909952419230400906723534098839578803852949251736411561530155446689013937613786990535930226627922622532794221106469347308710584297489348381488535836465007819332198715093123834051507440475814801407193159690717391488174846483930439035426892954230035360237704948972915686092124886281390046547474969786194735945309147826818094328272996835165498308589405193131093763360095854752606033489400290057197829983958965567344627207223171331887633716029079075570430062991584416645852236719552593805154139089664427996054656436254911156334409070450347024642998950993643299203693385375019259386356097295343492901455665189455858653571268858764978155064830812166598738040514426909808382239978869924445766356175035585020483763033163521322628577177448626959698408332845961933147188254647601206674285170715027606392430574485354599516125396853070594822315445527520387907237644538681261599663571062009195505499861704207536314494522751758586653551055310309850736298958031247517339480860920300839123875862424485128206856421811794563327520082663074896046325391212818208260690248305483898712737457583665184946817338794026796051492194821548742598011582809895697702890041323983187211234869025673432055698961932229328553686523051246282737646428594546742200444579618303940850406656595309596557937729032190372075597203478601055473719317109776535854455699676809860115900751915390504090206671940439085457612723609152396269915090590175778849807959472746133537350428407572129704030191895590562804388175733144019107054063268400293423083175935818576168239975588823834017503452531329656828405385783748336056966808026962163473711837390788182569902822024031888677514034800114306371164510109422985054730264470998479593624107401282299736115486460376185303814630580306500960536321892581646614234414891094578461407910900122749920432930726980579114941969941358596904441270817843363279102578239747810526461356291184244361226663541978795182535482044371490768707346481453139602495174282000336843002564541842692810873402323422460017461168049385218498003449180415415752974303360936082757165507050720927913585501145749471208482643184852357270130187866639595224047602213856539952753275204698594113303407502292250709469246429202985146191258242899443931469582576713326148788023765000114707960399449512194527230978356967427084163609698223524226505976155554047854463182888508557816810402310796697839905557156241191075497096629405377683211463815261139578639997477710246737255339405388262271069474418331625124022404924222674489342053899379471399147830163366125178744534617751454448755039727082954136509033475573563803720508304353812501157579016569433029713436762443859202243782491677937334343089339362949383823124006651043903754932715867985583766066822421477512831933148087365426345781689254646730637572149189184371312228034128070297339950667881822518077221180398644383142669851575026172304902796141604582713660614046243301867039103219536083995348210023220542877410293400597445753820917938756495988693192267392541831492598210083765858745156247901251778432380561061033400071249772038171790513507370466677406230481181148152742110871898306840567885086898928041355622078623482941612866272348257529593441195765283166574688315567272075712374034183602821127393690357470258489167027742978964371823034476502420675346169893995030466061111671599431598040884547525780148437325491983479210253486880471574549696322055303956778846560113041363094240816435127541834493162270667962877586677325590400305714217716338547453759504860245786156315367368476822477989450610014719579024967882219404470222402576842040825302216884462428161575138598825371270820074000235739593624536319601727847796853263093718906758039505845154239308896915160318184783633884475221171930428065044020192639610029334550922119816061854436932132469214224842941340784982633285934223179947928347027791451550887298949368751509844510763298599451355746837246930141754682272000610943035395452985619047185759730411760928457589257805047296220804493493193005393228852105536570159836696036166056681793939241714732632052276466991190143300991107528945499721770804564777311652855629800452250652016628567048340377677779183579340937713489717594773133857526769441855535083027412023632720019178527889505827392772254714203292095359186200255983592897603859745188142325431579056076247084880829819460684455315793644523577077376892017335022837214471614150013661903762140409591572524623948479500849864295414675331020386805884501510565109775724191372854040050337012623247435870239942232250658722083150051744660782158596999877071766364987835291533051422040870047315093051179892670108129884606349576103194392509411888353815599913179443697980899701048638395668642970268774350470857041408022692417360986336971710892009463868094647036579440716940048986142815299966057724914098666504565340555410522950580353146994600523871676928141821861307271310971451504421692079331481633959585030054591322574444783290213099965690718884767298901927187239964403740014640784353656585431212163102781456977299886881002502034083699997689013959341544229657061013398457157132853427298083737780990983413242746802024319186296044310272459061676188331758399633449925633650338396968572573910745055377677143931921126781641232395062471275216723175872289464578760517983989645234927586559179953904805748280838637769006283506864149505634350281204439172673693209689563814241451688276945719001968328415035414354435926156737826594214123004193770107827162928048826570449169570004592034928358049704694468984738459945075355449997087164818096730703211029807048228270046883709408383644061738277681583975735381784902300030738846730902993509140124365925165387661791145075323027578880729121567985029136267484829554826079494671248014693212279703435364488817234542201337114388135236400588267349692062166721102296231505378865180065146895854083268536526397878330488981163150036765368430195024814255057289270948622901030115793589833089177259012030002617646949176665949921390463781525731258975961533057650957009831906216719495165457687168090630388512186958892373280861544207244410892715250682913386613169171018850228657151772622174641337570958538624311034163616444999419923521033104561758378442963486266181383308144894282928957743734961969210314774253538036516591932453146334532852189671255065899107397040763144288856420108308222670967438636293317339242054869711763639451538752808090820476879885963135358984141273079808051857629917242138568923928053160574633902063696141356561927601859892946841662971935781670194550146950973592761423245412926411869591049813191751428655894097056614096776894596666224192464502625293414837515494588112861102686523112322336553284389899248520995952906905392654910723160626114104032853980779260812358636146078516973481407154163765648813582576938454823505699592434304631951842317364943349623183126329637969560106333673201311267339765845107736200936709616947683601445968686052796562111274464231751171540880186236964220408464357217531447244675762840652255992655177457161516436036148824822618770698092569918464911960587416095311808228968394333967562647975339210472454223966441422675707014909973302124645077749573014023387304791843985161929319002904751803445818322035821830317460179353481135647052122567080291876956205298938387813724807691030112156142614248251660062623012471867098233658001460380716322644418951974742607213074507454841751139823886653102551336394520269422362715752810404936680466267270191181686268956592729977448335979489259863482149359338647107805398444502194375306665369168890691076716750714784954823296749826511724090378713333228053379692529608352605559539865553912823841743567737420447240641606072768773339548454770093321221211313723759437816701595246396901578936673510620345686974599780782536259452997837277094964614307616571577698679944832522349433030285979033154018028109878218533462393455534751222712778714924394027127057725242383203823134243481663518200716485549702030140523526930706334292005846231908758521324915794594582338190724287013485643345482043385910831428637101050551800932893785732961830292691461203863296365411229050349742510794791956119234215946236318213709702071472933849435125476681840912527827751161749061094988931749051467670500877762143246438991312393323178333421134978736001402908175914241517737878078792761324257324382110401217532795139639452121496958373024290763540303125414011311073025087648695079795395074728947274301331086113834899498571151532536721101916640996396428905413444685018280757414541665532768210653572298475733086100326280711538018180511748343987279075040600833450657851680734112962085872440231452216479520741302787683313389987151323287981257033748526010470176550432332900713361139163060660965578929672127107086811201364384891300407597934468433709669358711898555801265925249567650865606990421659344611014281047137954849730296939303958307485879812939299617183820792535663605361534474263649206819502996531834509447308283704151482466636864782673953592610212396595658338468022200956317050780189744905899560392389732002915832887267279975758053358549718399422403760757725074306115407083404762713720305187131529224222339560529260883098442866707684609775890349037977472123598602648863390588431091140795221506783366650437334360831682971747301228005966496126366285265017479631699822596855586447157210470816459511928890323239761523773998072603637770903887423462514262053823269527530924450433592553590980868195686999446036314302114865153181352803736866653425050021251909578201772021770666930842246603653382874643982608101023846239152072637604901895303325509637963428231267264059058403192970310528478041397014054444731996771934236324310493307139664888404367300959249334471849684001037251714014691865491099713969610774182337083494809607516973994854742845187824407730971066424134091648385204147762977935863180585811310233399876531422713881845477870911974206844736876022566418058569401235890741916169531542856590743665224293417162826143126757937906736226632137467201083350272633538327030869680824320531544354950040998051884918126150372818153933413782138493843249327225391537194353471306747059261371589783920529928639692245185457811237242070129373968746631005422273478424032136114169929854098643550638896774456999517283885433397631805794133945097329460359486997139453995291877493684894144118945539843753042495477445233665637879756507038876034981585464743300090190267082056350643894564316051319600192350148477820993250491995926847407219916671918898695491039306203971082929520287126393991389883539112031247847610140860021208635967482977749977045336058754601345134015958214094082848938490887050215123719450399016662247251442651178484403253866710260582805316779232540297694545773975125693736779106664203610037037279579023226517555115386549052570886067875943936255871992704982173747732282267309628358355891289689486076523808639712611014605983122947450347219306022266586552966863078729858214336023246616343638805827411345657393115652454674100102277022711037176411898615141108442099357811137034038120948588120864427578122963288803744886875586058597654857645468412195783289653305500578942942188369372158670483562217830578647122827733365477998598743664350733630836994226230167037440499942141987801435675098359099338192858412548448966817334020365395082614580442680616829760348322351307075960975144484460719651797855829624193650022694798928821672019031040404317125939823525108905056221125946407319782722275471680197659076586108788665911876989515081766906102106312118961803354608345266237243276628038190633912047317314291916498823964382156649509294169526292714081550840180021725566478964854594255669062889289603441625060936318594542479322700421668426996685642837410149519694239417977811598848416476325832915425722595246035029267759617392237996325390110017449274417172406472938404580719837911654164171826747685731379011329124688154912547844134275720651802045993968151310575987620050259491023451863336563981553436858758577432996459860015456333095483447729437274903466708621631186231544506267907731711089765702375040169348874986924585411318448798540284546942085994385097922209914227603085003673139042025287725231824678182923918115468205921160609014086002293684532215066449278799100611356125980115788862009115971857494898789747090002492729492823617119811331860425526829992015883329526360646908519072821053749590430547598538020832001561338882191067469530932564152604314020770995912941202730064030231566439105572086553997909473000299698075818531973534438153664719022599982686593565145139334300363742043189332701901052971153432190088793617388518866185689621525633748478483263542120173780673746048373630874127273744557496952291929983321029685628037971896111009603021143047704119168159990039699762654452370252192354392087584238976222478764309730109371289623218984852346483450590698662608477741792882939788167088428788611318647702425481168000066194680967595102444341409117782923463728902346901196759479667228510713817001080801657241063046744401079113737954123686086805113440644019024305509529463653922613445258192413162790077360456756853762466424166323556516104516543833448654286080708472645677911409606599519694732629721985230474182825192365020917967921278570360995163143467899727382769189982393823688170639373120656398959877804973202998000816891985664915779162198359584275727854856441211797124203339585864446190369200940780234977394258300146530328523850367182482225275450394432314288304130668630439831414231228607665319264426158443407452185899171443576377432031936983471798164175975500594452371169829139637495879482718516936200727818493558733297918746945872599276931382812928008844859619502550445002197287397106322502125914482509281839462973119653565928670459096873814710141881414227231019710568331338261020651067315327248069223616838862513200652289073038733725897167874040254653274496152151219014222975495948221097082390063468711398797164973280423147332556332472132439818008129463213859296815136554936803061680406683585723211843128808818687567708545358255967006767852921849235924292672109966006790294384929017858528686745288078252905708328306468704824800535759423481968635186268158776972740044950928564017808684973674618916346296809325943427811769605125251549599415762955832101978646916620109236581466984833016094109443413229321079229100891583356390677036205945225067521030072772735991481515951200340305332012060191429782324649721226491553551675645180704741497218094188997168830684368936752235391384556354833277298827787658953792613946591381764556850390686495400237677805189638034817446504848822268492942365093018431826418379524932086923518335364254474015816690776750038051471526852968539967259297571548218508256145393451696728538600902501295934883676603262496845792367101443194575638614925044526166103400664713770177059827090394034411621913987200388609242639754246011314241431177191558463548824585421192493631009951537482171051494327273465360313347916241247583331413068281735785295785802952906717220025010645685706729165114878819848234445240107527779712750229654622718787659197348497753874079637150986760697406230575212506730609623403233185541670470367973547618652065275476467115772694244991533300901328231104934790171129379757142363838093591779647754388814710709493693838074470876416336729923742524120095198357757247850754991925846685790627685476715198730101567854824403493875831974484832551244331247039676513955816713011372036323037198442138588896154148204845688770044290742131363921351780025799888474579387039403737801942151035490017055309582918763013509473325631236273116125790541806894304776283728293419705889801944791948587919120354521617491207934331867242071815398655158915006862356730005890313691985459570246491122055564346741899271867649115862081355774245220377154379977293134941025029348975640487024859260499178851630042944004162732570349204989627454903241583005340188346967314614082189211198941047544012638368493984960038394132447121965519392956162430694153857954957282820729554131487240948768585214913612476200423501235351314576305931183616213727097881698196642219665450975184306542639046854942848562748170804591505547367498740674755992078597388246649785872288938192786271830786876298399890943501460667341247846610509395716432861588532779810252372041575453917480226620386207555976237477872533782752958964164529727601914023721566597899208966990439285716253506699610384468313916110550061358701224224332748995894449247381948512320664944600761927842014756956143478140603495081675661028835480170990265596098843089057808349606178355084139797065285091074895072827019743768174176472192968935963208956031124415280473861920374677822897895026512895812810865258931331056709002627264072659805729174727035673142259530822291787475789940555515433463133586511905520686984772748626512073226211668090647085803135227197494544593210119933938051917852342157423458004886554541941239429760100354146658048576805671359446604280908339213514222408285730586396193635600592281235570169907052720870436502049485293499282434668507192219211715696632884526887788886098660371048719618990275848863750314412786073869888310885919559113910214667836327764366211921010375907389166750073167190608202577830427902283774118726587069496428655645621910538784749548311861677865035978348255173537131536617771887211514486040289500921512726774220209479838065987348261604582391112927609871130810725978108785381318391233080218057816298650465555984746493759009252545835019510737027573479713830443676615730508309726243908220128140514420672691624314997175819007088574463015887334222046854361621754325844678562157997309910033805652271513295349652415150581777336034295897913720661973129123993533718904193133478597326750202129992323912827140043621710129483770753377825056470352657939782852137642411763559376365230332815192317282513575446577443099881535310403925765168708259806627987489574573052185990049888487395033886376942676062352441733912826310281617348121847276438989404592922720838315707959758235396858008918162320713664665142896435771474671216242322322277343280636175885897378107859654823023482694246516146800364974099239114426867111548388157126591188922618585050398515002276695091624703490921356104534645396546920616364887880782905321332022437671729518005801463299692522803726320814324861096325544533464518465968569317536548115650463656974612221019265523949760314398306321120149011577232805984081026700242276307269913855831853807240970079997947704601543728686749990089087498701639637161850210754444432418221139376788717569910687510382233981896178721602847777989336656223369889972639368520512697638105749205286404715445527646787292595545361050644385204931583193478485275233676256157096419641735303951049465452512334290522944228978522185659238527982362177859351365042505384315197196364931072576767027616471089656198939874443065010536808344712102905332374886893019127656635675957543055560597747617063830334584812210444484973216768318716896996804818138436011896102903972706741652901000496988774977555448754773857351764071733484766217946179395319877456048327818242625771207521849513250760241030668274777942890945088273118156237159345799233078704300126143492464518573643595718286504957244192468986497212024289815754535498636147919601858722465653624478723530059742563057381626048003314257802891694273303760154667779263015751909057016450475184633345914047509221056134398759450916094341375275534973993437969900948216712187324179875675135789547861302720056058941492866741474562533172327294673385326396083201952132697586724552418354240952856232874720474887599220379597816290968033766452959860781374873147618585371775154715786147030820529867031168180535538024424634015873654320422745210851847361228274892721527783273990022344488864137829818424057460531579805345350059366828224812798998241433125297686882829313526282672573987763445645807068877153988660264066794683892733633171021439960882088963166410524716029135558944743411355787179909472291601284257081660948611074126390020585420022524518892613964857534438733553704000292388873687375609824082139194300176148691200674330160726067605973383195948728365637262432308232672335932029438476428909853125127768891450135181941082192316319842786813522448432449476076431802159212449762567876895953119795962498474698229773211766080532948528032172262990676699916848975149435061899581245929628961005727756524192706406590022533042833449736847020887814352142788548226001855871049041865530147114198761508440361061821528782392608852590497598178138659460315523997657697060948376519813047617185995105136903969197745109622142554584719160813314198723295110209233506138290528176141934016136615077961755867465831239410233562229480584661187749417691969252674321648835230599237066824262865328749668986502539002892576574886270367663616668155255798284095538774669622972174755159375602436802383867721788174665402002076334053211984393385531381588474610438765756986911302033673550159311308109346569638869737466648247138640898234164873974374363214152711441816791054209223142054338565845225282909378820247206541891278332555932810506395544688823413352929079676705557650344780692220571045807928307149167872155051377301909401419961091842033513534149174838886859822622959892393861988555657881678738362627673568637987896447216115391178929498231909747734711660040550240987208523684624687553761246203444757218708525056685813868035693655727623911113777291068089857292829058589929632012821267774611206313968355982221805156940532123666705425522436613336366894393760881045960598760435050572321143782992362342696460473443940617152847823986586214882112499551978412161915506119036062095789851096920149252131680156683646538591268484092619847820320497738103924268963303717035651878147579096994554251531286604414334256757042692377463555882627732514225945831235966517122036290470852218421956878707551067424727261752561867808070805229703572827653726739732639392332717431067438864847242729506528767354081882093588944563048852496085884644516587953696320964224404121334718736805135789459377769056592668075941942992218350994002026215195200391737670881471941347142645847712442003425675651433948722793930241086901188533735872456596620508634663071896892490531590674736348696868155879161223052739400616179256180611726494369033111116564607622509438163198564175411826015449723453894614205706805187868065212953066626802280447907706573963512643087933831735190191100901084746252688758765243244962796279864731978565722742426829228784745195904286398004036958284881822446801850399878228712920925238402276468621435757714377080013193088992931334434708270579961619954427920441353146119021338985185548178353786846112543281782606616953740587821936447841620321722099350876774787408920672643203586475383650470452903251120232737674495475987369570782433429254196891529933449504760181347315945009175658283297420954929017524437355152221561642499111839870142615400484271361883984752626007563223772774627811642401273550210384380155916076649721385024577166579978496362308922896136870958571519189218492483666416896667311638437988802974434564069955651197881702726254819852275600796259257555594062408273720936366167018575666053456427143963751112425373987198948328055069156634555135987254214622910032778133237042045174579600360955813115421869904995211336864136820477952673465786102851814788514194100165116281165177261795738588964299072849466694079121456021466703991704362056515793451931516478899146330389238935991168092265303670509516204106615769598729736770462109016021313300428760836017262641056238514132941161336580721493010447524164067870393497609832565093830777052205237946097302893995022577117961841897631156904977702081905356962523813308152703471594423001159800472023244023300118732714357085098586471143267688446644112060561719429356841937657528342035211498875905671875376139306099443998997019606661921744129216462010863961158865969624334523303517259775096116512243242730890674567102596848395609269638483458477283066474859476769239034970566473623518942228785434047057168514280645279865806673443649163213446638251516127063603503482009292123166260808530807769220813652117652123736706852552354989643258383682388733559419402692206892829403770694430319135480066862394771066792045485998453317407953289098849656151356013927984559334337941981455641663412510793734078125905378358620158042970918307415650904309194250998379154278622419871833953514728061215414590459147159279585235386958331596072485886884724538178923102841604958267398201599886129555549488814025015339570402854245219029039656078880797220606125174930511685070867444749586629828682326351980404197515525657039069403760439903243491813678414152696249510590709934745481452447402964571406522156489100191334464835963343625115594048346439669628245201352247300038919227561600648887114803323150047489354770789636132342321490388563386522851715197591732533459118799009579893184378254946041479517958832494388466912767937743447229781596314533035357553323868272802494591073388863911794002122640329987307301788488343886577659104041290913502235587932072273278349646324770107857251565609694514621186415478281548732531148295475662055932660213872277824785015690294437678508311993686464573105530966220202212214110606169460315146455748422501789692309385515571613531496389663590020108570211811187424678539202644450924488365965038829394708230902985993329771965237232528494110162574363067468751559748261098480652112747322790093436024889537734503632599570772528378089880542455944628268071441472005699000854196593936917900490441194589926151825207762424871322698805232012950215752040184512508938347920241811969512108644820103862174520183665877406495895737024252718893896343414356190555178033031177862817266667646472559514661334030495062091304171637026510538578933724167509804437503305726670984659034251783664054383616422179739446364840041372824935794806670779560058362889808723290162520942293588817450975647344819580643679773892536519301050534758990601137917385299925887616878594093514967692244077102502987835717819814047853698333728185684282149826593182962534167268487653853092465402433691866316567618073391212197386419348359188999213313230184839459509351528501836470024117126238076595334187229998849482565102625753215124566871012463862261990675101705606596744974263238649310699827057418000984055911142227035394980876504089537058842199290527492857253756058029606717677611087137762468986693910852815280157274274348054792932130821960043276401384012427825149635578120625727656868781803976227372029239413468918678302890527419661242040122244276205083856162627583479629593087356859515091029643199405740954247656353261645275461072361290163196399967592155110617549166470496478394330389974414611949779584660546325833693390686086015667243733804819093262632523716704656908518300566382254599805210452894454577403417275019925598787400841268054501600465896258519117668908454324711837512734947455079146354891368843534868356584310917341641434098638744964335538939323672339456617231726948443526449168274753548884279143242038537765037367179548871100930140963916037274395252247271320621114005418500204080195927808347748874492838286966876860228640696138670165878380242808948461860978794479296281620342919746918911434050312961926269996087419463818976298684694795680565679885334442417987192849980528685070058854640391604607051965869394160476973215421331853434047072617191187738560369990604452693318317650107981664013256834352690290398979345495150503018233604689543789500122202242918218672738762574179555551574044960722935948416943417182008135415050401209234492803220764894196874731766189351248588782038388912162896544850046816561448332388356510999315241417936051234896970606217808089051725263930175248918573223399463237605463908554574823652926754970442642246299646832009609015849034538111088307913657051315920794651009335364249620712503760089307097440265477115387049056500275813345029619316521502610551241175475462021524179597025030999298428752785394866577897162483356923768494068862197703639519999105581732618052448682031912441611422656218871496771138882577837885695874016272173286865864219319551947972248715561044536465410769947970879621903223371770190132997418738475049833269547481922594373072670620153816031790027882486307256933122561310035152471784532336709293114683211573163396725841684645900916854435760373464492902109996240648687417590948182347041447940991053330747572778590847317818784386349862983712495160246615220803701271066345140196565629176383936235421344222865127922970937496449731474924289107536898103645771182651894242340609714654588135136753731687319229407815185965640414812033892347081831969255492897580695662730574679781338128811467544976532043655629169271753673697380263298621419072559772991606485990712561676218528604488807782500438644527725990952072563068088399264029968239195844278299100833945655042691584077994129370863575313371228336565823515462667240884487269700643105221330937965371783351023789103748337292113841487622595399353504871703565560295522666208368124226929232748184411868223212203396588538785252955385679924821920797832432062040001245318444925369030281082476400391037500729052476547224197286652845414548768142294970343945380230325214507767079233648401651350139119787342161825265075123830556991964133917863554594619239377452891345267623059708658414343098491519665464017035083302915438565904145754803775434947103643301453951623724257215253557658473409642367008033506261149048530466676555575464117841013421889208036166451962462668748853734004493678507077438175290858103102700957425892183587230529254766412777498196848196622786800144930349564613319097273753154611724712811699167704850364008313151649880996681869494782400841986798089185024553838893703132790096137972532303585067632141076747456853219828052842207520037929593545990238095918556743031860847757521027834203840659338186213041200118463886638964571884024873254652643162421849539910055689348277255692214653500186139232341297045060695650506653178028258658186216411666058261523327671395630385951758497556573554494174199991904993277197949494539840007904140734954058460508885729481991945550457086856595214982316049497561859669740008376872442682690131373040430003514071556902869005888702247956798823884612972828342493311578381324513987083337914470728159197003160474122223026612458673636599012959225958348192209054725835851318358356009339921243603047842126649763756790037013257961493807677547859440877114476591088156200898999372147185995704803668142833469770248072804398770398837036544256232833485767607174735116117229111778646718838914983914428457846862699830389691065972902087425633399600970902697098183768161524209043502960564353293078240563445069087486285630825948620417151787239851189281533007999212744923543546270387519637688535417034417635852119430682339923754905439169584135333081926362214774997538878244640390610478615716477715650637892875239860063867539668256533044176272460471219385640371227735205473323192763045221812524894943271343766688444824255260495530625243853030897944285837763201390016871545192799993247359629240304614890487675014337210090713540977402252652806568447303171780444523546339425081223386254020945194434473532285398511238510405739909866271301910445558672711786822256873459365498658879520979691713582858167620998219733964175139000520401303988791140215560298990220135828232216029418739398722552067284624400504441605534277953665922015693538068868336273318612063153136847085042564638926309826220152896180015961687695326752814985622588772685433841906165016055128954270408623031140586810919261840346481456018093970041114118960018991985703352302924204381148051979478019744778968170611222797662854655330594179597460030940633153314198294386048559909089124416677508903982276781978672561758819639647305848397794696251511759908401510296469413563265155110181410901155663737539785820300260140165435434026864805116481593402404469399174419178831001603686285824725200802616557212139152906954339443978884703986394465985646496784179786563061915426692943790817271520887254150274155364047178839748556302419897342303214298624544791288955449426473307180101709340788515730815076296141978628489108709380130963510366588529465094591682077144640007438990484168104712152613211114289558134131728369293463184564729389005575619450245464294625942638715969846225509119733615656611545447295084246841207849451788091513371278907163519011012952235524825500839364497757076332410715760355359567236973027075647596659127998977943403236566644931515249191506036359649441493879807238937604421537928050141075014562593723996281183035996027145126896740503533801218653621152612321353568171296545654745113735417003660355215484118503725794161911758637284498941259896394513794692225319988359369169648301569169936865074772925572393284081945408298911358215031482674169151597928233719218470740835710358713114738792307824137535052129758586898369961128798354237685355469119471396664379500877072711154218293268091750973408425137676441945514033393899924376920938935276803932946148115223313169160080833439338435747653368301917577491123693806501743361184458598097009739959582042794709759618759423048845366833836889697673111803400670045162023440487516836959548957083502191542930714623893278769639400902638412795442230374333121514840432836830352419419693095176347387591662682648453841456284929632848163317182764542444551062007968165195741661431454102194932286382067968978421052234541451499618138727711650860572406745494657706875611739757335717816863831139375487163886240272276050845421222857567026122879352993752521831039645470875782065443949798167826929451687126112147457060949798021836713522766251078737977733641790205839824690873863799440690258964035584014835052939138087944902875119436461898262648524112408480744482152652764202784337404173137289793122616945213655836469828692262624915421840037663699034017583138539211450940952215586383156291707660576283960633258455467431787050413997504779731462418604127901390483722928636299470459338120240415556180767681287061692433541715541002495954436734691652274075597001780929497724869679007175382854308060972960520439039215632207665127803820334054108249319058258575390844621092925046747869410995550692153864867497146545317547029955535157004860921395989722235165837479911963258302287259928867684434065963724332935203428973950296135060523487060727019478240530915318561372151439884608003633229551816049456615246452375030261515084849286020158937628772866304421063449967034222904895553911656855279928798849297437302134807634648714757125022997752483628281783960542678868577920617568197243318324880285138271419593411789396617227197816846755529299667605433650448580771274811250712082676011580849620380124867440632972360567059348583049803583224547632705491637720605260678750399679801638284888866216317453800446023783479999492572071454519819285815602216850517694282532400004644111785781115470534694352705831421701617697839416779373420991198759114535316902608714970096173171833378323979849650901451025204989686406065319521414656256618644124628010638382280577017153662376036902290455789789479708859630258620064528535566766921923858740582307577233938862170333795994663694543412726101432351054111030943762932955079965569828628299262885133289991714066587800535673155312918734871373218248934632336722707908367221286961844357322547690760468978297647775785833730666232795236241493795578925226028199984227562840465515791172426928200531498830360291358750213506495569442632490865364038436205738023006417934138081483520520051492831065813781074859755806553730542852282422499240753354010384892114422034545830085321172348397300326231671464774483529730562808724988633484757845309231342038403105922557375949059251622362519000969450353648223031822030070753406166974793172227793308758659987479960272330330828991872572220199807650987689872660459851965298647946639070790463596129014607563500684517755441168274197860794676057985134723250954425002172859873330219733380836076213933401237243535203982935221876134545376131453868056130437157283745121679411516828188029073340960524005563965636109242089389837773939554845885827103631927040071953527252266422613861247025697387127376507261753804609896200741180844521726606822798717058193915352768389747477861274298809016335551314097877683926920564679913196336886782998452564203301305366475194526911404474942420028948118324182551655527292232262966189515515341506821090455134694290784616091541065372036277518993241745480451010557063713632490549877244966276692437783890095114714795822149758243060194313116611743809549350926767455660745723732128057685433723287382058892633428987621084945412109806300809609690288664795050621704266359780062903104873051921459139406517187440710298970936224991753817273166484142703581999689358958109195898875059750245248726349070001852835629501496556582117020275915732071673088574310345544284979919670771168157798697326836737134560274115531638849738370037196781876195781043535939579498645224798784440508719935348453411051500847063769778027837786689920121040638894473029109463086143929295527749824931105201082903323069134915240337367993765758463306199904565049809666833121195064453384930988508133318770216884936809850562725666379406718402414238615302215351805715555997923026100555128214719812234738944902278570490549287927561333756234148249853838530620880274039934973273259023663987674704621125894416173431302710632330870661853176675355274811151835615523273625924401307432157943578918582475034558374839308887720626789328473795960255226543915128122589538264404131067758053877342909879892892969896031081782026571502959217305135604412704421874999511729104245160901982527300903335385794606592397918867703569054181533158340908093358908741037955439602168353790266197781108657278882991174277025951058700435590751940930159025940403293058204735607145422531594438631026489832011484301287859055576405836894795938223266228997300142859435993921156296768547580175478840708925945593002145374318671705552261744181824299885202605557170858436060215796201622620475313239260764717364517288034553158368085352898749077409713841185579523012707916944236524994392579395994104437631401906977958028009337031528784032729794633395431420407499313829009273217156206113459747940718815304545179762565857331320171355980728777404580295866621567985402034040634715864834379549288276205476194647241322913943888403665538193001914561805323624971549351562713988732488531540360701774284690801678526383199099725706065647177159369470215358540843026981785865264843547924243788806044259147580003694196544005983313830250468087741248270673367533757498317227153461349994160058602229781840852627696409281495502349836864835357315957038920624834019527734049971675749291609772561181810697163894900770169132914815320404311604661543314391550191723772725474612175654221758159402820730150524100422271225169941002174849816105926217070304170557942553545241472500779582732158198055261992557938139098970181394149339130979923505825237005202751229272493896264471398802345231530177322786837888120478423429937866493465675608034664622977842373568759946752162386377873775767929358146557425692287170787599381567915671554772450389831267061358496493147451591037480683138622330468153441425872441104701846299297558185944306104840811977501471981601075932194875603369533736205907590464164638941381161446257668001354786320881431913414138416100366114988597520701073412068866488639755778041750260435897331922619411915316197220663117873549107437834310453687437451657789341288140308913733716697543809332577557465390515444148233388241649160489815252724812081293177854301475778205217216262198335050212735472444039427802372182785229916418699086701721645636407733766069948276614883468640264655017213038122620395521332694349852074715864595338034566980828052984774391337462542648008189762110655648189769762561749200136892154213725398501137882102348300499921001576452639359234422503845152879938316580716678578431547947724865911864436271028015859007824067314717989604122763071066946052545656242961730434525842291982432953466435661427668647595740746316939027284052594398671527343189953909946715884773414388011288471593867954439883334708520597489049580213144428965916014188160703569388021261568890206421835608070314817258381570096454137913481977127047885243385153894581347053889874645990519939855769689575232594447641494992044612473763464616856152042917897481423539962712084780288275849338237249448851225227996083680734459862214963861966222778223928416081513702905565438492127813709253560544542194573721848920139001144096851948882814612422844090580878886974565639369773351392714673058110294574517066210158171921426200144512344752454441509009417643462853533478693986048390482115938463371393839998303103524893077372256822094737579192082770373073452067739874375591959347890626732765693520450629863735149732289549076979931598239008855215153432321155240088356788297447056056594825984245995572984158647760066868953132207312146464798959832199546763118593714934923472428931731558748324918056650934880474017763956972734003455461985883875801352252129192289149792428388981948071991635179661112949425332342618585813207186825986932128257969152235682305286890691069994378296626333475503914492850922064532635013189490208540797525593842520323451822834027413213543018589156978461805157898579242716037027442862768149371706838128581179951867277218192706621250040230956843657617016981548619967776395666935978334908496760460474588470355583779324414251622378705969433396921766456005337269786734819598712555355733515098741464751994914690136972587337687939971539389426189138004377932799356692164061422407305472062577939347434466229334112265446752976693959380414893339537575398774870635609325665757719308065462217829969091516348387483577605929496016541447730727973944562956806476179874022754841008730590372258989948934431822058912229904803215624432159489532917776012943786927254542807170650406352624688085818372829137800577702019596233929896976777576717933912096674027591620267164875840253588932717867280040754297992794423341679055918447501926331591268956002990895572767478162412667735193196433022741434905749794448363948397139994435182233547386398257322878478159663380256569081911606161161858926492251116115467729496051397386841932603690914435843338381049753360127612314214334841004978339237656774266190078072756895157207291619718160896469527602461692193803725883855865779512018943037423287239390789720216778408520523695709004841899011604336475425139972690463279428699691327410938238479512708421749733313766339045849687503537431538557301765249045015959950180612429474868919219289140674433925010656287263783620390603468096615172094470851523796491619403373339685251559010502734945736781474546883343268182499924151119939936536739914078883318094180289414432610160154733554426111599240043128616517421536348310968866025191112247933901684678151901552802994340731080565016541865656225955424762176346335444782408643747513290612018550764547866978991537588635138133115691651518219705806262071613425430028694075626720168724900561115135815640189290234874490347532416091171546594925834332330430519018409013051334384270121487062610704223957660566585578555386110509783274581341246772987942204321700417357203699314574038681811939430630671819499452510180680806866422650808467732022010791475152676994749893648537451526430407058519785175406723309043696815645858723669589303998952881326240206114270677754069118563695540692638790546540457800311090199719962081758506470674318094650530085347103552599350007183918567153613315400345890850921072277424768215112726367096729131648620039832822878481965702190384829985192043075062654511163858923853350408901541483990702509916830883546128090770051653258263674320149480626479554298632423873729759240299688612537577989872265465901130614193647655538745209522003459021064318130479579571356234748280384300394542446089575986944571918849633162298885041734086119493609804469035345246160873005092867117697002738248337759910729153769095136708432372881971640776723793913782683332878763202116120770624350775195083070877590266034005182669949884370805517497155895247025995991636601547866209328052390528340297800180695434478781429717855072756017230453996532296675374072995501309783578800536241739007313952063855073751287439043078451722263225793504729436597765725690924460739820178294255334226228757629229442593539592207035239849089635055568783628898498987199774941965281840795778949101850208483923059990418295957359179113145448333814716021455925624807471025065984643693472544087523111787555745692884214625502363960360464785382962717281681148575118357026003238940869897256785894538720852364835797557503593217878465207924076202586034344679535176409894113663678765264671477011884379044786075479288839781927398467423190474162621288089531432220602999328735363154741689366374264879558201411625596747726389510392902162239029993877302146030753748091136240829088921121964915535770790104800742296856624543294347611556422393309284230441656520631146568783214088720132040279356252518564519105226563464797204794133338498699455011649048426935071628101723633792647033607220969667606262459544332470818642597197129632382251158541853900077801992726287381221115379176046438666083084936417494676076854821123578245147047068109097005192125733145057525415244588064504976222818946606382871912921266230310408579766692142573857836939118197044055443373746329935213327786961757357250428199298337285850725010678040369526061878358613349799509662022194330688264278389180771783218499544497657306260751875404216415104623215839851892355236605857848070994130911302507303536841076693069843275673730372893793271266606285463585128882971507930525589301702171764024891391014882361186816247531981386115531461593979363914046830656808988640159819625453299259792376711687614051654741211435839512893491844883595253570094798073270580453192863445516368070260467864286292451223227793613040759040862222822579226246395003591042621001377620638490517845369065868719256579203170610283273340566778785763356633142008511511795859930468634137505487753415811857028885100255622475915603594346691193276085624639637944092738249250275353258890833665435457214076810002993687355823196000169148695348219981275924801211639891703223213904512292791457196464474871054374818779556906148299292285410178058553657283154999165515527092190339927863203329218873036799799027401456172691294575872859167116843568095200075006601653171023829265509650318270643478982369437950714034906003232195842413702942433507648646546857902968369699203634991526110602158760117478676092470359411814993848078502118572773149233807570407214929558934333021470892006837784479272361049052914475711389053072562641536888764528588775392009238597838861077728203256838545048157088561793715301869672750685801606838651655021517945656190510281467124831079970662352375058868858453166847267883863128538765907971015193690085521449027998339975722571882455277098930540833499392847981271350245493825702553926409449877176795068360199506853130519294686447333816120020572076678865593748786840357247219865598503404721866774985267015852633047813567513284197188076909862272824119547831027453630542060415653156099716921217242307991211758791176027039709649390751432038640401238927973738912883212656968186970233092744172490175049656333485649391168977029301238462624847835754449820588940985764841496994180760651029104128651064119523529122026932179702754738444806165525083867645106020002172173931581678973415896277128919868686239126604277188423591395100046530138225197871108651421687312423210465766699231194509403024073938060553814681879382213947222378632678152654089698210620923398318306366243006314802514816492162305062068400812305196900374964123745163141347906553414232717210661792642152460897807712557388501645796212122675817507552324429350200059527881898346202467847579153554297801817100879896788782327462517909352423238209405091781612930517150916387683342658643657741549563924054359689055079507276552067690479219452815628269429816398157951480786334999206600731973613618630606130836126831199770208884814113716496934431841288591153581900850218307094660244231741139154399492166324613655630784689045638503915174231207572193862768024565622904798975841024516606131293733026316608769448673328070378286689017517223868184189351636444346395450201554267738360326118416439034604018786537286071103788409044296215104896020931571124485282632824891220612113648687103147621710901032055689765530843336651214825434679398031598539086033409585563045128382929231041012477260489943423857175243823619389032989961088296781584115176245169375853392771653669221150504871967855730711732911825498427482287489159964376365941981439876524905451799093101161824290185498561797707037637847750330725479884777753160742263474244081886419194984472411634144007742628137852476469121456670798342155498388940270969202977950396780648233728324817469373618924549991196533196855556302684178809528770361966177651243798264105359359349933524386833538148144467681505696122619203060853076891519304171247106755282424885057005010517723131405220102981967201784124142118365878221771449083662553513430662813536408378778022534655735307506308522603016121725552228729622320601830139799734424308287345844781205579249706152986428627208294397340912699621894094913415273929913426546569401461424207379174669720055207975792930263030934427087830165181228324530374059006852801022569276465594538210541329773063519701773262300937809866989182721556193888109949326592062844552622620491960613464025807014073092581986701293696337024142625137137068481599533850478153313865374899266735866002260329213995890257458104277224552620988918865548067006283147202498697967198214443915952260624668655676790180500822601062059573640326953923166652138040532642684485954029498779651738944130507409691363424126666073249971353598479483300060146286830217276074514140679488242401024726312261109860098802173614323487271476490986045330739519103950116638804427922665048583180409188189251915262095106540993993012700609795771891814970886158868153276184317831829818421327569118508618684622802853744631452771047091654702380206152039510109180181970269119835090002837121889535441870960103160397398162577513251435648571251258250607086195031458653729992544055999151914420666790005231991355160981637846846011764063640334098688099375729661773300627717648769681068348248148503162040892524017199441759443625109914677288539374594954527636224571398764586201397334802427610163773531636673363267826459014107534029093709488072923057915842461184560296984108771951678017953987015091284807642213486270499391754591636027611026037411468417837793703929531017880065077360597440360604193582994803159254350127401843411075516990959849069946598821083427332506712488209425246637156774139051174030641292135899814048938100240960643793607703327432758818271486611733090708924504813712306876836416009546250837416506960676169805972976781770421388422542640184693325872701860737268185663693354782031969215882548218393299894172901669603449158091100143047098287096513982198446927641334551415933070130949946761303228861978222485483508729115433864059025682390013064172685975740856779693210719166501271147698233357039327402853759212126568075967958148836817675482111554923312566782302079230621560416649873189312436435705911505535336940212643421459569800295424278566900021958278852629334303997814149840474613209120915803101459659023946672787984964254968090549102294223605544299077708698793154762388611188028743796405451541291277687838683443797530609096454529738517869127770269075912929595405171611561282796274754084803491528309249035500526541729011775263209305795044020000181399703472968515162756204799529326031924250842476789047982455492818045730317002731955883900224432491912635422850678863447468280115816154758897219032011319848766897909713562582222966991577559101700784945111376272502154848020147617324658386475659463672856034329961711265563137130448907119316959822705857272675190226506728133515747123930476553719862474383770453655433246617262132683485391475297846866484169525461743592848862410227333324563180468654381713603320766144184038599339152656190259168591905769110396750459004825670537430116995005524617309992491013148668126810526118036205627113493363045981505369670504109274265399911804235721853358265304826978254452435940427350659300332654068667638153032179498203791768015953541164200457985126546871598875066371506439412250242234517883362211540855058619091910920545074602652788643889466620902066626362900040292456710929498586702873106112489704923485819558872920993060192000617093175720703074040574261978299902665030835486225064587195597675277258263189641237381166435376951837844367412499251184125519676431194322795138534526388561935882324688957732137107460632426269433615729897768494342687027497147967214617311563768981768065186025607251443560651638662871284795069598495623365150358368948147890400583551138187357978187563517942430101973981255455642126352102986311393375192043444710341935151250333146829428503551202197973278354943866946848408831051045039219267840384702975584940452762191443100862584139725864112785281302826846673147622693140610559098397540388247624297274786667600011483826304694822939785094070884052811866104089344358418859063438036666786251498260366080774571463687810551631819370085348284006616775473715574014749834053019410908332929467954982131245513494171363230884024983688187015948963227529999109220246022271903393608506150248214248253794951395667796302447187891210879312469979771469506503803666155122401685618624653724637764187775489218369488840240282708244068230224981499690696158985887356300808500442130001119900661195258865931216981266726529780619501064155033861275130406880314963684786568307062547732300327972400711196601438382391016868758038466790037024980160487164359744110073323716191650896998480335130945713673223461394825809731085169467102178493317287869664762982138526854104999701944969072736980216865995152532151928083404590928610505191587260833817910561963030696324691249942108752066789049637336950150279924587902835940954801377251359462436890171917193965497579115452203511911072392806518608669980084054885640760530452571406284863509841129321272417898041474408864158931939283241993879117208540687609029653677968266125638306727417176345689203154875376804192714382369968922414992891696781894745198036617652005856157481607149293060533333736822396981097149591141522382264399738335275834356431293807781867623368578787203837400649119942918343996313954734009609170389700819123936266485541927759506160169275906058490120422254070601752654642003112678576460890704218922614719624772418424329905558512345077811269100928036030165582467229026337780076303999223168464931862463287841583175652049225957747413156267712886022140859278535537337471953589903987579336102194906780894369912982198261645474805859604149516770314339998938603674837174287208025203361547019104863497646601516456419628567439868007698248871474071607927338499332223312990915847119063499880848336250659589674015593370348012231184189644160913889900894404689376768259302262906781876218148138306602934963948739986350335096199485186554586471569700982937458720941188539171134524678641013931807451030101040184754215473012858541549641176454357130560881666522399311877237458128859836975702878167004978767318065659054589632674662995366243397475525830561983887897632563200984893721909601890524159545709726391789240612720114944055140957805642418378917071865778426157669447970851665469093000555364873185846045330472685870304585562376408250604869543693116552823585095668590687898130916421629069344909285550370036150972148779082694072877725926418527215878617586450237290162230590161241902385230475143649819721626803691320330834178295329996229156874642454855683337402802553865506483784778102914129611643078558869048374933838153506267238371321775299633479590739369591278653677856982808867994656587351999373737528069999022816655542725842674762614263438811874621762341975777768228960847148395216682681285759059152944795468473169730795484504968717620597831942872550452669992458128208093622128595583639151278278334359068452471770573240391294558284340016722747112573238738176540457296698930944090565835895806834392432984259143781908168481008797463057825266889659657493397746961129240517470371070981827797329576260598557997684467769526488879202019571386570461954809948572589955364055309529962858160544520583730431478062109935906480481837539327384892095569051004837626519674504906103855628053879116185349388927206340554991872652441436480508357985119639268503725402870877353266291544859661254107419904919964664914747177130433351417415447514415298794338599081043787486524449095301079599816105399942218659712477857442095877399247749028272896293963853544269076424994363264693004149726700679366449293847918427635826991468284754065285786769951528037519969530968655538754384304976396599574849478180190986268102893396822913909440101406976698371495452567357129392392431592869690681538739344776624754275902520016229532201651678073108083049589981782039442760667523766409989684039860057654086576653152907946698121665536416593692743226919492430297431388872864316099217829038394493219551315548736235553148521169293286127966165121884621578739660588814373579701111908178957995179091570016496903717050239405582636822107633099580757596448125910072773069784762817817638522138694396347488909713597812671684977660592702898751874789926768980779349640347834524426254934010885143474945719098180244637765625115885066720912695047145200539936146109155636421933274903805880041916194077520406342347747755655876376777029197789464438258410660355375996371481099465944087528968680197867714804502062491286709939937211582615823052564447262483715004407176439245055343540256445280102682165755542000006263995513073810365732767228142817371136422066399747643935493143370002748969784073432380169360125257702315818840703753312897676457353383464618644172068433003711614966866452492355803601440201602068534107059673391942462753786660027587130549691595457812250920232300700636155440648792239504038486588731234952095560189678518283811929836145879421491363119954490360064683119734355454662397314605666329825584100691144724512541213346664225483678302161158000303794610466097177523088042813784113327684360083581832634386846790475794203498575980605804981283820275241739284531096682711577024257600712916705711850964281262402457441385225198589678438272780298551473048620465214110025361869164848895877302540972331412972910105217702980387849842045896962762425685871340733717223798564099930637101915208722382992709896069203522778124908277776856792996351570229921812251691996226931181584724558242698291317826130515253012731270519576260803353432400475871108702510453838577851358660506296700824495903264358226486271174848234983374863787293492388657334731410528189747357543138692503480334280651145391291855115257358281066776526081630718092332761973239653273100142989077066521636394889555589652227982983189273447681917679763508676039072269355362817452665590201487110113361542056305390033814868862491796936588837381503859923990868319603285937735309804458420285747344799145985911789571229497220229233374339547374790267749278799929099781620156214967766914067898512926678232548570158884166642890160077582307863969450076601672613204145611499220133355354570657182079154785501554828860420530142047468584663840207921176097864380232015173553191056793192703657781245485545711926599508400192136140149755886737127329704883968397726577490823670604021378454960217922882283927477531882807692849845841858109182600100970489095022715964395108356209717442258711256600520788688746654193618616678322135856457429666442263995153972349337041919042165760652848846541817857434871827126207448372885490578453554741433573842252775783505485477281452858456992726738923661048358589537747836286473330918451982422205070353612962219037569089624888223078835672805534318998774023666358429056769830743479692021575213576897303172505209701417370080691476698393929713172117606168256650804022703508994758994533245274686529348918094811593486023205767187782761177150893650148902025521687651036799350552733164285174425700812742844074788892630674804909556014379698664160641328784165436459151271522666072700939170781213685154032394653521088823270293561025479026951111391031979065171179890981471870533686310258324342777962179842451078255148594816354358380618775135477615508625115245253160073077555517696846880052042349000333847882461221887806464729532370830344047884620057239242874580263074976305880828651780331989282367306940800416317916240897702395169391873476797319194466934517306427433695913909894442478638214666797191210573390766343004729461562497238195539059154772499170899832231842022322493609982156651305523343019703634430548150730486096145266661005154545291437936050096463668015450712706018129884967164772473413316403722127642606231022893607037837211982627169138051769437432652929064323246568893397948572373400861361625847384141912855440066150646480011131675488595326366278334837207388153269798282410669950230730516442140372315595134026191964287213179519203412021442671539174567801967373099142482977383520185941159176304954681378902922782689309981286588076734527763583070097812452476782735521392508233958909556678926627240305256616561858797347354595846148673619401413196991422485540922212456734987677354373449789455297862733273716970000640308369463378066003992498769597964462471042548512653945650699545131003004757756403951424001074871119687006246971544580753483883984774360343772423396010774814459453738670958291357884342486858406097494623187836641701141442166194267010727338777607560278159479896566557924642898634736220527194741469751628191075923072645243122370985637534197254729201796823601407584929158481879012911897699679600180287369721587999369890283341993465646962292624784216066678884127718778924360495206689150037635036679320503337794376424140576759046225727792826617292046384745960047791677813572514765096527528990936688110455801672451669430773738867050487201605972363259048189539791971043578672190112615056984615167029001100265994474581034986927907841957499637275218896908101169882527624892493529428826895346019120799893431785298308081162108269612299739399060268656829997431249525514744917579024386576704029860037577311765786431398845855968110807156469715898672572079309694507376997523524129608010489004115695319375467620029632010222265976647674412069065769311571408024530179840803290447800287707953035643082792419884903319956193201059110531564703810624715541317210799626348618248601507477780548597992006027611337713902423822090698590813464139051517437551606008703939918320389214332471443205258838505661808364645481075376998877580411674916443085711688833424207281251207375509088177456803038371681723906065695907313507600561175640361678843178972686920902746870054833483518028927128757043880350827931198535460219097891070564884091618834634118050340475603977366122304428461702627976568362161562528293441812393976844996314335455675596748312295951287603846684962086415186242361130810511584315758505416163183256671313050197022604837260293725082190203553793082598765023223634762731003325131754914250313961925652071468833631314088355553100024200620929895650454532800950248788376276365125331607351271227787322275603506678765312268590117663903581544164480283915980549828765559872440241424132132615832267678618626466077552692473853764450250554050348145573494877519584038589339041645970602856413113762104774859724925275992539829926010611998539235083911869447389528315561882412830966252330364268319863633454992288025434274245122481769623697590397622161084451219884596935089274377342106606642332776902985254565598147132227904111457385977764100069727493365304446166960055053609786428233454424942156689175679205810476770606615460452512938091980738714545589419838170623454529165307668519621942960392014711605375347934331364383390243370861157890596210166745420550687346003881544001291767575783345331196814004278305168973985300852378419871489292914046273040993004931595503147350669807306433453776539675986337030734395547192525195046051980463145581136256342269555920703332012451010971206821611549130512399919402867958082909661222128392201057375667877550010713836318425984497812621028696970001684388236044393805214716792820374688533229234039562456012884802569000356700064669281638041613385073211704564406437963157111699547483384491091876258057118814385685485901199598946354132840223776098856896700647385199560905036383557391796212297864512172302845590327392582254176781133407350899926127339169815929533778579807831287862175213260508356753776154929707058898751488580278345191625472561501254847836837528624572773688368797158385149138420532185276120010161270215415316228997114672710564328759398781337993387490929086589833063552323357392918827472398916297234596655118664173469893544898764013958062920769807115411603826088997005002648241732317083088914704862891906780267071909917248600262651017403066244449151742429681225222729750182322481837333853090126642234791258924759288538243084160468354158578292288515247842158326815873477382571174178056136901583349797574341575312194599137408253702978356724850968057628368431056536912526109832113456237287380575100670172467774277557198165115026140693151788070147313275306456913692764121569026282797371016971782584290402748188627107163798549208437720664246801646642420143585898899248714619269224751950684908842239322027160365671310513004307508422401667790543889314389186684665241133622745806342694723655595127382009887007499349462762193550553819736515488322389993923799086212964142254722468535809725100715291485246914346188487027913252863625259558268311425823644328523019650981346490555967383280493388377338945758234928317959537927890588096226798366298013153259401555078592811447312628764434182844875779517450804156173305436254124469267350355930126746218936253332647172328211098098349736438934992623817498544668042770614606408141481179753443866794767385450743222786590199806175129638883004195364118858248973178956207389926248288895899347926931214497404540653087962454945254777129082661820722763450992088980285511989315215888475005569834549574510847827785459126930358369160763028629994325199671543372054675030405521079401878112544815825563866020776343637731646667119288703968827199950488306761872365370095868171243967400445349349846363044909735512970784647143966926030254807876749635558032741980253996927164592838017236732651251468342606954633748742914162814196352206994538193330533485842600025158128565871172304450623335627657362208012078187450668858812461359614718159973268937662519594944286064039738514781884878579069835595364764568720501798427384687938192481418546950709843137412229334462242924693446909960608063561321767427587044045568315691391237830839525839370633771379442382748494333017774663656440286848202673778404837845290158313702022289986408150554300371469803873692479532532482458060293187682560012086982585148179656320342601603584582827379751988712920501564460287569669597660433544647109414303433985134174888264898482492958738556912148855949151522257943640131576743260329037134797465734645936162246614116079521279526709022604631657095892868529514799943786189279958978503451973680395950241328879845752506476214863921056793664792487629232096663878863344367628564929510282408391428108803557057727440156778312496792151761277280678061002016703971883960394574335719926794455613846210890799838894676182868116952807363857817983837540261080862270003814861126951993424361269115835280455216798261211794499860250413062063710771759986224649203071192222803088897172331642691591974820996854890392313491878245426618679645260492252284384696569125338449131653624040966639800792307364291323655906918752338073509925646366066354068134906796628597810745757811148664493907664269119285961890318287973714629490159996897320282349128535491584734851850599898486586217735728651917633633963415814413268987768464296241089886961940988153060562870218153615259978790120819346389953371725481465265341691673650433840637683182977089514795774739324469527654265560108132055444518500027636686650002574623484845696880211949205357340574680286198888519044108397310610456648286995486244238562864101739205555215347005433145549722639251408964900717668308212318512859269652115568322963849936722668334903006352081404079022961052822010316212320830831889377785770708816062184321534275153979971152991695584887959723519626375318864579119183160828318222544489065128853006261842296092549865414166795331410016679874178606316089739723561519717659908515258223832434675953816590653405801403752192407076512030084508657704550285389768358879198708824726111646028404569058414214467224106793791182162659756418540769802469162602734790253564102843117409733464062642417244320802173002462731465565602912622827107368315449203553641223515506287230054869325232154105028895611977437827511050953915099560195360365458746181473338570465378594591279110213853444883186329302741266603979316410239765891009681314990945417637674528593663660228879785718967091736020948668551699654855219166318496021903588707116646739197202599388754319837831368888889110777672188955416234943234306673271631368163908911360096051314274938636055852359392777542475619139698364596632658152052583227550788660481534634986353695198433587245194413171450748304155484543705684453231200920177199068699579013415057513451544102750582367068807223260460983337194654193271533053110917981687519787806616676625155268346806222495480429504226869168585478896270967062355690107621862065317084027009476683481534452273795357638555274904557345598440157251669780870373606612949306778761077024975483641834551688884370872237653647541973843483440813568820076504545252962740595654743951807160243554267492108501907760684673812484369916407139262223550115616894854391753548920700660178234268325990886611034422177519115889419903791354314178253129061098230366788277353785456308912903273111683597740389953592596541447365133064633218057158868725953945158864945763064332810383590285435181362816792319176272562436996220736085142348000882224391685866643140276824815507107916741118461779437298135983563733811196284736246615729153160687458192344189652074248030098833631709755995594671333830473335647960989297505442785260978264289596291872653451340231463496583643678754057719780171300366404582398603729775439697214451308362952672288905222955610071910494997801255090860393921984285827471427062243414127040895049385097061736297835642388965592895796493742392099955780395752427748467323987619795377929708315122032914728831925167934720440766851926151513541886515187978998565628961816987405269269689532443745438990236302630251240467488775263945888403821227610115964123663906616265248595204515470848424997322676488278744536172537283761550977974949952045363896462327577182061506548088839172802797981494808093624204629356410614947459634029290265826087850810577964239235092183844552113070939138922042708153009729976443864649239845031188821776003331716304703858179039867889321991878606335280893058641947788456367100969702745674158055811301361792563854255586497829524056278839957348401662433744616572670352771218447173454224647729083597785744018981847048583001499370345109476970252636065372664653333474926828898333132846497556583280462352804352362190123398360507559418794156702123726917108217257769052148458616276730822360235758441514936783544880101332448506567458218287067618556284104936511821788360187764860645432763161693109858063064649912477888436032352935105300212649045827132455644073257222738724448758053267408382360150337381253311233744232087871899531711591139759097868480556027984801732848540118447940720247251759427397767123497661945816727716222827846739915532419119179307500090782081668181541715389183813661796819618118436093805396371883644106060643669494644794272913617534932561688227269274017096754749559600944821930620514436059623627560357260620361822895949964781330060718343020924586018999316289301639535449615473770461186665628540950409081248525108854655475956496650113335660953668518105803178343748634698811880717379444816089903572221483273507842782617823814253825286174950459985302128003110873195024727158395987542161419788040657944692474344485160526960021198521867845392116823114668593862576004475829997968545414302991571723497266126398451963901265190902438517758588290658345448629514839814953616174013404804016816346108298703431176357156042593066187966590506295801035123763644869270849462457312130387284973778149786239459470804313480553208600060797540353709593887066499135008656182460412021487214066507477565679660634411213900624966320526648230300755086237751000445549156585190353035413271871347448793475756271599533271768153070227061038386344093667102348933861802575682334439646214152122646729071264537691508943553802839907554624318610348517877066534408569056308420546213852887300841271638611651094469712331095573043806338559368514637668081130769064866235826376665770941050728400922712644622242084345908776672619875437206247777479092573426031153236930179372953971636834603961038376733598956557591319448086966436473718520271986051511525866036016282898160261866680502033559891352445044455466060902670603575415317982872739102084724910262467419139909215192591169118225089557089360459713297327283659894113212596864309235337048918829101277493303323268954015492813407714311617583775056071963671762713380206248909412250014328490773952485977794942201540101537232817567174784694533094126655986180874237449127930835209766551044344077236509065531961480132988213753636682210359654460093057324878205268331360669491849518961007712933327067589377952892679348248984496736652630056400603378022645572816610735510702499849437644941516637265992429721410938002750770725789973204844045456971179249636377097839312927582394407047028303637813835527789535219052348522664690671201078145456826709854049394406669687501598383011921139104107597860386027822800543730875086961039145283516066180040744467835340629997751060643293529133832319862145593214764338435429639613873108599088489971855439807435501084712096086738030401513272807618184123492992570546716075747160620435333846225964656658841998659335354626497120776183891977302148186138331186422141478309444871132277717650780157233235186097469048719539325880340960678245974188612938672967853317286199922345667033682233476949900428532569730839554212660222447534423413391684206799141226253832852707216993531833547906301248030108732815049188349340119127404752830973179931763037223503669748747296492534624268411363568428324888467844515050184227260307710492867902950958086850609940076890300087443606830074475358807491830974845069997045662629817598004048197605223808285201115335519876089203511161475980696450569993781820784075239232898228638863902865178300218627883940515546445752305197125761168040231940630330902458878421067176991131302653177150131154161983145324240093234186783881421272640424914311000552994241920482621584417785471344626199174864620976938623778925331110175686834968939987596614068680131514095064996898503145970420072029226243523539567829034784253876415348237724222849333855081675791600512234532710391805721291184226972390906652861286514988442623739123284183432994438977145425049412802160404749869100801586924667092787572739356129465909043365135161358673144050920671587328458507537146080990263412514832691673072297268020430769092283452380607304811591333536137232134940786066807480294087684121674363282143970065779707925751446919613438320207207621495233121352444447795539543490305922824237869214893144513679660743654238049713399475237757890030398173753769938817494100862679041273063824865751847166906710389552413244407742949845842772806451482119397536982757396413088499961109741538450082888011097719437596283648927415928246500115931852291300567349639570921227828568007535721412754424188876627341040075211217480380189067426112225452855360936757859466065148759811499582492629882548502710091604278855835037587105847933286200482087322080203183303714414063827548849164320631482292988397374623817682209474212007944707868921012020842843597864522345877719294839880642851430948794186304198457117164963069139568638159557159981753866251386142202550682673833448398568398737794269415520862943312739096245406753761813552153141061805370956923655468226873381003156378211112619996834198512174847573237023164320331095588010029836302557124908008026662067137407072218891429028181989057502162388181602888015628607453229595754356245580576776449674659685030701502821614808946254511894483248858136248481917602569774079472138905430849052601326168343958070905027379085365797932100798227931811071165623818237624947028585482589174112766374391936757673146239279427574768885797423258467451803204783557768603868558846486863419061474945822391756343420154521666505216049040437159083450606060193992116946710876629179881187665770376551095180791240854482408034402218893327151911556937274342870737239693480726280818851782736508789474201384974676881959274265668915790685815521717713146139928457176240832950108562357860727466392256252627016944984665374868050176170573537700635217261343196542834690649500570092361459898476045140026343282880753242281514558529766362104898160235505309519718838438637994894557313315692227206875906270843254973940505711989199307765292751335351459714557291032011196892351868740584994762275802051233808474205379853278872093528776853828171017959385400481976694740091141059740232204930795472201384842990987958821163754833796991688102185780670875887300351964299835422663291121890455640556769766470286502409693449099829465048213739283143945605345294293079341112180764162867461531801837837568124088745000732776858522820556604212002953694532843164794180685020761218289306378131498579268223344821323546469331274047631895500340795181521353686556196063964948381120627930474861609855282897763286815922205309801522269058220461670970797674372940270597044804624009372762544577516476044843504208544501093963729600763301616993921458904702435087074278580740220810759517709251222080137277946574758657915289012525881353827770862903664046813296440037111032466529567225524820355459512212709374963844191517152827008872985971345278127086829819565771598422972586273213833084785375251738404005393206908943686142140591655141077336402216705745047803419231426607222312108873582016415387282510131872855696533941870633267102308844884321711239968361040090110735610414143576148400710690165377830674060907696696637149371340269760415573925459036933349826336938470594879027181111824805631259367592681680732569959028233255245752462845659590571225577503452124120427403458636520355064897745729886883718814504313892554041713805131645107180685407849441195152841877071683758601307636568620776235202741824770889561017691060369217405974674944142819052488853562648489780125928813979577403835158880636048528543902960558855768615007250101736932897318201746764940457051497296195756614167014705631857378425028745949113616766519862606303216538291520049954004004893458190885925745178370039449801876828708272049182742125797919579490790390285336710237925237070213188356901151480357887172430657442172473815912447355000065176764587096456868023306691252233424264679595837201643939651607221176799235314992402092694384571610345304672072853625351951961585006876851830918402824524767617329214533536221651696495605474563227774137990400219824095157641921558651172163907231286927105863360687738725080399513125516343736402748396463379768936329343381886557140033321164019844459581252240304905824253342654973889770129393651299826811658434972482978035310472204059773435905143427141272909547835956426298907418019569853596340522868257496560803634038748884339361643479932047617979770195710707745873304659699801694792755830289516048314060624098646809524756378183469781711103444592617079547914407503323258352694798591345709626679574097780087856291491770614129835643738768725378536827457637216851616798686937021699127469741115510632488215716286989762153865163949591955367171727710353333501972402944645656835844422185476255741833289204211413518410391755559693356722136532975088592764462551860791311112730064480117263959694067611760793695392006188311323119247148973233970506999018635818142479740167552499936210880122128762599128158027622210689133228673148547424100213197439762297843545157120336178957329206564360766395112290265720491597965314290383593537012465777526964146318353660382036175503012742196922935934763089603675321978447247698485303953158635104596697264345029462788657987383654422293620264901010521437331933241600278803888507945799390549222888422902609076294295380885977254156294149179952649890853200288690932128698364127754220948117524590592989505435912298439568978341985775958826380220853005176183776183613492453221439385741070981669366209532612574311740961038986427765839018057959863009687587838499218767688922552853644649783756467599151665834387843337558442742753510392437146253307842836707750325299522625918499765161340863325945586710001115985760473128937237981510179651259255363350352890266132568955740316753229135744823504731503548784712003853188009172052337032233687279912995077607987214806836495536253077586498948674561644659300897261552104859680121652017843289733210963136029662512398539529374472411886899537948149306110529350667208416850120737930967314847566306498837229761965677913365307835574669213805454760101214983006017473378968699156197173942970496458552616511568370776109935528160695807928802802943049075555874158309477661450558414840035440515114051159237933328318740638666751643875478372951928742838987820543277210185936984860535962834715367235752286872525715078547927123666508692217968633711282080974349535348436007511821926275928163798092669622103376559274230635558746830947298671211549283722287199721960354606363892278345326702359839837605238141040891850797790497084505812407590141477535253397934178868150382472144816394200934148892271274185682802287672017657751926516033598179125120551748660502355173155570244140780816119013172531263635688837583019816092146883207031760437495348862039372706623334814018164897821534551267890920559651548269033908090825533848224695546604009693407333209371486619849213007109101973970655807017679348094451186332910216361713398659965149610863809485097923752766716761571051571483605795695471011740136787784959679871499478951082811285664302927904951314050502958551469238171046209954740161204785265890635369970411051570799083967118389668883981803147354331353696986464941098542418897788486369992249032994674614223401020995378945895637476749711918065746726215071494929318561275453694115145404287552722342079926906694271210619610226229753014180698966339905190679130313817156576675107032717838545144204444190609983455570446924856105337583931256240106353200766574275869649891316074612984600220711321369582906465448507731360036668079203657906203329908381268443209483740399992242468015169897596799661110661640462593763164917104949587470401952102846025779141838724918583533202001468438129262423587148423696704611823720544561928761193696331540411287591043800889707516237870777312056641564010286993995219901379555741553315964624692608317826328800615176262328445943544906855429877240328785708882775488591200615536049339446879047101436453794155800991635370340230940170360294090551348665012967535664573044259863275966970633191147320112413006918003782781587876372853656332607013197733741046523422868038349932994473096110730357926404813024667159474644275206824725263331202113941975213677519257623946908852716819258197873745799050534391632979459816143255557634744964388011415748024284511136780960723437747505721159914339995171755786107820710074043307916686561283021988727175981741835891271354023700342180855285388791114443541079427111203050991250488373297541558987246701138460092962033217538317696505118470194872596091084912990900107236093618701967931342433890917865441042560334198016328045589179957667606467845644411213246160213751342434317905984499812263021418964547059369250110071194293733960747007257002028650834240466727202073799317053071966623278773333110074613656088429830976359540425694609559573342860336256485463107569023119027138678600064283779871233605100658717822359935590000422760588389098583605016039714310840515791702389727343430674594674813061804220042602438769303255384486389802105474840531087284612693997231000227264129245448923625822679186472758257366074435783062023821629443279852955582667350391579532908472658157250534320982322812051426123854967871093315952424869248073112985317865581233725736135425842788520687272386854480258675974722125359269127393963514932171301672714097592058205641524008904315476811418131567927109339487420423500426293263259056335491197020984221003892925658953610180888170195046292193798617589382679152930601061151768426733550796931936329187690093082589256620436751538372942840808638890495563652796589686413186506415156053498300775948720746141156805669186392901967015981536550875412389007838371600039385234481020924354189569142245911163441166578713991572472635043367299987226422688094482494023782702281350181734231124157358286513187170802287017874415471705948408246523057716275791515087964476662263308447490627463867652568917415451318449793529335109851754590084078080191687027423682419322170341205590535654717653181326530845675629897644371967045286250802351605967227478382505705219582781191832561847060167647228181391655556911179222013564731436618617563636817155759233974960752386265448214776109835649921091978464531249556926664539364345656676492234512004034741515405308876548064485512740085853863672747247985313775822354115400051453883419135401683480863182863751839319768974834932618677332383096329655790323850547429045373982954094366965141443095560079389699106369274174951225677519460205019370811704851079186029390656831181159495490250955992214558806334391319795091836096523347380168255258041258155218888887517704441288274175299666305417523279536131094546207972108771470541835895466635587957836847739852775777646796690368534405012572795632515272564635594269141749486669909289776677556972040847900486183069708691610284293550588249464772598579956663411201583896087740005968732641276535092673804022097041891054174580894825894829117129114303601068391384250213773570534989023148417669446733456566394553540061442292299262420383542402524882806595685915327065495492944767608061515602794099781865298496629566410112048103110776333250352012061175601448879438981013433262238457329114985931937167091509452636073601758509545923542483177730130180137299466678771625004066953366886619630191208329894326234836170740287766236226095283172427413648193237543920950368400988536351072639534748644191614699759666400338517424675237436044651043660464508618679656438064154692717665621507180858919077914373755237344438679596465695627793708583015006504480864093159135410972932951917416306498229727259928670121408717076358250821341740879960034927733569247967594790013911775942649133238662299635147876626068594630659823507708734639219074620517746097035059425689530524425278466295782559558629203048485828404245239941364211593891566399032345073095217965684647580855536150855154535316406328873599440830948338564707653125203390236957485351580406924216868239182013531058066243183981492466268718010760723141174960659890185064467592022234072035114029357502999992162642027985506549532845836676902207808365194063825366361455302732888047776374327762860057913231814160016521879785025582220527405846244823964792436980554968700965160118585176366501591683748984064103584614484684002429173891170835744543683752710679703217985991498832353234596088789059252203594599732738744759069083330065851638733687726760593833824809963106868931774386641327586340335172363431478432687370315578306258259646589585120651177248829352072337050501193644781925429447316859679213355223183849204618358101983765498931362851424945861790283663832766028333260770682332915152754930068516615442603370860073485303012362800907514031452067869371623544611410273492671558704722449922290574095929260320223925135928416657178735048762077313640371182099637610905770694267040261429828139777128069326779236988085859617756186591084076864211711625141038757604731966949182044428866483742049646620248798574298120379377807051833590069654366676509813533889252020733270117011215131011396109623175866297163640843670081814796627514915430567836496560646014308056616875569533661126411405245485756780738596003731698473486733811657366471962883690449223897595619428600838049358640364714122335962985433877063019761387028103871834277840302293584687671130000744230223055445027461402201833777670570351259032203135649556297466432808745698725434729461135121183089014518633313144713250237385222653946266194154654087853865970399790404186229610882323605646851383882175832849369769024177908211239565755739944064512552661145799398427615155946054054799818398259461510311633088649530707080563027086964113947978819824607599998822273726443235381535444107802847052817134909348898751412317738040297136429689111251400682414805699725743220637270858386314155190961345186772720916368883482372656646905513737670740002770380696284685898820705098327318758769215561106380960206924683156099864004344682449401479635857056521827641519064013022890401198632145839890071324376450988531722379277588831831389547503290228562375539709544522435516224825902587300386047071914656055051697701892157479806936588794034180954717615604310805970288244028953062233595281713671777765356690040789815287461001698460575445806222655558456626576222538408999787812981596507435803151390406276798004712365685335564332865313522483801529188960581544452650655976379074379864309585277240225439672258184989636367465757147331990892264621675945092130175277927634513775150704141451380903786699089695988566401505345176003668503769703612558148743135058546347702329123246725515293924533328426309980082349777151196199250630734150937580868095497312754204755796065521728978016996784118994926497100882889730527387423728240502162251771959709558857394788101412655019543213044805525981924419378746005363875503568408495094303765742534439973063766593742076130530840536846876208872474763986683639755060989748646609528430968577387097051652341787989598855292935197865787562966503574347704201905405192574299037523508829433008939827153877010365293989243174597183399231974590637297159033253117523523257494954242314369744149856663370171830431870810602273765529286851618571644780191767099639112176833246143900201745099969441408495050452742002217196398838421005137807606479928572080108944179755346155677140352589260975523922078331862041235359409215849666360276371116360177587969204179618869652478165098275935753682186145689387704557199476999326132745705834577125213618453463108136158967521152362291932010377601906359178183495439135864372879056370283069637959330130635940607763232753409573465141635780189684007228511045334047589859294407892914116235936528581969361502249918320377742992300639816076633001033415729948849036449543021983361246590394419238376637108640629331113620695400501343196177602157600121420037396138454806267688736925659777803954137976631189057046418551249878767506948874227370539824332434078524733896091691079616515179390508815012943189617818632902868548690199630309006711354367802053793526072282797860193753274235960272203100896850636036339237374867331047747570204146509456031331502594681249555314760039772956306200339528603967740337089306748291397076721520806624878006415466317416207949926498607999292021905816902265846803769358709807935785379814169191394318012089853364283366851703131866688391460584660770259234398384662574218822679339741945689737838465316348283276921280739566855406382655242422511279903310758202391043234222528625096049018276676066484699336840261077949882933538898580565792940087809824556082735038813716157869362120162193680737227896283365021654157239254036551178088230041114576857722656724711661413507462426687567043743803343347826991868743559582511454121442687584779680778306710010525837553997877272336642588996535852341496645687143826753664293131652420531280194499478957376241723885922131758912430058127865173879409701248197678607211952265328612466751521964564257997189663785068103283527588063388189334505926164098628730020040008681608158022252732392071992943443495635047963745389805900138170841829821888381952024412937180613681919658425343414898518847119627710872529105321632311068382077651773841746792538711642503865371075470734514642160335497619063506828552049945011977142723102082184940880118274701990939650708846428991714311774659818352738640626569567037920027065606190899766011042556955181710223575108911815674673128797268672219570769824289587944947439691145456949630969596299752033052842868691847359641247724167392505253771499974265702930293180196290214556074689206896263122098462863530052842671811739794130672220270584028283082324306135672566368623512309255337034926485123561344175899697845185564872986031607441688421595771374907779207567051273110212918401968144891410896856797330305148871729520707341311004117255088452290416152679250543241776156489635299806217924798116323337946825006560834532688304639933962971476088117337757603230902651070949377071857775864536016986372892458606009758817292788584841616999468657830841231535320496366519523351586558346099067591821933337040914371394709086507403374348826197437445241215426042606091470866942680860597320142736333265102548875030970563666039646442417400792553205183664638105027994619634028108500003194035383826626695455967397272011803459909236257791869227981373491476655460653129925288449398310229736533137175641127083941904007668577528849540168594858467664169715964025735502773536148369986045521198601066277221771875410854402713852076401478646580130000266286018564347412305387392083932199813802656089952641556046214981803839683564648080570474203023451851479497144416678684197303342725659784966263940219527686744565071952310865675478780598119867252704089159136918801816556731696936208245364892165110227656364080574439635350415979866936252573609214844643245172530698918813130262012056195754436795957888976088788574647452661127637639267963516040279207679410153965212213709539875347216749278462910529334070488550777357636176505692211965070953482249343604322279271629143372012906617013442490594510257748830606559468573170881398793382246014914539217108669930036085953051487320933374665725427786013949808088083352624870790860490928404006486751842318993685305912695549440807317915712738866558456109188364153385462892104319337564363381857747389975108378982817466239427523712893128989667498380399617783264524930140985247582409791233169449340926665984620151963345743061707661401949031083739799894890019051472525779663825898432378343427196209312033979269642642351759795924860986037700595282656262475613701777360795581862117875003567639749807722618440189048529210031290470164252529199127190855293994377532576675789362637915520580901068264857375800986262568631171338441495187754944663818128574370222814073553925765412590178860423018328078215921957743229113857256487950703866887208728507514307355401940719864291956612677960822738828204332656214512420650671084866121763291331097838663401436478390624569460138204488881328872386786905693002113034244023168474496006274316508554279580743687882432157987048898475648927033002179728372139514204822345923421267373497749499681613271559502089720934975556962147217541376917225631596561845640690733166335289731009944390556490394402699608403852938425958486596348886181232236184050293816415088708714207323543046958762704822030372546801070460360609987235814494915276987274267847807026343325712309042049374078137953644433720799730217467054512467847419006427249754568535399214109291433421974283781086522336139303993963119271544435913266199618914488314691489981475262556997287241519638375738077046081333471382106061953440080332867992414786976957152982146989125788097444074420444567386739793343020637849774637273242769259826220024331788382163484381984853983533157140174241390771875233196383340649511105182293926960461695068365351700080752472591274926655711658770048309951550962379735798539287510708701671047271450178535467436832062920307428675739528659825133518789396953874385974324801165726712571293211112138803921606310962631368386946236638693203374304143080743817678699135183399566632353213278782221461167377692890210511071281684633254779491980062671893515764928317055676629149043770556907683749700824849927850078362525066938895702089145125331284074059823705730966933769057303037327116949948294380696747248448809265484604677302824011481149160305056729246266918928750890395292787090658963763890023612678295900636032543469110923038140586453305636316496244233770182791579824492976613494548016337484138446314312379726664863474228704580850277115038916423153312073037719453201303504779479040968087302621559932387441730782939332503565738113006467007636516445598627854942300983245787429400328324310952898423725715475550320267471362139034324731510755802416690663641334140526335295503833052702985962615655959676951644012087619324322381816894012504982985453790411487391049170643786215559525218052486543371046938297053974434580375398345899108717761015247188072513007835485442059746848266355888105400166412822252562655144205486896607200952878089210124382027398637343651441773743789312795748770131216473964575149184343317500813564022284044550068796760936074880873503091028342824851706263895493563367389035483568779856078230210933925705397287396537790169149580882112875362784523784947827011835388755796731687629398901037991164435548375478638706046916615626200893121500708857616525480221677074191042190218452711399360339142990294386413921115384080801116985527378905760047267196667810763337332363738610081658369396340635817560336445071823334122944823419687551517703545883383994139734850918692096275994259428049301714245778212907753064820825428019977651713107485609930368881304437172312189657159929183350671349596039737173130074628764517763934065069692320839939735932662222849495684149729366575926625373529322140761426735202081861050996269294944501212840992287315174474749699040853454765791165144734098762584207290675555158619094617314471013724545523089287067454248875430389825419575216299979141372606862395660025576413115125096231375322329899914203178535541035432483953810207168752853124112038741695304204314796118562430068502971151840128748247683246951280587649997476609735265064689615400689142703721359511225295417339535978946150989664304199817610222106743265405549389394558706822941582726369860863535601363532341327518219235783386254774238268013001824542244188513913676787306659361199911724456665204892596949863008159794719202879865182119540561542473447235290580008624983715687753418543724435548783637825754099947352660008780929967781424227267749831258053574810612756444766872246769873598280543588254784001955930862315908531807847731075941105307593249763483411056239266500734821877068609815797604244350806626914032396220849300006486660274192110671885396142723743750872133233810839839331242362647299055376302343035446809379350290264191283852461898050542662927208338575988812177475421254431894486119629027005638290035835592808515295197028415872485055205051206433000330684134756619402989530923432545035986649324956426826628341395590794856210150695849703192917464124007230592391842585082702329403063492424978351308579573194005588111752369441460740824816322382401175864785999308944077211842236370558397321892082502913688008942122476891826565306544712357463419639588843754671013006893724233569994467771004300799070920741746474201258544204109634881696036304031989757319863417731501112419839686992997547091595206730690235796569381555708443608268801225224417061635851498570643125785312340387901950211287755756400788332935709479850587864204849287164799348039679088240960610132332115962571763997032992781677724564483449165499370828249590520493186452359299335306279265473840309736605019788655614097357675792362109584319945530550833189351945977125068388617714875267876558052034317213207972183027923165572869643192511967623694737788100620813043201568262142018159448108375343037440867611891576592589669440166898502334585132066922494772265177268243285353614084366026893641083541200889654817733601103521292721058683896907343240729645695499221739156455530201636591096008195248657952116062625196856660013070588185192083796508239038905333441546688846287969195121953655935031048602451963050983804229132216414971047771249658241736745220912561278436724922862683269477843728509452560507564591941829626543825670059400491133572581846664709624498146863571937890325238462598983265885548111052554991768679128795056243883412438445729446530034888799279239831616952256598012634191101957356758303178095692893692226995467652938245988165069895112131551245359599394076538364304165842208972952956131472426446296796762910745286624005816957857512550123689016228622573368443828763009501371917044531198279554647098125974485873240246384828363159565350447210370158606880371715474549955789435736074819459321470482530176776463763331516006151046869783982440753815844741372477698528442055968716112601256121177102447247780311252467199072876797879473549437187927407844065338446571904237236703581739861499035790079720787360333874737136377323127960836377469568724534156794550699962783085265473655875540005101197302126823763624427245587294515066361977808277141674349089089047386877874664341595956490404131823383243758011528605308265146033277413721656703983207245601855464480510654883523965010830117028808737372311891381575819157352536875706918993950302662857767419526846119556066066973493436516518964624111798859939175734443828165536420905441693816479119942394084091410867568045644374449828238239829604221550363528850879381020501289504607778647930810500502034960202371033998156430437081413399011117301071078169089851056341902803402398880707027152646133178396464263293113890054907562604824560446697150672266432727249369669580337964667061660740181241203653618667326492023233979058904449855421363507739958779418275658330308333050833494428640123921066838758780836384484124311125544904970520884566011548375692065076697695148487412102668243952067559831689631740882091288739725692587998659423580098511892062202178402894494721297218361379569004595221143215772426249267141862662007047785407988875876504813596019523023129478233301599093424692320563030737576465046852965201827107146583610598296615005903754678060709216659052791186364678491290782080537179445143180602217327178931662481520087892813415188229568189202240415694386365164277849930464829236253317915782682733316036934788699953885525382379710945988678181935416780122911695094116763525136088645019685773747753339394686639928054097574958218139867294441353591934573673147857318233732762733601593920399773963649373038386614172978690342201049176135211988545302018217942862088683750134326146139618020234210068588705167656900227274929684101072540330153430653192429612122596181761392806083336425860470677935721556498346500421212212019001394090827353921685191176933813843904486399366419171371083979029265276341399931702977267692680457394808963866649537316964408961450389620033478164006455930172981192059080379091988951245212552425211802310239949368125667471555245694071878980063249355013619257475039894750954868022899061093517326827581669676887622572767605410479566130959294687171955654173033688747973192612032263893736556483433229211979615454507715684322405094973717246822948911989036733368483633403288556576602132628019523478485477208941695803980895379684528075009316222410782021839543877578731151869001981474284657843995177964619034199744042974157956243432937524307007556686895689838743630504843929927734159803175739210437227859636592578572840260459121506099231024496876663153555028459844732044995800361425356308227054159627277337499203073115969612360005047900181242595167790900458946139074633086501832549960674547583111096895353598465245288907140410157807709155830578680311999680437546363109388715816067683820808789962273366710166496601596708035154128186218106668248184756149317350682878793754290837163301419438230787571397710613961181353803200190662040967544126137576829419898747559540847204375383507632700802267586372346734538876327475425545759810022508179901658340145599873575674989590936864629985695572323117739062183004235935811481466493323328425846050213526180193038412884445764987463583243686706869085502753858065731965525534483511828796881594509272877903574728541815021169730768812112606837173494082143420135721199333080586165201661468135860719967982649378320888250267051664180088721719851138770422067901774791592042490078153384669082913359729848678118800881118698106432849182122785450751334131993325526163189899546414973690452312197572034075328945224968734379405101558644149806662959746472149569721052186144712655042887921120510613538105732874057594876732332780358892655010034763010583511631008380014583173083768854265387804870830710832958237635096238689313578854372513691582688521060108636273630996141880057605429675608105472857782903322182602713782428442158318767168907861801311067136073302140858622063787872369198095613139225581257431865100881750955309340480597986721923106539208247688029673159783094576746523899600396297395809878440905245170385358336630851347532990936413137317450117702655151906152372528696266237078279027868499026092648572036539381042019481673251320565534494237259964804005677752518049144628568654413164552589632054217645143196762071757534071861748687802267643178523260640747020024378347793620352714388456107714801663876180010729509817214117514106187842018256081955094133598002330936487423451633819480917596918621767402285629890310116676942589976746552551050089095897176374818556856834975378659532249025419997689824894242539052076749223940472770544019162671851741601836435131890545550058333907784292681353366166593978802930129675434333795496396195634940051802266282571117560789859233105406732610312620361571540185752069882292598932748004901058750910706363356419636018627440075940196525430251490278818396153167536548256000873829233042690009322220238436401632994574654342665263864085611005366701348136599216275415816152497626615792263569266307934481191546905984014986726443490808986136053033767017868824678961588953304424530037187926972857355194964124143363366383639779997699134712206036595475513992947040453086487104946658894717080039069567291159308261206986026804030793949380493110581479216595724400909259529830833659311752133130421087659043594180573271341389979344836096194396017846089823985745040236538635899662987700208932284113475092371626099925303240503829787087587201984360719920354798003097156113752136078635525297624435662882708862130277140100687704611389723218351713048034044785535321574840024667504695475604896016021149680467871529688909485073882582579452405009619379442148698858922034812287006481216871261103925063566427056044253262696003031800223813231591709878198672455726851661016920421575872725760467588247305324168092463954826509912556188525616987063089712492873129146727333915882353123341976032076760151337497704856867408109249089601995689819410284511760890518066934900947422746245001674149665717124656192762631842517602241220949439672176675823711897251527715864797718922806093234979836660645780761733914362020437935276535797379620952561868695371571597256935205448639642789372421595515617468579138664989929261898877364809932296346849689197720050587963250340090585432297651711775049398973890447294613182091932279735662897570654969393216557637584455851705123541506217406853921242020095573681590017715268216564473041649723118337634823954469510236857659608927196794574886349508137503649500630212857482640861562887478212499003953522628175760266568207832038677344581343629077240305152998221966705192191342659693094429536090493592838675896566504615628415622527701269887862644402807793701379368039626592451678884253381332838454949712728574862503884137202622928756155529404393952305140665879661484146690244551071755009594235774078277620961712278907275526120941923561758071175006039646175996571658306991150906658597638142221123631134225861068802579390060395302809177355581895806627924308376113260543621955024533341478150044569811778894371413884280508521972304389412039913683395686825020536191728140202309806948484847850092147216543930607011031070032464528288889277293081894219545622885490033837101482038106159859128293622245178183345636894604151075861529523108923608785860724379391324562835258399998747550744535985591669655101777779206911315790160915737687509640969113940207988941239706777045466397848596675042061230296835808006276739827272739710842741070486123299002389920635335200580034250752313891537247494253392515765669347497639432790671016341280798162540091235492963034786015238062064660414200388658873185931826540794379967835201540278679581211100004208009144840409570561039305969970765889879799142665464260105199762859322792208407418650879656640314816624762139620511583244403099937567155997550329119860217384139700007929915190514331943985162908197822716777197009805481895837891260802530151162184558754326629792008574310760797426273857039503502147677676557891826604672383293888678963204416692756981143466698515972062133284357793960262623907451650645432155480633819386322195813303086969489639473120748958240973639486604865023119738090681096411770150358226858042061583069044069543635694383170811132700621695814635017980217760820542518700199827505865177150171908498037468034971179748515331231898961037353179287716505390991748304861487135335730145629891841980053367043785878877865977558099065354939969514027869511366148643217425538723066239813412413431067164282932524643840843957398149584617032525985595315750488710451872898724676674999631037982942313778076849265995753650659245131436648049947471913923119084818203953212084432750183831017171949992379332659594859087617156232016332267561701325217710794144917353945288074522413107779608572856513056400299638150151873464975472803729176437264492943259057328185828093780292600807729429223822362833830927345415894559426187319802980795096118979564335090680592439372974377761766481162435853724380690628050511195632113054494380476231869046510727032196322403023341557315432749638356818707546026255760965421352427786569668056652341650612652076789898746597184813649984480850404923898256575610035771611263460793021953406682185282271269733159306415185393185819635102078830866123808293582376277835265166346391526572897445749442680844317893748783216895597982357313896595741484014947681114406621770477566221107344518616292814900228846521161528611244020368562873398073129211589908478994586630109262515637566183698931609416421780309518960587442886831768578751270462763462994657897359315310747436544259387360326886487248008845789779039951382608541249513857636472355909530886306259224942115010009036175266107113802553922639762429753043846575608557146123049555920313052279711526999798541371780086954521145671263337667920976673016277314069060656135051192991060857374628218521107753470229287598225047196439585325749490494254459383281806024148684412009290585030095865287320531572119533534472182207757931195044471714835025037979970756128070013945344628655921246288657456707079587774023245467661073979907696877877127912867756261615743310741145440744560144377235168730311815010715915301830175989852593699206500819381156513004122570881515472851799901955408272216171717732092273243046655671605345523170978251808071577239309995422748189397350180578743676343584260550251253123089613549385674227658718334958806816733777565883123825369838111444008854377953020322992013461689655238262859653492152232069233499443255487433857243479174152769706539935930613408044835973920253771736545200635258758312491483850235110539764709787113878045455881888060417072469935799037792717091121104917166027006559609740119829530261147347040581977988963668649501989560872307094336829611638593346081500581251612564399644337268944689542690109457691899675543292505464128431555525180802666985169605160979785852695559585458923879940613279626121200493390254857292406564646721546781693398556813903116492597701213300150167857896188765274261754843656097328430847366532507817999839523269324035784406097305590854800754961314865265159848258337611870610194628715139538134807765610400880389254201408513988449919520560703960181321215286841763515759254447263993197432958455010992923183763228145312366642057152902150856377951660544288255489068497995641990726474957888671621815876275269920230634200183145733061935192190306491507221070285281766351118278639471789464896701394098200521519233082518038515311583351467531752544825352160939890135918202465224706156448237646556782043638695382951362112860358916956652888294964376619354866533758290824627400815340085823966033375378843529937199981456918182532665058234866796843500405350685165639167790838415617669464587845968125737050798514762908006239064597822094159385819982779830629365872632738313930119865437923911339372143649825311378165244036038822750619452823268033235245167837744269011737471756717914827103159348574726967736828905944707683531096794207505904796017265136798533732968476910538426632185418077313404152559490632539806176533557596319040145737921150352465390116541175275382753883160909494667178285847458826006577487535855197093774091591273619302963640725621480423568435808114458319278880095368840823018489899093871368428465482273340222382694146676914482960963063587370086625934684438965966755563173391266036008843107660694832328133691496040585407136989219226568344902869563873624780212123631388832471225091708724580987542063314469670421438748901595590976162990708079936685400877070711332651080366638993444162278069424818273222688977808063448122208043685240918358925439195765949113239326534808017939572733844286817832062693232964016198378543637868379739414731260562845855195141609311927144524027037851445126072254569828448218886049474866117155353416042737528307507673736846972617256938261938331069081577778893723958173419837478015825178358880221167631688987347349495525898227666817135857489830804749009581147195188702443045045851702430063553277198771387418065863556812481585913587173615914268164382214254277486492699149653396443150711065880631855056412968429456420917367080872979630977332316928228620267196388734599145303337223589393777986145891766748177970070259351419501661934745169639064849969520193746571569901192851663541209784382350200047149853491069134783384724876120766685918199501646603901937844863973898937849760410740457161043291292168766824753056354859934925826574175560433266961574009529053041603999658425824799247935206338434042174298124752570612069220614218861221041969887703551416055616432897974289261354409609656633308369796825660223888559329529694068144074028975321991059821969023039994436694463498664754412375182138643114930234857960178379829020446223101155917491396222438982302945723774589411737069607753123930872890060876271613715141535772327032916104940266562448977362297227274969058812702161152479781451896762653819369370367923716397360214206778181535893149008131440082496166113124978044409543811922421854324846707230819045535574811576610459498300200070911709239710470267637380580796167245359769915017849694593766684577350013190733870774709055324855561060513800486463163370615607665991920822492198685084867783185159291764864635822472908371859294783504552480448377657209141282449072540471651502585666263607714271636044715879769248080427139964843377687289944012268931837230079948593772059367853752470766118215786988229619309352788295154145561466561568326180245322613532977170521188082181959736377461988067343428246538497060538203094684599906449087713368320277479751692557172710167567327299960623989512488243641107064504587239191633304126396601463153998064245553513751619770559165389563216091539212994896883331104271135905203427162334012259935646606377848150993296864548939633884298917300364171642990019351274892700882531504776197155011208191222061083707492914147164298975813207978520138819397643964823575058975057803820116718383846355838827010509046926564917600524230186711050820881412501720975623557781054048247248584452705364025035271429077792889109030374502692000143559521614772942015797587736047160988578011116162263234686773648168911392935612209272501310115180029366326156757765875889624244416658157956052965768825443200207892591784339373261598649187597732002714165274675833653995870650798058725725523145772436012211434534472948347186336887568960504900977877819280178559420130168941444070548216209121052458519619399891795813438629120483406754195105816099219062576975302726451081914724692096015642372716511917879741114663813806302561165687062469963421321407974711643174317810822169342417574409741655953925426634685291758234503841849452240768624962330996540632536854267501458182774976658699499079342880799741863629120513803357138489816138680840884985822913756885153794250821180524342506114576113476565469892647995458393005891919375398138950653909577402325384296531832498568985369436085178471721004590682729433614361462877718038105228483803383338675085399286269366597495608613668141836337662695639138185636968875884760141647635161038903902649807717511973737554719006419122114910639109836724446116933837269370997852741580769798775310725698296875800998206256511018373707356069853846866527692680346679929106665555713625750708037427921997462474375809422579964026167502059417694605776621032857033589956684558136108109385176810184619801398519406164883456232448291009333074757098028007498860670348202287744047201623467297219888699855282752564237417957757510799480402808039704949125333787444615954424390128529527734561168392892545314154856372672119389043612285598524854679320716338150643411224006907689645346001193068558017009855377128049323620885696058815589384529293950835508611793172841221117776213886939925163493945960256181477783762117878277007042687597827899491736899980513544956212891690396034305875954748446036610760715235109524421227226823809917464748408742536477304693739369539920361102053303150512099915867230005856972849466080864335641400544021036765802580674336044400224336688592960615037573297463349399540574495216397044459842689411441141579586847163808533882782098588404151098875353478341242284649136301915535705256244457820358891594819386712782157744501604640360053516770711727553003625626322844276333370976580319862849250589679679949257603982953300032231107232182391093906326437456668538723450101233386449551622088939720529445951200539315863951611816664712001863599484498514640860470128132898069312333436697526338479468428588352621988935396111131450808213228045430918037913113733354379674386829789890731793635395853378748545653222271835191578504539809572155597593676147038714886055233226256841729061426565547929534071136840227546655893410894576389777590881599576832260613237863748567522961563461711050493597697211851838131015765854598472136480629304183873089331509535693622265720199936179476132478304820771762836102984517932918967406362459104581201200102856018940284313553563201410260661077947261056932683562027874449986941386967926560207017570898604106737697686889180679571103972743495706913238225840684752150397856806388847747788602096185763643834497598104097930450526963056143022265391143657538892250427024491367546558777345307627039504123699221228834273110176240349102082517570045924821955073775560900915204902726105615815692399642253026877367271794695245371507049796854955949144488559005462021103999898591219171067978885380218178117485523721147221020446735443233884696549316509324224012086511877049746192275349248890595324512927857188686298706087772997817076261918574581722559128771480790555861112073117728047108641360193934751393299750877041532988587336694457013158298628349266819104393601049181625661462093504820342712013279331071714427437655175020397669175160597342210311822352390944918120446608964609813337737737640101821908042183929558191648907015192779211936204204340786979969235686182646995251494364454939705680702778899425924507747385838039249327938232701456490667745311865814517705823861352876866950812644111390540547286760101904386293536835051003325254959872723625962281598983823349407938455816183639130969413999651915042144238507529462835232274790147080315091039128421582386335539078040095869315516445336544663199703305715704207577657179777902292212516072117187040298968655947124055358397190766710255563164610213320673561771882096123004916780936387858859354541978536809533302703126843024323639978865868310294628978215784272999033487326678217840398472909293992768432976050230201391575343091755593227207820980642994143905143765349632881613306323895695933226760224237190994303370997672323702879809803212758095474447004571241076880348051480072383074722562427279973580297904599548098937447796754170059383724128193470134263780403583852396966078694992251012878636821454494107289476827012686385605759410655760884180574690627922189284797068324342312247838135263045544440189145841685844390061445848620012551061519874150805023825692889416465845057170938776094517272162363312165403724709947178405725150545787393713447901150111410013752048925660359860246696830853143711346969760842973602289812842037524840488631332907154492822372968522901062493410597518131391822768327338339006309691042485660894753309053807976357499799318797370095249151395167226463772655694717468619756167075846101773415911737312702904171636072928319381504210822061265310434271235769305891020352615091496929512836719391714878372313080251466807206542505757434628795530567650051561892679951040847475628133965028772559267962272672542686562479136785188210454464438909336869384588362619379950002470886140023028059432520188516525236368996940333894504635581083174290780351284967966340524020962292713125170610655348476504280539132425640681795315140355984448574069172228948750221758499267824561641105008381179613059818765779231225220558523757547529898712563422127778838796406885495711208769667257433546689428306857225528869688866489718280788801497608268880679288579128998092397960004533792501337715359923203631591059943660093033131121311418763043356452371395315580344776908926329044175914943541392820343558983391862734372803759855120413277352247706030595064494987518335511395008070560742491258793288942610753641199486388967374900288815406648989147989359467840000171575108826769459716939061275061924297255315825869334184311945465729733005830781769970900832898927288122144138909136791201639222170660504597411293689156522993329035043304799288779044462051380807585867317502512850407416409563005342248745461619041148754322823973996979679349785348044255987619292701065017772826015663801442485148589401439822143816077849133658520704774603172233039273897443971864063546123166467039643009233805234180214764964761418921249156136371335173527379934926274756120300354828869013071205564207937608425143213699234067551795204020043991362803726649956930002289368961712633268023865597312088399739528415477084538343675045822855584035171797606937856954128486262433692234209426090248506659281106270394600070906569150536253921844609114870797580099459599073486149976559482071553820982933847101023726452557659003333919590059098342732985635872980130204101073658408275457619814921223854750010299941931918404734657486220688507856053583744434562175056772107595001695530473852074806019065398678018489408069616299066332601605756601456024361367544784373514709481512186640582813330183964111762294215475376006453988725112727625042845823346140499995551031550537005863076343800392566240279848471953392171985992945123107484031754585655888360191012892130630307237643715139141132526636993574381745506894852383167309813077680728307418963474736954181378496241775140244767671025154479113745149835926264953748188182453344600486883394256124880124904737590213229056590456055694463525390389209903669742921117554393584309644477448575853487983228909014127624084954302699476248835953157531257060627460544340103588588716843371739820554611312756276961554037173391796775305553868898086271625306434434825682840894753249021992061384274927256443963921378289479532402930435569910098551783750512978651744364636515860156582743319338228081470657648401391209558372979435226373618233201711340111263067021170072831825813085019252398539273605227982337753061866150016738612206535490739856287544466141620625934509495428473726732458642189481411967267739751200524822784573738460886972849799130409616421402512949358423291832384214406953839853411799574138488013263191266511825933152184521155302449210143985528076394001620947869462135132673025870505680688971694997679123784660441305068423409677376348561845591505157092280902175960469242755957261809566165740648509490226590750417628602318450706996730929338966513000495845580889276673243827369059955621152372385489719119799585431090637489835296379227044075769870285450669387442226434524009843970357912175446195151757595345007049180126476623355465665531683009945275953679959659543001941774364278559845481918800611360180363556752196317874865569318908746294339954693989579786910393329395339996411935002893676905679582441271802069171961044338149752843561043554995570713955042128031393525191578721687735345325780499523517061457769929657151610843920335932160038969300879822440728432316002315965572545535668947489673614844853503564770451438495186454769344467551137608344152255052769048247523815784196910910485977542403125431427503709086927073957630773762134545377465691009938794925941056539243665374905583016493692469811633201283160232564930503238192645638029104116419944412173597070166036670739745743431025533322193665369273302719748731248356022276623511754251651865686651884979158090846032888056209556820658877056198120898343481156153410488819576303089297573818413205994744097447248587543308645845019476796855436117910633413589012192180203716664848979305469543755844370101527916598599847284357905184127833044244641574002164563593401332328733324556891978211489356888106821408595375176221283361785633335131806093758454504690172199319513918025729131504675016827679816955050744090510368437244480400736040640400134738454556763892772658160243876256201526026079197040289659922825531315377646600475233542662119304707501388578904170443835830481277458363858072578215783822414737868551293907696606345126257338258873821863073126239062548069936901251820242384921819893842015990673377428745279823722556932362888769687990339941402687383791580066417872342647456559167928402974831944398933824588079745552357533024662476117247430609000693996468062412985859211975531303864781207619854229947436674273565251171594368406674322632135031063381921878283001230715235987600325920981089520248609424289274923869912010612260211586552121963912307445680011730254121778375984730942878284705306564100523376773121577460742679622166833444517859027774718014094975505643834685783354400406410332997711198992983637524279372086758321719905195344805651768930577190936017850937109927667922464840488647874282952949609592543935142920485894537306914627617428897842717870363812073402422950043085012102473531625184010927270441651977741179256920805216455986226373651920510486060725491397914045499799191081976723891443610568022383975807208853462048055711706905154208435934497957753093205703299745935784760153319092179719222721322805073581120969388211635057991952288909372825093498902817913965190746709210739198665574957084133592384401167472451067800831477688243121909236239582739123878503796117001885177513311169596139992479942550427482323374046771818315089433950715731846984984812866844869142874071482460455289231150510409132790715881356299913412427749228829691869110578045945808840729532094486828330725255173280595896390266056026592663441956031503096809494457391734587096901132541915819589444620430587760068641420302103380437792053008723059937417023003639382547628021364105916158835808051101316650714327855304625554600822656862617897614194604992841791961098559774255103411558864810484465113850489959457435211974570385733990663011087429264800081269018064585887948588567987281814016829641233146062177493663676675758822887859753667480937101103057459889851236159487535104906493926459851490108286312332984475194069705837308881105360122211120431760566993255860646533886895895494306157556800204108480124895075981594719396734148835244252458011032418871694328978718171101994928070468269950663372179637251330421488716883919838652535268290448486985087653552339680787928857991448240463551498074029040322385809661604352578872185139015043554326788902229505841773483073736360041492216693130928349643463012688814601367875282394944892575356640237226072512591673161080712418832073878709164082010343594738834765150121120312075069883154618721228846480053132815998416121303851067480507350815658480561800946861242063465788489330479292197894572177872171636949632960602229736850710670405869615408330186571841424813779856059484826838948094134076310247205177574605859477760658751096790734262226459143780705579513289286915404260997570524141746267584282987793410995477452645523156844798029440025507948230418489511092268473816831216487202778641498417104414079165194649079997299605276402055157514005626104277766586829617689213262403794944304095367904596004195059003450190972208553515738193100268317594916940372552421495628736936430019058995351966397249660606285743851910039718700587145156404963853599617978500611869257331167469232921093059332904269355264503585993212762465949857732232600763221642866928248095782397391616751658646032130136529874844443797444771873797518717338982284515271014292167826743613384061569234593187495041764860897312475734853841485651356000002124404590331025816403707971461355293188168983300137956657246932591398285912168427929162385966875112419377510427091701403143334265904331480437909005664053509446517066037845199212269026771247481399437801968253663166677319962497917906992585903008813801655695372118197960746261008130892163198690502365856306989158557598687053586424029966705170230537409123492380621123961427085498871937044044114584792385375657272758683568012882318457756675768747055102774477035647295032546200148055532926746420668318152531043224772047189793511651760047969170778000732426859442258303609072871468975291335634092870002424854381269542015771061979773043174213420469770077670922717745622445795513477869879176463396233482798859251336005361774343006576847680680203884256111955108282628681495613886908231969107187730477804293546456589841556944876639584896336627858941918168844190384051765438822654134967670998979792393122079973485077097230102805432023961779563743513171699463672927729743370605454048205935846555363783409070284178702940522176899022290200220344008670312511680677426326689166170772399677139059937064287007440628416770232651145174380421869041955768943358275034218382405765136518576784464687310292288409046052201549934419135883858338047002588063086223648442502898515294942181949219864454388964118771035800275278546006528168618974911434006647717935453864023806400858033819557427054805667441194741903364295078597092492744903549229073291065309561464670460437500616244771069526885725914293313922080439367098722932771236767365398183863684846389735308493134434760553229756635324731039542628421117776031659707944733172840536364367347377486541648298881818795220615614963270803826435458318384589637608700507718420489618630776473656716933539107911793089425893374004511684382283270359967566578524993098022055993700723915710556775936459068566479919296356884536753484073772897222969733424316558104433905471953821365623895803950078164228917760454629455270279507172033683909712460040264997696772781411370681962734364905181620736594961868063069365100563110042008709165326602429313980423930558804566781044466195464671950526035844051370002997441091188406305023950231671686406085401838532380716622344242046394463203901307179800428137648971327237255771875215149983170462427453990945359564876032816135816791438642851999307313909095776109069399548609151898810619204521628528221110226247393981040057782930296909651982303804667275657154696742802929067461830755598424464732290084181753376033934251197895400852012572726866857663003053856165066763104344629829431407176872101834414380563637253628794022707957841062481576837191235631396443919561158307454492980414657211912453417872396440260357660662649446172419191798883514079311609788512681636546303283193634418873484349913983869019629977986932990616267994870410919352865287366802121682908917969218581091786135717267809077152572752569205836515262939289964302611672710564127926487852780119786642351266470660982166694761367341198265783884401399663073534019603476281999391723104000622219467740157074851749907440269494165474857316665592508036999688211321508132676379781258781655520650396045656996103699274233965602968413639492915716901699713367652312792443765636244123375328232940534379315684736629146716533088765532718520914428371036034040899451191543331564909238413693066699120640013851694336398626891864723047778255582975026417478917482688320540576417818782672464176977775491250580145095036862898009638127400759655982981983557872212556979615873233090379775567400868600679997163310687576022260131145581968140802103548142721097566247871156526841311566816578446037401906258255372214202361598685418096290543805963173718840538888334692822697716301513500515469423645391724271265639359591038963870055820913752064803078352944256660680637710951485417624410245202571571686279628188953827862406857119415124393915068238375007132991898007743302214215647485527985975634161998312532025786943267583965521567757527449772496458954957909599907476579488667003612341596080719789959875226096196791263645836300215753696988162068133033751603219699852393828787029244757271038388196195961786606514360909713923646246164502097544726622328475901030156688185071383527550817985090254382364847914026158659809918836624085379678353410886461868511159890355278854474557303216784964743596644127275307588615403489727393339434960603417660135363340546682099707697811891026926409238009386648240697064502183388941045572304438623675649659982171678166882366848136922094163015634732702109791068495648966414153296381356238998528453996536334123167693702455442659749904715267252564988120009913099962868572329089227995186155345202510419215849065284236097265076293248514649935183040070493474776459443396859072495674089067743443842405181386035257155462504243115192925115704536331033666838174824900020916394060024932489751794460033531719427121602138354896895008467940443809078176737747971130366772218050424251990298784042821842641115981899274051521012454318113920332864403499102700954893342287589551557849366266506989571601208866498430575387624216442932415102913031022820770581616533958813782600966738382504091140543469694481793957801209609762725477233714083873396055236360296708264823838503116245382726446089975927972040664636622909697952979709027651112158832345268277929592624791167391722717293304338678981047279105889877718636765117809662054246902199304579841112410541902520768248166349749356122009260830940434114115726840270514775588897131991466812076032850273417543625162969841953161485460822497202865864017926330623501977234644403080415861785464377907551791718834499855076618121649809688720635019773333788208027592816376933675894633997138810660105155890912238651282366579278552251531900360767181467725144277764319151167826707911250717157805275623586339290523322794009862950767549874183336187542127884100140484530863840381482306918718916310797346100293765107740178615801816666840736623077306347062169664809735182330140734734762033042221341663372238950808643658023638884732176836479332010570672068365894391288657254612121923823720417653555557387884589674147207423239240178106595709016106477110498006125658787783407360591338037050267265253410309530864068469027027083688114864120355507113822636690448878812606146263318928653695556234654620309766168289502786418304924455102011262737761237080738634631928076135484377469821152212194932391613991283662666867782973541809271732049879822406702239126037806942913898806604428374261200348618756736723488411694135303384229346543531089009855259299216665655332579140393220961280073914376478025807946053334237887633398046635717689491485669186707730114068314491942889096543828975395057577435013619756659768004853732309781427460741818536858375921421122609350918427652811646176102662235535953914517319723911813861157463797931258779367449320816974499204125697686355656382890959714201538648571278035482693584303514647566036319766906220425450520866193779337505280421787798176066869385361162812733102183125365611453039643379915769930687162495260538220679871899174317821966440998424236659255562699174536179291851691837694225001668678404590101703465180086330896518366361555701682065294506025315137728281071569111988043906699748853272545619765789100443745036796155969275227781846479632372986099896025055785004520541612584136691242271068410803974215058952132201647430704909660172664058473501175654796135303850050360421263520135022498609374690742732600208925460653887693429257515062709507030577233016293619291241807252607446002199153246600440021644105067859098348043498474979842971376301806790517286777159170363296885553819841681656566217212780179389799934791707908927976881287820161220623376251842646436581508728485951326120043414112646581157426020084795993330192467680872319002198300107555250759694595567220012247118652569819846049365779592299633725147235836884239899997010129046816082730756687081504222364570312066136128731563726103608026676737127953772694026679775479944573608985348343117942202227189273741604710019225024911518811290010125270903670369749478110838049455070655637518327154659400490875409955042820402616468217167741187723040197327029698505323518086473138356156350094306231501534431184589887684517876152544445499666668137390982786391153062605710210650723966712232001855850489776757602636866995727244861271061990601026276566702299361325805961136504136970598887999840712424505748005334401377798122538595831144749617262054022302560293109760614085003887354247319450416100596575785493472387641288571976740619396843682518621328024953536575841912593358560058969581506489367676322285437521387874794802098541438732850320191560722795286328594296894179729846678701027729306107223767868604105403337631831204805589527463509810653004234311785084874309269684860597544015109378706366345609190095602542580573799512404542924094655255441335445133913024317531126450889060425034181438441055113667572468341314363618588756441407375412169880761249670194855571778912217381374008950158206966261219918666821118863012978921968068881874268952390072631585813394915364176952834582198020594735926660543078352746894906746258236386158032340409904088514239812178501970537800277612245904010436982221709704558168907084539457527719268000026261674465560995428876873855162513079835672704764198473847883564753156512062938489076386333143599432549162322802798014240509192570597754609182294850381201894324272940709063869363435628377392200735859362896831487635450722644928893195481002105977610384418410162671183662217008689520793024475374646782750426472873289925939887101563544723694565361741511657519698665589907198864280592077895287083069619173091762071506744250799705990923249905050445133283643493118556015105811571204635163569597165369293015625645475487671300368247925626360898369177524591704357729487896552130388313969309780129855742933201390370555078233798842733532752210878273020742150512843620879113776625250492788900213557567033279778374549407985158104905869274673333706852153821043163847420233939122142258937343790582528520396346335006277829821864213471678397886399113292175933939419857489842853700387101760151314237190505440870222772998143550314228371133905285342623236226744199235662990184051980502639110643830385593071159120705267382048237024230787428035083865958150895760010997948761856843188192230455767801745249012429862511258420290744484044461325985565397624054152983951063782708221998585750486716586311999832204217286417010307170079433131861393732761609585603968516744191216497725294725801070712388110444542262823086483952953235562549274078711073334175696718086554507944419452149839080583832601954679853079337901915232684279744236429585706421578518247188132709736537752106697400273695593046833771718672059135423595605136656039671536448534917310206983007815554287213003023282857386928569810477237604935363789552106254785431996885066514699672357765982153373312731592987064756673813846029845678910065931766150946281032616656519859926952178196750637316377942906336480001768630227353235330341621137195597899557838022529878775624046532740994533237924485482427185361955413007022507435962266136395875164172652642671881708785348973192769001222170719638392517873729453184766794602993904038060960799187988160477272253929266810583983281815933187430152010809007576381126372263654311134061905093476231827444140123866657199828653947210118091355073166654165631864554161294265134857623843704484637171555915774466433927507277078400743569240105750031981206905703636956859278261768165686535993423113450647263277404325753879409323032564313702107390627530333248909260057455117123533536174396019164512663616698485465205672218202622084883720812638877104309384237302094832847108590224986926766975539577054250902360681750168080814153712642895640537286188979764455619778224299348518265707144017637249088028862979497168113923014886655449247951301215050191501233463746712268878737616883406368702806858236984238949562949253958247656979433513689748556506856152329191448330655130555637551887574535839108907151447326041696233905262312321116164941598769166059738495186453676144231647593803583090759669871842669010499831787915950776953757732543743314572554023760519853893537648073611267760134893482636586312721782675336571567070837763007070187615573064581849998164781786301147945888341295238971063275451408721499315151649355315235195888167488294869685403374946737705102267439654246286734897577027750527349835964818671394146688194918283984935216955183139056327636517851071607553221204459152075531385991583454367075553960268528391059008484473349751020698355871882798465992559839003116564607074706692391798009486239688611558127806182514378690006604220155292322020092845971096519497091633480932061765269916629205147364048165778530167722105135130366525874387572997787200884746769283741112930911990492196163093363160388996507651599101006128761905452190840996667388448314264436997892632355953622170967264201171309864829551231785283785710485627564825059224582278860041911474439138651846944130176944783049758904998169803983328168270004950334675891721948755277218943529306089024167948750624790293450980121134902542681451065881888332477759234485524809878986968969736824328980178881775636193676867074208448567594019154594143431026470590223366771220394941652403314332918257455726206688434535623664957285753953690629229273202447943526872772040812482677979129653893546255187432776984929156636787355533354304828127254199117243760355107342626742122412391793971441905252369155972943570404275566600363261190355165192921427047077834658469296273844988888880397312941725969240437684571750394937807058062259546074801788338869905132378711105872563281848678530826668554668072181093365514573642988947004164262089903232522346412593328331618274999982721754118997647567714351409491478893816684306801906025090621527172458423152900340572478098254657172386894088573944178151451465267227996109481550437569656281204285020153042077119079223481577566431360288479306679469560997887304928351585374524818791973157299195415583763241691651830508525161494752764140578838256937856846704157745727280848579125903913061779631189487669730661319659063852678640334189118679210440645075781894332300205942812449968827273790424863351376115578757391623962428219577036445587079617353340856082734264214114197304501560649045150865272589514115023022666516956462510107673039009491408489747970320202036094028366597418738519899366597357558297205979751665004122707772250351494488586954984292119737942847331687190638105762465197819894970821027896181465635535209784473347554853101328534543976831739058119304329577569301859236597998979996558009440097660653547291067010990046813736830639584806159323057965203657187646225807629387108860792325758742074637774623828491186544609716321748502475069335580020468437002519403205715552355912761678668060767111912771864565968258012002366942327131060448405482653898034273984556901995300110949442341291547027933739940095803816582560349818613477688106275224180956484536880314165493585573755128039876748297412166599252207825323107400298597240409531727222843966492674927965814066823726237370580294862997475602420482893717304984690132546249261973704485702746084729086018375384285100329941301516126394241412526474310510050615493019849175929859644507724786401359766836714299463017035181571252935617892433411868426692994937025071842992027339060386014286000226793859581976256277835548675439922909075965472029215250470145211852266561012217475890658982052678833967136192579783867208896746880194254322496653253433832536200059889278568188519412269018822059323453162079760934854597700721524505538460873915179063472368621456464305629912258158980108727572276429815649941205242569746024131122511755136589863225080674275941178813132054659975025171127576805824411934835104246513883401958947944358675112139274996452439160539875987164808855500124385408997682353351744208107422252198419313720946250888459188190808758587770345113294646304390065760294675598262437447980248217620706948750046856179383678882702861726520443917094574036628631088858032879421175423406308224638355693981090359373735303505708776801731967248526706318354687258034058971572036575333009575784759538070340814881494388594269429909981454852568017925729660082520129445351118768956497929349029065812982990917074662161116268588598188822342882865527926558174986006152444304858740829227952308731814006046495405445357355115686373777332194481257421202842993819990061767379910045569775909052317885886464720933832689553552207895048932590044729560576455644887886177877883422148805590307002665840846383937383061831144000626221807740993839057755974387828220184217306239281821303070393720575147580174208410582218686230341728644730220242064757169479370648904716263843108681306549724600852333921911075165523520037233946065414913678088536008842380158346231804830082036429524145379121981878988284724264273598031074468826884467469473731663301957625222573234292027806229883137374211382007802312262520662487116318042134864549825286092144963986088203110719194957089948676901715082733186867703356504425495124834964952963214332451004444523667456394307846333847972182050112852768779567704672593752408088496517367123604441852277857362772881238217178919688723152137468809197259349912034566867501041039559911773763209085494979850762820490185322951906647946343297606321221024079918715533013350186165514950711553617249522751421432974243551734849776162884128283721170259814777569275891931717666240066046958909079094929912328803926208144224679589406265161575861129705931108662875797622602835318501779127761852361526856299953873053401087976047969016920356414992768987951245343469004554962270255256660270349263243606797955647113807508765885903694357986381590856986506639668073086574810253175536309065191027820605755391040557332778695715390728264918055632036157140706095591659715605020685185980420634190405952846282688684079035109895162927599879498532789861140373318776443723749520662661010113558745192011198495278769927188116629567950587825118300717924628123940488031308836300872192078104440998844470484493536339524867286286402253046231234739508646570393560477701505913712692634844706006327558368050629560605836743196574731477730762051954591746515483218579552645649775621691830338229344569717584536514394610130268577216174169274246549825110757003735643532925509905074668618714275259484707660583907537010480751432419630898060188007021086233844789110821311559482481109323076573393784075052761866850589931840391698576935262080098201939221934141966944775520088087856219116232228389739530868166594366691256046662299947883763365905557097692350169667118570303521982388052004956175957872407051622308513231066205472798524936385921107976688555047889148080791070267232238162302907276366466016075824362249055485416931980743289565019284864521367748263213727731316352179952382635234252250876164777357397482058201508573662670128446613698093244037010855610812792099539025701951038820164739310981245864266606672698753406317283591620039810249724548444974068267297739415160008861365836506829227509508441309246305080022965285480890469970337632995683245968763024280195073053425629014362792311412472716489319332589124671032421420760526011840396408712908088563366941097386256877356409024175790558603500806918498459185922431834238286661984880006452573363819567746415401142946422597916421776217648339373222455672954536554936221000383354555380480508427565193894784198069343200898568733266591605178789505069603649827634442409890530038028702167390325905846602254325664045348402636219683681278012022141383057987037692938092097083372953101919696002281748332494455457722230342046972640281431079111944001188964895056934148704449616814607774011128807471926424271357798367067631619168167065443300309146572243798242804802050418110730958650535434038543616032771059666209871908688623844196949177371097481138064364528780774855591050045460062758184642778225418932903333955085797827369095677652441654030334393730949138008508314308427142605992604435283870309416527872430873406657583988932723412105297413652271707961173395725974203480797048656806901374923162936525827556680857847336252457870882926539328186336213907553908799779935631289973799844202083412913619840739759248737237453870575972510738323741544156212557068428344487107399772473591485389028737155335872824230154919273617127035032071487810032621692591248543238408187850730113109129464049293654645274565308386301367763035468467168874228778276443614084248825264975308683359384882257566249990621914435822508099805803460177711669315181370259221091634950328644551838851923842682823088587570232363485272763701010340188026927490775667017731148555149126297736865058223640540062888996788844244628959234448722794638299843534833306910433902336711819481337306460090346897800903466338489250027469515223108058979379999491351358235803395345631233555186113432836959593087500296238727252986961203148757482226731037291792251751329319723694484515332819924624066527483890074843204345503376427248826028217952593163045062846842922250920314112204792897677976959168877600935759380869204578621183071313786334817338015644850379222648049794569331648020811614381006892038793565890760045462618604321675049317630865798196232712183344753490443420306172729979356779282561518841586237005090279912178570010424753205928825064985967250926251810443164772712921601761863635800257888343187602305995772811097528971507854772486394003658751713363198261931676700635487094541832140575757152718765753790031098447846036077274414659624882640079309232145334872817956543459475104143088081583657904761544859366504164138393067625835188588937319160636522623406800622007768234984036460866093593319907061130511284328111221573345655351814747412629653442697982752105246374209784225303342351602417846811216459530278340926041893511963298814407389796920109651019279090874101412844389444381730544696495278153360574360178471344961872174638889371954740047274109774828393833489551627451233367156162274403286243763146774961849487702376864573124228891941071062653077709843076063469700956596534431320010803701714001827920503689329834541748621662569962985761199607884565350925116383433601331019441972615997540151084218000812853822931561155304082280519976421118974622727901394753965052899755045315431651149699331705654996011238835333425928326403565989821271417838448007700199485552453905276642916426869375762112801823570913114460811054482929523149512592029744604638142957281059457790327448419826775028902871796088320838091844468521041414146427691344181405884812436905075618210322610393650347366357521061477509640200243769145495635814892332825229925682889194614831542301978102821688142668265349329242075233081283817132752120358644377713005216093767780332692773347508024799960946635960249842131307706986763710479869203320429575729518412806370159190642780104438522756587201510941228601207536987027237626172748652524521071405476063932794046194966167831490043569720630827075749526004974543964702847135193027296385573815506591057469075202528427703639164759895479206085219913018241881794936245097583054936867010752225673831980787506029707218942759862690374350083733192804292045851215604673002267437284779422705546877908585877604371345263768929328221378588034621291191345345947676348280833349916854027593222213818730105056751103160686281549628190882569632077650972409775949658471650152262829516917911217319698010283089807244670127193119758304495801228643678151178036115092827472219625788264641492548462890203132364896329497051611356671802572996877158114415357559687346750329554635120053833332014220005043614018921086081901956643027881667062182696213256871122042333145899672101112128324966810869257863927501450175716349108482438529284580845491487449662046723682753990323238994915696079247810063765726767207785921746685677396697830014047433929332656526833516942674521374077219762068907179007517340692144526561097591732334690020096792482827039985948926125618902571731299186706694630024231659679751680867904186160608308056544513581011608886259356560890778397303496397852000905551856331245575663935745358827726033291386694050742107578502708941941972000644367839494750089131497204549734297965784136745268090901382431428599636067468948145412236862614151417748193175330448752230325412519183833045792505312356205626387721837172314444900760038335841031211261456566692730332611302150116744162958378247685022594882170201898016642771382354338881004508503206022421901070843538424018960876643554503904683243665077821488310241910204862279503355761151591878646335047809936285331408851322301187216348617330253957587834959388302668224373763941802689137362085465321486617139694202140381566489187976528640511562032663637793200633524178371906410553762259060991340827786877389780085645186355891563187859699293848903991957013305268536950487692921563624886070698374514192867311025146705584481452324217718722396408338827680409823659311130040071361387029959558376526147490820180932779890014381214005380635731713981541819620789971481318695486576422566713453860433938092415642084199143230150853685168445192880937609578835649093971845973360592218970550003254762980789182014448938242488730384436234331937561897079408890576002066271403754927895952455369062445022166095266886414367518734685085367970217713656933468314298369005342212212517957628054298493036955494015052317520211276270676079823160253138524171592323325535755954476437427078237301664273382638719737688299665374381875108600624861608007314630512047629885278364675204375249450037516710167014504112555827346904266129689812488809982063090650340426995273247193389621095506921613279209237632088809765114909483522740428099914062257570692421284964927298207626977742276567704909521340221308647908510662449449463487196986785017329621724308885288704632151209353467242889431085625691671822039988985714612796586934871050633816367681463168391513121008869281197173064190565600797254724826892189568698560052358339418826644474222275508542570360180976912506976412805714644361833138318748917326468810169059837894060663091964138722832083362705159839236689109626690590700013716114479678181941824594104908452076506389453186401801472692557227057561675150353211891507553146993476364794398301187893951296186471790163600722316517887103295922597968742714712673508322770246116581052978062066017116374723190143397345157431514261023820587224058110890580488705330556670283820150644485459259549424217993104744006700983007583156057174279433318448158427286861513353846618341373626401854531506721552679370607311814322927543178408375523570995635517701191359177660124019543963641327079805700266412495337769802118939878182811255362545755756644367018690856038052595580149748423671306657203783366246366939594164749947904772590978029961572295346374161348682623930394762982895482033265569532607896074295527379807307827929989944140477183096062504406874163180675186415558146765906291094209822477493911165097111616878598675925227901788151835094140232625465962317213634108726835828980618624055616978977396794699628764660714567996799489950189428861508442520973906579027417172439845707080723034428444992284786548248581432904760212612456555536604256350636715464054166855791452393228825845247977959712665625086603958910792843576487680919745927377591619047782994275716395199452846260457633925550954512649792580063224270066638047496016967520175777181453133517369743899281104333266367066307620251091459182228178627589738376945814446967156806194981158745403218442186049889679314299981084583249700168561871940863174680070936887938896157512620133024680221085517313240693210795134381835312520030133509052949145850792432932125986340907142633050369571602370341475598656986393060784843770228555627787689464353110993088693449821008808230972394561490678391545654588465774598877042077419777388350694788497406293923711749952240035039969945308709693033118899606833971300596872090725192189578654335721009915507235558261028805606654705711445915626980959750053037960468987477121786267176190678258990313033855726340984465853549645290542886436812139745452364535819703837627712644636785450233152465969452859004165037483494905729239644191675223856051110637096128529665787231615460114381329296629368803767677309602538841031035051082052063240759566579200916427981491019349490771929316321049947266676881046957987949214732920309020740147910816821277628725704680035631760997947767584189850842121117920635684925682761588892518580648217168416232755335885129515157832780341268905035583236883453846598772792620696078724435050742201333188781588861979604308016405838464067988905853874629781139312366878275307825330694657123637548551935692940883464582891457794722489868644715815016917976623637753240345831936194599014088362208409725846510844065268444461201059943194591594551369489486159913644826623993362532429639822057730474733515614850070645915698715562180156129832817835910292402748496996282283229525799271759649815199483387745914938039001148059664265099884267876726159898073547685020640904461008145876920203459870799070080088006741340878380972472129908945225112873209157949273248503038635039324920731621070708517189765793299521218139377446103717345594721186922081148559988474861107606579172134682948152031990985293039949169614667538582736913655324046512088779518041875279261943548176601318049962588830046620625658478878713949281828662945683203158002322902990810402623783545719088271994555050358230566570382482349523314463674064703054366578777129657156607907709114582477051498762194973502605739449978767277597713274680211361454554511947950377290860166855141426171040107744658572463847229092777186815279659140302754731438039076598342880181783825450463002749483616437175057480983265614664211496006469369579762958663176128325184396374170227015465983248701902437209908944617604931457683989683823989735714105239094904385517036951101593849087980274728154862661904503812196884501989025433930909596960212290344105820132854644121367695199579221297367033032561351336656125316910209196031739275196385061388739177459465904421243842900524163898965968151586230347766437331518486527040181284945266634767615279493141642876750744177565496267837984135764205365166247296734298653746182519776782378256156809147999233745619156525144888770541178917769399854542233472447124988718780132113155225837423981620268402507102064783254484012751098910203887398014742176405037480487378621022113307484966594439790189771492705885843207659923676123931012663825467529251873813067205438602326466180824591310438168350019920133810620433796007454809762065357456469040956868220152051082829880404070016367228022135059289780770186482863755844045022094287954346191917746136282517992667389370083579335031301543742750238523717553689203906762188492847996096006212175536312756731686288145966015909458235600416950911283191737112318053933532345727603835792774662313737326945270816811279308638403137605085296582659411328849685510636480487635548347490363535459721304854564619931533311671859486133301091329597214229643623773218061988095600906341866147208109819496436101322020277484448626537192778205625592651606329320996012194324816204935074629715563865856497295649737227243572125230185463961613437146588711938186376572494350630374744830435790592966609153786799526321968501757532066920332066069735921875226909158462548790545616008926357172593654482213341628631506931655293985196831579661314515098678415821189248865357792487753618730687160716534443006690971452643452020377395327533166124447304264735014703447296397407599678049521363721360194785441997679143787652834453190228033969098775141457857966076293361274956244944964522345261778116856712457405011359565967399870576037798709494955709850708061735257741012977611154143334268837384056834313276490435181082823345942882394712404516923779832318986484673995208671862893038425703041835660093506259792767369276164103859460855763479287575240007221900880555385427054499569897415254645869757221425290927828572767634067364257178382922798070051450063824627451221360378095978970310892977337010419998104039113248511864145336962521185576097930464156169409100157864210901953877955289036418629439765133359831511649942426464170640644424415470385238044777699491143136971009777964099438840476601192798816230797172837114033975566884323401164569559196089079056988595419072271534677176307146804837272280543094161475258537698466922851019974145810526602587026732806686152076710482224759030099246086614473658033607872970463328170632469653983083370279650709215869605436694241124148832629304410306584892125425356172322823381578506994484580303669182080258495117272120183389052109769876019799325424043860672370048272267235602889730421785032851474584456565454286278540323851792191305213158301600390196360850002618429057126296074046653531071433186040329811004533089461279957355714339343494015964434009896405277925004082318806860413130252740778352943831210120671378705449888244707794049598836853671363371419260032167198707363326346531407446258348490676516244814961019945232583952637244751892455718986645040430814681355955349709476370243112448001067361419563585017315986371425100977723555169052557257249908490031336207664255303456755183299217695232039884074516911571159148137693880200705342808342682186532477395706476870801339166095256663207585355445254919064910525403192215215357144535238337859278096113298315433756937577218291415587053678167539152293942590637704849657727025171180773557124324150984683217908922648704690557872137905067082324665498681212473913737535043547559413126986227177020710722815988602816207778947985363504836934560240050928125115168654803409235928464213322119080412019590152569708398510816876573120182767044514301136445080052521830092309173509506991063295305716501321983544221653430090567033018016257872128228161262034174389866967946569428105631911296097533273569996790098137538944315268194875312691018772493386508865726986192650273255778620689013019682942680819937995399858079461467849418161275337129777269962601691668777478773309137663012094372390271121960658501397465691132032284689679736752029171714555293790017097358922196289332770912336248432494511613888866123126988818833741715630567710875449558087850018503364059596619098198909419035027424983840980914085740731881025001356949421513056828059147344015071065300271662568076999846029988525918559977793829805718740323608830315933807071754945324630867837129026477730625222725202381413358215269102288595966208742976536055231309231228875368382013050937818994653393710555916419826077689107202557282526715423976740349739238650104974570211842213521435295752783853511674551512488495328212726389042507215474138756689753343261380467463269571854591176861368735138477571914273232771893211006407477218561144616625790743200533573844681816276478024030843807381372308252811981663772784079142067748876824664999383617481729485313518552537012132560211354961049737198084489803475933232497980312836353000236431002045175103456774629736059762740204731218265785861236964135143759534166584377576036350620169334229327128262906139528629490640373715303626155143125815754708027022212467175908593937495527112150432560673609099779212033531221051539289139314035171778204528064851035694650769916322387871465460409745341651433184031061780183242255473025564752970923064742558907062250581114467768039977294080380315883183873239535093711307435788436497578425526104459998585070842008481894408949597798792190416016563820789978148688500841318287862365626701093314591206199601000194657339297833209244419350424377367400316573546534870238305746698471363862858345895646631344862105970584633448507557542609114109057772350239655918407092440148871914177754708013980993719006890904132757158946417156232936645788223300004574279025020708882985729528901807371022295117939409380522203803432659803663525378639478764952521132749453064024982868720511362101409955994050601036182700479756411682466749687395038008330922699692594123072939025681442431773657828289634143724958887360452855440522128900023941705258174089412549569226751125625348793810519920784668702582743852052610113105817900572229435123627316157939902239788729632886770909644004772091101834504913318809584624262451525819245813891825078235367287095099651411921385966215451078202349026925385980093951318828043646758781575721648954550596817567822924961210274270485410556651663857960121507472812085904773007702568512004760645017913100842367663957949832304210215583805557379472838785985133104815447076494363286567698832020491578079820806826018918104099118213294182244739549673240491773378199781557729513055747859085421430924991871160156436652981734346702190638104059230006327292375484440507504671218397537702434622041167772778994651257077766270325157658515833060843444059216590998976470404104196672816731867799257017526522997810974594671027723334463342089237040375091668629693339650883754044225118621744207194966006832195244260121244716523028697917047778589740255319441048398812534106075705191435150399938585272965501293626799678598480625799165941750743705153262626528473008768551066160171975658125684464265189481621227053363529916917327006519672204277272236376448761377733625587671845348652740585362238482411229203080629257059645857906793408422263936035072309942990056439319815542625538162956004842016269809667282274035036423187855004342375563499538272132317330100414911643099141186376514524877648208323363989908022296707416479868222608522997414294558160972610440266968202539987672044508280483384625776926675400491465714231484195553923920266090965395883718646382421003870216347978266838354770586677732868699970057117540653748671829930375608198050789749183978442003814348264962988596186960813253427061449131220582473984278104008370788519034469763152199877030465989682373930134562862501348657439171568934041138476174095598296759873705654291560373441719096195176847653744203004290217002034269221972926484353553032401006970939607001548867815335330668254181902127171690452624240455409190830222609026826686742705604767030134974384143489518571058505220555341909734937345561887524098488769094107400182478204611029664011047001116790140818467629045950938956023171462585985336138408700743631025899489423810236575787348572145410544679821087047996425094795911921042654732582850053398318221763299640508890681922335920290173887384742961864761216818087855073674819446440658089611049092128076214582612744572291927484440086871193534369874309151933772199717702435998393003815994021795671891913587070581217842560854716699439812460397132234005820214060345599764797839101549738423707156282756090620049855911492033005114232276348609344195951268762715284782259376396195308914579827982064830384048063019243551619747132658962836246823668533600789713272744518019207080295084860818871213244334077780507090925580099950623562274081261758739161848278445732080503707675279833186968624214186475052427349158556487180978517041312975306288564186881490607368394449102920936898477265526833917704652030166635337332094320500292644318598386152959067599104984228593500499545003724115495216963335912335306548051644357537611809680133890252807108279705953616462859487028144276811785853807762007095983215409848426834536812204191687741850739782773144944233639886477334756611651275844553390305335303981431483400704262732672172227133423821935349603963863926520548360926728714168590183500861686162286588056230177262601994879488872311121083434168172283076459046759459350961368913106903291136166845488659858306139332163224419610668794549188848748835886100552163341853739821795905821868281957574546595151445482579740435551253989087311764989606980345000967459223181122090626073832986028520244336831213384130696119356874659216553730253057188770710890269417632155634246810308855844371692615724025720316280417165246722772507898763561527665147974612624494451077080200528257555676864638579386013790499602868271580961065892251731724792502282821477598545840621654819915379164608430801752208866966713279140611474876645002217757461008784466792760138093080517788207345654576686530801236080825656102168441983122430669019935982254589187012867994146864193738144686951362379773604510626691120270457715613880083548036949517201206975879454442052812388320078965363110022402262553948303303651995563846035151019493053744582992219745206699667103209904426665791092735102977535304759673641737338748788381927386781461119744170865861995626817907627757274228746128117987255921522197183693222863785556686196894810033975242130732427039418414432238707212786349094762295664632488050893970882341882531977022932812270009561685325782069107902247919524615922542095986843550717475980860885074069352412264298809715241608268190332300073321792084796768957103928051040139109380402709621542940545181426033990434806500652789057832523274559352331360061163133134445308216613593309934040021755997473865340376605977809176494379874863605356606793263987467938855098513972724845276339222202064341317497393641236979833495995960307849393855585514380374271440841227752542872191655440137468384404906619346445295347429899191057965357254855020005691977717994521896241165487997458629554502485417986775577692517804039978906790940790598917219114723167177059482212095230146907470458585462355400621234003965023210057201319647325183422501707807891383589606580379940557788355316788662078612438629481824530874097404985974373507585924091793946812256419350401656558723081361609181295998312633699174900624851217100458104443491902830510142238324803211893162907547102490375591999865740205670686836106739206481049187291817310576380268670692130706340412300890228619368165202897942933689863192497310244287623323660713049607982108164581776457206866479886397629192633417492104501668885754667622291929854000847662112024724395023509821919691329456300577664804310490624685426991114187026954040468055964262130981691360832786032253863147530284073208593247561788963117489715215369750514950608162414589630325853602781487079884546384381872020669152656881870993866828905500789276596242887945680235569176267327219791259986706783744907185127969275400866055338597505424372477748048526585726409396960001661793802117728034019957791354124581913828203442669752697782553637951725020770084516004811796022209558434127080934343882168900312710811794319192307314339536933243626374249110480462915890973781460410163475810996735778090937680461538153931764290630848047969446311064899655485176690758986322236867376036751917387468350693298932218159212318940142547492895490481471566108305226071013171111293620470928873649997321966094688643700781644671452391289872106691134813720268423958841834974027691753096174009069493155326649408475078726633712116103890777005114027532792562761725621464387628564667024177489062747999106368860287760542564273583378108327572444848453039751416227256234327833031637614133137260745943440969771216271268602421630885136473808008567704322573187970984672398905838123986399839600710832957834101206848151832016564210996128509802629553176900518065458708028381298458868976081684622135659968781625298126733223031601506397989037874803848922866402895327555220387615443842419186938539108608764804550909943977585520324995597007061279831435609066504331142476309273392971241945387472315954918852387697684900218289939026861138746520363151553160668284693911738476841330000829776653829251496847503938143779105741928810056535841531815694949974418565241132748855699345328374737884511576008404678603885776908117597841405190367051065134241137246154921236756314941174278424342360059670888734630898419861153650116398150735960486723046737152684128638071555285181075545798111276192138709266080200447059202110945359139906385524396413926216215075688428837074358377861928679211754914811201520574437203959136839975478135453902981065925521867950071970417554482810923749873050709594369375305899601086442528919331610352313196913152241283449563933512404172392936379052141376381274361555252656313793042551650450542966155397386340339258727489124138209734630662867255197898352589544412717850902728283605366661501517258668252313345396660077029739136240713780590404878088378955382788208447167415888119404604678081520504902136288673330606460657911185154874133506755140061117811841338324335778100170606193959623248027237971858542592074505790798748164270586856300008177379635801826215470973024939080616348297704266655795854650523062480872315842466379326454678047129872348504774574537624116404086245738858947906469824946943899221017029952532564150696175342505983540512978317402107710753884011044077392482116632011869284472649475935063537292638815124983192364217451650619891080720768804430424769569633391431452958005560892465589072582872847089403753460761263994514389129549811267811673129776475098985608824610995566054587900251820342665386236287273752768377646554733453807062087367558000422099270040457624555077106172532971308809971236630781591850823719360655410177903122722178450604479396476920537559258757774540935627736889729190881633215508942989991458334487182513702456845820280353505891057143116287233341794665156656891056388893068335994403177283678945127968580078389202150321331976962901824979293167973264031152551918812617765415030965349233793746961656785894411905588187137384810034585795927654770081998230942402633379864180889443504749635169364364010341379482141211505790858850627443604174662546452744666997057222181818756073154863190814316675537512707565914534852796354662052667715740252348477126546551664022803330990564037618667149949956365180461268209370745377553853623161717100655195841254463365128373045448441460880282095300354733117098215271460140487984212315855890077002312919162227301993960360088402343523510522723114793474616618742491178621002013103946599730538050894706089755364037546171110749521091957051533908674397523047423905679225589931234558960303341313050148557408191268298022857548497617611940392282606775117348218867107683971124623822128843535176294515804269919597901214028284468319941777577544800350507117947567292637499780625228989956267259403322592796561458104051757389337674652428223370681551778349859818145661434177278835720635531751291154154014888502902161318705134927558429416841150808518118327617401557306547359543348463760381024859073318136250996250979469574020105741204461098113003288276636598422629367708024321179296492871957407762545880990938771427854222516206545448700941303561318366228882495268194348482151824384640106593848050738478401673192608308466349025246724652775458849281111023032598494594123464759856611869777460673249595795489408975583852841429142275802526218950596031528686055632009368144754867387217235710317511377501454625933697306977902332243953087153549112013438927462518798837138462342392661054437790250439933554824948644788057023506228046837339530600865594241164534604835350979958919554842271532350999970240228155034626654193292280747610837329005130219809989049075001403068186257710144431084395986696624186900135367915386272625383353865899051552312127243971182910985584816324461387910706730511397934898795695789786691331989264632963579762137171120462457532172900064338031178221657626441783579516420679208704310426892757746118809032657694267104918360437083004805252277613034450000153724657549140188955282069749824440301371563833540813969066420757230933267863109418371418791129515966081719574659650791289213293765035301093943717477650596822584079071207016016586766396094948696881578880492905774584086520945179534508055156744305892607283333262938364667341888682239524062314524422269956496479053997772655868973826354664431736647642297808946202505603251867031257635527504017028920725535422508745972108441129888512956907367599918374833212892606723988626056249896299672523973171627561344496896032275167252659559208265964808115915546184626640758042648547074264672949274100857110555951858374103120128922778406630935384853940590935478696397654269789031967843792077711264662170484129972120580226372361296254373609413084790607456444591958468501653183471252636640111241284963138181686520128818045792858720742776135241492841509152271474719903107983200528469240675214043885782624312948150266864819161176733143214056969307956948897678927071681465058692674339074206639980964980382452501901995573454282648782437476284901087501657476048305381400077260138901206898249488614415548733046553869366737990425577552966473818765076470781005060895154500373963697909644125075334806632074717723330421511738216238255949702660678024514063494503108147868115679752665105017288877006877704945960663014142184581751797912505900529258621386016374430954446966653561569512275361301096174139105799077941984521306907856018302318088784663555263651998712449864957913555380759016237271822849353691047697327887987528243184138993331316876603291781549998862459547345810476133339991883400822986518137307753210788600830647323211200027131961687414024223793740771601663172753591401685584658328893070298032968491686023889426366791931138189594347726349755236574815256726626834653779338181341926345282978089093505787327756678150610037198865687005986945896632885277388678074940314842433913051597971245194798458768628415202982744739345126706378971932137832334785444968007821228837165735082575257336444579575043731359123798154315608922056876038874721912268662175774474268588008167127550666139687524458642571017551727793554704510703361801336604228075354171398271025215856256433138954003707454216054639206094132281195533389663756179804352455767688376824679257936035226554411482490065881676826988104721100911594744781680181903985739667663255916562137786119155677680163579274521365797520216809439997869950287369918515032884568580515664979070927520603323034983625485186398088855230164018679156490285190322165394544640220739581992631986650226398789909901516772812653097757720625152032928971946730640085532625901213508792725621772748047844977538623839061745887840387610250013847057941022605818830115070692438512215980173336068782499279775375850735283900257454643257315331684400594025972197731495482278284345812926847634589827895911564604004188388627681849102104090530017453034229869524064932260417632995805872339778089863038783020617974232217503617644883559809684446292915051904327182324380965946429635784627757336428187634797883575851480565227110314190515883040999459357120957991230715916813208579356384055830698332134710265985573585481748421519758174848892375904449925195626260923025017525916975026090875369014334570734713670528139932615235278699545116762283611639954142385689593586578765065894672687847208338776219234539906523885072224207921951117223293376062403502598839764299650890396771150670559631057574693373105136687749713875155050245682631505312266100381911743968258503291471288505124941522014962921514086341855858231237540067444760062191001450716807211640287919972227858343225368014304905517452384211051204979563231083313515935145273556396627658577837933997883784577520622281989110140231815393569370015708283053295916944303327343416482262605266779741606900671272476354852319821760009444717773316132886252306981246532911769114372481443427528200442699185450951116339332817192622301005151348751900850638539840788832177184489942917890952851772769256164395446177407025599265531455200904569078210764652750970676233230671995441106774711045224525287683017422510668605863115742890981734312645947515022608618113688720375591764984591428420909864394837698298897250038501444830640582446767035415849306187243909261241963794940637408893272436279016343851047271960865953167800794100308223342191330200804902101490645271506268843219526010909061173687237838063245067715043070123645333430824823785387056189633575689788798118221083796397796172293454114328900993020691442406380426388701743769732878967322452090725891990534470773467250921553720701505371948474731094593732476171540147258876327873247321459211763892768872653442652806346052261527926504420739376697967035080669396119901588956431484366456221081582217608865251022540067861966747831215190010508786424664361424449454489675071921809703442395937774443423830184012552724709616352797299190036091214426759366888305559736728582927637740880738702707403790101293627492518069960768431835421945257833516124371268794647802194632995341120813363340817681249424376439986074403692285227389003105169869845656185192987524752962825609485793804555930347297925679175101539284654265529255622618359301097013029937208018602989886538185920355367349983297561947837669924852365370023675913963178170880150971719274886200419102915052437768256705281679059194965564341318030728731416080411091900136518350960456808105937793606665849211681867114004805642944611653668472349429104810084755314505074089243838732063710566849107052418752050870110507341343310739145762444603011698664180991159892889675423008352669449768812304005094507163378252478045058615935765118819844355579888617192993441882894485213958534943085330232312978191550388685951420202493491295333404714861049471722724736244046094260139877043434372640286863615063961120605745419929853232612097413470835881234796285067041884426005939969062425712335365432563596427404877448847317341405701597598580425455273626341752920586098388034813403638354367568665579726795194037688604626139794156064427357039805430148821412788082945106718705966872791714108752497684922255584848255116268682946162353783998672102789501337845344521968310442604574892877699830654729908938536624337258524808276377588636597428955777463120101393909782842260246662179778299025591548832122460393225849215466893211005914356576194741131215081509980620273122275982268725190625372896788457491142923909071962923486310865493953252242192069283347544303760751789432434985289990762412580466167084960639692637480428218483279059723415352948559470971950243275508925990914804982016115789762106408892750183701274921562230648617604376012297602717221448871920774795461647439347023786812257160272589623607094504567974161742004695486100018236559923315713159423985181126645088220813139319224484587685507046108475008630712215082730708732378792276826986496329136035323108783544249401649331378063966679883805301258642024884723567890815319489616031723946194540126514892912293770574178279209325049162922322013935020545802685720484757508428226834436210260922101692470603256098335877148415671959787659975837630087792025422849523757594901606766110161640357039603945610816263741066664540846639481167937432777690691355535760655106548761005368873747600466043682359577852285141081186308331047238262231127057638487160895649197996773602864368718674076538327288912930351894222750558435010324944999774873161926046470056919551055225549885348752914312906566514189524090889375041051382555826797469281842917135531296942392512273946586147596621442760832370359640358688884500288867998830466375000297067763994224404237660617909933164548781203131811881999573011960895561960890612788918596431819438899956734241537305520685461650750869519592435556096823492080860118218242270167217048512658488248529449294859698812750010004957164133201054784066245093055691191202891269625094786928240947663580786069597183913062009205307081215182562829538077557143111227932926646315107635554858219042526076949461051612954823018050971723927736770510602398382014008224827827105547097584401931125487055730664427258707052244905400330133109842390314310916686500408988204956364381464050284159610883805776122906423290593099359183499793845663623125023407948557769612805943034271654153974005214659509223986327825875902764966715606420701487301438404505666212492398302219587721942506498860502494699208058326910320089251335459797141176881153022588240225312104247090430987962142227914211628145658994610771525111228926275075561476230202583190857425844713965039687350601365257717710420868310721124913866204150606951678540291539120847227122241926394769393404560362982182162436539031726522320458004732502443547721580851466552880159647640583260769275517767516615753495608571691150984679151623413665912926470340022344910047460447177765811873931323345067783187143716558386453322494275090793152328483090672530244444776745056507289460382979941481046160533528772041667008400679507774657956700665920232176194966272774765278939892801334060225893263180064196657446703066833322993667419871621457138100894535328415813117727419523751774900116714919269047799087657015861186419361432850997596091174503759911664208468843110281097506126354174406426521079591503793287077289555514733516136391382814781698914466573149167837549681332701720643416927724198651364339866995189410941224856583966281447646050403940591728060995483538863013976340064609943020015909978389746991020979125396461061002835919541246685401139619306106680365026152082995502491232961472532994092449391616577122806189036792692198102651073412806773070293016160298972990066058410059986987981778784459533016767208969505185545711334837741666148105852309325780530835643639454574349660396131140847196730273546997518977359751132966078479872780471971587096508547963699375808015503566218558587737153401430472634650331625081805830761913857237493449130508941402936333033082596694516788266463319989115411051335862012052991773959680943019431110326762881761580050127141195448591313474906284281663715703365282207562225532903243904324227229134550677221656321329873275281545170146627769449341248935423640705426391534758266750415723367528932880882561114194113896841387004336250986206553066771870887400300970830912941471004951392988486327240845580442033770214591227457842120351346299938898669488643714223947130165842260800884378818774464026793246381700392196335545825033983489300647313561402634163104981293229493657295387449104625579644126434618357193946137355153377361985563462430755276584047922660012477359714812330684765858620152688039550877685559230585746017148388726035435689714838082744135015093603940354676360219766305587153651439130681544361466011708889637760285831559024208884207756196144677629142089697639898522974535845359207857225753353142287903586553273858380520724989326013754060591727031256592154718903074505777698563153303808598334871130484522909897247614865499568118535460465224455533128195327377760523738050332808640906399017290956450317117446489921728548534230942572402707517893666503005291435519455685033272487717851198963786780653604454880031415415084743092647165309803264661487007025320005406500621131406733224832757580703618664693622983684141219679221402222535511957918384653417363577312581521366928994860439137241588428934993817608000242564987749741541695023352626014141275673061705481250249437864666400570577532673553633347239118441723606410322769366993732393415375788406282665578799877115413257922495581770953811883536047762598980748287514207369833827209808414614931531000466564420956938497274254253241481473735735877249106230573904731793679745828561649614410843492179009274362003823604153259160002720790610610912089482181450517301361459119172578787743618412989978495438669916428537316468619072250700899827493902090126348570609353352615412479100393533378266460641160299847354769919436331000267202696638363802545714868082584312985669601379375813526914424016444547399432923018022318261371087258756659670744116865163643866517932060361314290145507086625458704939165398802938934005210247446289657567910154137287722581011302193250282265052316023017147383405814920811644164386150485366048330984120285565937413169528035127880501334421618509763741205798809233638119453014995244327297448647297814241309424369657655607653275430947757852383887009281214454433690246366506967601743795543986677931511819243151959179361606959719392829916232773273197587900716241303284919791016108974971927972476861772376042233298062302149033408575815976925776409642540118120772561088127922694316094136539068816360529924540181703848245353843703987020008546776698714425943268943335990091164099401159451324930580296073807503621540727019717583583368229584206031343860380104068546681527419653855755589912540425274375137961719774971375968414277181325702184819619811705475661711678471775695342588617352442590974573530816303560145986822266639507810398593118515475005726384169325239187504385999880961626594192086051287653578890201549179018757692787574829878186793361696790602755978866463243574569504052521374141400215858739345259168669168516806743958375797493874719038714453132852518134476500255035868316324385150876937765702853309604495411471924587938019253237369548435846294833540462885280821828433324118132688636927500841233011365075238526053852502536024742225845333757847209123629941538143915837115052165832094554127222979828587463202226789645955810158864808919571989006641677317417125690366574122792064530425584532991840959538389209342475525929774671707123418818066416314187650784955206919150176838666212046026537510044478369878788031081275945631654302458289451837384097875600740778396553577813072022482393009407698881330981987564321163110786175899250373296055256206858100257512523862504117704777995134331838947830929323818481200143559212917630277501218970021511626385417350864806346731553213199811364733351270689256477258419526855051751129762064769063764441593197944147526604980581757810227036486419703420436910649570354356421860138283955195646178230976381683356421381203118685890580641590010655419446572261537206350269859845904846616451190454521055824592056430636851735027398588918292387212862693554084165757295042950448444129510753951828842420462963856924746584386549400108998539708252518607141623278582992153595171471329893246922452258996094904478191565897746745212466909470384507778083975534087358165356431470099937804987938495494176533860700402566595269863378314332869242864270552608460850457048005031540133498878916992481193279387864774131529377278064935811267351830929400348336127779085165433543454757725139386383858995326404187864268713576057464567478595261547827909591432825498993439186000695712494015890429451590595106922210730752320985027120176118166915345573284633468814291442287390737053103795570493414994841686559983708709930855393700548340414931064791154613171722615356432710260433206726171372106025985638601517485882701214596048848386088653208742568977434016352189769848421163642486995999669325724813465471746585960168954176102039368257074738402512548355403041268716067529939195187640022077361650546116309867672296213517195843772646897008980253772686902169271803949084495665497721139531404087480216854645055969768859823831059694088353080427478075533298847456522369950471720014288281084369059904438504197327457028329420465990222078414101074862412032676625149362338615081838514937187882516289357003876202503622211981425788482847574627751565029960286487851844221601376342015088888359880780753137255971525713633083312721879550872715661603078135960260156124384836220064706234570049136364891841604159128111640432532679703159105383003017768522559036044156872409759683883681048155994488278326159000681321401323197616538569743126372157669135966874101330753329323000329673410760708986780389389122985015148596856127401025579883726397109612176144529580356345594367044323028299092067597058037521984524573264030018365495691358039565222099513512106794661344479595184360753230470313212486304102031797676055675772293883984820477363080401127755312204278609505009875672027995403127648319292752574456562551971306951146514708616955963533967993433254593911518837405067529099353853505955736564150984796191458960700831457408452958960249742609097957268735305929766541672720236498874556274910499881149946988829873660930728558520463774219573322846869610356000749328545005185925390837086183661590185286669860079947320476535436424369821164770323422964562296448296909290449414469899909329470222953760622261412429367407599449155074130565648242132251258976605566807417994628045357820670594357810231505036998228264716502253404746680675862150428514999280450155567962166044290992278562290882236886129981478312888427273833010259831400363812373087099086846305667157652679619163551320656437666413640297864156451928945594593739782120584836588344560775335561108971690944206284321458795554954763671369612588307773239148868116268405552305938998228139105567631535880360520402012050069834695159827075768863860195242466025589882248704487969689109186341301364420272496112996412937729614903607696815882429301034363119080065617702612747372530074208751670036301861928916000489197683018384266766340064204736102630301186486432591120049803858751354668661015656510444548392614281305440057287637274941993076228451574803598301399430276961116299563653176161388278272044345005378271288313463050571869131116178484830422502404226292847155306732373049598774702862485219381936454999071410925369291791987582505580507504937567325759461533155200662172755632666009729282682529667606825175554564354837967314169600892874202432592735463099712043588098860922325906162515958484782047712465759967652051186376049444408203953278563644889805714081517497334128912804988187605100088767910377114090707429225377437543296197578659503124787406806957662043533062101022620250764207515390877704612933440064559018091381124335001360890650531140263997565154795770361923418056536488005576628047332110216833138165138275233545551833430157847788300494142227024313970007530885445526497271069577864272948351695068888518529716481339245458324879138466600820338132338394915666482924337777342475123925746281693015343558152676179936639341159309613495477363087955426031283808082009793906370082026869200342499518982234283332147745885396611062664739486316749247912783712479333817784099031761410596929016035223092402049671103763177297013829199657063013275222400510727807763134427973991649446532802528272801049078021805839470501285841249762685716337103622830497842244199241750547500011385203281922270338642638872686157371332015011962475884828632459570036358470142703563958066361837439368628626848172902553489676770596431453628816844874294884308357060118543334575389899165381348731628228245575026729923582110336857203480948107754444988915427486502922850578736994588764635361573048476681786810823017274778941974458729118508668158837255230281683134070889842506086058527524961915967860952626471015127749528470787141161540453238646097467580812386554806090386315493925237102092109467926114470684451287223508369215982350892761740347705690537195114685684247572939041406337724925251202295989881149958312246483999947484256096737360209523298501131352732259339612586272858850257785560320587667382580909385174194221028416538753051805431410320438776627142207777110088859251357527702639506811218353374473784906177085211938892359452712834667044015354371744152780230766859232463101904094008188197995876198891412492627241333349552457993254851650682405644883869129932385464227225510510501295358064353324560601070273451524408591043196161306624689287118337562269091219821162495640191206352855234781984037320761406602621563381156485342907995518642749910387640925810478131734465090812535587000813455259293764094737681415049222958022352571857742010033555656497202201543652077650802155962709852971996782687379370685161386746501084995425326443151211522621582629437634094615468719291189355483431712684029576880909008462893506560390594284712558223570442903691400581262904600634824760718877331123893354822294669541623093939697395773045543607344366246667561139748463231348981688747753635631088994816524974091061888106553115601472340950690625239809693993624411168872805378444066525769933673152974018099844167696330153661015464133537019136632952221786478425998849114231658011923334562497144662091433460946313235065035346697077683087876617515822151444715290728927476967926412189767274311696797161168183739756184809690310562379218300058633213754169096288682966415592998404691086844781659897793291229509775152217388692292486601822962321503635166586836615825291558029056838558616659019188982405725256050364007607024148123252039366545925567898696311563858519608338080214449106436041732608971185008848215372556163790713437161063733764638705920689892351819233613089352314303086201758201122775653871234738296098509092072930598712122515062124451425175752765531023001624983555033420810355538080865664182180193730636348237540358993135914482344233740275759882979140928207941462748056411322852540813405206542319291943424201779018072154142621160395996328899394741249144025729470522578145912975607195640133733237435477316672731509638348210871807780623760899401476666190847505232542175401403116277409958593408983292687800810442236833868504647036708652358735378580707988328742544324245042886138772809344439083211477004080078783049470108660460617719105836450413480247992406819764144387974389440315638026524066914472082781486166729579195795685171427074926726222029515000799611943824871003905059534607509443486567057771475628684256468682820902442139860464506043813793411539490688379514900859807477914964492325859724887593422774970449009765910231621941562442150685152099057981730978276443833939637728896701239217164481956324125423634716210351143665164487972285481397937267237656381175721014005697000495370206231539259838427424708330145559146827659785130993674066518473196551877354100840137899075789926169506098017535512142572119606317864055811360120926513654103542202206854297695782664084385456178595786713078666906319668653370346694529874920760655875293944627051156024805231002705658140564462585581160457583239581249601459830250750578964759095353984385765319416700846359591400811258853955441341172845429191016391440156324834118843207193839416133961077592776272146477942802401535243692521498388827125055788713241389367614668152974791808421000491236084003882775034598392302414945432712620066793672131437418517598066124487475823145121730270597646879121763129151779346937120429160047883048026481012707671228249834951928078094147961165429828618867613921869597479117725745679506485033612815469241839712710681022822516258650384697544041263812389800765439372561510467119017886457825462813368287143146226137182455531740466951334976793223110991267052723824363586728655225848649746060140780597211906254403743712243017239943679808955641536810872181781773635592529257891120843147324887910025123122712049964014665753962503658835046691265218447229853500672126271198770280081067078211388133042422576681839530323002904240969392408022410602801197066491987171579403157919948517542117726616087746239938283799857979492503691569099535469257261333322048628044525802874693438101483583648710357394163818544301220128572398810924896552981085799364036845761771918104832476710112939727376472511661969779925885756452211266434848793405046680032933843990411927264522295308035565672239964686016333925330879198546275325369256492622389533229104691189429153344711437550713019630100070097973334110347788240749459722385627783381191479264236249790834224598738878414896653176901449117396225939419511608866926338037035845427167400704757560044100723649418922871978775737355827639968319584393006465101834558434959184604790541632278983912536948794578075493088073187016048742357177508996944152042206801217060285248066859292579468596828410978039591695102125330766116987869439380408931667223676441066432330511837540281520912460429911726805874524365055390171576624494632166518095805975003317883337180063374618854848929317556208864938734489785259750078680642148484476697171631696357666236334954672069102999099582832514578974160728556318883203619963087542114566294081855575092662549278777966619341942742305018145315635280732565256820845376971214740017008352169729237501915697304415959193886602611429335955361793489713941159755281241622627403182072533416157590115613260614056232064085640322911202807508416659297588909933363940497192465478391333151844136817890945844016128968012571621404060277943670159990710159666168966022670389628434720752141923523411713785176686056196852437667363912401117558132560624182223903282000389877578765433506580517582265724389174555535509370408366479051876639919593045588322531719688964176258566103207909055613914063372471058842250317624957988322493373293211702436026911084421955181974276389493297652801780389378345490328191608241138904566835573498880815977943789962468055923543349710389462306095926475277439197866676491717051409452289854949032054407845150754937487805455865184196120453585672531177563422826598383480191887215726883184129956294616274173493140583524110350044540267612941118056679772591020859372479009169205024014209309926300566036023800273767953873391881537798152854506772268702389531566603624227266719379088618069340887825322229127434957921827345669184617153847231761852269841321614537790998184411651948937716102914703531619408805973516783591655833385247051671290717029857498366007929427986408000893125860780840786630838218159274238572866117143637531463721665812525988299775921129737316255198228733309247432109980278701797457005801486666096011029001732687048897065602646042925262584358523468925181179022394837976976784453875915793253909312167522162963278506383153809289539404340324710399452584562355595047200738962770863652020718458942863497692512155786542026315292742135581870517577102945631773626659259319323982499630210575168714444354737851780605962357222001327317049145728841162203954753757090499200580021260622701409562485253128581477607628536086672214886890815205064538754163975107728569807843578772060536405038670750189225547482571425788627446517687076437901065744279138887557706900192602596979266371970942275498137393997383832521488620967190334764812320209148194445311895235606010706002994244730762606251010962973163801492743398428471314010198492712152116694781152662987451649756663016292139026188099806321579395134285819694223730748460161974729718477351861268622653386576172106718547448146497008843231416553720498854797423776791487720048820032587985242618529569114460732492853042288291882624447099606039628144114008587969597804993635640070102823989543459338707193899544365358438894833811922204738247557684958251254277156255528891497820285423472678860675681410714075858116867538832329726481345781269935067875634325830780426272278760444781954918637903315128293507131707740958633608597020221197103532613082105169711290750202648196452266314801246007134439953644472275696469311642511354163488037469020246007473699005452566308990316127690165996014811802273038761855237318236447956616877227215276221331373532491643044863242854462074698924018853695662209160467134920462449566440257262876295574877826682890557923306325349613757164199315971005171632302424981449961334695095642743225028332256936840604209924420540425795964938605922670816319515174963932762993367601993960626196622940493041357742931413376540851235508267409258373543052447823620485572465762050627251003546972765447191322194678961872545696608791061983991183388756651103624899836866206595581085204620090387053867470196131165285269330343916248006622645277969291881365364612471982036985651650420595778611512892683361948857868297739192800145948407422021354150144313989134219944105686392945816400513863588143415175316891273872559300167887100049524872789670847334169100639596291380418335475414081851344193171430224594323829062020711776690124263740078179924361456501488417446190054233221406951062622782452232656070131062575154303236836323989992611576134828717763539622286999228133838973378584389128085318069231468149696470107456908447616576533496894007461212607198753289256027528533347601809397783688206175363655745165874606201551813361441879767670800503356868697580874975721812868336870950947380678011075606499996261556000323058967709410943348509992497518879554010784992442981836484386888823617125001264027357798901769699734213689544450947069762620972105406009122495052555849740471206722612782900528223752362755766615879797054751048940614385627385780630032635579661051634859620216739398344563586901233804946738694316298955306127472246309046051442401940039702670805241127667107488686470805523023010752656695319095137824705016416797149935434692118112184678844033390508835416697648476071965660500855633722811920354421022763346563036560209626206070488514629432906061750568369282017918690231630499201932178405092890330492412310539306435750039609062581443602252761096038232927796912354498490915529201467300674862599125655680144542100529354367988444364662757766865785257587193870435554240318697023662981862152612899383400197790661518511310927500505668020256852891180923385941162804765920846324774872004069480598803957940802972397445113028881348056960332450663846590986984018783490442164493722370014986758633615889839258857616090603925376959211008317566856504911929759491030882176952645375156065964601548657482201249768791397932614081509484945445315246005333073991535189164228051175774051033005900110263649370025913942998896117773576287529470693372294688969225067309720588173171233254743875003953715906768003163833088551028450913991435323669127991903052452459877052718572615451479596584127272210446271840676811605464327915216327327707765057954397362935420396591866672041858288305893031147211176118042886332383229005493358079945227809326846183384935750598124356845995883943719027495895676310230444080075310957492285573295478764260480169460110690645842515339214498602604717057471801440128349488971018330873763528759040662693610206545086392630438998840659970336987084150115125814103350684932981768268336304484222117188825380375272713502301187008128704682741447904125175540887295035936630268227299902770548337833322954042571464548538019706345293651235218700650161828604423708210002751121119629227909438517663529422819532234292238434701185159471687772703933070311808983983045362678904183963137586944387248281383277292915966769575146902887200357627788745251835318914217399546257734804311259537294878849126434184847591198793913204242202058191009484922143632194780096763523497081136592334968114163028661316456783012375004813808276621401655775841487187663409772000476743877774916435935155470993733529667300944372509236719289684968775897500732494420961829475474962223006128635792369709390826524424621940025044779865999765598291381529661706940506644888121320163473715882538634989956986880161474419949298002509629209865076409665667551083266878294605402107790656115221130636600304393282994287881859951590604601982412415606990724304478776716815080513643791349400188885273202624123518272086244403167470900589806823783563562364243057362414247525002286867344202414264942879331702626642569526939925067378568355874934380352296745760220738457277372266615624918384742989711317184309107792960888205926881011011547120325963881460763595370221388417142676544468754828609947738394552149156273389536134191551190901904967643476810156235018251924094438906871905706610135677942249748575143721014127287441485245899072298096463796558094192696323184061115148856999439471549990207563868223988094194176923165275907760934937176931678823886550943622895053097451760037905124112015372152708993326097669956801896331497543712938804709106246034579527815990688299143280353998866827889563963236682330742486528086144342990137959871580554910451912178535364427695546527274771676175520113926305269401084176681535943127488418670277940193800022498406815912847481926916180247761733040258083301698116841476612991691554070252591095872593019197505484211715551993014853957246812996068001626750780255927096302656518703445335197458205899608804733236917479695746382831878935697723588682627437427866106249176521795216015342213735233384889481221215270250163733203834773830003286788743898402073699332288822543662205879117166841081325627700832148740504782815160577089796082853661060065976863753684490998574471184737476836172425148781453200297510260405169577318279852380161300791408892716419372227312064458581843913271579683436161639896541423846205235489488409918305557461007225373747260250934716180135743781804872201963997947716217126677958388859010030393432547983537160091019123091723252954419695392106170512338098504784570466448412719840173458917694969497224861814664887876109017117403442495754262602283286773837718477946787881821436623439803875522833379141704137323418520669868626344683442508195216457345109045511666576123582275149817780255401567629676809492652601241157167240920180911513048329701706031902303168524386311494068432148868462028927702663210333081069844348060963770398969849465037452144449750959841132305935517388160316751428279827186413761001019332524142722139148134010150934496739159186213523775265508540685368003069916738533714939321479600789583989106110930060802543506085064906600821801782054569081499004568406563277275834390706240470539094731696760260151042891915668319511014551228904814963273498849075477896696099210461216949938136720341678376279613861408003662151509095226950746141928690805416453124571468512196532106109318505772571820924962724823847561575438274139484717864032038554135678347957940354320776025219648571122367390645528802995536819827671732037290596209800970939756565539105963827922346655727853960456970575781952788860640362437380434121417183713094795517111429298914311017239142561565636522026594593886581651533041257020932613084634254591634596325056034247978037030263065195552769302731638469150686621039777804374313096241854972399761009550709409986352916154130633358642021347551985151571927348745205701672978670831558765377215927227551488231727082741692377566084851741403126665994333210305190525767310719321405172069824472951865176896212140390261697905082521198044123802104057931451839747119652245937844504754312078058524620938788179974421382737219899635806214810033670137712704176020771019587311448489806626811084907070572319316023206571814312160073811989701208529310671483881861890473026155909591959985321631123212112997818128676267058727482540274921125578019515485213751538781432332340288548937864910159882791416931454653573712474756786881106767185382645960780579152758498610832563790739866733406434528064886760064363332823630930425224537806899978820606922791547578366858554788429697779472159774828235966240036857465839808491508530460802948575442124774807122862663732227155234182289846275421621585923184217540486324023494779337372281983533514834004911581640113121485177907475926470794745978919494210556984988597734228855546357431189302772474971360328258315178091602475686247993664903496245270098247563834814436715366498044559015461576171649754699357986179289900728889275206973321760299348366493648391223064719770771788116082585164919739310559115806435874451539128901061625039324367226393442423442998121618851931345693947832961218505612204447012676897421047088175845997138157490851488325352733599143920076792838505630174063100020094676625714606550166929778185362146022363113471655294762056399541524464628559709737794476688467721989380591603253893303246042444370367293354446128382632282899081344726866706140627362106276050899820895031943711178612639097060629434809120779199996793324582856152249577832682411790911511835362684249634425950545678522553396730161356521956330158958708888037482112729317263390856389292952039427383632439838172440732442952319288579258560765857183592569274905696058159646331141932727542037944862052302427150010359803940046500850707966776485436515707028014776551878526791621791701072860629578476579010683968824717013459695890975584116166401637277192864191559672965171238959388174511736066274166257453174083857051481810156465618720677766459360540400241981661054244327371215215198162421214938188790023316858799162474399289553080773425244970914548877812134881755627040376427066143825604757111091051327197126788206391074371890414928436585943450531576033263032897556675046015656498469087233738340710349587672606326982009186953221103658282419898405567941086712208163705007144316469040178428721927493801305052243016799336179764242315088499343815028273038647543218258536370164985568625834927771968456069458187716208254058711111282026140914065273693473626163899615283201899055920051412077934374966499269097146571901532019528096108379478874307538968655428274526202275186817127509283636533389062131875735855821764756140281286526497337498174412485353273378033640088690568470420995387229615699586669772996248890239615576121385119100040947665560852803391845880726192111945534911993522871312990265348578735202180078529004231193754747738834654762147955659281070005144937482804173293617310523435531174794910768677837700058876510533618135234643279877736456934976320770158054709096129009504523910244158691054299036521960488185521816301519527830361140169533951618416632945510097444111353255337221161419305098376986444912905856911531421453644173939960058036344393490085716123674387486797633141174927331244478125547142513041048717141617081123841158098239974201661825291904467923006284786257895710109204326864289737385563838972302254846808022377818241593495510998642541520067413293607632837845548258707011815289444930532129340754006633514728947672211066741944186702999102172561443787228407796947716016273515758730222080352014893107207725306201732707002238722250634778793665737581777701709553715038712886204310840760691829754202201068705089952693607494913006121957695725377027332071135213071624303126195306202109150798745182831833404182555738145329088091998044748898709947646316739635813329798115985552757728311097641421607257300065435758187689608028758350728239338189655743419304254274104589070545213045539471626163880286256456224925909346193514422368668483686157179706520887524472903764139945136869860377305942364812328187014753685878625922975721865232438140900310683622071101667321338959447815662733151962186044035617919637647422880806767701377265846635129565124578884762379643426740568935067548243604658662938687544653239505810638873167929426113197737377396045793149787332189720559479634754799773343902416810001024305800764448951151384736299505172605461891185812211671733456339133982494617514923626425366681876655213904359579927913659844352886505145955482536625843690637296355331059485088228928696228391738806453768657997554555841785430112573462881997331619483779670546008958902575020324175699443863342660008684308678639126858595450470952441165045274123385049841875996039047215041926441137247859568950794338437671705820663543273495303882205431278419615294968151383579921805056118315394454451159043949141067802059854516983950036523721417669369886871913276218460334249526706107740523403197663856994087622662467548994682064353556315426113545381953191739963186064814814308729937509862649489892853196833727416309908562097519521841336103909996905727997610335538869874543725793267916782463205961133477044199614386173523276182224651675044462480367459885976902507167422480356146109391886886248955243551614898287160538577668384649628111630914256281514233538352887891231987940370888162192442822007196073255023486044500857555542376650638086580919468107447556876931797394111226200835614135463145743857839435015718316494472202396398092724590102077308411184573508444271577149247883405214915569014113069906025796802711511796054260094046247365047578063222956849687985814249519198029021054219847888380716740249044834366914106088860300203292824763295759004419701477035524167010361086934322851986201110920342952208647509648479213961027631372760071923052882174762254364587058678990203284127486747906293106251670612244378619135321339907983154570522556837469575481091981787163100994483320802377528687680829223397293412901493555279378349331861430533152868898982431869905100438055168558044336053238239182543233087689778490951925110328503703873179890067585397238492817103218238716968633042100718638285462677159504336980454069236526950665979363051971601274900438722478550610942664322916414795044223226151085999950871390230495459408355656760733555296199585831942019847164102897944316313031911960931390413046816605672925339307257809231457872307147727340777265941178388776212313660739791833086447121537437142496440861540885833192107611412354586526021571770602672843738954237779160521900123836825007129933070183645787097561853284570604261344439569606750815828032684080952772574495669035419748188647942616084642391858620349695347415770916712201720211162172752693425204081056957285635076466121490216189089362761786805120857495044090565073907094056830499716882122866601133460739797211185548295204580692635111194842859721972378017026987531292767829159075425248750951138427796640892042518782957765968733436474911248034456613379482075834520496950098291521933624764612865337044894163029077484827256323172656914935568269803992712903834044977886794393739994799010256732766266642150144284571991981620661933367180628545471923858565268425914023187835467494089098964420927622879173920393967620690059412765207791774458241400958024888622881383840726077713493831384910885312837788228699319184176151569266999350023354745730416990359181971941437938606786234064284679109305464621515247910740732847832328133646586656945685163406532178590024997041753938685328319363314742893435175140589701016406044929775238578029155536619152319201493184739159303189347152999955027084176146457815876388067184075972552645386890736318498326282264936849937657187137200351809918181733765861105458685635293469984421981234083310126198075295837948295921544172748318937957518210301256240285661701859696036098419486914430808317022820399146934195040015264947823657310354153474496327996935447105560880632721118910669074446928438683159330541288648089820669271893131716714856622588741265526247880118812394577412575635901457895742602175696922126504604170454129276168876659580520673680773533469562208052620484203074774124474209458491643694998507359773825683039901148812048574476358000941693774938403170670746675875530343393231623628956100678399231613731345806307405071611513359379721597177984528864834290954205028838848678628547995203295813459063967371734816385575522166419410573260643936086168499343880288309340162827858692050777822427395512712261675073324185777362282138367051672622565799662768203757177126240313775279929537451427819589635857045858255675297086417954390675372080806422510321798285900590758494543616501730561949913187288604066128184907482608913111971492873274307259934582936514726003463228259782253091110096930504007195142573520575840246355115450952960492523475093230121418112322501416181908723585304484163619303371556989842363270011521304186593160452907464814981167773129396655717920514860797474485749567738051104196958280009243248680962733736872442349840719006379149499436732934152224661425950549621926909953967456878158133858172270091642596961248034467588234797763731585434300609471336645198726559979830620619250476134202260900156877237807428121341514040786633473586227282393534788839276281086861440431452906808873693923502307173099221226818667658591392265330686204460184843873657764471828776472909442647112972980086293424499782761562451832829310089782730955207505290519418990674987487779990753395789541073689023513185426264304549000173116636754620424787470687446933354786239137849725867431294082683378817634026323839046457643188768649989450840263806120002184327667851291619634640511426241826604231787626062967451045765976424973570607524385322337805110826080164185829951580645288843230047017297092288462529312587734679228580960324420558441499832083859041310853065852698339947006629235029896734457778620397504448251688547957369929355934159548663080392130770959333818189362561095085822732943980335225050854439041930414670325405855204149373873332877964708039173150849536225670627913940684915156929443464550832783109504795298260996863470353387283467119414907958613074238550663706648028508029724600625928635060955385638112840844430884163550714013695485850589859217480683981746044130958735490653966194999782825226043631075444561251952952462852681733839520164750940492016638208047190899120897146873398466571084005951580054947201384245643775263310164003424704625047873406454221844131903274193992426677101951993888335239557105979124367065991933988390137717350960541797761269800725494077686315141669027101051198978515967168271951662980553304404952366084747630327690998294423823719299087018219222178592837064103788595885305487023913007684338835921713333303788821640481249069909364160163638615393706679710120036740316359035607625022825935892630931266764985784210616059515471725755102599725468777518080058045905474988660257665347364962557187132610691428106447727573181117943883883429716318357986704155791539186564934183086778892631990434487484638809230217472780922461353250815339408139626651996272408519186647248605946304201686840060136283742822510733185046773110231081816157201521605088005059329934348793550904142679398028418878408128350069017004381049214088599279379048349844393087627757460299342333480303301385363568690629382075804105196247003298854453302269447157040709834764489628223335931618697046452020676917120349609341300567615103739081096647667820781037033088595180209308385243357282981711573271452871099455353317300030006136139479777054048739693211326560619558656452588928301572668815063837383432102285524665282606020374849763352821363914098854900179043086324611153729360783121435383937019771462709001695475062430656622862894985886369040009325637199245220273683546847879883542183708711896574632429162828559253392432509542788030037335129447975212005682467761520015594733307012560815411026380702412644763042386874460141836339151973539851352730305917373176778179939935454336133563342459800886271024987327617482671171770789285237854510211574375509664437741493007277982293824229015226497319920581407323504983392193050370856669887162222166837805537077263556263779268932125058786132562409513564421779048282950431865847903338476102179165893270989012936363765592984526573558854137102852442420428801274104904380810730088504214092688501480540080023913486284140226048972645201365102983796569551405716880202100595056370085347626056274805023424276028930271529674319704138118878946016515104307180829196953630689172054601779023227305998334623625109650036349720979436497475489547369879488199949050380789473394324720844526892750435538601512664186613427297633200475983257661146945316248419657454536838563256151383228483434098325935895766394923838690948984733057505610643363716603795291346137851556045932659199639337690904776327280175183689799459372170059329830321630138899036581573931096426018527755502559148377847834847203771367400806907162341153240628870492006754435586009563649200016754597977855002834690142429121493212631097418759008977640939988945118169526407872531891882776813572084430570878729756384822649867769532028110285028733413398211768910313491259800785677319584301455226750602692077636148849905834675703695210357824786423150692434864901399703758075501323016570112240625998052722481690628707821075515038990631897320423833793286542840747916417479219675066677053018065356291951480269294902550262673099309141475470559734950566623725509589587128018536902547918118871623785890111821120562964352150091850566645644090594250801788598231316351739309369127765049761852849907725615035284525125966343296030352603206367384706933411420237928782356803327454964881578330770067705877831323760263775268696853043557590321610165952248412400035544604359409413331058719533766952804150442395333271619950208372279442816844298780977265382965740534632219453451480062484551867126775743494934317336909320762380585946567973276772199526988420711848901460205443179641291954027693229384680218166274682165026522843813086920147188705250786085068397850914664310857704043573505861110242517684708975607293433801295085218524180640089096106230354715220078532303787359233605843614600775909836725463623381810394196380278851105344970857814982649500089641717590685790040760126039801293780782662481630977058040317287699814515658756252630820173128323916298783202430812237774080917317377244573024426108652392094119069443867823143680753759337588208874437969321804535052752790108069604276526334045652723896448577761187893722586566568885006933594056116541292803459101203187610403382476335345417548699002445024544637554064441348545819011159773978011264203238265061598302661582528489478600612459398487396305341545312356393493227026159235823450485108243047100505755876599685182797778771744171191187037077475789021121504831834628571402904710756091286089544634073787572220495966248523762290279508897116327798580357163044239320789574124567544456628832658849290291221410488760455998875704646855814939868539242263948991487447366934789039013543690071718451407607278216541802083122023080494928849082050079430728110450886532943405588835166321092880657317351365338383298243089564082439645337378606030991644481608899810441717019318295909217669282471005173784404280904541987482117999460182237618191452355611477769733661558442665521821018347889554556006692087264443450289886540126910162675740160292412830159720833792891108486643727602489307258063931523780437284238366172474276258055348453929525209742309127810034469517459070614434444015832855655956660958266474001721455134827984353084399894656851537299248597233455388215011419899156825922338201867338433043672387839159483656866671145728372563451311967377255797946491704131729349771730261773336344086359628091183761829218983063017415955810752826831886185191858941706659211670494480225046007872843382008165027454543307808001627538271015029291736336188604803159974167898085139543828805816837359640027540196077178000868780760282942223044534504169727657033220289350674246269936704743999070931693709897291807884897383179000719834119728751465208558295166206689663970296227303590165508558746393092507920778650785385024028515154212380189281776500260753156630751791984630641255807079295168476567187236064439115204771202910556920900260864170436355842111742408317765521622802786094808627470085815525900486218262200810427160824404861738016207315619135143026121670163463391338313167681783184714912251615179042329356023777768230329840768237980790090359451216632001805638573028439639980650385937200220306148365076888701355417520071082937073952061125940320761939993893724384100585411538847346539221926532098198741862065983198081849937644971107922544662966984221179399961599106859339665681369270749397270907481326197177355964021168928467272425030608020927561032121646202117183826532821982599441765125294227905493273536118922441858998480652680300825556990648638098026106508727489984074357311645059987334412634110504673067467675372214117841425840304318392899534661200560318241400308420628605213914146207110613785597986836999466752480431313085868363028660694307442990566052430202561820012818419916170062962538678970029940612253681165346680301645633396948655656684974285001022253332251083108735003762794724154932718651147968364813245214841494153593598128671918616762038448759995696136343240385814970068335453303735144840157889457834708246099811522237220524078476646240674718485584702581770404908258869543882155203202587438517581520812918219754437072144817861991667657322747549398650524733434759136640107133719613220972998144410200688314457829201281490632895827132605995343763482799313529645689171885044104680621058194163055663469246852044034845790790399002784140752694362804702519088552064683416928991463058397113623048072073330507801695195665295914421793833477611576497073505328627622791186527732860681559383093713342408914380712713114618081768610943938130517330489516906740332040815182320385433040744305709570181085791369793844027826152389366228797271397227306614487116172512151784320213411716376755493387650796532415265119534540826378532225010975150217472182224268209944696797241117799910630404546413455710644679306662605761485885772402062920691514247464273032758234944479454034976039918550427290942043216018635834161656176529368501052817905139936362047063396224702887954403663972067714560104234424695660476467303813395524467348400840207063918668758441497947099754351923198526449726835874581517927270474701395074446436671071346102809422551339104087590129268714071754648749155492245723724988488980587015547536901528135150351500974389139686013039626671834278762020403708456902600185739137087490320630694837578327722423922269671368803149549058632996707010305137107532309025019228825617802843661024661990954774483505886966601341958461971246611532554449757026720033552348935569791430183240840829216638753384381336407222757936193644566161669978416062868900809922878567323451432907333128303685602517414665012271460934677907136641923612173618869130612121250993747927411735113419273642630385507650971016440893761733461996311599511279155640967789543523377348329879677017082154308975524388696352154572567818105590089503311056481805049297702833380057416683932990507021832239889673203826584518976792583886766269707795919258560905187016283331281970036314401918471263141468384948635673346947573832178640620769275925746728375842398394125419205960001219322033009031191395594623151717151445065000323233313075416125191582725484070708218636265275340919505908250114271858118353423184966963740039551476557329086429089256528486152328780971292209703518818418763636216381702110147922553240719262071543180062771343488662003559469720016279363870795849024719778208495509452405696985477981289337462944252017104661275379421259373217896962332142184083534246861764477159100352027394513119764158319352513275659980471690779810919037792041190374601657104255501217174962145650756731145109031546049942363530626095120920475962127041172577720389719247451023946642881840420783464744886562144899876451545755413053396608463348873483279035968728153366003656584400572414369677626007947513847624608616183949547720235522390472968308492297298358260138761907471214158573361214624373488426035371222328846597620043919110245313731535996691316722470840993688297803960960664458998464859011167428422500721402143430615218635353059301561210072592248582272377280664902183948109327447399588660932275862452124976778681636971019297236477106849706623568882442460876403472928269846490190296286769239724449201786661967321728998884232996888882458742591814131550766360159373709179876086019425271798747692273802751427816464875374231378773919820370160183274618523988683934548126130543726034199592397837012629911687971383599308543921169507908984415649063457547711854422680474148590637327708260501477802536429726924782762271240588003210131579627464480735357492112187383856638519737456932501364866870711154057773812401986524269212600693413076539627809274416093454706127654510961749851393079031252592054694177656328372566222431839246992657121908559990774116010636276743040653846448504129915462531520731771271550626979626820334603219222837211800931041884992078418082971014737142845342806864553545817384320305581771968153511806835459723617696427938287676750179205091178012867220957033568178150862758999339284808410978145150297787792441600932657609297985834717554761653726324595365880140620547451170394297781994884563423844144187288681129499937767214376245973214468390153570897743308423686813753710637616683859657408900719928102200677680501092357055488318801000241900249782169963021962214367753498952102660414918104088164129370833618595279280161883094429583376733477796682783373233335476951614781322327314345652268162443798546771791635713695478772430997859400459752483927599976008308577938404549424033165285611059930408867266274205438148953313488198357178404292686564604978671141080431624675278313002414514609627952627848432788351477093536664404383911834631266991184886660959447376238142776877709871893017127523145281267828220805826868242786119073668548328452625456979624546346684039977500229933291650976645393218371044094770363145647348206109622473213274946750580151759730231463709939676920411453859156182315313081890534331946419521140255070143223297447576516027983186876237219230880803514084810739775800979988251232976187585566512038226182722578820576402466155830249201987265128429891292020814418393422054040381779673656685106344400611374991783525488070327034576037786757218387170592678375113193472254100221412528403009915959251526816948182694304731043176225487904403475020461976114589861273357542848059663251258668624864498730480046914098713079422279275430522169311367334417300153250453610118133415534462975738991274281836608719320103346806060411723439294675629656447238309443530717344365514461168745335400877941991475705848093758336417863329316648626149309168087825014579315275750027323296958631943274616905340789299814447062736791318323934765018503888355125856023203696543228378721370180683750629095684216561953176303421757268020169554529856187976027320220592671606083934082616752866199494663848906662120906951088172174340435995107834765896978616276089842074659714168096129320489844892209648437305547799306961670179079969187656974151575682936629145837453078122619506080113028912919680500886633236151769973199288997954011450418711299662133939823083742743281780770667262215920274945094773942869050265133493089635456234152087461305318250323973376922899671233831154872942125121463616498833812242804530365261180130361799633184899666216794821053762908431132135286360489323682685286582963621967775208513365355229562236121239637109658056906199491444585531174470520590199061420587033048970320629442443923607903604285429935564828800153309400348153180548382438745454867518244562716214760026987586320485982354139620879761468322903397993838981446211512267279741812516906143793563405236204375417303459855256136320796036996703718251943933410846513954845515104294472425258142084267921700086076636097852386508990660993792082140480260524992842866441553757973709414641566264825721609998984648883814307964064648810903451641791250101822717346530871184168358392739964299868650011475682104529619491598666649708159527397782251184271608179360655596143077737918404425334570242073746603950562882792033266662818325043392625571193328893691584499590528323471989510669669594746513692504956646218497141221891415537777391526531949972832484907862545853834843521218652973304132152367825184256808975150909248479712686930245552817359536559675280321705656103739956897889360226258039161100138620076018528500999508394013957550509300377876844028146141607797014833333253193585244884045181716234218340115319110314076843152723878824761941065419135568156967576511996162013538946575140421863838554514588628035271610463285912710113297379910882936012124051018887726884146320900999727396309733783323736273285354327359079179231113078190488088056175412255255427777307923498716482896754804677067050707160086668135635290343074386995914529620725410941555970494615412557452237150849166211177451648717725548471621509418665915127324462886467501856187895537623847946457550491107172123884302501384548812469557831276470042260658675224011418395758737462453783430570400937384577255286837761821258411099167585387757440981672012460351954733126911444712653870083974197233189961315892059599919187467758587903237546963749861345967061156602298602901647219910894801685555033236670931696185595797690606526283366143022436729027494028038943314996351489089529445449370345080580153990547020164303531598206965356839891503070741156532411972173677889991071609879339474569849758136262081257690548613476424284388180529913522808535250014157283774886989637565231650417295350157763144006123361461792765610720228238144742567522160675500564340303879051840164073535572029207314718846125600710255463390148768652964125526443701792454937754281315987023457380902803787274434778826594957987941248200314235944916779499301527753721206649074661000720950108055622367476426488828554762752071414759477178970260963195361371327088782971647111447398868177061018703389887650126204364823699998474120340282681589896536316437066161881071273888574177953537462735242896595541828673336235702003768667368164943989537918652053179750028507922810298867718589221127072660845642576155420880987421157580008610167764976912539729893161622688934739950925898160228089392121330614326657703767479314471083041578986342463278820920957307731238495825426739377674193639693027916020496802658277041548456088007259711006357874780247823241204005635862120988488595865637277865335186209580726626280942757526113047784204731932873442253677887113365769640937024782620396735966653807604904847733155963894631245204022937175504673686760546674542250081175707775909275042770339121079430099392182430022457919545084742923901246357096372272123011275563528769880666876408901152844789954899877898351977359693951403197061685206612950618009116720513944871469319868408505342449690532167345374863331295681261802410978384346286364629468104405958436866988390522332843772694674759871650762572865984220627496785440611406765548733562451657391613805207412787389632976719909671456397899006249862315816388699376360799959969466405611875327422843922380644298456872986790937618804849704507302597537845655631820006525907034278627387594763190153110286282029768257132900219823955952921529615659073833846097858070653335707018848983107664397244669139515598373161143994885884167075227232860035590509959275295566573816867578558993781893405382992134334935923282216646734150556790058147793334900937144445928526521219664074456241586966989481258744770256707200150959271408965549359412840214740263430865982268542487159409160343259213949576374082299294792215758533387608628753511530022788464590394790045824872408662635399005563754516451631907246884623066615994608460382687236426653781961128562368552100888302122244301985188169664832171826557912409089785087745984466560146461490336423931535837333511247815371041176740657688158298923993736787355663944575616316336592807437732237370593119811063503780592079580180779947536121026566325870183279682791438500610784559890023727425540149150228803312684634097146658129973044577941777567843577056516645867657981739667249647742276372542725394246572488375322157063013783792469052591943871478870940065931826114170216400141275991422793972876446673935732003451499548389679159327975601682808384113556122315487961095875011625156461472626433030515664755229491829656799417370822917992912291147388727246701750258913432202776698944106946867536714379465886482846946256279214356743085985195205509998548589584554938688149387656038532594943441169285578296384208075481772486186539391923513732294490754555804492059120284483781431880765978713509325551507620406438944358876610008676715005698536434232135689204569318913176284708274669411594417624089103503298299324410357966020356577923550557222859690447284973152113323733776261600915885602142441276794100053633973280523232846807725334629985240317171309494974302765541572410028842727075300826118342913642397222834740297177089643646008015641760182115964706879530869782584733664507220653470380060982280850980695932091136598304958462044707432533455758057351327401028317143683250888826052345306370725080331572440319471149440422939834125677935276322682556583001473339438542500141974333205320293319487088537897549369026424703960331581725663204426952694814166452154347079016816031140725647772451708111455245688860346511619323703924573708399596105885194028704602911886376591413822363746749819767653129730191363295873000973164622706280152853318522478742158741163254723179421668385665229626353992834980597020601458609626790635257653779881178957666132886865106264377526128658844245884953020171837001694404377151085963005768868773945515389879313541108847847993451704261149689031851874638175365833077389696306601045434150047616903595009036918665019796776216815304851784740719271383990046679450559734529676891741775360648228197773060384677500414315940520146147629734661043502348267803816983985788530153689954958662487031542815419657124631667178232338268054294373956473056934574791695205451803601620679018306156927907214808873237494697947834609865145133174383542413923286960724220553978955323646007028890461115065946524654363240873812951575148058134334369713271133796080457989391931324438741308433863101902936213666683028438725831715704119309825531366817767470693009850802507300747615553433405368268805689131026202212612112670139121410159102961011031473632411854136320426286684346976103144382964038453410234375809167731901707283529894775131010803606334465557621033319721688384759844330575243008434414705394115837887484590825990313126127134915773130867549529253064692339480285226534466527337494244422705029630839326743791896527872663742738401309292752631846989662059726911557262596501682649834537225019897755194951249642786432181964219833896397804916561980295442540652475414387012381928563311633023850330407162630455017477129199107413927808005700733756749407169827936399724653880625584785323552993971132602849956032908836974749618667629030365138919019954804680068899377459334288666691113691686584587643905697974597411848677343077565575741246650663087522188027341753598806438054609889388391981602978061815401047667380515309765888944089776230940194996692348971096771245175211857298915276621677719476019811747365848829287364594040714975875395110976055630420114343656314323117139577681493942858091980417886089699886639949744156045665809956887769773791021895392578070341219193557386367723319298716848381429004295255476985812953404973333745431191465279408786665262153700804201448113794984405561703421413787729585606936752670428827394872046894234311705692402687221540762872706118717541860074231239126749030703247784211788755190353175815558058908396059893024545348089394681009650476575801723412475720292091119077662609432478717783410853721469411270723327346116552197040420765555433688942841988710869485642096529057422903307378627892728482948391773471500268995863680770429716062554938748512429267311786604738255036727429370045048688485097609985236543019133351612681023869432814889524590582431348699568073730960181829940198455052416512968776655730239585472769906158972894132474111135421618407054499894001957103757926531408081183061473883608137669739050189493158800204773873047097446638987076602961790290509885903350206115685710661250458410574281354545826277882300832527975442420913657040870291120556220060740606443656684511580561727120330561199352527610160024560984929769306021532665239557384143506414570562883891121501926792670771658949378620906207159720503915138391450003548202084049253293827209291251926466643874533580783816677817096133192679808128382007507612598778172284157158309224758983912682251977987845753194453505120516503310672987342301469135098360519898371519382490065826679885167102757465236453731245796341862966146158471969128268031682925980947066651450875884375889567645724793225236346710126759375919473451548748020820609667345956301900164604310338278322763334382348812570292340810112660896751893124960470423716776521292897990377842425324306605893818027478266419926325153016193022806658182229686671259273015347946339252211055788901024111799989057948658362360861006610469451347263017309450678801575932607613001095544708237129216324742405970983117406321381527427532862345111550460094319074330933548107101778493821153065009254655430945406604490465631030175845792576691021080835996553666543191408436338452421114929265768478106129801067130955639672543869056699454633877003975239306159961840459111354427679576417541212815779144308356956620314180709541558985776076107079927581816524343249622278734856500066321198205471276292695130620373683560526932642674788270245975346371638690388610090615947085458265742824117437404586394636133594559774541942254974260991843505479536194576980462681274190678852741238024971326351862121529114023926119790278024476604711412599965669965387300024484817978105398449629458810052674263054844741544688378922126885595115234001124578955455297731795552558839797669958791566660178382369215405020113699303908597198919522152222382858698496574307606177316893758215035006450534759648698467821339660889328124786497308220817519258276896957688937005409875805034789473639436802107535466263320982424720035714111352350842379192106269457962526133595447830763043699184094302103109050110692397776080789259651794680652873985885818501665590764138082453974871239892656033792320961527147913055784473779544532124462754511807413632354708282556104903408442309024533364289365866426546957244550384323840477550895172306239298084214781335857149298250225140006876145220848754140535825457566191049221917548486410280450488217585363511047708340002335409487455142256705922629855834544709836220320737708806646262258717402751117463379454866936014791825874239643842118331741109817166144395649831155162100156215342868647336295694576967555524065116458510349234922158255358736266811553055166081380595163631097697530744267630229999151881161726747275333129961183766488937054164171895533679583009703388687713096248110333354411376114725158514778913900767592290217098661193220161798347824442785469758878146153622050616045571752829364213107317175343298199988836503105473280970549192006012941516420862240217910789325665281903148426904029628071514949882769619565958536844916962946973191676437647680753921037876550972269136461670887258755762646655848566632496459401820821706243669012565003572349343839752455377893588522356696503720466904705709609378940456794645246101045663434283215697355017189214440870866421703841968489760232526414353181175533296895036507839711448771717949207120965272082975835630498403614035649944923128294354356109764407062389087766067111734019466658036460736244076707633957795447483866393784462804095735371752058820694965883040037135346150600513738218014332612603471870904456673124320369164001091113070118670636755869576430560865669385554711936550872344384731982832197047915524270467736187700721844844703896764638788091650420892292458222400883288076723349422986410492774289006607832691978005498228193240303837186467476554747111528935203306785962709415664228647421380553654030147817347991456770027144751568978250096629361757240941640361765997065189974312650328539643598070119606209899152759552947667134567944905491705441634293572255778273121363804913469309561048042477711580598096617943068298103008269423240621323074953183494664858756830861499915734646548252591497133736437529857319685883464194467554889752177966369572425762825452538310242432752944692128929439140095715115059810330233099505090396720519660253290390741823918731162162683831338629888868627203538145692008652562245906328871635681743491551400918501333800239070294986824379685609340846026122265360351420410080198877866339669836500650901609878874732787760129441144106392234090392281534247989956544092871406648950987533172499759268363719678711494116814332704682238123944625887723487375864333808544113185403614750336026268644863765773983058293741043278844677673211010904367975385779816043529769079673001993177344879672420495272264011130894435592306700888471904122134788630596437997532371680759689215283283036778895596669406659772712511060568652304153211569971804639377456180792054509330485265869407211823634718703499601128329261815010736865586292656234148309693360958218507864066079466875168147270369816668726649175797985179087520193713317986855884769485162481820723009858791700358691926756612635475526120607853717221325923328616105926291084065473169730186930215479071187236015485398548936873742755286482035079367591412543416381969796497417793505515721705509870274149621800869164055141795381140910467849390792184013401439941057940225682909373389763223719089221953977301539090374503554177641080814496669029577267836400770504898321708316518247622776185751146116928292662054770111636204781652765613945376829309502647999848068293674756717655843900039156663147206371879892273160110104284556489521111160720575100848513578651468549741891052258455870296830853328445220105215511491966132713097152002029398608951610350352253980365067901583349797913212589544747674942400222219717483151359458924683168845755342883793275135573705753588199512585170628015452260068008590125774854293682541310595604392761806856771229697532979772516968884527709393830023400004084768323104331740665232682168388381443898623908554867881727219177765483123571257440057287189091042639480703905835395173003299718146145451008135070465658360761675361350779031280829527104720820774703626201617980284350035784317661413746238539885034457183534164584921920850629728107361069781239136452344771656541997129433670759195338518763055366346328657560671554096010196929631703358544658324366365140232704606047023654073486951342916944536366066302481998264766144943976693105853954443154103100947310931664446245795271764694294762418703895870283651480528267799925618268631901679270289916756435256407965243317350973899956596826350063348115614262758317747208791403260358781391653358887196263351881075527793105538242177540582155098492577282805026842195527845925867558427226443135798152337330600580980068561105251931784376083178194073540286556211019857410529608532326676079562566286344955608756036504821806463668953964864176871927682146068715834785630248347323061188988326580728953411960616522053663413889240968213328176371322504107831306108520248641575851161017690785021769623268338813771118132164487924616251730185979044411324986776162071252334086560087616046546308251369585470147317054396479131713464576712880934678008113267658530187171181140542564787801846502977544350344296433536571551262906261101652345213161307678880415328365512093563537045637773252714353093655126617420528902227564628047250106018993759938044203640925652406627491990611180026668387806796094197636871564617945856591459891052688934712831851601769682116543977058147741040690420587383407026046710325831216941601780859931717602250147563640915937769001080506117281295604998518577040396900598337328235443465410265692785863549953806416465322100739733034391238071642290198756351818086428470116692262400592212164234919648932490643412074089273290663489001968711719554129629351856429731996610308948478906742622387910121659315503983626124488730127251267029267735934088943066297623093205697009801031874723726109459980589689616472143827984233624608879603326692374652804704258874233249556909987041089349430910498325350306752101720231428684720817534582995490335496911925328771135729260290974538311837070019334042746390529084836156546202095100030660419428711960047465928359284343531223518655735564161592906151275068619710814001666870791722323069609146828776008602220681936028541761064094525325202834501219181825454282906695921362373104229456239487539975578434098487739629596307106557619389324227113290156881827315245973313878197204691732675742276052175139035610320927657069611310591751831767895430336878006685382836860153887961557334855620183667359441307839287566636881547985355382073337662776632194171234545822829718406913748722405836143477674467017868489771126819333679981594380914827118029389341808588198898596016819598252875343479714503947612235964846060990816952945779643697622368105184149472621832781325645363958894138887249159277513137080166517122885054337493468379779355523320533655325720077886773432224304848963521619250863849493056984596850470321262875358374801198894665945479811876717111270563053439913411273923075660975496600344230295014614117908222550111068129915364376681560743692413036302452357754228867272206550393745237070563984550977001856043648939109842764577771207787534995627869752548338987998756938405376971888721976851251236710781214333847059961244783374705566239883810083542919190872088908518064017609659016585700724683952200219799130800648207973364710943323723068493983646585416002825357798466440880327643140503061456732230796137152008000802769545672345180833634937232045348130319198499999279821009080994737665623222348741574867149013892012421953140584336885910922053843764002449981900091607104730650230304870401899900554212572953532184437806781423762747448463049327442744668369395537109915268888041376353764639273836516087678720958534828588157532861936423204803199654160946146853112910215054675301096902475544601869455832056190989482471127481806195226848113132249536108766448311263036612780362607643807339518167440409831483880622924882204043928319837770377711578135086660291386509621249631087825945284859029255964771255645584086818716630243397665745003076826930620505645302179150124389011910096278474675596263952808498714825528996002141303512243380110341470441297989763037764038652715959336617919903278277663671052144632009733081335080720225466315261587803421076243080443827191500461129604841967529533002557449974075259897430060779718147303896745619058853120061159624438202270590184353425307352092145054076267254050745411322371448364699949216439179281790079597715308215322637615445483926993183480788029984136919421870300030284733063355862188676941391093087384097431969861037485879269302114566259434052506693420479853247572276643548617224674970976500147573475209429890241237018534161102176632264152875124266373304224151053241019061111078442356174707766592681020879148178888609537979871185314530552323846597135410131809563767109985638176865996953859358778164715494822640845190261143388711613662287550680487605639248863654286905609045701280883202417944445642271952638480829373710482260513692503732714190487212704228930456909239141996348861211429376054269546744657351396023811555692605244530858672468784718741801696656443729112362149985762589839175402576091763793127621842670633024352270597693026966533502141174063470372927168456593862722402919665643996004508823552641447775855738062285593249510233885693318317153411615750489571554809063643350784894823846564991161624241884053899236872775147431277724434716597561377838511767088702418180270337982838759359530170299173355017062954971966619895886205659689277309660318346230532120878784085133569748971091058133770924341289742936771644695595855358942861019375126289496002786410234954129434057524665912221664469226197866315183464912404133728604105107350180854678818613035739731318064686816418624356250044760014533541868661734081684025810163231593729984230535209307428657196068461238055782291297037918093572611522924192838005460345635620970726199565931280366012929665790900172589495518455771195248070231928963665946615776062721056795213814646684649867931399613387948324810476659018092171502031055719493126703146498286136683606305213201660802180817278259212469116773624806022384786958721131740781150191102765747975169337197424555874625741434762883345777633869582605212240240944342812738902339367033479402146034085007217611676960681596703378439177855212391190110034482392693792465557787263374197786258111201009826314161295852593392563120488821510002591062047823203486346595183217503157010007466703620810994061134462791948158996870852670591007797490724943218138773857227199956617001962428884857576781892979274933994413242655827248625504961422302669380720485234649627304183926285104371400807179213980132462478356508614649527721007327950983208427940103130958204745090005279262594744768419394204772405694178403060114037113954468677048882878776667733315902195224543518004808326615928130529091339989215286628944413999914534951020558160110584748656922821059088699929300813443162786400502777708493720047038634816888987292687874380598530898213497797098391628881112954463434749390565806893752939153869811686694234702623593615373400349786850529073061450748433152240303552938922085845640748536182265254281251818696225688065910045211305594455573854701913989816149902524741248485775177971475956324830837073875525473025761652305454292667263630120820309168512651859802062154295911461956418621443384296583593667840950159913797875574713076110393154236397750713757363285717005986468592825875912383549135001870065118329029627213470872849883641002665421968495889667336819001771506067930110126936905959780187156501186784045761328996527986350405762164260463890935495149040220845575715131009751285964797528992831943185104032374827867967605538759919807884018237259861829389634820742983059268365573909497494412042126351833245070689124443688464592834837473084256003574820713635723189604294793247081065093772345014645999754798864667909030726082335388046874204933598861232687747653836171902040925891759792659199250423339066052775004421239375792751534021642400683409298433737389875457906692810473398682350622237734069883324700380421208964875309241723824279810566279068209899875831297057001834280269223565763811564614119403732398802548171323908380666370638529975751446594503714205286779705568225740352139129406045017879232400192766538021851623482139960644356106451063080027781402978206680615125048278418586883162234029679789381260067799937705820869799713433417325566300551038057517645787648843005877263990822463513258288045322603126854537534996068978303681673574967775982186596932125996059000361675808684551607069683647815285051471918214425644249873717740792450853727026057238252522756632534020192060118797713971787689577625588828474658732008328347935712190840323523711876334923161560259763761670412475640774619725720801982246240877515782800815448034036302151027305226268688353460850535195464467247662583681699147277431539482962265732029836239477345512067530282723457368016082292622469442817522994787475342963462294655109685813182606988885870162463829590734860709292917228526566096408856312531010776317235940556751555014695550812378391961946782102988796138984909591571621679760373038794254296554521329639075734500853837303848703769722214849463802545037148843223973797668887239672701929585157286548133068161869218668797843228274540249904087283335050417351594040663382076459059604387697843468754925233461439541720649952410411175068929262381946724266205960650846154851945392385063907675401975478874841573461014375818657250600094320301348871683057945317364242754866227313735306185683377090615327652981959866325738094396326831161459136022847255798904620086755361350569102174420504348533846921162774710854131545769544527730085431870340825868380190654909707604544855878063606633141415043074089190433654394317125109245265981846785611514617179318648835669616052829014845092212036524594193624859375106225075678049232991127374393980459739354736589388734633565035907132565589811601560442710151929772644073689382919348852775432577338056485759358279950193315777181502352394270138657906223585608610518983108224701389963900043421176712904352365783005180910912161806515641337232031007177046333144725040048375130951059946415431737031493011524113282128300210402609584218139938757992930725387665177088347023029964601695271521537521301069317773216537232301340381101239848339379321148305181213825841796736666488993116601222447548424208693199638211190649739763358411198780507632906998196267678850473856882654516224358960265307225224416989999121310935711625291590756815036330407041370959856314721746454773137696097254398129431971546585533452042753424629669292344826581190146282877815618166381532853781648378155433444801503058975529837375722374452054191326243682461718976926017820701738084324189613180046376129804213539263283615714816439865245397822868960781950809987616708395925800342453847358117828014803862795254636299409258948280264026215198227645370196885116380507078562090971927556800057531768167982165641094916230891223457525170756489511669292953957113672785676721258031800713208236603513032464612100427732405676849504840899961704569346338998314472319942726255305236888475681510565622739010505660709315869611479336995811683939114770873649403287913795018829223866444801324231660791755782548378647152443942969094974891259090011485874579612608170601421700752664427895555428648684590625003942032848648816007303642672310267461353849713599151377199488735895454233709713683590625641464513115438320085886550807781735321697183038829536794212469029162130074356167172599973916441014294750004580588706338424443333166379962700096204946095179682422501759947416795061058071695259110895239442889259744238119724111821927267988046675022116319785964038515571897609348828646814278548850343198015711031999180283769268422254668243708095036968163893787868515836981349064320332332216226703915095651591652957840595738718201300272674418325181569297634189416092180837656651821024155933429377177822211844563294491039965599632653753459811529562420261582612339268250842679945807383136247574892811133338814728950495403203946416783448514435993162672665743987588136560863021357297517687526977438645929761614209238017604010683182119937053969908615192548502484234931534314915877673845475708584768363543368268598149247701957404096054026720072186698058996787999251985003157873696934330608822998502095933779088748034169006450281335715362164782045948670556860381882754826313508267864377629225681630543065192197166556524908333363396986053014538190864446129687839537905700686359366595407946148697824582449162174876007742308473179010168310126367894202251472764733589181479309309291767865839669188383778622240864349105067395226159648566025456869088941552820754868898585222566360156377517877609955355687941528099990633310452780971592331361826989987626163711554413652494098125789732456696234850464380826198451673960200442585339417702615730166527537598535287539505874841102003714325133291162552316966813320727596501600733459671650213377241435585332226246443639054590805357766619043344378529242770769523611401618581612194601351540093703393054277427923119477929269002361938917769698153299465137222566081033217487266314687789320548164496157099551071821528561771149600781136711432771003199012353491543995202466765511051536616341189835774191611770276661113783634273743856361410862190085909158769771366154007871247934258304049379953728308155956383357728361744560695024409840701256328892459064471505229290860936934121714646986070457662237467463834275481689851052888840585585876107422996776806321589128750600092491861827637213882240250365070795483312725063117789818077878400261978859256195567586686666261703388596087296969099082862223646270325038163187193285502279296682404815766083771157237706671293030410191288891533978502575858840330675589814497712075168501094782278271351616321895497587581019477567416929584601552669683099172629545581770447928406130503123623998106075274537233477505445250997446572444612956857785988131791610651533767654056630093542834447627896400348859559052411735352459007736965376969256321097805602438124201152312761618235112345870853000971734849949383508324058296381783713321955745975419762508238413782924541538641488381969265246844876409940963564846857757970714861618960221500025205988666681713070363044954888720160123805324397871616679886475107270510915567535347876152398239087163017781936579405644277450093731225096688551470124295696479787828624088640169841248417599417439524745757275772569028923505738534229607738766411753170324493686223117014223691840458389181814397103943610454706989271577169354957486273966947296929657892157886144573397690649773401513035766591553167885385249060346102270109913110214272772406855108315665587068913307447890194530721857380809474856751979809422805168547056374797596126799232938634724378939935060071780871904762933740554904661917503988913022177485174245811256842260559210878719222889088092773455186922954338683615637185170049245540760324389489940738458515600130944875515179354298821468331772473825994525269520997857373124490004938234079114904224487615967396550118814400382242301600038031248586992113642081498153124775759172869285385450134014285977068000034088894011688130276133602318098088432578211658833865093971790163441424445880366638832395049316039525599720049496389197972410302344958016976943397654781148921503637285865759459835045751944300446529460153728629342101777580871132277533018632718606578787785043006326885371314442697856240403569877765711508671293269628392738220591840707533672841201206832963970835611285886179970286159477981626206577899217769474316471627618388986068438075257849245655137796177142657173642316001669876894843545734702520283054172010360343623131302150938886252383389387022033735092143078548235058344375877692917030296808129947610477387470251872120322426362126069894273096187329097575602631997979380819350579340371127192863254284770025508389045470000830165840884809497349776438721520851421424122532852533308786648979788010537024095356412031746807123630163093660600280786873576548654598858675681353142594092639015966781011353081513258871184978792844210835085312130202714733602089670445640904351553417041491065144924177911430735757875790957212945366083149022909915814532954446592356160368774587592865802267459580216872232985009794429333234538230992475124730243558246943438844183203282765644093453676584190962828720347090651706611521625874139411567544244080697288368860156655522006955739222602926676342117444908064634683050553680920745400211250737647812603658606250797730876441651519718840110240014705674836237970459334399886264551276433949594239201146881890434371900429483500401212088804466562179759699063351993587378262231770164629340679622063720082045461939232433789996841307780888977546545755001586103841060446458800675299522804769113974077140887333969746642229035252713588285067628959973094128874880146543468615073024928522700013054898765630790117595762848680230171563710437613519089956629911543861833044160208565323862148252204394938733666547928917623834305785890629642942078255673395408997646367257746229268380037344324218581467596887896145729185214540097296021664701346605937607349626755745639806561028439670655453917294724043067716464455991394357744790734086613039315984741474101850305401285673570321760477848981522795751623268861244614519816282933874561464379738418304087376572253970242254918829815472758353075099878048691418332284191902111876025333186085251364544650318110523952272320576805219380350193041108990244361525531034606818358446218683013878067878032203766316792632177339598217956095688962031635638073774678770672688345132730255458670285400893209928304623148316395704875325358832131170686266485056090297576358559285261350869175680478000485511290741199971916715790144394837272594122698294168989416655408471516566517095972728789830031262796586573857372925499545171842791377587583591070147386071863228813143330384651397825107268252137194068031460860773402123038774386530238174779886389907859552743510975773612755042130130853507547685391595569651538054415418452593596367814676006657674990393364797096839094492126160503786094079187168027534092123329991120842643783629632371225114971140766737243011477444593504616340574269330041992180529721950553078369579026777208155527577292982643995086032077945297110979669741880396925149632153293885823201703326005221359265926697852322479305964635458241684162668625041909385573493122249105731895391765672805404803722059675442686808621377959178264583804917890249770509657727259695331936990440422718952183033598132022824880082322522422870370798785321379948542477968192101736357384952254675626989297064932516004382858755625800401833587393273821188601021367468259208794661475856361445224255361794098449655963906374331514119494836760335326914885414830846071364014351155211217642503835972233309987965706289570524300429812083943896595916506821603254800610310479306581864206134485330538861862746421884893618292561780026289050654753840374348699547075695588763835379517098557503387049968356325981807717664028584746263940080176469987072033274603602446767184361338829460595035996961123957045493794645021795247640184780165163663401591422209696863618846210204381398148476358054774972972665406792645830251050111938991938209638708233628706452266648658779042331718723113914750344921795536418980736114494035805299559906259973843361678428356560974349090023996797405933455590548649646852612662455830694871094172722161041041904732087602025822640410001004293811215607335576894718881430449886016967956773094781398137682376038865577690449644149671166681394523725645699219263509139755011356158973726110373851802682284217482195970202693938620628521465810639499901078868556152256112414480160489634401470610053968897548968360643387083168929551860014560325134825895830277794560463691325289611916915793205727031768575233120511290270493956619063350497980448061453562530791764551417294914183163525314819028198376086000535531122132486636766041961569699780720417174026015194839290237832469894497054728362412931480649223291993331050154021838434024433946921189026376163312343856037913312849493088728098078438896632943215202969249403582687504964363772471199125995313910630450549294423679639835340841857498295383114612558628425322470182075220099127003075099170069633495592296146577621118232174179252693906133670313003361363932896638129190797572886856187769218091794846385209235673724157601413161832315473950172534828363528273152890029802198291338308454509692264313573808231370197352380976770048878785920692784651465987122289978102762758553184276401509663800866969505903296315880128121471257028848615122882719215631376268203813768192511941212073386033612563993285673741106791461115787369620371265375533374975269373635927179832883151168129075359954305270568131771415561039510689477490507985334148842593932045101251238734115558850577456460384477561806181274578199021915506848621221752971636149546703076889513363049860127303535413951556665353337972572745464173382519620050749494114726289663512565417638138795087018866701409240052265091362318118193864214799003429039474749114967654114309131162645408937203389248785131546663890164268274995462832618939676610163786410886794371875299023069826582956002624565155161624179244718570189644641492980657871644058814340405058852499843368042524709787472326571636123498221813224932680831302473483025896380080332979152335516142689349257195369419670689588246574907329296435569488203418670364204584226973150950765011765586493671448554434039896337119414181221095148178728897906270688782985589946934810140363406379594199632721830168534312119929949284033622138458522411898637936968690845214475438744493238246242373829070123290484857691681433613979992246460371246873820067536686808067386863842064932525634439010001327319730209768721597977148220619363438361851564284365659252603324792561896423587651606968950194424579794156981964196032666017735946639449677782894775747698183581123299885921414747882709366916793598988337557806573586829606149232090897795165459610532264540786894050043465071752892009685563276122217001192898936741450719448324467956503778139500391859781223773441222193858330896955676602994029743630084634032761070759106451350328861042784172375411054631174780773744955094545059329849052785965509724795481281682348092983502385613828474535622236450161546575370466823761437226824757669922379432579820340516244932967848078306198427506968902199340122249380222599837950323970278816752767272294533746904687850635490818074149334080072667324914191151134679144229290793949855518933496661803614417519011989251203355947980029355451009507877220636598709045159162747303148655782676419289050690961339545472110484105743190578236782015072778067401703105476888511391045311742705090000101629664364904911408335295958554524037062569665151427086181989996974840032566619523054497892534447170336054756853791369486951960343164878491993796471107759494540941685748557995530750167048663161235963753109097090029467536605480029694118137585513903271771550095026010874329070757838751569212190179765856890258540483013162098738493618939050820029458768383292931706822989052153856753934612169791638805229969998154167331180637577257390096949368292584311383953020162711115754723608955887285581253429015430215066970757663072041808893929229223036330188167654631237203879973976584558607929171694919841753137350205585188636215593269046958443536061627482736322483872365592629399280691084192518211466592480529907593988222298247176436142864914024299983587323480120508927348444421433384471584967195720797811085367862694694321819366112237914077448371566084131045890031521003776027083564671223841337834850747753931633679716523275109823395068237142321708816132879980266573525143554280435996308046248394224426473950855787371836831873939070395689031308656683035407885342037704516865963749157399583349041930543868588495789077615905783815720911434056899183415546253000510085647663174457636135782476228589282459877671058139828559617392644536634743913854134494352861420990545707464810445853447735666876700659741939201503726126699539675382304561623238006988453090403270001508946896550603607258357721475307758045883507071734566378766494980882662489119537490474035022860221943378114151261145527428817719471401497934161240929208476058389028811485646620120121993956521027809850556147311282271859591802811367874051913739663502992011112385972807194360981139478010048391968131342970170178068980103414299843639749210092412701467150692535646084261904357270090489706761535148408788674649394385831254702843507183610857934927582793377338987191788122077445475527780572024656606413836507668103995827338343896271222159564473192510305529738471415774886330490246601706028141286432068630689170598862636326796128794330013873460266147995715788750649197847871607428766096868859751873147600214752978119902698218134779056396796451827156820547142027027283461743836229117309760300322019740278976106621452693200858455727510960136216561970762557674818857186097399081216841630403531238965848469460796533985536603887695626271556192954790764966159275836333681671652569915131799601728354308918178012692553147625707821096182032180388553291977533437616362774541310069725115456828059385868044243645236409041228211660895481869550503061687978910231650524298683517738571164598915532276330100066079040762615147806448179026672205604586009352589789114786689054689770122871102169290418998057531232423713062565073358836336067114423584469142950406934557877593562975273473535595260796338136366913773493470364645777338188235370773987881140749403130801670452960144224995618182402076598030218550830924252075282425319480478489929734281934199456308893597852492108898703730359244741839294526645416185528672238210152674290315246107536929417206782876168945842406782621540808734837051207239651469481479876645422673473687399698069889711763836990365086814573062573297734545030560714987328276145037743906752261173408597683260139056246996476192608052282657534494551324717881926630196101546645155646620762363362067065151019081690821843258161854533134125641146514126926490281805915856920395634155270262962223152432181624696257307828911494345069299338141029245667200392039742064511235595609897189237851644073567625057512694369743001733446285569341206052222171284337922021993283084761147610549346217070333124380496499036364006297035741123620424731491856661756407123582827902369504235758518739755759571520557069442667219875399215029821938324395670646148329528518405781455958498088161036537260351936866567638946191482659792591719382885662354541937342008326962572096465592674938550984124241475417583696944795199067955654525395570432925585185570495732592197159303547673646955966287803230792995205146144297605369708155703215864076637511412965205551234147389434827187436581212570702750500675390929037920578979900692081230366539343114712578985074208924748168887330479255057419810191142779004135063818131047957490795013661363128005953742342256063796883767353507658473588564641157169356208275964587052557107145919697648280211969901336434171351753410846961311929162843927967306579193817451529559359701294485897609348578362303845970027996178117446219251476773620474625268400768835370389907979600991685596083202188928484301794573567549488358802820902239932979570604130096551768630733541702490826838583336242207042849683834166499465306868920071369273872947131006046080485668901180710212686479205268043071331891013721878193248149393501369880809618855995613188999425498304090846115089192121798197704624437635341363825157867787958390430749702610117495574065473850270732316190262111081600131145169490152760227386331205051649330604736161876661753436583638713783517534855475440530685983811208583308603957658085330862816859866616115545956418188992022009374760547195677023401853413668842131074620865254686147638550198455080060137023028205126986272775257860648054527745511808586771199761883567711177438994807989271344294766441752494302728396380464352756830342428454078660140628255741389641057241534543028884849587632825802834045289450202710364023170206573501525104221456963166938852686373075858289645563437341693898903877396798810991331454705424856175821166457308550860333423848415300117242767477335908042826345664244562564209596248041291884399661749051948963236519818368090876225240016852324990956402916711175369719534971543792798688341754136041859503412728630690466733122219427398740793216508696907820365287456814391981190700732809961306165587311600149267236045120436174648764502264570674479122064249701654708186701625030985020863649779786666525792085451083394857282768247809397681865022335332537912786494782437234163267215130147795811863291485455508547173783807353722381327646985673535593578322261166661826702502193453046563665318158597800434081968008782124360190027597029595255549452977816472439885119625346553746502526038641873154706742400948560565776837115811994551196864907779002723913523635788739363672206545894609560024790047576292072205796429410696227238046426412171349947050320810301431359245489444948227769596121729341677118725500886729537413680337619502971405824608087021815955396396882230084228482469050864811607282882740645974216589339339480515880733932501170794773905281241242183056649338459547070562101715538562818566520215743792076540964001099666408053115135872349800270913352201502794023051084852795200205816510552219167804385565620955385584972457134882491240046472970801826455731838252945478369746678118364805828800288415575934534008949241616038089585843812956281691850224035515425434719360330153180441827110010945046710254366059558579342469467408644526529835721662223202094121548963222529615766593202239290179912296435122845436042823061926458965044473445136027398995537970009668802008056410522575554922288308958055084499449234054015622696107441612902486417360820217448161782737470501168887352094769783539307813703935381354497449047283100807335689084518540052781116907911241580334030526889888128080132771463467454387392583815687635727927961794161813319276972850051433209345344885822847416487444318713204261593636825108964236094874996763126840352730140756137580784059089230260414734849312927967998986290292757540925489808067469867510256037743991480287180526051744230832017108886198209025251788651153152605652840006261540760408987373054318582821134027818663865309666327138711299835922331055725059529497687100937690114643784220185080122171839821029575384566555786029743012373356107532223415998760376431265887639754885566597257337104621819056232971597780822374370276561113083268815636322839521116380126444984674078091197363903184542829594228390866359122538010163598852998236040827090699708665392074949163298086279384672726155548776734579809438725365944033708654125773849676313751115631383024435797378142041759474556125494401436124191057184448161777198742606105327776064145583406457530239329672891502777229765560576071051426747588302717228577108027510609124118909287741475150695261730892697200635138826647664127753662639158452908130637104035561618347260743978046187494557806858935834485898542911138046929511820199743291018123621268011150661499400638339653450994297859328471871843293529532219139789837729939874107948592111116423372995297816623504624294124242797328236460292803524630177566757146675046364967615503326197007311386169684154351663577697441520563992818882898319117172574896139158086223444004119609822530281154314673464627961438983708014705772058408990523897441189527089869164400485315642035247078540802387491677505778560909739998662684618706322940162048986917652777139463306262211250784585046139210752611991664902682240665187188835996881442183051038880146238785464726531552600876058726279130419527426243263175506446015143199474076633238339227114379159187815028406749291891319205134797569004769411198837314179318866027858270680386460628989235066517051650438477099314523357026623779070656985070691837109131211148894509308810390426691554164357559574382178419704811045819751910568493705958739075805420148867876740643018312216398882461388315160309972533284063713635547074895966624292512174161669305717224464075209616710485943827715251035130822404409571123774481682216295477508197325519966588846214808711662109571950415374067008701430937426715839043798841052633380463960356976067700987110344585247801601423454070298883173727822143742588458054321998998198038241665640649718672950686121298039182294498609534584837938891706452298172425807155527198086138297105503182399134559428135587319017454749525029898729489488584993673602508561149139960774666632334614530163441660743117718229451396975662992204339292504308762729401213851136424380816100490480953778803179556387527570142327919098822619366685116158056737699421305435226326020978491127951779494378144106728515984526019393364469141945965605699466405041051846869276271724453074762048290638811571732621535482010703485749942905824643331900962003631934758943556914850329678937352156885648662776609768575716672685800393104149762597653195231611254611379025836821446589270880858815898774564387747095669504068856560403918015558036589913822552063219817065443384257957266527275407975611598625970724010765291665682170232427316875829459096565063299939520984850147698818224409971745990042655941317701033201267191050702320248119512730419115364611864832535807726566803887566439823887651225699941423072609942082895054800763150177578745951233968378127188025825532175334918320867971346279853893514168197477980287803382897903564556757014269392401640332044004885933519672158449189472536640160778328336404122314784375521257368632100093088342448909821292715695376434520417910255697244205078620457505694777978593633226925182594620293394006144891539930772510003025948900095338189556531289893786166209628453345926924896550838263908760490984468049591394089440297000004310223914672007768092529912320556392573045151117039101407173306374305617539959116126672589273296794419459089751423398109107165054514292594428220537986833791167920361510978318278230608345826854798989147506120421154644284651035300592728871206741512786529688905648636169100426572622301816279767904919866956509484606872152878863142274540467041454202448388665995516190893965588786887305848658508455148130862773483582172234052360307884629356593579775838961493685840898274271848608621994816478374747616117899872471850448033526256389982724182076290639799128916154818797544893243322162541261652310111909058137987117306841884695083497434843817821749426963046988002286914926300435437096410340456085680820523493172972642855656035352154332922437475220821065764452393757160178129092967570822768121813974490895254777980256668164587487856527403540886948344547538250665450695038134898530015365071412987611039722410620738275432211474872569586987905884790597727317062192301760048326913309049648252267951684377739808753198627295423418799577512335675678620008517758727043460313057791948506876205287949718523020497956077047746880415673493260498472478293663024873861447711375576894102831598615603428230058656269196417300823545694432740083305994248080876134193326396476184549323660937845902678541411589134326895816908744922906843899030781114177954002469036750646548276146333464130988035973549444441701720555053745025762158423920929601577713282630401125327255130976538292063583959139995943143378101295503488150754354392575395074066030535473502486524487999012701046461212110797869843734984398160126192633768528521123882708568795602737863070258539631196828076883932908581739039504263730841391729933188156955090121383513323361140131734458276186749350681158305156648710326543972999425881767358885225685453380693872089806845608901765826528785409016994767560532958658085776260289371160590865572667325679070820874559973115546997330731765339571175043002980800537721871231100666560562507217407752094255900681247691933750372083796050546134002565461505592899945874256756591828298651024449890295757319055106258173092704874379690003065905651926254502887324225787065794495916603915527620220657131077331442186541390358923307627460095247606770598919297008342037585705667619004834697092627863985575684344369974845850375601780637865199995851477169619276712239365268394415151392375590690561468039572068743163747815932687642668727186577090996716877781834199811378129889848795338024966887310669419861005356998333492325380135499860307579540067314098848405976050682257073591553260661931676607497048726198184567284542570382588524535753222535820274248896749488528618070178978069614101338234256708428925751897845115483593713054093527640195025148606938049163518417414722581657744415178321225851473731834187343864070351428951447983313475364324651422658569490742787514580803237861242656141782730807017520858530595892226586939163535144158791815017203335188351560131366670108563828906780055503922379262662929252518329399743322126675734483888396868491490193506935119323233950663323002057831800449202525162961557781042622719690637623826650239220971289103506743908358289684202878833367793579201701035394318156562261550561793384281045986928221720321421576021214397337894178080977161165929504082912322087588842226902399501013106824938873197674895188131441328348918256494396252825526830306472399968565163940792478842748475118645618291165921972417128884953279064766195819479511547328945230067677048175947767154882208876180691512465578103521544270565285765921265179412185234531566916628471617124326101298196021679793296515313100610378143471524285527510138636088125075283664942734550032474127954684122685341493558535583843721882712448423552708625434776677013509225911940839898611462339203752383045535681368596606492272216706322858928645134602226169956217677573561998845649143039110979029830665094039575053514764954647972342391185281662903482393402913264750885143731738090117756730310286127564328351443632319624437810401685765788636390899420692888911227571137124166944338304040009030647853905441705214815142810405237700839599301569460855144833769785625445168112782196909513834653447390752169914875902432002763528659644875249003885966143526899184888158306126564586483023083853274508902353701714776423880378723836630143488131009389748271592426711813197846791685309236644408396323738333286741065225473915517706942410695712622740564351421545116569682129054154406418631215338037365402886402592037038486745683730721125893594976232386932180865829555663858988959092333114817566107019616651929444568405470927869031308401595670951292149294416217191604140608037095397044562316894655041039860248265588594638792523722982184333753669211258154140973089089472283286595415946608892734013959593239202932629672429286393702833704089722108099362101074172330506969694452472861970273932265240187709130902635706860069423913492537247249508037587498124876279176428099490525122605185782334525049215017424707410302870944208203292118000346025778999764739879490531168132173979378871236238608694041065677824219492755293614770172039352202057872006380879025509256403379503151412370815593828864997693099868230271874355520802307085218928817237603500175391437973421133047228220789016794657309700485586487685467446840950307941486507781350260318132608169906820293049609265127982998622987516217176346472709966542856731570003459269472966243160682840329217224631978394500168754794662953377834612079410875637931211531098044328461159438088428528700947774948347158545775118114923801851438950704002973482570989142724532151713341895802813070283566404097340472035936520056394855084090623128168950699782887124150250738309085972076002108196594636585383561100300594751154021406710540855449471798192510822911165370102753609377472733754379888982148930596352073056420915115685925439904443163721545697156508743759785644289068357789227404917128147660658876412187010653881329248976105113434382340452953411910982269733057854376929475449737015296222285345521202926508383505278441587431809264284334233142378033386935473429194910547475074471895168163220408821553137063719440190711416990980639451254103852539695751528402083695759247598175328087034986642444983280494985229651142809713608468668839788354616065501317143292512483150083821240329569935483370857862383721825145637190229921913846359023520510234662505919048629282032259325707878604310329806899496219578209564147081114730367619360313909346499382246334720410276134970519193708012173536986299249077213076006652358793890553704502022291196484016151181652234874818024364745732834640274125271772362097564785666844839852639618511705050420458889479639278283879516012200547985123967946663539420166658721706576171118483402404246515437022833826588870500738660140172441600528378823194126034122155355057770841170837407125009371786440334912210281977991523874537979961357578164513100681289729825308842486501392050753929277436877207875078253037754004995419773081940210354604465365752000224810650465486630855927166261344210791369567413864296268533928997451821645624142271379426862637861849285175250189096960380180601993346142707067281002521270954552203883614236545452961438327911291197752658452681912561842673835446731995615989125453659926697940052150578804998604912840053244037170579103824820197266800123451419312708668898367502517748046303788034438515675927274628671038673207469534269141924172306323412988076844281605883467933511928928229610131484267096097627165353622095361716665717360508571397576778474321499157992246394843665737890507397656109248811655481437308163699714646912097459042045659097333779671666350063751974401791946641586811465035145168667041024358227603259587990905065288696094145836825760363322605636957132905675278549127062506233994731159961082001674047547899319811573963827959828488262404366762811977940586762229112725030769482838350013238053893265654312448440578373571284048111345954741284553152597985206087705420393114730682162347199577327727526033644398507885617703555666980850748593540982209081566237179920066844142134081926207338302913525918890958769168162187165071339265917499137023398138567397607679783363199878547085771088758654901725436054765566098511514598384313651560526904043235137340769213836402564174915567964096494045460399708353839097313392809610870392782736109529410010962104270658490090122871633783479649573570933511344575205349935302248336877076066581974755286580158233638939975235889311572359038122386573842308743762317974160097855448174639271261119244984585127118345201912418405451533079550422531251443329695776623520234088447910290312135805949511717113957608104343557215860082414346916666986597221809981949097267617330066873686846297335242700246926696564513347094065827929760992198685580816141824994406553500657354698422102023596139660933789861876130015812152108375955694290589125064792558024213481678423144935703498169423728975655885430070087877242605951965346081563058100352442965235370107068540971964206152607443272127408065826720383937120667993461035263664775174564583098284803167534807197459531532162765552219528402594708486459168919086126525869911820769473728408133450075728809367065696642120835979225892823549388910167686805470802130429751955302767409550723324549384545336779213774030899095820830595138576116492287272651002501801660299934293925302503358719372150041346384523182372275411232355135582638188848079932376217528395986165157436215674507855916789120505345909589915622034760672672678738397957934618982929919207852019497839897083149436961000698050250385336082630731398634555871645320389899372234480752577463315630874953955558677121378424247461231880662244741070983250953429417352102359643115499170583627213377188547452455376621027265033413618657292045328095267089368808598547782367602666084486705955342904514394619418563830799696951735466263307561796440941502477782886565845970282920620224009729794363520220881988022692179671953171651651100781979611596077728059882329218772905265032351808269958060671423900003800439920288270359747534830800375535480607611797868517137316393720622234171529845634284182093911559695619650381861430593705326148338817726728511212235799998233993473746481954514914840444265056651405002105148034396041280245711774535685007756405863792363446878632941744793548531375726725173732575911207415529118905311284010304584205206827179527810402172816898563862702822272249491620292334007717761980559102131790004037373067387978552809634156517011461497156025690394493880448381089023337318345174987683618367190458565904861918225079028749115554229791727192793072104963042422900390086590308904483920955512437662915463344338019088527823978380014181491808982422727773659239703697510460653516278587491423966460957749130457546330982202565862122822892732357146859933782629722040634782615645116909539846695354941293478259221496988712768641102341192087529187667969460594936637981055302977592521886700432254676903713282164332691693737501264514093457944904057972840841640722055930401524531243022699657432635684942313969369922405888132380127509838102353431225204861234953310118494991807686470401877484635891670007148792579082369588508301071040939972292933737877283802864337031851641861603334194036535960260027662591312653819664180571111099578097491808894686562747000046461456906735845244035560806710968579144821616501848085125103799890167647568654163688040642207674696713574675807422858448283795014983115549675935790967509283976521042909361127785420726643878726518508373300180038145135220292129467403370081873446460951432635056332515455345304457957047770101601159546626299765390265285362886961174045395652271658500013903779285113164059072984338660210844104328503290968098649418204052053212571574122474388535911697578118516038146300336298297557427720732903898349399309928999488509919017711740326308354719418249903613721305936208450288551941911050947064409909845456072055020298981826804152187660581346324632701324033281410042184930615242701642841950395238073346098575823333164412122005724272383020344020185276442669029332195452583395084006077508051753226969223154390877705699910211044038678331686017474586906576858287981954298216906281888915065661150831723291690977796747201294302129105465105135037941470547399562785091650454779203702911231216845750609326642590535630719759189903958127642094199468737098595253503378097773704559932385489035845361270338981969326312013103163196773357821553516854784326820604113755619487028376515562398905917655116586961881280561369314150300600231996019823811013832087088340699650886760937392762095117161890808425276687674361384490650199273681746974875156577447752392854456296864336827021471225395565639061265533617173484588224051170038247126407594776021778507859017013537997798127266275217700932867725033529713696265187446603161931761149427158530685741775890574011966428556356694000290133815886251171500147245192307850160361941962971500808950215030155577098204768958739367476842609024339350550201485617361475530512584723540352754698833736159917830725946433633109795296601255873190770542760586319374233216061061955976277171718446922975919299051855974583679614852069926118079862630603825216017505595459491046721232099381005429032581084815070800196377729487332456937638845865299958037850176420688569811993699573743950961529279864362863672549091828201647403314144142727539507757396803698965706847664885484884892884273660183769182882562530734786432387784782423106418548142701771672241397021667288360042805948697143438271193092258573708907495400846900725826263872639197708320828603235496018779584891472609152563583818687755723091715531454826201223849972942878373191395259562466681480324377246594442139294772832430121127507121764851705110484090779563345683232044693722567687139849675504503004055896430109215510726684738944332300285744584005426397711532554687010692194312626876409141043619430803645663115165312080378887954011143494098581081772456586606461909441581160930548383435706759773984339389153347198819569462085972790409244313767208476056289514067230637430083613516725064489541912996816753029930036202448946985219126001715062338507315639304443110865273213928157587939010086946506893628190088729264782389227483301604879938352077270206068463787666339318193346602455981243261150732799209474411175399906981769511895985367364522269778060310941341232222526540917476309508278122936502347591370384473451416543147514583923497815138791622238720343012686275305892887644623996318716259859683480607823126327872465052451014439089079477976123235648210369239369166984758454440649832289336685526523065112954260962597326505175622916287602582100097412058046876223444352394724153967806285007821565341376719189260229752388890717491617531809354385197591343884060090777256137630479268023377972904786425888080309294135765733261062618250366114570197182849056735795221456330095554816027171636665856334691759766142604122085803212301855013740562360766626287373694444498127075825890486755933810960884967690363273152970093366189475553730715112457121218881132310224841475635618584881008291813249083325701097591807308210731307310610120102390708360651367271967632500889505658223543095010383709461502751674013950136495239340586932501649344531799485927120985283685904626594218749495467609862261313148245644795853081252766513593932559129894972333430842235787250487309759816913061977211213963232961008140965221072601797374433424328782088686829319810892940744755922966425465339633895682980514207847022436285283483359568154019029460214564816066557325810818269145134786206243193913517462415229964046568054742492523007602939571630601562054334390300054415292457099434949489764170067522696890958380631501764660664664796603354679457013046682185144533569673615612567296036409644911917469413248662413153336840973921849706914325091457681305328832498776208212088241071884554268645553839639926259565147267813894999230808771201597865357309270688453405657993229813973978450201057660219645576620474569234597288517375229181419908396404654623859093799776077159928132267849760920935471896454313864656085158701152669004955682688646418397234964601800084778860128248156401518370908805267934754869691638247496510219298759178092778539894435887695210072625057185678750343645638767249027014334118511688805164957933619677960062720563734201940563330094698397886640541595264476377843842157515264036040826175685918145506763799695027420745944513296312914463166378754618481396817844855096912360636299659775168381521355217501351905107835137864384123485112897503647432539279427722989049573956111796523600295721010706231982357902627446435331586522177495241065349060417960374022702898068670884291790648448915240725052515340313930696116915127708550974026523663579884853568186713799166778335184709954954261982124200385523718766637513834344554843959402820162197878542694882680944252027588142829547947014865174873784022431405014978377762296257065006552272634143774519297060390921283240668913116789400794905869185613081226005235535234975774019785120106976640843243988497772375901698374309904907529965785386963125652483928941741421380585840767488645940103427386829900734280643365093614368266402861784041485118652219260847246368396321789793411926965494881798856052772287358943487363394579450394833490384617638631377496821757192484366998680286680941064552285736057831366357449672224287372829912446488774908878648577163101221345180315252202368385840662792806781342375800054733181714237010589367004399910950971515759972080611723848294481060354114025565128085373738678735703483188416057571267360552603758898776200770483629473695217766178054458599473881255659636748005690604915935290489013819150619088931219799847188089726693429751957846563670961990675095614114022153091366207895677291823126063669213942941455391698495693544588585919630856880917867515148437596680533060643447332514674768324205751876928106663513569943722513781628666102003666941128131022486152691742118133071279734053142645351839851780467396910452933471863566128844717630679888445286740415476710441934227755834032223632830746465687795047827623601256667921753420347734027237634228835369480919098969432584957870680391955098375396842390458246544782403125664859366736802950736438755543022037001829618998906631901056033148026696770560653243500679574171162451453240605227652434283163964841337423141577059396357426808545938951911345740177697808928734678367055076793605427458682828216328052719369946345814372566967550702555861837133392224063960917092549342394260195817715652605761955192147996186794207122760684723943685413457145100817335948662067986413981606015406081789536572851315764142617470347980981211689144237759715766731596198204889826981322481701146901489739135379120815037885409951687289405569847289754501985991341033838623826825375390989944481396490683519383418176406590501157250227836656570039156950824612907146940286618497035713297194180298050385638122795245118687848110550666853708330972339348913452046713881429119961780601600148965888508056047139840727724673347667666240689182529117049663081385036484654803936909098692437908526447833993265076752615076881844889047267821818025276256357166324934308887342333739879937926279174845181404086068072910832993856287184055830625726940499600311381132883565467456123664317294673942697901882633108194212575574621824061938703407214867287060216316690555717737491688390343474072756791334106632397574676885130555712231646580287184644993439432625225915719318126227459204638436674502801301457345206147953747295776261996459048375648941991168967792494883298866671027371440137391730796760934574761550525515648288583827196292381483774742129301623290703987372778791598683727381425423095842116420020215472445433798631303492613304024128775782940757938340123564028843808359663199236127595749172415391301190921895996141555269064053986749661558029533949581271422184911405358391943321462060537521244973122808741542355196632595805524896039979673360882916240821996592514465936023356982516230796871389625973260053914264902541597848053323088171157935568799143059894558664919471838343863338930943391364682993799610080022307947461672169003966533972503303576173125990078561086473532324986832203899500858600591985544499419645871720534976674207480010860999375436159292818194294776782654619075599421916917461865761742223117593109249158027971585657243756992842778136013174115492673774089128574453958380317261195832591665365911547780015884681318862487349017475575697796887920053560084340547225814580211537775474217486693496427498558346434781058794260001126153463581585908831519712771233522826224201809966177849652559513696699423446197625583609738310189486049323735817409590440645496480006107946205196388860130739809935662344494812214268358598302635083515729533852668468596730153857477598647359526648807234635845710108444217639665765601678884037737071897169489495096776164291609779170384809357045821673313390930133807223909094226197689937441285422995094187287399665691946301089564686143815566826830676216151622006972465056695525296985866578076867194312863838911004065534982431389079639863749576435946965586406971228973826590853411680992317186931302563534316809628544284857785411411753684742336459196560700072580535684051758541186971156670830281465192639847621411197906705932389906258055052236310906347336627634178940645999639392971244338365894571660635026215102654299586242183698708971862257241991171085095789707551811036000113096740254372170010279427925771206522825145146804930536992044881540356607380223221565840754852929664443328159966869176885765553430105998814498360420406128038292364711212112566381169107052165358264518348039056378425855788976250066280847941299767000523754258453935795632726356873512243109149939550506066748303203023290880744337354768648980467813444023014857446642186528467665028164837530518880874769688178148145153529367817995782077669000482769427289915976639290647488654366954203392979970749437812426503039946380797155260893150387886416392012920674144825761219083180031145196661174035039533609158070349531671151146969765298241361655534198622595350137278550923820290436172700244160639389410172538497739529991858772800514873095434037311910345417438921829341982788012311467502226390218634628275792870751077847438493036761837978477723948317040360179978949068953069740171907589367900689310845192361557323591244716146709286756829541465792992294170794090611576504581146318971104508566106007848748269188585144298868796935723079540976756093141002304222846740572938435681333959560158052669477519121609048097257042528192900207447582830644768916830521617188363159718877431699276135401804086869233155791477845216486666426530737576868440126305251098964596553711282803014427855584349653545642077277311175603456817157003911753530938607684131161232377471167520041721771634090358805595977091885166251940804309038415264303753010821440670738745458250788095425266767786944607954366560019555721760384104480586444362737592861337331293474114583017833485327677641479708815443354811474736637411606156856784868344177884213099386801357168292317965963390389939856634990199879703814561217944324639359343692043175536921216846098627085801990887701675850860268363925358094172518514789929641403207301071557823525817682211753244237563888419678095326674174049493913051266989459674321706796475393190999887768969212038087784976075848587572050853261331357389778317911311459704007851821239136653173374672312092713006152600117689058705186473632326619838296261498528429662164955860521416833804180874462475393916207394203099510604230872125653908891238456302578416704932563407770727659720762142623887463302828032880496474542649218085897507679074363907036317122402256302439098108542371989227165532181971214821627915165338279834710378291690658435524476776116863815555683060381754136656834615251770693236805928131149234502449396205810977365832462435024785931132793640316622848602529339801588983815919989108392374981795170042274875857249605900353868782964674964972945136382558578744917114176002229560055385339386234539016216539574822566742692640789701246328513520243813539513911131029646145144621043921838615954084493775766510538336258830036729814587743956450456544694667719473772870717108500819294584910083255885332534534154807815903687567478240636622131521078288007066447882581950441162070408123006737848527606152153558153539327111080497801849370121684165342314414141548802389686934995585609390901216990341464697554186717293695083944052116047122428768503599142574706025677630439239700100525002076247793967524256614457047997262513164580946059927775275568610407404524579495741477501036956129143122464548908933436007039782818189429174515731543075544191651242179438738541643600017384524122368155313787532038266195149514633426601736147383464949976858265461326138345217576273301738443773070830633173939058843840409632341110951137779701130040162397225883110234625421271115555141524341595801969341740733768608558573422808213670383898893509729386478696096515163391247831962109992421383871651931250065295536943047075890695256923703219589636961795576568574874420449186765914322929535170798256397184620586583734808818446162296743655411327137624662506031399063876697820176412971141863650383070324099826615279682812457227189814594416517745064342093970553158713741096662113603755875264982083774319765614581472106556590999632939439858479153488401375782226447742068080629053621871689046499465616346861846733351100497536634547500796269759026163728204626215121287684946308022465605871883943691058524588409590463557139702424015483868777031814126999651648202309283836229317824824138902811530206786261772686936327445347160636390931605009763599487411154334479669623851619021338193925711548186471309237162768877282860541637168410473963614004738882011450173936395137121241499668983864881311932789832737759331372973953805019954262407825964301690076444140379817745288439170987846722678646583729194040244579888263941890474431699167668262951223123240892096143160256967158185220482925186224133479184072822104299880000624796547832715569588143612049349104451439014724418493096463476594954853890877133182655587878652980755561013146376487784786195877001614313757602115004561244391745981647495546997361503078428421902103088798195879437394857217085127852305077151477015725785576627772718311362465736590005763180956535919006408105354724001077367054325777400395291007492189968278906026864557423823142601591203962587712996323411395356057101029221983629169090318682033963152604938139085394932255814560412308314842303019231552360848774367816704080274135185052234372622977859322267980061238368621879036643832436940681085343184206882385146528950732046909927750568610433949998873760993780793295245939548060429014809723318361711776174570610956987418009704520039559122599427627870213059024409363424905332306182090676771756460487462650326185015777214906586663140544606855464851988727542684101749329536652384039596291552990224900591343227755155470766199592986223429814743693396075631822564730424682186101782297217624349048377536298727613467590260302977112565298185782226264096079500665981025624861441219538350925264658144727745337104992877701982274349213250334395753399738830481363524530286837684537217928851358628506190931103390661771581792787615922293975895749959267374033388012663039236667777711852167087734301357671255957179856992868828114525991243663731112184225221522771671784769756361546882967324001543619390625895863944904987917609900894850756301720674344813189263248244817601709405056292190064195046819220275141803257874874710736770296152836185259644984039841790559639260821454410351638864250576968771942175236574495090222105722774948642931412448675413884075598514659536873715504650466931263712184355252449599752049790863179848209339372177278220251363651958121989994367869679758157242692101656612493325761102935955989165370706708702605339953026759419290531990920782605204781958804948681096395860366491745196828310760304905989849608854394162120779496953803548523553859400961247037376302630257710664599870433570550626119058366685642547839835711157182151877748982168142744011670955255287326971886158383953275748693573700289223708085189819331450614537102725145174718124955105030086373047500718179493493438394355886702812756942751153106261085451315008134049770512372000562071422778777891703470806231383442633845492277806856256935226049119863252111829316361790853175526028883648610193247056118640844202393244594085000119028404162133149590023957716427803290625647155521349020626192981650097800676979262872887769201903729358786277387795341996118362484392537075719413098620519207371373364534874810654435475052064670017012158014037182160499661344486000738594533682257057226120572467168858183665708624557931005171944581684762244968133580337250792847560745457601823180182977959327394627425831511369557539429552119959901603781023113515871232670842920287418261091431277521338027127972095627968655579294516200746438372464750127268880467837805596180856432566999167120231927221384730493407224180233098281047230452064491743541004431417712164621452282670052861488496132903172198737634944758856318555951737929885928258673139819781341071283149230991384816203815367576122058275150727072383471888234427529352905952686870694388760969308130975800077712278372607353292635290870313861969434294170894686283470593741198457664926066329287384405636601890944681982636123710627752918117109961644393528396278965854110545589719134062487879960849107247815518651114807058535193999354176266951017061327691643416456426336086534080336519553409019720983412665456753128165780849008437179900924351061885745911753542696193738882642983295676102240537828297156055513454711277878054044486707029728161587853900023052335452504255261269868749993537268306310921239163132946698561549606293622815386508990762587971463961140758724411496199051710203464192467527897126144951068120217768255407071042054429700816363569567540952175876837137271048923777458178462313577220792415061411132271393904481408096546291627616775558556867221197468861264063475381507351205893070857055269258709641841026694154107155838177542487846369607408607248410634232383753872143888770149460539805951222069964134851687561278256841498390766426356394052300216630530736093575866707004260829661806052730722357935575097533366263679170763622898255509229120716626777541366404701118112408882630678901527843691072124438385135822870358966564575899380071311003159544949226190731435298901299478821753178706319503690823788781223656785031899430410619975391789891696945131702772467609381280098810646708939831869683056426696050833831231397915116894620857605885352742094729588154494164205347110675437416966819733546727982662378313235946225656681749721220272302762541972629453857933695071882107954631021176102412848384537540282766272771952697336311013947293734181412754601969508086830403362286875738827724330205723585611194438071766134148168342811701477066491571209125091680864661080471882973494096738000975776886451850420967147638426777345245621221823660858724438036086764469923966779394161749668193847245772974992171883550790101296305903805496903459677587126895592187655401258984783536947671457597409605166996927145205710905148529680957201280300119380364225586897564941653643462564699396526385254841016098976760474659458828473812747488904895525801893765635351739782845905021186450524746117405395503831442771256777444498223067090346351265826072911239140954078825493410587016880409933165824585164029522929095814227234450195275791788171134882813189157684487355771962064372081922168387864103383852460372703068128145031817751813037127930478002305479819233322735053119092177042142560204782702508809195615465290316071144165774334869514854927418222642881113817109456950516787416294343768914805230725431398775216009894610982993025149490935633254099736576713450340314204070372183064381558086874481220443968010395238579504319487203755883697483295651159495472916169388624571473757635044045697459214551655470715552845176021014913681672506475089030578573893063489444852421370849358006654123158279645584306954957896706484738921778667186821876867139683445704100928293875843029007851977246629492033442318943985398996639098651393551311421256326615153538154146232059168571845158283829186810955153299598526221263031697525967493590260565508309341146840535384820498171639062926545870525985495962499859600225567616593443700896230589659313517892626073483568455847350356906377456780196920710036540076914651949191053128407170375796843358252354252956620053145888326343562934524337753615345182126050826965312538967336088298781844089196119042257075361309299807416363867626521708501802322216112655330435706534944553867300455214534672318423087876288983840577424672716603925140829187527197676881100552445484549238636962086466880943609922463699878753641490512142672949787834063116225817423897908527151230254935519609268371517512734683805985092793086447815575107387366132824236528958354251818751146450028829566659556737948893019195841145155201216014041885938345503106526428977535425303847100905922889533044391485504239632910422485444901826410369556805084323368485838340628837556217419730907323885875929281341256803984644569471293729794162220109969272681623808146477701366813543491638733268159943454043241022096913169209741487324843320151009888413012714407697529735262297582312762563490101315933935484476968285749507150442158785820238139992603873441808487190321703258762653962725223261086714707635086701128695732589419319185393441362716059864848254484051933313151852683597374992613486740750693018940915039085526892305399041750093363658686516296978606992778215318065489596032444453020721864833767592027974967484337725148662880026152830697587899551162178200498676869886334353523232344931107152936691105015240909600523801591264713380109143599519368840634213744976875555485503139647095788655040943835881137385845729679252099179538254579533769620586728288249822113954202484583017862185603539729076749251442518465896231719882123437653712503225648031698047701609804299614936936343028609159915824557130915079698219391791087722592287431694757561844087713657528874339342524417933370512466280676941647506769889362955340087771946076626506494135335117463804359677416900026141740392207524213735120205483014248055059834281609219787115664159769526986028929111819673782397632912292094204472951503175263300860653567880394525234939736164060503744443481653500586225589689265071847020153033923527315476516703629378731264454790815523009059739135593133983626485146574361546618920500606386186000165205905324898136764299693906626237930986941072525329304921222502250756302347495746526910022085366920369741089335833966508502935339128363352777404345191772203907734513084582422201226962582977661593895674939483221858528532638911195952422846075167085164926168940138305196076081681388056347678573558104700935427701657407584916512412513955029161553610835309234130746108743704650162423506694466746885233646029629356048569498922672963399048319980457485699077823372715403337636384577687432798428800263824458071795910070169987366867117975484554600798352922569064292809762567058477294539276857460143324111130429919036005126079539860613489251343935848703993348695477510140392048237580221471609206872326311231409319661969583297374585527816418008769168297581922074615110346275552137431967312596205573331069912886105296166571900671977059937687107926492308954539001839167140966520243556877647487224984075246246420918704004644061257080586859032811205189306622733766454023734659832187169255988364970806354756844489297287120635098656727327803686053754890855544828545163354693838915991534912391641399868561360226045920778032396810390413056523854471914201326821457840680993625180667239288525799379443879043523266971311641415561178858950894638076106768352707201861769242758322528295612937107251100795443873916482870058341717714653988237353847841017323329668054521788393090555346791905518570959306886566386424527054198859961743735159272488995894105249225505882435363229741249475079215779818163981767819103494933913075344330470581474332272722887460708290932333988917455351589406879971231366417517576120169003375261787223477282501040078492801991571185515465738825247355839158579812619584629144623600585263900832852203492651338773723789549504208270643636835182271394190237790000759649614576783549796863180419040638699132028794131020701482757290584735323756816335861191223006478186743510887054818879847815521238553272121022784925569035445507611452217297082437339050747576322465169694413362300689456181005104715656724632923625168410398295854448247677653935829337864726260096033024925342900417241331422453964076623352551372746733140402483462431951330575217344761454106299689964195663386226833975526751521632937127801952684095593727925896816767252615466116082619740502696679299878667613890096486943306447915732834997790123440070098940662295973447285963541962829842569215868984854526140284280850572814687515999204999060325861465942991468474338750071675903544046451774043703416004606736482355930166662837517397528428250788599811386052308669365423510848316105578424666570289357119748738329793050446108639411620280568214972021000404085750703066134537517614373003118330404968549907173585068704481375813039317813546181832641752819269256732403098482143393880305295024340062801194169203400640604965618470694348541263895941295114350702241397538081996472590689525730956174046520404103710584534915904181436677453323832327144356075311920136081430372174545829524409545903208705624514048728562794025889132548873474813727086553401184590468339092869149163268123003074930526975206965275363474663670122568786893580458367808608772107049114946682219050400003752020120017006851663916626454832383500865315247606197960955475515019264379944066200259676394329616375735433861097809567404292951926776498903168514580388627492965013024395578027819843698146284964951538215509320481454013106426778244741296212535204380902927600461845462522094928114825410285113032181637585726871221791316478193527903146591826634509222004388625728838628279500370498015925895017222201360582336383012725491216068065141504879946121554727093411586343627413303248306551270602495133745610623084906020006777533130739730934073815217681819935262990242221751359066999401490737652772430490060993423620627728326429071904033900638337783374769743537502015998857404099316371076688474116818570957745967650795289551761166735542996793758622394260421681224412370566496220741807971809793299487569492670490734117462199295937017513903968806982722705944338978332398589519555664579261640747116948104182260740604515619806771518681354295031019322886300177386357319733714034119898780989552442029885846614938055820505072493768612898449741879705015518809566756766473080162601679935852578344821441261210133862400067902086634579764392265668253047921573223140244037928139050681397511497631758177718040439074946143736211747277047711610902823154185304456245167093600554937182188728699867835529850722889140280197438835793495497173970054605629528652369489367579084187514885317841115204553071731960185171484449276887219127470200040688398278094919750610184594180558818130947575969154928389051599859512725547412896003276460885597885203486866977391768326274069436921412310503276353970224830329883400216063066839438984245028744249581786611469884008194823642780803694355618223930807916855864617199070727372587509416166554928351229277975787066063731390816359233254267767434879647430089995186914154017413022560090947036197264721077941559469071274094511914285966799860992416539511543049360256282564340378545294040444493012282962370311359791425668199919597402623097499427031002048610245291702042067985157318415770333330327224967379087037128905680949578873060005638575446708741767984562371032216379068504505332123266376770047072965436730403924551236572732292477338511654218866398683309574204405802723300382934669438307366914819162224979614818037876445825382991587514690137421968537430834843758904858407185269314305277248993292709007234441284457858337674383438587994979805373123553835272541759261501808279015505675975552273495390440911185215979988393587202682399658039181668796983354797479472328600640132010977809605119073259750918613435266224101767086386734982054275195638900415535716983415576376696372870413638247538032331178860402912924984250424561814613649299871621209433226049129307629788545316105181896143965057235662194954760155708428157063132135067609045345120271836383038453042362180508075417457505816685744176744365314352976023675507927380425734316356441444011361194513808660570319468474683587912720794133277764114149368651787261104259721601971902847484327665313936911952398850720213814814773408463465498315937986765550699080155312083511350624735729248865841620525460854913631338536408698626992136786874700278966110205402803254891968846831464759353268803310184967728520970792262409908414008592475557471020786879400748998034373074474287886883984330160334201441982155177239368533842721936172692509829019378349920842692715416309379272450218088563235255717350057755305808798665705166765853704702312648746252671814924906806333745861165525331472911040759592556634236418624287599800882464645773728711664678253380120021518477201408006986065490733822543150867403686020793218949942934956240977194277730023289424109730849495634861369290555030175874395602532322341243869122200543956478736396608216149384910906981715644674678911869924507889902563389476942035726108536740345991481122620021632871680521868811148966164632141807872634502626034106039287409199476119014931235154333117579481525335420395584752838997767925602291583693584170498206254588824387209127937406006308362169390167073934736605433942365461195880913217746422764419016077148554948754189791882573711986741591556176110953516435478782575222658749246823203575799358329559717082550285541322542057268463541327808742981729204432515784430277197839916105601924829827015443863243134435039851349655848968129580802702440569112004310911494299574379407752704873061690357378310855093601677032260034647152732866179207452818641035282857153053558953286535707534867194512875625205242266611594146961130071704056028656944846709948082544273450816195736395763637642000338322937286204766587548704006953916677147090825004179912658183141349864341037347704613793290207994367481263504842513253974456139766496245266092203267522427148093979686329659706544396552396839894363499480653625672214261093114144727202715216564749696461640998896346140252016463900969942138925376236850558801778724776473449717908165811230916432609565684875906647566669699484160509438800010835347989543064420455758969595417344784146300095984339639064896400979544597410349744530522672334928849073597029705775594785297841328182040015630424905180531598922081738358542533537061781039259582612484135830975509289115856742667063343995672630510656945728399427948238166215272439449645829068497621103491122320897685743289381421528113921977472813166761528166848590421411460479920077212390856483961628611032266405378594167867531198725441605354185474608497622395040458077197271265258984917545738301957940996152897412402139262307333291566462644155464041993122206557587143881904497694382976303873995292615037153722767811415029749140747720118640607102899666295521334113249938297207173675822270051388669568402236673739628029468282810318623410064287384077642393906405151998806689845249445274780525276325605045579710529829859836284013587259120724117835028864591408560247109040091779067383233291204907545764835464297964086028276359595913029319325690986034515606534445687605520371491050345633758397228733102144313076205835140041807972140145411250215345938445725128807251144967024053852465132309955499143918962429763950123315068306029106270212214540207840959784363537126920261212942799203364978445214954030941933327747343053606471761683299786423081603996821790736248063840682333833007109901903661116836328380209054218024840531630825966448421765401359674656886874041417894460986071942617883994646572501961101110969731831428513863754970927723250181525767735729221692086473024210268079481250184544926385301653167210066863866144443274953301918533373205810885571434957286066739285216623251591846528506117110784783699914406552985825420258642954150859111396105595216669271402436159377856380553711777246219870333789009090198383024805465458191353579669702235210780385792280944067798314638199726906640646765816207620674024582833691012328933990577549961642242393970891012801387835451183558675138552586913035052841482975367010133660539084739525439261566475342458007490213470377779519902586496999601054523377491312991935991259539138476585429625925244873512750358451525260434606950265710188227509385025699922771248225529386404129089777684649803742427229166494142913747836415041627249496285503490007309666988513415367335611415923948886661939782802241457821051879824984130872879903472168031943412837393554839684026755880722665355824460962881078974071797412886811182179827464178627410211593335255189396352229144042421625098391609380166626479190233264355971693401039068942365753201666790299042409517734572128090420968453001334848006053410722818349318528865088103359958839628683369730762622000685489944801232598442210044782453459354705033142049193713586990901986729243702443062216292867966723634918551218026096706605554297339024521268000107997420687444642208211279051959764234604530410992433827402867463094146991923819947316150404224488388982079467153956163434214505002019804096393919212173099640707275841409080726138486594723119435973085064476608950146284339040317033633427645660476939695258573209629646845305144349273087968806850398320303213836398604751906845877162318442571695142275481568965699735897178808949997354830570402315207375400530528662141283126879958774706005812372729815032335425138543082509010716540943792740675583232836804835552612533309031626122882606058492578593379223657225450851949104163072403213365247325990474763483256925491301894618368858666312010200866079121865368122521863053819633521752703940431811259972614034875724493571966396075242147336906441519581595612793398546714059957530352531182968757070021832619392564757285147045151349179048697462334043297332451259550729355483258991615546379475319617640358646274927152601518700785427852267202260569818840218206019006496130207578710700914139245400549388246872838352054445940544220914681391393717029603747771578430438163833173591743883681429808587552765808104231308250360877556877923707479286800346349907988279202553200395779093583381377342942386390491766092231386617530941473189532659349790154424290602766237984310074727090693753880444562983675034631537991139147169228409190418666642611640369050605171020752648586191819712124347249662257635177185426215628315647524270723296528513359449567936940968999945894538278745942126593165344017482520130333073867384756143212985919224161377740772561851173926475166298556870289401483912505549553891237654806205040488761870053289185505423808625884974052577576285848802856256713483760652249073669808119224041862674904181561176388256282881740257547195385416592565511237053643733829114946152319903510056280166749651399952150137314098146919818736046141966052388616580643548014281853256988675764994609556658889628498148765999692028899048035287540771834043682602394722925143659490199783781511352640007017844766362708696684409756518168569117079927551627036478526376613316727879447178787450883229155283560383380892331829352851931687796225708413748684958329490234247082095289460220540181926401555472529548402542833186226744011281154957287785150263183136777127128845657144949880864805271773625014211240420666987575976582208318067359470991373067157938506934922554087373026498436068483834940605846542957459962801662190432869717853752640882774541380600555777093668343380986224531153628416106718441105984340416893836647717073597887541070199827256537639248000021572115157791795658602574620659528379816424561365277973149785971669223064079394455767189840170590051319506835056080328259906801541690040915277033212362658190961825780964994567885840060722614593759842264428494780854783505239360040356591174031194852783737812574111324745573124554863832540445451363187026944218408955466295050844792159832616255599157251709088616452037359850852229809280608100639304013544091593243214588305195643276947281419982865140930816305743316766492187533013268936586140432165678461693221685851346613207888903840708100264379844175528479668232843594772284296785843403461621305013662360388165742840192182350322227606809773864220545771858504966257876913562765849836216730216507563087784835419984519744733842747979837216849574851759118618845363489777135705947335990267965872519030266596413636006035290013302488527763614274185970188902279163296033539977392936721528115076866637071716819805280239379258739957996383256351777892325987907171304545202435466902496687968408911566385706068279226802294824860500246691304034005610097096806117591594386213216852900737671521317769941775596679115289046628732585282170833906509511406763592588461766259790574516456110548066887003582048414288709311498445414725187083759579386132652798870492650653772066953446778681415322285051919455406972046638861604578519762022748454776071242029912329320297548138224109850309561054945906582712830870898101879457723397149863058199642702709091778350821261462692696615852640754028242804845615783937498358595029778752733435169039617950278345947436109489556005851949086084136888018620824021982142744139935338452462182346584716251759011454567734481846996717877439955643678676665842869114281414125899598576069303649204015254070142204618463349937744129577987205181757619537611272303449297563883405735067094950205104320453041953817544712069077305074843507542180683514816817391809633075475588482708625174539870519043452945713849386841413169810956148030721188145684542137729461068962731065942133030273496195103730621643228656675786533742113573880026218789326864760950450168633235596420658988743957901203753459528006658322439273005549959798559621705016024576852389130814933321841664854658794795164722568486749854732414827741135769200659468171655825272700435664518932520594282710462601570725371267508045359748806206877268104215989545349288009248240157346638560013261837431333358936158085369169909420355638406423226562072709289801273140595401286181422534834874857814570769744454170463980789866234765961393871463698827887257959620133215007185323956115362773252626360194332617843366006024225138126001583300329304523285178822561300852535201505685081458061326002463806619442871947342152817165726260669899267482264933033946658197619110371968403806866775768839807588443244895140806054598225372967991566871934402774174743416263506754145691049255224054531946418313269138084640760818619900271223941152559966179802332607867643008059061362996636982128799443582560807829130388952505908853984799062925736061571519355236892768104938136036698789740985303241014721339529941978326752431400987682977084476165142549834789516499297139913762579875109725400790315881842699673323299213938793055619219002813472090723744916054682428662217684230658019389139531445802284890251220894073822885882348851824306021616845199854531084504769910055472021307592956747791560807400849792249398411889244997434150279621655441333966671633568371891360383659079192587384086103378869557696464651022832419729432557647157187010348294341549173447407744534504935851998420403181906099252633479903795341178188138399493179912375669332885604736147127262410209014300490626280264779346431931013479097612351077871483608084071098074126363580743461458742698683500602818810468254183584739857392965463066889800411320411871684657411801985388148379458318381516983611697001216017840886109403292011504120272503723641957545180890914394470489687490041526141000549646046257402724398298649684825754895297089511455489679686409123239103433988001776154079061547546215102284997371577291866579623809916143824303623308558526917323383007710622954231210380492355593017125044165173842858023280125628473074906959541184251763185350247514951898867080676626496350374980369706400359986556989481691039958128195917600618587027450238455683772659785037547014830817709274094106421345555960727573928186245564247276358645485346122557446453321490014927281033328722164580435808682925871105759491776093441681952812939646019137619789995456837770133079250399479276632704687950673567661113731147025655844958825531959057383354290278510478404454462756246715105816318422145709467511389864772429306882876989256353036223633706710297969946748897373062934617928722113317006431124439714299904329653084832096847862828001748255619043585934968543770335033473573115375861172251366664283701634885266323535205959308409027515720396693377902269021690210760105604496653870182315313347545303831552729163342891205772652844412827251089693340133736899955488232626432474400693212180906839156535988322756897754524238035779910220760313057369118831986175529965919286240659073771450711456404970714480494473686355867667851045863903903603874971185792597561243371285109885743444143880367073806860656069889502876647227036015283547062346993786059665246954886961920999073848224379941945574669592465060286007089965564750507889919127655278684530779980185906079743210337914360540638849425140020194006053037563404318460814223626555720588953668435173433740295283242715168592457105719180355620811420738134452177470473523801509929308290666827628699146878161249617817967417301920552020605376382383089019284010147124054375583773403961338078867658698463555486857537277235504047333235129680589792634482818351408439672532602019986541495594460344022298813363996255943899614275351053119148662374946319999742205841827770928011548462257416509335264937516261148056393631852285618549882510587986336772078146863894405697169349424499107873738897272184925018821767483267019657180019725142270500794136876539821673354304250618340548760270851942348911045435399105796185245523152647076801158346546181780501260773340259613063029864416006051191129892065569678109044156776350109003595039123053357761513409113179224495529824412270741547573237053257115178143745825440673663662105204884822335953581550949988111494375855733613204969917875843292375901377451819848394078742630852775097714538254511177931095725153094698937867359903963860636703529262793155697891946187717943290473196385547192676909140678672632330608963340034129755543329821635254070549172512839769226830956508158862217115574657261230253543073012506366775344618125719436912033220605862279857600594102043005921632107635005559951242258251262689772053717662518545612756293889354478218684117946387001118287695362695110602125292538836511123963368089958778307288381433605530521458134618679998682974674487654010656295144547211879494756362679948512394288587116136869018800943102972803340143835649034231616028913683492821289391242642368613501509460954706296764828051074069837195403438717701424680105451787083409660231276190392270433909552810537263126835177011185578563856362731120755470559175398707949056683188090077155825904387149949931338391005443377483313878388162122701829693923703306549848495836612303196652868966656694535834730997820542609042241710992940122103049987056607048987576220168470992947063960975781446102301784409842969707406191718652302304565294491654817093250391709905555234947180717382213694990567090114607570436599861592916669316646084590782648824044961178452940397794984463385533616515813145315624205863935092014354200329292424560494266458617107113141032047382253484541195062233471418974288078459025635627645221901128218740783910317192296397814478859751578470768275128056597967026309435321115061687388759226478318761201160602896285434133078354068626442650973711831623931278730550786207056512300954950080194528946880139547827710460837395817834781135573708281460557580976392813713126622693561972836385638991393646070570987847746186266878229942993524575229247040286940690966890705674998948755159995019017788055112488609308040571791900938233143390332400144974414673656829848344512732907889865849486172329691358341714094256982920080080896667793721579101482006366481823797200676147866381447652410541540218715927051214985142603716433884881755275595809884853632925116559386296032882875638794680715308290089364328765877287026762248081895138383043600005660308407765735497847680808325655545754678877509341738118554763792036189649281794257260717388808365942466257365213529725544649516880892036510320733158693183065530826839800192211796493832656685816283910969576754110456055920786853843776481217161702624531154351025147889863354015469769609678695039439142530706100667330465156434318427392481251758141023105389566898618034440161254064881194630647613125267095059484234518098576250969686186978489996693115770191495166667822018294001546887801432250442967640705494012808748434677123855309185672464301005758953755817428680067466629981896168178388861010802117000319917350541973522659094291661832351579087133051127172200436334727653721751549013288485587346878283163748665643510015855045245919302852157064473632563848621579651194508268800769689001424014794749258431083097900044368846094358112148553523778133883764527167474085622188853480193225441454931956881354976266759881553801776243335418057717110138411408163352803730358096147070693481169186362233320476736354116667518241823789233546080335190908532481656327636728757813196571358379192238191100554013039412049946816115415467781048930102349605546567252777586478607968173388903428679384398014469633865289125019011516352286720661045797994209493432597164074634393045835409342837147488456769844905306565177966323770874085763828905810273718171747155138252682595175994315395189170863765065680373223410397675395855098073598426622988947276845716078230210092098921433125959868871667748382811076179195339902771332895763318597220552602301339222470768714043926562891203898320265563444330743702658039016435985054100155157573988087365731156131051671424041671246425150911780161033032125612694077126375231636262423786728106258264612747052974089103830941468165751142894416283870009035914907095445299340000927208077666058213922405541614372402766275101432613168857184483928353111657493968616334819222382811857004568815816782501174979324505203825224611117219020132657742723566317666220874974639262263896465593304592566717656716835579687896277628565118841631868025615829846812872379085520386288117002867508093451775737374954478513776431018713470143746764539613919449719521392777587128016175827312899064253828358844469403062583601902640740937737603910244221167226938168843656409522089482220731543171322248478088870976391877300898031098950132834646609182769095517275639312867651811748690825832582854422228002350134999288456275940717077167734320493865659799893157234769883168846172419596597175415125720393310207300424106577578111773357441065532776878396711088336656787319924816221941326065433715997766935461708180219156496521508052673963744332114072266505701913728014811966353542630352222205327035261778175710403551395080844234031964041135366539931283779360672620607294622240740541657662799191082730179627588314132755186388112431525170796775974378175663795889289834470397949377417461806483756822101256062235698223096993040550397474906472392336946601098781771327766702893110805461226555446697623008522277696495751769333042175430547626963567708841740381568191321071600558587534009696104512456101059273647764977552510634512950868970278254580944461184849030011509641277579435050763799156084740382342284500271384359854435666679417778996050072057750406770341174492309985392030609205958049674511906599791623210594763382123896545615261110488690991729200078468967804626780439597403602153295696325580144478310373423476529512229510462106880884805021501734752584287071588944353083784785494014626523893303201658270553726440966375372014044315518178144259714297844771779964024326697182021333974942007790325413918319702474391898987608733232836225288198775438644364688324915580065570870873141210410486953483218832750695294292005096939415721356405100925188132784142347158550921190700022481086841603602417581720258086052750525271010258557192740789937559050364710905864267575250138162665084930950763718693606082252101403354217254170659554022190597251373633535468212610182890851525237416270527884592651325718469544701572866491271480528769169636190484375855773239236367256816380087105917166186705110855415550155599878645688012559595459742225485804636648028301955486323209490471872766789094680781726982921650203586321503010852143603421335897063892464042831674787626387037950034915164193689795006433665213156556195366317166328104750235312668922762843739459881907337310530776556691069550790138669988239976903275336739051943720902161385604230214978354104709977210571398862344538733514363946024500330304021732200511905575708769018101151853272762915864366643012849691954592245736380484939353636941746865779272574298760866003985743528069766111337537438094177949113919622025472266795951192911189817230612204247756194239821678014914304516767176678345030729781283650924142257463251587071713118030357613533776170524932715248382930889214745910522458171221237547742559173303782430928817674314662708297603942088949464594741564838159034542582369258249680584617106284744674394438847517142705608050493693235391391924552606634222335883817679259954738647680865431331856015954878271222463024343416686578200231952301297162203508634434978366430885354428164963531314491766558658077699110608083079244808209057512661941364359971303177933664224276919314077608318255399837583659263637105885599347205945941010670304998289617987000159812904818652279289468789546091952689949284622075025191456280289088826202527016583352363519687983455960014224182723422815336550103179856826768380418716483853998941799454124038161842481195928505107107511826748668392843631775603353823704861760092927581519903943456905333558865364362598474382744024392301485860668601594504066586322788206257487393817023877335099929735685217296478538190686039374340940968651689252617147260323821479695678791172094580550250546080666951521775595161427866873444273198434510441518013154871976819098284350705698063851650246009529764865541536473397936242674116959755320140519412007571145766685102128844701112141810566302238784768048262775187595454466591302474665703941470929829214403609533847651876409472863025631310222703088590161032812981641254051113266362569375804926956786773414729917420663068439713769429598753538468474216515982348598990280373796928792018831696096670647556685928075966834976375361975220980593401694251184967057219107421705016855500394031938304178559448848282421476342305512757792318984802791921549339433565224429822560822794985593512323779651445002429721903947595811581101843031175170535114534916077470657507078657072120989509336007803626249753429923950381900811880708937677477274723462091684434319665690431195600243587267031372337844635744117654440963754946088492104024390136203673607735657792136412078415092536086728577074519791915334176941749807686537978639790326064726519987924417904886220274082283762609135633061432016222895474044849178774038786268977345393150760578171027539094127213460288607298137254599612553116405992164947018755301276710713846078901549582336885386490939938964977317042282869878118820597334266120506520214268683801042895274732166757109132357173709593388705021555728638228172688235346373700206592194416935391463688746336777359386068905422826685785397877761756327149762611118638137269586088222244223773874671262754007204072586170493473361087485238051518587610311185687048456039359410585601948038730472477044742303574999821506433814577180254556115447790404287401595403729416258193887212723556944256332997998546478690221590191863570842234047161258209954272006341739480298643680097053730443523521614952008533086813027463955794534673136203744311354725492116175327784900914017521579244899838873505641682294598852986097864896905627239148247827080793781365651488407233591251088823226229077221198546946469379727174699205847165779535312791121649355828683640179054328773099633497365754160755509510683396989678281132547600001802466742509348896404783128654997844117040649053616515019079891337916257085729362877005063598623867564764295312967243847721269740684841251460769160620624913834592098315060910826487658983708708806289282740619777473501149924732436307558062778296943513418458404863323173574456496219405208700045940743007638449679986303780520529177297188221679751372414745301625462120021827175286083367625550886153908042971816056881421829798367457758003575526674068438079224261807811935764507894914608285573197925157817355873821239848364889833065728412995189921645356927283915792870192067157518477237086729462740242065253257373311706713966983932511741700641312045869831262962900015805076818853688155161347459969430502186659106102917710058711777317388108742742243369776304617462718998658379870788753437780148843927482707665197829324059624078373696735615046445523219492953031348727127633091707875549693136308401492568923997022581205651038255334898567453259661805256246950764769656755930201873182172221882710126717880941358531094823202329786288534807107780648825203126775509833134708577453091882599245259350674022739122714633259040659813047382661078810737599527528825134607261144050467141797279336152961539065787783480869536414483543617899292332299553384026599111968096180945479542811546956813520861671110273083120196025826362005218703302274672549001888307003868586634672767810773311769035787710440878928494305071163368756046858055897624328694353279707543475622583379329697104697882840223506056077274877507616506192999605752572532252242015819034518384823624403394389436655354473640786912493971643949947600654535576216889827218239315865628154183239857046188026792715943544268815232811067931595182761979061577944078738203897291794551926679260088646303174064576748818449917331490304111343505968093523903264794086087659802547644751949485457664499004832739560945817973130787034391865923993476717490609662726452125940532734036795999255163358051917626250130366402877590781898362908996076666784957746184816331211333588540743011090812190997602075897140575133654957183292573354466973626316168198475484149709169316197582710966197146850494423082587374725242414612421940718235427229823512830768077136001334518341852932333512341207152349346487951514875841748175322060520730298116616166599546895570137832196672930320664463970685648426345807249747775425414220758070809998960635287975986241079907861929918088741013701256190702052898298651075511717728854124407201827622635111485259643958551283855435738742826584281346819541823864210664378756307044321929992492549891944854203058053684583152008574137449609622948710906783647572595647718016634361367362667043749256985544313596638322803592506045580818012011493706372753480869078574064345756582494482651544233101616493692793757478596154245066784306901839367607056802771772920719774231711069341345440240686464184128446373758911607566079715280780558309806620389976170874945013450435584003057573057580508734686073034649637549280723849076528099698780074333688100449973153499088609239585504815215654651468858916336321941850559388614941527053570925405061204172124905184896774640508973266581079582729683301291485406207723520492458047761738934201943347335684464712866180920431939896437462537210248208553928733958601356143737714603017482567940046395276675893989265786571451798267622522416531182824221698073860870148269449603034429952986458472287133350011602662354390541576523162147992243907776711028883648035624110546897811539075452492214015546143766318508424501378854593665969522571961210278816180896686376903803278329711322210995903691119878231882464075889904397542732188881645224015194319680057370044794658948038216007658051337909041293593011672931000992175075067972862699141040634111484226427396967052618071615639935299791730447687655604721348247830372308816759092890956878040781021032940121732018311306441577960730915527728459839974521173644833503735735900188251173738438961651220869663973825424031860053649291425499045194542281314093843232495348299727126249483867333488000324189819660292738104567169931226048855091100879504049505300913298534875695835803959338607747161946288758439585255491536035248482185532552633405410005775975407962324159877739898529838037756316435415113023188100705144088641513952542598313600284819637919932769178490681551173600712883598917216808825196524724939229213561083961145099816130963204793167001892577905937133557648905042350040272517948680062326471387919657628041256826168680831413587253733266152841411633666696033470286665058931924420394287155378128867007799122244296430296844279413967468403187870737801938718233174635250753265019604030580122188217164144591566813367588309692831293139117265573840232327727182140928747595185517922706971702580753631390383268426012101676278689245542757066694113875449766646084145978464362630774578586369592451044786132553283963257472777311771327108932371602515563278007257686695828873157202809237180116134406208713366724391706641848508320218782691708947812131042310480574066488042572357560759241105262877872956726376751356606849017384721506472830772894293352334778453277370516161884927276109857311724069011612193078299119140651948120323577300124463266055705129179018591151188742178157497489932709940268383467562755553712800357215876207018895011171764270344894379244882740689970623425352067469650381288084865900423993399904960237916836462438628761336843763382831533339960299256426435158977539499637574593328995396144586566910578130207224549692371123458354000265345402650435401603904341761795067102179456620476588234770405323818980142971537243448436953597345493105666883040675000993197401479431261510262389111371624976218701386495001689094058251286235766266515432857042531613859290358192968201409657287014331022037101156770158794527559532647715635464861240704114450138850705140254242417369266397959552566887362702640269723073724860435938584885346372146396214018830620778150338604286905008707616821707562979733667121888241287051870417150253585115876734042697513480667600960500650517065318259766347525162375234653975044588648142008545714031593968281676709074589786129909258059777215550011353089908240938921868295897774693533667711781858793488565161976306026699760964413020678397442942763744484324530573802284443006426911937375263341591484539713653412291690425408312594158937911931970577884445111276239390042883657581966063426085231791788895496495008052300449093716257719039744797410308453691628276145778067467552631281686486173986620231500641759534081736664941303045359713496666762236347976157006318139057985953289167648359654498517459512556785033068127761803321441547371375455293560168839568117804023040520796601017769084438893265357089518617024253096600126000808962987357093084284018190992167895165145818450005459586896219767234952284878147785012904547595913203667565489936103234664658141799211826056931713273448598724030744991306371500611558086066127364555205258309153029959544041869938486357851793624820278976673895511902624481508482798013773453654184798043858807508331816149177574827198639885902771374442748784056174454142704341296788544807522472901320681917980531779127572187333944515257631389215646708063290156611072694029614759979300625229551170432090715366950750427657149575761211177815272456953784160734021918072974930705428835472174478686043385024591202951983151269262906174764972465873941199829658239768905877808030751293602207375736232296756131915660441173257816410521955240164114483053705206734789529143158479728168046279441053741523397032302575400486984359763717178202631370556583298019737149476608122821318418140295908722940397344594422086285510427348009766741104280433024090199157668767822801248627714960506521793833380141940621156407524936477057281879822932435176427541899729412830604053529405433924408766924654490522916532217061189218165157545926896252558953563516913527044137380729636254399415207913694035762020043199327369228647226496212839291030774074833242988538563272329509346721323328411280456703372896512003166791166906026777102297555634331172522435950846313788117044160610141313317005343238802043670145198565408783382743420177278689520953267125758291888718466997779879106270870233445769429102324099892868388370227370727625969592491619913143085408722960308745502600130230797835227991594235179737782535201582441405711254879868282675987266703116993400928186732993800929135124843696504647879751101239393574273456802170639844146203739286767833720709953880360468358440285811169921100419148896536232465597049909644871804689411392650053055841992217255580004149059957122706755972926525827153402667349007958241536817590572467815257264622431754032236435398025513942475341180641905338351356941656045863351447251919529245464415129955273142577302084959515349714089600924583754768883149071420827342334441093157739339115804565932995982964615924911343870384005440294428803855809000832194311245157416594716854314981337640394043717539320449867228680311197608469293451211614761590903215719694079077975427752976491252847684527370314024794610684547803272560005624702910554623239759020268643488751478115484134306415534638003726570712025329864395810678325187763206566935524656314326334164471218775560196491550146407335895579300680705970830314501208335510663956931997179949674517431652882409778218746486810127978995389126795511155249276490881731602703738626131127457490253520917926574529984323726110962977283762380362663775972499356675774901404573053186912759205040856986270163022624465923828193607541071446448834840938403884446258805755740611555426748092442412724630397032159846359604193763171619250658677209734342290780612696366035157794263538062390284993971313877449514830226097503308352729764668808207385280388181156887401581846045770775459114099518837704977798690393105544549429246204487029706182789747439335256319699354357812867162483035020134536707612312710577369878183546451891940042472463276242439197549395091912123018024988840379527466465482213131971084155659051655794635508864263062935248319230984391884119456346256000410450861850557428882315821351290875959514488184009691112929268488825639088530001853209165960918247628776511345608501883768465532034640601122764619896160798076137884630621221921081013062711864038862159991482872641803772791447076044931399944651835177982447043978971874163772943470726874258351678479503337498783959451449415113186924906021890190395510380886488346925184350445193935800718875129739277533936538653176846483831281899983959573364290158117367751160025422471132329610924441788436520787798997645070701548193222175947280500288297527752131748657243444226102563814683443778883421078364489850510292165113919009705566990317878493652112593970448187559686491354144825431207482434538784727027904058871251871993297992343429226623977997950084483241898739417856032566622705664315612670862806085806873671242885138982224039817175209686362662796604005177270150450547415045584811937169962732320977540693261823828547111253400550053937202349918321925670840190848457899766309017261004613144676879422124847930128478590308423279438558623976378683907410683072462988405153865429536637315659926202321455605857934729053810311106427915882091733920554934049153063682591454933736107723852056652122028339204229250034493873234922097892901379912747554991879100716433064975834760281825975063015380449075570728851301811671993613620623996134989584745891404344718107686873187134861594321686994334366581414482562892813913673987661333420377107571479944613910568069427902396220438917177066392629852263341016431510009961728917723977346059842080433833139549860139519388212682401105889064301169706842537068954095566116357642264784998080062708548920414631110871745241372943745166111390427265774264051788690279228210274341496876834093223803231513148083970463615199033504763419069658100028351683774932002311793046273492959931433719678284099708446473426048651815025020456571218037476069798752128583072886771330978610862503128147431627206811689054897202484822317904617677610685500635218095840192468912371177851194004085640523534617038655607569203477533883614484479792015959139035066725574116539948750015572532571117343732450111974903900075699398215541449016862869784093671405999684804945257650632540094026433924447632352711572820630798327718654776386890180770726130691592291046416334344334139262032929675383543021313495006803589183623475433828522190224094162644876402795027999142489846391832318166676800836932952672622779274927220393580453943748019031911590014511897433162568367342806220740159501044570064737328943745612946335828139772046003221268870091316296068996389743487788473392656635596706694178151315287273378731092748691436257459399827897793112253248062264106508412670938911756192192027975091143850044979192113492967561702297638829870800828404250225137913160787163220614953667765260463899073553645907127450568853931318785604480351609991540455849717010991462645603447696407490849210715940836193619973071023849791429934438629784110670742315958309739339144174452676811098762468038622859112797109015461799055152731027455122818602582542572063481133197892843766099481247193934024372714501655373020224644056067807048295182876534744094386943732917200096463536300502765861482197048124388192036504624124354025024112313773194332195465061328935851099468706213275104764757334332478672400183022312999297379000038381690283213931375199224894968668776563175746776925946856677342071774612463325774401469218538968953505182636728070221228251562767723069018531220704897506129571758837613938364613363669620841266149896583135526104741617319185001722673307481268986771048292322730447768893484285781754726231600253737224789977950348156653866211952411464011778594450902753079655841107591752844844542684239155372069917444888541266801637473665265788436380043959543276325621137196968736848860656308521513833155911112329897674142493993041042591061972346265447712623288940086206548589775500156969655162725338960971203187777075838374296872857943503164961680878353681035371355789320771658039696592014008441914429324463530078207817519564129196170457672579859675847353452961093456089135652153274176153574924785198682411795627834453250217710211302556470078797124523581165566727370420731256144164455260020769022884949575618465047886788590591177625304118862918669826225655621899936226476050642204307901125943647826663392328908970889760428274799528742437687448522207181487535587637305711679138399132619691645203032088169301890878776308094549078495587232234716612082425488979644793907703159700532636250006596491600271187502990210083999067385876475753345719669482941855068903909040288738326227069093918349915957782304332575436596257201669836748314583878683651171735565990976134458578556199188720312826996642295775615934390473240033272707438978585815008231266441461595045312041717897615692468013885497001897303772143314794659102748850852208221222423491875871960811121539279326094513423816723684359367457273207938874551059271059077659097909283728765855510479935354942648447268202428203589195715903523846612211128029780126815996075510346422984169578291156379844331903834114170249039943416326194712341684893068896543895094389215405498465871896163586469185340464878491860009456195825341813107820366060022103148308366945694950250714200691967618168362337686492677614424650611447339909495483717235604110804488510649460932715374711710235354251311921636382165299638017496155165053761063698450019840080500342149277866647427417140589385746842894509761240761415479844415047041863789619225371100910950376983173832139165474809136952877478643420722337097239092242648080727111802177926255019493973640896682312034817105155626324098266438515281287604400453189336435677582577529747335619700133693850619686830886508767987143253447996733634575725575375184465600521548449828026992001425128615390023273080006741215245739526794112700305184588371298440078053103263116024108847489018279220091637335125510275256788775423948057421482866932345812175254791379981951440013200434208990899845586066964479501674701901587050763069302782266494732131177691309265903083797365545548621490262074665620149642688888607704476904596435704156837903752414673402925659046161918738819145241686388919821205733686994661853958758525736462363142153252332294481623283966095493752318499122132577794276810141268821031896634886652038472841808703953334679170015098296542542720119874232068212725818283282655948594931977449762269018108908111570545136947036570684695582314756763092735259917200391679135083712767321206268969249145687587046078041689292055792814634357872066898301784862537850861545224945387627084787039185460521802053469945585496716196017160016597177723804457630502134433157698667655782787165064098302164117366711319860562268822480129706581343627926708588047117994423894736417722477500406488620598567606396134002995616937441140947801546245934555966351566967651990310945993624825827719051669803850887034775665206531553540494816074235940680834487100327490713800275459420144442964438897949513224357744895973699873217531166138319073072079261477778546437862940425827883143057951672666824101302401712135146451356270521058575214689345313948660587415423977451559126300564372473644091421600418117584997474830858186500836580241387071514068367734894679277867866998697149259955116418736875481369263331656065419066714414974615144735768982937167793109099478304194541908931942950947155320050786198139344854611819830736830281953868722455665536975896051830100332067706021456515068847518420633513568929383343341522679587327723028366270089112952861386092305241876292108207124785037033749715238410332005582534201670058595109907955623139360160987706110822746396194689967560022555209338126411626413728145259474649536143053551686266283662120911848076835049793994578722242383405321777491577743854211718201595442142397818145001549559439336369475951247562258534536581456870184253195076265133295305415777457220949723756670043149124900311349961076499556237980078088803707498820774516516420344775415046664935865451916246477927910957605905512352094424339608516322174503142151579090025273870194791398235609094310200233779409090809680849183515813032455898239078752600411489666094867571496555871126448084934117651199058509471964425715285685816760506744785717256231397763786562420385040912553488835754770391192943531187999221472259601418992669855889103332025921369446627534499085465592823064063120785221863056452273984237857796140435136875724181737079632995768615871328984804239035179328914118734417222728119205313451667285168498608578032893314077816407450780462391003391492183458877900949277555488936928862214281674387296605188016096479779963074309691103156118544419964925487916827481931097404360719447264790447303525218369600480733497179271768567947122314023452838105643663560683688247015692484781469909384020010593449532973998038847729060163576786610038807949824785793106244239031771048433999785251791823892016788101966765010608787239872652116914023729559798636259814292386875410780334430105975927135099315222375371047731112181479985442711894118321509397800596636382202746698768231393424340153166514033196585877923608514996334360876810729444415941598617886476469748432858492861515853053379057533874338455155606760130809383091358944376658428490919079813746969349758904355657618946827202624922890797053730388183124107015423996764132931297284429739754421501837749362044391235744254687567316007305769034350236988236477563323728772933620202446211679694147350638159722343451862093660079155012148231403797495562442363527748174078200087992853451326407209717736991067237440331268898565588375299815965013221161814448913752432802802893260767687320094147406838527865782777897172523465494794642548968610447616430552181749891264318144835163838891762395805515304518963567091538735239097651538589334563650971654301424474984046578766296689800751998232824091470979459624902873939825909298848191695583848645392527048476780371704850220839093909702223594744857991620718677646585253471879901653863986827938616304304404508779128471420878825291608728722381115807071504262539338908344451900643219492358780699412586628727179396089983512597913429273155325351761258130702072353603836962060167279639115514175097029370842286196259171877440406307463831119585698310308013286521103640604566175550702758687384823921913515264354420694919370536668938399540905335931426272697642551991878596043112769556066005421159876118546304149633823673402555358816624679759850397113323357409223550562459661262307117095631963190539422504328247262991904851399398949257266871916064042513748105746525467482008561990399398257008737341277417761010524391249208975479890641642127006788855584561786985903694217372628423041350117388331845227210199767158856379806737915783817975508992579819330292599137281543588117412579942278067339271486346023244487622999198324220282338566533815070572457917399886076720765582605934854104682495203964137611227659477172047789609310109477390014725630848467554952064065896518798422633768181463826380383666821600118561882132851186409169121884442545387565944875109379021372269189672668183068687352999416509615965948418605010615852462690380076633333429391422145035569166537174678876961552335040508990546352890026511805227852114869051279334820454527643546229927749772907870735151140280469075257836452228114534573347013352099029207905018297466742796509936656713060588716881114914335735123799230007136526688513119346040782321200540694371077408249371287522044046495084738106753657766450969700225109958314340435689866965596775053413515117951172523554396698888631692913246483896021189596641472793188261411676557820599478153062486116451573928976631468530306731158837272834778093474714242322845937982376927094096235197733058634922738775887086271468590849566315126824644298230929941653595168727502669686944016331347809149157549349085436997733541161819997336911389986496324510591732018919330446044305304837883655818870230385251614692783263196178796826572521950015797347685769040617333494586048635526145322520308058509530286029048338907502933321053395611657333601076218243622089954039969223540489653755913309592892717401291307298448808067205816181478265348183599792980686349288968752476101818575959148911231172390846353239504578653562788531580212132544010604894235191693203536000733407582357679658541166352405426540915287651509843260943998529241546200125299314635328093880740506457705982208690157076760905655793566027859613082598692206512590146923508404154667348032772939764176463876079703357114164100808637705109327637843256042287437451834502477627212766860039620394098913597862471883314338273691258536538177815342489193116272715955488318270604213870155444343693117848500313189861319379554519518887465732495461117231077916279344099375555677971550876351622603998663783907554532870768276410958239435807733659676166946949602535285502386923781935048040814849303943619305134960187245467654073699000017331667669697756506046960557140689480188443436178172912858606688838156430125040667156152614195643041902336528713123085886820687254660042699023698151218322428548926114340445877461723186648521611301252365972869304773804049397726061237375004688798146235373232831899681415380458201335329142675095023764441381247267147849300288172033199250696212520526655651790777817227365412701485012045120087499527613981773431915070203918617002851553207074343793051603851917844788016846013677061076909851743293315886390071258192300657188885281209281456518009981658208811278504362136959109620694589949340825187240044609721356125052988339077140760512239321915094036561728731737382261951121861020854849361888782713905030425623172022042920412018232678423464828060587203538718855473861355731104654589104224456039162249556916175649265753625125988635718178178152388510203305053363807417419594280162622018964494908586801632759899024393472229949469514618877210585218108540447363294817509666808182294665028892836035041634129135467682958514342399800549709055084294675198050121049367375611665663377787675471729473185526913082158146970529435947984101350140538691758017846644462602408592140634875864533795996437428033675684174571290572314895610378398974077191066423305277937287498168684763403474590414465730228080756250022582886031416049664258327641858932617201911022730821478312019075680450412265097209634455562908899603636470087426979808496814441588923582690448386959942786377584438969705943169163584009686255058654883936879263652477713376420551520683484734558076750734966817628777384918630856192896196833187998045345667175648257827989270369598995884090306645956254929134694483598870601480597428857910967336641362423532554603332248918471909878967659885021617670829341917398490837988168597876340195146556031217116886936005364127512348303004562726451577138398055729372483570475849349628400354665875422654835391536477139709870833700687921655347455530504007603773967433561820410220714452666124929071632789092804053096133903026771489079686402677246696248259718866901405107635213527526490251451102884551825469296358431957210954120188728836026623097278029589571355655520737639039188883865742211624779731697072717597477738070365141857381544919559798497244040613540982780281405982338479762994502776661633011215719086600771924494217734012025968381328702478174997257523046288360991620976557436113737569102759210058260307597259467989862544887664766284816161713919716437646928940558128324165901838169699573893319882559938785151719040326161740716614498112809262710031710550203534950643107765800052854624383544506340280535036155789838188944077359075376687976608459191572474283258359223502000389993215163198606732700458262170128086460265510687067569876575216086704652095598535246562320822087888630225281480759667136639800405541920952748370603255678807324162510368953674028058608072977978848398049882551742570782899271866044359967902799767238300741609422926086064767037804380071218110696370639515423390289654237176859626393461992697147207208440291600893751878013826808225077378224578493830420043676247389134353934226204698447658017606170354332909425773500315710459583463588453146635394770473011328741674864116885286691662268457692006129576180061072727122252124781298026730185513143500834075027264840609292470016667690524976650328474484887528039013008759060188204237590010746903441862936187559249188834054587332902466366250107812235738949967160594577966698765504777365713652418383704601407288316289347781457141897896153508372133408889056222186472983591511546647366939304504544181642636865601094838264356096203620458597180330653659219814984395371657477856987111826307634492570388928761482294005400795404793662749682032559818296010166210284602429448082028705286518266156030916795619872512140993120635955217640903408190283659976974681627186226149776380722407769587821380071773973243124525129813569016570197272525419908723097024779264875884762929484510619562923774433737581019726602428491569563786493976444516692907929178954678746714639962407535466686538742266920306396883190586415702539365220306009670411334309509694671912505470283174465474852144348723721701390719566064137656682710067390943653069067219104240658983193893175037122140713735272348623211473667063452849433711314377488595454553634658723483437388590942606812320024315641552556911844144370430893957272104588201821528918911405265814085898269869161823260255397090911370448224360471412784482642836774396230389632607086983480098116765933681160517834384792834526499840605904811405108610304511035385451868187767665684584679021789232484352687565391096258430373621839680590852247665517164390602545859056115354643411131478107104065459108440708446588827118921734342689840329578148439907037917397575442765499185250493131926877861938044248080181315099307624099973703024459199442556105746905965692885156157660331444163709783463223326903086041138358245515346111786835166650286105559552165449204204847503170938548931911257960245619793079937802247778243157120441381818092441378862881108070903753816673728472696176103049789863909800723374173772072149600805784374255753929842197569844383917258205264613200935393789709297588732315621791433170783989899728976465301035229747743493481899935611457082072694054392989443054859502960535534569672291614656235619564694387665355227081563787534730055083274094166164338575785746197321251973021453049030511559162559843129419603390462281149298729898272396811687993159241485531557696442486549878315905559868305400919933741934412240242911642820484758440188182791110350597913565333551006460926150922730131614577238198746422083763995050802129527334733568510288564378588219261482898266003672700883093853175381909061987987933728167340637238190230798485419084272682370898594869223761208642091350872977585280318445354814554415820261144610942920146757069351968099710440079052640108256384812954092406674339289640947135488825067496440594285577943381132599828379914087777910707817774425066373455795825087006016560954987351753350897631670869547007471985186051561187294717205313670075181526805747120017688602922810704413955601639589134347522447914315120526263793847155285735207034119658597579083418260992961316503251564582389202357398309768267140801623346022910364146379943226427433514859678010251413586299417568071835209521923718270824669866593917454563121381668387667957338518855525579480088099901796214861721567991474988124923514297460556756077353865709397691069517412637114020002492017800444265306132012413428229318092558849031742937046560735349966556413154182590717041678946000728021461499949864052970872649610708229911307342837114279940373783572051560655825925505560634685500207793030224231604459846747173292867664213073319549574423724530053495776893313521879452066693924217158376024601845898111799973003276277196484410942608426452849103828366610319563771673352835997039081870140000245939412047662905165440594395751285661684143510532622849204367198419021593674414662726903722116817821761949631134897349800768528664664804729424042288458478905054029103306364896873649022352517246583233629711980620986186904390474624632927716584490468571403850217544804347443902266715311975991083894347973413582954528390961845007063469172141234655098193970072382825296701552102386581273428450417598143156860512450729053499661161254645422270982446947041475999674992170836179236842894355800981936569360744272341402658286206163505607134826033518918043152581314323131359010753077321022344106052596484703403186008677041719455513472338417255684074322809791278066170997150808312704466734830946960503786049273486435321336790285363915062613685759115919548292582187258566072192078032743279102353946849708580503472819990549604085204833865761110845389913227137635470253704751029703659791525424872006901588958170152044808534058105611335111065417341714853042271449645904758630453208816514999135887869327054531839353762112242790084241974266942694844093997917023378821718950911477675124304497306160700516523526967476330867332293279952219447580430437688405535609882796129294811443836838932563712615632434489429682646918266278319556696129491616254615071236813193652530906561392923413583579398243973458067330928421643820749363851747487163451667425086542133552857257077384479240223221038967218190206798461103756356527279576932861068115572373691739606754995046722146897662261283022189499793061465700880206619294582460050211305197579711639303155442582539785848111447102735548980828926405755508171321152974921040891267427990835360414914410442093633532942510230549050904856405767172473506164851480746902930019304051368164212263429126406782734052914574962282401624323118549515843428925792426896869384873704455608066213374418577230587169809891821935258666109261952651559573125614151080037315864140901859210930607086048282550578678006495467188495551880465771016671887365579874340289161067124757318355682555487812958147548962691453063911289776450805579884954890838915423505107992634647192212796830213629499979790167816635491446253670593860070824894639018097701349910595019211797933007087170691821022050269214137927566491713370974522822195959766517638025032000760296827752768289162635555712674790838478739632420724154297938293819078669736965633044593042766603566655445488808842075197715193507767656243791135747126496335254742715627032336709246794689338703021499351044242469429870162924153966579420297138884487719450974609024171800430649751262513641474059145249662540144876891895623102337584960827883704687433327877597167386254369765652327927775242344915522100566921305337547405665877395363456494112215989372606763613961948261826314300069796428819065744369640792502630790587330066021249687389398224507824297429942793255518521783458530590727313712854335050444974778844812895080019003147428469739017909943647604379923856641910503944226767309714822090794714496666669900051791781627241349467606508207946650141834740747917870637277409414851451225069399755562348420501896428052155187836839260308105221785825457773039023392327244312454451885117814939273318010150527679315515516025370384722056456817027520693853334536507492454513002006397510588046658338775921407003468694354511639550722983114536172546068210902357045331605966038262199177360672159261173345089637351480318691732531098094002972949960155372695809170915325366744720170210812610640922808592053603953732837916752976828528179884808574921698394389176644644199645544206613702779531775600538545904360911005357921664948557666996375838239144690703549779903605212961037271650654026124966650208732931941263376125626177656490399567691311690398944673315652975000502345025526702958082940689778969557877445809972601424580937484421496206309211544633716070000821571539842878940232297930309844430166092967072284273132505766369459455741169050092638105634308645993844479852733455166563211598831411894685678630096434513703342552040208720911920432879777294564796963499248664865131094347994188932297541946038936076412654676078073511668990635766365320905606693593569085087433741601042103027793279725784204542959963862310774903926814611898954816573908254116789908622926985131270691448536161061462412862087312238045965267125855033072101706746515645764752310513002094133877536735067705645336967010918258215901917296679110996631716039195800377621333409854883989603241761970045793403572784504755101507504065311412811766962178349930257787882730356655347652868379219637907749736878140451022998882761995664513756123888385992999806164971559192245481904572698997214312793423262650944054362808670006510630208122639906724181205368020018887172008114252461118104675801260678161214340329445136702433524115691364098263746383576432922984195112467735193373416087772620256021587195110935538799498407775940053482059923632729255598451207337307598191802410529123544183379794669209862070616091734613294391054779451239180145338322736418726221152972859427856612984945091600434194156173183019928988501197513249885788290765032633167088367740872362311094945799285171557116357319487337350652389744535550590710265830142575016777514389926203534332242736832669276244818766446180730428464570667691534852148878108687338205553730954517597246517235741979101205993700245561262523024552425760027145573994980469923196573842566061382542820591769063015240127831611459320323831845875078050819533855674879906143789647642679499941704000549532822080274683872977515634925977180892684018102018549703302884764983859129265183628213798086782474391948295173833138777920270519220150579518962701138015414811887698263002634927655896292504236164850773384567721194608194272245535644852212272938330581769838369848030273964769785763703484875338556624234457004977547622099127289370761038934479611731636380516852673929939461005626336083044439655986470959705172183783725330600402282003068227535319144515524320469548769538420926740210475675702955578500720947749935348377457325005012443127591810569084909542636165101383698126174560604582634130078105556837861436296168206278785774901457057835090364923024275995030003588066181943880009648378853674759454195821982312174100066156149905546243711566437210918537558940628324749976608026301604600972011557381859524968737212634574656541497785293649391847896666887839763089415960632545123338128861284288174717316535976155010465726180223849353508543511232360307102104723513410572983100822367271343998810865376991453180962698070511395827143255978907469112705633852700294406798929959041392534514002891460505757016519067419796529998191888780275004186445907058788301162589364307677404093528797616326650802101872380680805278255000102948714161594314185983532390559797311867452439901773972720325189099414122602392391040919335128489975999591038805401476148972705103128005516309981796591539790550060248571569541932879671778776659895903500763854467152227520550473887552022344988023329474947849119220075887984225657949358685342674591421919128672221695210259117624684022149328659963723965008909455882844431205092385251582487700661499802168331299633765384416050055234641015905281130026675655245134911006623950015665010909192213645795809190073471634011623962633601384890149802761017968748669131119475522814906592525518364469592099056254686444825037296782149236507992440097124874186267978387759727455633424195281911082201108053049423431189497514310050989745749267754458655575785412771310048124048477089232587693551727478598829734069258405009874013285373687378135521894242725950138074329570931328015697734783922021886186554845051455284491701442832602726907229693970994079848171777526283482169009528128473579227597018655480986834432292506959604765946268112023002411944222429286464094132357813687582422264404442312975752942031514275433294584235834171980975113622596955990469897204119945242881507872282892658192552453826081399330032891557142090614389314389545032020974930110389872728670172943523400460045904918262378205233609345634746641813927923932883263542390698381676075925340620589366754551979309962427877175270256872633541444535630009061432625653453958896299682482676702420104509758371087870176386377480326152769782592471584084144871358923499490643027997552496399159582301635884037825062863186213788388177154563778832148488690885722315806486992963837809772277822499669516507627082951469030135846539532384065588893988991966947284108627587253895905058692385867762742398186488122635122284666586791187075227174168293608652441253710283923511487627992954353004826655840101100928007823034145503023198695573175486006212801175907577824780788662750753233471609961564007741076888685628494058400334432155490569361710370420244448750725088018266362040603833846784676155391101632402578624250992281148802515152641666789351143369626333757296091439441654330042962183458279294231741212744558191901152462394665760438944163041967496672013069873769148047135731598045190051011754614634239863215814164654357790215064491147851649325225329516944095034457640544972978326446566582268149783508177657788484320269308884265995848263899742950763102062916151185118168148158159663083927212677896261860172022529327519650584969954312531394142323280958147323883871179128311423508309509375164873180681956692920496814738037730273130336057923340975406138725738692318542409629977186633302037831099605515170899699861814864040738402922345867219297039231770069365908444289376090392232038876902612581432306178275687137266735015468456514180273828284516325833531479387850508480638647874435240817499925986844861626550426882562565321783173389200121309332183128132314407755577340564389777093639790243380525612762245287364130680529082267620663320004606217343193509936684650309705878649260013197437719191062713957959616040363313229041161792480112916565456869797028659098060980565707991506019431654917719366000983026524394039097086201111763657558506015351972373120068679118458622814584628532648676473125297108776871475396820289254270681853106175807700977653224326445316277576529159791909051324820912283700370869126480410328361877045070881300925852539070189850107503115580700960159626844351160868939927506521551124055778881250809207391736395570850935291191684935870255175838281627414798462292994218196723160870007568933274507572540854368071356214818054039699852491336844309847335330337034194021863321894714841814947583695393065283858543455628882190142831719144039080567277682194166152251628969152035381352776402165317766452353321437717544228374464662968595032293956337445828277350230827980186508390435509426625760302251237489258557374700322464504466849248716111466582737417160712819535092825464537375301797234588850293441251699481117264893545744003011138773181848143870634472699153479901002503254262830234989632460640109708496924129404777424559227846979121105942686277120729516220988295696405964770591829764709826581098178140669747489239801754099224920368971519344964614060384044849935510595975038005335526920521137892562732420722224768019540358149060769071524134165294753304051493578752778777014077316208182654702572058155141221720853753292962653830671945428364486460331545775356196773324138431443549718354354929406224155359043433849205329663162482691915846513378648218416715814745619069519018922245673135441149795822806898495681297136302092343063492818572445816931934111475708624167548149629939745512764453578731366555666017969936364812815535557473104332899509579624165874242481867766600999417167403578938121266683058740074574778817897538465878804918220078350773158595030838762937798376424539414700019151869757121803863312490877436279664498014110834742596628841832089014116235345438347751089214537453897315847342960852807744311434047508833363583002079838097123535191011915255014180026319719206194101749585404765711619842792551740613579003835523677964676769227141849348526933908741140963311127172191818122099356453860810341911870823348293668129035696243604664296866084139394558935816142672674409906418623244645361705951617147703181948845651477919507976527346914347934379080530788563428569819939472794138661726428386061002814534485568863728670549422956138327571753614666387672064241448061425887092711419229690844152591449841041489690039716222880837874139186061654926719643803072669905347233241733474519506740615835978469953402034864926850680859963428434276346352530119210595401931529391209480259466477390385373518934766774030874501183468724637983048671877346871325946938164374205251592251562765259857357856391797479724958420004788640459455622131735307073806008268931197192415247786022102730559848879617261276530451219446392830807561488945217131338017697798689648477522664212228827234668264239535553300628260630018903117573705670487587332375470588168078260943118161315048701286429333729114559132308868430349884759005629067632089439154945008342355257201487437710283154744916246140887510941393216543000144535177479390910933214586082721555360080827844798453973053696139532773061776117538887107130428671859991998658248028705090686228722128861904776513693809371850269040795193826298410850673936328860050094948258445774847846763568884929774561308634406329882137566296462119860440749219264143865644143046359183477680341253423291916523591169500814359186728427261023947304176923778349832420865545189763362737273478227076731182428578992481921155738003016023592455778631669366818362788877511341629939423849327672282972877743478008876204266073977270760320672220109301176202231676353937120969617889530873002547184420037147628391575376490514356273372616334411272420759710428734793688410088824057671404852938262685778937337612072734934956061933050281644457378303642522344280538618165334697605416543685393397590667760399319827142605212422781010376261115157823022041028565073933112432362817989928506941009619737785468919194511784874661108626889861250808210023128228379023315589722582821937198776524239968535034184011342662621861894917400870298236739028668599182619926184810706558161547723169712289520817263006343760299441507864163886333668939910064168837725651488489904423055723903849042866690080645080327895140902315479049498811615495324732451715840553552877978305647371936169686912095607976934882191693267543868638677213800379189251029363788427271180510574504706584854469084898403753411876036290314514824391823334731377803815889272148591634674577192544647437899217551720272616090973722617150945688535898426062028742974251838626283506823967957109549388657677942793559448524664454384289156743572570369408883051535397557727993341505254193536870905564824360550753658261770021341145691197566300597455131009821098452966946736277830335498271734873134782854614954313471353654564567529503225441040341351370274207943086588966325092611931452282868911288188534726807909073754377709699087148083988796441449254449108538229418592369656407912079860033560452024815026259467728569178888109507008923478722555438242064899367856947170287533169967157397167834572653932046394844988282806689675321725982098727255919695733810578018954297306123273347121433472282767275501304804454136855230585776791638277446588041862274958688612512341087067829995847060134138360788335492393084270232038865323935439230252114699048656748682922463298397880682806015597429225558588785437813684606434286764780041598819065541376184210710354596019513520821576176438496770253432626507984423803119230600560221135590511777930139535530677246329103731745185203465594120390715186829948335632956616414154027824856406002766997536310607409300466779170190856063237839774873813718380574186332847941521188352307552178266363525552867248208809026864628545224038183082410165476689801643668941870149301203887257344947602537378118499563904191421357562977603590645177653306372381718086655009909675856173731995658417482576400787022686049230213977044804600385396714952303417271954000776667276605892002547983175319514988412545605066452685808450912758767881106721805511807999429114286336489524819707204513440664886964192924844825404988630490095717331508048739602209235341908065436093163305955346500090684697483892153476020144721340811317543545903814932816917564184738183265620431959002851474161637174120023826988728544130284391859665063038955827118404841479045099519445138090291648373276830452246530830411149636822927523968269533833130188057520003117215887869259014385222071500643736081075144931394387760557600537964541158772162616642677613814736036870508774644560513713181523532409535391746216961990183238678404278625097726253027867161017485212334428665414983015284836181523577217585135476183522216472126157644923429431044151806937214173544296571306447138591665242797880360270162839589090752391303090903082050008149262019115201015171900234083555286958187978325224180499229731559266278720149689514495050637858589925981730313581056328188716443806314639387575400661006264288239838181175192070536129858531951904636928821198292731061427871331577575581945794432503891745111094566519869353557207972670589446782867105229907266303706222207821771927673614117305006748268642848863725498829891749042599920563703399393531182163813354352126457996426547832090089908813296199687071247180831648143156299138703523645841065836930864077040378959942121609913717247627642645886607149448712550681944609100381725880463136018186927929182210430085163855652769746855413048875151663990993957524636009057784772329050406908824654958384064620747990440335960238147135463355116587976833882897574186723438590294799914704580211510038546553123628096733087560423350409373569491049695885165774350830616243243879327983046318210944169732017300222815371185963808133253638604206392394196721566471883162835933243915663439502470765399767894298687437758536506628091507253030616631977069752104700737557306336945499343301719299758255542174176060275937097787858900983559869994514377813210286088633873445741817393761067807424720980493159165592068518141728016281719598903073414750773144783078026854006752551572711965412101903185710088844230633795753310013643068429604171014771122675351969618210746789606877478617416587493892516677757870792825123323760866928512366004556780222628018196592771127702164879658716044734918964796158993214149578199351483656034920174440008177272117423855529745296702319522435603049776059292030021009031289950425616857298602979579294452379645982969436706838060034985884080754576887091020177121488191541263451919275216996295185728533571998404821806337331174557081024276607875889313469228358063905397717031831404992169902421703289460449497854989733189264535867972699683131270914965220080476873472471692863123032547818350187773823303143349938829225509162198523732034027034302051247672030996067336826105903040336038272722910006035230819460356497186024377017700874988821226360858047065019799603203001602072913357746327310104900587029352048128281216759800783021486264243955185744164617036944415540852700058165447941477221705061121618323645348005792820703723652614967641356985128039793426620257486362910054510950625267613068809189046257422423762514220323702262588798533279138329994614334869159024361613753854801705945834677988732629300051792467913242098944113097306397653021035574269636616186855230394760307671861045092806662524072148687085233345551416295279483299551381099324410027987898199122627253629584397770333685290799917605486731658954333951222509968846616787799686163754504402210629966664946627539454262219070969691746483646960323724531842577272823013324933437267594656409975207807580508694989092633999915442273685872864345684434407289049778333346332005597610579290056796045305036767876124566254654268456167275741810877945904091057418914596002020046249267074558932188389761924025933282910901671659744351912220888055054714237070816849133086347162273811829137709068015176017157980540504278459494642845885292628528169871138771008332064945862191523022468284711155272410043237806941588268689599242012554033068103193139851965650045057787629843016607240438324003458140841022676348461694039165775707497095497922492101887964888338290626692990660297743055491734064095855129347741238231370283124561291501259661411047222270440638053751826952217422200104155322531783160650647319909416011554742718855084830166106221298476404484316482076504489733252577071752696427407095205034227345508342245902031515698316313897210590630309150672149440288887230514926075635324470662324191032281200498920259422924871461449358696642101879085125164982339838698978898862977592484431452833906312421506716524992229729182844423111151636456946853919965876607828469004592633886432468324483403849494779277128972040318622727032303396771679644823269791183369839036758149671406354580149418709953270491039889774665242197952760273341574734524824346140900790956034083064812099733450597292807852025049401634118337708443056144134071320176651841938267396203957982918642474427692539325404902926530506214971329411220783396555588764458897645546845340128659118552867031914282790732660033256125727872025686298164008374769646732011841600885811783900198464422698533045358725071232809277303157514217614341017592890889476329532556032423633903511990769763136936324660344735467163444596867404671166839960731707208886384484908951010378851067788330201597692384266860854520366479495975866384518011268122959145222211841304443812273555973514865504804852863267063674368769651997758952104400026985796625450703178952269209626596163617767205932975263294104433341928541699149927187648334969653240833163877174243860105264066125398839684938372776012317467814059890289734338989302096128107834900712893366903077191706306952158895404272595587311574319914705060263171700101184212247329380866920937057232718031949282412311282233823749240614387055380759556244512762820222464313000737657686795567843106947664961472812947982714695894920682576705923662274105323931951582223512066349972007674712410561454070801648715651641021575189411448737122026288495647470797715809121246459360876530075784878876489097123345215968013607535886575679421221544594525926785566248621338040767962041608543684912143188996644849040759519112714984803426758913090141206225944713715888706623053628662381285283674089610474487950567894275462986848382218965733687049868239722808913729941555418053647175807774321851968267817384706980952357744808464399672443043174523335767025257161950811430826790126779052020812079306921017007059194859446275069074835749949734655233162192562480843485016626319468787940818752107491665311494795805724579131018075938863179513745051961940455147220421832262403878775100984788965279894540830754163741453991385816114856817008117934833281464533417652796324584236688579209295647215304393683992513406010009583443828461540106973076324442092520051161110694271999899305016844623954394306770829928234403835348669979234127922210193007244429789895564326127896651238339103563972646753135081197325595275595413235837505798404829327525946472432203293323370503470394006299947187404962298693934321865566374905355742697001201174110950803754879374348308653656470305297191148138159500637859015755417221232726638879293489137596530562675304457070180564770484527745397844213780362107826429529850291338229578248099146199098827851837316799336662572646965261401081671963714667538349683793001159423894550288279269263345475344158431476910738104061977517065670575358540153424208145407561504566580903651022582866582719719474314286288286825795615529698134109899323791155338704033358750627134986047052460848809461723978848729154223184752505366300193932477299373280674681955069769808006509199602093823946864675390117809311136807237589826293078785320902679611751394809839496759559115590030866063965675604513984984306306159483236290540233576703250579801859090917278338818634633378880460422557000738123335767426375963913560183558544306859748115100477574983509544083765892537869052695761593239339375532470176459814644359152405717490640508807683250919975392244735395818219491741898274595059577884330481788169126629192706355093974287338025435896179871821228408399585686878958768288086618310014472022301544633419034929631124926956817062056362583678898979698651162921622148374580177821798557111540090689636416412143630330932832616892463189031671774719381865811145374862976170382372872480844758761692974799737371523129754412320085636258399109782469842125446011112559120318309101331523056907646139533214893983760459265456116421008781748287923330560573626429089200103890115288904793484688282285041064361383598388661268590061160627141389473995654432632297239235387701662653468794071794461083479565020609143746513484107215085353731716040374072162290628264495162332603892631449852795301424276962573093290944568563684602133910806032088928245801214322170562191841572507454187447659559788517348090456028565037001255200937322616883653598729355205274727442389962545895844632605620880046474952255960167327621044637659827465237136656151920225094625627139387671581335965712779815967484665943991775091387381494771623818269929374360940407628051308894788645099241835533835602480155309581271406993066309086624153016186653727304402870172055558103851338746799071272148296942035221708080196135761221659680699532423197457602790600853796645922849284999422820261774030924532368523196080219546568856159936056469215903819461427197333598979091100081728782843380774177770843437602718668242871118485252065540384346944946099505019922250572176825838241341035496009268558083837757826712766751003559043705075082281534140826664939904439613848668149055644537722114665198999547598338532782620830795879249777664974145609709512482307501116843055516895397246721371815913363486974871989322373124464544718836746034746443951261818015238775162605566492735894111172985967654159493646394773109150645420593184613251025166727387411291695698661264126284387734857978848225684426930037183321208169359160636697149922545060195370016763520102870152265900406074029033039624026622689573888196537024731813681278559994254918438597768756469010002883520331233711956382835552439093852700033573380709527858981634124515752731634551289709333018810524589939210158167180230588569719703816075607143016148627275695813425129696843108841497313066872660474162065486288790538154689415474566102853186622259648847211555315664759527895979854262551817122400185480308070231481479155324229695879816495530703509210023253009164446322785624130249204489886480991561063201170573256167039362793141984213404178174027365660697499282094589479353866041286386426125449778353947999877253657249538299887130691350909262581412357354126792043772706923140427031611621964918763285480695008593946685419143484932826876712216884933476152864345064515381637270428561846739188260961057754986404686521130437986348243487950782888970255411088437701865991017268416354564682327381264717700746587138193018038910089322012882116078200315724040633056477727179582940520786706120242724276629923589982322263014243414199030773779208164305452511129441133764702623442419658716218349059121429536056740174008528739227631704332408874945759639029747090688903523062313808593501453615745609052939846957831099775498801311004264928190097848464920587284587636638378738437879306939872715175613598236785939697966057926829881029847424594433840176161679479256792033328901220572304420110508302743407115639434628264794541734937374846467541337949564048642454953502601365508403775767554650237011988673058767346356227551050463674288219041009732818326050630293905871338103618693630874376643164692045508505164062390206896060452267957811397036519627405893847376762907598142924272576806045798546947314693334327660868718039135659240315383590546765037310806587261013312285337086516076376691328776817010924744122834134780639777562844611181182235248713134529422001054804913334910094266394539057186016762921028228306072487954643119209830728415486135536919466850209062473640024904104478897354256796669139143052930450779160438248373969989277057902687653250433845325469838363304293972176697842655054113973783634756976521908441966447219645722164501422308537241229778440326713234067209459743181728061177018113041060991405184943216415008165771109445800140191055101621106211655136182180551906138761925199520981517955266077958315574545023819509745430611284576007769878248500123575430625412347776568143170452637082384732677364675575288366980763999512579502376875780695496101858510947215840539158907237973921850175351889814832804874456635671881385007064546054970552770101684037178027621259855287096575621716403400086268727513767596578266368973496232404952125706829250566337631633597781619117457727781330406409588113796168169873556721313878707607307084168502671012077839649956923125030864787800140361957007069340096681402573238745472243743270135440037109674415382387948182056044880564403363628002987320006030902583475918163787845605551449901854356082729511965046551279231396120461734725326664769354042498394519912933724638156330263092945480195332488791103153355558778731940582716426958293420210646623181641036534887521181895927122440116968322923435846460083581216839727366894787908440980429335878631625579306629502354771027542808379764206651489572666236170512692740127391163941413459646124988671582624408545795335032355907617620917136267931685979450686225232401696798421102321896028511910975992867908802645153827611192871781188419309532412147181461613491359658374971776535496407384179149609965761046077428128538477325333421836733900157410990144138361001678242414561789352382546467663733258898406686589768985701280401921531578196643497361803594980949086651140539137055897300661307351249375414850890634829406454204356400685070699900007139842674341736897310030577936203241838018930614017656689078403609834676964257422796921044968464673096718580741223358065530384887437313605882595487260920269111598278326170598035788671975478625017358940625152637447096062155179428875438250006400194596386938776726924174910785951693019575845688691624779231507381016884827149968472662063565282242998089869455256759992402043816386662528351496207086026298465958551421183939888805797387796954896176557340475572564060896680303294380448183755859418169303058694381447404774803156617890105846589946104238991378600287553534778591207594901741837558928402028002491408734717085078341776310392262205473394722467303611914067875411117882755481869911395880124096660148170319252240320482565377146339547634929763072051906285231134445439208559703934448718095528172912093937607672668891926192195669171799469926418568616172037553043073362667468928131271972975165106038942492877260425398504533887346234150442697178091203881779626903671405498420115820284528366090346015698005008926147951115497341735474274566541292082273644173234998154066105261354337344231107878197257489924395738034729683363186502608380552814479380343137175319120425122993078290597681970410891516281569676288883055956011877579662924416862387846233645813527392846138741517009438667420827107233441610557418716037224204577302745315113890792020982432805645828741024241028703667615740868468874021347628145702669466178095632603670965090771554990163134246387569294969793247655136661249551948659213306404132599141985574869950093030093683092942490564748416382232657601519308360712277686067923413931074220946675375366537011588157079857058694447398068238361308833835176692474473484824990261047135122136972020168536690726735026269687295656627604694626959654392529182941540385387632976188350974595047118535395997031873700059855272705495560456808398231329153052868076940327564830056101160322228691915155640235821621971507048626738236221255488658460502901794319275273411205769808847254048107589623855149835616649983611821408763639980653247589156866387822546397880173934003384292341817195339109871212527609407234282065011835938544317950683445346308559312692941951414963131357254994471735535663808554778813556390654443714772803915763223677212246177191242290122311807916026791851987734313082005918757585423748833227472628022366456771204246267326521145704589913431840515370961509488013970967968481173903107547305922049814058049032092829489410051726042503932497358765839641205354285523927960538317450378378203061080873787390810470557595835522687955940531535386642246467052315836627742347141323397954954036620440422651546491923436155474087386152391009417939189931819251960279981349561934948706758068778928301736193961420772234401478929702324154971419757555247639867159343862033426737972828709676729077872398847881769432822285449751823745507298289935486138353147719444464384090560250909558842183943639091279195305218813791763556814317126808715283488502994714905867643887018753969009792872551302348306209607189111221218472369954976802588505300983788630844604561843296323727504303485042532917141791438660544152066406944846487729973378834530483549689050551128543507239877127194525850661805151922018769358501966943909501006071079751191512071958782436780011218583829196501480337430063031601734750482990995588267621170501411368738543379001143993003758361450183075860013586770110499837048027243145152004744695731834812147218934803062402749869743582392306836558412255654713048124194984777223042434696826349456372059519710452610437161903369704539460992556131188550918275458273640022290502711070187061191760052723463829209492804763529077187456599915874733521846958604924878775078154637334202857896254939856430685918540661199629964892889303564941256258540849356825960524522545190886520050319464015192970958808434539460162639988611443517551908340451838249052280219309725249761080569751034577614040323089076089678380955265244532695833926834689361314004977171600750007720526727186478958392629824236671016576677189230742362311970839807030386298524835751711470211440058918790382231597893180478586052569399504750430636511263574579501751832755230348391675071571675069448008555223363279802885355915167673765828878859330974108271986757446375673504535911159384159335486648489447452318311285724230357576301888336996302513297066710820247060506747664126259434265245347327568672435725814432681503283331563245781243948425678457984833933525267405722720321156231992930191373627547144632899653391429565995221048610935793194078825555455712381345937372060868767471523829697624165287158901765672056985760815110603915728147084992044519754126913559927463368891151382043228192562257407243736177321469107976705981805044678532505621433692516547666192015520709064111279011483190233278152298985040722386091770054960652205454358954115270260491109834182920266814484558274917339710711965532853297435456256870611413443932298727692916089275140605977256150821451769176170976938135827269980659759648627925511828043808547708298584300679149611721922908016025488970953954843278068111516300419209985683484261561181911989831183600998703209027397064273983364126834691989291631371312940495054769056192594135164295280468913619805346825361636394972488908224630884930817743512805217519517299393636410142310486813835678523831379613245060200434468428014430114911221352294286897956088154953928601386662005983239562419652089154667326192605703755493147953076488190942071160625090172177541866223198723558396663570793952816755306946632223961818191344242942870553340243790741523156923477482011943024305857073248551079642009005948450648832261007094387288102298117460268787841301267848877184576132641271759683193908627117376117372292528120028155432136049289459636423184439750401069366465529709011563577900469764451212428582566169617298708555813580133097867493679669063873176089769605770264204067991272361354054873662659612070866715879353943513757306137334790881816937024142769302037284690635585105673554540632939185393082185643611351950869026512186112795371277048544013263760351474020508961485019791513711038100754839674437887562641533247002725017697024044469119235001375766808329205693278828677666192042126258475337405376622445974046991963498362417799398056003575589004876636516352492303835809994964383531657458813385730779523419571167252964771410617065843176376997292287355553013370901715798539768825003504281923535033876058644685336188132588426998259355400116246587338641874625716795760116075130489518106865485026263112929608488195439151538828971049555041280900401167893928099586287387859913782190058887783459317844939280772073253889225398115875971966902627246678644959678580627248457865750817129091830938143341085746670661280577000011156591567501669975710043738939254947070589131603633478436966874568518741850097069197062813614763479582083969851890952613039993696016812179964279109648993353164085537106363722152801274286623452190524688764475234138141102438857071161717443467640680622916551837456483768832679921662090305719227014422068439754803563494434047115145886113820302981324804454311222401384604445339121458840240562874361950882445420932987108930481087792297763922654300992104784425551837620942065633900865469900974244550214901221406449206343322585697102619630256819238565304786618026869966903666735641344435428813267729009656897037445095664828826108602978701819107101613927275858827014458315392710123739009647374922342241038430551047016330820901781452035890622233057137877754106727885625503092048511669102676441691689705831174670099365601552834283551011503556086248086424705767441984406868982313698482058178833148000149826037776033176764118068258449656455806153317162023771825983387786060145169326853025296966518385262942506548494485171930883871183628886540434762158599123385157389889400389373396376291270630632406979882425188898774984206004240666186333745791367196399333309424996196055521687260085540278275060853501530411979263058772285684286194800976791887752691291424697093843403852561216026248685821373678377751345835713095375559215377147282782763441307840507270115246303785894081341075109427384705539721820262142280315729773081278043166330354678456082631586491637435511481784571474826103168677341423631519899601923775686602159017127851410874893320754200829242657699188020691888824040636203964208582425758769554972031547213456648726137994320651711498803316788460964472855441620706851741094530452766885912752910231382147674538200000855984201923851449561516084435143788832993826741682756127785277195841968925578065997342925931462053224250179204299025431979989842817271321476730777611566132234362041429271138347303289755070357822495468922096934107525013626176109903548450975194121439802084185500662505461737440782598463522138245087696097134200884839491251758728621481014893546427187405674691022769627990123541775634645465747364778543675194287020067460645114838293868906403594481025885956182102577836890616313066316687676379682250860867514496618487481808595729486961570666424169100351631150053048192213772534391535980960688990519829956813508781971119771890645582077705324548742544718550771662860234539168162689591925784505309880883162151973697936921929727058545909769897470032918637534325247190873285916182693758500966152920552769249816449442436931943799402802018494217425466608495094659093219341687434813629140836572472876167526105853142536047075626029951270126958873522589270194471125531426471298712038015152725671550323180321595085541078910890905450466605792094010727183749200146737165591153472433957878601697430102540860770536087889596946137280389386935935055108741792221099797268493541160642789315700311559742132710966061233060373639936177962394272667803266579771822900973061700531956018043374354186177588043679963455172048459819028701046599518939561103130051974704683453718526267605119949214072269408756470263043261727410987148210979489607678521256806703687475770498762381698558750729210501888862957085113309074192550985841128413749329544551398605295622462983819863558941428017751124244533741729949018720060257738214326516061511295501805236819967034287032446398526753979054555979829060426628022936104600408448723376468349959561832561442529718974487086274016610276646499906089100029430052925636953482757008517989086429431136008269236402785147881519078362197921341438719775610484663649246169017312031082622267780510568025162428824526246340226555575178852228190225693325742336869185175911742331934926926406624085754603229386224510756443392863243840380758801085714679444233447877688225832384091682039559944085058082054814236674278832418326312171437376106832954826106058750809208729149929665965618658881295968500651065924568150795853559995506479652665643467524775241172344756567893729015465118560966268239910283761835693516028223996527883429289731836638823485738021132393018747989900737478354081854422722894086045536156282927452617163914566212836588626562434681024388559217029868313125609824166667117862138753781607325673835949121317372975529012933060958038608098929142554436500427939136493530587381311073245719915326936644450026025489460126695798481986797313824794871326873621770700315202619834580362939544140431362728556368095198451693374402609388793723774626763582583971122993824855147173249262159306100142159608111280606213932605645870026478705522673540399947434063631935858046849930382289732484025974959474254016020265952565505121934372734712584275962738862565571880438470086658083041463077385983711412804402539236259419668613082283290460500838369061145862308804545538779121242001966672994127626463411153064690120304230079047977979896416817565230471425908028195290524318480987716793913194181660416448345393879777044792351215127969234931691562539133663893157254054659931259463638288249773965091165330311734722197656561081362262469747272288200584768855313566864639482232301576458235263584915878292018053436544585652200833480467139016656563085648163212208390854744789343262098080253732398412677755537749631817825686062328835880002596758494387513870616276680022665008075598654830459891176448724570984187733237805308492932301683841094708784434433934985744770981590527074099761443380895444409287939052139974993796055564970304410264566969636505402474348392187560824591714582365017922205090889184812002754604471861505467545004505407445766937510655427747989610968231631984299156517144538759226490448353752124846924586964658393777660967407794961129043437322486668583741260140642402656849668514110651363904450981999415016211543992877380733664467359315529853354402174756589222281316063798159976455776288014447681271204554056276440527479410058835362729695629040817493640101639571650188544004114937869808359448071551610558419214354693308091065296634348209828095687518300274731388078776830847405019580496577098042785426883503204566326274076582517645232658005856172934062062050590445041704100864927820464167239964452877842026972094282724573535701895317930861278435200520265024204703968914466270806636894420744213974214461951634825589556807206516336779173251654344657781383182254116378775237466220341341710210607935610737632115186577351331267174682525968882627213129033954833553317950286837915700992058054395047065221609972021960581545930378996488075346322337146636639775973812889226897530945091129074432357837856937100027747576893803655418407144427406069370214073812562395392660041894610057949918992463356980811571146686973826695286894564727757933250413225679817877654587743785099613581038933034167824728090427585631787742459028575660073369381072647347314391288161527578561684878481151322170964895741982816133534157948503124320462627024354211484107311471254168279833110013156461032507862836511632033690494145144918169645556414107103390769804638103616832785078781953668769777317207102700618289865620832492257458164105670962260283879427922291869097001669292483699700859206318332915030064805743594883535877334129948967040821231190298592383970385569966059254434941831410462681386783955963368195990266292802289106748232796452758757898027109113440792484399090434576474132396194841135137562310205986259070411438868897567444963211998515117776436137474006620588220082766423039405083746368882650063529964110638883982606922092691148830408149914131810194194562026646645275359232121708490048276742541886889112918457789374927519888125844406624464353364577162465609044482414546480891598824647666134665114420992413889757040293116975066755574202113577736366810583039945582207884900417211264024025863726024476398318521058753529518419466563631530705498274242517207419739741930217525335207278963799829339273488372534815593966648926241397872138001419190047340492710695135623806667758541873831008077341294191794300760651421382613186630354915459039196490214424473373488011214747016504479065888587156358858506260806084490276489322425988614863497003868148424633553061380421171442062387609139186255873737292151593768659165583647317121786092671584364482591449973558868467423983644822314339259659152616721993668306004778249168583507277176134068097876892362590159778404261614745795179208733117589623375990589644265180709448056233993375351235361504368012181734662191326561130151418517496494349041949555883435805950690724787472202645133313087677888661660107609560320162461233107121953353376813609956494901603911094616872042918710687197496324685591591713288520950091154963722267720210845825050934191001778277574478147535072934667393096690302510702453230043048301914796410907960837979261952993532409390372103616479472297387388741762882436874728054416921561073820383084739578374989096203299539483228804041328463029770142248008247160244089687513703110550565105474871670226051066174338437308873149650496162455339220602564604527939033174479036384047083629492827890395564276022876377667050089611271035713744802751685164642839260070594600352721254549646777544315378611291805383015627991086219657254256486350442440637724086112306348822112445129957567301163261510396852302295170982978725462770670112052311456806534365760389888997775028241561904476754078728226977037018431779828935990176935608600599326200539295566467811195279769544872468786767851890812071232310428527230491599558479531101608744369955209694923445781241222160892577142621523085452765425439893015928451797755758503138325623277220377458785395512040308248760620301430104096429014066473852162259184344239225032593304707435683841551507667065997469568287207864314414477488107060962054156299278574853108954120019892626496034018460927687926996258074101625890852039113571401083343135580088080095136495791002739960670340784106513185886117371401663392735922203061601805985877193904508515802084658775606206498555777785172894558739522311796427937812865916202158956787058476318618055704544519501039588628582680215115668414988723399298491903938130293105511730106670129208590002006213842403603190490903836064475283552786760298038262394928110732854216106975669220299005454196808050693765537352166151521557172472127325952272985481972468635822140816881630978277048183381531543434210158956341817499258285127481132021161190350508109160136395762144258930754967296271959775511134392340483793622377371258027609610190575721561324419715051566308820581258383966379508821765711519074778201121812384373176783125489905573460989890300681559459962580355071931526310593883846422284983235791322236228968669704187092110709633434694035741176983819352688250142476773820351628450597970882469471437813633443084960470281598810590418801776881433915824200427358247840882237126737406730514483222759610206471617902868066989437837477247404375123486420959482792171333705613024917623500315419783161414034085850813319416801824912996884514615048356169755784867765475470087936492852465035857470927360342774949685234617195154059516587623862875366413413104011377339990818264821328100534650128012308939994494666704192326066149808159024119221577969955253796317838013884537460844314183383830718518782451622533321792761204864747110000964843921499132546094471399866667678761417832783667264823889761301343365168150065796906333511128298255806008700115124229230452180246605087801473087144388500821178036921352091184925613804820495860009024756601383092559852601527177730299319647451206289660001980616885131445374888998698344532916215024199166410877699840408843922486335774608392457465221983995816888612908683639476793309882400853388417021705057803096526268979833458847904287070593830939622060961107635333495727672004111728573797205649707935213595792087804341804847174903067460732679242619886277172924278579794687339754555827914361772131662583400910590585970753279405081067664222127850287755643756684187978503578733243758508712132751020788201455847153712695261166023599649854340846914261111741352102852989640997421356892188067462115553446327333463021421959983444492104517482548107415336482482262937399385888676221744364394667439012265231368428539668306715056671465143752116336308872658919375266226369443844961209799876158729098425716826859339332983649863577776078000727543076826727711341776602866372880397363147211183615961079800590008281500611065851529873715753227065146967703098554435251807985284135386975822781046815577756292220465342063036236450728116344926561353562803164836584049276672695896080970749632676091116174717849252112252307474211457072613583595421678496243534253299854271117770386745951785761284000590584658199877766147476797293018142760864217531865349299934665710829829578205382260452812474259551606972637030458781259450750857710492668303348930249509558020528058174772334842736751927809091138786872752329721997416184236603720932874378933804931039478804837600330892611389816280472438612454897862881912306026264704490252608305783795314360775097134381686493788989047398324871798607708325915092528813059429977134682612778417349149077109798989469543214928659050506805085183917449444046469888389581756083267624287570300039781607386220757935812940233879405681259386299023029627103252298379953470259055161137382279320426304682653583232475246080770421415027542673833902574598322998035118986193104086614705156644177367786307027326134990501097094193268144911768109573375442245475572573618353338583786317792897474025444493196884654435777288977262824065421711203361225984432117050085426627738798858814765200901049764110111892478039814449657892507286188554009235117687757440228713076289819635027757020843026971773996024602328669658942302100558310291174647430827684079685273204118123954888951470634373801639197313010387307502741629778100938151069060229161436114428666886138817684136482363813257266898389190227032893099342015050216607119658218648958885225136024741071572147265952145366310587720988751653487082162386475883995518772594228175652057189352012126429057572367216535420825480372374884158946342818046149555737317511063178915038980387683061400070480772415049218307637629581093509935186037794910601071884646447246564819906991560016428391687551985797777304127393268127412629140194604591169228226748657734028990063586386670360238063189436205879323018645004545058673115053870392082897642450270011133227707385405850041452690015692980972692406641618019867532432153183007561007522971711515771512067219028740264933138647772669046226802028637635628472396346883841960140446730562627264606352157091365757498577970185389467340546261710940291292763419465986359814076306855185252769456146474772982906534250897663130200541637571834740743368617144431268291828657196665664816086186595802090574858265286473084995789821867994693590982523158545685965025662799262253191384330096407706228564856783752373256340119010356953049504949084113147921215465190287319861883879959865030213928388025633702532294084834460505919467425149257146525098588423173691834644563202585046186406746221030628013343037077398680210938452399445246604629737629795734155260161651167176900862313286043517805890976167657524116327945002744499825966603912219437401355047684604247347447973795279889433552478756625786934529365640055749909811753322134657186602990429612143729896018735932260343084867296464584185893952761786163020018421400696857365891264544966618148877265401757705130009314131341883101729355912430447224320480743034315166060054138536110097491925079788428089033144949884924371336884199553560430562966539184792019416220332541205753470242503410719286016430793590740101026666295728462952717525120718060756483716920457112482725394033611063483258222169683851759980636761423673957992834786577745308129021462053965504694500641758847307365165110468951034305058608548038172745005984704461300956791060491032470890704062571419317061028143638746820468495159841771406989581698709758649813019695999708610379106233949434757140190293725805406215284316026466067901385758839398208096552820525033024482552275574972018540162802639560974036012000305583230430767889415943723014697750729425867577454875179809661845917367227400812042530931880031857480130849735230548459685871540837789628822057831681654766195154916061129676509189826128351284560278794101375222246807985011553757849188370209766099120645366278033767443952586571067814389118998592747334725501219982670011365371472539101756931594730578171878202336423510507954920277559550570592057731671021628665344269509308456031749546722200093314723218780986507384778707278466989166831223027711231723303449050003486734184101475874519838772317014500801430187521881308437290661909839529183326299693877951050407372290407698169524083584069818304130258760291580087402961708750248192116952591038191184351034498915816280019049618759945557082017218921563696220522032556984180252162460996051458086622344601590215965795575759707018459678941562819202491965864024648832260855194064977600355391032586379096162333049176045513852554002921249109718655061303027263896862625850238507411472283209066641137947685370576071928237515375669354804177050921233949435609796269450265911789012052514118982168626329353618373377651010934248807223516989706291520457844673993052393931073612683963758037459315654994429990011692080990084030983606246138033927242051606573634234406242535491517717104408387771897204191379313075220407361542886518016734129121647410381441148067614244826984281488954507028110537563680309824730008595875791069121891059750812763603382259798132149105284235017190542972885875583218140032292140042461041715651692317875524336955400867610701639810654391308714879686127942546048988044069435945631604818373813608978204322665070039230028291906607718491151118495025417858151484337177690634986867334938634266724262176673115865171204023051410578783036420381745619589684662528926614923905305352699157157312083827610915070691879409295738824064219921303931656860087271787743277045133663507434400716684756591068306468417438987445956582560417139389517760796435350027210130315355014769692480585006287598000973464635944790334266315418261660395015499004332171317696082345293177489949090485784116177197734478425848704326933977059013122655295461967943761711370471561619373110791572250581280017746606795080134093736808805828200212378558383462772655989670288202572102798058017304135922123795507949468722366538488222979500847541241373360213378002567430539016411619199022567421426284209637295587304618902173989692856916487155618201402976378783100025595426783398183822038250055993771038327695627632539125553260774284188959674788894489881724022797845776679793748472938896077070400379024279089449540972102764878665821652277261882934734700879355223149875420675540695457932943978241441946283679609492188416703715991476376520688832280020043057047724959906201633848040580750026651391499712687094597932262408704755380906897525761345864748084532882981552076861693552563425399578530291092656707837853284580461450619770066639442130021005826818448902597197060343166935709580134181321122223331503478449358130016960396111174226200556858892070988336997798322713350774072145691562992801277625720194775092317825197337226432554509914111511073100564190916487797474772892904880121425224591710824711456901417675092292200150779082024222757953371762988119567460447746437254170576251551266432380845324318900554684171420083458722582897564156013941088542627205530879902202349045099917563084763927736634286758449479086231301711234862762417239598234554597779389104175205259205706120118122681177228697357831350150831843463153685718720337687008150000154455544342254725991343386600701826970326734703964304295860686583621445673512343939623010771897434918030872658116034729695810533883534323428657986947093345610627074172893782462530464093052943316141478284831518275158535810820346957392270870337734638074496751154039200419615761279902269760163255511255385684921392077328088796079299460181772154187852037564722531113827388818495554402211943797236378719954680615939582063943230492844355641623131377774239693886303463245255618818156615158322317359811934694599326239887094248264587595417577941044418269185438181372973017063042246409857721001873965642409778311137638076290413309763584322366160733528390093625727192860670308362574986644153644014362791363679560246310988260434993680626867736286228216364870804458536833415831335571411511385154053632770794789233064360513772490790273304795263766446070664293187453075987084258264253893442207590329573590407914532029688047100796407849495616758170038391770243535681593448365153287691405399373935132602762406786330743808205069397344515497306386155382987744277328219221825508062174578377222185655980449528101772391135460569142586307357994100071050303642904754371899873920846947775371687103380858926786038294377659374552148006989956531032424203014575966702596266834789430869696490100153395127342452679490986525109218859766597318383298266898292851365998455419768491364129906960548316992415577030074095913216283622094718749917351821597557326457903099784927705335933029091873400760978255657915105811069685079529061223612517303577089472767157918290554714831908573930620922780262290036676345903098117577795519517901030237864205132202401941689495441563716843201994617807135472581659703354204161017302843134128739964581169270852475704690836095591760828471523781703552053003920338684769132581955159297966502716242890137855471746920565971944575515362097316311035302936790481400214438545840838086640951448460282098005497503263335522207802046221124981833877379592227242378485839110208712976034516175524728174559066850791575362568781327299377596364733292172456682579955256342709523303585870026657480809206539281997874351222676825726764297168750377537416020854817580712593754469659611249460813723433194516769388502219488832748114974986228925089637903279727955931424486778596482869030530582668554446927012927024426034533212678443852029462467884659771187475370622822678445178206873766295732645627442223556313956290762790322056100992610620895286634584173003087666041506452037112261621537300068368204429291792761277321926825119792476025929675147026378095946067209857465044297589159733788350771101896231153635386344347601309901524723256252923329773948950923087849569189273447998059287378376876849909667708225880352165965619766425017993079135589487158562045165619490296565648042077964276827362542167130309442597789471265161432611949934276383502614818671031309814920149881504440174172290704813592824380640155343541030712543246787348047412489606205366026102884077325333705108844056593288490177464175206050586109005952965320439506806890129936657357189246223883442508451676745974601302600030709300699813067861325072991535144355501163386298514828490811505845203716748748738845048454150555136850282152108786918522696741815416241810810572926352106206041250932810542731965756637696749794840892361744130716373494652525788103544001081327192061702108340400914593387897876921461008962107601256324595459699128472590955332614508282796860186708377819331706675373446671558649527355178017595405630524870437378971167629822948315911196714009075237890814828770025190691234613897905090411459718665130722355541555442514215729406716010209787622436503822098280786018525263059535063610812625507539217352705212880200441796314456738394742057124182168793452761342297513977588689505594654832823256943271221777237753736381943774011264370616547218306207835849510156367127354232378379802328256118650726491546894575295462773180571719342927989268403717434891904195138206015233407889317298585024415322130382527391399103092805454027102196990150831380206465485111904521522448820801534622676902978454699660709385122421137199938545246217982948438876308871188165983370579030440494668608935295561957559854353028220305363459896927072625138702608339503845252913088829964570745514648653011043651344190152127546738822287707966681063958021497205737571080796798882015861873244701932001763991633259627517518770424545362050325836258459278946957517132144488566188447721508658401822538294958775364403211440907733148489943953735928116414695351853495348221277284733538270700725013427626494413543055426536084773922318188868636345529136025136969563792469019611305269028042306512692363682373966879897522398985608265732278041946351604055989512904322975024053474025152601142348133136075352019688486149765536708619496591835417777261654223297946714438328407626515639038504546813819388855867885137895671519150351938069206361396604075701733376299694290573494836454379924248927613471603095288430567591965073061665717971084464000689802435049105656060644721495651353482993745742217831386713436358975735387465662325441785120470767938124601316024011468491193352049061688460461985426694378404371363213215905889556473774596749164212008116243877190357295426664867079606883737102510495502270582611041487116570229262280529673310561398605151343909810258293728035849491364898383062999208843639618199231551287782715317045257630251659318760819247706559403028782093548118730136514423008347373284526126499489502937910329264626792917717777155882271456450889245630460951034844909822265941217007966036654914238878493569306209368274740493809359822661782992857788841300160957064502233135547808925094897904582002925342682052423024616432933746467192968337943828242872833294704500866038290034736741106953277625073567897585931094791598670656215827469314739212923963948185520167512835072051785875594212934426940310079807607605955610919951786423263807163351856013819031713098665833841868684307381637409232734220244499048712126512130626438722438164769694292456637137394563325418305501523403489729701270746317793107445234184174242460806578460451834204535934602798847128112231728051009080006591105246555630815067507105455324273638917714701952476436678352647219047880054970413131396250587338653921115833891058448915927742222390961055318212022471050148377025779853293458410983073796017229831193300197393621946590744440397042891985170872148520846515197383202452284511883718976723497898352330633972621666775273445054367680818059386828301565117619971366766585333684489957041335511396221549149837711952713365397589615454666908297673574780589770028893895622552369519658014972431781133144843570623458072920023364682381173864038202790374153951261861278302022094869975804383428065999071486995933214032968613277559134673197121549901994640131433525735608854843959860854236750931018706388859783146983972993025580669295262018999980736857347064690019565878281692456571440553865607812588349874372161013442772806854510561215491454617028882941740882581798418672915228569559489829969688173572998156253388630661186959853070134661317066700792743324498570175678895733208497429056286713417500576573496270745805820741528666158104571623327092922841245748647879174336021020849597081380988837255260743154116043275002218249743840348700749214272875110026467677792741992172012895219537149987046001354505987707630859237989314588269152067343438336491450247175762860606334424517794411082099119032755780155378719271730676444188601037850005987415637547416407524129180416127006025266592545650762299639322020020153591736038730590869271157090554688064992237585162533398366306315460882743761792608686880980664448253724320796403769552702696425781092253581202689598888600406378864592357820330234338885949441405048851374754124314191269501491440086071215434107790434256445788801239792589035955552018502119617777130185709669227318982259961527285776409952064746965036781506569375784493369988904058429889274319303048053082676610272867253775490985403185377548688320750766771368969717542541827874142551723825079364601397130622990263499751634925114869710088664980518774285473115453604087210793067884914590774342540847899383416185373556558996039118362835777455536832815755031634482248212625782405428921443507641759677159217066267029766174045065397904271518646069129204296490718129432966747206718953847571243072720310754046202776015080696427180109430810893608266834675362822643809542016423034242655798637210453570987809414847149481135180565983436885876835387626948727140260621680195145110233829194580747279949552292531621575475922577450383813017989466935618464821278553788122782078186747936851904334957402072640348741515539494727530572036398132077536606805891144544427152567604592213472649666356756682508526744182164852150074552600382036807946795612094746191112020487764942037617999925765675650451414257543951895828446608334316495541114821494452851522639620840870714533617359950509759670114285998286738425071915573163024510738998207041402340277672248296154916243782076383558559349734823419389083766316406139624531360308325413612366854762129483385198225530568454096781859960223429685871130494453781694749402812941532565626445652586346091273321647413123481045241437384361897805382055989755648782374975263927621851184162597846396415522534446953911040056089981473918596831981072722048295101388779144580141311448826828451857006206080118864232401741414331345020016578741445491891817677967210038008982936731624210644947429669609431799751986775674702575526238992178432410250834487099709118522467658600721326020188280858873210933318016562557766094177518836310606231019806556567112281165997649353791483013753366447422612676604361473913079341762355609713158206545562702587303066071744670663986854399578692516211099070734590942186498877394367509818784148448519521041077676407641054464648166602771605177811390470251191713893411660957347844331974937427663672662841284611776635927213705965178786664129671221076719884013251817270212089156066358974626325049252831413877079970346992282872148247565380017875087816927355661575129681486458178022568405506008431852255223247712612820983110652164080290750828167430106636830491861531574006786442299706197903801980456612820644409657135625487728447125542457727397929404034901452064431187721766680068228514607951422336785818196442794771108101356440800759016710688672642983967626675624720791486549552065907242392031967462814312867252596442644727096312296684085874917356021488028840950506615304946701597382192577558073905413537158903539633035064633584672850611919917077384214125611971779309508346646129877039863240281008386804894938217854956263892499285415466314372955041614757588668287189592961518386060708917512746286251906648046680756961855591235297853919472341545698902916337943105923974288051596117924907840345833629589665267808491161578016885123321545285755486970402854307178479151775123355252416551631443368849893495615327603261673459207730148897891476120423890903778643782162482961452625809802830951167062006115164388532390875465099787696871451798267404980921688089868454058014681378062347635351267826460581326569020837427730561672446462084717938020144616375716452191875865685904756799611840863266490487044013929520479306296975072824235535218042378296242659729589730277546850742586088566501365994678699430174210476551999887967818974334191890506302351677307344659908145477518686075401378337799766857333135769825458728643186532254072218554745334116693982986449444939371925156824623584163491174794160922012844990419646121815419455282781220063990037853669202429651582598791607601861545397984646986453080620408949421549093620554880113396587694487714053462253412611163470270409221588571750079754006768614439288237597979325341245466638915690557929408297612653095886321458066416357521553098725137020840793720640973945917199147516856325244902365660627043981228033847709241950270006341333369831172744497550743269782842817183239173603084522824648592740484442548110391365826546806547017107407359698624660719336943669003820102071290992791136396687467135444488992605531675747792029526352916863006103880899428593506349676829365383665289855150604116533307574840505186977501780816501364910588185352276110565801063765633925071900739337715990348596422106610687876036815183287191179386279159159720727682028229391214747920661381486430996211692472821447302479460802567269673288190282507792550872079274597677017949383205345790781627903886974162218853927877847382935632134391699368462881324222230329012468116701867453350745859414756543163409825751945611144032914750248423664659257039904836453608411626954784981511924775673969235955800553831592486544786083032818880834911700416162854888188066559120573149503396963297490556195219042573921150676276841284974605646722510415272028791249891709941328857324945151799417002377908306953185315709191879972110275097020718955324318963973948137130217510885652101845667970488202070086324563351915580455746533857013943537077535044373213493657561643423912150493146480836573508096654746387937297287443338163286429635487735416659223272202671496661951120128541700340407635612086019967290195260311315586382740716190079814266728709980897731789653429990242982127018200401292722088814382281022514750956163503426053747283981913423671758231637287180948760176672783004160595818185035185559031714149425247820291658286432891569819459049454757924134226264946021273092095837382934838540796463981511037637318416878624062578458340707236913608214217669075848398733672259741462984043593311748173254345814624482717905728253141013244248397940062127606651407416216034219215591532633364819548203264602531206451713908366951242438462890667327084917751269744456395994481991256973641584326089373992904839603623396291835216747818528305104280096171882380925245788059656657142762445403581584897383631187409849230164856734858327053461439551570082422247231113631214714194503693989913710218988465682272892063585718490064587132224286403891644637986261989233048835832362365108502019455887130124005104983806384511548079804651115036079456150935405470082163117182612559776322390131813466680498067766484720275217548246183039638154916007613072381175508678933970214440461906141589966871002334220997602029788771544730965170689271841676647587759241420345469738770966963620902138527571093321819120360817044487547445603508733217109527741609382333882519186752018465254192732256469496631932864665217611416458520964765467827942297599926417068501857923072805737083663421730310313337380718509747805143264187270298526029625115600449203148421891234130208614849415956282596637942734652808107145226756907192516861252219106038779332983251620871572519468791277354982301122531256875004047386399697009148253135763934530225226961315302521469963498203806060623944006171362173956362491163827158041393252814007719151583065128884442863058158726295490992302786801583407780150276058864948066580960670069019545173417328483732679787236085382634293273646068136597959684872413183290729067414992465229946037344887564076796333467452396704719141880243375055730979134351364775866707293381196724142772563662340167574331985768818051308475749998317852875729689030314032956461723574639790594479268399951161298629265290023236802235688088567394128933428590099806531240014185482366398582869860106416599084580183086143919460659457891721862994460879159171543459269509650251591335071484521523934719778810937115298049017161081184395811057680037723874923470146350778326232380485273646722974081437905186180408626328136377259262117756225811202747595228810968876232758416560381171312984092363257690513026532179399461878236125834976850197183441831786638968487746431511190322044201253143260324830878499280295591396163107775141462154439463231005023170688145487080201250299895436375841513102030694131107306468180788020274342903668995322671847667303118263566655735999293667831794388157913316555278952194131808438776191075283947293051767594411908581492947306092324743897719067075043724945378590569385468170973409590121529212249366440982963011355093355277242005139507530927126461992984017211388909931319497910049261018407898765119354571304336985132676058832146603652825047213093047715449005939875380362925910324539532733911026639616030531016588454878566901138823415259567040417107393215121886260584032838737982225797209983662107562592058596105897873478060199730038541580235957547371756850293324635412639849491925145425712886673854693683271575862643982435702225012578179170995781346006563346244661830573382120650763560972961605428588779796776743301316228578192744496418858403010448352847937013567038718340511956125492718310326465555147917630371343455252126283159542193074108325683571059767872097267903674385586247896881990611624329823260374544553725702145077836739880650083329250869310542764443240679171083201355049315008199258370854998674020534919995025991738061329723054924464892294588849464406371189731161738300768889714363644838388776562394737431137586421713545808713094558558027454051385679339604274098798313863786382439460516644699050267336021416579511837803983181751410220409115062772523094920439754975076615693743199442418739811532952296003146014023511485189590052101335381182331679166152927711706852760164978841746681229481798684659280398728803298251876698486805791649620998028506230298673679722424645960450800347598343409473001722448730735808413892576129100204190664211382846533110813951215428114348390027090811349548112867401530796857831143103439828940718544976448115331098216393645075236647955171690603618342662029570837184226629039380814321133725761943417266902903259226440412513274152972989597160727290306764713443618940376621336348127443799788150558165887088459997377794661776372400251975091608682550154481538915203448363545171512491927185523478817129709899499835539745343300113039798571505423377914308447931127074119349226050899216616177740594698177225156340815242733541429882466175982847354006346449285858759746044301559511135391191572850178142083814228775172805948945607539158479000199378522313754458645082291271333241785765287903366521074518722201053685169917945650198098596403607675936608294735964998859546236226638090788245317858575277474345864274416193728561052580564396598808238349219938820508432816889825923976390125573377342696027692132269955072332920223630654365591950185492596849046724159051176665770963331620485601898051352240363784495680736805814551982502834773907947042153430220196226547486304940131523333254605778500289946738735112378849506251724723625211712959760836488468780251106414948688682092198124266669254648437829572933756361701372666316743410041262563384533373581661621040903719205190873856666549904607773778278671859812600415590218592469677822093922287116399035288252013728553165280312559699620748668626837188644664279680390675250787616909603503079406383829452876435049758664940716891311837894003834179856379028745052720934627901054956453342485602258941142511167774729515738786369453772949874102220141983098875207425876744965890875866425828187283739601014707175541024541147544489450709490349487294525448596396779533110784697847076621661727596036861728693353540824466148682675315740804272612548177668025307502691125795077069126572660243200307774110792165805494296023857828939890582357567789502349366029475299683801146405396444815109153140018820866742774282192212614304938996778286988123811345532351641087862010959860579230450939890450458692171179369355556544944051372299095630034287379016787876402712457737791731233276676880460203940681540892273348187553973886788576290251021084319579795630027694313369760389402025811690793907701481407392376788757747240856905908871254880642860154610752066880348529575103169347892637028242296684613904091916355506368249453706545406780331799135207822772772261636241723916704800016564761395011311066591131956906467190313988574877630954921128298275403673915812793458425811573001774071585822262390888129373867683698060533483210751442638989800557571132559745345151271528575390008160073124934989273206987946296400021429791249639588832618992951096757122910959840675927051739813397811051728428613287749783831709321847739333943051730486180972680137964689450153061198664146236119878977790088718761440809119042900865546252412644738196697512027904823096549536407227034626149548705701319393387077413211666676637413892173563366868156235651043063531938144599609860975329241126757595090342188926006705797678400645747754901456338900056976296261827702197918118784936647926442644128151605513197458095339635868456232166430251066525857015600040060019739100183855089031515941926057643959477639864696285950467036446888524217440079816908745308244790394512842824366171234488125337710944163308938267996279810158601510311731156511263075998044303353171953672948724254713935665824512741586775505961846593636981463138176140057678268626495508064543815257274829245753567077564617939884139262709982435453907371357698209544690705353789248733396149895443449126092267249861342782507363857796592716387157110751868942949681867313047630104038715803508185775604417912647046474628358285694534816705115284164209156520967922568117746714499615213490979098840225550904146909890532975752194724105638225520269186150966841404839847770807363617114352805140853322677017296874753040530502439004521697793273808558210681872454410360774117390067101009622811230876281323122056536320545240344624374542495528167382300760605080536191399684632145266409877296234172959515778475055577221203733214540511058685382382314696069888640062056478511458566621929665911455713374293182544906075815390961016664006265368140778411161870018709237225264254811135243325350396680299120765296463788203552045303079442498094131101859186924349485323659959147004015171198391546418681580011384024644233536606328186299500674462972293434592855896493833492767915084660449288900500109337140072135429753151763936389195966711274379902190794783197663062571562779108163346421999496672700208600364245975133337522568529957131281846316042919697526844867115883672916428779188459108185749770773298864201789952843469036510300730455756947297382287551244773015317600105990571802298705391843198984487628759221871676872054930070215831333817902463136421282427624834606607552067123956079252456917778907033854041075097165014936095432930820752105315713309626344210615649655627847758779860120856488452951916489413915373182500050977710507307503413521990039300874714396040112225916567788592919258464208504043080157685281284198143267188520890421194281651973575549213382218298570485360190049923573878863640523968515654394828544415317887750461292892050871694245848483940739863003576814692738791352067828038639722827285691663119543396717927943340876308201858746937780785201024094617254720589026589029306883630964585966316488593908429123362735901852682398813951024313604673956308224368499943116804642619646007282348016492391137455677712521484331597135711209468901524789440221580936807031913765789382203210192335664582354065370127582269498644691507167620503546721051262615524547083848501121000554792827432402929711323026724974184416621559281811269188670252058209140090590878077524988967041372592841507974482939322991102781472096614104295624216570211884207835757835175292518376975715049934476106511352722868225654200264960377814849047703703127171970366841650800689334722106174856886096961492619802030565314092081925967991435532005400395649513991944826208990016675722463280962748840614406280513825950585897752385688570871897754985639931628275877227845222868879959070885724545657544510827476354012472284175615301399584328369223127082234927984609325419664148403235403729973326117537290045085535327570411449401018791494967173821932093482396758095945848310763062186563663208973341266386595086503740693458838374589508541039664320087606433058744887390231501231639075746819961905286268451300757465228535768778419541890890063258051492857940322285384464853205663834119001190616432707505702707030083091624068058768343292337214208541497037112137973613800827610382240196530275549044177436678821791798196890258986646462328825549573827011166015767055477130648676938517544395178530178987547914409604024218661432098796466624880809786489341842538665469434911155335241442567328412031436143300668126437222785742458610492236695210318743225238878922372789857632779527972943603794819460489301029540788789065871578936930208801778285840522220538371651777099739666502944635525981981722038103987225320684465511238971958018703446129507808404061185795746274114523308098366301492811038143752259500647853621549116469209440367524242022271891840822343272708145852055345456294354980340531974961409764530197676584880654061347504731263780155466495783226384767648155510593654635593698500353859216806393788911277490021619824409659383754212719159593964283975381728514241827607293143806391271408190748901091293925424800477638508143964376379168271964433164269217126967523355919051955799471222658978550520224785030439175860479396648727927122206895479402008360495615241368878551420231317387535186892084010067283800276446191225795780960125032544024658476624664880314547069328914943278376504092135341460116213554864038888579930438742702082345957069295004449023822169810190037658410889453299703404851771665610673974814033256840514433692478683582074260642945580998325510801493393532802705943150824154204728256292187443936737814875806749265090144786290482347407680369738069204436401838428093511939710669246522378956298776474299590839867239496273515710116254841751560412464816443609264299675463814198957164526792212770847421060657387447537445088658379405474110819061905855022489580184486970460488175431163803054028310185638941378080217744219856815494268881387030855001891543713984507895963453293374845860080444897054215129298604728962467888562897727208315385232856095806390516389555923669293164093467969973291278592618296704506062833970769674795576958860517734725913278707583998581364750699790778941959153313659104321603596107338368598870095671233406963750686536347523860389285876737611024479299880207022227442386912531013254500203383582508142135910236490757037745528633800617296502931660698126081143267625302588759626500901848863092362766708502892013856366860742017308969412282225786795703259210668499561762029994348892466719606272381371865192184276809007401955281137757014008332513482754848771985699978592722444302641017182748480373349071752464549668320008311015335235484640355706511422954458052470623384969568816647726442345932382289438215324652686818241845104966149115644087206217451051312193801142795953987807075181039149956961987740874391588844933027120925185418926034800420871677390957406914521570273547393205143519646628784199763513710992906453706625221703706210563451504907456974733925025003013393299778565516193783467128538008932852598785954430172525719173526062351711528516651663329037454075915897619122218069541540607660557599680190921774578793610218962792662063701616931955764890281652865285406450711943719438975084241422487984963824415186221484767961308834719877919294519104029707721573699649161557721434947825531870907026541168342076274981244781899115579034173046498432689236266048527679300418727307933837210810445093741059286817967785194820013243206272931767395273514886940216198736323060560192680545136682353006306487477917078076904521872532960076770648457928341073738003590487432811680039648427016560276936148066306910488213068734799515650623910370859592016844128733813156087026188780713738657830087956814394021629351785979636892087829252902546461517514707055810756000649111912779845918170724480830125383344769362915184794611468265972177894756415286362139157185355656133849442433977103675875205624927489269088299431831398737806584055445619625221427567129605132025467182733162271206092451638051343677471627928038178802878163219870345037269289622505718099515207093613420713652731464020068906698426135311833017870314447757503285859500180740137256275903595135280188984760684016907793048351455351502251610351414341551639316989836228499922715732096209862970866853816006426671713660308286301826052627597294461879018889341514174477348525312658277837404520039973625079773846449230644535412540704650550961380592757963450701756173583762361933433190757217522915369326671990268837828160266244745614315341711611664281454163002327550213919894942633488122324562185185728408267455245977914303162441165780696427169555278236439330740498938388924135935989779136944597891395511398387882467002972262325751137498014255738281132582464182943248228019869810248911692725323944444157930619951547461723053259613316596192503563367525918773374415988172565043183995630290443184213406226106859976145394670854093304411513691704602089836976830514687073558623558954471708117939186836901902419723484146906381680276238947297061849386688724604330276202933882554974520810462741458932939142143780167499685819446604484921114133708348562831734303055789325243969488671662523901920565607678424813131968353316113397556628561404408644371392462607049218146174848106585212029904322923140688022994294839690233726054154445506211348793174118891965533558461062823022287709070541481269813133838306856514531249397318076688744337408461336583869733006095781644263553975162106983412664612109671628018371400836993968088695771778144367689676795668934063157099785221418095899031406307366476326255258876165147069471744722751481754809506361209704089017235521190516000304163836060540724797584134972231567186982222635539065089901080487530373957112724594022542013357882727683220591429355709374094769990495682750047169398479279063107533445626110862470195771169719175138922135763381961949499159971858185027614005617730047556450098632764378256026422475171490843960001514630962730939017166284382916926416732610923572934713051032786274620080956313173907846172057750267563476344393754895937702608512777448586091380899756305295308600123713162622010338045410120331662876968905950049574578845101212371559679089655007775112434055303312056261872059066706457348486980423943585307605241423593616069090101139477458378030071739009446062339241327229731813293260290717420654147940357247323566401229150474856604444652832555217205667890563802300587532715729285253518043898516388128040378843306741190305250489898128870482834221207671077796787924609791641062194805196608865096963896529869244435244011928383211211844590492167373663157148801556269191187384763803380716646031988878879656387554643230278635319339597700580499053856849459236627133027380502132414780626761833333964975212520382431457620554466206997304574511658446994614689718900097989993693655768741345779023375299891275915858244432289340075351921140287115038962889461143649761687835621374912580091726270750338599020339111790602636102859905626050583467967200599350915291377500758242782728860732046121245365999123783823559864943891835553733185258013910744249255624762854434552978320999168659167152853057481707800173269114225939403759957394704174424666745176151705068321239647524300801297742440692203037476550714942705349209220384320491465997557537566997528680749849241607740293710737401500716861233837987937856269881636713255597887910057939214901326925340652582144954513364626415428923018197552784855904901057538393435176430860664143637878817955844122435013423342406218545202319487766637317483638360838114317273471995670666025341264996212224918478460149486075458391024394156959287789053158967702265853322795483380969785302269649497548920375462959158327261965971955935729704819378930553534265414785096575068194659548325572917104131953403986305598744294549962683369779310698024160811421057522797679956527877668533607176824350351853698788459341536494623171403568551283166037230623072897250358377545215109438713569466890124441665574865025771172064397500149762908152105823931324479468632548775158104105223054126556802632580769527461907250551521379595276146409472161249282913486457134375341620304531065413419005402486557270281071481700933660620392636904119513578895701779940498438196097165264476327300415362913692670815486407402003824631984027323756963736779731315056554163299358153183415164993619054266345303259150384037876438486781614093545943170711583886411482483446196926674978530566459573442363558957076782697416545720113779107218237307007502842180636198319115769983448537785223601661246127850326893049726453732457738383520022380205775548202984438203418057383701216077864796064409341099070508640535653775950769864438033031053452577943993132232299423519224346800918015183127862340453562648788186794542225490816317773775531447042032830280268013812485041925377246334350520927118094434995650407952467191847205129849605566483016514338323085129687667943896410767946708114789876250452309439404001060066800321753852641882406393008772070421760722813224966509447824184157164782525503879732981463802202710550518155946664240000937252442640308067084524984608888396328522134676888200863392071604928628343390671162568128645445277095325959860612757363598430553432155514454269235924811920657127969366650443376831594392702918373993890721878484545943715690698147922537752391933368643367066904902129213527094672249741292405191899368099623336497299145728170138421537204869158211627200723971201868055262315803296317923517092903397835616059332317430910988246583823865032157230583189992912662511395913994188978516088902323248277354645806173002370666618972287261714684987039714784362027972255893172010008909584258780297215899321033673353273379720909332105244341248678480237944017750672331861141168964969208380908978444828302628058392108703817802561172314680614883149786650352198516582521035452515077695546254572452795979520969713893811748933409597839817799616660186386000445294879856161698616913675048222496643134485620623797810925278034125999108072935171243264603703834976914383514017143843017166324973854969472572318780934581968330621977831924415678799436577374868214809398166183017700945709200187871893385731511625033623374664114904576741174614023383643829481531062641975388250052681733666701303240308878953358885128869540153155805537194270454501828822091375966784232426437947549806233864938202515358802070408364919590221976695293584101587576145734954205333794999376335934581331045397269255294576972175249493426842646737745103915271046185383863739398441192178199479735253590852596705519512848768136739754109417376263046994651903600239645581985456008512927777604004508756525359470207750598044233150867337745137566922747280800445928401328384660201008839073315141126690588287869280597430663224394317095116447628835408497327172148889904583405880624729095900676186276243457209299599378615063137614267628798257070613765402951888689024195347095612576884602571799222204162548946982889484204048310688817246415912433667449504043680573372404032245184598295873784638640108493169850123582416580392243064593923742181130490175408130987154923249704683892558596364584449027632016603677504011898783160258120557142542819977443369472840489813946002750719198770542670708903870227516733373220351267167569487800151815290262834281702469169396010499270734830435874383622647261530550543932123448776098382754292675171966738512967828087514033054298860509992372653608459133843948660414999226537716143837591999965894543153630008908619213456154890287661228960627051326397837162009272366133220853591154580425876583342446649959003806763199192293867236853382207506664285315335500436194035601328556764434953131989813386306499373330977830563912885081553613791011128538702626999155703048904231648586626471111719555708718165270438570985993521082751705473998201841758556274360675112536497804373949850863276010960981396745562705827887822876190647717266898292136638138884786719400354951910000598776507878493360479279802703100790952612533377976513755720945106317878225488973790516800483247665695067772209864677808278860918175353512355472213744024494572109239182933621566260563684687527241171172924925539903702857253352288645146757461670612568903464625640265522899001428121545169517009180513812494299205653393426839297973500174294863226543703515569671620726857511118594866266588606764651254006761838826031325343970750214635476730011681895769634738245299533827413429967864795822758466707475270887933650163163412179748044205000537940717558458817007278878975087917508750430775337306233365773560108942725967335661000675991163562494073582536886376512935898996584732524254643053811271638913567862197204614385717623662626802443323286963846075039624138237786752538190140049788244679366302452360978746745805528594340045973308726905105623884181712242651868261907774966178907043666180607598732573256555537789019415968297475669380092561289508054364055732723893671276816187959270597237306370700662100236536192396516829889793785815915873921802469710204860205742272604077109947392556950533088099322313165059428975157331865865719917399680258664380959502413496534944918060687439083367092740043238135178137596382040050609588459655309435128333741900114221131993849595972897389680803283157344813232992664062677077537531124531559213915961609252748311585383895166014938229174496338463004465968232369930685649782590469425749301756667098376587513159803528593435561248249230319529110381391008299731700012987888838146916588030821755919587602729391286352228000662571883776286103852311271274212503008660334607599916746243054662738755550430283157014851279601434298522152125256108807343779775337190429051130940951150366380231041614822718934280777074287281100663420324201913229704620325985450196050176647345433005138966481936709865692019544025539109946730353774681420951704468592698406545192137434154398890435854187946816425206060538640148666800229857495076427759918597426192780365256606774000673594788024763755563064277603955478775062424745057019724866539600510672170268282591713507706469456219996069200914015454130211726069495673042879233635895644619429991851933192776067798417243700845668415244240687091827714539778884282054343460609698138025692392273569385032029249668818785347770768409194644409150769767561964305053613938707383958363031790773906897020262100015382606137547432631219770485613437371120185268848258162330503928819661936626799354720351088415564057168640368857309765444941270955571164721843774401552292452073715051058403519209670538155106129602531398186920310354089082963380964218015787192598445696430056205340769622434343860589923218244398636470724182314654082421348456399792634596525075762977067149183207510134951232775887364443165610545200596725309836439245972079509795186337970844898952284282485938354142163648913953323775336184810793741133562636446357434421355271749053946778377468842919555694575335682077164979498142215851449802473503966111928484234691515793409424751037217705104285160078250111810823761158745747457803516041039032450944002174854433229899687973850104169471589492502302569220197832247856020712676492344304630280509560812638062290900061664009087650395662093580315398161946384931470464557835538148480693878256864025387094812314804389757314433176675412274849681464242453240449665905296721934648184109786705341595911511896312863431158553885426702982208020683704317789253472371261227774690467745329471550844737853518671965663371165363676733880815057364658247749789455041067766163306346615559381340379479149497499508928378062557910701350369030479011912503300350395651659274496078889220216139629007114259021422859324685829639482204408110569102239490561912075021073231376582272461702311797924175818377238489855965435366011287732036102214819170615582821718611730450333048586837219881659026509918589837822319196523861908596404962013226404322113605804155084482357275823456890397079195896409042000527026770844821808836561313105719782205308290397777153546143458593272646351853303383466213934086438283576565198305931614258489422895362440444581883968561419118568625072733927824501562635192663889302816213351370421862466788945031764125708407273593033448285758693346986495424751331054025035731861224203022386676924451937832106469213555348461938175181855675658408868622145228402563576393976521979077687494633938611720650865473983086662676947235316810064319974848717558821382390347150453677163458196419422516601454043790209936818310168674431162929135619467575004883376879339958768493305265697830850070930874889269895388589015672240167827263481914075100123040640330106455849355689984012005244770093096277167164142259421095066010663293710050429412495717902898472649057836861385566475465243743531195325820585407349788942010892547792813836516180971003451857300157855551368604410823003734897653436919347153705509608211354092860513717700546558289770434407524843651782192216163874719161579032809318074207958469564210897670747288314462758847770267574538644438000626129309186909061099462111558469621352567873104246804373726657319488340136985720642230907714229358615989240816846352840934504787960753263042434842416286988862169876246761204493705703338276571104111037764101843270629877215472785505546443682463910772069232672720907222558276837382379683125166818655195142384086989891652749103010547131351471184148189471822394107523775092675396609267593993003100875136358291245161087333511384634233083130694563824427939003940340408082388583308739367746065239890523317675755833763061631723797423339765609938344514876180409832645335639880317707460832836758127821565642551203877958253909252379077874061748596910397773949354921800680842316431216957956525438844385627128565859678096549097565705912288646515600148988742601184626817443287247775405491472694759834048306960409148626931610374142626229039145466196557638375242804408285647621065487045922143720018858265166394000959675616328631864969905116983979604931324128067462499215477005183232357633191874525470297980234723505033158518419669044374763179089233196785088104864603277612798359450110076986228274443725485210385046867577912724043070428901610615055150593832468562199651626027387081027819554847512339069401704480457991178495385136539907094345172469911854296065883564096161383864633063057331207470583285444711783139004042047401306123548784964199697579172564069547623784823280493704472623673652234605229904001784597392941588827610126093667209443248150880183503274987022544353285165115144889811867470064271616710876002474568693172585538281302374803133055745382084994702517488961762196467123270263557802562984243554006116133651352676004973379644713439691995935108658926385582360436293194721337452000605556768634286522486082318558145595113111139871286220279401523423689463504704670353124054820920392440851595929100464156434473292404537514947898355246350200394812723980296585889788298836964368107954875653410626900251279290451017672331630534511034820288218567999468144153836805604873573884745688774710147324635541228770782040046213220146318179922046980702338005650875727099302702451183793085391044667753207077116930336292916033536750192327185186570011278455573858397936148873585916679696785082116097539870129126027368622121162117985783807657373583069622132355375960678814488005572580640301205114312158921671395756596343229425910826254457130536326236848589778692133477789857187533958563732339557737516407405555124888830880134731328772234412632894433293099235495672592410194504647280729703640720344953899616437648915030674625637987619355832480024391118054602215443292771204017936308507598099510402162983315670170805251785916619881082307909285691455305970763929607132190121225817751059342125212195595541107437198299765060195054546887706992165465787253421172670791144373212634216019695851142084400283258083635933322491189763611005488973037092275402926921413955255403608736959122672076061151970056374096629011667391526390868379161258567567669043243312894916812850888290865255559708518319561298321032289731025697936699503693985598351756869495759789982759761534182605026125489271625256011458786521967687060893151338350289525293464460007021086427107681574097471130761773131374395783171476309637548417405194387022174064924109263430327716210279796421890806716131607273899907347910875004528648940167032894247454651694265136416534856193043263768978853590525835046281338781395029575361746865710158001601615916423780489855847522390853508083647164990707218438421319139990388684887104791181923705815421223899174531346099033520704806612931285418382060054313371259365155374529518386313716865802522668383894032320832779742894261830247259644639846576401613875839916378644346084643031928915143811978227819801742426569632067443223072362490378354201148406077257374841486181246234385564075184903020726834008968971637583469353996527580590432861315089621058741250791182463664463482897164958611827359346597916309666813339313914327436926325800388633544058971852760327897993379883144082354883012116848256869427169772300014340604773884048266509951667130620253057604851915347433905287652027747355812511116690030296464558813989640479286056207945756228572548588509299949185317179658507949545433065046082137941059905327651914100950366920543166000442771840413054067806343010674248258540658132091000778977300815579812234041418715961485401621729336987712390648181306123701576500117807240513684089040403929634147878568731092798412087506423347146715607833884495256683277205415131684195314281969802532493731770829327982227857734955365001524734363894693679603422551667136460973947001075782016435053620200226819031732565111424150903719560958126545855450191239598868590476821964493790176100038300174710749680587091417176219520889251707241261273914321664475802396149099129197967676742923047574634946500939671954070141814833530379748339849855814377740880307089689396567316974591348569031860739203367557530210946103458784592491413600575630731820067909956780484985432719644514658792007197694914140455406331430878388826449328489111430252758165120233396729684522500904051398421829712991099728776838087527390294970731260728686752100425878936239969392379846305995620533615267126963523951439468263146460210232166219038277258517221005799241290601278925642575555357928041491156109362457497378210308741913128577111373609669110257133877612731780610163179156760382419816158093347305503666780758656179761088817711865410088089416978771107401259002775570477441642787596854786737352475960505184151338601094266811292410023048546283677825141908963578446097310225142905338010719325597643070883556883386935682381097322742454779497001788281440219306315367160650710789683683460496874439541550674421423236270721921034243711057480525503538395765014150967209302035126534129873033297167550778275831499231945725295604472704064309570807052275463276496438665769156451519199042930320568955823116479805055746326194735199361380478131080665243649311650167070515612796475750831564115520933508678657629654540383067055751856169587841060683415341202822757227581227651060572277107598812655593940487279621796563687446366672182572160894192180752650149032529136218375399319149059060767237422727661625939404869244426593579810741311854749711078602935589564162109312965247360454857972775054282032322737770956790224934645124016015241736022780582881053769666200721230414128730100733365525079121579232717065581565663864007062350471428279212139508853076652016233670945775012399517638303257555433822920500393876878403944572845329289350131968398827516872188880226168649347956490378060387430254030953965131016607881673119487001724331623842488494249304002645844782422391994468174663766319951709639295271173474212787653442145970533323445985977644799776207143836195584528602636833325801812462254030531476979495111852520504556299484577031805055021768372083130008215825879556706946911084282635726745780255127723017487306600186580381340214529880222469125742016317348932067091851519105559487897831666977627230424662844300675608174843503178447330579849716062877645222003657619180959215206151683488305103568133068606740730151732975616632440448959003747918070890028039959680671994808528563756203433485970173107807016263035536171036156033194143689031801858293099324378689834767280869224710482728809634921701907830818490922248396377564745769724587333615328187205860952001440982854888613541412541135940768133955888659806390504853975640659957379622403839875449052156006043789832762229625124950851192637902109769737495536913872985389594351169209657953421909159773481985177361503405106679221261998486512831475859876333716985012414191266550009247860437424089629510764171496688298818915196157492141463515870165174213142125407641384555172953919692616450266344306419191659108855363286305710831540309020482347224203129832275650536259188985040861431186325307505048434450214434865020941620260181852098221888133691240479734515666458844074459698524794744465268218687360244265849361946517984772507110184587987676609170272429933416819092879523917485927449721198717737966785651999643698715421345853654560594476208362250514567885228062755052616284573767371663678433202102158650407519830659818253575510020459085346190757502142377926452871051836788322548447389640450655013886346670022104039222800850650026286245825323240395498061480195033387231583653066144697948419179672018181830920663680640802979291162682112063476049812467943856365340633363882055118658927618053489817093962488547892603318405226649725570390797653794413935364244818385745322298798848123264184613290193793720512832804027622689413226043882868335488456904793489376602969387494415730686463432847564788135642762500348873936190969333971275787578063347773142214391948845339492166639043410093994768033704699222625015748049894945176744269595430359327494469035255553988388586876397904290260187850007079597043306167131865961830655547762198781226051757320882372362896002717529192742463631008389695011979787034649323849716843321941232344254848730207465427357751143450597897081910473958068268598346683636705643163642978534705393077135123356294852383239674394336021188811064133214134577925691905399156748815435862880848337675648903775896023824889367548520706131144169139603549909629718604500944451422939009926908580758182382874393504382760193716362553059421216934446660080222401490895148267730459035413628093215648467358889039582447058055067195401954207479562499655009982212463400702225602766227186888589954751796553066380117774666521202160636680073165442081273030238608710903294936729835665688304389810609443372813341680291859828809507847170466977915114605752015083787552739076729458082628632044732611382992030394078156390180356169621416250980590089656078765094042146285804736341990417622187420069808780918968822752753788614935521423399051137147449288010653054991580052768890251882743047970477270885059774535732771935439461643004609459302725877110301897004959991637034281482049665446020417633274629316512500658059088111620053167290310999190135818652466049159504511783397635996817160108427922701030627398827670544102834261595399174003595665588553341488374861095037864316665748061162526088116380378312137567655073220615371839027032882395331002806361153185280560872024525269847981627120593198447176770563964919030990587185001919197807793866406366319100256066190841396869545534239989282588185748650278303549191709186635283951593919897511247688080854954292156284020369753413185825795631949766553515514666698355325079962757352457010269224075361863622587451411089300002107041961337261304608079866214106096523161865094832104906575809926391222077630325681877250570255827837070640501941768259048536507883381368167744021922023384009006215275455141171287464734345008563902480775246756965001497973512473523071087493996528865020121387017156773280566972475481089322486980543642300542842318643885423613834050188232163245420130780342142239072757162361957482674024083122710738612709984572872184000509971992712265764703257027323235711137956234283193168383148478334316282467037255832360436929209925612983082414317386083926774537640559244822403628842976238378287392795067128709737613841267973680090549534970379978503350269839309730292591997743351656238488375754047609344802740999421992927791302805328832151866247481582982516154759719390413340200517746376608501479983017415753850648685002094337508258003866760267197542489801685655221492399488346882933541438938143591458315762500796957571576669574087814305895747174550649212754251386199902599253346915360110866951538432318836611416778393466002664796207595072815929151690251941140890152854344402796990473987116449783802655235550416055054220199116901122626131679347232448776733617563684838820190888591967975446196246097664352137776913576586370113209352721160893781550431335783712522354966415628479588412535083459985757423826312563159991284661092030923759071259997343527323365097292451565909469265124329663762993827001453631405780712337285259514199720924847421220547512315443687176993496497944988264182787113235133924362648500334368786003855482598661089386689153486113183901459446593521112770715697431383912031053583138012813451249791588210876283297179523119475040832379437265800198382476673583964257869890179493295512267596598029929609814205448299905873169966285836390931829635015562106411430787465373545041832906179648217581604170086311497723350232199499575500836118946004117359992449552151014779280460334124433673964928787821463921239495982243986441601377901236488294820820268878858165853974757318974692494320898843220879170055028222486944488626373884609936400738190225175203334439326878123398588889657675423642035103664132466000436164574912151010739631711567059088108008168795423324260756803824261372816756898819722561846281336951993730109057586135186753400400831353534774997926648394850403480758586494713630647729803978824651793327521090030032765782038974474983101640247865015256155218996457831623571621487701299288328211544793879466870052047163798544533557265048536883477290925747754930754246543972469058022693399538063118459965416348142153737791318044359146589471509443146676880138672571350944982639532139595438487046333213336219181233989599837113595963639444097125689324420197220636464709657792313392343950784970868897077649279350766178652301101685814665447509076841127193667209406819445703034434664481247263294108191758039184813860896989219188764366314225502695385965776913124273653732975877913592440289574763875798028750201113110971061145406573434511266616912578065432545219716589349149983599273945900333887725007094791087853049115085076509057759243147705455573032368173142916780615173080431710450816640305959290282660278696018107818419167459223133139962200279713840240589929527978437120751572504160157916862199695892087430968452491500741545573342367430097455335344307747531953581072416016655181783909662821390515539263601815892862305066627348139958628370622146580574590612396438265324673681254564109148077550383699498207190779570133505877141807731444896003315458704434533908703615045255552135478781558674938422336975392439770052771792557345332674455418526027681870733770835984969869137867349431088601613938178232196096197332660956268756189371045684311659692731954003689504699231388925264472156497892005243357963993754463290967595324126121916207228827509175227690826302146726553213223126234409189657666641543227577615813272506126073284289253996444469536292449594859296424600944441434596666404253229675078976993520358831271934264296439116375342711709573181333505368803908558355638579295707393799677237010754365828217235255677523698052680791383403439633627620722806016179681351898649248412179564738259722312225261317432533210535345905066520491675509497402814397604589068653802430390869208934369104130645069304371205263248199810263512913178805205382071433548561515589975404724756883177270044978223279064352120561175040929583882834283887855114084978740036530772917133696565869726109765931754845247398160010843863066627433573680296646518079258435761074088007499855740753937564330377659422798415564964232970189909567206635687457149470538616524479553852968439981453000477040010391902606074801800829234698326729061611435197772225577993477602844499630724838210379973037214077662520568408576808264130178602715254105619334825962592125187746853441592834916937905806355569652165258950099724754039087314416646076724447898281757532497711497324041386633368150342153796238351591262991220819525478672377496594219915807976264883922340475572069733791325246320899530490225897405705982714980002907376686430050155418488837976140855956313061032612553529877926631708311583746369018902633723444023356440653398834201220882556667533956427888383805348351139685200586482808725376730937098969684341359052198160911668157485448815422604564694787000682773087523357483903610022265456972180268753739075133551782120838153431691661128238302742682666324426659421713613752997439598929350318194046939112707484142989256764420531656485457194248881184928088121066368930280262732791255811301799165470427882839328137606807358424240711210841029245060975871299622147701561655023603301311800517880069897451851416789997030922323239220275171969949123884534390266492746123366961796769485718061420269395984781120594087595863286248060179836938058968299462708159343141005859775157196767797093493198061673305254746390739598083651155467119825654270612066991127262452601078137440616404246934411538467896235168043625490974539414639547845348306694595413945985359552444752452191714378052880711312310068186069767248731149122877571732544570585871497388422515999038605154332419403230822696608137869570399201553713588706364865383194274543540389249229862709284479608034596761031825465672723915644604170734290013922729258334176076236382436275022018053781900651679514894200082013619020621110082573230497090996103575948357211106058362800906162874714256329939720319434092429351261488849919032684612059700186710409569597159750099542502235569013100592710697279929305873578133482551803642373677098762772443494522539162220669655848310257447798146860496091499070853964792077535120362186758075048533260854124516808534375802612456097974792207701155945696153864074190784838003040382622418388954270912335995796214654069637889191333297184815851840898718534467717078724815196932352757138825073740793307573934982215721360545041490180402703839491198033691047182770097074965136778306945816382963076505813810416160962579920252839401600206661978545202672064230626092175239800712214865330562658789173915725149484843986893279523141863299860238824843882055275996294448537738777639258572798009621636099208037810695487888426331957129491707729911092293310358477316577920433567061532971279248188003179723494898437216965158861498153511145468611535615737257148007615789198127236659030440857633872683414451675478208078039469659911595843256495452984755609665876050987486658933886907094723732081994966963158593003564512330859056559280356936095365145034519586666888191062109264350545546649411953933993893511021464791222144392755826724673468191431715184813794014565273732423827163373266979815908039726535949850389984139959745770378435295315114002500842619445397873194421451800689722974709017764721183659560319262903215608890835904237254783891456126064795345008344322199010866929944835143291042332886278807247829061653409043025453393755550179383968436640768818242151953659593746505692106297278206095459901697170731566439731015989559838222096156307984310653143234490060476973202816575236068687364679116686972020528077784213708579663793454288840000076812257126976620548749112086319281423772546471199603634413344639653518535701956523638931698853616901072842853731568052759414820748518625565726147528680394233018990211211830282256416214223351085933881037904555343171418336480905343733320646258302235991694789599152907444757923379900961493717361955741342317466333715403964233700559993169896535033294994625197938052354804552357920026889480377539922345540036580442714479275388340834362535898216108995458274429818990950810458696694880276042271399413888847869149252726611207126195663001669069903622624375764523978399763178648601730960164318272217611495858318740070323424617276116517614476530018316422091500009759850641653947715055428195377272044455862826701457507117596605323277395174497363813087940365848042499898251511966558478877899952658786920742945073835045870534984773045840552873188608935278399796829576347388730991758490872338372955541476473310116146890597153222042866011408307878683380745960106736557979633699452950466227969842363710390760415691163925136077203873921129003845271071038054140537586093936971909981079950581709201617546401522737186922341809834037866811677574414575322202617512345371512894741939090650302056874774802456778213281335211661993054398777479607587557323066819273209290929004173044097851069487020668895724254065113280176184433943152183906460333821491974448942897862868978621172792575465373069347461971774094132007823049901354058308214212298547420742457587750399718699318572197658832660459055839214354214093710887771286567615539055155809682171568331490063538592719008561672042607473416539235858208521943648981297968953921716517972643645130927047001399677367932956614029036665527413839119344734074376986109837526193237418322905805153309047091548752558390663092644372718655678657131939265926459871667566990831669776503672053571051894002500774353860831757534181011911589681470123452746189300635836369006518814643579300162335256600576738382612447522936561125954206472283007768908221552031728337596315410792770166136986894181540881861810676255383413461463272570307363684616193642495031072713249154392784721733749611655464634762634322411189265268836355142525441475505461954606144694584678704947621581972400791421444916872480014221214869981236358119745411206735972426176734435279039578490421837455291854549559870154103312607140421313375305800691340556012299827399095474926273900275825699184632055144740129259588953465045054813955519064759915302213830025787224901932889349756078625907037593206553847360526489770528544709100356719006901777445713768844066246526376602798578088816410633871673139980068051503437283982839175213393189817589568887750264965575131161776473687845658582139033309579256174316768769448168242207425466936943760675255444126282862277261234897806558176268625434461354755919879187710693355149374161341563757179297514248995474437637059760895383813867405718573363234953579248631707902512708373120816746066844667662319102547631656454628030215305472717003498071759353852486310379489349750283250200539508190317433988735024648060185980578863197371812634315668212284716458388669467552440642644152177706474573915992692249110194281703606514365814382672514537143722929686847373820177977598682611988458439056463267244422711728873208870645601368391737346346279609676702876997690477471561223706240932239312522766664000089639712283074116767086690850401120546339352545871255939352599652870453826358467351026873670345120147544217203146878948921108274726069735376070534766863142078225862571802670089030616522749585298239850140006006690662801353869382550661798364889151449940297516635234989000732592295880843109789667607414057499506103628765849473204325542349856534687311307576234665284932374727800331449709465773621169023624519008735146775941391946739399092237134647104539626834370185112080190611139483813617032571775449494682649310687676511547977112785463952727252127915128302238970633723723192793823999569875504411586285714044304063224512614206709444224607186391489083984060100446941318477108628856881479516431400660804505924003887362106288392923377002704340331534357323065156755584783433094265879429632163744578711105338206767553675593576262764566175850188489263649066918134484983584885501737192837242198378201919157996504693433026057159479003194064860433800128288858003303916622103581129826373722819169149638571643671546796152018073320172873662274238275256645273110434217483122539840340664546569665767346506768447541848439204436822684915244380845885991333909279802491923319784487504563322998596669607322528214702896839821818834254454829496377611582711943219262996751419451206505192196886153721695603957868444402206262310401007811811931200786943776161235320393479304292829815925101827799660592325496893596653255068244516618069435148131786732491337558325895146627044664630403676874290258693292904064163487890748271365508205259320004821918381207072659238866630291490188085165280177603847341075380257538962485222999323656678630007164201372726311134865630929326406611959313867200710761531854273888147232397987232377332942593225158755396060322395404369049548130381185189277823459588634078735571099871850208567385586065620919463422217492882160351057124746473419108445853590854731515924739844146493126345936919801863845366859598253923869492539202751371032549770627737447671932933533294647797228911190798091883018300426943959266178528055429718583631019971911771838080774216189018524401910147373944201666838686209080998560842508093293630883818033598355874226566238624851584131147961531886503116906873361911380434359694877378469054606531430509173458157734579180975911500632776651686700210722891866330918190112848540105811834693030151066655841825263662987454572762444715072806326042085446600424875811829297074267414051447311577991650720265779330838203614468952987180501660471616583688797953076910537049172220487870950070914441103067544315280647994024943908731355382319227068122788851353930998035241630560972944820545191682564198142185601482763068848649168067923499556658881561506209234085028913290409741692914295702766768296823928948571974271811544237730958563295753485547906942506968952118702272642294463693889316853156139609852039289357625260493249102954024430938078156597756869243336018776338538581815799893298756533280185694863245797336149623028272444785161589710915158884990396850015265377298846282478050218907837083310623560162015417986610337299637576645472637388602320832647667907182575288670809213524843521186401802630804384032803189770478674409083228329856201311951280856119758254006495719034279967589910845663335783196221565563567375507972728375445620210936203078600609771393753919415493730060282768752299938560777198298404088261719145031432594088282388419641706956958492100925541815968158278375649236986858288190026392391931207315054295671149330437207755522015118906550185394466649305310726009425771637469513172396195606743784930083761578735227836053554656321795416012915329151339038845465487875896808713601652743292649854241369892933077800081858314634427988426426726121936896062371482921325404481015140516347126238974133657903467658935914740420523148651748604013849081780851215069897929111450717040976298836284359477686849141970635730047293459603306857601432184900845444593718553605959632278443807198592046840693420189698667657197678970633575590475709638229001538886040924764741050095944463721932761046117545538222530012675596364349323248559831037538600022464802403554931756565637603124934310166364560108520724840698387743110888412388877739530155924066236682753798746949747634752840024464690868961749733369227125658706488387889796916297803642176192880511191408581362168719397303578909870308494762875363562675879237913737798918195815502713533927905366435730784282635843482299141479336870494975195860349275417792166532885375107240979825766446599285914299706300391938220987050418724997813048751876674314066005315296062811836204805323770628973264197215053432176798791261628829540420747347107774595849401690707358088653746126433702215725649319540175604793019488816169204311686679415864019912112532716391397260046340612520144478473958939869850421680982956551381257325084806174430806491003226998149636685008296714107610268229768299343985939052681853421606086243787367763808272222972125316352445394223782280182270025296549871364610645189207414291326454619318549479028016301442859709286924692786507656611857078659625223512014615358336642381054065747359168732816865995265052418143322432183012708914112596058272763220005926035593056951654059718934340155260590087037716735144447831278936208303217698392681866573041671766621868951210397036635570109847321319948589566013932273074328012387125500365326403891138001926378500660241776332963488720655413753478505478742939907924807500962941955658198740204673188146322034683577398805313234538926678564293242200900727476495923055451344638961259643146258138666772539808049842117407238301570976387786901788078356899841235586295287744738470241522992841152988224871884365394575147561817934330843426370739972845431503871979538277470248519834448778330586547184189277295914807385021953044519096336655119516701234584902392973507550263199740418791706476521275706747531742462218254155341653469904188060648355910929617643849945857524036890202549734746752086922531656539552042576194094170572372227539510348427358703433238293249446042006285185112060095072110945462993695555718652913167283100032975993632895968565990697506225894614290564418691421780060446726392076222107997688845129916479855457513465207225343178107931123579110878272011675096226342354081584970188797103102474016467169273047126268108305810439827373928373965059591144805203019981467813874902676115098370527883308562173824086692040080725160437453993927224838336380245089717687104446195828141012390295314860019232361018890950286500662502855445530937355588756415843706936449173929680929003476345950174236713436510044800884899256798277537484284447854293997032123926846308645406971455730462480062313781931186381412714565743624057591243045159138409105958165743468716280844043904592911873871404030806211020537221531236408569854344216440146898347902144520017622419272146948644826941237927182478708045213666296092404146759024039585635591306746473330392488544686846869998883118896900249564382751198407598809465022167575563570670925254296950747500626145772391317196769379631428187104006591813165236922470499825660500773701003101853603128891409551808901131048736260262256706688025487233387557980138370056365209286435242497916609066470516370177567274295477473958816558459166809224231150473700936443232411211165597602060605412761737106562836292085592422610483819819270298973846701770009688166192405917208140059732421867593432907660643932286913753643377265712282578301892068422456716787961867711639204484541747528491051774772767974656111381382110652778598085726954239802367191225037769378236591877318774838532671696210775670668752673178145395157436542167687659195863932093852941178983978804841310966146929839790679942633815436713972397017957158123656788245997353185290197393777000831302527966329503405524312280314911791672292680754533766884272398136186218715662496500440638942363100714621171774447856896191146752869732663200815634455491869120346414784919016104580746871189030453266199914858514486248873263837944170194138924081671096167111689700943882093432754802179254615513039502778491630356966585303051735342980661604974331595371298661095084970029885415721955589321427934850997875185227942978947078424006673459945940827045475280998714118702686773523190436511359946855391378157935206793551983368482149825951658220826734126264072820790429288852750007391692798788768999185997645869186226247443956481942515843471323186063748116241140080815435419303344651560452748304055954524374718094965850284230708677372509548149494126910735488118297603598956037110628468243577534557116665646651445744753959189826917541682367475615015568702508178663079922583417540307673879632792089528678559382063504130995302103412467149798126475991466725432546373669716814435119170893445844851818174436541357902524838868405032799244774182004695936877016603082344599121825849747587364366059336111238228079352017748794691305419226611332992489613266729117131771935258844374446766415928995882297034660246102066091491412919174600943292695718448785237008833351005495132393854592302490089804369469423311618895943759564324909007820770321762211742512484351058520172472068961234599690444053936341622501119682604330135769113553155551896600637106823321677157313409451784975881542297699007883868749186140790793627487340564371887324255428648080878946515923600333167559297342186290025377981929413532203436295277204631414368181546927113344042667551014475672993077359089959460363250863275813139528528691647781153863082514662357756212764874783931705733798985090789294985293683345397121328666775184264298160008518453256944299857278331039088052931442660944143201675233665282931137440089287994867953153722570513038404010543446652690594664249592070072633416123991141750677285052554429201896924777398012079373167609350210969617911133533559406135059669841772974087437257598453886781984730260087726541898448133428882458837092492187897501977011962786374712550653100485528023226927715597662931229333808999715507925624119209162955102987823332874526338672673105433890418039022419253325332964220067074752969408714617917141514965907418332143529688520161057662099612766870574025274946610967747508245120406367820577144244055309625805276468090498563462935872791578003889480341633291572021017400275100595982829464146654825187325506119150344236650953318538764116117022312308971445146708423216913234697300342957492386080577118583029594984295979640330914031247393215964892237740262809456110358754290291349648254666409989700174004710565319528317156086023904350555248834601432259038394026796742865742239672085885393069278073026053096462771408550882288468360423284594134256611086962024663760920034585067364616674237233618913084723058334538973684693884807228652823369888831521596699080538619969875751062482058957802450928164243795974574995079982101875433417629164076602650484092995002908199030146970064774687040449297062370665488605966761793055657918457692189698905927036048683282555522013709171049252750449161584474289900908708823640159256543686030638191131321415072977661810065148193592645809924324458340273256520521218174090685284452662700222291013836649225561406929198722933017156007753047917321688743668358956743293936571490391878869016850972557249437853119129482036073208309109621267253483396637514447817867683291901077859575087939627928060084878737473038424219774954985336683060529843986758856532849789913558703355496247138086932088617154952986943101329084405727613585700218910477237523955708744248267715911696103512632778772386980609154892783617342594610955334497584743558173217400923554104496624981161798894694778826061569683612933112601715207264006694497572631855525672147335108999641429559383018423131229543703803331916712694008728945137597033759575597878178214384598869019568680063168244415182585746964597550624389082074275665128662591754327193050206440818102492340443761553706639966212917752557273384830405706161940086665046998903176700610179465882625973747916410472601465694068200226430789460802730513078119620262483953692669798525743163150438030910159897081225963905002394881645010789488365589803119827361862323731025590423530363449252219067595156616664247316839240121105411445461045716779590157699318958330089764942369043498847995313597523143930346985566352715265057079330940629292959106292504722725645560782150348199607365005985575323310393034128739559110797192571698125804351842602869805934728367232011878707457520869073554528088880791847029022255657082031753575819708521325876098904666259864869221232362610359964178340359078436900682645261761710793651463732561352131551084335001494226302076522015102715339835011117012959907054328174500686632835275223691694404860736848266182104266352093211515502508042759718061083234806142662984651936118185594035101340919095253947451035785283519118325714706699536789178491621609676295119784831848480615408159553795967408899028046272013907136986235885945096827758665079092521547606769616244127520883433168653734307292243795602987164012451104787344236030759032161992192509435851891686593360606684764075778484688459582435245176270486486332839958128304430428244880342044516804691837737515373860509018709686146383252563463522330136194301831287620457378750094259576294043003247708454641241059675294208225049886966952060411714410437505634230845614494090865980889346368287622120906258312265250063156870557025389628204583347635221502728630982581319895806353671835728130364332562731862420385333603512825469699163931004739291636205955187406503267282353508576051089856866006212936584292192346096172498721451917642942456100289062181460866623947124594034836331937921146186928282165779745286727023734622579979416667301814216324222567573255608933873086218675623440074354574080100904905516382764341077312279508558889768984004656919827361920638700449574234755186213274746407512777344754370967491646629204359646651230534590491046395297617037273398605456412373859444921987569343240974749515581829434817924925856331389789719049766427475094133209345700428438049721498366759747004735139315013592546060413355687543395752995175724500509992264250762150264211298811529715160082259573910268126986803954156038415546454178572774482286996091861718630226898345774346345315622054002969464200608813821923137087131478396447229196849560960967636277800292893356763096956254329416162711479568774669919457740553906020568794176561889725454022746421267778914999697735240240284756752444158483780026269164359184990345294863375810754443235388547473610609933641517617365787778701750416517821740656162088969379591325627832321029404402411529189802084431332759386193080356642914424916504860782334200183366179619602365791588301003507809738364916126854400105159115951226370596109806769494803477623085921008647062476777671304029032533050730163685709109323846120122874819161087022497278214998363692983949502174569754911149360957354371218030054453943850939580192324486889725257879325619539927187804472841947443813855787425933367559424517624529856265700371620172807393891072797861266816448603139088669521375929261425325291349313437256847267382780695387310644183208240255849287172254424246734450210860180342186823411643572533849040303239315434771145283323894967908940172893668569506178519600216746514166800022645333035433060771437957009874377541414917822340018072999226914712803837246407786336589605704159193315327397696598802031185527875925331791696979847235098121505331311110110375873530835925004113826445768108890487397138339243379416056407157606298004300949817362796238144741221914261612824105969721073989404732721471431876583483585768244103868147660977800501577441803150355660383517234510905496747135110841891192344144088462040029644693699865263418783673100144544574443448069883834919577237654633995906726665950784842606698675396335957429202428213112270847032849914614456818164307419695491143274891534000898855879584864501907626667520445328406273302672218780950408124672883974667223146100800917993008219948169675479805743141971121443246254135841411188251267635238209889785893531981409600522683935554199395579571510886865407025805007139904977278663361165549049184750896939540668937522568292017992371033127143818950525791750063526993196772707926345575200781703348519516208949453479988359557744445407184912055139607575289238427769727750096899639450993276353158704478938478279828906227886669181723857832274710940566261588783462807988003900464669919584309211686083120906440025272408089518889519694200828693513312163231699385670402851596458313597039491632478599159861043338590450221475911547800256159146741908288639363306528880177955149890662674819949788823645945773413887501944332776566928253634115717365538096820085123187099396430520984668618387134087051281329316686015968445381733536281239692223090502910557029488436060646451044962789203290652221337813645679436794934719442112082615099270558736138517659784307559808697268802412346823526009564993660658932159411642054587664652432024117595930302022873181880630224317422171277409641667378151115880208236376539123728181906437043846898633314168887101705568256321255931734700179519016395066499997436855783199016768492665732421255488163380165919708265411041399005478095682392355996650880154742397630879099739421623300903577198312589837011931639177973801693177308817617297220743264654201194908400700118037103922521352980842936073516529609028504830152350872007089006388055959155164982384599061555917938745204389100602368866957115453362113331961378035356381599234158664189511967817742627117372742878890066047670866948349639113924891543315579571217782196806644737043308751555523135979059992051780440212265687831095994914208208512359904274818119182611001183983950761543167524317622189898370234816060319408336484570141334966563917135939999671595296234444128881872994442847845796359233338616348069399312046334759421199196924679466055330441900646559324521354789123299798494507977438001347704363708918003411794431178861584430552761723976030355448051218312148996846404326417589249176699875999696420583116904192402910544844113785063268726419009638177438282210842731212075115695343320046303340711571259294846208413905464564194801073041644822321382701458988721770043665781061646584240005430543307575911600113342067521268967232871673573392322554264231248906784010072174306669898346530517633842261291308512405033176837757208440645801195011333032707147121003025396134507481394510621986972722161286405822024861577350137031803873839656945116231536415856186307910919856899390824186192084371081588633131851912554531620130670210173175089382010228344382050768323597559160682575431516712304399670327054732463214394709311683444025316637864430296563966435188823525463376148864429577264511326904272976357487389465101616491059382848109327806163153276416353964133625825807617710821394024231829686212853054910695175066205507601863848822337372646294551295778553038293955331765145984419067233887260389370610511698486030748048752194433653366920766607473836526465245584843842121687356363461432165996765199085758237632642650157256961647292834222762526820223952488208149277521087397526766518712170640865640214826367878092778201150022967802250442501418236069393258584730201001711291482771587941529126021334609415172358018173210483875246412401197122624093160847316309798461187515704236992383414604821725560476682766686948281827775919505668911165233473713624386519879153852279283874000296673705788952072893194781442150573941035668507141969101091984609661192707949563886680670473033658461845902521748736297113086139764664145528700487228373358521850130584528299473269655388896612831702344058925240138264466593395592002109365814675198362665041135952654890106050595254313333228996332224668687815557606053263141952170374257704493477449778795874143635446109849445394925519409151959976812980448684573296796440925641509123797113380910111539489405768590411937228378398182200207129380368087127602187720721419392187858125770664878370504338325566032304169428841854844274007861150610571917692877168894783116895626089383633489108840061961729649891683308984771539154859690722008734653058465706200018365452771134417597722492156887913009054767512366705050849154455330020952351428107695043741352427984833353091911906105256375254895363711981843911341274403028155018927066193385952469828548176119519948998099879790078347498772617383445855490412342016583404903439198351160009687745654926131775002307736134011700690294190876863201943059494091641055796273910162630613870488519143101316105626900120967627138435315644167848536843789349902044665858949957740983357647515049465747934095646621715406700330380107788509728659287868450970210404797327543256797470028483164846602366013052870641693932068587489327835457482476488186334013860723380997655564698636185728642739213801346255006250549404013060819698686969917324443100335986508781063018823918600146446132785894264301517299417770025570065431619967392496670566074179236565339398460140086396232249303164688828598068990158045725501601480700290833536985139314320188838759200538268127248467109631678684407104605737326891015747963434771409739232125578345893742262788256737190542025270064207430750146731213304170424045464570778025725001249041880107829968911044617674139893066054107770758303804068837259214257746848801412234726291191202900565134881821528700548773569444360053819898036345631585314012107715529969270576709361051254823295261537937551845693453220582216470420837232600886148864241118394959597801598582994776075795363285837733141578916867412516560745195697401193756165213882880103911728824470153686101067768411938346609842586728758200181381402536204985380362754464488501292460693956598800077445442782604796945799729262488643576488371403274449736201764861941947759837301492134985642420637236703496417448231079814654334733787149249821679980880583286898656350682796400154838437187032845472844045119961464087205310401437952517545219408065255651524025300479725171160092426341867874039693625968844173808567401287254047559044895840466791410657449308751982571534958289860454723288298732463797073448149265849918879133532638903014153149187263249470481000116424909993943545962898466220540032676504009458116441225665321674425491816802596371426278489992315193572749820949168843560523734531433987482017974629417920555336926174468988537604346117720956171127080625744435182245567579008621275684335107741384830622333308877680885999131950439247669924842277562910479154361276640977216802097909531633161393693025816080774705848344280057560109580209368799861942578165636448022928871854515958401571531243686753638410989025047467501168322573543823216174030719681120572740223548646704675280786894276377068606324296001875200206112904119681276205018015111319242386069653344065987498033567636831625720326744886690958398969108194598174987939146961299447859434199167520253040713773949659153999865335782330909154347104633443385434808743392256699223089253124887118290324073486183532611268305749003127528899263638619571884732635616756584403594995926979606011126128136987587067598145581673374809085723149547673774811547911605108734592870104052158111668140174839954215324284985836195284393378926102055085529154489862992102615481551503178574069743795618801771593637657710308202342463570345652571403603210862227730547610892674618819850183284431589056837814746774176374635225266070364412507407342613182258868130140106188294400472101428271840536000869203114447628293355101527745685497781736341408925626303501695608579477952981406453040289214665730597734913661140514922513878274934402047678263436415424136296523434736345061022566372439161954747258306743339383387337928416812600292903865148759029100439068035537113056186173218886836803157660161615733630566747969812377619033768532070810032733011140629909666445912645385549279791638923226751613130180479547231109129292366735807650569449054631299704961398182136791034817364997549580639177093101566853393165383013039115200788532004006423539670089308555003968334832234321609998706054303572638305573406973681706905639611011495224880507152875900851914528259327111664666945022234800255333466688637521784883636812978702192804325964165197969863155302917270914491408345188009917451219637535600815310448220363566692841165025401910711663620198535614702685034020028451424861706306438736469742745854618931671357936057655427874335705887005616619512644234385460930829681398448769710557646222414403564056002119157331178638623162648510949127285341256770569167007450913620848599727586040742126762133312079482098718856002857709633235513793139297750772219614521763021685562918034336224556478985856151066387290067897115544992626348731881040348783559983797455167000236922312581707133167855355953900442015125296564543280336078322182699688288953427190629262269898592932482964933655743636636790903091110495137454294230617266555986114511328660369993675555225356802369593696114954671202200516348305409476850924762906872747162873554445400523268491364687717425250659081178250436134223809251086289646900093596609574651497244845103270457366320238403775962389655027261715095250202612837357252949119041021036116662071776967618318200039296168969246333480191591381781282526476879314176344618371068346337911314965431870144431582224295322721579203715074449780037814368452735671077024689933742461890040543337482273085244129059314565348523692758576038850536901227223295755211127283593726472774092242193328655958322159570833454288957678967770703031989522510238364046534438839601042363046274299996389206523956723871490020983513315644592167672851313034442779836244928358722235480138020811900950147997198657467359745279679194667180697427507867239575797034873536988427657712332546873918808807715751505159637392215895744313316483426011896894852377687807841725545643594749687443218502347189750057708495736094167284931632733834358589988320417061454775551695777775495463771340595467780662546754069278311518731590861036521146502301153004008577136458032731797449859422329699654058048854832223447008605338370731684521048702071568422078834744024283531988518638858181250046025514453252525611532137512514676878981174994824580518845193257271965089527671826822637399593272941456661156441339093005899066711476757680829524338493926016206978698466508987570832210191290937563508974743941585919373707178486475179349742111779749020656439510867233960315057542820787960453644815181130425532933019108391039149278804629743644975241107120032119979339222868823167824541954420517167794225672000859698354642615812342098386220628994053227003318127177071520260653740550105616742197368590634191599441821354940296876831159818140202552365691044367305483145750105750130187215172237181849068001468699692555214229268738603070816764641822557865586393697775303810023952313604504315263891452369221614127972332169931242112019731970996727884368675280677694904771866278252443398782198401550339284668864450542860264848377202395806573849413305952204510899010387245631996743424685788771393539407642998645189046755045497298104406596660032418565528316102334727574977448612333448599031257766436035440386491981735459779777885759475496981196711652617595553559268076972519909678120273445019319785787168491239818204029006356468636552345740716786247776966329630867717131840775688721728702400911259708635476683482122695632731296267408540707963507166017311997019066296628432970211834391616002404951600354763874158167534231979384153264923229547037636609261636060184031047777783707742305935669175970962164705092598560021374091112208005715054230958314709223595336011604601441027867794266977887484840168649234910836065172579699401509887085142703363922808550774614825466384739824830863569281310929726983910268009589781833729166745582865106647544262339781758203668679205078275380647555300483938087579458888944526256119268764127136372054420419889756282286838101144746111688270662967440030800576539607784972810103249786013398865723767628362611927808690256611536832831540222578467006922433983245727923561915647033377392210026148043187426023629384097369277557945406087895711987910336516477975169259442014012218664648727177478468335155206190703073850631618995807244503743852109420123648607893321653494241444705428426379757062214298287483514833800668880163762398050475390660167535347616253086943262462429801907704884213374933865458722233163276777386241134272357077886160203126161697543150196672439908199371731216236738129384875983190165228033544394070560722597058847407119611401799707236738151623728164384480061681584020755165118264715590435864519655002133689365089848951538152178139225436019173895287788387595857790909921861251859090201665766561307398516291621200395164285395655288930430111432152720946641398346927223067420741992202917656992722597057018171713272060245923798881215472320986034810804348178187519376034342976203925083533040913142282918639194136061698067862729476446457578009923372883185917690633638479601759589417141878305796113641949525361270773169293847912955518124092796550849422251790399720863720465848676241251171061390723718283417981939214634300458826217637054163342530956120483429179403750592930733771663283513958763926598230442436262447820756742436400541444835330220061856080159952449731364567549879204241942378371694622945255317113043252683565450839429498722212437161559995653843162984677920209998411418913005220634204252028379610793810020974192803974244789816065234577123682949003556635667017425860725629687679720020557300264207643770629242534906974290206869907796837436944304610243231816724665922324068225535384613330752217558251269275357374341173295023513692964951531776490484495629397285554597734193719019347487989267934521835460351477228221403639437598796462123136807312377780966744284451913228489490037608946201260341282807533388385675038697887147645645947013384259636837704880534136019689713873266997730153650984078585889194844471694267491709195604016818079016161428183660193302555536850473466685198356760032818024477842212309183532969631827962647629980624836312302095805731761486743700568792343092913755817710881896287700148727531893688527086967108702455846926979533612975273324356515975358708185471939913748459449261629749598811689891719929908651072041850898067762116340500464334321152152369047410146718813186844356043634142228532417489880300431404068628670155336455647386837627115788604866959330058722393852962478313839572612027907737853771753392890090747393574894032526305317608088871022627330101740962630776740542008152740741340466620683602711823011222707378448613505337687903388693072061971952713253632947967477540103012598912329695435799373566026996799247879739853943025650584540510128486967440104284701221711116320252892899530051485210830038774601031617317553631000516166329708542141560569529161872520144302272098235000217276342027909299591323203106854474981386246369172601602780304224455372141148091173287391996349530726099491258033005231799102455882408280660408540449643395815741559557293343226899941303063723308163037097577467944814885161435645695526315112800782047297221685195215793518375585507399514816685744481014122340855959085060782749675308143761023075802842868866984895622896331719372745523497188121042414723197934702061906335974071280987847345198726308885502474408648034452828606156043261393135218102539233922702808970788880514217967396802852606974427485774200835068316424119169613758309537004229671179529922706033621122107290529449877012377714249783642900776615844961793855207733350328587406836737548471858400366421318775862974431220120071429092359093627098385330367911138639524539504905198813867347675895906597667478817716830818218961587904812513499932064905582603222984532183493162564913171640208513290230379652681272046844856397830010879510902891611971007940953847644221410729928800110832218941882932821061584802885488183458062020230132551186660411757120208720632238555459793973329400817458748125282581133927375292205964806821258604723441486002124008460441809676425281271952154828188848325682468822234929945046230970131656334216908879747746683593863358398241548639096555337918923215718358352942608432291855967921883595263418760963788998181065761149654700868242788414210084041027098399846026839362398332255287020309552201807485517847115298016264788850469166529595685941809857710334553047111784053362736873237788152114887885479198663776127179769812286856478318524939758896088740139669010927079463406157389779241989052471799331129231912508845869164101434393163419745696447189788820182090152821064428909538568449329254034043447539288265859257312880542255549415368317929126316223185399697798962462159661410794338891313895645095153093215373152475039733094585630315660690730292429246552585430694252914846671323689608816394413645144264789430022249858729557767689019746514791053226047008430242307252313752086615059866590323851576287860952944986024468206317354152190748618272617966721874388294648971897335229884243704026702085720761979646739385530535809610021504214611165481256383956698796361222865934683173690268202013945956590249247441555707813296737876102447320977664560578558556520610337823386501623379814540063638450038244390678695440181647479150755867659274119950717163366385716073940392381606435867467743131683799370546932972474749024811262688053657660534260542931621818172621102283838934704752975403129647137595973995514239404783886466805891185641914757666359161886995121882322651947570259890522258785434428274574349802398048308802041532020890039365571417815526122462879611933006860869411777509391759196357908883805661530278431017531498060589117747009636280227305077708754950181588125322073185131126050373531070656784808781525980598783854520018954051403069562271711962713683926652639436759685989546382641222045017517407990743962315135597848591875158527115322822355753809619087227541682425032315644832634733318525514491593290960055038868622623533275906121176195818926916667712005959082348169209221679650191652194444742443351302993412414208690066450931034288901881592914096827731086369311171565170855142467482048472954220082084704101258585823047935632457040032182222677855658872850994866304450224608145627485109868042936521013884801103689627637067139250275345171314412445227220379868752826722835319030899599169318654933942309589466168792725757247306043448164728001188003600027828514903616782689217518717685379472619401232331265728465547008443353114984251894919908406100492497550709713632070098202594046914279071524353310978695138774346336282862849504422170848103330722098633766301706269901990274567324500533559030258625836090322993772229053429725430042558160380739034041551980794591175067323180852760387408773491342980563873666761654350160498653126019725036394093179810745694883207252708655014019595798861549919023259650025617650377264530094499765978260224393980664630848743564483238402715046053517794527336137156795371053346799304879534703336094371081467996663798427384934140588646082723123725525224077703017179154941840946248980559710874851486362046377996716288713211640388646456396303997298881105027737130274343467436341176560072207921320363249120025421506568437057585734089350531613756602728263904921694585197474335948781829390395451259830292206500893876809070110169533770535354923505476191006581408511867555720273926373568271807725955474011542932297126525787305652482541441218161954778380546624400410132583860487114194785721604570791755793128445673434879342526642813199349338529843215481039329017157790080388461679047372936509889076783179227305997601216633803775890210663563620505612198622304553228907623274690710475745053867562780752188494791979668547544923499005395574134197056535460564202656913943048180596369978140825533384425579511758350060491128505419607564064038566425851118431059359622541498243591631352145069579243803747016737457750517490031365754831678060257981397462598187222785565238854781179705572753350468733729499574991624876630520269902777895295240791252634575484063605975252010470774071186463324455127318560426706794265833445905091085841578464752303867570591826739722141054217557973011926483714874575231007665071282923332060434722566470450495199874359149670269848417566304169237347058363248113832812954795484595346152179902494065207823272247724363023678872884254110255011510752423651573525111830586810657976321861311151632298875627229493961015244873083908101249440068811748673106234890530607759964251362492520265188349347203453771436919337566968043509454009638921024217269443677191387179702781712968918320091270727688961441477862450358605389139246567570309755966677072849455915584415278485594872172287942131886729481191979153467884023696760791708650214497981462758938120202379282205111789249764569788368952747239200978698090005343320826179693228903976392321025802404657192525197329803595223532360496037658371734008919560339554984088247390304707173143084396114421636439530181458595846704485986973895968607354448245598895729215151087268827604840800669223948811890568602190907173903682844115913764049200608715995568302042117057152076222150850479363406126248497493708038913757086979252685009206259924729038458065330466937740358737107560227736045459403733399148851894324143878953130695121177513163808564210439357090701499163839161230783665280696638522303936961194588856879971915816914402362671042634924389126090077303739729489204642987338562335910169967161724517989895226444224680285980887300633248584926587184759914860478433231087839393371882523313763075339112603797194331232321084575774835230379554779472513750213013964420548490357512073138250674501977258246247883803129985168904979355203351178792137074873345298950356947829035653091397687530952001704147764554612830526016285682606489825593404925627445831474603206738064429409226384936614729642985349830879378615127696215780380286419176187602254039747787921386133778969901529897852145652016158240356655101201991427231482877152523689564198028612730176253782821249133643051581704402992331756300009226324649407275749555052540796151206683769308129520728815551542134746822802980364134917872335881756007835831480311757495529589751655222001644616762010186067534129326295774200620082742046657593290313074396361616675267216810702612726281106563666399459114857351544691686804683630519408026681965999187437733682859857139980580272491652453918065036604802141489020965754104843890584175840104145984167755371621715692924549415822057104542751013555952267630144889374707391921607724901091636010791817644147530590539455659376430245082136884792751926127559419594870123075344716616897364180708789995013414858547551669382685347007707887869933021351966891104002621183777501951921102954026018342646922745410829598277713153963357469565150313084340242340083047547405402801401387883475943282094975783345661503040746497781277726757740138937018094934590547431162141382616151791301770449593657710160336668997387563671339940185332223570625695590589744614496359473056774772508703092267037529862059517852755989146694658786426728042472567476902266090481283356379585461874690148646752831724565424350289423229433588101694221896560915647019469317746682793996050018005824593687356783772138585936257800214361984323418450717227114140254311158689026303389261056646948244880711341956861482164510413359308468712932029867902789998277718904329035353688464267527187798681654615790302010359821222988658021105915358415304704677431512033739837101724259949672871210729028451264504202201232976256904887565826729705207074445998129345143012210791282217700007419790389826845201623745163374315380554924828854014935090288081860427013402836115661283397365160531288200401830180562564534303785479290809246753613833358376279044271508891302259601223670872327335565751924108548547322695207713910210744562326488071638759427060247709527108042164334823482697491015205281672191530796071320211949096364244057591618940635407098619768830184711784638371959426604846603052817726986974534788207499003239353287938102909287414256802629528207491109633222127008158466525238291937022251061358878501607383982784708812325020771171986465497519270587525443189264264005283584858715324200302284434129712675650158491432447946166537484880493638712982352549860072341696621726299469930434407588897891301865965087654992752178233667913454544588457710862998835062706921449845668212953945005988950856473146426387223765259721365227102638457781851477415926162903806432449839404848190397336340903888360744397482874764926133699835232509790696382803180763884474675304332643936622720296547038179196598914438020122490994782586982981856299270585563848107087471915293273757851216754176966305419716502715744606808297218927928502026361480310923305644637229178508823919294462921968944919370204470963081456006362004499573584157353568017339970430091818719292585206095035560853255638471225337826256921322397836207153677097997203086600420354446074167125927710336962224099594246294609556424650720932350173141461873903799832828761885574523859562572471986816474695110024053454162220240688616426874107838438953681613541258913669072798737230326874682351202978052998046370853673943561602356574866555484125824038358139786734394533832044611805988775566421169665712035298288966746075490716454421523884398996186480522570284741074773454091808467772484871253950562626499447394407591710691881352109202187255980891063836881148066666662979532240924491184180839156669080600733319400965685941301671608723516922419742788497828679037213495927445436353760651546144902187221894826010336799642729786503639794130885167886178192421923507873239851098232075876218589901561304047387431701966144771054972261245267912421045806713184335982126177448151062091076326901172538117995243115513869125646881236509191053475711577401968969333494240339974612077838018807281039677025228003748979407254507507646224914860564971435333516826543800978770113142745361795233608551767430409482324160620957489044163162351204174471466773473803865212857505431472041412211821528503501374468354059953073319063817875770932679865742355578745853719262429235163248918737875156953060316013720934755487536925218775135374338441665029714903076395764441060826089863289688035292773092030440072727833901388005003409250648375941221189286089921148818102572784840916741165134982491668079308281311726562114521641686853074002685538795570330282867327919147878902522976996930599693531390655442729660417151094701082920931447544589811318693369207285471313043699720847938524143925219099159974591138234097788704846296498235778406795210435745709086197870829801156393166855515206991158016639267905815568115534404065541000108114593259305140021801933985659240364206379292378352751105127068202481975277988092645222084493914986129068021599474673991857513076522233123412598592671656354332835673615638869322344441219130779288768177333206011079685414848617540568448826724539050528187372339776720637782975679392684817974313272262998418604813083254722279780494106774150609010655456370879817027560544271244637814306907524675813624286617577091650828110060912511199378425123753261690662131151664790033807909015169878169720435070836583352632305810015636288971670489025030847672174470433967677310355137573551808229199061184561770486460751251528360614773678691109794934448141262110581407113884795793987060501643874278982206148572058233648352425666939428202786423886072179033192727985880956057361048425412849809085370516202686661684672979973348948740745761885723350954136786158668506599715036834779857208848787051017732370885543933363951382694857593310621711769154733482352099535566243235417844245081899481694070579441364779053313974198208483360043483186353193638417710242437788989166747281046593741516536876790140892815748044207039879952215024730740553742149308309876392900025081290169798898729091240402260595563983900386152093918848960800939175880862732084891719288892999331264706891325078096977540392960265534764673144068819062778304771389547329451880895561776037851644150972457509974298117015261988324674051152546627104207810345788098215697634253208538164955760605096727997113605910198386554524642749938446882613605428214040949557992689797064547280556990564673392873521943336080570190821212509504134189823739357396445942750795507251703160005879437968146666038369854001447596064499079423254606589852621968830867709471455339383302238234186245879091320817846407497857805403632918742965153785556725640083707463817891766546635752187827197039840700418798771482936337345738972647352046761749739527083695393554761982632592598780424794380414036707068272107778989027055596538973331017643319959043684111983869217716433184077377962322176584241169583213978160484017547182050051847409844862504289025994768771236182057315159517431388382357526558534604668020400567475225117432972242883092775498908014318643000187833839440969157077543706000589044010713535231014213030695244288718848607800797834021339293878386704730948592628519687496093521531230631136038001504607313057314696476439380472437114545197180696198015806517663378418827713282875099153790981132460669961628959040535420907822676102997675255620408215265729950918929324724362716154177558509075519472513666704171465477927008356473256748900979564134574300824691009786238527283305335993414719072811222507304853240862387531377373296881758089310670103588429445718373825291906510644012312611016757449330355529280322105603194987749131380971409140054942365656804952037923724918382916198178699008490023625138372130357287137713993078852875228350032485717212836334380117420296124258989117340689525706945481619622370305205890847075501683156120807976740894728989750435950154300425608289898628527627877539954353238746722352314017595928214516534464058047743817825630668168819530909973437357258056672559349219245548981848888658935117150122668852134734780011118779823500065966381342704208340195946398310265133257492597834761164804306643364265102527730553852827267624609217152362975877945479361088899314473475704998343136319764652536311556333608198150914521584930814929462137898846484103242062081821486024712945965862110672495844819181751969764465831064250733497911646162231771960888819974007436052851718876576975154599410500669627905450356213839807949582497144325456891846168094945726357400116361357597936136639960469773936559242980395447665370018236313977642084049424964836220201865846015089819866164520510654199876969746876676771612203604859010257114503932343330728869250916743864557983378870702674807479096279784946875219430670305070728282910407790463012399725000506634104176380175307290802496124446266046334868775587836152951997609910037824751036087186775417260060158101090783970996104097772254979864571357226732758091106332257337773286747665812511727425085818613691410725925055974263978184111132249319945424597794796485730216381204468275532478525926974685847027075801216440312360592048189935106130052770013554434762747544043045231896886164026176090977864321855182018713921795921865130360505061187931495088615774879063040049182344852202834102663523813410116769152885490818507799366579782161354281756230791709323426249023890152102721593586539995438460748346174812500794493913082296709434575846560865375736406460832845332978850075099724031538215978600161843487878748710936537541566355117922507927984593248432382602842889396787698583414184682377654198202525697489368013557433158633476195682035073037388664611020309100776757375694457788504907529318692075731504656376161345684891632896279391769028710957605629302465874269254037964541211232915899401459898501540525606612344664655221304236901100064354739792693779140577195241272030960597474682633021276994055568769408339406722777035503708989509335672561760652030365212835133908871315314692904061713701960632840595058779640919167566690569901136785762679001493161034225845105166365263297491279769700381672387625039288642617394041106236814063756916149215755529428115190092283834290799906923719451034196586297267696823155581942249130872088993477052456743154865870267839992796278946693766252266148650469266638275533581142485280540725008174761685599026113977264189342757814032560736087023334206329488259238456277140832784988249937041899651622961063597371610038121446978399885520296529013583783981116555397024087077208121736815247548352043778270077479216497876870965657183821544348666659411669256786187828997238058804811494761165158581046768060931103866017586898674065266163658809975375082104063010223508346509210328162147534965923026524929287825088387758192708071715660890697964523098369618426244386078779805178226295509375935165837929979145669188409121717803106858231428890666894830855369237356650149007159766940154121450620408562325671029503198085400886084105913130567848650782524116931220163432561861418743272591521461942051136619768767766205876479996294885184830329261910770622577794420911373662748308170009029121479231090120223472567756696416530338452138452659709246125082088806662208396435569494536712127180101619618789482059773164570229811985069809266418823368342962358558929931538371923884450632485468820665117370180917797728724472082671271373440044429652717031462560886063999100095585988885172825321532195170519754436011768560722751727590515407403793014205633764796110159540624318408445843383224094291265430289556069089208010003766322327927916352308213597557604700148208941415259057707763993512985535606617464688857434737562298935152844925727659203880991453294019880217352124796789172521152142772141128283294952968049733381221624730104350355833863236226248333847788224849339021131729867320171329713966515837098370929611054136754933017261698497500192803259406619635143048255250368144566508905334626482349088333254509075529312740028156941594261745093893191835123502660823197862296623965370851412545004283516373876422923044402981040753026503499480130429954735581040680843511726280580296585742404056709612151085367171107209721575611725094653802317404009887074406005562191261454935845440914926694751892877094388089870143621433279875066497980029841806812542707275736595817938947666826143643581012340754967140449073416794475113647411122266654123602186850201995242724760406479719762330723970622052804077354831604990798023222490257660872508465417898131546692540076398708541481532750524080437096276403534635583562270571111829196469705100686001586071142042118196245595639357128961588602305873764651991458104767373249217377560649064210761878159922808656122171221494889558525240113485461317642285443925076030205072227150745089049369960851892122515424188303486950042773718236298084115345666950504902139223977628599946626204663630840692570511551919854315008845183582092198630011144137287327002516862745922777877116747497906214854205244537628956515378442320533393196055523043112397834398756196359490473576361504534455981014009255611137628535855892557629849941826811685939498926053929005564619517477197467920920271336909249569490191801540165894686647342285245278185411570306099872446767780596150592164480412858797867183690001953691880193893234768916826567427952905416523084388133019504729061744507236378939310334447367212073450281072629216928747810041768812858456295652390174035386937368586562695979010279652570967288221687407305496816163207491176815884015425807963003321795905359749437536513896590255875034384482237932244339189053295509432380219103968456702557958563075876075260682556928483413048128636625312618177370069177483521093950781740171456649952861764172495521606268867487449285521559958077318377138136498749351556182304938983554405013819064526690227303062900227049491280161633648438481333165550901061979010668632702325400176238191663127789630412637637153432805932590562985245256999791555164719641245198722085903016486650788585289586935652500900347168568111537180120923259496732636118456720905003030545429833184082047416457325901658254777066038279153375904603505319284312531487468793021695727207559905275930628330581055038585856570122403851947419539056741451268767422281025680199492323880447984596632265205729980035214158041909188602260315665310388164010146660036829544540847452483932853910041684096083187659022281364041605248442350126415610540343089916733979564735153155108551924651081229073913369382361562840493428383355138304093038719742250763977232733137299805912981037362141300191066246639100927121698913959391385567441712411255540342103279808354162157318529294861978696966378791606492119982609076870006996124360108004479707036271389857939806011420435452426362720976063042095988874599079388623906587235479965260365122596587736098170231936491783478840253339688997653934461044706327689639381047662020802682952196293041315994138660932257103045383110391612540305990325351031276820561445655577914146466493438008536030120453668659048330089873994124634420848086764402637417344349596032611191549717902032234752402646059826021628957446217234184507591181195011445871580007084375030042058398813610002598542021469431961928426678318893940945606065374435865298517937170324235570831962011062634631284657633492396947456526404078624449196667803681120821145651552599830287457848094561790495017132212261947830280832890354617795870591198887101849578451234740756939144290426863310318750511605573001029726335902955056915924873518094612747453560508022644714867038764691241421262674771678610033985461144619960537656932602184982805264536986989132435642450404083109346550709429786938221149531755275802627350170335748512358538602871000326660365690002749794298038872211530020288284666058756379594739532587589552453271764749506890229904651203315754840063272048163942485264245753566290476128500106928351002325512131513634566556239606127549292281476433452996024080736239684398512142915323766142012339755233173038491036414191457913328937957879621297968675292206322475999184565708128295749254206282596892639856964703271362891628728655486085721697891214104602934414853181126424923469576735331617425784473841234227414221621624694914137655372149469894442472224703117838182765425277682402231955393738688710738572638135414742016521086988686514644564408166042637873903912303973833559295614783382811733796679804765978166653438706428930985957337664188822964775207963628605947400670306205535226915516697903881969652579333150426864482177244894000495722347259133224728286244666643067046593504314771791164679612088355640307211229678011242779715179763303316457331986634148235926410103815964689636265573132358162942913215278324052608814251334000529519474615653525730687456491724202715229306373573084073093859621032867559208055167314113316798912770190697683124817084232630875207165939371576082686608892962611580367971877993538213541895865870543189886392988496761316762871455899604891876080444469250056630266730633757567292170407218759569410715539345547053671934676994197758025747434165691013961183249686503935373309123670996543784878371529757100498010766326618523138046591185881198180863545833302417334260880883245418762857587629016093070626351298529992187052055717856338220527017484721261767319747139971424608120128700690958970112663162129192458498273949915208216167337100614518514213527750491199898124016108725498693032584162672613587723646479165995340507045981366646551604260354361268519597761548175789094579890187341779500231835358746009373948250931139741024099574246750943820360624931945915664375031943162463221949767002141775576972316139936808616547743945522290974083181790816943744435412958472591692268025320921697457579584705260008216598251702471549716083690739081443001596647233826657217256404481137312781118690741169785434420384020405612299079265613394105241339325391747571754639912363475142155393211436306161562001069464040903751284623433192782731127896738348421989651159784267181403719927547420449264936746339372228106152358744990147150028677838854257935374932325070850236779306443622136462330639048350679415458768801137147698664007788367014889959456128158670003943024783053310890861570360544033256823025109672296382055835444775681353487665761693909847650026401918958084147841069362545109427341216572619405438011727712845046482567872221870091569322239683847237159177475127114847604426137226177973787079481947496019145581086401996024793371124338699170604720710010014818209175214746231611917567750163582625935250010452079459992374583001069773945218487349668696873714726514537041662061112291133086493774659860231528334210377318780367201998707641507830454546581602154353076205463860319520089032902976786367178573204604598282692445073892153757406471297086807759095945029530350883411563841622379019860179267798289433885976710633178670617326794568126944636547857098055146439616729775558381538099202041117509726564560035259805513033909687692965087161562078679406714054222414012810542390858795560165848828575944103295503795571697520399206853117553405488497537187680621152273580637773917086482929669881418051802267236613362363303900667542447061207174581247619680531800560821229807227796249803551047176452147033999929028106097941359398383959434259473007205662409793937513465914263907542525617055027351574732675745105193040939743102227536283522914957473390945499072108768779987489011480989011059813844391825232555698242258757568031869594599960038062045923576051239890962118439338635849852756160658792609530977195361485369620430097552314417813352217930459630898158675636297177751056711805888508361647413315850451172992182389173932455627789732389592464980780864533407984040360773295665232404364630677423397651055317101317533634561451893878845856425836446826402320820835736792755082419533831071567692751809802205654761328322862407461442835483272643897199582948600240626630581662950309861500863083868203064409237390868692544109384276330502137070674339720580234099469144482724495076246233583776663389679443931867037396698201061078562272277081554069928480493129228760667238255436157530451525835942905741434913233238856905071432535107010919738932100211489156065586494767617587167719704360098343975971288130382168460972819800065891180653367748435913179233321346482193397629734367421234910985608712259960137730630768726143680187287350365612162838232898494309847415852885560531684697887044395345125130770230813269224338604099188196309785119140085307683193599272243241043670658310531812955787732106968563339561429196455052793757225361258222406359620887081504280337620930600993620810652058696658334726947839498086169846899755537120516307302166556250230088050903699823771230844841657275729308218553279038171909517248515142606244987886705398154798116211216727333946554873873083374042605915028849094662204606019565325994367013594568048478412731830256685978276559681076206744695899177454085428536368539235949869064514263736715192404065021444357130496863182156744409596287110791634975592986251147340798088316718679177407071663955273416056041600943865196472564645535459768572108807202410573619123537613280370157350661870222565303273034906241346564903535313807975133050115748458528345363920389140039528058153531146626292448336682605071895108387036512399868752264684242196559663842123215586961324763978604858374632297343029056299668347364374181524880304854988974591022485212671865374029704587967583455779556667646184000795663346704795609653864119231136906228945414151894834920120796151315983256370457634274097596703688193131421910025672003049612959563523260881906779174786982397979528855450447297124668816532954826618829658691446044381197902600443488704650831243321754330429473409965751172538729806926002903273219193875765653496100778906522419956693282421932145675671018485710092806817119745996063829170359311442304183731853978266534843191099463631655869624605905618012228985910390270931828860799145762679895688095088173693328610941553265446820902484077391187232135604562214330315061264461478218521881883541092620145943825268108688384481963446743632117573416834373494860943225918011259882931988685559384713707139727448063985640196291563481321324501990214103419220372593465935089083339573727033349262786730483342929354365220869604688264511505887119389027557156302748686303096756191174756132578471799765148901108614507742634462908292981564718174800056408022306176691318747721836047170272600367402174298936349908634569366857246882038924107304812405303246051152048253451742521870387015412911504965542406724789572058767064641357232112348868728504958935227792301092643084870408527104516261176396485200880233640882403489333406100903341913633124797782778647080452267576222404531953638424925674631922094732138363218522696963560035735326417655418252743772673585136968125355430313092331802389944434976606481038257150258084766172101480543690430390701903154190950643385791614523954482765191276576725368148415952774419462326471179275899961292582014031712112257625046857491823469501703891466665672169913870405741897009114420443253765286937505870686266365761334619131797612827682553055750378212736370495155745991733955766563865525965847477429220186241067651563947366777619413464569980340482444564608856587242665382970050854301536810254696494079387394637669807236981907157844289431273729057458165623210621379426288272552857988332135241630830115481251516664149695468459394441914244241374137130689371938795470972913015586038422976542142929310078966822857272649001521775020181570378566323633565618041857436049986856452554950929871571098443146875227506373222724948845030562300509677089862553183551269809782724670107445886890652098494553105150241612272498434406653104578139352507228022344641620359557846375827175284851180470593360698228963801861381417378565515068795438897696400020661332816285835555024906975706411652214535543091608949289260117664212148668474626298058367427368594337641254150257598681421134252260248335023964932728214615542978317873023427583905030421751745430311368036933980018342696600932015136464616157716259809293896184444076409040163651766924433766171604380770498670483005699471464376078676149263985250303337592007884883538732906283654185507520025715110299459534526686929769593027461125723430186345552578123962847231820360189859025092337662440891535089904290734888602613945996417975607120440998881685911782657232657624737414069196996548928418259537101944054772553189525756237105195441033822424025516615912893455522218060160592834455087672210526270688818300212094354705006069299657369070107390871823501478189312900546463895584571893705049518214064085940670439348112382384189223974023405550084272993269271969228252657308228418813504532018521025387232041341148866237383286390229362763531968493661433702066210490098947800935063981037544302208653441707088829672461830972062540422710609384485853308625279293285192633449407535364912850489877511641753481455011538862835110940297518497956476285085876932432980219557615680262411392693929615907534344147780603094003773874066089341120168499709612182335793043256121392907152000192793198228071158547066540013989993273844006799496250543194025214014307994443632700092805397611304737991618394921107068520169964765109453287693039953950436379540802348021133270966578583210427215695462766828595028831002510428289839928769527691381818210879660442826776558932679004233119810489651317944644134429251424578280409251100414816838641639594059690951314851682546295950777653244635791621445992245469131338494111806653771873050197898435132391234936668626218402891917314797794032286522128558827424820434722426726425673310109820332016399996608406468352106288974762881134848195649363810254256494755801414689070813596480061097227590151222924223207112529537980268884826093711929789746426406337184431323689363012808535081056238856358756294436001591160108758299801808440518851598350135319938539221170844303189273936303647692268163994114868265255008999169399430451245885425551336924300800882729651373498125841475133903576322821831783707777781649568629120490831962768066810744350054174991199319151630093410826637517423885499025993363964024072597809657152373037830941879576679158929582448312953270981214793535922974970985954675132913838172913530285106423377637557690545672564316768496396527975150804104824110390897729821399235642150657235233596981087371956759081131271785980968969698704527701650319402992680383673307623626199909687158143418668940706275784082542686938286282085933977683038902078743377348312131347627549549461756933880302076151961260023675270651755851248291502250060421282324858021188242784028444045014226410093314531764759390081297653047818785173547000097120490090079986739685113201212777182575466211477492537099194399737220176831477865819836229999202823349151622623785391277122006785344288289076672728401900040984545452977322545686825777850723901432877350246895160261427707647771444369168338931719123594638540524381324568500849120239116526530052673604002985833768107684095843707313583375719234746259930371740223385632764343574440376796002829973979254289441115715950725570513964930693865187102582191685184600578883656691605164393983100759465176095439831742888530068240496364882137398199522809380070598772819295119285380511963461908280636211213124392819172047518219410014718249146284605235993288548391288142082930104492277007804228871028382842697262850921832021024473173161568305819328483610115061709425748992067152009479288640665532219269289982375933763766617938393422848415297597139665736078658794224863147519139337975132677753899420077114533601099890212109703645161333101587763158276945013403965633272644376562507905363138249269314000306038645394508917023647793280366034611789115012247503956671904596934594443752502027717122916763726401152344387736658253022100977147723399792335475665520431756457181480700275921870807649873600396292137257649490406585203335367900672087277262976731977179431135062318071702461828181778037387100146503061178827689229757808336160146084945945441961874409073057497273937470639210915700220823496142278790108766051387760235466845733893844180272148201618415187100106141574289089761392337546966005788858845922759178064649512498739704132840039625489339022519112811279149174937185271921679468494305509618598328382946443624085322239407730063774137134940009525196169807645888376939357847877573694388136745629338907929640568721977263152724135868026797788828221743474284576026727196194465804790533382534416952604832986885084956275997424831042080097411427823040743550419956156596628033698306918667444378321338198919359783134997784064390892246212476847084406752895000300084676750786209811047501781064535793667487658296753285953518997294249070220435439891984721518952179217768828192790956972993898032677692557372936590746066614064187881607385643947745930731457526323567051546909301399736574546201015542321910088998200610689537037458083336559621477608757137445587854264306910313355537355699942082806849478957673629381184241391041974995179339952143870073251495736788419643606904804931861662399330471628429936664915764471965728236382341520877394774626417350656122567381632325185740696435668513824042801342864709700601751940186455397678268712516255936471592687996040061298789057103133805975354572484389972646888609679560771609179617461570439480177352931377998046118151529221689742460559377140254065980378878124996432498164574249073767318012281827026456247690977034399782605923631057858397005282058973669003571183022172566944181985282284937155915321711634068252425380985419421498768058859584485563885128192390820700355213177065391537722324872216100046254894081679935959127139312721080534646103865626967541029212120267132195479953668602744355885661007035684372106268445444670110025247441583975617389865716817524129570626027339293098468517225190404815005729694089364169484082811563891702432997003715213786865102527234165692467745721513217958661632403410046359764037525225565658387567897002029917721054259150260303373363186914335313757658443410422843999034251973598647704725571739020040518088129863088158811452420625126157928758297166140553493170652189108731284414415569876491439646687398768599106448444524494460431422970602003317337772746666713280683117169500423447878410903612027879776290245927545839060173298769949369104726955181551045717692389562229306188414202784030737980764645068319747747464149980025382364573398566284923156857789661548479494052894279395316491082606330386371554945283502342184902202390330986250391124380889095350591232553625193562206674384514812557386895645209658228084999105441464690827805448626475617608997210709531010533061026125491535664973066916652334084913226680557883539310992567201235921974180581800548873573268614192418067678785913155161963156067767284402789470357186302783720410128438656330897117766665137648714895302279030542676441692635900257166104189149723673238178694798332367085163622024958813103637003899435292033557504390908518947519764551095738566141184056171212795732695048236604344607650852265138485363974875984566579019726640732921970608824058443786133340748884932461335468397442990043269541516266305075409714285556924721317354135250966635599570084142782333086636896352662116574260402567737743852339100895850510788959157591992601097027729999873545379361782904261132002052529058058225155397134798805268874204792491404227547254044025610801694348867816623395474816267671561925678106881339642454422366945341251490189995909344305029108900384759450728889626698794133279031714303918388327334565248645972280034724073975561323222304074784880513912264067177989839702836241614505153673262766797477367047472829141038360044606822133598794411099311553174284069898671561522986968435482009810502394377659156850646610633832306104523295875279899703157563336193861958618926982606857244657114958677074326427233688056776007507399861601769255540743281491803795202836976795945938094431171631331884420883062625747477048113205612155485061560291530323957069057717470108049009513525586874924415706334833568275196479759902111096983900331176561992776758419301693168149419253241443737042224618876191498614457924287243245770781432898458379704187490711758509346007060264019164848352954892851960995858901360558718554355108288194033148544755750128907470499380432107126581195913976582338477401381313052648978460073389971022724367547124871634525792043143867486506861562474514780031551609155471072595817833294872316985863442929930569051796652768402216217335810587375622009233971443343112585748003167664387689219222213279828782873115739559280100432794317209506474230724579598370185964741649226705109848289592423798571169415664143254389182671289354353905992252054187822534386816527398586884358264768548841889204888658557851081477825467795753718715088100808627697715033951592588117271150626639405474188279266178523926866997097518488376714403556884580501669833783848912598714776781220086522914270197204096776979885510631062669707111190814192537847329013358357085252990587264112911966646847331952496984755830829644247897663201363587380915359683128037658572756895750389154739414169205662458678218049290274207652659246220889302891712759149839420272731943340461877580292431635689774081452272949810822231394098827569169552285788064053361240750710619986868695122937249713624956817376773094045942633541387554123824337449268319613992077421712922225051190444347854372239270109736426904942177303235175411249735308934659388782443409725656367483177881139464542249244615130356481673329747940129288428784474741316616569288995617719849483774815247222064137587972172336522955965937025254330197874789783594568494776004378284595421419570744841595276711176729408535217841522451877191278185927894939639670747650014890551492203120886680871379911168533085103299639526502858871900369545090670067304265844108349254113102608916675354725782382324584502183590511030189682290592657169134845622493177377737019292030382393238473962742693564737939945342369478087993459510418909984808767525496226688450145061022324791259555712914042394798740427523340963142093494638072750893053591012745067442138358659010934642494463615513897782333335761216113580290563706185552074323638393755191426257227863071909181734000608178590779140055962483092142422084069864521386165190447846179236602905236657556415630924801002620700998151909746034824790481150742243188398810956540694671289241013215273881511351368132518916685673885248902135010101215894662817336467302903714970106250550528037538990430536477957168796954823599856164616981466057691726641155149367888741279851531617301857791167907799530738044554924835293408128908767688593461431717059588067341835894962716055801380186477837214826809209687918925346082946103730132896145216779424874009390775043376853963726804325932791625509693740994518258406604551369677040455076196231619506214005986680113897833734183900186797765499475068973991086230170072200394852672562092947886314861541415931283810681908583038068861673073229364810114926630808048490005791554431549386877014922163269976034586242525189895354372368167924948999898937815725417791241724497641378658321688483176188225977092903061453911866227810969594242705808774538301696120831627355146335408582424234386314914318134148229535288855734112651011886764905286506121137367353736561542128514119756777322118129162032050959120050047897298996917962882015718273286289448109605407208431498178013645344143384221681446553652474635663668716331617634950056882015556740964279697801766828057873848391143986975321506758621723443604540252384246619158055160829088413369089024722088774043395887339705997331023458164282368218511562212916707965686052642433103890520031011708860767450513943683055215875180807319397645412555636768250323605551362126628698429313000717220565046904774720000419898956258044666355046817870778447301466963821721867505944302689289936835610368738033774958813818562323951039208900929939504857310015239862983824472726455796726533110550189963494592128312844386288057813419092111113339286273909999055419305330185602741771868970423084096771771033063279236227120728208259129682787085666241206055517042984270137792870702259800075133192225577991433222209541909429606149046115467548924126718264857531128115492141866445915203213213055963340189014011386207066137052929067168141422427751203557529220025891562697736001214013528208816138243917784615061627321493062781475559842590002026600400324063080190615307078992713568125453495272076295884029394541282154234385205343226912202308030455821299434364225713243091330523951545529166969788526400220008836602207418618080303929174655306323126090792613599450130646690419551577054291348573000975764095770806733865585608630642872329948802921851456028745663660486515711046412882709791042768793202866108632211741871882644193188946578949520432253840592579805243112423087659353698674503220043164877729475046780797500734539352982794319280776537246759035441479776458483379114164505463911551130153115951198340763950348247937219869795166018589457682248781357935085394797031440104315432436097404751534536146424032546298701547735313076021767854658197911670552390165916074275662286160873787297253334726479168655224915353072339489862527727593812423264622263432327066905292980346506060561754127251818778438753776142823354630729555477840438052484159481852417550703449128895012065519775544983032172349544228960019034876457288896915088615686730849046740926660529088776978800218396776281270290870282782247048279607693470454394639565161121053520748238085274395100031192427816831916111035910137559376478098166042759913816096224247785911041626853039885904870525921799661264007952509080832481109472726621934839923514571402921794644189974256613974745120077961337336637479795155592481877016308027934625305953052583417358332862308973717861036467797425003214315020180145046022012897486055531090872027159052158721408485987730323733705334569946400153259888664143792885539560962625667298658225357812318696161255836277189222509225957500619304399050725716936465944802473399600105678052288847198023501937975516755356839946979323560972509301648401540034243965678207235327267026618518218599132789011892214357818994077917908607294787539883849871796351991272503216636811612985938381838618734353172904377071929976722383435287265733232164305661364893136654691844851183155929145234670724685149308553618118669425546385494021038560095847815374862093465376982135494961414710340032736324955489056528999630082343676896508373076421622587720914618238272973977744990674920080362418511803540132439790307312103199878313930760283169060225153919306206592767744559819734560701541668274301585939979380901728186809698012343735562485046420205981610686676564904692981083535202923746997827353621885468851702917799908450800346646129185712155023937359033068607814394588861850401188626454542050353320371434909216770538713313236647100415086099675913455322581022681587802432533891197638553744028781698375256666498190819095988666922268737063214809387399219906924249404611504815954007439593640716688354322539684984648762834480413069215096749949006919765724739457031622235902151432620479365825231890741479324964858579947925074544449074255130218795550719356285902659141236604517825290540403176509347948957126798172521957254258686429620593371243686137985427866119718878487671437440417482587358359437099718750942616137240448726976221033926972644537745871230044650310207265898718457300911128673470614675694592411909702982786210245688843588440396503270179876614540647029805500137538546672083785805503575142343736566447550040018508755553265392509700020654321858531461675836908117541769595511571981973565472343020869465642884682892638375026813553212377450914353054776316418996267646359216779166660727360564820799497603623842531585150421707644648348447152922111302515996359044134741338742528687300346213070398374168710320820201081548378815802829656099311336934656438167904790899311650704664038688443684093872694479515863673926481577063232585241648430922317294030064577090553098832511772037038923745975510497446151314777546849246469950278224825119035244190397280476109227433936258979875682721540472305089891132762719025865099097493071203882213572113462003378030636886258683869503701261239683930795445156480650832391533025496351937187320801078458315614447370928098165504944510751125483496240662201289455855737414053989269642767369297572622190308676714542197501714786700175531612071460917852599959889616511586931771076386178032224672857540723871382047380929115223750338354385085602661682680391246689431123220281240173996998027035464232006367039705035515818334419166558448702431136297681399608666011161209964570917317940310175319658585654167635124717197821327009290144157692156584125182552545997404677327112527294793570654040161731479409042628537178948770311153331014063227622417551097520836276096784022017367829317642553146829386320772374443070232127364494104004946112734229732028203064151936183101439175467728952801035119025575194629237442711659772198052258121839964380048475975349564233190752130747405789909792082845904867639768778755612147456291320142414817212660809170972334822124687345665433049447369634663166849228112003422401962608690270842773335903164484741899034265568523999542461806630722211770979803561866585689915509023950782194936926873424516216206540487891638404842058176404711578470496010330430753245983445510450476089262075692598955064708208995912827492083200327120067801456059320881632162161775186571324972366105234965073571957126213110968400576068775610940218838958726167364237070399329419816397201506377184948856071593554111126603714189632025754193265040300382931995405714107143064172821054816833469715770176192231077639877990495155515336689584691897863701089728411278635579424972140879955162170571666153281194318092555006298765076823638541249853469782487537176177248317532292099026733530450072110866828825841974501659185399278010573645291220217650809998929034074309406480175472964607396369141997886967621730136100485423304596152116365624558986597822518230588817412631788822253978831710119723287780651367201500972890575297669148026836224010762763481926389185802365004648287745912074298917146642126731509642587115938319680962934055088331696017888713129161245984775959040945686675239209517120698954453876728597128875987110202322042118688986560391623750623585820197066819067716555792257927286835037462950271099272288040879521880122243690618280411200356142647917337196465625503731725404049310026133323490047261984161266224724698348481504979780621350004162920836820959356923921350446132916199201929401947840360178107157694683381355437972715795942313596024961418854644954145125891838886621999242901909609421590362345158752150589791390049999338681628869896531622397588345442092673027970825763741192746886935500780150370888641860637132946673401600658021948821969986178875425638107884207142296137778053600701577200220624000700262541596859358525634492719819025848851382088184090616031356365499793348667935433474166703585920297957198798189549886922737868826747939788366832334335406682041835371492557709485014326410475843999512988900685710637404689431270980977671066223596868983677242936349684526290047500557412438987557315238348372388542908737799131029146469627945343745936654983362185813648763665484272037724199191639148289873372971463470752990017114325744746701974839003513891295823718294988734351589857837887303916768026725702592635081520558157509229462571953040271649426502246406365889267753592528023646486911965316257367625433605818785783514282915598164327676236792484030359167975900741234273309092741812579719329221179829372840906660566037319916745439033299185752543843969289449359978809169809837737604926882875288907474540347738154814768938242919343555225708320760745067501629697824088850126506928738199621841252362153499120596629601366446886721223284351575583736611716275156751518129600429234418942088288238690232303498521963875054874076919706973183011387286880647843314343404869249230528264714855380825404561094514892809140146589009730795098585841847818299828872163715807191558781409111120088761062277166813063132889439861950604387926378283895493488083069786339722205076008254819932407674896223309492411075888550492345503923235116206380262703574677936034149910738719682349124947903437471869176913455110876838498976660302991107340283307722503414572196100826485296129851298659290558343911711777447377054565662698780899734479852527283280829364943110594075069379824456031043898566473453984308093431377529545529971318372636925307407486877434603790563368390057996803406472686429151874086377191834145109899345371035524799570039784097010129454666017482008980453618297462532096501867032738599071587007902072651945288427913547435682538390514876959243116153919270178097414657341567264737351214290517630408011602345416809153913862982956188457699061189018041012249589003440418759484937316095192828008667033456201256174177214424733305416857579274998592409194838221399438764417789118688883754965355663745523960588233613315757538766830406363310835373760139154462038895201779879691250973104905313987278396779319414273192698201688969197564729858474782109867989381896852963000279695086748952054933442597300841618303502931882865376669265350256338934110122160500041594526693278531590527435336561463850200785976232932301816289763825490655306514501405617259991940091982368779684645105093947771795975360090937652274958859490644109693645767426361655359924343963009305856555986898698915183806632408385898507414674685888621681443372420338706719184888744020422894341855492181653101056156323840209331001660542580838098112296373981315381705598673196155069951991851424590392181843456787873915381373612663128362512398195646468234474740631492505085789979676766508498395668285788648235701255410980512009193785333356708475987159952094781934680133747535099415397328885525028918028117015069359299994973586141760366721899286837232255135475124904845414339428773801503698395563410131557567239775596036364752186724171523464872001026893402165039018878151602094622246343434208334446032622764626590831632088814529284272112006689581966844326581956815851683436665154225105943883038703252390672766821990424211779467989289337263026705839981984906088039411256994089856687438439190613337485660927450553837285519032145165998210478470566485620152048135361861661165192854444402091729969955717171590167465117636254213869176693016541124244081762176902000592767639483673758260158875193057865002598536700323205353267495935393107679634805621588767870918818778294981570721675138775573363409225152952334935704589135376459404286568292207403105045810017600389501987509362010634413802136368230600636788683843529888969721031033672890797228833953717133782261029373607368645200961128525149445625934356709110731128306114340038717373556116561235196160854684818445411285421410521035808286011827057782289442520348329137722995245354730812236919871618217917624284701335221139640343465523584642184054166249624859662273712644843552884251371573553378989852301533163899923282416949053700111993599818230963991008355482964253651246228709401735354899497662685043004697903824052229739455878909275463355891253381349303336794872744740719402238168653344324154926606974284766088578359523540802976272823816772465992415355684524312982408242781498162500968916573439226968462482244581574296120004618104810617801689960807904318253299973637533167272545630088373997811975366892510733861971379921952984394401832576566329582200409815766123339934500543034679196905091269393053144438006810409342563864245624629966934022893307291385047684909507717448878482895053683830599452783087740097093767950428809534168964172710059685306362701681461784827942736460782078447928379100121178323552279436605373616820676970394843419684180022012096394605259107622033760117649997912247207171383011516624792817143446003542548911596301134306822650810578275017467811394159662295989988599132549697026638190897890145298301722466146162578098973790914481637127801912113158494615837714859789970186362851018056708732845185063736536178797653512276224547797684836810101609420520710081377237910552151335252678219351733415896947275033525887076843702860857372931940417489171876839594602103955833029106287855872599938967940553287532067426875112974030697228723895386838476693808981222524306709580898414352564232871394379563820499517980396330459467712776224113498482395343895403661401452244120495658278664693388886168878218407121445684719668491152630980702347056391541816088760938889111637365590857393482150168557959585043830379351794352825642273487827493772138978125773977757140485527028337554662947565473646808733982347435150339240280471542769872424826252425622817673247590454744937076300739049759734873662011582321230510736389686405254909549926473079812272693211994167896999659125015787635385952496058670725782444844306153754840501370098832282063889533944082155484849565087179048621914762220466040190208744149138829424556047085220556851306591551159708381787950716211566206054579115138536314425701375043469277652036345293455170973485828082689710453127954731417268085793920540655259752210751147016670788571812726556677928502553410505396860896347714598220245948545939783645200247782392497702220937542959809238144940812801083185743937215760598728573734495688594576020225629402539926110524703508135697999287061699168174490717962180674547970268461583225516275979627269217096301665536318865899137505782165977114228015585407324758502926765726002745826979087769326516500135716490549063139930102066635371981541559786082708882412334704975074233011022796287304348637623857663161712465654786822837627785039944749435185606199925668769591695308812503945085058819286803229362873286804165769219804751912981904106001574957393371442517830150150352256121343406571704014624957183976074288111623280347907155726111209050681023202599990411461078046084538235180248013182988889326189709763644565744698897361170207737380042121119854927265960553097129477739813847891358370614175529933080730031137883921097886183961886005309720704527095341297826167180406433031678436139108479206342094781851704721627009230977555719077651599287289858188918210669373519842904772649395486717925009961914545039293485681176355153486369002146146286172008227829194625942422584932478372994299583400926103029649342441186233387416102190210976520178018900512081793915542266558932392409585582385358312158005784416874024146330405989468979459512694868015829541797375335326351804663537486719878274757661798910254211930754176877995162666756367225586344367399994194821511193998575015942601946195188213328516804517176288608207997236431066264979617669228211031253034931457341942075351976050469263108288407392788172109772220422262494520548858473653481057366901603357023651625824272078810051527878903369024235484537681376254036014199407375543773190253760115760414362794842240985655719983811370071035011785284083761195872830211403435280105502135967878339041209994568003892094281728047669084640155082854754700887740039512915011462513298290502255422064910780397518692812871886265861235135300182070644357622210324065625872870430970514987325548893845813587076963503009351445394905843126356075817624531663808005633418130913244275544240098173339672087144302234331568282841687026031198349211548887454766003255060474756012917311580050486592944635970538732667225630763375995629562927653601886187346855216398723705293584547626511201386241882001173855218463052925905419913631791527434857395389784844665257652519481203469727892719855087848427016186128409361460901509684986518089445109677615416512771329608316769768691993480915816458720954832757366993381370553328005753208089838077707021325743172099358895980834734441840338229511382433667062821716767186603415377162964107368273857264061624588825432878617087285530542634754761167442510924399554888260969552995507403703037060489940961922528822864906928744072882988244490826516201218607458958472026879611221623115535562083297842656595796769436557392025050590378165742266131803861065107835601674482868017967135510814919594384750162244914822716172390997587776826001542663093125349641473529331771123889582839616898540384417199903386886573594530099320390888215880321451094254524503285299435784916251245240415367968886096778285356892447190746792939627388234317175637647971542872122283435358150862572740120360533536779891964184301527131319071787101241956386387195952430369371639635699919138345270254888868125219229674122274902535175663425584530887093708573717035534960366396687567355113498235627161112257007344144966481752448986473805675133318282969087258816283388037350023615732480586037654570765766081927110670354264722819057854356327315138257283076675577969922394094983089023302685897332957220417321515081969546234894791724457227122232142678465832523902015020355919673066247420449309995961458848670051397793615854795077779245363087135325169939044135749241230388615489389971349524429919811300138648293700887182761942199218533665766791555097007861233821322746258513347923885340937258240267023845030219152940783898228080012667372691437031736550957167683555632953228778839049634805797993289261648402725223445103742203681893181939479811167789834842696708597372375297434754237957181935521561693965565020198665830617989581285725566961646578676285005374495837910443633881541727893678943577393571656774896847365412178473128037382724030334742275025734909294037202306938061551886108931669227339672222908241642255571771336354365300057089225229921763478867813273453482328207347478890005198733138817954802232406238510373745509723432263666916218896957395691908459763324023916626055051896341156668125449541837122902527763062144883186543217131385440767156945457638790474393444197515992917906691016171237450182461007220601607167336532382703597210036412991515584261117743021008682038432033797948323795696258090907638976829371891668698454240769491274476073538414625509844202993356723652557167590602117024760577023374277564518158164342787926511550562679998289762436808813519372323439526264292736208420168949106565848014200307257120744996126990168908765311421357560689822518695837110235610019519775999304813181991356155333196460036510667488127494626943209306477307799865878492216313042168571036382540499113907292412305530065309722496678121065641479193480672660078743845789677347089724666303446137662644236778296845702697228686975817108842906856065631094532983380400501386972669463985100275501093926819159666282231893460523724208315953356797565035285717889930659454947622111787980817122402057085769843089590019630863946111861891073037879888431849879607344155232378803196528209936042136947187747065938021981063914352230043331325114175640098050595006702158575537734329988936562372595170431034481210931360948449799053008653447609222799585344834193335819606351881955756592121849921235564272026022233010365321460068514331984549779431761490969734165993499381118492319822004128329545580662445562427414012020672076515828282370834479067598421723696162340274626643223795142523761096125194671867910690515380219332159085477580319691010398636457749326813245802329358781791006762433330822105831099698815759212365527555934909344291399416188578063484564121400333717536376916808331856938776315265067779246358826993520523828244932655721540586263923352563319013167320400843036403499255039997809580555644108182853449644740804251988504103595709453572932759010714274262021463914751991658395444558081020175107118226023274777472999721068143534012368939371810195466586856345471031490685496927038651619732062600085987580331968905392217096610401206312000437371311290115913597373072559560804199168649313651752888421921617326690984768235027464979878208809311091863374701001111808268647003206024985131889859483772105519087741880164578957950733331172697631095998966762011094531935363521439556350904986324603598528589889527665091566889329958271734565447412439677755523031825119830525903688012182506226533124671735037486573702296845445575856109135277030805718810435789136341616436165394132741185630621447005201034434209678737559703975345802623996134866760207027683594016689432338752952374885796368295017142753540675363542550642032058373224314447798940493232815424154701458417065282840153355868293267848221049067586224802721459981001131510383019704675852097305112199369410169001330019615447797036309067514898065233510890838361321452179960342305469197802364345283954939474253867067210277069259559344029036714765912805542058491967153416992746966169033857927785059894007861935701726015092956548689957185810573461966909857336940508016679251505788181181067803756328247298284220836768983516486404059833864029949446053229630910749737321574162410776021362226146738548336134745449521617898401172376631559577463234470805269385248467086360160370223217195128760628877641339495381401652453603073189411649166212216915948432785571985572798208093333121403449337117088040618527959873929551638170529408416251010100237590797687449592231150425433024573236675702851794032900314034610085963465587746066569636369542113859633216865139481401879297097999802613145286081142159961628138797874924141020420341493128701631561548661420049628264336760603420737332609020309893613559245550596074945661490621120200244333928826055997947301926688460416411385266229463794428475007848057418482229198152682715753982363958585835062283885153721527941586683388789184069273147658940902759462982763339247323481022800855799527402997563067013178599263316556451439524063519489330519028389464183723282030926831310430113173839282809984184914774881551266325373986957982428043335003792485177403284480094620128996104443638672653562159667290047006883023728285595644787691163630172967885545815186075495969563809916240378961523764320309726892701463215816868489452191027044588945912714625096714249995494354202857013543609147355455875422631573181284081927158585978764924075457457356967806829068220394308142673227675052881226795003397422796779330053216413534224805063641902030302013677250812475427137137542581814222912432886220579033548265624902109579223967984223427616872908626925626615680653818765610152565715901020655770806402732945268741072351996784389452088044456199566374526410191337495232978916613772213522672361946510066108901099313048064939084082557258782014673803396771052763520370892004894687914159662044503901338944871752560570064822457339427008289429783147043504127989445899716646004028254119354269030674752681799085773827126053334263354926020562461857691329196183067547651511947812486891657277690515495793704635944238730994585521828758574216386010651513612488485393449414606365401533111556748832763036542883854815445511083408741867103895902419057842612888493780650919946922597917614665690188958820890424182189505303019905901624441989094391466926030497917724325178435278245484417182730239288993425628467728872844955530592793948989514055946684023125129866513272204911728957139824224231251681053582431992775727242763356196114487705163727479097153954808286324585759037871329310864947395392741142310318234082907703820474936236792362969696652342762631278613257276179198134770822491631046485432064809831944580215422415813170337728467247116365057373853454288378924825127744722273863766880906895422590301664449306006271977593547107609463801631548959039525528796181934326321818390863992818421275697266511774371683188917194489333652317214646593833050649665302162754187735906776282116713375080281838583362482530782381594071922992945230892372080652764228007328939458086033956087720135139366032415414917931411590369242214195221229228026687089068350979590121100631541031962079659613318262933104760954590570219428702617085192156610509583339271504802997731296342199952920230841326673136120178190620408745955696066208076096348169829368779060557501591837558918573507889934810759852804428663462504554736851448247878362544012067656898948926434478504000451285309966110432758494060058946053906733146015202310271193460003965707775559215978358028169165023947022276683574864771592203430175206852280400562184574602916545675642651361048818595780234284409039004996560474240681005522457942479042611055212517098396056525447138862289169624022829326134072518820648315458978290272837074125821297605596732034236846699695918564162381970382385959404558197190425919371324803977878749564409583279586417788214035718678009560511330462852204222737377651191841919050601741611690486256107884174883459603636757799476753516750355498155053579671308167489812559736933171005672016108155038211346257546087953693821199185687999420274134949593484986248758046942723526538709394858445319415109748163542021044377680906271550663735231900532480901515322326698850802331707902072650682827233350767549538570267072091835512454214212092772816476799535919556532861888507271781419648475486508394141228710823152331977329458909509530247029090020286273113942814552967434931681668799613015755398208178950492220572509129610608129181406485799938925546404539404550634224059087535827781719900772608212011556297230516914423380706517688380983752526195508110481429668388070933414222011217734794896040400885302930920703377184851486781980279879629150370033577976780798950407114473144590340298792322946566802669108064685993626674550102478234572830278336501873597703082154995736301039007820175085949773772349028813010011334123441488084859304648671058231015726739949653525807434270184428855659645661190566017397663039440422652550917153887859783050541385278383562359691681374561044046754896439583635017513501832691040902300664382037818661460708628675627611202256965673504638897507808146581817710880299553410778998241923225431055953673704994411975399041762653579007040004002190187301589115456613629854287301440078855332452825763149455915118572005637628732015843924011086390454971394708293334937445442365080406355094250196100592894798325495403615186881679035149836130068482516624834996940649137511046607032379859766413197637239760942323950013572554505852895467936314623628772287698663005439500749044195930235195411700145119146404899136908120363631243206121199428500082536861017549352385744761985952243483184685149296640232490246776085177631277524104125613942111522637234438226177844838630317490959275938402643588303310615013612998245769811218154507926671314469041813911973854741319221459170638446826936444917929091871309611970876651289976540555538082333731618143464223559053087582124672080711522502188298046308456749997923978202000804822150651720002417259271057778398235181139680329595580684099083776563987023157372062796228502037481688066268370441774440435770523731381481269205655377494704645092722075152712054319569131915055096102280640207331782746665904893707578735269939990784721275951358359820449909451845635223913188844114585232323291609198593736520963455658805414848441916208310690074225199681660856058438332410642014953512055773310218452335168593403459475734270072530007554390919650535331511679730608096657052791554519629878680383553660526691840890795925046098369221489823288572937199106494838153708059629523780190007742553698767042230185531266423299214161866646630381981049371819320783974544016755165994654782447196640739941821451061524501781338358962200650453034181731162504741026617578951882252365143081264865968763065344299662906325627055824150750025339829066507270727719938741834824413074839674809175985933277928676298948307115392070243014953182926783774840107492919766631614484661823277962722039241811241900174602428528932533501797834881657810663525310848643633733698686019145113050276289396696991879290289779266155919713369045141339057035900732683829730214161366779332166101516792822494508762447127875975598256807961236817200855115801887913274914072403843292470252609777162267282894649760899686216394570860131805594584923887710249839940268766325918696793189279635848068274346733859773534147878420590862262860575452812320836728897088849565012837228023179388335266880354422119080766453743281385094538169980318725715630349674117753749377624154646758511555490987361416390191047990583073924099137110802571917722873839490139251300063239184562455732786375112291155163247329427603074848679604017508089251981226134462074587048323517360176622131399537328982929097958339386709429625492391622338399066629158831805615529305664004768297494307873105926506448594373632084281780546918501135019552450833766945999301082886158474643011729767694607093584167793181646016557675084072907286842361246938494090876263267977915370314558622119719463147671825509200020280064550769180299454524951979860394638239762831493175913204196174116728498852278794065450201768831417370763413025201005453976101833433457788999582982600668400018328247724680018493628391187839704982868639347298482236090191603739208584586137985468624167408385032891258506286967963702749046335258979617644455147539646165951150131244503877987688572793470846607032147917107221160751167037100664923879483550200150189394511697128777706843512603550056485420487996530356431382389049504075192296599966040684317632470407326357180819816744949904838776865699072943867579070417631991639602171550404043241598663758650071695533716973158859465640230561225129295717493712947282618073838628568376261014540101673160945463703613146897376298429765428078327227604259859734449806297727222256441057640261654739689164810891469861548315795665007018658151486775239505448371592009366049324890300522230273877553341395318956966185166998705895113517497623725620560419829853336317294863862429769417487773810390327205427428371404239291741329199975663507746577090464335832921106310730807299138014294517268345651019957409268170134821247212840576592269338216987937288061192106647767812134541664709466957389290657544516239814848822331852765336802394832139114614217590828281612417530590428168296694012767381500838306444646150202481824578309393047518561916345441803587872766589317615677849555542203250115684093287054613033478658440105669301878639261442822924295221415569823458939692930580321529930761527955421925498258545380315246078408166809054232706027877051530574712247129164533784045028447868084601161609685546586222677506770176496166956776328665917460735633733033622955259183579507106035002730679885999836072440961627880787235335443955904781410945704136361865654841348485899304379766526452641635605439327119493083787405885652691575848950769983603765103686731281598723681920943482315647416658135089512974188365542137889822118833103836457921658771814576561353109087262600480950902447553784013720774942314826029898920472394846644063400444083691347112799061225885737192828019676195541682057670244807819281990719542346209206973566758854748224746376122076126398029831609162424869596487732265450776576842542494154085010925057796150836111822680631113999791970731128218951265732738733150674593940634642806476794089194792930765251603425234048587708480618397569921463520359288650453353225470463536987373205549882464016404464161330247832209584656465956015962014206121707742287603532752015922256401226532669738569432213646657596847234252986654990061198232337583076486979559530026574680247162538915530458795940267955943223509648435360842156939712419337684330055914541577843393116949314770769777089891853189602642475507373642736372701325731908360906648602892681070720663726726187939382967420400355277468601739256069561854182401029798407476706263148406851686959443695629286669612606614970157460804310637277901130456520178466072024081752252097269362088952298974187339882960783616488987831090528299305956923618148991996389892401417506998662627326035502789101793348528499401178903627611171208879321745536808258888728996354720564797067575602838443529715865289206436901628130713470134065394640907344260505484205444683893770178871826908073614607940628376361362681596106033485190937632540295237086133718763139089932780721183626884782503507416667145294719582731187006283148948350190275744666013191747988232228979092368917268042788996777171829272937573141145617050705606406266838909742771245535217068902861596593660001320018574055084455556219145407002844914643640716489837299535101630307459885801032777004864356258182902928388804380792667198148480588612190063444528701414699488920659466804198459754914382553803433210712042063685167240409191735569809149951645704095137104538985148631108341590273222898194846384971355778095266294370331914867131715443695227896103545754973933984241424953069569026753090772974040414772098162401082787101652996708302975698803141250708806623038910038445760227560344281246446963930193818288202791044602595211865132340747171496295874301744231980888090015402060644577025991109373831152132025771244513327931159429614977445062146797826499573982519638121652143457264232382560346424147013770980303680553780892250203910196118556703192028702487712419548608922100523774900062653501873192848034965830902821957588933604941170492540919387555592591436088980918401334637910783871183379236733263313111695448524567481602171975304962581757784515753238367410613415088473685304120747662715684888554928339181836783984784313459153232877283929187578878155209877001088608800662204600039731487168072601443335098069547212305871171590800421948919551124949441746723593668062742432918117630384922007609072260207212366447025183927554654308837507212339969457048645818438046144100429267148105552446401705173354007840113977022958624759356005844103352709754359201266455377231018121779971385381378874248556032138149452947459727202574055080442387982230066707961675386446726026183988720900537215427885290710803652582899965299724564982084726759208549075185474904777149930814450895868982587660639813828985069098484186303620205180234385851258460586608314633014260698762214005177992026819616636470546977869535174497561157252820629968615970815548191412730081080154145634678527854695588199676764219700185794471788943201308021113591612034617612928990280265749285075804505243553335355439440686088650948352778594305978246632774697998283331599492150888669982259557672409205044400295464299847024676146830341969031894119920188916940202639662902774595005931432818193971664690534263050028170169246000445199504185689340364633940980931531208909713363379612043999761317513087166373154013126602211802721138302615676746111217973253843721348392682274566034986553244282336262300392635969131291461353595572321824676641125653560704489422911171174302881731870206722965668730755413699711845670103149381515858131224732704590339360744691516497634102827771872736665772037137388359246704004335997734896871525865958788016735221401965742605625231167267547883255273905955597791213977841858874628486215496480576892166828393387007941924397827388159002626357924986972899691352716384285663563074815055338512464902159254434253033777792657870545756268970585451817735547807270386553838977614812377026721134114811433204266092367896073019041388650249059667652972044779052653722440205368300722307396736331642799154575834758034667472983770262766426294269147650863954930068511216866782161461107166881818194149094551326798119032918960663196618426795302199849189091061812196472486112646194597626749209140438894947480923503282883200705156716789062410798565451547632633880800045764130580912646674470756035406797298874857040889945163435281060489633389410183030019095941028707329289149806369535583430949684591810500609125313533554699005565060779073148166051698212102163229362554940980766863022920386898395276127661345708935725351611678611253942322422482964254511626106225313772204134157583874369931000692496717258148610421960980322660945749464875026989602732055785850569718236734569824671318380433942153613843942115715478812044774985579673714201291017743487361654573092025106016788988255447326250325741699747423120125471482059966803128260295835321265771831232552350806426108703844370900560997775448569973544276762923629022757585634973712378342833644297380207136530209727545857516498578326045864809526189541389017825475545217532747063252484764979486668506479382667799238849052462295224759301516247058124984981265744643185696229905643916778648486898703723762651343024631478192170904115265859317822136937930290004372430889275656172025910315588389301314559617668297250552798732764599304368036348724364281612259838527909066775236848795394159331113829031243853222399129765762235096145279751829469949151720233904309376231011481489005141714520784826878363071662946407436455852224527990546413864830724211006404627903462477134282314143206854447575077852049276766943659635534855068411558881641754982681515515955861357067314628152275937254294022946123351044950817058223759986750160521670775947933223903358447103453655298169672087329292791452482129693905901273515889942120433790281425541616509758722366359985965953805071167862711774853008294279673649483173696895859387124084703265701179451878160044363935141394278433091240545191244757138508803330941632626004090289567773812043724560242469099783829784742988600311488278677168080191873960638367839647093014888352114687243606918427609063174942139891275704116503788611378194325011443239222830872484805427023094061132063644121823315292929332679329599659961962430746558946013337829708421712092911701104182016086640656687386603052686912423625446039377975012721645715287203470340573009448951970164705511036997086721064605644276168391677248416717759690513645532835874078722788533972656183257615622039074549045904256428980217600390784414081610136659626910526740367432324007733125664780537038820734096135585948415213965168471468523034481088105914214279863107846823876097016239377895441625207636868737744500974721744316643776763613919402369303692906871241734843581703217066661809823474325890420741200635959603923681605529435538897922806903328134058729426536470882755990824228438066955516098086621275470749198118678516500834243868868473578136665546584213612108735028569440467231037410765750063474331943725185786409151018918092169922728413533851566729588811926739756334467414994137418112711970482588759097224324888908523483396388674759759119950252152646368455226047642636677099888839027269397044323053316792496945627441169563310115443901994206567413389298977264519982962219698959652583390145545040597032644837389527629847203939057431199656619371335924941982571614068774193995639944644657505856813755898124032761478504343644781973582492724245143648801533331057111114738773876814057156639382749376974516645638106155378516920866869989618323310246106718585184511914608326902205088290156708953079376101391594420320616197070304467133047048514355560810322737019302169329380591288844308422688899284006221692931381099456697055718383174402266642142251073123757366293788193004742688262308667507800166184690748854432926675182886973680235829237727688752834981391741826393945383426664694221530700064856442042581902835629800506013466384747426728436201994465186616448101515084192573330892874427859148443814225772075919002889488885496600205255221417167440480985179775784171888450639145843058898777644210637340114655145450605859577935873874455807665006506674010355030146435285674129393181545624579962919281587521979758810288774779906717117129272842958144022861664001551148133218029142034822543751119158542040436171356201594140562595378475576567287450046517372828375922273841752006478832306783637433116263079296960949889277450047763490307941516329622356931826009956790002633984764192180478538527049524305556052979406480284784179953590798225565721833384562394322526059595364893856687969810978480303067229638413266593520746759562731053279769641415914249991239289426718438528440169514826694923706731345513711059132885097303694770076883154792770700711145422733348247131807637826269542525493749381493515320630160238330973434560869273769833598931693960148890986100432817363830625124242814424369515062327297912648283129585946878945589338569971829337704000734525101272867829933639878620707722699758536837525791826413068722447426734857979539373114141418581690566494461795233535931338350257735645608633039057157258719710902780993550767699257532857827234877461124800685912257949651006549967832853174037356907274327259639861126967238944232574731969214509521750448114533228543545941590202326091737209553318112550376744806535862191634975351241204712018638720528900227152704389651202447448723459796577420069824468758042335518677171798194496952025826439088112302701972353004542470809096748185864699921453914191672529199156392560559769738256431970922304491332957967414310331628183469397289989248246121415650951247549371414950756045058469946555536372359391718450072511723257701292692008056021910105492346089412241134619342755781926022099193715370663963765348973902871321567226170160810707310858330203340030432558146769326666478858215339928748771539975609326722497876598153252316989508036862450764656170286099109990393950978999346784255388761098446138373533666881741032222101146943056952201208607052456808018788900942806244902613020606049305589294893695334902052621413506273682049381587310116462428076369429794656029136516069454992505311492865643259628888862408833598836278225894066170069035462654141956361792563713739943666301635204655252103977389745772566433641858561895549554385554168821752315906943566940988717980596356171006270113744523644131551328226831872338223550851346849313182532319614651017902719537821017790550634244463073249991743761407781739813185961534830973284528681181434589382869510126228315473006538231293936549284767198866050199188868170924477394504345720053624639844894548997977953055727816719352432520570497013532382041626849717439432014236907070582149194348768359510803698779632064463563961235420017714983004116901090561795542720900829942033557160303393535979522324859157751863957730800481478788878943601190826101289684181076878694200368483342247651748541113188860296857547433641861599555574521186405564951226967300627855235131918559844092512837344806908595000972242090520694457373987439017386652871806424086952156572380594363651412114560874951393539063035266659042313068610187249522257756369420433416541894847413133912125029016031118248574124866268034927294443461802397285296939150704743694612103047938554968970715610950056177557717103480348525774057381978821349991449433999356293842262338077091254643000906968921450191099587675866304516127484364349685724868381667122583559505670913190655684078077218479368232370045046303926415997339190919330506843681224967481996364892771177788112916975158776633209748999793679835565027642961572157900211207316779070497628612838711540257095601135893926076649035737053664561180550440569736018628754604621197626593624180345158732082667051337948657088395108658540608801551358873032562105313522019392595720832937247289116012283327225999253840921733182765063272424722546135884010314043855602874008791504832374016372163660735432404309855634396132895535192712438912898871826438714055728230539958054954405236292883003265676070385341512442423660150709005276774302189890575564582201584969621068268987323241288420740106756553602064374126658366584738531977477657630996450389548379711093552930949649250108511640622197556971969909384393662654250068781679065355694816894333494528481846706740797185080222024838280860204411728230834733828510798839278545925084455150256131971101377863407967758264766525468144727595736533766007527785871578818387360242871381966500411689696013711908810072484159324551659960475640067268273819336430924028657012075053650072698836602849607989591644017478132445963893852875502527481396911979220691880580923294298834322474848223066840486900205573364778857979476282572690512707880927926226376949374245097865416986092911753025014220772562218892898859248147075570128451748176169019820847354653679872757649784512839022178562730227715049217294423254240826497253823406242977196518681836401329526530599402152882528619378422822047741944524536872687172633266548341896057867129149337470289016808699510735238542542570941401041881787442882482759234923673976775121680434870056815740485445111769345528674429699360819849326256694325581790364970741845369946920088808752433310198561741371951225596046411481878797207825482849792862358903921945279620513423702397828933029748723901104318766045661069995496339404931176568360135131956283393143053050346987959908346617991246229547568078929809660215039242306952475587517488138558624675151074988479261201731780228595786645330964464607753051086897924087351815642887001844315331895628566372983135604970858964638987220679238656106450331706469490318883319183687816112328362888926024579652547841617461623451136448753850033180059476757326824715889422836579060762732277715656123703338610933605702500534679122534076064843122463467487876148755670526899131283902540500873514866691666420591167348154510930879326938322110201580103706096379698482642909317155073255465618094587161684076774584575715002127341550355735086878922906684590493490722857553964551196126937758325575304995742389886065994811850372730325183633819279756035115054130249703597061152556172105574187873935251496092623288131071262335155083577430671825500008905795127946368960058218593912512413544881922445230527420006753483283529808731195900125019305747777234433871888318371341343564958213894619864491810843106763363695133294430916147303551545831147075898108490819602100763267183447544800504432955357374798328347508139572899302088143694438588841207285308777035841972834608787429851421945768317828568692830612670765297673550665563922518498901250529137555018253189836668476919541886516900813683971811385840350002123660089282622323464436618631047822283052189166203345919954954194162214619835850341721814461566916101674321884091601739669328508148363001743543828252583791879210372323718785138685575935704634308843315149391809570083398862053405430206071784650629136964750384614090432566109686912908945787301880660197542897679835369414295298104349041946354651034900312096451632294400713205183385167998696769437764212437991907385802100426382595426553993545229015588295699040887872374074829258069264770245593398778039896776101306226665136212022658601873867849259359495068945922327671254723353048163310208993050332039935340655397366727189573402608221900642651249467865097171259616333870963563866100003742265003530184556744964143553439282291082483422194844243048038823444190006733478505412705147030339100156132736984742116663757108469885312347214229948697293534444043423360546781314278290926945671822798584995047340450796472251088716848985719961167024176920272856001530998055834038921992110198920718223772682644413026527204916349497948685986609607903319874244348898156533938837074931185632325239691463711235267053325970736805927270908656430223339540688501555131265995870660794174726150097294677189986603759317962046414038698873130608439651521043702708205155526764024493300821262044414542651356261527962875346782600062589599262591891042568090884838485454515914775166198217110974558547182809507643243955222618875982688179858662319426636220686736148283994507536506467415603417358689930055388119105847904431378402006961718495450240679870317496761110273626118272946895457237535604224666484184849972134457537028825863738077914517049619310164831101200975285437842363659548023022921477751223585836288932193864708422716646718384371120480657537020851853572316564679739545611066749257555849769386562365789027452615150953506214674263672931330549476509091040327048368805604186811165756533579373051160182819266089930386031158442431099645536041052369076003226518466285955221569682763446440669725185097069996557366138974934740428897665791994187137576240673636672997356750062006511712025599586593575249915566983033110346805877104134366766953257589617287314717893589011609642773194280358917451516302577979070627267824909027094715840727814365654537830174185281770764373247506435651675566540429244959205652175514714712122102203255563999510749103516194462024723790670751740366420460531348376595169303016158061469335137895200383048822586765658810831508770766230976848584920751956806616448456557907811788855688359033947759396331019840498212825828848573013293248201572412115630633153648756221120372296422906005682983122834204587464449816491996583512748943773043734806010737598157967683620947382384967152909349155576698520401722127219317504049642760069553103908266460983871314179194988185796730803350894826645784783775938989375549233756790158619020773159386281012365018045354551028704883633359320705517054763419666662443152838047906152600309117307432009357861537170688941298124356010254104065772868265937633788898474904401231784416481982841882940506773074304497455892021642085056210981009247154810521260300095446793747181695760300982256274164136311382731315940222882863743877384080781194697902741381799097913629644744055907516557996702924957106120529539175995187581743904322598771142043268316487028552444929112335627649155774287321844133134514921790288574851317486712083971915048966903360176340703269999390725793564296201830947417239161059267688581530791198701018415904441397050664728500177717266691176866287899549126433718028621542116316364424403018352531887128148614258259704880815736145267822581026787904001803617885480757898769589254901759048800987777375179755320361792502873779654037861252633506650243890949718672336245398307542190504233463121500006504038716777761374092505652283068531749520238997044237552924411582224839289600784427159356361026979328715024094310534435779064795095524995592330725626769452396535274976552755230447014791541330956122679377907950101176084297093005887001468118525312065873358584400825815819592713768619092008452683076594588422617738083332152045656599813728371542855661726153254464465190312461733774920797550078323307527127414886508952066778811188110882708352762516900921424012205538488032912864199446857748100999557038597336736573825801751170822297868579648342083873007114027054380013453067345894080690778612904752292638608323149241517726644754398901726904551137972045516644802949530839007603207764109207538548544142864751479738713328932336131297691920502768298685774497466813190792250059683224548418643462853199874773811632658336730659461108493367800001583921083876026405569337090064349844147146503508419104388296668160751759115252029506394139253484802352341248646309239761544850772413582973224488307681425768649943560159178145882021749526296837602954930234297761407895044926655942407839596689452497992847028056727520268269554019755482966758532527739826411418594450761555091659803026396995653514642070994208356869170568907251259596115458647577407374892283036730059716725567353613061491538932721184929031397798364803387520078109420919374710383893894407293576843705306260079800910475117670023049154094800169604841620115812489822643885978608931046941049013167595595046877791695588772885166658732360649817016197838914498741415246444815811180383037307004271238133677541133552344504930914325415101598184790684778649284658446059552496879277286709780228944241363976007683145414420234039853611165458066695731360908062335743440587076354783979283201131008772840409770057815706533617754105014025417911668364043975470981205748665431755466218521931978018759215032818633433307618307913169026342403453679347721319797418065437322615441758637080722527878852636805221269626808382158735726447746982317757364094716845381292167172789032990760169904732561306052894218218887351116607911930988860439318616400301131921655512324438800735022040352658020607413674931320354885599856198877704374938236777405547052692251203281132757054412052766707402768758324225142395688032601371659606631813449010382200368036226973196142159974472787781701897501750194170682972547524596040657529929690469238548158530442544472651859751896164646657412129853171618182923146060713216121895182930218944499163620523691666296764607705015140003494899701052261591479904041022403529059411407006620018055392380301381822112741496503517169602156900448208608509341668717926081564538602832570222802919819652274158650559959246508333601174393481203493683818439696330868387345335478888829848506527754870126656779489297696506083125596416681627680166077871209903203446891616378112565597800481842548082249850162657483303202206280324746038676928557501611616452901801871765983616206680379369398002755213660308500139361705039517045935984364249144416958608145451351415435713312125641942027740637773844117396795099584931454393135284746147201779037877070673128930954956868056440068607641399071242583149582914991258039824303589174171703356928619614053087770430660121241054571197725772903415585040548542897910348340157094033686794975053272265554635467367698994757566172552428479841810647834799856126472083941615157196321827057178085860532115674074520114419486207480500957670873863340478220146568594091597009780093134291023764771012662696151158270335671651723232242449474718974712913993172125843662300248984590075241480492472994038762060274083430066307062994169536350429814227465140901727834794782708585228322730086869296696842564996446856932249430816206270836519134745789364992515044015362736282404200889689291020031713052571720670387669739806514951487131852569340615529863061028276041643691069926563307196507475460306845043544642474286603387403395999928738450035673021155422078214837695365592003087576339334613852521483505565419478785113761637141107891786077026351796753869157969679828276104364519135330242469050160657503284797843561170302233882391459674920199311119612504990666313803710241545835403037231494261841916755035809411143069967425051279444429905748349008195412611934942050625784545626415238395089406893167399398001578350989439571344613741039647863141132411035805318510751595470400854329493117096777059259540776053000619741068766143235722026290269790853998864079647787301279085391031082205842720412007150753288879119438873268028099580090694246667281337156717688337441880038265000965093116582541164191943977991678050281117521434571639354556966069768761529727882170703028847113975264885632347389171647599686018574179594313927647690500992711892351322216430614475014016415143861143843388341591454052610676536337056617294442761098469841342696689717452588730219379471820243847617262797871443700297967202140462269137436336124746668059691102563271611619626534457273160014418636095187092621899135122477147326880252481769727926801297272672337226301688334142544372246080890728481071576382798440062774176565400105391472146208485392312170916368478743157310534765402040086999368618047517991441465852621885839381339019182794394743354523293129175833322106368018397853119584246217500137259151973208755261629481297955227915838403805205782507679681028398158492324831603502984728978865924167760572765139268053515445719809642913593523533170369939074479354878829145977890954589488032208806802718622273661895862353572266464797885028508160696957517289385604862672906280597551770893232350447133208334612192885666185420638690211704181394964042310099902739188710748428096916911198600113241889165194430987644468417216109435699148031345522899391050602431207625073749037206235779369319781722404995774801954396910528623238447460839918479136182769969753517554858393472866056474597322375018345900493578086632694054724747545072606150854648447003362327370768361148510497513651507449375121697478771249892321326274169659783618149837764966605303792266507217390156962686410719335004554108748275562762742463511393802950925328835209541231223927619353401201208447800023277549631751696773704053711364410363768180893496533666959027089676529580836747914979792480501338878846269478497730291554497510978584480976742650704337676626801352689506989141108329132379646366104609449612081195144704901871928108326260142735162487641145741374302811474468041596105236009430956645493191288360723236577016890916198242195068890557972866482647871149645010955505884099196101678707842898725865420214847561043333789924298075065020367000697918194234176525895482892376868622696707424065471159116764814741132799653631532645381327016598667446767869079188227055641827516651952131290437140958344006058834285217101015204145984189529184611097408044439679502891129158417369844050662876197460804687150616631142627886814279306845210842513898241875423075563231114458479437840892698434861281176984251010581079976146628633333009890297937356190944896807188284262729859927004189741849666463350021097602688531126955086662561039039095476630838202312191206064893716406503652804522796845033323697833736061913720584803080450925514333403471371311581547046201537684966208529204473305712122757382879682734851184669030927154936659961052575280288229135103073808611997820730265971350619440210529496230732963556536574939220087176749283979737063833141816363698888558985093434419138860551900043289559544701294826378508242230126967953231869524166119730002620471261328026671089161298047554651168865314025698744828786001860931016065632676304116365127824017425555333581070920147217731991661204228789282790998519083248250506712601509144104373728907316827628015734992837139769859753551995204346748658425137630390794174920088823394131659392434817503672434244689075922002302171207954547617222051259594302387844732608400913398812805099223444304551004081258184100335036767894400332504686183166211141370805896643533337260534902247006235475701024256938336540055520425909702248642823765341710794325505157027175236100233140706024144160783831573414300485651060503564277396821981476209572756774912813031374628087698547015312558556194126710683217606086256110651072588740465577867825460581147719480565943739248740456242738225397251492248804697887063783550443994956584056929513056788790069569053326111997503801078244061670684171587364503502099201511183940702388019501763209701009906697191884661827237019139320750581756433403080663301660342147252723861083575703145893775187271714680493637839187513981419918714035048896533101803767803248364621282426083770182642770594801977871565181192053134363711307547814026179233299278769045135750518517710315839283609421986779464533522844721706368963413701335202355434879577366172916586363222045064566222722387413193397066887570163538719378868243606749746951315354656550153139270540873232162379336510644392576552290412664020096095253749425663036002357792454525851498132469965738845436857722013838819024074462011098828838745151705024258673683768728163339517929246360472783111737098692040148344342014833565757379864775947347874377386031538330330197219451600641398500993751949207893807247154738199724407338787476506633571291726970561544006669062066719376429532136129708116197639852294665636109610878770679564498098646375632556904434174599184137856803490881096110097773252665924989724862283825723792922150878041994597112919174695197768383794971327865911252681797179785755472118619982433019418551720471873539082677213947943512258347074554558939380732424289597647033922490467971771886287289424731235609398287510846404655615329876891994492261033151175588396790036427964576848392140626415561058040238845149150037661044240266526690273183132917012492448352892259089041463722881315839798578218489687652226623800604862751768423670541023753714690322650533903845857885288003173673567068049068282817719950079099250716743137073743190340602760492400407342087012809768184209165715324275172542966245699273905229662335446302973293129658346596019850014635220039209637021441589456274694889914503561380382953918163653632800772910826913742163689833411178983017607247677108106124008362083658399756552213547339522839698204031776364739509063169323344578051635859323844947879198345544485926072266069575074186580449649298784753978142808405284548520621553808300776453307373491993715179802763871118339478479214422038048382994759556071109216173481484090955195983961970578132059988560584552028703546433088752284996335017923050932138348346919654714287400240958597902842729016819859230965964996115457770217651224732967202150235134284696407975167450967036226010416572073922738571478213759172311963999664633244414566561438165866182585174475318491068468250550491001702283142018314151344732778118717831537076362486557850308748832902358880877259290781487834161453102107952349574776515001708723957008257345915690287439904858930921772785764138990637639852862819732221870671653837720729628305539909193553364367197355292451828532718413321333969337916911070676554049560427207283231109302892129039574142607458752442886088959185480873937389444224925363862596163787630660687675132519668229726095712050557369114346526986848854413085696554270161643597079985913568632715131283207811348523869528562215875580238212384149085586298285611913956770242666137694362396046543858204076456003507800925622377234936881480339404158606900964939549104037183897158667434902735419794329105832355237124441875946657140021152938608932146819077298899091040555664111459021773472008812372186384636726351907305063967035492043276795617684711293035854316200041843079238783115256065544344284899866723698278208168049518208442791525833939540820193651455849769452768878008475904313719726857440128049517142924388641491168991842998791942065310047254859956598175671498348283173257807495651412883503062021894957605463113799715803511621796280334097432644242689288882167527406727407496238646844185708067690599909742039386840667362419741497282660999199405863210332216047652057229452425685290819201013795338865300900522747000551902913556945058253288753809019502124934825837280204376035618863164998724036109466481775425592948080888796457921140311521155692698311091392333476894686675999200200121570546317370865852064473101128061625530080506566025484693626721662839166329766243538755964118785521312810989911737008727385125030033725320202274691942905506423032095065293535997962364775112837916264825442322680349680308927686628943644044541582374955722013188727362509280830498218642048073454513216177436178780380068150250872145176472209399536329884100248427744108080393619179998796264741601174407662407521156509207216130596534287364154663937966698564212912149903673270134429925277227616096679642725986930115550713908110065127985026841898608689332047984646517380832976889187451018649262195510086411104453059585537251563568598135607332195589912547983090120896175972562539855090282483489394474540284541601467916837869087910259713989975017614874256138646112447894461236700722959137317981401043153965196291287491829370328717041824852611895035852441882788345082893480986575687276244083593541761585022033058475029750981930705551552239783487072928129684991753317453607628487364851680692310964344035820815264266339841456563382447719957832246199080997948919530467501924355686213973649161359994389098160958848376685063159148651084865931288973955844792679752926876607348286666890435740135490143042125302644482794803101046939502559294906313436981467528365309573988598283202753115770122608539201507939107497649433292411021296838614794435429348057430217295970185577472505568727209363169692538449449366081480105779394629056324695079303911473216393397657690914120136812501995867909251282483885765966754561406284683633295037978806546200066706413602619214923323531138986767239374683519969131789884082999908883201585189492031728048675931105084237812186171364001953817042502522757051319898678256740770318114073049306318054783431782523892461332454112071680529213928666946564362024522310998476195286672221775986309599758715192210672377989199021477456560857480691132493648159657895128597132189141761500310912867347384794447960826653073838077996462656308486967347158116639297488540228856982133787498655375043992490664120896425249825674583678411976347861491279155396344667048416021914033401897707010318723854640609689709900525370811757439508777261651358333912571995913432680305168194341344540632838020061465332482973827008419029447714068738636454667337946327574013898636460267448048720297780768161751364709353665037933797401587881292592448621600714460276313693227989442641971460616948401287740169560072494278974130504439759343433155196558124494080778554116671074047589352798561983307063956144788707654581471957113283371349598507744106789457564745905281627197761969910963691640025025783977268062411678547619627893691073954464146480275349824373436723751130452647255845571367864738118450534885113599696758285383610368130723752759623480625140103800715050853790081231055794952967416331070231476280252408641872351018841458019599809960048429599428497390440197255279770792199524054637713176647487280642928290066321334977431853162665286063377307980900009079146206627929019701706488911991372781573038164330302703136770800262200206063817470082619601439183529845276201270962570030418780852529155644843769209226212781865533140065939186202396454115102647511514064826951174248394147934587517969312612074581526466444425803565738587223168339263711851772445941203882283883668596008192521318174901922571578004211718042166879651492398059792459193187639587212759524508936936415485617962435159535447481720343598025280669786034742979462622116580627420544734584686851208095053666610200827503215909767285777298457075386908675873988067352993282366948409923514464424468317823223334467374907942557018189839878790458679529370270871642543478723209887574500279354185680451533034397042629108239566574437656641231331691602188129180092305355130914757447847886201366897607207661707654558665119616128322038190046605289160604628586079817107389716698410348085479155554669196667214157663305517208586663528326147313835155687452623553021453595530737765381726769147741561153975245926704881948786681610308215350061042494075721844295619999112408827165773174361297199942288966138491915762466477901045841955188775433098346900750698853047279313215117806181617554786179275675117021458912390291308338326597654559479828962254109078638720478350837420618107881783645471878035468484160680189496474916444807235550611086601020538471204974752661029399246134058808641856087653340727457585488293835300425711312968755394032153247071069972002314145687502265853086462031086323316798355981096099230058633494193094262744880874339419866994828174391736081908274904893702972122109831991046987966497294607144669021282773819708684903958155667695184204631316993040906468458170499994130818570307385589195021466498161062489374451958902609552238109182174326095528721647850363549105291546839012189018908839983141800413762648264588161685509368219778521056420932489776416283527430968797498208470547304717453514565540824500058737458270675318123566266580091764033505469527874756371646854621562664209194151739165387578859282417257739766836323505132428787855357520340806171213071735698634030113300953358152649475981058484394731523831800271013349840390407737185108372940537979743322415818675732677510220075053509791326097524743499615242161777057352051626332368855672987231655754842096358758338536598892132636560362936269040570852404766055973455616298706609567507250044284909007085015554329471780740272135794177609877609514671432420809917963535169198810578035950802200264696393593849515105191700333549059791900559868728630617145409883076403281818825469501296635919627456243421890582269142421232338230792775157972689164552954849459118362123232008726703020089111414178456031200997223548924606554507684388281486477808723815316459130991973974258885775888670876471069233159137593917985709275513563805154160808874878003988366997948233786818618207294621842856027172992206491893503896785462431871828349906172333914981949500069793527716368040883453718386099451372180642200158381209587451096916857958357807050058578157154037434478944561487110306568132768076314190355158136890634923157815057253705259162937513307490193372303450449932051306588995346692934547205629041777202182649231491809914029795284028661233215319543419360401042438422066582324147695642926245074400716443438648974209936890594947523168810969634439775746106128576187353456368179497258964532903037091015511665041208679334112164582235789234034406786506809329808993752636731487422857908731831063399552331896401991544249461542144498477438301896389061897967724063050896486065259567907103943895631803811352944041720621840253789207463665377924344383288122769900312635910578135430022740050307915514807877904137090173610942384461656965842667149872386374781426378156165231736880458085343951990047127784081637431191796501801718468012211623170412926993932154604958271563282867775167058198555413154292289825187405972495509664813004896428762009484318706783502480625000317490929975531409114694855849704711513738017957570776009184296440335185430325985981198880058309222070283586020570097363659397485346067145023024352856520780973071780921597954329644011365376494670934132872539067997119094987876221248784560684374292680819027065230254663198557017336453083997332096605893363625910721074949767815663099097956750649612615202503655915238910109800984542926266343135925605577191104567584794081643319971488286640601131429951836907837992176616243157302889855017971237088065080798269322437645757374502129347999977343779622415521436974568527218035737160415660768721737564976979286861339917483894653696104651638587827471381476700640924816751950252410249241720090842892217706032346355571354354250062597118733972146362814861054109225405066094333616025797365486249439482132670833124410105625464367751951472202328687160541051398115912149427734566502995466381537908026518733859578470777390221784656069775204160960431646220560025006418067478808965852206679453357749378646082583327498381104547257330223965289271834825583631452989730318661271123062041118913410998186465511491162281834284024738885779745250852280828516861035181143726338823925822821387319363953380126405639581386674604526515056829308138358103853838989911654708578839738012849306497069078096565983391944213963127631533860708037041099321002543676431540708103171175124434174239302082437084143473813989095522605233438460501567918344325029464867461157778213229363037923562433842779869654273507549683598806374978359251635054716859166215929717344068955501910302843845848505189641062708771587848859374774463969752028695993478083998008431030693226977228421469857295062422353838148755266549409018786145910173505808208490510892294801866879102574447854906405496355623310105642428804550969690585667789142689165212204492784993212343051343386291614008081252118980229930787272125826465965826763127406987812395830311554183797850257129864879873189987127934828102327650137464898257813036204232010802482788336256160871563355602753362938199977343634966051773250491095290811971392567650897709183381385168671763907021319691071991235007743031459587846977863632084869859200786644647496901733232841226540717832973708917143193506823081923380456750696519639068482073468015022453259518731835023541237133542885835993522947624070638805167206886390489640227350687988271172330143815272716435484833840139891505353520076913315097784282950461209488982921498313349551816188794170995297489325726544300302507335758850274371110227985289367631205126515805930175772181117625486619822370222368511551260991429237915019288515130180373925719456851309714547316809447532392048481942045923078646051074752758286599879054385825932631400375044195164918604394421598216304649078946598401399578544325793593836701571985374394968597729266401966130323130382942921480336583801766270114740034699784631582974844042127343171415661943075371780025279251698529494576484249372022479497685727550694172411878185239430938736457989596151452183615452003617501359888218071966869123970749733678822739427270209615789781772298958041560136226926862950066057014977082275454821080807141817883776936782379789995134115250700347514465398556071136374089546284174397974512797137371538302548486397402270942460540510479105692819282426338096965577042350019013331030877697084572239984451960090124498059419011909827354619887217529101378461082031197348023555791765668433645934901402985532254265681690456107891677460544343194022980240010351562788147109450963529181935350135169186529948876271614046382481785739829375337353488809181873261609284625523045976992182912013040121139993440359386443975032296327652098242981554677109817448668380088519449307812192684075392962961009391245140942034195120897739074144484370576289360125610110380348281771255414492893554757110196610169929799008194275481291102496665142085987841851564217456543423745062065609145936923575251782060223383315023674575413351066862296166543110114250572091072608731932517584905388305420618237113226736498265445262913917413420389064636190485762335365071924000084743258666826240696223783636436731577078699848988114997707228543753453504501563076758767723270060015885472570877969573186784981420540891133430259944880490561688449189941431542644988396664965925830669631463401896340771934815321490413275579266142202302660911864161228281420074597384208310707497442469760519302004145819826437655801658703792847928556547373342233868821702171389999218466032279494689786571222209171551514557297657105589349905158646577903904597163659884160135203102895759345059852667970260575374721114787116523526052392787726382857138190303692702958514181518879305933415960449097893167165492474631342301887291472880298096430511073301892171117820526933246853988159783156546957996767560679816331692938034261382837290644093202335897084691837679433756719795447516624312474990111109569671878191347278650717368730645619125391143766354051741849790206802914856012240135841528331870457623184577267201686797274915475335980712086185861561841457564581266708039373493811986050255800534504515872826258315473772745609040824884033599485927682152565123795457058208681898126538438889542740541339683432190517543119216916363533928240917768300460757826897545635774969677633684391044279619383200572692612629857033418882134054692019919765458513522514204377391056529415088205963123091894059836957090199423915687918038618534469388214495425336652596933597181260623310635976781252178841198475771787410744896687246769664979563279866956399311805965171371317928055746981748477074044816031430018518509689208796403074916370981503799151583643322773482724646394746719780475817800512443436104359085355419255015242054197246425791306863620504474826267694948865573779312042229636444503349508228931519866208494558063698139639987992038782399743353493469772216364994582045512655581819599542343649492113485895506545620281411591942255575453357078539181251162334963009290356174152131112089423073442322945347221551544674275782008760182383859237059048883788332444422347484244400876388558302854836504706734342237397992088729897461758920942269017091947994086944577004553679157478456694693167199856850399053435563692624146897250891072933473619647866679319304775404638403362536407733945393282310936953566717824242160441830170475571769777557370808084511431134552846226577725764121301074083983021281223672579571213304934906325559796314268722478730994951075423761767544619999601570203842623289940552361283271738889944388693010987217559498075048934670871277258632297628207123249244263212744262868896038979117314352001554916733859450053076883551653343006438489777807564731041497756636567221362397523330009915926095917901870549384877116061737640119388888869277591343702068965938075059910416402164678599987950103500602907333219346062520670960282949365832602166775241707816009058004448360203936269180434733454743026401871975761367332170369603411276592161046224886242006615403304092034739710994110683375642802944322385429322821309058849519780157604994848226571626091217988068709964198369911823903987392283524911824996131107690622003428558461485811818212981513515618035630344047587827165127946326062507321015749921045527943376217297114771068102548904459780125307088975793393157207636144563114669246903891198115774836203153349902160480241396666479314366937907148925964278498718559225909486994987218215427466171218277549460282812059168710282931908263139628500604106866534698270703841170825074950469727817794189909354844488770856937595089977372117808897542088321976714666440696279632284246149456285516583743298052131196574128292571553259318775914281785358270721186865607083541107650348348574705645279305292003244314779240764861902030796239462184360153931728663185605509837216184575925717523513540804186418014093989786101084229135298718410792023434612012433113302293154846024851411765658117160407050965211289036774434296186658878632824142523156781235156000595098283700353469249527036404246679727673145124788415602960334268654951866164567734023944956667900644825825910595503870055227242213263583512003979637588557069680963916995929416840568492720265127682341745898568628522795671991266269126044174949719705734273740444431972828969032694506140050457777595932216925057437793452120315469121082352053353645174896550085453540629706818816312133603311305874712989068585879703578959908953045633217756767558245559526046019126591051972341991655181968287043319749059662701306560603533894894529917556335951163411754644920659450417502736766701836272898728046309541082134281641523493187777154550849555273239734026464600803621931383839204740467670893186186609805884820625904614437240290387377587901168481152248183003410086145880498432941713845905223862989663810303030661452797364566766432873870771078181630761272703482176466556918679331902443773851318755193963089667923639685040105196855780503853085332455044578127027613869191681413764339597994091671714808059199441079589386931772135321060033934239800598281870217753428789139199880411781279652001991621872316975912532942574470910757137747379872347579602365759186097630047386949650461366427462654031466369963914195848568714380122862427398293362465189460222902594440328554727753912828502187443700869418723656478534467939287120224185750401311508710446057824656951483625723909229815054856667751023159305388559847404531350854283454500782063538345346559884762909331625575083923850080685210868598213098123579726621109714095535662616506617430335555317834205082491667343896449789013036637217142865755489813621289647499857576496221461397063652017740384668572132573332104946997582783008368472765736346138459790732833795898517697149861282302924874461023980139376467302237770749771086309888892172047704428557665451348542713989798789541373391001882921250321770675316103099570451735566701638438085493564147133844306657002253567765072093276831232956499953643267332716031345706935875572528653199468275914866873026471499176689299626742026577154561675685631753541793767733440987107257532264537366023674758764440029087371492700074629343721590186427221730547758450870480277031368765927662566243823804116946121184812618580380031380836484530038123094332042367725335272066578284692753569675546806276039835461095083421728883369747316637487256676598944716574833611313663246880201874079964236837500029901704583102092215347331801849208735169666197400152956285517644866506804047002620359350282187533704107679186935222274364397602522133456608480576853036043439174854242414481357873510118264610714803934693159191408693683379187315000939645011430121685957478945650161883633598826463584240859714719157608003295128247419152289361265767214504153793424105651210523412230798056603202727127696086000822559271113495271764682084626683984447824983757871078810918904510112066828801923930988970257685901548356198486186834643776697897282482734872430937953466264323894517183065877381375959677942700446172590844398611407199181773785862678006996410050908575741623862120081938992433962494173807497776699041374415231323912446070652356423468312660844074746523452874053406021790178579276266751579884527783392498002251118967265978657619179431928860763665917745445987735317611021318000323573082337065592077674104929680231998187810964744521597453922330021401646288245351339283614542413523961333378641634953170427541966160001342130278662948021130046546131412931473840655545022539943330950933275583277048736678767858895981556949470731493473685951990154764065394274161501828564783041973214534699611002464133517374723463188789287759972876868083619531748613808016759814154169736429157378511635913611214768853903355416209970384299591252106010274566745185711021459813665767823311261485772060122566244227546157328591839106192008358121719472912399547241838622229395912887626146848321687382493136010728717296671332838976587779852449404640545377370064831064287135489060322489643969094768660771187228871912256436266372595662400311594845085055262605810667314734809611125303183101073598425708622629406732233754447703133478062125202362131508137296705821541574007950378670242833915327899587522462641031321425135712740708830149541459497998992399233818558508740671044317488911170509791380754709396657860985238204796210726495835679081720240387546831081267943607460179121273230808408026671567376851578519287765070877473692635920594516467558355821107397864734425917836879316630114624949329099066355826894382551164560323298037463925879131514502576707621446858284495459821267527462430921201025754108325558004716280498201904196310818592068322289400819879936493526546004045569963150459525976473832898012662371177142241515459138910307358512819375224896893100158804810550669843757547461509929863673180984474958917605389570397119697552988500902237994426028191803237344730249666790143304677548637351904347329198645879903506547390612105472548774302130832885487333214363901869615210459983334554407217074862937181883315801624410812115967723288807387296789605499134117397419454393086495884972788458030373712252467792903762941460148748890652025881480891002305198641501837733991322164202324739800569810741314009209653621514977670381020045302484337972267230363989138838771789139670196656063314861151603409240368496857874273967211642763102484165786299489123647258321209626148891195521888842720251941104954990605668940682325029072607426644491215059914657244790770873441429824217207124428876063045698604288077977500297194292759403987795661471688567225165461017201370822807667991825098152330351611461632848608012770612157610766091879868683879252099810563395855100392274065205858311186333213424444823837195844882354591603644897737767155151967647418088512520911665313685018151976595928198717269338013984008431933547422863185025233691260607595188867894147376265100756097990405158968147146432436824309694396827678170853181095978531598976656536382039623753392924721994991262777226305300133817251728988518262322528939518876714558682822531271257405156929175657372735887312149361995147664981842105147113393042935253627202863345016512812976519139248174990371713173014368945630409161478340652053141042775575304183892886144094124099257527381212373143929629345616851628878691642003829798625268409777886526924075181657806923860033560834786507928171343995623823527769227723530752072197429446522889744631861122740583626709291825988240593155930724834580706667565247832795986762496485683752533153773647804260852551546889842158166749399278429938000431867317779844401813931782161783490227129542161998962597552472128652939452253377552562739372210559231770981249008857980981401788160524699022510026501435697405394218031141986388037043236466756585417426827914056690490895398758440827930077670884557424122942221838987829855097686291510607291904928250288240201420205540926466239366523334318083989846443246568412755886551747023743449660643483303312351238187872221363606188979810378904025696350846151392627877349380994087260459387930937790712982620870326364977967656193668525326795981570292921737103920350619975037137210724930194694936244868556632458432373542660549587932154231190366347463667211586208364338479578877713125807781825389120964908539490039726339102390100554183142934806517332455670304707591510969110598725937274541610552814116855117547750237551220600751532519175031624467764775780050776305915700069960668107079725043833726833186091747390665802328176516640746512490893988048400939489123630223638424677680651461818531428941443440815479982302123317458282584424478632615389364840485126137840910607407708281023445578954152031701377400716181340453880234165326601135633317242917783430510141432654502848123229079525527521778554035657590727101708060031482304934191779911150629749482544237155035529754645061615611411866360954366691889748098185548151117094233885134251914859099436164648511874010399512049201355787824090757776078232289385692398915372092863080352125659805489353488436766399472844492011670731459212699804641121756751095366960953020945474896673772405953389910162486726617091692642264141693698017560017736958991655279878158019228585372757813112315385196272460998721723739333537586665807818293303150736248892839532395321397741415861174224174924388983332122989383258309522508702122458933661304384170029209721238599383031683615464763191335193109821982922068943002730687600048104075690610357705833564304088771009747460260135434915216235942847157300961728567517198301485229079597183805486618688669924169716911276461207883707548010442477706625815565551768020454564147639312171050003627547252184251118954014526719779864559879852606424740966102768976310168931164088686645773361841171178554789850015890842531042843265565700287771121520034806320211242172877590734264509750296702216312844021405072865984522702227940535190561101788314347259083361562956873046690702193322054931625563589895204734176319843036774177778271973041655150127844188561433037089964207376110191405177679559832001420306535410988461391921729149974503948527370300411516163315014899969113536408530744787261615115034371068262822779002557357292690918526415597358085187916517243730062072859642886884828779639939438855881328306592013818144987026747299816969755560382973641650287115095610128674561996330743020927201642749481309805588906431793353618673178289775248426578921593436739115554461763448765109152515674164556308599583885406822373555516252113745094453989091438865081322728609633577664706885071468186400024808425555874337488133042672730952574946452552366578875280586186873707932360056623565184461174348400385337102493518474715295349216567917200333936994924730591117553963870779676799460669525073820263990806733976316877081294008841447396307443501744304443465078069478870008355395677265808909041720445668678867508084230573746771022210367569777664887619406529640586634299599593663392943363733943669425400118047627715480512018289312891340117073893628814666209533016141894680570215181650922654789802570810573867934274281390821345552721267721854334948181834749358264007973595811720369943190006111828200259919507206973596941729332196179560391935788607183815844910215221193246413111848226117200555446969073228785191935672322236459821036449765698576412176329695549125055095136049897059300991883922081082748473055023790384039390972578794210461943427823514774928911878200026091635691373319934595530790532194705195160033418709950060961361395562541864259703363088482483164293348763453060331293878340585174777968594942303165969017676451657203437431995337361651698296739295489717893588372559318509116196283824573899330509346115255793154267268476501674380563899676941868806729160747162251525833137197037252052800366901353996353270458903842577910937272786182274896777314534568324648227338323711685740694085365555754797665391627536450157935064277497782809012308223363968729074170372191235794665738236751882784613018772764883549997297330842222497668719083126776459048662380557712531335940478118251933407430997013993104035769656112317075168295438567025592662002752537345344172931245753807926342636824416597667686922005839894354209682839005234531753677453465594541759386435806272240401874237701568726574623266973893940012052985517170823177560476776868424274948639167398338081958695103105638119957603861736046736404348751426252018389025847627340093915451717547719333832409389165923137095180527093076524035147915067685717785223222669793732317787402062221833103579347552138723782334246406056721348691503995479561963274583280302537652778756418740827797862453080654639459898194501605225307031383797597952910204509950397598116949848053704899239356327710320696792721366912238029059999908464727432806724084317816965600373606119879412732141232262232323852077754623471181622795173968991245443559451609092324530715966719375557257481029384391863546833999126830866903671576758261241758889110292679216506629748167950110030430922257325443178243888587433418463887560397074822133383296925339984408754711107723781899405755987241034038396095480301070250668409493554044402510543108300886833692600081598155762430247085016097274212295673387936553723445544260526085062771631181708856133649425181656804724033516559157373361445139941781814958951577089076535899412373608169670041283328400092571443109117867215439952194064125267789182451375218729904700773873133543242607875331607478791666563362078256775557798545996627790770637368278996641282108066520004868801287404778041618131285325545688050727463564165245527966402118230994775750124933142121188532771175190858373249597583401352887505479822161454727725627400947240583848008774060108307384855546315436212638173443156549330391009958155829256264731682173944898990019316053845593660891408265804737685900659450894157497450852807315873185415647346097729745624375121462030864751800145887906600769478190303250028852259587971563300641936902558978380930003927625680990985361358889844144524394447087588407746800311805380202662850081017563232766798654996720852986966437758424402764783605897894256594416396607416116570160916544756602156425760180238749753307686617895147102349199756003668753901718709702230011465526722258561437484568983352360306859979572140499448202745943111244275150288909460797951826902602436241825344444877708179314471143110770661666623448141260719703268681897874530137487017981021197507750856245952328860697462640507312956514715820042859511635124291302946005997120237828886861790433863604936053148616861996411604590202337122359438822879742139142126451539103111227349757641538151589624267556436532345276665759256649827514666285278753017038335903534177041381159996412057411245915928614624690917109026495005019070027587146508178762057498577690866827253564386796277090910662827294572259613545786489202731741908675591001501323907203041720120237365575659886821774608084153192717238109133323128703996211061276247415241877249375782562668177363887054948202864405324839300642487753041457974410076802545734007134853562210724285455529376172449838505780144547833779875439927412474967846744411498478892232378106611795966626219497164537595822885951186817284251195541177792703283042110142851391062193430074602981434247873695974114598428962889960043250926405721745321852390514995724215730476053292031092044086315721489202661488662934640334145682517869400962783723349752241805683460414519881233337724206134252806115178710294708130525915877484355739150822441699915583147552399851912663818274852751468118698822623494847174591280500281953284961875203225101554541545370024786713506368401745453815922496081801016594999516255036903780573361698857157637851135239250355719513517445055034156979890646537881762998185771323619153980430632161123434276380687753195208217260505614047791812890948115692306451863950328753374737180427862405955040816839274024688523337457097777659498834346093957436084618564944420854286866405260620809101689796759798318909556307585255401727896243123357365491914039361908470554723821855534150107580119170239938024672883692073530882671299395388588785467844982811505098145957227157028655490590196664006683992247565526812128564848490972488765216473466899367527452148048401002974676939064099414208932069038437710759727277205212750561488375001218448560812303941646342717599176630917874899290542918679971083729935057461313745466907552973624651454684183026320199405684025897923553778148886019678278482067001024925137214884546174936978759481144023382725541105198589290127911141414987741408375951756812792914853212668476420085903565977801586559228728234743105552748278734807021516238523708725474159233812935414912883570813054774281754918795288978098522506652985183432966831634366072930583030847222116981445263248854226368109553787636389268389329910161330634592018427889283863813114544137509535516646687247639561166677659745983821645444364553683248511662343413501313088848498212340016805132661359202669352458792611252951912365289213086764118788844384645944237030266184514819306238379371178399877774146800128546754609321265299194543644970584199357193250614694943101250752619921165074768793590998588243032417758087861246366766929985958032469370510238275486472401245425964219202518076910892540890543502378550729621653547365069714096743876838237528164824313563984959294076740428420579852301611626731646496548358719967023427152606645824838445810048915427117308729864214494768785853226314859344854673808827564413911291740857388528805846970008299609643241078700308462324063242699640654486267132090788120736885500307719465610325105018922418070845692065948397737458662460833985967311060967108185965714981201580937701593182517731004349117477134165216771092101417771796151059873452243816946619549393446121162006710437819231355187509985075505566431158705144732394774283557923280203516751576759010420910740729320902982015616343470398216750862074174822292035543556852474263282973215225281969811350170443575652876830646539954885151555469205164272404645320538240411023955694563606667338967967884796642224253658464251602362020611446110083589950191750073996309165421172529304383883806003838755457907675262507013641851251145370105073269238694183160635646835322197208332792267387690429748545166413523467422948076776257997270982585927951636585451570907580922623056208294530626361547534159779930370723425889989064938051814072948490488559113005684917442329421515089250754701411360504683189907904762427162986576794857700106143820928537201746209117847378006536235474424801491143697753375577067660059743083006668444648153093303199388603723085280268638497451900880853776659692393408296029709358156891836669497644597540640930091554789554004503734951740489489113146579094647781380212280283420927793194143965539607926090225397259759012018285492697541782919154293077020108180986933121640596446754531347335923481519816340301095753014495473838906246099034593597911876794706035816896880967382467284863746361877632148977867595463582935315463051029504551566986663674852877452139499686126304243865017704886742189378929268745614187298835866926483236805596567461723471022941200668723981315546103942497958738838559855431475956002792964576892292626173706280378445422432512155780836972983128177006992659092589167710968830324734398288515939926317343050667273991393648558835938047674840481390441376643623808571093234865780355182048651277409693631528391824259478397006375148809909586092482087886132669515029639968419462318845153615352839153112402904077253700470034788483842826555858514611864372870134662620504481243544145915539719576489297192156036917625038229610624125701591240587471056066660638081806012193279135812557057017729630883305137127528275420683294517645999757599288205571431019107932313292791607991770675156484892246346820283033076364417182073781448896961318442102603408967313473443173781338448542188954052465366141609395391864831917082906342613765361756359211919591039039545152411232540046990671897602148114971926124420481921482857998123767650647345062772701308464553246178412762075304187351530952574769692592354449818883089956362287810121476371795624026364725527830353304008542708559479323854429751821492103692893752619369768091787989917893499583738806143824429794758970441686677907693545161519814087872046524185792178411518465973691292826164112247980882945946220460247997872060891225068826154964077524665013294522876195798077336569642587615288923750003625536218661022226478663464133620870864046909467842012504841123530354260982164637540584269053495730499876759248962074686736873906116416020344253800857660315159065419010806899537186979968360594961990242066115135074679061429783011830492469372846781581582563245379371171801724794232145420174154198352144132447757158861251513281890579289466119200545922496929927098521853654210959338915826177968881331709990113845345496671235927822694870510950162167982806070984434744949371183087809726846425048367113802002589438352223022652114314275465557950800326457690258970480408173335073017005810165839370080354995142139792057457105981790846687186405298426766546440912466158291952760651785510054826119893025570958152080268290904219393825840150205092503598513901490896377930252769284908221275353474667494040298322224814015226386614203406704084317806580870449941244837429567197034127263393741696596410634017288365159111845063402438137030453951512556279207729327932746737674388248097389267136587110567512241779267396337187833491166415232815201290548843960740002530129047191996698448802596804140771193004083591380022160369068071667736769718825046202987045045171821651102372661204942175766724199447506525033857543981462592923062044985385430415679584015851942710844949590816990240147582743349908720999697471934918666069195596322606878925457464967964973964419458421498149375005010742569758171996638944635723957029424437525848654014811678055897674519448543455162770730334382925182336628893148967491768173956886876601777641308291121868859310446058450844871906988588903677576894216402141457860065659903388933464463816738206079867218416153660930024793678495253449970760127627240651804549450782200241255733020754735956827856155691802487894792164493718091925353052401320303533174394395444744085730995845117449427559474221398891627912191683896672629744574779705646750496146953723510294501201112712622403095177313624381935717108562452305484620020919367125849462708375559893371329106076129544614230160760721858384040313810575805763008453429738031331773819097993868334558664482264190541677686951711038629709981058110247181124731659929417518510718542640698327782843487953393410053178960637044517459456014702042087901146269804474266958663436143500214632481862834627555475575069877019906178183609153829076041076424930708415088345689090530571160445951921173893694668940270600491835944561513267365813422816133383612336901188190413521911287865276855770134539085121615965550776333838888055666198853662099250032689921044457797358596792214944422681346807968641137356892947528146595491568499014591594719498142140458226774724931407354869417147931611308242504500019391201308907689052807849625319064998941506749798046652867243880674324580616642292417503547400119704638580506121615273544118817773787471098046928896788614963662083072276365260960073999881901494134553227814456084902628660941801732763442498160108426796793778876353636665764766537498602656254909084151448932100621761699529875929731992380255837084223621451191567265013780900778395698459333957702697592116447328293699602955166424458281845092259368664462875727589255895817888431554758423722170145833064443881640835752248206312338890831689191297279868953342741457441890926540722926118794077116627601403601690095849241206337440070843400366342448439450097029268500516814639056870129546568797791428013494175548644209137079643620095795031219704847793243700222121006344022862356948602848300768821424389571732971602294821314550485811154090350065979488145286819983391771259506424101857903685425487321091350939529008613022904349984987276113913212829252947528313542599003550363840742860639093667362614352394669112546438318181837200381523260017861262007187144468817334305697731417746162288240494650496657242067451085979381356614318058794344182121320540570179626827189127178680018165601101173851288305853350121095217042957698088701173247213603371085129903088034570942155845683169672232526665790994003074004706175943674037608453141101161078765308588500186041351041638833253587839074203259846758153333158303562083952806890483822225859404349070554184418882468571323320030845175463387530011236709604770440551480171454049601786857284147956136037576590290271340712502446942762607338636348143105105807813159122895900336402354774420455236505006045456803839278876314299473655096927110578123156307555255314121378430865103607123341298002166440191148704630548828509196811430551204479467674183551795667511060566690534198387182392490884097516204627711021759888670540311459482544148832163061521380045533133225075546950593145329838207286529168758524065235357116138563660942806624943001217867553036023164956776729350424194506380897750425418825046973677476519313095023515164411172831416142743228970123885299862772742530773507523017578795704724334159406448044506564030967182588686326604601406067732480613963457012545249721387608489252225404476441948914019316080889177122176643157175417975063331665740548447619964784759088067979050872946171178534999916527220182295528139854866861717616215087504021824264298088399908403462039579409985455588106605192185654562393425806574738267214420097725359781738918798609528559781403722860013902950550375806112079696321422729513914890021657673168590076938484943274046683279042088062320193210167055025602547370888142614496783520627512697695962793424267396379399575331752990036077693227386290646239160675951424770240130078336904199841173721131043405277222814521239768684756088513986128374701281018057205586595646764399104659632188619620627710465099990670909681131691071606203684661164236880807762616768696926744685638535405930157326350087565570086994693266046654713097565785202129919530106421006237785965423727409174669995091724302859730696597492754723822641314557518648289372314799425616602113730013827171439497144392161817798853221900781686370242809328641218544965655529227255753551038416454866274765870775621557573457232622720430050645887647950493167491458128936655904936046220921169251829421253716820335575953248101484023086894101975389166319161875803952295032191254047411273761601012156027746291357934091713490612978211437460376080567366848760310297845916757004381693502851063355419841704820067365473347842167662200633758911870620430093982593288185998848998292924827562908840044774455700549462811946505101300814582825209100961487121249819983191244424421860001007824465283644686571117063852958031867802667612157220615414830391266239329492018817016809524727530969678327113799480891599170294368494663729796778807410004147784759989639750496099034487692504526919207572442048809553535800892204167820113897867047204115731020964962847777023515828551825477883508399767475031047835297840763812067042304084759800176039668652355480512951518078281222261133452479486868660540498856102846693692577023069927199488341011189599772823116122948990819557428834286484912449432676913974551948288870335959979446007991644158371406658922445831496953864233323327919680007972663183162211935658831303508807490915325150583245167579316890884040774906689641631202107750763706699089377169338764067283355763244420464824811349768986852795284664260188423785149292978510089471556517200106697901496318757390690071325963697173938605424241264845669006746803498085983173987801220966322783139849729031486795715792552162104056315386679132544642042401737160004282353639931148158879851679311335324253366652047676892575314156349998029746021196820762856634788335450196078609704611534133358073449298272472186881298772081821110770638885082171731861319824512822434591481215072506399444183123613799767358657832636306834877810635062506261434403164436282779629174944363179419590190563652881034307217332186604032824782167882162770232705352652949064740439150366042425889472614044193613845638835821936020590063819308708074001923295873590874020253034262473148342317735488690662673593545269926957843941243587688805119451484025224604995337787770540649224818393264498954536921770433301382254850943162045497767151759143801465606617211659366063397118078052920653336825969465473152473061836545432169195027231479059430308721713673739873710765946096319936988401764874083845182175520935115264188202276155441252418476183272401715871228598072621068406294540377826492016122895340687419260477783006230199657671662709944602898190229375998880241067266161563380365599239944845383844432377769996016674464447987137614087246432740992294666895707109166567345305675747128766816549312692287502965936817462648724950114849704162333658865028217005648635854967633672186452837899221852963625215060236988399443491706272277661808973764029840698834607241106721830075064241058360116827390666322366436756198244576772579419431836839543775422293927812201626208113354316192147923074017919939374320758488856135279223804599664497854359595019122905601895150443917022357588233065264500150188185410044835880006951232090639430452396760229698340117971664083922429140851307681402700290586257008873516153346934356884810066784834019027742474110620175534659389970981890849614696328878614496737258960074460292255565240267903161438503867928312911733685524220647199670919122581943954229692199136689528693733873653675382251721001582495734406593654723720763013219346409234411714727635064096370601079511338683402055688924853113931687992491803583045240703495846707904006079498237900468713609289184764993821983376434595414853535191963132376820898549593000176430622495028719386132325449377873403235450214979036340701442795065652702183876541894951023388183281608114852717569747367494859667981260192061621880481604741277895542822811458729989980362481955680109812594394550767173996550725134743002354572117187263807804276108107897968732128809529027087835644291648811826415893976808263009307639665376313826041560095510684550351958577626689235785668215494535028668947963214027593404946810744465222798699229010693880350316222506239114627603358135798549840264307791222337163797922152292408704477083678676043066331261917066983645143722180969267941330738362365736812553754724692937094737092599244247875226259455747151891304468039313782685972551764383053557223528562982332680444073022804240560104099875657965720205380566299143625539868562159029504878267830455330760270795338073513782554714731248757686956210089613045349910894461787143425847186717733193500245956822269923146984143793212263968974786125272672860025131380891341662696650960900556957223690957012987709191116986475920127074120009794950776060594665711475780521788758187470052752144667561451050334031135294659941142079124724827314336791917467333045799091635902980489871221276257177078256862618646381502742890205048761138821293727185684799416644326920151440757948805435891411599825298636540875134082679605774650116704960267173816252293984096557884323296735873804386236761216324808380156227404627264993911196416737384757253166654317920847514504191155829759875398665588632697447099012851125213714523613463589428326888062989186463654308137687681227730665408723967603995621686378876725002651457836939409410942828132610095792380498716272449034529610419429673106335419386135319853047378083622552890676774922757006961581348260963637551974120881374566217006640473780617951610823245560251296496683036005486819713488688025616372554646239622795677668575555096072455967219676871347265688636039402542241364848543538846374929067700515955308049744103936298544928164052729473179788286068008530943186852572307315773943610905324955109641942966085108674859528444532013418535718598218444726181737647196716836739125049743449020444957569630328447854515307121372837231596666313420880347402958943774184910225343202302098293355033941961122809167836238804482345556212704981401696714917983345789366731592221861213075055373235321670953344912797029016684406412677567927498482241318725025354248283934712175574645998183851969907171556151540126836147561494493223813703738862634920176207458084755245279422065496057980530333830186748163492650200673836756167474142265007999196488617538118641410666016854586763089865533701248636239035701623078727718278285073900713849541043244481344154527714968078350866037863535860250226405225413909250705574376403489745723677619632156554726804136083457983914315169947980617360051207432622497475314646320310633107789163911420645511148138618867977157261947240104427673882054175559651595636810430649010933209072576667916760700555758656904366569731609990299261014591507240764362766856390688151662041180080931850577059258384495844319158763866029658375531151669904747772229813547680461614136666745776276204313480228929266432195604102375573911880229055447591248829154943903485329024781338099158314905973243078989961045334493683083428415860091425270145913269929574220008891710800454705472405265316840936999164296564780728108009294833254746167166947492306059435272246292001491408468516406844678811131540846068673572271634327549201947979023729183403298579699868063525389894986869449167160444821439386853639507811227036034659808012152139721569440928551534171882299445275175751247919093079131484469064116565298510654323061749661300766089862163429954433252013753014979009978587737685497247947868499934486061683461019825251759214713092529785463222487730057665400659693020628224982013071633917463812610842286320564264183298298978894342507800866262914876054962383570323725310686762177575426594030964230265288019159191379782126747830308685724892882338932433175820864609520598979206521322335224367053181504107074350392447503152475332946894963442375075020937326841459834984816789167360465936566234073656353278982444909720585691407827743426630675517717900212545519299250067243665150703541528464496591481845838872420785159447666662775796485943920390840420357879590627748679285659499973430960655373529191074393342162836953841961747410458117822482109865221103260985818193979859854996486042611664005211260874330501949678482155241590579851914933181360409839290893090551425923024366698516733074875013665273091589963471818638080036675798548948698436381130246339504687457850419447686298476408991187210040066303618368261972065003488452759760267638789707254182896664572114859828016870239414980711163774540819029329795375714712065261831580905772298261606124096466161454285750666243917837280582978610451282926083981959758339955421735384181472732043082653453672317123744318101294329037091149350590406140584154980355448791720397997692613820787866307518456261260702023389650355317641720961201414004792325741213796576052257455184976846018396956316833997876099010627767911735612701706290129023127258221283681053757176678695430160863372235015313303131583642688757495729641356659615532741267104592893597016857531758859611627055167544080655035225690526765158368659675247016523744125337959235019725919073420833035577914475487234844138134197036672231273296855951869191311820255775354303500363972189367420401603964063266606307458199990503602204490125967629999034536161310494793153738248088522642870864667616115289607782399492863762792753849095671185509590792187475666865785606225937550797124769263927274343243832428440231154619485383804126401433308468330005157361574076890527459100135050838766500837005453438627496467862567590486923194235469999097611719522911423523434515913613878622300837545408024495362061726153391096597417257379962826614723059664292331636543054889020158572487886905570937730189910154033773692715919855193142952725098796276394949895535116139085102656788625172283911562042848876900999428413115441747758032571421525508300014004813704246302826115727914477893168431625325090766605447143800011498637812371032375880146640154744956383668367020036232853813308785797088112473661001625317815534539223690326019802662600200241945450319306865234856028977098497032496756895701401871760742513346539161583339883002023245375629484733376254594845153307994489965738481863164968039311497361195117844052985366847957807115875401044225890329800799015491762803677307060076656417020933923722126789394248323950051665038645840875339167544090464671692356004735618772243368462380057051860654902036496298179613839626833385540903000149668109336636129728040847512732794768092283924456472194042280015672444942195998102243689344356324390509473548719339762877173254009107737975496743357428316511459055316410359994117337322543146540005517635845534018968473153329726006016191177866715784936619620450938578503767354957127250530419410140693518126913077346223544804182373456126210584125435376515291131086971210324609169932832753063307276562059649896514654835040427124897798036919108138131812476361553016685359686060484596399276137695298928785096914141679033742680793547076884725817036987223788907301384890729074632088293596197894211398353446145662171768818345927035671259003172134902566555590085690079447152890874646688185826875167976118839810711345453130751028259506580667908935083544127352494983691627833554724731885617788612079286246224890639537839517339143500270176563778515438009867228798262266364517264238717886453339249884457499006891528314994074780939272096606026540000858813684511857483804306949169536527832787440298473336034774732927965158578266387617286598077737971113932976224074560024847884831625698824302868023582986960596729195957746198876580172752113470692045445882068675467513008582809605839940054576237224838280940671516548705603274214316170576898034147288685165932048277987356315378950654409353062047225118122544177750705041409600486889177634794589430745514234324059010335648904155195215952932601726325226469245671392712859742332638431993437286727173637845087081419926608522831839101370768000323872182398484877232548146318507968137415465375063697393855300782589609625890974654302989002538065166793521182568932191653674768443939438911032826321070149582640879943696599512912920006865362608455900712544204534457524408935859237505338558314231269829059081214157611122392851620894124547539121949299259581048013700569719777913547725798343155213186702250660281681380867081417623016332083149591376223719692168172724190534743547656656409678164312064461375722895311804370510638428648380175565080704333381274889400874954784011889721439713479600978618562879371355671484553513226940127715803108332692064080941667925248206083160560194655373431326508296981815340191682823025106658674037435391259648369806165388640221783931430261948526924781700587684575204487411061167528007774185399368259236778133397703190516481940491737420019421170565969921430215966211139520585656216645981314875621509278682024582474597370402334770881575774103186699402316040817951187962341443787159825661948726201202358823988538753654456999718947653732540798710714873045029838700928626797682137609802849976128367528443072649103288729940384077838222717220667244646493653685632059114210337589912218776105389888283265164511177129532325916180652728293589994812420796634202269908630966898306863627447786980638866665265249324251093065150300595801981241836823329825329501954087725630277714318926513530351617651581345201193098707656345739865702536167658396606944147672745698215447823898608023960464131799445456019605929978428647874301327353521234137445780145021050411798002477777859380252746602555276618198068864335235293722209390912339011557291346822652554784491469779680631401336478263288257273528996039189014926780542557572332205249247205905231731144643766329961978860636499835364041460921767460527065803193586130059056534779973179076905437791860560386487900226910992047390794705454068099134701019981911027588732233339657240996648834163758680251760794388843117071909087948680081464075449052629159994765457677192817269846511105616732861821618087244362006139319759896589410688044723650408569438356334736968011724659018929366976547277016560674246590935922581949552437243469643305525432233520839283509097542067843195041957278346242123155763855087541094537609263258836739962624062674046749416771404936774825331912123374335354340127481439083432102383444617740101698528915239732972160783660527407186735518870015348653649144930674235436483215235553150559398058280473052989933139944532095756037476377788187442851794537737195174069954236824432397821167634944751039506077938160575439992197924354448859901564460566597410898195823170804009597634037213002370285746822933808069704535993701125895169856132119361060349458413239837095576730049056408132777410518300534746756490459551569911157247966162046249738069753293305464081624546271620315071797211221288721596216630258314826670861171000462412569209824123114353950877855199551042204739396664445098895340086037116723882705431987709445159496696362083782890415569732315538175897297533186459578430499426039622858813797053738266811814934479635210497867401063337587430835473883924156096763563598009683820948985048970342103892639834026577582886755849934533064268121394943108545326247560949558505523160227753780875914923486512634768688871998812544111682144976026351224553078702654204564313193856411633551424858639718266660503390864189239715135500078253341028826492479921366244466237683832155616064743607686942099473020413343262131816521977841019114340268547376571170946076244619162177105547501460192584118256946860058725459301806702042830199868394818102675691563489643267589945983597623678292434331746614177701969864163380278517158043872090551113982801316383963974274914973274277787295924710901605308406672061101002026490140046313099217312180732234783233307571195154361115513039369487832730716615498424631373543029620640754287122254939241564957378785683966922648700119147186682238847324499322880647664794438636634408198280804569152327026887360582176273154042737312598101550729818901305042635184454842865762142796372801830344951862558117334937449321259614811893900274072848800147141972495400857279114630070235724374811165582585651209958528996314128879199143097306688775641150247739141028539431151391946910550522598201837828319631647639957728307757093553899347449379071472002185480306701568705034877162017677663032157742836708269244654561823838105690452608487447918944592140539314850348328013620169799587255988575985462030914205798170963836409619860161809543208500423536668346653853167309779049261686092577133588663434577039582742958432385025821152486256141328621189218270776530510957158523266126256299458602607489659316133207640608848276175535645507144551835591793977424700525799891948200282416271316800899821477037084264918345678257133678250377061726267161078652534286972194756709260511976036170592225501505612797590936730824143190820670368625953456576766156258694869463288420120202433525614191452686016146035976855185111082692657622670224202857345117987758878805966717783773146380603551171960251202877335962999480859295918268186893674538832182353462715429888523659241198032689391906943258308030478402358409539852592077160257952282027426586867088924573159304563985360349791026040757492624716584266077886826839312507385604125844779216947750764835920127079881156935233284356859262330848533995610695430826106845552121333177202083358126184675749155609958183220872194225676484633230227463008799750906922437072172992418529028444978007428845263763517934243674471336625545252727037764839366952598182179229491206341632351888944937853703430477184060758627156773652309777099724848923220604496696225369744918568469004133577520903821092640549601679656418465272989435844942407932314481882343779427022264049582649719849718840924729138351415526162632970949624771861981282428641353465100692548563984047163160391157590933007381239099981615187568745750106066243084097117684890825572481407952948742342311643719602492118574733418433289738390867177564247318423557903948907549599002069383899187777607504079375322930648047122989935817292493590646997386586738993822531534015926667086626760760619890980586505368773186479945012080136275969422464816649096079197414829461550413012969070567700424083644307826386201005417736638192018829629046103906108517606715384355968673085396909089435887567387494083210633358676610203408561745938792984769155628086667021855931524203871216795512863032727788365032281113279593013749553396835335061797988193470276248298246032547517139082322434252008481728885012350371752304595132743872139420636367007179138263469892083767723735248721332246735862649277776078600819137187908724634227376592371277984204065408173172958299913608490700071560086555280244199261173481935337055428520999392377749148693844902358561322399411477826692056106861442127127401722013102865013651458065718293319458713781894976705200985886204850506674226028749073333746975323000558632328466480143671667571403551137553629784701127026832636266018371138246627341067846831859430645721305022658505937220171510905592345305989332223602224946532664187636620518982681339668943966554656928684278048672223885782752566106776405379601061312194875703569742195156949522252403322282369155849350420356938531025954051143313851344365416497492219376061605787319268393512616878814280910688935071490688991836063435621904262965340341726548919021336936644027062810852931180795120519784949321644107172571293282617955396148632733882017460822800122120155694013560075384310480529555994188130100408958511529859217300104907421324036475540110559980648877043690088096546011721201502630742487017335229867464012035808224072012002574238741273482040196298241842939988023675719293395379130196650916014242525578600382670536610185464073320347298992414891799199031018376685951897721336277204311710945532815185254544553711908530583191125688812625333986571982504963316345062594890313964098068953449755859299712564770345061452104770540293880152631022282522128750344158234956827914827797813146893901775864654673942788567753130388546886583776267924574635460366240981128588987759827987742198711643480151505452634571353600755699673046643542283604815960546053203263535765495567137699336791472938965720658645486974717685771146769239134672641321276766541597395094346868543080280055064254161335107672327489386119409974283792774808378391270372932470873573399436097918049169578941670687789098605586216066293717483146420835966161460997091551514812730154048453708279489830137377896660723667519462401328559578486620695412964891613748618314748702832821850092537728643250439621707907627472805830771890823981743336772872949824265947372366160033289740302665630365016430247384463125898918635863891063851673560902702744774883940078530574357452606255916846918744923359474422723277137240446038033585620827774502801324665852362893398737113494045563937421760681831221069431460538054982013466660961159933353367839493130180977921423295553541303755877743178775802178758435157550291902851126392054244930987593954260001166737958294204999922613721105600189354429757740160197680941936591703075547452785376773097290101591389720829148901316100086499493350866940334958836219876659149985730862014831913147376974596855683763379018738328476434024653157092543944754098007112743110619800941898831589363658606701956593345705708018752341408197468445733493487441882345051873585848346357960996306835964344468207536852643914760063116275062536388267267760558664724397279813305411479551436004899937849597340626217291936484531817294337988641690218730269008043486665346302723236883561657880727477916213323919294930988347830717495542612284037922410310753287269632921368098293903175158465494874103171492173591285863090154491826615530431414228218356648231975060710982702186148786774230914420420479110220363240327084345170943838149495970735941403348826916043312529977627266455763430014502356121707528756204595865742865095191442107803002901513035080372283638910704531779199786148091866300289743465527055433413539236727659531811812800708585850015004912140870247356692588794644439632256880433935472425174584310702845282114936448704014842122571785818765069278635570578774502220377777545752955382202602872760480081965251787005889236195974460578429112105199663543760003761888129578928812207647236827070471862289863388705090727832753889337674479515131510463235624557166831277340414671641980447766877181620106249573580241778935472802498514765020307581898038251305918386389851455268476350065841456539555245044309371177327889417037951351562500253004929557108292403933423176209318237882564714191452816579357832909872141471226940699555603626163519418761337662187530321610123230480095445632122291541144150597779956518061280686855091153827740540862700727743447171632014370994764642940494574680143653160658458909320472262621957103024836547692702057769540933584340279809152925042438173286699076552484663165108729506474932644765360139988344997250588928718063597936192231483218755233228220924398482118844513839490966606630008921547880424700423837062953096924115813520516175236964690970491105834793962653088291426636691143340370908323321570250855363253291656864155980455592286183229295609322501967374609122575889993615424621955434293389420576432163743426648943752941556500440922048670630990204281546944724796371513273468473490349138215488502078948878165857651554974583479311855772935154920674932294442885360503914038436234267261983127613216302281734769204955527223869342281638363123919612989581973429598433715096663111564713844040322807159276399841557374584646519031841098524527175070741113244383319854611666597002950524843285841431907149832688320825914235957117351251561576615153111108634190294661345847198236311213899426177233244345117775771948764208221784705923744068066985295452718446316704483505252785920140961331933044086552916059634526913533090187175982443814643488840796386865193608426802529894323442416607942577431259681854397340950240318163164821385164000740474766407479896290476351683053430987166270250732678739841267515438436934144963599988283676943280057699825531351557701722994547851618932676025353497471396963707661762858275944427393155843392146035994877905286956125005145452308661005124101562476654542945022786207063434886217751524983396126828931253199049776592875639477203539395319269593168876926543883961948696884559644451497091047809762836442110582662414037457323461165194205448634935452221739417781931015370065250550654782064069814225994275004874101531853164496240915360297450220450617416277154845454104257139979674910765932151939265362403742720509036302700389275694025478640765190383619986699644650760613344375562323342643304302818094243289085954957446088231459622542748261930189076270407348244917889992492205078015987594204400867133277650551172633371021401998723589380322583933197982545817887233371246882820715581568164433242392712460585681118623271495252095487823419574888847858778799875451091456002352117951269256855734789633972983385775600838937739086114180949620879188724814320297957553880841039922487935961677847996024375201986372494914794364448197029573535068680844889378353414873913416030112079009319018405984594756371473638025035551043205229998138307536040893949378415500229924451733755497408880710546840990863627604934276462560630985647916038090582191495920726303620623844174107734183119785088157098064459618955379766079727353064335411676172487679329854499038818791670807179226032199202624521729934504439009608178593382387207615689217305645419268596969904002133470759657588208369449724500201904611057970886016714404367822131688058688324152772439092393346466957331050646486220864513494291367785997672793129927409744976592869354383038585599443678348942030952576158829549082338129035681027770969006080183803275241692548071018245437631571428791614915757320701802665403947888392503818659785167439429278701282725349197419247399908392221502942395099846988925278497370496306802450911466768551652761986672337776278168091158843925964061217821237389835935679474839500357536076773199499933945980603642594897123463266448957848615780534438666455789037379326312085273469500484679937824188419209403087386966603144173150885384575181356464430415786721165933830589733103761356729657688323471865079914557618909485973492194469358052532980275577430229243050620215029847925265548048387839198303249099726791957846648453206980694162821618500349557754162677985264976723920348424931075648235510703291536772836945610254958003568614428487112230354718576871736370185149129303700615392266684939932609977714892935470578780040906696836609330296117765834584653358556175071514277009852347643266994792939144343166932240936199657534195325956798899207556615378792031977327005434533662187861756069198006248334772406988767274701288276898127776851018057416320247014685614288770198805876674959869692361965155400802864261674169157352666651840701812346093606992882674038096236808350874374903247645281568557184640577405637456310895757616992814543344514370060303461609891411901469747197833179364022007710703299802531443307172752427850935057079108351793175673277101659630141589139403294219826743369925935007504744655170105891708118069615561376784834999461952864816771572733893445697650685553558431795344190900743587442495110267469002948357337474754790907560960491281118483341232443351785089054025559682704852864249184799909316366528974366460079870143529609240469611465544281875570321054614451999553842058576587820575454748445078269729344699059203225165596349836226416778084539354678175177686428894346111641871650761348757911259260828826300912857957335083113988875189181317511918564280878763906964299707587011580019659103129971836627496724374926664965457867146723158573899237497523729536722889245480341630234283383009854559257702664775160169647038058851195833433786460585695715955615243120864900996965610445502339429463053991196018848437266740770532294308398444436060688888807006882866278690597419568792952498814731315160466745322583263599415247802629310188805632893550920044694556097812589650892425445458894426063293329570968478701308443110804696056101410212748850658619667505960718552241495011833812902147745326770040020296984823220483649179505728869135173495886523676410600654331883514186385312681526103109772557650752562776112064389232430832620391994684182973169085218327256502894108418715607203928527906731922549491838354632365110559080017427871954081843099598848725346836865562092583237284886099530027051791640044455760299866679610954975754127627489680802881580540114138081907355421069395138496796003657570420817591340880973665514513102014008462668489899969997349690176713607114204594742507678763322532741776527628374818075484087353181869705802388563543433160127603128951907150259097281539083250191016818779977897487124935282920476186418531283087323443336795057299678978977602360723543786781523501240945527384992204376809240710491324933874960374791953854580584877348059082154087293256275179099569050254499201794576672504227173242849452422621253553337657495660953210646215051414093382185350035391229757032536579338064848200753893386884033530485753595151408130352571742250804997665386527723656835917094074032780022569793803200746855804028493522772280334499982306311090717557246565039327762073296732070694048564183535930878343636219605075415173966210112667747770636905270187165365538851875502416461426764636605239844275177571602223948628117118862525707885951441908642059769078615325778564128796277824008504782750962028499569413082130677293351035132042159544141575774963061546876982340594536165190952154314269169156036186649586813072822765825890001168006739544093777470717699670997252129678428880055857425579853235654215257703955318756443278790750170597646901218984729568085806458299231009133939603863280179639145023252930552777004686430045263196348627346767401577965993793352202686840569465291453013420445088464698837301238607418283040798306943653419598883827660961776348127823065139359188472136806014817236972403742574046427129766501974098875612061429987309909553506285780639776884818569576744210817961931310900736184283848573802978378724707064908659845951835505443142895823820342586732626282852635922313975067241763429621678698628651500938850831480062240471821792627164303323210953036042281205499787176649440875727970769809092938468489105146172561633257216505318675626691331249663654447102594459856540383048719242920334408118542190314723016608671571375031678995813081832150086123560196217179873062583418782829534750849081887879413356400159853291056049650337696048877385951607637744365696118827133400970610531016626443740563645724067639087456334021314820785974256920756242864185734747300187637594616540701680122458747714315565315115080678633003543175018347982297113602999327539779487545861980456820626180550122139110595507369083539954865140073058615696534882879407673141652872613225153602681806428213364135474911792717977821259660845744563942879294851797058715978450977888805832853689730486851372757235543330183126296607591034540966623615750170946563888868370291274879983416609403892709939227832215100534677067140932200532001183621274269000769179868366140636829836461728435290684338350690192233470636307199326113682468970587879853840914981414428065167882384452308291009083767195013532846359696307359838825270480446570145415815371652549954287415497178177083672054402447272468845647758903113543458572947842880978900818810767831799297371356606563638852726059953374821121027194058727508468211254357095035376104259274953346765316533764540907335435983869415700441874166301093099617335627886306281672602479172066596028304777239315842574748222912451567692555030395449133329475418425813098825727218871369258055155616432764937567330771834447382972119308908464396210982147900028542738611716603513639378186797622998661448734229804442059233129749214628989945450371238948357767739939789711067256642622599793349223945136025946774178511727287322158112850316718319719251564150359480784670766785464971504565957989891549973800524100606860976477745907538970610450964719565393748033111329591636133090777938588609310132012225722363869515822906398850125258781958089527757714696280617304073449556750653379587222788894735342375156633990430514441152007889815537816694700340764550223228954133841976230078714898220118887553126457436796740339997583277353315360368972958559449880483116496860057588494234420646465390874666134817953798916514228209744897429058910288079032875936716857622335226665383986271496073395634361571319084867980917762989512033729387850594418708423537773040339508092154996119295608209886807710634052731584647935567454082440105403594891754428010896069148407804964189046001419312981081781486868514812592153166775105117210322533773033014525526891911676106120112909235147601833665315984952356627703078953038260942745867264739550775591552835840395075113100897120098953030419951753214736557338733472753485232714333868351590954657964957904314002576015388864514721192723222941892221443208736083829592502395740323269931212772533241054766860626914073542686976781193003607321263667061330416765350773896552368996226508282847916210700886851990028265003987435036120835468505665981390494679554875106238851454571287853044410704336737981759878821641059347702650875444908760108437108160750875670023105750965077544156790424578339582225556762127717464719939190123153644696721523925388635375597642104362804373366524112728263377480306677488822673406425448047219058668409165861696947045729359764547303511800630581018091874024665051526670551944563023320133585826652694741399479692382895152143364809978549341888279717911705992495438445810261090992961157670660400511113288908015899486405017459693687044508477889621913636459197651889736473983588628825068050200369176723958511912079514485698961014697518449146188365346609460863875811130595675753809796283757886068126732372984627143626555207317222615599473578466953252895920996842737921223888978578760956969003068750838166000958532042461617297415729927898503669161057733204721438304665292030388320547855606985462406601037930863238168842519557366312638844170043004596215983232856399414286752292413949608714534820349023219392418580099967003632620985254554854369234862169868204572646572348774256607138980804450859052162707013929008024833253005759348645873095146858233925185522933163839912270861297269752908739779167410407936806175222509152344473127291122630090321585467703912300228155668475609413861274586976643407902363105879992419592374525311254411163031768383486422399181798415568190058243867325149461459237733001644250381594200172883077262375320290669955050097480996908333404334593917653957794952316872769618429183659094185119514232752221406871787915039208269037922406716575913589245538128831495298291609368664416751550356942859151787887990579449279475529456777256653300705766758457489789524953261360672456105822992494650347981452401849490597334017559829146094072729234559315612072256159142944921399304650458324451999040971532535841860976054957594722460063671586655193392908161984714527876365862113336552125179248178311323382690079378942029781078424945487957815708022579358095129562833790202895485166076526623469662598712509190937560465063535095584145274484555650390653978775655669048807809110567387924287393780890114213411906144574717132698932964246397496856880915708826517745185148396297200668779755426102629069548030033730604783241316528993293089411512774728454814273820825204031253753798770475390602066211605320863359556536148679575485627455212758676342282112736905874925507404705032002990795802720400572582281497271030255264994745110319744090004651643491481085066821456627524329930801008364845609518544632957824126376430917681827426711624893181560035211883238516277435945783598682884804775288952172369568102960914063534077300889889628677976756262999741390098728159057702796544562823305800701212848264802214954497471455724576049886582394759593279097599130109147025324030071856766570377810778806678775236341042768639132183574893355794948731744935292095386473963202715947725736518186517181524364299612336047880698506068341351874506319438888335759784206629210862022075197478741102025346769962569406972885076784694798068347201274243236048237177201346840137083932198702674599224433748039986246642975465925062835570965998311691315567041689068695718256649724421418001194514904116586628418261258952418878770759428842525767623636625574928915254447817004743865956294927249923184246031947628352125414992781929895662226665176409267290610311799752675135024106387228199731133461099770333286573805735136967795048456300636920627187469872106731145831349919336572869606158146820192964568645011777304766868387997384307809112558011069957460592280477797866222920914406656789931880184702311821459131007440488101948320389471609069298448222460054087401066579688002058086493567286911698285061441772053998660735564749030088441559097515391384529923880980908190358763031581978807197288794610149221463174073168168264452969489330933485447132106555146990929671808292372006868645296491540919655888162568686635242114718623594733928610447798671791195847969440681920561187907830604487912682343002574694099274396747923962715861021464849335451757525650899836986943350004227784257618301468241676988718540215974330368237294047807303204020720165727468949852234301089672931599520199089051679241445835173754369873431057307773874539650576240492398298517585512501113942467905219330806630730531823910056836447091645219210857368055651889296639818333870720236578891886943091837580967939856392742699445111496247701414668643293950748463864677888284102181804991325351921936701536648424275738108799245045688934500580272757103318098150828087365165900009353935105471295708238339467936194925622844529448134365168861848014579698788684281698933745931833929326788728999008459212451785379774810472511623441039858115298670323383932095990883424099794946927913184362276892700666154144909916767710752049984834454962181259025239995606233597541897757370614055152349638763456429857650514173228604440092693416379423303481542637476986224866136031186718869378992138579183062178773000251305736638856998983693788504247316704406161969366990046287909814119446981118419363885940893854985595084877505706866883347267614577755949210545030449683700218203983192152269958290162110617355097971267278511982900327014087213063412888977425163711483580307477613608307241667200966310619763433197241267975110609935920537713484637482467014231880726260145005385339908193864034754067427366512238586892302420501668680915095305599535796590498199124125631962866578030883803319484993695807017690213088816186124145096989531645526896079595681198413852311933952238422289897623561490789748200165195488435294336740665527098750790449207992864535375948828903259221094989006458113145233245175134087816926991965398629096197670806429180121362824064576070410030689701964284420029275954450385659812910558172707350519880131638331428144777793030308907976890148634889691374060860498641652993807165248654309958041540611975612885184549755282452446491246766387074004944193035631928137948701030330797871278666001082927378959793819942504964982126803914476894160058353715609282651054333731149193880793457950842091160565383213236506945189093135164569114665015508143715436675806841750624547550184942928424896858724121313643384866218493464582757745141903333945603760389772692486286015188053570871224070558519829167403836654511815175444196669486857067658372594146912909422368783601284345794695064506364596864527141540546538943584147288308590461680132083978292709935851869173861312112364409507713696030606924903602648360761349367572919697435839121246555444030637283698597912224473974677746443980442870133092265894661937763127881762710336131231188167783479703742398768939129536856649159662562352659213944661935811778516632040773092666886313601717801265941691120526854180910687137752703606556407410854820433645296705139693203271801192900783914839493050193182648330052346698416250974235209131839937953625094605372084765259381244501188092884431007655653050315551798184359943808926441574992727456409259326281137729564064517673239382398637371413298945088307724130900483447928662747129115654414308188767642841850274492268323058406529852590354591216549365731263949456856286098224049199767783732651053284624243588324460508008334929285580689916316297453401863115094890092220956309632575045888087750644295563123133732802326152174271668213213310943460173726313367613728518634342635452654999763570507300702969666672594011271053560404160774519509330224800060877923789342306272395606857272049161285059164954861878734533605823576021543140927787273115444035300083439119255117629725451536461537547158495791259504994605939632315909190531133732081143695868952288932620172361740210809819154581149153388986838502434594462914060679341600467284967324914236067055146178649707619082033049702132702051540353665332861933915909245578042021872262017524480353375398428543166800127793526292485148287828522341010457654773176686670181942873508345400795396202648085780843530504885719328641512148564385044901680930702217720300406888034058511308822139400791609540178481248108336373161861794681192146702710874006869660458355310186199625381679584144423979715039546988327291554795365495360000828871750629529399294294600626574354498246021344445268077213970566343122112325659149662854487605536406011560805992876194988276803378474835272618043345760319596479906556650248255911603623126638784271050093240078382706338623344290472915279944415166766412906814611529649323822828536475656770296148806547651001976247317566287265750111105860357419796955247027591818664496811422370013061288196312298033934611089452355223827869082200126758891036631852223742383111746286399456502721259166863664634636678930165226782857890228299650998479131254266989870839378336093995593562273817402202439619406997631332825289144988224511658799420778427388012271207110957744371198092655634511663858448333267083056419839938755643322268522114643223403923105050822253281371702048470858247638070424577468273361257897469606177726716465300689647979943299549440261642180310697889238019813253119480949522837251767610713811379887925293496795821108024274265428077635125082511123323355432366766531823768437094462804525682530673565312276370155638432781008851652421012982668129575123953518023398524747455161930435672560320824277089875988528195201925873485706360906961595936209674064803348783190304255541000238124526023915470644169203858014449621276057236008184139638643459417885546413090323173173139887527081466063612608607976658462947681943467190203893791307385148030148930065285939221047572821726052024013777925869950307912811168106100111828503883725375017819743594572377501528458637049212220863400844716341226271772359317429440384254068609438047314665321206581761877393748706979064631705490436794453682563240696226884741444631377626863483882428924993898990210221104824806763497144313532640945034686314523867243808041440907939442320936223194553468121162806288109421530800193609836994146641477967456100802585014460674523987377947663843648292423673298292810202419975059810812561623103328816535198259498297189600992983593997427254575798823985946400205764748951949757011025570333671277072048405755592183738981155962021837107236923280961846648019979325624845340504909153795139101711674512579597747886722698275333751599442135928372363229903959161439772406363693708051524659983331077112101336322622051842752629096669326667619767454718480179935868820290067048670695705452094694957162737918450051378108602596072309565438222491075622507207214684367295692074498784762148220188902577975869000528996060262914227345953848338797392517124726011965343240860839347317153261478087422222006866583906541804585160009030315706926663046977880350825441118662297123619332755604880314969182492618754530630795509927076597466372736934829667896478833730225066092549030858460719534754024014279386575456870555659485044091872996340928097221651902005214664705839959976918187719145395234255429463795124488191030693896406198080498200643814429807900785888633879816417079167825459522187529828903566320680376705728552626682480931707210810692385531996561999474409243928789502032804568152783729456645900180137987849791270907395705435097203080363157292566571162432510583206433316222739663089738065006601402791550200368168470777025543124000143315560612547834346312475463318701213111284843670437957819049801709639009756773819774015593919530747654052584709847452237068543162640218604003806206843964314656045491852774837828434039037012801756197132817199665913744489160062771393517246886071993665973287017056075974923614735731145929351922551242145881597697592640322984982329279723545266119578319590920770515539707103529013999631880659161987598445924642436416926470868130176869507117666094635088974864151098895171359212998168888832393142702205396930741908603930350673159909664434747228772579033012447594731284105858003962873560634838293982267581960758214750368067114748078638717783871295418030158617802876134449786777056769633987280905597697048325829774795229638457740858008855936305531464676544423026691611683413125659421356603290498713874475157186322208009350172340968331224826494827867795512580476956855607994059658664331671978374577834483775061782889716005923163788329422445448443976955130739614432129763568569449645742742791299892795225574806242402436071050574222283499984701755975984543993587437131125782024749793103282794989852464111675168108132690856749530890620732083991841512845699958430178884291176468168388344209347229620573187688373655532996185844742089399226699397542780486475337365779398241264785163334561950397714679828039702095282038349235697437129003757079306541391807115830145865462667944553429832722991219044407687541052564659429595958495728215791448087966976245091692536843515817333992403393041694539937600440563291454234259765496215146619932125461855833903221095256522780319433313415109565467495694686401104852561860516375282806884863109038878714535739480121746844636142362927988560793113673160189929670967308347284363488417341051626508431488133828768886102935161725893101930553157220313760273467009233738888789965791812546762040047408054201120232659821257925703762533037427599340656801955675172322606358718183374694519822814923313610343796681591716878171941380231255738620553288694584040288123908290432688424925364507069996757230358008965153401707137617872191964487555617865270216868046747666623259821689947330435580418209682095766962838601597314641284594257052051181579181624842828110622550740732953583560674336715748262449550142546723754502997370964035400910680397294494229654410109992422031530860193712825203863491261027676140121630308060275858182985209383262370443920382073939319058732448983968333669406760037507034069737561964071290215467477077619642864635127266076146352456093479595199492228487729665001629228232161934875024816105338786440514172278847607389780761791254422188368964723054928232502252916861886995700815902673138130065292221777593041222396166679897970173354607468342553158809639279349921863261915341812630416145137665348365861676454045046709154925008768410594728249324224520653383316959096435825183195227388520893883348412422222158550548467395602457497725701263669421879702567409112854978007892474008526195927731639292440862981773710394669800905724330749516259204360898798484087113791694719834419138499863913957218248708539606965488007587846241154105882277844953262621236536580771306143250902298527672692832465939325160645878292803307948816231104035853889746473495165300208062101714982687657611848695050309501208074611306559864362192215140561192679182208349579392377740369990000022601892267324026779831194500571890430600991522679292864764377729148148336600105059572673615918857676413421636079255459769052997577384288903643632096094030250764600774421751064259698393094404154404142562042623776797885662981121050576015615608092502475320329865955295315337266599642903804295632357517602749579308977874867457823111844989101032476576850935899123262989295510378577930295486681591167437859085250486672406090511825007690582991575395512045938112363560856959474670733664764859659731128773641927003512639679341364287288353590428781953782468103173223759780233000774172913583711042294051342514846343405425256763922078667655846341380382630472850335130732759396989780481247311151844310963411511247360936753397581518615613367772384379934818504695821997154533890808320810704413936046875716155668824512512846532348000602318637026263417423342216340425119398646553431596713674949574100642462359385869021048931443690497269478685948634674131071640682480595370113604126006665714438884858900655533650228413015302873287358280034508820901387913444736598613417151146241819158247348962574955210284933627408313809974631236917590681918864932177322288991999791441827400465479782299122447765561974010423080256153730273047859666997779133228655716992811145505032141119670488804295772799360049761024178845543700849259720241855911010880975351735131663890145369339958655115398413717611390111638622135522406092698774540499528636463354504532814216190439829242935977347999296350828002684965967769532088123910133791877967042713660106864806530708670958186301494568177790279991332520302423897905765619612890251381009589703310147847607359728481042079120454641090742082794296863018291775360066849738932085542954567730405548100352038241643463872188132495287113426545301158227625374038253447401577388364903929282748733007307117088497440195266607689953278129058930350322790228639561909096390658006871842702766236323534709002039959050346712084476015436107543416636427899264766939749810907261375182327073877297514637341570695608410056628565050641233467902489439012211695454978377028749873879531817709280998086848220976976378472654765140196146930229483686852518790209388657555142622923404765823002069369035503952678120572398026097976570004389013629602194130435350020793661545474725301689853947514928882549101426743184413578932003178092139945501947949723975608592699571364262990143128655452537890816996481892945589675635665940412376961876035470126341195171062104830620167818438363464090310818475050096692777333865361757503813581352415508290435756011811801574955181262252367516993504877795722444838452905503187182843510442314797512960583328157101826391399563804682181386536753075908660854649475409903615784475768156972084098058580648910615131441519242436790961005061902831188136321766258844956720723111287316772716693792349003430165052131947556497114113349582507485487667972902350894318332623384042845524323173575192087087062037200688794510926239138667823037806838509174726717734125182121769022170720863801995766794060124659163418341281041124696153449739511468201919814927378155966966407051212414292692831391678585060135223193676710349934168821170211621292299963262156600325369993369647103631756728570113324501903711600649442258798790986433716745047430380953774448675510212203126129745343326921131820345887253895761671605563003883018012345198270457436122719629257892722548405588926072675033513607803527180677256880631196470467262533185526813912979453133536745687383156239924767041914030283139343380210354888851609413457354274120447508031957455131307217462314632961366125325059483868879855719495512728011717309389884186777167713490994244627815051305243267781947835731971928424183865805045236441379963527225865009934209859027993795184188834339482898050218026356806986209348141212046732028031249567056999072987273930738114006515124218637429667685562282312550787543845315415520001329170790168370592260336243001290824813310596102766622919552368473551356522244937573798587916889606585807913547103651828243630488223798695028493605161255200085419304221188243597881465695074902715289304880551058270388022244855448070112316673565555419996853793912835560255079423665250069828903135819724662972156652006713011585703478063015872800048574555403286614314244453985671376359602787165353128483079744265374464202629721232907027448415968322246867622778735729940828698169972479136090075157795179629679063616736918344046952984961328651809334256846484613254677129576058623445330833370992056075696293817037966532783690029649120246108947429526655025019323993220516164923763344855123521884473708061468250879528676801285938414497108868547638436322242990565180410398149450878226900773234730920641121343488997121437541530273793985088807134539051924916979642034094655765657244251203271557633535106224959068746575051355554868847963087720522593285932732592995003708984030235115468827790378613429041522672155987509631500414049008248830490782657399168934482269415854079813777611272572055791552980643751175551730775166375482048734196229065822400704804503062028695836064324825180643402263088851728094576079633868733788594711571920160133882579633815641637207044956991933569915917561284287083967646401943143152872052690725858089492831320456830589678845576631466951454544318203135230679706993799577727789651067025951568324823415936750588687904947686972687671448213821910400166488297987694522966389158851582311623702657567601292992058240411472278879579066371035345514366087971035879723382218568259856262861826108756854482736749944813470666620151855834438094066341284137706625578777406932628675334143645284794505286268277070441950046158896577796550930844892311641643241180428537674909024041860830104641447950181705465224293928709985464787128736840059486676938488255319004334621742956192312056068337826797518038923736979570765654982951351745240565716163343075354332491082380911157630236886028942365621702003130341939173802337170477664073516007059949275011647555079371810123682734638742275952030004200723262066034242843746203915126665077509682801601728157451373159106497820260540610269319095373656441619883420912375436786042200582540868968380743966900056028750412183171213942128155904949190004931496335977757554253461362013033166774630018056629538200520308210335013612678853520550608367775262319426122787431043951762865668542025918269336019729165185218683086443957552426359066981112298558242451412577363648234144933808066490366882868584469265171625475636133093574277852896233071477741473372720584225747140013325809397262175891765116635503217382573009373034220995523339584864724274392091924105332955936312931470299377359000373178139964466059622836528875569823889567932649818827792617864526921689306919357170938092365722258689632205867648465497905780342881491693439197135229366166347643811051412275390873325053058730780945006080963318992882432391891289593959322911021202553001678823732411176544633190325910840090542129670771859692291127756440428838997249380180719363809216393456371909939232843895115168905493980527539679488747202506768263611807422547365776402437141699707491605829732808139991076097299296564525308875005898141255957017923903628393111309766895152640955287044109202405606475019635610513715182727207603687409423961693781028004077461503810707049517105138049285938799418920650886226849421193255849071061070980010913571162972417568120186341896071256141737411936824592689763377838461017076769070565923193836518489275397253228396675282877371128014494864346675373944492538532018102283108635161104621017761955207117185344541819988811028629480921741070450584241925210366229245410429206598374702215898986804571542151769825167575668477731928360362567914886653000594345075908757685083800941685513966594510418911246656296616786933203101917690847238249035760292914229152715140457680659831710465789199825398253812011989424955715133352874615792655927758577630299155046601046943902310849289541216530235168136447603385010342157302290664768034309333328581053454651108996418183842775225229872829865987876305019013450828037832457833301864692362024712607247581245444520614156392605221827882008131062508503532568862828046977455088378663620394221941837235996035785181730889118979592773102374139552973763661334075111447590019997517026769422518952581566348046103063732276743003066250015876104150966313806312508161347825419658595168912031841572486477665000597661094653877558207615461966189582906377236456609829107423266723280958155936983338285996413651288672011090976376368222475872297836997666371342659105400219529219761228535707113858706399782200536160739976594485133993385297961463993438541830022066201135060537897423192410866893599815762808114768118424787649916954977183295504450253735022303794552179262897613512457231349537509578508790040921013013270116960310163220122575987731043241618547925342634319163437714927997491479107794186213151046754223329716501235683346626038915897635430243636652883537287682741190821659559442142921716757579085798655517680748973412624499349009326936564976776705595204441080869974383323297012646797416532417842768003784522438973779728579222247350782435944345494391423284155610125567962156627937634331153214180547773833378557309628255990399723431686530386020377774281903231508051608404374629515161012309520025774095065648666972127410573516207209503022413367432227605193731243161171882803759325477991957158725620712360788964815766485941257613118620657353908089523286154749430156275901530104458094842368396403073501378240457647082534318256879452571384055778149735355132445367874940517537655199378164564742451266973119966596779869204500177054599873500029977093340108169419228891034426045337765420098360405186976833934564410107882219532726993669114563203411328820384771786367972897430677367101072694663588400099709467023466245359116047363830777474372369211337092548971329218246992352447555101142469456109984137807122455186976776673426915070209787405093603194218217241683046095555819215510092889048403262058162248415369358030024738956318665093543544676924377369487482050934996227856527238774287193197521925924217285839085761507088109197927405626763115797480478285090717907011378529962109053272421834280949644296253886709203461479400933635042160076986155109743359661273134308376662550639586683868442128777069338062464246316522355914228700699162478904473213461415533192716504270338008185391740113360947701214843391930252861836784342801874045614405900113679658402924217289305349435663416980640981972756885592622126167477010857995205574251277512153736493504422862830552382433313554871430827084416804223836257914515118549992155228274066033091097897090431804644508284469873026570728407007197914255431185768816097618625594531595522828021788601704717282453589993347546169166198049369057438902502765402171608165005118025956599619677025591238861683794693256563230797317812957395797240338074437181737925222875352482434677958046374224468474340892192385849075421218975146098407116337186958745022537545986269458016256349390885050913707774249474351097755088490642264392693529894521754205834069118579595607369807273665973396671078298037478869820251571752988690973336353367767151076891864829036834696745414203442288095076577890860337089292499123436562555558471224383729538924238876439744496068673612231749055817023893742659251798180627579234723606526263173477531176360165963893291006126164812885757800561052932103499747219854640465849624855737568163297042066465898111125932224282945219443727238338851656165804909665721740389864733005478167293227742085706868593206609283139610410444384127723368032738350462670605736316457131082279551018414947351088081625081791431665627834553459664628732806616896033458168425929379594562163027901863335833581173840919368727005388498762913770388030977694999017035552797544166795123016755989764186545063202357699524267886067361163029616653402372178144849535616531589062844815212315321324842632808652834022608756553338405818758262279226133443866499741492836294984206991673672704676444725681396131028710515981221931779079679590700829738273879499761977042382624022406066758739205615344932949427515697771666184403235277788163278876393080475133329747558158812174844236350205070211920569343679293967567801380526022572718432552846425234506693616071416464057923939281549598321454195968804690514020589246211099137991469231700629322554121898685482256082504301194854135009377561869054577648655253954465733764895767062268316389189116433461557478855862867755370248041580329708261755494178589392052932548973341766304566349204692708596349482567902256680898799210716776223331722126566926329791299688896682113352526716575038637946049086082167919599722985741391294669835699116189046343763075375030460418662540940484199252282209199038327650354574692480462092731740507333935874181305458223004786591574117397342702522995425337092860022889778683704673198577692089230965573412845143089175015664997724223153081946663379472608392462296079781391086635662980268527603976465492407529368044814085793298972502785662677242197623973876694845730076818191032039648268927681992345447695615106980310548705584145751148382760023523742661075157665120826674968341392763030362335168711983766621913942439713955496811677332116762552708763904424451350174253062065974837197789627971735480757370850104990996905232168316263140942845377712196638203837629536624574000431128333852642098417752375092031621670580226116279360384577565651006661061285732462617530458384156924869181748294116178287927184524223205082104426907084914908208902076519420823072029823153854129771340605772529155597802835796182468686313957331262906617524487842245749395696268997742062298647220267169390213718980752802158929120064370073467323952375819132514936192794308999694406405449910084793247207970441250315744153884308824735333940379343136993553530221466241077900597349333152133304689013615812441811760854728260608892288404616898183676108195740203379977224562765261809590434636803531443008058843892822270543064876245557183971542735144941027373731970210738526843939985236418480217246988831490695113923008204733363182141127258302823819578254728399959671665223938697879579289349445985177050250134933806810549736174377006939217820538995619086973729109073177360416620544472811114687436834999050539642030347713868036235650713859704932690380256978658188580288450363822107499862246454043009270269270841784650153154428262949201089905922509129419443092449477268521360882217227043260994302747880716021683068887669048698964957337692178635045330045835440648773335384189513233616479496262440399628649712686199166961322284839988810324395344619908900003737826446824322988342183671532607057179062679153417940374881669964980922241653370390509027460348367933579151896722107453121853158077685503260936236004718322583146549820520005715128191133930538577865351410526697173865736619979887490303091868639931105917194584878419482646535636046546414943124298645333449739520281398368186788160573821200252936580138824440508838141127592722924035094259469865761869068414836743562717423667645637643789762214747007957585055681362497540677186023515050911983815635736820928138299187362245624057238036747166832460647313533679310532901460777612641033147336656063982505080060870601174408022257449687563017673405456804354748890961014107879468614702052931778418972492571645484475729872388137765637171951026100889520528215810764774304489581873195779192913684311649206954776427504914135307490568888848982864548735392444338607802308419417414469744176669070157036047478009173940632985553181153673044360538095808818592441010885273427157538229807737145059171159980512871175035048225547643669074227205961437627277840059256526671697590619932068073828887718485715946073828975549404075320337689318938281306710944545103280262272282360061109623297878364465851952797623670510122159951767798155334708785846741612921583838625021035618238065610215597248209422055344002077831008385815764692744390958201344000332796287424588421940085034238262561293859353897555032695584764866321233612659646980629328596067542937376515014878497442720123830589490364931744482715741037512403443674697699275356651546324021097531188889983417246216014298458431433597753266026427068736795434042672007980238714622948454970079677798278482367514044928356141928465030409679510671637182850040739760182192663340573309350678438574982492094042877149898760791401860234011142091857087305045717073867569937150020984521472490404583016990775346292284531058638713384853311207897359754124153353221582166041914381996742967987442414938144228885021927873395922827207635107869337685470129139881410568897842719299098027149652286192843162809802396890049300048282861785941889029578471481475191678816776938480907511997549495094825470904727189966655846018380709545723720369461604707652472740925331756485029024188619387194038462265010395511734072184285306412072954490006134930538002609378523606863202746176763486938381283385563459254807833230684650510054074989830574997244747122795750946209586836700996072524584705190234544503889842570122692158864966308797879323543611552564305342468513462582530089487123245386168373469308122945493372961580596151659178732692685050520873636854392769108615557774878089418876952822860164844666166575625257072383530528917709843057792536597264563298207514284607191379530089490575402748930427136375909383920013629165585985621675081120319711222496408133556261206657934091794534845688299813618775899387165506313381911425821210300406301326085914692045482105030357712871949001696301615736494550891707923885937558535837788227119533662409510405885450789416972536422615299394933006091100418361614109946771334139392973383748470448197775056319549284565467294135803308504305203613865897928104894854939431817540545868022637561287126129660097858833443777333647532096478909567434072704616493044455022149855617977207279109621607205542988479786306281001143190177384126639806848159953179689818804000274143266546458759329706574264282736455104289287768148803849933396825773685110500491416917368299259015861375566449984701341818291222475335703685527631075234700191493287218138719871264318173128185298087424226750139287391918085531597684288610895520606552459321629889379244930524712585142260714766735049206481797616760861583797630201812723828056416547394948641956839278135658574668815134765284068440409074110323180915170988026575513930636672839283712761728388542882158446560955035346269987724693719680830389939317469317523201149724942453275323718148684678057373070524406855735070425750789998616774149383590740127500111966621253403496091597699848037028344437151253475030381813001486552711809420160963031069517196707835755161098726197895947408222459187172516055472447509621147020760530010883834481596014388999732826277609375656137001319974729249187857824972548320955562110965563231709511188732762628029545611656382704786226803898871949383082735621396434859812643606833135190204622947277510820683873817982420618736277267725729827733135159595683909937227679416159688981541162124086983710464444977207691901194187231121212347884452614003988288779207046775489541812152555213101425879559686527071202635568556889634714122887295231325120495127403874248981410329803754182262167240235385199531230496094752908886593810594317154908563653655911312127429653559996504934347265616386244547164071178551583800637791068074831412109196618010487234989958276939542839724963698539579031036340999878409027634735272180723096061227906706552749444782729632555413345058740475581743293378590921617128358846662365100495739827871401092339640245943658343901922981347769859401275350111908666115546726032073790706750147876005297741482629817555312305544029066000112952680295486752993541264833106495602286867048677307005402237961898659051008567113459248629521103247201477076706486033865683459357522677975578546319032698829231503007816235337884885334507477925201385313117493594257406679741245984525476917817029040488318901600291191247745269850286873976513936947795618336755804207650538665288268104044269095167085981299255755020691138931421293384130088511036264526010991280076104504617889004746020754684619200184176032538864283876234220625191989046325911432511088709015701229717303280224689192831070437669951515604124121579643166102275464146914983548233855338573808880922488504398349756695101062743524821622496499292817953568272645747904208766418157805248957749215110544712699277606644781189551527310343447820196541491681525663264506118245467254006677080209862186331810502879069508486194651801041674826131113994966024326731827718102306714538944679793519451274369172695833007113306429790225287180683620869531492288938624906944900311987212126458747872157310527229998505794348534875267393716380991989810557274220309848886215692413601798114241173715886611232038477450812112637526691925558080981990328931459867350080472682722741215089083662551630952505750402709400690965211280958988258390003839861030216269545328872552505494388134504016312485533911197041387631220496300908851024075742218487724684210335664245910854171901600076174964818453952039823054884599834114753521512258090218626433964143634980911332801675828755418063644264555200879965496133345347722387139909235755146029314923017680152696976604869011567166865666376638412126813405244493139463816853566242971401248006281478872297655358540406702047610805631034888347695909890912784503616848877398911227458923470541626602225896909247118611531743598837491720076527750442528619956368322732606354892733535962930966637111206488481222043332478037789015535702134660551771294995501632572884340868756312388737903584384511358122007685694486255683994695190534044151664262627679550059969172894584109662192872134101381070201335169302957544995869551021756065905908068792270694701088866778142394916237004486229554472575996984211898795378373504283537872292369154027490562857630211343169937881672320055470744926451905457308866807414584653771135534246902641816464204909592201650290802091986989107529021795069822695691068962146502447288249888486288297901079394773372715883659748137995083289761969607874249324287815246363554772897046131624737312224976920871532200460062890988187184374004686647176285786602979989847417467314304008109661735010278053913116622029235013397647469653374262673782645054987225282599176379349996057023833519535931453304035485109117736785118303515355731577051987410825034646262806542798031634718685083113610232191702165226704916069345603773215922544473486454622089653347073436956053619248663343260526814950670022495924129551116963018355136435935052281817209327533187506140386800639602704990645884771963689541847300038832618154985327636935742814043544282631700712781745122440006988047853284689597864789646926793157310956398509028670258261199425476121693499035969200234631790578918274148136166510196001966227689890688005936801810897394490495352340423819162901335444496407524998640319277611457017309111527976213653260827212501598302946715491537913889337934356263463171134430687768498042351025634986394530823507324271255859386777352508317867237962174424301692186535126092332744295834079325564174209007864715621534633986113553219551553327565651631344916553213230960600581707133179669376769252123309087278521500064966813717277270694416369968737591761345657220148562539212873230570319989967237155874299785349857733116142004015172962022146826997622023120812255191824505111857663012428796488741424913971587240671225392782802426458673444487935567086702466342359609552118814905543072860758465798713700494785753404259381031788958612425739971758975597610968996047368555225081303841560817450386781736489085647419670732608506559574224999487737772439686454796400334469544676016582137852522010142564272909414044235478152096946382575683321015996573419470765052215977162706160539647643852482555502861873392319942747413244111324384165229066166197674430343000645585026547998160944323130164061491980575967670212208969061282717649829378421162683183581895975582176919676225904474048162403770685429337055487284492035292449972305615304383806776925294899878825714985677177378599715911947835511513837487631543370496985367718964972981488892008467725053585623624578925500113016175869440195502543960930340723965380876188849192133135202324888568769599172827246759297841631228019326417673648668754493393856204547059477919018270596536035838394227878354878939949691424508757840251403017924584613422120196684234683259447108673959407891657882506907206689669133454494435475780935227610218300851097489888116751223610836617535012089621671196023504612017264928382204952566404743625982111316083374609834238419595789247377509999917971152303661031691935322735166980698266979286710540306367369075241399013986723262825280101412902062139494795641660862455517083461663357371003345388795618865190349455416051350883809889775906802922928713937875083405691440260109410104578516283790839413437910944659404406692853012842105196510129038281586710990070670958279889674669126511282019294379838313499005294131143281874025364465358011098662225446582272062329447205530258645121964306219107645990820677286277410363099710933540574713783910035171617997069139969848054098740867549029505441693220404614587671015959752339010826298598763654518471569125843005812946825353400737586835571367658866187431801298331932683225780675293242917092558776918647555769640131385987620250867577704445224821990515236733773249533202499337412457701391021990238741506366891671577052025841967081354084295689454672820996350345822055858696766553938148705829808338916325982046799203472657645617363776033246604534853659364521174764474543410206720511561400787157363295340393633030487175847860875946210236647328036015556018480966013081343307654716405490428466200931826078730695740767474687451292709967845503303714498271188949572391220986167532932041580218008870565885879652826928988941636216524424487952596751318667861254092344008523950588506125086801471823027117340606504021502695489065368730506649997562513554604975555573797782275331702155311867941947217272567537312010916278127227924922787422465217468500740999935076140442957696115021110144380571199956311692501502053936870593094067541979453879792075726471645799865444834029624468159040521565186392392453279169341205642290492343521827930000704659297256183232013512892986243101549790612486212544429943064161127804418711019529777995019494371372865473028620982732770367820800631797545914945988686731334599878529636995619341039938186865665990764468691694800016971802638901867690619855048285104280637930904691097918390353604950598060624023409952178500799247196967167463991118260676375065395572705242281309227056819435857896693573609755938426729657824988520633142489750018494375145824843580668718297189168227036029642219412977633826545096828381942741452191043016829964297784389634923753039118305057645410174639092180511859406317372940183948529061511807931585373715527066125149005143762411023176971777147908664768830864956402602040381319680992362854333110297370471097678768561251013138118053016653831441249889617383375953839324641940221301405001307139313789893556564057881354280159612302342481148769736903502589642682389225735617650752849729008532053812863539662019223360890751571567346519194500223396791158052364121353802813809144608531010524646041606694723974477193636320736796342877872697728364675118534914109738121388135454825756062221336184839023765050618827726910047070057481991226852575098656487693711103688830127337017621569125924594894627173163573253125581005307967577818172785792918998822244090208027969792503164728893084669816540116078716984159415565416002084369466903439190332074479108815814446776602882854494895064957606575353344482938205655595061380895275936339855248251178460165699799805544528832307331608859052310824551899681227656391196641789401232113826935214002151063497468747209915201994412618659145332384383595535038141844697327241460365866327631480925579920030678236403555929697831420432618371068737465404381003521944018257417838720389375184207683593071753455373715508371524351703359552572644980281024670135728563993132165437017402332146405802559681782381117317290586436300993114417142631280751592592403075245155960992336519927530355230955539883626128255106156605544454539703179251596042849387119582516988501967495168247041460703650529856243905601528753099025776177047947151927266131552801011503306923909882632467453818809302628525236722668584082647643331471049235792655482243704008072223014778135856309930206600706915777728247849238110882528251671045932397876243122967037892826121488882339747232299551371626875767087936943045526618727044673981223522790312557021889169528498508477206600440510017264231486276399131984857406232081464172921924261373870433681081058282043127864598485274156688841701290689071978351794870156503312314167126176865155594091732471543181217938587146820583756084311599540027554180195043987248565192984025793301614423643191646513196808253083004283657053799428000234824744818652357407190831704161325510480521821230096905225463589056706302918559279982335026723939997486224987124532461238474591591206933053058923300402281276720975554172696984168009647503342898458347535056332306280475333490837558728204247491894607706904656803914473694799223807722777327224644734466704365486046166770493947705366697348087330259234038607032913094726189425682885948264110704041550201762557913708736366688025820629968534655939476166964780667720248666473956310978691662498048947441222739705547223356256331400663519983274791783641268781854949186843391169778665468959451644819175530627499997702947560523195381756212106357718747389518985440219309259755449048888627816441089924389095113096549973714333264049589526667352582040436617995531991671921378359934373053134041164111813231168728938772351531388447562087181029174962021916391238952161442859239820898923060079153153258613612958395533336964940671950674122727858436904030187742957271475152194286784829202275585723060755137444087807505998706754537130927010688872096750183895120318316942691935296503954477675092696000180883042527859594159102686736679084501802246187244958735189043536427411892792871363179314590883500676579918396123746682114680804737918782884247565526221500831632384889962269706822335334487037580524367599756060887756423742773344777695199293534911564917830565402720204776708185642985364356868824828918190262386676285712997607593998340223896050694724826577095631692084829041242910702157033857664200210709208064992557407476375270729283660653217561785301463970137416041917818373187035656646470732541668537716088576633731267140244194329450866376306716400478549996634305565902667648635860120260172924117759153127620692948247034374179728274647838432159955405426986588552873164911511715349287668503671147701635386950981049645620702081040469280719068454079798652191748763688172183988511931738993196961779077839940558417786669314826068783564859301105984125379186891364429685045880753231228611383129761622666487343411081822122573759407878949362834265364749164816403659887051047677562813902242590654227543277118350739499266921092322662560999353719936618720252980277126582055519902204733129874926634139991374466777225921474076252054420343832726607743178385279673137006873833514151316778317476455975123748353193660888080176375827398140388971996541016167522042294501942761699107011874957820769958510874822753095022049617961865332623114693133595019536416160873183296657771258406463888266030394317482217809051108956842293914782711972953540376283733809202315655815041297499708910506400717066232408904354075448350997387424755386760300030346056423546342554030133320592086467923502315280464682648316599656688704216604365267333527885565536824444900343622270862606840237976562295801378337599804357592499799418766420192357811609230462133349321586201570122465062316955630619174791671839284990644286147299767065002409271316566730023312790668075049713126559349900169462419397564518306540568870885847017576642642426813832547978546364215771910716431810173288171197454598336096614467966666912653696680951178833186385197494348661675852748153601141090456181736341487031755030163419846547188446239379316573717808182406658639909111164238046200100842788013961816857941574950453366582957109290794052409078272225259698923563515050894400293181515407880328187664219538826612514653978082527547329825389803546494595464702607945550685325619160390561860592274338066119476211519932177471003960986237707295030308233544904125283412924358449753822630546274657170358180960470293715086748314507772055415228326444836607723499870709960126883611574702521503991740103507882897193096416248108782463513963037289291977959300746886641874489444843318482391398462664385906606722236000476552416366621715980054491541398092205707763508222227600690079915555022482724999088775018770043630044688641617326603718952542781668338844328384657692307299272850078603793574018610696198611068689865207979446273274186337654594583284234627523451515946362856156146754587105660600539015918063316550084683765000694205905791462604418031168255232589625892841555128484662366228163106271059205198723706194903476802215499903659925783373055281564962200798589419306677610826560541489591037809547445880904114966248975699248164508019066347596939145947955642648656102109228750113129672553547100071797753369273943103109967535354360402967936603660138884559423313999281258542829927702254644050334327087725449519505395236607588355128914441494463703191042785381020172899667431493997507628117182859315876566126636269481210995305858852237086972961065335358660213349727877317511972357543061019547040227477569036002866961835663257912871837922052231940194473895821320738927986913355683489069655355149354443858961262995689252999121901432997085111467052744802668997712534750245030306560544944472881619211551129476934359545255570403995424394713944987929213208549518971557116144483567187560448688698491170006335392474921767244130297124897398835094435997816134314333035077838086825730668648937107910504677428472444539960359292708638164258577203003623176350477804412436608460460454461207210010554323651487375298547955100649116394113513419550917090471076431334507031799450755493065631712464569409991547226799259223727660412822769174543480382190228596926633354687978925971696219002996744532206523286100066402634576946769277837381141105081312332727381534295600035082907673468617474688333807599297397769814826260662491625102905310957523642298620982100174253259915857078886330064056291072104197164017159608209165605628731899699149225844964572547424072078047751008393549035254376545385309980703017752225380802885954462692949933890088717365514910887812969157137923511044780250738001259582877915112094410295530256816882374401268188065402652099320458315918444439932326449299532320877753020612111503784752803583277373784912252305171465347019975681232324765929764636308593288649453492760052013958818870579590865929199656461102939288433865673653054998400637708119454811349769505661456187875097676415731413081329478296916034974415315160871033435039446277004124079294859339502271936846683590282905221455190210802066667151446455323886420598554680661133213840120089738187662114427714280185507768869608641138632326395103957474829630404609417723967016620416164874350714620766427525777359508679261381261141649332642804004695589968612718611652180998833495617831689449793908298708622848059336343893533944769611159854084322146078678665005416394512895054410905215716358640983189972444653245856314984866838461183784683200773420346699056522012308854803179789697988240723291380016040334121380595958963025459973552299144944030787106090561666646473067113851511403649820880796049253856451887865140425304204579348559924956778093496748118737722798568989578485710389162316179622285508576486664195133109723543727176367769697411781622498664315435031802195828764623585769361947622272172933316937057716571984034343589465594459530338871011358796200172622789592326111255856345177319525123021331519422747615044244554965201764820455575075381506154644307619632440110184703764922357928964793943911761023204581375327576162487288726712844741801131799097618577587836215545476048578509735553984531942700562834915009236848068452328177229162758508012610367663406873781072284689964970618152212394986839611492929740088151347546831738205348494006901978704343356732730802436753719661052404780640136116510114929424889381020841055186999444991845571402446511301328723773039558359226866276730917882430798498847849791365311897872616426539263027131043241368456802638183070391502234203246750826651308499660511094638463694624515216628740031833671878463722388703466660467174714472646528080911652285231701451244038896413812344068048835959629396251947543072041957658063901621364081246229628828496178698014195824527157336124529208630745876948301372380148145418237965447115807438951843913980432921493268956050595373276122899958405404163546054099721407839567988362341416357135329117996651675587075141395666828361148620015581366249237302378756371433500042255509224125746658370014916291615980747415080382102758326086517842333668585116209841988094277125988061109691456752108742252070164564346327161972849782986307040377408704798000712317059283336816250446342122635861755588110715793196634002189936324091538942929487937880486708720357944881864636566539787461209378626479348987289292125553529573199475989834781487105750591873157458768129565319290818524820119947982890839613163203442872937455007342405602339564019811345779496395746772724175869422448691665755614234488277178265430902169004641716030566930824174206820353325807343816835547763166726162372091392301618798094055354290159547810207213133824174449251575464912610395476384566989609704446730191294613591458476251119137307384795786259256651585771042110719930439986312965229245908087682507792614747852704142265363740206267237016169315978406784078159039939735180023873741734870909880864420168069121448839318780952516000577865235904264895277001864214298549752059958868405359595559789618911515885922419409611769464625717982562960028461714026866511814329740363340320809949662828755127198649810750656891243616953643117765524621893426612872188003167125963242333803254495706639966281858975528260746610094820269403487369878463580967697636555193240356108089754309762550258756046946887934043898668405915126112083941600874395689243649723680220245955248258237916465344045999465936225974112259027348020900305545872582247023110030747034524697827883249891720966984038330190975959943742348718349505103397680773491536916024884104849899083037370417274779285990318535257219755588307290906470801635985090933517808635489197250202023777516148795294421999092496218688628949244058058033769104373587809018455217924908637843090842013090469669187599425634987468976530338382403520789369197466033008176595570286293714923484658779580274541844909414733266602890851423252557867820495743653873536122573667041796403395343197233159710311564818114968078775595665029646249305520629690960944030772062094908086697771738927852227218724396975431540317562830835026517391436234052542235193469943717451654346245248590373029854056973289913717933635833940253677808271545674099241197106886258770676581344518307904582525691977946041139735340498244607551787636543747690158701735421038562607983543402009571076416699705829845173249703451722710499686316163424116143745441411177063041668444499591972778433531452521852819763287033554326383395865459973106992999575006013239491939986332403635925749336974003177383277035409067868827953782440575425244419385865571439556596915684062372527934725701964033826050986836284273287948289099224962578813289993584573812398296789775482549635682194637303479645433220388889704637725179544915997522876155836512064963544703979237885441676609160702896497499171003798637239061868493761400530284928697583981930675680320770998306105202217065878589169033291692627992894762772575572897175875245541986790391396122421603384900160674622057155454888006117596408101264176248018110981417311530904135288243535327708680623708449726387105757836849060306197594845933350516950245780144180019704287521435096122267993505538388065570153837041961352246463947999893162169326562826702707003779027065057986725646464405383206565641511197132339348021313511472893199526490741173041658773048890514722418888138893472713885151057927660733140060219557204677118044542522350865680032738474591195616104844884265111510084779695836707720923227399049155652709264734886522739081034690603010402678422798430853045595633170600980741525161004175752449121908880762778712371853299029724259351518742325861116242443378499113618728673480139889083286737181282522712614236037118282879786435178524962533009986306371477210886853431295104394676873272103305564792030087055099122069389675838744720345150494599771083731936870689996826296827998566686983719073703258971119066140541012179835937921641752068047588086864837773643335239124449531917962247857573081043511341102268830832834052247284608787516237997082754172777440246416137396141166337104226541451344041511772043617231263136161788248931818662098367676429382231766508098081109122083113394506264956209901092157676679538765773013788114877381117358802077264618221747332588832958656953983976238728525074784139392778351571650122216176230321962933732596027813970626503231751655571638175276274755568788015565813011240810286027056835751610866498700010661043887917721053117911361806200554872994509777819791326251217563318759014560728730351136658277447266862021072875584843295487605156958962319502344474540032875823076534889368040102877250009240979918935606684777505024660249985136650093136943541355217877642203589295333914642508513152908377158547766112621918664264497764110505134407458377962323110520698201231431729508279657592371860999017715318073840623579880331047567360073820471626557006877525595724225284816420547487294445648450682184898042610008783051538914895166996874752662179727027023871837345632067628456395255947138352626634862200647690939184080315922652995184234022920257842296160074156860736702570183517996747121681422696365096381844375331894222062627525763606567457360600223661715552927937978876989149459694241762121981914529252827158503216354135504677315820527534497945269528992594166581216417429683495912075268555726187800418661861823627231003949714166676964071344609263695824297303716285593326347703123897532540752450863949560445699666482302492847983877299444330708393180692898333975470755110213980294224657058402662786998346391362937371391185009396532197323200477055186070751048098143232762969511115175104008274231525229791924122711326286733843667072706622878256330416882402316054081767785470375424048947763930382826124370721185066417036343165690518576208501309182276203366816170839140502131887981459258964007942645910610239653408259733890824100915561402092544150779195849665462249236248160646865064821566978257425725609573647317271960471763705567232848319189474683538990650861635458459850072009784839987482815215721252878956978645659073255155376172177010697323226631573716233960067702704018142755185547575505930037341057586501091748421113627908201623384373275291938857792401909660507620552866374011499652154570177279375772627286208254226375376729488413739163281838838698612522165622931639315497106978560378692300925772587530740406505573838357119674769613904988069818604052714569648203903073238145235501241989206765338510879267158532458253530624432573816084204284496042986737671987881756951527266117816291301701345943995401835890127185341192860014948073770993694410654196526547619535581160368789778183524894166059244224825412016816375585090044289713613072649891433028005181173673199945623524037359636340845668116529692873869999289424240859306940786399697334322442260258417679283323126087101806817644648126880619925341268206789223757270810869488989230945235797610214348034784757938105481800084549197299919891499895747084589797173290154715062245972455185410408300182285996228501927650258732293346053276138852541904774159445878679511920626315402165484690126645054520402659811593235698313841799552014975165514231625499991813842275147988669895421394063483067958407862039783176114610033307943691137429739537125331758928007194607093326789193331989005883776343758953616700153171446304251863628035095196479764613668568701639628482451832260953255602396695673915138225689749483555186695765150020268347441648677226738724852104634488304506327123595582048157026847484646880419268562076855404809272443954244681339584358592562425017077399316471043104073783770383691668556269005224080012494305585226132038164452720781867000340587654981469801219332545367194485979067803113636807057176031028659492481707607437746029810476805649690420646245253906435715790699501306948398636965810810016009794455652229883592762110826223213298898028359256849102712320532573483838826484123545385471159249839630753392444690489067810034015591093392281544076084541754413989994585616313124705321338226242735063763975891119625124431846639367795849469490388036750574236936472080787172340037920786103562131793935647229172483175761638449487606278072464244207752753084714242777355762053424722520890307078062096056332999461582367667360891633714219924876930514479496726287875309656731113552295722313017704717496982245224710547571108514766725388992822109066500197025757210171131008244811605344703683663296950465766741073108647535528776227246968867383663529125018643519535189080085833592371550328811832051827895799196360419443665893503203643322548940281098613974461415996857797976796276517227823432452632310034898453730095649825884083761283551019200206974022234923662352162876843841364485656738983089943117094617851560033318057433731105230031081818869455515802290094183008140991982718368071446336800096831109636323125313759887099299540140898628558656781017200295940407691430112098616747047716680444449304730669837985034578131826800981605261938435682905665172104950248222618609488500955250306020366284604581577807133757755966899331903276150711153399597210887523767338833561553364740581550931960678432096550093076659476714254219750832170794429930215500749847642796147128631594117745527974327795887438641251917365699556447570049589248573270701570633590962833228072794011050929897009766485712886414125998944347652857964434599026364975118168776722993055103734207372607034799925283299560041728041171036383602226910868679228353466495073333837766616326687098111257076107812473079794649928767831380656054055329391872789847603803593311035903953153533333167207091978788502453756889730980833464792299114867829046887168519608685365865620543834803859272760140132572404638503008085435428923049099559441643591130870375138627557831381576742106706920745745828798536967254390591376930923542511817136612611448995682684310566610230792369906775461870400266599600271753260396997995340100899573681228640057866461220858598063435329382854921114241744719319397400967479572294394667102323027291372198891290821392972794852108192271248165160977605674810297419584220446074030159489689558785303176394170940393174874533756900851381076470098392961733277631702322584529803163415156556370272698549723548819956155794950584506632344077721073890907250589651337484449054853142057977816162023318459101404099736343608732466033154415751872726039528223580242659445068298118478788839898271128333022563618917844809052099864498721884162227237875751932554999634674687945827871772096780310439553153653873819226331629054984032521027783934895337730920083765674058940515989280794783518168524443738013381735935112416670429382648696454104178885693479658991776677857239266941660936820536462026339385671757177274830942159954263223091655914539472822452290363340045937152141766098579479611258107204340140687809104159274314989965501308280314616991981239999158035050613125335668451613386581649107571614321736126567998817767842349126879813700774830016841299211084494987999365757481775089145726694021137326791414650850242414266883994817401080098063868726613762571647764627974582885118629723335752364729262974174132703491752379156281581761726498542838199031133462238332889529147908231344909190652212393172201069335797763764957544667354501112863171996624472112409587002512354678417457085168145000279679589783945884074141675395641929521159107383623972940422724756675005039740798002528964283595831106839336296825893963036161969892949922629405520314334806990237838520165585585500428733190179678293417025214996777738535117918439489924376357278534575517127626588404507665362723937420221744850748536471037197904849072368009668004060250535272939060566155705564984378982718129475085145037377116603469054557356037190103013421659933310754140323847772184203809573457210186846716344023453116702282426881152833537882281928869474530116904144674391016108424842863162445251656714705304663518024150246429603555348567214183593141618379458027604535300952737356225324026041337326321474113702223078654105873090844889927863250339686922551961310074755515118436014104019943954469423011301447193650454661037595773961789573204494807733314401424208797462338035113722453829401428674116304021406798305652593588128888939501851905481970700060406524726543525948063812876988969950083002783979697198519876095447372587500256402284258677376875417538398442835010297564981391248596405510594292527289735743486169019077544654945015237156965928775760259949714335540107999602239316249772410492138569490452826571056838067267844423176791001279793298442507638373994117078342595078228443899677862412452543282565247034595839474251009810236318069236200213975263059660121670739403221016205790177674654708340783520213138442203890225543961660920855032666276626377740884567811900817635130579997262326666913553242339476356618493847114722477536884264719259818826748993721081906873364674238701529131537717786604595241226236059753533580214234185184634859929975010343605709164350028095222084747317301947613803499192605619528373720779529133125609588297828284260742835835741908913132525132687086088315129061786715610374947442342104414348344121534029308608862322199483241916204241140365082269854478233437446905641104397402338948539666689168958762507862494924130716384205156695005688680307303023538157167584714683492412582466910983604544383902564238743693129083390058251579410101645716991385846514129823047883039878747327394136220299894143845219631751047413030011854781647315159394955660728331103977424117053678653147868682500124556397920780259330005345618283460216833778114774253829727153120683320748451424616190345624216352763661120616242564690337294215338836140843849202288645290667698299945020239845614985939192307771937473418832607037189953825746529866226511728269378751361448860960591685570763186175495283489773012641964288006661243785704730869950711877187216444566710083275496195743192239936422198247173912120060946979956496330517614479108150904979759823006569478898745287967272008096603459890635699568563414359207843553286044862400246033429461930561418277579440120692792002804318517553689465403544483488194909691183944696878099799596951868841689453813900434852617321587750645863346577447574801413100304771630662219861817143697805346500021998862386418494502483403513378863049418698087053624160020783824299628874454913298505786977063113075821601626568112065032752309766576160350557517773395313928752741523548754927404623656977013261794707892582972390860224777051537939953367629009021308977185131955280759116286323268046077613086524756920263381020543464962024693186806778070829433950912882942201536145897508123931778225553025086827806025111848582354194253436935543741227597520345559857799760453007562231920969303579924658281807634768852364027903979983693944858590284540526053014001288649377838586757882989411834257514071345734197820551781488272259140082628751767834666629641833969266537191037699552863688305982622555177283745340238728977970103009868094058711186426890373684550100241555848611976083242267666978448903658687174070618373862715669457042958243697722303911842476351920452022375802026336023294285809637106469221356781626421898064927814666774171689654030520292385000978817089557719186961274685841679972544805891473269451018491355669448193157266543621640964760973589088025557690817598364644068075669188419116098834841754488919476681311493806671792883805261372517254396699788316515669790578221192440676525579400261393693151089521752684616951259478579873233814677206385745062232595396645533227713513070307485107320584855167651065996033720950871830244830263995033983746489055147860500382213366114891804954722324478729301400504668742105462586214398926314337294153878744370323279353878794340472301086093442728421853661489372866114248017013223509616962869755137636242379299051343458009095844484876193300172175538375209417891883298013042139838437529558800386542136120472924220908091985142187217852962288854333128543346112326195509576500585724672383472197357832474972255973818026453101386440930926311723963813097463206834333193009916472913418382213840640775793591255514237294240016599791859564930955594858545290395220396406610067549878544656243887050327121742326933074392847875944315638334163925996248357690418381614944992634881607578271306874748299583410063237720206797073413082931812723334767264944713603699346608951396851255187209707152817914095000541646659392164107964355436948534467433110456177230826384028512103955791317873321769161063526324000248392906265954795258679782859752663985699805166175358366835391892162321090580983624690885701793958900177377388396361478271038332473599437936871609156259204015633437608509149752560258003133224062350154587624300660872409501774150780108998740071166143305282464030541088777578055843694371666611569607509982930906048814941117076878910870599749637864869942339034486340777649616043221164694741123694056606102761584913160438396461200612053690750556686169568531793832704489353925362044788841709567127256356464597792836191753625396682755705311130854683753651199154034872903434952150269034556756959219682210840455621121261944683727506710920005188202852616837850512736716984741911485066308396245561068408089885984448155679171151814356209283217380950981478765765707121799152829335430717134855272193551522273784152343060401069669692796237141126789132932320884030288319173310071374122570820851699654609748144821843053934131456151025146807977773320051617537246585320217032366390667564979080719915096800128219234584566814998809610031285307604128895499632155499135380445477569163781595551179391917558937902443750342102427780594112227229282990430154939001280278134165242751430480510584463081193380923070380247179711557901913729910343193090802856102866667732154541839355043775438330848541687814735151493262469004796227615733696590007757593575711174720158903910427112138671600932484110052594131863376729718124656601084632476383508459061558473403887507493833891910133438377144859344654633666963910399518825271938093343673940786013811632349654349676970310145781143428282377731791899385111525097187289248331805423872862749476402651544734444305780672075832982010444437726971697049972654539214104126234355408644684407040008748409174521726964005254215786714767662492509244564063892383826347389468661338877119984046898972689692465702403073540638840120674111003024579026519944608596827172071355209654891716883135077348287952246206330404257079261974074898075300897037005790352238732452438293959083353511110203904624260230157063574280398342306865940849035260676051582509219040371539440400716876076789376079283570285106616967912189410829518092604780659193348809904339918129150822974794662705806039854391160906465005546748493654087138958510825028928925374170769282272968016980098719251593223719191101145889141088321742299053425672083390954269933401608371132693661009374185636372239746770688347859858746991193426197631638577563349013170696635247902927103116151937669810467768150549448366256241784716542429386131914377607221273662502129459779085963490772569526382388029615975036945005649723051759811912578783725597749836058002148913430966169676808919864218053158664896746438598106632461349632472755830962086113723887589142592952788941200427106449201434652292824021037721098911479483324157924280411850913169086660318572819336078082722693287490485924490280899651666202094154094153815084968320139814276270460466513016001463010210027316440461411282157194506180354809743002946013853159897088646272970454114761357833749635765500487427323170652752498207487316073480532985183168475792489914294284292199257179186793414728574240983223347368104058544484623330301121326752029819207752144883977764016907277944555251503140598823889364152233877903940948721481300610493653065173988137532249839117185392188657914850176988232188015472804518745286707111238102078353986066408804267787508241512699490994446328006641066890852032597090840332747960813369582566707242900066343558491552410831124912907071599255524810058198425482999072647040537582349814513761243924784088892981156840096847859782301738103531238020205824217731151028850828868604476392220319125143340279008620936150389779007266680236163575312796066243909797468912062267047412767943287254372565863654726406886451698023412391777897027519846514788336852712955461082324651138290895521475064851132493510606038293954565147521556810315046541857238468664074557037917481222229836501193623573438307533317957847089280177684297095432277199982635340915934875928206944297731735908203507181010870836820489779026245067146111881445842160520467152609047316437170472112321086256146125836578814999633784317730474786878061328561873217982723835083614176091578411551956108919272973673317268169270901369850241814934531917453917532830981937850867871433422171046974419316379489942679863967508515142689383172262670977025460749594320791814764359542990091930339565185193633627034652668839466259991135182439238770961541471648018565122146530103105970110548104874186283140221452053746180740631975331006895161060025143675554453203429445078041684793038677504510311140322130239388053966323882950100394810576187219177721831189627195549340664215660949165514998246006793815399975384571481431400282267228014603270544362913543648672923395794552351455649252853158821824617088321318245908223641031098088451685523721029126590893289579430803167418462841375927249984261693748535238907477950179671616168773229211271054213869354175523159290536590817293814040933219908768801942991285188761151581708232806935312845882729610555842193007047215364382934971103450476151314014074353616601620073405008228273520805993663411729450305747595527463473456637922125817531317706992294077944759783608021146749418401313614639160192810441490445711721913579015999110727706368337036544596259128303356339905669879414665853903576968094821077915408221485290319202870067370227280876658254261509680792998628904895373041488520773572624788620665867691535849782740857703105366702968141174315009499554481701628306121694637209926848602187980379420897440928417303007685072104266149088217189507902689639478579109961093418671021515947366281532899320939553460735593390750793192877939537994788330458501549171282604104133351321736303167565771350899505004313919636782098830093114357587103256271540949547781154638098520240463116920439556794686463316414284236551690040601088267844974494452308328518896089019939280316742199846638956510300561348416467082241341513883946487061575323880967671320814891199756391489776029612607834784146397588626646890968038854353940789920945632232947522544419275098024374490090643859903309885637059160431442354115921493485055535927109281530460676770894568649703962044166662333925644151152802039683185291313012639745205503832832047220858741823842918192382575280656785265410872414017521161149164043758216699365445118924792641793492247738194315472543223641671053295185672330699388273767360884377433172902812930145301165205926233942190331182622286216012441714253369207994932413319128574252101906920050317381241388628978847412775820792053184124952195088851550489360875339121717378643572391218194653227266359529121185601979563451269189778013045531665307357432763634907113265968695014309126463173560204784689797624186833053461136295285853762003467779847342605200500657883122989245271277234022117355342414129691034485928891828065856956494817651206096392298922043496078867813205380146592997626986456101696765086808788585828989432165745448395413703933564971635946271818397989955827731186197427655642187566584092963883734569714302468857249076261264229333809320045674335730104898555541011533203684076947103353395689863679092459394720874946489872033976140801631161157641525408067114401511638724053813490646653259638079379014901225785356262470855279877202918325813216316670659905161389014732126230141442071857667650131725469203373457351703517702803436819182094269426254037261790881897678894726131225559540313436787835863877290688698587202381739316124611248947955266727086722678544203499797428214124467738168695772298856298610554906341749727886120134843915414284120983164207276451684824775491037233699790887232385876816987863042559733133408682977067336711432708686437667606149925709018917428746543892672983532643694996135572899007229488210491659483487415467548474445175185170077604618650697930187895014723335960198108391480974112309812776386641963184124115680260004285179345910539508140508594238955613574334374287000879388692680992408799108763547057510835958053244081507934715784810321641799862508959150828671615621013659462179448802475942228234422418324713169608763272738105649220023568761940338780209290873076358267694958246284734307358216445798476760455014205798401228162217234814372276070758030290247556194790946282853602099583501998140890763254705035276674146935025073092893349452119325795839457048124147774361751407047009607594534402970109608773383834475924704681408736045447277050194622641590270300030505425220731806051089327518416880866013733743278832229819562317778099087340904938057832247559017775861267921269689934791885933535150550985693494725852015021105020151375705617050130601706401941777207539183033582225434751612134852754490382574571173504710037141216102980910668937821652230502095350397500754015754954485606952418093853617429534976218300791871889648366013432779398382759422480524278084216994147547523689258080529278115291174999305167110651656998502617554075164504105459511522639481054643423144507651580132980080410373372413360724035184970939440301529868043436690629413111776772412332885406794475426662615760131809562402934184719340084710981291879956606689565974054622338142367485206970049537057534674634013343843995132439620018393246535854883292474354487631344543548762262735335898208103321618443851481731858159241055301937912698584220403072623637519378956092928478050572186651106507894546284991136527651530289532099965347057649014419179004867657195618046900471251990866400062660325793569128333321698739821776776650781555473083156391184443953054529603499281108701508968778307270481830654585212487549123828501180709598459550459983834881592081117538079879994619740869661464216555353047758083607532371275059990792390833274244720997766393336593361254629388479132381427674715009669091919209031412660828042630473776059920482609584491448112359986356249233515228475420810980341794347055913328374516341480813510328586328991062629534883030091351679991177928498432699368582775144780344660007681978835371196460519437801937548568932810061246063351535908397975865363274807750299645339343438120596841345525537410224794410615193480422955808683730418137932025259720654596100165089357183681862834434618443881238058716857554383812541346094660217491287887748590399486498033170104494707210070755082152739593314837322285703229390428623346104457855836979124026871607969895696600944626102955773814842800188509453333068176791571636232099240597277163131211403444019282905269834501833295695255242271013368295244755791041165401687206955595942958581674789807879053179339446939684352687566901733037832769849085562259128136350763637510712575057666607541651725779370713206071375053815494445223094953573656308478581774300993003045710614524731877381749277409088474643274737553610391682748297049782041743180766191475020180968635023821943257676224027646451297337518554652756761140462824712354179513463275104804114753719737965455324508413442110094206028843556437537164747981293040486808361835464039776566497913665890965707287689286230569777382727722214716764759330516144664774189647094539405391710275420839994556749448520968977950019205957456775286881421014878464320064472174751938732682878153431709986767119241192271415804220693016627700333972922641249051510726745671144059136072483255539170301872256755403812766164317498872905399826352894794636737152586622972871382845552548037027305909797622975230603029549566516471760818466916400652468480293722023498159729340770362450337394735933393097335471623084160979565293854208054243868015389379625523330210671921376333011858371210313646891202415040684818318048759873934842422651753152393775243301260035853453500220258769781894026593928398645045259172525935695357443676477437566034993124076788869789986150253373259371067647602156948368435603443041273071903101169339533015179854251613377311032230872456757641952710345781875599731413779686268630998514853187520625576089017633034227397929780061249545045900396921159299684103069974827666822855039353752810569750865889847724174421349182763051745528960472421599062871637819179619995664402043161447318343330317064400955056556197095502878968559388109931136672008664425707923355005939990913238963376972104718584052067183873689488280134896714932264734827556347121640905729266657654770482689670208418608515128227668418975445700308561633078321721057454081844557834478640060711714816949183470710742818008312169943505427222748242547148941455383777767732541763041591988115897423877772651017438677243182973738343645770771298976598223895489576962420563691259241015065344636450367952642991130016030816383363787827868762079893427450551792589792725848959636713120287412385248064080612460968167054719357405857943127587143076979977976666653005216231093176498575727506936142869241966052299830644635846425500379919189597203757930271881958258044142813096369377927588500348215041830144843953124161554016595708866626971093557066481545196586604983683154576771607465734281357232366529285777801584658011779195205944687689145816075525858757251398074852610138264349848420072319903772344986064587243506002252089726924690995402539518008736176267331947423978500842198462440589091098108214000333234443645465001168396529936983131955861719241338244210435479918600882684290137845839744913375188359118694146400457699527498492952819860150324840265708966291293742115369446187334433423588833464801595571938652344012290170899504745767062506848131928315305065765813181692100798301812835830144327952353455770055169067741495780924286581534525589692325764843564134953973180597747120491238963077206794375814671945431415500576407179668434081392439322491513971807266622281110883344788525048657536644431552857754400214969114273527032263473849676617515198988220015537499688729941333828096186412617233026932862905372069832202912783308540085782731320714903570829087381503910857276822573397472779965415716711009849084383893652638960559929029152190027573656478611129425365556680678941933577947387779053523445715823201922708348902359620224422740775837583114197664896281455498356983935628971824033710491682001923752571113312832295931243874394013329347905374330307980737733077396246228690748514574105432149378337309277626073230166450648020147546993659862520716022823018354975053311607718268938718402143936920444554544269764694399994887159641680261616406035877375597188722818789049794090964234975258580572276727082573150962557128273091441994152054200959664518569210229721472954396467432787754217926457515225646845595132019927902753400082698328650164155452446858402775598621690802496492815147606526798730004850077690741842233232805606812929339448054199927338645331459275910891812696441886294408715811829907724542324679156274560178282909224888525169320053362067614049332160927185911870768888403719737447309168780117106444634772053031800151943820678881761522610297392042215936261065047627497818810217379037472995857073933419549603561397451707127925288806872868508510611454256592996125481902940839222825827056161647305036726942438474008802176050797434977766897329023458414663991928210983484673784339845811575799203441544566660627639599213847628273277537267265953553450815430017922162194442630957510852330187154650562722660755972556955013383855333628535965517414055993917043064867047815240899441266832289629874836603004885967454589013365645589770944770413163547751346060325927323124344125157203785552350798940612728367121661138533215902129882997011897768618856292781967930772727692086499573538253556736095871256552099582943491167449660216532794838375753844530241765871871827076387345512671187397934897780456779825252354086687876078690644081130419755890960657447185436218084442176893508598099377420877405724146504405562115462744209943145195487977993275046995392102208986576322394185559416743188672947127434464026356949019048803087777253955589467847370118755504697557067348677404655447118944957731769767387376813381993593459762090748412198053801174761117363455880535646156148895002009973826684691551181289394728330604076308318972295605751530875376092739853349355527009514225174593092499093265571401389188059448555162008043053419404871592069614108442525389242709749021270525128445530558406082928002497216215249736164637261072531298367827059965816291759975778085983137170030025050702178403942863160856266650510510329592865664650039277675018898423114077429873300751130281203538345086941641517874930593677493927901358359234522872636427190400107556792086941415918665020524325427562693319475211290735068446463206176743198574364914206398686923988428749988754114030978658225731448363324379780735600348240892026403928651963394921221387578795589167601698857742412346997811747174269823747487242894685765900308627718063195200498792392635306937777509486409858251017233828029797859419363912462810766897326893476898399162996159257666408725170513660983714496396045866849579972137032848767140269480497946455445604830798601699541097251415018690759692220720631942318273396527022597416909027312555425036394582437105637081448849328950522473335915027951434914940173245986540325264449792787626310707240381630357742130866089671887450563708214049419914894518211101312811859680515627079315212840912027676148942565312030910330476376903049202059034615228127347183893055570135475042397293549660360402885493386795535882324291626870914561229202189798433277338616041868843108333154536318856619890936632504275949431516254050248666207496349229402298835687924631571472838907869493328812743022854337572821892383248796512773460670397581520186341893611903176644921116841678251225091579058179813134059354669186276534689302517043921938517715508302370018320811362472877531733952269127822443222089392265316353902152031302251373397192574117566650928621455969769630926957997457385315443242441558564730007955793030576097387604207165072336124345813457150870684022951222297947518208673420109295713787525407756185157204209029626398143621870364507073272548420807460576463215519356095321434768590493504661890674658970456916616260581495939654291415018031876484032732916907733476618231013124581943391362345456992282074578884084105530589062255545678594379297315068896550188931085676915838822903765376119640847946612353187194464845955218716601949311965621573090217637497064819038631935688763526988601141293753885297601709441323201607563601955698576454663539606719443349095030357765084741411592458253920134845762764429713322801285523901575966812599480187358847086175876746354226705523010635385964627882399945748295600790490967280537856225011081665361324630410117674685194108917361033462254292969623155920266165314359875806260987403235745059285080257587132411167770449202015255095502291367970134136224715771673366254921886557021028405813938217106298092036369985307460515116145177660863289898007224861452832822502291351758808929312146081469355024253845815660639043706656688186238700558780946650586527155438478075128240354278862608242343228118083312167343835491763889923846862951355838806406085369276354649541363369204013275570705662963067427796400725731434143724145166184553372305102014710167980708956547770986526164656859000207356241151363962375487663033653751771877053623622058188273925580614074617401405088921215794623691081264533658477118243825426448248561353127882053113258728561267264585638234824272201059393617357980579675209195541761911840222127330871579293740676898823866663201938518308771040044065025882625412395912237357512536957315256657349103910533945179462639833993246529047344744994469126369265150371219097547383272980484299605032528680171096440158794223661579319977266025117564439500282926642262251993793443215681042466243131045230936209424339561627678096754226152810697997774942078297485753948648300510190141525965327617618279468838055873267851459819708243143960147497227569943545300093834072577249067797815825374272781233975979069846090974533640778435338041079516952037677735426485519778006108726861828728497564111096572549501428659925886595171891564831642763529344882811814256680671402231967951500027657295606027279664607404437426375454091833756745787682937567201994565553695682189585199885752269183447457782815709472727181987874150584534841187189222033033466194199327288241870705874378316765374431134323758452736041187053595179714346551613235830646319801199076518955308689687082116842048816860039958583351307358926279436530957146577436674554698287277633128100734786063458230336417026709054355780603367558315541630463660323924170736191210305616872079852518298860340015721246032803927017990352692973415239406967075626103107460857478128772177498406223855028750853696351396115110101347989840105205681662107058785816837631492430595887588271032813662884183125675365391520260398950419884739848604094146426762014373907743528399955277194515187225855956326996020524916388490901223259744196390457950891844064750322084745606520264992444115997200369466629199609467727354970386604593181900588718649253321034998724294246520451366327872312124540999193801184008233935177812849764953539807715545784865346004583121771959088144494403153625432835667889186394537012289521162171780314476034049762391263240144618097488029824985987560167531554661941214780449059638656462276240335596994475227857051650869548396814828084628661147321465309918103803103914081566076371802219958466347168050657845741528138905450417785016137605540292165046773577099857052805246542656641140417567370070972197942833785992474010084347464391807443361349404107525075167342113986253313907002339965648892671992825761693684390627370814256059920351951883955203399155627266241234693174469756392356312792728907702222535838835705308723919986418163523702852227072717779951893534864688143193275730774312669278848559363127301813025802439746121359565668541747740968740448445990585998485088390071142919311986887468184013071438577959206651784339158885153095032534005358450886014368693682424625888721021618801408671495955274047319132896588017598453327242830088188140082337063780561345042846975238254141830058344710265568937286368413050066322417147491453714632539842353071235093527133272242678291151538806850889756556236897722041986718466007105333744395787420469233416687219048614679623819520672772596737152607688853266431264721170581480074115952025819290809982345524186524538034224069569304601954587363404459245487165679108711727173016141973427932002101163293114190637429455756285798027132858527936115578730914921769658255250487555267015675962756537672260932142067691578625252781424019404930968572632818714324038020169336617342751317611030703269651538782103603681765839303926501825931650142128009295022684892912335345007170855819576428386775469788499320762563881138693452723026437297288996834093482899111705248128872836806897224270928361624034513911905668627374046150518909512043364558607019396847111291380642742007717114075584425620967763541258600158963585367696312202955540276253694782150937954066872483255124099602370560403441739786973380301423409300525540286551694205294472284533198035658603845754858775959338712561495605871050725259468282677268164053634085695684982394917251119822323135153566103977397638092300508656162496695636471495704033339647638866142232334734510296087846905430061126093709724887082053719612085562773353216402575509594239545209216712266242935082871064892712869195747449945503608361652805717245323006558896265886511683406650476555647073408113720278687518806457066959122552145919516316407207438876897995485009304006087981082696032770774288328844284957033162165467505793396706672405239110272581157077226490129626535835062958875973991297500400185507537667592765188997429055202953712157708713610286156589019462664277936689382152646308844703578148456806634321112892349975443620498982837934189336795682328967448313270555330202926831352974987659712098995943224121075055396570383299954482719665255571886052461535517018059678192311732068246256035677641350037111703648730706144706571225681798508065403947516185675011363392668326248608957630445068548761145800401126306420817439062415598162400612127572447016842668349324382396199865645000863723359372024630568804983275670702182037129250394819237378868594806717607964048250523295071820966129397402713589011789627642401604553349867772177316674779642933751983219744596684704571871011793548836828472076235679557113308227122424739648203577336415053438179714722654338167439507698030660385697484186652130384115869840025274829817201000527287683400622896905975676173415716890936468908724811655621122955425857411068460262970436081972956458948984919916007720026899978043228184916324529162992288235429277922025484427208587550454848553298924854623240651871462064878110112770608137732246798265330265675554939497080335353600264816786506174540608596869227280509837042536650279221292121556395107786989290471614657219867527763444995298872418779206133332278045730831406939031287701431351702152858191947466382006631305589247297247716129597661887178151801716138697777405530693968314274384280819153320174784563086366364839617704765684954826446471321731946020471166261535873706356093363468983092072280962582815082945517357008144766293915175382619225638185047724737535686882326255330841114876244183798096884634630279451330956518399487794572838368356225008051274688062485286250932249044052164014271503421930461271182235993290877051108743360863193951159175680652876670689522028860104450492241756182526285382754673853868125257222476471184746829715404842111288662783308769670620159505352279832281121805707536064337882459963992966046818124300858186649407476560682709541814049583556909201697062944163857965356126795740918812010766667976669398687954392174396778704431858380225902459363365323263846814910011163981879551793524180695877056682764371798502651531640469195000173963817311296420817617878240732354614049768933642483954296636600682592762896282454847277527582958505662092135234242254786708116817308022001225678865426135950132897364304986030009981086740536954078582963668302352327872613271479785441365153647966704272379072559542737548946882229044525380421597569875434150227587117927010051121492122861661424167077906025392098959749098662302659879942451276967592813110307904069491849772398127671473641361794482065944492968687344472202999042493868377365287232692374685702504019302256581077987869449329181082177037570248521933286621762374333462769357254606442590885132642842520857226968934869873907985120861186138607901066813258055860187496668045191068594871600686957288554590813444734998735931263096040714213342553588001684146258736291255507590222639404052337533840565008422505136436071177769115679398806136633869251300985028523299039488501632602708857238924044416016250663430088168421373546201542774850300508408062701883428735670538303551794313024697131444485228405023628751701849813269049230610285901088694786993902498016003225632869967641867244550390066886103553983349213543693225345069454282884759549893835989836853365653866958032007546765189098048295154947078717031078930996219164747552259156714613013546003709357354065687026440933794230682252436293984287446093844145894041874141576184488005827520249195172392064242037949351488208333765641732354114662550032131041546825696506629178338174850474415801168052580548747128054440667503005117866655705934501828865121167284733899296264143652108474524960930713939500923492889030936817680821856605511773118205507205154531420731361321866877991893943707236400883262792894644047834513831805030808251483750073624565665154361719528597008658076191351262857125311522987414502029060138981076347569782831959474125376645090064912258039908955182077530112240578125990837289095842960652579642435923805759601428707710242399367241878344232291747993979863665744117825198336951168193217973750175932490861310604946998309523243838938617311039272690466038035657917020362024118525249604343452615444893499862981688996223106894676023781086195778365686142118003114474859286896381897567798425696271876632067996787270173323476605828384709396478157270704476169712282727043826690791738637727461506807042938449838949650491480798881162534692056266286021028302991343244375765506159874076803586024794674129095101052486843734898283429945721670028242699855851167303607147062848462269654936417557785993220609660741740548541201941914466783162518720628996539486680516789088854701665808957569844056714639580270986714432885739656105582864401591591727050270600369607460418591425065800098972739891058581981151366750879919504367712515912522998526413582812687763858781009720779073308951874659704358031741856250790194246727992420691660431437410502216737076709255571575647463838133998936739742598336811952695578523115087554911458263505386795672364981220648886632686973667792627074190203195563124220269171737971014553509749893186482856000920831736601423013776027026497941443065227936282204845308582206965644315167058535354014350866616198872434578130735580789567911858280422254511393055808752212822177585923764691780150307473773339634402043463330530385983983245547480529600681467488862913217464830580899567809499906878259858577801760964020284663063839722051924615719556592845315512076197758755572561908882078011730148352272019494177135215694543280804463365437461259808730164501407422152677188641005218372599751240845102128276225629869695250129595457041539641900206273683974487710002204445529847391890255650786616246612265403287934223158368908874359087799107328106497241877901480548544463058551057272547490192464488543036804899952818205594187437478306292550968698473447408476276957891509534348541963384828155545497390074066661621659964559961647790446075975949454406215483195957516653256397629268227276627188959045406098278686148466200992288925108829546906005126542487511268215987792549595746300657132877569776021645008107766730031940159537959678450334203489279677451654576815757061182266108903797141998677905807562499802738034704490519787478104269711436799873248273452604698604857683990765968041980816486625807149608147249622232354675890013125750081938375864388317411785836763005852464571251426937170226953327188946946942881573005141636249729680435352653995076060311165656871257397341777235163651561704930519995860945854693124690746954730890727951603325520231246645035408646950877373142599922443584296511965632059705455605734254168521599437421074322521881737537448175651699212523093556052873411909529917123184097260191183323071329865652847687469789985115714903715371556972330415146300948488405711926578466319989129573267761494001024153013786426571929058738521583982837182820396074736530494714928766096133547194317686036960819096496991706789859847593564264920794986176524091760468835162544742587978910972283741024033237389923179317722487378281456502074422015174937049819109778371361267861448544435810686434058793032562217361158809236882274625807990254497862931195248304977285173758604574445364917844763917680610375588690383066261640131316878509337818163025607769758114567123141823679348881884792333385589195698438338497307559576401149574650696752307925257517146456275959864423687792868879404441083305168983366891764170990705474997937238150347385945025479789970467946373005562459801950950047055145115314421731619363163094159874996275606911096589742400627336647749211917302613505456981123953921066465824127078649432677647160393502631804264089207363212783302956223914360445422939503124468556145068296496252046419646966521207845180510175569085523349019566584165024813236739871794554943757953741319043936526383145147781604525403198995170550070713724938118221366078472294077157067412931326925286223210532623987883603030036850367012731456943140749646770732838148995025164304847529617150585298072299195569144913917642867375584555929937344870335605475736692859031007749709446600256092769048204602873543256305006228978167432478861117446381948764236103199429302772605870173219456945538672739665319268488136815533063781178139280289143670500506878290578549104700901934683777597644744280410213253784452687104148608320995856185414897885074560737541163534049254756624235896566655846862034617655835437155110673941296222016784046877319135931942596020743455455695830629098530122348037223177764982380121540975060931332338617862930692609516185313239853685120398993463210629341499481950242365218217543133836484441420081732403087079731825604685450828078148229118757740623714759556280641551078813712420590614515576888287186575962729958786426209860197443354781809770931482259425191688161417592103675763172547681746009447870683767815174022404896619811648107921845467960627637435097994315644801540049709945177358005050538565390195124646499616505758649831064271196889487421678570356332959627909569932174711396036133810945561796078482895331096261869095657752664087187438014846679225829875455522897579339630586074369818299373903702580083822250999507676445863506043424746369156787666383352902815823391645937658412807192604347536255878241841368823035713449516933310111839437187585623443910453196646243122712988855787209215917053819974625447108057844668586576137015765408869046802141533121241500332721265027123195954947862077751296395808392918300269693383440989346032646125017906063036768295014445382459721485996525861325949762015103777535623889916064580309240512292396807791735251002892939814677384530763340972894745546704628394838641895376191932044104453365529774748316567861014899440103347563897505551767808676058637513025433142337577229084618275066627655192556779265218233025542923404916409852357973522312871882710757476138921947317547631408604357515916544014640509541878215576105091678475948091621773866183139467891646102352394672480403888140445082483428808221703225473143803878189702533469762024058229310959405019085454778006277343788384216885753837832896270164102893433101165828237297849748344696555413393961585423036413710089961067446292546985706441421624134350154876491049743571069825345456461947974184903246572077600765087648242295032603307435784465273164504255621336687433022984322938409973002038331856161349256886308609383843222487979455179026850167360334666872895096283001358981960866099963212011000910940799729463116812660609464593676923746152747617005630780034197524960144015646580606199213607234528212887697889836254435907696487487955653894316914730784158642387000920100118000971769777903597482981219350805820604780815786363892852091930573926907222995534847646702419413836475015647493058056898006253506779921459289698487301794083460206653499694197052116753765751262681436048788712758245224672442838939254151767248730280890537026211575929924169158439750950612647365178863825541766795933678494009070830429856121988100275684101742460086704714130375080863028233144272871717301492689754538013399076995893286842979787699751701620536927299503625456761674666042342411059635389879476233590049413802862618304203762863417744521953153454093699637965568869211252808217244477066381391131800155840535683603591444265850240383200421982013277740550303965817441630265825782945691095239524157132178512863540413544114752453602773241017715530327645173557662266679213233072738798523568231543718405159575158093784087564725905343279835537640959364938141115664844085525772810203284061150644027380698309971002566814900983424918244554260936076424570181519892152589246985701432947293855556337507968007399185654442907319005076687768883155260426190847767535802131527155591087576327840526068324811877459492877899663478759859918008568895631796577361439314411456450760866216060777933828784933537971508146896878621010710201145341301985358605273263777620591156439852794358391029337177992079489464334922028997100447354362600843905753467391243817413260068217807205217810230371857019731634714526609701369320180019939092108601526760175652461619993287295266685739740072182644825397011287057048811528823355412326414323207432882926150843693629943193411314598163957566647772242207355242458529751506207398110944594509030511394456918627890363335084099335151214828180409246542791916151890216400709918632604402770543609204451966316083026024382923094252539104956009918574213151035854597864853557635675123308141251909109505810477864643111846722279991241265794329942388780793541633356822551894861101966139172494479809990162555475325463414722169752884375551889337667442574987403819461190589138988919151280381244199448158821081169052658622169535661590168088962119688708394009465877281607237143593849321264451316962487165692705408968453499432500843495852069190890592088865216004909507972170379194060567017668608455086335524988458115306400537674521637855893240428849053557625765044460701985770451112673543943302262549928361211194270178636619490604756304325935152894605198148233584174388257475129062831135350597356138846562392238110825226659758201431304989527694184057996576624343839874651994026802352304987081620994730984785227252760779521080182122490737336386413872446513408267622319149844086163830400128876606481135853709885385518870350975705615435653562138752305087162049392956535140920533243245695036952706349974016239967025149265813517844268150840741330340588708224936868887865117756125965171034144880125601589153116371043687553225581804088684643109040692798942982528018804183217085783346001168570823505598328931999987422560654197775848154159369983823299783457778211191644212534828000681206906140815947954814379581515705600598009254465448639240796155903814929296310086359492339900844908893482836609011748148732531016181769976670128036584275463855284862246504739348614959573653301780033582019122319148346971916266931454561941266273472305411675638064082581440559565060256234133833688037551456036736441001513820154218062068645630302268862501969050288167619033370706839939324144765621282025228420516936077617778834616374130798856661746868324648805699279478519900502240051084294937147265450855239716625092605975788981824592653372014522288285723280230274226240832792788155300170326853709029268799066349348403900785904319960769710954272617408219674632894220824174069989236155816328535398511869684113628772252369589857087405562705009044771589233879152377522804089674308114379054482022490992300896209911381565845380911091986981381583432203006552416215660612858685072710023441347491031589964461865073674128285970825446543277212846525440272512457078447635932253844609935974455849713789352042004729062765479511435892205935729398011379612190510267508510860526498375869427359672656952478053669689267372306850022040440863218526875668656485261052909357888393365236197041492466287803766503080493535470801512684269398318454210339208010850888159808846104642416594648397973851691940008359916677638768095985923229806438397299431416688634949789461538835770086140065991903716756214348078762677918393626234477821971824827186008704091764045418394455570122819599039344352626359440940790593287755526754945828335461262004534880597468768450502123900401683401058313618345061091100709529249245311874951680760872027695532235269606863150941293396800362584457933783696649803361840068728811750675205156869082946660573763940371153837978102543462330614808409332503423037541851742103088277988427462912636385130721604193909157970026975413931011118218369694898251946045962696809508988378930177199257991458972163980722009135730381062383471856025861180802783356851784023684924186999460644106285869069779515121522242902376148347161670676980464496454501084593003299660160230095754581468695513402229077114235224260032552882137422273707805506134198092030077427256408376280633489458082160137583032361432399765677624490522849467410675918787465610324047005132419480124900116441920622350232310911267827460091910418865510798869150862477842435473718266359862033744083014831635722662946841226112310947798440345770162110987080813698716171229750123988051197238685328834677702303580190941357655557609556940497115282226830291262863769787542787264728916829407645418465636838029280811656910375572162703185977073650874175480900575836906051733631371062506204103108622613427891417190442616311917661919758505357131906387047845139444854737761067591060826472131225935114754513791954932383156406301690953105279597874499969566499797199149834642099047427961683576170494808834045995068116750823723217235426554257685871763789974149731574639653101658314130683773243480129488583379889618986211550299702651659721951784571618065256616620527318374845946181636417967613293506543969305770370239815978505148873563375676630724097308822377557056072388075866093107172313083333345195267628075090246096453197650415203603579689703610274800650036510157302619016704571855381859056179786872287453290784396179013488339326087777901870053152924164144961638474053083654785092140862156503833353506939825799120700340625260383162280049075168883465708713832932664779084987734975804179784896425214772105876858106615706307636565102056328016342095275080577202249835524237076184588694628644813179731902452295562533656512794470033476015639997312780292232428649953381364190609667774380182517212543856240755799795265114599901464243424046810999387663815754110410375254562334396773284813862414933672042405785267227462540259239216468947137281847812471214695787968479251781662349203473032714309087269241597368107517731582080900623822031792120669196695298218597661761885651199914270137452176866995392542310383371753897867843789008304188781382083560447450695505119707922084547017163189295482491271360514433184030687843484003430883358943630521748079217722156177498409393082765212567747439085480966723766249072123588261134347467160709809802243668506747933019355577377217143214154359745393056441896197862430587425205483668325656759363059412031553187394697409652369981001031082284451361105975036710420581805227116372742476641260419125861756188699161140593619124605800800053179232724778185719081847564454922166780552366880124078846453840501498894704797177701627460669903234409668173769596349358953877800384181069589779374812483698565064246954841995418650665193952462321626120054932391381871427441189882967621102230938550060205145815461324511086440834732442976584418156662225883881193970594707988820650999892810657991325036216217389780012416858413122859788927007068570821977260652842717609562966014219952112546804479974430259345391285197792575713650450021875190227232613006742742149777429166244873355733202195071381795045369648471630770249935815068760474618831457566108044904873342138870269408723732395374170440013521832358617496582494720549927368245346676743069185768567173431987923792435697943263896870359479169872098808225990776657724896893901145343256087470617920114178334088146573797586616328315984021702076302319833355057782329678075568646078332939596016462316185447545869297286011406423830111099262025314338935865017022864861618996952764744709356240978827286990707175543510333647611518559142947080685965322961412228546926638738202470898121699871391302289055287414593478275564605965209695713786441952428856511811658718366353702280416394568134433167129714524212576671383579319211811266742393055080468566185476224763766273898915278510131302289791334855631005059693475310056833016372728652246140852025646300568204480657040131913910036172055576493663030416917917746316681854804141976106254123228573063963493997624233362168362808040064037272618033291574245379290884789331592154512366719482941676326995975259988447178358536246270463017280933531666087754927753390995798076405754695437178193740545577083216705955004396457163306133493689385171201593855830156508015332604072892575216115490380449333289182971200272561866361106937163285278084221136043810220825521330674190727069435708696970818546932205494035728678097163787676926629751464868354454404791987350916660411477465180515184709868161422932627438169703296870452824237990980373395803395196034855004465403628415533203790777293905327617738342415436335371180879939200055026836181633682636032066158248715804578609611617964182616005312742250168571452298234475717026887735338568694861983415652011354192480591914133791875541731066257473452225827526334361840715644373623944715127001302547910925715613981510218492237629785174439179392696716177022811051492842249958200516947318942086822843821948701233282464156389389355595324391797281346886168124014671983022786720644743735080930687176150660752462554217114207750830274133602026624611557444298514707881240589996830771579081190245405626431148230492107713451126574338721447358701465637101222201972865063742568619546025100285587308288134855921023298168136262282111396020790974409963321818043762162843053283417298971373897549305173833818494798845027369885455660883757874692236030450217730953958847144266329437332212783676670778337663065100560157407614304692558753207708809289502523280440255284965476409771594678003681434877530144341647565924339317692919729571632587677331888108479498419632556961951497644231020703874253421678730628767367625403353394976194097427469620526251417550826191692542688048615484465519191459527036224724905524822801215770683003252394569839050789237980980791135952241020806300420603245856683510190745681751577254605386644227834566332791635504479002336712343473730296654810174572194073335804641180505921246105798739779758560289569245511102442509080634751782195744672101542178676309965022142606887183053344930227679342147380456619328240874614456829066148442319392130316530783831966692253911300015924689017560003464642442424307328321271187066784552532642746294998616891787417515298423378806127225564955153451209274528585831716595886593031829210661551108462868134236264423981798645691567395807712818749642513980746361935345740874492710002105533949646377135480054880104161275465694247095076117136807820600047041320064494155670687477771185126052813011971691877319089863828214093938405841093767612045869772524790608247771993556867272531045358259433976405553029841976141087381393651454625121349010619455133644138324749938974066441235054731662022363815744747198233776108090102204440845832471105209858156553284358178581741078982265253150121235222474156112321448342334974251773093709326281022388595269517706699685355833049987295863673928166185746370106705643051272118528125077091119436252665855692035546000092383102001110931676994318400762959825982660199942873796904235283982352211312811178646295660269660921179080475535437792262951526128233793630352183411761442116200403796637774400506256723295655122067495511329527954324219057489878417716824932342998018290005462028497861908693351711143828897700905738528644036632857587327809424520020308986357442655050789839324185471160699354028870970698091649798182705408277664932133179903879029463806556168529991705702747012092523151733732800043435399367226721369492488144408180182001712972920266931697546359983110599893526914923116080920254496357117282163354550578372929906182264400690413057285713143930656415308175143064196644781472072567861421261668990631405709111258386009545763241194870446470797087195280539075382006553184575984409912742124049896088011064002158255157306374444199581900103061297911671169595681944590949788533292053670092989237164643907445398713922481925890937967685701576808325838251311679532979008067143100324478729398033797647362923246660807544416405682574651579399495552782855355631607966401842151347139628484269149820215039347707354218887721927540994704385585703161394124286935023776971875936826721105913016018563390660478222560125322911006176673725987894407876079092336331377948158585938456540482208879675460164058175138841833715369532807281832816122167000859570853770122251082016708408767297315646208461932744396958587931956952766318181232652648158082677303733663578285971185778234005174117785760057761680194957750091581725794793320869553075732369653098011536667839370104762554386019102242680451714188936352258290901031584239545139082439173206336125860990673883317232811773808948512218762823121112510923976113461687758822178083296047156784761432798239944178635806093327649269760924056404742512961284725235045175583203922486568814536743730806910100541290210121504727998862379669961370278902063164406838818435274556802414284781408440171116468559751806101436292153713708193404561886800604117395554656684214921864940401689608156104093645076365146958642172820362860485521043420043578545073406500031785723229386154946624489843419506120669939843844966705669327973524895711674081799058435248890992059535727350623254379947985040692242894167792301036163765000851149559976804352729799037371057370442098540990159242777020187289261966935893254832468450837774683004625203848138663699345210279884092593207928568610783309222154715331915614193689565180909316760122993475827114428154033985129957329071039714489060942305396490112362069858974305129737207663730583927348085388480934547781168003712584212025189292237202799655649322351188927032058137735266280529625395199800441410315130121192065236504428698455448233163373305707078716252430313153422609707786609066950781323741800799122483796846594359329694728618329446108995680532462579916844498600841718840914284489006878787814546229386709993130139017013719168237451735394033474955041891880862272447338378624126043146762056268083176647076214277841003753213136020557109853611252924421277113578701580456852187164231965928136277694827015463868574304433776673310017779381243706457597247920867351636238141432541843466784421077505543353319072890160773872848453696494874905742754919188025940700871287508490269422929738115752933076151506461475350788374493301149730725221848405823315725461587845607820513985019816858411990300830089070526289082876695124685487799433897146317752294201803549915021712420591137929689737579579758268944948437170442884117796634280298714701270403674399583661369841710384065203324880330611844195383872728294498742208932242459364537011579504987664963661268936182211148751544627665754929198461263908467710525485481156631522611932158748535374682106022528333770128092471837830449377046328172743388085912080750389149541127486856333620909282190720598843536769927739163065645067572560155292891947980496728614673005644813805149918369057233199344391507192165073654063343323975650835460676342382397830116567654586960717208141218612560612997488488199234388925352103614537185851287308154202715577924782086236224463658102054934955951624642848697835118557313688654866118177138934282788850448470848782033560241904225821561142710931096214876701453933094694841879820256199181116495524016414466703086166334332537302657713868146724843907727406473754138546617411377015465696744200487636958606625443348621898305955920006857145966193598215327038786996443318524642730472233379512149435648940864241968662950278087711038112592364481716473791423017749042579292599763816450796676109617150941090980217782492044228148400594594412039306468683594778714421103677246382696188743436474697026318161119335207219305585114531452142408550684167298092009168742839647970890909742521869023046183313406441588601843759771978048809672581240575100804739199504735257647607734814953939813781718587145199213306261675417292607900885544454167969474509907742472370060164046391202127038777316821016757949408254819769466792792253682951076747753164781431082723163848005964325690085156028600452690846640993711991416378337263027651905409046506519229103579026652974242087619522795697476788846226136996673756256024891581384465051207288298784364759586109827553540408091171999173911161561999598004205343635966715488187786593439725675251403228664909004530459229479607357747088704677626206998406750568458654579948355415003783388573306174807541218816255793527641945568860604183570185334691087680269314754179277639027013355671742309530641476879187161428433747847641277499102426571493896399017714004699278733543293127588616588750255203563941940358659191131416008502645962958138147132733010350048482111622239749486944990976979290101734829556240632837585831304979070942450286161187716150613323120443573865110606730590599311824017141785249973810043040191081786142299781220551016850346600886415285408668146693275803524844925890834167355683660587579063817174328367564771215026754324219340230809891572182280840380421389108150284930046837473669220562266517232743496689483050315249844398074007691054342315969756482479014912430882207778099065177994084168878375042781886933175139785959899209884049611722474717170805260087900363469177515930355099879656461142222647418116576541783632840854357155872369043244242771946162460984419605820850575627442404370757392037227594310186170734877100281778017731097023914910646057534187108348465108743504847918146105187832414835636722790180674501185029565965380831749634000036273559243973024862482022124172910312343640791149135905434968639632973557971635855661770225561204540314479419890272280897325698140549815639975292728054602356201294155582737988333019353669785055371069035511573950301438705427679557454697903181846470525456054549048634899850722952155644498318408912939961328434955520460371576293607433140187753676038468845876417414210286938692341572229656784533719576566112152719349847416169492980080081338307776978309019866215280485461712557860095934368838372800457202096314152721834767557027113715329418069915826019690083574655586355368330913247994227934210873615099647431144012913773606575670405637940344163847913152446371891842478274931689507144689152364584982775529665096449027726109212110468404736291213952820294363196683758557859968024504338731139664382034459570823970612828526547056458498139632207686198952785411806488669852796180720328311992840818009474837637021323538021834476325436988841283353224810619261015750810800416689145417997529851600238264169346653781193166823067724034397839415215044089941455387286326986167347379806186432602189002514525230054271947120940445722646114551774325631495584648165362773569893378949542425554720288389031573237537680420458634752814648493637653100790707344025824447059067961034776159921128759213450994677041199908547477455834430081469453124009718677941723056211059383473171845862378326934988238102979102328557191418246260026714447768746640312560711887954899483760317230684551197916743038058137464358991599779010436876395055922420553056903483994752386777913882257859137529034764162371016059647086262985424712170176174635469928679104693947717455565093051576537524889370254767842859597652339035596285904061529375127896832661094753654764835688282891592076646839707815140640597858216585865685113000315337317612315505322733075172332421701534181770471542040496729958234565387285387822478663029686959003324624497359477713726947045992686624044950090214497473751049095624738054523249911129789432410184225894565368862648252687015366382313514876829173397790273145413669465011891487604795292486729959448748457949826307104322845804276019680976750435340506430388203017812803442213685865844285395779525993080016383685750363017348462170049696611514615445946053220806838188778966122599735629300315286018866214579118412097756799731908134033620222176985673514363774751487904739786602771608693674922559756602440201906874234285754946698606267015929992350543128665346225116962217779669850991528074357766778265267697502877900683212141714941884565821320423197385979287848112523705839767042942721750608225077391678787810173312889849211536212830492974581291726467067206024087343530538098957919006236497167629251426137599809327657596391003106928600081910275750212783679534815780285032311036579864228472348921025703127827940265667064634268776322276850517865429405700796337147776374717263357093161004422102531821456909626673694340198503588734094932297920256249890014912530417491216204449131404737013442219382351294913534665045203020436213215378351302811751504578797863331033844489242318256371895018356941369556821720118815900538430759942728345044792986558888573438534568969519758138829140731814640553896819437347090860635641162116727465849913262251561100808995071551371549314557678182569214040185046162427798751006053803017673874131182878858808542315532243163213967483779189581112261268211986089615901123074732007932027542541052063359492711567607289677077057519144711552308671516454053018925194433548830019097116183587522770693628054111906030166951144942243970660305187607445361283797645908232747937426971921100835819837779565325265690988895181085159838029706732254909375298126229885580666017888385326426863741662853664432352633385667506378127671066674726980089216976239883323675329761113713187123247358382385017989594467813947766898451146571087430670295516376848597515559861634246753594373092322474625536746548083777735308429266602478699555593527809365118016704820738791310361280606763408924219484797734227920420407936232923210843403950224836776281808620572704018285147024114696854506132054027700650051263235886662130033666206843256300302679089459656466466084172107712441795075926632527660521735475379634457795127407533151726288490995812333858351611012012173589678124751732742842961076338620549386021940708585698122829939038538938381518872682864433771740591113678784576706548610984855117920779029529329201824434327885039201624100664021157582611307996553585480657130925333759487262566600668824985190338149491918141754335803438562477205548986760832178444312615019766541081989820133729426738615884366913407384041301340493676063923700989538073926391658631350150917063547497395050813669345925296566388464437230370580877099323341888096322933085703109992895571028100719768711619577823770025792637715030119492525261636009505699659953583109271777420764491869668664201772217289733761120259461304107607602080284314173029466136712535488779252224345087992413609410407335211513505681539587396961369726628356210989711655043857099870476382044624757824042930953660508755524900625340329176183491912453107681462349768840577878682998726054017617000158621054063206633301820726965920502630143953456526973582056797844333323604010531556766875929930599522026056803920062799411763713575684142441596650136030731804361166968493780692111972313223118658672830758178434205014323696967417548812849071201416545554373583749665323541787808873406184746478977896681828240913452404761477802858723352169171933633836850039779871802163326683137150169595207717969923338380918126362202669732414088576727771974886951663256011143080863566701168830786641378653188842303447504782411881072757014595134620086507660586170455953847044125987099248504710239442000781029357067582127730024041583462186378176875277021171007139077628845294054457773935662608925794632946519129533699443072937368300764875852468943914474267678057577859506471689937792596333752421988010377050436853216168265351120179834486831698910020881400038314215890768579537655172648765310204869690999718737569609398689791702174088480255788972718582284350105546231199522824051770922602690191636833892589556082720330943139089321741887669391070867180085420311054022831841894079201055415322835521947957025281010551406593631777549707118365310546180831881504238870087127552441827147943441032685200066074233597284563253468039895482357270959403318109507136950266431807644547328162319999996197741075374030519488490265499021717049511328448505130844173722172748263934835961351148106783327072361475294756936142590760423996540201908384953255458140593471114569375153758769468322840451041560910815308221301589825653652097918314681146378457688426613549552205003904340871178934888373971339622427361088435533065984879599082684889668850666722996882014703657733025004562154831399856021037190536416379690487785579976440923944691309985548477070861697000836496918706456648597585345013185481603783894772952170454775088959268397036218679284909118802941879104405891108069658620602966501827971142289452550294947110464835404920725811542073382914076201348111425348792455184475682413822214722737504617371896096462798048205980527760115047883394504652416765499054932282140544360286556683989261803473186051700802508380244307099760513156422878268745464715964065025609301514431543486784050238538777239061797606390144411803454376535382239761443795846203436241356398524154006876708827729524368998158701875181123398700941944857083165305321010593342345553461715541741108566397248120036933370656900140058044121704776061872550017177370288108065856931468135742371277748330938794638975048360161554592170944504781584694248226684481155221099746258713482426308189961916942681489961904822546239368276295285139821823715108721437019478133674491795582954201980534226884254967303694120371974323447414647894080175058392103723889322907386464530492725073695565589205110020892566709691926646184861247738948795777571433734864401391059912898160446366438575417457398903576515435759488871921706347786785797609984249997393729434111640750879487836910345942029350930060718995613539115163467507819495806177966492524779395755209691537335303217494712056158160837995128855328116024880975776893199499151474780262570617179154368383072205519198891091916452168573849178971585986161333816346021478722085468716812072237538196212976285643810873302850133747347888402963813744390789268341742866774550932368114935062046830334377258633176797557161815263400840674708393376250825868410178556095328914787762851611048387191882026055895386110997774110859049159900654111582236390648183959154451942691327023265383637709874511099585262208403925792599353804883261050901912188796761479407766702425841591371133606655017313443009300264263879993773842306550706933989409886156366268625848723036079760652483523188241708798892987630168175603895465585121464489166123810780047758458379298999729240580537528951783134061691642779776217180081188859486837881319391446083149738739763429046595960018900695669986871528451770373442032911032473744712858585637448120807373931926694661020438814865258260862796400494421190447003159426110804730484315451204253049877113398484154970274616202903249757301496492498413192435333645058261677556002490347074827891543348400898405332502961806297205812967186981226232278137721828690219553992900538107267977664852095443878989921332655523832269643742695533475588052130941015300300510328149576295424182651276256420950497982336778536622241382388799452526136581079217874386697181055727108635552841567294858457673249442711178149181944735612583458598647283156429137388053978072017395074493711565361180973686085078642676348725958170811634705986901913431826731533660084263077418433586436066851114841543279097282409205953322998978236347578724514728485872750036606540385842686161152275830973981187061038303980754729117546907692843715794065691849059315871243206917005742540796610121841723447246946955099964370791125845564882650583605918945491373653378331390050376138764693251233792070162310026330975134054680745762181008275305567699680435102919609515851736303841404864643112788857578337170516152010946859972486018479123581836798434492694761373920928659818156789269416489247636409110236989980632981648842148658895233133081912600223770871470664160192266152559963835812936679692312149690474900785755177694538176075909854807331934791413818742424952200087903876568396642421117919448971433011876863009208457657194658699007362478276841393885602330010604863280556861304520770228257072296203079053357152343451904874085519452323185175095411555124017530490071087367175142940305305055591841260608237263449272354377528856540525435933452473082990886887645955263453372258793870851208943315767281209159174679452627862501767915437051769916081022779860462032574655545138314927257041178330357660214495272745764261190311741618537261454782308908601717598148646542490799170552157814523884168315244298080449433050520005261162133190517402102238879984648106735416125402996704487089421566443976428864106976246725367949972242482599518107588448007848112141770041200758835991299503033764028319638715278853646361315587259817744251060965889389425486663553299228695853852607213294603509298261011890609777321665164192999854753777442216290789289930017188568546199688466557812667693166504667027221471463383421632871837120390437133579767339128615773471206753416501131132285944910713744632127067582928575241020910963835972433461144063816587509936695363508160538339738042312762458284905927899275763569345881222251898603331943554575217901757180878275584773187505268444729252212486262782053670277973932804989282698637524563418722919887988196740302301897070479065495381341067776266927707687489078261065684572694933389875094718732303022296007857888258661740988584258620145395476733561865357484599389020335337189666782632735477408328891956778901703428740017866973792397304010066690904263028405693818787675159303850860552459935757140474212790990920835617272554256616913490718600107070688140497154159556870840838857801144325207240146084041781058305899276533446677953996146831922233097650369437433456652468427655655967415247229809690272424499078441268416311874703156786994049842101215819874952414391395682639407268018611377695343251948519397699775959394467554104279814908235258189879017227261030236761612939648993223223072946294801920289219131212451400480041438965955909952573319192744855442946848414304272905881145604133441931099288781191410209484753773409358787362594129383182113370027714504720067646481238520246213151153600302259510709039472497004178663452597943632849521046665434114431164419916954017505057363391510249583026828692658162210106774560506533424561703458641650183042793566437964176933269303158350970494247884985479153545969553817309578741534987342152189976910917117102349202843876007310423650894675230362661323935233710011416582110429358136866177789340885753379873326679413057531976375265198424202072630979183759777428845107372060055415322147645614436906315183481855809627681034843649810084588510501457077374579112115362396849805480028618262410709773854408256019070338982181067573021505738459501646510439984480746971366067675824362467784007931726718041086344582295786379123107018437624050778620007457969549851964036707377915749615246436111755319978202028540981495498651843347740903293493984435244128118474651596421226546577355336138820102406770588183062819873223518288683899420111898460479670624117846962009986295472152887160961252603211508459873159636266849362034051570240869274534791460235007652400113801598499395499196041567671818951530860984575705227066556036785283503546455135692096224283613577620759001410895912452325972643250703010242459955645403364876747912423460612996547435994478180237257034956720894689911287847930805274144542960634196966711283187099158871087619922544970170632370966337945957771074778057546313136853159109885028165317517919745549038947633599484700373563377311081741399811724348071355545499463628690750776209615240083514702056608013305216074633857050751641644751031742041772904120938272372545887874238285376527518001283194445053277941495740838272719975180262913145420861644026263640214355012238864843329478935555634668974818631295839000688815525521099716454513692833479977498653556373467788048306270639569410766836554750339176286184955283854137036609262133177576884384700162289386404056488584217502896333112606982005921913652096021069498330895195215656275338686417461406357891418058144139710424137511870593074144439415701527990473397408111819268998846434557652297690817024192467515492516926895778905337830705812334983795363634744494387373975650741871652759086723986729462916298688126842237626195369202366089490595421124870227158391254188533079322669401645192734232249985528547989965483094339977398567635873678187402183469233209483841568519584027922708399489069325539959309466965297638845178757125839542759229153011245093729733972840187208986653389704681523707969101272638675400008107994498667326250734437867780237402046102350016392056135158567834940062706873208199766584850703569797211879759724750847025419977836783236162562373867945496316684352303705933334123469159434292803923030067877742672531477853709309780580618006956301318765107291152491415007931933109917843065801296519440202361924383697266863864953397287462523960920995908812970634712517261864571379436201024686165267146081724730218116238501397304429136254571685016992697114485146934350698901786514043932068026436672922908098574272729701478912890036858519475305140685679475057691459391198399409164547533157539548279573451492966872757583947630642017016020671351271131174313285653057737127115664198154506497963503105164033690321612844991194817039847555731552038374957284272273588262685935370086688389399729866488943278975079563688757473215748676981710144597454769244091374489735698521938846905768855348568187713331363934296319504391554688496255248080811351571297649985086093415163479265057591501113256550802747507100610772162068197565847853279324359233745740183026139653776991818662926557331006444001238133610763062688848769204644597214273973456227485764313945473831499633271655425976827553986689217526139432680919422935724383578301782811334742764826641615424169684103332132714993201189326323414148754819121501587597534690690651258717230536338866128668874622272053883105198752126212170306007431386256418653407856434827193982000218628905606633449414456442748827333339037435394340381569335862995990390880213939253114239116484109691670037134852612540126895229933776599752338472458864504992580455184686938101630705646283533508404788842154511917396503310472980454129301259273272611241622203737258312089908777540537505576627074693726448802707281405705129309626841638683158917521904923572370336300847390631984223219729327324210662516200135169631230466299758999852285071631569046205731382066870998443254122709243945728895547278274597919434726073790823044149885809825371786945652389739675864791137446153000195237209862186590902615492062477141660482894117203900550438055893403745874481216361156202903161742045146778789496006080523146734991508392672145418583321619454260942881062717996676846012733203341731396203498875510966065591540567783318194497037182638108987789815310409546233887281790780441309184776356551980894876895322435788019397503157002397287839087236386529556627183048037985393296097237559970011384127073024142220747863770229031337342052438864987477008774867343264120817275983562828673508476480720831859068706414333869430304375608114998630007142378364143728392290469701751757180428212325270345394054339941843199996411277739385307071472597675683812288158679459782708441616033313125264830718417644380831224161823691982834211358461021340794328775511892709551370636150277516132606181529960717551529853449982041845915474689558169796563731350561094305661592258339635765175907566320158664819483078014909251377686017522259295321807517565686530088582607932302493029926250751466990137735277229968400058806431738665050594166781385265615170797733232790870640223991066205487220978295419919690093992110138478475208952722739531367667313001807892228007099017552634202497033167338280065762129364328990773779774757172952806841860782278295680027704253862543562587373178170803779104852121398499816224155947935509961716246104574607409982760578695312547000584905590393182283391366538199733465182293699818946262139316710238777669229369963710298811221697264279782673532204665791470897638847525455022290516145665925431685455069006593144049085699192928546153106293017930754459369352119505477884769348669830735983824313073906317565560033052818155119951305294205959131878173489799708847365537005340337638885767718692911798245748437625095366243995246544365769439614277752605687901281309303905158866359685290421897484905797742336243927023148611224557447035315900822522413132515535033968489154205397873380189339519518072331422599799322069123489292750279856394747768737740053057325410638086520917134633182832099969567650380888824119193871784266343988102804516040594411023528561303127500671050808803333724276427842457982410887935161508979149674658676926685960476427802919126721845337218526305058234005684212204438386657371953469738831102895694315343221809033986938638362131575235195995466908693271532242556725971789431555298704267592905885813463609620383026824502493301929955214443829877037753953039738663354562504284990206483773455372832709335060786401410179926646646769578017178482508720619506872195823567982295875533504830247642194198571195904333190983293853123085265107397200539368613751617734411048995119274722439658328212215188070798255431222489742891608398392054996585541124172425804137351418697865304758721630523338488520239747639960496688727821749865869892234500203274681351249379816998311134005812492206440828576507519141425591680186850720130274894541934316187188582191111644753323913708515339768407715710514044952678343786865510195295961013452943396435907093530571690230869110243122656567001821689241888313603476238909251768634219734507959069468775219667108643779746767778971146481754243975096390540785629334605512179285905882792366707302113096663104461467644970367431388952047065870254151765001309984642670443215941008051725135809128151101945210836800872384695673760911289002743619612931685092274844761834953393662175031071681259377433005622426563252204243725240947867198378276091252834157176216338816172814020208126583998521243608349572648052090898312976702936367196220656737964022751588724970498597265643805509140008618590510003981282680887942048214112367834397767456869809773062509601458426234268443845921144562361702518834697166157373091647549566924798662036368553200193689271220074185875529975372762495850160257632415559399851878314605230525967888357846698573724652215999086789885698388257272088813237744035299071922014953964816435004958457091006568805197601393723003264372373338769247995143678915131317606833644403092267755346305116538489399132032070213382550232453645917016542937820839053548941146027193421603739321779738092853924515647398470686280571332079406758983761393740751068321677826521526893064220371639891667791553338308276304458419727237929621868764294470858605347124783789303863939059683552288419720726554721069224999740771856493895012768368037519413895597168905985246976319413091537638099935990663941483312577265402176092681398312753787465758334402329838285852984324756338680196363780366373159121943009565036309794127585857469311694309756753072330092576355365386773035848114517609044476513294584522684363442860706299407931716085402498683385264997819397139873862865285611250499875002271399923490432322721554670267010619164508520157639533757351144216595430060350108798052317215973210189957345982399429891975349392553167421751490403031443183289638876739052710798348752058605898600037955001626173046223009260945158250114033434111134238972695396420498316025312635063721309368472822623004967913586248273938791966398829293425195863191998988206032218340969876611943691818947585064168542084878156529970931795550186780935246098799682788450363429441559042799738611270434839898290151685544687328060779689411168092434426071967856864666532593494470164652975712262044747662056434747989299679571140384213333343998578326444324044952811647279674879942598895942024427364299437393453754595725317396481395451353912348497006447918314914752670614871279042102645387315734658955772575773839665903671224321792898942410142800706737347151682704025021764690290977795670798094496510630300774389464218208094108837332287500211545486780596341263832484088748939325505043782342729277647775989062371421019138979959732305980302587439494914205579396338209550958948877056418744051402736425697622906340326548837906133943905593875716749863922064323474249381625404495441774490463093107200825415181576520145621691651109453391172425461027258046531529318628689916196733771002089112920251261695997864606953655038229087754829234104430911993313877833549762815910850041505373593674105089759512909532726161994112882924468697663004105238331491970665763084962508267694646017689282846114943446297980956527076936847894279775945418085085700544335183646624194007690922048079820103068421087781239524984080238108501736377911249260603641787714280472665672313425285454734243704933373053319924431227329440453063807194205410926554031298819714188805929787965838177494891989810819433310825536167123856466214213147078519418757212116625210017499872491008394564565865009743117125278864779225927105591553921156907794159419745993816447583701346668643497366379328903316419542210180173628530680121941066318522526084219221528272462894324936077467695371352642229056841244983497372971691979141597373064905467909555723204892434224764369492817376497674870228816443151262150860320100041703775858502229032890684386032376205316645027614237450059100379052557970402314691651576863521453478867500142116846401057534717609699651435974738303314410212201664636506440168257502407669429333364188545947444844855339333965390538386108155890212291896925409043089392945587320267408662277547679970513653078325121808998017149866981741927649014207831318761013503441960923818864901240846395327993072713466082353666451073045465404365461628069963006977107846967973254439169129322398365533949615130407134117620496525463414037799979876550221171327376734471143030074176292744968021682551276564615569619732956096059172713095016664489121783633776697242975279023083766454830949998420437879597107804953530935796354876358108896062593312975702136304566146213008556185131421594556417794636610400524516355084112608309769794174026275343572397853785107244209249904559175449054293617554701533934966979078624499789352311901242188723896652161988506300296307456129016803421614413792858054579234261379390567486562909323551312634059757298107258174381642061005039693286019576447478224671235149131544860095317861702540389476524023603619556657239274068841936942598812211351469540229364200740038834484084019055368342898024991884204106608910172357435656177736931806342304840051123432162271669294281611758482874816413456903895663934016168708915506706619605636420954384135391178550009388890018504593915686043746924052653125575567418772490104535110484536011339527842493715087992542637085028450533432453312824966740111026328880579435347669731197797877183091464233023043713247891155006130760709198623926767719342187047564895624352211104281930574096581299590723534228070114490210877451496199830764592165618075979500757405351279108388415071647998993215501775772524258876332703534024328209866863653209055641539255349580036726417068195702166997908451801433696404133297809253622743298038991806754274096340865389446213648531283288786622518618591142606592359548601973613586775879074711641546974821013299320212753572064542709961378560852885985237776897010174627865959538959896587286698974094047076247201446212818560270159526690073287852246008187375449001872654432622742295115728421462643577665697538195598158500921365538100180182180143594479089785156293689422246780818809607315384175975688889555187474222639640822358979728335726790812576868798480893565234369109124048336397007921090682219195938785993755840438034355788134725928737444525447934100010349455090986535012463874902465927217373061509580981154377226508625768845069920928252780146760014530746857907985610280700554469278637713915171108289821176041233997041047008689136111737854988408615516370786371587780765747889661488656982756033868639147998108002631290451282581513807366640609066416906428393684133859218446174588107359761053375513876756673080997757768006311639207716582548694577858238329499832783720844062587361550016561952733745950078743735163039259701548008260650726235203797795256705662028043803763140518010774183197203022565314198933474983592754831217723286290881105910731607295248237583011928213956837822717440079964760498318469984956735678312529788366687846456918758245316899806098160297430895070134236720872386419785273278735103474650952267929724679476843730994227677976590389560148989686232597715930485601985376969119508160997753734012597987574108904682654484121341557841898853400597154024849782762000564543050699273676372190867650072974860168754814433028818359616117050360555496891784647525422966746230171469408301867680416903487964486728480194924829294868571833277519302537129161261626095187400280720064712457709444580370353242950958050698118507975788792512029952682253270492402211433519904276742176700298310922979781857613944068896490316458174213768649077705850726641286749463962863802208443767245215328609339657525758201979156180490566932810185984059831059547409680493658311609667472361438032193060946851174229233435708394874754263116951191290550815531855052384804158942954667065919168920371008220332047415090130574023289756528418568041869749483383191374634797403564643624260995799370507341869035086915885794183710686389941527891232763156543926069952612669424205325436866489534110867448049524783266041618696808371134267209110268770502186657698406130303729090562895764881327372782720736618890886397013078618871684662805670879992520542695923033998232864984792168497118072511997179043093082764108377456808563306153320167403290876446966507460011922996630097281586019703468219749943886748898095264484472251903754647290504417760094435132634598156798078304341326060450849442533897203266468785023598509398187731242759229717146968911027868613936781833413682816582610068660821050611579549542417355464775800601176277651241662709759026959182212952592562902268126160498505910737289846782989805092409188477297499385513514841426784877859603371304499296136717200504184669096011034153942301647013937097129757520080710478629808748816266692283875403263241559250550916673088765928570004910771574050766467323768250114187235325057005025364216104275638567746740555666888644955664105446926556703395163663554573425999748571699369699190775908907843691366313464126083181453660789951735252813245303027316756683136535025815580069274198494261874265519303570080144159633016247439391421785472441292675347495468557702477627250438141267515352777941905355650320550609180032663053509558897744241438754453743075616979739925723626351695545311882713747658909904512642449721438100320368603725386098933009745448523647278044619784953276047957415945713230011344330659942061961718216351636120056065207824112325393372101883249236450942240552370750516632647468982688489970404491150497457804624189896277679386822475708687377990456082998274821963111138648331842597855069758789664095794411945976374182541186045366450666505048672030761739752984942872504529156387612512073740754886963959019602093619858417396488214446037363489500565127675962358443196193122081601210000013822649197110729378763087049098539714004073513917728243710632763463517320743844497245726868206652394282353194571641768122613087631793939134874006741138035469131020730662528435520020927233435060724152722986723393346210415357854461498363956112083810007795942334415307298966747096162962294031221437491879888568166028555223811119360328240980457368575209582579414827114880143687472302070573808659245989506166981928558362175919436789713837167230801260828459628592150315211620228793137318935096011031719068494021689185525461857203622271553331638456317914700452127443495385215575650140897636889975340849118620068551606843918241393977189678519928947599145337425255540324592687300857349989813778273391843180879696512662757647257611544712485920173012553204441986760030741735410181437652506694737322617505394335561870004015943778964462759937459925524639013482213334596114941914578621175873795509258157314273690375884083943725543930744063300684246459966217425172592776565992834164393357656691854565010536517302120515313289628353281401685831613093787361490648449372983752354831922221584804659661607691675795853063945519918141756260538641497171214247034125591184517699285861554905509682296059801161898010497410660266280507687354775539734153130919147643152963347043602734316364534632461824473881668350080769085794066228863502502405388762402430990182640974080239134404247886815321573346952870217704102029809156834043686454457311671023397350965001360318923951188852851244205080654646746236738339622130997862325572407743715179202594216512872462752298180113849005035591548957138324225031037746110554377174764607918583344786704815941813456304009472755618933515076039379508875783067034305877396800239082043571159567739798920493560626308872897903419047536927865760685821199935820041527319012851507339332134540948676626765308007467540836749887791367952530642611565557196208070584598943313055287409529085117887773969970694863792714118988954580650083937085226278272347679585072814838973837376543411171010396929548035922498867203782091051995057775624880514650264821039759806830026544256514774506849642719940344661886440706985077303216076818659377891718892416203060474348616955453764802959921358394234908595551976452654214555090879829182910730573183407838210057027765836924917231496956648801295017101387455304290416258990998608840537805671448818733488045375265501478574921474559531569103686659299628796641401612773720432861697968560069255288426640595464328484609406274472743798955962105158134795375222983295967886996249051295884687829593293497380354545101140282522083508169539907313879574747636753923215786318357760980956267556313014257351548652131221250003163225016967744181781300836737936936258298282634431824350275257810141287635737902346622284653476444100328458727048240867059497523064974480114473233264847437788049910918588185764228738808569417276353204943962388970992193048181706753990472590035060840267068694639878904410392274592047261938315739410115169885484353713352437278401161717781055836101745153943713427775333837935863515056687462596843021744835769482133207065860702510376788905344008183914511864430933856729927430833429051312622845198819289993602860234132485337523167524797300015366537110624991629046952117145548865091281384725711574966383606612580582183846118774259516578313394751383906060616321212005951539982860240982081457307556373013062985096706483716675261014478194343513007843393972429985029523086763437663297658630834774165944681620413929344546963833384124514317176767181629135993693137463023217786672966896981282886964745432503263107031877738821097984676395937493738782231752501315650606163414143283528144687723869680297410053941596349581589546339443647343055521209605666144380316827235314965033719317128807571568596705366539019933682837042230439195968209016895120286591825462342797739987514315517260948740488406633147109960793810887931361811355934077662395636995514994037641903274100615366164032619035537259336205534160398468808556973599484410296530795719067969991899834108608445816286474952069691860116741395103730870044356266570461474688645577466434550451663306593197839516984337523458359735249983476541914262914107518143664491294306208837662037153900867256033869769816018949180914276509286101333758107813199236499430111128734889840182462228606835023737615994490717337133927654552708225645430105906488630834824097383915788074797715922420781289781457882107303436468572167431100467978438238548689594859187768042500109269474415821293234185950343181449035688009821810100966934717124811034871231911732444110957917300393906811969517192209779504025951327572497846095439158023855555868697141683130450589913670750151357816968547372482762380526218705231999656726814864596037178345448743348509712738280903812364332922120108121407868503723414320254323569881402866876927142637848679976186831742362637916308414611060616225988218740977635771085121101894027659524427350242206513434776453281613273426519809373583707245336112606390891493595353601216342554643603020088092112768948396524547932548427094764041833770082968149609868811847697188479574518171226953752761167437555690698704567346323394100290167244354320547183462606209394136209496483534032094306197824251965730680666968521248543299509295940308859569928411900930909640290355433531952463237856954593045485566898987723050805357344641475939094852082597152200243051840249322904508469728621421172535888723969414405808243922235004349372569281305520127402144362685386638120801543476509377543948762263122030067407177472943211973589392508839769937022368905714227776005047792967847502233067960720424994732464148814614172240831244462982307863739539996419528901726441339644795798643758383267409566269225438538853719876668201828519546984117322533107287657994523590479411318432105855772887207921767035341923481413638944512375115560954167319140741845663529454633859794556668910756433434532398716919869234549834436094790729441322690179602283219244872752553053832818924964278056752714577708462410952424307295167846569730060654808432918554546788432744341777045268346506650433508132854076746919217191055296266441837022316675505341263868803283232471904629484888668465498839082683534982697128214623589691242386821748132346493327347211844504616683755254348827145125156303918970687164017153509060645985333328524632317030072364770126745275672108960732039374667543810572117733455536438785555134177458967206728454153454774214629200836596930469065473320143542660851304034653513505494184401111859121896172365885723548981397269849546818082014712390971359968267724852434374121592275874531850788351091190909549324985098990672786412489200739854944588486781953668122846184545954385843355056037112591549973420314348762679211716920652743615673230385309744688268707840736120495465312859327796196100197413122957186684425564885844010166882596185043512639823539755037186307158636877821543332219873177747113552045970025913881791005317223961398828600036119830126113032877414689907417053623713801269829231849439166061693268983273282364538929738637268830676067787078414071103701206177907033666225903615901707503801412926049696753780129450823391377005420949612628249142026696747598009823291029366451244148633416629475228407887783290829609462210831480969590277767510485584578036443449078014531286141374533640723604141230389786074248952453566591550533419054244664107286300400829759571445567793003769975699860660693424973816633237277930820462116887225514322344716740681184855880906627385637861610627903789476969281642172715935814431874342135407961939509377575917445741017610159690552474729692921007999322672337591420481022279576867223103947735921598442625191590545434350098881446153865386213692917654713214914767635862820548854043140082544226621827532996797273127596227878836211832437973559111127042083426548910699765827531679480274449123312999010335956109599199797242732378909249988729527549198331199793097142039964776774313381043162891103027461539394043399153181789771958788347925596425985204686881864363547955047159038010425763366998606435453883223665443848618592046447684819375968078323794176599407021319620461420849468634904478980624883363415342121509989979175341030345276641075714471693664159935369942724704814587454767115361374138091589532426529781944818445863919054396495855963241299681039290613598206477700510059826886194282244784534694564584872160406927691165118529481772392376483864948699846111867824720219106911863003186786393643130491324949266592288821906080088083595414779671609681184633094874200626062787087976766220345603759998191477572215181576630796048521243929594461398359865551997964214571215124441470622505116127405609170980918046841668362089618207701833785754072605116801268969385234238817505520605594958062036265340914668552958808949922675089441011424511253600501806804311765457714594807396864882676654156459738812068695413496143909945841499818027647899571258096534138262448072778678014396273389133389799347931382137171599454045365400355480137619948118856214252241533954563622385571932764757222018458035697203038670554312383031051900845193033189415047085897056125505878530140233950345941212909835873239810360790039731836594026680325977442241272267802872220205558140062140523206983766024239707604060059926767648292561892834053074306788543331465463179688420048609172871916340981030904970623623116618121718063886098504663683398443415973032220232478045485708807398089875319186407031552660418676781537596431787626358521516240507428098865759288289623004172342033800395294348537901071984320481352555849829170658797646790927213442400420565934036745508951201247247299525679060333457673199362100966788043078873504348739726023920010056121338542455017905722978297309054447885427699383197065322438891820599582240901096265115008241309569488052351944564155894565911182688020312206309394734562534347160722068154636773633145187568620261966006438676960137687324470307059260795218309995998672872475052469731113590684555473942677699975896443779600692255178871100635245256160137397239645025016055274716502976940054863700525126033337263466154504206790816622735201249807656603859811739887819590634895538435756474474962464393886355369177809363807708923543480038338843692428493933578991232378489423427007809730155444755377979806391794140604576428399838814380436629466329016756697585075674798072172438392115522518590636007838677940740131916224864147764931028819882968557454626398928381376353783844836448910251337799771289093300790728585544701388238588677171019911063521048839761584338925334428714195933134852825961458468644846090147177380106244185251303001230305500888131165254592752070273227633191716720314388135497769406415754474107442097285507863701553556639649592162656140160361641661246148205102399551833206254972640828737976744114352854625950822888254341447202050516173347615212622657869655310761137286621892256221954024900851742181666226297198866314182899009731835116788284959047771144230745326151108160902784715290534433939147506037753204658515079088512413899063549513838831820293749226351646154530020642120164981016015786887346331892616923600256552297810196374589874699968091701388207618217811711927972125497172559798099439823974129070115363731275883037858199934140577620172140715522772427650935678700845284104642318970680458150222291649450187231726574717379043536270554748368598538915557848153211279514987652369535646116753818738255452728015767942994694296845975722058554755190969847920040928048167864647040040191512592487537918119238029871359967477007174517610776152717636249091747813182277950529966386691242169003841306458026336423407592672474158368864875319093228164575033546831255824232905655971302309610726995577652534601123374511369026007062481368886708088113328234189820337060426906639463364271326415051435553908899475450544397264327228890274735822084800127202016830116035974794373215055913696867987715480639799681700898797772344814436367255388436825881458169482523238734851306940972497223303333128471873644560065052602270397485161221277548865565356867252659825536117022195171741357941883271032185122393499156570939225818329506587492800992814991689010765243941869767891915718182051699972109493312750995099349833115094707508884118368976483286962135366505469148323833164386595942950009614209859360483386012151235297478853272536522177459286521306879305699383925725007930372036234269822975166608925666410702588232041482887642327600402844381567550477918785999753342972544846007364639372757883316570514069490453131397179809950071437553988842257454215865475030473845477890039135591797187879454518476806237404047854791307478442498303729975608362268854223003597672445868818943018696274090950172567936371712892199436863891421697752132014116206704261600459776930169208444139831305504886421588798524404427509391359105377722770580373063650748450331292015670254938829740857201374780578109644247024320990390199126968418367480979813149209386245304837938494593491547434384814195522361265788513718994399344592879799797551131107671779628200268001663002976454056551303477069834672312739552697949812150833917620187062716566689418267495699992367633398188067751783975306582497704507939849730015759375743385598223617697715061759307299877721478061269651870319829254477884007567481554401217242761349376063566626939838674729034435385943448969972461301659784214011450434280700593189233541072793065184620134946808647784659712362807512482052746370796692098493073213857439117524932344621640220979210971949708566281722812441759526091064164578017787642203224168740752377425576520514529129990691155468956663825752616131327870691520871818290347879074817171695366066283631120430568780327296492979232462206419256584506400101058807557626963226051782856264330413462652071273340046284115295760688927276222903074090265537355871497848183219259380711258597624752705504875176987753175451247540106512747109743595150967164548392625943546217919157196059660401872825062234152066702846268865698780830131168562488655399401190931136570717870188896958894947322548956782620456059375430105495962927106801047080782176083723100115193803515175700122389547808551082105383469680371092803594074766304759002415104944129497951274570517133474113573816908046955968652967226730878628671227418640722609205371004643589075211795417178115087185061328923935397277648972666708957243439105437993102018797875281524095414461579735314047505514295267863847407602517641444399991543947926035739147473870005754370922893818957869746334113580331362028203866975808736942397255636934539356454827586877652901687778631627197778400289049632349560356145643162001842012972411684567848081960554927740226053321456891810233215726675618619539303460363718394852110411529083779013536677970985769915396834139070114829850651826808940368489423148717739231411282117989580888965243839392862579347080922540853573889984964161494456898238565182045060284589684847196513505706128937081602570786386036981558724800904265686441545094741400395734120344541893696620558477895885340427560303364513338029864852897948081860260421504358441606627500697306731257035491610190716206819825116995927001977875694059754435312917185641121261996378016873840923812835270476478608309367408311918758110043383259095984555420033443276512266572198341587432716149689887055533690930165557175311410893233177576170287330471875773325525817366807597549915447361460680895076268178117902114296742019138339887689269530508241645336851510616426889327956897284244357402215036341154123355603199398029203768912619693426434876708731275284293781013875095202825723719660400483693390587329892082210885281445002263192951473547632209098810209637257042561896300866567282141703246686091831899666732769512082651489364795070659101214433844690013512574213198229267964402848578729388490680785442378426535367193096244696337551985501864531928901958005960620537119529445368988708251629144515238458882180312771123045465388427245840338827336193250190321401195052986415682059695920605831171516554283388191442756285188622209984154262607353082713728441014763781907914107059785759107626461340468331427575028394081616469673179302842492114869221084805262831350983658986230054458107844975511881091403298108993642898320085233614799746704946939254442024530565199251860620350878041798683318378949091446458265602539916564559065923976417582778093396607231159971400516894223217239501649305383044684298680884633276611247313072272069444751967631275057344381619978942069139359768962270137166342005396554524859479195325664702438535641591863307122539412386544145768271490749458914775203743897772068087857689513232665953919901760448235147935960230608560904585497058216346065169311906244018564657514530853703940892020296781381196538446498173276146567330733352607642625707309075722948287553728880731157290735009088987369978269854442582743404920906076348210011067736603051477858021895193578498568881316414336494751727072473840414532998298378671331145064225478296372117484254991420694440449638062744097729020082464622502001348744484148959461816055168096917766910922346042284912478059820080707639938899128944175649915269632369459147822307289587348883078757167044136597165490326377064745583912527150079227454579073196632258921299082530067459942622611753434589791820605521756460593937132355108918764767085729987322269153681125691900923974871159688413628589157263506555945984047808254395645720860665129695506612733573624429289809677621070949006200947952574554034675312727438515063992624043452538705735917713887615308194369122081928872190143755446010236725244307982802650686906111503364599592576235410794004538622595883757872975049354832106212452576372926290388301591528936222830584973935955670593832192623688441169273720380357625761613264698332564680656418435399897624861144255610685956821176054974963746242753879804638675894797547718806030240701834634082719610599179120536075662693049075690354733327639879137454756809829344744999912446128586493980034071344962394580742272160718868436409202245256250037563184378462109201979165879999172696260858927031209569787486468403442993891657271556575488204247501740274346772940960399688208231597369504807828851605768556653511264556879865535459821926716324959339886288273532346051386730497853596946444731620740870932172090841674554714036671278275852898350318576967329391964434141085064381959766143970096141234204880106659067014393495769473919074537517873466306271200202745944703405320771665229141892149391317492227342350528663665413848894743537275681491075422129987433654129718930543003712336601236318340242731344618574419151262594747424127736876464434402627906061965514516345962239748805942362061910108285368813494084351738771797609714908981300344179184647914292520054747240803346094230314121478648799233246408359459706023463546057583269786125363571003314121896251803898276677629432344481942128420538926180684325278405928049322256812127599579823021703692976455351119294860404039109092387588037095217830179641173368164330734136814069158078385367771117049748592317323361422682606794595795665157923417045578989596048571176652179786240185631644550564674542450107039664944371470400015881195111362345423501443531491564212698180381462555887540226503853884652744018688656421570739395953605243920179919093625080801173582597271872940750767496995789655325346748399333033611842196789231988364585084219762776983155028791455538342288885283794909848865679405057898748660975558490983932828092552164744990288697696364061252336698899631725912832679750675580531083164589077606378235820049159484002028222005900442861065825345986668084399409581744167448180062236057518311403068989816569886775175511477329650158692691453693999064230112541235922532589013083316064321159239496731279611247411804862354070362255657695421557963750952224299574065642920871121548581383708041205723316252479616842047748730002360447434845253527910020513585051141558105265932782995089068293835336434108945971942993485490640702730278750427090532287999051897527877091643102408893863714072952617018774885745095065074771348837507892596103116332443752418862827242283859652221700937262240053773176475127334449096089166995211138797352988656541956741244990504134523724426453888011306806925874857128910722264948017673732359618564573632615790248378563123123500580674617810886440342358022465655160193151411121016487312938094798554047589867718413676405312089244864576170288346761360233625700116323025721347747794451600424709147819847662309207523398104432128494663051572313513031552686923389636209158037029318563405735758956561681504327312951935294716405824161477328618650521423965511262730145473684996311830519970552401293367956595453836118883557560685127123220567101441651483596417935178630503351536301232077826289198078904635815634149805167310178362237442363465570835976576180985980428484863348207601282490659776950410761897824076203578988153163410291722623089031687257360004421145094347453313484399706829322066547941060836169576495821693273929462658132898786346879854259194639993338779653208674636239984746005814796992988850776782409344536786790994875814113166519785151286954287200391222173213358482048293295814385118183750907289058527408532696322593461426771175263085834013476238600785917014747244368019116019534359867216190074604225668085358325286183980051765032175108065870722531896235481691588612710203314617848489637406341411048314958167858226974730768144592071686689875130849621606778686783175203534394952338310530898037871951772136968358822874692287261169466703507560194757611254258923011507867330214271521876391247036783753852825374064232567320407264005813042990390977129267348679102619611723796650250725168602120821589833004216255077836408727502599866340657632276163668797931755017385628470072177804993904395865156923541283338839176868306441236259282766877098265686937413035824825596436728417640415463583825506893578289804097782715354187766285518850280294972138790334596252706904116508902132976164184081429918909295526523610846443051990574978347704733376724466092809259480413584573458115974633687070103022111969228207994047956930484147323026400309195484517511074169396055371005717579141740602096728618716376949783680099784806283002387701338496631495560828326812155860824049114422165811766729105204822157974328049208814463384399209425586938072472677488331073306014071770858175416795913835162513212183202138373966616546688001833110534607651898598243883514153219774105042681534897867812226978535064912355881419570573807260978787841534682024939048613109170712869897810573470065635445555396005443977458556586073241819959194456347839006897034763187070225720619392029723767160645905810644420560518895482387542983164575443761435109211420873851666250114927763116643150354344063385376775137151318234523860984772383774446677982284507066711944068097819275599554237483815242019839541926268664119055237148935538296134657715787604804477384379161056013164703739933485151963153758981296753903030680743989220783324153951757540251994247469707376255679794039015689048767313189695837665407865217550881015519167306863689302583496844353664785564788346094560925398598085588524883531498611614066669288200079768375933119069422795714612149250973534128705951418228631724239035614353553496555192942172616567506681540429714363816038660533802823955495997984786994003578920520872270592843439018995850616810766058113972158596823492535950349458247056073349732426238190230805452941914227008152107667327440070782756433505176051020581280567497948109352992328832677954569623538783094065186719134080116764449218827839751774133401003260141203663030023870746120223674423092160347757225184861669141366541794885215043072915497673301439823785076679594509822796426480298790769616280662941887173631530794935683554027507551017091344536469413855264050771959651953241859836634143799274258612304339469099650826075117135086747229197622879787184825357682155072567080308125189093545191264741340226490139407816320980299100588069123746432563078771951654240822327798592508860507304448030458399639551653682742333884924797336959875195167181460431464053720926506291034129528793147126505782434595197519847469994367050818882384282188326635994543351013116252201665924502284377565982309148205123844075012777689198333963865824365037672889128536014400718628344854298587217796042367790521361304364395126775562928921069833850792058411602507922321704900381630236526062507896007566959922542166552990178796306463528280837046117999197575447380344072380227756798841346638148048799915507643178170794644524460274725063277449581907683109955106310653609069937809431087004676638326077148256815231670192310994207319500217254848753083097213848239961109939854239008041059888737839338204377173803315135326942066402719814004507127377845297106468534166079726588559959609621942913901448758524951471107794092509189881335059294564166673279818034612659234855925007402119065784389015299942836974493776277010835568678610389900253779808010659542535118323367846968315118086371121419172841611276054211827425180442103333187038781079327972301546905084787956533925686246535562300643273474980526728739749622995528469703330162520527760265612384893446602209424130554214213785493655999330737725123062746326066677208055840267911505138014752076962877704073041669534298307930316197995096083891172201811514847270386837530045105472327678717121149510738818838812081645157577260083459856454563103438081425843888874206633738451464288072968656974477208188086135489758233835261421082667119371111268764421724167865546207594763293729077075561885729153044891172718829815643382736765146021911999329022840947749361718428924521282921480609485863248722781343247961207782657605039599309646119067766555208068425230092435861668196719013389641049462700646865003664929228224856334418316832536650365224513647530427575909221679856390883320911050373609147322780594814863529511811059135819821428966273671909214225386716461610939255420618095475061254494957340185085977557147893329829038963144003706905184451549797715646218923671970084370871811144644562849401022954926087416692841660780142458995110197451115464285799970621155842791552416170187442967076283470970226555777929682337307885020210213448125736102674242612219689429817636876214754995537693935070339978484182320885093005515924557927025745699557894745275836704124115925731776490247563111199111018121348730894100124211543851764681474828739025692247251969023801343377064121493920195768194332271119508510320563218869459646798715363479563424313433205310978834873932549601769997015736137446405933605540301265811212307489204695930002504185075425775376593956614785638312104628282010659418657707263518109485868144763246615262279376389576019533685796594421335283918451121850908455228350452370173079832274042532476526372527625727153175686299197912028237768768142638205720206572418078851376799778054695216275838882782330925350036015456600967398042715654471791205626986177378992337022453402085157722143349823321909988689016011776144929692200103754110563312677040754530086878847134613894926734225672650500518405529615143009092046616419445674634955802631978492238570558224226750833841381069704044357404202064782676542417185217307923175961871810000783592288528733623930265325139858149598614795476640915462094904417763029043701615174287656519954853490450849671923680181916578645895599754501863975957671606560708580894284385848128875644422679046241756643104278059030029304166460922758644334703063842949590546075990685407928401160429596068335610620229780259474891027031057059622977350653734818236432766726094963727258465813742867004775942527240571821346952054914646777308125060623753512779539028971523513766402808943854757855214844008167958060480097134206763069857034725687148455866277537610585932984582289052332312068995717163629622560388222858521754247122280578515840026025326658208971154081972422735229896696686668403095771777323384797144113319928839485995605387710040701923276183762199498372821728654118047475521192547343956632637979635868879976547564996045437817466932272725621016672867518474962100896755485810637484287144942228008390104818310789189729367343737615922250462504102042110113793676862030367656955064966412139278961637562967604501403486544635491409076336791147883617034579314464263524297746072012761019278909918583405872448064343368209703149508960037046136268846746346389997779605608829841095519445132522576436374214940414254546884859405129172747641230008259264439608750017777136501165271106988207812883678134855996883950442103024394858861674236239137156407631112339003269968552799041064675221052894417778992543018467784056175514247455175113906430110257886884388522988194176478997698124409884512456676639615700453486891660744992384314619917677612840540991640003843943317342231818205147463398665130596442260392545726431544668294800224962378542026578614373741949591054355724697516748839402639080913867195631361681195876604007096747684422083022016174542084271442587031876414652783487393314020642069852137158827714025477938076356140587271053038514975886923145464068409506935370751764959004125924723496181045121951778154654054244220701545889363462510496921680269376872100610460035489872900894018186573099868302044396638260092129078677871697835205376850250846464694968000592759763811576088264927531608935768748421842686111362343073590833648224775169699077823088175340518660286252365677168901749109768327112192816939587682663582751153175021244549615362356415768144488467353928554192540972415479207909784659765737783179432301897615530511911900159703874720873577691715915145711246852610652052493754326935731364894184643875775917887566351169295708340184371005759397829330752771145592552982938911309040324299099626147100468666283312789912490561296787954516307715135565036615058391243891312442025160127355956840678379231119030825801339299016846713560557751353415611237494134041821365134214430765809934297602531268595390307285828506736234238791534335140463244847374792203936922513991056230499286799685451465369013831082814326183465227230974395775174231738268310638854987446984022385172491814829181106391972175391753170854661909697503846783802275580004316561575955435241026434428153356016497211490165840262039248546242165757335799548510031260716149206211391794945777690493571261677008020995863470603117870768416343697892976268328681443584580379125880872058365687223939636853525942036484253703790484670210251518228855720950164796943616490097736443331803605837795245479461852125614189845621218420801218506005864546545673655590638772733742922224581804121149263470259227009955120176048265736637949753310050314919324717495141785779721960955966312720379088364137542718149419046951509753542581922175628254520246557921316056198669965996829935035815062983657187904786597246684842888357597945604649977459453427135585885198141803113748003969834681086214870606678377552865874186332580108067403551361895554295458336491422685020491568171961799383591915236332416777986048723971961075811182373636919823328586652268841650994002320214754880428084535938424270742720236688548568440665334117936614419145434460049552877834389301476049006394809763964537660131062339288921038865175554071133000742532231022180545850060392641157024715730906040123208728994635905164670781189673407589729878376693769573641413164324643793482644389283517971091282634430873115888526711836511402973769696543538351763209404046617748171205773477039320891826585541174466710564916196089139147817920664587215795258919459044972061412574818809991305262809340829274483098828803162476240527226943375685680890847415248859887539844572108762759606938473228826077832745060099846050988396427292951800084582800423319984016737047906508704319760212716830851892764219396771154697799401042004742219774768904753327878486184217644462471368340345203987251016115047142543433852206491241721894279356288129626311859035806764040824589184068983757089957360604629808089944824505063790907031532444628843978271865845758267348073042576734850207032955714522929115857943785565677833674370788649360803657325084248618942617256040427491951892988494069474883441018212137071524702830792473644190145128054000919802588095668392035761618249969552422539254703472542566003970603467385754463690045099648781490270137457240859494964983823653338164754758197352405532935987711306814410073297965384285333724333326911756126291817144654720395443238772839512893008007918145001213749132981480902664257502823944006295450621049960396982928352107009940390511300116561398240667611996081984138731296303130803196021998027032062273120076240260876108061347192699455450231109317519932383438699265305096848527996245996611603829443258677515197910333464373429788098203774390781694438476734070549320492979597708691989207589274204165255946203855714751584511665196598691113213711361369870573771595841852427228181522087645010401183408350694465689863490576966128985261321589263899220711822530000286546803427119022528241209232021248794790785040539720155053222683078094112164624505252835759286669567102159959631370463395659334048469589197038766103324987943183525063349719684296002372693521391578219982133004302822714879631075699847145703682335048556640188002932906611421405580158241869141157430204406569513782880874390786116345154033386009594346084100758198480252047715477277824001635282329257388056142381999286674469398993266611035477403907950774336203752262433394200710137445345674233684620899657815381192361162835536010257988123747391028116710953212997571792246840105197092205637707096806342653069571350463679652275217272143380785134606955415224415886739158770273896382550810363331329888572216931403648801553488637099531062056196763141308909251445823090078062160586088927087944754912226419563626039705976445793235114274993278654564671628692972637625489845256348175200400703682476009920872691071627530052541851860152999609971001531756149774108888428614303340916459659343716224134528514356919102411744483037296945075809718372199798712450030436997042368004602405750065581045931863841465244272430743965270583477922650572990893347493101929850954754766774100589563808210242967711004775928746761127980403457198151891778447970043292448967115179628033805458434668524570602754735049575675156453175839428816162107997442133964233911590357815709846262109066843787921736355317227381101304203383826620892939751530591774563479742414733731951379048020856796378194843099842944165448567494301700270934514202635363970392294603726945917299749594319841746829994906661340866516252893588680208443793690418268905866666638932824602701422669379783953165275407238648065600682450622882340799089771564271125631785201243617931297248644988602610802612476180993548380484271762277021560619637250084825105707219090768911042964342192987070831952030197015296299338264609784230433436527131833103350401526745076349442406498773730671936565178559384395273290428095307285578074673732131397238521865818524057438355656584516474060706203294635238814669134578206349848598030649709620355298522404218648095042654630784580830971349109504357939990054615089088594660687505824609466977845577833059718563627622241682867723899789251765416521293071098047837737516886426438544068798346409121618058138097690952110333907864450859773040577769098420628701714787405129342979412274184049927095958550659612876710137042804095317769436380150893609322796358787753617961395981869985920607387265205061514746057246469854172965022228437224995868961530850447700221850058221209940992210990787316693744378241493742821516059591120586461070925221863315778994635269038688739261142387040962762354666208688226225187368359644349696853426352327716746813912796440266404034408848221065820341199063804573138674694169829469492386975514366175678974617068083343043489545752477774192674874795864746830269212262800308706959929666955977270882905179712917524945615982952281492374658350263154022079336106227048931242377593871095872136036548191457338729199572472558689611186210972287638253845809341267037564962967456202316692838631180035899610324747941292133408003615876709885719705691091026404570451881355591122222438916245096707753656457486384979292615013136823397694253745875693959291086977925210662526597520113240868016586078276553441738936157496863270021717641850828582605388791209192846762856218426341866908722774761828986671467801756418342588319989559879551254255277232257608161037979332265312029031429457312180967392734245239955389840710616622254258067582570536427049808603201205093672068244530155490579700003009229991234948557948221284631972750811273648937488730882875561236223758565010768338907852724692361364079042056269464945780605277222461857701775944692730799780630616615463745189492415170758987941039816931242421966288053380638120139085787159675045538291135840536502179196002807552021455891297207671401112590981030338099533306068880449367977690678098979699070314605229508114852114169792659607555054818072913493700760539303925766268448812966084555166713435753365684671838885391068920751253698055497189993482088617282504089293381231946354512360999475364030600143841635424740952640250397038094511793861825408614018630408374236707954959105653562579746516393963181095959230014082747847080373239184251920515587746165539873975155801033405506826996506373142387835820264887647487355817425057565109011922139741145564227690581013419537693269408429987775903545330493152649571887442640970230923066038020012779515541708852905286990813572749857643487677274742553309997381253380209242213164263020282797634366331757546706886297532175467208391425120695858614344574917426125920367552345001278487322889497146159516093565518795023848275625275159541729254108035453255472879827412337583322731440603554276876942253983072795775505482190774161562326685999673898960778384080654870448026283996137238901746290318304626668339653842542497952471531380848503178440820139930102600492541338950317792074368485023279865782390995545981592427430814676038491138174322558961921537885746090398221186873997538780674968103842394389363336725505157416813586240107945476494006415960239262233386861025334198683339755058331709098576739786447611182264430408029972420385988129177950440075756652632387785685795513070447817656481345499369963312443774256512665030516472534938949827313156579931362523866158659856046503393030445298488431334856957429500216836629945639254344676524852572434262365491067101711569072768975653961776394420992717930142545150140187880765489665110726246947464841134219718517892877233996332787660015853683293648061870092434630527179062077594123200467391631144072176500367886256358332532225106687216198684684082831055547932821033355381707643452029598764232266615330870289175167110357414025148401585150334976668214118538841748431347741374108224610460839284457637276339304556656573241593911117100703958520998527949849453995557719711880434832870140074214311743619092696162990140953449108210631206237703700235132948577816462423002864661150019497159051387818130763566204140043817188700255084621101914603455171810070624416032354228204787688041466105159476646589052132325521574250881657365260824653261792338022685890691367089269224231723628100663344306421419702068392393030325436519172814512870359087837862461164188926809139481892690142189206529070814601045699458889279337272259064732584475450555274136171312992273256558616559745943822889320871623740577649751094197516946221556804883010476397395549918985638583163286206561045531778590705424989216975376544320324149808311076628465263012353747199901406922582332533703086222514664640253870471783315108464555687890806886532535828235874689369451617472641024897847902669794277836515183950889576530814464601275775299244960131089299855076827640266007923966082401273566058156169159173781094382165908659971405453481807369847608051158904794753157301477539930356488943598083368416161128131580186496940920448018672131693526813058400560776949353780281712579791393156701530310732243271698668297856034198819764707013879020756645637800323696351679227161056281247447859344009437069815572199795616151606598712934977845929128001940830501510858047581268237444930730859071956988353134572159052428834683284769107029682311520911614280546857956669873745949370634359461913400855094892585958154411773027187590185494412030730992275934484376892226017325212214037072177983772421219827929896666620203600529787536278406407495825760772196674974218749780114236209858760173192722275098631123872475249266834037080997753903191754170102442977623218011204646792302236786389323659677437615013474854735045915209945479996405476417883958043832892113679449336777888742762688742445142532069766882706253099847760698255926857622231487497348295815378079270450392109268361829695937403701666787551718489297546658726597301496644690036304261269559176362466524993052650258476554697985670894767187568392327560859544872249923771804247854285701889223972176780764905498028095852967367415996593355704360218729685339520520144952798009449161152393061868442232877311891145666704618330860175566624988149417434659546731728260792755235071091373476373819212967673937157541479858311775207868690516801805261271667980471955242490882315790587826597474745237469620564381275157487992728444357778494084885705454803396357868599737976614865101272092114400795606593248533940123760659023031163485659918881731696721362015277841877302612853300108811612674650495486049751780194153185422670931572605282808570811338177296472023158099618248364600582250306118124319787486570854294017710560797319586029121880958645875656548399642499204966793354332417240259799081266856378109455631510527835002762160524162498997027770558016402050995550807254619801253688712818093466431608533896018697877265438394612605718759648496746126079602412521583664089358207503430704105622614604693587112796414295918689355969485030234313507463056850441123180723457212714154642673278970949329591787669719615084001397301646327372923133127063401660193913541473855190658277157626876224698358090095402352971962298459449950067370277779233124996874109555926684947722249612216921883929809891573308434695085046520364595362581957047736404574834570499389698054618868389596555369810483652609618319353008074868881961283516380266283530313866957274762401186538391935257983725805008090579416299428702039928453952387011998914776876184073382327156296080943642373023535520878969931584278018942919354988012490674730176477225661656983356127738972947093342121999067995821833277358105183355217425555192019598289973823809678216318655326409081913895319443654662051911855181960161185106530346531631176500229230774110757744432458492453329874456375201274171354072242371397052047577674448034111126134386094485231232180999690796302729010357789227190303967356580978159056508216674408144278287859990152668143567541986833522028281129306480749470868751805425231032031929820884553216545562031074366509782754348355991241967193630541572871016682501276635152469225080034060027682737907386574993751115096132200990302346381340209396070636125752204661866173959483322082330949018821902327367284228563871035342559515342386249990947282807414848709845877406511461998981453211207548494709326772057812926620473124193393726068701471890420875757712098865161541623884968850288188848968622400433287542950142170963590813638440526840531116366898715181880125030179197892042287584285820579928235118407193964648313157996878044669633212886983266496332504855713775177025041368528427203385945013538953078180853564213059549013238834272861126140880199968828688283304197219151875124183086490056889608840360969162539008224983743795578946913975410540053104792412819564257871052267912793431582687464466330236509630613216272897602926764893386339850210152652094979709800816321457093253383445127005886363642852076717694473497106889849038668327777029648175799126324204159014594443080812959594570252762493625003543820338450111086341910457336501638218124166655343788217450118056272957806819095436583650032944901525789351808474418440952254075460682879235583006646161091774935378792487765171387532393411304710016999076834795498582506630347724264901773879152430576767858996835865112499577392490906174249742251803473163923301823248116899152314644293220783519845545473588249432553907112113906640633651380270189561187074222946496303484962010075846728682427433084343701561556279119086370119147752695588516185479943244275249754793720272690807128408813485975915626026065734900415707931642105166226843192642575215468374567886624412151369356263681231105783412407887797481329563914992238571806169205649231416854760140818745245866197010880834983555172593272663745646911898608409989834876269687946819739662608594908351657927435515849391894283354346270087223590131978795112768224817445118622028366416278526114342917079640055152723677860460576924764822811604351401692196519013095134552642479462894830944779013678711002239474797248774765127351895838255203584367269342213033350606261487625458068284847339064297872776525380811238354239479272817412977595319741599075946162327942804855712743368016369270392954262714194426773919049916258635670598338796730595198142713088344993757179544745773628450859242998906272771266036316488879964390384631537273634750862763252095042719081132156259213779164060516827880268314609298175942442983927865301786362003000881748547825000640067013657509051833370084468378179599496749714005649560110625712104083855193784112287055388165236589588442156451441986530108639385988161358376676100878611960801942417732499932514792149135689222254121019677571090862315956241374171845579151703764113715287720721333280225655539922933856295301855771805926397661155140543325155122213307688578921404259963209609643833397551372176396242349677021659369828060643863290233257327235592150056589156042564483847333994669145659505590476426394687901662657647921676446927931224659541874513456732178771355020089736512511317385699468535836661847681334442486255024030355927700187206648273945372528622705390248909405587879066384173672343789537201725610952830220036868684037131000958002649672104034845967319237175384732717654820364825444737931841067025957992509495928010208250544884217296160242681782319898005697252544764469249447854201489950435520900460191902316010280276578709126352083328344403367778937936026226028598929140451652500682972863416066253740967968153173877529812695131063463954992174432292025244370955122430541876095899957523037755321292721457190481592108198833041428395770714009480467774216057304137739437024646473413434034624296393897525909914984419453468064418234994448604524282976478046909429468686540546216531570217212210243723459664576333429594450476966127338176211419056132418658546244972214890629908550649446046094388066590095723786815806381057491585688384509036024807526712079815493651482773356879365060855216495133517502556707441754110629985553034288821389326263180885020608276842430782406436286119496005830765699838554593352012780893540197397198272223502814227001224510037511331799621638686623211714397628933007390331662571224965569584813735027086267744346924116735769473989925295541599805143914962678734760690397088090019330980894808787561368772291539243049512784951790770586373777173455183105697757346980602248079206313650455196830694777169003082739675691657665552300885524751954080387114016650671611854818924091896078218046716073424122532168435134824473344445749382527434794617340072625499570857828286622174402030556156457181994119749544542559390296186066385215590504510874814120972514404212228857451240228526414906709571996298953364803644019399467518397212545445437237368202386929614310098576068051659819160856488630048708864653211101278170553849727500280574492952661062246775701202078642700215339972754100355900029521354290444452017053022028445506428648575499243078298749314695500469107116827489197954597139248741489400711901487252079663152642411658475748704058439029144851303045021194694261855098137626389493935470652361366793581915574547044937239027813925727213702516305706306906281589079987615623174922605347826764004850966202684602606200670496978861377820368501351517531589522915795673134743537060337115033123876812290176238046784919510240172453711412404576504941730838389699751836022665904739890437776699629083933993699870936071103563287872246913767301671700572124717750560687836072689551984276834210584263673496397307577246817474461793748226018569819704831535204595037680234593033941294774250949896849206362627279787849497981758654818081586231571873757277447801852284715422440382899862767381691278311900532201465973192987481965887171414177057904087406827258935893666278116850662806350079734823786038384152776490041841219789819736538947850272407374267986209637539264644678694749566958633826727813638896446230192223650914095090247043012257404719625005119192910516225215204432177438514356669315324623592633053200183804944533179974318299809773158739700494085262617369065439720485639839336262203027735839336672319110101878625181704996692838273073864392113499331689429493723225972398614729319707754401855710636226514354194990174212726899021949265673542802747858117582597121117384271355640806569089968555606841329956031600447408266439151673810375844228521470107581457614875805940226595808857073256406086550532163865895168662579847716424773153928250046614263533967438277892536244021452265153823820306996147861853514427742435924131621283483075188297311980948093339707254913782206609949979227136046356401752190804010846025024260327597984295951538249012317784742869826791671613868226505067548889731261399859853301536124588882902942315264701965714070729246924244648886770969075082726560008301571677041049943218714076486082186553633442751641101392712050152940071484069784556359856423755329302662650936136809431335666046851379578742125861234394376405891631632982003711512825688158079549735023347883569388308725903107775712841130883070305596122899221535406997707182576992642357005426874843236259201342264038006514162764535107654202207600185010219837595616917366028673744997945601489218984166079652044508095167744586392260828270177959730431540114611628758762556474549600474426616060098742232414259800330994038625747186720955414895419205679134764210672034996599072167081483798535065758178331636234441348490411539492673066966236925723439268686118154629484611810814523318006565462915057365825523154237993232154443531537567287350317982724017916545416925755438934564203765476950562812923757243376186166810662712856704964086807551451694727302418283659431360385933386992799786777981279127606651422376935627030363292333623132624053060553003612261875721658489578323434655926344425804664120665736416259071600686129841561921469699020992608664030416642288948693958560808858406551628627913490507241293346773505700887539568152649913991835131967813591748509045917625364495174065153209542734785132121281253158189390322218094849360643826626689253539919691509552040312556594969439272910141315159634801872761292428012055042447464794664685676654134366423064239484675696918505129944332951814573286436372838530253662516176578988028189788852478076797267298805695072144519985293919636360760804832708507872646497810109723192848232857239322457611371319756413121397541562398882940851672099779726106431661075426630863125577817461040060874464412728764261961673791966130662568657591999506824437006024113372588974880644101927572409639353390178545308541457635363603124119497346095567223988502441044952160005928861534296185224583909999778568679281297704204301286108264469047977119078303722178711208478671204761323190977251526856985394940138151782684483431814056773796982237135611845560218303492050041942495701884689520034160797770091616196252754919444217832473166103529656062046897191559061799100194649918613561307333611176218966444259786654858880231912844711305575639587227208328793320451637636706365135780337237233763423362202048197100304329165276844466520947330337112778910593994608080827125484645930892699714672440429739781242407476117218109690519405739250961919674457147929287360823467201658907470434401912561389405200851082400091309454717106111266115001224037594138419633152429857618968945712235961690786345060722105575868723430189913855534959115167909590265362533910440265894768326228243775587192566421930740219970876355318192043900687010107510266494133415197053645963103752430863233737515447749760023693873617497212723681279144668893376612397028233845607055279029712915157469597507499288752688597494545476371553249046909293347954813716233537314957176622133023383162335211472055667596864623887564782661060923229661214427004283165122609682556822810046680526706685139400701305627465262193311225112460506290425745611129743946475316739910748498019547593553595206591793216962887854608927308429631771865107103504310559140451883666849518665110708415227482909457341188057223625711479826678275631310915471965209975395384863222242037726940813539174626038688711187636678192936489857143035308664577740153349956704912434865661889938704090867498268032965463433466141874294085697480019335424631706019253606415901508913977940699112783707582771738525817386730187309778355604833242295118765960016369564581105469922828360047038052434969606028200994046468470797839898266079148081238006500255834115320251481140102815818736148036030855350949462139604740078978302116885397900322329418045133217577872405157674232159318773435426052496468098730510566972737139707923144051431056437401028005882763564612524193825360716513478660518299016050296919510534314646874475910544416474745476560069502110105889782395922915762097255467930635385599990728799246589154681996077620811884367422525400567833110684696589016002570570081129186783851236679470997699301840587024411043597036933428371852620586088202208344640058914273690393501030800116288011615870220006064900440172257814182117276836579973153860732097808111628722529906539952103191499616725256948126978221667359183691331582636876740266861582417782023315245274755820151635958054776790897690704212457818230089343720070744539847216963953468608789329097123543795563927548607217465385612563592872028470657727605184148852426387965094814139871948132767122059669326093512867903278203333791227655859071937280937242478925763561645836905614459597997493316752013443838102578061623682942922969042676099561297851506682793503366702842494207807983067228270000937647934968814615854352299938376029126441046742372446637145319922987443278220053322541819963901731312001771350923578596209126322362655416377726023199242961878194066393422326231043450360494443444995137307800572978558679565099808601693330004501720615807852249877309222916297018778256329653694410002880902737345105809684028140175260368613444763821713743262192330921739945751621209637675965870619967357028670456025105130972769900719564477741435402020185326042057710256357300850341271060194725265157700537664180147385168660839580156737704862278081643262628391055697602336309849821573130666429111894335766235716534328654812844326640458106749773787856397785807279112537095076917592853498655809494824109825861160350176410565694770483139048585715019390325453756683765970146799437337175317895616667553304150687463152752819188634117869706943374956737400069670649660262015690868303860917440091843671247264578738786800046149315344957881914207322796344178329927623880854370661954819031945669858915087009120557447274464886263559950896922212757479234060680337042667369443694004285249020507616339672785718006592159845179301102242196143284184165691149597037456923197309473647697683661910843366821819799258234828388955103783577027526286818382034779991536984913533613890150206298077203717891548014323710703981221964331013975638156841484055788005020767015099393907761863210078531543614062151947956930673084746186091075545662562839923108160271232308976811486937624565551067692064863214623942051555556669563355731531646158456828871287228808339526116302801737097323494752686193349689301276752683878071594587651015366897851509945884227898129508930016754357699305357497018078810383563360965702254176699006866461008962414398131419171241683814976590142806329465532730325779520929456756604629339232575313629178094884591998368572375028089674187331007585179434638192821948409213961264990459146548282085429775141349952672052024771125285918231584068365509284828824866246736158878389937292942461198782435839267227612757471260023502123473060946708692746145624401124087493333685374143581385082642738845598601793952069670932333677663996415578352908639742229652726299878371591828208222596061731197635681777443028771050680251458098566326315745512763787374008554611062192374408275683769121326749492643754926238534515639115423446154779343061109711599411612004260111713601208723852623919208739553195950850528545588098522946181562593569961725723887648889475402354501945807514509922913032085022055894300355978976044586228073051639859476761915393437281579354228544412218719592241822245398134210317377772215656537055702488700082546091186470541659398542353895748494932047768629505694415709015087891587497797477378856504980848046063922396928451541309643944703454599039843575185937452559347515778108053386016789569409658510359998733284618179722544191401544318456068165461693892895919536792359872864474725727359923431961826573681069607766325606924706378342421347626820641119686525280679078034817921252375046876081162379559227978075503156199433879916275689567504436473996772395461882003298658994438441849419008466754562446339413798295674915219756528382808627579989672100100791613262060756267370841459361848225145207521883538782072376836521193096587804033181373874806189827874054705720489790967594345067595689235380034498354944498794567696559103789360802592241293031270976986327364309720211573130927894931885837275267332213109875494904346348097638700193445016114185745457087868276405627939501079010184600243257421941870754328840750437843906641951849539543908441706796436236928916186419257033552299687329706378793958128330818793880979200579144926064230556974762918921942627706441496451596111781465052137631953814148529990037305148445907149633012594041789953447026315228945843879720574295750356879711228882969248507429775349130917350359039300787694675276966573730271209655222262751928012983043450436490252719233413338871808356882545627225327493935319275332438064905688278909310674191676497833966102734208515900079319553594882674815720897277465065730581574443820692762409542361841186484953879434947129282853809698457142064145735676963875342291120228925661020253319410774124720383248545495302391703164803673292176113184578186298758274371484283612756698892563693675391583274091346551945275061915236718717396175400959897523843559283608841392324978547056894897326354421587876775508600082907797539087687526457379854394344042194461464092846333270372102799845945837018740014974806207551873610314447619071371761534016837570824129177003010167731338249474477775951899459671230284326082391678145689148235877035370258832702386446314529056320705637216820587759253179534766530548221269130027028288707239962994671398067330382626325037720726278359783774793941155975174585384423766560664995301544617881176868667296484400405184746757198950285786224415076665687613016148815951529143421149258375974676156675164904596900236066697642098544394574418967758318039427120048065619591791070418090474625749289495175725539705488864967405423998116843108234940732902709332902322147225520276177306864142451730778209616615320547024262197954491802082928277132473909691125682739541924855872560646039887878878700046884577239113510500028458758799280950029556239452788546875444629964247133983664688042505111859961564829299088603909531409680548757941700724530310638233149282562617105044922652924980889327417726904637073979818051067731087378798836474135953914254184246486531738535103844200854750082939093908509825098599904125576393802720207502012456177202176099374390376692955745619881496963831247810163923337916339475778398721797731307123423064572715378922605662174903124637426112768182689034443000429882789762355597673698379811205858893435616721787062008585215339198593429771021843180096240599639904294177248329498645912550650152029749676351248761970609946918703065616937032165509319349957845654699631710908420049244430876367428553021500541004128706346138233506048164136956410931304403951333416736738939134016133704685213965308059486230147624380543300599740608197643957993240585469993919330798922507781175111733838885289732028939069268936644077417703991120663818415171363610477793725140631887458481399718719231489151630866789947341264123227299197591759098155367253847345469213894721137279664913952384655407175008962331367177686420327747902734637008979925468381544523656921959233297894287638692023206799258402235117297131688835105567031916734390877668061801595202600257167415862408887359198105277983774474300137021787507144910254223606629169136131926474579550334287461710129706466883738319609227820945290584505244981046145779754963935079203223279427141375569126461503652602092832862650229223862471169027945094370465059373114301354532922542794202362901955965858949162742433726052347277380260964515025190072321938636855851930450486887817213577473837638812609687595171124107333055359662103124879195904785257903268124379621295610641154545554208522455056686709788535621648896265880458063703844852474478660509356642272767186214785206070954398597112989759074393493546759309370446748308663960112094146397682616689771420933867529588619575978931119297606564939735525939647795525556098860340856077624324026075756102223198921911263315657997218490065851450483387489008398899059396500095068801663361061315044281114846514634042405585283272978684501063233218269112356940678302604765424493034191105784021926397491745186877630072477158228202432412227321561353195306881627266360630857023108186313750630395984732401811716291494831725760733047116826741462304068914137847779305115603358989122670397298506408705216258981879940772046439877703848992666411831194224114141845398034046357813352778252136393515985664133925005904294374354077297860578257661112051356397438293649863863182744018516861595652482026172515218935281086958221454340833388606659368375796747097416616097279958192624805041657224291444825660393184894490164223098511268949928878957706342101170610330814507827791203453421748666896920200682323211908572571410682512445967729452365954121749179171293984834434777327447828866262905628153942252562346142656608801349449107708582839549716322340081678019080734887129589642543881067109767051447361200365616860550945966663504913987224675978978509413141325938476680052472965456402582815837306444577973113792105054320177352151752682570734539749008100241305705181801438323074036134607046562364850474412131419824648858663368209755245749483928419628290583365003641032786485574707720638576244268521196939425549490491905526556975320501436233270209659295071387381685000900063092778346452049713316042511362521562896976324139184083125711474988039611429034728712849674763458963962687137453514314121940138046920848708656909822452238049415163045855981901718509371858393733243014261795850880836207545691100672721914012888643261416873670754772756959079453369367050444768417118803698089692115813201455830809751767364170766675532187977059327883718369284299770092962166101491710199754439424074181570559807631022058290876500330840219676283388596315574280395278344683891243350266564966148366178194334216243625092665330527434894109070112061316042630944696029871583098271776499301970688367282459547718634510062549761294925022267506068849348509085333782837763114634906979078462072568500667483959938841305347739599105004669122310821725284932199234166751428338661613348998468514214668036045274810546782350266644915866086221473146047810063000081123784432239752241011067817147477379199910943438812020735124140808851189231857973301858648057998804744847458765151609986568556009365454281620991958358532349128441015535037647857128969021934221790616484487322205180760061492458639704141726002558480046650698991357259227554539048172677848586996947345758246173408767075300713312505833784359378521543255444809596660333106536280214861805001002832535517277882696909530258972684855062717228620545516707219036677522242793629976141124045887057698397617321925028370185509891693232435747982440712714322905293654813696185587865450260382150305793993419481109416829479363732366835181744513857318388469892867665252101062906178929214797838695346765544202284983493148105355146723269530742488300634511589841258686469978687698216594608424008833196187745117159194798916286389120043218949288233895705401094506139383541646311078982330221618697373219785427510403864025151768435561963502283661939251383573870447010568934201510866176238617965043170961021163681716480076488149375617015678235225134136054606105449554347147451107599608089339562543161832380177174335921041727711727337435307006243172731724375751430939958466962462663943053154658853487512123699099967014263039188713876806266802850883548411654581728355238463246782347469516574948845363294680699471974472649748184959530989718094819821514716248176955383389794514083411262864672279121040762543442451145221148889952517100239347158534818974773618005075571783487133762035682880688614578587902705496918095644868463258775298266043962678714588568283362367246642641742757883137946948664786132673665017916463429967069122599832791820130931271316563697474343212147218176806939633373526887911033808148397689015339127918454866433853423229577020253372540907293534911989176209604977343304319257843211559230448145390419191836475105593325262046090433520665955030311926299211175889866022077078741256419959501225408470200229749154399314291514150460793962762806600686195437365800400463886958476287439337966821712696072453999815827375216309121489320685588666470378411682254748913943903772115280672513867719750537395822310531407484128153414871382429947529376908848386892704440758609109899543898593142130654296181581555830820054974375663178579857506366872546036108184442892684738598212860048225163489757147449245604438229722311384167312334704240383953997956710018019436212404060134363743925180117925743578599655653732122919978726980457472043844623493798109390424142726664178007337011173164456526000608349405499361082169116453662687018113064245404982410791991665085807191950261049035538580315845483318660236237978592187015837104774517658138363950393167141306067332820789375684011579696180654226166728256441612645514400019698734006994656678553623433661489488206265087642639879424536095034250468352159742465155727459950845517673282845349055080903899651412523794171988845903437922763930469863594484127225549611004779509722245634564403546283255088754190958821900407280330102225991244945778726402491146595270248370190300246759296684960841385222033200394160889096359555901983591935800203581465709208894662387140582040820246927094184559453467308656476984980515462115322230137004421639756060470995060088499459122592103671691169824206578853459259309610750163454873096651758189167191655001337684732718443132929252221006290085026401719853230533418084303719688130173640679918467320296299221041705538189895195544609369810372212070354358025939481750544422911366099999106486036588699531234597676261149264036019581777433614028819562844379794650099593006411724803046210288694103985688620182699652632919430473222762608533532355642223363445612007837578220895853781626827622294582766800703481586856877603368606607525915426989652662639197169116499298632832114355889353861783072079294426528818211158681273516696666518878987655731305128872722749851600721922353429572830076010175743825318288601678729486800664653117286250398750352965073935984522830595469812134395862032357139623516978027302231623154139392375019478763869114193749879722807910953199377689101554848036873297779218581561266470052328629099713960778774738146601706307271604039314640375579490474786379467027787691957396170993367110079492080469937025248843220983883763470793601040024244286464393955021368533201666343109072363497826329394586926969386631481703321924563761251881664262873284572267542731207173669770881865765883665101357688834188340096366625592073193572694430033205596807556954138383607010913637753536664832965011042304234210507068513269732611540299754393264775074971212169263131189121774076776063034646896754170853929634548987250583905692443259692863034927917165537299461337206726638006201476489267356768228591119987229323504718500554112727487614506092905349562152350161942727822252822086231145387658169142784860093702413296846927658015291369409207640088920874399307267855939681866666486511103474606909199479225002900895504104551940490260704980637232265448284571427198444485574693875897490368469754266948942010526504750592254118170380428352727919511233643504210737886238634734013034302104517660075727606454684120234875450814993928723743063668843687307785965661002469240244646227015869828656313230292573511020523855990416395753411359531998268754347202718234279446198064301759971513250399597391020814540435159452269375570640944539764817817725232994088914084310976059183982341209882555705053476180531080968525334185445221629952878731283456527006939875517425834863581577333915823735034719572307323044685963119593519840781609983202766847392568293979480132577278614432535543946147732155340595118881800260883640338862149616729037605482202862729825125943042503939405650525889836930112739305201090872367590378108803304299781688537122655461233889657827679962232042461092174676064468954492620662266570479675264960905261721455341297006974734237034843862255423364745695185443201541858940197725403434781666958350793707983509582526144458560503207781909184397795842976371708589059502369131762206802036820975319688799821753021370982566279869977738373105223061732985411882039815899487190281397744178715960350442983364896733483821251087444644752668062615573630194213597319644689143653939722788064946137032349688524273258625234091424616155833983403695882549761088008746397085289589324967303929291771872735580444410263382126521972106180767078296594045403141251008122538915951077396203057474473872737306614197591431252784466252859402895123047777551930643169036709729817215141480252400399669387663604185623520913968242593095733060931564402924700449522826194622176123024934383322457837893515294571607474141367272011893449574094739931972657979044985934162091882001348062867339603296562990291109828922241140794917207237344545134866230319508250763175962683343079684312332757813258468472590338437725594049989565071105822732320913430852634136784146125873960039969002632861554187579466252057713691283709561942174604581416016761790704003210642786323508248262852189402629607023833281373581489567118496204912896661378526152413851317452000901680588520531936262916378323467050298353285726730175965484203583732764772602019487007210683483029270457263917851023356641547329238728683778348073664166884397296413851093289245261252871507969003283468364483456305342460809970154392058845789698622336610305611495461009750718027483202059913241995341692615089582682428653513237455446247255968842456446029227835677589441419149531332084443182974726866166326050747542585869178474233929340316078557653489893083456129648748391232250832909401826578057491910034287488324555728324732813897041283657653637413238528265596405444964249342343770586511109011601122383809210112540225785142686592291053786478533351002900848091296373202346075055645383772348966913433459082353504599505098862692374822456447652623798879284103567235639499622717823392307921819982968871278205215276089347352561451401126730428143845279289011270917916949306924133864665784037871185214368095226168700370428662343488590036454859711703999750208833010550569167956122449201373604273531910113845474529271793833660444097291684961533061720917996354963373242242606184432080715751414900226299417624429721546071229659169078466950957607113034958628119849769212967467800684360401716887561517976853533796974572765474885625165794901611656109355858255094929828647626676659137075566068305340003211916341349586099456990882120302188156138458923543962142844402038327267665993033277477082898558606173905703545237247612812617943659492838079558985538307030548087202659402766440180479066235656630955188076581665941294563548184722386521087017865812586097503676728081042333320227735029957787133337306767069327998801592237961386613870018961548836981385293520972954555846853325475557803073236318738098867902255444009671913235032112902622064513336945851601038451379653595278382841992135241454392226526931965348351702347299452322915106665030767916001433261375790866514840226936496434842247880537329946159556917689255204439776285641452512431245891841352139560653452391901537637016889946521670350192110980941597827438303576809394374161620541315065944666394397606291818659951034856028939891339547674468316938110638822955638778452580574897895544849094533784716927128034313852484229936065821193496079263420515248883222607783173052977903850143232701972392944487102862738292912347987026660648392889501607153863339112838721008364864406796889428362187151586028841962268893287976545576577243524300905359243138964148361378970186119106683839646063802172698245698631322409497812024904829062903842594698681571610228463103361731084833354691224773073942953265092566548679822404839654736991498654388628898904991111260508203206167018963311122485766833890842681117927679648317444631899828132882889079611336574706471370769619342214613763468715776450752402650483620704637750972898657140882192559429811555855241935547196648488054462663235930651681548041349636549832575882093547715963950837404986463216485708238222307463982592240341286764016632566297934588004940517639328269558721128612360529172059062520060999826957270983736935171098976227497490599995721459285336521237518579578723360806748689258025024554831736249415214264863369436236930033220716757307838594194878954801203940831838260094827346762923027194522630384531652752212327023225730006737113057838734500693707274548872302851137377565697605869145377008211547380036018287424573716003368839958840644288644210032947379736376069466318577796609828531689112412963022363142489857719311794849160512630638973118300043397589626385591973887646793231171096317843568686894312073613746073045325426419531742084143426568401042350727624727253058533938710330968506039339137563298109296743302121141940107911000521338202945045457070839849773417415566835781896299237140347178301604449064747541327346581150940193444727778287480201780499400788830272107945513066433999552208150092708101130628850943995267903735481188373061316739534082101687944141731675004116508462821615608976577349465765253963847668624384553034616375448167904436706927849631540231608385010994953365285865101670427453456249084297206883233546038521509316588498867870628375207580182611224737974396179600128367673041154436515821406168646711334568848448699646810735801131168391886257314352813033061690680672239206132310591332491390875114803783019838036811584638248319297833693392981225214198248179019267772812291995279611196169551516959887749262087627021538221640684624602666337476577230713536658626929869083582324497387915615777711705569964799990981729366610067712021677067166044631538368420212471773579100876108132357164724744324645465270909963442865888688056559368816124951816104699341868843201133466612854512221332509219914794877769650750100348193082535357528864930444196868340450982033425315647203658082026552927621166705068419927962990463020804026220222844278765131986615691190418843032026977930812155490284499243299008667066118546275228866137883949267237139106961718929735080029280881656726015483823276478986799151068468966043025133378140597536680036661585166015019753930138354584724403430229191448539138479117727177235437979507201761249061019855716907842658139915344131103321942231651961447104322193336029549110313225610920171920318412181561573712400593019169047751552562185606888599800175597330830068457809935519856357781257134737384396565194979105551902233403359703773871492257187462590019338748536634653633645863426554887488512800042037125910136286598878672300099531993175842014687494542624725478449795020561696401917958616650477591330644503552575294378169766304424190825996764701889600481196273449773815080620992717036391515920085305627953821772119333112286696884142056978120821912184530105316361771610860081792099584678574510123116229879636420190019205056495994561033806835971029174594516559428272076285645385739350874455121374703451894550052277960571440297553580704040183617958052644432674744704125787513256959008028370804635898202894534176859319996331291924891268511779408866070908496412431423301436919545820605484181821551431478036575124481149079666729329284009360529401869227654772292079992420458842363211377158673840422816778507126700286281496190074987982874489952917300014716264153763098736345068320213762742499947660361261128779233405521004851456735623949045013447620677299227705417795153208875902078327262623385976601693720004264154887077660022307617126332043299692128631540607283182128867168987098403361121504289795642397669913734692464772258164469266530241742837438526754969847241323874723801481386637161868284380552661644067910250440773040003047007377221163695411320980864834491077947825258121183699508968288405661135839159710905726864693373046694437680109387661778009080738038350275777594886010984649695026451876344840154477770328159752268891214248460786717656445911192602137795205748278575864294616508746701286541604116760647419336400029275668259599653315505223284555446759600375192207590800227192057765286088792371667325076907857009446274324990599239692092608765747306134888617516958054860979126473287773727394370780530796511851727089543495520474620427064823992975572575767315692354378288450988191269954285967877413207091742613609565045093752957996485322469590911390137893882651637859544934442208912186973041415348689639403629476510544183300147216850216246496723329517855126504059420117232089876341992923415464878890895231330364669203545631494554881517824131346661999075956294465676545717471456425073266264863377334510056821027622989919435582881058560170738719316809934321428272471458639489857349470741970546591399683447758402019829536599551822605041463307190673437495068494394728054823892410740561250553421093311724616629173766724840094546367332150012733580876719343204809632551617932982573618043746462951739375089987868650460910523768432280100482866573380268978806258702326652517304726021213128287796783636459575748294846317546372884217910410480884272872871434356258159021061413748511033454318759125414105265926516999795623450898758122846517971051997983527476631270868338241054691185263910250549169739230518648492591187823157870150863612702544200374540455845183437478424893583539657999101089416013481150287582964357973201056722486911612139396755971809715698721988852430617599978839039495119967846571067827980406271885170557283363246904527154691093154201481192217367027032188893900284343829174850980701724720940472539836562203968011005548689044876073074110735416365852301770604833401212277529522403314834738542833918424421125452086329810913649029523981996648089189537070981872673719467856798756637359179778959089375341979240938940429338928169639432930575348610414836466251244570133309516539970614583996234096260982651554448689837912118578113859599549284663477945343733866122300212485296934169426318754042101494297304343133866117763278214365144037772527877295475490581919857555726725968040935342099552297398062892686541454076524721094769121283256590742655719755722877084148522741088384564715572689861525394098239240165214315602067222890510990774965905339805285783957900732952360568410794595799193505374105657782458967742085212064704126059364343009053729470761878196302643008222880939334547617952470923750964209197702666874694533150521298249758120458605279141805635761138051791491417020158677914106642658481229109657193858635449930351555336828057842207976052078386459308115234872638133879282500401722243420946242785546935318861085156892799269041528320148591986476428478633023785982419204939366379924754638906523561402796270910836263920948076349545237396655800912761517069210314297037705437711758487833823926592757785338393781871025046779706848534136781735099941935403730822897472306843488651100208661165500362619139076409921267656689550686008650792291276139303635006690228200278124215141598697840354884352943835151314730897436930847283227217823510623931126453654396071369511915696291936336763824928939435549364996947256834855869222327251867852482689112772736122635995092722677325697707209737473663093108316995263589782183836285632305854970734129721011365181695947635239252537419924236921852377513814136196521511697282079634044411828608981794442820030982110684746589654515835869782962645983385364172986197827828570337143270110140303767209234722356379783000655170117811992680396879651670044138146260373486068380042274010598786142700468127153873084545843498547173283124004745414948001800261164610376723264513838961738278249968991383043804562292263112972544631581345161715510636576718812177088573413748923071601940015014767403941745676492599068941636605484268254353423685991742059640414018195181206594651224480212439760048846394504148849976351167872787744965427834262167835468810353953097433760538156670079468912490660112289153635272262187927669764425084216205672298531754035135260231921681537357104065552737469456101159171350103345814052146119707278475571504093132427152329771653084413724029239307288094141595603876494696105577184221501454794508259094243843918268481798609492163711410224050553242397458397565697464227121257878900114221017248470886203601780607032745590322729501068916323506504102617658875483593816014655802690079486402915198535128943934217110271596944562716004553266762689296869146789203250105610788559227136821946352170145477214772889154494457381891520480670177498435407311881020378415143585518351556308772228522620542477944242358959771180657385672864761316561038654270902853824832383863550834264704513679405348700673905470848993058864624212416155354963925771036196192475307865269925153250381222999856734030978093703532937715293664659674520529203846887113893256464839680612198443093152593700281751963510658984781877763070105363006218112878314487771306689197019626366377162993720374877613249093470641344414443571567305748011063127225468410824591950914121226885439844978650691292703808721365472192526949342366823436857392460642633468409710839952478300102636192051694490074155822490514740291849809313382327498472096872972177024264784869610688939943069749024808351692106702222245613082763834965064660226508662370395190380161626414195291119925964262298812026407347061983410383488416065816294875533621528531213583504148529823269358567818450924608928502693547104489480849988916773593721744815145993513033911280824109614949624443229565034457048686808160419377498060101315354480329097716968810521183868853784147811829271963457645454309586060315149360326754336662866585960594681482762587736003408130561914801428349274975879682761871012844510599516701690521173339059186122093917347278868107242196460295788852328374102000650379658202086380153387924752738611837346131183416043094884617990974483664795426129214747364233670152018736562723297223413561958997709474095854464110852882338308149089587952851570651496658969839957821018106085713312150626257223650492681773921662784839546540689927836708409625955303598277062290816767294921105054965219824973197948087648282166158813569279223935093877605225992662263399412778744927606460633113502575800280150867913023233625310825031396123858138938383874540672685205023062349904167421252875759566902455403309570076517288222766725865721517007444640121899474947658443699530384582983196689160977127327746782288268615247626524773055133259897084587875979790188051807601955967983243000208437252284100104560092456625481475114402063587155771516847392334169484555720764792280676067727377819734085808232614361959060301262517943404745453760634570503578382801155348098235984933536820252604471659437218898343246726921364197966471413733603569538415521600145063971796589091400860104128594605346522845741998361185158352085941342267986064962463498603784232125558858151735380960397895754545095029331789084764801644614320414951970643922487066713794723394025046099872082578078659235515387414878172956333303027999245661154828966668525383914314372197717784508418088489169458602480679650875673844674745091593824199456984640666840202340812467745690155046118066536806152078454291258086852043470135261429416369140564320752563099264197039710512105861161121824451499203389157719735944485533829806349107301553355634424366387282814542264091011117131033941664970300048530116828016410156976625086875621043190413825403151561917164766889129486647562497352735611666207950704836537653839737116847078533529768904698897046170081526140222335442958416325341339586800586916776548950736782781015871795114121121271432396949308572252548198666949133182440855225182647464251974273782373229217647186494400484519325459838704975730477027366575987467856552497993744730605205090551448681120284528833955309477236597494102681221630658866499512032898906726258312335572930196761112221978404220184081649040444821878478297043897443207064550890684656128504134375315470337020084906397417433027996480002871742062393299322719526356397551202214626997167237579027651783392422342058195758611761888203748913632544578830336493836774944707309116704924667180564961428240619676259236997984988800239388488677084347902764828537033311569054866957070939315141097190148907818136135008831459929091443695580952327824141821217092619017718532740831322095532081210975234612281191969023478635396332829405237395456481272919022503491476937560580646081551756437364138808345482542635607217782554194028104137539956295038631394987564708055986974813421499460615595611857133885195885069625195147942684731184067022631035674489837384735827103878417172585536570269976868638104858346831294214576320187134737905145793697759162707300483431571156792536443899008363932973304081807595391573119723230368920820232435408020280631500881862192259570894262202834461355057952531110145284533924096349599699988085640494238138700540405625794640190783122993089626331753810457609448266070164717760886968415362616716507623045934268544522943569852949762960115793641073216367062864141567196652999616355082176518666398563985537165963693297143712813333006312697113870666222966457827187495842141300060767484506765495689211320305171264456763572323123559036595012958584970229932347110892883128441787729599998518192941550562095084248757878450374252904274615146126215386701601296341326770537057881278083005948096078107236296765304352924627148514418086443462053461575634382619160030099450180532209983270811503340120786009648827743313514689266333571453183529038266314186945986733275889473632724495418296649165040756529324746718892941479734797038077604183993789093034723368411901626275936215152691616420459000299991314924086792057094173841288026956268975357727279313782794812531991848269702362644761567390595548563516341041861318322501040426236526081220988451424989685510005638987394328283008110006053204696639960612717574756191772466157136219723950066382902830671953274228119420836519261841499497161491483330298369488263660908793120099071476654673424221774215632855963319312285929389200219034852534373793234969065735876469322887827990710381762710055830756408257732106574370706448487752314869266057639725480194777211947421907271687087353725062611144518006151379146549202073477973618919692319604060069179387976174009420267909239485138398114933406793902388700989343270586570458548905296123024800709466147772193087419448307505769296237124436966196677516832929067238745840519875042747226646576710187860086960532077781930216089988142791468922628615715873941342465917791174065374744892844140389307259199936835184856795246184098401438314109882664716168079212088688894452498777366316840586960154783844800695020622374143947431192259384252622394579235939718204105746406323180270875732257822556649565913810652288523561775376808251835242825925901476790568698340283749375361254875388346221882753877378078942924573882120084373911320200102844045208424453226604092754096795766031316100597975633879877829668340916120928845270282761733433517145755989306526008217299922643137148644356132155879082220327836417625945159648022390592347483827290113148403231917023648025450982615362266749874224046309990617514375188709423904520340194671534071602734165404770545909383671589848528600611529488279621726358829306458351655836803897434597261262262516952639636580392081616973772757660580263800953048454443556042942045793707483131040524378112654160756088139076738775394552302580877285250105941357331329565354565429297531188838978738024257456835909763814228960342132726732717764423294243758418135831904187143001623505028545097305213923907200593360018119566001090567074234987338027411290645121433195279909438660555202482933301892027369312713085214562727951320302106920081687507788570711947964116797381978543889301739020678906593080277599048320938016346291205268301309992989171220425102844526655522153938649197386230515247444980089751594546771682268068767480481285630282099334546107107964571097074095449520272503966974955231119287184405432249212497839124388345682275468713234759876575971746004821302673779762027526118467244159049721507398914997144551559649353996364792512637739160242109328311354891369028803699443536469751889280196826535920953223094381308157109683661283118034019678173070038666512106794242009799638732994196726782253220884970549955018363141813788678894458900512804281755721352323452760103716444556100173996188574745326282393633167205519233086380490052501278352957877411781666720273571471561505332019043289239958490537526398900079399252103646421085211726826646535764622557164006387179945915704292638671142292731478407110386607107701983154979733773629238028051091144655164240201619243599419896416341229421838293481111757330769339597952470702185027444530802356717735230810030350959150566713667084142556506993596468265276125166544617365501068333262563500147442052632297249316036428502131009106683454443671492108289859207786051770200675104325397763618774656117960905361670695827992664282518086791330468370293686392849840713315824948900308442388083151465540658361276765776315254399001856397914983708540532699477878906446763580429254151595079584892365003370196386663893065214408244337204620414043592897427795843781909202774275771011770290657419542546039221405791594626285899709357630593855792072312574710530487290495125350484808686471151996322220307019722951192028794658213658601529608766818289677483792167283280812898803783951357449182773238348403651755366357134032817403663030877489003869468556711622229860459029669873533114514407592671193780184925879211788242663687671114228069632667070356847780952680277496751434105823423821368621284580132227808411080282620489607017877911470130272750710563626297271762166645379547666434341792173562392408996896180300809832688579961006136673897976301093012877500791301619500227795777221340869958272145742948490720691112961383127749368170229014185212677602705085483867860175707985167161377123803918202906068936021949474370028497314649235340822876985519324520576460667219462619057350260828664142222015157047398681686011522810344948956721253773833346820102287547385630985310489367311316812938131240632747188241357793673242147131844741951934282541559537690468045786406338089882333706222574396145334321272579046326721462749233032838931747561009695024945232354134456201758749051249689951080118163830633136244763532749761277968072978093793950823485486525144778677830066084329630345641526356032970016908347390418120631726550256713301851557753973776743966561545102951622154932259635574258816232157790689840086614426891872909522514390745754098076580585097641616066288121170946501632829244910537356753038808419773036373467960959795727702984087106739144099848906059210709880963149245422663393968470924211315012322682787401808507507292622416413274932632640476036848068486414332461217258831157490503958063612839955589881145770990832070076808591668694143307914860883436142499664090938326781800539655352176285991847406931532185512278546041803688581615218545843429658337030839401939218312539724764788203075696023648976206566551152983209161116760490319288483861862868900024750684520165784284291601402702996309203603055635924924094787423955491039373469746622806407647148456455285668313911263398783629410824783622216378345005533106100137737823177739419221242072654205694572925800378819692839230122643387672285965446627576694989314465767970442840207646862023650562693259210696862619858779767987410764512667710415585824197203922480324552704781544797293891539544281534324677298542695846971992741958649150060143244175041054203274098546548099426864795532653544105105797719375151103066194195484534452947438029998834298857306203585843079864983042883137602305817182962729260195064282286713960520873939694847597442469968310211882743048381105262842066822878369069459723616587732718568502393514657466523286709734336331794156549919353599230387425614914853966492525109573298359553622512351907947598297245664001847920992588817452424695336406081430280147101740753595797818943161395052389451834840719505947224284687179154203930269695401737675248844589269307987763001616952720580354554740313313587581744374859315424438696530910553213369885974854752582451944007438531381949484095359766883473981040118737537407055441033191921191424744837620048012470809932745594279564594064417399775645183943864682065124159856099759114416950468000332847328721448014145899195239200012496893510156333103169796337371321095622906069832701635576389987470851627096225831366446743609731999814952613099608039103549548811041494779826095306241783402875160977423669368231758901218117247835948417619663490503993360679991104322580703168838212284116120762296556384373211497692345622210214284350652635655543127664321926795313431293688666563969186993390872944496523305349696669037817848448282465264907278106657743894169593403797756245509264103992115466184119903487743658282511148370094579645009564508633950813868040051608288009911059412697074807153481794307215838401006226654358234829938482732781714010865850036099147707194180187428290918104642391791619967565260794419013520958084984128121357765702140497932304567245546424855460253559393393904066836730758425280153935101265243237771291990458407154689033185016851476051973984096736905751538486370530417319807405558966233721643632330565269650310679559892876285686779996008161974960739467119732289924734449851629390615519043429592249982590710552171825181728503462089885047021196780846673584524819311015939413907798422151926310325227702669553021903748897451519219440663971443390688641212262296013742563669961360499417811166352823295371771679494690654628783769500657692131050175249518714872912760377237506815054286997022774400376268562213531463908385724690490173724865398240335381426936635050517143980155530257993375602433120257760053460838119876505640198792979238093852228104929630735655627453494854356334968705013896507170593057862431175502143185728814407380168347615738882488681120314674054556531303565825452766075982042397353689747825147497126379605751268390054463202386150793194960676660157549380998080543760880359487440566389845453304597997151619078116512839873453071162296903760397365528223988187022874157088224427611391947748382675873020046108723467555789967051843981702442533862714169863153488557245607724765422385112040771835551987246900624771764178946533212867799058025723555703758824625600896159639888060947638366148168390053569921158750354551111610811615635617286359187992634646657270540209779826673189682579936420288490462792110660702189754965919906347652424727543802479095119657796124379275872176244532365214830220528399047352738168120823798011991495178295131825448546475680803082215284543491973327369298288856834318382572870497062888234565858501725505945921156033646858475817120820387795339703039022525395704415993803859312889341820178866092679149921473332500532161064109279251627504918332656895726113919563189058427354342292216779003535052195467746959306269724732852818230416330624057857870529529448765648537962355612412803187736334333206275448241007696201797551451343927586324289034793148164948428954372250312130103408592290563495827503168466084426924710307948670422421674169246286098247877898090416130253812769954947272504557039922075646748095571100630478768451622214690481121132604019433229150129882206577376532524098825597362265202031810268658893479237386594247168652704633602288818907450243142461456226738864807696672551811670903002326372777376158933959163918645002371707506284714801064510147324631188648866213666242823236683335155842781181337004768839561693883862876616297567669921395578753771328248778136823758482565820675952982085146557095703813555930147702645846493996197110740425274960078980439146099538162849193953628404404218244889873247080920694110658320339072252456233587639620039284876313416079432568985885479721947311154940219712655074055443185040703413768970114607010280629704747057495191520337726070669751214366265117140252283945130674847698550455812400448967431851133816649618696718163259420384596909512096380844433590450489294257567700301641110814536638717990774805466066459302427724517354070698974872682697938995145072838134960106950998154241714873791730837129175692722445987456302352074693290010292492579929185145991847473004346851023739299193358021337722333781912197227675519667652576275817500491591320314209704761852603262913061822168243732378625017530374032271106573938906941540230298574881019200086047802490502907014911779081670814999195197503854695708852884897743689463900036023929264961569171034224642810479649430037056840516397661542430122392423385219974773721471341332055746554101674435855474510317933720754316043018958123696167851054879899645422838667575193983985374520442761700793453466654692332541775840759167866354274803137877001414403395915576816736270816039378103351506166190075944514465139117331701955911556623002610338564916276836789228126284121114482005362863068643744986924679617648281687217806009309672850431391656646367818889283397086617590607440339489384962078019174766169112060550750921795355618422673390237395394609492167347888285341753434189917060152680902882401213962142800611413710907751424421585966101651000956488080037787633581153199855509050144613971577513098177069447586091597546025870509610306256403901102243560986550972347169552057234582247561769277572226590910887911709976212135921667018918325855354250579825454669842935667413768008383292165118850749706859391909990953269484598980329904314428641242258575977567772257686453562232358777878008894718540908803799280950890379329176533977072061681826605135708242145052970907322088423360413698754315328961031922334353331222113903621898244822303708000052114728833441455643667010942303209870680181454168828822864965879523015291021758610083660527202597073259189298462711862948698362265911986202950112454188270844819574642245461866397470286070423165672181756332281472466155917409229265662650455602804923944101363306555506438978041260039231605008764359230873484957259395863923282145587911580130473331028972659717854114039047208018564227069728795319850566242060052194182781057011522133689168059844401608676126688008673391251974628479528445552264238765722014023560198635968888314016666403113380951047593113050736900371937185200203795618754920625682802722286360514464012823384351715439572042758154379076966594695299964843587495256524443725025943225395193766524654649605499519291366907657996049039379865104230133847969300067211650321687514740218748990420432124379758832887453857167511709015368956035988357500544066140845971922592686912195023396851273281826324023084253415956134252604649029615695952401684946468093938046120355347549288682171084094353389296158002930805357595404974402952279322540716508669663578496737993219889439729412193403022850606098847781759079667948466578135247253042174177263675599733492034164221327600035151810516275521035243728318872191573928857935059957756899906033576388302516389810212614383696010418869823297759280708047403825462255547157682001549634999138207273866706062095491097151179341303349310406493066836323012246152334508005512658218725360227823504354539142069494641865758701911999097706941347303227290441584073831857733849119571390206101739538634705844130366209145099543998142579081858683230444833590278328597040020610460731557052593129484288842585474603832385029219563672756153127025225359268531678975104334802595868423841854846355881198056660873948302755953267039811037932893799710961210388859241549660323335013009717168558508733109628565485007887871500963914798220942477751709626688449265934069856989038726619419982230427762868177237884932334423374135351241253376164064688527335676544456985517695473032246571212680854746827510272668320816103619202797742013462273391945490458307486366364555283701401879079402543503680741791317632148348405854304951523599427979980251870228857229598249363822738152090013579006405821679946348032351167326712104353476377246981615786421770579633233497054063714708193241814102065834165403434310375059665562914009263577425816784452704230815834116300204536105572382908793168112975368159406501845151678993469075251753858618332978049711771433785830430970051652686614678741646174221089933563407629598209524382536716813886623604070530963000769498476405197930992796399456651775515454816195976625225243114879018735334531482918739669772304657545309653176188807630381798982878052395470542863760705954860224453630925454157580769928953450687701821131379405470664043463878839017523809102322520183480429180037052812813452581772476801578554051724393260476513414612343443862448278851019840163084073430062143659408790437730616105338714625975676508054370867594396528090073633208313980420203855193489695982941399244853540106214968663764798518156279058813068184250351704207134333528965603215089281523012690998438064014474352696749073229219310872615957983695081010271258155851741056250972810510766939404164448849184756894589105941739028620024161887637349265046511321848029314898010479936843626362748553614868775779534542503542505171065048584357619933110103728211391168893420950766483349556174442908708501043707216211456614097475129265090786309371672370512099263161741842080280779073389223481296964544259301416788226560808833766626586676188685091819549662721855961655273441945974564649229948371075532115741332734290218052046687364100346986513583062307687865472080752267194615952554174483199055486648464993705953988616600237219897297169526488948051879201506469755204154082441250159166209454478493763257220512489020338484005110346195775644702713366139235446087731830814385155533797521182660655849552131968984728626058273145112134830070136795488582280270025301086851889818872371081626585747361129603742967128748186863367757292920316718041699456986196201048663005903962895588005216644495257751596774368451137063204313692730259108713635430775392598712905038057500121769261599190630261011937718277917795330410488997242465601645176223345649967624956504012068075982703405227979437875419623945781607185050248768206495814202380513186614325394420515181810867170817059963705802570252783478438457763908247851025314137536852781623509491166829027873533415560861283243862448486125525366133616176919238429923471032735349801245825821696845219188828095202026187492903289106651692623157765349519804824568326661541617727379587054423213665503141687204809342209448963162492374332276959378689574163715752013316703350919204861567847112296010705681542698720471998307324270135860433165822186900204517424251970204556031477419425709220621806190358658926272270258203568633905139576421114541695421486057734534686402675553872963275412420587130406362785507476255172089657830535901771078597775045323672572723554954801360723384250833203489012751496537066091325498134037865997543386980421180320309631747359246365990326472919218966285309352729705293645433698413811676639455681990588746099826636051068691440695590746449367279708549061449948025609666324434444126685550123885646905642801186488193523619516973488067173214836027049803958552998731681659417880823149127101346681458200749598802690461337494620265121864496878745213328606157129946449964592344110855705174761010255600572046961550037872969660037526946125337652616717651082022343636659249106731301110255285146153077395399244199576741638070540236233781585515519923207120242412695297766677828648811564345850104588241196683874283519611990206810854652242373588735077934469185053509867738822758673064454754607869088759158066104724815634574969010448836267473275498698605961382109371316622193265526595515038340373406595091958147648752841339689525170722430079525323068090905187305224802269454339427225634240930644006027700707521739285449556726235276118192823888951620345206537376097263817039211695739081102966942246762566622914140314273076584895365604572229605900140061354295634292577742552493461749844764177143432476589884310004146866885848744524208430927887582988034254644817108171482356628211856208604509858681569492096761650001047088904739632233471810178595273404205719361994092751886978229852543503766179132337350447002337342050581388810126725034753178728215738309802581164126371874074696381914602565432948328710013705219238565729272210605994512775134977469742798706219012792891108747661032307597427459521353171109489524176798463755726564374725222181916603785575524665968393516574705048453973649015078882040901902483039762596867754460245817486719640646371615549479534923755090253315316619754636682084555414368998223006549663515564020519213979108373696140551990524977558705358144200291377950421580479837360787981437284320752943508658243761959518889987012633239562994217063927721334183632838171304696142634134205505373422977553538765911923122216583835522420728901340953064243936322074574808674593094877043408787083895094722762148137419842199768689278686943421746501026161330680736701754374574232929490951537257677395895244675140665869107481794103782836581151496632477525383889536438968300767824613221191064237958202440425311452826619146109134255787733308853391830912647707469542532570025359693672954874874761383302836221310914915769519430923789365401810776426981670710019817845098897659773478318934504889211469155264266013892581797083947116785046953292352538610168496328111897728564830033827539678259259291293057247920505952225460940191324581781865038149209481894616291729502749021052048402423277140673869197559632301281071214665009741961282844817574371414920526657434933194192599857795049325356359758744801841095219658623160971561779853528350512570301138756445200814102033228699050092125859547835390419739763884330703525613249796354391878980170649497810522110539693830854993950122523547346669692446945882260746169340341678197082294158602923153511038480187078304540486188455641916315980437397340728642244508413926294438411921621669434861514230476564575207043740122982667756601603290436627763544241528416099255928052805196192460624397184201634661421712150022731389866760229968607716941486922534999536255219659165966294302557491948782466405036562769575638233961945841164857473630219745986710195624480005174027339182319074133787948321344723245583434358132660106196610092563140296820209360401870896301079402453664722204343022238161190820131380992629929407066722631802215104938256791782409821916570431288711043932564421808225595969011892155020495198809977724323300544164587569840523140092511143643195246022269311337204187059530339014877010194363462670668178154793644003269629243587800009383650968445542847838461988962829757373496206050237635791754429947841774804583209989337003577912232917473024961796577813502284187143434988129602871781600894059471129975149415839819142467718376115164007892615997688118682889439476930598471268513341582816229530504263602138807755144501380805604881853118965189172470327640626258008438761470513137271958331391043095770062856371570662478698866241987091086569330400059294606067298088137013380918124618763449685712666538861534235007403673000973291047445424012112620356943996401260719050886213798721929021544774354551261092203898934691880117910087449900211532096268125507190787733367035309244669476951944175062888987879159224788794309438893516392361442587965434967248857388832571475650489381814935878913746477223454856987857873462156254072583356362976494631077692160026334856976141188732479056112081284671998437286312984799925815244419690395432954220758582176920992526936710977967503206589356027112043999695197197751746937667540316725128329015570854075022913263597817567943253102966389177394516383083319895652707519695201773888788185845062923915926696758612143066078355519012982466179770108346639633327406004625461577526514791922886455268224347186953777977488510314782257931832478467094727246820396782013780491339457196790695795208615242864228947957659942472812014696620749831716338850216886945701494778701208401032976587624173762223195963770598442341936465899856474984755492623094188843486374872716017039644641316566766156754801956974006924134848313278698270294972671927071534907313631584075421053843932862390119878502328472467214451349478377922065577652592368023191937225694589769130065120525802341898426599147643111089666003676867339509299169550279955935092388955686319709883681313604336083436751191355346191668863928832063033676668130132810396525583220557309384241389874018114026000496321306843890110159665579008118829680214461440359844684159766690607714458480961653897458622307078302500080956805519100027575185698600330325348194058291398339866698436325490336405931599500518822497758566124883442192498864348835737006734350254782798105683091413196457006185120117074419620046424184712154599169692921265255095139315877548116634584213520205506961764995815877595341788131248833097026205346307681042118461053033350684089930752271823632365455745575156445082988035695816952590946238509180383073633641598133772728389530773889843813247603332406393970264716307599819627444064676199158464383026176285702643672417772024780292926341776065250548804428117426672500765306922282731539668169133553122900148364917895191079521076129752829405437421706793115142692065802116243000328193030137838662642765158021946391405380615053418986772193754470048554604593675050024809421961213479047236322786539754341043016884345176513663264456634320898151577268066903366779262373756191123799501845636717571095718381725387725404863760366215988330376610413720363593351819069266728124113949711924587624741874628591555868821140810948865547218877245806499780443514703427974474249814943087458246819039561521868726274034210757741467495863923299455627870486206459426120069359123652100534114794983610195940179609139192381246617154068198348766738727395588392567800809252908721598187445019795209227809133352345987914505519882384541641925378202366561049182351136687089316304956182973461299793055915248739680297126639698589873458634438638573006663371140020584807447589184791062846901346867707096730236678078304340590483279699808194868804967108200662675145462437637449635214684192075439466948432088467414931186144765884074571475397030235349262536854748496365907209321346421686589641782557932651901912313236554576317434893457288938885973326090821595707260879143006397953726712037448931557852937104689451105474687901400452863386760162228790182944802038338000067484783554035848413641660763252686796067443124648131824364573225762338733638241106617536472388401949458189276012827277681110504986806476790853156625890480878373206033422903839307658225533168808115730443168392888001145662499173620145282253603209853546354838631022729000655865188119943059366850397584488239066295864595667411338968999455715917286251228706758555050792365962940492592444841125281732981843743919678318210599503081342641331395858030225566674956700756443399054781418049773506620335511581665597988588279264853789187571527984760979601184197688570369372181930015065722484441197181261708253128509586220743531236536620393685913326192068422766449474476901871487743626553498898788203996183464042451930108848801494128302216456675444364062937343422524481529774841564072897646287848067476772163005536509655777089455920470674688191405274254444282646657331277385193375700280507242255372409317386695627098823222265163156385934705074254188218107721292801319346637796501285392759854264586782340657950777490527949405116726627595062932541226021152858532546802418777332768604065530697611407791852081035359880467486404844463432737312736268223967826858518855289137144325703521149308717460735938288851510517411874732317892772367850488866490289702044293590788509390867634551194631249014162033018954513975236441924337176877590549738188485696947723409780520755424352645559786076387510650663979575606103781276383419393853532461056820796371980197995419415659631466687081796360648383460197588420540195887240688126969357310530206766688048217497693514787079625154032038056061685859974673631101425632167926765296758442265458235552366504401111672815616344923107520789497350519265951368911126549301995142554849361536496369160741879104231888002189511880478584469220585259120060533725663465589197789675871773708603544395130705047848007265080313588407018358532545476845879672649383473892150370710392453165314213937989848636115327185486935828322972542062174628623724246979509528492563711006743077715786540232803843364805962239400803514240008151983509762223292449439556472974519853373984046104339245109480927793730052556786803936369969420818928425263168744590546039489197815756512529887729505147039086120452184143433720931287691535763071887537649305395723787423776762124115455026617886166783981154269050989430515990997456246507273912937338561243436643412860162343096585957640256554159165213719126002938117463370897818498178195325899340520083604038595377434242963113851177860436408836389281580398930297473844072497995980554745694589997881489211174545404802114532085924572018053686363939804574506518047941128258202530365798533056003653261984150262924859934388878224350025752555996412377997656193344600438319834691553743119393934452699629117480837236030357280602320216602493566804888747849354252781038663139413626841872093643506622774223363427050680339723584622017569592199728042326149914479245947413568931002001871904435184323222157136305458702697304984848835966168533515594998268908023941833894043609107670467649890260857642726225001175968410990078070798151389481142348629114750026711133003939107008648869088427469081888407046867341692172776668090611268137080766154167777917918215676160577894321678785900210540257996426056478539194740052478240580845932935912191794173053837517336487297996851538168439600689140808630108080142807532124041381133298549254752209606147172014893758879228649675449691502800941992768902378930712034680029563527917536726867248313773883417357458993014535145705252826102209493011292678856251273450172751953689883197289094671995309191447668129925603908586640884119848712999873977660926771125172644664910927012377722015952337995968881292700341201630774866304161442675278331411467342010998163211245736214287652341671731243347383697569389172273539953824361625638774525284623306033471310265173494542342650625766556985985825750080700316758178003607270453748511985164030558246551711027190010655378274961749875134905769638894527880326078128275167451412449201904226576196967068391174492228978997755514406972377698597435954683772655858481074845678682887165535781650906489030499142357028985655060817744635449113640770971329044032273374594738615377692517691935437372712772865389482813776028290162166881890388972924785707247739015238350991706723491382876420641657763659032450110582142857537306963495020668267107848330987038152820788664192057261799376985288591689320346551039491454935612068803544510332917038369981868493978223558912210036567249463730340911477119003447941686782030095768936774337706492419316849298389389989207150034222390373587779021170813321742517646852033088621876655061457648548076650516550179767379620876091737164270248975357441515802336290558979498739374650231650759251367673579605410606218216773629959492300217981299214719983319287132065523776865154606384338025913782697007450906086701225970616692413799485971748396753881310488840645435812759179297734253476759896811253851492378533381132126053110734239298619005774401243487408343823833362852773829514489496426671385011691903111734215345190580621830273510177067337430381657624336952229532728468470464532598580720848317735362577752960394814392002408103139587032030339231457595709534344369534867291530940370530551302856107271548268375750688662413544161091733081840324189990399609940119526770554997637271680704584917015641330309386149925319527886216048296483628857375753331792249806754988604718561355599353911537320312034655732965012964183587869541249074095868390151265209718163512064459327248665706637095760674631341630182779196303385089145929057827102053454240236447939934162554518945635696448074885822422083264107208391742087529408370249365644855577847831011392219667681612813634926258677626044713499880237967085492906142090534797999770325150347747981546361021011143449913056826305425825754761608565146920242173730833079001658892808254571499804192124653903980212058991322597476371803315220379415392264954339746799239188751711583201897220345032810492464612867988775839489424599140034488240751142269728289503759168645933373341819194562645628763831331229888909799658997872454262392791507963682793268792399991221689907969827423230890752063204468773310991486942597813446720057866502545942168965820859863660841138695352782061894476248330795906024715467439732864413274783570689997616022302850393004791147294672132263590868253072866319351424258535760771706738576859240561287267173914331701926912671809039742804967787705023532183469450393206243295072397105267645328424435671177974469254301207653959872313181709889334192394090121792422993462592518219227622346464233125992815131743785910390449337778257506888203418826238311962609535053715224227332143478022892002162350360812345944336216081447774753389395040418224014652840244030551767525774528854106000739587657341115359673115385804272199660530696053892198921270290454249321110671126553043502743792336570288670336181185715824330291961148997643953479302121319262388014240502357481504109850526366649755264281370810769058298818009959768931688490148603214397252770615922469944684920086721162138782686146729388509808706079840016450733786934400486288916630808781745680801773348112542462649983842758831041620278710049370783679862701696617291750274793984518739725196052924158784560913737826621454001961450628685581966763490530108273114069320352656226842594599316797924778489852376888648056931599906893326419117020129864984484561755472347413387004224352556233439283904965356859927019619404287631992043864650162138743131870614091944824373160156741149678181279273645869419137500455369534663947559506709970584788686785910456587840261687442650569374254323556096604229293886565485236240618426893763384198171832349593038706538064042795453009691021637801780898016734889338652554962106520008423118551628260608342032730411904274492536396075021937710092234446434630732680408977021914566930556244197750972371364563166336574858226284905520118567566371738144993687003939809296833983401421117307302066645519933840030744349060224182137106594403327156094095012117957597555846779821411585447049918714463590739787170683932880917136884535191642197652196558961913901708529762065188384665583905073254589481092392661748144099844847232346585243359546568175283464075081922644855176715826286837665104955101214094515645116893240822180617594222853993203974791296320179137370312846464168638803621859512526997589661756946418387047815287725594775479294027784927449951735461416091549601502081691319979953120087509445087211396038530383394857531869098038355746339051159883448334510062614479984553118119597304731404268026567170019627904113160537612813457575603717232894216436778301810328252959834622701410985692485998656055881109614359865271239329599379063669396011443377308091326666009555443597304433892128948808443076691647320073366495691951332283176631291422922609023715451402727638541164060231542717444376634787080342188494282452569768802570619678396545627190202775858132373151001113132715464663306774429556105255043515461367923664142526072082258417325906290559070247237477030050315491215383149529995888658687237173653374880317854646682708803112841507456314728246102334065831318551340756999581428886589552088632096636570416759287254262403677896458812069883296505172725882927358828602328035365195710335258479448401288880888790056283331398545690570553892735954991270345800083117702506298609152960270175474047061939139090696908337435687264780297296022751871337260937198864917922337557304461409010058870496379266064018146297974615564263151502993506980439368291200463457327588344099335554802881198876466294302561961788507767789476925493874919685653745879565928680685289528640231067302094953113860721290448935357625588820090279791349725244141407256256327276660864414106950066679779099019515896142168938619178194000421844423820318835023931811152377346464796799582723051254754550780361919353248924235387882029270706443410833064915942554936625810572951294253108963858817571435539865617555706084589455584822127590719690032418520602247783420574586078929612367280141639715829600441420793841370184954630035743704786300094966621344896799319615122314589118033560022704810134369600201230627557777970371848668671347817568597976215314002423770797380169443770017330200031817835494094719362780386866944896207541879807259803007675266734008483856294841650201997185502544437823228510961859593134535030655378899502693741192365611897877047028637633494640832114620441442132344796884149182727096207493304453875274340844133123456503249791354874071196048736240706148853804956011656016613582343880041571063932256821367427471800949278435922383887153079714306580890027117480656457905868961425370684184884367797709486165231140521551104341847527882726223402480949539112725681369607488013272136107284073444922285851690957304573705011693532767632970163421222474092690207590936203949035652992967526718819968994296389045425380045597124623159691910857468193144501628288415213794601519280333749495857878487972564462616108253401092566144415153158589158116218930645769127465484791242945358478786133054961723985046759586908948309529087590495029978990048225471959135170444516073627177386971641192491276541030763744536084733915995968626006201931724555693223357879277198963335276961846851769040054619438749525735579246156628726950615465144059879262571511436569996159603841958685726455168895766422146713956869436149190726453406156847181828492936896549848895846372499699148326960360879744938250338108048022549283968103903013083808765117345610999173936364777318363748227180378517381364407637694194843291067940543532743914908691685388958765621164697406547151029441614507833746294923887540526228943027667891610936692330618016007517522359075174202654246879478287358006349637592254417667019075134697348967349033590736451687917881644285580425975454297880638875346567745835952906539117055842130275076593708453445550054208393658244249932920408452402988351664064506272228909897386399786897331305013887987379128816828343171714664719354960363232900017573970221727016049856662746683854234425775241260225641602591181303597650968073823213567058165094161498348065498026404365640757832406663180789770887391887996453193495428477591924482176124758862902732212441902877521498594952068540918065036568692197406898203250183211054711636612269826301856448055993969064071867474222569690914400043341623375881916866958767311133222716322902141058693275809395109912209216432586594890029341471725468536781644082803273523822991835123730810873713603494388737903949790857071909764789017319298103306086184741188250365236957474072521763035443903710032092456268285990943141672654094214679787538210279297828099011627121738249408245569972763350882793214541221256195001222454968026940037220079542066068145125652447284542015670964725267385338400452109686838791812262503359879260839223350132286085680910325563262592417982484181723125212006582997699521823036299462673440705969136050813063510148137269475898724837940900745912584778258971654820754771325102637952870275645048876990804444011539018675581505878410573247303068148287584474724077797450652336277534210018790128573607788536415176243871245875707543924138961352641604999056864753064452666098075395022534570040774076956398669037050064500799385997284023181393848173462388801626256629901672590809361905324882774544784246259485679174378380604946555377027807055942230199182612576059097274935867885214875255824548040608978767941666479657478020415879876351807012333899245693164995242921564344561777402382111572926391517181208480221801762483072448709169768111936466690081844078611542318344344628746360427745475623885629894392752231020924549762475445902745593263453239970574454305392375169269970230441366892678218162736511497255118421675340788943628740275323877736108073177551898914514125209936030037390726272336903046340542853695638982805940614400039878977922093516018242170556953515390998629158342758898193747629182116601850790159056746162596133902843874632370880476779729143882453477349252464743209614771801040220006404180161022329045980735891300825895026586917608811736368051697086374691107664606691312359271159138880561666789013431069083945075965173936428881423114638174312037696018434806748711171712467117237585321426330831788704364681192025465161346625130886233285296271441812768634723957123653967549255717522934485583993576348819326910672662533043793757348251991432769932141024582854003126023124491719867984162021776650603716633309148556515115005702454609681943817980461670284698986679307725456007872532401126211282527983643315122717802790960238089155209005471972947835092597075063301371204442971080855233825447438449617359438806486866167414089140248088996865449458232612570946516177496790854900777903498957290915860305897172099958384485615824154972318592859255465926900685396392827807526843711729815081163623084564419994283257322587520303583930377460339966655429646291168926017793583778828427043720945725006949151860088625640649916716558779654447851839067282222716219102709622604792233746139719027882656271197313806954067638525083735955533538030892547480523834292887633536712769027726599435806986885482943437974791938593921106573060546900219239261591543789191932034111788858362922531162884524245865861575679490908598595619428246711093925238594833548099278205712487431769312799997332141653190795081773294038117725397709774982407968015446724670433257855225179750486051406740368229319045886168676182143365443036842012397467472742131629142399282516496809252261911324920801558838684262741435723352371640351390484246377041098959703609789770546925259424741107961213025945087710084666675548946493743413177127148702878346356767550577058157680129348175929994528503270898800652385800354492157806236988451897631469260576010750464389550042077169769857148812041675055337399026273604040905361236492695603788454082005547593256239819784549324520005716542284763612679933304904040481054478546293227679886861397545971231646628901631154250009762562378496617961683374258317532792189433294377384773434525159647021381427247886385922904438103719244707687162077807062471726316186498870418382368745153086698633858630455528621163164179214510970771326581641081169392371725813952034872113278262248402120638750068737314433435290441291066901103834825513243621848428787116961706938192079906328203809383730161301067045154310122738813790410585967771371299378030663222534607707817954356582659395031590023684747672637034224530584147263173228283225069844212758517000418911332265093383995572889421985268082205713294727722627300258715211838190525643045696236119527368363474408363167265455647779518156641496471609635699764786928204447470730287096566393273524086397008515992567724558764810084082249061612429589677036633420548909121416983179481234532706053527436998958768176785189830896919058277018535762827700473081003193815422198060098449875593510491268859865625489867610037168485460904997525418085116354002097654543114399898978433702261959606151698859474757448398287052482754791955549306459074049038531396028853320823295768537216536440713065647006828434417819635435073062184971595554193782536533523073487399122747152723685260694742010585896993882179676996681240158371526898755677655366677300133426692642704521461170466482757216936751806459853814503648748287424063491098657514511411861615423446137026269024476469087157027203966003488481929958227330122092786288460453316788455329095484704200615095283331636577783836686231103320156053709267400845663218720956598073951519243918905656613832341385626420872792666041016932835624922215468347386761077423136790629184228712292090761639343753106396640053844495070369849450372985005940306683219852678304684716869213457024783646068809817993367820488978412519856932183136618751780450909502899201828393154373362730260045608031822000131689794419818723261941616552608686131329542853101146404715334632935561842922259558151551310187985876104505440562329758202005201302245757150709030843584114184482804711274604944248375533955672810555162092149137974629965603291666531758743923045332484961214042347689967417095986759402819305020409327703924639742802178735366105173343728369422466324309965556733562394452249096901325989459678856367172483654177610245624033903221811444960938928541366717681148793778867734304405124241085943779487404471585431038360044507424763758405822256289684260569176459624905218501415505440140724981034813543012871723143174426840865064949586930333913550029493494002047081371497702997730067009849088934348626482404904575546584425357520224874523381519723676611606967972246172862900096047464291198891400661988034131613157838394669752226924040991766408379320924535142745345616716866685113460655363278806085697499563602378055511806963406048994093700657282706597862077023950205050417224430320972721731668967148840658196220496783247190428889175697698383418569014726281836650606518341412582309211797143528398306253205782773086846086126254212380206061374457254745683431827431180836664570800084137665587385651559031680339633337776759848189179330835758277935745314903212498665061320496016384587610371727836462110843142658216935125137200004284608381744743988680402700775640807079775705961504855486689587850217745662923569926996946456956956826880701889755252551348054081150243971232258100241498281947433021768047371411667826334175299781415364479171551334964489009270984704413150858709673636936543331568224311332881501929937232658495222784141658829332400478937602471581484900744291673844330735290651435617630581793125404317442311109415190767275636212280298910285401383547440606305063726637619596300152899332825628091374994242163784389459665387735595033357389836625825137126430579936774857612401808532012882982633554660929523394729815900678734808214137258979260147981483613492259536085400612474241912370452070710357787909227229320905622288728495905327101598836540543779477685816464188859041067671060712027068499683689202445407188593742411247891742575280034165043494443032948975801478943322982159764188503730467931415064594835506175525678815666934959727109952621062826949183393844739638608495476137441055973836675797308841353870695386451692594393772435469355951137260161903185618152166741195849787921024481490688357830563466102161210127891950590055138314094019149016089053910169755929227981244934560713582838650188357872679504235421744733695328646586408653690039120215411308810878427476071342755972521775546482639046764403852259878778350962321383796441667441199231795551594590229281616064785834952886467128754425442809648325531676668397351348228959184431252475412677893509069585278097189076136539142407165559953294728490240682267741841898170735275676294503877268820184524086680390596027410805173775373743855535406937562065901049404381378573929691504144087227185135195817259916298909572945059359175695513748231009301596343932180792231319060048397502588935806968510188577324651605473718574462918270104655972818300466037219686110799349323295983439614802217606959830574870628209954604908107145218741291306189043552741615820814751263538795997341958691686831629833218165474116336516259413232980494810983333831327778667564473082800469220053274191302641451054653623794324301120648657351455139603760306036943127328941545980056302396817057214448541577671422796520986657429006756572499663799515179144875725045044871612293509844493498696123966514097898605356234769834291634903329694674510631147800848027825977285880010427657265285163278360268573070969680529249165963916993162361812608737517658505324404087463955811158718068335523405716588617812092305857200192746129318832496598026226848974967003955999594003790112425346574466508921353896531876113040810762305727841237388618951421503789206128558844196616404182810024841000922072465061973079118344457360538568677515093907145868488303777582727921657979234162441111236262272174679563105764939792353662062402205970348353509812206486089650707263608061655047066247934738134849335434533073404628222512282230723304835907378467692563985925257921025103389737526491733322616832630306448851622614756286380257012440738196231823632792559456497827626736002992829987904999627981011645764978756760116225978293219512229615831322715948409775114793180038338941255456384683070249141644235336637371677952145690764393175339360593945845859513456198071896007080531502168441320338008692342366363527667952440716901858091004810216264588014696865382037589031811799692324411994323619787778532345166949840430819177254247038329229101659887147449763695163561777394087918751706613690477757088388687860152680351706808779175750400250268376748888483606631917298891756320644009606926418760043931020816569867696106476745643810238536013674729543680271808360610598840854937553300511577291351194370500042401163489881945504446486195564836719477963951333292471198320884020872554095656154239436115475857920774875743360481986454329797640372414419088124650819198461572487647357600005980259960244445011360630156458118672577251364409039095794120370527768878969921250528070574195111951137770000309521962736563347436840206357081690110787539992844087083382643021380791704012924195584052974644264123067522547334455329282983077142941768804673765446540813898700091939480357069775243915940967660301923448807806430775379103467046620367000473438035821401798670917873284129229094179940935060323203463218894920990940640354361763458074455870247345317932695944761417916234263283978522770513328320902436335984417336185908117488896820964943669678698528105899891625757284568853933690811303705416646924443658609753370495105049523418289234610236366459611682963659483689296805182809160149061979832774783839155246789109938618237327218851274726536479394883951729968805970571268851612858154547926261480383808214079276261984426792571592229786447359650347185675174302295282060007304592728083529004214208932257405849100968091285200375703035767742647979142315704993896926100556452880974843636256457152026508412678782987043499615573050525030477388679285461461949129020361764099677340488272195040577298374016472997360656775786804623443504384312498745805214491506105890482055415515400456186265441116721608017211728501655140328467906702959045752977134495319930752789891326670617378169359927978694270564709055416495924023768337744722226964372448384063212022993465393144953808507110269238281552645688698051797134550750939933740216921188866615451810826787808220531842677064382805437960336163990439554012538386386119260577803624176276399633951921571557910670834960161239734497392664656682225208287704609275791012153323215984628424761173897270394420633125276345995908582459595637915930129815651719234441617070088078553391182545180004825107235849356859860025295861129733099159292306116379196212143450092684536486283173902838591826150817489428141162295082033364113994254040752732688769046107648513975632580426502155048495113314583609895481465545296459969751935051061689846436134134849773625033381026523869313451227719441203503748508330870055864104340177498573282529061331150754253761466138331833644272197686493824822808319132275239069628749170697221847878727217165037683199549186517783746726466698697785772351584099909738331802090908454414559223587373593248495286825328501012542341891444189603301733563032514547835113889024325994139663933387852945370146745058483319795253146414148462269336493750039380061885006145798591526706316519756588943742474623703348677673484513042529474483924002144284313741086437816525120600615571557438744420280884293811559488699312156186023193600757661652536411410547420214234755433909559518679178027884909800721013224497609072095317125289314047118223152101842438327037355776214296907716595102789959004662303320882617359123577038030257949902435828999117882065380670582928668078211470925435595144081710187865180134182407324186653411308447285066049551918329897291430860568946721866636037530638558162045703245295267080252728656212661915517843455132997153164783391918277468357113051540563104138350010642789165808464553551255482150484509266207851177516065165148781024108277022313861279876582912704054847492806365289105985100723227205670025107673359819535570314516503770079391503665744346946371025617737771204653076587148334444240259138315141302052584396554791869966233869587662371883407191302812128551547568826102006827328897308242738262053979994258797917008369709892330365374542470047767356845016243179037568711366914358672327090787760828335070469660415374118318409131304180099417929567623008415054372224408108151630515700379146790000895924301197223599594204959201658397835535556945726810235450700929933954399619007031816684150735985756650236852373213220362628227544179076711715087047218941677170566790253507796993909912953496249941534531358608571554085346122873509748623104853255943840359440396306044624862437033200327314742595630431693266215529785313910730514729475045236030735735914534934592760741851681783090638146237003154170017401262014531268329927558880260154150563006825262904315484597913322747009825622624334571870856190787815654282329883695894838358275622695649103345429424659358385868260765314651794142858944613321461221991676640232989124110533492701077170003001882872043117167760103254407766624494194887294793193020881723937817628553537903815385312068285274969673227593090074432527841953820001654246338727337249351504958766465334979066759876662724839613190126018088311443758943566909884814698507346244910767089359629392409310999097854613298725565696648173357160630749443170022595077272470462575777088532891554254294465235048516018280994917939321239120307959088868369084369945980572924632199451808966414603576553097951474191055834709380013941747431858001404362452055623958470711226542490911890923999312826588381826883011478180909471841334592412640069278894360642874882953883205246448408854418442818098536274359130523932548225613242377977094778222221224664169778263193974511727210782888773667838304856788959301119802327268968051514200354448101189842933843283346482941500184244801114933845912052743371758285699351329868026497489855327364621585022638509422199295830860335378570111046279745469754904531355976208327864259869313188802827876225015746427097977228076190931531532265198989278006018604211255030838337704538310074889156224072858147986442056489660346069288424900683378545470176749789425228260937470567718108015539094972198335423487080536168812333932364403176477526883150338214806379374595453937262170317461412938998501218368104368025999603814412612686364629117749819213067306225376871737530282070554334539941510942584093270971274633178678714041175743220647292043306079891243281797349617348730119155521376677485314602918467504400067506212210575468076807998274874762647290594659688327366416343858857411471958471396690949796945070060133161993986219443300015912922575292272117229109614686751095018153255387415492382719504740447866057132319043845384379511184083994459243572357202836252862489332103458145269347961442295903880633427699997106189327651770595360357149304158672260471552116436456109077222825899998244310594050782743613932114652850358037154337171699605554543391519889386256163436792766906298179408530708419340768565091651159966633533098007215161823969094772949569030232574202434842326874086469326958885461433762873333757764031706195293047011501789224070217969768771810363952072527921203758012005090864030293942129448651976282904296356265696076832251124499143718712377896608282870713874596592020024032174249101649202089970393601051844076187987794146347144972733292811103288861407993602016050349068518318294775475166099121185628978548223595458124871866553061679692756633410779177474009999668751810247055749861201297551810307629006841863274253226285552014537004278131115725711912356930626644549439479921186561875355141701987005807968428282176757351026226894903667230959346862475076018704018352999084575861865027598950799606804036069298574069090131244775646249433812792933051245014067796045961681198678740700589135527452931923756959962409434201408983016493003245443876306797041919534765683620521469283484122615493448230763813517802479236451717315833569274060946128043334942315017362308108046725378377942474178559753931885657175674916125946969220152559145798964155173258753520065084511520776785270003756261971123990475685889458294359668201846162605905444435805549825825549252758707777495009546119291654896865133659906004864408361212513371000490789960262595856464398496832846184960333655221420259686393898446969863431101873946976740251281131300822067022512886263978915575956771731166321230648817540851067992546291081145752244140937091196448878439053714956684794954956948660954675822497478195288255156792149629173985561002552016398258644787588750079435541521728741727906148700049794939206662291063959636269051093172039361808991162972346902400830240444164232008098601569165773343340257382804507509088164518651197677562157187222096200936560640700066489021990183726050974905093562123573776463559475479168541113330919835077142956893160100805194061740090937318529074820785241764116481368124406452384871169688218453436964216425006864681027522869338933651288727739633535341643851812102986499748057064106234855529243274145995587395984636579392085720491963811915398991596053527422729813719286593649401016692124002609819417154908057630375902135208891301395508457390495396337835241502757131519220154669642637303904972484695884121386420335158229781732576389332851387643522229847888660413075812858145134901455444052616622052859027358631819454729691125500462783920620154582649317354847430671126595582297705924517184668950489630568861411226712553897377668766380656072853001879256470684106902443636681584722422331098000204863653650606219980108897753703956675611730789120793311506593412704196471561718784265405138535044278779545473300571655973958925595688032305356453947193880312285227588145134140965513955376964797171863191298496691019009018080509153677348184267208827738177152321653752304415096859679875881256573133920009099540956554578666293457183529612405020884922636983213752149059918813998998632480473676008968521534661480378173633912900684494268696618777880255474517694222065973184931356403635885988256870713528378659474628178622172256385371736431541895918991279592286294992444004620561331497448004609114115122924988660632762641573586662511226729261597869511342224091436220948781732012759495393901145568817901517006346959950273839212851396795807707602666265121825060781825543557981781569396600520365452685931679534163780926273328187012911397654363108355658293277489919435190957251443825650305352405194460571615115565839463640018613613574536723594620205527959693277718551595317500857899698409476331639484939195030687106329508391784800467746297482045572144497552007473799657453029804785271551085386495159744685535805973026079951888503164156346037361882446948374612685852879847372744510786328573419976757256212722462611486458390288916214079647774083629748194527493048727121694934838901379231887442510486810256889945658091622636420446782103548429461106007324935708558505014931674679561221450648733215279146789195994175831420620531695025461999951854094910510770683665522674118390458361787491972620822765700221123191563502387263605861214570880850305255179296377479603417813482532445934088788034286211171638538108465308962468195633071958898955927998207453561638790656217792415050748507607132320717119276800278265822104717446154418410365823611323909528806112787036195766533005072926565943145717045479217925484883619760995094165425721300531983118714451703194813891641259850166713297366333182830825251860680702311044008821198855270252611982587993526102452022620803299119373287263450104608121150856641859080608459433480692962991833603534812098514202463066767750666742141174426603809827121949466440861142866868837566627378108979193068548285785505110029453033259407778250773616825682839689938134340776774521173157634951778848775641426673095183289333460035174305254133691659150339572738072144022348006708035397054690044931237638716097603722159714247381318575956860259632955986803228957203979045071394599697222803484615955391059342309624210456139489185448073369438497935435108920978970926920443749900909226693735909089271326301277433985688103841096411510269274209875623135754839550728168418944711355096183181830268996628898300439672187370079175718413412926709931967059428546869844183894292221250452834109012524711324363219254652339190050055464662208949814813412960911137153208418668654109984357776841634528316813327051423588710605574250056902461847459146895895553804303644504930492334792735821623559600906202960403114358115369460221331562075160657581468481500660081199715441271868621040322192573682659584747948639664829635689336176013767196735732564792165506173072603266372394923622346020097832529596366985705751332587313108404003651112882957560083368466780754253756688119575942196185673142100795028088679397931940369185165205659105859298320740317981660277728978412170822385062806844860821526822349777989229552320657959708725035255217533040089077110445486078908138400344870591634463482132945325667441006071830712224440215465299061062322551009606474569510944085825128045475173641247991908711692366408192351906682323886550107914142755407756620909029226157799347280753485980593510252527526251868209208717192307015308701901241812125148164535462677115217518597997227937511026185670898928242327824263405073520567894382349124155876140167987803856155107817733818438017576328934974754249562550450975145992208878382376373186581068399067385584159305040356208897744149524082246720620264594551440159625297732369545012689063455708625647745721939013918022872749367167751694931411969470082089034846268017698295834561260981091102864158102133367040893675222422591760289765826094019709727561185744796313748848851094569625268394353212943367182863502403831928362897926882875671477434636439916112193896873771110960691881958742918034483775917452545534413041464169227828250573474778774381235081949873104045422273556218707462963576582735087699961799776660209033015462750111376893050036247295264612715291421151819799220280605291684665843234197119740691899535931832750078955423652704633018014525878222453118226381820958976889364486301547727322330388237452850193816150880937644694143192162822165463457442148009854751549710257936024055854196878910291281790175403887794819779803958073511882716283074883501534352266758515134060465436315898848299450972532785156304608251514377483732586693625924080325003791310389891813379884726050334436974571850865866923922181976698177378332959683211105079868605267868566808724160969875247540390982483268284908224847134040989998589278803957630292582810859364673308036613191233332151102057877612189157066205088151233235096530966758842790004903803630564936602942176639937339699001256348301483513171201695077659410681469117286419938330428617700392981021199151604335556915393726169529712888059406772291005646509387335050516336061525485485392706027164732267999550986321325443293272532506873188375416851674444058356060729048550486822047798335166050223648880319517022774944928278957952846155320177279775300248926088338917537493238088074246794567421058795499537214353700860346673784473810973975283880498634740564690861860841260085786586672766263255532945936835233580930239604110976109167123116468918770631706308720823645743900034666951028958099407807715442537376823355566834519938681479938555018093604364165393337900130025434468587859946082216172346811525789061801090872049672103749068134212933049533151128136927354454868361434361132896652358948440058730203269365030143812055444745606441531945571645501481569582423495406548057798714831950263729085768443603081892573199689534219015119951069100728853501701053085550134932050801305648315956695769695137674075083769401341938893830187770203672444996945637293709216083439772832512809911290603933217608571791021049724720785693595460036574506878817359086136507695406269368359033989688589756415823224013926820365918003538456261197104188845994025267436194550724808973072906187766110893272238154487075187995918639648274996538988678042687497233022691109611627912961280558751270785906582407592896261643126603850356762717071960358714082534571187686535884353429328754892129232470785714261787536153864599250485189032399779025983976416126494198620980668844871557851859198428431597232510916821099346855917310996934038729400702665814988942227746387541238275053234312955931677291094614286803882727949353202438797055041197768362982108968093110220408244055482779359340994906590242450025352385353483515135760243397138907797049674057629232400653521199272630373072642439364795842110621469121818660057901834489378492177672101596243135601429241040312981843103354788849857977532529544890750434742374086958657232832836835190899204638335521256014912750752716787881772355784577033055013650889138721427022454836277514146370984090109093250060584370003906517146938538226914620858329714385438191849003585749499163342511923104786423012772042559100002504061852190897085333631834335976131560054654652757468497036413192990495886765718422138696461336836457581863441108631394643816525319451673797876335200381381261373240748580465622969125468051955415908497013571200850064938933594097220472557880902580608708601587572970369914502649582157712637593000997791845687842200407411770883640018587355732946162433767830134509166287894219069422381561610779082111461723424255788562658942266249848706349088620110321344512988874543601703651513942369225091318247309334542427186287674858052018170928284314762177618953570971888176429578601077748500945162629171498249340039019205138981821589787344732296991665019060259980077053483448627285194417444841581223385713223739644316554319984527941951641707932690074212367438144218274589854630987196698715775419256026427735040613395115853944272975194158737130448344910847358160006834267749053468157456306549000469769490865852870799539564689807990600380138108652912235917748357527309288458903960638989498268138719267580326034351979907405812935502351146250267487408811618418625224250563797233790669235725266962890932288424085442057225916217089536744047706693275178570430784954910212573491403599773394282149964298326369774655538956928548646878757871105800721264248904850701253202712747675214567973650079676080068284209513931319228135291495451517644241341351046269527173833866477154487178988317967603274001995394948795324589465284751814881777865808524074138974613058453326617064852023853255976570841419151481993390296130433294535465140558285863339998551520135404205461253607793795747003158303462658663271819319477309148105829187560666011809734147166272852504433081100267817627917054412027430283113316900818262187639129261869356640485694626139110288641166513505663641151503554951655250178064711814794749089688805080137385352435523377494438958969059033645433766885281844675008031430570861423227647535201759742109378054533475133465467410098403352898356540612260774191212516308420258483837737091220849830518985611865373476763355181541193407809152609822386260825322770216381700133454071860859225128767231160289959871295869075909438078822803078900542856914682043371421023631978983974928393296515987942853182242418466471162233916038462723165731370462324250158069886142446874306150278727812399366808427664739267306081300930451131850711938496524430530014095666549429111312451699019195235189411047108765476378910806316519317524529213476002814258368887162883749162282810940162687599050907903092309813703317991941849499219946508578513309906796957778013460323326649343644998406143020826552078629113971268100222932223878591815171594804627308922549843223126360106695255554292957284578311129633045765406831734904621628078396355238983940558530265873210119187001786081595006617370837036771342782799367382088983595800096884411488205318552514732956807954416648865429845725529934519935368545271540458676572490578440290237810943399010574714409661585888513972572559253863543136740234396031834897578883982912575582610910795420770600878504759584728909761610356100296255008488780644267909809383675505480406766408521719903938385102233989822733620063090717983273820255697136023528903750545314856132310576920839642124978033725450338348504355543975372586853371586572262129739783732499320962292522762579144173016926250316305597915430100997532495586111246422457798051513409989974880739125337772930601878524792246844366983247755620590033664867999680288661188395892949160196192467191481796522359959532207208310925811571293557478629193460844845295486227299851174124596875814795443554025858919819115482899730437411216610159513288215551951471114941107907511642406421377675296851406827766428309185393938037535410817785003003014672071257174181337231584929547427114186073830292713820428708505458475972396311384220966449429162301209703541035344455184896397112074027454414361175236324140811450336504911053445272616537452574469785126062244943231186482170026786210420069141186244059269811713194385835005623526264271467260661632971251092565043324855162317481291371569619808731664883430375995295366203455975551413047646451789120002347978872591688089752262800073180413312076891919440430106394643371049341412803077381974871353237038044356330078682368706072996525767254416567411930254333997721254582898689061023633068030712755690397151305009217180438988137167127374987766113286426246522233176341888519712600709888378484015924817976058616957912508583284025050890828997720995123213283504097211510187227806665100986390042082285477607274284056190820017558345827228058673244614724984460936749488875639946055493112557409387482093108295568545585119838869880282692994011818446490795135356424384753043518384399060501542973871374802347334745427980845163810247321114222240837975291913181588810798703655918182450156296271008946224058352978865272687015286240099747691315495304423248032210591440617104057562254346862226028686575857776895478055119098152954973949030754376048468734753325230838570410623173201079769528626569029748717007621235048465540303240358673827874146809349453762700449084012957167141061915790110544205375902229201141320227390659365100106744722846835954180327289567906827563283566710143190342380027320693849301896453645732479033532985047250789514345786028744777110757975659544216793499450383097766738340946008248988196799796851252410341402316012419266235043740702843469484562640690206087017500036875390765722692151207026468996793953805819042233814558988629920691747774718021312174397996840571584241599664500214878253710727119644966577520954765736058819225826854255317268460258914914218897855749403583872815804929826457821012777077474777425040355687905597725054149175771353049817988667556193763436565713878758564325422308977033230297416750320057299378754874730877756597512732558094381273680764518061925566575511660399547705615646378912303078267149461984989728421033445094819816593158500731280530451663358841018986767323950866808506729505870151261499594782300755150623215523326875697727864713460411764657966303372348390929027380588162835689599074817628858269895408156158447032906785508689234716902557637315095104125910191797237422903697904296875290802546398434089601035612827285565553719229258567773253442457978356207359047409292618496432743077502253252156115867639084327454814039793112730300594706273243251661465051838813778725820935921695303740948223143848953374465875762919651504401333678771826675441008823028964329350717716732531730993699686431819363302714262537030604553624305947232054092722885515493421279385822152972076107396134925605486988299515810787229595405554071832416683985259587267442082056327972634907940732586431819526737356133211469426926653508779198022838027114348575846400341842621436342941477246958221693314874181553367216806643574791719433983227364473370048293698610816833161548765650787145814305086745609442578036063555357537771694233188696514726110949642744441245453543440110039473546104274165061166421202392186683014116746914451336387004276588771131836866303452468918244362513943559901414586130251019004871102212244716509006068158443862339344907367146572009358596825857907359603814761555058317452777808858132868921309655878340555731551702467385322734054088367469468053873339387625603295290934243936352289459052413669753953476979213679498678154924458588570904054532167532026181032438453100433935665003045167611703615335442811609543702556884653262976456827968157891294707833792717747835546837995822243662048699088889837919055023930781001979163079293340159276129250777470575745293445288070344221342580241361824841354945037062791017088891919259998710388724229076560285381526161265097221094024089525499719151815270805102423335252139260838291830965409139662531113504090887362373116979526251574486669284035959037333017925159699526983838070196661387114129290419594844328126462608977885714700465709890165419172753339139267769323362014555416708998000740388859332260676675593462380410717485657067958993667644681266211387030537383913658828696055853502439384616368166365670133426761400046036141158615674789647703945341161805357360845997820048577748343281534664319296893714346742405210077513625605054466331323168263782926193793523392617971954739194308926240441464365900866468002388253536818392148925754008029888989589139306170968949170528922662150260238251391462123207220509865788637192419122114680446920502982833953380843177385759465862089424824560811005048899364567767026974378567211074078085212668442620236088126459845637818071089293036825997757494463587427888009334870254895384167494363389469253486965706652345195206362187733554132992421691923834518105487344896151084938456859620054920881910729667555366058073721190059072661376296674401516703684865810596643632772995523595581825618126623000861770366865017375048582610662631763996422152652035910966379405103165563521155825104536282677147890498667825951613932658771498838960639456786848630343871238169568738978981024462796733643974447469022271534173565605733208290611956808857955461833246988550067091824635358607107842261237999931668864798061395368134067512332689173798954390247136678501009122560659405825280442933827517020460232650735369902839378420104318190755736192796900310302280723638769522368038614674796855489786804151656919400550771892214573428434677147859130251939018095511667602504221236841763851858650782695196174216824663542279854253361062289655192233477795775776307880031941926148406843497752554248155530307590702300514427673592185865002078943780482362435419189505996253725790720958045226808827958385754268488197075301065518420069634647388189428002980455089042723318320689278754948175187314331946302535807607380279272220675838829017965306232294260435246546346116971697908451657262428346569847471916897403772866425760907406384315298590593593273847007380448741863803366414720328082464144012039488954800231362602444112947340388865924114054349335083458134668564454656224729381204673735521665887664270733273631432363125550959273546402038190621754924431749103759941738904087654922810428311009181087359029245086862921646686420751443916729400829915043450371885514373920951435997484185388878856290924849364286404785912203040913700901347873320289799770263030329440748220657229370444049321901967785336484193299213547617446545091365955483901105184955513508547669558946994146570919593835150342914004984705692243581851701951805892511310971707576636840008764807096442612886394049329064982431157616265063173272861148382577826184309118404487251529514334573793250616351759802114282727185598530923277769639049248060556159854104289624631976192292894275480066730736411748230116754190963307906982484923786112716824244887624712398961952445066001206334079680596225022157142673269099151816870813252097175988201597024217968481865515816503558827626620864811719784178488327212388617553653383264560351509764140969070201490862484448519120643504732815736541326286048818401054680830581169776412563082982264596084033299997575586257123164460357622056322657670872209623068833836318238299599793839020013205100801797617282347387471906320651192779567324534154024041529695927410608815060016358142586556736374798212842389209413488185617452591698645071310452616958173655907877738824341359258934406599660229450801702547562067098995475942884475509423981564029450167770707360184242790433853568491507640115135306843504597885286030302894234820663706863152976591338988686333881265764572791750136536124032438135869058264856908071136407022815196801101952354556273531308155966518499036808343477593506401352274344156121616739826104108159152776338056891653735137453626406022258636490130110420693519788252902681222528495570465728430155737427272348747467633649688994023373768894699136194070128605895090404781704485068694269495538526347698059844796477178447306794977256977906803508620032120924206114133747366799881516517686117989390419537393521150767331616463890874604791234359351380268571803939490414923850591232311034537719788476865565409603580582401958614814746447833536283070663733384311974964577290629535945345777987110797034504911294631532547822200491763816031136426566314501125333145650321796659702431050593032353957113829911304944136297765322240937003785993650913334925815870747424256035156095543868937716758809748784628217111096464840226077458363275684424828546151539130677457976055336467675453879654032787689678128574235950452311312997717023863394762572586563207728922288391630789183464805986632736870858384483759561553295962900590940540844546952214176726910959081703552700237855118655652680511385963607521994355460992476567434326278744401256552355296283586624777496350357948900460623425098329130136956184799064425636315682052458176727013581132687210517043884756586775504265132504878323078925022031069197222201479198743633566807275469004607300179745853042976988631081161384227753401741664810816717325438821389897947645436967974306057614991745843471727396015879325534441726536064154067271379246297570223296189911130993791873658941753162748256314839467570012403369770585212890507405722192341313232772201720120890517644848060632638108243545215800111781899767750975614219079615019797778188225273711945423323259859977436566907752173809753868233991776098574490052245990979563470155082777397842172007127959649165554116948095150430862176299648938133370821603867435997682718778836086083806723754158438612290173130452797829139315600819813326649477005373456211588978425952036365602409169424455575201789070264418348497967198180544696271894050061889396840491146575361304688092728183632127774514063295365729038559697359945808095798796334498663255933846478022176902050286881323367522281748670158349431387908176199192778263124455429432050996144845964255943242351960618607758272048526685340641058245981198565241565584147632259080213231214265990864842964319456751505357460407855788637969743944749776907196433867856777207211352499814114355217041748419405959672036046544801541620383718444875498792381671163360085225887009166100273089024644139149856985317726827447968495623039015231329234994759144300262554371552655824885250516818893577002409569393540739945050461714878521267080440794107282613870691657060437194592932003761080382492310769035419579952957531688373359261593711981511495129199881349313821482040229634066958825030508653005362421935856900693975395649073666086919466117157636775339047248923509589594971469634944379043034171483325588679909264906351075515395907806980874741936513340164529180819557539838861887276213282751968856722513233558548470927052975892802122846461111284082442209244484359467113980824212164494798003654547940084806289227968790918452292166989942368267935619258863740865240244016244670940512177242554377274737969808088526088924514006662379287862744576509526142865903393311278635024470551178670557905713380527884657408778595871409816896774822587446454548593603004032664794831600867739495439764814654766742354632365455793192547169553238204806520421722622835057519301878216972044148048069598919796662518704217410288614548966305460290202731820360152860873152317995659102628938534602783013350971176172754626336818649764011037904556546945579624536822121702800148609839433231820813742086807104666086034585323844424309371536694589960590932264080757657576612126187184648043009046191546102926488554547023680276512056210835697894089086207057544969792503390324309307574503641061265858588855233439723877868187345857800238453559076825143442200539677831274889767447870789120849610224560828019563922642819388686407136581233422632603867323963857281823257721638054425130819698348354663868381968696325100681960680371818332283633167668485595095660643725338333425591792560791918110780550984737191729306785705711077014782529417375841264913570154412856173954847856176375238217408288958945042330131668629519268491680618951061182818921473953447035442554573630174015203316544176809492685738155464476144411592384019796795466315529374640942567251221207926762684860058381824092082366555784385872552215577055589401729149075089624198645587944239932761443632814540309578991098719611640180516334347390167935056481937741068708068098825219261675472962731839768541472634193441468020138878077675020417853926170845608775195000965077662444188747940726669017203962138881338970147724537603864124879959190424608963635729943101986911901288355418909035982927692463403259050887627884100655359609084877729296885681255518951610983225251093758085026801112563989738732535893120770040400090498945912079469959965245458184037896041953132607149103013035234971372074036725755864346154817778385594357343396733730935494882915668967646652913657429525430839505629826147341900729209224849750536255124085385206857469007519309930539969993011363730412032808147929929959423625594930229979368958786524993788834735364874596371060632436729994093636289900124066610858127726789430527807253264976236615316018078307069784724401909765029279125761647321932853838772919352230806447546701096985451033107804369743144858574843545747125868533074093136080690734428566497118475625048586328740017208998493976627378266747817916859373359154655867650165263420933788748272263871555227570066243861002563941414359417702766056386588388146037306973810828459726114276822139416268565404761376420466161919041914399217306121993921857259108931271165696997729977358505510342460033659469578466230798838168738637269934706803326054751788509880588233293290834171293177904398898755351913230670328161771608223251006025061132060542586642249860223084745602207361451461544908886177655843407286659811095731137646365121536247290722621083993029430360574846171979401656703323464329009890654365760958739001864180393728871206676225061785587282763122762194113582133066064880653903748139527146366496093157354265162919733937507841194897687606548200078107979101317825519645629134303798149949078786939092243404385347768276250670437069476531898078321436399128303471300056516381426508285879540267628196709414229547269600009645059721012752721180552179263734445139725835245142895442341241465471235314116255907241706974318055860357655708946228734974652474861153324450922790842874785909412301230412867528369927941251609998585977484450996342643365658538297207868686929988058381820369159619500690786709642213031385807237753333677796837815334461960663219726641664071540083133650812303265155980354939691107834092418331880397363380284519780176760298577430110085561047542173477922670243663732459314834866291604976992263516241956487673667983588417421500703120245060080820273567580342342049388923171123566955526553254544765392761973653674632575673338241021158714332686612526428943218363807079367733626249684905724722577251208535844162154001916492482588245376762314823796664331132433643082729163003833635137224144590055277910268953426560197933159838122984722031054579923977043166495484579533636244398525173658436815594089642674901371619781364429142727771933458059130125701327939725419896601713187539694353450673926030603184158507035493228871958079401190265388132161541094225983353708613611904466128107965653443199719115151977010996984567104718122266192656897092515724554567269308934503294357029650537157311574825610129746860099117324484253941877875151244027020042682168928950519808595008224510472412262174694997076596989755506383084074388331846425335986293233112797732391460403413254594969054640884073759823348664230721473448998801536214448479682924610455281334163265827561757836064118323675650657423021557594405422185031863482561985384751368660512629581080669208935729538133968031462644783551765929183957660548978628265000469314402843392113762626995148585692889417159450592443733176628618306968746406828482550826361183244650048757902325528140606724384261176749217403189993565330614699798029460707115462302211785362916922852898046089880975575231528496884093377994325701210029780273701564621206449647678154364312984119207551923772957324065489378779275348684996515954045125358550850720376849305047165799452343501092040867379797697124468140260051684239730238113387289054729319541628636405707399342952860188010949393751142120885929230365698630914794961732550477016361341549564152564110572841789798274783165290228213007486553545525398151615081807098059605203895601829430478253194758346869593572661436761001617727130573778022651183713125949180227444427577335658602723354986476052451028555733286863163820291345113084005451771675690308107606342225224788373037819466779407845277591694046691142484937185706394195897057597789838475069999470761657103874820479071123847035286373676275955646756439946348353310215564574188261122349370165785380554329812710637484528880566922154405210349072708821843432159963332996397826294820129137415204292741841727560173277566607394233057625087221830970023065114256204451754969704676278435253082098154136467199634675828306117343844346478235942553992202538251761226884487343419573234284969945545667276450742914453306222004450682163133919791110327119907081250943097217754978426560521475002717492314747831868038149722407264310621440872404345173864825518663063889590187593125712127390838647986748495770472145341597771818634083365474702736384301658422702093231534655437341467005773327514324995109935580464975209575329495400135467019755079953550150551664670260574117984552819706872422958663658549771655216543520942851360781449635761329795074847220099212554217173340508630708548237002369443342105332695433576592365946691211271645026106571914377649777161602186791997905319693528478621315021907306134088245796473462348827037245230560334329864857595557853848080908522346451141398529325228932816932093000344213861520425937682717567166370732635559045327952345257418080350099958221408988055697922297375392807425648994909269728652537527226716718928924623337011716558699028577357027055353412304939040783584571801172361175103658380342615504798092308555311315562676125637120040326541793268579371899884651315764544083983803762958502713897454375996522795848284644681656703845157227681806627295631204225043425143042527296746069754573638079037636500729983796876564763421389104350091966233011521850101060505079501065038175379690469944332558012992250059269133250100717402229137969281490787957718653666778203061255978349324264131735433669247048073422003751605002887673924601729139898442134106239665914832768557513380353825290251215573952430257973331500411735747331191794281491929962979286535319617319877929555181073038559577278245199351511451142166182995506841645513575705891045974488080190588174898205942099338050715631893577071997160706677532245644957760902367422884443258285228224184308673680189848145888636836103137891546566210759382496562746074252390126485283705628700411925033123625921196038357814148834074735183639961863912194480818723153054437305717134606495581150763151611840123371155325205517643538249035329523870413216369931544665389937320704820258457324168116472946830653862624901833415366611057511036412256781047523315887220988514222874366402422395375082157860923230000141553330932861935235029480251429931539660704953300801806703974441594742986335607746689050619468146989621981132461282523732992730179355844078647325714745900552627985831024885393716699450006126875349327329278633187463145830449321235541717487955058354257450250880545442166502622878545477620170078696268313014623215093661520482269238273243902884738240350156899424738317324994374639654190113469441394886960585801325368470655156189314214523799554431098796880797256170055485003545692486264592483093652573524956637593882138994898817453165390970046128310807471444988655222919807348751911986245808723493000313130529360184655883613553762673090554458044379675601786704449429146499313211661095853283480592643777928771934304148040931335881552611641839323094490159822997893365416856607209836671533916484818916537793372748263099723087924761851936939423679103328105737795638554637290204507704535740638212019804391625374223378049394761209226837851763050170473434366267260222844669320086553152878778534154776772522205109989871031590378288424689611517175007438300323697500901888132535558198105489832711406202507333609614912141437101587667720155875585730689243916998709167857604411378542641846723857684697585163191259537786199635742082433736450517520679750256162818225456539686171152029144810719965716296613156430186539651528456743907889373707743103364708582564786194624835841499503784979564941588796648365512709622915943759560234340567247803845709294361087465564600047277996313425836807130173991845362135269004003915123575224809438982182223142177468428377347493718972163934642656266694038069933747779547349214850008669196731751219109727392847691994883199276932950535274679597709820182800567924721171509978021365060446194710738690385017840231892146345758958149725070118913104368466445758805670292438579921705179253079226828377293164372473620780639477086030567300857401439626705992877957571524502387470307897773258554380866755328656911400899361218153511033286316932898699066875705342557757849925729657111776848060570383879904943672041177659853522032395762136507207883328183701100232954360508963672494555417701177198876508507124327637989565201005592994877051599594388484817729866602155583402225294576462851439745451022964612089351379633487106581302049316784436413575224416433179791936793158146705933132482233251318208624642832722432099575104395118908412356684531068193252475962370132553191565863539663230658731196174437786409080863180219763783073031411930499160764986169102160026200163834852330586309103660052000123919868573283343824229940025677913627159410631495065505363778631054377309629958676123554385961299651058392501534579850551432230513620076546235771974969664697839873598458283098595310286568434571516820626593993137304432395315297614247345587018432857367421675695627422956964910849253379618832323764209062061478288238353214270288371122004655689052341255678789931038663779708256849652657639395960618729909411327832669921379951090601153093421759705728884577572068648511044106704671296722617846067566321746895517536519376810743964311864429858233334291744479412576745701890999195601470248025146246283796980363479756300219754399238798825932780768998508492000843797174533639411537986927758451257200929435187484119095147082561176239052982956528736478795175542796126467553559244032216457463051829824344613291392846663951575206172273863621781801142004846714231360401313219926031677357946334905444226975477196536990866332393951116977147555899718074676449527489810962439346757236009872042799301891079570681202577319648326569839748281810729957679282239437797095230961730146176622119034996226132762949311946287700709116019135794459812111107224631937337149624404729427858719606129581490133192401216963386397702921954290446166769895099328669371914119241611174230627099053947527645779876612118920566274499155838577031114179370622790247078581970720258217448284803199864172836092371202297662976308142979010998442273616078239787087192526004223888286195945563365632243875238628211070157202002786872224359701026404681149198315878306725995731911863831511147984604189320156843367591507138432703561402779980319352266197749005938137228559169001368606140413481700541193583638349055203509082600505749832502339255031953627789996018811408900150978418772032988799086726450685270034035117594097065917420006525563030699345243109957214433928028899269565184738274210769801586981750377635175163389238555170295850701741675778464978810279686130546606948695473078338295529349094763742667267698086620014593815318779446312549756523910474384083569523526161913607591923554609024178812343771503502611456499470231577008261413212045788381133313250467100204090674699599299166917983124406791938480238281967460749801944928030224471401851117322765521315729012502792501547315537813786215318352282263715582297754356113371212544409361609652232876502308327187745509347708335552488667455511635993856160516171428721595771042861757804782226312511707457845314655691160339248618144503234146797630763468794475633779325558939569663218633338570664318925888385640669066642753210279955643487744904467356907489328465611091527438557638779607088323932015114785413468485049415306457046005988186143986220363523928235134536452936556100963143511739989502550555498411574817216213620129716601436378178195794661950258914311584136098024235350846702962565568954239727537571630599690866479985410901103882709117674767948421800816735927943525347192490793941478397537585239090694506012585330996561789938718477670381748555325526343246765684549801775545197091160529688182027735381418458255788309946192555746201880430157039938458180090198390538487066313731193276513178703150304206110718076386897247659747999641131007161179356241683470722825879120509970974795742672053071770196934299335120343941912226584340194129710176395833955186129164077797405343982353882488094294020491404703134058274211696934471441089628511404661953014211186535147785412766822291175583696480564704776606802054115410122541357492603963885389016814731951887513252668316313836502457037477980581388135987825330582164473740013026264005637766820916046869422154237981286591380241546238321925184464260097152371987659329685903911403855434446103806603535638847774503354571024396007015626287877339100266018557884289106517742585622995918623290078239325795379912876902211478907876289180537880261330876730711089558075045650740422735716285076411808325250428724927722350538686928607593122842131280687832813725191107151257574167630817352081732495747087251422033810075756657867261297698012482340851355825970854428648976921060364621940397726304185436033858842974113521703153431579094586554938586559470643255046896895723950461287980098854779821588030599920910864232756646032952702091589365390288438355811064633553343710494655221829155570768170020624550837500921466029532601164546625375160519884651496926516463433807903399609920331266784891991569873337566146741792558812184625452288081016161968639432062678871823208806756299441789008058675145341923590296083582055116273690704837110900181604935688819114541117286461224060578274697265789408431509458598844403814524344523316965617101721270061861596388813712783235135316421124797948410251238431384232674362289117595011791554062608923667163350397295676808922293522789866042896571043224014401121413539197427013399735006999560732333624259880559289448176258373353449301432393905338227546733202166149648960837549187320972382867082009366581516018469247562006343018446645126724806744191067109164199346050118594919015843156240816814107167632546151056828864931981555796441595680092057412562779877518809245638369210743451017819194642491408927676677873761227524582254317065321483698953955140301888203489869654368007509832623906059287558888334357108612153982541221517308445195710061838763897772501133625092312559632196297257750159311689903583332796943189063282617807332685709291203306127480508429067222871011162642870702027209261778696033711690113266112952624238102671108992520795262080177399192461066095036438199951678860602921929180999517001498647092348176202969230534786813937640680404967770505106756933452681021382697906668416786045970969207979719041233670992459601851412160993539215031538797400475226285346518352622859081684813357407567822377542956190511501541237664253238020283457224201117742508568720095599449757784949486408696141808711834843918003792464260624009934191979216202969398118701721011922551572961181949376529288558788154236037023194573168677804804920508438174938407589309060133186974731166437700370201232965671236232400134592381810695479384531087220456857507144908038845390924583365134762081944314448075156020957495995841479259398685450109738924398287043394657113180750612171134334551917636479270441096855364622829526321066348081230299555561868135165670239890546644021175152560735384322705507375640642270215109655952939761996765436771008226603096377406272958647450163320229947548053089797586071375068613358082204648183198673630328506336921858483229375320333484924320058313814154419109702492551226049203726672202301827441512715289364003968088637860021493953019417678100319805496861624722143576942561394708815006485792851814659297266408500930384138727447937670616090676216708041086150618579504405476867208017139898576671242762536234890842873717151854602035036850900935380719208823458094059701875465480664616138426120075965545512449649278224252060346717420016216935223492033948782095606606318476226895933783117032870610142208435598218811959231500901682459897009078905146700757250556010695224223059705614473853130778148202750258977187314798578302740724836955522131157133463030368768944093287415185411668424359052982186410387577084280480128283736868858565413356039617900447668237099490534392393879124620692260861103737689634696711750384502468017951129060345764172891047144665031280146976509618605707151164877569733697810856787017510426596599455718533235334620619943214293085412071027963037556987106522856373370198228078357529484584307784672991027945210829504968973082230864392441434876969368839610426280241749842468676636812370075241401325087440097486848812287361525427412197502706904682820289759545152897194169258392686012189477915097886272464295757875701739001453532206537272183559074576508108233495110099270925597889926397182810739149802757654195376384822256351830601902347630529680104449019035716381576778922829319860145284860572079367690778267012936990929492624265791026139478962877677222472471058535875104273156365156415940486400366686429544473610968185328176727763348725419102131931347001294454867182253313803585156224074242614499975604157108343392976815293158746085776195388726404039070489411581992923069544164242541481745376595496421022606128937554831599426304030774735177040616439529638511529403805304936705656854616523909786681665877017211820526474201580789521012683874010988484752741649151621244860563651894603097641677953746879007465330168739054555808058045826391650094612824994232169967925777300761653662578908050225313219283761863210744573404916746122185463760649709894013257914908825132138022374891926955075500307508020963482650046637736837538365111263348711077209927025832050164912254380578717121665713224356806794132112803581576082430618548553521441819033232210374185262115008934630309126960505321435523349518916607225594463212989654122259353534782659562679900443225239963940292707547789681688617437641833695109148367212938138220215149823795236121155460053121010605702428993257881313043095456504960121752527336430570928454226901079033030131200626996011799336506519713262649803703461632973670991635398884464303210087695445154609648664374053848675797634984947394577554432144181759414021222871211029001091435057252136839552670015015919155553218384295997292889261943452310873479862401571163099518066964131567565958964005757178672327016154467493784069925778408419901892796600166545355629440718633621267242872522086240462132385609608612625415818154166498905542979749589008502512892991441622392213551791749082261582769811560195926916301450982507226295129315984517309774750673229221097035662857675508118173782566794764011820287431517320892839599281594455387630212865816953888085833611605090529584569257569333110291070952550462291369255861939802410223176603173915708605913956452541547308020998508413251879060717870503757667582680046926178420841971323618271360595246002053554317036616107721285355066409248804736114913313852951864903650479630298535633449646407151714160891149982957924621613280040917792707082011074979306778381248240290362906202920425178524056343230549060393884832919582183106707453377391819399165953724510301735219140374507393895631032957464855927135687447701993793621582119777192542184939521452350760180634142713725081931315747476485087912865096867142049436463370241534240316955298652476592672719159200407904554199087974285826448751424265253895197551094186396603375915205923981392183395695916944348124488612891495594484121099921950324122589594479560782854760118010782705687631703117339095645625764517085015958102665545182859639551390618318993850311865987309697992283264340263625123906647045294730078760353918704197422741911756045313457003341394484718940026839264425890691434058142111724143939445631635543561476400528127638072942736281362490021902960037302529457053294824857814301114155899579865037130108490567406407094694787579065649587106127371686225411676837335790958977949805121169511122167627710137394945785468208107455794425964128845565578464683823113589906502512076850067774154215663970495859600381001179093994122425470872316368087371613294213543433342329263476188643755889812384220847648771518530005808965840941753177264995303976079922544251320988640623251021395752328472061933683043794617844074082077208965913154319066209752567952497730093481686726738761075327750456590705927634183101953161232597573747057830814903247941238387974683001356456936062408209991515720792502988719426595846451226580602135208328098567599855888377713062126488091567126895605239936964372402422747537429434263349526682927668097142841872652502043497930336819037135401012520907095940601450868842504518463023825505359273759251912484332003616710791709664741544295419067246556473172109208672930279595981316103626427232687242683708886528784494388281711615247642086232790944348728615415163362160636143769046857958883622760653828806728106091107551646763459247014092878528365145086747402846667347731271597414041979990318599332680175545056668089208510208398002143732035162603570152745848551784375284022450603362754813793367194281034697483790109591782302917973488427279993039575115416275698209881429978090249591117902292446152685236244449789485321966364588584228892422204299474433491946659927601334147632709812160630373159824375107625494326738415010921454866026879151422873639245001538752707997594509048539949351332858492493395533372463021869381048002759168844193618499125601776538718109869011833035159694953552137158928031083392997282297607541945624231769902949091111838363802521965573665806565075635602475369731112888820722577240288320958905027074695649044306692816567659368251065558096694576026456935865459731102261991708222174949603524216749674052240833008137690027898870991153923589475079895923246552538806262095546844122118051176892777510657990761955175608360732713014027085672592724773392408184140846933352826870727890021850496638449852660157545809613115997772433326799598045372873532567179834609113685286401989643448276042187157639834088298856989193448755226567849015057515214625922119950681042639470025263481736080021428461991372560494120093493838883936309026129046766240222309034848994371826325271957352173351675033418742865698472216997447103229543243190217329238882074079167152196950278624903966447112032364445303139721709087014655047521285764857371307658801644069751541773676973542229600225751620585657753325125759460014385438720623072122458823605073184374757324070383861656076746747470645889349961460018008390514826648584135336246381540236862198408726694544846372098352006328635581827509049914865298869574239102626986229656282077086843280498577496092689216374343197206567868195275389351789648715719396717474662429832074181361254301929952394134405493227823822744733685250205271696922320467549883579225186014132225453065544725576973373189395406662617374721656516927214729040333849647246993697024658499013605140930059868739505049608799304023288808237869900562068494305942824678821857292654146921258919510027721740867390884230686944512207938126123791205745328841476273370405656105799314336952318683524407004835174398160249110739353211570685886606215614190250609258305225956213888871456013064867435570737116765329029549856166093436799175584031993462022573164246993695392745466953140699302804157361014568241082948924982198815460153928691251572132218605334619759327007937837638324083809697216417272358393541110117753276158115215366558724522380405502705328248910498382995173664995451675356440031014674144771207320850478834765178702536103612282563589739540232336048198845140933082657811469577732110596059700950714747054736070603101654588664735404772456035977042470619713237160144919107152232131022544952998826981104894874210831914845678470547684597314466238826373735084310019306788422148261280182443293606569996968880449350959204074764495446689172392149498542977673666080995426096468851356191430299138094670606701015424939685916010476263243530983505825799111005301863836366071726450529589929886031242096297389490551489728292357078523541273090968949609369418429186236118802068172839876841995942335551254742227556377710130448260883050415370996909691963195880763368717723806037161785150857525798286172073969229636147140795526131608107161196776121192929574981603463161667883203801041045348235931518612416770195538737084842628047868040393864567639551853039574765950233368861050039140703462575691749792184008063370899611657312558103874961270872260869536397483245564077714434952756205754655879919045343670713237263843761564419851420413906764481696759498586052909127902872574702547143367144668115196130014423228464335887038219600836588937919731368791582861478393632333362601643607313088822557352297072264731025676745405703518344563739620150201662856610728992835334627688656279965255465502312045146021365968522708562671739768506525447743190318225913130443942307625454396118701351609656369227717288731975378648743659288314454164679228938150792136829597633360397080492819288787377239316791233297208166105683309931680765414742535781648894790199703811634675649603289791719012485747523472741290729821146487060143510814329965689807729453656052822591591228939377214824727278102358519446710470370401944274188702532459924653760547368414449624814829857001567695170791872251831909990491839972397669022426790802085570534444328296251353428562778743087869400710094011954848790594284326328615757726086922270495263119604974364876138516060685566256555598944863445289581806098155383023903304930798902294698780764612076561188031877544799140230092593870464522845797462946634715861827156845877829556295446019807499118581536673608365560780796866881540751715188572521372015626427964369527251184743224532724804236938393936513418490976807304408602718436126181956258750344449022216020922035914392832638807088437366410680413457083226191774556352959809969093558700480608596709172891793485100925955978144740178056809549661732019044448547276190754722619186487596932960493904002274326982633227677837572614800790654068187021361413439251429621165015207722429022163941029842544219116108471349564472699966515018945601810554884673640669008225688331344095723796552623653369104072311663705952140754962977070478896983372630556312658904352666002129024459834036843258075545277583971994213011697723360752465914184222733494634598745979166825831019963325947946867072435621144185488785514226928733110377876023559493693042150022104269843898171308491063337338197314420058216514635361892387605545666585418343199619706567427265933877621882004418412108822194458370246027066629249048289438440617892935924779425288973683380937400540763632978891290295164717863392047626758532693968761064676036647787977616637391268953875121934378879237231447328513645541721582799392319532999516055908502510387871321397205823274895282845239988543089821012924347452958246133317771505296641422833108800141850699622233803597601958994237967316582677905877164574233826386074855977878765364721821210049419111015065109478220017632647286536500255240279735885446790974166820068969495219980975260112069066511126487641644780297029366376842527377272122551085710061355237629591358527475088503033272353679291706315722791697944219530128801659910168851208772034417189854191511102251150988492047511254622464691940261075722161196018781407854021990554239143903099482858648151930653574594920775781629706283360780657785552959014300646376653612663007217291439267017686957111875558034284503178220718293568755466919615503961878830355913832785269116066271380837901965214572016467124816670075401544738476490586343853410499210669190039961649554531456813167544956616129071969716972527020754962212436606353077208254867356326358985843784219576499995200330833910724385586356311784753493546734322700419924194650653107091785315027525815460205181418473831881236670380827326034312943723270148507009625505557920138007217811854433101781220763788196362152112470802706613784800073004308247242254997686212467897496121427763889373701323748627214645374799556668130221544585642722717853997880966745387828619375700787701430265741188318641938252141193016122810877022001266335606929873391489627082035126296175599372700286287522234044773988551006652673227105524186343925130823817073056260076416453344749173893679077100799881656794392014896649089729414095339644002293859532692694756322146835542335608943725969657814194492992173927884051085987765029016139805059926403390840878511385363753913383135731773601759846397700534883712346205959086073341925574124936411738438570752643603196318904706533608651354507386910491998707891262263642582330888607702585686962901412319208717868001314116217613913378380928332219370308217605257319651365608317196560264186581711494356552720067350406532430385590943521751399954560657249668888431192599331218104816908895210417922386960978567938654185595222494651148667710488340628899170410692527858413039441931790608464338112610880123587567280260780647577642544421253861181018001019901367518540843306505493941479341534804696404542830911289052091947875897064544996866114835261910477741129787506300754335363485507141795656187214814723500900017915150791861478126954344235688342824541068732781788781021330337495752767706878516989727723039628514876265219213954905669524284505960636942897536859158547257441861901433935029589681626580454517957787733092241109377905835134580989712469535053764548898071412946610823788210962576231997438713462193866069030242015003129758706116174724125940553660939951056732894181163858146916503436998164551996480460385168651346171920185544883227028433262770839124277814521480594620677315128263617282399035841571043236836365848340437879257680839624517042663576503270168511492284250799363787330673305469710076616554691990049892891677528066599233927721146851448153605189728124233872279222350410808501524033394862849556554690690946956567169134658586329614791492808744520253119069657003452502709452204886637216613122479420851112727153257538438505496734276708041365188944428926542816857975837344220314560678407175549804589843113643071865641269328213518343352519296131341695752797581602929205291126771354407032663842161482002688085243710600812890467890072671336317942307824161607115948933765155024627261787254672986605237294768750411998610374185999183741917144137490002942544163818202107392440477878351568634240812896354121084671139464942271104980073128260797698654898703505027823159910876867571284489814653534581764327734548945829806721912686185553865562888722582028335542513200490625814536551023611885042285236022083101083454801123562612863364533345348810004187023043393595142557115110748590011326402710343059437599992384669775421638907588234715327189131486642570125802874319888235184000219061990361619878199024038302679437188611962424317445517150649906102705352418664099594475739056659099868202719662792141123214389208395293424608882984902404118274712710824718964357956602716964849380739207726651600815130422873110361997684974410562415426058265701234957020868723234792020897453499865906087546721778869545207567302050657957837744026865437947137319380922388444291429889194434049307104046885106720504520748269726505435746831740509674655292044399028368235534770533859539318521821339802826908908086907764495558562939652641766526682102590559370924498006972993282922290568244179268558311168711928714764567291647671175248395293172824000611540186845673924707698053555212321526966039511173385322923251005611361738110695033998142208244825940533564890873828525165310921320913192782474833832994397742239168695350101392843706918879815854484419193767304807669573895565782148293666544414079308534663397198465016622890592804648002363070959017906019509985876486682007018132671433893156941027212182948729790170100628858045194635234485208112173301808576179066488577118936697850769848744364130604188309500783144981482123858507816613051299924079969155343068426700649541703557776434575896622325782734951969419769608909979206936156753068910786872587444745656224401176908157516908223438095018923723698114181803982280117866747495825693033910307982422621302831151168990485439594431050996457535631269541081278041062586149551870475280281986042716586486702059319338030059705819001582343951708143206881887049209011950137269556505990335236985150931814259420999638374788981962459716755224845078583768853788504571899082047460526735282491339179668606420091424309791457514921616392347951179179525691617767540341807046564035477934969279679769063095097754354466895508352314812546726858422189696490133784378016445809930441716495057194384711345853944109995362853390806147734358003453178602579890371384447617165193470337558381676369443183574673452403069882915573487651601352261786550615518403388903445825250522416415791898408482890541652512245962428515394548066205293185429790631002744157777735918625859239821862082954908939171779986639484539082436808152493641992563558232736915257942607191410154991368363830907860419471404618412880890281939051603611200914501195895601371826768530818350852275605785529091533673131565947559064780718060515982474937265646218914499425763038574285570772775694853357239298338261943893515574326751573705822441114320205345998100891777864338204932109704283025223211690775087532478732637761408566772158271904946161955436884793426842973326953649136760159297268429477041671966833510591310366433102104034430220751720274711168586688370818758488952247444943236393711907250953159990424904359114722642370444153405678504584393436514610539855910857879335732613225635030999104688184533410275153236264311721516124701259968936132922959396604438903720370212215782917781611169050029408637798192920760431985737819236239331876325688525238334687970390050718607036044775507789380001828349751833819147348197216019102462013119550979646439239478823330391530523785145282542074123423752839022636574810582798943626469814304276095097455125844078006647011750444034173632711815302923811306569153068039758900172205632404881927741017734268908970494597629773729552011687072052606476777755777539579789616759012951336739667009348008003228049500431544922737198519294559166738020248080788153396020720209204061324808765098305042584657309599623848316530090134143308288486460363767017115708375689974279606850223324445822185457933423348063610127813777766874320868614266107504432837572839518026476156957358575412805335027961725962673716676751037086371508440737504317378224131985299097895175412161399097414812941822318375782548516339056074462862237745189653810269713850348712135365877491282044948704087869221961091705362245103201371393246441716314297855272822459980856249071782839722358362734882826701126717591845549753115291456103544685117296277107074763968207100089815784036899160189331155827070099500890526308453500942333674112428228158738887208983667689660295906699698900543503180004649782090871301985556447635156511353204531419459984369292754238888218759398389065155816289731299365377223418913820876449955723582498266659636182813237735416713457880735084438417450896275552935693789441157579410069860658883577676022095457271234747914818716329094010528497454980567439158307144438958269636194570498721676102780998984098881076916926892480320584331407326565339742160984286454470051439867279071380082296227799104202899646763815317088766880741743600947287842932584291146130365662417986001835028384090683073098385339526507626507235848030568904620166414167642806477571982520375859875079180776701669217549221522616066833662413841143295764989932503678986751839849852161411139867392023879722526409134094200796957534264157327003826789745354089738928923518929427654740385110693858807082142516808529408348503380901131866593017694447321114870441927994707128252138604202269962166308642135175479449257668129022013321812978664017807709947210295485959767373957028115319967665497168216365278492483557453332182574517508934022520887749541777582510255845184662223996985213015268362104491949328913601552058100922629627247430786379602450727516382995079147725283086488207000108373926989749713229807638359556389439616664612552179726574373914886453791540091702647983633958145845396341866910685064418000683457360089338543934070246625843100596502553336796193309431728897238620148189658181690933083133393760997367011904551083016204814375697530354548142155097233549058538850982159856307466442820151705319307021568128027043435739289179213299823913177099668512593457750454736024811749822453785175002216878400561556446726466534491224565919817970806558618091400671243662202200048367987922394195583344053849864661972416694154789943159503886242175813862182797681671316661905062116085051554915037920539805745814450118058304384663349309781229753084632965617449237416246940375971514476841378850488754344131801399203521818192832886458743239169473137514826413315177339607519025766059532639772375525924298205187217764582827529962718482774297600836103335271575396496621539886701606366409627867265517264548331983417022805933125747872858805876180903513281986979558770492975460111702029393303042813043763166788192479940655244249118239840233522475815198399021350986491084233769931037627451433544580355704885198167525566352112739544148103031221007028202358783339766221353728517679514169192428717591697068386919381337369261833488745646048592663864652585577698773330011971190394510998992344059168850047497254870827779470762138225900105711114634086929883914005479027623645488945511473826658570300913836523739465580304483067316665475454468374082070073054900040325922211677566996427685772336497811522752162394795760466150243465022295051989832697609819196123115655081867833107930768638914816383213697957988028750718360013386689950997794959578352638434150945294337510039203052658965084070368763184797997451232795892190454151985291239192321562262918280407937073272211332129552550426238713966685667002977754547089091339276320739225511496899411659486246636562735579646522599801307261972145046867491167567399236000645830577654412887223161132133284403710119215546260460020947501984866882936411169223982249236470237804593908674256027849148773252649825561517938572848565920160733580366155373054844027058943987020846377296529113706727759311178782812155426215928611174878251148611687250635285462475077276446815726152886503871588280641866059672292894166242705192115421440153743621417233570798013037041042129067864509127561921356975014919462388356492936659297845810147446419441040726883489448512577133585645559396518180780649458745188973685555804094360894156516546315422074183684282621999682956758231641115312129959905592754839155781925157937973919010132713972759661285931477026664871322529152724111782568295177507728825822236304772271113808224379171097488969471674759923821719971308557422568853307050230756777832864109564915630519833048934453970076376847056362479409518739961637029895045698013682400700921564786472906203011412812831081290597735664661755445063080644731862616434710849961149437571941349471026572422750258210594510098063754114835511342820927363505668343240028367840540499821216813835551942198388790329107899096326865434501067122139974244614526051103911293820901792121839843662228052637840567379912726256371530209968087319012966261243459350824907937390171638885040981024888548120495513585916382900179882603272424150605913858984090943236630992535057676815364029568855304610647970546920569993481593488962813603472267816064345708943502594700644806280738496914118617895796126747338492283540224371663575144146716382844918165815805918026768915662192644677074679833466699288688559561574069954529513555817072783622311541436796617820792451110649878730941926830309722928616930609495631618614724757290923977525100635691487541876970361869082260990242478971190735476580036806235244354637374041955977420431983966366096573902648940220124189335815420995245089521092657626686903992844478099699478575256851852831224552802095261908125515629461367183502633792192046532649890585595380805844407766254125910502114745605967910868417685923520122271683293466052953867231282610387494372311979239482159511286611965370955201925146833420369549402218250719917786429485251929867676482381513885009357948639423584175336483149598724304352187677908860477413759248016959333058728107811239338903233735617242266942356549813877863442144190734877621999505159460548339957444755476628635193479142108461565362248006855122739597073738800546417694965831587127729526699041465211358939252909333104478095100636067024787427426138442703009719984932693339310260608733191247263362097567173825292011546994748996433420560842668241804396326843494921952277343482751563419597561405439059740617122999482605518248316692474668113713838682186028044650669847058363367367386614460290314984920642349107546015576457468763294319444532347512364202457815584028522699396605311408049394983025738250550808719978179520934039645535573568086130161165841265191619865732679663414104207193299644644600118844164117969076597691828693155844429754042496699147084211615479891979507220898264843869851595600381658690914008388054896062789736315274787437227057503281196749954384000183051047853052573239757968435105074870794459071403149815694021633891366258246739446279058112423497541631434159295086908376825733468538718290321350319128716142492762588884795173357718424222204674559545519033424740943347040065621561731550926781969008480715485678893924338985067580049252637325932690602463554750255809442487877937558291994315815712780949807658559315565596037093026364659406853169674476788992327491237389774665769019643502724839078773030293656107461974372242611097619174439047541735293320755669278960064469474493926320533680107858225744417005778555257918497338643676375553035948622728638058462113842121638914636801116841804004387592133909324796430324220793471925193207381112477647560833591246082840175138694224414602382022756549768595143552500508740016566253466240949888795373286517192720732086065954529260246799579626639064309616020027591335334331301280879013346875827517790810643598414204996943479150979786371206174093674680315514492208021609751915883445210887655056630472149809522730356180826840842322472585300150493616233322368077348941220307874261554076171157504156884271708837485597390585567995026156436222480161414714321022401925359673819387838957246152443023586782053455881319609686544520155419867492080351048724668157761228266938466306981891146103950952683199347640107868147591651843609315284831765963915765839273040690021100261974656948649563296757254278162300597379880775225755461716426688815349684290258194172772118917508011056350085711472877722623808583309579409004446733219616580934793017028096040004712777410760863069809524260743359577695523732318173293260262220506133500742609444053699331980064938831280542641266021907314373574784387828268210739441373291191755220796119556954987475083304560717075762550505928527257133801779838524541394658872206327649869324295035423729914437528351228166943741447824985616284861356896225821604212051917974586715990520014489242206157018543803819687126197104734919171240595077893675628332830447407671247346017829423696094721254465119827591759158573604556446805921362629756027566957298437005056119614612332431688585070858501053215610765466273567056622229465228956836661892595164453968647403903295802169764175712209278122661076524234341430329447954279938317726475482100875368425858459490097569142111766415395547562086745870481335689303332632138113179474858002607226644141065763592623896347204065737476705176461257472108338651127572022907730782905689545496232175430713072318980264143471369186119499479694076673494117869130447212078417473314315303721950360259035106661113472220266249122719975025244416395563595933071789328456217082248521905537009326433376589244023008219904054274191057998732577919471688847004636216829565570529641025434377452431135712428413266030871720876707200775571443354869855016600331544473610767032935571508107688861664811416987982199980519082680274030972298383144636192396302003197504829508369972772771285542239280940699822108278556987683383275257861277632530643229129787281390642109596516560118616731151524128911487030759580145217997861805190963079290861948753153187968275718484422554435229667432303426022009811851143110162421615632898442084128361239183904394561055316233852451521421169322144813595071047256531826904651060510200932564672345193250759068443658753972923134795254601353893699219907820293578001103962205985934802227390815414558153964029402038433163909917732443530022462317810309240177361712950649349173443807750726814159498630324427933818437165413669074862582375077316244907683588970094660481969455000884826429595365640895455685025179773991295528725569963930119691616236719059991678052628147440893187259112247343253558335431051630801860827625821292167853356865691361970595876664139881401917314037076383490060604086225310991784139763151084385317765941604126088972614268567790567026863820112457221092333749697844706778064484976849440203938805671946049474370520421504906185811962441691078340477112564412590036913967508653405019933287726951157606850888767153424900496012388751749357803886786617266814995399972260744523583725139977363366364424628424687298184838092690472185813362058571475021776149759661431833772492388686372119154391643116723623454271559764069440013014680685431816154570502656668292476962743145588817854252463231505440652468665796330262272545949708242232799612876479692785816281376914215836064326491137967537317012726461316628113126123567183141250433671690820250928888705247496718942648046846149521198684430571401792255251576662924554069586669196464791030848205311813912384100997010799383146141185168532792410895425566320281632162416583181521875645484582307850047585469506021318519289849776028330693696279520303888258655839669781985337558881368856609259138214723526508416470463219173371073909941242601578832783096685264160328518460983243474513457113150818769195709385048092683289251364188229117875275647779240244306867859839900262299613886536178104115348888247431631667980678164752485272413260850079654281203332875257574018844954393330469906547731775915972964189662759118798140839579144318130682660490771567052101144855801438303738444390600192270748445440928708535639837401877838844102027283399730486305315014787195600558117826792865544764292451040908550051140107824266117637172397983456660324793592946007048429710571520662980768750956948922326886409337870600150378554555649817563682330101324767108378123539419663877892658433853902622549260939297882832055704537592642702397553041713166123088607625030668119400610851121829788588473432320621744773884509449754278802023491688930612734396295334824851202037250802732397650604843964054912205285527166878035731648333594433103163013700692294374417325388315951136085353609421181339462426844510890626493544251812942588360246609017413569070644407410711307606776636744257823826311372476411044817580222843172304363733990864662453584736400319522473596057046399687412391850355825466298544658837022321820321129049516481042997069561095871546801441238755889088806461132071930269694295290454108943509352211110340955968398147769655329995301899747054042319039780823838496007453177192284966930150547166360831087812570810432304898374401679587492490763920424434638596911226036993974574920146003401515799799903895193423983564462499683196694247356165049640660080519777499903619480990874772697397839317083009646251062208737656385600741704253577539896954998509542537816965968707434417989375885786301080591101766115216914339141133151428216598333337725291351991284240124891676043841980587097932112483917368412240460625551192793286360977201847209767042844664451083744821072015768631432232448407049814793221836331689592793736018345194558278696617335984870492630750822104959565516557870258184136800966101818881666693291087932758081889976424607551855273700960629366623910693723540878645335869362931485089161531958140134305678644424525023418645599368499171316090710245678775492283368807223029247893250530316186702863224784211781139374573292126306509556314772934161155687215340250653197337233416807203324014730563013658760760468348831103728568485231712904103003297927735791993059692601688355554399963984567896701321940775951300745673480586742239469930687449816387819481182116986152468153189244862841449426017710442380976214438135597002607125318456438100827231615626862137425171967275220081315247685386129140794191620440770157783681480031395419322831751839314403026702018090237031869414377496888506676409144269088228163509757513640292677965402039895605951453115001983815336926380985974693208993874707925972473031232188431188381346933696869721710207132366021371845029736585261396777340530512507728148562224194684478016120609336597989300279535113683282252899754096163310123912758706985463205305759419261536247751267810178453608696471435545062126059428586501959501723116882660341105248301887560051535244564455396565494331551931204989355758274241957125773398361380911688613718759125645637379897065243225096325365210575995325573353529045131408124007835322991273427216225616097346460037332876427015265570202072199680311757994387141577397409131370084674926754431947603482577176102268832056160941294876031344409320939089914167492006061904241593907244517931915838085219151240973544339198236420955219086537481677166615222156390638141825598133085650638107606581631473860255491216354335707415263810677774150964075734628870663858741096234960367802334360346171419438763317574077588558937391012619852994362222486557247522056668912623652985120261073776252683398760521544135418458565843446222017752564627526887727991768966333558189898401944808029616877644173028024375784478863520641144844057965964953658781020088124554233000575868378241398646873990345808164354807050729639635036151416098892844301384571236362820068876637144056845008594900909340927617342629736562202888550456473785605757190904861691778603669021462232939590112441564256467563701099021848154148852565906753223457872410208183763287377715004411502992187519836917060686903914603466080960099350596859244284624976867981286204077463876130398849197083043229155481803469826091551620523050459415923817896719770967252653831423642016013903651518856964001585585394724376725038646994739479425063786787029962082396373552508505453163376634793189158647807062124995688186467591992504521142989653337958778972097837971525280129735796507152412504615152176063347779656058471886706230480061962351770819729526173230078471776030871187195808358326978702466713481005593396086592187135592237123762131214180205722284291672711059535352726920093969461473904155096274012935488351195560493028146457160888130480910634727158005186101182094831474018426796993077832375711801515001319371185492753203399718265984638340489087531664211559736125270654140282102739095295236587822489249673572348575804878014557604085458343477624126764508634235509247319993639823460129963937632636571463952111168336930100329974851355105536089818584787838880304999623261598073175917874274644862193248457429948307259063657987177613407185909917208925117861401239942981982833281980811556387326592296602741490426207570717835536596438962514916970466069794415208945867139094440424364424185027350520681269560993232836836533962343989560884013310514571304918774109254433289115919201963288118361463103960401794303970338713845368196277010538891639029196810475212998069516702813189519735638646665238822027453919806508557455215235050743834726155578632513962494610617284540648924857486789069623901099523676979674003477330500888031766882334808027398018010739544897347571073157618108150773944872870770791511221796544165611056533837480198245828619343068597749650049265755475310524404403474247259395715916169004591365176654720875165443018697387880696504218690880110219866170092568594428192269558549366814364132726366126038405452573011825375042671546794804354792383428709802827855216663055267757233165552270195293892576717641167647341956568582371685747954588999301621753720947407807719944298624542701577227335089459069133729406077245198481750098305512741219663736007850410902880772680450670096884218153348379046939837273773598182502653183395877558872120413954343771078996773868247806349591479106453768997601038978144045597357944469619037098596380720681754853945823879101225292382506139321292282448158471290850206886672604306787002840261778179301709854655534256724084301650693920968022244094615178173098475524484196595743535561469829578448527218527473615217740545621368058858360041667314740501440166737295375039078614453590516570903546189077515742149319010865007059840661535125443508382100561139850808083439690396622309094488513355730754321737638012671361764094712846431938554777713736934754293049821887002237940644576547197511874304855050395728319177565523363076882836426104864245929428586737015905914790232237910799351272599756910865018535803449181736935624295330821445320164601377872302559948584559314424003985892664385548465804037848285274990006428288982962891406865033522566010151418183730783260573485814540671504218080944731195458581078280015987603451174774085294362682491402212804041152825540705251275117878820468899745949056174512163361859772011141736232960803802504552479809901284988458310750483326069170835248617408320205860814073626641192250648657901459658893932848662679475301033955061674596204936429493809713816843013906294968503316791717189958324052951432189414519079446030076724679860182070878926809999678221426817560737650150593572561690278916576866642841142864475920188540307203574238811564963739227376607203406706683604788123171962093448275696023469759175903042824393858220711286976497187156582600174433109842133898502571022600326665596740382930458348941458475725971940652795205024243693169661699097625602140969882405946777479002759723577891904307304776129678413161202718611883328261497875951668421729230837320525973692453344441717412825646431957602787406618509187933479288420744620746926746443878348128664112459687560811554113300684075316331218600025013813562635163411487382043995634703387383577189118915882106889087261427277435375483497553441708874286490171223574153364782187219728265812948670344339923174029150696536074408040975091066281232441097884292318172124669291333036932831165397888153101641866894753154867522766334521888349439198964878189181944927956557978621247362065017980940305905452727000031241875499363408590856433289580109179175059451940440966944559262662657480825005337424246749242971681613289655097769247554755456887586936340130649766610453034936480884700896587953535697234357189017469901264435046289705361366832914777085102256536568057497392267715657035409364657633960665297311558235745309118688294146384433039519525412372600834502435455842684508848656432233049505176586276130370019975942773535649910535084937248343185613523289346654058198035186511225541509297429390719366765521037640346213440589170914599890542194622471474195180624049346365001796946496536824221916935304952933722887950995201471076617258926340971905699870164799780841029336855262264099772134740260998509428189611764305119561911581500219646731559040531012935214548111977462602345552652297961495172745708243128198699089140809476444104667939155588207271719886893300392049394388263905746046870639131593413285058581324629415319385840210832706341845438527196372859402155156881253281214457525508333750718971646065230123611497621380323520628581731392814933714171984152813317385790463947697694838550361274158665076528604058128324345705780566952312981917292944364325966044082727238253382468012126599584253252160055647357381326656522035253326108184767100524167532326752347941253294368635792136293884585143838571976455896666214953919433718156487514062013212220838202649820489527587502831472570091867107838156287617200247396454850292897959591192140201882299236881352687481027875946671525820264453173809387905524538617383043943706867959384007136548962174876557318921931355129558753031056631715675779154959382164690628752809779705565940850902288654484718642215068774829353338746846001576775058287003411817327175785619327138570385355771578146535395966717686392430563904954305720263454447467332275734220959212324070098586962517072895248573867833579008399178440878921676082678767674326864273336038490832532955770544447984051414937957468303382244577294779703929094823131896369844496707423391127654738556392547393555303851165137730339294977698464342085929891507136332404007994434789023355084863180756892164851776784575898231668195034499270338437484447619353948513191200005127768741975189856656866961780437113392656151691497568387011311245184351705453579709986843115899117214926473298492942508180672703090768258431862762923756552785083930085777595458367954818624922723364315868176136012736990211464506093466818075972419899151995226127470925860919953208725119315920031836486325308280320000302593356954820769407324910222681441524950847839823125469792557790811425495138634965999328447139115984716771297092539436299002592836953960716976767372109408512371230296435814779826812099880461009213102275895367420226355912551730049492910650908165547133272705670117473878627824080527095142586534517165534767224382571737647662442001967781933152376835508840686256247654774124975637043351232789358458235481571033063499157531317158579560516581513659096371586125113509766151113774991071604709584485003390151301132176697824971948603700966513666967142194338265334488705707613267339943283882343246515812558615527441665927322009179070797194641027089670152117512680446899215904511490203322257126775291721835615027857657734444752888955273092717386946393096655405653542448895794653035474952888752303311121160987453080803024594455971167848790191322451603089310736688496552565637397293947897953944149009511484656383434942531432225656383721543662168003536948966630174142110338768938596151078146959169954950163693188660977505373984296236908079574367758007092379229003722384207922569316175103270004069190462738467780582991298349367316033708919281396610601567983106360474530066414944365465360203674376571736479750463831218188800828182680138832472522556673920377221775686589164076166831866054378120598150842020345843998654736170382153508690774359245183166632020849555151390831854232153171804017669172297878423087572189345795908213741335739933482328329075905962233059467379951056273119454053779976175027985667939205699436319436665894164415201508341735162340650598562761314175837963245248223794532395358837758456507329555664837607452612977774115129280965630743526923404516452315556788385107744569860061813709498570594967237084146411961227780006637466182845715143824220024016647774526229402746212361584557010405568020803255088468648869801171122504586721694210995149380503033428031083522218502091440960061466396121811818490081614039735989117056144810522055970288248020265353893257587232325002268848855488549239766639885020654434562041346917944736135504604727437057618739919791403712926975991230446751637384323540905844437379747121878737798136443922063144283941272902100049668411709035000181491400555738867846561585363091313477490855606965167961729543351102041078358275571445107646713488700059362643714992544460353984046266467330739652349774299428842581801261344891196105888504650966101353249958619509419991796878981733016115376389033257998721140829113365598667304756304555188832893872176850390316098046813100212360036811753397974216920404451325041861453785491511374999706093443457570922786407202937989945024225221681446336925373969441025968268971584118075984863121232191266468571605909987615858980384937835629890900630447003859909911458299442532160340371822402263635320565863056469185890246684087686202347329047105911104164176443104609811832149602680565362726509378926854211090071074191231504239420283570212433608498805533301215388620360335546496536942076280089869349916588471238133364097846684769781224171740567905478130595430486491996939260797573106643222416863552051893547134438078940597543758742982281004130600453293761471858362221318148784650199331644450288631966594046705272591930901907766227652471964487704160148025292226890385875006496743928355667668583971213435905030050247243029555191817155588372666170220055848363122057087555640178052122685670607036356142614250219625326552862991228215063034433853917497145101047573878713162758322916728429472571217438371611539287958159447073233036462744002175754993762894955121010677219591939024373814257689247746179502407329418373361435182860372802410753574527755531689999611373134552956868568356625030163615318188382556763759622537038175601916766592863768362110040018222462385181929720028097598977234924845000472996073610161289810217245488352847825256173780523313400522472101734248395841190119737645903380216094096598471915225315678769975347415090050905309490014095474528127594069923931527097877483600532248293105506394300588570144022225661419334436246435969320287394642179951280862892197416029433966793264947797432225054136456358724477053687416356450314645150140872165235905930073055435302017415362485868002025840817098956275449531381651015145148063628070973231302222900300413637302976762581871289959511471950328665927824180547097928342774641357533020266881416734700483206295577608687247087853463028342055756022702813667444184490119803324261609076809576079199918237353480505451348491340524426219799597331484614315099178368972519407968508038570296270290681562292822136790631370918806513535586717031275301769376767822419505760719809418400599168495831169871230141434184253579450456875080957328769931698488550373881199764391042008372345293982182236779847732417651303984473546439732012836347294685191568578541151090128119429531953853728152948547802976766198718162564583776812091843814866003074147238375641721475114255317030201050548656359178385842907054896284863810939204642929928562994589912470221064300627135145432198304264773572832351715773033892861030265830280122802346461332078396294230634142147605814589539112864198754164124497297342350377291080442866244471128170659279207253322139235190507008847394396163316558356619881908232592301732806538113721595008840047969903940984608989130762555447235195113495881152980753150354795104886256804554767960637855231278785441052281884802957464678984853124113419662294169871628445297417690111274540899363778188003168297526495408805348842245756292332722470238776303371953332358633716441571375375395039213707292780157768513119387455137647966935493502595344390806379712260117969824321553187469257493207995157084101972479962361165885604141795932966387925548733093599980415045620715040893754525403994138330026165342908708855534079519521855037508607101167327731354154941714440625644817581756005266944131842144296538991494226890157764495728000656799899013404366983788996826579720001832915329176446727727459111379178745813358699403255556494150962534101617868731199099171983396353221329448454264956373400825398350500873095760183821182497396397764995853533092508002744985888799517975402531407192905698479828814398648451842954567754079142483849289749423782744153178350443727833423893058435922244110045355871640775276419604978765032334565108632934198434406214927214851281347573593077795173366561541539297744027379821003624135121207350968624981706038060068895939006907551515778667240240359288501827381232884315200117497569933368412331594795006904082890652292054337392766561379146095991382362091108172466516877755236722916811561024597131233374708384961349796714235259934877689693046499594574954467278532931533349794353598107150327083050159811571229162618021226249778606351634664189311975390637292235520821395372070927785067346922286888189660181214905674226546049838461230686893541301742612447382314707676617212125193348357649455132571794109549032314500035075578221927360516889053727691700532361884051141508569092501623667164481882039257667270768402429174917891585078388171528747066642292482866950445300064310900101092969520213904123029446703538994775221944495529964077470688398837557404416885971699880387079162534549075522974873524997239827988589175826827151674763958234382027120143202649777293908354514180260892613860140291340592572335663039881677657519466832309287238213090646606314283463783683706656303898404093458293996091420428584018352072060758453565364166591900372893239381044054974035133504754853858115666231399491996218803720890113112017425853460568289096094870793425569607346244607120722781052007343721164488769720627486898692811440208774539457283826275327536147009861337066522126910344019835240243672136582719717244563238590908684412930651485129170826043690459637907433951013716791047851360938358600461903339785919927581654148294351301889275632616126328380763265082854886073680850684851288092567099649937073391855245501050468685922694876918234098205614046320669541624944381954688749261070292579580798420605806872479303853324150788199486867564003250176442442193672241419982832845254358051941471232258019754083875798122653943429368903686662583622907720947089756133140635042058134421725521857542148663207596625388608018255763628407820512110397693273740804960276792086179896332769824410850689391628559305709308887010992747360065356488027008771099228907966413594738497558366308028094862286163790675552509287256346990054278359894424629581635922126011279356709846375423901231778395399141954418038688138000642495471309733312957006908682970442417573595532622221915303809025969598556646916565660719559429497848656870382581501264486790271371045471136442316545107849874230611711858155474712982440854376059390317662779884447560601813274695589693553410175973770444704681719266647618486102742533902257094648066278804374556853389141006839904957501568104320686064922642884085217512874364898431265688530505351233459562997180996249100623726608074853384345590711791405235240824031831141092164482753064179157113480309503741824677447672158114650384649254408673137470019171290988477562546916275817871179821353904314481643704369729093731980518875866788697651818563519482172540296027119482546934415805004881128747735233579044355544732506325917924910566065980046401667616691307874533609728621580180537050044939191056524526341034868148882872368844566829400107745779405541567740740814551462991215112402708725461264026649896602664954198064222810840210274305509614102931608779349323997718330447998104589372965539533662753430641007210344764628403702414687210787230547135662003306173731567813362527414297852204420827260368076115262400047753066730020795778428829870336376056290621456004973336438736652406486997333014066278136754915830270588482987921145910751188840922031601434159848445608684434545015591362143361395845831274241681481183562926574603381373880075921324370411864600063768472391299452816552977324871445216399783748788897451786444781687075630919964585741804146633620348596029142518138748158054868020067239632019760986007748575412886983162151557329693404207357924303015126285881999014115111402550521103883090192168761402201977874170113805433695461426789292297571643380183854898402244144287771823021482187604561368411936669482412503124545203738348800141958618766694719575363855004036323036028903557679532099912108590297871413332667663009201357529877896317810300649215465909513161536066788627177420527940788186606406273539407625892694605635433887135026219715824038848503055273940242781043889744448475961319452011595185484810368383673477102980890114292281192105931499606936374496611816017768385501611223442181961474086265407495618729652591019970125015434303960491910533066409313183417802691914774042153097120158413860395001401656824789033281540421991999722707305911466975941142709368273522316120791875477421009946723178583160470857288650301097416783062863238142266900568235722848539926380148558899058048493798569419164618509720657070907670535529075027254453210872788109542855555908009531446390262593030035144810758087355872079123423437054795921506573010221295678385119511515271647301949746523867225701423319342595927517377255645665690260092181750944541027508119494724122228747672044859948069794158751316053207598000544951048798406929342630489754838150536672967526334067831449378331759612729908265574352627665631346680275362687371798089505155337546201967920712808974235483883139459534626040293844274281541690417316527969163653160120404503388631098692995160640584336704850974885931344767751779528841913695946930474993428575541875053680583445735025622599262518204039582917872046267375026578567548472394283876418316022504647002346155662826701035252014826937858306422634734809554434948684657364383427256193528915285333326425105907534624908148254438068568677236477817483196786569330999574945249362276985266185033496653699702388235242313381939839445709493278215886496698574413926659070128063037488797109708715445181404369378959446203101765353756910813822486879599906561071050654229914134075501693992620221360288929793358649562012677974803036273951492499519116240355421432113991424915311360185791112550219787826729210289378961018907758523145029872661654767197213866685607952428064157781549721799935047085681510065669514556994977626129678608826646363000961892453402030708903415469089827021328668446700502006213284336986198753874341794490045140815585534967297333255245773143998351906765369343682778046624874064672382910163909132945599271185385552522740785984267767010030406487085668740223690509196293702989168186262268259205695293254929651714008642799874749720101616374493604428585285312534540487743836942945607023691848703469429047631499334137745987662258626939104294824888691425189117497325869724751918297213397902808346843223609177765342464558944735218602775244184999890357364549252114883129196765843694394359284709312126387304469049712139661825515301097726138373148387850991207762317950452157928781548722444618554468739940350528395466204248671858557525133050789228966588023820098910397786643215659022025604350988962614148922595788619492960718172224193228144266145560735302505703147210262417459041753413938411991583287387696813699416826128480498141277118896035313905990599738802164344786419695443159239971567023903121166304728061625562720087566951503026799261799079238094532765178461829828179686974120361543210630060522264124286234880079496136550788786781660124691503346097088980393178726173287960558044823783289368826562520388860455588227300323691267553963661570670128987743817927458637793452796826030305548277297072702285185737318535527057178957183828071056680282369866754938960720060951941929816303413016147803543602203760387771234147867384612991168151170455358556296449878398772862324958891468981350230781723926031043510652150030971672895034788693908925567682907420462714058259265790083543943948372483434162941465753313171711131138782715843293729962136841917926162794731950250493389681815717193172679948593032181630369748913168332417802347794893040646359935916645036758519858912731053245955193180810624786573128679899808677507509405394721550141415211697034784899637340778722914186465736380219259310713019969598271181008394560676043237471373535372215792078058566498906051157502790098544272660585607623857176659626220129318346784614410984568226217298099684077759064769873471986021728893430046944290140451827727781654787367108496396712167955161742650390371259678012832631293032588469119259593129034998617558735298935890478591489680375389057981774584963864717061357663881988037723836052056790892934952096496435730474900293413507277185612667924475717085693212456492360461040326027931507434591074011807949497362176296319885110170837466719373617247451337126386351609419414656822957713748536381224720523646182294405468109126876204693042883322600421725515423578213998468764193911073666359502801507225963065070683265518631032008435527005989180813593487590503028391798288062015278664305151820770971197555594667123475001140287694013614222086371035259628569165164249660832648017403057871350198140422275857135421542792435948722827984771511006880171629267740851803096896990306649702347234793402267433451769868261186093202751411121307442466725836145696555859908661591645703209268006400119461540738864592408450808240434161840350009616817648946615139294935099509381461543599109822386061352701264716965850956149461366687744622874338691769714907173384262204302094307770518487924582920952757861414569757454366554401478146599541859804561991762862229950876413376346476721914078480822816234373109582633069983178982174801924114482525228912307096554202282777917772539084483339761712190310670240772887286997589119300591404069737011315201931892336324728383106172005441728654270239184093596328283616772245521046149392766889130279426906073944386745110256116855966235948737590227093097647272642206008676321412650954644074904380732102908744516287936276279869535358679136539545848000487207145230282695929999915643592970500192724512671406033399082387534047364777167814470758373918255860489267665308856667023998451638496777868200042665933090805330260421181284584636527181526058892713272500116762244545800572441165044940632457771777178142414075559949514965971515492259585963887941014806313488498461576363541135144767568541153207087910789470834369727808198086557919735519530961663093920005936737561297742062182975208723908169502692440677564207551567235733308773874363672384454063434152034344306748057818892076742280946320219645256102578062189465807837705632379038842576565210722499425218469632972840980476368151978588130422826208084129966666548564534441450332243185364704835783606765097238780347131722858105141922979626322587816425291114030606733052037956644108395012309521296601966743539360566744572139168890076582013428761734772513153728099720131362693491997276875505728198357497416143709135244776610483152080889108493521086998524109383329492574264309721852217084212235633025475094224578232685954855588944576952842287753784538301303100247071032625417341605167642958791747904218260368064822134449698050714425612010562883776523661686076620135660855389198984442723683381029638375551386408197658566107344751680844126014233078053007150551958448393926148898184455609400194746411032301854284929105534207636525795550082309252484850459139870175322756734742465801017417186926272560584182278794026977364372444399809373773016123201029764503535149639346795693342860911018546365916088676305816224136243675211928856795458109572662231271147196439138198068375601032748134195878058735480134862894470070492924098067301779650923204478127774595660987529789156536603172563772981156941672534707259732937223343271079019686510170708132459853946661995958324044113238631051012846834657594388069041666370726909341277937278460898412335359564340217342032323873453258125016351288757990510061384441754491692495915223141604009032359588313468352575948739562192249285692940547835572159433449887435970389474466464931182603331677865798300170864742898172331894650578289274873524957171986820616037638373413928656663348508247189202869120263966087865149245622487083853116865942665657044115017434721138704430894119268731112346413660238438727877779397940223370742205752326461259081746964161486540390878682805829054320866271314366013949198925435075639673044959621124899276941704266882411566499435064638060741854129466221982127498794359346933094233728646771177387768360693416264697446205991978245952500841416302220767844352603453797456739136787969987922998923266126563009307008469941751997159592643086679397144274071417120268530560247826411913055705207496000536174791756588758447424190067471378849758130860534088489175212161071275735855768678960391955066406258900261611585439104199433226213484046113644114786651608177384842549951548304441245425807961086712232577969788073149078994588146844831524970847837300203173140428190434254142253038866322352078549526917156065763021315764622459661895680079774470842323492582874694162956426953742699479157886478924141118856751494692116206174748557681885118811691148105613389647727425218575286259987076440244456120823772077027343298309423773754355215167327655012756540829487836933501157372575316678628919451910979736277366405094204943288103966622780544909390499849264623085317775527574722191540269940577059366704416264376062241791230463384166946799775503655679579034379794750540288671333351590631864191316740828042638448210544418934457706735499786067957689064132984663199157732665382937289317655469672010972536036037860972632201762462649321668612187515393605706770136433064780289306705006410635363162660692010839985530545710847048833473446183677612339361627623440587551774993205904993874663027383845525062835924604841219170132101216993961881503191354139412750300478222869260632615780128529433503541311389259914983868358439976458350554846685311181539641912506311710586955538910589999899103758321020159119950104857183467674756779822474742429649300870512704238376806560454363338181848070560340814869309542581770507726912138206818441173949529408460945780637712933341230647669138438143288084973699610755873776011954884401393445879863864467914815669161015245516374558760349259340080185941524768177615552075937554116112141206101087882132480529244762030691883642065833291868080041078791307184201355643167486417244000834294350380902840859076661670613024865280152456746085779568573382251565269077282803371576471655696474579626503898188573038948367151348122307207444220407123349223281207174350323089466532200071870500432678435578542772573485032348814112920653487919969992250324845215074921507394432728265258447709260457876074226853508422747312593819378411240946715319486697303428259848164720438537747933184666773243104997387251745986677510626447066777062513094284695390033695112645431267960284119502507061506286295945043567458013232279636180832405233309665065138774943373739916789206847115483991713356814168324145271660506223649719266583457519666708297046572381386924117792754205506158550626592750743860211965748422794789247480183893295917186404378947359171379041046602447926474384459657311845756227716740223096759740664373160527929275428686866675617355230189005620465238443669311806546842670753000922066295306243325257588085311033446142769779033718236622530148979444087329633992170112696569459421520490565322692143751424392546216034569701394836891989504888673533614543794443887646135446351523482388716592118560279098254669141494372713254795243758665833215287468172415794606370025636125518177105421870421677207665735256388210622123371245101072017605896968819084829916856622011661721096179585329532308753340923667063406349632070327970189526955245964651302661524026977213322127043163992159918179976084240698177445245805443156408683233451477297205090815187416457079267600377521604563790490234549514863070071109670535533876107750784480270576525380862317329665473936258898032077225680927327074336909376686185489380380710241710044009739028687209619937674322371637953842620163292621242929730303844772115322936703656200310303356720790412523905733235183304875832740818847718617095203413336501506174758584146230856479073364619393870179045568226207254231735174802706846274518999607155521560093427182697497267188390614512328095057991773573427784611141041099196891577967758406693053134237260832989212249436095783717035770643561022742913061129755236388525607983394264702496293231922632699093956856692031369299104223566323555516240046485206095566968241797555949705930159940161730537440840120336451465288517233122570750794051073974598595729453863102504499393134219997084616371119045868361486915676837359993599325350585630165713129586393253735331253632049746682172390295792529471305245530856672892260196397318095197759305590650177782529015518315871797110975661655136129406333927649973843834745191282690435367896924130802776377156274112031506220726739878644952774280395996525323035565323147128213445604142260242461456966106936028710304947021609337138255239141149699719103848990407841291971572014053982232850376402597249753595976303596569478420847645942457703662946124026551128538415007034439235723104745022693160905530333053852876716050943475754788374579026623932777641879849253340845343169941611043669320586309860382274884909711439970716104963517333122035239075781041406573340289605615598483293502231221374340830940198289040654582674201884136635749890175640675986837585732425400818143437083823168559928358759368362045579482140146110412473427366927569452630328653550569000602211396117291573473207234764098142361743984030024798223268242211464438724123832950947923807155341772063695082135612922489375920067187101665587553249072341087283508292724829725038780797703014524596501383723937372332677795571179248814247546323450733052359013649414122620255605598934625809945472320502234207164547342364453510080431585937379588221931744647199936530761642986313476775304411725178172089558034833648056731974351394431803775895132566617029657883416128479547892270867681567052602602368007493405882716035128922428955777254011368080513329274259383063485522531717702682860513011793263348305753745791673616011653405347129997772116432275563321356502799782291880387994475827718295829842869444914171587416720530120884986484675152556461347935100214452200729753383455913483984144648053013633839055018408487942107655880086684261609254871182843519006786753362672649628972796181975029883631325706510382790376253277968304383337868131118671114824766781077085549048505862955681956114158620827876834187083385767142820640494533152856894714826943201438125499453737935750717712457649361156449358577802947276283408267402967578441062687832039836822679205348038562665680272516969738298425787649339844062985308387732592974208869748598918350493616878533479435067401875774455468123700714775428063402343796894558536290075539675125013445751635594663745744180596888221323014740653519746653609988764854132530361463423595230075485534385108075601282827894751294284113945272859134167715900972375489067977865394071611897300996876417090397413058219926190771888809399092681071185462518974257863836607701301554185294803237696002082420515553268418470582109242283071966999269117866226650694044036344107406413186848320097309965056107135028959126763986053054403773474554467273173552656392972432005168376101412772930307409060683900663773872062440275505271267697646814750924160772544022380406725472116237922970607983981196048586816285439959673443802612470870448766357591190511355701133018331949060667511762806135587499496212275382028925738119166698436118991477749224372252583807514183648408370319264017909696928183173336936543863720317951926202304620825126506988579276092284005991596748698466038492465815963970106502809389221267034703537981032462970522090524279167681906590140942827828334243202338369227590957359947813450041962823108637256390505748637132435928810234135137051627645360595830140410626978074418768234876925215948982438234346194409183892192245387270210519499467758655637819452353764117275791277414388517612808471750111678987787548554635657477243477105424501420946920356196270191439877137948852370286391383559149406113504207346666279918874889463045575477439264883249329789756624706100527255067642588005774728720078997457090279846272791154815040422255854512383461526807861744794601524008500261300039939602294684379253139287599818281889708802426818091340670494969527490748060214200260490803743970922170115777425928985399025656815468693527257639159509322583233991154435930003856354307858777858635489904666589890448171385122194234475878962978505407355359316620805087807994389470334040985898282845357956681443322485481228062329847632395948450909802916562618514414422872372190367976279880035735395272804640966923900029977975031598813789614897760421553364262126146930442460878815538960666565985927814226524853920068569034897460941100477303197565158485923170872058304682250643587002133611373136179414975425145660499786727603309670515007437598194383665752239000794868678096849450767456264481704127929574150576133972772764686813749520238565007099807909482181213209386815412315335571289351777487861471679382878630147905746529905181553821076028591301559706238581327564418000647196908573792386682350796330784716600264507206046971017007907875875693657719068698457321000207580213165866910065504444817585047428653700885955048590467577638474369110919604086118267870381751299162004078139054927048662473165213712269315251571292519647871297756692432999924744959266845706728481530966050491593355890724973146563303528089793133226356954329013087280575482900967992133563752510928391589115730676978018469565068650909313840996296965234370388214920923225862354990722542059604697842587867590532365228983064891208683293774810464527675921906297655928934989264102764817489367751111338043964473810577484522006829378388273273590213986877788749686746145941696433464501318590471977642155407523951957288683506767881211111872328598241188267790782354698579819627294866393714969283457792122275836141950921670930633438149394401594956203440636597595533205945480600659675900443651793180687920962576857375041761115035889462742965343873479963919543238588172067508023826352656880050201517349823679323041206788929249414648727756155065925157568749568781910397484656556232099736596394550278326085822269093197613424026928617095994396047936054865649260651284314384229261786362167913753464540698104324064431451962490319194091588907939380646983502649803697901234648900594296402847252527916062508830128447193468859406327993229337484877154218254395082263990327696466168769879577611554952396999456322142724607908703473435837271104196310375705287458588018427795717537488656628192846067330974185516810072510030889419554266691913576259633724718728551160154563401591525174470666099970098667936851167820116757776591830330998299099960664131029925011305770145499458502470688121022024555007578473052032388765506908648469693012352668861363940647904518988044828824697689273910968333803255376513241869374836442330889244875970195180307088720765444227907811586704061892039632242013267258656530867199309785779744028595649409715240595809115609774178091883540079775392330727053087640150222858787410563096968651253509794089902565537591111646523097174600800731921914182527810766432244390964650939169447206043698655791223264330800017778347706477478022934188895486693840930134139593011429775492884066367678799082839078687557648011963527180386496846187355680323577197910636857694120964197136775894180899414403570613055351030569605126530416497426411325300478155319982744658909809858758086147136895661623219396537924256487156561202852169301267017676985694147208134326963161488242052681446651053037618273892727338102139509712255863756392070565335132773858394590413233014036017207558681176214784550430088925012388088329934969083961731371969585118049260318733457246299062686024918845437327940328174030089016606822756989379916232439112880580685800510035090557282416032987667961091476518465914691890223252590293421028226999288744852026202215932571453574755586316424106580495487316121532658439348884917219409004584091410040177088768428537502777523687114780290395634560176111852210517732270763004592952799218968678554312536010001262247041045677106937798950423397182399015405299572069472027465059952268919941374522556825897175650303805856804473542569272924367065240863137108081795576052114270759044493635528085240511476275754603610144708579090052476698846402446981633711101767509598026655805530235516782589789567313734920560780735707658437206344434604947893369105401819277909297100324448821159640240991977637145679535236966871829850889101110839460663405091633445112652611511707204732145327709510605879639785140829545545686655307222945867784258117220804151042308996218515202059452621673170811241189168974130036898572106891152354860754377739848491754857320427794253111262765023940620181086939290619168263324372976406456038615522063133343357094531369893661437977734895680019934115961830638739300893574505553129624489164747121522094487789663297430035396962042642251632416890809399525093624824540760219131012305182886249683127703682881414488505549916902085989209430054108793867074912882970087994967035719700536352350783056501807211748362936767255676972258202342094232919775750133427490327390207714539701625612233597098691133253111031291990627354449700654507588103051167143812716288586145004935090665537821023706674462937106020827298264107760353131587238880013214244617635105252944114562463819186286454937835339352179888642698505345896045596541479601349132839794804456996468193587101744783728306334846100427433858945425971867289090659684201001809151649012486147434229436796643398489482603760299415051752732239697054525084445755786912027193510031641311156515244724676970645694470735649852223418855626679002475060412186742913123855287415551824423121602033612021910954948477912474826439488404550986166600486844489160642602337081442189027838156355167281342942594348131873157177615531173006681535218407440044809842305685400549343165222466264550933816383539465112972576918835223641330737952693836897021066461000479774215154610305688626497587916299609838773428558274281662760589780356018603026491617181668984801140889712499393549727497691969126348738049720190372961132622615577745060510743324270022572313271114256468989035123417694123846648393273829374183116870027114433640891649277817151394204359301455541272006820840562613218808886782338091935591656951257295830889524586425064751950065776712166952305448562364272895118515036395001748764217229663761457213448869983036116034050314607373043933224519974202933626065427190131079051902178742962629045243969876162593936762888359277222147990894874426963499722656699705128791054026431783953562643540932644698780303690816373516350451975582116035361403629987460502771890581234991694692606100857495370223663550689179138558141738693623576413963034368166397303080934326176472027117752930487034721839027440538733105735535352974682186886122070651410749864886574165151585554341281771785470798917356220100421155701899122715271548515077894727007979151778568924570819661884897714224894318821852517134375575515007794899167394548665555800072135802991168732497375120274425484122483963599445109791025041355748687606162976202052977808930467166305876825609776348499075837296414683578902240681232650575935767166282376363195252952226652245289316166247800322270409733052299747323673059078122246542645755689232052197000441314098352577074803114685688701093678991996281624848516530338634080555219758874037267044778991990239413403588607603663850462507443911397467238404592229527045957215421248201258643888242275543731332070791257499229016356657676843276878651030237541091636913041600354618597151233448660566588424553703640920512886857009102739415693735665159895332975654478542724566933210814547649503456716634584686746544118793033820354815728707609701429989372765205295594172473311001576256980059532737167673293399715940024903193442576779580486334824728049562501744333459387627440906494269197774613615062859823729119797085168936904905886463377523761114747776469168030276134627087697735007430759518285723823395448904887028695701045310694414027436697828158310929619011208715499655035304197484962360123807011014229061359864655068090404476054513586494516007237061607160146307414069677233080032481166497756646662170917700154604061143415223718750948738909130937780942169541423189227827968933543285416486925155342767025843022893726053870727351961930885816682431957254637277415114133977399703297899361430369969687193708928500447232698969610793875798234501850350581246425942952527491892233558898145295344942725667115737442880642719910723131650232008993873940447770167860728610775993646078518827084294634442176068426511482109978276993533185213386266937590960582901523522849419852068778350731516007086706635350777452891430259963589394162601942361681282053571772345531491488935199540360412359117625367953741971790482079613082603780814860565368749707904117088872685726803182826984825003507790884851981408622341277287901378651628041341320656571099047285308173252330556039278842147439651950994489733611789590109370954942617229038135132063403774507633488277399246919133804131048688562624119269993846778378164871338126491490954341018257571410177548142702474363896147732263942162585327533197647928441733048328705366331795921917769064700590935664031359751534412509127248426316902810644288617790950619878160891507421902848991196532025271126641036041275762395372825120621717706434523439534913526440957268364891340448443515577109032515915494521525802137287201100880823961047096280716788304631207143431223619125994676993473501560210049998506057439668231450332808518300992287430597905420517102200807974350469235223597126696941631192188182745227589426713710670709940636073554899230299370719749638298974964648346628827530626229459187093291230719178055692485395973577580395527810781344371939289723829229068636034456274358823813821971628310257855859657142011075668168794584577355493914021158847683380820148032377355178474766476932232598803874307524814311441699198398067990615849288588785291102284833344271281301056344845709194483329448075008126852428822855225706923314110147368362674122027872676486680109953794571980945185859697989619444762641164988358099038445618382201765920242644148600435442839485959493319977191965074044835229923997676868075944368347666408305861830783800064649519404509271013883146163319535260040188855780947615594913634672522461217974401150601898490098848212003425101683828088895028645188773083756778703812293118254501038993159746097642580397742812847263498465565628833838322536012171418203786666554776322173463039055994451759510250857201222187973881408467188616654118377776517489327817674490794200645539968429463256756507072284591281834820128609876702361390151745176036841656974599487197688997531867573569403856036989833656702113414488199334359750807370685065595195528001651683842311609935219383716010203070571571969153439299761042862926847166654861848511395771825787969740010671716785372763447114423879009675066508823607118468933267810890178418117386640862627270212343679691611353330251205070994750092820887736230068672639750182380207967964217533786998333934794815476872888067582842638276097729246785835148235519848549191457446114193983587799266845944514870461806070788950186089212501320643249845601174866174435807136157426197370109897879830468723517580084910958778208530312474472304628390865049201859964659047421347794764126893044248418638147115559264886551599262869618815310585908132220507425301180560909714453308203057325927639629831875450798907203709492498702791596299469772737722540691619673572438435421569429431287221632114792967108906151426964550278252863160780672790639224852103298503581259383119422362021151458754871731270798396221217143494637025075129713613961783144449904552820828502825861846453463658587942308180958406072145693304642845650711563366996870626313108918774755567530454086515072850771495925171025230297161816527540887969038450852612071064739183154335845879357413808477561827182920103290419504637402774414357540790248202516850772429725554392124712245521817954417294971482623205534626667445053509558849068034479445455789519971707801485482675985216635202273449827131279956124563984434285397247190011873670931424314264348360862741165418333512057218720660564092977474633577422310559506171334816447942782755650204701325195171976208222051621231937945682556075542017558571817037979055811714829423608346813667494015132436837116243212457441367427880535374267341815801371138204052237727732058433567839029701132326947244206141779286329492641241258537199125992899647820643162591961526426180625263311863237145257757248128872604308172195319779076364767164697285168576456480774464501697403056685899322797990337261990987952527397539081214361727243523054718762258048712092660556398583179570082716683792350258112069424839205806925177944432691711689249293903067620357375145936195403336894310999495287884896413914301656763265936523313619758885782416907870781089935212150662460000061046259262604264885801181873462552717408658547890612502106385370951433685088254257227127564310973899566958841041037919406675251745882885612837337109322798506705196171923041501461184369505696560543031045589204950716073975550146977649092392081396151412729830838751286141354956195835932047046630903006104675514740716674303596570343832969423120412416381296142995079749110366945866006670423965783231876625168287009586590582489508806123326022915321135318451830491728626867024330061147922827599670215430606973068249018150323526592482101665711117513842408841191671985732963098835557123475857214880451992043634394787182418396397093176012992870188399002394454193734857239115654452156209311757399749584008941285487565872150254121733587434486306270544321256325843576731295811322023385721004406890476740001625035358359137565469185845362553766424533770189379906379362445275705699294497797653918243665710573498655582116592064685627888713220373640724204469985232934234857862660245890644192898345931405469409782110070904389988871259603008733277631369977996306842141238116744224397412087616164994482217190308338661035582053123374092758676853049462480013684951378220833633515561244467215148825224821753370913414850553773956349294110511005943973367803982166673119498857483357666995759251592102161103738632669946399779224096267967231272341734099928641101589933592881637302827463987181806161579398619926944373672588362189790155932777175544675049233251225994204216852025638413653046568080075326684170373561367205540682739200805889001325374090482912629845578948637989609376275309026706295545170230628444986184941005668004213596854283536377301355660075268809080276776555627461309118948747599406403574231121154469753951912223911939430234895606655309682751819866143238012917107480489823072730145092218091637934812153677544449920303124574561935523937794559527131793164269845236087894599463029753414296836175250589653493936934804054450800994395933759004885289452588605881520639906019864962571409860075277835987842431507027780220482446988599487793530394138318082303252746617443961688312845289973247502630528191623510278700253197630019043272181831652275163540216721732492257044823629263876632717807607956677654152125711381491196232545634275152014558375687089992148303618035246977210065639966089467087947252741713959156090380291484949310674275818325747998080389893261266942341965442664763464184244201967473767382810529162570270907572945155058684536286965305851038998004521409292719016734708802365621250693269984231832475218915076812763027079117756915096982930747839232171332042082059318448440471599501653132615852955949174407539415701914703975616103402319636308963977399976353334800837062148402884964965986152072386337729332762412944133086669986158769465237778640638394661176112907606853238208778209036285173002604652820369305686058271364145803446389141565525128957811440500165531045432370760704710513714874970465475046342414782506422379942211179096526516224642482983445980966638522557797472068635555218962137642026599545367664620034711458357154313999730424531745781811125760713793540393508460160360296318372156146175370819583884628530375880728552043130111291038307040689931321157599641560607271024472951584707418790199951565646578774430294762316529997238614806709489461623622287176566748214278476577720938405304923074772171314871447682993996739595466353918719412656378477368610258002198333822196532089353312506010935794444269448443326684586949220468231625858004640004557929678050640194168318395390433258317663154337874136868724806994919321965030090613187667165339959481143914334610934499116275757238375890110667008155384001367657711316436294132011232377421522606516875481801711749972467080843665121760347380623598733288856552585879169681847331276454411972588847834003582352281841788143958635782917162197128997352013307138120847982609880830761226190504792988781140178906529125167309689912614316325597973817922118853852487850120623372797355774823522118687627198979333315951190852247428939949225777789375274835610729245060008654130831587981265968427030420821648131678155971427193504271021067524212648413171289315694211485383349149874885049050829041635502840023338980386944096578362181661563992456341134584427045426150771765820677299608475481836058678619476326556951297782829158835971739894801825731334258404180895294559592482602192090521809848265385999051557237215598204044602051134029909133623259255716757581117724196663488366701856473302233838804085465311792049625818573034438248147128210960884260839348744245022642925168938468957095114533281078187105825174597996031257719008012225797797511404677334724870545656695469993132226477188984154515318392284890826423484957196520265934059937266691350315529660444298454047242879095325216182080130100654737552163338279871667616880120591193705653831714517881324056378332224251133420873328959611984578919424861066335690004753415963684864365895974684900802107791379136244502694394686493010222858566811250986983701158789493104517797284280421718208153989851078479523864739762644269268417239211901947319351899944240115187321601103859100182631323559687913527184451501130888076097641524836952406428786287885685600160934590652636634851843535205350888429028278174108939884994475909906365221414346976428446081833872162255607066829938047235722273845319950294981976044594752299362069454170752764418148043762571035816196091923999035693359605723020834823667526105274580588913403343243283074579510741275130404519448886961754686063948585586269670476634332066606655479296753614717811977593996666387259238880892648075110952834295332233938963562129391340280204769474856904252469855403070238858733418973808334453335382609109568534762921766516164205885562465089195232870774916282811287373426372786361015351542043896169205545096389000091876661376673311395842441046936530530120664627420744477771244376721000736457803922482572369650785152332116388883979877863693454447341850582936334409603076273029145862887548098381911340486784136107283944431362323873661468296563813551695200120374133483391471324663760949933484773196155947176947251293974367634559413447192200769257307051055820868986474693077768272871948653124790663674340687391502562746557820798388627201992196235107991896449145885278071826821535881627498776552143958994338092918355090653483858052403488387459847028968474549174936747939782516039899427401263395625025654100322885408018406647476087943499730037509695877812319544407720788921062993028477384285549383552688857298046183149862106074769690022232425928522518974145991458432530271554917045759336526617080851246353858893432127171260745097014684401602787529252110909104861825301058992938146194312527791721549496688772298752467066500062320653850877319748248706868779794456898815416543487932193754773648926171984379059658259227954984355651197261046485762214137071084653427722697003966107731186593162070223781022963054483688244331633992179048513170520045644311759619188924537326009667194056184397180368068796010423104461238264087565458350819201743100222232496657443947150830206642252198429772133800696131333321608179856795194338655026859634993288264560644091938520624885645727915843019052770624546481312611177996805532813452340006405985855395414001850879238759866813988335473399988069667147118519572044613206180909819295843193728828498359380849491047871858674625956622025720182088597765484189302529497731090952676311444077247508148738046916576725841966945550994469918759721850408431886059035768592721799909732152920975462111646113442583590897265986156252493690626395758216681098363598052300753179002009568112067023091363082397255847372373075108021141772379013347087422319908452051388998734331305166301171597204342228754619109262172742964371614062537402028573597721543023883079999702435981808192434448205222835180066750792973789420212667245519636763388971112695003233791383536485382354004324599155804601542260448120646852540085544217340796776063969675003596838401297970470039283670728213542669400797568049869046361813186624310261159337008233986193784722160056097538111959740723985251874693020842472487467017576851525908626908433974152738203160473034639941021523271955531362263602187250454065290253898124584735322168991468956724580203559501449879009655820573306475391870830426781594263404913609867532091401279261501896129576816411284570417491238018800535137091219467162869748423104900691347657697886851623597909887265669090248575606919694703178716656479560210858505912166952844945649866027084018199270218811268559180299222778472023659927548230254039689584712725427649202899869565825133788434614179895263799848290363077782523952976339003649493199488896330791007927456317741408294293688585095120386495460133946260544953155972046636573415327645175037333168245322074777358102607379147156676717309275469044268110210013799674264298756181635142215493565568062292631835641248713344156559044757094194724918482430104581788107835818187654919360582772758469296604526802913035491733236085639162885005402434986618509534637621532890723479990695010033541027730257065102175763691286658926417668618409853255378637671386695164681816549608439722407119089458140345834159877036450520891099262746631015804457009490953246123487637169676492994537324759985881188648661033352490521621384257732532177790428855428595493606201016125381710511354712184403935991833853295164359353073568645544860303109906475459860443113956916010482803253410059416549268539568404223815421794978198188191521637866824361089479571324289295006389693229864314230307744665896916989885761926313770413723731686046191687471513530587099209386697550198499194152409924643041100636034320021516435216098528473609917063971544598944103168812205489460297424764623584232860374737983246944125563666017656797834038662469879003984488605038950357295865697016178312766086411165554210374390249843941910641995898610121257697161894125370750015618142984689268523939665366657168999832748823699657913346489215819128792276768225457737253490525350453578300396217810778019121775585141672546647140712637436237130233102623307249856404206423497616250500041583295148424477010523372472158973709999700025186151079643404565225567733850256738067829284818745863484931698816979430758184100424686498952013274683315943290201142144441496495663852397649478167631315232971990607415256642952775999349057055775221620058517032355685152328375101688395549474535072867796708242679591421862360162152953037218565639145149853283480294844149019360642122854958463380892128673897504868300313041700245692385574841244230657391392007426395222703767263358199697217439292146381965100627790690051672464081549697372252900513666105792775469156782834277512340741911228173418413280707604087598774439161483419533672980260752051081924160009969253832624271014321739167501726300043911646710650829383591570384903934164084473447016310180362302177035195303228823873182768655540498422339081996241446734292293434664347171455056867175432213335920993389178424968084509564605751575913937895923036251317391857474411707191786942404889761616629229812369002342404980952550296484571343556842052385529190282529490717885936254645648393356271334440418403075126697300057366058908571627063596360859685474454656515481802933481984080853046607259118092491980344196393252556297228571222874182963565575657244489681934175281138368275485177093349135463394386819727191299788295886398044417323239460204380621185094428349022138793889596099745365802901936471276331143902147733427012022063896837202985080141072372276705945466581090352991128636533372276437711770923074700381350322906527669415761579302281787911712671748683838988353858763614068504489827536138010189551345075695040146472759549038140940776828712769766058315026100405207240832382904994712335802680130668219639321256660802266662531425253011641255909920250305564905202926682434006287864454538990331440557957188332610301142902145720841802753569747738817592032824883287625191804571503888267749218584004779348651038114247837344621625828766433550321367299163450976987381288859340193999667428478908780262479743859656005334517150160057904405152186647807611668576178793405931693505117830916021743760917880878932056782153551248234665234451487814423392567520266650467936846019491076452040801193092433180887853817345365032005325467926190463952733020596690288447461454877643084880184566297658724882067931082408394505215238558752554637103467093832451040453169440654135471411954314278022344012430582872428361106975396818650948624376034965817086166802203228651835909723861105863588701276483508719035534459743850263685815257258051839719154787115299805606720834909623681136347306009817670336313951819241558018587537002268066774356097819639487615631717661339305726303150670303222500726759904852220293201327972504481711154723787784151779681466945107847453717544312866264978687800566037607253310461086049217656363201541056774378801537643164919781625317408494488318662324590176742577458928423827514452958448655984758284359175145929437838407153619983405876628908895774543515785274026056211306646511167793209484443913365761894057845563797470590137216557060487211847806993505099273758385296524686833464255189059647567611864207416045509430262820279016429626262539226412276909308939688996176839392217573539849169127892452937209175515240736827066707279372993769436255247844438198413147524378594247863753767275310671177853865383718954752994120200538974520371580875280418865205147133060290787312266678832293337087757527489992603535318009304303754842183779383910507209581759940009370991400944661236052178605051021434859400231601124424328243077971990248724750560608317571664799821314115329303429305102781522227913376577450429101506785991407764455642657415085970636268270934347670769541829196567031213990596150789153464102835527926924818937796296979281924484047331712435681970751295479416313884168339573378696052292614255401856938170401580552933876211065766241055098816057296156541377074578686097905497705869544177831640140226990594965067070480306750929539830795050434159352014503693557968349941300178354968309315788685782842745817596860457865155176260590641728145070145003442879613618182903136932741125410134255475870984434702744615561284621404831942579366353102846928251773473753293019519566006189506624754629713519659760989521600774199822419406910359554223152062077106867503262439668873426740739230053373110253845085685704177941407822552295034830550741527974783570864934050739018069362891564809615645582139733988180431840418938779386491076309423358655372783709957680746072900870934071033564244213094213665005985227803409342112594268846127202385495490491041460898780022819867228025222276375160312313309586390364283677675865752982628620166403677579045325104457344140585060861694893788346742843784369208230414487758864338115195309521031743686885813969897174211022156411881690094404549029056789835893979649254375996810780863279121744645999333632109670824762345589249409789176824421620176006378086901149899760307127194278538791579580255655191521730363320385453863428662334097537051786641147535034829796976592447836152620387461269027754938012115673372201248462393649034845324876125822631785274172242980500636681801756246066641796493496022724832825402838220147490891619025079563079451563013476992658219756694610663920526462948742629840857616652082715757908135800028858610678849928831435286129151887896009728912592432169941562745701215461590943844876260472590017185208556713916966639081484102028873294618650325230197367629427439260927254200925910192161385795617866279673794706463440387786984301091207023671187335865342832508241094658081831195041242603110249007486492514185455469054376657954534632143330122055383207815682968179894476056834366054568841212611534936288388199377730829303092460192543397481351115601286561016241195170256390802482549780371212045291506982344080446382494282690380457253826525348796285018934638974268731025061349985153566602722464398709697486064198818168016403817783279993062833747113817994958755215593347334288463500719334669467640919868855191991892182664893798349371526677003383634581633806023441317177441556288063220263431850406150970112647136996369431284441441183484778129989795234539421121448948373009310897394534132292333723064657699428573436370256284654481315212208635221184405568803429530572636948995525863553998526038094095458296971547029556782655601086221663638788969873112514347463601652901585513820182528239524583845360228107756562307516440974039767692105978556985336045278401425899995880014399829707514037893348617667137425515997470527318357414864890225014074548435771538185290546471650791338611481472042859577022170283932880414240900500251476419047459324610278532831644775245664732709806119072156167668689850094200539380704327523584037804956840129814031900082534786596110765641513052253998652171934989216184737659589459918956585246347311816944188529370535549960242100925576187402608477115022175334872284428447481534855601868704226365465586293106831193001237837939345138774524538885179591288908046018601737562506421323613214926548703666243762866445434822586698863222323145104576050447110632507928821359353906777022452784926751333650773436773000164647982764847988041831283058400290817171499399498386201642652845616371424534083321524781444272403487674350785461771082959654320865005355683435173744164883897626801079925460808953865130206266564819767869195749091240108862594360504140084692164927733235646413494316874969498294864735094446249874802297702766780138299139376947003397573404443348201974694825809565085783928276199727457967213301315610398069510645318712791938924555546597144804124349981577498292506252956390008455149033734337887398840577900596130816094758859935520743111840599425338487273759758767852265923956922681221760998773672333916272343797602325831975113583759779545592832646313508475282084695774053812846907256279293690519651934021619364881143923721994440312865549874417277918642827851998761692071577918269386442149472549128745146193611304263888864984660674363243218030270584900155044468450927855518249297361723139408000474043016369785009383926696065128455963274447474591030984585131996000097620341728124869925726667035723854724330991596944160747007704903073543877788653911686844167674515581356021467100654336644294000612555547831211550120948929792542164638893962273276433163038407592476913278082100294211720373079603411381930491806942160350507321580479414972398771474404157230302272276758725197173226016715784186788379800009707637540190225049200429080687258368326909092333554893624134263206076917687832551075814377104786363156240532963847482551035805699124525225440341247759714285771668766491335457442683284221010414824313271984662774042813790474633343703050140704993916717608376297394827626673819065065228513438932544375291958485746596441299821878576101665169565115673856980757502559449429361998703526303922109185099381727316489581436757942081966553574722655419871161968328985315734307592723604039594044612006002866128410491950569147107915796919291419793572522628942271651656249295305314006450230230929307856551154690341220396135431641060790561424720912265002283773608833749451383552614928851120531335854751503033559882542399468681662284255082182060792750256427734565837599643798745704122672142640230319654997247081902274112674250296307491608594578703909792111285215815339525470299235838370424761036676690026271982428521678637412218828079417076243848214222516857441833568453773124898604586772287890306940072110024924097936164472558176866258109187921738401702124401678702727279654128460720371306739047890725414330661272694618515888774168842612312112444868372692833728826290093293561965020585018857502938600743437012823224983355968024823323643571616448923158101744299131736983921325030387858667860823175060492739483674226443485178822596911462061321463472838169054385915477614002796750447843584001074351202184215686414440347163835325827614184996016929419971947926787112509784876712909714658528607238389403029944531389514630494650827845444285034111286916301792141642480376240803663153027743292638012816959341745670677615506640997668423591178889647542189967480353292977359165317909593636802863498006508718689363352496462610133319510023521717324939211177774807973277799075497111956875098118368713956556652904198334858478025356811282148053749533473527311096433965791266399088385162844164617331499254684566367090965029672102668229005451050313575774831563036718614574453936977634973130399474290192373957252409917822687366885522665322641651986794162192481128563379317320492107471309396818096971534488579554234106350978041264899350148536186812878550636082729918487454822043850633114119508535990805089316547408962756159417399913670111110357836197007010806359106238041648696058842533380423832180583483569666010470151041580733641408204326705078357976010731322766014424363347016054462121631448276615439227293035238533786569535941553796139342063568924576909716706864395740747690032270264721877143503582653694773013172778632867664351880910685082118438409958548275718684710556910105044971468443135908501176082196399340618988638020585003229618693062414547204392407646655934198939719356694255468574692424904890420334645009220414105914559332069014949094836605066276608491773590739763750269749253174542327873292712555652028699959493409024574044866456361868428600025584107090275210528510025654792179550815126355886166469667845918939220213426493169220387996066783919773508644480350044179499002851791005536313493535267592068328008459278093297909071320106321515605540113723576405240518397870510368480480740195201310146741020203628084173770407053234212549403998996273689089102331739381027289697464816587276865654032302267961883762555504345352791391325801348911399214318896889837397194632804377920792815665682802046965322418138697394781640578919569826176457731898077061013949975873780683749614119926135471661379010126871755871785501282358555960485021512642942551292611376333861703459032352258554959444531328708718707301108629396275794928413505550124133975438648472205666961451004905674441928709985992162184189562362390142543599022364119783279624574970366423709283489340384268670869257881716384944038163746737963277607955625770218657748452871438334015004690766750028116867907416148855496253817057654782786169533627817222124765844783907497279661279377231399114953785320700665063068800719801334421748261702495281465517185932203182761604312756821012807906520526895321432965442247658299215153748652941519555082803927910074825298735283115552305670295882049346312210652626302187683998396189496533094202163852822105958246472680657397081531319411790725484760823580770996643994671610787833112454205149728594492971148903407288252972696441504972534838292683471288694790810757371362310093535780031506790088077148672599983764883394714050386786763200979536581791260392134832194222169136962186966725140342030451376951801860070817251697941623616626135503215956895962357979718154175438241535199457961435700292726633361318820482253730382243742248035306482815396972904170550387261999984473093542043188879529312932993095079639317382044932055259875589324745138760423353030472209711634164295375698761947854705513123482082587794974040839829282817649134571595188036738149843264187049042194455949622862758999195908575281454233384471354675363336426311909972333551450629036204159697872958113995515708507788663306204152397268332855968463989294842688639226812996362743904876868863856545873396056672533487566370093876594739945491251480628862800355046068812262245326562880409391001569165295208612559255359425573330648163759171441406706767824210910987244517385239091788850855224566308380106616682901571079480574877217860197748645522950379867882458668202314634657799881298656180085042331713754514874713796790222744754641272977634222486574656401353537790311098698104391953929942571100602426953643163367934504822818960361847265249261085716952251354817713715060631897137865831979739664968861071201602011520710423953813400425857322991529179077465432021860891915558180522640096098349527612019140536613082880828272393164889121416977653579901007970015048319314941872123163768968005442137316851022206234515571626416595435955003947266358546615528831163420243945268500202564730942230884192906529046493971728661715056059871823035937473995990545529612621831536272087256197933749581582381932248709484739771213570726735507703745299798340984928494003015722364075148012668411689226199199152168421345149598355512116535905455526638105967946104849772237439578645493541509899263924833627867740655543485380605973674604909272034433118177237478162487955472473365302931249766334123494345151639814942790251018061493203547888137864905426710362797079049795152570324223605812185060191695944290512922523651353111213494113460678415677127811952848014564487010910645155803232412541511814804428362385887366477620412349076220208332542516952462131358880254392603325602951959719322317882133798538661064837818267878019519902420581009858990760328560750571108812409406894927326080220112670465140855206750990866055789820274263478986282873908115658852928831097716929396062173929986109112822065840096291449356521600881314471390340708282236766315272004900860863435377184179374345135709489798938407034593831003406957645874755344067108966606521378205771888344202781732662487300303034799522960000120297125211668830670861933097091059732018189303555412944171995062574460050271269157506906450097546496248165163244918415128734895194992847152922988752671993348016858306921193027371688424839369519085458965884305367064033729554814470214097748533822132571961499470788367629337411110639636519406727465107178556587464783485877071496508537610197080338035042949936022793714087803305189385217343945253643036140284897105206197274831146347936485701152961074830522482129803641180309399218338122184133049271004048117199500400388611309970994143955776487705184050535644183071111772358024845502696593788142004098324915800951687432043546910590262260033908487553202119584322645079899282551603552051808196998425576657044139944713471816987650773576683121986622921657556530392984792783303218527237054574005453263050615388619059898287870310477868935185214212935302202853204076656990102057995918557592094790551709925352489852254202268368001986978255967533306354177413558210799471505461267716284038283137498352322819840602391598241789625650245193077177446086850187962326608427694616476352533460879959605777692050095312187877397546098107345900772307771475721488810993744951968163397037244760904076351341588095500621640391849125056347482687579187297900727039350890263821009774722777148366712674211263745973476999487946746446838626249763202055583717665606445876016558164463976383015933332905595351254013594141139745119211894371984781090702746940627343993457425081081575887602991645862803081331327442331976943375930815580956883603407989324916290839223644037369862864518243548822614789510352916102334796906262657860393950783117602612974147798993901434677304182844588735760872650660177336163206209800107752104031285409544209545618207949719006479143437483830151959023756912164791599920091260810178584205485801139251734571538391187096491270436252330469934363741843971981367084091654493195585312325419675521546089664268463538772776958823134981725797474537364580461811633385526342181078291955580593780693611485785611645009440259026340325032343073259073272672462404328544178546105880593970482885466764106911062146916463514852658080698934031285347894206819035703884725036110339730089054282771213253175852959477373306968735053306059791410642266822264594988688750855216595140621888108763242599838584067462927884126573375924219604096227806871068472308112173682768314084766255494874380949350281538983707378292673144384666032429897784192304477405596098807894544037769755172933154792522282419733365445109531297272040053321815665582646534265800277023467166392406458989606277907014393567442364776170226145364892045004649276062487294240283233864479702600546071622761305368372752354863348978310851955715497446150043436389018045019660854973448265692910627413692166944618712712097478232825600547638039715173164294382221199456616448602862225485925580120876467728134294490552311281997432100423761381372997641881210937848561083619463300044800349143677411715344520378223902611360784596186999967020358861690474166932728318992082051953297580373438349183088305345962686047174985740194189741209027300056415502406634078284219639891454176339593872779052737266313981600327700702804394691272479537705282529409852358941750961528898270544140761606056684604053334445718729584355635510000616843813010522516349877576907999649007610740984362094834298257227394952414405093585416500866022022203674371547562513686783417405474519325588942522786297760015217706850035265253889568093919631706001324328756625662767725752524195802874139756444519042163366782685443879961287856601838846734991355673467315648718770362630524806534722556960043060043548942254579601632106137454539135729280074267690654861786706942389272937025668559542478765233558956065574712130156947866755643542476962057136326249450307812519834016803515749306420605579494890919474485822822197300746387090132901305016640199434025203935261197344665477418734098416955620129151948857116862762978977118171401027429605442348675901882346558062727300133600296602019993174839088892585581763986769658062911280239564148802470143544427360668355548325897388086883889476831961197609447225415885882605473505139843678891287291545999055572087669723432520785036668765825756980064454480463300396720380904539878466630903492089359114846800507382862927023314197034481143569364173195636583334471116872198636726428707519900380998179408560826405159169277362284427074179654011135240243621114138611293351734556590705729533773656084625457056841321242359547268605378900501584757459838584034743894013436193796927338713660676619883056551184212866315689984066774726944644971212237695376901283191346824861320127401192676208023440799194683177695957753758191892880574625585715307843429782529416720764849842578073034450997706616776841342344615037570151291141221523073874515428951245673220018432500909604486241836023605213398475371554146096252612392748444226194872507453874522847664421626801715236478169169717815342030774942953469903617562858102761569254686815168218126448100463027841767445921207442273635997349322224678671378473016629521779518554276959222006774614385695548924369665105168551403613965996223061749647851912505515755285556517983562052073080810463350246318513093206685581012762138964936642856295779037950610685170082741452663557275594187802951075191707813932262837918847920103448155350018574715149242791941093889338071634797133310821683282901532392119428149222778715245235921914510389561569508899579557367569843026700802650153199786270315126227609948990130868151548545130995627417301836139405032486794599027701790631567955718382499037150180618770716076695340798634126249420537668376541910014815028149541422221394804936795315842233156101405855904221521981869205827476194997440593193415466208833134492752403080540168413449897580011934492951953257653928029724288835201514069336617499401490314573864283219360480372503439718288904819911065341135073911821735678537407355073707019054864844080255309584996725081549701076291686015391326080816488453860077210133142529633824736039163019099131824500311275148123193751959641852687856276336918921375520588554693093902398529934685778067623773225636568521275756574206509834597731036575822032768268603619320156855614699181028181539087658094420272591636411776955406822642781408422160631890886897269815609025516743694375536808281099442958833152647208463399155434344940970651499332712439940589330134325665967286828273475729736593792933620517625021611531798158573753993991777354022619678641693150114789577489701969719745977385570197125351738374340856867680400697160850220460078676480255949354482503534528109736507222781006777304539269744859036517336570125230294356531376033821541465592409099685845054899493847410956310491628327130468222777960428346404642874142863067236867376755156836249457233201089330419627113251441789092093165146875824317758486044539849134770664113503050710293524367064662120561165002383364384618004283642909781129972447134764490080304718748950335908654346063335887853746296646054875963698452405429430005008541309760489127390277157637834604507901583844387731827958146912193382865185082007698825522116396552546199453402913573660014348162157644411141212348869262270396164024866502407192477582619950889847926409817713282624999977960755126627263013389071708545303088872097013272055354126039091772800383922873276418659072057303687333568737399339135419251547148598974139239705481266484079554114013968211416260114656633052032542531400661660354589238593913086387450353563566519897706152420673092621995191844927349656806277123894212457913032586485759620488616545904732216407350932662942360875729019467214753358129446989530297237985039571635819783972687612581651003260452733536667882084817268065546768328779209464865739677812294267454577818501125757051489790154874251350241203942926117630488785198521502323777747350370829372384403393606107318163381956036402222813577389485089275898568186578293887944167309197709130945074291414682742285335874394029096226582247458213679996013933283283412933618031482161497342858236071821329811554587724886829320549947856392892460426173909493419675340566102958576716904348312693027327110758953991122750588038089068641919263796888799633492797358173048537098003509888174522433595630598065081884022770541761949673947662920825692068145496098874845065542967981343555114315225803630395680066685845049539294394314272381551589480694845301729196058229370259841949490641264449267551067262997834765740479455434665018396235911670198802333348311539876362698651673107867315638597873269140847388797495424645414657684766064418638677031020266851771728093104453350025661657227807176913049658226051110558048722614938484387191172435101553229884780443508417546995415569226855689058709720986201458109765952433071341939663146489552635719922624006812372823368408200512858378748448151583881471305123016831986577588613446291134990032429349280838391522538767233728637120777796958222203931491583986166569743932562592496250564282127199177291533367669586543545465746298411703394658405089880160852001766943026418208947449060705679093158703986115346688527745155827253985395199249073476293233428387470025182988454920120897415679113140386520325633355783542503569518434985832357497848048012703260966810238685270152090410777606886298002245777337219991158951234490507604367036487215518314696190361699142812738053518514291141620769191101584940118955357994582452477247900949580614066115134955602881355434749622464144804566296739780927389463645903545717675484185201766882593248667790442499300158133634710921208454857922236559864045487410451904043155793911269623929645128106789995843124181168488639597535230874605221369244312409953712020285285145912085363961871664727292619305818365903690604544275820310912540406523450725204749254723162700517881159492683785660930641884009873494087800788636592558728437370903672357570808049643775672511851877413314042799557653606813794929588439265275290909002661665108973692455066538956027497882989630630780355025481459606368259797323874620236771344104558956232698241346634659955998952183426266494147493018290519684558409648244408090210495023972747729848224593755269729291670470668016445621367821053269648685285775480800798202642937805691835947001970839476125295168698430846325271353285672730574232123693918688974455384755763251070974289889512688088503785155434818140399699698817537409744677296241086340890905674873138448323726805710105512284504404013300232746878003190267478719867167462148680941970005736785707893703741166278394635889096061224662882501815191796860067224426785824279641438275235981607613790627064723892917128649905923508062790913081415944524416305287137155475342312391177562365053131826073933351369914437630806712627846206633154473822829143245810002735061432885743278884612362750722443770447292684701614264943234340122807184212997663005814224195868171605753114590122797791082442353042277953478107501814769446611618766936888245037611775665035383662842804286374922054359716752690258072814531938830736320971623220721775560065403499768255444159902064433586615205669421154639587731439772538798989533610197409892968919234656634243985058635835661446775349560621135750409162279828051008467448606668585431551323611954063635833083633924254972858907098579256339901137450098119673981705778310395490470092047425715120598203291324850793887701210224421035041141432528947178368044203249217079589864549688195435593620231474884026707597213158737556158760479529283142396054862032155215544717193567620344739631740264434657007928027908733950119627468699964016487773394187321832128564748218611515495077190495560716242303216987736231930727658721684244651452800308926079453291019817161875554923083057178320506022784579789266447449198105421768169938264220843198802683614047935749084972184285758239007521578211175588240746553637801176797241296207387015773979151807841061206068341850501390480145428225502125676094090590634589004707907539152741046059448079376095860141696762320297408825090517036086300142853349291057373860279227070182993637510311651723505714857830225893264917604461027709238121430886028178134796366083708442389758264904960557703625619202694033487328027458577409976650166225178393462363357689924776486346679166594852569308849633853997179862924714989108947197154829423911372437102812201855644298083712703345215449383227324092835917586874956402351053196076551655888566812582076461845475330671472718175531672463499174941408906941453660862534020607111493408987479856632834510950868242264570237854610928972499070551036208449740016026138861734684084822625936805254493049843649468427653848527519876756390381764763389214206252061476556147942956625471773393714314308627539724545048464892596048495779900682964260416238213629812279492447234158409238210808644011758296612124129429580525985811812736352464482256660486080217155590451014258294190282056098854995223416853406883812082372536575133695652849755112543904889111220046029243178901490869002650632793322221615388504696052073448046143669102430239203322417624637684282960276843050942935464558157752097180425947397760027850812936744550031368869757324305119996765718642444332746561932969647073279230945804352576021724427291074717816727890192055807302228177043894614819356673315655700439782582673859929071115685483180944417859577725513038355602129921352735433984151399082151911479889755351507195580997795547071093879857500992164605674614363559050251536157757054468548877953471315190304305770470237229097052223522498328025344550640744168066567763402968467272671659786637759578764681220575206097763748131224974898284824305325734649924797574278752072109222263611904392722922924875861422566542665262736523596171408245986189388870801828772423392463215154019680286962312020425322996647552835775357351138272017215239469745166665521654943633552357671610106930807322726852297322092890792684296527125629771241746029585045001700879436660132895564478045509857422367484302402932280652197961196670365580115483487368806097728744670488573746848093891953076170788177593481269713133717249496362381821470143663820277379215974557883919179708403513215760933853856090302421581018844349952803475678664884687414701469124001152096146802892115282411096572934147405020520077246217614052526394935905282002504078809468510442274037573893773291383347277712688276099333685215912080496563996334433552320600506226651223435633806329165340988281187209864688471313585374206352549415042907034575558435366319398949597826651413428911276471934734173199217080520702075996967682252337589091689668976870171673226393317087892654646171187601709430301880051872399205458217041041747927323801684499975945553624033056612529163336861639457334432731799004640986744806986289182192002715582082691538996175044061036667087346948356644896815925338859914352553746594546570607117566321842716030979148631738771263420965854030043781955179114085613944666426779890469464533493574553957117583482530878042887036520153300526604106199899724716685188006203797976279844129838238635326697749583060131130536847785654315346778593639928347040969719059219402871194171570031810551963409425266904340121706276983733002031488435862082202825661507750608100435927959347183110614614416826086273319940049377153602960032459571536625967554844346077620347765168930824805961913724100976062971155815112656767195656551603091070429446609908319916410638134626780068882965208058825152424923574660089256725401789896025932957167523184913976973682292031631778480632419231754928786823933184668282971477664930986226318882186410765119370831071653331623642196537990347826866256323668552026673625715951246891689856799351751012359593753020505248330899617118100801591856978870034604921845573941993023814583522588331996368043772420919630762730519103527960506894447321621252946427868221141205279307133046058070775356938187318656080070559149295338195740112043490850313394383730114171116285143196024543553946523352503211037684626876444378296626376206687318939699507855899447903694141898393014128143952800829138306312506397226638796925386243606186610333783026426094754551553172875738364738626739417034932218512238259133089167911585890565757430044935272098637884250261196174264806030218003258676763872317753748220249202533452526250651605704267431645478549701501543298592647126540415935844944328761586980842569591533415013329580887416003382653803630186326016778100027680084498637778882229832576788324222064212414565455679680372172682612591390681789471204728719007022450177981928309699676756529946435956561966776081588332482375061804487642752525891617184959419020534837959044648018067346607497102422832745878183959948441501724426250885451056969087572190285619972916988808096500082662195883697025929576216867299869154174071420569776442539769475182790552373864679778769942615453937863867721969970850450720178953626237260360803610475067586929711847236056192826706331990511333580008362660484979536912740075351712069944773828082708023390841149267717966805512370405374774092054455494483951579978391522000307028112311134644638390698931347824547401176290072789626939912950515267225465425762162137585285969488541039365245134416713783593017999166467688292487369215723409315295831330857158307894470987986823312637189604316797071881131490266371745308638553160809507802155644023923900206168525882449893583200923780827413764159271484704688538430305291198482692701724625293483726431135745072605566394210898861718583170046589177220630694266594847258318454065729359158113317598422155622680083293694105871007624872016740761591627101888760347876056921757708789161588371052271301734472467277974976650508483969364219703568203993713860629535664615889123770159146182635856694353377385068516669595286753452890950511436206502400561267289488054555338510525239187878544948549405414999581890431658354018773949796133952867825862603489173740456416658329442821065065014936774371744192368258678866148371051677240107295892389191395459138571021213513048503667033321553196962054432571412614624075334494715160195031719440016966186340999609441229538762774011309632940739822222897757413460905892746500679788373948161010908538320814660924814475438562901046376389952187320604459486314497821720476874693084184047576370307779006869681809319339769192416178608524216860632350949585137169074325879121670383965742852403841742589510452442044082009310443932716034840039367009885627838842091783180109656303072448667897500245803121077726658198059607766307984712115842637659052147479078014123807907065745689971867066409142941540721182141171575399563637513954794027753187350004242631530298101593322284066988222332771166496327653387307440433920210293728388749985039934714420232284712031181855265557118334536836875552440978905939628575704681605570585373785102531487817645968344280535669304136616425208646909595343547816933303957163880815065961278146148194871520157894317747133690744672939260441281741071954385707610634272153406472965985947603528120748791830098053032866748311231197477536980564058394983335592363916422316892879293240826370399473309103671099768225512044060171012810131963822461858234777457204468471406939818417135525419911635983042837367780391368941918755190525096641534213015535396241557066431051699653046686839101784179910342086677978367972761053482480908041849083078457274359008374746724548331711492267763861999452861699466325011735306982391640872083574268184902816066325934244923039752262653937690169948483421289749779012047734230201636679190713015592441842452473970042016430706234819287783799235806046744294769795215141885027396266076082073123818599844726185424445155695107766787989327185512114554539670352320480983372036107623664287263353251551007960778175588402126424892665837768344183860105094618716689847041123432941279935995334591616982071479392925886910340880434663571085013671244826630588027755775132424715323463078289513224693138040082204845825642393862178985527288545793280671543451250934060230111120052455679477780176605390985180117933621261428900287816399618049080761544890545683829324920257089554977835051658103199383940587209762766090280311826384081566964832598119320185498984103660545490249141692674109716642511682061146350867544126004392667334579048004833804174350960822960913642473417761942247777718052148850844958762167892496940496824398988785152629400900641981494282652295402967334954652776862906788593198855119869518872795448743319947213602102711047663055185038560019218549995829082124456826816188321412837604435181503009792412079634973362114703925756038530341833430470716498112028816740187685185411436647840930459017209875028011630728885780586994792578669366999585387705989916688050476027398972419303546360475448033369196065399979819907479903697773944197293143432835104064059285832192674708927184669114308542874364833594942806864292045573978708556609353613603723899722793272521442514585844456217117302533924666456124931608426540606987580921424463459301923678368773577306552539768037238617916691802902565057227784866848176591225031494950293564512034305589299638951286390744714855483710962977429984913797575103948931218950526957177962281123836936638842960519756265680342579744701522109491122602828593866459746442942045159873471845551606275238262717057758927460215755638036746688192852598048126939288208978321111558006218392322327090359498193812460978802249367053376506883668090456966656293792059046090627431201806221278554916775974752720617625294175898792393918050288622094068579231359770868700539553515312673565153833169218016296584169289523318132552400057088168181410126036012726509390776778907254698578342370479504678337666094642961408562554489814234453801673602632586364423108927034712888101212413823440169876492448578376206477624772189548232598579372610762315153947770903494128831605855242301091884863007295994284725035306735708868664633298905177421007829681295592469161790697447240706644850813079170486545132590142771887659082415725234422199362302944182302555848124388933700586052997329244785251058903431854846608695030165166612584375471970217278336178106969215062408074346883788948023032898884750012858071394470194849031069549761839071069968391402061033393938750004433693276657413962704999469757097160068375713453187385434866873092185167156182544357946696997454072190210852578296384665564945047081284195878250934938352798168220148458375629042123833625255930449144148357636421435324887352523303774048320251972041446364930697242937148083601262520109597258550808341862623305394920368839970714442310586269888080940174374818646767824636747182844751178048976510103796097708596519320021389596221091810860479551726293914112649812650026810640173094419192187027821681959915037775111581386980536775515537581464710529004392532973348895515182166599410666387835885273319750004710420906652350342373240085860550086143885397642170573485922353660992244640959181581350450998618382455262132211698928324332398226736129443228060221111550088017163570890076918317344868222560475012912202916206289993945259399389129935822367572318579743138300698275527871166809163049605514807004309629272584626840614822218029960772000252200769740898791727670850750777474303167928135129094632562334744368950019330842570356072554856883670709572955083516795369182016595849998354748579949086014813799923674809325849089068573533273327016000744208105915717460394199393140822578999959857640913513202524194276800400397821755288179768413136577074457337337821765240547673492866021164007614338421890348554526825035868573596061337620822664419336937906214637628905805439033988625486164420843421142918939526413073719592376854580136269026955264480468428874082045590185077439079651843947347494802172092784775825890926273991757508279857853480724424599271274875016816424733560296849954426066172418018952502911800962114827623377350651137105574380187140487173462021936171412069199958744328331388284626891773201364932646340720186533622860758893132050847137825939885398404057367367368539603700189681086565165097484934034023415032423864903396001978238912136014042552380886888782557968406421949574129513132102007106171663712614816320732337824324815310534077936201011836118703147904486464505936550490558221489069702527994366361681421681886677882232235592198996124045126155763890120207210530727843634624183350965496806377027264893635510659874550738178551462410196715119629049420037865793109437046504172452619519344865232482285340665847170541352118107374935277821377100854678781724871495702710935769776840019943593187360710111389368455544582249869028231035018685030341668622894673218892988949049423087908887860149868227848849060732751265096676769629740746162478068040055326990910538427321879627910852486454335885824710579433832981188961980178706787729760070549873271881784092550918145101621806928322611595774132834901333271377268408883992904876877488783764986797095753807178742770984765739290123299337765533714755743513395463053576028336351260424153129330307174599743113918454279518559547786340423482755153436557884296006596166450960981201399688180780557753978151759751564681976084653408498095633483813740206541604287261667288207381497794350718842046895359992923825185160731274383231330191806230052223176754367272469903033002856355625006325790699573749262153496910716644588614784634852455862280777005817383883762147299129120895049219346011654395640194426850946750308079175694715647835643114926420860220871197771069054841587364413009268560009135424383559653787598375209005964936880827066440670756388240461081726425907077310996650247161630199535164714455790554831102111311504359509870509276067242480972547985828086183754823090091409856218754473507442587292585205943483510611603042282109880363553877881474274184207905589326636331295072108617354585231812083953054869152771606159347061779506058827447607254668372687342072851423631930011251344217674440036578801971604311582393449288572835538230496555729241885297460817535863724462598250168845490145980502902092632835179089611971771633007129836180638440846264221325321915721287352031929899425090614261084797773126965704036958239740397597680923648463458210889498392947452015804058249921495405997211738878589050933812765286018019475049017789171456259116979427684662990858576357586070917532617979535295425244529171906302684692639982172413446993687737564477941931014252230351004710237744239860315409790624813023663720522335800165522702168373156171649276964672858314594360963208390382374206849804879158291227635266174125015818241114550802889952761780212683315833533993515580049393762816454939052509791844736676392540000069213421488432968793716544284579125075163125862955709598404146768111362429592513595208953349131840839135786660892543237554722064720124404239070902432732463661400136933528979966040469391230050365969184261773375216813445770988398564990406599458337604106391029239007402241549030357922340612711969041783519465005377638719586555982031716912048247654888510891365904455293252708335957567015277564180392651983557398246169352959712803318607011348663158345669403591290993318229437881633769907962608838350156410869692430270154028994280102890346105190670530975164365624512210892336122895324920239858896778534365766871949108112039191613239722370955571786855000812085831621569088720282878397403908187554509959502124905166838590270343214478719956738033111479833354041447067796976154295374888343841720531339379247044056801747921108091266747692740886406793184620945570091286454440931783507984883356268881388820667655793049223824669089643121366503347964139587479337489571142958200888032463694107496873263389029711697162624672148751726078441501354658019582774730311624135322228613776987204138197117991995252629637623236490742614782942234803296726477885266622391401134038801698851708670283822145269177460726298825734717834122228751107363528011161726150892944199328554878783121368417926549400759332402230196266812324533699608062682317830198141524362155563395278072165516872157122635617219617462741314573472139645866459085983709252328130447395051635832234579271395265077793415558263182098414929576130210342178701834099334128247790135939307169738142585259369360957777649363849394201425785727272641719031489491308755675866565301884637962349969141888199732643007896073517842863665255192764009147536396980728299248551939229956825283986445914327767249330702700192241177479359944355879220037222844218986545757113304220406036650685183108756415431610677570001128292174277626942551365612478903016017088846184657561970118959555489996196491010433638521981781802506270626747733537083063741505476797011775511208666262139047501614967071807866446986183572662226411621996891032733618802896081804179532515574222286667949182069049921235942911705723943071880489877183548785994228310717987966273605410495120910497417789880926188289483298319050283998248298751344391130389808688428015092970549635400678561271565794128455327494789601494147442690668730416763743027141785459756230911121035485360576194685604197872842360985752090967757711353932422208732439002930249422962268518828195166695208010133418124163127229459365532493832130882393176238655106094902848450967497680815695204768396516759670827351509264483394875838168910963296280064200042753017289032940568403139547684605194636294752890000459992171485844843272789255136520270250682387538575243054975993360414770201394453486789663653646445688767245636308785466003606161650804688365556093169652230251546549642667953975625941294960885048373326427318484865348369874030479682569715068715915955425163068079976271148094489312802732603590576062442866760737370109952274968354655573092929785303849479520518691591436286802191435906126481381075108724183307350133706643804471835434612259465911134402930417515889364213120804301208054661168101060849066761914382467894461809213313751479679787351918720100281367392102401006479152704902393547823328210360721392235833195980715104477216635194793763815224203237271112096976486969527116166828852828975798571228047721674374676569134303826396224047163238460463343602129111142872888528020774506808553331993820919725911080044336943388346252993743230288079281936359914686550690788507312668606233675084275399806983147417493738148594131487788771688634097429199552649761715188257461900098476470337893364669226118555011551736828524272167958093707779677202771056479349614202633948294490616468344078993505894453497383635486871726273632877373099082192194298704864838668385992215544575780754889095205654631892466900611668595446320903874840570085672948207700817156557989020836366886983504298037909232005418184980590321072099602145181071025327695634209104761652762903322634690202255532310117152073938626085060445195767607975635491885267771827666836662858491801888119384831572204972949424470722031290218269422387186371899416954757712651037464600096660367945397580469743377873247654885494221757131000511059514903392624604074912230153545634145796474950868468957586296748638887910196562508654320522433885963529719017941406536992004968076942843754167462080108090077967644770653827555422743788975537993158119560360918314268618049507076348809178739594447251361322771196065771159173134901619828497908780751860114017754689671968553001152120743846192734463441999919518594817220506029811200746947716409417306223010569742759850256105451615638908942055000779031404378992709698879958693532804094431068128423162081492448405731369701468851025453012208922981466533515252408190439326919517800472828703337016535672307675187134145979820233743378176877185250147893328767113181800860100769081972692030664294366211081845877010875923389830588353084188041603995828472430501722056477861421063667947681779851626174848575274989664882434516003652967896787314966006783319133853243828896288396463299102628360464632478242295524467395609364218839555506690187674172518803286587251071303823528127062775676151927983741565209111438062122151104493660908789962506592386715874698773331131864912814762477716501086156825362403613151025622728741506901055049347332807463466081156885752770509302393124199568297282851094730161878342573395786181418606999352797686584634310000689149514411533014099851063942494822858317507493663307480649751396266709149708086479490670409451120351929672564134390685257271844999194617414395267178288773087166085185237778877963862377839374048310955090037030713918679631493267579509742554676251129188349462870299616620984692379648333028364200418577653551531743974008100464966531914195122493288168307756381144466355103189729575410291331426671714211896963506763303790750888636078906251678802829538194889953702083836279725599392535387392198110775121110927841852153852325340878768731362895400613662484700468556082414902455028522814919366318782874361374010785327689924839408581652650065133166859769493218431114557217392564075135672425259844958575724302215080191634451365264881741992246026184936693264202779897897093003971098518920731137486045188727103282077474474037997013214085364744926795199637513776598556212015962248068859696716612764394509910122692587650473978650029610380112676733914504821304280015074593432282943212552809169469704067664029717564771508327520777150451501917620069972753024442528717052682537083442406348710459418640816018669174077950792090497506967388801820986158739179492665356920377803375585881099089519459428310616201101012398415511379336708770148063867996951557871675949923501425420535367755000508137170462542047128457586530035169473382862801287543258445584290413261008093409938248972822024389858022412252437028796365175608565194653148874469740671019054054684145975530976561956051518537995209916535108802001320148644102747775476755710003215345491172310513902579645074299921068912687038126221144001826305594459930595155428778227058609213821126570276792235431021452063341308437650109489774432231378776643589796187443518218828559390056087589573254080373773103377229866899370589033597261282129815073315579977212598094621644677043696485178638130152136217885981843558296337568778997154118798850755604868456342524560822451066329581208063077258049823788259258332889171487507728827481689204724975670585483936597807958408701280440841312719216691389438545314044992122625436611335487028965005180301338953009441390299840362374650127067719876891741128540947274775534134694484484938613080995296857184784597571674314403283047814619353495492925821097613824660481411441698087196080709616760344049275289118050228972242084026259786861356162172528302562379471511187618361841470692953317167798896399451450342189683356456314437368821223262194434010352355810729622208225068493914916176617090797685452508445299966154734366002978067365566308477438351220359416572131802971109560509687207906542343849892379937243304832105242666730421354454221205223754892750442744157858919643852612896129036095843022482061052392383414744795090175254963225979923423419521581752823302508799601270166677009692605978303542493791998846260273156784741222732530153680979867418476254392238222018144229342096811117712407208067890158683838730779444162155974199361693905156543283682838003530821428792996649041526402312549882441917331968022121369054171915517707595269976834244858413145517726105401422612086612188966648959590208696735204234033122108798981880483838922790342926545040470495905298366245232130004939067826167899172644436589403958297682234225011668913699648867381805636453760161465453389474119187645825750279242102845457992908389816099774308742730172604670897721972630297044517062669161949604718883334241968043905866715309972526946038357594163085355440137701435286253672320497182854420604085396431766466974845643175933917586546995650047846919885382942647370522499137899740990872225177432207668277569479530938814036056146591940471007046284125244949816092123178309182070556080820488220370991263050740205686445372132378291990052861106462007960980116545458178733891912128536285770469003952424033848689593330393345995249277643262156996452571771922868153838898498098894958948785135073738593418119056602095317907734541127759553300769312953833406627542025046616227487787621928409105195457319676874284080914842886322757773157406466957744285730140761363414648350809828961299376713978404985050126138800748443440007173819474484874268049582275513610157213044732205517824105866744960872911277643289266190814286926805579892806765956025552937340541569830625120036676606278411264061329778458079527079185930114953152243337125951066390478570406778131052054193706940812121798211281077112161000675320833249200556076688696525561414566903917755179838245314089908708508156172561761716321826563763699433832311674034718787328831787351056550258163324273910786895851325407968096009150749238119072795737774292516776893037275700887862688092502953337144797083070217434356691157192478389451038772754000139286618326155622727675896066770035496956501293598576900194454016293758677622020890495237907413752121390681619544788726979286425376433916977391567682815937298106748223127166979404956906211955876625703532849799972115844432183492896378703882575389702708082580894360071035401207647837044862521417061081218206806262949206572373904265095065705217676726038071791135529129599642548664535162748440836974210514478402863061784804518852196367135354834275929127555165867794184531608530101557372814386467070581779527440188607245323077320150628704611233613630669175681330187725271339939709440962679854298218513969552979198266458072375968406741806655412799653525439096848782568503937255905152039969073362305860549167738713914322495921049357831677725090400801644033286570978824007454191035520111069153828028281838113289472538558713533797535252788681826321255986806580399934076890639487237970960613562610635723843489484951774576425106455496059190089192297100479898976013845945582427845809795540440251531208337285095741616388266300556427341613901242749259943644376870587969694443137380942048873620465959897177326259587271092905425765870360237784523052330897442211462943130245248731586296483233046938263699843484145074547040942518927002885278264135501487286001341839450355867271445206269914336211786180240903952175899052652856199147437052911740664148396088345974089716132574831011424468313086995223178731157305101181804490498577662028877010163341727711526816116088087091710701362755799538955015196128718376935746451986115515642098381468598827122123737720589911431095118242229694166517580610373553799608519535628383341574542160541845383314317231265527551997588257357617630795343354896760692926606943960992873624453785417057704107287213717032313947634096605454221513203382587498068523050494422118101815334887634105995949135069466742925084944404175469948274199706412773115754566625826463277099734612801361525830935993353221626112627692689220843892604952960778019799103483952584901039264396547688028026795171505110826849236597932965487917740962757737975420625602728917894962873075104412574177472084602307022591788144725937610195382427271866222344477619374460955377692520248709866691213353642581082425677541945471527975608087018456388272214088102397345341841017577765546064533140530379208700517939052690222431802599801048445012861997657863724987014838360509790735302734264881365067348121231788928471977564198458544106191412616924315468842464647648522618447780023395814886600988011032785738976664067885838077191565490357361135396562481539003308946213558369339650841172014803210610029349350413240451783372451628417466731992760203665844540031662360039634050901541638536977414878317312664624866620532613464359399418923681772399685626774247707084491944246018909650720183509827174061907283755249142754542227975886779324081575847272033596066569332524420068941801571425623338445271132054588653005273283742971269252359752009342601478989455528507319637335808510965069419668087462864817765473656828708222119263943782206736663879922272399730197300039214310419204555365659275011641273588329432871542370145972569297760832183704990702881395233463694742970129036295928098294240732825385782510983080673156041697541547856593938872393198273658736657397108834636566140483845089244582070728818224431544376205557471381977878526434686966440311811632618320309803333582345162179974280041712716261138261934004313290487112279371350738593361914276923635140554115388510533029379683017222559409772973931945084102353045492256564922035149439080039812339796191991355646772828423736347847707848125045276338247481829614392353327811778506862744129778451754904674711192259025918517682631903249949000912257326961531511608614533731509563424957515520855003663601331615958025275040647302484401853574402190273004659492154025439240985147959494450851788044097984414797029427484927143699680179485786530941990136782248189546032980824601393017479034957362809318025280051735721258374629914762071163496734086823768476626670606193957668563679003302627838269915364382458875777697364973289336225397235854410475767084855743050609158098408620209327328448717177755215098078549883502573216166300746812517805321891032298681224799796831174450987371360112158193976895834457078940932442017690208256149413165157741254899916193049244031810673967469396379818260719735765515571167319818666974864101842060291427160264857582348764734653609597176675705775844473322516592721956525406920500495747748567536993735243486159261443463252301800549949867067570451132735732670845909122810709921168854010278213631384303350896669009890493261567816468747781766384724434006512358089764981123981014638886993693884495118785139040862513697254806041087936456640823071204799922846266006105327603698009942338839006385058398822627347182189382375092018569769280184421187664095382592681303150232349899685376012920024472572235461193018788015911737195339278056887594486145825021023983933228465043783364445292717217234529199337163209053189443180430777716587033116185301614223099902760959083527377598702810781445265763424407803654151000465906630189223880350298694963863309324185745660871021410063042920516930102846252332404519705702754000449302051646280448985237790174750659333439758826102675321647206764735319801258570152333227929039997746146641190997396976370551276652451636311842340701522705226428040615971497635753311777741013207319798291450478944256122193711229274715235061359904345189865928011670759426230731834497102540593525664783268348286749138737796999197616255947297608452524913823956543240837429240606161170369166985787408726398257465169224235357612748384271641972607622074240812404158635688891591343353410461430465426504799655567159112433269577327252460192289864425074874857620849592975176705681697117831207596812280907258691153065332521614005799982842502370511594215945220913693754045066795587576789647519835053679696904926958527533015863809070043953622851121803156317825802439643099178294468072471958655872722174441284348256763011416315678678889781636640337237708275313099676619112372434079254010069144261454730928817531655273105319655062567207090030403579242671686512045063181593395914179726258000583760567657634274661943094943685585191869550696493945762638866048109687028842211597648268484076577887599811660272577152002152630534946434674939296860848223207700636376297144936097270286782072832362603065829556114085921766561269415659347057584551757025176327343454568640741324290911913733377917145517636826103081182070842676694164408604183688550365052469724394415332054010315199629089771644561311931159167811370473582504472271882940906301633165813666520665718097631272197277800168667816827690346924487140741110722757917273279175656547928061572884456858859156374772855091454918117938723181198061594884747961946041842264847851808367377747818322877537789507075791105713030508231443192755967415026585980367368832747577241109567847779790626878600393794512838322946823223257603973253556640880894354716826741317364355815508142466967307316780575899573154363675110224797504173399922537915520909697344575425124726651583092073785824803337818389790011168278617038229139283389365988776985732520875048627039834948799650463618240815072003916897478718905179120707708297743413724190003269359473026336232902706394131672249882939973266618662419823582156963431549141282976608007055860869677508172648007393994795808766872948784807384780674916412214187004064934844706235370658568000058862510662255733162507672253028526724823141757682495757857365966997153375825128771912764549472671546398080991263644698514626240801568533598625878516830246523884803275255671599747274561588982582508270275411833509821609597760409602613915881495219863485173718036263134598678626249397147149412322705265444618429302143276719210615188387285553243159116005297332544584129874799677547611416623471038887281153478155392157296958748647033982250161664305679225420465057390780413949720803525574266175174811423426536713169936496121364871655851729210902625783050353396504629972473378403718860528165049726908056039914391442132868804081452081843050754191371751998051030198102893408317193089484402428914909061677768747368277411818842188793967983507726046408435220951755746703412596044240446116763223351606980896182204958339005115723548365668030287268054578994425522882993731112958075417975376868570798984857535452325057814400282178609720282396907221134362608939487387525003231222478187739038147633024966147077777250041474500211023867360611734926328545671651581530475250473380116518411191991190048956034690382374698605621014592683053960629536034293024989040377873987977658304776340161489486208108556456916401570738261206577713160247332634752870339756651719322590594454642523771130588209812568516953768782837155043142152783531249185126920908252575138808796226581924245962964119725544773373493707239257022046146974866908565093474097492289130311349207294389530893762357859027033573046126475673782208897629257074570841548130766423082188269720949169777393669965475765033994353300651918960838285988921256909306421033069604626895356812762175041742966775536756519140688103463479693284094918522038332455476142329979446064473201953713807510752905248144605683647282346960068356373887410712517966142665958607712410146876580575834333370958733657673668414457218812173793035662443003097331169660648668971211476248401886024047005232030999305380088507859144145923584470570748161955737348737102265666682002832352312171708792694124684875679218641333780869906765770198090954188790013689613452280223122925227695509190527776889814053623038925973151864184576536572513781628214867544095012907863905810529262906144273886871777459252970459247922735449687187668061423212394054694970731825191425549850033181608094965622840661674550444166518768841864744235697459625237088906163998733281091259332303966026827589764589370083229003965986115746343991566641566054837504218490819194955840630423704585071974512996744114193682900425492526892588187667090429954565417363510703753145166280757602127063303598259039594089514593644003776144667219071325649179163089679031127260363126760522414270659658972168595629224208762891953400645956399479781992723720152804024454934830798528410563821830564613534204145131021735738114224026979458158366776119630673584935575572942625336674605941569092815803816013547629823082177408844703453892239116779926333663549119070752317688285046636664867006155829836945296615826941327285165372297882637096043751730028640512697173255311811061685201378798577647019443025707190591594725102163212387510356408343338957860988918172424471110324065117928847371289050783918852557967011866906093670759262521289693612220467371957477431897048765948602540356983249263012096137236281699195176134255606222465187796747016749570064115614085859275391833618214824927935690684676495127602943213549013723872615293023145115666599254485659439815123858362329033050327435826675485869436111733203578278758845149731849296779945348938619640141470833299641949546035191446667782640334848618670044218324507622402868478852672880041701952261915297705314447725013551437418619321151498421238009076595815464831325944145949334998536184201626610507744923100800309386219792511972373403637146727982891414577629220262903935536333085769659113300669686944523747743369764138278977966518040810623948078142594912148066657747044152738003137856774519164600335722250416770298620230807505423808697985942343156799190376617836947611666453880491920567005507339872151213499649129609444656738051924841423951137344298620246067522939265411655484068372648080593042684836720072271405887996543425456348808959817172566856489144597150762720392837759172693308309057290654134937869597733518466007059893712791455731078397057981481386113469711280725059384000812610187618254984061013339038260503511520173963998299759292701541404437429011580563593045593050441141036096004417505199019737752966081515847517993901637068625486225101643044560693748244938021237595520186008354514699307249028449655402661068530585802425871249144946614494393146204366527756530159622810607048240446827504788887964155253720810843570533313921037380520147724477087920091403314186940951715096146312095893733275786080894445982486523411924555815197468798274040823228792800165411924763964110396883807787822536118543912139607745709083638448515764841894296691877380859238027150096302770219229863607180367975871083714066458195430943790425222918767240365838766066015671098197109194560810694340063837727006592739153950601516176537114829287461432468083253752264818461920880921283324805707927908052590666090991531818068570415486480261478231715275640944246707003548413821275777344590562149241572404425984978664220526513452301609777321330664899692885639078220316561453911743286918520697872150649277227005653644434705023274061164500932754192356524131127716453368833691800878645067784919568343146084984325702798320047116488754583680962427789759176368024590728396308508429380844335864117263982527930388640629639649056774408436427333916075878275503239151125044140450419621814757324350356093620718489223355672879830715770244485082975256563487028667912877371207609623331301844971819147055720709957223682470451240951797076488073593739929015686236249828230094993060855017570475236219350029652814950681296617129312768617928745146992659820358652525873086668021753853101438140375624799281325511620729716640609266455242831661232496470573039926201593608978221714602883732317818865996246307872672714338985336802080898141234921805433431491298135909275966060090337662725602001010059328815633264373737278165111312657938375282737675083168474957485253907489896153388705489333323856268331463444549031267756415850012506844351446356496042266486309375646837745034874002878371613665849978414692207623917838485641713352388780730147870680005495081652039452720053255962872941303368356249558889993203221275191361558164033629357945899131712121448266170487867952004415361037178278105223354251795244295179219000313551280900609041168660311416124636223270889180756907495456830791555011077719848684760441554107803647975427164169228249413999225323822705432719813549731130436560183711505321324517447264270340305843725384900042582401102260353228901379848214958222396020303401272699523303058916050944950426334772181247639065610382032387676422712474686051672878611822881271223021411204957755306035641826808560668311852791667269877386026201116296963170661005162730182050551704052777594055889505688493264879261282055463291394650236623034999357840651673168235495647665975377123531604913644677961602159271912810667755647560521765383128346576054087474779137773706582495585545573516182825493891944412749375314798938280830635321223475870462694756947431787381168850551752356164323332151215545594040039634420176110147682895103967817615580289241822170913537599016686305910183582677397598875973059291776660682676205200167105314069040360619770671304306895381630170389919610648562213890718482427406331620884114442101199400578605541913818786274825480351949112080062656730882821485053557703598349356790297983411044970369031601744021228794790361754081360784924969138474764319820399150896173598634954651290567271824515619545771431927903346244490458074772750508667620942951392290743774799724059867696480454941472849604854033858239258999028665718558759447174682987206085215511760229591290957244861394240618629064836802255913700739847488338802864648566618609191858061818858253903081560246180171981564562802314141421850498620318467274717347823016863143170950709159251755196094471557150093994752826283592910909006123552617900785629440609161917650681780837228351598063621203875855315072869574197951043594743125554809376251508264029337945457037665588176682049698664017372098593410099485063748406837819579171912194778774521870038396359892205953010888797215411133437971479935207868370165069368881418614721865486591864306042461278097722171685986591687416603098564159497484045967310083741242411633004709851754370676116764629724599633825256371312057073795253484925002069308651834279777769091964867547723757506408720896347351451498999593933711503141340648249481257091492930890550639909492835241917779213890067074952299189079577695410206022595050659043839458201713174549586709177713696503882241136221820030627405817381795304075903694516325617429381411155022995235440888025885611782017464258490498117659242441196695256237641365564862386743987699549042594048024898846282110044709218743023725301384352921824691719797345376994254551961264552477802950133082634726007483861931146005993631515640148130206227648448741088704823223692076940606514523487496421516613025132890994807621678652897834271983824557090321342059320550488185163487762746987467727875659365940709961226203243040967705999800149738300852521723565336782842439317139312190855387758295106532276250608947243369777853588229395173583055910669012351779027587928956951060084099581664355114482375280700952694755918081585186412596696878650642255759748553437241360790189994947820399868884791097965290804791578195702083883426468395361830074189297856041964163345827974085167515935939003589523506683002831742152290509059466946562169691732225212834048740467322998650037561954001908232577167627693661263786021850017900810980627079575386628639087232466754572785570298076987918326370345058997242766195097998959892774791869269762229776708718223759686574753793460296823676397605001044308547014435209731439452664521444526588738767929524495326006660668698880060346978543888664369242940925442083684683098338765458540184845361876928505388995071598399951503999638336167761900436215489311091052523861458057956195828480611053308751064008004570317780431384768981229816243952141262228080215498895308312029639234063114466567284249923998299038961371876963498636947385250271540158843389501831507632301760583567957354036953146936811233692350303165577702758486599764428830880150017904489046241108739080940893195580256360262055250772866576695770190944392083816421362944585039828357835290110190173802335482555370146526281737279748368027156043011726664341779130156304141638278090550449680032455805047993156895046127037525828471877468339296621385989259017934021203285968098326283710747527269367501998143677342492219567166713842731621096202919484781195246727790823354864410697631965447651989526705425083327539446227478428213353225729592223505181235202287511475617609691511925826640823192072440561795072841317809857293398155598326247532146527989252659154873498948723263700302853222218464320815782607556221904699718944530706199067251370999216723279694600378090554810572302602512436762608195872156449019765161667497347934592894120129002578146096621510205758554834584057093104982295474366160470334501500457482192902557221291568201975682054569553921922011517855331216408731232762013769206046587342821367095851266405108446410339964626160383617501525061575130246888496946893485098021292192026605553942850402571161664804248001534919939386096191404201321256067894137083396073893308778023942390736093113518647122425979705293541646539922688574578310507397878838071778255758683025065386002840408103309540465185040827522794816938260139387304089364753891153355944368752341964356125768402396373633129828945428223216698583020586182061491216513283565236434749156777015106490450715028341886261643040793574312363778804208302942208956266494291880958914802325211763321934929161502385038771795539336294971880556875977020950766730105718107855152280977467642518091997481908580119476792474059987244439947258854529996029143792798231205226086745981091414241363831537159111997946934081855449167152827696844876784623214579336258541114282566836822719476891212957421727583366996630405810605232904260106824777312467005253799623669638994291511947032482814265538248115405679821695795187942870637429235188931165845237221874554652271548506693696514447733033819837499861930426629187169709383699663154757084392466615140139163959412380948091448487954550410554978302931788166312412489409787705927426023850910921416693681985712180262637611335769954338403925570022754088404206619917113055148423661756370748271773006184016304638315491540302379550555247295548475301015307197716289638408701941140771554979943057540501742190985718125997767778809405261050689947687087319484649882512481157769269272730520383116921553276441003792722359551571471718403154465258098710627817312179625102240517499346099796350630569769908231303878175236182552933772552274984661365240754629097534738011810646806936804961305385111949571158961712104844679388051291603052911146321899666908918012380714836104578152493965244329482981060192354844247612816503754398205595217645880018135082941117160128610696004242137437431081678335909304810681710791024842300495627213232725398346168426735217382282332947479839656949149619068285487349700830031849664306805612027576739095605747581802797307848647097847695631533549527822670718537235882149375477070756743253791492983983502050721570755357724061149481949298718350368533515235448468024970793946353009020231921526497886876453822646386393075353713701713187867151156512688304863763871650726903785959079127778023583774053197218294199251761885973104451308438059385417408820442044005759268011846457462109166932075943403597685576371592466555606201796068877171353603181252533388264673684770901474607016645238213670381130853183266490067952232643476110428415246032996078822792466782619243594894406705212795627633432008859837856574345611002212300254324862956111210878091469713980352417472383765297031054387548369030836538002287178095481290901679474450665635417939996458456740927777626515328750022912227095988823596769040762621087697184852197064587965005644593322996710605854568431189477082557403906582242983830093019359759857070149897354221439594856810565796522477842749480392103079897487119760760021751797404462278303982356063276830376731357076875435174294847807257001097107477775126539313858443984219594909651819645697537505504935646106119791215449689250526525302351350878652221147991065268073445375312912425044570163063548514711142301095839508698973599650201527215133284790154434653138817570287134585527711248193848495779658303702605605711836477337152634428627315974594581521850957666202282638289209352458351771292858062926410617866408380301374314197194699882965411512145266265579123874365833076215723652085265992184785141881493574490863678232321956649108119423418186694280190219377188929807427721477528755572433095972339470296045489356344859784343580917459473320868504708490455898282450703057295068336451706546739412309751352262317858666906034625784902368415513324042049315059819883855564686849236507283288103633425988239303606501626885697343250950067969030827246654505735288771194974447158487409268974638782666019670786593653783152981827237867262568451201562346785970375494070206835817329289188400417127342682993413781649902725709852261979476640290387511360695582626440901440445050978069644096439605483918669782926273688518763483439240262352899702949931708946917059606863931087632492264033114577223548228409881427799858991729730540537432645989767816240832017843009975117483980097320569856210671565341849937476128182744411198570427724721179114990092103748078010186824093360696616003044935608286658733145140599748419992298836362057710144590186805020559838301900244561558208541996452039135685995994591657432582859684952518104830893787051466365506306531303839175717348743591142849143399487336598173974032691170005235210924284773136723575271051566441928356663050615756254419562756679534628172214068654162765240059734169876490387179671573315087458899398975356650053835538694383920546269040903013008001355723297149536675858588210414620158704414505425921426415237807707843185366930665377694711582085505385687687050099243666238571265629532328715057903398138794676038775550074349658475084041963767932630193404613124250325507267392994727890717852879283164687645281787144890735318130343864158894182446803375499523724594068765895766822534224400347778583486192568090434313800111984067944852928867658040670807366413602562939337913458428360226006020569208389668147745592497746836621371708024381726811762567137725263487948122670588670557600877320807151894443831551288137098207205146033937114497286904831755540413680079036759834835905786135989404237918682715779131548805473308180500575410303890493244867452223763887458674040534233375950662578710473913656063034113430097309851674332140936348228782549048688342800076057100186596682764362464138175640120338949082775459688994966080291679916775833721790398301054976716858398414819292415987783008523780122606553814327098797732968668613703877082765778355125317465727385519499982779746034678831509556512116580818819521677654147686816667485813569877582660641610555678283612370978752363854160349907595609316947160271513793296632055166300232688862326970209688398465729177639836234959679837591876708210131566157182273784176020958318824512958283289369896596069227539955411174594799168255230586704889353756006487945805641256781411310192186469668859476787527698150287715737020256454642295112232831046698285595898329062693676249457072632510206415810672722591197022684851782996235459391839158138227308593064568167483055943696814927713352197964808165853718387834843630167746374296076244002941670611032582978353835577673030806660161617924279025054941138728941304955808244782634773110335256672406896538060872717694493509281788265541175426222297854862857672564978555675942737639886613961462008938721805060610022364908260626840746049885183193380327352883085579824056388023888319997240088181069028957799736009476999508496124521847566024818192832518280905714295362140565122562661631172280555036089866192195049105342604648816847469357086467442675362650468013768907816742243410202235879768560278895622366844489767363124595012841783758733528170231035319501541150141844510932596389450840688252323689762996498457546190163572438826763868225670547383249713087833130564085510638958382475295648583755326212075529998184614321023278479865109525141186666119550082295534712633619367078858959339938905780892364543315888271390023924084030823660874526721445502494276031114110613716027647225191235775125446528401725564789034888222111205000605679767868245750267745621416196518968025225062378082173375283219586816882135604511714838408585877789091378624728075940965966948337977089958122797127041292655213849404450742478791591895260424441127361781654713605583343303360791347203434513643762267690657633866738903970903208812882957765936575608246743793030942156090031593126635690116316459984074260198656820259931938119313968396865877400086566642277594118769468058134243786780602663195226242495741054251438167428860475055300074796939855331536296002131648427352305837793004287530975281364846780631663227894730295820901969724626514373909139584923339313403331407644369863876852658855665895228437347813293137283634828727697511970689171663915738072100764009370989558260926087456591600347062940739039246340213185729249449004817828417516620091313324398924904606392446668198203939300368561351969520390340970194955035186775000611836219662831270881357106889083370770390669404514354312133594212862594470496526464706283664158798524509230975171733700602195710352727281388726109329189658238898133739074395813878497695483917270027360043130704144407772370063212125008965517645899204881103729519594828119822292801469809281483791024822184017490226876231676293868549398989781232676089329700122188529296179905868101507813504799155538122667080510161178326021947783943609623410009457665019546446093837108953129674711171918181221544218646532336352905944971111446061380893442311113453739411937814482949190443775285809886700568546206616110866427673888684553722599560852192029049967487493582491695339314162475907513139752455475287382362005605662988951444991009218136299907080943607680976778224267911058736329304755356378236346727994342846556187371220356908318975621057596171121599191506908834542093105426066799529539947909992500413730384215151100596917370379367226057241835738563282382037534533423921530316370208858100605649794235705378908884162015748298792252358221929202650292281244564870081027589896170150647822208583504297580503947791377290685738199892179470059853048968702472974897024252311203501939458425508788760212316943097699824275842031686523418063596965143980783167664356192089609651559508178015245779880248052973722702136147178256792436994123184626765174626119709264191989757809511827460745880381836221890449674983406507383443696553044844449320674341999667493279604852333724381337240385871353390726093345401691201009727050853089101639445235114158565636680493834527985471788660467134581825173662709832859262275411066516937166236277953563078966495820793300657904921764380194440001775166509810614164154500152204086270041060259975436814988250844529352219307220265405943276442462989889588249907422143743243433044670837795079128532621370991412872982638232303526704074824234002791758118395899958602857135639957895516728745659531331280451552413349887869062524632526907472397057089458076704996073459637879056726916125913229227725878801223337003918484922899553593540947854384090414248078375393346295367856695592797230708834094920115746468427501163760347008468136356976687868569845185873189057484930641421630786620232207349960248239663931687096337400058361463063822572297374291811165738490147716531164337365421870680409260211884345567374941857147085499619470041847517908133130002852766500861994567652346537865118346900740495068032665852431782714032867410493944523913981125626327400331070401452855522535845981147088920538572396356759921687057230106831861819636018482908531225382413686452236467990661682719976425088533538053865860281433380969271240353632683861641974456422389179212712132096343367877926175005765357381822914126323962217219443660820740089874755855670698753614204808195820593096115093772118837546374774325817922630409270990900973859715314287967524038901024794323463629848923640994667073839130524753422429013719589847106520259429894428748409719728976753632656912828301083673987285700357250997711769205372931628608771860054030572670590398621709971457317721370499846633478871999805224861324328415164990799034968559349451725437299257586033121880914272022956671793600515703600410351061066604410154176975722148429719619923107978114532925266805924429685495571889620574284733992207484001294046992803333370688740386133049785796283921047568742985553205341392883432498242903820458961381971158857683509209329229969759194808953800607449478410019190781708532387377088201192395210512371744048719774191160442246319358638009642190252229133078090715288005003227615889231545633196134358909920235408811754182562798566508956065408677352558167952267896017108691133089834468993074116219606109503281545111261605515894048155216734651779489484494438584409360837006337408644767455359783027281604981824489276990186624943549063387473111075182577023022031699234626416032285669878250169425914446694317242262728887496860547943525770487253839223612125800183019749830405092831637464895646484286171587273456102706576632569736441905107946115291833128185023004458880951139877982642512289321108997712715381013615438667502816366852453441168729410115591642957753580518893321692320138770852215561013508351252004090183522735695387118286686070409021284146552404885707109727745752092050983406916224346335411441636582992105480714022056446736052888682365647863947016875809283066313122768130577304031087178101140459909533392630357695218047208837680188009485531543202769538101465578352959045955432011310461557754303989277776826540456920139629018818320739017540147090595579437712694268631725182797152829414610566738801686735325339167164980015699920959162902794946007286258712464407424481590364735076745395238258202170064755163913303645092758654311245516257403699456456545942869114564291006335464717651765566790893840028804824897433629713374148189578408929272757092511278548850390317094128836855341604979539747962654796086699294287313138377215681535793203510076112826564802418393469308837331786736200664673816042354068388526630035569736308138088621412181231422423665328572645797936538234012942980093021957848729921404337965026588729708445309645450950736584914845992921544081836623656676119868283887158182264404225221449315111255149487891662669880021782936578996970069581763492464606403811516941210131132553615060816396893181828162229256070609480124704734377666795986955424067113775514638630890640382054201639126823892232567320285235818827049971728742714993002613540495788563393262244709820339883849946144848898688768042226679200301833112497726282179840154675702482802244270553388966017571221875171606140694538612966599224011833183869732159450101183964720864200103093428138440372939395689973802520340665893267278444058440454013730866471567401512512154705256841427339360817810940007572079865893104021943321110904408220558020236251436495289061744386134521200751150810864368291039308119976592869827608331462405957398202353347605563628170587295570393881065665847977629896622223987408878553549662583286103260722386343316983260001560839803610020870459983800072773123558661000688105112456230379578518882056137150471465339341112516807388953327497313643844019875551371508426403327183104615952986521960140293685337524602989724826185836001686895764061607325606794234335500780079867028222538034691483913974693979701427742957385581262260353674514792682933537873625164924686297748346199535535579312834711646942333242929809749550749039774120270288813070550440281330319266346859454470280237683638958223643935080917815677559830128458924339102906066578368770069053942993975023272721129576315311377927707107859155048795036142626518333228851949154853851913919594152012142929086472649055747664399056072490865035534792325655040674350190959072728295468119154216545231627859969685457807171139430496451173265387911059238661953795634287521372928082613825101423807312229638526662882700451096614875929155158444982671795632464688163976149500407462762958814304902164324656133216700441816654125072336362842697861904398749384674042182532759822069884838672813861724579822804835729003728756817894368579076712571511622226890343614499790216635786239528593606053463949429111568111146916959105025109516667789577932044401545438486552776871179351730146897583955811529782272862277858643018142837630852091960494448236321342073150687491118277616257582084794801458535713444873441478299956655091348705756219825689582543671398367555565200029111124583550888675851383210350215273164422641646511821110419894855444157611192621527712620277403888396946256175362665255698933531209274842742487906679947630352714103555683868964724324433640380384090071608688644659290636296242269801285852120284009916936754677248811932830419990171860408805365660222323786216484548538109457876144675891902125709478761451652639168305228219683926941153304365828293069340458347251361437967938698187634359615154845876885686958329759561308541556179594100354076149851939504190031908553926712213315433314238686601825378369428035835584943693740571402311488207537977581247642283572679979626771543750835617464545692888979113895302025007685328800758057602325938435259138686814929229439081345846146607057725599564475830711279228366382379332231412343179669055864267817894498456818106777779254273146031909084098697632571839129243240186297690739357289638332063776678746838889272316560678139473608913878990370080387014857542143148962427290747118218791841176475787883850365696143011507685102286190433490653807206555544539892522593886123773923813130058610799763204392304517907226311715723340319632772005144253302455204043149829997236094523144739944992933068875156314636499520571356389270227638077865541149294921766373403691884131495502812387670392180016462137118336761999154348914807573083448990841619771946583354345993569825176388168268147803301596379865236951974888339857985336750606778085930869551525796623245008115833448521302191107167877979119461195495368597907105583065848787994340770231420567866259529463067922618970884451351326161843298874421719095588461205191689902100681644198078345079551177064348164281945965027778736417437793454241525918429011955607303251038857107051300044712315747956456429319328312057064590720289265439107328954715132692753887210916237315405234129138166480033254081282599864489145619485467558508274671370206508799307981748631437386265413987446341110044520753179558740716462849131152653967567805980392666433020610410279943665812000712459199503548735423354475655392063368108441689747368528676006833197674306753933313146313760577610068770383130819333139884930303069089570831225551847940009466217714646538055645995667785938080277151983878506365941013403294709578921297497109964133843598736805354330314303123313912686974798325896291102926141010646909501588962887632948396052206370856579867234606919496091244298411962380904140430017235196467489752903535978694237898002436714032317338002633133451470807400087265774941743460441629174391459981974655650253932418134927597708856484194899551960501285863928088723025551252858682936507995530972580116930273520012483459564137476643798772527571726169387603111904565804568217061776649470880368491546026108751647880399562167340211049856741130105096142231403835291851231464103716459719540250977142129799694715161107545595764542671964777962573772497608734653732727633831857173875008895105756064531921520611897415130946876957223210605314578688265506301004298959809335739845348058190127126456594169756822541660855333903814809264317375635789252340969783231750190401532486304944302296611125376816592500479826341575164477311924842000291648249283864574557056043951712242445355350326423641742200687642057865826272920802094052677070602381742964039236313833525397308491345808511005261743788802205308884540758114319419363561432364684037659514966749721879917504804762450764722249165589630339502045001061484679019340187547959182987307642750266520027034111318863705761099465272793438189738833193323955215058700011893805937080829698416716161835995257516529336677638524730236975183104543834848931088286822674180010620880295013881894509970900566223374414546549132820731983852646747911911269472657269710377763179643360449868809073396262571963327806309894281283691902780901489840006149474812230156926887168219065939032780276842142988157249859477501254419736210649515783894186934188875472526472437866506599768302009939702243997294235290560189941092365209199926823382638009922431769976999083947460234198059742546823166352203207280451735457698112683583895379359540564584792972834340014666767788318544693875398359395404055979669315902150333951679384278138889917278051649218157632692172250236369500216029773386213079087424800491455613016910675206504170986258537087483991399411049146823887983685679391271694040645999459016693196060154982644763510592905846728714054392042022975976048538002798522647934216401503511765537487972070635353495479163999109880184890452283488143621495571225784125241870874563978536890705147040435691022196352879897597190632484527485825742380364016807295999722304069855938511368456152000814213616376946733577421106573055358231670703911919167710209374863899057182049799621522101179058308289740399896765522401133449972986622786376291350183403048403666288239979655418009152491124658531756673217992632132312091749263517722928498522134332879199974258635060361427503352377637745244820518873365189757063711402323677645195841080732772802827028203077023304106200869091878827735949952440308879875867192464245086875627816656633689519750605303121778910757803206139569722835489048406332282355363484969293038077471815694053992566779644333505016131342675074886447531073969399951947050200197023749826245242988043945009404225895574045136402753618553290011686425743205259269436528435803999301982472031747948142756681784184319004679443117370906267694435834200107561155346787783346623108190397022453587385545404827746087896928282809092870136422902456268272136222439070876109344453390637344254415448188439879686760858107139504411061534322798457234698669846543599852738111796113970636139792290199659132950281190977715169731295742734426418241282566292039388309533346954063342329199197882186369406178864809661897399207932237048254204478706805390993890195109608448734021810334781838386911470092535979599750677007551633831792596365994881759137262358044850657752477143749020380127289105850498606739702737207455556943766601236460945012992828598162958548574396745861347161843181760344683463425354416286974073040285675143175020427572727938170901559162885631023047724633473239676414921376860317945163865569448501798317201777906269278478905421386717910394566289186461429529452238727005538889520123256911807397629908564095855761530727757021445263594278611198875121026759104082703861291121950769733621340642019349539535050821888053269861492569174976159438897645983218275201863992471554436749140302887849715579435986771028436754230016571557930442707281470108154353414344018326802043778992452361597432354306137942807239363776559967296035018850814420822812569337120212591301526879541291722563444045630005960401112341651809840800811601052675386080064239979938686260272609431333508346400635158840513068935809150799468081827690782569140523330731227386921388269760830959260771309426774272714132581923911801109667300261284748997079624073708577090471980638866821065719025866123119220911788462746799786507667767797766454490860368437496746375281861609801386292697686857660649441990698503022578966249665607226302396808807775473361293526860172001888990881357743370239311960289825985459518280601849741862336790170298448700354277392253210207556877895304054833164785799231258790623569955012742222851578764780932746045859368921607018872884272229675611925977866098847682313089821484797901509075639290331671362262852088170173377652262759542237288693583372198922415793298614009808372823576763409758832947275243927178172725594328158510301262819359147817715629857169419168125854152109437603346525142685572445555892048366572956591122676634029104668217807325561810381041042656909102986484978113100699483783090057910177009920565920138243343305194600363085910395547205922418069540441158734553512674969486254383236791060321720962567931624436728957368135425982122666674257130066741816849123695109344074157421514517815979448703663146719184004762906312718875899665616494437929011430595536597587570210990487971217962279398971044754186916197640090283048765018761849554158544046762335412159612406031549182684208516391823350532705041615734147249677755334628895976971016070003913760922045978504333188217542782680277963918236617117233619122994952266547154003401521716082439492247777671538699978977269352055900366140323995851379074417252350147473621776841047332521882901718335277182747419050488373510155979636462708035903637695374587254469333670600689036701220506936394620639067736474532902247942776156928353731111100392901977834364518772265040023702893962444841234822619505995472181098158484830616899978988733288872808824796309393680713638359503059608981626850339411971380318452728279792884798466102366375941101048166523791420355882342924295058800978180017857314135566270658932942769456940865420796525264491302922974642846583712410569345367404021615865712865247276602138717327244597225994636652811836050782238901640825225782897187536086491171118432639092477979798899442878381931593510679829383253915675367839829003050587356500077471271980007284553264425629014974511498707774947133476054202920303997408365188871024738061723521419145884649557380071146561528259891380807063791065024908885248785101848485269858734471896367959566401459737098038416683678279904526480869262245282425256974026255104305082448992601366464954379571235092821137495002974995494557106439774790455718400043818893320652141059064170243050167301695486851603936059857291683632021961245874317765719629125344110563534360921446247172248845674879603257791333356251497719598184570592314775819637684499316500412964213682986328398293344848191186794840409688793326854544483481075093801638259320008217504086890542141378308540503368475155898367575956296656225533670934666866840617275604098361313245414544404024078786979723637556566965267835865761644347955823009927830559635087721714639225952373124068261986581867418772204511685853316294888233868127392104336913488124693432832411821748381043816316256430447147750856328698041645338474039821016033621027302648889128804514119184006910476590641377243026779720342169680337340049779243005461822614150734069430792593970445739503445074394880790987554676158401223912025303861643411141228980510935166423267618378952355796512799630280343688263393234124805080867995779399025279755620083541605869718581061703267891902216073644759175855219058375918391363176782547817921821039187904105312536948703483541458717232741427799539021549226914694801869550454828919573299745681657611655650891565242019581632429329823608190061845852994655229188378385942274131081116281427139249995823558393172937252688041006925731035871360890068042225251713382803814413801193036477753406095366841557814113017368707009861248706384183780959911122651146331863462126717576195991151167358614667055828858073989465782011039008701468858942989459946704084890786823053306713700561800286128837955009699455353449224979008345234573297417961407872107214602440198192880834243668920153812658099791182999465226609183826558928638785577928510055734934332811792743873803445463971020321746636755131863615741154758529504657523112168978384037706168229812545201991591089480203831772651556337637256016956871823233946640618046336334270194973839976271362408973822764467498767613424077144353425839148298616347685040518374689403671747285753354088485119530244916894546307561660069673595559580720053010206376744381836420056463939212135076717737656658559118899645105306710140048529063201640470815110282157126675563317101952272637336659595476833138551680207470924895281035586845171280199783895807368226157488706786544786225703888646403145833925863139769758753148689098673851185611037363618530666443773158343169089616461141919434954676693940870175772126878412214768310540403233296760335157459398384663772076744544657392802360648487511478999690918493502867979962502571525487363327351027831611068789464900442021706514919048613585542043464342028688642164394064142595940870028345363833786100527529874647738715505665573737443819898312685144994242706341498630839663630531140965016844091552882371356589669364206395198138040376838991634588126062681951387311346874362241459942552931505697262614189794436005992733345612926077125965707652154070850268729039532713963920114190184726363060948395049923652837132930164499454475597963761031283153960433116307532599937577784858229221873760487405242166616953881737302805603828130218268271236497644808555518291928933080290651666289369614452587057181724899182200363077292036351204292956266526365093692597919534754855299587595102653519550629343808488033413444009899215002598809571583832577630953452347232033755378971384972341393316699054691749847492219694790520286945142292658533885779851174120382313892037518108690439321064931983855035667739713211163683562796163160154534877623446841160714808030327182766221986552750566245847213284772314461934404114665564652969864099672706464608406131960409282332904999650817537455847735355249122392245685370323069459017059461153343117848591185412416159123657145432966052531024123955105040470979874070011212398836810114209661743592550083545792546715367496265186297909723731760853477146493540219615166991553618548430881993283743078014853600691584104771227992410329764714328157567581676820672904524555106765367972076326243613230967100468999157023125445244544621292371994118743243279442904714967736229687793400443114088307147083120389594455221391161484810919127646296236912609295286034073936686876176478373027331210600215563550958420442271376938613364869985594716577222841296890986023781039870693067454562091568549570934618429642120110980617065897883929555789458029205594539246396534410696495916027932286497999703704736685134222788145379957232656710854846603888667502848499107064546317932480973780202201554352680010061553903457895995974035465422819268756227471331454198301352311414685575876696645452631476240871976352721153790439428921716175356226215967847201095643124279531244040682616611853751980908535790067639378733509618890599295864697451407793933290278044665123608431016476837341055303029810913199301386987066153625183456344229797109380940616422135986613643749497907958711121556502040572879036921638912743657636352678752775142938424811631195130230188010544712449606686947870803771558261869629358609143902977836460050150989256080154546362233384542652191778053057720341288479436857382680659629194154921649393245206973733610309334518664655030633100758750559781828181518212690212996254575558827623419855662512176945309065687602264759344033343994225078763933411191554882456503485616013690243613407748203222539158166641103151922537208616002867078719172936676001328547160699297791337233520055851008919789298369668878292701236704159574352645626446891256452569769864336736260577706078231486256928365447759193579233443145721111496010922699752742692256606650166657728873835178395729857384238155438716387758391036916980327302884581853570789408209195674959195992773513770511082867036973020076736016324220559099807692944725046701795529369978243315107342986935734233049045400891064400051061494192736042212443173848041180857912617825749484254398748239232560525438511775659353875291309844571568998073103096656228187044278368102876605484755286152028165528159771833146905679037633580547326749616998925330722100086053430190383588062779069026684525380131405057326899513278112175803937083191945267669244880554758200445113905377042344324538916298848903386332669839983507864765726093214961721416561992095111900971673191408976150479524927970085691179777209311248501881687894045571804133988663698290542020826361567575564831403364634838478416408253574331328305934617659786412549277986729428662528469247119255856719752754666524936913690973657072103819095039399167167985422488172230857694344708791666938678673098652552727680971487399917709933505005590793465090801096009020720907113380647234330039619257653996595524650917064092829081389052457277055307759309607459922692094301947325535441633510843620863726586071876770343377904174378010255489228243653604475605021898716161379711618404857530730791527606194212419757477565447513197285217110225865093990065276971258130921148071420251090745659425146286041006291443530193513210037757627755594504981213718893944156659181713153778996733370728442481100956554710464227749348748150354681617998251065805372312165755077608389689653867094798918706421501415965537670886350664369206655986854462563322208586498530728025680135777461694353275141414682605214620832397533154245520500116459457535912021258403443534419033108397429531220502716157078771695410279202127031857459306533896022307131871686124494890515361063234452844537758794124925648851358885483870960697168876239950754626300955618770421876778199841816905342046493079070319140060556369518425768349031390376500458941484178691496610255887894357148723269065573151576146594724176108010123974570451376073919416814688756627247141789695890910050993738999758561529596726393716027980981211060157602140262316403622007203249791882155003971972276185003575396571292908142639640020197543640516351299273284293518795469500188263749711479123639620069604835925984924797802063579224326232427106836340686023480719499669275299971304915049808913921962194560062764600536124119132799502820802429890983281959100556974491218304313406902199131945736957205132381749266787683791318810681073968210811139039422474674025863659473684043547603755790626059567290418085015299386073030800549319108465485628979557792808154865372156357814044497629821125778699264918169326627776282499079569327696066949862517401490151614155795484244702583496920657480470076339580531885698738947182197645547821462979923837683224000164121071085351860154460017758453359275117594126073597261920962413991403545170907554958742575438659692647255289537615134333003744502030837217522378531207148714497303146181240949943122705255955609818560917422941596942578081730465101840278909451247087792523250665957539874657240186461339804204321099017483643007748260177638535165740896647803493464006874807908965404928184290902651552900784531143548102765892187563576981298467640823102939008992951730353467532257152604189795737540340177499749941148334846788443486277770207134211846755597691026530708271421445183438538593274708025215892021573837146400427949298416034305006203448681718422351887022414742182608309918394689617425719807373492403182034809055797338747684159259305195585390919882828218701235876467333101301346854350726950266399972305739048722252882630833127761961309050446446769631357865779537862486759866557558124745629621099706942455403536331167170918201711497894807900735082350014557250827911773766952344824528104239889148159132981446048589068214064627071037265245095995127610497357808103041135608442952704145459127988040192706715816805601223880306035242029255028670959417675151073887491904760560266844688146335916262039178449441633415612627133945742583354984119992482313832029208458374461351014103609269819222663888636049884017336395735526647554041965262136243175907170877899393107716931836695142147136695805209100230824452871948465283844351108355771863226842932746699732534177884010838281876939232556144189284535767572536293164559848667844098301394748240529774538301750165954493929723434342964619967344145281888707048130525774592583948778925426688309136867422983077507548218136289273333988546846717797094488557095931618982791436809327520564461624966388726878563021571523870290799321187974780182561168164963908566713203541211541655469936584959484587065374518043233584267669574715236988823971003744845967405390019274748069532330019024436320078527522346803502178035792959521601708145801593175784685305340088635932028293235173038753183611543942391569786496702395906688246576555448560430238033746857007335148352626630489724241898143047577496494142216682344283310998124263314198667099030964215384968162130370643364078171449184353101078123828666282963361442749242526516835749221004633332494428220621985938174518873676006836709995429461827374685123194190701152287109417166746642152365828185883238581578678850645311322308215243049224541047288759759653432162658932820746504911090787861570491195724345683979656103689838543651926011529194348296613423111352683183837094259318637329937239780980874442912075249936302738600265886623488708573269904675906091953666977739540777179763617473083444579457265176690707502122312791108681032234506293033559606232707766893510440891085018281375912823170416984776858528713608516989624758598455412202818645685671649645382432817065363529183953587238609236364555931550748644572473986708573014455727546729276195220710563336777034073566553753405903209796703409212595619757293299727097346001470582820474142079267820028602136590774373793529621829040547393211964649499808103664574426648016314496554695627085627001553160480664354260394751235953666455992513460959915423962574931210194536100581457338356441710716396681164299259576021724836478034222176205205544482359440059794281095540693005459820233622696739867847982675758619566109997605318634972320082714206605388621529034221787403196346485571229194468991082375494845176857890594468069154417528395378103276076264393941518189159559423269467814331944791663651904083067452322723049477654127533496547071106287701402734316250357385827927518662877453843196486065095406491537361436148124252992625680382048104177968802455426154502077694040324062888360361879577536786856090873173092864621212086007386333186663099862239109568208438003825960738790074265646328820223632133724244355490270285233895549896009251432717029245912872255821399829718006345110403000644621433994955072988063254460857083870422809284437434725654330179861240001137779100557283287414072361000543434623968119978728691531757657953732380381858908544671235086618518861300137145937855229474062984381735513018981259110817008795872290373254725693294817175255165496821714264694411836295464742114447566420033967257024487296948113090769555418852843574454433050041690354486719776763236913422555982970595228026614433705204079825698095271695911146401073385755877649622327529445867282102063734573884989250515105697999402504050939275824006076141127639463273921975974350564771923333583000802989673965879948826817595468492303587470183484068816179975459555292068198900892606520040329370244898421863535076394951720054469105968379007055151733378098803251850805510399449927740038831011147521451731316605459268997851518754962334485633964970823218445921174862442712571606908829997435228623644576192235465038733714758770767066482357316799872967529167967993090646337493911996956993915546099147942781773730746191016547288084578623515810011156580062081473306464118011819034160760655152544301436014091118878214905224971600274857698555205642130326628746859308136625876356116741053382812554697733498347820224302111796199163102152620082852690738775014183281618121298669868607200126348935981120166768518400356495486554902238768629311805732942491522725787757165352871630339797502068867775140587485564435689390066714501775750004736079601065589222076146326636252405194670428032313631373655917985293099554839558149209651947007492738082596675102677708106924310326123509997897990504653854916954164357621847202167847241234244572191147536385243204152631604031352428778241793958515526393025676197316305471376134535940723306564757043459057348867113305658616470240834503693055895598583615748844899470971812088217187558388542647416819971085723436707129355463028185501211750258486448735812301174686173441636101212300487383784931011487454663060527696026477784924109230237716162299103204332330852886604526900256442024691025186761943147690527174741343788079441349863160302358064494669176310878893330071730576598037395393707567091584159008946231240650705144130533939167867917996363279382329816280329189409352669855486935560440301095744123296684556857211460416255286619389876144548239514649338381634479497372220113050601832570554248464052385366982508089954582630108988129468640153736589468904427732326696639513881873960784990132349116089901942267230146213968256280747812245972215372818775678021302424396529514621567428690616101306340573757795581605743809393994244447028339977932623902803182867653612704707001294155672013361549201726651646236826200132766245237371898969051512149993632349055985411343416667959783187483764578640118113763298377587523179037608176399117069522882044881372240759313338376189443887516494617301299528579194585221119913824768720290211950144914598262625865455352142640488731143109203458158303690885917370419869520174604563582347902721095100152594539149801561716674884763791804512361741286205701596671441880777096872756861353976008670297801757385415193363017335927186466039871151875688820703919246973542365612480868895284299212497880709876368330832114293049928902456894590150682709821289676549978351083608953576487019961305712431841579681215687543496018036748818309720863767038709360714591086532357924614096676236527107466172534174076598170034940410703229502321425851903366383302694228778566944608025835832404053239070955855776875401666985989190433960242894142119416852558900856428330774954191472727574254720078575274640855428227475702471458569433331022868887832567686900407350250929021420342989123717174652238070006209747010369248827810977892353525842155437071451677833350766238114718980693406064880489472045936752121223843249080496481432637192488263835874055611944128762429284403314288904508703150644450350749721467173767667531481843726555991926170917100413409298071599123170110748400531789025139454937642245157792611668214913352116636242629129891288727112664365043712860252452982697861499823769830147386165370557149801872595457556760214962444251983053588071443966557923194580163331432417639398843368591150261062240536641139132271546784684024058455770611214455190167224630100616928739040666769748904658532131266094287451768106531877901817644244448918073535140531252621731393157921349792850999329088710836347174929413124394373382639012250983537052658720558696766021040516629061859559008172567877888432937828200992451605151951443175539771701837428861756347465721275312506813271717762365327460454658391420289090408757389557683532048494007868770302431906823565058767287187866594386005003277790462178550383896841603780184760813238153601143231701167662728882914536365490500836930356418320891319262325167041956693948260671470145222439514955337481175054872816772108892020056853127084730737923980027735059568352216490096941790107266838460501914887011281490406400918818257790618479638314590374971974696073551011066753324554111767056297500041268725531958930209004925482196500159768902364763852133796602639361158809229951723812333217946996727145883567993196040843310700812591534768284821750090042229158160219302465380432279971301189879666157404608282395977440234591933580813647765510916510339849358221785777904296591369893026117772979140219915591530879678974134226721169012243834143334879527335150079155767191892103075120808713842675575963960759058473831087726699496716270172756335057721515071645507704153101627724921030477403983372698249734701218619667528613064561092206906585400265468233110087534927514043120305880613592108023991999479662973519091508499004887906532738988673539805306929938963641126652370837451114409231652434167486379445202404284715141923519963104868120676457141210738839715751313936277392533210162563383827521692167642541275350413669590795705315731526573231339170959012957424472338302772927300909297629018708535093968194869638458751186846016599235662495088339819038047508344348372382111950396721012918049300649683661693310190151071945041056787386938843009108210021884163613085057513618434964472671354493484830552977121614454930388849133363533760739632073850371877355997363913002709689532482056973110209091907485010323194607006655054057182180694882525873809757202225682002237753014142766377823317344118128201423371592467245965298488445930274830530969705904248050502645783125886241219814886450581814743396688820265141535780546024827322661749475580447749262905305370682063046953712604357124303102978672612362382445707150139754447964237266382669394753478821361754226939652971592048165964822493177585807760920485826549637561579662430267756077176896458549333458982031861986001396607063965297300457929135123166209424355851854095131893736125055595678525004903060164136970361567737533874393459469711536232495631856472930195448703042553584809861023784926592669147150658140929359595978107714866907884471346579528101647746262877247422879608877344182715369547758565663227804673043446157283243001081000063126054802700492820095412633959474488295932137235285069526343532165902356129976520019189658451430511303617143705905067393346186561884679341187973512563344429374666297309804179742278366314998145626674790332753253900079869227542010368426920171346052015582823387474533845749333118201337808558679466659441945035448612036232955292426512072856796412498401712466635110316504545324715803968631113394289585537562528656553363089008386010787388938846396989673772797588929183076141945650660925316838197867667748866705520559918911040370578266152920270629853543738545371189576029256983584157042009384217377974074080642057047079373765397377709257732345250292628697254547718820626361960530585774774716468834672849203488270367604545308908879520548726302473719847988679595959614702052094998738592714672100179640167477454131352431742439636355179880447513597796316359976818248469854855057914342572868154283292731663235841833709069843414625498694534304907509871525789262718698983318153415901799592185105879886855328281387191541554612315094907779694055362459408020632687363755109874906772980436158241754130264105912875547492772451182945728626984566034374278063682078959132100461715582623021597808952218597022354452745307574688488944914648168011311497596285551801026226587868358886636752867313127079541974330678218229120074784087699647723451536517921352245165057957882669591779578509202320522756233950057576140657733793867293892780007897069450918979300938232823218575279427238735144911799868227575561181035782040570023505405805043005873697305433926420139114055079108218904133758271257840664820003776119463623749700304724015455971772740826802421892226249998274816767107691081030096935521968863853601879504684029728675285536625613408621130674760213345163710101476854843552861277038684135447616750373621764919959871461143361121873885636904918857098982282858254849883568005619825273769538832921864480313693215539978814242156701071609139541006900322709066992433869940413402676966391677159781949231665513796356793914494485745248446977384671121170256246621854727357517402596816827183221450179853648986346892605460984609064331972634501934081889175916035767741151024350670043956684048521464802702694663337478066735797548388028104952050457808972865557856591874390580110590205481370418764885091859844629538470155161682833706615912119748727897203174124946258573772138802133924140898456432693038854907977940059603014989758668228358954221911733151756710181335169495884771106042071535079771655360485044402176715912020964672421590018422451047229330721300637027574713477434130065466994950894756586235590822364955188213201248244202445829548341117951254230432279866210390105288814114046823743180778310334542334826068675265345874332967081972506426436516966501285865277008445878265073670386841877095061862020923091782490482298101857015970056862609226357765316255273696999551998205740754540409433631196970440182372808834862563442306062543068362386499433305391720419634962248389005705205563857391257430578551874893931193421571387238269723210009351471652825725765637349574036517388723245484615979561964248969598074625737863079285953439458357739271378530504619379374529744793446176641966187034967707669820048584996286228103220435398733296648988327900874722307350341314482793356416363509215544177514577716395410303274819920717658290805616738819184820061559199146552178865055547433543346389480195520992587306275502368771952528779906156156340855068307624945269932879947192063099194858280408112764358127707366211106841716066086465606140134863115225681846192634947636765019172647358566895329916826934538250933433660009509932565998401627056381148826933167389132263357322552558748656562126902348907173361911324559460335981241416072010434191269217018227255435367734561207316991904904828447425512819965096134522664738515476513431110998805687027546397092217539429122456508103316632008444372293235751011893077219088812855600612553859027352647219870512165540534810289328319507253178071185934180647934117116272535999404266643214668456949657440914127286396895089379942366333322519223110450643973652634043855304961193150902445899472689978897935700452441859730761441372702649597459099859088507173119634996954508908932467043017438370029975713320289024505849189329332505999758887360462338805155146161547857386775551505008635210105009237259913261483403578380765137418521282659296601499776080534611692557368077422496393641273085181392478755467461003155091127949837756922560959533964722337444131481237144342766673671875602948454920853925918245401544791743411682825248462924138252793165081912659131299305018428091748837744694460086821311728119661582976608045120653692330888352256974379636553064791724493333381020218192260771830537677695746475521494044793336986789470259557994587191165139720538308423292551054250853463492169915527065463014049663086406238427683491694576648249136380021673544200458109974363523808465669220832610784514655463370596148770480734888976020473120805897342913915042661187877813109529236691443684860768361726544965843879815456252627641803821933551930721620355888375285932973484340668541660299189698677953832433257394932538457712752996850434995173770821559376246450320819720785810621238689604491969441923855927662557582955417456833045937758967582987466330674889064513521647483263776195751185446742741486042922733397875229509157962904257510957723407005083108174809284584395116264182129088918773859954163606097032277287344920761792015337600291055585880858929864539479617565608046680398115357475342318382104122754727313579030181240618223951707629424632839911958520275280674048779065998985369254352508637231760793129564823620810886264368621794721332503872833924722729369674282781024742314323280748603768901582614125425705575658366455194440621371902498761722998762347117319681696816166294385947795372033686346837802719633012781449827900657327740581732270653553192960208366059098096771914927289661657156790802555343884293514932680652499037535846799688896133324984178813879131146618957712838366087173550734539893396157434533807598549360085026420754988980817558454095038927909866352457585685332207444538760304623301796599028087910803700065448285995068055473610325771709651825001159793068159865336648429363038383431030380277030521010099299059113094566327270599964946129945111650426008699825600464842914331217506999705900041429913255501933469502006965906738638351572862444009481839295871496035676898300286676652483352691249143055472948958269613650958735597653284319964004583292299066401951627162077279534385738443848735677502199173270685344160588685383391103707925847635209554493711329544271338775097194445852542676051407994885937757967408119199513702119409178025546457981751472080345274472350886795980775603996100176058861088755611949002690973278817725496035943646494639764461400906535569200984497051918002998534460658337741362097185322127903030153726951887276024731933603067073038334976842219350281146170645335399042426327629138700740618161586178028708954791733249797644214098011569703451422412276898549926152981554309844300857360146400772428395168136615658762114702425636626232543337878912760205611243773593429362900344716635572345114907746646327174849648159641386466221760757468147726702157927085167067383426231440683991009694774454157350470944326320664040124404799610562924028717721469175975078895993645251799606667519184221503739333927297735997778879234290136511670470941203558573206555977013946327975376024595652902918466410204108098037460164052755953229608197248970088520706637493754762273658201208054720016218306651461835725993627510866412134595766852485278989629323042091308359516298288386484129518312031358468481497759625018547423504663780306272485769979338294350647394403168655610458666819103336925343048920134395498618500118441277646664338885060743602363237072368034431267811733258404063560174095591533198920471610489523941056346185899896136694475094562658444572426449213154608225104583868826011897431525950636070370554540589583616004949710627397225457770886741830638108878337197326960696369263143534350387544910821062887083238307447218537911812145489843850535513592089689398743507412095132040125375879407493746061290525463878337290919880708202862945355724631849137854278526609501642636236745061543491725324505388765798573762108962267289015640105334639150175679154484465141382679628453696714129082490552188566906399358490951481698452356818291408843875888696464413924260501495270602335130278219671799985647864522545232741031534413590573874135167316382011704581308964978926942953918922635897694891263661124259091574908667017033287750976928606994888612627205394463349093730942312667121025791854687283808094227202601624139684785814054225907177797378291387017657629132121063897786148774341779498539804286273109641429497838503293148579749301063041296780191865580659343699207465431246316939055010425931276873950955528985231992947348795134817759615797574625242824668975917190179356426520572885764621149347332450290642545406606051803218904151705511196500700845543364140939961987657781365384584648810612622814803901210823313576583661968875389595001505828102170906509109626775833517090073394040408152645699204127274789136218667106299653616392708734163487606014519221927861163449115034549948004284004914708108671116067605331113859511687487955145785042202535504145602621906480264729454133443499218015919837153372552445106414703439389776473857635711165324535179444718459788394273871524567824204403903887394031887455009764902514222332798002831535128139185238982285144002886986407708544171951659473176891227274914954538560832634093596541262968412117894041281149734703941237045058753985498788527021130272202270845765210354109147823405529428614956618266652362382156261552646710131153651355437482643882675937485788655242077352475719319871022489037646098554945290817811066086536521044186243091969130278288778174076716803474728242695840819500088952448851410511468337529055591728059447148919545035993322541584637425110141626188917609226314438281426572431254560159464661592776386307017463151429087653891111348742299157169157706422572972890565809731363783470261001999407855362061569274091314049023059447851286040574447627091986177804354785036802739615771804639397085996205407136774344990900890527471044823808968873620991331242571196197325007309744227591396515563196803769777953223602406086104615334405624165994522678798889358337542132775236341209710473075891378709479705658045488755244932647307196569527402254282000132609415119406886341567222345181141375844634946153806089820464223561060303305046944599942144400749793378391766403038213719559681648301217819638530573735748009978510104050548960610384985535216887802607020939084926556488820368439167528716454287504471747555909845827812177063524117680929513004937185532884696013550816407347348760061538524551732594947134902363848145080385901276059530389825326764363399545583267410897361679437030901600468900048518572759501631177586230526743130175477205041302727794891901452472208790359694007632013722449605419819277652618255237430463992993038430666455285459648711133096128940971961178719517139291903532148985351429605897571952594311368978501216590928217368236446344967231073556327856123303423898289474820644929793867183709973882608098473302161611611932018680480039044354002620627429330630015053448427332699950062673957614101411498279625319135474854061434828062445683346820540171938004375962423318822896425708544004594926842967404601281878515335751595110456015647073446253506359973076039103262364276515841372944934794332637313445648102060699174352723562347769292156733480512296998843400828668734246607324606590310070730922206179268358858463338098723776976022684388824641799675811610217615014106667551896110992951822626462661904511313650961900632661978941847775932444834654669702596286514939269202320600570764028947998336949016837832193379942881801849077359645684173997908954656125257633949187763548281649337354619798433679229551731939517220335860316432162536956506424238261633278252109527585674441175606269070759519290353447717336953844016143281446675762527660045601694519801633102795879108326233960486652593759818372128749282401270896982287947527107615912474201707723820610541321426694977112162128636812714480851244673266518844652289670785778589600481162038584711531554083647472108637014840885732393903495999771791999122611908600228589057038929357089382961637219988318511753595777166839882744946999900332721760552664438045887851484600856290037608639517487536744671079161735355565990978236818483014626358552050355476078000608225115058956281294102167894467954189760175131012832434264829848557831090826257144450308428836842304285846941650632366546025558038466802254947461507721001586748518715080603583874932558380681735299156662090607764416976733023781505019069737703395558394470599816550739715684129973511442752902699579671453771293471396851417793067050392644032704328755722407377007853137618522623978989104328046127100440063338802056176216711106035642816186669658156505980076542577492787019348479922076128021903412657255806053371113227718994522867457719858840891747578550679839024536340231492501269303524877913841136728228482271708178386391456075938880989175763500246342120791790317850869117362612300601185617809528040317626656234110011382617950116520370000350371229864736522276851372783539134620522056292120735099600826594308043879079508575436290080240740612817452150097363686611017697329379152452311850827599757410737920235718818990049083718980247342047486542355831449019141310685677325266291793224000591991166163694635579555560771656801895441076987923946235998937266634529242202898498056936332388155692578873000828250331750231041621981774389013899222305775005525589480548965813453336089767072231233409668459537155424141449441409349593862072270172626910018947622031949227839575012373249992691261383522563395295145465932769805446915236964374307468051841418441079534069344289580461265331653637161709970793624421303320533155104624876411751083818254623219807802340553861263375653395836611314048696570743078119137348592480183675018939187568409547778642871496916495526813251325247522349824265688429454648647619429592224425689785975795790767624178832005858894441141883794331656673074701795707115002619384479082385483671296698269076791486146433471013751628880846249365268451170698484555728598581305205724169159970396877312753331103098012251502746979420512613724928555157294752616763996361191425719822902064784339188577443870614063066337125368540184678126436118111498513089272833123750916141678531179666822345076974547428741505092806711678778252573229334574056271396694462525464066182422461662266228346596473096134606846403979113449917929915119120400516316096597602348430692303434739872632436950749380665034202184526736334834265462484357207552640678518929455898691440985674992943913841282276711693809833419531551001282865891367268446492602889607353856882738431067722426135631302957673767322795368272927400893848485090034388307887193417614303430156561592591434943731937703082720694588421742317120637120415480452814506810510444705257167747952679126310745205528197721255984406531783992432171499882564841405133637087162587834979326008248777242559076342586399964735106504780373917268361205001775008107085011449756008611530934342053969527188584861237403992308338537811089838701525730636612031874181418424288519996764312828843707112535128689432022771562246005589146786251617649189935428606272088743213078257975522463993489031571646381696737341259651966457827628510653802946106839026292695011697827839749074200708808928896050862886804265288807654563534225131950149396270333224216607182577252798673504281271727795168900099431824379973002228220837271638851604632318022504382494237493600041071341902307056572136073201246951210287115937063651950362069884005294623496112237218349458141477494461626518016876600176482401176907580808952863614299073342780942535887871243374991547237473616386352291394055203978637069298345896165306058720511217674466115490109619902463599043876530173853328261564446387248433926561866083127885450607945198852202569594181663327686054637213147642522868881914475581802861868145781982981108126020956109097562504828126545582071623514848491180353605532963671376449669162373266605084265530139477441591170947786076947524536805393104999828175415784564847432994281730266281481891900547111722987804132962050299326771809706062145406271798681827289048177217822701803189100947901556814614940505073238496290237151286566433036394828175748565533243546344806942095213000836686303561736108087656188771062935864692091142594116624835442436904983000421429836960386672051469237123392862225435677487955614394656866342599146739451157549197920379990037414441468368794537670643128844204426292669140959339377089323874925495734473110601546124300456780774125582622350791041310328435088118357887409564283487501119585234554889067234673561475702354596941996560538911371641301702631031096099889827979924948644604481087803432497790850869868650327476072254559807177437058117091465804247866873697560733583718103742501976943389670160057413847900502099162304944334607702221482338260595478046962342148787434392061535149363153921517571290347887134393419471698169396812874222576530604833160065746471808628353062159982825359368471757214138613520368557305641918146886940338871996291283407617423412817858336263333409926087035715856846451636983294514767133531349141290653418595598896512525786519523073896239578846699608249351538169809376615572105349388959905000883257376095252417208836475328746387251168910299994161119111358324071681081007815699916654689603634643195914764562103282257668091641103857170049309902348145987365423357288327267769600227541507646018140206309100054769306737437563303780926498959112613151489583010368153245071216456541448120349192701425071825783925169871654443167624892961228016068304057494244017425060969973483676824329619242311889440074377590657954793117904055137283874094433902414323023529270430798828676943013501762127595942224640988679567790666868837625248387887767521676512596470984758775685832212488218777696902158923789825178934267080813116942251423716193952711593750941176743287891073977634721222033763010741321571914200151720723538596313844073842996656362532985063172150106041551639440696222803897604721947423636835126315813734605653928601123562735759124772087195926657668741954115904935248104595222218148550519617973982693464555344133368114036278081624638343969937114860279875303814575070467504396195527614851383796369157567519331200113766791908485628815523424022323344563257324369695587858481308027858441938780484014362557723527375385793900239719456136802093776608175473182287929785924165440875893595300581029688071088627090968905544281286501534500055216460404067421852920599619823120129307402266060351844355190493527179163711565900538427664697783783472467936762003470051950931960051342645522493503873071232261375192473146880683835859943958948758381181975202554471849902792083791948810916679246111364173370275399957154813019885068249844191012388060250301981418528626479587669459968781976625704765662413178109915930510083797487506553170675089572576615306454092999027517835008723205076833009578965697688187720622201955800006315908767139357006206856059631914051591856209581987578122354490215749373347505945602592308507645456802449390328433791582076516405655273485184496850146100106148581693984093733707993438653125395061108830523593150110719096660407379246574699019469454142881767048773304481898382574571044262526936649181336504268688910014072082325823536927502300182807154332755298346812620754399912259845968526783931576024510391849634529037838262291953679465395572960662606411738917327099991783439249281187758223007675301100041578914312326975876094823144874364718788703127350248888289231283212154770917157206719555467303505505923104144733929150597992046145711428429723999041963791623525872531538754321499808053613980897893303538767932737896036631505618716463394583854741911397857507983193240469400373778912467807062011393103777778706649770943707876954183853127834643448028795805779954400437314212131113405225403365719581474856457996785878832656165445732010156123722533007970445861210975538801290452183793930580101998252084375426829133465305762946183468854619698781189323227622746453346859659958324268047372243322745017627012804661564655834977818241314731669085833891506956346947568944338144029163360858391574514742366382051822498367121624792649469413495223172871289316992207053775575720996391917821690676554140678750062551605155850689975168300864326061216615141771495159833434768578304837126805466901608155629529013957393466217080400292752790133002128964969595226037179272949256206207428370929369306580023406589192134200031357432224183001255818333941672967713592136387198024372336078432151978499652464304369375922594094834215348198512426172418015652041266941201399460244129112648845959010156928963675979170445358153304801928899632388791262957944501223893020132036263426720744714751821338245389428438238798692263423242517109582439691725803872321117615031131037053303225459534757236732486150440998028105489365678130742117412122748369494326134194647581709569748801503959911668060642215848716774312963474093927722281064869382868138703564209850936237086444551066768748177585087618802433153242444495473495587515769980697227611631441266219219904179306349520099322528907782283996346175949348073060277840912499924690656578837698274289934163272611526770664196943851928401614478353262999576762518752432797939706281184576321920663564258415702651518875462488882434022085012870187027163011570707265325707097070303205443194916099546039562773727518312156694236194836124399553452648717571725911533639066449972513448782727231853617302224982332858954970223750234232357942215002380087063753522100470626304120691668377879084980798773991267544448002741769284630177228006840781189879168004637691072660417636386170577782955344654108992182141633653954747511413085664724677830182791114811326794165211865076081473565065540686780133314248150876875734471358735158645736778112548507155969496996836980913078336816630728008901625741684523396638295845288730245701799216193260451727621724301076355176082541257028617874661702164804033285887268310864277078720589812352099420455892318628093846694968957116445249410607843950796348912997590949443721761760601102568209278023129029379914410195876333235922164326590426513302855453707382306435528848027065396548578390522514203424478941896651201103102204545005867237685097196397337203108934750151486599892451995396346536729807305762274824740113528396289208311068556754011530487816596495287457879737144503263741044173928400631332082136557935145714338344656748022335910180973417825660791447460958289185622342974101811587076246565608288968504869740642246950035707491737167905640430581005400201167941206710825402972098330788265149498010030905507533890485887193428830013074450570825179263720596993769682144278485575114306560573915873935377086078030004290962517417030616580100275473687500366396155435902296737182127190922977982591412743135197606802176724150023778815922672358314845888207494644632251088821633958129439444089620796748309153368214918634075300167942564747031943981193423480982627860049260062803913747669176924853289428418758122497707656016168650659933105266160750742202192212160226307319553307679462579108079769202925110396754928217369117880081006576078258916318981227854277736417917237954381112512637119241556844285457269776069833108716647974820030750073382886108045793105681023922747560751200651600239744223102339980896533613920100804513793265931497472169106234819071255787774038927191933989381677874469210760240003844131769592371867367454764071557950672189062309078236735244512191719410547749674890606090930444985924835143006724369010646807254186246514121065202019664702676393576364000166801568720491322303632913502546347129239977651050609699830190435866026366798892332952843600391491631841948363502097518217350299804524051455621935916518718603462042228658633516874221879411077383528409605092499437593259634518943984872862638823782088398430681779999246506775230834120785369776033596114697458619804603824571628507704256593523217246949339382173809217607483776272246144377045717776614582838358249026258340900679358445273771146241506665217325286448980573152058703689758968677513161661153736685685691011695680104528261571344259363582113304781470422780124831363855310277135596952957667411902397938991554654607670312751205748711048395993023177927937187275555894555329058025441439146821689608004682460303290226431539105017165556671273639813555128633081774299087053080875379168888001733589839402394414239903743382398595832504517595932142401505404822115498873156567880504751436268857173940203093340650177185445984755928529544276533937777131554528617100107674199252946819611983223944398842206181946130896351327947204306509310060593241667808552857789501125541170539099196927082467294344585888203468248986431385226575034039631026639294709160452674579964271452942377055932864881234639761312678521310472810092608699214016415283443056633495748733789367269256627215405997712361707637465079947424603921467192624470417860477503419632909517645459349267881935727756651168771359797577426880861842653630030695821161367720230225447574920634409021993247850047254348260157847135699867475437543554698286236487398074916414401159321335246897423550688706434202866543678670170810130971499373732871211123129266533579861014359328186851403487190396011888496940470288405741861073367412427108173969036247855858244747045563051318734005912309289123792012713625036631719375237638505820743131751094520266060175013975878349310055157951181752470272595435832983805787186206352281697875805983524932086886875046741101336753809745857802244182464193680990751682775957823054482514109886225766256042474929160020951644941368693519341104401084369859023025020841166229715994271773832786289832384438591909284760052510506323719059150778952122723927032349216722098913000441693938677818287629283599411946291307888464976604874794329958227263148684209825597894500982909367582819487801303618928312048526742122343742372950416471951420557389767498105308963733654938396538415846629749002797889664663707508826336109121668369871881058429372884333613149549433460710828471210986305418399080285790741722724031080581062298376295795000181424686133418447478949462826914261325720115749118132516623621722084005672607428871785509700191904649013634216480454571258085794879571256381825672078917123215455210081481440300270402532189570251875137594401876623695515304378644872478450711538913483798333793535819318071942297560901021285657416692120581661335173281001339651790971676655221948368707062447928613595214143567549098085360372371614565026421466277747365231392458733683906436262279920117501039540968436008149455701186214768132024368816312990024219846540131781991916593405924053011346880014837848175515721034362778462581348534610325216579269366443601356321855585325813046334587570793967331279990301561449182073102695698995894862160294714827885445395241088757132245374602482084089895186400553154664408626833775707980671964862382294428639866680987787650806934144709687465056544067257651606510843139407895314901573299226937855724208032691704195105942035785886654717594983706402016415951747107215140848257190030097546101253064697290334148161617003537186174305900618540380888164090348865402217325767537758274763351835418898566800874403709235555978324768251614984886316313106462838454494974542946916952422177044919712621560363746106164408625474823564811327956679134921896257801084875422354545444151395024780418976650132265061709959071507978478661859770163887570398682738010997702633957097366364453624868644192406112165699584765994784502695306509858442756352987567259546564278796029650295581282697611460922099102455311276541682679956049515153872655444210861764212693104509146549963039675466585041221061778408885445532921737536670581826164166665675543320936699012765588368224063585899124066611795727535445582601375241953026150150627518213556331771840688982060956331008181697581070740356611329315775590378993492166203788618814834013826727825058798001509124904023984868527438166782678244126734288796985244095500847553681360255746795337660845345978795866618116128142556186530734719901895862589681230844494401942077938797573067150685388372499614486613006474642441857654761186031358654865714990783528286005739033620819886175804854377345854539074785727617397297990506999006126816685288867247535741744361483857860748219590828510901149594914201967330625819234469250184614230286100254935960160769944712943401129809895996241690612246384524899790857283839504047284647725258627057743465637306895487565064181974643952417093214664231906091606256305826757751574284641205099937222507665625721455078862088213936834068479405881683231898655031150404978927326690703175572973379476373276699969797686033943859527415632992365433045034383270094717003018446341199782559498130087489670349497146517531746862442773140159734369608034536692630296575096426390309025215303119821959387913043132479433179281365911582264994028415522802246085121636450624274463155470011156570821397684602798950626881504708270876773921240773930189527822751619984994914175329598638777020385697988885152151168792069495398531244707574383597307508516202768239194249950392118192034108657439608735347119827836625520728070776675032806190508792442034117299764813131234465184553346818750996611034687188262954876613457955980668230841830586784348984581942166683872984196525151218565327528633179284204994745840295288770755005905442011811137910472932521576532133051579061684992398487648048969981481477871599967859609395649518086603349497684642169277900569224791031418026144731600539122667950384810547064903067251226379524908784273054461099827977499252094471187478210649705788565912514560454421597568375813263918824061679572676265850011910949200191379707237343944202329632941269206403396755603112349042385254792762670937085139578671569394029889075591178179822641084051908871109231824963084582040849745524997485235501475005005463170375766199575206721392722463739541526613969336891925854582824209131043219550760451073325854435822014239555765455364622498839150030435055542900732627108197144002049574845210213761929397253691126514746104483861850451302344887454487327545574644792803091259568662980996875124814882807678751348319386115266217153127964819027551376016772699811284952650145049588072210705545227709515206798864764079337574221050003846631525203383369131365869785880601718578092042692017639425181252536655470160644690491695281068788377091822723548229030229496703699216534549385887230189983008618887131773066328656671668148088942265923225481361210786797862378969647001886903014754716802470804287333915074349541696352203714493233501093016369032707754719393760290033745064179108347813724814159150360481224228130977824887032842490886552338541890047553094336250178791805671109364156749591449444434038881534531869193912090319448029978831810432272713604879584828835603504272438134738435752252430716638949778000303361533830803401112405605049241958301721904701125843724421402422554397722086510728590253211854601387380206447684159788892836818058940107260095906305955292056518283992566646211089143676182145945708009332155439193365126806940474431885314598884002629754426804915467241905456722911128750373208558981331217145278934484117620598591519671801428692836772697789754545724121475493396634928552302814808017552521538570884917684512525581808794026161818702585145118299614763223203647461216406665661430203903966373915867092583043305253902911413454108619044144652959465119169312823686347824233296027630153397815695256582803528983372143157414947617580375947546035108061206032998540064214406861484092734931190058693738327473057913433604115605493312409458604732648285282106907723601191569209860393487791983230719392156997276112801307716672534508331582601427916343516825834284900337968916378759788196572588216900573225721351085218923825557022485323698529611349726914017043984165716393490846109174011559898815831322105949864867812349507414962339490439714175950542870711268361014189840109945385940458415404738659438211704202198199614772930718083349480014419954290337165973880243510179559183414779842199067265394837756419726215954047051437193369451719321401092557034439121564464761473631139369175490950853801434862814441660228643832089366770993177574093128800823419597671873233911946626079810424553552000853587621214120258862124799226958400536463862164377568362533555916969856573218139576017476331189896435996732564701616314807596151715821924813466529393166586007649967122230153725122562955613030020456888525034821013577306869551795055692165872251933502151445136253740234051282333222848109022227024459598215486673512720473628694793166695098186825682182646557741051021453217548388823939826924866818224751413569513460623773034930221683696857494991181599977520133411069341193287915698996227932217677312785295737758805153210700151431895450434194402562309202254000057840536647932708860979358181842139821315654692164061950582530056214276296802470806417021334097428694814382642742466975322422065324283087873879322703284554948600183161981347805831461362887964255884985454596735303089148390983748960756884104867041013615498621250638951851924471386734020582811836771447855835185455878035863742905022112100263734585132053204268780741034646186728908101110620452355415072530431969426856132885629158657335093489087779537647595310633612613181440316259861060642476486356255116460116020162498770594851120507750622726855225110692164029566894763692819432077453793937214399917971391074974414664228049058780490935553687916681194472777875289558396325446905996837049521059262729856600315894626532938408943394846295936749030092720310573713592325365241027524343575893444288358954906359426151138334011429647051592701948568708736458415505800673613913103528296197240984218874530511897164893717476556881725125822437674470908694667854414178672995491078007018023187231573545699558651276738211832825685837600535789286702519164424418080315286961550043082458065646458700828558444579597036478630040098955462538663813389248383768100753599647687846185163303068240732826082824713358492861444930393249045263681693301547743522077533016731403415661829962847725234985712908143238869109428525911360772499255856410057036081954550898592150624993043444999118645607828260379988159216716685698278531100717333421661763380550227870694674302854055523462614239749222838610061823499768647897110839665166658536639007632041719407248343136328648565975276491324099107795578138951667892788254674740271524332453829749687580502398141637597992376177314628352947395929634268745045365309882855898101864009951618315682717040706294838277534426468964511702571578258834392849891703047226341670920636639191037672690864481075642126078786025507085348173807949227263604389374688735375594093515896729249136161621062708389225947810994183930470011945065531307662627105400903689623394969291199040573671846110853491190623595933719753130959177677451951970335429467798004603810231377071780145976136962154239846435900852654135171799916084459531434626305435500111984788118235889223901024835141642474934919031478630416707093198052676200572776741622215381091284670671088499420602659913526275545346682896647902094971521769172516392545185887239048980058026285229422139478557403569080603753867847119693519957537446772457851818419773379093166262017874949442755673371896260355925894403843521846701717866405560889313534756859678059991162250289531221968705377041500910792658126055170561895969874015199406117430408922625941617370929127784627847849813995300425998223739620931936710703280289807938753012938144751711146761854652639416622512765920779312843773078365942279697759889782923996065494509565500519812966246194153606505850460690248223575659625364569539879775114693618093261200144648377150450196610446851452907317648542205786464378782326456279082222723949295682892738800944986896072972160640273473454325594842521134460341075660823054373369521867302527949574924326197267285578011692530844982168918832729807889210471071282535509467000364758139058987104143792947001737628927656668746111605696425744686590670487450983843731344999120761945283555839544023861030126347231418105722307675679226796700910643693331665528867603656044535544094711032848208644577817054221197884620180938047191756546197991387591925276561860755758599550597843966944770375750162979701854816224692564439030176545183495570372793051763684186593944350082825888617075972586653609000129650324999918791844908663943552249861765137052228371086517154096327095621999531979885485559420377403333634065267532132812182282642889345059403974644776067419013482678614546465688937811607935275838074443553232253631238165183944078754073915982135301535462472026079947308493643698942164790252790509872728222835457266003556327238036929988974994830736185105948342985767693965761266068342855990441872452356207356368046651330092997010770989855522512460212055466814207682740403739688985912875684880199179250833333275145769141928780875853999735580036664390847337922782076821532731531298825368907925198039777701921680077140508884258315221061690763294627282790445703932172924916991570771499368019398926378882243796494203651144386977635297975027796037635981328214812974228032982195579565067959365708823132367440821926004685786751009424115086842728351618888146185618869541614845273571949724450654419763627823710583034383150973082982280478073882119385253370754741231514064204024326849310749508381204438210060624496850537026338297082177597730069804722971927024480468988287795635855166569374386988830248119460004118937419087502744040573368806585354417899453139240308729466003528008446830743880026505860093524604594427214944035381729489643680190790935947836928000028635145893778901813363052754725351936433434998143736421925883959752352774065394990138922741131795962852495881660281699797761693677997744236217928361844601678859484324403591145054191878119122124629132923470375494919577775009650063366576195231428153701312232553145553148746270735585663759895408008986768403222044478597929857081402381971797492179238415006986346160981044796661968530522226376482664270588094978891767153359348187164330986341882973102072058545380706473900158947616225353949775008285596773001832401471730357627436582592691032939667689361375103596469669960915268745145024825633081685551377989668684453778776767147729234828244095961183881378365220627580966914422204176270390039481439779168426049487458884054308808990823806309561025537629858271507002244228303897810764694152764073106956590133507636724340746168945097069132470479243666830809332216334791187708374516286868106329398145543519310660511013890920686111320824125599715147919112059511801988880515373884655097306177141541199051001034713684412827243781344969463321781418268345823638152093445429945014549157992966875520459010307541247399361730417352470200465490837818891855225267678938656006305606012131087425110406964265544719727953084346366286520675966231548346019998927919661460412506135604722149045431030881886830625640471148819545734768150456244130032074958820956566098078039858627949067257631803344896149307961152402803717626211593251356054359820014931898880587047995741236174087158035356564307073294104159892533589017716762569792097595200805212104746028340745696931573719313728092236030843847469189052626828054455637076850470630263685506433370931761419791139260436488065523584125798982810561134868748181575159534722116558485010981768099761959762237392425858456661512390689364317387452928879168943825000422888158995303910851038920011987318061399916826343186477892687684963543854362800264169650456087020726858582410093406727991636392836154126317330716594778311349385507227919112910076527344019605313382764502712291907854505424638732733990268613768816496088579583551877728781872285193469511051742449787939577552572360372272710699320014963493730343221075693220236002757232588684090591038442693578804528390113086108785334567957636748995079495793359870586827519569043545379578690143024171771020862520430796152861336944642044020134269654358338195022824767349537890760238155405619768195157547697157322610384597876167770145935536413700703148886965333235433287148486702678947984760443127674406247881706803004844742223427474172042379712589346124445293329855437930031442841504857414233755917786574282142238075139361776217910560246032760432440043164714219505834976902589881914659419723480465821784031935781297242276194402704979226616032084565436765451298131768687613277665185062489893563421786334246273834027363654545911426285754794806546263965277247375495257211531733003145052171024653058807047400675161781142962112147716821647026767041116091724051703122015196634746116467442003311957441348472036488080473007321262263878734937773958995913196809730913157144763797387907455358235532793059191549733032217814032623481597854983172505370164562124533657088749608478713248614382547807266282385601919535199433874312863782698867480211208910810840394987842449222427057165060319228972804531873096136271133029058815074842365065012596103865360268746909900971015462296141503791743444749978875121759849585804574821252583308966401858046004176879422635032101035878850282027717924917209699666613579207139333427216306749097445030329037059460704126229430907755347036086149091541405557224560545496723653324690965214975405070094528721241795757742556022299005111753933667574860214600324054601040227828017962741373450049182128633324172152000324181184072508770282840938488587353562645188657452107573297050104309322365148657525706959050541424928164407245694652840101646266126564659496619327609991070267726279955017609835331953554085232411613517851725307105576983723781871907666557528533744251296194892999370047990034624997280829170044784523899626109028479479637476272965122041125430333044654759957180668629691713742188036140467866957818763346363234039303023294761088404655140266279028438714128357020290662530137089190666432055696797142512538811025210075077786177705807206581111413917366562472913627181769140599828486035064987109675575107482379239760454875617296311427753398096327016652768984674211680987735237064935097796683441198769949917787709132836531556494002609047778932120949992418897417843253470207520919491049202009609806598452371885152222710335787868549321629013529150125698887227473166836621728754895086071306689967327844948262303372689083223306444420368337867343835494586147139677441211796875805684271636945659896511988821111330282592256207793980929814584551222104832800896746981856087442542663242029293197424511350513675772275709850080505939324775812974486370073211611338343517681193624236822222105526690572654142605118307506134889851272740499504103396971013614079584353879763843611310668921642878450891110140459154217923034419363239586856371675217327326847484217820913577496157874499503962395953194221018086626860396948213440446831582652189890292962594854942527484632254646567726329881248685357268890213034034051776688759129066320205003877882914049531689188886558491477580138764243004577411034844128394158229905106550283271934092707038516504454367190057521610564270221020138384069431124111543444256549438551182400156834245181102944453283411055427582063155053033268570639408354817090303315613723914717541248679393811685926286524278849180322373625975576800126867787326086877379256935120655012850347248180675226680412974754143472232403748261905008016277774120858303480851726788908497333904410395914612401825975235046844442483958779680957665527498774008551382589801084855130274997245473307200878069907714497089001506925265530830537979492116478865189757524831273365375690345997950030277989543964170765909931702196665857762000711798190706693006421951304600848624725109204950332122436769377425511906719143640157118340593226550449261879645292910564931610203070257656189348328456706876671513834695571477408504565306500051305365276425218205042799673168068712233935047559188597742159494824913766480084867161558886425325753120591052208958840822958836361470908355750652574671730581323648309253215612950353682093072794358845148041705287761669730197049949080293629399168916002197053653540631472023909020473128701843195960543426890021084220627798744088716851789788409597330835338374398761451892567764459994888030731513215080102160780159061528709451553752343536261392905448418341632710692191561296919167465958147660638643862189142690838278571806485523258180723157390104151258247264840858593521241985016743998697693323461412625696253484340580300328163191528945698015655828202960638496871912097083653686522561684261300828146023525767306404402992955889982655568196529021725624792039615462789561602979056639097801098958283084342275802956963283679058007230775405718410110441895885163647301808931475661565786892623375635779720604394432099988174185425056037729026236806801073002355385886349873387840665818151047261313792775230270215345164619606941110701871481711342172695518034482388671544347285317506998476265401245039389295038039327643030537986217939794520953518381729960832882173848965871673304199705693992417504205789408407728759156454303736744808896881517653015707654198897976438451234171275983237040440954524852573699868789297740329918610078787806035770035680860159713227364950148364677574166804473258099460296698040036508181385577485421792872702334597986137712561743912593213638383566687834860736222066456073810190677820051278722649701120062968988180016312018382915308848433369345687230095224648308371226713535902131579528015464756760848887137902382472582112541375688971619739163640036968934182622505859766597112635673947761943314555810749290645194654403982165786346127773747508236209203159336473338735304575762162606604531688480012557470764835117518194131513179756609573249066577955050272379786639461058664098527666363476051957484544398895860291397718544326947986584109452547021457717140406109721720803436771327349446675385783465802799021865728209927017468126835149082216140503993592243849230049453491582454945746315224835224086063974887593407016995237641855552063053110946101302534154694852998839564546913392994275122069986713747809616772980732088174973452207036987711473527775314579125143487721956441812891985874769637276036690847060972087841185781482578318609440978768060329213451646662084461057048993884720945748316949692910261094611364012975813973744752723696874264168094679279065511719639946258351150342785602327054143798673119142649254802356163251644204277029864429158875939131855589644011770838018911951136575140463446626929245038649276581880275188921491882446152109500074666309024284577589335970804124965196624120751395290833796282364857244658795497641280687440641247531896282489184178100676075678143644774455627943217282190653160127325820403490065478856424497549866351180649127349093715681701525288668474761676467453384882337116139296152559194830062762760719771072106220821031376485808802093827041690806721566001823301572681249478797050365282731233094242728026635743832300960662238869555910470445195363891577335437503743713294208562583018870588501603033411693112837751558285931061920700284759205797515754268983588691942524807913098967931172463642253714442392183864975231681402665215477827315763944945548938790185334877459855577165413447867573533826362700685034205170944385136136396952802307261758536953384095782710317309073882183067257995071370503541701194233269081590601852086173808872577464134654866098319697830650384378277159692965789904918009744628601124773041434071607421646613454873346052566291800617103618328471122022721177178594934823938763194857778468538545330663704059424400677472883655794286431770726059999911816891016606442778172507733951745552068020185419336184013394469096085745789002752448039595931427040129220041548972892115569548045419805159435551328169419758596520888758831004458179864516894434579242391926455198934098131795964870532886150751739722886456213148718797370118765168955595695611259075768815236354013648066034443775301983023888194068376097603718598661195375561661290754849629583248928291544836745250197167401361011712133527364606866863787646458817518152234928375519740633221590913664546313848291530988021567166613310403918678320099982109363129994204632277743647848206513580568463071409217515540507503258622475113546347944054802880956373950571693739107515352317433756400785095054320989299704275913620383937344870448619990592901490084206542275118247437535361751921432250213557514137054500703946161434404080838017797216974810646173852187105873918623057160457069074984027743157218945293145131592738591649498463410321844656438815589833415433677547198006126972527301920948602098564195709506373616340577805882483198318391618522065842389755902691538596250825995295821011230117386047585723997752986561686818779836071669298718547028843611971461521266146864218225371079110658639166615878714139059882121305651616572646494868494085939298666747021421374017512434371579071484298004124767960148010418145201777548437432180956851058298999558034006874606607250051519664859952998705693975247729608637990914804039140340512107824676587836235735201517612672897134191303737315777009634341600818102734877013198362421539998381895646398697809295897368040954336090769901919483416216221502073932645809222244622942443530205306661294129437659561424551240305764935168629636436315700022895727565728223144627392013171896268761949791775933659105778730995599628253680611339194157460546791860217090644902182165513872510424963014899859003703665998956674108382680173396357634928133782370019094337345878204617025833688131745798756663239912242933546964032219829762695485505182830091823641107111683012827978462930821896994029771394953731638137260632360100649322293104677419907671672327382349918861088014912117663911586166730605887216449506126853311277035190796228048755710290039009950276627706812094978917101882241689211572706358567128066413381679453274798464737974143989400635700880416260360947515258290929757588333791079454827895663935595377495843418162081385457271122375158587084972353851654405515447234482812723217545542643988540071073594090622322360928379398888068876183472993198948863911693076714512780782132650125649947724929165018767771758751872455446364595330761251571640602364176075419199008707881581227986347003827825002127810443817032893760240275825075816765151873403875412358675284805220706308701985893785449962828061795157033252851039316177836849709158452661234670178579472648682314324561907656053416489318957784965419485105137108268152973105557703935759120106016363004046511727985506131097798637058475712645982012869963292675131234586050916820729304002037817571153219752178409382139526428303983907177994702267405426023682960395939581647852524554915263651538000244596808295024344617957415440919164884207477361989431613499995058641414625421646071980821739023703745708159143995630529087355536975611412352008905620832093308734848358900208009368667170609806969383121409564288480898610093421763800449361925505934273769981094017935423900703256715924128594696158787827245640627705579579799649878740642119631540514999653468603716132503262723974735464941227322151717104550579468186021950282992011316516376439379754820303087767178517178415417860383980832223510933822649007802834722135110971206642318682651441984546256959333378016164884354449372252797077391869383367852824415782439089244917482009351575870676354224938823342160775581090247467789994389174352819516029362898059577143955797585896425563950316168240243258207564689812347937101921015824938052228044682411315331390799032318085889698206111445022054548390355246442864789703857139699864591650018181375819239629508775386911236984274683754463134402656969678198296335440842221972824031528928172478790777337946700969409343352657019437839721922139406410852095877197862150326674080664868645759895651550827012780660032345722595570756671118719427008254763782269411532880009904466703990855024941171656448548148903155594553108625541627232557775261029756316434604792338426275569766138175064373875606762084102908436276361390567073220815130003786639066611285565126664737089918950305322213185189969035447463983821778001623789119908554815801334280428869822625847171083267518651506449709155888836770156339804150492041680161348069579935041964549356052962355282545747075385995521787939131880222080321969238616523010875362671174014985572113020019071491748198626603828558960996944412406288656153145295307540235514576876335263701166725964810218719543251116661196518892143768879803799592955607080603128310874158367518135673041439493744795378332652108440940781626206045339509353912514342626460946138209644600662493340072564421323959676771488146497608298004921871953604809938214697937347593438486344741165600603454866569174596491632319901323304274380095163066518350677739566956371857636419745149859592923217574693395980794086888772878396142095564125252900219668902623055612530105351767233792507512729379309675898718853976604063343687100216137965680894340715335801324005919900330719845880941897395901026195533385489120299515648580190255510516407423064156057999119246772506809007885373273011402325465891932313839232481919064294462073660766229318189208641498287860168493583796579818594138394014389391204364806815181651999876824392824412514395557804659290615737936815937932686699460059522015469825224996153877664155843929694826827956455475871525431289400145656939499505444753433518399778612113000998059202515855151242095192147648366691075425732466741502551798568448694496488780737883908910082986136291045116649283342834204024862176595471958385076110069380616988012535596218267688651295767852289571037271273892663928814826883899837329076569586186851384497979022503827805447160840945021535167144095944452754305779497235933027129327069479040869929215807246421030167671108077346653736720461339591267929862760439706250162040536837816586172402136874338648124064665494787724789547294246647279090612180205823827407617898436218681837077780130398013902705807902135608311830912871637339610719144672523969994811110278649469265889330692101801744828383835309215587083722616345893680280016027523807666578857371929934331031743636669369787539716374746341482424490205895638970199979995633169879472177604243692604209945593345446052458317700540730102876344294007821066714330202658731256008630625446582866142552521026499550466454759245492967141956253846580851360769330357489257897098977070472676037868961425872022284785478559773854229316784475641505168614386117172814297918859637408238363591440893535610568017893842360044313315706935436194189150676220361340706455590195136168516693750907824438733309356498435746571161251754228370123322319284574553585949332846948294340567597056586552075476406336087802012821569983551635326090336335669775440900855019127113492509336532383845980899089282075714292457534015330771814531786748727946066726198643972033567112496525292346993116356468431367821122914516113492954733582982434423201005703150769397545045522955999080333094141811635363210168410265220643449658215048516809072856307834687879771333581225835684441420834012289707630617682693492801328856788105306606238131734220524776705090996290398961648919702645995267925882193003253530707514627607583665065291305033459603131391384700267044159678879425798976834282112947681137053693281112993594480040158920720790364753322855751783411960961188429232966859553116678506323904140172402761334470966041694635173225890314206578791446670344827613992828246725285122619703121599085299812049742240647555669220213412327335802940600835583017338133721361395113384744126118032036313242027054093456262822013702370748249795142741505680675199891338649981920507300000880366836089459978612656404632318812360003506257470949057785009882309305092454414154324826391513936513296433208097126698874942281125538958392460495966522355753749138349418023922535487507732964068039108547848569458973186404897868215607264875658613447431993350637422379333888470344813300781833128951739274170980296653265085662869011193057822152010865410272761223758763200170865148139629353555584686241256351334970322974075622867393636948507313345323084429202893128378265449487198123906971999299040633730514374383234922213746723910543677153248180228290631742027100995375232584848714296280706798397473755401803325634790375420852283790472208161374245097014380567790676748686702706699230967563060937958458810479005999447329017259473875835557094653029531852513932281640256515060537572119023377345123939810575834105625117973030402638153384835982006591984834441564812566264349374267226855060125253919932161053493427451815468699605608740181890383239348061254266187390258788142042985526724374342182157459488154876548395555541066663388839213256047668139670743710609203749689625856654955377138224143559004486122097635482728394747287330173458014400963356913814526754065778746766289079397974057574699959545555525588703846073697526299777175566714533814530868594532480757405564562203997271644362691866263968708413241105637908092262557247409077131232605243576889944497347140629660090159840825595497141457928297831541751125545851694986629124293822601353503586248403904785074436802160561640142351823000582397847132676566879371442880019730493791681294209763152849819571763066502303385641869106995881840737162296929199301493527143983287294124826098053949546721176965048071652829292719533738405899706025411661755292123991240893035523135016071442310837696654598169426867023181840678593591261296706314883147662403559442091984127122396895540333650898265582328630031302402881909256949670876820478096324198924695811047760208302149863438296657367836818113397909274009394972472450903776521487123303610591746698252215112444393288267219122161222607726445962117299844414079280761444818973568315372783008386267655753365084651515595583428433993408731477273901183998054632880383476946315992621598599225011278471538798088623355787519050941727806667123260658519601434235545708258491436920523606172654116564443732996357717510995918596620755244472147696325374591429030024242469334196980219309365363880202564668280183830702835232193670197602359654675179438536290033082888880095058711409904802130784613337646513182750152900963667421074838064982887339830777790340452792405347394365487434037327830229680707648403347900363883143382305463024720797601111007827677562558317880378941606476005646697392078837892687638741649917993517293860102532255747320368936920273466775962465892189721536510606656301994588276331025441160577216352179215350316913068933443220933194066701857027729716209574579375939708405788476181976037114311521000164110458920648287881557092816846207076599569695565808571263640879324706230244764397886848781877417762269590134190711660194523009106084411217879489868761109777042866480692984844829396378318285215276900698821207511019031457262628094653334906484459310058470399671817263783765597710404602189391286609037614440707364495727190118044990832471170426167003608381918569326548799296837852004461248754973696732260024431927837922640710936377822441759254334591733485818539056408644127433585150526045632367132353334065205013260597021480991816673510504599727522996412945492276004110028709672473330059021994654916336052520066297239150291768070703085115454574287128188941024560078644194939686246085046645619804082787701755802834894399410226175718281295524643110380191227795705399283723643580588600137514787787858265531689530408493239537774707739673517453116618750324625543587805461305371917334270836444931452257369470725449722816845650978045474703184662693229310607583569342911163805367040958834986776733855219212321349157590383778656232985124244184335172396676275861374713257289706445327637042496775032432630983562169688106416615329291085818993274035560710329693449602389089285517882998510812143964726313081091716671013018295862024691194738570020742523044972197544227304453398327840733557142051866526788430176191389627156330256624482477796824808501731762622456631357462210419312785612340290087524067870639408116118617553669473267683963040523256383215275208022406900771446928706148950906317962105163542504273956615998326608112659662246423017510405337839133076352272077187505263510129469603901254468892646971456855016243858631470161894788569449095998891085109588285782776138127547765543942588928685368516474321497402031214641086657073427820063085406790988945614391979431307326176752439794027214724961339235721055280115058683347573055384976282601217317648571471507499707146986458975063847332611835551238597331650364845105213206626899710383501109143951740053104064773599095572930349404836614588526122879278629749240077735262596433251919644887758624728705858805560598589086583965557853061461387896640166268810245050790630830578494698362961870799780083548271730040323689540401825876216151714426954103235050003335477703061456166810560513047527765507114098775473633291327323052051933815931334303935117764894167360876101853536430615171502373692028139225404935554989250151182793782326261311568685584081832156068878951721686531669291849647848000522272010013001465985916515862544178916375246343553852621175443869954998513836046272788428822107835645690517485888393893525043553868822881390519189352480660687522489035646124048690124561550858861162625767837658873713177073077344967177042916117091942703286566619699039894919285718680923899447560786106645877098060081821484728868954833919481663734059489713817524936956694149077979054837339652287503553443436245296746434488655048053621079302185611134460769474775400253548838013204234634181717188863389534166240578160809562845174322962097313483448095100570887822520207359373437040208759563703233041750594047921658702913618088964334356461014797560901170653648819145710299844135770557362843282397890198547649366614987519098360306992575515012720778402432807755332723838347270637470360777951284613685723889830820465828854395516692307627918161781367567930391464413574515253886742432874792077225379398841505791094452117284638440547904151814335939794322639379661594244541077511374196053184548011188855459702203424681710826823639153900186392817439255356530539674306648192960370549396796470294415099704464624200114970674498982239356491690060680477219412785209272519887237135843300920321934420552617374127207397797054955617781758479926469657079782858827497319331329477624208573871975763105955919423154677750068869462841021912667523065444347203171415090906238717200955823257672461947044674425160051620762111912673624468921760543671046332433138615203752925234727688074354082635611573244600385812647626794732245775895880266212092066628251331973238685676780405298941407981997892928055049614882475386376559976851131130761269809611808167225809709267603301633074955815898360977177924720911197147741484465132205074439690919156112348353400899949030545886072409301606356533194263398320672730565718539303633556241913786705463917011927345157881230216088439222044982192172880248711887673406789633734429563659155094367802165295277645700948551085139132161105321649935440698876773940530125572598870718641798827689899543518439512318022715444996078959896825798669793021977555515323046151803816776175227933222996296543405023405694736038576982952465684308947665480491757510322863966825406254245942689068359478194949737708713194468290922395270332712462320221194929414276602246198139139804559232965898184258104258458632042818777673535889907771781325588089586071440896554296922892383409487884609259948755775020417825001236614918335807035283969876786746306521811387608406894651596789935885610147668569701846065739814096645776948870159528708568245302072620728344788843729617026845605217054475591597438761055815942555433986735679430466740074530593216370318412505413299682546479799282708136687457339474320100639727970138765497646010737285302230261972020404606107916019429238652588989738087949416263926087880487195407551534525619959767311713462726925795191656862734176227821629751564002184463730366109750911886022049885141368998577263389753820005648747945351253429449805984903907785338121499479964501469744647275900714405151529932429925434285959100042664162514473977004438189541828076857434639957174695172375758299461270078024870042779202923928526341606677712557198839020144501369149751760382992405843896623227167971188271639479445697220532633532247483117322630382258519001179610823031678341703282324890968479876206546586643493675171562070623610195402580191223953577206877934959508546148894814849744097273981208565996883970792180850150218925599771832576289604017825606308444179671408501412191395807978623103944144882158799362660032927559719952539305223681805105834399695114252759637822103415978031741666696626250433106899256410176005352127885601705984528215002676406197553383818404224355644552538425010934146458704902154419754192194889776315401735086073333262995396363150112803086046683301833429684856559310454052298787448207752846557392478557633032782491018732208315288704885788751603363974552894569754183190183594209748091096020663414038746636488371797467835704976778848216589322348786944234578934823609381963432335495508160491342530065978019938409687028926635537460750595344796464755155915057131233080273099546725896755905150933692712926474439594937668598386394464761453935988924391411504608059504154952328990544512628555904030364852216890281118946984606836875294013857926824166756075757256440875415183314216400080912184533284382876661563959036619264965954832073667564788254799131268782742436467916031961907663357595270177689223036416445352721371530171648837487648918206535251414700609727970900502540023580672714560954748743293369137091570270398343503694441050657479881679012314669159250069454079461535208224344950411028064358956312625532479356941028065438358745834033591147058856126639122807656794598664538139792334873082191225272272014884153407781011342125403659201333527033157871404261029083802743700386359024963570798160201404283848107733842580102526015140810814266509247095889603576053610315479147243420015918124449081559812869803672323008744844992217961624464244280222176720969344453586654888495999089317782923269928913520457100615881283632922759662022525363212688539766193483846491752656641077076497839219986257248775599909965321700874979069759905684037261932629024983436188122110963860239924336299369153540694406764866034960056628808154299703798065373718635511902756684843940936017364287282700988524624390082950118423906389465434441711688019597586954608005264301251818220529421790542291930880083497806356645417235368392101726365414997308675910852719053024048945135665536207529577538713615463766581196851933601403194423058912959592709442306391950050554795407476837272204879851765497343671280831746660411370003974283297550008640627588095628964752178666165126154490788934782250451010383893790878937193788679969992463006293593646878341550086663213933225376635538125089536832294706116983596205166485783200805022027538070734006103068173280330345053142405214049149255833008977019188351179196122490686848004493347778696975904396384295213054151599661251888831296521031734403328352428273769294858516627727667532498027558786028842709387463029788549111586262760151309302422739135350715142507002866231074775393557124718167347247379213616541030844518416829469032129353375451877708043036783596050248402718801580397928384195439077468883935395866196954470491673406622269228141080621587116971224326800022738897799193395119026407523546592134424000087598344165381854870372214778188291768266975902519642762206879252222509921858225803044023061406875588153477977167170228581212645094983133165828665967989407505298642646164748448739852012726635358571888169608222887451834140419732823197882362713380973962039252106251016770236742001234317485507691592858514125281689079450641867929630418500425965420236880623279010138937426047665743169207399767333806698240408006386369045079725064135010421482084265073346542879628018645998090902042130920422440306165021914548658571425321461806649405258279759535177460403108696314643470192255611328350308094579438622294037015835103467682701302473038890893426473969623550341172235588481021879788711851594211077039631875845432539209287296758527498160512108214585597889876281404491645125215005982575044825749768756591183727868342857339219030566995610118402366914729903432220327466594874452539816149434875644324079649817392727604314676431190183962375382022567628092074227593648164159397780200353067637876836751885224245146379095702871188050188332922923623006410456424152704569224520323979146725836139776635697320800094995424975223313420716364821543424620044269831465374143371936618726991233166555488238610785056645889139143829403413957866901320072722144347027742549480147044218665933390808085568770325198913042707259143564224172845416657033518868837131539106013397295297862814890459200935132629222709155571198861937842354274101047882166980426483258542717044074974860452540550258771525420326668439541304135529527191398767563296383212488016232628583009629330135068380599770562884213742841234140999729565709492295055583721236974744646826201211473352171258573629488657945460454692491910098514447552884108919517537150508513609773071195060533474338860567328440035441752148885610859328191964122434427362602701872800508639794094248579405972286873776120175090162118812002561567996838771194730522452256812430243368713368456684662863028101279547638295738573275881036384639498342809778509376879308010702484389400706799968856834134577606691016146225998966671248189154346543005180998861704036063134462984007839984759750548645196005167615531585097478879211509286416797874980216039260517000880232768872353151981911167838781898260573355185653378785007775417474341719618899746164282398428690146352245946702826847302626554192476646129151896781158322967849559101339269694009315945147456054314693554638068308935195212435507904735932116733940850640586763695142452141512185710660125815629339508902862337884786665460367719224227322180687975495561065636316966717577750292708068884069494603959930726220162126166587202191103618870599592677961934213760039279167896678644486617147448069333126610361581641265446477276302039244138104219255294088242676100459841198234617489886099488178940445488893542845646944340585435818816532033370431944514951755507352429777907856337697105464753840962787671291776350277825657920432201718888403374055718678715243348580293644968222141460096893457472159516618821605201890375208470045726802631281641411679807808189571820501555908785596435937958496467540773922197690068193726053323169078711545248805784607606482552274068345431250370741094023945069330966051332543151283288637119976607330972242678738055046601110661377976065976627326995062899466299994127154414537698088620623853746845269164580457507334745467509355810984269679250247570694197162486413057866176950893657136160714193689478187344352699238749213809893732983914198139217349674288668462872073501441898854383432604251427793618183038537253622202738021860090380220267154018936428867649851456881772811433893826537661017277982250514693408899443844695509733877250824749092429206160447915238713307142594359983669688882083383540407313352115973155317560395017055511191229150907534145394022986169716241484032076204952206706759389596404274096804533653475197130842073341618328975410209523396018594178396974639412040586932649942130344918888598425215856075997475224753472003449585063805069956577294350723557166405998212304535228125762679450081843188836534058079414034403537828912643792623030937822288473688485073854319707327339390147930786335688981527450343209033307545733386659743882587970622306350103593063907329096878198468351337995747252624024553545097984508484387612477397187120273845970355292129752940628922727340213220380046324094676497774000454436393403864279671261540304278090524159452545592230129086640946425428440245262151582578894467334135416366025427667479848239768145687964773948700726502218309268162647600001284213865413549245302800842721376018996192572328026666383071950729757272189359771003507848345874096982467333634501138023807941663451785390434785970974636890549578871867042338830883039506376881076064894283550202721870611477179477595874868350385007928979399282462143625174601354494700949603780629129135275731321791632431539595550989533333077728444723325233548750341810207488741912320237921057100503723177417663568839010094284913665881083849831317419157495728095674492191024423677051969253251477939567009718729086051261856276230293726380227080921021442583671948581212077154308384653974371820716681259659283797131087541748625053415866297995057299555453288549042780290942963148496412226285624659138070549403975162921872636526287565228436819766284483489277795528184613437018965561813893504594277527474700832018722114624732016756440381706502709469538821881038766482240088182416043902394026673040793495788912714130381122228508642484922312403839718197678470316098087820741232995082362878643706518002951144572152054276483949447018277082855414253138192392774669702745000751987972373234360205907605314068452578142887238105202143020114458186165311117472471583491860859875113031901731332219089522100267289876526542933791719681376927901948635448258008547434131071368861094391976935280777966033889224612978832649139638987837634935536612096032308330147767311126084130736815757775825417771975638827228767104526620442105224594780601745811126157677455502671977805750182945283112745241681094521687113254593529463700489364910441051651285689155391162262033893501135205785641643159458211523226957585196046110754707184848658376823063052504361701663251721838912226023782057074860101836357490417536148201297697023337612120897459266717367976483586884962512599473696866649448167496964241743106643902011831480330473587411091783202184065674024760627550439401946650686772231113249400675746293175378142711380073067659303835827798321936986803667951767544439791454083550459332762886131867318038735312727917834909114243485111101914604667009585325616024014978251591825548750817536968900671307081838864722852043696446835587751304456652629147551520357748803633750298997308237834894261029861626271313876259304228554700440277791022971324999920291512119830715615362856123002042047228817876158815281342312121158228626528253344342488387227070484860601047854952812482238764661434845858800518911116001480324458911951075378731619278054715086120157149379532350566176023817368825544514395998068536366309546407762848658551401472157765547506431958533354966401297990864908990833956008568003568173955281873832177793430732432759189855587879361042474406709094619308097599927491110949684777761046675949089309426732052562632199216992806199495329462134092037253164221925711733353788556005799201689097726255687239090608965277060359931402670518271294599087367963252190744111987435509967133901062073476531327021546098053733049145455203190801366159198549007399167124421726109414721688450106777121717090082200901512109049578691259414483013168844188177770755102842556814802483982326722206431980532206821157415995802145321982627370822827663369322294109857002512449426598565043520761063176694974725965956088462340620487163381671640973456022220296168067512885222243108975228221014177866041602406240189239476561278226578677420587373074844907995234600635255604893443295427654635404592940819544139285268228491297128809959682176523199749701862231588135030159022680729813094714324988430373314587931299550990565102571313690577571696274157982000856994825296222824957252088896717334475304628897647445046478965226543107293947757362950570100662668518841788834491811798232959384556433500250016473845978243041209902183276526595712202428129195298059228927727891952427834507365102352375857901399316175656173545507555688659442204785921754877007487006113534926286111998973471486534804343424764609572618122807663417229247756783374071554700575814405316028224880881095464779063327186988962899146160608321965259395773782621332346775326627277141427366417089765105922184390165408595476482545739155176096145208632647426560995748915470035613840684617114669018530621749688557033106862498009789637263894265910589580634319405370963235575219023028245211595909043157728138197463913238611329924253308446551909946328027185658767013582615537211595041086029337536064776519328847210109596875426480260534010304743707955301899929370236579721958663300444697721128903249080815201266337468737490770364251445762737499960093520898982597475415308014305470595690622467038628134711921677575564060783439150913625245831777795009243345645531036124731478822777094015380736124347593770804208453694471211534443508464523052513877475372932082151037263309955489123486917117401475559903992998469040442148839624635945146555833399081892349510632723741291640240368828460862282858548743037455098041925064904398888867974233461836820573556411852582815117519865796052443629034984254497466486962698818336302421287656231588544582712326161704762673562174719465548071816598611293433122131186615390772875962837438083528770683104577480439444630422726630114183659098513379700829652593270502172818305172393521368612578290748209822680286004678349529807667977155947687769939991394378593610287380455107584867837247816293003902530478096123814083210517109166864568241119661672068348766580828659494091726284764653344381747624789834816971445706307538050077785325331154327199329468161267643336162204510391235767407097731454146584008093488140912032666484476046187909823582510156037387788355663589248400860564062310330744616040069801592692754492467615256002489092558151500251553432099347571540381360081169719161376950374923206153869773358475671707928569064490340975761955809872583181238806446655646875671656974130342719481208801936639370156884950251476507534520857180300174300870531244945397014079054230173125397633718134917429155004440723494812047828318173770245011180963294849265255415226216904738598658174927525624083956490116379333354036097010415539342938921111631004413303183815040543398683936419830044179727658589168205313790299612986190258165525510203004725660744212449645846469108029071243958779094448464777247819244921564340002371192969304547060183104974458200411880957302508819410822656715003674716612863255403969950418705346548506197136379148491598187460479678160487417154266246461887456141825063644250090353432741298312525444598893721004257343587433222024430991220047687359549082996928685518711603726360157190177094138252693350762612553888827795575563122163526128374708209534073493521857845232940901640880781369447724763062154562810959641980513986577935082584610809395434466554279577795365809804646075620759011561737580268290994240111893520865358642783977698539074793125052415551060887959619206383572174512951707626628116937287674080792340779792670634104290024705885184011255432741545401311435430481145756090075511094147760378966341781277882967212091339702000318650695057459623122872000459059927956455178455868937226179330059060673665445675008385827123209623150130764070666879710732481805613320827214386890653815471783201351237227474833793088212914460721033238950066463261602593249180788598992795493064904340026205993452630263362119016469258277856968283275228617641050479348804900821015559880406089767961776875099506302915782994716446933570222329891385640941219754333170347427471655239389435411699209687119203418582709656786123840042219544729597100215038124161434950962324556813613470793305286192538634447006784029124034492933676612882412615147680401569030317229276279956856845836572709097515070710118014081058983775898800063270833151457126447933544514868096386998060092673565555760781996412306673352065355549412596379105797454023763134121668880810369384114219784527866077531273646166997404304313405116915233528269741312528031441609370491953404760946471526022163292255001258151485145582792216829118226078999788097655694855314581754968242655042288092105255826592213253125734423860899338535600083277748943376024345201759145719618067124104405935720406332715544199151961981560267054169058844370729721256841898445040086394596479507445894420162673009375100487533249132556971269123770694413554398636271388691961509228752871731892487571522294236662840988466459863913150056076137734207677905247462354191793705290492745215115903107818200895155113354268124419711967768666848354634288811478691226502246729606279923916976632200781088807814875828315404546609756105525646964937045997766473180620913169326260275866485045358019174743528560875883036686456248234855221857115376301651544474029938574645304110338178096186695328249403439738287053882599337510589946636828498181931915112325247428850599024044703121372366665904190052852270330454282202296485183279987298695220482116501721957448375984522096121382161282195558586411689455536648428181871665671782240927437424046550822840430517683943198421411167529568755183418393292775931077761486042513640596621182757184414705272439936031786602026940129718579566404498580481483874231226780977418581515676453172969862872934619077688856129591631982289037702283746143297250308635226366231971212366048515839140028633778247351052707148253788098660375352195190601980929090130606650914511687219413535857825848858484472752119029275747670211550736007994421498981837612611893097685981697813804586580828071956319063337376592433129310626207136084736097603309188995789075100568102368499589937748682379238585042911159950985788344320849465074571666210380847980366631726009550090781399743610015234444455770050807773525531737202994544411379554375452807177424572115650419766143823986227710396222507831039096068557066881786399754483450691353549468868175760902127828183561444337471718061204244740909837380172197438795455312027621514637323196896572460005316660928177889939872275317802505018863230368082649799713476034739105809180256073071963154076033080432358767401311092461036541012275101220081786786341862940683395204376743917974766744697943024722090784804189063819461189613358053846422839475809069098267133403649664899018916205040676614821599625995128729931630123270966885805036545774484601574983715949258137188127379703435308377392942140867970695872970534554620288298521354595810648382766641383021867522556815733005058868641895299756120964763388963798445018450725838522526946079444098170305446641765652077218170717651826028505502791066165087622588043858517689393091917303798375069440655441414981472845815980039757723174381959527915097783189256854041804954430276431104164906136466879149533228892168848077093066486455983035144435931303271169339707670100105920836019931487398919901593950901721109952832904034409619800056781436166691395075480665470108804694140296102509424041372695838348325284653012631796628475518800474797489223904466907293585826415214693827928446139703015593149858075003101569370208552408850081271985623542786042725683893718584568231632848965820743798115134066867575653526680278610729889347576155952343608720915933207374935971071998065628997226311327724752728820113384295739711827215478999009212953508435323405829961748185752328049431948739940162593056598687141641084665764489854386056435586060611926687051106645613456399263634018816808815578135077349045219093973410834734682833301797937640829552102351697734073998272908060849935063506483038169414024235211812008334567956052950483425061148083528873801215542704414160208350256241043395736477994712154026444406187853891336203891243704253057533877436678635807223471616750969887484857571718139901091667155125200800726621587693387817061241489140608877060117906974626307276860654222983360108831015699574796035992265758394028245017137344872151929045250656577595260154060570425055865071807318583016914742780775589686252897718982383484741018857309443237223505053922054128343275155895402579077434928215298190903084458530791227255967471079538098912387775621558369848098914467622412877496970829617262319412091942622487838008247606676312752427483956091293552225494211591427758588532370142587814904320818129346037953062445975425128166418146081885440055678778375690217722879210808206101224827001635568340308974688893240399787092623108806239531014711022470991359381778092569441540366760544935566855038231940738473097416503453661346422991203622980255370700896811918219594408742641197761941489484521219474710177393481948387323756187409385212651464132500956427692293514273281745388152021287341557322921205058615853617676867163206447560820630036655647368520974973551268074136959311805527502038795542525052526420634034404057997859923214443739222078140443748283860654144711950553257337183758735981285149008604687265753854623342672851923023187587597592704805279941285739320850670013355072402708300830398480267022174057538470738574329956114211256449842829060961609604995422084092421708276103398722667764273475397150744780832943731258415465225365818827169175551056545606551677891618001670418774824095303574848275385982649530895444978085440520949695770732745498721696746006945658443293322605512098788048590097580006402077058731665831989054838770231308787987509585996293622254069115722446068083942827051861309646674081795139091404859743016527841494046180577237948793765358653161463269116070991423885220286047621796137303427367728943827911168124826987276780200349939664450022609423686499384025695342012646923402581742643653885565752014098033039504356862614276967970129623709688455320155125998855393442267607489009215987053806555254349596397391900832483728498125165154712982054792098679855095245929688278620777125422833376244374999978759413827462375979573031285168990334226980222265594441582756886966795426096311084143259737239602026879140084184492755759190610627525253295726363423147539751214741407185988579314525593572610510814087356741672563277268304318095216836843867053376874191483699640330264464564152988139377964081782314038867734000063098957672985428042003215987873067565946946543338496907294651484504971152218588414586299858973796776736699244884935403078256485002125367105763746236358975758132781967945596788440108403048118033789965434620450737358979805406440194724971878802165105925639040029430433496319176016450515409502467357447732953059291104803637351733763308414603778306552746178718734244165559637231566955679537611600607850947611224018349812153051263634397692091579715030304823065728958109501253698496041890304634604660509298963183288000429190767865140683603247703836189059774853209504379781504345808308398664482904534952711076743312153115039709952980574814628531121674913059441439375940098659550559193041453015129809931602060509626704893101117836050629593294893000589855396465377326513585941751198123325002379594695714040033559742509408711601667273071209592404393435554528917618121468942071767835655672924642656715108910659249440393954417934259823637750915790752949822974054655789514518829502316044181405353600916960576878991081066477506908568219987349245714005835627822824715198644715141447992648437913962822108207183278011280863712493699816376750982131680804869087153389807370965592193575004659931801446473096818560618599967966946798805582259140165162399307591690873803636158672299027199441286001914900801530163664873257128302504753438095561768179381025818924349970526384476330867687611734788968550789649468799847209853448242877980567173715633254760253697390389855245283988561917679592850358854231567688382273618332026166481868931107178735880176333172130042859262162201720030334844353519877230774975064850462117578362906605692810974891362998346141480757210621201554511731746315896303382483482337507941686365644036839034853199414991100773466879655015614140336810508668932733375708229695961249020441373964760769754624623130687881569706714567117516009021945304908308056224049347894727531565688464923922755316557774524671624475600973457645578358984494719130821418160837345649635527105060332119634935952307218288010596183685843070582872392676041768991788597737862486689052284887109544835127270183177706982471502813205477157961798726225508775401143609540869389744390620926595312488420533389063247821905293234042513199012458987042671581411870345790349065121167359187132773014257740379473711629397984989240583682676971335142927267822991556476383154883140737349052013622453675435490073663678978706095626433687561616808910627478013327680726235442113344540615982475481763254698019858591950850995075277662282642456378868216181855529405310569324187280557421639187886294546947185135693629134880645595047976699387394539964588904193636728671992985125159267631523601127994173697365336409266073932326430534074984616517763798219892349925819270133520509535154695437476317496337486379085306635345342540324241739580320941243368147643736470426468246141511746459249706131731341465526082434148966339731346297749337287918154861807290625252269721151879427611042847039685362696244538195314786683367019490006889618203557627805657873391785304239856489725468909557976256652703963732716721454602830463530997297074781204992004678278794542117691004155910511342944302668097578786555604711237122183605081046752125152796128888309395546146566837946743160947943392765349597357211694309181869120118927868592260133010546256591311558253640471282309373206584891297538836309000976476545386992965080453686946124408680399974895884975944333462618367148772931125056775456347179464945319296723145048403618671914704434208993661837221772198514840619928587207000644329402082701617752528717034692349420779483930293459370263937293759767923956266337497772217458700506717657144360991097840192649999724733158882291247098747209384369187184467353267437374669304640567311911110564319887766697753194764867465034615278789071862320256989436949692455294416720304809684210852558933550395887365260958940420819459052592663015260909738720444536300495647953771996622172748307083904204532001515104786464365389635157350928212358917955866833522539915360226616497067749344370922904014049766097836375964880263075470280229239276093384072489822661622196145684128142780200875763665389562903552228882666402407192774275799189496060654025871252657557909896541202681830696388892743743969915138021646957344117327898005238273314634008040741045204396794202507759982083819247223129708803235494858822449334017516913996878915816220776118078128329530957713408624788341258516460537430369785231973627713214219346366307141511685912418579593577184862974888103262919586104459764655294053238246725104330269978703969628834196559127115809519996578898967044697432978637719363387893401211879326924214206335613027228741084116708352934138801935230604234710549245639163138131694178992146841046771542634229858104006869255530089580424290969505038809711616644035797235198364525430183202682334328182478105638730269204765357111280113248378636090636507791615679073151515750554191801355529004888356784962354539978784617320667069004205397130684142976658380963244779326610220765661200770470092594067624512418463970151139821731150464068114698011887595023950319495197973021438097558822602534701940419108110899895027881084508382695888249663087732635141091536438438889100397170141975075717741131175155734449839279980316404556428147177070628191924305062976733157925160780642395669844297974367705270948942807718543820468774387268978769156081782209444320956685346697305323272591158451972380536737112229619132513218426349625422310563234569079421598395249735675465984380767789456270055865915896333135343200841097501380629662910957959244780140157811892866250977643710551254682082469662574719639922690511595169594944079148598341453291984548620941203653112394151307781695057794227873280156723537586999700340464510608927523674534582409651367176757018486390565071384127930548604718812011343977048796304921982548964573263700133219543893613567197588749800091339049186679298023453866930868684440041620222478541874272404766389101001691403994786794627017560268625697692862055287086594714334723046348145984756536785067213441082647593552382781495280049366279885131855936498920793676256546337654027171967174086953380294694990771754369759765074204399053897235975521877003337514676496687117721113463381543746225798262512938700147752387668786241704859032706643986031695003883062350231489314835969642016433892810226842396894811731827497557224047716421319102774110392754952438723528960282176476792298792693525772278004512297967141576252275717747724872063275855305258381410404241692025897784433407190111726540196786986523757963954052696493017876301283380554713363734631168986496589810473075193551097353191925732966889495969171226097998583689132320197307095414599749183968732994172356464839959536795436167069228230179959862485405392587796381245027301817079696338472429219776044199524631234139079360533362482700485212423142943113055358112148084864678394775671895372485182429564491115389490240269589509980389918436516214521264983797132784156404828024008230856087728657390154017255926290000649274422653892606731119492608632884978123020639656218432977557715012029837283591632397933093805599488457461165808392507910354180620542376322859585932770465026220944503904531756417008049219061805006583104699910707219266044105498391024552334204018987045939305811898405023108015947427174179865090070083102433539494558718813909063117591945133747928448465231101683852639296613620477865336554114696563871291549959880528587450715843758725802927504601485729651575314801968460849880729270011474175292266951068144224508380826798054719570764262655051740745438959629035096850630971434595730960102944375445423747614677031263808578222091426895158687212691452879139896786733257560659956809919281753119009236121221959618027019769616814860822393720349395520505289020169724425981177609727714630641551181264756515609730607962830335194430939155174627984926146982432489484601905538471513516878594749361429942564831562753940639347349487446003519167546909078491005387185644145320948411932796541779575533737733917575221103567126828186026979799620895099384555840637295390862675110186918211046781990137187758192676957681302663859446475362679382407559996407882136673621617917116479985251337781299797247861439931385943786863138701297756627782463601600512114022903298132030780944445358636489771810029904538971279156377185456456922601799657598809664668031906854753030064873452562930432761123161559678969055438512025322919677045592040490759128363879392172644659720753572471087287444958470932360002653821273922277038573825114986214152602678412601156382857618151013919257290013547717138376033558398289828998921826196831034596832010664603789906686144673593683906077519851932307258766801772982229268394618902808331706250858942899631489480848993206633121782232594150630272309834933273665073561026837989511447452509242583365085273653110805030801454424322671633152632905460743603252313989380664230087644902606037746800404663203918650424040105266517111640184474364172829789110685797822582324964706097480569945410233159209239902221606291791184678806123607404548981100127493801369953600023937410102576749400873984711512292879513713940292140590381481821385587081098798482040657118826262247714283073996937617394526041259872861796858518969288738849865807253893926853749389407650151774312988169818435398904426645606502818395078156330155880229452653562688778094754188301975564393689115338301619094822910273327382458744726338028397307711102809648690628467401679280966795496130471051792775554074643059419868674343414694492030579475297411958745524629409522830024543185548029223701896237501830989626266582616302331377532780682977114008104211761427419930971763155629784699562431332295325900420508061411887173522640552899680880897404913147097149225843867200561721628310896756263507704741098672742298338410200622941838985053209610779012467284539392076408531338473209676282999252007225898027213991666334001992701372023638063773761561951582196400096612445808788657653777069261527017908249055883075166340830387259122930254267216142173966212006982178218232737561723433968845038340798104113602663872717328604765316415036161756049120780336357419186207760811975587526449346050503302014958374594645836189318956648150547357616657527664328004372100137441158100049019732400559700742248118679103392926485803620897574051638862864161095879446388530160214829247988454465274730926518479460319030823044915532542511766317964924694651513361418028065816816083435666365503448901444707906929781508736274743077200022438492688359567572126454570131661377923758045383737176777207147338814813213329684493765669028689196272426999384752423861158420443505873513580491171555872922144815525430599795404977703864884604459284178662421186281065032109587882927356439742894073657371267837501371452193076467212786030014193870706466408960828495482353861486660324538030055647890154922988007563981652335485356988676027723799918498822643813229936757278219562085248357130404883398003191440512984926815177184338633908215803388018260802669052743690764354602559257213356879894559866276028969132093192016416012366732489691115098306933647348280751925833114080766312115377346173150315537733110747733586295196125657329698702530139296302996059126164916845239728920627117859579438485311319204345726820698846403388282123239659510165237992516181360345068712896747683612775293097640141801807436332852271928117843624330261534804680869903362230988818041780256239847272081855069861448351760466980430641285164779943381297586578875371926630874396279953848728920589605508127182343347945811463189641004259647770692142402670932487090091079328455478829373611074219225430877703469285857661572562875428156701795091173648001830660149052977403586446257751911938830234990555298443723062943531204493520643056601091128752173891042099738741926040473679469464030377271297333703024161021486359518953145770074605484902182612661454120968830472412327029389033745209970854637278695021703594778854144261111492829451684249783363591485270801600479781310941794239607514169698077655813058957964613728164001750788337114587160760132168929855766259921911553579581273481945717800495000591907583947786896710035607750336214502930795474835871987345106087495846461501912312761343456342901186838438836974516323993026375511323257365736447153793470040872706740341216058355832620678876218593713107507887916233101601216479146905610191508757636923070101214866973699845946666152441359010670456189256707221914391550052783743746419115634715229531632554570676260003928630409593206691508651407532194213618028066034989912621938888558488167899525487735860887520522169332147404254558314026401100098422860786405259598070024003910724686738174906835161506616610601528165815923046235262118106976971787187686513856511838681609730637010588867448236965246598393336130911514415395708629398063434193445788480310585190197292234121029708281916255930796582189244450692330111929598238515871983101510105963266763173127621483359452759937934090318534849498647381975888511289640497114010506034730466874400881976526616056273299899964089498931834058398925802210787128993838685244655441097338180495911098075632157731134206537997452076902278095357954712035313574354908043865702093585777612264192073025139649397050001138011324057572791438130647887129852986321671700545306917943656945491334203811248417197632485235607241645120499898513003207685747215352937468688405887807120039109812085232862550809789262341248626867417725420936897527761955373119463878426479350691876092774496893679919244477540089396543429626112444089470743689979538292078336757748919817454892640515285752045449943075759591625797985187490195798268607755799606782155590212699855347174977086688894317043575853062760993580891553392846870272170633830005188363503859828115383432947707282545587553139174992838702911015350249048630324803000783298789911668070575805960538527347250485467581236730563814564201589245439982072158055023267781741426912546887270089887762830310454276404747737051600624647888020090839143645580882107889751137317251902468334512697660528332520352661166313407424751669144623375392822354630105373550825722164695819210218798303357003135258529827727121874893695982577353610808369868324409741066255999053502047830041139583499869798894954109856194391960215574314957464464745783999011909697074211859799930938447444265443934359792745952239829698626463384084133771380033810355183232412257418629209594519090571521861232679874021296747137230197697308446677456113781039828499440703333287476735439792107472766990610874268418148185797708809231624177098400303914461144453888742775491204284529142098779450772043913609173806434167700045712962584806359607498498225463987689706840935681807802310316357718570984718350749495704430242356431158684678006662892706126053999545695525459530461304891025843543820644377038971522889689862451165642023934904677535450696546284197956374100142155031794160146052821652640141901594468088681296398808639608371691474301329319036755829078888878528060161872049060194399435091648087093699388589261617304373036903140848752645595203403969497666235245620392917792991392134780070036253617904863298484865060790602407742169260706143058106722352740042327746211941823855394914814858088132497389283173638285914913555348960747415567273827252107490296808993333039384920126910047651794559666680040996192246278239296329599447825776775839088792150669364568605824926941261400006482771337075709473189024510270032243474053652091277223463876546830137872072937784954115471011692391679597817946973836922892645541256891370383994999948358715962284682012336912404468692591011364544063019267030551267927017462274268794886812054283236872826724902396292667561895673409217977183541500234170230135967123136533647914082989644808287851461638126178508286204524932159686007599394119594644400798972424606979576150425375097434019179473236301418329781632714885477715329438945840612034413470758024586629408859973251472560673250343603553699393681749339540877576940166016130521739585058563805044666636462540833982942337720356263322160969911008580442264945481920265780230601243542874929868411543061826404859739659241397255045637508649263981219994112369462429767768606861638022883098911051826167198430106565567779957973178010650402590897801855964312575403160205990721724750717864405992094449774825029587864821168673038311899053466971578359793703393380243658540659727582680864983799933501791815043305998439395710851496118400834266048306061407458274128159768748567306549982821258769362251722148604115321874470863273537702687507047325827798655932090151017135994745130839706397083341452677407053724716064741533795008100920343503668228466001195191449516634030644994917470566348746158728369275721511325991830046334510173597837859403050581511658828764435859635950731058822577015311747854383034171910042707995473180413759098983031579927414808680018522517360149409931093246288392007953419557859802706384462670377380558534893935247213634382973275562437912632451100942740542226707831489552614059416444447316729972979166379239192289753065987452863769990468686397329999381487973442100771190371664338203448954199000028091243207101005278517461569091598745460450020851160229613626506549868623206820831519622156231959103037440615623341944797141116497942964882629641106723591047509378191666118833801817224477942646847688757683196469535180787559287518929798822747272666543863065510796978588840890259166646883993575501819973161842665699989990514479359994095351367967343088601164369601850176452742566921524158790517039158217150406392160495114044710686715722849084486535698194590361194530568280532399765389861195499210517923877536445604420288243502250739015079666497022790365851043825336415176356871997386998039002279324913726990418812987302974544090682084143836018544887918127325177236120769642250206908040191676737783486050522526645829288666877957989765557554366514380620818374958205948542935539315916760855345797552703995206622954162491852322271053525620639025503693005373432818069154184390715073929019549316872939960371865750899053750186294073540831319698837803042349697838490688508423141502210450218021254477556434473977034402314712955324931476603573646611279081636100132626845769103807260387947101520872565728615504208683770018739280167125268406836735195301476963250699580385870137843209681659080719680862294140239759379954602935498888539523538982934280627427444964710782036815648995812508663116600850942551307914622007273758515431253582953796556914453440429859099951480339352249850988581318287844410548784613592584391133063607860124399016432195764042997031875226408364224690588052884826382704553886174204866485186814489829295807156263179181374089925515409806951331583373384609370090247230601156304645661228173733808359890498750528321337193440747406469589142540741026155227851241334011981805754411072256413269034941703984410839018963520697542848033678136125944946276339416000355261118171329446349558397133258914169382518025094586236279814773240622636995889937822384720543754768344332744660351875702694727366660221488177690482553831572294643720310609021655825790112377370096718309609925779662713581797305347718160452904654804281273252764190437487737924670789583791657773269413161108217054339478933018405043159520074153036365449104458819830299905824801956549000610131068945843630176458278830838311953149792395984706028033089329949556718324515820902136750975894195458105126227189811627995565638664588857683390858751025248445554477885698555745112129209630523872706039113773624237140413260651857412507103598924995247467928074578617105909310077568517299397870349272428918841850236251291340705900253677574613813330341954197878011582972066271287922069236419448994585433594305201639308606200481848520233497751867669663463364640123752875230510351800170216026823350864472492517132556470447453882000830385535057061757989312813064626614906016690184761049349640549294472651366830563382718769064529713095513082493417871583460734820131585091457736368357737501184069260722349186553599382645436617905946896383893090795570945140316829741055351058545552040837043261230258087877124077060646014597982152977123707726568197176593906708259465798333515402238141978807910877304804807244900206322285422210598566962577751651918723337732636805338552162694339730468105927754715122299859474873893537772693438580505354086117797591866716029709756131170210428691695946653465883984158421889404542174961654228493392799197796353497283895513424857920093982638087469672893455493033055855749979989135545087326958884606632485273595591169971706187021089233334656500873398871816221085570049161267861509603177092892463694726562805640482418728442210741023588082130085406645280129306094080946289306177401321022526427582127138947874911195818664884319370724898228851926237688549829772614092220450745241634214516761538249540212559294999689027979520532455782175050310230371214733024847773673568433848035290961397195044771490827695362341730056188330020642383348196246514217875408950469717544030791880468571288815102611735081332298362955930923455884038141260628054665537500290150835865314486088683673639234970547924214487081386722012792361982366000957915755214995063900091757479152259842912513219061133509348671251927807214493946768373104692124669727751133101260117949437574551352163839818661980854868421872414143886416711682727144480448878124995621372210620859742033376177198732779797422869209707488847024857524536020730790355631562105004602121336685102292532156084825758063688928728570773622132242469924458922365641778433034843764165891028479355358605639002188085684992872668065387683219457569019005755903154413034457446028163439223531081503447622580307230037500225818723589533272625425112753700396185746160362619420296632392513509892321810709165373560168589611263018647697424441219742215540984860429893993779626039040131165565269215325537352770672798162528857958539470300653584837025973428264549682728541662446586125188240144902629707944680840609503705138539641349176086284789867872393133702516112042147268279285082970673923924218797075661167835487664679639210764271824356756010470898628019207987152268046508688770394240484253097656395470874153194649358213092380245550155347477973259530966297477253806290345126831973421463412224561770518974357682490664849921293146723688596097969864223809418871238236130054175224092554695544500106742426169567317235421556579927290348184016598687760298643338916088400488704399163787524716852599453765212276393619456383782162282245034472879490210250168444106323697625832920815306887714112435253754258517860864360799600464600970669542034664356678580069477733808590937755440789608598428091560250090086150550364013553512368270711323093278160984645267211971396634506180222992903937346795113525253972597134093252489850323558785933005951973313807198979345673397666565847002397395186535817984560750950358576070097867197725236259573424839758396889742228128032866533668468922235104523324522494381913930230329476877846171014050951260124146331957730721173630400043136973830294512240185930461991517341032789541533490139177661723993246230856969750820226239161532519550224202447111367160387669569433109453075493517980687041133267780576862364427091925491335336386936398188379003877016488619251317341555587934366238051286438643714508790625476124379951497318910271371793303836709630448033808013951218783051965313463083279451439634810516740303232419595160449942691402538816164119671125220812421513437764765167136407888291500009558437018540203511284463856971906410152693378104708226598301826898594905272849929317214769523857772149880316025587245959898268321304522505180882313444927902877152652376821514353993707038079956077468622525221504627156209661267903455895483786080355116383017220727513055795458525914046080508605841731763270643677382845717053959431684685152810760777383424740787280310764046091564845566581353697850278671277060344471444109886602994795360047655951797171619148176418544637000893748365629361675714771153093162639460168244111066862688925487045785406149905691203751990829374741409216251151735349221532183221825233888582262707103455305671681238190845643037530190321232052289435828937153076061334958213329819914706079756896068507961687648716698396112519432626773725708642829083833062341104535578355933185037039745858560983102441273190552894850455746652263652894042109873137861470822279069203175943591678458216325180867691780838112884955588969443054798734013965046455299567705311502250736394376507453903619598651962746355277574267433764791167160588559695987885356121414092972417559834762222541281016011999633403719214177837329618364778889017991962217483332110661075053364070370250834128249793650312710726596241199420592812780245031217059964872364481996867792735765029923581198519414938870658491151739601437533300642426925653204852193782736880812562226072402097294763375472766938022944113885107308437767124457125664391277358815371487493079462765214298403200653580435792239456037429356256877897729323592618744768264768349316829110890618002626555878171022812239510403067828298757519281774080585982557974647376544728975518756005753637957215668455632619505677554112287333884311835088522112589187168532470621836896951382865682965571112307113220066266417076915024043252078888385909324697208216321683991305939705763586421242207831555629633535905938224171388434800707261291974397149339976411471212861034600436859625772204921608995456506321670498205199969623778496326623153654976889820355106056138110408400008206363527185860914719132090037527970566192781777622335138323698140059213776555969775520108220431836788630011754608758439898787448118936003597199293758071695014904439999127443754290991941454161272945386163355027355908749187571699267573353135245922576872807785670253728754606117977129816645354490920238907381704000202909914747235387523904518506733388960485544796411319402347119003905899593190926137654590499982597378051755293154147333595741583286525782382532084980623485829407905230428054333724505152155544419381078165435327811233478034829919811564122009089496979189530053995859780259358070290326761275641436035011905353715466742792692179805441421088508603035678899825716514754592735336830441314125639214391009838650925200273250212370145880073567860651651881409193354543320576394141845503499952183789462574775902049775640412387158471347946492529905131247207366881367874772143145491118387299451640889795974608185628651250482531419760332817102135217827871894599903631218090599929617191465179751671342421256304666852058534657909661219806050053635980505761534738758284766476710941815866531825079913675374262594426250696784174295026317357574940276616775406804029009797544439054637560420590567209318001723174212640803513040609770542508349251270501283107678070007674064858837490858508902913029649886781752000438112997419957528891591112115218679990935758621230098215368251574221617669817068639589534421694342730979928957416178271232412698143518722146772373676986864454347535147714664143232119247851798243411072505399377214253820305352308761967928718800752487970654017773461960381237109016156448769295492838904934087369398962240496650773143720338817315998811526105826711476490152126317314168589789188512543030164637925994916982909259929202630830060092686565527918171108584202250789874763999764128491958696362400815447619944387961094333881857222827686326268671106937987489712775636747634333372460253456034890217692835604549684894741817619144387686555225821962853297293197570233228835586162394016861278688290790972868944228007396333982888520620673339262970392291410336087378779321986707427410777086165245746587109067804665397052088377252528923351617369005704067374334214974927238944563790748131509374927190799454596890393403425218914714599154460160877572307481822722293019717096602922270448574541706225106870904984081594949564382492381684613456465666997470051279745167839592462164985840847414703727883953139366650571435109352403096170941593343550814601042540916849119669385975541171982363247993763971292557737309377867123782756750917535465234504314954520842950058528790258510165115659638074905725510309082923276235822115522716065528659673107483272829547568607996253266579568192502037965661453220127468679128024610064469409635370057142231975977812027402212907248643447636766442894049871273178146234555805941739387575252108535879624698088142990813157444827430473401100410075280412614906201309427270323159828605576977779646932221675632400640833738125909578450705453446081709067035435455138577379401769494004795573466201033091379437803398462776355036452115852048611590513486035163419589305972627849955131901035236428968910288452834256255899600992325636548106090282875259642795224499207976269747514728607121686834105042227868502051894543683582773536982705369719740631598087035799262548001158066705512457810708895968115260467152963983943183470450918529307141364051029234539488121836152974086641799207452255267245020211941274322576313556375792422957767587030078963645179662421929554287128630746943301682447586427953434726830362452103689889380512114353907929152030311850081879068113822927161087989250480074066857928943251184703624681852771261815216918086977246215334482646134776346743657586974885866286483450816416568032502611721297824081100639083874080360884626455551771543462415991930791713936241826529840546095195130927343202197021172563664598584959934461957318846828191434983721357079570063053847957001194284061917690711437833834080749541179598312862335801404171776942262108582265496993996013148976398136921473621340194716366845697747934173810007198633045136964941627970306019210188558247302345763589220387531166879365215678901621957542075480432240494523908905371135602288736326293351088439975269478968327000383724535538549516665881917755608236734936669610974549714748080740822883332930354712795753879697914397824058134114984184178718181512725530367211625181534680362236398236778770465277637850255032165872440147636427558678874443628003586538513157824053605714019225685943923603500832504222119262248277326485731178898712776780970145889853164784065275577168759029633879304984054637012596600126818739797972312820385517042599964400631008734126075871882832840195223166409649228560916303081851199807555806820040573757030602281883697134310343734674398999234247756536282075487281585586687322358560349999179238877673394356039585282473019705687248456487700688497962204226846470496470747723953605187577308957814156265318887769740907224932861630574622152385689241796959024419498370240621628483110714136749078179670284795217180605758002434967640805225481398679198014210832250443554080406608077192887501807636554800041858904391040167367181809505531508120560906855288908606039168801842239581091690112972932821246453014690475008947103366603566410608913494461732096669958028184070737963226430056062744469979815534111347268233089555997020533635631012064400084660444552525255531894754577196357590592097973581262342006205220086542703159806399257042802480737987287108610546132638729358046292708310701712583363591623280085376071737768408920270912770767845220565917380101552925002495729009280462214740620523462534160350864480755228221427440458467883357582487092163010536568280434647047725332567201504284881055902756808140660602828286427954192958826454704988033854230577412093678970474065157082882955410849445492740778805582733963366822658158331532772021356294749600026523339244202364664401592411090637607410907029797814252549100811635249061876579665236449610232110678378405632257897015049575959903021260506434126361240207724588737261009887073679589755901203891458147767588618292861233847939426565470704216950250835688984105281152389192040488864847927900605209562662514035003948093574583367159423562817083711251633698942316481469119593754455119923255526368829795254515292567500141484626886541940679046591687551681665262529948676251764636459870724298747769067402344169534451587430776934859307603043231611850478405220035318379682877477761895340594191991433119702774155958175551450013575230255878844351049785105925611202620278838369497804911261759408152807845604264136883594797746195459037352127493590435663861415586816377279915837212053489536932790635583345714845958596451073759395836961524207595878717352902204132259962083302013465866650524240459893431096555328089309865654953979930049869265902478992267110591430566262754666229472620775442521529929202754405267203953458015637240067121090619739678573136394533612723970272853426666079210703462235397463147255853654493111168076367495923908075123766483993090765542598261170287125171432750559801904348445798655207826874400213671943799177110193762708109481303128599840570358994856899927768266579785240094739684837581692423481793430170647203955097243276809109533178219797404487627248597471810617721653366985005003755640897285798956592439380100232935640915515557081183048321683623115597188842190586098316776647124573767049059846495383692797105866753717295601189372931217140979200193222520631938018135761884082485648739819506098347826394629810383130448134215819057185648904481344983872265843965279948064399636565646777548621267278182137642717442037479426579293162869831412090882653563953670254809053678197320532902536462524731459462215160334228542972003622098444327974851068510047485886965451069777530548665358554971147205077040510750386374632626939015522971805550114474240763251019984219545914792120926201462982549146386166317152764116307238677439988997559946853666077471246952909546020662848856688400730051173273885768879274233731303877697623533994528468218214172601310059201457256115926799306067367535745159624212676970672783125158188166424533207243481326555840680365522903028401032585801753400811759740624058656713060897780023663746092375035270101140364468344236395228690557547666200364124192082370664102655361546369671703063296254531835651367184649053805326242880561973783837289696458013401723881976469032243413109966257730102365830195375081701887049298985737238344786991478906710706745047701875538761806294259475868685121476065216706850032935681878580191922748193979882340179663433268845167868781730582285205772317205118005271895331996276669874799568893779531750267354007859396940472175304029327127271111855730397288194887195910480975584289171356977593115870799287542505448718646963069907248385251239770075003679528204421840585113813192549181710912122630237285502444745928079491211492687887199087472493200982275555219945626474227371513740321663005928774211885838707016056064350670000048060529820537003276728779913039476461871940872762522748856807802297201823186691733801635626103739822330038732106436540909053283658551573928752949737159188919380483797092134955533128930832747478373517920460139982874312749501680538311308506614467481924792044248613136740621045014975759404740382832880284198882978642416852114032098839772631128183666448824347860382025369450660355734833812693738175063066789778110873337388632264839881542182345018056905811512023463485860532732515494239960196692302695152018008514355128330692637286804364533607436504971905610722941821811517391340973407470811600806923542805146224149811334950450100397246420880644455818002962403758661052984509344191313125209767618524632379814816140950940510244822277413715181389333298313943404702577573133842203128056524249783289662765693561335518466617412335518184599267133391218802882005862540225871961722616010225714672353811942849942879773997031321438109586016968429387723121847444512358850573244566009754938581893197757813863634994010263286825562968386001125692977550375425520699823755277238957300456750677946827897056515202765609704977671077397376567539814686373719659197375055613594974775753478476402433272732676044026979183599228671507473611029013156048196649996707144928510197123793276823672895563491568412874520778815112857977808832617727209679129538308277019954398465925347151223759692032450577338507437447123248211650384850464162739850843132042132457579993977080934528139850310640161638810319179514137098611875152307007208378937008068162335371900820147552688815116828874301281959878754568145619207444191816732180571800392475291439691388372610121150257515366817147244447100094036395277629281661685398380918039382436051624044583738970911388183081904850425396532171798993142462877202212081302837636873091310686639111196085883761415035130814873823937344266397719398645254595296060080729064633653844746392517391651085365393109758661237939389070638615886825538221986490167921888200613185650376929555235810520419892061312559159371384619549876992692531774054672373908126151468035668829788727616647129291287011290353096166307497314924624951882897934001465416667113475604214103161032715214237550367077284962497409027837990836888271855557787784762933391244977135719160123243027623726905912189577710222391919393804909719848502150461147864391570458178872811888173214626772379329025994380663654057225325575348156736735847785934274138793928295363380275154003024211376732176529691838948656806235938704533437681622986618760089261043131629126681256602422284518329316218853053171176774748821712491461203421339555295360737684029604569735350491150847877594710043011323049970526347697920421350274732243273841823257477913635505090746288283180302368401088553656241316071638924588188670340364787451137193611981574385889617491295291158462999186325900264408558400421684558346295016791155619452893873284629488347878650379919633568547124514211684833526599667020130482584737759248810051486464570909108711281910061342496178881379910601295598437210698729266144765019182304642597482064642325502031894827694667757031678402318436934657249253068146252095402338530878936053857829531298171817788755969278745467173691534793022640805313644835755194705208648699392899525512023645149938693920324960319796182225655937314232776396158528431502378072841423265095649037636484161940010653640153766715809332180586945674306924909411190280367593523393672100810294465736388704158116235194601622895397892834427526623849395382889509722546254377096325319766321703789048456616345440904114883339137935194312097253837327581676215534512164099264983089810883696603175305390047840432463691363255381634584527488241536404112520994506862644127610078449028442636135023904299230748793650447042636118382008570700260266629185940216628607066902375839027948148162164839129928514252341454702102850746983148565844751804280842608749165738829840339521099031641433641627699538124802605932395143358449293985416711163809166156748757869359046670025684032913429185565426347749372809647822648695020195717550829621176526671527317086613956161569200092814282081689979733093038022738100866144483511523760392310311951920801535663041085337526892751635505360292889297333347492860827096528936913912728298864160384058197947551934993871497595607661152253079071081307852173913258300934259497654288928470934561302414550783535840062114847530348309365392818017285244316729596249500769533666985261322887751288523898851188238695869517509795710968716398884775229604868197197748657007911126776737026682578100416136597260998890401056403278751961953372508617349163638923011554019730163757652520758395144750525145268796837617319692732199202117011177700325647309023209711602399880505933305002766367394543830712796927978295120926355000689489204262873748896752582532938439574501395158280134307753759599262760965335736555021580655911514455979544576994217329950249248425998657334464610169038996768347094533124488867738945279203601898758159566477679856800253642696633116893721842838434984812305089003675638238029686830782868778825251010177573499765738899113555763365326615940107841053667341189919359517601976278439953129946380628942758282510221918723003651343810724710595556991010522546664818123357339809622228158487275215940719056566337415867870960092416592452529108123560991956758379410855790453015392411773903490672931512994014388629091439085744634075902328866379382580955871759939080636169422346958626405190625816377638696623855416236260257464314446572167014716572229131958444446618588589893692599064628273264600837213448849648890640926098555885250094686088864895409010467670792695235874018633422856481583122702934141723301088095322222030013570974577148441911009946291257259460152670658090934543445843778071494361711763081731726520641512145370296859784816963448385133653924546626004637684835850679912280976514404821063527136907726210928011412764526027709742144066481752998629822881246470368309719107776172015711773482454111240003010204901881835293780060545281063576213545800459882726518554033497879365194600460951744570265434490537120123135566663209515573791295021311550281991656451093118420420358366337770290046928441095554256668094235323146378783227798124332835907373297221994601638076124623265190669115424020289585821195991961689085332218756695258898795379268336465385229199882502055190376643726139112688916442075816501254820015087063055916390923739833386078521461856816196250181747648173673554018321716181097238292806260863543518273676466332952866514647114755753118195747949088727829790672809949194929216693749341287733346404672764586605553319981656921526931022604194365496066070408712419953087276226467622017519216204932810298787822189983542694964901469840040102614666636439195163040850412119642710274773390843009635230120891478146414780908418101571767098017768714601492490602710349135925205451521011441175260646145578481074106795302146090839732075913718538660797733993271631525494603219176008048278599417029129447854710532488450820148056660889548222056577925607833729639117188444948641411612337504143737478033044081141068469707389333426359944263544903555282674791533324263727563809329084411866186378776836032513909609309876850713332973736692251188710584584553507726776236249714504160284476868401651435674278891743366409674311057309303246043588269881035071363129859606544766247546879407961454295887109705564485007219942074522858575965555818573810538455751655056414484951886564260309366293413945800389223191371007057464832350741340333481568277474315117602219808077986050390216690039116640143128102557477081380224195048758659965660911294197274793873271498415915764668315148950636419379577499175499642770160494806738602075898393083673767677215279558709802749369369457300871950123101673095908879825383283393161963967136466306134963414637161897942461377336618504926763053990329801585155182279468304514029088189525670485979883132171229741943065333131890215506395107698326381757120767763657844250360963477321237179376453058691519829426154625379882073279907719898737613401533956453683406075619086633761206220166859526782557244961795572652974811264950840918790693711798325854938515713238559462419326594683533757619357357928473847663383804757358766400468569552972847401884545541668429754065631318311986747599307281852914785352206155304064068266670981527052833772985076904434541600775624972628365575501530532257132808041517252304750245074889160250499366628157290578875792889808466452071802029139744097797057822295162155430213413876455870438894652432723172729890766459666474543712307090062110886923479917715062026424212255699225706526081286235891619090380894789066328223988178795295357593968728609381091575797820306643433510089533850072752029178957346665174844847374212754887537701189886966553729654641988089138652930399723985737271105719429503318809295260710219250407995949818215578005780155695231337192269079989919430720314904364255225207578781304477046244762388239208911832028565878139631264132014362631231120875066158426330720936860251146594541077424214563451043124821697064510189144028444156099657046354027643767079482336636803255320951010664145543394596020618625660842896677565227847061298719052029982725405794091259818956824944850555952381774810241547895169572690794562897405159419911664896105277419250735991483647815737919195435085923215205703165895037656444496556203480942862345797689137079103797971338481481272394408991039814760794513698829030536059406549789767854141123457090775051993404430787096616724070680410752502182477890331270679853292414470583719069141471387770590240046441387971827062260055193559411881014818333710078078075771470751238702808766334154026674014254851970559286853523483666402268393921578500369170079314387924121364448298011124225218244662483661524834973000637644190108376235313676048790476657826460131281813443284336730062848966824245640246585229133092219859116644706967053162160994546741021454401930169966199482999678040864893837777676268193754992636319005021457242430590480202509838712719537985397839031734666505157283708486660598133252827883754528915717487748610316910365851542323396299835373228197011964161491222653374378884210567047670553481824551008764061463052444278045932676244651652179683423419448435044218283965627036755993378384471083876489047925698388715337530582373112890618906788337073620137817656355007115572524065633116691204170059756155373305890219268697769258007980273439836754662831721942360042286545297996463941487316265032347105324861035742982956931394151809949399896578612910274179768187026187760535159278801912168997742318901857574589232518533393124787101257463708397359184453349458608589155771627234431116151345889085077370612890455759132372339826269085881606784451056287845952157348186306890945915986777276571210446473841942695116198874099938200985544383075506627327224341664253190307605406108963288263330104502844094958446753358477532256513047043636289645695528689986441777343258890762958275690649518430331427781919277082156111782147680808207912402436035905829081101540479438158092280142356735910782396940338129301223188146660317038819542257637194857271466098120895953240447351733476520402962824516113023506591218958008923778835545691426138703616955126508646040012724547318077028624886061302424812614022337031561732868019314789137101300769171204916465887057462882851212667778569354077197843319757879116515476205350799458011790286612998821478788291034075471879707133601868997690642702026584362180995766220037556012930068781157016015111162497244636932404746071895978743309140497079004261582487375766502099823560329711444955975383952215312807538772720209437120293357343900772025669235605931502893559014057886363993627822321952638265875506358538806939279187646422911360765526155100254199965450949463406762312204597991377655276388901855012247417841568051593718013928187565155164650863844243915966977146928624299341904640547149641048235240644722083186660644565305900414404280140566527901042985755376343569319351330596960657105868983849025494217783709804776311528771265016917844384526964503830833679308089429505755861462826403594875456897288643890874118571014046366360592095237817337167844142688161109352641835553585088035741498221657553595722406011448156591409082711193190134601050286472173851343654780833207447927333779974495631415414089528391895222003202949337647431994353589201971809195722929196344243665908406820998770561945001895918645791342591794927364555611210682822819021090399782467021091793686285439959917768887612664907613876794883411602572931045604701334529499469676632633442903916949798013086549346652040529400788744959755561371896072496705923202499932896961640592617727894267969162971491223634276347008459116225431626365666534828694725931397494391121714199323733142303854976391331995971949115624885452935637710963887982943294949871360234832059535322609214719500871009120513528069412896651214264057382941090683571375500116819435200617945015234985124049751877826362168888956511376644446795315142772971973326828855435022537455848426078418492928227635746141068857898189825940394516237242032085429153132650795725533632530244892850728269681186857265448153855179524248378331934270828260188701496843484407904198501532612120889262322670125358888306803321198658358041244740101033664836361825182856699322318055558500504718179537685247063026196783817960810958271113262037553899284816483174578306791247102522216316721096015704856729061394452763210593633058802057562639524314601430733559787154023108033987417721016096933184159611863675086768639132146623198903335653360670633492578430289197250533090326159887762884332928811111142072221760823548571594138974857469910201438793314595078604080103569270230745225208950307082519690812991494740080941275274327791464632096595161632514326839243577284087290206634535806775223772124539577498815580126718073280900378846125130825831189292659408111096483974185673090964908063265895521064177271703973877465649011438874538809187644254438173366205443133174778199986935471689056155107282426158094840293133929675835104225601762841205899090216609009618095536416517694323586943554482321953317294781293496256352195099994054932992747614803717366753699067359791908985597269182693635768506429232564745216396579684734193946749818069105176331110986400220364876652309419026621697628734463626287887243704441319239863483011006551993440202971059937529607485707963669375212310833273055259321211668723254604493797502072924100641695681241320651490146887105778344629970697162798494354050172533717092153227712831539083742995998159282473589183269523328317778849610049284179267256396732988742167778767255236511086630496154944250403712698332470304020203931848814731135100011307272099483675904531744910175024247430200517725463979293554898058205903508702134633947991990680723466978476969619395006362627517376292715219351107796305160909837979267243364104098647880896103676012988142149912693381746179107488882900877953429635237035587009035761929339600835485234644275414754160289415877782309964408410235877362158092777577690606786376534156905414810722456791540517506665406406637270765242589056506622100186388483731250816405112968327650794727154701655423715394857155398654963904181971235208310844964176900932441589091466963416106612998554805192198947814214779530598232956011440243748051748270919521833267558449467255375621243100044150602939342815368340156999835406746244990512999536002384217660760297338651743422863893136517805045733277839706692467954445918766917984878147181447742676900766561762297215468811092301391037184913260349785936896393235955175036736258489390819213241730091199442750357959235712638473731200725257482142074980307850299142555584148598646426956605835848825616018871923189415938475756555420907119606717268716875957450562254254954982862153654530047942930698752473813746242738504734278050743571746090282396305431490637245660110790588742726982334636442601216753454225609794976487545605142555078011215478103476690195041218252763924663605618541638553733657336049366889345334317319801644849995504566305827989521425519468144394651384147899737627226873607043303298872072286536417202669674018921051960606204766075338100895626691332175133935283428615232473839075335757815195951397523238403879031732389889749095578113009430770979238024263932246449970296267202225578267460144942736046495312640746604696991483659665256699639513085948223336098172694120204701071998668286910469602455793069353782725898585228797645951184682279540694600009693351554860868778554105872780678676991825930775118315117782403160467443155790590344486339311209183289375190610807514483378277968347988343819903217608173989519640201006684129264768446524904478149013493242974180222173249756451826612841364372975915555387476077650178907047896932931405508722478570985258815854415062414682154043553156073458504512605352080526442239254434813982046229479202555832208056922661538764553662061298595572000778127330402095322590156278241297004999520824133281359156317876010462997229373164418546728794650373713326722706956043599862764229296802644499079611064209591546487911752791479612519916231337575594858969045947536126187414351224099023372414681621527733012262723872947678273588230725033298163039492658097083049979420463547050368504268137779994311868662036336486356436942565397835706566641999140393357089617328844000775502550789596033981245199912907152000188282252528194734212857071308492941961879915422307040905548404294348072136739864208235311272364441931934650439229515895248921303973684583251203727180468944064756259535412022051895911138657835647260978599069712618143169194898722991725961069265393001379190150582676462563446593700263688581179440404730586856987628058900081955125414333053496479125503555170903511171885042359769760181697450833739538656890851603761531499567510578383044451655156806489548276044778321668951580540281434185378315323419244216052419744708400974036876817022294278136165460238243102159984847821548367532834378133332702112735668158839657453909209168365294581753806906195691199653157808468429457520879593605286307549082188661120042354228226517142201746225109901983659188594378315786840286481979107379031533662503147736128535892746827987684781014348766345478719583665794777148323133449358504851698639454466985618697434956964616835175433256998908656950202200441757230854031733839684940903188116222000659327530450347338326218757882641600789228860282965065375156155776419239562696564221523188755070155259399308467981272029031358683459366901759858985309262505506273173833720477309961347348179437176254515163835461809098398157673790100986594573846912777600361153330546243404865526701985512627487706325560372822493822316228513224391023823935256352710669968084434027979844705670308066935036318153277474727650994291740629857066298881794376806654363920123651542097013593799246550102484370292915940151407908730674320771534420393033058281220070018670173665494755444037141755554901793834853494620809769427043894531812240527497277247358685613819412277522931785793474945283088310412335034345692295111168729998969345334457448945671275172899990364910760835446241133421219531580358926273306476276085009683773113735244993778488232495454476327338313575866799371966922796872770601567276241757774020079934685065260070434099334809831978462324618028014621140180520377920684874621331522145088618534316675799085361218492105695349079763729946568895650246070360579381868748820363388359868830272989789967065872038916180895038132253130726089979056902035503814465022819753119348537396595525895934195864927490444713976218775901830356549041582357539937397260976371691058261993822516378036613231826754324940006027009685418745706922839193790511437400396700144035388760096464770060020664031765616963431323544692445284111280045180786388470034218155738113682060948593291895422431192975131528699364218693299991587356972493751691721984721557464224283829967489908740310759475032417915350398966208480616710081678696607163274878272769756459715219883349393828326123778025008889415272225326237050137047777876716535329202888300215851782738043655779530210305782975823285162474085358766052373180092785843276432710676486706553267563679610591619741489659254460566280641258191185627639195543629621378745938771923145488459523437305325110518997544854673697677114190038700287663823990528330747401656582146225456072953677056351610473478930196440023963925542880982097102997366838509799736903645468528334065208383851943603246062394306531743875730231049996269767649425226187161347465053000902384825026893272462289397372989360646345680953561945318905696162303139031727078281436475551561187647802590071156337458526087192180590089294427678960840797120694509446643251015133040661096914745107505295071497936240629087116849249332012456083680821097694227166152324926418236349905725816311468885647535212444712013987859120268985174248807830513086743462214415711333925954575428419713810514854031398092595988058118815329776742631624012684497247986980123651019263942393167902797186731085034668071841044562554257938475694913889534214579663190098557726749193361665359337884876709368960984304969594893857600040046725552114703547858484659199697997202501758795651201294261004185034822080665830303435581629049687180837027140701257436573051184662219817194526958240867394421687011622442150251693636450909444672438333978851632527314018396097487416495104615698288687549583878348482689394366733684894337311417185985364528002893926648966560614010308388039176812184967136152355367686777838648550055117240428973756925443007464735910903319539083466511716947521043488729936599552802421002300795853401213644539264275959378439949482914565935621424603784819066040709236595021537826146922534792350154648661864586074086802249131385562720214148357693961808290825086523642325855392906426164872485566353102476015405081628629886186100941857823835754796494515356818782798003913157588041775131886396365573612109575872488329674270797999170871935885096717775752316732327634397090188264300814408938538601525205661233326667519403784139683439844401735414939496738912753377456896328750740741443142597021580636935656654272638934142018826395133903423200478050634383777491564807889678034753030226390405319235937204743037548300033353029406461601382872470822265674824208126004981232023913294188118120014047899451892882918791410799017664750978614101431263502875671192132077240229455796064810818824528334583574490542791609749771948608258481482564127164372285405492707104361458816787689991345483643693034225972909828454355165161032656550589259958406155249744993595490864917529841561161124575660795646624126704591348861918657781195536110939241236664133066984245683954060974535442117465143541667262552823004354004585088488970744580507572427290711066371013198895872581397028563900144042677635061948320778437830955644168668647990867614211837149692403257404487414758839056957979394350278376532763321621906196540477966492141752292103058657092005696542893857515122831381592699085892053021427921238233011365104743143127104367881282617659761318315730061793188435717455285797954405640607093793820382648749198673313737663786464659983127695233786080700032650168996172341739252926474374984404039952335556832163194784770874913926981715387150388521997946192779031136852083027871647930871420371230592993733135778649179099709463486287186762506915114195786061365307667775094503851544385710985621205629035821924894127821587320893147951331911281919092156257651178761336806217253525185142020465477011363913955938061382563118070819483053757286671658602602907227458173774168468126903444533708733600768939994480623237842232655359144694104545561751054646786051488576883060750526610910035935581703577404941320136218673091899448209511919515465097216933898157388718851482032590117975043844618176213256896752474396804747409680882412672158805395151438881269090559828840619234024007277838140368275181122079411940585506666018338594120417714185758840420550542422356822593147287702493780523219375895644013759892622485818631342946443531428075349630286335039429825478354215659346372114984301743613311825965054357753902976056741916603905488844401001729797946481379544559587051254879124379295369075172392072974482261670257223856049711776420872430734440800644155460772775116203858193122117530458142156554494946869868246878990729145804265482179035425255401307150220001928092135416941108360600133309926084952865473793389014974827093454882962011029330387797534643415607814279735350954082374453041652680476103254593303509198424843596567907115522384537563254927365037624886354948517559461065566621825194045261188697382099396584779063009450574024295579900086034858394906005783633700318024715086576633862888913027794956580964402194550916760307483137374355660217498487709653298389845887904550454968589002734447143896071478025075617299210704885127557065704294147889276360128085321197316642000051198189744878377150527248574074527055601154529396856461433945449445682753170057994501460584252997730402720340361995672267618181699645767740744009263248114242043964131623717827125947211056270189679964806078012913832342578081521483553341753069507150799090992114984627857963442096560265597272896784827660886741073671227875887021273355316924848589176609679473204942083478433085910202321818215221771129783123375555068381148798177217656010711723614129207510194898332767451865824581553958806068944062787365665797189242197504428369695905696627892575937497087910110754004010531280043672886021694504356614890276495450330676821945138661382619176385080064289222393164839778583274088716958263623780102997473978306681436612758758395721392721913193666713368215628048584015032813223320998191241293177363501198328056519194281930447680794123624951315190346283977676321749633360266361202721413102200084458772657624531747339980864030270096181069982592998506056342501549780540656513503440897749961466034493743330468754768555234012754638752016128734033493296624636580490487653882512084993003295078925674750262795404190986489116764759853556073305691155440464297669559478897154979433713431478056260531236098318316900931029981656948450811567265255603609275731167017544708101396378904007108457679026824501381186195209191860207335399982995605307941192922397156938663171609017744439597521754812622983640421202874732122454273962061997343541606230776995610381018458352901850613019985254114836341522734520855589633937707643179374335428464293836850767792580633215991403616639685787275121152109564320516172461413523904442096652323136689508429986449863090498640395119229124559691919843525522027896078000915890339935849541646189820822301077627760357758543820817095956836511243589220638007402442771032935104044666672478762675325117037083706055215446924343500506753986700605240926416903871363967519879314346214443278759327707371180562828758633136949215997207953186881635194023815951233909792576553528473175855726555073345724859426699420311383004959447288451657781909257278668462086364391455394643674828427350846317930600476419791820727470254721296466464476805367593225677171598544915539324298591566277738386717915207428910173725992707582846610971683776162719838996333307380204138348733260647828305851480934712122899255669064987381033548418460172565946009069327517010410291688590079502000906401405987935735272507827887449709992188390544349205414460184927991481389181309428729701270466484033318755203015815642013300122933029785595595119027739193082657881020539676396768406032290744904237232836199710902330282548571495519070325235794090111127561286039611239975559839186855316747632980744104431484796560378862132488215756790499524643681285485339760125334027831924589291471566211710156631908316198126729801449926487453052623101371357374750863676383791273928226159321450869509548013633672134740664832464024996509104446221670997706413452195324084839639598263827765229462089100002839161915341033607041113997668563969429720941440676807499409847280576818567892054565258551322379689995504696322716068533923347478561355205735971760681019856720093368188539100746678385950777783039510198591961139053920095108872966663005304787110633476807427861563475032039972522317252928636033866502503648178154225070107037463446482967597945826988423030414582304135631711301396334780092424808274726157572143486769857007124091249265933346352836408743016072667223906851879331713322462429636104081689058688799526999775194551607872995664498134181481449259654289540011856863641316477056765840516064558724780817679817161903958480105686243755112602335559939642647006452690621904296764202701777037784464555093948057979855211254022595655084935268525781843338109990151427646781414582117715746852404316110827741048049760042927740292955732278561925856448981174377946720912471403729978539892478787947762110394398064673068276404709678477106770831766611822484434109307114502694486200566527088521296511950173599591229038848025653293483975093984870673340658373299783395619569071468326688337912403636630104815366194597393473320934787851357879186124412478935126926740061333183908893310837979104870876867481741372135291890043231514363906845160352020105172207400346701510138392180199932176793813652202786216046709236434696036837165892990997726100755843928177758310953002534644639570400260409247492528028785474748857291846453612231156651073488947943440544087777976216911056601085762976395711151747763000275918496454901389244288053845871945774441024054398270331449109425125577453354091914000862191552066759135982615434924919756242873247352160964450628728326876116620981452136238061869177479523764895610886037534228055927946423837956267932750692676371853544021801547552031314759975868501568749413294868241331257706944316883536165948359776074395464677627066073285726327086232550792479810030610000109329400280884056768534372854367211230935976837686025218656996702813244530227095370378272004257827603387107485595559398943050163191731901685937504517581810120515710055003253651322115066203495336805691435057698273184088886183480747107132368024008085246130569214824430626921559989797029153507809218241973840517288349757029734112693477216563087586708248507950134588500113005031972052238704602002832550952801968134570085500775714786866713840014422939682424970085176816602822983236136971708427244984313592166587650223343901475636736869293628535816816384851121086976451919131557688080216065089254267277281328024703721704648319973767851013826343538513871932882367874183731459511389535594935020842396542177380789800307865129688247252552485340653101279822964606350514625491383822763293868770792644237131606974022283128639874178407943374137898984123913543897591491583877753047360329265874440497612233092324152483806232002852757779780289578940761503949317490482072247613969285379970945691129235577015768775809172915636387293197807505042846930005416672708463417286585548120521554618708582176829405517704121431404442732105511333946510462205850570237363575196799051207081371697250166669204560999696802867055840806630845202765636010023757317666277822566611744865155374189154699946844350375415540290367899474393250664024368251866513337686011741272512560457215913505987238420459949837076735709156712326840078785425653077289532774418237975049520730009178938482970347121449400583065239085461281163145598187002553124102477925170762620605304987490214323912453435947114658889881200206909440503620566023485669524732881353783833952866085951873384020658146365868926625039383425509504897070223508088807218442071819691579010859184371203255830279777625328877555552810390670855321106798216341186652232372331335738359571472687439069889553010677754347962551584182831722578714784496829045133672443102944667624857628215700812967773892963684530877063802007196580080901789687543780982161302595675202673814782504237347030482541686077660149573522599967657898256335811639773574265888887408255020700282224026470356234576825560281380033133338532114057990425744020315995685166771597267731005068982439233523258649701725489909034580072562199860564996569150329232010160582160295521119304591376942697273741299497077511115446087717182511170078403169097627340257140519204126974915040874053697443096453941569155951403504346802787004599157050600043300361482001400836889975485733102711635090379524863901878197997659435529225128941281704795343657187883275596051378133977276581195769499034445833113970494408927475901128766938271054858697041516547004149262880436549937431997297963594480883944420435051071083700541427227762800907936900528266193177348879233389821836967989740907791381319029356046550710240086851765350109702627294017407504241451420207882208616790610955079927496682743681638336336194314185063107117448928458251469516940375774745279814759148253081976404631015149211912118257466535406251952707788725141703226280477570454645973184783311718343717907644549364963640169906186643772127116139838152889744309252227664326218285643579511452611822677107849126023009334067348935054057150069929902025738354229844482663094535578242037296957470054385104697718831717738975301477112408332937834293984229149207648703736047776676628362409656841885681734982037325813913166420026385059144145248205501499935254903762053611709432288380327660338274631867250075684542611949177525829679612407390211000857629516218850319910855810717933492069641188444983129695356128726326514866145030454150835312948485192288816288064655027087303784921655793357640183885722607094087175585685392039997433686221845576143771548990071039927108176911995834823099051651418048784181888941120462564002896867951414527602813334405204860079960481996984106919249786190395690778255251582798933593425233627289468500767037509268739618567788072601264300373314786240003202837631368146782037423669746102679269574124609199517292675960358884577486605741432115051229658478111954837369780218233576116928884529049308220659664534191700023164296215803445269324131768234987345131626780453051632427326861020415553087324892770660784497631847972001668638480939145657320719890745986951920612028007727710914459911032230286057648879488263757271472456857774755437282291095329391182716569730160385687827034196718702377646502037434312503507912882267093194961100601725094858154612907132654615003121696178613474935994711883653849920894092194157172187232296442764610377440795312340633625416918979952072031740821371090751160351688187749655378275268602315416594534527091093453449549380516418301354377030026612436537927601824178013649399663496455690891101925170549960590013631308229644991099529676420666646184897227372353212196969895096290041328470694191665154307514138165374002362879727020406489619450748836577126790353171167493276539971958232400031366089882047739503701698528064235043003363918866454014433069207227912096009264835685013702085005434109923710691895169785548880533786463321605342342857932058277073770515716112318400883895172136812627563005165832842107759099584148375913296633577834354975932368774245564071409022968829920496725769383694309910961212248733142010073513275071718180224540514594244059843711279904729293037512429423590298298129922962157481518033759230560568561491255440420439588057643139504211740773600998914547412250149303210035376585407218620264098640394190576235076275613786254049660107176624066587753175624082133875713922180793280496750598098408584365626660520394673568726800015298955092990432272918131579022434694306977088242714022700494812546161881357634779799782784617221253481648054132421260361160872069292371345647815635193386724773822416524723441749870846579929063424471736017314390736840249066488114332605158772099099419954733948187863226346019073834275850916329299957507821867171918495482844586107928167704260231271229581745555789128347403302982900977836952723865636981112726488975593201649664271989623728083006653579533454323176712410043930133552594171758607428668646561011216440777098238625099916066803810353108272095225290165075601233523659226036384509350581482738927220741544236019690826181934464087484263157161549133014216308045369348001385899010773468696618167153104403342428792131181336298200472700519385945045390077262000600553646456984854067271297301890007910172421601367346725716390661515779025914140743277081421957013723809312556118560631790891285670231757178948081226001728755614503950491289144312761510250425151824984895937041044779272904985503209033771995308385244238710882036059888408596935032721294614194885835257867705770634755458745662054995555454783042241532396357909371852481900666977674963869022690474396458824545903365123011602703677303189669905711724321520981937103071499976963701231599993070005500551216234595131942282019460027085291952321086941388428084798469581444748822775209324908923044472407627675796637313329010299281979693504936366984077663402837913945531959337539539578867772011622206404334549629979677794584884079408120935889330786197882766082321003883533654880611485219622919320563538406171993525006910804861954017688826136937546701275483568150442835287090113411202920886238746580759055369607084237970246818572822740712408440830145218622513751939122741437745221782629809885334943878212529562670007576337525846850210388511810710623878576662908710600223328768939293091362472310525822896135798424466981180527451180188540165459272472996380906895140570853788442721243537868410540805685959105078026603440098839543518249028603949301445795157116542757621832102713396522103349540371809237805271522911115291525484932982174089090788260702468330195729910897437419368185852272478602315513660456097382730068175364380718406489980602759514894331084699537147646811394349457113950551010039674064702023378486805818773337768026856544023149486941102651261059358599543895861038087999023338783256495262030247134179682572721064738534470232274966166232388932102417590433346757722290090012431329369098533552182573974801725609582203409913711044445553167228349027807055005369222650212064581433473448908901407702089669774319425503656009334334202584029039073882297952687549170870296805201444898536942451658851943715236267098851628044546133333765491522936301079516509330910562235471363657910358078953688281898636526187570682287613700309168082766438510956347663252875024414105204148278590331959549910607966192703681936000338580069990556248833330992803173189307834779376580219470353092488135579843118677367714824561074294450684103810940954254925269718508781965021434864546017452323039165111548590743464015763884947895703309753860353216316226687206829217182575518118799578327736230103810826411627927597864088398536209423049020313587610823499065983657066177370316113230484352160075947561789425761769644797096704289459476649145417968872540947677748924589247003500377854733058755435714303614958552138733130863839031415348761104824850548884413809265233643505647573730200294156547054054332538943109738934414902489592589097900228612478068323598661403697143026733408798587980283707627452032338611824002182795207335911288490631745101707313225820967901430438776335994686950075404054805366871784738485534341667822771133275728097049169256207060692827707444632589889714657626210745793379641381631054162557476628880358483144144834902474090492522286019282357973131658045616982493461114163564376214397683340229084323448850082283968868156069338472837517156003920462396018363603742352791196206848886879541316123338768909322472708609508441138692839643337106241637764789518219643143070821932945258834802077909299176371273136017556645976068703691055326858957880898056929270368784087995994067933935795872079624159008650047112471248323364498551701294627619977725411094280434059220217385709485769565251465676523178670638177820141672006091642812512050248623370882800712776869727745855180230400149505813452312394875441760442455326275356684135704088264700374828163357127392362301604088244678371763940700908845976394064419885199113411403278200099924541955548334641420835495907658596626109672692735469044976226481103063412291814693653320877936342489078356180283325098803532227174556419529596326587584349204970801009415934609086168602349422190285118580719599778624613475668919604147831152447074288580849025267270920373148015242638405829060270565710679114556750358922532336670124615002467028234985297349873050056160642156642633410646445313110736687280991663312010053497399131320757229106793534881645304752037158995154675386106266658830418455143562744680015688170131404975701359623892393877221970843054401346786357009848861368860297601839138884220251379745302897501337255100815217584729608606082825450950773069141294116754752805790874647535326693388306381003267837304665245472748666573468281207881124568001503410129627418699742270813761666525320327376394298269318535290194831123942551735688349048375082263617813724273684952844280665574536033788365497377264356117601733298173616765028873769577134556022985128835142385459574967335513332673288820839919831644824881942718129383839411508941443689192870147952076407042754824503171141291281885704301039779438283912210224685041146780017271218460495349527500267507964658151217336757800217525354270232491122153383139326036659777986889221353537546249273324406856333133677485839634385624919051759483735020921375671317008520983337393622737329165306087418031257068844725660914111775153879501039744057091822127268386779500386418891634594471689779333458846332246483001115677463663482521955067762236824203080776323434445982096108445376581609345457869116543025673979165321515193405764387729314416784919122460504660358517653543093279146107989067491856327228513936987536243387166150093298917988317160399402009925450887444138737565317048887196719240423399658217001454415023105340227971744265906560980190710853093542018340242488125778413225511008707278546778861395884936650734017743211060832378548595983772749781918358507219362966879575585203859066325411811015733906117042691882837336496842234894752501372871382050998610273392960701912333882775883090398000254846789932713907224517389291038787624241080713638090584949488384547095119283031708130780409245382995151082584256497912315745548388012268256913942133321317238691560082601726013315112201568929868770268018416452365952547802205878424082242053111772154703548118257730666427414309294920722470783710315190066429974887388087731117065172695334439879235965768650525935441969872530061764999970990497605672462148863576454007963315319190188247974846350457078075761238742950605653288758555313511924332630652692060074056934686570713137989533879259522902549053232549063783013337789374753044229491605846949531521277625132972785531050465812918818946618380432845781713985554112124693794564825450638359702698059498979033476674489560907697816329238403669381259957183833762942497163225714346859534708672636952912247420697264142672651490846579974781806183130916417943332479730824494721275602541784269497683258839490637743285764542897565572367884049302409730985944280413834944877942509689433387174289184126577283448830565160430223798304184302868291992323617952867055943136898389386715209250693285515143886734738511503044883202003541312751755007587101738189042102130870585619056970147487101450431937121351006601006242378378520312745702528836918900768757558690133401910066534434669607616727867701568299410100913258516980972935515565922990244183414739061659397036188990806256874217933377075230259975175175239085919746943842043460876966912880757752762320645591979173337191372679502840462973387892174823445318662639685281664617138901877944060112931276481239953000329533620202915924559314786808592004983132899420576401080599437909750494568523835712447301659796230849495520884793945972013964133827151297258675155952520491786963274432469037051886487174496521006775669224400295366850681609601092317450033257518971113647335341901610915856627849584777541926861419200829427946919087035118294799368521350622629284831777805294910949376387757110051322505895526422727256694924911873099401853542507002848966466868561054297942569732946302652511196020731302726691262447234884793483501367782912667400893473782368876678143895844148351621197902455774347130318791112121249375281139242075178791645510645811939991930488542362336068092021829385774286243811408027746067302745283946461403593507515420221361972741218223517977637583001290559856699488760261835449033450687086850048789631696240387216498395128087047884469648631286813875051383774682511154033640576613146772079890597500133543502882229773636096975155210643575005724765672753162129141348274300619984051925693253548261381504577721478371265975808471298148679407066765770854735878501638737032411236697199264084222267842472205449599381523694145109073124339393471536914228886489421299995244296316387794106289877956082572199830367855443043273318759468025739808512821682393937077585870861077454123593848263884199312064255080536121656655704827492694981943637127629044617897626658189386400569865060730584401199556991970645592403539142131643276093135346120140688207253895830264540349858586837714682565151691778865551916301079924504275508597212819920537289296287161873726974096925765582798259279475914744383229983154658772958064976668572694337613606987214687426200815053019420298743339014412238595625297488969031171238926705770636849533976961474702892075051689490617686627677476422227283013234163390520781987123060669303922344466025284589998724494041032319134192036932804539700027973606479702664934257513145236590969995465405836123970702840175753624307175028494809810614726729346035839291744930765136135960744382420619682549812058737902052353136522946234305518053003730324461135037895060423030347566269752378444202662868814554706484294178188321221306798616566318108400205714500039899254093049556149408208557858476062610547072897566988559715303868634255350994064456937530273019065658493681413540655743353959461080796219311259641381545755492159044337158605374480251568504336948320904510027712120788276090423835201649554998143656030493080316028852522154224820009670100231828903879919014979004562935822043257585228598599093253031379534791525116965831380161724935583602821957251804446611509668663034395007129884485818215320553654440216421948790860629315008288849103127462494994543089634389421459948741079423821272940907269313461388080281068192241019033086658582597412588069326284126740183284181983423905238469890987219430581172276700398470551286141270271853963051113626217415507244256049379896911699018672026257871833636820904610519580512562625829747404643626373708454750185644279415681692931685791769589481878248375214402451603834701237049221108137990151821960063518065411643635475274551403993472728264921209801502581614888319578243386211290223788428719309903557726829641250670856515807601935435579319671844092916668999736015832696106224174045353778247743660286026192233300086274610814250010952434171542829373554514015324880049887038235215259104070419300509171812868006045564379954869677066493377405694904950200747823691490474928067946698219497197591312594916601914349837533996478924992640760687401431792603846424386303635169897577410392864582588005066042066462712598474353672798072007438346199371142156405527011268012585539429954041732893248648541773802789186425386127957178520687660496002040726105373431023117259370031301726152350334282056182338168684045777383488073783765955851549656832528543048484800354153739312096111255777885163856349265693062599743543706878283235006429104146178712456014407281576700933497845610457283907926533693022546940033407046457570004031638178824100249552862896753517127821528040523631981957696283553901895847196732507437982937664391853151620699310469324502335684713489158195448591632587869029877609142971774359300388783306644001147688635681152999277622549246423924418413772523673539065018115386270781041521567802330439621062731068582818593903323962019740682283659830195176079552559720684517343302465669840916515049584968409501031630897871045637394453945535069402093201891313178265285359627143078116705073330528660147963743879341146668137528418420254097728588084619098076402888383395181576259409302302981960399587650145791251933916866899385368345168204117380417737548160188306043611292054418193504193252309297575488189624603842978114060926352108163890413668199733359941306878401367940441621577962352517848039053704755863622374104922537363881680760178235102259380682387279787900776752065126628607888007388239469427772100670113745665916630225839067264905097598969767365011902132656413244367547448924594112512339694858651947828927042646794004793437444986577409709752724937537915857909846548826118657482978829062483442990547589280568131542522052880075234604803838537125070531175405604568203701109269308671301572594796268295955855340688617889886084037834495422423529957914623182261847004614158006403426812777173323347068370265043475279090844083640498466355308074625970127584188206837970875492748618160149397245102738221727818693255076621188444682653423121318109388254631160973909525117088610109132116080788086763796608854489244507632133054900616975557901458083938480177986606434319552817258517750454939720664043298861707785100869510058017295461155649342015355455757003145291303296201391816899005967370749355372960405095303811376293570046703400623848292358118111875236049668931313256994270046222382504210833317607612510205280942543406978230998758807674256613290110928967252548548777047628213598055728182898362791100016979417087347266392530617493476601661624673322992327184779990483343563111298297765793940556808694180937615765687911250867096382543917442264840469900816937656166185330647998883513452040797775177719258843889828093820971487782578579298725714534067970970062406041537301133079242142510501705195675441455055727511628990651263339899720699906084187596704995589392806930448856855510696828557583356063433203368844270501789344170369047425040698909126585994028644827776403155019341075507575718486162766650318236676295603108411826938335147330004819004110947750527181311387054340739360306834416052290851452559176089190453292981365012648868941468750385243365684967026038208859132443081920403841743714457500095740442321362373052802477747941796028660633319595457418827258207205176376505303861460834334055901780314456429278068158767052662861136631049759764294923103279738273826387625709616081211577539784680518311999175521249347557097687408093577564360367642239221336067845341545344683942677951941445086006572442477996521105433130301481608186803385245165219709637631247863296403834568563793167552539971415743633893921551495240729355517160636552004541708703948262775732229643088244250849516313799751284734793484996657868980345581199755738436394830395532466773829459779011218091893769498193990985983592136070554872443794790775195876317846460545473821321740770855672086945116399390472470881970251149701581460894680711400874030006417938084100424931535924564450101479858494530786717302673285526262883591851620581131044707271716622117835291307238421748591852737518170417994074448870777934685922785155552048405471925223456005774748063163561277216139169085147384154657525348766521674241405744267007079541555506647855201221727583986337537406659211074069328310220773059318508299353615108421212119082142233735713519860231486276996159783451772019742690694581298007159604708690303611308209580938569282506188204070011928343306920327780456257360674975879810281067307163982230740021725675299362031667322847483097301148518000819082410295566652371604360020415695714427110907658985463666730812010934870075741987322344329727939300474169372517318946208330861914822787906500626189566902647183972652737515544400422634528639774942850934436868264182186069134779187339795870682654970522456653832157025131399279263805651108426312245338051142625183041232295947053319976594959367713232037296815040082651523116869067609958174880144289265850793016120108951348030772207311415687955916221440404648516527979430624301795404944780270201832689005791514296950749523249031387642421855313762784571510900251477521927503332522068780771591733354394910039103518007692329644460279386204237365242209105697124123683545445087732615184550937081277392673536798129557552135578684437606185147460447543464834562509743931835078749822905122261732041407968546518112183007468137415124924715062536730813006538679749980342701895123447926069661563360268145682112697744511557775148874762638099031116557325793688148912997580439170884116064464164912548197017560496201188241029441781654226655047966391794313899847978398205969712627294495717331444872654785493140816365885496504339572516399649905256026748156010740722256097601354252042692018611774020293985289682474968929308273122870856565885868882881180132038677986716080943126248933242896614788609081253686001797030541764274839707243645113389641370845599396390523554065280123386099583915953091639263991250900977651762829607324011913530053424006094805383054116043255906840004111439579627954679235571717192581177386972582008481511392020920549599166422054377531925742744674090097563004270201998748763102807643549229572153591927227378452596446399917109911632564584272850799506039969354553470127956011684599514439886091557869799476033595243696118500684042237501467940161481808754799544893793013283845488103674650377442302967199820324379380665558231641732240760466990578471961793651709896267737346243896583979783934035576754718147846793733160534293117129745699006529175812388068720735230943426204386530136537596522370739202957151801907134933893019602232989651494538317440088951907713036776322662727215801706912054257984130942328321224982412401073672716703243219064386906929755348554499967322628397378083487547884774279395312618761746573029187505909096086290431100625196489981908640643043872804998499336051653200272791148998975673921546162035255949703428236116251499774949370792400128104724102563155034380841859986983981134486665265258264279147695615626559409705142713242881899399304796520340365342349183940738680478429298256755788139293038342608630679131445078384809850639172122407882314061122159846171915444343910789280814175558723128868406833045932841579519754609858135375396608244838435757958253256535453430747022156422715547782882610172955302265085190733983555081485804961457855672328937011197312801564814205319360168984124340310133871738562217442165175875769518892957205235557280144508808058885768899337936591507961296877532351237065178354277350100258612552773142531986176630066127172798451598513700963141200289471229286469836169000061027961583696716050892455556714945019036724552660285187855309803187775850753755227672641452788042058602406039174131709291234598028408621648998953652277941396287347475451377782423018086299965880022598717358135293114874453527714343402876909293831921330712230369913169766330657377302161021858957719744802748555197956160695639137687128435579550094344518111309809077897027240735417055682621219559759406575235005776765580190364366092079127911700639208313965081637197795752442977432904903626653435779329383842840912144834164115380733143685125834728593658822462758193989116248746016386851233292634862246878760590123419639263875763870611307840526629942515736108326011129623791622459955070900444456376393561235857874488893462955347689446815177923228329325407482599060209158048142534112430851383020879871625123639456472705803208895583502310814408118717733192680668669738282305309813436907053073385099837085471546390538274307616957415733299336989254770689880224012692123740238301356419469525012668079757273219941812479960200802650915903466884405014880905043203349524618162350453336645005963793774611620344174081974284104979599645089644927062753993429815712790122032133312214950965903686613122197413038206144181299195382033344093195381187491460237305662620043970093215580515347046100136555209891721455722849278113486073728660931733210965586229640709767035138500483585704722253592793157127954546776856817583700650145927495590453193802966849329901701073526154201585536086555496191096988228412167707779698756434028955813939923588012016067855193462511092244291601024850303981164613724005615097337557097396167840427953575860648152199319115220012183041317470949504023453018901008668669651216585223655543233250332901709493692609804948628032568952767317481244974439673952136070265683419342599104672513166758771248914066061876612227834395853441200193524733630113818719157414834696800833019661747899297626420432727895230261556232020218840522659824549972210110841063158357118212548138164481665094864524803202324385586705480042251060138088451594440916073111077388690953177226020359930443395997991906908906672651979479047349451543582456180824582740768865167104865792111146605773012863648873089288112415898462422401444896145078982350686293466206738656700133057728794894897217589534235927950423839807424471342090451466927829612674718029871413664352470239137815051682547240659979705006977548012743440384288493573247398521664177049633449977357480798032540574549948248343234509145162193516152511052254493778102875690262059412808856543953312288750825645032006831342404779802734048046655367549160060892726862552925285661572834936281519498715699103039710892287947101804325300533806649639509704490138193131931134020911595634058298667563741856648916677112188699732163385741109855286848466509450952327563654528739298113550276483234164091088835803098638522721547111282808820969818833936638234676294054158520649230225094209646859587773743509209051225455072843982661035626446256663829526195628942415838636348548308091524038815056555182058341279572082756366148999155837387489200548871714275531191347106365613875798108524455532271509127745038893704637050553406365902291436001955033574156174124706496522770985964651995450431887622626092184122875861775410400972313570004853479012220146236050198148063459746469370880930629619923903106187641475900706475814073418540143037536902847925541505630399623242487714808157286921442851549190639697094051665475656819042576894250947330597120878972732116092927545183066052468649908725616765264958597777828723921670178989677321446928995752737629184432220064944298141841570355072588661996194880207742066965174837454375133830151306196243183756346846816277357127502852360286928371409375760552824266572820547794439953427304312451985123707327192963366813129573563108062762597565680190537329403838233246085990458900767106993449432807131250277285225421713935104076478582761785845792025049241943894478277396989181672243302492390743913406550672114967387995949457580784393375807439499163895755614789012502370579654253961094399949111472188619671294589806715244762331494832125560298017949450089373817499610351258658904423714948743863883880697336858361644835857353107314115680613194513054113447622416881986155762536822584107425225540283636517408253321918588286411585468308955643124927387514223704276937268966763987397632230621952318659135902060234678284065248346436115522727524551288708908661108200040417903848441640502657185426147516244159821860546544608722534288330138813706211366549817055316723721148120897811098631794660605189257792054580245548373240193028837593075863294682030653414295250047782138388264930262669763153148225438651276023659754568544772293163541078588084803225399324769940043521403116571980117016836537773227005448103285926394575585239091994146551347825463367837569549122732941879240026797514741567697700769465528478442001271077663556375030735915436902277264255906983981188886119001801287725954116089807449310494374345955223407952988038436793170199257619346266095626094254141323758362723785069220763956432214459058240868622922241700725639019227521094045477667497285338238957631212582138008277184757597909281467736452948733266900398102223549032061849338763782130289635313018282690809214566493184242033866757960851544348833750119979653552802427585914791100234057570881545289060218850042541953248219027197493834308423144108107855742700342481314275688512023221905515393111215111487324737858540074175001923319686002564648453289439183414614172654073127253419076807799642296858491552603264057499862846219577868864331734333785493100047167345814367175710802443386985790404193814435315326912807991559230648387109150276385077428621719621658807116391254756670590581660031155009992699250105248226210126497854929984452705891433683495567054915636742777771832727538510347254546721163214955524099987324463402166277888146670610288352018193289094062494838885919400507910025792688989044515523640432944082791153855921064145557987332549021010876761420804573589910895488522773014058997294856400517807979566318041388223792942432870182471121842566038750930155641279258926388836059272308112915960460660454846847915088000989263454374217177433513670439221385152315227081180505616054476991014162401974956431829671957571973444997642013076109553579986458116081379078044894437867853522087808342884291653553409416033270284428910202348311173614550803267517333748914409428148023018109425124059660976231605922728993820959724764061965517648370941010776475231745370103976902440491049551115095429193848602857155294896222858493536483036346935420198909486317767436867054786128394952803340382043454860962584633681511534604932240077055121574178538260538210701856968893358424074563452810152459853725564944516879263157085363095804993183117221853335018886810828562502406625504212292779301283637133363903427406193418054429999349814245227709407848955244603238917709173981621957948204393587621366961851712092728282822121377547357459438147293852546301930061497104565552241976156459642658390421073544451364586566059783635072319465816580528521976359920995883024678915724943203708239734312884368007003302623526631458738836834630070332969390061999593470324821785445271760924374188953407991481816142126701978183043737607056007459240410140966890457201061029670704991757127182758106831080754645482808451768487748943540690620745995363825056930550397588639163829780524678438568899147938835985872909057410148062057675089163461072525709074189547644126341396291754424281415626007319402521307505813405864547177363461412839110645615528396193381458990125075537900957240813517549294226768461607643644087781727871777972450773315333269045084844282646435410731202558937519967251338907232231468259323478555850830446479370012850090164076268488532476067748057035663295373993306945123341371377539157499180244660259254436245571460962325465054332652582346009399426911509838430805862417643164706522661799960696267629644478388497514292103996909139535680563913205105430791086477084149168596632138285723329919628504031937487004693136644566579702006168888945029262033958233787677183130650052774378265756880433736878168457681101849715148420446338069979056002045976627695419586474303031137337772090699066251009244063333068165848194574068109182499182524762187344672158618540477728522821286895024090487886783018000714140957259728936118726338882486215806932526164673990737516793416068400494651819519091069362176081606337713164668194914240089932342234433239833025048035847992930508574296747993037299577643959291140218012219240379220723948371091207465040683024620012759689541577547647285634301603753180531903280411334974766486100357253343260599520059065574720863296961724214140888740482617763599009398755736993979418910596092789905244359910829336340659185883531440901252303814179443242422000292321170419776228869989091692780411363661873250046283749657209263047348786356171457097420860522738229376638535347128226741180467296114857178259889158920865849213447703644502520239038455015817571383896346700300729755205920953722076790858445255639050575409160736843363758684957339870672792227786243322911924705000638843887087915081524127224514736383330621617722327744636143954249850296810656405534669365448718857586716048631713143604142573286863487044387828452817483130162198533881959828906304771817421993837290792276630703211503305582965584118476142968124286567269494263132451562046774378872014747620997982988677519810498032102571703960542069152227667927712180431181237980538474590456880595765660889595750861338173086261631186245185990022681181095082921015568799757659401973751951184218153194153529072732214628235103062763662432425810673089998806264612993452298057941760112104820513782856061573623807374440484995141957626322352913573941407856146695607179535082719270197754482328007803923362425851963775120120495289851887346035517672576093740048194710882653167046251106996828223815357004683198819372441288904688953366953392703320194282596302214804427321685241268577227132831536084863124257126904814921871202502574149030759315830800390188390965535595531569221296251813945232955379966436408736774685876813724689400711023467717078868273642689367147308215784012116966199923876706162174949325054705856755810530315158532355470916116650143390316192513443671076438696469180888238047053931057031167553357513232613575130253062291225313554920252594480856227316524875807339696139719287764503018871840153765184577750162570965920096899186569511333209698204594438996154115413961204504865369661166118149251106100625134196185599983562692776771160808306285091775374998587507835226632451981363019127463240113778633474491914469725156150013576113769116184981343715061210223415611712054111887366690292089765622512958167123960978085983688436775047479385193372462977616151577160252811452471059819316422366454817636999702277056918507334280461037710197307851440204158042974679504605485770378003109224612370114733295988686090014816531080687128124657780467499905814085576253163029603532247578809564731607883194448000573708151107981719483243367393079292278635278428434667621227047169684248913752944019990262673829981438565413019540949185583348379429018830037077257599673546132783596007234962336841901708675451550782776989444757227461125208847441671922422434063092410329384393138738892782246297467091923819501211770281046760549688032278294292122207095292366029182136900861524795218559926996289729412572312641179912139801628073153993148775524636895464584170167161142662364022652151482008156475638338143763968078384346467533972731852890807164493629148658907232716004475359009112506283371182294581744419608597382838221982198262402625679131641002897979592313032052363575537188027813779782754661540832731400196507016168274860178652301287239551533288757848001733336262659414183290446687999374170936804352469745314593459536909349720078708667333494118554761584648902237852937421878690674569234648510271522359977962056931817351798108047524809039479206230310137429681563076068952455389527405404605338206737669901970506579847568840397084117161412597963005897644061272707639261219037119352119127245245750324261076155774630450998568846377486071350464265536454405287016443485306505989908040358665070699314940415424695880401095108271558206015354224828702556101322019893778321821983382243240154754248721606361139148414861631262367652859843164858980353348221725066763981754731661894531118040136609109603766961708251481070754489199806186495450764534114001469055805826232665041152392687400267959138944744339578999546933525948963169084759447611520588152793735539611664910723544280390216842530480806230177555628433567233137289545327471500897367704486312687309508265277905916053122172598252059015382759159350315040641123923245271326580372962501742374248283421311704681228231948709161746655214252772466371573995184412458511869857483505988248238603555098188073163606375012561637286781738112788555081454677426407564909360312560520971224228214547681996541810276034801381058614476248546586415072091344999359148715833140016677040803041085832911021377842650151225010541344215108542070672588445252996996513501836932390334061744853285443156063347301953775567572548289648149643524861615602484101580028102045633557748511394299044034506216595490115407025823222515336445845434765514130589444036094629923215582744773687441528510635310560826566693092046308734914627948487803854156596166762283981049030125883833272819614527690802623235442855620248220623080044235285198224880017223194742909369583542048952261084204516788429104508008628100255076734177203521809358466728366427699807566428464926291997220656351721228093355163673359412858037941484932565653440002625995356952008252172149336992988215521529501111363713881724891285444317754939575782896324666308766266182561787549458092024636109738662859902286234709350265611878226924583909913174696340939038116150209389203539938316843499756730110348214076682079336650270517054380597627364383806632398931645325352363476873426646016504600538476783049148964757040215965906173315848417988412528081154650029739342074568557235374575389238497658636240528733137816908853461832899569383880980440073726058871602332007879899021252913516393976135781598912275229627087915539931311247196538881852101946589100024630328886364593272947699935095963979054204237804884433723958154536984455443651679636106979359355986303938665543075163797066896993420179862264324007480070295781815811761814411988918288334767094907505218653735902386213724093963683983341743417720703444151544839215412039070487578092764458699998075718629845964976072856192471612612345287818461394122161531676326620191948121092131966224577728364238030583967618190192992465203370646162894658677558676667642245759033755653179218234380809979249185094864619698802925844948967186019192672989853601648296921857339721900181412333461851765928158313952403864298456247628605422777433916893908926828715887453986262862188204742333959150977911181187428203537905571479995036757684378520690310574850278773469812001645556882782561118659510943084564267203088094059198454429406121409638925969485940970227556454052050635197085488874827589197345880523979800546265433274253979229825068480365790303780104529709210831012745506508539130263241528790067200403901152697401498835383931080192731911792582261398335217301010318673361004484633924667807260407903852492430246128512147056405152926123174159365421350392369316031429821323226929289174369836320510943374336291346266498914478581040474053808103872436281162664707539344832638184518606992235651112394603454938834246644464762140557179382768776451462383367767498568704855622861894645160936762681663335536897526754317287140188360979363510413347624761510168036043452473873204346473565922224903309138412467840755276428526704366697555281608649515266559013431057917116332668965974582031100904171028686479363697008897225319432439611364697300028961308568370895755075788979488900980512190270414954560755931506616201512411422227683074212971810330763317082024785084094123971718020353258146939507399049064019918502133304412123976980412727509368616528247177672150865665797926856751464476602553657808434746698799090236624911198313863816742208617010631137606037205741495692754001037641319475063656753981469596354441587647054140727144702968683019273844395922581079724245989738094461835287765130877132208160851207875832548815998275698995037259764250107851084654916685816227851022108414018934526109452012672801898611690944736122581418029352981892570293658726094000305317500467049517827103407200954020404378495382570653930787516557655313183661165168903959895083512307115992476383924677636073387257617678715909382954280652650794754376308119998155571242866454669754247699323403446627276938663863641179818083342857530792166540940233201579704729780918950330166262962335768602681705228511771674458932600130013598664076474944335578210660657664206910505589903576950162000093689817153835748903943557256599004799965245575398600169637191951094823985577060780290078696022718627125716833274995596945775840408702598689118434956132008304722936731638832846353225672879665823525913192776573581686250181676402349611093942881245618304043785045135651203438327135194460926844652342642804717715911552049690506756676970049874752581061741853904963949791222399922092171161424826843214334171120310094498766540714479192989571990359217049579492985200410535243279268063079957150371035378906311157266901277414802726088330531119996347917129586507343414311515772367682258957483276969931398279943033496613004834516625995728286975142909801267139053610207692550333386164691760905024144734248569350613945067544031778479320275435304105853226801328172014803437018983619936973621964853905919387592474930129978092728835361940592885287092882852931795792065639278285476515664680281035560810061133440978195955920190342721241353804996282996972191243671716898461639820821381343622041566233764963298329351169921315326862068911430987461839599281899167614268419619549427909568887126059543412882821423628007341204431899922074359667733763200021418157352056271526991793572914483820743592475681721390910122227621263732812419896575227366485975581492768651701058524151737354006968950722353662480308744141481166122822748714687610928572819124358864320663209459575440057491991224942467875859582062877530241340669005797809617926278758192042294217452391006703621799453721975412512446302266940770105860185030424792660475308935636690537183659415474264377448849245934305419927473121829918454402055734066498225552112145602861574685900030431055981655920367484389694961348747463074244331256565708702804781660236429762666636717352987000524156882096216290589234086861919690026456978278991738914288122032703706212437307788250405565789310065691314382561494435883254881040082079666475226391433175633771986639434178740251641550032200697726037957608945284220824426346991575335561236851900408659155314712395471342357515571039184640100300454394330418105929266439579152501758349683478832353862833312101131237007230357176740422010731282429576122300638394369395576799810066229668456759105027472289650083161776133522223213996697265477657923406412358727444290695075598288825059317438930468392400790063530555410303771062422232580381186238017887783580840663654779763474869960412483728318666916275979916970201282271079962389808305029583142818131302231828375529098633149801054212784380394637633486288717412753600115958039876381508483379408376729563070014868649563250054597129179075453306194015298866723786108094388990060429449438912052825225064917246911981555867199880576070183029199716069315767910861522379550924952536296556897397397020227738142465278598399212265466283062865862656419701663120065263706656002819896024265254193580024465468709001374581833930799000729145732548732401258030769344202283155855495241258514149317344676601480253779662478711016033012170055789376112669981110026270005981446869152917045671503665518728680709680448427321869975365919531614995187430214157232058589189296877670138822492964024190747288499552669381241147288172160575573155344690633234116383299347195528637807093583947406084838219109837311037753570033918770166595083023251857436028737322960738178333133907903007447560805667910143444978626328002905172728625413678971454095849638722654822057027170241651974218897053084302813150867177473342983048155243868863578433280186032364477089123734636704492993193479940717508764129933872654918655937875979669457175023039564448895027489431847299323757306631234854297852479915252523722672754298718051723032204927045967654336339410538102997541425579944388814136688166245595611828610275391018746340349125862356888791708527272034074684794958159734178067656643421094114957653949951260150884729145635268821321097526669297327419421841986748803123449928146841698963305916861907694981608009895279344655431768464046894915082688649695700226648099159260640646508529413591050344769443360121779593336118899173550589639235397110419213252697889977291716263272634669607633497988992199569065982510556604545761267716227037432744361291254289729786410797989820030574464199725153356705997591125832934401404465132301514761000627298550621502599564759293790902579202789074489420742195708211480318381565981648924458531031369748212643839577824362312340249123768311346182019302867645632398683283120955647042709056031411204331650997808879646448930977337990108457268013449873336818699895139386061172226175949243074929455590260821666580045730670641310345553137893736973898359164189477915941655310728114233347700492344579736828553488481342869657487790045898301292205461735358586801388300874194633279967109168677947093956849594609392366194709652723696918171854590323657362183091270922024918948776790118039387145170387094358249829335145729678348946345270908908470217316141845370406998871914373960608529524699503915211413229792759395551325844076870993414179958276265066861172166124352165045229760627792994712300251621884448783589585472945822767053898374188329668480475472334340809613894351410717537909578250309492026937541828920966438405368626124843459704268189824347696447774608315365187303344022157830026853058074531167415916275298282207714692382350746328152653908343990558861721428639623551259188766339873079440133311398524300488397188309408287723918385213680065023557655389812669890081114463397903976265371347628671089221236918494096134608255756750251870631504480838834498200307006088571750965698327493663565865939192249676813331853557953800185400006218713890751957925420754381069818560701121553689342446559519578116984422326530636340355962129465454687503807744390339805263339751331156911270952210111192330569553431980375179157907801462519169982144333717179285807752630562627194273233678136462352400745747088785628360245277974583070184085570829457324873370502835686623314851191858984489350334672917446208400107802886604728578360592941562069505722513898709342602234290298999159545622295398654485357789101522617225195127131848832330075397300591516278789583472158930621513630232771218372958000886377193496683117122023343103953693777079063460629146534140263662027810967725427818817142210702621353086143353203053597834556323289590437913272702855089866157126712897935960879898240717218997880420878595191931193386511206668670674369983633932676415982783651274393103290028047987423371230008773860688832162543135238139723457833403787069448006141742297405429287171657880233936441306358402435358946208645132099378094947650871713916724661306819608609563186618987602920022343381697057225862684006196041013005546091429169334187053729835541254648432196326904384745225083807368391208157716948723774272448967376034850130998940374853440609493656975206230653497866211854811546546955401749450980599627048913717506029233622169823887806677374126589930802839985880889759056067333250449928573086227739780116428684890272227049495986840282208749875708949022112013560605306219136820772722323095277344017399992040302381187794663086088876324107150088055235822550499661038131143416029311117325789964034782982612611692789753624225368288311443770664887745642414539250376811321124403500376557390149408847571629032927848885294928483531316539490842874028899539186033691745192932173089230959124912731220203017321525517129906990298420522078219666490786669674691165094958378404592462776485363337776039374935362965165286728703383103311251069758110143811270828858234609413907046236074323228084530405698667422491985747560093632713304425674914749491918429943410218890930054089263558478003097727880048285505896764467397663835094323525073186870531244025688552157975547947579620299963666161958964631286718481078523914042932854454203412429683139554034155003322852619039701967794911981300507111738532378005574563836946049950211548801385589083316720437858386621493407566499559326716542635974426248550185889523871318023588239734460595605701135832804991477775761647784642913146045715420802827721794482400512240544401359165655771638983042567877254455132628788540420626754446235024667627156527800274094144769720382081769137593968173371672160585004405774677504624054690868393324256710343569177378914271389524014194157623679779039356160034556213073526156113877742589734699561523750181967468685868166417840217392394785513507865024035087946649375033920763079937686740641110160947023122629717295443253918483620315108548954739726968713309612361185073699016882322907582796211182490711209614425892543081100200541583184580333960830157546598652509228592062642655080947329351019740069955698555778265308813743953720925599297111420738635925384611919182608394041356079178934763175410102826416035444806721042244033096939024322846887753353217168707629854723105747706456437996305113807984543836938327043610457750883534233180538098759418417412239718468873857409001195682069452815630408403539141283616162952903476261703103752854386372966289082357089577097522201960824285765248105533073868230993995724633715903659635149877478161757664363385733434101449058694167589615394907283320180145961460286771052647818151514819225417098195539472044937952378827521645827500873439719567703652799055401118726819808447905735737456348949943682680381718733925211454313264041077058276321747359853709055667881935893690900242143476326965573931547480554515801366774652674092307797272788239052565595080340242469645145486446760219859150628308550607737508540082459750479618130669899402097685814966429621827074848428901124366887346828519125907232266808892097175890367448886313802637357840282575557519629202614504865088099973853867218157163553331245029885062604315038918748852241242533568711230727981154583497767547361373666919757816566797858170911410448236946724801393222410535160667852390831577834068706972291478723763596508521372711858501333577590849865127658376447022019521530349609156684812351829474727650887871109972794925194627455116074110970834269846427555049787108776254707474639949691263510580787648666311040007219642479128655771251893032372250691243429032595766287556614500237449106116504378914282262742298575535734204562888040531427456289741115668200047267287446881861750622181634885326072677305466261638332921082673698370239590227438165388313961383994399520679005104180875418764561494666876470429852965399623146344880098879024860412584295557684266397836647470498621518954803313994198143833233387634424933989170726570358709219115756414253610799332508835348152667279822133906533122938861627329957151666224156369091197450392789652829525955597484698798710544703667149946495564237152425580827449813018338436625643037090559403584020787576635340679542326948267517043079763238005949493819010900495403167552098071905376411852897760712323951446136529279731206020434182755262995278398705873173279891351403039418078935121028740575773126548432840495129740360790381943352410912510882279941340959407292634768691865607183044460630457047721589432507063852214966567778581359681759092039919290408916586500428868670554917718582869889240892233598107166939321056435371432810586120294397589811173112663163609989622071971032222502981010282515630709662862689713631601680981264446305024564077596814716262643559526871997699628084543697480386363718961034272065469975398621880803428135033070629446885144308315087997478202733813915680912259727889955652107966645947074077387250033025466866618204423671715514638740626790267083550232277156692703481547934706085840799567276983825452532490613505777247394558916513896858967665035787113146002319165946666039125378249016115653157839062262400662265273223654301652887308969437397548341416009769661830255740232214028408669966266734927716658960301841394313288757132032052429105517176856640730504218838101503199181462760146855559779577860697735236551775725475980363386845993367938604074815558696004518072510549924030607035465281865323496278886747225531053649041687525970044341010929952438562385176011002558895469553090816246827573226199318309287372813557759946057153496910182958809376533638249097302019939682998711424512138204341056809395486128893570079189298339340202473654998511299632922822066868015060951145357822734266743794478864603044708203757836075779454403160200356425302200720474521580273018001946458182398377496944993315248611411909530783892833244177413667746391362760816449556121164292362188378404214610060238189750983789439357305879789270215883392498287854413588253368005722716514188388581492954076629649859828572858784304881152687689225930011203103741375636297157150751624866264039124033080540462073404810459527755416898031396498026201947810649115975584656433848358081067048348428425438230557005082358630001066032183614491387949724098599070605535362070440799779029343493264778565988971145790241825012817477055527301040620629851875503086685998688988516849680613894330573867683191430085563852780910334469630124572576127965733352876530381427623937837100906919236113576739558498800336928867863609831478792101348070491678126840180572994054386633525174175477586039231739937028320777071670788500582213602928829644851429487674089192081894199303124634347960105003875895007349227163624202000395889635763924174914327739216747549285210149219055043085488544068560627003996744402763196196469931899369758410248347124299005359284863494071159773044421606760379901942241422991470690537550484105462316642300154187008465547692009668218977865067260764120424003462723847294721836697952066172433552004200731423426905955081605213518191194987354031483329667421142238460972447303641651767391148902158133529470017777919646940261286177453633917362558764417721674914722099169543547382869919318353011312919203870041445580752248288531439878791258654461702979008989531773953967256544079889608333702291806425626693382708783651870804328018121723622109532642112451261806401193264555585976837782200594256440351143517814925975960007692027697603556323120147553662168016319613431870952993106972269016083767798099711691500012888260201460709214884331112053179756209927868212819332080582047000163816773610923946296518915140521151513852773300991300448827655631829373594891944929799694412090762320810851369797165131660089186643235250136598085574296003893645323793432630212588303338343305567939900452135928681033736417463727980308953364279197968389548496987998459318622414233544191188838209986019253404182523814413369910606711768702910636002414519506429194517768104553601845027702730966962643954756810432923932790198394740233167669717714632977686713091145271368091196839165452611467412342962858806409086225106146072625653724590588716562966599868608146388577057455999378949833062995838575599484293900010351559699713601962384813362544350316421216959281106280884675746042670912966915104141593320914889498077150025055566654094310953493710637547119757160312943270246280787614134299868347794907918371567045167033155357873798602025725283978908205966720529391629742573870689953789797034474907877892621491813988668749235252020156169900953814058690318086426514164244510334255845384712405130322166014035587407651284868092461027143888016532307287983501736711740813721791388563357405362282733321860968578888623749166820312268176192807056929513360554743585534941975734718474807349262653851639630059749365129569436978886657017742673679644269888213488201623206456936365076650811085925159532745271937981757447542159002598886757608591368485630575036879544866434733245729123148419739968733958442876435743296985643745037311403727987793732679214473892776044950396453987991965400042360888207470775382322120906990706572136167208571255214173464028495840505580498396434204651357368700416631664439482863312215244456470897984718597939008236857273555599892502404758662042530123107459666680918446078978665837289830740747893332751635160656763436811666265821104731859644057911758782555549617674033270435084795459157038675722589038886726692997303082051665218864711352591382096505255670699461277499841403714847336251841708489620635926268782567495180352718608729100596163283051645452395667927592356173711925009727285665985124644555873970255678766943703182528699327031268166024019885816651478415387562275134324339109022627284570926022267582118815035614153673926919794124356189207267924151830193947060759232499780317966092940458311044599754640416109889603511112491794298029750982596266179595696262684885185740326278748951531149513509175131803726841118255487482287204927469620871122734238377400937725390480214857133331516029852877520860860483431932648171339596289667435931090800762826406727526864932709018986193707764249437665371217231961509238048194137333815026436486928626929380828603697325259820373848172085373292684506756537178321278808497064355305717991472986659448668327882681676935018133924111340563416256106007889948678559437795237430664947056113672274406485700128343600569779782398987300625710098273519712250251212240124620833549715522051441971556171393686544035220173117298843848993520974978829731031598585925723941937521458558279919332482874186819434919184198068213177701736716368365490862198820165297533484043611256372401902309239609816504553171288645265932552520257588898980373836887182633205906114520511321498165901465124016680637413947354084063384419489040313607663290379414055675328321439600812946169505861288031184104309712128137411872202572796909131631708114341347803028357544945926874997589788714868093201094501879895572859463757415519093405921187485134180152513417250417219047610992390978306900760144664325520428366576530783159006780337127746263097848551128257851354527203535147548243296619040666197363280605028977182895091203642290991712308739381639934216668896070961107220736932537815462236028693087392815639467325592783082301294246505893162887169082896780692796547977216765518988445295046452973589461052378136175604264305257516904156657839145880376406972803623150958513423214659950846813070203358273283934617060627804970552202613982923427370197178342551783294338438245964051849656941174752745678302322257030274360729860109547654241683527923199188696865883602614595236255949159609247526073669143066487110332999423109708330863096032223649264547497949527143284230743407767563407227155551557025182265413248263489012849651400176389931131353435838609686410530344874544872687767329637053656829380464460531865967451539279270591492652216998731056843645446267845037788778379484401456027464411898845087402417780567347933375266277829710742227132760251215943576366598396010648436333456821738217909183460842155003691247127016378809426648278473834874939237801683125627319275369810739091891697382366798477985101819593081744821706254683717273145749507420677115749156918230307303604571338302723039626815712712534255702579429631343749754648383610189151650011768097975064048236263891218311713862083470886838276768770756142872566648261649064789073115385811665527664116018524120490448946556474043898349096940858795593217033192652392265235037514448310035141735537504729764193429567819669513649842696051634626600932905269449981606489850129504219658990006569461925579589654008927255964844211909654696118417791857483763104492520355324660129784545664063764363543828113119268263723197399970511635593906576940378086692142645853849984467409595502675577938540981328752946615799660505945241602952320314583689329688236863905262084903793717673466798818397761256388903028569399482304874565791053419139206959934990086796216304757951411863310329240439015436481235753986404471194310313716487069823938201843509798800134048823627883758743106541528269699031585150582990665146751294786375674065684752700659300948316898445409001848668514788146325336586126082721028725470485584319812415750791382203175830315122628838902925013126401314858161356207679533478117178816143015101127656009397376836763203139561156061396570343754104565001347715278129934111763355345564866426795989642239441830654283005578223676817692434816597598561822861597828123301509434452508089809720041933737370143736062101090327265063163911301238587911773381290808528216167741477465006391366940897698277532779427557051394046217680509243043916003074341830472581352332354733673125895873788640577352504789792004185290435859114003852904767145852951400846028886989450742715754660637010174358192119929643319769649483931564056499408720035901402624478064449260210389901945640943375964004246607823905092195823474298267278553941796330025451292932398270214482607305382085380737679606543951143096076985580772948597231662863332004079922099856077794772789334063471065707867841786253089449933652786264443648425615575051795822843141990554722928851058116481473133961596005678000682272071583879647504865928514258187867020474919567561960440572943912566181522733365862288951190163731870267348414463259690873211748146429005054682224120069008699706170385997888089817655997621904502511178818794705354158529269597240075553462494660359612865742626889406701738628186222632293722974277062526546760401892071824676253813704795191121107179823695896564966157381163513161778481697277071319127618327905351691725766752786250662584080201927197990534204226931479345679423229392654447024819746611043964704858726654330461650260715945905396392047068041216196857345916956075415083655852469818786004532085817159522138841400954347083062151004250559305450250646555932231607126837176517575586436627133379056145890644667955258335622804618932159029227382822105815247264882005113846744286185745430581556595842060940907871719591997502416972752793957856836599343055891433103486934115086321437201083179594821976337291073587372467410757750649939636583061048179547632014954023568655843606986963289044357181343937627386267663564719235889757892498595550322792581127653804766024514430032316783006877640657888320193239850858669235963283246171058562948659476499437974251463408849144162040586104427501200691917186441031072092933187539004436052646889219908801725072819723221778368037734234458693755651705056520523869821613644091704515340877347777342126756808794060076710017469114969419309651904871909670171325602826752866708494564839179976707731324377131586760814479509971676218563387236762556583980063982271767924124317328634121889475204745525732355288597745122518843306701521244597822084608255201739795367788415005603623415764594887821238873558437067819175302268476025500077195098727059694489711796155102615147150947043515109446156605603423476660346654330248710081568610489917552547534624729682931098955336245391151443632862804585100395393030470729098084791400752091094270895725555457620853596446371899321465114076029364346879969860045841011756859780291671352980262345201773890125120549198140261844377297034600412053223279216953692252231468715739335779249014369549749858891734064478170259104712254046545783116264228246447816386118855742370393717677375837387510224206315601819492176498873135083373632105520863154784368195910589737171328291604297453270761219321352531938120640189826259335300999394978537400998323549504119277057397775609451381780005586647668582100921923370545955584387150619481483668284085721446568709624494242364103949203124946310110601179399104067847003738899335867770403002162598743637125570315963449670834300415163283589631166197810933550774957959898675595764290130797557409141922003252626852458140335295956635360495323763681015135527716361702236236911188238540347395937031250248341304941396190222243539857693825434279966972242084508612250794782189079101433158152148513720870186157058592611874394548742567012982767943721945530659591416072760242338914174831492916750145325484990935111777699027016590588110719063364450448161634565933323098178879853519996769623897527985683582659746247572308951318574218226242162694732098056100860229184241632617929246416263992069933595891458446179848124851869101600969679264411933751252714905130615605706389698580878991406438325789574646297885235630583604664554798433903209420896992417473027915100854024528514935630726484531530715677974444225510156115047941925918078907465215329183111545895166426129889514662852477432039565173494007146409213120573597162339814898883355894287836791266606119854489238182901115998984503248588345634789652192902280310571615566853006420497506885004477631474463790842270938691495652784212364739852556041098419119849725119146070466855910027176232214358497017550337315087146161794107494194265275981631903013227276944972729995524029863163191429937306130640344091640853543834429517219282611087822352497975963949569181359923543076105079261536632779579726937814716128077697698852382187859822979175835504942888234561344673118551980856694808403746272198005842746620803119798339004814732364250330225618673325601886136617487388932371709826096662438351765504550501569034517106414236474481994574120143267208205570811635088653509468934079145036131161757559104499859497430075971735560522886545814144305907256410987775804607877079448767739687752620061973814343211398271699713497997392546977306166609127699967451803400954041894402621397488012212028660773676777853688800433084104409642414544113350061811623066241483689987900872267904363953262438698774958748784763628550443482456565951286922628986870668745988369774598341239478352535137601052618536046090596141747767518094064022291556482033967491907828458119483056242915564912383491282132813807958315285515406309335069656980113405305277551959475945214916141083923333579610510675334240542872284576508751393380804018971901762243140176075058173987692678105048415804413002040057218412427900327086025275714833720341423199748280696043161226756641240942999552013073290385163629328319504204890922368163439346937417054941797706771898966346011071009379542091991605413617817814537022549428004173254984340591065905009051442643370339188288215342785614466301150539254998916388867888955692648082667697629525314725271672407242164240281155863822576092170670690002972920293079057420911081784081124278870509515245634383273854362069814255681204039494632475410378337728989317020493170780656066826206431487648220406733526108210159316730937654751892294139098006774245194403716450393384498580242199677564723965496017429118095013983749317018092188399324601204542749155181796158179215445769047489815880093730100539942008370797853322172648310626534020966175779583745569808276677451225959720516578509657513930800552661126826652748632102375350475509657404192600853581579000059758276583274382843099742574294625203967326310990507267946411503725255391786276777251606507595036646654849978115442682800221089591628096588889378782888139556484476646248187771859691503399264534812575041924283327280691073862775529842365280397280428308771527798330267061145117646870057205201790187326289579019122855015732411994640825133751039147397347109342457466470983655680164761579479067442875797359577003045698066675172205002384105545054134824102120207093246780680200593542976274354284701299584185532884867691896231941151026811723160612309941351791811370948578553830621918029529949367715738698241461765837692409945343936305134973966661759692799872823517657075735327090138268372954393560245180523324997511934677674444802681043234871417623217523880943546182450797268097212498031307705272349984388050262925074651159678997392753559234920277969910236027592781059182962645401899718073951122544516188213184811492980114735007581617690531912365633724968454003537587135584229125768307302629315504557286756246406130152351932843081519137133890884824370217027071577625349783136724469453900872533960383312888240721728375749416109493848738493630947486389106948430210126122574701655650652324087965939528929259255462086803326158799860790218846109456564197121370086947972901366866411968834788816880674002199693796646073208263458912551003914025938906447267042832654664380159115362666920116568447213769704559732593278261803734385833109804364924059063802516848109908184605261384230379368852003528319680538125229085043754523301934883630443776694615278070256836669143784231634910450384661093232385536418694534531715476655161691691490809966458640801956449867238493885313155458159837585173286679538813767002779415638184812055880181049721375127949836259591352127837738246425451671638269098533489517053161733196860616747894965722041368065541743672947748940909100370554309503827105711802045606867443754467390029150548570830714661298605001095626943063401762797605598448870156633211603438428664582931944332445299403372208795018383667897462841520529796497649922802003013979391261985126354106133273863076257074548677921336130599420911243056826740219271819815314575233051513737407577153965800252694805467138922757903475070217815037923021549966981885657853461816909928951423390442249327508497117682039048149785198438117244858738520801828231987336523867435313663491222012619162050312144699069436602202403591556578540420536760231007801651178175676579058751136431375342902663326528003619042351856982924441005052646826601431865505642932512727851189775493134701459364031386263152593827126350870577605214705140528153424323003152407039605596579279053126874526159772604438748923159912760681500166191092432873485541993401391755011196042525386845214366409598680738535242828931970905366492775277978148016499558110519066771859550881531507087648910879209839934470764949781599084755926300776225339057115720281774494861440933264926664711836894011791307101279217918720427243714085267716261838719942604911254802564460663186883280620538410823434753890100873628021404437246449119747045675462187155369864070740262810328920662926296669941031411829177441115438563947435899720355103602109146991320825087237639588096728961926697126885977105052353933375131581540974366108228693036985773340625436467091328940890349379227876139859725394976797349333455414225328450050267751000788601025712875857199345045202308839324288348825522868012879060606096825232653181953588589558121300283829801210529930583839120458357977579316305716579659879828253505204265199247578972433252285733471365673657884725907352688600105356418921365820241065320315484538237591486402099296486243179827127032321344066402551149578878804902192201463782605631545982762306942648307632261924945688953424928122577118300760544848992615892327573970099746749229434164732124649684601296891633073141183403486429238588628962001926018986875930290336520563373510238706618609163978543692155227063945125129051062395524804086803314315503712064631400776339018634851974340110721605131912914520797830204750792948955610025594524876499148195632244252678121032783627106994294873300585038430326101509410464691644250882807696942855184248387869543148970119615625853230782744711565778774143784295099189049408902901628292601356469886560973676436988960832771182745287868325319498032910433330760634418529782436682086262649936805059414607672989117975625143389621473420306393211963633205670635059250030377722977939472609839507352350556152983234359688000068201306789424094054081963827638919391225657972659011227468959291588384752742996313224622481148704694567106864555451834670249531223035693036489637956000909606587431347711026247348098377840733132012634974953733441779152202878012642057925730886733858042218378963079743814287589276781428926712831799201617564194126028475238979796295476819110945689767162753648000036588239726136840901763267382825840326869199788846472438044843793113666803115891748659907309579478267806175169716211044141453741366806670105763357342414019681014275244031312528784130593062657547430973553525206303227647627245578609401854124707562422181244651299066725845564769428101419328442893876006602436232647637470833093439365754680632264168940029436888790935420074347114204979034788440059696328318467871185886368352271902179894461103909501117762742363801269695525180639633532549659824618111061041210381210204308391355817152042482292707589341762655001577686596638062545538266153687162011511571673422368330035174724295996968776209913429717149814100271111955806339672647139179385399244154157258797001110159182907970237848871329350170153218492953244687020940380164111277761272030744624627751756693521624468862232893064819355117809205378786028451622391060343306227602235426511989360186806860147809125816280085737766292105625699226410314545394505116759297766413331708399121636350958893912599723448021224278049581563074773417922561795706192194617674785732695500862566867051232084164224285249048763591505818725294263252175857366709964281082334239921575781217307397311629455411656167435198744289897765271652258033921342356829714230697503965409842686532010204191455409742288336538588864260430948241920200995138900043297939674450043770871083542001080931321660975923293161094123789291917672015229396095599374719776764211003542703127765558316586375748009551172320047458602740268134535563013029389197809378286586367776907009317381229051752877451016434684877299636504901766395417306483229566979774858505932287866551253908200859303787539630881862456920289024204006683700568043407422769185543536039190760701097308425162499248691313453828978394340276115838082070955108257836293980625075484886805050092541844329789403176841313048169932386903456335447991722718215779252287644453286930933951543698330052836338513743734378964498825447349200276996698147334172127673539632869670529818304675793042619910903706037660919506754101399414256360868148875006629178972646140887705698118547291071942565669461375298533267491774983760936529089641397857854234510502061681707447203070597961653724382793044394939865757361134232024477147373192517675216728275001624814878730777460148261672060409902671778796188052202604156653861581529289260007307821902843949444528314054935566352484699190416814005964010824684441082320716989408708730365368280161433312296449305584013140089926900617819050755375367053821509302729907443721990374563854948435361919540057734349322869744616460691575074669806396553762201288103653555443768580353342769432154062239039976457045601335703381120802180273601633684855907441914060105090565756902330562542198506042687130857407163714721618136436803160588902260505026034522298035776042760362150156750663471226308658866138903456935283589412731913512373938522167117549099131564121501967957654671638685099168073055094166581316696403150642189145371848679893138717449677642318909128900930603963670221902389568104253665717067638803262296148292807590976377675340406510873007627900059037676945877737696514566302760625071412431679329552709423531589012023807075248215319956749137903610379816051058319229333479385535570160350086254830438079451526667841495009848230813578490056125142393209864846827676682781462313756084582423447763549051305001316620621926595317037932629371810331990184076384845740649109915434438527979705860516473035450153270935681856899415286462809554431427405273908844553529166303848627745663636201420236623657814654882310793764257811259058194312529821689056173325438210478304668626066903886783260692593531278502901486615730489178001226086592584027725109911169407518887772442983346742354715866552363961456244324730304489756679366962449278368179371568055490970263219564786211207864961393379233515249554209754791812671134779747398878637594508835705937140772591089269795272617785432324126874172840394091977702580893369604303661160054649023930185249252863157966140159901519015809289259442340539385363316462949243758584938518117682107359349028110451659927020209885160387501542770114922606771535912740451410440929319409884190201756919848339556888413071402690423856055347387018892659617603725496574697444928667226411372448863462754500618423812373703884831683245424496448971926615244352997199555529916402562092124962814530399958408963753646636998690596197021230164189653943146675684279661650993412897196124780205910894942082034461620270477393147713781173169713448463408236679481628528227566118166662892070469136319247998354269621548378464509515854105976754988505041956733846208438211051962566744713961449137751252391995905291642094690733136911212488889354594748553703483833256377894829823025492289432829371099465346245107582684000693945424492605220066696417171706157631448881365193088813023968250090607433533478447366885504628291750603134153635916447650431287798248764953367239073394798582423427266579248117567783899884610084825402746028079268774316940072144743338502229175899261499027096386105870464613726248128559768615588521354402014442354349353405054144988480742961307178064461219162118384926664515848314942956554917787173731377336942736750761918689558117067823335227588425273416268995620426231249549970884672087934128559123836532228046007156124330285092276256734963049801988164087286103959454074976452989519833319725189504885595341461926235161112064536528850147488292745297600951924795770088254813498648006860515331941596041241427527664272196554349934375638581019264772037967936134439356848321352292978859798379604629126544890712091846164398435612814070039875855816763215216827794132370336849249968342664107407879469801398356818495945429809641737316686470003591733571078131246686713448682427740242339639723639271434749102667801493581978505114186964017056699553566020611630591613931790510096635326017864224489015856471815373779907970218514061442429356466705251118394330107836314256437237886445983331124480794175921852326783980260211773651757510918449656275228006493886678583463297590019620683455132883584209347017962736100597120095447601809252347667694763069628049292061415681461869988952760586963263488408480824559268238805954290720409112117337793242285951464083939894321276157462459725930104795402174409501107865406731705900031244019267507789101232195464044402687725746788079638196059373469615815143556395816821473074817572736820368057801669690549992114929829568936522871823885307419981476116089972945345160595201253023823121935000155247465668861442899395714943301904769182996925360297135159300111365391881457587103234975835909081412822777355687161126221038703316385224578305998734144830344165439131739572536791738035373872855405378078488342431999316297260498029092946912369729686341390912570720862135039727178479550127726267188514265330684598071515541434381784896289651730710158217461705713792916148273710804634597620556934773561878931624149810622967172751528177293717135245194213595363454828012507540163851935413637855068622530009782701987520660783819339915448326771848197798249974871264768847235740239437579144371378710552460435147672574504929215648861773759080331708332711711229450595127766040272097982970197382368189968783630677211964557855020008363483405524367590700440318066551550256341339205630173104615377875586179364638363860178994615784750913661557320655181609990117091504195366200644903303007209763116147923936407392664966637992542494644204163885281335231007147080042223632483219679603497451186421127186081350899918161403801886034080672369903573236264075356123209993178408396410569117015767066372813863170414595605071271619584825187704532529297513824709323349595191301583817079164942879651027436448247690029422502567052684793001447190570122406923730011801482183315613069537753945261455917985370373842194695095733123815699528583182990554349660213754970398830955067764753397928114854399137862584556883375326572991090682351864236224264544875466904700879059286820674549376161598205758772626763317054499699628494157333345090426540096620226305702753966745700202732355779918798067630600401877305817750946467605777234288842073535865846745798691506984752599891546459996749049663115375564634532773198885226984140908423141211828767059934747525512519040243682973428588981917710964195275124864369219380402924308000306758153880054129946617099444618002130476570017425744207598351812794712389275575476399151694400414965768911123660272163791287575144526540014777542141482629523820710952220783456591096941284180549429551275170905434833719487005696325019466434299405923059650859572510870731267911618626467928259629386434479554217192202751475186502370586817128723593175706237083950521351291490087597508218886372355179219865034941087097344071190918393933917934775320435542041651877651318302727986591052517873669947585843478846916023952889275496467646083485577316856519854532436029257822726059149908893135626089159982735708600515869138245657278860607800092538544542746297271393821225059350501906049373864075505074040070259889786327030061007063439176372438587196137142984124517116276785876154530889047444326727358484447760787239227071553492200465877116740374765184800173752129638212228923349430267744721858935657443913083279886098323520196150193207597084225929288597780863140403305961828291673495811404053123161314265207959442428069511136081591082274522124510816245566240583713942785406495327800349392055947161615300301748948836506371273356328137746021165315159585733363170032267920298581174272316989214562337628379310379490492290728943359543837028033978144880422744020239768972292128960887648034842393857648903725061972487137747702444836995900862356982711260364264143489782618106502396337712786346796112506170046220766965988621046341414846026900167775032719858115271836254640756838635239430168776192437279150650048013420167787089328559071982823046533567351337393112444548835658406030541071269477453955667198963117277723068871985168341611868422518750019936184720300461944573596913618577879161486764886067454632219926287319067527038922931191325329173264441058519444375187529853079944702536753601113604952934581791443487201953525694788671684244257672924275775291615401711661556548625410250036345399684953034437909594423894870311962419519014338888368260187852440130324646921207490650310859030730636056618099348238296898432132810572634908934374541451883447970815328606086019614569744851705982412992617006902006231247449791018323887644380953438645380148120317038436863531940499019120489289984654727788905440604081768307199313591240701471982453264081173553181581657055642163066840957566055985905294153198714380256809727625998403866554672428103757410208108505008963438094234204799874049984140458097836976084863560754440873882951027349819669445177503236502354911190492217361579806761028030423458944217127701534657264614954100273542813650824832699046821426923201173762272712408640512422790131210389873614137280185755881516531606341534821535719633729605772041042144647279990687885009590959598948704933081105111274954212291865078604777843381034191873982626049733890067596431613623778665348608595193453270704828372498723763778781239523889139887335241835669995820780740933333589484764059952690241487542083741618040644059571231009579125448878449112066510019182478581270727482300377870319927280525709450550599007936024688483588494310246021494913316097018059763622814895615131880753497331356600893024958136452485177420516033543410339964588013242522509140576016266803370661932214715780036650360706411682377726021099797364948191395389985664843892521764359232366737210813950788346993398486147002919337142462873720577416648353758030636564708702085012393221418345906230801207302780095061065307925075574437208634201610781996157559227420001634095815545901760588294412558619194183076766560486746334789194896246542122330666045084408882393733014634156707419558331073582121377831889872428083649379487221174303663377216440015179044760636128894393626382886489612634856459592538451038195141976171046761392449041072010518302321945637458234333522948584265730284636132360565993026703223146467242717080286465151444816479225270557598601401491212468806492302337425784259843181609256160390637238115637936046873939887901174196048859518658576377482539669172747786480044070494611017755112630152143816548324183325135001627595238657294040420400734914464257145246598332480261483940411317268166319779104486816833224753583796614890465819325260072986591465593270268646294885444012624134778732796824194934307378444386938166297755062595224868150502496642843264453212931719965397024151308778179547224639045795736480852014579198759462797474611221943138091066624372895166745402768911167710471601871344276096236748858564739394282253385698298271261987363549824176784439300302200784933933860736792596836000489647061903692578483648840064332175969253689396972640302668432410548710863231464642546622147765678445162577913514864638512203559119700738424225558360465472827555310513127272958818330662928623052262853396058513716633832116867682394683798631236894012606157483867607274144956353107634334575940429840173766235426038622313664598016366572540491707352140806735917165225122974131457515188856724890314995002856306303247677099048371989236718503100191970489909281968000270691703257470406529646803430926502902644329611282480635645035969574506268752983086680237660705254009243582271211986421774234156828115557731139473295416520646305312006487516948588322768314985202535435551071371323461409963618027335943200756596583975056128379202220886678921283838607054777830591639095159900042918844175758395399669780116784730817271645961408722515900033006608118582030510949987313042519602920352429885530819230545081662795791524224774445824869545846118148022621444496958400029995441639750451347586173063382059987613808392788736616223109474338714272596265300864946437691065431556098780257951174058912728306473799087636529976796162339201763573172592291473412261312409343272409955157396674521274643078531098350939639451521919080598257900555980780629930914739088848701971232077912856799349456912465889788517030688312583246188977512532463386869685686006438770107651863030210816236921775649380254853159666548217862434658834058589139236475139749447536908819859077691055931861558441777379783887299016022685818837647744862563671462761920432606939591324851460236038916591889059143024410315421214178667487835755530685818519645941530326785008015962222573828829752144982666175202283672801836060676739551415524012518174739282576579560451054024958263109951061897961156050953213513536486875436974120265398573502275766669525410116638160452563730874842967667492041713016070237833256246114641518234217279238735667603145913972240310616662147518938297556677921671561836322977266589633477037768483111236741352936244885172577723423216771461391373169018899192015528075287109275286217168618768369387553666848264778227686418207906843074006777997023854057320610405204326738994822184263270205660262263331871460449866724842432559045147305320915748025748304742255653656639292313920164307372301621564871832277636615264924019833173152456920631376603558369163611838171150876456185299687163330351920435222507885087967663294915337304064716478272577204317213431627761362996627857252038568877818628347983833651523129718386742277690805375249942369151963277554740662693169270154767160900672889815337222320975825063657755146044412329541681121462105650978166333830180358661650571262392136028752541291106777517580293723820992866957501943466957912316654340391797181603814236878607463404272209742835096801062268539461265057211023733707055660389834703645020927134965130776983512469961928930516962993817553849581251300902297666712971323739728409914331265113146200475340996392431186124398185918101569546574021205072937373800160169020683082952661549205535247993500196230053446820656511101982680022422913630113486911048314602616235533195163642661486049082326304087936067967514307464544770610563057527842791318175591631839453151862200742035435831547078281295564526297226205691516061240696598265564532763211195887020624770080672420019261223088764213268900464231264789066609143429082483678328724879663971748211847354344782859808390324259248509225188150290654868966230480233297977002079294170987426940709670277879627294862930106475988300458077975111912613935040047384358775523750241486291712116655402044782424722517864847991046160354508516880443169987031989225724664732036177232876388085871209834935342301234093958903390254435241689710915138812428837301787259125354306086683465843189303311950594810045583262993444399473689107635710630701994509240161001822363314584188703235957700815384006829741719889572800906531343100025354562608861247888453924017339840048620039141841904881621175772010108880346811446677679637900035652017164229292236039707667967712511143614760386720824180079896069458990488425957854359278663122613989654273169640794259485602490843707772886030861007651354249267969621806348438171134792978473944359594735771390451520893174382604942749109753932114413101466916768862528446566105842962838917972744939844849602444527000795459562296808471349325324577326467169659663069077017559206077765271889183004961214195991310994911314025948575556127891036303265941456086760347809455013528850320187946974011886182532415810706195129083239455291223158730690740749862230465127030484051987808784733807739738124024291821299428872084000161045874103488253703164812867421997421331067307756618461010047722209476031052984148703696725130560014817366580638472954035264246869367967689838536730277526858461816568440936213907862436134340200968325377948249035066316933274309412822021136484055119824255618707642841242592847332561239819206618031889143855286042905418839984538694398236807463505981466368182146732227916461987979931277073428834661588396844926724146218504319575408068597615358023409526901661191977439769950067311513731837355178246051314904729483227946843425318227290017696810530400864279544113452298816588291442999575468487303624173769668028791620924147875258975372320139868154156014653673380117506259613963642108328143182855294333267446322109816082956802561302658801534029494072572785028362605532534579213040542363225473830684847677501853048918917236376541811188520629140321920387111109225175281909219774717091680338022650967215497400311831916238644818729813406436281245392433566259672803558530962949774629659720489543973098282965268661101039311090537421526416108557509774412217586096406090807764087049456342928275789393175216489993301115177236368657722147924861526021497028568755268810226704602132335998439136904639824045231366759698602014579317881915403785220727501635012909008400451119039575209842003979275176653575172781440685891444522818071893989587744593942876819661415255895285048006753389888463840975406851612291558125160953405261571451515172100900925870796613852326122321014885877697348863874857812217425784618235741286173184611607604539953065390554532185017373484382157014573174936715310366173893265699167759148870285438375699001011444949747208502123493794400011109316343566621118013667929466326183133952149415068606387273137769441893722291416812506614354602708297028698710785206347806238196817414230758123307072159886245190181713498472614166737414206027113701986627319223908192286088506444819983979975256672925716249197058945190864095268005961870634025135316890503472259640809228086548305455571088341164898407883927273936171913366288402771357726095454270490021505703977943916933235726508543453281872357318623661475888908550419676173499660206645909558633065297791568541370180792668822044325107436455557953469663163589246980814702051623352070009322102558104726036020055213310948969661239723637916435268699030907882618752006093631000330720918262951025442018211075005140625628538526812338569372757363354729105341333656970151794519335293100369926354092597076070671780931908111689119001036217663044660830279004372093175092120984932979895923747130104393212055527164269844410633420763013154385878637593746548198363482067627633911649786280111052757419896580939668425382677309316080080580890992087197589159307420463167687278416983234010357147552252564424035630217266580443564295002612586209322908533424242587702264333753262581053975501702480246860315630235132945505354868595683724296146991891572831144749298143680803303170351941037507690582517346005591588203751412922787620009005447689779401025345449718762397823131692052030074390849102691085110704097753675153620226763040229569043011636891808599863382458153687924467036254935641540226873149123567796527227789104665995044857235577934256630761696979803423566364102919481706506572196423908902546396648776725503640791301167359495920183865323119507087908742810700781680768424103345016115460021940852990100253513846522908576671444111402926220398999428040244043787108356882012822631354374010127348228168991414104109071439997878915188124092077671065099477252994438180235770917092398696788783871948020798009596393457873047876710362598202491481047481912530310730296930634407920474923868709283944417007007322561857555123159735682465420456902042708144734610598205295335798333613542362607406881934423840091405843296020397240743972338390839866433665560404964230011309421907032953696045877042757025353549402164840256991657254943454592877998283330859873895155881329661064811324199971006703927329232776068454845500551370206783746159008307919663856051168693901861923124466394540954913676065610979069921873126146301146307501726522510646737247451936778006326911758707494537723035815801062892715475773710014044584250518990075707831363183388999777278985394243144731913087961694070363384851971569806416834116522300989301275641130635743555522414063668417821983363837784948797725894451932350781023302392999807142500597633759322868669688396659705491685200908581645760808865814570035922991387842760471540581016692278444246537961076212182304350010158275254908353238552780463086566244705681649514088565492645734570544857377692074362248223385180646865263895041551879868514436729993362716280735340274364086575864162845097924571346951573701670855055580053677125599221500302347058681853598290832690768700681467800872297662934752011904276175557523985089024538248137659465777625587811603011382138418369696196144187848364966892704878509193055340836288458326807205931922729815141517448855757042978664761779544872330555328014878631500328879985404286385408263758144992024095293899384810687348974869340920086177840102438086633287348505744905334328432454049706710897839101320407336818821875171793763026282018455804711665410784030470754462245739503603787473110510833691876386157421103065110551610305862638248277191980243992140204639688943180313695488237254214897809471199734231758022792674058495983251761699268162463097812068282347578832618479354180847515803959927500106346762510337659888263653562411536317649116941358837144619546066626028611605546120212860233560951835851481576092796163944331579738044895425142663728633088844736392449590418271190281469580455691457895347793585943913774396051959896015604152225674927177254717929053447763272744526238796934149802698850554837587318639515377222460232441532179471709866272997933119801824549357515570437696652819511845431787213237000648750084297186953338017829609612300158873030942499739944697020139063679292619830031595385270321477311724860841933921954642803037538864311877439498557042977244193839842777640613173525934313204331054021621227985361130331217959362938602975913870479897720249467752384680073579409960625046280500805382322101110998704317211004801615474256166972937814525860754387357968008889822862077723485969584037722721056037162932580506709373949932001702624422845118273209748513571044742385749109383133850655948526797212711896813103833449229778166368094302621851056712502876592033172001094930107021714543564187567874818160618294918222728418757017580089906583860333298018935030001998197706344357288793863759207692027250796464238494374490012181789178469777281445414365683639480698546793194694690511372970654514678448375607736551525083493564998618307943064884894118550985508399338871735251249560518499791345842784044111304596040550151944728434687701272933221449915372388530690921219723376694786649759324545666395201469097738849846602442737003882671386123062891133554668074174448333221977433850710406140056379543577868558790433426492573788100797783192651476746691125587586940611420501419448026989766797005256995291061741480731974197362972722363467757797937625739874531447475753340279687339415157053982927349817153802425496509983233338146212385610403754948193998929724536937583146167430521925219412208913515016070963536604822970187464125322143352435513123638224266265689674775481146102115814341420904582520220789455491540976959160607924593622405460217003713502986032981771459592069175072705402639428323479091214863126145614829631792679234038257663878647942660540852150435774775841774151949475756594600781592280880149388041221637373228950619454326079708655787511221390681553956103749720405246565667129292690718977566722145971581066102189311998005106940376356469520795373541195507086621626065142602743032622718128288831574427319501226679610751031093824004260877380520267389660712028547053979557412506825823698847128005480832235655842107221284381323351398576248953984706967946315129606211711775820025073099515904715974827609982845106467441609752856105464254166501941371256067298724713494054093903920480390308035600214502150544622116581678516704257894319456897877304517786606915728934738601191127615453845035947577800146560441985576917915016553413989402502191928295658696873250755177527452013313461437169778926853255326695206163975478416594988700882955298029025312978991934515693814955954952478502610421691003574423154040028573931551391880560334345317576091359660402591266398678489324761403043101867718906872866489939305373460217309799467483184389707618649951814843662838182429447803878791079096285942561859893881902196906480081051955518892454930908887767411857131356936201993518878410388681509793308271142188297417357646527915479516300799756906805523327073881585837839904653264215123856554600978265228649728180088510575249449998844468899167120757823179115331671164308266459876851623160478735768397075920795537706982144254065853292572495584577607127717339288649585265160005207390334605040007084999997294389794577331005664333044679673633505390820156990631217295207474651737835266183164987404566459726841455270720982986881653586605713162298498525669295647468281562435914085038422195173092697648127121926096744842172401076868330504100837375704138736760877534755260691498106829626485943044174537846714465050498417918442732823512212711557308250659662642726654925530127481653377009412512034583032351352648971101194503321865599366394206087092668341998590757585979126552968986435127346145302989791781395932550230753578205122258043787489174395992334943670817630082881465251760669552920362440328828341226340659751318661989258683235014707279429069242985706940143660349733254988853313356106750581963590600269521670505636679062270096227773416738264158321943475874975483722763607762706726633958215039583573966105860512293773902231683601522412380611914884308045653700337290026730744023262917297264720690034003581094027762146264577814269820870972473013735906595770198160239674895172391157302797592656021679219905223207787667981456051405819424843247350135205752106366048367868684962580695722606289005588194664121027458735497650920285339688311242342159522686195174959639044911257553365602544257614831191239816311479855530359285726829315328826352230261734421682622937433045397199245283391404155646367962183002937668018028152343094340162031890137049098231097522773309257466051334802825152313426630487309306199728383301353854361406818782324610623352943624230085999940794333548847527455941289868246135780911169053213852327800144358789161294624525053203381038381935772305620021396026463676513249662814986788792892773129232982103532371465742138135990544073486275045091626409764315922430674963871425618837524214399453116395127983888200958579460668829661655664138729312931749730834860938553426616616543489277151450011039757622587545947030687894981084055238869690378810060315928080578864248345027530302324090232411705757397689149381747964397563523701734667302180249983304785394796785501812495531320066605279435209842821008074131255388093295059808526159862401719006289312204479256820686894116250482278416234095522752739111447628147413002545588616186700058980105396786088279867815323403837042949772528462463253922514516747716718688637680448645754265515356720319329562625948211378715752410212369589915864941162347357490613506438436456122021580863110506836562360138551050307532536531719713376852766281318988965699722923752197849172526511448163955124680572347127530160509882474767561064621014657567790805371512080853218507163777853827606471805092837122676422930089287753884424997987186657164402565241857163491267136844647408511021545896680688191803105911071464883581040403796387191383961760642787007695362590366290921247938416693229037314582591530580995256763556433495989721132412474352093984539695895742732179082282028080371805635235985108235510985057323411340521033823486382560346894432894030883141350427931419195099424568753196344771166205510499530255501789367155232472190758501659218558414680821754589166904969132682415469107209883743825028975429774374866339489352936468691175170319504863047091451156379054840546858216538933429448536931900698080221802522597289616157173900025971356225551778529241084558910749021783967655809768094266285192482440584627153293768087773105824066395966506574247867062120141158851773962940954817113639623796737677597906876768301022908978393399586966455694386877377733888283993152569459190623314821913494078471876229783396441620101312551576266496957432357823747467584331707482335061355054586806162264685015438679512325076615423584440926401057429339541643974274788777133329147720550151266579537982613731231964694922119324804097010091973659183883944536222643562121283803318827518495457423489197491982097101725274604530420937783502349034424836380944819141820438714265191924533781777202690756414845439272114551914699072070615035663906628439772031588310912976812400580297930761760664877904052396016238832449792635025193806973817573521802757230676222126323955178465060866740786952881230822589743551770194166256427906452185279835958440829199983545707060532946207397864409382915461547053698134351585776079388009661588156933535662403467154475215896255819959004566296248366055621381857757659300687313394521525633159547931333682536611798492640166842704248617895691519260896893286094673720585449385825169513498673059811700003915287217386661125988510752444266003870235896772854995540580389188330881398798167869362926201447352411543143282882330745873982849035803403967616382438472403896489374165216878219497923014512379683621216291466787782155679223499834814603033727480432923522859085213443591252771257728542335895817546705932835861245132530180190582080210272125912754788818090608157704083773024862538083150845557289772906087914556125720682989655223528102611621389226366080961740850952590087540543298789708073222608480072414497977786399729865102019869151845969553128682550672153406909778075510025474512440571968734861544365016029544872078138917932949473212744047232080172580816353733751949767479857905641698662924820826144372730970509222796205261116510599148203962011025963970789730682403119961729827154967876933355509968230598854755912614131457364131307178764242526725480546432709042620862529548566211939823411744747750126685450700756680482614080835191937063651101742495925148386171556227510298151872050308988534857445936454947228778155604262070278680114581001044092831526155638224311917086185491026864900941827145838366057679834995026024245306657047539263631963564167347106437260259570847585318171667054050288884918521967549932676903948618930781814868435739505141896285790942200848851586652951952281950678018678672550681183706395699694953277531733070688825969965336496996048587856007805200974355513911944285860084941468330732749818674453272001559112734872964174068445206391138601244130914409644316582564525862556718170933717199076333200167566230029127117757240994950426209113923262594212276144088668185044323278132433029691983115298599425450900016662111108938738158565209204151475180111119861206123552273049295563029012901272253303750604090192924933104149950237790437350052682509004236079135422055780615189712355001575720528192945029522340675012902117344661420917084319364675484798930796390467266885866627261319646783503589084946127563892082071535536065518056611415461501878239502254158631110564150150360133934392235413760721029017090287815963236113675741742837042075280752354542821417742701384794762594127654583438004238588104405504494511574325668822992223339010922143980305982877112974366337522455649269597888575153729081638778015529467463213119876210987534282657744343526993775956122884048381540336972144472458495937202834441312916857559890059286144009043591002497949464001380866945344708832820127112568937230005902519280543757848166357115748905103451573448878846394938704604686800365086733099685737947693043929605621017034493862544924263070443892027970697327062161499489506334726798276818590100851589604851990290203203675658556494404200768630872209772803890927280490501129033065797014454381804260213149229634169613869315504957742660304465689628366238934323849333766775153599703990440926258808407449044387763454662204252854051275056737317076153686807098464369014581695957522286138604781584029133731389745239435504622406313629026412846068462306793777108263658923327063850771460653545226364803157151025506672572344361688579400358568090878981694936932028008163447577684009057438576277871199227828970858239908347246598601328924953426591699396427958962334467929024086458197227199537747083200699824454505110831416301681750610761082948335838792802954172600956260250548825078324814351203762162144394519369144179761006573953284498072462333319503222349805752523527150261318705605845345152054381672089363187179225261879870109214122131323117556590951465054741022757077617572603141649879764399487999836396699326076373634286021681589262330281672964959959256149809605066686046965613318060751880218763500096691082987041407856476837189273957502080605483498858000230149396581575285710079316924199089212556976960463598438099043581792349707130353596954200605837367666103205174093662781184343143740595655345427361131045593926855282504206152974882248895102657712833206308372004113939799685624679314388025442844444646543557258446261835218081607122176479940671909089870564202264670402235516805177719987965106146964512063083309901065926639850081440383447859743280405523131605570115165686272164253537271945040274409493412870986855047288523247694984859650938432941754692244865773042863953173426014304588632854195404335850619067053898228568764088472334277074619556275904136810032696804672934659451260625200002388309480165342502077067935321804495175280261624842763200940922325573368038201590200680460376369590003014989848489669186207571945107377279710947298627511250053082766795635388592165022802019578486839217824034613295348076711770347537341644851761268469794940424199469467711789906044022242256195997339176774945985853015380137844828425549253294155011764966926503735347017094751410361590829691027744711492303828863772407264222193501586442056689604044679986833477089372539616590071295870265743612587029467469919756413393516499119113553967488232987585603119039666242250291181130134979820524557988765143309640781980738937974276300270752720715662519170358039671824026829973797276036111564893300976983680202448691076709336311176834833547426642179016153194209137111511580055482935381843603380168738256378476187914997687299752152034925620129332949019495520654774683007619846527148743408289903712889317768204195061422672290271431622672384607984243009049768477795754168468419035630039121718228218754145990955762136883078566217828152736550177419212685272359063079701582573403271422318067208654056390280100466955673876294807926748006749644872355270661596196077168426896392928605196299756865187078491378797533425857383482835154120842299603115639820814486778937210312996276988908033244791408145187135041112576558182690905673632463994737192931874910767552715473113240362065263892393159435389109279438791639246186928978333823501810668443169543538827007145066833237750683360452985845712080486542463026174467017035900426799331093622019593452657787052436735806378124428733260879410603619045536480856699700461101812692702034869711675445586771704608702903945929010400166012265180267759880770279774736115652826360777817200220628709181056760111620864397150581935195589392564291439533215275358694086442440958156940512849936248680663352269358068173230049193750605367039680667887581655967784044469175388388012178847452008657294272579685326119489159732412070963368957063175212377387066463794921759106604037813757580869684906280607275745295157525470056780477947833979745808220680839105702130056838073194851744170522812893364825135423855188978267146378381270247184081676973833925539186406322028142589765954258884777331527574877697558240364507815161582983708383375656148397249810249730801568922839645315263306108106103007577783599325475580037673090976295506467031500170738427930543585535810995137144706266487342185271159955324619667249957853070729620421252954424028189330165170985828432643399198585150374517284460615323712938771445269487748094510548811940290381901701972043413786321168293735944138392481061576851999429156473175122998611530073385932685819766544274227686056223855965318575888662836107567654100793467477519688201130354725873442609545284130924963305804453863613093204900401673525923232615413151530628322142599432370512422495123196820965990765889700654797138074138729609619550753053739576795391148866551293965091399720946610677968522473691888119820385777687146222913636635555226570737434518509186049375537292613095347707693180119266527552377991284372716687192620889892428389034155291460008780277879057301468004800219699685431791197503338207070176376020779805326605773829202740872720494340588257435362634001291166875432383185182044196009951582830205393300651736887326963522170463572327894341020805406145812812380730923493952936166153074737417519168462526986198428856465953580220836925306432682058198344226387139054435530422983239218550207333509642664684575550416068306749308781979546695083488949304494555260378676992909906642390190469111861186340162490735768702037937598325343403667937520475070226685255633356172157824478622210493948103355721376664700352787267791769825303010733577365181985445778663500161782501367922478485778707231054058750309860516575332603208378163662961748436363141522133110961028501775383474976319672358502906394526509769413828149336083583076798911302168361067612517675622516395827958596404173290606984476378085041838349470741818368366172678743290432508189169338832692919477248569866654609902554556931627694887796952905418569840753454300750960294532662379882275844112486865358099336438164785150275820902949274718679296849113436333149671950020091428587196304681451591862596571714253188641285269419744804495430521856225585804268174014240063615373180034146416308132019821860525850025079598514850591865262626072569875435258134342596348441855769270151999314955637879759583419766854028745207975242740289614571309511502283153026669975628634483560968604513108580701232993173721062122763915984394177050423331577210075678226239584438472821019546048102475456196720071754046832245764458436052204000433149906130610117636852622965721906856718659467610187017597921070607503020470284868175790346251691111597110209569347448271394388776497859635130961094882142860930747402130534015834387354452924942795824589727080952880825200775050423215794507914453664571300474646373120922518722256588525375440256103093793202210602648506946006350766084769075929204538940625900388709623275972443941747674696928055780236699059170759129186804435997065951759851033443006376138777439233724982467902539523899177959087604802252260383036916685813498756448143292856306381588585095253999203218469268429493171186632911630244825540546381614695902004137484581574764786914412820074561191811870390586595481650662493109211933460781930485697282615619541759895485085075428056530970399722048582265106279874219009696017716194833257992837363323068416486718872448623126702830123057900252461274827366518120736849875365103304606154166943270749214603843801307257885573446560332945729999090564431349501803957432595999912090757344807881960657729352292419526955410966353383733574163090430472770964743511954874273685692405412485916393964566071881324782017184665068341506217327659298839190873435344640291486633670527043570381258280507723303382108239833441112125551801897292580881078748966275018832934876953585087876512650637955751370108917491932381921317637897666127637895996004766679544363931715125384920668855614809075781265693273433065822905274989990788887111891308513132192353820256713947794556003451030954204248902043142734660677320654114897098329510342603718643711418769606682878977919852463135942046483597913612669922314586529901637479186849538939139361086296128232739115666877456444035443242109065871151320615015082596080420447539144346208003848097637166824833854163301391587967121032968014110121758554589093528181660296614116073628421559712723817898054964951177625990339985858819429611189562728154202357044419713236767984546358320328197774076305128681737407838667285615192993117451580139973787195539427005072033164346625528409354864039502992299212665044629336529882676649557345062889612029260095758712130047683707326126750474825784632684520909092826937833602577503418251020301974850159615141044795220051108253032634090335678240060759697659909957205638752055170846921299329435959195832664669926604948228583243225614552505918538486996777433463874092134349350200892976809859717352988591198777518080062469882366951348181985823652007255481710198009219846032770059895347000100639528566051117563890332904359695412322685346370133884142731691484839759617897895073671512380301931589588769416045363146002078365960255903054222570849782081099922063940467489952491739295765657766085837091661145080743549782699551568521062196993723143354843547101994930101342334102080998502581513735817683912231858651061788858818724038729305965642994531798638716742269513352647706448635903297412417574678187470117509052025071477231706896290893975939920454517822624270633511925919814429513443211787099616876555469704839873066589054220137613332889241280467455687374962706155203766772683197959218803138312748984291641862749570735874056571021736762021446198599720550116869837698379619677342108235323306936299648681113536346141030676984271753694140858638061883726355959279226935609839715928487788815961639056150925496509725848848293904766189040833789717664302220607442624006997688467846057275438441648442810142757116618842264131320525796001011879237230917784447668763449423837644914498669414664347692799747811187351015301265386304498305053983691011105585389606039764668488826843099138011935057740210907110548459691436445132021225596523268828380871309717925529452810705301137144877285099776816700882196401980073951165606319675943316148843142766847544740861811159812555081903871101291166762868774718760185643519855139511460229211779639371276463808896102627631594656110708153139723063805224796255412301238866369976870461018372485323718946268813674115884155724191762941712365574845932630842688499103283669596957595872308854506075051971848642623005225458923875730497719235970946527497296883738746255155128090790911398147421414031124359680272892543282468760491851217637896808998311369133508823965787440770719932286371571837062785215273308763817222402173959023355640386764670127360438089324790810652755021577009921524152447349381169856598407188096129894011387551551249207806237177907206172291992928320388557281187991000820306514280234345345774833518892638581455662847781096625999934145790487710105282607505810272535233208051832604853812589050976400280653001962438104801269023189493324608940113168787779695722340913089663796337319150554841963937598785827386225416243891684820377460090616987539434084237080421285119293167647178463952593565522864247546712889993994140564319724876437257665582241672218853830347314175950870439837439053588606377544451223731725565272248786077473929010877137238112835529593124901359444506674762794630023801978749033393503149518130062102281867175191938279309157485772957071872705941492827885680567993388543591050022892279555838722408483464856901380493899802688988262465115759890158325037184761240367733549709761437757644288122255167829150122109291168486492270619259900263460167412348052346753105201150613747005435710132162888326840529728950154864632246586879676577048277842772532118919827438748655650309321826438786503557092368398357005495779611617756832884806343861808816393298344358743221324772635541275904041790687350967344351007728410806588575659235623735635299859718722127574648833924065560597515174393604441110437711928397227059228274737878996269739416124927400817542859162800311909831273268333815087781214298260504594902940199367021224096854483656415087209470295875423932413613211072957886645884110445292784517765903362941011945832764867886380745301029137971840937666626807912025895026550449065432719629175090092453816555129546772885772505232137736682792627347047801505200425495935623244629378834470976796594562130476407078663159652580316119757517996699470895903307720195249841001235770418418796391746371883381987014304010207837404817823439466298411808847402248164559035804514893854000831164637690341058324984079097999908727511121766185907409056353748307721227963749627101061902327676557481206459008653992147778037745348927748088897984409885643710402427198515644994795306681817938110912661675707812498346564839141972591074914714568893023146782870084614878241823482497450389956797576067932928425639936030227946754803329935024106355103509553634445201014764117745165163021493904637268476411505495721755265462279083855540422692285256525192596863518348724906930946186708730241517556128973444909174246320368260848337746531647928250114711928527466835278193902960246314169746648490522727797859173731062505359181365002503655727254642032074767005346246698731668283685917435132595464996850995434666101122918137035205488631460887946162302673374749371101413663651592828106676748043356536017002987944027292704434463027184803850340441593551739825488839843499672044658436572610113366025980364194372922771110331018428324380783729301679052555156342564344135689093264963244667111949419306822750191449520192948909930450881704835717442705165363153084950641338031867153567824511649512693446577202990955083339441666410551764261556480109574284483131007247547930316072284457781897244070410101656933218316953907111783378761415397366202852185990999964596284172276118906253692700249313376680995592713563788293323087380121152920961482247948190566846572889090165087634071472458275526072677621491555944651019181432909856588050406731030959329033476599738996797758556934106953722992631653061614935293557799988484246534356424282028634590733050707150648305503405949956457668455190158918323552886312887217887045642880693806224347722016498953558967846171837597883850168298279289934993490325176281183950381083421726703931481727681691708507378723930949194465015191091220469229149993210121463856611864322523362190798080439206097939277533614959097305293992348043175084740199081577472956356283412713873903824425671798290238974964357378741980203869593850821805613700480021356378913286940687271215248523839042706845383240259349181889950993148676123570269040296292328902384981238252131957548962730070817139108460301433505997480323959619941321659305043328425980321323169550330298334375823049172329193707134457562139557582666551474752067221969505643196740760761175269599921800420963999035092035051776700597956630058899987230505426646184411757021895768493228060760329181530083424520486272414524244981522403782315131071909018964005999206633465249917942518435496160759468932686028689945582380650214617265939514866802280243094023171773164815578693848385771751388728563589569445520698589018568565712323856908429092545057948970314315119359811062792573680028077906099900349182744688591656952682463395157535630052094616844298818681349160077533861499099158882120621709429759258346060732014311831635066997087639769749488704863117568633062088373412532166571199397591562995616174089314967331404093601780865877672817025812568313627494449658504346412902208595554985006974670763598143003863160415431905682004285716961882175433984387980585235506725373149492148465600920937564465357172401392333591194825910045917078784754210369229749605375312316020243840107104485290142314859131557412896612206633014433212401956155856127239956949470588034326202312949491513119680226416036327265782883369348004262612413669606719507222842761920712605256689753149384503264357036645347920006465301240983572457713983054161535181588811176108548121349261459786855923031148552684114320390750683573453893092012482277367468725390004294108837064485014702435661868223893325586447328142229492779151797310954470216240035470424228289132423920151504068516553067076717499633300198201215988360672143312758743933743077269939087643884195510079098258392962685414679450361120710873518971759173047844749470169034805659309302876640390448201504890002485346625733139707062577836745041510640786187716417495820273147011003740048220963253961785566916949223302537191470299051386966129863676330142165489936691257496752000285352906611927785519865418132280857991942022906705825145563105757703005584822769420016216816400402921180230974563828162491856822719137395762520484833327202629609078766892859868577916678508641975841141545071515302657990840985921604809731428429859242976759913640896404827419175765983830488782108327834157988039375206527167238226934259559749679297297457891264577979139803697513054387840612843851095481430669720944422833445399292457904912499367404043504754670453228767223540531963808478880015078056962092162040269275904268522019284378978260706320324563724175632194926100858812827501953442532054282524991341327207852567570252156634404865974107458706157497159626540662317245628043765404815818336767980392761667605214079615829838552609379416104735757849832227004110051094960767584709390330448082842004661758605818943779007426044820375147449256336189404054661168986273212600034226230056632213843237827894782319062289886560265640499829511710529591687060954782210364934495147277491900293117870970624357353086862768910767314612491405617588883937053136073978408247800758951043696515365040130254576284689490224408780311701862574095301188753800586710581375639504391741726367867906372678616771882613991172295236224140868490808956540211932174187621543786050072363022836357263909166717105790053291126703760311623125084821567707752224272588943665808197896582407094000356002574406508692542479267106376981566519530155843251828043681393457217885279381099673523540633606624625543956240502192429624980698213605803178586837290992887745008675804691716701014273305605924096111519304501662040988043651352565874618428021179116300452914121848445061269300788298879954108475660768367094519951646273805428373955813059338484796560081488827443709559014693376944900858728895988697619859839429978202079202195477365692403086583057515650133872262866078951447412822670993811492821158861562738341418549727497335853322513015735370796028958246191174976424307315504723371142525351965716899385109248888911459731024535190175056345962425438177940197005620562055431365075901110130419532018129133836259636964722856715937819221249393542351859906082977880568834027452227480514117349876658467030911754478416621361255869231464944833081344876138976604228288182538629000311133423412712579334848079164990996779344929845605262489365297347165287014282788948542335025640125371281423699631938896695641672817970395947280481225044242640890997641790101135693054569908386515226162837397993837675308207066473448400412218529072260624632801763129424880589053620894824815087011077927925849122100184472890360814888158869719765744024464050571839422648438819255702228004933337878336031597188385568681062455719364740660943318054431297137833661234515273481191807135031994361635122204848855294547809741607580683451238128657478897529946321985057536395848153001700267462783884579801383786867999266954296063752255041137773072452537724175737155445698080273194616667149887060245148581642211374039189907926425982218200043162565301952877723004449746629558613817505282513603911096174196501569752863411304771652621915559574017667375651681289815293508844289020241638005087111888991681984977551554438801627045465880222399158127116347848483553988799606446028988281387397460304438259485741440906634999116460073175035994328225702131771064327603282514778781173776493033823451738029805406437688995380097307886827364987620502081341889330448479535804135170727286857388699439680147962666193425996072930308495069102237249823272292733383191990169072417149182485050893491860268545771734399360190261736599176536657775402533103535179094047980469220928573606976096700565446966844135049080773621269937513189752358254381391509215993967068534268397071199986416247719297137533363448925828269509410674835487998795473585804437153876145358711868880932951824489213108978959469070947250961856023083943933182876530629648666300587482736829426872378725756756556995326280941057033126404502021305752905996185897564243111027136871451686062787635545598313854128066171942896374116455094735129436165776723062357951278919857028150881496548923697590000425755817187280740423943285549819421990665867152952594492378677068865533749865221919148020991048582052117150171996972912813665973890596288982357368181917912064823962261739447043370013029399276334706369321667367145870895726794990387371780770439195052619457383724431552362245714022824756931151121673970936849665718192319373547290008254294865875210039933922358657420938310757217785004711186388689416650403981717748016583956020280188804280856422380661303012292269522424887207847121022931331826439472383010884133003545625949083093911742863407373506806868572673760881245607816150960027956957323121792766817256028097293600554741289564034996064273335357336367951173997684917503688319414543654728065039528449694638565444253104410500003093845022668377288793342853191642702592792748475019562643791802794605645504152127613803379577660457993541240348775356103854775782053593000007586853998176897356446010784225168329249528340211128517004853052408761997645523810682402382011135422492440213241629302957623804616060071525702690930316316541422319061907868092483473415012457783066758914065286187635361029301164183125994013230585860705649432135609226484059199489608941953551085455269428466187721943946974609519870004518149080764939171837792336797991802676099238536835305187573016490260713545150569504119496290377602734360839805318367634851530635410497442581243871091879899833961394374218445553668485945191016736740215999163252736937971338675120720652964260228611833549055590297455936931210366074622602821900894603247712106558484685155578175991463401056297727278419222085512882367256448962291903904517541093293627552081320379011937589927884384843008260960482738393271399828421300235285832291360927697254782624365244898745989746111598311049456140671416626397811428934152492354771314487299303968323929938773618113816192755027692511077274179012281497501362043045165562804036064407215837752610427842614188516534011631203056365046065916498799247341958211786323257911212167145172760345664731126041424151340245480264836410293757260289306137596956452509143110079771408338339739104012487242286258533494742844394121987702742428181281228160617817473234264247478332825064572613056491502890869485048908302892677153445484856777851871606197086171093726218566845194567724292946328155402390428338120828401790283611020340641526201685688987537327478243943340583521068399082467013412580444071810742499813885274543010513332426588765686170210432137671682838735191506699443147661400092939148507765474260194464682626886120801892296345943077438441044671469573278340740697785124028615041980236333190568617253712857487899377966443188268378892186011314317726683009876296245080829182912104590241785337467889101754466859777952351777540796904780751867544200231992276939045965618161264585270330887476415720269055928173857227162899617421311008845099045038809308636449015696271123488238675531979375273725662969057061165144192852914495683968841255514425972857848648833623287240927169144953498878694250554853703901778516337864170914041580354800186537610058817468178606527789723243762783628437279071812634291021555155106974068400702665269292928077482427486663374840122815647226483919359811975216067851414849350161538418123931107279368937830478819136902847409507972585452950894362531604450873149246980094973948069036206233984603317077227546146617548535105378162264596617905346694087014929741998554512743524210209347598892770397536214410586179701654084319178735221523496212202484786332212292328246657235764394786254121819542077782873046561088209534279490585679819404135721608217278442739752138821191205968062679357587038316467511426152228296597065101555919860198072350395276803108522221688324207558033488939217036274086836606633298294733290206268640610838274703474165554041892593871056788881590738664605992940847363132917644786833108444541824529739339233729015076234784643771506201735904520979145422703485194546945792690913860027100096699555490924077232514206225111738176421708036204727678202424982272293007262099356056848622327212998255170628249191965347779060642841796936742565189391012214584949384821075277467967712495682850072092443333059023208767522627586050481826395630737911006986017545369492131478031706652246091141645609284613419978351651246312165151418921582141625741719668034681485172540116110639005672555418467500349794811887537442233959346665135339780287788870910285364795568612924550251817744466599302982853406136118896319241328078095163828732808706035098180845841535180285789593711371628372229459366047354413364510111532097621762926777208753360757793429645449313498781492483526558961800761678968236079923113763245070702539013903765580529199642317013508054870225522609235726691053701547145523746041460939681626299589442004832605060288232672902131020818419766895497249995552255128223261220762147848880802218662444244930300478075361984446694973441164385064593769702249193143155841006092117578073362515200841733351734413948704599587250702013505144509383947500149686857061111098978553593350914910038714776244192534874562063288585347453161284757003613860839640694832016882461656566402874847951202133024542757510416500832942135794812054032971403679112123587707426903887813064360242805139086767275404057618034737792384050555393705960548228033853106457750527308306269235703015631515118587885777175616382078678905847537114309863727515811850128111793232905179888797053030823396905215839124409842021964783281723335465832776206389289542584930468297105380931883387597429063422061457122557178914449224769440717790714124265255751026047983938010669004520821166496344987539901582164651425427686177048386378578222533710848470895798174673190803374044450296599795108225675566111341270737216891751059688267734141985720851257476879345934533240190660436908636906227761404495858599087141400728537812610739712243822605926504584918771147619912201437791099936240733679024679710424263156321625416015921001106558683959458145284099846568288586454235625661590073582318366297921483389187331323453939648810985782105147541513972484304024927820938637883149112511065791682435619325335513133987274477050834002777581035118265593287852642084712463139537002001860038542018992359651375998935961289682903807791283301492657505714853387250189125556696885015912109893321381125692965226891400861904808537496479751636978523927032964777762918320204036253411437843275277783008742586171603340139945214107001747150410478366938081720603691014854260062664106187662996687350999339601122891649189707781762004321666497508521262894659839614679625802142573379872562132585216838601163331448687474356523798711058572376086666739136764634940544214258558244517129366336239197290384271430296872516192118584752653686249506070064774986156907509379227605269131392467185835769955477545636399103805438014362152149615906263425515124958991111929967920100756127585801086189194192655155094851637216935484540700016726691375423587029228098384458497569417993999689842049663561506811687544847128562214430877932441796028620708609528872291202475708772776860330506990338890088589598466590320647971280839721904931609089036094564181077381982396583564078208186478708313770626184337935135793527042496483469150133833331751576077581651750353851903165233988307860312291194124162882802360417976266170173993737365590666266777476342068723448450314471505665746201885527044653144440623967106084217955963835796567624355571963414527224581531035227458730191390226969720929016461752547375044373269443789197833272135244765750964582378036044423466471880166380597072025008396041174758545625959063593848061400282617158897933469800192826721172688527810165834727083089935739136569123063378693848950079639727075275681035762008347913838751823023919055269734183765544425122397453126264688914783599667320344468293436956570077699397044833626531852529657151450656897999050301369742069257490745772544143860316944640727617916078949984157092923411076102387666699436529278569654435779195842361524303951071197853818457946011546064635497561664858307395545001300233383181298463050649386144348855912484850040801875316056335808761402665052221534774268473592368924923524813610052375146114706855906905619680245076086228257855691851561316382924797185495750221030140497210200655396501835099429618610646134863196009773072697655509090574678948796629405582722610822276795206108991854221463906301670353005798807105479362914935162722092020901320335623464014792739727167159720567051551615049509012814612027422215676219213872066027905053407049318662253884464416922614833561427794984116178730493322846415174168492443546861199083783162330920186586971894160038536751757574478565000391270785513238969491995163103661324056679017690268613481263253258450338367057528283551226659173015909472405138452756512925060586683261612387497053399815286153580993054964921354127973354794352258879604579924731535950864371530896719184660705238820075220567944150084942238227976033118216025323500994411187725453338308326853915831184831741508854871639908293044536831388658620914182182718265486421824732392164594625496025201433040735096098806461776969270367769111822383332326447750566860561219287679174011149143746332556084162268083371301130696802000612999332830832261201873149733197268969684965915047495107844541572674230727969320141375746051126202318753122121797641564419599279493269475630648899892065297703328484810005280201751097358006033763377771197796582421860758098949808291649686276733101900454147653119597524150964822922997499881532184308872849554988818054800572473776997940708613302702246105312479825509234921024605246471382929167240248062892184184187994104270493779579684212911594548590425708644337399902443219361970281699172891611809694072596928785215120865850640116537131844509647833895458360595070283451117249528163921018777564770577829879149966434967001364568503994105921308439668282475592485706745596045743364766355626526676247538032975685968398581759846790094433636292987395339046838640557026731144629893757235831712918703795520376404401073118195352667410348168204630165240270379175871858550349328130898953357354097748260681496554496790064532731640804771282216609241778548518206222428023098457950031299109828577968113833510258701733274453998582052419264662789474583207310721268277273700882628963376149937832934296664252251188544671281167486690351157423816744443898472539933913647812109768215447026093343361379865751036211735343158462057253279144980599545857612694539182690647149180444293489170067467872862780603652913486764862289334089113539154652082250904129377319183729256059199727935367794271283374715549031639258069654755281482179316133085538788949402047420972063362665704848673645764032540877720997725701283528298943786046614006045590522005303030144593796299741764448043988741719679221890081329477186419796999349118560478384778021903284802236979411028854909571880372379254167199919515831707703354315445297953274262377888475805032900075343452703028027215424594537146968020172033004333525267555533957803332467167261085787401572570337159450648170543333392893934785835902555164844974596288482726423580204075127030728273508181153434188892009610323609420071687177129891709816429917222084440934019614078993743675573317130116495959475968357737963413662349293609197060153646729223328695886279967345209233350593856197441210153425990944053594774323759272837655465028569105468349770268041840398673172580604655182109735683084264321661803108648759454298772285125539812017237889176411877584434992120497930368958688127247789824397973965570803715084228874274329377509843967413354198587804467023157915140530066925096207634567703726044402236375280410874638073091009838910269435908134373546041524177865871704550334593654963726705558369749852423242364342514378761004962265072836609756998208686108602144208798344898092397731502853034260898138363966159627702622781851402764346992472001872494092164688948746131940568509320964843015290176311888810335885850032929326443379769769309545978653227413894604699089448131511183195839904243165281460494688311624636689012849897448450343074336303130273546389828354132163198321338846492102949575070939002284144551372350171460608146012922319385416718049641138367512979388782570294947358746037035040416116531929231702596851199958435908223349241424510724005081176296390728711030483787508391075957053657317665801314698924815394986010529199053698236209306096586135621391315276654631022015748815661092372130694801002464382378376674014772021359944951567445677295788989735154103867563096645948344846552091294008193017282805632019496613385087381316658577033984329315168496462439995519358965011419523522282241905958772817638115847405830682249375468072832029142002538866819709680296537208643428810666046929350817885620259581950941958500495849637244150537750951850095433578728641074891067491811797437349644329279612771926193523890287180509184662954324813633022097043735295539117445599147796926806991939393919274130801443464194922298875389915961536604672653724623633369176092666545171785454125517676227730787465092918220450984500098624372500364656290013769956347007575830909015404234563648035802179382595373546024831616876036117882650599149666552314421145611376956716201619690271809828363084344354013399462077930335671340927443905219935997023623020365419068962963466264083353343843344727118700204785569289627411715794036736589563010917079726731508126281564884400971346241803281709355700154668022530461823800433050729314875119447868217726003491203091275567054835491024946393294860127898405386594204184194683672351839569199863439908827891637831788328744530920551417599949737579572024232790186916611490287441165049122493825637528476940511967822941773157365627145015703869737015843842169805592979195415045236104515610487385814427974567751520501013366303180584777376728318654404413515586165324418245212808098228701608844154608317021792024911004115706280061860449231988222523338467358925798592520523334719347877449261135669671636476530913856506081100838591902643829386357054588586107913565990929180961636319892662150800776072179601247323632254210076218522339627450188291226841882570033881859518511611812205753332822751459859568797811402516028719243323321230046272091211736739528048162467031848581487963910786066018394441007640506476639839257106709603939788135379872868962216118992983048407595358850489101204284206109938030981712604879756173483075149647246761484781926939033415625040990862156881018507217739083631348484238324157294929402673013638106512994959100487594575285414877726916853320845605639321908749580249442004314483686866400101154665198046043160698352717559807360158121428063814082367475836980614834480307850882660764184719869947888716436137156710890941996613662063361380041247316395432218130858649529028487198802340121096611767696945873637052747223708220930679285745368065858921708471730742886278295823287268504855567666533119099743023547732829292386510547028915098107331687328222757615022040781480131271400346894724458970753728475754598870378242974889130794773563011085292597407120569996167759974490867708165224413643288232683127775939339509901492271537306235843944021789721146918755945791896536541701516067270778333809097021477365722380197678552725375643471137475278311740150880431410404805288221162385305512584157050557215905650237163599764156337700300123896880321518197665886615910107626225303839372527514716768482183999610763737554657022212982330176319167398019932171245517301968520237393350152640075299791206036967249757276791936600813140756162450838436195753087737422404043984862939496529032591402971123432972242255129301612311324659984433351262736887470828327474874211816808034667655066863511073497919066345983486192825801816717644275759491210428496373943743474288213885433006531902807226461166177038232402608997916826306384814708007386955677201281259769223886666534328901344546333350353155222614298444678203812636652868625240755996526590482584774189680926013049978018213148516287744153733590966863332887201496305421852519930807266856895554421416997887983675727777487654818479350556549377526271263440564207596868507190542294967271027941086618322755447610282589266897835138297049874024811636805129559342155795114325200106075646318405588672821691484500105763932463915994760094736912937857963418948186421593421589967628351136651339728777375117680883210242505393652625368169557752770087131172893906148141900088761597237881367268033893409639155504029053672432408281810485741701848522477564392481000163399647343122579947529610222379746653489889593325671082493212947931882866967333318959141819621052935337983968818222314360352070926489115982381465148533885697824259571145538926133220130397311247559960371615502381109228105466981537182625372540434421869129764246822887151030174923049384053393360517698501149027809771881095073383481446216579662339163966187155860306944960350855633501611682365806730463659830921928345793586463304407842938690357792981146559452292026006182126199076608199384572415181224036027471764949968261765865552500222558972192074678223799725100838125183755841762984694732935706478253617562967609186591026368351129731921915695277016163945923520387221371829263893265968921457441001656132310465697993807547389469601823881246206759011630518658121431806742118920605956549157720358247026598502121689079103861751243295558245206474289602304780208993093513403327603308754428949673819170353431981597285492290661835584575494518650303024944034492866103476834443224837299657067125828750946983220351094837553050420755564811151652091106934882738330620970853730213803657538100555628975246217349622842889711753272862059548514248225099043715923357515524815939066013730141612473811131243155203857604052917444744887555210217057561481493175984566976978513684018843211352884637261996258660313671602978674230928220868296464107354465871293399410814523108169842788331141894476543299116471287897191298994711869547370382801515077227859276966998860422708470984256082645003321800310516989315241632780460262151146997531699958607833202726806569970715223280379234544328486159238703370340289532400992227099344820399242361497355860687516917281723943993294689157819996093663279633895579923658387311218576873526584822170474644029371746930219550491372766662753148306752986517051173150644571526270082560316761143275078820407633647554536943376276174607075269800728913907484294529725549752510799438727512564920389349495591852099564372431452092184416591500660865514709843563172537113806562803084575498547541719146899403845683377437999579290849035177367120878451460061234299650201069163919577102041856879021271128100224366095972177586031013381776655294151626069087893016858953683105167594844725347331397676933933340343953224448742975409237298382075930999508086473409177896444209694092084905354181879981321483159906243556656854544826910786241770784855382870636943241179633707412646511370077474875914248614491278662687064656721665163008403993245955912471773661380804916010989785568069509479572061151625152245301140899979779890744717022962548611319945228683730958779032050833491932649543459825342311554409587471021086488529828905578719410823417277389831454338248934457833880920747116204620546502592147004399774391182440165341008057925210974524211699980408347463838046833279998049320242623473817569531856938956949225329086340772748889015259776112352712197271231051980435872798829346049010744209267986848429951906447014249937124407005475001988732346386404618174570565354787301862201941018598838556029403245119795556763734765434083641642367253896184670366260679340326071165293714461337450331716758062571336610363572374994088490577177514163585300893836331964979517021305458627238194886248432321846732849264283048687704304722499068554696284929605687138585684631615995087230745857474324797419357794299479011442589688437861598227799994442493277734727480355760559010999268408679891498850062177927195418659085580923583291421065567373643083980459183045593313922695530320846759197211138727089586763465505359183067478807929007290423695420202491261136965481837343374059789393715618764079119318632577089259243207333838019990351742835225260392285051746007082522384337459441752639145442796409875629855258794520010457740821159630736598247259102292243458106749523732712290472278156503817243576693232187988700255635037664671131437525973488638969356869022724757113043984061209674144217895199923596183288968928246511460146030529270973085980902520885189836133917467604993396200264273506212242715909128736086918621813584758861300797833167411214042015765940185906223111556292050537624771971621327176844994706946485538333966499855170548303547874624263550879911668937075909449144480469383730672217961159458040986352849260889859700712267651713566836292135485319576776780399737783738461003175557300023476729900964230718393465473593708543612732194354200879137813490588723198150247691761400063427697252925975162776986549204491415015489455381818056811108316870633828317711596640912562320758829760206385998280794861013454299738379833125689194558735201254097352742276697665274362458553711771678084327534293993069204613014242730071891504392540090610363716001460123387635822491093546631136288932898974053164884193234109464737016161507301911576240451885679315684906854055780036433983219104851114437725269214534405226566733278159222364960732102126719459903477925285148626547954584411491808341934179691429283296169801955783742507098753242539863355565530005168631581010811861050870010840152087672631207943930178329477972024316485586884892456599569976631114571510070196293682074385369260097043303876324463023597411521674679589885232679494359428131067985046858466483961524835777783418679350527727808393348603558341963121361846238692227317034639280453141200674724442536075391160991514075485036082153423727015698871245662687732434658579263178329627968695650469713441211109612796551199738137420331868496800059278936555122304059221480006725452964607415763940460988525448271486257668531101964154980664145640025662277054141729018456106967107601372651574034821802492418975357539309732010157214372709864579637313691760339680255837618794697791431993839662364297057350923531429162627759545666641947735293752909912217721394444935866962904235694768795110770728191734574955460449280444153968610256710322038215319576110862935240375750801906630824349967910287508095985269444284586266920281387620263659903464812295120275454123746809595744343372121694991038398611271268425008541475052700647943486455229839551638370380663294543237318471667801388333326965024552466512630965737821568587467382562421151223728399041721369894004083652167099738992451731525878166402217775705069789907887607971278335693872762175737775993765478254694383636821576201404101008904548942226811872408885290490897817055947349268236919174634561840373111219236582659800244480731659158353458874897721935335732256585309652746477974987956913217477590141741219193712649372222814465445070685483614210587206742518287708632956009434665881894240129135818783151810662564320271766805178294387152422803712195036563250619784710330684836730331748015138116036285632795704209165243110079139972969378297949384835518009615583224867138310341012538477185168166909419565665046693858856492597136108915559270029120999257430543569341299526535948386177746711017827783077204798089624511549851769560242261018904036189386082812874032728590297656879623923856118552551205485267793637975762873654376647299041917300595122141425009782689428070650106231336937462661258980080628963252487281656800365967701982826775317645165456106132079474733197690721751342319574435731000445632938500605978267918631469273365367625881682060369992648420930745076423929367764316778862675212484815186836625048616955604441419565493663458029337506731694303986333356225423481971949015959942654882038567918686916949496218018560615066135476963773193103920899617887424391887719167693904454697066100353756235323073019259907831208585058726806896823608495783835084302988659693433595626232939043986046396049907352679315387881305803975332573806027779872142117463840107420136440170521506409611195997630812581841651569874300208457423132143633079348042059534084228230327189297125327822744606303849103748954346080458886189985183750673422409760268954892802418558414657621407114335246074011872213581609184948688586808367644557430643620328683657028248365362000116818587271978985779869995463277991633729996786501073182301249266274792272484387098818622711031053771320428202710597392742514268077540225639746946697489405686231895787055040469834959292177324204064777189831155133754625609108271445158925593186450844024995618139501577249477552361452226754669821348571477689201517697916807397892621076885180434806592320894393317295459586573844062377117075452480390200624903627883806016693378244786579462250519906241071976946404815283247240363632318357052080395612589265697289758206069425772674231090930836042398135797484947365553951110300317217535674192309714258772415865247079907042856033180129689084667586542805058854514590841452254836377825199497624527686876706221800103274541745555012717957660297917757168196774898558829858383974397622924901493162030989672451475889820051640610379333264870356970327620044087810603414005015223566271292623366136893138346412170742014486399510855280381759055968620145869857858172000101021986365258632879230949110921254825072109509378323869161759654313796893985276054596040635797420386447603567598697664754066592141558732386986398399210335801473718766012566478149320299914233453309536842954231121441241876229318554621337854850158035481706060922455842741162278192273265454188825748199729361467637584999462546754071451255256932994272831721162457292173898171906898116991262329032238943863387084548269328915320708751971869723731921985631885123347037290880947354855718671698955382894921475974390644142400925038076045414573139428564386394716467588756371819187215388288699302885539278603398476253954170496161618314051907782091483758897697265807015848831768523784146315154950994341752231816998395784661452398883823761382695425413703523939378336839790825486753096365552053159581167574744404498365993002825175688169851087259133363814774052729208837212696209073778097020225452967314081971532125917648437959549861667907432290550288442649782352003691047388889305830227324117115198637270378755654330282092226900193569521879400914655338525342463565388079334729258939078606084991679372701652619863006423662545094918300223567315388984851285482881757298046622356677225060612697869985654081070534950012528622333103882168242802662437527365749471061495055680696986704756560824110697317000125064247655231767576534327542283111730308412338255995036018997749603126623422871458248178944280837613331273130049235484532932451108582482635780943450437942738962339615555323317745191269334466651063187579432207297468529725327306182561243507405093049377266843307912831588490991700820354646318166379466761440965796229387105717377147000586768713068728758176714310239498766297045526989715060925486572390868087589698056982169825449214311885862145910654452108823543335755481416627768862602232778192308945773547636852859264163746207747138141648759011518584050264651883431028319165435401935540905759640416019750450918515192714827380358826282132321097391021096955427437015361853562117527877888174229966133774544353322614203509383866440950791651218758329094140779449739675612278765958763745854998337709585797369624510724310112745631618974428165966315548809568949009380608245834830566020253834980645720656940369556806695220267561851616476281188724139094451144056050445643240668434618627295366183861089142664627293417625381494209266972074449524451777715352412178112715603100923324968304144446942985941735091397151512536829826666247107005011958167706126973170330781638719307277595513699529300994399604116114361595922561924771230716571651485071477537702180368337734213871941883751972752320043055304702949229319711910008962076769132031738944922044742605012593383812858756863225557755919711087910729813513843408959749033670857950153569100832941749192515151501858388715991850945263515562813511352288754583275209263489657009748529631989085490859612982756103699556122559004220326157213519333791275074108686810936635626558047010070554038559094733080055341559468338989431681793440689192651261834087221419057488017074018054967230069982101940197344039747151394667592353227082119308708428228741588417606202654230082998916988243119598988260349250297700616699691393458973264889596597113537350545042570568868098609725315334203406380504017096547619774643481611006864343200669733254624341106582859178672417094880975496968207144368373692141269705755858150760397930975843330722610775121074820955747925757387764791555675832325802222853252988426612189833671249015211722778346535801496843745859874667442702336026770211221040802706464260955222271924611643688078167803670847105744643062336099012550691908035718246482148416180051918650655696573720212498117740072431713997186291766124564380316040538414798341443979863045620739568302061932857273990318693539667243067641318144963302973667490099075176129495136953542894706196649634833502836126869797148299464760928330759312250962554658978781532906043417531607601466722376312971050529444581870310621162233887471980113776139371302469117230569454343903052939475170085833370839474867787575907102271219470746644016131634506240616648957522047070750142034634111574322222887437666376812278264110062163955018773960402232392115428226827449845006244936769310608478090590562778257332413537875884522144153688621423960402404243989632776206002190758509493510044349893720270437647574774016698457527561078816255549780608128758733680745777559023378252905091895998121513025055997038815426928157308455933188870866458634359145920449136943494406172112074613296153187553500749725878833817264070138609600985260236747787291220407178433408448415169957120407481063723305349534278628666397422181412351147701874017282571632710582381296050566428510757413741447967149810455990883352431739533329273502353323205432963181745180289000914744979682322885127806433226701325362678825296768446385907546203532671408594134261916722942845105613894456060435288036249529646391471516482905270432502653343482436962991024225528156696705184326216658213096252788454208643473387532720078204842656086239365658126919778837740543909284667873780157574146557632340878019292410964229797498262642850790156674103961531952891398378516489309975506995644158610756520337398872282592957331936035690984962302968890917480238161300797825394396139133501933401771512568469106506758691273506430899255271199515005995192777928399772441532429754675764192930885519117267107594105351341375139672787136007071015439242639808738966379044891554356087860225624209928746604278448136700597581572636195590690036915501918851321576319068817779565781728050060698979773396264987781590167255937909705084582789666606998137831887077306659985869278944661571301182095769725598853091646441996230813856272379292492972942883117916529637113830875981294762211855615931513122431927278924648877285138632652890500184108017228508114938935211587828678919478306857881146125671528327594406743190886767392334922360224365705072455425436622817739181288927641706477322595635632729440604208501344970437765415518327223638648946569468194693273821681977284020232352105975719269548092302594709027999386680024486206104317288103513641800677276246711825252773648911413461267680356618975239307279540807222106962469558637229688870812213701575123063519930344339689762752042563033843342135098500762358855179935590545931384617358144975034746501919933053184498817510151697816473344138285786049575520104078355710418299143687956075720172959552659610710885312129021703857147082049737447562603515691522151512016732173004169374937511545769831778648131122210743783698237736394608252499476995746403080051376937448918815900251554342675097749768878405653776599978890264378669747419631744497587665860254299218743132511144658137076150061492879348499509663875569512773509648672277985144837949629150456177272513497364052899379866154931081510668621216253526579261299240423303918818688889472882687436378863510268600272885307668510395533590973099759346208891673144539031888232312903524859330295886615680267821582645975456327598612417426387249423306770229647786780420382280977784055957696233747394536303204461610474899229650139623858073623196118584886329032103172371576224604918964314630267634334654689868560826635274698634867574678543489506034487052114018609617361493947426122579124940846559613823263097664614589051214227359367633166448575475267177737938487038362293316685481451476530731311345415288608663276158589055942174663886025625496881516957477994936041021474847379051315208243740654494595739840895413426160870409610727277275044586927482113734225772070465756027508395675635361138426984205373200084333545953778157264003872736995683949920536288830387969346591199168002651899563009220889307455773177440223309056887239635150291818075206186716800332128266938057061540725393762689324137017525561759342529603722273839588814136779286961959757081403200823817827686801569552738317084670986063532682362631780600186889332180862340588664494811677599735352310542442095615331625617973630858793827141451462537349743997702341829425339364086719539150307013164320118052139162052948986904173403206998572618418815829328333850663524016188585886001737728161721813937892594275033966004265843837065927334786433041591609758202034734647032602230789829175920739314332924396981085260198293435859213359311264743142860009554008877701243093604230201627233156238693055351391576134020543209040582164498077281304877589843391938495639937221392597441061761095984261155611134463861804764616290239552840581492595288074690629182154842855014758007340319692254020188220873205049741831659047306645973047979431122490607475690331937240023030918190699944814274111648488332058458282153801607021704044940332502404770223051785419333521432337739309821378401943577945861493381122756690684933169130609624102861463156168586482455790979107574140540368914441662977446891703846061317860683604377578453835234640369894123670936817573448085980623700223787527082031727043879193334151321487381917376821829250316055724846863027355393471872123861484844952562746365911506099752793940524922814399665051894386016751066012463226150561268399972648534795387620342985782539212491486652556062739011048493154323718039828190693994834363105780518993259842428634097928786942158431257951678734198865887129313956657726729382981155343338827384752530208269442295731212524751272762651041200228233757001956109253962983298732575862707174212291067492432888569254164659902332537613500542956446190309046522758737045932531307085284322538407674929661629614382087308289784661732378002445891704186586894987627942995990548973262460709106801480174376053171546536231516027366013780584112654316411227867665659590730024057481624696549359255385750340603570774876476555075924011156932553926219868396562043463623500178946777749714359162976793922770203301488080418058495386163138444763930021905529466203538845988698895347094516991396659027399466875200334242229215263457391572325219996263501351445208165972344370960830389091658444551314017623101784136654567662267517231029376274803313632643709881565312667950305403841688824716805929607414346775772227130072337042341682331125662119139252981588448346222369454196400924909409532822998763140633464627293200681979183325240045484141902808663034571391234162578862191225947139257895918117583252573401237467284049614651966764584690556378002310039866041673640977918092782438488291463394930540526747632966399460716072649109630789237141658874101050036856421776654571811731179639418624864233509184745130774930854690699127756442646290556788833344203773565985796039681322677472101055043620683697465370214093825107092375466550040651172420758733773977006985211907139952933787697941916894669040976409482447612459568166188444964819649596862078793486520850471645186255612979134539362191031873264728494886623411570765307925674173449811475210323216691956688083918908862923120906671293064120120410065202159175310044803277467367192454825811200357966465287474199760724184898578017841607525816182127877766253795363896215299007787244474393493552722243281453383285375586998321392509714862866310455060767566718841812491612137143670348365002478036036136085518857229349381026683754923149457580603054668815771974199406584438437211466094281843256525112483922171200326833038437873203784197719981598304466527778513974053755765738084830825014570278166543587826795887110966873092922740070770848245167876792258045811834757147131246349998313660578433525951774148108252880435294487746390935140386407383124498120421057931902151017666708965788754534457427561911555140847515612551309742189880923166737629372607219381250012384860653361763195645399987346366605302316038096349568719907689188616442643269136465834047554271804659746857175366349751784685335717169347928349357443142679452523369770354858738628413460974495335497081802335848648986015495731772530976381661771402948703849712960417318269348500510299306620039779982719696523339984214578433596877164412806833563558613300365779287042887806512714890516024776895933443842120547082835395737457684165325020845085209437764216986751329842760510165037692133005824952861631267201096254243819296840797540795521230622513090373292029943004701093982467915238707892078723447308625140184487715991053539906548972859811263103341995019267587000437571385606746286926861332200580312570551761774405329962910981484128086456983557017173003564481557739025857534940408360719429094623675849311629219236742978822964320956746003181187952566258899036034331872179849555800976565030544830891416889774136834387671081936886586028504414703194424095367679608566177656327534363952701002532901188284394861989668776164594946948522639797637317058636535399087354707784339788653538723057826631990775990261668841708939268603519601016992349165147169242658864757678657099106251641729563091538427229358298653401828404089973027008296924617338396023897024218667749074587911676959133692596043648253396830684070456755847645737129842908612809222912763261401221851240265502969103658390868361090647567692874824712158157569746219907800548730127371992249027500754984714510596052183464803321095151270309901886834804464273442469806754733619059772847371585557379263568769957912770171962562372333551349371900361972488000669561636041226623668283543138454259420039088403416713647715835209600808825482498691449461841746965975068198878590685222358066142677982887577824277636816191679262321760525130160260557858866614971206811811570019350460968406145291720340457746521463922351245753645208854072000437926080039721463194173564337223728401164188398943088014344988597029408773518697693023252806711472842280879390290899833200250728084896227561362149681843976510506683019964792938357724129748080681701586158733600001357604914214380727550696911355596805717962370359423566158112564613260562696432424313003599776468543140953674779078939020767470734159040857401201955781266939052737269729472459026467287122690694529671048061770558901242505084670171667504081480003925846182835130291414592433745648916093323576876500225107835389121152891140420943541071204786201380392182832660166481893180882137996699135224612832366503550916522554360282640356467915332342584935592553727159354718365625690303664731743175223865090207797825649033552804599927351006047997183841003074933489613238751871702236483536235527801312438861035505283318460217622830942237529081868626708076591907559763203815616703648799340444170489391375850133772234128446692908153626548820995940546075398989434494187420008253333166348522058888710483928434393902673291911342470689856836859344066787313131070219046517745171725788370067273537146826390627814299259790020921961827125471427181726875101269583460043602150429000265142746310851822372608444001128967876418555245190136991586203917403601057322901173552253358699709583114605154873443736369798523654212936582837204829166626569116006744577992061273981530023072999195708644898241025593837798390142217114050382300934653955175084200954603397133666642005204832178383190463973509175597640569687499396393804707241853463035242274240315624211521602757224420761100830240290762694822657124223400350940595912165066139447153733357741023433309710944243503979369675414802159860586332151302886268434904823386746256685192802837345785494961332097917423879297403176912507490505756943317478971027493768367358887078142196887308242144861189180997927153495186349647069052210121375532933348409302048893870319995352492936487272553266957464533644010154823005604051673303212008154969140566580824458817255816425095851931653284264088215996959508979798072877793266824764276904573751242471443423888096097534490807587435986935742649958500180984477959864007468640375816164485474577140713320232260227414786334746991171224173254757226318252628043038388467646594986007416033015623384740519787993990817563726579915771841826858456916548434394779751798970808902710509830315891074433728507311481279628355790422281230648689464973504399210727782468385684048290769484693761591724998595327971122975971865588817041025231607830251386450039433241014405651140496107765352198864539180231788505705578904066948031397927076721860121716493256368751388252784729443995444486230308677714292285475833391301876132395891355398994628346622103821736432791273441961111615603115234403576907222983762149482658584048550427079509941195486043909676017269005745557763878094843412831787133038558340329182955612819216040487093902219601587846154082543023973941189177318650501610381612127523355813060635095827826024428299562415595299007135357369238464943549474105032388061430926036795149224710749175469268313554233889119721075296161614096143729760294697713398144956214824705639866143010043149682310968845469268270093564507425198623501350986603901622682709648786233988656215827706150816838263699428089159592750245234708360140884749407356549455941882939557949781894035686455097870656598860794820097693589015960124385106356991515479683894716852540063174944451090024585404875204819311361361402954318180931066404726688021320517404107202721986086188330763106600465225543667378049973370738224695405074374727312337430027456143277323252993387007832066083141339708680071818373514763475057049637954213863927817027870593177634316183650693537012668665858363056145709962634380695306560959188964125238401982666889771833850951680811564239813065416819565228200314462567913254710641268919521373724915158568985980172372582717536165832585384863599666283832521524522064510127408401885113389332626417886584661449526065287552138666185269809060727448739828400080753290183161475069546691336436853520725935380590818136775893726599322516368318395669953520062044721323652079524716986900759371802069745405008680789042061748455563453961361330702677567722211689861928646414499620432928249156299264265297214177422468248877397429948648879973033982356989529835399775920203668072623790589269645416464120374731731991603620908511605223727864470626661266827794123126917236853627483865337013922215366760613290749412029078079093722434488097179562805313631019124717480940689394169426128755666636230745398954223616840414494499997004897964982359113551202108561504833280651541928792890951837127043582932819768352026231580721704273450975080029980668603478117200946216451840051217519032752267280701266433037739550760821549259520009857503063534658639676055857571846938399401073740926447618452983297931744571449200066037269199084036144276220364970293271939491720738938594913885434053954349766126246826270267043335326584378533390789887859806533400789679237467888718061269333997628762345295162485623959573721003966933520046321752571944356556170580260066680106340398645535298825551957757679551307103204480326370315063306702664734360559663062621934753981915356439292036842241651567724677528498825353356589784438019947005153331618244789190365697629532080109700196731657001190250953968002851367258389138783085686185063879998602957539765274692972967420394955215964203225835822895255810604335066718051627382522702102334699327378929399467608102217747235798345465051715259809044449470322612720596897587697467592694689270672979544825180301084805100316361363563875047548129486572929727890381109327518679978104148193024054238656519472119672770913140209023017407162672030214805997796330991169345707419164742554691639650377211034319256709903274129526028656473828403633977494222965437225061983056279026229783769095354282787375929012856851585021354143867863056131207940084812480837947664228311325677918612670478220615207119520004600997331231480955599693314977872785143707822892281157655410603475536757236867465649578547124157801930991864357783556065042591196085321907828872875860529594524360394626121063879137158074250940569405924365753027066086770545950459052262500598496341671158705779848860037789286764911008507479564029490575393327183853600988469210548606214050346556029328093788740568960906984696696889820106525126941199845499655668933882281111177705207265087001106097069980056887418967303918250420627260442929285621668712715075591926792254768097987642974187130056491437571348230800612031129627594670257950099316631697399465096360797236522253090322504515076329298578357047484901759102463146072814572814900302245375870011906942087988298337230766710618843332084631535936475157131675753043200993805703988781575801241033331002557710765386172627771729261030762464598598927139571810201696024803296388561081437576907691634763952000839835962541715994318357249195664870118180738991345014814052974983543985634562405186683101592182691596293647869928758072009579710373333009253818564144195608424275883472344578109642948765283555440369095884965009919978726288848421362229416709909724325279375430810297387061586372000048338001307532782953496438819965357465280591508784538490857062267804842496800432968776176967487164273124188845160560577857046525362734243264814359223318642218979163463379515548479447577738097955490061048254410570371106722244603242478301520367612462111033330889047935127216003347266290883527180246511109741308156080009250011561828385129033080399791381679961662306271741963051493998772970726980043170100977671229534035254396091634380386389967599346930270534937744663624965932919985041802150484493656952013700305375137542566633037369585918143064097757120895490708414735280447720795290153938662329345326147983784084379293760713064725536348912089377623680050128376952433886539681516081563326044325376583274160977976793799738825308805987253515259176610976470576551493298913769295241151359425146716177950689939340259496419111823168603268495448294219295489244570840572548539785958119914912647675810832289199337901508207411640539897780749315727400265966902276113894982630574300870792433112213664736296337554927436952650305200364188946551017863772353153975852574188963844663266042894774336759218068996536864183207690716670276667989630401393690707062909571974000227484905185420225796779835849918189577643976211487366116367973828381764689304952026077243870224035915319479540124123058502610419746555176074284531288426853199453566824065505766986525997566207590288179038501423148020839341616962059972706680152455212354438832701837416116047855367223473898552791305387737366543123161109757449541944549602532548041689440560301968314491254713327702085359118601596671865870729513141473942697705488470308758737001450252971787864315152662778486882398202776496566187329599668887267602011841791349069391923073268348581142321678363410424241391993866916710218888002041202660045576457382216117472954207997400231915119388813616933799383246020006368328204901900982771909169743590126646160602537708253552618636777834868261726340665931319539291050192415882002482773998963483696725431626138690626134149880508922291611351304379864070262874218513813097459241239711213812732174331096522866840363684060840972731556427209174266595135006100678188966790310900772397584298619596977042316736346097214235202499365632673287501276358608244201475253207678096901488247229971361073137338663369250081318818368357302185758619865237950890666046599500737201874951103905691732967012666697856793233188064918821591007816496785444457807321127308023035858563855158526901243949755242192296275957983468858264580409593894936541289225062259289044565791001924703576473829286625817786616914106258938766600875581434477607664388464428415565869329763212482115903329550737165299664717438403388637550959015374678142815340143899538721676328233127680623756718512184695885767281320126934851080449223223923768050774274110286395517787295062249283764630227389343348038800894394421843283168409943296958370774431254587392468923628014741228971669029929108237149883682179036276046013152152051896912463906968894897426311704786478875195625267086998135498220939805227258235523496187531437370041249600321741285470771535018897007985154113417561934844963858027191210900556287373367788169813670201647377394297202646067307446599194541564501765964318477391189105094755139162411324872987890858628646198260885959194276445807662382695524744270058674528015467983929696067774465876628756265923098006789294657317866258991786014926802073968763243370902498689887417199813699530489889151969823248784740968783407609088226239036113075621801298123826302897509286329160939475810833346691022492255722420966065064635250886949474173915147647082203772449609209102228924600670705922403740509762599498557654167084751842367237979089027342232124100600757035813115736969359659865055497302739653300104621793803705173011922343888324788935410005679177775061328553057057670473437329612019185779504057898338925104825722504161027526166055450165593906511397387238275011411554692946575387472875588927815049927320985516582604569506524059354435436908490378600402537095831810270121358019093544242955500573013490382238015070789702053582677878170374913615657282835874137589746556473097873263742654668094469374995787464979242805032241948796672958938346374538840682612324457253794847162432028004574474204197191911373269903348133881143520512752138998021080700934246071794227195114682743806822068024257767758993964066693793641670111599113893637086791323290193400906681084219450128587540161475187429531786634657197866765415637143886220505170301851477395352264306018102065417660884888850000946930981101967142755117532390974825263676146150947285863385984225843084917558478461114647498997770133463075608776563999882087627575989410661438993386314604727115345650484714095210928376078601622861859769659537909973079989974813371558964451944945110496243669252222514251292107088331786542853835170031242395797280764321449179590631142681346362487893002937826262135488463406549980463642442292328996699446834406933457731899019967202466520675750887919041415989409090350589258621349839737033083354952649552686751405375806195773654147246713775336505646376229371283240155838682697687571563010075935239961412435817465717210894518893039598668434558278779826445500077254939312197684458031822090337834649578514308580071438803980356122871643467819881467939571633291567959942859356865290383282281306386722259841908390259229692950388602692062670162762907662129607227015306097921239277400027083133369670037823606191967716215040917046855070593859742048436398846216685423254634204412618770823634335906923073822663014049864456270955544276360637422328004547014008525780607427148922246983729702705583895415403055949957952370797062733894198354781940834795682129803857295419152291223214607639552649229859236656877774247542585631645648408690246522685931498440691450412737508469231531878126526181100782428437113213004952966602218344530631454934707697860646264792772511436991215417465872735566570932530578831053870592142625560982012957734558046994943876508892205041275310180340400434880658651947974157592104536136681333812131788902530717110804843473706793583957884740734281806242795860833719951728605848497728439298802085246690569331093350632133467532508174197480318460886693194970325596789615376524202637751934718018407216931846938206354646169467780549186703172829573656698307991974425118530177149056574228539632927894702243431382884009467887412143184849438605979306526339864430489236197816110913764182899821027904747462278085475359510493719295916617014743575615894413059183373929370140799536135230676761205286856474811426351811147134076844532288074606047955593486728148150623460273838188615459442248392415579765377960664602153608425498018925724769686511011346337326078885027386827057159847874757921027371106637485673059305307508761619105095735035534932120853545477975452111016573929433051690629172687421084555333750759861043821471856747262639726824784907843198745934708211179398703747248576091052246558894860682361604096293725418650511601026435331254671630274318260844208107620252337718579165674047924643238204597388222295114519233718264600513232360535224748402687105026303417468157817560430940674256618491955115893159584593381484451183469606897276857849881492413898092212417778480161206632284884612957274266196222462777751428165109798292016262097902177769626941567256306258493174339404520505766941194191085271101420752453047683485664702506038371163855236179051673834349984720059973199749941212009128947125861309517220306576964775047784315448030509914223179929846955432779131881232904670874632555657572156299677188331263837924630973652651166373574133637943146661760776754212905280944060011394699373483939280166879829749795436423358224173668629950190885975877508066072360513408385738012166800334669217013835392740082477014070553320225568473898276785065284368297672328335009089268720079453338558420739586431790880601471815301787326289501608465136674950964124740747545387824650283314010730397231084264028405236016503398946258867763684178706744082190157515980486186295454538674228009490708413114959887052006178655688514052360774736005586763482924583981606655123764624982282427148098516951590665485971926876168424820851131177353321786503420111137518863981464053483995941172710634310402046207493391064805428843129538251636971479651609524126737993070740377764974326026013417463304618033211738144162310671542771414174968504785723689801331070929912278222097550580269746384070878325509643539641787800916184313756815298158237700746698591294548349104431675016663924876913404881362665568207888307771473337800279346172563728901306066070974649662763661664754060010056988764896749716782383708311376380452489527118248170402097908321001031928608718241685797929155323003924237592258287349060984062456526896673310073146380987703349840950617361821771509260136403357635237233531285174805728526957506336075140684082514900885492087532285547008754056414739170397333007475289459059950289991743909243871739878476623479960811216448259781977002937472942391183817341452190960121703376956516531749644740650033718702257168270729046384468038914898311673153009914028461190545794963145235106508178449833747282422134681076408225943433448441080299673677873118432115281816724671629356968587471855377223863131962720338164051198421489686153968704387401227135137788552656704754581943888513679219994142510464347604629871170671395000493400863986625470773280805075946211390400929747119655572526656998660261408524719443001959564938232345770734913834691796632988512950589268960565006655092434755408059578124022726484007730692308296478638644148767367786262726813423535561230013505871881956555456123141027989179308639152413942418156849706607172164628574354682284433939002436018504955245760019325637000103554298953701853747430974376997100805045146746813293818137240392448482666126231558636214079088365057966774625811591966504379281780865352255164275588769940718682668340201906309388355379568403124640914327896570336866309856846815828085311079878676872189124730340142732066605950364393400216862637633709166063177834592383136472143849989736575068264196707440806715579878558633881335594504188653951506270353186150745241497726423674257692329792131711361845356183465329358858865048945064320942925081645517847728922919669526602826117195978003485818274170088378800102966354750196343749067769949403248864266051016163877177046525715331151783579894677735282094264677446617970420423701913893226774388039731727429509754306610644010578838099967159851963161924289905055341499189047604483379567574424044231202800147171699473722041614755114827220754375960021241255020934690281576820521145718390670152376217179594422283601726900075265081096340687432361612910386438840748634816063189605638836027778964896512241703916293712586254586530984879223463659143139405474341188683167461473883784584480287295714119315799748345322906785604870314937829971840281873631236807953634578415966709366294021221688831000452509516441644032744023461224877850178802221095904986035238559894639135737153924281279427344705901693339362546646933745263328302606011931777226467844563798192102671018338077966185776636233612180141429025532073867672002716678084710624231405974038125453326573461389140425268981671590656149733139685682368174247189513098267955997647875869380072085047779378597517870270824920456951456326596608602081585790844066372410686792553135359013601022197248553696053997370764611616758400218278791425698648210507410832870476556310067818926794196311004443407462204990785229825949576904008592968875315686010346946532205783346174977653213399933027454146908259610593718049856023959410456928384169015488718790617554569978412739810148520622300463771464430115676792888781169189838292363134387250922104014830865786807669483961563939308224492295188496820953589518734722412269880236301048040948503294404905351154350608804964922584129122466941655814078909761880456959441931837118878538733115416462198851863563756345729284167849740577404965426692887373832521505151135008521883450658680610406197758386943324119693962315982575361623407513180320452597413320751122320028297211100412274451639485608814079798001269796726660944918652333765430002943045811038366653427665318717637098989221172638479461577111772970778784509618470359497831603035127184833306055826371792174284376956776541249544764102379786707951154586976378527037159607215063945037069391489139633099542776163299867040615348386801050068226408491304050540706995721381219388252341183568649356289999229305523655082425724914060466865366378860432369286001226720949398024723375465803298903778021218990385710379403647744597007221317315367188514100029031041857634666711531348615236449458567456014319278685102006406137970200686550764814344295818028502001997933439568880154962864944770440022694901676331620988609785773871974040225422603628357828510244618772781659062172244711844305324188296512002639298501379371267018570564312917955188943461520593765227966640171656669774016318728502444977845907094736271945445300861043417304349139429551578111849661965406268180139475716405418557038601025174261086963782848318555842047950640486757529255688403471410173929761132850492504418156901731445439627843413374941821445328106101760410344404540183743075709414031716558945993475670497163288130001638971576311465262434130792754477659734647548166295771516255947575291404203837850051969830035709597259876941135653146817032845045214174120363481380171228072779757714832242153174434467826537039935293295239571285549976629828818386106338114485710605725733523611435658022061411548162709331025928625414673901830710205089210678455631155121117272150464282643965426120057967100899245108192729819823944783332086239767153385177352387609962767542523614485532730215583918650721736507255168689750083597526023414431366673040386424061398550656655044140304492112711213134001086742954287615392063694604896013257872087613472897235862641495316827725889309055586144082079671002078076446273666367082359535474818340559637924723449164589556627389966322390103649666943098967222017223670070149296444218606243122998154614138261432500919690690962282904431301842011332446732578577333480161003615511976932083322552725245294929416234960406799010794817072516189158778687586368369595979243780037154201669489265410903760738261927232865029822313295159152435820267284797384058438854480517709946795453312342449083947581410521742697794185949392887916096252957124147107541900285332450114464877468657713658711586055085711470019757082078616467390585772527196918361869962127892220853925940292691946987657651791212792839042990429352889168855414087422162366581927988122876588700070336413138766891593233140393899001962211657251968201692154487325227895282553014574219471374073989032997241036360541166446040214499666746495770940800246663174108205956128097303089045520275728532887469740862916762127566634847770352322655530601422907356996660690969912619655562174321499645301261525262947101266788957705367127403355580077620233746184843402019453135638869365360869111260864723314171407356650364821032941378443635393357147879711259923706407242276949033138732046499524008466773844548853964235457776462145246470891477022667338627119020038871206559493062437900680020075306097633135563669592796764282049749092020103353802138031126004803088951459585606575379931739938647303211239490276256116993173654990865990448064351144417220410386897479082134621446071006166874211906507473678964317282069404939032694505165067684914907360067660725347100896438491017360896832867902635505543907638815945809130288345008140793866642504096529174399327819140228771262314112970249510732270865272805551971205671739591069169503439665896483744571072334615838495247859937550448336742724615537608179532061108575382480801157009263303534659101548458912255105339861538693602814002305529578264697540555522586419057018789361498148007790745480960700905724556340772166495030206222874548310671156336316244734265489266792882599998051286085084038542749160759026089373189160697951458053335486584342918669798567481254002692347874404540055738061201398118457072012211244305124332458618278980630715646900364439882156118592140219320765093695411349849627486059280126763801249358415707350590238703729979500193177333756645200624413519974517114752025846920315816357239684316573517859914725251635368061127412606913983073580635263715031798852901142297644275014714042551791714805264359484046560314022338090470338670553896503141235803753421934747486670210369145959214342497596782020421491091506969682018496471702571205596219844639522290334876347465686324900446280369376902015384445026552362978594189701403873952056383138077926623776252202616416963160068608298757876950694348133553878144543778209482930559161650114551772408293862900163288422914416982146484295306714598383765824022359574500983807531099062954973954626643200265423816219454521132304131864612310757516235428847688460430514390957803968601647969109526512216134583282720157513345903817766625647737988012226274777451150064740991285972946073229888949854215132481830147428917790249682424490579012993307259292909864711397398366664557656089526614053847092879156742625571824088700721665145085801386602401473485082903979669715860981527286256507708126032613911986917468708792091321879826331529661115502058161943890297156747225870194815082444538702872953583300607249107131318529230142505431208402813331821718583610508393168596618356480801935603542569608598150578636961862295652358997728307757250361963435391056358649508039694324876950566311881712600684304219461764656232475458597656045373208178190357949218328646617303778051608865892202771188148744662780674970492411076971112191588743850699817204255621366884704358830408667756505945250892556495777762866160959430272703234410615454153841491738373312230086700166504907309649500548650209029290421871525178539469153955404404149384417607333858468461872481845856038796627701565479084152104513557756734723448616104858572203939669523957241756198618353632413049127495971566167278646184080708104814238336307134996221424212966994602299989488616624464538908072406764468813784240535627838306178934382141887773747864086068403381686478079413823141508013824393667226798577065982491725894769796944490164607872823646729758378632946114804370690179752514368391325911366770159441660302815740323770462513780379510019647434886225370569824065689795284394933015823218189069700856103047628098303831046770526428347965255212740883873198533118096432928834422503781751933078055498033252655680300870434207296824898240570296013572286259374490301781937659579237450635079468257801053849344245566131001925113574560157111960905126657762840546049819221712682070749084543981697612505870980811907824060264845787013814587620940871019883320943705044677354621684214894921944933472042878627794585813554140667498630017140069477227319759600872398656568457074708741000109129980697726353105652433301077431396311620445539243576429783807286699264471714215439897457826074518474200367602009063101808909801410311713064366457064664955809328916838135532763098676426898410892626898491040033889085556379123502802848698324617572169442412946216157004414062345824803474813558671757254328342031301937315346411702874573292940363054123256807025913110104217187790315552623584997412446825369017238784719941292579353240207055023030320646842477537573751635110427625992937313934283937882075443357383203728728487364831675202932943836367306722665058863034329997472914835011174173957669011515690820078856097148572329474629305803140407930269432952751938284691105951282537333528125269091640631784116053190268392196969755542074821042616869488246941106064527092081100997373895191079722383225390744736244001045893483834325127353678435623122737530844064350289531938235184373786518691635304465807727553345123854236227747604101886983590304756936668595333392437007810653222587080695668449044494411532731709078455751939191712029023569690041209288846133131285316751674619388854522623623864542744070684579212221287450192220226509082699525991273590667412125433465289924648233916112587363675107690091162671610685806288465361033555178774700779487382100234064372901983857757332283417670663495604656110264848731009006500858890229029234097643493409057299056188550456806401344202932586115754143182553889572281614592771683332550129345701260457088347181661961501007805631016481936774792892375173285884493422947539791173405563964768802765689188671398753373554490354861354608374742044399131919828779205976050516967770469188515527496551301106516031650827153288533558519738565257979067991533501530455140448886778004593292959254279901675454259590470321383025483405310035368026541535183880290412312786581633182805394289722666214879147491145057038939967465638985538558700134825686891615084121660989971993659536696518717104796792719217842340490526646300479345129809037380571213422591173695597579035688998382330858794806526014931775708009871979648805975720965642148851378092193173731214611579634875208135971307296354877272822683449022338460076131163570658351946553434101335490597418506751529199963390931118063655164489098602001811418129017302918049703181571178990600972506065166065368392349833419628092819764559140816622976269799776206750306634739065372943530518609438535766217334897079235717533871906185961712326179159226619108563731229605821841620968587753708938959896380256944467649106551968312150705909434694588627191667549097996060586189749083681937952410923053424253499003138999765211692191692800698125609263334294776305716961194038117989447611721532633571070812754619626097418562732273221243685320920775881343257824542120566903881881821426264950696893272741163445000942514438753865936860349324884282408246570107894628393260439817885787355623802185695188936427824443769630739087801240494879423750904695079013841032981143431647958380011200558880347275024933028767468403581353936391868516810603213686143193345068863351949785826706906779043432353130396622846415481321773298339631038571789239614630207756692136088076344826475282147325437598445398322316222897961114176245899404369553162201394237018081367210104881319908454893217157370643676197801434124043166473171013063545922995556831463801011955681694548236868973967281664765643107166632438041762493292479211147346786432335630965781873797702568316789297547716065578384207351669773571946940194402199782371194218368676087967473443945869836504748014508878229830757358076150973815089120488334761902515486972510168365068157900107614870410366835806831622321883983414698608729711296483007773885693850870692348435552941875200527941140081281247269547421220297287569510545320842289409040513608791218481570052761667822192609169425354948741729598841131006375277782847532681259377441816665587087377364603280464288555477744267289054525225423975321730885120804752564416020135784527042714361496399697333811950435693328513513148300617816119363001084266297610437718694242091851039074018620706881231338549137206802795796201753274308192822662409074016442401957375095855684435062438219784993523228650492672947843675091429157151617309054514052230310470564336692337377180557121138173101576528579609875767031338962208559218858117489494540359818193623039360199145375759313817340438052131956684239366010753259141908420265943242807216251675286134502610251643963906487296138969079935729559342236686903770034929446727469630718893927586992626326353092844045423379817507311826092429270420488096463457999195018049673225042090223380123476219991415335823451479303035576628458590362594063215458750542788515002060040444238127463811324103717936101792142591942131296719327426314200947023641129606983607635279778833539076460631363852332898062963042874356754054812145852134232896553336204569715191559942194207305820810986528467518415776879584466330452751504359861212834577155620566974552372991918175126697296118216905765785181492492994352716249883937586205862293203993158335985103603545418776339968602698269480840347146959192650531890283283032446991672896437334911968705648428403236576730801135805794376703046687524888426799291085872502459921814040615077261391147876243671808200646823169338958091930912809307426335594760185963561680319540231007455942847425958931174337666249597414699641762879703211022676234969165742382239775903030948874312502218652426107188317650730887947689254148997992914239143535538484685700693254934477150383161277645521461967935231438929552980369117592383862948606191410746367072872514440536354492181563217702772695299436806765254662891788983549026159824844156039068729556069160889100117416907044755853370762118803791412196619333001395324576554505191479047191217991956932291773676373744458248833098792599894096590850940280248076753015829330893231140399925818421735428018545541895201227723636562508529660667535451170526614297301351022832796745744692848343783817725207707058540946275142374715453257656362233850584322354106301656409509531314663890154303189462331212371618851030432305471508146519261562181969629284058056135248841248434006859466073625694213276844207416727705311428135206526423221535651483176043984000118926551758546857312444354085752927698771104504098124316125375026556135954368307688163576870209336862597263479123209151975746000617110645702552642281836446608348691559623844670378353484829433093226124803364775595830337966834819798807202608984718992443009495504649082967947906921268208279750968581627150619584710101936296888005702110924397155129435866743533963704052565088253683906392005191583434936549285533449606473642268249904529655689992379818507473335277173902425904444318874760118968506398200765876401700337595061726354851488032690855262694188592228585739241507339915902827969917929633388554074306589492846152144604480982297640760434485719053154990808850843548264770859734337376926575399084257458833181861918799053130142023566995067154430413743833968864637197100672419725224696552803103659191903578064096990396962643489275501877827427649679482614774647003740419925055999736045246025631616702663567805596781361444454863791887091247731477456435313964502942280761551003564526064271431399760465153067935877184315901926416569544633821223545115937054261855473243417984816231517790294678799713688315448599549868603495557487403790438706367425296786673421069491925072418821498225875205992657948772354228616347772365905083465289982203312177657434963864400847743742926593198188709508637362044737140165194737492270316747046732205906505252071939279548620175270316286919548785807005716988164625385924311468246507784402814861872892684411378289112756296245680543273478729097364245423860565824202037732700309086710017048004836559366104243875124137232064925176070441136103046692452660003682965228715714073468418157050089936500867156697075300927625900584967026418089933154703176342277308267048500590852849034961201072479306857183758323083654600747719249614315425214547131563053196877630007345229749438074562619970811136644749820713268905027155846005728016135746499892298454490786758420868671221846393916541834872883702545405989353018189181141794380273006837677082579150279281762331935001236083722001481775964703469421563456979429243879013157535409218947971894225121980064251399312442347152846843246042791794180951629276046638435188542695711522188714135001074506247191175273281371645856468236950478560077584811532097046887191893788953247313685041887268184491488247031947563917816704699797177954718572225324653714308408770519760056449147017156744318342853018385046365085915127248708726112795087052439787853925722275909386773846561310028609323379869569303257263560033330458336740798076188133665979059002398998192485336200461245353592535292665826260024167975037104399806534437812316140162792056616338521921824692012415047380966341136181456323409652401922776548490017491724587368936503156236770467509470022154394446015497503739820309007992122356004868412688028473840259326057058330421689799102084855864518105148489617715499668082242529596575891308673770408968226933053273611419960549498746518797648405489958358283867338081839253649506225614652904791416409659638682904177734936700711846114662851508366324116897115824586713054029927392572018349382848436393691622050566205997136438898350626168754574348569240043722215833230738490108004466633598302118564732094109136493893430151892873262816018869954168252541244330744518065125055071112359870500876176733329776095426727991419605768552506376110474470492108344698588016321384563722726312751115530493232257089830711805625447823703916826224138493465507340564343933428386412381650137783944065649146774371041339696460412621195715779427625922936936917830926337004841212546849476921243289972352670991757190645141748014017402151170605667918076922393757020346017857081195949807771499801268918093969837756801446204151192653864769472131530229390094843811171816663959918794557425549155738220531260630525596186730807213365013855841123243250077172954105301230644466385059761296204266402274499195304636432194269598724395302138059386377787118356331878106099813861590179975254331404836430318339056746695143217238746459218187060701403965428623310563470862377720148071683588803212765642758455393978195917108600686980065020062994522995332069328448440175641431611298757031851884164949121919970201092723904042751554840387040145074786464130027171396378227299146442704606458842557061621737531390920985466934748013822363923877707683426182224964190072070144693387962850752501415701542313251897758326914820500939715124718236769131452141818882647005752356500601554998550478806190632912707816655668329412206909674117680766010729535975067541022328993577268488957269944937554707454512590820352520445995303148810134467675092567573418218119983632204157357513326336320580844365723694725756168781751629387073823461170781303094826844545589304789932854593506523087214818904714213117242303403319794736818211223608198701597373711169928313438175935028191516730645430127306458756574986795020678799803339807572911574685584958192063042481085671296382343996796214801299190394956484635615304339073522241401314487057530378346436804140351494567787704089560485194917195757282789136892289933776697967160476781816816178751281075720896103757363134916748657789705390379908650260147196682466335787509255158938440351038824692306355467842261372876388288291305236095395837466906827962196600372209918282422594861062881194293743517918207430118876873720253343329228740594862289954339317988169010323859163600484458480776790407064933438029659518831559377983007830867354527978714414310290489439722529856384907250023962467806006349492427636273117601137788618529348497703120159896925620038334345531225054791765955844586874465586920842864445998441042981130461841264805146188174965728192789316972593665916903440923854352313004563663655253648869259946579707039862989785389989450810440403001822093237586137349486192098621151031886493433654617065285249571847990915935908863803454716643677055674395272636384829640939194881885395636636852222606408129493934245264153174682616181741724870544427819754003308656453570936011121521538520015159363673023598627940208951052044548336831726690650870411504673514517480914270656946201188907245666223585821049977740562800539269133813953058655048245641438489053977462004297161660662031985671212378368128195894968855010425123689705437291087909273930188838776424381090339190678894549795741482564882651577651074311280133313137071601698434979946571875749027367963596953277563080460219624343134827306678897426044420975275641335857330189528080130376514270290736611302831394333943424383947076708758577618126830420572245468012290432894141320480819809274234642116337245357936621595004354540792762356647916503660927475511009762743143047773798266742309118036442150136051609937503289792501529470346091662384413119946044342403150987602986450444235605939783456389270654437833264673693567761941491004001583834387301695981699381523340577482440899402207715759257783732200640026348394875888550357865904830368968881351391394808567954874110609040962621712085408075422832041695237281067193697609787894176849903420246797987130232046926075358689126826929123014915942595279774073372044770089803665987277233124596211711627079220743042126615148317900665938442731240186984206578124672711094948027952565475416613822765913671266128468687128787233098453336132963191689520047051983586879112322588342195845461385430510412389694195046596733022769871974200658978598915045901626286991663300884760615421998615462673077980563042532599994680362269618124035263382183608098497354652332443312258685079585064670116937307581416642680481037752477930208106288373064633144507995082581361222562595387624203804460267634898042565124534300946892863813876872420073471298490192968786162639244365777134970920076910208286778261842606429521567703658380568373733487354150109197129546565449971414212698477369169263440557446399219274820549404452886371796770121924941513378783331446729294940327429556478610253605689308543809944369721901263448213712462519512629103250582056218295776624356893460581960221820840792077783177317761093280118068011785182833604039671181852006697780069857238449957950014396465542819583339091017455841619650533370561093048689170869018138747450601947156836962235114859173148208291247085834604460213940617742063675169096271496304639401848192223670257907490719904285012244382333594167057498545934219812251504989517789334574516417572135674961349154234201223361603293884850508962405487896464081820688823166619629984991727990663559061686593796403027109683271307679257700651503619724639300784615420668331511392863938116048337483730687875515238628465257064470754078308269653418750783250937109844061195799391823353827692496133265171780217107544510736728874921877480202949462806690892423547121335005880651951876231967376739051775750555705257440119742532711940736385210632722591852056033092498147829533845512379777243337062089226811893058398652184039039485968956334412371107737315292695425844118398987277654019872837318017787077743165209152109417571197067509759586874243596474355625645514496306160173103730177785080092366426649012940195897945217041825205507932064233690288883590458183043322300750253675371852646855262965176859817623966574176890984526122814367027719206500045708552963541785781867366855462388976186969032645285017753813847517574538657381923961113714908047424428781651073830464589705684688157004043255211250167440032074571301410358404561625816376481175773238369724200115613840398263642415218559818554506858960716669665234605268898304157610910256463043105777508513520949736118534920847063899562718953723561401946996987482546963431539735872657392041894285758112587521493668746374500774188232567831221682412267377098362491317873362994771045595488385807546891239627753741717747044146627615937184113589642082071894535260653699390453068591398010033396891229773681759062564069427812342399245978761462270471837860888090463784324190546302491437908210975348698434509231513060797258580335605468338818276791905127586511159501759034051444601184063152269325036980663309401168497537771916585501629227634336772069684934776212689747872735688873590032634166422969822520935366683375012895942719486260903160488177509406582213616517594457476839947607870695917776108764343486238825792935082207783182629007016722098284293442067195127843157903398654794940522415491945847613275755765571382306243409671257182328411209732727083543071711680054888388271452993888677099473084366944101040392086324490784618831211604891942583662399126940263821755560464262756743883263267855013821524885398735158520595047791449068449139633121230611772545147490311200600854409609045797176880580978935244577040860016895708869289599218160762361729108565084837350630357585742745187350046470703711591386916326699030316313573972144980043618549957696218273119490383348439979025156888930137303636571108434024038401801743994979959885973747448845409137099463432650509046238721421731172176273695183116579562151596622515025299242726500301555545771215636242860730874326063721649627966851880015311018834794082903910670872530922593049316940383290447959285136580125073049218526864394379874501413896585909804548439766311075276343518959452860129015421524727750861666303965573882634474740120651201619310467422781278615458996078962476915213721705186521769655920111638050145914657524586873696218373783702123742609628517780266944689691520521214604775905126014762782702816989291344354022489823964674809315659768873168013093950081896357534677699661313126240680581022892274050453629682647011690748562579028042045091609609708049939885983290265105576184487842329514884018470988481135113881154801103793042668670986709914505115484920855114998220690175605786822352152362823186911942222304627146680682404722119104076696451866663553304891895931159312385555342557024330266541321328410460379066839792598832885466815354631605966993292299086706858034964452668258464829107817853312790818445155961892082898543716219310447447529310364061211173954570673025862521283516876041604651642297778909006424173853554154393987689822090745997498469611042248974071389066309207294432372007934300012178334161852374182952969656995087504572661288962358653600779065347258246856188493755922978562397179906401722339766984605180658529077097108130278921229129549821380214189575668928071757291456387877801242231429635809578274335114756552976491193055657609721076113747020599498317319450001090059330562657505040227275729725080939159771737762925636359494284074924067262730100711773082369472526055709975219093764281258278574121440843138994281382774733555509343567657549288124462638033984842057266140272631962548559650864365868492471384098875424162880042560261219874275226548196768532031220300517525730346821364972983483617961128803872230268057739293214175952690465616557164290505593637858538941227694795056388499443256353817132061071928398613449020053732669481501127245409898308285739180599929220734727275104983367126350611556391885832102954618164985790406009395421256458865738135847517769538274083781737473646644070526118037206548622109459903823854687452934609478761036333317954877282485237838482856996863381224370061847370220469242377179120113630042285202486812365974272121806374970819652563009392155237107584102378556643070798054029070646968494385606285081243008265273774025496930320160612484629758216294326634941548400829212521505302444851596052313503898892404782099037452265961077402923147089817650996083885984235842203700060462045825024260047179554201318877993913655580461690918210499618997719694479752451869251703723699091306221695586621621424837200617048454860014517929284424336293560190362826998731471673136004621357455680675803772739683493013952902266448681032768024858188418971047384338021797571224318204566635660419777683354664479891243966542591280669472550592302756829941981363017084626785749630290514551284934379871416748779972771468508977367499063343100736191779907806453940231198979921484228404204787463033624767499518487915740612208621241525625787535906013692323239711895403302262778424837646577347769542875664290755447166242020597865079122488558280533748634450199560777292057644845905024690727207171877101158904719707314691921492441489443268152433183877578773304539864742088976708370665685525464221415974928419755255497045604897541450820453887057871939993506622757133055296195340717721759825893538672073319983055277227893720646435945939584166980933016270470502765839797080521376796771786029058126212661412713108441169648061100734546806816392806624283433978698800697003510736464243178897930557192768371643909000458346046335880237443830493416092192641014824815564752252269223916368157478492176591827147108064533935978954013079792732261654419283199209404456612671305576982995551648233840944703791051244470198125568077535584004753759965875403544564910197274832645957182144871058144949913633235862036014023396571974493812236468887276771788526531045530198016652897664439799857695453141269508693310840570961427049750210492161794833396344427518334460007746119484501632034364394834293663670583966025205008574864607060495276482330633208994036479506656488407447599866347797459990091621552498933519785358782037201925506024871792008871961488840335777830710326932521342338418065595446038971577808830566039563889815407510400975343952582100098361828965602289500290503283016845268930809960994354064951065942808646420323770405531214729093421062381676998849639261487991412241816853701937426006203385585855126136961011724123396885641421807203843007101239849576129934448302911280524088306417903430908987829267407468109817988890699168265533615551626211423302394262515301841087983904965341979519529621832766080042214374258744126262225798602626437509791589640229870378853073263220068991560541810108128670668777433286415486458032813724623082405611472628183888185578831805042218883457815169968002754441376572132528564516832883324194178312520111618775640476815722486963051172200118021144307777203308665764132696864296824362103946348610408671356455844582706260734338330423427909028144497938584748765867241166619394469509996086105273091292392442379562930435756252345680965411663895747550422640693069781221590456399024022796524699314558712849762672810655499920744394597550097300932649078881133112553769301737903213763494843381601660221284105525356470034763393086486300741979410485045933181630945577232005651228376346435851745587304606962336133515894366228466410834857749682393015706710748165765960775205719473273422178796451453492599838412394965549884540333398700377132554280746937629167516071914103290694456996317632954893927825368841618128464245361833294971871334926290976655854319628870376648052634843484956324007340532517836134230500569708956652285633344706947799860463449912712379045302976833295893737461566425237318614329126262033892337895895820271817339278976102128572811051731325245214302899241245311936587247009011006188930297482747273809613222048803147391371767805849253812965580157145904088353001487882266365472810432523671922604687008668862466725776154558720175616550635160946944871839720058460240282167488040899830385995032478956633160857824950788253804766694510086919256298617748986998200358526001844738789667786434200740615389183264430299653093587970178624286819412855727951539470940111829023996190724967912054592544419767955359307350217977028855250137438692370741591115015945819508292560137197116610658158829799421047914809238116473432998264183047473170971905951225341574490126474958139832796821662020815891523015994914473458959377211534389285760049102515786289474012178231033888208844947626350126754631024575402555520364327582498021960155533345008111687651454575395017406382502243531510597478017893965425072880948319211158406654861589776580363257688771181577862304369871855486446015683228317493277841562465993672537410179283222601251657788497601550477315878568636707324229852534282399646498503641332331438592945084779672291141090642734007844313446877718267222166690635792375647255400407462590049787509542406425447020598168564585003434548795510007431925344535032967397195596415585116983797761909794772142337198824435588944958000528718892518756352591951558562258690219114166555940644039751428262575660850192186822211468177636085928117383931648817789966996786806084313262110531933668782575682100232048882408767606555504548339048398373199831556745508225981411608221276358646927705352968912782774161557576789201917694549157542580975201985085803890591092823497067824034932450285484195645989036528172237072556952693362160566151650299609270457178406160783943612135351586160834663824795046819188856671087075992069874121480420519413523002502773873771422204777481614628793187624754448055661607652991365564037547024229208142869243599757318060614108900992706941613211342266254463905436519877243648218413140438350000081584810531896398092657458929274960524906622155491032278573669078247068337480248578848816602073868575515242320932463482961554650960045951360049009410553470746190503562741573602639799255392379544631530764546619714446034849005224633653184894430514345234327774915000628010759420499111629259422008190356767436662948487986852659400873087130160101641483604055197875127672840833332726064123217003153224346062201189153393527369985712889388380408675595435843761806207542662901993917982921550164281435029015285359530318266483450124436280263635295038396309618107168296045282845900483711176173108949257481353408143685861157912278221758338979681689313603919760581506074915480247986386364006208518448103719170420826070363413550038245902317905639184650377454007862926232572045513069707324236430875354485950215243468372921822695667910767041534725337095806351715212812567389939572434970028360767519357931920531792101457664401048647169980691666687472092567949265430573945177473355414061813951225683056067369414311606545758421749213014934491407756145310225545275416835639010629720848060112179167981577021148144737475162940841309027323239503044913522058907623936140856286551985201821465486725632182174253019713180429688616600721010706128535357384705862516223881968171866479867314838566078492662881014170907754141423235863085109387447697422082067400491313440023268385454260725270107770960571507826642946884292640305641612039484534983714120684365893324538272094008349505514911463359543750462112008251469988504093010649525752858374853375256131126259964706017117677203529523124541764573850124892462496954267769367492301125022176724719185565248583523604413811159912197220327377988971392671209499449054309300561754580074453159011862815266815217666854390639104115467873322923240995113420056770507408887319481380423537655002082463448909955206028984760238147673719561936416093334328161998021310458885933876337969193629130810761835954133383431336215340086283865866217285167683467166218839575716064609236498655597209517879810688509197617521442605478256904391909881996279565486882159350201351390250335576127217755920195032735794232981943111319931330923377425344402029143116340737384809935587549130511963207672190829322711752413156604229228197531935333348653313427588836014456115760254705381078000652380810220117562832798845302819975120407851248373753989334052764185488573534348833759491874871522318469854739363272940339259478305129592723727334873730977784869228124446608726051127792986483428427480024562701818757464352954651745914696955372531100314588282428036450700193024514436820424802226031736733676317539906748844147050061528136023511119722022054115543229189466541614827638451281777661133452171506390027391857701189649823994594274851781592329095281242631410513228723395043287127092590178360181887813529625723349419935343758833482550118052787635336873327531122768854109868677497928683540597338250344362251560802128105728295033471795290993482773079182009559137489558189790618216897757936186067409219646922048977582292866392616698396467703257859567677688013332939271457734011368598569839719387299918785829533986291217276687190115981927160561224349401619269936710268399399839374221103553245262005896788222329950579852018447071028341859538023083927060176768371513248726513756811004976615049988570590658295494883991215549501889841635269279067341922711736786706761337344272738915922857740420921727021876681752916939510167151997814230313232467754364352676858546893204982187032287234831145367434542979637686395619892344765254606450992673613141533064099509199978922397406481087650442666296628315428976668455882800055740757492962380874394794820173383998654758381978972932600849022214752671088507320688626932511073349525677304891721155990643465434939424943593377950336499337817129463723197289132402386705894880651774381483558311233679719988710588196006571773621242016737071822208398281720732474971389959913801074450627661529409665919196207987210361661947780509337312768545998760490995013202002774274377348357648433673103837225314262969493038830901529504729005061430704036818035819509925623144282311695294839895721996134586550347797682672446688542820641392903752437491072526085794101774714624262116629471704165444642217252520712011758921533496793611072335142394406570548641707239616177688454278930698211332877061486623234643687964133468342709403509978771169313508826115104839212692053765856008828677119015666756440487486541822708548196411016052974231908977687860690192130516313247680500483990312093880038663490741593119059949804483909509700772063441704668167702371218905426002897320265897974368501785283595603973772439220421663024251400168110898647691283207182998433239466554982006623769883831112154201107760154579190792405879470191804610987108895211037796460472584641610484790417301421876247673582971594676576210652790141031275304893683707305649650177597578268222455044240775782253857391121416532442363946661144332462287628393459757954567638935389531750567487079848750014873189549987532126076318434667551383522999751902270203403390918786124320987384564959691285630709202582369808139668895817308169682524262194812719755614669594083476688472351522655384781223944813434389893777709086338205172236553193762290392208267940164237728096401079237801040178266710892170811803437483598822888899097546205332801588073127591640098233959990883526695392097326221962073143635743435438377964721006291574092010434485264815321354417947129854345492541962835841636485017168218469423754732404093384030214936458399871648509580957736281495933947264834156490867727923590845165064559187325009586419539091096316650614426853958135972695800628866389796797383929644240883121284168270737701894816535299970559550227432414780850686328978123650269471447948714539009657385815790177396267360291053116222592517773852123587919727316166193341867353361847320801691473436175541213925018926759162220938463127851354929927523410852365477277035134338391507743614908119078256478813609450159078811510816964825661944456664168544714567837427596504413845131935016141373142138863149621789142539462158122736520243854502257983577352179551119228196891639947868984149676118217561819509737519556818738857591082229853861797776315556297997599329292988297591632841160767156183453327268395755858800477965309567488783247335187292173356234266723256670653984477350053517872991784701598053536557620521274163993521404943966809369025102230750561798343206204419334386459645028287372973407744657052860867988063485746463965824574408282845884548685089602659369715511360455800814852127349076675758491456082491535398612331736978230227004763894563670100155937124879642657006655743361018088593337823891429880254241853261281838325574368763813184819661448777536841257804623071455948931971352838918542973050097824539110368443176347407010776221468983637311702722643000271778698801443755897853097736582596994041964034956673065705926719461962553331624780352115900022965072781797644592367691676687954876321248043486150239695997312024851747004549202443419370883787383048396610268014939808802627186241099181570735007076148329602596990964139511437897744842995599541069534641400359430052278473858872942760647831549113527166767359000424366517144308102271597999308112824266671252635305959710014320228604586561599899078378175262712525054738615753736368629084481887195983481388137288168593917647149389007737802451445714135250867705791437015041837527922162995440131741415021312561377401652060831551536205258109138967575625391544456093115825702756718836579389944431579254680597356331783534565999270819863449523809148740362428189069216748380181863436744558539518106191360788407744913961823041325799326656439748439458158232972168779004979146628216720724799733921393122873426593091461888400938591929757544724222716220180408453640501386283859334740945917993593537944036577984640989522210054149082614195757775297011681738976267091656575167238134047794199310583819706209316009170842850102043961501911501729682879435427771519208371190464340005565538276871850203379640576418351665432024592157763656004584955376891806822833600469034029167637114303679899708530719579109545640041932210645624975964852738013510720408697554506364176586827267708291072277706887821269562168732536394127109872637867923121681332671565218416323140859375491017681502583030353426071291980124544944910144016306554544708081432110203702227909612917739202987403729481794513052918696825817371713110493337728205602144609879295891496952412253459364512067249665004196086427212062701419267062479872687900615160634264704063181344226033926337204232984103271568164357038568258423449158001044098725597628266654631786203716171929607743816324342353077903282994506528333277131756373242575777622655044801205484432336674894307222922752155104631277358250851050147035798997673564483929002198654468120475561489922136190622004345966060474307594470749885427115141849435203029162287652134434323517471705887656152387669647653756717555021616356230861594066229570403652440473711308444873778127570986919553124430100431236108481185523022833852964783705104803377008510916299893488889702431715654613605413328549634672726311480844729773063826599552655094729115940465491070450577794715840408139245047771356920903112032035866273932107527417914798882110864875480400815095735818632960742512500611390840024811171732437382702767876205686966111917026319646636906380546954016330084725579280736327574810978903646033033676287292468950966758496456803880280311261383596655280434890120776452621078563563946911911044103083941785815001722869190508037792112418943363471565337075493337546089913842823930333859407202227600020961711579789686358281835159162114648661590635894907756045430188837283846821763852036737352963163988846950761427137700586674630651426187707352634918023628089693218053319127170958252142658954742312392639763500181476061022082523341987653499331578977017558906641715695751598059488999955149015040475399276622161685517081785440892087634489602172688009825450356183126692485076524635940289894875045141011968795829357498800546268635547992304900023709980913531115727636314016714863177773906613755709052878260172216123600218797405238400080306705160148618881736490758031005270376455967086989761427667600277610358268657180120330895009906106775699653397906655165079481108684596861145652452297637798194924707397142494904909908638890636310371198316154226542775390795075430644338068170090788382123336300276258529364691075116058937361203759771476399947165726211742882925872395921289447255481528172988033385579319089419106224945381311875041027543374064595667369461326630153467665946981821274381285855868024128019730413131627041717445963706441175402231426073230689448718811218880437158596908391452641897533075067280471253958371513540038679139002771263383024155524663613548970514067120295302882966905092777674922610467167055096479811823969124343175124504500165845759634941823683438395581502339012177487474239734596782464844564859842655840404884920425791332703457844423719916937462686418708630576460392670530944033597355456221268180408561976366196212261261293080201778107303315808035125941548403751875223986379663453842889934072567142944861771051820047730071432907041842499789159388685770109070057916646962683110009816380797593872381412461956844986359300063477270771958124099548823410979883052469334371685623948194046401459500321003666126044764847070534670287983992293106555741724872318954590676859055844802628688587176402225414317206003774876632549781934381545233395196152106979186029246740506822567054510217071641238299225233430256778860889279007729706734985928086991214558638722119747109575057313468058596631441167679076950096154326856444518228708549477418513328628763944603304707536249023684320558226886230669545732384627384918283578038722084198085965622707753064009547138195697677534150128291839107745553778735328177883287654476264185522135392714154861480009236727579607592986131530395009983903261449944831641841449105653436406091002104838984576767981608976362002514002107223663073027928127533998425142725081074431502232978927973144392077044357605596524231372353171670960211520984746487354038100068148450104301334528060564315500975295456149553197391173254323380175111368833325854885389851920433100337476846303519568046831690420295109000983938391974821807636448924430679347698814921955966174276116238516606259227960915959969806430011635702001701971385331075143535189941728716620027585096438465108148708355292682601384701688925340450246526259427752875085845885540281716709758794830066338350425913302832072534167736383761878529984497583994263449090899783443056589565851985754366522117179782564834569696640173954383586231762286676970360394121593116902522705436524215931335184445641667424272442841843158004132798315515611280090994902207176938105237406023815009301429105662079470136236269571745008091499636254897441980126904970072266824768626580890409422863732012417351862029162419336326975739601380598102358929321614253027860541051972897908606872152314520973762942961723760179534658442867441448666128584188958055507163269695557385767909218140451868472752940358878955161884779643112442510073828449141500825616440451040802814568049410554038661483153172554595838765018232933159795982987111204020796205927665975736457540925013739094671429842522385209692775465973428053527212808727384027094567759221830898107872437766467187522677303854702544170236829236734327259808365952736531974700171468177440441266511409174733052254695548404989914617413208088516952230044367810886533249033249224108376033937133952443426644257716953874660073731370002160622520780581485834327782451214320873248351684507069347334989448499096325650488348182606922684717516733071587855489118004132289122700101768990838351346882032890909651380937376407999236311104351340461499533144999642914945978549183400644959742802085499918682744955880373761089824059594033171193678166005672078723254361266318143860726332366192151136568666957572371849822265627834513829763837763037988428509805213872417212669471791423863650125179824758367625808373620562338623620872095796914924547901183612372768892153365959391469386894844133483606004635581636276323255458294210044209285900122422457515091297644644438648091919376881122474595699297482538246112144449704503511952328239481508732687191312425428266099241084046000019003126981557981553128051788774451284120608413010173855046217912855365682289881914212007994163630788747199743143140752484518502075763765482647097234806111661147746293681079263925494142356907024597734436289605764898394245158691603905106313419068802424922973536169137551043008137573513638464101350872041312110265291220707616861555487376027755498399907073458024042031636059016367120505614882503546281051103902412386199101759983375390128292323191065000826990116025333453571139883460431153461007028105587588402440029096075036953146211411646787127640156824740773277486102576416472201157037276934665965613839141099662583269180503923268806130613570418632492267285018291981568505123037349016550454221587561321313568303864249993886222780585997629052181340170450896369849475227665034504018936319067810337806873723949561906238214102031166285030183193376803121746103209955708834277693220510973258387260926750540585648814042880979886559119144601948563393814814451113384997032707188468216848060719761814547200003818445057354660815721500985157663597748349782333115249432532625646824438669728891815200826620954763182457044124786567216120756327975683331596416500598818148434431373196786086808084837678997956112741639477671121650819026371193206307891137096567834632559075265096606529375620839032228382688220403949574986885478851405306718023922346785627734848368570325901545424523190265664844152317786159790660554737304543224476289833696468995091516304189473204255581026541740786189542681678056243743234654688961655198855135586363512514970588632584542761449042515326525460270918639349644162599491224099206711252301885967948475242773495313367849980634493672074757729842973656370484454568244818676062774349690052374555675507472960975086481770273207090805851124518699540002670379736061134151415004173577995916894682908568034856136441568013771380406831741698655726259620122791040399204851102103472303425937603216441209090191845875308213708154092219203795248411803516854177551612024004987328500710068612672108836650758708052779578601152164490731023345343572844602898204591083850728765547820406443205596543511896061250312405066998559503390735911029220522026903542630016065652878068952347495943615562068614991157225080167001447891641991535488680444423045305363744911309950061146094245567189569676303483363872522666118303702312103029627329697337172606525673806511713601022501864210170128354700622397283891117676229285087170051486468913941942421620296206891322155252994628983664795016769486946334225634396083065010829453689374671767870913108248575776945187915628519593028071379211845002267396212798845379617813549027995101851191390641686299640442344571475230683044113016217186351986544787656258424521589098492599272720362645254872606070478774258426041565432095711609681553325456168259084552935043892330205598405861341729844665925957440804968110727069941458683347049458949851040660020246117599419498706409785734849215698568703538460097659287357361093350224673646714918806517992510004115941281016147601562975661205507617603369744205416896188560536269993876189135551839703047458360685528306386975666304756810940804833587480279823971236925966300039058076089625823292863737248714198405144181809694445844739573460893726645031579138895691620136132209593973511130467874810080770464105490642109945761628593609691262859613901041927433632536927737272580375525190074430578461952622039463643573933561844844252940733843296912022960924652063117162389720505383761386850489322067419392549330625858056248509787182885608813544647830574699232687365816641876929186138339507560329501972441415583925084173466677792640309353358464388874882781043507201802700571856707991877795383683755696493594314259896437599145386839556679003735976724618403536958519658823626512909987799095698313594553678169209858721548529152456630864478771312839924149543992501539031050276399025801877271912836496730990422695504522599322850566306873872937952383317175716849023620869023648725799673484428206365777775959400813157375388263092919198669652631966326877892566781810515938983838713997810285275477081597184503631210641483308955892858830138354165199453236093192781777887078649881220026387094931224930967957177425314886646591173526814773927541619746361166915564971262933775998874164242981023652508550959109258426512129714709160760729529115883019237917624031907226272371112467769881045913854799988639775850842360470602614467237646446399024873382963976347745811219361591545866555787983175977644624882405388046548426084251757471012160903165455677674471164193742958223379347093947796521627303928545091775146726216687643488652728176881065538314322737341123075671778160317113889488993629920675310021609189057232592856772512230143136321349373536707168303545868432177672532177568870082010261602710756771128216876813726768036400484446037436627232199135835622624162928783110695704580548827989840831440784779871137164975998030582858979380188361317044703687984698943630510842840758684252603832578302984020734272631999106388468118949555304489700661244332993059133340269239344317163201482940202825350424637682005758471774196673558876249395171300782484129102096593724588638453506902486476164946771078020516622029384325407700969877061180926796435071383739012751170988016160319777812700861313660029996444561560064727990493105925755618950323399514371231389748481691818169696543903171849177890607963582275362192602837386593793972512232205767117795597832986164909122372723945768094988424176836758490300980500162820776264509613341203844867005400865610061680555203821600458345820013353466348896192736030265453210161180159853900608319878184622165978346310032867689891807145654011478524239404338257657040660602399563588182546991796159825640527200142856230711372899489524579957543278242311815494664662764646131368242741524593188069388653003535710440132008988998138434802586583599835121708059605685008883211259352646683360944837057141098960251297060689057680415534044671068006127965463441257902192587720138371031002137430695282570708453165782132620326206912901803923109599241777648162506083086136948844349476940269497331058901562694930275842473749954751256945299459502662905212084848631941569945523082139706980700723911498908086775192019751842150722114758185889882092504078377879404990069857295133785822373826638738696939808975336437948531017194425743510812471240244058532173204233864441098886443842496990128140191392863475403311532803990190184778091357687278002226066311098140362946581416864907371376573506199370081095878927895451258167639692381001827592387703043370071396630226456408554222711654671545585302645676225656023358371878571278161225525993803121109226642567051256077165679109410998557555890715687995475487659337611736576294588539820572760732136728564867383617592872417327112414253349205495551895680508306974990398605336594555794353079919030221030497209863083067563131300945217699961797427988758565434907446966547050769454251525104547333623818637546316690553690160745245127169454271486607533221577995009942441448143184163053332979915252954556140880144505380619719209726698008378671686424334962683529325879109959119802480030332645614059718491600629269237927190256116592375423013151597813437241075534607598883013142995264305627871840091284319263667528202828571279988879738282524849031777455102695508253083683290317585332165384536456283040267521726693674983796988385105599520233647040256658482559594632231959741173409212615188056333781623348119497052054425152069857483422212964334055156330263834028465168068946787129450243223959710535527339264139011103726586378625159749718111661314150680369732584389482487686455751739187428504669414070472669557090351285798587828575665862892778447761384011838584831138928974190312020688122378941010113654486902486877972270775779989807136942900008402722545935673922093771970297939099606004083965576712594718060913485714248106087284149359418630005097924446521361438908057618631382756661878005069930215223204135381556787427084772142473699610479076802081204871221023492622991636541332858086469821457925229436694309847139556204768231931512345920055448450661656538070768817894213044689267185625490089319935388245963503176913674006610802642090103738071649353210848793292905086627962039609469635876377592175464960413610209218601766859751273630822931637898205419315137771749878085475395921399457547761046705789875207341340616797698626030385445274040915591571164850324079118942151475066016884336767245507019006069014137490942824004145051510399562210134548158079766858527683069590282072810666792637158161251793581020407035722641696513339666440542852205133900607852631866648324650231312628261188757375438217518657942506059426198399116545297858298135892775163297257067863122815530085990387876816730007707876153417465175543303589676558984569860776173916222814481317036985024381539679129803202523004759372238036634628874900318559505161597528928263219645320778315981938728899955893504410019140256752750676990459145994975041356248831816239924696935132226877846387253693346989837880864359080628802028453298779436230041060577696602531361864810231133971733119150829258850046088567494015760792341894521642219133902919185311897933257665221734838058493309104473097027879621022727419676000206301209640675039201319851469314300303506706273837901659150769013202041959910755051990127621966885623827099589317048676294282191990100070573471297582623611441490086035793422393979628635303918504450864214715288611186988776952489008880368744681236291278493037666462312903389487888666282635657645210297206984377704476671216826783885008113034489730580673953706252581788407655306870953064226780851808798454210627456640923876703979717608961376810610823624131952463423022140769366029921746672925264389798452891412266476491319776121052722512707295575551569456286827502502344254683895793806760416908109034889038364532604247535704739021491650624945466345431304989350798672904740199127123554507939780364820661525046547331495719711881354404882320628611642575851572537552316235929775729596895040279959403524716564731081983494048659552334429619821789952940538211977664620774535123547689898863553544834708289637474706957483701417232384202263492304772954887799777522925173324706752620686956611132685816638846622468776730907209171631887347382015552978492414171096588908458504102981437147875511224133377376788434969858315880670045420390029318278697491822087423499670952977668599567138116593237761205908464712293248431441565394433401438330718447150563097857278301766946455920539747759174530044229369116940407151704487072671643659274199872586466001790594924990284607136755266905819821832927788433456033440160047834112722764323726121597142617140332060040855025149407211027630510050006071819401264354032445022463204684637798488567186963411489173480293659073220487483596838988049444484069203407212996237283728987999604270567213800233157243254709976578865943441992817097912420580357209095115274771658817623070390157134275769537301374786059070910084628502100317894557621198963720396799021436477005952491025020032152325698710471119418271269212966639483190960819928510534921433005324718047845539072313131194822992493862152260219151519889832719108306650184337780904974673631281220837223654558936157210130178002026934625842962227001853252270571435621850882477139693634743451586885330410515782857928227930584006908380464864118458841629551948083122198854676786834656860968761591856292238140325079471698794250348998348938148409597637261568684508939277436144870727759558855403475015554830677480633382869364152384888160684699432854264707387903176290381794570776194984054146228403172644685355316756129943551046449753404353844552015363193377789895475855862646976995029473106416809954683595313992590394883687598853143467347675876685591753964466110052449240932355332046179998175187270575098860882794835889956393981961635821928753458795569467284237332215625243099401587111397145731324009980804459540101549627061623768106203357832812150081471955134375968085510020594093511468075332509712427254344764938177319698788321424273323190700792840354358742900740478579746333383713058498026657469197051979646623503895142072293898831368016815483754343510874818206457347460578747509297838840348422512618066531094415257565997713016499790144676073003314279348095748017556769345860563391785562138545075379881369395723455937996463877698254955698001241872498150867950324669562089081804036850709822402153789176196649852849160216739241568400999332221601872988378919462726537015603249312767411689115148441299003308703101064307728796887530433920738829414012264944001770612610108893874439127847524084591240752301076273236014100239243097360457388538154761228903932523620760165690305113651112250282878585805108021349246412654246583400792247841742478677322922238263125491799292071886247388684935500722743520614560873194028357372998123054371433028149825330368871652858113540541195647706317881564341064024717140018274216587578680360010886573339027830848532989400345689278571820277794909883694593949814533966531556234480516243125477467580114781281845061827334513605964333695105036076278833408829395866399464498757844395266253814492806187466038519242244912694394633741603010145533843513443866650448791665677898828136464337806397534360987519539376084403379067314941944271621797110969623560965359605197132754997553703323447108203041001803201052771662000818335694176879683726275656792103521222903028391582050810310890059702562636822781612262223321536803481120530248799716783420060100723020332840594200366192995298233758866684947398027275551997420127128444542926799956667725137638059033301010558795838906964554375137647844548525988825289824011805305713670561948028159751303950865803523509540764401357591109235846628626366901082145237792532870852456772103578282602163386030358129835430934662262217843132309415242902703369001588133005001349784827758506435356421424030739922605752308362212800269522428216430151891225783826121716450216969779340176145561713638016079213552476687732137299176771893943721383354426575191259123456665822126358233596034336611376629927504159678328045286673626548112001456324012113752576145207366867898004030521213586868125843411889217924790039218528486253103445429327977628524481470730511256094502640688155790228053239335776368789897799601656451039701798648776141742787222717597928425569517845954610351720393273382418486890251022601646710841862693494275733606851002741594837496245202064050077738655424256790144923050216724705980245998756239322577887717186131048113727319846640704918827955555855872598745257870984105863311890145820390411835973203411424968228268026333975147617031516408196880433938643816255821021389115515714042446412202921775172565524910717674643161606294282960952678556784064359884224291545442756372822278288711933016956387462667968543039811845367663188955794787610236350078457166612399924045311527766845149254978219652873844105913219236325194763498055129230571190734027013491086972651893201603229975812622648669052044272728895981605572970900777788837811770811688284188863588880348231576824309121065266361124581181912992499451825148908649234481568511312243559976023922416121080051324540658679833730764119715853824807272266989182578713603215110119661851621498193982529308902800920401586807036980740984928532560987863994256664111248211427578948789003359459237230899923691283138050520931895088740641857808057450577015574303797625420181149128678843027382246652867187190689741259236823828269017966987220251685224306455979611963129279153782095654519773303263272876253654661183836963449322720857793536884770514707112519528737934502433204619128607517599161344206017356841684661682456007054577958779251657333527618527954052434883668392252525430307149118004365093751877204036561077456040159744135004382245267655655677414687274617140960342067772509737655360810195672097357805029793580941991138697127862257678681370534049174659237170063627470622864403063050285752140013857402243632454268090088227453647560298888971292663921873096439972943665219886440006625921292637629448986984729068330785444243686625790371137987231299544509999473076420002838885815100247024966674238286154570077753595033638657700855310687872500239933923552633217967879452927663805851507873358031272304997793464174705443871735114979230234149232404070480411508242199982564256445866112774737822211788539201425310874436939164299963066516272207144452604485783633794639700349122277109299017233169523463224227960835654151993604354365644896787569270983384831001786895934026561972996307322230204018580435612132125837946536098859869673274122940079221389994366391448613268037114824895621961656844873270712335988649821518462720207759497168387016565847888046590625940499130696796286645358190003084636348044089737371467001260560977901221677178300690791071076833684180597325245590210509609241849195234060832910718662514017338652062831948581117274405024273731894434688791509951386000250192815321926961465395689415415150484454541889376769391518255517876460901219216741937351277047127101663073232410706575692625729048928333088127297409465346196927596524709801463202221880070608649637404469748574952459023628228107969405712157936743729528536334655431954210695353826816735361005200634083915744317758999433871167619200518806862040939985443169794203831969568953063469083797772705178816527715062188000375525838541219828257202514298995721826945204782742133714462478073137905759059553813617513504294981491471005085273120493577502317207495025318621021670660170106542178056885654928480615687696850868837415511426515718675721429890519236492056040300206884350726542263354558164773752620385733154362431751258475474725225469607282116448595709835375887247329993562850916489035781860088679610136391092695983673270309452370306868449721382627195564137773534231307404376537282269080510281335310658608497212932762130062501506746986370681779917220816667083394509388113558769832295668613745902523657699420493694821014747598241362081264875277901739198519471351903715579967028541460188248554124838184141180540585324785409869319707507097299637571398631575576972927104470765460971730930906817093376281747954995528157476015706793626516350840813564955029211674309936585463885509263947275943413398491623485521317216245940869686692752167488468121997285906073326171076921444301476743911054635392541896315638645707369734806731666151587889014588705550882040220505252161769269872279805551319352898243027752802892862056391696874069293415713442768075588529943296764809401429838652595754358664492665798016450771658702912498445254465779622870367281243504141022661359390830161160060280994338354006161107924899945679252253463927412869401762094629276279747310871521863956086977766661307211391906050645731597629158832426613708455773838285068414607882661080388854165808584847805915596709748991813716382127245407490754217207147882994026607278487416778693134280641046746278933797506076697755496331294421651876447958605601587048462489630180105993835645417818326902792050562698130442878761816623478331036221186430540851135613233657810401284994028163608099067022653606484479129769294253014121334696269581202294222787539314304800646216445582038570417883231398998285335368629292546523349462830509957739281102396278427351731135779180791969904096462660916852521324670511144436103125426382342188597862644204943675667686679384543065740064213585247314544696258588665788519167742816199170024111610935896210905973494138252745920433052120191518346255532185486408284436056543692678095591744677822140293364838677881235328097316947181731218023394131567578319490228497638426047355262729936041857777333610887342542775704713360146874527085648199858976636135710355055628220433485370329462462435000824754296417879438581198256126655309402631334734170559149908632449624235602642912942895075672514765937234692168318880907000903608457384008416657900845453863561761701485574399082293356777387728646277156703295507496517241483755217760056240265457142095600349825552910641609530623740816533691276310890020854799631599972999662933148137128400805810194544840638843088821392379922637570374456539656384304203232052719308487981372048039036971690693000584751273961704236972495171006284739547272571519297457433833002425377883377720153523663782036663876073781388439176444971331884338659658835857083957157263405524874275541217466146430399165344538439333029610798397018780016942817595518561106431655916559787217971463943785639678253730316636265162739054684252800068063748781711666102438154667276794084275343929834818458575595308360966181299518759306508600952985479722755839022970373238211514180266029330363008978686352311539548183862061503951321829700938497503434807161482758279935373217819128799957284230768907480907324517638554592574627728755380254581845992662391515685432924959451344225174201125151034598648711048636802748951498835180198338735945885207536962162576462904801418319643719218810465642650459161819992210417409655317889099071070122031293114228845096652262785255110026795582455692034782541783413978383161050871707356339627238956802738145714087347606527650635055504610246569932911222184145557441021850279190547206024884081084264113682992591006437701375678863200515461310413950707401790859205208819987905714653792499301220247805895277896169288263727801490702502694758034327029870319426633078521806151747358569419584693547606035285644150426315418744690663549894710587373274686733872389512018606510241226852347547346636076774808657134556023199993467783879899870505888319054935687162065342522240319134086015964436847744394484355785864401127710321272084176217852534586369830478701759277660492896198202119245677580435333770875264040695484879838694894854721618978872573828925382413051784809665392083580068241880382729386271031745257647492508705042419104784156787319000630678877127417216533420772172841655245968111616942703558286717431925337822580206136000569048498456181546571659366400546456632260349657535500528945863120905922272085472845082962878839523376349163758251878111442184367670648240026569845960675938595629461271367011961313031543683647773992007068605483211392682612822769402672882320595260803355233100543164489885436584089341660917511070827890654441602244206056244040786735376812550741048632469249389409582868999526686180184708144254136832844150580947234479430852678645299255890824865790234802708506565274675807996166444573665819211134577796812365452897099617062539617388330529758600924369702088886897983302638204316165175896370985069950556368552122872997458429382834732616870416629538002129890385236936793064270874085608659120962989460779476739218036896516676713201090023938228792757186475698664691008391552120089287874254051497744590493820465512578689739192515370128086585965261676758261248730068898533629731145689503279591865245646670680092801208058948570314302992405442582929494485656800390604737277534285811346842615391931178452830290393341726646611976891563771414898129138314478897201808776958955269601026192096783165151290455815073156493297922547565733742146408634104532090231436301153588265534741207034490374953284639225863820677158345339971746392587201499935257642071777193625288629065983437958440379894529934175998474548601448423828363458606433536642843183924308016709957682571802016227575609539891966216822514662021582582214672852855628778400500125028556858517724255421545542843508355213722799485548797501015248280235244530397360517852913744974537879890064653798879115732875126790731258249478123845101564352541740840382753005009870845931720857770326943189378181549522168137705644039429864537677626832520710236758165346810930324050992550812696439711894686952321313837828544963104176089557472196776560879687109734025783124376445153069088303198891192457394183265912117487105137500133781779913295916038529227790421567994500384644438699543956298030947660590443980549565512650343873072051153659038376255970730045037021229266863213111620967187559246118539532007554083852930658599496266482227662675415464862474272530962220485118131219686394001758738283714187044199614743497186894644832319152271233630939287167382824285741094734371185622421676999353580089514651523215848552689361439712553670873602540474803932067700724539908483339093748679114554949985406407879071585112267725994699075667876588533447358921492979767176509663745121312561622092206993010883332607360546164031744453335164426456051406797289180369547861328856910858639398734832859576265648003802015483563963347964516097506285248231857751221316926093467271285973642228401661520747720455002073182785652806354818766847092414759323800565404179804447881841275583683879632696774709328095628226975962622232948663655752854101672923602956546481917021741520044267093119257152816405437407543234299367454805636535561252350333595916338542631676971023586439555848008349057598327300538220678225890076428880956301948739098357433776520803512422177894540975773794667218837633779653098875851176175631502473809906053190511952544997866429069101930595870187830385709456679504575755519837130435277926023277163913415088531827973916782814448938013536102258765384944384619201452263016364729778495665418920302300490517099183512637614997649752537075872552480311075868355538387057499655177114950299649266705634186923984511487821400300732057870055247514857161841812276214187510928229420558596740419608404382070613270546220203747367516198413324366168408135453816117594204785553393618382924788861219190348265905953304754057622562574457754150107784998035777784528571854324303652519751805726325783541955373694355199808319249669254312223527724524270427925386187130766913116373750013769546390012929952184702800682132010521115291753329967523599222876093440227853539689288472102104358441505304067442092566863070457417525501980309403054700031276717020058407322677660476963056476206999682588273980101866042291446310159138251930003755670400484141566149976354267802481858509277022167114144664774577836965332635413880970081847579131234981470836735590539306081800119785836129102662014219039944318040172811417132117736408414274273737230134762606867921041930154220631788502224415723436561234782508465752275991458961792807484432713125861841248217245763222425003314034464970278071350843345022577569674279355832256304182942073055386474113262777627936072910341584737685246468189888909920278365103180860920011340540237214657481275457792126024777008013324952253857679918958241717564926887244234570337418619703292144780456324560297534740375105745373011233107931860932260583149052798349564026356170307702834950244906042573157242135598909418525295851166461730247825822329903948245613226450819876531951181337818585770817491602837465576106207020628046308748886000141545160265418387700688888266155989200078771143867733961969150292672286408601018635728458876938728041789311706865738256452399499166800947155793851388202058224150083762009061597903570957136449512684918601792263994942723119447742280912768490091095764248459097452529378633426714374537707893490690232794367749337984697290911287022599142925781300320036818768104817727493943663402872272676413473315274170364520590708478227891710593601751311751824997129781801010296179101311081699557379484052699966670876186329518314816235220762496135282039907007915559620443764394917308278112983414254931510239551033959466115272395653774551391159668212826860362555710910016986530622784890216589253896930961672911402818017063484839472974704671048095218903878853817350264046203204515057694247526497520146299385431408954759373946081875394449841546969047966423286540824574128815882973015816902050887949622026610217511637105701532552232034359411805932614054495484662289775434677917500676588511105890067927699025664813473317140403085223888929447147913379539185449754802795743317071997196338611294763681917564279460358415629696708709278645469331998247042823624175001844262027281327295473380536396101985014378854779398010372351575710977148958794876937289242058879227532900545096359716769077427065266328188625735283227223037856071476257719860910926834222527315204465225151063487306252349032247974072036060924355677570110788041878867883996207651839070016939708468229757644917739495684355871287609053684968005993103839037896900661657790706798520956502565129292919390545613802988646131900362492378214608382873827904358514917715731947685440330325028870140135723127694951581623338456907929085707446442835896063954876980181673472819286156913688984119976380323023097769545330635124784431579661837317845568556157814559580888344695486762185203304455282458329797423812949803896523651871220195420333234203222363460905701800620098687563933760727144286021404807418287692369135847893295785222464294738822684354248057572370597390908674425819340801504756928620917861571848524470998939616452351946129287267304471355378905822544979881656100064290596641125107353555830782281320743479954213761696387499312246339278417643488054437903273292393012149876388465102626608885928122408289187274879996868793661585764209119115139087529577459688094786562025411362639420961579513583167996464622086672926453138182629122791830050907838793792066919564438366928321623571513374173894225090597956808262885416029115162339615859621967829466732871142995839944962317354613637484497482316354211453499226240612790788830509569966202151229403497668374135044538732229186129373809088496292944646420132667396264128514480232677319946249086878326302563023942088620945221803665015223842848304093167818471875379528790855432138513610278215297149331680318287452662637472189898705959632768699051811352450534256877351644317936492916103038255080656478220716502979487876486539950087638868611093923325301068039105460183302002210081860840760173232037508260612772905742847738636707416064666407255985045089497678327512472533478425894515661355723208713781987177729727374576202867515067204744592024350360809120612182879234716085288080417599526235360317254333792425901434722141633720825062339745247134633295572099977006353448356799175039056486112687797959471731869050877817592696903238178434420853928002714141878843409070999209150038227442996370836733890713156289469472762768910506015422876023864923795786277988328955591654570675323948931885117208100944379375381526366975158786116671137441124401533806180396213717666847155382456172202318135018218704522768521527064879452321818781579969381041954552448236676959721830174590092058292984729784310828503465899767360796536298738898830158843983406230315765839316489071368165369947280337972531351826723420578020362528246454576896928450232709441872241345014625464292774135174996606657062793722105349223828643810401697015486421632236047633727559250984185076725532641792731821710790665806896514493983199132081529108818000956450239816898373717397032398366083313612221194685985678840945552036290620911831114443030659829119117870251057258304101892484536501980804240105187513463363094388341048929907684787811164358341189895956503733938825777998781685923729466295913221746858075691301493417963410284089761399478481492830218508966399212917407887813806459991511584271546173692414097528125515511336217643735593344345729116405546793120187563253187627558140368509848204412013664658574530584200227170151136879654452431071702732158912563145216148321101432657198744985456853736616399862588944087721994159956854589457065465579858311176937972055237682008151943965291134961580186050706772171647175447131847271564386314371496651291910018562451931636845423096992159780730939227426341917398985847768838784361244650470719615563755528421326206321821260747233392630549000429919356287624514484943810189754165351982780354883130214714889243623191726273388836298102020544047768717613806341946952591209500209700393208980475729664074959394890417645356759599953096105780153350401098551718954804633451394580197251894758880231562877638640092649204724526345869063038168342397039263971590449005720726259363682717310634154453236402019758185175188788071095735500799176370414580900064637986663902305764136191064833500727141502420482984867964346154977664256690675091418781611080334122261627125249066495672826983059636271840405227156316386774635059417676618419258227857158615659517108505516636338824817187459263643614787256216877983148088901525173619575989535654342272871237466147992210450725393257780816274492692116526188596278467888515794510074675555007554814250880134107038295317797749504190577667132960223853586849630757979903617128530443179794469298685495291011280337051412113498876697846727822045648183900773066405842020017158739931293467530746806655543138540843863079358806389166525088045878967832488269662371133702274516114437186270598355405679574411325628341893631064693315017932805109746424662180526807932750296576116390216402219824165930193333094028017458970194864872811472891504291704781121400182205898983955432443171957407750211642324422899028439746966008021628051716725600797437274047964911607659367453243624870520315842418825977534457389799955374704033132425675406021286080923957055783533291690545182070509411362850510061403618792509848148218644690836849239143455299484554512765080922987992292219795163234094960015249150862919280787235498912968090353977381231757072137314015488402478595418853692574569201739211410797889299419868439081344024480498904986396862663024423615567265046760662373470644560897534388306422235647074748302629930782541143698031964293294835157059934839831040599221816777717039322750564981433691376521175413997099214471431068514529056295776319698934692684203062233174972970791997351527480895237783726798592916273279689833938076731788037189587082058176299423308034968232492184389253383837041964216947410000373757475166724511254846142082046059729703007633928153436226395742049886975074057446276252978813311473667277127561864204792222013730578638792650467089001154011523131575540746762104264134465930652563453055240675642959955978894227491024482491089997442716833837602786869595568613321212526967466266686759117447313684317805171711039622145482833257174036536907276926308125532233716707865476983377908733765140426341259822225983921754841396176211477824929475582733132711711909726584253732333864482059711527086159626767731781703465027992032635147577902010923642803158274208224972796073693593546641883232706851015015968398718136409128212671874670947538511970990988087112154732800555789578489232937529027918030409467245730288421769165326765301691499570865110250135952849310381325684322469466197281334205685669275345801526922262595054137941727421531718252351164237507372657966898454331580495856615304796466943061819471708123197653696857375674294081416954043823487697815440012737550067535204484588426113252243704251495286017511428804392986704074283732642520833886189822052723888058741479195442245460678078663094550670783742100225569001656115948148187536585648776551393208864325434211155411962910064313190042072293623572804026143765701938192694535309503896687716220268536176460333263612139843216506472283820172399354558286294990474058575476538677635051298574017875579398711439822016039225231905454026965359026910631731742223000627722304636486012960838036425765383551041248461383535991750556139797427711613401210320485114863627100020205615064015122359865722394895082433807190380224859332565255621179901995384430487641734731247653266688552922814966146555175314831184155784727575571453110101872596795025745410841448601056585544131143624610620378042417292245712326083172194254463157605011309009589574054828376323791433236072541249005349587850887012224846804666719772322880231246537752855693828818778318933602270669601317712058339126956946169603686005808251419220921831965325842033523483844124503487036553032519928177619445936686871649648021407448924752526612282604535002259271856532232320034077537622961343385183206240193433655594522435830845353056500325245173065310184867722694869923045102901966208113563868525047349972456533074041334146548654960409460217681739610855455727664136774160361520950939067100407623668213048987393991034589595268009589453889918772021648412930767504463888616483878187104864604882857080700682051287065543303039851520945302651671980460454203597450857966475074485259400703479912898475105620809063571617031346708387604990503841796489000744314780742455117198834369309414301788861605088928993384529257413069540988260293915676899641683365739393746149974801357834098844229469139525833748387283884313241314444144576558198950722057210978250015560241637418422877977178029885250328945244971301397584875168386778935600952669008475402748969559063628816840929883699276259815721642107166940614336708519905498425039744207337957151678198100093058220809919224371694635964058563513111352244692301088523625467128738776394506626553531146567972010641612660691269998570291182932583594601301059619810037959296259118983955450994137696225851872798998941799069458127337072800825591453219101354801070824597738558153387479074073328336731400284704793150918777986860847958824100061263665719385197883740136570975258728012150627990497952669288472986768092012288016461305160585063587789793655664102924250847933325211992920635824263705869912931044423145224820857201706068315391416368565441291008992402246513475334966586620312717018873024222419252146089488418713747604669124519441862471232128033939523936888618361275669087531146557482073735275057501883732025471449684462554517258227845443540617699520715159180146401381900750403625463082864348279139609034897146508928371154884801280398926693064299358261466242785699698492084677433233871493973205468291351565005404009740114146244525673437157468590009497610466167672860482307600697564894268930900533024752875282648592219586443259669010185550557833624930958380807165275611701025796156307871675986166605329906977983640574774123081709111305754189519498361389618609085579334983584887243639439638805034164523522618471863851194200379046000729533488040846146494995422034218952300426667991461286371812072556120196561831509472108431909330402569914902514618456911624948252503857285392702121895673351909139248991019844659904503573813885610286859032800193240306999099777674524066293595430833874296449120489848685520927252911812347624804285291394804499865882704333195623542675598463963437534213484047619631908402925800538782366034386410330240095226676454118890192885756774569496981482351841150677037017718660584685062485974562414739515092271834321859522276842411994897674353569473598002903881414328979692738617547152137278634813242810162029550691449994722407588524763988814372402579711670626468982086349863275791714152072980354172855156093285634348928475489629344553937452660431374543527584821614411224677403301665320469655488615450555353434450754903569804973068780557665965735845920111393269773052015775533506046048285107864882600958441662042712184935195887420412025006044309717560386001801498386017343714307589759239258403703405947768707853539132542431350953752711898008152146125808968663850799912013290191854792371654111354064266869213495963363795100648962538435242789537267445320633986545711627702028563228763316976049394795379392072227034118436376321216952276061240953361370416391607170640752711176600519623912688924098954388362444496137240703920034670941888024642637184393837130152217680888309889084946827406297767230562208246452934817070051369564185923494878197212640697063531415367481866415592331743036729952882897241372923597479472947779174311221491042096871513186449873610793455302513253304347653754063947375005728574065612826200248526574761031435841075115125289160790870824771686805411558657109099173577205186680889654305826999083814047448692253248412460504501498919767290849867013015625163786321868621978588742092294656794583971199440168011150572233540088102677080047740114559053103065156670476064197951439710604842075974733070626558083200303316967578964545006522065315391152430377486125580249736852517410018347767595208056100466790460835583209038714129862600963748540072282182058454411748131079152401067332915556641371059410665202689507589283959075790057976045318064042743688146855580626253882532761233332771378567617060300622193385777290976890952701726259732325146988451819503945151933187752996208169223368232889276678116194231403555933623548697903855805401837627909103995629275059785794566831257421171474634430998376114581554952265068217160030212247762035359304860074134268515935919925941310904710306048949639532218546355047981846391600132438179943623502136009603127234253709148156737272098417714503578984786457718946162985607905271835954166495094152354781487643612304895993735669838703777065754893041260412122642690865676121089213964083853575209136995534816045549420140408408030261215330545961297372148988053928894204552226146139686030732104709663129914761093970339742488797646341266742458000132087255675676462753489876968212614246817321339737674329448845168214300951612852267023641337856498794533357365550377562745815289816140008464002832341950215955838970031763418300549050050531459465763599441251481232958281168550526709214564919991697426828208848082295016844886438133335037750175967156132719636981500285617899855745018200247200279147858931978267197975311384002526860778032123097165705277670767239434062242103812728278413374416563392373549540220772812107714255040100555933377582614415518034406254295668236715005821281367805900631480037091905907011220345032332639334715675743676594308598074367028008045933922196039714618998242428574213240171880486892185756931951481051162186005928854203820249485852269689649292091449653911768879425288030987442255623772125819901350909358934515229417469027952315712967204736297843520541328028048886768396964917239495335578958165412287714572201577892967559364728791043869126957933374896165987257924902499956442707513309726351867223813920478287243701403470056873006514118936123348815561867871319538302831668831468672236105897308839250449603771252789238229179184477805349674424478002467340209157657448958127373377062444831441052179560681046208397803813318784992158521184454162153726059776706868546142041192582459627225540757666398546384857404180459535980693078201949257545066781926502883360696470260794825372375986225201680441251846108684104805267380050695092012630837238406780916880834831105490444313869271706073623941467584123278982110054405934807228270470295080048140509190934542205548399142852037875255689232493059038421168937797563287772155426371907489084847976436651690586389416883279461713812044918738049175296013741563708431362455879527909233883715176467871830279841197145093575414523589576032115000669483221557823014356490711635899635087179818048803767216183001698367635325388116557476052600660075219556475629029953587929104147741068644754331349400088073689752653713664015521073737066549444485850665081161012869486731980502721758380544535219784314006594879940618899635556482107838738200255453408563923629188035093996605498503297433541631276057332026548803648772139042671454412508398013396290216104835674782305938148779845814585956573691486890288015616136840291721354578512820496342600611340279160103055785914269171296951636736120610165891444085195698135362098298991595412851519848646898942005686306775892553773164900825668928630265740315715352959704217434509345476890549241315593908828544792744594585180906715692287146671980332399512832921378189978065984125962703188387675011763592743469687911891023903060402490116226624162568748025633478648157090213347948646830702725644235843465491152455184112044860619123814399451617920698157745589389828239635749170248984636509798713149740932218626437814128764934124964786909956173701829069476633140255560533740602731223611695855750342125660256601347810175689031321408098415902771314490035027805321807916578250485454539271310205448249780810287489219551608525684620702834768066434723864594933082595492762199671418120199508801510582443487132025033303131690440465606353995854752312854102522097579441389018895374411590484266053605441973901501469450673399132294930152547875072973921342725952098556636278732875007629790404362216195653510116806933343948679230927551722396336323855665246562223233472464625015488330804374534671126657296045795347016653348913695924729760606277116476569994996500246666085910035452210395036905793083960660017517179118636119667221024000382943469654719766271401164867371609306914803959713762933712722580077313278350483315163688164505896788471597277180346415536540861057626256679933044319468440329021400558830646029995959671412418023463519957468711049762809105630533539921999182030996660847573019034111182287021748473804209480661062719682861172033499337363115268606697716031769798465159036501188804894557557350129248957169822502305204214513610629572018764274661934096586364850182584395937773305791275468152488141894207033762553688727720056629727332659874553666880955563558975257057529247996072102918634747652079227555874022144583796412983300322117066754930313454764319344850142714228924309535287511920512025832501149040160603123940922545126506476048156728883819725608408003236059332803042922899823533124856303010650097955590753322979535240817011790702822289938941699605993366937469350730715802992119185407486004905835128160406246192885834180814642052942948290864991201716328373133508476590293319004124804109234134820182628434819699602040499817653956685339006501798832198451858835082402550556676978780278961048344565388870654380204972388776584252364701557402277796992159175709871626444691962687186822791167794450739966938936137274613395819063757700515106628429617357092180082937821272638339199708152635558433842534428734754567356665727742012134156496449308759557382987263315567559342094721144280266207280928829538621577886164147211114688267591730243793494965903840944829855515099181720401299993487199912687382017838407661799259919556330863046159209910777286385380941515182647061962002091417831477289229036311771065105723569374188489180343662853318522680026372457949844278141959003676900907243485029160093052307988780518327793666062551909199903234791966550335991418694863836976826584387613231267436269235374665918781229048508824419208589079055693110607785191296236384152895400276174054056488080606509803142769428714659432888864660646310635595103396765022940945083500009120698233002098136960290531151992000372398123870537828269469249180959820964370295206468542233358077439822075067854657343710341877797646165179721268683376941972087747481341925407906596133210087633941874176377555555512078923479845397383960722291254969715320190232168691230381232847321970949136253460414132894045133504987765506352941306285640059949834972695274223163010401972335797872079096648471476087850287258468121353972667267696387301448595932086568148254739941431914712959096141306323255225190269467649878615631755562096843891899973805098122440454078298666914652450327206784800963167650029192516387833626328752973698572947353043681415236895751211517622384328502829319000926067701084557846517686454288569594344624770358698670843374112539073027558408147027958280933572301027945311890951265378025793140407947857348064634648338912551238790955520361124732477556693268920575619728762523529770122104539723038534029110976392028908617154963741980856665320692179070027998165766174245545063464536987189250441311303737588894186513078901359366503967668025491752460609388539773409762821639413617791357633577116908765923367396662603942823961041230802936757159806120092556910741066642748039486181623354826132651172996965616686928191486518315112633668533086670542199629016652586205464456643759184335025800848109040568937853659867169735805340848356931791715423133171889839079775615079398703004280218830565037383955131973575910865998097627943481670273892343836104427175634222317861957794418661104537470935505391965175566210900503251982532367272022456360427445406985858397790297655904438654624732786482170253374405191874791541417792011927925255844179294294584672513708138848407915104500511533391447141062982638715011511615242951503203614022524026985414787825149122233489442120386064698676203658982007346584651440032220142320951662827325958955702552291505484453451304039179159309839685555610614558446009593218159448355703667294069983116880560905385913636590801209954494226394552451948152795059061325533275436666053892129435817998327277626962300708909010798009797107724985084048800255167062968001470815453883239091262188203151573744143894429317035207607734829573913596856261603950355817374940224239728948742667542588157329574382278628709783031638768408557947689316063880574647153014121067722450724205590927923875802786037395023331335885709005994721525219282547604889906248361865724064043384668682108320310901700421013380916922236479051262300481978174834013999718909519039176685029802029103227421075590415529495814900315062835738078546532856374798679515620689550160726304863929024241538941700822971129439258636287120636829834366993134889856983343826585370403564441003265778011303869783586577012656993977144038290162298860240590303353670817667771205148876663518766852197050356884790254518339309943650431560330243630269736488129206481457681038345917139147823147441685689072828339132295581718682494796830106733145535754749736969391595318384342877753346965581674025432818815251679363576862548540261018589931046597516109901397347738587449814076188063094291947485969342426695832383587201118746469884700038064085902507222715188136566573850632377752226218633064017874563693397206648453377869207923920488852657603955116746860098079796535143535113314798544081135958212871646375668503615256461828166716077686053181310350204760478825009116081587685739462953533061689011589462826983465481367924439654914155021177922614315895604257663528914387707214804428187789702450124790764316596349522311353738009454387324416019657491791969871069811925386822141283285780350483637325187425666842238009531923139011742314275510703044526009322173599073981594901362114834872090641926062638229217736158509215558411258027787396621266525885002262914113656151908699923979073931026897610904331140206339607896442736733041562890433421254175080641945848661824654425570123052924644345610131952699478868873738201628633451749286229883304498128418850300860581228836101894442432837263514625391566598332630304761723290471448076660541757532851764191531799950265127853524141843384861365716525938274245106210008950802092414467602099380069211559154998568933547148717456944515956978338414112506322936848623576636295376771932524729953711366749435712939471356079744449711318654277921762796282523327771654760877987770939030593334213535120741621098914081186581723509129943442460193743763577522883611429817896156744651219707622157051164744628910275312575056013986269958807157498119219240901907936394102445286977351245929874254100741480447616440991037762798934666155995308292688189728934125709686595666683168110054383245715986781719961920032711210924931200494736741883932664357419887795540065857550353526178504129020314386314882990596718188398294909159150082208550311520983994914737267005734770868676693145486101608233339030368862462916073289306468324235205673195229877654504473479441398492575627044769638344704668824077710271929085810348692886327269882787573269628830897353500734950228992356456909947888728982562230140777372088333857876514128045386811882850977576975068052220371020563597169739334768525065166463185480009995777346899691591130472887779210145584252482311099047714025862204020920087215010571572359902343084892485247942767542794702440096094853810842132539560954112368028296018025824266379557530120168020476713937827238080836152337989472653942622690456276963626982809923633785154010599210064129059772768006876202302106361836176642825922974882166623927388546924533502420003860051280422666964648775527854263015654509960374347068990485622928821800058739235028824685003071835586819255202512655720132919833815170886808345424495904255059359872051401159213428662519689489371232401709124153423434475835900961220598667258299376330227047925932046387519147990936033332203022655297402007750271829582686671299348762167916091751791360046840912339715737648971273798249458547179666269994866203619021134017925703851558721399005139463423979735815945499005988771298276951242356649097099501973146643682151658124085092667258478342718413040007484918051655896240154525304702723433339318150763672873069281243433864873490953020191690792624268376528771348785501621383692385727184284724026045918345868189550084654608816572066217925674891333536077320357985101267571629068356846771083335472759493792203712432818223109242223282008643836664012758590613785861673032027681823447640300258324570698036186232810809976101885782944091302031101347517368318486086105753062790244410460470770859481028486342651762999680958122775922368598994981992896978343950427924629379975058285607031731087517571447323027846259279786926853069922427912354758035726359913204659222378550111354760722446692919736963475429806637343209901568484167212661260723484394132988573103613013335601158027960677584115483235212454541315014943261549132015847285275800881622400157422594967222015076874004099907714262480229555690406034700638025800438524033956191999789187141797245149879541833274299529265004506619449444469417857117375884164872157134098066492311936514193978945850830212040050312516037297199420161024442465485207374522991646613423480920733555859331607966740325634758147532571009109352123174719287428769374476633763005711524366889163047285442576286231904070872746509950252527223877772446770680122436211055676268646459222123070778754569263880752920486002333458867577050484508315397511505899330259831696508244205623886231979670703024411584276179619707720985653174128909490043082709167727811314289621463328437513827008306923559433827749790161163527843650197350445511706256744264629071488154549304581241759707022358237214838970126458801776663761920378940726682823916878146563270196683123101423046140476836928732174109496439978940489885055502642729887844023580183906753350941328293342598179403832735011172119397096598810625075751167542787305529100036290506001081681001561090168133976904389349810799844307987263732513274797785737796479485532934386066361068720942967510281882423153779477723195220424722289953617533544961718809164019022426261256082651461369635159939701407160015652437001798947476774826049251502455836665636278844408700416513674665527956811371097219595564950501305397094573139183715998668200028481647864278992612980826209897962589183854695702459581376480195303228838979443513853262997453905852819908148803610594137356347976124026184799905370175219626458794193274931087834094338904010026034653005037896507609867973488178815254022036686894779526505743007894061013071127233171714601021803978003329935196521317973119869656476912432051703500276148930588405684165434647950435367006142016338985373789946046651517314273011165255405014436263371477954702870597499767881797806009082149935055917985892627410504350502345737547647843300094593675034096977404375333399512869383449936282084226750562624781647759431150915606902347646185266392443859354542469886605426404426278535335074776217037334906974053496495283041496395641409147987910285841169206325018130061419344211495294526432287265214585191296468408816960662072966753612118587490630491562515459312461920284939042209680096636686105140458346324978704808901676987002835463238885811782496420759128686316005034687693243110945589917989410715789038077252269216118426539735572028954099701170817812633200064523639749993606732766333382787075067113484550032268100883497471386589055333256972272129798837496398686289318785587089701789456513555115207456045450906112599909990940240299550085727419164937648799417440945826724770986442088080999080315804695051191491467775870710332679987601047599729816675770830821687739604703830354639962162957265268033550905372226668811894692325736588623159443433164308253017499206824420594658755041851232247620695388535442717387462776718098841785967671497733109847238730454555461085569888120709206886207442736305045616976263678662255832117222414530507922169073467766543101291744472489316546437734747696162054033951061376447081931449302628257084035772781648962870564790657988756008230483723948100748389970110585821627483677837386057708832714564586896761399103434347835361283387590331145527034031384427785529096278050972402577912266880871013742455258375932775683905604202969209418593465704173610320358355661200862443143402194204784247893765705105524593075368362622524028186660507815421421348502645927603135522473945454175599768422607295750685815429793521869802206010241668610185536965219210647532061627211103985790847074146541020796587073734512221378111229118468345916181008216211353178514348654423819259683846890369419362770177038953429545499726212874311782146068575617902023689164191520885284816932224887282505464463182341524786371517156514444817670309785938365500142737745310771226230015221781627124482927723767973592421324344014649406919989244799216268934080167195609983283587969695752527704365782137686298519175398860132912614060473207400175783604355457120487453083413672107791306522153862282892449694203403852526805748828555363053603132884358339286213593608967778688777676069745103251201619198669381024445345724548718844432117454002013475817544783594665367384429685916571738320948696307309008781682393470740617932063104387723168576488022886193335718266592512851151490786482658410268934127972283473095570618711644073811045075050546134234540423845526340498953149628158958667619989692073628919557157686280550608425621306817785159963964349269179482080195645517691949988729810548018898370405202233316651999260245434220600331512157085892125339986245836790904324804316374601287465339962318463800060088573548949191282996596017619537444372807943339038149448000174700328397422706163440186920207599199896620722863143634986170761703368190899922867013954052325437811737670801546669107496194103978029016648785205383741545767541789349929468387398846511165536669478129088707086831980422269432544170473168429924607363696778835097974783136680900506241451858549427984610618483043150140546888922300702787010094455170798799889994022421250459254853297779528629097698738296506466875988497162273350923291523218810841211988451966350029496719133154916798842065422730867112873096470874323544897102907396754636412164408675473402826472853945782232178800835144485099371871722864210160582280217422462875240773895477499898427457892700499708260412702502394589762339083900675512301472602840982275020612221383363187801829071284059577470584869849258001024983944818767523784796158385591434966334301577964855416816641069171469112661069489572089183777293338207914749437234673558412038437469895923571419659260945735935263449188761878756126896713916790961556574026502647275460925853224780711510802811657807785263627858134401133438626778720521037940496794039533065102868063469150878977805834061680021666593974887841751436895275030462444663063978644005752632226620651946997473651504100902478018700404502254714794315938427969534862115722740342642295329313789274630577302273361658598649649607331056319744882880403426821163017426803834603141814414795827537064849277271890462905412229007322116873449650492468595490723720283857244783805943272126298927108773354330147600357911732125778375271562487589900243170562097136269024761126973961070975816388573462713534574108814468757116409584770885502349096392548151316008542862604446214258628556724284702417883337940386148684131394913204082707140890092809583108305013344595640935910335105797884855691994401085689383571409907039081576553990907668017851830890031860076097986252698028721020547464247940957940755089919789005907767742045742138595435656607585168143227693177064906569182672007280159464277994581080743421605564744291111250651848292827174526264352775013544005098069360889518169010904469007516651094949799690424654278338330337701342021624332477271383987826392878098268773254605495992319755310994835727996738944649182077804638526722582354644547343983047497713221569070759961585369812271011327198931571326046161902355708142113981215853269391223149535915964551885254667932062367061190064240988370826621073348340852570177874209943477454435233025447325028280292935348174721149477750174335423266842013579515647119593250995321183520633552001601654075485839611298392797632600735374661449204792690537355968083809748795104633672765763750538242067760730942890047215978066228380134274475318722764610770220392215231289380091049744446298678211486701841004095394845150561052173610714667644930318850702370189613005647599489322475938928366985290709740392156549500039531537306590787716472735019793308547369653546068757360095167244006655201806955796853344400190425077148186433879538097609894736081886381349094832322271636551184491770772205925833583847772438970981588961705329735261687276626511197055894541445429533411751553555432056491567647352942153176952868877660240238431089710046156418392763244776376991748120534395290708920455881117370081417554496722157990076363394919948449755271983814212413233979766200304708935953814470470677849171413743902920492816146533359508804819138380934123234655826731131762120330403969159978668145130177438656558387415468016545263918092708986429757458285686780694874725913565228572583531628210250501188284355571158226888850058458733421888971729756821523683652329009597279898134275275589356925633749216924391847949836383387419285299377689445491300362578231810466551791127505298762886226019884793043219149746383800399427259744226339155877743039760209843960704561370566112789801781552214329102935550576095637267331899078281609255989329853586951643882241663931584761219388778625020334167233495256516421742978181691137992375384065653596730169898639181825781138325525599821944353786819326060980739110485744387429714420438348650373662447296074140931467865704142090444753393289932078005146362093428002527498233610254572806590374078591824533734009565485966660811565479695175409014181798432271974328271930107956362421241124804996097819512063917554834198838517385489191253896443876550723629729081276650865842977955031349104844857189030867440171268306409503357425343780958241522925607843419222889478976784283607303513485446268905997957101803299678378206703759986406761551973404185227497025342087698245354518543965249454668373819723654247039051663717856767760968154684853416055731932504003185276469128491462622693918781190677763744381896742705622032735662943586669307395170479097989228405255377236885897537988212518536789462963457427634306691402957869543796714484738023557881232615947921638203985133623493672321159945314783864388983562878824651316226640577224069117901809326270461719147285947957355263986075643966678364708677438685351832132547009124989120148889625321687781510119338535053098313905626425110224994759636155449187006680870793355048492882728526934963378615726369298688783679179835507499896841175282847424559095175690682897377038179808342968330447079627835631281610467294849044703307291167174668988347287997153932852925015553475424494034458141664848742011957381876273648025760543668076256472103413451663229794118110204490624811997694297113452384242007922149124230613618000667300948312813464214628825364458688114438759755958656479503494130808713258740212736144408875858430601632072621696111919815353804331745651571497346648736031468823261314699251870225456191611396053995788740975544684085447041845822977987415096590811617504667059323460138627168081506311237728740303014656817460143660470620611833725498458963094661106482321344900664880684960433694361591038065988875795670810738560080919387769557596278574717236975561218046609303987222692749983886864117350061801699368191828507137515916185246067994715757634811747791496332960684954555365852533278562183016126604460974744054554071389649561631406445237481700804719930559644745831517123054427664703841919087365825568616931106587797354089875353487590366089339920093259181897359144778057679119794554928319226383898552135096649669077080202094843860889023884799432779454578429501055259501256143739267330751740087669499611343653446621305554506006929561113164417603118927430651242297019120091266872792548953191345455446608212452893516754493059367031074705238132471326554356140530187746601885807278022934853360941453803519111379062616321365207440816563440276968733615614403614721170972498664097818662547765767145630820389328409830633127253008259427833861960958073968360156272140959412727056600376795816638491684213392144132494382005289093943026705580673831417318316800698931231082291188469880657778074560937358272427056027446274676472324789242355035680923310472372793286292978328493673469449245990687762619414114315930693980972712414035278630515138394946409417793113415581964189495904647086819287433220497189509429043057142145540616596581494005700762554790813825611807111346084656726850993970651961171095686412894268393157638670942318495410582294166510782042302421371795872185663682077805866816992970864870789360695666996885962825858400026358294662435595852688365577444115052089350887853988145579885154638578415852174449441779486775122953569860872571210162122987464464297086329267571864204237738170830469880673394327837276768825794214725835328004393505247664276266008099966926508764404888188214913889233584685243521513551046996373239566939957418327823257264597703160847243034091383078859318618852461896713883124936336873007532829899811201486684185568665048295115339656052596013601171204295471454580859571416052926869739203713337804499767420021605077836322126256981986120648120685517311784132957713631577945234598395797709771540938588120953582074659988226516261436543660020347716538312905652073510565003620301917818425282488198870343464275669532146295969599313134510165037653387762622174926997098092452032636428973948963952401682705023479149540776682614603291800556952694394658405992520290188548190950605704724932291206640748447011424028121354625247521761342004629281799578517339774561056361683140786509484681420345001482888802668507175122455216830789446609571964130686230507233911845920342030575322216298305216345076420805328869366830995741034974993030810905245419662968600260442108389833922567866591445438396169252491644238199337231454258398701568231253231251294550920016047315773072551248429997599757640663306469765914575815929211156144195024625945967479918709828551189988415372975080916580951369434894231148458390450623532403898344345371407625428313435507715875534302155707513334109770191120849756844676060605405604845523635033254331856104412303863147762735505603833665947522968425692302215188012836323719959886842918722404635566595778946184555346495843855908642497253082628595714186168705412536913417961777672575960099348431781720602667210504619491102210046188562543454216104800568569800775693792584741023730278745520258280404392362655203031817864075770129556426338944285889553174558018374809041509638527871386620328574682980911781428764034253992088305551436771037234881659187709858278760873277357056832246355336375743569024253153790976780387757820950959779077280766091444210619092209187544819155755426939583597627184613176452880808069158682561366525055505343419258045471758636291590781509306720061079635452255460050586612551420978900985265481818161076173769281813782076385593869108489957159451997365040449771972242970382005131226877163957271497083874290046486949975175724970917096847050246686314327046775675206942434835027471387692184202524072512033554807587074540386253042909026797922782756801865092682716823659500039933178068921500586983127121467637053144809399654054304322396282920965119883990869364800057764348961005769358958258642763971599473769530664130116232260070669880802133756876666828674671488374903097407477140185975955659088882469089509505283513105823143656758154994705787054084629857035418694350029594977616372142240075943970167999871649073866476214149746579873582263106928334954668476581698673238936623125153350375136332904038180364758271575535820516024505305728557713892494477448428454249359496239299688927359255079066568104174629756645344190779873241650117069317022804963272132827278937496995835883182597644256410266504178158548350643945921282285503297946573697363767878148124230209268229523453961067003808171883118144736913004696045567449441090528588650494664126991383929832569691308980434489814739795624960508186600669654578916322580650862294383888434351456695442889758161032350919458955278292296624983832981476280398081564978140584339185947260359534762120340905146225931902798711158857012517694547640013148617567201807193638907430654813469436127695913680603894101772428377664931185231325710967262040532734166915356557259896675731240825776581650837341800026032000351233876456886536255266972531489461903202575211537536826854718709953364255020492869007548478086281368788294599931894807416973095258270894941899166157871319616978635586285137381809427805369965728171063539672715641596430653862481826680758726314434507895953383241920009385697158065065625962981543165430317825348391944220742094070904544256070977263968082452064243909360397546071260388630114874581063341026165394893656485038741087743085094458831188370796672522521286045326835329756653605402526322962987173461163945546912797695443518206449549864685913779128486836803145921748280192693360621080074497160268887939047050415150049164895847532059527653842336041536410186491493167947007792658290930381134332148221371195914108274294490408315260321457261326075064481856850124882992666633918069415254320279342340890685761711185750904592082032009724998338830911558307393321654231910548667746617859152586172287311017606224842206568825037469153848945214127127386523561416047017836078297746933379059622105423694503919162119127766753726740429846471387963704658342875011803904945313823735518160011064570359816094567154143149808570042525429756274870480228570070005791054697697076256020518349688509156409314088927732031733543754472569099286742984758331905859967065311445752280963354851568100861172816391084708267845213545924804633119808720145462162690532500798546461123501075366014825324850375630398662163313890833513099289842352246277557266245379908668700532699174544661368063654888157250153999333680612380854542273288324490755577542881520304533616597674392175977010816725973060989455438884188472079671101874366382375541067495603673601850598975961091232048110539735651224061939856691890064707563109596908782610220842458011995271302344847951777950327368476916780846958682284278579971305300470683026843233507732968348716728606542618486182259460905986236631256464666191748796212045633532044058025193883030267457676674627038294269236982751452920997103512006453115576271597133481133090459600549209199521904893322971892413274263779605086570228382110137356234015717894906010901137097492875633325287953194833621338831324063866031202210476381975888489966859484547412804246867359642812496100233234278792246353398355199563619277445883226543380440148507614515475014841567773063950130913848027063590592676293952537922383970386302591480059518663960540879571743316769917030494531024603985112512517256264133202453934328754409693344301776149893397173594733735013665081474923632398618355023614407745013525298353894029728112985284409318329189612986778158582716464203270593561963925456870848946550693538851783829749198397529955219713107618252192601702502428832081242335838555747474432798601348282824098876065321253843140904133873579577437133494400215854538578506212217136243604129334790596587585325398606045115040103657419901999476593587884555127100053014419967091366337768581468074380608435336571267696066831395186197230924279036454211228670608776919059183186677462343323200407158761119645003169383652227636779735168228177387361177813212455527772265840374051608395016009895783983468263476265664115059094381249075316529838580608882263023980540021226562098258078706122390102242939225250556989894900541519087630072807164188093194644535974801855448422119693359780458063979890624821906101530733618743032923229717103887888694764415957686150646790708760221553484752269788197719330895102360814273419729213296564949999839361613786924899091705911337513180223793573949750078103272369123375587339374635929120263157509599535223638023531097359019059744556285673210203437265161499534960546172288841365101264833893011009125728350861797639714441579461906715019075479688867655355193087601858622976440634251139842735060157236278537944181477839306011100623044063032984955671561887945290374568296648828976278356091594390822220623287322865323071740559756460726171783146101702878152734557150727663552760581758345728528103975066326220957471271114697217295784058328577472728883245165331270274296850726984209084944777752964051241368468304451113461435669424620982026015023305790892404193513170289204600423114672595483192050610833282927913497561469642168259453671738663375266470725496084998390289084032849497541987939088753791130840301853667203820454740714621393977042464393296866260589537402660253687498548334436338844630170189238121420252561840647537465778090459159021307051586435141528524493285168511348937977355264405984870600993750919036332374553219544018331571919060494312552871114094890406175884872523936192901841807747862691323618275280987068748936555878919674966186945297114430007745802960729487847035176779255228572324212430158308023982114606493110254100422041424912326920172661398698505599620532773274957203144489587020804164458173169419771910366292231463202905708494208872018466645016814478931596924125754762777598554872357701742911597326443395380343224015696930856466297636894004666286573869548356719794546272661547425608926265807766166743734531616703279774324230689204043191313414836375408937797396505678860308962465696882676360548248031848215636045356206771562655023652534976375817817282593874457084018385593364966213258664120837384142697784550031906315379693578526490904463125145168655031928627818710307198224294619509618987468067297877079993765075759282261145304897264446915121405758964675139834007719279053304211791459302156931295919902478445086715185961190783202763723266383753160243145201718206364616352915719138726478911884253645229915614469685376172448777044999969290291479538119018547809722501238315299076165529351130971158240735936024411928831212871625124020105730402846832092689665103814315125308202438872464432719295775695502289712734921732513817980022275488983646373179559012469690742586471896554351895507875141235297610506663425632739053982167884906076985481783155027043505626591674353854515012385375662197204583060697029490819187977418358835588301239411335498124918267063349730911470164266373968116433473087546043416575172592349681041312926318940100287094313380180407198885378997533287627950778919018912564302856805425737523697731028500064471195911759353741127805444069761660142271441280475591356873971881228294701136418905483374201792512234906816781613080668189703711579371285867426466095165493062630301588931812823702138417754231274920505508757962469702906402063038865709143664599208790825468229479824741054776525316428977341976249384224296280033515246206941737400130173124656441807693014186046517419916243541753430619807302362918634705873267580215095792489661434136023529917502461270486397281389188305520314865859203008254967457544511863482435119644327428486613128992029941750208963924368227193545652905963587271023078487971172225731100913879014668479498929469443980692567156388063651159583987354865257163760778296090737147587980548350450633041174174766049153694948363742264670640550637580764171172159452560102410507525265640582448238383874322267208072819897136442648718436340533564349461586162185004785326295238229574491244242635712569563627432789813365883194078680164969643018687884236523508362720655156911393358263535581010539360631138916460925062898697825129507912879178677433412638998394066917585463832197441649240737294027415624618710548390115476941457069747106713191017964523138666658568200874596700232943646022936598169221411207231782637863706592505717744595995249379585635280824324113048878868099286404969579840255340515610709408667909713207768889694811114377331140468382096912748821190716659784894151974737393272986169679900895723324974542806561093082831830256615532478668753860184173884106813450966277132445332147411220440554862225544655834013810059555294541354974585892942243287373135507357745122878038482430565504408023284000600547297553101890850309979352220161452719271181468528799086381793393519579846525090272195716981408455286829570182130825058038507334363837402898289235933318508929225942694614081298279011496348600802108768473621652917914417215303235701690227284608183383101628746108953698102875700073135494739628405814671978810628585083502308711405740990068134383353136378764871729469843033446203691659830318287206642335741078555834581414502453143581307527321576047220811700481261080078874004906451899832100582531663779266586622741611201403768020465972921223581794241139340457953524384851102557139282251638342464911838450998337617639475242249596429997008663053587404158224852137723183258830583705260943463979333995984700754363760569589149055163664954253680808283739994115226446029326706194085867328211632559095978650279604075374410603890743923769645565754726673540836517246275318221664114962683829445551442261751706318950239082733521059383939601650003547362096869640138678872421938287247581458857368144661331636058913589220167067230186767166577268600747700800062429870988181767219575540722254662626046266806459705209093525813245981065220079642265973948710846000902266021774981301420299395571161733712071696022490946636794834439869075541513126723939069306540821429558018199505922551164544852738822101049613997510516385009752842771985913087216326402821180408359236403706667792029775616808221504937244976862386737550710971176728457434235791152607367860401763301839246672790915381325794213035054434466266044474562659659225749866366092147582377525631277025632305440758578737922000554527145472699615925091500032367357854124304123493424131538578365731195327149257759439698787204407518622917237784916293510247917288062075302607751533422377058072874805010556201561902339397496615180371858288256661897731033590185102162905101215598818449812584192127524834956433719966983066494340973202919764319039566425474950992621427555350930648120423678370942987390606418558319763931876923534117415497458042310415017699072264855382856880292742095301029706000987144296387080291370736346467951788317717984231569482355390194566610542725742935260485465084458946624899738341224850645650208733918699556072673582606271777043057348150664008429712800118588636364233685185311558516874237535887090315369960329192387709944793324436907016159277872191894392940563997178583743645080976169838625119116211467964115603771249684204286758064252553325683062583264603846472940406797524847650850858819346010119198640809844896173952261355830487120982525029826085937557191655813143595509575980749150951846544852013783216203677672745304198569636443726675568792456212991598502673256692002464176839414785407079032060998594891257970142015724289112904454273019553366580234147106911658825662655448791064454028852910024684311143881451100627114649339415043262067744078790591743340333265743682515959583767162875122438639544710765115284809258050740736995784671025250423729737980105359660447430964955702047119988141848669755987168966694006283517682762979061925693017531178093355742637222536595384307784884918597974299098699924649841375804326057461174285814272435581393828713999732782507108433775050671424928517637096397832017772296398864947679380685662430560545494288431797372895051369033679900909329777866705635141722610600880457377738344189630116994466234250363161591157513721057941571814499769306950092464464773081288973342463994615605189505249116436920829434199903209961245441137116833302556148219734289123876197425152366373545232410086282188873391763681415997678183268677925045642129605663071842623640065557308768153699443513655813098891652218611417982218599762207646181946940617187997879726396966164299457775661853216066268656566196256264067584735514944061114469504488653026650082494713969542370884962496492642469249573444130774009967647019404235241088623352053366514834731584100333146843436848305089102314517113741067076504076861889848825699864486173626176941406227753462515953457130253353044852738966963449737079757269859260699306934550452133306581398089555721223161672536361936483566659203476273039311211423321938487664368678910227994615201900761282675969872643091206164051866440218860720542982178984225763509102052086519302439122248964225976131036920788700605232325948517262112538242719671233108074904147009739583319930336082154183095197764465490135305811644205010587219306612999889703486266821418148679623173773381596693960980072314299282067935001602596114500950219600149523676306421526066251436425609640383508955780389618975119465669932345643270939512135162718651701953326097718875066755890964917905764809810267536276031439518142053006223931357389642662515961837145875861465809905248087325172097469622670917778510432393743993787541894841125171903795778832387179831153096281691340064261328520363001803320050696019083401646049742351004439409039364852033570890759497765990141019243104772346485522890302365431278793944587624150836409004025984185724755746735156044062841919165311338638443927332348538961089230065692595038455117478882986404463263134431682770170983216113945282797692802158300491968047389601241353533923065854426940620307974981506067465040395838746359119477900421149984444011289116641254120600414619528379858629580016934576905668761646176934235027684036226917539536632056859472112011578819616373334061551406322977222427664222406286059712710103216673746872969102380337320253275856880953199039317116748095291106027820180117755243461353030688726761363452440404396141311630876998933383668909992353930301296281000786364249586741858783219888124086646015342423882697312121488882505237468898747205095594505550420131380662854862172848397527947684566986247048783867228370237167260498103089542365003347717361957193880972045850019412816598845985527630605177705519106285608460066144701104003148752383324934646252170636023187231888551316595218044428195463439731969389827620332313668360210404554773916065728974952531168556016981574429610362015783145410965285150616216582079521976329463606675844878138765373809665746773133221702440512460249430599118101128204720712948495059693332767246444195225316317713106216692437232017142858322793645653002991870186649903283307260187395956761700412978802750296111544242974391788012947131284094742255785636929464121121656728090661565159451842757387488412628430493013751453671482650895974867992907378421192985833506355969422819581717932449933665113568483337879645686606410927457148266686025160908974871002476387329007294261772388794861980221277474409996681026544232358759558113083933615041506392258304451338954819702122174790919440836154409686131970468404648411045707366796970660582354602737745538802716015997278641623571634926231210333568912998876994152440209563630758575177313534979897597498467153988497592896292344028871546687691126343649127250399904455485438066331490141791308100414614444930878742016020378403086399547659662047674974676158792575345156240017078217771295159200826169608878507268609476209255949373347185070444258546671449502610820152394820585261840584927672815873130396783017912334184555810793341907639527935145254471270048873167461018382366714898530261665907585855444216717166626251698133567938288867852285686671176871297950717826324874744427769696778919368891429787225848320163200354700982163231567073772347610308723177683397230348023070392857263038700447977934927865121181043275822939460622922763775567823890048820604571617605640606246485828138442828088881898954534041370420537984537870442706335338238014276238581698159909450215307410432838236099613502644300445261049250967921966062652579329651772222888381315965410128742745719001847379818917975910641741437898243030525546813350664196744863171339281468065280206721384107606887383739998114846602239459415531104517361328728556047186889211336831261597639118823905517309153564125667197608848141823783636942104940273326899943689920875296265844398488195356279522265784720831653158157682823026805842224454248191135584552870949811327385114810230729608551902149936165361211575535680589193780725123283476249504580206109277170185635237648316841806849171085107292708119388472922053283225780890288382154452612112530129705531934726332701901818352177831699386025784186791831620524876200893401787118727745680894864211268643343718032971887163998589072300931851421977974238449558549391099048140734861979712336165235475791360178446590991310313332880763732103505619783972918022874679473964399155659298147486643653352563132637661074649478010149948939973820283475134227406230066135952579265927014937472900916014028442894206775106142028693518454952068515852139564562488583612596582235471032003900126832170695344905116146816006870581186751568982202713750590486867820384634879876558329894924324289068730538470395269893742940640009835730703385059319375657673324959339014162536986689468978299228230819395542288735458034714419504768461452881134124107807826243959293924109541682882042917698037780064569628291078430651784505669920931493989153666172642019990983909957873579738871297860511845787848028407210223849907822504392078098051106827568531815108719605667032594201076809944165116783813636644197981081772451797974702269141198246788182384989970397144977311273912254718432883744028001718984705942783910746709615374053156985039888739951768491125486260939972594553026026997094472421035797802232003697181600016352203398106931027408149376107993255251616461389701418699109233181469242435686416419995877967836776800933928230838730882349325891988037972961654350350320254119426203877696023903622457772200016062007953394417668379924883198035273535397583519349766696651420060075074446647529552001053852043101702103364410785145140356547692792862143430918222080581086437750344872592835096520666710519350135251801056976634640578731053471009213621877003871976564248851935271402340453416946354408822111826386919903554363327075378752386186718297759243608053526622673742083822911749450391251702686543080618249602573533156770590200159894968121641300044881520882655536101804790025368649500208401222886752768969413144421806640776623636949486076806833865851686683338971407427517561628408139278030025855662348951315466600999306285789057768220085957722238472022676587662298007057938927176104539397429755970957242419645730881428751120580436204777577354550748873696283781752262120295570234921353672287077544857189176056668844106573905437073943123421952968100262483050607077521497639129248190363353606819268988756009336931997374558994091781209177395659195043600622760867132141797476642959260708279314627534067072421621456154286805105930975375909438486366235255612340845427547743750367642341133253460851031563683941080096865976476255296220576385524649835771713453541419782387900167692711307701982682899320406540492661704706583274788097692230852617375275353661934231634932242618893759064448523590199155348589024178310018121872525822606991893075948116928062700987454835694098339975710677671462693366704160387642272031534479270134881028212408609111630353351838983509808707426642013625478738887480143184549234492496440431038651840068471167567208455026223926495669049617942653995632822525657507766785635608380965320256768436962645311741371150159993349274453505829694538428733687346890104908572281537511913150012275241811687446224187574797247313780061057189933724429546332513351302129370490953752973760519690186420413880675939166172236757572756877441953001073191871021548547849018466600134168805033237889497300719044915846208739767705501434017160595871148331884516763684724500741471745317913297505692512135772209516813799087391224702985628466295046292919459230033719634586259380709454513260001211716373972886926736720297647216509234817185481438601557806826266341910505102924852765324981202764158269603150338083331696836669425426183031606992761153265202866299665058464780901344636747135662862678008434686538219961993118652918998915373054244743821851011844735466825136658033553563570792375656665131525519610858312832146411336794175583072793099028440215096319484506406554774323335586291325403012997431857201041378663921186049667825676078031393547552097703336324796010040666767058639082420610591028667972217143959903338907683248564818369948719788745363514184121033310422213273964109825672692672513673656337019677321212915328711024608498057120030417625994800440677448568996233611110073884842609757864055397201415352614220710120463693291145943909441858236792562964218404586936435924550734648980233330136859748778069980519211679333574304281390136916973098362029333572716727011696698243287540053340534958548635918634041183456260706628067558159352128009224413311699436759498049624472989969627269466968322371163605948917716737186811650475852192333085000717444847076866984932173283890666761039862794253674838915645909638571208305299569520943805109965809395497747198767980771329506760225779152936972292492039034828833813623896087703812393203734172620447985304867229933293389790425839972841653812200707032096434868915444369506417740881266057151468252356700449252105176524404972604508048829710801534665140475438234389315550376582177569538048778761276422671910826098746205101002993271435872759388333365553061357158147827017819299959767225760749908697561501457791662161242519576165874091231211381084987437467406769743075086780429291986049642523133829321241040891387912951921067255503249949039996656045004650793189633801441867554904318380562859682772766317033118340711791115206604186042397546163741556894202639850782312532810617849790442054534269202637947901580713810101994616112149267836532656327180866691152272159259042461553333132784706300664644176902466642820574711680240207512506777486949120173888565550553844929280470621157456860781740390330702133840071408812404286594186515038560994309708193346289797237934381719466726297522244066406807739704636029002815164807875467916615792258627748436909145971567344771058648588204965796313730329467201915399040109350973352944693714302596063635592083908380996405260359788309847289542430482734964493816056933191894144188980192268652959170423225696417834200160023467928168141521615804408299808929977764744104402171468744857258743685854265670490583622568679033073526991943667100838950942469189084352345635400530030545004179486964884254416797072354858606202736528053924849747938046876267019203296778758728307789805471308693563609924640242810893592323020987664063501841166138798079702551229996725088972396717479577554001881650958243259516225994278548371687992476551840435845499629923426276002635191381455518959667169886518692794439150227982176744850425587028252213858298418192473370394324533888579301862301298841815615835649264115331091310409622669048809121268472299913266383039247957852957004447981752652476804510531690988891028954985484446027094856069511353328491888517812447090249840901718987595506483645617176018821346207904588727491597957987942303149013813570474968813618252961415288595148158252502936316915074762146570459369983860150198356138449807614332064693382578329797224583553570382885494170612452836925356629473307150170563425109921156951116180394675439584670727908366333149309294648274685557426816259100238138985144559292893724513879426288198497707802874402977160723880864800268874955353099694213668164971883624394804181489135776786078908999034152759969084473795499617348207020903386911264981755353568112647620656457089560863258390910351464666589469584284630766987788601466660404791209859382936055290755047463179264263701797871441960646483128074282144104460958333329210771602780921226625644687885017011647703838483453158279063059116623053323794381348992623560386814251693246852855483507792513967367090257651846770321579214519714574956506856346365868570909610703256427237180682924610330866461489949083812529875286219212882515606206431007178637010608528738970190472717205386185934567485534081149087232513252016018867324339292270251743040304846133345126168379546737700805513522203091110209881700477795062106299985311099270157498121359586095735558565041556880988045335719172500651805005154161064011901187940200192951463088666079233155643785713364866328061130598506785998563955904335927800667447224725325136909874831154075989470786324264542637885955171385774433680706329985859935521877674285723492427972129706096040395640584622839671452216289349534941232627443773921815844520227329093235972650990181078308744054442514835231553105729990440734657835606950692841305918906418214624501366459670037104787165626338549028429490678373590651643062055935978207848263994301903567205152807577041299583815216743450624657655810776949627403980950417177400197688810710956125650836291204383879267874930463854824342888174159768426734005297429620926804645641241984656621119031595714823865628926363504729279642486746255235287686581335774550877854281544176819830619109266552366843452849287960278545054825609983742622311043244647336721916077026870807349602953818148835864707516968442208807826315262263272348270805770173897706341372837991794058051759152820531479194767630410751832928438668438641449789528612494740208918140091412881389014165055816981678828812628247585878992643521059637587112364314981004814829419568824461516781849337761531042699281065316072455117793771139492455537831205596737068653804947604814075748449018459146645229898838601799377369946132984128141309230094766744322643016795641328098659595155390969755582243055146997180202904321438240180849355698199449595549350179269515179474651726880991688732022156432269021344955006804318805645865325079369424845112411692854655622240472042735364445821954925048366857008108840287320254306632798767167719930560546155929542470979188193250999693408986888798789611747407689115308388522522927678425120710207447329844402044134689373385553957526932179839468155102209171000029716009023949002076436643309852173155964564373748924587870820797697143100860554728396417897574469967711038695034268089599330694428045670552672184311300424950395695592405763609306841387379652702049548536482811841210566735664355679427838556451273576769116302613041578018051541066264166008336542938219047720442102284585096262560059224130573826082575029948821074510261150748988739226408441998287335660872141579899751937926399700172887616110392076219907237187797257954311525476393239282849631773188722436416097773037474505498984587789904620660019251035803842638625120577318900484925148440582251989005206107540725915108398962411939895054265411246005852004208765191527230749423488826436361453181432091774703629225709728630800451343265982156015251435373438845606206731764054041431261847375040236589264654666749181087093445434650492041165439919854653760965588689712282204558003370095185904717765520652774294398472497085391059397013086580897994675284539773932539820519908112478615807744096813332524402904470808372481567737898036504486228758174490757551110972214587423516765817758167707795704458170929192400275954590447360405272710858487355142962982909865830118697045923609511475516619292815783992682433446749884909025438269388572198138887135225072895741753150875988529808284988733262914789940119167444074907539701381460166215164069590013929728612853693105777181295116835388464255665838849844831328948072196959356870298220328777457585066655304619825761837639265282259794327411524892444225383086346487397512505724970763956938281994818258695376972515471789528123077216698355681969525949649276712380987711553228275025850238130193508661002135282771786198392131215037131143256691491943412173985007842248576774526151605408606426746922848865231534543044625006343428095270146416430973339762794399341975484106490837609812240633297970103771285902122661089788753680351111327729450598123880071953692991043645508583389644305008421779878124816853209646516636896231234307164900974366280380754177081746830303032350415914658691644476339415449898785610440153791953544382632381880734788830623905283891652954242425314900155938255346215093120957869300941080997184491858798932687842306504278019658390073770096467213566464122656112054027672776166578437361855008705175537772912659191972114049851084334060550774828646535414501533990060003423997816831782317455314324132909977871221349489069637332212168967781622584240746670780475986224165779877821696304602551978449984478422876707058459176624869941551360782988954587000075018608885340978978694301083912833753633990927502256123848232431924174068809697270068972513365254388117518053461763670839743563375595035875062291827163954109123400332236653328758137537651757082284141340630026620039035747746614839489150263254651340189256212565556134063580943752692467130621724537069467028060444694041618914012959354279461368953615878342871891814741966085120545429750156106989328878058396523711328647691409241415256699509918030097738437963098277621135763242643753429775681710316232335285068566621456302691639372306347169273416617889713664130701387706216962183192009291541388393715101064010317650556137785145382058458793666340194877072171224825323318693678263331484663431964190420587237966089113668417773009648661135962571025752381398953911096718066424223225286620396300456846069125362621094195172100439595411508930404740761484024070163196326077009633567579975866386284740570981317977013012473348963278942088919560191577462457624761399657238295045144108848731419461579758773495379373900691179013860162981291263680520653974878601760129014253222006152310899773856914938317568615974593897586293163069021084679490578407177693882362731215130782940441364322502874432744200379542169589985855988613019497041488244120972790241639784634428713539437881650782955015887166248958386726910965973536769551374640845357159103603421701638720652965853307681810369330354077710159064024283775377630399558679078871646579533483334409644402688555080461863288916898771539206216792675606726113946540322350756280966109186365818501376903461227878141507713233748815571634656892083143109413048496604511748025056657472661246543192260414766972883454444273170896050539772276682566827081522308042346368237562564479639329049335153374803370691528598420343770124200789823053978147527258786040621930336733161454273913826161648802383238072623792439757419054888966298787295498189901671170713640665309613827432993350065774453839823024413835382510562423402676416201549172853226853819273936820101936375873759129841613915069921517858890678336727796208268585934616081657379192955736743765936854638200021309422807376408419385806546796062034332852786744691389742937124521353141696211971646994059659434988754300751569212485524950550912796990223292416858748272584673552730849161559162787135681858530407356790624797077164470162276752939929646552949363498092411020380214044361898319075393979534672392758365060655674550224702593943312836597778429675143904647162329859542667561869756377512178864994529199746885040244104107729432248845720285996114304631486140710620395966384828786601700459349737063990868566643590536184523664128337952844032168629780194072713987306315560199909454802449298662204049073700698692744204443085584764847277322331042820490522349837125715374630723963987087892620172709088084557177355083795619488593042192716240230096458796106969993067204833239887987241985000849262582565362057665387835075162206477888461200051291247910362293629422828339959928622001424863659051425133180072616789980698166251685896286761159849743360066215181592971021983580994864468367049550883200908446413974641493696363192806620776102042213674769507618096292962840755700240922957386985335216444785934660631780990463968809974567307450275800412788669206029117329848046688081533312624969857301891183315565899475204959560184270021496359026409735375655046964098158173627310430115572076883767946541346340704361029529341313126737089717978660729545817150347822789806228194662816973165399649314037318564286394203386366494637976316520942699942642659663168021850675183175155718135486282064859362988365656164744973708449150901843606789780002972217892016734760130704771880902056265562082751481213005358655091567128055926579804622948679767369504490258789829810508895330343554265996915363121721564250457142055391594980049381165656999606543492930490871684001079631763803206943304336987817777863487914936802023740590593050037555537502423462134978638077259075083496083871525998257077875240227452125278107332317970264765810032514654888124554682630707985790639130758622199226408373795635090753552529794687957973599034904470034458903270743533141817146766718438351070126959880709218545738323172617368402032716783365213221532161426815722007846682880523087692652009235168519454095390999765779751369231459791753880304602734977765736303719042224987249226733476708275687304495148379964377642136822335134899433303359447666341937437884255051508694071828403530715898302847073988849793686010708607841493883333648477366012991459603912188152496067292931632329308118594708549271021921362034338943319379220747983133359673639524828798924730232835211571753049414060843890457910401864383433792570646470561341761800152189363171637115879823597795384752889649484642709382395094778127474525494538066904902915703540905550418695475534555307787878753406064390221155638525903901309686778046369944699323119875169270169368930254983961179990590757356358885405381044509376559039420613571138738465328019304895881334423692766539082141751377686869476853930906037382456758688474324637857341174257518191164678091869541417256367506846948041550449598369310315373334748709302047202242399401887609101524951037081742997888150501128187397243079065589506075165480306772170799439552906322171152416352317295724834158385015503159685371797549845017794695349545086741477272611119458725418682440476323583383925275818828767003376764960705271125477747952767074501942042455647416385974255224990389723293232242191857791007869010613278697211309633272065496301027426210122507456935018481964887335736775593591635111145690409872881045317858022654457724602879945066476076887074574995528157014326730791314583081173112639187175909052878763035183733842564286373723685843972835790289868124594361308723563894507963372705875169950177767352462796110772381141870906762103895645663760444490033487775932090720082823909637307483842586677684722982549317265153421907434238673081871917596012174497751516096723926101298397898680793796777580399652160164473333202977263316057001028348314806120592601801983696727690072641724433135023426265552524182864753118839321714986397843050497921437413570163221908795855832560902229851044730720843455438330952154108590691379437680012898667840469802590483115053094544345577425067551130265812163012510484578619225394611437069157184738497990749047955485052789260349143787643793891926547970435595383095657987375482094437940994713904950511566437324685234858065222980867398291350084111322843599263159248395576843054567678839104401286989185117157285901501298561874088008357971430806993360184214596415746777942948269282016487523979275457165342448804480829216162482785064049978931509747892710381132923422131374998003971372552592644045157989502248288767897130974524865619417716257817669537655531147675567354900057633528139757681188520902728482776974687762644121672020631050918154647910128474252555949789462614630545016623892322962209343450886440534820028148259867955089503770013098858097673225077841009081319811873805116939441845644669434422451615767921005045327955916449116655596244822982661283191777415684114903796932013454229595183058761173476205611299406002508705340182938432777614562745607029404859258667329093841942985763769822655199332362290930918932284423316717765502532132954683078298202502504057873795040414821042789315106298126091269735678771726385565356479959251627872745275954442026081737142331738445079800131495776869630566840103099796896653195093114620089117246994403749573319733350944804466766101215329770227345366846527633616369820793230493681827087857532409584276103404214874081895672311366489627228042177590333937845660421802339515291109777030341865757768517520970843997188897571433921494749052937999469132505084718106754070481097042895986371959411443430637844890362336140153107363576169096216332087045676196250565019013169890097571060188989761107827204832253976968530185119462473727965419241797801272869425271124949510444914693809032958792771453027658479587921201735726630602919457575246210674477055843391565680427235247329466058427458480735421629229989237901042072310925537303318870912329025320063048968012310719876747949172372975766034797391327765399255464938433959376106804170013057932715252565506157750600468774191643264673143042837712221471344022646735398750719342780295939999505166732520276454343342369980892193947763387972260099869729360593696872781418054457153246439383343354944771132519713636915804695450263710048782406963330283998025805423825554430348707988009961952915589467712676665246681976740463051335078811501903081054716092118327117725074996104008520269992864357349170389582243872383014733345102034816200180100227673290982974298493859532884925208491131482600394504934401924662037602987691117676562584076482639140004009624624327447261906479046925927042045662737657889322136330994476829839383624090458835765873235127066681212525086395972308144099458967655172887356035398917803498358789633030814051022486039612395488833748111189943903020478852870766099054977273576972809106281926321909022692912745425816328002453407468388749650151914961392300291897874787321473802619188629988061700937974804610070611031564375567682826756979314586989649303954379477871281993191395832649639483198496542839029000402529056765536407707710502052196662871376930085990425336505643170371826389621717077331454257124643531278709717576751370758164253676664924305464136484382493126939833858923937887294899905987346454398298439754571241074133023226528326104641918168145786534160351257441514844943701356356941162233378456408465495274893474337113337499651563764115711869931550595534232094609787495503752719244021614391451327527106389758311342281997364697583979323344213016886472617694663057391423809055256898971972808672269637017795717215384370407141186394954714650446214841561956613727613381254984044416065035111041265180471258116407106275115963526586270443005299671744642722141903238118526944599190678167718249877854983569121868877976413828413643971804434333667843526492956385493738429297421597325137341828404336977998729876849448899674522764376371429956697229320157582240187705203724479543988215518214046303125298408697695522845765037454335794562295293506456940051808688973972907375700793011292760326214604448807725379963728164883811820876616318878777269827994375942158511374957601240650550970030275653485197573055113699971741672166641415542332638244533265657830424412453037789553824207786732101463277381157813526236341213693929128365005194673216183480494783167057896461525179970851289078172459900493817326631928861706438183696883599057944957316485692926011477097712046519337947002271001854688632881202233390390403865161976553700050512035058224464147655816975339385579086646285631542151669419678526662339472257530186553485837823440426261959334489834583988127608471164234750819424073352062041085554572194149286683470071653736657923558177072651034656496924373971892472800564250205430522825831965757766883956694420972252176712630694084853880632276421174341193917792726566969567068311445844841446762092075890874201213623307568512012280620315822940748974135913848633893412097108846138828029318215282556254223475028803201725226949804804244972057562336199595145083005456883721979258057061897040075900686041882173973698233578274521008721941315144474694299589815066470289091240872778257845321682668062526928127727928579349806956575657217527630174216234713756615126412869544605551595984970020894423393363118793940707917608343829536640665084383565654975514290108909767652179587969725195447542862218725617647247551669002927117277429512620564090994376890913985228102303946562716883195766596463510038353367877844819177963133025940460061239793887123767926762411714803160809995018350383363782838617819910982418374109768965887389953633327115365336625299835717942862699164015590298731343038365412282255438353885114361069774060442699482665926143627313964764193393830364598624253903811940545173059175123105719612381209730810772574774017522359608198296818844199954436983198775517969573657790365567139791717628912806676523514292242088738888883500109152860928079758928271064417628331999010305436405685209882242967088070773102377955213976819479418723416122201324497398670195833830119184956931861077320214974408757122922312609207088986415666809445996245927611635003918262332271704935084394688168528722691008326986603820179633891597334218826787479030410146364013754339543416497795257919489576495913013190671689428715826758682475799023666776256463110212387591566881952739425082689844300913531602517564120661718276619050776528214081701555989454747145458190143880306736732682171690790435098240745162284058385169595438034845704229546292074365519092913978905728464674739439092990825417744215457468946987259146242224155378515518777341040514955196510436352591580618895497892235229706586253931349824235019627924268019968718021148008636086951347839391123090379487411993731290225810577945109879577016620315372438848623452428528232956304900053550971059249885615694516230227072005894218575473183585516078887999685828852568288496395714009975772388144229384928855898113594530824493578070265375903323196184576949940734636638791192122536807285230373674826718734007429641981231255142820682688222501759469709981605906507199954028634771745354270267711103959381556732681696565105426941708136985881724457119462935602773759595788686300449825376459798758900051751141358329515252750915368216028774308034892368450380426308978395406920731333319958300890536307144723255448164955828023143718312593205826110913762330021598823399507392957577132668403452647000933531279031247864646032696873642908110215594190164266741940287474936792189573466575620887661204188895835980650884623210800296631950217551742033605942243870326818604970983122212127729104894385993677766734842888745793981487571104580632715829135900073256752854732356048933638557974063583553965309813649898164512618836434525760816259365574963767409133438147250194214049323274499959427032470115004702416492852334133680716207278815092904209401334667785325541729540416829265132491132811866529933679506762102923137147363063053574432681625929271536619144472940524032393143256473081546113633402170702872243848781747270335724179248463865610639938350141581508943332401715155589625839181284867725219091320208560214147017199427563503769273340352499317109726132649315444208008662759999289587324610361008889519972777660603301205827394218601775314345429745906199329076095217062744595425418563611393018491858098519544392073892920616442354771893293193777946373314090298899863095331143403086717173586453731024938248857189409273162213614677348431973884635497680057530434763599073654489664104153490988363557892662381133740811422917731504358517017174289925272575448636094874827045407273658350049225280686190489365976893305922201465980547315271818083993171124574651209632198436945899075473066203172343165381899749630333334416345633895940293155926141949138911949367950517455477645288441389679000973845237424741544382442234295399304294441153152665927441744108667334627808579164833422608033219827892320780719704862479461078018137816241612077580475522298134848357719554591105653455200139132791290998374325828756076055470070281942620467167613179604148788780528103491232570512319501307361017202078756865413026849230193979031073782372792050999372195287224567404521429087089056062232769369082562836797872061794521409125635545972989609286307122849258439427174455904983943046385271232670918173214262074879899814792054469350304680000340897379476745275429969575408261679819925858663515057647603979633535160055070722284944268053312861794646663850806349116004670972542259927192240272785859103011881699387880090841895265074276793752350503894232425933042846178297673021455749450448041200987545353037396809982120024586335843856565661735718261704050108119297787391375951548929557308578981765273975696953461553207122860270693005620025603445846754700953796324587239814266635558108610203666890211815918176149587706781387342845719168031441780400054583408019194816744547173686209007781562192502175699853851941333031493973782928303908014178472460596708974042880074168059373634255065671019093458235086016519346435935383695992198170048691755213217490008570800861974502726488124201414148297071202082298680190291992375577399102679725538326834964042412476398038652674033266250001920661650645022244843241236132240487373734292819514143325622695938560295524304005728455975594705723420200545570270367707041991050371385632043979545268036588130396476257000127578432850400235503842364582209346180610488615681068210927045165098682090384493322307052718465632512790155980943739376403086832416053640638913704788326010383468738751159419159488092670499236210861042060887689799100854671710110788160422721996656622701247270830730859204058494118219478900867416905571604861611216636368617224154732066218256833155276101601582222867213456487233042568332992023773543383486374984707965552175862212395625573860607577892169494593301801733672632198686246000116365953234642921142492834754132277750548299661225291955910654916953067858803329104637148585855757194032136762418326013457637445467962326759901348598822706817868664518147737866034098731186473892935359281105950779320121922150440516610331436640316829207408322359564309060536883757776725010335918534029918434826289501457927579662547169204096219397973100283437725160321010704286063622044974278997666109856113303047138287371585117609279603882090070929468978586643633272766848369356258326750140185729193013499476576435130767943020019929445716755596081722015956266219385575582367855373562865840511271985091626465331401838097487160271381120522689812612366227823079234019254686592486346095211949523026381484425575991663009428212651769366223030775886863350733882088676186476888752771203003608471392910054697861360878767412103105297155391354134170127232966758798987466516290487280940213279968679056481719021723690754354941539294429854243743871640503986254915052866855262477505219447693948358157549074475571726769141270518646127248588706704350985888701786076303009253087339753282797025828915708315196999614180276534407627179526276221519231497471300346778304834685835087290406832171224587608694687394629421496974741024239450390998288885083508989112695267007943178739878999764052095776521069654025017675979369937080047172487845296320450924366412342613273286178677886042346090040580827098310276048631175885531882974165250092873342735580342766053817788124467385005767268028969228728508383690738840841149451701582397429504203851274802336835555380737973362826675731817734327652809034761889243909918760428174744119755043356096036066532373471836712039347916023347462059098535605356410292609141069985004035120117629916519771704840759919504359422514832032017800453986174489143570502802846484295365612319566113970676807106491028765750671019405766338169408135180749985504913072674663457292404403624426158215125649982973880635399965302006155433763086275271620113498768197286216312164554538856036706453231837772641398981074527681505193093457837080544473796882357064797152996761959986445929478892283275191007817293669425229040658791041308386623110775432895959497810742939177688442487696783526566305521370112334331695844443344890029912568630374801794675675440887002032529358874712185992289572445262327523075344808733558475374021873503874729123507099931168725324097518694560761978787726015671628157156728457351789011795644206798298247679746217859737812221784529017100152271485851885501876999343066591278720452140276215862326968492761393631361154591536108121466357595239198214928672611789909338002188836924180979552896413421788553613502690537321693735054015243644875962480896276524961528847950775736074291221721802068542669109523938518868572144136324419437289011060645237318274428366859086416332749754935142900870031545908053311611647949683644305857330772597419721039282908885425267766531043702090522319671747610714789353808128134311798490368395510461378053738103354076868235742543094729178510861746202051910145627724081814239731521540672339083296579208199466334005561047370527560244619814651645099544729991220638741405197909249915780320130776985863937789810902937669984273011877828419270085996524563210938476799319106825837412306731808990427140877938815184143000713891962803576070746910276257695225649981533281711067709412472649859013364198612772750028165607166022879924445464340450998069454314965378978313317390226630284976655419032833724669154704759105596166333476101250200695777152803444839086297105608298023314479185127726395573789948354561293921001586989031663009998093317253405802149165902010607149939599648100530221083151897914075121140615949237757374954353992446138153627099978844650715046889428707227724457649511904728512157640217700493926448507697904924759545866872437564668627905300849562129935007533712459461607285903043334174344580329235157061778520966887178705215383162944350708189096714323890235446996362205710660640470292908825377971373850899553443574691852665944919342417093683990098008240830430013118724909169635341934000661798630951567449939817618955427475985612278307521051878917639541848882192913899729601656891427040172062454676043115946851557541604425418201524928400970391650736220052556667503111445567523918127883849446776734314546842347104105547810330279254367458773549889686385765862931778152242606202435889568948636238016517072554264845476769268628162932319241726493569243664196035418670379016003532051807515641023039560941939920963343345692495287626972490299451222638198367428749635133976564265286976294944761281935848985111519987404622444420141773392533079245075912091345017678265658453164883989633740845083320993897432296185446620462354400551711958062823587475569171405936797304506354328311959187781721772812038170681145339177561145645458146744286897283473707295126085571415057979237056820400334475824642544439668964519294911294822273017566138080984153587587273267497042101702429561068823078676136874834873374106010246869409765452464460147739508573121061608810873277219936074154096972300365263767904864208299578533797729564842612010221013937067983535579592528509697680206928341939765499826075244041417360929685276215341401770421220301932043900290667069472038975156225432616686077970209196129284735672257712427515564679506419860537448625552528037779366879080749957126185997791575843434753277144813660812884447836355147863883361515659361465774809607088058650111512267048430945606563635709807952765818437969525999217209056072638684141500872098633788146299554463577677707818640552736241270458406989332423083522909410858279697477047102988172274163218023761917596869075327637751991448839963404260949899592322793198941105066498701124737065532131965508943216447684081772588158797967592939208205149183836063906456523904294937696768667477494239475350258165289928281323396615167515069232901244044892594655680445539541829766446805031201067828472890680363594580709465503120082826342561858831785729453951602607616420663843962394402084524727162184977278223109213854498102339541187521404935435126097979934537300159019994391399904282035959953597942024931140494787608920039458726276857870794142879155203933207764232805570121189752312661427052902715880461449065973063194960453818331683270297992673986486510055548855107370745431900401325014977513271472324444749441675917832930595473489123954809896623918372764237657360461314398503882160467533058877843680886041524125385308326470698074163836339406097591701036464025764113878646580397163339660252956461536564426992220551225057634320635195664108701101396675346878790978042365736358788645163186496481631621294718048210531513364188457343778132390075705551956909848353680899502011839850773796436984242855083808340090463109252740757238768195429473262749425567816262636781354436944955534895847841499272192133625422578235187844080848250482367207471055747668007551324027005588352925111795990597180914733776042788694079113833849765924512309202610278387678798123692922947015238864301645468708140639796210353410588534864877415344189471442376332571761132070974397281105766951918626603354135242689780088509427583881992319906933378809346201243901504964155058958736144938361784479033519852822505727708710152993707086480620332257749682727475967033028792529664804976999330808608408920787727515363950221410094756327812248959647234843330323197541405526598591351251380718912821183659086230938924143644789130972099584376413431229433826807930885658078588984629480565183040257933182747657493247265370102473230672310863122491838638155253170137696136118441869038820867265863972054506681566613496085426393877522524539728110828457286687904533956532469071620523307912825678042901204046678299169274418193175006995726534390191941281991466221637877933013884380870538922589366198126322219479334721017512316440779046552619809056474225017277116811821300197258763999246940478465910155009688306423261960189153983849722312917623633928624140614878275927113750346998783247004068046525970533935850615742190887106362440208907700853657772620588418317197591932282901054304285591992335088450081448915121439370938148028624820167458687636732946655861963875492922077547110232192273436607147566844700862463429694007916523124828988924165399415071648838284865502076730178819191828961362452600176604223228649441591939822539486739547022667705639304209113464532152208568215743359413890022292154241272383636359514562518914885132436409835731966212841056007567481110825196680644599196275446388851107500624276985246867868886140910886976710520724873003205407248026279797230208049259878956333812793035601466627967902584047230037517992202567259048566305216529819153654252904131299538071794940193249973465949114592966244146667605948973508836953074036862668895099987616354684539394615377400256862790086388696066012834401892017172253016376639167039778134902508953276032714780023204735889088274936542659047786054916430530689689607900297113020848851854622614623636994406205655209588575501289690833615564397396339518820677354981734219822182254316348893115840807659120356175181158319258878629912423843571716220237832671191196488574176342687092559284442045784031712912033469370826828101015893491959109500413886581508892504695245289488668784672725983929626137305197442568521404269862179427073303221559499909760190662923258406382503980602250102940676204578680216617017250502850132524075890934802284053887139157969720336101555642042409732142500681585942234300091133417982071139764419053340202679112558875249594060787167563538073690580590894629106793580287107642693528111669724141278063095583367763843431152306402669409119258200461443684705898329217022338392927845497946901874287175128276213921627723506172215976424905809770102183691945165130409493151401324726802293389295843872653146869103644916866884223602641250070243189946728179019074539868671618081780773172917127650917016790444668741908368434828277542078701915371788339079701483618937773058184912738798683649188792367569496646555961480463863270672551755994934729429543341589876410142704162340210977045969477542822470865299371536725493821379088013281138136321741372682790449810137749967872947526430362493807880762475016348660276783103363167975722563737051716373291149241402500585901747045722999228172616446220348672303737757684247126925095145450626739632239912619258836202073893705604292067686874306042335298680453693384482943739175719001946653832280051909593353583421791066223507320192744352987259536637801605569972701141593419641101703205837216544222840408328584606579553580959613668275383736832729341020822383468364680779740216375045579878339741980255912075677281774688382363049489245673520872127363970633426071966457252863837869936515437963562271916086239269696151598535352186414764056616399514829502250283512592713403001890602603338134686362520365795692868903273079968523483281275359525883039756977595509226908473295233514548144467459422121923934294514606462748199212900741000109185194190774569433678972248281184123188040079504494185277421704078350026090561419008832215166603404149158671774192171801716817861535835508524709733165928865979594418704071845793878721304680372123154992163560966949314717182938917230614023402830706492244383093147131164218144622535495569361626528301368017699080992147832254398820765229395600484530594738502918923362787852301577428495046888192437318584085619771815826808448080941805396096212492100955319530140395614860906573374229574321272813481046730274528401055352079962025365228791518287800610388468652669176259044971002720592694982819612335943647158463704460721985083436534144606432746842055681570545362316551968536138617439772643628450256149439044494916008787252864697534655593568331892166010641107744952668323290426315529506624434182679404799422497483910756349068572795461391509575110515245496960027746284850374323541049931824736134485407879821834197398743349227593111514746078801600461309084369853362608557139335234737601950349210569847461368982817449274288520246422451091684629166030552765976898082338321900127566970789365191709914793292264370604923545662756114877422074416481604227104246759053277366839522326518224092003892862542565752866696488433056396363243464401069520519709120655869754252756561865939155210969684339495927275805714686895291904132545418594841919048035385949551661941233688430304768750468083417010282613223440965727145856168568214898997485951557200256958700983289041602855577698165391560269308479965461593210180519973552096315879330451188958281750045530177955069762492677778869966185031200337972743514997413597650715025843551547110957039940527045904080832581853149351370447825802912320189947740137508740684781118039261972088856036347133783846377982156763306471335820934675719589766908260511402669326178938407984318325005901800397193227673296814593851056153835797130991231419394593624215906158418801135292422617812110034150290449600133614638223680309711330562909410990027856429457261535733632942782855539118981102189423737205776162453781487573976581218891357854287639700903648068481129147418828560182056102893675857929497030957437414257609045459481611446604604211357646876007736977196268377005413663588264878948380714239822101706617477857609291742970331303172908779133901002608187451937841588535647869617552761459905751913310219343994273990092684766071884624963030617092536976188635922538629829491472786540412316634875911397068383314220042951534469433374238214090080267041357700530068690099562199569095531813175322930928503283323549815814197777346995281409199525440647535824092916497439475136214454797250284320625318256959606525227427166509471357791514114179300625291380375188876453806242181553474460458427546172376921684684780479096005706719290547388547753489342767706034066175734605228664016568004656995785600457510046787684974590512632883779485545211064804367649272372846492090919615732037614833536037970135061643434427321472402294878794354288656409299593851663582989945861960877286024605575734320684454025184400940226226759569459960864192373635692484740725209169035867481732694344461147529208714865314505670536296879328563303563699786845895652350675585638552987760990370552335577649507683258790973953162033054503970225209149230869714900959990728443484324554151938728636439164505617496178156059522685485700753119735576763052698784164106212380577431638410509812713493809018055949111693724970731828231797238898138540510177460032975399654980800477118990008162646650938725632365760528827719703278104453795802923711695459426054657598048655065222999696928732251167550990985811687014000687537776610378375024167276787695985748780931976830283660181284832157344352435937671191435538194961470699157743374305262387333827445966092065708819616205286113394801540897970044282502171067076767842715146057639673949231188939961796022361095127016492271475175745985003600222301193790962667665232586416468741123254906448012925152108079019901297635933098861321118688794667951932359111192557051234496510690364824543016054313846597058463746679804004823662735821492034838471910616642285875768094587079006685335504819426877601761600698034385778642423504854266378461648901349643546626973791280132151124929239211317091985967896124222053649180381485414878957574199633407597359059329955510904185457767807281856397062686067017796291598318802349802633066777157937824695124699016373658368190009289351097225173934676705090089063657167230033096809541132351217403136879923271659909567149180478482561105272398152732661583083306242164826305316130136461833149463075912974224513955185580571468102926823626624903171156429200859013492678434829736169707650101846419847120386485331090174673353061205612898181118456806187306006707581466829827384085137687081420242173749646188007480500238419463580130167230445757130012337647651659171606896792960588082933864519628190671266544658979467598737734175672953363217416571143501115373355047171180791227228177368598678122152966211402158223017795178632309880566946228337705467907572390290952634128720090198656929398934537982000403559204020823621962623678352138618759367352058461879155187658174495746648607454953795903244859939252874083154916975521750131392404173697497728035734206600720042152364696384141496290766078001565416332604125869556953898572050919145481267913397610991252490572307818355132468848535633172601491482715997314394574694755690608445062977476251758333634575170859790525999917933062347720969207099672123562918185594197569296636903317389321540386302439754688950830700520586281916893607375978430254946413138555184383342892912613886248692415275336399688240962142776422696448390745120232174881214814552522478131672307437716479737865534335140989925856766757395071389145512135746448468683903321131847856327768179037428928104926985336311609477769074241985827746236543107039937752662216833318742998208496641231306316341471437340830816316974706720848842112266707993713011761567453319786710014820648753389528835049149765662478482631660571566454951699507338892952323087630246234581455732414676817197033350512761621692376646342886257456528426845017814764918357380215642037945438707357690228282523018851702770431753329211103221298110240727111569510686448703873162707822435479481449641457624191600040078872384854309804573699568254044912167920237461869591990286002192099325887266455835232356555575778968860668400979528470065472805213337453765281624950348952818878852952820819899274019973051678692199958411519847201606271299658531979948560255051914423731395217069520014877993630669534889472833028856923530889244590399523554929901603793948374072457275689822816032044468165712021400761355990876062643166584427771899911012820547651222864547513591309459866135040107143811882224288734266249463457353663323207760803188923734975960263311220667368225210005057560797283372250291954330662833649957723886769092753085584852665641088192917629101495995595750010469139920868387512272144980197152361511800316796519752909502593053733372156422562351502278454432270366731039635760057791885169663435712524923767418077322684740367767033360550298759898632081116510825237292140664957315511476186657422068661327561211404476667893828456664553601082366647802691684589086188420902673897935963169132235378038485744009768308236796818924491273045146776850091756667909090009406724254965832913229061436868130101126160593180748297008230202952847069523553662657346525187158081616367539561400930592444409388826669533935615321472510785210442567272617351194723170033980999939766503699249383498874892330856262910936911754671096134772955307542393596067624004044394554793585564037851534280213062912328016740740455341646631694216395050183438054612174311118591422050148912952199018363647770735959114706514937377648204349835720593542826250765680845118627648800181874662892613015089281372032531283615024434963113806162350827570854124228890065108978527652403763085481894946919915088057322665812813617420753399879605810879659643593449123040329465215964619338661948327930195747829422966151477294801677991275009621473164597962437136961861925922147344551752388437528816009996621420187397370515599950976494651732670166398023290719763802281558646041513419179029491567307523419238135394016040058221777143103974518357369688621709340428316824918544337747145020993722456436263028285286943742472923780694021272653237380580811083028631904432159240647038313708374764580170843822069783637172250136400226112890134389583714835872711078289701729282777210341640783606468334621956398921281279750378161012783684022532687261317945538154716360626024319807480344887708416934938363737933908460371916134394917895098519743438069042177499455711302308296988837554240093430362234299596886299248447463467721413118382114327737565461691707502349570014494524512519849327790191116310467387140460448334976627682808672087383606695959851522212768277199790776932824298628601202154383154663409638397015569321407494574837354606135502191180115415596206296528790375643685937056621975965419761001599449067034883368986269249104048636445538100152019169856774436390666117775731778361920356137144113337781159132418529117219470626256731186366097958428373590207231556633378165309187726792321045054291264341345961086707756722022144337800634797796138371012959954966348109393576135992797004013992354114695416491256505742205994386422617550754278544890556232982538589793431286432664113804918479817954048339286965272674663491463607027157151047157992747460731211127190150734254699594907006211306176385439110245621106936408739184485752778829526771414279559794374160860963444600272860295969739483813853429361949325348684457641196751338772909970780020131486298847678424769275330118308660680029429122039310527597629208026706639409704117834714555456737565125846482479540448616490566963691546597006789333662117184693253298548680594865223466258133992543932909674503317703524475027812709999275665570180189502347254238337636385163947490091451453889848185936868606915576124169747768085352803078976169475052031660968136248012727606756701185399304455371683602284188747334922962912326287626243047183729670362877929828825411656038119988773227393074784102949550426226495576520270750748188935552908666058084889772683522137334346801133561213078309881320287747514609033934721541813759250334172788282393875858442338578188390369492050800295061962059942708993820823680492987846953149651596903136713059642243989302916234092536606649984567036007736526701197330548729161395466827295447485525463221158757289036567076748185198854893203007895227048264377496778699403885444265504432333019836665138255064406708562014028205887389282986487843772917949639279978211116392104467588691731259146200734769882605700733116400536527868535360275359600171983613355882766847346076291559533861141774092287729861566795162209685543318436727356075653102574253660648160275429918842986563803849587940431636070612638950330902583655718268608914002731137945973374606322714935657573622038196643121867801970682426682886713287629457732439927963883338777400422337787153083540890861982003230464095026752072971553059816331403583467686791015177521172746840945249119719726042175582848196777584897689073473319647360925557339934528172329039006441974974198143222049350590912782687861023894014766047990381483408317918789386518280998130067389716859980257187289592143939463204250172445491380079619244885589910631088471334662262348616101120910034029745568713998003353886443184665662774470502039129261424176836370166782575492955864310650384387263967203012532584296992466710036152546635469567214274160553323926008772460086600115703396198925439453521466114924013022862291848255351314601323239615700656227273869062760171483423789890532905884472717503434531307630486925023149232381162637269906462158660316058695607393901233184982844022943747755981497975839974370933649944262688267636748574809785731131637703961140849686701371469650634185387664224825515819333343169358327257649718686084026280671147494369707113975197623279455152952962463688970408825416465959920854167833886989122616709051825891150740106878010829545578034042339541067906360401653036347737429721883598774738691263918429690546112159375327712702979336048285248471681244324482027359254810071680015516025554043909866823160809732410892322872515334778733401283051303438992556469474673059875213175701200855647682044675930989442766557390636573032167348840222197120823873208664355621392753831656788787582255625997362888338749973488161982577526701862344611684778977316146250407441299505909406258751574151773049968538441132835968567698897661919568086223671467075930261812028293591885526416678717410630023443861347344141667184997499695583405849048422770487238037405727937565468110279622557278773442713430334052958145944869056829913428701935762870794733489982685521967303571851012159092191188591327211009262598992424332837108824096832001177865570362499143730236529185162379680761827235021663726736447962600567545434726770030686735753292608142958111673993523820329817242536321040728763720928601005999688199697335093181603538406146863797370181551464015537149013347572418864078735443409433054929398477276371630240398617665151563550074836216572014666705051307305145286053422450599958176173047162648629116586060623406689308803987251734287459141916625109981564380450659705301448806803558113204040831578356173306651242792606535976128267339129375286472923063865839738196424980686639862847885002464731459048740861973775978513415462024548780567229109746000372994317771707361914440577648181806489210934159926369682222635730458785748565394262153087952178381234356313122005277386791119867538889444002496559445025585628807816994890413488258898309192856212637709108637687038159575200891341216734223464345443374437754008504508921219707351344621247979430455759468504553514519169543417990106865739642766086278231854821185378941909545856646037833540218580522502038421541056528221844906498733487197419968563378434796338258106309959144476011670339970868519936104635926595051506199356163145770284810401650129689085909784657227472772546579461488119275051313457732449586069779700459687500504478427343663208599489078434927205642448948918394042628040684563437372223705114467599087239172852887894956572519365440250588434738467205925745091090805759421854072646316218033521819605029067707193558962904689671290180884245523934730438488312679143482625650692385369087145336344279414419165794237817062835289270963710674640473416003236495077505737621713363855694093419585806170690822436060661587231558077660594851960423171267739412887599681282937609141420272456643711037315656818976418806096080443715316221106289468849988109713875291059198066290245237331052124709841002615627579052376005615425961177107216790811753671971217336879783655444140617289941511691603192785289682325274906256055187789571435100730342411763318253694405255388351643724290146267276825024294694995079801301168613143171264009094018806554550861895296121746696547466639420604253834783966684842216945308227676922293531001318796358778618081669527864193496709052622524056201393806021750131327105641543112124096861579038154511343098848602521698704111673663110961582046390117996835788358800260296434176344563428852451587445254091807355686011003502492106345063191294187439187302001419491554320684296260330992698885944517564058878987525119828636759629352946359842051849905306948371572907910184817870368112521231427984674073325884872611588285680159199847245813607951927549378494745740715102967338660370086481174610838867278280541477534552353612598822444256137639558938538783167449143886522652322256763881191165529666867707669254753046776680382590116793724096762650593258435784064066516633883809669602945030910370836108771127594276629953111511794759432053927378983745482453594541034479925426573370417989130215272027562428925759831201587868630847829685121286131312696559102288482299015384705049344443474289895663927769643762244044502146784748815974936620506621005269578115032460922932647048136924359456275192650701257525490149282891408439323332883851242175944758348353231991395439288819284616321816908933740222389444288145356174780468812420176289903207334545340905047005621876551114928152598142012774272626178381877200583674606324249067797693718853262558708597912805247877672945741779410649676788845908400792498477135279168181156203817932095936138512270374284398583185314390512044649033900380260109862630887985812901575691754294683739238245715606602547297159209935924549027738898499650135782598044649213058143558367694452760893148468961620206322738751525760062340878286052004239726913487885082127830868710943860894480211294454304365377157662794195862880193960734572316768156186995126417361849239335244488356066079509236596660194201092792102263146462538648556812014562749510465950200855188980499746658194712101484859608511589192003033647535282612880130831656218262644623150480699073291240955033475475640374574782029920435559213099684516809475996842547382050723777627549654531421023075450301700452725102898210396820910810586501792586109000911731017968294320707050642911733232126561714939797861748144704412043742618502400492764729332294031613759921779283915612597340789070396280268892882843581997592876573011148992728051485424130975535906418750738091771150007661110794778271110323943074298356211656445739910109876155068401638433902702206073865471143315079144495951803544568983317166987142890632579671056861639355356955950772978863280202646295944242519304143164181248795583797468718736257753871344239316995822839974069326207308456539712292948255404497555131148162320947290747844051683517126494935747831309296282916526476650834077639217162504877420511498391323150570339071868101153966218833822762291260308280383799858863496047459334403484586212762850052080891100079617613463606361991416271968493618262558606697011955299449137157908987866603654204240809139184233980624784683198108791413041444389651343343738313881556995549963422445150384665128081038919905368553104315470579702896900621982673536220711944447763614436697533217358552572629489190405910464976680653397145358325656705483532431245439906845559964750059055398615946686941591688807721388550283241085798019894836334977100104290220398753751786331344782350585260913964282159689566990833022798369533763726599221819634995946442413250714912813274259061091627716288400453892750433585820692845945982414041198579379855139987783034248239516053094913902280662143052967617772800402174129311764261175558619572328782540643021888785890869672427891324580498931907258958876079043599496814260883787947254295920291868675845982108476748456934735106665057801918390961356317433248736454668010222213025050670393139584912567030178900357778286960754500979220499244739500932132717013285892195956117020585651143838802039556414842194031879835039220903878309741189895630795522737201074685066705834089573637003528856652330314406878872136024176269982266957542476649006517777832129616908792774667244179134969243176953375840495281285681988634417003298604343520885584417687774438263957569939799016429042246833796544922221532055993494505263058498140918697202070724443531260983942009506116817516972098778024923151595374588534050004808907416109473033381905200228562923790313492418275007198639715687828171494774886962558750199810599253673791180716973295748837011091911490935981865858702302734359985774927232536546944936721714282728523661699892077769057221641132391544875296031850041006793653154113105413170412107006462765999819691883234257461280615490904430484287626181899786002733144774132178530349020932547082994185729343805304240423579831861003057061996617140310756116025352373774399576995760472705968760829324698613111232383326585218901068577338145989115724280523890312688588262104701569781438037187314829067833758947615700096269296435960858143551450825098275756662453201950452971747980688064157877575344382636483592134012683616740123580799300388449871034266905990245910492599822846571439440867391563487484063585567116285765239359177405592078791316182058348302653408006279885780521965558244658000685250671429139442793728315407500873338931100336163438101392265498777576863026462296492665021666890825728073483421884337802569416423056385647969943853630489717610828767793614193008067918325972390451568619104979707140140684385263965345539345770789921006687824883456064549523094235959516892053549576514410986327219258623808141052134387440116547335300761879977644565357009005571600041265954296484369293056490431343787059012034455790287747772738514753028331940137731507117225679003398323657262354025689309975774980191927577714722080633496496201348010534706943173542423340191354518089944313395667838685076885107551979974125404889253708288766927525634956648470173417676670955481781750763253575387815180673752067790850290226224919499131467356070942029364096580926501149288759736007400520834659999079879610342593116379031254462826741646111852222103729592817237181826817488637760564695088158407369671700943485835889454091756230934794051633554594696053130200797576017033913622402884215198973331704609106778971655276907128777681592794702839720294011395841330327091671309431126073336753726400310762609564973048209352500137015386289906639490747960836618010166564980071712915136424740485392102950097178218790363046424893208001515741663583027009181110258503454013835810115637789703278589802668273541176391588207984742602896040627426453643415420368969472812207143888398202345456037442278281395680246916479043544316944519379979925622409455137576090844033856789731336226306255416233339974896861559784204263795496687417393789677117447602012814553590068199897387264578227367421508098334663683790935236645155575579883331593923259848945624756647255085240561952011802761283539524385474690329098574829694775008796215365116279802552719083780095811410935864444151580023464496629627943114624025995495604674437368105970106405085240088503506583146798744632402697657507416499965707698236154504256862774473665423846931228246247989952401467473682886466839165715933239557863675554472775742710746586577720427977751787959838876617055908932037066317092451200196783481200078479018183929509572082356925240871468955207152875711003575722931875481048463478042110087757129279274393128035394497741772877388969520041716980223913069073256894142402429366232792439863614169074200389529362516185899910389475467362969564642495029605358216061763126625345862104480617933744256661285145529119038534523601847902979138525040664594051634792889689616256812470989537898693597392745911088169768387000003470561955743777016480873071668752972317283499779063523890604725683437421898232883472402757466529180839255836204565378597853004209757728833743194097968420602598353513089714395228438386012449871560157335695659628928601927863928537104095544288182246347501476036982205647449335877306225100528287735138705410456990302763640594702941783861401570667383466070729369779225587527280996976281892636478597213233684709037807075444193263126529599944664470584184561561075972425743804047920052310107144190444330588007076339472710063933173595298070753642353360711169565365693053293293940181293322416562307245203908885306090415294616338894746054981754427557812829680000465326393577254491710331796567053833127811335424387239913964834147695794775144728534626044305179294372783086705174310247874918519775823125146769982941484858551494974517504888193816544404606117046292338704826181745557297592522695793839575382518194427364947278102356739205113115363473573560422816814318271254553650984761838576227045999465023367691816534131841126181555573349812674352488507273358472164101473896037228304527932383211217905562707543955272661248735860027761832461268393408952948511782187668730438829467747397885954419441858106052010715648316099529227472211448871133754717879500000267643396026921700380851656886289045369840168172098420027905120287772153994202226195599425358491220285454863134419268899783340750426850138557385951548907014131901968885860236389612168441097810959739390977951361096130362576939160107963921474040245992263923122202744693392656343534507433645558479486874735021268290021835802266271901330888246492266799156892404988527294423685240203064543322042398608281746094415004991925213792176581538309744551618374373210678570279726108816082021592274816199855429460232939334326327094842454174355267170905885610736378034603297102298505045341501073927302028195013593275645992302917407781910907739028877470220343356360653898903209205950175965290166016356777386867899363091966126156594315623234978700143903618613720298223581502319111874395111306749187202247940467256751141881721583731353653694341566572353204102458427628438778781475630243648865754978146923635785068779222334776036376772880348182463509254563357877962000714862310363682298874760161734520881048333099461458844275668054346050965268814315494541497447319252760969855685925940884491706508767940640865609672289753076744647005404537928584496565271013996065776089235635635516824030365156583428693364288199139468902374597426806297230927454825581882292064240435219323682278434135308348951250119377993435446595482844275004604882724883450575406277280726142195406391904934179507085911378047185637178183341686632378468509348526302435558315634209768879430394495344873785599816548495876985695391884253087809701149971773493227461453341223876855965802819570010663301858515923653545226513322554882617410854460104144399565898480506634570287863529983209871597677807697790332835167282364984362743606263556543899025143208927699780511636590229861535590043289337693526576102730305212478970971884881051225786781012629053480134025675364102464261592126012972343202802384623907111510208739612282233408520575935368229285268023454332228656058235517796584118875550282980610211868558026904193365683717749142831440088648098650418907668063556759951255373995128686552365551250481339003194367786155280867919992425355812126493699989247980532030812992880565455813604531441175837875006022878880729606726069735198933740864833001913927349147111062782338032997962034368763234467895153556341907111482462844125969687744505531436246726304651078738327925578210490925973286638096185347512187273180350855833585373990107065936482053215390982809984120373550017120422918197063241336149048556980472899105605549758870017706654347162415026454346146681897968216909353634939839569922014043392133519354488004280891301783694023087872475939030838031188096735134440880922186095138363772234545937623538128245598568765048919320363094736527620432651445776051857155045022196600708399447633820605268365239256809343916460855600916638666354651255389867927078809794499475800854162751819805938392668927045672221960149729245886684268486603097030692493119585311382151244151868541024338088028755479886033233973996067275921027855790395456806639031713812284821396475361476826625760305207264164866593965479511171288640183720671478380533438711686520471415653110336979562315795574650903812020760551231132525701454944419289488434124997111171310106551410951445770900037523276213116916551364682095508473956608581911789322099793045395669267193117620059184292278546518414365613488623147188124869782304680297017025194239871599120899562164020291122825945292944699084686897801196583058717804126199142657993625301483319547210343967321442095886255326193861326723858526915568905269989063556779486954323651605548104893962545554344898585702641515380504377589293082446254303226372409385735733799114133078227609378884117176108394937888027587759801648374342826520278388458584208729946752527081065462390106491436466137804160859493595496831797702501195272325651297927400072759049955449243783472501164826686284654311785943386920314676573422586358962586551643390928903354693885319261861200277589558334003605459109543726745266255917784195327427660566511515478184293022874750859823722585335412485015280199841049848667433380032317817571183878540477841282717468928535704141920833786904840130716445274813812862315855549523631312506065933388618818608663564037633047039302240743124775377512927683953727201773912105676706781805121416857376729640959065573899933205516044606862687975727809033956234571261797659987604816172986281778197110803487179889826673534485726976685812866753082636636500735851898890724696931687345376059342979368830274690298476935836678242984491096387774340868345945996290870049066904628385681054974868522451021471444920424525504936357280320195790385936582118647466441531892888521175100685179584704423998521972470968839882413963345232597842324632545825009822821076738007849845330819588467960634362368593050071428559907077426265672855368720112038132346638908458538409456024944654754388213866249312798786435285554843404017268100230657728213630111142621291450663679045465470509273551831059337587771283800737708572510500049432397402154429578927684430982241120211033239070255056778779140836856750743978034019497807898168115539900196374697159438418439855060510746263436015663784924655788539291738212086486486135004357418075414203678157684924555275964715309230036951736162360962009160661644425019891731566928045547692293508396530985799566242169908206425011170234165070632823646363780027059297188943456873245756517040296388823046914431342049241716670337123520781120882647270091799139146780269707082400706464907496581808257983403906420320643574362784925365601207954509720025578991034499635442000770081848435743946524295644912481872638391898212096429913489877835151759730054539537961881042031335251914140377425827051973923789429538439340074307196493254985576018796530179985006887475153252168735664160887017394999157563194755164658219074415976498565457246624488269172685945133502138158976300962507463496714485862277576127600953378467769641955742920211369277563223679885447108923255923826817430580666536838060667445756033737580974763320754101430887442581951238765209340283835025283918498749072240766297947467391945010640751187767967991006806381001693456596107530309465890841217452924092409552131808906745194906876400890753840006622789480662788309399342858225704314528090075239349359487824249008575667462804331845366711857678337526057392662362210767549882056331705524843668361023636635997114308614079265677319479714001510748391039121885114079607731332259846113369181639472260775230734037854588795735761347963388091094773943146104228237063087658068112609463922058772267092198853152309036993526831050799011679386523415988845739892993761641903967995918213891379526342912095001985470772589991330830368045309751043055014208505061774392823184428804152486460947340172918933393629133031457153870174823540811858448167005083547800172459064031395874493455547272870466521577919755212032144298138821022141038183808904505827019449467950503449890291696166797593074249844239881204273143933022856115293870559002510085523931491253934615611677968185589143775953364666888406562405991587658103814463379920285836551524416089490307117881033784520891499485189817038383156770105486143119317378362281491515657552513798774207657291652718191878071825726614846328266269748850303329754925277987599100325184763113502760817969740802524366202581491193626782130479843163722229427374687940624380380798020314594563217595721362965200017495715368114367713865094035489806943723171723520883645827310434655288198398731083891950275009256311297444373863210437985583942630842921855200562288895386935880655236236965033712028063766080488865949514666701114001939976959444689528851118152749916587674989072584497166322282133082412078944288031873184190138590143867064916534362996327088974689120583400768937648873687417349877405388004076343915652281280543262179989765119250671049000740949312248509897985807843551836565345548161312787479750747456702890814824925977570201134726256941186179622431602421124403846546109377353309055197041468567310945777956227407284060801189346594530819904667336193966968100565027916762980107898922379841820960496510295450646127341588009783424386141263226087589513790525648714997108871554383938659134255825539370970141452178047210110535248874596450489274412208634077831241504206858756042012458855265933545815462388308895160654502297098515167487993806332346901573445276226516438415927517230458560447490940756689552769055762332490272019396959627317984403639270882761022748648143812421130404641489932813538125733944533142707612154358424883076422030017184565627935990477448303980503766753322733080981651824108874134740625321969756979102548072688522347769955368049602038664711902750557202143252313160423463522445240064124811222265601378819952434847503370832739556408370190075397827352253326794104774592072676588339504118523788400656263262426982535060854482567180928590343256037591523335861320907406404219530169508600848459988511504210375070673173147776446773822071635029271384193225995231733031011072267874120391019498773081363591709833992679357160935050474871280398080163380330406317123114323866350112750945135347768356892564237125710516022494088497270692637909070514602191425853033683110274182313368104799232425338279083616859087029120781725826279308729678089493456795837908059773281604475651486432320489755058395074502241521150681752507222239256956957172820915157424601255851139769772056771188116244197567798188521330964115240903670190994803281494320514294457780214331613398732554040562051411029438625972926630004548047232726029816654933632266298213174898324048592412488859569978689755385559629994359291600356470960391006757713258710734941428395953319235087328530381038296864177726685784502243334663293366763585830110175739030617969237273393644793171023767234656529769514479183990127194272692455903519523649778592345954392790985691931259332650444933357989555979770437319057317456351191295405645394885739309237481558912919534594591316129508356219125401963388799487141524360009084745085757108215240235482189247200176433908916870542157690239591842111848520659994537529028969673892219942890450673775686723796447426499992408906925932997877153840963589112457162659251504605052055873539455901342837594122253617230865762990874143517366494937208712674448814425907239043914680846599864655178852370835949237552840605099523402084110278195832706870170982709858644270081093349627422104032586582104384010073340480146472794205325311207992824787879207006410162266865848842090854301581098463891064968381947351147089523928692655302354238160051660643454392507232373766191953457937627269738423491131366450612958442747585817738771744995155084320866597421418270516974441101271889721829817770900949538204937323523116207716768000962968167347440116514994233117825592892806554033722640753274616824281946701074656898417702608593718666252416809985667625228655465954989045015895451198667439662363160638222926424622322730593264492263739927677738097825180849183495049374880767932680993475021267757149269628873861247623858144615077259218834349053085569022141783127936335624975995004027259610631114204124795117448661907455598566655553044146973724245949408648894873714209156907355396427391199156518771829286146678463678171998531136620510759889918108342656917147292410721842892135208437873914379036720641330660848096198033316310920927770738319758558249914036906968721360517244672506396851876242405205124175883441268936212858092697207319833294919280416017002278266527665119129150371233133118540802652494819683642866574264836908168829763397202254076929798970890334123967513297761823637441311902553111503056599284852242931427054429890536974765036122668319976500522935790930097519212205048871426038543421898416525407128335322742236000244268553908224800267789131279861885420813417489451666196350582597886605533655496087910614241813483057999678439862168446678537830374526068850673825958468560587247343990007519432152569212948009498275991372205331970105791117475798217223576929853486942855863104649826508113389466240957451551901327680246745500994467118155911769376827888508084394902748753335449254514503943821754824217771476380300964494722501100394712238682091829305917826891109667431737376642953883322837696788036984527997168603628568577151697199403160714472230263286092639954271310111164978325255862564712620106898017492446767911734667358100428985365379304875464938129118450280150152187551814613820880232902159591659061403764426485335010431518170182191780046104761325762496382777595043436788654285499839882227093329669141442266998252263182581979036236852191821503311463154177327641217285782668224841822073562526739109826604790333927021988756246635666784864223405443520784461344476265461729279303022298586054820469032208297523437847660311622329131098649472493939339922996537918801024443320095558268616559547565769533698207379494985736172933464148565057286312666659088754937518148452630082860647642840934380502002143785311542579228105645692825926155685049921731404781564292684528650488999774130873537402550893725662228501589796132007403852678730905204933712425984430515795662378909818462985424358097008642613539049742388891572354929400867480103780187496332838127606533219898848467597496812827426036608113898134952989291324292858196132298805891948433462346576133516798553875943308400332311452241057389899946505591879867968604642962904786542691196441119804760357574038780415127397411053487357776055022285595890000548560741177351206562547322880191537168910908197902326184936450385722418537095523871420971594888231024895108268660929257455255133204729466268195840503800781476693402888850810987878839411278312191503169345709338993347066420105667802141885886502621185877856947993033004483853705485816610351733585330154342947983729226933788713222380773454663944436231433865893992121341771737392196601488783756095067482141316165180706878527190529852893864313213974063015716146079488203900713253508353384092345392211979687146948465431674144850734046610901710702165386447401161110997829948477330651301878080297406697416837763973225390811315392697487060584144016744358787841338446422868287928938722499147585835651903137865734227783231841189419904707268455922836056316860314089567779002402439667235760553497218591607977035591683813315808748181986765555938252325438890387096800021438360267141251177933687227507485745507138515823443655319013538756564909791129366392165586150889957946620884426092602166940251617694574260314650254365053477466011429614083165008358118664786108589679908687231691100785377706555815097401373217004503931288767483986210788082881955473704360299795754116076753589244564753088107742974297579613461370248794243719443628730640250142871188430494276771526844772633529280550115395915198222376492063887286339041071736001759541375369494249055568815497735318157250083167193193125101870104461872846844744317477334807317472226969920084470114276405112767593659181263067332605099151320902253642623550050126079811779710622869368602331369736775530813560200460879770690774304516405161428601171522240087411463998006719568072233187352867565699689936908803701462312030683582316487784893921531584800512680399878780188981394970333807051046096057799340566913413153591620277698385256035901277078530372681024367826054843424247223364469764305893934396168254484722800051764237306455066661574219436118773347565505532973048651601072405241205349760653634901295821575428448227389378613247413298340735640276082884259689590263167625272182805139721228849688749136637814290566462068634449355251362837405978176139346438246145707656358939334209014395425957904298862043975502541325595373147465142909494255501479662998207366169653316544282596315381361576793417519354716468920027969606883488608884634883023450807911329738219430670059941872019617676135166936541918259091077216740743436023896354109662878199624810044896318762725761449189810177252648907522794121975354207555483022931475461893942800544807294714850534348619535697445366452258192350524451825473216320245843378327573319880437350319530426793945419969897955884965589492728801513969557817258534618425070076488579074310309168061571688192883410383464941456506252756565816648178788149968730822095360648825329129431164980060021426828648633675868010290467562881704813413372067571288912023018853418705084211965699676268943168769209067581420463973807995976463403281121381832085596101381780154910285765368773674295141033113057501239450474119386811624601529410201691881358190330148918754245684219850397256848251352261985303713061832875094948490616860012943080179820832942235772428305750413609008681199528158926795400274233827266074233023843543540992410515676463006789795662910209563291340805794379551334554199031055873029313221460225671348739169446846470704218410650275815247055160846409147976171521569512998804955758450322402255439712217446303384590257826211042482849624397805387023273134938495857163810243833785664511734673917515004086180618635363557534703754024027199920898400529338304045479682886446947665552561766836478613933701486890679197022340246973533913650215731906265248935851753321936062635087921918857326851888202940194464424486760400845982205845815712641526165815309110623297517271761439234858719773328403670173846074461359325156942395615172160631063164043871268434344252208091366800629415595983041782007760324741402543213817086020118773257091761068745122372908725821897466861150337153493195866692422072684472735037594822592068337656592394365958768474409584488957230290849753780605875052823472723739806259800542335195992820456668392093135610983333475549498380828728178559796409844796387590662428918753006000554562889842585050245480512476209123459669947895891664311540361109509545430101295517527135683754501719421371005678161989863839763887623711131814085586374307329075774256307563160321213175592488713257291654289563031887739269365655265608462608923586413069072320477779855574105194094426280193991173156901273703070640495642124388374756355171495825249473815690039223461542028206837893826403088250933051222960918433582374826763397653174642842871191189750286748091482859826075283729884130026805529256304919642365200391611925288540637193319580789186040950485709184381881442601286037216193916327098518416063430523024537337329483891821510998529046692671161954231823586421016318549233810354119636240884517312940085223679748781661841361883710590961126628744625427902430977801321500630129456619489746610539099206566388703162579952644114477110378488343564185685034714457637687159498493983478079719839834707396080547625055555354061107372785591081289036134874870559636426165207893418325735046524161399256961590426303788437050065183984736879680475388361746941417837159742450905348558072072233835806243517376381834378172872987959488245642131398082562106410477486079128175602240068639439940644480308719904574644007263575213881081287863905666134508834971994139007840739916090193496277076536278658963166545345836986145415085650718320198837932353806174416515773039889260797733682710630874221948023267814268368740850878359837527627749022718862836879941754311276209535203335885689330461195058279849179258418768085444745610919290609354757151809742995690995568526337080010315166912436398280915198392740174149693984128993107162348732586896522157182740545441693603519927052057636614412382586029531255560380099371475143318144536484993735598740525426337570187255489262997689009100241783419198302111590186057870602785833097929573705452384470130238182206610851550806798439593662060574374507423882478681222165173211435837095044727815826774820781985720539829267882162285077001077421990271013375623057721327305114130245796939938885633735312142851009474975224267089757035033217055770179757874148551002775683545505417387947022347936520390099784343936251445889666667644725582768500850289188363841770876885423959591282903446402699175997059799656199336463191557421441501158601142341601809863418459587044887407533246511630251168729594341653542329829334536292253718794223278120340561046697651338885988393470392391997660909721865091760862778675830582428258206086397827349867654010824813545025804088444363343824723922951748421527590375784409198517104068091394102593126476342274048714432556485191057238032489096108182650027871313695843648502032461036372076326417506407909162973425521017180299782044488493827563622254658501665141012104767745384358938019955675180761206278598422706132117815653684908993083380674133433149032779375495667320617507808623826964336811349295457055549094484625473564549630611296620570328759931636661062574902846075680079955226964183076902353440600340641135606500612869184844087416302372257938330480775154508469556507700604001819804006911612742422569955551295613365880611849452707940263269263800356973590731047305982122861061344207069072637476605813359372757862332075818379253561504049719338591196205088897294008696166598420681964221253826936914752527859967151680953039020335335740301747519214270027129496446140037137319868642472109268781473368732161252483481898278941239699822713646024629685219903544299204456608841322362226164308999250587641600710710164949665169177679483005479074508939212376603873316949728534302344971701453364377996439634038476761481934976652906031707339647386720132833493047122795799322101685759932888028072042000329022105990977158629190032605701793572735732498379662765222564623684289053100651539506788004956401948132857277257715734053603304112508779860852663011411239675478246184501655674638696609221853916912218239737391322459562383111202964858502898768337890036799819654388847009180068320434208330847366058123920021338605561560895133615800347323188194857771006735446235542570537734397714833636904809374343659759887576472955586374540458336632421046119818762027549044076056057650424114843362779043048914761935413551521664646990087193580631667470572151357657316391654699499609274835529061452372560151393546142448517379541674028313744628737917336581474557937739238250478627124495736311098327921073929622631649483464871385242979193932081057128549673902600633576659326593226912277692751943689607969592646266159830433191849773521606571859674664367714795694476573099889360737246662574464098485565934631910658304452870890052258076506429075112104211668487393202093194747129312563944451669395827436665913399314925780638605637455766705699067813362263095184367649923450103785809855417248338546667661110074664706860030877628575619189306120586381375400744417484859262956981867112564042291208126665485260004013372959803200361801374089787295184297974885202276635986118399813204217425928196142174694877051635371998611703766917180389051648096973946467368700204195130150699615766715118013182486386906659257252527601812223104265972788413507675230328040275093710804234867199922027886479115283564520690050439391117188814478582903954424540766218576609978196268224587254381672411042042255028484624398832094982664802633060932389832887983285583783074227531515869053628202152837560533196328364107768039093886766426810243157577823567425578377147150671489504452170826119742257545230287428942666519584288250172035551201126971644385875770113763882355172567452248105487974627668974941751939154996858057207807076379204490534575647193156632905020285573155840858378155650511031848713029327945992018919269228836532175782821728975328230158500589734710015612140157978682482955387440596473472579617874812122089739798659186032434522198361999527129875030735223445641617665918121335335359250813509390979026396689912426112261593904121553587659500912972657595151885443758162260620380860047471193618688755588306016323444137303146835760123562319993907747928150371373269499355509141899242587383694572766933260155501830637897005221306197675842973079888266533978403657196785189028731672609850240870088198147559823295568553736926868815927391639374007577955302371685713676705902130196201447904800669417931324006374861532989652026962473493538394159876898319419895963183558665906660780906676916697207339383102310612783902817310669755960276791407455113056900732136012657114457117053998149153472759386891799183839329328906118944943766189011167053993016189820059639672321478379186903315536804920457976400191593160361700627072898500878236113689233287393558483891512367124243894414858235259424349758294897134784072090410971692541932769581964038605141369684150516913106798183194326439421090443754407032910988390964690177279837490701711905172145664287360388535687668683759649448646344574731980234680696648851353294624908194497060419196217577795313533280199711840971832565649116889555092317105558160066157508042624632546420271605857549452745763379211453144057068138269819681458815671013672675104169600624358448229889629661301585652079651889296900896604110414890425959299399104016875083715251436141052386294259501335121810095858547089390894762199255913886585589681626201452036937489305033512800377799046743996915676856491125702588879652060509971695457905533697991101427073699256734411567734875778368018780513320804318417534338765746351438825344856191602264365077010766752011241099621808747821694958748321271604665325643120905734625787383981705900035255554712596805334084467972940132883734444887432253668354815880714220197569696986201980772113724346184349251033879259651766504907441734549811381808171126331815945419278892124333433584455561722922160174581233318687404205400349795556371557408341443116603395141608176572768116266015643259991103237122675685009655824420253811551311322281094839988018379901616811827904982721451592928403965814874107126809185974255381520365769368724305052244553474094805798399663059875317925567042999590778813061387437734961522248243564112688580812193479776683477995213226127973961863654524093934757709320284214728434413678555219419193074175284148241898151778050412191940241656137385126173744109301089215623013331855784039135334265462806385903572324528265108391224252019849087956619376243415646861145003436589388263681595384621615464415208880419405010112124033050074366764098669523478573644633022414682793746474857081408288037286750447442391502603065289761417652051939541386854809747468562338732189749558396115145544512850621445286963013183745918726993440395272077136142171756478676041303400732479619122020805215916104087515871577160960332377258781139531733957258142117066381785698225916525064862876305716796418291370396953565926937480427107546370201823184073260170395064559373777624627495020932837528732940603790254642075143008478296017219406381838884916519835944221634611376010891615393303177634508299766500668927987057750569125862927364991395395293289106419933388816806906841796157411331501145968480761095170163973129536505015912758040424114847351567647665857837499757364961026895366543907010114686693460971545913206202937568446251637147496608465281653611100824166118153371145306032919050822276042950434438768124444873654874924047382467111038366683560646185110349692301310811499232161020712338322309648757545940060463440812951929459014228466258168259626814911227181952539030722112936592447576694350749137072162162569893899180417217517452306860368886303571432529042321501522946616552537580270236441305727449817534036735529337019807477439354344759803360601079788086635765986114696429361607806752482545657959993782264102335594972099436858843221099642289590979796034330910146382418103033054309589564840292600514515163808253496414702796336886472242856702702336576225461116851250669023853886752710225710103719292107872235530648293842124305689204631313719340411689367805293664849493753329617282752168653624157762193618662048797913660819012572819145115033320513646333237071330839792320688405080386265425663105627806829428184670336552869970059016170154441639712110723336512918142557076257500895345286908477962152207340698215527550821798122113305212742401378112285988003750822438243999272791991374902305934565507897259537272432096136946420228484246464733135773607792213863232736625299129569146285059636402741563292457699290487426973303907368610281497010363980315371832786563424347082056855328458849166585173659214197461500788678739359182792284637453485957748455212397575226294296748479552874533005818756837770410395169760856960532473175484527211687526605747331571847095745407452397545294051563041487941550741487949079262520649837016711265944958946724244275104323816298053820501862705150508091281969431621343171969341783692848042027073051907455469212335532025114824560635609193561281216649685323255274207314122262787337185337766013911843789289186688442788697620586391236275010240631384646402650944761380187514561881359590639618234795361053528046835450859498448666350399449564537662811275448402363155111180440771451375500981840780231281800030596994387075689850923062556913302191574685846965115954841401971085423016400763314238060620902159245441148773860787213565504884304738246797810213784980983594788928813346310570438659953705432046602937522011250833241792152003045048454142395066028353412847628528593133456333214512976233290402453818815317068659394694778383678458574418299442049307358755394785709100204153518233256557243104833342298955446517065355460938052767842876049342222750822573705386782357155265238034852959896880980173309853726313619463000217172272601983737393043456632542943605951822093829979518804963619807770693355674175688807922754557579173633156375541162315184515166733528913193968946569147502453354816456909107574925914005936430739405607505145271061409937579577895800319635118253216123194802617998530365020769039032835266100276400501865003130399604077020129147188902867213187575016624048834549753663482883732529352491824305844079680908004813833046589058003871110263808510421392403033262792479920414947369581388724757857091293872003739301776659387308046911480675656451930323247660673248202259810466492769555591831444275264360082636220961682393031439511190005450551404841702498859857986766527007807195382258707427738530158279037548802703692168668152711235882026455659409382104451149835966803121973833008113655647533647576477451381286279028188251173281655269574962682035046239262424714029677622034630925102454086413051663572654334917267764336639229252303221336094048956805672492417865160112113371014614280516048849543633801520841156581588790161531238773699516696288092856258787464774765218513209644867637687959798055713111164623391636194191508615907595118402289560892597891980285538082905601497726056289567141067486576188936638260505010673200602438871973023017781225225135818972795151048878401010048129623590580369291817217340503904555264446834671039684099910560066310420843426460950955421021131907896743452759131273260182526658606094634874275834688512035812684101658657246023262675962933552678521275707281608244055088681833943989063225521392346697375331855337128572065575853009594430058524375708614567702319621483711964902835175326393841252046639719118247745989082835337833186342389849192785513548116139469517264916902307209880519705888608366658070903142558803453698865209337770148740845062385281750711108826780041866556114611350194388793577422206077149308831930369688367805390564307350972260493247848480660633191463831153260934820149085346567310101326269578658476784991488296753555617168096992133793138319448554488526232202624562012755797086710663201122237032848113223906680322848859378741985248964276162952336148433679247678462114484762704195605013748049288267969292487586386035240844150783775791223397710484393302735414340865939390466110371356422083589662499406609044477154306899186984260910711378216791499099257427270265175198459247582827165924788340828862126946951374711208972833668595289566250973178940761737751834094743622144364704223297229071828535832964342107193788144594791780571547905943046196457780787814925861972254324997614120512112782547892853952496840032290217268699427378570183328848426417585808603472632618649440630160119296574359945426322391387505797035640404120048280533240560851569724239716265326364186191663273568077738088693855865390375389868835977297924147527233290737150114483203338328434820317811735919787338514518140708968650594233946673148729442816447630424436768806143210378235247185348771966646207868234492352616029646227389090762468067323659703195656561435227060005304646014064801586331962622142554065473356272179104679104545984016174155583406375068789647729526950184479555765907186293266999206096207866368551880318547893800503418972243779693007899285714542299304870807545985143762777103343609868378723341995517666013657532549295915661391766443325561550258037968494687112115260937728713277496004024514220742298385057923067381458325221888369007877564079505616844791940611985896613619954322239726280773125727677475698310846124443590468065178151873930022566881326061717764215984020095792177421085736807795967262633625091115561018415309259747059831930291332526510107490409069394447698102425407486993766267665589663044857987615445407913902748146040017636632253573402178932496874167020215891951203195144828068732332797915694866899537142390214250265357594346786694891228785548599529133933142412039831637190679605694192170331743909382546718977082053461006845889065457680036465312864766921558379680946960873810996327475742086565100334029370867356770399361502448901534889853665389460453717670247577750733721685394969460942395756964549039245237217299068866639847274768543854827015516860202794818340420147130106739523779488502792074529512020047151792681038203759875260247738602251348896870410666800531141327964271702739953741031198828498546648708913723297618183736677653374021953473718118127220494290041601760796374051581382908096592581954175967762953909563600143898312496829596818029274226368334667992108343567884221697388071442090585973069768076186172279892215661471622712980427884710430726381193920556717179845939248480005815325394915794426513610902337215208747942593493968703857786716554835440617766734685199211080060293668689467580361146224099974595857710329011276520061016190562792529806335266635709722462562058643635120995934953164645490227537302562748020037828961559325107216337570481995167715799647727785781557084328054134140463225053308046731467672733558510288661425762327259589685050538595807709157292547413765181199682006722923236524586932888612415373008632950030221845146948316885213144598049471202830493236065045159292338486165646333089002289676288714286242081570057452471431561827464040136639708225077477155330551015096956734080895200161996484711019126241464355621231701199555069450940228617236214629685818713742318525951234622292486615012061169632309236729285315218885569310217668321384182776986382893908756829979652436814849751329358872633272564314911226950833477493808706370893473983672592771773217367705309810818749418421054693161574516833221322332484005309031753967299738690340479120463894419093708932977643783548737843395099520840153374972600758459566090163585167094802216468013898529641393780140187376945980264463381803262902049353801714923906290012013529257230270973856204936863613245542550167250756066259236558006910647206593480675648943402671694501997913011928658597133192416681841262944586335204518700707300357353478815811761393853986245730548369386163155255067941552694038109424277836191301869286949573232710970753520838462604737149430938993944482156634356279377746466703462020330306215784310287642190798984482173496946573408427014797490295526975167659280608700392752999581541406667634789549329523815013413564327627322154597837995799108947968712340143409241130683100721466707344179793136552395213798902764599570266751244904444121114057782944106821151690520787115691028475550221279124051657268346366695339951346834047342467437677874560835753482179944311937988672003840440024238700826446603929844645813520500189502779794909585039971085944906672901018506455078308542357716062213671982480102426979522270483257880781398675176105610694272609822821833351494288850388040283671505162986170646609632950375861399870933766293544402112621590478523891783244538056380800559858431398670588688807259540463823697096634639501242389388047611681069489039961129429383963479326255755438086406358672210689120550667353060029338787450968043233303402365617043610253858016975492979011557874410717560797438873104542003577921820457743150248995905935075526171249478305629390670167344498533623700138867837676684760416183272833646997671179765340378447865169046376283015808955394172401088582209393507713512153915485019265372376540873848525035266845047216241043770993662067415322046219047336729032484034185169580756100040475596906301184591175096901533155096769188151239198127838830484027077797164920258501101136060793093940838286981226606114854854602045552998232422623808332747047940014080478181661800458932475765565851162081280533476768113772506558393650080978389393575369844356169157361453390476292573986082626466185241039581985237873977463622306645561115122050025589929848849775350662329764413165557259013365292045962377181881615842512428638765635450003795169218876190895710251500436349899862577319354353392176586945737732760983228743912651292705637179198094908006751945580261259528348501835805894108343103161645418965336098359248727047485196678809886811195692653238772370061660407250923839592649530897708443922493607093006925520223658559126347698767032884566005989130344593986956092351229310873379031445665441607239414683737643947870094766318381830327026486240896416895145797185912451063944430613212547097626699886345514239977164734397399328457615840825557061173340354088785266085349784056661778018990103347802600718454168939353118546284368115239584695652870709089519273149237244766855766651605545090688378622029179769019249425615713014097650760248232432719478945273684289538338435804690123308379198832247898647811160399606132714403946246354714915788958226088850125440817504077620335059699811511830598717655765797321347218698793187642854761039739511243885257789357100798735454124543298916824190531252967741570406792718903541476843130726230052940831573885577729075395658814835020271008260595748117186207763140349994906907745381796911826862968839154931415443973844826288929383905234543908774091751269534496720705934038130057478275511483557024057952572913665628145419409388447503874122849030331227253027731162693982784041257925135441318610966052376390858506906486056538721421127748324402977919402724414911092738613326860283213350708436267363489655424796887268125418244064935601535632791654848052772338883094938438847562985274203925405760671349456868457812159461328554638722821556959454025208623471378512402152257304091746525676379127184801128351831560095224789245737312227347490347341469595112499967303975377681620362402813481190487760410680143628383570447093942180251085035550545891269084081883471590291852299487854103385173493535045337841742045672882782298187722903885580937072557579821933074558605709233570306717810718735101247930711293897646976429026262860805849403287662917057682260907154146484082205989710259764943910455526190692808280990835827910806276043794978597170010418833140626269520712364337320195789131738422213625807006552317485680376566301016443276704516716720466653377873900831189899791492199302336467074024879159040524060950870277180491504954804911518069255488564850846478873275228222750273381215694252960436505616337964560286320278720196491297581874436596444403846943817070479638255309622856868243762967062066080104337786932424001473528359607731134782485652515052790055534908157165933307571986661906065604100900238618354488255849708735094164818670076391568229749894102066897200790142403420818843981409022456917864155658676928287288080421755670287933710366357653491006361731756754483113931144834180072258001478988429098098341982342409750155263121963624448138492821309072815417996149399401188917300097103308942642841712892724244969469349610530565018614999593056465757106766373498647497793843191358459998028846054567936543764170908618248518470263539055137213519151582970590442332432145771033477778402211168095341334677273376678488857809525234063737868129466009088431146177648810636227499046974061657745244256945650044586519322343757205142804276438701284336149935158458139405238484572806627575356869366406823551275757013571196393861361007241160265389176696033161407512032205064789468055866455143199063415772754370437900333152553604997303991350534800652250984740331913892290102062351902683348701613524758914997013730757712546884343434117441299884496068599739501324930042821593253045450161068516397281274967465465676552741765047205096714057709656341779618461100095219837235302002522493570990270086556861956645100397950192994083348241407320119736116860476115637787202511565187701908837862383270737552309985907181338563911349146199118752741261468902226043176162780234714318390274400972326524003167561042296243531041086176649502324359661837196576357752064553992914334198805076501792214244690821355854522129836857362798981536134289387030918341026395735296631307466244277178072519883503228050827070481365944045380777680745426507795319126849289246993164000213765278158080602599376042957356567628538338835169278890747026792121819629803778308834552964462739775084104410096532599868457330886041657019229562142464876288082553747014251691881124607471552328834406418247216846012872064923687985572956074234984653423296483501934036689383266390806211801209924760272420959433134869824838816084253769167916498841429873376195762822412041562930413210555034097226622681638158469154285245807811973300775637502706696642832912135059161362256236798725877145482888227950359061182385297647056693880848605610583356010108630115390159699180205829526769681733656335124388415148526785688165073112292147176551596915867184021022449179052382079430658424752197389765414920163213266030592335734713392820509727435538320545241863723099376593495870525852291636286793659281731956753651224554172728105616049504706333913087497026358495651488962987004538281944606998001573033796310821189680871742685355482583638733864376304080568304828293574890276910533643843861191896797240713817374668492242933275183440316389189970023705847048651082594435554799418385104302734204769021208370907387939703250236666953037429760359718777297321538060893612554030125686680182275368074663690196733840531450122264610753095319552650563976469490626016133641559734769277389621172706742049917478753461910491617974287512720312090720989506280120263227799084902735071020196970136771309151828824372920005117184524187979415085866523235180665008602302378280530394108704973466900462607633040773347065623005357402920101117724059118284582105192966175114782567181465362645479672553060937730169194623039990739920324433882132685337609932987134464695767015956884326817511825352781646520291745260992365079550249918540377540636595968747716564541413986417022749543684627403569878701124574666124778431318665100701166841672208612983992939645459439424236882136097922683362930483148625352355569903792407214646355972480593138818108672996914973185691795204868490418241146193787454389992141640044544102066123002339907412443942653253758056241792114470992740365615413838012142884868241655139853764999140257502421733008116056471994158788813144060046861011322582191703214015964809315477466958403016080866978202040589604329612310287881464183135546887401901344720764490204872615522993468791878957867838543309001446811084283932017671620763165545982376804773566839917342813658559796407865996477935454319937129749746034010121603972088229115812897428434427822060012248926357377686591783007578391919652566694939692670000784785522223342112696966245460778356975170431999301368911775402892021226879319519916494178979704145275390309131428707903713452970683184049890791172123656796747557809977689267558084950522979040352973479440446621241806330976684141405144708955151456636970653627104997706693376526668575730611249394032675037731520308266818719123898160000491169872434512513930033825893825669778682038260933372322156841425418231435986962549391573228984787997861734973983696769934055174743611407542228680233177392794910455940046046496635131865367180751267857717661890962843767150482696714876316546816486253272983423485418779662234123597274041282487830288914572975314768433728880939476071565265833285699115154121299387212784592844041129639943002722946399879376436910155006417838868028249339553648603093612323939467446611809090727703714059041380995830364275969749603567266261623971758438597688844101648125480595435338817616025634655673410101609548894845880378959336700490452917471051518786664078527069150876552087813437409887273566097486382597901583716752503697410870352887549299611757151423410638031341785357109877504868693024359920171309853465507867799087205933869459446592990072701210001472990437666568845099672476451853472227103343634447288693032305444268089551944924901101605682750928619850091445320237982806094644331411081729232285828608907379071602031981863307425259746847369838466522419065692141509900460139466529466571037817498965532150471869436679912905627065260221640875235599964758518216459102200927360593550108667311055857275811441048679546611746229737295093673605499505380006785865488309623626837871881497575041636347836240526013986043574338889511911111216021506836356658117027008937612345677639334548401849333686885728941072329407131243261572996360699106287962259549021423373864007840673213749433735572972967949236443198273605282357238682420269365318688704999343236982118881723917990925184384255801424142756230877809669258500666625745977014780761093387557647773928910207117834426406189442613980949418778104997834617597973353666624159127401784848212939459618748388878125079602894185945783524331232912678296542298671362992644533277491530777056830634271077744566474695334193172013808188105919836847581485161174633239354164480719635764369454801041982327530041190358119157297253366078862417993716665924679898978485610365097655393291257788662857364043024151475615441622379881716479777899296818455332664341178883925838211389822218269173437895849608512147195317958593694084835733890503823004849789484338293177796545404924006155837832948364060500272682657668631206173212238160809846537539652292532145938575607468110770890978685464175941691467721410729807432971720783680574961869046051243788275417903323306162661778756008940751419793360563585711998123084919295214312133813894670434308689773855973600112129899849457913319161937908204671022928571084107573307271304325951299088554818161994667393011234608067229609311906301620356730352564301884931343328786241754503372589889183393154888979144466767967220122327638720028775614684362574603100376457541892829745861969597739626079629634148256345657244588869653618751595636723845510057745539748019658497701131561083144195386484082529050413352153685997931246470453097462512314538827171955494248801793114905820019785634480733514267338404846007477344017528803477872040429543319245996544933052159665363537795137694934030526853884601730079270814483856519801865124200308241860757792847206036291042360071409080902307916565863021706385700328522112659574943062412656720014226413189584899706890974049019466678914426416129991263468271768344693761480169511075828022779869566072163814279990999586002820676057406972017440859867580375635226847222484237142742652743990481546661644543958088055895427323777997879299383863670124883081641372587281375089903870140224773550586390024468468332373540234756708910664592271580017391149983241001558395911413144523126813113158774076751803288598885851522033603511853718403395118602293605234604930078936626294209440039381739363816632395983654290721077704237592282672407888011275286103741365403205894351748596382985547844911267184386106202236466267760539091790151865739173793447280247960729853406753845137494315528113522794186230540179275476802624224599964637639137234840173815524543514090240282236543284234576223446003047123446181704303000230900807796458682971227367424778881627999449171549533982254435312607846574062941472124328486625256626222688084404140173233078755062294031368923309498590349930135002384028560751073920827161381920597756909639567385826888229313088802209789320656430789054775354610467215826213496219771185834476308983146655076824636923821906897833510679458522964962545795839663619087289390494767351710874880612364630581132379479832492465824785025949467244560957396928932816135866181379940425556679107839427021322673950329212723125312468755738308300836454436354967087858855359704312775154514953742801636273604498292681748545650468599746031165463216580970265529339479491864042549565795801097705886956656639785441994133993293010334871743568491285962531570817045054422696647762983594935835098277490940523516108118573294945540252457337556379739797851068478027393035452975944284964680089755598543300812979221442106852745603772164825826070399011017559331562103307996545929167426028527130089508126753163567057037102867011093694058991800461472284237690911517054493948754273635510461960080056629986051304940869214574049818270142506904320317144443284145041898923521366516555932586071950691098391609715726814586235082302302111300734820715719133835203224079928272201602710244671859820753295058871367667612988563794657758571709431946075911529401805403880700168155073163425483893514817635328739492921858700250901231287950225845670903995945452064086412014188712331481983842994857104859647013320608017357975360241297727116392582416397237523150517164081236722586448809465686174360949714621294046085226154506472001885360586581292325544139959388385107299364610475083466286867282959451029881210495054350957697129183771220647691768643484038381185618137681005985767625430017927180487763163408307017400940936304303643889651644893052925425348425300162325036684937473339208168490964700671660648991575656536679091746642396845122183702714461924849697262649488000763705390834019303834562378280753236994533695215042719570962679562596931683201657364222173225704179806727573676336670031962099283584205653332246519645774301807507153654277251264147660209571298068642036929900203723126287778455317549858997122123249080692988841504740042075333651244820669481488318280772014242938205009674047946743812231156526145372538146500449155808875101697540993917607997217538951096688800526388851246408389694102491965878045917027282048504167135635407346325502025767167124834409562757153710528124248708906734577281721404831272205907980557824669365950327656827821320224769104983985913346395796789532472182433402183640029776818146077780631860587914506978637137246084577472965218000453986225477288216377223312704162267022366427572184881626552377614974605545603061834449695655262011321330818653953707233268644729626220571354146470322721444725113836379585010299833140417426590935291707414364907648842661657982767205183003096206868323153676881128689970559120276974364807158559604597657859109670619528726087393903675863112607176098915622452626101843352684063714541931188335462638074257370773351327403771697751671009071094199289515302659897344812704240014915584253273123389842101809252353353119495287845058488307805751426755407726981703888341429434018471539498340165131585457695048984700215190380571827782661448844187727500497373454114846629500365358653364045056895229240717128400475789552195923714496917999671937280821027199915124375911775778861829639805984361367189630569005481542491072714123976484476738588586973913838883199390090139468264599809316875727511269375225539507580141324009464613433430086738234649114373519808346006841067529228858649602948590034279312778383255678920542275969037126736118607238365408407193500537960807547614681928171372487943854794392168182942543853140400470059832407697420881509534436701339967666664532865501706336422165756523409621443669067810669924074257027463799515257301072299853363762723332167550054888197514944618422397148420893186539139990473841079075473655251524831511217969890891151914724270255638364272238643004017614777881818890201863813730124771914292532392200065586195555840452827018541475649170565332332736465997830716457847288995597702335056763297067916945928504414195209369203087617948575433373517268070082965822609378598441891668151130485538315272579500720118015994103384340459737943163293501523271338849249014507053992620131655470223610612199739364179646129575000517486395740549701688508965434927825192789795175030135220612746174623544592048735784959275110975552273464233254533449510862045909145469526621346710436604288570368401603632134205684310478465000026262889917040737428193478652895879805937154246368573683553223272389442357309381622035103928272334424143235417634648181209132044953751920175408787775382691111091708354333375850648165546965279547309437905541426451978613573541211879817181089418466911961110910456252843596596267757737603508979250489744429624350227302133512301763888503320850006370144542698919824963293571215790648521934398792606768161876511820809958399364467166058069596969630516442222038636385733461582243919575499099934277001459170055969452536238923243658583479171675243461203737806098858600403235563806213382901506942070529961236633570918617573178612737117038320612795955078831715516958785811942846227542160975769726908812472164066407812427993599155064808920159815922510495925276402796188482152418521520247940108101620779911407388132623894924945852651832271667577262877383844514144624486107350639134152177216681371457740014488670857082693841656681058679622416079018056089002620497121129944976040038928758635356703340362482546877412723338754473384625333500362049407631712555654602811837578930193447957242291408225039341559871587266416337855521244047469628444394338059154348167406372057854978531448792302682660635232199316697318587723559252224766986225293931532414025074701859557478088256492540294122275531572795035706949085370373585971934310206994013454101462952804080151920010254167850171930427878959319796724913311860820527009136240063024250688800618210771323961146567280180159636496988921432186370120913779967718840288677185969020230077919439538185305819876133602934084841179026559773765388271150260940286116401877670005212700820598299223264580331146996248865184099699315993700277980657062000748249161683582780897383641429078037552313800855583461613058629869460240490178304682424339564227557427096942237564972407607821195935788981354043189529591467128864616734503253787833554093266522850926820856917156229374940914789735386477202769545577240871187418056177090849606972852074465908124790367897350014468565056697001123632971286739950506974831853885994380195510920836257606104441189345351157028290920949333043958505635810767365448985970838889851295413774073415726561456704240836759507882034259616312765869167526280807224958060762891826223109201662102280368600670631759961753310822624919516498282657318355176894176267303727148811844052716665332207112229146308173760210521148939533112829045102826606012737757829130943065903914083838322162349592218428807999858005754207952130083855729536544185017773565499455543824283686405805941579158406680792327347260281231677642118796640289646134444975473119937679633463775973775235397604539313993877200420619346231929795665497837959301895421234264353374046026161158686960219658978291570360837912124094875935555404785902852878288975611292603604693770735358637192569308161937678048502993406634890828589631912837833430364112296273363032603562735854932226387216446132380765348498167786754420151936724901573634254530376236088160527372310882198643989787061267702461819527050590993053549364401305459431592021128749002768212594627946317286892172649384310606081974102428911876667669509368116946170763554196273886811682833255246374015476756828574832430186606665413279138752763638156587096037882010435524707223523495576909040172645984569986599738181939940435800478468011039876789148462351637211226907020153590739125445575321282260391877717071831355525674766182322276843361699450649540697112667893531220167157890441280471200723825993372991422756626514779758624696531137195700661327094577312542369555150584057273197772567594106084513262325965604021676669347477225681856857639314318907448489822328628876992078714404331596179832960481547431838875071099655181824604957371459987945792726773479003838561662339431468800671827474253181952019873726136681212146259298507730643286244703614880854160712690475977892864556489372946214426050296341989635473173132973043554800518265709330265107002796715189483914984633483053961540528246993727564961678859683870488701466763874892681932378554918785333143606838586732363584696601292569429938619869081043661752398971479082078257529225537546020807050924359326460398598342852937699602933109741786882159633348758869302410520722020865953155138082860067173752663698377493692443874501045642675261025148557977649199221725752661098492849873043223530502564333273898907347610069270190300996906401033677976538699908820112415106782010081502217081708453751222076712991777406118907407815008021845603586822368992669654809736849691163789915965859015987513027410652593041188075670663457116914580577412418528779997218999741226183471819042425581479921616732475455218803169075529941929905946274380332591615948248154128741005889078317019131630057007640007484567611058864135672002116087432596536801976666024639085212655691233411811861592595058935453740032648320192025328900919322823974239123682345644240148288267805893836618525296421128893261227983741675953743928427570183014979019134986260419307626452597797633837049862230115201472199128462025913586145127630548383193037569352380755768427693131746497407321097615009917656777947038826113088126034434549692623682724537426100333550884734061995011781768413263633521156220389934738920692217295277275546552806866792726272355282984661512805209883220202712735979592141798334608615077690159929943498113072739670134379049635141136533186175193312497715660626854511315326146932042687607141013838701823122364775441288724752043194203341642103842974926107896489482963269257066906214292011098788389626248793272237363126315809276437401814588928387888071254210092390117588542811873887145487734254694016216245952388904804446714520792097056230425159784263365539358674208423124934932951951421646251324867263304880725013857412279744782743277770635545962215491024245142609500876971663916365507826031839341741099112093888307532472764131076362649128251273058963752377209960551144790307456632451149212160646573143403345720002742182750588687858636518683281457452799262075364744261492496139171283948338997982453937952919911817168343204644562529757018296579586299775205365604092455176591195185883361319384570898250613491290617414177331832990427241504623433207138224511738962531536458938763887611765622984463616628492951034179910750659203201097327744957806795751576127043896056782291310226844789529020224646423354726732211177239080127088631661124850933008816952182965664687132081251480018638005352243835859413428183155471015299817712584470265116445371263348830519037409410363434890646638557304967008981127002749588927495951611158346019418870111391516452789121682020954471980215494272601330378851940000769281776793938381506364085390292593691476898488319938219200446270380540557295495978049880539453756012571355784080768847104707409929501760600301648413982360591099042674006672657704499233999992042767205020953661509952626070238879955727187514200484187230882570343790081251763503579003612969171090224165823642554430674925404560878610250053999454688080410219203223500409197714220891851976905849976083027027905304582136460788546511934764798196688463606924700297374047256250296049203560030858902488733439482986411702435935922868898626114268309620272495260027828470621608210690700656615407108223625680275000036585444364555699150417596614974455795151440864319013015446038866912339909044743041683902325883977231836845547034024649398231062446693603140439242321461484996304006131825919707086965796345137441718100969761477464565730056509026721341548251391656585911854816319780683834069052008193466928756567772773575311013056922179706231254064795366783542421075291292809945899339849656923031720780151768282624938308699886604859788146469880455142141814580376274640487805415188239201591219640054360931048801832132932939604079879953092401697700523025892605482644920299832285453914284819762711987522957116151443851297237258743672311527393449371505723848057856732180842248176617595066890349543789070837205849396285174631520335018206003580911917897523148457192413140690312468009604758917667966207552554676824177769902365072096457856911330602066299119564619829589924807810358516886856135051138287791006301176434185848760430575374502740270113906553765812177486937071115066447562062638731640959321322156252613917619782605906974949640599221404681963646674300918376167037695809485536111218077264135456258532806812891567551643132977754226186902297382747074868248128067976226053319307321476622945593968476780070539908277632796392959699103557973329260668805836463419888032325178663341101966851340459343378268449331560210680605344429015279189600078469714794118772554447126047231674332332971351268958043858053053579440311767945176161818524290900137192426656081267499088276437995449247493128631284417302675479791734391930899206710072529121172670759176621035415762728858854239656709077371813733170759633216726887596508491904184062015192212731966561045610370018758466792963733516228734686169059617865883680242734082010852066644740691522977235262481065623990656763563745681952227067547121760767648680321321251743859170775399815393506753050969150613688698223133717467172313456697248447871396377531128611100000290476509599553924365869354655873201385123509743005522582569287164695096966526616411814432131589808536232768409880440492479440257553768136428631754251277007380272462178398133595516070652680904121904236735828639107503827783471812843376829513442539706716065734319584264686009556814036391341645523309751238144485069800237459777636853668946791357822616983523255535992809284758669248698108694142522596364306130112943301019790400009013993200144644056717603213051505195204977846230024270742969133610468018798050234938660330697271149571411344528790956743727911544500362397382002242922377259918862448125972622700550145306021587065703734788464402917473853394878631365186827301708827402874742278576240463031378416992476095923020761213357951404109733151482057757517427831916627202599675065985808809604562361230972489631030336696551602527664649977451401062399100846262560213493016279478524858983405460957785120976724302832191504026184352586680546559421929173256698254398189813322229077574492493084420251073173216524884596091128320890885504008582428363289512119592503682837742446556318041005478149379486230919068185258516473077784043566012465846029021824041241382092990086868313007991717244232119905187856658127950004359457050172813533563634372534078003004015060086239949503558414206960771049481278001902912979189490259503641468308296120421910293233188432939777377118341643424662266074405552718541329858145710473940715951427773056564534935481461950237199147072651036995506180081419483857065691300320838849534845017355760831967733772240126805543241788968012655183929518836821526260374298610030217935496820192654698613220904953566097171548970293479147998301694907180497140997799399255460898125941214781546908020256220280571413043962068872223901792790793019678674026818699604208680825690643210523700753881949990834441930977251352304103287454082112115586190814958361052023035415246414044769235528908376031250600275666942102876840021074956680336008651247139977695454926153750792429398854778500235767897393850052286809980631294944163890076081599171118289243972373148020019629888122018154487500326974528660469933181195157338731099565826949179457168796524501973588025166402428385102200179520013245185136064408151360555456917744676445584427883255855261152660920130385261966215825830635413908143169272087211446486207714984638840250722369267499613524969416663559645304585350794158741751697726571661169854390767160958491501830505666731441561947435424382804568392787101786982635092567112203106000270713193335665040797852436367551953352102300144423277480142275964050097497403103714301986185681026235317266828126635697783066462481839373005006268677844016417869011527161011819979122734141898508696103182895027912054391688995748896024938103535756402481011149095215280962940604051984844490794973258902734510243193424123847405238081332708106732085837001459227101478013528788313976539184163338695146157195306769801669029507214906736966179395081799422008930773967140095535002041017862687856061953851919808817818334235541783014466058788772550898483264280489539297757641945462567505544689431118562152835690770453996566583035968630627399901129204349349196361790179378893006927293876651407343708713411527833814300931695026866483869397125934624951200369386752485111895977906260476495223934737361720810007403790054620913154968305555271716948710765284904707634149548467662731836576547773153397854319301937948850476502827268270516707448480990687010806159842132484122037088595383298722719395850625431255207455081708747214303664891952310091517312637423298746564880143827724644079896773712324736661233263322818997941700126772920093523756918376618294799467776168212727406075456855137670214023992239798903269856159678848556415822739761507374256812990901660405984591846661717486757709143547563017841925673985236363823791021721399603630253065908035447293770369284281160237855159605388424607398023779365811820774745892199978241350432970293632427860879905362570196241455511829866122484389745390785330494504204212583750710402295165246838184895984015957882968071466245923224624529704222451511900741149120710790694886965338462151027162170237793036438524586369734033136608558712921293414397305039994032796663421636351748943925041302212357265561968422970484760833241073012943364192936524439644431184882378954591833583367790756135455964841262215316741239933331331108633380191043717232873790008723962599237485412771024242990823820057075853364883521203644860953398309053124978230601804731151916041515765560869405641734889763570400232133804584095674375682606104139874199127434791963101621838682548272802375719454864767684242010848991489567896891824825035304662027811514236605467450571021990319230080916190026290416117086750649112624410808921006860491301591378904516293177036891478444737418969451053378586312595186633444962990937355787908095495267986006214521899406860233260503681930540225460839700621484629986886280009350574229853765868707789652572657017164033427685362860733401355960605894240434183207904183151771548960151472281287469064579906116541568930005234266536440538828440409756980786298978596248073609294603607903418792054408729676111018036741486814703905406729049013656872054989782586491631960715780574552778487076075160616058636380107683056885695252410027650510669484666246284195500317619111695990618278446473931358325572054536481530595518832583479726893540803720474484039608158941324257681111363545498984852213344260703764183857923596347766865746606293087645618463940500149057360948440852835177924253597644097229357588289776112168550674894400531651326544771383320966550982880600383088814518037563834043500807521815665451378972015457278330354382902651016098137724142541788515208926724979975315141083589707227764085242277738984705535430523276887027935397782470798130616057093575731392040079163504059734366315442560479763344704311497414002569517760614197362470609530631765042049421752513813554824613684830302045730679580246903246728843623401773065246544878299838850815710848344648074438892872158207829247336472178563142540856440432099794912440158064940048676446556914241138722234734086322403975950416301554636131465386817184681327928516250100540008079583880758686971105287844116752808368765476597163472562409977532613469496256014443847202667959204356461732645105504122650641485231274292155999294900465884620052718197888846347082823323279912605573412859071208139808817198842400694474126532569138367334133003471761790361443192019247362427117548313259349186243839593842858739084303892932592622659825474226721183420284432795889998366111866566381438025001199086885537824867095275314852800001723969670724120288659284828129446245110091744289465051948795031698586108025944899432161531953649677006033254710745910202522912601233255779370604751063441964252134489465372502920088168325618117027524916142509471629981428880611860329475935524632170530830030828581639996163746358217450019788888568867756014918133872731905121731861130624648635547703941460129514203775954041793536568223264658967367613368477205914981408654630541511678902739921644975285861546570777580171965815195859299085016687221879598409470514724639214667436626179295036814086759015466343367833084812949493978968718109728488951725523717596657960924911873577336903470735040188839684703146785570562523190928221228729518786356320086084161940121640024181268464718969954281260292408761355404080195369339177765471775629008511633749353674613010279816710419680630758535175675099997219060090689709085086055378758757739028243698416697898797150107871295412996105525901133404032351407690086248302580362779056304703731339714659136774202518611525877787493900493457742572868128063296536133335829206452975860901948263676544083313469110756849775436156473351652950604141754528258445898247147258641099937611550376293503930661256926641088587320471341330737191386296457130408937251151025527190934404846150330303400329386609718979198969302738977419188988017205981922299402704791573698140008599174583391035244718157359281239348902186350809016107216792127996483898520771478810012804763105299068572372536908650423416570212121082099060039282577948186946113174380366519470583055151404499787427459100644725546166995340946621605162202251230483358387745689863083295134724700433206230789145069327145010876433778752073594174184752708994315784855615741172156718569319044304414196639708694466709878715156741263967690509230600954143999204613824923251136341171131598684972484896797551938876516274552953589289607840039099212282898005177494094208766674426793816054364840952959139265605450034875219929422332295494870691024722552893673490258932628969709051571660849729750147299100274232799193146597508384317715545781413587388481940202941811031961439201580286728006161581687282304416256480863218556400955211936665214357345297503233459021262283765783104419279565527341468417759553829334773142139226825794215587230783820398720150111212570958441480141566570334879932724141303541996785915052023516538511143313149759461370193934826265058906730550165036623559934310106797793912045199704193507579155458846001852591518894503838628151929262282932035926654994533645667892621648311978714882991173499243035657221847560470645708113574646670292878685993585463623203676076228521881911411158112536342964956615961582923736838552420884343404326197290491269541045741929333143265270550411731404003478328037988991678057796548989779793391094092456354592791598172302122721401402044091571723497748090211091029607061890650034392988167537051446650068050599717499520377658643028675233705937723794737687256941777146641592547355281993989703040785148768006269900550158154755450874682577262455558610021364691049850146749357441761376571693660148495994240256071002122427593501849446799782740361176297642857533417877522500366340381574907601065562101140816999058740700969072500989362680309682688882103608282107513023242323329195528584533906326195254197903927274676998188566099828167016518566675663971168630356317757877745301645242335164976579412871238513100600085222251878082993039318524107263100876164328512564463742857798826825572051317826508830215786899228184368753404166808826896829996008475767146270597312252214351991237257489003308496260789451662168828847893778885602594216894441467812497313409414321512000421921293023992063362425070481454238885146026496744324049093258220727593612008472800843244267444962579144421993300596684987783271756305011561821973587378267340459100724079112757886613314653164852252424739881219683235326000911823056716074997431936400227592793446599724304062973931738257603415230052418754687644142788085396919995605158830948251366037651954685766830229842342412975998038786169452251967766800549111437939451205651933244703601385830279755337346511327252262830187042472795125620307239455549853223694622718390546099442533658143753341725013192741159278959861373266738976767873708351885539251982158129333273894018901611136429421099618943680895252583726381316207478232536507236067114951489275803401131366723436450815769401083895884273302091090427127562196946640278720261641246431988577324351231499195992703286551509749584610309128340012054408186791017113966712779382269823617080950691951967727066101685959315607584498601190488222276537989253755038606625646136151527005882572795501924987697757137027413994752356786868450597939361130137500204038594307986413241365755695114589857261113960241975043504896536647522826883500397588188964133535820141295837352878469877386001035813288537872557100589540447627848891126619389878321316531098356901620234371323632948677420564789596176300270429209647053727572366393153841437611970729948320188298222158675949537546057949148878406085231363713925219709431484401327213076802050538084231105535884923478464100355203745183645185403820833565396060388366297268610807382188009787464651370174959906362028199261970759772283325495325500829184151703033518405974559024922213705541710957493385375384471923287642500733735287843328109885426528598057686262718598157877303702789108920438413600452928594112451063100726281425764411051107037534714371428867571302358717595051510794053539002550995149782223512696645945335158895379106560411087345640703914100030556221213223007096266100917189682705457906759025389212224936408211177390997034481401319531727863288100796969698904258768944356130372814899991385948866235309680280040064931122114447578484908129815663165932096058937209199740916311016756423079456229550801808120396281261915170942226383759352151835772957415029127632988468152330924118811928199840284896551957678663955529941832660614922932756812831832714686684422312522746281646532432487734208164243156935939881989471854317778166486176472875232811124993453773993110968587582961459612894284345684913054287721063565533352068083980426715642149331402902245557937477968172070872634599491505127690733553686917766369348105086011656991142287468165409885521923883100542686418729755616651434715495627422971723081273190984422256155233947095352192209851013809863326026048859060604777249293114649159976596848687941658960421382069810721704584287470986623142298232285595243221176756590393103965035189722540041544551736102484663416800424245399277666029071837694552307979673153266774371270815922435758721835627733042670781195332850207524981083630354936778229906062652767711375223151841347573909033724386328323926644078677127634305095539070172202291930208581344031083395925646548493726830737265606185378454786331044414215407909137890292597866535344353075653976002990421919896458606419137507181297899372217681249079534668403161993748904658355505124672734813897605350485333975659385177957279431263637985150056909126659841072556153597445988793345216191322496181861182594801276439728048812961411479574403276150086568221096867556480286491905892539432929586898726324155822324484820995172747994636584632948636801825899197311666099517874726905681939514781890328883283773755459305513308268387212806868910833195265386883347079875473153625942084506047055005096871028818589453853666234665967657114569799837039997283860377552508262739551939091227260466259000591064935083090369840543762484914943841790281575167845847320115021781674063260119674975399535657735161189587668957761600260551333057155479577812658862250638052761979535972816100797845567245530696925285873628555314736979629236917781241138538572467624862928458133854396940500981626130238970268486600685076572037396614189875511727020884702766544520922898348423123464920615257858889355806470245050815626745072379997622462771056758024207088345483225633620542026399152743328418009683476642318894871966939426200357999102571059692426246660926361376037406552911938551871291617907737486292361229034017400637806519779043691471669947441061949331433091122124978698091957938694459171917366175831993283344797543474945283115563759111868543944540924593821923197181736249206422027614991176818910169097005516910368582466791765937118122670182564726944571134003505776180308166002597984130269013452778352019471217842985320197218329288678405451394221180178080663487456887899858822420031572451637944029921557700257833839105943288525809441467206183352252602986090020338669923906599098356373218626033333539983957486946583639989812537387502916673965494569425999246064520020415259643967251950233750397792366332667668942043341481484763466525668374885366268731167233445135954174391368999894538446139011496336648200114875543995574850988130216018488934990938867783667594060183238849354837522492975153767627385202362892590593093481738752103773010785954814573617409798558674824848371881871902711486783251852694859236112834023349916080364924101093271547604576944165128863046965466013048891999840699828229842597205575340611049170511761219317661305374943044638204070712996156913210173833967908814588464279970701773545372068517269320410442283342638202059215954009175443174879957372974239604943556667057673076366287953858267137074285304796703360813462478110300135904284244916087122217758400156858794055421510032596641772373112063075296138610965898100634373639857864967591533340855856705720547232357676060797566576618789695817752758987577107846499983948358008127353010521337894168711699484559010690457765696606324254688062252430136057112461927389712180062413660335347135687567925467044981755078240072012098403633539884441746573766623751163987841699032383519439078846819994186413880598126151302524530288817324655683981394371681866089649146260362872972117196736479382849778171745306684302170349802048610149506557729183803205384034156674057972993000531679270258218256796728332279923911434194870756971394962628642944648565681761470745414165778145444345910550531368841462974401485236744912759789380495377927751918859027481075128110116098256929363725680817598765434292135072031380290056326167321739045689812227915455993603235829230087871826423972060392368085892543409713118318484790106582101478157273367628236503116931922997092733490314075431330117076652851258810022388225271432000705052058945792203529225504296572185435431191968993799258907497568601175705110136076709041656927065159256110883019253550927527412921571411833433270837368239536304448940047925412479072246837117610529404946600179116492961264967780225620106823214464882240482040486194418762020890690892305950866247483102538728271428457374659885956841623705396530481602903094602954328785306134862293823986060067594106134741568610507751001499209780489455364412832884999646821527455891923046283924424917249802706459802985740893010703271501660049586469631596387692884271342902375966760684900039068759645821806234133329327808771606833525747099824520319563192740560748643587132017023228617122848740934226413158457790678337040288680714096452971559449623332293251321491578166529889530872946924250632931304062839611779601519377428712797920246992191641170616873626947699235663868093727244136482128071039572134426574390516420522503798781134195245970592704180617179423891228421220011490887413625268854935141494083886938495840185889600209362346080052850267624284752104538687973829809897475791910008481796993838956679305789322413413722029812661470462615774766875971365496048990590827001109593933026506306309873925033837456790177996472357266740888018262007702905848446221548392850739888796526229670817000426145389048637434157691665925956722343139015910176145997039840834736796886215746713021027237940485361073133905683496026634162597907084045837468458754187576641901605208248131053030268308698084017101483893907733363137902022614361771085792527094247208997325015731635323182489037673799622949637530112062789731659717104721097912983850400445169829086988457516074173334439748323819660046752905686469202972300412485307601713035036503403701854634763129861991994545788691637268862412464990639414425428790095770712050301240481264533548650024404786351843293625049808746456208109160002137400075015547428931918115116947724835014336475544095687087389511964117625657602535040406238516411655931986756667091090471514824502281609965648532806197713539861846548829737702571875740356278743956662645072533918150921492292946000024478025179437688755843460850824715224932982266182076753698337247253624701870854291869348976927966059696302456353139195162242615222521339774023109351730742923963048101191130824514677192250859745747296280085569047401365475153112093075491758133193591272230258011659493174455883035750513839057155793075702010887463016026842296217257919984114386394204645821008467073689754777751461632234973722769829342316899197499640111715240656414896531439449216361979085242128381440325746939619151747050723671425704839728152724290002334675468554808718113361935794710682439675766732368818217081774100805791405451738994638903015091334227340037567934129575697231040647677731346351046550465135774483092891907843400717255184352625454867909319972564964898212371048240809963398779040352889164106233576522522505700481341578750995166204568083807861801251774119220694120891233688606270490147588015289316665862441671308116634008931054865542987982502852973847524281873496197745886997260477443223964992197412722885061793879288196147707319167501469238902796023379765413574658036161637846876269535417086839631678658763242060361723988446258162182957221849909095019367444053113559406883908470788141312184480103370360998944483311792134051766662128070378901667208105034861797007627062872174835122437967149268137239161777629370145504362119700505589047059035649306299506258162346855127040252006106225346528627628356532668893239452929788217743925433317708120151816955092094301812511850190728551322475673307996933448661927280917978670300420922307496976044655381735025352291348283750688239395885220516980363659044874283173690690230042958852859980732789403880387247179739990154948307603168733597884663030178297740966081953660119275233425132078578223354004087596641947274943693013453362714690182665830939364228645487584869893605048506424510855483509074030634479516508126926567827324229504258688304990861973039607512545035163981433279696285631039851967862516766190557596068344228384644131400334082853512989650617550188835905797072878652630207730273539257544598150615813462666993409296318849776997693880863849584668116433599344242121816610679723552206525529773024132477647539234849128428197422514489002894837578399358022846827085973580905652406951737870337702590441442044630143583340927128499676439199695304014362068923025083294931810631231437177975286133117713647038524326798752007853781741090876035774654088384967151774508987030664722868255330542721790359956598745437360001754433510513700937567918140682374317111772580729649741699268431482182090313030852185364399527510234436592313146590744559625436444095141921016881996042748678790878288904950845944109597030016716203515165301334328877846529372522790979190007824164826899375129717701185774703162564700677503537690643415022119701433696328570066668521434225795971256342757755126740121047980869464340838698687553286789541879954940123429172787962561844528702491106547847340696245364891213234393034783104989381834884003911189266496634387472805881864330623838559195619349886100745384349405902578287786474581685592592741257975184151775030796691214051683104633641353942615941442182355181073861678196664325159994880495054962958238365822441230047590339952272959398279280104636291564640920685042568287398336009400264820401906894884049319208244033963028390036133008100883369572727750881411727815845065475236546875604191036330758975384238057180054619932010345532029450526326581665210825563800816870084837773887939949735257048130235395867230669065020868643895027764198496978982596724036520911645935761997916552572415076762157535473701010683605696170480146038409748867705619656602853339176044009582503021097114366962679603873584256832820846419877182131270132783710897409210371552528242620931277975614416098849953796077412505524019472862882029099944989137602518337767469319606277149704941077647940320429141577968580087947530271754113362027584610090088970287123536226967203627969053165089917509755795895677842473121302909033301351944108664813651939048468553482354267494637780103626266794028286928706379019363041793850156291444130266400812584277931796291621489002332181121015149117891905908464256999465088207375811277789920207021487224320085204774693374819062905040181745594480380121021228359084962132347731955931003248390426388589108530573022977321516632168968595812373987758354762806134739593301503024772242682704732790676430888388707227805786022550023080454066430887608483366367577960913758328023005281569516728765620367161080285290410814058160881641720357694122055174593402362697155178532151458982600111265553093778585589694099634947442350930992616169851984576755833513516635386199585603154542296301001518378097497901253725007161450149285866726427095251030439309323303219255391432665889372808463622476563068712769137028474285521077013122058050040490034587053973754525946658168031033255131919044741638513199924669374203309220456566226364616186172253142140589735149482404337974936539193303994948790413887783945346108782647178727115901500344107621001191128095553025864912938506840667069290913366178091528343282510354983285686356291897594706814922472827922940137677729647765653180034078677082188438974921606728104073842727313083488219945001999291120933717266621802751326076066896212400747253429165513132894734038950698271667523116697820976953442133262437739990736673580074483611772646313317019802363628567240152710929887755299928024591622336590114516295137369886820657084671744507277478607016893727625158109878675305349574757932615036482379843760711729287045055999624032117815397724566566423425476063846398951114563988785799790006760507500902915927241721576415173616616342876606870183271955178612311369352224390906223017199006669403137556495412334304781297779138160890450754394253645259938793691063684234372630248680706537779802991357927050206175745572703362354384578399614822407435569009671585665641151026731213463466330952620567550868512283663183969594198703820020959766777009122524739482775072660831338817049907132851593618400433334049581882580027827224826339665448687098399221260514731856712634650338708618537380486306240396819460145885335732868631050114930056316381202837546419782261216678427147768145776171582181572310363870791681941568617584076375295077018868041210487270927712163631100311299969610337779447273047689776526674927019579946620925795282115943253528160055025342551457236682648023588265202810459059170674066786032377321194660637573795937983171873095156981696659945904734625015288335907637390798090416417596536442338028562497778609568129072584956353485854401799780596742326097373820179286859118008027749602536970540372563172687788587965441790101567102690465436329290271651894641982819025642740164830859895981334334772935946083447593473077247372526609013977528968312761330043324849605309698197424197004612444092796013088873241274946279505034839484842549893534004351689258531203450225660902006364046661505905712687054022561695091307476220953438375427962239216243561840852946342900298143153619785423438559951970375483330220867568168445598476727219385137259020630905273434655889031242052150616490706965678766057379618635433441576041322777161010185615204270569534022894541847459749275041455392708353240981989838967135381036576665475636620659273692998494540187212019806906571594639521070205696450070145021220642983301973194183976982783913231909125964230841854196809336591226698740540110373849292777791535037385551497425933295198256098529655527439107360482748901199807783641142628141611215973609964862920617866761996890849334986150744572197136839047021608600769695093402870313095171219761501842046875639072905281281368799823458218511887855909493983955941957429524055811748295921376939369036108276974744281409517812723867775192969053080497153321475721390903217286179156008077846393975226909969085260664094505317150000446192218376677997749608371522269165330221798622194912541622523247901218319561002254301780987842479812341046179453150390377098826700461477528308430703935553441601755250597459976727601586428504306945793515163413981786838428753750297595031534251154866024564379985675081608929277832947208053807156282489213750316166532619253839942679953754973281565521446797783218253630269193633328628957158905434659463834914615035918341516869887595327278122996623443166052219394329141358920503222998273710907792043510299082227719460869718617915723792650262287321858553666135615698090399041057342989939308508106583881014698375526366061374848886282246898553045810768396993824473432452699165874090258231965017622793689677070363927842254999762084205265606372923907718915100590029505293549686473828627732808389621317565076720453338354397980921505364824668973638419648047329145440396509876139234994791753705150308433992587671325428771217792699535111733735029437503007602237510923888400436336764892158741494175643918043874788368326520753396736557883718776193989096953352322482329639145988806074046912058601336702814517393482574170826577505889523697069083228558815151209313142927748764897100938402132850620945375770937033652592103233030312028479136598434903787556433418110550842684047074313224035414260053382099633387590946454985171361005850499398826911962357422584132513285766526637176905696969838679829548704316040679333300237555398210235528089930817608297567588689799003907193839277730919253498938196677076447674891784480472785525860825740330108977231933415556500275302164844648379375471631841473073146154940139922070984587552758471241643867353006148172512692576998702259446094519287628823680212189396606462463677285836102286493151618957110124263063475508480530517353240123784261841139697797745878381217764088536991706256163397351260923676456710038342725757272853146597614271492840208246635342608309973927506555057875902175264726873171833054280183849302431944440857233685405256090321535893427907279897038610022323589923963902687480275904415213197717045110683171119205352085017051252868946699283398915172766264569028570978261301482686080157062499742997688816442171147381415795214521497695396494405704600201534456323248216832754564973453023929317104775161361487327367076220129484246383737335053124046427010102674843788141376223754133488899103849554177362165495942629975897156415724891714318845522106386928640087799703687309918026126431801995944590869572481380002024075994243760358935316151107439619581536923288152119040927855593624250714406123519205878278818381956777472782942754444410209019428725209144523490113786185798847016929184076469923583137903705754691619049403159149969550021712202689264611854260042612026351950230523358509098200185757943028018045036148180550144639756237181379418221818698288861382910270547384918620178337265430680569465664746455453672988161117826488732327817122192953191235393315062047992150597583906595624766827547799134450134222162797049034307038556337923317626087297101470630038202328212672625994559761978877548183501940065227942034487288421907246194269091723045412295648517306649117110207313728278960835142009923289099380311155678818119187789371976024445650944682270326933672874284506767661574065380057600008364669060510564981244963574692873499018632175262367823457068975278438851384106653891092607715143921784738404480845385894169386704041929295672111592693494046739217729431494861015694095879720314426404648967263491494382983420131349484525768705718195215911949647466575961370625871561547078950069729420025268344816847672358720430088558293216592008289754273872084479984180642569728195120837738680129114278455273087374757848708443257084765029913700464680009526554814606346028399350386046649310444040973120368356381778687939275534218676082682977892654527260277934454845911732972758163133878166736014203575522054940864277960489556287557000255720030636038071498138168898234751511632146603996421695703731317222619953461198972524442451423432464133059553318218766911881649329907088992331482982759794344393361567543641124709984701084294578486612368895613167121127547770718205108478733177173532448591269973481518008478726047659311910115495419985725810114473297365632124839582211446628274621286307751843329427003051933392034316742519426462162633162621844979396411359538801747481081075369195783812484224136351820443655012042761424178394893682366748238908217700005578120522736410914505958934705779150826713309277008183034894045484001792571699740655525313733166850232042411242491128521310004292684940136862718593675475060932799360800609024412286893003916293076501580470316227405946748786010481102999268810271262886724337845763867930386777831253594008396162211757436513655001096842816865668848708642552934083364694092137335978643125063650825076548351850715200593648606288016407770164950573988158886503546596058807615767752049827259898624384214434129656446742358118155893944040666912390980817629563664419205709570777465726281048910451528143880988171882528594355980092198030901649753448659773061899518754014977933590050501732043694164812197914158157956354928257775056200157733705001740979300951255516737093394975489765857970578950913460373847291648614641983897489893768089357443815056312532344466060937858041105375112908025782633516948106517084650856677929625232048645180224019830949103784919273143163308397773624553090778816571585739682797576994352250821021378577002702149889648788246257602171923700414917580942006985734604618239254678392354343636169501662997905963340939421947142900469316144444726217656050432324097791046677377571422485263849971087448927770843886900424171368825464295443467634734950342152948490074615895062451161953923250061010959296106202013526215821592370503945483065163746855511003412330567889378474268455024241318332844213162110319418764489396029028435564628541049455566253365278832697705138043693225630022420320944128449235775548822738247447830947521960765237581438882715395697658456872367341772368096850915529448601875967265985811570985796416870391750253950370848239600971185430711243976399749257776802657076846925398322108054957059690598615799752109696801865067616638775625978380452924095937966092886879726151220073339618438195498925654809840133372667431042814585641992796353147759016814484475946955793838171052621170331126688334871511218863067051438504991439735944545474351271415597717867690157272591799297776790013852291533039954231946987183255091375630406945689358459824812663750682200482575207795652826673324606047481870757747801457198196637198016597820422651364364878739046571293746620177679298751612040634784899510033237433389066864837748244961309615155374724165187987623382810764238174576551277965089244338261243757676500697281645710704787734668979313826897090592874671498973016269761019528031740837626066304837168199639650692333100770937946794393552754473365067963125224605623679148605069335135150258106962873191770320370113449585270509258254612060877230980875581224373375833514553159360888222467617969401243553412499235967721069994355764080397992019236786989647904929858882249422279303769521781192529033122148516816039030425358426853689817365538307765948563130886290038794451643591942239145312058786560388126604531495128694200568522004053712804506318839967472842287962828775254821578957094955720847251919909534043146175583498597806053359112994353631856373023000741364983681856657539322701420126826361190285556446319493130771553652462368633140449517000310575276410073165050864172643110524161365625190705726929113911476814668789732880058938886887676269825630104178929358116544713672128409316475554918821198676266261678605929809137535264548664485913989465886468496532108356873268483055939219261716039977795859169404767676446641868385636209743171047073876919885303789893509689998373496552706381172881393593284915471208964702171916068607412856452247576988358314725580894995925780915998464381876545091131018515162504976944666295529187556364790910463087006823082666778201159274797965590608639493728605537891848761348657090265849583804257291448798187829138977445201974282137043984951290169196106405804976048420155646055789644621795625171242075302055064327338677073668463956182448275157209684021015258663571896644719861803900943083175865202349949308458836753303351266026395698285614582185802634579092190142407794247336665911627826219066130634223478850280943656655049937833475897914121624366638942987248327834417737382393082795972489307159600907618021942838042039562485310076921698606807220852347206217239227173490584434429757365660339374151349684248886794334408439371344203140371442860477777148410693949766347462637967234929539404388100256509692852056729276898795121400510623898033482008302216259097629475797590447476211649355547183363194757533442030276346739649638753963486386255340668499607714820119209944643500371558775474502993557425148928519154964476727730067831015238104348853165613889633328512819505564970505672686863643207330066523158581680720386263839401319740753303695636654489186495615073605140828812993104098322942708073011670550582522585023053773928649097647795367897338535397724874388909904064584437464843645722528722109503691466837626435521681073915679233292319246630907402016009793194972478128616211281230015948168210556481547505490845977314756586226356635547453420717261802169267952061096848063280799915357393079182498124968584790704515552628392546393163500464072519367040412592661923749363033347338073262029255677982053324647142980873353888575066139886321460218551021490865573949358461726605238918409462164245950360278773169435219486173823542251884385972905321864053914202224099343553000087458579954551227557475040668360279256533213057619541642295383085264028967064705782988801300172587580032731471017393019040775916512995722657695860319867035953618518685301441746556023819609799221934734951701517399797698897751360569478418409526294868839462783231715805715357868299128607178126161660933570039774598276879410060634187919296718810121288446479087728218163840616637534860716061227993699953200096552780142766974243636440553866133890183696750203109186587786607848920455248624683203864231712372981116454888185135239575669639415314191122845798348199855632563340905071251029769388154966622394932715249981024539202331441942586911188660293494899862729234013659805787521022313059196683567755941838660416874555114023862852369244145479542265480776602236469968094258132975355939006520887127823938127842121533874374575080691953966154227731480795386605472680237066547919930365340683196201354798873376299116680169415470425516326835972214062318322717675256899176006412819004207563409512806400290356603588903515134258212843192091307340651858376549476712458453033065085070030749348293935372088044475344117520300762186984418178097063780119011586149404438766786692976614296717552899697855720292409192653940092094394664689454558086562960329235638500693924825203443115713980448320617166819624650625835179596486143282908581590575089818936888680715490401135092549885167124765969833171692080556117079223134943816776299434134820693873649219893584102423429561410100023043356778322639325191408916070800809636145855788844528238424697653415470968305137674125604366609051841382366552887508951329227408645611162578926717085864775271227017278139820448896132255115346672984225587263586549624707916386983723632692048844984094426184628522601274529078744164183899811966400236976296656081795952423850774523578881747853125636087604312859590273845784361054742903461865073158891159787308089334670603566425912447085826367777454202295379714279899766573211114944807581374993147862921266299331770600161050566219626551958775036984815511630015638562949375259791758957860513991605306972053271261810533720286040679342789455829575776955325762620214699269209908963373525928611921551493151254366958661913555593577874407736202277719988977411923045497403573640764408466201564324793244335017860069728448829629845733340562847224772289736040970784115738385836400305908187935795323925369566073822347598281987484065120278158710652084923339903432143692746958881251644414347221768517023656276503950590871858730608321294022183878817549604256565505778986373144856869837575623756354037791673866607835196817062675029436725541905071315390000795143906271354910868757181203262740885581519112701360943841807414393958597451265777677810344037397966765526079339720327974137696829779421471556346957143521221104796563842126778621950563936283165080431794777857192606030370086046281663514406100389085167049613662529791556570105539327160739698039403948776901894533267130567638878311058443503497970222066128504032655073818362193829240701570586341557903456680711435759326802021071646218232318750359965416936872443961812673007311961320074154053608710295136990476101850020001433643372783480260426850334580465351388919316999725317550011886830855243991844917237898251657797790856405659245986966876688205462401573479639148478442945918332944670540425781391908844693813803986820023760100668385921018537258457458212461688005809233828839625336174475918142332977495895550003221805186885384827737249481073377276708617038172579270061544659080620527524407843653650666084777755261405455510282088308826656036955937450794037647274106304722663502263896721420504816997147279242792952615004680122184147135220364943808059577385901589010719144569474854783297505059179996080897835869670108244641959899068729093081567005976367712514602107842875735771822098265654591334051458191297316779769048647882338576997939538804145584464327768012955136737852997927619733988058708526311942235810108283309334872473537726309568411576667902191415058482105002472394667434829868270606400137689281627202287175382642197206851361551343197894040654263401811513477192221437451251418444611805012092710858473915527887327525408138182910684799636311284152285517691323484143076655979915293256478231224705265516441161605743208429018108960963450936756646093754106770705390416140109592464717346837625677111970029969626350229766346137008360248238758568313797777790013467627979188452121729028798039665918223894072860974098697658231182324852694262022048441634361926560574056481870504383005054774444417047742308201786919638432779837664103233774044921329400353036044424925409259719130066911566244762904235264432608025592235770388953437818985901573038635706713152460651169199383546209104438243687734953194805798404138094095178932819769439985365618772516033555469091817610857680948647644597591665542954245879749690905789481432343813126147818327795275050507193533664306807696586785637521072616788109273301385341538407152836463146154940201543368287908286759830030490479320387630861435331615104772393579070095842403491355155144222393343728649844577355729553822241577092788341616123392085457609147913053435063659849248579944383620367999784785184783588020165721506006288816291087217698606290154193308312880512984632962900795395804453345386517769862064017548351788219780266079186916698284433360645725161663447134462569880466520290655216665502839605029095503000733995886563605797654298673698053848952622324195959962742013374245431671419326830699724215692798738280326927285739932099239032658919229567367265248354746746374139973471183220237614900507475162340675080915108006655520470913290217381330768778081000309984558242744924799150711430640057894772860252590264546006078288745634269438750698752745518740241066357518641377147533991352928911588587348393751154206422428612848970729478515202499979149575735849066440347535423461886605722795140360491119601774200819837951598989476915779371492384038700611922969045127675947551062927524665359419191267145885984580199225761268719660799834654389634402795662719514264876669562330457250217075342765122690445438946645068365832405029744917040528885468215871270125151097246341131220614220067300858873738645003977050190997614778973539296398937021584184470728859087463134065814618313554438778890733995287168158970984242387288851167669877529547524398310964987763110167657091524954023524993243887375677871307027411782275765814563686788569997062399940647736614532719729991896413453603755558965357144398651342006377152552452173710611851731912249020776875947511717625303872585653340004991912030392717590050001121743215295797202631168050486282065909364743955293099420257850851552111604512793776743068253960545275714445134142610927139294019089887528787956721088222257383552234696475045449858644912118012316255183931151043182312800865870290348083602593104322926217257130119345261650405801891759213322491430959408960137693281510888550734027087564205343913273266174081418916844937026287359973361684642941453221092361825005143745997556973304798364979810196666937491325586180568135505534634882680597747957331475000818312079961747284515175077803161055293619797290042252949398828989501753424001975364791141348089714175045841015587776082605964332035980916484692946019532393039477615092261862303332534294639800104488004762089471248196340355216611456837275382195119013969765549623619129613646211669634475450014783339385362616361961313658381676289357142008381540503727464993920655993760142303886579860177531453934999791937867515667841768397636477399091760567102293267204330806061384835578216568033443806994744399971375131709071924114743286888244831807314544683551757623282102391011323959001969029253370971359131194904495323971096627585213864489585937228023440428031433975972784722709141696884780954166463864018357580248066814886135593726657670449456710380133911678627461552277166700641500725866628564534871968990086553981711560468578913747247649231449690917035227698961700930871390911200302605933802905192854686896041134629047807052081803510582828336313877961163545983356496244476629865661571122762064989999436449577053186124216347520336777415847913727050720017241279395312652505629800698159348154150797720780135541215276583516037380465949204543037031906460810200154251215015779908112162770853447690343086461397822688362252816199884848265791619442376577639255221091033328115645661179156632691070355090535905876588449060164804336847586835104588599859687635205266119808725831787598834510984293367211762010244640779442590946846142093638957939929502779488234060713182510376962723692782212799795916915616309935711909705280241527599103730088153884723808136767088031171575397196652496371809642125590311216752947124560696077816609315595943578687712073677864432289556625059262446525499938168014762596043101120007609599096176879023292960250571418335273468008302475871390327383574675991065306639919033881100826564723466951314873398507443119625032575156073029901297494347871991265255330398471467774229587993228402762295671747903001832603720161080191222575330201542757838744210620520903427924092928862795568117330318711936937986234211698576511340965974413409557990057115385951630195578368368924186880049049204638807516541215140841430708042741535014303305889758004729250445966027227645959026385384734357312903481900699853728719398470810747698354853632219203081544588083382245786901218421618500611038809032234701240837226550926998365876674395309782911410380584144962736974692019405489011318150456129970978153011605689344643141458662337937077201380638354607359229655742926112916384969602865479682714456336684981517275783621708272692595941781415065945261449295207601083791634783688383179581188329208189784032631916115456700799060800432239237973222332441010948814735467770665366837220446241666002888534052947944626648758690690333525695272435100564430807770825467375590311692373391547745526266526346045611610364058555143185117317069928732548105394071748117911560864122561990659615143970875078034241600686661357547030101579050065179080089694777711575713254366159738683409412880812098704745248781040875216728843065246712902812211917665475083214083403654159785184522079766985768329799639331889143477092878400419163312842708792763918822979879851192302831552768080530991171746775747263425971512642302203787554790497512870878199062534271818789765491900005053695297714639832857632636993776543467633428278853541667441344365016026149509427956608315557582762799160859065522835037059023837738824625842275653688072784490943763824042327712881747581518144464693088833883197612909391396025893016451555690200264522468219340031578894216526228283808139332052988569466011803577303894066895291467127214568024205765380483965135179659733675708753685867875405601148874908429031909221290321249204306564753125775450838694799130512689461290306574624300082958701824056627480082856272167185436573486541434304721131556364250967043898323632723781795645930487281706379734859196060409931137547777675280968949964049766654620252359270726876050350511616153254479766726660160847876705063923814588590700962555739938362807620427626654577138507911613096713288307670439679061015057742465257065015820187445781674729536891156890461138316378418498377010203100182145284570126272096014026131760282520688086187959725630615053354344226570191363626469131648626161101613525952537088447614653528915405122623044067289280501415705395787962095462643345281270743116015969753487782166710761690330318640439077202538866316944945774603824515907719737268672687964607319256126867421022665431596993300848250564856690201151558980171674055943664328634558231271895842388624005770225729266503104605614461512373030540192663985461720755036242155595933405718437493806985794922705056012413625885665390136984554639743899016636337782099667796799666673995808609704663365176440973620809676035137038954425851087099937129641961799437550633749735193609557656507183247077065379828607377386520476618324900836088130388413610422293294463599949890289743210694639851880084875880407381582201669623075454113822939146795569350146050279736117594729057214327326855949698277006776511964540803075643142522033220333486090858018420392202148383237951087800999108218299676912491580983210632582894640649937546452271292926315232313698957913101571748922112225169335601689536909665277275688909549863423198787527686537431842809063772426981029779169747398971138921392525514762039957235873082871132352010674305749868084109054975907739631307351316898546575223004445780471390508524777464247957521692267139369415129062104224395370502579536884665268604588091229305055352627483569172305191086035888467472235109806015030991756349454076571833057039377954669915816037355858172834897347641457918428345010175849434275407703695292695424800089306608895452928741631397838446997422963237187633399370570878757937731412239465356248644614781350629490330531193918259442987686803799199239554371302657528623477206582493285581983650002505529085830321244006862183277610515509781747943822527427242626608771488467126824677193241158676496635364093432263562982369815431688072388538050436940355113362879675113551629704380608063637571832499033970563077816747737435255234012534127785674208357286534407364789252817936520817337796080360119142787221627490462067318021038354593546175565558398337722457428338256910712693881652064856325784096695414184147436207152120839251189959081202598579116531259059214384736676145939481455222983807644235297435318199287852724166714964712048990085994734919471491881668852427720227518839549464251249478085984882537084630849451129662737920797011839285709592965769791450504615193198544281489147081845391308507022048881411366514142042443928157729830666870658175868044368944716148188450908858031323158550145877811773606865829578193935494442162617967706847700168388889430839289760205412661099635320921074959233911381859365635335654974514004970561509550126841216378902571162032962997845972186855297477645989818819692033596572801421217955274333363956398445327817405939389109939714372087594306371515625463132257537980938038927998404336519991775056877943351719909491869992848055944992318721624241218197406900372561682014646160101010876939066442179669956705074135594916303364766272135791712101097826687220058223466289478970013554409500320740788112318571678217649221661021914188977822719313277037973724853761297601679435891539345664970374229457235580151163947356097483850717610247885052317560575573097871112053580168938159552210614832158044129857941424259089852878277679512288562364434591917797724009863250385500964094977323468272216361052303670428298157582781285860462470817088884269704670350683843836385700383714285198031433916935054192734268624838525892267124339572136053139045116554501407951862470712222105645331601257948742428014467716765359109826743752199037510194762212077433434829424712238136425850692151641263084870369440380412843386307835211494687037979234225721514740390320749084126087273261536811012677504992679891160823935217593674473644182262721942414597432284604995397911578747680050400967626762186563419551089864966587039589051607856366967540938983752102271987302667493083424288132606250043359816645051838311764764453858086468585288951817181577389790641250292333913367078738078611358491216263004778350778300055579580311666523507251259273361664256049300308587945913726082245069534028043469723722827342452173730612677577076112077979438476575351067342427167011584861571593959973947527776539587103874297211144868298555953122382545761736033373969858438816009467170614455223866464041649839557142145941671203631928094767127460327600634633774324899623013159440685929066284382923779485027234754033462491381409909882199312972090916701818458179593670624732072975750917659639136259196250527871439568825418108576871824374058525180776618293823456963267251886183631474901858889189282375288204491412143630016432354990907131820850560832917735516198759653922303891285071794661395575595814776611042714170956501336540181224206649396119442161066567054197077333156035437461091633313831722525910437475324137342283455188433806301285478203093905907415376746427196199227608143976218147592485824641468795044432200512281186194276757152853882273443740853273789604723506032686824230041641259062301515327264790434800865987929980865334425529832310819342391301671123978285437011261137148790843761935583032616182534423498502618085396512581218831868364377580933874350826689243352707052981514163445820472440928311825177822887797475235507680012994728972492141163331030345814649747341776704174758051396642132660533022472579738073284392858996835030228226844261558458840999501330906865666268173842612642453215814730833371716313251808209323119329565864221031752194321245312110393490953874088410112042951004326394978524613698356835346662715514934319922799048156370664645439536814592348823219540610899180016209778206948442031820220740701042942874492520573379296943406325711948427586133364222338511433686194391349983609335268824527133565204584711682349128496230923484852279294733432160421278672536337619788517738164695805340338124030345567624385285972332534389197184008313645994616380090895450960715473415998862318388134883688924985402537744475775719206831840473448295698977377053443372915566477580552916116257844027649777413779888323351980592883129652332807501929677654265659610532532428495305090340305247704096997996627345625630790198749523794865331261918262806058317511904408549503867213506764864538543648413755789089946884442624539876072316192655679718548318555035665288737262684275800689391099743726180386718660209389313569389324405742834003588593129503815901534410279243863379653661860308056863961356578781683845746843259263820811023503625680821477604904383806053668638083923362410293321813607857397907743946690512335728603580230723057312366741606033832670106249791816123349473348662650177570926305194781359347007632077822231573353045853980522398556888127130895089099054456638946286809865312315353570571534614827046309036355987245517300449420919671354961840071793134528364644024348808833199281313285702800456638931272706966672318368821487680072041428806294052613273315787152962099733222495201804886399535917499626546084890934682628735713184900568108156199571316208708300360611560743577110413472640466590678018198443321989542723848971878704252177956021382098315433132844161260574390250603758223509630960555116793755969899474299199215039910221365706454997138998218379889152880419100595459684795191440256068060633853607171799632535010509882847351790101349555121439031071098159473218071356131068038330360591573709649860914703932755268119298443485169052068149679456349716344739303202461749922188587925517554572885844496843258700389270483087255460424492012319011194786168459851653879596379986083329845646588400501407656727412008558370793778153586211184864481869223892947848245259116115502272706946613837350837842130467982143242531464897259778038423878534761571501772641001798268985325035663011580291342154744342661328884004308366658985395254542079617338989180599702101247121473490597861573502012712712147016993080147700245421327142762150821551748443646905411408404319970644625515163033062795364377158532524700610064183153906749432757482605271853367637570702056934558846289433761474142998106495600328110106740092504586956105743018423165443528182897886300714373275056183298274716315934610003175806516375203552320567359121836909798250125748318663269760865033865631597908020317013687030632131606854604378538199185727868578409533388490525675329395975991327994184554439455126583102210391588735285556871993363956324712902754506062322451200559882024876172221702166880346111524736966592977923153144176156993548885720037930685660898541385678391120173834227537771715916925695799220284383124900465563260287559333407777320327784124020458193683810855644099112888935907929856569768688500697836696219071150588725071522114610668026623808466215048985378315609644798368018814052681486736196828800787518522027011408216776046983186437478548226167379599427758677814669014166695863015166174835708432399650960020435721153567029042654072731336185378205995421664222821790910508853954098323617675072791871851410706663319068183336062337342347266013574272096139569594014403388260009057680319507478720313633060015212572965768855699499492087373418250774114756021303723177660441427692956321672944123882606376037570234978427098553266665630051033018368332517802195128163418084518414567076300166598426106023186372087608050019115908927929205366230229900286538188492983686676970732342657342664111813315558462021703573149626296900924562545584478430307098791355805368291096732155090005784047362354436371857494364204773731182411604331014578889548195608796632118958630821315344308943742883155181999937487534272847885596227350276326576052324722424115212884791497010690408675130377551108101170941558681287378796236599584663935187458065663850208310568713055757942894803671124204044828515155290605625508072143632512036078742022903656192476443292492455302151923781737952192396329493358830334574121736151075250654434765017311606883343414595123346756176687816716825709573464519227445664631151835186399533663640962446142471347998629405385418939114295244566624861306526405151463778259056793420059352399650825060849192810650807328758942463640911575600511842661126201482444906801044862829605871218309090601186136702909236719843480499458767317871208829332524312155710027570213444684850315998102281097040583196472699078345821578703955686265511691823963075826755198351313025142887083706712316945215599273780793305853001329612990892821992027920481249337130214830643217733186672912599232149316900677309752145914317167097132553856810770901876750622286764795848095323817394783994568506918084630822514047363850347693178525005718563222964046380243382624160729524933751976449997625157140718948571159357115510494071420806329532070146744221814294892109762271458831952081491953057632195636768536578771366678517510287978759463705590307498815343713481220222744200322519667204961829907690712363459109006072613760899685024769611993306583718141166993668576938783392168153181149245420861855235285814880023057995840585014093820308088879207339092802537314805575228404366808777356689359258225986477901431539370280364475452886306999864037371861843220760211599190224969071640606790941778238589515418654487391507076822375377640344379495940294719457504990249673896862644149462475275704818681516559278399436423912935300108222572918958103040653445035560931083202147709314984931198312854781821112225900743834693196945299970514172610578319445453392437925652774434939415159539950128993645387396205903373761871683759064718566868956515302288230803857097832812667597865290951952243212212622424263265498376069396363127679563610970118114436118232295502889179939630361067547237914747846297212878563654773265730846199557005948383334286448286831931563829804555553748207798276847513950797727776305421977714472908521828682230659654287350560806844184218217944470854515775727197907857475773745055021137012958917662976315779318467545410747241317113864977176799677147229288592114770178341752496084624693449893217441285975877564677670279318361345552841018010612707085954903867045105939486092657368374480534922349586360006897655625181309173741528409567724895331902049683675940700041180326828224813392002852130652673146045151685865884901017044479307472982362306939675479218387417455337582430994773191428909514405980191204911920803418482802556440304394410310069803072879559588906843889199212210887282830439810298270308158569161099516806635626594362245720966617122484891429481621508787058058017703522653334525899707060239906792464549572755973893621623966088241032098011048845000136130377133219555443347288907843204862165482701042824377253460818976422465912032606228876199437691490702594508057686434188081633443684103124437384946110029045537375654124371629006054198471268633998406250735469228724418382502967486890828628592602092281464489050216285846055404975875465972318346670863723281134663697880719093780016032293848132302355387296951593864466834633251787463796311646551716567178835143364159361477878273396400573799705194726529922130738648646809575509792730935660389898546832710204421714143262377531568697128800028120740582934482348737677235527036275810987175759902634995962894722470247383280612448383592689332613735244126014350450805904626266799289097950187157979953444755371568992150405045511805090387309168050536793400213816809229691984905535569958796050492584570197624219404812148574977661488228155935403841304882551665560755336536182424090673875527936601476694359236209291756148501579779667766203020861208236741138606715576775534455398018543112486831896566253348951256550652463620164874536674634920989128429253651997719605440149444660027654053607196020200329516088854616879386304703317083112197207386227852888620294027177483377548816635046210305981817085464828234254594293040825974546976998446610258839871185475739486533229763868049592388870553727266870575980006027774481477900713537166022839507592011020211896832089720836655526904471281129527716292010211110763178977634088684388907044871075908249677237565488241444316818085062217447007689734204815781896593208212083304921018119464672185995265175966541276129906004845610770840129334395930493408216675912516790742028403829305242181910630077333098815295899901301042541828170456512110091874915910428076430414762805363743116288363978254966917647739373348447191361203619777652187736378947504504278405961296514601827222580602475947214500815763462041480562836580146544920068510750444558473657227493270093180880693926689290067983709176248196307787751876214393067403136581229957172152865219948444874048539277504255842947444221761745273727783961603389781010078623781304465002612823450644268061223072242521786248606351392930489207660534250295333669876110027345621170314324031395117825586167371210273205168679880751893028109969119560907699467436909357116950738820635177296356839542359330995648981612572187136713269150002894577850194849791166390467870064382028093595517764497818109265079966558547898538662946565603374409976196804391367659670263172445905156876222866912521046882288994446174611639515597900236122537978980402357663742983512433460439398055860933529939775286028001127104564162450635935440811408694286344037024329677469267913249576898668024773634607606915631997710994893626968165512479290059198109118376478956756996743863847449604565408061313543111946466593475679595616375906096802535742230501507877943060671385126349590434970731151331745929623570728072909639660700433504127610550729526444305914338623568398543600897494563632258253724830241349181643994559842760344433019466509254610331388865402769433332025739899209066932122511599148247446594996598574334941737533130708845389931778231317880171118046146188929253069768358069483457158279482787294650944655986192090236226067210986007606738012740231153083246842849264067799123643643909480833438981401633924612704011181960004295075838003985643679891944562899703201959505687733504299057185245389700430773957768745500919080775454576330635302064587567309678557975469083661908435466082346558271669547206039516793162857323501255150191872069149490118185860505566525205357146667270829114087478466248002956595312865572963276725215421595432115750552253953199666620783686543088823974329758133997966265273927865138246987804655075520049015197457599786548660750883727643293936071355317483398209625731753609389415770812631370877327641642212794462126628838443248207484396429260883536702483315080577046367035193701766896950777760857360031340887055193204732384021529903548474362659309953478869680469361178034135192112858820109608186805575659232938762772251449619604310430873234280811708507050477227039322611794986864572142243095301316782223684613331784658564176180846863752784461407948286631960926348196043007368215925935313809916899150867799532812688305182717875964096058473700946183797379371345150485262448289110787412198194561600132163888729771620618008454260937849543424213877752155443403307276277913118680186659775642721752485963411999910643746059586341012583914654552555412363944944355642173576202701482333741666581252189627911787462943589453326928414752760861805809379222498550359870877390151763732917298826147373057202521454722998574526321007356702085395618338150435135041188441083721146499193625424627748363932999288489191087576656270411502982577911419856732066700367530303806975353260300561955526613686286827851868372393431922179795355470201661334964614936877897716934202209372471975249082687420830995412338259634360570146478228390065570503223957445344167788574756451542054227054093339156960278759857672141603075593611194178374887294192493335152320654159294489694783159369275292210302653350016494419740301951298262338323896616363380223597777717828888018036199480509849283275639834553727675741009262054770065517182686350807998583559451101591804016685745362120127542717298547526851276905819845787548513397061358814604114644160992473329414693705676141080430156822390977607311596270188372340598875836433792647900354071788259366059104870998818188161560943492564862262944939420158342747115685315964001698114667173225155753416672025066983128134910604700957702497428121133804587721180749241237292383543820817849486617984763826085820634223341842491593132261931946817248031876787472494000271546980764432015943402966380053776634704104389928739890602350384293338483129317196967518709171638321986866907755261604431156483485909468969395379923782652960584669752624754697638698942085474796805907830781987861793809831990876117620563772518291423944051938240893332380437526633954642442336644248001725154617260978944403351862672422246968419674935058400119441008386738754463267864846312237667810021478545835230669201572885070162424839293253438073529272157656749476760691064196457447794888660089681786245679139170036436629986347337028129467486791250781020615309307197749460629844047822099893832714858636901904990014606832762751345463577587576980079201741149513285432885452549756357272687289725051095890569412241087543666413384923367611129163285143095610753630020905301618458187941459203843798665705415206478154358891772363330370125851118763158611040465862834347055699938941993361189260144498901327825903888675054525729966032157430887050694301309597532689260755202843989564801697148413374372051946347947827556129772941726546117408238453355136065762764267772234806846046464447300362539909788546211401659040982242490619615605999176509071900216004608156351013174738794240936561617168034140339930038688859244285004738423226704954559006026096260265008864064476109608855759529332201878146803399425680260598188500729650032217791394270346999067117542989753755088330518481574904028080249965682743130730187079018417326420273193115851755723963263792687719344758317111739659736037732739738807270099819951445839962915663728198178367791661364266065509088632169484062953559448868159066628911715398046103637507631365284375535345130587012043773920589016570235615324465027146949429246097549279183184402386288976298835817338242423859394371356102773930299970004211380643137092706340553664577640353502776743728160771350188925242520261395301007993000371363796659253701217243552372038135176975424074555712690121295838466767717875235857239488951498995158037847297176396154763169848487661966381326356430958116253509263767826189580024499493822019190363428170113722900548226313423720922792494753772145852121017400333984971063657876751186207541227137007956637944549475890564813395799800820291114112315623615331761441065946137708049079998029435262807185649095314450828539796558432670502091498031910408795191630175928829807726945756550941836609843390793387133201702417715759728459153094894602846436364196922874670900590865700561386459483600477976368105339046940888306980772716066582370226838431192670410780796173062140728347422946072683997710913886158765173395864862876049244954737323429390116915959391900047710788550392314794289320227404275250401325566458557562993786885980477424785231027602664062516261097134461812355915729395475511699408707343890327184381671728156223643777747133395701056132654978308414166842875652147427420526907967534749450272187734902260147789117835970387412604680431990529822100854430678774873244983562019331184092481160695079461050431338357166951670637573974563180272196492934641937514870883612619441454195104270919204319115100880914937296745636137754797190411242648312863960389326455005872550751789582104189886455150655618742636010795826263491239485262683893276946627623313194242753340041724934514221258076343786161865727757593095350901240294670480364759581073635694528804673906745683968590605831748244475696359584001032328562571735919783420829915139235014899055285263104914098154478744901625896998462643742628683185744741117786987277344851188419418887736864297121889471924998073306444469004009721362250869240094414707485086363166623291225706371442502412904984339471201355087839189945674271223850524632480390947703090547210041821665195119978550982392003095517736934530517759012715861024379575080522344059851807148750442191484528421048302430754711634314931780780610993401504156984064189468245926665444091899502542779072694870931571287723005407317124498428016860551363815972178662976164668426787494941414642964982091649079277566373688445841152473295136193400126278856544808283817495004594525447065145444618526820639225926151280447904483687705893971857097656200729740376252497383320424210304691028226236648736642678592924014482162839640116846284495304417467134820666068529515553127749868487039535009656638488304089838220399106393114446203820623794793194895663720767626688139477073510297007066977000510800871182543443768578546962931956342708860189090091794521477630719637119006827633769156768032551825060823100773700949840843745725695756803621776812456572304644884103889518762141653857667689495338714402285597494824450571440206375777086068189504349673683027626586451570077636398709441856858799068696683938025283185255039669568288000227226657804795694228313552013152125921621657798597078814645014755261482012142006057259743240679281672683868181339955922122796887856155820867394873870825078519394718883940001361293534143520134310432800347154592409121917816270487486663924733231167064762376776454394339193387362037726256678901175257188157487411342214474048635495824879514023892191659949607059484951124607351715675934351009069023330887789824998939707109583586814740164757109129244266271764194089188195335932376831345519911878680120893742095410785562470637469793967511390459915483326294918130607063075998959816736617383782922958253781997618327109116915585331401787607876169619815110229690573544920949979845690938336588502524928593015112794563361355679097594320629983333271249624806957054588190057151667001311449585113468040889937720588314134738391010319806369748107186225507720367795823007102632980197561761141887485659778150715878536574448643614145508508662984857769466127882822180216076336526249535482828493425335830761193756842989594526545518745513042587580152422662724554263038072427505231524352858586266308783291025243010085061623265255973820093393819594792974578526253658016512350165381291508993931622126363330800601329340909041446625252435370509598037943919894871450749208466088277163699273650552585451558925790452071448137025311465232526174451583859284779764342471322696268636218461674204431431101467432546941101056492919230784889037439338113053886437124531657300323417088626483602879836678736946335293577976434827191921086943699022648530371703495880786357902781903896861725133685311707945081410299539383502829417638721569987593627284265671385576242485172510423919531658121293642613150700560599775524696344587591666863995200879615857619177554985037010029603098003565473569785603108236066101348176135763407047282090895190950563911371176594235413230588017516423180841635207447074060313701347375833130000263753183570620973392449062739207584446050958295929805007713823354140299557119910768581843328206994819808998477164411398895676719002333003452385929314240520687469392030836518363635670524080125425784138443889816899899298359179518018911927354493608098400071241395730269593165237904496407167653291548198391781846497635850848277691179688190691477021708576203605096194280473917658666046921295139568904674519091569125341217988690960147641613207341283817191325748057481269758902637858587269367254269924206909456397141931948959642483235305723178092807247745589049080332781473498690442452121598779322717414324398320689686223821369009614983402651425075713641736196159911470551080963823121640911589106633670420637513361621023876702598019652713741478189673594119683308271530781046810878332058983038763436226919476787958308920630768069780490173268374749828341026993718247180987520688605712521006597306382385161101811500643012827605667922705207226386185180337184578859017399867327987913714281961535842770902931971464809151700847466275777424389925492134973893524967677545271874329287478331768343289686760784453441356572278952058091497827439107913580166428455884851011731294053976530239942937988030669993075230160792238302034738911411193834593086061224160156631902284128459472768823875384649993290836982786922365135511549762929272129743678516568996163341295632284963262203120747186872244602348733801979672681614160713072767385687178228197154671392480168480344897372290960433589858364451329890718897130972782296409196734042022174195037228058602446988817408362187871509325052608996192911537291624294263437024366421692134051653933426008539122057186656691206855776799477598995841939813793316806187259442445672215261260254368131355297991716737771646521292801093968670930577073143680708558288672551482683603470103093075983289714161341828839423781040636219679576246416873192117565556045225597382518590164612588690814699609376804716173719946259658931089585403484196505484049218801002358103998894097914467559679286689063163988308580037887575797575713858151895795976867395719609330695061088983500163188437563912742104240301363658817731598104023078468694143338087452747370686291381816641300095055923753280175825809066213486271225886309251713300103772540896759682149418596458687707410012128970133643802698140650076144651743960396961911405099739393899506753579667115338512165556965880104733874887800378896325447432969740574716810086413036755066615551730360950835164909939341210503116885654194431870469742916522251091395026989230470674543623220104099568517253109347271805282765752241578570075647608289740006445828541568318855229014810436206375087164569886761402265735567878158615207842701321441583561188922270964609581672141414114334064720188555004913129653321990642024205311208734716871583987764161773464414399979874705131605779208744919130316712896249692704981683830290825118158295992310139333519433566447699953720558785879339912775855184804698873476224666931153193392357740130186799435376808910397131952606226087086115405275180605515228272195511739664333617812074679302934095641120355191221507589864858435900790709381330113105492574744551240469276748969426165840289676642460365668055990918299164405094574024600106450041931426853031544293885168972030998178074471488517037283910158365224673106427354034573111518080517522102925970961756070781519848432021708366852417818109976557563767798149977806284417490407029743409800446676323308308842055747437439319708805782697661079611983219932654814340778739294477545987935534508957876684959558646205344038085959707431195712118654678459833676046074480229632985244080323826129264907497788970454808736713364001439618570278077123460581387086131770279356233596125751752976101352013676005667748036147053228541206368470642509105041182990896287010645724198712373902839013116428528658511812008184290442138003939596530820949286532225541302361991422753390004617296030643485199469727389625069721588912558842303824995786429852186905798955216188120087900823478232946839292989592738258150370295706182721844407037553744941579228829647997571626273384894423568307646320707427507804906891213312262201864993406093347416040278728221079505033256650557461819743685567173049514237670998085156929291292702574861376365009481795710359586258415586372171619062262461651441330097750598870353007836489867822844054196601065797919444566135946169257826277478682061705100782713815660075404497226260350818308524535741142483518302865997984284124815549738438103785783965716828208183286256960665736596628876344304019818441641216089021431745520398052614097815334430427551321788488461559529227247129253538452949775420091267527268957045668344161869428712656226172264615053296547157141669855205236206082052444964403767996759195824382054367909500092325217466565073850828207528774923121761131750679415237725404546508067094042264315797248892474462155984717777815137598177847431080494529087770185185033947447032839401280263965178996346692733158814453722705922932847551434826980913200307758260641665418335281051156359578954579010374178338616922755369647777433949319231537487862825650738133227920610937649340081662697846355318240925855983246768179350383896808663939302922595685207074482046381399937218258415813031268897884128177227691837150064222497500273019211409862665001381337462535137200558839576188676106573084286670617641295669202579363679966674542344124304263443230638223826597597356005767808509554530793094051720805579295891565881694542628804697526000627790241992347780699203078349973769476834411667350397998362251080415757999186614773464865285242798921022149514262084813395408815348674354798104221418523617665291370210812218613018289557720271542850568065660682250839505943909239812280753135401085198481461108406906045134341637540718770335285949022193376522484987622982126237272665436013204397397726263635879525033197652898202480285963123123715957404381309613963687493520581350905622297080381040385882630806176987826371879897858264386916300168310037727040735258672575701826401473816284598760707940252872461434073478397219159643109014246279408621904953137360914955313679530956535514132152830777343642707826622527159650572178629074761278678213294385389139729642691214346046464103811207751521162419497877546563737051785672421205786102705731641148554040827744367632301026503598111095407997285766349882996198697774255759987365554917260325122475161494726328446759311648071900619429225892011917889036815411326120223223799642529154520983310014175555105166864116445340886219907285998880710127687075664582877546701204660103811887078671221341832713189400316441674279357134549451776579858098390799093031097338659188524017891016634785735169542460661190900491661327285333018698182058555560942192307220980987458948930212557164583294229334291851202798027998141059635590684437270645234956610308338103169250538159768389280586656007585540707607838688776856719875080511664116071596714412585751839941342935318174960338630312955947310807154664116752735948901587952890318222046014764585454907092578134420841844266126827063538159372636111796891167103324246599161574417929124724370220240171785654965863207939289729862573388391655250989033748827621075053765170922063190257158973497827041933668239892835108242980835889715647292287768797234349411289496694190292323649973583556134472691533939057926316649391022417730824290498469857510687862127620412490715203024704517160469626894651760292815197059410027013358970357732973118886899975310144521456871588499827764323809720788403636084327784459343232604096119044388637445833624458839879171735871425540772043283650628338353068462006237651800792763487138561929559406964373172046997483220373218431483544807011730525404556449878959712154359589092103185787664694030733999342365700104004469260345188486046647365707463828070413728729945800709333779439412902870319991432891944097356903197802029931581497431634261037818337529671456045993874130572393295528022594370263266801282167330144705844709598441130156425536153148679902193458326437752016625730332210076593832039994189160429412766413766439553075055032190927442463522753287880935953923284973473211947966754955007354104447343229820743387638776300528000983863719938978504257407813897215026166701149507072158302860858898985055875005211639101795598001021498457556752751155116260922024568075925743982153538292504634899038857775814040212287545561834068924100295517689509853768436847522582933305358279474941804973684544892681961191383312154233840552356540187264452249169221075122666296840885656610476652002047936901568905037326523534748658620192711879950002986440985960261801912325125052789555980168859448163445544368200237286237841881398941469697938613597233526089950494001291130240278630837974585060714577729138041406023719836524255062166453081146344241613376932279233830339126266947292991943651227032343752859855979806500579448256302950319665473329679153836163947415909469790394902256910568382794648841876429341095442567317656718272955623377764670614404622834189483765880037525485981942298007675594777781277274970348783048512013961988488245709265467256940855467748680974627675116582772175527943089841624304314242040265518207043308506662712450753728663740646319811190492075347816494005505624132995435510849746536402072057619393730238345460671618083920406815107600007043370893223268673396815392615376694207029828920724726466691306056910093273048978148000200380089018822946403258977572595831422881371889884751213185189654377227085688646886804336668452952710191835812195851741516295706375267219616750849784714717843791647085615405918200763984134526160413928119998007341201722433976169189168700442559058355439376827527327019995145424622685067410612287310288296742280484596787081717800970069844176971579948382027709043088122958847547640989865972200202518348755590501527700922771097630974264237687462628275494018553176982114376163131902928105710154841095518293688124742561207889855867542584877946623624249967662929019895790900029287581963280666096610607149141277773143776802497435811700587392355877010855436517901069526236503581599184706314168774699647894865209250879542558888209018840404399334174828191652700853016786084561513176590180412630028045046725861596559762821588129082763520766248641392832320151389335895067985580947787753807568767466878691630677384153524902570921841069658152708757355889574212961619598515926520729012987091229953501797208895284481581114286640233517609647713793827563611255891544838303034263815389743956856913004579544853683144143010376285379015558982176960783406459848417254091947641772616602706538540635266909398213867477364381766425624376143720781449610615200067464003986496439710233659456307071291414085411938530989231924487737197723841078907110058545843599648225396810237642892305305148207360964879879946934223881325037574220324695066685136838521729500885574171819374207044562384777664489666786977653810492792854698300098886577275618309334738331669213850138601673095880188714564965129755063525174917358385062439128468621708629376613653767475603347921136417059007889864003508700658158562060153993326032355871928652534322881586795369081187133722300037908698123589038099806895603115680796441168822586380110260792190032281106711423744613261175877584112081102276592809909073743715615592636747869265334213484287653343201210377783677178160177676821112774579586085779937794745901429198620432435338417519193511048490630417500495932180888929217967175659042086293165152478784682391170305961528563989777777408543223598757393401415544074301500300574220328933302696319510098805859698269780134925197835492168992358230198718500016887657680300843362999822077268741277769400444890583189899359036771574395968090397551187331369867807525657599399798694005384474141363669329688187418132942880180102454773671759300997577447224409112313411051880339922275583689117260533861319540354760279707137671431429798476172066658818621692606280323216521046950615690539927776262446107584445633532844658205155403959058238790084199258772578775763899827161115879982917896341315193124715591793148756352728832278829325973126548471328782950153001805759446226746492531451817601831056468530668446092981117196439602378377971176036929067398706375673230796017024207175193069699945995688889424723193538714222658955370141178141851165862198674546993461139563321029255650305816553686795977473001299466286402275764064552688279837176499525707854372692801170691038101451830184358815945062928379933951621007959585803984814750363981504581843065813430820018622145115142022089134765114960203126761063072484943367706828405553032867582041086562362440158525965943937302594079398374675495250506878028360768542265320866890011568185966964897919398725626296426233351829730423301598907277859559164259857033769570534494856890769016165543488641642579440826100624187379222695472157610329410122839279795205352591228466658677156961136511221586721500896876371914454302520528352879100290979833574443212812358411215308921371508243093212310848064037368357264096745417707992434844694491039201719323527571523852741229747839154512023876474958915832961389833857267917193145942094109115426974315177315406920094969666026435601270755890442299045085752106802772674276478594185012605385069356706341371974530091658802069983484652705700518717764092115563033984882052592829080073441684544047877984917553176315299238476889317774228122310816857493815287214690112660766999581851956785814092708073546961870922896706392503024561453215273696031297313176502259475345537595309940357090846147578665186019057392238911352643906603375212427233098436658572019213072902523073798055675929507912714715786178206979694556805185832916949022832628362385285021413156249737118858873390646446245176917139017859873848182319153437858289304173525684874004292998985764826432879367687415434354119842707418337744060515396302293571192662153482786606678138485751404352296425345997897561117167701548155107049774393382041872021420252801476657471849474076905513130918907955524090855410552078191364020799445701838514710429619894097272189707997001266795649683731501667482229809618581819008205454724281759089840616791069262268053071453421275588576913173394006568661435326831850398737562318115579184345837223574600790970428060152752005119494507050426864261221912055659046390857478137191893644010513650365977963436565009903253351662241601022306292223273751139176203381559066538267322617926428246581669081012330686925958098658599720943887285580951748709752493372083899751229130030760677306446537133243546145051742240241537687870781555659127555387651750484071353375215436466828554471860801604464821605497264485477288913041902303119986987677985760805160075284233935355593073244105945255134154161540638693089715088155387013020855698796607298588487345648971163857020762458112505512009536575533559176858959498742918432757885412645311694193051199972125365546905542738704682134493048562146381834968310503932903216382560912726225705750643108718398049015370144612610747885224753798581583836219926688878286409805304267208396862238026673674218947319181276725963906658620674914980471059931010383143489670925861068622520779747701148646825515783091589688773784815928762799664657007680871683086809017008245932476242059350059112180030182224911469290380181389941278653332905249785868698139333939429793666270720577236964714823454343050501271077827931833872645462775491948317669366968149249721755898864950683966016616368418219000895291211273927901877642718378002827636950227488065203644361763100140206771146922226698210265582726687666152173904861891386174300505534013955953119564568817944214711917006416153396308744774559301687324226679154899286433360018175825171523910764903887242566540380979445357669405690443857124885325071553274955762868240213943061705685359010837648352373323891923626624417586315648274164059435271909313616542684351442384828915743291255049336531539489345291580849966996283607874859833624852978810598056025617380986649534894585456740964824506611814329253076657781137291148823772831890039575039878272225309963369279534318172699171610277116518604294216482948000638262237630075084666857172862684496060560916001187235283126944950321509251820015443066185360087127210969817499098200263150003160674171028171102340983269802744260083543968613460782817445112200736144164793780121050015059442737940005958782106777915566154208400314908420596666259868671331940579196794050016663262480777416861460049144617839124570291911567393472815613638775727108913487861493292696916627680611984997132568054231264691831828997157372833726117979456827386480207731641599105545008890901595921210855976715073600966444225062287994917631004538440877603774022197222487293755964375864249879214212463663542116260797519355245769875283845389521190127519553573955179560366374384098875691139480116262586129959461387567443021483050552276232777170239314990836180701462056738120359855021635414720112351388059917299723773648395846726906115988372608424753446792096127552846410056092638008638547845898408183042888649011415288572695735020970412428932015848586599998589453192253464427582565320194169783716273956285997499099979320836093985886562660177918282419185964580215207819745152835412443790412161581933345262483190908032368705194494423417948092103862344278220967245820510323140164320163388561873845285666999532957955299299158296371395157958234730828911545753937325678320825839003394040083417606066214914258927308379667651454735743562752284519516900522912297963131962934667854475746085343807730999162196775782464600421205590432312597406970546537344050361658074218454147905515651584448222615944145114163244369146608121711343953876285348236092152633867937308149863946001635454253660871203866184263614387689203990588277009326982076602599169857154850528430312337058581376125794047050210903284566184043160552899082461843778679832785261652344476179805942558019994720233590389513934358663855959165989358378272075831550128096668248138402221750941164846474998949827968589601770968437235736937446880077892323180557992663331381059922596706345047635162277787228177779330556892187691000582653817216798673828207363065977368929408813383256676479428798953418983429398265786498691628317221131280258779856597118748828992053769342092399568381795978252299602125498022633351349073756363760757951013735901821265143371144056012940598436735549627980667277472212594865774520964354030960820509300328545914069839979280719705147172645059819651695356470778131340785384218848452656613324095448990405949803564887081323823963774233974889756234635476533178434212828192180140327584491588008630565697179009459397849280869431210669202362920860981974830595348668959295116264989204438275063094535800283161678211442219054456247430049016004250962655958515309901152245488321461394651629200681879270146137620457490575117578859436123884780836289833050718115504335052022583369996563513715088787372668818327354783712717254482260875567849817343739277900384539988069668101991834170552789556115825471002756544768393470156446635467554422668861595722490215892317288340145947047992969884620482625513581279020553997663621875979850123029572566465459511599883149740236619886894627458343704356466396266844708621083014636668083907205482388825850424649375158691691326595421743488607263257628708172048278364665590857080584771034377714625084377314841148271064646591436768779354835311432122866633692795022988076998724715340025368866341052491334218238178831582666633265429184569903260699622229454573509049794523913611344155725371895130133726576453075627946203497956132249848920872541412905632680803376663247111128635478070906698428153240320764209973253609701117022172595796207374339300338569099873765039853341452766064774817764108984556806718216530953684765142905597068339481227748896836354068936762015773037300597697838047741714618964725062450131269454883311222282270394412661208593585207785861189852897794114691372558984095393453784550725863128565015169210299403683619453303674759605383538348952512065814206688394128750565920452113502081232053205233862570839042166061952330693061221914564453184000313588718130774741989874323577306759115629183643240109570091427804493027796254082653053640677563485507243738165998573106202897288077279561557902531085143547643681695210781482014564166411612961970536016825815428586996694772707975720881446974651365345993656967661717792725470833631169114642065480349365980317587874802862612611258419864917037180247375989406550049244397248279366177487366393530178569746459485850523474767218445804855770706639935257927831934717372137410689702048037791317074335362756295083089240666241276454519488306576554000660564891162178769940818649975473441918303233426047129058961644366251767173470598417227389868680400028791984695928074493448863175815935796732228042278486172490339946490190853163195567350659275918650034951111974906248192368134140703162013548231978342797303458699179938900696934494141419660170337394445314758325041777857308115179131370526808585599538726733171178833789399470660477486581099160349914287722680006315679146140398952457158665423186323346312886216642216930788731042092790024422632682128275710164633085602872855777771516605519418078735625960003462168097813840732274879606219512334929656004308414123154906624647805943203213773916679608556252820634786212547300474621798482364701009779139960850032931126418130877546458242692891471642355232110551178342435172468174407325709221207607233923453093171632629062481551273343954858896918758858725981289247940666565671108457661687343986048880009826353046197216272998328186769611872987899404012961797736957591970061931526479824377775735913200369375355719744945130575028447391763971828392525174632598959556802247869617419412207809985068677432355041640469326424931548136309737664257745314285640886896013702917283382858562880515817429398383084172422105028242983665403266311353421829158321476079466244781751141423801848232618920966884644874155762896090044490957608975137541337297191824474354916104068250974378617384896247179641757663394777146604405863543736953502985320955149272804225273539075420204497753101084236576287159992185900081040237735469090924318417289022361810443261197980010373498932627333676273622288200408208709382997979237502943611543864146033139464875674350277230870361323864158242103732188054965222871769184005127873947277137155962743046010452149368857142137897571488208397465341408015749584609827293135612436091916608942367806665691639905221946849811295558917260345350833437952187954647528739887077157609929660192265222783776520363841570963484990158155725637871074665754378789076780430544272456121165629815083737825210548962101416298895023124082562503395906635185610287577346331952781933133796436171037910029669016356734068621368931108019910924864145987214170080203623202590154798244855259647437716812242554367092828949228748185882108146204375328763497605057775646584320755179049103435638793600166324690230935647743135255011245327450911451234338523819317532386422317424818912863990267505128035339447683519555178613011797026940500577759707014207175685379290742037783307776674831318971403575635389444229083500870985526511285613929530444217016449336278825277167034263039942203330170779662596917911600094876506687426159633495494516673513214840103823281034309034802052328255793682017070219671419525181927814097297734505986514672310454576057566219015432561558203129483269560319808321087881900294903121410384397044045772978880856345515123116906717416133830377520394792387968317945742910558953952899537315389434006012403761982040787097424039156581957593481343886864647908244350165731577996395870875620859439157516353705436972416065209227237365105210247400994814253851180050689576752675406278423982599890024024209843691371700537855881059605576674871173519050440172089758039300452529626454271146982623405904477109779843278753085352344697674697486387574850550853088259162670877985264092103137368285938828095085092967521164497023742739809847310283256205964139874245891563773688824676573280711889944189817666821768242219827252416450988848352698325282983715277965272366026779900424536482740323352580049590719599504002552222491579945472945887581746004340789150496976168201390429592565522630302364659452726731379607936432802326350003409042580657674679622246530327616857373648169260879293094744549620121688761310369320284319396152263591523425612226458785131666206658709561046436090214440175562198296435001033045330742296854281993683495756086200317703775254708362206270118602725698076936331233734341441257428452149154758733905776734883553102942147798057958407425241385256723597638478587183222931682455426812027960534912199605466476157573687365802876617712488838187959543030770968725604895739213152230809180804224793987738266614308731914095276301764766991489609811131815136676350329393905588626786175241286444567551618168004742322290185187140640239242819261867820458855014045449809046346023186814266354695755143685149699694892100322416171347887044463919944027628760351316099969694968131443961355169186343980420727566777975813639023818567860799077175985202242802028674700533092810316077660050152286352346835294972573687005784515589564161494613116496838519195558359257381770611212582961800156345003133266734470097690875256775644824522856909409647312617352546037863558943119065761647666178374870684288721439081966772588268304590997681486738320445269463788273959131435718931013173313807300722915356737511608212703537338397751079205972226813486930508467553581119600673345282649798220309686225539102665784925990392006374252261648466012466234170318240217801454764839459253581031372080628086943295431900453219323316438071086541335650421585562929067032790500535448341432956771423120833690144874979469046140886532314634978981475147248014837235981021269098799428170499622516121951949984864555213988047616772356698482326096145849331010974820310029245226210185286784438132356670192435272213341818311781138969256422652744956865724089680412818291511568114856195058816640801869679371094925772824171769802438420387592263172019714346455023629306905685816918552978632649628436949259023605929610804907797408993021984497957379182466988932831317837719162384192138989076022891247672150774855909059033007239586387541775313878423382967803499286222536452559403418232638690300079025924826828277101700212926895846262161493057611113238908857696064177229918994722007434999582385179092190499910658627997431412936703206926368470424075121432326655952251295116924621046534485753088521313447505228958464881027174548155367086499202817648697732415993682541875514871759892175616589689874450254213782034377909455922771411591534781994186368483875812446496629185261630647502224966333616688895495822219190408714448409851222898420531223913202526902967233847075083135912373436669151303084202282085825862013903627809991933360650228924744684209954529512879149053610683089864829178995801179267004991246375471291250007835891545936950345596731811503460073817099240990573382659387824482898673212503900763963170268572279353240235363681847785827029492906282504585202461877921074863812612274481122915815664558307408468876827501045536055269371090287191855588966391832912730890664810132552506558742741687176200039002289680385531206808774565886783865766745911075886813775709553218158976922033714503935153764414117890148831493087443109726520714538888698943535868830150544298448500025278841767495567534079547180997406730428596339005493651523900424386309361989750636780806362356659144613472482155373506234678008406596945970884191060981082271087397850249904016259458289500020393973866868209367331879248399677168495455006144703062866501119437989342693436643707487605949405453559514132073398545563243252289179279394328752754309711010648282979908461559237740261488374628766419427313105123436245681306481983203493103343461715157334851249197740278798533794370407175127004314523825853926452417421038455837312251102813732582426463373317135767522275984745467952365905861998616173765873287149277966592861942637111140410628670066769555965337927029215718036663304055042647108071625897946985727128002910516883220501065592269906155328131413934158061647971052284557114957613906325115102949107693399034143957563120108966165519810328499835388792605878588686802970778246384570849836966788445716993710974875776676272388636432748971166489968758492642278745203523543164267765518534638136928275339728714425824939185839749254283842538884733608122231776541558918193173320682513578587691934957680522567492521919219342102191417294516571642218870918456211433603940322895573529993363250412685024427173610093814441576349099221936811271753695802432353778173134586709043491594133779791862993946001500327629447274292713656974527876559689425776294057482074822793274115173535658960594214871160413254939783086371154389030813429545173762845631729133830131263734176400067271418933011306313244887838772377630956294660490529075264797488033068007740355443587221836163601366220327277147628367262799324545225778560088590440394696732826307162893454221580643289619729384874599328462006058770168172230870064710183476189721063994219661711826490082635042261606208577134996559774439179435036415877279361627836931281996392947451912592436179670957991314259597860986628453128981135569852814454503215175098215147642960138409866005280412171463991618923499964653948565932424235935895071570111368048510096935355586677348076952044523005362798833773875608689662789584528546701086833001738743304720361649379881493910976651606252632706893646113001128171234959404476770846971482775533783264127499498010925803215697515553444931581219906789465795421007085541631247797822645623991240850164041194572693852549678090334699274370994098002375071005426717059483406269126317726302220230552617739931167006296966716898208662435240323411907335887690939528992479217271213057780990880692110659869003268746059146830873796169251360051881415158189593220843058918966659531184704857219699817240145850259240085279619646701998555197444103194580303806862017451479813540719603266017173217823269003733860408826282380379037077690566060715311319610777126490439456047491581608701745305386447737360172437281125475454422857542206488425039353919703608306410217935047837912534849751024689901077598039114492643891101835029972729752035605115227092085524678078812299222795138042291830691700883144134464946461149438497684231799115433212493664363809585818679420635052186540375708836469708978299613107004816296210969282031419142884241900012958773180990702622044331776006289819707145399190090940825313868584733525285345555819109090257758140481489351195228269031080378516432948477991752575146801199535641092747722020407841707141329902422109067236871868138086619993209820940435688615849815500778905997668611009007095000556931281615956321991487653172451381645136087005086473289658126337415784521185068340289012606135795416523300449598587708663800563848555757976000081979846847954848285745535657094766120725608133661035834530079728680024084939678119314241440912013327762623707054356992390099045839907369584838653465308444127171725775809588928181242789808320477149470800594360557161221244975440691930966776263617681102390392703253260430640838670154698011747638231134365228067517711749441372276344357614075909797169568540812488694999921086932736324942626219035195747885417824140152991648433717923116840933333016657759463721274244191448966566394633980016217216362982747988112837325288655434516688611586698146338286222740959877055085331933235834831910451946467563952879565855400500302495456423191140160275176938157008441565855890909090180519605104075164798173659551663889384307460612603612214590531805154181025270767469212391168937572506497552198820797308418225437397627039328737377623152387052562723537736219733642414438599478331594381697100342347196268482203029046616903143125849013087306124753204650801643058440488073332869888586066044989244119921449830013095831411774195356433910584200024887508279308826250374920800635742063096779935158161370906378858585810592487693637112140375338504460504081946360970217978970954958931038426099064450893305286810740937056163515337051985670700270877692153753353285413761353626201293584499636850890128542790705131794599739091752625468390640071356596720511474520656309883024636836203406492741056713512234542609560913978531096537733001583548810373034992921306358507976413193056190104813324700861951889351306989809458543424074363693471911844849901216679072379505750810103239245071622433008874563652539046195123877964663208466640806672344856074636616577444689713461494569706665601241278691189416158658688954677779285569113126439292581507778640549976433504455097811663100323835423801431213659038743724557387247688014461153489535488447903947512826623943724795080175175767019285844799696236017029523978061932575864604021560681006796989053724813304707505865714872597158243491621385647675515607543870219198442158288572944683581791224924579338090123359475002693962111809092146545464113439962719968097899277173282221262328212193228928459085830690771371976014680458482823211451667758230305568235149058889018775974203739897370769349495559315048337038041392576075751207446773860902999057291121812223026407939379946615988402806676906609695999851922223726974988335492009455708364634125271358171556781622381908755358015302978797496129315479146442815524387095025961546148985145309963918942717851122609056980887213405021938036799588300035790731917196798667215552853186745172035971530718545438665886558932198584223868585162190212157915805148582145623458071725356423465069565597487300690750363866359797147807618106409253404887838946324999276139163173319319340552643317341249033480998035651577745335538541494988848642138748732626878895202284467955272207984332874512435405092643879577091862454950130098386965898795985498802660781802745038294535465693589802227407346388803181218696951013210206113406454273269624772822455601319946906350077245788739642350120897955832057957641259895764380334550623501217194908784311650774645751709962414919640067469003986576970623565060471472309017943371214268435089843044415883594950886795640956808207592948838243891573103470686547683409068895231021215116782442397438034275588789614574255954385093965650966400039956538155036218187378757784521852911770494078525452949452263817173973202427767696460263392645079687856319894989653857785179985587195471612126478656394715756184835070157033332757309011091401459051417593551415274104748856042585632936439087086453989964356356367014589052960533923537791165038763484586291123588804544702731560918999813454196939241856885368003930644857863533299837804048184735784271801350761619454729891775816329504065977396979888406762301432499736764461593150925880308016279013296491692453455027102451707914916608579426596208208491790227755174976920782430144733176794233392565118365530222871976367692288370902969331833553702352384496171108485070244953591984094883668286906692238553244529352669771435614733272050631187567335853319230623909196643427825472843440494958340620258027837288065561111253408717132299751801365599947015086824431500835307721992443569038837940711996590330132040283893302594321935400345141784890727586676929312398250009336450977295042259989602949301099783201497602740970209839712024556728185226454865755595542584729112278074914226130986401289917473607063444074296623197050866687847584908514055068525183389415793722726552913509497178668009420915546129649340665706693113865127083144810295845044940854691375849430839152142189392238354696167786341577608990940300679015490286155454835081059022204817596945054570577379565162259893518629476757785952824042580146836726315912391514207629289778259587997374441403409767603860677569811483958903152242587339066957235534609376106904604306693319974498706563904984285377841138338649119084790423409162745506434336444839068455417083475120730537440122518052151871456272253214358799342795565913466472642680462987387783112724719839255624948292154058735067535656503511756959095066155262339075902764528002982368075320712767174192987102160869247838390316710331894560517286750712556194132337818998214131014368522658018829275659219222260600381118722129584456836518812571353033589224555950629601246565853708886021424648550310862497979709885053727095300079723678489255640302122845122316860620520144679087332323718716945198665725205756546186572838264843993272420254246192500284460163597422611584811787969842785368976434740114526434928331868571212327157601525985165354544205860173786616041274517525658163969548669365366514975947912798592417736412007989677682608718350063731307857396680027410752350212792267680077911178599883021851142924611367127097617502378164724899099479297863055417812915865810064732467865884851214035056803034595536068345689602489562329596623418087520299089924875799060312864029607085888408553927439766221301806093236276566422818341733904838990735465745418622135062271871675913442762717174746751646057704013011136847363537617891275488889038993965094048971507305766197128081078816293691556010463693355155603544595033703491949567693550111478099535283507852314181401369291757556283863031692642666836201449682547474400050999438970448835826393360269939982313941952748963328334376735894076082684528721972820626102522541977935547859830703417516557483642111867406547215617493292743484177581717241744991662179248238125168222928825600119090774393098985359778626567052099257243757165428628489927683014736850462014810101533099254316993618080200642157651948036271477193173409431621768064608663105007539310522589587075855219225384747098934623986117923403877770415077473444067576663799916138965234800422057842445219376205373222638839569236004775123124663060959745855426857231528232801272727731270685012867179960385801556081965555368039633417680384313480091324868216717747036798921668210594638464562469152744503587993934801081861735211192506292908541265858376661094211931205470244347872262111108732396004021227533021317499230846832097776447498671173232246467909358494837211706342269455607931336711405187269186050358545241304545507447005291512631508334230041844484042257906817901313420042663161915136594804365939292371524357050406719532950416525138229231459055343192989283994077644971902114112525515269330449589618583635229646191419883305129104803530048291618264175659522645508621872928346392751648061078782278006253839409081674080206475261197492526447083941903994142850416431862198624022103806987528384388663114843751916734229387668150201685956488547520800562407033271005328547377470827218248938938612404483344613006382448178056723989183713309631047661331741062458170238271866906459410620257878058583937497648043308251491533467175518927226433535647294724858797820294737528546655080650010501467838647991952497766696476547117185052259796346334345332768135010628616309390934182844628615902556807354547606872531671756232994625674633884951827213441616575826219596451956734747564794330423348710721318662329251000517445142015516105176678424683617331502336678908366132592002707911650347500056099318367796915540580440600469270059266463932635486175607515183065618646446240943481583428448675997926626926146769779053288841724108531022791510737275642404506453045122498701508866663080452764479851453039260213648559559040028920291526969106614554806961555744737241575672076190788891143345966931197231469412355223806302694604747657791101911262581956031047091597729526623865203680539438687536220516243938692451430604931627812523769636813576273637106943331275739019834376481231970721005111861363483753774222806613523626665839899362221949867045493729411281551101210694472461120944021641581886554739919041005940525977273670800906155119085102230040285357970874745723793585289605583971240976080210493470007521699164565434196530156418161656573460533814722340437882772513076844286489217623092480931716371049029459747144665939048092243356390266033316983187143847506397972162484567953370492411075137584854166335522999635523158179098877409851207082139912165962025844826536073037036517909195011747567012974725132508670352717085154700533425562138191993845564184348728970154959023673896642231609768015834462216405698994661454452070310246590918035809518974232549702779668227936592339558456914015994177353160791624384404974779106335494753684224620545121764175085741406650783693595800239844145366083676692660702611746247381728374558573963120423056541425109314511445269825731358682380530955966181881986359534621412328593707150212196324210660769512255417869922791929544080323744933079003984194795128663952503104971646271439428194265593612429017530402089165748562898854963360358657573483365950663706547863310990258652301440390265053059633650361283691228229319789247267728486454204585696901118930697363469880829082888812692294497170304836390006888548652046426830937133576486594906049977846690802146381487374139055669279178160041776799734973997594962938996193797859197315242519953843569841779939371292504862058523208178831736805596866408621513789874961471799870457538983647935966391576525253580724890628205550882737670834933508689819236739754302369711424624131012024880462331917147238237802620448437146377681614935978172246763228362431590728156574486777692492890397756555425869491278751823734493671150972035099532597500872586400595703936736778915231515048273063098983887761603364425670658011631678762098698253493021488859638168918399632683582325585492056710306704666451580181169233529077420768955491981191479765620389413368111151674093075547075201583533016207105507523527323587235878733046834634887810734757402287356895992750493702576777821494684028418224765104249377157145503752212065095842828108820565414943648338634591030472036521317654494626281779674807766954091927954912212499403900715164129781407207799930842791081793756671356026677937774071215408596158200243054493735122082894066483241546973937853315968408532110875853649659335793704895182424921375257681330393776007903438197501321620077320294699983634519002522901259531568768067772445322470143977625665843571781910127573730053508142687406683773224311112955598388683264998140840290449476423602713417216644669119196931275173058480601670203875632869802212904034082968283526762805703611469185731934219275274999336674911016576168679024607300691365110405325292434585691038556456369602814446581631606036178398906598123602648713981432285634054996771314797408785171391226350867221174338223732890855463273841788015365507026767274919178948441924891243689353615201064404867592769762878902465383675306661226147457516843891541133413541368673439383751095137753649691371405724297710791883504789913868705988419294098870538000262170148764644700870973222547605252802773200029351506488474901803677509750943423483041557760258646112481287366116373535242883124110474120565794478716755633467297759956854713299070605072623314626406216863582927471140805220064225712637951417909912221398601153896420115469191565909187457981191020567351319788290574054545826221415851249824271732746810024045653083289901375650905095180257217631382331126769273378951387487075545274569089607097589197730080869939515959030007590525035877970587856405928000247222694788193625106654730098991812607942280707704158512793217939650623790614697211923753872696367726316747511196024877503586796371041540892352085344441234348377590463273274590889807720706792880625576970155446229473774901619900053686424410629674687040232585091382343727511850529783546424772214938857119111654417766136597273194642761716400777377797724467904579457596078643398864761990245353444224480024189246754754622751818833798015051001235680714382159925344851294986093327844194186609440508795574809081411195070398607098223307166406403525205992767045598388583696584723085013332178644481197385423568982356751908160876235896752305810467588152348473063704202341479453888626741519589027651104734709327740442176408039695574346462735386194867707244958133804651162305138302594337566807182982301226149065874232901209222840464637022269664161482469025015530973939719738443748379490777215388346632456009754966505810427616822695575679581939319597144895267134635743287352254549097361042711303938920457643966009531634371062890708915370277303616010394136792553950010845465743829233892891378991093283230742914207073240518864586262326797173479250651776587065257265688115939192926930855030412958047334887662331938144321342000727611575820688950736487562739247082015478931574346449698512684765234127989642448311585612211289722966945393398380432860873542652017949874355661834118045917548572382905745915444876886615216999029826950508913224573432280060761368743882240307554759305791605196614324143921610206385587878381784713112269387227702769361411798151184512647036989351255293712814849742060567631169246199433987309093636234597403033405929534508330674641107513090604820938471836470536956996220253565762514924130788823618009769995913497681555411884060343539420225816515987440478293205438340992805645029256776877802884785704312773416807123767490879770139820048950011720248625027961345203420648550008323839992703557826605467474519983968082446999774421092373114117715442512428040184284625901475954073007104140639321317967503528024351921416676469570813967962193517493087716289437066195675296059856252067150452175006500503411605090914871051196291634207553554203715261449716486640082850287449139220246107754324427091632037300803092431382286757575703449795380549591737604034577289731526010637268142792162526837969738453429995963739541113467833451265046343077377217191368010273080405459024387278041063825138496546632627986219444290681960641580661235254827650343663738178396229646001718049528289945554784814311888683501278574334022019016306182741187921944407652306267135184825717948748061090900828012211983808312837629803460278537945346356763570389113019505865617732669268485196526039695735780415865199436075311155816594678989334480453057713203500931341886139505378773332020990166767871265671178929003513342901084380196652580562983392328704058089232958558632771620788816367331987728174800182179783094204739520190370730049319328005615766657484553318857256051538211804770674548560346910402546523368873067517014227432344818891043007680604339655565711207828988740646289503894998952027876482051743160614641545143880832828758436643171179194980638111062309914156835056739006416645134017311558668391263233064669213157075516405884076749627733148331845244754532313492407845178768072533747752713890160880918229189974687868643457867163332841460568510117334572322346539996504997348006848943272113482530042095023664778533782761326957489246569779880202365189756224504237934080477628567993922880798448441566398083186601873483955561042675654468042359740974414689786177023331393553294102780379694921119752362240667106048424567571161501286644318136654804422982491953827166666224991911024925816015970393543450314904306019589326102660937476093970849053567084111717832514289394411592281555754948682067114987882938879087679825250079048473856994224978894078971478852220117388361793703024385607536892905304677401571409949328330505491942244960013794377590192046846669214514887070414704116800313695756491157275961885463304244887815388688810070110987317178613354624050289730534044696917486640941527116751485001640871424513066143048516320356552041980021701012546295911953698983849600316605457499380654448639922507639561102917321753799521673914054313877359068569895403400990329206978859695910249261041180828458198473432828776618772461207046615055593786809753760400460344227397036363629766141556721955683873473922537133514473747755112318035213682982008970400065801624564127652386430932268206731394277283817824468619401363556823802602539034716988595535083427822257688635725747369391761789773972346250663719557634583344303021787870466713246007684443160412558148913329189026364745044526314207338955915094470593784857596428625884614669556416260384602104537383373237401934175446666754517239399779800764418140654643166336810198248275268186212320141766611852299068307142361064096230993133805794164776293988220985946901515297587947000666676674586132297152653415787639475334935035573368913531085983073122059628555362000246212687718131719094952995077039872529528366766095818840531927832447679554785896352258791264357812099264541248117313114199581669591277417378966861696307559339526359307821601221513296386050127929690225506291490398411108545426508796565898930756758973116038373711000448243014483596380471118099912997739608939104386161660031664181868458583771215728313965882603364001866355227109134716316519164376327919052238599417814715764135483705591867218579797620553542730310393196630984166474640514359573822393223697162299832144943421816472402172024566362817093499236352752818381430993344710751055746989261031614402761430709806420299479856213833773064514471412456261053354529359886410959889706495098128400129677066573895251661751101809665321083658216145080286656086157424791960814973864478544148115848958836325402897862471613643387442809382997711826542440527667126458645967690802521019097010158105187537467551873325611270619804167058851962141104563677126864058629833509452283124957368306128720544343525978076547601420054137921881487381410005137964356729936055762121842101521592817060209706642661101898920380987827290564387674458738028003276354069754075851155555216000263783876292729520800147535820181452869591780504010110482485702892448998767959678795823110266563087366148510844820362765547194096000758293561281936598352264634893967108510744704276388243068620576916769557215074282618897783451807225054679965131146899613353606368701686903033084275419013132542841739714879512740318822842365084371292263583277510360831602771790614743893299257324786028825839818159721672541041296620361259931011064347379413495544085095137336423107203123236339726331910435036183087367424652987579253695092761716812062586415784406060099374598730517879926968450235692240330221132931192037798684846591882854013688919886246058381126981387349324918761400026144123128554831797962214668805229401699780676020914444451982335971979185384143498736885241028732485067743258818385531686894467832041641808956072510596645678483559738635397068610824962063305964485558995537458888263208889865462464845527217294402561248575689037330669959215911439352141597296069781741893239908963622291060815413012913474393484967942871159277591598646374356801228706265098601113458240160781655312453776186826112954337068667804326983926282709876348624614715421452286148474079496074166940998781081018964260689934721625519056442190607758980323651151486941571392036978937672963622226007106785119425463397721481271921013075358848983137469251057709130937578185005624160397322479814431015077617361237280226373111787454646408095830881276615477470705846972803971386448685132206523059563569365296790912019647187523471355091566530075324644466523074252455003179287618842060212358302261310289404295801655776525674811473951144097078399197621365714004755256478781707592216568782109843173452042768230166235906121973726882516231104494972797013777497335889522911444912602114707260564218718733225723466737925266258124942654384858465138064467415657206777711951237910775741669817327715988317122300661537036002520427874635976440277225728333339164228898827191094220538701070304250063472330893110334121108275501585062104825546005781014713436851918913282414241292604466624982444432729111987860848374904369293107953157505931210691802455329724394500866894745245237224269610781233470116010228423867724845146133765631714622015081174081060049395080427283345484289661349867218298396339307809567392078467589960327461003229396922298383052610071823966334488737118281029001292401929690180531586245652787485156349477271557553964411342308561450022566797397456194828393138315463029010089289494913406090602198124227690510045674882994810295380603843874770743647701596600515781099150754869676351927040995862168222185359355549608910527923696346830276793118156507790355720231648255021867573909873366040767796468314005454585186824475610809834638820926898248561155407196707509177571662384448130248532745076132473827672404098805793295020618078663184371701269415587431150285339958713901885976969238149038856610574018039241730116126258639875455302499021389945126365398035457107535893420477823739791972598053550003365668921892753056606403638033567411202640397842864110159056127983728022906519465980104571787319662922500927051468420244823142738803207449556508616136143279508988824426596488127239001549651158711311240110844314806571066050195474395468151234994548391338478425607298638585303524523203403033657131857984659094238295870634334673673821937450018656196566815866263533216244070674412887702961826375592626535035700451506336510060154610065543706798807109967451310023625569067059515465100042964223399167042458699695484811068204586648604566599472321714914636623497945850422875326363888199398409493319832196668439782582893278216247775805094401280268911198758981575897023646824145989012000552438869771218483550556660820688056687097146146094781919967686763167532779410993546850297948948745169543643770102985970020477255720244660664867230510664383646876047876132942662086228920340982224852644079656754357519526890362824402070130025027531335611583470860875145418479324663842829006285061656095854018285467655051935823130846529185738630623951942257366756033631546200028581165823475664998816997115716330853141129909713237322451770664838492887732044847963564000585615516057893958459405137060122744333221730964923083111138487102765499496723327970478417207115241898734515188125147907858480526792287675066939310333921811442171709682540683462359985195000444776555744943158655018107787265356064103655250414336226597038642353943856962925738273841718307224147235733510887541182355191106006068964973235729235912702985191600108898027414088904560313637122205630646854509591696943002427388496741145598119429441308332725920810531183674949367872583467892081825378716747769268984592133461176813150544318539119934280503958200082712236381944895938683203387491173343344188092797037940229386512302722670484077331484292363140393356968626085016874601387242043261520847543717184479520575190208973390955168469024437722274362637820198870252139640428169264620967238796527403314589773636353043307161258363346240777120593430180857966896612637625921693027894817036801933442658045975398023766986370260503732428186364376470577696058883181089056252872384945347347543503624243341189163607404324871360909555494800468461422450510719180637703417629703780725776499775966292084054616196956254724589158511413794342638946073119806096050393193059565723798476533680472749430283466226167963382437973129016428919016059698757638195890113951821871060129691874714529664943083937932331801284117582667728869596023206080222335405041790388508973867843998681455478479214550707687632266691739241040733499180072127044441743689007642510897359752189360130722755242134642995846715410156023720584607490729890572470497203921273781602430843709906084220959856291700233956597300750635577723589501441162479952983643848078405487750348432932662107856789480244112630612695245183184480379983086783500273195110768112848402111471730573941137330993825152947642507308907296635604648486322424388264143053126461281655542576344509316196595516379049449232870461701345298825172384628693363465933408677505167459181918135390381897088011481002910507684935948464498507123152417421676568025485860609072460007630120977742265002282636607524626974610456080884213596393870940733185720324728700839052492203223075398464917672219861712054804242558003936606696961214940131080249045700929159925955866326989124023292356850809368853299126859269685779824609284925142316143667117690431347649741454246833920214216034393869697073338116621337779666681511215818415917948187897093763032801784960082798948352900843276081231034807475948213440170130188537887204341879808513338606190559607422817930983248921416009416268742899521954761385365557437269455993714315138205230272113351527624917784625091462962806153118171779933251419033037374338960480703882855877308890891888630744532978739702821172377147790317101057248130278006569125960011411755922167619428131426181310618780585774433010047499206040443405134675155018837059929994251175310704348861198227334027601707664157372816254557283222196808283256461607002896161786410370937040968800995263064221287417275425998751821521849159584263792015048801354638512718103341618280713239630476929932796028646801473443506925129902525974858060348760596829365797182343850606822586862863121437981763133168760867710161313437998004529901399715354598333924462332783931782565598406173364956096888203556845126921330838917477256280322566966861225120843131857193396067598127786610350369981633763227275974212825122384757178923526647351767629635547952255075312356739018435680742168405253755173055264911384220107089963490449590881397382495191308443370262931653138232950959245506959339789113532081461017067841639035909911132469150726978637450077131584169471634815571246336754570166470407473992651036618707632926191755377526105303155585790283912875114859947239453778976489395665650350181063262902748914450924028314484936885539769965736788669619060794232007435042776181230163309977636023886953653420614478380550296582826192199487727530857061552987878682594147900458898836502704314175444163390878558332270511901709629063137069727269556770169669656721009075310952725009028356893907178074440875923259308172750721427596878239882056097355117694317698830882997191290983498142353092093445309978848397365090152213098906515549315545272759758747404688229904138739439691819011486466815490589411829763211939663407536282246423349305870250227834893739158943071199731110922189647899652918959936171216260407366246095946970411276202586814107995557057514911106357171350465773999500577403337126636448150836987046021085628386362523604782351097709850781506371589369166655264629456781993009676217664538550045644485034503953202730501448084574722434890838388747940641067884277124469935150825705642445980924070299676366592774479102135677393107703482594591063982433027256338138455404124065885230202938240424652830307911777187784283993375032398048016734801483521665795875913331986156497913252909508881684270520784496547304880504541085899757970032662475462978797966443756205112500800587873468730616575902271657091190894446564495995941061670992637409763791078942869542460971686880374215749694874342972131344032261141348141027703700745557585743143773916609439141792101589841106948102270272911598757120085010222238293498120831197519517879508920455118052868324370548858879250793363067323899087416454845887944686049489970877911057990725363410590820998133327323813195021834446702226508163378756443205259644499717378919057233941937357074533019667012000472271645815223751644870481325914170878373548110995406822951918519833972289009102517324157767183288047560421772876868158715211277096152796684742636278212919341094800181590532817049184576748133624749497410158618798130111855410028176834134077420559998321808578437739125052994469156603133180070521279205247049750431902975825375259958666042012911730077003655350958517424176349466218709855043812783350227483057556286109564530910532806228039272304397657699632076525452237137929990989091318008855545310252544721965308867520027649242340101467250014634037540468657175676401365075576462970793395090038470545805566587180347546697718626463165191044546238319226075259475785201534577836505678741353343938790593415838820828428736231835413501009242767686926807704291353306143796511935280978812616062648606131156060547904746733623486846390193289514869978622624754843287839783198431084136088139358428989248732219962986627984338902931035800577718288474852553612996635206666558046364572635531135362980818289152886015376639741486452510225780839545794792993486674734015564688536455333771448313811806962893896524629574292342945997844679955973006957276713273600091463940395855831029265735038234310867036219466664089456486053889815571712599008769671555141731787038157096271069985803853290260095909639281040602888102040142330176697058718432028345396120463889454713354364175300975115201129317870347262659930876237753151173618604262911460662384384737831254870329621303324676721123041268359040400847004496885370381219323410924732682274004308913695181702570122297866081920676183381617552636984582166209672054517060422475623706781841801251329728700008515092034558225030264491710539174141910720496980037203111464177333390348131766938474831933837441394784756867333827531741301229298727476269879764280815455980206560412584875843913058876363859938454843577893856953792631305448836290301220658478105094466251387559774905886963711522588645224016142955522006368806546519533445906083642339000077379005548742339286323349263979858314090748595563190060510427851948429438745059977491362168052977211820397129077834533480316329854646487307278546906346942526267983286380502397227628053182978263185256055332187931691880958350823137429972436227648481581865106455612821466339238472857008877648953255003820153974982477845612770960487659745816707253555317626845869832787936996717223588520698815604083306656164778136232591880251250657140332340826909624126556365314286093694782411605425455971649116269099109472086046069616900220096260661176163740533084573375293344517080460769609385601826009364905379395313311467260389179608722712777661833899507547808824644113771685749503606344834871101433496705769253679420100443150536011844897812669421982012235803680756462490777400634373710827507877796287362733269547740753170833914266924501059860758768285487648857033051114997434247698411616053861102858358660035174278474381733809590724858711583117410085972474098290286436589914811521367244714317293716567923989951499758820636128559007491271185607031525570085754637487635240057983517339008350019054778178852943740061327280619394637128944522968900984172771369213888931368020625963535454898423564893671168971570657778186877764134550560828474716500177004750767045217021269698015044434578160598765530764021291032581033968461037535838421571310769160544584881446007038238211294109484708728806518280661446455970698990918648937352515703566008784227488283601134655968899599698819095056686697925477584883586309662053393492738196578505040308254096793868502061484056141821384853456864897801013041028522664374579310474538521576188547714232476412153778611560877218228235305884877946912760862640175826587833825607121397924152627669191785599655808574794834531979736004836938034267244305975773863560211637297203978887247536778535566109728276170165642174943418197598433458431841821083451439013936002973173711544813552342127373164317824130912790837385351680845373320711133165132498521434445013613242140823756480053493237111228864984763796904439723645079628092717467695479801903460396542443949104286129373533405506011654722912822278171000161279578043494378324082259895710922910650668831961492622446250868260881316989916725269805230041186494443042244934232957253403362384199972948348464176621978104136267751508381822453996187856552923724502659749725952587202955579191567179476038184550613298836943807536919090216480464191073696443604682563440017910242049656499850460872120423620226766798375122663153336369561962235710583582546313584681036048553992103818567455926426628380606122706803805073430602241579995392464754602633539257386353686389837667781429322941328332694717128044826504797635737451917424326411925148154353406558264319569534717200057367002716122019838626238944104288968700693827506704596448813604169861756652028540734288674394937934087520045234972939749067501697115514517341815011333830704576430294984230303404346064173734605072183087579438193288741932401280291575265106077566460454223667291938000851811799319319839383207013818734482313331063538788320173881725227652654148845858195045488938150771033860856371996607157904535070467021397664882661197889447466982437065390905763668617330150848420551892513064441777397742189815730974438208752041017555620686438448371999450369243295437258343910967383094641754298059835995793464729870629253428717157701714204385688926828455308475245201137868644524681917917325147198131683539772287925806871731089047582320568635187633355311180772023979149968376334240497485262350619044387830989034341130169817148906797325516564155565709037517431603831904380157910861537628251443986434625320507917531775029417769550898056557998059208648025842817476900257233494566307423499026741097315023301780837997764758639409262174993971920631210634742134254711824168427428629391123182174393216968617102113075710320251894432710162383949339205884982081718996032604248907873377195105252982368861267289289640940598700309365466629240142573068082799035184372035158166986792177230099778618262435401039628981882163387403351013888694555185771208561349176880605794639133898536644931795132555714702191921148940078006075424999366270597982770346350689701106965559313808328985257043983366611983149153726156441679772173783024709190243348678521548266535533379452424800545598943726192903910082148185041237987181205848117382925341966631969342796526274663783879536437213628576777349384915827260801944786881991601680018608306694965846836152153802276602582428375344913672088932638230042644170961281650844823876037925724713463350171037553339665474598463735843982094577245515525048466719852607153976359205862985134314895548597759009839093273316208078310674972285392180154140443224064076532720832677821964428476559019355834764357533614989187778227871597598706298008221301594722813053394151357476559480494577271094682191382629224999241702946394399821467196814081987615877667778409199557079268818054515048504120978981268393843035411122520327421149038392287164895788852375947408748324785999239389626223861485769443600853144237254281328450108702940112321034869258032205949484598390133427417907896495191096752549200633739338550729926133371813473358702811396070949053699709114607148556039833586606855930965588553534599665570588504341973513822119765193671989610096399105195817265967908968482272226321187568157081406363721145840540673384218854595443626464310718839876919289627387585992075390862076308516184828783055796673174210222741995551840511907969856392459850196390626910507087903155463214652952666454591524863189008421135646093755133377286103172138557246704184270450418332731837334374798930129393113145470543437448664529182885501314475790099178470840356590150408019016452702741127531305898955514489199523183699212683058991599231970354043974130811430842417044465780241419970689688578065063783543935663806987375587725127615522357796715451483419275633287425991758536274204464758619322534226437051008303639874933554350101731228338981381344567214911625516186033418065847892594803149139585139314318138278888121152175338443532241141886997420828963888116249980475075449938254013735783581461540953328834556938429026199948346612931541776543518519235545944725742119639117526138429312615670592519926289361784373933768581142715494901818804663497199541815195644123108970949770748285234341716798606942773548515619650398752460436344211970788990994240223456827502248135403522053040186307330138780539710550874290902015967299468530518408301782877138585332242426508368681566289579025397575258414347970978575007246506663926906633671166685907889631330808592249843744338602680076376068364707603090164103678456040167736749364285067433592875701475588309187083307977064505582147355727452643505006219544206234890614460347533082211647640740283797760351799040929063838928799127958478869329516606977085843758767480285372638499153671538342204812995634963200161509429758328991434641313002682853717634696744805293540479308972630516426437300764707915761324925539901864756069466433694600947783029133566223597779272627932506514953629398869609936961352914997443042748866712750957935869032021153860133125834304577603956122795389212898695868394649577179968632671366924365435665341747350427800240226363114666296315658096384980321511324684361007290215504055879600598792617037044516615240505452079306806702794014226468582715727601113639986176910682762235542373777236969140878995565305043092733189090405629415554115099865909131786266769292901317316549438992754744206064863818114252652192471608753247215455105287762068216611624774101973482602609060466817929351495550917722835967451905104735556843051787942640312637477525320229963790240393203660496390388109803417467406334340835859504845201166910313531142087095778886096028204684137616780598324933658760927227751052378789278427812936485831581989634681585482412584596661275257566090464736086023527805116110548030822701764607782686782968988082931118989855001912099217803692150728660274338941990925681003825775375729519380681135204613181418766484255592849575266196945560804134484312701688723296146445825262674008889569984589626074090948974631513986683899875502774589270834237739400736672634487877947604828451623551441419170478663972967204583334226477022086152202034962703728255484277873389076157100407142863292903619452752045780230154246206165104482908232749122907016291021506909015716489460030200808396461646176723370272334953929798352782247491069676452864981152707215496681012980792039241354483089285963273887254936444522222019475111738174835804647290925085772938150525141522640036802651431747300618781132677642206485377186300348608842080698196675175446911563547916394741287273684047689351259361079952190983324072632001101711190107694855354228823521414182882848852797099843690456828003921675568777755388691040293486510635193511133595642513393485872479610223789032292334289353786374116967123109475130162988108856309110137132570777037252162754392994127224348460441688425448069089759666085451600201089784940861707305598771758555931169962566541525961378928570890671684417394856563935670228717377517919278180076674937922935758524035147513708886406453029401539110381262587831798223374878460270707906482440178781681266183589351477718799416152178486095696831798676697517090155596345884084420979649352897858379081030551583997122733089867750505315093910173384159513629710494428504159986858416277697018026063704604536857121623496816608836833695100566981745439638731017069179133696766557550447013673578488634560822234327084147478822359439824325137979784839467594607739349379935016428619326855022473008490099072822777961224559074925899412339054220521398433970982262382147918116677045260814277218781120575132102505673993135293368111792227583653421240655248588974973354008092346313758141005245022325257643439854843461574374416660396749292207904183280484286893591111775349846589834425938196360152250947119702273765629391189652674515180030796637861163086673335303364501033791954154719658198267723545211483326512352202670099258366812373150536833456187782906904733788545653968205687989626407379080443100445580328334091438175854505263704172806651888776231685044982405491296551249178848590880705513636261614083256554497034595516108383265541409496350725367098847052629582203171721066999072942599607669428503915106374925973394635746371515647076142238524612152420194773802923074440975722309856154987348661224580814757067881550972537301846382807481501818781047544853795872738788624558393842632468273946498471140795910126959190231379171792333481509848424570142208094365625887427607611873986922832707512810305949377752600442898742890794896183259334969714975060825996734460796396936694815094233376262985837687815293478484962674292297377949387171641299856568615478853959620278344478974375069299794014726765249147424482246252917018345691297207711959156681505255653137935910275196442087128365785946421070461639338151352630752832985161363768101660445293380703027211080756899475777061920865994051060026166269390520850340711460654572400126254269270569144155973338057439906040923368228536044649791062705406304632093656049937689567982652255046379462614010612275549851151632700087604027597591297331396154032673142219418630417272352791974284043643078876293493371517203601691732549994209612924985571424302050319746365781331875142282598058147199257958624495510611013303691108490806367135805483115287448356914606329883636310697705557124557832867256703461100367346815165586144651976510050969987459631365668380540759871692879387192934198118819949238840012418322202789731941016802710196576085494554561051941577610760747277898257893267359835875031410054656175337022915864567454753521645507186215685571084994025902461866050077844561618364267625364138193274167449325624363665512853032941045743730530657529145069642870468629958078511800580963243446189534619700009189448847782759597175652374124804626603964833938130887801986045288217046242854301163275426767662034149250419875705214429856113908096922257583770545973659248485441112833134251746633953537523816465815392948409611028327767021681329966560288991849344567112628923638919317490530335737543404158815562018270730669921042421044707297346847678671599950170748427606635606169099478301793808237176727477959486285936178671828477187417104425927814680881524297877008840517631821400001998734609049920276556512584067601667235490866197956201043717900540340276143664852921075268614594559512003025803901470199427679376919624514775723368196428023282045791805040391955541935919372740159276652493269011993420835776124770767772887500403204934023678696980495704662482443642007749041361772027245462472784883111122830170597748666029019230102493034737057405533353739574533520624013238429024642872812268657221246086620904364387692927466049734171001691647863589985687570178386423234659038346338403948677277934963406449156736257866312437296893631366395318027211426947763553392198321129470434825490862421222085488270688058065039187565335213353022452151274514525113986440421765011569358249568093867226770386257099410593736029933690200923025385233142318846417351295438020390494161622307370873302946918981030289424899061785560946332560135955644965072572884911230023895518150162370614088040232765421879923846048737559551761433116806752390572500840323496267996771920798091850904489076863270890557756063206707223871007131975810941644768480475328165909823701117229862363593180670678391555489564871836692690689680460540351859525709051903452880312733872081037716418046516822716853689202736461903698929100808185373145196550882830681768090695402448854012676451790396774836086465234556871316733089115955922060899432368610337912801954287839351742025553110906376028946762429346941689601394208045334549888950498825054544643720399664539910375203523361030803941609430392037405856389591100454741317469059869412773063075831393847086383746884867863862675510930265829217008305450524423303533706878536351104690622906221393275368950455059004330682312534507325470171864030074745983361176905015747910721706136162893660476210501905693492767479584234644941557645563140001245370210570394581383465981488139146253803513747652867232543453807431433732106114645897548413077313966575473092883754764002169653095825493228198431069336495023159572917214025695979239449486612071325607073851751949012552634029107299641570060634913131898117684729079293262470268313565152355848813773857697780039957470621934884752260404031470685964879155299614897247229080051253766386876544264088392631282323939339428277631494892267411415686438174589264397316146465027818921502613647634261978741063540667020823286556080477580006409840222908683832864620719357287170771591044430953555575055871782510688875674527737343259010882119664019225080571810782281758264383720224497300050246511735019882870151102502448855864769961129837147975278255801433733758989810347538044393829992884062006767695227671326162610195170975657342607101864304452062447931209502992651601283190532923323348961200897282243490968765665893502150592131625120720299662631278260373332795862094084228926517251004452335479266505276187046224951458588760596570388386172941861992661889285647446293291409840329136026417078117052453643553207655322829906040679815289778997152347653673760011385832375847518391128065768233354343652526186082667915694047889951815608346196350739080097096122106608781640694553935980892011685981034297865026098767713057640643882292470046784331351420398123654916307086799431376948701711631852046770046046369857498106826953517972908585235344490507740490381267089702296248092685008641572391262884944447521337317707810089501539134816704630347487861710861384127541787302212264870071012492685113899535086782431486000983061597833820253384447939040345033508527052929810709241279947626145417481105681413404838769500777240968332766721611567199551269639977684613031470193750618732905227357690750398694719857709650044875713340070812150206315679463095908321489572374162155259194678700413226330366480705503189009388817335292076605887484354964475222201028433578603595516975224154495461530442264380039845479688639290669649102167433849178806094511617361811937134881688095685354012785827809419074015784390883764686889709030423479789526988387374023758938650828730538955825860693414436014561043178524497013601596412373042069226326231869150283623439822571992945928079979609526193733618794250608209334832073469223914028757204761074587421480071384825721560579883818659254600113764128284482063367067453506445956400453779200299821053094837731787325785776902928004361623448664328941876970192133913045709745203340831347198522267864173370724173747452894583082039739744902057725959159782244409202286992399456276629880479201091214845467285844197915793639932595531492752496615370343316861517884977811878215133896793182968546374166461053528792087808350278617875197020091259578954087910120766187319632066338277029195876835087249914105682250088820672496264205791237792924878801201838686711128410128543714500580778836058724992791974203036661905965312647302060570393001294575032944519757555827862673931804210384521760416353132385999139864906983101452997214704426573287951519742255810093760390738214026978725143244666329673871624016246142435127767346593606893631964520297762188871822748964776639504616824069406654176358801705220193378599728257818230610710102984033219502078352664791672958858424483381811200581192454428465713316379770359491844576906433601069174633519781103047546322955916571630275832417820950995858478345804012652078244659580553271019661155877115641022113407019105935499972948026959194302876267626972159596217347984471838712457124232849816237071650514187674247928172142138627195583541288662338004753394623746536868169090050292042784872034719289273746332486988051038172031576286129662121628150255498890541795102837303283954142660967663490666699859681841026961848988001137051088989364084948401677753377932061261038648791055298078081182965007471466534357373616464953260040099892255150968598317839599102702358161529843545025293226716633039598632217040353565502084056860667149976992935057797781336715219077773742848670743897855386197298062268141854816386339415775331677220074415924262473344309452091024873258492900490844265791123058672615755078927475743290768574153506112776316946746793564907789501909560501233051525104861487670406492614309030369985436329513318053285045826908986521156989816052412239141407523294083999642863070283566766498730319684151236566774345790056110080310759558199613729755081888461223605178387530196378542266233278759610462840303263018351453302098736495398668902034522041994148219470270964137289720258974076604335133646435726870416156828256568639250647791137736583785301943040076960566844343150046690309800307033149173341992694492452451246529180622302599540895254334588518641574319034025626354665727187599645224194077100610865302942559771076471073738337783482699433455543903214223135759984841918334247364736223644470100765807528851681479971127164876503152272689505908861935519130138186088523151490452039530269038865259046708434073730272922683970784223476133163864466024217691121169233014086101317657210770948638349723851104631858106720801209210472803083490630842711135933758398623789587244184576633037150820328223366042845260548306084204614213501040525899249330850049384664690828627130491132406628306949039466901441999769695175572258753601664743124269727966454430786903515031290830700823433658444795295141878827476870617849275114385767702108976774283017452610679099616996460580082601332048570949642819284710068947363787796489341639206904523318728286518214948713104240562950956960094665703147821480440187715242045583231746480638145901720523711101417049953588735282328354396628457130391389397449449047468400563491446952659044451632515350649712008141162751200222031462010257998798119570044281780204808113951065971133784437803045071221610550199754250107743231319878836149617751490815152678435001427843166280703512968639507519044206501942601307526715592607971467863442741079794697471107709940456971962040765459919956664799752937509968820214580097666093540043256965661331353722685767081093626829852862325333529034406296783783273048888002545106326604142169509865848544817565093047211608873336218498509946237658916433631290558364414199015284774354172716668527126542077799598405789167807814535859838664859943719692656621146259145718095437832557387750932775181732679984666969755981975145510703714430530569722288098134157128253543996148382123903460152613584812456687918434352811918027146700179229878369608423959751425024811603398561750645962127371658680652044402254389141702675958594107195375950169691754525507660312894379999658084592630623822253774100298282652551007609523351082464866060263535889956655050258462623997670409950353900384581307432844595123796847959261564509405307294101073219497493729295513963712111452305583349529096189534160405542717262308219262313583600680520300206531266488045383411679148829470097188281302265831362401701752913646486038572835551179407634706606687637279275983382213090441866522552961078585393162355969132158387607831888170518425173988346282931548398606253109024595776559936048663780866820989685211443930072183608076063050292124474854493229155662538730361437881612824930604117925961577348876670244281039315000059478851512799006393680480440920405833126377385773662337735032832685586514532228556403821449561690645893435116331068707642959731357057628492096608508032428466731385847925905172238395778047659679562178842649380868027692881473537175967217014540743977072994310724415162917534079087914096822519531727485423186223278616878424667706701819273624874500627445198413721090883225627787620025262581006350725955384331920156876723177811130468463219899095647989547090772017280831615574527474046774064335641091652901337099274709990092099859822919048344110146724413340003347308141542436809408894995967669480841432665340288854011245105829328040325394673047561881134092098805094197098470459883720387438334846334147777224150227127660350742115731114847272085258721680269096477510831812800322958982522273505495636149141593468404463693169916262661746827318915064800585390388341759675738158373069891590368362106738895693757191931322681878336765324790484757310756158229880580138500834675391850147604918854313642818954181448232201571809153517954728866604996328772583192480937697967152856466272435254687231421831322385101029599398484118261429908321897722378112717804626632646853492946972443585818695874567049364601990848497134560862506245447724884024273311374141540259875475504401559236420013982150736517487878771117275056971775404728437453760045020741137774741996748785020885283491245155708929238553672883696490165200188537101958824637640257613736938966761629621688982045877236172090879072325951952569709714722759775403048699692639827528596286648214240936210274796745795692283743553001212989213112930919739093818594180651890212003867648233199767896259711475830061473457987245362590476579688117781541669683900878956633927731749588445937986533798401695177851639561794780453647552188437889348534960567157303532109763236131396123962788691496009077387063337098345009204926888089537207725059631776662497370371217879764502443614358175523672431624970558233606232026101743650484157269162932270703209811328124642244314519613536747468831524382385183984028945661034401525643743016938658699244758367889176488520078147786942826537632260732238090214654116285797239813801822549515197725969277506386867582301172821419904730229925544121626708404753490863825662696161525510016159461184824938268840572581203535534699680328103683929061556802531712821490632579806590476824387042919351416399965602897588349018597005946932184308648326725115601865692506476827875757623404519299569093253385221561993585184251812486304117877093754844572672764270689290676606908017338264144915800537269699909332547669545853571652458360311347343308375969077170719659999225789944841579061331742854247888164269593848722822187557580530638630475431700457125125112908655595594677177061688445571167138883404550671381283660757912150167950839604288530880362430933237461899088752030284328264526087841507704475786909175953345458675352502800117319857251026007598160095346610788376736970860466497483873954517612919001085681011203022715603983205759445615425541344982240953558519415943930829689452221800457323724646581013835452311017433012504914653670241686734317280107130726443155273664866528647022671748777076455684283501059865003172400168050053104435666870721853426970526846990728508215551542293787560634333309560295164442724719679331373641443266609149225807721148395291630198955062318308775214590844118023310665439286059225538593013709314887421332187283573712939158501350144310911437262557912373906793267574434049018849164447598234616521093608014636762382406444032882029404580582477548461154433804599586838896211660584481344249727183764292798635314169669270498387468939631540326309619076574297202570784855958963427479123664728665786932317211672989215110235868628710010451396547673036110566583910120432349605661648074097898622618034955477003361532981580794011078062219963944721198170568162298758794038951452250540106498606996368014191216332395095610849291585508657362444121063632426639001082655211269236246485582389510351099360321900167962984169439310593819046839945554883053116848934494686956522308302542661809889972305917086705469579555860552980486453467189359365882137886458484090221827873284056279603507837635432270037255749576781527900793956151749374464595831608708798746448543648281374717052515256538668639658555347748963580611160813420100451597287196444393560715219282347644713030493601361282569457402717952467423249601092380246373149693060995653596979956969335696007176065211383870449818368768996484666035763877337563407755486189957106684059747605377207895368580778807176898203324355229173238510914011687811848063096250349708989306336557192192388939711990051270894483310344326387092171415781159957854477752592986685442367856424378639383213394967303833574520099638230778321782763764416605569933607469689995850171333125472326510430736297248564577765191147776864925430011960596679575786293791224010951418024627639451599565032239176200791432656961939163703891789066688992087701255941387548888688918648164175965120879937940012020821272435926066236984612445105915184717024838492429672160255201427292218688273505093310436968614805278475730812217405105613351285444919862145231120226551054562476849509409251625249523284520584816069121100929835005526087355752456692613751607032114919342768807819597368564909536988566914309568080136725210824955513506758343377706109557550987499902733780318326343282857860799981452599255860594044690171823025102052477207623706296466261912173372629592906798598350201690745184274722927758446257862001143311448603927227486047031187352181820020108870671800021313242641504084849873692088993699196367248829541001516151109123472200863923488807296025936070768518327334979288726984688218918329051418893022552022569131492688227161209702201246272363737624202119873733931023648639116253334718983989740659652500124781562100362695972867736021047881216897857798938389259298642652288946079506186781763370613714608850193575670527601623778041633292880408151664012862778242231685201990677273830795788175783620597725710855709559750939711711193513969765925600281981138260935109349800184507238614151012282076014589480764862558804368042248394771051365347485502006704417360716372772622975595926626683763185275978906107842871583218872279934549940032918123112083656909171939556166576080064911130873711981859868898256090923926525591527803140918403801437165512776734563592167800276443086128463971770084785036584673870375446588012630440112266014828349968676572101616203653842213394203874655003180867372106858485442668031867623838339382741346448484199402326839497484348258043513353160423372874169882451870095711122615148255248422954435379552347240873602097530921053132313176033977139614950973291521238881990079875464460445558576802164147788464064212231394004117110163957983586878992252791661975532206871111297888764990663085605446787301529041804740806052371105190819106100635548052426638549269541154083830223059015982467627870712678110070580059298917981853809976057668500293781558505605516495791326308103834392122444543218527506719662864868098829364928842443469741273821278843883332724640966202139431568030287033584833763022411478924070896856309350245960373905401913304547236209625520689420385173533531763611708704651904185900101419702365391120570848339643672455469125049867728267285850587240861859828899158672362077517442783262842145324466154394201868717222507785499818842903615275098610254641433165448361174708152061443249498359070071838563557754015189253360682096237491618272895988027259595733732252260087526712573219024520756161115573511098359437613527392653942262176429474882608960150169951972637535408440019135251585303637635180821577279827199493744888316714024466058800440172753024206913897225016092194160632765719729687046480280010753596572242675663933141367747966344902976332385739714237643285496054721886559999023858903809366466270940178556199907517851608936027012365702809752689878214219934937447036074698953752790637764252621743202381172081895721689918792078068179829957947550528819418831524465354342231562471880269309476986809113926641095800903145470694077141671044153719346787660586038076295330466121442291121024072932444993848691434518150179475323877386702580958615295859824352616643126830016480016935643693077830091920637533554028163662990965348522959222101400010410409231806896183951351570539616313530725754514530183216239410535967844037910839150445825428831893467398667535027731155295857225316002297637405867970938199131746751310446540149836868720373453988740691109088692615668137398473455137429735519388433313086107372867529263157740979596785880535941208139132430157788150472505697091501867999298635784899503016259788764994851750356339185141541478157936382307587969269738485079779209816921578276998438352371166020927414404205186934355293683238083831753792849765850834317251893089293793611145383945615149295311272366780682187181727125758632741416860299507122960075801391415661135838469950244316205472529443986100522898659170237700746115984143607277194098810318797415315145688614170999859165631001986631954624933821460376777602293164858121569830205961922741985282694059270071953444517871604966542626548365765193801481243447854149268732834416144635612821238272679865573437444446584257642930394980026548487311172877208585666688373547772680393773067356168595688516662770431025677701155044139375957018836824801337767047790269727458869594576881859508368703243593707023240317936228258539233370825620197881003481204368339158268387226403529161397873549025920738757011816970617809099140458341952879095987908741729021192346949823481343513683373862860346024646255508729633369080433616344922305188466494898139231133044733530620348954313079417316185671042247913647544335297086207822866956296299003574668437262621398809397497862882827153001852924417319145682342296743256660983077653469966201703304979131792185824040068160416382832939592291171986249461432917841628463939697121504703935998207302051414547652517035273149877980302013185753722496431268607089457966822593263126303309233396007933694097553473339250812079351163712318258736488627163739405341107656012813917340242079635019430132560111371316894061044524877735930221448728011296539885002194924364353692789121994738348861038055557958369902578171779000654441478565983839519624093384686589926840726981483006859062145575554274294260013287444748575053858362692997934983674264658482935060804711124146853146046567889349555599749087158867458620798170810575412105213872912526079361825651559946584432883351834033862432412863507022746807371210859796837523925468124515010119067687202333149005811954821660420273967431368751310116364285361161383450166490822715630327048349711550041515764057502316531069427854916775430445091857786906716221249052924409443430353195790213614931258947292466562772593154266270522384531052803509348199602232793455333891429961596886188299359316807176971351035779308245427069862684012745188247894136068508757275521515393568787751710399569982303789042243032901675283156812661583811715018137144000443109394587649639663356551015670783502373486118812272159761796423030784264530339530143059853159924233903845014632737488935888052541600014752027874167700504029761426147598549354015867768341710673170984196569577069784003955320494018218353167203456430939674395350827376069333079698886924058975579748452102368562333528717230164026848821882149208974435375019256648902564981226429088725571232171474904465979420711430449488562523915519324179497093297907098381857995943713240356832287733190279090941273632009292266042212763876633749489173025146813521880245695111482530325637357289378168605378471630641426648438123186036531618933203987796051596092595690840338908326590222196542264270188646857395431238339553505705904540840747904722544670684073338729971739951107236509945736021189045509009162557215817557152488647956900798728306696602757055816342456368767077115094626552968943617406929843268319190474870724677820316408174926937695908704993646243609519357938839504070566817441780752590956324227572193334126785028194525009391721884923758106047623683164759502084042696174211872897570163939919656090274773644683539967852122063525714020246505996153525708593133275267300345793236874973468773428855905746242614007599534206370721992442897478519135031427514459594751144033425169852320121144935980972342641994114504856402104707163591260255153996396482112010031895200197165071254660366881904724963751629613508632261279957403791423101262975214801279406913143433029913698634410286299591894511296243976060115851741869030917026137630328864901819518093050524218672681417631403383408241375749756161514789382894027416193953180241175374085890343745417305657562138818665399488630594602643594487354996829101482027372037587376039489040437424886613185875199149853399100263541625644681074756161768805915536513437988838062067313110234636961199635465312622186017273923661420833935418986182667945144331963870988890748828360450591782391387574586131454985404158252501945661416346600643972751213499900394461015148793525049958013978445989652840077858091173820278608319333345800414479324385408146689251630733967902879615614820827783070725824724905006802119731782118006427827576733598022432148918543011015382898824386700449285325053705846538357352366682684788637280911497700622874444993505250639764800211219208652260926193692291139651647445648663336529227479980720413352328872374422285835182684556003402657903562789068140366607384893774098196626105897603450295863102535999944989941176538514089603341559086625921664673844603660613594251399807562792661113594148753529550214095909044662796780482076167708610336111222582919728661635856455584092092626312225811377781943361766466689996496275523145101480543885744509455276230895190667762178378685886110648410638617287274889718857914911526657687153359894705165582144082141434558745860909568351220187916614132696022767973850527395447218348330821810227400673438614795405398378577054006086999604639340494096829055370860975243547812774189273047295815334085497893141793619584231494791566401390560859161299487886320248075388243594408415170152375575109904703705605155932680618059857257577889147652996723204758693374180954826648753775647474436440798383874031556315230250458313516301226484881145108603967696510812047059193495977033578844347638113495750310116371744306520196783249923318306161047403637161344869319832777425460234706849479756522619609956834552482030349699705427178819055334227761593148973806750061939222803687786620339399501415790759707703851484087433613411093214305190746111771437779489913540588491453126209546832975832223808010939737454714567363751701120446842267031605176352821811833007216019159956211754612066764979725031289010457692578141648540804243599747564182594893283254868216698543687366116853444813486718620154901538600951556409266333040299606675156172817983243681379986781102998377925505454520443831957803688129549721680529818824089167377336073526410597128521759805999184065716590650471406566212132192918623633375766786297031184791529922872950039820262996969042499386804427010506057296330524942903812742288894733907680864313994108725902852382603717608139047356430046814231378906588308319817958160924754577511825284285827700194790495469871409168686613029426007351391962090125801146842563072337234206613312677323253506697483667600259844425993622896258172026883565287048280019973566727305717236954368083455293319581492291983682487427371694250277353587298490776102599460604485669378456243827311849205037868949422754797859543730179631097027358424853673338166393707819475073282429673073353026598674630544794992515343332774123394397349723563072046760979688974478131620127668921996646175117380578941906852632187311897786284875880576892863764285111898696424136797204542988369710125398174632577526650471562399778603501493052165975132902721909786908958887260213906133746368734559873383148599093877212727435119464515282146610122839430316132405053444696594618281081652334326030697401072748411282753752042221951314722677155053461105804522251539888307439144229743171880347203129795830506234492825509360249228704930589843126241462839963163857460060456760928276293691153318093414306729457424414313736452984153369122873766027588340278470081621525465920042249812047812145187450217766454426633916541265967073747607523420453915567800616340890625921306496476849816870437173932209254415276400012424500100283034988075798837592304459416237052456908070838927102065134062036720032765878475363028688870886793919097660699504271255955319389756212268701403907118764624703715076316135742778228026506931253895417064327299902723676759941027339088633399935159744793200930145491309871697517619493351494496449935227936183211974304947980692283561833538142030574502205826572625293795037663233518539194937940388257535565877527145365793518628143215225062977803808743624799268955769096992119349508992542081613900936791738337087845016610837224162394743281946265085309765241226358666026421272040247729324672808092629994579762616805503203954547711379775136639223612581165724442249991862945795044442504613232780497448640024269546031474737240914583697234584747719876954952800382720648806284735570612059078966537643376823357682710714838214329036524492769892145693017859117158420901960569940261028310810097635994590617332398558865329204276840366254126853078566022403345754916243907533837389645225828896860468494763285965500301916533086867925659786111764429384642207251174194670298165709714791444321178863819401432939396459039435956646846182016018957514277726421249507568292536742466070342346188057766583592044121739637074777768043721331158609264195464623215629807344062030433309640255252317240411361749622204104195392081982573579331722897439673054797040591251342234304997979473193366731705697170141318854493942666047144109261625672342386356355376718138056704900760338752367401831393383155029866964823741194408514024553102275032747987293647110948853124863231263019386067534038028709420804555625228262238429013015283456656754043750967249655524093509732490342004526439399009806969969218073094291882826181996836106411302697317248669203870930250690310600679824817210583340688210776258636918965634083102032176847247138238652897802935364964835357816488350303563120055598122305906455942827920074188809993106524645782022734292242527422178882937883860245769656339007723691205681513036924893146099436063385263952435678473152405372327643820489474213461612225381157630728490335688281916184683868499375606466606140424485953564159224864489139212072500799259275647782571152388086423254636918840301282880693677595106638240550514087342676933958813136645808423466031205149994827105333512785449305755944583735058977433372731076600979158818824727706512073076410407628854360585119001145848717555581288059208186639898641480137976544879942032735326166901936572326238726282479468534162519065960824394977258665577458820501803531458251422355117241698376269325703392785407017226223064398470444347268837328813225772485493694825436613057194239714778370050622044739735018549775924858899353085522094071737386519941406094181660874127945263175478143461082020547262579438712300843166398952079382335985165971707729250744831574566661439856829017804741364727740707560815399095617227793768812865691114553565056984208509586522946291053475298112588340911614611082147918505917887982510666680137411775587864200966436254374064916027836980875308726642488298816037121937275207451538662065434903561406187454485385260445398928361313718597641467462613862830489611686767574031130559827522343906039013511678761144121219561531419807050098998489619247026076488369086633767736561007043327291157126455754460556007298345942815808016642891894165802226297608225667804504714011243343254242409347179558248903555229992146837917313032707982197614493198215079954184029789848870433153125163702636236782378719770179167066266751323356532651673805107875936543855179207294489141054975590605912653607879442512179174559094088695180427557130326809316185622269310097676062251152689470338678179840810952549355097946029542601868564550054313014690102061241794381143673290977815699950411051464847724284638732393952829536699319755359041299887247943023010093711910344348507726091072204839945533249226455567105677181304817180148370290227861455675071765175007974652356150306874553760370001564010647942539225031936222534160491171634509356244470002408011848272869425809321220096900494745733827544040081928049401495168893964850895360417520148534107084243391682421359099442145467191711269862243124619515531547976285830569443846921735123892990194114948053953851850732124897283133992264349836863311784985202911412390937636946999811182158702506893152883423860886425500997085282987690550255426242973230568885490425646821961983202037754755212134233281129611485266431155452979684198945202603521229213757383700854597692575251806750251729588616695658246318170365931978555349453432838856777268994698006139574154885949685923701104546170596242792277106814365357152793636742375858735778714038781414718874989856711173113785204864898530476001048764713595079508434245927418746983387857433491677941138722171032894267841011228602290340857362386249584845116850460268038847889138227530962736120525842189430204207762677168155752168306666288621646526899610591747016134984668931156319902287180451538881995833106449922624121574039053878961990510185493360354679982108099490412860577199357967456437721076123470855353170831283084761961835365707579919677537227967956092675536399523014661946722764575154184820556817194386574862041318185016454141165300438291252331235822873267464622526278944909159220329852210745713057207272317376748035427711208234527973252095417451616394461981234903803570455297440340353575815562230267696821001148698646202379293607569340407963618208908767457697949773023597816598598227094826205732518689569149657110570293104688424947303454762584864587807014737954638260725816480360182796733673051395393480661028329247103091761156355324708980227659349900813939726538639952499779535574869613484681131455350035476544011727317834377047757227473501087869658662775999096599003634491832149785855335936230424284484855296320023358291513128068555467458395429634442908270751901420022037330944495751480699357731513942983833573207742443915359536050827008625905204889890894074947850915453918363032939634129203025854000148574674329530761369300007225887238514648923087551377945196029241384262236801979110696839101908268928841070835483409086784796977676774063776582563950792226299700364896541624187770859712841558696000057824056316135989399789975259664200258104336495224278509321474867277863896843574780451234043379603275133657124223914622963342279610279106266504206017967498476824936257193049039379843466499711778789444610229149139626848625334387992286139147421013097096759451108155329596588717643053193171738684060121589809261732825791344758109216348536289052927418377852994863531102369732096454681712641336697738363070340058646433420010866998137286150907540073422484601720545396974863970104761070241795906564292236886252703241783752880402957306611310614442547726389532286561001875246046484108467364390014683662251364625286320850204225956881840284878806503876425111810539269995915204215183339025360977103009821837093446872268162013873258084430375061881197934131953790143194319251694600184482682236919306161966550533273143959741845482939270808912037862730533892821999049418320823953095846572433768154365185110989159852881116332290169704906300147499746586302829640176318550628269610391232481647571130421515508475617213184220585378192529865864409341946956884845425779467865836394519995766174495924640718075441605973910973648020869335475303660738568400464029024259936768805597079373181575070364599551851957643665865705498928928382077950550833955897329942724201006788749855581486654975304003183768790414189910811460085212648610350852684813900544906782540631101019796614458588431377698929401322699618510096244006478747545123543770112826873542153100244970284294521851130179202582335593341339032269437531925167498546546411239756602422615033797900073732675213987455499481622443689597523913665727075738804348770148361885876556663990133544973004202374793652807765683031554557238785485123613888322107244015032471122833115610421888066243062041876232024967119048947836817998355847985838612648818133459917936615352337751655896339867541445439482523666540068784808576836667639465997813600606206927217846099354469393973576203189936396262097733463129387157101321444524575747152477725289412004436891435542358792675766368008334787961564873377374076129657825936511646458845916433107029947345163472389109828633911989591394324870885518458392732615321635978821791244243298778284139875539051917596777886183298489505123051210969672367666346035209749594892575593484488118539099242972235191294141741856598509155500178256282031988314207296751003760248986540913133534720627756772403892249130971344821225894122273439191616493545352065048090738262470144483792338920161042750816575712306455958079213015235643983715407156430592834710056147728118288418496951304778598419252621373280989593492889981325642731550210490216511686853525878009168737721695484684088521518559678342947974870931441007707327817961626054463997664370425816987010874462224605109340094867944122655652621195442269132995636851218353207216967017709958916954812012472109168338557510983762966208860305643424158849548173162815625000184747923718653794305285236392124913289988497721297406553748562529584230471828412767965236510807957681593741362722279188013918644603946745092635038665991428527028938592268740117456413807639469598723163926725928241777594427198561510915981077260542354446836619424216050790094197844151238943411083663094093622768147164783580566789900869707091541398690874367201756171374912822471221915727078309642180496366070571090507052679521232027431000630852473301836691265421572341557139925834051526828462553277311687416456751097588683924942925475051293620698459106304306645691223811881850484257017562611575897080140367863361422896113383200601316138048873139759065821012794709329759777332521385952516569062469019460759741160096685868766139150268741282468933936986576148782271010931611867295539138509296248369794717809024867491928894477147824292151443774270355143384866223435336817568964486717988766346351070643756518611539430040752209037684595959193710388518337510016646365628407359858563619841311548941565394800824470530131102017253979002493281487961954825860284030480728297560282947660582308758213637993220331034776373062349212146544756081502694628365284190711838683444269805149027595249408640000603096829085169030495066752992513361983232475115175555904313341151225126895749547222413960833989964843490159228159432527896509396854469132743384731658247514091452670029597107309633752324383357684558667966508267109203676345438359056051208210611610696920728362690213165983339845380992270212056711380349217267117589887781430950156964302978634097334070477884341166841356526830248343506522809408046683318384304411734575869568372158704738140789570342612547152239796949431973030915169475639314882297755729541731176629869007672281684625315497713201317101610095104060802672026961244275086326432449476297740777517690997734428759733879280849592524170896790135728902189147582761674227326546600859657067105744773703912668848840223783948985787658107704406495631540697026619381245492036969467183005515471276274521775980563280562473833046677260595149472956471883301984384576186584145391232555879204485432435011142648931491900887059848622873780617875107109704406674488318736353663565075931990986720516700562118488853160897440826069562102778086351993162026381640722832759388926918622531403492427372257559997093616580289299971839794536194790196424323568496272262667402104310502779777039511665060164488569984525761238427366019206631391306789245289540810553800880011157111875988056581539086140072638252707288965587895840040513645190227857431978765097098888388250378218927333116739886636197400252672005067123510690072071020706569259463603517636889367101789823886893420435846511761471762177796026932481714521210840737895128441299408495249843268792814418102811144351816146086569608762549234106703451940934859925941426635718711628547327826599745361509150583404528777858990830521712970194874449731801609760007997791300029012585288630864197845943032333144062501312451964086042421052480680821333235613962850800987683833688897931681715213387875538310165611257970815923921338299857386411532817774354421611706322238461765447611126755828997221574574037126252286913136524868460714145986677594793098376951427180578893423798809482917570942481453526421195606046871844452980887163442580926808687095260766387578903645008732376626675083018279771155835579168413308653107194336966989576793422819432419397390293580090431696681575759160183698219557040086436567027577653109291239842873928208204255635737264962929744033503202233635617286787148455190427307716403979489875181264436119102846344425661998946072964383878223124901228293153399120824966790194946426269943457994411529462966123531978839981787059321161580719734660928054271302162068875390726854863737564219343690454067409626042161391451547281141376587873781847238820105843465347076710470388464900780406460309006964579256417859141166559462846063155261900164182820865580926728800259432392853027380354385911306272242948901585899271645503409616889241712971846537565472377596246482088764927709881661887860744139154377128810035559826853123708591158628850493875033659283077851933102455258934441385759914076891081923248178094515679997936642127379551366211505443068779278071256502218743940927272334561286505947675722739640644634176751306911656895342656561891137293371844891782650837873187562930283183970277019063755231970249811695132693792411376705571154400363157136875776524120037669916070892308722559624213679769342240694971411834383967058075476854413313463385691211353342104005188052127827244158551542342108839742638098216017725929681933460216798782542360099038006007498629474865042609719625676107559060025340978628715228802731880737822768266023037131873580073052928106535888992274651062692472733345434284765037132588321295858086190502968103810214131144356178669837975630651552877974167333198198386173116597183234314760361787422069686440317820902317549622867150022380550976841260336034183469691472076118091446745737185179904887387728499042313325042761615757918892942094820566784033125058624636178244287836997772030155800456222315827186130365886754585824657929965062271100838873285712249125321446399369373270066852495338973084069187322427572487160010965946319849310129298257955446345012123912272879777759027162873607543621343905482351646588506940997027746981981022482381912205207050890337846879601944000132676806958143764498392530957994779452485238356466933176328618539040759467166063114783897148451551102363827641728454277196493849432808258106544498643767840702761021029843887964305886429753182743632337925839416087576968943214497021413356260043728553003750104988555100816820196801604600870496894708791427905769944772054421974020474317278787254725339621923533594217052433275217563043279709379602441097321587809984900872809698487502561473533863931707233123690101757720521964690608504705085095235693799016570794640384358118506565250150577543690294455020416539012431781308545213127881490965504949757358713343107386439282464981986105454181772693835041585392178871622546924200441792400238672937923885249076956785707951172912949898199534843244999938972619035423090931634397013901696509371686064815057558503371475619557978274775611668326182721546930461740336790988956899714157026213933329531805302383413898428266780993650571808458918111645505045858735402711581497293048308515385568619219096746019295855403860147819267006500431770581605600610041830330943412376939794240804172063817167219898157225682870444151517943336370910740148852481815520055412584105206499655172538441055808912015857394343533778288018652825908871631323989826323089752645523354260956197924206721989810322201458320504818633760250075301160002207829245883093404930103103005201151488489583952349303292927779626654540158633807352042589451963090921141894910025639028932120999696433356922051223685519748660168699413495229660747338669235040435810604342888813286667821619884586214767615573457364932553023377200593085626065647480637409571411850679940832628951053032776889730734092400456595339980252186258608132057145681317166099278397615880037872655681081527196190391261967694465644045847543775974137988165683992763605402244118212211735459882272545111313241282887343868755505286251465537698350307658075532964206635392210271772618991466087825090918749475756591737660245752863610413152160162714508638060614063046569912260812597471030250777802933551929700474486526799528684212538842144214946994539748004778212445739587492540106509592110646285638391488059649558568840129502186329365052875075659810850933283122458477497655846314429669204372815952253103984503241767401854306511799513673301775730292371864162276419262637273516937896839779551713293999466768901174581191275532422719117370594043816587905746311892961139579262931631819572992385016248161827233752575409413657986526712466154685644736144886994770953229911287677588080095027131137370430042997386372169040317230208410725504778276899951207649236358809699926655157255910494161030411297984624648726893388254748121028831884640714508176009958286527302750856125202456083341402326442844638570734580198014942823658956212609288386727627042133171436232451202906893987337816107788501815174885143618374941511777502104337346456938988301154376099990243219500787671811241036426898002231925103306341419069276371651985902679366552769351429513401669136827256329532843030842964658844195802531703146686986750186119194121032531084803390273377223722441504080441696791248585948357965274850268021044846858143537069923066259833327546330386027872352081453603526325022567528187580455333901737680606563220339364471473385101218035407732345075949596624215323884506837552734793121783708801197867930463367475795144836207451339625029125184423100899729947992395052117303028081898738309408864127035633171599067979101169310530044253421893138811086218381767936745708810216504349340809255194164144628483996077636507136977362058857464617021476212455618835313905934002817580468232768759602286073387652163872045956751342648431156772101473299364658318114920017450595035512220398040088298246712639013055549710762151365470763748213230419641483038629075119135109801977356053846217574746019478646907343835510019667905985057886829715763254266084795063091800231347372138553735820335593395820854830100502856993621921131030913993349576883440184642092530006198121894104413804559921592858204470065180028087898895097063436473330642630734238205306222822957431748554764113032283151121210385109813810081198262190005378904125040770351626381365314763611097138009143201779495147385347144330376994096285471586296152995016390345299282211186232402310494867689920716292733863451328619763277640390947236550924449509623336124286523113703255483256770696974749997851703024216906016699444394479087494949575537293008046990480798202770234683418179885215430532164509074938914463198088649361294852903200411981999487617294116144902815833369531915876714519950455986785360347371232564402082510621729080778823543384133480144355223107392028989965625528311827356436382176734011888590393981972976448615245774065807627956864590994149862467559061829271414841182009452255086615993637697000635527157162551062383341468645332726981424371274598850381123636449900383463958991923881288302574077936683957477547181943075179213783740848549510390137193242703103009536730575294490200521512496795876078675422706628517082772196967137818398040755019606643660130000304977667864575503364845894307456440365555515046422127675547547427309512594531198747662429715040310571747707105498401931962441483651325990370023819370513568888774931825179003618568037633168446084014407411334111831959445133991860633488154046286471171044733167823292970821597435527939757708378269981812420530155988397442080447985111057335605262534311558559870617793629480283955662665187862071524830357951115323350888905423709443202596806143954684458210014502474704158292408867191857810018141902297470569850832132771679850279169094238553414956930932811450856134890629952211493667368602113956427536711988378133757491200002928988396574838232377888154614946449876382914089263314651399760185219539770178970740805621625876092359874878168629994196409509877958123609851603916475272644276311251921360012032554518737921201807351567959849447610730302905601323987081868627899862268970144438770465987180000723196583868275554614484963850973042575167321300441851571108325969805995941833735696122340829973961176300243204088975251687261909778212664049957245140502696854005308196762728006990383071253091035127640346113669956103145514832531566706722999926188494283156799973347155865956489391917558993621651427649066969564087226773475078664075267092267254455084272836231578404688145031952689642542309942473014762555127314098302822441651962650820144942873767206318212476508674936580356879677137293862760801063841234588313378847698298302007440009902010416918695683823330446233360801119531461369420486102559828281524479208248418946412899458504720097716600206375783049892565348767831693626152983600147995936282499052602278200382798859406746619196833647482597830320158291042159059431435181808650738740651441952069000626792665743733049914468555409669786964874802843978330502885943527364408574138202020211297162812933478597826714906147963614130874602814044748458531464864460918555992569753726004224696022282683249971129442796574780878279891724175001883906816195880077754718604155021526992037396481252513840225754529129065046375962094494886470769304163578283272355163137536779599048065678793335394452116539076423873968023647019499657151917942124447951198473930847458827256474370276829362300356282260238929230215356972581343427346196388579753523992018692986193113547166308773269225380296549405326520238374129841839219498051332096485538289904114617864575158567555188361563380438417745012031999403948376755088927226922815332218580979567968887184744883399249791474650787786719961470658204272468533046124523453717749438432502459892195791059418543919096528416134006596682373410036552054402372401647773756204002358433032041945166394966955628066110498824957831227158601495153696700510890085209106290247251038808767097563242652880883717240264834786263644178915526011958233483645983861021363968280362073961097934429271304693013693847934585993225229918863268513735494128179663939611360674939396753999586369896662191150982537356125842412230636129568602717008743942474816457998875284901779972378016842509688817553015001167565039765335297643521739777091353223679131225454416239904756958798110945789518828265160263646602823357613582534487690482487560303889064005994296143220095658891251647815937514001593860742308281123950610457304217186659999337435102792359984285256436430953859158874263371931991304844219477530537146070503139349643812689583143351524439883327497395259918872723384178095145275180658533700312099254224429749991531635967747632067973473622462724531020819921078752771137396115355218551235730521513190203571607064273132930728201336428542531686965685324532554731067736090155594780754027718498466513307113621203781754391786302007059713272482322120980492139124085976179120103157677326793366643567088441339460665614757024624859423673658379310168340412887198400099026784668601176072640307681640670592649164209346423082396756548809352922660768648973151007573934053664057469552540529860758543294193703170071517623207552281447396611787670377175268042564913811629475532306563344375663921563660723208752588964192536589649742933595818466998171462558573676142810208840430149622841990019429853882620344044232852087821838965029058073524802091780422715800537766046613180167427292965525869058433087557325916903312707700751284160916167600577548390976995060536175430949968149955706147258192279006002429889999984911909714295068512690574981705481255927231355270577246518573893932416286781776517915169995054967696447866468973612618345708799212368113671219724626697730570145635298047048481477060373771947662454501397442376684908352396123862425353501587782232162291576978256358034684577933332388095630279298404507419005236762669816808109077961199920213805227278333819778756988554301028479601685401025958867839475586524336437483811873722191377472308317558533628947670126318605401352268460346342329891977046216297937542714900241788575194854471356299782440668697020192054506574655935801543434063074459772689632509887923571067356240650535533694110743610842801391645209759462994091766607047437102099703674195101348357730942531950751048613577077279210572630579090833353332390489131635202125395393013356370616034640391082390050575839163262447878484378031130333821261341619865965991125976167583674924646201927663396135253681393284726612469776028667742200384047390098619987976811838355575827442555469639286081048716777898393117416287168037825341596577008379733661706336212560404057324571258750766206403134393574387646712330740742529338792701732256662732698500361576075560891879612223339382347453706452501616742952489767496555950213837035608751884486075373338841719520785643843825128276262495619359422107547357181604599810647804467099301421438125818306089219749763110336574059244334088384746095974114969697035421689965987631605403083364569608971007533857361212440520596582039324879023945081634424795259751669649761061405580499884546429506889537342356575457104254842725089037913812100997969522119062952608481351160085896603667745421994331193096750456104540292254001566864025378105643624854375925960209689550724182932902973348101562573345706790551824559236482393411809876276879588268621624145560333389074501427177854648726857993356388117723196121369071263378757111893528412609329651848239756683905821394807378816945984432795290674461866513548595759286574138914010037430612529201200471909664674923433621830750520365774783434662187421159469353160530021889987696682920720294467459166437522208203402326769974922345179493999134638170194344414369577417252420404732633206635650970966205627933356977342842664062761234044317133499574138281231047797366498448964663120857926103308654902795563642741505160594531426026156299662132998767273431132191668460447002293573270851217099647465496729187023362530933179933613694804035103264240388069461380710942147358359468817743602140271454026207723809082701977080676031718450904020085480938353897247051435704743502180607095058535123685462091932655759506441076001647934290205325416526861720807859019032235499972019303806222227481075816551483061409127052807682545258113949494305356851406035982715460958785848331609636526351421846945895442555410342314287784218569691754154100799426078794249666456421782561638726286212192097972335369685796259903235537294391826170122847414604498328742024864913657878571437409076595648106116771307792157000276915386102110164274759266953628623582248519671845669405429846561979183858998957130471076932857351692256926191230747001306229284506713936136647715294255832049784008018045981141612241273278233003526757780089661853962564047575811501419162063170130719909049855582663968171612404457712784423236721290674571784803741197044332205107971487537781330870704589657194020557745576313910230445882107743138590039711065268802607915174845908627220242658770716151908530219575779410447387354278072902810305151909833385160717361766985813551515937103334154930599843550715133170984443868326723030267022611209225255279767709882515961489007406044472748732442051780623011794317644425905887485302733697024373811574795072503973932988263617710805239545049387980740992993681217147602760966523555907878794653287679660094815131361720041089547284215000355712925670694974101897993299378692137465397618054990866898455647313675483200675017343330746522288906857533178577190289181033243684518319289364974767375797277187806222613306104923481173023963701385115029433864453710387192362925586946399224974913914695420511322475339686667348481126102175079265555260882955576683298188088712813133707766576581074612787962246783451681393321268344601108073968540659397106156973766423230321611135030631154441451529535137374686595313759827147271049027786297878412377853312183966019115166679540283578897430200739391318862073484978179597264011723686678901991489747497525429734939793537117509925503536456369294892523608539319423603309681221609851766053977865624698271765267841990772806223854946303468722040826117973459858365753539081167125131006060281027802988863506190434765177332001620566450921960336946720078198329183933432902463672291419938173010914711731680009793886611562395446431154729392828078371446871502699940214397760077134824723339775054290178758922781536355357627667894580420313836737255620602950859231581168859782196056558778040703326044590999652058204271136318109653232151967733212657110265973380592611629834399843459674282249779217213633519048285677278941121340611036338397243071319898814979474072526575644877842753716586912725366169141807097428730111711138473986104977519586730271873303447632142874886170614424672026854277302651872529225058774344074606463874415493248983506224203375713757512661357518852671491961627845142258822674675419256411818933411986268765514133504042380417988799298783915751275234849674977990035265722768720363565613046979743950897354392902694632174800612641270444879500089370229952157058987586101710185442896591369168551593707135534980550297321636170112207784886093791627784067360147212263475843022152436715590406970236925388235286628448825787028247365280909835781930062075520715640657979599257991917958375484184468824234561510375208979237285949133595284530762261194580193377411207218435191655426030352730557501602827622227645739191390757090810983755998813674158338951350521520776126996794528889729871742466907477339067764137597973782264678247185425844050033585318708573972937573455993383656056550709860181271483321602156158856192791923344271751063099064877162315372041445979312833131914784650242806267639925102172047335414576729629094466005820230919051522939435008017959080888425443793210633854801125628126887869787943096704704731692062353302049271411220317120097346922019224921595715957636711062575026395508636813740231753907228257824133110659514358919943601888845721982203014140046783900442914865016342400998286524750299701474555476097641844969851530652540596064438101071827140491585180598980163845813847695804739834901349554462368685312908564620420330248785387943261767534539950490852369668907216570172751878250713995015698889570793695816730930502592855216268231002105575407965121335778549275739933634071924638096283036870145127893001407638009862461998998254205568018366292567488341836830857086798250425703784404715751157351236419334373552545438335366604195080722188710946422512023531933365856847379971863725200725239799842848060435986776248575472852805941816819732069212227876936243166129734957026500710980195459832706409894177902591157061187935901909395342521116504012832992798418135526107728447155152878211908021458055350953241324036224334117794355382888601011516021766306897099412973119095150917160058845046740715431987390203401146569276785810662371761153136822120686019312195870646921542809562961752458817042644668534333410366588672966846016639298785302626718827847685853592462034300344886255423273885539161108694814966224785336917415818627954283307477589121490284384549060231087577924961560016417090976917265910844588804291307642306170258533771555951289837025689508622937624353347332178754743224365362008637593116040171086668003225959118107111354743284705574577058060802338301290090592613384596409658423774733865775703857130661770217249822955651912852144258849529344640474993633576439380167151601790256622697381242895053978377194951336804645525380722627821261989200208362773064274619785440012947955986062927627388313440365096260311071135777906152545522887524537343981097596298366434167964468664951867789486934036924371050486085815020017274203126372877237197382460180435182200505930324128962639083596897060648599069141013855573263754308646560219565934982263829690923557200784043607478688379459865492285793458861268662721062805379630414107317335012481921328861463158540628034205868330812572450056038292294952865660645076940678146036759792974540636168549193118168652486178824020700356203093024130178325379067130188311717863342143005138089559610288854924776907445776636831945651079177646262083128893689232752147429055876458678267966167214742071163186479172843376227455362895431535380662282223786089514852028250459688444618410189616618107945739095685478643032104675883761337734367141521563734369457854182555763044475353735832291855666905005833938645589594111357053500024181312761030361807019841049887563448752837717826273533260171015661086635733209263280156111589476359967536050235352859025995909155617988264295746374143668368267723185007270739539270463525171546404650184292392362872190717155745173620153129633497892136489513166398097194204192902293047443328454822956894619723524853404443419715608318495972907397579484498695914697668756505517155484186495463730215610396831386691384244470280302359499471693454861276307390887611552240588039073928411249187293420250007987048702155463717418734493643955745514628069770220837484244030442026364780747999386403309961545261340013445670935596524971262271538616399049544820692020529545346521148016016352925216436438578094125048848486008040155125557435744585088094558318414837001450456753273993536648416144294892072812108243701670826017610340531969207083185297971178695019275558174682377929315309265010734995568077566694712566317394140883481867128338473975915116128625780813974844564249085937325739630098607126957995062129951908106661149551204921009082793666281000261093664205068207591114559386268162507932771630897487166496395191635152476216179627905607262418814066527130837502124991660332857236488116445928004826523694999112996601751702332569902841468056755414322036235084252621339854722599228761000417423383187571976700774862094573498688075625877726456105965852798590021079010994522786778552415514766279320184479871726479706614121830112602163459173497952046672611281137447109655708189622025344083983684552425003101447083280631017470999126089891447384154881220211869686058971547438098984411200441531715068727925585286258558417589233505533465717502714125463012666489061374576345148090965508471625193680254011317086469133806635262770133856845313467180211309883638493464983180652249380327121917143428178885755820981034974719177643038524906133089924961971749793239660208306806543300517621857019607062218355631272804786922925500218311182139824645492088589817547994639105121339356947134621520552632760351446825068680312020705848074886595526547569411378135015967427212150794759778461963183668209468335192066831943361342959938476499885822706088725554409726328441883445562505636435030420043525120136367376934210456701430303169963583091995174108504212125074433545952598325216182973442180694962567317033217331405981057810006010814662854362740748737547860565277618478855847860722908625654051333730742588480347122057145194917798325835004085842541702340576260782198612388740897285932024581248928742108731753436526952390332398526112253706291512335587158546661540464322772063142650314305658446265545820890560838889599653416353151540219291869002948052961812968973954419330828320245395107934969151486988141085270403502010463575229317650272109804157656268052217493986644086990842326564917820858216638925991340401566698845413987804554641306972249005006959707549835758128290845163357077687758366432694446002582704964889570671295866257017034394969694799695617613828426962626350679827029632815697056119269519249259837974618887470794598868925216082776884816093920931413320302076233243828755899244123801597467827870229926092216362374715159442476697789562192012528375506195791478888168569456210030678524575873067916845531533974933526745101562594518896759752719605814707374930709208432801643452476790696144625219519778161220777002587020203103731851583507618948505560897134150784945020061917262262466700303465927340737765481960201789238998457384144297032543710988393478237593317049870438616297389030778317575224015820296311922962602287136337008066464472249654376168430903390195673168690937024905867919896686857916033424035434127210274032439076416915179908793649850983576287720507633839390514050019568149241638849336253635264999961936897359017925342916017625150864222279049228130461644860038711288105748129484387800762434967700252327874891545823428554128541787772057858130266772953881546741749739153470464363936835474067265385004959072709477596054831596099148087599366312441473811582269312718986400228976843426005614187184319789996913496240498840353514913053996106310372404707006900889533866321570057976835309460850391844743700793542110211391368422154276349859037843840536271550588472545560577283111974108976993766321314793855331442858158788756881117891830209623586641256746485865793350860065475734815831554735991064490692242963804101970378706320712230076229941180165959293352442502724508907840115992159921465797434744454520083076896783932591041867945594525930192881709016506150512603507440657206570511328685037795514685801711512586685448900993230754487638855946217913675272464553538196282598411607151709162280792121336547135886983109813079366818956295284600828638889246016877693642595988215649910372934239749046752907748695216002861362999654937492336759809685223032325645915022877458818969168136319609492726340235145003518367562140954570143701026232159023953926107788416957958155465577479943437622221820283105667387306403118228385709031266889136702301203239037223414300198333417473474741339942964454243874016588116624047003816500690850834062088704056740619988925744454093204976314073871510848347103664632161080400064397509968056018377991851046377885995548982500469809706426130614837405763596725019377011324526424076101540674222466102634224657397978855447446072113301507263781750826900500625120815067062096059580300810515471664681338549091831760614093689589514302658563700241656513246815307894133896819477733851792541586041362895048447388231426680842842339585008022397410168250477498554707307053521499399413061873309575663225759379101443026767936908796318803401233071315182792344027279107885955171540624605106121563692780182145000415710171337889763986312386357438700389507448206080968760709120392039670041101934429527510064536031244180764413637779590444285674023981716674108230520419350659539272758240453324074358672498813094751014807952027897199881696998325095925333347187421913983507884555960193542226352212882861455786515471040542966114057287421838965361480189003918262993279387264226538894341913849189312526321964792978083551100984136323320450854805383324723374882720417990815341636804298618512531051560682058846947257616132613851736345828522445309509523261641484630924732682654101760349871281778690728843323638708536064217562130809400870349130164281061319596946713624547228997171577129308680602483636637890339258574377885264349428621582656623000080960237989696404675390921321875675046056875043793465728255926117570818399797146748477423961646076717323640360750075759877984354558790988379263978041326022843728801269075884599948437372587241393973450042472716384904906282124631341158169941268438933526259177110871469761091605580880539363536931115169183873474895885519551889681936049166618284023516538605326611370737238656042603404914713397521787622260111734682651648984626204617987067830614729873821127500515603759894770507150606884146530760800511418514373788445272414428506172564689026708286191526229480758566194735099842605673534712748769325581999269397648556138616297319426369607647992065674167801798503577361499741223813886032460266951964608621194416913625856355999341393439386300852509474141857379608538451876089599460966506787499704803537414514599747822301281073654214954095631206088159072189713043822666185514003301774669459506872960034809370250314320015327405453855446787606436630675038729663548714881804270112371824735711298427197507675489003565187481972057515154797579003423341922215499800103756008877876805534345230426978682871839927986066254411901402223041858849923138932944821162155764894218908069946016106388815832409640928260278611134851676701660250071589146111058098883934403377477562325220769261601772440038562391223820376276655747493031850980756797480989607738547600731080665374616106144561402279226343592855618702583521413180673996152827869150411381760271253184615527631159783155143842095692804655361100887272610384957854028749768473743199001046775281842732657553052647822648373567075878410290084775420261426901690442168488356186369761096191740379591304866922800766910288796308800182602955747807055472874147163594734461123440890232956681862634780886848056041922482113032201294905613594143055824942961635654004935627479965492007951380265902385480409898173676970141950101345407996267372369429944386860758740819774353692461763204106439972727688954681456281560585023863307593351559031520640590141659496263035645552398883230444123156947325189096104511688017714282634994017519281175124719038909028705077921043401845693648346372161380800104243904774918159090728119404174557021171926147273086995562959105220977743175911026750269883857976066330241471276915539603420845330694688606515126849596560774918790282329580434564370610661090045066835720858033474101096988224488427125698927836961148908513547197914664389016310931033972182515456181940789231976097354559811424748433487191160371972950451206339683121362983886342712126040024408071349744726069843548151261399239297493951219893665293654457394272559903083976024984633177101963408146378444616494820303337156062642407877672427388167915246794543040143068143719176666384744621283686274936272705273713233938835611062074122550547040022562820960764132734983873316792091949800536466352359129807608584606180389903360612062650506329344078295488767422185089888840379140743482770493257712386578001086765278452574156751252586720807373082705469587805679797838075463660883436305038964900669354039048092199214219604289712923588070271586152148215499926749195260844766803950844088597157049731168187762912007316522652236703302016081591487219337375971057311332918730182671259675641848732578213858075299699400247116462141577245930615459990863850405772859673241860465748972148203878087359159188317477653201552796060042767947518717206307222931703203505897369913264909062524028490271486155886073438585611013549404908335567377827091901097411516136905121840269039945862112659501012996230963584761322722505718082839442368924058563256051232140440662322238129005840019024618137191138406527467124316145735349042019850518039358882291635711865473867164942189496762776972224042579468417573544443951232646773655037260814201969129282027360590130192075681817440487977654274179096102360886281724103896389933165436340581671146263313701433653820689515747959701933319908522760083674636024088012053731929784332587539284387930156614603518432209095571870007884015316405632873818847179180375831657593563458993689498802272708658967412283572561772111137127310505462710799439427188997092703193287634432161943778804678613735114018716197908271731971868768491587854113541609705611087294071870364494408171330895972534371609556477986769317042607764384908446022181455952559262296742910574917725812728770267403578663439313171679313405340025024709431898154990533813801632747499695100068486835052134817626899257508090727402819217616475598951839953908053301131083372044834506692133389033492597727570848146120718289699973458832720848989373542744214403332164679875419638193785474784969719215090738209644629098376527852336559639735197104321802698078129511724765688994407980011638183488078249502679508734205950116014723215255177344994407728037899207645802918081551754800818914479049112761933131546001456187549580349649958369521706638236335384663302428024258622414058764645626307632394334618448028698965283634082639801329809174569365341836603946918106224305097055837184443764386990955302709605712072207726397173461277887850435492584058101431460815906069439446776901647301141851378663697014306860308002615310009194622417581149510943829388660854756307028743292306921649901984361722532101306205036845878459968010833891543164555826323310403765123915314089690548390300455658333773811492149097096774097480354369682120961080388359472104879708286590909175886440697565133447681026087494122086435858820615518022000623737931197560107177500383155491153107573743501691066925711195572289237394084604823174414489810658661104794064563604386962146227952597356463735813599508139671915215818287142809822939010932887220693589074323856717564847229496264064095507704683253650487569672678661149369181201425718799617593122889295510914177465661114656739068104963909705378408583611266515348923614091203709385957938207127563076488217146179900971122497356430104383482243474856281387427226540149259693625801315345940473068618309981384607128051174617467456272873045330400864017093002992742162260441995781581971534083214726262868693967367661389213810811457199327412014527613550289530859019595720475467997745638959173301267127796942312685193640137424535866691213721249823221192109329281525838546580347396823330739706843589924812063261135611208629652980088991835034905561575564798133529954307218938005369300690765290642634513770397538511589219549346742412334612016579915627799354666115823905161313217455259012460398406792172759264612594251845054787236575532424499809552924949067528774634699700153115420885633959183568249483108810734424074326286731257998584759291511224919910259021260445289123691848563036433261506494561189686273947268299565037979635926043024607337546720174713654243616021789631110672677199125919389410204766256901579426045166003139595423933000960489237150490867679129895849695973478210320448301287683112832215106921133177993824364731496977914557819123905211020302148305811067585920975431681899684568049191276935059228525084281283081027415782095943816066304684204712860295226175001247395817426390535946437146133523878787526115443907383197558234069425462665384414540934887174482242070027703866532866083793968780476643884088335662063610206607962933281496662900991873114166558774473108382012858186640810912665876194168693514276541749166860126359695295661466471311015601658122454688785210538022669188542654822591850731940112251586869568287889750670857245989144090218542567056542798044939062527211441373725611835398679337894951109059263197487127270174781090355034736130206279927925007384311497339319695959669626528485381828462925314856714406021987415218890852292337125291242333773803675243606921787174777020814311624807251012969130662563565722891258452696870992380956179446008117704901565560796494443212649842236931900729157734740367890442616138675065080387070920009485175690139287499041197058943242091950942254473474774439332263516170419634189238648294895104088649005022295775633259367038687567459112227929006290219548791103600146689510426811722189843184800273545776143850335214909127115116246573749208689149782932547711143279094737224146254810138930685105301508646583548679267287107796625983642368527230024726404129068670611766841651802977155122710998453934941067659198477581891954641756558928545673429425615428861195951390933190167815569098407917793735490887579892312568451131220207556782592689227373783835674187628689414111847372506632456655915029317730143722531003058241365627022083361821384129141673346852611650824914569196398164464844335663046953312888051582556371423112119796788151694760859871282144463060860545038408594990076725399351745514868228206791648598117919017684271169977683473165724151983192282656112842400803445227204556854353058404228058319886198180974919260352602394841495098723194625660408683499814246256176625056337218376891941281483509516747705389885144395560269416397146786590857301491329282080929295388183234036942080217773433360219991886771594074669909828967205067083308063360941567585831852164403980966987097954979545353880553752775036985739692655857927546084114076167442801574053508071922877888318042355872597745833173880395241578135385777515807347564510333949008743379015990279181486088730368177456990083384331404828828218085520041630585305924950514242272399179209301031887240838000350095723935331182804361346547014790828135137135848845118488933552421633504945189212510940992320549794535846082400128364048938420763145355704167473782716861068593516632813381991537959115558410350877384287456583300912873692294427976228800904359035132023962069571457211209817736034212303560388674716455220592737984461898309999060739990139997957132381120632316262811037950734134612263146458148597944110478726402949639546282509641843397306773279194786773544267418544229909839484121809737780545431981839635916495058639535807135659618850565079694974245974119510760861554000393548959077813866600276554662484058961096071459237330647746911525505190262683797619894258904399298005778595103155404602021167271163137386005315221493719214197588387253575228122790680597087893547053338018896766549270798905330923453057696049883883974336550695198219626387801774330252611978186375491064288839551306190591454882285984825879857506463016149959459761029639702520853481506946504009158824930330604943840039714863897767921630713411810587182386810867717062736302280104821467624611073722043118638174927364480890100774465401329490324375104229726923989499401551381422176807006372715832455829176335691876318978556965483196308885747408490636467030045126863460894552821825293634320883929175586237629885993310573019847858966122671104194588730046242961244719971681605260667637054779241816171783847447783169203645287232201239055622904712100202724982286003060448671715019343447674972801104779416362301716299664959571199007397375019388791145031797527745131747970129614916177107018802345888213875140015014982587305364850429956693863819318203376741119801725820972881255423242960667079650569602170121571563815712514825011542510112555669700973964232438167156157286680172105784575227121545068264654346546344068512606416230095142251704405797050657643946050272998861872080140682432499904798315605630106114907841491129842598044608956862670659400486117081570339981344686103492576561321257258184284959431271395108552429357148688124673572406597129918475004423835574981089639572790160598365344403030904735649229227825846444356880563736457585552383880092124700176334371724971944933567401685919807713983399475267601312391719970717753435637202631208298388736307744704899135502005524005789758941902360068999834613263788515338235422420522540522775843819925883947773910293157762072839833995600524984835279064239207610957536400094550567235260808699613944281015621450985058329897432315207259035838754871939445659863470834706850501558846985814024411244335770597075159097262103392539482764121798741046301827558914156302560413668457511359336119332653356041220221517406511637529940068112976766626633656136340376960450260697018444629285867330462309953016795533889114321582795525774820176261840107150584476535375285764080958863762942899937400811530233169400020845317659714052128745267794267228734349421155269590348475722721622081552574277435826754164600747933450209307481310616072302820640622764336163205681322108352805053692287876014757632513966138247218249682920682491085198100766742115077639228466844228675544752225321326620142244730412815484100667615089744216349090614600744226562962942443197073592895382440110477650795881667825823428200892350834474623693196844186388967035163098646719736927675762113738910581122663723305068715897423675248515337082166266764724141873026043128992731973794438582423909962438168221525254964704340480886065012441830856815019306318508782921146807101699979682863177092053990171312102850914048688805259402446090002133244716114792294127639337258868964022976518227919893648366952625409513251186492541916741005224554264683630576456002938504020053246088942191023264404019096007372167354870810215726991925816456424036050036581305943354865929437866427495035823792975903386146722807926325715959853303792242057298173407755954787721420125107722291727419539571749767852719742365910351654796080145025198280991808155303936279438383152651472810369335357082649559790582823757034737179893327727363375274115326400337831556492301862208140234019418139786166836852126472346972307134613936462974348465053628164646847941765444193654398139544469986908877917129649906957910992486192812051132081453575821232148449844013281253408039888357351537588928267798858137329779018391907607972593150826505388251233504374857758938120112325482334386149715156482669881610163378015929578256421462658078678189098007886387061907586844352162118211663975361342708931070704686884694318483422695717588427460859490788470186089298916774410577815364325518555330323392257498123014137917064008250176101671047740721596285751197137797713013626641626102865736430289598551490510122027527870559507930118948303595817078251787441151843552769957682139737705510867885226135212359043263277360623167781182299147737413395419852883966671541945881841684422806083330841952413149648308956236023749343050326928756949047067255283823446266261426480405032455711658015797164650233091301352994390725872244534223374965889900657781789532944880315063084687318262260863858133618967961268916711557565085584794046629206842733167121110027480314701237598545184781023121932932220672139890265895042771587373507411168167694718455996500495482592333501533180278620027314345214773218207519616464551702035641612155980590752181360665543725521457704497408008225277903567376143118276571281005055897648394474488396181662754405914913114946970088519826640125522861778394872874247806608683230980411329958708760375957397993213575438665866393640921438605545173918111512359956851169721573526343661534924614369247223926508741647320797299626614931071870600971891152167358486099088513717705733947230190571144419545427307667052543587343483123579202688906473860442003792458134231028614714860099016198653362768489069660940560975641320092592126967068160784596991878358666668790818166185692009739077669416902177852002602439985133937733313693590951977997106648103589607490909064655356622685752166541757257558378652445837377803752608268421814642268397941071003564664365795797711378235080956298857519398719064093269568677506030607890839056849855713896811810425402845288457020719344186326116886351980456547012468691282368193043614626237476209970881255119049793519647767814930072315544652638410484947760743402204323300863422417148433033261330451066045445841261922891996802212847772545888597886264624279665884356618582742029290351922075267851123641465722667401878276940358174477139348237522679504135480172470246366665147720513354592775685517556971852826758927627390896823198957679108199133602769452543640490216514408758715589789280829541872119847118483753919496819935569576371773721111658653580595496404703683629891936675303897596135426638102154808930452797907635362608882215121265986127644194225467836096946376406109366866631944206916883765716807488244898684233173558073845127197243664714028253663923025109870509783541582234846599305041933488853855515555716409909618708354467360241372245618496623177702885426835418191442819910241037310125109814266977377509427529996090647018906394104876915652355344845029452636815171258478855866334403163372656653407073116842446186853292183462965130247821732689061995538073922624193195110041164750893505164362148669302466738140802936003137364741907107704896069746033772208969713855992293625395106139674651828778886817546849078485284835177703172081437653970067116019908080034440956024723836738704772860831735729878887632462362121515976802829944105588057141726765120413918176326541365288325679793897246542474478819320537591986505270454275719037725247436834628082112552158486464652353966431742500013279234177162022150228482491436318907749451246983761738132252023643906976685520131824576892880275710670930444627543898207118742000787385728349622816277573645714636748571424116874486272128929439069009683086524584762061546720438554571510243744381755644949674302425832743932399689300830225738391792124278859946782830422411283073793273736616512902303310756788148149137616345633342505738975139620090876245360938201634626813442738714359979119587412181867325469162561326230982842317866284903957974958595374967370455101842685725669153984884488377939971072103505920358635684644197141011097558029351453208065042593268604492766544227682829318585505196755900970786148074468909433868835289885402674226836432767838701771361055914122930854193100863357331102732393381980355667644145882524115452793712121031003402389738491061092145053694570881411672227606796040303340003342518802837663892479867237773409837620238135517342050276058827696659705284633430566410091958101623747293988943179510900009114965848106175904874777877389740298024457071476750760721018940600485237447303867279924262337556847407285550338108811411429088006749292211967291808988543023429235768473197243479955924557204654292058643044663779898340952183323767821361369181242436916351434146524076188026788868113349090494872590829124185796856877091956191124475625616574158419072791799378262965401697532844232159746928921014249644514548287951378071155910845300163362177760664920046567269650245038857051897730099186929898312787957634547939572796828136091553741701690456113294632889225256611496592820164921805504978948698655569322653172473598189825949412743240398424870666869948865744952285931256117458541266333950303865956236422450627795084437834476230887202964645814988929383953180474999615650751911129335040208273835524401890540614394802302275002586898581268224512946666669370869180200053498394641088373888557272811986715002134090614081109642820571502910617109311455790541546222124172327445697514918910837659463721165978302792354284006653859940494772003847548454070147302491183845776011025522663634217365602544419378435176695929068731093261243526321986061523300236602232764737343108439912676574478409439380814253991475760358048481426175591835121953109595189356420612878573579427581012777377203201443167914327795227077982732177077623837852114174429300487965884562054960172076849541661619484374072480305948690792217645362357004184442771634745092485055675433317577048107256298529309966372595847523732264879990451459581730242344993957081879412836801279713896493035441560584300017417825897037063592154120210081703159799130540008209680065067678350249640184555206044856748174855708060990168184783649991189039763225989350639375560083308814427554845501041889987765894529214027369499855628900745847159053388780311520092370146999447556813052233313065993705769110168737673280953479368911415728769791971350540460640185471354475786333067422218351964007426532966348633856782158594771616792886974646182220678081212413914461788063956271202405671486256711278491154115639382583713347938302026471557370258220158451753614136546748727001861033542556909616905373240083747576102602860460601849027379936018138369140891534808981184703774684198737086418596784624580368264736500412282412762585079026142053073250611556314894926627842456584954575513349303104596712222540630838100941611088555198908473165848069258823690583950963023997267459535842879294770669070712020300805576238647946168864181862015591092285546694742061726228273303227045485023310922679997712755475952196848167890559632218667639434177752869717611617102695084027534279161866743317031863471044544288755807896391462788753736752545127272440879274768442134294950362510425910104944367551196286740121342032608296875501489433966192684911863409919362772123767367229567924248615695386886601303730517180036336935266504090065804008695554482079199467231754386651589187784711863455616332510333244162199797103231253678275162066686198218638442121442408634679642637135814236895216843561942178805303340933458479817824148022690953456299542742852470606893656653735658874429736486702104683150492931617981278265980008528003584323576955589069344310429664154353190553995809504741389554804893302354389638750271007083053630579636412997006006446479219260298961578565636361847886563158430203310683814165304331647215463597626684093358457413445241561699287739508297776662683781333024796150291490191867413024557451418070275651389054881765269273086370057581774047788348742608633107553738594493621823784158404994811833760891090277351780235602784704980061400518013259539544501253710462466866143993964848926921144212267567331067018934743345167894289431464011868872606930717904617304227116414693397257990813427374189295788528788512661905424585319294926870632985379942721483006260807567913444707438693009030678824594028279713285581246779620531699359370154263417935836270791890242851744317300256241690235119906564075633979997857142403092844575664437743990403911184726383987452999712998011884697291869081353931401398320083930471020482589746661814820196807154019618856769214910286672013573209020953771527158818319005003106159614758010134300644007520104621698597660314800072644775809015920896729300313871899607459202681129294144712117350909816415322429741153415832209447505177444029158474124519365829988774599674334763140322525501752141204389830644407490525888414046305872527256969002228293052843469477683901142587617913226078777922932626010027944057060434187224326497391833089673197073645106198634993407259023841439809969324541473901929826952304526610726188054375059074324772992274735156959024457890283321619891580547238873845219983337734126475573858842020851986157419907382016858473922469280462855976874061222396416597160056509019439578677889905868981417596976710601330423619076244797231800235368226402775902281060693911226915254450162883494919444928003288991631231676972650626483959290404769703741710729221660363730881436362863045945669399700179303056174814039926512413180623348925167922336813325455273204105055160007119158069866095731904230361166641406989838317582399346871102635266782343957776529988187355370599165857260341496015125077930888916542304486627928150708276817332052206196601419704459901282172654013457411670944103251975643743494793038412840027459078710848317325749852953006817204427175774785296331362863536391281428624319387097120180980870468871386427041452041303199345534250795262712772199762203676038428204654619028909217852742708529437436021866574273712355146622321377891894616630211747516210420279328487809874537132222186047388217751805396677361026744305178615978846772357880533673148387054060447506654042596238236093000838588171249642629985297912573808020732223186646948771808048217850679872993473565285864105376437069229308523481333172193898247438355098397666651462964319098978842095467987926329550314743602593087099817532012112786923858047908908304970285226432876931553142748032946776929945297990008288765733336483524050417924891827103592323586392422506099598753599252420707096172833652661950811841502230532749887971444900362111744000349974553730038859938468579019882846835569855430268320334839006927915098293711236928551509577940391623991885794899825963020710909609384924388874939809031243529504291907873663615833335331200370579476874879622805521283532233514853877446161070543783214208680661868209871919543386071002786488340304106284616826028676632595353792273080478437502143005399818265119787005523670811524654563260423347134253394967644484279534300689225957759693694525126757003579578705200361847461150558385623423813753955873060017134000129345938991695938597864196885141101885021064068946415285820327441414975549084491804140843625095780979314919759933246417607596079634091151952698888428182036064606292715571532648348573134055677092552921257098719525907052209285903561316277422377057940403278991175630141979188007920428806818776622923009196324447764149602335630674766702040704257987365557215018923295247673916702203093469170529885551565911061778474191491077875681084540782434754178915482685410751598956310291147781651578113189546833881383059952748248936306452735138837092381722463042975102122824610825948485896746201234438560598361516744808332293619141391983818177845726227281697101732022430583643805600810459796531155903366985572834563589125201560847006437924651366332187645492221984177224894858635401785949624830763801049319663769849904101056838182976698559279682902190522529735274965940344287360662273589530874080555890694598356781971159207676832151932950975554874050011359381404747791691911296897830527092273261470555673448802427706756711178167911006564189318743490110203669689175046297071019419093472477651966282959651559040583920268605817443903355956874619514459645553402953029210554564300084600916946262822197325723372347109854570431446769843722453845876328838795125460080812396282135929074515960954267083285279923506853587541914753392933635216876954714786132704987468130798848805346792243608205205097994058572268935301464810912741876257078444397835195117219214904135706544947734900648287507298047228446793861888722097802037756477874481850987950468608294876770422757161543972631404588763049037316753080625277787708058111807737508739615694319544585891877536863497944429216913744289257125577637798207957321735467698501028970641428927625804084828844288885277950215948776498842614524408999198130659039103225962094945503043341963199071761955834955881333265738732511127116773482787348278915136002437054309070292138962990395970023334968014078151193323545307106425290201407128263386370685446258857301640598210861744243989853675258562358357417171786030800499334396160783614646385086884808100680935945993653576707231923663195813465563725927707126811737808167043799778954076897491048625941218613052460015572228256378197132321187080075497372062141141418320331909057350415619830745328653937317914965450600351023815549055101983708143255541835576478881567916703022831465727474694435744446791174011301027479976357410063413907552954702673379035802351837470097015298543301380197208450258279398055223514958694637744770535374072015156913485427094128689375956342829206142850033642215645433654194720702733757883276901644923766693577917005657234384938895208366167712369623310833863351694480984933709444783331012216356181887562521710972070041408163324676681322159777665177498078238732058252559200913902986086607582965203955003934245325768828130953777280970265134478128295934231735614513425318035667336219844337788536170825585528236118502590139868642325844546662157770444249222250795511503457103370682022962970801101904901025735757372065004759033945574597694503972840667520783159737659722260173690437326605904808447374644203969668431905413672950491093521069142355587248372120082718341335716560441045009172662676966861144485212367072408604642350100291171591173164312727045441171421051105346665894838282818697352090638032604646798330669435082497797739424848394103401038693419211005140298515514630710842862846829291158978583356385052753937863528637915658744035638595958033377701495012969716364507032891949676196034182904899779999377071544439827457538762595823571085665050357429466019085452322374984673614789846941527244383507753680396200901229991637868295909780330606750130889903396006102302188393391169860970518132443168501363913950747615061870934379231014086045832942361827919301700693194411193529274995811098703082969687721334307584617284516362157921316272010956605370715116535996392808212769710636492309181854020354740137180101803868718919476609959611232526562899594258511546858926262362513791456212128744911367847974545303864864212786200247950395285628609381333167499004963138969747833048090915523409641170776445292128580500368721093597195686926053251052501848766160687917499506301488996600807521534221121010662884721382856543666354880434696161793065916148160358736657143715714730427615128212083050180642214719733428865271068171778647072769748782123316475702100364039423266157476745404896376786555330107763894210338161816739890200127556573699945282366068952531116476607045534007136895832297878857518537086859145101774308122690946881501472837289723562442149130272553887116775128182827232168413788659920553647733298632296832278954139933249296799910097895395843426732917039124955339361950976285033398566134722344758610925151174104799453260533520819919545013448960474489697892002207384246652601233848971450357243251493771798863603663510624237760387685457737380327334964961470407201942883969500038386763287343456345506432783443916203355753370503188927884102016800324682615020881156271272759658141030299594174371134975150976428465080778677765790544423767992083650473243576242723361458131941830598486265608185763116132060125560292981157107546622339792080001606449162895021961474510883768735605990172471867661272225901426659095022504353572977988639501805016419963906930253123766120570818784359756185061880245099079282867457853046439271027496260159832496017898054599026584673423265163595455890633560444629372422982727159225093563773255769874444316887539157507865216260374740387887759986311225107530660007825180541071450300208457631254094929596746157957752916403914715676813200993759120471551023000935721241620310344325912128647256577321183677436803212415157380500937266387940727659523552426506708632358613215980851975322413437519128470167081974786206157415649878004719275535665185918103489705744001524350144968122978395455399409858611366902256965807697568043519404910132741556662410086510423529665796059514543814707212934433155047320111839890846640364082812290689182527010076530906252195400819451398880934446733443147497113438898955406795259756484072236337509821313715247437847626457733494121092945612887603689329006416853960949084312814325964904255882745049594122015284836802894086668965255847095197841368330717597047444065912963275875349141788887460953849358794426688989261612344408141367154005097003006148731170038039851638597374758690656460871714209845034606894688876456037389644367981602522011341029168087907120270383110206581257933598295892545515338962676469771060698753043246782537783812729631821284405130723153406687767662983175610262516646051510443937037222494133230825512740247717534473722485902869135215270840419834237774653214556555556831935756238762153076851024959850887452971541155908958225657304149644578945261666433887482522098433367553679824941065485392280101076277504507399606619688589522725809250096129285532618078679021347102245078159281444968817448766541833746213477081110435976677283143592559135563798112391221451257999979664926570220252283271803472154114409751055801643980940587204986706756753104351907946638231882237296773612257136782639354035936948285486992867314721972483382250608584334440269080200042119989106401133121786165092924185282188968771592837175619380017076302457564260906603062670047937230513422552794656172113578802031020002421911899648222254679663960928427788304515755071196525608286767767955088177379216220307252038965361488243808079099883478378586979432975835142408838744848711894973531516360900358606688364437343507437106123623377016012443489969317656349119666852547657118697307766462072878411236121716604686445946636939552822269173481514106266932783133243316651779773702621910257592326193615018679553807435342736990234288662880197891947348342932186403157678493385356203233957958632553953994849109076214354377794856574249525710580758393364493826242928771805690945474591785275875289275052882823888866313023684170810326983866473016157099474142985186379418532183491130858795898464981818133933053922670023417986446663136398658983164428437267133399806008104331275287197841247923578131989737699412002013579232345435168422732429940155843227976522616538794572174046661350046972890138453590918819876646860557593128047449728488363719786005505223862768384311605844933858628600316482559573351408515030545880140414505959543029941812632537544323825508157093577689342282127628991406595019711131823201682614455784381132052493700297352862452041744010556162300289388582803328184067847302098500526847676442854116838147199248949501149949637779408349595821281897352283791810505049443932301149189263464942930192384979543116659117779910911134318518142271807721514251364443763370892097799106783077628164010796479181850475420323077552463472991314930507376853119162812426500219725049951908766404214940840591861346277200685286894412326765881848262951227033246255013785773579884412975713329208417424591072980079143722511462543435164741062306068875161337646658325589526241598053724427927491500345121912938894332375713165023187674191125117593272131079510896554318352363671181674547382209471126874267618248281928407310921214523737754264808907889096404992953256890840687994011553869026316050639696566859535313159740066998952590413862550341652132767339270289172053396109662058645814058088173161090378572234868920253729903786512108014844069499469838896072546916321901104372231069175291345371316132538026595696401033689685781046418259342563130718008372538598435496393578550455051611631041605610674347384426674948948893925267378771456649417209703056645895616589216230696266410263298865100345642876171525025216074826200411814105477063693842584685321979972292458342509489599558238714433011686366270819580518860223788592304547990932103453941972763288336784909728322632650389638098166354491220139795436004831992504170449501510297180469635050760859600191948822273467622239600325505219051232934586590054639339591681796195076173638521648388318819905010560106776785976901731799552022810002774407765029551521161044522078486205620257062336818771935708773284084398661287769397032718354161683215255464273501687633980607224977655767253911577151282645547615527146648406957984518524859785182851893523254657142294502051099926871751769830875188876425569866972743364819965585668774947508458183102909539000765549513597388126224053448735966976853919526560582848445998926446152351813098971685943179688177763948404502654976232023187650519208198430108620583846718760510213110394914431694990785064177264645479672189097321056264470284529318164401756292433722209881041380956621297423821680160384618802814130572781649935409032902456913505295869433254998648625099323763058335428776293476700641821347742127936022192375726710589969798339857131953676342546726260115645669549528789215171839264000991241511690563863067305981181414428338014817783143548586985719118708977322400611779268241717530857750232195082401984792592542047101119503557493180762401517303836977505693697516641060645592350502408189286320373349035326258632795607008517768198217563042781222693177095392231091828867936387657167161983541627476356693740375820823059360577516879194397250276819234834276324111978603357328888283502082983871796605080573685018178025004534998390189073405987208251096380124214592029731592132485839819134157974784114255005830407456890455694103526312227488611524760419087999599797719917973957240194299353421079301439954485201278497092386521276966704638483683814209816719169363644826086514121368596195446915811123011348975700379747630713132578722266578433898908040018196146252872849985232337234568277541691194085651556356798083315420771814581589808577818783407246552456616634633597209004368783094574470085138882076930181219557744457929913065248064202073251766569573104663415848411380145675924091004002204448912632409132033369364216377950245797078498483056299989006457145852041163052223915477825876372378116534411193297276046942880798536764086969079836479487788141954272618237493567065192777108456345898333454255074475799718591455644825375736700926000681247996949944161498789445608955737211346386765654495745305643806198759151199589473441384616267697898502097341232938354549067344571148753387923423440735285852812110540327427961582561476427127054496029747949110057891042298201916692227546400428842410865293831532573325745288317142284607555835531404723368641890675462285732023317696464931787987139031169247948729188396811932976007097219277357905378740847452199508472430215927835830713902832749988119083643068925584591728618713870912138550531420116453441329934397991091663130313686388538883296215496343791625833742527939937147909588409261032135870742271122844534034315992558021582476915959847028606736178617893163147360550821263050900640802004777957089592785637073361660518003904150119803800130955681107100810340465760538096960226976765619504670563317990204451050413680020030936670455919608520178892666485417391543990420451427894998919014025767500599060084572957391846180782451267264182005119233072118117758537440949259219360032359031432829911369681601191080651242079414445166909794020529986914504872589586301883838930161690868947297339204980105140948259680924672217790486863639420303528612746070280573278936897672427291993520615378924793983664602168725297468106371010747623890445679737887518465079328620228383635830115180855675656889370975023426185799081707697172126021250933785542263028417852121348801587864621834838273317315388664837765149331659264010533084966979878086451118581445761791530298626396755640886685127042045784750490241002889293723816696451732323015339350062493628357897027504058128426698940724791829728332148049269793172603793162453286139926539848944832178239822668883929027194089061290701949092561020879436982509107280525953475643164899934594587732492667882130152980751746498967271644848600039703913630293501900044658030817106167849445504536801729285923949013039046905039997807567932637322891559299646625181634938601497115387650260774865941556460441133903859697741684712239828879865241411344461744260774584844568438924628263693464966313053007050092402889599056970150844607746723892176598625320764339655153256693079323311730935019799598185776095633683588802555098482708299262543987317941184021995690393026257932411447394631124050124366122743862475223751422008215023403103449683899960658180444992833493841223709328075660378520000670802583565924365188671009243897156528722270193314944953616222794053115737431014926002385187053307198313976282615071159119367346444643066502364624081849707710268035214346134688632918725820531505681684433597802552501527624680923265590931468886954018434778558628931553487138631564598882129070059618392053499745685332899719111617630327940244912524830981098247262113539376560535449035328124961349928587534309013795869321073091423392995426665438744341357603734757401985201010858366918358208035681881335906079505425956568588625818805716190540390461405841879349259649372770568297013171600900471401404904526383053477856045000102971836641340008729221501416483446935282423246175077307166163056709408553919920679647459815227809390209434158304977939561170840221097527510120917426135683525250927288134922331978300468521560087292784976514274537019240054656921099589311436732266839170754143171428727837546913293888374028294261492719834357205318854405424952891553519152739122126249565299693092993991936757964470070993536329280441171257039501778426877887908846739475070501437159272802175241731858771490189643043774622192562671231061934340414586959631749201602167500306573617132990979423861136600474898872844661526862275161062936635321527506793507889516304017757496242279330808158481314280906031279157364756695599865165734013697784254569961340326314452439033563125488327458962318231811647943076634531117427788517871413216870012932610952463273094923389608784863440097438252753006845584604663619368109128825163658325235472750456850009474682172947881054944950532741435295824011569138051420434231642361951003881856764810186958484923985124346840746921406325594819469815885186910328603892797973878508044408641754079413797118194343797697974515225209105654949041802853448689713182719961619453009268908888719307930112517106730773106141144996492271595489308407313082951852815785013437481680616376605118983717586791978086987867108175598223593410632438382939615134265139827916613234901429986474165007867838942786647929801775401239384761530281135743682603395536473131275910355214594421858608914370071715869960570531965788547888655892692603924229977275904267018852142048802171033492491888710005357301253137956035631519607897803670114713694181671417121563512659314573455639155469779623851476252407803686784428077581240944531128253665226908600871705208043903422371153175871419651909959434711628936496371676960043217221454267477599402581406819579881187598162253269607003652393183344984823313504204580748277481980601377850608913477106822281410069880193784670122255768187701633991574144178919503919926049262090447674407989954821637665017949525265250583894777390618674396289717434894151046930261129968104931047310585826901846112956522331370254678482178785674826155230868935133065573128340820248986215917344658220715648995647151418899236425247179857242256170296624217488021471183365575288241038999838634439904492385814474857027686903182188278724000254163095299796299152833822236006318338815700417805323053919479605166353827460131986413565189856227288944899159600044055191649524915960343478284059243343230127899067402941649142932834608288183957391726820509867919803216429477857733110489217478216201964557332069941765091658386171733507615382641880052396604290914921978594033625686927835130077217311317713494060309030524884253486788522011235431129997559094849791179996191222030725992579691144782035612743188191624352233093202498601034221356471305231073170541331275907716510310078625170259423096146575640241687005342194195284738935481064373072772312380299028290782334630215245271219564362396699048176201684128314297613424878960914712007098210897579186735070810968437855826275990986642761604648664796465147424057144002881487506003265186389536071577722949841321675569361846741807703955526338054908704418918685221751971084608268339566169931858035673517411434426559272971928907207830212407847676450440735901892150933408160985250393055578618551599730541785081947472569463579273646816978031568205934038257095778064911174406671858083105762926332968231505994984452554084276028791065198839266710008999682153140125950991004791038216071829130176324759601787895144379237921133418753022508307754153886582422356235685335309907136687625624098649753799611997093875683065642632245075928279987135636782627188820900760044837814604224024664598442689245217459434003506010777655145878841021164435103070134069289070525493637153924970790239910533929149641817778960633783200321315828783178064582971932365953253635748904235114103631006895734335020052437335713630144743316969911642782728839070023791330117873037377334343731769222471321169014184380418419863618206543091524422739254723679913758517340503223138605822384494494892957275320096619094421839534478785785786921765067419256256830087045463504629136639044438435400309026488564706860644657898593454083430912436336888404361122123395892770503715723849436971050483776431432310420111344930067320536389988226774328539135480853291785053969972435279269039158270689734463434208698500819452759821663136586033941054766996184659977046205427849793370544105227116350825807369052261551558908742133878071462730256300390190084640310631461705448462859068738333664727804779628749745681981546097508386423983179217182954388871254575618476225591191420078725257836766858445914384349776747961439531239051315929906901970211110468016962362239552318059916582600606487256659305527093603020070657184326111990901828693179349411806925177460939360032584737377183411272509320315522408640755106358430523519882129121385730162089750639418727765029449883066111707932797416016509478777360752739659804298330482131195932600707052552824116930902484353915839920848860240371821520219409863057461395247532336458616812256952775619923649890375635963901669217603052915030809273977220477970281860807102116479018983413611517395188121916133141197078366810634476862941821388578442621092837140271599716745074675066571278241467132866060012242111713992357051583237820817146104787929751561126070585566029388490759715762419207074054448649917052207610512437833324500553454493180627225477364612642685919532251012395875380046707542464743393500401110619804599263472464344285340140871388141901408598244490467941411488672943468467788104224705654461012441768321618921256401533085600721229116699140281598640413558740868419782823560516000575453306305841000963119527765157074699189571150547339974356508164617299073622303003245363045690686999412989006786872433092598661824929305136661475424105868665609373978067993944363707514175451610784439510501034027502515958118699668686870944885279083578681190853992164385062443398464331890628487759897972175056728220670600437774970642569593824045353366972100697901390130879022064405227316592314450030408689377384273089424920472812674088051705086893501598424061300160788577686623005402679455464096552767594197548525097394904368456108555509686523706642211473825714984227083990343422458595742335217692860619784506540908164711094169115365156966772261006350009680590043274615130548648333077776483971769637493275115733756402719623141856402992984411165200184358692070206482439770054990893126580361221106669838178738074349464699110582158508135275309995768933373504522287060357895814103030294799182033797392752071829746111012124951731377630696588466315350056366652992288824330737346221743197494030339887583845685697415591214795247107883346417444716005910106040264876604486515708349403872640981955476274080539349136900668455130478115599558073203334731176915266643545163572657312368739975216760171934252273212881289834660859467496290807160918172381086348866556215732546425471812894537617688229145437022554642821318439946113151928181915385397232176442655698551802146163297273746639753357358795909296952552243955711570950758133493175806394694821385398169752274953173775534219169166306656918241976379756939480602538040642953747160752330494047673765463008901478280366409152044405049146272296102469483254131537621817651987083219336438776709507564108312038116943084435072225116596018782087629810745955997021362041363038442564800686338092797367078696464664996448325160132293934065161908864058241892056812364576681875641168169329912267865322594131082857056614823271924905819994434825371409134257055125378913095001239809865615395431776870842577054300037933879066325548383268489903235225320200318615869430144391962080095715776727039576368377615088888098247435423611489918500632282165192172709643415256416920079992368906196730342570167894479393105157056955616151164685106782634603398106871257384250421251876128784464602878430335044806405892976527691626795627442281149439110337137916703476792785178541358160647943316029516861530121220541304542939790567274370995423825794002315436797009278329807731121126155710796889198389492684459222477363561839203400040504180511923750530311052059668981542540951642126828798837815199050563027825754394339758266044697562245955262340057665511077029484870241573215650051952016895183497194029023721156290698630657425380702055859644341747060890542664644772435138392276479856051240940149025767636933584433874232771925032536132081472300441463960798353027399607516036289239433040970669887750679720388714689297414796083599149018053349912848994142283517279032612270747052561551044712128746983650400316078447308184254461779981061926113094015255259207845438430303204303580217495068738341341751247709564270755859155664843122798168508045476926388515129059032789254616276126027136839531209656584256467834130078133853929261237303990270105654595832869395708842214704657128533475525296922796829976359302346855914169389422433810667958374337077421354208418691236480891203731805571893518724638302224627624652645060628847744378211328083173609283899432195096269154580246073947863011511573294855576819982068960574974020715645119480993872522042040372488421369551762867689320673540471257509692702722409167515808872765926401121029504198685739515080414080974897194232441413241581520201585565857102519327854902469049489820017101082772494765451218652518149843697539268982127500528252245793072293142540560005634057238621119521927279909901627768502730857086717650846950278297502481603034813736612089876732663159747910442193306902317405649136425236738611847672379452708198180314421801494901509786529232999473046800349768171759737471650494385605195334162035608567455979472627840358750154019246867920015876220516079079585435641907941945547846539923877254013335445731032965718794986656734945476189795149072426169648246574196197677175657966759149149784191319837524430037099125074757997366512245584077526159337664917924511406782155913392063454521645172465362447746082718676905540377624227444028066148924351946235791439369636670237052685152226560336908893129181819693044075181333861635913677996677652394744539616284646924578052270861212578342426669147830223104348221277249023597365609635111804394650655819033760310290089117284661533804999966632554907215993288409356381099853275585807370172517080039604357518558329761200368546927088373154339228179308794014724510526754045430103697224475861734294034263793911353407326474791191033768553020652571271230027785526715708134174029133153046500643530295888143660605049312133010854591807841544877709231956346736006275893910842899040712500210539527241735480394360300602223219734442222227615164070232900854609978267286078831583045089764926717271810453882532654767129400599141869707893449155672573364764563693481126422304514056665368687593383389510314524657476426407914039312310377322278811248065459138413088062764950564714722275569919367179306539708971432338370748679460034462717057619239925498546424762293563373890840266168236178785732693820463164915600623473343540070418033012937978092577034239184545132232655476384116890858085755090297082733795887147933930254875553414946723330746942975768272957037705603495906931076183130735426913653790704455476044570315573327426856143177783442085698622846419391529890194960025621052016043046966880989093680238950665709608945263907957713530134129018458594640972835077158856312931787602556934623784188592172755254252753359378790764640340259491049115970684530483146357269004283377470328452486663491727826043187832072257174752144489080845472149634560927443262531309335129111774443958045144943305043105101510479478858838288222003500296254022832574743980294685188527667677993542192905881533301356544982529170648344359150755760640796029989301422411840197002694962855536077454411298642956224535074822023720889538048426445819696989769515599614788173396810501245430455906649840618355318650160118557877428037275672505889036302259248463424090375147817150712198509169677096804082742913532420904379235741055979428143722452070891607384515549424261060830097370380356028238253935410431168379645334609412367561932594234961036464526285009216753706207908010616103782933884162757708976000609203660537140668307512727346006824857867020404213189062303189799495470494273748349553476196163656639967876137406494726058117608228928558434519460442806444730431698632376719710888416928151294270903820005280941130847675767189117251343848770351953355646226313801871444284313436017031981743435256412703677549471056990848735480617662574266014215491968694637685408746575826961467413786188024897554593803935162760644829287048821107347888795729909788349223024427123396649562300017241761446632715431178976357922367072243458197194263311163023993424936060019444204267200311311741814241650254168381431581873220645957881324880976445945009546912199052197294186394222657240808081119591784450912814355999286977355670845015933983784536210254100733470272637321653020542760448571056594171653729632643205263529782116291128571997456927663264629125835479996721319866027673876306046752540439966925624011939434979265646185836452978318020591924023200333788158935580635452487268929056195859513002224273788589030431464478190774680044550095373631483373428046206444916081038122273485468694065028691151741131444919025518681518847637654047904834185452367625394705695251019858104567501612632775759337852580469205246657091085512286993128022997892499458946803733840994601734217355074229578323393460267222628437076611400985618318345749672182125928251924040801061011454001124981739350119573952082856365315524967111087934370986649764232135553330500751124174161130541928050477037776310961162526327681386331511448506590831015964287409585654125393707840398731604310847480713180590169525840956303073190442970880651338191793394452022056196334075127728658936924625678144491089856632495312090156708411589652132040457560824803777970104214152538816906329816756030678709711872706539964898162370225094395277390729125666633511328162314177833753157979195768373881474906828942104308677956987868135409004103843978108232589843941408592709079530267838427646384955596160632865798464681143280378844414097564548780618987160422685990785097436804123229622702756384691142631834836688961230557120746539049529799663111942276829377584487655366945976044069846836359924916361906281790278420067255167324504458856474428627235152030730420231318994346545651827031085109380504834613853543235155017190023938938838625993331339496610930731769357912963188690950179733932982175495248233491048811440986555866409408310418926146366769093766359840255461169971117293779597382976145339280595039706436712130512895330160595833372164612874387938161098317481592628079183185145604836340504685651970398648328488521129684584241298386450048176510050343608401056537392411415176266084640914377546812700081492179479242274537099353939721410026666334309417697691810285172560281301352300550512144154733573302223518348659856905911896773856078850012579947781585286323060197954506706914951724386189539346045020422939106094253960099212711342369094328429302679620333023313511107411714594322765327026426797143037891963714877929330677023558922837035658110145351549656931315129172218103110332223656289974484843662286581466789713658289767215771658993456893207696125234785715113440894724169175656897849625855799069682701428194202166062387375225410804106121302389920054873686518107691331337575423041293715316012159018479733452309068615621757465774721449215618469526225741270270824432147282517267429123045059307970888000574871605957389146944095035910202843896543620556617861562976490526606270299356914807667150458789821271974706251958064986531550814950394951092905540996394977262415869552798775971075013691898680151278984379629783717310654080813040529922604916347427373402904909661384410537244421794424441328359601954465635781984575887955927135452394053104273390868682599024136816996481621090174276227729969450030493549521292644253946618563858169968146180362937673961260135397692211028765559501403432730953702281983970363382925888506991043076772851688066263500746657452218045686909153394187242133763126502925229372682887068642348713925028277945721613825361608691287469815863473409915963704836418195620017027550157634229481509499788890400280921402772859095170721185418789456612275557348354946584017901792968824176908168126819729730271047563952762276399309975729699470360049760664911865400157219311998686445737376893578291248143574130788531718943412753251317800296768328818349327055500597749716896298405213688634161157251433702872694665374552918626086764693830602863020402804763963535607502310020006575797852181063570428023637472935875903723833304504202453262841966680297385487634010638136569358885870425227400562343494884928014590799118816020521603747255281666736751408605999546021113424226769879196408076223638750384595053109873594046282998973915697135166334994371307999010767286065391554636866188688940615234092164496677743260908790639217765612231894778184216950498217071424661045984339948745694912803503517687798261413133844399262169395324318834298046091866389672574775961922873892960706570067082719636496800085909412577525388408955407655086773442693252443212546492369439881355526936267358247200958117627868019175872334353221898034054299345491770755001590282258987477668025183016204876725379884939131093706229016535058776304565581973562391638373443963612310396872751165477674409514005808753208750436870511871882358384232099301688152878589561593250768939360311338199386628889914371723041050260619919589122219329987723890249969065675080187030323005877840029301763681579206514343267513095458973902589255321699759891043053046720856809756058790041671036185487211090089813175761231477952818612393009586616178994054255781551176530052885810746389733083309396295288344837335513626447660522168104082087989364567921090071279489462955355809927243707657296830793433118195453487365070347863113145744671974980705698764437177988891244130007234953324477811948428399048467954346798486625118020631463875258660579329003667694117432936290143356135705160574889600560143647578123251069430943893528449072225337204234957834101383786447694205836212715473014915126253723951004475125903135015591696250465266124399445342552669247698037368303745331155445612837360035071478491175195313727837873218916331255186960399342762222256230491603754196345115379485339805165609797511735261818280469998749809432271192597883936831430687140269193974652331295510900056486682220975335428511400322518967649070916869046697513112962273300539950276266425005267239225689310886078944912101499673845977546381932480392549495397228869991759323658474201725920475958370761781483463067141613560811734226107538304580075036251363607756935790366879761403559141533391868218712766895369525234230645301579994208527642543640952305135201429012888668436595677212990005194063895025813673446314990482591717800548513511508780117611841149227010111726788769663020006973331244763339447424361706457714395363327235988663476462602372247354024350368719951401849843230168683215138807545000859614809839117430810325760633685272775442750382802688809028023143233057278771152721771853720525692417814987802527259895710462997035043508487869456027327569167489346745995834562159309368252070926197960548561165004203538065872735857504231467740223876263365608859021508183653330759115410941657787182152722664916610962217064533443563886751362898502597695511261279936654555036211074770464006239365033050744911287945727756281266192615903702957234702261094110106025616946395792972360354803765730139493156891965621517710337478551558149789675184698917484658959446286195991907939326719535642474768715471239866655017055745850691036916631722538736448292384027683992228545447651720424028148095202507167635729642496663888142015248077504081535705800853359826048756480471660928145047988473800297897710601926131213709348472160244391957753642508792103764941020072547555338834453615660844345537540212752183800722273589730748025450950389729697523028893850779280121517741087150305275909764258683959511661835404130088087035204535933617174083382103583015054404434300784380519748096686361432193344906051153888205724473865660379183078216105108474277077526303941584188587344237331507974205296427540683116774234341099305490589359503647991028007091862111217988538218980065220779529515149671270149654712980969872860132867008357390355919505423205474295447347117289498932399013735232682981612713998698290059705437826721055076338289223670011608298713738864858202598116462773362277592851602384356181212416573717639520846756105315238097260862971179800401757978802868945838045932328728744654273929888436623928886313203274661797463005918652287685631249649541532482340797946952446425934354694795484419199391432626309681142996273262752273995235589352582640360103368651031903513693613109145338381444778870993714040548619341483113303968268110373910489114120338002327778891933820138431300308684367197170343829239690914932488343044542609060743368689584367628501404260236430540295693909612935829872263192173664070037616598987352212254155143651881199571050093633401147256347765242036927597689781729992177683419063322047008728059116500495857241066500743638262343520389855035534371594148401855286821943760690959311209072902839730507487739436926564081725744305257232334284761905966485696489833778773833027686073235431975322819976346514184275919451539402297233796189677724465557794819675788176850128070717220792539466486677723002230847868715122618466608176681882980472471949471063141590628068226129539678313608638477965183878593800211011859770375414012045406301584811106810734805810135383612004279928920548172989634525577524369822240297866567690741503391351716875251867666153780522383877185906580464206359253286670709180969251214335135829377839729672284003277669769435489331295356834207741666222615016484635002800168059806717156036522426039891346859204386923693768477784855320745871494195275749912894578721489377195516707328024041054853224533090596083912320919294839105198847949189275550413002875179904155364913740160048451004455207785968090028330390600691286798462025482900953562410016341935982929887120091996114175386681658991617291343806405479974202159713707683497271889360331358544458817190857992027496845919205558572027151572184516398652962600716675027733850931658970043668377106698941152461200058597003553449470999974919350801019234531507188162139041701551964096882720728362773111902555831544078410579659990515248220600297757489563755727419895669006848233666396962589049850765103414713044147103938412309802780767263969005962475264901864339718445288963662038494316888664412040548149804387625162930049528142838156878863300526977575846636298962507682486044817508645991844418464544168927585689066353050116895173840833529009530295668414080301023087193518606625122095303238194729075075654467597158130297996207342348936598565334866582373388325345881998797321229510778297169863359676119596101322804656424599877293046185154961661643309174090577744755521708584061269051920163221355593377840738595851904166950233798353138047926272493861320900195003034554578446448086331960991902456485287959388139943751952317336284133887529097576987389773037324718541356224356427923825021602683030905699611090423614277120934976826534097894567012570192679145272535240441276009873007234985503873780447666545927150229657613063981248520902622824557791650126999910471534118637536040748628859080277087694405281728170997790821681619553859567564163275616537701703557548981596550640134207597063367641085272052296052163801778461105683168526403856871934910689762837536274287794285314367413699018930792924868367502602418124918840075911552218786047412052306916921671512392794618458759928851535174420689666352957950646942623660857776017911653193964535802899609011406512478548280883257569873595424212407368175867066375270510929546314895562286135198785614189234304329970048981086437642572632178372523951356561826949657342848691842290909386166831980076687240005066601934680418193663345181165599397980257925329815543160694179456698500248028638823376018319161765000010018723414868788072200801278317750142759896683577356899543051208366684300715923623342847025837208642260062148378205113645864793269568185946682565760746505153330364816385715047770216283470122621464188205469678661293684647294842470631248337891407125570871103352835912657503049297958521776612642730845149775908087891158658788994526267682529755397550119212517235826161319019883985186627826143059532941966847969328542640567080741019909697658219008961291677661888219777678656535285789188861762916281871986065091712904006305833527031564352460001189239175542070302344094032983746851687746139643582093526594084461802634514051050850299573183808396113749773110166933012375478181072740239974321277237295907427474444613480595320517655046053040390634888287212721269614525414197249425189689738214668911605422726670464167365099451751338577440962408684212631511917798131977166313397184105399966909518313652705425320430616091566057864387932414693605086524753761683259194132974628388356588161065679920792019072163012021162824350475818063069050474388189151835044820981156048222967898734566529411753804189567760939597070641788892665978530496989956768061439878094563804239176233835376184160289430931084949768900575190806475853423743550301891630842405170061932062728337017518848049864142025087864161224918767206213411597676138404018874596991896336112797023633701154245317777457814570498470258824251550156197107883213671292751782790682400092406371337333569549203414527123288169301424449554158445869477139936803160926845546442147305924074169866934553678936990673042762055371531261131685308354868752553029913358904563770180268966508472851237844805356040270122738685490852027122286631240691256035065360626341714798124098518934475253957723128858675378877621305087439616638798047703276717083033862865066086666535061246194412766418688907570243050065446809519943237341640153191435398931117718408116314206658350606619143566415750621707875186165541201064243662574498290826540939581221517971824093340772790091634871566756950189947365690058522525638345369902904624826887083451435690101900117688936376283215142013820705854393940019535783247390942712104134260089394475244577953404225769203130585033321060578445697853540511788162690750664101151079617840930733573102506809404848663872451289717083242203637734233215074540099061618892587078622245181109047938042417952561006080151237650967585970859167894210240497307569166023713625695838267959673018444096214293054230141308704518932904952253053414952641696897186494196373478720056250810449073955254933500630129367218971437943730289322679038161904667820329280868101712673892264592528704950928936687758859804767401138624919132422105596471486162161619883605012936803758854261519974651369137553617906137813353901413170310457887912758877182853310120342753359022923630249933092899230347097245183225450275324131186982738495814682406278473247267699445238956988069528668278183498542219841345297369878145824637810607911681146616245579719030748212164913532017175134044651145621623092213115306525768161841964784755478594205262577054432500320277482351381280360284411932148511737483565125476386292272999368048813285262838548506351327582057455563921712924242311165360872246003949946473148702163569280715379524761992649801442351237386564899948549160708040466362780035724097994510959732726606490518946053549756492335862800823905543015672406128500760895015023609043319108565005027025607649555721235292752092999421252483182804333681339952547244871643845057142494026980272928691373076115893080114305665687939758625446682248910009313600926378840003198116564157045747337088148702838412533291696011375994427179386916570041187098547626534592893359574830723983084383561761778143457063584987676919675635341766378135786657525585027009598777072967795669920996738124032872624276814768621029623347241174284178603719461695958066828045591549176289995942329487026142223162566523880815005929716149944277881131567319722114803325654174112298615443323409366592915452554472676948447594800323489864252893216498219310359522042785364076716058931081576902741647843041965156674036020628589598308223973370187948611845843960958062079923513245420543868061622871620279399818731039054647812541413192878650616737128350405734717591517644313291790055617420018656900168963173724899445535208442855876331131382619394390732760541121941791554360701876186604214091041963197114911425112427738835334259764993961899807567722195262571364983832972743552819197588966720440970797584847185917964522125325780036689894287589700890772851696871475532486943503350743897941665672492340502576702456069094795824381326479354570530601566278151424498542414163036034788391646795805336942507350948016724385835497934863035015121504203609563456417989561510730759328245852319874421946296542058316669750368025622920558115886431101898338312174184288442237169101304886795316225739859373182411701527004121784189151572619821777753346738900710733162134879339097179200908037845737474405210754699580269603851993151081328975228653397394499830927223886464343424105842333411791737073650398080834590989038563893773844796908839944200479054016025480558649768404179703980597350728606662881357466444626665632230160261033350510063656211098840432162202497559447562069370684838645830316967845251933486486224846811662849691873594830135135975379819718342811227315373790187434477437675018257713424292629422493074228770894091981706249967045730179238820429910247897955518225062973274325121526727514026760687818935970988310989750852963367966684786570251847844281380202079449823265199608293265486812012497922255772462518986177835003674878319765004101507846844000499011983412401198790644524212943542080266978139424078334507888423506953341183520355447983789224129984619899155111438305626745858755263004301773421047751841357181683935740295801369476061116039510960619080744631324368732589094924159505930286953477039419761447937129071346487665537745779530976548794404417711043389435397808710749030024038792477202120315106862390584697602900360098067504490886021414706822324990948281221664087744308030772695890464208113448860680829957517576407642241942590064742962561006000352259581231644319735673411596949799867697241248253326812222906001190950763502025289811412458375415972921342120512919324459774275728540755154870167083987128139709352416913177397334741450000590551901290672507859455693418803286584448951166895054951778557282399157976989677852078151569201179234416163352554534250066216729943923434766407038432939438832096951685633880753239077211440684079359497028786445625860123072148469867479651079227869185794612363460334789090937090453196709024801185407047101972315151484460349384706174451848636543739899700097055901968818349573941956053888893871824470590883597398567747258952154430633321572423401429659530882295281311831229915233804763923351065659849821387597446377224647594871563187776485179932206305932285007426421924713318914131754808921148795151672650293597850961602158974129101887075266378628446205977299961281615981776282294292622786652878259970703522315996870965907998125378293375231396671988655610323964401578402304679011523290983909344114050536997389563107459020502584281306164840616695708918246967842161796766023082196981502335736318945554391404606086149503692469049672925850306749584394275819482788367802565834007386899245693822964335119870485938141865818599212279870196543338026796298547428546165814609413843069822109609890644348461889463607408876470643359233496832363712665415882518687073727422886958433846147574078909265746021685893915161880464934756824733776769543404159941043543273738082154811555627870497019686498028472362541964761290596104028384583305633760343209958442381926403715099716213981739865762148082496254100080567771537532765752825157832672977941766216550029848249111762816035568094553830848447472929463657461786294177324779636724720627293779634430505708700142140968932677587185024382456850186631689851632539264819617586837471500685683703844983744481445238116315362659134957395296021781528759284947722376553300684310246558877945791936213777908014393605308151237185774179352428407913097113028996284993240572155480732699223667188132907005544255977876578921101879920929672882415797058497215535816933166830684319216707159282821577261422443319240880587933758801990646887701209712954351541109523785929122353608487689291765538977292855620332608865541805499747080990957460031132913262926504156043508079408759201161022306361932820644771191372371577105703039833625452641099551360857339412709194070077350077501128516838334393645988446744410265838929683901860152289416828374258857865424394564530578104695127088496751123808731203348826957177340728495791587803019893398276326101704122947864588948755006694954613991838807157677020472190863071454090899971712505639813177846405430975489697365512891850564080709307135957056819211529637015679524855188242948065315903163463780609554624380803717448514327729766709487058222134104627743214218159544107020137938592899634158574684268087545892529300674776008125627022765700992099841072962692954744597527975121741118990050124024797988188824000337522146268869271768196955190044611863628325274018340662777371940688937116557594571383679488778249228836972698728219595446279676197384781020053094724394338831958356364516414440876356816681116794090878575727116386577403775162012357894065121000533314587715629325137467576743968735001147973298021975440779579290813744541762171029589840848003328879396367427210967044652844472969546424508966549092653340579743734298996956328290652781778513994158577614416425303194976962072414183746464837034163081617327762926950692632329444772043677671326028322526490648447332105439759718706357588300446115419577392396850309923074495858550580349615213836254677967227760828491568510260077890980525297276852384374651958250211271490575876828539287176553208425986857538200110559032645337568144785987214411841638786057092340108619871810377641731928426372878782853148737919207011174528094802500653900369674784991496789556616811562355614623937957237710643534703852842334805022885136131455109516325466678601220347783073870213106094337446353641403832020578210309413723122101420762570124966781681872545194198432597007895778807869251388778142510951549418752484745017305469702128809146113591781989376150566761580400774131781959633698399101025460870614117084533807220393960147172629878522692169179191837909100039643179729231763846476225320931524782515459482326481159962556349536031290240376025550375844804034477743988639664418302348690343179158421887649932436067931811313320986221028332667551258088231546259964390722234179786730802380821705356000822429356261727801801270364715567358950752212301484506981335648047916315376889324800747661713475137704952639825669171865154659885241491746510208769379923404124191115533432864677202927026871445216633287033221360375026943778533619037921531992023689284100175506209717084467529803185299550979814683238527523727271297707899579201360440208200730455425386017490243353494110447487213675448346780477470824125607829209797833986523243183285353283805551583209284648446963489591415574302921505419984950663283708973251674192543158916444999624745837118389868132229830427787461751510801014572435687037034116636706499670745400546684669969627456799306013667736043700350904742148170034707357667052398962471673917708149840997863898383279023160389543224711587236365598823207758124383365152593644330108582898905443660487801067670852078621993681337953042297396794645348247513052171276934322353888356811361167294303219112192056080168797021063720986435795149184986550479030520488276391955057465655840357926812417809803998165109130003951392732933136217236534180207104504474049763526727761235073545342359781888738370821790492178679210086679559104658745568407479754713794501599717234785886345926583725680679069499486896091776877657657734803979383537713077790850321081412995663841669442468093112296944934553040052375743738709357744971377803304896429486815434970190808187943366292151545192976586339806492929839258012133326266798323023401217897129021902051862910986259402534010103423607750082187622134216313840896685190861622365680455248355848588280356917818625329837076100717105453118533265021683680365984963637348130526632864736933238875231957280453374308469639746144024727947129749032898289078131849468370773681758831861235006402736711804317487514133944955029787930693062929108099293136105656024640391961471667478332029304619407673352510106569697486303642593714125325956156042087601424822135930009647058072734431419383346420691870696154255507716471494557718560232979270696854742569056662898731950879936870761945104858235491916340554636248515609349803817228294480228965308849423412272091545450012962175693832956206687542754395417357720539764610204614110933985361755120724558846505182762969765804801495551985541326766517233231044856014907658930052661798931722997448425050457479519299172738817669641473391556294988579364850404850622624253536551078465503376306864924608297940376766355717167379380879343215027409166307642724730447158783159206986318300709711588888576677083453221885664328435405131070844498485236891977948918250922056272114394776335908773459774418615431036766038226270330863399218807182297927864292995519703890492070784888447418246893609593267639019275035447004603357976597134880859226022531188188497091581129373382965063525164549632411463102588431262922196322700378670318964736502605288587655077352247186936617412908933117395329420736886198524846210988915673411969809700194483373182719327126091325551013051386476140613202253610342645460099504314901187958307762679802628438633435892936819696271080099619327598357056873466322433144191632033170980460517975175612956480913733511573247387902275612316439943198465935500558702439189568570350033858969127054847496241094856249157171458884538221497670222805579388167813306632272806628475215203911469149162609183420636860903466764726567460362525701543522569845047681815931007442324470313538258452820226792284876997984751101294781556092427458982503481989189101436194953095982854001643936332424829543102776436832613841916796385006096325676996430424872841932069062067451820051384124668645609465550742654096259251411700851864651522103035369786052601922305766243757914011775145461251505610804274840635259373033063399367312158399528034955233759440844930101601127469805907228283526488917814099518706144647101379201365711205785278393867310414631521021940224250872469666660532006470352350896708059905471307637188681755627651440821001205253932510587441609703515778485224696689376040204949394003024409641339668351460079142190728825549110681092930915810957339365063977300314201208816275207942125206791385739233808410024024391327131591127748736416651669099255228869219121583641498448283575173775309121710226798827355970389944125104185096464866693593137022619516478452771336065257666490887993136523981430370188094410502836337227916509955101742946520230256466564735452205259486668796003395789228066077980355028112899486351213304496231191820014627282372716612386541111846750139763482117224142051605172647242167916240604342061777666013678153052355304461344583357065279197550978520649460551984454246524398696213047612814459825818319105437859356814047570330115230118855871907133981381251284939437574254792043577277401165875843914310817405968438105979511365762726356785315444672002759941854132339719730068104328682111324899401467697239299029431137680658872962342748611945338105987242580696782899532631623141485426276889659020062179152579242538745154861481026975009399985609684792613418604556526740517400528156877042562116708922409489734053774167615995880661041773044403530273917577684329078539032888760909640922932017908698029216479443415180227136356681330540747291184338557079296744958085397051051755833772952964401530683886601853346797474902137490254610812038250377027695521669016015276847562284646365809798433736130750287301657817196468167686708498220336564527890132040000504633564475404932631564574400004798603348456414875907189396915077463232664584765239528686726785211201270156008333616037373054275456356933888010084942678521674826365655806709705226260283174753320825395257174295893365873686367168333056430538803604653286334227067740224126243140768664726465826388415151640627103455773646438838204295789288183359700163022731533600069781075614491340513489404926671227887766936242860751024423516668596725667765773156771929095048346871314332515979042529961621016427787644015170188832919163951822177878190571035087347255804236052040931466459697064002113319905173313839364099791632865561538096731686816752988239065031221965121190642013061238644015355491705132313919853112484758098850604812038224737096044993476402142492288907888780204325345629038331739050334945053099523911993929419019529021368219910942767094770839591180111734448940023499255370201203895454742978832211521217785764931303315456704928471922826761254267701833925881824828252495320721450245768868683334050359225832480375785734673053221433873798994075477199218442524524373490245921376203049249978256925015167089554179797131258027335504583837129800628218270832558323101779037397056162103820952530605039362238099291611438684055456713880953339306036761451635229866760779405878058130720679680641631933978388408452028148331506533781236162398720599514744264780236686542641007100591565511401813389609399575128939136717041277385130754669634223823805112775229806250291814120102374786023174612042353027087987220710682065824324062024699808159809514089321599636532870449198843003680897314616775444190669715465718931993212043730636347032818763041170944281889185593364921699542799211689574128785722050997251452150282933182461768647387074571382011258001352486247395217218659041088413124196102259023983619012524099921412687150989358179719572503296859819240004567568293846036181016666321371785578111741302953788479753013572158497015913185379717616649662505039153046400561231570134762359751041846789229785659419115329787153842421837548101670499769206552235352673941170568847425924667862218029869058648167459965191765035431760050273937988397268915424325750190449231771194451359313363572739152627899635632409855065286685387540633344761366487345078547566091285947499261313991332913673417590395451363964358945005064465565002486164942083870809825733335668517148904144480465885190293805758615969648459067831556806243830375429698889339690699786629586481717901646606273728482987926411050843060783148154179450636602778347642660640445192554604349175609360415428802234635132369293149532077396514224563981997431298109619260097945822163988642496703192123968662069423494802990717184297490196341513354915396716420033641878084625271576621629474820131151729473995243920766788292834696538823071334761291635389635844239497785824573658248501363646053035961618408819314217374834168250376516691053890615718457170295136742890994772733859150964055578394892513988805820765138386791419128144763729074521069951144407735410407319356748782359906362505839895400938115000725525443938685637026472107276115984394084583111148320720046031638713513280449993931709524678208430411746778824397381588508568377091195707924755867366760665163215264225310320277537498527481619999141636630210034580545910523253659433985242646400707165437501746163797492122159517539124869628934001492148530555934583257928017098221850881405319928107402656002024869082816202007946177763162753343083362240501466922385051488603056736009008459914992832923869137406351181196223975598790031435012123301899918292140190497321104069561078369227291095963924236822962950261615504483638338535266406498622010766552214428028124439742674707391100056241191009924578796955938775679772885441807738322155694990938603761301603711730028099988403163997934742285415565810586707671669749524441519753594726370871133890083170348949254063052725244405241080617130801683784920316185985695044084438177663929501307426473319900204920743200921184476322926299349476265894789667314227741718100564056807074236655219951356062109047506275108971483471121313242474048155815135213245401499211471398330672107224679239115113182518200608338963829871754870144511741983671955141154315310873990526387796078401349340427770765439990486988181399397960756010732897695378337821251335626987650364363107771690154625372047915637968757362454564169410766644836186806516148318333485418882849594990995018699397595697511349572373575883066608041714621277554579567470603077914601705418266217527689740101288150333444183769625889801915007748349765598129834887326440351653261346141922931914979177799342674721294096028975145117806577078092445434641219492138191249239334100673123957902166526156738798468603019278998977462888799116400782599787106228477491750179204504747415740495760718779098888885677372590588969592668997771485084594677215568198434469812151441852163308654432115388477307701418299880457491497842202687250428519673828019955579965656676496727655059845944672808628430414821110414730763357609739015763238228153174186380732511237198616710294103087676495507724894458323595613064390452327766226506968800605972991049397497090342053709630690637826077010026664270378819210575425501915629162730818707059332198000382356852679497444696196648719834224955082798253725303665423150391786451055800538310825232882315435319817047959779388544548081183491892338945445860781995988464295446520447123225839237788081934131507222022900545455049497415283970376778907271548836488555626702294529412115430624174229474628659769520954823324559258184544313644388521330356190090390529187892346776612923435684649487917126130816071564708141407952227402807819887426089495125242467153082596877064703240204468027000991672494572010214338444190158131274812032036708634057489334133006059853530942131435839044211608531482187856438879765593586327988426245405822473425771856976125304021024047495381033036323073866838827777366242187997877465073183935258263245425709140886089918983683031108885584951463030086025434111123376518686631536780017969737347177856492505859494241257878570950950954142577545147970520933266630543221442673796770813159456892699725668850257177326379984745663363248195738938487531030555161427735380305690770607010671722966210471868902485015000626787465154024705142285161030343382917473584002932180332909606797012030922106463141476907525247727848934254255911982858649167618240592745969454788734442117796464871451666536610624039762406944292236266994197813264614438904101289436389088684558220758733092605646064090456822560776542164348874501744524341493300994666764357615979791533886689459512304204501004025738897809819428951364159828168937323423794406880869030035679771141779690786033052094638858267368126597511791929316101965784827189549542997999603255695550588349955573050832259003960525990721156717409627551219464523576113001856431516966024039691036787752877717940848495847337531596609761390646136244092102014075085033727366559231183607421677264968444870916719173512688438404964897990393609343481999018478328021684343868080914788775124665510347352145853165842354450898508190264787551727370687667594304566090961207837477744653286590382035175287404772060632891961524406343228687533125998083060066669373559691919196795743889310746202953623712566673351951489163945037724382521590347512052187165355884941489621469238583680969878084005223263011744434706462305931541292102864204947696350723026761095965345407334365523599078170547820101619843810669048398395391690187449477235452058416507048788287978425407772376430367245834369650439486805875877048515398999791800260739875946749689403848226672599999670967970322477149963223109593874981184357185487706389646866400721033855554426586446622107801166807134173698565330590507024651047969890176630478181461143089412822297422324025419947719949339759334467388284962248232981489690408201166947597205087553686823925337971878160177256887691305403570556176221327675824516154501027092258299818793354197730080193861233560208326249907365549182945011872274237910580328900830723209993363710263260486926099361694155597556002220812005618020230316830013737178808822027246241350103745690468293282253768624100803410020795542266622094144709764497031500067567610541378962669103162816094284526882284701319029826700113506746826731283568957867918796808586403393106431578516812345398544269407257302511150215719894911574944461186869532315312882932500761785195830114302213484777397372733659970688626132540409412406061591853167335638814465864354809739125519550594662733743412262474631673875585297586896525768359150276402562506472238206909366771841506186035475256722164969857022513371478648138536851081227017671184106553071948432580766921710736343443520933629215368784656141573647637518628703951484313094912202148052231371619849964367637674704876264837453972015606887506035720438187588415137046131420657349412690068260414026009982924717596389993735189209019764331638561148783475757101492439299575641119419017772887688400782703668056838654681859191906323145420417146393526946691917926890875474766961208755845101906858485780103119700166806422062794206504060025737035757121687767979541780599573003532910604148435895091827096343948231191499055608845975178077556586180529728980825904509209950507008852171284095523474186196776340734125682402333328606938186195217738192625114618041592530097921658616035600893729723104346955819282752885706146699333939376308822099652196997232728963639686330930881366111319093256216021510945042537697248373253653315232971128951377553442287034721097523878401717204597702131133048674474980576269481011197402319896689761808938019362808867074026590809525252174625359213229959856557788432908637208743466413575352859877916715513718733988305172653871421584156565781555872487405889363023248235852337469292768234349089026250136066003903064830637277942238955236792287200977567914944618728047455577167681025776627886871021425087639089305342126765729401456058844563907062974343237888388836499767264211129401044810634923272072543979127932864429255385049334561394460399766619902590422763164536565013803419358247332498645414728038844662528217235608773152762168275108451219735114064586789406781831356852348430001043408884829446015068478464514177857010929807263571030889840946880298133505716853418361598246212467408195856143741727817671081850677269945656083462936396214075304965347890531137560121908571447572128332220075578762956429144990756615071468858522341872569567012973219953710389748145801226652614619720385055833723466936128588979607944917544627783488794640992818414688556044409840155022992349926731846268820445502869334622231293810340285535778337021897165100386644143867144427670942417229638996780132725265642126087480509823602383448262399428714574176912423371537804512443175850171221335984684909817827563574931908503983908716662777487175468956596400517338009355402879799753125817807433829956901445714721017812358154036049843587690971322650178465050003851401744239981436107120608583696975298603672000937008067510192046333629307212122083680070626039951295557331867068703221130862902701766531482198033364322408360884772163474494224626628032798001789832548056469855873648682884310853763979106876494173040233695530057671265376726587012982904674729929170859402913014304423180893466781242832273008023984654524977663356755364673662073832831121588696340144580515439971175905152073459803125605744882075049525738979252430754985949127603153001124903227567089604893987495094151652928221053970253963151113012135251611896775998217010338051894240786393526138470094851082735262482716847303009433806824175877112291884664091544733322824411380894580186789536160145021412137249022930773270753445873706538024744030441888277434875940860931237055247762298080369506658794652837070430801703083247258137518278412884246545663365399736869076221065423206015486528612422178332896599350884994206058623546741256750950691330706047180826474478665129204462876859197111781763257494849515455325563756131527076277956660896072436132326064845168454307653638226205100893627154232615251063947533879964085824050792414847700116250301715305331619409868966277156053203997367402119849433343221326627238152694686636499702182866927244484066820804399242695394013992910170535372161385129044161887892305066220464319503380793398563128101843366975401818619168765871672600753932482764966389770979693413193850707555880264288660020811766049457395755862799967697746994126919898999902348845837621128778068207070938297469834028805692895893726003178061931577658964802535752946417477219980824926935725734237086425154827826983731000195088865946517285299444045050708313697295295229510809330149835401915832003116692926551616815515621834012854229008497939482040697052639073417441779353968083349841587066310054558984995993822441766958215053197389851214476195848127450156364521705389990172200703390304740650133826385619321389279412479994862433424006844248687546067797382360929564426688545840421770978529219257742311119678539624903701905574500375818672547819827409483413977120393027475604080984283288037084317288757765005882030831854411880838085971332144872206129714707418704059432722276572208406729238970543552145116726793790314376482702300674260784718318233618387593425395610538305613713605659406128709538401415884429684397106922142308805154625089178172937852544797021921923620545549048034512288336175193029509049740234313637408570992600612956762692183489172095892428014629065357198891332216223606078258167751876669208203013777975206169788846725033023367116322098881629317514954862772276078674590668311240079274326270933717060604647234468026294734510138692868394924515962307574561271044408610344916455119547705879950035157029754885248568244536007842887512278411218119655939261663174829008506206961055309527316925898603840634010690647079278567669470975431643957023889210413339350298752351215649369711929964620268107455653898951870507713568524803948283889108878110116257367774723220118531232628884902668052715600206854070403179743958061066612264735204056647835471335537208383548057043176100079145831395953167357501430404398054910477725228261840465323890786206662454634463133393519373019643877309197148619235074891189791214756607968674683065011573402468230862913582799562997505899796565910514177608334234352875597730159549205682107759987146558076119184628867401085857475768612213623843325137782302240701617241339820432047958242700930805670206342573497813118377654097424926691101021856027903906836976805148907684451150601056944249432266789462454736347044281598745530239706162620602351767804306802692217990776666685773546729464701344541666698000844299341606374098740702557160923627508109583041123907121358264690969270345883156928466686060652135701248935539085278751500888295524696982602154087808776397920903490836883986469758828502904966079564334194514563015901329308546757259572049621129244694161675794314059255201083221829740813865920683682571775765008568396856316369167565900736755114102684158407898595623334859062521499599823814962846769242046995994690777492386604205899570598372336745632534199381899339385926250701049980700773077756099123832210072632420235857143282103878447544322773721316422098070840204375549551819799671765382963195246136154182413414599701173512576626693499593586759914869614521295250722452972558188004855023218645899568083920508999830886290045066531073797948148868575203717715657805241886244033534842965052772835145708751409586920269690416693725353415067624414258908924061310207482628239220222864142833013896934080069970534698219702220548343400339170238236818457638983825395379005718119357754757785279265258372052654453100362517277876505117549893665522442068295136306996207991388554638077383211846952526098751132412523001115460029413772519353805569034189094541841948667932158004344818163824548119986040233606817561216286877323936422853465515426099540745229210989911764700353830925395247335371896384098697653796155269612315113035020160424123490975763453943459933813271206389099236971787386710176680119957960272686376025605004838934787268686818122574906803380909206111633924472048070882390197104930424990118675747358880416673167681193228447386203738549147107601710933357227559049292488879728928752800583376765642780251680578316657527287125791870303495474351979590111007723406158012445700557000952281776288940423057310855050281420657146620443834697120639531749786592869109770160959952702029650597082963796783724076476263509863612372376956713508561459843403907890335417971910898727631881125954772386414788608451441334315905762662985383971120931092403622458402674713892768033519821511406686609226668214600631192297406840848809412319661313775502347146126144961695911683678727926725055665323714273164617029485770934441100760264216362580033918349522500038116259706861538987176160533937591597973505783640042433717192939812139796106859311658986596144620411422138960195457873888570825601788688562602123767233484492124450740319700295491577194217668668112284534963329793059342643588329153404012857402325504569647045781642966286981983474585134510697895861367300693555016414358057069030530193282400088453055683674287818349867212777024640197059722271707249944433943924933810346461342121101476828162092846277010139531314141676581900300324258489781017611723461553638026194393615379759733953239943316463171266727567180310121210688995636000965689546719853622845325241674114487512031324745553061810251248983189918247362712224262513782940089615921278365939953315081896248713808581701888390874391359848241950132426936720291752417689041279738679018586967194182769451748486755860067090732570444107785737628824032589891659557069361208848375964477824477176081350999402230085608306114077557565278945780373410327320255263095385516056231260344379587160968823169370074177457857768951514551825258807860084448108860917476147586217987581762978151786890622611926012756775868315390423770846850916205019571375350037773619395715234528310883422776682628214367065974047830870813176031187473082134994076091743776781395449993347059181702736380587849519097718321483085767239644978971378684734595033500190739083721095329454456997187019401165500844780929759000324569534904086106661134094864085714441692771135359653026119121738774892814886840956465864637416408641195879067714216311982403038733749143963202892542093793197385659288958679874673047943535004267795923866061888630951542009136190647361692258009194106670779575925791726918795081904711190193843896486902358706671765987996296545449712662728091496124928215741965396778872328614725455092403292522988909746643646299420154411003542171879703647754748318260783665025219756382385929976867517590784628281119810364055294133837646155037409904192845026357462058595026490622291014366935553909375355720958959725846474361034463262877671699885335362727192876244590149368400793918373391992424290770101280483377524170033866556967301876913053841726139795488464822183948214395819187443717082604822360334100807873112622171332302912531315332600347574264253661564591618445019299063153152326661209308073702580741631112561645311552396891390825522964334241023074272674877996206507461067453603415400557797725138247677575482021671589241434359730659371605666084025349789982836595155717182810453107342561736179641727077832582296664208113094741990574231866201708946500955147242400170814545105382629544061135144513341802445303566608454157005427294239665392168236421580859258282525425990478810112619246629342909829222209542043697679343152232612894079790932322081068600155308053329143249825319522349571720685074112099942067461582251882536323500298560591641408402160950399344232898716640499393248246073022909174603353643552486596329812396372256833584329794501496214910785713684266421268556024132368196267930534293501978805988854956694038402469919537078995513689756831729474324119899221394938408290979902071873620212771213650565012882868645976278808278615627265604086253129726586437940909619853865570490267052376585296711428639689266087641445932819583876262826859034289640110089644952735110043010952571553650881875209107072552749866857449314641155768798855911567723802596009343469768013785010956811444465728816888770808445218174650581275450667688496812192985359480752883507403396195203642729261885076301068486115777249222561563869652127083878133382930860485703116954434735339923396392750304889192641915069177439116098883034765053782295492765261822345944558732000128135229040343963245048798029748527211383657517521453617715206079118661504025040998893683493618347774330379908578326259451706016424348841307786839911440789125984343472983946161639739870324303390914199425877752454383372622964054521132168567721098233965141154822958752419237270631937121978000232367057013749666880680470566479418520512542692597764699023110501137576604624545238759416047129167236998509096489789950811372353985903010393087786643406596233601301590295935645900957859189039697943313086179400075400660254694360951687043787525191982868313295605121363601272805929695202016439542349112115100306093002423795941401829505369529548094023560503943084756352895085859643949070495708025100439480897250650938918703410404499073704146822409197508158479865423307897711158504795410810145602836935746883468337851433642229764934399542343177606237244171925982033361343853995630673618834534287063102954126284251724425434925009987793573425435809706484574607537062387167939806178208974553110043249017012488867548241654372085672597893653498188962196260447904488407397264834793413388575135459476390189468251687875096826558144635186301133026769324216281766006929805383858916283911000819796377578944392152623037357891862567507320711480076045576420531551927935223899913456511655607219933534486092408012476889613133622321674896212097146277953638403256536763136037949488619138346571839264548346937361131340181813209080667643733724284665293359703078770514405763581721898554410269262379984358507000847577229324101267463043431466183745904897306267014297174568516193429445096485111649066830267079436316199452928796938726049437932847172089506784902939594673897654590257625407440621701867562071264320486855589410105514878476865978302740205550174348468720362228779435921031469538099199382238460246484566187264303526489538509667863236033726549551674746221118659904959900318781557413996348296908021871846245851292487969250828812447646610301062256092149605294360343293071044542607244147380826019175956800746557177067530720511929609754000969444865757937174887707172374760610582116026853029889701851093146932342725489164071969679152231428024068683309211651058883884328613354999011170883861220915970682899476239726879679593931652681709917458713011591045517689606341085338104554495502330145713179731495732602668502512229569531167385724821700929187860190076664235701907977952823446069546349241399571657613531261836296469623106639899536637585653181576021465784689228803568161754962718599347909800062376110182435456093830991016899551481199108999801838616652240619256997848390493293382738431167173989687943484250083219113688778219385689272945934323057652060552718736533842460693072195023261488669047068969968500054341940505435233829233321678074460537925644860196564388055820759324934737637953915268393940155348026230564680791683903992359663628829162086024206183514844915977268859168917013126342046582911746537485862339509719030851311492462195040467365092437327639469854381966431043260537696344306808342009265880868261720836181980505313475435036155530740849465918209015096527827388733686162032812619201151262691328155161485832661856081100720708532569655955572258772944033926111509283016164621700688595570467817060414823033552362599837357885302247025148770717167521361831422576572760264427926832273638387134915281706573010602042765882868902835799717989571187523124276263569658495557042763931771412505400917666437497212626719712579704054962318875105442875908836511991660872420850595682829999570211511691263460018118224605155893685018813113130892333136549934603373310952896037894116872221071085429784339495250154573630333285299275686907516271645600123708168635472159598848953710989164789248118156557816833934462559423760541090324309202580891540982689104580982010084953800506398718475546965121976778391693884487122492103078015099287050245680936395123256192555566514535328736014884687954594816394436500204728505757878981397398788919165397527009952748805209991797940096514042892850465407620659064276960019254470405444199887121376306081994135924891438850740972189999985888195694795630791526663511749356097797654412154284653361171382748526483188712848624331678734921279395956000293874029501974750176000071777308107899221583653180665279816334973042245782523769205701632089279885418202711693018311598899615444245148696278241008425333214810118754677792828481008210681501960614812645415094738551539737005744691002226447269016889829223812779712759278543747981285038918092480736548637519897838119839805923033558622819028991622818663557224706087864808810343043423214607346899446563964639432821181626491615026338848230461107195055453020711418393442955623431539579723829398719009651310395999657850914045687883061600931753355488083572602730731791104684179913980565422402128063570945280723875219432087484543206172717286324237322185280423991062242085699605480166781948156294001872779913799591453081528549129401940271279923768623121425324136806760371059672381929761202365090546931759553239427120090340159478416335341920429259526735087260230567570753968101414565147531766172548958431063076002677161720613459124281880377198012133742836202976589361404753874978760669711173987757491209226479467823222884790435525551027029192009035673803341290672731136008890422791231798205656894349251451806627073514507493063808297264271562480079626540225592154158352224940847518060646736649040064601687294069306888455986902290088621796446417507976785934591124650491978817384400679776359170113654515306283077074717666396667128882968003132421031461944193771999435439827095354353797034676618864808789479090551415850519391330953753075955242265133659555534129099692277506658420218296892769858827869689571740858190863327040895505268138519392835796305910272032904850577798304027256510829584218433176983219562777920290428348533218859881898497872057646761807095086514784597696847129932819410212643528232930015996943871334746937665435547819652205930098415466044054478613074923912296894751001439872707446010280111460585434783206820918520251285219197423750120467377998311762136982384565996468282360080985433007247019888564719339027377795734486999091354480623776110885932454909354152502650155672306974005256023896198776980369619920930233417541064607026198690198360444757097282042445057636277975507846298831551898543666125254316916697633820608158663544776558482264777424801141292274995095922526506777887606151604126194996786287750301584272152208410380104307577520769960363158460478607664481274302447068624533387916648908555952689392088242657873158318122481422276528410410618355010338479887932346457896740967527607775515671545846707283331218319577793259073729026944245074840385223615570976936646305439131740560921766226086540160909241535350626818224600179619248267689198284626583855910416105212760017504599861148807478240539625227426002252169317386058969889266111286707854212339634079960859382435619243287710442465610373099969889621733582194983187953522898122089542930919880735189400926478622453419863237699049821713980718053852657078045593081956637963952010635155828353350446429860849738888371654145004041388933377308982820422794336390549572921046164844314108108667503565115781656389285769844361601173445678943001758852563555274598418806254138142264433394445539179344172379965202325434555670925370042960623161654921316898297752639022320434786731101308888745192962740730116503525832501987460851157241103739274501005102244176958973194658630565581296978902802303299396959949305521131584023674635577366539572928732428170620110557833062371016874920111369976472997259510462942133639536550665243157716534358900937616918232887544865110582326832430813433295566543098380274756711956430109921509489972082130381078474485017718834732329053788376749399420670774106512291674416707244371963198396026346133546003564732869096886099978996925165657228217383208555940723861368928195870373173120576380801512308779742086298113849897520378231735965454320277508088084465979699852088329512058095956199687095506007750168940368087794911082344541512139249666345908838607929365249638593824759532541279291859400027364564238477164914772888446584921482528451936191401125240953283755162559550773659377378970530120886032624244716248114743971444183727515847046017668060875037784203750913812870215468337713486340856009901565292750207405742457317530685073981897584847379833085914857348210976461439565461884028537596154242850169200890562177066477604939275085928869959597438878545553302124052599496718711183263811369835246921548565091422682240553468841452041783756953648982299039436613439428877450949337862544904232557920761441349030172570688483128909944309532309038374665500882691930744415854004072571336691463211995544310816094051342554718563088841616356576256142518972927458002488940609615559177213137535950330370646180854774666184373445383864854643433907199359874262234837254021489539859196064572510637872920614208765576702642508836211192201671945123606482105726839934077387732806607782013216804000641976247608817358274096266433391735904186646594871418316116290767882236665391529880332593162615056940545189334039103979555970587988391614728073151183431314357653280239075067663720669537681149585459027843701616278309214540115677490455975045448880859566811828757944794495983526975064728968058081565239177975414664475535207366933468281568110542564108305608704547790969393862640680207883592564542135887149006495551745288260611200388768544688238567909656369971325888254430970129062489959416883740679080715355753402782426813059539625842760955007698447773166986227668557321621229751149016325120891996839035712455275177625527399913744369627796484766862424543548768501740090647477672319543023531219307382839722767653667167140741628391904253713086713430424734718276310686208422628920685357066217030139265843239499296038431511407953180540669235073591610113202561690687734206717040928815027422657281385802488754199309681406230176452382601427575339646691324258572050873790542951056957700316189420183166282842444646573647721715073940284840246962649487335006126274099046782605614016865781937459826558424592490638558532805758215204185593692004226609381308582183473306999259703403964011952332870027016179135137931071507843826493336958846901883625024611793592963126121619284653338803887151632199502214862584596270096921771506685617041033354602727087599335391501977617406495611545470644535688933751268835463267849663386805582110926481403187222532107800050602756348784971778503619570138224851450349535367249465742345095386596344932352151911809265311841560952396786590824503305487668522621627004049291179828515411047739918366925182619207353272312783346992970005759382775752495173859604562683944470934480290416365852752407184751029272495288917720158127135279870152150832589704634451154371653934463703025146973768193285540835425724773234446864083568373916025608222268692801448382602532248090581848803382238958753025840715120397726044456621828095435491059556776670451800626753653824306376337683801758247627518117856066742646396215505742638127920451954937231988479430871377095922404921319902882303824047790672726405781659615859782900199574160344389467651298643549227123112085796760478853280387035028595071946928139183598948397910749776677065736611663902647639438258939324571269272853821867437836860108550383136998822627976238403483108836521525129413962034450826046766751449532195032501834653477368903959827214234457307305428325451003081741148687343563172409039564447944130857260538679388805294732573181026767820439565114466303658909086690394755516687752287745570629317007180820918912936320937793585445088218509939563478554101307781061680561615255276122095702532776556929644339565883513793579558451706837883440849914816756005591356796355689066635826079719640601141025776254556778246436744721982137356301059625753051552585075509051200059085595900985416045285959632990037465485490664414648310791781732339917038104591655377602811287921287878143832666280518818321049773153048902185880757991965364106720721322205895901574390011924190548084861687614325110768581394798791087208468822308866594746366329437121894752916506907737251174948750632880748300588750537912189185167645215468782345511785532873062805031858307283000404806370940813693209052254555260122987507070924564103068536901000187868061266219147882913728380717445896008492368855191367155204066492323222696131516435500300742963248312867347441523914478712051465048023549828690790265813236725431295874481119169110807963510930252620651871084983734314398854410743166330444146079561724080145774029180089541693590486871041571843795648714454447794995791002101215253003905135238001519998874915225660732936236141217236208978182340111009688979460523818395057359049856889764083021881133999275517130631577145144433077908471312227171825343820419724856155976494228085286144546667844522917723302392031791142155958502361887149368814526833622791069155713025524899244594240111252578989928524563035347545777052396569494275017786608720289475869825572824183573626130022546706152513928342259302245203418057304931501561361546542229966224561894647752101621239742353151081950841565867202362818271876621111823312441457466628976343369969923374962178081058163244554718813858729898620935736325014545191497571716690981530592576084277837161750739445977731795331278215665146710801652478850733794487011848713118135477206346855364995850784649343800809427943887525505877981614133697678840504692142170753935006595410763197939464720818327343077573069456657329571982511791715099137028980903002356445291676927644137978644578308118661859725067718023177636173163470390794550860001884643013057092247749179998024858393264071794508513276630648949846256216836069970989081384966672946395475899486185475165478502102836197041061108223129506196349733787019441001722562001136468682703627404364950646512777562602282445112255074477912138282265034312504151263993968928254803307817628071748338137484090905086119085070249040362614493340336521700806087688865650552489807638368340300487957280928649080614026939524751121577853320340325701392462820779994885510600000355729785135031759871151165257466985868401805221298770881550970069666775273922165897661930477418697417793146458118192476388373458617618974160349195320434531309150765643213128565506846897069123054242047926240900567182055286645648070078962382472075532335841351550946265619282956207052648313632714418759584731945922916082477050471337717022683891581018678136709113766168795265548125574388354928167169231250545822776344571088934878929698142851540103144112547765753783218503620811093292354891447284755900808867974088365520984304014762265292737273899576754491653294828012388024756788371170614580211040022526046903799024340478853126278539426247878539658000437353191730692362794960555647199939426107729718612012680533861407537302955134327002111025581077620026092408132033911369313561139649770897282384390724208390014966587887980933107504578236925381030276003525295553898361952971558132635905185740431093515743737290104210978215081976983622265728772399210699373350520451768732392401739436966623443573059741867422368959612878185770856403540375020044771618942570181393992459249675777547419440694681444005870697442804650941881308756870175197926086858709053542434427779291376635261255017839392731714965069345765050562601291496452209461172300452524961234545597726099552018386510670446162605404635990968821171363815482612823143498792086417006879043766127817312620208290634461613071973350770860352507921283778937035421805624700264019870358618558991056668307901008885312556491054486776632137299489776633886593821622946954741573360302573337831854624754773862245803719309063744693916751129792855217137736500498132539974073049689812750839162424777772078870120955636997558411243982557292577574202767483406292636784801896674186674954493069473329009535220636802844503652793407079969601081861016145297148509891787226049834428243237531538675572143068848822157031913981493276772466168262550590857332772096986459711601014397015535772202901491736370448355390145746720103828292815307082277069753530425133890669741282722887603353339892613344591143846692420979988328959990590680236040321478879287397829453713188955196590099745062331496911566134080948669521877918423282226963324789359299616906010070589960342876591358617081968555182785306638281557622555539506257612997264659583863952984359351288160932178617139573612678652307276990258632960209798875370817554377942327038709853900579478982072085078948037527576427478359091458341125198572129603186549173408480661299256646659030085521903141385410753167735556989129276053676504635198070811459021588072754029521841648855644048921323828510348100136503092916844728919845065691617965562697348917911982955443054932490682945090770495364592255399496029223099096432478621173169399242838681486471119625843772320735544522239055682925033151250840681814341620034537934108975171915298011688419961031095052016383555175725047664773838099363219647628951964361283267114867444673746425256815648040119233891485182672250575711401454990370304659814749476225845250038344038181461086386401208462348233912790719129695853129258089583127908931892010625989492186635485678228216844920311928795507817095908251612566734858111197121438046047073732710621698805010616944323669645041277152880678514594785817300255502798483521445956493397082181981367452199508070543668891008194345359964793614213284143873668345344779877904696371857746444528910724079827725084513929199209828509701508690594401346454747808859005984184852699751648582703402217877638938008041346429785097012721709590330445636697153804374086267636038362743230210778533897369447786166300249961961061932989358214896679861035784554604825820309265863911023564056498380109762510366160984928986833684315911201456856912658835319444326603850482651790612669482960364652840381097723374064212575854064791427678774664927666978269789384823591676225342779623281756972051438678554000853495152101654348181332719042494122133586912595872771452234318845879278120622096991694906084722381962541615693541860302963099038705089154266899649054663953353125526402025049359413373968669565783875233647192548779848816964049658428789536930018226869486485118623229134041708798263511008657046072870678914651851500596630063469994059601934244765171687068238011971089385757322080298536471494110737005739024068614880737837468570855498287034961574535795228024340505383238384004160289920897187548749254693279354716599453274004482795675092889839380374017254201442028661469427892866088673013689669254041240474114893601915279784310647155755277946333334877982929096935654258156164325491600989740333339241561767172093451405644954993191066562550240882790793750145326718282846649697691203083827191301107639936976937129495236953181092188869654715559968297113317131467271690831756464229925910090495224750699020920594777079781818415845447244299766023990411890576134223852447018687135980556714202951552410465212004661271798185219286891522572542313670279843606396542454884429629085549568312002861190356821335561095701386174732494362760806975706807203235458883763834689721853812377414880946981389943828182342783003978713005712183277347667484148509490506993893598542843438297101056050386700521116646185853822117926087883102957544781669913574985001202788070250224060853371010610905619182695377550290877389354826908717336665020633032432077591355198433606012456520569152799535504895056346718261471312667020300474199690528242209768121935461619049007344653655595003855443481412978785690830709397755778768675622449241720663991890528641331954090021131158883495350370309177097238918639819178292967191343741071744194034098439079964055637695183404036742061192658349719977167047262065340548126034705635074295589577273329379697383663926114777165735603765891410065772927670681743516921508850365899793992676321943862964288825804449040141315927806086151734583053877415686622754120193543879542041059127084075938936036270535339741062437168490132935442343601849169756106020161565672090854181198736887058910639357288382702341731257901264692966366912815643783544143110215844523135661993800511716629841059928691937641421838803537012506135373942787905140725215334333606375635770782513240794006331846777654894767622439704296049126231846540322191928842954439766381774404735736341640157566361536058686517959658818909846123337896936622150911613085778321935407122289027770206163269888407235866029308692078008914786509533821147508114805523979069814379381027371637140099544622009390724528800218835851864677165517553940802502421944399682484117593736314425561396932402585511180900957869488398274755581524760359456955345476956031710500210482531561089801354079836429776546044988515718293460251061585518463808302620898942957565189849656079172926972956946573432660620981362064236353374115083079698610790040011502251400403949107634318326462440220451094893518390679947401137760714854069515082796081714279437359924324757009487531601013022982894991764464682393384211941363340266341777725133745212961787925186645808508940700570009163093240359924978544292281689467479530581799863640252786912028880983414146924787480336765094692197466128109540957887137734468866299491080845417712492090450630118098247007773858177402095302468573362285454963112701686646449400186220319107353572560935372953387883384578592858565076108475077990229979549962463792409508918127633215581160897229087251846768964990901890168109984457476265429839666623338133963555509123011299274233417183155742546147012473954272495637703272517205999653482217779861181663807069592524948952813587889586524803266001657837594616711025580706564853217809476278309536454037147349833156361682446677967472120424480154083209521219886392595334686368491104426447482796757506116695910800416076105059194993564262350861713485218441439871119428051594789994969394386398767914175416462503760374211318646648532436984622750971289774806716830676371372737934754918028256501983877180826915980404237876433823995403689500170798309803636485380213372992346175628496445951302172134419781168688949141453748480428799134860922017057692061022261974740453251937595752551806271532407876245715188974686639261530296610780186316204542719390161902608420098941455895267915794688327808585473443986609697214843461401196206333592671690016052132880363768059757649734375029918103112305788351257971797093856277688281093316608978920190594827149564595534674290974243392265574423409914711655271681709056198813670411510413919540991771397059912145884550120324809464017877164815899940254884661025490221447334795772219420055829991864300414078296353549332831958038009098271471615521763434166729157851198667412799033851737835654403097126854007351613780116548356612483111992344313196274562820390376776286875128354750324386181892726374378494034545231767066271151790327898740853394292595476194384793268411161671541602868420505744645740537375202447224900388399242172556682932451566068786801469373628441774210174901886892950193300134658737565494418158705679652369943365091207662579769439491798075497240917766133949825446696999638112987737902737346050630012117178119051961688294045259633508941174955018157414803707834287176592959584468885037328774956087167798704451951757283130637410946628023292117868415994298571933806546691246258054949607307274587193944330705559690537094451055167920721437661179946656293475007660878520585082520354223068396880376029956042836956456014016977939757433271720220918712264585287065226643744046406719225229352283160618155664176361836339624983139220800337754195656830006740421763806206400030848679045846293694360982555932414947694176118072199918534370242986424221348390102074652046311919557734334236271650197650162428389315378115543944400554146174613289296879526009519002489006399344366062577712976049102524690706830885433017281899039161136432770836404821342693837245096749516685400390955335039504342074231348608288021590998079379442343754076804320257629991834228692133202446270728985816582028013863876743684635724233987895332042747574601786201256743439039889913205090828847663924950066028446656886085598556178562551657608194949052200394363151236111573663301715530159498245214948488906853866694024005988179603605569630175743225244801235333570431226207054486845693211461637897014091823778577386963933461778035264037900941019814290357306821565733935037376277393971216538421342080775253789097102671298814851727938986274681432421470171816199924550524992481798704288108059109708848891865958938700360738755997398219960423348975475569763178623709636976510619245447659452621067268904052346652257686701965433852621074882420956589420275079641596405872701832576975109910330076384225350747459723841848818602338476044110678573998195115828190671535194017628566757605463153273927936648516511458421027441581915224490993372586065501208137927326340277593683556304264428830169984744947259563501651809368890080506002590652168348506560553045702211927849974234143396514323406524774437628023408414091646209489852105132696049648287452645619031957169872040809405600572011866094741538231612459695474936676186459386487067113840230890187566243774846857396807469590697516658574846926710381593399106231320529751291002969178955814254986909368375513382623882826996698541420337854046605435742371049290206144237723649851386912385643006176990927393666220545086284204453673209231128114539573051053311643214433416695789951507352629328236462013266260813747277700485488337471959428870926081341027432903633794616630116984302464252510458496521870281417363951254961463330076214155585662359125406270956544074644362180529128020090998552879064558870735595974852584089012885422471172808312497544418017275143380064498869834315536580299943732342884736801089653690482755053956423112677080492644029242542776000503871996051719177086141010956438556592064207831669187346518711586966857713556207112833452173217200213254427291691047493151474112334190610552209095979876567697538906833743509800124802881353232336865662757501992393420948043655672837439530143634314331504958228188874953679326309298335253702166521823997142022700107463326912669985336853019963922556865414003193872313737291383713053994498851703335626516245596801687528528678877336369976795697873313280655838750932021049774965533060822935997131692823286908650227773718676821062483641643291175056097555055963010609209563126464039314916763209642659090973984547108742288758089545431780317796058657693747974101218699527015926612650831867424152228713792623822946036893146153921893140530014599491002035417221287184085405220154954561196483188469094428293293451637068834622036478938347101908374790862861530945621353351359483581032477974385515844978485186858449194571496605885016686443940345838945539317593128348667482475708747053960986738635913476024454332099233071843750566177727291186193428565280040886990815503865495017861780513557981791741190223018028084337564105220459108988710154486556566240450600414408277221247471371224187363006491309251724670920766868797484451910382604564108455097862591607195844848572534511576462658524824711866542330763592422111594382989740409962111636011819315898674109745759385107784838058491362016125308373571949491053892762842889204823475442421719001776255876531994808161224364524859843306984132287927133352787611861667806294837038029089672559112284162852921934856527675033431489009901604562927847612004692514793073503587433124593286482779545537484299199043595816463311697578446642414203176332520169124830532312644086364614274947912202520611449120013544406423590207149284434058089142955449863773622022236203260318002597481373564890713310116914379018370235328067107881356953693272981419056131309541195222318576503860409244034672300351020698321344682271095808666772238284926834545464651524962962471660161416843648637778397904389326550246157538770733768112133341799249507790845103539751295989677270971807726698205585700193514738201521347888818005661720249495813141785962571431336626384394197076223129873013516124414951014300777585428167877079039512943055808375041661532495325394856814165703423472134142226968636562390759308834353687263633145584926256162209327945741069118221987691438580607702601623558341969792990192966273769710016547934328169514844916054378223830432186796014726223897994469177717947676243105157215387814912817661968579777237039592831634728013118112228178308172484631838215605104659039968357524361840786977933046844201157302122935513036415585266451679985384147337527592344609343008832094410522341841622596684816541588986014776866651418350486098783124781586880968373369239322285976288649814462790603360003024292102537519474716093188428387545087171961520871459955929263206840155388397911292098513901635564978314761135489998992829953879302452420186584980359336947009013120596575676072973339054245646185646760910135878936860783186804413110256716896168777543116680533857462004024999159371621583091937665859033753179894941631064739227890284568232232114514999698031237230281793499559682378350429658153320728877671171426897587344391221106282937241742611234948243332891878565758660581946334517233475045829995325202514515047732387507714527529324081583790737163105952919876501633678742938952365041674331812000011418235941202134291069351135133627970113454029167087098008692602667083405626635562858332785814764608264055854635053058664264002589740820116129921442900742601454135250887360184230715999343164466190933190393996298860748568670904209474739850585421446167309821703348021210865188954245120261734917941495283418461995037861145691579167225105805140889425594603157825884969190792097754984351375834463994273057518295578454833410265097587132560704616101281479541830328315449936289240155946315287148191056145477807066946359371743216356231322755041136942894988109997698294216553842508477295743650973516354083865313559184734760993106659149053521485093325471048605100641107531917681146664885319145264709663993558992507783501941788202998917000887270980316020002874341777298019535240246846944274141571933715023129496329981688077314855523491577258825217032821643752033232604887552402203517181621545323750368649197975139281465268875725229657114218917049142375515999955104864009492044008657120024440355341930069552853986314354915190983692799764479019208191920173886804090908563223352355682488254738143782748420406133900291078447742906725126889695464062868681038542879116765149408475043463867678649882040632846239455971290823388831739226971655773620844553674766237155322086836246367350369555085687011641298145137973051786263508179735026456413656403879621904834322738432072890068455141923043584004258238081605522536940883995195293291021906693956781702773615170388502744589383454882319093405161091510616736500210673134502721653164664011921610605974394461656929283463042145131897711559988743242707816578263570483081699676257168243693395696846297433927284745136480087042917634945055218060878722618798683156725736735794786855025912392483764212731607255613803791989711566357770226900338718211608114167916476588250968895110933589972026961763494740012958933062008340658465425895698012784952154187124465835092158830607971115735328325429264791546283509823674285585918786260999353546597848497814649380614892225737218156712224932673452351191349431066463119862103647844089821436525828857321750116866553973923164100734879080672436092436235112711145064896055149368257358116147582847178536615944820065840435673275985756499559598843724763753779022130224959695401600396059913870011226977445730061075690036334108654837250995448185953555056446659519755390923795591653195319093931522039318735083096372543153569088487712090421283934745250981995189565610869419651262817593033710726589807949863793541288224096788358160898335248353365903936467545209286467322074058393313992666436856090329077378916765165609389013145240918274360350187782647149765198192252092572284273305132087937142311483117979427343389813293405736412573995098326186922727064865563878743354619359080514374265269766042781956618831375172375331427891544793158467375011526362880072619050737386655272795903620997666226597942721686097689206153681446907426921330983959114748359966987011204627052466127041266290571933839684552003416165547588469274719838669249846657445222978077410538315178921651887549465390092176073402629561392856598587835814258250416253293563948470531812937616104879291761547726723770287035690885814353757418352367594984113758946654742434973140422938066913402886914239671657532999952440940734477023742869823460652986322697081129549353032588057594089429199330190574512115322449054075486162824414009405531065949964819823807738580166316129266636435827622925767920883405181328231887133145273738969989597147676225700312188166984033365049288103968905357875258466729407303309467320725739126835155988737154175188653004514682753474256993661550942194644077548690022037914522755351748101074938049483134162814408171916401036359878576816536416967217619509237899740087105527131448644279930868918652543050240650818683725077466949868665956797427254475068093312771044999825537038176505555552612085691626129483739957360750499988644262075767745010339546561768882405950477844593447567697114961698445786500330012593728159840265554832471296297687045042011816181078993119053691749964748543503027163661090255749844194575233300625014073656833421581191267323501240083841582093531594210542054387094231671893888085343421311116346993082363728382536539940969592683937077436793818230962913221063937643467643584070238044711872638242890889095224913435154694501540049264660293282384463097878997671194333011505166831652034383786042848194961613332529843851446584590880920294450639699251127606177448935260266986440855593057498465609529743539791621830960603387449674708627197794452952201178354006468053773757325929340395086292334740543605949922916037374862117906654649394382798699195469405152954443801805851123982924593404152823486044588903943922220708272471108209465106579911745770368420608279514252032315781384791114898086447855726361182669698794629304664514835174862954541936649006072616679965416400625609644976904803399109484583540790145940994445719595869524629832651830595268161831153451124926803717670921842904080034755741825302209177521389022739254987953243323560542961950918097062789534836402096163642591802627925706102804682539103623644186962012315998927985705870466810971188785020102807094761236878449309279107344468886331355397933845561375539833066020035183545783868669281552945177379284494180399340696668521623300004472655712172691761202678301779794312449906063471069531939322658845096686588921794885351131365099666052023468552030984828694676873067947248356823214843279702988467433833918486912921915520506320054489063751454080807479848639635240039238674399048746771172784191473632683130618400571909975702580431873856232953019927432196408499342892506295482173902647634472828141267523256169963726463966637639036157239411802797665122052447200893704822287829077178447236235777387240547236194746944390945112132717956458721339931255306547507638536964696197873295695557181022716802368646634463807598810769881247008965510606557229410561467166419465585394515973384063011282756367761188831698727318737899881442556373173446325237336493979318719363970231527471698906647160048438869227904029972632612696939468480838928438478198898025095650755067897867751688266222920049612856927160350174332544905625006600884002989754572752592191178625193520094498681761869212341155508627250719316707182975062112330155775773878478563279876457894423628289861388535915773744405482590196478880959791910250969085139679911310045346726261752816998695346946876453417613545903723620231815991791429715097473214807096751987894464635396713083726307339894091741434962399158143369677701350680850425567926729576965548174545660221975820827971318429368036313574310978156563903220339343634618624975437347558652053146925630498917890337699223732706235675997309203797981924846232967613120659871670951213437699062274266808125393242371380393944698238931714448604817167964487307657103219801271442904660600368652669337199393196733363607562256773993245457938587544030393444652150163774839627510253737619888102880180083345070182453503897209357540636429614726221007938702356790861089736230426559107466595325253028653843744082119327254516090730913066846472531114066533152383726236643944755559038443959511400627224816689437653563434847985610603066611380713312640787633542561447889338022987327837364932922174876210694791338581577804816650524913353326012604096889845994753983913944008336759773923937883933024997697379627528959428207105351983375541438751806958386732669040831441767916138168342452654527380119331597000818554805455484002228454396602838259569842540780075313531961517508253000965588985557617113103558813724935893697200029567522835567127447823240386428776589140327975716862290656807322105935929223861599201772685591260273997457713422630079676158526472976003376600253127284352796026409182145015141014373174492626496719418448279989656782312636844988123971868100682672436992897448152676560425535526295520855708796449240695330042623861383172307175983663000686285129221375694152006324520517545083605261698876711634093014073514984692971391655274861048820787788646641098138420649660129573419604615493897863212418355589977320063460179942270272536277724372666390564547386592931657220007584219378311490301025199571830784634478570570820289867403817238705697854449221651804164639314981561540192134725024951538815419750752928195047809436262838670230825332031961796823633299905800170480952885991087913348636344813196409092273499883786741189533834760428406840476797791320687441017973132402409998054743302477121759629998769644722511284853923546185194094845588201459630428217749341395207896652273076135597647516871325385532844401830381559859514885094979919899714440661142874263694893820924417962533323320981625305404878690515901374545269703152365582452132716681280693213365370189280092123331293116921585952266240743449908523675333021919270783659195096033325618455015713993097059528657259743495362701354441118927459152552330362747686606312490444103403353155748954283077567582034381312727541519186083073744118224219734947147445782011926493447709025810702177253518623485214630584654004375107704624152010932943553149592258421715026287854214137658530852893845633716226348178725720557564280751241018633494093496731431246295056908642549911175448863875112994525820739900504467481646675312812950543466603505003367323192926392597507653934909441557598628263468369240242408486465165103011925910058647834698323265173376410282225508118032419110499240494987270770877302720084220754183362576228520531262881736814669791189370501680343410332561274565892413822832360722777755820324209537387564435786281456914155524950782820034779820070701257828066455173566203205826958033091531874329551081890936953243921768195563489384685037854650718908838027274920749391338524985744443648675755961654401320290400421022652921481410444552268740511546120143216421722179580575498980371917855988141400439420024003983178019950480329566076686270130384675848285668756000289007544169547450933289611507061716869651723999066224984279024468712671872846553619802917016254022023766867463179563074849511861533249079516017964321200554421350091706791276178512775364402090210954926007796458894331269972511427010398848006518602344640908996979695353200924230712691287839232135950585144800196668643926266764210748386146999185858777337874478633462901874748746337260001195960308893309787789990233882181501028048563186598557304789810145640375241931324324800958581811626407418573847303962520205161054333106137680490917463381415702715417920058267683230841259636477328064057373627261588225368995583154671587283547600347575476949006086399809689445202253435302070086496084481591459082409987522069821369641068170777570460989815495001649662253665316242034072707210427516516291279387451626346592529839078058758056094239210500888732361833804896166067561950773416369203327086537241624924804348470122047580578347063812630493083333331496794695184903243130142492105503661253538431492594764879011801821100315681905037479811367190267246506094354428283257784371733734743428688901141857980470917225101204459836714014295525258658945964565088324802617881135231812708429852394997478317010145908352761399791867934487301171808151931859193931167843305929248942292665765254239598240517241094463641036594882647095537905129222170824808084662522721904851392792168826645104596215050391368202488990440497047487506795736986700329198118869595558694059962366888659470873172294326700633559645616337851837317062506352976965198281387389582420957083148283445779784335696722110681767249435307233317927776986986450314360289905474804957961483434470235741854681718633525658046297103033321944799831633404644529984064896083866024410794204482043228599320493684757589895056552717849053362301495014129569056691804894429529842603165589886958751666644651052018899102379456936418174769061159309779430440486136132418370132551326406881321667635432209047045711936697466705878032425506045555957773378126812624202966208563989739050733142825786565373133254781927709706159748496804057303338560836968435273266222244203335508990672923118501856800413535116167995820031955767633111320583491080472052925264463528640900311269491476312910548562158239252479205923924841655832487627581108757915062643906416256875814329508506416899618245318654126143018146153857184716388709176992234331125327776380882650180019446424754959547011806021284468087798950846186192867942910542432302680193268107685618543394034659566662357630180344294250123728233151250412644723802449466331227043143709961156538552971522369901356824028764502806082401339716965005384123991011081986360624658168582299747945422383658836747128969474635525012342749262204761977780785096173595592916845266522423021229976825740295048139580927532234048694430095623036702891094010741463193124211187807194657373418013829113302504178582983423967955633220445155048306418394491275552522860763475092293129049178187751663802104429494672504758544993298273715155546813076700938510643740825386802243022626459629185409068890051122061599848719433878097619104078271990496287591480875867191564076065113679638560994173888095256439403228788281007805093551507013008457174325059614863247628617225149229082498256280370267932814088827245701387275520652767297009645990230974289463777346774521231881812440073719430093987835983354263738079993407810836586049071524226935917664805836103409505974108121061274237062999171011883015321248321114773237050647461359203765398738738822872844113968810641863535848837887588233048478062173141848940111169870514931502681664302756706244254461247645787523924383442283691402307967020364796339649947333988974972093309335509622657128700050205353136683787550550882272351455740913996606908026832505811487458727249871378725186772510588325241638530931548863273575253249710133259553654395576076736078569106750585211824561028562200689909483872169267949962207671122255069611847516664770847091889799171745523846273198534705975339779746757259702598438727198850607762402304067325782520520454615229503830826982624330335475132913288284025882556748728880424705592959947719106600769536025241964263639327700792568410415235337031247829437382096432699442275879480081794222599075602701478320055477336356683107163747306370616707368310676382402936448987950938538942056050770820679166354659712379290533326616545940477302434243629093294895134068071763062238940445805152842559257106447292457714321954524674198085320092969763695371860914762386173045289004222929201424517315628863482519180932937431234437158468540459551055849546610050155820088863917983270483522281642958465747471338172493090317424963973146722502651956791054013820556659733173863736363611950316070730766508824634615333190686678518319602625650422311568750168100875037399520807583410018134441397150889276159294753300426519505681894881794533206233488523108216836479554411201564596862757963500180567228154207650861934495339367917298957843469933388123284249079201219853092120209399672360785654782029656985629052191313376539132871511049784778018858363985801153712332191388575450588659642977381400706004022155711737445053513624883793623100301922018991347304059188779953823773348551658152256241058319079515506292790554168962003521807329552730891775964360067570087787284356768352153510889598700996009773697747759510684864270041057957933937742745514715281240441443874430308836669877662808519217445849165626541550268714269761540408962786168464337585957059240307598352309594365877501598374686696922748253018621893837480110599553120699568860753120272500946623136434770388857402139986209665608832375229630161077259529854142419271159922075834259804707049756410382532694475598217886723058572554046168121153818500535191263727645018604340756851863986944800440228624785549483866985549514788859505230450993825864606215829337478891227803959697212339004474793824022702265323809588976813377557265956580241182918356317927149518522672603595436877698768720840494719206213675573102705518726755902245048092585062034028906898503422681477498880311087894202973791141020431239446672027949837377641937728107585110824230448250283259706958421111381386869860656761137203737167150113656965029254827988560585259156022560659602806253199423282450935565787391513834228326185140595883927071480543151394656337930699203246369534747546897739684698504525005288273119755767390908340839447952784244228774163294912593714296702852004128818881906346711374004651246851858806947676788570850054908384737730709264679133767637814163150957499230336932897555508654846535358748976229809498245832634240563894010379434638013761331803319741622958509124112384348140185519980764637630431160418600469919617797414528178668213130598298495755539500399803267036825285775949062258643919550282451937404937002560940159610115295344524470677870579971329869953038463120912978234866591613408476878741630071105878999227401374809429170135095424267011920186015178870609168167267389496962756949192816640534062792472722507309277341514293976674880962465889211064225190966047894962896756005697239585612378781811266598292472691061388687823720196825715838090911758154882125365434001171390380324036902637172283643030954545301296882382867881673638412385764598473514149972024324731683168879635989340986108860468995387494041005662954728649554093944780910774312664432795161418134539955341313246400186657184725320017830151308154269933675358868142766931834885858629439730484132031561296206688549176431565029807761698901945516150327097333447781613010334300793346408386575969576040173505594299816087511609295845266023475843360952424170552068610361173175421839791066854235829549244770802693391636932268314414936514280210508057106195926808818839375217065347128034527535752444621229893131101385292761495423468809238789123625733890871020016872286638124195405170643108841427219837973016809782194444105790345108504398260299008025892524631773847265934506204325406415839469336376147404634694782901797518754141745941515524609296424243524387745113571143731571363984999768713945051852650600525458983751853517962176196207923842008620394172134181709042748927281962870981400436705282428800016868919397423571277296481476834606293466287324270202636333596450433828532649618838720964305723546903920429887109979714942584289006033701817023139987976867026298708574565629124149298959979391966602581864891390926386321434415177638169738029684216789257893833670483315920925490108877194948450861925827085786466640999857579874553867032793658606660654323967943094268653459644374204514567807532779642737502577662423296696563409339288061700813353254388118985305491627949121220974731337238891038604507920014550800925862129833797543823898123607748766631900583455117340903641296517723805627635130204210376517459474884578072003761632864543709011269233792512241268241178964424634082299466004891857225592736724773128565741461689913757196227736221193687349936787756864859549204936366498221726419284250441468605498120678202099792020152191355383647506935263615150767789232401809680982084302455793164625167521928197880892404538834260197477667484550266242036100306346699760503620722433433382847050138924793296574539517750656305263392305335879833472159615972016497595967809517937364430316239517567443737663136064871487046629880814373408317795687837863980643399752840481243017592248090721629549158310529502530493804128790049193763118153888137463781970379058926408909951023877820815589390875897978411271145248432886100350752977286834665792252429460238631649409664278433286560061965089727815743247855723158862736239890572540590684622206701849704570174706894737014544956680916345132707653168110808434492438774767802380606607944068159298681144297379410195566009699474393364565441551596013676655463570934538176128048403164348938767948836796278615855816423832703219577103242424984609059055011267131719570229219391404671311142431604102292925745732422263833379941767836217201900154722570270870609768889328701084953690696218916685649658431299423025028086234796406616586124018016003487443303881282731692949738479298512803155164784425701481768349009420561686284340447745676252455774441467565025844685775669632218867900242493168229472558880118381680464561560614703119711843091284234319890149333571384552778138779704873557805432682979859649435538908182857686234013024734889472659482498536590711782803215404231809467062639178925203775109517253915664152089631757021620470835632048343477819699251894580852920596910250574658475218518116887751911117190507856935281002572245366617908276598065848574237649198413588324038650935474578564877241567152820048716328459272650175301578621509377015044811328969026376592105903496839327475328436632130359440318560676167793104210628824271485582712433898404759461827729908795048548463447598624777998959268408733612800439347033863922037615188152545278903055614074475955229494834394207392004446736160346600784160821391965691950677152484127235810086573804524722518241689148483514618791972233391664498134823372926367913494837221186862828411164816876600384385550110851987134407578010801308911544940607534713409297433959137548338751914578967034131456993430785349620588882211523152665807440687428614018564371110468339545514622814166798313579397979887124421410818024863621930792899764507492068329625714481238412202025126124155199450135146908514943705982510210304355825992686622705380021858005909615671764074485347050319643155005471403652882123978096197023165660627670728146403749429555322842421624428459079417989505033963823909566646283033855898179509139734013168257482898063103644931727942760186865286706322237770355583211869323769774460293814925591233976654707158335350869155360111217309694496598153961890999463478554387016428895243477107826130924637642337330489036134993896151716185816978960354640404084028328451309629527633384255139616680533086359286972279812774463031953383088527130615659808094984468944563632814629234770751577721372989347456488487909441009595451248943634042762348212090073450907556858734499766486927004206622819433166932098592257890249824632752630124385212629962126614410191840905549880267914600361953768938146106082251429064664220125736788055813076267079316348605282472545351096334508756691292090845514161305168934781700466432988998821493565424360563192897697205263917207917698769436261632716633998995434305201132851221008187242523498201431634970196783499812487106230117157040770660139213888619876424886952753063082404301397067556585456026033367789018751087498876034514969009149279729028854049701265998977181289579018958434270932342326800859217813777661403256675428563356997133661165117979109936037041150119053689644465772088820610479494577660112112041806245863323664430860693568339598818567990538457926079455135973442747935478667635591964877422855797512384956582387111912116793966238316659758515837017506516495285498578142211040202241413841759348130837343450253620379446818320371036308947365666742714113740113359833453872220835594677281615518254659791452598577960345723628542694609734477128194742558885292171606993315456154324038352809947992036739661389446579126404294985126564789709638631616833096632481602766171672101499844522926895129272371308689009594907568810510010269676726152427645331768456172333935712338233785877772230182181822451457574055014738557474472737118381589538906701328791527929379275216655721098803164106417680349991237446305423820646199210782239036650071590328034543645370085830769771611693956328563913705835371964870542707643827656828327028870358337052188549185680207657186466779586554485879862316849726136564951424791377390626023529390083393063621931266596957392968095607772856757892497622276239498293804381789896750970332542335022700557416339961872021585827603203007308074172822280908729327202541316866299669135910017641288299698505473419545138948540488939737192200459008681376653939876574965420668910526625550666027200206727965396795671357010593164762565326922159324127356291259886561477499621231128211100420093343977135508947682748516119095612284316409250365087897170042571937370761379329830692843968989556867354284386198546371163627126493481814007333938280224102323261686434992080059031161771604762201532737618330393403870203282774692940460746798384206920404092537786020086765294599199269759451296652042194209686170742831119543467295784457251966563637147049844140050717860267432936109857752952144556116705447426615180927640068861905078143696717437985230244005435042345668230679187170694053535401980588727270842447550820678486233160619918211084654414619225651143689816038005938926139895368794128146445962166587924923374138193899568827857911233462256775479256050769285144287501400738952575420474503458728290669578658564444209294571291265723778305630955590334881505426729503695322484226409429906289234598829732156479576762539277871676408159648834133070588269947997927365888457803274020748459450851661347376123858640920686249512695094465387998963704828459683484990341173438733447647417839398827108939125067588318670391938145934055085506032341391994723641059564669469360511938478150241810956008337835975188010129975807749849758578482108034548452812348309318657110765340367712142999554214104294445732440707597051150319404815199841210847446089489825305429973188856477274975948582740203108498137664367808287840552341108000886262052189802473456507576318553057876552963531585008870333062439519948175065031548421593834935616224453059851206677083546117079555713574616011368335246602997801342152365712445165493043114198575252582368985999498165763403470964508086067494014285733904705372365160556917095493146291565988297284768785201242869868055623390360786840853492901119872937301908540776965894791542983149261984187348439139858557150926629741687381340908945917875953755052713483362715976368701102422248731346223655208330308294393666051219659616365307210107239415245228647192461636318843835639086998878665271965775698575367887792645489733939739486977554575407963394094131460773029589237847694693723751989789037182461117278822973952469942625292907236416355511002815019150896376748284979836680970054368429296160488351805769228295144253653771240179867479003703802155581645062893753954646228709763568362871204751072439450134497696752772164942066675935140775693105622146342261630400247657648219713572348026664670664181142671612819876308432404510889144888174074862052518274711202110868202424439905982800500654622571952094987981853722116070837907580520520848417506600153347441984921905456252165421481122014609641344254738030603496987007306758845047916523010047250123255028535509864247619921145235819037654944886364191661031162151957318447201318782657629821758866714722357994675073653825392692123087090416120579026871846566027363077828824622974558208070565771521096771132384530618504860274972962636655737534387588088448176862768022158642986962827991232262912017142652818607497525583257914909029489626396166025870196309599912105056300078341191711205004788727154988218705503571914888500698447956128577847938727407125097290632113585815142305543960956711660166725263215378609480751283274406451698504920152961306538880090442753807980579835051542204703630179811088180923338509170109828046088005489941568596329214928213572770834765258559354487446488193797331171720066078396752828528692268161349790692016122412830430078635777049052193292193079764126896656199986899407254925094749910769487099468885395446815722731636262856255447106876054333937634030628262802021098710980399039768726008854532928922683928055350052999677060342678650084723153097208185140811196842843108367463612370501210338852058243248754302497416308363853392551747784135896478621813330135055589935057096501803519967882757991620811228473941367850396471723363510111438813206326178882547026945869147508267103723630673448492336648774293859845247668851725893661219904041009071541382966574255529061611224513170777674563105546491176790345169734992678483717396459801587127083887608076133423083904532271736557173134773889738950382111719644843658387099491342767644375050443288062924159804466649430844587441194165703547665560680149233449990631024515098498103937469460282119435879131294978557844765622062302823778084310627225942394737645878625078720885422925819700348047564942269174189723206600005481340191059458688196830489816210237029657335690276807543136770860926465353638085457290549030406380090621308347347185887896178745433760504718831233657738541762042809633816252975939343757467518158126450561076064209951054725357379982410186231626194048263457218585577279242087755260890737524252118254960531392686884335389185332995531081824444134537963471228147477762404008397705559216762692156148048463578436397479903181485172582844245916128676544970983164832418242559358453065988390459287684008843322505836814830819157713402284338836358883064625414556293448521311238816283677991622606288663254164484617781461981563762608845791277151421397431224367832038650084127487430262659249995020776135882539469759653468832171387778961417696701813356580431818299327064977835509833132768879650718635240931321331708941407605674710462070067486908646635611872670786726201358215241753539310754311830109342714959683644610504997762930629183534265295024911864167119759583095537395208897186719490587190785554024663000571314321794766776749384219814833830538984232916959010189639023006309011424208943019727173646034313053072361399207673045293183108430303876744147924209793351061365063143213374805128743227727166370009372212768407854463117398348872466349423146706379097269095524860519187484429281645290628896905477969724862261224553289619103484285033479411005726501811045345308712872570904460244220577688399819638672716589904005249787894977082878753150663779506085493485361762876811861577192095380265897569898352657954818218794243722256300264717165217306620978458583188103060919757582120318867344074175891531757043631079892566580647000749665023715264787858923461486650465808552037492125746770669301965283951653068966960653976452359902056464472472907695334464677326597014255513592827009708400747414932030805501577846124724741843117257300615863103328849146270219786180415954867343493736296181082208368171963457036419134161545991314271786411246170695127202076594604103008876556556293377709518966201124273341779880202097757213137515663823794854060930425438859502530272037732429453875320211750374935880270218173559487796488639533623753585226796028242406698390092915468842113694826329168895877724343016715568065274824156050899479004539013464283531947715244204651311105783789180132373106209073371168620248916637367318036395317002056159101069052554764753459863301278337989138614380421649459775078191777230794863670539492993905534596014329290891047468176366267525135164808513040077686575558282624669397317634050215167660653057633915340095771464664384886604953462677168776853824247884411298886031088397295338537348301458700479639153703753453918387767398642001754922407348213595074242961449226060897127930862313282793138056723048274483005599256034286861894867674034625259485969339799606569539115049444054435330837464275532204566827040847732955222488290446272100942169237659556340827237846640846674703822059104186420071705475540174503819295844911504372446688350553952153492283037995898464939459871472112847249297889023322737941400195249341595107824661896711868401044001197609985100079214473904471020541422729757277740609077346720142924961343677071738117542232244816636937900872694374469156535851406490018713322250060844581465122318000298139293539308313532343982367578646962576651345680222547303187850643290127183386762735501054633757291047919591126382839579090004013676542410930242897191652720739981851550533143691995453787478994775236923762433031849611899828367104748953514175534812177365501144866721730530354178327984809558941625223483734156789451535609635347693045778739271282175652920800275954079103651518844622669765407542967021583196839388636889712857118849956896382554371927300950308592483512205242887755759244569491518431732028172871527283750548748568719588395038985279681777909848200051134728839933581036488291642218047636073280911133000263947261895123049880560438576886168747339557635755588493486191701226058636533217002804893460399270794153564159811446624732021944656897713195388345645529974253061487798725859880291442017067268892749320590789367907972295335529772504212331499356950587220675763352649164413042751397989946634920279588157201982818421704177815197710716873166438135259519908216540361728050144275937030694484337179233947317982552464095198751885047543219596361675623944158282326525289573981375736812888318134913459216177064626995030844474710712024073452500220387752568453468695140412914286173658159690419517624010828451954235815008041507238010129575416710232906177373006954811143020220316484406246855653425591091476561262027151867324481984248877037501634496730282402038764464884632726563184336284775169124258783204842950975201177967401301525023824826426780728225827497482827693627199518181421707403957464187820516479230213225841518925619925258568420162629260206464132656224809936726939952737167053280115194563828636327213636644076714317767025458809188360101185806408320717587770768780555895254662497337604163223631182780313184122624445985007909644106286989697449443835297320025665117476453858638569374186204419438008961677473662516510412657838939443071492976160654765170740609159691227225302508033373258944402407221654114728865298707987032321777325171811325780381707208242275069011888340142119915787467863693616842663882135275794273646427579597109808768201314871177393241475363348380914556283276025068531244199089882415237272292117982511626158261380317716377992990440276853508481886681310277798977717127042991215213259370602889745532544228868676464361954304348634518649089011925701131164991460523383504454448262937928162314298004183629667863568315098400594911192621720418346197952195341082844836499382565093162929295542680829221185227382321977606601050720739091328187910970016559962038516788271906003299665984647783972593822518664683237401031146776384283600109703949334083037012433897935104645428406937044228275508830700594455167689385070320625352028023403195165043894896734085021309742675519991185082940151019794830228952236039170981116542383570330058459636479515248223580696879369150636126211199996104554258624932892836609253385031640416499352548967236087409038249524188513155681199760800701796109005881303294404166283497825075674761180810558900473465310116311304734719961819380844478559515701024973048151591545537564514057880370816897641487569227007021205600278841210050979595683752454392510232052359424518734743365102285871211920433967622697360661860076267885335213069992153752478796724704747009920960347465872269153141668884853856519352822405738445403489484970178178954984847227580578150807767774516649005571991642973658089466918827553646538044271678681423584949951222317813271174311604088133068951252440203653821944218506818423047527782954624068193365881330849541287167831047213495481163898484199893792442928948946879576532293644070033761425948580990424535240443419142023349426203111679917382131287293252760856373151960219468189727556966608009183324627354213131087392801892771774479665952993844568977462787622516688405550707183179765904701761168934674483362252004905044538939350163224177123730138395141978575311382081369744896836492167576452575884318793954032602457151340976642558052296345075645380995168743658212671473247046641338649848000498302396898330847952407143870134344063369001876433108498937274716477883627436589216290541271103338535467017025909510071973388800574585011184113438783700203889235083828839060473933806088008404841688266335028839645747804283029693386108131537628824203599079145849258602641155491093641869354184046828181941074605772409869807327079597063365486286356834581536948990664253832256237943460750847962884244439020507869581194335419461692650631108248369892844310508940280841687196278164735672127725141138235353202652873928570723552750229651289602992046461631473035061286053842497113019505080952969020721706216758055636184839475935777404077665634533002202841110158056086716369643144737915259783428654917909498761888763011876227132586321433333887648106376965696368883982720254670602500833990852611463847801694376325496238043593757757423602126105206646473713893180947743956259017720900485184736333792769302814868414085914045171843329172866343822342941951338617501274743866355824205968593114671302132242324471801642442292080949378319017887970643923429554600375091338515925932244889300717134155042302343579192354819602783313036635443804838428607851483303399924346982494848184289613512857292301153235832943500774990355467625796057037906575296310749734256898625952878593735428751285701942608748839246853871326849300588161034999759310901736513710321133767333284265192575291332026002096801551788732191931926623875993675366719580474471582209825858276326159082587024538657085175315709976155488821937242594395687682725011573504507621664877842324522417725613875868202097832533385550945034578088409122040899283174044643491220908366461852848783825664057730609509121201270676975638080745880039453108957786929715099402545826463263340130153664923466810729708698215487729466352385956686452444804589698609718725089904071593731267141464747216769083256834807299388774092633537475361924607788525016842851922132915083286870244128403983267038504548243822221186248909361333117951809518055709593439304235910229591042617316290967816548510132555365888732903409370538341846718047722646009615181358960981192223603059386056760473458499248937087387718292249652767607377944493930034009698197745711700655200630643927796717923140271249138575066265807395802617932637463697768571118503824985892166040506241223408057570612645496810877908634948497078703611593690815317909623331412677868611528106582047394139989820790234356028568160297185755502646449795720866141927585324633580175764416763320992007009711862435354081086773382295803810027226414667804935175689667944182530312417145400473336483360956684209424888546548977646822801474658986782016889059173881002615983685204812778935086674694401210441828967711606481067797962725345629926143462910943321277120940576692962010830581651925970874037391292094227508204703533603869057784771350184285622517479061763633455459399419805042524422429996499255505077051258087970696688878406994975984052067088661356557469665220055170929192337575459544128079862681308722558557325601437090855932290883761061674323834565053427271183626148833620316601518536759950662316743314939875000868581649154088593602068705838298955853707869804442890712132372475834271222158741524772501755857513766170485845340219205779108356154637310232463558520252282173863424016511612145993853465777376440382381574760638937278185579313822639431021240499414809279225790483237754178992673703132580433014543884923243125100333450566847543031792585798614071961868273920918506218101321295602693141746427162151481642015458552334374488175248077320307693005466399122210148367468666597543530618364686346309889185012215493862025801910475704185559062933958198976559783710268271239533078006858646634459508952004306313126421301526458314139443839248087558471985163410313528920654361716577329377198412841282512279886814680229870284294854183794598351741997233369193144728316519510144254983347367168184001501722696400930968393092535572195546045244273879156026532359468415088143589175416625126738181317372052845706353918414063152790222273326382385537796205186489523576291972488211300144708092693711793054299616426229064554775204059030970580737381232645489649713401609974670838581260780645680289617398336782585222370822028923623718573324216914350956138773656942714673443674144335374584498980113578509231162169253928888270485595093647028287296737049041140973641988085998646748908040242148191182933231714686913508672174193944794338652903658449907632049850866222419390922101817768050180304040073590548967467301593131199643090610615251470347208985699178117433015150777134727145653135148265222202513750701487887552542910330846029169995358036487969073975303968178003773092879571861803549306107527516636893321965075817918758360463044098089502374361737022262094960183181805129833140787627428902084563692160172682326720304908866964565088431184320238154918575143490959774699467012653308272431779760503157047229029076379503394668741325279137283142051274891736134155460474030074322071223939596709690286365954327274025663140296614453552572925465295666214902501795276345263571652582525835575549864814580521188609991919631855006186804870021835628043536442523345884131286490963978933599486363811444486939588513258529279627246936074215297774522370402513247302156345666697392152260266060908347610125290680150918098311504983480318349029049204276756830163351145657522079397195722356817049587003382838975775248529046454430455836186231593777607584098591903718184211666689777205864773255559145165689027203720439109107042363318865289441923018859055762650877164432223783870391558961712532601295099767283929954966245342636337339970486212000165587738343926882591810274040359013177613379190136214450656544466722629904698460025294478125661616528199427966224954094858276309771744038627629097433139650585912242953889919479779170844625448350679525024983896009117150819491927497279149126218287079661087796768818876275576992574735102336638549976249965469808304498918444627739953902867004694021221520855456006719252402566625337905485006893594194946079484821022578261628792455364005151894351052362222381200493261741404979008887016247606418721895798153839113913257270513464057371700160984977867457175628397576139679513400271514554705831501037888585067524205652572651889039701507438379709134822318176252822321011960877317526143388924729478912401521313392909637507056868758377986774137058951783490712382838393527779911822164494225333047538159452160376242609648999702647586340743026986139126334878043314962693191369044082234820211952126695527845722336032679919581369945712938998935191585664895530335714141972980492578148836193682123891045460566234418971296109029065839215233134217425788173374457003803397388221364867795036142190232454859201734285348925383556273629585478418254507568098529483796603842060468746991694602150571316235563867740421752291664867291761726909077807066362808185567237812105696177297879407232602991116186633998362243150664602292428505174409607096675535907660735193135274724002217443542347041924964205302821546721896597501547699915236131602902598581623738134187838705444970644418946801521219285010235509901718678659979901710225930020617771779456940635118325366769655734153720457814862800254819975995153739177630455340005415495440464073001055220254269136580023946384371234269326443394327151761303637027002704564891121076862682865610711386481005066635704357065860649597803485470253363626913236274603984482368105702531495381065164930261555756236111576927350578865625115325824727707732157361441823232121974511243078002174056744748465694070995532249013202928205316482386150361490751802881195604668454055656539604599299327940038018280441250908215012887228318058176620801008492412566697402129987965720681410836903942019273450338219327022477908150826663062705209910762376083520158132703777865724582367226578094108866448595119822000249703942166844169323271084282724718148418358771350893185853767313016294677889365286512625960734175911881721705403805193309194052674537921426354041519137415860057575066368390068269815027947755111319117498720814261066262087621999550547080035417888871134208492118953344673790882160787367701621386949312261891089313881461178508784130066587272635492244303499113304734622741276195479785327918885667049672543981935994612602613283496579174484849437223625697570233546469831308429118700932705005450036748553451315492202106712441995400924775366522323456400946852071830149998727500833356256094420942736740170387408540542288996101906197340045253788037799053580468088207534107897884163091476992314964089382341247148909880350564760724620620642346233993025792120665285982970295292187849249781688828042091269515948283944781436156627508356454812587027782023917627487125595681115956307867555586631113321176053775708522651198658277914720446225255425211849872314435788302754126683831599830156842750857029274232593086764838040014553336958375610223383641199883901102166059848630944271072927281725956755577832945442244234420880607408178935120567084656141541163235006931094564877669219912775110149512943039308005908986668245755880875946332965211795845505294335579302405917443008185860657794765853631960604588345884668501853700152849074475092288809961164178058046220783953421977251990791146992836133823217345555796991652767260464374741417332737643313640191317764431181543940634887236980887079796605960010442234376888564122773710230172491480542061494748023123617872368817470427979336217425292040167664532820442759621371639621688431466143536724096163247691103549846556352681423913677745136311568917138327670242251129543054700953106474377958573770295320634175339765809377805269225798274292443731336183345888807929431906059380904590322239806011709978743496965098936772603240206372262461528076454207366169467508086186249083283218824191942235928942513115722525344018487812767716601829671041500595976188609339641887413797005478280615969546162789553493721592244541507342668057675522607798616424181095844631689877140603942771775497276038100984651505165456643139852211234637593849759169402256479496405170260340140103976814856031270261946154157564358432883008087242572922354875261078614199717120472148449453935106229703793504109238285405030633201488921703575963832184819520299635217732429062976636987050758238295636140863989428343578351312812298988430682370216526220577781346072435859643397654891605555260439161478661627969768484024683859984598637938252876601562176248608997744897854881442606469325091318787634851707913812180086638154828883130461413135481102500796670790779900002724458124534361553339046533614432689125747236452344678526157598168018320185474344249459236650383068862670950248812443159056076295853559774543200241293476910462390242768717474671388015317887595869435271776605845121996116696443245475865513312003825908373282424353833989795972673242814705086640106407708292337290420134582149669776676469750226337925353840549398729752742615299794754971736061290073304413687736091974385550734499325046703633851554956990751595230207996773592029824349733656003751678747463969922333993962399268705101412820530724292995421380649410012027942977948040036714105797189330041552009294374778426912123106557172230613643771055282071399279868823726304328040662679365984261121910441836370695759459120084907616808396328289371870672192059582437805851746927514896377365011900970635845926623328918432856151293455157710247456680059516333329588044593645613500887517526613203290874988858307161176520472772970959015379523375416261743413480399452285749233311218732136395193761673425957032794696813363148607156220059997931697392380027779256489438598967946500423667840144436051053068781339092028620820264748767207044610291209794615066752025965249755559852308069868323924892928660895944732235264616309426407489109660294613806175246741598333878796164799161622820290300963718864796179788847738631341434482246528223918315703456536979477011183546771620827024744114562574239343500489047967988038957210612190842120142281725916793028800872518643658906775856192799051812798088781538572775948448939600531686374601865477909618693065851882773938462301626549367283103745263806231189399118705241195563056720905417057314876193843094334277191815748924571104384419613826213080822692568656468293735976272525453915358620317858804495704544959615047732164617135705353859289036859181675465615684453165365304670627611664086413948385459995992772858635896900099286930596820443472398137811408418110521361438562417050271863317753480146611627854653113173271557601244208824286785517603127922928985417348592213024107463850680267410792436549148621970902839908935302018854273000607556806713468455840764929426197352382920790956025450015547418645967088090684831828276809481949207703439872650434592438824385730124250571511399703373133989129518905229680623385943000110407422570306142880259330200443515193599321859241181706892317851214741935914287973848468101204055591847786352722779683212293783895638986472222481792407637318416463770708839498238453002023019087240506895162824636133687513420366124206456027528427587703481660959214349342265431744627760398943774077274696813069538342794438659045214557346124840469576517222002921203710562945272821850980674192773171385294496127324763611411000449909502590804662264813500289792591856213174714006911902648304243666168010555443170696143031675204015620262631476307981738471673754452313016844589981294653107322519475494473312016902206952264399090401172119697954173604062423221489686238704453214898058845433935626043135669921007939415223574221406034515312363804317827527695519607261860411162997002698545887630970616632944955934199009052141628066728283400435806740316407130425197978845577943221224534946285842824730492446100939442905437133830260703603413686091411239073361074572855257352364114773759956391821989389194980776423070961981554473580790666039408175888423071967993173636194716766791624093792109741816460290500597840775993423650976957711774509195832185619590683225562981962492641971211530723619558371946165765046970032362886158644286565867186890716401247343397099877631702845420048794372570231389897923408593902902473636413976942355610289147585753409827635655325037103529592154184587326684717490320576461253644868814656038623550395381398722197639206530473201568108154770972915622278870996868259594891993291288966719323481728384746792637364365598833410495247220072046575858604083513438698024324218662321401822295384762121789318461438776230175164235827110969157495330103713048946684458230587772241144411849565228766189964513108203654787406483807119197300165730876575350375438109152437725240898329153722564618682840006631244150790159827110973662098527162035523225776626592431126412217264940105293805517643078321983149948474704324617451992604320155384427956280278464801454610651285538102359011142060134501675437002896194657855866874376177730175712522272747705874786016693896158874324891542234394922167391111130348910116499851145964026028682574395435881915554399233830107374821668616326619889299967162267348369810039354946029408613320792719623764108353075266308171785422213660826141513570396097878002955899822747255484728515655565293113508691613712705421469563410720969666723808958463686414819296826372785831686878736540340289624056644746865124443167533362206549354649059264872316811997636528497915127151175050693060987415941224476333686581108018056489691999730040390713108596004945826938631974706324713762235737322966929383733782178423664791148865508519823121423032582334720939301031004314006114192098472670448804781624514305900782977763356891314605878554660097667742555502864746583684442658815207534692246366505316833628000995580982457803839542692276212737836612629005533496971959023684474818388293117608371638207262168671434088292001205245550200491139266872005166094383300838844029862326480864511944783113149599923661559185563941773087871302871421120278512425413760034934629494096732775879244046056065416513290144367690530673133066376876042856134772616029724980513902491253764528380224661840128139873666580315790429233922955870020225615475772272228647830586023428683514670350528429267108299196293307939381860142838986471624723430067021231090683337215434191776220211413902178324592287936509443612879693652906105400900022067357687718926051150144641111477395211448567226033829114196874095493144384419358937142862941338584697511786092200746875191796793684765637866766864447808061167515493202425002452268497819233919403293164019408005546073270981349484103183867722887628931971768091745149684701627451209299405427475482611524803028114731016604466965429980744103425415295351064629066543580741041148129766087886938028524924986408336223673332200314718334316994499959488569695610618672926009613426695271905706614358193158697899446258440451161495730964516596691480846309855388881089285888707500368944603363923603711270194923035169882705710249462815326604438871743013724946181104446203967644708474699456867879923591600453296847767810015028922077430734853139122920807883229529406291001277548218295678640301978564529241015433699806335563312342744810239548413026678175028732974153903757880643787752333385391080421017005868044385802275409185949324760860396381214463510831952906111171651537643399780929991461864750308810301439708499353075081982331083939011850231469938769790574049414315754794401252033176140765547998455184341805262964659226809022844174808409579282828118548006864885160955551210045312535761986245474051606886937221144426516928426684926238757244403901284485023652871728307824831214133471287517265257112939810030546966290470222796102556644849861281634602051949361891219829554263261102429683546897144781424627373038111525205844813615936799663597895638475716383459081459083212889513118607652078911975739016710412229289792464053861423174313651767395284208486361963865698932729270602212182163395304806821478534582126509933680136025427685656055486706810830419770724647812998592892433842190132733545729409944851237579029420521163802679609606315454364622410766689738265073671517659245638306130637013533735707657376600550901764912833994235553704196369796960841786646646587814919137159811770186672592831692816359343804701257237403127532107510740676833419444240540784396280568735404581745756749300591166711524985695048899746167633396322995518955323626560505012228065272473004326615257878946166113158569187608768496537708348981474865185204088981298756641072231695439590218526693153275969499333622019447256983582591409017022928737608203041238051749640036411220975872796643774515697189871698046410263025866214798649295764102461916845865393340070834443811097544782342534376089561187878459541703501398240288524948791634495381144080028759775421641394996186673273890237782288664355206938513241848361364470843832550994530179278653986429507839405219538023741137250387684486645171900305493319026848323436756529625536841110354615909454897601131779079512516557484499086649586493660144963736229292774094221914283308391948007363352403416547291422160917600127986866966373479984258100377693851991073908911676756092002763721932047892053638695736999382824830398479547086908401842302867031319255200563244596608900353044462142586948203873710979239350390763223806443100274238843600585809042652303698764652256525515691646459036081853272245545301787292596227903468185525835027087836302482359884955470617044513348028675257027427067339613050890967383679706970717291865236242915365044167677125250521418451437834303169727714097194277777653482060300745602001686644874564460953596967569923089954559661418821780357023551089064499231082845196802371736549719742486620793966969823166796297970742121977067676357495409914702112875311517825970219633280581652348245682311999710341319632629048611274974351646600999643964196706169277642086652705062142505920520411085568079349738326296534256313200996357590767907956307143131509587065970613752548571790227533052282166493177881486145282536206115109994104776109316912980310506207421971474558733607377472347116854183050734332069566479497335136034706401295852612113412478935614380494556622231835891861422094546404182898836848620940854090152812847999665466841392925582479153605703536665703373615764973578828267402471391391028610634804957283774549245312784353997077799977532069897819347282164630426259429875749160381350472723583535654222207549518304330403853426877459889331593476409691197494539125290071684565427536278692267937455950952067608694042868703240235567370284812392239361463923622403282517914508374941728517574418765775184024980095709032859937444087398580799477549794979235537147435010019146722892913161468691979199662754237026734426970661153060361757980871932225484700801317627758928148628685104508265580137538750703319758936018862022407301584971680520089518710161967237110994948874982500742540889215461860869449365422942493531922580310808528055567984089863975236104511424004953534746888655268116494635576934823079262692112994513124102462726929531302886471040814969389458487706138323774643343642101013602304291649423882701422345086776310454347487949830654296349289760837264286196702012877409224768299919449357148152094445373750323173600869852635278003730696784018385992643118054968692063894581628634256582126210034113169715017304073054166436449287506446526050358141576315745582470997390122462333205071711288338630157534743732303450737136153500155882397761703331458251134284306852497356841002766724700801217579733061440213080530058192937030702433330705579720486204417579438730945197016703898410884275438478608954902449698951190264488854981081251315573930597294174463110411094520126162037200451189464791915950641204234357137734371449653824408813424548228732685335266524545028529877012474411998953299183407677637378954345678830890823491878475626523429284983511914799815365067674709550144526472501246148525300329867614249318244997658005392553077626342252621350854259934092863441130725829619027518927791589895487355921853088733372803409263206872165065149046010095578074581584103636879139107107483461562430619673020064139322465558383136320891774113934310516319658085515621834047367841846323598357444825110507185635871345672541361501735084569391237168420255105229916453811498549364159626440854258393678422763405179567143085557157102098334104224799090973345840625365144628613237820363492838107435022656616389497308104247754910171718404415926010827500991790761468189652970746523814203891652433460642232399901234420451233502661333878599716373134043559915160086577373517888112082876470891025032759344718916313940971461543648562530972157536625277193574877254445402091450860288141780198337732849909860662156572947246273255235746362690443955965347520765296028444457418562806690059384719241891610063939179128745628307899548217153997822471239949143930918520184243194094277745012596211609598358895506164144893987111792037129204164378400558579886716672172167821281829431890025083492667450431873151312290100136910565200919052471893301297437010290972687423231155289760201030988291736278217493137275157592189565391265838898994380631541088406979450169762988403905025471395519086952294804014995946792883886644814528690619437174058608675442507046616288870171646244324747271604995482225994113161264330381354846253472910916445609098587906329479972879064212694202235641015538130923128693085424214167086992662995109056612666004622747118081792701088649408881319275643693232737055093143028877560817400245334651598180280966295700204968284307266542676867264387146846177915858605802157393514866028940449100349558969971764542216183427868214368476907412052434229947457300523028696542046919678691785955192910397436515933763487477941081168469683956241599614556388839842974810715019266944902413039234559360679354956087590965660648555085653070599536278709987043493013679646209017751238035772275513896358745434777295107406897485651890079379636531014858741098106697717765083866038993736024057168981775033484346931410243463568530170642396625275988952841264353656599503734186902032287545254709836167960964721698397158328799827622704687008222504488876142192233359909917555242319871472965320236424148166141354205470299978503243138057100403745751100331097109198107366606243963388272241376374292861402317208896088011982955017016327763634590280311526128594353590085344398862652239797378820646217569119076089313695613184472875031721842245070987939032887174254996046138415866431523383873012690647328538795795327427931070866986402837433963950087972215013740684737287513729396077708862738586363382443282023158014072969136800630504217948531631985123626445888686244718656847566180493447382387996656963596029852083113533444048374357578083490554772421168480628937631228308029540196726417850553975528629868384591212705902394796180900354731226787216921022382688236061275281211318352610489269639363664455364741464956293674035301958424324588873933729169063952678797442147476979699408398169418010447984815654981011450700530088438957665445619177297814531069827951392762110489271744967493173278921339282974038130161364646023776088792308875195611506566213514671838889896191047898799682813876796667171103755308209794571390249799753633316182322385174492563806658158778680008892418960529637214916626403893261254248098277126597643255718681355799632607758907575114357551987764771702366636746973952040339475255827208511252143228905614933662232362259334296774664407780283523431923864339370677491292954432756122961984906806967009112992736472696254639894313914425386188646924538888720696854764064914185258301920698823101264714218002928614592592151915080034474044372059129600009524259583724409038634252722817358039348368877616251767353765784714363966211749803055544509003260587732700040163788260251045586997126216193836807169201916020857675642013808357126360709398198800724361063194322771389563346558772305525588125894580267904069626282599960600931645846451884268890157695444499781832053201546386346934262030807420947484250485534641254560993633726305931027751225548332717608533970347549042424209062797837377422634742196322068201871162297207962090445230466661422400002256805007483642659963272932160194179765833926578114988138244142066066821303460405121034298191521350938901739766535068694558443516437647696800376355075664179285116167167078338781133916714913146941853244630509967379278754302829272741842083871082486597470765800047800651922019926575279349678387167962980157181026419072280235401673319146150200173581413413704316967207044043666478247425162574614024855030673481500493531552189300082770709057806823727545786787043588796332025112998619902294292423991581888803124102002113947566646897174485310507133638992147941419971528434552305552532057160038406377330516662535291384055914318750622394460349212954494465283228170620437713025456402989828704219375283869132861378835141756676597577105246467975470467162073311380429782401030670716222289349400921545000547700577969124704870068398249295081910464624222790691971597076337720034415121085028334080653995840892580855024684935026200112504977962405059702975924960256634101732105853047072666032536696621231683943200057436410935113103249982900874287041977696503026618574509204107559714822970776758294095542654781579100241453774759622385554366444722177868381321992600535272731860243273829352555126389903873404630390709383439282087432828378487798921986089300684531841430265409292787347238318182123246098285560963129351607230659589000273262119169278491027515772448740473713890524662678182615554609873717193107102735835764774303776074296474541894929340477220012616718196288326775151472587140130979075362894802201209768445459907319265485848369774030094915939397310731954975237846918128635168913088430432614207010261628913362125169218770295412053140402405664181946591720256244144687575168030386925995146820672577586849903024660995890297608196965702450233222549959323863742913000791833690278148568730476311474376148742821667962440002524639921484028627125140999168826425281826580339611375572646682880781932297865778634031988525551407601719212400045968019795044132357748852657405361361970650573929563879294385341463439255224504491578587658637919801437198046343231901891322559303254132262051701055862748320275004591026115593560657879927708937121740871890669518518174297771486685046873137027760309207272271935619812276453730819729653447452987779019267317230734551138102085264528785532504322884606792053236334650639865375377418235569512180993619015138498175161918780349929910055409131540130409524150454017797295096550748482728842161638524395398742233185324701292840349229297694233494472527122838366845724496733081849972494167912976840035693420359303645305784824769789247800883340470228525281457451974178769730962399921609905656400480353443609671326443115947790332672026028436372608312420911963845774239014067418442688555450808104242180066531526422850634593217528798834592117637019550726021835052933540478087696768904850488559542176340062495737370260215021052492468424708732991774212665030001302801864598586268177185663633527186084541993556929077771059051753138478514488462960067075401288003594761859706533446147362095755163160501538532215781542450574310673374530335289509830237251479415882165293630026105452438231010669908740132426386151726290901252229562577206279873077931344692639910038684236802540474383325738336934839518420361145660482376224314796840282570699134317183116570089910621657481367075590388811195206723356110809616675175980043396376530116163819898986444343319891897634624040964107686445994687907275898572019019831055763998618723506258483732844288696787470957751548074536646792687778634343503539718607058023416598485105465072329283178426785893424657713796509447983509702822586812036886230953656481898792318247482995576196968081303163285709621105203587943556879375280650785572939218561124051208905756081476053831631166277558336410966914348922315392024917530610039973378631037777303317012505234255999783854389053712553363570981057616087818817544772111005901513094826273075028538830973393946850208067966848548581639839958098382138478665201400767999383339585545593514429293512052716604067079224982879954785865281084290090829326284677523471172176883002966730179327124487751596336152078332258458347022547853851565264538678723203091325568923576408219521847206528313513085897404502619459582965292752207131931534912776613475808766472291457592369758650777503623486281325237351702995327155985623592423016143004514024162535433548012730553738408585564129067782762945134816389828775602888240239754765560443427777144202219819656540597222678325393687735461400221008123956877273440985712306114009962526557470654726761012600342050120362049363175239766449946380167961683865786536734726587138335649354431275795664091956654887672717558922431550623491065081297331914991203804892480623448687485653090980120374747990458274411105073036639638164220689996043468544626589547639077662025350551488758044333086222654669122772304459847964795217696171747918292765342386471035992756603857007326259001618084211624249233864321857473681567940711246419629903305383795472014131529576826119361146686262658409463079230231564953571162745710006577399346220137801335410829639118235029817086939473174522812012145665859480082669787819482709416250687035884747885881393299793653704425546066469114363816035335793744735027308410155057739986714481060432093476162954783043267298834453640942944481060422175762100931778650980970773073766751010556963043627137836990097228707097651517799683027296309563527905562299276511244396182270593618749532492099732230682348731604431190645913319571640582122387549630600344580619100824569164207430756756172688388841427625791278025883430569306004300725698512007982110020020479918441885168434733337057475013277276034729942826649065134052989306028050400183232384220713125727357728888447241590294236467367240262762605271939013957381651255261853206022073199105678083748956040224221116553412542159477120798825416116364680408831613122810857497071700442056913786697810774599871547284102534101869231886066445552763776725847356385863272839808696623705505944129971289458595897241082077489143645775394114096352507084718231335389736208577448990538992770595705037130377407679354223746436799543239256201497309074581767549153911932259348480818505739956299926179225774018371404316894430791966177771497815423178389307252932824672153403875053595804991945161383703338016592708695905689315455113904067956207959932347934896950413228048653391469590318403117484382746872509444202887768678762980444264925498485594342643739227957987956050522073227907938421332948950083650937332477731362481870984308287012863572206939819146659267125419824052741910594469359564043510419450274219925503207024940009451322853666905549826759702506873700674220074958087041964581715023697870081134834372553008831480368677649099475350971187621989752430885829045539415617100943818280151981146249752692111486097636724483611652322671964499425368992909682799577797272274743224166312335547738479099397270162162588861970766707994625310803954353350479100035756713480475991614081590038898563215371167900518417774190757393052820900224207616487077007974664266874873304467132860335444611487645429258910844486507355532032004124462775859608218674442275934470799588602574032329712915674772161551575697253569260473367227573751046656260014707114408394308827371900435065346547589611585603351181334197624602830981701194262027595114410872217841226931527162406585155722831430725849373517956365473838947609734425114320346689139206084555349693309560736610285911318453490587849909392127315328694229648028451652876261012866199425714953105999129823816294079868098485373287530393395430694835099160598446990463344398360096558069151424666434137886735855346332761908764014837233568378047700273388816903582004034335033201462043495932194915068790819925365793697263660223753412661455692357248682672933091154507295800285379996543139643135207833818660618764154723039328608947830024474334855719185116981495218351679875110903132673112475555016031648688450233053870531736672012124910944656793491819524174903314260358799138402646077458755550869501256649275692330282008870600504419843862556800432893169677851167612829847509259774674485681313068041260631193818249462039827631970216410422063810424828143787532858725975586019314170607855534043800883007123054100423378179953738139003803453305399319129312633831692051054060005806454225743568061159567343756232409798207878250086069547088499998652349369682333889616578590083626460487683153860601876320729624990214316385196179688412112264950534030109188821526695028328218334465692950029427831968024722908731914161613222332466942134844667030386393529169844980790360463004432255744602427584358546653555480758286598731492355764018269962992607138120787498379097931883069234922484819139667927418707631601095829823826450526634157440580748494059175043125367848716545001721366099669812967911762088029897280501754986380108419107108219479505914836543705502954076589267349054406587400389995743294055295066019746893978563894857490879336239388069223045025147369766291079972136757802579760173743842825561818306512840836849712274144024831561057350978087523036115042571232556451263093670635737925509654149371485891048389490849360677013014579663773381562817257328573122498203675053610764386039724406302082981152556787800358948179660147209713501927731911553893392936489606323131176333558951990590286192747323710057174660076967446616948568965010498040500136829723677615195929749676110521764952500441285065910936827779060586132811937558009801744382758343215540598453066050006109407911259267190399625156051413078826483249568298493786050824913974561266116174799498070673769751231831034528854864112908656276856716856131707507305556271345026155579659498243481934481874382081470632555465042467968165995019139013309716971292926611024718149724572340199419011521569271578158782544344592732035588290451529564457704423874558242459032827749490732504229558082145404043089052393728968958684102339581933346336798313200994895690448203014182023388743329597612428812165204963390051385770864828409931966658684232035211777410981725955234154277499192749596943163487520014022301811843443497480207603035277911414063068715126448561214032485235586529544039498779071012672419927188485560129653086695291498382300816995717966718288290893990587019538524803873525291493833919443443425471984269402097521061689298621261282023503809632940753534437431294873659456128746120251502137177199652994314445580985867180322841886999013404776547376743462298064817777774759431627939314859530871698565775881505067825610773765005777385498525331070482531694723097656187847339824099098806509145641941799030067014160594128377563755111368836410095184295465215093197946574746694664567500360952900458270388879145441693219112196057768112017295190999986438618261360442279689252703730555828100394285357258940785909771505258628390410059584451335292858011262332974271866332791985649843587948347984655452502479412345078508671857259695705239216782431815676810894056870951670127737847196196435232507269623207291480370247773260460326900997823184594588466379169941140321521649302032906112003516761666502313937360939129784742616007335157911396711595100270336456439153476147821728143112120663466967408667290547145445829059053185635854678616199921352867278489203905704221717533306415668151868462787107902688843660254354519351409710019346259048855909491811341804760960289539707905932935144274580857564584064500902939182713296709093115608415320678712896948307895700912081159728030904783307632165934702431160067602956159202814640251581142078749499564503540568042492653269870895475806631675687654827684965520063695561295537522016966433818569681182206330773710615999689718593425490627968104449147755471818103053713145794734086546157653960613407047664074976657616934131086437816554632826274823998696209615628702233522032739801723766989152424620295285951301965365509059156544848097414040362685479096684106703986406833481427589795686481316340170018112061745315710615904784903471752406200309444129436671556853683780550243784153095423137191108029434824104845315258783225054927899003604865238769337062658976505679968441104666086071573311933102452994057876825882178363401142313472345543424326838093788457633396901124306419074056116335731934576942996050067960801283577738449029118431509355258189340617609125533671627238390360044774119069110710178235382423654741961773734462972583097029005251777222043587685356865115322288297837068601978465493364759634793937056576271757670382675320766300322908434229789553493112429317848836925769977701654949843589950085519962803292356361262669732904513526272654910890080391393203233553083861565991221480538859281046457682882766256811331920872974403561557484293403340185211394536455916624594881718324743405069582422794735293611009493065992327182171596857719254806943541716276463757172216989571839368286957508436966966197139122396719539653302726763515012134175198832444718986334466655108458393514834794256755147184100277015484804411993810305448689198761670953175255964695235417921377201231859170620282528417581473352525267735385258789078483842514995520152975284633694674420516974995405592528860420224682125476630140113185173226367057929770020884102014970630231161835324932637472441738278638425861792675390377484761611644393347276269787669962220120140296191497904716277474289548557595230981989272702558132123696229459782203991323592685059417429307145952511224323409339330835544314859662418111401183881002166090378513928784529259402535686278256244661190080339253044292181663367658398604586699709835520720302468901398429481926136142925393818728236000901934332132810039887129173510322125309336455503714809863176141765352237913504236774268643357736107665197870511408003057752203884888542890281334240251437047350559419734677087734702114688792371192535415607338313716346876888818915660589720003437204007203773461105261713057752936165952764310559468413535210376693484858009549889093998812933205209895039440755418146849885627553319046393408013416753251457304630224732099246109118014524947440660521325483356665465062736095983461493805243967571091471298291592784489068100396816074866346994517807488747943651423250480374895675436083315000208153443747196494331215596452580716389887098813186752266232287170933688033262020719683683653961421470879921148439155870224823770580754245829567032002656951631694264891991613613012624268529620959861443964563236137059413037615870692351030180411939741023695999046647912054973026630606237465249346912234357363206868260413754752670218588938860920253386431154712549008042266276393162016851700291299041144514042598022211801050426323035911098479837537019895284621590310182179688208370389768052791142268769426507842972075346737091526279384434629320046908671269569122215236582668902950345276290155433435766246373465326228670520812443378475512480427815451056415168160261114735797242152583125098661349196874957655904539832528203495817805229404572867324789993916348539790686647654116292493348698373327124250701310592938713443298189349740827399607016021325237076201977687439957927199267358588594170324861390413077331694894759421302007929383627071187175777991340736324292108115491678231875879006181329563821062661878225112670769878977797087426171259125275770614467090551220626768444729461261883580103995168220108939573106575097111160527033774719432468567948789344222656844240345590282621175087770764431151921024081484075510327102840219392948650345426560868896445457386247780332299842027051429353895770090154283441860815277455820434126302925423844015112389442829444447326775329873664473227687214761116459790426074255714077621808692654940987671318456595663940696872204105269861096427642175074523920646342219315617212381411140559629910927358209590581918237556607876055844350848721948948635241114049339724354510655026091596534012355956422309678727680454527261206285122349424410464279492412442354444526002325323543634446731405886619018734607669637209439168400198978627141287510226663126951465910109135357219114834350516939391759025837154169074594508526162177397746031503816583155419652586867347041427350309804218238597990821568144186697579155775801514882403279750561442609801191355601618713022124477625772080143625729452941234598983460572806641419935311521626863297875956642128635557646922470983850205923807671852679562095725050268352026147391939938565778931595804923258825624544075133640195459333237729020559877674199510910980948276765507211517338031668240195552625742678786022128963062663576102009719878597149608354083610304603325048490048726034474244189111562191248898256948667363564843870104770523588574366569039974886739023589139748022042188423225471413118143943911594595582729198667056777277948199674326507471117719274535110646146110921057783149826898978504878722331130964070229504749124347133054653221504318443010584357241547170694019744155581909146749524219244312329280708645071061759047503698406121852985751997311468326291388408962955122662376501878791126971783724036944534514429712390151233524619873862082348814653208955898351492649119452520139098573594352317012014190535154651338555829360921571277249597477728618726734237874938951449388254440138756419597069258779388925956443986341728388437228338084804132151218403975746219297738083596553433016024906283534605311798203900673071310371605955494968812670811975002276362106313085077622640116373165568979290988079704915565679384228841876431416299051529468971382389120944734772418293352633695593823030469096518353565788511710002933453328412083085894142588590425737025972867333670621632476590871254241497040136392303110446148577668581308021228557617478314553740870822064410616335114876782997203471247126006114308406247826713413732309602058320773775428908354028625619621977215292584475635295185717946652946422284382626301446624664430117177638731922879861060992868799931984549548529271591297054243132668720617964187814592336898639036080618770259038408772801737242692204674320989986725877799022082556918741763751924839444586158157188618314984918390431208385931584924721900585638988216533580605321555041924203302070781821705661743996923800624137573330114420018116076048686264178157741462485250077037529429098009081320189673821620520775228454443894181702060375733442244379964935257290002477760798754915143542020766148085736597486937423729032011538948893181627412397305040271021685076724841049688058367189276650605514377853818125776085680863249526529025580325096323389880804002448035150528073285887270519081232496600179086484152411809347074503119919971762309781771001377512874604058470281621497486039978499952951909787030131469476587137089622741171842707380299977394082947203853618629672605058721316319860526603612871696538312292786274636958690981029163218034613348341430397400426907099278281666841240474991578673085366459898343157122997442705958267956544822931582847603635213532114773420277403686833628870883266584181460729777817151229111636109404982526443696790196258898433629233072029332085295764987036424210733525900088111026753952378387154619522349642220488030172151038824479838370366819076064337639066951135386306681331040901858856987131641757775729819941200608132458961007125650675016102660675148787168351546235523457262969928693791079077244882370875182319951978691331332817370811873351008461692060816497428072299723651372070043266959281441875202802971923308441512135974402097651282993057348751251044372075775249596933616812937966233507132186899243065731061139100821968727261530332828828471636985685045144770531787515771183225049507968242717509432452850107825188285855818183375635144149022417889524603717578953975609495522036667525924846641122418268083758115206589747841168764971842334674750945377710748220345302419790904942713475018692242487305949646506153393487213465301394419394908939526437604250970342130821685042704763368033416163974127252038180858856378673509734694168702639761393500668589348188190983247908111926358719388555694348277101356647625678872888131616192436811692012081674678506579563282808009814096889850207831037908884721009107049647796310948494533857895601534067817589367163216371461765750137620334211658104736801255464359777180318678469650595447331153219227190229992813033024523571749919731152758131545603816980319604054277718381227418863046475388404844583241837890742666956407242496214366589227294004842391076144880907226953998969295883941849366947080283576496213102635579792692827797964555587422770447542026743163104064570040418940753317286130503996620245812121629182054155616755041621642970571368858885745326737385083117983587178948988588244306036252751565664691149314338968931114291093656438466555404964193417282785933362746017691552012472800824076827282367195765860257447451642395504036097460728080747110985109539824437534848536703617249582802474023941694274996411373679745908398130839871914495576767857729685116889106230127317238654177883708600845039371923362818066487568257598177998526918306537255750460992937764589452051812423738001726461952678721732005169083604274834614802743947316265016514781202686117130664561651923855677207850180337378385059254067749908543998635857690775803674361225856708724287742515068798674552996771954108116938975317831135702805405665859554357024787762685351947116842683323043003500082145713361397008719146519981350919484387121401447261914859631515903337937617854713176007299135865316671641162130039492913691116658685138089033496888588130082719275829107183075493327894342770988071892949378810934952819025629460476262810927596702798645414595042975029453535268303254846142479067406104991183048015303790716786193023414549012763409597640818219245492273121050437069397129239391389901445273104319858108199512549084365835016768396788677393877579964568317204171204300431829937200533863015396235347868760863247791132338974176447483221781103569893873926915449053040876391973777417017052065668368254592335151547181111373930083663356142188377567629251833354642675944839316840113045563297476656128089391381076041459331481362381640499496944207471854730944359190801570177705473078879708262281162665352798125788876520029338019790991125882791589473015219839375237247652744918740529697663924549425763907026034371302589729541492022410041964985517531419837997366879819279719193241885411967632751785758477435770219266024867139619458322940612319922983621654533249496415137135499775180755916600136718293778152748574012546249742068952164745942170142756789873977290982973816581752947428685324046600161667743489594761894760502427186260754170143099485049934378968137445598812223996174592974329812492379437278491672892780270899656195306227840610378578043458944456377869005232818758513496668018348727475280863270894445572852772355511776144107107432974967146396186597892191280406885998088916085653495702685070377311530494196445927870415748156002322624919372180386964401832118793368143487500099815646117312803460473309468885661067057785803714050901640311353806951103812203717968917152783531478219709833640741324842016044062688103308874278375022151303601308578354543288329321304535807980391883264170601362889448704152144382361571838604129755345686285925955101998920134539351030221132059552938870128192579618293257551382422277635874804606914092210137905915380303774674823870970116409236167345015740343939987573201517214503015368934801852948299477022888727880327830218228136907192624980170070126451113964869593063582636622498388357240102926834361161210845385695087112040989793070335215047454481732504887846141869920801242140955760292509614633052604359056192284964302480329085516657083397282067752618990486824459988846795186561337189138646786372069235817851773247680965412163854810839184944160200462036439234612845032085712121274627306989361538334442684973681393705502558055620765702616875678203028468563041228109465354875586789813637984750079290437929634782595096089669820919084334813452941055809105555422505028041867958257104929894865550823336530827276595469355115785371778870063080028074691655548999207124590805524568682537460814465458643211582532778120620277960092428334395904112414960705343125137229781257283663701720507276250742777612627417256638350113582867009119852024634313229853389026093593509461534898725618487048820166679258370562918387913296569957145081033717048051794809802549637533227508339018517474280632006441198859553689384760492204969568469331839179014234810775915211490700556081965753320393135922322875487893281541361367491857855676959717379222251012082001977142121667709746677004852393817832186163122402035158341488423604106214323683928356525499064606432231015852845867981363953240606283421985298433458347226548514180274371436120341188708079031072988031877577618732988624152203448424809996500568655289608023227547035578843096454112682225802710161443590172643113067097433017116556987710365399104433107234707251319513510857433404144818789675898787138820997290841894233685919807397999516134034998454901257249852973003409102998722371511584363121543245790235350511634875884508807918851860130228749235982366627581043931513983522298317479865132730538471674934358638330537387312222760872291280497998033327772906764289909547103145468666970587879617811133910917233731915102723987677589887160631672006847920197579500029005940507609733000773388862615138556931512772060965217137879606850110434156942223684720033097739660249877618960106872205431060250010621636024355055298608881491507311653748434828471051648610207526453604356191639514611332539038710157277520256038429800495679452950308560138468911588463810103236354643061722930529218457981408623572274683715055311821761114060663075697285762732471562888614496245537303953519202223170006808941223489474123652471700253475422122253240431412148246193377407458656971936769894864702840293324821325628167680098882682423397777930094234452397249082816658621889849375592008105434640379861618043426845128189007970840810431115763603212664011341600903608573859251620891641163342544221012719023622772834164647784568660564096764167587216284607824893771148213221337364553796435822683158008473630229060193417868740642476740636117907776409257152932109912544886872513329867964602843894723022026654176220043608152150421864687433632747405593234278853787904978501852530918724910617679462883859058865796261693608979035293622311343890315078200685524580202878219971201559536949917594980650085892001000157286377788989209106264552783942379148452473804313933322900129586838618804342233231477503862031854172385339818079028010623091003790713559869573848403908589973332708340056593609729040598104956489360328060982130141647648301388304546349520928662546990974615802980176157479474808432287249307024672985809187518073908552135772602479121956507441009836524718116469218879630401547795849405572469450729176072568847512608014890981112458893907892863984802374036660125543867678056180011709025556891542441335518918356052342359909930139803675855818874978903944388675320291490280688502005433558043335899460939003458749397779546268925644167060900703615757505807431365588872558782615460204023718409826139698317279623473328843819965261923401049757356074998428956002041009615857904963604873331934766849868915247321339260091593488582722532373815164506431698941139631409904535440238110711469199672299446065620208286502470090467506305479991554419736184420832733062335888811052992964265735621839686654126583701385170489720780382592794301684747855685366531839914399760171925953254506731488223352691667506632461413479176912124539715181075679695176032828265285704318923438790964169804898009725725087937337355174034397324439035946725470815013475494492049357257898836137760396183316095223030231868606054428728761881706053545569536577983464603748926203784245122481919620595087772881502975611408961656595910460048585189621618324101709862792678453981297230467116838188586127257657768892671590800169893968004404243426106913910610535503393460910559125447280363873708923363823920122553483112280404698689537183135023043499100810293647587959824500056980793728016849081422735376510729298558572736345410744052522434095604840210053854850814977877965244838224886846848276987298638857859261251101121105354541539456447440845374876415346801436928161103709981145237300978440581129912907945493959747239565279159779372887060574183233189939841466919733988107629862477549514065791239904964308975328765227939441305798241920237502784772367107289746812371365120118584236792521257870684243895070677467657088618255784087735499264168347735671057354425198497941564793883032072889761866707041877968195110376575258214950218994399145578222438695612873290112560387878350020798300299339578724125018491025183945466714693349588402825334491087639722232693647380053832218216334403761866140641049353046279650444395338391715734242808557650918767137441707291235442025556739078702542081993536214254310012177001712150261204906533839937320089487928048650168341128493528274845107840675593554096189962105247017128999398484305682892101318451310052522278408787193302951694996704192754525932598240925512075153526406150286331008769303427730038214559756482068353080541426175705630917467668387820151799136579441456414927525570300699717840894538267820771016630677694194162940438778929520644977083170960150899185547130981837790855941352456662277185908121560338575521370818803899214041159615606623591182158864991225391079094467942709752653058318157346452917584978159023682133916475315358076859165043722849073445666012861245938572984130848201430640703533008196457991334829506610126849492032959782952491832964519635615852985994498737177558541369967907140048294699549004577112031055855380224075808475935935895116962097496758642740559450423408816711465029544137598844352744386438982774509709101669730504505665244677937156716398073285586026154012938563528526755580399960854666316702197728580841509132768370025981523670872837600923076628970012952250089783523210976663454377898291199480463588972967726293244794533112434917209672209232507864094329484849823766444493375952153869154864947427819858266719623879731353201501186976512337055094468780154950060288451082441471676933002553167135552430157865726724801891943412580230567703100301372152469830244763045842460602126466352075721442948361174373351572265300656269801270450191995484426549205963560347573342823692711231102527671201442305448457758434096866357318763688729407788605280680920186877278132983742318946682589468118698887194329215205571429909302088668825428064207846320179495403994378528386759440671768809383592997628437114038374284059386233919740343081550697511061064407243824081537713741375885776509445155477662029511206610598531990332733086870423796774353959797207265128690849344639046199371450270374152596412094393291810217482504167794397756535267831465667214383108765602704069366813838608898757612778437813654431375422640259437880392845171323186498674512479297169064891973642090458060756196055715882465728322267223046765177132704111541635297104146187076310222308386583116965647585884758302435800643094736625497528447395746592466252051349399674734775309270675170934507683513540472004300345061517544886269492892343350102751199096012160705431116699769289102689040810536993288928297100622873931503898215556262183207032031345077641751245312931799350901871909152462977430165816173129493542512314771957573810770108929029674291104049175952601478123156361752651881461635375621446453201542069600110851303507494709805928747763028096827631109122371428797784397472627008524548578198178577964218819614527434802358930896011343342290183227081945855257835425654411762481148785604084516580730861864130226664931501704926030321966246211869089364760909251263845654395380962736604494936872737812180399597388343844218979578787943398393463747902040731751248083108272133375030385201991807628042613408961108752771021075738717395573765741226230724539633793713342961304766416401480962084375446673585503053353612432298108768559530460284913157387769218848314842899216791938122235686749571094768551146868969390174887542358484055483078229767827544171624984693665543425329040232145575181378501616700874917875659399819386055557439522433749649456105768664544172117455631258796668413494141879250694731768303574637229516866763678418023584919466456477131312689920698373772883694217466941029374899509787807646013580060771063256382987038028982397854356330142943182746033036188744554045001584625577599134291348620293522223113797687980229439627957938057559052727580214249412269076681208535224733768623193303665961198988238467759990846879985788080889775968639995767285449441520720813499125887366625929447951863372337428045777416646648671240761059810935517522584746206563156725354215065090378633258787872581222561674068816238087571486723883506205486099112756729482487475571433885778583810442100406917517083853265630301726290690098245145706621607335360726150719403469605241183027631970284009000010294618454735302128278662135084031549871175664345989857582569415011694784836069941836462425658409728757780892906803123700173083002431002879532242384008837093881838655503753837370629329614883455778677851854935799538156154739075759343242715363507388143313329670052845329330477413834149359579377372424319977765103375336280862973375385416833892687335139958871117666944785725053366367780461802784130237420264238626620911788828969936736956863148483797775106401884487437456809891115631408764886556675097770712104652447515550568896170997567814004728748981131262273097090704597036075869623376957551011348225125210786587269489685259280161785138440949947922304785016583981892923528771573538911912471607863010587898768806014806881647096645835163762861378193153117706766018579544018277334219678373328302718936042901632964759150349888188374037762003709685121050962532035757751226480991007805052091231334181787800811057232651102562298678692223440374159217828983170757408633489297064265571564239494034242123533117795849179459325667956559257758165429040343467335975739669380781126323929185803879735732851763866829133376160587564290341265353649091552825270102147678417478824614203686909563389786644516403579465187702826488963008155664409648036844383446646383989125991264102252683363134110331062729789713605286802421016373184976714665533735526205350099427155651720265259955005965528307355558220057822164740442370910078552437810165784215007640459265721204416679300079812312723368326417468040272136246083631791320200010180125697624715082962506405564937925687983817817474205362011012963212724665215041484951143387016641350720981685849019981999472914211520729079184510637967318392706851035887183596447565307310963351012014656341774820083753887940470529528012516339096524045820624663433906219289123335350115058340995743743251624710621145993143214851208210667214317520190060011756229129261585153575722054076189012810104111058921254579762372759184799288561405989177655420631999952677042348354318428470234738207714892533093416870667570570872446509347332642876655945338541798126375318825277411637997018868859925508908787751335708266429175717518742594060780564761713792692927748660491168424660900908184791008174457618009557357707390783820361107862286005188764581380360007262171204100290769496648917102518255145627341928707398808973707968580322644648611210011746050583352646621314593525044494752746170149542642050359961957640923294427211007865599410970401596301605638426088378698896201711228306941209227524706966586906280808702019737364295262755002073223043251107042204023227636239049792114651092601906235532146262530671126087973709730164623467675608319761014470876404827887565538239011932336132461129016873266309479410233630302358116239687016678634008154298143767129417525170806706802391171154615217705255978313342585583485867239038551340325642586309610197726691305660514762591414749492439713692668554318255733625550035573266517141277415737973375490347897408284966125212446340026893852607185354013798749967879479744528250525235540511560315245348712117698218910065073956728270280345695706235696890552077600280602681761620638198026085900206772435834329648521945735191678547836494984284990231078817744623257153383962837379193922447190003252460672749726657402273149389626059229571130786093067740474169008160373848974836951756187320208331498437589499574535468734029511089395526015982594358640633838699412439667215338220557136255167508687224322151969704619777085543280911560842986096536712465048555481983683311831314427535226573467327834222681223171951180612084845393709621961312143049347153084487102814367634556593442053420246828603576247997392725678939518875897949297964572895708148070236137449128992469062061095685261597564976776753409485274981465391659105951004290382783213654441149503183451618966787700852695949454232352819461347057103633411591760300925658847701792899821533126814349898800605275690339755748673086803550568187780425634517678523125242518924513664167218221031516703992261272706418344103774793685002914898844842245502642731480894931775286122896407878631739332246243169502803089793699588489064034367283842440865926556100445234270547126522247639481001431667329001692358939549869721304096724033197225444318775110246389435031624487427417754719517563633449510484521802450484458341764943290343296249656968961719485217146242176514762747736684158414712269388467825071729004397050665471269189642778137654005639833844165451877075339126196311492991836688919998114966575899959813058247550602545961255453034120635005776984637281038720057462843893783195984786631454347808022592467529802274514410969455395132581452876919500999389325039618071147661118569364076410044184863197066799325606194306735880561025618659431415868988520372731023538470480863027862938546560141521667245103670019142300690963620098119898305735867716746458680445789034335973115939795912474825092332178791949928525992625340172489230825004166061434243796046364209841461012161463681548754002709362928889059545851379963840380479052219485979122982083506818158717892971206605700069428105907547789649391106591540796410991542208581466082738898099303593342469857219444488946229634743891756167951723035345928216986957346667483755520069049545865670080443040485188184995503757712458116547970223843185920716636435061146679895215868683912998290134813105180439271337611117110122588158212966069917184185978393980982344425231075596977039560674118153500132810015266731101756734147659404801555890883697907243936113857779321794271647270048954096368164800443877126322103054100068301819825649770006125301359732550574975159780898553650412455679248056958726090627591834115640732789933580780662171226368540479623800841148241445945948424040369532639639391230333978183020517217023385504314595008780539419721692974128716844265470974959114832846041426444732903937016520503662471899159510670184851573789586582595072438756516556260152295545233740240167898352182262247539978581542918128030842660029255544346867335046535047600899436504143977848077534741088261001869579854887002775551370076104792644814310675902596901532073650983004566141521545536373425713792685121656332681122560081404890645813970639328508973603406181474564475264712827290727194322410186351022536637645674959921381931578339118808208333964856832273395132575474400388949844997932636724013054770373724835730594219230120177630611493255255799443443798169556584774684681510492150635651055891423238843200563663029555092554986309909039162026961066150161095883685001911330025771474510036041002631761546906503777944394682228634065735441259405029123763873421216758488022700255641798471427821055259907654093615252537036322785223907207323286343304920535807107930624747385628643938711236601477052643718183685650390344400078374981415239398707093037483147785921822201079249842004110041084600398818022257568563969925855550800142117940641524385229010029735864217024119849262090187653041004311466253177224778465822097863017357127340270194933211233651311737433194234021454618341216285640639079834197275306069393795115868204449388505125382575535540541240200641954078751253714739228259268680634747346361519031911011894442981399256308732152635685556657812630248573963988248934753024576978371093399906450717703066146796723670066260437532187529365073258637875154126209229754539189867140198423236548987472490026095872094825244049872768672672704084913104426685690027574333695115572630991107184115858969016040040522301826950349693215301724475741759343217382246531011710453279126371635231613058925479988240005173873670583108893303746508386856973740751990739188444039716928249142661838457940165240821977227774139686799070794915952973796675671009697610591513018897534614337576689137754163667132490508056270785850082267705006414217865255860727077550000627118773442123597029983853012870448713774277890417169305896661255113250680664132250548692037052141692907770668008762903120919546287836605194179869503457436152738343020073226832023402752262798593925550314135899844053091340353834011350757439964437230442567756595632136949607645775823740163267168906727373560319042095644611827819192496690341955133971498966706917383539138218494596790885121900530848561754058151249945669366286204131692425937972150753862122172169259735300948053960157380378015953837721087006112315970377031517826610562102585171401777782763869075730241753188432911480872401190949533826597675887057243912737518394968933413457502612646510439930518950126230906339518551879458231978103043751326738061965520402869000563128474479888958410314384410692275952343288975112798482602037423414115486838317455064074246168315708354544762262569268709925380615862836080628051453230378725694058788305514098733193899448793349701050736611247971451104418270975044744156668474367879244941164876908743473713088058345268979572214421320517087744491699076715148183871051527404739098652262609541664886297606952153829691799171605126307770177950422681508013348020532553114717008968501218540412860714680712351510260549015424639339428130536554867220381829470229184019156493032250392299013722871485249306037667537050783380332473434169018180849200309007096157636975694444773483294996651544118544697344094632588961494159826015815145869439195663003271803476707939538518248843638077519461146305159694286651615005414122567666087458249898376561419922392262198096335435031105110623410140211556464013812170443651880715445189385854479617840600153625301582754925678396733893315899880123797846975890261859250733963375707755024692397429351688039760774212972098994016331348359236915735356725792949923669429318618580658458548775744206617601759661219481588948434577272905879519722959982548674492129583575569667992266547700075760847741292314522688935272499127478496889199529293321138322250950607486749163033149469610521374763266158891958010928495647618830809739616098025777383283726093341461599409756374500286960081396947723104046776566250517203380787977507489012607242090879175479517093248093539812745248500245057394451008734773478451981676630326687721556312253884767978150369006221628979063106623909527701553919076347203758018860289489650997481313816762228205958621998660246184277487575135619906396306462608269934242221887222722894588401368194909206895520984615142700734159564963985226015006233840625856651068816760725960921684807765880094973347709529619444319479726224505125969229990660694447815183003921297926139627327145635551270920700582496715292321072835261725683005464342620150353391268584651221201996712721593703913700574478064828450726261309661805883950047545081354433584973878760269593650114277773412914173664046731028523554270685921416870503232579842547735655919227125148988758132685256281762575692659049076676736962480946684264628931059044767076276768366617167891435341789429687496852973050158812853753755022266343072274707771277630193548321723485350018200180980747198405018802512699734437870060952752214587462932564007476119670579921279589210779872904064441702062557724142689920229668690432890954598509002951228333156323298542172891845838668020279299442749548890509235176238268011414450214308456102562471529099260115513319085709158234950165099250901722783413487609979260589990403974960131505619543566991745487726980270513435806498920250175254579505056741193676894550532923792016899724467809946741968028522601111351652334134900349000842179726056030244009450375578924855391293640476265214001086376759598284766418082604042506207927124863852915068038856037505112736665787151183738892613071042526870447586412216986991129042295972435971350561318425983494440705372806161667838384481755591641195824040892096504861398718621005364689022010946067903448708437113503304291320962681770179145746507773213489433586633752286464627905532562895956104742454840427324970618021008798002925472550701433637671040635983464423432961351755224560600100542059306600213042470247170039415851684380446315882479540724965319096366477680738540248545644187602152736381295523848021893225081112587113380284320823329574136165919234119034269470930489874935775384629818617530071981040088035250876427339687793543052729175794987830891691348893826423106770303775899332752819176912682951760140407578985195113035348615697409382587583085260362319251361303750330983647481047685290947964163491657028361185808712563193794229892345069469091295213082597335222300414426989428333465623598125414333680177331810922161070548699827282596627421075947790842749999417107795060334019352430223828436782996886672514523989435741846277604262777533565705895469050100790573867177253359160796206220625810299607053652992644197464494723571097578159744806095839365343063559651721279898271253707317994578594954972410092022642861720013006620605631561786744934581748246113548218956085135395732331981285283552372136052548603321342231931421474469715021983313050354780565804284076968729438676618831050361059769530899612418261536778544632497838973976862813370968996518801002460187645615187893626285241086246272215842020079690367581948036421208309091555711413887766316615116673425309797006669399544471251951316401061968656158950028447759492208192133736563821296764748147717349821838741973270461395019393950049406999892321642538758752279599133347350225337146591958150372993292117213811801415800907844869809586903700296993123750668185044509367629478029818219831750337322541783547197477710288696783839044062283628471841219636878570449820017325732056316465181742358927490289748260090142065574916633996333321416955060546157325775846027802889925443612099746163982484308253533080089370273149599169803208478760666680901970717346800497638289108089346014617450895316076269847250004753584398125206503727727443733365688511899750257583630515129408446668777941663698434497298007024775138418399654554936390283917422799673574222492799590313929570538698184215922617729137462805185112038151853688228483236838789691761665772285509124652278734696545805982544301691038351028552110446742364772878912961469486619135510709973158427152108104131365368503393012653531979915248931554475236507404856532487115996439307458986751960397482504433472942292292146069537014200045911251159414864614520807257462596258827282296178013743450372994571783426800921406537403371010901999700381993909098207557975694976504384753219097454247311561560534882884205659317845049316330790770222813845147123853984993925371830899746924951107017948348708246758097193068335248513380200500660675148951866365171333678463429470928430099128458558240958300900578572916288086127803142409270804902045877281361229429671119944118233815285322256241312138059509906826671656096584080448697942617620036431967545940105616464803836401522154053922892918759227260648695656360676581198186351687712061942790315816894883171165281631232571169691879223550963817173873579453814320509548590056618821201348579839718923721440779049431359975832702471389484954472465817845481186671345169583001434055425745744100792559515211655067925266755334601131195355273337568911091740606799780736287152905839613307766426434786782606428848968503165993612555630997452271527697918847093040068880004051040705185978885887049864499159968053607260789250749395087443553577412506227261255481569685741086929133364241101080565348869333458239678942151682984187516855771219283928347702245514870652981269141502612616409962945605538355849653480790659000368345815380910034235692221342376364967742830861358658220823745682239214037471075552362166924060401015972873392713284380099306821029233555500309125174670504834698015676999920486510543394383039279971498456240531172099441361193919090787323295294066332960084407677371229017762941643590679963172669146782012899409153070605207381375683794653096834168790474371457172341186604726782321028124962837916491019493590581595067946783533066714257179401384453423666020557691266535768630983709385348080955745912294293746410569310891879095322169481178868987994009581840997547638350623725403155494474911358504771195205440342781288591021176420636350600589827813025702647537397108184679292882315802810349935000736184409844668978681938255585944468971633072141207298044196397721973670618595130740947669117591164148637573858294653846302487157082793328284003715322384927408480243836833954549961775051502033050647167140360234325692754215179040471091496259083515034380334427500428025495647433979429251621838883173511274424706386033046156404433180145571303850432119072553044844648188158635389867385210590038959184121438759754041992081932529513827588153936392988257507763231484632573823358897413569718330106397792214932421685158112581664258340791294723317313421872414121160751456103440507249578336135525758823347586350859288103467005371236804029599990037484591378719450234489353639632071014324289940761800384800870064651135032173232890411986102177228863035771804838171601687480203952802996858995533476328591827428143164849974545431198650009856836471872392192889694734720605055418288284849861620358407198935859504011540162770196652141744618160468423146855440409492427610327039376950865467762058602143438732589287914812680254749463772724722782924919521532623356212168904834496784009298966536084700388576573910332244068321434351976071929233176352764004699610172817635508489028734967249990724204635983899854260248166278997924876507554544944861990115458495209457092761167335330175757910392761795370017973386977242392795732052892148550772752432817439330357692978403235922384226236258263882985328383319658770241097522886420162426475401828629476848732651312100652497747882261358250091531007493839856847038610959897595460899807175698757573808413765745777100303724744273960924224926639297165047269433921532755450871955808561731874865305898093487866562015167043366400214191372854420934415816507737767216285153222882923024404933553746199005505138504250832824905456702016049802437156404471802372267570718004972295744428383809874678287284217221998416038865748733805668917006262249614797212269818104276290257129432912653658732249311417644157960173485606914764892635699269450920529144115871735972002321114543590950570394499124861719057619649020230804797924049028874103110872334299385616524310396870791900382072600147932671405005362714945117223400011317864543485506902263298517247669885462548844299164884343813158357818542235343199047483112793018681566867771070400096046009724611345766861781401414120932804544284266167953012126457807203633048517671731059137604032803062424744517058699071783537632645992848328431220162244507278907574118456292119484717823249984414091746153688277848497024995671866962028727125132075800844370778469253705379514055008271637110027058694321891091831039351192144628328243330765590521387068856713186863829831735219402552371332663128065842041463834909170650683754570934810015494004709670215864448559848484956816515817225283996363469073103933767325869773002949683332509674426674373906581531177575027827387456113504868919022620223202000924610026336821456902981585262230009497373861146802330592865499321666107454803053691482477692333388428477546950099799440353951918649699573943723823171762603286624805598790366442901135546441318150169188395348071379260413077505752615645378193484574024375342335543132619757806695117384368086212706217671896806264624703437679851627222381306122190758857810307493163277815391113812241502895930776473409769716731182584591850587440067547730592279376713186573276496971522652849926185744669068731033467629969288586016296320820586979847832544016437578730168734754359252585208486822422762680371823182389062352184292394779237765367700789795618235855116760999565504984472758703399672026327860827906402446365439045005490361428118237455745279901862882830928624071658667428599637610512441169422855268908062873557472268426316938900993038757220105683156802375344246666295489589858958394257977750618609410292655736675680645904507581402166641572092188940614624740923337782800447674258476691384647974087082575342511207517842645939240068846150472830829090264160105797492364392497150028266338682997738742546618929732981832885044608237450920382396691057734949126503171008642634803372470559582896957273578848750215678563675666331557938715042970021892055661272278253082735911878729688420968359443524670148327737273916185835967681150618349013793887920385614056797327499363781752600124135955117954188624343668338140683169765020564227100988068543631796685338236207663510829211343194337515183428755520520629797644747025003143543196079067017366485829053912780612390066244157886889757204416374386247864102288178112612972114759917105161064559055449019048543896156977561117854261741339942008592093249943050559926286990184359320572300322568063363134059763932666243313715634862694870498692237383163578252727199126539571825362435906758279645345001982202880776869338104387353806376975956735686331144473665258422523034270944468217027465856826948750241824888991559840273308002275310651819901971346056912183023762425209329171711319793225426788679997030777908220722576835443852909509346512207852963414303166486281523613534108260636482948246293843809498038562021646912971000393718753512811294828819096326343809706037821179824928935313626055733620241146924376030203103108161662370312889535915716769769019807633328275757771658711071130235944099346153500292715564704369284792043536811526789646239577293532242511689678763522913056312120968806530643409526253146757761679617675604155723390401307684692959827524691271236231543815665802854390697053700768054163305915156263631778213930706295700612829642825052158627744958194190270679986653540365850350905237231115410222097364104281844439309196509364390021945708533260061329745360266683880401881853572991101963700566269147098948990420756472685031068956726043646446734650468044093984512688139145047033534569691808872894325448464295615119673619284220466688273170300489445780644297411273182124659179296739474780832850261112446588044295147000054950600460061540799096813861145178504310782231386293251247278525644779246615719869784165361513300239364321773288764354258309941791811941880620426743745228022045172011533702654721423571478459950103588442912340193081606806430642769940777429785264229519307601527026936468108443618746264469214897488774693319047446077300176115326681382430103772758010600008077540968877257686790454655490692899968495809384471523642140829064853404271104896317951428199103017541888312676593037736021305005138922821925944634620529324098032073892158584067642650510164305450186275482327139220300083183145728491861177669216642440493988698586142781262576652725886385710260080889253030622881466868387283866911141012108507369393343969837058095711064082019887019118953152784682644768680792516152528491791515018344951951301056944433246557737321179418583500666131021605440152971872289976953437314398090845735881648903864232586867442901226788533061779218628787063618326491459791741276744802434284292663241223618233182232995772353269395947296827720563968779132089903160523188101430797414670578584662546009429819512433935270398214926177754193227659176405766088002212192693560825017037052575899294508851651968924264530664764771382739806975640258078843235492698482929977211124370460675526776679749857792006778845101959849806123746763669755263858020266873689550141859295028694293912989365435287463597739612627219351974620263472297997792257748134336734532196357568312059417942075729545940529213397421743128400651001936681356747578300992115769906951397450991640709759445665625258624003537576156029771732363605247868590790478936394725447044476225944249911839237503072541103424792594209117656337230284466835568321555764241670200945180671583642039574878965496408035665951996366013463502304767271746090642177284710972590863834904868167419016801179221258307833914730191078246729787228109656332575226790201493019557887099983467885203790375458563890428170679430173779479136752536161966182939692808768787964675276734744886154323262663304354031461390508839280029640944309518345311147646231991455653051464252372979740848056411901579265962860420482996159371000030723643710790166969675988306890533698510907451120422331249384285682990915755080039733454341026878197963504222536465027508423089280360409920146015193018303235004075322727960238754319687424858062901231159346753277505553956230328612426924774929553786440051453453327358065745703517015409210516591003317208233929415887149929670604495256773575262032731729464067603531263424308715914754202681755917447202681601840098566103475127788762250688896593040593322978255412304353353890193716470002489653036553218417558945713582150341401808696574034828244498576845121733791668047377963480653475341420646243286827897974729730448717613184723564506907446501947637211813103944049077151737601448563593328523668809842424177156127938828633649648432042429954573890177362026998376294664532528109431237582617873504001721948825905635847639226258786378310146841477229908574181473910490668585424762460114991054095102801737412879203830884805944103523371236950984799947651778368806045452949052510041281525061280692658881921317372252224897409665095756477030429083274754515622548017812209119490570557488060058687196092066689361527963168438611681014353619262949214308431357112812790128097358550595673003011153965611483979304576388071238269711076621306928122933485838252719712551717754708231847522471782012074391217016317090675235576000688782651564380565757002454913759183475241740911298255706055099664056595640991946058779959902123299965123942584791314930915636547995253757310323027856508162698881143585622688250090121253102614543953163606382337481303507444792735925644967536860771477372558303519705911434273513744526628717813369428991684075143545168048060985036075973782392104634881076854516593996930098651099189103482295773901105120588566920319536816530681507865859958089551595981694160210232393562320056711005548719773628629728132574805925639197047000939409096946354231087672595247977709980589833956043936860697460992959195698169095978512602440959927365134109900925570873321018235957044859428460024841392542702811236133238778104247912676559145553533168118658416250370206363516144047368960661641803467645622621166026699425492513923381309690996409502475392833187352015690281126610600376195410851348140495607265930847105422759752963892086554853570655942906035016078625662854370106314483434492192275053828662228200657371150144622202726405076997491117992286973334408280368902990744581285349904169833199143867772302908455201682605129991928513793326515762168823948221604468210898455469739642448954098437573401976545662319027935101932249461898520748724039188286719698046096271054203620277540441788293304020989114645961703290365375722247464324231616719586404668145313347382777802373519466766241035148165391564490965052399390522953228839373458240462748871425314472560541087934006557108855514672837342014103845945597871042914065594026133968858252565456229327408616215274050193023989403647269879377844001157713584999344072101923731027693857480471484128534161115596317806980859534730518844666021372102145024238872092047900892170648138737085747137120359291674625669435000448440946810453753923082903821236225171142981180222054607705344522405526329323889665772080694092554473133455791146434924716195690699825065370410611850799728308313108480282547213338932300845747615483715014523991472833658863070533826393847100192213985662096722625671152212927485338482134719913495899232506226079418851138975285891362679882569109826145345847304790643061021888252253081573799392610919664739980266989873767389857113823045753985809654408755095724333576587388652138673103579134902904103774450151959987869770517615650780153872120654962654620082914769477915007412060633395197082222379609410887526314993229529430292701775394843395976851858601441036483987094181684786716118636840228005642108686404594564022498628493800796145362619096699320071835287097720925862970006924056325934950983722533611820567910434540372783338519856879188007667242350936440597494099185923179484974759245294150351336974741489450367217629147312411390068675744269351707591110551730154995032358702112354293681803732783166307388656206943882866466931691928922325870182202512169107290037100559301327282923040891398253589190847583351267875920834877281167687553155053917483759702660963368033565387662349597843255053537734242391614407880562004309852652801948966784578740617263148202101362426603781672891378852186141747622725570189174842520664416692865758530039642304067527891667697026573056823722711898973054926759062659441310292820863020918191228891946539102108478740512000208973325673302304711538202481324782187680831612074715176343453035234466839705708353642304649110571263794334834608773730485028369694946021420281835091454568444756216522944259847837333265029721881984170150991387529165461212675534247829574704161491939501877787780623264856896598995951409445698283787470013312679365479392449577423246620204328945565436542282944326758743946085476867766857809216152808826771026068297472649488550967643107658833961911969213752278467451018940692773832701589713306705872758006508785302418980847131087966326462605880001288915701943329597881881491046923530376905886929660524417579911642938335527274341890260062296700293272658874955410575545958193378815044201559752924141705608772502960273372169039035998222316482263581396861930737967350155393901025637129622946608783003796890684583716387070145194496728853820814594372405342540595849664359383876377868410646606547495111282880381248635233525615296093737744258972310528576973432570646408125142491795554947241737280630006452939772778397950070788501499701720425357347644224967808319533062315902570294083456354365523795419115876549148102971073830218744106388467722303900590169841911131716468416531057651825572472828192831101156975421326998145791915601052853884576694627355868184471338667527659639970044929227769980726081269386549508323490033244519214861885518971737021638942728557349894095260907291981720919482608137629998650224812492360187239590546070636950813200920487806811457126099080075514803052072424174379623630177930859030321064809790377443371442445553459244700806975380047040657362651375997903547361610367678904993803734116864678671685184581351103307220359971473799595176068253486483909409223719744556428911107298307542993143443158347016540439390330965173504117837498837917646811621879304815844759992353389403502189343976134526125958256054283236033057615214740540426925179577097726879522671513526088533166487006169489406595644052647332001769942148005030934971286609626539036925747744569516795868128171044268101626685862027120580249530820909956337033545727895618891752955985728523639954724000688720090146354487963758169701987169729027315937617886794417972286327667152722166241401316468112519268791863389805349037977853805944750887753629034406460657001315884114189199095986589589911048824609037518199054674604740339171604800876670863449764250616280226929002561769520451814148386920788199204013568705817029537761751747214998036372596224616752681972247801080148330414467193596466886241286295583166280502865610461712825442860259806343077944066859325918030438065541435111218390945931611928059238720078475370580125865582982156289106635208295925161390942320848250008631885210811199741984808136470566472183256031433220642449501592452350633813712487342658989454996483100540606866920562103135071996784274735059967335241128704359327264458150511349602464777113502952184344007479834941449077519067198268028171611302811401577605517251778655311045387937780552250290795230397552007881550270099348479985878597367313335916147864191425594791321006582316631548010719030183748973542595931659502312591826107160681363583638841667170077194464050659560081277543497765779844667799391876965347060449835252866781337615500311520711404563855982600042987006895500850379817998425830499967284644463620901998068063212583855218012706161847377565968968131915535532522997009901274376095404771061115812200706796843742318454821270151827196884867671801535559555257150080772880888448459642820620115035831488058806416158106959205691599605233442056089504132714246416831801097659551451657945614270946911383117468122660610369454911960319672940921599729340220600227706973896897273857518177110643822366493408829198620790963264907815290870483326023121500593944702943866762141429697391546232599569432091320946217376018279471108515004113786202799407701512717603248142341300289329013176233692295940686628601531588215099271913448142858697095077872808411586583244394841154732895146206986737984269458213610227492199393012651502554911169500577377658803363782314463349650611229910461815596720764989418860975318994485452571119892816808183393215260210568177035643748665068503916482560379633597128440323878134180095399632216316966413187966566359201530945712940843438798852425625693740611447962476441350427962967186452235280036478030260590809977707413621398458061774014781626187997768801162832822104910372987046547694316511132411650557389177339872223372499472092278198370698028818316602846520405675572723109187461983286289311953672301359923929657068572362803312424732975491736814640216757111537647834311584478124888183499796579420378049670402969666521653026865840104437388765666552413375373203144868297106402554966178326304184251164416989092536148663287439657808743712629433379591170157145206175797338878416023277910547214862570294803053571176162484466864764066769915462426113509477831382399384953393000454994816332901598646724091239742940134997125957053469338942397325170442994783001474605986192895219601499674694661048919891770222745537797294020535959454714246943957940991399745886611200366275755617652904718227533357111877570808395077364622301997847394982538481975332802884094181666486256413763983497205601336644081554042337988129081672050394177933466464983539574474566228416388234103748463786283337062143366543604334129065954966749340257636042717399790167436062087951609509081620908036357690169040235373247976636011445680240295447045017896053883792091597960666562500661663503096113618215692239296248645491780128920674235370739698346422783708871648504055709094171265269193874270444034143759030356115538105522631467198845944521198262016249933688446177887266776999012247124217767374156073043167797488291204877636177659274250070797617042751310125696714431053004991512601620887329782427089568371126503860229678477698563490223417997385852918608641841085127982926411641191845268922665816393262767880595312300636818638819530834940229202397117957121865101263591891576559458096612669994760226737863226097084858403263517213960096993839857520234239063194249755532651223426988143070619936081309877381805116311898854338971776772273566854909932007194065322204832760957955037479222089763758523998633951587138149334768421390055694056570326326226636677406533719012242105024123521772387715187846899507861243569141427882090426610255477021088540755836355022357320659233840612952438682780094191692309455291186063597380330940538255414224536017260530129876624431110288263625164852277517578878648298230110616741704701782372457056249337697480477620253729996059386705419104290888179544942158755043985718386958995913039771796079728329285799979553642241089223736143731623495827416757619360575804427648298016681533490881134643686353442156971676115450619597858951286786505049624668915249133051842499887171961118860846886341978084589843952511639943654252251771547663506171570205074425849285314594688145954375527268078572397795249216405252065054601887953298558714233949560417229153487473333027102875750574754870651422985081348310503744315548408812793390579445977847731697231197691495574506901780899873428255474615363661152105496851643120135066319838549831936054753237920947257540215735405121151594271020278800768388942961678951064315267723802917107791491705752371479234161550067545920406299055255339995642081636866885153661562394190972326698422880397852260628749711768998368330796961490669421009861238054382745917961454305219156927858664034951715509881728070461680979229786225008518896039161274897095580109402017496137560827769744123616633962151706729278821798427481215415544951955700950473448868433963090824120405966009894281437807743558628261558251754326885630285700087681721515326348740215319710347256091537958884860412949814481875241739065122050496440072125035041666960690899163018671099977946358289800665413816339088370210746531171419377279260256386452541649821617057032563144886847900290812493525003981838234133403929698925011516412258913904184106415043403756337973568102949261004084284286970679940163648281756432390758927660482120442193207897397796950341427432025926492539118104067048168480863799402442693377655788874270738710473102140954229621504339927554923160137669441753112233442094149886015395956919658856314279676872294306867196643395373835427932361601867479654481424441015296588827075335501778285197132464102258092855978455912219852728004864520895438864424397293765643195867337047684159442711125520051692287310626063343014147195580914647582255140619959424808985875802005252695174069677902940554351944876217130212145428436796809292251346656155968942185942187765190596524093594267244250344975663230934248350912752191576887028944393172165804355298071287814336091661735760339971538936988262424174688475963393088553110535241392001818301851371402392132170723173325272723054618220241758419012308572440772743825699204988491388787037165856979620462435056016730061184391841528713631840212972713694043251682267473873121239989005314832594858598552775433776817127424000657655975326948692030331312843658644831025002064328152403156841000827708912128675609146604714424083885207632063496871241200757143034893170524667075513296741267792810797139759102307164061446221690823224407684026994880588036788883267174987739190901301722436465605709380495414314853691065506644806032327895437833666708178809623125570109490089273434445736573535679642593968107446353332690030819336708412988889755594260571104304810780866860373776418879804056637815571228067744485341859144229347214860582158190601481091264915460361717460526490505514972865673962041170082373545749210122208331405479019678072494574492949693232183569171138007659335280792457414651328762754454015996066727741057080009528815889157500545677804414097427932122639928854302662531748774284552396239076121795714988343274982259826408303095059696879463440338369322771816663435459864965273269487722149536430730429262848676000068545243786253305961238911164625412644715886345361227106783445223404822100965570117038635186782074110824431245311164803109729393731663763301282826684800619844207816953190345372818711422173956017752995009931650254402071939664036777801976786170097477975656478707260418854638381257190925470006787466792486285541606232116505666563365003575145766130617386918844965556778090156040475859158893919270144784071824420964646192000491465707491624054429386342275885635114381066099549116531953187552790746804923983743998328875149566562282454440325328609919134676154933875926211585354488001240777800732513747920518408725220765271489883248287768398316256209060985006129826528501732322316323182255362099533874013031305111027805949098066379639806262410716741541800540154235236228240838885411825435957652722512864913564844211941815823017967997103867945603305264124968026359190583092187610223938470060173997538389894267467236125576846837846702783155172284628166837887019463854651457784160072364930835253178399269097652757734339718334507060047546881714687310495257563071549300754078598220937746367691152760212181279759347015570873611966010909620162599355969114063553860606141566249944348167123334674960235897258142747409427849533711842997678284398410096365974561253133941441756690474830254415431384919633042149076938248394068567786969959660430383518700819263370190549481628518947157545508383951863997517960293908126741248571600999372271043796726601588952723991422250162456817044268234979248066484171906621543542149978720630955094844018859770390432219450486113922271481875490084709318340963929686111113236621920635195729605184978956394243720910297294534625092102915989216805590425954642659046276195661209503350066369506097799849582638373384949843823815083145922651712756790609043884836359410411406142331500086360545215707186071132510968334574754879329643242406597511789852868288449129277770485920654515103597440967776576066652812287658691127139676660385623990853300532633019138242510687508399019434772127227961539229395928311115162206983872064484262081309524971166355513135006630790209874516972901485559282481112686528279010169358477531185200953883384128959517985186114555862717249911027263160442487473902339072057452777204167129096702319750604203625703107973180062141727090662232336740057012861695012475630442340909937564448939926934682760773826629636411696018631427816829700049078517845142418406257366560648569694538204950449898498995679964601071548107328023418698752431834210649825337628604646671891503742092269071047178800860895064930919444591787698180555258017561962673372881809971246500880485088921798840215327664689729385824190614012748159286377401594044112768359750270082700861907562117867721062635076995179058621459230208188599918528979058925826154523447240349743153339948718676600277352069674657749410940627196285159291145718927534001237319373812914469596998904250205026273491891517290987387109569701847794553058906254048089923068313988841738940147491971084422529762577932599253213440183994381780961736045417317671822413663896863319000242377074619720583835699004981664048208797446844416779552550177084937210909429378289550884898923805177134423025353249745712283200546742587949067502635695422255134204783507719065181321691460223586321479297748633575706751816095062660703370777772282696392526368355241046608701884466427079444304666110554771600479593410232685180565344447586454978187187152039402695341938864817377669692597471093890473295249721681689288098399034064236422333382256007753942874038928354334142597708519129695065412704710749747013808357029708099715652016898573228985338340800764935838691043698433999536436047450375840629958381634580598943346064894405526354560268243087692373499874478636490272884532759814713652660859223842688006245508410424175291205598049479373734398556040611171162331523204464763952314302356923813897414187453066434839432180373139965907773220361796031860820297815620612047788747299557014325143805168758626961984255984129387341013499580665569999817406325207791639048913080786721663874290646855632321295588017583826755943602873740063473330570805594107978705398183889696081213144007274790272070548090807416994856283054984280237672897087040760026054985719039947742908192990893159257805023776045835484283677985548178897895884379695046775724307634018429867732467228931880838360594778466206695154413582813166000373050798344841299893533888472676490983400216427705740875785639215007549357481822753677581683515103683132227070155125928378089961325007876706564071051002747095412656431727276292166928624919433965902659001823597153185254600947278245910824437657186123920071826218880692626603497687851588045678159476079458094960221037970454551782932829731040873108743122016454893418288944184313027195663875848478877156245130544449800487107221032742987540777693501931618897709601123965317662955245372933342752949346727733548134675665968730328990337993338662181978831695368548107823443356103248264651422874209284688039199206301437795211966333059914686657991220086362861801564572044218032903897325914582822540662519276944680416450431252610936812730111405772269511717333532073029793741954709229107469259363278691089930826466454906979795945237898300368249690171444881299521129696498475800911400011050501640708857838504148891659751224054016264200780130870786350777953934325519550602922192558428964117158078974860905527371036681695388773472239502146957239298521778688943712580880963731972342484205656038356076934369680118480464008963992296457543110411763577209668131726792735807830473678273862908019437976058437258385280535781034425199958728132124218421779855115381091968562940790890602007651239198173534635426879808100565695561647879186467041848446104391539902923376489427378531909945612901803083253712784534659831056277890698391801884707688201263607414635848718601952335557133241664875128259579758094198936382907324010648398045859942639397806803118245230426250599738798630805287521539449046488415880667370695759708045216751013208946647966880922825733289282976369265089839134833330275439163705384404374554883442498358332699694910025093895201944484322181232228174160734961443313865893079520935398170107630173845929831039556007323067391033146238614096502725611636999371705771779533224514397353744000617351574248744261704555202185052711725255472162424118257002883864863556162232010865338413603979866513998680042046059133588104867549062122444147738829388194363199044424359127199350395169831664097246954737589236334013262610077704645151143213047880669900531410415149761485232756703559878699554534748840370382400000643223732767913200332497638796921116331468912487705672209884408837383659292615572106969726352797346219621828816430929496187440877569018719009934520059759309447166526062516173674861005416511771700256685851614016831713695394114888574054394115184225460399162944210464409640272204919399151194307201159437219153850434501025236970764688778060995862962595466012191910024646247145845565110656801780459157213277160212751230804796371241338022033956319123637411461023928152652471225366076379863373500398543655238873618060859643252395429957543483957354783326792488071414479090890895509488573791876408222869120120217919258463490332684798940333429845147845263543668875887872292639707406506977604087050226411618354708297674820946407066352803527331614352774492874088445950875234771274695382851054797972943812868412719150879181440662254917438916443961723936483874873470516734927015960096049709358526581944224507135992852607507770448802020823117458373685901176975316256477383709335003408218750903714634664646535300602663856239447655298382044028376725286033703481058137171444348444909710446958477830668653042108600473038452031966960530532663909894136128986696768638990065765572941941265930646450492259640196217164442073513787607785733976263838676795013030979917675539047759146263117831386355246887542494004329339629098879854054150310021872692669244859868066173172451247733303182275162458339199428105211529601430583567834492133913380418993933685420137001625288143404554965191281351355796751233461830905352210289892421884756619962930540574097907818241602677485929662569218230169612964847125718575985659722145071564354869123775708603065570785891258177000051857674275552670787126277886347810481849780300240318239912316160619333722229674649757083616082481289547565152124931227911475684267678906255328582558499384850755760047100353827865131206028527056761655633506433633430072580566837347591009739973079591264970155891318651618115462681282160352183421677181656882075647409516630589907540707757344292835501680241130546228139247908984997948178454412472489960307584722731150283955382010152650285624376717609968560473201068586784668645680100543342751121155912931837537598043116747645605512152325422628134610431714214264360900758639772500099862438286528549930808408881831957567606643617948999456731186665756188218468802781736513489047832805102543327320870036779886238741629198699982345985561271165943691257900621101783512074108926383432466558214764469474324735655983740402047089494319429255983957095256288286576008485930613949735899623565053064242865558798756524957807699284806849775353803260833813479797139231957113601835906849531731531128920046433897633288648159927319741698230174636936561114651464134263577506124599527536792886532163347457420689951342200908166048679358649966693121581201280797757713960369136256688315601242545764321553587792411407415857876551895305364029259869707912194469183592588360026814640095049082073855948821889203486178661640888853031433576285611862559295049265115770861388980064969352682627741789178344655882926483207077109164000283305377368513134144764948129505033874044838879252854030392871245990954424236227724909201070024062220597699998042257937794407310318811404028550889154850202865426144035199230221958704374885120316198953573233154240675777457470127315559934946891757975789085259948292647643260093458322266004890336329760534246113909570563674921436906345135984898813894340395828436733166953589401841445235826053811772875075209299879716017866094943193535138927315412423651037605278048297017723819949642940565584588730766212231408162252023099622372327880596775177224982405193603795380944168521066636543071795547868317340000746620132420571139227747263461088506141984623986224263258518711681586711664772629768645959332646606918243147228010713070395824788723111088686578534577718687189324535727926326751689815215612399833657804518874459252541598672020761545340704113610922204580642542853150337783650799894549568230397193070083723772388010210601937178544280762693277653067431071004437341928495580922033423000944218626083150418149949551934918833481523167932625205591879299571986778681687238449342501891197549920598660278963273082844077203220181201192019747038922567713629035013086599543025335075878446057198321833861984411656222535824740160089743168104002990269000410720095866373411070400927517697440702861401750937879639166911306532412708984896444639041106079485042322603349851939133823511991039828717187761010185082516458889221245148745980847097949536362003230652942851332272396812882561204117096213980067230434812352533296199447124126122685869054335563529707226269504634295707847835040585708326238516843434376394742272654929613040157520711538348956660612887519937376055706628640921585776786710602065770925194275444082385471268261781183432053630194654810550924797832297300289804583672778642526756717437616158632440562491862962412097429550611514616994501612753992489249153765612678210952002002605672222462464656713382930239191942594043673619090685357551890729010008722138507103614654607171056415972042832920909095431307167600685213844371850856167723270190241772505711390910141018601920950014950490822060415936467180443561515834485545615535575276347693553229112009204673359282821100002425360584855242867146737069966161054876131822774416134307713514945463824007614995696268502081245412503011620883438269647291111187239279224434317535494722681853456957325380875949324379979141134758544520679882411267505024701139237378846600429507935981240057516632338820174562092371516425737512006018817432366188414022982631954933263542630289933216570560654640261489190652981690072468332662294655749276061067439426477126910636972595249825312173707964103337658513175838396113165974964688856438646529714045646591820372285504973100595439114967052915228088037955634428152613374201061353324188807865624639383921582784548975141147745962034418930889449971734113551780843387565382812501033718689570834186113912826489882095193321116640423438368758495354308358697140159816664416166993843283885746918367735610632959951401504465980361753441906472421419095947029999741865647959438982367212507084269562003065591301325281944461356712777190230712640506083544951577751464168632776758096100704210402879186180281632934029654089245191466587517701366220433874564032791686152387930316296217720725595299411424101535719732833425294343652218319641005856533121496382160446263903792055343904829624535884865516071032794211257412984167953400358909525368426978105826092357178397244868377846634628740014461591218563409461549279310047838525681084197899482877285181885087116189910744595628303470224506005470433489795541388774384640051995279718380643562651617426457732693895649789834897673195518934971492040615070879676807938155565208826310467151500987650309951315580692818779082407645702946714773600795883415761665557331380726206110446224691954242725533076436276116104260315086637100375217245850185457073776752087945396680739509483945211813412523605717882363358141094260640670075451746757278453545559231762968310048960896974669722065165261362410296337806911048019112209388183709212079084808978099252860421557443099308546658991841288482420142650119219691823071375965503018951080009387389424562368530088925419255342936706939408658553542609777509117492957160320898891599746729731389358847826787525518360438395881463659946080503002307191609582179657635536640076907579406831634631123869746311573216260847073268373587046636389239594958517678799458757447067398842627929184631043397135241027298816719633867121891259270859381341062576357838632795877438954167049951092274967229420974680757055753430727368042998421274700096134473936633170946430584076481728303046728790317230762646539294910362938981245044921397876755767083597924761448924509678453961419697062223874270252124394182882734155546401642490271557893371175653331358943138453284869009495523304823030742313733230894817171646439720194990691189130452818898122802900982681231672694946721863135625533470883717969419497680099172828338516729739399639580183724325508087520228604565078822806120862405911143290427175116074664442170754993862308012014432788060564006000767495078295793576207928646264552168304620692539459076521921357412102944394824877384510700014685122342835679901337313719935733518613965084688769734861069319757135739461291414039598130113993290087299658835827926920747538025622081853625722487164468458263300426676361150988117892275055665312368677620262683825267461625266912958286240370347253700638736988601325202010814070036045146068844512335841341674317166559138743669262074649751800555284495358489365971480825633042226054518921735634060865056049123251146887267288639788870696603071830506065481943598769671614235141553501968792000700099094548727108487392017461243778618932035098124736018583072256771113696910384610471157396008019740830968278017230785078464989134084800773466769037810989611755332206942594134817586568515207609832739456185343990524876404725546904305290808015455073950379084889516967298900726044571443229424719810484190844443002919413283830589699618299270164595283163105883533050260586488653591008894810940066667651983198311791238384169477883450786198778632958706222791075376249825652735046679690469708278721381869837229647875311533677115738355920754203847871508773296179299989440818933850842140994214151147292127210182251332473675111971113864468146268466094513192421407562045581332289562399921183936262726958317274002702290918201510314364100694395807422659174989188631268592634655159436184735008763001781130691509756674732223321888435349454538564457424466821672460950479377152284266642956895062525052578696349421059045420839198726003523151249881556088666130265954916652590682314737549190746185527155692126287761423944678951696483637657352364923691567543971564123903906347090776508116504141742745716200183408774613137596966882891609228387775941442987905217674187914007225945572229835554767120043179223336641451341956197448627848806982683538246562384089773176930429386631548935720301248593273862772660476448785884154998166244190094374537673893716633408877308720076605408332718002997537645131301316551146742564245998722585986068242643506647542000006217703360020703065784671362552290561094208864405469402522633455613225513882874842493300734312484800195588664036379032640506323935681486861151225602785675820874737974467465880839706435573515072225689515913276725808766042146337789735783524052060590199337291075149042435434455852068142644257842849840443468021778754083404989148811092552633044434970672143813128045276675020429697601402722700056116498652328822680720801198375889398430450727627678389828939081850776445758440170531811174411682105641443262433464562669282839622800864025215186092490929269502846193379543779549105217479913840211054999701921402838822533897478315196984978147690344098886533656474946859842171694533232767137364754173969130647196644008850060590742512227525521846264942361049091066233022111567715034981696049699165685052517152566074944718596553709403914343075872717843880310771712779217451196595289019803740273302150299459936876356196556796092478718472293193533319218010659757935909508539144412368248325263108518092555799116532839645040187445226786104911488461476583188100181174787212783420822364127784777139305027321650149178330272906467150903316423362684486573468168242910383188435876815680378993984641483637368355452127021238482975420428903785748097052771646925396559885542732554176752812958770242429778191406647854536910122528153006228445125578887496325791288566777795770080908169702631297067445770362411689741934906213164459721713918595257561752343066210895010260005922420116935170884950207362539589080907469172415155621116505028248971798146908446584365742591033273933438010469370294067993050322321069838960159467490311183868621831572858153236300273851656648534631043253875218035227960645884081483201390339245385636939064279164696253267246464713416614532044295837676150714267924436122646831337366316568439379291186647070205937613202213342183506971571181894170151959926273391962739952818343048929866132822059358470131555951121448499147133150424918878700206540677333031707652872312914005278153347432807921155222838895760677533266274383488743172763377353898249793624993463796432718762954344668391547111116937802177545282715126119169152565609527030114276465588554073567603295633459400464677493035924829028442167599848744795917086846270205778205130666647120735284528577773252187860910030039489112227846752049298814294276840160122199803799235623335885607174440042976115888115478307210757355528341470305334722598379334326611845591192869445199439977015809943900641358859978397327047310605443297139527269935338349561964193153606901855022336673910045355477990441089239374843336243374675752757848248706771492884113024882965720095794078503863816577746302018360822865544418966608208986029877141549399998613364698384809103257123722288743896457305283286920067082465587517788312755212584570935230923626587569959227014793338590691577779653210777068921429229611486399867229586507390273039935758730338521423996637187620856354330596662502506271660570614916546663291855571651175399691644805585025309147972095800979981666256752501325135415552352266976906181605436876199008187420729452845482512327998936035046004696001000793149318906069141866485555365846434733800677558734965125881846335536706445956263949855833329395583517478116659744566110524523106575444099581482554933539525130098748985900295034086126732851452384179582359770319089455420062656671420794339050806092437868321687547829744198078509215138916067118765981100516317596216845073969892497126236310497988493045723108212276891200278852393322076189562322739508308766232505106364690788309017569422421563826528003460317156159415029020383965036514676090110991387051171585395159337544989805299454588544752848519736983934343673463806937904332270055767737415122471187200462174962720878548792879502823593311940091398313038025543506609347057941389318551806875036145701629440186604129370770334166812475553205797333151716137557660123157892564806198184098433853522795386816097873233149185756372444902630160907716666417603080199833542431822709525916216305687033195889380950021594706275329876793585457539170148508075115862872174148518057266460600554739152122018214809259679587854114985583038942546787013737279579797923308198343890626043827810703604517960333399120354009245403483825495411420731063746423783133299089553135184642076484080126332409973884350060742955433390779546138256362556487968270717412430963516869534626337691822798446604361645893409892808337543322127912026325946706125868308362831144166795459948253730257975958056475834875111919739816864295556916624070988908103950299427151701804517134086329984780753996510469051993001150727542355526014847357593065999656239881654482580238784781307628528743079952244487041743179543064982128397988639772972347045299361904073118921504626221528475510404805223743723181142360552053613011512592203961064390735259637698064148877105085448597211391548224465154186818444632467939075751256428401949172957495761048749660026326947766060581653518172291269827436944070187518285285204421833572724658662668705591344104594492364444394582367256306058398981476972623818455245270097120152361403286803321554336252424636400305771531954976412376061650810018582192346178446475796350406668685306343920632401928009843540888187915939890452082050013275296760230873210059178276835170667182656794454293536025072864283751318140383673398266562876418344031282206470968734008033631633594043894648332612866159271132800485059392845453141591925455382651320210865656075071183617440761807655745521956908112736990437340932695768219599277989858174358250722315736803558659088083258663530850623804330663970107076436052830707599552596846517302609811098073770222835912398159510823664928417177768816715003436222034520413754894345926131331079837284874044191280159418918555752444630191142729738472194597321806581275844634780528376520816802556938286970552824991115139631742392091554801332238008206215791409283875020264483554896043690370495977293022288287693766220070431427963110191735325725021195608300078774294534267162635979922389711937683483617363379566834408174842437094784148453809883119699104235254942388986532254655732810865199674301664785104116513959467224993322052527431765844260270621321781487647370586899212753904842849871166850768689974053669245399565274812359501377623351857492956896944408115616807047980011574824421566096017460014893692531533693000619729184595502199986053565200110754285107926278042278445397727935177098834460599952714124454000076572829303369277792809168260042211717367927003400282103771390683453662539522397910715074460621327474374969816962714052145074664963567002309446560218908090485751046474776612766913168928706199620497585411617751470781605283358619339429168853755861216887879444684304356046406049700174777956881638343260528143967751493733475814862484803913881645122197202864238940571186821633181649491924425962900878566412531945985106325116145342866667839336922890066927108788649465091910922763699194061253501456536446863327261475862407452230329292393491060898730852476083477918665088650640524883565302543474797912768827895120048704237100386564024659089450284366076875687135777675264406656325073237213129144879492104630684257990948277702442458326309059049369867558609571831494759250320232471816022005297494268233369521465340103093086811303001910307238987848203678684429163972522505288893788965314640272354276466003769943786132449273917347268673138443986953664862377708830423053772078393354301436050048571868655005619231345988075156626284704529256659694546456945296750749808139716301930697147658957701272561522229995564105999014743847946624990914656677392732539817897658260797757943948874423282132479535397909480346245906399615836876489854937066963189412910650979238019403488783209252116731175057756726475025229957881392605120429224194686130491859411068330386292542100725514739588444181882533770863626509487826103312042860619963142740628066553437169745011197665203247551357327286524314215732806472341247307347937441164149178266866159690804406640988919379924013178836308460607475035545423888354722745588187900046673070020193371195281946645185419451981338034914972220397816048912187538743005471546024672793984431982985302751802843992737807073051164168079728857108469500600193209624751418877967692464762908725198220159014716583780431129139919911920024308778007376078394138768353325496320827967663509816503811515036753106664710776123050514507578656747651724017291185508671416726131442609048915005909912577192834054178390372895659425754359658177166569429816406911131944469481367629226138990357063859103052859442130724447111057912579504634008224256572457110427833556441846256427543489462452183168890445813875912518055848235077749352405252655588027607753759378548454628386370707441183409956428075681515593649765115773377099128672516781124998499541896743489413386125699093319002821409900586330071136228547333412121765313535960140290528500859904202661781001233752561922325756319588505798623463787163582369857071971906892626823717480062265005869668698403733063757293703103151039349241910142304147398006597101209284378198484957974842355459348498813487371117035797996098866095844053724278608008419665874814762307613647804116318465480015012072446840859444864208635652636900294759512572896029170866491522133312174617995549617668899996237080664082494561147849490259333427948441875972265402828785829289203000370732643997564094510347715964106748030373707520252955998673018851007160089111472354523231512271005881846130964768780724986908964339358142097430258979561876466046708159199357158581313159751801235585241431809827214943730131147830438849625326285507126601011499485832362926797297143492778023593338850358510511356914121191269470591475901667828037109415218826988298881045776845089043986970770281494197207685271639336625630795284535071461381398826714522414708496595606268765308665227493730075127658263826228892671279753500669573706838294738391454519883864155836185101869652465320120451425927602913569493475477992454727557499196835265744399965519406353649245060404659700614387023471051998936984758548461947925015602811176643024953747984750812975324342309099116815084228899179058441339849956523995302723934335235441332750838249666932442522406560867133280089867407539204496050229198404101604571855352933633922417438907206988217040915173103148627278250668399276015069854062578437148986224959645726378306972908495058351579877137982622505194591710058781576644571475279675290612031915114628018954027267356411000028134152106373857699561840931536839306963808473850673194096640673154171122440704716187726283374803360943106543319836454041681567236685175743983900078748147343986021214715064113151035058986100897792648167296019799931923927370972183131936189678486934504432221989571070500319121766637924382416197387607289856158435328175606214094792383933974687348621156529277865087492429920016819184414722777851465817918729730886895989449622664911292416231359948438814715612528639586295653512007051620933187828806907285505125017545676232341048006283571878573746397232573610228517052977940727448729756947208078160013591035348522086647884427431193706610632156437467074349270529964445142160079499005698821842937060648151171423854899082439915654151442629465580477653917687278629667247466074350655678535175659178587616284662320194600113426563021550746260525836748956861374578394662985762107741839849935302359547671817153798361626839616286167198794110801313905332531572628695449350354944031067558692645298477685650381603980052804648392479131142924893559680864128531308399808841003489764264920469024233523674297576088203964017810644033211111301875178663457802130279070049532436939937027460524272076786174154106804473165326095815359126161354030943329315943130133659924892086999338569691559743432135353921856429627841950997325731003242923660216501973375322877192015134280046838066694937271858920772921895947171392119602587756515033677772693882034975954134161308561209820286036677371537192574690423119421527585008747022367318399294218247352742060343972608243803854988874350060041903816910515717624648876902508873545263356322858445411222739677257456677419768276313759244309124205729359656494529139965896059663124338454813053306161043836671763708853137266242325308921032334629271569152769949994241643616111800263181090376561860142389379229859964042745590047645203266015049603042932713789689084573431337668220493851663833066167230537779873945758510528564801393563448751174946840049382884072781939714864300108367533634937128001173768129048158738273651573515049070591047533446952669488944455195333049095544866355368600147078167205681837277564338823112903495036848515877188732402647823793571642087208710450349171366099561733740677327984074086025121708983771583383374507196366343082564235435081841308256956144271010254981522021599839718715310344942627510469942085563865127453108157271860699448759567814666359910038675168220837969369243882793032873883748662707145168136774443191181372340389529717277488868894693208688608788047595394515819680785797827110063853501978041738532248222013075685903716032330165950237338962248568754637236617227551183467417358475721863962889390773026680739580484420805966842517564186054649717035018949739076338274935701820124910823494948479297565817619657211940108052847511958507633229596180168048505993785215910506568901773275196456890621805074856056392003446114185644862614441018509880662040239830765436880783368673972254411154130357481597693365553010691941464901062978848288270714969713844518845536546755200290382276933994245101857027098817939699944793698320778382453514148478155397046646956308812230009430145517001219667339161912332082214526979967366460538983184065047955754187932443966010227542941189818269490233189267148608148904915389859728317741145824528511243155730601336851719767145721204289255357585003741506143292041295455560198814559356594260333405667754709436629667425759442409932256645972430631352537003605651448687576440801994477965245337068244850895437351497663118793947396623692814405541293460662279484166299548607371327485565640423352133331253571554765160197495107808019642806011797414588985688240333309833262239938749832996576442813906035766842557250068922854173788152437997286218888342975326235426572328122802917113910344283667700036327176999201954879842951095087803335044087511395542249774830112360753931713257478758704196421224879237025979786053824611902792120088628078908000565004520361689460944203072274712189127239401162881901316605138093999075666273155496361200560416953200626135280826951984175654051580228904379464810236232527547532757068579596700677781016108903955238205760548190425054681763404521718159650088327902138085309368280278351347706763568847899111168978216388654632682815973141562582166324512848868856343001507136295637177380383720050455504331075618904090113028827366098491843921806797566328379386786791172755157693089570882527245329512533272120683808412801567839584346807970074475744395616268981586096350032460728733476384918327213984228394515668180400231466519693650197217247718520882028736825982443535541518456844974678584872316466396312496277306472389507174821418210885369810184424183876890554443202591120026691558532978798896819008833338952421307597740564136313674303766490695744787012225530381919081641136121148110441395308658201050522830411198281649414487207744436026067885966001133217683818846633840658004010403953212595180049271225030431259578412293472922179917297486501769275168343704341680811401054777387306433036742039555348317508228656176539875807833632990555153689406856574849961865779135898290484520385020499459425261146909180620057321755717443909844378682702933668503055768459341477901034614473595110652167933254885261376256348316008694284967949922742447793595819133473909286577747155796278114929799048083869332740773599419591260899121094676194489614789724757064900726360760989243069246103373557122254091418157664119213266434979189254784013786131618825390671933143894291670490027297292263931315405716310896751117577149471723890867886567578073299661672709855507452904314163186347924263407457010688996418731656463388564902895730941779982450732182285194644610230731640525104143313399656092035250461358007372687354130784964858114254437674422151069217760720523929924301958326793041938818911163100745309223361889005323026340878868231779671012680265782522217741487283726185564443000191161866016039656882357096433280807326847697488951849391645828860676892280565157910436978211257486568560546818563081366801006188613796644188353971864812461441152826263887291080985012990047480645515801642268266447371882031957768759477369458410438342587865725093395270987881535900554718511653896770782966383327670098434979888310457591376799734262042963778056825374277099361579169275558290608787752959354082905919580929433885062060075085065679580584702629053366167579105801347607235718445062740889804402820210698421516938434128096177346546916888098227119206718194876053140125438686414986909192905013867954550320073227882704505704888124280661090820420788684349679027585060236593020872378843322363591544263682099915903934967450494132289238255612280194328015806085377354535878494074491503114966027281014049965123082912343327762889785094359327152882600217861049318874707439495557646976006897743103616353399400869143516493739382527594337875245830149798361488878051076080573127801778792181370459807384660291619732393570489023632777994837601699797225222556996081408052471673908681950198399962833214575248131304073309014470219852434898061538551896746957976635063632002560349236450170529775823480672019197196933879330637134146891136062406122296160519847465768436962011336466910355892477335613035321208698155445898077774728279867681438500296316129274426736246390084018592617284351506740830680512141619025806971247616557463627058002327760962221937210729306447549051004203195063422470053568006064282760903388235759222235272298378364943986220534813359552148983122657629925122637080373919956990586582209465274332145556784608587799350129636574702306348023225266392719872390888805047886579455132484818180082080262690493317956217940344875588166254940208335082127536496431237260987985479740646612483743236372904660169676336300835045264051168320345015053264031069049602079515395233365041335778445194788366738218326002490971661997649991896374273508789676176784048369502783195001078392515238229365326972071597699861467174573796552767845486849400872707804788625705524292484012132862533718535188279645590291073629678722316595230855004334582995950654574265598171800389917791691602579193900340551874592629585751783644772640539309895748986812240275795817797475702605088547422963414915921123054425286780335902015743862372848344872028247172481702604900189160651659497753120488010870032118617460408751778811218376538407711889167745777152437054552426176070806866817923796270011256130035965518302529154602846550543410665508890269511462236594060906635856852825484300780373390519122724007326445242927623690251873227430266146412170165146466622047446814045176813362700841359008620330471713419559175087128171471627922190058885474694330506719907750196973692931152227504817097464431989148832099467726366483854963448291756769825003829481438164246765839494754480519733354636129059705305902560460225551288420840833633444602053843416302260164301381775540268848503164654282417411224208956402492740373401973599545591494908216055548668656650514288888962835595753410614398839551175377478747963054359220966995322076759411644017656302407948380073391352743480331992656869057406670913593786156088752267674040238991791300768966801974932456977677234911490589844846481326106680013781025225956559934765697215104446402294305327760679920529285758403523507173356122308760418831709392107260756380752892066199346924365036413146888425426709678715345895033846666782028061539595455323062718731140253658647462324631478662993391885083990281386080193439898505338939561532742610854495643956265270755401616620912778456874781042260409970473009832135676799480209979963468184077474371047357732949994310442910841256289699655900926732529231081728599220760006223445261662256269494143021876307124462081782597066813087944166488434889205853128652764349280799803644329991248291234924036544345684699041848884426713451466993945905935650306975398413556714757115978053017360777285035208181113947308984922238633728157534461540708554102160698979747159717273116605452172101547202052913948775401023985349827118588746949024100337464760788177203977590057326064789360123076409569981111613745544897402429344192569786781858916292473625707238706651338461035758756239890460523115377517973238051226813357088242397786599814205069741093450463361853881528657138856468971284029423907834138657507732727781995988974006596067362677963625573375543619269159416161329700401894085868386578134556823235664125202779262658720610902567937868143218168278074410031644746377473955343890023372750066881245545744511701715761030891090032204814664337638452432446771947031796384925792756360173347381318254559205505039282895221087233910360366846578600751627895976853855164788796963268460097906302465646092791573223713823869425495045224136925070119045646355770859154001403247545764467043131110861086515150152643796144880769287101828510446937612693108911662985797290636408797076726843390153641109949609184979488057324845134968813222616553485072752586963412535410900358659236179666141228512509632102977489586568456912295671804827446592146549115456049063495634865390378292216204679075747283403819427611403545572800814172591877658989925432478809728176550440291359767228183011362183472698160913985848059224733358366690958679661644007315743848879738946483917347441151593613448422137109646734241016678864241004004014114055482966190225530685999795681360684153826512367864204785853257016928512509569768503490743664700055203049727981816882856783285533332783641294102276871862006303930006449805753745965360711484338876166068169497906236041107697167401833614242570406929335557021329743552708573526788572548047171010411331683116933405362219747115168068785686597638118972362041442571982939569809266401338071188920532687079749655769928001595307980969230196226470830448855632473642444657004929967530746114617680327612026336137640950308926685667079342115703629884485594496454135260153317769511950433865432928943053809735603126962106784142127918875070771480595407390887527872177176598623961793103424437340773715476547256575054940477262991386845609702247294494983371075711562056092611353553474684005978733895919135781661784194648416384285759216582771760540880416272860651653553721901934857230590853920160393591156957989872730146604041829582808925394961341989225328958088976849826155913916896810552772134720057618942450443879307420595996308864387627001794187746735543571197522017623877321224225938890121953678950271399253855034975190166425157914150529448264324162974966551509394543729479984945151575663755867120163974849344533311012005737874726752476393555884673080905288930032247312553792807200184098488501858037830571857592877209292584973300968337014525091344164470244067933589468781654184799692036312016148238266699516092184253133817137120845806854038926566422732763831300368887333165701544453907311586982644353391274538004563600896882087012133628700138925394757752685024482692460352006759956065005233103179948080413841146135076797400699694423393121782658790461004464241272593837890240031517132573801853937022205319205122225097766120710702883849641777633806440771879112618633387426932333128092049723035595900200133911148437268042377389512715530147289563378544415631461462914579919440054381009052227742577926370900304513381051472076433558719824831427600985615917451012296504620065456574457780805040692765563784563611485683977876746373083140625437991002008329316362859764723068073882504779955545214468552685242948500736339244447430573572434061762581167752600517655279662961303190005477063042269136141586125099857662095564735139732802507351500523150593801908650556353965638704095258714422673134838570013658522206585161437095772827270667353951298806303415484998065972680340377773008351473968772769215900887071243764140719080270204036069820384728310422364885028062372118998616939166915887058809197477209506131879184060843474691413889385531695826278953235888867853264137143026468187623148805852573623255951412273540987022110035921561198164371774977642978005660507118270385169195156878149064958806912032585123285561593935302398961050737966055947243787428879922015939511059266434256354179395715239988767721964271216290332712443155721109006843500995608675734226662996232159282201915807516708117952202589150994971552047583573606466967014505813236824919845605420115259700857403088897975303957290436443540400946302990992786362315247773792109157388819076651611420427421655003351978372861817468457975554932668459784383331441251078218843575966875675931359722398403014379754237109886003077184348912611863544929831902671665504422011700094721107645667937392425382484153776029429768461344596793083574197424528979482695160558601553152377941147850733787085408657718488808457410493845838620374890793630514023011518449814844859581121978939914769563848696302141275769860050090024992872879615836323467556999087244821585952551040979757421627246279676155221515587580488745788179671066258712160089408161652141556522147865032631207118436677326002811246426025988218762683165739799932772265397339728838467533285856223777845211238445757226387990854325502193229781062457579869819691588308755570935681809297715261452531905100009076600582835447042463611572931251479071817955864065195392944065694355673550990250099257357511987255934540318869651097525821565716340206613002851206041489949462633827943484923155464245851930835660350166637815506279452489543279278694922802117425382759438275141878195072196784647304720770114602316184944236863290300781766255872737821356833463968166080689166434029854635063235415944365618306346232813335947118511093378037050029271012837962134507207347604477632968120543138159083925639320599070773043218309180393384566609606737439070798262753544382226182297759161568321869559387283551102649829437756578790892978872948832846092208172630118399777224961979649643735346537355521707244270648544623589782428510703402468315046562484081080063566289223634013464674629375377218851734283973598003397492639848165178551809767290478666253553993230991744567312601343454224868315131586222346870745117761957274375992319724177336387465751129958180265250449592144697939566177965608704183223806162543944014008867172582864732731279955640833378355412470260665880045548619018370042811979724098669891699786830673004652798427058025418269964599586975681621893386270857990010751154522423544205902481596692514043702438470108751729078837001051446365064028980218662053003841462257325419450813374979150155251060423829694233157864198407928860592508387627911673124033385330072192248064502172298093058388494879751286275877084460800944529434872956930717878561372705411839619948232972471303319291015755614473580783519673224427289997557649424339040128057810990183418069085494184316508128986124977150881114412399882274318604774152096164512121275263026230692969506346668411625744524533431845274329790985283088194276173605073508784563328948355375227219620814089661054502243533419694988951508115155827019277989203371989176479680968685124607240473589904365680507790116912125805659491165292795507753642547568701161777181835768121288859815599438384475477553250526401066319943066318439547314407047083238086410562889942949799424803900854092870408125612836793909618722563607789698077725106615045553514334780046808075563642424944115473031665440781271799055398690649589747038033658024714977363261187679471713511040121741522788379814645724605620292863281811492785819694061556137739281788129920673583090388975997700792446726127299106183541942054490428076403744405868327366471157666685673687177052451392856527906176799918462155332003561076886449839638506021713314351374839725542571204794828574691250570745539608425636620706635311798335422049617808996722698565825961617705494411672903701878468865859147644090382922180549607248776648225903172034792777147360083909247012103526342301447694105404717336917112001117028403129149682002291405764718505062591740070700751602693406954269851634965342441300235261374540634367718177805672818347974260217765555351636724609892541969501613261133912078519047440257753211734047361946708041403860077694880565371950808628571102205012994086423927998664933826225518149925604041038545031342548563104194707602635088148895366477454406339300485165593620976218095551700558789534590676836038588109890492990535673735940830243132979393163362659188926503656166600245017761370932748195062160926264994589107582346464152433153004961565941549701989193060517068497519954745020061968014341382979811264438670267187655103545425148726958320856783970195599425574886305066604165406341574541660096687482628946900186071810208684895932492250904635688592756147236292446072833695638406141308543499366014123045963198277310024079503314884642765477787586148971989527306608883055322765090992085459904316423733948757051255353067643417446265144745727091255372555765479069438008872547072769262746995432246718215202175918520457957960472021991215904950484379215849788849342257057211928821002302943886127284538033227384805459919498826258466537540170863579057646525848081828070131027686624888677676892614929514712092592497021856335504389635244693549832532952302603484535688995533502643887894384363770172125214474604288354065839081832784580490833613507160363854178755265564741321475295194098425067863598812790717888101198174276959475616531415772710250260172739941737280303127104138862754520649340180458699830331875515675829104746699644900414290002250053245245879772388492955721662582757258829413909524779509880799490650704736297952770638147402481003556066600551986561825689455915071424743875799154987381884089764731286403997230562475343123701124256871737632080050917795381630105406771730515978653126875053438887181016862372491023430621543695437591614809694740505238470835958344181790116851762418600095660240326726955039367283368234357892122266304779502641682694670529138081564541172995452962200655151157678622214070271158165174688301553493211039469599812385804737396978685674694511389174142219876692019082313247544624623136956979955435166869260856013874797366974829143700709732665803037094164861099932527343671783209421919861014343268868920901545455861743769049642684497542634344700883491437706735760086095121941148051874691428904905980843973980476261907176694927930786666826187136408703163723027092374818546928845321976345565512434058391641611304737959730964843260782313264673693154628823123444176884938609489744844176420623226703763919888232622124440495568337850340359205134880012813370622497611312893798279450725024779209834973948985725714110165640708206983185768227599063269509956804901833144858425923161772186088176063066408971820848152558576513855097818243516728227849910720400286757907904466335127182029795251506177253340668949889564247032692301539982090039016627522433818442480858939529365258253635658584175485536744818650289245188206447853280791296755048655729290830834854839375833346710190891206711453695517314092946182346647872528952997420402127635235923293305770179423865225963240694027480604128803030924524810349415827359324438872731093974163488960469581924539515134104343399838187465097233692635225791472454244401326312964396391209607800163448511991254208197374074460458997421457310423136445648650193780106352660374405656882386138937544397351681296831567911618884222251141477322612331396186060803731103486926609339404384163003261434492805082113157573772773982155152228650999766243258721393393445902091662272905493493827178205126669021149471923113809338223112240995883722463325012223233789689526902536626394126701031732786498717025714961776105155492579857592045532468944687427025046397905653265531940609994697873338106317194817353489558972591513361264822691254535349157262088742389645790241519660466280327903839200474226968274284389702634562340964958786377860034277270965044315722154465990170617044602286135172668555795564006990807192646068350507158823682849408537574079562249808230547479747238225677012403245011631401870195636325394983976919350650904924331618702278787610316515256296809189356631213088087869995887715886106380575488026780739568146082771093929410536838990181762551650051127855898364933812883284573915801545043703992370545210863980687169169503029102659611117415926286471873514295669871435687166283073737562014462348009621648226933117198240848827113360006337626438931791943297550961105829170157352376713249427586257041943389965593998391922480725474757586662281469571634263713504146871697273702928083949463140229162019263689283204058078917445102625364939262135178161969075788247343755061419199575718790870003854775295447916667551864297342281780185799742431385461002036684428867731642407845847593024225698634143868879830228538547193610680320515916670823899795316142415093500768354053005085014853691755637072218162276509420921369233390237370832640348446406589596145495081399442784060131924800693906208813794288024637890356545978779720041816849510582388806842462429936017807715399564928147578246326445422090320277097695230468854349699521472788650622106784351377240284871837788346653896704781217216008169381322233425704535725670035500185198739858250195329107549684980476080093889102115358363347589124740783546831750380661194377242553234320433034115551802252740513828613676804728698915501777305920725515675389501223604425846293665881782033371493981277211108128240689525843132941109793942097717182632525515354154444279165152575755004729646427976679885189539799469146374869626480763862316508811248808257763082600429287879152206359642391380754708683109802490888506971313138804232593265985172099937559151880003703498465669587918669453284021296057450064428658428287204978689537843585076532612797299146616445830344789169791986075053159243937522202162538873045097485633504731701991593419354288184843387250548931562573640056258487249124537541563134018981031236452580743004596184438801052656641250595912575448355097956889238205340659219896073170409320876686358749195940320232669946925012415227268586580161747644077808258742284020771330801068551149292597435689450928940603207363795160108083421431744082768235126751562423098188291983991381507004702271952726593402645942010644461799677109830265566338422768909360125218002985498368873864636780104178233264412748997709175980129751882388229384143168804672662666155433476869248320005252153170817388565700006753591515535700393465590811851361107468304264505997398734282587524240581473048903571365995338654727633695183482203531414310014138063989348509706334741807667737218001070057489539777690636080798370242998898055600441049560674719538585897424746367041309928985709931930656732112842431335647668631989507293101066805428554544368906467325985151780052491372767177633971606741460184078602943214246608047336260251153424249888991450652623593009701392564198790580582636248384994828336375440772790360966927184970821061114762032079855545208134985646486545941648202212284159310309797419733871619606806413929667151835556448179499656260156664154799328637557653464622268934855055665496572612005220542586531388190385848299116893640900061215120353602153255199491064725997401821991599042877735169743443716754968999328694863202988472948001291713566868310621126455960359013037675519819063087901408889305793184045762035410578898936951710797073299283961113217289554486592504726973896037666626219756938409017009537381358247779712914499972301254582055532896918568591784907306735548196039273257707882176644778931412510571257644934554696260535512008527009958183461506584426831045348855054333446450707269300723902413681692437557487879351202416894943155540295102921036334615645594408788875701679309410046330573442049693576585648059000839563912364336285077139524638297266772142633862530979265876789621822608158075243244167724067762723831847558553797431039273097813305426002951969363675937921153232642238388049741250266525311928884432778981067924455446491787443060106929034060932469219263098693996688587550975351595893352030085406734440143264350260476187550524969288363940409178831019477300712060625183217415951391113859661188868338308242533393904572791518053168847462014331784267243092724281409826021192725555263274534101980969929913109331338031345173937299539833073839870369737063054075736841837416043081703204613888274302756933126223484127000418056387952176092433799000893230619791916323380724638376898880016099822929348094159808603841594895598017317492904218554621641400780507556473624000278654822300081047580215133944846399199014548155383920684461931187919644853050460112609846759367815634268229629478301907585281054243027217386024597531249235925753807951270001843638735141313338712294917921729400037563777785607291827517242470385977055984677408388166538224970520328089821934724774099727287329817307721829146854497266946512269653361357203505002805398084000348713346479006806791389344972007942745972677986820619222710624896950101034366634993946047604495106512601261823149698331844909195392209381201098976439813449698492761065651904742407209108863093752646518770738265677309869600473571241255013233134275708967722435934845981096720957408841707660640028023335333983943125416709442689058515574734368410048185171021350120283121197211059165244187577519705796532748725753601114655675660505726908323845887460132900625912241689661573585847573524895074638016524741852607366801260215991498077517202515898516289634169362666752760610184373443341736852761052995937957694287209734777353863161113659072293814648905102250822512743352321702357687045123178373210022751489085936774198288182370561186074663514164431108640999158604716021725024395111659721162509480512315998861994200109708478217379325154391540861153938484211339777387361230375003935062469667966693821232505777091065205700915824576610909075077173259264792956904447771133660660285565123282621153192173481689297336361317746435025415220844576431694371472723744485313815232011911434537806574345630376596702904386216650619874435032675086171291565728289687526425398666925138090885220642195736401500580251477750236519109026165138271763570587657474097118933492713261606243170359775105691249253167157629767359025820266435533423743310598726261701321576281914624647613820479530712451300018183619377135653993886673064461195782397571771031516353536397845733397409015295782380341565739523633857693120647779248961432313044402716281672038863822927550459250174543266994198995463282987818319405587510003665639011237426788236407762009160272112799953564979075369715304013756543853209631133642600674329439205935469271084494784335637766356218942075921369934792019015697697885296816200526679626950028445083113336778148472066926676222157339368590560753299037048859168945208816050101257549172338687736986750513070529245361266561343135555889284243421640422119123961915346478787283342320216769266787941581733392266545665412359613121653900877380907163212898554565632945639807302346400539177332116315153807187926377637398132249447480545842348881074344597916517514528703594576729890501199335521761724632660259585264151953105969001012813790243948122464533968727704256330516436739011133879263523791549105885354474690797017635442130850755460720849365304577287164883435621824614965995311072317969851605981811387330428844308148774423622416537423339228191767813147199292583256572030431301744205480195779589352334273080384116089080000696487905947712632386656359933499816758506604142264644057938680095546931842600185859861473746174027339643536089119728701473502693173526965668763788043200982151801917213767861976350209118249639841269062284072526998992350676145485507892138971640449798887403485021884345255452606383429971674263455611117488871122533347722560618748635672590719240129803758793917249860903279314415610635807098291398075116034045388040678841398013886778755314616162924396756268500383927958503971257683120984313327608459469189345404829520432585094653442308677411480755874493287585125665538451338666412577426789098800484961561993095844083250530064589500167235356295821955018175794052060278909496265900359945153681227600060395229285056020436530672900205418013805406933569510635483044946486974661304706023567907294598360043020110329605202987560022743721368311149409015396230666384017436348493940250157551115505193390438977865405455075074873865163924611915050031609894679808034486693604147372555282155706540081083484236636345755332796271630349523057193604378040767937605598204931225437705224186104001168978002784523009897881297346849445388388131913943844817933311260066323775008822611198270873979590359905457949193781883467505158279500939709334096504951748242389907720037068628167549382606852971472394379314553648770002433017649264668990945416101323838765175838170010862098872477938791334912037244805988031163444635030787574363432858896813029592084887360327450009428628277253460978074736448286820384669496748754510841092357448116345194746249919263360548672497640550745586642884960065661999744088121923880347950497379933226098754905774087740809353220605032142967315649262899612634154327304051969192610978307837596605218287814892262223579029251118455972766660636828033330365824588549174846043211830991160089778680250353048484739107712479336606532975227524728967333518093987713116117210317404835974416730932477037450512754567872273526618941119737682000861391657797975306711660408121800701045784610599608979882166126391224609778286126721561490570399331893246870891272101916401225813356692300380517485225532865226855645331030260473088949408445307043398337938647468858497933307407308067817429721568945824803040887732046191859565612374230676658178498615611148726161967109473287015444556821304037556668712174707590675531736599611997738308999981018671097145764598828623549633657865692404962584956832971074834936159679743410033086976693800746435748584049160381778997198076312761755604017384140993130188763071593703635414630630545128309973070941222386196788247557132063659652357103243841978498952769296207129688845139675383843360633293456501039267976781613372306547191200591363163407801232454137717897970101414401788480257658870985393083714005529520687017514150398018463803905458122373399271470334004463192652772352887546077010934428962585124032914740993282197071214851489379246700287352086494740782037698462382484259551972998268797900193886871788066368226322798835096823544542442481251820581016846148653911824542126722961175394136112231325680318823051633999771308132726866795700774605068295551916311348654842601162926473671137994159852185343001852066408771659389336418041412194671208265520557835759620070408491632255737955177919596422585487632849799767391132122771897554780435434581737180322702767947252413295401365978145737021938562201638509329658794276167822920263149295087927492419912423332316107402416547953396712411526944280291459847560701750387497519678195493005998032541042598574427902661551960547085319965440499521931742031438862799059871866962274300918751378857814351058022997210927756397669138553622397397635689329240757212667051320540667472796539771069072766305271466665838485841509753334155486243541710846308323443971771913569899431721138606409668502091181644944045929657630087834312310479038210702099356634652154985301463415208164343684899786650067909990806885176123779006795512906888134359944776795628743665162058858993434587171817220457437315204362965745825286664654714538314857862180728873801684634700294647157554701605823868362957447111849594627656076245237233855108564461400120576395941980265979281245749062280837007276720386137574228507406710161672798810617051047394705912284226003986320285678857882062832673694597016288713105916215233175868878441115561071610532569837842718098923235151036658394400181472784470338595319537775798509960374266100679851481487169615925214604650427227670412456122774829257625795092974671405547971989861581821080610044483514934058716784581697054408745286155001899252161958325579417909942870483393798260181445233702232624110955904122830017680586196383494905473681779801703897672256869903882617352590301894321672817052657140521528323447212681425800956090505855672332709603248996212137302161752348500619435038135210195662459155180140978035546015429114086185513521796871767696108896023326088645120726970485469512637504025288547660308466118585307935561642752410493895748774138718884771567965967998229964383450316488549204140980825978523656044993599856470716449155585813910847118470011635459907327054099576226776069863842369874951959226325694712082188851361529395709214299540437832176008205913029509275745404284238814314814692111621309153242234531962870417977266343506789187868227844570067017905864192094947400901536046717317874193068949597359178445179674833219915399185195338860798442028255923075472643710795730350156704434088234740285905046954380629430351633822467336404976077650109928634032566710393790002747766233995510115420628171860490939962508009663437856438237017490150791186956923787176579552613505543515598071189152548224094600370336092472674198431378864089620480020509253617180710416511151862743381992417677449306770266826869076702426403052101278564251482836917717538586977773335964484025399275702940160271958553883263397256044913973883768343741333175026252317599293900932712653251986986756694021629834786645655944641759516863301449398288118269649830169260156515695346701037626646760826000576559138346874138122936479366935298034396239634625073861673666758728201496620953276738901735586867007423261355097198477117877659538890205643303825232670574827170078429238575798177974885073032660260660828409649052194066803264032548101375645809547807367263266254680473734916209157326131136993220298657542671047252773591071638355776784323696357222366930885837065681418058831892851892938177849669540589790932263301784169667837293597919055677951000915031794686813294907902450005574596909474086985830096244127482927519397549694833990857667691997806329533308957419515425159957108933630853626970599647574840505218965503444391735343064773298228539863732207911377077947502637332364896168782158634452603434753311954649303225956649385033239933650704918386169371667367354427443034881834566047816026568532312859274836931326176333085074645026839815474171392960705385881403301284508497447787654353937188705829457607172494541385211565972958571013119996058450192397133034422828488992225394416544148475121519004937339654088641381098733872162219806216546851202502468098284670289131294324470682675181123458158703046864364217175594231836239336352454061842886353873525317860258401373133529148566756687224142915718349930165175239132457007110618344124995750467588635035219044029282716404871377212306522458555380349770530972730499840037767460269635280400976008188852187652287406614097651630588386721768615512379604620502041427604461625118832488791488634897854922034197912050069937775755492026612568025356344970621261126224160426222792776771475273050764503969298964651531495246419633707928244113857621048713587036954179387519461313736575637133915047540199841755316450537802190499320750582475780690697500448747996086793131568533092430443246787380051623856889662035098880030112364979249982781511234061191521131430638846394483100078770826414735055951274058555857492345203297339485414380460759206545260608548699385446370357842684281124934038331665429577603670019395945836825547125223991098198507596630932659481064981434536799073180770661483137564583169512990165063927854094892131084333971242414457526209986825807764340242944968464809081288449458618854613173785319976385489127547237037083452963554282461460068486027616740902007481159823293884555070377014872966138946223321149285300016384128255028725043330174341404112956120664619209860663411522599651049575380642078689556418539151828121956668739976952379300889257898551834266265477492374500894607205077440111503629073941501649686276912213027015902236409591364595827667176083124481081489331098346573053140893332583405359173653599326750075275506155200895983451936372087918655038000628551560131354917145931942217849014119308981969761443598353678282571357652340262214365284680462452195952957750025671448262229149189943848322370776284596361741021659687407515487669128747524573263886407963994987569162019165948889760492462644168351912303358677875886687812521966748025658222023623748568155189145223450118122634249573369223535632879255458700376911897771430911043136821329958347422082182653020710055152128930375008192935409305096854842066307773037609955870256093672292830639364369655266321999595083992280876665000530046246116833664573447083063462016725290068146501415126682379550975667733748805957015902021967585927670440360890890447708165403476209228745556686649363094223936581528596103360950516429932641838803632939789047838586262587616900506015860903817318992928353678060148535047007207250475487580952278900052950496136605736775564205281984000441105318320668370193372363054247352438240841050474765165486302271670473438625500378346635879343399354178976847540624879285944176667652684604775193649980315166284675679140223438559405931072566336656233157740436251856542529194197154549571771049708261979237659364188469790676854893978444735670015716941286371789422382791137461634751774005564091086497403992615256123965152552828063030917616410493723285624529878579722573434525075578352621829648756887247131665318212081744889181096218785836313679845145710425187635580549442953919825692780089926990356373792486055099381065401279538799862238567789943910179574127480597591432696436266962355080355165227882053150577933427349222362997737784772141615455930036519514369425175642562327428478893785822422815659887724751744526307772746000475339967407423887032212963792107776796419240158221068099276436789455519335396106035908573946451679482491604233595611026686482856539351373183417570653101423676168527016865484099492376024246876760393121246596711865833133132994428548562611845143218921763589450992670491617527087807922313482375870069256453168484947507920506600541090652080460971455244706788847739881668961125673145695620721681224616959681235984869586824807963154294218361951919380943823947568668325036008159904729923725718045426753372961452538257519519034655597809333709988711200399595245083093365868894699694511734815631624588833176033053567459540624646299513245964975568681434727583714190004504839582002339095202928666315597608641642691836516642449424078772755368027291146160242171680827622316054229060689898702590218415707867270484825994670978983220594241507735230437164815410399151827079208205045808375452586594015419130236227027431288964164254507185973618819128890130592604470608289100321554937795842095059791574610418634967912803010219703571017646447689894200490725332560523705214229842127351025254656691187314122767024989540121866680944996263497448524785295341856750804591170678173936657335960977810522372936855206303620956040647591999402633715315381143735998581140300202179123194523385592890097560596216911087351470409669931205580254225529895005618805196096786469652645921591121567019690495008873494564167942084385195016740113011106260530633332399818577818204002718438473587816594666409735586063436166493260402819022045045136846493776673389418036664550421891746492085573608470076289788657436287192106318109160301401338816255628557923582487630216545526394732911583026334856197074430585245004433567337418787713753052184101254293830527113177803982671687657174791558900416060387109985826919020628113997375918817266514973804752316272195957359774461287401092188573216901438367300056262355447156654103006130061788275458117877134912606088396843842841160217641130125196766792675999814194562117119734361368312115199819722598402418401013971167086100703800066227895659798065812559141035520430179426308974128848272618303640852861106096894682208011066501370315855194493573168043922294295619865036662604685170798298855235771136902716685998083523047812898155460883919551781160317596878856032796233154003558602937977064341013172950461438498913577991753828980702314379023270466883498031570979418603092575258532802000974979369588953114090779348505328753235076173644912242641329210273068335599859547750512859440800293037443367097382316151411027553322087520960635374574940999019447150984793644817714877666942181005807105778308791288178903827443368379674978126172762783585969622273217230157792933531014639643782304979875514793411655873772091257409292804017927443426648411987313607247347913646090038126687585339574584337343841635774630243938705678939961811602502702709441471202435833359419817176597613259303039548111122453255178294938317766137289067474809241716685918460694904771822214086412096525113113651338391747306772494926539644757637578184597992551697940865217862776666547721964140883340943986396472385215722326857278007200010970275468720809862506982834608224311955360502193532283032894774730575005716497434031135236499272626141724177291603954705253064934816072144247349690754955865307172083824856057452858490899252865224846062762244994920276880815323647364568087617195443098037039498491442586195304243642873210389284237089696991542537561368243277561953401798766589572106498620386790152182837948587717675776276655368055542989619448790179954036003356871127323358660194982370395675327524920375216924206169901078310724958528663397420996962704137599080054879505586998677202306254441965626433150745539848116691759139389850961890608424794986443283690307141653026928284992658614038671561061008352052487094450916798675442555191275927756046882157587950685999078226817875335895825621441182876336553579241272878296545245355392347851402053898483955681426420827277963219844577082831503706914050198720758360882741365397138268434337288096887654376211600166637240306356862292574876817673784413368902821020249941721223365744085725037266600327764087797092006198194247840340487616494191295867605314420754006017192065766824891897820632884197944747173847949620871066733683336047289586170512259269540277881521367130797340525920194874278728875734636670611040054247523187688454142052585344066916563711790105197383736795561158925149648661829494661699247672008654912761008853868510089164987139566115464714469820743883843309893884360011016066628691516177182001292578877861673225970306927630611188664456060662263260458319322341313770731093084212539343190477292438677816413083824482483848530195980507235985937099326750532874295179534257948853716688777828712079916015211513449447172159436618711124587279097109024790110927219881391674641944515245908355426475679947652224424648706603536620675397110106447228099589261873123550416736275098501629036975435311378343267846052121056646373951932709956043673116851896199897116381119559171554284295285370275904351252519562302091236646564575500618831432629001345011791989849515578394482804099213889352129254813983230196549775201269696156642418408230544669018620388926526357232907491273736164189059671511869899270504781058965492319792964479058189958687956435220911344264048364018676547525635740585416561734111984798203281085321839479488055025409103472234029593379538119519398397480911307693473902990569792945428729502275629795314911457949105201596092766451504550394398582943088725225075289416038975825458392314235321149157615556517753863630368878386613803798981222213666463472700583373258444621121309189904244836908295899958212382387383298193656461667766127286599813454194898109440950143932202300988043870290070845631078904886861400029490502961972790351296953456360428789981392938839292506190893373891387781126349429037227768571591546027861529945724034468660168764589198347739594830027554325467522677033349251033712160377405013788018212918121386616287291734903647770770057018979497519495737798164401360186359883411830749310451842019223350798035672974657646755705281994867293702405972571522158917885780853274044838370341956708270359152134814849763204046075347344509356438184167199085020020997093468134627942183304319281702269274051352338169481450999799873812231910624873581055694318288299772511448011215557523666883995129832116164522339788896961508213802545165827097576108999267380814928415692008366389788562490472326724589721632800707873109960927410134394012496384508645133004433046333618911574195711704871070408993913340785583991485618936899319956128572932316702888717090027367175351159683552009724572020871049540023712750674957753277784735241234310734852759068947695533606278100597416611912204032881789948722270357788808143523783869146289841928249605908720130912897100216726339292465659270576652559963572814029573032239684891748935235249569062076865762946805006127411903574858459742311004606636268201100724018764512549732438176302635334318556288006908699031018428383116318307212869425171481919033556781301516107412564382096585231196406224152356781407625826284020521432787226953537939794242938012766041695399064144922702442929690704722231673589345911193333321615309592823062941173421711573962315764373265180175431841822856693191680661788775771639798625091310776509608669327225940222561552557433762018850392001485733437806618125127329650696539985833066835135785721861192171762307952418020051433705443442768944618984944585555443551140217816645174058865348997823119106804988920379338401364742262887416921818355905699940173680022543940708179214215137992305699390118187697598399868340665074669696060272397430524933687860978876267522264559350825897865542181082879205174092909677983678944981905050382611950448114118885233668673271581530352568510387296960506758189250524222645773274162772508168218532537124534223363638415858650804489142978842974533051470933355802086112087786105650651907294686056355840823686838092175480087177926171683147528500593447122168406053205972963044115418626868739346084646533380348062196964621497112108794622502874757305716038136199705047828133032302537522059621990834958886049231207282185827709334035839282833592380488263358358644112727555542775153321742591678456930777254035785406134051660795558324678829402634133543145613572764612384905103284096098482772673271565770881871912489501178874298096345157371054327851182115504672535472832382600831203140703531275357119278002868544348758676452153730256999834020313542927474040619024755216086881205488777482340564322955302188065755454055798233921289908294767977322386957570270683384135401386139847427168791890218867780967741874110459704749047372213025948572402597787543623420063238784906896176386682906760191902372647757849025484181534163685684418787896662532985076091180643678421109592682515364618237427799543526623965283184666952336339551791159718173110434626646283009338998041281532400086208593292745478420248285112086790161377652689014308304425041312147713946176405182298519296480661952978794375574852127158697271692036872545201227143915747644044992209300711894989609128948439953166898356082297306252327197716060445372110625284652165188390246856666214240842671541725960630533269682302348285131182950090167902723807971749474337766985752092747564578609474557330537492907002256402923385767759767142868033225918517767246789040584028073394892548691445129944203891948131013760656929239217354266236749668852388010909677471569823468199868550671517472712436380577883320785419617303949627307905795305492424064012023017772398909563352570162359409759858004023508278131952907341207128319714187345482475896320797177803234043671264477046728674600583006523088201419607898350242465323196510695940888494744452286166163496599065598014422444398033986881967208405701715980001392591478963722808630657533846996957692753379459298384211699066279752336329764085761486733000455567490129401850906493210961138490571930454039572584008659171427837930291774424284383754767268869393131442640633050970430634556730954447898670435321753824350145914905843179631774447085970602918685702125996257132976591650861267544586188468196940180220316401410775093072640319503844031787091891288614092716574984884538500742791125014459507028589238666165249181035578169503116510136230582766128589025808832402942717690463385911184097799420780922322142555073159186770865469805215313582410357285941261859236354025322379236118557201866853346363558205993708056802533543865970434341827184118142566830374603097155509784852853435718622348642966488259331482080329596442757889989458976364315202968609713713259935483903386482107866041808820184228638751143506586701240655551546889968150958832617302543147666275809705267732347326008624599558345754130588574936935056513272586408080637356324502047361914622516367131078790823552013453509607693036721021548335500254250820331944898753671807262352963834068647074140248472815033547619340096628966413762186798961255198738586110001501462435532184204600669434055745181144879971971109509714568572894050625351235754549060137745171292382387653214427229264074882515643030223192077128996295309885627740131664294583057640476281926436906093751898565243626332972573914421046147436978368873454131740211704979931764156679536150294620543510356053106853109888269683746801911186634843718652038684566812272750516350947006696230035823004133402437336220950814480727863396507299622390704738490175259424144286929589230590134530605636923900735740945260272006458115105101227955816893335116558250797704708579945761489507316605371998630385061504342641359437310330145232814957067663997053263657127329925243193364744384786627182957978704465641737660093131479965012906653535220774662316595218324618591549496410160085297078076722245537904523882115080006412428593585887915468957301460498655874683627127425228371833454069828418498647133760255148691142564222999197619697264101647784790094826489739795367324212501265935935421198096871223557318916577352696946504106986891760504640117228991267737340232056733771568641642650601691922388168081883607571485952945150698923345659259723138946484386028588850859075610725534383768362142925058736737314021582227854471981578557141473335590017561225090944380577352093842135526023606628298438855847893411459713271044873950011331263863074153612837010284213388849280895118872222022945090870819896676904145818219636615344802910576737096016816630991044851406827395345016847333737403922549177068223497488151343370764075197624619710939503581192140771381820933123468281644435303035321203043206992651516073350508894019770098237164092336158197110807038383049118483857344834822304376987205017240851257222635103987293514654450844531822937901253921047197906941898360495059142547932585085038902133215773595855086777836235424789996273492234804870443660946164568375332250065159655367231871969649307062411291237157145673218601446209301246665327237019216703624019518737901314232595189223903634290543409517787032904311200589400856354697678009334988762665179728171989105390027638295093188806172115437449694300972292952178384171723175884300407442987511477671433214650400062991157074338323425248907904239091739120748750764310261300827600990971936274040813757550351380106752574489879417248908965326167054004017896873627845558765412626406539763167103985956532044924620643960359810133579516963607203245483883976452210262669020062529413071841571969335673935966926536783499040011650818363659151951229949672855170923206011398246147104861793263916717476244351507137157967128884059252889936381602335642309346603104052664125187226656817557334482901036751612171153993029305942292476209211236661161686545214809607892868243490356547260328915245661086958881866905562748136373045647727629004329403410982887827153327315470090547518575022313245215938359828799540179012915715323762533398055871684623950543977468108838508784238294524503349779429363693698241827324595320038893551349703772464760886217616623860549020779206728854546819665572530693277818502689502979396605062290686870837466358982350096426715533116489449862811556018472584774213439882523941858352835581183833201177474069611164129675509099840442588127428098019757291822280511833883676854684503222123404510705854010350760490670787970089219873055052297345882753705169923999737676173016396930397476081214918438572877383040363947696868499106969293241015275846885306622698271896806194749575123928324444325533478082690026499987517107947878756790086325932620653821210007512010929784066226169198126807625716271729547157818227252317633104096851337583783112371646054051010542967803668257239938539285843034504048701984669167895971431876940050392840403568444459064046573240114703935014553730631256248473194873068282307487248114105025931288998272837208049802315604661646310778745023054252951045547731998411295062324287768350240154561436298197010798370352020001735546443696120954898887628496121064494587397562003111240674771904430732801548911186621442914458005484695141153594445006970179600512194197355398232932466661833571625029218292080699842082195370778382532608298411773239236215581745011972951516970024767311079139222604710389695580866572972684890887795453729368137012094404983913371133231807432960081452077191866939966701544357498948081131337017429197069635751290227957928360307526821095692971728189472456382553495499877401161672576239957162975579604712265368867383103900822474772748242771128829000887177413936465582043348585608488750631279351223744954098915989305376781544805891273223448016829791837852795720440365594174152355393295134526240491864104184480623768258882644286260029697973196023396183428906991099180127977878827256264083495902845709812816140811071100665333297081250691333149001686394494563655089137101396878995487002160282465779150449825219298304227722679460722453668206261915189457655293801148888173101900289472238348411168293165868236725931370023590368119290304070873733337405183343016284567797887566675219409261721079333501110154234824110522007119552608464628324801619849661064997291196324096920178931662499176231997109278467433422861430444198850493185102434157695977247572108608244120096707542498637845415937863559837173844908986957346158840693244210185823090093064471407753668359206919811762106099036983055547264667063822511492513463587366311595509959997181213382562026723801082653536345796131647506885336746307872251138291992929165424719659131497089340228655482023159631165837470175425753580421709625420438783672235525388480843095285711441265692885288878648616314984549279716668668705407952791290552629636520206260846685529272288457643351675400663406900639366517589545137925677107487047230644543001512623122765185751994781017429388149121141773814906026100559341393200476745254051923554170069912956720641660855832536946599589028913596580781133962031110268601314464484005604597418502927185326802980458026133221728910165992466665756870402467594193687583330755531464302439569572183258978428209345545001466210423125213954581239411984408622951049291298637830771131912270283138930226591106845660078518706580863006232359884208561022597976924346144186637539609899657336389628048900374699122166944637800616667114092317364089340533093706874590510590081373805440924101220401123221557518833212103840788913479376360456207748419808766624809475219226151404439629168420342630006211685500629227731542032068421599775569876682741579692594647072496243924588298933487402397786898535795242746037834135458944774013610586174055561342900085606763926565878025565007385373934824502983004035749267809661312443366429090181452609589330905510569375782791218513987198768373765007506184226499568535058918446552821570338595575601134151835044245592380841944876247910029616965960794859331182476885104036803525544811483806573796444517705222840045576007981471966243766412897504526133025916836488976011141057220369373604085577698564335179044874215737044504663503666141612299096422544079304262414761322445156020859379333009595741517473372864446377258401581174652665311762222908395778816018528098964840659812137552103341037292335545590015533728406711546076546154045086786063578079734228863750862399649110290632739228458920127195831066340404901469490114970692784892556375575577640520479928535793695826177227382667216522574636984497271073236974268654257845656486102785908001880564339223867393623365860292250365208208550844023087605670864691446484301244402132540490131570897286184462948921688096178985712224778511341234183101402767411447612473231175897750223809966942639081296376624908795552742241199626398719512037281101212760054616229162337392318619289110086266272879325614640199541401565294547096788181340099846141958141418907224938931492204603740807158913808461872680053450838132985112695240531751079427326804048681663876292446744886379229526615825755724729944507831256008484812960394868877322449410092512873051621746669876247352443343759699966890989180089166444476936523771157358830231666641235344546294887548590049551289131116110827307829991685166386711515965164232762706677124912185321253104969156296501134894758842496950022144487512369632962963532050779048792946690404711611154541542982956529405775093038329752912400737113337423004708133791708747995100425561343838770066266268007848992194297864837611731459140025024678526257541432131967379242352034555942899518559417299493134169184470011479840987552818226539871024328654793706745658187868247955021351954907646099621714914109900358840813967857951096683444795860869117898848628042520997858000763522436414386740210516215841857083132791806234252906362233728258294740306671673485353956314315947792164092846013766821438385230564494072963694668105406605763815812031987296554793528539679859097704763195737322301485293921740960146293054646406511405921503914102579581834668530949797840466700633994366009582634339602750995581262389356163728300302625732779721304770139765399213336573490050852786261720131277007475520897324782913502369795975235341181948053568596903173903716307160812427368585944219066810403886640414801962404218144011087504215515970481826110467757918249544242921623844085935295170740088346928713211551886361865851828863252576429231143189706163834811760739557540258510618901330688756998981715474325057186992673331743943977547290991756733040885168939982571693973400182211175223261687638053104344572253273047983805599443762674542224297549029283658760706077110033002142607525608739153432381531641817135352507661344454277346108380869444489653655044438897214529766450293933554485104452176220993253397957178567512837949281705420972442724253324413374160952722374684835220576448013139620875390924675854299929492593906746375907102302378403267173312746151764237671375156796376229161240373270081965244113822701831154801413909567352848461885469401922392222130162011340581397684319739478362201857308778291855428358775985533076867747874620526019057576373861195070435942193027887893873213127571177543400074216875882422964010570441515499448763391688572182920775243353804902150854553554144570923765569157893396816842668492309269659936121555280040505427846511514771123927584091885924977925878761990545889545727728311275648982093118882942378214199353546738613675066847123527315638148507238547539004863475683634979786463188099559272016399281116327971093496270355931189163458153705320653668153413030607172078275031198760151006188896685297630595143390143653312396488384509376325685052506964086152577564455493079689778895467679616810036716640230913790944866364004592636429186882452789017439741403030322843804189138429659645064606074394682163564138859535124189517415200987975994710015991750511114710977547106485488582744826548502977777514081028524813938828931768975565875846257186964493281975909623164530253553384545725136274703439443499123021561223735958122104110452520961966751563090682660020324594416755326821141238547535368032403970654936461083824149320338313171592427136979638872849211046008248674330507654144124006795102836107651009645731550107939435422156598828880186054391384774152277532804328230369240036874295836720207051102382819060898824089644449860662118593298609710690238014886704588085921876935179906598144042463013449012616257521862680570667137095418815418880533000067060818555981923435652281921375212292979014842728478378035340443222026071478935712317811357243406920808270194456270421100786381826508069663792345784716928544097607836273526393850258957847039388161022099088601660688097803218501665051215406268199621111353470307681703029402173551042372331847474608896914567779182821236032544177918353924265532665906470342008246275221803590192240711064121093142622732907968542713762763570894779563198124489404352905227175766032683625657205518950825094726788787513954383063854671606651092052997740534905109222885706634920787850936200687965484100878844300440047381006118279747620634136228377035676370050982352964766719155615326443121879676548726932291205063157599587193343852642664163169714470111354214825899255711436496187487292462206845091155782173018425605092831175563423650358265294305335124144153933124395815829249491285645068759202958254247226892950584972684195913479870827482937674110742775595007559697892343444956477426465043358164426594229224040895489516533893405457411921424791013116653228688041514789891170246736801361678658007416236134256727058237836563546200689102403973236525947899088790177885282803179616691333500283376385819084693421471049281798269247516920271767589733705671256639957506266285768954176327944546121317297670592155984452408128552708699179066439559813010657213612228520625150079032193687013927201350920141202788157419257913769132443656563303468859266356982187729734576670207878670662793427488626500336583335375839396681908796510033392864811179093714390313139274491253851015571751441241819652226659144309412882930532402998366211794005474580784581996368028526657566400972219049332958256869996405601453691894104432414339229077013786549644137969096649902966341256247474842868604876294787945270562632667211541412382668742890132699425663726920906070720556076500260003044318487854652860682876973588787205059975564026436579084579788797959943888512455141836981896566547243779552837334405097191343244030114170164334997686922427890215378996408281393701292390938832938435285490520555415165152573135919987285905475640768295233558920067995503260867182267570622031445608010437018188327755588329876476554333877804667896506853927071478624874318484184347031419855116262978953616931101653840026368895607325175640949745876175195850866783826193950789715620271891207582573478671950193202383307524610047593895055363946269769268597721508870114368986941950345456842840344889920097345324753958126115573454181624123379139835245016037385997872016480134112932857015652323305984956665467110481392649177084716737548626203840602131121825764694771994475329848264594513869469770037260391588742836064107823554674444051902372039005390762759470642363824023890014993318558895482012312317615238540662463418177233930943868283567588507006217016156176804641694365437730069757681603258733835627270433297740427975667443964686129267504163838428046281705954473770635930397100418319360757685278552042813325175846877097171231463320098571182732972642448968605759553496018897099308118483605627799468622376200651731405675652691488963548385254896655780892405718175306299966875981500800192358094852228361479922972571127781481747922221595798174604691596940938578839057026501281027623364547948970896486055664013961561583731366041582331755490789758511247399167553625589698272615286475008467710993099523677997172088013373241030345173175114736630882870922949741612723718989755939163761822362967397367679342834240798789204131623993109993811720576905598688451706340423158672579448528956018436521193345922888689286701786063169792342281276667738176142168845938651939369567166118761880343750840280028078394213851819013529416172218813265839633113590652168187126932124763375806158688812369916346037575621968143331747116923438018892648827348879203269654262626517126433943142849968988209042377310015913077517393487514619680522941473421995050608362866632543787869084175073779491260515096437841899418947772959682789610001756027293621322317108331067101483653675145063731851145076914611076312184909928725266177076438673979906141128924344856452576186096671482368134915868391584293773707884090049309042674171901332457630046977435443984199266115123365944382115522319282046378856434748441745325176253289575214365470337415067648127553032130933658565626842613438006932750026743793443241075953585187076516745322165302425399772822894916840807147753192845558762699412368003781214786096768052052932089394644231278576740322300578856130293395885410735029820964064101358443953177115893406394808056732682808306308318927275932040906732022623449310452092856153009478167975435418946251728492395368840659739620013443160131053874996218448097662938067655299468304619644779069578395587275984003618166283489120044678501459031545370878563200860464059962174911365426198639653483534132074585656198955248059076126325713085540635121969693430146299956433204198385072988322452307201659105415523064791752740680201349827854113147085124584289020962553383428686641574671957633452263726240396394766167148393059708924112989568750484057031060545662352856759392328723856611808017653157222882248330698170465386002151170284834810067531861883669286055871706742425253871128151189679145606751508553120471805152040627964401952396462191396899850580414936314692908538350354038736300681553596179211826501824466371860626116984411675406359905603459786804542095748400887964344994787186148779676125092525757153083394156611109971858177891798385184376814481785645464764679586422900121897141209295798922392745418463530789465579667435202009157142981788590032851930058454908268210873008407805853183881109844049829711813236713640756102740802842386982804203572381176674837039292325199648471117544885218575612963183952911602548365187444071192056847411909053699997208815262492639114714941249676320205011425382979449520198597797449325441864647811186512646489738708090248730043819683682244907996172427920951949176033467710101960909869560209119045044034846609773700119467439559809855105307470417662547724716635499571715067904308692947238623256915530765812625060087881068673918632446446150721963554475630647161836640755972185007850142124280607851695998741270924517141988655206371934637371151642775180245494170784619062512132134787331575691706089754837254520303626316423762200652733966355782507097779310084951594005897334659832730612542381495678528751822352424985432160958866760514272688385807356374935958227523688728770978763386678619495760219546584669243489191885182493011609120926420669532678254895417636556191911137074454158921210959472680455305373436002441216562933609624812588890053274566795179788292832482840109081006638860298880710429358259181071315527008767384530170400399377786283775012350810084751542463213961337198679207971840012043614160555589346495031787990026671052104743362558726488775078283979486050330325122818077496672470372059034467384321854425173357675128581806388249982306756338807805759416865746475746330470373773657762526385813585750719211911342702126035060586952771086999487380509769204738937857101394058561516888697042301736500399181900477625987144369605076585931103222728597432987307863545887692791574561057784824295514235035111982237649644220029934301223647351759348594598515042424075306856932350874337126186956571079106660144078232228334802588822880816434837093809951012711721920945110254602145365018064246600745932841605860706948853475685227831293366643947679592634819372022336739331297053934303450436369824233213734545006134995746962293051223046613737356547589842052560141524413862583633193525484042151262430810924754550228613167835873752774796993156334756273365396640550410655440368389178106724042748292119872061414876941082280711110869333565703682850409643473740678750667319766105847851473716215381878375961276242408822980744853868481101383734398114537390690108934182499919983167859017864275426568676399912984290294902264844529347105685979256775772466009051579978654035505911115894702096920073355730371582281554158240158530383757104587891348086567428888063455693680028544044582515219909683714586813139149142707709645061299927391975735486263446878891555618553110839368658804987439226645914551542656737858900084517903589947063388803200664207119917927224042829926624821797762189886561357088688280322200801473610532862159324250141703567171740437609882530464108633397759436330580798304248776046771463493163901458648188595408007593952713258004121877056771296445037078691397926682696127763584567164608396584997435865802122998498021263736560056229760775404931767242462363714379602767924121786989749839451001613222070843259519721156273127246808946480348942570501274013319692380998898917511876608067792998993652410161834463686557660834270242520507199951838008378697396270215541471535645862891217502964742759610859474735118007968250008728003831626905957873412046059818809408769081725699252024755865665285101595644925877381057954877840224062690202410074457698856256195093180407124200432728343626376975553353388838330804199802872130399149621718067249091803897805721246702688236846785761051411453502267713605965330148497380644647496243886833784046323663201922638474152704521812850729045100935153095538857003940700071509359146062459333546679943963808283621219896658203358677628566357533472952680212955913906520853657907594116342240890576405403925935187038063465270828625642147139137600472195998132950746207483311425908598716307173482898499762783612999519167305595267948212259338457385771194555806428489268442760789681243784577141450376629824439737717421068358623835424461115689005588040478772029830912053980591165888916537739328721065733392079267389944444469993252771219464079410484003483101591169544710102110166233764939763445731323986368228095214483728681545316606562746815932059155322086931433452797219019682451686660774910615505627865492921503427471467781469078703097074728253763526181531844614455158856524068653787601060371661910825411672564737558186140777059288714525159662683688125129875009090772245657702509674265249163232513961359590110179736284254994564873588815368161891000415810605870834476561566219541208097107494968896978883013010432017319209718475574650519909118725860812940716258054372720365145929267907921236427380934864751090297085769322237508703576330398116816369609774850168162468764528170980649977747705346097244049213865486780936219271139712067412958704705972579134558306171179511141907576258852944536049918263702233578325110533274946127901706109368556658083343207329683886300383102422949535113405358444170993998779736003115940103013750937150730092488364987564474433019781026322008242017176279489914239714141537222283815521967277370661280024833603600341788235267512054835604618286668209995548887087888078158272844865089001881639559180354005757731840886284841649266722450873310206922519366667506744183467419302706864175805795089301364186259698398327835267428835992301697466610664388094607555810964073064149895303202450790231405851569370097722337825945606703926182761028172096732028854331866688950189856638818067430396864069979112090381308184794111804858588066062886185811174325166727528083106247727005859067436718412336822260383900212201093317532226873785965957530680655038089642763061330283394299848063019696824935046519108978512183475533609167780591035750870502792280386218722065832577337456101947341288278754896066620229783483118151814787104260582979085310247078585325321613545936538708499324587810267246957107331040455049039161194840203379346936168644617613979286875079803045923572109588736535484559443844789565476939472174595419700342042824472850354591327719004213283257148534450014907517683066332788237325366790123869121563822048622572278080415298597592104189938588986008086980160228522867615859345734768855798115779568151874721167787925297592550569060738907039357157800887354982254353962393065064584665071377033564387019713927412072848134521476190304810093364163695644001097940967726862064945558662964686653986365109756080448922715846839286298264165579502724718466079137395705184707965874864237742554848446053326570355715462116735815596372389389046500866562248145471524700454516566788278697464081214914818429048208450379107528634165161531913338854507724020744927751073244113951985159563543113152286918506232241272724454911549128037844169136934938896404760548571804197936884584564338199218726198398009810745566808093477822964272156480546298920816589347658184142297277243156092787667531020434704379951997133672775190997884704546329939451498627535027053281727337600867062005795666204756638400192927261422665777504023460512860242058385375050501073590524448048017585981952914797745913952879192630650515878662834516147684028808320581542188950941271633677801230078250826218570792029658921634830273612854607946546181382518197590189606761330315247224039394898908275116876319023817888320637405561061073838700783468643883800463948651580631889826985807925475401475071243178247008220906478084176218801829969851742841960415676408237820778148233564926415043406759135559818582633855758939235939335720759979125642968992800237899820801378390700253818645485429757360506383537195322060462016293958142357237938223186943021922979385958880746881293145347210272912562495813213711606639073626511541455262558670969095533268147784812477326848053315579318788641545771386099290075780887300880898061201287580767388052447240367326945144160323483124110734885080674877589414269247142819492700006448380565230546995699029520466209354963959015440944239052648542080995473780694076603209878782536936429470645229184745683211562513314753272423040739253330577169019227462529376266143631038664879613312245025153135267211716652463639572098140718626526841436583065147550851760653422879491739665490097051830961063587773588712622866818318069327371363716627902798267134455639549297337350116835524971848564163638546089205255234436813139227198639956473947854887755747743889359717363814699082317780704552776723019766549870513566794138666358698341067812175078008747147803924024043279064646834481727736406653654895360922983875714557334404877030724515742882420402432382789539614054506494170075343683001118539516175472515732964263362915258960763427138653825118464908666054119248821958101448664016621915331059165773078324826109325453375667682564096832174968563107609016087294631485577413364627692290421336772265932015499925772884977890540558749548370312664600063334760102261776478388907663193560872911020675461540235991959207159190898357113202429562099777993438115890820519170936645721051019989135651492756731572862017380892750555522156412123248503313738125369614366983496088801575037185653957000082204120516708261063852275469033380550021844675487413605363062799826896365991947843113709585561751438919922234233432788680797926146495818974236503679568788471781336527603981585840196705252067228476120815540198168457843325054945058620894501795653549765135113402049906770512971248720724375984563882568294976527166824603884478504566007886627281026081840347314718165348941591053801431827861628508687356001037919654768536213525942773848672317727623851597745891894958871480002334657241272922535037607550505864692927099832901082069737071369508470500254400139254447483270972619270041978953649481881062981292390737729164139942138552410782168650882090692917182607642360255804756430390171355104759274089993314577657856296877786274394887966809697868781583266990361563801643889818684845520638344025561782797063638661071044947219630877280517913036870249086012599821381339199442373154354691723838830444414948753990344646875243031120374128707212410469987334142980757254567496141164073976861828510421000147563227508342967519732901540635422585082263668846177363729717567972701548260552518338154635789022795885398041487871822894763303002421375661380589644271617300807915472100191240566620477993237916799321349387025812227168622902736657735487581053991797097437481151339733385215595616198028311099648315294667176700751888959940028696237623250189886628019716300169429646844142134577553034539548428036226979282926479125713005298260047585203350690979249876638412146541371255980608329785048481849365558424845162300443705619813191998212431076418796669729625190825957603031822098705297610700095781616866232137025527533277914890096473622914076499371026545814171445183937451799655017098605906267070380917156059163340770891601985757790872456523739448366757223323679143459471808452788854740859316711396039148239545232384900359785352491715982279157588726074030902855714835181202561684462192067779973569650178425711324992961632958889296374191578501622981598222960604586209447507011091204006406227807647372964895340104358426592634167416639870212676054787742162895060468867998892744940663731273738666456700386862992032315800075789263688141341002873452323620119670396737011446434334009231734394392421623533427488041260079335668547455600140370702309617122430100629753485371384833409213279264428756616795062216626734845461866254371763680776987566937628367446936384952070544927404758135676566294008258723526325284676943060213268467717146347111046141217573331790462153893819614690064382072860681184396397435569569678365782683708144553389889694815668962260405120752713122988236996235924605419539060938486646721480453121257114755930180724446897761465036689253200526015403181123343871033695283627501758514026670331357085076606162911399840883015901875445243716023651045959408195603241416829581259407518687284158681799613824620510531973964404854209410078453710427458557188766207304611653080499319753240207359397192490132578910356913011066133730738359227943881273283003028763735350229554168455573007306749979780325142397080797445539879602933189010095879309664449955996231752841891941683527826953403376546191594393297941525348502627422367678296214681681342819361511668922349431824842929575083162360969078406343315077412896067047156492641353925424116265790936822080038564284332007625143303370919245344963050592775444855186791697813848180159248061157645912000647814482337882585696332989135778238970104825145535650466293984557696569562430034489422431779947681266916016918880461912304193624930009674837463604713711480000152704417173429337304036181197179931492794066444370843159397623118983727012690672541467984673515150452487981807664916646208904556825351559341915691304671755435995768665704899512943204403785631625208653953582876953269300962081116430777392796020974393206435393457733323262140984262648193911214911711152253786849486495791295899057455750832533223019384419621409118142535424200938087444491085304528991390126460158678867842133339394068110447516856531961719922115090848523238121736609354598661619973244699744881938140439090333769442057618420892811965125643681391727002254052017811804594459830421512283293620094350227455006960656274062719192503326837535275380869570964275760501335152350921631930959131723066719600980509072671962405290622608667129217700139035711269178076349906629002190388078515638570462661093575567758000056391913085284565841263987526947991840227794941048865794221307120925702625817333229607062160745824896192282236155635126178900952346872114435147703562874604091756918239173325273018069374061804764740486027773056325482390951169041660609807365813327163672134663491100910965886813241141004679023116115653116136478965409171888498146887117036211867670099187865218935421138247863805882195385003547763112839124473660689918650302872315308451775458043020677221329368778535565553980390945773058800261711163428411694235491669964244637787535341809718418241884418351193245920578816026544512017279817583747251876062567880337981221163122670203497793065659212002819917935361746623111334728834251327296209780248185194162706829658250118236141287467539893817329244990488515298880340496102305170824493718736206318772962599195924133959319929171324913353611973245490999979257205157131397329284476469719100272573000900040534811653575703048342757346576188298270834603098662336743758668503261318412061062638195904659543413754494302282300368960383834688530962553049221691266566082821177118009883758904089099272140744613158646721385088245468953786215970364327079299557602826014051420683446907743426334389292798824198773331090873135809356877121579775234389447327520801852226566016827938219637042367040808382019914733282865193064962970448405973646517099049437463436881719685482039744668474144201855896852869880931906818523326441088267690449134838557337918930239257287008845616714429772271012097134207252835689546774366167282287914015382423895852654353388608311475539444632201405020193592409573189062116688851663654148648052772917821858181301310340551629016947731474933065115735470384453122590174771787215542781244608638099918639596450058012353000808706165899984247201665769542792922634039920511493144790348610873226359005660936396129821729044475013811987830399320560767790326581788101252510829903851431735245501912479921425464025083009125908488792359483325439256541813767061979316519620279380171432859091993866737019357112473467551174378169702874822482496034672482361120078428157157222304957902448549217749837510922238407651486115526749317048456049541243929438207769195574718603597018730350347203381260019068296644597059740894327555468103601535450603805128770448152582989634180302374675142039030099611349653119998203817782104970174762591949980121929853671687579320916357939811478202334051622994438473616073927163682511742386413718094718843588844313896127318124185692828219256653017339518487151549681134713498281397253980656169338945752468362536925013579684666246436788472180259275760861616456166698200015263717129943370553198115811659233376176907839444000625905679184093046364600819845968302480686481326363917762775511188067194555034202699555241559395574936728169532869931563045090983689868953428432567671694419363422868546498869110213069576061526621191172420579253450453368538137568752482302198995817109019167013972571660602346723834568906610436142259262128496519779160433996012077977859351258255431487012735258273933135762750120467523753544731846389898102895988844062248691012441595724198538842219178842975571542784135312757707464039625030069701195192694570293875808872959385969454179928406377984718317455625788242538408292124679454453370144541509886004828298642324415409244667063466714030647924013580126531660407455439052926593343544109539709582615693448072893654507724445497246203105880843368755672964889400295740455661054970001036360905135469151539243685988161154554924090013766828318963046738284914089044320035150042155488916609183884619333376757116061269217017388921333156490392607672625045230498910405251262663970746676598648123718379446438163685615649754773959551123479671184147717728625463045431763855779154735829364867504396282862301521718260157052471924583004087809646682931023106578841889934473108001387847061537685924411674520732609933612905363020126773130845281261193479263306044417909488000776633316554151584329448382909579271556573964001033909755805735053433849999907117396931144120049776206238683058695519465157518090799340501979596553996972977539531676759453197166249209420172004887975491990650842438245528482077824940018923233270339554218303452803513800920259166057189933190068232075969383640505402469922898682359017547451281862571161220943799779540927459366802252958948176393314036656368855750931414249798881507265630170786686103014210893332536291486073524459549943080357792733396749257897198339555873843983620967036266088286977100458242011610945354084060107589563373208260107831253274291645142540994212132224171331495667797372040711336173487578294855743264370508243957489847940760984061443189991643209620483448778973827679119362125619041795525554753796890006263047723167787377176726043875989977142151208939309629750653602248104301791392105499839525525072310528763335681625567279890391827002478610648839048724533953340284621433501472079100065889210768270924888589296747663601895760158342675550987350019943352428145821622593179145306857314546306746496513823428475509523217482627100795229406383350316795223447871561245266952070147856679043619382876321920863672194307774173008233031187867284807443102720944120795959450460280014231065810843526932958406974683559654065425248632912227431257760335967326302994589264679302141112497597279705693558304218135451146949155643154856595923127873581785172286893419633522208566601064383736059186971371522028106373736139800109360995559353855901228875009808697575818824998783527325178251410280512901098742811298255836944221961404956945885545343659528262068270191766893952260236284579892859630004564129379240390289249916354647466348120057503099033139397956645351944983857566422351985384354730804685863836944134958472123172146177799011065203822474435904415100617506523218174136659154576348295678617497923547423763713758197948520353117203279444325191679042310078610453682174081602909298817127651819044998066473740038547893075184200246304298142885951456732370933437427551075457853475928361953336963599798562882227693271084434647704927248063531247185555885989297928644001406514629514935452213671007911671003554402441229625629808132231224012672317083958486004360294971748844316427270443124950788886179752774305399045249107933043981897311240252110454426144071446826697287645427773714865948365264247694404866378172847848943177879510264933584141056677939485742673220118783632584684445510215188377713745188430919984415744789791249380379926301292303511912871534665003168267396620447271678671554941127992286189020011796968363992283928595514717713104185905913560582285997091315598827107008857901117507872942531297696433394289393358351747928951236127498484463629223300876190956589538067340700992133105284514956389413374828888062232921965371281999163788717662964869188982063989876108422647742840871567000569381125100380563709644328233076902380431158282930130183564606028046131189496140677225069329721249506805120886358995087237868142568367224475029152233272957255163629972468681424333418770631143356737257078267681584906498749333589554758578853612377531573380235136195996674785584278100667831546949051190573743136661036229189140476888275948693928091203187935307833124165598187307994736853128518203673480748257830807609241621526286648572770187093305523117364068933477789187412801228947514200690940756576603868882525683065908366885046376128172940845560666628104008014995696276445003730910272839133819742532244523480752028874094315095503387628036894418636697035969514451182637327674411874995842951079650042209468962604820354021737852078819720760074330330908793879501170047613021033469162701047278213879329486047661312632034538489672535821784007268030614670938803321233351333426494732012499153984791765970473444106841863169563367971496350533752846373900409111669068373342316814300389608880107942593712731816731426712301004346578014662711494814629710555432034471782987436321798899024425637295021914520651709253520299706447346281305598553179899688305474835390567350744967134920115065944819263055527914092151661707172274102916519453278037967894851143789935685747317126582771422124665232181358955072882494591763035311446696530732925365713932488756794926633302137451125934495378909315589284151770097325720352445646859336698632109587042958278433225653049104796592565100064009931653689451808607380103959277429186285471162573404181159920259837883334145679931300675703822181264702026655678746756175821627044916826411395212640008928557395783927099622354721138736542362342617932985064718584098413475009243673042856984202699160996891287915671316705489216859315098432433054556147252928204366678067639018334174837629330456894375697600275768177996285730248577368942441297034465367093066035309213138729607151302458164717546778864731552968174946257104685788425057111321838890042237958581186892958213261035598274451304982985858085219650501201049646791607352799501690801790892653717428642659910814267327993726689945913141725369198946265298332617004865249287553136568224048857353057524033016629685042375909145844365626413867588404638485955763832220184580993419753174749400920538345697961868938082299483166440808331306476542002245196340572885547133909921455310357632737178330657735610046943409115234977779909690704753054674815244357378795179081300029890610553125433195580504921935593630090261608437613056879909491405665305979418351184798735791068318993111747870743117066326115818250899776753767249464193910163321791887660746138139178914778798472504910572082808520059182381991626614215259138074502920806914229306021751543890694661809620517472496741749745267309329157473187051647513980361414118731945289736623251224181889637118202970649454828396908699353417024459699881387698694824008086467962613878040550540686233048221884722791531650929860536701665596782488672626415861473405228198695614498512460984895265194040823060379773773125813631936303098900370297278315200980653417356420979772206523301132522290037219560475655397058195677992571026746463397687513909374984979133702995455147035854566279466817392413649587560844006137358360795755173481678920267779982114465357110166880567495691984222712583588948794506021246823169264973361762416195922332019333610280457069355605513553366745894318237289823281801183738092623594815604792549979115653008754223917037001909434273234540982235799031253958004699702964483679230581357332837122055858804978572592640896304640609586119470392050266184698705900190214609247345172794261962913588783442103151958987554921918744250534921090114796036517424320020626692652986685748102528853640956049859472178173110340736364300196587623816711555935722151309658618514949568030741244589794808363575605548118454860171859152305161461702315360296804585742172704980307076297145428156653630467344553237538662713462777841717027637726610505894335251050559507607664806465281918701210544873615284459722751699957674558575421398237810700614929320391327271982026643393837356354259759918398814971405938630535618527141448440295767469844976272440663280555188256858677115049104852553964637866146557914286827760298618663003148342152046181049435372386170822154568417914599635137586550225647048593229677768655040002698020280199634564274457233860147954592522567902711447326707071988100889072770164856890427346502662287511184644440119446149479727977947358773118235901356763941747085270450835816628522570789561170758574454200049706321724831679356644208430267689083296568924957437000318348784635302061523542185760586294042980479625136513131738637316653451792004623045292392292814114749639206431535637161848104610486803185326832298472529088825078531804641218067200813736715826175829447337676023598742343094108247819413568906401231794565454858157910941557740231406305834648084300408461745483813131833334490844359010035139497032675931379105677465749723321203797418976827948312784802770663833642672409831259182805620994783676755708835924139952253415206666544048145807947831392095291515063857825716042775837885628344370530964935951923112139970960808812412826168739812085006059274553308099156214192493606130248738591416625865773687858728476651756750347120713130035121990978142885037575415639634686006186658821161007976079803500536683786755044044177423344497166820178385769843337613731184041836563528309549803986803167102568360318393445311111757875861185026909675110284444947326167613936884613886975292705127463740834912243267777679659220311840002616502678703154298975694736164314760167092040858892396363450483416092199531996507377973960687821046841424159258186301169177815803661327569290222395194613998004625333326665286336770242671970977648068976636963512297770917960152397632791866233416133143722589010059393545020545611130391048495867798404117437596672104766229407926697944902334295972605147365878814421194775183640958645739629346495381491684736685922034744269445540562078903540998929761414583049163921066258770644515096448656548751739426069147216623264143482070608068082169472533720456542546881611578631109088300862273695041646825993225992726906108647736235026617696459167229932605795662513817795036744640673778538927239913026891819600284461410026652308274100930699339358692465893764121313301231485146752473013205689367782240563224211085335589230490512397350737977283818735703032920311996405783191758863805237120965377899718103238191717483568258697580121538283112650561998803710697562869241130597987810383007764104145284760499818070939022577681291343137608218793047837997975939044978937356675436735889677271928222178439651908704225753806868733764184405540450457129600588106651514967485773304618460049540362147827556068826859235677112787389772072272041716837094251131788883033412213730067023322400771182604625152445936611242447313474377104675100687117202686763204927092880622147390126180613233507650265584209497361583608779336475837781776118966810896864257314860376707257844105462841223709088688247178637752070307680034512419046572416145219020282563292531876077507122201487366660608681329628114452582690380558607738136473273744401675453613426183015701097498867307566957019105020593524519985254777110844276495919194513099585927320256363559567765575993794485570935149593672165570704965348283346136758627385783999638230188133160955134117725814765418253169371402075301005899158123876997418310958948993244387986393509896226557720833828022969536391650963755931112355212061997804135364632473502790282622774981998828375218234745370101486576710232873657836268003292918883972171396751432855825088591811268167016900120395548994376018403258706983375797078725613112909491873645002732737047972818073982351301256497514244213704991024631616329567602984043390637544590316021256398567013009860255207642638286542020045555008076035023774812807245734872715410136577216986209519799002847378694721470770954789258053328411617340082664836038088688023387734026745267664377682017516755792202990820378837365272929340586772476211084473981093664713360508374453680902853749819544766454252480007325535939724545303997123880904336655422139547315799136216707901573905984615288642772479987304984705204078689200163678994440128625951166980919540793679299386335986650149600090335541481946180588472425175034713304623680541965785912980200348241646607100302658973334699367227640909062275388644283509724356939758769230528192897092015489878124766662132839087313334097353075140076102367457262017377576698878834619176565468491214878391514413036074306263970420847743762779855852680028230510412514769905647563174869225581428124451843025914899913709713195211343359649664161362597689973018949786796970229105621372579193430789451014862892487709430740420255427438604555386034379929116916278382744670196038525429656441752915150712820070942146049012139982934706670231639400000748896007862058103512779807464301576917852871979338144456970392791772936912039600510382450135486880147943091563568183891127989355530839485420500114072449275175067556708609478402240155501524252312395692763404395822767230858336431528595961784974375776201010512351892143042805385748349073317567515021262036758632286461610921920052516541870054987937408333243955558215551908519090813047565799915387388701553042472171309753553379139298536456977868037233382321027918270011699421677146703033213377600454081756202457544042240542575731029810492791257054308705783838589603319750230736446926992685556751096229678572366063818470725103303659164315408301468056445210674905082024524882115174096435472812124953380546858619105303454661247798226857463221669960849075979293687973932146571946505918298419044276655004903079272160924931367490345665437792022771761611217381545977720037594436684824036683641949589490814063227722457222698955387996839124893651110386518476868704170576128248958328668136695568582196722090514595202560076472255505639463460490878282433267589377522237604939661340752979246818411068119357089586994071359090781227093938315578907968483743316089457794830597430505657931916903926536889730060610276745446346069394304998872224932643318254278964828922041079300687353889553107223649603560545618423487222510496765450606007651684463242606882462863196816970877474586528387688167461699830140635799305423613652805820082787361908403544261926723615645844378758571585105450572948906733889438530091485900274637749336018587872632058244976804852809698600086597657886719172879595327560067834809462961150903284891870099144449599935388744286917192910391289970765422030836217757536059147619900772077973898106679735081084679716422979283228151706833263359278869350235476903672072403440488276921591214390483076150365618760312069376539391372175733775294290663151907899321973333818763832033527880866699675092435795211572907095732541316866028757081244319964934476899796345084025149608740745605170886404243363111814947392438824735154232811456543614764380985586990950068987026479588137504355302212875480854287910579060614687837321902253704750975886147552421107889174564058428835062547343503509736555856433424741167369686180711622913396035339946277131958867577147712751163233233492668181933850071001559695543761937471921538866027291242393171091380280110193176537664983193430889916995022944167209338503147683634202565027957043415658665175870914130466153283651686690586530944500016388166553614395134134951231702120612689139355752350019755437742918578149474838065435977003481086148479034984471698264302833480071368058475366601574712255057622083165916041483818186167468228505132335317596144266069429955557073109920716824966644524350162849912341073795384673072455807954574025116756843194025865411025033909083239665794514924684750735427480573902907101817953966818662807324966024378076974128989869439526208902492850938475582822553723569502336828821603146249347983859517602119640095192387886249893978067531226119455426487942966125935061427692265929929600125975154439457727121304079523291135710385314220783413788313484261861344597054945217588514110762568090618144051968176428026231086243194195722311079195679790430618696708971481054189358120889882313489347800295895148089625716833555737663230707938264958385244903783806428704084627670819480565112201029294655554692861436192575259961102446347006403310596210974963734474578124287429928539460093740329826703782436972917712774203624716938935260421594289058258045703577077407194198079729414086838034698433877291936812707799640421065302370946869396024772251869225988376481007542412074679951104138954058038553434366150705043754943149629664138576886192308058500806850351575521173710249606077763737025997529541483481293429206833166896115078882227002148865035762995898379525002033152638701752300529547804632149461514917164266279692697107766151171049182385102521226565361565235499881903109820351867330340296598790119755720355656783400654235536129600058037399331490189226174514224628857168980626567067020113672598941374751703623522960207642742997368852460588518012055481324301415940381016498248809604798264553301655907618572988347356059286199592028574486815773508509720863269693130358455401846586983160551357047058778252400548282013114574998235031518634038354124616135818197668037638301121997254906496360824448544345192235021573552861937613142323782504699626022250205359349179321764052421788114518892194315516846746697084384586379028388741830592572795142060247197068927218604062729591735196311150108692888812419468415703862887629136178824274223152501825317067259451103238500217974256570237298747614796435690355604889903895429667116551296334459940196404888060167222376594263434210231396771922555986382835560248193218561110197807791822021660696240257062695719902071830822438676087042303343229524340098162665840288081296582144086178962740625161529724028767559904981220589170660525556240734755290733438471107659414971812321940588784619514878400838818123049685563475793992913807040118445602172712034420610988953187900975207007902997859031539922757411124523681369792930129764704868879997022608057368547682874109146215814932243368618885267515902945807147063792448304326993627896356464698280885626321993951970728412194529534563583911263119632028025089370649206589984695032735022969338132826708820222794202528020088487837241359603669650402225303009075194349640401144911839302179085525261376028050871286186362231448728580729879832778827185323202173845118488901278200478941747312288743047317420705520044299423142519866503877601101646579578745419131844826931785455425241151404845422960254701511458979510114753344590632629763842970189606338422713600193637178706524176497470966600079463524538408521656780261816035563482979733376914210508816491873031640166618615765995245602240053092476393887086477516991236338652793871572416980240656196487361140452210154216600498755603535459257971345630581136112458658388523508804189851153147687557311256026306496578521122787857216286235412249364591074704036728057662412542530127698010599554221646649543732435968467004281773599438300588639145568562479682180760562728372734589497104476194639682476438036271986672519763749526685260436585778389901037112459617758395238963160943439863115891228376123194850942359169585934740516747550002288198227736054266194836340214011108098093328737785195566228558225608719953166431157776560572219712961225236225578019835419335268149085481632481677545547766762372069949718311230808241761897836553864078612231141856298234004514457304762212425171393020326915163756833521530918272984586556756966084834741919776469198854189375944807856222713938482261317810700275024341078776213533330074442902595512290660197386594971160308844811685508533627456430031152591305918937449117088657310227724650617522157219465732165611443352851747574815629607369063623896993487662126211868803894004053561401005785689439091759553412588224014723089359523818820817094206186991467309382663150611303976111658840102783295312259816601444336125154331386214297801702748067783082038335545071244278016988860475453204363139212868694687376690447329190008124578292945535110363949452079440451705873843485176005812318488518626542177193550300596614638611234364837202686338680403209446293265612763604277981931747072587917580546744387051938981366572950445554655752570571006979271180695830564147390329808688313759458476161757577570648431442758369582451044881497945140038448536001202299408206925840480073762845032355903710296427581642928467561664522264505435842034563889920805497911464813224677904608080553858133479690057725811437770003546779564496322214190225125820997795781847915969919990846191243058980431984737867551476655431293379276524705563222162687204799926444403238555193470581895867431391690833717993413774359882096558420043728297180428489974736768771054512409197143180113457071550671634829759242080923432202453989136483894041949786875751339055597914816452087733232475462937652562884307574074891234768145222015038492525073381098116394126506075611124363753505714334596612442768891507762477532414546642113685679408700494237936980708116603369416033868788473501192256214271286193191759563260934715572414385722271859714994970367617686675233204074108568602543461044346742029495895716911911990256026947316862367972778344845600866421820432591049622241524396758032510011368791481954406396419623630426230353632704889492995383355286380043349521993478227204680044936822609935298432533720540259128297129082839925108881392150045721019383394928337737786976992715119942953985612935845285371384719038641768805763351104617216611883273457237498963407638247813961044088381952314603539273898696787279124628346681066421119142891652447497721362638355438824714976118282277907982933407135987707948643967773717777784863343166035253745853212870083341523456429273706294801099315370326808758980519438321111363473773084059606439747652095418607348946581583245605839206570664261577036943613986043801673970418083820843102576286774538329088254378939316231434086341343971805868322235668018666216894826686588780168803853795237784487376625333831794987515082943730766180209509369679974754242516265750341738214158278461081810047485835734168532755767184583048360959818322896160651250091999080965749397238996048908663254515121469832539158322505597755124822030266243326097538118809431116231954316294511855828947823648109224847049188725723045548028875398860708537342316708715199675547750429388437309060630292142332984109769075134515581525936852206659879898394686525796866514045245943660545557286901293061766185650071157620811978803134318840804977444675923461271118504017071418255893056404718567929873590751380205091243620098654391199001219160729210407022618640311571186473488428842492293465859174188824880096552521054661636696565265632872886224125539166287882163138690680423709900310042805892887020426670859024690271788432702639937747238213685931721191812614852358738123839979930851068973348788146744082026663312501847848947760918361091006335914289153227681719165074997253168860445488316328955902380440135750161610186331838782670962214872088243345606632055871911900327013849271484249551956808352257089086936571494316818838993081717613749819458032204895953048032332568909299445854516187502777051758389786985187760823191600959726735648748233316957456477053440751055992088199028684983428214457504825499825456140214747148219578838965157146747131393819375821651246559979406777179665516416178678507624029923290397553894417386346711505765026155951358718960791691593496298704693821470676012764779162856218062712290748966594767085083428872601521089104725312120098159040606811056356574848690061356779976447797767094788206351502471616386316876338387124775647849948752672682359816017685001419703121478674902897567320336479370400643126846143262576943329802785437535144017592779646971979465649332667347922570464669892139946629618132217256329052515181843420852511586368335841348365964707926860494566412991301774683275689020763895686885946072159192754925940689693110095286842680510919954890550360585544189842238616619422793954960856800868056100491261291081070767871703215790047945754348884150937351929514551693042806312709073573458865638894986765874100257459058074497432843278835550489594705635892918653518761684775292414566239714667594600459762594932921939983707750025277840582663703597995803324080592755401118201710538483094359035934426023836917963448444056289184206046140835999820616201579350620016178747561525403341698814713584754514689536007554093999982453108696152590557070747936503312741067041698715825634424069768677596023702217790669259304906316331138296396691723893106448209491283085542572103165076069562107989755175676294374920477756056335326141679586431446521007103932075198295815757161984178603854993402939171149679567180609895238299394012989199347221675596501578540844242017654754199369087541354585830104168689636742039226513984312933052885592941843059171411993330612670309992687972922441387645498676631064625865884007514288449902437733703191067742930420395126619649948633985779742362175050230663999607299989826537317313133203532707275067757815058489733347781801100041253701096649554346413812663499510331994674941318012805071338162399221798532293941356486421205321022983493654946984905093077587887139337351526990166023245842679005975048782802039508533623894417741427036419882860963516734493865993406015232499441177746238775452810442265466536294280673517858478484457837815028463299773326186662827521230908879340357893835411226320935789833736208167050934379244132099966209016317506558485966074692689257125524619986394205863206631119258217692393885272702979219343763975030962192261772965183255070995119701189317802778366551905953311149251528558682512834516258502996962841016728190650470626085270661484948525086046046339658532883445578306601947500299280870827487922915264589534185464326637561404339234573057635509028116178014293980534291086597945401311249910551644418282856288520054547125199962842557428095086502213529577639377251925546458641448558275218799569601990275604595936649980728294257061642730846813091862206485595011040583949971335036714905438673616374408777977439475944746216560415629950024104554989747222117907520134188585052844230206848811162582275360681914922857118072622345602469990621982031165441244182515924637657230503077626305056456815752472969378248429114298666256831963787736125253218685958022957045958562422813966189857488737273971924495229251348640801599700339243099132457088104251967269384975242539329201392974988135601426031494369973007559281178246699212876088538550342026870862957811451103515194625047238779865704840460762554889358307609997021584548220840793072808316185670569851659967302335801399356139691913839583508334104354864823314054698438713049425497847917335473296149856598052888499540456123799854777187783535318646985304520919837358951536897171564422862067234188788952237224855151799992414230493330504855317539416913361759096542959365920853205580283735680378512949619935377429506790171123675948523826503861839887747576908843290867438386813557864443191062485358652969806364732665430238812097558364074886932860992367686407184683998887354430140435815098612610410214638302371119136807622357027761961232836836415305910331732591247626489567410544863739103805236527794561895718877497608340715867577008996677552133891546531249125430201092604050155695728073405801165616918330073049108353430304015608424695941836253813586606192568932781685263915018437916190815911985294847345806080286539562432287817093171743215795071408277386794579120257323759133062651747750789704743285861129682846088675953553620977154899003362045760389654355735325097814172726322221124943711113510317277286894091466144081191082535211836751848519409322190094181109900564572094563154876295963460061401907835231626054410776519160802078800218388498461855743924779611174448745508645657396633820169121864338423357565323875518165244746174316739835101495423623408551809783762439829040855493366015442073653292571561070628522428191555294383193314890423842423832375406799701567030820607336213375153150610054506052738822522244322981802415121176972068815575068085819788376293673313697103803382887980373703444325539614200194753029148170856903716187656209429939770136138747455434209476648960697682476518161276383843748018906136973564308712757902231430566011604383122530204641468199919918911472885418631499578540388928179299149305486902124826576238335965176467788327236351406328919242371668244442416005434705096596560191768710649121614449936887220565539200709767140435443542193748377114730051649428651582995383723412142709815868587468001780156347963340811976298921348381352556503249509832249108721728095381908254963242444159742617501562544420558536231079358713991506336198390611214676663145787734016486054077648110769630120527236627941703800007896121484956461004416673686839876359057490368933024587649021550611663637314329916775488529817932492456697570178758313664779922984636961146701144803465329605332745687284048082594827634146783828098142496160802540726312995901992110612555006945947197052095139354858469316491384000159409000100874388281787232954787630418173612604512710521720661245363095045634907537743426238017558971602728309933192558029685593096892271884598679891222808330164164035460366952378827665652678608679192914693092269381752749357673552762650702934595585740723483802794226406391343272926509236014351838464569332348134580711573970048255875638103366510828067946168489266371172828717138450382706615792882344254573750235686604369749500676009435672940231187888506463193339963357418288294861281829284113962264099823450565486108633729723974730273021069687639348571230542433766808691348517574103494571941057763015828039046307005822862571706627318540761853324505213621547409468753451634699827956145128672181585917415643145609795763035678163635550994673548842536029302597461697988137491563657154518748714437557002300499795541811764472546691944466326834610702168112594452635756139220886471705467095473447954549103083762307431924402895986657032042111891960008325190444109321711421370063802659290765530568446004681285543386239846186403300276747460024802298177226605577285092691841788534200853334183884976657073206421344795072383589451243352682497532554775451177476194921483485284669081150908282689075942236099325127459220572932067291085287015650613437614442320257030539758354127193116650874657303481060342280397951920501517869880989995134952105855265720774720458020255748721881229072359092218762024757302114060366935148925223477685779605171004732206678222735451839759537022837490787184844644478134433264136945587637022088761628716241754866208124326259754148680601519668568967200750220921673127380511811753162282465578565692346594545772152295358366080553887315457444715558958643799530387942953805364550346622093591064224924524339654406838831930658999789170871441655102428210469577977959534147785417484436219937786237121986389712773040641525563428503189413876093651327361426852212519814101790801731534482522701011467196561795208481576297285088198563986901717018537105246732210504700185779143037426012308288365321324832767457565088597336995179501390710620089602440293647037927485499756008690655813573076790453292231153171465184249171651328676991480826244826066344444718883118212120314196126058337432438011587585715196933621371483080375681842648156308203850492095310416240873268719440972257998221907570499955651607533469974463291121135710323508117141477933367758375328446719480408191338148065736837727503680122695360015874561480792737142115753814915562939535778859871035898347709990413113525006290214668415236070919632333878094519780377808369723209248783144468464307640627264840034894062877852694913727926251672427895401131362053438594058097143219378047868816277361481775674210877415734901821062325907885744514452865340130952533771404844734770132799998272454190516937576001000050247959192541204723271549288384719068439246523277965906812207606463345752452188926514266901903415864012897654171371089995176644828343950877333354644671073722251296766352373511262729237276194856986270307799694394435567739528643131467663690522342301384841624271026515293649410450715399236441980433621432281307656833767656284357780441824940613286134595477564534636567986460573511795541794552085787016976318523910729157932380971328408744190927801607567387956224958226047971933117069772524201637311857709043636088556003566997310758555770031463388810975525911401766169487822527890115188862309731698299717946019720192636713104007599357035490988810460134132249782446037297774306853617825879484681489427033027353452362335027205975152190647451594767640171354978731688830535709188697764878147905549706172901901808657464899779445615827292670169915138722363555570305351297924015087215749657704152561112936062469915491551201286563350830869934955466414320635386422019931654991032180132864405204623386876390337775063061350534262532353284411417112789863219242008458007505460719777995223284809843847879408158731034691798644404344874224471173108649776687067548670648680023411508648753668754990094201853333831151044092282400435785419408645720189076046857778046887785407199231734555181558195635003743290298670282233544827302787298226917904974269140312695447274612982770865987311010795781261144372451210248055554293225472045990327710629126340615159924503281719059389744313101618938340968417395053979891702626387489470518013148053089269701170477058692678958080346413516995092243146095626576327114531983296803289876243175004518677153985967995990995744046571047881816770771069336214203379887234730547595868571910009227472632118330425384254449629157695365672703220207251456300094758744768013588156171283381653594459627365959864096812494734192888071682714974212799659726566055333988564050076803252086520694841510726042128746288617138515163709472645924071754550030604828112989769882288981239497855855934980083057822557622597820629947929593958465287529803801916220335864098533958451534319697568572137014383936814278678135502988613625450746542753909483766249412609508019521697805287834222480776817202263360656250137284114251809364598998721970228804620363036261857800498897227610912050032866051672814785885538998729322407574105954864241329638122657558096066617411094709397913847098507217648315991154014428936694542166825472081111787493289301726268540720685628579602086516200969455885435695643473453566564859543558042076410242546815509695814632936165433625082637119913820208738513182579287692309701858610781295731028205731026430568880896862135920780430784533999833813395550229346269262398086214372455395199693935590309910492193541292104773237605216145351482741056584880728988754380320644690344111451724602696622666211818482896319141368717487918998041602910266264429473174216628550207714881566953903937400500306807641338526416537625224270430172525254649250358721082230440022149046042142822112647545401117690177075655815719757136524430570004591447655973095046809570043333052901824384534916070542773600698368244608820985820111764755399428391605004600007580259698312614782801918968365168778583217278827365862089755985541066896781484915058258881541039542119390974379299427777874824822034121573369067658371824262525214121989182308863779498916480278264323453851569127497704453173074585503866053372872221152441036462747755875550470542454414808944249938430771600945549982016169321388447299367024837119497929017351909524666796932258212335080618185080598436714012213413871039609739497019908846772490193865251659993830483782882246866341598531485739514808903664569594744496496572275450112587973661460201749427688680888310300122799028730335110785584718814092171308385840481170759096081260276859967852092064960040102436153743586700670919636196033821200368751844813745961877592945328400041495291903495660851833459714369447008995528851810078601435073854254871762471798154470740254849449595216781909547590744243181310837565126695661154797837544550241535812108293163151590750662676307735626886167074503724451537813505603564861802604800626409134436203567061972517426277719535466203794234011535014018517528457478345924514592934817304804314866632670010147124408321624426844671343956173310538680041286911965053747717995865025291423010922421763746839087885650061561417680206706132378352446342098135108946429506710197784218275422249803483586259704578662046253239057101668312207641584052577156840464475939633382766254002089672793100473011298371902639308940843661990633194072915455155302840754677666114721163519164317143227507474304852283634785560357335025131584942975289743995990567995320868371523012981372946517373363341243553920061345258998781718710342174682590918109950281834099521262348382812649402973872091525726560963628822466854493115546121422065958745643197218358687100071492260102789130844797128058014326631681018152608465972825493673520881006265884753769018089934875353089227247565176948753953700374011891174412949711445766269167514799589211556318525116659649939763325167506303352873312259883066921554400971884732845828772560422823286995295983224075818108718318705815729107373375859982117864927129909111630226137619248682333349782964492842600026939455393912810142092101946357600893941467415799254467927325258032917319957397628985652340876473317364412991038539296131938739438156619249777132168413297910186141366051755719692614152279864166014027620889802529494238402178919584110675347429126829902051773415839623747052322122713929826744400845531331864485400029774408491734736064225236477691524363741522147975081571924058401496753631595492414093383475846290580424083964300789232047569853117342971996170483636560167830245189217889774561128296494854397635593362521964511146067118816974382603386321405498149853935031589690185214600249791605593179977546570382988766692620289833649210829196029883766409746868663170289835351077313018102685255287062520640350949824154189813775009723601827596499931127884505934483266153836944634257329314103171667861239957529515704966187833545350396984123921252752448931648623243679745949777529757378266294617208143390049311187132385633195016356456346723975965868224933081519795929141028692485658332235045118037218738969350112050404762196141116268384806946399677046353335641112694401900804308423364631695446258532138845223822461489613046144504076650867272016437867982983785188380235110014960486814280294484697031712326654061092784072419861503174972363766669214811699097416036093433043349876023730150041942471926912867287173220417966463293549702571420050309666811370069363996372880367005584603057760442740417471315513750271455858207457312027470784004727358921139430810250829665622928780114743604869921425748590999508696771905909128086796875938853676935410562766835696545874800407634909622239681122354283904260214521532571423576050944555037171411254354601693929013753689770195239957357841785082953944282756449360753883951993263169039364807786558431438084233357601044035187414155173529009780737970601706345711297137073489867470174375572801853802890954665493561038918596539780342199358686571403808353012526757921966416704638730014975380383754451183930195578179460769499616433683139660933738892690310317713449396807942616512448123108978087154568401442511159561532466798177433125889647857438501025917559086122416755383991067704045875834485254963586237245983087752014381262275489214089291973484768575354828976854798974844826467730664864628996733133172638490331362177236782237726162616650257759899605757740917813361447558348269871752422253433112794589676863767126583789353492129730274097115708511098340292161294821789753998296579847279943061050304215129874157802503013811733803081156147660207057469246123071435270988025271037259057128209820678446983227002773002052041012682364989102600324832476249867773296756760307302701382243835510137110171271871668795888695522009506854048097555213024888379911684363545849555314908633704904890876911769897586788252180392668603160854056056877245252765655906409426548672497233382125618859881485720791302207866393754039371134614490659194457973836467125007780048747763470997244668004676478288165922834195691813398213602581853872909046679235678925428086398292068818636937875641907215871615116322117264568995934072813016433234630505993249218324557146063297125580429846805092507080638147416450811312017723118168513912373612796523780555509199085899867725824420080750946129854025674140284679682278799771363323476881565774645072468907044749417935112828768976462327756238378174822737256056908413735867905270150131180865351113349576149821197767310190446417128861482522330738708747829186225534391747166811867356290836231221243474693554383972434906037322993577801450495956926555185630201234471827386535668326134023072130682395055604397458930918207771152817607723990832929715614491402051419212121760615741246265532441844288931723720214697151733842181319300753029362453861576581564079977398022033926379622717087913131731575287859670452775052723103129640878446163474878336524450790324979169167766324763007614025361984590984571695985161874339523909770765945979105795567442676551431085780638723047983589932025313832762323429080761131063757136842233413176698407987403097641045949346830661292296258867258016511256712028115336580477312543054908202756813488424626610506601364962400620593627555775008736601242338680458315150947762291807567820462794801993534383674862868740906798864803739613427140897941404015501239740318238872478784716176011600102527386381521578207769744504828911866715684518640350038435127655074603889251636608023616419955299766112794982276738047807852566790999957680066102389162326603656514587991808878678688939195397227557763504750475678175814459293275939769432153549238262622384873170073017191491368452880428918928948432258560328482426091418734379264502897687612675342459997844292155281792678762108481224476369607411339644673918345207547514546427139699498202177939837696821149406159411290307618082232912008419444892465636447697175176407260605572101300811676039656597346524128885749679286007759951429397811223227465017149970503673558937162795113647358337381627112191633108031051032656030375822971798820171281279350377938760724552992766596708377328607630469782154665903852401143325199755126246247481397853131826149214595368118570785490792977787181602304856437015013487900145145300588527923390937967320913882652930296070561158108962128874032159240658630396599878661890910250778056660143811234461843348098771152919847589670012092413015222544415729169576342184924528650762319994800311245905275436385254060229265345761472623076859366594897868494330242786120996174567081205386198198916415841198259243559723247615586369895188417773566560438138085564966903027270904417869721543426348239522094206047131260942152412577536438686703610443794761761183618404789770606990392623796161667084378301102726335798634573056614314197872968660287150758232353427787128931519977130845685380234581406892169789774799476369083448287161886979835085176612971965522028174042902755870135967461755294988203711401359054071570325789018190599634042182229432678871166226408292831817347120020997107480140189890353870797553050081908874453701789514641388656149233316929412100690415441499785344458489899161000176273369131645248509055631417966160285133301751929727165361478719953460114660463050385847801912966426106656155876141628215370735075854606942287236438117011582564798116629646474616135301098243698259834440307638354348548531276804595458605857467427566118174996723944162614159034130151315620505689669962327457244515244475559528750735029407771486109054404804419005535018326261511511276871308574727269094681234851983253078499045323377440787386187258005663902840705181521075477252839242978859130661879985509620096510767721372088755145635634729304076665810343705560159239480832916106050367906216540043601511947465529560784702938889914598275606983517556472804080998662894099275846344564975915049292585145825799860325337761593923194781707603104732571319105107235067449512875873541318532252661432114325984949840775982815840704935490861377246390922903929478722714890357781878711831578521255514094773318534408514172265610793600612285379677966261726020422872753151861249040669288119798205881463092688387949763991458891554230459330486813979353250769103217695459723899180002408177844531113430929042220074560912628214667916101546598915642854592551004502094557574059506802165261295925499765984889964176446444284131943002137664661410609987999780053282745209336728010732695928537447764849776601973224994330644812436483337079305905346403469329096528689936301750282468866646156591834332514245238203628979787505889884459820859537883951329080438895216646840296950482102244513128747289243401919226635955600771392801324509098561302016505536543108226385072831321657392381799362338782089389362569025552872572121422429472561540072389904180036069717816123634855300598677366943056994815153333983886603391421456482979905480150195287417728460711695005999872925288845650704837884218176864132488573610933595873935524730247199086782863362052508421942245830858716838577123919004138977422987671257199907272038027051662230865451771276738634485468064726388401267536555493904720043825832034927882992060105973663150928265972279395474573408162739718195958453716662424239271697443060191595881060475224542768731043678383447701566108309340581177857710945681015890296951544779767349158719811556922252691152386133546962485764088930751676235062011346262375963067971964522831332936548567568802343663663358924762203642494955160682078836888998551133036320687444763526322821237346039405688032159621955650798433442833447771761977239653152122406252874804562230433870134492260301518558158219777859007671867680036474783460409118485269875317260818845787294005991164529822188313845768968762686688875945315795755737755315727426011359202965722448041710558083068684815526433139760404495314653025944537532222922997351626387774621410366994386990340338954318912378175867199894491506179131780672057707524426236197954892923414003110138320056741859895616406977942214831972453208138386026541593032810211245282727545593342430349811623368830194125414165543864388280801029923576112061944510513665692011446326710433213325214704607684095210194882208312229393044586294082194260885369737860174310242542469207166585719133525605499546357128434128487426933367235003318061525001420361014373294701627189561133844375526429277803430568214123082933431865912508233978966283895753078085988069781161557347635034087279701750156128212917146913928006671982668032541761044346193538291319480872845386577900626937109333427458581774259334478969062208722558400630947001138346776698734773188947632499915422206304320455390521375237532170262439584997098363755332225595845193470569384567433142647399392368637590996722646989309324002578212346558022315765702161651885711878969336042412533847854569760274997157429933697937528538503160329600782151476577042480625190286556223077399318293466943493101094152331455469903272411475702421092779391366516063354181518835249505222698287281400379063692141210803667916755427724764436370248348777058602758956076257398962239040265107893783411561387256443381316665345670240870024725693921006132940543145582769021332193586970561192091454307307328073596566305177140170657831032570340271308101461739953262871733391633942517839566030991699936005894713759818958957273561329888050196120546989838376800428887799956663425056168824647369365503835248099368228382412296615827288816004300195143057024418608642596318454007652723727089831087465415008276532029374149713659201948866491094600137959798886896813850059542063510434471840683116332171492599646411488863943929989925456867402447226626931923974807524010996735971246172382111164886914190485412439765053769354619381207378320820610035060913983932697172592399007317069391689003508546356724034578745187835104101586322721060818669985234341946467244181442135813898659433385418533592782810194092681666095943483646622578070846080814296776951785789045026197288452445911926888118205378090468955767975570097097890410441081490774054872697226819979606198931101158857431175555494997463014772472231468484355924084155798729485173385559515322555747487069775741342812311268319630950719455800199947066133873029663807791091109329851281604360452122064108461179247277800922824192324903799168306520349957889938289248998447496693966937962869307726160399663466076675069583370652811059568397279120498311342365872198246948652671074192805173026037692552993738946549467643080872481368735286311842107315186372605434487322932073149922955422849403568211367241183369348739447006013357050918162009890886329341275236580470646507240616233990071592707892621370234291430357893586998546738179865982751741806386730283318556293708241782788742682829515453571321820081468675015931593120501537650048672642393029489447722049500936233151048833702473268525272790156723623140378792815440574301828754981679234285270850010444560966316909686612096276651430078633001260082507557388886658840435690414102910497265037117417395652253556032568486596741100620628728657465258884499953566886273503344106857135758202040255318199798404253631894413170723179794559306827143492876430304428980127990479780003189598378111004338221618223439233689853295052939110985295686310294704080902379487878206429719708425054978284390382862210359939147296529148497162068443997286259735100542558505803245096428770865774435648081527593709881567150194500034550598600258025580615662723391795268386508662420778856585119619901849053858547371751974621139528188137204956357193833381968952284551243082132442963629117106125982313567982826638235556779012397333307684431724000617543947438585347184963816152143679178948775734825046361751115177473154437303784838582251557746187076690005578501145385109210550857518429897027774615254527117180373370301347506698723757207591224751787434194483047597433401426752366044546235165114494389544535124902445125797445075044637647077376885000719200419558342073203873157737795725854407257603196005405559303039009214784834160210128454981794952275710840066801915134488593216646365668808821849411152247725527386921726588046496156172493682380381530232893533975190930615672325133839354282401074047105453965711364035602120347849335270077751028374816359104805688064759725735610479712789573813987817754118878273313380882643814268802718336274181260052153796344347758313865248525695853340589388093406877637688073255905284422901981049407818614176315105124452193167142747673984656734233048317391711513083501804295966164186525874282966961565570030088486210128599700572708311073728809126404938961802076012531356462965480999807908244932794946206269978932255472999359831510725432617511238029550052455008462548429079020706512056876273005929075593158899486373844669877661280869124758689553512947809514615230762973280477071022235084712044190794108706419438538373336315736690747770852053103782839542519014996342352558367387141660105863468631350876205466014174787351461821982698385957919186912523142867279499520550576488134568855594096285633584418909529569768929608947228269210721357179259485234656169339077532617867002321282241083962957562963464259546254266616462703909652665896643455028106345069125366407567694975367697555322615466670216392194549515138864370754088661229698081283377236928082780084673959389996921596164123866312580774445511625910982216409733386560799415016491518069798371282830687322679258057942975671412061198445001975197527990459436005703603796850135835377932804544973759875831010431251538505463963510796511734885679508605309678221505778078186479342342355034095327262174215120935157204765384624819495515832355140222872299447940012217245906906573561643105709629616249950999046711766057077514814855324198103989729272731418991516802235258436190405571942175026643725405263841358463524594783410458257646417915376679473636283369165972335304407220132853976734346757109481664988636413611078268655088050826478327259978381873917825444858576273799442724274519786531640742832926856690903516860920189391105447320885391296955907422016752111715369516750791666088596263436513975521702970262977083747554770552795322049945034223449684948702627495482553597444839710740804116522157304883144214882435776842120858002043537655580043066986527906447265060731408761996685525382201876512082769103369162428863650455497323192200584770970526880339959238447344425373770152045009391747131100395413826109667978852948371641587559254503629272911129534562872666169104648083354053003558615582351545003991024680478995940585664660049833508323554760956126337033885194356312510841898859344058529755867709395862251015633613897159324864151927772249580847433456318300156573199094548187003214185269088716077504059731782478533554742811814580252154368732009161990018216033826364933737051038709794148165612513456688225310798320458897394889317536255965569209500681873560414609293871440945028247289994588101598175444698395354681812025541121870752748413324940016814118746201210115048419414869432280233601732160014345758010885020570184739696466214549384145825703746653170599098946958914640397773852080149958407981181691018539980276274147290277983188558232381339450219149668329949669391833294891027340601361380720900022904962033898906708806601442430909724804900764143929210008694211863528421791419392844131590058381273781262583815369664296977285844804747734703024225638101678142231713902689925549454253694278336637960894136539333066633713092699515378785845559237722856127101508657081003656561937261341874922220480378972130757285350842954505472163257791874996716278491666498322127189502235611880016226348211943858920648260951590566816753479194042188996099474098632200837298362328187757287328511967594968376136258412188034130299326592157002172134921266551499880837433706329162869685900013148179568052255707609864546046617192970594488034484253104916337608581054639952386806279701508764604976735181552021107631145397164070025401815416864512728751510692420636927243397299812046981394736200524818683371377842437826370901341845371898574344175096871052911084338472141694883822659675885821415562858433172257547326550694077854504031508314481888213925031844125162947018632365635638327259842885534812016942732039618691378349395739604597702886243952658355863948779572371907798437334770958394122309238213554648517838462550608834699299796509228279422941271401939225732202544569897326689133586164900042934897266774609326624353403275791576593755503696653393267188563497148696320073137222245299513747724762542424493549701485822559215803814750986937244577758738042914832798184435247751898942813227226676132136410520817127707121786070918063973500577426949356100780074149006940626006418238194223549100423352066695754807424223805774925906034939337319161281964247153470165559675991166067796061131127559782078497520915694554931748155811762172167214304667681243635522313620398513077896979353422088888625695322229196884863932811535229184643016884347942117193011572557722876286751139509167200036696375961815207673302843526364495264383921505868042321820618172358101814735679546169629979052634836765430402042862159647645484526757519366934195586333167755082182520044119196202503695411686457796997852056597149738314977111120418360633663068460830612691034464129218377619896658164784652174135421849260591164304971014945214517027493599664400695025724095521535300553363194729447887081454789483171975758614051565847274063979084628508487229225403954019321617938836825957932734078225411947015574600684025793679689688983891796099984945305392477681510751056801555150907628709949885744574697170706265378428000716873409757527653638377171486029587095690544478466792928919300122729137654384912985228700436364312523833469203513211745351384764873720548244777026319128334708588785366301994380370246033326583075498675563914474744413523874001264047452251552551973068299961375220672805239019808785222598763740041012940694447182422642543323910930814515132728489821644445062452504321207563663840667582960693879902914548399382919345352748097789635773922765760274859774396125063869321379966613904759157567811369913207427544567455658798257785529445551204218718374969118834802568734386348097623410957784372137029449604128550535919125767415367294354089220067796522895249800137543800327386927048987812526463588921563429548958483833273405526293920953338290383855732374487420262418168455797881701262301251939388699920553442258689025888844239033230799169783313441832305499736645510776815989794631861368376253536099476198522046278192134108689431271320642630229008620217052649194683643247621834611146236001579408421045815970230861467665008373288053546820381865911336251536480259585731986506212766039751645315841783304527856698867667332278495285559912041746023015286445290660367515922145574487106331073817614336057585449741735713251079721917381674504993954485755506259065960904990554227171145387303510534494520267148663299082524403028122636350884335876657983761374424124732580045352060103526477787092105100324581914355513505299503229807058683474837096266273964837658957515054641901248938202181769278458893803377982215601095657317473167711508623843674216693612802840408374723584383022739888465571038460800911367455079447165327411812604933611991617137220092284898249733513642107628435555416880264027631448358779668364007166590192005156071155096305097453834899865085706370897665030393850510808005807097769783924440889569643682835102419946285256006050177420137791028086978144044453080970767886442165934669596029637503070931146359332318569953932510264007362792759537377549119248612698503546704775882150014784217087344120425686621079926775833744873644959170982088126826667995581556650968156386539096143305928747876031698561605614710538801795066973809830849280519514782198172250695481020050393339498880112408219143855668115107085753212708436277858356191746429215992154584551416070448107535375459378997617604179675266678387398787035204658238311522213119867940281210597583911743198347671742277516415106691207398270792021542436000139551477497928711839271479689892789920929345046097015177569887555378772126318111251761081404380095924053044063094880126593306414378471953286238957965507116227612944369549115834138104888339088283563187766673973424755996252707687274145637065135850391716925504217672016258319611510551447958024327309437175223489252374248138902843405235516356487186058339237823331092111847691169224571041832630679560502483454090236365730704433669559673198488602941583516117931026074364456216501687750473216567182386385204516982893563201392079611681593003983550441150030685647026613263067674678596650834643351423034874205183157600382016739342700586649957490465315992221807798743563427397164234612681279748992997255252629550611230128778453428790657201638279129400703080580943083671281049715138133868853283590000033967679108306540682818870896905938728951026363426184779914992177198093706188435141104913107648361754732588959588758354515108674429198951755048642273942625322317967875495673788431395208515675504751867216753069895569921186431028239606889548640516298074649794589162449572360291601881833732090264249193686355635801037171203351971466216476670006640453684541791217599720824175649907639367659988372111442182056781617187868893564319174860794512466735722551312338150188448316289661317625136608949965414834762683635250819224783650641177420663534633129645011773928258697348030353023771280872796409985310984186883087485436299876383115176393882599811588730373152159946737987867815510762627734678638479944460279839001038709438647096151458026671107893984675626365360368154860122181208637155126813824831981697817972193174711587421867487698651341316785229873126633114826935304680279849895655495158180407347358950637304028356695640687979532116694943428280401094825386849864071822375962360049543896836686695283980120562227688126664977841641007155741464889329998761568654520421246581106997202333718063961777647286486729033483777953248741198163304275938320957353524064845510872804651087950031116896494673976759738612684171858690034780052189479229659481343686014054044507509970577415797859457501165683253452899021591282239389683962100907494733811921531074207417989628146961245240744934307702136638170193551638666627925584996747876988522586544700246058391273242734057622460663471608271796981041173807587222874002912956820869188443709469541943104889682432020431543176124431540829805680956596646479460400164828716775789283083355904485095790420062407534504023964785514011777095863673026552425187026031933067127860915984201591712271306641218723793501063750888668147313115934848575574651915674382249329102561915449158363630874591850967171212954208687747482773524832783572261361359403029838822516859143279038780364544686177848046052079334448435244710322013654962484431302721071400923254667374752922150389861283283331655531635615128818295644415208469299213407407490691414498018960617586818997524585785957682780657628029103310771154831957528067654319798277400089489897063289148555706517949873233581571220648456016255835331864686354892047487242547167826161181190968948337490100544501690946798553202479348570759048278130066447819640078511808224126038221382066999305691759333845445648292329789642616938671330707069747225205530139087185083880100683840438638843365414390766034672338662998238162040415347023283006221359842290325869210562353068812896418033639801520890934279210169635456530810973256735803959624394055442432543855875505679063565011904589700953860662264133583143743608551456897874855813067223663103885344645632750478638005438487033050175998136801854322372694987135641721970915441309615101549506178493401138722957455694034695874458026642691205270289727766192535858753961690524802458831623023781972088882463459334579666652207829681529837262057211002811070847327896944514000674374771504779036528041696553353509008400713861136682957487726654295520100742965998712979805573797947817202966240521058697060147034303628498796837761718424132639016986738242402869536201115546522334886812742258741309894918046101028685987042949680014948263025233516260486590461901400513630641370556275739169302072777063099145034351114783890153301904176522164448416211851301843978785364756831893779237742930719925920684511851542496449523327871723854601852870935510107862542619276010540995078114431149481082153540562618721496655963274932789407047314277929951302564034992831852099802674322852117326611819458546874418660500845204997069388361721502175748296232952302208572945552376692075583213838359521875932315035088108039062757003434615711572308531884745461878042448026486743391601045752206801690153751252514199466990345285483076237153457196367878290976948777103936857138164293857770429185323272986912143965149533868901748770847642330740439118798862294296716742287018909041155035277326810619758305471534831441017854216234559330817915655451675768856403267655222464673433914250332948228900161483418811635103766825814180905236926298182789028293890375905837024696093478062950345316510077196465921846131371197671319063612736155458626009670085013557784831772399389783307009448973964153164928983492922835403811119070178438355380755476980916372405493052072806365791787885883905366118770369838402035082256645307621028089370066102966327403078541571066662260085731871221015433679261665691162721613122153440828030370476916171312100698730235655695943967575525375317542476689796078205580328136266081454222173899816712196060182170817043784084524633497052299374387378181807433367512337088898911513129227253693625556090687784095732302993098854149082234396431142373046306467507126843405545926243458009611948761235222728367726840299666112407059159729286100161278519929034284019019059133707746137389836471896809982276904071647982437882291170823750443197772024599338971762579987521891341381787684423197485397420617129328303795496074697943135660707522976888676935078331189326792836506125928588562100938029652707332964586229674519665593810636371868227232498340384461242981477929610590163917780859695925523094216019625165818996371735011577484198443685087433314645042984473162115643666043190743583082145795882780160094465555221842166169223774691096190937631641872751222861912718615632866280236776973664127986255252804787960473082838866704452138697806063341310214700945930978857686838792406472069843640621438234859469205072793751386278305346574848782605576039592297666467204700785997155394689329643744544609719870618896965275550756277633734200667815055341464288984340008221403329516916037949115641513743844622404191678253276872490523615859186924689499003180884059121526306098877821542379319404089715295783008821836875101111901742973495079892161479235505549864402552669731678904822724821711830509731049922805760090962764840671133463599532671118773361826175208049259411814732176638238655959129819424358459918842170214347550473079166535902511217534993063205231041836653625190339812232973363867730972612274756489186850245400860222023849644993955356805906044716187108664382660030757450978586299056961615528577015568025310093995071548539738511130864012202478112877206665044057929151020088757835259999358019051765752744851585445505269654911701139650832380941699312468960526345381637178331091674515107399908758499432031765105314916507621696886810922128968880827154836608627780869281283785803407971692522245070490875861748393884187768769152317628434425164624711990233679298619130153063505230736378138427249474910021372883356124626897276684291641367648815749992731861929117136755276194239905730810409319878663280597630907740000565220152831809491433764165044033076581264814873715780274580996440589179683973221075146848473432276283653962002323467881159832882039995331276573929532663567112416702997747558410625472516453663113333387658284045361045846618314983043216571351045234409959826116191975998576347965444822386370761370531855275372747234893924093170227354403148228463126001064360236611459698806604635255259748846242425748182799359268217001126650865758042729290693620503886959423929499692929198386823515239256926270875569264344728963464969257291298326164046808167615432002697070284778156753763485006211585736598159990548033903941367749282822612849431102520740907999640227597104329265539206093439387379621186490618944707720957197877356951529191643974115857968683881268518550825039340326607952443456582769287427498227006786879467972001520475096088127428131613010982409361390197973837739594287283447489737677986207580087143309768860368041401374598948483835648842953710002540183578001626972155080435181536633081185179725500415761361555547895265442269561745374433623204600303873274680326106760460812314549241454619351718149078762319127330940797337407010399045649525593687055130761073645120292828563990584105211174542545912560093092592494152818327559765147131761725663547037942724415944569277320447101328333861980440284523253979389337337974838468590144762031301222448098969746732775891476279249489111605980312090859273948072641713347267825485157976442187168094189518497353029420351188753283080250505664905874883110349453513797160850422678884271288655982946235481876112926016434239385843801282861530570915951391732055557921813466744983200908904394244296626262337796918330081716802989025004183250984204782216203361852870768996187031573698652218161800082999240844189223787405118479950827034391680067848165703186115672392295322890002637031168534547302654627655450319521019733016003346553642473993066505245084079592436466140135044070762466006277967730846846668193125654283472390629322053460109459144136624845141311971338697825956773566808573989684224954309834001920440402772710995800510591790853296155869222440024894456433963632913771945782940121003224849062031609916727776440019516784106024070402047862860919299199147313961797130883299739660471594293464343760541203824189979823647518013830105305531093790155369512140950029188222068877229383238533910217200334993935059817834062685041770217807704790820570298974726989653955634322900852994806483503811616059113600064172249661533462451898089696357829054854773355532097992740333010762784859711192953389539364151070543558004778027367324619492318839451047179227765759022331104536660399153724167562910601067517717318169065943954332374830668908477697598436605462153757379183770032053676064614690581095108114407814014575936041782331075736806591534327630587163952263508937104581414225611954139183616002784310879218672295642940367051867160991973713467865095615086992664601923857846966607644925473428966239990805739671471873252425578201991188129343561269415803443057050369791984633182877429761232579929807326284063060866005432653142693363525122142856051678547109168655399224103997270800800301014691609497163716389044329033075613968223244371223389897389705796200125928251691658165712863026240276060418192486354989399322353315801690159110862635909640768221375651874006084672342013910038270473520903255632817751072512995879589204603819424139637122125161165307209246833144963357046287862147456890238218449038042839613501757662507698679604966762712971675755726862980868371317676350978501999089246849551537436781786665377565964554635478366314020092039103545639715800116390570438836967959613936969925706807945050184640305959768525450648437445353000541722763470562352677204681870318171930628800480152931119967210658501820809042517609486825044204340102103967697647053592234392150300627587753638764966933969048182348243969712929822217890936284926056091582411319098469121425210357898392272203303486182271043912580368669597446406194678191622058565746716701824930228677946780403126320346963541786422417090854611695709208655918832214927081828857683257730237990683063946309470710014485987492693779748636282547177342675238925146288719530254101462977447013843998819133697646526259178909111606550852383482878081165205891843341859550883978719952346704940340944749037811880582518570739090335189365806089623240950082052035588426954408648953489753833131453768664129820788002814211080537823902226946833430057559552323190856473885837192637052441203505159699251257596002505439568151087188893700308766917514298727030671632362203325452906514097926392809166777672592097182895925704006417643409106314139533431891917048109718240661383737898569684859067071426788853066675013440192503781815994232139073581785605801698444963254488946203116440240138941944158185913678187764632449951832266170102223463222789738911665298183282632439562515196023454268186426960350037311292103924666595218738513183466546471109373108914933162255945679833766692971263300515130033296877453705066753462410163785679126069624858984663982651699670266194305334616214814786008644764936146266458030903232868670303596682339301589102266027347257155198571212940923185634927948923153925034339438097174572994104688295615842149090911672710330155480200781933684943669555858818565047736145111336523677713409743057856264291431448027024031823361812633634845816618534733723506444588811215964217521077664031053899113378050112934712575518428445897549277541831105051695793103312774221350876925702911513962517463354478133613695312018482229445582139788945705533875597951541893301164923513329161631518199393004167565680158525142708463469962490197977136016379874133171901364945616205826919064895253467653569905487846922043050749812744525171988168415720935161467675208486232772967770683378180738798646768651300789778437688546387846622910726815156868547751815904514582792013774025293412603442360184642069995533020287865613130378417127433175503831141785903617440108718444097236930941351247340757488420116421385048188650619508457728996351125872241273555654337034266202804174300446181490511044155920558566158598930033884854566047837329353072447916118118663969997080859291707649799973595469085908082829391686211633710726938300339492121269319495491491161611795445629847447597752761022884596553322310867558505038489009226684378486380582753084929145113879006277391071115348123191430766437965309345942122671899610901604985953940879992668186709590903951497355781833505947934529037337611282582445684015603569002046474267334179240864140187474224048462061315843738960660620047497681518143668992643528573256057480879702302059813468785985886203973822349566492519254983250652670132447473059645721150586268619494263698503454164103756389785300702341960954303315062848610897092951247561012408000727491821742036197887713608123099363233806116923536654297496155527755072558573249896395653949774859800977482407057388523667482228191299516852659098264055690597281495858729801728400598254261381696703385902137042371467939801627757414717982508087841012811446829513520892347957563902506110244346636052081453501073931635418356563887068374136294967466991498595376686714981876227016359266194224200183140380885922581139250899254468044542146567639953955311795148350595941784728663032345208449427570932507142289326879054826329182498968244416501342187213455349209729381882170371064211352637393554491065411913183786049761694868830507677404821755429705406379440682308439901246860912430665803102338132505632004135101888892364098880373270918639305777115085681201799584535717598932993205292624915013566568554724566221787083124201059535238020732038542900921418301222978895876757998854825820320819465517565490364902321470692611663897448333482193045652194436412770551335945204297401322539974452120158524607210306872903704080163923282056412587902201587525027819722765501994730156651235041834447858116003627926387888910270008947353889994389239704560650174347702737377639809115644435563724261227504434870141817146488961151284844936990325798724556159878243763819561939283248370287998543358895617327822631545346922303222032872217831838493608562165387672035719336978968605825075662598686444350729800759839813676704054317853698913676104341451889075773069391475093603660368742747881531292983335050185778131688783215479107227142214565703653471421780109082273529099568092064276330192740962114899809943515830901633021361036794382907873160478813762083126569212024882869113321484180399741651400200504737013802040915806210736176564420069867376586516024335795117201756982916842537802354986135706862530116807852791457778362638885020818321547720003532747435863925972959650441776914913325127620394501590358399865484246680302356177563852382272294445135617481643707651717276749200951017060774904509431076865718302776280607148216935654210724598525729214604994662958269771231339900502073318840208280424233607858270547000369044264424718542829233399447474135523967046022272073276430714184641771848373544861649959565105705665537591256186479314269929044477548157410024417263852501050230422016435888576516764440812870374254040651486156195213740603376864789822659137386193378282642153203543653249259443409356652253079183488989003779119992406405226649090739075951427763128566609308447061673666565158908074579980404239734208500212633450225912754069556479261665201447310134679580221283018100731481993635828675007276993529033637658145203680312220982927922250214505566209253523869253954530250501030544227919142556567278463200573596709917416146207745010168158186141503636859696532963187870429496984508715115263881573023915032995679643373244974545862103285944358884506713816745255951686896866235668505920995625116194679685577478524959816427765182794237147967362521567295326983124808019717926963542497495935316047579352402716615188444330068466217048769122189399283982351315432600001049333315266607479616819915724281691021635852080976872980385917083798660249047301965872065467501070622808529576042605649120776466816018469248286862299260473063147654734228744354433829290597287435188839552753934566808963540785656514781372950955567298719456314895237055044539804898815460914475058397590148993394575769800340641991397191446682584814279187466301393960399536585010205159037640144121194485802110240885250749197943414088367980270336647371929863608515112743329245749662306782408630554492667986148654930907653328228398924942071206017618389681154001289647453716977792372970796631458014061529053799677047472506275855100978828167946262019736030634197163807355447561796315627878150615438961426693028310234748877739980181279952939077632203349072665063696153073768056942791154047253687102734819102547794161414405852864050413963810728193019238500908324371087877327648264549835341181063969726873509344523661286098659665884718324447106755557707241685384984221379860911947174443665254350352397792400648859688080836624143811433215496576059591470749334542289023592041278752353971660004450464021329047118717742585708022960622376633935745401820019359177119785001601648517486371980155763313320566665991369769252963394368558020099158354023925125871290818881905372630332068988227736229966263881285961486741998777989909157618421747986181957196791929913231614067689303508397477992783640594415051160676256685849329473909518481608323602581829568039055730953210725744665970051830982928867554584347348668461905463107745411215462242869893628696458695732088831801890745680475420727601555033967419763801992720185316650860907867213352961252859118618947404632421080266644318290179786228065974777652128959340787898802826383186155954767579959064686566344931272357949522583078855714865164686311783053244831321506717134334375108759760365789554285533795809871202683396866147184958623130776470965549573914647899509350946239841112323184538974302355999188289930384377183253811939264115636090548779258428064706426021935266355694817747341581079491371694460797439387826779647292826865127557613087780613005860874324984254896148803698665937222057360857983332872610901663876049918550180356671626266183760963185513343890571744196621920723062328495758041074058835238980531295967487772859000189086471735183172438230803313751220168030235360123700107302548783699842490123630567775290563363529628450361517537782346131261487930726192799923833423559677811657710492685609949438891222155771691959645945995491139428678323583035203815614865908877634078053477425509990181268391208939765700998163610580651757941760626643966843895767392868116296306728130561219404826718290930863749600079720665102220646882283791675331408293749235999656763171107644729458210806915812115465818713299016864261659678937582220923903230085629961980416559968162283779236131078277381523251897453949335596518692694450559925870047017659454725330721391999982238277241409026022777739102204371460251505853453516821334565464268002054559305412670366650655626022642752972186018429366336242892252568814280822927795308628267180650783101740834745248229337001436771919777158198986871810040740923054967036693116801606493224702706892254351599780577593188832224541091343037252909131832222262752246858499474399453535501521384464172462477930821771255905945429324084044746952762183715096314847427904044610615610945177718464052152973332104335872950050735480939832958157665934640378975517760732766187719607511944143305807012901727652800073860517162446057346895074541821227505548297657492605543001344932049683243813823614178684643638940110777686202271514532054362357389006169232238395773248648683336428290236196956822237346534507840878791008945395515160517734738780155806268944252156482757745569633453414901562280209251936995388110679409682161213050205707027735599837030302389326196690182562248358151332273762244227085575617842492637487833271098318775601598109882674430702884941910378242757023161485800120221490404451781690585147495969914125891384774292866264471456154044778943831372487287433047118878168330388535000681108418909700799428353467351621836782369209188903651283581891484290601196610509993706863093744711724342307920084267027935136130125408316278751301896695269116209123616591947533842129431102489259207331846449804097495291317353015013462475153975376499868714485432972669358501270719929941217798217573666146345446175647663994544515761514540180506191062416276098215430202756400837862828552433277041821041798517808409253833760183010104446582692033478944193337016036463064089047628564971939090017186850761650208711833564232552104431229011871461619924820050885621578968405230133745923895892327633383996145805059993406950759161555548325275502420407898650810217384383130355230958114772379684164246286968021417680349955553620759563441505094907493351067049478195136412819223387390191695007803140219496901803465562793009701658190539899218932216164407544353830876513764205901320623268705034967129126170176931598832541005911772334566988953395981598288895875751794729581998286426401559613665736557770395319616027604511728209176357411195857776541386323123557777402274598269974972855255169261202737775197181614146909761221006929283375473698317507603285874424270999270255009689783412212049845097227089423811707744703147962866331865811841059495402715321189121045155808848523900355135745469057706523654991779683808130861969747027498721557362853693989314980496494457907131598393220870001031675006567469516375965225409979136591942650768039969720246834327131060515043745401860965114878931514947950308061456220318546643441121031461229188653214331845956250876391856022742179469851861429685064525512631232386078912960169821846253573957968996172350867844635250760043126204061445697610412641475518445247903180693436267465153951545300665661169493685427908245546637091633924374592431852908437761496870746803053523144867117068459607627696094256644699415315283634629038588883698361978864854078156374528942047707073459842337511216374904938409603797465010410252560401144588906699937563062803149824685130086104732407914083130880061368331666288803952085992203831702888945892029535439307603750519842301287404320037991403165774230542783706074977360295819187590449004197886955634454886416527454284337534933062958747939567940752239532064393404708100043667004605788099967169191438520007505088864105788803739944733318404585319110328352742954587792426004370343351996950761779726432229159675755184007502645351789832000990952053350837043878843120256533387110363024329310160037591481654627810486243250928946633330993761798045066349840259518147261164951994450046921141905043768208853688153430725682915477789246074783521579698766448120160175587590333037953953804542476413233174702996464738960077116601199614477640236579941290721173326968411626442809696336537679987742216261044148147504639677723415202077664999383010592997018484647279576667005424748446081315319688441754144192442846081452933496238968566876812650998620630432948388962711206079279607554100944128000551526292374707011388527995474152733654575288193537524779756613383312491605569731420764510494369989457542555469752417398315831607906783313484287011585845751721784215974840332520347064819815315486471890839869022545296585742969297923746282737297141316854222128044211834906048554251007787597731346745468612112377942951099040023652673306276534656316332935555717545882787069188386948733204373842456526812166697734474463189931441333640598536541992841877107243555896258943805582377953672124583004533163842682838621450888010646983372534557920161669547798663033978520463862784327751648860167513992927241360855583442334664094740365708789316770988044517109361679171853787641050761047951479071240647269782320888804471180715566666797460391677357908384706451479272443383420918346111297316857487091322482116762661195986830230003186264189654733807000676280046743350806682996079985001989365588199383149517576722740763550122371449060382462499445150694518143163166730551778553462707050836327855085984539719880314971861791292914164935655172239182826001111708176325847406818715111285804521417543509328903497577543873388177681760194508829685323663537987938087913503818407270686979255283927235914858961633535373414596585170803790976758302623413766030215893220115122261924833025517245687832102934249408853444168533447676060967895518409438986713970248938697484100739309022040729263807535777001595550388298770656161575816294518665824423749687332657878513588894076086427210761642016215013591907087749503227794383413520190520851387349796210655162073482799890344807842258113882740994317259831212598147580517213905003629079531072918247243429075062916139224811360020002363870906128279184471009034667553341631711481834409291188409568285025801783401456625421922913369767270565257560283947295699960775468060961446138865521219675006891212220726262227956117684492834470698432103041428140227487159555625136988680681653304210288795194401721672937313375565971748733875806308462449797927228268005391260404337322601477512900008391971594774117607971238211752827216820976322870917011523105300722077387132895557069485299304543140719336549210378911540199049620450829543519367858523518797443456629720570276810650886705843217519604099901656298673069695443662720815754163524187735788549569600756708176217303316565295632726218460948522702555387310812387804676392240413199135984208144892973334290683938597923594270733786686321029954598457168343058886360533574877747132414934329174972128500606521722540360136198998476422592563810749517358427146723401017643979647892589434357692115563640425044556939579141630252524077833502132414634719379805126436774428747822245341758779012378690761236982792596234837317244479101400561490575175209452289183358724521741035768632711558885562292947256788708500558640089243863069232677256457909550094013656574595949693478499240065818126384793407450995233643309347241291876746957362167694357905291781342504077214840247844485305306220365105637368321203787985464725395075608294550195159844158143594913311790327706865883129304688269814932141735479762253743142278358453250930443782168071367860262894056570168560398784039258641362968331515436232763269703742439332206593907643769579541683387086240983197042833217408160146200391646207608968205110597078146125360764140396961711506583162704375490236400396152550739036031857234380953690166008097364573599537898549571766580028912879756050170854648563897047851256528223627677603863248057565320707079331908444612297963491875258907672297071238541489111251815123317513278538503869930608916175665531783474756473888349901826279852281960868484911995200660715968373153851532732001247084223591867040998085018960999510068161859843188165617128951974042573841079156645051233831603212214670657498431017909703757729795888257751734324498212510805537839914069967246315432122608923832717839925950420595411876435208294062767264903477729780165201968175628045402140864036556957262601334141059346110264857910981576012271412063718038647948426296848815113081242524750822988904755637855568977631753885081692200232592756849652658938019592341017588490888142698622372798442316919884137615407095653515725506580818395855814259061543512906830903668764561931196939650874930570475755785459307985231834346335776328443839071189336777484179067468339445623508445398543807755106317341948330913293511965358525047208649874393987859382913370407570256726126949237329442462243317377320073830201262517941668753536314810130730684598772137020515555708304197650318922485311929451205847096847617477499085736921729524883010159937738361488435745506963785447371278398405372044735611439594725870016157762228620381532750447110605021510973137151542746518269976439390546956291556992196863329037885244721070261918081079462785296634279403426161766834467528699698592272985850685367744993964983651337044020925795895949493707361517965842370957470140964091335474455993451747712106567294130648787605602056137185007414111068366398562014232293815669953081522963517389430864073860834661944386111209743435080484680047124920767413287832789599575414717286433865064506413209284891449537541800615356586352640347013087459016759457419251510162952406009841690170767317299569185705232002758954054356290495059889702368513679149296671254305147420350085641184632098816761030036354965516516282734694498026955036618680713524061649836744464696610433064632018387223386215573432306979432759051748075237481283112049136224753508335332713921488766129298797754895097972954418451758619771268454191767730355719608548286590481977158530786607223737795757549195127958978452177627255471257614514860719503703703709859763230738648917041805604940259387546555223277836110921674069728479653505796669584909111024722371599446584432958467166152256070904927322846189563140858572995194657513638001618405952831379364367618982937903237999409285811181385639917272853309341439732828291622825812700056926976834982774690395361583803780530825293665762830416209669700794304058262295281596426880708224514136531365479760828295305197790274840732551933942805916169634938372442314445752878860842227256436786302741765751616262963922700049143019910804987946641345893350079011552396091388559886416771432153555560339700400747282557943307716189209971539915136814096552100062030882663008682644046469942357965256529296279051538897660694065869696473638065686351779581921227850283616551838545703679562643316396357612875027738491207373719719395524078808586058031250191829474820033370741670918512315435423942007107329877458380258895500996733849369279854431388794850376263384916778897527951750864534154009297801692425793270976447363982727129222592452779331917599337196383950685379742665574342564866685916306741190606426990934966719189130835268485363985265741886344717873834419562688725879394347244554865779525304612064625423645605816820194890660502595183111351096965246086479050341909768104815156215568263672778623943191390298466447588877335398487711900845693390402853136573445271664728808511650736481541074060791515650935801276538301761100996058772237011971977205089921139823460011996321330526280050268872635679012846607512100313777703449075011867480443275643758978188662966700825803450173558395687813221312619414792604725805174846000433405665643935698188782830960088038457727914776016607438366074511918107947592022725536397160739568455796761853758109448533320183015196343407509739503265309825676877345181125899065694467605372371115510441412085972759115186057340768036246382465189622659604370756839705610624028821618018428076445035005109780761281219422903560048945996194333563425177310220814039134228474609144745025759388242142685910431802898090148512127079492642183774624873205604223856542491116351038763270688214076933546987755565481342279104797785224481290715465791797822408030775814635779598722993167981866121294081573840662027455267579063521861857156016684823317384611975344799380266396409446760421136737351148248545106541942361171455400396481681015562236130064881235853676740142969306950367877362708650059304495839354681005536314486267727105078258170441149022972206522201972287944848692572760398075322904606819166098998331446884315419919701376892153412012925153218060073000019021974848719157638587996606999459991761947381019715272432073108560176355082987970221021602872484394928557512079439118151319388409198962025839254469850968293271536398102458919180738846585827621759516317646012394129186774233934949406366407397662540200221287223964821743269816416250688484864211401213890044814375322165474468794261321973061167414771990588052153531401928319493151503255689344515494540813100403724537888103299663625966724134195758523237329549205727618257489044877204245353733245026563403506988944685265212570698970892862434480925661180116840534581111852792358342297715901009010525437890189932329608079008256926298829117296083051999734847399815698158130763286454927229489380683736388753337562048614670997724331982144819967992901857255534418263267978965221077154908026426176975929008740000084798176476191655871790180742814924997477006315166911975581460807752891134058063301277730883380125234312454923603542678847568142088766734758562258529690462716512690183718925679841662381210321209365621237809349034921439010566395577928192171911817148523583254004975103372125880081929580226712204010420583704973008333828193853924809506985332541590904869355804695943027570885123875375446839712071514414401004230854894431985543042168700229813084226962988736642085167444090645627864412409961092269632766084984767083340561148376047557852178020366810462008485086673753772346857399425305921953830033807645495914986226767759413394280608396241091153354307438419148178953913171281914820579994142239697593204510916330311640268323633138339628581859508707073261774723872215978366277935517727374339869126889726925941294794081139069676540963507824781506490038816771948586227447853354828205480052039352430880111315420708609135464097519482390961800533216142281388468924087650275977518561837792194670255531189129537341086726324794945724762054946760190898571364246432133557048237043433023705054342686842073894062014909201913553553975274462578895479000522208101279424378038183604158422907185368026107733025718537858562307033861565665630231198159500536820469343646583892942665694673665521161668984437667797786287614310903217904391572820217820020238845104392255609754101310231434836997101071691671820955064851174535774177222774661299691040317172265185723891525896077653738990476772127127970075039315529381523384197184398421961055935017633902563723322918011117096702044169364852973506133528410531608802475384333930021182329987466058655779608120662054846022725780629505007157576215018879956129676443858484179149881382674590715251353576205834613521749841704791256193233102974490502826325334391917407935863870949480307454916162314933319789723375490459079366846694562830702754983046699588468402210462523524419695510770838428807221895590767071523158374672845780163844341955182718967633751223335117748484760455026002668240437600704334925566604883297806336715491527963015196190432223392469094653725831040213940123845867969814336016876492455650955232139871975247863724924423943706800049885079961806216395149282168454603345746562547495454192211308931602483587722826890509065615133426966098132918573792392621562955857816012589458920698221246587692973755732298255882930385374542743346402576774676098438138150021711124922052555951269785192414541138642637491893522203249338256432780880268774567971770801188943038214248864076535972568629953099030960142849293647053195406016447745655682527736813489750285436711443846866485735784991114069751172059642491014649007804914757285503564814811019076046112834016666240229528719639167643527429832009826333314786053738248409741166343396410703307885020464691531644498206077616667681671937398249922613496555994824943561103045134716895549138584101290475536201841389607638500061726962680348445331041590830233474553432601789135176521213837411994103988997984959560564069053129900925713610154262334635176908113128691192380653913042735649385906447683888794740229138211144566904425578380959709404868250369704456683860036413984749521144191245431914236552439467084999958122694144204815852569220134791801539358419779054343558780782034755798153180678669274038477441976236781804528108438372684416321857080956542778588482693212552622554399403364255599878705131673580774586804063422284918730181876760280312708153607966037389769637843400735704623983576218841946818600062907908217246122923690200969503990945069022403290184194242312586208589735468442209470263476133679366065149454344820046255680377549068432594727842796369121726425912467686361417350876846225563106612153733987193322321712021155552260394742968335652549293820972716930152812574448668525511680475700449680503651849254243605651663424424116663316426153051706565233542756961068269503373310756879401953950464017305417526011300615974396628917626266419771492223437667043366354810486678269600847843139735936369737429125773651705633490362662662408405055737044351335905157572738418699947915213440024058557611268072095876905576139690325834899313441298584050857551232038806520459936478140630849503761183789796378654132254503543360353967519449037430627164056828905640548250747396482381395241533780173653849191233402096887919657123655360723725248361909126853848873483898416362538975876932653645291633568556242144790200274346027793635360159713473075413241868253387867084904932641963164436887892109056887073963951078430566555336684403833070177728964898187995204613728661852299167603530041643710667544483212806338500874217087731945271949921662529691412542441796247460841725550197782790663602782105741938537985275348953046426002161139717810060937795982559236715441464325763760421883407373528345826836854770110678530409079636087782373785455382286921660146585900971738826474685631783869776748580831211636842680260927811249645530724842652264560995276231377827930749792314715953733675030941253898622115125839254208888255165504992811048188205379844035973306202012405499857460206516971927897212959541555100240302146720545757043556151339637758890254194011083461485625112538169616574820027760294228479963893898478363676355441262297937752805665540969162720285854253755218552205438206746619475770702295220701321972518828055292720088122186056587694363192375247125956703373451569288567438790030145047146644614932596847505902309882094487872836112556404846856821484185223565117474833200040454343049827099661757170869072369509335050146870489369795904773527275898303910384360732034310059625057953449692375640725025196669479521144474958431001331857501289757295543900286952410405234374999522442163780046226752166684700881296196524606631211154395819270676021277014083834428172622117092935537227913656434289772529688444499756928237119677733672653015607872680289828027674713271737900433697751985991295520228842796914770993841274178770673870181781121810452758107113461955068949808554810001656506791717397247205772589415671833612588898629825911407426942351839269125614146605792056182563405848560728221828918536645702291590291827806474335339665888672043984801618323933250129426828206890844246882528274084758446896602759303055201637324092710465719982284189934053907722817771385826287636508342763981839613746167018209284714710220303847963250203440305620988760431102955824000625746892135664847698664573513809626107734069159108908485538767619980735416811803227961233470213890875507765472104259459371133413573787947230175149725784245203491617571687623298262232619791168468395890828415600473764356159823990207291684775528781980579274506314656935418043067245314530505662025004245708926439563675660632994150570368041445726571862320944352287218335421720160419071077308547760277366504172924296029157845467815803656940252442005893775623671075888478928371717705552762061515394028452187853016078630841781158135933276068941546210585254622572382913894054974270655120706078240534812609087706717199694984116251938725816382886888559859274031208839968268666127156632149052238401712164508977200502611855286497215495604186145847470035624008537131932512323898392540012347051601029470917797615989425544670276750570736925679147944372918691576497593922092892438200510540328005207470895177000166017051771758250628442716982988892423381739580445993302960552658680035016753441375054817736805347604183483628942244957222634835245684478865632487458380707986624330344369404837363498129294578894473542479071085663380589447566669002526584841183802031982516479178256996786699365255134441628389311855654845817230078279036496551476672602201155102558572851822498019141384125016159644540942849043391951633986677289586022883527715888262835499963544427529995854988367384262146873438231190618843034398064658303682948363971551553058814494985417807545213323236616367138751550620640909523045476969659887375561948232723929051347710861010547100646061264120055770285452354215544463022246270778914569915350046124702645594950649088720996098246760818942089425461802713743755661991138208443594002437440020517151189327489543068775866483709769954171290632977305074399580828196799424376900953838748167497271415601158524732558410299029086071810250904066510907441172953777959086778001992649829125913465636584327220421179468236588556385582620620200585329161285241489828554687112839568410302129294150252671658369485349166338744515921812016593109743858970120337604984512894892478406176112396021098431803074988604676853660998854267765067010315904991157387316820564223663406580063795470688121163240441811032534123289157726132345900501359559708311129843767068047111931579104252323242291594679882176858832065684482960889044104286872091984525554274469907793950144765314267304496270256659233692836201297232422662798037889156866162159991464883652595641428199803585257680975787705979469645950459556040114843505522245575200282704323657489763152037542133623385649783443305794584453980720477556671726850021042234775832654631724346857770950858486049831051916403883463847007250272386210004157103049925399083784859425143127540427808637450070694039085788685208754772621977923236525863976798404834848521912075572560458485483694885133435020274888904942722985816995386737218297715522776889338445934147368435585875170598503141866454679933969857432879356821310901447360783567789973810104946019308262168373581600311207730623697564420160598993198824620813583826531744974249614084878075064952551788453523550661181287532369776183904692341513533927426634494134560305009614745564400399240041056394926879786183422546343770975786410374926785898963600697061330822854016695412737204620635275819210286110684319770728881723678049016916886010925529292802164650920238545697732956209795538654263604186293693370486463378378549463300508814365792835957138490236353112015922958054671822123130385648423498071904789279103592857953709153314706699702651798698954680282866172892232158961998899608165594951059741986575986063880214059504300563146508907624401074268218731085573241652618556563608473199092052548416749278250956794082404408132826810573544876390049789016209087191015941839431779657958273118599570568512673349824852230975448041707762804392048869529037347778671932716412126887530963689366738006441478908989896472359444227212603677018568485285948513948450538818778620710009377429326079220983490140795466978099643205978036164422948366882480853265823737075904802775472525023709249415013897457810917940028021017960354219162699220126303292958268651358345077879434079569641120932388092994365565924846177764980180393533987190685906550993537014716671176484169670443433285012910167194462828585189113717127200958843443713380216333892640296307450926906575028485081437186288299463144180109719354837979835119354056748291238015692948832219785150516108599396210530341736827666381860682676672548133615120587474102708214918946750619838067036539226064306177103706477940343083623978196436137039062278223935686877157154892700382767763017887907089468787050690071806760325944630614350982670701740703747737654679514553362521373970370373937567775245081878965133882964624400621492352866993532283868098512784290798044464639356742508442923487461422500399424016223700756450515826025934369486222036082200750775265413199369248441095599817104999831251114436863754719348106047473663453187606012142364176617922540915447095779993978967175699614372288212589651316443459603222225124087988932138550932323238175356883976963654719833429904730093463930273533489960268984802555202300132660632283417194474181053927503022003448633010772909953521928092704918744251038627127021585124593702656860137226537222601301366778450910887269476667883776581836946812701751826482684711858128923689529981224923001549935464668418256328780839853762023607762870881836178372371558620075370562827200537238378703430169149933420852770389791434814131856293396958403109568816578050916561436973931846071180134336116697759814850855613905132311397965867027104269202250061569079599167235288416875690340749991810369286560196049522780082578038094823959523840462503446885427369313088407133538363908692725829895997001315478718925559134261143994376784240691717851343730093584693452738055985753516487293662097404984424645633249790865063471377343923497085406256412310593658133031107573431431197595658411353488666242385164612661290175048582090339196330525856222719635517016835697462257077254691176705404780278209337423810129850899193667629851143999354389974609552715565753315610527717180772420383059735616689456260116057749070311888094815119600844838836445239684170196113218576856439729489703825216422740302869988172632008572816122404289946193403515923043247925789589246338008475010451943277487074350543807126579229598424817667358663687075917676215176839383697782124483464896631509646653217747912817876299335925646738720696498577500174222783393935369744648940132509006293580627397283632442668651525129345480908885344367573655238615708355998540065790611268315974876561254733166476799095614498911318727078630665897943155187953482925449841103624141361145391973617113084377235192850313809298103621470029984842191937116371532569992870324146012892359701814292896377814600830521680197993675071484037121400761571872457076426110996488849667915817397936950137796438938965714895736129415070541137406877823013104075170114190360814453065365832044723503294378806124274617508598930306349535407414137506590400110765460173986050628296464814501475963008309888980422858067542619469713987288148515175150446592794718182337970467512852108521003060236260208489025847677988552282832216275048787962533236075824263495324898964130496287660942707746835596045222792591231985655871105169641137457576717342186896830409317182447656137923145888912338474875186333524000013164710203032057006636701140983690354488195669378688663060069335924040296622532388385321390437304704656870083186052716876133966104895160924278952858957255186764416201415311530896841686945510410782900242964915330695605683089345238718452016275656109613768431095579892619583157237398740793645008407623258366552057573451926829107841769954678258947251069442230887795435347853836987979484377573463897272515185986276007120868941452949365172488944162561746770018526439873368787340815588974562690556530736827624506636033553337869679077258727969901998297374056514831772194302353309860281322796249552309496576817835957436829710446066680416577039623970163032078322791448205614978480271697489940548401681819600411819327945373112922583021437773567672294569668766334902380307788201772634534799374193394828198312869346005650006308799085115013373552534740953223618476433984737685102497990279369001834750729838149017973649096297618718550730904027181561235162911332713935394045020832902182257997188142039111641556962819306683162624285063418302724424492099295724163542567363923848463702050738626540524264786395100221123342367821257591770072992745275301917899561069600355512794097793158355327864279609837548065645535528823892540060005277051918411765820120929638053133680274182493456237869950257894262535256853303786374800183313982293221598132771604435851128920622959929017174974203774961483781827236929180069251989002069516089585037040250890235812782857389308208038465458614326911065559314746051127385143048424492951111834597543562393660058714593590177036183880961514739018399315195669940192361546268477546367977644182616349134091471913453383978174828974745159407583896053389099916857626918463365253141991573954879948749383011762851204689675085963169374805583922720053509621561114910080593521149994900300625395724355217807962562884929208221071087049162398406138225172954722860832616493419584566185039225122428071158492075492436579629345964518514790794967389968299345839856527365610419467919186103200099895236154302812201726227339435522417858867664867071200412711196075562481070892021896745634429535292554773954864727734008764333997687624079125972169956261584621482216394982904880836877747895768291196575158797438793376407255010028888199729425396570694761562543462442837367386104144103671048003145242711125820836287044020160467153159137756605680722805133319620722116943260519355727697160028147353279110609151086461103978799951340819221202337470661160296513578259205092239509355570146818280996115974339592370374787150070003466510362094371228160504090303743522418078304671916532334379361699996248427685633459626903707541975375343483786829482018773930449706643975305429982931575122895382603251043571099832771126227224828864838375697139932904985365607496038014913239739669350746213185096826154510244166573033279629786425509417795828844886345117456016703377543447770699644258497268546575623861417992318166694156041146193372347394811592905994530810678620332617208490105780314942549124694444078537081656507549139557076934132409731095644549610873955946574583408639764930955311411321746104289823604416277308305275365130124432621697253357547928117373875052534289690061743052961222146985874553464434197547232449302283473151825488916004151676920240683753041031178680747001286300285306557888439169735840425597302920486400312242067783902469198373203667273299559517167215728288211986496654728939474674940395906443069165023769282790199770299294806670318956861301363870757117321761108180421210554664351118649451253212759605884837914893573252773412254314651280607125254302499958308213911476876392217776978737101733590333794787528017463440114960327869643816809742353872453050947305444880134795984949142567025082223655499158093005831071506904188896255390928069166277752847978806312943859693628207826743447138213237070585428349718404083868192858798392950638950414095819356178577868308008773399290945511790414076723640156135925262563101508825278552658624166280999886602228793635602858967487942011438615887186370474718598413444743739663817344671720934804424810429172109396759600509779956397477649087491881196519281553145967149401718248133991408512980968003257728759066910926140766449386614260711081209220373581642263049002105675095697032761997035823181954895557885624211502062947544528526038753614641516748040479529759677514051514947582423470296325266471713776959246151040491006837967015708569370677976060502194763852114220169881101214595394900891025969332419361316893296094115981019833030507263056864372796651274461961841389727656800610797480622168018744509067180072514665077978034292223215730723633322343619824791716994815766401936274767414511481387561865050496733916674103985723413725263747377445190515410264020628744908450887763283706250434710122753714737257953357080821814780781414853195199029899866368583378812952230470850053531111741081739560827375438444671768725731989148541015012222139381304649794902979005450640543512449739452951216112995597224504417635422522852707895475840674615784438007808242991983610243114420791088376872753999736784655068499369668421962027517909535322538080827407517220000669159601477121741590454654072025859281288998830660858642293304027679087900875169713608549228816035744677931442641243076861602740780981037091836172624054893624090793594168716088584635311140581625920015893317923172608807267923832720792170429224285587729644214168240258097332812443018605039966619581384103098728944159314184020137705263461234513042523007040312332464154404987555906313346563486305472639209948418110882085229605635947671814385773451247788104754337688105885187626079603825164839077130379456514447833001057284981697547896583427884831762141598492622790063584318351518816044588744767514112723349468597802899059101758522624974374945958006079320554484459243630095583030254547935679968901548078219458095754531721433101960004676563918424540297844928454134656581585273325948950615482040723751794278151620314193525909230640346987865748996344991627679549950192397406087604253179937504715154897126001715999388095093889821820257029758164336161976035978865856349612242050870521302326568767648171648227784281030541671513385792588172189915701181453311528320695320981792393364915482531734529617720725104400160520225101253275474761838565167677330421934743288304951398804767191832928920291123823129421934714124105981470453061654695639042052269341111499179025234774932844996328702627454748821268441329331365707581072987515772478318749993188748956076201632536280455218819232258437456750153214213294500800777051884303713015829137847825701211283293124151160154024090018396135396912320477582779070467432178246059379804943741417352074957503374635325735140346052440263582701777451305538532098665142143013133561608161903278228451087212490472543575699765886633252551689735108641212934568355400956977672555596078772904734640342279780938612701416388376884813279417087305093774328081314793081716098394006220041903731029264555234899332554796835711781754072031078686612700981298793264090991756145915215910671967002021133855976104957935098715220708830658077672216373902661428001338957319494156591089053793589484753949231189913004317468801161050934512533180513550832960778575985776534409128255957712201155179645596617552502753742395622316446665028105054753193645746163728891719259734291076382496914376603538631828587127102297867635843458960865341684649756033060141312787987588490914337309404851416284629904423161490276856946377396547038827853424156783940735917442481880365584221274138755044854434835115044257266067918592424479801349919925265395785688124113926002145966226608789565314362040557368557561648371244838280261018145881295287774212081234885018127662095084686118791979666330662438247291712402544276069557683419800341622268016140034818869353155241627067861853574586395774916355274404431153049364948185889340052024784303452010555893547344198580815515703298455460911492092075714487303242359669276018955443017744240389812361672987781003895373037349874512747361124090810352438548250646701110143450763805077775639777291447092761326105811656860086619307563651069601855417277190487862294480247080724890482423436893945081819593565468525617098616560015807862260971653120492273833462156740599430426578384050256364330318504660029349971444253374343100122700940493612729228716762919832504987897429218288816977760517467200924277367567027140756580086320300150850598116505592988999527945542502407112102575150947268385279344402153776339176275592435932541458080824458352911535930357492493012631888052265667088473317860161525358961581722954171110997026025447274217851630142260693175311291843241542509933676192069748581462869412027948102970612041220667155626427170898638307012614053083148284791108784499261726251953244197590177340174840187572883008385256491188233322302531876911973544594083155791846886116979215203930672841307629667060045065495795817192964632415830714420517016992881893974064054751683359297850470173889644266085384887808873213428034231068883233930869931954302361450778106322244591317281984816733962802288417192586968258236736998390665759596313508019103442592693866240631050379268940983736406263960673511612611091868380443166270782547280474405409373091399284083885724943318710903238614805360102382319725544188262980585588786024751620345289379193759346840858587501434899433175938081145525110807286863688309412645857681211298283003399417419085315544949474617733922214455706286740641512658597674741867605833188108396212700466352976730205299349547399899944148668237742767245184297463975648197764449651118445641388257674359778539624258529888141043093466140273512337220893532715601112359921978939092775221182155887286306500786992866450520872761181506250299963439722987963639538400316257633992282869512466919357148220677721536397001990415250899528489632535340069389998778622798455783197559950185430347905158433239325829557065662455318736687174260089785554609808226974685253327475546228403807126449678856822958684642967106928778273731130493417321526699110008392558947249298246259522565765674690856340906237050023778300475816091772739866431732074819322217266355130076868137987415379398707763898704496915769561742545268112265325664428083037743504857441754473481113430232432992098155327047485386276801625131298317938693003075993997541464513748348600828804124604568442193188738491196181850365787402437855807998693453638231534897521463494084562407387459231591296518171655590833472933623420735506268670665514197230543599016551764073712992225841038825141408729514259615521060808563070350001565857601295928564807181617841024529390826721176391773482779147274302891027057965510713818652827371659552389591418895092409816451310023647891700414508054607589182379968342651094024449183594243961661869551541615936757714509349555929254020551371633625219681584701154091384437242678249950787468489075847165594911118819363478229438039854206432803242885447061496845723126737581767267872470715037774106188159920945262476001724493591483115032245051281870046287401526442380013900685835061410795212046996962219295913124123040112708493447962993949139001461976070754411794980397991806101159925580521704966760037432136718741300816944325310470679296093526102928612464570573521425148035357851231791678979919128278602431494527316387129817770823647445560335953068758671420429799472405890041721461265000267249201012991752052237276310761685028641575908748597180197064995878936940376883456678967784422629532422510490901059801747858056247400236057217390291088491835622994456582565994808312979970971872997107230055421637668294571270242676494333492372750632259775072204943851368101614928341390285505606800805033297862251514083204521970917420617232387069676058765199329389499826118997758166931107742210166696932902064952450114313982184101970108649098741046901676639695772485408952173511400790753400495145244159626757325395980530857185984646668639940825895904920519104984804229342494061502530150393238671113275056961802434486478126465222771086497595828707555879267440498913671401832911506519423170740198205992465111401828738379052639872352219043889689634782925199927860994125869487534008460133469299634058853526354962174114221635963609820720711071264740310642807311223723986925730397473589603935701683102909165715912925441454812768844411137069983019466512191240254275528617825397434846028190788446551362006908871676177760804031880620148778175240877631811615283871845151870433830786948601374019618111800547385896878577403744684080170660553512636296180012330457558874490353752203108704244892394882259312259448711188113459010400530839329269032993452731239618319325078043512745079739556052010315562836767168166709899456885752492049417886298771164530292989179928397941727907996755166109016603777632698650758395223207802276235303389138398553208672954367880179898270383648598780533322143072479445071405477708815011508495907581985266897923896001575891004298457695880182148395758877076313749327593865532490508788630410491672422016624504143715488802186043706337161338986712422912844127615534100163569183942680984069632145164669380410460581381891367622591957225277277364471601165015324356314894551165509983172956278653800897402962101000367156026174028326220428788771595720088948248459349918494594858853986551467900796523612066575469346594154804334958621223794327908352339390447494075311533963397142290848278898532971697041549788578117335381058813521494520101723463779725007489856018274831467468191330653607279204005642794009483048250983649603996358977833329773187318321319274750788880616056401583772062769147930748830778150671642741175554790837436926497920601786134167795934529623593354523228491893084365557904761687821375550408087858127369510296246970686557247244870846309114386363924151328327089270021195423530163795427129663848693677740650939952360063303332372954480744185928404030028742838416228140453713153720577280707403622749803406191306750019693838094662427296427108909859368938955978768153084623467720545914709907038041735018817346553191923928742920775695759547802859859260399465512010243373112826542257130907813891341788842474349031904281284594838455878702218735179097473396861660968654328908889031978605706683042659994801519740361986830841533825760270811898562204763403142643286565326108146841177547528277730226637910207757151729612013201804741233225142366006066300665661139837952156438355615172506812859215954264313064855937015539402408442013639258689658979255328427604134927046902196104635417960156229727396611832294611294506832244797623795758127447960203464789337552705392381167477777410258433832918011612828883936748995948911295786923986925045391359300558887591425908339367441585324916295432130855005692133101641517858129360514337696448395214499121880919543753289240075113352484086538502156336233278315525515572306358351102433308760188291231856475859266397969186038674933528185824685458026741734053786164637423924786158950476960681939939889654741571135062992540262619361651027941985865693899151692642896255976403848833661423041533867695067850329594837892085615492201883419959864634610450850762730728764851637096526709315829900671229720574764785541871501532427523555524495811051204686720822101295546716950644798159937417077348796657113309077155499850157085295957348043830126732409816711162803750374994543848255100342012171555295909918230439142221935535097706645679577672365129135565049348572912424514981308157840682741022039862397021952187133533810628478788958313365780123541336618275614920930457879527747817570750724319442820764085593623774627095228257920278071157775486010033208416525823024342463117630646765516049074934728549095736560261781318172250344084580585320237542148182092708641524353184797655014278534425697721922184089365233105817972931848243843680941890604036121285091518729267220522591012982896967728469608543867913147370614713722452475773258556397684603462145175399784450166614143234561880230401403302946804286121253355376835105874066181250155556589453697689560875694664074909473540229193506775137812731030758611307158111077114168108442596408609315218586272918387302070482759415950830819167392730074560090953917464327756294856015572448535604182470582966655054963943410472094805550788599050861837674076432692426356882269788116133746377710697982243124889090429459467168885195253296288314978454811773566388446069484741249322672478598232027441104093094146625826427570054920024438582935828681505826735908754867105060881204188319320785004573564267350058192627863412635643798870338262082024494995656526269800457536875923179043746570958838395132403043863254391694384309563406993885778519290290260676101991967601901900611782128076501187157089482860064715993790175577159532589362543747177593151099835370655490360365569628336080831816382900808661563146790313591288545950006913681703191175778691311821390568264577812039116799220094712080329062388072241055266992120819343920300243179871107667035078170538922482221545590722109561888908899736610200811487441099107958488024630590604070355301105180543195000035892639555161173979330014702080014907908259975089623556268103994103964860011293718632312401537365290681453403544250134491888090873738185266363622088199773259614967369439531248904362844514860766199222974516590421264376839673762564141824607688893756867592914688111297300967693714342240916728729135582046873140873482619210572347012639100976840254707878376874830296802245406858277083088859715267314667501963046343060001386142762392105305419550345042027919303779777693758671568327639201419443820418556086686568982512096667838744585158260655284158129032003612529893886116944184164552508807939430069054822045266834586481394843392387057690283842969122885843977345471915350115615198853802044105972063109125694177694495700578563925121889668281517206962037949251616926126457261389247049540253043449545369422954815909229511217229155462947479886703904492042086333194240573391936813994048277336193362704875324548264107920227365287369276162878625498965440706690267474615188245793705570099795559278763524562987476579830436399254907947425370962403642984795122367846808264668009622274916887710343042649402097551706511623463318491806968796335036493215960570363628108863238459671442234723450307724325932150343158519581487812599276464206034924999166523795013834234575296207929255963912106960770200712367323315915252996423854294328467124400100360204570302527124520472060510517959886399889819009601296257337109807445034705535738160983627586398771233656800988113861667164791429448159789638236165157780875530557399968504219124827109219672646794170361763213678203523374329245787147199051865223882909577832576984131262013000746647799379394766819925606531478948307704253418047635175009689697443856485217103917391052672790609088667245584383858038773118643475983640925600033374392789282636592897583915684409775598935732362592257085505432718737304504488708576401671580177114640220927614692086050972024583431232243540484054580270194252486125899303250087461805332147741953457843758301485930992149448101067417356723368527997113614665966106502008023026993591719496660490690304305817935325712543733120441950149971419055506601228365970449332192969833602938769288944413105153499373803877388979770564646357875865929552760220945158901281638806768770923011365481912632717202519873724115041025955092605930448347874373727438767471767439147978518492172214920629428359532302956488590220010666499664245608298820635091133075568729671376804493918058787240330930274775556534441494872393921867111030575487147274955996524416346633161896976508833199583037125704075977096015167260068835026808577591601572183333446883801844266035882471120732064832509255117265036451338546476536163157348369295171704544613853648521729406505868838688031860472210472753836267709232953103467665701358823250775373481013537128743730662663083204464582752463153797454167084859733652331126968026240540319778868641519648862909184109057617924748029228236039913465154205062511295738870555254241410666531115421979660444138629833391675583297040515114857285856452833554620884791563861213465182914672019754008059668045654786406406055780893725478402288832047101542978083174711436264827053317641703156681991943107663456529342203694429160444137064631590522544146314961564217093531477921492889746286080131316945553230434962648908001297960823753136299927557904605832904375651049035704879452832545472463278457936063014387259271880692014249745711429324475654153228384397334624075022357697533144827423726385071598779538040924763360483708082267009644944169067030241838952605303143329814417005818629574017548974547962658875289107485621966074161718123823958705398840834911662814118827932524475798007157243023026561315134834236448029908780972919522505442956491320626119742404955250803264680327374078694709332172200574805186856011661553670978664800079480153529540117198605427410107774299530679805876277781164405010085653862864311493616468654512568249839865864262712377856768373697877273420142272799372214207556291005827268084622523976608859566848699727182423457068361649771818973139468803996213138460730533427015657733549697254483369138182341009911652153206803974830970098400824095300106762925571363541245191508096081244967287268917848018898362267646404696149515044338237810456418802899787926379848801635218687479808418786372019134298344839914838339068454132345818822771646345318634133036129486251725649940866226975100075213034305318178042827812985460905176931680261054323059519997128559540522967964470062410462815028971260726862022361600444279595684077130127281768355350718853777839142615677466589016621653800537668071817323781487858410439213743501276010985075326738755695708682938515660106702486692628999652744533476008088997614504860248771291512807676074814523932123203031812992212534535320441010596030877840742292624938865817302811485713083411389166571300086678471464082061533751677987615383095919817585878303460734657766645502430812242811007551912502776587212834494628650497932277830279069240149690827748820175596536920009236751237619589688674157722670406350158121467454399123246510836174306442965421042282356366458079045919685844867424982258091332298010942731190832472570593519592620688785293239469490483292845170020605655016299241853097247651328731294608556238159738091832783396956019168863185664687107103909487511753838809706845497031885004202475803834393394213105724383805951235139113423507354570224546402892236089274067340530327723636723793923343046817950722950139050192933724466552864893490383140688596022457228163819045488654177900520797743954778384839832551562461597998126605950314096372700868166727075004034802489846136382145034730154506574459789439428371137588826328999982853904018654459872351448816826931508208129495710588502293655496602180133804227286768782748495782232571152940140860200651177362329237717810047750163614875674305568175514272231912681881889057469758864893548500107996503822006896407801212464279432067396143130686458637391092458974122725674369169534850662887200726821623680920697976657100590489187921538209778100176696415918711899543698062676331088064448287276812755138503550393127902097239907987873468345596081427297143043840684624410163497223663816182850063919761026740909159705225953128561920082284488868407476533260943834687798618694771760466783972857841092387312431200271432219026165601453918549740084344952169981168848870191993917145986934923535139855613603453826216311676726133458247025708268188240884538713103687706358150354065702848742517680741697547371736630219385903168089227912776653297614235768277314813979888199033738848995839116992533759969814540473578415765808246748877423430425056093135207393309984719491381141725936987455394858119233828135071303424899252256140881723293849811920907547199556559195757395492749043177123607479572465395427261724777254631862231673249479117069654709698742900913569507540564124201263024392557983975794101898405728694585935745985873240754986294437065235392144675249904995692238941560554703496729843011732669532799424355612033700611182276381900044511082731368415264276423591224738366955004557459319826061750463550855817224758903073538385548013552438859630976673072624516017893166368941859051307060276762680930859598643337308987158055719510067887135681050497470612519109725644489649370010010231379556268538192662127562481147898874882458635708097001139144592725418333525409848747240341645865230524546077652160770443814278095694039052488398650570513738133637681258858925690582705977395593665661678677529437208985835383890034996518932446507945638783629446778710991854324517214990119659498096792485203763476465793580744689151337319052881113746024209688855602723216353889803713353794866511271588330261840020223373841213225810255411768495889559001355301180712204548627756104292904004625122496365528471550652770873716204235343339042015762547807308291073792675109963748029236977754687240073005498816391387811193213226674305648123568020921026485411144271184316737668352785047645191650675244579582437834495713015519670592465713157988597164376217633896824592123445920524950561912875220157678167937557212093634597093211717314022644865217658178026247049151404033184673861070040266133469095007831562059073645579414100321013857489923935147612996868959681930159799856133932016415599788729645329437307951474817820388793096310552543771401937879093933173063885035068752669804740657560650379066570048890689548194717108039950625640664611844454858313233050939538708390585178922964180570431153275101889644990203808517171027474422844889131442758284993252614961306201230902992677356630658262836141344667671734993455419811920142687568960060723736132511631440648247690797430725037787488811614116463915700037302406250608020226036524711110466767908674274803411788873122145762415910199791521729984849955964404160587813749456795869660717270572086701097235198768580887456465190444291599728290369011460988817196903925187240904909927928016678086793287519804261579167592210324230509396523937442318210906653768216769997766643113360276169231550636563080949153702385232578090654507392064875298606939242020433228637309952474330573648504839068081023648035899418449151005952668441392225488440268850768216488074051406275274833279630947866450051663109771666192262219902915199856972813639297181610810832881541585870120741770785228562798436058022229104686804637673175956393186129416134177213605347832152281798659040137986602110389417683800160542193733318490980603839714833210775133559195200760223202670232071674626795304147391932727636417453235542014832013619491680049543348653788787809693654060248863678865838488005277385744785605105727215066453406409412010511074688997030822087865437605355908654247752688732833460450910439626485233231789995594560350410980697009471314083292272255694628882874558147089107097764668789877664862848158207859316779611082851849172028961785446939544711887769016012935486285140665049516955951771434314474464128524630182237699724501462456871232012228101029769760620039185208884204925838486970247375361780445176713794011150019887478769434582787192640391052384896704509655893216663111736926634777088129795913562983346256143928981454865688251752969980944122334687144038569098282772897262172904636563229976147318377410017029749735468150505352380947562594160409944039452881271249655006791745560028530137477072851773409851357017054560758951523215115173634245183080955546903150706049439841964382043825569276377404228983343687335728347305692662804217695856953537187855455679309168098525677521216772962615912756936799596847097999575083170596034221505367053370279046814737505477096097127823236170795857784705291118407021474430265143869243108602814760692185223889795143460716923383543774544978282432868941191101728856259533876354507387586669345390758573925937131540081189257383145942519492103153245644973962118042384405385694773254578986779801507790661073077847093937138292777124313202880489808091888965408612240851191547037433078185686084631766791389009518657400327930856099563564213253753033398601216889871392019722853656760827160773947165522271222883701745298437991147608740760566306837238102613407500039310348508012775841616232102925264978615342506756090623073734380809083076780973690652680603835123252581064003000605920632251270423694410785105635752293188901887721767375221221534988104171839516419584571241657828040561890419648113429487201818518915908901947472142240301837560849167156927793123042858531561316493843173320546161414360306785284023069397162889200302203768932921065175711728808126772527630102457497565337370322626350176706923751408359225241802915977625182447918960082916704083772415619640510035893763960802892712722552040172181252799079414012346676876738322292985094275664048210477215363167220340158337185555836570606058043802007041688086183505763028395949141045055655354622406569222110951118273370638684389952176107698376076288703212672287488193897944632826357076167986005964659371710827091277105207424797999554075149883087260063897777126665572250764999819271262118328658182240271430337415368472666873288458794715951025834370458402480956427674425142525076163926594040163545072288003701757473447058754183832417847479960538336758979860705522794743061968698540973277359305671620331775107652668149264916745423397976380354127112559877213104119365097232966525244925087320439470354481759283401711948784866913264822288389165481230776531585343309120553689611005043900628895947355140128481884078728718320829138581335267071094629709588003113418135005913987517303842377354184505603740152174279134261266029803672971196526575895655452748469933229515726822529535088671586790628279718393418789788898604991260787171824818883028643075533554995710840380448740027586961642568498377937903923396932208947009561959496463938634724273765004361724715612422497337812701357997435616520175887440095158468294121210698057094420746555803313926034360041497801962416896511572190934830842635163943601968666535308043716352241428353608466342110554813005000235935612339172222121581193146918471829584803804195791713190210929405313532605838840226874762331853332274267336780940968044921932451106826121794215932102991218908124629052095567592028923673432050424909156177012969671466677006271053566683506414491030951742583441145513608043780127901075386457423082667343918682830674225424074614685321000104163016769661148851823052597550651097681268183688381015058261030795141617538910381272346463929814217550690449302101554851915875328465966996851137021165483638088923662248050028982078543953338039714057769143662442847436854641366676331506663564343560295842175692535051241530722787526065827756754386059180416967455089663157042644400909746183824197619972163005971086410602653261082876954398743170533536358441277690054731817854101371289914014714664898030681900097061436578465204363328840130215394913304697496206228516837145320070515305241876991441087891472175990372816200337548412997654972542905318727751062629309675608842430407224774915390931445759467144438417247984917389407299069182285039994896003544915108478161173980259614318094847991732148870328714593225660214926502765638272609389974555360826819510515275035479761413197045104374890972101839672431740493141443855600090124825768146245152781422233258223363550600380257758348567061812637831242191365174583151371325340202600942310963111293430860809074295655651881264229123047639508275770352483386154606187253267859081478851238366710559597976147502146805478473036689830607110580696017336813009534003542770974752947923753384393162963574110144850353525490888851734855764130547261772416538148203565458085652905064763288474595861645653422421678356560903611508312847645082567919955332994511583986361143189188288051717953025108988751791587461350580549716060134900290109266397977610103943519003658273955817195045434375466120390723691785803203428732559437250622790453243761397351523654820720107400816724030962979914171644893573938987323950158022367483665528243886554875198044593517381861064231917746688537845643918306731048952834936037934851228221462501846812720288539151701106294759104519183525188281613636989991330770044361221375635064437943000712521678450075941690532903165388943410056146261479712281574228399863801571345457476615477422911527388245034601450496707696367290590322505741669160945411824812208182206215181510736720006332111650781559162966799888620656451331375945317453772552600472993028374928260645752534496750583703738943701800142624173738642898199614885580922064316727120187109223353582193853669887528965871345629899412215361848197870369774242038135523498340736793798210063801600505094715320279403788759830937609914444889326166578616414339959942487537778266432165168877535748290317001332989906853203125776100388017279529612284236854893799776415583794044557920060755476188035681169368356416604749329432134812964015807016893050272620187163454892684277594127624758310400438929402369142308845666684158761717536568727585931416002173113182588395471099155721592408070485265558435880874410378134537106861678719016854857282971516502747404811122226500769578204871396409919648158789629759575993694334674233155543290309519404731248395432968063706254514701783699646241767194476910736550500262683061518398850038915701291995756335666002063258208065232928351978311624093652264288707013118753106950263625066290219567571338735955058951259357942514660707211082752218998071258526953250451718861192793185911191198938037319115945765470489501743959817618721761360998616396784088136509220385327959915416686715913790162402746383044686296686886331072627617106483453359270417227998197455317143624462605483196241684753526008488810501755837469691129652727668399506995916901048445036323698459586864075131982980497417146877167442582360088871381196508654990560597450450079491878722418366605753392192666713023344780560621262049864209711816356268737624782170242178223112366378629328895051180038108552131581763704624761231421729875172980790202254685173703333039792940706543595143931004656261308395926843823938700510860096875013770297728371319295941999878184153678119534231513808945231621632525697369399484090152623831958730097650434278720859440195058968066528437296229358461534529297701804338762103126605585354444711743788663669038635524699500141838850477893653617178869541108079378935749335521677231386835679815641253776159886726984340807946486049686314290427711821222651899556762145059659688425358063562860592891613470208630323075060667993206963763883410734367092920413027916052773053597937822041556084848203458635620083033139554066907899122576174357269675255373191248243204829557151528002682732463004778798901832143062166140788747017014051159244294699821432160029743668490134234319172457679731167086990730984693601947493281733626051946460107589170616637733590367861631373852726000031735085232331062122531260504275643926410413290447354297487182713000707464396558849483784617844670355452689218735760595734588099959420022641063832286548135332696604897491932679096381120590653760311319501836030333956791085592137667366358904794070879955382512069689668860029674212477267822064916501056054486644849233642514796926457404215331499970509319321175234003537894358270623900987973008832029435387497409246457018502322283531525531528071918719237810945180465951425814696846995474668960283045408930126792927693637719430521016539826944695642809677733207626501210323223490069827635949611256939591704988504578690301114342858403580388552036777866588059905485855515410159643289843086822402827459482675862598621386276772822871366770763361180558554649276196596039157137950877939946560449348544191290702488463404415743327122875239069978264522484540149396444764260525752932404872075246690822171156872420180591595190155718684092503546867918159927051569428724355975951544233768557705661795188384140830861337191495518621005168394759307598826574071925286576202817191620034509330303865583086973205992964457632905627396739172475604461476727207249415538500977559192760206265776296189773898728982957557829047706690680457624126771225009684377505302346047235561705883281107115921222169697802176927631081530875017833545614545878947348725712824862131931469447507512433613953524497559840358415977203313385624069828105466695452858039785302119114385706527149785572276051976214849699566199133159127759951785977378506279656012700103661826663672932760771897218809134195919431833348959433183564826335409018594489818139126959735731391734856415390433155403254946273378752289786498276763855415819908731569039334573438728450843633259218071037607569668904321922784229180952650188409155877881150747302419582959212907113041941788904205595086414989124820518400540365762494601653847893210884587035425634026691028211113203020114374155765116168227104193502737008124831896111614531340607687131454880973536122059191503246251941447335566110807548964099151647639571659668756842264651827406801059397168364928936612503852490808314021399937144081517326921253881087694472558796767585030344326111098170603304229793755093652176945613254156881630395131218390563441725033776610911281790385844328243917105440952044275344853548302118840024135379901213824816865228058067119247558502638803634647265851305713124222263886447224748194667867007760510410018467712415843887998505538844188892975665792507080997530043813140989981263549014755766629113665712601485870254769779284969814988290030487250811025501759836438899837723473327313814059404246407676634329216777699053592910350964682976594223367459342683822117530547275614196857565216560718469624040655425451455815972174601791010887952319309243307126594951200477036167491034135747947095392842707971253899007937742676963230557840774206168253696542035032743236898552026364268953261213921314602409025754427258151263252302766157204450805550532779266356939745278515269488229609163734176906085109960144129458338977541242054785878681803968455409627764576762792801646066557803528192378813856083434949226805298657747029570336531555639444146803888626724444635883156811127653308518753503542733146469423572004419033749542300507100255031043475742498827139681375635703594305500317971225610798312514827390882494841963669026394835564295015712696709195957470106813967656675409893176374321111952339651770084069546529362373697218870071479753237803907690585017940755097735627467687537516643192050355763665887671726367000709170211343793183217594054863642341909802552360518742235181712527576937883143451681697254272062804459697222564381787804702457140279622512264976048899193835926434602916945165002190202291970703164595800413202444634020022987330495968265275159371902619221321178843791747721774595473940646299137414521349443470583402961345564739119819654544466420633156772805420653026773492222973239490299209213003907530133387152377478806848107557971246511028046413955961839973312746937202654399077242071458757460104730257214981076992905882068346915376953027620751277879142496182020178943568842037348417077156065221407419710791457406930644796891854192944333826506093250201573780841242976069659957036379787359974927359630845740259216891173717109975270464256360983031455062198367661839125567866269421759521900337662440090357190878393379829411764319493962176494181843120325545691764616931079223775160965419570491478153319734516986907168622545682291684517763478584649424892210662362602130134760123027556962951845762396588918312181354643863607184951816844882479599315139601559646232477007267156049375525474133854600531423759057542121325881032593030412572675456878422044401112931634461467836452236357638413118354543658493897749769280252514833288260168051172839573420156076183806520432301752527638390505849944978777222460387622020231088256800307118488881625169464066052256924016758438686275993421293461488549050119387471307029372084126724918624984855204294104548063974748080265242707854624860420162881273335166043603839401837031291421275590303769262940706259464547494490346457412130757609279520820379187757541922644494582341004722746115478728675028758604594291661826962398882696096322135272087619052445424103704819471294991546644930740323919427372870030114275321749187641488704236965548186168723177874675413063833061967161797313076934549615020395823077486192722579815957081945345400587692778422504923884872792702717457698105704212874912332148824128132882581366820632580283854665601759966506657953313189958291272396585440732347400224234467829425677088204025144098602257334795443039571059651139331209447069397984515299230763658925598184641491737386894423453964413128968732471841649605122051713174290425321610394471481672617622460638410531620095787993723601511992646390625162496425480864776729465986568700095851943413120913267490382036359799531183975077911387538141554945782322128514421596771590451554959621945008062892071430411634833030410878857181625472875709044315185038915461569968107968480548421157446224240289434157689800689738211943652209586961123146728196060041523457988765837359580474935639871373414682554375858147838218103848641678696131188553887676875784155043723815151388324865318829065344931651337067412765367245608819111246408743131725673484932535988634939651939531530108124843568522098673531628297273992732014920929896086949325941336281067071388243269250176896787083072852399870578420868441184176611407555060343686606049001787868425725221479493263238805677464630629746653943620314868398780387041223854762977691287771515287755485197728184185630574816725054308857377496891531043473903490048911261974293431461299682066849042829972383788979500528232200640127014094929653481630871809857605091910784954132063237854526606415836549456703521141042577185409754959234738231735555076887705354061232661406116826087532979447230396174040879692827505570061489609560711985937805989255896979341641105162842746287057088284292334104663080039250784606493640139705232864956585307404613311390050927282766589023950283774739654441661897349037283463165143759955011972624156692429203144640247681149700857600364635473117765401233233626404247638483507530378598375105668480209597497127805350898525019539795093290107338839240898789916658117945388266910385841039969431735586409883504840771195103843443902499627922470849045936209290216157173607550767315458438006154550377236375666741192540863362758733531766674013526365735322587022697968671173353843466798972613616735482960277059538490433317396917085563419408266478639577061130973425868484084258215778254883441998262294570539266554840727453047793112652465745044719810199171005037137948919049534762424611122011121743212900982463158952692870174044101976393829679749265831885749146570860586634493252392004467279114302080934587246783480797261904394589681993389813588322821065525763947648107565207719593295501703030459817194061875702663291207846128623183304685104011818301118386810925577080450024881229882653530566295755107109555670689991511733000886007150427421982677322138787613310249585335076998593570844754874603420690595132747077009914232256885074149234552316960362785152817293162045115802712362369220170603126379057614016320757093194053733342569243507662217757898759734014988222414402798717881000032670971280848970568502200938346708943724065469622778994309112864306642074026206112670493565058113949409726633145935302217145636168181100226689102665637730462872734476169498099239134085281087445487780554650271867437572198184265450586108353013623913233895965777326872828601777317640419426564178454332547992455197415139062409900083057961860670728158918648761898421076453852053717435157465317460891344737465141851649619645373847102208020204514879333660253617773591600645884569757726805801348616549203335665537469508888010413687871918900777052411503978430053844737675090069521801168479923329585979260676126479697602806165475299406774263564457477730048987897845924648032273236073155032725896451798158984681939293437543287335470076636692907236581950690700974530328545182755841896764970704471208625684627922187575681729908907921125975259229603897510655073526875601165823287676488817412438179131869790579524109994189889411437804524266341994604767488253276766602510048215782735455672237807530925149329220187224865115452388031394268825025370833549049684560608936046380113145501419044987772983287179835412982285704381960494389054383801031450573519693414378487198113453182917213644817558275095399502727794178764630784846234697731354480182802239302171386900561933805978826182059487301284875061832094105829988798096746364027135998382952314594858291026275414325418582145023913162036199886423839511987943303494302500836952090414183398142842379576646644378663285632783097056297296347089810498414027564754245100437473564307270298142763705421257212674475388679842359692891793719213525572518831615609843748688958083405341407778893751782556341358167557088033423894543036063207103955339934380968696812667267048503780705446058378978645399161280302194383400032583193942925299274414829464014397378013552032861551297410991412981154109511112609919856340182756811565730426621078173953404572522139356767622232294035781670727414890845695659645637713055480711296422425246242494437245217193972492623993549216649295373638834054126910272264528670035377184181259075687499414536699059282330103906991677964312904707133842755823581210429289274073228313867263580279894511560479773616929997041818652303961390046713542433501582729874160459489872221933220027271265568199689319582613542927811650321426007297130454710116713531559305960515728743331011514884987001665197813131204419815681845976329048993952441407645157980775956947244218042221414881145277311151449448229025172878503885248947936701105582985898790512347105480336544558526303346000787246993949824656769272755768136839500788683549998737091324265010895989817047086748838289038925711233694361648988348707576019555420069851288629311074698031683814261322211421589950707192305730734823260297481591667275628365675531800290189961217095790462866234010623144326394328538718467032288967210070891130453474106820472489835882341142039473512143531826148391631896157562417718059067484527089592655173018892010484325317281516722101185050292674739833637576161730911615575212070564724083340687391166073063970753380376319279491184362019409164793479225918479841215186489835693374610748014943275808768783841226591736022683694160728161953669161090427114534827294697079246738593334150480840811657293036182779354741372233188519296393411458232350119950276294532867494426342431962961624210996044820458100954264670494583730081224908536859646440333283856406434806256122098610273186415437841919066856927469757351069182586596182237174535151835940350919593778095910035568493768079835756965702283328733326905698997361739593412733392792976583187266410525174946618396664608755733780591195077157886707866292546184202087810177145446991169588048799004670397945304650108160310703016337439128973955836692048168521013812256830566289942933618912316290964621532408986288331181319678267412667567247312005515252272131058185511021924032075184009278996700518336114209001170726008060208428742343664512026701965711680869814129047737691521500524390895300886308904957521655172912057534146251591633176738066023893465568993893733032182401884233815321691445940507267987323219027569173202244571042090281660524784493403092989286039239134464348472482658178488033733826912608634557746467291787429510547945768928277861268003848868751069037277761882740068055644491849552583442080489549908573917446261588893363462375994881628392936584463719646218634156285336901506520338693812351769086975335026461521981648243071620630090994172616366835172159634458975981394620804793512093454021791195190664108835326649123239313533582511359006107044154010267320945588669089991079375747297164729699449366281751871690754610175121936109849434488075220464540348427960047860797724251530015852416600321066075539219865473319256622497731583058430966910657888536867753607572011022815420175943104532634804868806134628909735859512778519298395962952525916448970219266735330256366510577446269192132662976871501643007079894567667056057227323751700250962929530742315529587186338823094065902547740354581706219919172068616887863182111153708596790800331448944276053184007687826002848075968728363990422188309073325087940200807634746295605399620347924409745625134454263840158640089969639240849357938865309463055730395466529872945427814308836370075791056801257473446567449525685964295504563195913092618907501711502258814356153542833903210210343065306326459152870272901832094650028796874365746026467294793281985387812240832068052049622256651287024192826695783637437467318049328475519719012223050408696773839416924299963376920801383478981289445158193988906239418415355721741977126385247893015736614300580451516448205708964748836811723599118140911139391923212985840467673999204534220049678753809323158847399776255205253724325440386904245150032979810710640629529722843889216933875598920747233827773579075817037954813361566498810027093501048063259522569646098697444602820050815362506590685422276303921974151081758141848136317005690861337057686585164879994878394583224341328756054446089610465932012963316120878148808579723550725187643676226814835083981351652094007322271426581999579220613373852396151647173781955060063777925084341082692532202811146969547843940608355681991276566464184041232698529018268358705363419468835873757801976770322127813003093518114043939841685858039479331041255705116452484168002716385957418487902216430757836650849499197716917987469811069860312325640126191625340208269556130258993790321310400470312626359766293955608738480681390478707862677247030960766868708184270069682791947577874571324151319682454041878114170565509068449450282563855483440737466917057143266985084668651131494793941084269158784761019618090914555903527083760030750854138600110568281188500524315881466174911545226202250063684489448129253451801341178850095369732325070234359051162016246759666346459183624670620072146062422580805576292631425970108986542674377191198932931322996436179762422637352736006745446639500820529424708657479278062660450918861333298938785251711320964356793483353133049021772375665630875918094909553205307715458133085860069271640634828084403267864233902275958807625432093030327146231271544796468447924429120271032682159391177639237962565322673406257087154279408019903839987094060175111624519987538468388990022340797952247144121929104020497716234833964300960112703682509404999902886125280069976004145893257851999507583604260157437737157644381368260114517543432112889331779816501367740439979261047812643258862529892790877535410629219570886886840403656919768676143408064647633713437868214492241397573969599662305066463368508037924326702462620274979415521704177369290128809036153132935665683646484941091146657768246286839908333115840950471745787266748867239072124693045972402002122258851372769285176370836974217802361325634989011519392840678910164641572606270951664109883763678299473014734152572764101649882049459761267306178464407897133647627844841121058955781566658198287097503287698463515918420317293942993740628866497331455481408936582281455792279030298540402661987434261473583353089051850733281704259120429674237285692385930268688527036496846525828664031504814466230908572693411023040323114536685742149231088412014669243594952786931017406929715167698740682118807811941676418775834697207420918729515865052389201884085431581786687912511809699721151563508024598065952983995147316259140564620535972173989851771428013874681347829387976985694108775147293754620460682215980659745354306978302066198552486540112843701596291430774781732445590648348960092526424102608653764914178734671655796607904088177301076570077254129162968254089035543802928708663209601986905366273581270369134579522702441993857909000662512864307207123183283819790959584873493472426249640063218605992514727310763129800284055157642226120475775256432854236370048923786262382656776141219966842188489536015437434048760519391566172651646968182492611624346805433398106587460576616189434005798757562426022803631583141016281491905337487904474639114009972773995707180500046377944088536677455456918827209157137396397738471955525697633943208487010104480812093911219024204492352620184286177261105383933477612847376054422579178481881778271570332124915383943224175761442309854927354119040372959289078088966058542576715356475281335406092314736986641943712888820826613241060976274952894960048961527413733205279552029001795725643077294402986950626777528005912365627314536336599242119068184158432359159160399478039356842791652859962645390306178658070594360695409958904789216993045265058449305318876279537713267732223926515282620760134423108448220886006619471027293829316840679713420248186433512892355394537024057209409414879076745213787420328906992766223966777703243724667495739971287681101149368664742384320305167028560308931094522354396197521542807101708163918331550287098469747927627339312124254836205835558168599442700839640984233022204138034597853314810495477427338661812089580514694436144861532904484718111665928921516448027533972035579554079757958155028455469967849015756311476495547218002939317866263894872050782672626450695061878895603406832018400852713657261485220379017141078443203586390442643772753893910887520659304253535147949840262992938208365265369375927189661789987957278165950090646514293911873638229614090870404357489645863897076713764482270142996163147101762798228929237459378301070913494213953519453130450913631515298957130595197991572851975193675798930268449594653297048148017732522640273149378440305716629900662901196639340258778808631849139780805674212225001379923429063620487961849996707477006502542188269325040697333541351775695514862463915367619592035508348065225957803133095410780677054482723095281372432132243620776503938448631879799535675385553873375680644277706103030059020752876943826102271223644172627741494445838326715374959892429226424095034112813646984567040583017908333161768667822619689321741541442083465493552707417027395330790176392046948437719029747702772694954761775818548420220196342339963572126425513636721296000646655849102680318350516162149901085120531752728979538929786920257103472141849198809012053611996776300012700240443675323947755647474443972601662565632393379650460220044865389001604272076399419631901215322020944626109610783211734884835717808897016321928880335127087474091807488947829808036197787878871998893507121714055251620736891423171747101648789914147439128582139688713095200043230224963981243454756799811212181801133425185821748121913195081754691605108766422616706169279843924017511363547360149645119884687381143918397346345845220156816530352421452859117742439089154688614500132473186453628451196541171362933118444209095128822513382211940204238441989394186059600435547755418749696155646785616069727969576663135953795695465669958364857470906331484239888713657370984857633146690639128538135067129653961977566978494672252644933227914373738664518154218751932165909263227634782160534932293206601532208309489567235721511493235229618432105891206417548305061717739623274749767276242809422078765773805534320901759443387857647294431905878377089284569692092057572660462687809060890407950531626801977290466189388460909935552740042963227844771074125030676233480811024279940976440949341366313162679911881019008576501868493409014954105766198181891880481015392573785108159672887669498622034860372429264806823152262224452098195337182246866172646992294037221454954242556257411397605795843419838513865219703648024281204646362530334015549859921061758829306275820196824550677798158492483864324441647058966858457183840785382518969409900848785690113636245685135150951965725653501325532184137351165268686833857655734584800307223030248222416122073154704256364062690945015360354516229844642155292890160669718444475110076346401018491282883906756990443354398450952785974980354377566779538260619788178178117221022768231559186141657620559820795015466755555755091892421259099630515190285027443982784164265350193110550292873117399199377225447946146234465694680652059503458577731415484910619392459871125969486879685945959249209883753341137304686213879652067312830601166973738643866983506746226892225335305983402093448300517336474273625738460269073360003005404357957861390284669554696563889663548112782182093837928202324606327251518696345871921550707430510902280486231432821037394185070431523667563211498188057010609294841441604561364430886924330952294063520529429444296335244620549317263302695337300583970770700766312899161350196258417415949367440056490177325298869417478559156052420537964948575866226398897654256574112548719714086300711765032867703239010270726088816914487849256489060020644669377107275343822387650672938171352449441735404061089758122924815502207788918959493020625932631276896793887478153184209007848631029383584429124774304021978605030922527349342419296279908794424094688506622895369403267426796631155879004432548046770238670881940871977699494182732669011045769358080092848858569877719888204349952953319024011176019676359374802944342977558767557948005083053518935370847824413973922040069652790847716530664658592534223035551681609031729246343912633307591145948098405488664802540891872678710772527434427464302262552828049358934460217663376502874162021686648604297277550614780392572385705307569948513355459011352174946021283430650633721524383565272002141088756372621112102701833496530544788980762514268217227455061946092902655373273758660957295548531665912676053993290793632316326655495778049089312259278277900111115040650486464749791978548823030744311012566251305303088709864308536542232297319725803280101083194083170815377380494547808871390124978379154073380601773880980022299893054409912530524340177311688425851532569588166394348705424428647926785700919471089047734804780730810240815188498332706456925331511562807792913064875373950112860895241494726958325680632252295393121486928380882438148657897074262135199007452415768980219078169529565245297320352807476995886309491762037855610180716835918808009216177972843150976716624376572637475189696152142790001445393718492097828500778511874657079626140406762117134843573767106721731248605959842042046652500650956231338595358008687636292974269339368735848697846029957671040082794821237530169296768975323879333590714802790474133399093788259308986830718157158920926984708024478658994615029779013951801779501048706458945256961233639410961171619656686349682355927936078276983035247292882920327782416580900400290428657272404199403720917187063093599279067814671658055807869708097738161512960400442273713565288932638494936654480080409556976562359726198058703376031134266436262298250121469790285904716941528806956598493771196643894393866910620060183879852886446259674712567944223471474848189786789906822622006607423410458219736975448220210564339806419530765940447831117660937537479525238997141404631225655111694309646212776544087979857838915194090560609220124843413421931518813372146664486075728841160821620280354504650451636464288510859286985969080955937293618497078050124443534504754065403673407494475917541263200368408543948212867374930369498275302919682828298443929903278342918155346506838445686111036704149070604016508067430866677732401694095066469061596014810913848893480795676719830464487995135212137479427807424995684101418004069793080020409382181796801082823088950782280539978787278182656287025804077054671029978641821082708861575992498168456519187996329887110990310984313715609362907411801590121013131145022337337860287486714008565928001226235934891420878369788308382214985472795760602981102755791264892804654844547549162747497707096378992656990326659670814708756684774228224948922200368691036133526786486722201302323560179970437892223579177094224222230907923954970584532113788311199391343682355214534989996258771377513919396679046196592115784849782208900369718580060323496046000088572839488206561950414616684934068243982156314694845440316164338895603315595547931950608729385574603623226157388622444302114723052689357814778160319132705558646825835609447403399300382061168287783339944507001273921762540810273244654401494254650267443266481538572595202403160899054838746680999987779736395327579870133431902447145907085321782441005953651431248305703919463644405345534154910720438991639250919220704192741026888885505635992860476036209363219309941532656016188856205191018960831041559803365873119358674758218808555462303791135916584207179517862493767634772294255297174558427421842573193365303552953180133119231922785052580286152047500990256544806782499420306940297012067633938190034209319020625414329424430575485102436633031533086570798128261251894369487059506609630528867672109244137806544602320082810932647173501337732855392766605378764483191158530709782212788106783427368633411441436440028851968444337654831468650910714678319224720554442722273349907258140920715610684935564566083210272963626784089228377483888825393374484009995615227271331888312525219746124799974864934229573048363137335521288431148926563835989484965484993157573360349277444777565621342097638947957013355350434997215253242561058470312485661616171857073766657887320199074758791581138330001441095719139672631288149596152485523333554919185720380636187998902898285141691740716665369213442588678547143666488835964124353211503639213360612100432443041964746437563204612957289580943531774493912587568351939897281016025054474112704643562982889009558620189545635848903611592891571965675928059099510064457162585987068879473610628242629758392978704716040177513834242296406666643016935813879090110432235824604565155422936733953468945150970643765772434883120410209913820242302868985996082645982529221260933270640901258388820670040647631298103004875840220457466539664317839866827129333055325555787318537169981064502828455444780517588286306836290094023856039595644684778943145912719209262356703433565922965244557126898540360942212294888488659736010736064290714982378990469987382481792658464213982329495724528076071645875043375936496663029600849684730819845336075820639477206065330148218646373578241325152823538184610504297836503991112688169993508881227842701584117041936186780714876867624693833039061188619854619665648135756650335049951781476054280604242400296822050438854513438131667636351562495726563921051312797799973395146875674506735640423158908256670643310377588159865834896926586756499920106464839682404696267689402362512608685744348745357254200537307083145210038972711537809742886556033443152385430505338771425401042670830106256673044821424114898546349348085185745366995169545522992266645796440002302298951029986608410251875057988001079271139776163386943033928115286681230038692441694286877543265760656361438007588531427898277025747181552830195668053229540894980537784379777039820780380295864341985057336388270642260672135112040039539465381335514622541514612270393240338305276546404600400655876404996357397374121809833317766927115821165115082474581371953243473130937654919087439583349729885833583964041065928848435399242330245728452155413701211637565443665921926530330461093096626207249988967126094577337917789414760999308081294516353165505125659440047039623613494488341925486581812539917179965000777549713250137006468114516018620576787875938954094180117528903259202267027720550243671035936535547924937819142161371145064145013181326515808114882452678831559777383490579151650543630782460719209256605849548118987436979454491676500125619848322755231003145046215354253470047074043766732617698701462960753216417308837361394946345643876731807370038050159105692573893437067059704915486508832102329990426215053540592713683332469851801393215921124614543525745615292739247379227750259665213149815448830648525408998458715429982863472201868480704089960208564946290641121722196726112815149481914055209784139945065803696233228249486607074083325097419112424122197848258036016123980533364911286993303609659693290850037661024746817330812477296721291696632447650607616382263154342294182811534651054999235985478161291319494909504423075144917065859423077011553906018419478790088473236537619183173470772813525790540646854775037200037084727859494594733057588110720846533641501368824641655717601969416198970417949722322545784681673130679717527825163644439690969467906821902140194246499156214023406293254726158298987509099699408967206737588308119628449083413773327544280590502451942253634586922393733751088858251262497233576032362826526612920985030433635912538514091381548632512446120588451507602776035278394934928255013902524106729274636678534203412206219118755551633493908701342740261415150110979457030309972366021611378353201893553475719865808026118314825812001731507670916544022816172368143177452719640946671248545500565161601732173596924847696421740819390938993093426014119007064756372812852283955272440174793866784299413304014901527229366956586433119244619472434326434035413361875345655547776247989707375150140846107249084168612492545463833483899396739976856799948520097270423249604934749816676656116762319693629159727436794155894727628471252801921625987555578248613322746457962382098209481236717027803907372651268759531643103974789305567108910173822169586799486487338220048244618075829748900668280157054240214776640684576696906203796661149253797458863485158600694239170662336832260937296887403173587953895488408883024802922909493399959327708987048218511942793642052885472944625572786070397583971839093366338585082167880219184402379973228231637209835410737133556956184716803715818227134158390674928835155468337732785943366168403309362932347871645486833447331547050349424391825003479086425728533783788204736812608463369572888156951462195114019980763174281904314638744964782979039135910444070673684266985828513792704412358861157182780205801570016156737279213224165377269013781778712747428207479091213916959253024828069703242230985015690125876517982797716497762759461617078106975243169535042896940423042087003692341554883812758793353501483548314518451105688568657132384628158776134895765211608519076279916237044362660533434973496671606798836513715833510198695376172656119182886967661546899543583746185548311848738889346180148878102740692015808574420947515458356711372526956645133540815848852231829341733217612484501326528399968677436437890723379400246669081037869195188783634135816530609268702615321140424153699033166476222565269687866451741385283734703094785147095321296477288476349267148297903360923541307364137904106730088806660965314997378402354861439682836043633092726500925046254895547383098669113973750188324130678266929869972546248978452185099458334745531751781719430835820267176101623290471203054419159896710282332878116307455595914234784192484765858129014721613667696314712311170768518227010186606310107671750947752244143291611433591816157580435254096098718121948576111443186765853942007627390282830950375370237220235414563552987440316672392282223385929329248103006870812686782958758636234650318656683014486641397407743967915769946675143818428965705311475645810997235722375343810984982338716409417293562815817937083563925712171401814946706641966348376323814446604600898287142773932210855212128120895926266849859544303642091291605663949172691873619264969950093818179666372083300789107258003041751700590102174762865811993643364559946155615720535230873728742592467120698842299285576788590890400152215718073842065459536485513054520413347546934322286461244041800589215018691473045546048434029491633894204065208900760574967983469379857243629431587343244457629324530788328731248114857198330584527940966060749600089329927694075058878871108317181586479713381093238402275324594179497909714827465195383839307088953486490318071211130456968866521210159823716689363402716609343738216087720001554655415580067516014574323918641108870803101967789988983653911176538713588469514350169194886627118089034754949891339671356291839687779442329860104641943076782066318828186492870610125334122258268510263657841361627597119977725056405216672901115926062233222688043846878739548848207489814122721194256691341895640954407978483408990918357422835196573364021488428279034707303297611676797846778701008192379588668391464714693166057090650734569467366603425682859209012816830494447555354599824033608362418888593953106680422745002843520782577905505902040574196901328173833880699848348196570827292937334701318120352594942963607497349846335913219217205059923799248469494427125189031783582747150978488823705564616453132776104018624853483043244508549532432150857251921163873475745550160235988468799630289809665958383792310590270179481524338067707833943086398678281185618344757988279832835389872945444087352925643386693777160037442421474828149465779035775699158174973365435940133796499550638515763175038515483673697631210230758743039744382573967650109164612292921731873675909824030801125519753509450983558587201729248423121936376157750248504867712218895943784927408655900084815079188243673724910548753367226906928836367629039476515627805362151234982695955649548190337275547161660877971529149921531308914528792812527125527208033688696300698605853513542305519497308094085593134504699185286880199297379095624675459592157003452868738397318339658303163130345729908825861005676268442579296983075272079062625069335450048003581184696824001632542887938385438304478071260837338944616611828847312913874741416980359663075745417957883821841489371985830007116315389540366725996410952321151692330218420420410671164160164045377233508551370421468673073983027063679157367542414078533818948962578854938447748386595185431961010115229515292810979224663778180661217560437015526535442597796727452334228050562523710967346556690068701369774571820889083376131453765718427106880530302739835498713166969084095322546267321546038295914747041803413045259936528812809311635419897014306900359980142242815624123229440397572313636563032448335938391972928591260210979085102297926737543475680924431021327900568461740133311670045562430116133214150366855915649181205963685329087605486521101636362198347806068282496177297559308449228298866555814347406863192538511778605066318361302286022652226865286478835229170571490755506138809991587565463581370847572641797710192431761692783034430273279416614032602941800836561592582599896388648311079548881086621376882209340694375680066021757395690708968890673543355676277082822075207547404727203327184217486001836356444575781705197925208938321648446627829370198872660634469134893951166734254445876290699859376368964249486942502120877963834865143239034902452945603103138468025882515762339627256044335726595282144505496638422373984956917925954417780860914723566572358596137826022745226355688665685685981656888077698477514462723621870830959137044222504085921748749743002284163680271587999525074874695332568015788419523554034107877545003261401530412771639460413861151641676343670329979844874374507470007647818202222512772168103700067353936999618718081008396356231273750250182183110629806193516386857494221714460363685518016431736278607048630439725092492678107318686446782901691394168033357033209339445619929052136891453605435924230914199557955847111503777796669385836854381235046228591512259028417572081616216214509080844715070724329654928759566260137066474787147206871414127939536513606806110182614562349083538604406685505508937168016649228043047468989491632960963445166825894684435956988119977882991645250178081803802343838340464884639362257791237278267009578600014400104177207597028119495696020584154775088157374815948514869525076475668101036330129568248048933306779310361770210841128237292014502112036765629243276547258694501820166707432006662108082687314722321523806022940417544818062919956214953890421587575564539212911830584765045601761853743166422870553431451021801366581104428969766027378969203594622466923620996832291877660346762537640543711331269642739371482593372463530688903010604593045742667818022142939792465457749916230484276283978999455774627811416316810756688187951783357431885712645339731565073867675608599383750571169359159227101252119597593911737113376379300911143885071396605811671862870612385003192003177195859492251484532087619271636236442106016516728104824425374418463134284975781135636068495479507988536123383477101434312097095416198319401344674324313299051872123644687057172616267180881748454277592006599043928287053711411130701140569102818579045295444817571227953719533859333314881714423693567083597291066575888748481347145109559222156702770471769917449326273043312246015615926169620596171289095341655060734392853892284549692755849387835360478207697735280361979030222148368485664567743636429810095787947888647464128841192712841140139497263364075407686735801926578894767788921481288555467967757288948536788183243326485802479855700554281394932966614791328618293287558750056386628838569401574766331891879001430949830601523850714153069316500498789428515470610206309706182877100882422157398484069886643584155254209717235951235707356786844700390543522952683263544106786082480397855216850203802240652026400576863237860451904962220042509953618120259553336134896686548256561169088657883372882929395236328196783463255286222346298316566942283074963718289075583787462788675019534638126985170901283699845582404800113209673916183414448944993520328098173187908512252174781274809081236560011736343799698975686908095206815242558061468770102763402418019091745664750699148882039786240685822392617552447214531652276906722450781276503829392792256626259040244534799966859334590512833882405225000605703908821334026209297154049095947997580026555203965159903602844686972437531522087411609892755061604438827961994235690589142626477948662173601316237442943033267216112859292571923429707744043176383708760776124567867605085019870062670577324144303435768527828181212386858172159930328582966445041867228412489488458454870724812880871114184579749669555005739214727475473726136144039651583927316768460834624404869198621572777512944801403493520417969690333275666689842972528612709930354940973633415918962420536240080782467066415223377734063026616921944595055208251282510243324494829470680439978662419273500636595325674810646795267791283425526284526828449474432171866870714162470776134365453014813963508324366853724620733395289384959731941404216583282400426839280475746314987487585100915479920858213085953733024268214494346839165212930510100680138897288291708264788794966249102501662850730005698027899342895913343203725660301839582922904985095323641585559566778594054285167300190813873984346348595441853372231470761884691108762496323706719935302518784282326440307286666694585148032193175170030777747238507250361096092351548273162337501440932536627597837286938495481972127818441618698768550182099623177772634150989790264420819588430172477728964790420483270828296627693735612762946591646828599934490720526615938699847919735425407208732309328687980623452749578232970158215264505615723560983779795377121240708013706957018524059034564939181420833404329019425882715499178506947104270020173438336346956592152571267903569254436967144418575478693560856116889475159052407452211779349838746173271672142919561174291638317273694484047237763358020797163415790984720295682706694178080427547834891999257670750151691506855847911580153889231889749477867248111025173515519543821914301225691845868566185906599474473694420610091703685796735137644441196678184739845531114207854878536753922011824118827098698408215867537050552447274456733549157642347543833585369687578012330456284980598379606673759936209923817561244475367109408259659753647840258652131816095502412702375227132870125855944512568893784751607454937854537503751697159788220625301565772438111810067906760021703628599801243635693334827977285894420989734151605350222711617492125514156215471039338622656016984697430427284405494561119003669507344412516074423976180407146813311463066429148800553782173605771755900851160470156233514566769773212856068915843918806095524532515870669721117666410544171162547908050456705955780602180738467374426373064257255093284618439487632108044974518851995742819979709427830983095360676371883797193523207422099692695913419725319575095037400317457294464893640947876931953899450813893817088362949808190872964238387100189054374559602628856751723235405586510736437404176788994639427916070762034040809664547792760616918774138187460016657233281604380520637493384049552872092685549946237044939340132041332241793449027274120023839241041746898255640411796583342992980009464098314997212772998892514764361397962022918267962669749521493821007357096886356158035918709281681854258748850372356458413589440849765220362677104306042785315984669322196876176757418613675452785598635872754010544171098709550926315196636833902805412353968002590211726325273136886100855969216313172997099753188272786907159686745202929908805921963215235372655760409702120574129657809045126123804335154205896661268718979106501337358356364398106775439649519469002326089223722538445417451690332745671231134576153648422929818531701226158839163864198833832227997945268082165415423597572968506421374218954565526657598570482821997865251499672017115646728801104435505822447319930782684606567999995781754934134525259830164828732317386190163255408137095908244010420204343992396634781385769720444306352126359666749179574322898876074925068887556318199967364535676776457256840343011531326945225608625317585452020139963016278062357712844395808470784839685449326113341298257548665190759755052891003441308340849540863022859709729807553739590262290804603478561933867202172047324000876707761849385966517788246873430747906638566951875291753630537917354593906716424075911039132902703313321798280992902476806045838761633818920542128290555490652459651666068065222932834796867198480914937430310669088382545117061172835473804483900670800001682683644580265551753792060318014937260359712689293867649518520887615618139070790785128814994375499622613956503717433079579135726063124516017169373115431929886677568746600145754366340363969083419685219348471951352142717173583007050900391179977220863671724699607133541797979865970316048921196855905215735964139252682367118543924429434605799494514074479606243567301539159537209419656045071571132487060125329516471302142728333421529431436943702812704942297926374292009006162765022658522818845295598027195390248593249494519234830090962320028523294643282138366867571699515550429294140618818195092523483745720369398188844319486685442117535275258653517396186058034846428281157328984083850671107834070516972530428914828826183505115294035200821047932462567544602816016981301235267442690607290022146898452775927849438619469152146290506186095588748111975604872312256634686349499797104609937040470024980349133777160649353173640330980889632747902759283642777422702522151540201081828908760510390095299184241496286775758612804043254771212896119471656857087567732697284581701583655273424855963830760101229492146882599495302664669146924240335019072383034358668344233873121517892718774262229785590693869748232396868893730515799782144927895471402898804560683224370952835770934443053901625651496681409557170894016384768054382480463487115757754384238598134678462529407550323483521741889682381578988280319040656640985630928359669530093458958351122604719729971566489815091366946924189757028569592411817896103106860287151252921704728082089089813455529632459677959617000394489491943600664722207854473022783444264343596746818316152020955406741408254496709087398698021545942107963536098415001629343022735879111497521328506933928797015152900475635204053647311175271138709885592005524910971157386939967981087076456252171826188656823671794691503415801398727110352199872915831900168207667476391101094289321448451790402201245355294305578513349374530741375451842492393173507029811889393579637891240755415398555204879289565937237486359996454720708222639197658889989270793047447644090451482592398968712508593125790523434186394899844422359487487741538717169219253703283088684613937874684747506297280469002590755463411999634359956138921766582764194959974336050337090268435807955399853322321386765663849015665332740596791485290200201456957603957660813618207617522347429734581054509711310988445472741201882560327781588901932846427041511161830356470180962851498645357106199391459526862385881405663537493569160325332919575983366129521737551260306117671106163131596164059999911045531641318012062988662485249409707397876753188516197462177039279130307430923105623709730463760421655080155523126031419593389200906602090866074755685122260500870073130524673255736738852666317958828017662029992916154545019398308543893571798877389560307696935053019897677517164677973445197777251981458861065189435397582266836826221878507504094035775707985599119373927006247770586534362199565573909756917612376183535951195448139172583754937388460296655500613672209363401857609265856359700357269155359784617718294790434248263123544998968043792075715488313047894369099283967025280140143933468309802385118566178034917355566116884166409974703160437021052814768107255274539842042692868325512981981467001847652884533048778870690970998280659556438476478082175591455037179798015882062970232878900006887800092939762217289897738596591356732035848922246885262703986075667727350937151840162211622670599576693569073270889816843561268197874098906088530463750804806227274278459723750219604847468478083972752904182371587093367789308209177176012490138072527938563365613959281745075326957338454424261795493905691154768487076838165185200340410665308418404671216629164285117163309524153609249447229547707939103337704296827151657662402768726934768872800787272299361491574214487739932175573091262401008386941804465472726806780106230295340779437827012424295627898407968568139907376305430916093589854823239044973965375080412386140887974477060370790093852268751970779307034707957555854005033228899226920596303477778351426247775622982312689744621994754552526088326573706409077063261670825649545597879961493074209925564355255876264510451813960778262366214376987416854299501028435206664729617327769890508482694617554311844180411192928422244543701103572799360845505383646088590770839923757573794638988945380288514596967364941441149874981667555569961876594174754520304049609694762724100714339939924278457389560597141090186355644828257375615774671731083723555203896325783399929941469910358981918729549570520137167677597774233325423183553508939352277260385107338814825946877282435686505513643140974381603822528973714493533519521648431410103973451283987545453497139431042192685499073028402629407893791350602499359231906938325827172444376654141020818806387135701072198746385951864274352661643750191656551560826114450345083567546060255215410940051762055273962866737366383079600325450605449269152535525065419560664328335286319633630323750844945716642500860595370231069522686915465132148880525710418402513137309903024038319623631256631395651235309791780251899444071144332976783766656370997902842261745387838039258803869546654701245607735740244815155596644254554959287012597606798875979743023097799136336363019286621937426230770300853904235061727215264314170229360314161814194910421516228424546856901208123291100733986037191217576217142116594108728582292299615933167078058243674020617894560987075472654484676761961528614480334233588012525463880325402970209820120473130140379367748883086734071719005721704989402067892790530337773038924334708850360257813369945078472431520848113978563984891942103601433458121960929746338465481089835899215044269430664472317617900521844923344758872027790834200983938403030598204638656307719757021203260684347169408997429876904417015278546797232113063298442751562620732616535110937182087479627611515715256113700963750675495230226488427137039609576799500968741189357983940883756068486760256322103972045330137552206832535123836818309912901061227195566213183697984386942309315862202203347381711995526517534766021235346264659534441994206648146612529876283554106495809735938772868627231771948790131100923873460838905974213898993899425010689554223906529980699725840093322643207373909924325977497335317832305657410659594899945609297994906260019484813822213021533863007798935998576798201485354733103079221392395026770058306397087133506625282930401260378074976068845844757726427700611455801571917276212886234974807744115741330743972177016096146670560761247054500304923574688286251727979856165685753849229984089232298743305166089746204549103692768285524448720404104799509096708533075537449445777510221261726206903306114647772483476530892457766398941271388280184860146922213557826529221046313680416352184694859228115262515126586364089199557487804927387692945055940703219973236621914067647464180304136195151321004989008127686458705200456438478894451718489825007221413583052420762004962352394523138067420721081811045838519258711605643714592290441805078172892367565375766135635297567966720740890174534186229925719312018428612698661132374345466028745645343000166273013301648339336484219427006236156456069373560505650592872285227743549839904976876735217046196454549109712604476099167917258259378827343232910409879915913076976739734543979392469889877392473995920491708814241737818215559410780653601347657538138593829820285715124737643638135109618579146825514122809778350654666647544609031456285986813811997301622395917526250062833386542128307859479375143307858436980542654660590566418032142695739467723700100447027266133329810012688733191738719709381930507016198457173598432783273654689324140188960502530641885757995570472439547768303878810073683814625121118250758090248902755083772912052701880635946959132648847888547300233188543251726862415818729040582155104975739536721980857021633056519183299578609526538319953960758403455815020461838487531530012122001195080623000994170307602119651936975191198662220469235320123163996647561730088480924122000571078221384508800579388632754545160232597555551191393862835971891403979879006404298495089635084999625878538969067580779757872709388312299142168551800341390799981467179336582199130089903049908692046191027195849941877372589986580859927923006127297022128182075872645319868966477792249840325844931529846657022645229274244173175018833914528089933142445461755169810719197897174984187322175853463040783001313184351901166433742569407818509145458476629285452368308619492640536552744886531408817196126020943929218910200176654025063699500115693844041872128094417641627328017063509275229116349255085901610480422355538207563234646073882201474232662933356108987044590098973708696486943140381429434477644055405259562750110722407913661630184864076202846135316672871281512141081696236257349528314393247519110295514718499090996576306168107051662712512516762859005855179548407171673391758202372940063196449556011137313343709072772412187697547173123393903612393687683363615041034878118119686314248243838036098318863274793389126183269966836836277400377688618146645026216582705252894603723433148277489073522269522619540824780467909830447635025607109150033310181000731561542539235079361371668862820299120327844685051933299020966871289836661786626359571349918558764330916054380295638921386523400049676475666036081497085235035816353772946499972311712484759721291780161297474289364921671634368496534741840795775543283745988157919288095250558509732690905882976680873868252550110608756789483755472135257537667037590365301288471296420955367315564887895975739645854966440599633691670568114160628037205693722925108580468049433224580842266702377596527759433521174402308227065477066066120483953257876640746134844927000096294158484525199553654043903149270471285488017221170125496438838085600429357536728599088126816378300074698602418954123627548914488466238333294270319292700602409424667458539721090411749415933095427601980379137497529091333053961219088780601264604410126248381742081519047032607112228841560752717233213564868433188073475876612846229902836545560159287169188308974885258733551232715068163796346208438781444699618189936355040857577946149063832131921975463707526580373825888581135312339067898418228146762672036892576853367746098620424436513677535333988297718178228294356518777546452508637777174209095494366987990159037987345775514576850209535501215096757191294786890289946541401248949381825889101223550892038105507764155644750960136194207715672752921042631350080027774588727719074156404510293360676748034526271140000070738890092087540005969008032062995981835814804039410798884151949642190911764629255945465050682177424777463658895864439380673376583055547991057047426153146055208498178975158653359455106449298994186923581658480888792341191407908193739913477340879242091454227886579676976761495122555212271587323528283136114937999219538767714560298605501762626694742036247371790303125340889741545781599439967150011273259747280094832873336851917290527042888977871226707221195882940136511472657126242931648011185794611232985078447216449095632172821219302401060481744112479074695436746872209369130292004034304645374986119391188722057008576060263947783890360655276385896318648068661675276784418840135568158504987435612279590739696501509528321875041112050382702152567348624548086415874548504350563197963049103187616283325089308135998409591575905488802841727090241579002671592675759874550935502822016750382626999440012033590879812137331031035855279274752011251165405723889017944803765061443195264349044422477960183656543598330500505986967582605522999755345442773307029201350763138510403666440613961549118520991689731996486747363553894058197746064172437251716037536010702649302065834151140076607807994068832012664732727368896524135789228982489524447353106682295779589534678214597909456193685187216037841685686224676617742820139974763062896258885155548089757888198726261726796298404788739356737224707416915611627397229564513924468068500522052391544391372288297202556259124164935823131126618470912770394683027924130260687100828796246459002869587889054726081614068115166760804010533857631938367896928086671868362138439139862944401314525151840735132787436108453951087742134551800808934492278819415240894287062176910306515005189823333244209574464279779402853927845236763141719852950395011768855845396305650152793983494282915452113450245948322094593362157869431806837878266618024966587934900221949009207320361388050567703838240098421344408300055448309323835588093266538037291922837597970872172935244436117978461972064104458296931679929514750953187264937487345776233844643284310633227614197932483155293102893128262356942231376470746049092037642763370111666195815601651297807553429141121462849529958465352444133860206490757348291278777341284901020058046361680740632424121822193455242968351834968658772571164131508923139597435207323931316468230163029616845580841610846683305257883938629000686920943947049860275148349072451734580657045842805321443896773443375139303761137382231151617107043042413506479515221217140204727674022031856418950829405345891675593457978108025880224360898658592005270854447059828403916692588944842528214414883338190586423134716679313408099945263000997107992491435235577014510182192993120360588181459031898321453013780587740518539399966634119045342801401294282572057456929850045114046357252428630487303434579536092164880614731252635622495033177851832229172792758140449590187318529877401699493713622733515926470009583815416929293797119732735398463750505800528214795504181096546120518870569905114049485113275064305728455705849564288198199631390413552424926452154940566027158505343085524875400721772548705927245153619848109768164442864492828872219835539262638523182015766614370130420123066115565824765855130747996064951526882282532960517922278736445385155415003521632010970116486285704361269427936890971263945478502099339200571853181796239049256594285343827790089776814384686064887705560299810283531642094533999557453953947004563190782975392408142746135671370424979694743973645016647227243702907969626022266036540975628217795398648924591269445571995240792988139399875351045417767794859168519693791016642174153134882856165608310637046262290355786283832693368234337859378420380752431701944641807684783020253922866459964537163907376815160187357226542941844831132952536084616339747009090407338298938407496046369174406318344918174677678191993861740251732142459082237014356510211514637411507384614987339154026136493730183493467189802896047379205936193991619329120331012002597156405150229702901830498814893909748537583853167350330685529555867288688988781429467774223559153133003295648923689916141086213708722730110354286084243291798879365545634416052679104843248663483715782842445955561236323990752802786710849693469768614746992456272967683245857749558824819855143336421847182359833589924445299514680063123358768525765097238121402748245802032584895985048010011713028524162459314298037921740639305936027783436432564976894642347114985756377517517203436909865127338814392338153956547533834241997252689077981035836797943656171657709032458491595934348841182773569389685429349223404089753809938436966559624457651507140709930076290492401720052867474524812297435993607816962361914605097750121500320333399552616403413298733775002779492659324105576187967692116827150530744816421602669962984823209350608832098306775811688082123758137605607998971679417600278681332728235738413241950751000481433606380605794835086442632995233273719069614113993215068202763183786715877547515081554551926413283728780915082172655272055646117760800746080092800357254205555147354571837976997847663214875283525861326621548111030403618595817194658889902196388894511998835835085250065445466249302235710382897573018560406093821439909001634266674610775223873077486025609519104325035350916244691991356268179378172147385148278157665144765376788965412407939453611879929385773469443372481370535494205528291317045493749466365865144194702226008861473917005472838596623723901088908725380383524832856537813817889414120305946825734162802233432382560055467368878982264126611375055820761370718927110648465322104098756962488294017603735992391688039884277239004374676654040573590349804614123590414019330290310970939248073519952651179585412225604332551346394907636836325892326154826920012134048501658040381588742837703907952087092021116316302077232876207054941330901879588776632670325118961936047726562930754292542887184712672304003494635599702709913199840257286879786027021431595831389367146875920221308065549414862823662717202425010323027532242561584201894637485763271030887753622493740381178295365207363818899446224070764916172329722785919234393159512310611102537080765614430006059114857458334719464612258713216892226963560502679946746213383274734024151581219352159918258362071565134448075956305053832631262991614441265466274608182290371733503838781795396597479814705459469130806754270234134443802573060020082280929405004159318452405564153236693205666584675147171722732909934962900630021212154086683139635071349758306100419512773830157576358998567340439395893325503751504514341494649913344883480713802687350668422419622048608787742141103893055481195613016476803740751430390822807404776656656105044183914355020189213551600255305456263010486371754919411270289639423319560440506335579285717636570868163700128161948677237013478148869420360141257788414905406091559697941384028118171163325384105432312100075443370920752143675943507089241461748107181282673026321097944843909989020480798073934944890302447803092169333229693299684779965778085260494162640273473732157551283683721687258933535056320949381646974211263818967646085985415269767644974103641123884254645395589583259787402293436179780518948037313786233342867637710343880588176510940791786591336202941489664251244778571123028323308697767663825041187766014626561646203609795095047226325662695633927533814489923074475683410300239899966068403003491266542231160914836629876421314086709383607045419846432406096285235359997505205295906660001200721479336366372730387499471640906893338242410833841059242507886226552530177487196190554071287573075106592178027696434264219220883251121669015915920671084897698254213409303389337769708883928708740524277677371005270912468869743897851050937554023759071100101720812969707239778185447960436675420496422950563197385680929779867176205915605594660866231819288179907612992177545326442214243168202811084868938510407674307424941600763974968447646327570002470739263328985656358941617268364587781211764845531702408869551432999049185327687282853671286494686503508009702633198852955727237814956428823166296209868719650951976207880502972511233182084544285057466039549579716828021116396509555753690447399717614442562474685373917204558607995621157743828928080368341381142553612949619537092734887095975023585451326128853520293052154026503820116621929175908910005982277208694226700864004955354004413246180581135773358918759667082062113245261881101377270054589729188834646972005986454422827681112784108704760834010021765031093495626711942407169387783006265783998737858117657158518506398150643500219141870961633817964010265383046520469357247033381437843475741857238467217515689883153398985558605245516618194819915674157545271494402552457977750170181538840793052315544613231466890882579556052302925987343047895583477382146319678848982650603093438363734943010792123765019603692711994935753805548716124786271916120832279530509546443149846761681659399569007574080368903972281399614095071068140124570259227220490301537796849571867751518671002075093196833889069258183623166076460655773256778232509556379118775514611542746910002384654860825242902122330706442853142805164778268829797689169827501691123397259431693571080051316993831103188621407680521096580272425704197512509471834076994344020546028925924464632157404181074487517418524289865567533757221981867058315222319337013324479086553798395915687919475881470459229881764004330965959175960944655432551250671726021846909934805669024395410986314265872838762484812288847184854057259537786322148324520915800895999207295523520451528011358807173276476329903794001226064637986448696690727918548108979880426210658403770086934349585413110236948844549789494364610289000290526215259704015401080344232481515991004535628623229069584388300286756243499169584537414966257034748093172801143769952144742688324766966683628818260100882751360308622861152494179954728923804616572997013478215828691926393403246206594372586021277114855131447428556481994002109496511558987977433352577834522432721492695061225019774415062364170532749144387931553329241358001133227830063954848453987546243797023948862923445080806208132934364925889267374075652522266210251052961724189508354308420601082570677734805987463699470996014429474749339138123420235430008512265398519407887387707771596241668910115607612285414074645338308900231538688832070548791377064685924628001162170724431854141634825335644418586504581423178806830177106336608280238242972246148971239062935139092219172827244420280800875183739515778504755787107416726787658388219631361068380355068854943886588689709844173884257981097356406391311407989993041077623634659995465059576622568678558671379354324905941130456745673316457629133821217906157053534405005195970016658536523557499031144496630801273475208412146553976418274139305092008476259098194979453506269284653295127419894571651750654076668372068277809312810218678553133659994439596611433797847660772569534128154035969976363681330412837412059289562897084219136698815817190328931992022842324720321752739160275402924323879753804725830987093963648151096925212275676191418289391232607430559862932438443806888188263036091509193838927004798791661142565112535909983798263475452009722414614521210464357392062240691204179512443331373235863286766090365841418024616675401298467433406781056939491540799872432099437394325452082591518860535589511302072946143635860483847942989073598427712777179169680584874402231201733576580307352556165333741452738861079687173832494905677030599216122399295248664733511796106280771097373150517176449763324417109764548563691095022849757900130259476229575767158355862296711683485872489103963461968974376419263453679130952838712201087094627299651930534247991492060984564791364751622543843866139266989451384009697177003866432273118569483781204742718758660745440331963256430700993730918155871448255138499430088003961953177501032845742327711221513777538963987361713981132446464852943247605111625970584755181105553064270328046558956339997448462038395994614603849249363727583414627113584814540684690397212757939577076420444889661881224604558525678128921573541960573371743375889774815711890603841968398706495817863860787850929452599170601191766295788482902613631924708948364756464038673517244447090322272472712092019324440386871719067026225480772283861260627686095601114360542465422770154588884693422044054187791813668318041054288210478735988729743116281749327677086449659536884426752804345205402011456510784258383168196777593079127611532621516476384908045199135871197861214833986706472975348932908648815401549469393138011565299150713917307093567029576812344064450806020073141888539797053744921787617937283215636066054000112402152262976260441103115182093226721378487561401828503071941156857087794659893098835926001469930338016739060382884420252158268600853273196799058514742327352965960236981916119071523903806194405276563937724330910646168848309907771712920293450494878281475459200547155046950684900411476498538057823451899734520113608404806725090326467517977162008858239364203165380489349145221746953710800156779442642254366682175791856856022735559828050871516267548670044452639593399245810137656644365786753216358213888649759400431377567617934205611887591922548270360919372276750644374038145513535755591939964968717086513223440468309512951632852819658421978333432316652113374081417371562712582335118074967874579140552624374946178695818765723224908727096787571635726425357289218122562437734769293940628231061270119430645812758392721857056755773931057710726568436467443864901929563947085104713967697608534790153685805892406346568108412079110000687385105753991717611772598007752572898151262306618412313886588171991253416141638245419168849011724152096594420385780759884549801212655472135822964980773581672423306262568327851206720526109474260422529425479927932111227553964904082684996267921556786092389744722437480650056403972595046910216971744750705728575320598839371171474276743943529163185360051129864991535064982320801830536184829074935912909950449391949788501755188079432312059439327582923119311981786190063544216117234363837973411350376441997991981749499394404764205327127738431583602386405660644962989256369988750010165460985345471207978669666297974895021643758480280447704161220467902247899924975613358257134053852225247988646363189317188477617884724419854200017330597432299718791580326703297719526109189158973190024417518980985102867601017238908916767836330082640480799435272233753007647978196703994672278344491377328990766935852862511087071699003997002930979036653050052449833792805213251998917970104459176582540771140719724668198840774591967974856773500471459456133649853415429731577960875001669772752385375595830197012401933989881846996635176952970493099251840477100945155235049821598232109792604319146098969061112438123766263952592744013359294283065543600599136516138124889280747474089378250105556810800101970751132908733586438270501945967843948059030653280094413699306945552837081394244471602929293615775843018014984777684472447629226950156964479064500922782348996466156341314750350943603641423564980835100973018781530200678057998662298112258662726959066554216578969415132666437870382499410464161812675101984770520496771047366943507304306739795615457100148064056392095106565247172043713917881876972119051330509559487202785454187823782968323490815542585994831631113470837804754023131817369123472329347165121826586270324181652031626296960866940313649740865005782981477123962100036110862901729745940175554376334637753889302516887583333035371522211492295741890092281619032048566680289280490585901036611667296551773420377453680080221979711332189463335317770122398554899895325166814916457545580156687165405024301463615417540441113142075549528484653561166427402560620630773149665515764890207855517919545004200690764108902950369432325685683601081982997200770649253148972829524039889330173802150125042262894270010257148167702517987439852602535719616637919577307935092752002884575229665175189414919918033360408436170754539113783673323356160642038352038242203168123301338005670252905460277327249024566958720486857127839839729365248493091724441650927244438119085783969087072952765232580100323269261320229179252165639960958884866923151821051309459080432633291386771648287109835497380968845597142025156061186849581522794823872928768893841172665481060142800623085605451182813916486165617146877421893049075732931045051774634167518807248675099391954356368409040118515852615606697294635956233988337780772326113750486065162872851465054254928057033546364388355008929396688269856017549970463814576700674331663022916925958422942874656438528509955743615882665297222047486183894549086663365657494780924484031337386003523618888893280396743805544175583647821225363943438458664453204577377907503769769405143863284344870543973831521891002750561888679106944503295531748359921304252801416359149502427681748375315642531413328724711809411744422811217313359013948813474304328212864152987180160913051345630024906967928779023991473740985919785790739425166192873613151087151754946549190688112084665189628532342826688671388514884231928939067941784482894644744404135320300704728914009737419267350203830397047204594683890390984150010616582216742949571197874399434754553273949647268495392499112505913358273227060175457994255921427655300620625241146142868986493529386693099186030750100686867269837130387794975324888755592369762004483272465533866540321403731108374339156705806730259945285278493491166414893952595754888895456310536738938213005148472252659804587954710561285465058918920893320952786317278554645928418165992844637193348510508052553654994968407346887184377761275731457266975199068106414020529955243709690890240922713151203446028176026336998246936222486077030455752977280707403337718204465845899469582220036914166574343418661655726089708825858470732394870920535285958002958128719447944967835093757773700912995778398112910550451915375879648671483661860522927848283868743543285964730949685632183713995954574604587911492876518707984563373703584515053710286347595878990672433539224325225116351776390773962301781535894201150704213616345043265756745957339748164991797867389838178765608350901200069437785391142396711933986365707010586496241929232559502529235678591279994216318041864223345503072419777423590100922438152460245010139045707339065817228239240674557383340128303822099339295136433489630407149019800375025391867625750695239375115724900528301344178815375787204633139674586307306839273963401683916654149065097614349715250681321998665626458947189056467016893640488466378523045161815292852374643803889318639623787502433751527045981816991549995586692431243731159971471250547842432236745372517848363559330151394435824949938988174406564191405451737753237363079406436321388920005119710136664170467007748073282094296003383719474732177799132119279021306776554090842991812848697420205364309913045144399634102919485757782872624437828216786820879713650157583033288968298288635029542229999207636222596715889127865563781228941181574642247038573091273006160813525680919767548101937933060254399139771922602452230260937854468507201902937051355807288022179975579766027391658006380017438467805901272826849184409496164687416378795631364396866097632803409581201050902701200925444964173127159091526267647861228855934409304596459360393710550846142511304383120520575437520766130129753016442327936692039703631156084694432292050080309227182911278805193088608540945683841379498753342129690140001196717391897138633769588044177716896780213055712150533482821271027345328730830057985468149871192602322142822836573767132805195648540771969659199940135670899214765870589861037809239342467709730815227460323686388327473752004914953530575745500201155558761088192902846483422911209251078952981325402082024019029762183603905838373956551987597298664503529275574177021227776361446366478181708334241880293074425408390002464651047668837218576139744060142649080235307970999395048535044448494938043026731780130313079855470618736376435410764713668204887754406845136879851915411177425391227867867500138181853653739598414625893539692967713002831264234632385018736393414358696646120875906654792582553930034086910959699365570849464382233339554101126605006070382728034675274032346216543171775618339718642113486732425576656117319408521511190817469540634881590071574179169107834700474184328624040766813676173960313206626860146264416066097327457406943192654313105554129127668115808962307304814184727814870126325437446243819722159972019440070155631834475510752038092264459606083939344292619295725522668801429377657943778255062132238708116926534001745364376176613661000689404454093967859079137051524229963724537725715358711212808228902287413031958789376458000313349994614185299341836531696538423729548413717589734959218072094890970571027985178136552305215571599496453717584790480893307096973045842583019814288899916615865081769508621684250630755698749167185402571796735183796530657125083697467095357971236298531259373607531047958585478874316664780865098252232889194904100890104752873231182503676245742378088415458080141481106478196346317402211131100064042769209651219158463626177614277600008040029189162913249286328977754188805733620090749883482601319269979273824074457633458034060752245054338589126077608301431459348236212983018615788361645294768460534779809788025564876426236824542352498906211362966881203989159775688056069143707488120104714115203691465823042247328851178955923157193450935344786961563391925845469968982623378505415317920153781794328405478163476757320930500329112392252665885453155321631575368830446639981808491658434648647160170899794676626390723107551932160166620166504868574628833262901660729862091548541378617046707217101822525586951418573460981930372307173115618567527066297039063279787815970134632020677721494061461382492593441097473624125715908005010117647112891655470281948374947148491906046581161004218727826308674069292251927225824529209518453025776225000999130808777411749920755401493963406583506056728712601420804950616994470680771574441915436682856646439487829721154305761217150664384402450268404512661947044969046777755970102933201824070133296866433929987680632217417274184197459223147037253294863907147497669736101671281903065116595458235859953008162618289490177698043857608508071637631642892040152187403315731450299562142219842401522221319954176126450652911936236755509193684898960638068975039066130642758882628393926184079419955333823906201046892260473552037017513356534354689072581644738875133619459434274745411488869784319829101374093809022592002720768850305861431927873044429030494215309334325816182712861713667944071387126307108342091809772944858364652046580407233121658952225237814140872538343490438735282280288134708788817395404657383247753451322012665263177258026068390628996804205307769507663032991731051975273500964239133959209426508633785336931625648335165509591560750927041378298414580868698272717454449761296297508357790815758198770538911152220044638430825894135849986075962921583992229060186492241426554330169230524658443187994984460387339498918029762681491147720092220407204299084953211486798007661476152642953133740000069375511942239663416667108326472209896699651155806848472795347773594399759907733716327916486778492041681833568213257374218589510188993417145863333099230873492140315542863693316543709309918595621683507268168826119546929316450997056770130907091006901786996720899279557332089989470073487114946028722048475185991491138950904244862449455983344329083117836902479455784061967277353435594983045858686249354626895058250573061256814722447409058713906260792175051421047211735790190486307899091229236854634594132596742846352272386601249214937361986970253199082329677610946180432371446361540274000549694167270003256596180694245557975127355566545891882682335554160227383632894819833555418183487399072670663523650272847094881671708066334800451884635662576770090674393991911716877715593996674735474652066042297538417032703243027238787150407187365234123565961642798478318872095457188894237511862529211268531187816392226377074609002397375372608721224451738860421129664593921165635131475892039427766397611898538369413356390403898065603792868017086200348834863946946143616443568445130347113696778495658493171328276990437258974297035569012523112972586015282034454667747170950548394759312226845363917608517643115353118415477932393423873276745649836518080593548828901977150432984838162231496010802911451792708426452912866118797372707876236688850631030392429087406234985404434565067518285752376622729554734204576326015579379519038721040320302236839430303150526333125950060621514316459829190565021422986120290003108075375102373538747106412406693268878579817468263524314317327649093305239757457203929431028176441826413660133416590837247318350027324206398236169666701187667126601807494279620866253486758988205503045436961305521631178045076968437804187987659877127870904448437831769754677495645226257133505332359556975042155279050145845153353987608636139443275375334370921389480557392960856941530520983736829841635651907541454543728377821453932620962420770224004998496383295706579218617008972548615570813668172243118631144931013911713204807268251314103595418047676478091858923027204000142571837746787808364892087908673799008076522544537672723537814011725991272417814894750882560101952388592098064666175690117884329052120070568294956974894069022115556458317244254146580579447537109069895953927752632784716027557303479108887365361585649561196396935594179615114250179307816290578758397211671599531168305415998829636236117398551748957816812813693037358200903917867303379443541327321255182440235434440558872828027303378443803338134117956285080720852582736572983428385452436798115648215502496785111447815354281071741913280189703985579184923737888533291565425285150738327641178540706376224284337761446954314263281956560224178935729954366199168556949841499718756633821146514785725837020603883095627565048910160102728119204202296499660782659507523020786265515695817819016963311889531781976151284670445895818537246140082392762518141926506056452221170273621267319084083519441667053717266864244612095639715425203177354927580884944539500915566900853211491094839665843469004453494357356852974735897487744894563249166590786064135128389682248932178011106366944518945550796074965254155275080390134376954452262858101574404051225502579633545536674444267696749409559769457088866051503702281563549077681817876634777377475821957445368959326770864685797667047007819817461741318909477884221184506618108806313699600418609500674149129484829884152291164296747011047911431031062387628377138753455428076854152475232440427342939041213570885335673265102721337156020997333374280419291856042347659991289821738609413567802146205682701859285814088330300902343501792582378603530181677259733042074966465060393403641746309124623926830026404098179174607482020256232569919719311997852325560668926954790266567237666379108852974298458822184492481795087686872422250699328354087853853682370245641431814951616948669067846894441249225396650649608834989329309996663122589650892174928973545294642205491162409630241493906992246532889389654557733355814606148632791835040709088641793461469905914086182512966339815302060248875659654894910820884469846345393529406696145323807463554182055347797405140171956926869141012772343653949664075029867985319945091540527259966865544836939493317563611480583505394445363875445138493236354216397022209514641773615707131174130886165013002391805573428819521291378118983375662773292449797162790281049143012087070844042290090377663322029686984276950987801917109696566124917688229762653454415621773535317868534527158981338029388303296688161387730008057319416173260075443908733154889125264240682245209482141794741124235424669956617942719079316026123797282248624113842257790653450153890849566088732223383215156148365941272532162019537377669171543067871671946881366035476645563409365961125541469291756843263416095791515236502822967492084581776806961092232956652790396079908171249890852644308086030129509043413557230935699838547864367720688034884967288153389381538270079234442920507609938331839411477693792243603282493890054025425663677525601074857967373264491215332715083633240162210362082545451003753542194410106753668288424943111677081603059320703480240340812492247081009717713641042166010333810686529790908086356245935549271208218596689729719123029836789547975376482222187505636401191429397491206973159515879458916803516675836260789750572543904698185667683493802365830436737197901492433527578473856482506342231735943580229674459418557736231298652622623120765861659776478869675266447486084737894296633113604687912266267529310253193507317479388404546073765768796977891226724006030152909192124343524673251536184526681269628466836642465995102555010423201040781269763985351033367812727770441721729489017360306233491718191024699970778152815847674963117401616654521463690011958003684439572704867935388080375847734937984309719550780934973606131417017275976977992174884699542505750836821461451441316265699860447011633238151444994206871878546999763453947735538924035486063165907031269830910583544849661854758428188317261335420195369465403708379518872341753023392466856162082912277396848437438719974079009354551426446583558296407792838059827910961388560082189224094666376492099893675363198762631150287208441234001723282304322011099247067768614429080152078104422277080121171118674741472320285182177921290697956282497014884801743320027543473033224145259079093997731999520575950061337213949180447496967740122840456611882408625164602520164442575347139947254422134251809051892791248137135948833452894969107346204199475877228331356068389440047274211664571095062995259803306824607644512633845998792210621052883653484603332953421600125017835207023406518181364164296375149314783619285956176369697399885813844900473875439117222883693859839729615397650980874086749624079378600463594533530354825254881038332407760162463467922169428267912408464576486872202324313626631153152232146155266418013268359479587433478009069054982431162002067784905697449512816668919367136769069728970230532736295459216582902402067694966596183691917871839776375495668162534018985273210895996450308784674831881402540877165353467790936346673910541234741800565905121981412151459120539911003597116810876481624540216176312204008862716378564357763900080601446171698995935612641219225479425438419302242023782350256623830636161368324775265064909986221151347766886645152896682199377249898508562639519275494038396376574778127524816741997878499031235197219665953139977287278862998717183347586012656981019399661092851256963220194621783632415132839171307722045606833472190518381598023838063367559532584310353533350489248167721999971586137076052868497495356716695423388507129333058156953609408109114376303838410663891385635397301281764829462241907083225490715795868524661416344500792368677731290788003131531446757255485525549998070703033808365823484894733705390130497880280903513107355925507129255654614635562754613156142564608596351224617118779850948142003891941687168595652474077367581283399602378706481025900632202624517473591735652421120672193227779191730406191598768168771177581141574338385297012435481270236250484865249939620229316391711644779394635733038503099213972054175099638504260800918797603622749596363006261328528433372292136647719033334610754106811498456424192262541487101211893556087966627376805084132201443630518986891263286858656374260809031867174963228855236577448118980641387077324990149844329216944097746578451582777414221182032304182687822327274185935784521551178611107595676268391102269212212091650683905836219937345044054871657659851924929148368196156219472581953203599269080668469836201901760552299320561010785441551079429457304016218263762834925707587913949092780858609603124822409165755461971623694843707233351425949422393985363403489078093243372411323641829425135150112655626904581365586446051530068519685053668685778407721031331701167082156766012946153639833703487209499806842063869809119396325840516994874860841877157924133784736639263465970331827777261129411855721884492383423642708415001372921028726069907724507009557375889088710140710198002147973731182062598727492131966395638725519481294977327133858645759380332622730495818198836850961836331546193546584544144719234244905434837589999585459042452278115039043858288844174060012985540745330092625067402251139556667277045955084979597260533889043427719693436828734707768225905048050502791620179976486933436529564706589749620686128445379898553477125513114990454968815028057243670842134424256926486626579098494062197708240036847706177917213174226155726233189226885767065171675163473161708315358358671021841906167594373834030529398969829627190303363580705683641429758145106012920635050684623333635427871202069989623741248126237625303538025778278887548136275654748500666629041049679788652853155440596907525648070570121834664317409198352068745459489606442673940355599854639422074673567663912325784862990848934438323968201084826861604073834540571814068930614486165053270433166518719826365468208506605129215718894752104126188648363615516234997084935026821837234515283963005196202034823918219451116582550841364992900413206916694797719901071348982859871248895445970133312639691192305581946303606081903448413832611529014033042078110092546280395712592753754420175282572758369136082956565898381269551227429813690945188698085962581767862023430630074111503689612056813434970802921593717130609010515095876121234725091942667498415927593792763524700493686098230608018342854702215637726519348872678776696704558033598567254906563853625362212036028559046161808585177399622550306720475158380618626751696951352838079199317203924234344436283488929977859547051178959822254967820175463750583252276042885145103545901971938941273696328234992300873904383592002188022650963659160600177901766269373885277098391314363714950960953009414179655932910020786001774678490892147312852395403645037794628792509215267528904871796100412822729430958741869026085001458866414388983601969850632163554216752558139466500724509634087889617341902455538838664099992732639993101772145741424703451358623550972515075141372541829813966479756619250038854423321696111754045827625100845373712466840581712181416958896396731331379497123768339124814819940886069444548772376716509891091332195741807189696404880840338041358945904707917814947958243809690811802593286607899491795755675439772085780774514398487836573707937424602603944293894555703590282163219869330175480402082302886819102560252336539833586143986080736873623365198869075969074006694564212800657339670226518033201523350994167175856760562399810753569054176208646033196352185328265844870636680552466391842055950009954161366869349207360219186253519852667589216277075678577688732373626057437808277240731691301496960662049348593685418974824594968227495119088964289935462419455672229367867589072914889059513749055268494514832214537462576250063545128113477710751393411268031622049774322217661593306930362549874737862468177901544667717626104427130238646499059095898416209869030377624772554353422340849035803767726576174062630791896079827082807013167315573929853181790680311459702010757571576850270465121978140953730996686040749071641163443664563362072185923533680187238968748866305732712958305636472863182017391068594149171231886726777241558993505640009273767298204941094201115302008654501596992614189324508223575700115598690031711477543556767330353436642787160921904186687650303672241949034424638567157731297199565087415961070799776331821179726275865083744752909326282214514106619388824595763716911651971460281394367410030138562513128249661238683088171686192472533422298505265284835180158123036138845564160395690495835587516766942400619214648198637161085948336716144063077882149157415734672236923355160643373182964530080886586073062875344563237617546922913488150024837463953175114730577647441687973300991861063474973442692704380267279229365539855555933207343961255221216659450095337655197385616522794965224222992353317749005288704415505824958049127445204533589900068857842685644468902593747798516603846635971138307959429483053581352997429815306144001315866483868859210712225419675134911983673578873851091289512903302186946864995346879527056302760628894413301993670550490362423000828188556407101745677330109881479990923297909106367705838884946566404373673510359417005408522300060625718251157929160270026812993264711959627680102590425529278054180850347588204535722649362148888388346909422871913174526690367372626024732010740559925308263525243080329617535293077489048508048239606752208917600938491308841461616751822211513491747045100070766303867254006480463134114390126874634953391213295598275159451515818384351596392829759371690923356081492803053783684786657086230782621036166000405579035604341495201424139180594213432436488661093802166150197576385706610324284972362487147413117780760654652674431291228416340723342820641508767783826362558315453366675636404995581552525893702485738090172245000788148943396349713761454945970057420728454251611710511814120454917225408350380742352132930445236878475997144105685948615905862658003600272721776072776008701179972450713935512015882321665586453987609085757859629732561295812318339167686477124662005746500381211846546680544143303488710519573491372858185371951690146678482911372671994106980344133036222685399281936856542350124149052289962432796656397754764006016710399125050113558533296557581934364347594833734695802302153502866082910544814971126980631759761427742339387634044087093653316180115056291449571836417216030630951201075246097468979198152539440020554565178074462330288205801317961424970621087684243539287492198877430065232073604479262116662377562354105538341883548046201854474945304625765390008252981370269930137758849165105296491772748440911670967069783395988053014741778830146485666715473432028823228557551345122590475704130328536104459557044825376194592589972663076496771809393418100359353085242575731736631376902072284727140837628824485485538827786116964811940349309010803643791830481715012057314616703459928084226427845624504737159601726256046419040338506473493228496694560654205089677291846916457009456580762895671587196352999049895952767334542009234065050859534609551177838395983845867013379578781124573006580615184382420397251303635278079805755794681915778260580151267768166392595116965110276232540794054993079090787506609860626466703694814910771507427218255173762807582108697307826755794700794317709626993106411293525438873802021922478825617798215135941865042029606056644269941076923809611326255930458930320480655517584566649529369603791201815095214604525083803136979205242591080958720002389801493509458509666777608256268793288223065756719111368436332019087411055736923245362596421876104543358405694912636470703240622521358677225153001922140251544499944418037068829449853076497697956207591231453837584344256982309214979384195090813859426930028228775971634360090784166404730495348983696436533031755256749946024128321993786653078566090549656994251599829649869349388243891260428951233840016309440517296638055154136030032621614636136183785216632926245889828342223073238478365181556743479245106088385273171521936459159139221248915483252401990821053865503379689304435734328707892613784715232997859114566839924925204804733232593235013146305992220464735296261561101877372376530617105776400821772153865155387777017931476637409383681578777192680231039433452935715461766809838950766223079942891939582034716781249110073023592098700556625953729579737726798020229809966499347155114740317871943061191632899560347292192775780361711908605614105241916392120492091552979261801477693295505949198761805895163289119982485637159258779600580361730743062133083172896260577057869321268927283426023106183639152920074127856579648183168490603738792048241317749481482264514717138255614186807706373379371794950757351621233914440518915409601986900300850079053417514486098709925339773251809996673164054480465167136612967698742699533962196337569455583891585334433008008751668346310743862387246223566900773961624345742278657083149253501581086937909214377950665712675548801957496513021759498424503691335670978025851848333966588023438961434288495100949291823824087350999706285091160641106302331489724828788647718820221451976696669225357438771604162359154313155014938121931003487983431022076860821455914914064513003512209838533196851352662806558768635007781193375682419422660909488524650754070142699273710990610472427013766817777090686142100912824367521006962114215935902586241635815324233078223519032836417147323945859531200594307887601737661203678082330735353642176560349150149781929760023435709271761814147106599070607348820120238950853912253497405301462602329837456203754620550333941012063013270511347044601854738092176919644711962715051889891660034026481174919143652914059775122554333620640606737275544173494988632997807295000357177461951652906494105152073807498202194755584370773668272147388962769427247571895884846825366646545535675561444972996807085198534903720491274132489326652524136650893169871208774672529534274053741992514796545522029887772800328168963801146552626819984174106761875793738658673865342279946558881518350479036650896498900675471516134231706837115829564685646624446304679537230012494010083526745402061141199943592031826487230825402939524793808730955421885042952342930248910716073810418400958348534355879759710002294859185437209394994492207222756541501512303869382937430965114327798461548701801327378947136834779507081048704850690692068672047264856358168367517408712102338068826231936309782970632165951124479316916168663617924712583366288120872437275066234123892133425515909772796014632715007721890568309294720884568780433171774227464646013855471665124949060167423589518373233645875333805642187448208795190938439130656116914848635605189902148332269177009879418291815134085571444475709656459608407649741245001011889581764928066474333887769378949046162040602920263783590663407009429312036795348343606205232447496881161421230254852980315448917632972836296511552123320899034421817992031398706645248512086179467238553229463993347714782182530810468176980827005042922487512080185715284680187697402754695518159330607115341256649819598325016033370194790035528248300253969183365402845332402913888927143550259351585543431501441434399236044259518101688634320247831507873882284515543217496605577163009589729447572296235561408909075072503727043840910439734104940901875626745834131228145207247521870386117699602925464691278073756273747951053060629766033191969843299437590633089340601182864467843566777425292705363751770244229481332916254829785903903759999577229462150077117502531821587468471724547811064859734064150821430007538836030582780862406488140887329175946519596478620884977285837860908473265363705226926089789697064374265990761126270680399701354739956943986957004306501006760204374462334942894762356290152312947287003148094288690400163966300066082838209918248005440207267038509732973168325755534718894526078241921523818519952834491866301019732814827494168014739423509973924231155748190022819654162450474937103330036365986137749341970035267105755370538623169605255195258114979998214745974577022609933642251778799426774905475691686866813635426963687259048134450594115879505637609118292127198860652957325506072798947105119291937712053336231942479528958011497288246330047503442221821437830347283914224070094331571595532550916752657201444375552570799330490657575598881049740055767096899228690252089564021063173667099506985612487417411603330134537324026813179609821020531784622544502528429992090735634247039593879043115713122811075710994357664863078088366493218351906864724590607656556101208348643428103829074103816542376028895967405937027756575109841397853152525921730590454245378580843670845933516033798332047138478531846663745958664698749844855082868649065775327838637464034213065470607028427797531774146799366454993473951617596114762269040442752105989885717990699024896322383542475018422594830734630433128281582129048687763693354132357474465895807802429677180563599757076363668328490296262683065052952837973647740659708611002310672031566168806264894869540371354836557042399269681331401980077447246044428573780107182879782661042406648931384461386338056993426792248033058167870024662046122041757979192521998620793576883051139546850599426645166910373033260605398382929339846622410245759775251280922061618900345512546023222459883381100318100405932091256489517917431722103884375116429295556022872558805291728499334848140205985583426994480404308083939465293931250335396042714320070876603799947918193356607144310524738788743606885409872916284999670992149945669193997452796617110447237172850195928328517121618447285095807205578688811885011229368176244686787063400132258819624890324237199987925875339310169526331021341959641948515237113260089499430950364671842421795409073784336859945174997813849904942401601150960475539192790104085944832771377280368327785215773884630975329590087314519019573335801557124222997234476241685077420149057051173472784346740769981097398654895315515412875710386431592157895900681113033428176846608516393690094474466217101854625610149450171960615559036906446287768024478815862279544703269618245186356235636536878784120312693108889498167877541590973872267844523585583001598543664050374654981930518349036688016691386335114178932109176671370112132717191605754985318767890444740870289949848163604068748172473855964961098963918446654430768625892738071792912268653309681604791089219369860197414304251834305736704586823202264522720969272394210320782372169499034770506789691222266550019695419913998558569569125651930388316830155333511264539086974587174175504084279951792087562975492225476833640427701290184595070622421947041301011492218046926097134530355263579964912598435686445189677591505736462861904972313679931456720455831092085986453062117650445388501836837644689521139433479616056977311301451508132100777296653691937530421471366414581862328074568420574454596626440780896081100972256427966957447552612014975634213121445827972278860032479600505000522517982537306315308875055855981234731132036570546834695094859627734400176668206337303837303481225684031717496975514556720504294727842476018311125194745433592393147691657996399564512205455598071827121055883516142345122568496852333502846550222903478129326215719781213689640930155706507511429946615869550017609396788138670852897555856699781469385571058954800369220635582129486693681380477127504676516288645467355895818850222479479801899740687610425853223443953947421056065751211032333737317837455434032068674936508191316909694365754939322653512239853282508795623111005852705639872385119070240033173478821985178790982655853402878491489677297173722487264676835365764546499587711585682517242681694053457206858843180124027107409068028501632147911545591131138025847007016074615178110544555498311513794152536728736814153299316255584659520753928687717384744462075787478405658134533166913156329243387789359373656895834547022109788969646967221964199898863960489362507322607740493078345199391424239353115177531126133577038083748932843739357217818375381531403194924725051345677901562221197037264364297627950920145652999114865661373031664410196844976746872736912149833316371417680809252611569146658879629573149050910993712928896266842166858444383700708606102000013940985272567317584216939990214392378206626490494806097955390340095121736287588843921036009526978436455226296203861221811242604750149086864004027264532475548174359167468674620133998521815699459426751920559757757409469401685983763411907436929503004954144979538522770671226048430724458722630604253621939853482152855620376680870567588768977397972445064685309420347082381952932099621367583083273295225861550397667729572418548258715621416391925317029312184088032222967584016444249175282852115166896285936210360319079610981591882545911076519840931400920454092957969229415310323523231129039637321353640005713557483089838316239698105658731445050475051645552784130451779229810554618050186326195489221213619179163913669115959625969397900194437303235427390651180135795330245672101570716609387970804249105474522122917790547416311154808089024831414034454273985370543192978805231477317813620622888736259311920674228863677908598719603016975063327633253857766053915950697812921135055841779078538719269220764744852802692796658403323105009446982290586698560803701203467752472851923758847818942625349688170351638123325451558703893478098204860159296519119674787728116816119816664082172318185462240584100520311290145519039617624216167980098916500450100599514196966845311048044432664776769696457935905125671402944236412405020304443412808723388464212649305814688477583022255269895739859100277574438331383204892632132161180735978547834257518236484759878972068017135239843117088536407019380826368822838308051976425703107485643650003599476941430659007545834248554752015571794532607324810074005698370255770610245579539055913487936323429707404272832400385530361118611712643062585014620516023278024392095943080472682238639191326026270223547370942495478877697383847756628244912966249362228742495623803145466098730540579241105948086238397926373049899896820032510518385448132338855340995386744076287062378045892440013647380237395443937724026339062761819152333792873619436193146211820455902526727299883110497106028393136297697941726404285962702289730829519165368262602682860385919713966355782962175391809668149689406984990291081836381583026854391320783894705725682579338518388063211521789264451797269039717660783899555154817951857412331965209350442047889313874217520668733545267842380127508954081292972158001609985527502886607685735835792486634832465581704043953656176068597234090491443221438526892439707054477153273553699662157897863382877786883466417278786318847079605248943922679408676408515886861556832018774671831066593988164295027059913654386964979802253476778969281227403480496583028830943203440840360018639074122528809345026114017081517689171073376988820323468026986539745079116023137400374038271970993980530161853515031971738694700706872779326175334252518395985702346353039256768356549710720775650922871329122395064114034180169606342560377139730212401834444539283123810808811023650500563228421871918922372479966045416560782524114618025317300209671104630457365611466986897612108501444614353063401455887263288413194523343768364194807555100124443515778949278987331377921268730772900979398797673234182304425169575213979319110786740650905089826319069459874585367535189599684174892531677830596723607704168009804861989561754062558722874485060134153430320818893958071889532301934613136912580815580965918109636166882853310227537512284452241933646956501568269198756730831455797633071745127405844249744603526600503912742807396228667413344697558249909649825760014069213730262140709257987420381252040545023391388752017257929168459423937628059615708727609767733357047987872440281532066462588206409357826325669273193968687425025010036187311048772911011243722005972959752181196987399234294630751908685617672608989107689479715048875660187260395382081241424333307426887740284348425791759699633973946038271698400585510567978545711589916274778530579901265626513805844110895449053180892887296058568469625176756116282604186239237047480583466991722744952838489517728747307855615988052437090508548358699329609921120524546550459260154918315755716581530358794756445811649837819409325802230893575600831942487372211680528125168855177626991157859252609415524787704726909799768010010102431893466541222798189876160677377341233110481827061007263966110333777914910429568995606513225522183631497738283495546305134747046652038470607335578181394986075739477130174560110782126994098894836460922984334558292206077125741847489348312401242798042987668299964994347388369873932287177349155516761176054199273044212887361387563437189614920845125492170509494755359599774362425986312552009782794087089034315896024549716627688124922287558785166872836852747747762830133192401754410503007128315961774464364167132786979305385039646760880271917252062485922296252078964768904877457111369172004535616728875478352642021090981869351818030906982135824278893820398155800077034833593772230077750080374019421233762852748100352667692208638371900267363699761498205578002029836432322565906041238290957034286734383490134627957408878894918310020107084376686923815577813315062687688951666911925441457667135493135338771281681598544235537214339594544187691948358286002056632322375475410074561681011967721952445862911097063509974214969600442740670736224182913849148381650971090407145472314240403841312308833377645115982570366592657800044583308198925050155105948873424290447957162328915817497641762538078431471422294629925560678752331071937999633381363663840089300751636279349246047276171195753680610411434037246373288509110833459170488579522774858053986561171392860164309857585403354246030097122235560344131896882695002646678771741841572573120691113926954508149488268177005162646709161605694415155335096722695136119643079997588385630164793794553650868304968120826505565350671435322574815186836608749592384944061558769042395850845340142209816164417379147648067403652026828542007905683853798445319597001354396391623438304385571870060007587175072501036543521396232403873697486790655003322415178172481986211554134241483882372378413364845313211186609280546462173798804084612064810272488214019811519124392070077168909187040765432256989782151828942250623826988876430184778570843936292137028156918903777594407896825998209224350631094644500917824585095679346366898114624608924182498272789985227451636632545731972144237048094001837884833963628903070737742071004590275047824360218932346904428114487443685645926411035996378316481606835820989020943014171302495051548774806324824931942281816386909781178662666140593609626538577874329415784435504294364844058538932066610232893565843947983201444889036563684711382127541970338409010084726531456256462583268007725598502725206854630902191787538732578188308121822110962876314314759864483789224537987498439512804201043366637242070745850238116280114763387620395160728840962463249360774164985470948192665016495442327618114288272333498317453410262836193949594137032840271758819608082691360556886671760298272610918029445192562293522495720851940165397676758919538916547709372310855882230550727725913470726818673092646666157087993872891248098475092520122716179330101656741767434358578643602431892767592113058973647693563756562843063043648821194781847825260604993784901129005425669538024921582132350932990350715355502570183225651584927853208381812989202460155349118362999200002875528796193513177305774466969195324743922907062229037539014427669985742468436967660866102317856152684303679558591672968161381189068086233007237445637693837269045676303230001070913479735498503181601313643860022280785724051794332555360880051903080852617781944142298229655556754470219512052588625493726758439243313730757356354362103001859584467518756958033166888314750117470366697573625732892848420899200370790425073287706597599163726348870193603939317970542819342994324783116190232791698235829080153305488199277541541579673154952428973845086520890823507315325646937904296053624226700305447526887343805582989657109535650596996025790198558192310269295185298711732798408916906575082062371413260335366636355106067043195475266080669560275499420363799857786107452178967924612046503481117271729121397343055374281699046631281252915086434061059438934293307198352476467124566272665744285383321142545887772815218025520244839410433864267435875500397914429306257744208809567109075717370432225341918086627123244950445826199031463044255387024021803410996637842616337315886699729185678293025443547598559451662507653126638250270251233069788200214348290745368397214444655033295541488898855728974778561407299075700777383805789646138362725043875612217760504850675147142544196724472938044865269731512058916622571694798401255938748971916689297413738645605776789540183920848499486315530040398113256901107448556020951178948986205127604070079996922505136022526668957719893813930017136978839657112747946849340201981334855786536808720948236076171882729932303127755922611673395773470469943022881873161806554740571871546129251354145458393790554899068262906400945264311976835426192455506436382930604771850191672048654702463446567301417204796262806187062949418960927985030735513710374312699837238401131270675734121653321155228074811078555335474889967716094977861247107182051140583924464832353665442561550879313115238346531543743086556834106167338146870527322727222829622365901721010597002927926348854241107505799586485077950671525756965798198384006515235372383313426181285506328247929291374758136474290098158588539283815743985217484424124456339308771678386495230029685471515149202785938536284653769992828436055542744490356422241412371510294753033257908595344869029036277445739490280651547878905635453262303196345940501779547460171368372558234712094603705343734854681835420939821993914253498813945697639974702496393978340652751083817294753453911552563706666203616446167212867228096807865335971500239867854419026071614952001335571779772724921677895653357402889193374674077367298786912267785174039033908894667268705908837361369607337733676092084701590749039309710903112802346748978913761187655884280445681054074748645986472280566877361564350267957792972285217063080477357976840579524205630332712677819844312108395658062933794407275686430980481106804279324767814198027951678100456796181569122132813038828844628923645745529453272942454225145098996061203407109106207264160645724311964059116748378642518445106080645136364916687764699914880431293111862770715911662017077266489033842016893460145628238446517413307915552514152739271619573587256251273790645795804150018455810741517149934301664038412614554820997291055833528287545663655396386029391102681446280603277101478461433283188062963029130380927275656076469063211403209355837471708060958005731141605317964395774894299093401386845480421566528718529884579885344708008924176857837187227759719912998014624331178351519120321506041708514853773796553813138740254514238001988721495653133949902332735692566008615912936637202826218971528027465993434885228008325340394989236058734609784193638388276288503997986497020740809468065006888523088103981757517859884193958734529865916960202200649844692402950664791975275724618859514393878821447311252106076869880924315030619280014234009658871859804772615144817403084321687520050824311317405239777204015078700338690331677916533018353045577167040364690944116946413168282077866112176973553860628646308123638083004872507762067193544364040146831310219645077883311873931363063931369633612326012757542476483389558442312335012898067845672619391113676955890241985423482798291101795717554209626385591359145104278080417259183136296580682100740144881153830150542611626726370490069377527262356283611408255058808210378972566203073202065478140362611075533122268356886581216132658612637430959581839225707528756322844050872569562999213154133026346366328984241818467547008267243205411214468903838709274643151845748867566540947811071700138373176528083616469402878414212299136910650042344861183841055735772133030067860205736021741680171513526557696019272926987480318277254441414848198343038890422714329074475029303961629837371901329296584821358956725817882194951459863054385914709336215906802132275922208961252771663589451463803807916754021638269193991387137516173024002591304984840473797430311933694771830660736269691905083301998309874032446537117711604931856893643120761667444892420704047969652013692586652970149903221477490310668701144506778060959358334222781540115194383533108948721624977448486063969749737011301825405572777208778884919345902140670960920379608762238648652956751043949434653023485813190222758001397588714542204266377416712334022578500455031075288980634750729950772017465471031265686392617274833656019169830971832468118644785347952047296080221780369256879033310275657479953794729658940992412874827384693156132436954846236238178753974026138383158887899538258433589568137066663529565530651371674851053979377255011813609129161482552226545102886801369886409312411102996761759487425876078730186640789739490095769200655888799505973809258191591936492195182442276877767613415630886152650669383017410000081363222198488289442867860772598378110734922965306587370836056127412411895751839264133955362667171415080577504396726227797536508615335992001454229171765647696080158487923243353171354676742384402198065529372862683538501860163347628932104514600352860442067454191662034184271978013026266026794829037028662904658120443667071565303759338187739143450438791779683064065536770449481889416272856861576572613231933100949903116092353043736669498345450320858702517212102028849934647431288167564609269142243878652305247542181666015147744493150219421960962592242027667015738184952477094775733675670732820039677921921006979495054917467297377587856887756931700992239544144522363106051671529151299754704812053247298881660399859874334956878424473907603103011922181522163614761570014469160294457417914705708939236201338077993942881211416588724169176869255673901643974990498763432924215931346012452540539854143616750349736591245773655978763273823477526039659640948326020022160708736507205015635787914713978715514432522136146924034268498720346666962862629615817908843033776878237225138604480166068808237350452487805101064036592256484660322248067350462202538637532413657383150313956191232070078830742267576608129136960579554939655302021428168465032565331803953873831152028121981962894197998169306035997950626615085750089894135048528629056203833621308484079998468124533278086462793482032700995547180276338697878497075627045519091241695675523502899695025754291557685091688195356156352798472142548630732884623666057983702374485599491579450209575067026230158654184886523293716392910188272604550566711194222695431217452240028928688422649947609362485457769839432977837092038953139581487817334791625505354216756284897477053825338350430002849555312692464651659507674858487030555223411610248120944782112730046604770557814688612652248882392711261287060842188032070934652897107389213211859998292299251779996346741276912399530715934909265487076690396472524208023339543100415148164254291281012469273825623374552219639121246234308394984555504901324290549259040616041459460824422912266050799965676111927215069796668749997587418698377990943304039231919356145203960763114184564850623109178417291718352737636584799206079779000335753640547736358290924303032893275830147503711749568184237524841261469384039498803480407327757167664317325066380074427733664445085585044345951775196338789374015250303641316764984869948921944218371609474095988441327543907607784968875163610019817675723633955272019514051512187792706359158828262714382953556273824452837689198675422514092008794028174727087134838702458143332421297883759611774978778825559538648010468132907406499237388736538557707517394027347690722675479845096180656754909809677156047103947390859018811539573540906879713987047826194852564794752479482471184333855488426781915296422177681884230409420280121554958466919990882981080510813449026383019108876021863972351378556562531378477110851123352228046599833616475730496331206955516921773678460593591650968348381885446857636964256608081991991274183899240270915143383088461759775586833289923671965574463755024932341778136409863445200932715756458991370570075110784230574441388107106005317067395849098620596202967949381217929972749475476842421557273561679739678226841354079311356468619941857312700399893432728273716301933463230791384118109049227440369706901186791921568291228748399110601693631891567899111031221671693493519212000376838781992871182385157898177544167240138820494707961268146611639834085658526790611763144692697863321135950929403048522712358099768743517158115052325452895397820316784775167992148208959686297832250303478419698045124638318375750413510175386537242111863314077964130322427870232315885097949823956954784469670863464759573071607557029217786551355874827933269965948760023714428914306187630280298332182418813562031098126697961635786086791659502241710922743488290468346778123535838228499116428287980643243957852830964547451948437829576364950353421052308125754914943351062608308868718213459042225318376009081568302754294889932222141666960802005596946376113884225139194328515850493285158141342262532860830168465605722956184331299222744809085813471322097382468635021884627374556054515902411923552088946681485992168576318301019298114118685114221669003694841130781758545504850272161559027612272981140655935133740660429511331160662345454172976848858290788839677741751259989149653940441201215551049309484304224604760191752321987041449266249096635128371643574739513430895705419134768646068335798987353738597316692876643056454507533728068789127779291015046785110858921169188222078132562875184515965326002466205991780760504733823457894571844268981619932376995406296730413334012365970229653215108066468394714029011172257763796916716315428733227083387755529883938004482241825179392892450972359394564019869148925716001840714565558974084631358268314363975797831277155930541109568570210315281029690243089567559763293548330340163991774032136404242445004460454989151905128133122427233886864745110208303650273637403883073923675552168493179709618495907131331240858444589069152807106071595873851570679156593410711253364813222409367663874386847633586072772071798642430562190968706719430870713841364573531704102655801635847815139254126555746321504087019910145410625357885658295779779787866285244972911905131914402905596405799394449533148850623985330805695321615133285025212654536405058610529085735033490001809741710613191674516495963188709203249479583186620451144214628032912973229433684453295264445180724111955048609942522016961717420957784930238532716297601704905865620869187302311768581441045474859634528387407972097962087403621836158133937656374368944938859060701715736151793948998533113043323439340481458462969886430922205847011196515184334251295213611234427760656677155222622568775802714925392063399460363116985058344235049323896902726470220017650521949944217385763609023552217501448375862997752438628355374629483885724007926882339837871000285072458012064145358942468394597405456028197045948895249298828631783104856194301751326274818796385871861855497592239033069776399644029801774746528519108863307465557666365601327485721454672598685687096281285682778170341808213793667640575220521771019672347910558900409696772930681565964758190650210820444166238180474504391724017542410656688161721526686257185674839861258991111971093552997829352021794333599417350949897759679373090242060758143460349877049403462367868006710446310225145358798776729855217859819109291294826916689898855889277395580099887302485600849181955107717601768725927804554184523678298898896802773085339129284895478886635057395498964799730785088142298424239795223738160332274252704211804915736343324075014242969907356779559913637104449108081154633255132512205080831511110678990574330265843445166589559867366649047735252129114735674612639681762555324172292860931246964139838283941952726162660060662995197362372194799090113911829534224178556853132603295952091823347997779757296828670503304527871955380383939306725905937016112389899523141537037378513920215174136455460333897594081159385347516789759011576173938896645749307226328982570785325279482105646291969905876130896736341286758262527854789656257962825667161992086246215436508764667330601420843261561768811662086209090072067347560110341999899993706564531624293381379305495365834198028251842718092868588758224025393781872804968251205041703717035335519289774843581238110304818621430107624980599787442117537370382555417837826119036215649507385635334456519854394856953339422549568728303200258448880008348722534608435279105014418314444358219167566930509576114391922038975907306793611880366829091051527672587098447844891818866308211508101939043878147350630363521108066675644362696483494940419989324172529300055986626684063720166163956747444856683718118945632315821925868419630384092932248487336903233394178644414479187856129869640977268855504932094145253182486418240406405007170018493113100479742796743494818184808516609353884918879434125842082949206590163168887795328617878886666702484608534609076980451461227983692924005899485093538511019148728206703350835419291701882137031854694493197015564995061554422797651006901683641740706422242543288889541037950702889887153002568356898044442661270068840737887586480665843829386135667490988718938192707894776177001080236429433965055254529973756927961485361436259227977733835413765021251907771217578651327978456861590516632642002605116183457044264164714611249665368655545186672477105717756699715827828919480710621158258229315725350752571968353736543224098615380409416461663259689251279305102903830899411158001210571172470814630937892712951876600341624279560656054100486004055360497470629781554499528361138429145383865383342801056359048308106149825428472625144647361794177452998982679019125936483881934273703025726850512520811664651277256428607733492714846017944644294287873327998383210057149699446906140444740854559424585462337795225336550001938147612016066466611807887188790219700223823509797436288332571489965272376720448688518122401315351275281026642488808292934570505043556885480119846811588198880644426353182337837335850469654948840872142312490718203010392201009356545461960819780381816543448112570074933542680781914063358639177502493511559074979223106151618877226372137468437717271044296129238274459784512163385801290096207586264019131287078427914264742496605791988435359972224898209448395874313700516751432648207460740997887502079399813397763402265703532496449399354238921862454780672675047129975227327931432211530648608683584018089370070509152529044586370679790024951227604058763030380029014308841667366468441176762445838312433833545799472528103572691307144396325240975749282716545507027360970830754109510920137887244115589186933137760100658249628914303869854139224369999628852500188782839010174029501639170156523392075718567981499778047013735415070814101999198844924690712964500503096392454477067611977145828591234132247420859267407154730303039282804929286468479814468480155285023947368734676522111133917254353576144762982142894454912656125062206283234234093527885332716848985161105409925715664905224494267867873362763814352282449046263629937723671819023711431284854458249891377267018103422443947159591474728762780764594096750339717471900446549271586466230142042315002728920461019954930041913900959252359816881346787579130535480938679372578592148218611620527948033197589087518165309194575730374611236672052067836151874639849230437743031439744333116911231172440523892088738445608197520557318997732874187634033922802892701375990512828433339720782277313804749866206415600466729109113858268688210393997554761622812947127197707453780593110648582205281984550909745479432296434703831858640898189156878408932925039460218484866890713930830231335911697670725429890767479880495464163236372849960955747461784579408222446532670756839502552207802763331222517681961162987382399563540678241050783483343927283956701756803553139160232469371475825119286252300798239071580422428988747091505667960709609230257886866031157669654777287658842054950821112066875505555714701049774679669756104822685043760788619232009364272224048113103459530424933918864749589567132710193173249482334952301047872227527199015725102976969310740086509323810887361871954522163230517177039036277190589825877154825242623295455401308169413590654791600531458115891321037233687679970078533045318177868301691823654752498687038414590186211899293667163972011082790393538154331674104288617480006829412360380937028606329848818009196212831367974272137363519858987189839344946214914525361739739862006003427017945720397530718787147750423247559488437104165675389448714415284401909914120174957239022813925851143231148499700756588043184129504334599037475144654679758841497873761788813846420046227987425701477471536703388554731387830184097863830610445751444874303947704023324428149573005700947095851334677826064323259726165603038324116292458595370334702451256856511150602513499618825224059615299399613539182870854265954826834568199143939382750100119769976528677214925108699496191161706897067754780368833411914129298799722695827817556745422518712519491107533470853283095192383030108808143658239898751666850160896076776820515473045676835552750254273144415264466588603612887330964363457105303358549528468484333127849430216033066730702804953665379830096522861927851387088434331824706268316027164767738459741552871538942030352673922270372156315952470948957781369860587769055019303562554893750109563345171923690963160338635696478831150200999326602606794763034139932723022890874835400758289831252711459063993414011922956784893491915141600824934687912587220702542154344630890040636265954949940005296919690500850847854792002638905375824994807206413935662050743732641694284465422080870185039668705227103953799678185693071916015373341174316142958523362723867162303098284324422969094780254855991202744165738941518894149603214265169606585337316484899213850982001748021266443858268663270192591238833588038336188754903220986741331651013066396904260558800516798128577417915232492452469702981109124239392292879413779770482665194398933779845155453388034986720108848812032959288278741475720044816297304996091094559006899909673194289494091670926028559510671162695684011202829015936157047636169869182976325386655811821321979809869286982674105127205095760498098935432231235900201006965375793256401052410891678597825626335943477835939637161021823338008635990203999944938861744624048772423146685540688074452380160392755778043953879780453934780810122039592507880138950770333332468696403405239937612136478039148886018043718112476000178148094865380684129437418648600500214985094940456933264843205002001147064946930450559161267696105875944608310700268546740335954592142356090596944799478841641678659090599458572127252753319262022006289468953911450620491629249288175126090276549755573795948246436834189598716060609567260907885605060499602665948124750128313564982516423725613186695852572045719885521800816002199207775801670935769906465286344019915922699158201125938787433074109713471616414649093284623891563003441868340033847111451025596544826255658967755127749399637920298850674490105637477045269694469608079483991371929726936001021574191888067185217436865535764719407202658630038632167535209665194911400347308332440730466417750255645997321344675991543234681843078760888761661348813160892303858583274118620655793094360092893318288856578175315163524936663782356663239483495425757358638459635323212209090713122682586917645197308316163933758102398607046019116595929557040699286058207814405710481922057340093048506580242863319410266405471417420464842805469032838442522123855923765112483712130807216432154690057943821970868761300412023197377164154602138812482997476176984248827173480145146965896267123587949203076676212999593790621311749510760351025405722098079074853437410208504809632233920241756907028437929938417670945542017067997825548299091150332728829094038954820826321005006376267231469380826685017603870734692562227030794298395575917610557682692697558629263863195997799524720901372680358912553673722576453519009395683670660970454998151608582349562827188334767985988582153200569290260835721108938287657810794182727683881072291476263530555096617245678091077678499441380044788164698439190596665631614666173118817355256618026719300581916099097208475454733626195812291404329126510836308701251848262899045090004236534971213867250900724721693313545836680596311049357828100335359303241672317643076660439652072707922022707857313115464263568791238442552723464264331510016237669288147441711987927353166062662125166847608458320352504529304882998480951611767690486635137653529364307443591439601048592802214815503437598854586681711172245237784807300878907723238068892071077261532235579524322664531297437662038879560232939988322053905023108154996884862441082984927242422172734801310756495919291703885214444034535735173251453734932797054058770133632633681939766858852602224366056716269961583739605160841225545162761838418397943805954079365645689553552713081363112690760250834662784408157083650961589500691307681405427083398782071552489540528088266497757531703646048229130958113598031108499885575371116543975528863281093922435694625001953967260762509721310651195038092059958442456236932329474693039878123719627863557307278120946529467898321888547104231886511194590933620628220720514998985107284625431844827763544087696264803157756564080943637646256219068603513413086585032831453692824910944582063994880947755502326353250763145037510486523822664446058555496019689547938555617822472625399762372389098274653005931227552542184069110376431819265915674129911993325013684466470926992269892868306345273537966873718001796729127101721886931926418863621935245494751259878517521103586815829777211473990588828465638657857795000190407780454067940752730362166710296652814344619156298069044934193332357522120298329620020008857626462169052013360530693329033175900305357348629309268598729863117159892128038431753880392856336778972575796895189561222835306136729805571378244135487108008636839085390180207607347930167328004416287516931416276360105022855850794762158375704769612074466826635319963563086409083934648910530050892417798520493177732672160260656590713855408144721032344259145764249943450994413975664306594731315490400835897210608940823272722364036171545963429052173032532006414236768241882411102897670940392629626653974862570048539580969808879929200682327975174728896955521611642257752550427942482214436947312469805421064729978777375421849413935207236260420495099704953794332730087851106435131058895349658634668822053702935824061179584034445069514298866775625324812014187969663367416804394231998550905270432303830651053654682426324371955751889195725661348458819446553245127028565584678846128682315225862301763293383487190178446900906932919761537876551691550212813155668219569740230021443482115929692620460649194406738853104744132106955835291191992585219350279703363026219367952107360522860492090427798145804199115804625957015469428102137911071488803084591781726854406886743083796957205932163480912830082697000606866353525804810828630587386742392739334070778021227956667576274830600492314551050289050008805172945589310553578799664257354762443611896627704181268487444513583511479793823116310119084537234046680050824971965598926351289226446347282809529564106216400741349404845687405977891330981153429343144784788962769363473815167401204563223552825136696878442129110270379570415899782475263194361105027769164151253145727710044672261629436048424294183525805308414319682602297876528349430310677590762544769057837417988824705617147115327875583507589548046977235034454858547266911694188631382903805435741702072011952758444370992048284678090162593322961158205372035612762551024505727517275017682126702178259942745731239334433561215093389810501824725685395732726206864606589074444700347432201835705817273511209805146361702510675764765643910494353179842068320855764322808193164855260334353800530608964065195595755519388547008498231186144445880256635035639715526590511599249779829879305943686356070749889713739095821185970297586504560847568274037444926261552780451645710125063393745614609474901069321002307252373698962382490475959117263092056401469848016652307244356323524232599437091513927558060564497978751662699228023186901459332127579866625648965550887664180410291608521906083166959717107145562571868517848494151407075727731857734809354722764888826785572105123533524287075673802616011059684756959922697117604643130158643350506971788846418372377621894623109444336367338029946710094713338239789652905143789719133910373831851947711488176027345209102450929683741107667163197026287006611055014419732464709364527823457506140832268217071997537677575551626560067825256024542029896773805964917056327441694384811156854686383449052243012031519983452659517077435566423528419476453882160593789355833943983323031695480105783920206058597412894772561677743857012227751890999347355480755406769539763570687641917552041608132891835402699775598650264777243647691196562093242587043968003202699501713025705011383532742130625937232727053904129090224206835019104075631757646440144396767159984572447453023170923812674392459788873808783699294112813073316812668916294997541145084953849621357467431008126602279648972684273336571234307470144882266066939317321754602502831479762783707306015216264757301360031566950282924245439594950851281726323456838205873545256078520121268673357075284090576293548574038351400718603272225615303118207826380522526320198163814732164498488086060245806943750044283150488959817157747906062980118886105413829201153260491975622524134840475950541091619592136821648580361119147339915869736100339735216376895207857071205418655069962033461852305620797734826067999991398959860461774334644635150796341143340443024260463169557979465253467566012781213897810719829167652486943215322328826374651981968804147863814841996701325360055391995831733652464284218825884399515263413458581416685786932024034628766231530049477478041648701324140503814356287552831500613252747781978487926754663466197548771422992674017206969592226609490823179740632274825897362145612305985113076029451144069462868339480480980308431754652466193752417815680150442468901895384373169787672930133072100256588488677811100654777789366388169097034000325105251372778047913212603727398834631316211766699525630706160903937553404670350859026080565569576786943504362228460530842045529247609031431907718664997941035708450067668530172316588642319300222095805633830011359298838668931709456513902844067620739774385448004578694984906541413770584170242072609127980266161201425411226921028521391118290205817589244939062864905547129237674874821000861363586741323859435966708866138168500013023369461497709614186347703379458898938995858007981486639426804462171327159073132915799585116638259574873696806803644224191444319283887968777345899478799522368487694954988849888658786978258599522702318289126920814293759499631340312051851063971662773623323852958465447081243012620491945259012642636940129175498282938541905412369914263188184606623580510548698988722680317571104036475395036123601932407148057840398230509300519545657293203554102462025502410731599225828728118410188151077978514856680757601187462663073432926188206634441418414711267283908699240066461200840874344051197400283331307713943427827668607308499878360856493675856614755198150951917614441529163086706979200619963956123207010269209405120095128777546471309132250110729789356203654042604226054249193172908649254714579201986839198179402735983728848801010909228157045110008454826143307965629475306241419693177415172496230864004723957172374946165250933917306807360342558084057821187436958861584447478268770306971191222690450980955884762350880298837228807415183838027801541568127405650968392349457927149435374266288917125033785802463216342147693073064239279847204684068503406376090378176743733482850420843797239393553170312176530794221608962230607495722405613741868466518305084045456348213870102034616604625321733792481297981421801148551542709956645174859473525604205632705277276195644608028118057591863501299046639819090471985730767209175931911278381295010182446448704973696862667449069408399151254271369248570944907074053914594310991876379335025454435414221619654018087356793314769142067286593385444458889239613882689578406424536711770318300348805605323158325812944770514208567408949027237719572356607786549512067550004557552044078823100420872777968022860177731566204134849051913141457323455166429440105184332191156436792984391260250989495346303781249155440931758445907645764626704986336454137485511995465354025226859177981649555859799207768813752549369160132876024839395822025825201208588750389207084779317286096632522828912995681310605529067656619963001479881328252562832198110118320259798271259516172058824901708306766443641465897156392379605570618982209069466122882085780565207428416807730955989981310202431788745565627192902942384122724012152003795329527226319810177474963005639700009072579909219697011121424438995779252200346780610711678575895445013981313037919205760702338630241488926460997677670089453534107271921294682697579207168665248825621245968888864442789597416114235210858421709878449592618639397267719676774637177304369947121641436260966751967479157606004424982960506442287497237521820456969200711632323609415557992370518001828267981365432296795218728911390315959281356981163615928402637588433113572533396980778040417184003710204694533932107117301176191129110051084822241374984576364095750895597135921590989798750827463877539562665179026573804338645297260456844463410618699639080185556303028069802547595807675454902727746498686011191591005735085921737261305795164525793501994795636513426413703449319047467997148201959116699724240347048853915728475364740755765674964115478649113599724115972538379197034633246863483710113533090307134778157688284402561239970267893444694064061081491921318572813210920556137861513582181545798835154234509495251935708339178753720117787830940930033123745084587450068773180150218089619442715265026046453339438112685417596406765841203531642870690148427122622548486977234573361124487226898146499354146963600288747722623171143975891725589292617555977267598586512155973771376599047229525414932496575599281292431453802212462378261759276703366869401894753120209803527541265834132126134214431523952594982950231944330906643179439735451722784028710415529601788261354346866949377433625674694865386553515967695832324490213287172167416450580761522011897695412726231026822846231127563545516154158322718314762314771346188076106113751804979318468247076222872067123564394570514492529518596904318723527832909605508768913954702491447117023040432045155775059725823367104246390615629519195977794758970983775392722415223931847420974050766200385335243708111284876937025428112609941076671060974412384980848591971838290853078918915985502327284997547102665387030841558776081228362657676780143285650687746673954386900984372788475044174470291206364372043385857408919360810595360597208251042975308261927122642691778375084030198740542567548305889329219350282239565495912748194150692121618498981022356438882331901596171293552391850370153816330212535282345453924382830621330327511670341927660431535423170927640841823364472364206233033248153159935990465044956636856627348511362966150509364494595193083165390506525173237021967500815542538981579792524531381254422669214352887165853234614624134368826508137159251380710645686397889882973327297974805959598484340985126680724908127139469286979376800983746972482352719400853886426243576770302990876610922303132927471627199316538844644117133533448342828021714737605145832866677682394494165821244913839327512600447656723557149148547344427425996512081968674031756607335282258548096150219700493098373385356722587415371958643640246356090838946139585986807583914177076360372360007580519278273392236855131316170014025836321945241339098822642863675185310760033902056135594987881535931790349403193238503529887902711446931405638625397033197765778804982314151716401999818937923947340642654758222553801802906009418244076260386699365578866549764559674827340147863150714695360043468068566296460692744314172283802297307755550274388442965678917575586153323577851677972345138829257367236527795045482779976950514056522994947175907760158856547760893455485479178192628397512002806644693510099333136766675510686208715141323322498785727462301510257125959193961231510357852935450052913193152700745559849249326031093526966468949987446732006603647206817637261035491591400175503118881658628558610046705102749157959571879260340253606260905496682649499519478523804493301292449811826273949672536003581389927518268775228811855091733221797063974255030627543447912599422920999507006908014218521210485132417384890419295790276760352430238123561167204001628345312516076817808469351104268300892984023482519244488811432167850437504875598812266238481291407747377440796968856740708221712138444905104359699834510825838641699348500542185705094680130186286783770055183215936186034500991922518054409031118294744187624084977091769731909042468328964297813605720204468476976960792271855386412522536965053817056806710393815466049333448263437935912358848115573312727968667737912413702989182224963384848830549450582322930443747189493914505742387926417092182100905158929288726643258431919018067108644124592524757381210110430842587975943594421690745444637931150617128436794541401060284217367674344700577229962116694577210036067322272107424906578215272958336003684320680091056295508896897519179276335330781802580296040142143565087312883117898861387650276161736919040796208881887593067931859168453898060202864658913161826569004367940611584980240206202079841476291457349626996804277806823395936494532253888384680711701409478724933642014564458307054212666985298388959087196211240494378611525694375411047305397998615810856127906459764137785708869441651249490109869917017706493631590756448494069321260013560666950112786599951813661585580840460359479240871330334941206674359747506184810899238144193595034124119392838540254645006917213120807073068723887310075660124696445073848673351361907929437132916680362240864716468007958339152431024801045761286099095548616404285031376260108533433133170671714608890547344128493197858888807369529363798392837122282928549431002304609894350001525747018670601968827414161636894740049424764235853662930528158431957483406736947956257290200246495021507498289897425693948486364004445540433839994554639349727525032080470100929415376770032293224368120029261600834458917809767620298473870196211515565040665769077492998913520714496554641116308815772842520415971792383762789276434858133682562622057221070380107745537007848174892601631712127574674467850328795021064804371215684016915827627305218349122124789436330704706691712343877174456765036627949692149663979841722744570273686158164454008916035692587869445280824018816517152754056725646041408853017625444080884185732522591654595087038490018273988703234140805077495172648970671091520019366423676949639705835330756602045459950501805575449179643656743849785040445483426490553010688227059258020152073506686957778886828591158710094770738674893079740720730712902565401005449364593193064578063030255242666448224918971431351567977223471430410563231786003588753591859805222227254626809286212250391173477856198401810928996292891340108012067712009456064550212265972831865543846031184255244319082886167619496862872419287703564287837392006534173553184781339215282329424094124250378897108593039122614533780768724392015544664240446650576353788682239515386245287262134331615892070642708409918151424375647132426871201115498623809718886653707848150624198453692441485231890840796727385770284854325858513830860467713899709626420446045248035430923479932803646918011828406619487723771348862620610202459167700389346980316098426672476476828941708726901841800079120074859486863440382756489659134679641560455031953985196960977498903091330853625393097759598645905322413958388732956096089734022671244725890344175956163048342296794922612096166515476714511100458647989153344902615763336595856716107323582006514500127369803583896686626009859926678384133347274607708118864642554957870481408143454882738550020645110742320676289407823425674411410866614287167368061343358074096287058245737672679492831300977511923776382135581037119135725506803632219509695040109755310572095606554855545896338305853716205565843563031599036466877583458813994467041657396888162420234534487542013993754134173488023391337144974247719897965471558087006925040179714796123418191871777626109898894895046239618612283446523033440825657396605370053143004024203239776343196004775646940195964651787144450379037815892698657269085828863142754072235884459153925937351806868637302265314616677442980781094500759258332968377980168400107710146973637906144475410311799239333918001629055260719233780016272002662204889338080835639022406411522709360500199511975973450484265242876686243380259729281263593225241505548583110514562743781016332715526458438103468307708489120805913369924626781075630892165658056512297939038282872756526550188243275661237316356315824833601508599169447522901981597395059917032874717820116262023131156167747201199586508983323328525275721678452730872445748154165966076796052712072471544356799160621769561692208154234360123442572846599292162624793201483932136494211644475294242475577477520848040621939189116978675047407266568719995114326302796788651228520002871586660443528588198463580550211947345540747223593572159205753592148601838076607893329396208288350000688549634785555879547325842796705336458210278188425293667677372244588356118686912371732584161527033790519562729466713685736799240621006049896498831282044050678704468603413890222627257671271303139749238602461838375401060549231125791111823903621261817862305426703412361193626601787825985600185627111988931943731074174659082145002026177226780229645721205650312459285002154191810944959889553127965943016553651846944187582494105923212377516472513233374312096940134197220482063604724136804874017174372908030240967032528397558799382923372379433657649871144397595801399691606998413143321809654133477498689604460808482001311494918296556025074913739281053223995720815118264698452643204418105687212730983199445652717001689919355911628958412619290183613600728202137439270529303340686010774366981133537388096145288482788633669480779271992485179385915600365215217385374637982783227044873054189283605592097875803212894798489248331370082397900080919051656193414127963177137189823421541819637652872821427205154717174596693290909380026178948545120894504294971356388516461753230519992992321963757105452031844208473781641465250931313782768885810103377484958291863076273854129676493453249011814069080463870646414058199359689019990795335730412814169515145508942596532539511293663242479791909176291922238272803690162311920842436660484510687297713247235787008810343524678493669994672054974609831564251705673168874618211994946044112712881583658772531251598330764089258093435843908910827126222318328448845141633787404631058739957362033954176723650316120758693037965066087753387672459288333573987466673059520957793765150353730906906961801901277587472017454700131812778557948389443612335160857622034807046561984626565929574213847851644549685133481941253664847637999102483674436022526152838626550674652237581046978620275992293690893054909612521957956208064670649290791172711765342547337398645381994511629276492231362597208202844195597515188751894859527416489929457538763848391308400032972967074563929460761375243785444446430595326034021500717013725489030618735477541163760966612194125388201968498626953547252954164237411587529924773078290639980854862373114763267560843537474757614493483862265876874352000456870169662584198910540983768240057918115911552688612098433948931721735870787463140280144134749052589088398382475042108072745231593423005290326665460752606254661882275079932933928496124885801009437042883385046141402659612186122460084524208718034567090591555910204121249025782238172866720106281049938037554191104171371058425979060647364787718627386753451350571539375205477582625676709102089484690560046067125984766281525999504672508907450115036412095760826161588695454986860250782883762175044374896655093816529902337526805915648957441318523084429881295144614114077092888961810930727065553971709626655507136838232624470309324798016280017440744139309560346556607878297891575219677025527487344238018400651650999699470472536545380079811055564788177659338049312286249561061613404604459556236016738277167353922993535360913211325014402373463700031674505297019941862296039928465572346108800444629503876842558826013413719310864140683511893803587229416370835528151305946752719185360975055713515449273901594509093052484262383005339611085252846379980747204913688135775083867439799942304816341580283175493709286190730622137003074023946239605827999733137473067282800992853201754940974093904031562394420244993104385861743591153170420083245751550223870703863688650669222146481885627748781154438568013633283267149829142139414915719300346690024143841860246716991412924739961974124963898812800293157767199834446743025341561826109818690468027602899937983288433348169825738572502809245429888751371112709017605299823512140500898176481179755205251365698070380053983765254996964496076351787451894269601575989217087950065623971647978729073652430681207575583466210010180181226065260488313563414454040147714586452649191614513459832128014672468205964385772259941484384918240996181025960012358639266283624285903727587735546035482993768559386834711205182701216159784978353459901137186416700891570810741057214135958294940823492051786679977657144296898320620948600102704599012929803031866649667512124896651806228227543842510497718870201321780811828070786540482134312868061233122595685333492396932144759544011630334666313364589905713964637290496145282425983962630389741470589049477636530399134878312634626488895569720151141933756338969591215040888343759898462640318998093601346215090674408176086025694749065006310215136232445496579121162269188157235020017224410801443726491115587171185419511621180760550258210328878516376936989061880482444736255132610044957175104424406782474740786108474132887805863717272892139368297609364513874117966967696836670322628730223026730888267794087977888723029783667968215996931825209147480837585668023656462106864996138551719967002716308985602033051113649562120345235472560891546012146257112936494458637229061918606218390196763928825786108982155218970689344484362229697948867158833077934777565012207160278256523035590247503611067812015210173305542518620698293781732014285854000328241103567492867238856349058361287633426751999008439429015259966460147959881740204511162755915619969614331857858918772521490237354043438511364501194789313323294953637596758244762762480175036897727091474780282961969533154510601011581495835604129830120648296023043578472508105009457440123137481465411046536541484158420323032654449165457719043403099181650516443066310291603823254537100676340000185421755948650636432398685741947793539952934163511307127163985719794432051457625310139705424774410071432015647794134923371295096688584827026280517326810339733770380833038274696806351614116099108841203548523614384671593268146565153671938094208057102757002071605061563624100027536003464658700695195335197841971021555735318828760933465153846240886315411342690898910804030392497085837290175898014504652254389561021547943493835512133879874651626068190668468248097571093820407064248060257436116576586257380536348163752498593286663162724255907330711866559642959191435862590379907724899525067447032288515023607950255491694046911130756926701535135524165037218268518363978375817622052305327909633393599070150576224894596769658857687609249140638397962785076742677826806186121796985078453701977271865386033971529482886639975633710906418137376856839727404209322087992181391949139497173846655624410851244652502711562198341354574123251836010083421341994661048207962367234632366185807968543974847274823313071652310751889333879775767231173295909396796609572609508772356465747761476401409856483072218822699591325383245563750903947923882899108093998746931370194735770030631900346568631579003431945399258900803581417783378733461470578148051389241118037932691046543701681405307073559137605186120003903505515402363514871513390323818031647145751210817972947526602591309736716346487123648275805628653284742661724128549049163494756432282305981834324678195186093095283500004198229046496097205022082378048307341882015602071554124309139299789726792251579086386493432926257809147476670742475714887208055796388000741338454850282391668097810830056728391670150199362319697315913842019092441886863488037049167492400949974957352593358228315804111596983817584486530058972143428740524603954707133331164670415321846498920382132352639957473394958951709072290559929610084250257573100633468462748642720448334722622991687815935069501416605881075698107302041616497425003845848074953622950203386115385089410618499410161323942687338557184106351497153564282549380696649907872227314929885060023592684672176647667968277637585540474467876781076670587319015867451481045254220702529506678333812282265336102125966488368795912696177133904994191756318853288855920404241397400019918322549823802382806413011685579369010042698582534547669594257874499846556442939052776784898967028546699409346878136673504537138632882888085148716705214818804794963891645985195592997828383990887292142832657292382331561490189735543095591104128494121182994529892332963842190877086427417616376302683152070655473253218125758330512818216948079004846832302672110960017386852493124997699152082158418597195485801810783609766988540461869554294732341371503164838179742737448952698671108683705621811906063018884068974006170923598714172226003531499385999150466326258992372622560847860521209021115388304838026975049202287188636759413424820473640077399281294351818181351460154340731865637412214638543700531352934176390280701696475826780403859608673525550147838879795247827993205598142300986501040677041798637332652131421508423772491817226604038113064612460110404609585353372900102088452357657264464999809248773857354684397413728324573986036622978606262758497854839980772231764520424690566218849298419685636122356201458918730739189349566535908970504233155267124638980015291319364294152906561881833576290833931250993664033963086257876591891917338376176915168721004874830966913254677202253293333031897936428943341989543506087472746963692392810549202680088489164677281076148184331003397949629575940078391037799634388399354882147886479818100468617918673224748629994271516563411749786690211009574474893885909467508176312274916779359898762318344782506987940366290360485964518980498100433515910954848559681217812127961392083676865709876829365197460709360824270086855106437643926409218562738847820439682677703577694099933920293620927583806693769308467669485230362588539465054278370220595888415022344447714518215580050840560891637743434599705953488633012188688321199756539642116827006291163544709994845866264936724127671756800187034185124888811824387343736507381948517826537026467232251444258816790336256430834786075838685839400342781018144666298182016712524317566977959541800742953147512237024563496977534134120640903168219468735268286903921311016497183249670395250805973560887951218209995163933517011361746058491146439017662459554769688769433012236657092747911488179993540253865040331735551087193561026271348800848978184171448472989525735672007449711317133158102888439055070903935184800207184626866824996837532175426131810623838961420821453545369828836321008553264506435177324717931935479506827783552412049220015049605127439969443490623378732316501394321074287827814164172249135979832038144081063710286752095308484875379574626575710624006066877154028222699735688137074616597552646428368740315874258476465713888731757725286429914373221409939156266917844483891685998181932921746164576823857245648644684283478553814791445528892218069983166462564206297461758604784100724081586329859603428156082662781839130743555834518492822989310856271962221061390363634417183087017462472797697214506113894428999782510342755870372712096320507698990753290694394753040637526642774354575642132557375027243967230559692535949029788115524855119032569871820610311748212030526857460572807436436517189184771483701075288476419514484558807510340588561439753659912211370062887619991616876696606835669314252603250988019196149218636479049174948309180573544123714461563562814629835375020124242917122545409125106387958551242109978199100065656501317863174698626759738449596092200300834669903709209479354623124349886791514805037108542281511706195720390197741801882893212535901039699873800207299263638060208909410257527109094146336389427274490454472966700172100459822260458628385531961564175103326524181138210086289312134806094662441106102196773908132519356879431759648711886343151416739791140021415283837066091675740104028029684101960580619954460926958672907886972814863990187612038211549859582908350231381802028179454653489018457142007900514316350743167235785898788287656801131028783015841409844513112720188313222830530387625762395484900193085330334420521022602343091690555412325479867245980054483349907158237262281378998395120893885168463455778629933826042153039810346157098595484966725311770292491937616360289392989397540787793967096147160554838360108788524515491276731798138940249152266515169314957055113293399569949576715137435687234812351074489687775515413924225675616856401824685236643767077092277672696596325751861726895023180674094932582523010248225392453214465562429614508588355225935154927425718219623863136605185520768066409704939278682217159620873589077543835712640497852397255819305104762601048884283513030715629733303108753897989835732063951571700896224131630616697879253754479777723010953411108680580596621287108803523280279126948947655681018542270009268429097722952094535233700027393307963100109939449862406227934128805157390016296265477990567376468652524355571874642825795817175678787800006622544706460917455115125343746684290793494351559400016910059445219669293655404057105420538662074543847123458351276088798236500441518188150066761517730102221558605662408819930632906057100210015820262042621172907263430662731209010132727306640116676487674351107266429796239208338363142108848727016613518141154303239288235741247200045528740715892407218269207320579911145485186057218352295702263028092849694180072798619879188875824551152100497129653414473027974805381422794542407637182064643345003039078831922437163993119711759217988925738110761772501968420462918808799026685140313283373421657907295072836258974177019916761345225889285067689196548509819392889022462728029685416436033952606944238325725186863209089221020073844889776091111499411819881859958282034751964786933349671123322612450993877589021796981794171515776115291137403804622121066508589455418650082615005797601917581796168937887509419554458972614581036469109624628306243194552701937196918860765507077584737682698141156418934047177930632398418774887000927517733566398111364095343465975169970199771789560185801545850708021555666943235437636019616026621965560445825403861164370928560793789754584728432011304707050890844172036025312418276989887891320687307041722463955633673986286163016791412976072219467921912675090060671028148163744458382363179616832801295235189701711944566908687595157190597573637072392681665583444959822256558727343974153277120642948288970960939635636081634414695084487637769389729576172707055804334508011041502276990958757226389621911232265712164362784319833926756880891034135876495575264763652066428222452511949866615585572213091409054158894956712482331848547751061412675699222039436010178130678365666393008416741645100056496054937925584187499752170959992369867425502623177494046379720404812672996034937400774491358526553532242372623009881246906952024868945725411436977450277939597291316769304512637197672875634732904937275718960054354530470927958765769305161412023865293805596377446476391577859370135895055324128010054283924359080599641709208810833591247536030612652457988941365948549757945169893179483515098732907707907643678143571983957358322310183255176496766711790858389330544404785953145539201139830820060458817353059324322325214901819250292166906676117624000385343272700764288250052239023667844335533428867205590950715867679867751011128317604613344209981045003585188676451914083915264268791728410184150650119878035518847935554600385002210962512833809239639540916748997123507586256870403010554171448644528912144171416226988887611217869011140455708947619409527241701260208090511017473045147000031566913963660906617765041022144766538951713519881994416167084673367231754400166291503729210224979792739321062304348336403344731328969048116333984344523455566799565453304008675431694218550890124373705716064507401564562046835703642133134328850675067618401357694182834807235985339799447351957583980096732957085933136995524900529837543057819291965502328543452768385988959558225198658255240592757500728483937564254855895465540285663684880362618831011548522291862165430812166811853946807332488470129380086070333805540413213824357681105278380260123386359780239517425669088130644847562614085818432154832902748938784944030951000777980724659707907675238904953761216276397801777585509180388810555314792603989855676651141953734654202694968765275792289826419512701152147894964677622390889763842819493311669114552294943732300735169005490279027226031295225969889310532631421018717924250490880620060710000006149966600508416092703947265004811714578466458866875520712713339343484027225320519403871120308624217937039199035561147961779820568196987391058116991234785386020705103098731213135710741798898170085100171412515896307446045189194223015981371855065719843804271783514569756684396386968972204617443097709286937030643472641910697010810988571231042313516662058818595627438365081288610688626512716310069477379388566753201429184624311110803436451895878049346196439084477814144238665370827926754818581469943287914454245209588269237938810092621388551259377457787058726924676335023543112495976834043186079119974568113663196257371429454230434067250990814088342634797373277826321116139306702968075149849601689184044566038243241189097237442543314823851866418030769583417261063176505948767129931400082856862640313414081271267906447879220521809648940456425115672886684794741875087272685019300217515187772409186907529387766523163659706377567682571572709919720696067935137673186068272286532457034319303071800100649204049721314242687102274620013694340856282442796991620867266373582189091131848005599447860838369744074183214228565902209111645767009852789307273030541354565101174232141509032141147994322244602587180942420715265087010710043782277410376975474282404227698508097909975081139557542020151852024084408431229552636118508563646153032651908792412721148732822160131447238767063521644238543029549647642851065331148821265969601480120433704863449286520203919704565696157796167975367285989936007077556579087621516148637159377476795797544384838422368684470424319078819093048639860648572366976186970097023390561742373947628802242449798324110397311836419908996228456355212218451960517103022057207343707879619646456133965653169334906462091861273257884119616286119226266647276895361515211507474442951833898801959711097474122142321218315815732148110994129897270362232865192298561858649189777255709976209426509482127037021545271920079424888331249797463564264987349962271043201529433713826392562431118180430240047084304960932695444167792803254492311160927694358766506239603329881900932584344384899822354866386359787929023111167405639809008265665309950557865911650471591385840942040356659489280248361405895896816453149117406024851443348324947422596481053669953732027896605646051173887379662751265851417463833266038766219630244172669574481906883400546861012583633073960255060963094746481315230557486707201198081788843590280988267809572737129959942823097981933926078692786500880858983839035176798335149845184254121592666460391833730918358464141303240915247459759200745320773478765026747245964140849067321149598801743674414989532788671786656045297932207749123722861160066389775297092170814638045149600411539185794078399308872940143141615506012835496044034463828817680907467316200008193501935515964513256935295160566562763548527487758966814758248116787743465982832372085886237510798660492836454463822273468265571072936102289560036338922651184152724750856489433364747565297436811179775534657051614534807715918057301510237949932750538379954312008722105389970921853646409113894862888294291775083188398672887347864640221238093097340151208046907523925295156297109930986683976717913079676778826723137620570277295010743367522097994908433553937664785246654798452435375518645575239825991471483064881438909172750735754605027062779825566973485047437450642550012260819843256668138949366765212135241070563303299810151180562472450963466162780411663652998028560494040537092445567132708974287593355138092122727756562464174189467541333665647829478808408034662389921738846570402997586729994191677509966571021727291595394584357602173945590428688037304409538850868281187343639863135087925489452450857529649572288925769233602849344076225836327730326077652713224153878416588097981321659293977694800147081530607539171716791593298757518877186214360415833189066151481520125645500563506729909141723642189859939595830616157581783765220490970306965771215593413325897633487513176062397409576029661380140779943141579553242637445349108956585578819768629102170667527468824399607544070397992952681111971771913160197888880414000493566038135959232951403476699461585857950678491221141169738094810562475839480058017526974887619696747214906713355116674659794146192152662081293975781861117536223926344358761415463615949274231658835833793999679212089163643159005596275946464639355397377596176516892522108489223401513666156367433538079055022744695693009107297265224426586169578202840257692057107665862512465103722651984132150811003599807590098500252656545560605754914406980862128979560330337864271963062723322344085239313279350403446063511743683006029800451317425386398028698247271505953071489344720179394112086469644111454424624215372804602779480037779211709531418831390123381149357301844153216187940055721412277809725763138590707218576235178582153195333835128146295820619817992526226557672322664446494965848592572581105489855288323811040692576543055924127993083078645996742143960810467752559500516529807571098854188946210237131917868644518259851989434899801911626420228263225057957073721696714299753908871417555205392360266608207535220696458514324470918514656865960594061669993225655347036102760403871209231249532336085199107316296939761805856415773405756665137814569184212697691067397434579965690888692862576291394317397245121087981414525295422503774263423017740907299866262873165313505093290371843838437999259259716691661423295188992147275687994642369537520378371809981575903855937695646619233223659943291023092657254847547500598358474965915488106857229720055875412850866943177317118470823601854583747248301458073903734382980919029534728640104357234227405193945470314689832585211763313324537648134678278420881750889332312933500206986751355362261925263358565755040233252195609709131283639520347988809574404929693427792900969957979607151663593916371405495738135149390640819579363228268599370270737813460492193114233716494040719684712870691610606511334903207924560992921915898758068108195979002407538007750975745597841112200875022559041466321166081383150478883753423483953568035514265326136052329881907587665484305561519622304714251116068250282760287513540870422436847191199338853155838322966864292229672764359733809202447632783706581649324775239544090895559304561284003793030346317664092290796750444589094944548622996085641192351684174247756182993558036888012981464285578353244505079171245119567595417339577904108855133075503678070695763007202154819128238640394912714639088396160614937289507382870581030944991965509667970920042250399076174312319612800719122318859731227229049393497174857533553973793935769485196907917555381666900747687569359140529297807496700462904458417851546591839576183473608447112388172057226594659848942719116313813399367067746141584951952466195028016304702327468062315237455562554197736904130236936485266123025171958126054310493596277484303083929395625205636771828916601284841029123916485427705940482075439006826661222866852247121639631898593021644064469300260196743785639900272786383896667510082039401316146491854169509825290684285179632838371241417422832584454050596608982981398369822480113919701542110637776411349565202291301232001366190139121632111704386019355600133934692654585166537301805327106559043784121487962894811003045711857388652083333428133003338814761614651651584856799611124407534669667417542023182424676359196238882131599311248893382077403590199803903022416891895531378795372183846793490448394587331159678499006495139712520135792483671364516283732597929022182249523646804634372060294383118387829983009138468763331007311986841016700231998518541002250466981159272118888406873929301121706351240687715515657303593134340070481972902643605153752138094499311673264365242949453921916696839038348178508298204323141638052393060462206159654513408611656908385880869340486706257659777221462061354574072502277820609410716013836340724347785881415936759014299033252683897063045347914784172210628456272755631289056556624238016322035808929855080925557213209869258897119917253125937236426837080280039873228922579411602410717132717944314501523918439430558695970757113842096438503523636894436801204454251840330113341655064964146633630937609409305797091216502051899332607294789335765103350455448506283375208022932098485011786387635436071509356337534314818014141162787419479777340859657913169916567191550328028484886114435800789783702525602471562001513102617407547743958547033544637674168758242955395440991946303983315186395093460573684996841166879785134973694961391381856236703491726443817909169350521367967386533661173147326861203047450384534777527588099119745453218471598207299782208191611192561907902163677602366819158942714057536744519654945430311323991550618567796625440871782545387278264596645652583705071598667389839852698640641347952175014076350384145090474227196342905985195146245709990410541814370250077597482185945725562748095603132154922750015603232380322822766595869741192052141910150649225459082006791438166066205713090068389970645950904278464499045855037570357966399504223752271547437015328998437034443101724426787763204310004503064202107387340850011711979252958441937508841116647308294818451728212200776790987393357185912184975512516391594384144537228386669392978464237788951537078566394201603377832166053461007195539005785838373937374274276831996628824429803658912308780902639858193840419618037057069387433213090022728469869375148455725038715919861522631994450019003284227471680983815498712243282240889817935653453441607944259655262200302873322978419433469504523991653517984031122933297041844647309641377580814282858112367066009580091479864608063793821322452520793249738480902213252216008101501523310125344461236523351861609665343983369960862062259923919128743704906326227977881602243475517493597730284915634598032956457237636011202058351960824695481926348904583460999651422724901994024382690605605889469679290808579845862863770801241497848506106196260755001765477936924218597905108439167324803983032893567358664801361457990313343611904263144756767281979493753887320107308974361869030538778894491223591097781643822265010888804982226448448949464807845581508029163475930075503214986268247998273225987575819461486713895839424855113255430434553144838971634324276339038251774888537485778476484950636747753666699489363520985617492961997402250278567412264426749696063341322744125978223801517782132935966919085414457110951164336890169424156050394324418902729364172476783368135679708135409903634384454147092737550129275405754108857766053420605448871621603769074281967309459574168853756625602800252772975610170604966010186797800851687062275627572169887947440454110156960814992786108442023735099153067453111701360997385404739750810757258975180848198349717194127406759646919865618170865285860693659218093364221857318502725965845118760182020773354227508061511694423089405804859103717060436607448599168328280640369399054535196098789888298786516934643121346412033541364337071296156921279204798408159918920650017916061699007488381333684918976839081955153703306399364348124584712221828423103578508511469188233238530624183400819948235984912187890829017718332884502370676357005255176397327116287286668613443857792891292607672300661099717951304144321593853010505171562616570173826399476886078206516171202327800178186297740980375395808426343414040580597554726151361357640492102989607457335829728450100749222074900614659434412180954492494427100541921260627622535031187262945738817312248612193257034086138079727099778307347274215570048073714960792554161348324620888629169335989344918177674492277456917884914788850013023108469984534216524146445075055528441010124837773491614476814629811004820838190498998582337762786161465999346818988736433033364638331989368022867098943536461149154605434952618500131379046468386187463372368753269838988642058600337277355786905574295278652710568682638455055304170424720244834537182801492875706540513235004861834664614117608568022329597288891006443893903107189086889868032991105175908253837111234109511076332236588505011677852764086563046907518380711316070795491463079560955363131599781348361804907315833458812113817933703892558942539421241889860617380565293359128072329354855305491807814105308622990235968469777065582911032862802591719455071511963186642371093169578705312059156947947404824379552397774175899415169395632602324792279873908617344316502649604364755742097905780615240929643468589219734725366972387558149817615765053634933756552143055913821791691809684098381614627335627810679792010254464814088357711170555588590058772417330661902077164053476164416717329015836518614729083598441864455574120493376648662245227342369828746483065535841653983227293351022723531076092112512563070558443378276150234698952285584825806347615785563323022058367775163428330358388232935652342736078878109656438306173285140082790172209045883347406287207358679053533572947611456356064511356041937417553724282745231142644152207843083957674086169731882802415914240118898677704725356021883529287587152691697420273573428481547302047785588639022581001215705252815964833411815132402838710657484793171111038266686497420494493825157851796675973008869494111161681199136816292812940963865457848001699020686134870675697012761149068065696370627631790422050026128091160974563922988714720863278728110692062094046902552707458464400163639058283999101093065715443020601545495747149065001515298817799282851152907432529956104099561519802415704754805054912179873739276981019497217445091990063331973224778953540312969168762751580929269824963280778573733666328916801333384342340384026716569604743514458007601739986681401357674670669276277747331216774228343724426854061256771344873621570522592168734097992595182518850288705222956658577203705607733894836678377815846586114213777428344366328245414348619071350084204548761522494656094475372380560568524563304911243329158097031296727124074838345216914562512922632880685173492535143640012925206887997963583365583838114817428861670954553148678506672350791853576837110050078309632446612800202109384044549651233845299208504802374508008898423867845312867086864728274077299486808346892820114339510045650193745030485793757146548017794646208087588393775535208295951126391084326973458952656037469040517595398148709759866154102422099343970869876639682433508615662571132048848173922605372830918944653175269052351511437256720160145812396188420987087017190547394946898429467816898347852865391401028305446272265896289032656827589311582817970954532712263740767516608369535798075938102026178038905495333633778668912698797939267544158459097804148834390524502579336418062766534608267393732941540957317563451843936255132544159866222638566078772182086065947539626062342098431003394583787549739269268532233438366550865842640983143929037221460329780644417287429376351622397607749280186458157757236463931564800527200898679604944214669883071739197926263827902854490775244317414184680144529602051238454732568152119095256991763692033441783720692078788761277209130420342202436151451030725955981322524192643478239607709843016604581275521879994326268645781929699418594665312905110942682809071732031010230851938333577096677326874788876031084608238998420132088258131149501692391298435929333220564045561332818535996482755948721922138199208803160660893347018802891970630075306616383150645610075465277069427077767148436051070441503626011197671855133720072625461542351496179581783991344487243375936623337228747889266234167797171626527758482810177651083055600193666680471163713793082630039478288851343514272906605135562078863779631816681809439509808571297361851257230725899396245580332970836105076022016046022837489123480969275422469254832748992366418817780762229273817499526006852742818331234499736488423582766649526372054565252143746429641560869871977304919460116954562879356213543995809404503017931215652353768372921904987167679247708729708295503665852986047973593388603142903131863792397222777567449679002321466493114178060538671452661548088237770916666185990518657547448052138877352806504048144486177907643807969800878169381494601281273602562629738801828703559299214063693550193377780743190762078481479263475931377040977483974635363040318531692467778044874697775023987188270707817148406823598124720615678038866731834649431790253523634231400947685841519096129591471710279917563872706544229779391378580341547739170256483484318105353702200208079204036580811773531055357288628390874820221126867301402244119357008885194892422357674143883327455141125299232694975235684655602846210148093412916973128314017065459986249439250003383861935987307540428686679155393646233345225802773036205169450407891755650159126517048251508277348399913580365739441380589336637187632286087744065228464992020884115699392957813476638396325463642863913529116901532260088882216098277525204258865207193812377090991192640930310036177981313625361577259994516277873711990767067860017910346078354220794572143651194203533007133673341828246140115547241896918470546218140918650366684178935698213942778780030770877387765318231356514706574645101649317836319002961318281917981256572294717714367852417936361116574208563983506645948725274308367926450064967376061131494208132497817183513121134594524584175798393503816074824179317112738928647905915049224230569406230014399235460721349571040850756017752829467215402503477282699607353119700461297495365692889089487388696738805284720462198587191081182579466505901302534965932224619970496144452648509916373648112186980445564203088772928283829445446845672517966745103729900312822523310442407836397067175582871152744095393195925778581745972470496252763612352593609786173869883075888182135647231976315785332873775388663010670676340772916405095778087836403130828371607540684936319959175622607287710744617177486987756724233955321248072326944459891188349064296223887558629466031656099477943065274634747798438463449195737360250009821368196830980351008414962519806674379723293865360584538648345828971469724512032517891747280863186423605411665543406643523924142477632533777450443099210853395719943087855180426204148234523168496966945784235354755344477278846913452159415470483975159589687543405596478961299962432357527396609096626441726576196102723654092449325247087620623431537800060597763728341351746615892324658559580354522572472189053797893518597614367154629384903118968908538320731399439913773717039066798700518136657907602270187747764642101340753297182473724432886811888775068021295203013054958859811261315555410387475404048979409934693649131534796645168252715127027639496034370900477123490133334399516592700254368762144217213506881754003140036694347689423521331227349826077375755348951122550492567901091787364734744340073285390588389225020899377996401267502982810296910069987997346769978308244544864246319030150349225429678657911455254059064613011877450859211160718845306271058997507021571369563620740833069053456672225564050062238929414138110123602022222609994762460403166342905167677457666839952896330880353085853223557796460884623761936872617416581341213834941406051765224519831677877509342389634710259506989364976935362625401691477193768997573784978022630591280699143206334637778371152039856350047203186495748767862712278058841058294244174964365036172305885566273507403960965475952742537684154826795721047793053433756086743947693838988918404409158373843865599020135731214896809619915660938088437711686414343973179721746050792257141345759035616475434160323117518795110582515580463724951855816430842783690956768502808027563862287841572870129203784448477337218727557624631091227583742545915856866027098183261317644770373650408121315059577053786318340648191526652452647337876371612454067902096676029692192473214055134723569009646218942491444677788083504061680192398999036646157079653324840004233104092916011211453572697674875362383780916580889641179581584057294604629430945305764571254985775083258561262427051742498691875068078402592292628664334935841244995819285129302325204185058675312458607344940229118271628379661154378256404267709009771120592700508702823681162332009523012537053033915613593138710744934971336115064607391949257330879174274807872570132103330185606489196055762554038825373730220891336907779949567457584541150550954504101222643649404817204696184590479265322571788874276064576477524892693406757558856380635184449967939777876949014265469770646089899769269005062459703757812181373991474356161641456118380017515602659113199076456624399851414271089360143324667657297719013699349727499176035194589455974923740179391891605169152020351676809552635999224771517542181116700335286044074916717154971872980691283209662117365131792722021020724648286380344744687885742310971265955109595592327052950571138111484143000651785576563959486805197427825552489618117615869342717456499363817045094738549592800049741600750203943907167114218245638208097207372408866430947409073767752945779460485160414572409212925980073433431874962275634230917911275225285676168324601205094319304799483618928321769797802147326543612506329116201976801359314501617328063216240219433650120622708166173817763471857149415222515151820533277171291316712127467576809540514802380224345445019258291764217426342226658477894894001468553457331177808789203112103222190569970714123810272903086679335160359625662009197366389365324993129841593171728646585252084671763861954814157655321828656512803081428115140875135585479220197413702234469562442342875119671136094747277703884449441724186225292465762437105486150389644542545266664952912185085803019881456994161902581762985181261232967655375763710018827599781770720260226694489126200938079689630190539730336157232474296352925505374357218255198913977681991876336279843513955122072349863651379473568434961377222820877887610744615177872872805497917563672098769603805624581497079554920660691327703302283261893952896904736821223647274722406186014535922583526237514456293772265477791182976234459719281722940887319077895822872494741330318391909403434374503961863523960635972874078039380996687482250153885416747584042210703385754584801030391948375753997152943629296089594650723538615367644173456277343008104728871422393040854237217350791509756231708227493949435705390788430499918061912915754317572641513361480461713837138908533152061951898138749987334502065793119171532086716909021742124515166898911169102786120373986380807727420228945066303656068775053465784818562897980658784456605367610141017696479227883231778581795635637410204709027103579194829596012628384060186783115009729526561885070092795686352366311058071169428671516877208101257551981589814276278056188852172125733468777085930062047193506698679542843755478644275828084044375063294982748452616055703689677388657974175303627160211085699776641098098904655570763178674271005866263112218966548983395861442807826489535136024451784658390596316540980752310837737424550973383969466311934658069522090151981590085511497218113280383043038456837053114004519847021786030413702213966971518667842715697632416739661515851798409929377081829572278689944523493455493905142305748900010385070773904257134051597989645015178190224872747588122630189957746201772406106569266389286692307519768816099295579125351027881817242807301918307794527311698435225863171380394383536429525596801672623321428662272946015261538688816347125275873737730479983066051292820481413660449743979810145900128295185630240273980804581908459033621986215465675372795201097752464145091922999167777544722310376974899346337979774367993263534132452264425828638316694838696554322250214688753100121795959714712786871444455722659212607632531868365967426823417062581774448780107127468390382780143975758982669992613063431171484836547582418537530493480013708531218730074365869593589411700820963942464749079065673870879338890111944410216401720302021463777639623321795660884368780497152460272839689468390304225811819699079562364995928977625531353628983159157677749104131563439096116817592909831089171025207012851205670963846401334993507633549676954179690183938142484721219941987387260220903272207661141248561560047192173494085749089517050352109415385249712262565653003588078497816468920576242222959903551582132705365898704769220757980742799353138457104125089181838424851340990872311401573680214686915189415308226755651145169106199604680002027555365164562706420990475056328150309108847762783772740878269964290823269916078833711268055711860705818051253447415524911672555204159160727914693369252294968126325407634451337199102466823868146111886609498793109257794862746933231215597842930652263634673368527587354603828475404299869641217652481665352126324939491564708678000568544310002311853620104986534820081350597413993710463957204293092230432558271712333638087776143979981939918416447059431107100069038151120483528328558686944910562564010490967255398441066636853470598997286576866337108753286007378573056465096488641995473445981170844791427037150316948756639611396307687684311640139221089741684912650956930844602655154995292505348770578733957869268075653221377091583162587468690677206104921364978728308906372348092578078421266602611708620474648636874763453706060435654475670059786318762448385755299957867427532805126303274445306588488456197634542568527452755070889923066431632440673948517182414877770710758451695234278700162985091935225163226387962308818222538785099570672046916801992979324995462634641745695423304388841688690829676382337633653473939309003872158416776226184584355160297217780678247953057525375069749302540624565615690142710973655305043312600066930342442120725840738469242498741090655474756159597522772961134928805251932996034532103226153766038649119757806147867305489771004084036866665576743299561729210392409115895054118722099729949205627225358316945081889148268596487598696994064278678709772207551584629211738198776985390927282931168697715499403213121528356673005181248443627157462815702843354186202298923832836889918504057805243056308464474578328076017239981997657815632606654585894418994170845039915172467637293268043240266477935947508805846154307227676039314150054613312021679811807063646942810574723576633139018014863737925038025160354322054806471885902733837415505165685241076400934232651390604897892399598579311816568098616084446461983745019418439422342965382668722499501398235292284364769151410186535485491185402294192589301523886842425886690466612561916565593367074135008746620768478396950019628156214041033510643052133909724758277252983961927655887886568340839219638600752964769333285549687015870040053571299758092078995410451039197337025883031229438233823593503348796860015514001836232923601330588676134109506484419481983305218906226882254914725273064354381751214729907576442889792980450745291438716152084557387724902300918469796690115756986454665828820182582296597039190630051864634555113467667133415547768309736171772601641381691728683080013790552834520033864971406825444040397869038621763825274568568596832857957235744010083771155927379562701042566246267250514970712380310368051073584150461773769301842475009998341716216631223180261630272450627895186708712852641183683194961769294450024492826689407556518352990707825226152522546426010628559170571820324269278073217934528920459941010010790137036014765325117370991824286876192355988812464710095839274709768814398919694295383748088326154658908709234988593184253080036670605107396335362928421415774425297415890698930295777605564132388745600669525921109982027614581882691407677806963443996395755071197629318546742568295840157459949403704099152258646130046184653342007875151343885982050758725187912288561966600327981231099470347460323386787218621720257348503346685783210455592420908214279499603828576128490908505211660602303006162124547321242156690406303022502237396040708107756897401162909907205643731683776411540039153087800105603472048478045488444454930804694678416262730396453729858547770796212946213063476959314155146790807081223134865767573291653809772596405790960664867938343204838090966555347168737253359538750240268766806772069269820113912141735439011775444185382949909670179575778548207777181331971818729703543205212075932438199916865096687650568255009070493893170561651141192763409160198511434385325506963956062070766732861385388792738181577905579583210981638622276581324307789068855218789474222564685596503272273305487252436849852563690863138487159519181300585387826174123417069539123681313972215337735228115361251022169025082918315928177587392818143396069960268866356082897176203746614495446156742883967706671171645864659688550615516529754576476260962620840091639478553423709081643912066243367130827557789160368911979542671283597568491366064960748751157793957771465347810705977325366896776202041465474309094230218499357838879514291007859228310449305693006709466254254074138957429083087132932782288767626437918235183213508881146637782597447729812223151627175254271734441076095274485742757668674435502699053679678805947157300473879646372059212139737319175624800386202984853180676802177608519215623710488275741585366105556494735377756028958556877503327865191970628602844806006354986439048960986804616578846359968299295994735976970523566278976916870540294842255679496528026762148458755495817928741562253169216517140255635048275567192965810833107405435830453509456544129674663515174938762537626900449658822249227028029183003420062843382642631058457909894693501640169146943235211530282875483965308226954831540480752633255314034609038584016413051243834730994438611490768942958758262644441089057432810412461370520838734349392911034428951432899053579512258692290559011169207660533902697038461842335399863903787000244387113105022660435536517937124789231334610383906437336937681443213343032870822487103952466482305311384133384879741157396856236663044263123535809769204387042391134713513472975470127565884786211839326188976172250036391133957707382984816364083558596056940143250760218474577940734657163543595208732949389304123412898385199673235179320658781119384550826829701788966125201767918592476023751579849361378258559400474972393492850283678685150722455580159018269635326711676127991632802357920211410066345462917058474612324636493738136279763504383445859416086230181322478905163521813736175130473308930409069514507369080358663754851905701828807612828563097353752502890702161358958136057441490724156227538945389068409001505657865116235760529664514443705465652909932767066504068511178310555353968611592454621469651102539467059943683895566982689761969955456304821108706819233179146925006496921450840104736073116105352691099975056175399721044166012195799824794194131083105761315478235555232406966131026106721835340636193593237793479475180494065631873671759985739850558396624960771196036722484703549271294700967076665160058757392526582286457963489879554542739911943310892880445513980266511880777040214541594696188003432760458385747376109581171014037903669300325171348537051831388758395231373146297007058680249930422533521935632839690994762978364146803589403206876419624937957313255604750943241899521551046327196720301959791329180447780645774772208611992049963777938340243099469208262744483625529938162051684759375104041384293001172303738470010991916206145758485809478226533312811119123745553646260823913326552602875048134305925219426988770990440899030932783265151052603914899910608524178227029546556872133517665404582621362086349769679672329421116552094131541657304623072598833034106747054660289616885622599257692963822068632958647455695076006820065016386524078457144030971330417423759741060233662784095533181325412509805206947404705265912762283361306885546792799239432805380609367119991579190094804342928725136700336670368970567737691188608577796454161493467414047476601816989584686708014420745902122555897882019327501046730935747763683778396481370800542294810620367964463319866381939741871839465060989586204745581459934070076518357897052042209631371244439223864768100079965096959146012024928992563901762429926755989898100327788572812375403745046055902404789773371491704561750243873166340233817480613886534166503818740013705726033690370540495076366513969366837289852386220064816506035070985078179677072494793831047803688779655602143228326397495050752075221520077069620746478692777751205982098240407102830370926863162137680698313051378140369675592538805493774146267625667850699650895120810268975858141805716396283276084381567534258998360838246358811855845235850721495289174356698872590735945847949854763769121464020878193117906972938386205735736067814732919456074587807470731509245759607654082164154385048768800197305202964949848480225563313705606307844591893853816738263179555485156990744070753468471530371954092206415221350747842813722250344894265235850160879815189178967174442135836693732173387822849293117982344677738680180224119577427770449109060252694983735998246149005932602771082650456730847347453062943115768721613264812908625274427918086264815448723487804090855942677661730791770594183935808723419742338803266619493285961718810496616684663734144557347972831524316683533184261687236513002276272088165811172998903010315392388179277889747999034100970215273741718003533513549048945080388635378869674702771226630786067563413321907783748694568629790821818581583941144817981596752523680204772715339672937352269343128063120590670161706046181909200619313014400183746723208233633116553441557649433967432043828340208284400568692148237684524795074793420056386734107007052843764131756624520615612542915562429943139015805740363126281996951203737373645725756840290335081250037856101771496921119133466383125280856430047702533170868939325971505795422145066173311811724386996860229262729708274029535878474659970645070958406650155384794401493291930486113033747320567892176036991538236559928642236564929706004246176815451938461458450026864211009746507934447429902204029543894226909999918069350511094050887750154946387218914923883351141311183594567776746078377548323116179586661753701654122008071083854140067603975185570085222762855723065943216091431602182420182764616223010112471459102812681427023715933560456567491049270702587315272879274239900149631631002363505882285929177061376354424484621627291587295245968177794292208955994102231823138309030161811087326136914238530245020608657430341711372547413668055998968826052323966860357454987691338428134974921039037338453973121417322485873172241395798964730048831169378371724365443678928518238153125721429025145399463985219030957264332238201787540661218984773840092904209069834149425002152692805132042814925987354951892947727086579821259337167185315118209494563225990658466799424374745521153439243144761368562419228702146235915207521345715130424479011338507893715043191828815834897635785538182469210633922123132125902667422047134231364498534329499163218566608685192637962990626336098039733103783769759636354614233169613834213793107554811019158765272740155257410087913843868357234553557416196635441411190555437585785379034699975677192494501906527637823310959244570000793867175355849245343644910617032067234190451315709761099379518772115070857717189299781250394221243926749278741589587152555885265898816022975718622398446415319851779589025839695313984060371661971326084633379184327476591771367230732176483535066705848091152616012050465938549849626933197857031740746211655124048563718794507988265133613786255453537319446054541833571447599684999860962810515183822403249446263454450666690263183744815078862520651072130294251562781202734954579375023993241758223982171885435759868438486533972248115500175597934449949434910127091630874914526963632394822926075836658270230934311868702667519046105805688575380995142286222105095432320335147630712023613051961381920116324678607446992363305747531409204272225478170101188220062487501373540766528410946314403776917958375608401312381267846487434432874462170656158815194457696742953751557279456795159428114046848631698516093419251103819621314125625615318911052798876204025995721140117708741780687053174371814811610780457998648611958780239818461127499728584585431657901520915489407898604818869298693858791026224244021964463556216155424303619248767548197469587161990504461315922849145326970079748393644623340480522596356843087753797539951495015305546837295392610972596763063916516166336722875973886618019431640142983309640037911002205202962354693603623722383630784001650770207061900298484359821977719046886085339567369927304405155290132916011423795937491210790095161530111119220067294045504967509929912916636860315759137314260884567580304940866473120281700478719896559093483900917476993788012351541310003885272391295731561405440296541853618397281239874797538114323684999916743931038924535029160839624277650328705709760126292651252741972243072495524874649828657177713168413943943790389336537959913444341992853518260391548369405241848889372337793153535151444821563753746709286251715574633703539770756069281064615362846583401124897225644150761274654004385814803470861814771598372298598171139292128490765059212622574975547369132155213957633717465900942665842368459473958904430916727165261187367958814460882352411369446250434240687654731573998724553157453213231455599373630646075800338700709821233943984781421527772697781196861920190649642413367905995010669790363432097754071987316910206503661768566056206066953003150755014602677100594945884269434276691476929604556104068410259903497253690315462653367739025005802012003498352457948811999652244568886903652580972609325580708135277524103024185258479565008300107044007570811668301548368504036073453386311777898011784604056263026216410325532034460300081157231239926584239284104361056193570372411749795081211947447497483804553967000934902613316212991521217950537613034485562234907651174911297420289787552963139351772437869009144464145383742359402713672555320953277218452215172539693665088876376356781712043779880032736377270456598873467615033975097712817469779937978013879530446372927717471113310821245946964661229410870668302259941020726737760414743089142944700999158525295295405752238815976543323844285131205177808871594600019747313343237203621796673011423352953469989373273524125702286004425693123788279042371249847405228948704485100470566282212820707441667848356454653214067181584358685814991913124414281627571859407132231532155713928185327336856645394177126377690244311985260769988876592744898919078854480592085303529209792684155620980714673040870320313245691801164492880638649377064500739893552829009233959831825769821879584704345891037419734803226590710743449792019559438990531790742828992113433546589232807890431051660145656041612779683513997368917167158356471181667348996118065865639279726565141082669644110593104474248991414179345824593907656079897789629440179251621994611137677676848232165234398487709122167233262900485923039668700426380203060580525319035725498217133788772500335769721895675962482984959574082139983590489261274369561021318950905947190302496343987415813183641968737880106182251481663597589376398658896286257663886461674176712037925837184074146370167666438536406523662936064936955425156793045180409568509603982804979930915293097256264890675850226757841784306547863233834737378051540259422272515313385523117063031391105287570944816236494004265661672787863443735445647585709014421186018830410207446251564069439000672605599974288054151163274270209921547037138789357359173664853661551667876648058285336260764260146600664731938782761948070632432242430421489852464830617470689700291099928498197164301831688725394555019511660099699934857107609923819917756038263696595630978380269225445771669021988870599048520206546023844190952466501012899499349023687106740710310060027771751562594702486888097496615031127357701684494152536225485134912351012717515223707486193994031814447094721789993993098193579170091405247277192030255386680624082381666825856270736318187446817178857278516801645264513170532275555957245353676014199160168896610958675495063640887757454865751514049348758688323546311437235088691439942935820426363746772627911532183100552353008925925688963538903022596573420101879169421023970451478827133776058865403664136969086201040445309573540824308194728646472642624632960429703580639413650047188756822994245563586547908298884507938994808973846519116342872308390098749486193543776296596566191335316029834464008473703946030111820465770950318047634649963269907434676617592732656941834570590071064666048016112142202756355657583180903728709987734220502076411851243465927974278067884084767359619024660753421180994926519006214408567955798450974597428679145379306120115297220281944591208464850331166519258567632026402130255779699604802611348680908106952130681514398248809778588724615524060655985948710782721770684936862910847426933303213962116873335217818662380872357155038988985019466766979485442227459779109356388969391912497935209039629668762484470006435996963289956924993524683177603134010826403457611532674668919701102299740167994398772500656084717880677971907627128988477553420187360165903510345315825645662415391555643165974006127158331448303954234331359357762172978923009010264822084999284994700308864679766861964594081636198499401475408213161121373572729422307518835784522171249406914672508918243656739960882893328785547703753089834712410575311068590551708985101626617828799114899450147921840206127485938039898496410015068426472179397700503274300237312953972241104090709451332682507029361078184064021458382682537181800308768569910588505791926403935780675378028461130004804295639051945999787769753363468540764703619497089332345928874295945488451218677133957711717209344513548686644709027312133945689117258090063635550854374354502902963063439178175176741809955244571459667302610956387906925563636175627225517948884333664918200640826278607493399866296654334731763730769633134575160773513561074737683520621449150784030134680264303736182644597581694988923364619996234637006876640538336469455272700227316989620455965467265722645162911613392944162397218778598660567643929308647787663072780220023747085922935901627103934042063643511732110367593033741417303814356865300169073214504391476882463680568460942580839659585610703912350721019918669443296922335131929704032087604621483474624304076299510841147630905259278827510923166065621449383065492408748996798878876534999234052815398017084861358588389378720768905769508603408453799323694027558754002703782277546782660916257546646888931493886915693293900422206392123227504406055922709854098087611938020662548172942392379062372127340207817205673282227688522808236170136674631929979468068106264938567990861953416221385044765800669284268792063297405174342359039604631711127414599308313133572288802288365690060887614238072306455653792465849801552356375714488863626180481856353685728759389459081577051876509963601315381843776784296610674051149831177929060243566564116932677333288986618242095553574683419871299179270607714899824875970260274975750737638061586353827296551423710000205100082794442052059902814749468285524903588186801479852999380528817558861357245080555910631255571129246953257236968380734171553035387772176089611586477183316879984380508026202294851561606809341623201534243245110707104887585973594537886251754494025319900761879315555121507789314212629786626766468940542974492555197912234197308031269119779488219459219151457370116818576360213996505515331501897043945827985921686897539281297160577748348850957944088491004390927203448763869844443049219952429180324939801473672607781545682008710908160281336144659496626535401093128290004676290180484870011946402393100281333424872767782940842556102200509986711443485536536338567763931985400199425772523525938883748328941194168092351307936744978310471202873882524816677606236061167416454353697597412952684794554107629307294716641365011307492106335007157628467345243182056273331641748319598693874510295751966311055474287992167189478609355328859065131332026571105619984276768987485344218974734319393632590951097636128980394588465117988228403941596145165561457534434530443609164271339019523078441624583114594370405160412412809180548374885697803048212585030834457838609381223476678733019246025299232705481536617959453406706668482877491408497256663250174401092905086931276030421491334097281812991894593096164159588118648841733025222179949858410449525977422919179298611922421858534325223775966302045038463500037347777964717116628111389079478261934315771986110812852514174225807707268650091606781272869595109064619691351135871618327875014651260695210363737855693903687910448302614889705408863762918116227354348320444138583075078080537608337322822944030696631750037863360903648157085313060457915196325205803490906649470994767995978824592407261617345194357684819316896435650943660030250696072560551557184391175565613473148923476114603073654933570985425348202190799066343911734904257534126094061096504347293181889152333210109243134412421342867965388277415061501611064352080345321722512810056021828163568727253747873466732750403499681022302939887622932285213315779382480921358385385677953999463342133593283878181969072274912571043162728973985963210883070943937768573682838905113180782777632433477564318649275862531691447755601030811803658592422690255854852907697921634334606815813160953036242126082575942716413744140070382985918891735879517103775282152394234020140184754349148391494744905208732566851674368767705719485787164938257111248238297153315666175690481515575718524773309339752048858376999294420484540580696302521666905283451756688508353838937545221662725124362980375529214954288618720339668936533755570051094548289464677887011612036421895598803499345259561161054738182121411715284352086327271452595427032299598243388006687818632491353321278673248804112673885205631435257696302171446577632827225069923898321075360475238839619150481603655042205724631996287570181863205436071356129318499419341902943394618309199622802172724386143892048906256516251688274990676346515178072251778240783833532734944328390204513771421710853106043752815425432520681653789454826974028183240111938189969791146717374486295004157489328038225127957041604134909458414323406814392580842022475541893066080161588195066137625771507850976291754714684357078105456961641568201840251201698786748518801547088911976750765809971530900259152284550803124692584049555778771411577174662251841907175164873763844282973839486673160989296506927385061173690540486189450817701985087636547668305441228070398238739965767193781281958474868088567764715809852292590712593920631981474314363337031284658061591122265515030180639621469329445165504073653795202210071569161061002386838035495644106104740267279649369538669501095002982102332833614225863729965118614624979031002021261590248366453054835808846034353288883035226992763570136582052940539648954024911464701279448758255412311376401989658250732246550053650292197300120337010154227401154674348682923853280145636047413936808358985248895203559008334879362511880861985566502102282964766571373388359605985458443988527959894929975405303029166245482706702481046140096456115279813655105736058703947893346288047895573466889717681479907784822732540060709950145237361042189529540425739784389595291651933118943182883772886748748414251040445151761205020748586035765467597278023263386542960017143749481937341569911971346380090682982328620019815381881402976766866064188302378017941917716095482514211006656115045809263250148999104310061104312122949921891104806222497131541389087807448811352821317951801240168288434518834651870812618237024811835307571859899795081633251829496759666700932161235566255520557748234477895191651931706703757380162332925082568801311476706992874449717545417041385772218360033370201308507083779941607828337691012361455703799307062862970571618475566999159079678569441747518539425214631905582059603649363843733078287076310794612664618588176567733694902418800089798882581213050384769074695498051929008391970486854990944308252793672966160966231852344985098747709694104911658456575033417995189794390534408216053352896828869790318807925182590036570447479132782688662379992417010648780358905668115577230905740695704136981591652824889410225666331724267297638835921638706342645923573105217709820870100883824629883515032126958982625305308156704622043050596558999460266296844911464537035541384767394082031935249066993641356146000287703384548066759827118209773438380319471271366673281566012574702029535187268317164537217722749523574130946413367881578834327196963042248239225832544629326194164200799283855954573945013079575480397543088357804816361206971398417297887849288377367495078331662996896622691751018930538422972552580566337381541596940513093498804887374451067677360141913088532345147467780774772052870809388704520090771944461061563778957512040958183261757234889489798795699629644300059605204970766536970232774889434649393156848997478517091847864706801230302542376342774481502706028461907763746054039592929891807883278526957363159547588622286088939879267900138068902353215223194424789145833632240298341755750970536088176232170154160702502538745129591718189792798112433214300836378457863912456719594486183411635968572373623225212380256488204890932574174907357006109208891109087907491471106990591112660950455417089742753781781313353746886490254968398112028725845283432418881298132081043493833450138495422830109497941892157533589513779261200079107908827983902956607182158055537356903369396976737938466414620153890792849322342827925684715052644627499232175135619986099858780833142280146589263441914058274647869841191765791869306663295336559919674261647959153660357319322937602209257310520497541388220346913385738689953187212424739694679942891286677621945830850250545749017394152487697421005567525013022182054087161247266190028409130891800844292635328256780479868244723532657011846062963139372599521589751562011285655947336468361569979698315095441868935509907457309398526548677919287978130993090353645952648654078238306491863703594986129864047257973813937305711857861776991167535098570965401028921553356361839367019110467456672195509065859983611381445223501580992049590598515397610405290067200905838475890609343317079955611099532660809641683940307423845667013811972235088957811093108596250611846482298382973301484642015477706431910867264181947428722212669012495023780772499033891795903836851565462357767759777642342429173799264062406098464760576124387268250836924439986489711431417708752926374106127971953565040620951418721537330486645650493184638966510884135931368032343525001493898143568322011261233749255839797217988906916805228687605507916920986355213329312059734033932701794802265585493773999898693270889216699396436823699198196240966674480527260063059931039158414069876264985508848236188597825432403835058751179998191082237820697229496379019774778704019989289251041842103826456813681495987063331487768065120226212530521903173483328063975254985154475148233595157235948126739230277792383287115718276243255760619210462729822748022844728208975181917740372245365138697866038396768129510717798507090633923478739865209968453215516681923445011894229796613622391614780270438174496024099452631136518779269368882671941752640857197567826286042438047356832741263711617052096442954657426585673267476522766595209261408341076968780901717836121458927991848345480909373861942765910706638107234518452486889453094912790442342278981506666579389834289376850122175513546909988044290124842583097030433963126025336719664646991681970629014132499567851512316834664190072042869956359796959997304971707749004993211122844818484682597664212100774330644488069558897906327375110753010288187030450281913380504012357419512863792118534446283183844723802644509617464453382430007387060772951039307780856099752145699229453897308359541745375160876854412834208157164123672895875713140303637168854452660250302069411680999656872046432936592366211287486154699734603240714032698389081691502170404488611532522740828837711661230617147792670189981691364258854894369035144622445736341937359827446392861115328266771522366226558530135750314181304063888840143843198663946891488911962515365142035547105040648567757764410528953830117057987055316171901940972253828258088518829224557189093659005344450460950924441750217432197550429524195130603381995845423033014391493699001787466133786535426048277648404742847981827982232894102816238492155369975183506893788017832445898421179999711267950080192405405198141112608702437254195933942163358378234254302743342043302614651640506125206560649930247957912345325132242479642106252870334519361246085283403689438334830103321480994319706514734452722193909589285746147951895389129287966120486241137543931013967367331586630474481043273610821705180389255374293162571313711307824778587552942242274264537691849164018212259262296964276992541991991463315318322910307908650681070070111913678969244707734969598619761629690982322914649884796926796109467301582893623921534671151703611469612809194178473779036495591300502254287488026419818110355043208114312088682808049464990796679432216922938412897613800800419364018566816150519164052632895409573547184655203905685589539044708400409981960961645888059537300314383382723732236173750943419197904562726939205574419340828430037896640939263656427967268949958489627487734230677224637447868380406548668379893350850064831501490901730984519227444313686543284799266592670195669569558856763588069617506722643232745610661776878248872043343974255516776877637523382703914448977688873323995494008613657522491809037137372558258155208306947720653774872321112575475847267748253812002840679715757660045115101616768068852756141059864628554377540396725744265506957959705953328215228081104629282037056220841041143868426786809034906853274704056342885052176133130458978088492086219641130677267410634211248308869980632567234363604540639360178671196148480976688940936063233079369865009679198848840754467197153606600884639604948963260614316745504458726467105241100469024048211136004901332499464999623469155065836708049374413057869394971307408325839315401822332098247957002409680639573175914027814776790590185472991410768037794452796890195628916338325198972959978090748057633030546520536859137377724546216921387225195059208624396806544105005704800629297291068538052199400463791159950977557097886626806576914416288561571068541363265073563953723266511415935308271267703546633478661842739547236934777611311237167540851491689238159779154267299503607173899288508482144341024671031696993107367111539231881661387302180629701647000195555018876263200970229102745097226208840573804714079998972313206398153951113137710782118179944356145698910667528276165317152610770421199576651468842449160099271548814559018563064665737287725730827485096254858932524234819517848958409755529098129676747887300273629009284975990263502598698299878219753875275074601735611697506222207705836180749130457599879593018983974536218254335362528366008553316586052593698754623733750783244828966075021979806491648423386295272048487333547217683139632043289360530331551855964435069752948701318913917850136746545691044138999374694527418489606162862272111825821158531069761476297223037009300944832614256978782945835616913870969388942594422689617058715221188491951219613778934552331641142495781850345463963535083881557096140213901855220372195421817700565511559457386522901795518368722611179901788655077437807103551764210616803702289720851016608393276532847228780195040507297060973901852016526534065676148648900250699419882946247526256586947892518346530349480660308133668667054408521014098443190859950832699100192761344961378195214921665626193456818189309272174719586800505687411843034499785541276960302121585499392534572349069713961952572779922941836910497378856086759629579971641778299339305331419925346021990801531764032997340724273009390927362091368639117201098488593162032655659348770226600042704885211410678833559745881826562053354981930821931999346574167378657737234939156751373983168709177170240996496742859702538557164450276637434798131955840851841079914909291800597297534945629203319712149454072201821496060386419487344099984497977374467920985829616690787537306632560213193459426193923457871888738174445285054862482086637951275113506288257477351734291862509459470365212648446398136888222216031835878563928197063491566521061772886653612044551964183745595376817869143040069441770241193681514161514991334509304075511647713244294778464639648297086017396711804760963845327946692166144309067068910770225356521521320840934502465335948780634217605879123605941884268496201701112701455627221920499542605976139858072371796806578166949038843002180518803089210580558548602916682988351131288265549350266998220336508292894284415356962367440924564740945854787731849175086089518739610375915540902342915779797776043196745775316118686044394087889692082070176677045080811229069658100986742608264730801018084660021245355520010184616793045888573596932804680051341052223276705345399678651618225257833669761205505954928672851998914275674166094292784027111532319016969587363342936764569600648722899996380782162949556279719831272911127996057210292723361197297261548654684509601480173300802648866461501410621662686053925435328211606339187229592716946685322180256995147284065599991158524807825090751621579890448091501721032305526951843675125954788069933200033923229657793242762880799306279002345251429927951275608609059805879818856507561445457888409718782102284864004208678297879677133232504737503316132878457031275297875378519740327728230649872556862876186822766101259950308513066695242063844552569364778333242712359998246918513745077670977618242834091406791141661012046203830401954528066890262985245123894148513850499224990303675240477722688413904688054353937404938727123926877138822707708715474827626448644155393963522039949534377509434265305434125447950173400539070758996633259651711273333520180802089053247045952330573345148704240620072761197946647263609709416788693703946089114111529045216545255641584285953897365995039324554877122806052701303417318176218211415009830741944631583831481916995149969463870378215518935804503650826940825922393895659798879760148659868118059737139380295295738988902046425932843241346558203282273694738127856720519426537183227768587308148612835014203205334910835869788239632736923685015319159901980625724685712120261008125041559128743029310135884921691276661113169611038091158422416867882846502935218573651767246932873634330354346313039401410939408135625491520023682754366364244995521587376007334643113349306222455224414988414245767650984800940243147216608503373228348920011199692184434380955759421525114960016479109496606099320130144667254695180110130322232970296697167930079913090039490133122676258643803355409572938037195967839269526494252578878858526353498240483042260260365110604177687924496189212248569368659460345968911724213677852743685708526951196899937937466057748677741960977795971968441415319522764450406775965648512757089824329855190748236283525267644738431769352637500713001748568720861576154922632226558165872541239003627376222821034973647786539365842739827135453333292781773905820352610024747547623921850818889800841781038785048822321086514225403869474815360586154835604414224426918953475365015086560185345318956933135491981452471007830079336483763775921284356523413771663147026841174033799657424829770686285448914806402637814453487529308228405630095165511845209359117746373712777949395818180356276556070863781899195681211523679874845965113279645451965087736461851090647355895225188772092506957630193532969874228853158839926978563047072976879914975322587749805830113243359215244609194671295977820665047559890388916779950912684985166924454173015397806565342644045323515426645410355644104437316761037268899463772547043307970484845385331691209819350259188283798702015648350486838017615100155732022252684105419764277594203337282656887218838974448035848948867893591605631754337827185131804129081083390918226247209723793996659289376723802139955214360120917064822948633952885782973325419349658584505552648218682539103268030869314605667903614770773338521756340485165330829574051569674996198601712336432186851127405899927119720721921542147716018255622976137222368925838629100205791321094028727408979795831073794176886672452874348784712152061904906921527876800435627756941253823578018892817764516522215352939629747802733591381849483893135059956287282236395841760060087593100188156606381454498841623310258300843173145520822507051145806138141783043781604895855744508877516542105994097377018597214505051837779749990529524844300621545587715275573142072902457879368886877395971506757737495157689343842268863827025306805526526982493012987411496787843040967491556562409063517544349855589919582443011922540263873455406187884713039554482196511759927024946561440728320189736791723230064251323127407333234701336204863303041396730089840688236473888301762262918257344958516013078914885420361227967684803329178340157303116379489495477884146451059805429826950667568439141929336655227396008579767533140138761518577970398425307087887692282970888789382308501095498249921562064322003206667007179704152252321409505398515149926360969069796825209412559674945804297497534621744620412780423283642447210614699019462177603301619235710624049947229671650863122309735694654899414635455361450035326164870176027993713046331438678753842230298151965523337153773902325523412855557740887479814868505406908113700605652963525158784978687589063781605260515467703622829619329997500413661440505454354615239900625868314025072801420586289978877006876855662080646881123889463464221990037614997383925446527582132166831369630660977473092614276274576172038763909478542641602553348142167085080481499914316305770747599867130447588346369100801835477131625515483952690458632769388007017921673546852284826122981483010036899527618294509942071521665037644380080040050198465573901615673124998953668148906611200120990981559578683067984573902194947575196873887969552580122421534785568970173987974954692724192877771597734621523708930543633708651447090533864126729985187125456413601904032133556047298220730244012935190848126910299131465265274438510780073122399451686552248358810370719125503481319922554068475156293325644389395181940563280265600662260808458413746475453538207506405603636015512013735674190794720300926848743890988536787280616045215258180552188177865934316008644972356083644149322418550499411596246399783611392235955228064704980983296936055685600657711975048667776536933935219957469306037187228825000362196061678787388040769393190566109766470267007604213770364729336449539723467453332005397093978244272668186901873086779358370354107150596338826708896296415254239291528990080513211460450428681498752190295534739254023806583209771095950500987888523710164826769974468681166897570238634171978486218103375627243252076878005564716134175558848434142618011296282089047425883904515021549342204884853911104829971339590944648980395407942639854596707263556911978831600265418679262034340818847735193926661900488135385970598452144460762409363226266361767291900251355719018773071096240172452882215686388548836383239394014819314955817110471253938343266561612192700163318603897060157587426352945080341778840849747739373274876085440703759507881495197891265535255309148054400192992715780596897757006700558321947227311485733214865599518427064832364552902838420982294065550481364324849062827687067543305374494841342632091382580200686057024057094714936481608305739036399786790919956079573870716058465589569091783325518587681489011613663350171439644551335181279072445044875111916683466728816038704381240662295312165310732316991011063715993114967234356748545275878552074756609836620888184093109800949591439353683978009326238008623695725884396966579905998204473736556701214302287459166947682102494840269652758312706207753106162467282218741291293482128829312895118145702470036116602089837329323557829103603476334983446274302117337704388962720050796924812268045795859736437678215798050265090990109549428371877367954866200764467546350677991400591869809307538469404758930747124690656377072813903383831249314252962574476171994585922156894369659946856354872348055743622342810274723201140280198254422014932389277717849506649236455680197413596485301351348805170300288877977804153103536352981023646209090906321084378066195456809723109068070161944249192244019327045789278300579175816763578118066551445807776641448803568896904827455181687770304223386668996452105692905147819147943328463263583109719888728164808403288437372131529897881607665571221411741186033391461032912497245642933162741074707670086987475031859463812093821149630513943875837702768762643034968901220175324133055389206134818012789339535515411512579135129361479209712974673377176101250328855385743888532807558170347363267582055459498877187051343497666400226299961469368619991063227529689606557921552986517394417379138247534777143975462288897788843234564957160003123531570973784490789856180325868187260724829593814681296001295314288484117998835853129319829110037734906009839354624669366798225009005060499147618050415845174104316363761865021250155903696921197492140876820904130157295758070640317157273624945929135292551944347754980437160314710664561711597512157547824823022350306777507186027914845940900914704091907339449288659557073813436952768890529458070663779883863747666109883762179612323649853879946858835747209285497623799801389221655967398839685938809762576062055346861007614416140477075900267435995840443851715827205381411223234748250966224984571289973688601054401556821214292970897579886179139199102992240740888967036909405908896304198256328854936859954692845171184877909178898197357381030744907256391281828997853950237307713947066601381720790610888160980404041678213712395751365099028342562959003932335233304549053429371115003933050778282753789491217995265507366418164428285769923624947826868540325054030771519151421816240165656358733502476803134001431650886196003673498900895566199453620556394561660457298054270709667719899475622777212458276541892288238745769793943877788866058583689948421107492014391428858518116532910214694700998091483913878617575715725026623541766003627370073558081571428941756100371248041567896996449091303541075860708538222998947850387324366562928963161700001488263942520797301605222841856188726790146835732881117545073095176431250479927947454654475191782130971723107343861198214290129530638639904432991647425389922880557773699715521402331266069661816845540539868442933409037310278508715482776053873473162280654015790332377552700797752106893497342636774571682946887940514099206561810190076650510692381330176628915762330932779660958907595348608705296132063275201419417360560658022429831766742409283605434772476193461642104995847838931305684348865959786039898615461367207613322243153655855172617993160574854939018195272504253056047765857882997306814028063865586314171017438909097300956262409647290509580706025166467629554872197125581197110864577707699120216142692865438559192588759226418680344060193639166546567671771017124910886119747184456810916369509063748332763643513169755942058977365488657288518477032216853032790664576403587643964948459829365986988968410475078264295521254618339156379416065882063257499638134938528602623963592632315999373576665420497038767260846933055232387977434329998870381262231233228046200261433059631632629376578545566241472962768930420070590241044542651115894069954775061110899424978608045843604970423210710569145516777964883744265291020960671884418831989223370871646637803025830094974423602556428231975896372569633396023861728961259110250596349750922733739894049783097681394237830826930066498248794133670925953103274308002209461614428303249742163901770381722367964774090100783828573847685114673190824689307066671106185763209318381072690500918403228476421795730320995783307640561695623084850100649819132468869744943368088940005759877946370830680320795167746342418863074898242103764107768727068876451107612283929402959952571268381094026503120178726013765021568938898792672291892433424556227650790779619336589135121966893712202909994797064994658920473413635981894331721566713383413358309415458319198740251954883811826580083810698486317408157027411489708465629824185184890068622944772731840395689863548766969358697187527537958860797419760177147084702440148064056738850654024849808364781546846919510911483952847585993209660504599150161882041492722127973731424571359185365924562985989371409896518499590532948150229876767964488364887247393659799184355300952207735550585132306166089752122681320541745826926770873799659453674243446353436127374801033468077521438577005255172793270449346168028930245047544433739622010572080051977460413208049802316819364532841396383507779751912809312512381628309471270264241676579298869295191095379826650404948455068749642323634855170794757690526395849070896389507244506472248961082196674710218923571633452280165730657837576069928353373517578818728230493263925373259578376305281276094423076972949184002520497884117894516422118786046655172515322274432065505019085336600296684633581437195377708759033055981035766227811871195876802086567919946614828006714626353261698613266171202521143391475179270394956438777123710664375645714928222101546322927194809176178681994493316075534925285594638709722161185505364740186379774873244575490757747357216416275999187040108172129059700972520695158095887331489749443791393257972244995070890107058116330335434233756129029022934334976088276181322624196931346816693280599534770469394316211441400181154764026985874626088414209174138354305872706467562713962965809112400382325796003147598164068698790662150862975529650992275369408575532865529911630177301320268034901027352157071192541207860829657851381521981042165693537630595093103145521659577641094556698078216302601620043378082538720460667886084898182298574403114509689749057302755913656807136608414733921201547383942252913996070999468282348202096598127661393776070594345505075262387811652062070051124514620517858615327587204184643958457773032243811555049008915074648918716462123750513024921853630255083334963612547898577945571409364469863637912798218028116675060999820655752480993369092401105783791900371940701259588035145833045504974301731773056815066406046636175364835038198924498579976912732452203499779596098385650007898593614484733762685482591138410033743106012765316630935188652863217453782335296758371612816441876389859554803867932989705110631295529112179865177317163778156902981313407192070512442261801110515055818595365152376568172292083218283687837756539922818031287146214070291451242949625545553553506816634925772134422915924781090474208324600000762191267573271841135038278963566021756793863463049142113994435687971300596741131010109820096615111518462678967077344770644133478075581558061368827486442481038716164692704034795992927854621852042146307628053965648452175316365687847641964040329456736048762282498849384671737596935971032404952208631601903361322916791083945941822694288977358062807599242893701999733403986604566373300576923434697602741823444688486334315636361435543488621472089592554378980026442050255402351051585191408945126465831436271353176377451721352922467079858756993639955288113851286074474121707875477391265889575990262865227951995017666837334120682719204161389157365942284775875766851044075855799399638781646599201450783182865116229793900112454134173481596989767253385597528101231433856238719472678529543803750200250353388950126298758525443622687526888294814048098885011526845802200031539566759490744828333640210930262623141926874883982397898162463501892451899973973867656773033927777065087089277063814289748573135050982489711581042127329085877052652028656420071237081502103250864084154811188888688850031125175043579400129596223796348147901405846432958175339771932236005899502579409191681029900475829252314294914435114751597277835040108690992030583354957516746045381547185605156575000304725335155664581666822756618592629622646061977199061182569936433176583630615553922383005582117322467045529266491486250216758883661457332473733470762054462868084328398179268758713352679282562740755350037126695743257637229875520170679191174128817258141783709197084249230544498121225137405429931157990952903089027976967721738825019607494240832577188014917287999018028402574648791469452038190855185608759552556428428052874242653820933054057704756813734731519532433842331118078965899561600843059418908836867149708643504121290692888410345935784802375137116057986795956517133746327495764190518323868714403380352420259023039442342447977518654668485025125151809456609851282219532755568093678560877925216531707650652644704765043087921227831404760844258272897963752129426373231463288833885866510890571966354906776190039814573749455348656339335312171891178332462951082055207619047887521430018860793972142530373251749508568631979837047798564393192942832315781683326031101039261826427432975815404223280477265909568142643394467720154772451506300885822817409314616188884506025525015407863160017589683318971054393548254863001357126591009308661185300037234998244388175383787558270642034386297712829191441585366221009532826300879988758277812070262323159190249945030140559574611344563168496682496408950903659641275582128390943078764410718139563009977461947060735665401869928371807734625327186543477544435874140434251759715674958837407655175220137279124072537763081185790418634113217825264378457771504277851476537392780529153550023182323896226757532596750335119143415223830893431485128110405551798000085382575118311049177042446108453796837237728099303602317936027500196201971141977482748510533609714303076669111277366090747934542853242749291509132066301446924234513885088380248187962968250904264892846934726422622168492092580883005162945955071502718203664898271821353369175126556285471867840739862128075486797166081573934940188238287661748383327444516683100884113965575182853810193870172199184577718792126152337259671341770965939454791979078483354712268250843902396003894632465064468341192657109791050290037831781009969522520436613200737316562923355741270323632412191903478032124594576610123461265775626402217482090770522822981948549502236199724336514978591633836651902544326866692089750768528391305048372650715144125909587347018871156109043517630315063407607746471341214671359526827779688817808539604340931870278561214952139667420949809624283447955405723071823875847519002193162471182953317373473471216438874325376923688730147051011022236477849108083390261849174421731057653972459916413159457061360764817405854986377887790659568239482582425475274839200107260885624553725997875363982007338954611299281140582205552263763877547726816756636425672063771492787437887313035937221514337997569407870505867014291729401362868171649639375632601168623675796596203578955431974640828457942407577848833755885771183872036918522614999093920544316175821347566004548289155534368168168622935922224837395056962546817589420542988242447924445520194447812735022149137803831606382136726212963670890269698215940766002020174948405167281964610318908446372678080768137794402917471527697269499076313765742339364240495167594554617032146708894937172596448444118481575659354779837832073424268690771859751296755576031163801636222695653745690459542195250332847571625465760889166352871234758964680393443941578436250233864855843049417338336154069164143555026557115545208849694089534640888494437732942662359921491432449426079543020891215542292720083948364614121862605746280249593245654066423984387724091197851163352181304081606018492794483969178926934742200452672739263598333736909460833231970090021818751857096806517938114804999527596873261940995106148100339939020613419315145527750543349794381940863336365214659180672641728399256023647695573640834262894466927690821881180810753049928394535422843256483267242863840833013423043453691707997384747331974864477988548578070436680814003395115531660882473044724236778380802463800057587883907015122297124448393446292479890731819063708744678762773663090865374159066203425477721826660174101117101435079946215069028578367476752517455578871483699079507617025291316360116037672888068972033541365077446721549032106035594133478124480060888067332351808520894814874615194742639121404617980374120307055919630784795858245541880929338351783622891036303415072030357357895103327064370532134182969756981804952772910607166960158784025898344583420455974890974818251485262540395878575103861380855271132084707992922953611201179731160182951027342062919473938322751238674792403491214536046135363203522466094329920377035233550971834010819908967531273561635611817696961298079614934556196256973954164645943151430811286244270797290207654345755155669882826758762104403300162726478271798555424350147280935620751621840807586985806044907696938601316221546407799412101528334202304672183278813049787473976685450473474587510723082062706307025065175969987899494492654904893825229164886382971110571667199043831197548549618060696189218413427929598982728768757521280346385131241366484776432440669733700839811475582941887349266249516931200368226390830664895481220746822832713768021006132519976680656857353229093176074348221381660200052022024005376068838452950777161775324995088869357589163875609325851254996542515425762821647008730006522289937177187767320593252158891659877719688765098610605620905344679827407335598833222596003369844806092019854772186262348790116181674833380906833961217423054872258306608272825970201747154916113850397784863809300237135922246428450424801301591656572788068951418192320997302127041918316550543280421286278892978588079716636820355520667106399715263773759092387501763729145989275521857582804029417070641123775449942319461047883990943558347442879662887261395128061295827917994732525223344602745984876007579397988980365553717849975428986497616371616796198784689355915979418874760407334958388133451359784294060428057474188396710667824870924498418219404774746590373481124944756059564459886580756379054002142999264546817758209041244666190325059648112649682580973925730964524628712854468084350874440597869267275782631637267626337513112842354688092881016454982495745642805805297791717800735513262756972207998987388997719466020864967796817029978477757143913178971678546082611284900304135445429079746233308884681206940964173270102751331087618055888658050547330016708207609080163224436477449327893915066187919311527507699568309646183424400482991520563449116844050355891496132500204022403815801766966420752882878448341379879154929313198022448705655427903432810392019090989246996968907739211799719882861178586258618115156864731643485852910939208121924816494264322284748129081454796083694952701710798316523972297552191125972759973738073664717835157392946279521779623042380458585294481662721740269556203763411763391607003422615055885671166766036593802849552518200154691885152333895827710171658182608506562689982815876230440230605279966766503507802517819296283143254202026529908607741497420589068088179684885971549684126617399052299953099877152800387749669620854250105474858088211099804251542396889408661452960062331556312957598401820888507103365725753259698778213355156079153530535260473175363439256270725163186294315295804146621691178808556357350424967762996856093995825041908288364017342662209701690987279551573482390436148999760886295140996804294278977038331516424814040856511243897615191117475506072248447613223153099121640189324088963249323674779422242930409821920281532961588784445885646456655772968733099205223180222668294426280488454770835064787664399074425308044672824053387134430606855706282093738982302314372995667765935646905819390798597812427101820611723344096117334777890508267912160980303252273504418106488599781394085038341515892368498187813798829531366397383795104464607408132149759453657889234456754947064002382131693984521027630948482613112569757454023021982304082865006824385075765012743468411840733199837921160847332734203756004701991988959937154862940568250403743685261550340737542030734671511989211926468233065994751774069518668053065706345902831529027201722621189118709924155871982966611711143132159756893510201879426718023928906960391892564092583549282849071750973725291693600120207963586197586901750248662379726964363803172630515894391722027105697433251676924746296236690119786126422360842839121229358639419520465464892433866323734281384315839825282274974501359168066654175672032266607760168607194258983497963001519680197023854786819882044919079879131998685613187156670330421064440730367128758803729177801870827320847109086625900732716829837661812498032225188584656525322025234050241056829505754211784463096296745970970170268834746211485217096734821762265793012551424486595701926873346517653289687732245927561371658327325169267225260170865517788735838995932382011792091992241126931074986025124473683290759520490524660650877450306314878977981858109616571010456540074913793849824297306810046399132434322318893579170341764721275054349113660862278880083436968084191151667069346264487824800494034716294443065456392259654931149907033534536588911436630568383186812077341385905986892357020442523901601341042051288903440757009479328996236621744007652403741020266891465600738324127498385949570769120747656507437741675343344119077816966195921456422969999366108658161655784680302707114480121767683761033507556595325975135848683765807875541570189073572446298893786872275899125658812788276014302250978822381330173821199557755118399455139873364366926682599771700675543686700320134632056259561961852447572093601202137201450201596115302251426985337179723151513327163442392505683076767620058459726609237399179476000991843703453289217593199469354702515966820597258142688979611884359117740522855334346384613455184843466368477110613669246681151244545414058695748581844252616533277618853846420487573564628482129996271619372678433366484084594489554612132300214803776292235634213111077186675250943791207568953124351740351343513316227153546862679633358253831929241468795198124661575180823201515328340478103103116341122758550958110374228771175051317778264737752355062422974982356160186397155546828525819916408548021000983111001583284479478947027682095275796961353547111388554308973622992144707495946143983379008144141480551936056475423108544204960027658395525036450949841765662056623714985813276404396804101464758578092705652694065465044372778921084129157866271160727740938595513353245249761305442731786900794002371181406674110257303060507278590515147069760737573036775619832152405416030526426406584889420245557314769035452083367102998443259031201474955471840015737121994908906962586266654906034066802908981117940171172800813845946055140239500633998766055138155287315459543364751745804239091517408774407956694030088862661440569358742169854457444883592887601454699745692597366250081034619286534307674905804751887464534197692274239486259826416066810983481953545421316283638627676217316899038065541513830525988535159641445214612547669073579492788497548163150663106458040539437537375276619787609770447939786488030226612657604120191131564637891045930723597550490415150853507039884949797172327938025203103938918811981964760949064956601791758987708416116423029814306380312662261006125395181116668999490598227127656276009348752391419038992465182064975377621371579486071728808738806200652747045424995887200195252400780482395358194662818743917480550530763474223603845449330911703415862348249637949452732152362847889281674301793287051537788664125409715542564017058474623724438798745891402286087657353673989600645384160313213387934675821127541426330906005255372506115725067978456987592815018462859171219373877480671968832742309184300930053560703388740177012722897723525266818332866129760051344005886847420123019158015164431863434562871809355316815109064388291580495037921609042707682317126390687835258109332951621620182033851870413281934422173764440340513555137846263016545837519784457400147038540216394449262561038121549847342975304814071408804351002412057054623243353228932161316254594580767785653030140284058522353220726764208987115478221661498501471663342030419888980364973154378424309548703872058334619534771252023706092282279570422356533681516551529115722196134149674944373229572411077959799727553035787059481665659091089077275988798328980335483565130612265921998835227259786351689103924302766955336944422879139939147647987086972270734195749208549023601724761649785192698715075157014246414207167971094935893398468478603277815226015905942190473965383565557872699159914897087165174872445998402076296600002281066020475157290238036501589755100745119800068193981993241387614237727459407843884117724430779491807586304756092778697606461452479304384411210849537289381568526470341547207090835234167175073125647071779876058101354963890768379253621802788358910238267056153750698646980816523753136662191280411610454113656375375799252083348127486080267730160690505207256121735789148686644331306938816788122982831787870644620034045828435587464825337701006310718842125743190821923006646043678197032279325302635487882796630772840547597789403434379316455076563750443010619950526018879178013063700973704007159891466374608223791301180614647991098897287535688755125306401446183148741862782919819248687310319303078163406411207399169576742469936507242741484381162478484118257909172213727611197500449938480470109722610252847970283022299774240713063465209525548590589979380378246183279475487592915746594204437688228618629718011853448226922986064463047416893082757038845590559126228054817354501179642046931577444468962382599156640259369243146891522442583469105045555950097309226780330090344526080688806307982673524870244150549857282263346397254810328691412537805570303198757167383047509234910692835866512171905066523870907286122248776029465407038943812485301113906371058026211382701339307999536199675449417608457818269198085706169845193662636217925971059339988345218652055268536073936603630102506313181196215369376319267310749095665671276505743022758019899762369643071838478440275916693292337891348736599266530066063155225870890783543450849722398183886078218230674423067898584535754577283034480928679500611348978911244968062787346631980853575761124793327120981773146338132147445216940934016709811943971166669725745650670360445397649195586611856275408330222905490160185522370234069578933943544434577917980627485581504835506379318763358254165270540504606734517417308582245028353976417880276623461479085491018711834333005572184088440478955143111867632681965048631972357087744626481577984487437020530619776365795439491369955836998211027160729065153069638126358320559955165260481811259637742057593658363740479227653259681619483378780483343548158957485285884170287093633839690424054488780251929272765886772136941760338299956308838495789106746333328160125614829506385185554810379462421143012373038620849995603816383409932257979678693697489082764756269541075523328640065535886901432757966584376894532749377608994168110229402622419176612908272907436362723392454154532862826847943585358015309353296189110164168186692000415465742312289263423636140430764368053967405523659320209093118536204953419470917473849829317664500033871500195357240338921081708818294551896787710266617846752684363870455755769687648807214222097838593293334011859431015696014068567472358907805652198802761228636588335812502970524262721619007572415522943078725622377997577766891058837617200281387938732179500392869879189323825606141763636359222845588801575066912302498131288423834140809216863209626601562894874590974137459589658861575442584538980042547074612598859706947900637025319234508294532449342974731807548237495200624276789182110831558323703427802238515028763844040935632098638099095292797882132594720686536838119447335113074948518462043708446615992570603321340442899159569753512212291040782727629735078884518813992238123531572225966863304109805610807397165627013513610135224419194274057115875078071832654565892550935827681758203402549063675504244233562967832680184047448563322240510173772297314567604257480427454417453122192561999271602856078840486232064260789458438361438054450785262425486982754077844820842057259617807738890298086125056637337507891158344398407913415577771706191879536217746777112655824547193452813962564382200599400082754807414026691124789993408526874789661663164758970033126449754330907046222630758543664979107502307796286757061314195717408685256934793451478001691788633628436268959602009454216857035515575220237641640662296336861033112386979604284013580629585452303409366964660222656590222325648392297319166492934444731980812552670832324604045518878013604961259622057928393048052601931503011037266161271767047244765679214967561318446483247153496995707200008172041907625226190500114879650032336100981244300958371051121197327929122532828757785952071777264020244087238429631742041589208566140594000011773532585496264121204208591838295398900164788105549902063921373981766049437012911465893448231813688158555014871905357439898982742037038473540905945355733899910573378979574378341797093104924679512412886146580777406288683463886450211761721117004240437367938441420480059409928016518815207768643256611519149490010531153069216179781132839489342693339040264060026476990368690136614959065407226900123671791316305398056772528828130433350029768962175790947815745957752898577759236213121412347532492764755119202720400915515466805570368371518112939139234890583546473072796978770578940058572105251297068814792384270217670812977143052132196938944197762479374111547864139875187597802700996034587220229931361402924684617843244111455093720470456673065822060910676085697186367858641466974916213910058080222826236773863741490833427312098064395139193883494742791803937413594481958663469254943132836642465570982001443854221817049056599233382724054904524313256198722461539839256599204528780076276227836867810726867937158004468904932604491774825134764561869698927171091026499751744944233334013598298363759702473178483017710485230555104759942228702703756979668593283195220281108066435099036362479760247303767891749534896666961550290063093864695099248007980887903558833221156672340960281419608301077965252850374660687460540514798956531537197717870605252368211585780730333354603841767533469998610081526420466943196821213416943027371083175915761786135331845776406278694683635687348357527791253096314341016529071985951939320153160246842753667037270151388379169578070247310360892397452449094523298431670823938824812326394999975683997592259484713905338980997063676385874188794132368393832698583437636505866805947658095475255355991865637501422347223616685859682578153186164669593003109579779362712644799714997710024462197829210309037540201949732815367019968239277894344327248563469319367608320889582810015920568710834090369467518874970444521157436642863691080977223672602261330815967104900514408467429277918807448430853673395525083697212568373872973029782290250447834891685155268630952166542484798631870148632424573831135605461327047240709063076799790302838651958280591657384414550381062138357660998293712515436350686303641686383169976550311277308672339251591613391640012665776624797098575401102283107646940260229604797788314119146299410189105264793419862449172506314402074046417367681494163246660405421625571987784454894038976012052852133534480273905182485439345906728716233956339795757633323677882973613542707432315797119525068010338236713590485901319253192629946509584659675633296652777686492248631241887989884673375545073564021174661187850815306653293574383427885787787417077975549191461674694371549786844494873431920643129049950113439427273502085790409770502816441032201966106240857416359964330889546103595493238095261726428101819526890438844457795898900837784269002543750658606065541592210377841169307577132061582356533876735458075559817050483511507640367853892171212357838759941695965194782052949765582909186317147533381609089795005975284685116867687702000476354873143637075277842057034296541068845429196182115668102069113074244739300275889483632652937568537808912318416487825825795170364407594981603708686746451666747347569351471913146794523783329331638193085355225519071637886237401477736583431104257822948653253656650649983101349709028824416524011289002239078735183444415873740187409896565912082949060211585738370750062168474901751110333723002882042524960464259149056122304918078995155947158697895978767174795902259329826678407489946614139116634022730778157015928382467896931916199268790284424480381994922549282046233183233367063859919494978180434323141539812671447144931508283583269448788285121926155365142244419737426455912612481191704317299401166293317370620794688662549731723459558923464618251399321184022236975267133405101019202151751299454471748079572121811169661514983688867932637391858230349997306922912132254766016158202757422884211232922371004357192718962582251788931453868171237831932291455011625964287219244780824333807593922907335000945167984820539536236954610124528667263404724102366843072450983958443172723959940073783294833428522447826278041097684759298529249749331298130664358466304046939347651777212302129376776051817205795472881829824791204196882490929000557529337054130053049249131726972842382120004715837770267115332395621529726528506836015576310223877414207973606139836145010272812988112466179192542090199109112009518310028603874944798070177526841747029150810290916439715690623933133360279537988568033311197346198650664853309364430000735981946481187735689127293170285927864545389926241080004697848129933369082658972827412634689998104504853669695388344910829846561350613210513087079160085910786775557364979578353135916315227469335456261513069565609863319419095213757220116285872747581813123180220041507715757122352481534859972330450090043533255877649207787411671788432694544942069860098035080941437334473616208104672228515265441287602207080938696190577765214940167927596112345244804565704631038214943064715552841218336030362294896869974834567897395577667449652042278853878609879257389552490575859641590103146101401681036132274663830164856521963245237622136191752090784060190920510130717076487794275730933656201105029256067580452874226915698440279359161231407527863269047146302957086799485295854089761557118558313372630373063478430829955042860182719531182938408034435451262260849344457973255014074254868897915916847757060477861466103313506095472474967362075875801451012666271061499594223361258249520471578642885510613686281588808228744710047091594710659924086178185141355357382170119873369690776485257807177336355977682164526457308019667060870047633064876044149774646213676885914622787903889174735203238327650465673117107997615668545997025398344939647428205891514289391246373470147153216961564356274321766271588382928295019787033733312712508395651714827160801499986997410276189079361203465844073000294715774463884829280158511400781339948384444122351635324749120962767147251788743816859407930043169803238471033187698257260524980630051494451110138739522673383738911635483553552170042692322686870863546684591941185252512967367875163989767862080528317085156620245153122116972192162396341096371645390761831302452773305874703424525686934910104938989250069267393407475696067658185392589845605941812116291453523501115855369535419564504744357913013828175391615540054543821593986733942855773417329229256298324761935373480278016910142982730203614771656943016233973276513195086650852425557772651275702139584950511039170591502455288308063707942244341511223847231445819780538544533819602012306041177842718917358272832303049946186775647035683736569876731745135013409237236968179295867575669130806570181610827973856668654476505592349187181439930279988064104538447933485498393595723337903494380715401987602716294822904910281441771924667524245831701517170495661828282243039450905859460852742908021643126807561280707166199618852169187100831651195610552869235384713134548683635903368911136844005339298939755276854871321385783964055908232946490215597178262277050810794762445314320423025410883449172154782240759942182482668228979871413113359502468103963947976094940161346954334663282788563252608427111198559282855361542755390257007561758659984004179803020741781915812763986805185683710342581480510977363700763340489026037248602878718736954171283530206121039205083456407602487922341295152694600575604537920412358219846786443280435916931605720747894415257562873600852405050782729393266159400917996934595590133209119493034015773511687784094230741082544022365879158517722451358279333903425659264528442178414173172330675650462052242543123979120521191864411117512219077433783458112152866103595761160321560764828827109202174931546985316265535378090599284442173910622369336472173681564684416080920920769150395273366689338509226682677084045155894519300921258937880603266121030560762021230681055490525819948311008101329707123984361771554498607881014342180845374714670509491695510864701489429025571476749904463810713921956373921285286356681341432473555236765978282640971706694309921164783788849970197998670706613161668416371361799433861044089229424480319320957161443088640627052607436928438963523797670593300548574494719659103700270429527570839006533080984961521682569827030993686233229342331328692451968824120383249027436144076396267070677959084889714618593456264202710892050893772884566600173987823777660252722485090621886996411830005871059903195357695269263398897164412634026034409038800583133466962558393389741067900480808057666026780853018862877050736437842345211856136649667473955156867883568235774142965596437572687124831531989006933716304791709940883402646793135521122355600725672098839443774752794245925327342573169778205850290990356356696099546925482594556129591685650834045297154103731763419005970452901345776963292837952498127008435801520462151653594891561730540172294951099658206871427763567896042873129895395877427100317097687902384041128566381528287140956940979085424877564412211106811473740561273968328839842580138285217842648490222925405555454824724918540638310317574100886197150180220371684923452717578433239030314973852922972872980824766048761350409294679728254298252413885223140871520807737373688880017394785775682908710118721059405439491891547227242387103140042532000558256621866088003552027612605131642200270555814198469571663339815950633088994901509165516043231859140412418575685518646389900121696249710833163868261897341644034909418737631655215614719946516626737162946678685188923099283376719292060511856375649837287420267387682767996840289189421002028421667141081512104103459226222533552631161388038713502026569761926620252946753767290811576080886307962699055575771900759772600660883663312649860164819059539530518951716527703051459888064625296896508262691643004177526050588236660891797743363394842599777178522606003100999359042092534239027147165624812534462002879001759610349901402643778677583741031379422591393645761391084828282553386236290395187399180828726559908179903437407888865391034875907936639721855618718871576054358047189649503699025563566363371114200731280999203912668048722174164180703034348808286265347294713888448241825286629993969191415469162991451555091716629887660877164545969936852719585233009132196904266826415027568092578717360326607769197112190092686467822288902254704636887094163961243804668047548550508402979701421059770219197546248956334372794104817297486326006191399367176346169504123285438164077078894030442740383665789005830914710372503104645749338136229885310825789393840752353799791321102912133023517139135468508375564446709427036376867095180299228880561847340004460753352789078981560990038657341650568164960894537102539265681204392647082196685048854935254109713412066553271242246157933912280435932997774496968329014119803810303101566210762677694577343916751358557744738993069325129436703696618586684406605117143405472802820814027232187880866607902810409897413564268143485075062158114905218222101578916681099421869894509561640519864650031087397087596885957633002335841660996470557206913296025527814628725386407613531403567248680469723827274807815913525766444938299978790260729266690456969886662002351628799605204863119678912036446015578437706969358661051851652456175151897740737894057475785549884197453469603753592704316100081504033371323992040708139435402294677388853302535730530556609244866509344798351909414892300984316436009754340669422340169959561995882938410871192564040055273326055290440666471597036670217818486372893539751232040941506587264462733364074209878862613273740850375005315111276981699666770535074592659481584961839179437501958660752833915326384458467882389310819480340761615827046851123498524665945296005444618635898925467897864447246688437146952360473958921378122289250465829267373530678655037232587004928343615310644318523787538344372610385859882718044488391301368056791595907066921885044303436697996463123207564830952416577752055517309921371101249875842911450991550361820760653089129310746328478356119611378275939752769888708796502143920950641294016341357564841658186440260677283013191729174387413425611172650480064073149479041235264069969156811642743687819099888256081045670252529324037816546402169464762073910434655152839589640683330645450976897407427164152604710517335635045307033828053324285691586834968440450364152810401453806826685172656877079131212916038976312239433534840459979798308565942208170686040020663092899205325376037129958550398835919764428780903087199203346146613940554984606742195158119901492625594303578886912257918215771424325049362441934773985434129705137796611562126548057829094080003960924872572508191982129263553092542789208653451643304888200676081319768013154513421812491706803241754395859093759354559509446931215888380136247455251413013760273283219230383422969732573431001110743432584196049633714443978277979045700971069394601475493794464779583774753381848166849508394706923352975494114182004789706437675672591613549984487280048023108049767742171606218168030761031921930860703945927022526463089106077967000870137920696759255279208502676620799127234305657509550526797175551986486036059709487266680196122999694621279216811665527337188800916460806395969029924332447014431187785386382008498184697092621034682785501081473161049163963367979074224354618846146969040050213010281969830793577465387878071561061007462443884309280228937941767770034195653501796457431451350335831682022866745802644356951254226841577042722375765715189876726506376912480260235129747273248785499665181223392121482602946176678790116303890380067056396987321935380130424365001846248963033876497107776208924662623402929440933555150981907354712157068027349301951091605707552182731991317747153971222788149790063249502311048282090446857396079125776245882415128978102632099825894161671122514276362810599749728064533025661178866662381995561153121306062305596317971867945604587237548062761282238588642147750357923366393574607392748649679348883388904574988906953263334430692379703056884150910938816547449638324933769297423432428541860115813361942767138548426246658347101465015796496963451245947110565908067640307222380642974641740367729803870150728739802342332044692206424989043278313070639118581263402219255542950576183610008864044177789448759494075169865240575522012463862924612638295340464244691112133817833663263571098902120519700103098585694999832241200193247101723486675522462231027170742682247812121597989720482820321182237393902659398837207008190019150493110063625860460791871071668307248361928826714348803040781204077075010378870486004616784671309719183378065587256058530725048532006811309967273513280782994291916671976263943121108655726994145792924474922719203361017914234660804391286448758076093410522159198530252693187526639230747611405553658133073474083571343461253220064700943127211800158505493732270562605172061677064594622158078550857412794066403888437600840906543480609431710060652419774079340671613426328675626578459543559932236995366858423481648035800371562683469521033221113005497536951030715093850909588693786137121622732503292052556777281233159435678277756621666415906067269424139787718518700744290658458264703342797404907365815458144289810823684545927174858322956334911926182852644176714685881560832196419388289915314671070444447596170797446055061433493513908583437155648520727480568786447904104770341603918222086852695402302921532199152242435264316139178050703673091678704443454131901501336099813114245776028906155344240020800598892728847849523470883867683705836661823343542878683436074204168946949812464979169052574956114603691211977886447997836829514813280682827355517223649362072946502847507684008077829552143234546280255645034635718805387892931389674224120011190551810441827941421801860663844431591272701250952315983587999379810390964496263731441508718523245009624860945541438342875155914681880983899391714724229976935773438996739855513353491780880288533524824952170304501329488946766668945287551727662394924430968442151017732928633105777277683371695189448494946099863431168571594735378344341772256507463968230817379990714550518663589676287821261953631307625576917981253020032154741727454139161168684743152504047275758840635580268690332994006861409379165355389312826599096165556520239592081512685712216051011739372593990057446441335979938344767347182343777970833995152079168412998178606484466990036060156009487033987781755306659028444102590103740919512401739457629502748385718666794877088948608622140637419914946546271124862466935015474447209033580807784414587728945107708921341980842398011851685785720300834920566838392379629808845932299641500850071805877213421066118136780337610969590059425380019629321755633192099476810152885336116795277992418664586727785691675590591548084468517955590384586101065426408049275108329688687641073464198653263220925964331993666190651448120139526091003929605141507050178213245846879478093867003507819719665631511979989116151945019436070949948432270299279959119138594356257620761533926880823066230654887088951697397906085720400724626032754923715161927932092707764792521838723085835474790007761445970266104335122832622694627115825293380146820203516971410706525917994649507334529315227903275201714665594601030495399655686737177315745140486344342835469511117416211092189073777253795584766101903161424417019215741176992452150996333554805678574071200712247037181565383988929669936087681208665966390563335049516118095283395380381803231627050122841665195270679940637004470348403236742022523405420007833042425632605792421153981376775062305487752241788051420217103767446288435125386922780196596377565785552290367898663795053741758845365492657834009527083995910346701339330302300085948243835798136885881390813531063620336383824139377980989954465797976776458222010461679126153949364704199554929507578703332550471576399752427060119796864466306303547865691169871331720920413501405804580476227626788455706818989106873845384928928413739585450142880175079592321499209574904201453470282425723367586236221337901203109219806886591150170904626277972065953635093920135159364180146312224797404577254213843625565947543324605310612058870870990623587309042725059944324357233628520835875691472479907252942447872573085222393700153848442678004401903880987996656540575015416704438039300961576233643443956235556580988590278059293741854938725431024660164617677381159053416262706826401644099168813097416205720251252375582451290277312990275218890800121114134887649504861962709384520177904007849780275533460371258693389174473910666562982538561606811634764422888816735252660214997161951048060794481803535024956688542910384426278081075718121338781849002295094273790620295314880478938025829482023960943428999963189513856696133286337683407262906341898048343263385779148187674691389317644370184029257658838093016891382588392174096310791583548347215157665097107297108502787339655835948103794330888382500081029532822547855651464980700557351934433981754418402464078142897192198133592113157332192251470781942165074476679523114078642081861864688306227665034471583187665170751655264490333192938343031532316357447857290121935111377697272468906223210280129117261016275046861875939244925869060630630940106187239375569304315583662155257780425230596851951067213818940119511245271294829451220473849222987125720855558345089450121550734641045003188793059407271139606180478026512383576978433721695331449954969359469455807005489672504261465969395412041473976177407867358802190348415707726860928534494715196169766491336397864536219263830422554476752024081689357243870118763244167305443146454009943715001919722719848822524970102546886163257948064640617603333616381412066329346913085362919261805209256713464915373632810442935955668184636636718331058548037941638402905790594124710879999151750708604966857366949582279777236729437309141313758996345493999970315098586691676734881570383140915585472290333648625762938344667233856164211854003022936962959613054921714475591125826901909392393644107335584362565371072890320222258370858355911075247522081611181741399757976505029558206094581949390266556385588319477493281039156846004774040914286012375058919088193116210026250672223343938884740976920228137942806408194577270602315036706642409651845747728734399970210485836619590287995147710199720171471394790417284272872227738336365707935067189550787643323591840323711087134182870841340295834481746093070296898910937499260858637673397273929447739741145566991409229203406744662967497507598684969891141058776538913557518509440947203984503823012195888842779501265943446250804913616435494930669294941987817940085059575652010263168141549826829972960422566878206649867024465902202442346701187725342234645005750019106886231409105665407630935394928711608228903559183361319728267005847976757914256939125219640359616821344180223173336067387373440049553778953652458984825691487216903949397000207696504383148777035028360995972095975977623571512797615840334788463472841154195381849914650482628659512884366824071995117152412876874963468186322229458760447874633230903073504254961616287664245987726382914491025172766908349948379897296354837446732775259676516793187719578754555249037624537140575405886157925069282457920870959579831491598467312833731718975867396332162922899111052078670904013089063471386230537315057693466922745436889606556664631865979959794555087823654597309389516848853721992663894168010183871090010369714508926379323675344789469872214886042386068556601032677034879869234202426218613397620248858657626354562832812147704199749106981699368307478167071921062594780465438895676537739325844460521824911295294128175345503829912096816174580004204567972905720433993703776465289180302765779186136756448992635985543021719499849530822043436034195285914290809467019718729924327998756328319694852403327595987309699476746029668931358624873535481846021717363813825833970961245200214196974449308226982251798230060419633248021941832509682223782669897341331810105321144187317902026973580242579421466128563780387282415608814273759232106072740265864429892002786065196797112474172674835926047466741575157532563392106734041736564973935805183821235238343940760829305445035169361382145149323433318866700793593322220280833725452584809432617045019329266945588738098439437706255089722944614143671473131880756106047268848423218203457124801676022074648376772189967139574688689933859728317981512740857213863454048367096754228240285901039081832192037264810751968986755840505655762088616951976657350693749132029417667592885532309504447005356398617662972732738589594865900906479416446726725332008822649728933869066471190913680293676375823864794309809194834325829876209642267005437109232612652708340849730510448289737966365798623263156084170921754489420873195367277120264224448989273261140992047071109070677823633317833787259813708601357516588331047801788170147024143742391361740696143068906894577053768335973206347588211672674635763410434274026803279344566330548706321659538842274140959817815294046684518142096491038341533731759096653470892370340543315914414433694763224037789357062023766764108631619812271381457913178748568388429136110914564774152738143330664842759989167305267147849153414857018014395011300561640625446895681044438825248761177830830397243451839127484637044278460039046671208138398427382035904342514781951935330268770889675142972602805707901440153525477256843262113540688972351001446813271029710097300898291960463772962981582344461789323927752185410750056761886501575535473541863893343242210463602563600183677860798143234256101178371127960816398504365860640272543855019945143377376575883342330414201684060916368983704527588248917618576619252133534741218323920298991851707712669844293600572275078106234573588573251745914417099490818880434504526631792136941168628971234421753551597330090620413541755344751236461301122762588377762621934612876001767088824315189663565576906607449094816303304906087934226007171416183522726815841691560734794978446817232445964400814097026985474856956775095517982440931312796611099655800459947682102373517303657640562255173355411056632472802447793842774991480238074424199677247322982597390644961354794616857285223556245160299356999603709530933469683014996961963018808864310526200904328835916769429022673021006165238750986016821775385354407549515285942951110225368955383916284589341619920076392686236338882409311269985114031055483697465907459206551930864631136702214081627350672107668943320939655933435910148811068744309748564752853849731087595106906798475475828951157386289593049605095525345396045386764533325601693100849329051434187524935584222436617382246596456787429149792550404157953591939599087732602689822114958315010564024605412521921285327573222100518259663216841626868791707191034949835048777671798964581091417314944565151313940261960447139474589440726624542194461314884483447872426184355871111014255752325829952379650390028618629999638837142829736089032314836345722946259285721210293055959125140913493667702281847771467164083904659011187554002906862529437603140282405318005087990256390956115006701796656978114827394328684994397267464158149278946006235131620727875498742250069328230564701797176069393590262479803295251619279316903292396814243100860522206943183768350152076364361439295998065406118698152388901885352447757007577140886642127066845331211092509822574711638901826416370816826118257036737837081643957676694344636340077302922852194058807500230688451942073117416852175863042310630572156074738002562628308712829873324643419659673978134548130677273017161733016005520360790391186651384291080422243525660624570700421867069709632028275208848693593398609341590429240338058266804577525328938034627773823095453774882585532692792436207341539938145796350416125262876959272243530078510902512237823909104385881819501436910988278195032376301570406654456870321186679374052396519628720126047287365713171963091801410119021920700855056847843436671339717612228919207384101906087936913483558934940572631308684202258421574438266216953127863402680328090807284618718909616541562607969535743674380732613206734144248402881367527850452973161825296188258161846266283007388983512347835454160413394267823779998974296693982283985479271544939385897930177853451136168198782861170498463537441591980677037322313137503911558586341912390501034251916124858499505902723636811266105652555359697185077801472959146150376414376127710652714903678419406971098954244499843819528413170474084642102566223040272821014131591451999022542887770848933218586023162245440114859892111191135498298963489981788847457334845340627801243965482243219773468928744598429382502580650169551986971926607840532294572709575027033813391852399280810385011258371327515098549103526103636061711496115660898333957424673515170984786661625030938580309216811685624359836438566853599403604618473907577522251089473397843927091729233517957235211562841353253151857054819791287932821882759734223968501072509592915079964240544995497348409240702893120213650826108532119721418045959237288548012841869306992026942868673710413353154596406347375718517666527069660834115211091560920985971360973926498234585346154170510529704720980267757777105152602546607447781873344879456454086690147274648831493197576321738881945758630512332957610819558382946840687406823242717571047102074411094590047842589221957439271192641140617784386277827606844595590139375025707062216221153849745848451988111453322844601348446052236345511970848559997801701241594968118018014316500838343990400990395067054387639983710922263995386806379862001999035794465191951786696238683326982499790231030485149052178316379912230993177214140136648645675884360573729331267890943150483299714923150059203346627330983605151660598597057454340843816190157349144499839547327212874069538960882283658086337584030037665888138450925248479258216198557498532416174626562885438641058150661233001928625097869793367780114202732151439198644031184807213636008283136693338881702271767230368939644163719915062161479771773376663840931899793527245322134083566549204764213537332470786539981011003912244778924389946945881247431086262462138838328832980787861561352275307862953445492111997017205952147642159655190483836261307211725385548833958593918002841181328012731578633177004860174088626183547404087163457286283978785244671518003719592491304605952313989457337174734787845811809108651054002484095024424098028126953224697740034514116056759792343196622688327464671118687534381785229104430965854824381709838770571154102249235066124758874074906249456904827509422624785523214065706052100683598173218738010628858036952818676633505253876224100408358079691491656549174597918089416558158284381237599716608691284491001654344428419935541233798661090896948192537586394060932041653828392611425744192696542642863967084403084216210136643828259126166661128301823909737361485921536682685359945022297740076263889052427022547560700550623949437986752717424141513740108109280365801077210629306119481195621043410271539071934997931734738369336053565143081711775256808027572422373451283294880104617625580500541378266978340631580615011751145975287236815752837510059343555440521206263543134567035960855483802191527164150621550917212098506947664870791808278097539801008018318535883997682540297466958133185387819928006273133218824652068904770747114881532095189904889822973183716832386036746982740481818035954635565848042837948437503202599746979469978937792517454545955679621184673493742995332359467256039014135283206894702393335425445761757726889476578229819706038441667220618078707576247269860004459325640807737393425149036159737259732094917717616358558459739751105501351978625269099866704808008161028551537547859536888038668204843573160578880083068523365594680516644114128306710754149764489327151710758799985114313531785379196083046919893182367963971944041880880227422940693814265455221563687996640927294961877655763406124468893750584329011132233568373887814263035515582904710636778033876018025427061153965950572792693853342715274443169782665775738727358926840389211339062311066837598287511418776227083680779006348469402912250337801316578645683749923583203305897745974533977313127661288897282413135657408455023686145109497591646792752343792268584912122650600460933537985746239812474597268195335124879909097855831540478892964036663451567628324589444628577251588025621566795795253923582118289255938194287747052628293906669137442062594414507501883199511168461588409243072909588511290591383813303368911015441673352281939529513576506650199750993489998338928728551016197685952379772077873774135535196635582615928623998420019492564785942239305336035509871456574258662587180735156529768015453287793244657371728305425871413330774289025919487690316565029578399130251943517604168422822624104588856700010889647752083789339864274451308411744097959296615490228148297808055792518239314579166607223922083972659692784558946583891195583345061396393910666801875277673891665490443182546135169911216334214359991538268956754083300911204550765777985725295881475347966203620955478224115271193788006711207313268881715346221009382954919319607473159978196021949713818956245288360215383486588957393505965790017667836025722690181700684760057010110502077984319918471775894647148898413888594036125693286644621977390580731251739774174292720177734285239079566708355051655209272114583442266406480715095235118198159380834871637425387333868291903140651124586726833672674379618248013531238649176093714658589100019817519592874641643158137382699626639917934169417985934266804482178091208836960535967754493963450409932256842670395964408581129130874737415548370970810858159616920288382916284740849653021235613816295240128865235394161891547957476216298530226531346927639608333246487932975042279707299021865061291898444393006217938986075573772110034685549878182123923293374712311457245796603562886078063883980895058350374322371820444640035664670550038074516796865071465542939410589283911948401535965881802785555401363344137209128329096743913035845666838391148803085103653223065192650008658230757813881646136374386665809224336975084827197830883163022242773892180812303143979397745450818906252559515212097281515404288330930693327240809577646704839493791542118394777238501801842456064365166342110318889417358071876418961866889619906723256343060589326842014801074973861302885797981342601260296521282969290540172856722146157130900551191255998434605172184300332193496508862442681609619767044001926582579931795505000281238012972011989747772422182841580000905434832521122494068536983907154818472907402895048819942451007522884687854460735373795858196363502387394665974725650708767208752621540072280272934194831214133311423511392039748558106822125551952944689433472660585905694110776121513957416726363964887481061435451362474144344815323629329795222515187790607655507297385471743061544312993407821132563675281369958849225652575489330452626986021007075555686473116599841943983992178413264299718257243352005258469005556533117069704717370946815323572399569552027665816097118882444096893329365400649803712951342068314988038586472810421301491252992078069674681844992773669156137619285931578572955662128390606228909520421077393549866041028235703917550275553072299160103856037348347997911480113549844626992832061754392892565491726850171988454495232452268760341935703599814910433694585993169000270390863653129762257890593894277157579649227533090468935761503870095214862555582048289124350970909618154799804864690979794667931826152543208918746992736814362798713926834019556565684048664677056050573509374085387608642960316347801551003513021684873299164625626849278506348106484836721073469501074778380795976973164629501960774200862817787666537419156192771235764002767252799511003775256647959677833266367806516916023237047889507404965443678573209282444203400377545538383417871774203677997993438658092658860099688869125111391729276621407763554553639154249076787452260943551054113295296127279242596455745120411753772225950395736795040643554154558090224078882703410123579884283571203583057101680632186515561286277546409436965238519948707244789908207508045302592996839566210383735514787429485958327696960046860785135708119228246568690046174977688230223059824777914498857586600183181199225580347654493373535459740594514686099955519253662895598174662694037973060516788186270707624766410935496079827040243109534853869178779414244393845717521824514696733064233594852613146392413952391216372957154901159623834036637660918901629844317075917672795511167235055768846050870899884532695056547642202329790044829916338317310353990723395253198797772762759577271129220421801923006894891650227517854372006112843738126510973478680367902683095603266626238374516989979083560024914763891512009795447790786256508986657413046964133145917877173019798533685171636193512617042360260160426457118568981063321023961104712369175575514456090943262867641460798146023827954699902540587716972053082048613487629251960343002368933954877773796470803649327399974384616849104530044130741739803487853073624129520918439262586442432462704975298431316198057883326957370982992879129970764158352942059860303087575815856528117629859002894785254847531019623580525428427157267208261646144003412927669228073732400380189979778778016151687878600006924340374679811012719752157663357455796906064666358662508239880063268805519763338573358390604381978729999556185541972713654864553306668221632665227064973610268042353095670281284344196558422872621753999426025496502294232295627585981163076503770336692731905269785292141051158592388496713111452253810051916667857225334278832381247655593600641306226582050558676246395529185021109084603039578808711472158397509160753728781441182959881993869450055643553842760352817119739058940098881602561739468147784690249235518189023041360871077485332832159029411366871976360290712663498408523122669996128972879118904651005848619567551274577767021426541561100957606436760844781238817362642780772484225100207142938567410694391467286235732682612874918510454308125643550439096643830743567332622405572207394166730118784375050678510676190918011249017643363705136601846197869764279851373543090043688143832886072670956743386207577634225431317352294606287473960672807915843413492761348127537951518691819108858154286215349720686516727459471213740346445122134649264193317044911948609996299033084861905159149516900390932580398434191684242436256062940814295009983075191350254716499600399815889908945112095677399510709542426233150045029683899675748290968502836326054528130271567694513153887869293536875127092037298371324304699416743141473606257089082948045183506246538024309998434826170087614781834213133162820860718670736842957511025350130211044577013809639641520363032228673825435168043430844973503307119437462556826547909652026397728999934612230627157770510588988349267034669169673485352780899597599948211825018951593215048001076305451155601886621504874337225780468054666244728701835561594902345820655099334742530690403929000922851784042889429315353181959391408891647414867481681525793911089179026552132795029757987076197221599748869573282622675997264982717890880841995674609854716920009275792865145659620837008013457745317688977200204850634104251341671312442777812505222553430070127973148011563966333455941956895337190287704459971212188781479767312034220393227149368975219973041813782550780049908934413479801384678305771052054112055667074358430005679911615588002780380122356548660368644562324998935497878634264827700357749211712493342154257936034808015513863805657128412004912705980659690607979263812973057580806618048653344545703708732075501220833528424696152794898137201095755256967556809376116782628649769188227287780767008871480255022164687666305433326548844249872754030360990724285676011006875117542011445998656833375782600651587195639869715714010903970514318884492770618053670511864872859818383995095473437260738362499737597360829683881332300237780835312368222574618471602543738259884080141079491128391300799065337435754713588025892045864412988133474228605238248229549833847624643374098758106417599273205275008046646032102251784450204547366872862164822915556073643913912064357199924168503931662887909261073428550053651626238170379701993710543327909875934455849704260399283399570431873120960836146429685128826005511604453271430571307173642509719643370598306467681477068142092071221634534388330474651816783498204025256141020761890367770825340766183561131372935285247273402112193603294850984844398934013577429336326990938865511885788796141267826434816002817167376679098855748950677230051842581889029313405044427290893226567702042954666089003718488419514709115513903727072882236296506178160196035530927384063898767461299851471475011497252780780263531783909473895097384134933924800571026010096739264727518406759546263043330212261705003680727507394547814989267726041797155486950149559580598982553450150694017050060425784677018278599874518662287350762584522415404304380223017011345033864577456972194764942450056742335416652659382940624146397021548709666010829354658403174111018681613016236072709825890811401990255099405168341070890250347035514808578791314978041377582962772427151869621066146173210782808483616860555207269433756426639581376238956981876055434070088473338471220763223760724543489260304663345327304683674996917795466868103042561905724165014089287041377545510801988903469045522262724287666358717249840953579250885964915969592185769370555811865179666671510433775663497252686322191510717283342420942053074731412761342591514813256361816067539225663126712938722272870623647178589122660887996789474673375163367408544330614559342376984275895326171145625697524619488929810251958607683987353481741767149983419266525091566850411533874485891981756149809240013201060342428777511140336406520077743065625145783594047053096530139752974466985790671011605059609017217857712079312612645018572998612390170727419878617500969247630380211398719500534167488828935565299338151285213564392902942709934036413764227398801580974039422462563025186192979031105250180511905771267243031620451907998022479100383623152031474839032918983517684791890870621836872118466836972082182726627517767472461259693033289335013145983691601179881958970099898215869614049288257905281401041193783866625895425827179488288830650123600436212370844154596069847811400011500598558677057555827848640700188805733270630946671287589125573581524193047178278234476195843323359055824498902211178537712448370694860143370535769375911946459037518275737949594647129622775183556732385335348692436079164761417356038523619923513083878361951498385030921023016378078749332533299340643044524084418405397229756190636003998906851180458868067342336906919138650231326285880779464038313619142142501566367810920345582625190545593019543527893207697326770095837996577413040679963895446062872257826571255275170712399906929343632065437454134615938788948793585786478158697473032750144374243068296962151269919123569649011190658329284642756174989088904702309749942999561504820618446280690937565962277997640141267631527907860015294731681097192153648645112698307581142712005452982098007843505317166927646975604342585078620718802410101130816202786990273465897670403738511371601297605192324335079253825009135057131111895674426773892090664572602904634650733823239531984644129343955753358952960607150186356616142562627101003250333949859396721777767502252486717270046713464198419327738075801711227279592274880099338410416208767667447700590873659574578329956865326013182122397488370075397569392237813272507148291677242869542187748617220853552208830232793333998166048516253798503830590741304824898495122678432224844311555827267790592611877656437104782222707611519515889520465257424037454795967265933587408843359658785466369034296998156962812947408264942825233809903411483023164890100744705793718091987254562404188136279811231530385653144236897888580611654006532688074772949221043576069131354493534483487654678752792922295173023579396901615997593091325597049962692112897142541185905236185423490753429458170308727800865251753604429718933247326930729259111189858510889486022755758132348177813390543456777990112505237738443281633357717387921817603634668319117610536347663365255253453893230069301377132611997782031664918253319267816290445461573101893773003048237908477810028504385677471750760874640829114747600877708410324713701511127744031806044369362655670048120451143539092546328608142970360947804481566734966586563489061730782530923329463739830978344183008857252036163277807783679551458927868741372111390630815114079282462847935040246560971917896511137110942209154431513693494522211095994158192406157301960523384703645262733539511729243256318131594696186934454588607057237595054651583083559832626623900373107562451838664152883560414568367010309263914958473654242088818190183731988624935927920721484884167682462718148235333819466958589829217115575774310411986921257759590906393043993290382568600058435299502113032843809011240021311417602405418389384268215366258069720334401704940595048274436772396417316003426061124434932053002715267419467834226105920832287079465414434756086287282921669416275704899257552987088935530728146477728598080675023788773958622297194929329865293097886167033458797722813074012637413904452269683214689584521046269202100024679949468403442696414057566404920897538405036421383356498426904323418115526955127010433761981151893152974317227834984888441762417092615712675716102002500093413452248340855127207787086543896186136506346598144346070804088519528455345510205774531147222710857880097865696632405850760467490827454794569281144947647333923744153544302207245306237110163689250652176049966382995974747698349213545321281986144558668885486855666212844898296743237258674595988844488664906515755815774088806353494360823839939116139073829879594353879578424485555921255014289164136217138155972448015297789921909850072301296790661416609982993444826631544558520232523671362512977112566251479058425216824320197609996217191807590468236930036431635516380897449089722651078521389788960712098604143211770620972946944129299718088210294044065813742051358145363848472174511075821555013799317530043675562959970417004842457807280371193474471278330891838831743115818162192893464756328580240574647339707146111302845183619367552012510445509847172788590653761128733478303882690565230613501618534197478402403347800456770720024062679614105019140073369326079245644883340247734696737077153322051994447389722956543889781619098310095141947575073714665062968001157236935504413146885536574672331513940937586285540251863900517467841813484438743834004344457424766497182993143885108928200533822892869845893816836544135103761449835004124124277003395234934991221490338731531664320456144803348192856778022731562476670283565512011808070756588132036850671670884397579898913387517315352408718300449026169695288064498139496722835669635623978316545999154147177109064205690153391680579199054154619056015463573387493026181726007485356725465093302484911807605522166637049058783947683412429749748370194827190034438354361585595823698812047701159804965291684606061417910435379410915078914011644827634775035942461257970623314915860163231485559320314498172145868012773052870694766505956542018053132278298217897953754416708159401550689951846500175529912573011814212865679436528285119520026243180313381640026362127450049224326463036864184705069111562571837582434198415348872577504809644188894046433787779584329351128012441710260934854209112005403975310452181685389178153936166240512387773444180999774807879020718791690926956037594307772883697051189876147937693838656913930092400801518377320982673716005184708001417287205231055137464146411623235751075927659991121976141175614753665455708189804024994567843572221438954291388567834268140129651053599266980184500860150250524351163499966681073451454425389442250596294425219683643442755898035417725406046345290955177484817202262453822103609326645402633699082929753637316876049208207600354258604259993163744377681120517906008821660397327793777752819852221983245796915304615974671594828438459379266624631416719479857282402127616980045993322916118950779592572964439233791438443723878216766109634486110027526993943630307586360733288976182670147990921264763046525873901918599669078844293371549156485311076169949304513612948513932470948146815904078820697244122130952602891891663256570844437357723999703179814421510843967502183704099578894091715554341447911848098770385633979035835748661605719820966897212208139812225923606631241321911651456954762545623193540280509672267520593967638739700798980329922987262066398686173811773586808805715153215870997860667417857033845477033947520393198247708115984187541632173526807420783349618365537319832789034495460768359747702872607729907954386935651482497491083817101215044529995574680497389267160772471891162895151020745724872828563427022085165816746792666190393433681618634566322886406615978062034026808160442575442946523752784389486318616524555453635815236993560076025709328352763937460814883482196763086032063422565032364172418400364175951874878704989119146148165086275862281985275628116785834945315932022885364295751340696162750401755787750516479531664647288292316662384145928399585637711324118669002807239948151821197625175853791477193022464090586095210991058429718211295577961126408848578247430149418270515113080367230730556280795273129555765548151965277560204922633230834183438241001280072313733091352567799468230409986554835537611146938327835173193912147850714652016152579096188215640257604670866223271348380854612191699152420034333826902236536474601251789852924479480251492788165004079992334636654547418970443165143367890320189365024767450684008493443754079125834082029486072604731947893716862559320629060127744450358308689196159130725507434740582344188058725942929333385822310572312486950859795586915427362983703858654715664546245411338070969230976078121137028334169180500336042633696626599104912046515444543122916841935471837713448663670023762000988599945908722239168051339184336615150888981907609983965538636282913798534366618553241920856235714569807563892699152289862533867123190707032478179283486322134222529248780053819262232274377576375856962200025300643587640815905627224920106196519416731403164129890785809214315974598589140741565602002652238141501528033598750921403076297150542480138256827947602670810748974915942970384425688833321071248986211998654635311870001536981350028221491606276654243562264455993407672174389950587075852509262365385886904384736013421044748805332383193694555359810082423012594377838256197879271389611331536682678961779478354729511943930510177331494076878131939365370453337783345125692713022110823684821518953440501209650166300105063580331567378470536881704304348107719422729191803340665997435605760252996056778080416250372333273422737559953699151157634499152542020814399294174949940583464743687524811308142027300671699747975946087650041294443749987288311806617240693284500931852768193933840402553743237332925504454529142141596927158757302907158658787182661773248823914280610094200983230966643526564609004967470978895006362256203787637867549985049399982808579160961822038767505290818962750825700391750881033584839069952209534621356160491211330045474038063977135850038433847125623327086455175034497125689471853396418468718712061388606492357696629020355738355079593612392468596774004971708197489856331096153465934966513373099135190054250906734834430348996441436781626750938924810112140643578147252352760007577053128426147391101256083987663171653445070904844393573786831975779896842218233448687590981603236384703811658412897487156405955180229401598189226080836456325031989633455365830505544252169243250931730595327606707187176535221863889326212510908508427067254191733553087022433399554394164121722632405479126755354980944550059025984821222098674318673906079042124724967491744721722375318124239746330265275299892012286734922710682179708546352657920945376302311245363020837017986515368597782308725590398844251088935304979287601304171406667489071188605658667821669157564435818883050923724719841201433513620329283095052203737326023279806980896854178388814742219658065277191719625630499201357914333640673285460876106051854929805744603171492882623077751246606004823021346676369724002577668447942630426074619602750646585049959404448738661291141616580968167603415306330616970405938242359462215649387129209397677572123838417742563160506140660995809682333730980484106258352949264654465173048550043691528853367787332565523257043485692806749474167373599919234942181859204484810700353788460876159119862629714795741578856915698269606445250451037665373394710952681248370638232061639310725531646888271007547360168974288349901131320042898913314054137489948818420440986372340840402218449484020364933274428088967963503127180181828301236078894261679823159692250710106875873482273913209304040816257202203787682909511164791385718101611640187918563655003644218769713016658943969444987479267443430623872596860537784224679228298743883475451696846806362967769394723886794147372560919073083954434211060639730006671089508961385270163300640391000158821614548834334708526578476576649237277346826821613726533337623179717729265091584680872541074873111898117476817805388500400490186345591477812861238097081846353367253233191436574823515778679038356670754930948228632562114032031839561746693189717487124834317756834532790229629577641979227832199847406274696094193748915122341519234618128299683079462456167066925067939457714458406163320363514177827285328646496124314741927964910346898602053438369451650847196619521239852095621584497519114301061362811609120198100819878875250403625085390492756611147816375864617592132126775723997720297781756519350243020584199046572890161725972544307220694119077698857681332694869495985115558558215042941918253092777082256849772277741335271134221771468996329780540274659772180077850605085035672835947407838202312610840863301732453299086267500307544389873740245559579508423807419581033897590743039246811260855398545260924553795426254594529727571922528245191513791963293869695334969237734193332384345665954243286569772748166944679735087885819267481004442637083429145017493376075726566889194807111207253659118852577212708417528982852730335687221668934857631146425965779379645055240089780109296190967730942066662335590848732273118002715475608969039364235523805742695970188754016469585085336299044647328301701746454622035593918219669003529471682284522581839376890046033388715477392267995576419066395659670571153480343847129312911283811403208297366452394367887883509495387424699174103400197907344761277750220522440358260735574766961272130371976515603342972147220496490994243504260782047908413497707467761683477258659733340962701969174990829036346228139515879501506554704106308770189998520000178044224840257169557796344433300680907596886738530783405538210427168497335725978214038419105672759701592095994733488558408177876223947437525571788452428614862601451780175209696949942363276347932820672617510523333572711711224045982872943859260724580395074532704217521897873859772119613611934910996666805917256378137100218836506860106723657941119324392875815670133282101800229733185012933621977835754098605830545056639827110514225585742630953424102688369671637039531436233175902942188631898022977705099829569505647244886808985670585025224241215821855157919655742356882116119058648003130201083771069589000762905486110038658319009845238058021394770256853412009516181330894102226587692545825592618224688795787435842084008093302899156637653335254786192639402211647781088013978834516959902741427796071210421087770172268149195152412145255520509986748764805852245962967897966280464248440263597504969893629349697324955281348978855807299355369183962637458706874073482704863772363776435887383643680554150565013469801699852381697881971719101899806438186785665055336013542536395143628172415285658831765442307130654459183558776949024478550347289991372760152207673544061744250889019823021873923072986020404770129115837063939636019941164270154604366348757953726138647314916430878047178877130488558028466191476467349666780435814401597598582878284428924585598480111204228608682979675111126816352476945777294664504929894060210556361291046274635749789842085269831605032259596331385475755089599047304043517175101066419939619905782074786865223978783125196815046579274076913914815450647854442716219581838626111142405454678918643718054014752729880592244692998227520682294084345507368330677180503712143076027041025697412781304355929505754111386659501833790899393429364720703017657742249342054708073569531838570463240782343003782596320526458315379729258476219882324980225551938927026823640186565152710157322107581829365575608984360110696046091429252637574100007043770063447682723494232859216398946495394832198234760688700294893520978305104708532967841578407102191783053926696128811832226557845413182925630407019126029249917982229362365084309467168901352267823848343680951630757361800444326140219685824247018001639456448274340144445763552781885113104526634040163754781614770552566278378211626712473788526829522880284887757387929865761763532069990314320949052755127953425639420821788293795543061352160852866698286419525066840984022950736703182730497369535558243476400332918715960275714710701583760437604750577064536237051711886488571433705422320049096164744976124126323624241565993252441199406746215727832910118745240320474996294087660443813957904410963337853764337528541184008549936928947697236310548975939178309458884869005672625775938628654322096992793507109592573778239971441064860733258408688051085807782948180730703730507298677355457473968960459549403033977954438139728967112404427334501369689538843297368943101812743805855804427035978666149091392039284373635490069159973179424472130020915761685564475994974384109242888719467445292057736720812940179282318424368085292877140581064592352040143752515921579116858459747087557032082635167988684368514260319794883078106652458376338951579119695165150642879959247992050254425537124635813368726693643731222472336001932586906241676484851323932752832694652882707537524394167555631360759193944814130943606277878129966285555072923249551462471429062726661267716883242344366309743500063631548038888677061195823735228514940887556186563242663347662103949920411821024753315587057299027380679766040202554291074383278747406904096266010600798564991924470399586725231252166643883549261533879122794667727587520205739925548381751764098383770711966999040851706238916216208198244014289144143991166936148028143778544782235694954704919829845938364279484021622554548895251236830056319157924072107278467475235965668680381954357232233658245161939474361103507735385785738048307326324960418458726869478020118160482296821373456238107236916526306247634267897097926145681051253234912489704900827398349776740395193618182985856731005403514054292144528663126150527029660163224447383067021691434511224810744723372841492875391467652408620999890905688578267459153397665999885208550508063972828057908641050520543150924097704068261312227960107179446529006296898546177194537232902824403674087947781921469031510109971058429179390396963290012731482171778034601829109146075829848341264508060099021482361988911756780533894024597712790779269933765133160018520620491533428423090038630123508508896035586731579671209468539693022946897035739165257815291071396737883251137708634901674674377275893640648142109602454694119352432829108696119113097317787439716196297303374890077350583899604469398092820557133314511836643912735311093502728074063513953114828401877084552143247254730041978478061239729938535054701091206887214374269956442958965907349885808567566355492755080701999298382909836186141124102613614960565860992299867449667042009539785735250992360352254054878577556771060236376750196288418430168553307263318159898211878027364441111793171832277756438636197013965055458541241972398389433905915947287773469748499203814245558100314580598837242431905228073629698299832987401026827284563722333018927592326098231902797862944584225290463336346237595446321674005461939981074493022621778348799265258627135725407201131307452808463356566641994992886443797654055253250665988033966643950692135962835333596289192262520880906069486770522430733172662822936183660456851081196639952258223561470798354592868012663388005544693486709719267453675427033395436924426251156772225783207830908938709823481311731260409481259825543701519566389402282804427975617772116240428500907013649580050032928197073087342327658289046310982124807588355809728542426672457313633674287868787711223195617287510271738083436427425120703012246941419963649282217925810930927990539228337435347933963641185449602286731426723805210868825971396534941150179566855517567933597292744759007044541701691562208103057523533644369689314699354789332113656263574618530443546248945085796427613222789601722108556489702688088340756262724663247191560793238117270837267318608668275180996388149351168423917029917445709576393833980246781250458738403643694414142135581030551632253286002063742670569872048812581554620048422171590554109823662097137755861765218344326968251919421840423332247917708206938973879538307872776457202655378075134434412926543971315596156467331063362064697503461961745170557122519565899748065129751122613052018617421722375959866563794679860942042631920186105438031381209011622860616315101451914563502560143109279791882025792452369370846760179234827938621196902497850785629269780530697348733464232962854625507052312132918061902441447004380470173233862191359445944713294944228096626432149265300334505777858043614866078866025977809407629093445850846986978892771417521790313524699963318628269567412212425603394932151843435815173203889258902765519238635718827619225532093125852423650116406189963785381279990076024023393404604466387608335408130899385782675171670875530954243332769253973070214084047379969868564389071766872939904085294399071734262980259894402847395591442341408035698871035129267979000192778385011451458602372299743040431421218226772022287270431954880099240142705532459020767803063098931887529844662243140043056865791048373142468967828151892923157395544894717920772594230563975388531424492330564218551761827394749729214265427733493645462542425595622154870927075270135352368119746383733484206385536484440330218084618633525280392945940775482266654600694671897490633390892361556433145000445998053380730713493001756148327439538108026477686555706547414434402423369320551864165490461682933796026807168415596524902141829622588867536242350732581271110953778901179132381756423524134859933758373676509884874870987699163116634228905170559204025730165333489252642292272626071356852747050383806005006963218876516349370162684827901120391008469765615011212783231909941081460618242533288896001984460078341977187292641410181489214360890436672015643006002923726379252866216170269394446472414945526584067254354954114197431529252928083265395849574266467225441473970001944421270423230489632983106262203740351836537485431800351470499081328487035917242736651176126107935495446910140688314607851378598997684496192091330042934863711875057347296569156882531863017798590339397385293418253278129424976875977015389514736513687996573452448592974837343705834159241641243205019884915746647783256691822931726685034067066738922852829582523703233384632311045531746005449256358395337208882637218466480295887096693260443521791372151602041233454397137894924867209958283393456692718500808298017500005987859562037998677173428260004238106669162321069374413511177572270063829408805208012137173979761818784374826614737167021124605718592073605502310098052980071455263612293669297958075349235452102770504388003384439783153282981202020400163789343644042918990671015396800611720737266487183289258018097750000506828691378136271712843218150247430998948369670170295529464263647183265932459825895909661177051078714457339364682083012414604423852551831051800180470964796550010950922693472387970038790497444836252830500461282490005339409148574279898414493339004960971354637175274298199183706764189559010838750297504263133775896230080998562135120900820538850589515293336114375364759485098622358972759156291100320819105761455519363862255276651038810550486224989161889879172451983294999333788894991859916839533071172870729014962673713066134373048642941785532701595182443029050717465922707280829414355428916874808886519846057668730512496314597719835470227779369323442461570828768315582662447828246481339775920153228456062682970898930446605642777294354848197019365575920000528029874797983867458473189289123202472678400989234387205705710346294131857492128891143503379671859427818532591745505444392535636358640455601605737779512429540247076584411725550109400888857037809210802962330334636710434641083689091049412087399470951161186142051889743046620861012211026286622723161312165472555945127040192108233266962636070926537155631560489513538736523496543382141080309016808647751338208080226597462693006708793145058635243984179394684167229978100035968833984983896563356741343589761130448698421038729708097093582759222776365410918743837149601150349752964083873258156922708861592250479906592291980603967846498531154612824239276209059430438403290134773144261990231471519607940117180589913056747690692604953856554885740530948806139393666223828653399929966542097428116888754777622776627559497485835906316693481051963040472110805315075370556584863606157118659156624413621557225489736869042207886719111172579203198035407954650213566426993697056667777906043787436101759963732313140219937738617945105304911088376627082807821437508886730022242455369172074810746220202105061743340906479445572366962380673933583895805619666717842026959090699275901675929085304080826254714743648410016679327812448728514599492958741054103692179528661325460501550370153047179417986560217709423810638292071526697763952652926198585966590095510749472178343519287987561191217978991250292416814200197020072810659288797461766277811821666360228526167522992351478485037533512365471451630514230641615369186468532569578234600907945069370189226852596961894899818396655801816353733048707473691606577605561135623359226568128992335179163768203041386443740858478389821601283346808168867709053368526590977259621973864134835085497333942540582162820023666732377255755266914495543501256313696135475291500987601080179135263820094785697341373497441462128928722995464157356318347792605884153629198421014506006783238283442074366936982481006942506705818011996065751960196718848541564230301735422212737738479144365888240781053117861552422669158199569853775602165698049392535315242070978601682105062399305291840616963544789708631189047231184453633125264202807491343389051648307661966989530319722793471015273302006669901316707313265178095326939081457045011999223464597481140619103091581411872292166020744517774259228356916128729494034681351838810011227198933898899002859304838110451003143460629694284481810252382771025932722123541285533256785389770926399800163433247924926246393290658634491098893579384111991998440505556662840834609999763375742439181995391070726692671541090707792371746437243632586243940442441990309374458257803540366063078425141882148971054223403588300103194479376161670864048931265261875275798672725861184142311440603514558906792440707646782417632686669821468425325421789134427459408682252281529976667373402313573736849411635532031574875626337634559027850982647545947189228745882887328710990868838850962386260746702980830633606148702408048522145706423232965930255792987919459193861009548472590613959934137556187080392101643479710128532647608465119457786218377275923673616591105001119707429659406725422089847452853587561338490155609681066605336620755887770742320136926346943488417488724893392807767034778210802545874329323813915558741354518164729469449529864230056000949344851590545058636644246442944794047886602155865948162162564857186607692270253610702855116334396929404581870642361698831575474142441280267981652084639665880022442068953435326039323923268749038502037517964778867461137367100555879584346933111464762542092163925207130398419377997587659879652638952498270818497542968574729493332427728989232865391210768708358474942101885788896037998462859928413842470690533810729838672909764600975833228646741191414188398241891045951076016568695564948797112647492300847821532680248507632152203462358799048118193829914521850168633107669233170182671216569361361824222338390626483006341789857928810245819971097388394733909251346364722947383497643919636648762396989214865483089241854462914984809423184161827061449771233961318567395823862917708786074891805704421662546540031477575185218357637888553117593167917476483229087486716900750087901656789110008581565429340425455270507680788874077063989814823056783186160414689392483031605475542969499937524073319962981298253694600525890733129381432393836578867894951748781091341851985961887813979613427358084786491746398148593784167596952544138541870245946132793913541383255946771197641794451357124768353268121311128207306507059568316231687672488653098321558359360349464203540258771489785502991779199452736746051371017849914816975897159253673959381237065346562765367098148645921700475290841256206228451873074709114938435825591873964910954953750689354904052786862597016837301337416044888661094825799559710419495262592539601978425633398063010612590180080854061698960045972919732030855297316069935823903705616001362042242228549261636314710205006728090205936102354664233743603251638738191622990818149442214374783561161985162094211320136586816823854719315667032490613953952136124090544575368554203694305562543751050818263809854111630285721641941169430757756324928789900574333854302789165704337158418852066722758231212012567433113491336769400669085542474412836460700666353392285643719950421859047104536341814773078684004150055470403672541764428552290587582015427124843249359262553129489383157944834783419766577195252121985688176493342229176069902405174126431259093104243475389268978269690027569351799656077093672858402480007756413776153154998027565309639059231800924495326563609258042240560640548303612338347360689484893881212341608507571698791057916941731660185778173000826704716874744352977705193045912912926434548108967627665611454244450711600422692261168169076764048868480700383092578303933897153640024634799156825134486518211749199996678896586085684830102702401720108936863914544478126132237619767340487248940084980407842202026797527634807722433714524073554383000305557504450124196248015396792074861154134288183412876920956287554547099000447594403327468952841954056692597821076125168627718739576423001878786854985327306506704841736456969564214835292829179171008627000369770511169318297577437602111698004714498957800226624460524309358318916129025628325160935122457946596483594933736886538739916695152270731718350339834196991571874120734500562114726208460087858057594995467731848309589928684426307135050970581551897294938784890651433814647793857946397721004500111304696181407633095044923704058863729103997850294977431690180385133325644211062139259518967275563944254634459428175665851326798599542066848414047430581119528537212096890596060020760858898315912551861246884376841758137614634722159867456939540074047368114270091530709777953983338155880802302781031392519001036994828234869563566108480448429725136017967629299501949038149494795405769432797331167670764537756804348132580916387408423625730768171725497533181374737596843332778009053881536661190846533830130621347480808060809697824651373170647706282017100205936039967869983556828593211683185609607963118686754063127176025732849342374690018777428779705155071515966405921034441952071452890369861847409384196480042296512820089018496166104648889296796952953007700576063574610738860928910053457143737617506144845831578122421179150811741938133348331677791876031186692464050629309872812848941078849712832201887548719037985269117688538616622133208199711659423428744873191241650963462315932514729651996775949077863995684565190854463021005523584848729344612522370024006817132630162659876921594776776839385315644309408600963876427458772445366295216228432065840186052265238568308986295028962574214652095808735059761065671843809151852625509791964323675799062308478859029267292064614650734633287593120742618434795166039408515031822269592475059793377989236349462089222679151966850209398488208112898574636591489029825830935332387153939647552562607948106657365488423321317377572180265432723603793646302958887409977014935279557916079040449723361619991089081062213493075118480131034780055253283704800960925970175449893331839512075372539254499072583161355723080997164016506935982221047189723493520434827395210055833992809675669961129707194154638428377126745200567773863588254104571499691098993783041822168815267995669677202752385959487576516653450137678003226466752758040894027173177209936465728845663097261947339032742362591691852206290855645926165222797063733899281882486466399924081850131205442076790292655539219732681924680862581993088812307879098191578056723692190355142747707245293124838034313586885071706574016197068092635725682409674347336226794225790874125200116282164941440643278805437007747954049533180510791152036204049513455466625915282361839793663335166912793582219100655364716364613423505786923246556870561191416822289180653078259951934622304292479197749905542076278868776231905401248317278052454726465817978637630386054170819461423075649097297117925630299215344021073090197605181732175665448625391358154004321201627469253221794897431758200074469736570918483539162965227330115246116794631351615267054239114300730032739382516482923020135783379793061304225910199422971574525271173907380965315463438189154616741861495041977172473455366683145855264770817384355426346565105649696150535919674155572429912200809365334498418630072153947277229375348000168455102596469880752701249485059799958819048397934523659447022061781216571850476265325433802599004579790391712733423804941168433418803785120367048732224115352917028131332275269302342372897581733182676118100163767645190070650445486840619344725578650870160364729434962193942091681679852505301546230051912161605967317701431343694575963188328409100699963897427305745860028640288599684176684210819608191528947100123867642799443755605428950470304449053793980885587069220743829809480634342065013656549235840980864542799620291879627099452598072273571451735011355099468543034615843174949132421189597109491370122078808225594065003767812108756183926267544363934328628993121589778003244534555555581016099319220019487995565696231153204450788633837839576159665731523697312262493691477795820780803496332906641079604569099895710615092949153574004592714807489630249070270890656083245937460258784243726966285459209411165381096076063896166644656603608659749736559363792684410021350017074774975598596568418408313590192344733202289927062798391097760900544627459958576221368199035654819417262661850800736231009131772796645892873666202082868070153110735314944125793723583085083651856501924044667671058354159474625729853770964457936439173433249585885688405841190121298809770745724698736417188287105034836031746805693319952486768689362588161244237052199372332746187646491356041795775232376171957275612694517241806521090222602270340249835530168174160587164106927159531459489412798902078845043639494000524505666034614361685855034932939525448617050248382080912086670645551012306225696056540774894844061406130678998911405765814834289178643059253242030576705704067173873027575192496573888735639707882534677240717800334005746311168783507522315673506312410277609924176282141250328377678142898186158353500083217218563383234937250727199135982810540745061544036234720645891923505968256940369445494766765843603403751812018894831285913618643696804204017424961201507554628465846902215100822963210852599288867727236055400004484125291359571487617791934577482270841160959062108803750248002140957754015808352460728877827705677064918838231463884485138198743780315612712379250204372618500403128686654784542431374122050657352679064913866772013161896964660884412673068468164440780739681339758617831767790640674120311015959761896487198223528545932119905947080252260643473769346243127335964272921782469736389919851914911608071479065623371128716740310029022775513793768013324423167806436515467983393039846260051232261036854987179290197927311823401894146992597738155383500593493393654800429387905091155921318833255677031778572474224965839838049163010057005847157933911792734858951778497023529425270143956034353382940800384115912353384592506205512836893516211621349663665969201279098267164014320557775282777887566384320511515587799208557104811888991726351786466494478856633095856814478461430247194448866873912006295113764471474203003764837195015197700997204356681054400681369196506568104543624333260437426986859767521068219485334289290605121649942598259711246183951880897047332701284530785821284368483788820519674252095519547078144505164974101508359609047522977866136795308425737102064428101267805670107961704767596818323714391322209544483271635463025140733872181587529208212762070377615427587374854329101759420229861122027871577028088852822776031321738386965754917107572486194036458581211064715165669965324628084679083920019560180317556940564510682315458960821243296207439828675150379217223343484611739613265293262143667002332946094871388570441407807120521750863933349380513370718353583356509737113917916435388901886154648726555117433102160687250308790144472296451863778918371057627384547483650487580767047156800317772063331943760061709160828438232325890147717919535025624341330025582998355651930412468333992714980965445779887978606115318709659002502745444139146208148684401952388051966050228550426223331762343555024683518319667555949691427318787323360154333025080166928079160017957816662991485872179754954580702366626835858872164553293681351773153118540144248159575399337160696005846919808571134993352109166703195673585070247617145176683703762385286525626774759159920110299207476018400230395316657366553450540949972883220802230500598019769475492616181347801137658012845186698965545435894293527621512101227615459626546712525131881951506397282690610812943792894418522169635596672636431049512381123149965687437112917824619308049852487079458329035440406842016778087505871359979512579413995311667589455349519068198306791137131819723852210137856736373392954246876397303991648871903416862090129593595664445738555793725107463958921012855408181908669099895548502298941468730600444773022700505390226378299463270517576607325303251492815362068091523001491343793215561339146455388116517115187068625475410426248259653717576023473699715183276101312077414388105436906368793049792179344429247028620188868834367560068529972359613630706580945235336710469961759642845994025644468312397042580185347566988925510954956849729941306536681879972213705967524292410185147841349753897427295708427127435833179289067286664293390862542597503238813822416758080205658071621974163871945589570559277531260783282434141697237979566224386214887817697438036414334145942277937841429639313880150990402290355848450321646903231189511875823234393841071838886773338216676727965119792523763523412024912658590176044155046987905033038327726016475031035127333100431887465178466222245841461631374668866692957309970224314964065476020709605168922912239740707720965794911882158547502701422911048151769880467603690514371593759366935505704058128141951980716251966126210660621603705501033033887229108625855284802738327010025482629782887490338709584170869827178195338737503032500525132798708036186266520409569003251138917214841803827325581870252094276869322287691273374421952073215699809895295158498508331187193288620746818286309675148877598807334457413924234655989401070975242271163991099354232337533450202199513937476718708914223382655049496794267802791280590456410398543330743968976936919297065146641108000853913870041660794552964121693078260108739173048893756441625424789280652624855324111379322660413692023658935597070764038481692656467901783285418504857776241101153699192573709122160906788062878110698163451094197716415371068400433092597829249716207681731399094913505303676852992521724427347344325782415796371802022203637335164996671273317594154314283756133734187181276470977400924775530084474970828346353836653943869822130371090897382289406160484293605345473377742493872041521362910197963387019623414475704604461543995779148675286953252759701960785443282585551514160473983427338795258848391801858158414289744834208632311420970687255324164071068228237763998358848432665713146290632344923855788613606441507994569100703324122621751227218986312472843655479860559476288645236250780745596335923025810903872217987080293739153941885846830169984276237637358347204934093274600136842289538087757486301916042833660094720113557751898127904347395093834319168291937586615681290600614445122985514031190985876883517718307209245580481984081961368389702469350590403989426807451759121002382465389288832045705193992852540081458803447819770635766864059217797526495880356509119221450700535482396449112351104358241958585322495161706715766346729182909546891152602528698973218320237887621002032494146401881517194784601085809808858016238112885262878480739933419501505192679779156924191250881253300584856839788784537261925497325070682550901052692068965166952743776015553112172774388907564583566253508670164753455626084209283968286686352818368531744121902322897712536754427877600505070213986177410037968978086374145333698306588677456308005799237194684728637734454839494921619000147015696069844463933596255243298182765892030484215809335291927122013313035898719934943479316231723706181860868260517264300999313424420847542172967262734161853228410446774541056854808719931116090005440778926309527804981440562836934579902135193692838542798506489508627789180390084399862190831259943567809343303491712360726323826939482059483357800577765993850552995318859492311063133112111539911035228838144035236464507959663830110561739423765330761239323986606535654496266487298369215072353812057588615763965540951149760739228474790410588415331385371711959813342325516653024061722133096842451722509832520855457260220239372762730385656135798547702444665353791447747118093458822490166127728010214679778632992465955319478740828831222611353799329530154848999259440956372132645599108765386014905272837682535995664031346971571197161135986343414879691420755424885903909576677071285845610730166773203120975643803117658122234540295610277635639158980743957978572456753802609319630637716728115336171568516931038270291916726740003536968920355551723683975505945785101463289533029395015150372270709391852987189084049357774561669917271745412323347259457751393156539856293868555036512799602967814224067344400601280019584838506303726021879939835030134446756564373166276702821799143365667286732242820014551058065993612226356256516123681309941710099397277640967270349246748417151904217590750902691656307336274013904772789817170144935872047204915177974556821202427177760384702849354908514579709160636814386522561725573899424826786091773754664033619567122763903057375484673307654969471221996447934270584301846054072579356712489254761646993588455319709407586912913810165973617772101216032722696658961643375930513826754590446741466596619808031091536741056176712206910397304985417954396454082089315378475064961444600452406759480443898065160830522529994511802593676758278595933294512344963143117895167233664505100181117189180024290842834837842642292018774346344417319042151416651762298020205047974599587155887037464806362545505651816415368913624197392104888276105762593403278200511877574970112784941077103073958637945001571912491969940534753048217109029501618919426180872804016850018470609587749718204296170869400043992157814738410223047806669934125373586187802202020527820860740164591179375577448398160889868521211803250161147243783148918409822957108480858548458111405197694825025900380148943171552112403422427993922895103414271655496072955724494730463742792318423137321689533176799071131877792914533779012327525521402720502311105205127422951931403177749881239133384313360960613678985522805154228033644249307685829934508614500812662849258440320903092349558868576451375397212892315620405576007839070051046482789935297922919210135959565714565172774240821771852712215636047166457214794096694950518230923894149149602336753060437298647158469039500715674287886380158116658499976792782407779702286660093044574753210629719352348027480565495803972853264060182839657824083665796059033638925097501406781356530442206192765656556002473078978203767700125041581419031269893377373230083027235358707997301181618559114945224757276844436536339764753316141104302041625664077574431767573632552626073873786436461750435060864688494717458795266273667697354724230220483134015453265602017331130652572481343991213577668445441895481068551942757901618695414808611196795815700917823103135786842884545499296834284541554948127062225157471216420604731939476089193266886501753069139641949707259555660717668182904313115303010781007270930841558144829486894150847989174569038218507364578774427538345824091993410304042134039584789963139887356744666985387740900067308293290660585077008082588285180655662871781056730384339554436091723559969876292146320597591126313183673479579302616933976789217429234710500513040831400753438983871718487308035172163217380903183062288803882169478408705954747451670616356612151351417700991826858498003733146519407430457203575987529148880091425294914301759907894151167626177608881389460232769743858139875558426874341172225075682710712957854254586469248995848605866462881856531045973648645449629472102349027141804780494822747183453727250565651068091865619016506649331318126354209033489841351110626041269100754854126276267098425924160065103333022823349943413299328616505586541321883556482665034366643996572214194052419868869429846219474419752315615364783862602873246542128745510383620222130900653872773916054819637993418883293467418479106000907594551202008664349004255676630845720464888722997058476108588030012236365289301743051806052165133029142144721596190087465457125432401355188380800593037698737929134164020330139963738074943363879927569687866577152486672875361040415342413623439521994929427433843698888603949456684154052218898436856550724393947621177330365947521527811635998543864487970073106032130103179949371580923793899192904699045812122875534849924830271424567352888197027543390681868489414998062836947178889964915473027985515379401007362749091840642425044330612179782044742232078188109468337912531381057081448492772281862913070442938293060824055848093061504004239922448718361473404888794613375012605214705005178681889312816914085059057286214096916106812684224008437069756614335538644615131184312910648014516177032491518601977045198236386287375082745271428985426184629792240533808816115220224551368657900744403700642190409939967704861942765780541475626324311397339024892036735565062497356297741990165110289265076939121664369823435915292219004668260182006274737751970771785284752021415291739100585419480464284156481772266726567948933774214130658364040758776656529464727506490203383314402666412791211560548056930339461669614772787924489367400146182409487759570078978461222902013583671248556544487178837579378702215519030960852122414526087132530158631241544400820682939921257405137878134853575383144857430237135433738008705367257417641576844875366528183123216400253421365317030930225086923529083915507881752968081252795433011512953597048270323060110676346363214939729725105498736801452186099332299868732880452438419437745002995821684197676152040108650768774211402424952148558324429442211258964286712827454916920970667498095652051169570898555641576856668088824803660465166020660022057308170502288034404612736301750308548760458731433630420062792634751792897065562561355673053348238126826036223875944081659680345677761085085538853262217446651132126740166290176644467436113805801936145535166425936736257516247496242984047180469009119929234553750415682070406354134948602869003679549551397608105650609546794289491163904175384333450941763792271367261195176952112611076480267636326096226053261999366043304136178767226829488735184790204184143880262796213954533463289232999883906084667897836558547873739988522574725588850669481164978706988393733350737540401900249236048279921706514237073441852020991373313859299457731518333588265877980002361520230220961678634264097963263363078324950319056862532852015634893676738928316990014445125172036648717847066781782352640368779875983532312262416769683485640161025435066742381922489010456464712919151420022775345077713809688402231947363198473349472246490717491028371705458630892374892237241261673235049791794394854835462579904809149995728965753331770400870159001904239506981076173343433831640919277423408924138401072689289305376135417497419487187180065299505046274781906405001943124481847927490211854994490041178265138874604893703107262225425103410516101405352068957804520605396601660715235149978201434065044994818724521137076590828420229134471285857284233576093406701843498775114638710137892835788160788710623250678589373402295810612584545885242649806602500711381533753379921482019774041684080150613119553458249885602585772126581992262607087538962297476826091823931782921357513276489568758699219488731119572639671251944117814966063527317664528634439170447065254480315820016447457728419395940819296325248844366440342151330893893253356793662331150419436054207122025430338869478223849459228599447936951903875370722584834464939143276407343400559710260421459084797057424147590235216391929438697825717636204650335472482186292865054203087671268011472302424591180506595555788065831610622671405664103864761507279429884630816359063250740124826478905335669314921742431208277725364419664967580372972594761239647978310392281507305519057219429153789506230068703229722626006036213888722662372888232675748164234170737601910666781681060727261863106245367209998849573888909560876928718439319043200045790984094097860712784949319008023616989904075774228317916487737453475418184580067293853542905348428031786001627300803912826938939520883188374894904262407371691222211029730952208632185513962902880776194887921282213448531164461404241878946643129815022023205934203069881178216410364678619593427559000465265891172986032651509012656686031557178149001954091877826496302097070264157214875750333520825682914015699702543372170542446599887507567055595515803712264719097743261808850622450541859301014911486309424065304257888726953665760237513742283580127050622615677516082028893398951397017829822345617721055244281208525211119244955491635434259776871187562575738385810804324759638282100738964747982961449221330714078697783078821508501010671808271179168596178834612620091266838049482617274714948244845697068605041030978591394558143846350791180037215856646228587798184902873986024995774498981478965426882330344459414019016239569231725187599137760841052167168593035033081099344050695710602732582392951920069547387357668754252382331290052718807084107002268948137479867043521418340153130988398387027932052399252256753448451797580768505400794681228470492385021178877449745854583451164592877674032257995402212960455159128891968508019056615426598808241472993608053082177292080962274337815924141396077668489618435411436961588661807017960301294627186355838034816688899583093124931511064935878391272164182283790828668468852253369983323676057128793330389046984533073704611792406323269426865832336664954069532504016139120324468087255284899053926360455733711673047435436682980755628213792121351391566596275340845793406086034926820345617684139872905924938919677211251944970161497351620610946150111612613625395354800536462657921719178926207078125875759516860239426567004169821421050535261682030911073644859133167376180237697141702086177302388630057916837285154364236022425749702966374423747114890762967192052754656042010043139846924412397522935149172402602314633161173015757313490851103078904738844424116517271550151847365734291013587316674740616085472577821781505265209777597785790276961108686337516877925263529569127351446378416645438702136375792676584482862945170291799052789134600873967302309913939008549378609146350857896216591867504579857076365992396466174843882087211344291500476992417493133960295860209155473032588474449606568502012895361079501492961153579359666323205149554591414472405236165036892149937902927481135807997762832138608194963108638964663048210768998378909801738741837330910325851791478124328624494685716300237773547850098404700056062946219411260174708234698069975781380422510331376038295594756006732806458553931073827705674346875673410617455383467123934888696642210649126479925114860692142300354182250962213269467810487753468408272186546730953602508595684176439519796013332356789389541180995480090671931965559139707459826254115319819383462236731584261036771651167368183978086653989381719517920892468126616249991636419499328229385534315654022185461012699366435462403018982353013974771078896771525404673768052986148050465415535922989847514187309846338931969472400629202607905855154981031747181939559754866465743320558072025911790740477823153726803096443607599002592237701453034016977139973652464226754278046637844987510135093962929144878454948844822899724659307650426165305118824067168818117614975386857370803237938969545039935836165409569616507539231146090518035819612766813449807948888703437492263167031551237070258753877700460603976141611230340359622254496610356961766763315824026753239890987228623493479113212111114029129310036167910541944619858107074579901604071848445805260590911313452495723576299949925170619150339382681316230762463482641513106588599761019496440372775231140107478164602887931176012482052031188249207241468818125746362009525290239891000078364701874430657987590278976596772410082836078605994359559030550852360360717769136876116752960882672879268266072814487201815810473448308420443585578365374629596569893154317330826002201326721554365014951849529686823546265877869894466559134989591972696577662808323404526814973648791496095363969673818059695529534679958531748119349563635907213476374209470056916779753458852838585375224185005530770329653456812220788494305476237373032832822094161967386661107506184374911682604881901563219152094990163937125865173077557569365364772525195969096600648586668095569935574940667411258440756781897897088155387293506958633596774915430560141488619231106985598938169412726898096441512208233737349786864242347906240145038774189142749734233686252873162662314504327736406788868360226892718569736661504797470730801364104386885050683076506111592588282121366110669619182709962356755681935840326685620448252822018889980163493869575209031063090719799996522752101235899947689996876477817549485321424759649216298820691571272829614570794118143001135633562330392271961536260034038306332653262228880758520505671986737151416005165699792211606206712006212788051903846918621549115726660851340758152237890765278343837137490968858058359052711305510874276486889284237496438022464204584561013173552020756765592293567666877950923421921433963670688517885132191408268777811911185780823672787192095110345313614938564027766264072453908219966095308635416055647113851924282282727365629451696332576569274750860244477819428019438395555958344640194437177535287411800383136262202997515325454579031616821468163762766987077216924738427571724618879829885948721515478673567220739447806728890056510361597134778469686299331959633517805967885652111963146713456710045505963421635235034416591848698809841342313574460399782440288616421144362415076373770738758016747470224892333038270773597162737449023842374363552048541358214747631417666859381331330110275108544093064079571945307022303417363115786300928452204020340629742929611397130083894493824267051672202881716210634408808307014498084883758307170185473199616832971165110850411045937699266590585461508628472531567811214456358748804183939728622461309221680392557674739858961281640721259679638110902959968272949103584784789099597242136793861328373932087063765015594089584280185532074076913016405436152347484332652205259143739266945639268758435610106721233511738757773128458873456980334974458461337552099292768700800386552145030149417466579632721818458254942745022135116412293170006703272984468353294042200730076387631936038820128085767243223385241492340073378157712849232817731334977442381143493352600704758867982379973400452874108975257950821686547368108620460072049495759941192211145320132030336563758998970703070094867973138225462580972596381427171530145033807262554224848017231240264405624678357448446095285671257795698528372232125198901374389942955881348986397184471635792731838392289414952261509484419087334058299524673407883290487913793805655525914454637868620075705699179212567231326341270168945792994866785888508733838994126581014295728449664160198023953301021095076953482762880083222091700645663669020530460871062991059175093233514576453778709672458013350819632792010927947974129964705368420289246616716631371474155718813941440431648834003225325760637164283385622625382766480882904411378205022620561488008114427263082837315755597830555388846317545534751452616431950912316950766378752190888596974821798050937753069314607299384355716324689502798572308619909856934320594443932129586668705761767577948766805068819848599308003073331086366920812626378914244216314909079044479510741320547761030877583991080520380276690937989831599827503065238180492770797298826214330557202062962898900478649969375768912954145630969298090351583658531718407879783062778949141238538819334908553853102064863635136434591177273167152498036104738931258538806029795729936191467753821977384463713019365591726649656383798156164304267715409691722223052856823439856913413001785244379190089257940015117810115824367997779880795070208844338889524314348939040263870935843502240737860166996645574087608705217603891831641862984709429951375902370504504094504815620448625088540008758619392954346906407443210300061271376248180979158894009390880659562286220694925883035300288704119784308464559373156739886608545551263338650121196310964506861113553490452621993067298086070001668507014762306228235209936408936390798437418167517286278482388812980548257423909480141024356220058249091167874216177273956188241369821387788664457483966451880598040134529965139918858417101282632833307409223651399467380788420074786614717789026146736255272795820516229636600237974114474408408738019040574778084915694959009052286816837183092236761173969868897906532641715354925919539218938773026592675189153330614488583180513226765587199186897798030728984371926874125686786675724728175194052492363130013340418561727716765018850204456793006985255961371462476955127382131530020978025285033576005103566359780787965927474346590144539168271859162412649914571498135456524568351964629096361297513505751330563541967144433837697249370648067864918151895379990890730329830294999467348727404859652855617177378615957936056363772332792755683764051322844029046362894260311792430933026086994521465636254497848488006485297385314104841290337548019429295117319620650961165608869325639983126556818950185230375102551300031176504768673181155355706360687030870889180981925583226965845017529496535306261656949410455978850415591879744941901468389679899362133218926719568220167869571620458861956963341714953574870485355699118049218978528380143428137659546608622947805947436119373913125913558806638021954628433001010507704679442720038300266275805277986915686025351199670060563432612233521051140965894658831365890026677118683807343243483288817237347908888498156032349278984402061320257246029941047216312275332195597123899719898277456651436099993104586791312807232988173655144933036898990119941260558259626946952622544592423610058951775431580538153838392753893393043130998166764420183833969532967767163927242165115655004432582594100291295500811313152180081792892802122420812035123493608942817370614222140229552774166083338414415547976919318922017209919173630370272648744175313350574474388565114693194723348205136839240856550648914048894128958303448930494427881671905157243934965232579324733493437189045988592338923092548583130470089651061436082483693566607820452046054134898242651801073354469417622929583168819198660441400241036264809918781783975731955641216031528067450239938980885554937803323483826501309917192814132772396427417604004578929554479872947989866608442130881909626734746536836369297627680645245005890824560030540174339085991316478842867257236773174708622886359847435123454697261223479123010558697110200219818739386085495048729518668597645514157790185951530354996172849157393642447092780787171354115384676073058442690367514772603048356729238645916204202278308008169296574314301779339809872445866255716357805693091190375463767249748534213074653616236790387492984575971075643593054452317010616166572118053366694214763239522453639726075815700892858885295476865636868986299626309299010424459752166883140259430979178186545743433457964192319236795955850549457188852243616200155043938086788905051944778148685399844825003579116939633236897478193972747683103728733694063203044962070785972234006898354740032378351484469932678604788238456830730362425159002609416374232560108727669909299800842477900692607100072565412760155662027985834355524339183339369988392813663696550567401943915977684929679528233929430733262243664788988934815408626481581626921787235487839112749409075399121152364032252171067558481287197073098179719565001546132194830524901449113221366760445561780581790830219324132271934031426565950004194442626967635484600038275896539451474578194770533920476017158875591992679639045196682414046739710387611359987401529299384875037179942553847193966211839868260541233009071920892713667156090064808830762374821423181114745769943354749358084466660862665686473843436422679872357385654353310575913351186074341240574248941668961092550654578647769766275227988870277591412166109506733035527056710662373078185956158905847586190416137260519301285656599870479402275218756123561668943785786147956960036885622318777614104894933623006018239463804312232137609063767176544722791855801126697446532000353849864158741164732771756398838738810265493970183501880713480506175300883496299844707666622896534534027101681984621021085126771964811587124719290549538771624900258826722398648083800331578925984714868898213341725333181811256437299883871372082915064024655201624988703509178647644774714756470469256117130364695616517039930217306767719918907027527295933285389807158580592017964333499666755019425949988998354195891401535540791827359354224500408675722779308791643704922470426258596145975688609680317638697687442678380817641227576975173392397950793530421331821842196800365244753645559780963977146599729744582665116186589372088589135314939410898929692202489240268870301541299814491166527326205123395351889342407750286430042562385696837789363958392501979127308809077404480517690347363125740124447165356369891538621981501551650326434949959501754533545735875606669572936111381768666160254130925402530806922287379693422601209942302034157066963515623130518319945215441906861933288446822128498413981523396660783845870570732772265629476751449657855043119438544162880720156440715318528127009759985348808453220590987243585521223641251175271690934555779130709007163651557806302434143043105461866471094284272136644855227882637132838126752477220617620224419397824649410317369670795088700255512792778823363309897301603227427266981129742238742967080148074954788596771491364417249055012893398768848230556044595140914761226375638650195736917660712089872569208366697270846684217752220058182474553522789672643267908001029246158043895396998711169416861179787060719474013447359752706749193240550921652881670134687412334602163428368577754978124236010331453815698500370799885445985977920630692241437678869156690498154508368248483858873841736644276517336821280962735423966951093919410683718643217999344571729584427118320444722233045337867271372282715439656519913584159005104524401798986124267806282604079595498861145689663092269084223325321259711838175759117975884519975289022736129402425726543627138984634121068556231193452978649486999081742943785804381595578289189291507524933912519517852825140804691512229468529806765281071383454392937553506573822205653776480750748281487962340739703655450758208502606863022618458498755869155056311824984418314966780195421580885572708443511874938876559158617160079155428859949755639199610672040113088183116617304737998472527772823598906470815021461768268810328079744097952756108819641941918453340086801257476833623160746327165208562673385272208447655012335027965941741333801567400196866118102687837862481261974888130204257306700079106335349573785255896216814865608629771818933333785388668217600904415722585971346171823181859366483854496196158062249818471953538765505260098413839967458324098644616542503620056830966981093989005542057648695528646135020512636256395261359415400315574331207715298644659958854919517328551427814903679852954397319232914108122766636635057248426788393089108209721864121340174763019292094472030595322208004187901434702870663395499224711805928344444412735445886237837569861824399111609501417415960968422202577848773810997420241036468956019620137331287921832902916874697906749643776970591178010958423022854244634430674852645056392946225524097433579768942063622022927291446214099374406688676644570133367287825160040536187534931393533058554989617110908839082803627984533090570635185071406653047781876283855214440059956498043372404465547540246103081738091900519608682598219685495476977063762291393605445634357529762762589169039135584931258440442243543948741300885163210781257796753433884256346007309398982153222866961324847501386962851559217058404115223964566663672567734144961819976374728908716946786141635221311788887780973488935190181707022776811505865763816435670228042930430596953398277499332992414892882832157725647714168804189596862156315828311178704397979069022483007002381169356218079977464990753198849086387592885871645222858324771318969371079376776096591830190677448392536171400006122473379165560034721466421934989060519458407726258084522822370081823336361435186502649018065689449065899723580280718320385028746369024960515487282201069439340736800319059941312638883656929851567078983938253432421929448030158508518655608526975100882420792284018502477991448903801814789370807311354529456233917055839526668859798087962598525262243566745066824930312461919490298546402465793472207092197023225626603485297181347593171697249320446071030005824828314242022516048965850037718794955864099627116609497659117938072392411280497190938800353074227978258985243633150386318290330012879941930219637164182616089133185861713022589087695817345961864821971959012576149160953153035862579932171136620189897796163966153606344378454329771129125891030625114047929658821915145555855882566633699858201387758892174247582076092635432933419028765174084217354395997954792304744748025332562827064570191538757559478838946641959290745299429009740498052851289927021736487852034173961458036003142102803002851135417495137176302445361538217517323710412216206008947110290117023619515272703779933131873613989393173934977578430788290097274195415303844897882524396297926916571417349893436582104007925657742764811339317946220235519852551254791393577385803793669666321936899943829914630776310309929799699810549486323732885529720401000969694778511067908719388421903957043117167109626762961849617936062416931481914181794384543630630151468036564243352471380319711628008255967706814185881721654298373499787681783303970880951305244211526274074566018586387211086483855500459819415372814232784907670715684109914113299188598417855048107142898227411301596293799535414287006270651185894841967713875190624361702982372668368673315211663623241952544293751575663294428333679754463979234875566667802274787892472325025889892465165140978942613689442753973824663432268774255884210382828816010544803241216060655485506112753263207699353385118924787055490318039353508985351362429614932792676650455330555852250695221327434966298172400784199071018175865037968290963292982206312737364964204252313617640734520835138961628651904906550290349136589219357138480921782574993938869195917902310608247420313819275759833491065640256514817147302684868059620098884684994841480524513453508313831769516193721187147451344484655499923460022326868607747597760146961171016137013541846308619878506980748986110271480596173190133126991807316468241584886999449578229292403772199169457811642492215333177788695326890340525573437033214448059219925188320420783478643892711106778213195994926045093034695914804654968798182993325522520022073248228657294916180886555594746462072338975268101565260499392165441912387691451424341789168654311754839903403056969032632907954084618806635373684087091335970912439740994766567797929695627163995752110822419970737039253625868985536580064090319095172600833794522033954472471476940620413553054275480948546428142019799562817760536639804955562344639968498422214937036316722585658946280920369650311544307704212803663718327600887869199683771371146973158185047495034581864268047760801926069521009820816320045776701397925128017784738705391606007955524925265733539570707325207436122701046045187351414764579282705108983862581482013851731055174133616223316668197157145838853925526583582350858922138123893861363967351738382415175616228212679627888911848385724441611368849896354926903477925034041157187131575628040796244308364089789222759985976498548317560020895188245721328770335459347766461381898889466626881373109594373969139313558917479737938916377717137120083706886534144381272802694600600275752521155684473515276055143389498857673381576957685714879149341594152695655291396264106715092289666686799045928987137139311277981618130128504591208053244859528699672829651192276267882712990671538912727965085104129045739293068509675051946399636872066047798206384203815904490773123721798156933471333821023968784758164554766267871134109095590083960950848067881563594208613255684326797048110067644127547616593532524297688276358064905900146302715223955315673890367193995102008976816686204983995905919844707116574515255806925709988166217396824175262646895361586932739274401081460451318658100502291410962874489140676266945440339432211398996186954495226840988447232976734754796207268660927623356436597993718154721571497706304124576368162119162642969917127500914470673647022299492869706242655012557534571731651390973042752677996792809112873223422894831927356958043263529656301501415191642179765352620942036700637300971357044997251248413490672871711050905936750764334996137552822771214754763814374608463897292387891767647657191571582457229230311817384573555806288687257829719872148464690312654468797271246419978422003512586133322717812796752256884705130494648998115007827864149073002333673569495227218824329141868706330153193618945677844671423322760912986112734337680721405814024300858788586504298436825982807027149523008571794011796115705451418493609272735412150566515597730462824592469076781630841156915595895081485904723774733470813770221701945990101213635736837703256122064848543831640524012645008053699159947804528267035331385334376273663111469364837366032637798241012457328989996992470896028489961842474731086107837878058956210553223540520896518270763780469037548658427694679021282252827800447816387055074693401873388635017198443869804551654787804801772443557701210467729302713752214472452979246881316720504665403682237229500561130503028465343257346138350035787535549382862457322909494674980788674305066634345370788673240204776773598793135383265102928723547991630329294085466106886231490701475255201753759338717354695733335316210576369371815593393368816450767029098657531094326557806363037930852914739547805509232211565322025177996971268083880367016066368880159184325842687638578522341483272167271774107509356021962604367153474880060652740115975656003893256270517932918560326636290716806463568766362109604620184833836963517290071603723459966921138312015388509683155011915732236288881516508348705227558125641074201650272677711502596510125588250993990254206732252802556425140404935827534769408970972491226124883008569053674437922596350606562100124951181061468222797728275136237154504963842059484201740059388219229855818795287400717175613301976148992103957934534439376640892415854775617212912403364838216459117942232074112872663388470015664209402054381942832338149630002983099406901050806311553112331562009510678680162844987735592193597147579993766588076082719108406915735553971561093212728916382205293209082452593199298460786494858118373901298861987434495989800950029476280370303842868359892906854434596980856935593909993398838522774185029221040975112614371843416655704617725067458899027388210905054716254543481666388534780886679149683079805489392432243131735987949340437543168598594996188032269687909509018444635090851891637499010718633004159984670577061640920032312915457052681205381058220605858603651422579352086938921505315500836655710952591413469891839988715605643619126675280894275525376454593337060575028923768328949773104162963803155223105660887434748915996675368046923470110060346461320815858117243013012946920104444927872394046137828236922305011754629576399827804979519469351163763690736263595700764730177660863876300558417674922555281789762851728312218992785842465975622577947026447299082758201528914470107932869355447139711454408363856312721497882970427451932641306763396860602133235721136465386245376123460970896927004584877637466808167194336599203826331136043052445241934497758603198710405903450691770749593773111307764016955130849552158566704591178235889048471278669970657570625528161824127542574827527924803231771423504213123761249973320939768023449244200242921106273294426110999681085284283326837071093964257076496022488996725345641870269996411647867349205927585509850713661562089865915204225230433206037595946265050375258425675400644092556975049212892228212291085197319260504180279050623906037945466271816276142537005596639267858251088374433192576933257367033066031764027352069460140663592967354185376779940677192770920329480964609689871888461181764360490645073387566602401220813568110409176714395574117525566032315683660784070693071126586963269913353201962720298355035880018054158283806817496272838345968201970595256631362487360394950073617018008981771415968146966985136899115148586024747359733346401666975212396128916257132776347242893995866218283194749367788566038837401297625418155171042617939158153865093085919482593783216950744728356564154976275520898363329265033900891507026099054996619518925753659362402414149428245096709558513989268760163966452517928354222088829682149960461127502182020985440970438666444402731068306581258482547447210552244127373902837914477494588561620377368955929294685165113726403003103267708944701544058194904253662041124218737312825537171489049121959297811693928020164631386599402965175242914439621581448121876468462456110010664785120309436397459735203307300377414794760665527671419505802724515148044942084158434734352997550887694633917594535361459506936822979715534401171779243707139960129783736182971677284741059801200526245905949005352269469834338834717653236634709763570667957777139399036505452955348854106879378665827688354354059683984380169526458670284971486424768867530400911032429857334203491193341254259842064002496002586532842732514258571203748548721349125272296916397156362634553881758712793579396461742542310473900007808479932232825569202736421314624415728153941096417407055208983992675104723815642566419309254841268438982257070417053874401977628039249408358265116407700160802655722692143051609879408649748488357151422599854273913211323208770057651476991480756829969878929315131911244669271220456659795048126526424221331631503717677096678403470134279070786653711913101522545604715906524278763470161255947994269470546353676568545536727621958414252767912131884163493631843331361638336029909357865248151558534227007459399572707636385624699890680968703939785348896746069536185433118971060695292348381201997843714213750091950237308793228979543471869726590241671452891900175540100228908230593852965319286970443244522666251759383221048642009738154870105166809581303735051373319977531125974417248508015636257122386215996341128942873066085293915675547558775483167663789965938363288921892631399539672086505953678915261306245589194532124763345428854321261816720103235287229245476096793728534060481656781983851787371956839360451877278068682501073593868823273614254942272471922723471600174714503942400569046968359588883523325495856390759829672452620148305029936422764786288577864341753541585389186597666190592142561446586241823207168841116158766192386698258781603920229347011569947882211404236781844605683441913620160694842006388782946637906736927147943336568744707132047098047449125691696641699689382747819048844671844754847459938003829638856695031576478037286172022653637130588622758944310992356673267367064839731584225891866560228621956602177499955650565963650047874419338525341814298720668902496231027002312524643129243016773536438843280385751969243911448766286125474808087262624107375402207386294663054662469031630418346704785021302013617547159493912396384426602668382047346122547017539765192734237875905886571578106371782441457837856877350196611423413231807227793704265582646777050244942556934358662100878879065965743731889252628538302508194651327146269549137006086975849178171773639050767537877673840728304573520777729176974267855965080452468196968144291569843003504094660510267651153185822592410885168590152168297048493892041812247819257816176605667877232784803881971918774254719809790965666007147699394541469978977312451439850303359232348260928018244382168309932312381404804299944813334742248361576979598139233020505214008844274055744208176408294807520599645264751552790528490648476736458590695277465193523053021520069297635366386905667833084236861370855627532664558835166221372265688625202897856126586281553424751500367311692458265707362586729491197223898909230304886541052969859091709191348933491582586115138444448872049448156864424848109483482015460521224711337909045861467725024980892551782210150004709026929441436902347466056282507656409475802420934525778553798344246936252505997121179855577584220651041923438109443968151191496759503886536517349408930009405474080057248385897529987639394105618538327267667082970872281737709352502405916379836444153419064526833599234573096548536725526701966059631281483996438497235186695572639496951198327505211296630540699689728011325983686245710136575536178984960639930336741631625563194856046635534457410014318134563747370140830793436412918124853140148346472483107264121878779053573987892897451466804552236718887682344777185205333407198038342585169908511582913570293147158838211002410343635013159935033113784250269180942145657976431219340922219480655316626166236167844780725199306309284197181495666536153039232628755956909408302997943008429986325368828629895601730350287537895169611199448106324999755873462502721928891336158423431094578388365293549473168265700070491472526639930586275508290468959383484793640312741398746035539821933672568777538003594845570225365054690567389156555527556423530843565971915788392885333807456448309323542862012815365583318297015600404063881675192686190497512198843724163454663488622349424100045275085970284189720707374045720855589254025534362057845283446842810304522515564826105129479287416580828243797838661342910149922206762529604098499928603753245011183533235121213486877872264107872551194061090950596458111842676947292943201570061057773813798899307235181133948731021415772796714698967806042811193344797509835491957284123381331320982924864734434915789446857604812148909555596192086413496082934472870683567155528437340213450810791377306253039858412011948071934968681297422407179555251482383920439491694539722439714517121276123768817519076467658795424804762189776487177357811287296989961686229896531457286968543478396647580740358695357953774133472750349187327360262384261118915320172395566627065950405588532339785014677436814113176511417825072071335785598105767551082512398766739281258340494263787526203103715344837450474536411244808845448967503112487525016845622487828799586480092879331292196288054723175132249379840983354942756349206508875607372431460024225825467267819639413090758648390640256799186972419799539461200724734900349794178538768643267371653330680364872709384777491470136946704089757279191022840246297360466677851948538681362582510181292128659132679552063416291314423000357417414564512376291014972659311040669522494215263337900834652411558955809791169134311193273211634247318264609908298561912359221474878325277664346628633334333611769484558512323127352460087888646643479217302500690372310776058737556065675778811520919217652122796401602399453276263043108045672049275194489200766391587711950012268351598356808119922592086508843343277342888824945743907198462401936027702765211135293645551744684295101603173276575008775474526920722006369785420388758308273377473904576799670943104653622424545980484072685673308782761580237655683421151389774256082074761880634231603297565700444717326692988711040048765004982757607975641602042552813097831410019600398803806517253443859228205473751808495791875998099708096381830058038671732115578149683049289768608686631710963473070368240369401556327241125007171739552744086935437631030028698375959360635105840693257687519769860736700525601466871438846965081560745877089761728434666684591117846469123819165112032290705729998068877511826791427624902162053904414970565221135805046056227993067615262079477714219389702089309722626272075847336227150804466470111929824406265966018457318849146837045095697183320099896953202505922836911121937776778595936745491874202709268781066194404323033461671765690642719989467283417132625319774632282973070344955540909277466242356615915506071085948526249041184310690675950487135515404478712427259236520177594156592182479683878284303893058180655783055275879036140783816218521676757793870546066167404756484080480018009048838817419284499966008716474641065599184356976965711257297380000628697319532005818628473674678594683655321205910520777937950549689405072410675715369278863128227066777838863521176481923975178480249550374095226982235354909910839686513490976812971002692104015603737373384027967520427358728148192430159198057879019886454821347932736484737265961276178920151247025884182613626376743537297489543077733454948154230865256232515592623602801279285846148717049972723323528311403598077338974312809162184372573511250759539999131368719275291066968415552320574945571922179778771521759695547984405227973078559725314862970983438487845607425744530648668409094046312816398201295425443644444433979343853797075689501480205657388861977614875397533182359856306229069811224375867754060002760512099892340703475612449207716454355552258600491200649501553417925050182012530481738173132973712965092351159715115277409934943814043081524494618743625901697999187207913654094267826771506546980504184641290719401934998355780282757675474252938469534835122171393305252466473753195979988640687628549631336367370794694681168578646224652744706121199373557045955542198413747866911584156646023007745766090117380001075425683432128819158878603319625618542989448613297173288588839228364981523992356274904993131493882570294393283069213713592104787523458692907449239677008816908987925745516661720365830441204050329864993840584252094426262181132222007525054625988233396869596174433283743661649748195078020155732534667224102138930079527816467746786120071305719220376688957034148874619810335316195535938748281563971494268165825872303874777777221747858963069503610607678795795252398295350085098506134515559076993332998561444927741891738226921711221920485380519828006210309434374827282621936565682666028730248986510764229403655154143030994741657669464994621046601382418800713307330461668579134844929781955482559005192203592692894767851927124900096680711161884698356724511695053792664285728074517746482771377901607190021631096652167881127636803437347757842612395573794835731209804171774915208972640772787456176576508451965149175825495111979753076234632703098534101257824101064632496694192774113993574630892513550988908420468423984186366334639182582111742582863408163494852697910712129484304054708933651085557246816975969291151757670038240079184187218044941366720626881100492147714697870424416651178909277233076252942854162527578973468169055625921831608904087306346978752644897405992508410234553857064496944379118434441149725618790472213296969819627045106544399259290171946833536295235727563804976327647409695815554115033221829397119782678138886898899857618453697919402480250001181692938536661744469237156700444106144036103428810194897324407700392259084314767652653022053574421214766297344275653732628168506843780373201231247775175466528752598678933453903478080179660966381013662586415263525988146912286573383865252991542076620060148963219630728265454765928700810094339714491531146857271433888213767555748294788931408799673775312277466230422167690381081640595384229785839617420501180452611504755699075281526512816519512526150936533139902562057211378958001995607480869680602434586618611302356976567026263481416292232577096612179789646127192104793276304614078390254949752267623443406260425966122621626811551688093038529508446152535896125101668423066992046839690503915760553239921751022586120545350320090561311821994039604703230359128487498759585536280490117130340402746216417333062684068332583112836424561822353105932837606975018500718488785205974211857179512086848313225776324645322326881764720570755409662747675282583914208409099618750824728849318807915022486548080961293158249573537216894055194462981154303177835161304758302928047511717390394877213427865479117265897167915856091521342936589392184759281143905234439723262361783501829808052800583192337609362947976463939283157875923035595013637201242846668824016905320608970165988810294484859497993774565047802008445302088290601964060609897354072078323750640288271738888419738071215593889402606780702060051406667691712623688613082227976819632019083820136370757823434583431873231065398244128087928847929433521981041462307995956860764709310095680380690539140284427346430269469752846388127098708244820919574744621838197797468938519966441882903081009654780313810853137788424605812064517206953004957313898754083391460885554177121575868890046661519366029295017233880225265100465384869457141749291599011274318322149992908146204889272695641467748073968389725782666337665432991733539429288546545797862248748696325267657785690032799990415711865314725658350939149831155542155938974998207484447818417836169491260327129239189502644553427564586085641229240113150360027825104358939471008327527343833920758648692936421533778692023748920068738363321541258878299380245980043918146903057174588009882123185415586049968444241484510846774240512827394124181777856695758457795052936274266485648187905785291533727771519800270913710600874052665323871730794697779700337487297930200960853021113632093757452254090962307004032762587431974290629132534113092989731913207382363773419718974934605419791299667958550241608322214031363888525422622385560022146308193498106273657312780879828490946458100288644152245206582604808116892097851198962260876616405525571758704297524472322839357806977544838323575565275155147392160826193100536723645097909710346572309294550581794763161521990365100643182376923506455512986473610526183655165001536287486540320999231788007325182983737591145019766970716500670731343081015368391048089714305303930334773674088752040265314517585753981521317908379153060411412390550817849555418424933166847225313660013275829758998871815939097013589180005572531338243858753620327032394604164606440071319571186358487592614048591731316623486991694676562096712133152922313566352753820003526871393785091111865721271043469048870501075838874405396339765384942784395863461111302752634762408206916990290941303891844553080194903217821721258537923095034330610051832900490260594274506180555095694094127742936588583376456798111906182018860398016925570797654957426142444250433694187478387549129602326829234018305694011339270402803914709537531677606772545096312912503399464319523792434143921082319463052416351338355148759968484002647735095333598921314920858746846722671370428370934326003336535377964565934337844992214068704053298061057358097442625969447875907531042498648851748415037844640651339829371121941518124732936462083225212073524756796827562104758007815895416462420079237130901336070280098854857664943494015535865023645351778967077942440665760605313856568025443915362506952600508344069865791594953662345032348518054099483360758382515684297746558387497635284802406869114531663828796685900321978636351363625740568584782901979566030026005521818508476154176122458753321278202334334241351402633171646056689312281278308532495022785473785632046597786109988875525375380076225412257435407278660631301338101699967346698485799591077145586006744474490902524107934023013139691458048582103108692020624005988755590325142066459033263897399843063618045968844175905677885364596861899150851998098171637869268454557494081549310256444515078022676659831882257995484005782187381228038624188837961006267817105893889282699853784321011337868579622389747464619456283571326617758433204484094622831976829910560338516346232786476400016869898449878443346936692449961935827446690553818395051197042995923368965369254053855431690345636435778973053235467350281865953336883842250762163218735942430665369729107119067935726554999686655552820602662529413159258139850449470070518052383065888236746573732753691912622267510362169066691020280654633471514805095863513620857735634372788069084891845696027871802647039959232098800453076952287114612359368168603592478056344983271209288030654905262787081063341817693663626439157648555767272261208467312168120409616770157822246586881102059013962537766583120755186227166379428444065530981377870499571031124656740320846025858525355591547268095464696618792636833685489605773460992456166321794792357104962566347986337288171381297377661555241182988522755141626383081167451473666333062220005920131039752684338915445781507685941520031422243673599289521077085466524518974059022114279665702411020526306793929102834020826929175146384679841070912080672194638491964446499653391838777094647116849457216016252465724998297305404640155041930047407694219889104473115173733921380760742128052089637907698473405358884741892894054407759390767435664557020341527827690477693554586989617074023911476221817734130085141323063937193477777145171797385319029828423967721274117805676521978845939500784808741880793679707148602399117907346533603603538797696237247611954995673230377031277173038551210711196443371354545274448059503209113445381978820566384611086735605839896341003426185121791226013482987343656943325204394161974016999627444811476579506474451789057592170726114623520263513425117822183062453751130679350501633345264299045993691718453657737715421152359723447470925807698997607869392169383403073275551033466811004380691575773280711036386575666114491679553089222046139208364888599247655633483461661306502877194571981826344995203012526704809382840447615545142667161661593147101742341132483814024333375268859694158073247714592044436936415410121676810715717607578221830085952455440718142274881091153927469372568497246472335426071723500325504995442995882430566262095139765191498628625506948759934929270272562900483616044287391900008279082586218313272356420042391991529504301868968376385020070433211068322450833605329513245712303272225594231929645234634079805469475426976639322361085588789596802520476668620312117237903448118085400703937517893709892194095491000050369907095625448397326414343476880808359322271307890525384884871893171750750317666902137010077709360666166043026659229316924103793784152801910146181518530373713802381633150256792202459128735222906198629108520376679573350930209530866142962764573690015371128228904459652818444080165623764973480250915113449420008338498566888396290434363738427039987927439635742629800249071978094628430914697736958794422621580226023221627745233643266777522908027653661468209886830755369074480375728205252345256937191639059189661557627570620942900282906756008138900910600875957316734135244191255662888431343797263135219715943902166980964610972721452527893845044529052719619388131460390573314581752410545341063600509922199847762391423903730277426272728179652760314671862063512589719264727010888737370360844728247184269784091903059529624834602115138327688786597515033392738645009885570282857967406443150089232109257928734268436707504652896247914640296874497274779666400888015238488728158136103062527738675882956750303259302738094698897472198027442043114704583107376354282121957388887001755371240420891812510625456323473184313639981870304384908329312153071754961442076816087435276365626288087020185072767000135811060411336462447382037447139624811869017173611461370698199401411576790246646148362927663253017188994157837091693601939606508389896618122864354751831559819859209820840924034918232986283613945608415637152810912417669856816405909904662468875793883811730127263608707492707119941988750674885124857452172876708374122713710805258553606711461730062915471999230745321062861599661814064716621436098965536991147672605934972114469680728364677022166406861543929014626504770619796093727685661442483757836032098412899766782660377111257922120808896926888308395655018738705907672029532999124446385932007007695547664050676700119963025080944540114795069088975904033296286757304540039421388746815900406056835126465815055371743311185144679011227287148560087437243343293012621434914961661006808648731601144969073782981986323202281333078823169796346868524681624589556074094954113975830482360957717010913157921133891561983528748145028605251146840668321015511359570136022234334527359762400692832756408403483902931983559384421031961171017595823437021931974274083113249051750267950947484702965177000849446361664624407895214375970717656947541984079742248842192796180335950253729438275770439603973795993020807402947823415845666159944320418916135669590293728414181315517576774265335347121162059925268157388726066269037292392685222558531058935983464894506451675466249108287787173657407815265468677569628051590468978894770045296762051365958690032676355703837068108998221476580718495084934447077680786533612585223901654844388950342662468605867109249526936937648718513069810589206917040748126145883223400695943770525752863926503896518044153689794128205569064659286733002865822188073099780832972534642021162207423894973348207133279007502733313285844855814023247253444480550290668957467938260010398561631291305706446488644714549200848031834161467546255497343616719597684092332957833168941594868921106734876475013208611183889815401302443950887973044404205960407941879642149963889367391835553660300823996516189420281397748337792324757606426248119312185123189201049376078331524322503036197294353466038259560083492610703193590427447569292347955321286025259526364179843006159779348235625667592094629412178966796498595125303081446758236667937796198014132754479139833695429939920527042924780407142599197097885062413410528224082241360567515818071165203459513567560308157861114185670028052016136695484579045526976838477077412825320054867621294855954827307615348594095612928138952032783553159381415993987472069660750201879734386597194946154382604951097057832825527320006114346183493271487962200878730627407770357103032156404381179337189629888628546337656956827122086089010038727401526981225254959077104385988944436361414177402053634302577683053346653515466635794544930965292136197556830231265125486485626547590609996202697889806620670482025947517864124785268026946592301215863792053801850535014676857454004290860807408457447114120332799402369524551562431320631992633400541757035700853523313467110972056618189185870299862696210332200047249528444090124869838876210513077877181246686926057797364385114477734737391367719930468066958855410193379879227501320883780188817546167023535539166551514932207343382840670663359515049137628672012664381853437616740940723549649658953005080862316594464278668602317050703877536560747576509148801980534986690136660525895526067155037702712228039569266384283383247621448098112392644584092914282393334403339013484896966179634906042146152172867384252770819688881384164502627751997543117775181627930299595876469791733796569899456502790259670411543744087409037305351863564932605396771194660638671801838964347722276045356799633750521894907266247296140692333777664554106252130465535860930426267388645776446825204890549579981638294817744457990955516899176245817412358043781517809611579763241926759480246032626652286708800307325733116825085744574814177709515437278477667310182164536567603685506494422034874891909586422740282407033104476033876070314566520262129476445080570648546633610326079970033593421533738213471912853560822071251955534447142758275295778736916817912328208084762833757786904370990400115074001112417206377223116316634210254995139413960543722417698648082537558684232095902941493554598962016405490938561368188248925778182073117351003968298976118336135861100297179810662207999314164663558080640248208575080648926387059027498846906628057351647546871514788273103986452212864472202349028875843697837529210453826547206572163383628399181475772647438911576423039364926200339559557066280324280395129898843709941583449198168397239450336909395575247449926962709221715902087383582016299677921311766743360181470459621008006542695488009524310774084515696458575222310370236095214429549979241552449051694457175250129326301963930809795523454972980543111922547050987599026549311820734556020497875457797009664713221961017757400902637948099261394156045465912560831866926160902883716100981603983823184273882250608172862791929372450919687335406893627783215785592874924172656776645216023975891941315680066960802203048130057944705599748125179128585157729481128867804152977399825955417843100184681991766774000186396178765049825959475678298123043580859391312684005982934678932473428677577299198890039485467341825178845247776756304433211459393966006200344390450326158493575237598417542674827397003912615514924665740347303722780472074682834516856984052693670843937028699283936622755482053269691251282291079242651003324325139971824261488462683643148954374534352102568289913292470863032585433740287225480424128963807221062223015783219106429284747573645590624915788466088914302399319143448075117367194665734008255264176474562205963501305108595439452491089748590671661647584248870063900546548532608561600841304696930672283477646600944492022968251485942326620486769967970598259048404216209209173925479858793021474373752116164593032486029177432756647444704483892324696651842525497787126679269150580645979372304848765053850749174083977415961783933949929494528712558440998194614594769470778347652724590632097094383544206863966297746575194969679191423487164582622434844295504551350159914984771609440916024282502504970365246767021849574439656688671673433411352964217252644355029899987445632250516618603715938126111268398534028166604713919366653920185356810420983963455600050188518783544899671570108785415102578045106834593166282197563638920858116736058264210155643924888904122976463272594680469628914836879636322255866934178526086849769354971152425642793421368562615517049888889197719498575604243445898084141374162608286261420718482804342885521735327593371784197677758955121224449589842971243538153138449769719758579842088245115768714348812176704689068523213914632817657583169716533782262581475812204554381436811696634477765347560201219733766006608798262974538787193481622476980097538291625996361146235742194833078457590731393093210052839352875433137761129068445145945732352418412325442452641834361129484973336427568648385219512251761125690967868481384788674993258501218062232794179675271717880714090143477130322319302731337811257830731109396363727977645033979293771546109502831383333805650958983919196296970468837230694658340106775361136158284133625169364401722188287871952463265479246860888186219012596284121906958340298254284145156677163110089025077803669601441924737390245162854408966140423222716659699121283551564653275494067172829446879990461303719553867013104160678716301057082225384600591842853269496008877818672604278358065618714325491012435196883638569695446341324910958112541559330779095106986532510600304772382495049308486923221563427391961724435862936695058919615650351456704194035981075237396598373694491276005211570929998725139892643421293454621101767480234339545837786827418733525218375821616413465995310305141493146894628372622687531039850745766755300688313004895721757865943541530857226162969367516726529422029705265398032722973071716976217555779809063875520073591472697225015233610555713146921592364961695007188475529502163134155958190366106843254010394062414134093356570184093455760391427533619009296668904330861709093957058238572178862907536368749671626977189241460057856920453940132005491611049029032454138225966341708942680472619377265038232784862063437615686702016266032583288408488577329323362629371188891760968351216857341058914527902194166131604576515913654178580609815229662206199442007730308532551968312337486787641126189342701384476199635474213153880716191079029104776470092450709093327677531011179160121095186762160223323624510889535475654650640854188618009943697773840475172689052781104844126793167335417451989320754394443104698824313085770282455313964656373921576068108281106776307669600324475877448251404959681919161522539587057557915635225354369607481694456196901513271544557835420122759905023389669193119684424110871667816549047607283709536886542620289064157102101764871595803716652832418396141161141679339434757956509081090648002608837688801311217986158628343066939114339796601780726126097357289353307686491391247800322638460235375532013005974000873784640816632638788624107584685250667530751064580586212018149407775444723888289568637346345847662730812908189424521577409868085619472908360121109895845765445871114183693273227639252234454000391974973890701356443132103564686156161797356387440613535438530643259338101673411150009001582096005176690607517432055096417456672778235742932823587781010986737200331975268312605806242584714046010856616218564530021651749551572573277910427191292080142388739222294403613008037467522101797175946924617970746546089694933913990464996649600370813120367127268982496829216775488287350657483907573693168488925264644598045076025428519183501781297776807007233453375605340270719597865413287150455720222790765054791594054641215020848889556017977072026413845919933970174968610292855122925873291210334478001519082329483244748703597052874258707582602997864884463535973143723114361415272214716591515174175927755905107211354644640006635559974893107705881430577364891979696301810402670526628459853935297722911768361400536601647597144751931153735193177619932061642132714330867475417371243541071668926390962544263799595217497147727732781450451687635645753558924022443553683971636512114198409062852474192892954437863430692494900072732342645191060717275623991980147633025431149740087709996528176752313543397475775810345789446822481211767897293018687961307357390762042875430794352407711761754566190000857643030139573002990756216225477170298786842629056190479728731260092464703462303484739308839091654292307689543855246701453677883120951183849533666266851246678704222723232661178410692348430705732947965730429389261043481652418004652356485045007600620246256353396394333418475834316007500271476137975134900848367302076613366233993429218700774704231687605138277594701778563088323532834187725387242866288399071503620192571326230397237055927065394404490708443037445760478686525977120558003114949813464080101512607789506862652325676310629411454739382718252003125217434603514298146217019006128827806105755687138329905280706372072512588273158923329339438436146663780622547962709792496185370243563286996785135683488417526921222415283376357277091088610527524807018183308566123735541319279027688267786906010229931132192267223248105298981841414218620122308896902691840525098216296360216191446852070050871416317995630834540577288002926133506403396767119936873692120954628268403909419384060632849988302277598077285130396013286212579713198214282853826734533761128628795230091380664023276276917714312970517004837660425323609127809503146031667216249352582054015262665980191319108319787439720012202245284927395214936633681780718282511385618315412648360510983894686755777296727181749177987441861028042146320290070669351369683453057055617251119622937896915955136494142964961663974594154055176062926706230459619908001849698747368950551116384904193318503981605014112852833593743271090084206710746053291836899821088837773211545761605343421670598818095275632725608097931753548771470608138999329806831673028229997434889332711087450878805902320711302070699054484842255176066573571881293966790573840618887450688563070295728572049528855925505123435107104776854684647894810770349360836658854406618478651493675485466239185596620500806399262916040920950109166790599021965292394425050104773429824595819878837172564066631878801676680980039874104077813223929993644048096870401364792335217659987279343296521024443732921187915493569767600095457832274345842578238688257647674214917407517191074811449036474282159142038984924500490232339249641904745367472058581143194228000729887664569585966565618452059560477328708673836036506606865035811938318903258228401065091683684944659749132724985381308228192478168413603918711167240783692006750604182888800819180488932342536872896232628280361730042634416636595821932512061229557581384173652083852297622358365011584991486566022011194544091847121181962387027021106306245893791804436395982451792614167924442949268337462565706263263610951190580947905007576591405376244696855147017672800612148584402189393875229265537849662927254032280303806150285973314045125220842242880730042363385957901113252336319925840425759415459874541146808356981448800842892650087611997339955746747606671204031997924944703175779340042713534834644363364382609996039422026434601789256595815587058083806988817568693374198963584426828627128053092220185535846794731152187354870415419038444710750830550138805805961271238262297616227539220923908745034489106842808120096730372885870272856215117811508280968434646669570661761124506908568872495035245920644892587405469742627853630344970298795105395133342530263479425021814601414177688605799357612990209503971932811930623536702145054643637445286650573784801882224197931190908588353375418253360195663796380631360600132853765264236156303422468121519223142075478610391746342485233566286425258242913716077870853866324689609277904962412080870438724535694493343190908766059417855694262163287972351795604485363700246732130997219688509608464394128458341440018271864548227986300039088043870364227646085463674522347853318942222506725113233635476587995582161900087221805936355954954905019293183097302468762962736540184033349093703689380814929646388784895975014945307026433322502496271499949487283911914639923372636383318549743053704341147559071031427578050212435100207965094482563627731766013758465562443632372110892432589261159710206757725890646414305503733795331944450195467166393779435535128576894137121511660643127479600040700829416836662403780468083595971815540386954074261693314721204782546233330903568436035038952750486264864375682624546386539205616354392147159168889484908086451693782678443274341117238123267592398129602591676780761796232617161617352915775520014176960238790631622390517041057586549272515665756286488088785301701526553976816068534587664100256989358662349084828863356445254068979116253947123784431766218004670092887166249946628680025123961148713076811842434973496946777763338963369804762948598555342613513618046930325322281922101281380452407217824171648346362397258534388160618025473143932705258343008723092520886508560422878710040242921292386372515511209715178276943321504654014727054422098261470669930872266163138892358375691822308582570648126664886449251502301785615716033430501405150904524636902552210064892778746655904254721394895597598919743230588692612359444942473850346576057574767106817369245957751250288875992419681012685932360517238575400233206059685236890191536473703110484668970801270805791858758134388414602156790932841005010205512621169184382371431905916138609303966382400699251852129176216223120810609945375550159864757174052021753769701555897511396887831633829741370835189137446499331591608131234703873027742521407369788786677061508576395082888788130477379344362282515143251060012718845775550022604508726614964992921699687175103842475149179107645557783742707956972144980140742946549230986093158115642141541980437455886955032010874313016261715997048323971027196351874006117421244801405599182745463870710012673195009648932035465442730554312981192655396764583116594959816726083456933551935980112138410117954799647050491125832685653020181819731939546236849948956977637673677963559845155155211106166200187533905247303326424925543807643715868938505543180435876154771301055941152601374926951925495247816409762069790949460222488685290487146720973905867869007402194943459124902535653848909066677656499332493701970096219658203417297053694444515960989994876650532230173419256856913143553329922230354998456228252929415998105553356809278729894182788002239021817723336251532232732635877040193180336575448311732046854426324147512327329406477075795232004695056564898102851967160778489864696072035566229794513753019832054396220317696496256484279736160132160253129836251907602666885871534359879735702902272742773032532000326738453049400489260750416871080665468564531748942362792105305328054419160522300431541357747084238318659999818093618460498164347109850692684067098495783050161338780468317906098685404163523538499438045129588338261375688264450848965231643506123514166800384021493231727520923656045454306773689875294242901708328923575045030463270930233179745497372452811351440475312539198997483343886005544832408080451100907208392672590559545364586081902522482228927655548287616380441053396128959698828764108435410354591324053892964447168988362727623627380199915124760537111739032489838872388443062039560386333652281801771152598844742689044597734512269705798700197593719247211222240624542954198793310888625685489232571042952558672788842176839652498500216035885106572688456204322706140468295524906110087553864113357764896988221313503040508126732107637961738411367980308769753455895456134603424633391603288554373874992320910944539375590854152474307883676302994243450490568198186048723171789803362306383287490011029516630708375375641032663630005379899527968222584073284418061665478297712167038834827219174112964365387207904672759608381808308947253488786610914377638518641597101854647086351894724493065649207102043229907771475548238533057484423031429217926809026082460115018820226508822743392179172938665720567466169872931112681388637195635103150587231456642394195285249425395803506543618050367716213957367950760841718303219243158602580609764467467363425941638808626069618342152810682511652048572441825287019925044182932585901413925121792338990549610228730440511786422442375233974843338062984206413343969424856251376779737199090417401431483648479030685945733488125638795612776143573864639368878578181027855331630533301127141160756940957309455867793288836393561466618688937732648960525828376691098511946825393440873002232770923981091229334903284138095280626775502647208664881205437032214433465381129779296528397310961584117168992473704194138492804396318940376920710529103675123332393546701465106787752515947874550458804270417964418691440933341789000957837139003188837046511968525729595323258594020308703519526131606613677087028753037476652084623220504295923265196706760237312397580827768430596934159569947375690253342415423423705471473126704739198409620868647050984275095341855091475293524181443136885715819314159180159836593654377852606741680902582773884603003558003392305660059907212023849438506892393464041572485117305197398189440184114845931657676050070832541920166261180725244940109776964475228564925408915826777655563541294100257915936251418037676650524439205339889663440709150565287442418097711397468679630073615735568449964638908732914831375730695357005442578832703279221132032782828169049240248002261404890171218533601655976196672700113984031088290752068508490633190573034709107432252998378367604106166591435940676850633154838918366196068306219856145586528847712678174365394680149216665149181360023961703062038594762708675220996115184072214278515010336787314522409373013931175211837912229876660279604703358159842699782750290546336944827302364146930580187961570818097241345660006150958969813629318960575569403127562527520199119031875276399254657778450004950311025754066031101618923718906768078885802888354765709659076980421527030447815892468819926512659445516902036079044272839043711639030077299129582414680795937989280672630864175453244417963755033647545260321469175405744896829714205224556857236425653820913225723029370146003408458740675369530942883974483711418092101198617734873431973681666201471352594440594778647405772787089475429445121059672272462279291099031031003559601943669778803706241251290715542198138807488030092176821170505490391500048483124818189296876519338193578434315032799179789085349729124540564469590446381574630302869856480116971219036427623917031409677522749360246571770128566633746040367683932609159224610284846226330474119576739008436524375359551865962420358458585781076885755625432179548315062607006061169536271832912226559522722681768243231880340637546615813016016028772766335663054163546289206874298451285708012332531855142252350198438087696930383425411011430262843724992166319295517064281496742704811044520712786792083198704724351690659776833689935438081813423779037400086692535564256259835122109540969306775027321919407192202105298657530069571031805592389868242418259073758903010737936504161901200516421811022004318223016118091030452807574797615919928091436377197773850262607931403100743452619767438080432233217363684467149639927263587905743858529665718026245937386420431590243474550718158186753568191218617045394799805870867179268828032716745687673937802481407305172592023592804729393519337871210012058213138613906242194825823525840242990014568275315713858703032755066881344025644912277194304789955417852943263403765551748279094867147810603411995510692789377255385462175924489976134867544769843344647714572271635844522799945482176149509733957125218631272778901239277261303588677060010853174527337462646880957571540609548265298194365468786254935348949044204842872293063679675656781018814440930970287964998880793698773871376739506854119891833283478422883074331634722777393236001033061369414821719884060959222413225213106341159565789939784565758684187056848895622219755593630546211871738237560507266257234690724388251136337712919189356800531782754340603906909656707280015628659579749538836025040773426101550183759945352704306669206844484270062265555147518251395590005461588914382070419867444517879318983480446825724303080490218346829037681489057229015988573037198895285908465133572074643743552211066130522386225272601917998282251598736071330722663560941512740553018372622738906092006966920118593988868285229539524939305251459167491249779984370369442724576218405681667630157562917121857322522691444008289739080019319340270165673979000650132414944686573475219915266075588609321887798464888144696641789493686208168710199580583016016443710989098710515853415935748094232228127406536578329276971513991178353687610462674832562499346689443348397156860215857986966722736937596123909994678730325177166608552265097092862009783798344039500846337041535838350552691592630749439684287790190050000263157369590381021333169717048136539854941354324666697566663700611616709867393260608598186161583461014982039391344252547297197290026995632752216341872927311355569363769130737289857249893858033424754251440630868077177906669896471462851713284551676962146397260648039001485704641223867188636285876328840628188582451011882192974595997609154382753860080990065443776541304493535126768571415839132680717140731053389285496128081038936246320557094439497395382678873871962614345566572042971666074051831397475567523166934029902776824814705837815699615461785430823677051362166303255083008769861621233818386259182475133785652240442874765242419078045723034351747295809223803453379182277189167620821273982694788901693774584554365727523810286253867958053424971356965886610236196134830663962408387460022019169114917450482234331481033343722752447018445623540331156242472595082072073641026339095968445555001818178370587855353255904116670247440910516174332904100883046956107411066077290965846606093363253730656975277100851413813239142364971635682854414253384558176803990038992001653334823177229464368927474337348800585778875240707859654418878689596380133884836556001624520657453390072710415365000410037987675597673103153147943158825899069119790370817946154056105756430234353561577253783668006381879615712224133004024659143955624320422121383429982058835780413594557090335583888529650478920423024824408828712428526828666389248214205477332567150341590596390473799636032341100835347962763117777561410792369764146661439732257995298104762149319201351290729227966456748476440116868312623648875233393161721807367789693556970350897934837077907533771571328202438298284344881915783340386138261820596036490179417479613188372672839544328638803744050644780028556460896349863815611022411624612642773577336014582326501296883513750760914659820759227863202179941169891719409187175579076569244318327045386766564540743010496750515972109112600323508951759312524565990543422771875781042586593167418786363877382794304754716985892365124007155784989756037643790287739518686322604067291366607160412218097984839419034813239021038061453106437200244232332159533960195773872463912539187277917013550113262077920956924495798445444855576167738910571980443958142550407290830264420459964530097069531202731443632326330740444365410967082157127507333603927112099351852577445834313418946196738149311351707291701501973129203011227787962415988891111260808890299686335141258875993189096703741461343744919391300402957103751438590218672313558934175529444939067248704142149968301229632482233632227880618342214049098321061812024925782807296180710909624161790744320593702552320551184019404714945755470882383003755803062691133540182975179421139491739907782052597347460857954288590911225272816310383440031344596462371900074406706152073558031959632113045453889988845646621713185071172507508305004352624565216291778138989186529030232969634593504165530019762357313949395490108640896135251877971580830452781340845223636613963008714235206608522378455350860202407504895030218503671488932358508480095658808468453273746424587105912060217180682606035429970194744003739410142738348565672629930602962909416113776623418619356485008375348482991391961918437683135879881699256225781920796299015476809686127375898972996186055241861240883238129036002969262608719594915451010184402773499143230626008766801378421793241632873691529431338769499844995551476159283133858232333761624220034534099600771051917545375733472576631097579791056096356341314642053981614428931614958176243028170462994555133008806222735573106679431388269558783409813548741231543907910863205208010083677331251820738121317607568300153690363982408062735178481521138250799537749281680926363482243798144797050926618273029182736487513245024878601588970900142349111439394786829322331197659335323216247499962934253709431557210874247621184583850616837437098183528314305538261411359562643589441649680320667121256555810876213721825449714417792199719254018107521390754566575930874289131551411371136022072269449514690373261822619540342462880609007984809459289635691743798680159197911673252853347217690497090049064046129947698072420353185067869904828664760814852797731577860151810506965202584710971976011560396950607826866527633458748649412334940791121191884063448190644074019602602329053065423798812327182049027417503991318090479531286921101605172529052253113944385597874152669476925127958521229284739635614639426994959168107191134957950579027525578575061356181121292901162473161512348831499574602048399388141148570912392372058659582849183246914487126346145913912379805823802833392207049985706231981247740265326458081664672418657820116280071212832516240517715555617013402909516556009876902316723407500702915794053720072525004459388857783259373742940172423655269533687709533318335164236140727848621152736479883999128513964768037380178413696441833790978374790648634742112256747586448199583006535213911753002941056557932064561918131449428946641330302325406287274020374323123637494392597843116974165702812350365073860991702960313490803956211186835914376443477697237057382291585417711477665169805396236247017956133730654063775000870840605015769782847958350064022745434330303738378096709353237590952265272894030751474615240938395675425989704818433669426447658908408818463375331664742087440606719941465772700359901276736777794704742013154752752154669555484353331859237686358367987357566416627439622683524712932568005283791336801295581709020441660443711324625004463385090909385237616869574590835525717342721476309702380975633426737198919759905605443160645546367061908092744444560909477327204742770809365046471417452836688165252398916792836367891609821427772216259055917152734628571227206536866933646406367374527437612804628276859538906205887391576125660422743488915785760844094025374534620469560152744947128624905482153439803016761132723818205242462468952144743748101538186451619143278281525950978488992426642153865565981213131800815717051259760389050032349797429591960726597118574443608298465173989309848071758558474935569840334776767603228474948346768950381284223878052482169856743964479933334253317174240586782489597990189592217891538088325130064530280186009612038028684317248790174555188237191613743192391401542290732254910250578177931366962916429335627134085649268133142469746616804219571224207233009768627480876194016447142093221095212784752268633037096017429481989395082254234126409432275825550430593020509215207034263087145959564183233027240810738880814168608707918297435344513868966778293128731805057775683299777696253839519175086971224093939822871507139917319957072530316997381162461779849733570866357086717493219216673958677639566220262054763850305393083293830958623659816542299210853540885522579025068405338054150593436075731727364994884688923332650032141776210373081824183650694873050177453307899025150814978579854702212151655627596025934539581487357061084350705446052448429372857023913734026347365974671783688656558097344680349126387784594037611336977092696420205380506045165036066621304200909773294761055482043255276759680032880052476444988897504823530326943190113107131228572909258743631892004662360848469515791326012627252118695418253801808512975203796162279193204603665926112144464538588925439004100819368435226317074436414736447059034829830427215076962741815093680918420864287563725491257769657439246519511441205290604442447513473893540909823382281455022890218341279692074963093829404200515519541471301626292522750286176565554094490425051778684221025116994451929128682970952320457711867768030693817691781010680047741244190379588589564505815682470593841638482076999199996845980555744239100568728481173637558577675572943832891604880373021517638145823847319577183533390461506944127188196283138529587355342739412987978686984614235114609849092488559748971843588686893095939820343393228950998095905788253989629281547318444571723021924015657071411182316178342617322456540529492708343833335910176265979769917782401511153598782532716393457699268007978935407217558918033619996171980533126445078554861684267165832673786025244235253958806298010229486045473510890023186226130316625813962277918093180977077008722458182743459880671793912884038055454498916468083224633068999307290950582753387066851276226011830424024625833926345627884754028258188424053124501348915258740143881463080692065040959235463490435245549985440807894407867614851602431373154511862050474831814468002680270878982733832981219556634379896245399540667706002340961451395986270491227805303156310524417589343724261631822102092478784027002481441933042147861983462814237584523139970000898102687968448094971199822977412902353157313346793818363157587690791583922085486562990523177070383792784034004039157232116065544257483551435181586424766802298694068637403830388412537238915501916010974950549368011098235128251805480764811559727794569793927928911580883164431400224761527169804265136181879943487332100665084993658064823740227034451838173324190023721581443598098559768481381502591533014623598704827891115995312214595837586262794928371946910157329261112742424950722189423838873808499154024711755125405157410942600039785628769630031785748549210241478666484989999490473543838721876970352828569024552621748761697687345172515542552753142709281071019404010551343137654798923981068425334086200649366208263230960217537878533128735080119612237233657463322945564571353236431168841423200658812122046695421952893910183419176492842745924096386666175240662057726141783338688488918636142708967135701223313576637642558813525539564287806832082581941239457356261341362931401157035802127788510320612908144888611983697665409237292836388285643875484481151062511674437624282773886495651406483724954739132137187934936165670963538013104377409053079030954758886300424587836479063616599712283450161695541496128011817620799492914762363219344579245090845417996946573376662554676013956107747245622277824979229535688466834045773469362730050342463087004771090184084396702621797688635266161156562615595768011269777687532599869583171562750675988461432713713225267587813934439094482900558745157493077736761354747768035565891461898466219617219891378972389243878999928651797462504995324482332902710325737196949083336758534969464703584563619642624491346976237663089087748768495770939703569773440065717748769868940001533984724742041777384645238394289448292967552864773183231418115091489330603064703359400366638416876511454691696196622542005075888255368848396650155484510454644990058652408699979513990727906303793731755709417938356586205005343087821105314800737415174815415127198046399973704018432869216448961348177603418235603833103461562387023168757713439804066148913948117176490104089156613220848168615028650910827201542679860495263260459869745185045791359423786247396092310084361551843072193555628269241810798303317776182858748774212824924856219480322073096990366778874383837357669719377939061405652565587506922313538048873766097170386730920969815838838912874175571197711985392571956089620211692199493389568661355415872293743939962007488956164365007102423842087576951730078039487139688703852798381759326749988974684621510238640831198846467643445362768079454242430396762579794937757658154984274672468893645362241972634087491149943695300175616099435240673547820256738289335545945789591352844256972701643481456284455668098436206320581716388043748888076885200178223194150621840774714963122402170693399906858944053160193367280536573531712472992030422529406950599050809143455663155497026767126042309188776630440850705719095616418269825710682707883027694545366225357503655259235847893723365368513762073989418548659026724971113042944824041939603862659989733587470677024891881970761895438466976234165090745598421782972602713703833378956673584714409272471074270354800952274688332553043629118706663136616467833116075491950697839144895497020904106325386391468463897333658408190592832446985072324361170996785011974732394061549525583680049928348444291221139545410035105795727220696019447059608030363030937482193720851098377618545473064222632579663623725335487733047791623152374546218821241768431250493322654283210675129881162527434414177480035063345793325736178808565805029627754451019250433673604006766877849810564067685251155422918461539076619795696136102501960132364315962205647826222430788807591403774068306361820453048043731402464131801401881161766615110188256186490300412336375109372199133927599025296664814895383687304740316895872409832363226059816385985423593431313829431599473119723118435335085459576333177385534235580717563802876223229455188929705775567370902886447856465873754581690224013101729278546344275491443001505509237265003247668243089010474022894702524708610396407483614335472973943138269044416806996518654596319128161614501567287108395226119000270361488598536130058128680687128757057930590358738436274808595346145441053125524760579166147786632089735125359246603006399404684203398606079433208173935976642672471139690035139162415050500177011002355693819594971910676428658857539630841560621929784165565929425627146049749762957399596002704111821573405685472560485529785678063272534545501711181296254673299843195123989443717104653009325593213420276002388835894004196336018651334658641417142391306894600886646003670066466765354029533523209046709513290320404891368339056013281269672265410440672539852480445293101463387266841825273568555074158538103643931631566025108590523245501382219392237598739428292856611220566407167934929717608411333954092236578441387578667675378859983911919320822448423752211959323545643553189364817944090937601945076761492917967734412106860074278620341452793059583013555890451954165935507320652081905982542609853525306374658671395934021284195644271685709607025689337228200001265553010893794636551530887125323035623312243483467728136632310221321123957698507131729654515962120627890357104974034255194053088063711398714538209547068144096888354388970971486710134331026829797871260683444001603867879559221664109938489363816358094332214191323991871714244112497679940174362285073441675751506743234030384414369044835247587227889138778623581496899656262125368515725044157810809035222124233550364379875346003931649566175948829949917680085110507886179464612079696143037362503497384389343531161510561515552557490757499922353449265896312444821657735735015968847838580679774707672222682646666176081671703515937407924076697187958011489236266808704400140075308844507193855184011139833442521906069617907028239513373499620118474447955331646351696577125597130161859396269353158510205872045971956227306113809103682979125444206974793696298405352449038056207360381232677962651194005664126275051359414258096113990905595333041277087696786796688493797894421542188809560635388205526149897368924559516725116865003733888121731719833034799888436568499142508946360005822454241807884742855488090026694479828453039241853692468243814582194813300355969224082324161329498062766356684763851218592525055075820356427269878510788863070591448700077535483596030702958653965078365911094965562660759646745309969299066089542752105798862987176036760104964205019042954550343516461653997614308770473874033737844105287218905699954654022854772700051787614639835097538503731100801528027411665494412693490147420696187313093336924170762528729557705143589576801872296697435974748187574065296596357126221500867958827458615447667872266323398751678912912961416435157906082823964757640184295412397578937712923771096526003445082507214838915192227943020769385772131119202912344413540332868308843546861224367066635435203109762568252403372223759298492876931063521719763277993708623541590425233498277193612325486131173347592835303374573186163692288892729665919377685339373937644157028417959847072286163045792028515465479100677027357580320632112559684461016117606163692981662855441502072689713720639584530304932490248890983336733870654867937510893199988129773644437144059621808681377506786286819355067916635093669025017277809618639286767570427113168432809469935291807497506107726561277640213095572906672202084618200192396978147201786527849748605899959825919345188272913338356232989581548827350394152869385701332532444214049739470801324871287951707331473149847333652615846884063737461694234784838390970636924808482085530250557336958589440767664131586975894547290809884092649473706057434749424545445842612562968266661622093408444605732688056694823722647943793527977385251430261675616206383847693255197931419972773448809640424234769446379326144712538670234909653069210990456208783992530225103617839800932212562649451870401739727261341853635980996929795244510737844362191199856242736148034450124028078858544059727731377709565557306631977932291854296512880763751648318282240364328416082126707324374280697733377710146958104919786522126242364290949599687768185021597070189488269288593156937031491779973452823802545484270774057774013552433488601001068681615480482224664713349963267995218372504158950669225018266983641747083966415098206036052046201813842924657575694242841120119666142730814332596289606322653652291098722420500483516735741257461885338127640411905564193088051373684698764900047384206396664045408961037098777617209497722895188749427489098565068799073599906859773595207790179850407332063997177844735684489910904595853073934795958916775255759465610803364568931154494094939881922377593552226943256196302779446251082558725825411583225135244439477727307184452859030318918932950910708213827885656037065648882956263579570573355044829810835027328208100719025861525307046097826279596594218116049497553273452942472438892587203248341962043324804892599333999774311269475392389400571559899764201747693177539779574721214487066948075816259896804459009621538949354423107938065166353023701885828477957268294949929164365410677577616997520481941702558153647114856203006145092841500588339009033257383373130012489498182976315802441601937959259956311296600108601602717258557671860885373813308427355438417929951451425017597875069269510189353896055564909610948791845330495605527727052858917908142467016905516595849240861702012976893948636369050629532849431619181947002747713405693064974139974824166941472844596505775538236834583517087622712481297067336478453179086803398196944962599479302182270299689753822787047142994159140626229234201510482498794198840719450769213524114986638859773953986263438014778888975248827931535553400233356389925363644896996871064266312948069492588810328943193344741427540782217253649356579082637434815790174239150775561390484859480187499264815388469098457760388743263262458615703450604125147378173354357073124681844871736113376314277864250771415307477549321220811373394671267245847689685744491953491513864513444190347244865234658448065059501973405214128664558504054245832598944326829451930557681135048476508067707798532398792659928649158977190590025848063731641400603970154115597764145869051961005316564412977608406748999830340917330645102760662974133756206673650793271331354648166652166602430204572113472400904802096761147082902098812785762328382087032380823144156839333962308720943242302595055814101800532805445444912520566724889978967584641310323017763280273042766746212935049414182653684494945976341182436893377531853234749050822330529044757359942198005488365002855207858391409280252285771136437043972218695753396805388647808285589205874336406044193943243187998007985517740270228445251215561149384067508961869980736291981173932207082262403081773677644513621781775001960158940778716973076594399180024139689073295696322544527841938181042280644586911710512066159027438846465654884976364544199482707021467084274287223090155601983447792867907816038868853116932994584224451334399361584463710017637355951698728487172756717039672817724906202383926909300914671736216448587378113408082889276699036575216768519806046016415829722740480189255311135140258666112304433567370589950394377341098657661524055741520989901532682820939045839952498048344108207747138105446726377167210193175590217339583107111340550619464986017494023534419358559543491647162085464585820858867442571589592863942429734325311111404618030446019989838693424609299068990341900843399305566718465126638271364815742747605977970549178802734342659462646502595545485109913715103552240890917132803244899269511195057167839137247307432218670007693186485012188929664524247385629006450647682407336798835189291092147894352627375982411205470385397371371030270831629632638897160726440635062284247746847526686971759392879575311592973489743105824626857939606027138586385965470445464964809380831617432702967807252971738432387144754316414196785243067817399494735428482231467134362204935297214534422093980370034524377865218118450714782706147925594898599110984061203498344039040063122291848873795562892708809999075428196936608187159263796729379093658759424890598341530760296259372592752616161747713308583163535052044959695047637490495440036263311735626867245235465101687418533429551431140658726815434586042330710175506667237059868061292601294155187801281833652220093667769580346082173302517370787884953171446398828185813362065509830318571491752816940571677109118125820461607341634546318773191365592623066310656724891782238890451494690980436878099736690063786318820118061560898768999059868928913124382193255751282126776891331169117110958463266191479261033317392181947110291249387553455402175985076535428971637669144029455200646827254869212234329552696581830762575464449290380366552576555593606749930176749923543399729457536650166319312238613118357072844337450474411331777861103488518467589676241743123299986896321984109973353225396394066436023876507673654439282944027542901728805853214591020467245622723424411587536930706090804868382264452743407256357403129432671129875656585783881469224249496209751128551517125745509452756872819386085264564929393422179475355322243194641194780018316780574000453505122871670642200625779474442594327131281817749678942562118571535707409524751465659784550766787867753565107505617098860733711252120880869745866626322260959695200786538461438416107959429571469865974934959387400281536669392834012534177795214333624987796074977051389272420756578557522834792657661961128181409588349118437457731692535185489474686339991770053867389610036129969207029114082990248365274900990627056284150074096489665086938832402995457674308593407579533718940119137556119312055990888103091749353496858610493433528459518214065355985340886564964726539163408907894661085595008333956870699825519522791198357241778097633306557145463007774772833543619885981132603779919557047608452015326996276235430005506840752695066998176077339772264378541064670765276442012386006082479647296817131135437973694516281901868033820835203609806219571110575234476329372340710570337151473442301250605534517996644353103104651491342848251281970488886548805703924367907837785007674052240803344785492858908225516468798599868462234400834658751512514970293174986219622138243073571372300958136325350158384294217145913220163191934648336983679737056545794547450271824399864068059995963230446155721821283932988395041087694285178594520747662587601065901575802104630576697833581770306603760690196500274906597398917505657762000851600290204889798538389429417824014970986162818921197934164982162684487196748968930533410844048012169397068600901735920154163761966017692840295365445905344407340825858140434079220524846920665498644464081554867892997522291275677472741071316274547527057961641111156206232067877449582920001528879859336208287331064092614588078534930678975365475697058165423608329805347178688672091971728056450057084649055902677680929509685747935479620074591363470769829413952157141167634916125219631133982452071755147862964527935676510430766988340478931886920633553618645783292009181653066020539218482301865543708055447026712339352199183385060552781230438958607424366505840981708369898626431118337541039347038933896326381802220549975468712445522609445096830238884041561689193752045740088512509341340626481759450170631652296308165186950783738497129406018438064254088455753258396302092460279420513767176545835683915348457583439237497183095047712223833042927043847601474432146617347125228884097829827980803478685926912456197018092278350554886600428201256603430735807997026557478363045987166314321994528678055905171561534531456679059201946513080416614398394885280162986519619735190395260176847395579015911940884687920963030990457665373430644063527085546942988422390520056282172645304148462658886993824918092927676813478149582609976850454543107395649033873106908696855242248427522201142836622434244584835823405826781943865302554185219861354806679776267892060836740578228078140142333831010714447203432120049851320264672621971240458571786775897591711207121337726460988536124137578121364216401742297292260187378801671109047890887028261671790025783225476015317909523467959041492142283362042355303975820911595301737116310140650203119648546079033395697265554320243588102318298519558618667580312394097092103139622434739400711667251386310798792547074662390888633863418875875732980291853626028386278782571320697109268933798430833701912516428631237112302278534863636685674955936374308455922001008160319705574472800215077934988518052236945077521845537816624869766231340483102701278148738785648433464889040663059950762328133725492802393111212564229622287025543849445206580569771380495185730736550070627889523761143987392298325379305072867747798515200864696716093326554694212590380882684989680857462114814929263536013663330918593023619152853321826075898460215015602473560213917787669354658916649732192606520426162395384719683794817443049794714810094435294383713897149887723723542769649876671595121934015450369235726796734299512371187016552338345182953777476986282393903588925826750744893461614321527151680949250691750120140198959350222114359656869892637479359243324722942874672460540468971117249764965364034208225875026832885250114654238021791555897515890404084335573955281447582458829831942169120032433269426912822099480899389299177166034571527810164634512288708094898638903472609259734842272852007591136957114124954267923186323648343648492396909701342181531006095996454310399176972053426613792010142576634710471118522300943991597088237148820494179555680144509357078774132016433622542652364726496561310377128724690058730450273583482853668126755647219479523792036984802920560690396582898656166977494880204908860621118988219366365691078477595636229457889853892722467241074684658931766854003653309208077474397552497861607253029971904359441658964845156155624862062222821795532798043183889309972829895935609417995008975909391163397233142259365689519389289325031585759141368538060018881845253241225190226787902984383263545661682661742902373515867343036533937922491484092612154289685926093195635724948870402234936305323831539745678485748377394058584160797782282814718030193971625410047063589683588644785281451223317372440270494638433858900782573084314290539009369767252088693480684849025030126351747643921484491025755098282019523665751210903200033638732750311869356383093089944133174209900086413760494906680862443700531309269658946590010990004219950380032274339217809344172514860527985499130475055545178972967688468995665989594738461722078838765469600993858403609706503547228529305221608797117437809040758648245287674841266626494255250701115723938552145032130322348398454627815232488614133680649577568140515055894102932513374040133132798206088059039425228569657137217184565918347670749910635925645714350031928291335331888141213122235313346697805672517256263786876528029060875845218849634700594316721119377652349857168366561663569852838206950756987573793375551360438804341417237383635607743759829756532641192845950787898324232490202337988451468212563562744441820830365310462060232249387340528146434522014061928186836726901381947291181087920262234733554211523235731562996806276388590109499911882134950457298164733681914210318906549365664321185427083537415507329495052411134456124503948843679709693700737043036514845014295086531262826123838213866097379148697642879595129708465730662075656761836281645493920560584089500994156058705560533205200735357843673559502108668826326996761765305817488906707411412156683505196846171605377773442864801612486360817818122065268730761717268202941074087821884610547602342147030450996823637808963209050904723458754391817744840467119001966479706755685959312013141093890310092054912228162275249817891242081897041657357788818055731736321967771096808807285628146898712054758223621012470605479179040589967741058205082507913791399302353820488319859920918477918948538939173587914172844663523461690149296909712538534247712910205141184157810172063769369536558752656292182177558744850799477924899673677757045944417356775893032889889059827020198281572516443319072299438214738087607373589887173193335423914749772394405775373088325958115325455609522260590288507190047608456189606149354998406952164561620976358629176478056204226459466951134785393827175036537947377956857876843195813616672749682886736460648171813471574497516469795201102525097620939016535257157353758547227063223037978845500732025973751338380156319562811034802095060612186213943951275499645157962601411944025597725292042617497226696984230163123405096089833688807505183537592062532922826944252204545489276494646307814155159748002611156985699895394210261785480740747022677147788104425965135509821515276398719895613411035125532450157663600931712846225224532391229100319075212804007533296219893964824583148125506591386797364323358469742035863096307001364205995721398096495793859158599027524124245611223023314418074311204475087738097190082312015639556242854675418002875991839009575702886856732493136557401940266442627622461663247534884247577329058201361569321493236116332899966681997415478757370795866023495476182388483082767892117792222253967853039152907448179296913897351453479572772405087252551353412990790511502409319449593251366568501835049158080761627063389100126172106983211545377177551362874015101426740540880715116877720769879700333118305947268826389764990135570775320244501788013095414546878696257456838767651886366579400880640615962981140321814730727828601004214329373466937917605846342829088132970922812615204372452480717387065171151548791678608060463080950494141061458199651122412000639412469408830379505199571395734102312458664889227893539233106497501840509881627120610245784236304890243151080193280660845852124417488028789489299728703667485912939579950450113035679788215620617261885854215201641114902417469473060372071579889292750027923694163541434241867758768233450905226835852691932442618051508891658208337750669414648391846525122420727677535441237555140151866699109901410219454815557691663971556905212202260150415138320526696264644284608902695628814341115699150424813292313739462698966847006322717465502355509261153825728396346444285198105728805227375225443053734792454045463229458115966822886377525228413223682877002635879479538850878845843262124288359976672490156457160290673622467543415932935739064765359410238287019189037199060732133885657243537717716012461801773406576177571413850541600795793025407570924582062383400407189528966187083282201220582099828380297977038088040447749206909368219587923316045968792346716545805832662790395196529154551420454534183303080115580739154919805500850589940551525528825427976233755644600179990121675182400706327869903596379750940301993159637707264522899250990482300635747560920888887446454176497742266229869644851668733965412984670497849922416285971650104535054143720884938945985843758637370853450099539932418556592520880602560780209664720339529812186102839063613347350741480599959924760690663565795198931787561352748543818964711072244189933316847531704247692078093183903223661043438353770759914445978126323662266800805051522306502837966673400799242709570596550148910226001289678658547287689081708773251636094553961647188899301527013689973955828561354469362737009074481890313482863215800271073143844244832430407108785015891660827187375478075966847094712925155014190303361083590019374799547306172272469183997744154873128274283202218261241497898945762706896763473234719467554433737883586829314853963824827152651699255993410669968541846795269140499091544458668900167281927602866543243809360592943009924634740890063269282255780664693206879625995867081956980351096092041053610012976046477878462165828376693094430191983978568101623817612320914482492608502868430996426627788648775568492204400715408516547938349349296592040722379654931866633888803137212232429451395550909724628306269404186196401735721975602815818251011373634941274455592966358453304067659209980801058218921942071969745078471008491263972972769648827204761769646146814098950613526687671873708217525039234016195270247297236851237121547108859017692398055988836021368220176942084612674719211472280275938972931934107076796367966375759672466074242632054462134815122465733345123297004017043759389320484395739828817843957038663251546804213449611641828779407866354618010981242249822979846237545840428128762268952597646606793101193820087209273085593798952509595685144855473036776376247107169500575748621851710482073725086463082263217641432151931196958894336845856154769331570951384846832711660875130503388570486081992824095817855124689308818527990133600752048454651920956256252406278747818083071674422470067924868475740034141834664719540394731133477095090169970398665425294005946183716576087893026231315090316418566560377081784489057812983041577876647225932571396527322750857149892479950366925036765641007730373737603228714070929942404385584943309587966879697759188260075370355305071196389005308845832092424593510318556632263011466948690024224986876136612608178415962301978738457902620701692307980704799139222632596299919177193581178855431928361054785437934616628558336719423019338430317209221548365704132691211940791878607007039085040199368621691533807810298634119571624143362717621861194703143534115650067899570276239197795778439768159828820656783967937574150311025958913729967731088911516765629068891031612493925922002895856221258398228464481739630880247954466067683454904915635385239940245920369301228976553454100373285365195003468236584727684169539776546203116526730719307637132110496413517704286545852686994461937427826430200636663277898792270625766456481822358269746250054344222080296495083757597399219489372226040760784725091306587292600420060161369405520802096480463972989028066031900592013644203871529135556427809964546052796633010505856245173026393899754788373983908673767240917883212415975169122929451210440475821714680818476214839388585227299066001386049907935933689922135847079055167460276537803697702189308816684346480896661941732655591874372119438939638317544048159335278786153517569098355184218465592127997959317265277625909838665095644897105007942783634221338537842751397533059798739613654503483257321785107369935171259187142774584010267985524817945856063281545597037948398771126824397914198554435108966801566923087016975684088457410476816793627963500495490036272074202116679004122962812383851335487750903543251321616205040882786465132600743502488990229165486299221809565355971631051482876956805554557154420382716675848020393632190681867205673108977417494795991212812824599406823270809263185804474310827602659035709904161398918764738729846710445436110628299833574978936995476409179467874826819127584310262196824871505197563855046994710141021687138584782572015026478263279868336411319274919883018596912866824266081285050771428989202722235994256432679284037581368633325135237480473006745706579475795511108965921411849928927092566303285938338718684484669070749399201140235494848798960400352119647571695284978077206920667672366436255905560138215003530177250089951153898696308992365367137434345458370465586259744717076711749839909392567610977043579357519463268444992192431645973694918941252348465935238213862447152191096803473417014192358884258525706178068022456265093543013407258135905023511631021954991222642391612924852560846306229946554222281742677029331796888810554363337443438544350981649192892476069557790224440565426903718743427998780362466886981371400456025461633347320107692285453532784349843370899035579545607668068631414467205584574921428233061506919312183575264154053241926251489934753575403188131330820215772511108867997179784850471313007041194635027628852855934721356947614514788872656036097882015782348699226710919126098325909740019956176507347889978703563106766210882314914748134995546149174096131842999953582442101467250709240952292063808664955618155060736686060648592740043621818151675749444467970620200222177671867443807069711910579301026077826063901836620311114222904884665206331115518661218517956329312475510168284074988170535668591369995100784213329695293344753740896292142083477013633461179843210526174696073077285357766214490342673117501279626161444739929742963973957272347606941724831446095556499907206048341845340475195576785230468586164371470584473485436204632954820722646771260101051940819039045472144304432261150341632276731365517414862025323446838625649017055037847209858885189572960708128993791668262558516100410234870461408080296495605336222583644545989635031415914790197219153557377493881007169213411975813250850545652225026922798080735993115146589837768891275364677669050113961089625393415499199594492753638278243866659682211974844640306307767984919386151387243074876188783644129496425305037358433473892249171068632371463410132574236603565558102457612076479841309129879636574401577785226299884005555510429417944482803792392972213570764632286358794623775109360856649000442527501029673097982480108475860510243484389494170922697611070959509010987582297474937644116722074692800289830610444069386990025172932169125905130034972512406910253316516710075170516920545453903314978555543316900891967195487147817783380174915880946688064882773509726591185780229689247577824758305506617988118808699702214078147161100863569560703861873130321844792164028580332303690397300171462949758073446763259523250126836966820475322944340193352031476353573892681006575458526656445072700377919793214282216839553977355885617358035072008916990335631264707373311751039712415284951152623919262320097224072203835446102571260801336172532555019399794788112648129275434536137859313050158516503299408874673523632928703219532581101676431950570183579721407539046883211283232454621628330873365409372640210299356708137593721195486959410664900474085720736148897799807848422472653392340477702481397637528198534352508275707990246003166439549265122478081305016967963936463760877596118188344751506441085300141818959638891292268120580011292132889917818232282968208888467234666789275381069646259831127548427927597780552387970954584002004827853684463934546664757960266156732790255384208962420791470020973483048320453728722512991774436817026539436249168842444315050208291311149596261338765830930533418673671016060024846342813997422461351595529633763842808824229367393019034941264330933216982349209458224852362925380248337180463333944009726362795648479367379017681295888520801661368239834898903743501331174289386751534307014419006934892893534514611242419583792564022314269615952584378455131741347603913890472602640762008497053165048233422609420834401655772664296876937392742687981986226744148735379000400805033704830893806651690662476628546952347441522537148514357425096908900499722994499173327307819527900988096591092968891707274318588217050482800502174026931988562378853090985037076855220984950161776242694452152431107985113383745605131041395858215461678635650274334730048966656879640403434735091770628203832390760186643855092281921065447023085789652337708878740059165674970896356168371022634804992525477900092307929160085193987186148488000834249275316260597437197992821701504341326203851052251973309343400771184743063682828904307167501032065740286760390885131190162667907411140227313984665767595373989399258282363651355786537367284044564007683587958443607412659900833407407313197405418273870731054602012936081949304741828406672822467798972532404034688894185539682135506641945356844074934708971837643567278959816504839104188044227567496275603305049050467696045049614158849091913214216846370307346558800110402410862195619050040128247649622173451698402519632780481512140168431066220645019018044875259127697218166920512037832235778523233857977120863144885350501508625825402188406410260251374905437898299786170880220231949714140599486249804903944256271456955579396524485879015394582428920120350661406540629346866552381637765271341104082057387592550846069342302714513348443450465942051633635581673945924437617975446086915764193766778208310317559487522908443864192169243938314815523015745271292543821183098787562542377173170961612967069533984080321855569785868887623627821042727018539262234478872564516767551817371418440833804040533809557141235375617556302377914208883173227089188512922056574760059866086326753262730549965870355740568111967599135417157714500600795616703135379624868641786682357788293222448742133075788170536528904221595537043743502171767376583761029189879329730537559406549107712676057474540893078349677252286555147522215012082996270594820145798660105448483701922630655784632626004312987955546721867838307787292930056585992899825250243891303535694918293849211194837483893978797630347534397584404690683066793682963897798593769696958707379869535894964890186423438661155566385473255474701098978320139147755438000845826642756468453115952316208630284874127323152938395342235005864776537024633008282445819514389259156791341652319639660862357106534334107520353663382061485803262124261748085318488031687990523155365500768686451449280572298824141561731288572198771225441737658230779039521840288049958239945766515523279985611154785657610332918401767611057222219318917050236253900367530992571279484633650900598279005147557537631503885841972047306849198934556130333613527758239763136547142008464013480546404695340369681863421050579076005053157635669788813599167160510911503033228489772508712239382629848367005293226368561906284106505441878339473108342566914880742153034200095460153725691306079239581854451940160076322382293933296879578520549247395906380585566125232841871450028904983317102558074331005990498979982904241444957483589034651434811347471425174245035873001260665224662072347403381545512674903299733335067597703333844221362641739533184726040431723779995644438221995520816830762075029567453894524325426600306222580059770648224846868642685393926759460675949046053993164139197968939053028307058111552807434731924124946482427596575074926807169747647534455975748373881641342850902688429288104483371551882202381603055571838277132336133943417454606396966362772337265886661634157177028020684842876142465288139020228753287829084462527441262627251217243521173192151205177240952455299724351534512263786555049818784997993352928040635133942012181253976555355297701486508804040909273327381361055664558330372468173422850988760717135449554922324489502138463539304123505582596451588590020176554313790286451774228480442546654025907892938114882863265201324120228582516114371366849726200530257458244683613865224759724597901796465973919706318074473560256566104614342318529274286542501421299893399800999332332855898093868103531349976301007059010381056886004124959948979038160776621310138639211178513430075962443834061943370717006578120120388181216527870759043608302563121174555662226300474608556966400146916786647658705204007553930118997248160644813334907591355263727285995186353065257901980249545965101622226148202840335466728461489246822503256529493363165778471452001232780469516071376887002758708176663821317948213592048612433537298419747718311392223226743963870516037013643239184056471082702246475611140890856919667220140489712636211499284863118302725060374359576114375586557721468465428864367701994807778472523697233868197161405624293264169562707257650273198313130755345551511378871919922939685807184314909337108091516813011557571852817620666758329588351459954652426438067529982297725803409019265922058066242031662913804010364339528738491435949705468985879963436966962559186659585267623039184815390203794334928766375800804968629347456073782034088329690861752232163749929714839013169208273373958849598570195045123465966809311713099122943970825594052205119429783028066061391103490851497099235296518172458068215946264596671809729838617993994008767915097952561796183716885066250903281027103730401002637047920276904249988984603313903338993605825269016879326365659024725454724819142552104207489671964046066717540574464037579067143290743106103481693474455560696510974422798170269915950804075062846901579004338550215606994111793952453485091824596243076795743129659723155784261646004076283144061120831143924742772520708117498163947730746315314512743765743479980438550939764354680482537752671807540477860918150137156873481725304954074515585048061417574691487952534403987465075225059325172058129443508996049239410937682925837610943256089197623318258543230492858340845351395130906755515906306946154020240978045086775991919532961595369043195748888758715647149945158872239784962981657793247102521929625480550419295808696444391556220838573672726507211023141362093655099887380616526426904320648988150704547823235794982788793190670838137640216515363418723153443192394944651647259999155403475177151195982180811976549211521611278454051789969836443227344148561168264148557184643015260290437230939444997946320598711701136341042164730047472436268571618788999925992617221291118643876891630130984506285211923777948585515099727986137070151385596505067917976096538160103043825753530768096802909441620488169931995650146436615284140205193035954437005073778959459502040815395895611457496837855839097831605935200101752269692118028449936255784214158891774506164999411730131101042461994070402141540666919675172594595114041127869179044017897611465760475834541551107905448955300551233216273518598220301099977920269897003317741846167079358636167093969612307230517753473961488992682013457365059436780898138501876568844896421467029944751660673826825065523517892527494502913364033106651141862085744558202792124438868793490597833385790690803592050727151142070938441383808148998695190073471197899896170708485657079602799270611570113879572692639635951168437603106427704271113430955846383140806426695661916948377315888304763792160506943063312424651630693563884870573414690122705257384020357878235688932726103336481734563197280611970987158791828509792879475469527172730524153580029610280542770732857119002886010659723007686763440304186714680996560739270842363283526028131751301173675518289243733441525478810710081433854606819742282761728126614047586439204692791835629233306603835259176331060045830355309319097065453660495409861817523268679806277309714210707907469535564764730920510508689757581446652185144485022689963431170252461113905979233262238521988143617071651451154356213327532486892993459572528167989247070005248617907583559388689948006516991783452323199137819750199677617703408489230689166780832525401350305437989700861369102280937489653345458677139107762289004144441732395971153154202431167844834427339769881216607404950926564032788091998195581713975046045846252685082931654672550473610394277024247866930689386946024657496279589166082677077865532046568766457080654435065925678068562244571920685465570185700628543471691715996398844168424732307646704094016366389892048398159709054855049014532034262966777268720321929682715491265837344722671545107986921029793890617865868234380905589132473498921241178511820684155132813821251222092659579029530674126057815551201459738190982458139974712613839000941921281344989504289420028391822540430396490075792500469828691460544445059582084559758725460952285147621043173533963233438468009573483960432825921831879375445323780931470109521550091991585981362758542244157522533503226574161837231759787690858317613372823531276758431155891012233349902996812122069786169109747182389478293482653004218119297923525021487261269151738183528768561874881174744933998236360664608555293057418378678502565570394669801012850693519436397337265271056925516060162703333147042138742687550540853509701985270719481899874545104262344289455744341204444711651287890567553743473404618804011392092326889206300492648983796457637311161812201396790001939153225449750924896283216413335516985587603374910865374765336020490149449166991862552594395609746449939491759379289305703769557269717564025302869882340643007191416850631178003146711176449788091150537323149178262726085328089267060896366191224998010331985202358046290295081881104867878515057304311238510771432437764095594656263229996816239634637621578442490038269819873075508958375008335932158671122888748426731535850171651510230723259200253342186812050794279390056943731222531428503650796524535421009160416887993973777442508254244627048329399728953924397461423701019544445832616736343752484041776259992907897681542978788678086195027823259653862704555158375338998189823938568818429834312181931451977408500776431393349900364691397667624729396558511310277534128406571192000183267077664061953412395554582746822816464880442622385117787168634298303200060044192196623397425584776597848417065311764305591881893985626264060326350806646222976348716533741033207965388918295630348352695523382116808889544531461010866587333919283601793610337844462801920927272253699724530357086039465642946089088946973776940432547348485013249757699486814402396826806192921573599529832577263424655622188400541571415028481344337905996190540394543347299861448558064075299991760288767834308844063279269139054238382996991651750471755223256059733423098077497418845603441104561645547115046257607189256845661435921021651480171859826632365303328662281927637561867900051330976751988406748398967294039955688510680666891510884793228487756826080475564718684923923421348703770997104016028450903893686610496878528435819117258376594342391316061599773690678309178164479322237504430742926872802527613759231827926377045497435525141016665764571489580856550965255282044272326650771343396448529109505158262282033131802803813229032467320673300489120733918551447398181180685637449634078537599283409064396898865598882559042224299165219729542084376737210454392983584193823905520436807169096572252820758777591082038771690172023332558315585143714669734537523914861253078740842328242596320672070464564741977735382501079915496467919419122041305180599208992256321929987046718243174777807071331268839569880247076497314801460258662315951956492726178732121018631413089157912275342122851187893076234473614104834900567942370472191746360102438815053376497599815258793300513777934235693927732333974698495856682166772263869078000310209635392185443388139216310906083066768687263290327115090631213069422694641927060940108662117252445740335548282613413916635867942328988551155650193200332912466575438908706517567573559782338400472633506018110991789531721119257071665256058319974693704743658379875449052762361493435977668181495640129271162068848059166555477731954537213032456480940650194043067326254519166847023141911639694806783428695361867199951585947856268601832813322645645200941199319738309026755383207804086984529699085716542817272704262597315560604673427750768570405531773485653236533374347751810247020492367413458493672383849008315354343922435343045158532917992878276704457763174141873178138673506152342131562386265074112129713981920554363927143924014339254094128055612421992914002793027266657284738511252570347776620340160159557920537956711189736653181654482369189106518879594378734493091975722165434435200354604970103633813375268230149630759296076952783881046248716787572223508170504045781577019491066627201570120587253877209112341420474981774907506296985846325131830151667227755894178865675202097324213852941022004073580684694025462542570424350056350526557113416325798449626571938896179686562997027837986575966425568370449155599400930958555033960728888649913944722026204882838304563642187652690051416606897068011534879121242204049279980524224184968511125073046572928890276354028609830909463640261000248791050287480868444947736353182376909639713933543446626279990760281654773917048099630785072106082099092562879368745271106125334992611620129145862499662791989657892914751884561525737387404036947218648617008140560395048948960534042211103811420890527585863290441873901063407900246276099089585195834884374823288140657646235222588142053965598675807651561265290602742771454134540446829115049277952302279665211069924963263937513281098053863455089108722076211283598849635652565928991849169707196207812517511757817993104207592892332830769970547006706413633344920202510840624689553598176695026504589891549623778754961638881941300510774956435439430244190032674230855333500360778378515973625648248473005486438810867689965756003052535705381182918456547382338994616285465459583212711919551531892070787588491479180196184803282945229746328008400229720159740304327790680117160269429101137325260845218040233577412852402128947574494737932239226180577297923540280049177256843377411197968046168789365122168958486580889376773090896313501972890161042265341524568752088952642174093552548305883765216597536063222504012850008398521359837931624984706389770624851134228374862932911968374579285978716633831367187734000451710717957616978305461377825824111683802411018518995407706173666999579495878162069629001762757379833272915123035196744496278181694655214895520208755461006434750747102096879690514830814848889952920867537064536617062510571384894128749953190349471915306256092822969732774716951473608991449003058110965783625499357228134344391987869715708245139205666764792967525173425730226229200207133333143551074834222491028878905146721010243929291915517804393248289341032130312816913163102619573674286541586301147300978122395739497397770012520071477759607722586813415314459822172034628275092927100430822978206895881898988866972960219055912398441799437423370922801805710714799471728120015271504305168092175793427183296977617041135576171194151644932514409105117286915052933074489828335732420135033751444518227172027469969924585115119534486889798310496981246376784717833647459475221412731514697439368743133077245138586830885100746939983201074208728535567521743707308559406097693642667096323280809126829743430847168142004421529769636483256195716976652146758928920471806785162767757310339678182824627563407226354316708384495505391815099529362797327153035642752356173817389401346729618717894853976189054448798123259942864518923697426254422550115697784877363409630166272835189507305920444060059779482723891097842001658667226168904039967448160133200366920030175841469754135686417198680465508385579322161595548983627231311534010412437958241404118038154127742991357436194990398176173798090575842081069425200212418149424602789567583627409864492579223660015987210056451158493058728172783378973494728744046455671800013994050592225945248667876355389872000639643954414832304607935640113268447042951129940189328701717174239144667757616417950525280374290591055450580175588718895110032572996703822395413477884287851075096473016407636333646415000798442867781324802228804569616569058626204938063331190254068116803568847531976221118307481692815915255737544914296927857628040256031767178452656622443485004704403120086100768641060061508646237474483432559944832739304129259129915207967524853043818845005979485984556943575274134312476264113658612728518834402036734466511296231127694618094422246576169226665159077173727356630841899401037431631058544656141354186484884083580214792165052072266737357092937594646320264554280683642094373887622079135372314055133769996905663870239628508456106247760573553474280182849069839381624341643783536214704177091471719071796336499110409006594379001885820189695138232460603216479630528718011421211198701423020268825152642590403194096781198082729383357274192488934117465687338494938793942103064447983932453112799663841006054635857664510764448553377320304411503832822930942526113600264858296543798614245842203718980818454599760712146897276352836967797697813331988790522076999400670864215917163840767130242957844220600845432224462352145527771989049575120023410731135199685221004370427866269432080164972941600122791012932507271557569236915835129687189729308834074080719212220758658222974602646567264696304263395095367508609268873081507869810710160491170507146279231745754312851512818910512292506878466040376906661227506966441529467593056627506157610706302764714736560940165938171097477560789690967599763398783915218061148571750469126939818594856594472803510600227008632940657193235006198514274068262455238105668367402508743551496968480177816587182926449793619625200124190795109304335758010282928481332063764931686482927337421571821454878160823725161594422028083902461616522054641581050432440800462691736347551761370693667732447973023813210622431076169946783476662835988488108996125311389965064400474201956122950977512246619736822461534511049427033551070563722142536616972455655346967857749834389653482745206211498876543380786230506262458035368648689146765049784890831956631871669763821556606149621498369360204287526264485425837138228451713185509449029157072915459931532147199343817987998929067399354507188486298056046539326427284184888396378019772788594784546956181956021005548577196276257523932334334406951754620446511262209035203606818402028699156409462378210610024779143983484873252837727307767316687295805970169841834402711208864867635997242734998394021642171995548703755170975370423500841917769241378906693585257596675100515557182283535234399890295702323034489673949951895585142976321152352506824375720430894608398936575946584200353517187155210581588290649449020648172203050451788802658623864776902107796875855096432676803897072017961792395608820573469443725095142400141419411277173884127662317717817776287080476592271677119559136940439247235209126228894797680289983836077603843893793874734710406275389220437607316280933028155863362516199010655182106346001476129675480595471609223921315487925348368788615024307907992029834060020060386667216767897834303540588922576384832411951261337771111870457913326960395845771948924774154379061920109836700293689480102385157972823720827716967378981957627262993717116703675247544794679048582110595705259008643740773832179928422484207526121688464411655079046221495441254756372834282723492713273733397601256450199954030242080033048296166314515436938997374599786219153357433895872500923089793296592408851232173523851193545851598995935055217187886657126552295579949018369165807062689025129417473956388120841207291600816564943908209802319103219538972991947308832286767519246882539826170832458614313814643621261428512119314304279373099211305063472488434295086880222694212343108268314546131017899416564818321120128812031466778503888528263312754078566493524521444955710510634399953618354847653032963425580433129432622683401548587899564487030281087120093619337873581905002061686608969320394390657958250195545324940736894982878132937246858137938964277328342086635636339082306914148491016917432565630185250176621432231960049426555621457181195782959079832046697470542992641008521992584254455549236276350929701165179414136357854200606057629517462461081796061864667517981367263145441995255800273841038249395256936155967138438990244428641742136684710752377023648354060495610334600820540294727712896653033255229792423625292785071626346071300371442473896447160878508927924860786780131754246981170070591549694611522272978095064564086329249029212428107578155827894576976191200444696401103897614804883154838903757755202529614782337702058205589858227901947053778196676733973765367102512057301349732719751944678894878636611535535905064795833055354978106034318405352121637282068449063109642291577791240443267263934812151188866552225402940901026867470265000747589217353194702409467948192339062283208203514522743543076915417299176863193478933867620941443260894073731261295796907581234058288726044651579889648587595414006288095093741771178442499799132241637685394270644101796438667663676284186697522323384732020327467356178403761264889990227417933116769289078074654627408629444459950402499810117845011343801949536083762784514618846346686951178306309882299967276751873954998343395480470643335363537754982625857948388301599629253436415480565860137825399214291663650597689022701518411628362171499965665731501850106006936945021845006419350622463658884889939465127314255795019195334537885840826238899470590922377583820591247373273368191527650594574813129777281287481189815416201259686186587981628071799318542294086078834612605049295676384549182864986921194873210284707623224056992895524080625659699038294922542361845084018511038602693940519056885502873093407792705196558309760517564143155239118248081908728573519750442377578030222253845618964967064406926001599794749574219980289431816165389753626713684231266350056685937279347201709789647846929639403926008811614733368818894091604354768042518556093550454206088466601343616884640129164243305497922785403307789884818830853026052310940020091032327070985374962690089221446964728056640769428823150707666170060170625975929540020004390811707744476235305244805981625292661258629550697543471506885253649669398479807372948545703113731663562482210828604561205488936900530675928370471738952475032092954996564541834457434382017479101817663575343317555259088580447068335302586045571867301818878343693923239216741623722236875483496295483469185912644575548084976107405842980225265175906909529985674893082016226525342636889943828904949175846210982676974083016708111204106720192352726744984407974391545103064674259613405594087125795463846127716389709330061027542288693692143450894420869397174287882086381697205279110639159445875009605767283705916683865632623381114749798348161725030600025001608922679268646514732117478289503108736090571340919336259629851409204984360524547384482113245328830718912651453310171461893600610998994978591728849076518116003667419855883231325264318065701760155124488021996791714164332386493596529755523426234007297977873373313252963044640773178829668953939461621315388022287663344450304269207795651140907993143426293159604127858948146511884419023172052118972208392792278707472061137295991199518070409535268726622104702258142968414465798353394296001197757407145819466667289437953655985209668106891214486533209865892296823330490325514997430674261196820823746359193070681615648300251348715933424107458224847704764732679483165426634374147571448306013107261332101435760085593319593445537912984672622153722595204574429879619470570216607780275448563583429029228857610134564077465575005429659094450562136180187704551890790825241333485658438254773333547188270565486707790427965395795844883367641192034042759514753653396074175765747581885332049908458779204610634833702139725082536974270385539259575884641170922255600139881769357550595447816964327026290897494155879375076968241979742673421356894146118896441440449288185828156287812980277525818599855659026500340840308202510375922729513537312029918049436888499738606248589435362688521299912598677167972530485412560118537815861694085272195425312247179890171863661404119516320583751952741041953328759648749787478812807864227068386076295266235335099613227374224548374297242822666761511368578690772561364245448838209731303810692799004921888970036276720393343703780131447568215850717717612200607288391654501451105285167155441543072707219233737821517997990511535135173205312989221357364161796332674039758604297817353904270044536730116192744680265363472880914844725727858380942230769897527499142142328334767032276194828090236471470025455769303160522884263572007164011423425234520594809492809533698642202644821582272229497980132610507583933301246521018375833270326265896512646490521050923050270425224059243247985786401656689126253774553024848758164778728824143966411738272650412981886887455451899661553667730327419005424112405667714258995508087010418842479128043449140660676763151661475522746737079419530505674122811705464745755492245200684593880555728405585687364842271462185206278826598755957738912994561717694456781264814775933963176330971330432858318244269292028746288995326723074842905236525108928018904264193690137914009018501689654668452701235221198440420550056892142497878823149049453020463486603261541864176347555874332143993080474914640666092038552307125273011543322378738991195356912621593238328870759247023902433668979467977599753954854617853320717197442137003144968019016449003718801727953279027208958577227005329393907980123598034847064768022125622703425518356280975897412778455362358194333136761389433274803473998903599556297467152735518148298620590922847219522676862360051967503050673169568272927205398679723244574419767222618328506207825041971596001689967516942883880201667925073877851722696917699319922916945119356064587712388692170748205407336214074768900464280963758340731448454000214971746960222703294302673330944651017330958729020258059087547554521022377098354224649620512836475296902976060055535548269785281793993787080025148682675599470627309832654437800754915631743667401598860553076323083093386737362760526205197249687702046974588071662148121362487562963065652184844967526046737557908239819125068098872162116337175807717609943821434423049680233373893931926999072744046416366656335331258123230279835579178990619646684650450367112486988130360921922328800864525474581724948583063359709548819996145113505509384978340588755270214040479121937506850254593665267523824091046261566093645512849695682282890625393497099439213295223061474812697044072878634380275503440782164577070318502736561593819347747771120208342770729365101974126641240782014845181889072929692454799908072764502210375823761088357111238962567518525903014890175572940129665262115440682087840969971234135340578392959632260708811738028799567695972444474960868515456417052862134717827594295002715718694347375817403677196294483968065582404321377378999052784259767696829640175055766125125560664393239340137197139974896278902460548847609278894629300307080868543104986763604265977555277223806827625987310832120068460688623296991165822155584257296208163229749968585748889529288801979169415055367092205256852791233243006130282711827716063556780135924982257382671669670328778986505309714882028712000772848689814095755995063373094152989889871758721922852856885646716947716393152429086776079237200652039366567946443265172486116196357957804764470799578934239046387527455876575127227564900846508604880151652625816414176815460302991695422445113876704743020514466758342140856652199004058849928896971191540707239268923807454374884998098721574026243568900923924285964954745655295325044040756282836344667633713232792449876034536283701021275697425263177887013528977705423504616942223640987599860073755831797144838879046154314679521656265099118836570720724149828032146942950161982263716512492189473454487548454614017186363821769781675039688876795226660623921948620332128019989828343255948959913961876138615713901091144896510170496264754814144464784567743800952144391080490450114015339014392639375878800640167246545173043412753289827312425655298920881598214208098341331286546268494800247777624984933508591501577870710623654049467807263792987008799402875743849394315416004057202140640508718517439685870989525141476588248943785030737950601990475957638208479019318599454000234956510282482406865761198389181399887616486141612497886667352337192174893692435583893862932585687680880378598333875937115410626788594323285006511438022098939528420543112543067421748093268476831832821058024916501268027580917269566413164745871687317687585247423911182846983666731740877442494083807458916411679214955193997734492961837222238034479926121155088216002474234758855339806427954393198611114286789039670535533579616026185961003633313368692436231617214352060527009725471200126916413189996222412370635054188640681811704690319427071456297764451324445422584158833642374071623523978259643578152238570466394639485173388837651694316207986975840842230802789255733889199147291819248375378076805054069861556335086232147986098651750848233779877823324966114710748933938067156231212656287508217574284026408481929727285854369667441217486108425087870586306679588513074022120920253499377337973830409083695025982583292130720015699026869521799522753584935011282730227867215160482828738489219561464830589067427419815183477650697357300667313163047459600241295172036429399554579252627680128439454817638168614734771209913174932067502823832697066851538901928771439848212522826725448535321551424009348679489315215812254798661325889391247499196210233446391919762233544998455301495155925949511667260676356730532761667785163303954887775900371765653136631004303263454401253508371197699306314109425817910605094985715884413096721505673444721986432210576405141969019522017534667267663805612722919735366987925554787971779686060508355430085284394179046406177325423046179938901995774684923345435753630567182422029551235065251509198870301707980279457781158345041567423908316201241308702508730430570317736270098470894212184696468124542580716515486804215508955857709769667094898265948632879261029143543313452949435043155725552042312834166522001267212541783846457635678133979706631246670654077045840151871680314205599099869767258315610456624847819347748995094781010574840499579037526523160199290851016385721474637628696248883784952680503701056269100961806109687457193432045328335939513700435088167687824842634060382751535837470031818858385534003264719399056593863371512570356448905094030866115062743262026819059234012833869674050121455165664422541644141634692360984701240800520490501042100032283441886964737387324810189537870814924317880397797616906180195027141614640096125578664036437729138704713914986313023479143256590476950654755792317700056191259927877552245315827660840350503438631129895489986856413787567822549167725250231885912189650762139260091221401018088454425791539227678322516846032339589308585831932520581999845092779609740464697533139076791394047406682070919996209638673410770592762524859054772040491273652624392791083390017252657001111386953704117159105455921767202760004880057313227655479849466833228119946624243131261642788302272648182977933227574015980506356757223599318010198519711856864737563411350674559155275078047656332982880458800571532961622460131754403938815329675316768047124341349672406619575183286524768402826855213500016724300459712541117891742023978411570940252393098137851848463853494239851405982825708439372105766500298033198427125789371861714312112271239141072133771783829154725528535745185630436855036796331968343364458531669342420958146268673770775662400540939041139340461565051985449494321737045364491010066515815727656239545735450487034017223514941280974691217362029524776004835903758752311800110674098527486402071626531244162757553108477377306387218716348967093870909496273684686214564284997940570823576266161527349083543161488377928393313442450051454650185047622625621650410975037029175136130932335615956007864605590080041174928887381480451606049293024591322978347120285264229702871795183331855909903591911569758657949686187689788903006267507375361529367268731002837951338156446966810442911130891515054446431544464440969667147977175236974498672403573346456478614243071507146384741534858348495230716847384778800603379501729028793089991648512236016347225991935031479621742824911751370374263480586636054157800892198287370891371169260217637742757669911770667070736114468375873727031969175784111722189219384558339199674812175445671952082279083863686360395582940270635576650042345522437009867080619511807926932623057849162669354119134292017037961358833038258159029765132682745598049865800949748020125967033119152543680066690859863783095104208285761130489066139829962330530217769841858711099801526451323542397868936380478145295451407751698732313765089101053737662851129428485520987051998351660969417441601791188745305145841957875580394381947858681384785282708823473186216197297679593105696836736092315314327319371853273482908040625362153810315153146754444940204536809648138445349318210016408620655958675006761555869322414797250830164623670490161152208601725669457530936995647201335856571469454677092982632382542739213131428579443573211691785601284902249096149188177477239554370478901613830727466475281732267090191335144854937114163919131328467572120385111394724556325283286445754809901036174150652034548159224342513283156528998261151914311773013649546225312330677366695972532314191895408706636161921393564423631224153352979335724924177254707424591717063851984885505259428840516527213042702825121141766025791460044618640368178913820583212010288815788330059324208939374398290015832149461787715588491025955508019076689739961067994273747715411908906405351143594917339133766196331805526798951942818620557168177708759336510691297669291367775419059250681212197543571287113746836658256755600362874285943979758901888440202042779099598334090102959981124411698915331819406312063261042627267598027851197478420634194283796803949776815107716535617886141538655706735376701801253425698008350412511522878246740362505148632606033519459622975830308386825301007751550673153831955715131280407514708390293816865176699365346632819922987746176556046011247134373678210050902577154613857780699310531498840117701859242514522332178035090554917369843831561583092601123883161360334017964847663559550409961407863813764094956498416988203029158638002366187937854706448703968125131566368980594971800803298633539189884235240233479882535233959424325594652738968848561679045040606751749740332298790205965630534436785360377622411436334747924976002862794492061869741272073655661967546341193900349711818074687324250025612659697213026997763550801569449635232810495065871416626290657047505768467658642635868923358621374457317953460458319296519255876180471488327142455854358692756707134739433006468485788086794227672301606458686347350373785327918773618669111519092456296577611664735935143182412308181012975577434360590705979806615189411550764882779101382679028232961667863490440481526866765124381554991427115425740565445748935471335643223875779754933008449868238633817795177162347057028952399862203288779867786849906258711475543461296930345556003814622306448138158450331552426709055933255495732218064718855990789963442114732077979663973677987763304607176554482975442178786148910560461057322097566288931052140066687478594106371866453949575030445829619309161142457613818583206370026688212469999776807983403433010545999668846425974841568442737942568693353024133236391023244001568249088226927043571337754337763732965740226633845564674825065465584011681615591849690883372837195753852719440353812049149451709382021003117117293356503447345044690918410074004738199627061083944359718548686311107098368636840296425812813157817428103226958746264729078299471340100832167250093981983815796947816191952238699289975293180193866988745279253829090486031036323677706216693754893510828949704240999557468203158388029708713469444009489070109573068171967045031557178474177876983545865520984414641065332245272506117478170467402339805696749687601874368961643823714372519654201991414538136303810433873312243537768221462807553099298122130668822961565265728238147084034335588446429530900073572822662936552100137366061543753984864230236143910375890016542145002151787813534860793597104072746479235262700877478959473139605909022342948799061088574962184328598864825367670050738537497931007751504968586355294919270070428756667873211002018900047645237100780811724818089594045355358781407533742753401042387886330678353379369139629789840765660571977820052776569917220185233490131834149175916573603387193308528250205536690850175015844381441252991513234329978161855621318692884943981203185744758593114620763025914635726551511164827931756737791674019053101182905194010820921629339503552347231672776000742705280206323102734393373625882121025054411126576333050822067296367491621375284516988721780337249027999691745871919246256224216531033096254472217282848069008998829078008931038890304985099891246354309354755821105355418706008329360128667816062280888821292043122949504657031841476830835523814890854381103249177320963117413681709762604758405376680294888387352159100699424503982266734774973514093191545598371463933380491982646620076090311770116556773203929643514304691542336846031837173773940844217013567855035475512328587765920960956291709784296475567235520919082203090027000737020694458711257457824617478942531721332536626621225224020584594863019632875390623318354190417513677408284855883440182880130385646019148691029816212564620538706126112043114972991039836605278054687465038493059135550721004632202448750274589377322926170061389482951159238716577770367467203494822661455313163080013745840995838971130158322719801680861107027279041250120912806194162145648037775685067104759927464659613403964928043925521145716576091600032820878388449218530254621888806096259844844007764681878528932197815890686888189977611169759503401763127533669185359814987641796870001321305244865982892927481798974104194309376776793908484474496963455422366993469848010954337721452981339721881231002175032741640553768157149431490589571889910043693622133667109622358445151256276111883194295154280228799584579246199523367029415147868101573871022952904610945806220979714018147904804849648511653294756721797010593470512465778468955918475489908494116838801602755787106013804421513432056008833888823608528043047532514661546244970061382990955688253778934939879051367425682517978016959079666193805321658328687179900259244359808486266086873544110344719144522009830982688519987719066465460015697218113813386594508044427175281911504522474874994935653866947233282237691045973837415163181647405333806888235115827084542915636314227115375555110563064832032665722398145337755737060422579030230842485233773828339217904301112041543763158718945864830322388066775802695152787553869923484204235358767343582581599396807274531424431144179068624172735443803932403840778503608480710842614038470793632577031370115553409504440722257194427994397066978852522357394834266879314132861359952821312594251515262704487757759675060709541709954585710278565655438020774779271063783871017406136629101634487897826196164480926576660361829509953956828697868546860371601117083749053781852592043291196942634067092589905046133416176792829034302472823419788558564257864063904194962669488642725241308130241191063853774151916745361570250309823673907534324150834923536887103720546090464842298505564097366808939035103171471610277430003860370863731699474499091310165980788834840712434143292589172112197236310286927912350051197137504672816877590415322714533179982429629796083183026915693408317909792480577998403628506667936085301515030997034108454215938657480747717544799418176646565019767027961136864714532787093769283284746202610343488863013064847188139278885645502238458865516375677972713577709050993114322153288270899144777127645229077779405400780237216328987385163602930301559683730726629671129437545301970789742795658772656706904818716239309687171104523904821132062660451111732349719197993359217552870785602973868394110760547194304632954459579807419456126869730529359500090529653028830777869691593103879562083760897041865700217733997884389373112347785570006546555819582007523701772830964445599213866243186980700320523395035234413131844811398691319608794190723527854321171582865324042138646883063093397329194992954885204142607593196959254634834630094770157291177191833703578553599647445354661091715997643724877651253000308473680616853795424734159337308610514743497209782480066022190361218284002799073631372296933380578631852689325693655152203741811519845790294503541682557852476235557525363384523176343418435390701621447753030048624904542627813706391860259490473286177732795945655649956057454654407532007164184515981258758081131251984228843185609107733066541070094689281699765754101086353502233096718053613739260940350942346919324528611943135958503885011360122380811078673704571340211268177492209716293275608251685339412045850256018620890620023843584811995301029354792643422406311537669881927400648992054795232979998393506781792218720141229748560261992378587003704341228921549024539311566233471844219288730490111953302612012956052748285433060452839698530601712940021672118194925839614116724729411020027289228413432376112579466532591606553550891914425272817217250899673413664170548646357239693289457317957940518376826538477528439236361429022161144055692406958145691862597042508536785259533699991564768842616494319687142235848341343890140789292825961228485134399037149782632512820778531292404485916391948805336548008330363092839123092775464308818067089167087238024265666957489615714120626737653640601635785481510995359382080733285345300070511612717098071035041643919551674085239821531763267349159075963019771397399390524725503096131198141389602274579577544071935926733846853743997173687450123966906912341049263269450860613285640249399216407602794591676556455820313305253190643816085115144129150517234598954258907192260154717559598295804306291217732349134978494231480206572271623330861157310777583362229431206843885456383240476962281944067809793496078711362021837302708456430491656681106984685724514200003585408196825830092549708278560813475590837079176732266962126832879781666737555322968633684876387709454974683979375047985044922050325033872558327029138687594112559428467352688725485645822970920261527225658596071231963750816960709689545658185876314271682469666292379282968108667388643971923563730529094044081533505533789060012700944377920057852566495738213072142794467329112842090061474332740146468874211797322528137908137544790934186846468273351264904159194616586131553247675497174395159856039672438375206627965849534370727070327491852363999661674201672313411176251080444853855350132177750741321985788360028298716843144612805207430075513691016196604156439636375093549252398950995683198970384748587121580025210138111650833110873280644086294628099826539154051698560396180345315270583528761199744754756336437549345037225670764209744864737671225098070485516644464100658774718758697866531052566575273154738879632429571017390091506141104622461415018006266791971029800648813313860242199010941104699187185403985627088595758120173913414880063983657082034880776381184760941735701386090020123893253332321369241778926917751322963954717534795102414034451331723638493460353051361800865840169801021926294317575745205253250346418559732804815496077460857495263765384687802626551170382129718483318454573423084713223140291223805494086777269250865564676953714868383571988822751003371222515198720143843175830182237918604204579385996795779463049793771814778351483607127555899612372792203834212957628046469068463422716652505424490067986399182095560557433437324102109639761531588396111722390534143890758141857038441745494882287126575876611573505882642655743372194221548359287448475914084402211016218340883168678316131881248756164857810488462882353203410561994777014759954439133865066271641041973183770809930305222179131016749819860936758989689983653014335786800265073664449456108508158151586819319232036883288714539949705263590739022905559945496454522523352996446176741953883716929459449603179983422623165493923912921552784510273961585219129010891945630987601598595274641086415253545721466430393912549470261889916104610694668022982877468368668051536212076863362043891153387416310796384590244159346846613583474348817375295175084963730797388575409214597358314194680481844098789306933728245209847366254421983656442958948623384413358447916777486835275054261103905020258932573319600892749718109264782437344071425093591067707354217098253309514095589748744557440995537345068706546999765291958266074029309385299064633674992808219369598170570316618829492097739621962966765156802999948135348159758850658837486642183432043643647443941279048154094101374846048607984451665068615259621055220705361566943233577950239281473545281759927042925669869187201658661085308211643456098508582151785244215481064068182255075410594784811127320995179600878048408171898810955397437479516657566860553252104685488280263182743621427739126745453562137949537094321747518233794073220246910565230446206300301545135305260226617794691285782383541412273648923338224061653705534240585974636881404077270599233697677364603155279591455936555218666304606623227169476299404129487962597728504498371754346728808693852438199271163975162369346654863845358352149732729765029459493143323850939548356434314374718801902020018921269411004328533780813087392202179733046265699821145112290428129408956051273507140237316822703570308723796323560863356813731282909586487308621220409547795978278280050151651204513207512371966242707146963761644064903393726738724358833265371169336858903278366709310191995237084304875553504424198596673185414352172723739332472508003756913448274267602581332778735334392517329662869639137894824966909087036207349396589475978173144172851467880237987258738050009551597761058051277303180523070933131974248902792714892528070464487765299117421054118610757490437227529295881257745305161132079116295757201573885223222548695289364947639157565160820047367343898971292818843016650323707324589402673723557808835445575570272260144154530180113000769296557912477976594631883885029834734769798241645425143899792432103485156411586408697550402368934588607418806951122356556071089128391962393445443794361902078593464065354783922885554302446452343464419038563379727344587453524509390540972547756189322586186078469434263543909651745489055279844052519924701180721968293511917630249176737271814811600623744887132283176251190032439148463373396144926237257698011420232556958057450940997207631163081290112615522281286556380730236468020824807176612220333750487588756289144049840504526929867829217886710686593747706074181118731925037737285536617235354007589290183396307979078591078138758481725014071157620285153795871115080340935564584134437414703932548656677106409955388676169893234809893825731701432700115900209295276442443377118371073508979583516521599624489301694528101858842418622242535896862714744771318979118041936958408730790589080477952615690720125064736137858277239372233915516594160221749736795527398095189016453033832411341531379445113512781616045916987650798674737679897072302644511018184117041854081286907971771301167271893150705840143970430220071318920886211713505856312689688185601148983830664264295378889772038930045998248089545500563492323970085372376881273565722648866464856792962013488752731098103359699599862467510739402194509268698948015698438704425981827876598621505148972795615085275417190972175308046341218755830412841397097507373050509971194678153550031832323102775731825687707074834252488837350154201247727968370887356364326046382474579111697941637972354699854611267509638326667177252183212912348699233626765782199289418983363961455239530261698818434165253420981145319517820728235886159830623044674884805368649441726997412617152404462137303854544494688391435387556007245752501054126725218226366454222789393116505011201291135502503616415281419368956148644068096789378711183107659392962980481067275251462587890428454866727732391190210615711636297039301951865155017160931635007991542273019871858270354922403118808620528289943700430630711682230371004090986152421371467805563833312740039687838026115883974250095715988911321366019870677632514405415255887476969578992416040202350851532086801922741953244619217519455212110773336608566908826366853619195393374511509542353278841656953939558590689820965180720175374504469962086537494711751839434755826808060110179236275589851992202752484138131228471261770780608579021225984535286759423730786227159699023010594116782547085118617949299739376562894560307321690140751469656253725236191865244910310461493989369066716348514776445991141608654782094479751526299559696328601487808160420630426196365284459763089385390991025858083730274718140725330320812373752440848671004451436578100534723310984306302045407358875826961807543798367443158914217582149135346110744792211517985323619162084194067494311102064914492590813649581987497627055678777094512089144289097180992018353994144537239803494529383774653660825518610330902936274673137270426779060605634490427394922333409352743723180755837816139383516448856854650972530439885080186882244812327012468172521666050070419107084729349550358734170938862309884168976366965360010633788130454171763618771834072100168486198663027192840922177712517615774555897583390701526027708257219257959897709854018654781975282278941227833797694461008354703994754694641593629267822532578422077166854757544322715710696889728338674411566459878511082351762440681355339137297346006160413468876189460433757219973390099896903204917288459314425009470403426817015604312493608055003814254574104634447098640290500669489102531340994486651365268611215840912523691290911116322254851751150312208990631048507002230002805893061424373670605132267483070544062369955938828136753254286283317158719508017023418959299754155576321013718720482637334837876611478757618738481224842331420610709486018521942650522312614243634700633546455642815800880494789738211825213633643796516343717502440631562744522668714804896956367686321699304537612985604655892860230574732121604224948767068847278348560687770728847836615644278802287876799660948151776457813029998152549450247505279425925854179953258867051685298012186687436516004468149023765273558738655454563103737529426004910349317429264975865386828949787211803410406109641661464323141683079221894741778125118836638286556328658108103798587454413850266872059223964425302897357716981351110163045688512863265432815604943617576941908727497635178831721423785313634792651527934329897771296537172386020437978500718023986402687229616510678113763059737573094935897364179635667200330512242069794667204079736966258758482337866009653001199531552406547683784953868628799971346110156104829592949476385452871866721020386663804027625205772267801098380182698052281996215012421906427011936230382633456891654371249441888653397425981505612884445590849805122921282418336494193171474370557559159106375270058583516878339338117376649761373026551299676523799231106115320839907654722525632995368434963242536469642513022542368585590437227544832936570900341720693966176241377271884876117826535132083065231313435012751287521677628285304205974790471025596784555483753523472040098980191437666171073380629460239746352943627641734411796055840443940330361872024274781046861526658316661423824808006321713023339639386788135912556517245475218813116013196631015031128939959165438409593072604913160825106866094558821982364879774344474246941764122267976251103431275811706477032161982054112341406751951563614181521524334275807096268051101501414132393988187726733013456798972965896197375235331136180707295926054371220475362648101190030979424233901898308926501619941056829322014934136670344631834843964776605055789200347260290308724586498469390498398811279468326132661427942825873328224811520076884163351866749899350058208721881645122949282866411288780895558429537662465559241578459387352697139190412810267185667184677354588011535936656425285616940261885012776437149782921741184501934256603429575059944329242985699684463546775957771237279632033248335420950491872177904833406014729292990729457967490629420652028581648413512344793036649848188329405793047979176553656316585391573053117401177174935461653602182944000080298071226664090828236342613899121194788512284649376145906914441684482583490966861619156584270097330577146506458057405848182792001103980866995019913541332597912317033353289084195158813304511398764713965564224110591945912526276743045978091359091050582586450591805914330762720897850031358434639727236902773379074744433849517597442352749135203041573037332613674484326813116820173093332003378320569730323158420982128223242587669942152435111703035114187307133754420828174648370404779027565628403372406760901516917940050167405909770697374452387502388719483055975090289418643525218769423273356395478071210613415831901176860521758921813401775344036464778713278589253878713067561929107947063352618626574631171457619683124546079406934517395988136484412557668643894406147544406801326594012122899312152013234544562732068104376890042960238516665476954729499991438209855059992059508565093999655847311383124467345449461143750085024477927785200736223514823577473551719085285308557131202379065506789847867664636437358577867593775249083643384046471854289040864247379444541901544751032910201158673552330390110898220881109023845733109962084328100317114965400289088363563575557829543877727272615421596579452275386498674691801857308293743490205120221325185898090104669128654346243116566250968403926739659952025711051257813507384347904282592212825391394977367514400657530586075575964886525058641990327177242994570155332187601047606012691930068595924866651228885331946627672377676170222942983384877395365258545168265836929134105353811372945695377454226736343039819934192367353512451102183715395387347340785327282433623589939228707253417501889110447374803652364426606390680104263076891747651180698430561465026657149402039941412996134364518537455741174122094432438988923343763638004604136963167923303965516293244521624200960258348303191556289918989408089195379695108796391432444629807849165365215437683252147490438791542466482045507745207683840475661918388690949083505622916735613419138912622960334363321655979608692936589895357163905289171861288155342248046749488607852309456743131406066493668065673581611450847508664151052109859791087101440947375150722757248878632515197209935702858773867441555996479426461258923221941386344010772663542883978304574994682162564487331264432337590391592665932902508880902017311197901041876934636025355656920814617954267468214701635613677914683775521803288898559663907671967324715217174032824783164839726130157770263115077394677965649939892982765644634899080711776781004896034490121282167048180001863169936874376216973154576352219168357897844470118794496591599715068957995078076228127873397965646268790427287684134906503770786588896602954883344380842826333729118305851519423067804751913018269544547527371975971737608045328888877598588403695799590730153742762280198140785509972682873320499746251111637212980864951105710392698265596586851803324428848385717614939615419496629653833651828202642857782751212138011915603048077736633337286659717432048775726692471353718106741353356733950552625483465665639255455194259706952484210395648282240549260142974417042863768214535760466552920644999403928538880013200327259614645300440042905316886208375592542807033381629197416388340243791713106770513100744076982164900800850581602654812866160348169477821205965006471716990947070339562383777211250505213071473025260810760066253989192247846983797480577459156779047648342424452995296111467540671341626048489455446828744919387619825353187464746174602926530257907975263099363886784171682949319816408576392777634817677194675228597954473258095933859979229470630423904308045708646436428536116332340133178153064188328885236210840404235297493600584331066233269793748919778055087271833930183076092097054927514720138836174722352742523279713716539642415840300871460152703068433224143380434040380510819579895215049523373916769468204757428412875520036200683791270048462202776082070527934321159171881891826152359153245629993091256857687334460801563499049891704898163452471045695176068301672594385697757864944933657439195961662198488557082994467062335505900258170083532329077960790576682958607504028733257764483659957665035304807524124643545103416336922410414233562377724401570118209606581815563903045286344677010031696962836304150629585817214032680929118623300890408621114682388937303171757706244749925754134860293594032115664242483632134969017611625057261127205207013301114661711749864650401082986750871976273837910054035258546677911709371106713256291922809448318936536866928420705714032623103068301165895119639118133701100238051724013858306784825065672350048995388005712811359881788210587879833839445156916701394896566675038800400794454709723626293647971649320098029096733110690739662802886801362925091599294126480976477586639715580924972764279768013023902687773556894184889306857596540560616426611838615993347063334861327923089106332091969865086206531316010557415247163378780580224969807087621688287345257127555103871966076896753839646405927823314749545310843552455602847588611559421070898484129727907085574333822192706686208347511579327497765661352903768446959931507876381541261626081638076921832397925806840463872544726636673608490724090133249095870841147368878820256960286952156268613942867196429159001210760419412549916980578604033228825063348284285826716114921934045114730882576724163267535589451507455734134153153693551378665669288909623924918071000861755817745265976516816024412127765219694139297147737027826348233306482846929441630642921030909887757744288918263126538058812176281353581573614567601738602236873896159431276472153803144968145361566911469194542727696106142437856102762141761775121244441326953597880459328136166615400975558208536325202813715444556804367994915530333087098775623599366596845682637384954931986009365409905114440037120638077271081293969815214001428230962674210909830522546251452839413111730305539186018819133131951273692663768207951901819363849812811153719756408231733697682741554177262227054527485136403180393153218698453830242831671064632427075604913659465083498290830870899671999204578686727530958827709070603884827406279376235184996937424116963179247200146718459194511463849862562886408737985545499494709154903538277821208351024673216075268641115216956938901812093303689288670377924081170449239229371655468341560104498782223693677584179006379902040355964742887439272685519147030313920839969693402521506165542803905043366573497587928722657327454591774597418912320695342442102185355833846381949365582050949272576532735709355650104374518823867550415760941925031440650306002399007325581977441019914202305583482888805925101168754522569952580732227000598076167283271721430227167691550323842957163176500256342595610470805951343438839802980755024270480611905137317633471815974432833212029242448321918991808976963646346881013267073460691076783553256847190683699257155992030869271087684396195660609393994556817372857563142848173561687940701165114513264932476218310745037355980389022411133432476191992557414089814501617921329692171741075360853107868440273720031385336688593704335434838649176610724475927344435825667486080749127147562241116195553735842554614257202089652162462534200046305158530665367475015821318513255686559472352461060783787916860301389241980675700054683314499300116582946925181412637631212502435145702208680529817759837652797704424718474104691638033905383803047633057972961538065703266783358076238865977929342743972642920525651456011802193339816659266193843744085667558354787513913203316872478956258973005538713829780326229757916251838037358197035906955118480684961006930109245666539256916873434511689270885817041522317299631526634750232407246532256215534651090752236700502003277914943913468206947734363908626857226059906355029559731504064363994045277560946542320542435709690405433522718554797057546381481155657849482099030448601325714507336605818577830492581112779454006345812847867758211092116445515536894629016082028854159504981927064593052689679479493941112723443598144701401180058791291605103268558117953728276394345338207021275251698316700787242727536136284439000981806672959582290359987341472500916133292994936298955498110749163010507134592976323550153305490003475670938181415387787111210684252027601015223145034552980433115254375390201888874662116035928189590900343406906441177983465656104240140227156489117091434848313754330452111129658096573644405488595313891810016268935192017494831859327347235878279254856009616361876299181738936659976460743490327594363125650265793725038058400337409654505072659620860000665219903992341425832032006216325148776641284649884308249965313678626395682397641117844470936908300855683668366200463334749435239372192268894268902092840402026888834796921331734047757686563080197329835010033853771225015110190425210114995620527707589060632702750607272590067647797971073742041302984479551607959000460655020919586773495677440755767860922137309642759262233903579327436500530653140760876972894344566793770780432119931441736797842894311868863085415488436204958790905916243131346939363847340506537745106022002528229391109365837570333816573335493604279776857714307412289781604213900841116394759786026752005546164133582516192652859959917270872301886996826224907605314006202007365834755573481025592106304193747804304359317687103298112000767057928671613871960250385080987925715057412106832684556473814969489074080975985020812294367425267612982765089150305670715511811715751282988246164929254268804053980273917561709864030020712074606790558652854930590360071540101867789839401067748701132323615792810635320584016953113615388135593729003515719251522689319093871130392750210796671478042968431060662935562224624749007917441933283508446157635257077667162641858969881789199158044271269301798175449704748898409076343039724696598380592187770079861947841181516791343937132131309342547373894396414714081430731813918722468331114242802701518019006446169409852912343116623233974991289518882656662837153293061554532757610629740696470895745214284093159380793117658627974954031414011112726441430198825982033018945453906759647541323198276225978697993232077831741450212759099335889753183006586957291541666656753584481022740983645238780815227352362660454698915143763899532675038913609210506739224734395021352251491978006989043574214995863867670007943088464317195447050282926287635747719747896536177572061951341227429257171767828672407426937153590100899187107273466757930230075178107113445589438676595880648229168355161268953432399837277178994420049311334716000635167984838280478212577604532132349579911328368505979851890983537003607764881707862007706718938662962605303651723904162773569828512327659549180083974782699270137061496128254656637177467265658271255933282442729879096820519257901770203300284712966347430133701298923793355308274539704011608303750302536709257230851714946014788383549124866409746900264257170661506933279292216632610906767690373355130308121332322649895648035206396171100179467673075669376805609499500361531428747317005892816295627631307781637407322103600595099967301877269545494166215824781406343594029333346059809896392262886315602262653201451214711977023522714114872166120468201516982784652044705105419804186202126156349431700214758541532683533247474788642749347286690108896191038897587192968427101412654082992366701212835063891136768647018564167311736371386896954094940084539175549584562241468800758098989143513924958610210740543041793240222444547401240196519654928878562533981766533803518235891779932583694327549823056980357824956541954207528422773771266067539071857058300721455689773540116610851682271473801182394174369268595312096263001595540771824659899686969733991237356020685393963693313821681468980626162742134641818202268721780863112668842354900872019788318861308876707076666741666146006444035121905033269794187149052915327601723791830913026376300552712290034645592174493432445626539895272466343103022324539160234773562373048597429544560932105251131587410831460297333620735927638886908477006590602703746755585138322030887208761102729183532670499054318754718021807369487826138226219298158797002816104969173944048065094716126220296293249078075533244021640592850118496192219398936515376342076282883506207984479710826000424045604534507989583033755273689044620591206168188291572931499918225098441365562502962685985054875615383957170802900342488651331458581846851881076420224565110839897734179862484693691481147253091307904949833810453382796178099132651779486160075842785403433560473828369994671563231834461292625063336099409266016834126972545863806093166705563049220346236724676646001985418155667945556767019516486527976896461421715094158441714255793264816612948462072921265968956862672256211276295844257982245011826976739067199415670996716712463142192421127646006856499890372278970773302480255584378671302758649409349185562980860408174964905140206454254646683509730364925331326037217397723143843111941120820277408732139062033662792901882597901246231403701589446970214852753133393679411414750794771102505653115043511518686559621092877217759935206835905368039346832468274605762338872107226928727372549028946644350584840801258363377314220377065514937575991617320332885290901013962390356886740142338030666520636660200524714259299328354142083652891372821030886794485972079921674628290591073341186277164099437869721800853970598061835321609371233531624838329927220292670976333880941843712019805170679875941045149620227733260525929029620271069470972371058123146715883822936366934996264399118068519543682352138425083368929463046665135381207099242802557326260001333407641734272894299559061791150986731151723054213142398089606905907958222228105808426965246942209999189428850520607354671047814971967154232672298799578654817589617490087084019737294025368553456693960411838776643438214517641241658525989971288288132717653558288892090905160413887859030004214193055712618430629514207439301774184203027294898351618520216360057410839366749118634292718735394316067081678775219102130917074651167338230880917129496313420002303913300172279597590430889731701293766710895393217749459615265448497044646567801854290682426530792054010496057679048304702660380466437006004272965889181271606005498520578061415039926348941665606314337621252505864721548709704724663830549422178011425650616293748772362906283127119050997404496720227985484567775689096148807597597703769186549274363817507791341102031101938379458190935903219467570484035647996727133076168719315364447493945026462035262408786135118361623675830342467278970337661829632973281571457614705932346262242611096724296756224986380053445272112725961009689976466519243507963204723544279499638638396932224722100551382422710716849282919114954017606833373232102120491826354434316355026960093733675205470411601457977854612118021006886824486845889837743439672196933693605479481409735692896180440063780269827698687088285923628944371803958495310023776407989626560155686959040424862092245462511348122030435577442343400140708430615610420358789518375815374973208572740516330211660630519366709572706488924886721656306554691719400531892323601145727402672692546551526425622205480566685962424463192785958792569512517255033791163248505601291238194723404387162283881970642491397077185898646137514600787485935696776533718898888075069226284926346798767780417612729540146398111168649903972539976840624181502927839090186645835756426017287789129179793065176437271110899577582127087664124397780734642708067975359003376376012865818338714958303659771832381967597061873520748340225989655376976467811993388957471941592789496850492572480743883791888643069811608877186195427000835415212943230909242424972869388650059767672787894474370302986376918122849496118168012600767957771191179758311555344320320987726491381322363392959823970689588663924596915191066799018406868526967473612967428368653057241756907946382930490644530880829107734612932188267608860641603725081411953561850439724600750732304081438250897606771635329370704996086668453324126223810678897880122454272260598400699733452799396488252761282318624578483014336059343806990849764280003737651437179952549703319905677379179301460251425441053070689472958952399524023477407293249467925954808570352433891979849063454964252507436472879516886410688115017019190927717614381661851370120614798740998852499261999434976535289840794862952049548877293938320575027122159036851727784747310504007099974802765446899038568349014176278962173307059412840951437292170832508488460019334488600177716133917559365514933930223313369764848382404516807150027662420935499150062526193142370391044986913120625952217654254256217937567852793121566623877896754180206543162449722464827506716704016379569947861340145121020637102467803951045601253310512308131486909010421284442249493325754760032747120120454028343258267268623224463185992916489927214758834081079303733377420296750842433042464659610211049025747909578824511434821280530117399876632121951807805755373030030888335964473562466684124642354548777048229325890601318012177536545029286960501707438824374720422061700352728305987648246141514921435997616333843371790372522420033158443644524269286146344338837302762351415811012723227547085635625465937672364808692248347227567556273031765278055632242939945745892066500586630200893228335214307224902321158672891418497327208701655974166641682827695350808863578410708564257493341700295700085792760743365900809969756319377566305920808464141218681049953787428934936276778050382031807862600081490245063854054015695341727379318847900070159124625257251986019430400278556974107843150485237781741497012176498461642513741238994242734795235991351643179617014813975325058779210315098757345658308503842676624738891277563548143165326396600200978323855635997501144473108050315261475051713426604489460095753904271042543345212343229232809889971892628598796578954285637347753028766956804444627208551366976460376180167469916591664129221483821693233184749260637139865263725006607550380482262420931277350436695115199079125587497474447286734739057561848754392753920105524560762731173454031835265895222111135815968290453574911349879089028569837023738640029552474100678826167683765182009443519198651534809062629402654611799788099448914061753801645083194606502071424617828754103921787046846167065953601687570633541999998837357289593712680088722052800484694020437883218676665083022681760936237732121561383466306138866304043446486326769646414936451294271250570979411908613833698243646424455455860718403888294924974184924766104092843059441135117442393604058779009427320893140987288694875984028078001745643739741978410683739075856277014009705956666451530156855649380631779853601271097824546299160730923826871971857842105651505217832736477006348966287166595971373097364243938844656233219516466243641458540843155166540650065656880682813380128516807449616090178919648255760108293965747548146092522232762187666136070189508496442262560829351972608108577223835824741058926538454706470741131815987676432991192217129433023485708347587491528849277950720797434237655951385458039280245725943969455490075945517019928161575955146427586225753615866713433097548716905713582907178594943858736494372583019751008830990774627143919871417649080422903152478253978271093049242639607371905245653101080381859150318934755299716620416937066439505161569430222730718534608843152382994334658110814840668057913919370298855641828255750398227351607238976748196412061697878717109325681901313768870064112942653499450761350852166151686636768076071306645724529835078161631000068858650889528863011296740804754937927726926830937741631311396533821157158425876247146464774696607862197242925855862508553353042155251911115803517547402903237210411320016529971570862250375142724316186280656029268165278455513542449040825448440759154737972774900725896567165151504112363391789000228214416613372755446539796333670302604543534640609923723308882510049529097951972672538141728909573968502317484025712456716447218583194547430046259636869124566532499520475598105015328574036911494919288333593492962179013686408196156699744263223523096997294719189444482536459842615219311704397522203436432516098543600884865889908153104653150978164710771084948807697996614079358968602830708354554771751160297695494109903257036919461725792066860439565066099353440127077380822905473259665871245559808517788754543447571575812125372964312991588192441959847804040668484062832622228987342637579244923174686571823198367523088642397682826970229487763805954803992180459384734506177647583180671267696459965962681777633620370204178713751351188941179435617270364128488700133243684073969886671509951735673947406221908443596220409902639670105813625962876962914262740319745102707985818234254558097931885763201020872713216332265971544928860930005459052780931496525310105216789238773009900411307936897952804140910931111590038057553213184969900434908667369150792646549055277795600225638151997219675751214569043746754942973474153388807376786649641001776066444131409659743377758765639616283977213213166633031306844505103285035525462261922844650057351360773124570444126862335635992496500785172384550856616063997261686780164313355050328930197560863471272509249876058619351840499253032666030349367312118655029652381200744063201828425549210148680316497242596040970484512733231462733983947059225122389677452984428495056154283980655492618095300012681472073430460222971297075449517569823093382360320120236405432522101857897894056328285762424366409515924568017218920001117480500389211667069709975887310270275388076996745319560828110256228781486182685793635152689929541190382552682340549730152752729686589018636333656012955225399863316705242712953036454601776285431818403156077866022738892658006753647400949890643859633292985225524524456635937467843667031539951673452092173201703018982893065927018949044008977971077674556273099973315600387209597196337920600199061328486843337389955635656559988749980086454765355115092365703935885302770704166478907488633579386921195634380348628530820044022864215540377038422885417675566434107608670127092716359190215890305538588713641854379931541996614771306948048983725287308971809831957854166344713795773618829815945609032121150537828584744794426736529478575175739514813451954964729895845897076510836645969160267556593530871484282818840643425778829569601732906364270629842349778446416981847299264571192103071363445418702165405915955533412414958249408599259804970753941222215252101069950892317479730981852727185431610732576083888444314472979099867591372245444679254693039677578366641533813061482164712443383936233150716553888990208907871828180700104273264249207987693278571682688829502718767102614666706236769354912779910104509710738842674895746058559310169386086212662648502422591566344840606500506561355089091276802531403736910213183892434217094689935842275843978780060261078394293637405818837779403041844687149288407289641191069585843396357711856869355072996429394444547421673310601993246717392052443600365631206150400643957957507005493436508360480774725869293147268572644549153752435079382625918565129063053791470138142202270278412803549027845931348578686492648621488599728623306863456379002622490853685762330834508105859754760101408726047836713950586869558393079826479838019948745208666726786245405254578263276665864013818618229484513449936814589646067893959465671778267265057966282188514490745122393583423429722550513967448768048417045788971385673149178054880800344715676031750869201127987464756592700278678352885802934152134595155167995739168322199339974657210788101445352369579782347709015473750104606830592370632247544951074231774134060865262094209851927611381658952545403143788235527904419179776134578700777149486373221386265566951373886881647550728870931762396314895355821620062921089403599721169916299770185479707907943585841649229714067172473511295608306257360692651351816060304546261496033489099166162298260527988120317574812014131105352907664118465458790598190479292724462360856324898077486553100134244589074573566495860275919971573669921901375091304400360280403979246768461438992169487324546250852967329761771864232456927977774168181934860028593124156712701431079927647890747670856870311543238851856959860406317725341904634071932731805544865324511383595430045578782019057308991060646426247648933106817208975450096512072295030284184526351869513251685547006698331437774273999209867874590388151955633628271498225338702195367008333235457142509937405335678725727645285896302568904787152606736064412783268027546361676354197258181867129021855013616996249218473373234133620355746578582027034786053379639792403533828514520919190992649150283928765018470063579794847322721290798157792015114253167566005353897509939123760403525201054889124168366784792017304073592951919447405798708479154066255393967230156950039949930787712713378445637048959526507144801886124310957261525673595497735196870061342016995739794491923971233079303509114073191215187227562189803098901437939079271880715927182066005523903992296104839549626647033689847920360662154309758274002415415120233109620676316299408869252822916673355677740318678039428353195772260894105769458075420716775584517441217954594373967268403577092329125894448090251647574979024162122870287057641564356943631869924742031313369606794508873696734248949111378036950582120723482014562143853286925007464973458216719963618099188159536938899460493586620861824196135369350361324150356571474115961947053828269863615609363129387811318835941001424215081293130232926406024853799020405189111706733432915134225593365991661778437896399247314570268422639745668458333752845721207168585776808857253615376615345431568623186796992101837448537360443128512792376391769860892673848911573359047258327842587717443334427913088359025095668861209324092251773730768050269681697856465338305177060519476621157542888798998333777908932172679734042167690264367677749708948037148441706689650796207042903874248638589275576894947434484285430122873470271343150716634525962049180801773424061844769684957066331564244578054902272940443242630478913894351509837969737801960321820711440220517448293252547092088862115335348682172392091317421223632883304972228882403963093946906428360156301808641071389781930540475543264983521452447647071937800628604151468610885946208501720362595003645735049825197957642696701673558380949998009455983517442656812855690735372960407882841833720039077648030078269827951103680527098672159586078178801818220880230108661236568086254830439788701599080191860062801088246085618584382217221864894551393013436235663388018503127178059645036583828771560423079920873717491465022112526152048175794693476815831952280159413548206341330356487315518999916768145961888478662116169918965091022670775660268927746580312623298988501697723557095372327521973162365847292170683649169276970857931010374879294198540587579299662789775221900660368005184598242517037539938544089509298884225957451474736466375955704758138762227478320343495122135438765138873325213827705545594002974360509486949651775627809397775878530178229500906423175742904930748110797450765188236972102648236318819318895350242608147489753385161537433188034452272364535037413986637553792738527644390243846896554794750851258107215262764672273013770442917548222055047587516492025993753374633621686037995930378020271585952472420035748615985304399150138431444366353283722963912023200385108906823374181763079812988901676505747660918443026584102570683949147704468247788306171755016782268365289823646991557780336316776134272900795815651768465383648290611572756831369730655264107332676896540829574354829151624518948509470889351032438717108949995366962273564590387586188378086992584156359507956543791693811614401779007682970609221378469870781781738892943978274876928948299553386894125517485109695955948211124342026747647724867757849617048209421160135788184216169604982151140873570756107357305075598067160920552651099663736662991661093042882443680695569951252311111517593085849260160348571849057144156728763729312015753713504328899232824743899563675607398362613024022326569039481260125953204735298510120262901331392414439855665875010308310475403651101986076402503930413089202374373544663699213081681347936574412303117629065182103432827679690078238091141570498326035321034858630719924230263923693137598913136209998913516740763970430486542637744961017343444002334923714864680907694280545080275189527217300199861072719321937923768938812299762920159898032319100010915071836198471382829811003347317934157104975658392044990343797751478298898513452043485198526919874316368502052402748520828150694312824514356067985330768850296135653690731579990665570625563386448748912868554881382101111876887467531712988708587709477438055107785607402219273023525427494190185368685744091334929771149266003042772461742791058015858523217918561652986146754390496190236150595904192001069416582464621322694584529604511820140935307631593600979271734611112335869715448719378438482724083684981458635054731115364241456278342914534791042940770825610947090944664627709078044947579992327802724476432853198483235454534276904249683296264698597166687429683985090468366521671069488604550783403239296405725697323865410068500917163220634779171894167335310833436195042805229242345262642727871617884770732903767481626603057320918904365918350080811279128041231366528309150156890330408131246300805196648872634690686231808206795086185398064751872356578032277774422260099307679458018390850392733641245272611599546662504276699876019623426864388714926189659752870813338446764372946800381430371486507381173283181043013592731121374634840141177190447668235031096411975062463122685277034419115075489892621716149693904185179618633375390300546067859135870074358278827252762291768398624720020860022256134557622850670279334921720280896595691916580124274532946268707528170868508886518911202815061633250387079772852133482926389284101986033381099191243022891910211043008147917624895382914403366843291149677770626943849372319898488911548979274018988457424944627194880189163375892957970469990256434428407187331637553473455719326698480429990794108919213336197328309965779661209179109542468247658605458324209353229160567314864890568202809156011667933855101047757564107993506992780990605930001587082045473889741204433793499434484121816205583295212837284296059974201466927539824247612320066413067997356081263318397933992104404742509311673032022078910114768747968178716984345499616621460368686266506856606525139471607473893114045251454340148198425825087774722036535121355664893399827019549625889132549290344713650602410600776458206053243769011503247473187549774817782506017069933137111255227439807847567957573227618862967950186331828476036092280910467497180281662799828511741650089897374598687970413162810777975588776432092583298486616702639382621909426385523640622196335363748591016852873536455427444734086931031234649414289408336704979400495826282456795565315865080719468467867173345842921923735313198542853800970683369208446218120261647775415440681677331829313913247049804400754645933239749045753064955102557485544307604879148506122475521873057944684197601097689996015421554242903054454627206773528139381990986560010931298649148205905888172778218625800968917713546667601098949306881893672269485618503972765881903317940407143787055641549521276355271295410619605247106492667659792712380795696513892265935047406247180410188153808632791128629492446190237544386010719858510017629655208322547559054293491810863184173357386599968060176457895658273635024084930361523780589537611800269539464157342745405761177793278715653912714645682565913871416765478749794890739221622325162258196313271937121761077327271898248694310139952295233341023256099081746485060630336367712923016697167770780856702867671922196231928441796812215066871588769205143657010369693557329063006381496824484231475618878299345575643366582542972146751753901109338317796887269181518956309377749129605718043294565329785290204955453530764373815531437820582558996361468971793733571704358915918072930902756645495913024553538380557867320517562963185932211122033185641593320203651827518285758314838042069221247628571486978657417488128132248447980519810637201715175205115775983096615952462804851938772209347691098779979327997862634150165112741984924909586460690751611231537403073550594417089989788460799343562004288338111811849569904973870700510830186252444453087292591250595409651866936739990870447582915385598577422329333929518341819290674537702337489766817819321776015093828113879101230242039730171222956726296114356261222039463596215642232181565501272374754099219969369089801769082125827711034518541008659019780693408180622571253153831849369166616892953123475010168682381828282954758217003800679493907309547085563661863664993661836359267225064940350123441185670885557307311556835904598701980562517792804829300665286785740721993237033518100617186087154173224404042363786896793420046671256828101705112991239690899620928436396653567929898594482629608901019311103892966339346184797529860292062658009419392779149491688271170738473276276811673922960221298759341302630340411872300560038850104400146704439602596519003441167475573565301748621593808794643688289257183152702770377781984434170344211335957264144434310058471869282310467709574224278364826661863041510535871725479632425589978229271531388138603145879949493974801474888115524291013679967545609932402881927853057481593780838805928938823176623442885308254737717029310769711371524346912504029157223264417183344973216124942015319036317306967413305806607257074819630702265596550382232741623763455691607866255408635750264453083231683328483338278538406462607919868831443193869342339837846782142233446002618994563022968553377990130416406395465614701837881251443795155755535977345043718883599275992173230017517681156463794418428042874414756024684972046043544159034127189836866876160569070510245803115095707516229915253374305466270018457479493312438237353996328093044946264632020761890987998602862022159081152205516816848662013232387049552105441381838762324930002169582527309590559004566300419843162436066054309661167642204766012124971387487094000315873167756557831851789066157965381535388255541000814239422488901893639243133119535347824748745707891709736083795178283811056832366917785899642228143320003559506304243933963412956562265282852476069992301512696667008363444682979653935565945565580429310710184815775112682337688492196414966203022076465991752157446391185427483077944544788056979486732414694525841843299138744805894869869772320051498749207904193114962696299699788912521612264591995851676142994246804587789995025480131432916924944777131263749151288931463174990192635622437503421928125780116339425627595350476201864687069750133034042767540346539381674446869615119197050998482148738796509639876494950949046240491170613686412317519618024391836821279599730417390059969929529119247091969819231543544899120255159761009329608094523961454702323525566362491774083409807077642855882580140103420199127439274115598636696819039177059471632848743562945053189268501971143878364201460857473751555319962611659161633584429431044863774993874226337527795876235016695013094786685247126706474709124777473100659465712358486602035140327990489528422871360427222046325328196309070539869501017042840806497721257221418372319919842642350951496009655370522325762021234830166333467192219685851943955075276332597527102746240127122149058847240147788520473372350763465690355668291551714206419941053264083926270580357878714087531097240682207077218213126131183333604398123142432530353356560038916054340764584162743542673016773267383343559520456182229605885877748483188279577992669294703200596974320758989759092380327105757026188267049090260109365881754211396985492568662952901321808306415791076638951887908846889277246454185503092607073050501995578216153489655122893882932460304319582334001715047287864726306750960196871986878204728305328577079960930882611630574447660280411832139372310517671325329738797484482322493154602034687826414540373845241513366444075555056051029655205193305814227302574480148604746453310750128532352259822031573294630080613886081977219711802009297445108853470968371051359197140341861626517397183764696450387351617613071413895064292532984378062301661798375538946782945743598065077387090154353682688468754681410715085124542785982549377031768276736666606399783652952321958093422465451692464349286318020577717752070251333899814157027157122172809026335523139595154919985011370264689192742794996956516932891367584921886533212930685567614964922896462255911402093080416007949124135928553228943129860379555193484806506330680171646187865364590819705750778599552527873253695314051459893994894262691528228573550919847928539757736231979095980141169136635875470563113290117068634075733221791019909008218878162510583775914667681537099629615057288481570408535564227046216585840764474028315175877252054035876754296959510307877234488218105664538915897443061675448427139134867123664246645251781859004906222006741974359270987251235934186009636263740159366368417419589559961373910152032362797721943649734035367175501727928819600131110464021047830235820561523067993241324338313526547355433777597058527340331853425890148538300515412637421123610246988895950497341331533427258856842400441031046269914890490555131398376105609844835608766090600778358905854911299388518554083597541845162866794351735160272576201257991898567511073921566135967185330391985589918240678622358209369733057923826975971635135851169991750184817761795081460787942554529067556173037268111609253194989721600092126825071885382211761571725893288613041020886905931272218985078356400863937642061953217967677688383036537664298053368004689663870381119570043527430812785632078406722405130450440526169887500691366023578759809774226138478992754336280411365084413593438316169300246813604418093344861054415900147199119789826261586740023086465386496667146565863457327769641643893908650399985576808373181266010335235887235933862036183532007623550416759159563575045724743161933044863412308040650990147075362904939959896521547736462292883823694423284909463093685681952603333744229252543526840898619671415962667548751582031619232497412523436063213415886967694382814005818625066873936510919222813146051479348454775398681220160066498191617848615652342007419345669455190491445008946248751337140880297256842081333159718821494890951745405350693424156130007534655704183715365770601956389463991768628380104176319636877862570797582052218639345265937410935964627438044554867451485739571745735824570281558455107417267590492566949604754939807366447594308160156328231592415851666205131658687258754930851290925789059540189741363359475208222400334446147094076745404368574923949076767259783637074826644325397565341146685657174421732335834645542955426581037053322522965940128218412507725321438888678703716742720855275906249005791443625688039405977676554598368863140005171176300083290019445865818008907056102874732864346696463944903882057115863929233222287520237137012602731057054658703504032095153165148612289693665900599732447383729252725359880504824259003247669303693379388213967004109436293839479003311176905943146808102165521773406315322527769386647417377875097461081535171327260905514209769399708979390948424234477556069675275388474517961430049551340286810752396006292686535953130015133017729731672774365760068370940849746960826915236388240501458163604740357460153619392097464608835486386225575542347346373336525456467182621295602445246162053051463746716780557454249312364068539349121280268762088734893323617213685010959843978122305468746157799736945370083902264259770237394695347242076866473841482589495352672932383969174477178414482780613547734067304692848887631418603932643602322451726267202907485569360350447234810307756872091731417891589538958499753945605094289447691207904878275717881856314473231879756063392873783696976522919823838877133295448150690391960274550661066946297583496747542358275497707962607184481478982084828680477807820506168005599128385204457243999600930907941406908693711766780899164891504383500457639621800543421507266455280555262594780797905063764377235951386762958747217662253204732706815144572553169374823097593160362179614930894362837532572426764647098016305437821620309545102630953881302267705993858570006809185542301803562906708200863258025845263298993580120077080108198251376328341921268642595430505263840533600868481934238189886503918815840276852873117424772642099662437138249752748089990798361834744259980108542583989584349440371936216838483372346444267551402074655090216973079751436257624775538095363255159349344689331765811294777565818422841783080124629179949059105956600609959563259796135047653804923890327586890303932044133046112864936203201123110442316377920922883392420600385548496752461804431476411880404766218567223747643635357326375907168969774418017112787249568367040233872898375403395221806048808429383317564290913038501620320791501502932696154701526100588311899653789816172684755918692553299456758259774316329263957267226119531847080104561503808410387991458639367186705842166636002751385191221492010352565151073425747900925781300293198550238701784640085706629230220819380955470695845691572702329051637778957184815142659891420361231320419604960713493042245747609637741905057035390104742217560019473142295536702967460159739020436527615382277714127717157447075402623710981469077330425666736327075610247890341854279019967750266497465333704711581298052782754440246512654674649582404879099201961348506396706026194473626992601644045017241418148099606399489124106927891706437235887226171283665377336912732340007780336907598310352641331287411182528098618763966678985723897675580445439853167448092959349508591090802257858816218616856922089848815109285662446425284618217756731527545011015647659901944865278071361413009410794940331439677845603042540762656378238012867716351427615411258808170541010341562122824960753668262609248904659995677383172714861451639251849378826442475589215090674459064487160853212658845930272302227468258160703987222713565217843597486255671778028709861974401501146070232218698398474483768704837816622701882496895994672000943385635051551031903188144887096057687969684282634247065806702703536721887841614238105867394957223538360963038951557192418827567110734610956110172567452790361478854807619425041128172368455353358843206483383195746566495628953141978977611636972276317812470222763227918610324112585330668209770174167821160360573259045113588147008470961597777944487908338287715671457998851120516851192775094751299913513125075400218938670616791122593500850746962114008927263486278893609583287059425842093365192350594562586033157894196125339605449896221981872006444044161049733357547949073034329734792111667886906800834816511245624167294863596498780330105876239921561060155702129053758789403560408621011967410188784919473040566585189270958388678967613832404710047361546396435053274964376449406647726374166287338839445225153007909411823703147421465726769571566690659998758999106613506041286522670547285925141538281631015552949790326614067606989967398602453010486670669088601503296756967369244927099057960286610380333603950692851763126033304991106118706030781097985482897374234379323733388135407977266610577956953862155470367015053976751460859456382122491210747188031446684623541117292887920796065030088516897580583809332412611923318937189353574375444860996373243465537291025267623599278251269654763563158904927945253623531650398638345883125360764423556888911059641066141498846822789363915239950284947791598429602323397840353157636978860941150253252935338775206709300306710372099191245439890961758871852254070183333407736909419993435297456971828527106683880637587442797025800180265101875593736313110824765566388283026203060124307876650933974491298515957870048136641667161437329899979383440943585937605368283347467254401661014838492667702514241037379922996214259707934125019007526006312693162442543613038361646588853107452842028495789278517714915380005967000781949333373837629174978885686492797324530759287272684252804563208133042919342571040341583951789025064099300503516827737775818977760534557272378731104800165833941414450068366701841371117758456364865056495904043508428597267620071635829850550842913520598416442931023799203545372954301009140229817269147188264906737677738243037368080804071260355937686766537058696253943501123031026581790058004499765604628823756573348615601391642622440838502449870212976649446985194071165326116371270954919368551886730690298590492482661776231582082245817553936748673936371077657329583491150134046877891383415613321639803730965745026837375671114591610298406630162158338892568956535130690625607103677984011681491167888960265934964659082260566398677249923075659382160305795736908957593413224743114077132703391409816353222892430025906292656344345103286440159229330210006371264576783022278474089847099405151323110405910404352904162443822547713730505772584215526290017742335195419776692590768558786476431099980832804850899995848882774621065448105603322792260180686561636090956946092107221452219992070573361635908399630299299008780195996434241103345411449864534896251631616475274434107449895455023441902198149442748700034439687092894762547693835467827154555991372871069524050715985552320978834521865241215058554172695286038938246214105917284415866218295504821723063631657900635031526243782666946767743583061286314784027964559526685457221965610616617853032121151597728267452859568732110001658885658328979434085760289098772573786247473892544376266473950802359379918937827207262635865034525498778556206555409622962872015598390966103351221725713370793423077931575406876182552018559520791450940220566349872155474550896897119724317032026894773238514921792500422213444376427477425663300497371368557816905352288905560861411729514243499909112571712832222684328662169305763353620571186122159925597770145932362383319686418024423727363175687482840313319432396704937169328822290561483956405114632032114469715421697547912890001825245941264772788436479633030478315626606590059277054075922715973939163200095987978481057369645656818202280903374417688388464987669969299556947785144700490941148231932293675423074337330370626774105696628586697870632433985928146108391982538659589099903878287338561559517283041600289246421092272799222926505392816988029074614602404550295316304764652520322436922215043130444550977192570380058731068400365147988613008190509658680098829808953152097559656135089024965026559580920175909247516385281742474609790210036766328737472042849464456014944405473138640315750013865922398687051303739248816892507677869041690302173263720824969063843525055507165084076892726197089338543269856504762941451616225531913751023080214589762791350905846756357371279005705217335169630316376845887280850599461195040821785264416821369103760739237310550906629545609989250074258373371752671284129683536537802956647784865817841172725312537033235070710118736590231163251912417269017205071406635141160980432756493680076654177110485983132945498704552590788697276012199187532125707269638103213361131028424413026061229659625619073515794586559430997322153756229348297963915537963132137834334619049185852025466436842970497874740630180771503911775052407475670176378183286437387576617181755259873089672865987096390860592686750629165078114491359821192635672240131899659222869826458819132442020387550585304165551800159794865144663850505066843934102721366530669227863124053311113614754958337399763575897495603482859385948987824926477104083401169150924283078090727685308766819684351210271915490731067033018525595861835765502555018413465032516915536355990364681470181241857546965326391270694639522795930002312785100064826917601505560260366689321366080560796833506355052062053431181782668190601186505056206217940529238652441888912066820807274241049222784134297398404613356450635135756573234153692641688857247261607138357640828573823973680165280645912317566896746456619413562098677398391173071231946890691895888479132610885507355820979869621770481823395614649322008881282866394409259698787699922162174380810985653627499627796323029707673854674348803777609627922288086400216917662709218448031000842602651375772544782673838038461391205668790972054157667818082657164725718166737467196307555225002663083259969685940665436316235398257887689955978448184999913432345319725950816596212885702223860487559562382570455484544509704931900029831322428453237279648908982503709672550725901735950184157544577081150756313889988281384099540907223165849323890297875083329552620085356701753052620839962771236489009901750415891074219243341856657508231868459277913695194055919337934981383143528495230625088521039970587293466631932177047220454596388486665441045949548821160848955102870079722002193024277524547967670254442055893623206914633788254041435978214442318964728674723506722439372501419063804179586870630962681647737485884523520245465003460663912771133288935833822732383074602593679010765887637166993306023216715990927497774205144330288097895559257377779481546326846916078547411419256237248203964562116386057283016755950253015901853110696314642299073342199005215880329439772013077477215863519713045339787638390160376635196385549159661571665649663126805659365220271602805949553448845333584363480857016155097408502977312997738651376228192640842039856768109951391573470688504705543764359025861208786464234039153052283311252295061770676690401374193875513570866535615843584756996327752018130871204643493095750121595878683172371532013442240191994956478511846674926376305799851960358724304160626264294279748765191752277206091205294196384717907139552149334707561106867676382694886788399217337482732408227259113674410565866694234053218068648741876739159464550131788363266319128271404181956397734696343727988271358169943333399713463304507925624367103529567675948316155056309804516206606316037957422786999551392883807129557499551073675837862666541159822093525014679116395572801499139452093477159103772873361687179963254403993716516744217795151952397819749621269866027056903292242609010961186206264033296099720017615602016375890224351512472022967197616178119485710554599627087852427610744354224198875259416199890188906796291122831410860199254409626417028274012728127177238236193058857874361120707449319919423880388965123530858664512567071177022950822392959820692633270689007692384745524142071878414786875474918048317432765852789933128015389057448315394043029449648039146033393314099431417937166229044103348199912914316165074001387583577157710850736708736182055950530270769906320534178930476073144659009894137441667232215699824215513187824100668608384451247542120185701530940214268146833527267361058815375484469835820330659438546906109686051318054834840612254227262383819592788231351755777977260586994766574278523889212130152756726653362412017814139779001967664107267349759534849181560355410371044209739137845880485333921553727278099456974367781704005780042442102630397790593370880664521565755300688216247883029004339256355012130995283020814532555299411565631521167413598884844667046088954627838307301177419390365457061092033552321144051148164695842128576708893091598089115499113868473133046698469974300455113871188155213982358223098254308693602399668116739762814734025910520976671266893048776325370429563100828769450629937402742643282728493015841969355655900978750929574645300734515903089737994693494803328803300023785455854549307089346081075124401472262432950080359856606423032901656013113074805067017445592990654208754066024438971761731510623888661852794468766174519977534997488840237711647422153922188508700046006932847096791765734988563298984477290315481463521168040814761373766366488075722034426061551536437334306066322200304188475821742359227309504821780960450811955754612640546908198453512552727226237596222572422133132966968031847239962037132738440210145961993320196134574960158014078654269849275941358660778357281822144236763470579132955797150141129941278026342787494284855948312739602957464351434140354124525339158366756344146151537786189894478087635832466162756221471346634175784524823172094087323907662889779736589972031218405304352670238736790143252741974815283930952812262788978236362146049251631450498462662702995778392515800034959703244101327309110062859191861262477852470704442876833845869560089953011967918848028731183690756591737154680851349781398022417965710687296073400069962061217187049624830307264893696361232832936761567016184009012765264374139880681151625026717738212397855210195138759335803441638964625337226192866702507200945084143856875825172581602550881899489489233938037250528937335784827348655727747598745170941152024903705801736598717498985726670862857470694041926817068229523118763018083219251390786802476342420539621155362360822816544954256208038055529201524984078853072192764927982281659993318068690932305345790999583146213795596501289705857151451011244500687741247028293333182119233642827519490717030356160890830362895923397649110815475963109483591181827693484954555198129658248548185745991418545922529634184410868394144705310141569066321104057889251651267201305144730113654038091139275120324270533900585883900206642098120628825484350902200721516594790516186922853075901134669392568890843261192640853286760438173154195496711453933774004827628229867435202114005534141522770956819516188079714400773737758575996220172843054314919535065140817305732115621477182189642515218055843147253724356084275241491242949396886966805394936463071978551832502622927632636486574523980557123328894598542386524801569143762360834478639729032104346981413904037225335370950545292998826081149466508110616834320250807974851673444918758181355921913750998364586387810881401435129677747171095490241784505852779924441496782857178945649819935035756110464493132758308688467669445876361505730297148590594164048567210611227462153597103689872317705125968878030747701693759885316672840289255570935318321870088552109601244436715493012544845519706661622414194511065467312734998859960554366374311646577344664325738809904038410941670569283203241373262307029820952422610755348034721286891897802929733962617449549625749650128271127802260520449964011015660665715443428865638600151300563615734614421034922205902628847474789014746478407953761693921454615993584773464419840164984597533143633016395678305511287347372260657736434000909911964113437667840321740370513234737145253235486626604812433005751152122800535791938721184834005909988771649830308798634926067789404416616280533274857970757244725039268480307476769706566431382342167291322899190776037996278308327929677725798576182989213428200122088046572469882553182120944072217501035582944145044283150391684489372371475547828894023373956729771330189967959651605707614911308427512391471187927655229084955211820306007124645106678852843414512975649093995069004971406133676189549659169527881557700337959831751213158820897273402809457600726390049933206687081108948516281036674321988358034283757100869690548879357944925052171204347837341441200079855305358463599664304852631063409902803910090858396881671378261304208273655449576522614197064038401341924253820663061138046441768670365708482634000660186475780580148351969524834679655466570746403232865612583979737461844108420700428196222106701961355975456008846574443747099108221022566906760904523392551158798403739935102508244116946193513216333064081735530993752206709370489372754036622919642075104765403640509690933252630562703323471486570918443222814547720133360660335814019921766866576909696542988682853294219303881141727239504020652737664343684455738430546347065843665805328181733876168939727705495618112676585431463815279152004868269808460394696272471481289985570074253442419738902648961309588122649393082428928319645634874555085468059699882470665563862449929558477999174925640771674419429472778655699769786635676919063892966290069147204314528444716946580407917673957612950378095643744068391681615860381768402899943291701255264031031496711049146799666513742571469410112499233307527901967860036369500559546635471550498529574041335243144698920641102950011956354635358393114494807665295515340569238285703514237172394903361344445501603687365699523005887325276279966251938516542665104425099932923988735698614860642583120542137792358901326050725812242145355575978541779883629033757995473579636144681696654618565070213509038924768448572233579766794582827281768462523250495694955931129779063900063878849255858265549361501130515185680260759017307398412534722616224085003100064155218462969574540517703259448157948609032468619565294214658568415789757801457815579644976428390110160383506206347445378030592278997877852149705086210308388653467863296703423866273050387655690202333740009497141737129156915136233478476137530155555253012348272190779325139476521347038762713069326297466331242431066965684885644024882609654634977770315560116286495307231316781112497931325572867589226158406059894473206908424843633405901076360007009527744824944835178691635361871264799640328991965759338493560505253584590730735682435996536296316836711976923970602987971038919579294061395852259743077332119949853635810375421966025314465217894869748700223406609542163201710218948599562174580801695868250667104089920438516288453490285487351868672181774249880145578583053501037931883191575793565050533412942422150258416210676274657475239062461613823845166697293584665646345823231382433546850305626769742849556728532933757931490036052585829213558206827054260356173535861093453645019747253154585861595740812014553235167494628845000993349308157246223314682996592234133376672532930747811299811458411799485414676990318160383070741709948412179809456203451747187409278439854306644688947772434582657790816461842506740031229017267253857603594148516803452194057877590111889252476169637183069560540716678416479883776256431603148945627619083656318929827980584508143422041572455389379366954288963062610136838709143053673280593561774429808393855461683782431510715902257297110201121297599601164719231624011892065612649658899856796288833168528707701594954901112486519777700915370793137711040800479269796354796128862258802605171972081440175151461242108301742787295135992355250874582180569559170807504155956750888499190105491499933820588855944858284523776123868087027862633299563779411379774445140142564879748550702385758960501895746472411560340632144408367154862468085417596581052757171695094617639539861871232885260532269406904784718885072014396293407190229213591590989121812336762668088463008965521788076765344540465355814697563825555924367687932079090693388063165967819280373315899889634097169416449293228929571201056055089103099075821406968642181455095177193529656624261044954600124487499766048760348996075716462370462575902921082709078609594660030045164537973063525114068313781209526161127606064437535798885921014614707966636567625497295287442857687040900648852284412473762241029548645780771092581788613888961074155411057529788687915342241270987202766286973165218166021923022476003373470135048867739719086994038466376570275468876332523434418284295992349671919379719562421488371024827680768765769000880521806391372947424648297969816361934194887390625826352709049379913771675657677651754563145942783662442183657122194437713418034757018548165482933207850029261774048090534376429899096721526649466149836174543773258565434909896876731965974071549398702593053300454807350817745923377337090790739949440638205748296717222254169045517701732146846288918880242854842535809547393083424296322909166301148005358122297575255990275214099738574982287148081662578225651763376205899111196922887288658300551199892805710495004207301181599774853328840137494379592653963847256482700335584152321928083682319572790837089412897114538151210948968432209857341551548483006995808660623858929424990064235360630020601175129498615611152032140861962026305411304603634272645000932381367388225526600348055580349524346762629827471806237420567688573374267344603900409517020338839576551289285195652024542651446429592606909265732715943727653724625463552424035147107395103255830655398910480124611101017652031563601955020428344681786334266530017201299712510697834094802849137902921250986482238280299870260185224845958314064881780002535213838965037614862241843404299024029221253687799484695454454171125239369772031460322453166734796171895729301401980588067656669392825393926242492682281436729012937640701679447622050392023639122453199054648805252745272695400938090356995310576075837434334115477268607076404411289537185865955627922120821316141726475496902672161083089171988461983130771559036620479732076596826200973097178524922370497750265819282574287210288619561026964546353305074270167177350875822266339600408638331045171385185331557037599901403459561123484858715329284423948686021753557271875560647633377460030598476285039366282508091307295209778827724549987278526901413097670182300725136936092635758259248357930675426810829960026973697507441304970618752957733999857653249154720564624981179786780305866800059121909319748094936731800673740684556007642858100384410279534549732355385496220556117343586362252317712711241997203759059843382320656945823182044690060676514435170369343916206887256150911157742286887861541711813957656188362235475456422766388376767606540979768117633680140221188651032402444525052187931536212237409873926807313275850501591822746134078030927655654603310794764163047323277699238939498440303664303756526565219336648632871339571258896517859381481026468326922194605524620578317556509231950777489099451678787967715803754548211919915615070324168279496714138922975692530478223518112543106012159878532762899702624431755837019776685341343582159485629603096043850143780419545539197673717771297284031569937448722097879126750163491758108802592721826699202852398433035776935730085843466890083556711088486724908124409422269459968062173162385773218232117532521978640223480014857859643403751686175133316296758467998494236710584642597016410653377535646453508774852945958807196800781543477860270216098862110106880731446690086491562187924298622770631762947966795269386112128508875889406951602413437563260624158176805172033016356491528151528177582408783881488964231472960768239260825158824406238270536034344529489839259144190042641499697338333182454489865845990322135430358853533330480968923879234415451584508476530763253647661622239091235557223527056451741411452543582471267631101774384202645968070734720458233970864414047093651864490339045847011803289340110711587193465097625018025653680955353136221307375043469485720064931745416306629533229679506236374392137574443334311312936709651203463509603135524537032710158192150693980719818246825133731290713519305458230450125701230840647301195569236583181006266256487707015844981600292618853584398306607447675983514997208830301604284074453575235027511538228128380475120911466646014257351643950738037974800356579471185792027639001901195258951279082532093607338811491982279822143629563436295113354715992162289427492629421940753792041014908666661074279430281955104116489337754389076616803549017087219726847496617067490925749194000829055706289030584073313992405052578028539292732889364600076187694829212370890353960357061862778010870278227377166887565886194526267224176822838705987900283069323047624237396128068690596853473478085143756976691000632866276998264468370401524751210665960114258439859135164555524421037900810640748644101985108928858810024102214393683973327455035956229869045643168864327174966547668754331075195064530612852424147898775943044926504915892373161180295629288625502743940453761453055429946112160368189161782521832461473842873316510850592023015826393865687407248849264394502285477572374103043368347906881165225876525397861422116486039050002515430912173589878688400045411815123756448453566168140365243301716797844896189177814015073313020827285498025711152955265814901629515866836453676464748850846408748977013611479094008734422501809006996459130288173106122360508592088276751041788955553141055871324967075706555759414810112890835479121931528907815923919903896151056398638911279235529857265154877886147823673612979996202341827023621664312869645908904426989879607514305142533906602880866057110698150342751631835392037510185759041578570241279078503708879912451982834297248534500132998188389692516699171357962085489826831001909690518918924289497515633603512744254188395958596373274792572799533119707108478034183245748082019227011165169688955311953125974253232823190353460216540522583578956851633292547509260919221316533522146294102096776097111445407456673345475304269499850733547873795524445973433928368220848106186160202672395288383968570344604186942865075181891403892310933325259641895428298392840084535356866323253822571968480375479583732034711151598169452600758704158662187570755972735292437903117890551532066565787492393325357054756826558271853644074488883574312611125371433273262025296424837679226014535225514328203364015975190590370949036639024404304702161465106456350756981409778092577965748527502697596767542231780009018286270917873996459060848912822348309265767545065272692560720276585421531303481658291196189215388065347730541665139165629524998651758664959141981115976880374462457963752766183580163269350128637931485389560739513807261433180891230697709889517287076104561048192449735864846577279409828809314596628272230331994593377978765894425998252464073735317365396251133874095282869310689475901944030993578121403787571690151542731609647842611588440569450419587958074689938955007750084461820981769633991286953506994474863317604065046435818552825466859994684372716070152964098857036391867017610684881720349205329313858330628915130591398276285335852630762679213133991776027485350227587036305336651220784204521740519793408644934706741756191574080400108490180477870914598878153915025736976571750153348331108258154019534607624303509994178153553062297790389961120562035395283233734439237300374749557206650168063737906102539932035400651827784247582587028201372157983236480877072342125318022217167313714039864618667239782782256504111992632530523253385375643936737129422712208845366994154752806729118708465970036484201821180312566510762798905713094979656581714492372100981626203810322764547987156665219843767748320794232573410595378065999700233804295076394588015492543123770096028178196868136735073758908156773763679321021048818274522370126898034307080836866193298002768141874444651368473230354577682271539417003124982066498226991274323894859040252698277900530909840640784657815195091771457571536759012242649769310424481351102328814396357012161700798729755590217507776602444231422522005232798079311539112263176058655317057297617910504818797074055046582916284698542324685305665581389458944105491954779530508483006136429345841843948555386038978627193259922494637952551636738769183602644453150941399257846795252445633610764410197643972616074140678103531271063454790857034778344907105740014624238570621780739034276059890162292067197364241886539155035813171071030944128531423507835751659087788144387812805815365602235857189915633051262832717008792756145479644838588279288588882020571188608727697756485803183821496477373833900901929677461217717666457557481671171734947357015886785594247152168214091165013624843931941855820075134637235776897357518890691279114577532246322692679362035362786634607251507149486753456994362112286524332022496158659966483013731916409980821422089128335034771465646207406211087043943066286675795657728753840308380162228529013268302165071338254912087061775076688929989045373767090537794039296138186041875288408366930678674403551859059143594695976877063781139218166424634526224235495633054447426699684956438867246789741343374275167696682630855039407878671290111742804816403163191948674284159003952287596858261353763069255369490795056631340540113280572949827267085988222953403170060865896861350304477223508857269982361267681297542304827677333017030316340892604429477663741206697096542469027357030045660921510736093799298733198701212728654586316432281782483844696046343910018571834565767941680819826102153795317463263955020603290950909605608934122559737023664968140462911002567262977221666327027286146210269597814409567711588403348114799275966208251019777808340313924897436040546079905053367079732412270418131586802187920760441144927871141319468491417880622691277719362485929578808269758029710733645958179338667127977721355437569646382956273035862283564840064853084225385579065946467712816015334497204217236057695986349114729933207091494747285404881060479034561679078071359797017234435281236902120971393314794168427294342567974200934275771644648457259684681443702044985427876277044228513916398516205027906864996992767971443912640292244790398735110358200421854677136332596983087166468970416306016956667974746767042527666664154109066688515429262768973773669072547946888225025796036533479896923967142234867403078139614973101249980596248913454442432434552043577875427409477265654078896892664950595915149619453036178342972826631679519138266377443427471571447919570640240551728427899599480206459658520514621643813246384143676905329264479020313034763793896267860896546551006635016507610349786559385817114236818129787947584442157720938777593004070599491462573779645737731790656300011635814190508012708491303370881587435137710665678702847985556767469257158351702534261558320040421183077151144204793414101934737962980629651768211050670126454848399353790893447864109207133625927806643795395111519827338934574181237206263589379348372240681170308133455738765027880990382178271034604182840470546454293707276160058245006106647268663166988636035796961406990834573417729147962032631023760397310678934763196976146720401015493882238245406790415517364049787894419374428024520254328611023350539545061844381646451210626616376916707211430524019760220997843556491507071181403487426839032909935137095703326977754130273180565839180460420374769402878748173741798178859959525567451140067255827208342179848879851462438074929779954664176600719735302667859396504034243139780034020442406283579085859418689008919467626266014476703768708209667269159816716276610976020773563893713508171263305845094830945804508036504138367101096461445523157567558781590455408208686258600490514285126852396364845695292174848401979057324228070903155835224759357580458796626088621121824627041982092234308014921096454623332210903807175230191065678494470812093464931668614234537685259258229889824605328834259513358982853168460358364834814484344478245366553126904744773735780357275266975006053573864367048489279103779213707130513740338956275415229656161261615872618792913717014558015259945404178097645955177571763931540589762481745142478187416690114727419080642134402539086304423577777110873065334772756706082019817097152881080439264141311293116204104404726536047432175181238997231381369420276611422297599571758875496277052267454626201148077779356796462325752587103084333760247226105042379713666017156422464768200768758780419570008339252099963211029270946747839105407418076351293942031655670302907034780296631753262419932536134228867791553792001414140261319373270576574651114862318650386466900590524823910306524168974156128453482013122335358851959708061930501234771957668237268361992988456071153507675901111998622421671905147498119895143170170194782123534800746361503554163129171173879338146796014205818400450108704785810742426735203120522375701574919389593435250107682073016544153547553258150227740620892964911711009942448878182568631091916176327132089660439036128079192407419276969410169932123322009766909402813136114672497747974104845710794743688906547289599219170554367894492628758306738884385012825826999600077959432463790053101387285054774513402595602155217561365532627170025445822021275900397462267173157812673465966554226940807581826784878529258044394068369403454736526963789674934062158904033565835242805688586712017266205359658577922754689405245503724335881282911811874748300151074704056269067083500126105620070422994389641909078554208366651070836777170315254008422308468910632630101777543242938210716392344580522405517760815088104096183848769161872645717001777997062755612487063999044094476163704301579774431453596688349628840835339145171087262708007850180036221156459171249346732155785763864810817747005971274733466989455259413232561224272362968578373291285866706499263225129499680894920822662130311920981896385135671409230837960272996403728373751087931659169362239818791720844265244686229497561846654024508839587584160077315924362463453702867764967397099502553122360628671572111040777360001257909641947496088103507211261876486718437694750769046205023660190364443272789252382959098846678264114676916365864121401911193319137693925052453395374942425011445347824941746491350603643762193752146935744312243022431648909963221837071482935825306785597921394867684030204717557510168225916050741781239299914105924559717600138389997281937757540100282070605961419978134189925379301847949839089101458453112202141445810127530134662570235711810937143010699220112473127736811953598217338984360436705428794440624090065190629773194141869926321857241039469274096726335414169399653308015339335548296829540339465400556006521371710844479480600310400465674775643671638606097548665663157340367110431879522026039552392539212022230245105360854948177478908688312859711944400670809532086513151055238147614523141964848632554249792846715671987298074837552899721706672329494789293742192539010491133154759930114441067640856826924570865707046954271737445779519047262565410333212890254553521726564510694502406252754214997424933782026494562576077198687022042098189243614209054166704266664258059295660733400720540680808064125050406561379810755319545450949112114838660224996455991551648058225487544224721708982433015247576176906931546500534873895428203925275724564243817334115658525689485381884790721050891350136524834821780401269542119772935900453461950802644931540409173881854992319184390098835226342408669874693603385416133616198518124893133703517164332018674484404223323373813686673271927708856862263384987933619931822604755596075801132322078732956528037133973765041466323155724343444993616730565029556738976103210774434889408517220030235861040854262834600195091596634037761809249093185416474633543530583416673058291192161822700638380717965854591404731622530946305385922898270175101095437306889534211730442412805536512049285515010973119907037926547347942185457411341324236745397450379616204898801251064584022712485859514673200768090876931952930025462344613611506358834701703114932050902198205135121266118519159372197562246334055917837275439088952235264262461719513309883501019841101164761765809212084919527105566636670162316996251122744175323112335120545293971902406239357224115452297566151279282876658115507915931011508615106909476264354644122187734288227033967975975263050025805848521186215241838501703304131385696616253563601969088908174774866710734358072097477336949949293651652835446929266558755275890385567203230172123489410724532901668131036369847943193135445422960385498772631829454122094509163484457429000881185301790768298324918695047886631257373054653941747872895519307928336586172282118216663514211523601101382712746940091974309989514279706409837666893182746067803962541596400047715554293140055338176670714684435489038124813133036928985805714523674964153644840370806901582065160615711280087830862520290438165710975592014306222751326441869394392422897431662985270922293435810349835586150354158710351258328697658656307511579690205172268935751913339344437399389864613915805682250493553885148308860360761234995831336262128257306153752255098791149045385413084738672758604329180637296291564272997684420706759011138591864229825131010489149970212321263524163742613880655503060961299261632986913165147338928579163790117944909811600317179852254207874303785006400721527541547107975793312015253124168724862216724819756750318791653612854079958233286933419999024346377876932655436308598758149632497129805166390760112866318796582001787834484737882716281622954819836118367452307139196162577885690777085526502927525765977948624072680342587063762466311810649485205645036299483507296422611080252193714573215802647992282512530953167992005333774097321497496557842579668332635232683584255436770878590097664324238492596812945560857300772934544793521967976060690643578354421393849326318658804400532068673458537226774960622988948486108923876384797155940203809126748201564014764527488683598358133619830868746691426485442977794130215575495501549226425945713810099953446845575424443589515726489684091411024146406864437293075239110357267359368610526340269444261417732577872283597053216667505105421364751018546152181418342916015270842312420034445168608103263409497596599127246405236935403536298559923433434999959858117985134423869135197650145846231227923112645681998270599657117826431415507405086939875934916119684548256311409356165017931683092746374128586694819706992232796764542505984930638655055738445100302618645184531823309987836035252373521214572703483812485089851832801998094808606371063299759214788600334910691641634326096124054598021811164423758124525032228418130532266602895061914187256244505179646193574743177645199080319726405021596205727031792889931053301925250232047676935670838186960197820618984497192374954753666171881203312607521331373229167730490527622878914586889736647123813431242339698243595524102275939683502158366294752261882999039471704822623268436427374658815777628175401978008454685891378290679390249248941403971641468783242202237181836600902300188913759799188633804087780948678154773086789251618964538241502457395851466146233724203763019082732527415746930988426978949302326099945425756920463713797379936771769909227936966038186060445734076369006226655079128777616030480473581226563800155432510442235154763868216739628176518833195567836791147994364221566819196534748612343506562570851090471034761442661882191635039907600688357945020206631048501811879955425425024168168174337698274961202148992611090175495897059637664348319944646086333063743946257662908680059656042081401294453077293407426749181729331163193819487493378259943231653673225345553005054862785016325422025746236994520473353568803200616605843428635822394029315653439353645476623560607135448238617064803382834152731713508803514514165881130699821863644083806969020465305354464860999518303412846598860258269399082690285618175786705783119348794040130008203573121548878160980479822197364219697917375247581403227524321656810344485588119928200616398211366195324443717718927087332099353111370061991862692077862971129470397060838280735921770154663940902571912826959701417696368550216368901922885425265196314720686650161714430972600978280876779732766877614183471675021635022153045527226266494272090743134324026567167248808918122582046579925611324661262396513223055037111001743799225822339465309598824837916477165916412674907946277734343748031816094364166595917791503661254459996620945365865827229742139791198448664135255156782262810823098854011443357443616324613520166139453121576960527574342959484146146289206572438867120902642983580034516484302843805607064945801300734912136817608706316622098761671870621542323453674167229682104258894155044183604059553445032113679100042254707847934836789070640264377698798986733757434852239027212550824788989607474822557610183887871280870725572799701742143087490612799956321575604186371711585114108315647228257440456439356781623053909829238560998344256738705518540666045947285693553291327029215570384898809022159851661078860994249830641576363368213412729297052812120552019832980439913818400608131127780496537149804515431003939391076907779525120799318858850802788310686126527639352471136877975925112371930966832894212146931612269521316109069779829077888350609607470216924239911751749701448346213943574204715286921930131556614749567775139808706594428447376199596851602428239429837992689151845484141914151130925744018317852738873050840463530308159888259241684167092283450059124927519429893638518783911828367517922823375085824947208682182230332798677008862961403712577933383145335791947091204495563263527082641623054101874127239103278682711644052701902952071564355535806345382412789601313348984918718702488399485479290009543805677409731474171368843698795368271525309856513868678264241918998132179095433913617607169318455882769330946954522669055288622087662393386135643861814961180620895698938441252698160860379940361728908547803339523248562872682263418758961853494722143908223644037526281843825501200683358177873867865310606450409221925481108198547231474157526298247127858426409396480090551365853294171600853063301577261131240428403898086146225692437795348218485136293440952528233919979357790261354402281942992126105111594221725773128109010517609732652198008565298245915522161569119684038123731561464056606982019927693651878037714663964115186391040520266863011072313241656600339842409270469528724757218044225860146666753308890831706265084918705670782481484935461106625708885647827012798899540230882639420759009241662005216664295653163801113110106147524808885666022653266994526594149345579636275684419807229648035015703321707843634041165972317772920655284977803194575839511095989318810100991732405876856230273230918627667753772019450821511999738901767435402900398118185657911173621428675313014216005814066253100152857850889324575766576724217661378629667147119413136757978960064049764410459334806932611615724292250919220119306584032118144886792377522877254861538825358649682079119364823338417826335486908063807996433181505974041897820530857318122724127739142588900047897223146717666186618882346426008055584317960607748033681839265633223197947886643539483934406431732993853106221509777849991838405827272936489333641619522885971699745976043473839574240734414896055897497905659558994541392938433975507954859251370351981496414224651914406135291270241373517838948185976863314222720213885673332328963598296181424806587607322204552882171301973219320918280321483466645602406931690462385724982343080011117224655866620898956999367677829828085706067185202234897379669338824520352702497347233819589066469363945424379359791427313094224925080225572161155241500402504320299205880817568818247425957693573449337428953397144362463808560299364091986967993694947426933872756325239309366297684116922687659315020050290743455945821351808325852712371371817858989289091854518862666231296257848082477098562064411457609961985297253732446167998888858280335263611867380603917699618111321883939896431802155195092686391599487245572650410180317906030751368491656860722941133913797548237237829235719583407429204576151072863171957713639517112971377156638387098147315658394971678100732611242027813808438135793147169542057781279211061821112921420861414922718392981215937837465553809149206891467414196347255045714363137513522497530671662671330744471179726471326989425942344481691412456770372403302292041278240015787422051991877661292618583339040809964765877151408209770322864787521958645189929466901103989622640119313303923970913836041421815034031695098455940610610555761226677008054484302264040885825181220396972398843910039807757182414355021128407767111903300146298495737975853984915581516352468898169850158962727571627008194981918656964686144390572908323317597824435181708638254091993780991341892052049742065133735810049328712650361474793785245741616908776860800744789847737508098912014423547531658480018267002985887159135257575350074148970857569640644563514208451434739764348308122997201742970136146844889216184506364081961741083221346517965499589654260488029743788526804032490548472646652949503893686955930983571413017805284469424335311309364015127042948579178609438605312582708303692621238638908143663245729119875589376505001269244940338272872045212272536158219009112066316352887668284017728396725230247157160706173646866031426774481597615063513641701328131795090350835816662945972382930169290638716261644408966093450098724356184535092865593265527267201137812306208540008993684160986408232898971994384932159183141400300007174707721262520144627977146452972418000374632191289209867778343270659156339568131394501676127097541492766890709402494542873464357809723815348057322937932020489845895934005785467441668150591370653945558923562694072308454334755319750912312178591281706364479345462091412934758774029368377586989762380272773006386778752878042890953781058690716756113007065326287600880092130139297668361544505964640155982305047373396585936954930406707597706739098358086524286187753831209160359227408796425965647205951355361670946591469750390710726070051850900125786036772793180184747356435434902604813413140693912792477345090065171486883316266773015872368499294818231470129430041729952652165023435772773732993643472054172614269847217086386872144357710820222395687783666324823908121095145981751150868561396803278852801826672602249811294416224577572992730139560764025813569145896530497694680930365425695861620996157799432047812169294989246369335246868574075692481942105975916872568610298470724027380060523126077198954068311077718328327425148827915433510664535974529154374113882380723640274513818239626020725579250301097906365913090144104414080263141396096173119758574975796579441621581087547839248132616534840264311643120672330411170528637699157031170463128811899034135162548006766251942383482479225064540321718382547195807000276921541994798915147937166453635776823839723034654530639769002343087036887260267274175049345154961581343796790800473994033589825617606488545754969477703851388083796055691294386576978038253925759446398506376082061964988575265204639961591227306966168681057842833161709715952397768761930486237945550740752142029200885988568876902238254683574883389735449047780865370328069860209867036985315138818001820810615616527244044329744282595093184987990461806234789852160252411860669649175997189169911591610351095313630241919434738864417393682452632605732474845251841291821168155669707495749457765477865828282200140793288176524545925671742202813194511582938709624107285528154376860432697888678181505294415619832336208573896551750043369527390222052437024427088287494732293339752995494158256812813002947224389633899038268695637224232993567121802664542474726686133783511070211940405527486816856132448595589181213101098668622738734042603607597071531693296882839735766666765140443308424157967821576576654429249707758571531584228111077676090586067735704772727237471983713092590991837799529410690935113431186621884436949931767807658026531119523011113663868475072694007078974170321681686465714592799117827753702274215463358125488862991136813406683063551496557613997248122736767416232373113536119697359972629096224212926421790098973288516839844610211941926316923754068033048626518570303327365763220567700836169868654614493140178822167742912771536071435087761918313174255749808092540033419446773487795667803334032553711849278610180384213818172565601682657457993998791005457722834354484606644963202636618622393805241723658784736311018199912369916456874381414754461924353985739604848517886725807931549853974931812777045847518977692845025665777900575538553140818857153948241859756497329298428552446518312845115806640674896123024062401966839009465061958589350840427015671298306248588251477718204679201835745768453080994483116066306344639967441949599803959826009167124956272186659542000363442855026726709322760250926080898213755656554007490506873681474848800062016382172156658604011095567269528199579555560301274466711311544797748452784999745038354658038924226965783362672697985401484089925201578052421507715509840250766446412105310019126034076512013319654495774034486467294431860795201985040830937321465121986763795805626795364436229329895201139261938075856819882661746448956470050527505658401542858702182010233844998800012590291814765487001703892661169331862145709330163749600329730934891207634993281530343672440845695196732460525164237422821194152731129516026518732051364730395485617268205053641902601399410912921282211982372336610126244538070030070192927561713739017935947287435185881285177556606070564056788016784553168214372699596393724596761593311549737449521324495530977006995790413582804840108639143274810474780561801216908202190252270434250260560720770940344157799849171939875419748070032446611418733215213415867780959007827471728845378382127116339120012213953953488547696662411207949632023239660202022546215120603799137092957705697332037434752387924660767643732786942025902230054468168785863318372081257367132534869850686949766274885512441956379075927686556219420520337051165187219102355417151177894589606218475468116471363513809034050736065046276369767396551710687366464110590427372232521634694954188545622909489076794961475102659446424187169158921932006766646793788371684078570356960208300101177427098199894451782745170112113465883103080102765438167875997996089366436600535934367121803710030423451283271865514807642836287831298330048334671296036596847251729934258954852921322937339362917224653163155706405437793459338235086881536009593924825518713480492263241729001435704108955742329773622266960330347859854072236619069801527287052375957477555868974780583870013205005819820752804534538132742667358387055011681781709927489548390688222776845851082276292612801293552370405438800903875143988372461296254545022022047956053541700770591294797200541221528476845713670645092260012265950106142497385092815376551895962011260227076931262651264346583418303344343784489858142494014646531208203769067546113661040046496660436670758419064046190612355479898074017750813449942103160649858079773038762390643376163113024127215488877185281634686544552071668731209448212721506395751166370784858963581776904816062128939976896056017621018644707253766148163914949724085283100267060617644301435679122379493069824171406506784471311210492064795057968979755318970009198120334964277312300992653646483992809080483444696664199587295881463885346087420595646850709327842347684586644569400156695548371806840430427670298520106340400014520797213519811901495395122722084096945398740946131036143796320994105169642422946622282453121617233010003016829417893238496341032075877516885533148706122592664448621765166718602707361737256475095370202275575898539620858250438704617040097265278474961600669786618267568717568957366137243273927118407833138802117814718432731136954587772055932425463685618130874942184644582027449739995177296698926072749018147761238599727069657104807257412340511362148446220497155426178540699287025560192908808531969888492790943269180890213026914390001119572284362924135866462952376796589900609931684010976603953851458772129665760334855786649040798163544477481319946054023140478819963035867856012657535403490250690433136333152886572612202701349232278753945928545840962031032679824173846080470993710510293140642217653067916576185371800705866962469347921336045278185913110889166368378297180129314626338646148331756089052957934742387089599505951879604412132940717481414517753245900175595324769955440199988481970415529835304156466194591618107881667132896334408392907739243009596993429668356913512088981937132025471135343930217655481672862493250403913276176342590533718290354607344940945598112821646733449585633462168949286106945883161892240243715729216704337030006345204122455843872528826454505247589746116462431963112412097390938893732972583792805339664419825132398750353573237327027902052373311689903380590374519593687094727560046986720537386586332206144411729726838623801899618931243217519484251715257743359441398945997799534802521678183114171953697268832522525829115768438890039386158370302811698538159936245969028211484858172203589896518620305666287768461688658958999037466347580390616278251507013275081960554876034511219929043241110011755423757121830897074009999263938497903151658071825241424795390961725458207685527082452300020810343016672775264029919357085775161385284969896351965393257838808699062134903838826609503775201803550365639447787209042467051789019008188485466159766884702041213466591605075808665452324624958930516078161577303275165696131721664694544578326369545865636536030229438358822568812117639750320068788819132260378843020089842709865669505905098633380005813127766474377364996468415058752133505354890623257221701172781903975291337930299409017338503267539165568978592094546898111724660308231754466649268653080585678133882342609191742976256793368318243348736654393855268489732299814424278033000317165311132537233352330875122072557772629195326886676602494032776006366136925942126855113744512601043644272142470480647887896249335290833390920754795974632510496643157636940461716977923191518660988867384285408009683051508911171938971492410358597993782976954309331458147677932548923286706685965463250946163924497182762174958091367622285650216783673434294084991060349583402853513817627728989957203236794937680711744114957728250383509481662613752532746000445748540955293395631441001591044807028249975752268521232392137334141619741500042122654309440950442953806420839612673453331087188571316639126288247839399001927795706659222205607413774809299449943899489546536427340917060723324497694022803697178757789162123913176571481315804326620035985654432800871720124712570094034419264665475849937173445769890289686389135964069333302599544935723811338017929630035471401522159416681023549967611539389215607383383702663096996433186414595902782658658439335333047511010041478263492378278586328002476225236087940393289370889145587874896977298434800630758141290363933714069440035430623587172942780801513567070522469989257737194324948671593345136385253456880535751802453106331366075830201111546305368078243318769351457146221023945847790161221939223995522296078402505299211296411164187565164843082062459614065617392423122670758900607034944001738096015908729104197471070875794031457225565959898560185926768967472776538072225177121208480071999945738343175397470890003720104205285884900156845448415833816774504359750059080208939040370766201841059946388714108476777930464268404938686761914508618027246985805212833206777193652610283341205944923047983192171730775833909949150378137937700168667701217958869196514380090032374922922857715562764529441961134615131647094877620361070861779466563732240223914737477437961412108926424303284031805556592400052338899355088864223442013650020580850239300779965454003991888855878699525139126376153955863052296121800366242719689820100215783155972065283218268473156144926765748370236745365053386873924098047036210121283247474358812505767859298188618276728727862648286455766559825937888330608208649689276824231073903469036265540371859179245715184236819776763504930434514848768872889361584704664021574528777833994151361864308324923523762736926828679193125431126652818517961164638311822890511164573904760206481505968839194085502289126613307031440338724864245357564960848313210262620805360106550155887151921483821477039988569662917754158527508745487417830521443619575982149940484736100968563465438502100416677698068954462722479974697007345367260401378251113798360118817882087564387377057780065246134311824407188707966366999447517280141689353562267005700338368851838377900423009017185009278720143898546151911410763557807087501796622904249397062601646187900835623627659014006769531040680464782342923385901853844545263035066015478868745264390901309019246579270483496839892793112086811615069664023064714321928550181774163153315349920582739133017187011889058890825674060249786084265482774014216326590329097348198894400119376203205310017697894964782642078890768333625189649911735319501577109652248370796019697435750824830985950278493450630788012171560168033646955280041431998654077295151026341625420250756247710029710104370448995191523166440815670829945129927904168220186839026385831894561670983471775609697024446601567931418415821900230767117441413748784600069239401164813753843485552314117572790368117502801038094091972397728202085624439821315160321661097200685758861519642816175445276496992878484518782999464555795501193757764618139027848961277108778283511217328412259298594140251168072398708286850330726000878429826474259096195607671700890659351821631355248872566572774832960392960276733036018507420833359902269162213869009805881166545864371186894064500961511587757087360775845864333651238881336913784795025167849379144363857114917469037277876776796241496118928359501739984081431122569975393832227739282653902679560799955382232915140493953148085329962945762500141332032257494839970981332052838807172416946783092720611471237547100235700505433785847281287417617291631228850858548472284351726469095473187170088843377261276288681134436744869850035088159650358447327199182279762330838948414809540199692098610278243781867013075581386370463694638252933318017835854757629736597913710633887464441176322579837173250754313834483224172165516821283013330888211892977987602639656083742244418403666552501879780457382227230600240431293031315720400358801548969771543749548827585171458256791510518961954730628599426416321647331980305888173802635850868163879964413707519123635868883313565956732382004373903549066092873001685317230276274238329804422956556351547138373831140455487179300260853614860607993542063514455995120382602080486933089531293991659843508320262140386750615876445016766971004887396110125705053284250514196006420630489083083052419256985739614132528675872710713630634984902820578268640863746246988681797457019806939002592130609257307766533996353548759962683200348113081421080846524145560002462944049720945348688784829398079208336273716407288257767490259284634501757914917387009248076279497354856270846309489194869300191971462315063569943981281690465311083803590650012849160415937617866519159130149927702328691275071602848386374080702757573082898816261518981558871279391549014855300359795459138796964280763452683093544899735055515027278797795610146621837329130852768134035464443995655623693109267685408104546481545198952507219704143748829699554999923264182620438741837640201908817656098654738520777229632962456454679361089735542832643531400740573676697838526121247073603969672953030040935065298042336683290410006386179324532689861548994587651171158080722623942847681776538802797034542965518184975675100690005942099370708101969402993636912441478625946849767181563537528413208342157120823166435117617641315630642366178075751079986223970814341330431238617898018823071583925356622240840971478194084541700042611198961874169016190740469218953965087741933372110828748703346973968667703433475838320290085447407573955302601485785599167582012371870953513594876207683825490699650859399552163264684109858471738513227153281708113871064149638530664034330173028954046379531636622263113164140406669950195563119805119932301416755069801384454508959336558006260419156497705822446232978545239035032961495801489100166924063536467175532506338719994003548478904877841398903482091903998819230734544823752186791064313385396915565166869882153092275552928857511309236993026111388759459769739249967182220080672612446710010155232175425834586437893058084182737502201126775571495764288526715510750777680998054796110042423871962963307332604508143118962832006420951922200891824328951317223711609341456346619061040657257257874620737724550643511964084333043712679224656222995468849447696024209921937760502445682800476807562336440443384536170487268752953369284258794878816644446963561997730333149614065224510163054465666305579285008721365437831609084966721240366598092915563287138515213140957670938293127491179032195536093062012576944327913083938654637568691278514424249832856721739426827420263246672781260688816891758950318827619289247446450367791260293635605974526521656412344467602809043204011341938014487258851887116219797866707563965007997356726675284538354193515521962835458534246429256122456166637118125834152129943717908282845826710349243588941790776251445182278911087734225787802703000680124542372796547563886348185804500209801485803442102951931226157386298294261979909206200606387182017881220968700998030233187143960684951177987446543525480836390317865465312610121990819288349027303503578734468941419274493344654909381685054363994549040270693217772077428602159765917107918815808439920109544749849711922178232258514209885247577719591284604740652873447475311211752312252247537221854501784966824109612748794583140759318306410100304857959368328468064608781292957173513613840091365243025765445035915725723384418698437570554500768359737618378739701133567969875418914153867261078241603267881712808316555275432828703304442058393490902363018583514253396709658748679680592301706027166340903275623216352806295355123883009984236863287739879948840617232479700209310320720795751183945673523787451425882616756379556438068770656343026507479517593757270174754339993886188468849239668284973718533180460882805017843019616878793595248571328194114632257129776125551622252728419064993375763165724698763457188475075993458714325868142401778187627793558601711266199411202155769844525935837839744331557679619660375780142601002907137832766421122455981488317409058409206007001912035614441910200298105912368300358177375331119034585563056940996372424937114218669065517524175678177115061347375701626197455708670629703206285507093469634806320127893790146674230954396805325784862941506826768583318046405954913306075735430202757537708992397272299957814078032865479523778998512253316501089247091295621552616845852010827094692995743691986401811215863461310764134630830347884345645683548151802288391462489937694044518009062861134927956770132217515044756191583838093901807533883901784738880113024220836669139743674932006636328455041357678248371557637572558382875477853424866306607233971711100172070952974460779925195706818598766549886646443157004300544533379240486550202032422788674471902931693677085360761096519385990782456558259692381552705768283701525939213288561841822880647875109434185638564959644470435276498705546991133983758013797006045967111725501206502901932533920240913378561403819903492649616614933131046422719368915328000288349857472812793063853717633921748945136116851899816770974082520679611617243107063551845020041180379268145925545060357721888946277077136144156870245303007173384650848963598117270557629594662324972197207090495020114798986608775483832392508482921756519497582217586636172946619003607864918164865805831545086669245737215271608251453353689245619976760087049344611808703996874152456394961680104625620907556757816020042852014096629417780246625341764368354150799644780701019413331478025219559610239759002337005379451956747250171891126365967108333151666542115416514166705165085106244826513268589428229336737799916108900166390093770335609889857050782177141375245028684908568282394353282076029989429135348913940063782798963157003574651133988308733361939756264650155252623602311446919543001006193917472264275008551790231365513546986917652624216970312264576452319704516553022513243149222203451677645524680756937825463443985103718701692904022247189930093160035794943246887728359142684721445782911093213588581167423652635929699224206795300451450957587783502034414623110514536960282582058001857857263453440165448089617419882486722658349496634236944286569003015179074592307539735827257446211601443154879750836894157049672492644015775528818627373273227329310158252921379197130805770572869904836367193676508176140813901730783329798033939123650400898300381492446066689845603894377129938014079161724960133542268582657542054521289574335440634819828212097354758981624821546118139940001658020565923064568359381331393585729620366888583212344156110075617837731709111807004840607745396369759740993830819826826633084985840990391800350923379514763157658735973057932258750006951889042575955708968984370890964064708225079787233564390580975087686428111347679151134351836438378229401737461820545923035796533134361895984562339492607976788950022255451955100859862159962288984809792400020947938413851316918323132903140424848097066850005665422221777702885388681164428240329809408930328356329448140180410536713295798774729292856476635826447063399619928991230935707706955913279108744336911037517751376514713949977339328663843283769263102430053174393551855948322657210900249798170004323875518806796708114463260267921688071971191612625112055742844839544159850228565169102030804824442985844939684622351854741029741014918736746154757919357138731797694153902620421873131617226640177870862591194586038449933026314122520440695569925770698005035236913668305322713458878070489322927470361488205977520882927692410213871729320626796019576051474825003720835364701938888243826161292032226236638913663879864475976571785667178733586660286958637722544055559337414448489513548638731520255440199451889010449104302190409051504137470989130634120654185067742706373412473473099919809899068275642933961604467023127500083126558970278958821037959229271635179880050170774093860168577396369739982067547548098762359936891051706556072559457733691220642031533276965332672021214968264208227430359119115821474760139891541205055711879303748586457873199143806664721229278961294843762474639121497772211222925327866878806408743955107779155491526971475711997799021673501585051169659822444494400432564537412398766882287569673920455427318754666330077867051493886320064037455973894435631375934017534847453313352245960434207367887270239075012365193197588112894489778758221398446983608597132936570600834262746085153695169300639510527432570128386123567533504528158866311112376696403048683949513436675713425564345594988401660404186064698899694351901716085695418086960199840463078227096932598958372216895036214043007437667325386275116698120605027508139064391613839106833007605573861520135568501014714766737061618612653897432479141918118655571903455659889743130725222528926174751709331358656935330150053810483170179603059520894327547275995482884482417341542044921510423011695492246202945582702317662877754802680739218576411842655059233779016143005217668002693922533134879580093794777827817812495411958439285899495604230635197042414576606186972659284367022168237530846509716212199802166283298939012635724549966026017394511132056337200334515271713832491547738398901741697381725892225035537886163151430323931682572660071132986609195428482580359708336803560747385995624550102146416387594070715058300721286635388091922678853576986671567703188789415636387421350785244262164781858299116338424044088554989337588819419978312244347270710411508404712866894540960529914321051328150913865937784995613112911444785867330806318543546854194764380625343827261736682715066632916882879208722148257944758548092190708668111662102777152055619087028615839977949505283808040148746946103670896891354037624837618873099336912369520739739849825397585331512418191869949955598896877365435440288952971736889156045792627162919311840764272909107149644877046111579561145650592075954749768638258976060909468418744785504664492874107709090270504747355990326170960758822811199071752989887030581172290496198337128244021260630670244414349895205213818667597353000530994821425653302874332003466318664984246278230265552385714464291877564403709526451604178731012660562917168772074856462056939417122060044607460275901610461005080247545837053804532800815636793411994243653183822040212206503168822938309861284212680420196034598481510845883390398314833426762135330653981769508650174969766451121190445039761834632634697171281633174633200301581124409420351500642407369146423591775726576862020087284830327170757402436156168736420761805201539108460527736337397611107823485679630274528041843844998027257864977215222492197316301569290691135789580480315436544600732156879432597549529372854173222939558504840050754881034492668732587654958177874337656126345521091875103859866385419051283749019675808772532580195685408327494815131778771293819920173693778751884953311907787643624221523821916888473656699379569955319741094040895914237868658322414533396981446261738678306246153854990801656678753615313815197799872022048533631467125943629870974123246139550093188992622810122933386490303224237941182888167812151750282108883691385936855383293467924777716760372599229005859339549857006819557859089704045430805938000393097286989052983447526503184295159203140739083329005704013209152155388288592121379882107053649539030394405326251397955025816404752581059449601152104648863207087059187671237068130205784314165850256249696808881597087871454456849974286719711468560938822613971032722278642995465694784663414291965006716740579239427755603680114633403632877301450892720012882279962471734646741937552061881287096385650674797348520389086657325471937492445857450500524414493543376498813864022836457962661177919799406070868008112338881311606684966584461116901267006855037315793015168719043806914715809500414890449215951749981585756376390225123313413081575480142524364104687154685408848591160318946090622613073566985542336186534860206715972690888978995224752236902521798329744382231447268324341332089797042708944769043297046667586424202245852472596715115855277725615905080440364804436108761583256399285342498681240551295165932345185940273245874650596360964631797440477590916598940014131525161266345552686337614943795433783604461726170321484596054417327323461654605007423556666429545843183358746882685432720784485412363067787721072529417145889540203226579764137675610094219038013606005338372006314264677408130730151048325566738055262342870307231300306561624472191721984410088059979628642061904557469960089068050087559292454997242606524034928007564781005202103771207601323397185900681097065664688122502973288587727252275200826675462670095686467907623722879609640373401920860722776973371945713743008802567653543976597945435343850714559662162574728715200303436839934784680737307645256915722971706346430924611700369859449597982415212301521176220974940889915340077436760589895478813688774943463314451277078565950031774805749738761876231707509683085607387231048772974303742830939940973257269591979805624949617080017626389059450172622759508669777681870460068683195115747216751410144396637630660321393881802305950546972008075847782663488050216897904785702606981750766771767253376585768994254192465377379742398387856358695224309449931125637562415259519940090873069232587958796718797572642372002121416380769911129329695590958738712290665870626324461257625825746658517005216417974114237493703245836831856515868047074206972004329310180708170131143916055991756391869036246119928022069024881041548342683912522889849786314831791041774034222698143190155409201808749419882915426331356712180911802865768403982786870742784108360449915423362346938471175985958979697506040714824653836887907117004745380545583672008147440878686895148940282892582382441348879130870354685332484096110616965223288796213124949117331924357956986872789901622011168706985573815874135118251704572846024379026636340688214761480722566875206332601533710786427870116085807485403963591939048090836407559072346975449143546518225018123369221311360416703135679168950708390860764316008333624894595241190683074019165959198783537667122205220406868456894605715383653699503522443380831365234700901350165629274914542392728902524769064904850489372640092503873822857004304986471046463696173305876417755153706086126346808481825454513908944994077169869726495082863302052581398671356323185494490519719784136265818169170581961895729149589556417129653009412459619675067627757831931153758407607847296764518589146927153618283975726921680596724336538984631763002702872407765308318893651024684288142666075042492279315905855940678708540912656632019018780563592418788160110032930274247034086245811629726792278893774140878196628322792099111089168958740531686087784264920325022286606743886996481736818312739519033138136453531092421733055523079804531683431898667435775576680950177901941019434640255098312888997356670749671317317288743220448393759406288785173298680368208345314464990629065939032029664596769401129470892292456231317350532661172244789932932493941775487856145208305849756009562275684603345647914473751121783999720321676315488416468868619876608635437111092412729688930027864102217309191736716317466729451481374417165298583383413755737318024765722777228386133476111037617400906075898618449439069339936496329459389448752933829395835255609084875895648682849525585734344017193362988674549307703202133474132993712493235134164956889641644438870396402116243761309670039435354529261403364639435773688799357046846228009598772973791050276178762373487972092366647552547037498829742138890151568281018304757533092965292219659962222633701895182170090153762620291046368012026718064309407257798877309975081272012091140945591576278221007409293216108367965028981282362684228875468014231418187700216319009392429066043092692303801794439165546421532041688595199901198948048129506467517840841147043622610169982084669131821869371964889677034242750940868962779430189498285852503108892204493140868549951280730000526189031396551633777664295840844405234228396578256279406415589553970829272156075410120413611022905358443605103112901455482775780295575738387176925424827085080010904803689459671618831048751532341784153344767578587087698930589642868378948427260844056610588107197938842957115539667751037402418783631495762362338768564531153805369548890846210417053875933903689766469249612821019108971154623059854300298526637514550126313220416315178419593779545585982535629705365616819801100503782586107559308492063332032873747113989261100612809615515869431327724482128779645071995821161395359717016157167035610514036329187252992403591254167955020271250111077973481163781284194831054315361043702071715562172470370669685068353040416703207471910044816190682579114885091586815027906469814985738096268654544643894087346392393206430010578336796767538977285288087906272383824314452252988863125709416950687920032454051792205100066793806917168034298807442490455312354407484746412335832291367456702506264144949869072465802493260976560841442459701291403506476834352610610289801128974440539356838543698835429871493486279484765622145423617542682883458477574873959793688035641690502556819907999832303947327644812671627390890424520223480347035794857055501401270678608191191433592481568012574001501928188086828833909569859605208933749081800271365244040121549578759201399608259636522056567006765834139602012441979770072150642091864681992086929403695390785617394519846644436122771965557427158527288229533135648373708365740573783132013049331097570484219337636351902633723151331942738255714473544478920521589258255334573576585952619728244975523494925355764229124592350204159033750148557393823787565458342526149778441297559690179553892175295812483859107259118629973775759727920048008708059049358423242508299560849285289905315089250636134820212498799943835257455421279191667078390873363891923910949305285382483996981943200749770980279613037259658179429710803054165120366578699182201820251993434024454254314726017593358112510615921167666520219460941684360651240175682865377356522340037490582862041378989943765096522335205284965890613486757761357535648115317320859893893212345808907365662357663727190077895742051746561562940819796134894542557662687238742192122664462867021416791326108479832525385338925751483597683047265635250148954158674685688191400708382673272622251356458246245346641208494731113493554169941135835186252289405191965720530587433475045673840702546124183205814816820617683079140900533116588564941210993723491585663710884337625900567546691802458944094864395560077502798196370169793000886832294680741770765178888593081872616264524697062503424917327913415366644178422585861497103095107216693106895773565485681184173532000632099324553447505879517821027777709257678982726776873028881562120106029015575909127234343820680581559409105120387463096098841949138238927396927613176464395678753696827969598582621065337878793778813918452344095301940983649954563297354214716814166841812651529380473344392969098150959422181473762280717447072839233267554097653535237419373840526243055458086250899265021890447889686900610947519286469393311868844358189874905723746250591265210509797263949581062456714437254402429884131615559092413192858434688905680492676161201083669192016230728152001382740025398093414026156657115322909957648431435297670178016675643090972066188874673459276887187010042606520770180406553395782088328799258972783946184486438764005652050456272972685850174892642406783480135577791162979906399876775667370992335323059357708340467798863148284058578681692873136367461947749055045187545334443778690065286388781662564942831733673654001957601943368837868865277049167133246385508512931485813950887433800860174307189848911690799733475220744021325473824645447482099985598038747938311302708867262971649113816937294166969505026087400298975845770505551456599100655463117342009606467935723633270104835318714632560769875319288295945697677472031107516058353391928134794449352265988729603107394661296972130726267031074407010078767972001624258632408729090593057042989215153846457462481085215247383713806870066698568054597496896021460771886512079017382160208010799186000460486182089255361039239018986123803365890580789849224539516885301385400429116087559041613411792238380103996057875732657950059942303764214594526963595704190521424174495302479515086567599926053107030107249056312960636984141515050698645683959932060299685769679309876368139404007054221899698820472253633781594387826770813287924854136209070527142827531210625376122071394518801640004613191100466127306478633091994920869330227030918274527844166789589950970621186924369757356837463871759569300890007940863438277983197223188512467252905579427278726304155341101058759975758447870600906738381716011583623206996040714227683638256500129969551547311427309920818205625804343571886012639109007322550601422535712104993072921581211504899269390788782703115056847056001535694609240284255569639947197932813545305279919263024292584466723685704640816138514419701458597722770701658692705406093531446478515709550463295657840595309428821466743404009016450122389704422156363747189299588656381440357977682987900145946380378151387293293859258801232248885111013982575041468717320566587616830357752629928223485985924679449964000660631942918431557208350930091246963919835350757659975082094844921993705338830288276780186790248282742566696699612284128174891854363993094207997711550828988826098236907041952733287983931397833962527205161586265328402509936325981136671241025329396514409742627051326179031511156502649681990533835064724366462558776251094684899032965851793117043160422460746909848156150065057318674777994309309092187137744800246646629937424251895585170742292318170861320436789786038219701611681223646581636965123676781825745891632167864387453722403046269567864281612369104372558437793656024063767577021975408549282419572118993218520164991958902732123752729819055434513969294947760226699405804390849797059163958382517203198768934090663442621802428174454599558298043065574291009195663587962191475266558083239402192382187313143528316774339864891608509636585007071094835552121641781130225562489488670060009355185821005434932203139947203942362209912610832744563685601554678760508180697464203242923147266874896359178285276563471315605331462630355032529714998890039184443026004692003557142963747119870636092499682383302369368376402298371298315727179534194708602655632213720805467763022674263699160859856155070303633268085474754258513593550953810399502099377582388209239008677331997965185808136015086080939328914291453474481963555169419111547868039002435567607527558529386520354687642752145587221529520053788060435875118724164041811333880896836194951905269192340286861534626282877851546939472677880977498161540288507064906152385345911853962432861720181339591296738073605131190046410489713430680359505436816394611994219439907024251152280295054391342982410582242842930984037668299513071875882875343124182822204601344251419790878399325501980473141293399146207358454818577447110696788547104180088610029563850292837169844941513360213934469204787686018672815664632844364113669203002527061265196072737537773968865758132733320401749909276635816277365323456388187422028381412466607971691572596692118183923504486851486060954506561287810476671046426254369243467160742721674441672741354760382308294015712643414246970471737464391676528578233069267779227641064825560615006784898211488786642754181065658134081159218561711424270770811761562134063786963653872999352714621958213952287029287531926849262326641243769642454705148139880965216426331770966320452290816099442758385957114091825446072771165276784408886432961821568305213179358178341746716658410499182299818162859459079942572907736104021720125677699606281463753672481271549544691584176667539939615225942207300208293759120522842384035898445298467838821231654597236567520627667230515515882487663388106894354816703714483231487263318277636282302562096954946349598639684611014980404332946514817635447032573454643804357081999549548096134568538354867466632228377663670597597194293883705304822431494296997734660446319209257375927627256892360774005722989227028103820945761499663932578139152725828539776071967812214624354479339760708392051348591836133616960540667860677133240155045445807222619636129913984622442867264259634801494769446436858051978596335050765317612691809123851199591828298434377217706330320402967341033671100560423192809834217097046738310057526520454003728476400879456964411873242682053665107624342811228220212536797711079761883111272297614402288366284067723531724683852180599760458921271378127366572913805638235593418174207814183145824096641051518615594978839418977795416544751387813317700464545682114466927644697782372695431498579731015718013970095796070869566105550386032076391500820512953286092674871647499743866277877710992327076762715283830753569454725909947669556752921877604119501435062742945423298057684420947971118379256082138892803759865198117816100121129201513976980030283860311047626250917729340981079802207157075783033518175150830073877672245835842769705367190696157111661147215191567232585063238001253347715846279235714612512434129998686078120818903515157501064020879345945007041926951892048043862193416471569883935668531618346872443630920423786759935560376370600521069214010167419960989372971727613368293121951512220913535261082237644137836197656310157203037969578251297785852310810702990600599317414236736085164879480534928571437397334634233195606677785048842766788410225515526706390052640438576413933225134841598802165903517730994504524148075949760904678449985737805893618798717971846921044303948427073268726080672214955498380021126855893604086531540223401008968089222301436473514291009372157659764944933258605407045646779550345526889505193813282334640540217427184062229889310232547979292940104385416013952360347428741690490305560823809832250788224007418332476430347292248174194334101168888597567151226594458979934292679531993507634335151494341792025538906823709242643008619438255886578289331465314121076247858912463558834481214214007563438604911349479035560355723759459627541805716794836132664008157406864914760899394315167542229123282197301843878932093708428380864835331960618946179880325425546472022057234880111458912685849782547579066124564410173684834778825079091000022807017291719143133453683481380854929162663013781609883132654049122032887846695081207833181224290968663094863452406977114297624531416724554809324997030115420741077185009138240397800130355124226981182591585821901544078112930812675159937416392732531321810261692540681871098418019032448146266933822378640906888117791549364737463189427233207389777788425779672400077989067868051444545831244846028678463220555198829133632844436669172912555085816762328475052094587801673212512689212419427530694439426876349484127301716666230528975775372411970307466136823512529963118944057198450861959072894562108612436927418211331639288055814034617763835697061076467283076516526027991836281849339998449867231195589031691719858522424053348151357222595779965142699627686908168571014170693066375983167998022257366929818223516918007189546367753305644500524696741412395093266619185001167422049166564024056140246577903710960775597607167701697126537304519226725058589817917635236175888492242146824362077260315944056677214551574740287241872563290111188570464926545838210767335692919680753147995805458580780983247769255619975646255666596756098299784721581932672072113797093712062689874196772426927500123395043457314591831446610415729260526584485996752033550491172510963706346104464140394445339306458160877691560826107156527778650198986398559984327883629675996249765625346243084126439640178133421402462591447684620309964557687074931681609758140184376719509775296828202532723740553225351187386684223859308419225333018750092624158533789987194498871726983445966354494582326796962755511249656699534614877447964543722811372991742959555390130590244764812924555399777723273241962146876909734377947936600031749878460159047618225917710192525619605812762589724707889889654811618281597423816597639859722232460021476120960608161877816631644353605255168613975255762259367386765469210195811848046456120288441073358165078993072261986914090145627235326798541630622154099801111326631371375415346069895844187690168634194330993279837437934167526917496079002648789358259886478123117883931177162803586124057308015563986585112187047599013901861828884415491792538483786313787320856010736211971986807226005364026705308852602126691319484453187050474554978804596217554864849518124432834996202781988356400233091387153659020258231508787751360730257175674539233879249112407384427320762863202203343003843628322996808475232352077184006429509811513504861567998014689931267199543417684273176428440828913032958905623924226594992579995381379439388952103999500795887472588152802366429574267622987807459256361367632637579809411896821149805641014970148883228652662016992502111557542918501070311903103281328619895211486732007882335493205469726961895747831735974548920841891650179391119020347772265100830590717893474046172357240201172782272664096307897948388868286110112906354550405140887167902400359095666640857193308534658155652981660593803989087009704920257407926259246004458725941932770850790329546896516283518519853673368745439791204470652119475166289030191036889256168796716512371892067817482292930012222563568237797501732009002315778168995786683455540311127439486233666783810851649667148624929150353491109365339892816114749363907524064745245892446393141770037380660337309700797124782133264846118005956288336944729778055127412075718644423037652447918128405908282594726690753061334516749235533290797152079061792780013291375653825828773873231241976502225239743314655169829966086430701916082148823707422330528048849775701692312291936298405475779877128594720925794435259341320480498002999604428098238561498845757229541391555916831996618432429007507501033647659006983187019961546889868151406572785992411400825896464831953239071659703843618710416587249259685899855875762876031813838894838830279907834140046213390810412816661266316579750486926502155936621012142360061702946747032489725226539170775164915165547049466919784911013448271336689208134456553016641173395031002495012462350075675798068567482171846750582755188351299790747625302987449738412369246155746678316370914985526868205157734367417817830595234259182763830799057663914852898394842128146160990502343885522869162381217250937036857389951374277148810075854853696503830040763810747241263906871583180453163381906544933220007060004029487750213687470546408824043215550264764059622109534716088965231351702146969869108124847244200456410181928342950568542895761066342144155898289699093576743818312698271579340495782638837546242696815032739447129373759659427677068405027428851483676837595184370955352097441300499649095558967936133382167985522089853995544287558987866924662103665320207933050973501585242769271472377545126932978262401750678342455414675589443375026474823836205485322330390537357111555965329243845996446937258249118711133452800860692297163549366663265481764388133635264080223908612501184807656592698364558962069824605280739814947568105010123663418818326161443296250201579994725112809432603182908984747066522474417770033082644574090183394067132185464570803460165163093172616690283254426911611069997625688087877643562756811036878798741392189136692498559225220293707873864314103750502564653610863491370874841233880160223313978680751527882887440127300826311179124593396173881146276291253569254383407073939568629883041095896555748341439816191472960161747798554391891655798135195427736394958048977567223209325439190710683407722028025967844176530888133132538309176876475727938422603574723078879213263304135246194393853397582889108582097358767162947354729986678081483862701508309954027074547650221058559893104345217638794999881658360568812536577750816235576073686865179226578598832887570922084812683970966186315503514231045028531902627304532214875725870652311231409071494273299342734155661615062563292103355506852246973520307343585023129137091018257913957360779789127658955703143108361337862614725600374968106197632055379096603492576787582211754939489044325198274078195975257375649010188703861402631181532940530771941686267345900980188348660327824529251387987292662826583494008344101848738301872140528430781033211096674669807428558693562661342273062333071924137305751873622234823209059448759263823722491835436378651047682684376984146404281643765911544288308715207540735975830527484931698365790648616919238660210878412395828802483885013970159282021669397140683413452534178014137819670181606247399648123422001639668598248664172273787049682258605099198790159523624732000255281770409320576074960386001837465407067151940715867969992069782660927643743044673958007779710942701502527680336095336129748368604585557403393991061571395972421170512401231110221990130042673957678634067672331204144295662061374440153679160115960012907077651525468098436665492753946870414579338456567196298220425835113397426537286345632143877031871339542398059351620508102256366541890245327317997229862238905305499855145994010337894321823110565268429639168306589593163227014607703761336357444191812550041342601467085224439849050236292731401348900294034224833408690879842144076840330560075489457593517375877575812603032110988830531702929331315693464249062321435754935099427028448496211289291706416845627402134827891389027869332846281172034416693837625009223444122636345593515428659319071827346326894103464690723947655105098731864268180777612588881317432172019878830613582008312718396752926466066434232804150248823315786227730318275693548416492787405575030015032093256938974929901099149025060992117137297965981021590778349655498364135596927767033936124459670914498553233018663721510338463766879866212320080978449633947120649291388608892895000065351948549216316118757014693742701964703221654477641073592231155702997313048161135097784699489979433380551829853366398825967885345796572483344966618907872892507456007799369647072167034972231883103647277660734305164663640446836917763420216094850519559902053339697522687926995196331023945136099097059506582501153979777590437787492206039761673586848077244193983602052363025458546441313411375920168635369746918126307486091749881001075649879331412778292240081411124456365198170781011709583102516052533865535553414152314571057071646302227909858058310444524121942419503383732365148588476487148065577520902590100313117475029357578354481205585456204959017952574833526976283244475740038301137115049071725667514198123485617588512653837998629914493721294363652614643487260885097512699538443837113232487052224758541909997494833045203373548147370680556640590228443461956666589074769506624960677496488717638914653078010919776480574609525540296511103965368087876774307962358785013669953133025390949671904167416420694055739962132557707162114445809994505836317305888809824066807144025996960654638343185841287355129419678394235997486220339426710093761953949067651640662503658286564580798332622200670149401807919913516942925499043442165120166641060910264512567733990133751613966339933298088657272343584886090451159441965188507797917377675885784365483780981275918825887285907188621301433773470250450358455324337648324097769287006908199186561347056844229009903894407479302319489819826853943010584114624402107041495116688805666267296848182684763716061846829693133093488321922006357673788607723015829085269534790976675341401382279939401761099146740262823085281358518753676402935980912526048617226578667240929663328339153719701632122034422920882929154432319019482862084409331142233094710533067947807318402718251746857372723833228580277975323583763596087791242057908107615043825572066985349659932079954326916735475969575041912400145748057220930292255004132087809424414366986174599854199762572944573197396849767260207135477069748362105575696932486742210640016642170481276734617569015086359817026120289460120260575764703022197538261157936476001656139886038328908266730339693797634473783806350924665619573204613286087563202982943987945507302044227272410301488088261337088258333745129043876692523905534440542017088730435827022507011251914757745112121853902878224467991882546508167255823213973006620256477009194949763435257757371194682209425295451143303643926331529050018512131614137972982606681580357059108501464746066659088883403334119340065708182524358344069547876100622827072826504665281923384629544070531283188458993174263519637865378726044496189961403691514605945590083325127841182441246306196315912720946616991283258796069101943503870174539127589623419584179136983312440479041173456289956041585576600489721075793498345073419333759490349913049614214465625943971643318737632933480595685293832623230053432642485084000488886856385517421598329854719045707023946362910261623544663244540174281079126133972284278479503125877733378997836756605654008419992789419834962038383185458520528412525830334740793991120321870261550460850357749820736437497109541959799498714261670864846929794535905993897243819708015721599820687330347039243244924591608689726568965543289256880144391909613982062145604566252494481332686792222658976079761684435985001140724894032953361193544249992020257506777714059459429014623946463757725858111879329814746762318664655753723021717031478213959763353690493380489350929232420846302746939401111216268649960564410654361885220220139857333942677971106530921789131376320411124093572106229065290047357463053408494530652959878154977166069539797142410598205671996761619352672494704928967016307431058545888221485496841886669120271152597314226815288290491412383989655665257802448340488284231082395477831810861401897701854603636099710122935858701743423198841475385085710488290542282780385185705462800700002239547595256284396280157766665595559884339617766613703509431880340444553925372633392200687140199530338493682043679566181892611809679293859186319995546580118254231461106909271708965980781367402109628679244273262976171387739717824469455369742781947083836549625792591193609747132813170560073706349501150648810300293243895652120805450681686730197731242693261478406551807152678414477907748430412368982846513527798923275257543383624528448123974342816399555619187958397063400708053309015454795158345304920004598990546569198629288055665839823994824118466746946990802156318269948603665868661570194041147006716374196410113768045339571862574098774597401472425336340058315472281963486555692080743667445165806365255552959770418758886370895243342025141212362623794909784997141950990057330783950504903431501613707392591881872619836877366305212967249537183099893190252029773282168666411157304770674997890928820640924909149184231110297807601912256262444853319630699993876410659422197799920326455153411477517963200093691123407188981432094172329146787398243402361011783495830761333655513609889103144157604435368675772830664164967602007149765674401247451996195940519812736458296755392388251040245332582089864816236843848960204645767798267332507906690149736971194447617777623669188251621818967045137400834065260822850198629072796636151041166276916857174489531391294559733187082859394468331985900224027501436191901435710782236791322334335839702372398338033592033267177002379581002355938957541660909761615650958771201223901274077652790523501757963338455376580409726659258845184544807413503482204631964626118669163297021706405983207707237719633033975963649392349914176932699953872185794094525362650675944226392175259354987915411486464034422044176899879063132288855883857181771472631642061803605586852506781740361603776795172652304503473396977102494034687061740908419643472269159631033540317536154200023474200674477363980801966487459375175302851720608082388687375665741462940934385012574502702975556746636247219890633389559932475889590806171903684214145820010266677464151037336651830186973918347746118680938485207312120377442032704134052806198249947199742105729412592540096521111225515814990720724107868259842477758451415955541793702240591307025457537206389352869418106576633828478528859319440409697554382476155869415059249379062631289096732731853372057243238719515589491061710229840031735776339035807552502336530205415348570513044665657746677185329410685331381136376241381949265691904820593118447238244338237566077190738700165714189904048589183518610089147845149318052472763433166442333982091574400081419420750730430703064956335854545000745591592059115619346919885535913827512551970938216314227632951658970622039444837059873196533283968303673646260541513921227925736892081485694919424664830536308195633635030954610451843911253918684954184562706711206240316546870085702426921994061056972261279340598374202121616732466648516064612915672905620468313091119771750950487865293766548394796127028214921342076963625158124410676533640254282585426435922879784107718189618550011045272558491142760141099375877192596497264077164937112045728552848370879099844187332660752495036052312922681824621597360624354903484094548342323933089725526505799946871843673271304376768529203396343574414211093796333679690819411667870350958200170084321587106622468422803432748684465455155645604941708076334612178671317902233272487537364835521124971174935247012559970928079395663344507106989380994346339224130417394217263783096887465838667635701572927541360361441429834196099912712243335267013505303529368617656545476597178055988888620503169425462227547841583271979941249294066647483695607165575334714689769289991421012893077250933460541534813451329190018563030862377261683697548347788786977435823363322820722561838618470004697914099389924470869705008502484782323564492616365615062698554657679926773284455995883723497722104656373517417735655266117569450767941656115990555126472387498285533733543891725756743444246124710721693758791943712933627762636346301939266032034403075377345323041332522913616012201084553370033983764442890649719366987536547826610638917478578342578877102349957745405658845172289416426230736817946101124022338802180962536671541919767969168488337931148560775919107101199956070255789393156789115316462182012761225638593428219552561508102961315561844771542769313665370130213223296887041576391977262751848483370128196092756914997088697130583493317555229709411343403899993902463539232427845999945305099322924323851179198986034094263139116377084503592093704293774224257299480008225212303230360022091929769672637487261125082364319614341876081518125737841012650790445694421637838980211638749790601330022517940774291036373617817030061261189472688860080908593471652711012347374929036907195457148898040458925139486950889414011736998770610200873350443906137141481880056496206431712334046026271762898717845788185709415124230326229013944866666718618042570257980773514266887752451137256833955552160984047414939451642557076725576682660680268154401159312875945423938651381908603568052106301603837125261259296619550403797773151506532352935547059491971515053873763911428044201138189182283987145086264285323952072150944700084488440897147270171722496710382616620904468679298610365819822986171128404275331225146981726992329822302290912392004483262506983126912002065807808072958372498842350572840219708673718801954713155939815554685795557017140654166257368643541420622794817584797070499627882727828893801798293701987914188928270590896798074193069468612209167166298863221800323094770662075128159126819505670771687051631867266517957366799712594889784151624030922964563145832316272911566266481282702969450362270012623764399841012839240146158023828025466579812400510672427925867667655143677497089664595910345933765043972127077278337939765807798413794991174262617354902783868441610163120347778071070136439937950339611656645333677602792573003104704930272624714978704882477498914974697258888618451463683399656788797900793874993961606318566734176672419312602282762623664761920355061395532974801302664547393088734149858297551014178233176794844187110582004000592849167605869566126891348374841603014205195375575555823323291908854374509970485616502406780601457223555211409791699722003414457877264748595278463256090677461453404833030825091789865908397570396363749731203038264535094707083229747913326932113244432004998771862438919889701312846445184484454485432522123093658098908790483067508274883058373978658486962748180596557838699602073249753760174175575210011125812449202239555451138269414462535103724988729731303252382864475033485998023840742837596726720388195119225572523084206066939579139871000618261420968092112759466289653718141234364104728350825454746124389551043019144137192773896687694127805328435867835731614518555935642307707628136899585644070310240467011052945358216419420969688383449932128779025391739966888892174181073322275883647054478314806560132390453873718165856579463207946586081582483746630924420853437484829982690661236447642489689390910610839261772941373089228430015114627558168456253443279685344032522163545571032130079759544788787034925813617037440784828617889703735333436473849890592656985431516576844512934258046024459280411576827154243646753925093929652960125261430208766191358702830501737957976722116072063776183430497360752285854371369840685256367140547509348987017785629660071307032130065612293597361291294319510274782943353860459540003423285969958792137052322164762142758997626614910759467038568280878301418194730069903269602831199020410222401104845275928176069236170989161615227883741225152524131634968123604634589190321229696192908255252437319379603355240954382704017772300712197798207503791894905112732714592629596326214025116130794182309516171044258626155872875925961059689640321962778955822625025979782609020430838929501195221061411117173226252408218129454868466422549514249897784092609679550524837493961602402188039578126323096160513866134170937161107846261665888750650793354521100014274207948659913486881116754263120586653443620359538466550160823088850313055875307722371078094246745148961347303627116036589732127386907569215205996227237117964543499032615883904494735353804990603417993923941091979621086284014226777072203958945419783990708820298594171870688435425336065913838191990764816151693211365444562176181196600755052369532616401213048037656134380225059331693300252857177185064249345236566254642357633958966049075431022200223822281642559004948878849549888172824314211796139618332457510588366772607670880850212015109658767442457177620061988519968865552830532344057048661664134460684155518910187397754103612197710027638208289947235732698560789520250907955316926769119851409782826219873091792513237020371108070848382073779381543066388521066316637088511989145737689147022137323967646719810978983585632006387845692066321292529882684917863717770014455704501427938799189057841133980139501014543448215761016856089105536570961533277296293337722268361399827190350102065051621541873543636144527415818588359606147669165477709145390189963183645833760595670545046984864913751621118316248575138201446638981869642328192200406749292729636208060220571526993563246890221008867071329522840268269146562993249488159418292006594064453921431466745204320698547684797105273404467592804458117849321235632318619669872264251154181352267660778392671698956838129267948336342056771228877224030053542993096218848633622213388534406958107804700042820962641266447729218558409083917758843760348166649406345279464532956784203041219697106726008710453694590187051876095855386959780058518654837528717412881616460521146840132331825230387917613972436511420808516691473382675081162929759147929369969030767015413020981997380611163151257664230751403809686679614307095403834024999383954832884135591648768423489926259744580587610424946310895795047860388318420386027934064530736011022087428775700702099210062987255764547170008141285911247216540628856180774787010247305189899178759438805411855183877023839233782576696165399152514002033957886097606648406342085750996962710037839735033650650476088204633535708757644842537648299179817653223592678819673687417734146706161152153204925596147219253504885919107028847388363018833415055337585089003018987570531797208279124775769188883410112447659537632812721512360497233491416920070495687541890842033301917417031441264374653749522891081330100081471710661735313035979923406376038465200993114690146927246347892109820359548102663625900292385988199717760741480242252219650116370073338389837413893073945409969159819646983899565328511961834837607699541233147689979314677948513623165591545447669944069241736878088059044239276631767080935135858698291019105089812600397222386540161792798992984441353858901525244681337200398798085489487790179120006030266301256254753269055924788578713849657730102098138176257523138851484939064345277569352156212052411279048363402583942372631389832462645985697503074248200173647939146051431594317220127715494589834702866827957885610140546730361688914025491150809201346666537027036703775739519764087379981352803298488951291255098756052488096406099759823787354477356058931480750542597830151983299742826042114995696591286541521159909791208749668312243681820913550098305635577908255941969720842193087302814310598495564352750213294502258221743965114195391632382790391268575174928111546264097094835928813917570100055951743085448417023578136754246338888416410473967964766599459091101377924081748112596159742996338539118059539410241450585254312389422144841434997367160626328338798386795381788151787762864481560649414758628789299720836780620891673231033968353749743985315898446884512668030304731193109176965998473192832793781608741477255364491578945569253122228704186460749657400984791632757893639042847712761552268833536693282401384209598783372111645458220345080730937543515460225263658707508845875596880546622326187003236319138729446747954727652778470153530025500347235267316424333083917051406734468009540111958949656481133064229934120576583714112605055728566620226689675869955567549671547731443507418992118226261436559804778917746806919198288985583273709472765337556727221353619497078165089214054482742283407007160042722559168043722665976241853648623734134823320563064772811415717810499560662503524641728253699715506379115975464100118554021799067233448303759984284873270636441257262057471440030492074811539841381320219591831804235040618774160586943065369865205932905126256493079060439554662385104474318749256762335144611728307344577228096563531945535625890183712229137052822856066376988992617759388468513708226185299645359339848732640744234677396583226445814943546500443905460338096257637993383468687728032857858646680935152252137547270877737555497483070563220179237607290118720765622793799545651326332605255585322520254790187980056579527502733529384917327274013782791578374908462269581280382749299328998108952256597972838879582666614247752178118450093775416130801105052818572726131401740052294152991058011873518680411175807453771860781956351974985516783879268377469079510725957456536746579331801937271424733455910108487458974224788709841451401309352680392122815351764984944365347503039636752011332671770270963199527956113642710011359188500047250229924388656885125000210638382425461868616191900304694833778031021557462935364536723061846598456885264093280156945977562086434898208937813002331205958374612636191220760205527741785536040344020751394997630210061169355339470175450861035208470598104445297887024048312261703653572711171293044567601084719371630840982070281142565401454196917695532157599389734244837719591462593568002729195026283910077177099654716038833271600353765579109569445206344028278757616069723751048532090207996105549822774515346070493635699452460921616805623127690148276639357381636055348466219957856042767850775067508410829661299310171675604821440928683456974004673867598375183979679402620299485004455706059980420402410053479860230205588065183952176673504459012894358069003705552904414920661844329771946531785568054266444427142050457888491795381874014659672512263599765910635929597456496764958008549395348099549345420133602192004902948737450731914764374922255676115661340543193534065980629674996977008286403520894258280766194184119495059393395065189624648294047968937611734760360101055866269405249320567186920694952281045477553105866485134528393714559501850037705818477202815043344998859291476973366834335492179755186067991048310767835478237041245951752530786341738031665508888339049353482864212581213791216705166707063922099615187693796060174328289992200576116415446823361458219646786495630950758184728314874089112591005982153381612578462979550823545760171204927831437392337094227034671245519279832800417462555648001427438093000635000582725481726959288897553056721416124812537407606699161329220325491242609641452447668161005575940855805896945776687247908200115654696739541066915235235567600443066037707655474722426652972262427524527593736060490600166962756940722836662507811737983721157399767968546372546018824985407134775764782049133504177150497024740091182535093919003912198474724241712613812310934590660645040332878934918022452309045679575551325598392876822692014332693102319778526261222501337326751587289503304661293784551437660607881356670580747522962795790878783486852806007908218399023594220110490773894192830139242011498996922232970752800269718226969397604075702417263834311369511423322807740545839517567423852790850028150933678585546763815960345293772274921178047521183688503198502549590369750785445814510308650979634287045992611330043844230825397445042675889911131991074996180998029322174108116171974503602388738131972484867148379607755111797093171868707747071432264702546215262708576936829331052462947125940147134279944497994343462534032003429970468510516149211040569375635675246430545928315191593428786065515514682495359398890036567803222905885794210860748732898091049814064689837404573274791345243991207503683528796874047978244098301609047081896930530431185390698577325136280918935710658182183537653935199084877280928225317260706058416812118670199205520617084908409920288863266925216508736790216106916794760638940562286488959536761855302792945821114643967210028197661180985362908133578540282478116199120581467156227104249170503386257544541623243538607761035078551886697057075484908262996186102899864193652267403848692783760389819961422428853306359146718024179864410752983460648279285778442795819459766955818076200318855557469501501278883608043923953045587274272611322239112176929235639314653790644011554435778320717718515593845392000611045004026490821428633701624704066800438780421122041923329857574143261739721667226469825055742405762098643316361861359190060707363477741650713302065636600121720242685345167337619434086733572493190703169743109882309036307044845688575884733215884656804089960067276077070860621801861169635900740184901067687464284508037779849784006030171068550112010913351451283882400198533040830627580108552301012621697528584486730596663009090469523817489081442205733508278516191125897515326150710252574601876068982132638967259940902848431479907485998118030064370572805775567875993109029818480111142069803228877529883682966819543228152701955258851398720958168918073825902505186872349874453891955190842086812281937416265642222025450280198186439420695416834463719381234824785680288628764952072041790663620748038909481718464846567708795502901862232510102192295798236361067990328826105737416368147054191252757401996915570108133145066056565993993449500476885053927467008340115092896568586974363857071425288923760673386353378190224349633558828909407726364881310674312699746381652336545038091670296946662001781739449446466385966733458129665898610697394248095693176290022123503399520022707215874921798819265207608282179718309629865478628949816224191907048328868435521086926005524112676999871130485076970058021165892587580732528662260294949478469358541806752672486367336982037264287379050658990874616346133246950979493267081747220455817578709169878421326314474506693120029233366306357283134356111713039333322341270209550577832859465728447385531328128959423877351949570247259445565860211909887542037287559162604309436874009371349316897607146723444761566540756801925115837305199957415498038292694438105735366593359477652733230471294987688397860329216759109807395691009557742820094387224573295818864645035797266905224317972893503994065224003054798607418863221819700627989739911575960862222605992182803804843540702759225313276858962728262636445722534693822688148791357609140152947828610888756741776850499680616954499174153896536437164886673985203354510529882892539169420821827005319974404413822522484194384728240296912034686522802797949185467006604377257132043946071839160720485240281228961844139315138774703578880442045446157348419351092785877599524362618383383604183728640088547390571263263527364037894066019122642049739409854990095388237387376558089915234606836018822467292391971569989241743874963606182011821020878879770915150648621639142231627224958872409938559476408231578975708203912539412028061304407789211498582142377056113873109457664959732627558361571231042391209015089218531458610805194059476608912236611394968383671293391181968135782267250741838831633389999233935116947293318452856500318914696833969411912775451049697344283848264591608170968453374193452127850745388727422915003273950997269789056664647004015320159603238231433782940133030694601538923772966766116302695598518010668265561292749997712138150327930944431875160403107394375978111107282564500654162063535652763911171067656797070096491095968342340547700164528543094148912212645919084790764148218752119564764816873889535774053826456971667731179320918551288091571301395641199779156543109524154019623628545058265640638985451205545942637356291348023223412940143191345172110398159707811707521144223128035500612326007666002234540323072943197341823232679201853815866897016810232773243225376627033006093577090578459646183696923714815517937528484274052923791296873259548221872308295367548776550047993484188156639662633154811535090761050344724812107109166876060559964173898554141747238848348043475625459458647439878301643057009423512862307157803286239978867247017412039926635031122681395894335858172158143809054895971550521980522777592153547194018861940708820589295661074206772332232394171875401805903716527049455774803791025054329464222261629372696348838573573667566978297860255287618207679844230342683906850972353958766318010851933629000996957578382097576117193864778653343747827412338402109788254942696227952313382672112285189849113264416092743217851181788745357922630776787576892054363919721289016242418432728098450732878592653700798260378282956104181561524126854521965473915405217756989610019809763646369298491770889008500535767263186826801695148061692177340557867530254640418200170730849632801599768957861580815658959079116044895978030903889711857969895847379673491660348073613940103385746919650722707821510942009681781085526664066333578890006431688473337660872991123626521593196914172111834926959024238565552971242307177308259840867425494957770193408586755670037928552370014199367897451482381944175555892236823307126220879816120745824935333027703948802926755027684455030514569899798819203060410150327226426365537414034715640305992434353403615528598002318428992360896240856642182286966504123822492327553334120521562993948942207915465355728697711443707936264328090091570958707306367829530873359627638460512583269932968225167238101369417255551328595355969739873035767086645182918567291518113890448735149704890295851595754312713238940714368220996249412585795192520270988442691428086600910107048554522874440072081061722596662359330938329748369446175466547262101100146182222299613556870779578244638005282997658359831907302422729178006473873497977936505417687948210060312707205186214024000921039985375837295478901141557118062488452669217762667326921861801814381144390877278675647538936231112805981470926335412587998350365317729084875351109166758171085063176404513277041518542594112677695037286563849143542449473048680787107606127630384706665141557020909694212367169417427385228981480652606088532363600825326842182408432489497099861791826295366200259704350552599228534418104120808115846343568553888805282633240571961536919788612928218764400558232129766392172075411329762476789374824542294321169010044425319525826330916989760813584991263949964916629263976109238888324067410940481238498663357085375569896231501921298305950713922419451551753785790742706577455501767527675589493454724757104805515563484861651096761188545317355472246013289407269975078665646613328682648031415593202461599236797711241577195107583384217706511117516749224342075002808912430993173066395035266528311279921309871264956900171789516787594265001754556909165822691479457602999666169606865122567243661580465880579960974772758997749072642288388867364552766170324205816401634321007097190838604654809706790849184949163691629240351514687223271588362538588346610003223627479201144765183047272396503184234198412673774027931577666353729505891965807570334595779488733034079529926122937944115648180493784994601171973075330143982713985941904277529578438637851861690030603026630961506405925312545379386753552922506943500011232693347967387319060581994733465576836335367428657503839052282212338528096114423678182700120556663841243459700029506543121234734110855706960410052456544947388246582401912097847446194334861141724329492008823928323130529740817180786534498681886094619937327230190684983151402914437597839046567611352908333416647144145282593720076790223678799708643790124532470872212188894374381165224314453047851847625246436375100484510580256103942859121393467504873085500256133205073515230653451083604152786607370526695639159556971331628621969045959556974096597986213940148212072111180927617073933123051044004401394956133898695795033155809964324697882923746532401174657697356409412720162983225135856149191620673648008986837808941124016067268985397671721807752614860190163837133476384978795171686406888122000827317666936169085770926757506068220112684934548204338268460738399829537446116237181266734585782070451038952804686875634586804238020005169949320388091433351933775937577626784566838173355887287797960006550147065105209849962137614633386313942691823088553457301298015818222811410608149840238352865434879270969375604315589937732939601135013679003324886950033245863288836220971435786926937867060866246126805163668127536189857872558979977517824007918938636178611272674588025048718759086148895597811401964134039277383801571885330780427072058776278215992704207146011937577187808496084994882718203156084238613536521281586991013306718653126928752230405747802939885405428142444859439601195741644404606446949718613204980655568947756223530619557127680640420307165523782287659282048873447181763653869672075369988923614249264418622365571173945292530940412845200316900971937550310636805061959123394330553266074327630303964285820007413158246725950956588866873869554173093731844280092918429764151481263435118538364006476776843720211691654259728659483452324749720218938604767996880332711505132732213613243671193780627319434427592411043244634511653893675031358722441894199382476322886579875004898959217627437988972513518622911050325457848989940177329633749111658252858920072455865121254669961725920523604061387158320839697975918246883415580433178584492079401125041346834969217728794053765734875528160647304478882058984295928790339677270550707122484462959689583636107751882759156363028695796918339965964400210887990411041238436330656148511481208368253925561338525639222977347343120893956757660568206970047752385200814132560140658925037528957389106448450275577458868989329135053317036462985418983268217231498560168667320020126948931046010404534422443811858535083493271398721691178284679156913882408694770355834718288469749209671764010940592090019380950471403889586319911557712930729203503705443407858652050972143313059760532905096122997907984914319775317844259189325091542871376869661905491678441390385198922887277442494696508629066819985270788223053809412028286540525881115186091455435748498717202689074257000177515740783347735600933381522625067635943064333032369806278552209234132313920644437997414825972261478584805324666946029511717078114816706115728421479295759032963140861521677285500708832737243099224405317878801146670694547983037366771566023420847505655883814942929886310919611274786869619078575177612959508160997396651529073421675635404810917104125407120929832945231899950594430358524299646166634878663044164053127966941504309968705106237603954055163703968669279272219795405370589394100593498065016926403127864447235655828928306855375556095180982326224222588914313216310501915860274351652106465567664480762557349061901947744531416942437899590625732557054472438718216133442587211167599899458394912989344600802790159256920776595141063544218595207830840393071424782217719880722905643202391907006571384993467974257960009195845112540069357987731948241955397390350972216228719369098036135584685438909746218958530117277843547673533861045725201324313806330892510744540811670874937358392427558012612334088787132047196643363513754521852623674308892854869820390190145181540081641057022709519667086028979946382521229391275923057679973358042798454660705400143754642997602864614990806064799804632344706028798954985245570356462483546318967204355711056423961242242999911314990192181661465130364606634221977517830282497823464691055451549719063670829946032383971650757935826772419528453506957590073562882284211342948067669156832794021209784957242850591693165763340786238839649616185340823161967538195610360569904058743401010464239392152598896614780515909642105635559705799026554769606777157791878368850420765809287762646422217017632261751639156974402180108134892451595908280780973723764831189594866610242506427866641593298255763828079432641987598476508140639379521337400403053496835347606987653107668411325190044037006291857875478881801526900103992366725810876483844158726680449063028269916397195828074206835184249414898182924375180226544033044297561453462612972158611457775366677746746436977394223023087142085761897137907740074287608794597057845937009278115844203912380149202147743256490646748336992603160182089027320153445136226385674156191458045686611940867054866478782757416848682993109862543579863592143955305837820970805261555586490305982108731173566929529435634460129544556316700651038053427735169556281743482251008962935938028334180217754717140328527049976530782095570213267659491063297098580744705651973874425686998120597361970889267354393426398889541398590833396311272334597285688546463550203718708400911382388304287034000837115759932638365179961652911138520099931975687269329030715583692199392845650652507483116545390569572138734655030925418817125498377657481278037776059194660872906200181074384658416844558510329403342492652235096218705665293841591835164508674655198378644506168410706288674700032829365994320162549133664963180209365015968190031135694093781159438959767616864764138389523875903181993617556317672810127189231885303826285139791033525783436311887259629062949939349609620542167014622725763285095769778426082563063965639725559924941123693360873238952245954757860961719151778075752412013974272240821893827685568964467493754421042657827763870568194053986050924845329181335572218782865435365194553665825830979203818716536229471384617822521749525693877373161979115030249303272792331857563415041676316505680856444436578204802745884451884033030602120516897789118920020991732525347660850311065030009932315873742011883846038946720138747946577821206987678313993577027265227617651806494023957092961561947734593114874398479953044750002676929075739571494736533179544306941647428872187599812604984034664878149304664358891820217179526506860634147105581348327774072309826610802324937880831886085636610789352222615011431415942939061465204222733745221930355424076443982009664081859332313097710283286838287009798829180361243195077850214963061353088515511043018672941122665463040585768887129365692276098436127175774502333065268306172526030927239280111496942298968296195108869394780362093140283323037117872031926235029751206616803821820858132656529473297446974374077902466861850997501023987097787470712074026868685681321784339095262169488334861942665896787371344422982488500542827979887832248508874253513802463259605156856162497805034271559029981964570815286014388489909357116909210867849986770730091762991385665085975778741042161723874285841462692018750376948935013843433054415043084935713390283447257158179338680026173945986910680458833347646908141173134038469871077581966508980457928119118493033815586796068689459776606833963891106251597374552008838376771210890791355370571168091756456962628946054607231532918304151341765499722431528316268890130134496987119496295846702151778549786918537418083487451117439932167945658862498055107576908745976885512038423993921996032350979370822899779942389212372575925120467471064114367474795760743179937323532240290855789322952678783788738837397217883566866994719129156425005494858939471935204061402367302299600375620799608362880074091368958880409958201621481468260679176095762559611537457152237204264734462637912575436695755097970688135758500147794863593622983083046331265891010321477489712087585019310045035430969390806250559472031538360907401018335314491463024526496014084109219624444495572277688790408868532322229156606841208152897573569277714118742366474270625254408877752086667002244261934627196204027819080572570180818051288059641315524639712909193303439252941228529240883126305469568034312281805808856600832125448035228406822546440691412645497697821911206931713555186884632244163086840957204378635528515433695873308621069355928670165099731539334765942504908994071887148898625982956264449885312741739498684114453560738482988841008373054413591702660914761714246812700646268414627308677394958459208013088758600531745935434903827019960466267235355698330253495876195016101151877731744508907259176797326209436728135979379762427992863861605787687585631288492066275466291525921094991332419498743481158053004032720954296209838772307615870637943705412573435590116973089543301133457287228071633454946247462018500761832906731144400759209971635820254774443138340497374412288531983580397497990934601735745656730842260630965023348247528616039352222682006349899872847213319396834145023214368815120539647262071790923057767919396390182957160023897587106589376466790944837554274596197722799690919811262097772421732196702290262970981950451707922453873417131563396955152278763736013245792391590280919237616318088004868565041060355669194703468055830706992267583101369984804488783516791614566345880866192843343374803488397122374027714260415810397626300115688089344278701907358275924371344530295838704086306668562128708377506849569071260703472886375778475897873922493686388016570218285039891542209423332508543953246730019139575897817709732266633167582763432796305161679185513117092848204690504115126800138650235741376141347268573395887813225285507255692140698514812565607916335378776837898131455521949793325140514720857376048892982169884864595018359494717871508769018979603477558897609378357565584731486026286718619997188470299704993945946059775146774531543036974126193802890735167799417057451173931090731654381062554751122679678094473121504145725835059675858507221711312416478081791001311430329248839449882304891339690281070733948138589150902962914449592992545283035516061912972384559410685432396111993562023698815123683509959053332380528716418710662564546853135996515006088852770120234944987226910980713158542140182564658117135078052512453873486961055948366034652167729573265742941561135639295497187542215770251156636914731332968359554032734834668800309479307091792944682993108236001471419981666328365560882309142465265920429159245795993947973989407499451769056048338733702675207817987307202683773183924342914644654344532355343930398549714478844935455636199451005723686709946116092172261244894458178051251043312547911208032964103480627758029039492513947293444636795693057608185671052751614004024219029042788445938271206894856104149819487201550878699930870997855028801272839384513557086865766363119393660135824933068852290893384600663831255451805213383709959186133948460942177696263803944269411738952689488430083749069691665935517535759847827451139812534601037038144545815785338749278961765821879850303267561528399046746538745437432230872419577881844920095472298620206891774592569730926710304495852539338374280720807415820501535651972920238190196833444007127689755098114540935239067017543152356403487273385513954602206844528374788781644973385339587014061891062716701241454780467588086370121639092666689059272952290933905434960800358833112959026334050413688873095423286045826958093727435858603195524160002657206675135455015985523533776884547841447640015525069750415799555233142973686818453270271921574192142685608447485307341104276013566592209765636074520444573159964455193154100058758793803453145514519126130191469806706314007838553224879594837309416167769405735127944376018523315919431445035952452894720842664591303712379054721200765027858324141668361277666504536692745388703894662205553268804824799976041691389550537781534289620369263003832123631991172570362437074700417546454906548671321944667082985412519041646512636992896750470897200763591173472203335142767673433581804488186861233699140580796793443567654089608999410120959868206183949886963998009547280267238255159580026002320325798058369184098462728948758780260618132071050796911066864489227676469117387549509149969168464081246977082958963057628150497598822262852141722438759571951357012932347930682473640731919307192463480958657703460989092843223152347871750932639421173713777914146892859932254419695965130160874750663948987222227664156256370799350635884287392309172634393071348349819293366819510387299534343473266984083423665082067187424051191935261911234937815047077793174018822403362900187163404579290660073438247426284208566455609903060288246430032622407711880744648546120196210270564653439071137091520779066740973221790082016010354614512167938884521557120371098586978924766995941311277471324523583546958938964830405840657228800706657427031524345474408039721349602761527742707978442999046688138634231846809703026738037205099222913565022396909900519563838126989827027197094415326574646001919386112921452921779322864038979020618170417894379818793241479466239238427408644886565768676471495723416739949242695286936262144344898965197742418690302870445419212281979232584604778055519552774885704889096177171106980646474477059734077827740424423778010590710452285305963421960341740597090211566200807726193419265060382539946925672984596106203263868389268728599599260253146208200645587984316116937249186215307135576048053660862624268670019110307615346832360681477721496193688424511058881188718662018970880134918413728484160577637088340928585974582615972664545274576364729212937025603299071111558785046722957539220132019770601982281653799058273759502502967140685251018912189574432161358158106501435426102083321972295196259988249363488517062790947019442113060869028455628090700432484599641354141647452817587384736362096895739705354666379046561351062944181296327723041483259080536778381246220150431733668206569590073600764011488847446267663745394529075517527083279561098270355161863583906880793624271100384099646659742010453539878632936718571189317698865026693120168989011925991552170021553937022702580624083092798233400216298894436900731662952653552671717353964411512414498956620417949659689301011866047332983101921368981438606499059081878302106643376265466465192154871361834496325290987213724597599802305002260318314731377213995536210016126651884849373174857595137163527537042129604958693337021733645446789667398138811815203535849988089076320488325335740609709702641893326469489530998541707661647567528545710066587945231577305971092640948587156460571574527158932587078956175077262768798551014176212511216068070568109196493345976135713863411090462823997978691671926419033329489165280358135304502079174431955677644706933564321822026741171338739181908516903388776087024609811110285696504356448849584996976680737078771522519502268509578851588622598852206885033007542504134004772223876390855339548504901792826052056673772952846438908507030694094710803650783708048646349423672505978086908674284122294262529481116508529035964766811869024890885270637203165783163286173660898607480844726280750105393155299264109884570075015831619556798834532840118414469260617223915276308804251514496600025100948680739221501024449206840322338645530225573744804926621691310983455667994716513519288440785402354953425865214803800526308302290423111674592040791641289918877835209729395597912356470069036343876374188338693031284405738233011756885093097371568437751116295611035763238979245036822449267366171753798597925642962695265075080242467893286922766357119703517652749882223095024097078164773961516196765802464755093382218828087805231056820115210316801991372008964438831099193007062197936467453107027480275476897156444820083133406321589020957973102473823789209058875767551937559688899860620463917392252222896273224096288538656836121606666338704362374398585210274870935312760449159333038686041281854989390995730733838460861189975439271590832901760323759374799683550626510234867597941331847729705314111043575320563655434725465336943729915947762401170572196880646003289200287727886237347555225585339357203991065832397081137364285859565254371871757015068742909209719446604794268756605737797309181474443314714257795573853221032755800654481685586847040985312119372058935280973636796145696075321312745556209179393836425528576150972442851524635241701217211710244718761730581882304662803140074839038115817438452724160645280574985130217682039956222508991663356712700858872844620035804929366240970825065639433377728355478424554673906926165334559830951616222007170668073340149851662434251338427655534439233426542215379810479158234871466532027777506168940114218683237405525944081221407367036724225344455043966966121222919895376854721766719930195479915522772523816735981626281267062605546702111457371745874277244629316453642586770080485154939085887352959869241963700770134479047969881818269815958732522406247753984598125163996713147891974969295537418530136028800491634153658701252472804604907219701412121948715185159412978103966530382433084007568596176360525838912183315085467623813195838863564428827232635669623758393013445334172493711138213886201206435648224563854808420911568630996720571124350682865376996998299508311527710164600594463661491771805706178362387486048194772703619783049281651377573164730404907337348886251205464317410730360280070207098976737705502307073549975516889749407493140940486725046265044124099180929699668144374273646275169332839936786107753692259334675789205394967353495756992188051864726091895478033868153495938023232027783777639546955651448238378269645732788204134511645228021328020267618142364096156474843915328998674971755933770318251909606711801165546477061319389874816169927817279040920539276477289492734311444441289811601685102989187255325196877325212863627583394359392057074597499556822325579853347061485735386505581736733177497609704392041528121413187341637087595379388055105752455517116486287423494458162476925096878203035662788020592146007615222433054103936501155595591553960993921103492591789380969859804844497506175366200300125864334766724416255682909591661542423242538291818419876268321326327223868982630720641860881454300509314788095334017237600028422899877732607421682684990029598562443875152640767725538945470923203014388226010403468985503719747259830474592219089590895863074174382207825897994007497186341537204550354634372016181825870803797989719632866202654509361845765140357191267870029145381543069173224203443976023373495300563941520053212106059777419848540069811412242927965713749627755787589452994543826594448222544070818941166061048392079950608153355591780276744938772796735049171430345485111434226609329286856681864248369437474535530657828174430385893222731157643857729530004492121300805393496838240109787295109193047628927691939061218133318172851252524973948270598369901847420974258530275344801536072232163400923381613910351281402780668988141345465402442030373100729425115095477227529517128916185905456228464967263303036010016751147672598559826422309168240466101207102245506326733905991019201843585009143085820463915512122325022625522483944146144456057527722377439126247989745882306627994202024404027733813137713751000407825615012862653991349835433298946342252008471853765582960433932924311188132775769763757045904158374172853332132481468969748999126077186350729282303801476151642415779852667767342878510255116771198801439615082118929117783140433183236047600826260722821772620369274907138583644594942727367848473762816874207986693758899781093559545681077904286214747142216225498386082127512566807508601370877640145790472530522139850019198556250294923281311778787949694419314139064810316900493537391741940139914701078616106987323331852194559762945379359258538950376217330608286490551141280190077193918892264516451456523471776960483639930459998468763662796283602008025392729554155468870047551526164160223372072406518016306505573160935236666213378563198817494364395347998090489512400163544931679898752465197814557780899965062658960045444089265360780736090099178038917900056283524955233172507092328423028194064478451529373024404170817000859609639066970541826719763955987934106388086602995932697934745141090899562985433374417229435458236351105705990290228395445598943403968295861866856570084544256693821045872228725468225671934671054009975168030537394433156665204004308091691785529931025224329142211826319822124139819167478399017605284456880900241488021915669337871554681285147122201385017508681801069210346563592693930318796331677722456684008952625663745759219340791204778735446074077125167419993875913680038539130665249880928553454331489118992490342763197286848675752723246047007913831415443031024365637170158257194024486911508696237524848656821207396376719918973836557072928047173189024658188567799145841456190147392303571672329116892936034408251095088497120079453713167636934666411826522285127307486631052536788312084836538513224908464837812800168100797211376627229338840664483630212048639528782775456774449065576908651843736501812715072698407221791856684839026368600030681019889691244025166580291434072259425958692454343441004192934811560573777934978003773492216770435255344501452503151131152465810059239367778698221294436380750846727491227458498162848806833780298080693919560403705141118465876052995215396217590882200401948575803103691336239812457925693342152303579598216188475252666661408560781409384765758460536154951670290856877810580935821318272270903253878059687291933030556868147851342878881004108467294034545057326797181787502516667942757111613451035748257997106517252303141429059302270272490074939335992776343023789828849481837625138312572111682220337208077284763420974515554754646062636933504108203109023980754982008197485070207272008155749320076899699087089534392066314844286817959682098326406557433950414200732510865340947904655039647494655798895608904714649396617985920597686717199905702180020062887045020278004112452782468660688335013334642296263472638364430536614736744102788139954831415666009357147096185332155072099663837993871490225190461066734610009359789801925764515148832249509413176731197525178855612739780967131429101148273584812206543025688101814181100706440770465300066083433575280821603461140566983481498601162868677797524037680513074651429988487563993110628824576343504265348292161875683717697533915293734878517994314347141245588388502901225811322692073557894162990144925779907267457887242419533790936906908963957896128934309449486042223342476883954568818484933065891076705211083210038818644899537417269751138412047117034207047211651558171123578611271277848990641375807782790116429822805216922562432612524138022056280456190781779629669009870149037894340593149930614604156144103434847148178231362541967517753383253111808632886538315963634701685494470172113168231020593901296224459000623019220530940266709597680154848071740140934116130709183167583136503857561588596923818623147204108199827226916440090112700935472860516890121810231919666238786281492309008663236299686896197764405480907789571607027654177271695345576758545718281061545579728648605511726060097481410954047477997339849837724927632022112675717150089918062914060878062944200569802460609474469502465643430496796098968289198885098456268790349272402113537504334136475877560280427413061517265255681287561284797693721775953286123362332262096702743319634817468974283411196734604405016559231661145704448395270455273818850657086444942213305041609816919505264326888791767567768243236475259491708163168579369141785055678871462656491978635078333423349970355390227573674926790448983394279108206920243204650215725031844178704040517484065437443349623538047860717563307546966926777217978574639671389916583752762806529517268400004306044260164305072208326958832169185047330849861127028108867341486528414264355136129323242223769948891631246387556459944729347678531392832215219821326071503711997133467157689872003266160360075231394555750022426843129592467584726659193052640793691506430804426474028514786790895249149066862700614468454148977532378445464688604476560267072960136094632055415384428739489178391101747772561250084788213429267644094440178541981905916915652689913997961926944773763479717348504389960487410319698774512749187856291647886696745486431364080665701667679279621341765280313354969603539186494282860334436696644943382987034931619853772587417807045906262476978374027557365701399175990964999597060695682997828781898011456582073552956935145777424528994756662865151438279017726500302868412548642294033800690049145829660454290937229805605518217613218679543806271554650331248297720326164820111523670191670867304332067399131091737600738431702146507720848471405568379568358393838179235401944510035601748297944148258218860734342735686588030418386378332780077294065992332924532218193431401975917338417472367982471839471884770802093562411005918648468819904875065895756052314534758264662476087583705176903626619028686334562097715245580662611585837974200649671734138765695926422302799918824899262235048942101062172466269082464760312532337692051601262911535568522938922756089017527750139262680221731660334720369157220290366245143645884533475378575788724735502656678125433612946531371455610185059924297260023714903211794460458661526645040167202950346024965530821928457019356317906376518855898784830917454496833277548508103422076658454810397635048203772286398838392878828657943194418216718293281864994337830546984081687667420570603139865860211085943667364260660340787139554959061959274759483208758092332144866182024931268361229536370355199465011305145608558885549685025853586505732802161382594601373496937889361597243669358505955535297449172893777050918497996032742849525749455522559495894085629883552052530858189657473297103462627540557055122755309779497308908434429623264903023908111081664991746877955714074290197033492546478854108164613835262880677996626956803309049488138058150944423063624592503745189893604429179714387025050223979072438140552440293020544670367646217362786107320884728395708393443892364205963475263318502950788011209483473562151787336573919357826846140149499111631544363146000899656729612411860578667663919050180485849395064071482878112895994636108559901607593773449217833865124468053661942131652459911662565963330134554754730400090985324805575196403342386576884749376653863227237738152199278692447112909749235913270512458900214451488587119783978254863137516800149492783955616725191559967971488966785598531636165943509003182205424210612603210571795644715027671609471832886059234048625102438514185221868218143202465076734037885359530279879036967073704732944242207337735542269751505046933086285125053223189635555220652797664949640138259216891657367772950755454950454153209312618507376116228867567547206701127491325253633819827796515668704086080699068272420272823740819458484346797422096571623451973296576763806090065218941190682747541542704234009577404600683448394030129496392544174943821006551635148564563633268448870231946080788512362600948438741599890083832415038614400890467662985325507626978901405882692803698252026549433766615693607675305460230190586694655348533386452211952500530979696482093418439596590518500056028675831537885936055126188821895002619873651838203353169256957030184287071651880727768259080144559685834714896154541379874517310042752081687306517394510271078784668785648220804828379534099149646475517072587355374750550535921148366939835989201613603717222394334036045816045710570638087618954080993001490977762816091047659770693844904668961796460868480205075148442633732042807281058162953489637587566398213989174559848991920336547313985327160096150063984427765836844599068072176631865469805053813338566625874933696571985443555641446643506318698210033080346694502316105021610713558377067886157535405540035206297822328327548209131954722596315689345365664298125217364836498729660856827434171737747644394271576739766065332907546293803870086311901489814199196246530978370661347179997239023493049261172013108116834679582763901374624319559517051571810417110302639116251420892137863680479246695133864399011380004211388782838704591220380866598087459549167139564952331517984286137039199484035843865832691662118325738966326953817242345056829673344155078112850295145854159079798228018295670279822943067351754648407268105903212345871242605553892803620438250021853268502848789889206641303344450080482736203416033660892208974082725146582589380849595438438089864928147728579669849084398645022092733943876749236549741376189741789330878827931893433609619468783551214563968886078780717020463373702418677317350668733708058819601335276386236789355516885367167339232855982078949364806116425572112710491953367187775801181721372914681561067621469324814443622315214616316526037420922130506778589898963136045752160164424629667346447638185989417407422548983821718891898929750400498349178855683431594760911257379196105743702645740954279822306066579653477593114574106156382759581180253578332355165999580293733975371341938459523647660250511697233545477560825132660981530165537246851778857761958660637815334916668390360612189121579896860300858725728445511547944786322686674115999962071283751974524871987760058630757960905026110792256996501562144040061951378553530858225147353225422365385375148378276741528659597102026552192661259189460637254116596597710393229143438399534866215251206047749533145900269773820172281796380772283077697735842598296733779832501278668829680789769065203680500575715625692719409869223362137496853943225418408369435252842966474162016592310042198536021858239748420031715032137912262618914969251421934970140783794618674829860882245351409658625389586761790891064420899369597492013834285702351770669503600233300674827259991004011921610329839159367916312856016210038501796874817837238988222475492594419667124961956575032391512998399438181205020671632878260900916083973770157421879216250598377080781157663237265015674742223882632425871389755174981773146142949105976828912896013819392897087743645545634375418436662255403645026550429948614077364069017151492569012823120558321430742968327643217655722834814494841778894659295875509016487987429864901361985590411764792929037863940956022433620665023093668092659632611562623164675882194145483724768340724909422906625818258539745893793284833487957396390203657184251952208766140086027316636981967592687385427161533101268704465883055638239522836316326319796827231503555347243224163870702181019423081096832991891072085827415759228667612013257499181842141076456181584639326248251295256590562041548756969161292884388057785117595440780257777979890264841543833393192757902096889463559538405072717504845072487403165740094773667919006628365114994751860212270427859773647642013576780333518955006615859854831380345212063362395756449527550598856488514628810579436052801642213729626174791550750991275964012397612588664573878703492590930881577126204513302842999175254097363871954502481676264264184822553616253471824082798250038859074611698943145427764224795822976226491453679797985574354877361793308790864130305474411393421967916034055212318729896133260959886257392714563486661400135611890571224587457870144907776060248676056564508082511079742122106741669081635646508334184478567835634165817222949580730302134127712662741735520474220435183383104716514335168573761393515845163131037034364457801476250941177964294234695006433285196261667882992083967689036477033467453512704207652116805538902213526966335324463235487254401268297937383144460128414203870228830042226267005287946854655972223914059015526044699868249697104196173773510893292478795544244060340683318193092156296391347558468166481870559731412147001328072099004360566971676077922403898980716776074582312269055538580943162608839017487556596243248339760494223761257720440750953862442053506507938184830951204101211093702583936272142920810911634248026398118208322399417252866110339762154820346747323503616240928305157593027468328527986275986326097911503215750167267911304509953384856770575221067571964884339784106236532333792605808746945747715098607568872260391657543717474750878426478975718235078730962917700497358603370307814387573162377820558777958361008099516683209268744770412798184220194853862035589005324317195810133191624482787940330108813101413446453799986768456615890424156130842290134601501525907864284039886735403739742963575165558837668774935821255169573059094963467231891339463879439056167068358191285628734707672251467370029550504858929476845862821311584026896777928325599210204307972738322315812274041335117567312203235374233235492762400615010886862294280241302476550606575997844999159073351191121074967283919308789585711470476004513019082744022722892390310697723894774187665629513775216810677154832195889616884561254955725731039830874161276494259267696055975173346019601846535440093302789314985823755231062612313850749386647134576132720777928315619049367901233524230412680172450383220021216157974818832599888571113311588672496111805180942554040077319447378666933847386347138513372141104700571287725058992521208417113199544659340824487978701486954531068770870303565351576504789476170923655108887711033804855256158429048709361198949520923306480213161702631449412858421732986488163404667327982740758150946642079790573750484406357734830327805996192332447514838109854350670337591747786125375619102421267689226877907208977316822238083436324193222099758748539520351638961452499632459323144466041737236072730537989135108832375299350040893811068694002639982937130191945360406128785475706747123099055663076874680829747986464167242037075826438184272265951836837454961854428352659191499864652948801270974522441244390321306645322582098884610680506315386160111619344591090491593804594056932174810609370035740583706793473350864865016996099718377384584287773548767556099857075234535652518650669194685793377538267248840276108835008628137114842284346717365213898944208787732800204933188261195995144265183682685084435646276216817505857016204227657589610154348325132622144122251874278559079899136729275702204711743934315099179498000937390620519071642977133188616283957067735716534885474518017253972504909168402666611355112640702347410699782879063540037856234723416660778258253279041049087252019544348066954469339565919085486206583827477960934192320564584812831119783214165322704288988953879726862020485425889232535475633445846126095523895966277813229317573611631944695839102017491912377627684765065211468775541150456901391956485828492162600233542153532169417773715401954151091456194818230015500943558137281173989676864696196858771551652288506906893291936794028348652258226266064436242345169717780813855937077511537501080763015995172112410832321390904346203788462730231352254144493784379157773149647329227331634563976460242483546432192536313763413257018570284218137194558575633941957532777887808696128615583644919161139392094066936054528789135649599884439607514780594737425649961973568370011065223775431314383741143022498684957839866887467106964224939908701396288171921884709533127373974151806540418130777927000782309472392988751291614124842960331450038465186754850750595947414722469567582848586285379989613748165297157744262137442634963833497729312998381642545184579713923425819362360640514208125409664479624338760510819370989020087286606142005063342488899763173362538677040442748721673912476964775271827546827634974772223093068269266372727593535178530216731468326001083429764840604306172650827382447985289077211017064932491072491926873481950545661869847363125716191319598911915484346914348760757254291515476173804860133891016743707768809032856166920062638251433431227441427805753228865048056560119804967430717886946067549969096622316150458244708751391383299655114074803851203051338664797678818883037759253460289125912286874976296056575460009130003827259025132183838533849059933307253591895949571933657054710209085078501387868168601598765861271237723748109506164655678449586375203786024625772730884670652719134090646878542610560906289416728917868632010856237699419028081190845711602710072725920370265524570069020772519390630925069362002396731010831821512228887339941855352952833153341326642730890667818875984973130353434656823199386166184939069618039028966447167791900877501485144247838987231851575323672423497123850318962367402842418623841827332114579325121133879914320193691370857435790087531886992016559086389427781720946978346262959904320801212704029027680098265711171461022957256665067960209175058586994472396841572202436066821884321017058063062206574338738024852814816751081500417658407718005250392519542190788421654603716798337984403513869181603024425977633356065532914152544263522441776323461528339757455630563034935574351355458123317772283883314244276965193950616613447032172004752118805910449601716610063623613943074524795607422430410092897393893877847746122683919579613760764836588466438725968894274993256315335111872529165591184426232584949686577087395493447366552704447434457477378637028395456689879310143702407206074123848009957943104744174063832039755810511109690524472787631949134485233541199006622927140934644882395184212459538605476665099796702581322781378798198857792355798251459830512841551923420220758847591142603598633536489626056439688757012349428457768276854999777260884573746012165617152398771165715036338468003245536407288596850879440354107959965373357930739139825659071737393958196695896978000870407029287465085746856445961459389913876421120616837362178798367439379125659608554371193898310110207760535331237857397105850008063857205927446161585626427623021171847984679359427497798705181322640570205885382780228951663560555145406025927644410026268899516112168812550481417502963709095355263555936646879442223517527391094999442585630191583964594132489901611640110998386159926333636639419956942575278380131779940311545499227610164796374887487351647831959329084712489842861364959574606194021294521459601611459878695307618637559549660880024569697074844973824563528747958422239695482886434928173310689660845291126583881616371953455877968718556512700936678407241478939307995197407477494829639766352562756959223429989519387280380516173432918990215718703978003586786382345610914509026222868124483901311693724939636350385751686375497438758068617709971625756012350976255382468591241049326606595701304666399148630422554115041744161054887795093691559284133170382233685973822450903882622876776851863889951500977314740992567774963632591171670300960479073140579526235817855152945752139978852672003111534485142664894469283771817096748892201272396377406676165405285117707406862285906430909134067897530302152791623429081799453862024512843072823778416048911558326282972788200206689068745735043891288594453515069115899235679948165547741481301751960863381185138339035286514370679099768636248041332426068268215603234016047983325990225279084683654777350202719432313915932222734617562551377202019973486271802142594317759090445073588523378389665716472672229805035227425348613120733538776943466933156264787582222355120478766408951015758949868253236145193125886299965908217649531931550508983618103740817916127343068705757573113468209364820861018836798058354486061536065032485304012719318574829846124069825912853851750464950335603483606604750644786383754880734824301560634267846454107849241688111370000226477271563865200258812189485184512798841237470578442814368308844497192988538584373696546175418839998499426042243630620790104118571070906310409213524705037705645191353011093401327589692283821802690835884558874763000142071707420426520889994760838116451495436337504232499008273763070706371060395026462146221051551209894995129668531018771254784646417888703762069027421153220474730653093969573869436055850335201802828695586094435557587644471301380888413205765824115068679911786045480060447533410247920155822021047564768112439892203716330357259734325610272935373363934436123340512470633573032164225294748659688326174352710509738578028883915540939664248188241599251198152383057538379064167415153658670090467467540807406133599277132938812345998977976341683578960713393567230782440536187956048750630523614625803025329010516654329895100460736987349289306502163748253965508249417797534748045739717016435744855764555250593127604788570627331806681480528112961830269085189767804306782132275285858749875724788810410550315347082988696668375116440998606559003436722402932522862632273820618601385714048624307187330913339736918656721783488340497150530194093217988896794565001614844110541500789259051088448802740058570021458983183299049239590758832816976890542389425705738307346927031409826449826794803415550978494246543305742962585035022915518723328510788734785947589421119838590224750688818482551943129820982454649964934259827948552290989970131485597047440368489349752799983403927232161131941225780594268081577533054464262104354364535927319852549439302259694165576960089676665869362631216786842245267396439510186298215109425263086875971313386224352012233280887254385888347849406852784963509432885975565308758091092098319567869966437857510542076784647800527111168777669908882935156387581209636147561482089039281379536253372905308442473391870539359140502367765566201736541965838871595284357233236657071658550572754869382723877669986887954754113035961868643297165926571309044146283961047291643324404644682777375494747163556490709614280672981912643841273758399335208702669951507691785652224113308146211818840915193812413199926754649203557512358945336709369942933833140359602957537796244085726312921540306380612357490934813790427669145258464805818774539896073778566672394189619053421134511458979309804071180075726904212183153213505202323064248396840676042108478390440817555147429610999705450188979433343864588001278502571213148089557796828579531172684958145337745288446498241957810386455839234154649198685195895521863298733054690101092074067781904959565315288798272754699478517058315629963601708044561616360046640098386045261055226858217852810743453537063367575427897732034622465725014024834938615930292132952889373861199325915462916428426633735682241193450104920626331186749013444707365120824166737067774262962826873468686685636571564015560778581594894089430697810933315762158115699186889551066282751705384779707999028304615861518600966094137352726560240734709503670404628524461029163136336464720133301781943913778770871656550051164661063820984628530621363583042321513162285271835806331790318425217372575981576178365944807028165032072350717687174029221227120522641093146454441102713149807413458525090547146037669391048385295059001786095420049276238740245444299824546860148815618745558984331869090635991954541030765589622337269126772223930773678457693985940240671623908450643798470712942722096289950068922465357164376313834712046136319027425158430442775661007686577290795939860620150956617966654537880270311259890851205024372192719333321958126482423629845081966856026171771089129728020797267927808375811373664253396857798145630959058127750502082675323655397986598928014871896941700824636000812118281746581533384544517643495729120614238747353332367562520769459033109437215103368944720772608624293702772476577920998084749705052616903166949991122960500576381626103150113599625533986140950311237879842158211034507312127632494455770392140325789059989592344409349222155826603206109797523426731191427642307874534267453820808691930422573245841135980259917214353586418814939160713937102223271777447523639043781376144146853598355784491678400169237915520527068683795481160319001805101223592072239212719618505963967067769430071931004360854683666082627528869138042331157851848445553293995673822455011566002194105150900782037006188889754228481263974124792746033078048214232364411510971116391200448578378378551529911195895335255811207939881149138264126875985220263510252014909562630369448686465072826756372979747932754842839209023712444643000478964088244717765553986558493867141486322553024072856324892379799163806600168124038202953207093845702676908667948315174192901636077665352621856376579432166072961947101961434895509144524923686568360423163864032434766018737553750762337263657197386070754784693300595085086915109118547148891736631485235116075358869216824195213832620621426582484952797501501539183708462599869690640434531331465961458885194497905882604983921563081560256643288840974123704981028880770118657349606358438976189673126536018787922490951087972159238434263638523096403836444879789456961267927049641253669618264584926019383847632824780368499422377980916601144283941634299019916047733322131477424325671266132435515413579415015808927392309368045774840568812308316553935056199823692494907697260841475229174033460402169058593676233854732475338000528650078856128813187715763773996859565626257764731247063798188561469682404087147796843238114690186346166634521926872466562972547569746525518795785382451415162666186167689028212421774342607384863183699418515535009938796919442621568126863791895497821264989490644862038583801727727724313430799470079803858719180267462170008052876368626867036070594067189894539809143870292395274522681459555464207418088500862525538056564937551235414375637545645788546153794651994913840624911135002691310979493535820577496689067723164838349127955482454846559652561264759473588217988859562315113481801113108837863831385307271524333825134753450317692802650089711521596953707104528639226688701369971540329184471460122829738997208356252415599964445505306738658992924967618951645603158502804070012834803054019733251028327886571720749277976427648815304012992195950216100958942624317012706748720823673890450144468413442817599214942572708369388048217177080257108671484351800388614638886460060928977524279798669198853568831734893311028835530207824650133290170093461369175973397895330286398203093034290088774631480935427919679854821007930782395554968342779172350783176497496087540321163024786669857908960000298851122948572253525959781940859365789930107395929550548126633526027063885601782165356566335211232221969988871176819748751469593768707294479268874867883429856196576609501851798514940037468752521855820908480339155552727050154382668484344746559327864681456193657040795702498667557321165363078070209499746036663068603607849237938669486337193772773581758433323884598858146936843769963863440459458241989226329428789004646149975383243247631451779084247118892370069055401574352038945676195169314313666200682869973309981135192422005134432134774197112035421433533457864102643339964519688535776240105132133811479966088982968038964748561868690794416119611143069944455676260573158437558348359085408173702759088306515153753370489727000983041000646715141882349589244779275623465222984540567872335279417142207226020135794086548221066766948363411196888572662978696532876044116216454253165165035981764716667276985846578266986138309471682113021386218806956275322849352311040216957741225014244260312614993686865837534860250212188698172466424769718149915921441572875582929334784218804717255416288145823900275651693453960366026393627675107434768546366153111184442283028774438557000490624931165058656588950328545708824687066402470841987704253993710187938611921912505428376760492332075383695778294094506952246551358018189384797737291401296666580743769785942567336722221548474122597419901397788150238199864568756169291835144805436581736002646604535138324425343218223771228288699369878791592856809518481775505541509398863322917762770464143919233781791425855459380120050222319206815348186747228439163744229554368267305712376121076224136861757486248324360359482216300142568341210886106368045756090855141065021342266629097737723524701483318914618771835373930241259411167000798504972713823613210217354948632624258020452234594834637716658359233598087710663996769763884777555334130032746218619089477644923667505604812941596684467545588231817101261697823600687609895555013486907549743625060266204559927615076114135930549668316375997671146434610321072320124601741087064793015023094049622624179295764747616224241111611569414550862412772930956238776997336385207880205419186176643967613871279330287420000404940794878674117889493618429712324350920064786278996657504614662762383180513186805592723147620981947216708112001008681861284350880520581600775808701198336885530843592167327381465486458768959829613431683686586510332829573812083705619431432636405303773318485818525117646570095712630865241337937546858455460245166027457087522945331701702733021274160667024558802647016461705347626791818389013664924824284573276461574383518690228256291323309916404915986490113534090682720598905835597174171553251354965630038675917418022645030622740807330172127504648899589284770888664497319874259076684075821573079299493150072354872830463320491590278048764967235250919174765091231614938723385791481254382724903310972573279906863305636862959604107199302485460698999860434855717375614649339812460731400300306630247542857727613627415774625561213190091944131683559891341356845355066511967382882837765382344329043023780053251496212699127745312508469478512004439997544270894253739312092419996029099387314069223054096329585723843933601084622127241392350481157121401314887265096979264495476248266213617033001756554141836052745905270697412969067002232119458153006427447179515620460344664401402416672628155352383425674974027177064294267424078867564835830831081855603965842221253723148193970829320783997836305198255087702971083431153700828805489316017132074891486173267976856852769108528206046110289725538908119271492196609736685048189552344055431735427690503639046595166909123529591634126663749717445665716853141681094960017564319543114755966488416989442465679367512513176661196225783624793278467287621822046482591730062314752636117493830392959327502694224896410716345775929178342667586540231668655278261451120352383773743963796235609313604574153570822444998283676294900939086709336895267889866822943240035132315482450341062049977651316060041833807844613308985083033500152387476772585404917964800721938386816377824424481305673764331067620287615436143053768399188450426597966358052747230426320254205688883262904073030437332732465378463048502343680066663874229520571836156455811834120978387152406115920583822117599379362611959029658760139020208731116284129079562031124959124445005992655722236654939093157690387044591518552451925445920049359783284788109157842978195367072411992608446177653438724065695352325141717008992318271048130662397347097283760606163989836212521719805033849526597413610201492616668818575316329132063514593206140526170205904826214906909845272402226901926850314036651387482374429205431148194691980178284987970767058300639833798283222106631783226451433385410205179797614774451186352515412416692936525256258823923285056036414029639561909849285170876528472957271361254979831852458535978723246131778773899040307233981988559121147134125490994629723513707330519525988656286315732725573173232616188362614117863305202941256344038909087168727908867595123782716220743369841615141978420367648308163261314583249232120363924885194853383964874241415876121758495767954320475469275841696632959262824165200624086993407933397317711129577068163754043859210053599103084092800135609719789789248981987472782118694641312037629160280996001863134340412928082989479010951949915466032234762400235936385620298673198514841073698692413471004919377908571377007260307951924714758205320827888335892926973597170981811297231123955944252213468744956485981586402582414094556012961416192298597344686318142233222511992183474004418260944491328743727086513629052376809206705140969164120654267322595834725451827100957025648336184656933001508000861616887515029963704979759765165132605245769246025688962423036643114039536079211811497542135217315497268912935460411124510728802509408184235438259392091836394891152936301351197974400608482660108885005531143776857703799786983026115520162081074902523576578919087832267721382729479995300171032098901556612881865422130183195908149736532033839613962319310837775929214889811552948340609277420807615984823548986192951296968032116921156483699468010241016311249662967626727624996582295404328596422813674184840987963958748361966961359332268865416394987854788750445527085771491915218418472284135672218623721783432812342990307864073879366930382521503451505709080115517752760583529842407788071392763221471320950142510302978292002992941716439905982463318770325272464759512877545482933328316124638434044393974059873183112125304423073595532740893980638555694865656794113272107941057611126442383305029092323095925488908030053330792419185804803558385414290479097830187976390358988885486728265464770940928434894483856314496525816439957492840407592005862091912995482373300446387991280790599841841256155189298232994523028877075975034428598310427993984883747011397117438352167453045640078494850938758520506469010505306314513357979522410256383891888986279735214086451416661487260557152087727992229584426913201128622965260012683761507777718921230490795858846562210825508685346850061590528892715760584718702895208179888729961134448531314422918994303927903850867331192254218376154303243956636171692606830275006516477533192069458779475035897882016322230676215014664572818433130541429194720047322217880579535183801498087875396699595436586284137834759670811548028982908274493230425763290647988264187847312783211647530566678015420961741116452876283279725456543022737080819777269795120155536302327615859690813956745600076842775230152447282860526663979478698681960488841052218672853945757528162028005762438403906045352427982640173469777155953506308010654821151774183222469759552931522506716023506486934720966571474286754905097600361466385761408675440239027192578187861876554810777561169363065391681470086417972518862284079360272930364382783822851967554295876320594607743435145623028037417458457350634821806674258776209235146441448357485787203374380160744472091825543558169169798462068269932623562590779703580280832812018133073375585851021815964413564073840096468946235751529369494699094619244607250527699738445691303392070797982668383401320460437047983930439058697881647685136538017779122592212557192527317320565240415090607132931750931360010511887958989328124154694446610042351713413109815331929016804782705692634336752135952865684060557414371935179117217310273572091654550611540260228491796684189071060954952015264412356911504826368790800706316661117242572470837095236072406877901612296720154454681275231627084925899223019714354368135053387151158720939805275096327944385872591729731048180579055209939162369474356653406538874802792483965294961677504013249606314394823975990064687603157223317000224617080043491556961123912638615496070409260485050919762014625752316126879564108442429558078647066366997521624760721235280828476312912408460210345594853839393293530693040072617057979137037617789681986749351110926858061131865360833834063081535611103926793392811337242994614361495737746117255184830154772428915527738683785564073919296221100554260787457966890121335047621756220041876296720707472497155720247044583270036235061111930557053622582547695079881164535471654159061853740667892323299391523409347866805687085880257013383487661367788089963612505750134800855462570456160366136064689302770293429491590030606915602222604108521967836212708184629169194776086253946186462132168513436917049436616944083911484033450956533066264744499595466181444846429149497872993314968883209620788326470567423204817357441679269949695087457142670991777535033048149099700985619956529023958428923197749555328550395231116837906423737317762980018488328356931124593898019082695275790516896034220625839099755509162014759351408431476164592895688280406848242864422924570677957049236492531996692887990337701218663625947102282320267113315667245437441381222120856362236087372639765885699823171176271813352669091270265823990911838642362251180196726608045978044007579078835167212747035333600715311940374789256437558543689456811611424052782388919898404135705054290536896622668759930308801584142448927664331338624660466702057984206906083294222433940226123576018968070641436937377905097635166570205447591280840153235000384521354385275635631332690950996054078739217680218855589237137998330471049144931779823265037869228722001667773918246383212959918604296662393919945608434020514167701430770628001168064437836752762360854201288043280117297229372575749462943901498675117371225183883677117996015839049531581027908791583424838440618469490617206420386437280125377932508549132652745681200302343767370067308284739134467779261540798810372778365371091580144108060414942819047415774002476160005797535582429545438901178219709430764667203535471825496657494136541095539585074924293865807640303316205544499631296659352469558803946718119999197205440498232132133650946597393539316218528630802127528895832309580554318395537878331498195163465369279409555429212511983444581901793620161731461739326822807579500584509711853936570522800703811569136106301074311240919064789801701894020649713766725422621730889880088450822589814408558794567371457293127966015097747702515739299690297168839056091626823609842248340654019499122167050682823311626211765965568409160377865201820730654130860159303652836990915894780306961770318490369660791528277157862177856345713105719013900947233906296200122285610090632450842771931014247113945401436617876546293174934240632216898923786893305296066369301359557588370358209384489185843594701435603101154758091312361938442172840499479675045851648478419195461007526763575380422870513796912220383326055011620525510358415000340187726318821062933566485356219440030351089411973805988589775334223551691699980990207052610021127137644396768252756930071176716803527673137883042522739625622890699565531820941012483295656710596978828785238716905698376408968067049513749216907999571884555789495719370621151522714516855395979204238365664063447224394890223466652288089601063960744397221349902593116408434399958131795367948405685429817463207516069239468097233769413923755016002725405442753702506062407237773117032499364020608699361283805849081342485627417795878967598874003300490515425376247180239765817244619095828777209014994332452149820079166183248562723647888294087904146045245330382325902787050176150224115997982032846227371084178537590416482771684590150322312690365710995335665190633247414999622952695521429209915505863512474963368189356475670538247681842708359090416483053496386568772057186078352196766289470120772863207084858807638475552810981097170461264637956106825475421750116643974993026753185400876463227722320464222875266688006000494768645780692980991723671467529301635648081242033597002268344257342544183931506028356939143792643224699388375123384157410015237159453441036051568150590423834541847628015235499223930457779717364141930566402912213180588167089040178487282747224420777927521406182669941209327097779140463582041587323768181705568565398553497573723125949921620289775194132788578551154140454768265274353214081483467832733104122758732352092208895690863569527363918639681634192417507074918908563484511296506497265830479432172642970502100298574213534947147529128719369100742710468022624461854272329376323411843070083848982715150893068459176256425684586058507112380043628239991844719652513627269968894051449122249802306101568112102758261726052089662544538281250209245452224544030642935342651250349645055785265399822467649145779192519494874120163736967780216590398464261035396561218017067234068506326127949811947631543010204329639899966882005348837268543266599029460386067436771547741069437558032900732142590411736578282133080526392162081842380894186228935291555992251577772681757872871731757992806432444211219698631900033021181781989287416084465568467555152592940182457743659333901858892179627529478923877887005711506482376857948754915890097562204939656477084251514532679469574469573047780499692814176571417538340181213340425758495631174371981698410442059316740343143937630279757686283944831173662782929850743851095919864561097391846282060267608704239291280272792549948601782806075405255461404698181917983705055291568730138148839521551496889454764672367010168752143214673042993036035774093929729163108207768475802009995361163966846440708291774013125886963569362577800431882552516088135210246543910127904375153466647987548450072112349916845314173074773238640197292367273948589197228525339947341970247230195816682085558092382132070330443079342780497989019811347273760592299232313397105716414112053977463612694715961326013383272973942046170156683278777175280179005010211048013759780262671214843165786761641670150189406084980681786848385287358895710114584373054228142307621131180248474913754510133171483591142763985401242365513830284780328471311831490505864210464934805251150632935280113263028804831568647578323544561288268363164426369716415760174040625318888770002739922096442424810441749209851398280109294499273436950580045806927355235881130331064062961460400078663601017412066217265923463270284973785801385526290303932031114483982022370320073705267869962392830012610116704516916596406220134356696484831746842464186577089911641414484829114168781897456242690651253730188191768120211239587640327277031346465684584088415274467029551149900284885006444312904431568800287599955986318862884716865755443021805294569018647786439031026557478641097322650876101076504515382219318741953826701466478785270336460389933190107364036132816777339976098607196841255113975316053314042723348288000223961144916603089164391546740372680878246228561592495421519940551814664984148199112383867575570285908182613451275406529776263495197182331386272445665367850421501512141698671351156185999346026490082005708132976319933427468248077858741948500985307086835844891473849304422717645328898502405730543359382612872242341160043270987032943982012817883175986412211105147766553674337704343978062458007550925859255624285202292306473825451146803223976161103532054159624857735878188805267712312828768268201912225180967363328085993797125076186863331854588871180620806575876476149039171198331246380714696667438225919731246741752755583070673714759888119166129014633386972429421862972782789308202076005700298414681763586888021493473538840547153707964339343307694414619317470100473108938893434719222596463231762702577316979388056419905787498825357850812745747891745751814456012745776360016536177689875328110216455607967131655018058750729268137987764793278710592389887079651007632157080468998075186040217693915235336410661818288910279301918631817996567405678699470870958556813217826545450759865313688735904701607214499546362253130128322521826349484286731444543562935285177821279630342884754577551919583624502995131975110923171115462654746723149150807330220602255625488995478988774676999839536206718551072609194417368118084113530521836419877713681795986969186794805605655379285086488633358465294007581805556854302497044165655173331192865894039941786867509684270881557084313822332286656871843608701513951861391065232816517128650826116247654979722884872259138839447515594387215090284377942209524881623371590432223183734818536237513332703912521307444958959797371808999519992116439423408807932076301747684320121223796245365064282401786390450266048406718841665665435238662560311932053576253307187882890642766994682441972607065628697389880769017072154668970588897458078256094913492583373769221186106538026862933741424718348707047730083462452198520296605703034981343472335670407470937394012048100782285287174640087498193074229599660353392543188823725407535007546612252316407236375460231225686848369350607599743954583511021074391466442479247747819250012200265536347843021545712445769991218472375970848792561692722429633408123679140949390151966042332085543213535254822291231952096067159354612112413193479038426858713784894029043226617898212491084897063265533847527485589774766702769798310309515601160996333494961428825839413435855654286971289672111663034801382414730616278417602935727651970165595584391858243379284287341894542397194999925407405151481880269633195931707623200720190680247492460827054533212281411214834365674032848540819479991252548442006093851043589119234752699367458783440131225580918404014727008641826621352913138413969875409763686467559539616556284046933209186772495343862388433767239554810713689469655038386953947760970831269103757507221274558156880634071282682434696303770318167052127743854313873565789074654603460605868156818719711503811578934999310492741893570242683837207769630279777164189816585695632568002736356962769516348311343446180871021661715994739108119455612828015086263670446468925819289054208313021635764623464562085917227847314993296574659542087803575950818311479256391799692024685504382166551738855116483991841033199330939845120234056106097385327863617387693288664493815152760508553955442347293485260766487366812647153312323772729677872675921327163858480711042343824487343180907297042595359318386786951315057300311998596875090506260952875282318919651368561802248489149303338065938089066611810458538502770280273678798257996049104092824974475575821822057678821329801918206984685577442033519905248398810073375329096622121975185574598586353734607516241194026330594123560101958721984721039538150404767661215619402556235697300258318146827275632195066409805692687573856356845951128221578939134446543362060869465338760702331787750622149879311893985217849159443106864659206518774124519292269831827278686645797181546150852485602640612043136773119188701025025642539350926238331870257869780797077468819647049888444644765815128370992753392964543034166168293811834876559566077842675082724667859299898369193201036691191261501943800208736411493969824775559222846075029341786761076542616119344726437860755693330193970463072779031838009255813863177573523948494037587126766433780759694330471483924773204469809364045331972195116924676463993666724673731701147922287892656440302319441104128010119231330211069583356326845543979525161600248075074063280774906992013217454201216126699618488186509747637473866517860276685420606019439923559568658304718682976936867873660122876423725399683509759368495266669904867493344106761391410588516421229043831688292249161712850332393526587071918888065043112255641360806502211610950484825163691926964743478324199868652596703366696285616663357511734444930208884380963734982286860721569371098622012022279398314438845839501387150744218632515970191492479070641642026105711180122739985207593432134571672837298164387902962936800723985285699533043685908866553627713307027030388875410958133561705072245894826021043172893222002565743800067437890191486475938377524503824502025714111774791429463117289764550059893621259021410258925202001987864649538309493097873418679977901894113748674777341716005550975624571930445407961018902769448499772092396563827043222941085522202751016707105386665037204663620505909479145411315586130900511469473543968669747798850333035097920199282081914981091007905095168204379209793497202592565899269571753163973979800860445014161744556894500070393735292434731425622949451452956375463547961533874048592797839125246712083268408118261538125855705040468596555834029111100026929621114709538458693551053143363241637016126813255468241525754567155479490459245105836498575487516711367214132939695682685565455834210939487260617548676118848973506370072210702359065773604140916007358593858226112227182081236780549962919086785687683631377424963448417871686655230109669981001619106910158427352851412230009062783436218404641035296825032979488270783310849590915633736233605841724370968707215497362253549086539207297957341969911082137775915734085987348815075581770563444269079497491178138459779773369856631927122903973493230333685193645379553538501642310535659196596227336654506852414875309561525612522583614982504334225592041642324212072788438708131865007372434359162397021034797898097858342955954629486997710199904031096515109215912106159143516412750157921501552416389439791777373989472942921760826734049294538493808945157557340717279307521147340458608614604468830675479883526693609159322228797480971117639698611442536531489675178220864748591122703134188478763177507386789069444439644370761523990213667139611777289739941965117133309847584314464940326080790267491959964336597900915019674661193240306710887313383043684461612276646910971185380299692770296345327231832981839067860057256729862765432656785886327302492785377327357908410084370771451922575616907569609780070375865841775067022794816418626178636945608988177159267226584885141693981451445854459638276728850404462154017283557965091278042730309504118577613002205013960123795355906765486404048166316266034290013144852059762437154086604099357488154341921036658558880612223113564746800983400184455741352786594060176090460784194469310055413122667275513390592244178651784492260979562565773239439912432329965134576931531621466048042770860068084107970350174456035950569969872384857917416617613760075824346649618425419019752682166518481792889267321769174640080054320382700939358006396622646965995349462832959685103629353295433426651803625619327088084180891003754672976056365331042473642614720447508670508283885805940354819200827744216674292853875666390243990964355837141622550276612827544713526567438423480243547141529231271835545445385586280761135833938506889152553653556848276058036988807261648454353365471001848201105896259483872878095809782538812154674660802339724921835175556167744339202717494007920548959850975913604062945585355629828753707454556963228821703570097619890449460081988320998488364439486456783849034155047886301099004571976927138449733565207339352619546513721213791262737036932524682455722073974770326895560500883015733977672045408327645314458077142842895438117625773538685101348097841631286643563567390214945748468127767108374526842700731179362401291957774971249604080741276606434945122102712865033019887933716865350613604725612602015507707178060032223241508090721409844707040695944063954551570933918607431554561249620798446421457130993549747225002714675574303728917743548181091674505032108641566995843337621341218664010642414391175767755237169348480819191062815230565712726521281825269533108743843013793291332050694700569220119627668567121284852209027262057998989759775299728821343304138477704322297108221681311555098354733748136529496816864310061399927793504396499905405802127470099690266538929114493389420043749068122955318816430301645521334352269081354023044643050959587667920739828541040510479547740103971540115806269414748788296029702015998800823250277561546625611989351586316969492274081961376091975194111659906082144408418905804441802781663865728227712360226338632157975876890686224341843142226146224071239334823960198989502747663013378328043082421093576546942760112047268950696721234620850356979756815486561280968899284352522570467431352706938722238283117306113187696629398416452726686854212145082859030754314332921216595734829875183596630894553830826584653403645894570476198701136569784271440477925112623752686580572047336768015588954568932939627826595859298965466233313469532206401876816251837812737829374493801112171781859678190332983524612777359283451509462792974033995147190905637948906998558963346413131251559875953159152116686779386120229612071192557371202941208949649716355508446701964562937265655154641331850427748801573686739133962293568719086998002857694190595708329360582166926252747088599850920516126954921784750906617875642871880694312820627801860424304564254945939460075897858421839230406543676750338330864445886305159569643518143993732600075740732881399497231305189285778558999365948069870589511913121060120707613077789643156473474475195182841035322056294402188464820031745537700048716154304354341280265454750945306581044330493055531655880358909010410461715273935652036617001307209150333486259091811376211782216638221270785983128243117091505435463129139477340518241783905218375435291585539299911930325337565348328907381757544530407794970459206154408814263814086408397388096804699823611513132430805403615059863202364768062331501685662410909573349519314498286315311361957699240247645670094102931892143177710120632700296381294846779580010090215998292481244303244825724287576128679897618478021609871076222655286273711013949594110432306677442265352869875450630115230837038575855022410803092561462250643705060847618637353410390720726215392186881887499499479984464889787880285562911368852352245744465772863673068641558518077037496454484719492824274201160229889562712924267787333510451438222359655815627289779372229008051560406245281032108439500861188622722767907082620511847818783384076964870406222888756042420738181926214322984734166105672105043457678740354878685173961856469364521430430275035111260154797311757091987072531250692962769610014831782572171846666570078172514585202675576115108121306546539785584100598591461477876195546714585229461682242503756615385612212064941641339921139592287073793485042936415284370481063306335758611200185889716125214113776094220817927442597162180260800230243730472308821846298053910172152549160685561146706208529173518222666915035314407522646361449060541339552822346767669534383227873540089800736451495050120426767089570200241649883428384896905798311040711999727927120231940915523220729533051934216152927460348849751361641905461368838288707471710995491721069602976193508871466524359280154187014088230982908348851987580980172158188255831385739685467667441860178638287600376161183505057815401528806549830414533882738592493149322902937965442987192220477906643685247390931757927349976754419680087195035521904852750114909760576842461771891743151800046441019362585425738938092067580132344286903312407217947804105360618045601829876698343468375581359791432070498992483575663131844050289705557923598533878066183758707335895701200746962107977126171164452243923586571428940478090950153502127646379849937886972889546375970045913534514528853283171014297725587258879037819755279905768260646306812845824556900157700958448592260450764494752684421753855224812088733282151479640442303698095386702245587944649032111617572408250564707832692519639361493668573763598017090602010749232540097917596108010975212382670183141204499948954537021780868598049157747713068080943193557919407904531942494410111946466668443278886642164893395778571854327992313367593225971618694022824824556899681889946222760698301684857493991202309460509818431316661232901982521100566013827384675405034448745153781850058063963642007192394454836178792404943990625545124373509792654787139630322586255000974747478708999466930199008683239594673660707101876867028776422195909932380754714360889895841588225147354741882855653087641091136409919298109191120480082381004554837788493322063695339687024333486916698123357591031618486556331732638321689090280060791736941788078541383257233878664918084134954487801479512551309103982038599313329902945373778047686698814643402529347052209195808644146781979330738596645904630933979050529044295716583169734117939510109549158524216803754705893839938576687136371408333616808392230042838188138202939857585921240464480712318322946761116210025574380145699125384574400585488603260603750016679810937310002404712417397852551438555296386223215496252766497560306754225180460921514058297931088180865734726597788350091482101084146270584467443211026018955672360421848362116602552380203846137700674469220023236026887880417909865665129008033746240878470947385280363736923806249863587552208631385704645456339145582449848057455633257858777476040818539045410645000307175666503706202522962516009688356206741868934627883232825135330912345742812777771900936956544880135416995026121026247417506206106324424886580345674627785062571093673090127238666007406650806381605442692323172669952299971362380664310926424939348512226535525978385359046710957255710872233156910468500959420530373078801996428351996824021764394644638812763018196766233044924996452766476427805056702135432214918289277023200300869966703648264544819188753436379536662563617540840943735664147807126028618901733987904401304893767694581706730732555775761718786185195543148374099450462619214720819513240955869283800463256271304348349199837023890903132803163475990799181940642798063892349693273636211971072176981044798051181246221140210862307835328808595173323060833046419871488400596107898128210238421700287581351378527891141483916147538974234482934203072269058529555665587632759328637295015136685311273369280498759654835316902274874304940004949369556733884551425780290038893720129766670051753696321012498042162578457230724180675466402961314831597357510207299406861080712866828780991940662423028111216498901274491460362503307808544869827486103936424035342693288510905056091214029846361778221491388828850690143710880821219074908954420687472316911486583430800726113592404464973495856909134434178195433353192875017492115997077065820232735086048736289588191097908367356574943509986132788034683610355078978404761229735407198907031279254277997113317503338657074768900562056840509631234617157873328279402733745705379763294319327223985304999267312562199984071114275237841341548545753721429633988023767344685788993960762500310780876430313468041142746056037509270907470745704292009333352467613608298072193123483794223522725719740216833661952869117963174448581110651920972713512632240843549461319295766301903793998566832364187784067519620326690741088113708523524707339877891011662222492940889598495639754434531695476433448410471779229805883971084283439737412715430637367354478617075139226616366703911307142930054501562516417817836625959854083862295638157601650286418444374556743447048682025816253299211878273779743874297838501462265952160429911235169376962735249079865691683760967695625113599288206273105311661309580590721643788189130839780438903258250270493722475932919707807213458623093317036352035347135813030672571353791386952192972014799174756770856345350689516850914740940906584283257357885476848204397852352653109974394575574554913248670133223296772719921417515584068854374906540294045012581074364411621550666959857585570918245303231752848821247121729144268770150876641727883383918327909221553184082778471096381535528163288621780245564583128284010917957327754503664005789978017003496037449788636213052137996746361597279061586496615714844515336249552290405790949816228905786314794253751818955036257754081176623960740851257349371785174670173154849069603570895402785417540698742528811673936060998283782945543830987475993011193315112847465782392973413827297846422353303489984657585739151361965806191729909306541845038501806026152228618212597941125891853366925378574392934702924242311340170999190383319802893290035057643935091424490240053653085602641009871974152759426327717884830660601050903505925859395435818262801474860837788976438672301166266901623957765830209801748968394655102802926630597839898132887366335640549337736419581028861748564775091280056020924487931773891123166345478618164092095197697620935280671006264032078558789605443974738322573652093447319864147327346138577888840762251103208591145888658827420093297934470505788742376367286515154972772026937029689687168188684457438959271203506817578618407568310127639991571632692830324483885956555223987597598234421951514887678453481396579521888066588405151464999157783985061535924731473823234628489046512468023367437487692616103485448079584215488523143572473070061269093855590985494340916742803231426368358592420646001992108872738682974705454454066061309161068857498772926858967194077896540900892318864842966118518389152379533846032496671582509960164628251937273812782827638387425193967238960402852808098893577027394971056012021185230636814173874591024662082474747245887901708966338938409137164709282035084096514834500250406165678843844709914350991739134304239812480140361438728027641222076413269259136328131316207199629432360704115968632142436469627152586116201316317398926139948906444523476189940690545243620242022058191167871715865665339840667802705229277459512661887381507592062679419841368552207472399716145569472091180117775205607362843892530736290503100319491339739354846243975354006493846850693040384584484892245510352255184697344115088891184728661876241260467889751858126252215933714748694169993765758937495432478135719546142604034807492447572643600875285341546293133770568476873112062751761656107255610232259247073789539219344266696239476522770409460252689374246031317046028182936385531246592225485477078471614774112012770065729227692856542835790097523017892560774961442114545961502030893118866026595837766618934918822375339928608104452501864465726588254587292466372838024945119499727268010804591062292945045756711999898978446662301524803475052892588284758838255456195592431713827310845657217123164770337261624211070032248103415525728024626597485268634241301574856818178518039035688367862615357768183594494900224668853272990331154503896502393100214613802207951998637999005974347592208366522489940704777574400271852848122062243193628413090626203402847897693242691630180446737578458865422107255774966571954447406809126428397473157404953516498554909274195696273944942718461129430782168936649657515063745248677751281645504584678855758557393810772846496090406407488404213084618731966205301838864144172350252069863994028209573677196881849748666223141156794434362064193671922406829922804118245381293173374451800861941351008872150213627271523504271792557003230564492779864849599050522259907484958149228223268985327008703734600170244688427147441047760165495523714377235796786101122930638351841705910265658258269648083937393848453899054645827455672059931878024046446112462898102785907551819740525973180698121244172453978577046831853774505315187352142239203093562642373887282214810167567835977086954977512552736819519613876102381954814031684096629283422305728492755104593145455138868639917633078857761255512423477962936197737062700550021859514940888821931997694544767676027490620128532849152894490317656259805290719387903695023658701820538835333911008933372909216127749245662089879629328333526118130026332947085296781735002781224956914340035032010417283408495451385174419979112941048044904619107726446942448786650798897590977211506218501966009011276268224983805510374727421736658025376532334800899594152610998356096086586194992690468529075734502302945421750418071504980711547401565020796660307193476102190888173711191522883709125428959197564173382590397467762846803042187569751114325096445619207503467331567386269987369281715869564440270927709832348100908099484622649963144207469887884616281248206860092162687597065119687266787292158697803075668766737782404198216726039461993110301496494829827099739587058265818941148394758648586427866140160323641552793406658880985721462826874356911515241710846966919308334868762728130239581643342446589876596730045906372894079409210116754126189363043138946222383065362998943619174650833882991241456662614969663341949128206834576208249752623400078658795108568843619452447069326778469341039902512596567894010181106863789351783925131945126253156829446395840078870468646233417578458126848056366941959552638201721029652706871230291684229509557439438032914484908363568099921506005425259150274290065405070112573660578983166494331358315394808714943550090543829718645631528517329630975602356038089284708518664582301625424734452699446733243267192569245750234892060127278712783622633366191394528320358506583681955380714147287491131940366437977134294635257269715895363911692345106148029533578979786744801422341420717804488677165311142871686889173657269261389614108946617408276675296098883672871700542757531830319801371454362865313911142233119994989502507124582644317834883394864767480116272590398666231475989797563169643642041486261882987998519271626138972334899962612182287498060580044702975183107395359938686054392283730039316776066131585309138730289614509479408448790877214862829818614913767804486409409075634030338301502076027127595459545196886215623399053922724739553580052602812847619831140784661242185104051629093991400716379880134760367860510643545283260815055833582988405736022809406440957077524807001554125484678028043021075368735223413320411065584279898921152532409524999971196544728177337530473605813803070805186557673210609584127641363621809473247156267512394066384797544720150590228289522116290240760705892576620071343640886287226815715071910850146594298876571100198794477349881115854130767434322965190687110289967339093210615826129395310616914499694295397570025352897696162538712075871044336114913882901550028129522752224035372680012492943755747817327069073143437887475186989268442588259826947209339477921907858571286901415668889047893870074794361710929895801424441484658202036635963373738990289924835548628125011522765730001470304777139887471155393982960436862393333476972682102240290861033141477977354093741754683645132147930620229483452711171216157062270855234678212234409174256611763506140787388618819663252758177384464035326411296861191652130991626440837418818887254869770495458302146598407561670258003680792236277148062586185154129485965923296314685435725978569791335347668646298105964989927716677343586247710596891864816660528649166611034310489166591432770590703009569409944710878655255986474386417811114711478190975280241270305040760262718807747967913329674913333814069488166445629253553159500165650274416551505439889764178153292266631741600795206697963239135278890623614127765372731177111586827312767352561877569647425879833304364381422216133196772557363592668242731483806644918070422756311416579626540070812071128593762289248674983939940601317270845141244796816978216523659604002547159647881002485505367174887193602043131045619448196876186467617697975747521692572897692723907224151811718059280047201862857298624512660677670923811331764907153398086832829400795196361680768844172082412042016599457234507024571129473823918877955151793805340166245229219274127773183850005617142488481018952771422406533471999053729207718730618087950003159179863492561727229450933633966745781611747214531590082234449308674897348562137212451577717586644071175002292937475212823382501016228550389319216555846665657249018216862288791557437686265329599083879582360611488650459780544883781318247024822227344115434801015343083031076246375271615679596887206588573933862998903178380732835519534059431757092633547348614733298141910163638041539064777079557285990294191466446296663765098145457509721279165172042723916901259677480107735794107949970551197007615729531373310084530614735675125601791279948973364302081958262768794388625006495844776471003581572970369893422941901860495713171400914565559160172761718965915814507151072363742021172399155954540507782118282790382211458044592058395117156690429092799790572581376572055912868889706007283747584226346306230126141456078627471773474973645171874477083109333859951049093374585031530954562763068377936465777628511234800777069681019121148333176085162112259417905581716737116054829461995049916170976350770044613902602967265085294005627870689184860437712005838142149872675687405636347044726996264073695290634366491427193416699573053703815270032273443830726867623631426819163216775639869085118012039299461267125363673730162694394577681074517781642278400362460234243282949516031935764484056695946836958261361560050012726063410559149654335872457413205567689595750470261038404815806884876865064043774910457748941347225966280410095106574841869152854279317751780296410214583130936899729661881540798936700186167230297673984534444503822282312313878321130913240360756464658359065366164320391486119293391243328313440843750132623333306314666048180587437112671957637624855856533901095145271823839146920071168656302197631495937668409972023516366285357412584531898052754638602876396459984519614873571628290897118670452107768964094008767013217127984650637680290452270480341652529755502448480698341119371636555136061258060854466497624884246159577131464010156291220790938441972731849004313469302780803880134649473919738203471772092887292486139995966592980875086896814448900165562104685776017601221971800538711256253732205859704507496996082885401960450798242204280664514239665559499259570657228655762009827044442630223309553534817758132196032812270992982124319701574437811438881036229739171582458409511214964076603806236181820721305099829113698787299062774754294673259734941145376707060537443564217787458799262322328798808901282348967863141602730704765025945980201025079812599173232640542691126116210213159616666236280967217082260291322471956888062991775766575947659217473329698493131902221793543972417419204372524511900893669654468777971560174901435377783455813822261791809074048269609358698544309871908791556687490377737015655255898202707525991701688316275304717955735555312695645442522618060619123261832694831661850670009750523427659271537843227266231330324569826174213469714236799907624533491096760146397529573785824369739475013194798188512569628693989140533275468689944901966444382879796405918491159568032722746964495233709707411198166378670448444567890015604777680303280766929468812330937248242881062939059310641437460691727923107828720891749983732340158557945222591927424209823632067974501823910498138877538981748407981748334120170473991473849030796964895191973014416939410865088450131257734422135832679971221740951536940352090191222314104451296208616611885794282440204719495415471719032965684397008445180322232308082144411286623525874669703582918289339766195021201864302951060869966685894896657306057033186336904587082977148116211898900059145992899332323846467167157351907293455485704863531138623802385462565949090673627776411155164896819627159637122441823175859665430090798939682592321589026591502749342874145529835347427521892326350034912112548548961340065928838067215474017325678678846292830150705815717455486834257343134555892757557110105450086013971379537571413506059100857130073505944660823356771409787571549439479403276157502452557539956907281396483614627316003683002640594462998482508555522466977631071285733123247082054351315303351254129339092342985017763018101129280334185968817105684961277341780115953499233510794834233312027582968161168962923900374173754352272426906680022038266628275490199508602454779401338456705264098718101551392523691003041362240195670764326151650651304848987478572616307566845356758962018577168619661370263934654203480171639131363236623265946801984005662124229470577065036167745504008936813617978939712191208395658697775582721603900905023361209530451214689485750408365698220105896966088051244879238973396541018774161045113903084646972823633697895603984091666610930584938929086937297111533592985098302310502313594881764920003287338884186665607041356431890582444154498860167156850637662095384536179775713986940347136977436971098217849960293733028161972527508067236260961443752851826702211489147242010655805196867596546821591543552415975841353733654430268613752090053404734082149271363807034704384674133242049284659962424957550431198677204798601613474979530706797812517228186500334029950385173273599230360500797956620473123098540707226402946781276364114135110117879264912467480728050177223061402579955703559710848220687943650435370501361338529280018884478138485811721922811918479902282692735693534851004623806584307065753221072561458221861763786907939299013238641345380744542145921189372363036134204434332085385867790116432662201804008465651234562818005643483361065579015235508405905871322943715032874011938091291120284342604690003296815052605231099634635590329039884074981043023998392098276675244409137255293815652112890615766056478388685817379008414983274398224981083785605771178725813060324456366141326677622458220524852676403487017338876703413181615285137399583526346351540447768343798290492752286958044515870465620367999262989068998532911104928724751245382151120397987341542413939713685097800549817266431026949962074459577025499683787400974714379834879690980192253985452019394421269704941221711603433024969490753721338056327288716930691403534054489390867358960700029373111061494731299008584735256933746807377161994355599009526496805844820778216908363085056213352622677221718251605213038104317521810250738815723269150587783931392669766395256445448416145738820787818816233319847678745958493124460633028641334076031279322180381331183616450663900350487276741796101782440357313352616344060216694982524439237191945759349466780275484320318507788283238878571318546352953650371353682752044959083170286150166063870580627216729814022985152437255560043296168059337297328612990167580610148549439502091837717797447656288305592980095945505336857722182556072662861841512020081550016676359870389028976218324191858360217823675511576546379099191081693154599544142497641492623065679286663517460805307784205136677434496577070477623316814199775093471898551637906512913754272843583197718963411498152872817787020822899047168047125533012080159506396969785688699092225001506140322935515391027893240768494073684889585961334851773308057804467532013732377624907353804443523404860280726652272379292716122269956511796463568164376426649006632297928817577286681958614483128358961404845185240024382689942103539592649513532897656411845530175777406017765987837392345039258539114668188353725320365101502315125920223446183227742578789357046882510507314885985627998226690657546928716196450581066793799114663587126988052398887255770019939114789695630029041725712935973914897984199236207550671520894930028740563530368286532649366489829881117304408777853782829654163598607812118499460732947860337375000207457795423016916088244680950112940697609500763633629712210280989096981953917875471167969927174871686509108227340593210100294640553593968534619790763574065346531626993369477238403946847512965200565902626797560652975235348987838653560801545409690539534751508143761067334119993212556896764544184670307124785700871483693217515067671516133918044243518643263124054762680900396513082720207955317221367319269940537418275819101554651849447742718250379751782482574729254716975215042991560487727211565151812402850963018506882855654220466167419944840042436505511056298379691865999843911621435312057187526191223290199633346973985039551473225150129075854129168211509108864331422306484547962691769905125913690855849592268313847276296718398141383176630314055057802648980199647628158018903321562150525499782750232067951289882548608865277108298879725056078165479096705368948457130239380125421214766897157632563338438742051058486493374139306812508258332942680648692887034078055196484623930739247498906533049703803486266583705699856800891248397156223503483708607043461224139886563259018311401220245830774149913424811882869595494025071932017395167018018333567858016728823255797337392985573356882550061798315789126569100280661998655138610126689871284699732452601207187188257050134459288871900174893940705046591911973306831662137783246855013072154536861050411189096242371775045881862313892164138883754055406790698302373355160533497957323087322322161145758348431066556531149687228170050999251346173368347324180022548550978316057206640284847312359679550792697745804307838877226943212506940395492066208284727132832224004941860013153763202665036502919645817178158740845271383193101276821989864274959362839063889237568839641189606197218627223174603132031485075318205529236448105234246730513295808854780796079830288416895571137089307163987508988053697890313470070075577868492297538911302103358483752887197982766169662388327953987053798073276372227535479075856885180737493833309411635477917238330847642227973828896041035915207698212064085887420044816242121723360084022398746142993296222122988264771352222852044845587467592393910532974439077898110213990441659748810420997215345106315521012956048930459633482107565138289786738907599126308500099258542808227367530537096413263496087415134979867183710443980107146953975293223643526766571687975372868250813028985805660819828360994579256684637404525421545271569492939111855859873646976089329385993959947060188228121753286494116976770155238920184540411934848807679434430892845573581028558631871247154661827653163364937200687888505449730038243157317651356547927006436687571249703119883258439506263042294310368300038935052481131680320991406825831904989642309100788697103163990022699469617621900766727535467367926427873565109249571797767315073807529191626501324274727706773740597804516271949595067867207648066815120835806374770522061569379155915722831715291693750879777123072676727090848563247108894729662034931908361100472394649153237137759367778633879791634294392124338936603270329777856436725260144295794794394559612873881841616505169105495962916189393981643660048472428082557671195154507753430448933173802482433988898332379389791166715347183511860192663134979107931229637757550632606077759997119448376638600093107847049668354986710915111550582130040993118031205795325535374790734087182158000283994010891627977655755923959166352397239128438355631062939192073782783535009530506938023642835582698740816542827503987437368051802214616123056248987845105794250578610127253001273321219768571134474267805063930890841963093654022866577655971084041240610833065058884597100024469050856877775518558204374214496141420079685022061370900781387708923621192219775372885817496361585051661462364183224747277851979905629245217714114158113028814903924822699978035746908071575642502639694292810539671213334580006250379397791676007518635708590787541551311068754968615186127087540594461455762409992653250449550040228194327182295172117186440911513841380873146853697617397857892543707388216378698997474423556508721386595745780482621955373335081812050006434279517428304332904401862608224237993617715648828692646221830930596442978525781496850215082713827086137662488114689087578097375351768058683477798432954501493571560988879954398679191904738628309056047997804140474365805151205957455946783486876567235073598593593774427832120085408236684498736829907374352596614596714950662131436232644409254417073041002780439793643796492005614937824839482464565522739825230372971846257454649133657885939723793272593147845316438227211916520553478725131805474306472936771069029424648600697506587124604835501580459593703986231337439373878515883294556678127214444205561363149965505035229012319498452587367936782809522347898659409809295366422843181090076689739211728543690538547627595127876724215855651466485202882934457181845207507682279390379505172066480047899187424620163723162857283840928555250481002638103486071447990327486290351884026295080456096534358731759318236718372139683405471014485798496747810145249978634750766133663660905806972879594274807083649593020313951827831030320555131081153967737113601623072078181979661674253366067455210608225389308125278247125077789229313585679347604002794015785825084438533479952132658095832688882733427263358093499902639271451873854032491814384080972644256330118038286007724824568246151743420918296936428834761355727202639689058928697518683443298000704942129488405694067629967789893266658909698266240903233558399045911152396895893034996507601504155961296198821499651463855726188707121994770053822763035517038282237779739255833002346947830280814596390516692752573170968346958087366863473891659653071343935362566925692691699246584634778295558073196259559458381927143045521275007267438913015463143599211354287026598682625852580686288071596878967515861905364385981482171280855116778902343212450251520416923902921558462036034691658740654095442009773643748838592126712636025069534746354379319925038230112816682310212802817899525910026820157949360204783610823871394550275635405389588513487159618024823808372371889880620213269920128617677008820074131460415433195247778168672576216093063965547230745988958001810202549057427342601461337089532843572093025368034940711335124593585085598532413955179405480472350907824901789087082037342394425890960608327078771028696397703362923603464303171397829568857308174834150537366264759877286609333575384248704967574461345794174485633084547481922785763346943021520397272847537076050129737752848873626134859380963965647047206355230131156652701426952697435018207454152773293430916663226879288852832199211427941161922016041866883447548961066497527234944413010188565536940094608673872582966825319198361843782826652768432270596350134102635707027987902020572951994495564967959316039021743716720718996152749066996916424732457447197634303243169609955686392837789250632000110236252559232970264562972360970542000600224920855607787612357380632247391537515625779090269061306785650991332355964370297526059775406967894831004451789818865217311278244963751375541180337338440282992020255342929244917926686605330481021313122652947287271233283598231901521766103180880172264849014816553829854284720624407428652358591826335857142651729533239483245017452021417853694792830560472260565810160485445764454073583889726619311012811264546008405426610484343159991146864627238590913533075519207596881897044622140929963017309680693453787863428377456699402633286121742180295901005299638591291249744796840292649031197287239747461946657526128416379433475328609126731248714016959291608621818300572525529716349720643768624926523830783654632382951867278042032504325898750599209854719564742860154891237487703204050742998893631323877027878166387373046266495089954146795157462542286778689794007194942217880441498574164633178583426572843742626490910548359837691430478981330291542268048142101834883704104538245325686121983936422477880167120266928326091314346428628401388434341939388312551239731242022857854361362869319034122232243001752698265556716720423960683471326424050406126224849063295842725818709284568407241921869537716136036437174798872908882469127106154961621532141231319110530381526650777291442098026116822651028876078268144128924510980015149983232013221961319666054985317788630690962094318286597365294209451197518152904484881849135010847102856007613624759122395414699819954294717462846336843905372777880685639598224732678014139997414067679633971265483578739368793737174897164109003959764583640824397486545019794962984258001683726759264672434763135182483616711518857582491172772643336064296089901791896279763446147454239912446292243928541819799748168859290142572401537201048520710183002818351013069202192865185345809054596107761637659541552883271520626051217710079873010852733721480559945647699562460072239241453106631436625232955895806834353882903666086339399075165254218353411965426057738697100605694624688408283679664124379584789230339447426315471213738217915790749852747617428114944961053035863123107662372129024343669669013074713563756428720883489185213853091690683180909571413507249168260558318402894202054181344786495585728209794173806723452567574526091629735652548325480392940770623062829544648289534965671864174993947717371932698546541282258166001083150538212546617853377263222847794932772819226857833689820957555044376806962787733995836616758533339882032773199176947750783336525576551638070251711036439302380957139463894248303448918358011055224391025210186477511529234074381182418542107543087721075787037845476216449732972725548518387803206654005565788432552008311605421226643955759329290537412255631187449711186154138595829058052377819378784991092769184161244208483277388853482559395185146008771365826578298317925056416222679715289331241398055769532070586594513015222029545579063991741514081103518552135934054601691560009856690776694524914553065602374145209484771107159451313010752470318126900824346214383175528721707583450815754896145248015548944764744265326819626224551570105839254271836066346611799090731857777819698254463030998690493606648944200370941630730720368773114891999257028065479754784435522271024103060000216377268746664728441163514644986295020675363600495077119568055782270310313473862642162101127271855174418538196255419080495311352453892301899795824714782502959100612572384479552352079620868144783325060150929502596601929086464940072001381436443838479091491357468245003674936274515896088984784413963059681505261064610110324408017718151295346500424089620824525214314814962298354996373170718565016841301815285201998997116464248741345078033034587457678043093405696263725894315638941700523946541135620490456390392980993608580554410567157572213075621272803011679459532669495988670412059507670315845968489998342147656466430083976324075540721834331938084879539646476748077068653141268042330035830829497961610826112585510676296330763892672421014397261884366234698458100722156617171677592298614699583541758226583503161511912202284287417009903551644713478498611488885203189266565598383552071691447395979554703367383644925464577786312386458212391082095526383168884601239128885121170730632624177049063270219523142611788451631279205245385486887454663338284415253423093142398779789995419876570377884688226577284337145166644139056845576622016578109692012085784978660020431274954572598802667704922040319070364516050138044972787204274452428133545195754109293142263482921456376029852872309016872340440200152079776614621013712707734790400616769689729115810986953528835081632212350955326595879860439991368928526757937053749335103640565675735329601047711371538993851877369377674888903326472960247355318815734296362939295109252874875993312492258066013972862480970156156796642780666069212447832338613214894834801067212697844966268255833403667623818581162294828310345263076966134193030054430271624502355054206620691198607543727060952332650350798833230536431971478289806871167182082811394296678963783670888713344218583859035085685078870247536417306985293629453824834681439016162683972760997170323558539675157850956995179340606888828939103054114849726559068377228421202549568152178137677420534438569426583988915782058098602779053469848390508074502051572248274407095793540454944539129812529260494363933608018446871819552538751571177494803907555275652420685800200213314813801718676735170911659290043000436740708627192035941168278728101336488054524646343243100234412480937734475727775106198451648211609923967680482092746328764670985630192931480357225449407130567575085546804291940564491388225700730449511942625927992468435943894375288246388955066748127500745421973945664119315911924264809290948888938708876156579611548679155764041839151004196366404781021521602747427544889046403281285205730097259987435090235628106012524056943044820886975784716417324003615144896338359658126554399141413240438455018457675604194359533533689697817862760857377127633688040214180173136696978808534664977945294848474830016352242531937894393569746756211108777320147827186179250960023583590534648917193556579651607304308364854154295221408351263444931429874175582213034785186509254569622737124336746042489083039086782425460711556000502434010960363972220994344832040369660563695004805176303491370643926201612434317949889476046556419129502903755718622092574213022063328068381276400199115835018695250369404945396624205688436037735833815426711387920743905864291669166237729391932484316101978500976345156072204653749158331136998583420445910149623063937115766473837820214965909114343148114117104328058157736591102099220835989475072803703335362118953128301591471515572612026566951749886040761633037011995087119775647389303866858293186999095046243465129213100298417808887860820530428807563381287635800444434514008125893166257581047831239074028447632744813566804167782843032176150853083213514302087313958375523106571201016438408597362389653705596707124066656174969293836973086067529555899392967005695605732315642107429768005869986861765047264234154379213630251222798065744536641777412372425179434832040089996827308330495252410335173046010332910345226558825240028508905642189612451830033212456054960955010271117407939110878421384386792177893832240403859480933132915461794571660140685206198438103032138900319041713794453863906539458044127200236241597681094653405035315369267066126423676968839443913025987484989045474283150526711296770687691727888894712667340035103613101127685503950685188603022314391337818488137969963693412603871798775503812148481628102189057479834440747401242827613327300860401828807709050737864337882034045574224811245758439292276758476988180746046546434334372814051022234222518233208768540345254229689262002669450125829163659669018329334648791379455741298634858650735041353371665645100779057369065653916440739593477090500622799697065446012664319612703960078514918262564406956675284571002748184677852155821168399355900875611111203652390239735288374653552790654778649159839990542455271637575442755177901577518169269328296940556740823323094458023554398705028449871409923409539443811309478397730692132705515781218546183783474372529924440265668780288108722321303487044030511488054082649821352593931836839445718812690798214149943279999398409885097442162941839307944973716529142672489656478295603780954958435615206534670757681437459500717507721636942029024943278964971742520455729997744509831947605136791513694219740060318248314246587521394970663161252859981116380150107289997226154910001517847433420025428853081541200126788497055485268227630098004760261494225528475441709037394896333922749071852916573751750533047089464605014910196691311771119851727332714021489806146370800301753325171933851831911616458804019262278193872810828192017469454914287768368214019438569085338827387877223877519195833053146032869620104949900814814651815252922575338586442588464787623815593699756843273236896464855889035179099005150948703641437243002524829914656165973932446457150514935343901960541818426927433551093169132554224965601948219824346181310748356674299942445035092883595276915962665553607108907922989672794992564743892621878488623017275201003406997920354322717609501944815880775513990959067810540366198613713300876309316435088225513514823117175415255061190071124679540249426260529396366238408541754255131680805295736059655764756820709311073362630490875112536173763019356024337130261439509588929267132171790341257807238717754148366455992115150452572186701618419254297693007126735391309539751560256527446768736954555254407166287756492247247268369451655551526018729886469607248794272103195396911432324321700135135771651292822077579293980302113130027071123743354272159015041937828105147580115529956979515836478264516804632013625066447237584043782221756282953519886128917798322903660417868557496188162855373469624444305372814557048776130902628724335492492322473973012051088438147046857248433136730260153024557367158270352008132329058346046290971412043154059156649743279706865530047472792251279899386743591631642768817557398785750754503517543172452960651220606638296016892651300217493917741104161705388470013569046721755448363658932706487139288753559554257651700775678863844307370354463696891559816945169865592045784621467657481368086284170238375968478619075162420316836263696684445751908639576984846212169277609771571511630672583469732306625615420048071309268694270151938185738288795413237445889737866621113649847789354424973111546966696822288562551896139424949224583603605002556104412276766083544436871194097105316829137540003396010610434197391422587236039264850331054735405884217729800322110357150122969589528865110389301894950243693431011722213117193608682168186404389821239943303941409710949195845012819654007546192063613210310679680220589103814582696568259760019805198223661136649794350244123716952892077030630873837098037633301912477585506940851948383045378254395546167859166105911337353464169945094128413233102207171734670824858185436152898968241790086395547050613034506631132292641430102823373392189747709074936938091191256431512806012706272163137969234242834271985871411574626813627908329494771988514126707945649056696716376610934528853397919419699737383495167325873309728858371437933528045518533539165951500326425871067185503278675156135999118737062847116409963586071489596595018223495477621916594438281793753949046141133055284688799414228434974300466554135346853498577427637999130530316117873243157009083274459634432610909900057057104923520338317300249651736815353481814233708987776369628705714203096930041621979664916379423694729789383355317889663181703900442880729802523263878778046065788693184520427421523416510217207683636502987329740080036796203476060582700112321821408559579183215271866850965048261338057972082452473650189548683141565552313466423281348291462598360098681198785675674588907059198806563666772705391798703941746535034862339675394709944743787042762032961838095152488109732045168456264794354069187312493042267385801205896363160466454096682702903601683544148006892977102856366788197099988581952794205155243061182441537835959650948430043217934758002019609054739404137262492877449487120308591577005115931758793500585816684357513032776814787117089794959506801229496632956373932190400224009786955945627971837345721557489293646106886497903471049303089252585131865453170460366917993857208403386925915596417397816779782637611889519447449787703898946470543966206448668864169284343877578676262636164684612008381088072586810120999396228465097424280308030916208254497515014345499548280226259933882388798979151128694573839045809270939570830968778567729997585858913061523056198474333684490019734188649229117801433387660668554196747057302978060986039892876037164099499275096023211669259681452668854450111823571846974234528948658884622118916031603727188248901740755790409833665283223290609832936482648449369475051933031212911717606629069904858189220518591061191828655832240499336840194119426859532680169462048840559734940151120850999251204511103540402981880014063433434637258194446667450884641412103968992192869826283225112489478474469930542019979378818933767440758767611266774646252555554673210924962606489293784632586786139440860104200309509586352061300545385156753514192484396453847396913465573369363434057142347619231903996003665177584100930119156608491089096381018606324786035724583362848413710455516350069884594131938346122521050862692001634875420455011080921398958710922771988453012331149369490963434948839279578752483797179623935013118107870834444498847502758071397114047772370126155410256318276325250553754256744096605872793306990245787592701670301771892695938955355596072750995572000099090329729473355382147781238847266258384932816503682842128622183050460104902170161259780579240762525287682468679665438244905787820054306030797110996921965738660949450623985572979812094734198421981145054098082256891204310002622390992018007013113208686640348812454032594304269705271401636242477391091886348718916546454072442203181833695168696646684769637430714228429155738267967856438317660597022098797392985124809495142964782343344263635984778058868031613294245553235250750046437562670354034858133842728961695851269966981951768791878159479867870964043232893914970501657944546458648078759061009558414094355496206893863318444965433767172850738498225751983809692583336119501428456607110955926573252115884771183778711168811624252964795823636444820360519593568849394320794668580126463164368878671962568435587035119829656503304468965763864450042728651040379891482707077764530294543959444784098960703124677228697611133739355102965682457403390057826668158205907127705089445606572043176642655051532400884982716989324159020796538583836825841195970084297782888047170963889868968663594204263161112915987805469752676166516885601245044166266330058483898175247681807045155689412274318159715027159772664658813878889368621400495497637076264049860072821878755197603050187198677065817631870507499558212853737860486450058787268899881507343237407387592516556581113003841192265967446872927981991795774040069469191645228281629445931920972421914614279942446719305105760033087800179178000298389443219180985541926648222479461321074339571881245203471297041944090780022047534812435532813189497651775616202158100335687454857483959320764713404096125411137807403502153072883503232237204305292211869293529566869652057766134926904007106855742267786903539817687605200569637167185838884332091694040860977795577129080315741289269704632594198797912589900177054270961665445433465105248126200411777010135585283511557750387981160554878201442026006092885712159049971594641616109019386031254709972027603422527088227818703491465838043792914449112788456877230560009036264013770166199769339776794966552364796460519014596185657833042842726544626142540344311021544103027380763272393351140344476203098897562509963460252033395661098323247189736187135874616844248436658886657075846302003476732571285816461863877974745719342244046261521570577237933657247508533772545822565094345662055770734866692497094301952708895026837528908434831149610765198834959138937770281302867502524876152449536231897923421639958208823783198939947752322576030547583536829447109253997159507630450548938588052749213193606394470573796354563444512250347011459621698727194163395060961743376221726355069943113444610834923500513925233192107423712588482275381099484720721333629873266155645217273102499198196469369874507942452713130033079137660663126722573241262742626387139020918716073130151254176577453991513071379587368504736057415475342436698884836498521820913633008201794214097123249097816821768295870859836458905307295793462090117474729747257115279331864113869924427002142115058324336400542590741315251773979356923892513394623801653612388710916834493283175925940445081733864739167652152220041121297070567549789072777522383784616246143705832210904088554131698200870412142581067119383689976402789208521931362591449349364950893603846725873425125079541106554210847060688592273203624062035453024800630544069688788964398016838743292564444330690957593041239795456540020646572997253105520126823005849398852096467844221768808876945969046144798855473458592020713554587341059083451803056729436527463569046847458182878523358988361607861049295257400344507850959178113722876994066550267597141541815206566417035373536688792596621279510961892643043432326722584645914164689386379977658306816867885439137424313134730471572131618052832180576885052113537670850474394441190328274272620954257336925985882246207948209736615826931124078494362608405617596058290213219161912379416168607235850844083726142556362352296954922095643963418888972393725426460257955532426460068876813512447472629711309922743606889679869657041109300072286637605701344271074740246808585088223223233019034051613347485436304510698905901195769243243279174914025275119350356545475608686344953752578695952063889428640366917731443263777937361019139329443131319865552173605990968425813050018221292041612467127327413996520455655515050721360942944235248033859002300112819645084065575945651046360521530033723393140811289802878050522060186593735645770328873333489691700147819783558823135042687554196673061901012108441878204518087642845441989899777909468446150185840979419087376279155063992481638618292280044512397369986042422639005457785392789107538016029808398688867174230920584032882074388868221389170149037850896719108976923666023855354594693815882691657211809961832647124730371273026973412593314732219081078944417185406910018531953767310113519461291871880419754911978154304417239190840638531201605835715530763234721200468013832058611740162253686529012191463054114608715063813720761879436774937092919504170602122410196330869018260853943535854282577981506558332184636631711043230502204489792819597709433903662448854622223822489564103240113010155646332219786874823293433661424311396329848778493698229374412124047882531750483850027422017387377628906974025062343938198187816124506351764515630662200075340671501968191864353196312995382653891146623701138494091519224198545047118493171759448065411576793794342618727084751726588457937971746222496009983318054797652872395182635117019069474597976501540191153969793153494261753893363577522032213944158943272404209041277214448178391284651904422119117867922588901202063442476865753904331272691284527841776386316242400714277189203641850374310106541290978725177085971861042514091057899964605876202798826581454966897352113901128511335655088771882248668249476531811534120593668641263605467816230712620437909808391465381903909029354420643476872867501438387374178543627139906315967135195145646782345159675801592816197502194439311922521295483207454888043994432571418240486943084357778031495942684762171484096070900514877675679289864515596273823178004089013669024197035122484869591718062255315143689506697742939997627298444986759926767997326578613272082568220227006440196727610451265672003738917835201376279046281880199613287422032721257466718539767055837462846103105158560292608711314798476244073353123379862946102554441390639345978509357427297593407628049703578245881685662354944567865661467074534809684195919980935955617793719676895366437839869384429781189401915842017739224628991352225086056385750137415867945621766545834157904325543096271191397551763232151685345509228505571723117400251161577328752037581068976464827877183308943758161914732931232503726756928698303817157451252375205029769889877678425434685619364437404110535436189644531503360645037344065690743409458763700109261453102924372979979866504398952672301201499373675884372728322767670671107703018638046094686727396530870152160929645884411663569016370169614436257258616249730555487536149515546624382009793853872700812832815992470253504341396393360310491353027937110791710181344844797421783875783638608378331033178026970223274384511640406445287718690009875305954415116965681102408282578118364359875665298603016434561379756696128961355919719382282399553616304029375819724784576198343057317952747108967662154251571190534571080278578103838528951018668903575009233272145963199385801376040458786820666062101703386714316149547954504704867247305745176909231496050592970328575426133586790483199795659024399210510065867530472301881139134357096800958071185417207014819449681165162389582213648459115923956047463046376361477947368764319698292119697511175530543242638003186663290479857253152212810816887691859065178077629376883682542280073953668536052515605029128499014254189816013482391620418833682003315173294776863208334864445442146165437300047589238739910234297160385841154832106174239028820998689323410389921184009454096290379725608295466336464900894813905187412792722920849218718616200293333521456253566589690725748825764491415958059181358474505975261289411645351208785261646667939710462538670261725562148835710814954558902284725943640567874520283285502642852005450168994271637788969720795278262284307344602270699504704887173742991842486587515434802348375093045887863785025744748530942333259258965741005877491966600077714587093830514913231166614155835835865465875539240818304155052508286822050491635350180006189612845299123703170416953912687049113269114593113705616258138465058069249709088346213974736011100716170813104625951255247186836908552944925759026051481645177048345495401044643243017040884834851073992814473952469709859035378391433955464947912016862338302476792263680264368014368148013428376397189327252273931420087985645902163552870946332010494588977576869171269922635000327109367702649722626713121440789797420639422311204720920173390994571350829808755163929604196700601737416387511943218128112600852591622505588728698295621170117361783135740633513674416327988768278436404596478054976344398021672477979737596476998559358535647638641057304877002135685496395604974484623763098516358689056570162415048787801823903377029461644412992831229787046449917247964578645513649302472981501171869246897431103674605652425571221856708333688578379509247550389866679796735666621430689382260091520721096819965917005827295117756788016593683098918017906224850100635204445289665675781971501743808578887859211236910222663314227146922952669505186354420786420560295301530088507662358635570051276324433303043462972877064756488405058739497483936790041899142777662194041444547052490472607015809423199037723845334928970492419572191056216234167055861796581769631815398284195174976309599735383216246245093739115127801579968142921843103891958781603977377229257388004078793492095832910312952441891286209014671680406348787175079227897723879511754745841493800264028414250173186236663839805404859268545635735486189190503423052817406466312701051072842776941914852112707175372658800683759891275569441674517777666738383167660670895086627704421770707005562492888127766247478747827162450430266474005750377122314923813951371503126018516514963178961644444061301838056347335613414967924490653088293514267012211177463123987962700839094482015448167799345543265883021229771792257047507757955748269702960290520471304698732706895372491731143527661234984426468046558864490240818580447745734242425961677327588111358963022839694460441292775631014828899979419920766201167922059434005712547270234449725947945964590064802989217110545525029776209847998044248417083364137340073106761584325345318933645376893882949128077563034243952576229642243861125220125916647826254855195856619030237401756451475812274995562448688801278909755624320005984454442418407147360551586838981763419230241999905559008799555309282082135303017647156744485653585093209186949162486558195529227529060399490885405848505275229732416811211601178453165516093351049254849086288638586230054787953729633958111791099593100262841488202695660259128269360440388761503357755627291490091601782182161527593733582636138006702289519498808104958134814257902159925286969455997080851911982376156223749553629769025241908785770165159324901026529782500702358987211972453833278006011994214303377301410522439552273030059413001307680335473421647935542690402677312263438672041848383108970767554017490837633357377830513150326252087392467464556599269506956696242794750324139986094071360369432184356412807745779928810177629089535355393867807244201582847980979078588981995802475912377973592070606713512403644194363531720231257254800734533525392216236280282560860360898530377577150848851237939351885121097829349489852646595947261448353188862960617796871585814427818332699672955990397436252442887581641116791371709719386688304117314628294538427682701994771719251065331451139408476848536396414334564771166029097980197961442439655588284102623635196865636276658996585710481251674609953106369382852010169457871988937239519223324967661890949898693852501226374826251869152362365682387345244338990004942473938872030365268862867602508876859248701010090970041157570448393996106627623324077205930153904427905042931301789764400783012848030413193827895625427671969459020762138761179937095621007401446930831092957434861228109488966796095996523318596466127215803760008723294342154939149608687221322253420764725303157490529002907876401317955274601392586191090768348944761462367769298388445300687760522850057189523462216556422936702815836135040971645865277319365545111988925579205631835413210275123762192172212593329416075189389624840449699498076328121536139048660672873695502691347015951383452672279136449458632125936417766964093786130383273875529146553063172297231563940536516021878194953085721725327164050716847727601079300276409529931864839450643468317154847826934156422597783671356289175582300492539197154594525952472655136583620760513767867159809016161899916194651714976309965196449411040221661274805254219857712074147882376297041440585020086461773295107180850581538745998572933102406949882569663662353609467641730308690086649835762282951185116753879325152380108371460948825201551294905062507653045064974901401089756552649072962293359708382680117163766362666600255844303052071533119222304811203921380877711606147181561581439440959950016902144608172099218114019168657520364645240159544084241365953874390471659758205110976031000347669037850100401984927294096131900689329775494432152810374131424765832014850363143995255111400720640340471036091793273019508820269857957803424439226568880380118947462963992221048417787775505992775702683594620909614243198182915474197817939827887603966744187036033601460421496548680102783821378038501527952801215788144442091921773781141205643562358073944486031452964393138667456794523099058748634095103710293087785018742406305872876848911566142021859556359075047012273917725047511382758165749675016550530766358213801327446637426866018065593711525094755820942024402516503814057047652392027847640214192826078404626815745204871823193955642093467678987820541101381681349881903806620957255248830597615812307247677967542927042404790693639421645295528610293081517026831256851244578829207733120770220207900727701734093635678444352662893741381193805250074561343941443276524261271128975755892335430770412531037254322257141550237833603918622733737315094263905411642302157817573734059667307458336073144364386486228957993302819221751538004780863845808329287400424486416098651382250907516780047980668628924211914683157396479801353453706161137091287244681118748237563534177920059984816789364097947459695558924473870121395344470933893953325887364960020340652361099809547716961176385106026293316198669750376278526808473128296714738513305887480143305225779024189053946847146383986228620332979578376103017008018362050099942941203986244866571725282159046367963973034102100776882070426745569710065779053257233781035881430634770718905995885444974931468947144215098027632772667894630448181451099361791248165985606666590775367337057497315080813637869391070445286288826636119473205912523114857672251782824088798496049629829557920783291927591789314721857632153057750582574805816874250553367450850375784164705965526759165836714468141272049599498406904629960090859509294954003515341761075690917211749966159929506393159935187121775621655350045288718798772737385542324464023855806567373745633336868575554722191845367438863636989750928785064504079440391204666616592070631813461219353485260874084544055181369710297833330739516084401552956080592074759416976793302248277137945382036187757956247413443598540866436241846052743289293395745658968513253202234643687688336074866536308757587043695750398443533118113581125729229543706080582330742616906206916331423717320500284999772907561944312445006195411570728297331511618081081388946256063072016651286478292099204553484132012777161616239114825106408079208008417143291961576818677764071459356571715592240186061647154342658490098219291050593491525500966616661549795183969189761185045657026004452737301550144144121223303339754098207754284707832466422704687186246845022532691945431290826694522324370180588504056842615888016035276010714086269751507280156602229859082381517548940299511806571046562949641069734787594810244870460537616009345538157291540198817022413333648481364108502064941799357117642006422267511045776028324719699267322314003255055930020300014555021184522809537355083429116027183987872017748904020996169203770249181581250089615661198078343519255848219440318376751106796650233000879161430665363864962485582162977837446554181360871119590464658273599848371732647897126242033052526208592122321809646685314405519930892184826017438281940664595596515367900175570275256911162267650488853118276326762812637498208543361583207987797565652626752592155818319825779495552812936689005580724243415673352056003852823795500847037763850000001452038206737386079457549533604235357789722758468802900897563523061743004811170535846964613244016254402767849249577812565695206602215913537959704557042844349195539289849311840503310743654849201192336212866508193148202348070198290868929392351032517184362761981635473784815087948572130279746438093478267155675856552048448921406179825098193879365839799510495577121672229879683259469681529660866660787212148554310998886037115667964760985798487193220606164688108077682394442279539537091415929292466422305624866686784671587344167740423677373944419480807944977399024554350881885669443245391784066890335866955860068029297752004370419188786002993217400814822527498656840619595902456198828680663664689316389943958540906092507114032475051048601265079620265925749981259661245317563284119482855414893300974793972953096838559874394540385032213091750991497545685224511895392201968103447905453304763022927547067763943138254067115139495625494246603314877788438222761108694387828057344072247646909293808157827548325094941940617465816885713389907860161071950871692224613639287499866677775471423497652744708593560352512195035344476791748240969719502985896232027184985147980794847502421995781819572988453217971807273364499784214332301793582827899927072768207318734683448627137978885411415786662555765361097769301507623607597488285536797235200464050437010544424981125493032850974099217771931285728874928180950678272002604380746255561879517663816765709259186898882686290310539066392385662470480720141262464781142993807527065967240252285460951623123131726699975732197363474707124470508525176701726868777318750878522337621458516275996457299901942659175851188404309340951927115432323333207583213331604884505510001424043624186129204019050244743503902716483038639524886216473724595134427857359908863736021121549430042604455833537828192512853425321226022692693495758360102072074150948570033678032875447419456124567716714468691482356492937594510008109560769893531361517112871569736995068581517093151263480491079593497160489763520895086626109668468140395052032288947301643407908100783407864517019274036238443880771513661375471422170481079202175132979665474082458806847013381378571155840686329845534848668700278555845524771664221968182611171409217555684962652254632620548116264798762125561217320654217663844169176336717813507504641290629843801848615772701902315834410148665662598724545230750964758405689480301850999825554817856853436582916605320494524884196835602134388871482758202321940765872262936441066357148647849828291879982982103819219813061106437561638328819604056216831319438811336690826605642776951379393531643982283086025791930980398787402611277541205029387097625226351843971242299136954573381738894297289439988032131083350242191129348842931838683806954481656115964455601345211264115940513948901718642520430409930053620841005086362591725431430368081857197864806323200309638206144067941385643059650604588940730556756284591100107004753066259966294009289055297034113931866897357043818602188459589887110409313443764440653275075132498583478332114931526040838927582676485813927624340202725911185495030307533014259745001704673988216768497262389767712984049903648722246262317111976350700954437693813374912641433299694633305742733660760627162127429533353489943456990049176567021901075161443543294245346674476511505103961786997406703895577680692003328003374973462720904073471619706923739275205957807859678115036615304483188397951492315972811583269094922727179622950715099054600419302666231253397886622646705999193348282818341562114157011838168752348849186135764519703302462862607539910957643335018849243786784299794341203968530398163025446396707084557601456601851150924268083622214676210691093042829123576044514570328831605211911647956734358055523212277476484608612698445586630935121425842800937396663286356147260676915759580879167501128746721095314661455451096248490345033926422680729718290829230605103780992851653409424647583899899992574956494153228882520883486610920827965864489073103534224634786475925386530806507791775832926208256466054188324217013210111882478206217947156177828848566875389150004889778945956434019374120295867794984486553953561188840976922985976529744031935964656833489826888113593716736757939101680023817205141346346611550578565899811052176710308202099935756908671970731106954675664342407775608076622156598146354735007013109112589633012078679907714693929958522059107879336901091542060976524146152715675665796950400422718703020667057893827606129612749414783690402981719891301352930527686498532867681350646044004381436840163329699023045383739636972203998044449401442504081613023080802089802008493622047556648907700153180408967017015601988880141158136025416373214254404364755897947092497735595787468378335680575897497698143147715987746017106899174203210763420520191971747397895009676388625352441127113998119067220002670709520053246171969624443757546603393204500630479428295053332811556075568063154269128718517450103394766679066661371385725058921616037647198082917273906670678669317476015833015254370228506051097020627045983298759305032674462724643155457893118918851962230888087863305025844409924669053174533467146944860084332461663622774065847244663503153670709873276246548320160617427767486045318345079240425285103923729453522456282629672606161466323099501928496185772686855943172539110550941216066567987274998325498343913855002705947739752362377427981781530698323767840583123671029201300178483879831105551433446950871086904640217944345450203019126253388388291577111715355778412509088561153635900151879474986020240211703921456589359084568772802552390211784604639982041041913675906417827774837250457755897569379683089790844304900081510092804150275937547227369220841266045559248562332320298249001116851482863515651408017330789601266441648521160466443998276775632711563695016318225976228559730795410907706322110986824945291096795072534829417344486745534147746394504321492732479547045920109890686855817143115955227258866308278319586482962922898376736549277199801950653101992480317777036990960923968718058035762684301252342656715552866466959956117348805351842512470024265059018517791892364024603043083312084998653955439726737734865520235489870802061587808076974589240426900704158726790479515059504971936233742154710821320151746270592101404956739977929404075933903778180655978658851395197740683734208677509284216754659816845601877243884036827424606652512131851641709300394664655003624900573852125546019785958000516495842801295122661408618863993982313667754286397354988185165769449040660318525774762530066214022750092195372339008535765759230829120529437150210800790055321124780798816707521659898479469762592570284019167622885040069160846772578891132118897446851550334236226720719341806735957430449148278372632304294936547653453273952399784837766330490580995650657164110153082294568590716553613524063737987011904014403813529570835631407774752094729129514652775510024687742910195745039949725947177246388209535841931108733805592557483408164113066634547985842717669129240479483467380321699969397581442671339872476353385145201942866524556988822870884359867682903758080178470888198737030482725895836570159884716503234845387292867324579776966002685736432897538474186742415730895947152936289808771628820237787046161585811197407383209573940902759047774661060504303975741953826862316927435078404793185420827520747825862863396355552655077391874570823776810766618360249011637404443115313984793088661035926593297414530397215384189719855325457752742826825175190753528023434718261564957776869165181859036844031884981068968305696687779148788364954948142574722530107289094733854367635091886857628388624795985646093718598050172867503461969692308926929463377139676073108237583110606833816625530482782050686600580140356883663472762304887122405608477322079738363470091313552098493361971779704117941950752003806784557382757102207897882130650149938301274285193526618560746455697426577321815171239826908401978417914801518160955174863323929061614955911410143975476137876806455552327688618608674408937589906471676447288450429687543155579416452045361775760671258880745902057149168857116641043131426825539175252155985783332240882351213978023368157898439875876844610704538707479182360055355674426639333133406401074065403275694451537544338522741054856543061580506620586664261973312680448363963570502085102018196526913899659956401071606315344215180730798527969766259772881429896900228100228168882306656644211217674390089722378164799835496070931397969191148174165712285849705607528750974031226811075514171371165072772075984488947261022107499016087787719908141782104686006443932770909656836732464822215464447039199977003015424655335289396766675901841174181992367810881971839183860278335490007112410237707648726758716954217894664594225679096120410900326191219530601972750235982979812324533000763864140655745665483899377220939227285307136958736398626397112236256010122570910873617079741337380453600702916133436954471109339937563786433647105447267161334846751777393364122371894082113148094966319078023141375624815352208271975978665172341612203446302668106583706456570481580607507257111438333333484765399563456175531960100196154858996543699927528882783411558995664903482534074798370689388918223005958830019450568697901872838610526419784799097584856843113998512744160829150131257896404922361621701425398070739459263190812628673419822387353988282818257207964459882439838891349309256366253774885759804935368526555132736980171362355541768445364214152341607172847705230452923206029370634629111617525259723042775419367893325852221937819553462985590191128236910597441989808769114207748951863879009753985184489172667920853487861309328349520813705701760477719844447386723321148653817759463395996592222019210304699019646881614749399341952803365419554995645685009092877035574173498422694543455765304359359595470345557497320965059275839503366486687078403761292246239080172165823723221951611845417680285937047649179794515043934050055223174693553031556240107028834245656820764943088742949839190078810186236371493042290885839592247606242998085008625615160739963105072715993129260167096321731847408932449574414650349110866348616170911633458168290942807321750717342259470583772437978920905971055630710771071257172152579844141512365526414942005150379370804730023322106610924099956786033215885570013259359519803752426323700647263172398722233325348183306621345450233979286047052641503304396899788240362675472239121287383329785324613477254982696932753826971115982160408655039001058318231326704127777683237249394106629658251327364419394644726969104991683830876932174370515328017460441494175390766624414140912595426022969158389592000349264520717789134938091540927511173297607723944717582756112054734038667748912226532066165628223099129586167078288641193459560469379157335331771355468287578069966508104400607597629651668964247322854198043087715217863808372829530067119283017549866086171011049458407784769353297739239611733136079705992187294643732358237725624200611402662718298285584054714585100336181305341808531388412309214774377004740798246665309084461277667271514463363709166948697956614049871095731549582793336929964112473960708913700420797194697775353026293174866136970500521999502925147334613457346599771477023975976770246405606198314447130193719043233767736286183367128272817814008800475952517988847989123192398488346303575015653879403700591872540593178443019728534359093531384383122733660396687744889232080165710119284568168045403919179154262615733811431980475552166792337155949790978208553203563804744903621449048543817394187843981408650736186826863890458703116916307633778426402366938221754450608366690191298788728894142128506041710547602642078788713965848809483981585079537139454617849944940126184958417256558666226918774586114118490243288987276500279275598848742290864405457587691802464977564010798565931341550820967585782434587097129350460109339769528668024960730534113373252063621038424070124348127661040087474657459951215795979131981404729652491646808390062130527574096888414025961488672691814907597676639722561651985575504179015368180221393077767309525415860002999397376082081442657442036728861901845653355198429903281906383562491675003375875272298827795571885001385410722321718811468190916423985986684522004308026769835563743054766032632388620524384741888634309484740394296040571604414677965916364820277054205166330431303440804886298372059501456497965237692268681661659392146733841512589601432699549028285725527920083062614660206692035316143685884277590307179512760428734692505697044089398575316291545919705611648572416978522209451763201335851819927808187969112096006863994373314365125712836821428069473741298039885397870065319594967780770437611236225764793141261923348000572963275244045513110506895583351333555351053167161168796975975610455411803895262383915447131648321325063732625676083218317027008351801061110003405027104327580359896389828173858753268780449818864473583869405161286374415230880920273571891189045891600785411795925886329591686418363523113806669210007515914728544320848571926017136011072366041105568622399402374014101087391515253581420911538191479986041332025721979896857273899959777103600189494198968639449767381257468812237731427773543109431632470093658208976481203693801098561841397185138260174752020260006109557721474489828307199543209543406354911340456620083735099430071304228291122148364209287670483934118355795949790691515486126753240953994621538670578103792266262312232240505621874578241577864296980336436909104623526422123422142443338734342106527973357699256351507407405275217790103840986996336785926558817638594497145852241863124706359729804007046864508427162877977954304725153191412938066533033407178961319325198902077877903379328292608000836458920321469647227205339715831696944069237614063541148699615810734676155350363278411058998180297937891744367304048215700301315385946745846133079914638730930298907568313472381570826142554680671912931769776409430198216348936328304654448281708621342710251601327697215183685127567912708087167482109062858253537098655282626676794748298233588772029997679283385631790097893344154913078480470820171593437799775698111261515249761853558508881399945583893566549445247272358263374307198258696846068815049058070822492104624310368825386794127288292899416224727631071746643275839480994198391744404496016680285927892592732621342866668031260445751896465393922709179046990243803440279276921873084723790311452093616549964761668695341403379171794420895346325322303238514936338991662056494783398897795082285047769747786771138655497303709305912688430847620698831651339141561592621752599995779741377738349479561179188700263650694574903266838980932194685261983314548256416166113383921101521734156459364211992199753237239138206413232219830000838957191138719516175945411951166101111426339706073073816488225618492948055010027723723324469514027383284792956871999096520388996010643784169473936816935959113426810163367547111917575282407369092927821096755213706062646772385221969801139161873963488901670514966681903589530320208239076231307032045661123324072014267872131695657833629940238879792199483272111598126710108000431050888408037735166508854031726816762587588867115974838920709461360978378848083703753796634579651210079108851930193763438606080361722919643013006945974938261692716988170085017645657851649657012982185728489200758204140407893771013385618117427623381091273558652027526929750697327367378648494357303623448692528398179326267684552358062700017474198643006452233768631068347588230893092152250308318748230746096301673175765380206793286872611236071545681041715630834700630518184628527557660025102856576447827569912058283670690476849404255738029556327516678078634479740132510236173197322526945088462057110539389430968407307085117625784508187924884905228683830452108745032395093544117496577860623928178937428619101469952814900136926859529863997061292018303828233041070692115274254187099833672331322413057236378608384231889516137704379155931358671593559716606544534713648045668806219304262306591768616596690717191660605975826261465459194422709271445766952999097780225713300975591559393286483152844653690139625573407114182448316326157375967543768115365771887633536096457806500373025507780298080511964740882107712489301420185087116720683402091602486861755498612306887085952646947286084059022021141136051636093671346513210228445966165933788162108866082583989982043503013549093640069803349817827268702967546940477258834063365763780243999931565905039494603416211521681835081705336207446731009721862268684469931737607956168441520545627666912155169541079682778513761481855762365626727991904221267813358783533587697694628080462991866604889798500691628628690787750213446410433906628311714728837363815499025372811344255579322080048777332722861966716261865299984947312586436470312025044122191920294337608448416924885339213910452193383235729276157878555280272014896760290274040646622912872083044678245102185686221273618617685302130360043389002491727629695963631212205380318578721469103736927042059339854297126491483414512383502896842737007877017866426484855005578238554867974253132690162474723038870740161725506748236114062369542715966088159507395899069652659731154344356530850396178284368057868638724094792157505505717862353136165490145363032099539251555631756816226306326611075052525251796678703045691451033006340993871687891961418369317932700080686833968133854933705949618953631237450017083829151304160553967295736129173228989403629852221854261385852744971228012540628128211048463091388437405441958672263166948204649996841812472359078857483323057667463661364574508515119739112007557169658148973756681294435087236624634292085046816030409702008418286027032364111915389290273523115388393457510215984885743002763671223832952990229991381907526742972736306337242345547288309702331658856195213664895170636908246005440696747250577611967109795872092165653013251335143580066400167659312578173790971204111906899623348373303294706034692451056465444701977512652724710820154965622552873554487684518919013360870573380798802888913882814493722700076746123662538606188179753611279855933983169592135085929350131668808599016788454684575121249212959087942790276876111838749440224855222734543257295646922513140662676390879772834047751933032551394610355857878913034736092735059796269343392696615802158460600029575376546323418998808507245534351247739273107664815083685352121415294424708314003394035077386187665007223005323142685735721584323894284858663046477312612129408418414150337547595641725927142407324194278952980852350050135353510341463923880159979706311325047136180583991531729691637039887754318678646575453441061138711630862455171407313138899673532572512653580197076840225499376793645095659523626161795531518791252021914594585370819110787536776918334401494059466884398423077548760222730961265918916069021247475069724142898613454133089370533407674690589821399468621871252384101596943618950637232504993995753366366076014764751380470518246006794722418645930894103200270020741534120794525147677735901987560753570233428495881045209024971880206191131230920967721757363551183440550956730836650118001181234437635189837610635176031875042529495738821742750712019801963803129168438268688643363780927858162331659142346044132248227995493057480807122019690473337947452617255275807734309618244168616617766728477305146487987033684838829902147461290197071568516111349871098918975685904699748372947600528747972800670153230329076348266125873439263480802759196581346904592120375053075095976858220712552080516301552507671068350607193181547199460850631370852885726410840591054307755472069727818604811489229639000006867624314589342757952912100901150965264739017496757171843465467967893186978053300420869882015281371822140732886490224155566863596247765279951637775997794165945789193104605757866963985622215789485384733457493354846951006004410895218555373204258768263217633717816469477340562979558231035111800093768324699954690432139021438801671434406599302207783942202059296611297930763348098655170808232435011264803705396540620188141912789724282593114252638708906300070464470091878466770545936021050988278405989993743197826857848470847425127202804207435096138620217213350657754576483207621286769487609655711961209464038594217942443809463778757248818830164679853453321637513296096464280170948846888274012817587560423703945497199784029098990483364756156795615257376759422626655033052026039752954190671702159888185369636386154305451052123244838149595202528280703286487642344982158953153674275112285390017977652047997385011244394920864726470104760395892014126416052779026090255987898262802266580437173608789055444926640035067578356829117504149972620984472606212097914026405960470498226187256751730363601072843547544671893569737988086517240854364073908600922392359845707709961535355549167215643143104679357091359518366105751844032021061790787538012213672796979439275852515664509012365280164473008715224673905312593386303642401804674938792900561481497626352565928695958354800322090901671366233002324184052038136692189240188549851935393862216813851402650931949358438613680786493119791954034191249308560866416440400297558027108871258238812548469665596767640197106701744874424501802144613817396957674104008174030393913683143426395615226280999289101989686223178295977263685785737399683232635610286397433601301111082317105309471029377458594017115580208641605975047876547013326111913375601463543234955077361648450154062542832351328425494380456216055307352174510290078913094014471495201740305984797629533379672758740659892737194684836915579341567635047324197740975119531770362464950099567219460033425284035978837444269750917807952857842505993425230128888093821578041368940827595307267821848962572699285506020170966268417913107298611423690154614489300166985835345593457700875561873545704812881138759541893156299342569470214019856204052550014350956300728148112980860822288332260363105574746947730837211771707574824995778409123671121769765045810772916980236493117685245594422345636196267757588967210849972295197657788053626376590870623268278138539898136792429347672661444620782784684301885108658536352353554370653954764087422629734859341556489696631548852481307251542918928114486201892527182159825531157666791550106653643127392868311174929656019801528080630800393691347301155145863480950627621374919236093425501263564247724632689611993996698525865255466658645936926490781614649948875563590355587018102393533493459652708789624959900443481436938476252653898514354759911676667893384225079654263765471809237203181080161163934675965067226351320014182733373158787100032375973198491035957621321645160972773160661628788322954802725160125088188535052969733765113832550205340511802535654295833652933661529893770555360080936057651500577854291687432027522780675585852248359243700854850604267777961851887069062579360963810381929416543830158713455631271178224452448350911819119088625409010936015042367628777891814519250507262373697428277849820837167347070512183548308301749877298251579976309872498879300150532239924398261046213420466772144270297671906270611478167402187526848311369662897014058150480065295481497191509934469992090298283845845065094026214217123142929138062412293593365474242497468194780479940791549304056145085335537895924861015619305391001376751682475492894822403858077188815030956061898621498155929621082932661479190148542907856312758908861718619762328335610713044017626205060896260344917642818035386852148490383110065173168495841867081318066953769863841637693183966275811820817958336757207254783743046217163202019650672296952175606102023231647020022029439987308619908338409260009988528951314754848024511352275510134653629390681946173657185032328827997547678207617525487762428998252010365072107747043019764735471664871743687728135213960075365504048242041881597254343347450416090861724759392758557002915603394473516626957034301796818291336292569741161479108160902487701832124177661713979386907432106269937303440597132262230600634468536066943182923233919242389589239633106303590744380389835724057413685123339751097498222285101739948631845341732881322431663880903370526646599004242631787434538460004783680820449766846719024015303696073573061656101881356626894378136612992393566578823470624896425024654683031053360480593005701047769160600312047528040787696705210536393959327542150998354469990918517264418315425420728164576843672440468228019248451024613436488225734859235980769231976430547633892890480118030058761148717204398360897883266065623754773673295582128794965852669999066117604524745537723061832332978292581126687199520608170373572057140482822771753625014097417254481390667237697923751752300110796698119608011488143933797228256193082442935190046799123042354470105603567696470531101220315494970452896479256385995951281890298577949520422283431355650304837889218908348210297363580720971257699267747221873543728600971008682703219071770056636812081314417277110266665445107785107088384279420276469929762203466677847554556212216346011352320105461396915789957742860224084609339486387361604703516014606759696961642622425701446809959237911660219881122918755990463449207822728840543220017085817913163637374579420190549233079738775721983953119691643552227424770654709682299043064542686807117841510929016721252679639514384221269757544009924501813885662556258336218213308946919201114930700153563324270612284830496004504913908794923397119165828732861170108256460687151831981143502347017027666162487865148184670999284452502696014280568381733855532463072849865425394367647543349898041812867994457292418769661632673708979257897848766997809001088237889419242624789208327294861480852335874584136553585604838037702991787932901547794104306091670876738850824575156242022458697452184144843066127236581210772589490635108221234659849798646393781937188400079864427714131617253408588653829917668835195530195748406819019490969079292093116430645212891966420402266153494157354136966630754147611077568545035321975512958669365735340173613211261872281407189682710072494041217418160676414468097074956071193806557467501632915338375756725495998947886996534357821623468336918278314870709776445307801886610859570048056249345456838456233863899532538456177672447745684486114983609152582041258171452893387237193560619767695948301898065955654727810639114865236360781651944235010110478690309065818673426443068649875327463015922601505013841264469548272808880170968076179420110901051555384191600980951646932669532099680574110736956934574632578876518601839867572838665542986685853317125697972683139490904232132911716077658957506974728142844180516065424198959163343293701408370421292338222081402983905485588240911181143932868227012284635042758264119739032248541186208474900560858835777589161294699741937976359555174280594596263811694305133898230668660689567232021349832848968149147301708215342546132594312636531560768930192966807214313871645939660190366472476501062013548141402295693040855649100015187790211389670854727757387967107956595521907080897684995842222627634414089460771474705559566218694623740380478786857386317084445070787269082723674321071032261503265858452838932764081535528181451830413317974291044359876700612124757792005349877693702513589109872066344812870216105758638703062036517470116449717939174481658172792063229218964031558493413611404882003209348566347139225817681584425664200050329748788387592587029690545932035445768636019707572834422917725926102872147141778440660411026191162891439552448281248049128431289265981249128128165654405738582231697729813164374896221602038119617238252983665327278153894378995868049184997310145508600453056932750726314162643656169730753463570998857584679271474138481457442655599863275004745388299859543812262444724891834624720239159850104178001765029655309185791731297570302334429375102844356972938883061201182341309431076313754902973669951007070568828449067053447361233370297707108663374838153046202405051793692562418084845502223090324355905631790140499007860600426367926511421345907715551924435077601784618506830136050378220379613784283771064414724742103592222068467041492331375223150243496750986687415787675540889208034360472445548378307957304431557522110826802442410586698800587989719391184422187788397513966365981926062284031884169371809708245679425802698584899609862214245753624260502217519322390516887495513444052902898082167068144961430916837585710546559678909128393041865426596809703729424465811469345124193476932507041474675404026562074048787614217878449890789267164303549611908309153810295638927737077265753163195107546839870836108521075142222442090740963246377560677915878320788096892874288939554257728003152785516745823926835379321512816710451723214872300811577618141618589248235982819173676624348702648545414415583838181725012867894143307636729801344765186545957947646511276564158071711603603541398122060122370293029027286879532689505413413329099334834309010168668722196205924977800020619494685070771433629642359510896568444367338067226445359296059014077606525248756876732174753126030037310466665111764134741264146705917009060541986230127452356731375906731444578938349240785561347561414269309752755713320155733910354449140182844991429909389975576679434270941013500214790232121915266324046076901069494160730307736144849884331646464270768012394063611706076350439337230654658722636632562716903364631820285960297557891581255829333814866495676805211964608950127415912692559556566229839149749864271273110647069233982167509827158865244547784327148070904158822444986249572626278707061201962417537753178644588712577928259846455377064222150464195365345868585485922788307618952374949207797182264097195008763717521837073506290797398612561081602495165018648732606676226618650978652426467596708975081296987093863473773678073925127975148006403514296394930874119499274611502940505880828972706160320392889425163898227745150863725991079076500669200884284794778015339360443760409606157557259425772538137135757296208456434745767576018938566083453545826827059324645967188163945607032607583153640551430670660338912274711029959475894545976311596583646624142940598557550617039377817995200068612440352948332299029656207455771604638470529546252782477791526105874418514780015352458459131099464676340178158294043016378964952928436690242594016761155144719674126999620422343065883306960894058946417902055741747716656198397195175164860406960869908626625505326928075352671146512825637770413625903944823275817975454555296865336554371832719498751049140572384860931773014482724252013028172633578342552674300269939775991920583907465942554793558117826418507777574575711216283814622598676029198885161237661476131690574782348419188064697815588122211508776319288736973460434770136053636493347525457538211257229291534827909325949607435425941792794302210423798617233454492444023093608135092095877606943140165941513979220308822859628825296534791671331375063455820246927222206505907407174763393401005179638480603704247189916716909619724800015821683523768469687474955212354867040727438604166190639821769297889063470194401159507137860724825111773230862032350116185369321943333353733596891849205110629348671242218005088813061285725752136930195657026093126939164246794450678387733425951669224508465505946271459799277504189233634200661280047815025084135442157942241743752366642748019991596049750547573270135533957407230312853288299400799711968535336573978692348966283962057747405094985996457288192937108150602654931800029467167817897210754840115796459777449789840157784157158017323647025138722754685612841893155931421255841914939437000760675006756305862235676457355181525008246170286750474374398989894665391877774509011928630168497771084980425868883179400503413606068912831000038651965593715944858237760243761160255436344848705988020199110113891970245049472913793730680011221196008576687998927685910227824295836841942565326278496888598922717176008451203355607266011656944741341516906756109155303431582444205514049270896870236772096697236150041431998098920598659017980085030616632250684444126623473760779099374498234160142237115356737730132582319656670142973383234019683407897428940595040558682564416036438400536937621155310509987303371003410119608796407743447963606061465869334928208334817629110207483991078181466262489145892646550682918749043815841370887488749679483156461829448691439549275354540184583212333841742984134462110529888663735232901395145978800502462436652065396198071013874712876305235072483334792184090451686731049983455269502723856995220785007129173220408754511201119042278067700610257817163245909633636893510011066811097585424190006838863276722173290590016128005786096476784252154724263853835058594689688825431062933204796501810584831148277649374293456410781175080309537110512810854378164401752449732324834688043869866669725911704247399446459839081682094141191108510794688601746674788706292647279224518164577317655007006012239231592325174393270804922512266594348000368535692907717067048959898108594680653533296106211515533632581609404284367858907634649815659140272551582699081361657166448739472078220424711059501611630608337653582778828540348595216837017835241008299174924355969010263299413060444430061201124208235637603126613981871621882168128178473723267291439276450751540602558971446077951167977292379249620953532007426868638533409743692004295766097565228712051848993924374747326198811120193197140877924956316456477454491979580674395306657251495025010715552798614780918101999315201993912341894605989680428176660628128638898025301060819103676858162558742696336195922780446310839678698363847383976964859044402351790236395670551765179703697611249401190383466939299616695685960325087889315395128373242138247461969540354175574012025545783742958080128273173095170732991863589308098201977572908709475164249198461358064593420117066355856706416028314140331648769218469633965903287504121638611419845351212176069865987630299571144692273899419507919215720114886617193653493245098749003115746981181502510137753861258410272161127671536093411741591639290944286505195805292951550408861885902051238006246671896101503105552554476979973232561582179167234751003834310696725402972065664490449315285766279239240825460903164226354920795163036733935719115116305173635320767875107771388355826835926113172973106522245746980312273136022751308889773847556521922146209325751058012671196859484641953209266840934066649495014484844371605430486574266326471847094812416381300100169611073133617128608086332739518267011633688278681161545372432285013744365266183822641548467560943021540513787309337018093815748820055017916684712757070912430031349751122660733079019125226565333272325571852994800440758134856670432196353564155238837636626927086178451486366317199435439051231673519825511299968907243426528249288869142212619750536557483730853114927044112656905352008406532452738272633414344894634929231976908941701290959887592565644161686960054772365003537028688437455461001754709011498103532253038211989182732743158990951921137046469824206267754609687830591451560253162251593309433398616499650780847918028298809060076195861215633359892291015970304797698702839892723706119009921390439644670273073219510837275751183538579306917870370658812404355127699116319254302187527716797118651266069197120460437563152101674001790763525542946620255082808719251485209166566602757867301198319515518446172649326122412047480786583869842182892199148176463715943094893566745313143099031217863373454105599200162075109801998611000500223523403345361531578707486894024655475556406524748405787200564186038180774929100767328887419714835593156426856449003278300377330198079474852523494990709843026224108648054089828038061748288710030653993600514488566163406072063029693162773484690623411380303656829971911637256523600081295028872191759731214796463398198178243901096531306376969360506141247349749952661147450090131477614607858924460721656962279659370747890320164311200473894394138956873897060488971325344378229221173528566922909946301905926543029823156557774592598446152438729913410256710687161748667075749704499769433385563797619573074559710561057100488950770230008636866720500487857306553870797262692291848896081957248069975120013199558241727086298072892805302420346203364018371936691522433281946395612518728289753825983009796820023389904477533891201917857030107224803816912621365494192056086137315988228945669085724341383694627582467955925000963866916723307505535700916481345802773586157488775743495694733252516267633845739497646987285203709096820146069078472834755691461878493482277803064088333507494270426189724162962050334569435849963884443323738268049941575758725928218680453783968928941560328550176495611350819267386077313498461242112182084850425885000561767534738631130045785910996605973594221528190282937468022709685764992460516164805266307039213546561572935027847646179839767187760979806848907289845552345638330913585150073776914647445303256731870089603191060512337225898044750076910202179016919847350006653603909350149672154940827672808174584195885885179663063787066097614223485499568657293331163725705787131380684605793641342285414019806164377544636431816139105390344909894815437860392828268140125318411336215473673263708948699215895369739964939796261108261120696620727555900695247067236308015034635710565030301192665975128557928365055375392886935591069835084453914445968048363082974980678778365888857012802967484894907986311238593052183308584650120690515615715626803467102996153320153938263024349474116120711455377908701219866348293156754337730133856613062366752202009047970128667111905104395438368719623713205378086409219776704848893791173941731965532271006313480414862844048803605105927215349270687912796098800896524594454523207663149659274540779101382401843378147462484738113907161458959142845167674825309387681192621165300202221275776958667530547540940969766403508710793824653685373070880927276487814930839103510462117130003420538624502785312674805710152880543778136457349449332531476203797496688815519555409867574864250752095228279311361642034846272348030966219377724517304622527987414760765974291759059084456529627756084702668907951787820477920642820682608150748661962158852477925298871097316098958947007641716254195609098401494816533238333064510737203528589312365130143585170192461831780879887262176515584936954088220825402527000852612446161274152289935150562797341505995982472965412011635486758227951720321574813224052396995149141075772078844136285560548633855478012924508304730570419821702816784525956034870024044831640018433315633854263401674094604634049609928758548378916319389562662927291516316296932024378865035823764273568834297280373937480623208405193683820712088389082803704663641673772377046796618999692999034911359423582533268486008427903701179941742321579526962903693358297862946119985915122290485728409312913246996082799775059633221755479784096915830922820121807885699798887705216982160555208711996030918884716577005336265414658149416410712534969642390360236411617922504609384107546874331400974507552083787615020808728475109999909115282908486107444008775192623805616319764169704649147016949128415409595731728663510473609523291658807848295575071270368316685136134264722403275135690327237451140083072843127946640006077599895284546212879832058579922746831284744977483362443479522239413206677434758672907670311397318631188291525797250675173574196313189425100068792894560191174968373088330278367960957531669395975115165826471475618283013829139281774768435460368373354978888200011099340130886492578702452525104654969360055431646612284456071783907754187425855215477622077742490179541725753327851671629838428299030164276039047377208113906891001186332980995788328715651406918126151931204675839460067363696351318963338832216507989711697312145634083948100793575694646264602914400137825280121229695341700199342090345723999592809263508098594613202596558268602271607838688289027813718186773933371576384504728357633514077968004492471492317417691547562139156491506823428412346303905525618682699428903227795237734020643755809688631330049277444637898771955002880922184177551192832958895462414358813246222201170557996659164139450596508993583978519997784584226749818964750323819276833388515381861707709797256707829737622690736803443168695551935066011886244554565707982161397781965526919723628724135424146456189965730550335374101603496153291360469562704328578766992618388681100263359907795880928246726528608854295729252270049929016791815738424332492363717573093147718802858587955181768689038638037178475644842820114284493056533739494639303932686703649533160911649418227329178560228747662176947386982923119085894337261347756699841914580937500220564748401300109484781288263946302680727136589314014940007716360663526821727675233065180150297607043240746024308084602403576823209713405905209123491909558014887046434627435238412850224112746541016998496694517253650698460835369771414819984193229512518534092696353304856534259725149413944781379699301491022374804224355837119377913946220200882609526103512217824870631010051422012084231198436075352030359913876209781850586672335173126778955985834194166295581074921052856414308236074593551597842288236919368427555680745551443436752464882229292567736961066902887153435735738927328521340564131182948730006312664174541607078339441145010686677160873865406707881167741661878018623644266828149836454373950814160775807717344939341077896394335094352213507305266038299664397270939415654016108726426544566418697007246591177603655593032593405597974915015137620895535630683950401777691484850575056954525691050275016613426758125292716857705259801795173471163614474983604766143363557953774616547590431264888942760018630154981837242630656838272056672521117524368445623125302814873070795334189755294940552611503338095878188446494829767280513416128022456567012173395851356944670936198222183020365633934081647500282701139741770936823576099889775741614117555030573277289739139526500791396815031150007454670464242772553937860044580676565787127067684293335359698143123831187809084420265751359310642657480398682149953520008485476808251193716891211024844897285271837469505479439951630270395326525093919782479713160864667216478484025251015394176437262083898690480712498306190851646094645262374299960380619383681115258818930093333259705745200647110913224485367013197748266568922047050247087630214093966852749884277392456317462069968909386209619569640440991016547016700268583282211390803072058052069403728625892599650134785109773397702918313299749398498365153555607227551826689872009089513751512951814878371032485052421924430409418947806995155121883886586202723194365512045714619873848230344891052543263835406986171020825135857593392851461813729635563743142342671797558059713769661261828837827891140999891468659998023799160615063089609663701282496332948466570246944681929343563913093168237832900602191515406924142729709635314287314169983737210974893688496973632471755652814473261632545208885140851741149493187880807219505756539937874601113536699459056387317218923256490247416948865138340853551314500842032742200469431152409535824911507702077893142122324342195065497778644018406498717903787799235770602843955456338443873512933438275427194380703793462801733831998449574003566071308473787808882331152086780267450330505277883750634123988652032992528699893656863493879114626739398647587087852691332791688194098892601661979391129978785367238473835085144260016089623346075636953787682097900882267618970417471044596618354913211020106639847860473933396978942716293755923256864129472725186637129075951258001493844834550551647101371780764434568641314690185909564756424753420163042080880572008593939083192567342501695758714413306366231281924444851743013321821690215344993909479693107322532028206968144845313760139332982194627743909598472487664940938870188539170214812738010354857504809550422831584406733627505632005131026355063095340106219702183017731523357273479354776255874903061365254214139175498545574601108253065456852312419199617071532682078674864724688393991627629433107039703741014417775528386630772883942302069326021670086161487852764904660183765924238902565282836615825225216543754262106102084648896966889168007324967310495026327314394083871123155295773731441122890414228395120826580988796812940954414271406588746572670801174512850443120242343340242265158779980105489009841218542945340095061673344272497916707735813073139923554829180121814362902079094580694134196609774586789679638757448750342524750624119387938194485751390581720365001827973938009130401960989118346319783530181956203361957602181034243511776339762588144448205566211610201829433987587327554388551694948396150717881320212725416362283465448160169989418426164425832345229233193188889203376512362494959463127003879197737406692250649497636589208414215997127205118034934896671452586063342637804708853917167448284052518085596614716047975707792723966462805270785976838183069873767260761616806050685773577454355102920016338373986773511038173232526108556127799122408837470045389866681756548391486058544480818913062753515227762265383844774445053660136970034881439186386749571228133537632496312272663225810912992008545033269221117551099785042580543584265931760840836471581038205692557127088843082601909171766439690666871047494400497988243093566662056853304806855956521703801644494929889626172002899348597794785725567804039090439417087560991626932163878655387686159040707502544907875596533511757372368449815125855355971667308848306801987431170932929076836207487459903091906752836779872028473870450662857925501243362462593028688219439467522162052278111844072920104633183812872508632263502595770955462507124388454463936956310287386266234430050065262160305718101746157738914870530139309822081779615301120089363842108206621656550801348206415962396449103088578749703318198667082634580147340966619396145429467375637999425292633458852515921754708031277207283945516663823429961533826353532578811161639003701385551464487562780693346754207051388744756665030048238824573147026378544106817955674986964225564442301743078647441036271003990051691712162351585948548337285155045266090596650227262796765136999568429317961182149745122981229748972834331081663336669453222294093554826542608303840848486679233566507855592764402422464272686685100578550936747878817856559860519083990902827918386213956542798847671805098697059824325763531092140243842427499446070658351744250905155008790593035373744562694333196256723904368773131475683034040178194554664997359515651763900891526305313938623349383422885289869378748230094751598984610933708590408741799133879237983738674129585521574283152824156911053377650534087395029264842197749131561367404643450054667265569121910491807787426257750310032979506130210126842912297572335533896273145901974456287623469741352811132492080599687353769555152195011425213101658359758292767608502068716585696018147831689892645186762955133084036558888291994071286298352740579209811193517480482373896033949958368069560533899932832297390036492161694518719686076673075648624031631004686703405311902734801631625137916152222580411600075173951216014906752206208822962514990995688662233365172894259557018021699232502112929329167118358835050621247029200022180923045642064067542729834752498715748894200651193864748032687308234151196695341861557646541540181144571245377643002438737287905138722607751357830645491185697305061319583227172678598075789979431777769750643480874922526384930735092040858930743251034860780150496419213661431577595125146485200918125950887955791200106606096122242407294685481526459690067622464856820691862281172162564895001405126396487306149655259479798690183117008851493205151577345031263047313125478634139257715889495632257880276300529735020950727375875415438100922841976714573079852905068665642340588182428240061232034847694281706237575208162780522693618208615644710785691778251874632254285551829520677960397315322756810144919511089566685118939559992391856514360750261738365932807480427346499842607543071143277426219559663251431113792789144027151178930968325603492357027243349733037920209218836899749321497735616893784772712957368254699753006743282223730706785750760244575894272176041646738539834569807837308890815871672153057514400612536037138864062374531477752909276983504036325829720851466811639721376134437350874555267417861825907715689536499458060663554047785738479629613964876917313875617003474137532473516197950963603194982122542949772472157664451728764673184268049842601899258718385540945715960410225892285378574495375060511901579311328001146140364121376404297428348453143497684523864722609671193297842588052796452849102518277290233522922193137099519608728894799931138306556185294200660925207289879275018918633627280966999599613916214721041617173066128366283096308346762623950121937684921052485584166345612415945129840525309735933976236270485326952605884665091347906727463423571575460716518422175551411750690678088146730349995231117034376503406226023873105926387632765791044906204124610764140480502581892941514342371762909070041181146943311276182883665922130184928960092655705465589107871095078221253815527406853296091398474227194102539141167094199563257012742364367121706530801140489216193461507502428138790154713419625172176543862166039666247712188857164722716825525442023522534704508706762686361786980196322026281720912158445609661861001631404557416993662972228352370983263295107747210171209962835484203871069420674103887205914545071826008788810935675732712421652250432848232065848979616777497014963730959299250472618698713588753397290515302073282877539352946170920299037129277222335746141928114439594304420892189126609221279635213487725027873718159705920795159885000503370382582231275752465374703069667051695668012214691219977328912879513359331611461935140610538276679339511573703473081320034919152128350823568757985217724224805999852302401746176584787161046398695837543358342589039562392835891228352231937817967029899741408601091854082507262154561389798576565676987067254192961802833218259833734596712624199902490820478641102065678277681481301319706997925633736244955602347143541334168294811706480888408666244416154356932418522815667057020565008762791180395033845726683450757908722194043651651051179953964705538413664628875069937669709070481260454630703500261040470326492522428500128113313332763366986922543027041780938665697682452272358352530525968672724072874860879909125944925679875390857956748936561534712216670940597011925198045773556155820734230878127383077494899556868774842791538031345407344127009925117585758376601138741521978884354102654331419090162554971780802878656847905181276131535715577082088600066527544631044431827795332260343818244714539975214744483069843076453768765161437608729103035960983602849918415094675120595386700515673997131353956370169795894501210751960308305056265140914759319891255691386796895706789608689352320710475173080157427692098501500263158414049594851860214430857450993903876471343498183982247065249788081986238941348851860296855490877301901501792211697338285408801317397682943902784974371493803590833152258275841735959388150256186041260896350227210047308074426003124618727783694901500852456731342525392695256882325085406131596237413437316868066768487282430495209913548098923559131471757851848402459866696974372099439288974858072103026396438797645435875075301992184839785191628386299148185787515845222929153098348659243082840180097724417675744337908374977641310708973047188660539607067260319322113977844046399986722558616219033996508241666299961720239282244383674839613345734637388118416601288740217022673388317282053352157815661006764408012777807446390754857760091471247122162699273536179001362662553490006261277184619735415008051524227138389704561282003101275679165239378473724309533422362654174970146844326246885469678846180757581430691052886883641691187864934477780525951231251933599147997882775191782753393694380649572837907736963195807021994693565574512658402418816581701945741753793699966185897558380828882941429979793308606980740079784533973118170853342677378028323553378472370416388649983029088440002348060803450054518172804716455887119489243442731040330060903971849171947205705967718593011146072103199518022343031581113495510822285070889167042294558115837785806620538277627911718394680579180351847568236030492324204582631362845134922511754329528526128200840354242591504275298657772266325861033946307382686084187542956700693707633310374164102536165534862557527636379448141036210701674884175181322372770261470912896143329012243124901449425368037390199621905623111462139340560103160162177392527827481490173163302284243508908980594281252604285302384965569192776077206201104944545814565460223858765335271693508559460049944280690845115578893574784690056030948193188562462063432266121026975144018063437151669204876590327812466055409438154415719653209391611026357910308759225267967746254591612594938310546054037345600211867720983584707166045442357424584417158791194244156361980522107880512282047247363182885542082736407296755222021591555506920796235604630402259696955391094944768670613129653414989554008154829776548302315704451722691589578293841782483561143282794433930916386306682345311787489258139697673392341200555492163121662437063500737946836559514219040795750267079459067567190184404228147574120228713923724144397022057568661503676839272252069962686171905647254708427102210862517494215564407601100002613441538484040670895083981883448726352899595442804241476856083704257719781197049378432294311585854436601393167089704950459758468705630843024069591432174344942576155017500819462243506363284076093209738927644553730803483304932634730151405180184863036060374234074268019088780151608257809600436071499484147990566487421831602299413157300524327933620064345937346038961743100837112945981260317682395436448671744604167836700315022877927834665053614130950822217231069542478111908550197948352550341093202734920852576292029024855459522377449460243814170198863460861886816427955582013720165779776288363127524456020914820241353304232195710669424091584279504890518044992254411978254675722966358192193513362083761754376093190927354451641055059112694044160740861250312299274761723164517623303377070983123416919901171246044320366246213032498453671846772600876290596028170725245224372117680498318130877534838775868022656207902461520544029741005067040516940867993922576183095694112490307779380962935653674772597244034462755801897649117835486428752749214800941798860035159004025635736953057218010324796256916854681205554732399408857196843614565887864826305440949554012995056042930877511685285515201062111265731414192197243542777337534407589472022660913766529290013369589059993748872390146804046665323634210892136571079397097752569093541911648336577212251023171814958503930054823050233846116218957158910944575833002504592817470440035327911290637658163092871817898654965544488524053453839235637099796489869886609811847460017728992411330574529950879223280115518646151489377002513797519759481878147118741721855972398349023316728007046585087497762300971559443483624911364529257808222386565804042531479376731851439970551777290308725027786167849638488441605288586443937683905483783675728926877266091537259065501875177959987430445045290198445299394712436599311820583636372047985391416806898634688104801128310103741774882708065364242417467843425072011410210315725274136427394055830298044067568475274366587123354755683325431696357938228462482435040429223674371427187779006281917461442027388999748904355131992735524693536209421765294115705283602344396915837483748912470554060096858093845334393581694694369471084220697522793776901465711409970581135998252702267218284175857294902766925811906314108981975474362152688434811761018126196602738088901663878901013864339372618344789889914260049471731787107709395559860066803368716884480105121308846439626364327076364315194495907265337940264545183681221301836302271463760121230635570085219696850726505452783362982967612937878903883777260815234102241445767986225485498532974358217097910155625074624782744348440687713932167184324256558324215959167419217142731037231818433304422164960765815986471984155191311948732360441820681373977154319486039878833526894317580772747906228818341939433235610608400565326984726806700720475596830425840028674540689548757297244637491274403481555188540994003943975222690268887225498294320127916836040120154359654014217061657914410001767387946571190083480437052175751766097671383958872817404395427627827087411517709320307245780613828606027542550156228602232758153654336180730018408187906479686359415916035004668713547099718746132484049940108786937374218427086558867572602932152148654593471016061418240692864933792922558391187163058400907861246992561290042210734780358590529253637756324237006332964700911664756678882950220622086410449146222876686516603993783573449394945556888031239834172187833471538618823656770401427683986216929029736251883379747702461792916336528057149675786821039594317782853820841677418189595557774791824040152712721145749516531314052310972836608583889459660197004139772594675635027623947140781521562971134496666100455297750872305731207267272958298493482135971978588300051511985286303389548302151147523882542157959816712403572678944199230046490830735994692686976253565125370625485034983298782524338024197860242093791541814241001923571745244422580612077171527573756371200234369230636494505012746780647672657459234726970603074895831605408270799069687990286758616616157164869838524733469666604552046686308073910312200437350931280991016677459222366999322258327773265280833277118045290688865192922174736778174545607214990155084424362781037361274967692753374159295554425484800791299314998808744230252450183142797578304645758352236810431174521044125873598348934360570468186883408384965078032736107700714968295161376328695938487646872883304376931399898934594807015473754243275746377589641183572441106283049634587818152711969915588031249887878278700295065783812207437191403931343182204344949826132947263496556367680070805779750112363495849261444970878133133221664187130583429286535768440522823444125332722335279616345358844515547301658778633917455993916897719360333807707860674765466836259976920763698957957003192424027571481629405635127233865616074234279076765332625352413849567004524670694657858167150753930613131635943547747176092613457485930951407868783436312880341506669318716809525134186016904226249378247354590254403397295670301167393983909652502114382508151278949635937060643645470079462146311995714519888214177935457989603290117145753679404328230499043153518334114157561682028040237964431473924419919326610027324892069708596898530061803006756806492346725241422799697730103801987177248275080119877313462221988261470898668929440957462622392580274110295378011719842287670095162927434175505085982232334690033538928619161620401774396736196047386443370892130517584328095882552590230781715861385891049828289629571325631389076133640090210468851502660252040674115713897983459891154933905747693224460377132588038871382589487828616942192091180103815315005250265189127479163959267163451849683756276538160192413599892127736942807287862709787255992265823133755416747570629227819347334563246360174919590497486444917401761915541560568473030441250767312140857053126767946748954976279868661253234566834879856015314340266002187903125297021295934009740883406533165839342017103217503931977275744069267560154387648350695127691248161150828842605826067036179903865183532292028064777425695059948284239832021796782865369559687527431030721992608322480422894995387487400941106712096648205657178740588092108740589979894805228588111904174728619963436220899129357224043923140833536950816789035360742919741071967190257472464827374902039474254203472577243289131771794770808960479054569672693739877631549478760650159719558139822962874818912884268864191081362277076269834133973673914639121353153723058423534920241595513771935453289949568144039140672798393918428623710237157041339554475781154825311397022616507250080278152453060816411251256950467772125822179539222234275907979899163783272727668790104090733133949563320694663589953936997814110465241161898485711176477599534912607775609594231656280111182609146105798290016960747847822584061298255863402543226880057453742726078985103275109596589375123990300861178152939459946165342431994084630295757398503200625930176642470504554587152943409237043484780393519074215420455732099465932904613762934851036985593311451674358883347677657672762375140650184509706998995327604921299352633169271583721967852184866290332208908210370919760191127085685838388894263658142721755955884893679272448067365455578831894988959567982024505356146628146547072610490705613849546266081549956149831550932861407627691227392189707176909077565321684708005873392329236571372436091413097292364891928998072600852405144411450568548537017049987713487866231564831837785102931879802178713000567521981900848009791953523139436990936336440511987993878410593753218774924681819866865015454218183483635923873443593962473939944831174852591562525364846744127980680144053789031896241251575568756436305972715492938037264807828704173565000316055459423941158290265661781972152174935029003480688167872473313128657782112167537451894167314550500901454319721846078689772245622554516572450774136371166251526009322180252023814014397661702167938395775508199413564898428058606320617884247216101555355713628647497739658877305687643684421737224239931546882956051582523243615003757370739309577012715075745078889232385127798650617718014606875044213674848702069002555621802832623011508806872927887654270286613275601359716187032975343221430955452399047640511026885663385772085544187825880006760925717968550659685283822057873738747525915968391244319589379836647915504478209581053179679431221758307650542262778020098231809176376494170947300514437723146339412546868113936573150629200219929430451493854135010661898913964404436404626377178156340398789535206244538372013038972487390605441569784019291884504275895388612325342203578310917791563895066541892245310615358556370626389953496412738425141809288244849439407611008530425591619718285992849923336300639459250630783163778034054792504466274092017663158935872607271183435105128730488499361430734026840018504613091073661927488914408175901384124351535260145038216535918329055074951539596150728097316142615251338256870335234012245341181824918310305761825333419306690129811256124505935730632282439464601453830380432045743293838292580477699414530910820082679817572952328275606588366906940355091684502511503520656426537208921898904964266937058860615059107362000227011397836584942325044213779370037197031858158861328920153504449715327870548571788895321625136723040812682205779818276159639171098729954698827260930693096688660303407195210094031460778807062376718679586167477353767112109850094790155258865469940653142541392940500275409443084631246795574163341319340596519326323667348069011338088292148982384482546847428463321795077873532875536162142899048993282474992552987996925610147915864197609420353027514616651158960651700201745634859341035093289572444870039524115481325238318794691834307782388930125820340410689412834139746446141446973920116947164431435814507790446222757141728069816310737301565708373425438634324219395618921589639107030642796041915533172837429892324064987398428436852602522550737439282685345223541213248891733645604820487991798396977262320503714308748733352187103931690819301530120729055316662407424195059093248844847129271035271676043251204002520208827146063093804685960050626351012501070137788943454561444481279243138656435918265530622505847198351806814269080472890287276120940124220685419587473179437153101332952222202784988530903062307862014340151810269963633363904703419089180553109484977645852694335577412514940636411110632355172771690990737610016983805102679106151253139046932335084665934838380250072663681393109084535395249735279563091579985631786939113734954341014030348860602829432112070329628574735806582207510500448186900326612244302168858812339704914089014358767211508732798066888986912108669023722666874799975435609252598167890787924441761559775223410016161087282666262601127404708328043594861584366428422702681664333680845635644250617160842360699960915280585304435417491437392525462239902939352936279996242097807515354328495049959357443748790015768157538967198101371320457213160009902640037727903159000022095257804989919741862684203847925833118307475979877977691040524163270248262272978406760705496871253891781892383025071678817570958537774972867165715553821146491738006045252204311612204602584424570151925513174532413339684910045303681059083665178968763754786635774568788444024183819514790486536742722434934298421816440312826293048705488231364265657808153181240305378014335242573373364461516617491988274241696986143403756628327854552860568373188589619675593801578733158581030085781737292829880377024041411954162825170520551567330191952829410915649165526896274783928854406376625918741640175414093837271308257110683626815537600208536048756915974539381677480639736752298407065104557308431261245099936595962282076840362597562078293723959048385121536557695012352396507234796381619644974243514054681773868311594814361599070908317773050464623161425129820963843044742209063518338427048627181265537416234619203302301825588972871891810576488925817517191736760880478669777962195035324394003970374963568196208401754552721342521254064974936075523587627114192857534391587159607241796498503788942734588828675113326438025875024760197169367867739397843954175668465481177424164581982156027146303198799067433944536386225034362017586306702812481125307174110454489323222370591574306343002869452352184633441962749930684952898992516810449863481328627663697533503772239424791441153289347517159282411726351787783002205225640924412034639733833032341812319124801439458854869379368019383196831000128906474013666591616083725502261093883953989109760787814785118962307313119264621883286107494661818605173734824416630038003166753355347722107616730296814630047531069983758924396428685310116799297844825701188118448374630667178975240398588955706004672772078410018222202818323426455214387903348829606582880290212979051532239945433466404908547845409960556937855096063985601697655533476099556229723363227729902240809318453767961710989567705979179412965559896617082778398576091796788553291600985499517462690234833948585249035588380936309019197402212114641857238937888798303625574393607955700152675869395275918256491442701047078446228089306261155259417343218190973270948524688231242128300701809150256071844818618321135427537781090419884931703271204367344205353420861810711643516843174495029664215067129970919700887009944173419503046848195004705360419612942105768952623980892664110493993667443019084594713487830825907567083723260628146434709075609299565365871648903627930033770630028263426139725165123586904055757630895879975344449853642810721760917609313058134044031035107071699319170039981762718206948636375681890288133349077983565424333403308308280452140014601219706917231349047226639451086050544789719906443053178146045628123874040499683166694161186214360037288855604099846895964271146042228962105783595066457917091875238725963527720703581929928215910361657480549828495663647099362047434276573386707057803038225010880036729507520356024806203655903367881910831295352390882919958527366685623784120674639887736346866030098439468331428239854975862008156489338793902867704672432816891451782175206052145974510345075687582682089065178836794253002718098672048368136961123050664184479253126317339637169068524260104286579838861538036942677602852340812310485530903913284858349315282759961846407957733336871281339958498524815987264470960665653296742038632989505918015373234560080790768855105584336670582396492201561401781321310343759128318029186243233290822150971367930116883142079770681264855540148651339813055953067721203622879839131511245604722379361309550419191292749988841743970158560915222531107955872719969948693623693951926357640644200743306342566168431379052158042570897969294667949088852584086938940712942940083231508795133081712899031178602606186553761514294678786192606715011637597884486475424490263426011183747614614064347927033909827233239570297762526357806849642399177268836580971504745963455068191598808775020525728459295914115114347293584241326902202205146419267872910373243290825856822243549747119104871108538051333751872063116601710010878881972706844183886465627594879771128292550097933614982252408590506077346840917144991070424943225062247705623347554137360589138150698281690580731628548033491511503719108482126526429650865198787821774260743274690799723869617192987413171029077150756609743592608246877295913839963566740898295333659188669197744429773501857296945841527826571469540450342847065219854998768880397932836594357270721499591268736769387820729684469375894203182266814170232508235176495024362149291768067472777531671291088299809072416767148187634149538227109024706838556451424924419834654064486630803626647540179966087934255255671487425739489309817827121586258349650774543786845287916973163553419247001019578976335482393252608358552715814717578831011056385999442774659854417522758401226878139522333145660568471997529944835277793368411578961556428640608704730454591093266276084131001170614361562357418666848899542929362519717670890291868569913122821111746442484437247628378893408089129104124217664731546220845063478628235926971598238652239381383958678393901159604861953672256428556184601051730571698024687908903096785371294819629154723495546046353099581013736243374745163411985262404083588190174061832417263214658966776943584139297520715807714171825692852052437746625041299628099586368769473198620738286165205628969841476403242166235775577522421101564852884953817069298294519370756258906957798039038461132454851285689044868837348346628658236708979726887718789026795147614769748805487771363724874875670105222597892676336687119045749839131628571469342267625339384453320210983007539418443463869251831118414226090462289589880635743021191196574174442499560673806917823456479968038426066306802473592021447719912242241094770428116264878957017957846028232382298322185351937076325268309112003067837261999409952736716883995441200392044734621635201868035234326168080242622709015730362539389879813693749564509680739999896454631933768978842435488273001257483769728310384401050277992209968144734244286814558839152933295415528450657750125064842338177911526567842108476617353617572667676187615511279039476973661381463334405747876772502777767964475049762481238663877343354144375580948571491636276491920153401324782379399842564826888707549177639056615184645627366350895386801919759767998616854171556607968875980592856584347143451515508623098912807326068858675638278671925814874573316987821011936070441212056004217535380020876730748218666481766427499647405070428726442003412329625981883337541429773940553624168230458617217090796329629971416780341860743768620380786338494918390133629296144670921147285955821183334146903891946608611261213299328734264831805505934899433651596029489656129899201170353706323609942591375938465007778163864548609733578973208917797441286385286236261953734825433138294776364821670525072437869234865308668236278957803635084450189982825297264941507289672808971278935771586097069805952382919431738983300786754583810642384640058091126016456472479764598054983361638841438631707198871694614149855953098798954111158604331260851134551073901994946957899371593871604934637272351543238216807200274943374811571715327142388469349285949190272815221135211115385079533904629723191783356532243540238162389716968953250983231282365937468960425611651853686484636208876702173131529670071887699651192870783409015230410043082685447327596109734592927092370324074307037961253509026727811916068686458674399902547640582698236667251274485468667402514069627706565409975385148755057415267648105469615815160817193565728752809066146775185818920332059344926744835858543485894180413626702763647148714273328425642655903095540698481060622279988844295708405471096171503660790437627348138004566289039129078539415291631463676452628149538225787590828275901639509003287160228534790855930365798997419992279486840319910701298848597642102312630403267181309067576517280403929061001795196791339435677701773160222721192183633703708572892511384545869636387964057155977132807981840253774272239338801173439785496327100254435892956478802097165883214446551770296926402221506151638387457388142680301438514888247799128474526008260608444814082536716676149101017304562431922531072620655883193978753775665858926425354067301032632626818005163458228148451163046722266643157130567654975677919889302511169763570110861200582334563681002717693602159546334001224333266808562935352090394129243202830801665279213802425786130904240697344890661567508397886789689289985868487580451217797154960616055249079945633120891200673195526363070427239615101333643770207127227739545786471849484130319410683766045330596132381256005443384630578010096788525219241729899634186663925288976533843451338643070975389495767418140845635321022565712462308569104725487566465613178926285118406173399299237393101826772897509175748626632706027218652020809123003900099328544560938427066158123097712601204290432230507329999477365564869565050817008151354393779538829003562182118917544341143337990989081284169911211766409402293271406820670536816528180235834479909198111892507603518205420018105839036308761572473801740010886918217468493686982878194083487768799600753117405448752405362369933890788121936428717891813188435739396832512947747219658657760586898967717376187018666092941989139823382838312048382035880949529761251731620454040820054008232838588450075349698496414942376492692926054606413645797092048464650108372250616223268472403347558231329950222010471760239128490728744148438631304305695917215193466266577728315637751832228244143985773033194812113027466322605315368861167630565426978025117920822050531036041836328838944121825016279155684578407258456612695629206904845210232799730127512696865329751376381332071397141834024919107298788523906053981116054354910344030436142013475210450379741041611993145288126791694066708712988586845372727731247648284090271210634005904230376623457360597370291172619981299205285393839205279962338939204153978063060499777677160849500028603489598260857817301851233393353869575628271696027914688886385958684074134473823181314479052911425397623856663509567110523743768389831538075732803404566196835687508924448876896809528556723791255902180253485315729291469707204603329595605758150740108484439640340941575424503113114780741502616953902384128750927832190753035165420604269053238715186121153651584568906114713356240383227620748459904179082889558642215057570088398172678977466615365472904009789086427477833455732105657738634694445056584855917511123246345165163402746759454547103324005101825729827172303895303346723437222748010228711932825356185308188040606085146039538019096997355293016245720407827661287604651140583112496482231175968673465559236982570660358754180025395828394203007363198926123834469397262130742720285140443696600259992093575059724694984228752933115956993781828281275015107993279976656931091084619864845631606948885629866527279730005952722870805663328138692583547594333941407262955022239007159016602120694089255515591503090823114238506055200391556353786081653529655053827706343620288937316440134673884165418919470233030494280697786355540748328653511308446797907415070960135793642107849517571194059360141408234827307339834278316518363023537510206244635519797507482141128009629340167065765446348947609720973589506296271202804432021141542328739133464265754716308448657710278714394912978352212301001674104689735051217820829469086951875648540699574558449732951473281334057450292798327347386490290244716123054431462924918326953565735237150798366214066666485385479020415049232968242303259444585549989641111397198406201356088906137541062948405019375835660719015256265196841052559809782550605186235089956271614006728545954081526224774007998708365452815961640104225113057802329040360616600498576229603927567320321685179403630602535269955870321944330466814612841773339369241502496271478655872732592687986689878695687134574837959024629201467136090800095733314329802790032267536411362256454982149722979948067525088480828356004598048734288643380799899818880428094326966075215731066759102896775844788765507734265605959098468090202289677901532394376585787923819922821555020236954237864829912688166422178023867774335428029677916513791699748458167403152913298462767046757065715140228713478046636309087316791766333658650136221861390627552446047695237971075431821736735095616138114887430811824213977626400964193314393728990188995074330422023190153272251162774426438371597993837511001594722809792987503520976848723251836898592094605780556661949321963776072558866582156679852484215157192050269840897790937019976532408046758549720477567193200892008256230823901196075668073218632948570060289288663565049625460976239321304520317413256947889763604544835990296808199581753760373811964955167262158989047084739642902385258173755673646393967039438377769257881576889976434134862794508529256945396398990076324634310040742957581360856857875474945555829639342526215838919342135206581957004209963980919249414820132979802589641659974282278484062173522125121351905268342934978227052429404871212345273703668265822510255798306342303598250538263905575403588009054623696699113454219402324810413900156001057903677410656625095722452878095338588421607880445448277626753987457158790338909028985022265782607588131563746647321640276509191240748571184559761791590230441091934871321217595038650913731992582029876348130014816569573207503083285283985937118224675121680578177235213123251281178794017890307208835229670849774351765844549009093738498438947129524942999778682344914895146350046881121820963103408435305802192335440109073324007136912477129388432348110047127480787026625917409106472560497374546207257494521403210600329438407728299759426129005209678424151636941171632981581921387489069697862696742661847603802120354968339560397954829978465698321638231193671371374446070983532975897462512181262530839868078723373474606490932386520919831458862851274089951154299662798181446908363351106011201066622286271845084990467378475800198178863844474804157181754073289451730195512729461067897364825871636277115954375158423190178289257766626513713341011758085242081088121457931287621469247153685035381756053793282204779922316033497312706490319352920537864579360956500882159833655271595687988727990766320691697303648278088088272865865373875148890982950824578576293100804893695457435216685102475784679610904294918392265838693760037969641991168246454822026867099541266619513704135060131218589698737794215340673875775519697115671988788670933074445293195589254407534211322060412945612586624731552480149613776357897412861864713305916418168498359117223178328294488586965628308270573569799834736842426729712309725429346306842451276089875272323632523687340120516635516501481495869312997264155923435164016277487050960136140346117360717984920887013834087626650446760848465205911860675182340792364287524875673454036817900444071224014579121306091467963311975959341138171088561756419467189313068431598362421908949029042066969956614760978200721455284656471719352881596555143104410515978117629169190827797543087095124045475629995439698530364535565250155751238192167902212136736246054029892723033769401811569933959528628454545354992550123646478297658396347631389353909979202960203882570097618090510892205599647721607244706809666780548583009490715735060159500591480260709123812560497528091910928522769758182834613642382601775485241376568411164996090324482290471992511505872372832024894255330334548987409543140120611926343840099696234506873396101921331529983435490885922493347529403405923655387871258372567132537113640550896237703017878697888746028469664886415520559921747103877998574177715822101518307891763233302342054653214832602579548682131683319326810383047034148370731284611640470775108990214680480683467831433901678811696904568614443316125795729234950661930945691031717920500061208187065747141425772158716712574096523622015762342751246769217383367256824714397077910535217645356103047525177193058294575380157328703494846813379686457556596106526549320575283943308046269760217593846520543793197108798732260623781068224428744969724204840962099679525498411745098940980689032176332420070818992512818402265355252873634224563087923491781281527369174666000381604169787743018053258957967872417639801379773629269313621170562663673634803292181548266532595431371112092745811003610375051497375887285152326951413336256421482778212729150830472957536525005439172689300373631612175356850072898521119439418827322690411932015712867036388864620524164774567052892766280944169846967837307877554860402612822568750290599229888970111285732786854878584336282727278985065388858084655790216279193638365543334314065511154178611553311666319162301189367105886973038078753283393922835779074148233724136922254243715284108658118285365690805376184456860328196039797866742515202686833362841961985139082757960661734833580151834712391052386477366482714024535928841201630290169867497977692697938729128858513530017449191965865569662143352134167647880390429826002286727400726699415338155067132231015976898786098912426454080556833158461275677164338642049980047887310037286935627115498030234263977595525068352208824094261832572040268650052932771047894725536060593363630692420873114719825348491517388839534091087544739387331420247550721408654486396907348711045678544471819530021653230650337288297676104664531656252309077124652993772581355631691097908983532308141939182852985097184776435955413720957604818757866000557450285269070332158976745300364834378961784236155293799006492069948257805767224110341504800084986824246723649998995353112303539473794881622460786547527105995168532053860660926220222725737439683256834840459369259337051982336634277837689017342515613132891620690923930775468801995132948773998419626223403588862243268983199928185217094546338972478116739254752315523926286883111114793738128240632596134111925524251663462044911072147120581764134241283656733822458547957273055550221986190307257114290096666239336193212835307151864208533947919333762387700161647904646169200421896206230019452537085718228535110389393481983847535292296963901478535709532192003827273748891388742344551725544684155085329883825334923977162941080514936144896012319176683885538545041134970999789770559230073235577105724182653702051882532960510132561825271598260983684343779020584593433804268899906142911630622280681592405096049320929677501202033441652536893069283127503445858407978505202933019946090709671573008427367408818279800024958423995196895226938746044898531561489355817477568629124991411130242124651687319529421116076735536584091335027912080534783744079643382517300143103129719118658173587000066903843186652702454287448144169221159771812053061613845126136737241102570852464118697914430477966103840965296916223514586346464319777244824884077206915615677367129010181370045717714817510238506814755505335542174110224277545734479196357094719704715376858333895106890902116426209487139989488334399063081176594365233636848877603295256811036522313689760414631573450687714223472653768695878424347358154237218420081113928668192933945280480555184140998660114188810437169867757930443478054855266050333423271628946424430702727398874196360190382969872806323449277031637478257343658928592793554976249421068285891806173508628530900457640923078371202147435162152473111990043544435987211394587341600912827589106933982028119263470702185659599172699685546200793683790230846982730095533317035002632189982204703191613204244493958300134281641073627129247646087541875701442418638314095922270278844038294413622947348067595441267506299768374498541943358677812306421792460396968694356200822519645653792950351515528354061768196679712307972756613729230175148414530874929626164870125755117819211141676111976061481429059278426088988122329043320805958998647226203893041830143883320180201114498078247443133368770284000172840900675778597892800074463432032735133510082263498188775208829428017570395837618455494189699274018315674139861418010006793781771421875438063821194985118577596282455088241778736378620093090377799410581180779107659826248385176557218288109164867403464623375357521736873829937317892247343314506046557089041486350923006822296627611289640881217066483159577240924225883879023944605710358214184555066557031364629836304889191353249612628410578054350392592283857883478212501935214528439571707874498959423426610488952349957341710035410596345861780788663703053362470573661831469807865858165878033717119113519745756090263363460497392959536288727301546803802823897408038436898771289125441958462431794103265595405918257878839049987114417908098533419272641776479647045450404338305375606843294043956045812097372695586326493407652373791815482967439041102283207382661142822036386217265718616825393006917788177305526763054897525999187882546888660271873586550776285776117962526258965122111615942247641829132197680786982954912485932063786797625051242288098352150960190940158098258298354490335040457472888145272244122168992484787044777594460532050193391388817191483518910352201443697376144652878903113291757765612757970839073812840714424047309712057141528008605998024628943619387413679895387139600803706735292351826488173030675928702669523054422773668115765184195049984230920466354830404962135609558247441855345242005448810890731223371811766704628168322748574461867572558321513794264215525193026190591247185897909132392916745318376929824341403270521940764216239045905575165195893395716462771736698020115181869980942337112286359745968936360854729562093221567475541329213808723191508975345801103586462795748438725387493545251651422542076089918103742904814205881540237883676364388861308558657249282142265212115772427064636984633467166032462254981972789967335259902055368717862367820900176478669183164797067456911967116625739233284584627485441395340691813536685851568848618518773815812158386014995899258694641492219969488931563512966967724689771111798586975602239653045122577933787119587535234034572539981485106008638548237824265811473544088237232805674287869944062407490347848944119530231870191535840242698793492277519588857648574884570649726560289188078175159926570960139185513880335016323419602560337727085767116639385420966277781201377237481417231436074141924939245397639471159146265330633827701035868170967334935718737062937026651384158164009542776118728798845677445501912408028873991162733595726319623802056853778404890018328217718326248777875328331903955993975253392507175890327219991957145156603212884764700978374295197576573528719313492567654634189416085453655733141211509305051529724252655307444540134318010136689078378259500184558053744223318541451124234152497248280422806578382779635548054325837731286970763266793759926465110667554756365502400088912342947211535742546630685843879549816242399939289845667627444522609649191906684295842222010938883322128402930263878586004428617852160687667566971087390212402778628637377321341821780340994340622509330795358906929872610441404855629208663232754532029318283031980387112404313638514079474039818206084896100482846730409026909100544418144531709626090372555508228373431382433393345899534388910136769082554796476004182663087811212058506992280862674383140434649654937236434769941516777146633967423465351824903442039102622661671718224528077834916332044701183313612272903338395993276922110730891981944462065908167419409816900397553384544632786262230419339478617170601742777145136778004683877682172586285726541186070968960321829216196846641540583026005361563323895952396018672258762977905532576444879022595313885402067042844675112354145481679038556360528804809928446854010335237243729743624674360922068605455521204955650022579675078148472175468103884166743457165154894342672928629607986992031922770287142573555028460183945117827503279883387749356499860295691706066084213254866016157511437383373548557962429258889328141520983890433691926109048120524500313253075316491067448490876103647395325889084381302537905399031519136072304542975271201681979061327949420675432074686765753453295638407262748610963429357380235502409493232273361335062444206558226544032645161688211113547248997980084359912146207088881375586069337113402746806462649419664327701466051889782883769266251996852094239586208349836350205051732943083707284774271525954862510988685758610891246854257561890794915125789656254161107841412294783429808360004636534102496995020584585175447674149107977371156561010977897843394750627551769686496113570975894699192400237552239647428059338629902033236974299515405490859672957617092284074157901114990410155269120937565354716004121981505790992258831235991693009397205729498288808862865233622179253420021277361597672139024694250761336430219459122559676575437415014927859299316561050552029408166363094663574826444527977270940490560938457547217996557367472116570010123472663346041826540795289658229352451221175998217713958241249873819393698697437953781536217405809188536278256425375360096053562641401926701851464558499525570244115394828543866669512547512487609643380774556685937165167385435945455824909581714330268407330076846251358096479440401452627860844035394638168294433450038901198126771293417144929208080613642406826555878468999505995426235315887550708414928923154274026553895834161622230960593124380963696824131338713014657489691708125538382273639806107107055420317489290430252184359555243710210569842996542821862920944119770572795911622010657791587105639338732140285416890009031428511342435006371315582149247429810965826456815707447791943597236215532499505082625257475458113856002692729726635006295898909763531896421239739397039560011200767608450733434266501603891299653712371429066534305325575458920577121529322394372799813346443331139626027752316510509911431498170122508909066656594395084519618968889157129015558056361557089870217941285662664377402628334542517472755816931803440234108744288868962745156637166452611874491718366165474785877113874374834811691753505148216101199076617978544819190332960493494231171139814408148301094830819326840305705363316132525628192510446183454201738681647463639421242710589070634083612474090480556228655957317420490588514671108634298513322956585117555518013178438556410571650809876210672125600414958895009192246734794749222325240114694247063761445799258249032440110225001209285407741279699037778749118292566549399985911496864636757048816081732105846617120344104430523408395983404134018960850336853906060668603332374455431462076390715671486336359619426787820380561564956353217282488430561745253612394698408484557544362836187301231395127257660026779644363484124108505594530692346928541629687592924204255921773333608280925004797260043099558898674843391712415729117801495248911687020335001399017903323348353097070508107817898199134570018753312971456678205881181739535708059821574701474000380598316559191853140817110679727221410419913858460724293062031643913974307440120920499717713422970147276765011074162941640072806232326867687731477578691893732502920500579451281847770696440401481278941512597437869433473176838236258997909320490871754479187284890215233071488277189410049781502716308640100139664366948433871619577001559660919685200725978820023155499730096205951403521748086101251778775354790033218641422601121111910798447946496485046153064222637195558608668919172762389798097239019359399062782889499702819683441949813481764101108531734847870056915238266625930852338947526974445646715949658211557105923621724309908804173467029941468305684889512637691163604460080622780101274107173145241155885431872519095281441864768798166551418342694395277778439328005690889302073614344436567106776453784531126100813150552504879566126909692127013780893893383191867403470627933785494547993956748437072794577089628160010017941942044577368977427673375369052603716565240830883935022798355137030678115909604760078184801080258170162160132092410922892335970338673876226324630890156820626481521009014927214885698778342242940953277460085998066752955149026423508154092539894613096505225885310098580409488205983114468723969448876962700673564068406290615049498111322803853671140865250199693487751220648396389433532713697649994196176649228856877486929371232548619818650813748841608613909568235437529068382371068573692069670705292393528006226995208254866193888437955118797322395445014610282155260255050693396316322253076576301264491717055876095730781209710843230124274979939057614944126647930683006632022299037640831801735164544526760243653779921461250660311149945969136394537851861208378799387874982694193388095433491153456494385383847244148208537144888206918665994266955797435406270176419502549046334862405242464311463297764075114837717383216816647880398739756494261865562301309530323042261854572443043896771092589368499695656490245089849885831198633394687235030129444840384570970639967493908890192826061916060002947080107383068611060014246218935931245215194994606867402663003233474733609961250717884069643207295425892744386200870191856164664995603119959774585365488054464496698347365142100880189671364979483526837194996187643091282765016720468246002756930262803682586885661699209372259722188434295306541534887252976836985243944793585195527394369993480329201921014325428762510263564617619867468879163780885053119372635612226224955370964781756763696176700697252098279051419325982526053738469229550866864637692764016234360601398144221074921700303753185844614964189917342232350052520257769852376131294032478890670979415995327272130377171742432185291003928130197733668316028939517532125346532718873735446567252198847979241649486957968468804037230603044974638233061885837393382102872246374742204602236367133260725991883948364264371195117787176172658895396885127125628937625848930490757109909426668327702027327023493802912579601501419768426937058019649372823161140912771991045542610770737819715106244989288284702264065107245835033655237215961103145020638788398432445444049302677864820196689495761561938809777017690568825683011023097968270927454794654487536143309941655512132352225330017810772640771555348109123610084092907156691196131404023269795729532790445124028247841008218163106737245707881401086726576551116316710623303158535016575277179445272309509820226521751081337785418944777094056827942120221816555838675983053361615015988697792676294198924953401428490935412184805281210162563363632852279336712728321749186112732956701384805108205615156240935313855699904104172130961841099996574050739110676729237472512491531864688726502294687584068557725832710663221113995150095630428391704664641197676674601150867078136766300934575610326357865214698389600309984141251627098668402801388221632263069402714267680536471476803620225073578276616750433994818961375461431595530886075492002447118577577344136161138263620043542377613006774814784371671991735192291739590493228930358323304486179823008559889072081171492312502876489673922626956584589703007976952236439384154020972316420697611629703784503539499782061845353296965120638702498150882211147066094855372880590987553748927484265225390933472149118092271799538102592019617319465723818415266168361744065668373122096932601558817088808954285326568317876653624816907375741388598693516992269777333392357173035860746090183986530874326080017077950787713752779595058876739342410591054451644885758269688357293496905957466180413727606643521805951014829664489063536834987778803749684564482372945620393305178584245394349533345488222320883555326947506333817423424894111497333641974703033125244289331866186158069292474851016253799751103766433946224418085790804076836594152813440692905321337740961141635977737187494324661171344236915927983901122459420024228651178112669396797366232483660198162549541894751879564975029739001467977360356759866696319213982767768464886916666013210861398428608817489467029876377089258851584362634479450816046867955466984553385430010358047731490635419253642541993940851475082167002511302945628193512953875630557790000829388004395950855299470829655552723873788327923585371772626922173320170013760961047683480336406418262321204031567408286946671602731863514248273849702778800476079538388904879071860272037863872026964774928715409921840130494324937966981203812795809065681811353251604004021546378058753806315062616461109436415555719564425038899564874061153361346173240625887509629214021246596236603649608920606836026715340303892141709044646917339322966598701099166191969964355536174002400217607663481406784009785469169298059643832797584228579219000770983939544693143443422544697585425688767765080646745098244627229494839747009878829040072938212375937318765040697107959350582548620937589337715487043158828436176954336512667096618245304612947845413456356378648014152837051696545527128412932547605965373160074469354377168445967731471108106359222236645252978156905604679433720454662832658375611784219100264677216908822707952437578141652468068849799502740832819520641786453624629898332734416905740424495136173560487311329348107329728201143597627968681414612174606032164273270184140652119238603873627290511651387410457806564135630044590984890167154136553607471636907187895249608960196091706913593350857362903114055296525759757858103616011299689946587722781060624015393342673115829509682716800287779993017638400999218970018331505224916833566715539425020092517594038436171455488472505521474629751709761530580793939496940933077075043575269694087280760424749814892102815062911132422828626485935040117055978314838694150869125614191795761117276369623981157853150731920716897095650320622332578223192394199665682837989418084966858260153432747735416678403577525136409810559209595185341706740223062333663589554803148476326861929837421856446755074493863548243643973986853539411547998739855786990691133415346520337621623721104132446487047460566678275570545071419021949124239905281948492088176773691901637724387849336403533905418054734050962894964749610874878928052260480373802284041270787030430273410633644134753332102401840677126185007696579349754548534891066736393261021393701919693841973690502440887604861589747779747118539052832321417401601136564192804627913148683549811834952265493511652512257836227381917855941345131359781919691225938987027007124761363287665538780516262410189046210021059818568371080098625199288613988804204994275451498516056624999073418293402588169379176768278487643143928638664427543342289139089055000496762626597599612133599807192107617178019771083882694055152739501742182723293400332793128816680131385138958824025300415335597454130990124210667717079666511157990649591056725129086000625276493687020295500547070710287973500915865487924673679247090909777069860606706274081809459443650944665946983683104019521617397411208262484752184096496270201600831210946454435274106315899460486716264202934774631670633128572132985369831583423171832213867070251061363849169740009324765247235054435390688705404093398043143849657141119408308112624362726830487736618330879107143337476279225427580777310440506213649972704065540884072540386155935901309483471414524034112259971298854602416790621505975522652168878942642390723846314865639397217943423477234755974159998526771095039329235271124747154459876759211029355062975437232379468651226745845017662283093805961929198793402129041324872472127335203617378724995160869140793314868710430258489480156236243590398238562506863832935778714326657689727318956920824068471115661400554299981921020764240333884417273332015319509992288263808423712918224456305065750887148883552431271572404269772897359441447549171575699661552987540006295897276739693810059987227372225249560720630193549547023772508728547520657169788841695646682339959645523993592142525839503461550897126463236418715330550161319187908667065967676688977525131610588313357812909416191357361669945280508460397489437218950609459612148186608911097841021971889551051652080284398525973531048670126832789412192140278142944564968685261864330865883311634097646182849107343084544766755129456948979692415030291649620248780811673919938252673465442902040842266566851883244671143510850842990424576353829416515485533930691143316712391331247704958276228328591966371672530595648122208687519508705229771101237962122228380599952137894484864927714139440609833975797577069480797011792814609873562822664264772062360661090989461413850523225236936659714873527135797583932320258833805826140386487206139094988324594028660485861743326890589379037181394153199721275906760486473227007066281516690433767281526799917010755514242927153872797988556331053720589206292803391057871847665322308589789189886418979950949477386637339474214410443524989259167966125742525042425576614764889369463213899109446887706943825844403413051079929600380979702033495702693731210183944116638224806149921588898706440964026403267691285230682229350853783489586732627079741922423360707363287293344649650715543975351071382646675903293098348933265306670862040073221199157506532952122376535735959297931244506233459960908989452780325572193259082544944619386209282836127619510586857681605688751582362918527699558225753565996749715728374984208080986827262314196532661285371401223804805742614441874661552266685187915205688595686646673828987943514162463381132945632687639968397701252249329417752664629349288071738767756763231144971794827050069125232117798088851372156354183653662558210200518576545703282335922131685575534745061229110040957803582481174924775833954309472476304155086851371410758355944419929542902048160865135261369816684829617862285437841203126490346639716651670758176608359402794799865489726399633423256756772469891031455487140220673005243606555397642817279151828145240147803887876689120409751385171079229742037737429610645838894575785213724242234367360152782465301647376370475126383180557607778882263225402698686107803166960055995003101805443118955093547488222037112656970285986054295279820153824005890666132450594960225095489337282169186112797228136702290574588581681529159216757340434202752368355376610347429831386750119410017841973519166229491261900527065714968143735660227799908836718123734739106020131186035781001786805208370996199952507536002980426802040702150915716557294666336844613841108281847684727984152975460438091074401113906386892568432633864611414295691803491537691417245723218722302956978970543164745142293448857947322361993324056342523825605877870620158363764084479105526537553306202261887002018117885991135190073927172850274364949855673499712417535797718373631527144686819322296287202721483775707961919072653362031994908660668750433915852027953218289966374480784432155645845052400010603862279757881673716429254428559265942247411531133298739923016614656417107675933356073443495055766873129996749979828711170068378954820678020592910819394500447627549565671565628007031530622847899737422831767328052416837514401366159061921262632358413035775457787173558636809381052018591913128322926795230436136550812508561169506745438594851751778572953212352256865108692085171710624024259828782469743171896170001551409129911849844067665548084720471238461103534878206952724657299121855507237072018348802674457531024291218827510967645149048001089632168916273989173050151427257539566009525871915138023285029037437446635998116067327569924601539343432398020865551113902574028192661401423146037531430301303599064305770481628194023977626063451433001778642669358168768599576317998696928410880827050552328877711118146143826540236649125467786744157830342613599562564545251408227629214961278880257056658744585806818113755161577915972995969508158541573260448057964052353308163828322965591856040408220616561427593694959366454432683642290125907763903467710429483477474183473152590023193081482782666512534936576952497145029175417488156732072133255053591422157671110162525962767753299264334499008949182986172456035557777153965475534749365119634751920102409215422889749830113809001852172736374090594912629180951215273699727272280087659308462362071566331753571533628808544354419061646358520520321763058478888853753125987756244594853810154003058526831898436087200538811153999227058940883547737106336060282422035429773142902540913878278664003039486946092997838800903103514892806095801134329685537422529520626314504716139844912796594322197422211009278858150253003265770914110875402626004353609592513942042739853069831305777375712236376905628863954381391832284482259690273107266390603154267542832041399937278807214808480956094256353605448548853589266248422608980600440604225573274219402035471469104065218806441743442724149086765712374201644423785967701276521986048560248429740120565263957245644070310492193692838238886844705036739230354150760128811962094532893866611915043158380274318588515594777142628588153969090025877990719605100226219409062180653255607756316692395969200655089348828802703671664620829008458587414217518148140712437894450802862707231946135173318388597350517709910950083940464403292488837766398699501879419670713740123167190381535423677762551100387631912016473297059914646274081763744670229198992418489458165756141923647127628893878499632636919064540387259586442583308582974850964307050158723649065639765974016403337831237625829707241992794069493471114417812000466608816032009497100824422629979944980745974829936978081912336317701988255315891478448883778309116468898286778244493205264800199716730201434255124202041784313416154305146330487159611077872500953617031760343638899988454510202762389444948725793517916762972810818277658339900385342115700251098835310193484362171446414283232081999331245491822636297091458864326891419821849028286413854918572698516470389107389672679543079990536815979712526056897249337446620659452586540109189700737223357282819596358297762926914255731603276975094238615990811193876492655149284633623811043466619565867063433344772251775142643784504330862029380995230626666954804705537797297605887496254479383130550192483193526325597179386188186565666763568052097100773934223918264980562105024265293517046517594935116799116676977180936700982731857694493308119306016357138160303312529635812318867338569213139647062969465117520600251276349993986682459024831624035047290993406231809493426422749688224960728328348248987451688247017024148014976625027410549901328520693919239139794720040663528537116928412320744076582672252352833122482495598618780986377982893912146624401781300039993914037257450618743172564788066374631471237005793303032015991057845277376263605067469239420683890354373745663654895429556245985140301653268139858654171464398096431672539785449321031164609129875386421693047549593457977098302646698992619230015426290813927412651333735474089505849020160720098259499311786043198659125451776907523180765779509035317287911487865535277506262013513534488369686643491799947307573485355262325301379442495618111673587775607724055844947058017916597875365424388754620802878138767480612263217059965915939247372001730803172006008023398699977959479795484189712188852326336378360936312764960702830603467575303054934698775040418148676336270116045113335051578414302037570806462776010761445643727553578154900343061271704362327839775717668454796014939484605807290613991502491914813979109242059578714405774305639119653784149861071599201657095356109190218402614655060452113257924790602157071733203307344495791919770280509273936785609085502072149036518716105233579237656606278331548075779055380332335570464943555790323561248432888412892239405873674094931474271722897229969750551057382681331083183080235384503904438885972860654869247322726046615785006613074228619145504859099917572345022752866141704621825863067439929928554149318700258500186427936098100215318335762578876266952120302610708551136310735316798147621032300376579172957745982565334152000444302585009173928434563541570249822054123627487564536917291577944339819935177181927171802403924245281991290402969971072401181896682043552144578180474900048623889268226846495364384673741905194798400169001733938902043400007141964344979073783003405873351159202312714858987780368049509214828233671861491895811040467970836307559769802611663353944537616194740837322150784781358292918153844105915571032727232156506491860681182018940353461203468208488050661802155263789030406249681802312689679474936896810317104578598544329756394381087387311510433109303583480274249903512207346511333229266111096056403129971250008552037093119716954604798538365496317363888648143863042599669802971293653940232621666722933923952151104348677611339554596591835157443513245815221342190202624300814326821553247408234167857862736524887455285084021278050399820696199162790657550210312098268454172484348682954975713615070837111329158919627595953144564329016154929691082343740983287505763774209213191993571173912547341843683545344514218615919258691014061796147541294427376427092013318052601937320409114057475481250487637236391252025245893608552204111104722030461456137392520341872324689450050092851931269825207049122011276212814228377740106807186410991595083878975751808484806936293016893621365240420797935835737492556743818073415376390685925733876952066975343352423482862256777161193165162549442327190117468002806222446018312408205552258690094609838494594609457128557022155276878275089745546919411698872588751473790770144332069616708065756116299826765779676583907992672091202036469674485486911077290953860946718732144646342943797739063869063514953257966646461507132571906196912273500383713339249565943889860990609112259937221396504909264479499541515864078882489266215291915833342244716934943125144873567619846535048548845822777609805231934369955310443697769642149020167603293685228659931979490334831933522163765383183544170835853139580453434619028652701738799087506181255777847855105617528014944821145135968205045203054273356421603573865829247206485813546115383958623476054308982853335107281935571510889080152790953200983274071500705004541219709516485807381759401692874583845775740151347862767165530589201162062883876891219290072873256450891662405996732206073501738126831567154075240387598215937628312078489696739061887706112677419152411792798062715129681317069676823556809027255595878319606991124550570119179855652791565695850818520046211787032202642955057798468823822395620416314297745165516788179936179707606905883293277512404082693053016849000098272369789949943716137385856664229398382942478306026304578600429985125222770758858948383546941789926562096400511755095287246547840338480103820733531865018105073393479217978610879252063115077569447794891827823091905669490063479403847692725819602430835805983662288783566868353797624286370807402307776520939834671918793184240634707190337811393116178346514847171665168176577426430140100485233989961327586294099491068681347104238248473860565683452249693271557572694876675696006871516889034870230519821144081829093620968883861634686510885430642619233574081460587124135032991980043322022129028116295040484136080202531302145332145133672341957851668473852542232765905415928461055497990558053623322507105470759171500675675560958005722325078294596132537922626081056629239408413123967912886085685003035290824705870233515499284166640699841035282691837974899343539956705094819816674252789747295795064442349911682554814202714972080736972566827891664476650003902784302106125912084096914815053937184445065130691274565576573750839674360223874221592859817780243500559454558714157016990245743951713552091829654218081564970301335996280293947629074628228185233893624923503850389016727055731228594813546270311224538580710458525273044723149808538830947111920953074877852358852906387804651209383838955867398586161502129458931596923247876178014465883503364181949159400139812400548543767704328432706118961859432589829047852460497621488170536325405888445785841697738905949519312175535442393564241948584956194308520561643633256817166486496338637800525013655399059770713141475496244034066519669070209835649459114516395496624140596544391920902214123156183581475422575421045780645498109611105923590107982788043558059276837695887406698460384712713858679526084030764432744401747624154440466916582393818500371982375808501958898465769456452680787665068597780874449376544215941731458657988572209677368325280687796070181923144574770736757335909910029125742728188897033319055743636436227016052884461430227684760867553237633419102535385827882537638857949236292972528219361486500622855325302063924087951154607916674546286733043878004938696393996089982043874742580341498985009582801673236849035715554801190287450012582657935496018993947282435755006708411054632981221789053703425304591935467754094493848714407245912159649899487430667305858318996303997698427046202309170349503322432785045265367240036221333804651575508700879998122548787406265043688119393019084667469571123932181590060895482807848028072582576091225953977190744943113965877735663396718817148618906540782434770732764546670478327624476323439427488424274933612831166366756897112270318125767955937527845503620608101882204685526708060724263763438330143007810289747239606555166009664383139623380151845323238084529712876230633045647391342054955362080086918798878673490378725684468772095507252283193096119926454107034257992937514488907824276688120859345655657394242055362360170465089250405507281168682344109288542542083087465785043429493312717958411321926656867483222335962073867901413052458069549034861936250471593056663582927477050041185909552040970329514166991122858732420444620287130431788050092938912460767015425680005948900103003998762146940879079796658551472512669689493385522259150033069480045140410120380960678117729330945892607686935335655835947384486698665487865927704805663064975953523698571712955721401949055797589362242176352732966624366094413455177244240752782958767671300368604365641738857599069031894262260251849119922351693395312440551697457027002384917145263738115567958513881546225060401613589341557745820522740104785928705641759828551392858480584663930146692488546509337350249263174223139368201019755429654454064159244141554664886311570936347009487435198642483688673489740995191821954743840119675857442139373634332917253673787910869396092480912012409398226653643053248780731854820147820106600799385204435121990602160413244605961953944393259726462731399016926637040058331217003691219853362537202781090739936504862088793796025871047064758360569930187959782977953348432413629130988538133162004262615481586226010679034686226695448375128709657497501974014173962931949734734148031459046214084001931944576989564943001973810459274140826734043965512209259063595510057539096387998748078919970580153612162196621415045797676790368626714052634269892750629002948966191101136544189630942267079591160735665815610784570203148243537161388077407907335874060279723934401996050534739468284471846092151749587977215408721035538521732216329878554707577203998651133549420779741511024644278926248677310313137066689913676273978679997804178265958352885824677285421856844128882367357766604922304805214435498313510801181415930514580637329409017283169227291020629645958743529237958002957528768892394097165340643236658361248528633298155777168054730300380143393884917418904278802496750472889698328645153548633385821725848473126710932744648549311580140170780894258101529526501377112047163591857667564424630336172106696366776407108764111010843272717240156852122465953064634982298715231820407797024011859628997660323316136692116924313267583339854271595681420607376577261063254414793632557947980065520981772743051492610795511382301727604037094208590575477906810288472920868523833751084275618604795449153583403489802852022400570712484040616176318457436128693102902121267721016920278684373314716853202718961288214638672065317489114523032843119742455076106010347934625743373638174061905314492449284214760374274289429854886188406897102755267644555703918332160724550890394971864262087577648667092354524697142720909896297740998104776687005991431084072446684273087251043402219818931292282576041894858670585658018506108283621610889191771311226111758276917072160284517572142273443733873201018484952430300870895640382188615492840044365580376648596239122225324342864119444314357903183847530199553312910042780701825624169111076592230472645726208751555855135122791291017893659966256302038452698990025144870416336754487464864712932219148123393696221546950968722489913425875336021642631241330000633350544196622679625499084114914519679352690798700922958598797218874285511894081656276948915841730327700099404070163878131111155800628204711849882694387780576422651640678721156212078623335458551799558534716962467047366014050198368317818737876277887950916282878296198926731724239082071193271890531705311689424393284010015946986029931353333436041466246874873869024633031414280992243198741899818312608212830278958784542399343493917363104200051332225971966518005952750589999414454499389690041900165221600117731442007205061260830305544294282592739560452170924783966457769187171578231177096472224123415249066980395686488515237777518669488199647120027151630229291729372687077237569814031119516245611728836798761091043842463906401954983118969067392373523562025626748524339874396346765262169172211932407949110589051535374385303275366528402746261352463882667547028000912610037134696902618513135855015493663749381118349246126849515476892930132793580777346269970696721392097133094287908818933394536187234195103137584555640024156563062131531639986698651237647763055948470934054672957854306942314579965450524486454138622605295477757302303989223613585772948539674182662353038924798768753066633982516179621916408679804071768280113941312115000313065245050756640426263641067533969887139287596438697112924151088763544964613311860364864724775166956287553322813635022589236052841919575428083662771628756032504238405347988911152436425845397382584917954656222366553101562832915874175734324141382543814417320596922977866770810660110324524505851825860795696908642986932661837280720894444701419347876166610862004343973200040512016804087936028357639397735404984062451902188832243486169617635307080854088726523916300001063158563260998112703622655628727296338527850545997169692962601518247530993701290672197928500962864473086986913947637117617311554931923008940980146043818896870875971597963025211123099701214739322804208311133902501029116219360551705609588640116849586238445469969819291379030874120282650680934287691303393485080793802612913114602974329918968916287190834248370182487037095712289774411056156825729167836085518238837053921018481184872370963083455806323279128019371198449036344867820748794548635581404063875670602871025792618813076309215810165570030438818014532994378494821219207053009547178567423602620797077093882516230827136533070535237789550207759628198184114121956273762206197630957996952247010017980473277416054963874608901536016261918220720354418823161131172626025519727888453436061652731626475586520656493678487178878928928558657665308331383080356702679163783584603412330747362063003363573414940339762482187709132321926443816205170276248810833564248102884908864354887715140075867445101711550371535206102043857806556370114346494564722871365378106528929963501903216264303047915028340011215901701702799643524385330828203155271081693833914877062238381532979048304806949536560109014976103652906119503580673702180562902064118704620950646136803370694131739465955070334119614252641247989080673110111653701189840608708612043842862572814597357221942411617095457096891098766825969258316659395983570537720994799855856437548745293450554120396170371913845652460404715462058707263476326625709553478196776851096200908746823874997940785569308598819630769206705338393131167073165026995028104127320607252180122352695021010235884952398878180812539624959702990324078602979000137859635378832538907657196326011867547563110469007229818819547026692700722141713048371867387431258430978191438193192456253689956195326897531530735530101181105463882991873354780124805468179281033816745105830406607607524710657413101406551224817601640984678070748654466783853311066387949720080990729601916046883240458916931559091759705632640885516481714084131931025671209212695719781104905634719637768664274159905633993800061869518275339396746604753883610562888650496383293216566540210892245875632781459254519829021226224178582143682561576103638374240457996738685795324868108996665561883708131328525878445166919796587367481089071951946707011513553754325510336790807800035895182889398794693895069408619479426509903650485144702499943085893429009828894823229927464607354915537313499657026581088545459648738141050703099797247548066419496980892215704047053196493400423289771205189147858711674743188692866997204017516756014018468957251904334142579021460254012236362462455389065260195762287337916076989864620887218320328689642038342365384126386812946595659560015429169250034131847647688361030881906804632345650090927560286483203520677681835816451146805576749980529013190751753729480214521318602176302499951801976393159420392303083645662268093201188059803777875408025808907815020781038434010102217398339129309334836657552494147740615014531283836000525658497096264594779698056086258323652199512961824815029269058447960463929914128225313874853237910581108586413053344048984945891923565938888624021401344513356715197309370045797165127837562839667423446273345452557071556872969044661660997193050020653605377245290081047248301381556830758534517661724374582957098021508763380795022096360631317344885728687602042542712131336695056982089399423316826105678990510533148903415867881540129094667416092237777981232246630971008411808383713647819285595228735211104211630649047262211628025902320682021485556235792676401912777534679043760483259511720420690822305623234050971460513102673573204691468830902136076773918717047776387401405101523532128179191778734620340370242485348713311576438795845358926505319776567440719276701733781307094748302751960669308587642235813997543766847418396149288410176105510203817748144821565573653404556722650861654251682306720179270032614049727376371900456267601269405836105991575957382845063243293120028955784883034418013331723049029218178613829767768044100531836532343658096560435545939686976415513818340307606846320526750346151935971746208199512453264359309606224157379920327354378025128565956744967496011644176061554476728345996208798752591911038998107334938631566717339655731779771751493919297394368687888701704982390559036332082173061008837693685823872299439261630904673951887175563965639538663320477663652960264179749182699224798809036885935428771038788677345791115387907936535975851434146213947744792458184511873122516853853795258314183262271669622155344863938678773963882975245244950213409648546010637719173667412058632154657256865615633589837365395660004688817998507639993693760412903405446829521151823018021403548952677957461142811961697795195073934900817039919682726614275368242937953183699772672987406300470398646912388356181198109206845545095046795034669136282875326334202056216338146854583749053393057501131852866879144046776154342571166516723233245722642283435583475665624254504882378267560741766413626811843052160808669977659693464628458484599609521962274528939905908591496150619009836296972723936296320545243756111844102427570034225009256552755531107884284403281414635862890281865125331383887994521179450498409658578209796141626409545026761624085199777709760797118007459583110789637761734498695766109759485415917147738675984375574921749654382128886713733992979101692894224012455086260562404573507807116730029875960551740773785273901910507470537970877606401651194488270720814295110860779105778617441875560454699870587375488959927590433127811828759423755926194885989880350796834182519129488380002374309452052521745764712010008956689025930424778590266259896185446851968917744157826864763077353743505605886375532265997773269813811839295199863781582299720161418318335527893880329214875366646655880971327002467031714705906982758111803702263135621927546956817251369464366632965089995631492354018341778004165750227497414356090149135739023173715949027046721284794351923563719568828665689918781107961896140761062864565227500829921289904790611470773531017252231941308339526760605231336886766720138340378208768775336157560608235839674055225670083177880008982576712340392578643442038133243850631191207284666794649951340234930756971565264717779103470644864488903043953177760002676325687881015549804500041563219983943853951366429222791129027418261939457767688248286246141753272587950347747351514221175373231860100798393792612064241495345378534689905627907643114829049695818378384192588735082419023736328351210261563149041512598013657649487542327812889294352890084238749886463441841514357413652773069000867861679237309462955324148709209248968473225728922646441996417611328520859551861496859683470629703485000660748808879329326615726816849017235304417158340116888817302312886212753437000333599720092718416751335949119092438764107165970258058373307422484413535441770297294363074174923941108241584487461909488043496866108551917574579530374653395085548129899512263749232122512674746578727799688824791682496037104078102984975293826516976879638278525851079707135301688667599383993179223725570014390956471074816979333094500558031393146996646636632955467635548003466839550043624856631807763765064018917620387796151155025243708131698395838609090729743327504701757255776946115460393372234930653031825766407332615989738531360859710733837746173482666996678079295234454701770296088289559292493289758782475405862518215017448216689144166385393981759182446632165310247575444017773186077677959818960809870023645862197659309557927818005907779403877175490711824577460613668397677648094681207181560658481939414424221718582984933143418671927516115841711921230564804978233052731125336618105543071748638713706301453265978332456910952483745463596613018771880702144282342108755541000519001771365541950650689424520833586921843984846403088793071925069881346384693729332598826098137933284172823527435941425728208206248998110540786924494893781898952151601066162002130574517462163734720382097047143751484692607611345630547038727775425981876342715672597287131019507583227623758266203989345586794316472912067579449455852022178782472339737517179126158296559008483779158480919887680579395605753162935650607124239128270423931954071779925074795510835216542856634849453610006086740368196446409077097773451627198688730410272387263126704842432413341407788350191604143796090211222629154200871421497646848068964326679835600077958516928651188947379425271884769746582779287517144882550950326744314695390739797218334524314078317815786875902990609955209365203135368426325901690655675496725887405592050751795760464386270751554118861471134093871756064524307409052198786341304494604089719719168876272495481744197728666872259581833927771751794108566815308141361758243328601251163780447793134383009258796934326933140292615841044011549826666231344667179341522225664344661393223862291014509119285683258344106328946516576383111515567681347434108265926300155257685030595959595418803759859725786769190047237977596135821881266233289795449552958943040244083092778879041592778449600447544716313720968996310904776172968515073849859032243292340030515934559257172480509567625710566471886851158530814615465068978927109536796161852801020266544479284283050733392604802988403358924279117845040995476103235914697980944975545482816198887687122170411153315256552875072472097492554182573301580987480036359680535112028650552261127877449427241918700340272513855605667953894339423462263875538982713724027904949721491043845334142296875059808888363792465273149588227047986509168800500310854004166522127038714899928451428530955094316676844437980782201517723518158613907306255110017702533451360787995004541408610293690425720396418245504462780559914988083327662465176237719489594040200708037324090597739389284264647349152276298593928541944067273918823516671504554210713636887127565024685972322241413557880696896498491491116728066604984590405990938685603810625270622422854740712408822299015866414025458764994914577705842966331124610144443193411782791870956112524009748840029183255757806148669316142167529085439473907948922933825529919523252521154778390440409519960122703092785590330882999720643058551624149370728074590469505033179587601739867181748743604158521988336343489746189073379130056490466791970633573680179275799058727796676116627721265504055049011455549959813594847914738244815173940710493732147912233728057763063041576797203562671499107351196194923383304211037762025153285228223231472991149036437395907371858236465391938306762345970899100829326618408134844982633299304219152672601884093802307808782384312240111978166648747515661346134434296573187889258795954547961488495906788714531575724744527869769155176588044125232959911883664989810802965108077210036422760141022115449153847422435710243620714338083819385595228520403086220554366450642398645069387901332379971151748011207616765712085588722330834868830012472182251655728786700613753670734142949289793641812643383692428165102583358179068966684974975615557444844979513320055235665756146959974255145939162855112729276490335599915340711909980599732106840510350210382707716104030220334216700003611195768678828757970721051918660036898691523010556152252130241317630936794982659387211277444773792085568376721170281494249646903151279012794744784314184522594840314093676926641028988816517960724876835726654088418661028928279213315018076184304603739806136121941339614117781555007886287173167001793857268220596259796802286079512153707373504697361772121372770524930902793704600348393099128530792078837280950564383648368107898444306486070143289557769068319897941719418976265197479425862152328180959296862143068659867274170128898597422661460280997208379315701320366100646602140560660048652965210028118512617311577339523856785833228891470425536369633790019320893027990046663377347025065220058555240430592825972376184189781054676572257423991981294075821350818344786629733274412192671989327840324549798465555883080421319503528214679253648384913696289533732276782665805668664649174549643579475006599895940055944736366530140541866903040254908272666836856041664508687057214028751008966503645717117783872766952898107057273939926759444685368535781649992859340883376783598264632618859207000239686770758932417098070165180366967640234463257648491295791685926449327956127021749104005711417869936776802048563891552618349746853122226807075745542569491959278694467616665056527497968221181414271094300453809024542746008019544134367153990885691604838001074464906533149081227457725169786772322517427461476787300090496949761451316836098408390952020643195546962673733252359165035453160742224171673582867637415730568562481378004754052174587693188666972243291810044282424266781196330620840667376919731515161349963057211227466294398841141604435208827126082643675492131265935091072300279780160487125870402816832969938017063621555271178348798908296231247018366730556062389859938861404977784471947855124396138072858958364492613833458711365138605468668291443074519858537977901394202181385422113751578144513847064250302148333790890101315608154392473214327237637377567431301797383464793607310911988076040615024350269111744302983635127977274472739103753278209636070197367840383111028993571053631641962113877675698991071715538653161115012196883977475464878917298604230933322503144242301652382293545874161953414616710521840194440566064815244553385556615662128679729565317266136281266219156489880913747857693523641388770804933716216631291585046021904178989011369360159583440466028407205558782726095604790825153354194534434522319864085702335992792158246059541943798713219139854292980221139969535675511039843023517233537238332630442985259273668822157528468078249840165251098825563011067474180681401448163066642036413786810741829958278937775234338933924552686394765073496380556493966188718331047817616312220987615442524037404623802476139518151324921429954890694927680782658334377188926265286645682012715378907029822934727803781867304103193585315338916045923537582068664404692535437514542852856759199965668803005818545532501214030700155961799547161562027989992700675011714497708769955831517396078506298507200212280632618534644063392283844655162685918241712938830710519415110493314688262007049700147367854938791268530432337840388474601687187757020362295248713474984642779062071162507096566363125106485328397104251667429199644560811284762052135900828285666969075640911009347223609884775311910500239637136760002831233100862588554163077061850375942488812198247818719171437547806004281867875823584054529654221297235202444505197579915947498754282405583065192713798911727834179726206942722845891232208509967498507730745510861534064068709668727663680268416938099650980233021277279206280793391297782850003987777393259913887428018693482094402529781093730519259048001952549664072312458827857043155244569000993462628055069057628123969571386542911213819262228636895319780491033616264487655354946704442186891713134965165301385897158422440592174818219219654662226797986630556848740188594906819778632836589937387194281270524296684880910400773947666979508595587730541337834095206215073256024022666997282484887610343864101061825417319207510965029197849994335670664870963523987066974265387308319984463874917900585624510002352387693535955195301371790025808744757534946014789517226457820656334842139912469666576377667727435138890391208436884852819986349260633654262942432136119390264260173720801001189672388880235808208001371937311193265588353108024342242468789217513616023737419605488849270967082283777774682715206082742302729833394437627009072174068294590600427680193274316464169939598058774923131408363639984330170291794773015083644294920855864789057655630411838876641793595842635579215301791724977163415600895422468716262717017147429352890736989841829688943673491321899152345112897610705394503610398205823909104836186348797193765919260159268280137324842853368889345081467260619390810521785388703713601937529159112342206472867880951847842773827867624534268380184316883596737786114872760394630752456266482552110562994815708217934108348536637871829719583649138390388169665505552804320547095659390182404964761429325673079552196246275247454397075946878080691729970141874084880699335398554232596579156263773652322559250353433813669844231450282545751917611435258409195928375948329785191595647827746740106709361246446564303264621340285024337134757041858623925537166484617714738556008352016151444739328367525398271685966928751712404298483039098745923391699764963536856465067004061776080142770519161084973223152810181683435386578673768532416779389346790254320178200602033610525933303704072358511388418474973136472437738526950566516635957406099989071213247962288374703356459836353382055549051654892482014064867383663837200485613756078223042585313949407892037173470892291928716377841227643162591696464978910562753290886459815357124860835216059818583738135382616409113556554100987864619206738141656888686937156498625013815628826969304082328080260769031149441191609973463263757708003196591379355924590772393599356228383460001676817897035579317649878047519868811561723413743309229147405428892735066866723769229861803816638267407963324910940137543906657040931773133383380951636892697314215825274735880470587490830778812900662161482728924126896517801907783187513863277873916450318926628985999286434951760012103651873848228306532591220163310987030300886983486401395652982858621355627815000260999171145604967070432890900354010045716422804070848479230422639720583900476898364508383796599003021358355733647585057981867517677965663525119152269335344135242459291735295900287364044173252406865184786875675104160295633192838986807006804766466410046906418915974889372599961563431240906016823117429601329240488243821709925909050621743548512190057685278119033810287879660727914727628778753716332363625095403856786535888820766510823520335099241177491770308091928361314958159880229077897546566616413133750769855796042416893818778274980902587118938905243613141349071668052630619224054707307276554078853714252894965793801244145771837137515599217874871409576260558902456537774341094199482716901898037546132934026020089744655257432984362915962139177294798066564707776083157666478167611619171615572546638807900472553131155405228601725511456417188306484918403077815745621962506133386424556940401563244031718334094547165956841812439461947746608863347361524333072157516225192878109021521259570415692551438288300107604101120905478583184192979640024035432599285334520337511106665684399534296928693212428894530152595230554764415055749505702411432905753872480401642881137710761599397302665587046634576389176113587386079691351541937231908043982152901469004253384824922111602749741581625530787531232222376916919744593392162864470109937237677904409014862088490131587023128634462269624201426391827352242718100008910735061306542604735617737348620301781742189024228123175091321133063876203768933433743098077609955597392997209131499377037357306170697868065015833773501800953026655452925845278022658100113084196910354195268603229463722986299433490475841228359545778428817372941150950831202585628701062835402059908304332843621910569359849539275148576647692205911239870423995639367153259083027808403625147840745109169787714877173439284524495954758017219607578305869114830853462004228928555512117596859735751970182041053975294907269983416184669114663876555257770224311531926535501173355757536721307700144050300422820811467493125184030329358566232986091372103423741300891497589749740537205581775171636349928612453715354234972698732324676077652904010698357297778376021846883610392799203689131848687327418982062814249586014509462897020749811472578685156316031553353788525164344784681299986591754146593391735861759701259408183755955217384271066906765736412119251443755708311527789242163953530039595247182182185911669949306374573672119544061181834112955403050796636644289540688380989350304930407148124701220475923908422277624534440590322202486507494318085647691465657374680041275329648007903568579321796355352600772276540019565156947187346281558055219328028726721358999245010325495765597886657799577424335554555848632471335680955646492553707098567281817873212361818614600732381526433206600589355362014982872891041746692352189261323650393655886207259573394317714617865617477575439681133456513567059895477612783327668616242943856909113354824746677643355211153985638491764769993231603884664591183947920598629882700084366276656014934983873664505588928179027150140170851015666421961123110169167366193555399225769975210426585299623067683883746398038630875609391514485249600217581133370468873323219989217881092791979738109049367898462809733817102014250732057953648273078802950596286612486489392324667660991014729384615182252551168170475715895022071914188184417379904744998663156604199711980008013740367787097021497411167128727973980837375448966259746581391439019501255985610055682653276741315666267329613313785561930413985618001694874150430155439299006958040401956251302112687745034375771501522032100398848855713744281792259506565480856160192278951005788444239527753343500870612592254098680811536176977995672021754277299774978794261260092554586604710536481678852591040635478144143581351024479902134108538762945914480255513896479605008924308007522708121431794179850818906446693480655203267541016869389765857600775086078440631463986757574240331055358249847480862978399299738739759476983222695122705345296568834014421424692559069488594228618392195755796686532509937614118252290624417330361266831590955462438875070812240367878663207526000425966116817666355787892755153843182157791036074086731648153132356136354257437842107518420500921498917668119926139776225888377861905127195327373130069149187964061753139765016221243231797403763936395688598401478569279424516033234779180563136055938337695448581969054282297473283047391053734176620018802517841368675866126805890937441392162238769892374219381854650345594555193232676143681723890572892139472266186521404212183974837376630620216539897565572220299542466053791730601451619098431963881649163292597655033423738202148729958585153052320475790096441041718087694468645447385845159916199855734545101472709546145344968185867045658148201954152950455670626035016423418401686927976256700879690018594390256234258429855507927013521351047043561483660880687716838236620483112949924336761481667264119964634913130979734311914122286977072952019516629609526636077266222664831113810670642782706165746384296554722565042896546187137362161412614208738429622974584796931049400127647699717911543010840233258966635596594275607936530512978638072812018418405825585645946060673451170295080982883136798684377288503088326852989231646006857009771831400261360955502290865017918033234461867588940556200842877535257335340842710193670448516767347515838423324832711113342888421246923397960095964181299563826521949735879130231764556301651599712377944331413513496568228448307119054701462337716282638335877347630608224848997042222616510950586611230897331305138625502391001602496994478736578135463083986080865911329475581115942500338455439096401620040177205613918527503212098589071450300732556757302205634372259959058688714475037263103127764380235120562986413718870740854576260019316829100883751573552744254001309305414226490043249179694684370113414607838168145116702516369328565650450470683313589451125219403879809774892812282368550135216322211428866477883725299696216575630428395003208417765347398918837974890044386705416380770927388742840562271905925400341820896536789390085470090381015212273584544233523178422552453617212463564013777589232671496330230652633121086179328296672630825280248631484731649322953340293658380664246749656921923361637695015326304963834336359163453833598433820289476641413069295384635059200004371905627774874753603619656694615700149145775004211191684438959099970992963486154660212186830958500355935628370986235566997483848371125161862372259106542487993468557030431211083145061244596378780135337949570215882672762284375002537424302072318320203406556933277422302859503278639301101485581527280486234884603017671034685126572600994847913301453127309563308516314272350936970814576387987259723551381880623785721239049516180844825568759720079712772841304237272259602564732888553651091424915587897909179302683443838697621027904841464164239800629439177889069899010221002009350977387829261351721329559088794364828966451840061565607923049230066036957546130326171194222789778325463645509412037522864536042016695483058191440132995597454369105611394684189830273564360513449396011515991005726173872167190667387092449924514695233301869614893585702015266513486981197707328868435256507375386131296449936961323196566744975618981865873249170933349195039481471438118998848819604121093316417809723254655447580266252410060653092213033039494402149458535712181485982746882482729894940168243025702757281353824264890320385425037105432449305455528004187485081042457958280840470408311823063074327899946226024865551925662349150882874709294447607778355288188944397889114557516095339665910471261023687015327978310361758848395008884807096417522607506465019068508528371208286098574820312688951357139202225857594392419470360072069685325167856045432909307078151306535394699907351888804166904911970627721906735161775009650330507339127557351515369371660721527977420944730753159708303045108443731393848032716154404359073646773058970070693600222287567419337140833110220956332809908729893393475501212429726611203028312019537561628157325184245977350475996647088303710357973281009401432398511130040691868109481661087847814101042052515686376790414920933250604832869320796002966532788105888185064195072856235421363626121951013145230945123697940501804747208377889582029158607179862094533240567017201870916113807002180482803320190815564178135362589061648482794878034197271260619877519183435851193140687101645929570627964469264530486503276711570199826163390702359958200671947182569163913704336263411779686495017461949948048946817540287313532901048097530396722835253777044769091198797615830020548251701463575631030076477585724356025785994731966370161017129851943610852173945099910256972419372342057674094066655925006907935550658880116788508926609598029740266375085128738502013180866937881539304300252856603193629955110798314646476489731234477193304042416765913420471618575583038105549808483551376813790925182137251696090541911190044593000999875952690536307429458838806790011593326485524849149941580157481923436960272360671535946539424677593199396026192104102357037158856775201286756950400092807316488226923597663086989450919950337824763602881282429106625266120641984291383173673364107825394973069397986631486222522637674737590555856933752754957706624314355871237067892899796430287398413578224021307857633332192855934733062875897497785583759373145322448381881544401479545360863043536828258720299188655397572723277341410182018631582656288153728042512040271493100543487452596348676281946717692383266179978404453229212112654370161424102932385233233154046756766063011557526053370237842123236331356746976964574765081441427656983632212141714239173106154870086833603428924792404802136932465336048503394095143658086864126554439356857613646860130413254735121555410671566431676190860747870345495287030332760205149515977934965980076217389435787894722688967102257454491660122697755736387840900476217318297009005766563371089048049119978026162924154027390474735445663876091952518300161795368998022642850024556708625370235968802193809907959117050339431122169523370716326587432767806747713975228323722246806345818786138287736660829567558556403031742566874717863626654194249201927104979522791980695504517412671680912026998906546054679892842395972461504883648040633253925288756355702798886145843566425963135131874670006644119746156672694131673051260342468564381698082788494413724201539808471406302022126290794600010852133946715987763912596736828298104681575935525572583545391039718138955038078725549456550877577052118782578587898929846886859534842920254467087670570760796407334487379785932740161707227552887637727045095521443485548880913830023870083572725990864567453092096525317947042869297738226689255736386169967440264927480641275665508474710571936069693982199779795777989375844495216544834126181585510389758241795328363324165047804321780402547757143511898331611660222359961184948529414669126634127768299619371769286982882257594697721743948722904906264104920298709948958494498186264914503394195975626737008687057863122747014616381065649172442051940104399866198640374867136234765363215894287390905994563600783399803765598784066198512560561382441315389134584658843573493304260664161493187968805921624608847926750426175925913067869846598133658383737307415827238771979740622672981260397442714298883771337803522255830105266583346468767778713054697314930390995817880463890088368798587595730921050835574856042540282373285396104668161024255609952535547664768977470617450287951664508668438261640796826847498537429574035250028322716685014633012229971021312716273962966986796148725306531883915604449592209465795222150377811068131077409135356658395634440374702504234207699999897186446030691699382688818040869913376069125024394283040268306768404293872988118415065023833979491132732104198102946674031228463225551770614513858548193128440615557428276159310874848691479593847354173940256038464080015594437357144472598035519669023461163804161407115163760597187399406955951182786210607934888230730595117192916372457355430383008338654930671248523245332590529605894299606248182166571259042108467662575434517410656466481006134037667141802355977499954082325379566641763893884519228510780978129990642426558757031079932146855986428943802431359368286262338211041459213275823488015458001095754931939581301217514028673227144048246817525420348133742610671947415909788018108690717709461549983599595197151944390942439686426629534811901970063312168085485071887951948132245375426275781280538441262849087251315848031062781648263863549437181033178434806855957451535918483549276207651156795405125786303886406732091969940480223654559010759845910894432556865666528988886629973662566823470653687078339777691924312660238039592911217261067029561661719788989868568572826598717757643165255804612269984701482409163614093872023089711615904404443648011565809309177574440083710257120793050683525624413375320109032658149736925300324394914991611646182820163489188850761195520556147262566846127256264306144272305156654588441752551108290348605428789493559698054338130809082617153191159980914254371261214236141999602060087413775934062265548325087190388401012171567007321895692519324395280875757160789265733105699920459517190505034897674894288977716512509169518171471822106186092951085817748714429644898465903863019090990195504647861017062360942214025648444005655741214006488497007856512303877936601594876735460143767456894261559650636725833847511458074765970003754107588158957749790757687936493193528461931697525631476496333083929379824891943018514125883208386847812468082711995674665461281708572625862184091932814707238459607224319268091903792149104942933385215023605353020803455505726490029111162288586339787508409657086551722709240955568335360828890074996840479886935079855231787477200275862929208016314338498386787227849188035883666099540019624858024925902250173462425454698329018675637500084737855387887242133703009565426812317685410477352707043848420606817779097238956722417469830067993830709402474127589618498224954727590483501501962207737521206192806555757467302272164450089085980565829509908634703745693496604868295708387818063375043162444367002652768361972272813824913858155780514971673381626327237121640933383102673004960889403049684797557027832195539660348925708873826661308134222993179995690818873671636325622333587681411350203779093574080227637103837228839203709387444285686045626196760492962547301204108406419245167016742028815386734483198027675952379455528438358026018290652474050597768751810351359802527911610023181487564368561375236162933084704476660675700137491320517069014190535935024117685720343376342187114193317480759041435638770924302274983689075695275217508334785507686402167046930691582764453611385566579860565004292322056067179955765107629025691136959135919664696443111676742478271373099073524602893179602790129914773828414767845980272360056167134659436000428449903602718836942503613576762661707989174430473755590208165989738811136312403492907291606275573842654417878511513803883756950833306676704495235421885678283737547131432672238466548452254418105222263757082579659018445291610775796127119196412030142853295026240497923730193987555957497329944124722498519419867529084365857902471628281600470170781880643236248635616739678535665957073728423259050643746889320319020759970346223424230064241458459210975681514456864825767972362131734379305817260535102189180155137311253129829818882924644577711972088896074780068000084470021253444392268687006278744893604770219349631137544707078129091612528245670189380429583167464335078814637411528145865451736271266245793345892612394719872056641645384857596991014419604335634609716027792145724091197394397191093171864195442904042144665778406763858367533331159908805850228284455998030256560469423554742637699903360595963037456051638179182370703899557143052594709986661889627164786652601366695724797819203653750876320356272156127526606952658873319532047137837802578000998884491342913176271498309406944181495783781225651480939377476047186696411928289596774253748866426537841949491230027862480237927406902933457586044349264336462724639285018846023464845500423598320059813721868735346465624588675899235030405527797495364072541071520052319156494367829441217900541113721246084244567807853517674826284329870385516704712229336679973411024083953853215453924420606442987971702816470214254037836884749322473792673305046491915554925044498916873602849083265244226190829935257150573325866649325886696191811918002377087305002058026619564048932728183724337856641053558413760608299728123791043160361462095032581295962424694729033990378137690633773570235496615581769251078485602317265301326659491430083288490295893204293261906377700138976152261335182948461042137161560954264298370062811885145405647976545674366264003976042142675123944847534263388399913965359368206456458409923425056345384758437692852514776816281269279160909347144854261722145241868663427654004196070418728564760217380482747910034622057483033506458955462134931681826714917858991928012880787747211957872773928328622072211999555096412718105038248328511841482803868006119526844817397597299568543662021073887517019909113627938873016324668234943410953362960618197324114458194271281982295977701108323319295164679393473665547860355305919560977648780345508511264545473591760445889687800907565391760384781688504502552525220396444747457123347866303676246866885622650922238133011029976262289944574877850354497868530015557045300449603466381797728273060490314710091287665126939766480014787434951352556984981794743596441390638349518223090360495656179293571813069702830370304829201766325420913123122893452533852261992660875784540871453335796999355743252408298928002135750605364203278108086479011466377296374117680686462001761653608770258726926412629509655756485732232899148890336544627726550623558914784388929385592206502193574736138331195232111114247304777077920551631696143069451054916985478943407525625811932770516494287102236668169224108779699668975988136583388308539019010082423906160229684906508081091950034159026461132771852847855228665180817081844012533350061225827858964821879278994155413520534513090793972883209658655043428019056293928297199932140780937237435416329380047935115578777961833905462363938945923857753474326894638421807314355100355910282050268194820491856312864671170615745466586516514933026876614753070802995222965749973200796063073070158141534824399490019888336415080779179674381854130332273522597274690513105594217459635763306120360333697862364894953633635262437406252578326514732025216289201572802430646491688878008537856573514841122096582032988957833280428301611562383208853403347080814036684157922127591041606172661140087627063241864628808473726206010864504342806779490458837650999606138298321220009279523302607497584139458013180081182921050809926101944406159972185785129142963325881829290560307376020406422344355043625010357623572566530564416309304096843643221770291768676510179079514655296949052551423779076056414963764547144179349309925800021191255137689524833569742143324187254256796275240929738308308937857319481000372663720807834565940362174768678095680010586168461832952593496833375409937812732063511973669269159024942955669837854873565833274468045141839286187053700356243830057000989458255081215987051791122904585831991904426654094242224205889456017821671716493793927106327411810080637163845797471227311431449451844081165129918814802183628677476062224030118499656339097206675317915084063774020830888855015999353531941988286513517820812897339403271591676495483629646047760698956382025390140997764727904286883670621385311224236918102986032566608766288996266286345781018287572226243136755503857320412632537224321750742751478471353831743705222744307881598519526461434738466299861067719498410441981460058312164694962456822951681248655563678509977425514844088534012732243590227980444665055557561002913915381338003511649523499602084256196546112410231322070110177885936338110960944352588257275023029490797130173226827830428567975861007403492154687478475147497044490644399650165052238673996124652792229141925348268894118988109860146177375534436545932816438855161839202373234560721655564830169684323490561754533188733438625495786302811093211327272141700594406995202581257449673755117736217952646110556438836103378806961950771395781075834072025213699389396976732724153124468956202312356743064459252207561305690037372785433166479079393706849418858050760536985593054913240676098260974389483376161002438122579877367928226410244376011576176029588148507864662350010031514803731658609993515457816502022971700570378567462514156770586684081430397028158449620462101882813670331371592393860620189964025130227911636935015253314032056297010917431943737749538710683487693153721033021228633593228052690967843390167028221721163556616489324959530333629210102012600290877838794177362880694738807479178557023792438160469020207863278504137531780932799029150082454954424880454543429783116597173455468233143192132676025549991453026810839795480619105499385367639704804178723048698648916462747108429880437769937244506948952346153577980607828705203064271818450510146511533107178475241078247673812055540942702984010588816342616692214132791083060750372543306677204849351397103123367871094825631840877735557842146959459161952446809850180746699690591059144182112053896771502245610928838835939603911614698593478027717771277148047979340042689782474989790786554617175377685988592424217648873393561124072083498357932962543101906337723648490288937428533652963485044443593361222900114902291871088636403852562319908149704702186715267088138028401678874450817470386975759857543199252914621269290317258898279326841249300524115169742642630176545224013962331792694193500778742191868090815213874807850618013971207210375185308675078774722085403468792762666462117131181297195894427791963894455744693364230238426616635898032052961898987275950693776587860612590822820238384533685151856148967244769717892490605872269178528911899886900723597186700246990350549965445377903260965082291087932732513693006295195063478634346686368701367469541110904270942358111363654533819910650321402762362868130492520835592317263897839969016247948990429007044300886672859050356670688438158988830669010628453126523499101947302529231639677094367081951755975005707957501808722815645731064211275883992959139389385222047526041130603805365205593639278239650777565996202889423181400762610902898966121985368343129738979650091907010931451666205575889214082368845253519426442130577486247535182775262433326975757776559477512893971377238311367288369409608480259030014426317714142201185077012060299618884457759242914956535906564870381404857505637308401890772425852808706699247987499253789841967728277403054323662458992308333778360355167149212303981414577403823675581657465941911714359702352121128606406082447503633173883541692720346905094158658806536332064076880436435561045298710279497225225391903915905989812551714541958928658870756275461598848464752218324060994745862521700686969314240028281033556781521301784978692988828273775779806533863070904092636830876827785088435108703151636785450986829172834254779364406105124839867282088198280982566310359485055918066975594772727849085398994105787134087644595765620037215611703966011180159589690939012179873853651687539891206136297972493755271614335589371257588041773777364380397266320257417718210868333586193077324134014204198848585667470636223530730872585499610847669326291077710737585312248173068553997138459533523315760751572107042604437114742817886170912643230505629906320411603346512215298528116131134990631800454502710887747003207674173260409585923376241333521834042064610530561223638089083841236222335441860265921324173136449677389895171570233347269493022898612202239929276744624207628084629154653600863932393878261355208456622452585919907958297606292550792903697665937657884075321495023645099701349405216979836606599333682671228765524102041521909664230345598756237046613171745644223426113672388875974646576329921105606107285110416968732943975700571240983592352972363891123113282706128787273107003112227704424478925524320084002121344064002506046662446089359486379201638095614636450934763390102740833043136081977049521969418033394847759502396012659779516272903604241422294129874240333531750879901271066190759991622279287280214012578431040786420581979056272618834862947280652820009952214321902701820033644140412208753641079046862444900164787913733371652694405375265447715511157827493383143237873732858030324247847987658816524335165372887691936035734160682023367302176821519518751306469845241579251447755564372189144999505610058287696001603878692761407704877001731372874104624453470181488306066965533191305602811602549397471834450907800521998839978496672489834405083503223733597676705329562168267644476361830896086020103463768467440990753055398834617421437847734225406724974660380351968151347491970379753586319956024933695296243365002149227932191153325465204315813645507889312212122177857881420338354203382292372488007579782317917089170664536702370384131247248534971369928189061585728097839625799380042523939969216332163540543497091458099695510594859862578151918667428162978073510962874094337788073544498359489293818902418387670102295713691120749401298276219497288367653824400552571679129551353311779747203891743538444148305709722660922805906988345639906776822993084210864857074679109130079869787446069829281352724694302222728631667431574346349735878006349778987904785414939499517888536168741607263363691353175471670334640394481035037977771207980042638061044878038983095991223195745678764748338239076181563464349026818495297858613711191238771495487381708771129212171318271523399123738534165196291562078645743592690387477624075546379585605654148756598463464947998922496953305423587647817813047366774346646910983032487790568080159579242170209589457627220615484112388321493544486858384227507265301520307626426020374344335158967018976389674218643533369550224727061838712706234999149621313121401553928009001810236066337097519278051356457132319149667762540289642579621775390665941946864384883961663299638653820173998752679331161291719703584732489762083282133777916789491032085137406544072710094543802664821539442167554269133536411337986402196173571623937773533165971301357978350372984547830189131442914830504968399556531270201704559968435600305985830468974517878650847391834994805934122838382117606999823205216391644125612258456326764119468676544601653968631870497404675397604539068637036368808560337034438808876082953821627214419843459980564026684419467172339145502438752879248545599475271811643545542265334666506457420217111547648455154681820505034015982517369763943368817422509660112118784027585128857782853926263904313392807363135608911346761351062233608605797189665158559994426891084472542384506059801968323159808317813846122273789711905541409262225006715359054549255026398833562677528750428917933129923460099110405116481583193894831419230058225227955868924078500445088810598403679138027995161290500527270037086549430842228911954957899821650684755700415572117641689833494924545260632797761705719810027609415413597953736358469524777921439255347644983155908519726657598914214808225536723997174129589097954576265208360161437501312158466443424733526411353258350148189309866233155837398060275354770765917421723753379224062122752058652519943973788605764654273363991373027511519081864375493842409792270300488769740605515971218424509846421208852400077628357068474373672031564295524618881904123566784387467373585497239430127892779771852534142676463009132283181235836743031987019011475111517494612386263936286502533292451886677471663497068172706678400492458353987504950350349720635824885002204426968010355639937758007620076492256726595765990711284347585061818619577020001932410748517399571272021061805289256695027329312749748697039058922989584324468132240921968707476646463314605436261980476602747014147108497750921930810987485310015162116680174784632070278565870333721927321990443029280016645097904855283602073038551012156382474892163312545714460846054297078334362691841152018964209784407063331170317917977862479909662650996488825136043400029431501576906985575902059760778459280221294867144802337214755633429476299541230936874965593325202549494217088668307230696488670306627180500235796972759169436005576207135349157553606012016586493391770826996789118152030668304330594876347768551849515175761313597287073919924599883026871064090062116985121442165770083405904134425102350527978166874029504155712297336413343289039381231507213515409038922356120296782123401189170132243522241456919186871863490754303492414138423752433575627378743109138046116351996202063772439232255657834637422352725803413645937541889077984192528016511567522614778146368576451173946182464800886411853452985289294650944349487449141650541786428757267231656636446709553323660973809391761641563162618279113253079518109084219939248188475492226270422787698351186257624942639668819494081180101310005558452403688626267275653059240394909274140281749397725008476894116447407250938277947846727978897836893245431120870461338599568645002671076923168145878306195843150956930120205484661587482473661340034650422698962593591035322062520042410853507670283418310962244770529169249849193402969722027494926093690040038844507366920373751253656012802126488552317522742915176305671012023781300339395847820888171943032545509135019486423438683417230424497577429754766924251261540497680236613357166884048006635930657738041076697979374098856085510693914214570645513293798552773840309698417113410004482411635907165723654014609103521628986612426469600242542340425735527435160506516790247153098986867379078357685678219855123724307875405266564607412541725128034209709160792945130212200056977171561282726813879930155590074082843897828222381523228434811834021575930515103611525103201391448286407659966898385354455121101848314733764482513910455213354912057726072883537111903487564913378584832896977760185129928783644282398047827555401715133146252114973651538932558510280587797421083241692376739692316199043103727206198355562976229787746831584688052769999685454920142572952550695917597148066343406738237877266570794602403839502641183401030958521588678669382323062077105259582248420751475277896570109730877592815787890890511537364437923615225264700395291119378917724221848998017090513282742537986112545759114283189058854142118056566858023861581391272413442867099546392667513463964518509333261556474114563559482206506397179265170445937587145883757729590383494363559444221277655966725303958121489549744131263313201525475766881016925433046588500011626450470883179178774247781213281263226478084469689035736328964028092925157265456657710497206825065614463875944790817142810417300690116232581893164372787414519071069226386643469590185259751121257242391822330299405336861826178013049835934602261820673196483492025716793113600118162586947599611639662999892317037652693842046576379507087314153788660419982857303976932490268181458002832551987793514422357077401951919411876768005490524710720574741604578788960052788066655257068611772889515827623840944055115384702411062852911909118762921134737761280405678580831695215757071937985176967618693590259729175743096395506067745192710002667812234967718256822362377350585067644225464054365232970812395016889575680173586982142734156746771039030131961030884115977670396966842436902909838920024501981352982851134914286385417004291509316933823591955783308598483004741412041773964175013002529479292783396937884566415241495921293077803447521294055659380179292844469074056012528466426526928138063875798440024579405618265207597863415554459994263746888363309848454765241100434258084345775054504359561816707607037673376499489479411654863770380987725723948678242775519083936960224713422251291547400520735707945798958464801241694063768025642012322236557526172606787568272908262923720358639105714757988572943330419211712004935498753919728735217074523984619482207652423626796487736510581950236052914473137290747510379215689488536861172874498633682979148580094395614012915557550747503605302437241705952194638364561700853907623394139743727788788610366821103006418225561633385408335928480961926152471505287742056114551793197180016358687226286867669068962404595064639572824538010607609751864781328939395323680174320566474566494065820247753990623531652547292630638131641309815716945158929326643335288680604065655544835280718464054773070499178016199837895209540143439895585215136442805080378654325072721197684072918897689268737525497860833636483512059095591500844426059426854237855459809218112134774431261080351508716950643454772370281188151329291814215661202258550953588637800678903497213351567367430105282658733750113451131276285268139093819442149314223267645743016008050263167878434486416209643093387882591841666507330306017175601323725637933212839864994759520543475037144018494758268120548844806944982873287976404417425132669825410544964336233460134089623661819658627347863166093596110736831836464320805323634832189893740549601841591798572524200083070397686742788517834423584702430754833226449310644811184893803709200330598813468339229201569407239851107592815160745030414853783061436615040659223835277112928296756157823087013989195499447776956002139568486637726557463988101055332699284022725699195459168501109379422013839854450630832193794160745541815014974436842448266247154756190385926502571912253284928978287664960178803690212268008915758099313311974731913784958220840295011363139870118024844750392211370770963286800158808283582094581232379778951975323311887926966545347804635462298306429347876221271857120100512320611919175032512144974631591026110554572243830108544995238607230100056777690917236386809411910183490160597405815110937893784341257186556951297022585583834881959823894645666081901221687794560668455516470078913652192937398653042430732230801377849442111216936947585969888928395754818526667641000696358465029181590440444977229905347765738852085521937571356256545678844384673375740896921359064221214867246098645289452911450616554551201375816488176347370563532171418079476050911263470319220510779827176849839631498684771065828570988346959376912561896372906690304882270756584747402658175441884448393638367649788918247967333726648326780219383081900525468437940069542878880482160681215091835194426222327980664277705438054783545153371994321469138474099190149445235880240208882237457350202150160200690009760987392574808282058065166367383113819269195597915600333802901637206147544092185562750187675064920884162691790382757099060747799635208496454158945935083611590399427977928421882146762866914231786588561895624836274816846773012109736543742903202279082496250850070138583040924014693066099122395608816093713527149997544695972920200891155098696562348142772385913421892980988620818598348890668555928560980162176014603278179951761229765503858819799446020318694564018849405145491986019869368515986540306641434167875719208456622702576585029015884211691615783042697670860291000537093682712600009094544091129326095041521948821138207106772512328081482435438086678684011654574544442286311413518082025184071845521928122300879840091999975635626144062659101134071506118234360304652733666677404610494667214712224440377748782593751876910316735059903960493293474234857695673948528415418851640245174762364914603054462748397166319456725721334561115772640748852865491853306082804578157441303301729265630936772562829757933877862917440580732937291674236787115291603232536067983502118956318625568306383041886484861246014133520437212051674503254215850349054553307727309163178916014018071946894750711448819841657979223079336613696921668167801253547506083904904414284401468094627381254991389932603849687784481046620518444426583953259931952404685233924423512003974727659113571916501959157034334175817466143593766732821335747923843768881298769977400751432215743160460629778708654966305142838788670829614973234671983918647089578607619188542907893292778738084832388901286530150587432241814202581140784455548368434273467351097043536301152407139134062128535736072262196072819238814061924036092436617770012751414576160356162935134863881044222922889892896765331179448968734525051545107434063220660813061801227770576297815398674042452119673076919484086958240164760079626606910017849966583488437385609818981154691346650316504690108297236168845641538544790207717331948283045914398001517981102122432299258688639068350276046086599482082114604903461140798537185204915538521416317176675977287992564096427229534368360101949084162677695643948181665551016713996766762131192802865137278283466158961316357051981988051454223654998827023388049659138307688944580788777195883659095200905991852386484275426112323055497144407206116918192836352348175394891847007484961201693044323402348983400016734536095917467733823714047556543493636885767316618988937586689357274658109350615552334942604333550052235722488880830283084551911109408791939719926688764479698759668050050672430957555272265490203718258075550870638396281061969152103361939246850221128870758070764570607194578016623471489145092647906018148766986741531719409696481813229506939231558641576663153183694579426649035381545195818848429874951877365639801788306457130405098752404765738450567040088212741658142172676940996277867283446382010035508877970817454513764636952850311970422837338047307413992616072452448901255041071951367440719617309983136793049554647984611080505345520100827625992388545623765325023398733851168361371388267785379807641091096297488979944708222270489467020049081644420208587409311626364353163261055646520910745152274110672545897041389560436843429806000988628334880237062320824549468880654703261066141469685268304238372700273754009916178770414871587725437908696776815487392499277587083215662725387322404060788409189919291539025739008736614200446498531791113593024210285711689980058988596360169472808321556781963658778737729415936103056612442796574361368222019331842916452252580494665503915768486002662877913699007075833993461087145539290354762115198085058251337945228903633647451970765939221615690171624871595127215867393978514515547981867985038639717842029620992962220620755065485435400141694673522226173747744631281180121622104657338236891772023717631658321511869077748583139799930008367683440438168702722151550130074105165395105909628654415339887688240705951301187578246985770412400283254678112771288212363965628901679844480100803611527619500572594295859005552505421735138316144895255075301022383269527150830849029172073945545820848886598331457624384145093020798707350699084479375800271831038432979829573692476109593177309934203920997782406767533775074209361373411363758541255436754971964576035529672281986450344500828570986341680306270974733123804209318316116480369492714937843205739087977282413598868072086939038964244990787518211105140685795474101224810314046059788465543004199655851901711435482793183814992731474770805609291305369869166507834194213290636058668116830930086109720085499224453895583415400130237643307341665378287243872378654306838887366061293062741763390349811244721835573430093287652658204622877590868063101016475344131046432139085178599719835131715141827856074417779138595080026390185135216875029831519070821739810357014992816879274060115404764418230337874675574253640883844367729955445502529513591944464763906193854636577327654054878999788632410437310893595090064337028182218325106269040587834681962023054685370657069927535760334676053110126302676887215825362820836935771934504169694929660338013322470394411300433234198858646403181084188185156876643067623010467801315987475212292528449974258916501152589645777356688242957113005463247186447783019641361725212371898076350214028233729561019025729065304307316400444290202001184599454448488562067254217024762005186821084129850741929902448167869512611717614282966747599234523586218118441267262306094997557649239591719941559993389139832082741730600069720928665316879074308872273399340297135552220913240144357455899990576527810958790047307032166195542101103984190051195532283111345954426764835727882454190039256429996069358082936767463520585122094249843381078069195108136652911851104174578559744126068063221175127711557495975011002830907271960751959677872001666853115882003948189149864605435987511899900392235265862568034048888900724471842763881525406526759636880146370996457152952494646211347613990300900085346681983549851084108223414420153513682855138689302162564408111005773463493897435186613519133534838379177080065599320980938523118873368247896906383656436700377039350890592250377884696908135379697542974076807079086501911951089621392629513598866739928781540740207736600058388755777341415139974605757022068126047552257779028125166039271629256306263639641754370346740875455772919269476606453506120339052470490822251183663910761573798064621846306336593115233683622306388374722984670291585752768921344118596730017051898347131072972174404390513265462841682076042527726525173707631540460338890221180291109066712147359115121017321142754260848946010574005048964143314909694388274829574057926628228011772404212889909249880091877086216344272450149001488398277007431931995517580592168764917271238831326194796842054857850786978564745721698534619843892556675233475730722052606405441298190993956211217016972947588230395907797266525190802754420097335696936157752548290665043351461529759274535100932492117121980719621282928516780669295311008961578106640941054307453689480552458451976175468056757001359700637574356322564860251764714628508720673768208218130610151129493012696239292636109021759292901307859830525215046548261771723738269951543809764504809869020354267175875479770880617019294717764563669023269799153096242262018076286691280210962138114094941995050245062856086869467029011382232387357981768390870310811636999938684886019387836583072244917937051211663145180392171780489667468013909299504647943046729242240189921819168346562203366762440135109441268156790270789162281821838471790280194039905776266627619710471816463797902983836403288391225333607677559513174979140877241505128632004263718174567308125693250601066135067297076828122292577281580204970168776396505538299260553516056904431981724963219965170903362939516226041395524352944573552654369876513987371799450224839446164244093285422454629015034712922444870426899989627391332303356147162704363020791442001725040520187830329120436205951169128487529049530452077155379093127128488260952366825982459922619091888808234789561960960565811700601776575793975632753163424856887142144929679429072467045141709875177061150084099326103281454979077780955854426253391036301302720675100816853576520365773567390890395998006597095537894644565026022690270930148678863698085612405026671221194512438949595117716613382088739746564318430324497181284819697722944934076770905890990315787739613713309044496292844298437677337478100125387927927779611808807157971789049826632122307159294530628433951616359248378986802787392901990590719311026104574110101124258719956488045247232179553513180763041225196809076166432832848503951450128569990100941055900590062504572724479667554280828227838327245332478984759363278942502947825267574208349339818343364437140692409740824929839229656653873937933545968254893340832137287476050422725739227492866687361345361886683158501237137002929379924153096049184504215416313570571983341783467533968486844186178786827142759948465032142866563385256634522261486469440385580992773454351546658298127560669958660754550683827194848041042786687536147098392429143469906235374259231893378713171250652694877612597313002306393604344326213569988654614530888016248304377801632644099248385702227947031359009733276812467899504838554478531444060479956877317788123318783927287033466201713217853006404659204629624505532228300631676448237349739785288029356797661590294151419662580379666490802060935953787519020726890022369725606118396338949409666401518997095635643197373765767376487297912274702986303119982304079064108007497833907991790927921644305907332095948948541374176303850979594283833762129601128698945442240837101084267059297713958974518765065958868680449834178133083718524739697923076369012701314924564368838631642651844107210407030554412044598163407857822443870393042626154469521940105481788888442861352659283183696954797892269073415241002062760827040469304770449151954756252371188844912366085710797486692616563995733990225411574366754534815728204996683499264502365448548965507810520662068888818519618264941949085151254069939962660981766629226766855362427750619563180004211520259464978293176453609050417411681005501274265143981419684987404785705567009768960462156633684478121276303680262369065949309514704941446333639634709852609133110155735873594076172194521870374482141809739715353271897984600689746327930210583443328061954627607890356682348497432832736862329943808390987493112704394620476710156792622841583899858382891377875975379120547188804161542278498096763208075301717686797374093127557391951252797016730436836031878314990627129309345017853651469328063170107697060942886700792147869512099537608813460005392435938827484626179861579338283800726379223032324615899614041593772255660950499473541842384799397501196334677556717799445175786492669193379877496693485664259124602453893608122421457900166809146041066548611043399867662005930531689250955415707709209754967264838848979630317276595557691549056823886467297734266863609175745959598148294283428567728568869149631290201358354673537400375522766282205114239084672425989167722997479558076389184433444537287690269954978270420182628803042823649335491307352439776511964714531809329822567587929720856994153743415996416585545047433169293674865878998267673053399703103299917143247636471646033799281417655442293784656715550471462401584999239241822089714908139715817015277499859056875232018887686443792253294988321722963581018210257581083134582934285562117485615620910406529036484888004059046534451166914082821132574629157390354193245466864758124828428867519262904088874570467973886609684888129230278686103117873775774344105571514821566564894654760053226173696448467360732898148433187909725984677132970273129517921581704893844927640256610032945685611154151933864429525476782992495284783736644791641583252833436597429127657314944505303409278842370175412049370571694742653197934824122042653529882596390422113449856078918358928468649547795002239660223802392474323102655175544744885735874805851453318392686258393529715751950423184630807841918374080257344026060601076947786228373820776630149054702023116444827149889445570882704359640890490715445639029501278350125633748633126345009710793829321596795204162364795056383603862116566227029444372954399685694981274411473121353269405692378048293821170338148187276671077607627729333197308201101563730637969912671302917548887224485466950108781292408102347128213512395503020031481018876935733995274283038393384696506320996557225266434875770374888917668667891449255410181433893633809896519664851619440640782682332516545926926556504157546283561660634298507913040998712921374366650261366215214051804947504896175055808433484844030952194724449387098417585674133757615683295105165403122184929004335921222538830589914809288948161413574544228842546630649081125639729861857001066757186543268193673071489261997755674137490760079461634746173663593246260393890055463734785825557236947049916318782774574093852536579613701278148514304672938951132757974571243768470291719496804380427749053204708882110440838822232921829109505467387035610193398100165901494841814233395494900165512548512711318916374723852184784953198960761204808468969911572405363601620995012467341340224344059799075579369447083807870998291921595606634783140748786430221815961671384237701162696432290989518927502875296106625023204970281163921141698787582658454547270000195939744604677880763144443169371589570458076726472233644584480800262863219628534763790089783994611084198313341547508236581750220198337476053231041151852591732422260910250454663692982356255462727738894319154171074981712444861121105339898937829061080812928216732495023298335144166861647348362646187728383671291227854859086832412322191046990292719727106455550988382319660157788129303832689361774473271692580414063162779431124455579334480765249360477801113757420656152731770779851889434510542206113267980231763568146831575840818025919130552507544930897069717275826250172975768486163819751989159648317669544423936526400884956991304983096625240260760496579036767874191307832045989256311836034966263643198507817522288982213130018062318641933137331456482198820497107484667825374915177722169177569200309075212864865569917475579404329539075209750681524828001537141653981568493261274448939384085136937563729475563285193220715189743200325724764324501884615438970755043853585880404376545101551738782658514428342143413505776739569117197823791695475515435804814509640734388437797650460701972313260619810953351548064651418160739446702407348201059729598416445525714799176215615414003137311449200190888605703194016239644789870835599485256046165366811407911948916293399763215191718292592491016029604024022921880380838739790651643632326486808577124212251715773513915526493535103796820678567073815220600934987920264759967746567294434755541770864942131227310572150382952007243126520624624308185142764814118781345514774870652895601694280284724102886604049906821165760083156224907860698928132469127637080173366433330592024352941052821269940433926581432673866654339481937748147854131661336951439236553127935740841472081667123052405100590646183842318266946909743563847439797094896143118943210708165069283744695314355347450477730876326836591807646942269291108957901741169102926379484840611761093813869742728077846742916402351691359174187311193496703423319462927296746657354593677617529562851008666709874009260268683536582925975352098365106291504507929307627861039474068573576187755416079328070621526462832209141664898222352209221434812919562974755213373282247969257102211102210256685703240682314719296726394744158684279621154124138523871159906909158678083316078473313061229772905569785044922869208681743892399271281106080038327643114220880369804517371228161022048206474617883539917765240358711016620924127098022856643511536299053296121520377997767595902863778371700028056421741479624645168837841936307401201468454528632605776806723173862518435712053940848370568548808383359927933378288786070977385019206227719480756553449919981562966754510205278043955245236822022363679339364104611107701179630106469752027707898699427794164220762146959089490176312187456928455841154512427916239751335992162294614399413928073142764274339399233153398994494125196476774474470238924940891932272994459554164339306518325734586893103891097516034178467012133057185251678089866716808555164303514168149489300672581614311280233887851320995767599778980762564063946167703643283370323433445387618888890108299044356028874382277823763635744179349703861330157564182667260967876512172697959185725094432442288265518972278108396242714203298904812720773466032372127138473348143966230510800866344209690803104173563138949099048699892092690606274427434114137091469514925369111972760743874738148657513890165229788839395683782406711736628684998762864906050676743407283224931194835146810649947963919132079706191763178599339030680381538239324372925011396493192638204034953114291613032936926036673858887374529568882482007511667058522983080884723262287042157452232520185527688023750948097606461618712455478154835249433480778036105899461781148184658370255686540335275563157343598020386777835153568613748651875048081340388856162815732788210240746727431989868661577599559334656171053817391067723847096519810084453994293566085999486776378161725424530076386804946803928924349215635193080167512102241703904585329336656492277476252377829759231648000308031100851149981349132899915499628719117073855953271494899466847157344347151308311993154018536597335834398665003613099456206782019157613547929146896396677306406521857800664113979878184085660728175080334231882622248875751485297879368572923971561403406489580525118259434377957357829981049785787385499061170317027728429345222413905929796941169749441481133134155758928504888845044466650273586075481310023367268518016692461021557726499919084950287512540778409165099314534224398992515914266810239047551292850754291119517545016888193602764388727047893738312353000525616075215480189637396924173122269422103994231576579343981671333524392695609050892170357374601844581483489965551364848953221265874446719079411357190380636639967191876002954054725988584523273428984611352011812771885096010252174548345959081533397119066667328949506167191855787835692691240000749500834616002400139516808608252624963271218305285072449647006378485925266221743791833548135607013098873401872996074137689533681409473103832745980107721142738323031590611423054206562711123159845004876606537966364037324323607917103410067056341040119381676180995868001454549821168963624091235840401461654902098037621294987347811395338194560070588778200943822773603301682569042547024029771911429623833355962076597631309936483586284792574250537588558361142319565250051105812674506948415237752996386241545419351236609773750348259755427404917918812426778507914857725862268271023347926098593340156461485450910222457041958974607937953143841578763065225357098651303491982897468139057244407084012880142237440410359596055663303434466388186897556282504672358239648934686249074409697429310663353620180673267963424946373961571992063169633010423299763962618020149259239430939136377383215721797696476569962820086039907787009139837397509496726779775861646375968472925371426945898171818646372536141974080455477762188679460588452556606304304038208664295589447118750224276557051500603909647451728524091529000083651333037520294001548076792371181261889809307802633275895938041379954768811834678809949275708089593774491446842315750812796752934886740866660007216196923212465647370263193511176894053876852538896368974209923121227021402478710838730984194810522873646548509120923141480708832231519879556266683166515802293267354904577965730977509313070431742250640740865384496539975081834829854050710134224744959901576345144939534828782499528798363662443201808241919412121363780228340050376523649738116218930252260179911503017721220314714761199352512326177864857379550381838262958232392113098802712632329384427899551719117116219700743440475985198233503503056519772453034788613347964916565374978734155110901620661983408864373193246367722063115524295677070422216479516715778357354146040172806590319842950189841035069750495764211070313799836487176134387936145651916824955812685152645593283622917029202328375213798265160616551809513573277118502348523077463906001532609219430929794725671072681253489406606992968178377366571589080774651399421528918987292962667991347464118976968905140309772653853524563303453917031512571843529216282569655292071734205486222368125863204220535858109510921741718789093902469957121367678840210637085930852454119375708153951480510586162841936855376373146632434410616865167036028252604714174336122323762065555496829507304914745761448357800830522322528424567001091056889879489760134306419026766245311440586859834183926757088554390678889807857969944570511956820673226285736630226974316034908545732532331768158887173529241663700913132178164983060514397486970638526146147440809616132396991783790697262406942008420229082310177540354529121937876776346650306828175640965756800850091679159354879911055178748088395322960206977201719553572036240283044214869002543678180835754109055325336173693063442618160639518561747304226080135338394339003913493601487482434385875760248535462240128183776623497532840482063616014077496874387523650246435740510996721254419516609939395317554650884044988324452979657843999073850284351448169378291347540505159777734646422991014598831026667306751566680773022413539425801521615684780188086283976169140222185075105922387138963074492637207839905751959850047578892662838419631164518898257488526544770755043781952360092340240925837029796127719009603229940624684402089322932238408000921863330293668909908425094066130202821394163475718950289521202129150743366802427078986256779831644908292352575452644890035416123897403065654126526526647961372421615613962558406210896381177663934365096467941937085314845729711643000121820444484947398118696579058438924525242883775832669405906542679513504179750643064037246793136513354172002041652149468193355903007757855533112028370420140837050712129081313356743376248216948596643217177727688147910885868498631218739361703392508847130833515714505128166586157726860153012223550320249444690501630746053387291218807303187640818141982224595415420605959376763236947076053290192619087651106478451623602769943134167290346614899404848518005083589936755749849021735303382828992700671578026646324923426247407540604803860389905006591406796681310905143539189585069479772990537726258215548211409655424637711988982209950742436707351968423681167956994920348995856560665409675874765087290678451272679909200972710705087328599563411142880002422175961324166047520496808125542900484677827774474996939233913355149360679075660934436599512767199691949452772671572325776606904221731772042918069415741902269434238109629780421326192514288624824466909021045684902136364906907764488789123684447954330486569845485825407800195952885492695313445540335232149911640547723049520422156070333939934752782828749255586267918435083843518488481022777835788171122964181270872858796666831505414290175916949048188752799981182105784408913234634443592113596234974993704689240533395825587325821312470414023318976039063747030396780166951193943232270311476372071558194734806594481278908715360595819255126844735852932247227501879442139297856853016535968708918371338340632852722018693074876594084017659634302286115292311926407936715048522831514383368432266125872357973547402833666348188042947515470029654784754326701178174181458421656600923727978562489160491740077476457297938500798247665038679483331469108119990026169495634616275250703492139548876283077202247985663671297184172657568827373988512232254669907832519856222871401926222331315225580215951087218186566878778045016023947243322644364206135044522404013308749762689882105811963815965031404097228801945372626559594512871239444834246952292193936591723421684925845315517670771122379469348317746830357328366929034412790290197691332045726806883027994942588703200769437145699482678202321933522026881621862647442444559701849199866435188480530864781644603213626409057578507964156591888183766129001982682475182416581342303253054495054879563642594843288337169706748306011892279903354524615135233965260241739510292245361037337095188397452960857708529152325141385017230358755946471120700059106069589946458329409828784623553063640238571976976022097427276677176316422449197216809008435989661562102687988810459678334980631167047372469954708957152024831030740693573344382105362261460068316953719358280629779765840792319782083316261672053547405949274794880711396110532896635689500046618064735524086301048930864330663145287220781977911081241692274688389832095796630089236097869914714627388897579737565966651692345858408059651449058595039177341584384686802020799500500333893188886310113445999274445150981709280288401177241091581488365450030291563884797271463265733000648694572558295197231053426650072709472983219695452600116779155902005377981774010018374972955605727333207611239276059317774863684361972317670660815453955992058401353387922559606903969533535345883575890693841968604046370038373174324884827932814270568907030912252466118677909097438598233354222579050210597499944552250557140285401601152349963114216756518821749735176191567415109480210770233691242660790928029164073253919372085642603647633775836086712557413322160497844975100112089807668388723701789461915261851804664560627438525639448294829395660797179382524664922832768789274014197026396071059469213433834980616142029217914811129974904264621231955489084239324608414483422922895824726735925156258713943644564752270621838301467137833882534012525208904591777010002376217578698752362716946871069382282957327289882222943858244461817408706590491471960320650668821849219331605013854210159740456499528878112423607437134251481853938691366101374868825754435196877980432651568048858506151848815432907688582875393535514514925795049220491599454039213051138507150124049195964493636542899289510234563763704297245005044873017283972883203143508232810225985354266058708766117926494792360363503488728640006674172957269322714999731282275649211706064183287162084129414961924176823467688236315483148247144174091746200442737497465401343835787714579311909587779900686135110135387229891909283385324678816291854705474422050109000803353721204753316330765783686321681302316484853553826755996024613161240891445257881963942260440252541689535552564426198757863797027577624494991121932038698638249305503204453724634300181721371373456282867992891492131898284077893917723771060819693011363181996186303569423740652614262621102461690727207768913378716905998667515149884029131051186080814506646548424180081841455473023013934483805664339818344064048870632406667055146659311005959382830264963048322597106673000838370363255633715533737075219352182710606070812620017627184826417600340256371268536123079673534531267215197312429029177809133862215478171068913887119247221162988354473884448411411794117132349441092734187405419747553492420661924211953338772504967268556141128421472666073751464521088556337500628514560143135903236532194285042291170194050373574279095134778817484277502663409547804168550325301080631874220564605814330853984470849004855195167430733929301403228333875820638005300472835128460627514513483686022163380602977667814993399043198513666599999739388351688809159174439368125102000289174386261884706005367406135220244924144618513780912902953142709163893761074714315475383521100343670531461755934443227532637509937089149449396701638221975188801097991934804349570281079122331097418436837315349698902236797287788454557924868625671102245455852930570227141873249234913876125085888275620201332721227424352517610803314994148228461668165838975551927297617076143364349173508651383990818451307825869571578747462795735537278242596272984076161553609222755923981956472988199725105435358542883110614453812962559399687737940030289933413050002397015848662998942535625164590904581800395581258268780345354120901789861992533612181392981363166810983208057073267215212830634365716271095707679954382301303674199050754079772822125252854060254732554577749184676070201859915603657028962422358345932844594135416187008749401555280245856651563725204508808584719030131562943212375440879100596198580678698608842387760540310508376873765260135285874823019200510493510065430609387381946378197443538153512791084449709755024906995855743519341271966134574538759058866238210736387538686716987568652383113714601156568104568617719193269515100509402383718899391759699455524927141852600714918151547999780169240472964144030145159193055985194753402443255536762382362582375550824556387125622740570734676926287066827384512920726806773776228294895389464047713404513327153103136281244468516289944956047257396753856637092436933805916883484856854973474455464348828506913701442745540304143232396405753814473010455831908493565877549405125085462548462903373989642147239129640012039750293045073718256159653337796684736365136146327128214774180220933820466352754075811994421862333738326811208660348127769775219615189511931968043382658840701778922274430184041696157614706089448423815150092571232982731849173669542769996985069127788460188286454842348424022478026361376253206303537567940697115602007528435685028119701646013666170442242096583073675579795856088211533699700508589399481602309489833370511036978849907587652519129654639187442517855247267833683738264133374442140019410964945339893451831668304344233999503293999298553262231965328453394895963351184741227433056392360011991429189049543051011827878936510827508324847175448193922743024545866896873010197059701505768448927385975274694879345146181178805391095750894531185257995768090497957454409813746661002635826686621295837345376194733300784679338751878358807260927816525475869685766824288720784638903357299788622493745556531906723916610609880417594033687168537113025290202849618118862295474479257839323408788053415312483761446837851713863529771913306201850608205940548069859715727433046181790108489114041166788330756383359877768883835135378966240265988148911708660492672583163211924710468735341288977901810796984312297750600693283005894505182982758621432260989687415630256777687833731260662456569667525574819979579821919265568352559458904977716146971598669129199283406922201509803099705363508703202931174531021749000845087146426635589975176054784869383602918699637840968538345225708119193137881633820907959312061998908304538381505249173725583156188503609265637190628402436875037362425269165126991540734621772741949577164469912362358719586087763034109233085655741272128230622099785945738353482484699368617520001306712515951853164345495614841837133789116400855040402845707472128848503414491596543927503830937947412404039697982436176432575722218514586331557721823710145220127939414924465589703927303331681412595546517326845297258905218047644883995097710429563826373769392756444315940651134649263047445403440742556558805514317642859561078699161005228768460049598732371931071456324346979238184594884025028489373031863606907840210511909332659111354997591931297594735920152498208954058616885520655631733518229979537729103594464677795094875618167595806819584623371522455821974331944638681163690831115514571872750844722139513359188055087272978369581433218857402381552374786728795701656218097399046095689054330072835521410046475049606508652345545412792137277366714271626142024151443212726930322522814298860686513449957455613561195282438702882792586335758270690059041413606426011277774339554850994797221286836427314462345493663144947702749759871622358694176694091488915689403799291175248908440116165631136528245113651929911118132954307296222575558611539350908274683125728486641998983950717789240357731706961640665195101393650599903468199612404071145121093916806684747535326371067979668889859906019782260759063102010197192750431866103233739183639810953819123221249825588930901067784233111939754471414777858691218009894175491018413640317798677142899849642036158589637698234381675710832353979611641481495752769262345730427879354860755709250123665117243799300085054276181986950604038826922067824750970559673205146603352692574472173679993958467465309346583937758623604875792147315728447358796227661587770024237103280980624873469940860898057458603162219812729993389650518018427140501012297474568817764775062687245624812442639914708233639073729914364710378207888845984324298052350194642302198757654340259929919522941588059283547066657814011370640782199443529929325580634241736648723273648070882770828236038882888305249605417380142894850882530191244052319564112947160672298200884864589510881009983556935328339731870874030355178868428946933541511975821242025787169215873346549275435237114912127441428216118262961778475777646978240094440002235671317627650864287635204965220928435708204069129055305073940499202937733320172703545402360425003974536713532496201637570039342321957502582764763642427400967289553709082834349184393160759664846034819693199707371093476081978014126739829826844466586635829548080307838435244786899993209504974177732020822883058496760467849391920932897571098886492410165387591496066223058331985704264257153702217690880713036227223880597024826000734541416270922958379098915992849939110713643933238339062069649294192315526153481692123482406737800033875709002026055277944722115509108026526685834861451032800556474312986539715844799068957372106473648385369622420709020928886645203185469196492044674855009390556768969294765168582955964271378354903902161073098109041495438409484328421843473575924065712926162890515331618271926343556248899844946460756697866483047719967910822165720683290575089083424690139400706205957791839488803070136876855626589154884562984500478016662541483918592106669839997533092860540848602197800146039708775194404463632507545769815133151203065015517696875221779430772863584221332343198114008390715060714030275377058693767610720126280494714311913642844857532616142603877172281037231931598650324700311486990397111861492317428433086166146399631722682762287440784455099859730191915861426876070033636309137956714269852043645865167096086170402806308670338631901517628951469055759490194050220375232676079655122785576909220504570007228050053776160025250479628011015960043438435713574115851070536466715744233261893259441710967815023707038018203650455617747355855230905519017111610148026139527508887790650544784968916419888685577919779048527123235353636783506285871718646014212168434694616083434565256234210512250337120154833793354246480744783412527706516603907428339789438130249766464335817773926939694890423573507161028430280831613628884124973756418376866377257409456744128433956051837061363057832179732569641983902282317799591274211761053758771188300712032312010529554684945975219345514111336172200630949456813922301512838254666672947587451266323108872183346117820309419583845655350868215329862782597842596138487399496189687326276363400444202422134051678369533063391544358696533098638221184139694552781351380706514492968420899972228310250022468578426350605288944385722979074494306979246459067908318633042552192687956214407818251023891829660981495589412455168025519499159051529425304872029498099938728237359669096159160431177710199979633598738015686222207293924964865168675665469581596702149647072615484853928099305003617830864982025657377926083983341436507317630280342377900310778680183744341458529313739383800508967412315032538025535688606984298182372121661194353182915641434492168829401967152318165905980964716314728176459810728295334781746129638841333027092877574789006435581662397504865372309870342026093548347765163949142116594647068230125934638950570097612599425858066376241763907120499738368146922983522154777292101202925361127239300387866267417559336534688342470229326824775310181386004707241547228720867779409158037399942264903329425388694704565403742315961001043548122849103651021914914219326397311771724067052224097480732530702827581753252078847782740500780817117610951609059832610100886469204305007433929950922350917876760021781199180991755064127480890063849389455571068858351982209193274677566936533236101897222966460091075942628386833021354604691267701551371032586087404465304423780320991665611766268737214328901963291628127802535510408293688973632364247588395615601768950937747136276739920236875718468739846026935648016100083597184956115224510742814921559000837242021620381132553497942733293008850184919268506621567039369484924950914279069085466987478288265859621611697092783386412355412800626118685038224261945246476931044036211814488668806652471630348665036822218361276178994001312423617207175217390250562337154770086282042891496087624556115021812115947622631284275774545855498104280899644837637473268794305648153626471332219816448906597268938987024950005156174338186010114777778474850219100941695519950256072813678169919376176251978234776423179234109867652255966226520454083419992848109484582551462161817509897823741111399219073655302775747518711070103658312539826460104005004623264262024909748481940338094025833516973414367628684184247165058927370572917217801588643306840539339935766643929434815577536511921568078604635625422964490737292757598784544948205609687692208049828390959733330377639249086588179911880422870773034429818982936153688986286102937197253230007223944216997325206343424734737125839309095642055409246329806648988022984398898542796380400089793757168045528703434147189916912555154816905425737949694360423482613219444589292181541433554832327823003590232428382041393374930475355917307553459113752225373864750920816390405636220363337500787707429040975154518092193145554180524062590064537029548450390371234931056391989119530700743995535616295357352888663041849403051747124111061808181743092970696563331365987264537146567678054049513282615165970006351535225927333888278104951961193664657602784027505915928606992025157581686845339968917690946193466734843117714313688117700735839536568475927351355165608282214285039761913581889870772939839734826162711863118022147461799824111508187998130326576685400366076185983770619396114025515026927976693152507177649549588954022718749655865725238144285775082029598820750876628751682896849181086071771916766890998849555426617626492448184086640001874185501020062842850723256747994251158150213547482767829519447532923901606644870450740113540937169291309075917586813960308896250761496118395649150030159610279146891551175249221329511746030852987739052987966620375809732695781826296652400992861781980492275729959401283185552189933307005058136593057081906727222421886792108002107595439677481063886066900960621085298417545960661969482019132151236851061203059374669485066054958966353425045602228992242815403118002888543396136057211500354299742145643388175510660858550965503063538455561444796786543899217821003788747507409672266422896392851962292007031219083085053486535185537248860683219817882529180982670441185477166370196540213168018838571299854905880076008321525909434332560196967436211746889060234942091313335075346423868587319093699843087737835287918478283405344469502183385684882814329622816521621065893749161717111117691720317972604977669565884116514738469809916274813337685544738669169953520478880355178699131321948221365558237833332107714004021414963882493428504698167802248251034016004223768264970455159038771466349957943753473449504574800526318502776433680280899495547048185520989196355666794245704702078849284550390120714630719728159774467880531504137313390511348166920048601404802522477229884819192859539695439260818346129940086509688385727300828283536031070360430218401308622748694458940323783765542679245034407310734715441509724216245124990312268152414539573052301302131794411219384096012812869265309241278457800495325622908143027971378970705729042738022292785394253243502648512626030155419179888179651726578821760801512447740509021809552370267979300106056538154206462178103987409907283381813990708695754682698526227177067049542352723661014698994307776878488236918003921731574665288929936993126622289495255784187968386283116904350559697538368682438942228720926287109056172350712006884379386475608230914244608368464296240968295292119303447258277566142050116007561310020520204397761980376782469699644596527797581092198507515122908190250175183966565612728184842066045215814476291195520537607236853869057029575165796186941795765134201887641202601963961415928075613165879685625909645178316823838504722096255912855281842530994944221107394938150723105647972611043408043979224068051693240234955841765186147322631258382299106718716985308056456917323694161329946706682799881304620348421551804313994924781077596319417615224438927507134025513642793759738749423996415635383884823433246421788533295731491707405466608999552327450017204220855789472330599866683965445112076236067794543641725584302687614199956415242257815444302060873304726155520673993282150663311105102169686911173233715035397784371773805114395661761511298157527771321884682614686106862497149141668795264321947730268473879383347886505086523259243981484816161816024179838151341281453514432841006656473842384711936123127924852402185078972138652048550764656406072696102991996215288579296861416818587184444081962030870107145376507654476788873566729061066501521314226679608298186252750326559443053685104202420063784143163212030843591066603316112669500426834489194517667505156594057205795642437882672505185955304507378568114203126769338870892194544449842942725244600721555571652990845962195481990106369621261695774855907632450335372613978920122526993026080169996771245302582376533708585520845875007861230132127933404897197503313597915815714253581090601970125356171981687706797710960468591210265836743936721635936190998082447458419291314948736495583472402013279580160710993340587155265127922676218894768037783979288931843984911400798680732783332629577336602640736066194141281860292527232212380351918270758742780821347043408902159700348269352211410633585679334827804642561153044217222159951297911831359274657133929833997711442627937504111855058450112292577775730018975820160338651228311455561031902552127761048688206267828075851982307602854088138794882522757357112200049291496351805779420839669791108884017377038850759330185726850221941420238107222075544338956857251505222333841632029455600644566898948715493696634851511702187084333899423068984958896403020417702891584314617572666674963144087725599967258759156213801894199677292077442055740376834573324560334768759619177076552005055667289517442038817422276703449523061585916274757658064992139914674680591132149973244492774023504221157287877967545828397472563345737152297479412233884991649135374262082158728534068752209525147558956523915830423010947028851350503811444295230820223598812909369768571883621327093677018442691618015441238243078262358516538538885069310275764871059489434632141884231996860042800934496115488862399415972394736360468623601678125201380403891774254370534917256179146971536189904019901748351709521911685139890377099869424931942112271749039552753949052403295255930744301228446546998103746587096344328809922611772621107987817823601472034822365106361093291393413104052985688174219673379114075248876085824977366058704384052786899163436678464755171775087348834679121330136080278139084356266865548876555288820043777799674941932756416653016008229316013321989350317289067620959892432595184163603753379006000347637109625546674171306107323494847533757594788896014640194165439787927794837978920212635586163675930127490606246633503562188043713230820018145743076810151492394015867248947783602605348644288907780044632707235989447236471736349549714839153299756201993717242818562431763176757714025116824950828604630931973762221515960898191667869649741086083621574823874122350199936957111534159521937945612582517899253203136827672100389862034971776463427868774291622956321786383043274754326361076757057031947110043239721462625711424511004865612920692039659334063396626466091352389923473270657309504160257938464893268211299381633180377334816163696478486265239768937186815207630889324157399505385819223668234580151241654751892978190515399117809070792490834318853826893456808059965847850689419245546133070207295262571027369858670796172921096894447863953374507845385088459798933704069883806295051496466543477578904269083815555633094387800361253514942898959787681669861554447576310947912332112449100692839171991737876095232070285649437389970891903708407777527728792823493927012837256571234370222985139379339093870544424571820371449004804613037899331056866298976932553143618161897081869756850486016630568539809885227306547682733806317377566465016458804119308273447859149783318833474108002190432974984899888747705227545113466177152895189382877154759615652287406607743435192914220570621888210307025614236615549083639812557908699880207421422972077463933869403617360129672058430092458761184806379569596237475022053504161538887029288163365003399925758644097940725809054557106957411257238329870065637359494691187164076949996472944125181610137122859678633059653198927231915267573939036779321259298223037008273512760707085270060161244364619320234608154914636807206065325079781614775374589492760130519971227074594815497673201130592748740570445603680467932607079792955405814946147080582112812016536982415605966135681755502351801899330841350173203096633163771400243017775523066530024514878492110294951030519056515096470795588812136928566995840155756988176702462029005064742111770887937933891898168024285733212996361531044386291744425697404722180384987826529232001184157799162632536188340635729775353387527817988881630636852087820117313285756186527799186898812357864179202750292507064783552279207165939744534770224324249624045235887195744855847192975471815620726661620289641661222013529433605302757613451543919096880364610255749920455603511520596879489720419468431611131742627407969084076367960807637139993955344201552947936237633201867883854761090718533417271961021854168980207904140349974241501011944370189721905060424581720442666731796723073427554646592299078233572261220977049580671006037508680505083356178165157321752175738996444400984503908880177173890459160090180429784218441805849964421601612279696377644116510942198034796656299890097686027516647437986492361118764721494372890324993062337016104309576007996233456562449690199655863213641786939551837029597380386889734496156441681950835456155210897410864983204279483487961952904340966692684958782276285461426134837235166992836181509124861732244871643288069939426474319534826728340044375060958504318123950595949916876867162586869841968706902778319931774749773776539173844629080350495771473415062938900190812918789985561906523066855382018817794951395620516292736764992889078062131667050067166991051216551264134932247896061049447504666323072106481917557020202370690181848997114165332279692836796593726438338124774786963554549064796148318026669695148205378811737936077873893589218809343782633249297914298945405807721888017130850349545968351302087780056429410263211652952362606376370990893549809618351936028135434395751608918332951243039378329542736863350124164178568286446495382629286811139479482940088722379423728311609980090816613546776307759473325676634968268928623895897276761657211550911395042708131778219724686762691802499392323486593613985670277217207409465749604329103703395203503997020763917979799036899363154386418898469901215631533546981495639698301161112513727700049640128872720553755901685027867434454586587996124622625027229971989373062110773085194605021577185265301568631727716416446661377236485600858010697134242488061178900334672459417767882404216911977871180557573246864337622735249832112967772151082879842195027863733124878751055524584346654324454030855678047184134308528936403445854216146229619959518362436442320556055932533868262489619316429370213613483553866999099323237626838355293571353111780161860716427569168418876050153608627450728681061834329461205931822085365043165170361153784466144894891386792181807864380036569246162232874983661717355906421285945464229303398427669555882696620179217645611871710446091932583959476889490668072999198584709679063326968649706237241677425516638478780827407471530669964453026713998317010309619003802666384564151172136459667856322297329340566551775627554653320442327364557986229585055137756265767620593255550808201272512848760365196552900718450827600375576607297425493709711350749380487572698412067632172442926847709687872726367864600913928336729839675849047685391438583946647232364201384223134223736330423468704482063684117939861228693369984781711079754945825321985587920102329116663379521412334747509736617735739008114607022198987582434624713766837220283708714947509455805371551865717902828888657808071919925669488876278044797204612723666196678126347163126826574564430418970205932713638415552921799917340145009759446901549166884492285495428996440986670336962653231038557560352473185542229881324925626261137729694878569346237214057731254677166670621266277596725955728691746128911534565336508757773786405388427514725592457558769339915441464682399614145658389761277429491370535870883538216129120694158378882163694088365910416884375839090249911108975339173137385523973450577793031657980859524613354846807650979112571747081038391054336169177353886949285898551183662457283412123421577369969230729244706476289330425910787862928374071501417038202263139618542812015924545448938406318954914036871159519808406676416990308520308301700055511766782632402349454625255131729500640697175889064035738237857361506129780420368271937794849173196950367184016483001987858676271716999428205513439741954221216881187847320053740413724930904260898165455582081546810272736694414169338468237370657042020542395467670046825430220971128208626803238827586413285996478851471217262664991697691807785232426406231668427721436162664072763118776136984705308332880991177131804630418953220457414389285920093491087961662321696724674072496983378972516058957461649054140284149720116768373648339722134812954979234285627885465946529787997650002800989806498026939839574805301144159097021338525044956636464780004132980192069857463647430990528956308211959749410987985578977600682709238720239957631686841912670651526831017592718607910643165793710005525260010910564837577577115962920453581587913404998647516623736411530886537858512187317110028630562179912676317119668415386887347148966988037266678225340568197539490776042984291664363979529455905948838546744459218269908231525239903309655820283250316388619312345796292537307013029395974905687662302837817576494506763084512782357495500207312693691518493331800040578980967920545317780997553225353546754189298328938605707112320537305430477941225756198988553172989214052832860518113011481632409593258266311351557953459688090706102094088808222105343900253374387291536017583138379753899698061383009561203297753602031402951281035762445774516369447038473472041978821181426943726033248440822844308560951043567592748554867433692865210542721209118759450959280471440974996093798020067318867370115377729604780790783508379787388787566516848065204330141155583581224011367978900035881021851831255233995105320493793028601445570781675626848305051504713455696694407705388756253360642294991693977611504495777957659330629776256822368464767140014719815111589664654672167618460311344238808471886826713901845547132977464834682511049688884684067830716177464597643237842427484318744646617800086647911457035103929518105035118723298553132640646240944610480355038096715621106863909777842051983452228928687926223924180919462943973608957172836772662191667005464914606649038395360116342744791507048292908579551113114626174644404949508863819511807226947220902076594508052161769926883090592895238245469389923249906684106553646472170801267737594633467795906575312146725873454790715463735152406299313975331108044252229853218858301148870786480345535789085472658456233931075055263743975881541295854213158891829469962485880355806480419423963293636962959733281418394193175336083329440241004990959593991720695695269144014178164832655826945845432519508672130784125106454822910530974635171918600409224571829591919404900895616719896381792243218942373426887516344968612145955370412503835270433050549259231560421812669463114484818839380093274705162463675174718718552521375941693271883113666072939305215847277793625909106087902364956028562371376985972881510409587231876491568504907088634563735135136484785827948367188881601040316088762767753942614099686879959330519728286251168020424591099520694037275455804863594213014037530303163370264611628508499943096742091104609968528741273937707576588195946729259276644399643070645951561915105626672268302292179739031156235210513869924170578057916448121108278660291526021121588149789368699628852056688704903618511850740604122686564985273540107307012017207206454888265608922966176373960662915241623660246850098004715953298161883757925239264061633949314474226852232815928068868922615748251447392704489794999116208574109801102811298286803706535649038624286309186668056457507392712822618989911642402387189891092481058367071469311346942394219471461427405826167467683975030768454764400162213799952529982144174818640639434751381991578794718927108682758539562965446589015101650856000751747789653521200514542476816608070401735352032561547023724202271709373478676678585878317460982226308472267896020625387371197404662106334312968002700927052809665030153922004093632119075186433071838322743288454454898431588538967437210121123795664289243437155610744446455004422258420546643401494074159721839938269013344401453562065119597897858862187216785320879704185372055969789515032985111278646457602365290885129863859441222793333216196808729394322231744357178349404912470990041118996304666572568234990475681396032975064179032339942993859014874770327923628401598890883343828867467949148601098882579553959438125565170392174069991409161709181737737692018417619033416423572503402605299871537355650533499034181878866534352870876397354331343297818374205218583569502409514440664659057553120405921083441684021988503745452804725933674176714871346404864223097593586496396189890963503538036261707264616207009632653503687317961208553144500150666287718201294719791235010653409598770599268357469491490688993105252608597660934067983394777856457803146144977117559716931562648646156643722717376941097248169255121214579748504347445446732215641788213751511667137351948257714365036730119304561948616166183476701607986919122678663119961179747584316917356521919161304561584598911178997200204830933260438581314056106499432691199172606187408699521348230455495788381533651360398697240936196452486880995172808881237645744972650213051702416585886963888672698782431185570028583634463355201585021947145057995569949383244421506838714218067632029233498688351075097264631299928425758483528316983757158809320263027202687071969922508910546045714861882008454622299243589659764665249052675731510132249428927242260784765808133615371595146738965762278098024325404128028001395604368427673021727435407187165015887520038556439980961180358740776665511323041040831753903521084866765801689736162636616311593316374560552830513230029612946189745194676895281773829047356929905700573668719826910289248311143009429359647456316297473326094372553588398273831327954393699247617715329699310560228143001811032137505407054201565877091684991646355679638903766558420680430186815044178941866939385403415313889337013578695650886200320015119454069845653274044989139576962495118205726633011522291901502868383876742206547018899979555180670088764044084655611095974043558604221721087959537938445150500030954918256885217905849449756258505617789632841173395336607119591158498626474282608662560297870455968310441668565223345470932242180747905867662213463559625437705398781328495590333752938699778177915012105385938808661697111874589429904778975442361940778455325894526892868098556023474219427475346902028055848969438641152739851513836409917038885925250076203076862928392475328890323079121046825711935189241118626140527370791425379429008428211611115420795325220424974498077662296509114239114722009904608015600052931317999830035962089530247260700969429500540891563853004425665873460952138342960812581151837960663595979647056419800247884296390634521602275822153738002598686993070760122208144556316116549532365425612711770618022380069375309545384884048389094647494395980915644942423022819697903756695455098536941136879630271783214452845352659328635265065421246052857624012978516285530325739792473190696633329329064379677829780219439986639792297752566835629061937595040919522823337340771384232948832396779703507594625985180214952374547486083316557531640323188011394330938337861328191799354590020222717910297208535690559699347364003263763546805888271892694910694572437531312121359249643541010567464479954014219934132905028401380826791674976376253670209750074808004167230825448806202643273432658508369884801698286472297118946768986674047367652639885367921158792395961544341201476604609774709032259690663419856375511437683985025463024581707389563259562575743979831705366207011097618143892337956114867061918558708108118874588752348874480178386507770686806974580456977560578416263108378160148335266042874122771707424457357425746317937022841995896077505599858582379465924531386761436615218566481504586728453025615006424148952289223933263836121243444773945449505625231087148284579309662677728336307757875956888861488261218902790173485780328235103905729182466869163206608741213648835945777045737336935514562327569814854481136154005670590768385371243275237512776825960550617728363379074303660848365273743131360033479896645309778991490111166297665208798003252839699118985223160903307867982578916989919664720774429447670974731207134968943106724090630601777712903369987294918077318501454698161227715669356368952754712766052917336652186599727041994741500445561664314714806485968548306620926368686433707959360190941354438822507078899962152555509359547873360327331821628240190227662826913620664166011697891309259622757814067588614014966191955835782406694946809008841693863139359495807944143301448797398223750088195954598421991528034287764903213992735179610059741294942229579681057262676491653789845805601056702194777670935902626012050647359307984525128401092858339163387028803810072116117292881888673761694764380044006570788221738262302152550082392200637955879245338788690843810531199488867665249843405864973838350230339980494029835048798613234979990049776838003423384664340275066434150836562421792292749611981572061197044085911058815267599987113142007891570997624065992380019426699697455755026528590239318696355668933108124608759307009947039726400293627007669919464700952354239304529671847740525512701934617222945311142346857930138353738908643053260579200651350005995075448165591837372689909486111924580360790733990074952255298358172099742062174953853019799477835763237473018981761684709012471729505018624618198232865718711848629060481597916704558409364707205642062749157670390674583616093583035321414816029281200566554088278414087455205617222178108735383409315307928890122044065766005591268925591801392582575843012327978997016279043935848635786049246979975632518140545127642941160028737121806196490029825987001643864182892276057411064828641593748472890925934085852569155101653632254405796347685304338570831239639517491301349544576429117073842206552398490452503359606242475520364769669634591542100381551174037968762353148725799440979434623773296664967217127246980572013827091359514964915684815151624457996241829779179002288267082423127818058567535597861955579525587990106945361189865481641060827134372432697897007533111313829187467391735212415021741660713093739217982578172615428706824252335490473120087242671605912342877871722993072811848099125308263858059216554674270580733943508143761577077265097804888393104337092464160802158561893217550997235897181290072384440897227798674362671266339440922992678667254078030887837509529294949510766958289332570127998724677904875010914272541926673410534422914527496110717467901999160818719350985011278055164112062259519596380722443906026551050060003458864859387910571874574445885406983245540034353877972119696409943795849532910564823150455301118139653525441842156646820546777340409785818948396915067062915015984108648039769631300225593124853018025730574967730852565765858378098037185093899994571642070908401550202801518838811476439598586850285639266332360115257620094908362458612151851864307964307182834810297337372447392074320206950217606461437306924021235167777164520881732110041275258313334638121579197179864984782130920768924865894721208373552455223440186106268510526359769090011798721934471139728291274189875764302712400635411968333725680837258228633153374188895244331921078335601387521970442800049417624249165040406913683018058080312773405371879537798042216594035368291349221000626473620939988378783223962241332018670197730415052400830795603049386619981308363874413944809933579646045682777853478196723414882665729824395546327709571228582223352246348865576095615143723623515712498126666072625331088443182275111356270881433707639043533705311717959468570885090702239544271023310022979170239912405854684096117999570336156031180858663668133340643935710444128215440023515433168581575523812481066659145631837313288110866236944501709945598449860926075643220479195104376202573154824361200105878299591705261987236264807133571837427175141909163743092107891991225572186518254961706415854640906095455014847608193674069300214026546310565009705963361090955435731768481457065039943448227946775532889623297784606061634329844704620576119288683169991328510168102215547699514084689516485361169862539021303845713991163527511488084711019446001234816719388960424292353538039228126939635096293891537209465835764004010525609680245140945148475887853938233727408556503278376779908118278393223510719945436453739604541433763049850736314382897841811678562001728746810348012762849664229818657232429909831534891043455143357422032948282713314650595452002751460944486477152556278551287172928110903196009970317859342676805444983557135530344729471533125248982103488345074812411857161994417610709895661324584987768504109061813479549076166379556432063643480644522775863337940082422245480862721784067955053787231430825013322992570378768062845605865421671511942389158640483475847634751534451944588685565142168499639759637015943018494466796261968866675520397707132525007443181835383303542856820550642023217133694899392075193478947878643509112047236444328966133404105160153186475766376721856680347823871627522808696866949538242346178963253484651131324349408786148566191823121414921782468285874417956983199983981093450758038061555770219292473450956648587534772815833799348297737893835465581125787180134760932727388178233785440921858347815267539284527191557381620374619843885306725698429489958006105378828655054681456387421789501040521365872442918763266210883807906317682447884880604038025420107195416004551148532627479496314613671639637370926859709904654081491622509506827834162466191008782006441657207469110529637718554766762965800153894930679718971752313598362246455307823928200273202906510591386532656936385092017673933794638043100695256594931578089112590802329782690463780702765706198717633029421912760746488479612667682204734155443828619041001890787807571586020801909958728666907098077918200607266825804517560490213601580823751782207689370607583753801873823438381006861243708252527964160077460167472378524380443980268497110768427400923881409891508300511518571108867503432780334563735450159708476938837330319582253999955643929917084897674161674180742206761576206100846822735923663405737590689604511377116439657225016805215714038869842231627932679908249667313639339935785509926369765581566123501000932998793216766561427083218893604541939859627839274774410595325641295936498311667608095313890312933346476822694312338934232937346003345331392493854878500462034569624258736540656174931163112317444029655322826346427816336991238287660402680027623403061747798817620541191930454374088981264067746861540325238911235375336618378230557012197569097063683220914161149741207562474537467428084995809147366848910721608914849613847857968138136377483406699239492596288444777026917124259316146086504860912032018121675372456267044059613837892577756747895921493449136778418504350640608009794830511634752260048946557352035290078359889107572919055883295889713293597245499274044090069783221441262674303341935718934794121644273211850003475726400931665348991633365788634072047789406766647212108190012112619983811013136695475863917952806083684541631675939502520559872320415333508491781787788628255102286716888763221428146510674897140146308999074801037734023299146792536849752852337272901331702644988718075391063161864941326131589096456739493801626547818147838926460873951785317037890224581291080499830671194177855220495842432417820132071540553253746458902631513385681150103267037589952161529110820686598895926799852365887711379600921202154275839663797053437839472681815230190567034764564572023858604584375222526664098576897420886034302865587095231150551249222544234917672197926535498100486776058384524541081976562728771734674271240818239050171404531920342538511720473753964288937163066892520372718747472559735172358791535730014423075403803478969857050211236860240156249824935095980404385886159091830800723222837839081288421552546034812296027837402047284692021284013670862942461727417181998141507027759354553551709760675523002984162888464638419745129424538602220310311956794779625320369536920319992537001345646670363000030284131101781836528042025037380089995796921126226202882065473075411727289024572534601501887589800704643891844080308222376333255273754219106179917792401174637808483251513703813523848409564420105874926464219587892955248427702849306651563437423903414877644754835816018956837057468222939950126891993331853809272436899739327906472317702401926755772249001304756509723512625579249435531861989811204082078694113628795907042892057538198873909315184675186501832099172933263871360486690121155836252546280595585001272578022454056099304822242942636369907493289873486036563449680104755252959500640677421882234980002224420667094032289485203998980471351231434145738435596008440562179853567867597215588249826473356147116656928845445189733885188475569176772385397881669215612015217734558428627932991221381323404535194526407532489823948311567164197119347211848244524556276841602886407387688191928595570498116939531688391246630968783290177530690918073607249150527738159772429611630193490751127708454954085863746985982919657546186845967222944322676412187880622700030612766507116161897393002384081008846064321720415142074009616731693845864714357124740149340199841803793909978182302380516673376509353903499074817935094907348964839343365432360629638622904791779574502678063582572146226256184543936651926211574731723243751907685893465564897073350679584926094500151669376925462491769741316124734951861520823042426601531681643551041317155208424562637926487909189429911107057359318485778991120251679287851670103694897669714481952033410610012238518503608046270205279923692749957922980746062686956266620092927004980361680655786446045563345461569117729568787204948774272365250998999741760104514466206480702625529259768277826277288075573065664209875788646530020431043782698251329354459808202129535713491522090547142506850456960154943184824821965398682421922289064541179941470919132473509154506404150376015559048457808494895166235743139365798240747232540283495829200221416045734575559388299655721343718760938060177155450272479308083088703675556706787529899780853662868491682420051410569928951118837985151015421797428476290019307989531049902514991820222092533330196098177516194767476477361813613337631731516907113951468500502427657728699433432014851071256040121340111892023817153753582408042833257357135998948323868498053949266694291700661155191318094733026507821498433703945742330406442732228927090570514511444464547264803424985273530926157998865437862593164309475646053617470758862666086017851615938933278574372554347800655851950851071695833740813984779285920226689351004867808055175315413980530783105275828503633810581730656652596455632449848060544931182145508508138314591802037818071422238087512318545175888876155975854942105772527749151545442229619554800079921929623166207192513957932082478371695807515256356624283970862113416522714948485500523917854745384165008860044167087084226383032042856022742287917522893828497737434236665573074632805682221831836806066770366597450932781778755748007535392087121552882280417578858561732553595142398578711270486495892940078843952348148426648316921922776447971062197159846655577804945914439039734709319484289933411236601058958850613377824716303488606348346347148949039208799660961280085451081635216801869212463055239924142606564198403677923459272704852964100089623769882730941158966228513550624807360527554917568137681065676222680100324114923370435378919841531651967507005814031291170665354984044151181976401318214287996794069992411968712936850302192199524916063773775922718865565276577926187714413724437744866166788504261844629975154266971920622617340609901090485313069147162716175665899849583951800012299605846624989941388951627976883789582628242084491348694853508885239881447988573441207427434725371415127844046056802022604744757626147977169019309501350494201057596022923285784680843002545735637478253959137143428057397406330286122553254782151272155944355711386793874668601317979997808533454707906420484522984954105995628298702863849349673238121907207042520535578919692545063062043108776431269625294089057932913342737390770461065024984300129358657079659450810966628617737829379569805469562548150619287988617166871910432697985704752141835938499298685567650181020856220755063505201472369563542765109310807439755485812213910483471256593470959858436508121512344257351784601771664720236164052350320584619747591083030054881822936217428792235720215730134877111845791764704621838307700111977036611933981439154885848392978190171510988154155428907027677812320602079482285834242680308403471562207264850163693645958012348577728893401409431860987551070272172038394191542047731188181093412772897201538913704987876554898088437941208464990434784742138445836981168427213510527607513667612270274187820787076755163079909856622174834787834743473660380782473677419565379366999957346463635453666517396705567691822934922997071543128580473249501814284541593638508344423715692438193953804103476115514448174400852175006161481896858769593596183591067352476577389178599636160182864561744739855664792280432230442294031773928108967808692363193264442945230584787662220877713061136157848895000009246501488040468499328775598145904493022250348863893234310780428618139057465533157591238200999658949855359068653406894247561339313612715424575577463380938060499038399671136515558249962018893097253963964137381983625348267600067221433495847789337044302730282279437517656835249802265455080508060110388590229524189222604659271988448208076715951469990807946366259739044199083140506393155406636794329547220764460607443888636298585714301380472286997516358341844010842691742697627107226814213767004042774880776408963044834045978778806517045392453253682050121121388027865824433274107503993858249975283096723095786069102267264787975420465495916892252000224740395236454663022158386352270359615363617298965892944958362870988590893127656393589431876444439153305979076961721683687724482397900011991603237427587509889491704530082694649615059305804229306471285091005878659779989305958789193193450206772029883723017846400243334513143372243775114829156756593637004549148283494444317908740000055774797350632098532227284959826653426331624699190952966672034683057584451772646268099554451062782270134233573834337137981811592070811451550020321844043292187564491446591253581717782931917793175416829413769334343468570725283635358524543280434388650422913768413215822178933516269033560088865955609778381358124380867567164580836955235840399362366944418506688175419393480546848376754949953936175190362998145655183061454684368407326044134387772809922664317361991120854649699728627880173041769673702088356772486905954209073634371848578177185818303764932008813023811116382549678020500813142611006566195269612484442210381378288852255454323108403007772103703506738985291770544363022700681968941015152726783309598163131056363504846052167927028181635109748391327171700447677964254151094089292521638187789647905323807476986996688631477454809884569750473512206340646156444770285003089653951338597580008138570919276977808055582478701906103608114042489975830597025161001477017674328163521380365054683303832427510691740665972245975768857393132115066414784009803632710787847548410784814632576895036359146927951012187774120963712478088395865381986657617056456132440356497652269979454577960449618669646865031125639079439152882764172267791237034329532618409005038354756990985699384049478902254331732597364791876692639925146386935414471939884163736105311644338095911352556873663658766420470225745895215366352520060469904561499860848116554760390213638651762250868938179069421791733575610216049290630058991128364873882223862784531354764170011012021363870772336823441431709380945701011757020527894061095784260954234806386343782186766690319519121552162826309278402232784341323771084388941617039669354976874808454935564613286647372134671894960830480895232822664302681942928750009097669099758726295206575764273147516697612730610237204521276320466430146936211086532196972166971650453971788806644220838642920881529189857371188493395966657194441397142036041498869068191729306309785861323409882355921182709076490523939766753073140205131537468914087966133329451346322644408486593490343893101389174598045692133956380782108608550507338749282039278491400246361062882708620503137743670699273274841137473789766948311000865990487546677016064616501053365095597475765207616330337534001071691904712650063129335663551813597810644491748673707880109140324784552361265088390463589085517276872572907240914980298572959513488413908264586769483050331761716147686921006732887034884541491476363133848926732119326642170767975569050610405599176810484889573954886743035835507506363793457300057545720632601345581660645462465692272040630747903929251475037088240701817053318816124095369058120513351066087838138957838602095427647815207757598944698696129465417932124075888067223585855442312034952779185618344189831758796133269884633237656581481542002337477556264958285890361676134776169110913459296500581977823845951289910389690916375121622379670808269474166467218928815032243706090869927462494144989728159561336815991267580802849717105014201373013705296055241932929235413787775828068548747822284065309651286561333188262009420475716382293180895640826363537333506653020871194123769253700407849359519207694745860458273213324634686548101625991134242759068135560003889759484263593015539836100215888797179921552962983581393765326206342267364476037793516463070351187606114226487736469331659020817569313853459367413594460563455760670411258951794825909862269873589949451752842846271470251657717331672001988039420158823090399049756525674395576420556544052842172992346972630158460057547428087866255022630335198768262994636985360361775080398713377152282420862788772922538797000839621908760965106618618826308820470044579923933115619117569734758732210839960493209603034800275957142968060548542026180558364652489831749154337042064030782106389188383464671615941197111569066269638170720781565256191037517464832870676063784125796958757020901303906721646197756144303029489211458668504226851265880280061394923067643660930260662903518435542969119571623918838845123247301839521748427213197388937366991183111977125667098909663353469422262811446266096048776669540385750281419893457275926091172586970581480706371776515023582765066653071306067806247234694973744079130382581935335027587468930400183376956389306259312769981867127228137327382752112303220722690151990803580172616321774884359548566475561719569173008756509745689516331363440542762533442189559575172146077216976189609696501737058844248875365269049271066424522947857122312772430307878033180056589161516566939222734763769425707290426622502273196820966130020808480661867471137191763767507291155744663973998312560604539460719244543464343754790863185703564754423753472870871212331123261562111645119862530975684603033669200467268602414284145378518568153258443584155476466443897286355358993742870088034622284786083167567527026860110197787051920308985955818288986360987903419657440035706359494379342797484301086766440927496590164441611599448437753052747667123710415452304317621021690103740133822417860598338953619826222675812016347564846226205807854509692867283341798558907848154624600488796912346999180124777895291471367629253380227526971421644514632102930676807768155020320235894627727020741249775933259766532946279564757805713362302770157898194821954611710014889587889505395354379463651230560860699277600102601339542306727694654859139279658396081574287380792814535934062954284158704843761950980551221209523814535000295386404443402579110779757378066618255234864980719738918116303954773636916019861877771165801190409594259614762178564073844616566650687845789853249663052546963374702401675084148005949061719641132867538731722745225323992928799573193458123987522927287225118898095552875206207361371590565810261794280644378179672073331469345257924985253950858887014623048501561477859334622186714635069402348573846113631376987905618938767641128693379317436765360981954030546162898939539791235874292773208068774879035465866724914458359569160848862909105816856644763067915837409979145662345207559339474498944001417287129330006879952025781979063328185827703215668950774619561060898339702258238071205554016616905895172143432102295779655891838409034077439227965663868318479953432779836232505264888734412289238996454812509612774928649905699443082163958110352032390774002851858464936822948141576418233308332203195780265655379113892048974424339397860932158340297264376637072955745063690208612068589523827926713152795616626036453451164558600174694600161844163304388250778325374918968627643423133386421735473779558449164204969368587901728567237134136103183906244853181245151181364005257157819079014796018261346846720342298728565952051014818058416009520325724660829481408520891612950426365763070437528763516613862114779468616425046951899265262225440139586464481568877975090553986746356121528379475046362107360851106429197940440383019248663320153616911423516530706959244333259286936396372505146417080240338225550450528641715931714315258281283898101128565808636518328698974643256851789410831043164680809728987022418151366494991788019680921241922247850621232352175782635947560595888783585719083237795935233477794397813308169494531126497915388023423448031543539847885318820717850828737859063947008633887547604537902906595779527773351829060414749257754631898370873777959122391345014704921273857297469320998732238672701217633388288453006251612127720932734728668245606355964171898194453851026332688255261757680143715377769136983776756278610339900863625718610219858319817258319954873505350682595655304911934828242328038489696618703955785796983234834176361155534001708250500209049388716282909078724393511745921002088055933469237911729944542949386459348404937767481191015564491332559691659103312458791389531926551165809210207093113482303432465327967868761238239550808699681403787221433856355086464377984807658260538496699747695911631154981041136427928017549877875067002346589667415109485753843713573278913924408912657548933489784997799772282612839924573206364604550689370208239429937911580314883514741345569022979717258769931589167676433293373745431809872287806616160694375365413047469281452757297380812321065825394988511858754856653119490173826373322417886618305649175837822307641036943037639383851301504392124071720883030765283553378062127978671559471976032634474502085113675543066571494027677913347741083144960622737908326594964591697675114836911283292073595831915128909244864231612960232128024439788334281059505163812982194572189331832656319846657393322763080028811665701023188411012944992719278299237242614829780121587349629105798891826630143500893807470985117941118989175620933786209608906650918580152242964666877553594556786400733083789925056482292437933912886699774275140952986510735331425667574019643199311494580777718187822329335405591749802623664164703606316475442209622930248785051668889212982607484904267247880603880183105301898452703120336508529308491726389791401551431697050844879871126353558476127965761789513921819487860094743622019088722909901772584274176292816766977755639349747201636347908036004233646875582957091671067971728615829572153935065385523428339498014552038890844388527281587263275245433521975595724823419520257639920998558328853549716648127243016123554956797926145391840146371108726058894300446537172313749942422182980068485895117306108626766345949953806555035949167751781644977342189230399668937612191566076208932036582524175492967603662575100464095049326847382601732434849160876861605563969269486824251397462340881394984265525878581720475841114499398398062801419414388364951604544434803393361779660095241925748541387639683914857059842485352104797660626773527007722591686985793959087533050471405019554923647625794980356393444768739752650792189633127490487011756679981023922389727450017319170361810581381989133538550605373951967377393850896196031025072908632751377627732069829651034882549172791584712053148499773736489559584988870951822544908949392460884080507406567093521625509178390674727986922631988600241612402237915238875353795045581928822263741015263630559116951235256544071816494110126425749901533613224360520886544151705491826400918511331056645928489843867547863339959339471433551959104950088429264763544020190606028871614404477751268073565469813146901047694029805377448468730914732919543826714313770292516721894311502512943429741372489535402504200282119973742274940769664430241686924970506109364852778160752274364391856361365593246981246369212845838379529778165804324005612347020878611258043243578167065093595884667857683787549933616281606086278231278292021185185699045548771750039500052257968918259254051197107261268697089487573128608121221482690595136482103990807595003244757373288685347804891860426409408555477145228154208588693200283671546687739752653724688818685300291933038098810934587052805093517589580384100084787219024752096351699729138344088089838699911485228069371438452291001930342181889348308423314554882210886386504087513587417566154886491358105365847119042642592843503379424563674006174536619773458656998683377660720599985586400102873683931772985237438443966013670351201246879477942922758366678812753218610577830111367980833307049148692003169910968891308725809791494781568821839537390880443403597126718923667735285098835173066081657181292246290862215430025287651953411481140726982350522424490695382498391516646337561657358291702959612526254325188885963276418233347531596656505150724367721236867371286495190048100452657187661949587787421715550668613019408450147156583656873286123558661082931634014414863376210056222802858274325710557284930687748480497349059236511479999146143887750633300795664094786776620774715015047760316894429391996544463435249997312481943868769054643845120000856484847883635443124349047612498041012556247649092777194374339931065676535053369456908288703568840304033346201537861173975999257807308793471253936312358007284329358685627655478320952624217441934835404779610863563905885565582933261138575840231393417269383168819597457754795173029089126153277583678419816862230982668925268170220040551929703411495159480634441195814418495337208772434057620970064909446434130512040579812510076207949479832912199267493530574969318741041889772469457329698745567271267912059623257490654062547390345516289753306466319954068196461517970873023678266499837525472547549285959217092921192624306487751669733346323205417083158434159721165544428083216625185364493918071909829853832502416674905451998047747949132874014296585720948370689711991393682999655997007493784179546498103221980694886945474121992325422555947014178101506483729903903901400340244613325106077169762337370315219396093543470673288201062324577752603355533558287028477232932717434828652091938630426080921422016820799954666081027180856845522953511825594044441439099499803440936622167372397191759639812554411275162662119359294392904941674518607185232872423700725964998822816920781187246952541515967485269045061446944254043858423578904627314012620351167575399731363618797337524373801336471916614191728582392886738923554119958467878136131390123501810142229693431156675230140519868979484413054761022780878743381701654228490111091443744354339188588988069843093169296997466189800906474489500529948592602117882708839665660288226568561612086042224987170060967996136545363683311333410806435135579594967378967009090270192508380820348203695739470713008431571128555372446988971579936190230806214738428419428077902387222897977433820405680115688935647771812366130921335497198010047435284170018710979997283396396029945332908192986990409501522882416269074524339021462787025396603491619840722858156481163332072752147223677148064715958303544201446569230019827095640703776830603937052167561896463417678978042285068115301222667461530501785269021713754655996296144254954717292479532445230628335637397626313201781888096320514605376103132152092573672546918800629226723253952871513221602733941502267149972069913538091216102273812851253902089345532404760073523618785825249785157639093757061610694314731673022981806589442360576354884561547104405872653327250459557283716100699791682240245055559841473742499303139452370722258777589291514684725024724980747668260791426156033090103434876334496949001454283596401510800355569971126336406553645138432226702690857126100502585424488543877260254815661900260981760499601915827629925553694385830061336439905544676807957457852867309984593912103271175484694988829892585654291735346208709629961450479374348495139282456555642040031088248216155312598414797936310543690664019946676588668441138086244797792298472750796617386843355107181816125476138241361283850601150077302362515321957182313468190886258166257297610212706746077557199768953636986810006562410687611737362913705690706112741238389907727012933341242814987055915855116686168974118746233336575920089336471914828285892655363357035137562372133364063912680579759130595261440660239796309221210476088542752605870751715588314354497597451014600610059642585887985336239380471375316924305899228952431414387600288145191227414676101208155480876260567310766486160950600997292498458247494154314645158991467494544247564862410268649495051408918964848971042099924714453028631530239959170274355221003331586086276998348104104209344464835161706011876227318938206763786162564003620411957684473757979190300208864410687765397045553680442654360779166982033782262741057430147503235390254467670323397115205060871070320203123412195727033444965246552751466434039526250732719485641022026842206854258414076784649626799422754805083312915208267312945993545873199351494421132406778632640511738639174905834923303638610797467695821341770953144584336583711836264705328046298268107562985514779716440093844279986204388067395718963186693196268800057018454397505902435805037308717648775128187533244820555596833337016143820684742386484983541035101760048156284136607827720676197255326040939254276360974835275739307895213696297853380283747082641587939326420779240917194373917971341597908088081609985414315404690331286311443780334196172126701648886585095246092506710797900006985825940085856425448733379987794816281142456293989347731765071649769707344252421957909814888037882482653178690489232160164633203982376849197503826582637942585575041864132864405722822477982191350280453069385333145161404492941991597769416975749063411632468492415312603621389585301732625654320807438392732552796714850365989001995202582135028282075917206934254702121020712778784331095610923175016100594040680478426367409529944777670405168963734356684911878463179050923559778303166564469730358187991307049898552528922971874112612895688776162707673146606034749314018685769520334266354257920899807284590464032485369863380990295359670269539287790831637846703157336346709122274412203091321144494006847334050442494085375381335237134619166498724768828868519864017800903584023795440992807262928238552970573142038585925730901489832707023095368517382651598229994276232330258573542467064736916494073222496947634139511837809033962246270929182929271348029263333351107393368647440292515433900451073091831048843828317044075034739101530779525366188784213165899908815961651880222243904812923322893790811144314093883705212918716812788294273280542504587386954615779051367461904231416832188707464982877377647838892388748385751566648161783051491838079861141689193559061998262545893517440282253009000544072763390388544830642183800395937981981855431288004797571907681777425105824573213282328946142549610542883065334866419607559743191180712020282154660134089038467271463963109582997412448859147250781034282289282232817952254470109326940637297499144151992901662301949785475648511324467932944225375648821993614182530856517203707034774499374597994751174903027357230509154165987387449008155103292048500139896584866567073035288121339073654861748864853641300647970530958181988773111119855845381133029433494273856580273827198462146087172423709851546994628591253393729939420088064495951512060239765767828634368888829509744899153377374668386735103530373775773915380460392785256511527560524894621662256922166217655144893025720101010858531374730568101205886397487646925703147045721998470055277174945368966711662301473514384801082633659459993713428025753243362811411079138661906968447166110455785490338067252828665477551876892733451194320881310409099929118497940401376089705053197563809861961267367214544041642476149991829797830415578844542187226975022032261832523439733298377831863639730521741753449083894755916216336067590921141405751494596091467244740566261133777319265653297239305322637852916108696778327358699818311469985902433155593338287352512073312119656052194465079451688693383594128918330197140459715818909340290783200077076397163314928706948706654311758817491715475704596851092745793671931174480975339896491471929223290527764122126038876127921346117675680867720493736463323758612310318677474202064020593581557591784355073657250245772579717910119277520148186048495931886216613183082760251779138329668343143008365010592861979456224910340538416691412411723972236537013228772596014951426433456212104365370282056095065634786637921336525998345258956600448347995756552619839052958907727249362320974774105534323307300201203629589447596886013470079727834332752857447980171544062479827457200462757889057474583400864912527469907754649066276214286907215993512645937251728412050947308789592400359502521019805848337866432033679731652613873407558918504806089870464401573238001244867485968827217617676207639293082153185168921445983152522856839706463933839669705661568975161813731955213879611037765836443425511862949889872209118935888664600402237152641462699869384129480719945722010800559361825954120793553154637832263211580083293346793478038078335276329384060484885910495247878916324866965732244094230203215154198117748126438016600786929371277087614992860273552301673544126211779604243491125848339039511259493452921866187045756924470939946275908475638672760557508897258199437692152980670597514758493977762065838073906591887091889300307677025707235818326490356477811182318580436170991608999003203800590808128970151986911368276509430615746716246904830485635387977717643881123561143241058933940397994271080831080817006737328338836860184243725435684525648450842451157786677373721404656314959679414325747378846752390862853620013401371773785714264213624071250536431969218369280490416032528389740913450033119323950536415460933684592259876317644520236113748201862640883171130210930182201888109066193110030054032866473125827572286764562021618878082245984682207458540460994883196447824640005114115363932786286348222298106968382972354205667086920457472438925137907247925923464175043602303341014100420412539139479270311384525715831103509428762426182054834926341459293214979431845273526446532473669034186454805222374371327306046959460222112642548042291700511378421352094287046620150514573331719112282806539483991656025633994815292327672092387221563922045312727688401008688302471326549362931992675300972456500625541975189447656758030575837507451612160507552932099098327984237548639051060923520582779974110555037904277984744008449324974960068150053149496439034092761986733755616484500943035114775823446428522177482130818357285259969571838454593213982686380509486560345828322993476192153812978541847774804729586729403741710408335393386765692928236308916669319844588794987142270585221377110731194053716939674496619510439686966808912520694392317005308336431072655359091621930912808686304603650386346976543044842657549127367584208870617107626241886512049874134844193155687678016204761437709116928686714078832198339418263193204666699235499341035716383004903806901459580698020269472292661861001212677689492121570795171466436477999129040416693326891545701148003732413933787220269716378163918266607445566622924828197985464899174467921663315747693920261671891910151130960742202466107071137022352175618143738339841701581974424560617337385657668947352685219338684553517334194417413009235046144003682376538871037571982098245444722118042039772816130350750041506389589742588435876292098860993375302535645012927378362199441281858972260485884812428357997368728319144897813318734111788540640021143482645057546403965246980038537029385126805423474996668492176614948461781237774912645587068107331641508576027897922529643852260336538531301294648331729323662916293917712765197946045365533307432823964277513788015966701399988300764845088448150716498538598788584261890623323656285338275277081356034824806141726623568208003113793945170587532705472661646164731497644548833099752375034243922833279855638857765742452973841926399344957483497764975640591239228641981627266702370758260823060149490340967550832869745232513264620107762698509178672951639405314960612800069203778818142403533944284275407103382570427882361452777216785584917418102476956143147208403016875524407622701713385262847744130974861819422888706750967124278739040416755523193199770220835876642739057588896046787707900239286256041833589694589241390899772918235391937966771818867985014395826059198693560854682977130872613940851412771702825360585893379049353493626376061561488954503652651791092853687605894016750340490163554487682692890793446108945799447164261372978239678033884916173010095230512743123990947236762672817334884615784081556196431048016697995296682393306373469903860779397802064997418882072152445241465782858377754216123828037621559951882062203511869975989205429203121722898316999061797971898048222473119659619729138047467365698256115144328009453411019588443915114261563698363891706524356490553140485263151059172851349797985346116643090727700352346616841514767497750637005640229720536485152047989622529747486550039230031619871529122329372839460432439291801191824205743286558000347282559224787031800883425236235464180828263692527819529193074101133772689063867706010807091039923086366187925052140661839279683698827655994262122974051263562144271516514233230290182522885224669425658991342994747523703069327469033697464883334203213207594676386830854678774047216777871302158707316811804327040427041952191390392984553873355725621176227934442703965350448328399447589292983468615576538673661815200834612948850864089932029682454903465974256595933228881568352031068030767866305335291723308634868037446718248023554522737124078763151263108414382825586935443735501758095402461202630469829020201068216535846695631068460017763986069962310016212776968826087154974434935588320094761474001573563056456173308298591117296197123297299794383117895947640276545893737851305145084287191421900293239757726476977089059363619539003507054900788866787580888138836937140067472707232222467370237319773842981464965059459393128147547142479872391098816435416264047912528458875683307545640156503153153239787593194772004821540532211247673914185978557541059519584198720469537600524913486061486724544704172683517268247660153703317322990059164706604283109754524486097459648180768167676347370398059307675799558285586471337874205199673542617143317706067622924902687304052719983363719450656646541699721173008542393937178515538251131471449997148540851026423525190593881954935646199791720438238590135612162600151122622374579979944142144511150489074850044119261637276145072434035491372607316077169410679644852592310659655135649971781673840722761780800045440825053496823083459058134521670164236754563322529988406633490041581483060651934103615915375996569463012138534184172221298358208180081026983895831652523128682445961437116202519206702134964288666859844070510473577230436594177343323141013907546431801836186330642129617004842014665523605833595848845524770833138542378793792644610658925719973503181578863944668568020250101920040989918390216077296683624554271668921438833164397482145351329936220657565947450362310616238389984219139180186252214168887864611577621626488409261277448124696662485565643070792596149876229108601417385708224898648954468739456370018625173396139477784088257019852897124404504967838899398527205679076664225250567108852118298808494521584630638597700523776058432033393836603605869508714524196322291543632115888689903568563150481911671288852174829986855761656773604823323840854884859598955448281717764062777178738560911789922479774087857346715201793022848387472527232530904967050316327406346460465398529036192300086749479728540438389719985239605323118685769273843435392871955689218416409326125829719567944543027803922360119464152154016179601973501790115313743375529725975279903748824737330546637415577426232389479622487566361879580597822243138360789411414073513210071718892268924483928644726580996780293203372315376292318782031219384302631898400053116202951046076110942342876356083631629329693779939610938714682710057057659794093579590759772578155610638096587195901907492482836116812287923200397428036631668740791579207245661684064160610319773302263704049514233272318668664018835189690669755948969426088685386108202828732411360902707114570612743284797571530313970208558566815271483751652402802130712090727478376718313130696804511963151705446960970570248713859225465716785843466776545321089938949121673658261369378433989038503330782059087032001096180526617910964787014338818567234536242956932355881833579290668721112607443737509282766792390485177366780673043158504112554793618864213204920151703893608470939291244875317532656803018500363268316584565625253969901013579989662183368276274745439597284475869683359957457345693595036726053934956574900397941603686300983766844910825094618045338147582207433071121207737563892213022919313609782159505016489175675689701461454787038403714180519982053783580331346606574242078014097777567313583645216710123820940848019518312065048341036292534583783395582160203917469172190686486737583699631969340913759382177159748916971957086417555200724553922440496435974066974020690155848651954873984311626414024741405380960252473383875603646936537282930415302742223047767361277883979581207290392195124782768506856715529666065829696188934458132155966965703724992249897142866562475169335744178856929839639802553304174293419457616090392189389429114063220740276818092661429740358872708327773818029730106341773738601864211684468134834372182403837968962311584111406203020272457880761869883192465051945617890419829766047228899458403532638652441839474072044978341558207286338291170700650545137258886774580522445640935456028422970886332297873501017714124713256383753635082419851522279632676130720285619182507842238041688278327479566651328576775393837795470612652485109899301211292324206918456938298773704429471026325686164135964190857052111541396937306121115053226985005546654798414854579627965977123963100790783233760474471917984039317484985043977063032123245095568154680470498686843075795778697957025328637625456875071041981648796128860229120206436590968460458937989909564861921408220932359373804473129981412352703290490858248657469732321128326906010504961149396239413763409012879554094990492997424294686978689690668513310633195719722968366140404260797302797703923251795646756812239194890710828921545623552135149606757188986651870381255863302563496226975059680100109885158015400727808894219829310003523823493655526398385451905972650277726615330523858734537253492112279735277322271552807368333510754763777078062072599299222946256647916219197357790654066440385837239896244661388075677296315177807117212068103650937841349214325211649232296723348986304362031833498765566966006873571919076166256142910369305595067711019943396157571644585495513970979200002053832916800948652516172602340688881739249423141090082869732608586210416742272478288690920032588695605246712519823281655795185583409871003600554672480051305574426453413685425409159396307762301912384885658838003202510847887914261444414489627253220841707674114296784310976999660265382418897945747158511911200302436939809300764041125409328949166001882850316911341895751555483002228494556646859142419524984661327898028241682524616982475962106181179417976290474337369439352422011043957952470816589984864317054073076090266880120200548967354732818682782041100240336919181645251345800091960627240143637228943422165082930615606179957397534755439266077164692238208380910380114724484792861738336550385289621420761407131958012861470620718770322772345702973162408019660875090958887922884590807834906504700363192195785934216152411177243324576272571892359679183994610412926439091363758632253905789614216499900702717351094001588852087132676823985386482943268749408944955506462133314502822933743102752047621802373912931443284827172332119697810718914257994389895013186360674811197524561174434319479911146793028769281960963549613333360556185495476105879168317420671470840449978736368272877037349508027510663366636790508580520385143091073993672716431537173772802925297395689952576345309396856598735197325337609093135904786905411439233946584559765111724409257104841733104963230586480392649818774237162321881852441694077406434765475324108167989202015778810481457005124852294333654882038553588858377978521571733428269204491451717077938385437246020454692114220886385253496403672970470767216728534359933671542488152193448520965753393437292777987861898542948937883435252886215738788551820582289825934863429955579689681283977707365936882917608113261571580317435476298239002000810667324098102858180694736699191622697950586311270102910864642971289355414575043528482590645448818948700912636914764030208990837548592201097056068685550875535244734717548312870126145923884207480530588290063027695206410143582514101469185775944253195678480793581340529227389087903034563224260331713306860258890246837597183452651659653579545930090865992069918357337676648194453320101049722686424607347733825410772353374254605070789122074671957778365654762521710433576066219324664823878607896483852023085275316240294163988985748660873490499084321303874422299399207355797330389837749458014636950593812030471301632262968765939997806598431141295780310678501005988536136246175756534305033700252834991756090130261201855243659533040589401172776561773241124237897416088218572597580774213997441092186762599000074250309717374365985474617261423243053738857604382896469956305662206683307606286124026009604087126708774503069417341753851610416284022963956580482847772400231251758121741728341697229943676901462952678061310138314017901085902447721049616450519623634422239301829291462643057318409756322145871057390069520200463120963625765510842517106021503732310921378271836290917174463901965821955433299801339447284935982802017945256400424069489681849323697550760243285605289067186381385124335646434087347411387272402763840868691016714407188805568168703402808533152488946151737089473767068192150513206298915573134479672561295693092714288563921698701376127436393329170744779548617922174693969043029560909289557221737709746818878908239003856640489004713824528901863379064041434090718702601701126186214475661177231064414083414982901172496430394538006461100759729910420555411716879933073016003695454838135672488034363415831906494556024151992859388626042672837429970826870187233377001509061115879339654351699209228419474604407607443646553062145620165865274135161957380587052444799320001529523045318415280869157426140263090489061300237984380821165045119447229423104134010861172224887119122903998106941938696515205263495530439946319896461243120546861186230976731481920693109975823271538720781004795375917139661251004340566159669647275326333977660188619429716318724324266126399455798645448383270382646592277434463344464715898919166581504179343570708104574703773801582783089473796698311642962422256415635463529895381099934127409145807180705658433496487996691419855153905441795045136187996176726459628453644384342422978286705542599204686772701510079004345899181474055185517032005153433187873376172983929666443712091607776575484440208421823940612375744364194438626021075093660172605559047941753139126615631021176575223826396820146453538641774489858682617162379796214310679044059611868118749131926435535677996598339855859692644351837172514204648220441672173585492774198385824237789767852790496706573750773721934222458901649998798090594497344268556633759655324349237015221464043646874630627474883083521859215724694904601943064016208366206386964853465918554833546414899480599078843867202713171137369414807869929889383715699588823654507107901195397186624073467759448297034951930123925087251970265208499057710114337688206528666943230775036942754671448827591838253617592869068356798661151107187285755950887305774505761416311656771813087200047483088674823817408738236510074844490797412737548387537133103953033153279718163118997546572630206821722791619595910877754961386323354879015204933439914561656906959394853733180940486660501513635089676003684793201684597506793936989197409788199684245231679777763797474111792813851931608805444780299303737559309677084590159316472268098770493438553327796675282367319801377885968212344447152019398531621714832148735949894824042024065000032733492250112407623938920476774914849766397083314955231402257329220605256240793789360872859289755450719941021793148491105054139550029178349566637931069959992882452458679003242363180928356259336399904179411542719403065944187828404004276292725998592617740429237638181180431625396965373488329409540944598774159303577736847694537312856654811771469998172067268853743755824715034146088252747407337526331600297627533898520426177181660482708036997401505276707202694404771908295646449412683628564566194736237143504049251803220643482986378937888037590383015221805876963540782928181088351733505217200396327657842830899004867060576425321603664446364839758181095389684518685670674556179655313994280660130079087686608688304219337205216684805912573171475667327113316940655483803805619774592994933870517127035904949939068420746504085635935172918132093858618824627234678244952095880881279008320024933433859080189655552575201974168290790400964264224348498788728738913731093113476026225070029205255295449745484762259249618224952219302817985232172647130767887105172146766171690351579513675317519228970857290316172477562417006814034290653885124341597517182602824539627076576933858035025341694020601810209425471460445754959758956073805982552691047028228260594067411954238988902005926240682350832329773595384543994633535540202610926778499078710257893536675114636880480601344133425540843926018847385589727864860892489998034770946978427874843513321155093793873156758717018525825705715621973862673441929173812700078230528954913930768806980026239789010776750230551569400845027966770987230634277027650396008111045258237860176464753181069714295835742791422774356131059566388726625913238990402206146347769115324071284139794570664292494495711869056755949083053352250893486862161740960562119975307821521162605861891626452123695834689923986952406049043019165504530076324186215909255008007889738196564509626934849221406200301883636473097641868304992341740153630490330785022600938236097617813418979845674471158067535500912479918553973849937643963322685318327653741839776892902192234833709042897292585268111459442568904986150968719731252518155824043322843870277735467751444568634485145953945474685433345584243571193228276804790172170799172058800311767592292915681734526702326963483168842173415808660922376663126800739680824325490553230777229139874365037031734007388985118379829838411444576842855324119352565699948843935964046507811715937469969741127795016520113511945072382632009464993490365653773765763766593961185556053146943006056931788808479967669022693486480817346895462314865424797086873009170474892315371983969056319640700654162706725307741071614706912539317052298109186236122787602741160840458908520763897557395721420334003658230606652920323678041344110630439428596391623021165243293700649443073702620208389907464821471937443967635890155333797846358557254990136886374319902725918326376925401868921095873653231091163485811097706011409928233132051019389070878062897502146793514952735117530755441898985239558068749306688134702750522571057129066355333630371510838238186783352279864503824364312413798302584885718409863435963800492602043552770075688711773395456045442240351911607788703640976401955815671362193222754079593639280651441158810829700573864366144874144251119094709409711007678170370462246960835087322362557890997526990967540217590507393499847294792277888451173834791525893242488073038109801114246022359735785777466902451117948949917943215033731682749725645597726564907710577830563754960075452576422328393410764716245505621696352278855741306089066457690009437380980880374940913221169804990097451630819160322948302942433862935129195426041453400417244269707387348538068433552849833332095527279975349247302147557499256546331475331855828996355465557716374776241937713875545046258286532654830824951197082165656197976611883067642343434126921050293348217557946478223701865673874904640369046722155152863558621553693043087853063052863546361245925331781834934295372064928710849570733252870459770094727501437871641986097251524016309097262475581117510149394019441662601986674336238427551476878211932906876096892753118165714653099022792284306326646944825872139609664439503568781356236959127659461907360016839033807132983608637001490398720103494209739709879120708330430483786787050752570028178105050027257413534727772878515272744041577184713403528332556627280183858400235125221432759341621301555738979056841378653078236734791594842892406960851799476635010513253486213523245115100151566199867155846028457075317691338565872458291636211033214027282397699236056896626789024453055620702485063914404433205416526077864386423955317562203257649215181041335732710882962293209113763894595661003090378441322459113711163700688078867112478999462083977017734755506556587412838231165958992934822745543498677268257627580899547312842495340342203651144522463793028789945796663342013174176831775684569199231522125392890012341645032399505806355493851461055345197379475149118372898728223157816900784140578473793408776856149871097445751633717133675280154078022457462091812267527010197015356813270205000871137232887296810283479368162461476280245753714024350339700344640261532149880934081345667114213846311031600100626428500218408864688926777202978518272318528417450202550062108520189969399557412316670542802747961912552090232091018360739721466153157139153840517506589679621141337087040043126336930538035104848138102316976511438813185738992181870936507228014317648075612035526046079128143393941026825519786577623362568673289388952280431587632077205762802472077933170081325962477747841148454453207121108748199699477437131576750795391188657751219930525503129685875461348338628698989639182534407580455558358093211348842933850920840521290785277430926409528855796735555246785070190977417985062268508778895732583136097707514161637230738140104011428877061487641968785224221505528655087193376466447605527610657526377064772869259303207144290123677222877855563476594433225965479291028938449478492109881415635430845257173562908996400189450351069732184573943268426852013501824973450956458396051018871692199138034954719917200734044331996492199728847844027414454634583271598526193166543179282949418391500977070812688036197532899823311582274624502906316518176550392491288601932584364256283720145467755909548616545261860662788006888980105499372115636207270284108171017764119320684192092196418646601212082244279754217996145970553572116022695749050115987383165761602662057544714097371363292470888007404167740861521399637538806530852179210418945325808595269988326013599565057435355344935852404305259203888516053247230493571987542370279923048145620746710350683533184476440048616572328394172506037683300949293432680840874823298117213858435728705342849631727362844883129672818019816330239039614909052143349137800848739999599312845899833089757392481852719705753328901059898766231445475680056815577043568142053384372112796883650367990075078103448326678865108747917925567306785389870727601463088376312959265410447336534055477864679085369803690716965032321700979167247850674365456410161315399958806105187924175296169019555693171462162112331985044440040736278889113560677227479421912511716947270813926914458961029611760670314913783871556931731672806061854121943403843986765207070802393073047245095688029004625261285302170931161168456260633107169902080213012171020363553222517279208801865141238438184145950583058746277611080922922111187797050927881967626990547615021573318336685568952103413435884507744355367845462839549747639396344090862366657812998933066250270268340878393367213730974662042725713027072321024099520163767277792992734828504162904416166323284655663076179220683984205343506103409631470599147886280746682011151963553369285479187215627171672464759244414613054708886793610308060760973622550608456189461854010956171418282837399430216553222966194662971090512299332721819560395653496644541518645679964176565031292695774659711924611804326736012127911762449269234567455718521913543776547052761663525326370506058616890713013238245670646306244634361967479594755285027642499664757385600787643996606951097308355479641604071870107951133611286997743891636619214836541519542035927709154005692340399099534006576063889302097713050075208740687274424824714280922411377553438865466802564615838048350699295736278158908053934854728472954073231976216447541799928947981212688230838744660418706776085719219000722856644869460226473338260136757387111178533447120906559229746328831849089161026053338070472281887955244802074543619537286349863693807322673182184879456760430489306916830703187385898333262384560685506379934507561461197184936422450912750957968382264653170859412205119165326049205478586165892308898644889206443417980788936338515782679280908084330451208937877147851339205356701648378377582060091641971089930178281276149449510823603007745163803562358494485483199904845949520011518420034969823905066194127190588532705053647714995493591227490387306673402534292260323201600678123011290337400964819557106049811331867797325190860726225854995606474045105006877960475987288407446421844558595637124787316993173153755454030233444207684136260227501469358558951726878026814248918728086969855580514261753920909427890243251477952637197945687731423250716417530359752097488433717060246930743996517610037027948290832760529695537290175436298848311329214191517576820769302729034433225216814351097178823905747547666921202010031722923320504555439077974034916022272128705755956351446026913854571191583033655866903955019836834024395839557690130224504737581206788322165358176506786884755211274221258383159945046961219009767363012590991842646103833349645651086812800291808215393338612788161622198857325042100090057595163798279718188269203697448912431545660169045523566938011965761986605069264639419703586496039561767619397655711892722063570533020170687762995913852596139146036933569753468154820827345808992160282092163967921215212744914996512100957875482883819802497752210854281522776337990219696410902855701711098062649061882866214152928512042863257933059037723327151549726563508732712177276309185784492476206238162110629277080560842570061130216964184272137049825534583834166697415060645478365699747645236344471288041196947765842068037486243995816848080093711312940497864868429864515979299377327327219681314303737229395189510345882096867557340831890828284658804829582109791104982104709681612767679070477750926480007938810019069080330399358334443731217522821753304888512210128988467593394250855887204733933216464337822283975194817905484427248034720396254846591088626165918108682227418865633835192462348626440830807691123926912076559300261188679100513439793527826877359709556958112684598938043259966474474985064974733006261171165949274711812565147210461126597929148086321457109352759571656353687083053894602739789029920975058597585461152575590415216176496903008920721022585247355541063012296507241722248167761488495743216204869385562293855949375016212197056942523462845467412346626046319535629910097090435807599700840742829401844993968748064481775706625225480093088424303506998013792071673967090188206428709344172857001111013090163607446862087360035556788893374029293556986673994998200405550763170176379170939193100320010977193481103924889198291602165679166098534415789366950163486255481053465607412380842931915774494770419883808067512610600874414076605428357956756630290550855515188816734702895074490446919515015657676612044370431380010286455647802749536705844563048692067447657139609596658412144742823281248940627049371853439545351942256455834077215281917675209962894539344607940383354370807623288723924978696767547313144540508703816679168236244791488402449591697251454729335379050148820556143403169328910618385873849967303722489364485210515455688044581729438760272324225621374784799521122328776326105782409513887507223337301072967220889734674273410707963988163575607407881276609716492002044515143233000504201460548718563648797240321722591735554789170322494075018926579636316443121604295163776916536187146037689839991050238733902286646806999745281532459150021609698675034423941976885324731690080876423783069021943042812579977045398063362474091984061321978110067240486101072366501295391839673454366392515551468115278288970927060928464042447027754190999951604599888101369476605514107534882292618150722919016112590182847635320492962581085661671200266421230132850260844900729598385725566494194003339768702556743733234825542248782695973652290047222810157959842581611444325690652704180483212723557321590369733976682834334818481353920337898576234476649788502032550632305093459073379827834491181993630363769163275002208701278308373011020019919396999511009751495412584352496865349278309056501819719581626184716754521734118234231928422622382632143529085379233702159294736904163655447886849951059619301578885455952528779256186479905655088652642870775786432008242653797712911908110705516190046404313948642419283563464016843778961200068734306047043615711596152752211776351083595382692199554320322934638513845632703586019117223690762506673597598652787167871099583987640728299853878324566205811881495977370696776608264268327177591636381396375469512279760181945080382250558504726138225027129410674301550240569900457802676417825644800947288184520061883936451299130291529274719801520532043809197151222983615974698015229500708732269612262017383287719216578235052189111978073300677751484223677352658994687152501253466727077007821655683064613558569035399387695358713378262365851641301177336385317605372225334169821232393902724783897819374761341988763099883795072983627847051831133900188460072231200414243700392932037925734915687134638920137537090007282455804049195012317256597854349551362466837333563065898405540668424820110109547709962793301782087787768677491825618049071108015313098525258610555938096474544526644898712249582747066764701676547998375777398719439270659373443741717842886110283948293385922942743113782773025630491942592959596440777546711905824633439251222931110633387423142380928195632462805783190884796943260313345998971566130869365061001997501114655964613866521452916882293199996502836109908037521691106046294847671866356251056273771663289740548597471684894045741506901182637051956532715611783214364685636213672879504897402038456363727712068841412659190553779119353041083889560250089370574145910531795270299485428502208597667969616502545244715922412895951134697204642670630507058384356397588106198310619549875827607613636579313464720719432112331349925883382530262192594346390121344485054283874375379672796032800035697782831700497636246719282547507370659940952726809738072189277942837177638724218894414456320686646049977485694838909841317286572025872764878369492804256734943346149702220006288667383059782675392507116030890682103211811933981281450715704823316186772622441508494834852182801469256999935383801791305840315660409223228536846681336044096527785011005438587724692240954023600880342978685153334647769304642609779403399476923135470927405928857501974457569200333389810446360051529108801519849243320869916178432475945460125540880140611861305140124091400417396835910083071148625792479758813974648064026967448847763687546366774460008429447769473027561045205759687388889120458422717586287155727601408934658729622853398636493385056434607935958796774514399317453158884938686772014228368967754223362601412729850515128478660654513948787130450430928858896405798875997706640574252285156392035104234001278299753320285308844160119611783174691169180300137180898365057784860216000923531458465318762627052044377981994361358124655953053397899262513064877374910490614092313121491774543673067048606636541373971178903877540451048051105397770391262219901574669414060991931266047705487204584167122193601519928886577474271902128026134528070854533329838545224923052664908404230599431875519909918324183227394705343646523469297452316418098956798027658818816701309912401776808047005038953901427615299516006794955854017176387199085261519106314639052009861144318076616862934961121772069752917852916783186128703658335257889130947017081486571996764230630068358038353618187744486139992984401886117485046872909861803370246270717610592443522353548588939865053397563936166882467708194796141438988073410153122384384936912924254792530900178453454433802963902975417105210074265929097146544934357512102866323218413093113605521565049851280719637944855536731785973142208965302105606979429562989227386183141106384094633963803799703914174675251532937829027141616600061552237639696409028133311237692570113377985779904734301753786733261930766187607703138787132286365973190162751177457792956631861619100244158478742031852229066517362576752858073051230951530838489065585452642150215199692316282423275825493755491185084834054590969302586871199624321343516383660786504365743648382925180091934572337154745664417886475300755424783345744984174452886652959309733666307442081533334960918077857242272101378329689310877164495100524029326528942925174990716146504077749603494829712929022066318392426133475149928606603745575697026524597888789398781042720358507961372664459613977485840935247144220007208292295652188755714141424387977943191820280410931112068290236120072433626287386539058295336520877158855223013017950709037992795705019795506362253496311542171144367473678704071255699647978028932841946345156149477486549639586348949617185526238354798427208248898035333066372214567483239304521092459530187395233568429254777742800453587409295289732853707405250021465035223341426773811126298837120770930672050228829119784271185289257608862904990821553079983343408011140980846066109780253782904977360182925878780933402877124736833802156817837841948018681892602079091836460171864858356948302579645870804813078093539561374681804435146770029157841100134179732847952626689015831348206468596139166831522424498259054218132510763258250629803364080577813439537348585484830921076518492250685188941820426647135523105298822133592356734427997223613683504911752833059338587427257268049373845525214132645197886130371838812970989042739373438969227098777242835640000148358558360686849004595051016290134785934149355093313033384659317301601850272030176366412792837896690065162173786732009372288489243294612708489634977118209833149887551706181340960092382013329829035653854555777973515414441876978495407587753131776327946210958176568252375056685037368064263133891800797763269937080755845177875707925521812888593191041441959944452660232522805969853264277585362724508844101386391269942139526403372385393484427997380440911600048904218121920685700126968719085426511648784926865999282150884097862926689112468359804675812494020265901020835510926684254876239583180487318004970279892413252549176620171945863773046638361474429590018525486258605347438389299068404122302252199628489206712497852560429830332126300311620027900520187703572469174111670151096435043790743586568482252053157005603912611646828670331240930455114703589042632831503156344665761615854344825728097093517616762107593602458326398049381772595208108050987896347064251897172083786481714733391537338770033454943874342708601439630007589908637882736269929262199489187292369198044267458101477456898012046880508448282081785320045172033291260642385445630561097284322039848918958085175087371100447413300860800109236555544140690669262141974952902921831090052911840253108479080746350316786676584334134280395077490675979087069099111268442518613411648241463984244121456836620057669208746618693826387670325088020338157778393932621693743891776320506239705019936627081835860075161980927188963846842920370467883711124616650866494997158375191569734341445980536808681755436187054299287346318890875090294189562619752434940720800369446424744535167213498437790474398504203287904162342640927483689762376208366222310192267408803044796645624347076770816505510218773054345938768857169075187830844208878455202735440528162051707091939014226124052200383531218961733654293594379111037798845249873709379136281889838604716570325200624373860457474295938928323035822566525473197204577604924428423931277463194491653936644399032750432555426214108839094046585100045470696851637908109924881361705121904281084429776420203738557573262483073429686584342032895910435974115496437090239439988071017193706609582518244200056828725599881194428727111470584587742088135918143903449643937217594937012227502050779472210205619206597372834191909199723620570060692588544651504686272013375139891409227832406275149772261000836265970852937757432669783487579059601399183823721446576430299049202929033703811121311578341931069538073702737944319716720894260978675066027963225299056163077974717552160688428462448545598087478801708647816113366900272899714783130569192188136864348963558866446613664864628140597219277365994247033165094422740252330122606671797929954908774237831163542599026385408720320836523019750138195955630414648115677820391535248273777742568001001834852705014326164905609102200559931004251029890703084534806324860707621007066575309080485790317528039628577406338628070069448390027069783916438591267927904811289762807232867154133891389791835841418201002748524126402062309669900649488983758322572120350989560040402340916847903478247185694208381541234591954892988459668977365017119275605786892991853982977014978565499591084322285337047442296203865171303629606877166139738020475209918088858698033920180756538943317948538892787755099928361222000035088002131572107356739214460988234394174178391858280089010390391133884393621570996883981814449212262298312493544377077783866115276868426929725568240023236999729206136276138280711935900994553370519414826000397203708921974015583966361251488371203633281352201659196005632416413647712919610683044783400536460059241747333176522034575737422083092495196483088478809816460177933495231888347678159648738845346459938395090539016064246165827727658927242062624825594059927736544519599377753111626405067923596434842820140222283013917061345739769121409285237593583814051637328208847428947950360806072177225955184817284432063464942282079801630909787321914109155178370883695967349629019585109681252117888947851188232245696850105946376921303655175093903264710981612817358886552168957120481278989195690451256664667813174188111220425331732901244977181614552782864337736818880471537725819731558799962410081784214166902475095591760136048406293030503211140301902669756443729477547913132959850425926777733303016683712473906972777751471316555733091119391901690523135068090114146777876425970270033319450919204124077462122720130869788762622746061648931756506107324791703949932470355334897413996800018278581357746182818148113612247423151991540742110518551414796673706978662913609055278905066266936813903264777675405810840868581999990198759712160622228613753306952750659859246946986936342777683608960690626641433393355149344588375426867299969175487133421669138213813264832034526293965124329498270802235039718243790511319690107338346745759835744815027480340750560140818666494702804170924314489440640669515723071475373445036486618947561298171231892959464388967957276895511414957311864996086870743257426507675005605661338152116614766434793602461658572617624048608025728815909294865513717151728044471230962575191948722231540062927933511888983973335939744004493933178432289681237724679454429047071595942293807241324932524444558074962603458314322520050919439180775468828312218793910067940421506820700716167577011762007158811128433905056608467851838737524650195455158750625908922185298014070308822368893149107436972778681984535332120447040671424089205785813799763176309246590850687882047706949710552137727574138199846569590948877937217426781226631250377602826054201008513933902602624569447137694424494185106250200918607959861476930874239523314534406599457840757342104552174259054117876525216519475529914394416161187126647065974546374284681600508131915801164511705351201389494974411735816990549864741887416161139578395921606477950857581761761616270023218251238625540591959227797347795716697297281295807114156925136389749895402451188871178049539879338801367826212544206762043715504298959177444686801096908519435529834388755550415028664324260667794718580218730557303621096923633249573445404819310600164925540367072376003761175016702565870049927891999127587193702252170953659139881955959857864339592750298848242352832094668405661956274192276462325339503260378850893284520927048857354790986030074502231674084833570190836690703853234396296281090148370134666049178169484120033724482181470525362670877730232675094305280315833295847079599476070547639070178147661003425182462575905430943989195497820250778777723552685145230223886131316291339477614355513689531619863224291886791328567195035958131229030562937151935405174142570622005250123072191635032500396987921191507379727735310444778080423719310001540524126078765814084943401943407446358738617797866371940514856416744067311727095343098275960747264259733979384913414074643242136167982578669531222482142678333325041993262277399490503158936549234031912585455676539912536524755210887832451051235017654075980410603367494908620794401847954874881023857770542086034060618868082107798857562590012489795987891258847006889479071262938306149119455239556770813732245926191954706107821927607947255924717761540194017613378334047056318045462893209060074527490606201124633220561104219440116840297000785542487761411208029861230009950979690250041680927107354653493915908509266701666531531549460169273467516276184611330794914724558375779571008099446213288055605199698470467131515439085425409533761206364245605094623293709356299753922274623209032357382143617898551947029352380473213926523569195205214569235642435649045770189130058139823458458600995924893438570068960554038961817631319914927474828203573662473232874217081868487004320391797129376766524114242664167952651476797857258845857168967969992630412377279352593678898656084990046820866957345209437966286986882494234863641836692093759012129848534144122670225144645269750509182014445897245543092813484155099089756486990767517664092002468143638450219729047699020831552019855111076994862758480315076580399503330036741879633098246580046542558899966823941204322754053266710385797271511634583550165647477838914140672403242910863170876867741432998593608676470057575478325273690487405030068762257317291420830543066870038445166313545453503079517184944887773201726343717530798313555335479327673119460828097661936462475779295781716679211181216338602305214008148619147721370540439385754843349724326725611405732742510052114702712273824701473813323697552911082800776949269632886670231972625901322244363118596768844537347212186844052176288032509198428158596244845104199332347402383977604179795675857335683055491265695603090707450347640967152809056080284042253673855150460217077806869380230598776208938779518343869396251906002999538509668548827950915227348160166539440780167703797677626439037317593768420592638284899704295931716427062301516081608969143385370649910420635585366689892668324832967613934181586618661622582443248610911055837477537320681593780448969340401544040794153401710279919112401267105086343981223106688779865548786601033813721354194036788163640140837355187432024139448000810536678661900870846795742897545604869788395753829385480134535891428394465630309529699897134268384938300869772579232664360107756983075478847039170615974354460912356395636165773926488776920715359134479121461637348039024748328189480072378370668668124926402936830057703726083564248550812911797783533988398435790666263475098462241076215762247991548420158707811136880458750395441015022387578428809029834900749045620653724259853610370048034995669205470549009922858505038322865720233680914653214263725707700425089979600937129837577008482330703744525944461657533029491589322064811263494925479030001052826941194390335911453751259210915147752568127617261977453598012375857487386186031258494349275616289959199521444268203968053081089333046544404493893920504899084267932911199809947205924156720006376741664384743981947858785396606767799933943051948235948887612285796691289671646887310327878243947172276155185560181678037020416873291553509591034564679794649571781081094687361304274572112829622963593662550122948196221223521299577695864150346715177960908786014167669214733240037607073717495278952733992346005695936552156985457106430757528188332281326961372386402999392391062965529309619698485561738300379518479758082727060561502458398764388633484566005050551220757632253103743506893511539485989186519648738967877717974451482717627563630509001768761018553996959067945065506573606584901582929175861918927486401921324065152330513487290618663381822506130665818049162660479493048156400675816394039897945034737326864286365036993072971873538134141557839595416241594346167980400732430548977469805651455956672111813591908143492563695267472351840054872567345275357280112781026737084838836690154032062250009078582825088449547876033573878180341317816810549877775904244842526470591099944648360814614753320572875825640290166589164256376649277088845389207621016515056727714950898028342968666236625279825794919216792867364662827964372717964895549994949465847553209946252687319193563961416122165186337057936352710083468570402366119995737157027845356574906240507081034046333479192148983490884491649629061699448053380405049828897820719575718672779436271518314432772097993792445795206014726559995046680535256710816332521461435237187274498330409422165016991308332731732290424652229528562525675131379505713135619639830245427350216791001976140660123269581612351391857637153699929252978544173342490797968658880060340108901345657556936101815802702177927479006373794572850072368187924819123263105563263157220098838702460204629058944764149773504655735179768026903162782516860330306531122733969806629927553461922636278242500591723572372661267758766649145268751280791557998584298347625565565518443694445558137074825573536206788997719666990249152085208769702243771780946808946289030453503061252698136834987995845318734965705305446000691386124395052644443054549754939257755554374960785867007646375911572760167111029937839453768863028082193158787172198533063317946269885005364841856122793930637588990356966571147719305258941547069301732140906475977135752359242765133100375308341976790762107916863091392144971212384733465377307909128107233297105559262696394026692663483786916649071381515897301367040065876352483335310760096889904223230036812033025659942522591843961275996553344197015918752039655224853031824496065097190325763485563957656861171886857755831074133422599265431403015174997045323075997015592929203145216394107909120052434525671438297392349872540385590584065765394336285045989563731712176713320973908341153813457614995793558103685570810979560946497541810592096990657704198780323272081187886104544009590346448732792741114480100236236791887027374195469358612292172627675919894106942385240157996922487759792650306210544066292837832658781468082768720216078982079446476345928292450620361894407693579812510752921256477100993552345305865160463312088089103215121948133775366482927401198660536311553543262629247109189311519940636372751746251669214701901449166618558549333282683748320373883396189514424511819807361507781265665066771200809637618723945581515449103551957132331563992067931561843297208013537632602276790841994309834792337079886976791633158803997673207882523117950668613415429012856962634294758161822948323786348954569007275616251869534581705789327338362673569813540438772135556753318725837923782882071429060348636891049713342625208382034785278865963273111774976839839645689921300129357243390491663566662526317066846704431159574400341451868794195964798828911335381114422108674467079024088246493634666524518438037456912059360834201026950751852054667324082390685288450039336140701062026459045451682479339691521509323697282729820031072842198200014581953097231198625672633072972511706375953991941517058455299433077416429426790125488028739241536082635631282184520756758648376561110383271896821886272128200528869095759331293139370927081397273242620157569925446486877628097149489167810807464993474330135512389610175883232497510187224894622028942125721842556038156217176256898377640673596498982115705046008798165782759306162082533690045657628113825804663036798292080876023043193935151185174312442381788362526275144184082246403096607069430727045166240667520557218663770641338465933320926664087736900987012544781803142579008615574406386023730883803528378651552901384979103153415433322764355451005243170173568476154037981472370200073538827622033469266998861427332718406352198936939319603487441422013734579621377761416875666294491530201297590364583657387277585974769436484167721682373673816811145761077756344506723827279116919371451658327904704238960125431077790414076654340433734869153688071546801238349440226269592711830133365605209319597666918439888697479560761716540109163744817390865096827531700141960283190071107088157221108836264006948458326384585547614378548180658448264695620901712742430516577029702885828422486947509466762580349381405541080437758125592932858734549870517066937305075315816294398878644763446739786640799607419659073048815786037580789989680666851032998453994897879854190195224428228427257357491124591982483686735713467353632247539079808895533536981169244997671527755195920832966201629555132589307926920154805492580846778267252356131621625481936676662306575686334278857797060809767960935932794601594161080875698374585047723799522705687973043824965223566987709840200524715163518832669980493859109759132458098301786807387728794073573953169056443774118747239559403055437788149916408171201306808145469068990921732824441954924735188021730599032102962348479386962286257686799063909509473598107108974435354260931754909698332239329127244629872712411361958732252435880601589971120718546910578724076656158654775236897374445295348145417774342104195035355741795030306686928684180039849719453803829130071358015099853547496167498855360826199441674024019361601361634478876909097785552809451401723601152954519459168522274531456966845011631820220128055267661128476238494224942581639760663372705204785359672746604004961434022599067424720985004611717541393907706050422522851872291037322431955178531124582488406703732184807690582590098363765735957201317936670549589767055265955598334526598517735020260450941331841267212103135522750375084200818117236700234568791850779503362859582246471662436500554818431503658928645958433905595054012668304976783457697214839082227095251772099537273487820435596900941222005819185493265931549781986101374144816386328868783885190723641514481408423704362470380867004871913410359013197748761698917562615793808167938000090227039488186231660628825483640859466618687654868856075176621676794183955754038553704714824940729282872449093887642454761898464648008048949958462572326859748615586820934171432735464096259234317261735399787597938051282108792220113503350048470729834919075650104389606108340048915191841162849013038490724318564099818224550174144117003229984407816564926367327171384781748564336410543528278291609653492462491947089020574958812309078203125621798061853705748998853719696361824622682630127237848691530658503638469955430984867124517425030459294523168962904787178225200611453200122067156559324550040059621230463751107427478413414534972106896685105125021186283771768157856370047640251596196773743865122975781129057302845655757682481457264303672465429874897153768640585488739464903300466698768536763991681616501896489610823339635210680964746784110157308004230074429715391937487210775059231060169223058144205190784073940762044766177843634836494256097424266099353158751206134726977534879983138910764030414272981633658538683487746364420812862108302827453961719086519314082953978627653778857491546132102938959717675525410779850726733439855483700919685503265011290468872503266679638268646861611677386537349196428262530397837902561656782573073689174569496620685300559612234871252136337944811493339656673713180981118549570361147029226976598109429393273918179817285084182595229207065039134792591446253352756793624220608080978299704844943620009848249949767050939502851949926993573321420094289251224568881140033571757881719118790694184618443940153418015437765593286805016268642528483036732873159684729499665328603433057386302364477854788492230747818821354238151769142874507708857928914361408759170943801762813129884741709256798796485239641272009401706280521221116948111310066180679879424413944895828093029082870504618395183311269403474906999043767215932224614461953660225381192996693002409005320113577448350847893728194116921687234368712523775694321529535091332063070928151490797647756510580605235802469823540423585652038515416624360866840182955683856225385004291037601966433981262617824411390103573192563631704012361557964818450843349221430432652092245895268166967445078051998063441081090184849906483621843042093133494433037686445248800381331285982272262455535099209582170655758209457978105040584159456875181081132698161748922649497013010209337217304754750587591380104504450127800389831070510272672011224278444172075589695091002405657829458849047436132525178042427624662935616449558532715535806634322353310520117038131202176856496098508019132280436715757087650645099641341983991665960939059381558584461842021699016690700843886032620070997490845554696939941222828316778544650791022775255780768723491667864660583045843918852514504011211120265248679238485212244548672273802578958653646082902664406758039805539341976320442042271585398806782140112179103606627486919585684447652856277296163003391977368087343060826734361824980102029177802831242138156513376882883471059738305758692785236786893483528906731001056194134043478301156433394890511147970492892492667152090830910396942152196723498204047382862274638468347743223618185615349817341447343979704182833292883991358991343489957765455333790888602261018651473531472959261366394754145520281716612700564352592255689868301921971258772151992051271360423823284259115311971989472115110569842252659073900484372098188840790993841216494925438639977881261775228997987126270210805126421539449263960401005425502212312838423424843756905337691964773624251979117741002057958683302697226811019115686321823865059706450663861506404401959884639909321342403007230944047858095473237612481175439181100005790000653542450260047322948747917829075264724618948859017796621990469530380131067154158068296163817233506144185791040562379139315279420164895050753170200688333982969046089914426182759414437533971520957532803239734536645327773068481566988201511044091431277343122169778972443109174575252356502473661475239048934087667079519447319412496410140430844343178048953580958793259305686421666173686459394335556009433577069416208654311696549396236100592079740067635300382667128572389426641844773675552328892357819597515080478041053530024161587853083832695611831883546141963063176002645078506140417385311499969483804194833930142689342711972064713445763739706170239435186432003239396203072367905763412985669723785216703551208746951717620366080587656365243464389429266534149875150107413225461365431315697301860416208699149452318498033891320256305149056738474822287808513291114514480809989325352709365365241906004673883822632591882261611541571925549656479741460260794112947986594609265365805521032026096735426390542805820064490448479905343520986957299322931800601540655605119459974524199029365992693970198289656299143466874155850055756619860988136931354579617944155374209092262801031741333911381798131184912688887557833781343514966355813224021721356020416865562251382545409947187794118589579391918358792211328172659552765321535993125111510710428108333039248806103517817723339133309161280513657092267059363049759499734658274803816676488535247212567948693860912141169418926883833939245900888782629205661144938119784314973789846150506626593683902017594108162333685743653876961184499547581093928289078477774874168966213118811437087618709589022536817773027759390423363954549020625186917566565198791516182386998739049009866094497650909778880516323422119381433474168419787358326361495412835678953793162693796468184787552196502020317474764647613275306730130924869357133723362637510060748504774214918181423237618202247088751746104918201567607126072723809709526657162385000161419741911843818470455546712341640046026853973813749070462422882657310731683660174882425898649624511886313860828408229009204105648164534093396067929565733909062658157447074906817584885172197080322245658547744368776149076708599429961005747964974000661769371069933580926724279626967218144134392533067752951372253363996950549298504806435441180125617493704269964939854902788101692745234890428112329697848974414177973019842049599614295606850348800790994285710236195805371916760292477198427223323629816272377288491856182984889542076089700524495945602205876255949109790582194732234061648655403129205532429307664903425678109062291921233724855156128540965982473810239421681831745366982574747727014381477050781248691055616501901679399177438584471665630617575858938916490285416802512196516468011302131462137192693386613129323808146513654068396690485957207938157857507045017267231518170233171950319888786727968855731210199396800381512325563956473114410134104775959353816675652510959354460682974743179623949361094351807001571273169075003591329539393509912447215249659469304480192865684046427883381466367294760888321435528827426211755896528002228713827345487028909948416554858983529684160166553231731369910715332442736445061559682189800332031106890018207060019080156710217524038053399587202900287889091555638947558532156116199980646235615582951677562288676220998929848068151211040763402713908397317682572746377838399948074812443586982259269314197942323610304085991683576343362223690503126851517315661339718290329313428830562975001790952560389662808222200964422958072930211268623905969633823632544756791618144335575076387336107446174614214501392859464466852231401400741116314338938638751198401442152560180018021594247356207598352733229860575384091221331390375767195120084548980883045269444516518958576748431927682825024084641568233560763959626936575917551069706254348568931630069675473665832161877389419402400087944272175435130121260994283893210048084862893943097587667914535204801478933799989265725051754251731509304834529613190819892701957438964931710133669673280209322343769295193582726668387832921531583892311866409218341284961435559423502362009924457660007619008243446290264147921140414842572634497672473439824451515819729405908649518051462817179239378983374384075696024212264898038891643581370852089170376959820246585833847344406119914782492992666464063056474938241335488690932714286852422795242432191991974870374882648093111306616638800331063767571466387816570360901790296012889973905966870114221054370729098240493480294909161363584811898429988871920522720521937410481887108470049220613160639460591224540150319383740112739451941699357475945758758593236157543389896468391294665557524107795071777957507059080537385525412654828626663408484677096807992662445169594950474432457302819099451136885323223160135723066439135709293876279984731623752893744859398656216976733063816663385482857105606524704460351132333030974450150527244587792603849723298592353299832563160915228685910817655482011251283528247661495350353510930833869981985940955081536340234224813006030088183113330543533801403855822558528258003805696983160135346502211604976815083789519037320488343636455497975522539579596056474433238924343667772075281598090784863630364047803518247358938340156250290928937809490146861389824944284145238725530614332283714104386572205746576886189895313235875244161742701433018651081148074886288938937509490936320203548240769403659639269034996710141912564523512997139551453233146232236873873771917390387916069382132904792515512109603451108351782935109202158549475234005973862332893446650413609555355589269131805534400122365593919683938543711520030168592887878693318993986527033055403373457694630855118510968723710726185481378091868224930978019189557690318083454826721294308467499804070991225331985474203846986873806680434253476582610552722299215054062390196143509294832351561148428420315637542338175834975284036252862439703747486293394484948677069101633920184906155352627041023844980134524203040550625185890669668440555649737499124755530234488002784134495065367316758766869210001859348623905364865626070565055808095090187346456957868687602512425639386771051823406674815452186490876513104389159363539449060750435891977628654508215873562615657721707415009730171945616665885017791994844640714909698004118186840203709602267840945166823441982156357385982907710634258007772437579591609920933095451640323049502863538870210041800445254707304500620058587066162768578460092350417934522915527433431600376435950459507160595304133057441843182467144688816011257306698796262661649905943626195437943544831682805399385680243202587604592416321119503010600471814232796244378234432071126217221692762190024393804915003912668029765418854307967836774870247930094090725521662102531413749323439185072169054562268576008571446576137172440637325239221907799516537644007589583650062081793729162628428296521643793360075290242185082486953515625076399095102208281605406184402603913832408988165737533094932816325947861829588743134623389951175052007287982069651753485389278311894935414476892904153290091513340879217721512735576233714159418920601465002138725653592863944835827413017486998179414270143245408195305899370157809180690639848560486887617551359390123000692502574203488961549663109137874359252927840671998828299118517665132629705500027406158916238672488127017668972334088900860074128966972012519678435966849695727704826025416341345371134000600899864328139361383536040908575747692553177683619777866130479310770243750009774138580457480832018608928543278445287894151378738391193394868283138113254988152216258851503355204522155012104728994618234254497405416082430349396171072657353372229222911260609009999995449016161016728763584228075345137840189605936846331718397262312380102037516241183743244479980854124017736586339943901141441919417174729161363066568705841515294824123941798563193261048747368101250433517299876526729254792363579712996007936559740159865321547472186382234115443581875508245972570144484211032191428362260161061935123535913591459190780767466762784550287113418377608148312756231250107136812059410685637449214556921988693310340060839144399217203209262469707001506668619415953556350009104390460559298772528471257228256737195366405709007690925923918736938675893898548530701340690948027666445883413018238999981249223276553615788386401173386704662665265538645066104104323839153656332827169178543857992779404658536312462791508412112874138016194561597405969420830335038378062329619318800668325876475669605967570932634868087055971523506055460862871594139843394691846726450166992782012755009034612590031072841337679795903582400378641886418892927815623781124696961085399775947341239675225415632664485301091047868897015974390156952347995215161680550045762808210691801786625198328257127787271879964344636861666196381427931327785946418535750365613229552400856789151104180695820448472392362702533289864910843885928150854049740129740656309182248052848984632261405218448702669145429577585155045763072703570110392542563921899051739142079434432091561148322178987164154967476618685983722253339930657815903522065211204230308242510721097641158497050272053901182905078150047090118732734655422334079749298300016788071583530261571446329125887987336501274978350793973554928554609432223303634381905425886091610792783680602314637698342768677059814910585722570848662363805196707827784171118858431006054314305406347028819810533900225458532743837930329444327276317537046630359832676079987642356553890634134506152535615548734565362607168480932965920992674644950599301346640167104315589313416868376344133189484323033350002179978874452982976533168939010459453666630936366286655688905364515231292557064319866825301526792096900547545622080588976491275637490629229254339287358105684033770120019012417227303545976811221062807519857312541131057500913265216448119799202925312455560439427227055541674824094371832292697942461656596103268661476427915134941020805129104749220513568364482442743446303574697945222084005972322447733786693132822001739134540253651657706818119696466360872410387247308421663244397510951324667410045769139290303674448674533891035206369132111840887837609217547033994983761668024742948035572178122876134450377349704170237821995327971605325575211502873640444638320945778085288754870025888701379637500910670874576242228386178021175763108295910907986190543379449777157983163598150579392983081316235446498003417999231850872641944008449122023389388809693246975297399362629149755656698078737942068892782928503404864856910309344829402500620287368091259583269588638430763826344688796462538936784854760013612209391138765676874076588172280676717431752356354941350309302085925284140108988888758158855013834181106282620874792625282647996858638572791387909751294314583624698328157624170928098999972977311648438314647735678266962845240167301749370495941411993254976152916061919574233529588695831714994534027235737338050289791403869878885305468064603667147930710862030656655564790674411998222362107437879221547668004017001430022769393342085219912742223814093322309281883421045425340025934279189483606995150666623349761149904330229505708983945564951362946813154254041798715796057435679903210186993143701243849097895641905044550290361887355726802861783001533508990287974335908916872646766214521132158801553223136624206255304482391604479942376680350164911478736754501399008704400022263232545846222156718171306361532192863599002861960983258827291675942439890018982493724559814387140405403008792653154384176817618287277736522908065775224180944914313883768141337867155826257034394925474223575191002309138997887544666063920121489378137217509385944011123871756661213475707309130943143678702049408044786994086178937009003377437867836680053065772430382729631021786375781396352666623450470122092969268005418528810217517563204367000611258807943245672182606433451723824534855772878604137334139294486844576525117611760352222730570231622415258958835278940428673982887293702303191785027459091792338465628437111217069156357095643327520440819514965360113553580193868218351711059319708831613718757230796298443205133785581964510004344877377961300093242683066029639189959346697754479555326091764589350893096930157567661713270973535816503637452789488201019039004534282750452697132671735431137124574286041238874535548639322840977001129260089024853719339966229710379628332467770740751234578974308870392140458499489531558140791487416734198221987431415455516988758934325042842589876248190302002688837743737649691398253164132616529403623512153315392869492528612974092530188037769790650983517067874503769662116643161647785972578054433119782749532561801918626937323563594750681805204007143432219169685215128227978355418658295594410148908474964072340404724990729584170317288633994926113769628797861745015863295006471433456081056986078657563602055667031730951733447724045636527046658799124409375116508707899246837906535101373889296862637787053728567811749954183752662615013122825599950353262051540932366577703011063379488509545718647514385675648903861599081743851023130228296004081659290567673424367772560435988647738667329762695539131993524740730554878062288540716014654959336529519235049523258118522259209302599463205499557512091149614416280936188360686376049376051515131342552235372171117868692955890398462188719116651697970562208600451907660344956315128623911452553458176225902216427139588460326240809474102995432756810370684038054597083051099034972163924544635222966614413847866426338862163371460959052941878574625831269201095350203902707550828648208862887796861139093553202686912671127049865550758623300566468440425431505046803085514395431903635427902652553994489856651976352092520420463938836822190570133419471507653359931239903923511045995664090053571246772390163998765843158507014627057162816238479444201454106345693936338825873447092028218473038696878237832447178947812512311428885594097066117470077022461726525891344457075044463947724459941709732180930097084307855269500235246049598142947173465061030937478405476868190664369748607966952131572472123422846791510145915860465269901646664097027867286870083804660930241946517300464934865468087569832479626490995936177755867103498180717641663956970508655111058381069244886480508000987081661902997958460878117462128261171830043379416883972835851150689775432801641757142141510527987847814820760393178214543938053560655072006925877725328819692072943208618509767091308455873965295894981008172103380452289282809858911205513897803366611638449069744445048029245564483764556416133931373977821292942912294049543163294184163233062541710674364681945001035178045142955796250627334734845842784767682564130248439898325849002732305934489162075731989592937049721629876782272867886936179722483668066043395202135436520443216964575706967705193453249695864147095131470403315605643943485096682846277379092168341337006094301139763613377865950996829374521155232788676487402169674988886504019904056824141657971644405940515879017135888273494894139117004378560727485637510405707039792519331495319287766564789236065045027957891717815794096862755905482549551095853975060974602428689400936988745796653523577646251627858107052040370224830160356520243542550868253221397875639946148585600552304926157720515453047121404051232535805697346398193109975974319892714405550913642524921679207373752596995186335839483536535852409575503650654181607194788367435165219959528449184859529749978687753553038373711973878406185091501293197751141685193292402596812405405284982253962702254890028189884932795597331597498765449060887666788024345414726545892556119308845941620350599230187837623156843677928429113636177282881301436916565746887250132969418224783194384788596412051155111649385034627937711398366666481919099317645036644110194151956996500485978009556150734533352686062309525926404050002861072118891243025238586007646575331821408433708924109520199450320201405022814832656722767518407592312506891342915278465755201634349543119217232218464302241377979489884851283599479378308978687402296872776225892670045164269606721693194765408069895202644049110427316570714770491220038241250857718064317036482399185458609275648123106003462559965767841119307718264052564214105282249205531479454817346659966615245680319709200973805750680027852174018284452734162488743514480964241682571777945044003026176889383056387261822993769055933010450911656204584708084149125732111461086154952846936724294770059077627849871767719478650661614068111767113340263892221286906345100852600324370847451217977999144008436441709033926789600992169890299814389826945980675488954206335927007532430495073422787996840904253089268710851608157975793938887837679200401003258110323619791934243268766677657623614679229602478484015518554985202877946490412618654355034539489777189917276286498354143162961257331439372277067799569891818720788650467307373633023707823165405585764761718254386765416802346679074149536224138008745428689046264320542629104669157105929614429141255340659429484496088556716691053870081682923350633101387421268494791407797005261783018342448181433679574143823338973891414116006663500340851379873705533399222277366033298482275858280644347422418206314164253725044207074891245751723500755025132985582074546138895921429911127819761885687804342547091618661337021401624621070320018308035207471083191862064885116289952722962875961202978996119084013333715058971860630639103502084718067149249051388332715239391137693530843135996123169784021168488684428742406027754814083433738763771151441889085242762454852321218365682344173418395885431726676225107542978226368589560425946193689383815448250556965955114262408992230141646796933371608916013247466923743137094189820473932105592967912896315155819722987440913451548142900594363482244036702268873601957474097948934929202955765273994591302185384301544045511867422333779313275293408584797093083584791793202738384700624026431201192682271431776919867068662146933589655240035151847125285158734062444083153395588121290309168047675480521467501140367495993771763101397015902358853104596175109247259791023833402649447425837071736552147951927625004603105034950625261365111469435803830871222824919331953967937453763442425062093311177553414071613947674155639471686419127529054942144514816224877380346489082097909398869162522077199622907725425184592268308176819568683698551739003220068095856787824876393704413001241515504024247569026855436217681515920512775437466294950972721124839478018252127072776424954427422595585593515353683908452597075844080068651615228286064196442929812338177358693857837748872907075662158270739956003224790452792108670961364329478048575777392248071287390814348419975212005905975686063798936877344389445475647688342326461008810576553721283410887503970175013363305510280425885435368468077671709152602503890716740658221261976407205061223288260399778554095587574610320051398666518876583722670857056617872079568936422007206594057948901619904338112847014940108490647352604003719245019357526259436393099885376666711908393780818194782871798765359652932007356126785413733263853059673413523879981087662179651893338478739232536885749446040612898592343996244231348351996296526164642183624738335701001505991136443848022886655919113544823064236212425097517993328068345020364658146835107110356323505394890093146405196704251370468968693771801658498876024792729930514803454279824547800032751310913452744289403864897047844880129337762237600442004425033206949624069560620915239146644400632829430364992518998371372670893990231893106842832271408685325595248260593519808078693857715005193343559749742282754597694027369679062432322167040420853247410025778696466289324118440814458768090363117905539400870279177444964191704985847864068059811950023901624808417405240366883300247161678661296828972717414904268286802224775914924963179895727054334576620131397700644445199567618895218873548402513172431792551084662488562356987486984828106547456299328967603363240694562329008156683304533133002623521877141053400643573456835891406429151174455040254333209023594507196726113594483371819197532177737461424084628502869541096597354052896789602593775599731260733289640579568217609054570292796617208758411283026169689261272796124822175389275593924121683256622633722522220011332263052040814506637140787830600855313022164443603103092298392526342285902886784822409791068357726952304193701871396593673218148792269990316102826002539256604012849989193284727468763100561578361642650118301640643752824017062778565583756857089588818624195372989708989191525442433117810910826404285336732141351025422480674092837745271229906769470370768196190679541055182748387342041564670093310802528956141497886597900311144698444283539298735043273844941538410628303125027892160524376045117111197824299377939307558734152785669096641806198656381318602057507068477239776438981512788709683022259682703114292529643016529228274852710361048588186743498335956922904737618664782709860738442849862489012834714250309054564252314799401982656142343658146000394149561770220715464723596258930187037406361194891710072991718620054770549003019737956093641809415455343690328800908980465817091914753278324958811524595159303347010513319820825458697268527795893335505619743243711890809063726498372071763822758229353230412977917735604695832370329814269714286092066890716018966068735246733361601262519897948510320853968141179406625743782168397683723115155618011523846288197224471116226624204037477182032971604555232119865397568364696005265189507639613370919688924022407262780031705269680529430877370706711970253140850135836232595938131429146931322299840881891111944916071238452792700163557563816027801013665675474450996936011532906740446287665793627297809649352940263435715706657053083046763607881985633758405061082513436429018168826680111503498016868530501001380471922753405282113102479923353863794589820032643818084775091998511694797865137436102300423454364308798284339140757268886416821884755870542135129531162487939898841414606238483607189061715909403040249716160924505948815784957843820624043526337881849527275205310390977307067443493622861883725199705701321491515766495165954034916550746201778712956587839685818806445576919309469809449464746765446863719184484313647761533984940913474623622324990162278973406357883214705210420500439959979403094049460008267605188640605371203037924694736043311317066054729619310316616456049799788575473807353167755869120863415394420255579556486729405499967212321720912488123369213864158116749487581793402354120681750821529636611031763803552094744992553434299849694169404091007025513576411815475779805083389112052017829580733989162630326068524342853159937643176130624085361610576251027451152779374932647342187279551836213443212683472277392348248019631623632242996859421795672601127486755827670027446922013078519331595570629452794622926466609133195934246061548391836639734189279284330270236247584738973734275155243076834594047964319087373634093113323259231507477781416381545407052756496778931844509468469904797941291791836668207808422249845785027732469522856561882284932609901082519641200816897105087636156055992359752703376145113372821965785901960579105715549808263888665798521467326378782788969563407974024567623422863219278619127069335799685196671793097632639791821346610316580988943804358742493539589816717146570667814575050376585588304039535127179509351178244812928895690514660446872799998582586010307286985852729344095993775614374387828329165670448990775966128614537102937481928011815835514563344335142625513505634567613145874805119943421986932579830621053240712544731392016726844276170313105274303178771751910800662282177699826003442195169377567191459882547383584447923373368183340162924152474616779511896063181924371435789941245031815897961305656953850167035735219786987424249241952834027752731042111021775005940805831486381112221370606480672069794683728366787428578390447346626432669572041853841143356706659316730341679196472622045117975881612457764701300067385837782286885207339301661711285376765259187695994474177966312666730573275666379484303263974839621655695681193072488419235428685903442422106379447454813386772367928580134330409042526084381175741938222026277263868719506846763816948051304131720733491699412711241610755632811806187992526534695308500693609413274011917259337670203480072875893474290545884045949296331859525214954092047462130978878435644560100579822994710179284331086647208866022529200482345285753536029882999793240495992923430179811653050448156767743707122881784588963234975079479440076502850517094633439170687651627255894764612734121006133517122690761689089290593703227727813580343510154787292118056106194147456755091947595885365322751488185388912905422758795775152929572094058755908562692623117618385355217015664924594367556467011867699266458255944797523109829487192664977549753440733643659776707003896904320801827898648340309453839624843479425456490436508986197838453761282072601276839279809142223122028443117820723776187755193942794975598212059681177453249522000858713538259132155078280086274984218631119951462324205279092256381911266607196418788851591467322529161302074786468018802273756134135601511208653583744805317635338563592045831412827308288536369119675077353956362051316427558356593367135117468694648706422700664944852721047902357343144291424028969535417862776923961981729526720682010092243615394432129553398133911816022921802428634376609731018684979356356561344700006160754623764154684675033363333268807847674510386673104810793271788802185273346923012494746932440255360330098235010018873939456120247860767982095165746376794908590366470792769522344369667770036349882863086509046756749527428033627607751329991656039087924752079179344940841663763228419446995995258800811091139731517138385066150405452434406345920701477184279174766029785603601920972840000866416423840882156307621615052461177614851999818180623727971189141994038327752363866272035488014481642099038948745549661561793392171953707421037307959325859633310690210896436855662166873866844568874465049578871330890349060687085352746896059657989443407375413581205915109774886630115616107014087793958377278369095933616263908049842501586278610597534785173043447426404731685126242621576250140638302895392286862079429276464190852063692893756024022385698188136042558908740829517856941331913234772697465281809962289523047192275334024126516579466483458708821952047870910240490620702792085649968205121473666948555357669225686162186484825785099954677414229331415466757673940801032007572682691412386704049872573810160274464385617090998151211909174768896655223373853018074334634088974588639742612398759630528286982237977651029828047449152962529396255966677953673080910627844971127605293270422364820571334344481983197988764053771457810765397262460828491897731988585997964474535332982913931476149799017611070517949899013651614091720507965840701429852202032431510493521379497637735732737203565484669334164628980751938954912408694653339000250919334785282198978110442150730978028936592979577950352109867028216667407526502768485796308835820790601279403295163476615636768521021309063136171321615253849000486649802870054519034536771392222099629961006959099848557641417898826122275335998072007746741820128390396020813078027222343502734637627352060868348721204200637762682360414934070275257771977186377685382243243055962923937428661343473691355170840271305270698614682415263825211625327846043695645342491655225183254339478847724879517599261427598862604699844225376969304376633523184554647617243342424370295229680786433896263093812089229663552325346348942225412697765886851830741140693178160271874507664316810173579065968073821971004596526320144008473519124540283877658433653485088971300470414653992908064885741517672957117647114823358816377585520391100274573609059430922261677871357219601989887693672211815963009666660575201812592342427882717557898710327561664335431608119652061221976540535980378763224825509228274002223469840174293062437719570673632109540334091034771861598219308771737960192237480184298542815997355146460255724030499864288751679005549928856525824870537091878496732009332775266507661456193075691100729197358904270295001278879862641788212983245152307871644894483615419331499369344439833500644344743277485182421568989704119818060410862356783686901532249842851569455566875095008199327517057019162741360266605082531347046580047345253797720736365754770361536397335653599186849988972994079495058975384244310827053014897597332817801871247633574621762890731391769654890865104826957582293309992342613141024971245053347003710053789140068720584795860507219732549814410551073560683047776913430613987394245746968050038304637954785899571642500123093545099338222753348724816384810490546014756854388655643608342988707893006718009311558992393852286286168590158298313424492555866416856799254084545280722508821534679218521715427945007099686198089239356768620110176244974049688853480963206524683426387524937650947612644270526594452708189821755687097344318664550918049182299644414095287766464806107116568089118173784659915683537374636540125037596083137365148082485649702564813124290149621428400626728323636838866436900206955581030280249184096614475190396721161869567634752849102343532260090446066093341714281109427600044191060937169830311335845200681025477367230099462881389777404664522593524938049438100411394365448581528620032773176293325909131291257460712356249626487912398268636513624555423593065209616207214083717623894472104665091188421333009024625906303646005286540432167464803964970178672533498863586859872974704995361748996708546522981609529604551642646754712477076065817577271044759477329671477429251559221811948591918167661177671394184913562571347893455891167988050591356724718552707778815300885810499744936465268678087014533279453165052817972535167062748434456531066630090096893772434707561584694387645321594860203614105999654957981017923344308340954930247848183984960557102285579118007190861900084969120791575527006224651633371779316681706426122900996278980386124652273117237964282227519684676627459135890846562006851096498688872771057679785122841289484415066096753107374436042754180222025819459108947667317845253363962686500376404420376803862338079502432170702232032939935610641664377919630947547997414894920128481707208575056667337256657254887210602561170260388678555474191589213554504859330760494262328016339107148178733128960312296963733064174873126647157418168113038377225091123361174949385796174521365561746133360956116974994742000338044183112296537804733714049018141529887783807424726701265585011201927690840955618607430215733856281374813448447278614763932052971024597667809829729698579028483305237111969040644201504635650770054006279921368807727220736908599382923958273466276297607808269021803948265995327696254117598662009501004743589823208174948616842272769284308313236941271192933084050760746203631192399445866833576909183963555988451899086126292722076215535326454987245675425128480362610266289550804909678833925937502681978406112342854845418714209354636972063102424461364993044391728476411034529447562759396643365924587510415396363424549204971684610766281035207605446883650717238103137573283785212703300302308082651794764491363425286466068178079971708283674205455026629694779588042429526022455644190089550826136648176950094483788747932816473947890651322705179700498272185486877185264780549017320744642596332811117173546260423695258621690208351017657251689491416213738984907912667502557952265210549168111639875810366778453352443962772476845664685860931631500135449547731195319911536237835417590962902768722412120089743403703730260164670095145899457089170547703835235785402634130943920632822380493336654658138914267919161897026402608522041020333663508604567288697580688584318458998373599984337635588226506758038268994970554046350738015096890763303210224814560865789698309824301597955534927270725384101724755321862511105780696771191760481098816093685693085547175509514448865462255303518436248664590918903550839679533283716911703634794760127642907090961669520703024134439177067402780037054613814608045663327077482714257090265493966627022949503763902259168775320252562087997438398753198505158429943674829265586183628911127365691219291078601180910960153436542301020410992628298147851837224148694000084125036982001570740087290492753655690191772517402746500907490173298801729769647588400474842468250521851169326780678824287944946605640610019073714532943228861367143437751814093174582300996222168700005906036482366304749285675365082408682975930026488242308746440132471972788618291646762792953287460857905204677099990366921580445062146223522151356597691667696748571686619537114215509349654253401381874762393614045554091061372624799899101591413902683107508545586462378790352762852407631970913538042990991940707105513070042262675742605487957005089183332423979131508998054607020070760706334633696482955574486066309581340334871832011476499523331659529185043673596990129614557782934704510885172555812770334561664101892852985840287971046757855751940926362582296670289442177177726361935323811449586778518738355453901865089602089151976790169935017941525523176939168790527525210095920098726658031363345150618359722343840951900288658177452111884774528196147092874833852383670471481305752909012119632027224247175674191866546381151335407654121421556672548879044336694928538953912774247393642027353131928199484891339691285551015416083038424900359491645268105160822683436219983761576913779456202361606734196117358652721582570653858582105357832756884780921710315293786166599755255648608706700248533773892369093437529529356385507976367213607065775594816893959141048333703374556404598644178030781842497680654464394883018580593344970751741249417883030360359487235618194134935862573393031907247243876239122197809579266158007865133105896802746904055976753538886622375524339252615351488607122377230994810847502730954986307069307162754328253482193699544802859675870487034384351175062742179113427973340947059993384782253512074037479245870134118748500984537929404908906849824983826094997863788256555744617868772049007576226037002525013245022456834715941078589635910818846950587449953601310599590148418981396332705148333039035911988651158500708156485217375982937786846387082572285724336767147724498472804099919206364488434759111680133996248766965283963347266343300885339309505527550971668542902325599052403026469930501924336097233754989075213833822745070613846436898877205355990034645564384604837189782350157748510315981319912720498464146711973385165635409806059481663488466078553356478820263236146061980934110700859362632021935913939807293867197873673708101649206426444357035729914913773452601679003727647112967665295040647970570879806688254493173600378264808536714224644619914962900669211025982455541030265014892001202710801535413013947189226805588958549840575209515243151771600476600211250452046818386071234174637826484281114785325151244092154450327833640214376663257589991986734621727590583396776685812218359297507911846643247445621258125149512182250087438107986685867357363959741983314299428311732786569836959778889237824966747908151454892181216918340832959789904779744532528930858697390667206362420039138560677110120595265893821198950615953478524732581736785907321045731899915634229984223636158813192646117128970535815242021689855581128243246061317475080995518864240676403144387547111372030999043661746545995259743771267919333357481065231425644290987837843431047916077192028305221974196532338876481758936326058308063371434752805511700656665080206701012537797858302283477664432197146938912273644917246242777112416790751127912473519637228641873799314791200084141364057710980288686011269596742607859069884802577999055974350387867017290634688333973994295193860597248057514436432625819183298830407438497712735977515299677205591624248027654723812268083126468048344585848933903314551342334798099780116954371230479577816258685263751883451746293005492412714066111925076337091542913217217807446831984009904605100987458257657697470652472376651192051757656893016180833891004144082314132859319497624516293507425495971215240181763147183971912145178382983210725419445068838462010222647010456771303923003697189004148719479209673435982550103566205302376571943652974316350950234224186969901708528036071093457438951077090999472358774539289826951300880274442523055605835481223792172698851611515177867614556332369999930043435123683105486269810481662025021783050242923446760632964028640218760955076351288820898002403725115585236734103879195607987855299223175253986235703070768960461541357075272232375021572106779868551905158323516047690990793370575083586376072256622309646425017591350975618457674140135601606205550935050526430125195922834839431951632049672731958904924922079238945243628073091897761083063578081655688822962056348682891743746311020858886620157128832664679264909735631949277645138762141145654720043508862941902183997910429892521282271133324661386165605182457239328783086742956180747256433777195630070662309213271505143454863877435699220095796859089347822600756178121064752842236212366902326006933439382747774470534944790853833291304041919783510202706058229401874851977730490302569223160275388565627927661723573322189083533431592124410409951950771367025326215890469916639976593437824017418479193580947188777015273088754992772072320777880437170105704824213640890435354562430601962681809239889639962903383592646422031598042140529038599692793909142473298797369549546834584878207581413451365717293993013245138336953644970818733993656342690882922282367990227065543013744416457347121956065131594768529972902665523312101171305760188867878686977277326958471296826884195322145894281228635290074690203253745902865250182146910920270268329382258176133751515957095138735123064216921434250645507829973900554121605557088444954428267104726658673984992241642079680746439200963039236204021121193873182608542945702834052201948742051963533854752044871425538806608301562685808952298680239984192191837547043327909708859780868480470488565965496440671822758662593521565858096712755685696623301067731336395126512703541713333190542316150762620674171023511871882399924729170608866799432452899923418232608007098999264205647811720846677555109698254191117524417001179077206030266344065198573540956498631112074303073038838452936428339500219745387541181993443369934851057411045660061715915796283769903979572867648130316261973279114588591622444345741609190154148012479513207648444211421645272819965859769952707587536336797094848360005119891067588253748343041599176293065159963368471552961165731909591880802979455995464566461327178987635623605424686094447886874386697915465748872637961505748922044267040189207080752209691247005032695917801284817331504450871563531938463698060278261425295575825911590263331428174050034199346349219071323176497979755200577565458797145618193792654894700671123443668181260270938101332047081118792608995788870822557135448701023753945663760753931224338201730721003218529364861083186071987790334795030088386890132794634210973159514688189224429919587579041600645211533618406016300427800017223671995287901413067173160458299620890570547034286844570475270789996343169853976955017724303278357786615803038788646034602616832895310255758413620858729974219681246745831317281894573450722136736528675795980144701255474882753728680745129700251252126809361506184632792648350048641999663590739150301201233501139359738636166209252040365493993881015954388464905732480061060233448741200000262663639675382349985653318931608072269020023063292262428781872030195099293399435162532955837422772439241466128529156749571624922409700180281940553047292919947856049761946145365459155181378299203857914234771583517239679794852704605763449774928515391588764765212206465721203459860697524616985537392394272196208331877894287982044608885093679469828241890844951161011278020340702585466933830532258120628813514507653300421259027173415396256128418646936544585261830303142860364020693140658385182442553054994666841146171562548360709236077990103483293148450799310499805879527026861302599389414929644934633130249701732259717368162338016727755365453369319189606061110634523557870203191602001441223609203968150159764200255504336788326417088648846060090070665705356457476900486081548980498636490785018340522485767912671195165903692240359534484230197133927806237245271422645934832250329336428299854070049941760903494298800672251107993463300778468971834792280916484560004170097376972749474934237725529305979380983560513529101266304650440436021063342962546815134647533963467310093845671586423567355569460277992402905466756493011384380395970672313677334152854026902028786920855104573239925266717768930143699312544006294352811544799556516075524284259940742434171820058420770185592525630081882536563201917696277245025340666199921881761307772055951018591306615261732663726712795969919901450327401346677184231914250839144960981580356515770632902977909503062586008376457861508729306790365234791720716365648190878159867372295551799433341610715909604724832710227838983328143915741000863533265707500786027127485438046919172702734167420492753190181185947044170594555255093188357643487444103447590124938120028771855036303600942283518957987888508967879682890617645661674696480908137299220682847423649251649007446137765220020177504143645698570609675059027313123367687371242416126245126503168490962470009626833000109631765324915569299073237088346237138892790061994304315900795584976289833624136354593905863931283208546246026513255222777537092428728933305801063244461914120202481954480386822993400694944429222549296982588133003523812878012350591867151724311631846198335974159253342746566169774112695464986219304650764558520029871431462109085890130701305015577951154798872485265953351651836857995776039310302375109504802476842279060142811173768037185056210902167783968908695772612712398208723728234199310878320656457631463957684567596853490449172102606148791467418225651962449280705621561867417922306924012969699441913224404675390440732252615257301060350672042488615551498766300529355735113125330122817006318657592209286573930584061089950773685055340956190865159163214925518573007278364679399881769042366168888469845197084839499747538665292675332946311312296515582556886492998436437885851363252654253079050011126947021999473840521675009920749815570650781978240858220374487475282326083094238163078993274371389364748590420776665591365268158726051045667615711852840082740738367857662211419364249900790984599204146489013953616677469765490501368156807242377092781420906087198856135676501126515843784201079669048790926182107681390318453368522442958714599246502984831627343372430612032494835884340338659027664255107024275567809630251407184606057599415173537088704606722624868021225942379713119039577960530654949976581427740415564241174939236351629049993995654928758747216342475825972928162031882282902541520219607487528986602285586573628824007248892060362303246508682687020158611144412869707339191280516097494608624593339352142340509311869680394742317787023721699731581280696877398491566832772217012179749494478087308895004025385064637073159635510120091135343095994351339553034732890364933832178632183652178844825172962762995339337427286450536795010793621528590812129564536579459412257631187217045167361836049126234930825581142768561637394706522133937069723997761431472278497032557259940679140538746719294874959905268534070937956389562486512638232089081277357680506805826931331774801021837837209744881066013885006087434460902557098792246290332533415499509306116950506864168481658334863583879334359010641329112816337591989473360080609129006946316935595493282488048447813544169602569009769196510316425679367453269253624515941036917485441532817819263073778102543491560355832292605069896191108394898516446722920274973543704133429000511139138092783469791779834462159968846448341890025899465654099420136603844742282052378604310142845953582424438286965981656043722408589960121330723135681857341853071691099249148516035678686364166947539941341457297071289107505391284101721805167828606617025906310065784813878368978008180007147344898728557610762431877668640227104386440014511662642361301377456862982615434354350264715617101247831627167023071295224977663586550100826322045282984166656955479507497739762833029329811285366393501580660370122183301302242207174751596990847109977079488775392881646860975579738714782320676993439696543917375792699512764934909482998960172327294287832984663193120510555853273590346803132825591052806854114214239483450520347008120361143081100013653283463824303733951478453791339591276876578438941989280817170013528914789369452775820373262265906587528622692523519675497625969501463070391008896344975735171464353866524636014730697467250593026720211095317322598623409538535205585034028374098600230481625568007713873700749628557329772579340358606110663737571761126049274883477841113311850286573291605572845798785001521150708638798845658426758338238303157349602033107136677133222903936764893197166832996181892986010437216674929191035864804062225409322588478731125628531244334130289222987003159681163611455948647602973364341931184718786846184287840471053427372998244358094296972303301046091121928543972312131105354890170519774158107962176275449908535914710996324234679346934704629494509515356597215673977203151100573064425400332263382468193819560403749883498431101025287980923708746039216957909827514522530589094624316986689244460214483075507128011854444818003162281229724693720916897453049833996585465457345297495351078726910167432494715258465680125514508406423710544548435224423656229217410990706558116695698288083214110016862880865997508371027554596268735707879904472490786127130514003287109548064668839490053639075257811819218940384428068918075121518109966789907267974291309256933858394688983019457633689111678416703320480038066438883356121058505829295691092555387553288429879649796626168340300341658893958146655105750941989099918069286024500977914618927956585928891623551855704490693807189762248800893509652033576383146513270939999293580995643981512552917102814750742898057279117213046948827444654123494218196970677387124194415655674722618571885263031999567248785796497149739100195992709974728644851985772537177196297616980000111798661437224815412029771258123612078968753067719188994091785256715260706400884876360296395411602141297695417199921784587572445140982331649974704638627792880805761697855404197539599096823282766210461460140915761014420627748371779507483739170820110199101103216991358863981210893380789122181814052612451924453216144372636736635092148045249813818900024018349568133290569248182039292918379163462388792120452298044094694578225739041049719809758770382922817818820461681539937422626917353331781872073407507124850613517347300078677215503313803964510450256103535298861898624432034647310503934788894141503758785192411497643973665165707153306406703985349592500822703488984499486809622431329837226468614156594691398863988467765694045851019223801531000918109905283956984446665294131256987914282024351132016662733966464710575365180570437143419930605134293254634770380863363830428354763889841847119666159166488502879775596448030727873703533952417966343102993433469810574803583419854967567903091701320558532510106403567678726718742254103881112830128815548189199912328120639523711164568944564969334911591946017031890257223152782996714671826860063978125976098302263102073305454594388061374198383957811931680214557919929306606949345881200569314103803645414563007867607155324030913138698522635277756492363243613106428640629733664202882360818460899556571845430827701818250208285251300312619922287603329330768146731520331709613403456423996721834940628920544364613720078937335365369866244952374780177381439770024752367005148288100100821806455010274041740499003417406852497187241712673269205997114002075960864160723735623125816857518693851119679325152312170614491177816316898098647599910444054401070077079043068940574557711406383774283412966333891749749185220888162015243148479835465625063564490524900942682257246804549465249577926933859426300615294103822769484953441830639439896958960403354695507042433616993436476693649517555345261061215667401723000914732641311214354002866369409343643875196632529905143892006422430778990717119313463699994947144770071769927761942880485321768974232872608187340759455223157230218589244613291867887696780139572982668759648545430339646802597630688044107208728159593658655172232844271745199983293054979018646747493858062203091051007577462598667366941806806106241458648869063118640471283516610644323597274334665134193016232391422737788648651598674228449040623807025402970608150231362165950010593315692315275174660499095252119878642678196995787126053933054441586382459710455599557364100431055972702720716414480850771851432847728168116420946694132208038285771572005018442093594699617808510144409672641580446782829282188818692905366015233823017337580502628611656890644325711353581717684710849786416477875941730227141237921930062621006577725045759552128362185600707687590609482673726452281976574130955024826620001988808755416579094746962572447049168790419390306141412740181362845041913458965612205804116256030358744802090770323734506800196216820001670499975542629929696012097915291588725724516446140940093188338723839435958822642824600118713077482969544312872420407975515276564532756776058880298246603685890222166276876024144175031137344522442991619101565440970925511606488711477580215649554205521386876460774412034137346942167362710989190594589955129657229296181937775696750180190689969098492921574103383192833707079409942345929196557044323745778915399833386590738708929651631800803746604388786416813299094936229465409629406679124226894211745500445974097955303916690667544971874872437164789843196094110893734335857179633405085291526098547428425988334051067973030090406679541064891091130004756733033154068484427865756700198452920883918476090559683697372142583558675894708954569440260010034225843517296957974158528459396612913596842012859080488448169113387051495563742258276258040357142162818384786841124708585781480512962277899321388698159114445260624267691800778858222235561968136565685263027619589517295165904639014558904689171151970789577772812289098017676677503475920006997072834465276136666355837809430351636398677739500753073255408518203187072186462430747926028696523637846457867996726810317296016038753233989189230756972775658456449335034456447612078539347725241891032060937930775478263170259190894607132160009145860042875792855908907693141166438674327064185544967452662187105282631378210966176766367180074255776483642742391926140972731471568270794305188867717716885080256521749533362141540757818577150752976002392523011229425685420730854994217869185687246787352128676587809928287454104873845071554653554345780538297648607875910407962192177803830669648101592216012046608986980343556954528779049791896197332996639469022715669540228576250289557129717458134195912987480850837360071394584779815769252505333041311249835349396317824105726842010573415021178017864615299310134349737238944723234911151767381297365240031607906356661216817150199473751983684109611709195912674194363601101873689637174837767488244532091789238108477314324828599624145995073522672532031316791196525590252096719982978349651564163360930580308319517704562903990263230391601791976514076327804003207905877149623375083213913256037991951934756786930756295428929113267458210628128636326900377364298793128954829233806140180677226677212678498612991299316500908636439587250146654290875086469659955982191011143066999276757781469809289894647830046481713111395291606015812814968504088884834204650306128772070197585406023936674532744508049334242105004061792617458901464184691320522033325021828683213060030825122396474457476970162479288678812269655695197943908550870035502486437268689969926930272439451486581548490132534883995410209406703227716098743156332491836340416235600848068155402406502002456787393430071680128672454781544226952016783504944032705500717508368931256134779153341054636126728767647176926758304807586122514662819588526147673509093517720675646544653296676252242176263672270903510194225864440408318482531312441601023422503475825024358187769294383947931142454573896100597196019688833833779571554759715914908913432911237645568416121407689780791830044091078269743782465286481569545304312003296331593960786347977234312941988389116890171309933911077069640186393035909982215956847655275924308663145729504229961672327529262128357174960252120970369091923179814502071424053798086250324113756392052683910177060643725125340151976687567233522764312737638378268765020424412728557162542876806104840858316223187116891043202027508024788606172733321660792135749114039032941569090753206569557401752392845147631884355076105888461934936635038166412900268549314800059263380416878127783531779776111189891213781279322855709939850140865270379124449021778114685295364380651516577506605773740843269118707192005015822379684218034149472086655408987679484157281730798228850312874833869604646583121360855646180992095885637051193669913508858332899259236075199272313408626242974682829349807847663591807494422271225678184365886225682743279190363472638863673580934955842830373264879572124050468532597590725100711965449560605083445847030437409420018379816288929468963343797444412544889193100178157127315057293780375908042372149164140853726160322070635685239880904437646820617597790318752120103736817223030765173334358786909518707855429644766595473910702992224735698559229930044985026319844699442829544487239710824563371569006771903187828478610891580790397314532953632919666106757702840334382661588049751643781185185422630954466332253025244515308270132531459737377979301996494035825368495604507911536446385743604695093299623644499444808935960369634086914271896069507172805701506487127182457051391560589709346423312619725370301237211512669707900797015661021182504791195305989365331370030896607427263863763928685457510754383443144169519626756708613136994736382953813991620749566697375120188370955596384622918886922794754784764476448707649597579823139725890674999336917458100641622223644686896270042881629041254533864178254477032683378956381149179791803616027012174120123119060639727817964958816369916112943127665043617073718422335448625929702330100677987103964999041945735450835920886914906064651582056505373407702119945747132304107251690407740831327625156550532558809833214561158598007234332853717164409297502919436899182650868136812455006068944470763705983778491523325868194296964924875523904307647225058621711583719937959283229558463991069782495717706010786703027879673887518445079079240495669335335394106346822213296452996974262024224045672113385534057866596390960677646139891279916903583326129359170978383160041990854841591583510216012544413351627054708072232669358534547572124740975629687165354722383810282905862510487667116850082071898890716804448803416617649685318850316156989125692936610905179269784137368948497499856318887662024531350593206778863312997121210546552603951588990948607733083442867549847613215694360089283447509879515305689511342780678066314453636992143068179122827388112575029325858358209390164805962523082939208713243211745494883604705584734380914573151254691661547094878595845578450509663923208379653207314493337712881578473525192436598967825754007244985032641417374495916416905847921218689723728678592289507344213473622133474696622027598385804199582123458186243429423312075647723600210049368955786188429435680442165895314675507830028869130717743053731692598971563094532868026855170716296241870119725735915941011688928682406535540529960556058716684903417538602542814361180810871450966045573387938785080693346383511559244667398636257870714016961973310303360605399039262381908496799085744933269478139007467843184815731872430439125570331446420605496630440898135342141314785972044571424566944483083756174262872074170251578167812583911523216643547434156219910091473431739359123919618050577261402577776853359482186945417927261095379126630932401595788664465717647526762546718832222425654230353444560376518774203960666499497677677151917332438977944382047583132715548770426043103038343123301913102362489553279634411771223619347644804125005453680192974100658365529475467046565356790847867628360800042761311876499471136198596928604525208815068309864406131753541475293865878677032522593337457787803051859453693439319381196168293411135665332172667188132994143689054713326037563328838719144151990030602956597218605437659298677910143679116325961286054637194454937119714020615830132943896720504164163836837795152151257517672410408421534125571339580447155232537729973024447066824491132105476798421815279818702039092941160979989344818436383857960732933359242451438354270480106601656359554013077447595652933882882393157952837450224745701705939675781378091820978674100268720088080881481746657097095829067968138411233945030160743367716090166830412371700371534159461388538030761083644408425579910022822547851154340466915908135407592969852862173104975482295562326676632420946229037842180358454624330342312335302662595904417289321982810496968115966565624398758855106133304784629062182022303602290285641262303261403223920492018725598583995217898861136969582697594796325919213777094489761502481293840547966279482053143515136449507873763263527897656672470015488809760315704232417750010386857042015665658503863146035890483302959168876181499507403436296762761597900683462775646004162597663798622437819132130809724539380322445279425714335247743255479534723831963663041203150605095999206259338050887129307064316919379109417416847118631503255455027714621078912642378064744592917728551714818785949142203034624419346154124753884276294886722539917139825618853048410574707771895686168067088913815481794589788439310654693217887112482298985344903583384881604627700364118993231341683566882056194378040099218487443611306950330713114501184375613643360032996119939219457340264178031090981718848533921699831521812219889228474826125205585641096713045701200698686710531748015069589201439736972264479225672826964357793879300717530980009438257019808397024332782384535218154400430262043489970099834290484093847770391167892253887933388235854413792499801484919041953841832973484738781034486616802362430616299515316310525116006425363153315740533211541590534277167341396539757922377341681298790456870600394581035033943318271056975154782636098055001514452895127983362773574295988158255078799678996990893614564318864134492868949798832718165609790696641317383356730184794818390616840533873159468129695710442291981278041755019944325703898253400909038019900225662405444381029676600780147541778929664480443125604776195395538504440162831251826302570879019260706006793242553484111548256950337324775645171966170913049817707134388558731229813482093354543359308909469046443845849771455698489789648537556621095969887650281280606167926548753299336618399795100228310304274650928970459408093488504605491956795581357269143375005332046480446432627725902191897078780714638908136187078118684748767981207840386181608219010007004631780257879732666398351532737919923803778851827382449186670370139399494892342728643699414168357756759045336107771070991096884132159043204032572153464284214399807201401428796103703821121004932476173683866289854065503987705735180411224572426934791033686115692817054234487689637697486505256394832338910309542701893359822070941864586440282427210027540772355133091298477010658625864044357342850377864630822252957792715987547063595529051848621274401306604049927538957348488797281032022283628149435422410713113793108494951071816123082042493464191631784391184042944897656241451139257249398552492676008403504229124892400974710879156601350792271482613643282822242602494258234310842308730119226442622828176936554535707443208232290857425257364588585564630068315113005891979901533903221372928366346613837622483502429381782671969063128992180006553440437898052844851128701322044139625707856938811320550223538550376455023947591130754642974256651564110221031861513443821410135565229397829626045333755124511614008511608478108366224476361210231095278526283693952038443162474862646700009516425956447668458023536427957483929772458021671304655613639850180328391226954833935749649527614192023561185522977994028623184041668209734333109270172101872732956742115343645541206226206898152019436145004610955129231108317378072005029469605985346143838506197860022171315036358070694721236501974770857452464471722033708792549896066508737866394523295612633957716354120075713183494738472447212036504006075576092854190313555523021790621560133334292502030094031957468320590637497377949518776736071139383350583536297680807127345224429380854906369546262445770984351006452205877334477319731997970274435240138482028790707954439522574314028863071010659223582878303769395754830232275046535072073325839153494073213249188701510084149716863339682695883605573169010326448998684174525230955049307891595812339335051171497912346562298751212189059474225559555331778753057284703365396014494085204337779268380341592582845688826702233812976104937432174541000268393798813054950196341422487476085865160289951472472009692735862362697935586269540725446906406954513830185609186531119794040667659109561219290681988969706005369061586752579454020003787257135181274789149027057199883680943935121538785315550964903513753537189600568173682196541604748610354082119863187948981404474210914172276050821822384377663359704648232830909467022165018083791533507554055913968160465927570721245894638615885148227594557286174169815468038846434935819751140656669363460978936612334761328585465224466289158906030512082478555358326183725770417690697342078331005298532243777827359237473989647448044168151817660937545542920978793971551853764565497129281951887068840933733789515085574751757411119817174253255739089157837983970309250676294367543528504970535350578233146526025769689381113497527133961075051955721652711586980705886506003922563693607657308119609467354386314413041291911859975432259445440459349599724886009054703314032938075074876286965498479172914117142695958593246023497279256538818276277999462930828725080127026445817165424937788170539059349850628037234860666714359290785719526462365603456937933291930708964722237737238502119443947901835705663062981428712415725776534542434845000658141808955069174648664657339617277688001798883822576089505460220231888199038991992986956780788089520113626912263799485329626100693447448971677372367490483119475819886937213314407986721187884630177682415443879493342900316806057531974348008454375918087675896379352900869086023579826455915787943919412784723920953663169693860350893676810149738598036916410598673324394964658938832032818895649799340333704679730398138382696503918434012489590982388462928109797359409349924226998645131544758408969611370548565328186422126714545732015027761184169737044134450371570648202697529109930686570041409597249239326861142169258465422494993973684611283683148142006660536892174577331561986230851381425556422912198798829478059223345080992210533927837538415623875514911009607884436138780744504421413371704532510035123976056442613389454853601155454830584823719462810600896955658259099310001255154594845603670961077262414519743869720271585748632591956538741334998272996871658917229242232518597900986522182156683500069414620835804650850648829923176216992583682460380527587664259639316413834858355145639499403892473931552022372713844199581834186407850323224855968207741683577628946420987210381583765552431978575894103043423216302418695948690268742207757562416472247447517170758420977360089456365400409527725175405019111780278953659933289271185429757970352187373196516930602342880683260240798297504149322991489212467025011147495503880568538278251693845876801127539215988925143685217254118337009556169893926431738643013653513525427801082479010175991579163781036469118075314888286993410897328402113981447316059654750917700094471713837217074740815299306472549394172534571746230728518982334699978875301210917674756441924933484344237209407774983683071568234418999749136251081225825170477816639795186521413855275696079725591173075542594042282657978039527719531880927740018573305858059234790218691738354979296733012184641869956294811784216251394947356093108719359748496807949073899661023176806814755235314403267606185398301057783527414805166097099934396679036694242354444794038936205034942295985512268989046734102415340951177882013225484404206882456918566165608867766900864937207607023139451408550834561554758964288438569719087236883069621423965053380588776985254635963852744122913285331617655756876665899014407505118537399035689262809253210277086524804149334239102063333628534167041682189337304058383287630650410072338878027432763856091698284311947471205653414825011101039034474750385539581541243756061496844209241528995808764176750648672877458429719609002097935182619453101202305458836233231912733336243869554908017339215503887690909979183334055024233683153140335135973119929805774315757344285203316073063816438222177095544719179326928605710897897436011987988828139904719190583910239305790213135798708174765246101802374763834345920242880826577239553855440154665270223052494315982950397449610920061901897377654079373981394615314809227968445484670536353938521263526764002178497176301221613470412348196326684874483460236786124888620887376944638610255113573958507379662644755330747839270725402795495515883120000127980192007373485076921834146533480978066261072673482779313731588908034539694525669795725718237449702706233157847159185771588836888579454637545376687281440587344986079073292195494181933304257110699754937246268190473299963679279070458284260487531059943981039735239483342583878427445789765829444716114142603915602001997880240831579340581392299048882527427083757171412838706074392377441949879118895661486019440626418419977203576418045918097776421495106911540690056947309971794181886095505521162581640894803782930602368031958181573731642966862062373207781683282259552365875246427825571305452197345213475880568841116829216589841434219191719782062768813515062637481002235736789201932617931366855153430473568321349583971978337547912047513555373813794728358169390143614361314334086350751035855680105279573337057265969783827978554019403619778159898582558348142647309859161556961029913813654582893256173802370682194438236595063893394676845953533064625955948762567747816436044239757616819078711950062914643747690332254487826428536373759161937057934747944530012770740013065329023733395870765526430335502737530095399291978384542832111420752865264511612156460793916277312282262581140914658254835159411475555332444652222547513022967107933241117567958590341932029672974041917105747283408525647590081789446472817459250134800855481172739768158606226210318430761427245823740476814082068497822673030079512960443799398022265038464740323437198584550073347441991973660726438289723812491898040291561468179510010821964709350201300518926999241184769816368711545549313529373175775587468623352180302246462709496111117191714189153409086183474925827588001855089179020890165219851258223562101676528351636696663000760649344277861688943190347134020140001711697161241482048529682076668585504340360549504599888827679343578065340794904751330828458407613145109897467097250137493607280580844536389624916603863851309702272832206834890699323332102307502588566804780000805983398034776731380802061064272274288014245480261701005722404707587605306889359251645169216346007428859525146973928062354021288053467414644719770494424455430854095288268956079008599353822112366700117636629620883831031908891588472770335809451722362287279544708767326021416647264769389391316135030593825086619182931579610192628245539430098500566099918662763045054344550860290637850324412613432172422113400505709487865346613707694758807396205730010496759459237838839349965684425004214678033651312774944751014321441843331148698686378068973119612908340497463137317236090973378528314956050284649979838436811610141112782612203853646653419667755245278769046815781365591863539514445316622962669933005640943033453816446418846070994551181899694349981000633545794883114858736568931066343047639864083726403314651578605012863538133488566183712122036022466691925018435563249882595348894654953626684816964680772420198533776570158331421265185492306098163299719551085084839913528059089622932664510967770620308940106616174603678582460853837541602497100155995343981003549895131498181547206250283343799702998314303920401525557529100817719099343782265047049067826007524270788042491965982433506874325219407386076868246689081857310648541308800861666803794235348356054800707457864093827497120535783332477384612840850342114980674428829787980222326584482981422228729771743670148283839660175762008451470636092698151637932124154093497912784397812151629525732044004985470702144546534477138121761543492452873130480849854867367546238751487177236709054228935759859167093380710702735757059893537599958363615241892802651863456049672817075031121287250227433263772735154959571097281820736986909243779495429724614780753226866278795149830170731223790475157413330142976333415858097229606521780418821192498569947810000568354795036381984930593904812986857503751542983492802831769484698712471179360020333309673139614669402588560722909737802367522830516145216204486071962813511405422309385342376792845795573284252126178834637550924185328501911414752264560168551535625154492047336401249669463308391115321117799215391226343637899230003805501698140208827109255448984351711184530093822192932319124139819017495596419801365887918433613003786588093250797914737986107241649287345507962585701132193353574010081930457597940416705337631517084895135362205644128887006849034809665542438988350666696363413861148427927163816254625408859338719422919206589515516610405977798468642830048659509875340824702893469626018717911654599460065251913637889492349535090176367019234166581046748773902382474571894905790409727087804081079641418257856245839416444470374151163333498930572482002159405870246145552255013267033397335963166141618715508170876576642573492008365524133086235591319978397189413893558715161702684324628528659402060866455396223918246012687255398983748175725731058751700707206767720268327363241057513280589249804091756269174721086707356772116007043952315634404584210625048808728195439946458277917926055135981598198367561916602157929408898939702479345765521208493830823670609574396792022562831511468660039507494800728490965355123932160376542875614058994116240251879415138782273667003100304417211268260611511908267847311240117172194303626017956575967235612675891996168610814665972281387355616337868436130598867395051176444538841798849209728902041834473177719127979790735179088056369920133731708566427461378968555368766638192343318666412814247244434664808267719860121892144975788576155407768116073412894211398075106028367344478693837933513269865595580130370658257044603866550028361474400234252721439228169128326055652419606021488858239141267736225204240105013570525861410747932120677953940699257839944106110064963925442199222813725421700568846742388501792165467287461248499657364057605445790956409212571552800928818393331369564940448140380803452880758448628047611538043467465407279509315351029513729096167851846163585639043482866135234011590313083068464643354587783415091613040618593357006041126298907974952519581508962170200233901764498615125406139467250022485007706219614031010075022152258619403102641657673034271319050729336752213851955664256916291243386793290288166841370021462612596523514013514557125316861446404180336030699557912110174292172281266469965961474185815585562021751769300733354001105206456530331019266411654933864061668946872832019087907243104317532029209625399791666109204561729130919206252242540111148866283349556473730149553014177667493801806605644837690901997873749502979519190183979051058269190861875066362023755754962063181030467741440712185924674634554237749411250016775619572456729817418237988275521269398154712119700697612233169313952953872430139808841119951695856504055709593322959444077229389590832765159336516779490947090608612204998276299552334114779223862765418451111578417912390748717881267485345943531944674211698450766079422565562920998335177276265745268078888344955765750687908778124658108200374645833946193624464171026370495692846988163925826198249584265823884623685246077786416368421923021795330683414227988180591852371179106887708408281373991329393680150458123813005638746063918845772852490481679280572148555628857099405754154888556529903614115890349551053958354150621239044094049264620892728351286599561203011474790186130950531827438954650752692316976805110758168143725806472941698075942587219907710739898791630172891825302148004172291232532793054747244399269207591918171231184224206403421325419051130221495743383024274619396981802673486314584229087116341514967813816821487765982859628831894210891677828164808362711309968396530484606661269282109936599086308879335136723996903529425633209074237785499683563875036947791544431596974661795784734860731302430801863075573416379878035899692556015343356464305685599582637021005085491348737283643170225024489278753045582496930236318393080062790946570416504605453338424572162437810515405495246760403253045905062974595740024891796712151600412930949772755833526327933295984211679380508057824644073639985765375894564464875641612133969572652768566630975715272600876623722305170813098112205375040637405006845076079524636419644690633410091091428139055121579318214016133149079068230148668356589408985778155179078283708942273867993873343665389020281561765197704469043679987174879468933433146446092648608238234972048501344930631867148319741250678300630800753669392345759390523819742000332544620442633701268657696539275721923235893658729586938446370567914360611116685830254623376258614399236994419713422883799519030936955710672297071149078450989264509795467461130329820966035023997234342332435415011376008235985327999921127559872512208259915115468105412339479432117790864528361905642988284413378318477372642959251901776753494810328550124305901173424371225112102996412612769432406806877148911603834440536460381556560793314786308934443199593381697942613898435437636715887756236795486753083714863935785966918203673980281706225064422646792166822730233735987864936087115836342459250842207532010058732719010878870249523834747284693711961319747158524451882432289134063435486384826903789557073645353599683013985186952042168512925223818386532562922323973281864119829340409085113674691968401694045392824398342195683622604279463354578256711915896932606350505044537686069879848872216509750101017569084517369991366949424493166836833264342386086104620821970768792316935894545929109098954515657617566124138580696830133427745555828458083252505650083884875019536073884691627782244837041732486535031800285280415340328933408301478721148993513497902383727481872413811242806385944716517097605632051359442404125869991560514834027553429911375530840161002049041592699569748650214378726347062409747250272896972175473955243263087624561959831564086102227034369431813684217541797231718972827280703816969930049322264229050944146933262387463328368817022921319802142933880504368501639948177937683464160259703670239879353578779656864370507655544955199173873477818403157751166617167899107077039974351766254254786015443072145937343419978469578008125987264548090321904997007288280812496690817911330674544677278225580301111159791640243849715769425080916307453822223863831470673070172147221876269725109213981823481974300555934607821882101611607958593705444129726047325471277515428520013754557551434386940917999311524919214795667707048815796894157539983799697543237837748271779654200763107103902061683779600639768720761932407029643809508775104158285500109421661664176121409375333930398295971794350005542011227290566700401167532982205983684365848019126394193157074100287843835227591754385193084690158255738773178752732152868609741554018735827405749597519879357712015985829052272437606770501100540987678377683716625589178373387619947198679424120989863576304293616769789165703855908559061038088684576845515805871728728510793802037557479080414117497026560538525818080462722055398474177208264483817168456546346083460391641065317114417258588609621766770131598151234107517771190739387552165753466082165638322193968654594396020781158843947684910874397161260963431079274935858771627700400770159926284341495720066765176090978087349993667363499810576071359577788985258420705353984272948847586799578715108205387699229043679565639709260670394242740051848372537920686614734855979284899002200416869263364914880655501515389965286385978940211368288995035382572541507887142790193707338198108569234605967305384431300361627774663657149382956927848494235476253222443661992623477177690345551061058549792029699871945040316247491075115410852058946341345386657043308411539753182669391721835430113564489923988014221741450724576713958597925504708094305687305609247233505559579904608848879976844755012796054086776477305862628597610207865869320501959431310438332749346104313155546039158470059490020110828410817077658258760455292673169641623249899890006540593520894676470891086064835894691790759085508093988077491226663128918417647320302380482621890568325363268247299318171515982978681671372381867998380327226092437393896182591401571738949005843096063167842186122949011414765106394999221199402786660583285228624659933106337298864861430897890083039978843032199906011728685520135043519255083318131250104646394957898083686808955053594614809058617149202150519111076007936228765152776516054567648202677939722812285419824305782171226418156689286591581407648598507270596844166014313722387204802417462525508644361911510708792043158831291967945911105857370196243562768035937363130593574547046813622412321254911481134656609788305392649346277300173352357664389234067108422216100608957162689142011597032359381720452763076983495743370481376615583916167076890660724918368510023224082856918839383691839492132294139019523833845851414157905804035911889930155411493884860303348795583531272844056206624454625073830283981260197863640940900505468914476607342463716316595148060710109038409715725835500765631545533003865059954321306545539192697240488425675611099027123357384347843004431369785628731555521285569750915036531277802605600673737753673486837737029214590780810923300746342811320185625518000523841518391608071198311323577492622981367679860730074517196855995180052504594666324014660649506550044936561478188686261654859283040929272521132647844050389726029765288106432704192877913103087751954782569562578230837702404192761735081946389937336524796578848335657359035283896687884427660059172277589679936555073499847471423272623798676486552732980314999801398504403889453308793631119257138761052096972062048251463188475056901394973882823797603926249753863432249881632038013196195379819010501805451743011468231528040174537679034281499651284167452881710482786374350210759752022046017125363436209797564090273347533465401931318986193867105707153415815843716817439708125046295568709079703812934332759043604415996624660406909817460078907432371969591831195095746773069441842695180585083610958660170710424516488689518568227871623528062557920776042254427888163749174008904132628292496893162329080651288992722966558898429195064483469327989158013079426065843042101374146373967827260210273097723957173469164291833406045748451095675896571007865740395700944501703324725754693682745842587839589361106257028252873544142581120695485461393906384824236547452012826132658485279663626071812257695092264677922621021257569528133182954846422709638528645092281020887284035949358337571117601038802918499708258706626731776235508654691730897056373965516338074487094900154619874400752200849288055000645743618026110265313415123111262001558897067313635219912935823696927116234791530634446740137373985882174872174230650888704562509107760798356516891358700940418129889810234491750890063889409819462910083288528307268130105530788833281018635870960640623988067764829910722021926387723851119593792127618641898942184325190276834868700959387591489301665665393895755187849358008428483868097237088612700380852634166767559859484965954838100538635778386561279909395386916692118017139360157308663461052899773829303336140448707768029813712535339695572056003526515291929501711262561008939988535994418436072430799406172131496159973687368915933973706507604198180118738487484839179508074547901613227086694122922649909639994102501151932957564622842044884243978593914118444401091676247540977244081218329374761798100736142955985940386165110367194961197285053546125863734687960221961170610404809984056096397148153874465163695378672505470012512626769735338456857722295454782970706974157192004729000297990337070619558567406451459440744855220112403534798849042892061176540847561713352047744738783553078495551972031620389997216249139108900610141656299828462267481267163305065345300577494745023847311712145232553412190302115801374510419162129906067331917947527003454820996456105085937578656250393841282635784224547913746297088666435478772066199099752407267521396742840603975750531465202835961650519757427133918141298364670121737475524684291827594139622836426027001509351805317067376226130852756667505355860237270752785729202471011758832662947383146262463041825696620662220091502469665543424195060775230610858542821047931426768977371149583087541924597595445601659722281234264669441064312210208440668730234592730027468459731574182940503963723888175982805800531736190475770233427411381819381865068191178325900435223653848386786596831978140336841429629143033772683185470391283143682519726481642914060181186560512204105552431878642531615699378664763154885762511445386716716405575234736290530695620040799011049411714783086557688700035998457777952106714676947564540453669088590943281596752553223421778415454496696413962223265717839257279566880614286027701838803938226986111050807574721997075409304710976824725922234014988092602704461235886307949711787638925260238750882486805458435439007316647943761240280653375851412973493054027875520516237411070992180361193383102077259872701441877321501158237380111615675087364785965253408139255392174501019870875781377354772430923046497528798386917195211603191466781859116013785864512798676064761552979849525521000463011272281992295945210726272980477775751069881362729835633692165020685818831049459193213185111589503846292696922041565126960473526577976904389182792224989498183365226523609469197192324124760081397853979571766565439934356907994117535865205550464615167012441076103611176506538217889556104627210750593777964393069945754574625067383579785969362099266695227551873579064109858771134742594317931653922362321107471093224326153309291190377837287427763572347941874422587147773782440678899735758779588568393885218660559258159227216469286216055946996773206373282136229592902644527607444158200639102658550401202274361234192051815811284968098381030807928076127426046713250036010486682919842115551287284578826209622027316168835193545685408845942059789940392984516761011694906337746301463845631561026279329115880115889790119057546472772669518180143485745339647951355087298194550089516092967018461115809856201285130652718733730281040866045819054017687283987094186408137421009441596998879187561485669792955137159550417528526052221779664670255378106282568140143453685065660143503236952008611652530976414005493367229335847660694000484992168679383751130412695402012940985611462583946648710542334951553316653703644922191901391032995149002591266122978068214809997602532065077896007535123907909823310109685204494993070817416540884140301669355083596162413068813844264657087967367372718321751315528060707933838607090195351431186462920691096306140452545068428172866408134555133902145165157466843367935030380678102713284587754704818190366688155774470699765893999024856775853532590855484677813585172043800279311657181454324878556804479397118178623419839921612063493502366032796966471222217376986841119923340942939292187489228928803240202811227480430637922997228604913813759724777307824408422177567826398352465284102856361501104534998652212759390918655779304222136109565465403982999371744756427187675118536336467861522639542467224663229811811233946408528337542594482274294146862029315498694497590036658968947103369617563851266490016992830432090416866530103326143316618667422088549536213912545307836579249526917818709753970780766192223224298746715338513808354415199442634493418101989965410865847595792656604044507632133307217227399650089642380921439183501127107298200286776863310827716774240625145044353733554330878584672838126575379607198254311082915493524000198035617784630236014332044261272067350544046873072566194325125074986561910393554740491024144290441823183991434735198953500564201898808927337121652721579499300230090691982630067326433021825042265145874107978428631329462824432237585436358332595803394378632950564774495706463505308278819038774495936888188023492265968166325125292597469501213031771155189774416942254512775735243970730531296670318133363320004432405375729462056294219191390809997176146013161072471106903481178574315059992785390515809069197956480103500457837362658708082083813396082330105116721137778894020905626428733452845819892620171624808343794374632751478821551140881351140004436334890696199158833064132673374969361826454172286292329975841560580423686694213409732709966290144953094447441595282010082282134836847392476202862178094063661567332210214852650656411395950962856810502900596467085868517040042850183015418431286148145077669766796554208481373742906962550598517154318997721271264975438838631643974634249699915204493359889036615649871919945653019070880384757742158682585327669836209165103515127485598372753085829774038376410956481831792624000291755360111076723333292382784733648077126069587761364568369825819421892688263997266290005243859868431247787029489101782752575020762141559724071702003143480541198490382907635011168086313606467067670772427302304259321787462851140521754678997102625329509817824329198351179207245904695642896756030775970081918013798745296595557866315493551860120175847460202820880424207236226683908744571055929483545800345465810335039563372753497330265339392308252800097603083378768598207297470163606716015418273491648396774528500817896385134808603068276472080105759566319280543104188285038676775600810537547301606273361435664232932295329427899343723238698236008086609433427304263906144141350886429824106217107155749916981938594831822928377910918751411131171550760100828199480909719786907708235171058694291022049074928866904490374174138567971442468077412312507727053238031914578087731081965548019349216279876304816079831345237285352529763032766001083619408226260796253738061635301411737342980105545872035808002164912380277758593637832091203577893282046447756854258514802691264632262153799664643258524957014306262186289831218902063789431767572002535467662839882303796140272110188386359805337639272094536093760805528950505803484801605497502128560865028527812329231174210870488397341652478087523705155770463093389756461666011712603153845283387184967144641231310474446209501164603525217380671835997727015526179492804262134265917297002306558712141021097753276500836098268240747730099263369959773757183708573446322003513109630040100969870262255108765142894917203463104478352983419985669611622721902893827004183959412136303723985343682921513274854082632152405150737964696826083586740162633804101681392238433080883314681948515244044010492956379855268746345442889814255135096679028995653442969951891389121143852971141680744550919453133533103873846855624854702404779114674193069492606259791863645916195477795406889636680226655211214300810977873229654388464001497196955037741393820857755842047716223816707903723455313314876856278374821922410153828328386998446654394552985097336258033283023718704989138602894673307644278815817917108994936835341234456161478590425307189077076252006385155380819672888498893169235342121437080035657911832198994326382362282933219772880997908525851195772713818718347961231171371917425437510826127340213333990496101169428927705355502244881210019702206991405320437607150590687265749440822780367023706378987240008088795713074373874875823101157187354678534094541773589363834773959606026653349822491741546550052664776068548904220968703081697528303367862252862227401640612115248385189580442411406846923460585960749965570555264908525059563708534932659867003055519673051459213975858679168550584295247906874103869652166568650294015232978808338886763846380146214764846443181124512044282122212124841284352451405453275993855693949672066975058748387789207143902961871493428723913316229022180763171004628177447544125572744230607968175428577895240311996988039007431302676840014846354778121328155252791137227970384666953355986167767810546580387550808021587839876909987186436610322623047072694857267543890166449875309875388173904233606881706766439473832234208683519601331128460095087439776298933789510552059053820045200669492393012482646420719841426242603155201095865420812172433354743215572374107205619911126866107076940104008534297783087360888078826822403250165231378234980733124830875751066345942565445418580114243518014093948969985681957267552570471329531190649446011139633213769780711631628408568139598488204649015092149782893835930031150536917085426190657330089947811871367716714784065976830972729364546499935418411882352255179657209396217421986033572933720625659533839036012234078470977634216183370493610564533006723395313481349031984049714166137537877827488582455475021102685988745218954292227802968172462847957376853792317649191900434070202434302639871748912887191688891437255721448470452329180787490145831018964708545454739736940873193276812079140104348525558998069101841834173965504861630867606017278647541642013309392015416829487909583102702626125682404776022201605626924002863289202890686357626564496851256421622718491559050120045174605154636488475237184920435961894135720404639561833726567935147660121754653300705071264066052213232079461715789680883699625956527700613547005001461195671824242952934609507140621581731635105262892287425296443999893777381690078765863074185168176149640065774631108502239568778342579225793622650413773192902637200201321955210942437444278195054605815085444665624104894880091573676288747887053602733515855537095697686558210744280681526205541209175716286064985843893116528972867271683847930397703789071176416112840354411856988264133896107722791578468329525393310827204649254140391023772884057349554829911620425073971514450464170688957569173867638631717660346784935170851538245868313473049233427003876199181757138404958025548038971192813627055194039806501579182306886122761563587948552380906830563662479827985019696441103847931997955128191128104386291475892665957318920691900384771113780744335393348395439317786499604766010510760546786258562176963263322627979212868807385647815655253763628567619395544193140344147805733440662653820681904898208632583881403246585163176157698703405556747501633733614757255555662043062926510048608746773586872103113355661323897305987361408561484695003135126327380767630881729986400477596248352598786741291279293610251241205714517108697168200581008804402989015964279653925940321611024599748748583769180784841990295641559156565412396610466968154214520291043240168428365173789583019997194783066827819028554659210954818704322522905132855811368275488216864910760351016165946193059878652524738266762782806671959070812004997701094554735325780398390233718158855595683137846758451415789874912585345994222469570954918123414660349161057147756808759169545052699831070009719052746052033310928568733827010811306861457650198310672562390918328633448952026945847716985286104482712503576233324419258040782781655336589289119195993600134293354949520016653127698011867620501614326616069764269799200227430642958036423862819173034444202373638962485304767441909314564629947844001276683112170961626372273891889582636292333756126898410047257970762164861499653881154208001669691085591702478188539841148070933225935496304762815514991279929041001412900087505433163955733363478199568692064506641959963447213617701746919584493075580859019152533822177959526491301832158006719308334639004618550853381955885039771641374070909631145188257739074578853718352330752346905003677740928393722223157837276275115409731317563149119087648248659486326715119770015397676060056147463701487681902595638653146059006676615049994421981623915572010425412188724256532301833497149914982834728895678778043937891474984792009125010541424110482851778783275404180667554787231418148096870254094374263558896654525729487402574984464181407590141368981205279829041885945074750195793200596463875810906182624265263417044093901534766481711743579258258881223095411146820596081327016635312707693415297989204314964362351112166424251787735984514778041312515834625665129533496627559355004488221142758702218124282993056136680585628215899898663032555263865273554873261076923723697995561454368335335328980921357283977010937200539212233619626173193392400684719613365564173235994214348577827602715778630075402553115956677942782165194169688081511294043166633015159666204009826295150274256127602183890745286336498439805397670199282017018273766956358641910800920390068156129170757812648409460238591598116973401993110717146909126448648978336169210950179564707007238217437589329890083744040573831692596568777083963335479645653468200292063503860324160729049787973635443220761412246256327899584676759822519300514284509323115325416062016231245065767795141288372905231915995709053641433366130835076125914874913716695114178572800479315206105530755286934529896490270288868491195260924264052084596336751597492127198489927221325078122781361221302445604723725197117284433437596580009700092441760541816827367193739074092609357190978009979103084641015815131011884027793984208814220451413726802202858392767942864731528901852635360417332582893078935345202974454098347445752773151310824665748314340264184867431388264289482740480282202666848123282952875517604238263542865352230127330280275686316765178115346587868672026915456255766827101534210844187544346989195906919585469862488659822501191195379843838940373349536690794220077830868352923481814092841385832595858236592803778962983046150103399403094772569384694681922157659033548400627835937586436213274579364721525247556741303302230736492005737818774774632366462684744971015087777803806967503949789945237254469224099832494145280744511604896697431086240553761490288985752802968838220646617482485556356295574287906177894555168848174649421731903946853675293351417814354931585666589450010896093960061006264790080819624032208917066806653286233497788180582024697026166528689617725881878561139182665710194320842475286415321280726065482581011677029997549754324905406242355493201237847436031151939581290384879551975718591011896389970176145312519514687720529766825208035073063675315035622357024323177843871435167121096773350726134983856304390460009459967104111970585269118424822604113880790259510709950765868719206107551265940793066184971051335433859296884072401692530343898562580277608840833945324938270309494868399768328525290983828266012523908271094226674824387938025258177607843563549275139283492352102851573685340450307497056408938557126405703910673311308186117972534832107847528470286730050660715686496475525743872988399010597665329304696971618223114178904155567739864171724831362000502053206863707624841635617892138375380175742610305010567600877014053000041296373307756884429324156891289235786214918224166399369359741165562432645235831677387451923551818615744448579388717047999441493647881734994885725343417638497302523728988280260175115920882140285990918338841669709457097760356103901866403061611688374050574332774691502730283960469287521379132178550874186741407480145640521633106217445244623043417949998907217376652093015054896477422255561792843736055109598865265255685446734819965814266827270844342126516559341151997220874728018641655704896468838655131144879653713102437531466802398796557308573804782635517173944268558523331901841698998224835069835731655350967227255960105607974880804116883094689018610174668631128385649192878673953152152498763888476882606001619771501133707895379435042143415876133958348919388742236308497651910747349004991460060302982153937150215299288486928715800044403148521307847475134143686261759359023186732189915835262775730275125227861858452122614984978857322545492925919376312355233730325898332248173283107244044901895016798534808460376843651990695245614381493586336645234296578184294117391548600584641263403423592206894231047690892534701056171696948297148059251484597526290111833935708252160437052028793803134991483852572691185420646119279212138979668189215923455163255616954824134778970216708885833335242565147394688304347870241882862111899700709842015892501846232102516885656632617237203528643201520144547908901105972814164305536704078898706181842579865765724318399014824230457188045258862148525885656593355446744647368443802479931616405486593459050463963382123707256486441281327021615490534076204222880880337558583930242057613963542463304094923923042084230416761092188361690630431829545275212151659920548970822627388085340278152817595225484460719642876750303876616736925871103233679118528251499417145144271061181944717110946435124786738224887628977914094730558120529539511603941643868226748561788232142375156701229050934424191003550243121490744276626349839852228826696644398570997635994134045460522158250825691980233666553966465981994878539677207248367128267211058598891972551463395814797805593296730451576249789786753862138843922711024724703123404698419163964329222503688755450974936544643827327971760137312953589611249990571195218131711401288938040111740161815024849337528062178205697881659153493306753278006250592547031373283426357729062099366090004833515541684690438942431155406165986080387673396375944583893685746326109788243658176133817339662126402724327102104331913833421540912185279886599032432661365627542319916764522854875528123979864050536791975801305057892928662919057382463888700724914223855943003596352222146381140579475568753545068155833493958545105677525892044399160713640483046023372436436222706372129867914032406755997451268124359838775347210226594206458768853641524695958326164645400085178148446091649508149808763737409597677677306349093238160751511720186115515675577770436690596335533226138644961862813433379258623394253987337157480657415171950993546955522744664738903128579587326808583400275738926001024585498364773863600241882732458039090994733651950364519498374570750228516234483354851276098087926176549190241620883493391092619320714870714284801372688246257501675571831538505859557418884029925928079578192627203853001866574813296052848066287606405575396145675879545117898816270922409005693705614590980884859132609552069031960947898922521624595975448865490344503509495259032937858173603598163501645818036676092148526976687260268334606956607264983638683680019620351126589270145362011416414993207555624027237091155915666315509311430820869401651918639043680973036686218723252339905422604002896402983259354548734145812750046428638807198860077816852130670203571593856582902298380089757335948266145885841787574466028210107588655328152563190700714496585956317084746925042906019370562449332281648301471465994939810138300750919198057335336575840924936044675574059881889135749739152637825170004820380583642853455528617303760743921303599304351971213992796167811663113837016841805964203913577981608603269983386616018729589688919283567548536276350947145471148558120949838705382896542978728817082236036703658396225330895461032898133476035529838640782891464467476039982937222608474590861221575085117811526759584474911468039807053730652560168427543218774713432832261343060520529283274111778168850875737476358116458196786251288431058338433027450856754153882245438377790561591173842629704283480605780317808833205776457210073147265241610262040873227200701338834287085965767006300348319733307279251177731881786582696110121572975153808429825763319995049075855629135528239173845880119988869017280013162850405963516079609658647406406791455378350571216386718774490988146976491499996277047596324132190280820314580823965866343476641069557759661611648879063603212840621576043403733095249319862544702219458790957517260531999911631252363095189577540435920046581049002780295975517219120125732857710189715889368812565242525567260467510241152118054801322669533301896136828572688068409144669441979762043345086341501279633351237341067922174291002360704495723040406055265762271004178865809877802285073119393710299937062918185566330129399935670836802669867279854728902149067226987121082113486706791598512049442743107672426632284422566749242175665203456696641477379071101663048013825341940436861728502211397518849716041830015150594997188145031438401318054818382918509069866443655241380556096881947546166815157220736671887011461764393885210762950398764102552241840916849097707465638765621726734441380528788564744461048357906029177638389256992638304947556011648898434145381301328373529718153790784545345460997261443169194347357822043843590508808291872484343724005166407843040668692487164199886593441429713435106127468563488964496814017629944254388671993123032153485620360540822448122011163753417973907220876462780300868342841544248239532550497031502559133500711317332138220773790329627550753822279277361342753215600083862647362222005572404510881888873274622681693759844603010870758792883413239627396022897100274771586461288859764819547308715283497872574181005080495542403183548065968672436340768996782738206915268220761628479463323853029625110382270221497527862033321541736787426721359827901016418916095957698098313743185910190676717982547558753760493886062474080448565977807749498012517751330370366679087490757451935362049718903907010102396002367301524841554586398405513765468275867632129400536745585982529429212546436459290055724381705897342205905391630198897556033471621657336983004314007759434836495181116762770029319728579918998548456469153991460853553545799492367791340696045381813388863349225808461699025355405804464698756927393697148496674764964662290441955137827356022254612653281435937309331838205562149486192677077062694085906672726200543421030857682430824457885581939104828044491876311384288449101140032320411632885540863840658814358933803015468499733038818480532464147572170628438288716184810297637038630510669607712192355147145888509024321597409110516680236947162989945991384832117939951874005319688574073792017921565314038748184539013553622319572098420215636135391827523898568957623036188635239045768580779860201393485371733565032449805690787323965722689748789815175993395189180603054776547707667427272172016757524405902093271624837628218123109099756880511755614963778989607618670059216643577136229133128859630401984499131806305125422973875555196891071053657276390261349904027596427070774979889971627871581497036406241138939026676545068375066023766989817835162026225364279232757005644762463263040030431213873853208758133178157512451210737447696697676517598939650563591230731869178694916647903927850643914516280725163879891728383790817561155631966069685896011149846614667604093704005591128275845541503254438682171377575260680684734638244062944110538695351001592844084269838139934529186447841462006858282472555134887258461122750660648854092475179146436777458068379367202819140973906315684722023562056964109116623702807427230342041467574058460436713229581199423292920960915318303767282326128242345180855714012870794595656040177745765714918200998991653040762874732118181935363178059001148967176134200549323448377011193535238514200000233964045428885566943269447350034842531809190346826593127045014909860636637584673512541838195333523081884506003059796605207799408166358057801296756945049163389579421749032547259334494876334247791984978519087495655993536205060441210398491282731486237564737637260950825778091315053858337120935116448827398320517103530708772124359771284086126672135521881572103634297969757102253335325905857381499962154421573680595563827298772525901175212873401963499361447189133273236931561250133576908307816763939791888409956097263726898821916982464603308056818066655998989518551943518589857653757740864693215214134079744013309347291933106997522950168865117793000208939312208538034834340123223696713234017823135020772209718679042007144965902690444941586059955532898754897253536271419866799076359311499220340641979483188003779009718484200422609967065241233148549762084089489159793518144089444355089934227664792578500439462593252173040718396709064876957592952620012826029979276266386976614010758521796288192604106436978339922483337228305787904546497901097803888159716502366728975479786017461700493639007222567819542240332683299342599007524795325531653061186896722306609465277438313138171670901497201804479501893634205255525467360090114219243124504522101894319618377066333679204578650149804885709562345953908733776817876872667351840587544630076150531570179277419223585818652508264127448218357174332437271958718645727833534821510244158463838380420528780860077551949401408985698688689321007879868522824311166148148678536727084863090636875472026980323799523899901845812110774431775631158730735077052423674928639895635129364069302138295949822268101033949863302162348844781050647583273758270774866716350432532642138346296960216220172512883457264812611215398291514494785508159863238706358677639614893586958753354191154990874957009926384817238880347242487440687928048888063248342161950353128856452839835146391046443157168029186262549135424841892383661716099025344805147391083274422014255270673298228681923650502342830152458984992682398035423391043027487233278709844025640928216170478335860007638082744113294704007993136670277189352065716879254621226189256785440740422416017103590202513934010538104831428311380051435637193316156989971404484380163097108984359076499743759408427838094643453282420161606600601139017326116976689143926570161478410359978492613321638835704554617502016187658329005761860013809476640060224438537078081846439249617777932149854990239039220949779596214437260803370702356147788243891090350248721616251761720591151013645425587058187075372912357493830613534868547474629273257258128863186828142888354156914119921835966611431376294323844284119011091277762259499662149194332912611581307623271045499327148535612084149683657558602473571735991428062865443992325125238493036307417194029614861111395352731075164588439197627717386069022033245810887593016144721787360363946534298725919923362599374493592472858842190085353097705026968480126087552915555073621122589145283620865354588565446024989299566392487172592927468091131103885056268596850077282529976443481440701211128859465790162999535650551817259540839890335886012784434263728473460114274011519166627129126336388314005626147045444117031503754058298266174711026667702523239639271628475780788313137364102826392618324738345555717563339167748951630736014180970615424360644835377956199137296928008330569401281222880686983836593623867874498075964244616249692920547371945735653829916094013967078022154053361478514169421300237981745434701464432846008717774835410456467156598393964562975328148000934980215934030251628840601225989199425883531798894731707682400982562095149771369910600296328523519857834301128064247463504001013064192582963765099577570639072624291670905443388519980642978690727566148143596256523277579193905469277563472702475212235389846135285894247112345133213962342951253946458313768438633217122294279521553434191600109678229954731442750604553928225522438108207979111797200811249274171514570490292577571148584189375934252077095889175323290016770930441959017619081431768863080169402146752496305033570290268319783334813735757264616418226690329295425720184681426790099400557586389612947620117758333118572211826611457266628313947117881614320860824003711343360485286972413194060990977395781539878103340156119548110903727984867958333507517294843424212447864887288549590419317498540497065340368338420855714392419525368210056380147287775863073285015918764713302419225109116678269243847849826066984789202259101382037629472763009875712232671048853193871391883691167546966020464744930024574415305176879153306836600546311523004960420530627808540385121223579023024689306442050166804165231583228261972719917399078961426835418512228566508485597884675133118384772270395113191781016733819258050316453197341030813031633748039403500881937539643769252490541232379195596764706718017319659290053435146174436595310324211731106708989265063822886438772746178371921547777816426426672603343450189104608444211315231715633345714886248238251121147489554691989038939509841866217117777804835341395725798148152083683527215781439803424045032860108896194793626676070461107963980097143189687852573356554939142342827185839537505694291503309311724826656984927585888741079938506724418055784291981566994630383191900200009715594230553833173369518815253884276665226756903838547469586766820609937404878590584563100295669271529888921789669491170099298620545555316382617515737504417692179534127152256420841101992098337052587979041872024240257033677808409134232764475592264224816804555800549586379215957340059760501057013256216743186910430708475618431731452937147996486995821801264687159002752527196223123871812786166188362363449565838606665124788625637796940492903589682047732773391346356269751091839711544260458640047557247914002577153764936073474952167984521055795473581322076532860185554380546291130908934140620977020201938723967108488545492136825274524550535317806904302281202815486486496102146189043407863816688914282594396223271633290184941873318728751342623375577403867641753866447298429011806273837176365904852962517597977264948124308267622423350272773951026508422617626981077094077931670478332063519031813538134476269767987661627442934041578971048402687640279906941099207241425422336814047959661113276195823021087205184840037606698143499737174368281060887701181310340578548146759742456643163717426933618256084699965470521157399993186865343219562960067286254463773866094896381199665405867034955439782267077619823600089273899965782162430449730215726766991490721462704616044588993443074412331020983643759569810145791090822584627866355298055897593187908872015588460080397364693190874306354614873679103186303999764032309411759154201405112129508420431880096271408430835164001507696699632792149909696799496970135283034881100542279843070804227988471021137399771331017517396512849842182523847853386895013904002319466697175227585079029518049354678965964537359087728362939891700327621767383845755371087345027365693557234640794343970187014098799863657585863639334450936280148071435226811602299720229350907244357105077093276281355351112806706820270175256491566659169359656669385217786921065409950609723518560266454935349365682264108544870491329762421385132387294297925027494957948177892815943601204345004697911447619040649476997405367602915032382614192725249207937746448124209579916715034491110940447502496470241519556184915393799397484735497575937982256005311350521713958593470931899697688955592077070317987186460151436811351586881265383977112090054752111317801123603536185794692998770514102743767378773549254404938113071712568893060026804387095598845376062355793794889852428896804007111970815931114698451345865269513511906998914550419931531063834452206491970989198327154149439623661870577885689382336384517772401805231226056739954549077049471630215122747994716146491544025214937045207707112376508219367558737394162066399803102303618102379271759648382915272328425697174102172258726625517892779414898344549875378369672244196011086512546613249474467313611566959455186923346490912992144127428200777602960717593904456687757001104837997076939441730695805401970701404183526652101476204881300438820338062742639189690321170266705994884229753638771426042791889343495965264549073188801626594304922563053769454594374419991368325643078085041401293549949252916596053796788164954964659143044949954922215825741335352738922911955512300402360132247467313952307148206689330159726252827319572220250221211677688826660893135870979024035778203331781402826221600626702544954157553523924724295466113066338870595587981271910629269128297017332671297363881342451157251193336038480317561005367602472960110365830575515110986903357074862337967816496229072722605372034408627331619035444845003197402286098818866830721442934869258303450178746716957491484071743601954639813956849502079264597388385321935109774215335899917575194267517946446519665019895928977217106999649161159169680406698971245751478815639346116996968241960788288410490230939060485010665196154781244871745315643759735298761512554629355737859198167548583741737567656800256386684418484872282057233763512616708186933048420908819573274565349171919722643155136352869664898694518266313408920962893065583026222868899840915862433017778018350869882540624531058537799415536870309739879606825606405694009530027433805595197061500058230237297713787078441343983135847940357133777800205633747902376034903342168604717291122667139203779542858376320118477813158488790224883226221098064068689527244609374876222304961773410515852482965278220537253428307282985974511268924783596136438116814325353052776310607313301097108216819112768729098565299855990161337763606957612277944708648741793727549867447542894955401074950017355799335958627178352327264612048322158999520953093665289467443956231796204246049700025202204286982360584051019798575478293623505130931865213379849672580692465923249399471317800914878248361332766631949779606069181715812257177508232142917224580711766698559590164770064859300081412873337089346565340263182533437140354503969508122163582930088445323334253578336868771161841780226876065262859768762784557984235229155658957291079899577431394705793216599557670771011208584763382236919681713565952259762096944309480386266247381148873427488740051767619625047454511979683711739366630766764961856317255304544639495461765565989063705744008902433721128223206683617356861982758826863132100448998556139681187041855722739783916323629147831843484580853027962609013839907426128586161138775150938646903200519781877171042438946888463659571518320471146513198399689752511940157799117161442231175685565897763700161065826255361818842549350332409546991405096640050839819961145924481326813556841099880647110022878436883107552648968471694512109543825266960542358774855401047216860241699632487691935731842365324567716474524256394311103678441788303963381748961610841007424352507230505293672889864459423944617391283663488689822063629786092787937942386316310759190659718598969926959123796979298041792408133467207813565452633022071699843830281542062084929669565394495327355802881046239414192723269098695674818299042074974296949498738156665477140643881612167611181540939595729848785381005442943273144233043383489431537474710581412011706931285325405677539632580130204991858898294894731964513625790686719989819169678784335535986387846381120527047031400826896309919542237555573746234976670364451285564214215997998627267816238162544315870815607728905444613231528038925324683092816029252538238514216711947837127589485670238178805104956972771891789563622930187998558951609453323261318629536940371211103328983407721206091377612188508125383858603119141030653549421652910808186226418612816564536719157140514584233424954163859392213796963040646993340725053795200700922882971560126427736324321274417693611862074411177168383079288078490925055270859293412152352676043209544366165124074881572859526495977096051604898929351082895316803793588331966242163800079104599703448005817649944505658953619070187793391766832945039873488617818497836247662145571086293119060045741108426290935375683321618381995368530504008946860808648766032439111939494456434596577488619424086901632462133696717500615608408935722046118371879253200380627652872865581266024209215699920530825239298923654441663113064629829508730273701354172162260332773277175611717421147462406204721282819454372411632834829630459755772396547087961706597246020338041616303148156665992543391486602527528096273216595040194340706392033002313937821512695637493797052925463418427383869907798781618853058390806503833727018858617085884276294139437375261065030835151947763799513625330571721742267653274215748010733802165018228273843051668793581108813163109996686425582964255517058378784190127907205385417843688097698970742101623339635722378266412642016662283735959866267780782520491423838971142652873536709297151600308263434985774142519637874922550963648442203190279192616287684899555092797004214906134863839409302406712081928187673473274144193066340413748590371457846753025145956745704535399923078679556632065890109077042046745861409818626006652227872141802405832120424518967530403882917727287535464568368840396362474221480100228955166704090031710794169064718051721162026632835373960055541154210179102649567779017876258607251489202082830854905519734014967133023193225999187884302711182162886264745690547418711460321253311434399075407984391933125007099429968924053326064161882896745611376142105386675602836946769839551335526489104843457413521979911601959064284537452918914860346610428570466499146192893240802838902591577193605943956100880776654055163548527773743835852694415044591680023540722745317131175166407126478059165390032542996850322334762079349738075780534413680437590964323586343475278654143810925223764099670086223019797203085326656242061407169954552690740052146305521601331739293577303526891519347037379380816947968216037783781933290591484294340022647880996102857766555391077838377923219615913887946572613754403326468953617930900483030552448073514837224370013322092457708392393831897719022078876500066737949989264120210717885766803319555404125357223271142939758338979935405761954491573259979527487788643272300551186315649934478444094834001794314594732901295379720689337598097013563087975962429094319973449478507704413765712640010370036437852051270266042673865016386368782866176767355691161812911271598120901401296176479085148585836548151550194668853349878518883877093204405951480287285698942381582232174966329906686160618655798401208652993685658546498627087291633592787688346075864430476291039478016227523976128560206539039645323670841683093010205980260701683934834731762747056410599509136621097728288790147543077381171904125842062930953280399912354964920606963271622093936909623737624121880535210203506213954270182855705161481447363780263233365510101633218350507401238767395096879029536557489172001921586657967957333714422863346912430584580306908571977261935183214332421231919086050573036760848104412060137427415563175723823058995361644231218206187640697608322102645529787828848367246766890140646710992929074924239528270177765196015575879228691244545347394862862775860936225921134570236403067222643265492886796131379370185649134580731969961180706223676698564844209220551655840131672895647061178051349205274171433666885433302212871612735499630974172245666263589555260546592719813268110265200624572910580880613962303225866528007397001337929806210555150020350459271253152861135176516976984905809801191593289987485563135282853122047118524650621533825903958385315565293995865679080668646921106533002756557135205291394818701704834825203549435049437897712762041619308925217975295040603710632432355466041943970428707381145097869903922742857806454677905875954725835902144867764769142273740520869987914452209997070038011535440346539595862516651102293560048100336490085490819995469926692055819567861567827806729904269329487851860739115775692718761797112407152986627105637356795462132899397297824198073534865247464965289024046827439871441184588217752285198587661860122032384146088991230000004609595477080969722133405075541696322383242696428852189271319954438415561123082065047009391522984667619710588021194969821838444865470456092504101511910330097999988268692185252725459640177893536935376049167703477109467311694106377560353768635759813827092846543471479762142715367378876160605295402097541310910831518023431582398097098475973682961317131352770902689772898486338337099152548836846021672317011670764152768468607525778557362163220250332845400143231261236694882479505208566517624473050036742884331104620469115627690854437960437170579446428606310812677624271013165039829630115934448578793620537826565473737966009995094507413427719452345069821189439031776826346718591364507925567591997187488440038157520908369226003086779547408556638663817215132221104524096615162012020072927090855874387064721763845565521382408468707804285763248441622096351669398725646840229655898772126524380731941469779645289219749393374634832718212897894020622461712375894627682818144717348626454156186637972934822313313001002824669005845660872568066641554590299449667655656882322133524494844584101368286854471205810590801750253055495434224345399666417684063927993857231304298180540293600475191060875195859262872240970167617270591087154681182977826004442715749941472950749814086358461840513674668252528573121338051708205509451232432107362148779158444202848821483239599000425929311843830443339677031330227218321703271135083522378125739885877228566588061121461853482872102473199764772208838897567464949047699655577460240877768486017863029406365495273422514610881300844358293770529498304182334357950462569887275021643239620321512787990173642649485606925758496183059746526454466745085159537911027171144028623571348928408294779215531064599072402471632032760018240002918963279466746050205766126036991531814688347880933875874305803075591923871005191528653151034178718600681768930899845565020913442476453099181067468083870570850817489358607517039999868149318847649707462110127454844552621026168105788633393856491910856739024128479527454658515222593537453519114945043602823436249996905128576461581639586573037297915475910896609606680443780139846528088907218410627086741494888822612332497458176131488934382807833793078601671507679520402120381388606975001501854773395207995784672759928058631661363862844720437464384283061762629447865683810822488094889485982669561589859465900364457302506090593288974170247255180060195849531506072638172614052463943158700304068063204246578875792339944270079500987138342662831198179423296810918495454393345675371732473250931419434792380673021637944755060062286459442449105692224417813800718111695908134754179927117849543690521368132034900859255435583723369764169641587289681653620150282032161343403344744050859906807582584014915849584139775638202366241297687274139470797997751394410410317171079979514090492219829927481055755226249375801406864513657559423875268919074415095327110368916335461154878854600167003255443056022679211179075860210469288513335484748368064796806521514843339489327773501140254688286051410098035281106651479989842805762582058514945515137643328122726209598951607890690145416572491974210193038220042213074235959677329416432409725709562642585324903067000261851312042882673535000307647526330713415844086645261079288991766761649966861316701892262549497710398784643885931928126477967286451087298559134598240427478137324512234531124774649365147095764712661628413464797659037572990381428734995053268690553225305738502695044203549368075438368025735772591338640552112156366432339004589030857178582068511250298502915737946323455348995105614921115770612028954028116630617418016868434007072568119613251019689436731953932288807738876831239429610343506108695457951975070735520444841553648168664357066825397004388485468514741930240197203553552395963738407984932701210239112098953721474822602749999720535484839869444485967985282710956238245412647319087297707868680779077102204231302502715487251685062010848274524109577123750299233298898771967711968206445581060698985384642924193524250577877137729532068791907958338742951173778788639111660885186638901853520280125775436518322196854656311967307335064880386547518897136498521885788751972481684064208349348574696684256098497054490961978838049694433388806462671601317365166034374484105844195814006651916684662657375944796663352236008818416697827152450758555185566397985227278839430624142438733245562826945037700691354002524304594477856494573767794184886328300588620616542888487920721101922044821789100609140910025335530702909500057714341838555006501423617684396230374620368134578785509555841438771246276596326652583209050134516150120015376810065949853513511289506911055390379779472800968984082905865330843528348146186886131349178099915670345841744386569752287815675741773576094995986401998215421430492766418919761700558450126454457245872917696189971291152745036021448200160488909489799601116783931805135822543594810525855048427470544915216504626555873169742478585637586271849821567404182168563320631999621551652851426616332011869462540264851009349554729885600037891461936725077437096507697265137866782064405187106378497183060551283497693540377088343983297166647890171137027022962740271930686364541176297097255479316017998534355651969040940050023590945064153044023611698419036381590491071821104657823660948718162256364971222895918119487985353844336627877101361870039973401669505227034739788728887245122691105339362513080659135909848559137177150927836254936245942347580287986795720002015153106775352029251698250190225668482783118568113587193954456358251121481080893843347590995685276137893998955340714629535555025860323634582583119507108595145897778679376046846872462718698637457759356434662879617558482710764200915965023559989354269131353287597899297373015439322126815282114520096306086664719389467275650000889507265358188229230566116207055342925480098784488356739578710578463933360217840549351917309060190109212146944212899605290451966186824631310390722496560487608778975820466343556986137467147304914337220590286380294596609659782175544816889781426408603363368470926806425391145555845064715606831328184615568769157033711621204246788004032065073706780873940612153617747609299674828458153220543273164112610596457847655956861555026092187551736089895799916212121873570213600322828975407064235639879661435666233782741789757984644451954142349681489479321978251935546007614977476733118388916655957365109523246525458446238521493694518207654915336328741589778351638126421328975640764856892565089569713330703229647735197910662937329204266570882575765836396868363509932807129289253670046796493669156715059280338014709706379425633775458482160400577178597901845670649199016302397224672233971444583872837452040993090666859624417906207991740738482297642295934936696383948934526608751456087952768046980692455398582630506681043632045842670662209980760450731711868063878794600671219203476530540728285330769457236752630716710435781361352057130626078737227229800284301381842029169137086889899543980337265125794641159225241281162583792538737229448156197266400814743220571108836566390098017743515278211109606070953154409954355035212754862774253378509349208517545244093121785699802923606948989411005442257386452428558396778227044866387673986306998929754543442860995714527529422957841553359903026606223583351599326624027522948287074364604281582988322009477172321347791343789111054600684742727175543002732699701828170164369889966609713986467860074441882032476435264845913308034595317644904963227316415904563475288892574743967833231417968321163101235276301741632924635715323664776923979509925922996952879320662837933587269302913413775959937669049490948043199837608578003264338556545968792391800308919184740077270064244707106900811179076527573923361650036868307581532086658376644244598387474197083609991364457813881992699518966452958941136075324946744384264013511111674375075733552827319044484721152675190441435121712731959890923531577880831211118769132003149295360845660522105663021906366134213900363119647592276823935862038734148435967885273949584377129007293175032862101672594849592525226711941632691063322663689695064856290382937561308696620943760309540331609468728178232127093422875562178180092082910353694816508221203882626830825894373355519186739980737465964660388088823079947888894697704054011579028312495280857656053889126208716875098310380953103166315780005792280548659250837772872954056282063800024806963368692828723925978956948225202277540969662623842720387598788654597191002551307658923935134012040225535722403116317000824983802668904545423275349940806292614270629949884576952519988399841784560105273791272889044063599341449213884596852995704347044719761563405227640186031254205346930958603703172334934581543646721224818815237710152858634208665363121788453134045520131527287249774798855534686134730528921576802302595287881781102389072391629109322799804224471172498265181171952024950063778196510103184355274337407673302605824254543802927703897538444784987303934313979593585618930832803109746774218301871651512502762608020399574271084247165496600352647324650510023932970805763995364117876611586278615420695051753025788577989799648470346909874311493114997470272469470491579919473182707924554472147722427707523154147600019051855565669837499647031723853098985875742777070903493759218964312584720416926687413292338807855890601360691388339938166346416621910196378916587762707552052075897206161875579445800906914669116838532279801796351564582709315651723847290975663302210304850976248865760462016836354794744181532437162089734473103938932873638010131229044308153660943618551238837048698227013589012511096361504759673982893325851717191862258961194555187739920820983907647109915500878321643424535165279626498845223019861858125566518314513671447404073463163619223667135058623803492443400490237239581044955003836448226187766872592036244902046318409252190168688782158148257741164712546000914447627564171638900344082434402803529585635425870903071799681286527965760742731721512325223235281176910546270067276670895875325164733923145308623443843303313484909273485580396522483230379043889540065301316460132902331035708496098522350504494510519004019955353783591417939483635419565589484503992573971138858886742289589783167072109067452998336103412787674369856569282416128718450766862419930297390354791645915772446273708847036238115513813389098485126952483243986266130585284162109843880623635021225633873448967061732880760945322373348709764786097651431154166661151930060454477725646198865337072385566379728657517737613275122189032748137822409393572625395636794401000773156235656719623122900030721107065123854832889047836946594187182374857119833524284796640133158953404161455427457209821639211123704660654424077180771123539387603939322791349927141976022413272266245937584998585420769660953426923600744536329576771760022683173612919681671686071086158538120113010371689100753597013970033411634220093162676811260543599307334032529927757687064903844812116143389891306305389095044776039919484273161550041424622975053963765273288148743796744783758448663051899118489733119625421575290219085369879165308096385979308653126762033541216538682007204461262540826226077461385716360278603119942577517258177927541061896129966125974992238705562329447601451841357919529719398961866488681151940041038334466096346860051912138988285507006151563294513066064042988276013648843759467926397801823236107102524448717747542235166103360927664743471812387481002982887473787937728321093196400674753584532232278564033606876167444366112419269694798169167870897841858588816924184714802648796990612184919488484294187113391917665227920740306500607340864099747235994957405034410279113987725604165749947176854464541812514207808018611171309018933605893977448617707000725678855284209781545795071929981552655041324688202183134254240519447829990703832052430978400679399346321091774431057351638764789337037205303365645464011726564424649907028215404650794031899326249339328068339058279636966094987254427709799845436649117896068026457766108186233334502161627851123095376984507580110135854880749540035772151573554858805486784359647820819994875835606479506259383260340078243158310072742109222583959173495195531782168889576787230609869965338730755849745982410345804099274588845810305438700624746550926610202483964080930896958666072378600910230976319767954074237016633098690692598055358760618751585566645439190102180333667307132089607357104775190677258898850807899893261950688163620313198525300952123618241974598165273362584266922001775071735829365994907486058407879810402700212166997049838896707876056770203490741432460832468834857398737257327685279053718812075126615429407764756440235433616366880150943674012633013707251320307149134879638856959920176420299051287771767314541201270404483088466599401732273413543846370261804751802107969870009423564645673119023272239826072588205760637840588705434538580113698050327926474623194111327258941293137979340423670765278303085964178343460579431962605281218568052725691678991742809243521140062893154512333134366645352210425085967482161105901582824525824199675116570541190843346367387951974831959845430296472620617636424078281185509212082094425242480930864473211058495720675766850038541264565037061396748016434847389601496271047043801763114947226527541973913702530166453657160166519866070199227204392392871155341864191541855462670035287276803887103356596826625839863318670919994845042867852126837674801908509715503905200774243253952034016357174732338842917075918715203704355396055489758866394542427821904791856820487334550318034449451285382988078230779236379926943177510613683371998452875581673116731593706263583456979660607421093516361983888318024685911900606085826812517145993399632943959325539080194243325672912502485410407482187919679371530689189838570469271769649181645117966003372158945198567029170386144296968161739132248101421883768307102928314849421740043907389343812236777307850618939754423067709618874103973403028600881647589120772974972199625590644981283481509604306754941407694152949841649219526114751931776972098327122155439414394060928111142821293713938337699971880578254790227829043528329716809354168674527845758215305272137054286180115573860381751601379150858776031178893437367506741583222795013596083844577501687234431428220385314549212974579246667615666468334426217532375686004217837934459104559073131620695397743068075548109134628047188374657434630519647089929739187539791126485495851131102393934313729286159678120979126140950229831772542624778925718735370357491499105845221129154970504732903526916119966515779983841825114190418848647297667016526874829596736346701940136907074169456915336441094301486044698062253198025740642405629897618093762122798007831424398734270523874139834075026107475014621949040854627138097008654735715404279939012038744626194816052408249478917523078714715024329834945389823364310342169157440269506650636013129665225042825000684431486302199655940653789764913595906533124144231046466356156627961016071280649398414931758169296556611631475753736836495176617013849995055549701020727784262274223542588403635026005187466147367058804511710313302927192444957231910329345414466796456338379992392065912397499840393974084462402204735924418419852353204210112317704063083494004407773446766973461448446133481433352969449748679413195548631911298435795621771898961304264102983689441260037865139100075833835446234972513058311858431560316306225998009959984359171444612114808346747507306979283598614219794691927070678548570562617788133247963601740794796468344249253604609738406312044597961443777084410722279771716598071890939882984471944973321735168430243326922091577881142769131004295744403107225805364196465430976887194446306640999087743902994949206963142657084495616684089583715179384427515813785899174837428727212759086228366094205927426543247753249966301268466286590184946737323686510152001079561077358879590930587924760217652195110653913172218248869106680996877559934219788234407955645000950249656881566884474239414955920180012921170236896935594227113289728694850673030908100541890949609718130186728114424550958457949965851516877192814826924322729207753739647227127665880085049349813822653335247200371488901744611915716528296897117414147405424469825015475139418622411894063225965111078164463366033320767661714874305442728429605107109420548214134932654454446440375564491181648499477108630650160928036044227462564730738790005554304326895210851053264809585819962196486905922118691990179766148461402531086146261158427782198929254099727495388309508078552841107146695570768369676842196034523799028586860096402014385644974944043471642541751639492503218302335278171191438109193675468689494793239837282756428337620711396870046333389763040632906878158798369615194376595407988196120781471823434803994948185653208713351686570573537272355333426724970932575397593672056431644800207923641034217546242457428594717206078784353331701282237073021285490946443870552281798395169849212492131520540225622159655619437694113039456537169458741108160828970197994118181313067071817334882089721854939314502814780926274386269147635838082223311752844236187180131385856965685801795673714017811567148596287416511990055616731963192824088604682695351291303712879466207096487233151371727650391253083462423253185572790410440880049822169949118451990311353074962483393613525470945545560908984984362953781220450265128761451325909379451655399500846920980151129087994962071001642153327954155560288109030681116414743375582253461220919404975142892579148739851893839792047338720894960229252507830936970464858676346386081018362271879558223883491135643580149682486791495887583818985378277959763047375140313426920245352152052545788806334670206404032684452118298933933857597922870904450825547123573457375997832729870977305898383514824551741297518400880460174497411741581379195078274673261666962419926427529484214301832889174894209725547470804237330147764651039145287591891359515535353935681599434565164471561779152348112699415729360084545976963185339644877376974305866187435167707567655070582461384522871738149679056182523509870442436236002810651439289584440766201047338804966682851324700938951201892083317193044879533952246065339946547994220815241616258575017030979905225912037218363466117361734717647494214988354671686298579310649655118994406727539478409416800246971103094431117753430154283900343308448479193480115352566336751239560334849095728354096779508362271370932470763898445119372251735475490060145421374016389547095858975205768872757879208318539190744812799857264182833879207566357631756862731833685835078746621529301577435920090607744317629048339872952157219842225288375307573577181509333523776223277064199781081571573107508962552355685941770446864958393990373865306417237787312076429123447177716149437052872460589364978807020821510317014643189070054328414371305822002847136057797587785830882907066950277962510574745608525019751288190003256516994341119691569088890696821543365810775043056030083815221663967407075600706148411420054951573113689340480855868631147658751993187520496103611273913544963613703763256618300157104103311300454113948378058600891989092337148486042090187410821893473048100628714796944766911818637499116912292953774574929525785487864199774103398047779058739349960394089017830786808763785818810208188868094348222086748411658724302556345630255362498770967586336350946496947327611122612639831753812251877692278030513294429346989126241476174971776604769835470080504377388006890812275901702124932741560349241424937028499365260857985971455041677742629785542592064458806248132974094735884576577137439232538432639891995148606607862658085688957120882905945567682125826107825060341213262166014366537152403169681541576032573296859934095628089100643174718439401892815142514421192091322237292773447414096239942148881239859358832457283567581683156971773303060365035593518906952486400539826847544089573720208282573465462249850426786700796995665181613454018719157997519046377492661104927401848631651989267362629854327542902874583895757211930547099968460721102933867960122627081846066767086173940949147158427725130833427869962159533208070641176151190311709749962278461165723846691486046833093111965598882038980756996425206987675015383645978777700192378127944687226169797478796591061889930866694306922652312226222509832920124072230684970407818761327696087663094851108704153603330857439185005951613073465672336257879930105002765775281373039490255332175537033285382344476123262863114890942821327522360830531262380215273044056474637367227729086382020235085336028936170285943397057267331423877445188422143337011725256034242799686029402768650091174221504924321722391416902475047875108378267716927571556379564480313222520274122552854851526154868583585102575430431866355563983758230222890815562104975819329811706319575509681022685258896235415593021632149097646102296651965831871916744234711386990944600485947081167386724510960443734752823224952848504519757087977648779414861440117476224897995227270172937812036731390257828913437372993626759657150193299530750218251860020577245524784325478559504769179995504007069522740202715279982117717204988893146277402154062804281015638554502457602304020132399001714346522958464566546236575850051606881953847147642714540421090297406119043067661537547290373753000937657470107399135074466886593059452334001506920618427980781303243528608976230200251613686897370827549407280730944056255975642190948225541420150586999860011472839880223856265173880230650092885747781708446539940485303701889265601437450684684410813890139331864624482309224634311141828665149619053415260904064050813641365629266857972927081434416027649362066409942516973581105293173194072662915348958304186261474182083101024508378664602609993892115035242210091227941510023511156371055799905289045957827129028459943242058371522573579724482523660264469486843515204564909945209117147578677471026969904835701457300731423821912062118431715143447391053566454813681898320627395044680342179658672424857276016286052114068229637850176684685067718870538066209543682760188790801261127118853538580202600720442502931187737290466405832846365737485137493778085882310857673673856361253225850681732176647417904904690276661337056981023184934022495952286628278660700350010038116718612600482126211671453921561044111796404157517147524798220202463760887753164020045806468806775618529760377954807795301285668647466396204697608665161378183121851411199828556794225805144700449657234656742062672337647425123005588988645917606889407471046013260095189351297589115422788799210905241102750303896121379232397438651914171951743600853775050874582016210768846793880876756496071685792532479969633638792516377537503506555338765214970020427018471253289443378064184465148781744452263738485346055276243392716846205346901149886559850235073759299634723222672096709412981191556133818360857914514261337911523710758884072673283127082631348906095456343794047039356045497842676210175010436127922751774054787980536032714293779387559148668771543800182500679124439976878532219247528033553402576446639041441040613319606239856396650189617972885532268349292553975383131074145587769944735258406930438151570682272327053320163015179635490092320600256525419084221384315394859794162352358820822255443896915015125828233026776060044871041131706361545908731941722519391906217012042207752340660408329932655169616059538465963509022452232307975126915938719060735056481574360049556544122257942800013043418345333203373096091724914344956420624503609281008315821140735249087250653790790684640163271474478839527550852180330288311973525943450634329718074476365516277360620039761900681176232269216242722368101614850768607546958693870856595040564857954256706475171195400016556142471626956378261561648665910433857400455400484615972699877216003154293280692051995485185827279572992263259554544165416562835933864717575872074203604208638101062075796305552803534338740985969343711579284058695410855274229238563686094719933292311661015055123933413906219924330271007045665453291139873110769064794234130709806171366636977235775356845262276604343551928191635211633765081806047960322786542153580759996464031607845512825502387325305688464374270604610105277188531500769097013212170685990740722740826674731474386172372072070156349511574199684624398959728950296236383547624640983870310741004961937502966028902273313929200005942809819312214190567285199728963552579202005243209581688056074646988752795600425473991475699648672933798948802628069998370463886586546681183607129911090154583587844642964061985256573389579232853604760613770110373854424522808209125005018334825488163178920935390487219696299144013814392607046186054198473440304023463988878891563736107953500357222970858081436469028458679044133492159524311650984722372571734695166829857446206876769270513532570990181430455725707424204375408459817564609127147160870710244683053673404898772929590962247854386923671396814348995753772114215020441093894462838558825959282920199348905341105446537494920297498147590992714267395539561295682248322027381794079795018666583032774665228994353366858617815894796957578332996793170269303151833295582550003680547132449960609798668389970306405639619927371740104170117843851199453045758331804237916603143384192484880009744646136232685362245330565019711268096681665235211707845129180697153494049076696672148981037893245318717614916164836009354434361365713919303789271660176563813086353164448668406353084486841729667167989675459616484620434554012708278144640188076030175779681806047942603425816730983850696681907966776964175394386781622424843115428732160850513356670161262418482577631364748758051452347958354227717345763951996066998124823947873066178578334657792956807670614148830007250894087293818569668438299528992209184549306240426573829427247928970259300313615746547438566692618858358144008654380795697358929004869068011072690856848762189827976349835026323039971956132315158132460974837363615907792661390816106931646079362669668984696961780928126335034269172799687110151982927615259077667976759676714347261786896884975169142784925454698485029252517446084295144508409077427476242068724140408515096898242526863310153450777088574563500391902136993745488354225906719031691346620975833167212884315394158686731853629206661749791591048894946105524716810432889587930998350089001677959583389164633314106885867340477815475230155825008720483707105814389425493457441080275811047298329073600702119345440912247380643620477086469540676519731722122565326543932059079966148982091123736963511245711538321069559579679319113380560451440957256582311250113834223038807101939343427749878938637884579860588183217159270416099263708221404116182682624065554766875551697188597702434537821295250432358234820892531151829787077994225223627593479210466522214755574210092203050347612599044612033339202327564027655243054882107247044714755074630350826196751051896528942540524066733265233181182640184705500849441896550867370048263178239975413144292445401505391513136678958626685338441324666693560646836238105683578256996676102727890408426155015759329571070566770328632653382631101058440706241271036581861220980236410511417712252326199141791798417684298318337857506540487429747503219779356743160556419672147343965308284547206550820172747972495152010706669354187879625008174080801238510723151562765650539482066078098158561448527075264860818162224535262681172033465078520056204481646975669212557598692769580465565714994187300334848832287328608351074140796518130973312344558362292678299735254239865368024145694267824837385764007220797721573730341475442815794232352124204130965618448195147072999186227924537969227120553957005427024583041940325263067125618704800584642082297097893876469210803609493654098870398607874656866771599871654453009455709002011386626718235692932906757601481536560294356407064741113332179501475231532479019574760858122644064656266766520824512469861822176731938698368753339282694599721675786633539866076909584219510311620271497824184788665229488854024180476164395126271744169756853835011251003957243038699263201041723163062290354484621815593902093271316650247251741005302728623604495931293370856047076264682415813173205604406922290675555345302473110783944869089077579228601478843975303752432325598539945399770064522499314796664414302069794073339656451549678346713025263087937221986066309895087947937078613218309845835363620087219522641448048943584852145339664828201921305806488401423350003637429086945195978897276443946704334140210719841536243016359650476960493135517314947765509962450823408434348802082071176588282520850701231703050803714538242807642284433790005235786493983089447848220523743067725800952678725027190549646250585350313912904624360124758745689207105541401670859212568668334671596614088011172312562822300792074740858641649376753865282130465104066762021877836101509276133668555412663243232510229808224658134672316521058434856912427008373820480621747104569141526038365136634594700204618457225196144995085336512689578770795141675021951632861507602936213068157054510344757558243039434149908784387593293933486069175383160386356242434059864475022089405341408646023667028216123175119373352717296721577390813598284820917916011534427119147529240378152700518032351419128792539814130814523270702236349187950988857826460960438191096910465216815777265271065713779819471892248289929527002927428350901167997631278008367299186207831531222022990554611211649926734371578530688761647206966206794242288675658653397309968401494822349700526547406292827679671534837552734689610226597074029831735022684010412171652438808720728152798071367488275416719986467393469711669639914627192596653406085187247716038734781630695194129820091708650087130618229609042391636962400231754237274960072239441168936208444251364328339930321435644491888296287239230952704883648009845875806045442267883108269373409005429458052480195000083860325930774724387870504968543865486812996552002749506965183708278980153541677677346284500992145729878889807369219672519292127005844822831122950970975473529865177355947439271176819674587712748453197428557431717627406396475941830322516095411911490479327322298613892291820468787441191901588321962647226375018309424788945441603330438173726509999773966116764275084503826252539255765438636378470304832118308953333472128649339973091593611706052737109323453439637364300658036184588109296127923246299511870364680107281439456585922562124816444856104409054815064606639584515065592854555822650993341331024757390410355267489357856186393344826445880789503943358671846546408836615551649532360105755610744188274771056156121044659747181266042058373446133565074713609774829004020172961091157041431804698159577117303228021606576852384423278258078445407757152737738467811136825787213014905925098936214030653212173409174330275789572622709589796021353094288149296359950369675848567822390802005398899161161629409621098552260914137798332331393775318446308734602293428655584601357933376777585204117400099884564288353500237145563998468865256394434013498336667122770119951668481489508821651126845709557811137674106623536678233619935963353372312667302057775632188712896150211979328084492436495963622025807276732558023992134615961044947178865033281525546562005144351042853694374682815595878949095692846978466522975255978194386844312415079334116750651407557480579545419337937393133784287453058014895547206230492780508112593223785245400916597482029037323386218208992718949775993936508058461991256445635728238611793175466715281020255379417167893259538419822445430797723063105262375983495831323274031181121576192686517696898148061251602092881821982539125658495669545083502302729395963606422558034134146507549840273823919253485129188919878811568481267273568628600724869133933733621956192589927181926275830866239345732279093747907619366126063837441515252785573542834630568572885885112681746773900773102301148789746930039077214962891268196245101972170459731183541949934258853614496502305254955280153708234411230190649420110715856981833807177042542429296096868662068839472403887735396982403535093932308142846523154158753301139999667833847117705022218594142366881853849888785963785413226068611194243263811698402065949350184464362488718189603300000456080966111616820032089575937546302490161290723076813408895893660416479303394804368593396465534032444181572360211770642888342358400535627621056678532097094175729475015783686638364100375018587337778815208487247352973649858429886681912436232379831142271319312926696285910950954701350886832055471970398884963017233033720698122676130985459314381025089659058128214750757406647882611752849868178090460793697096725589353850177557062533706039789499857820715813885481575788650875109700065690655524254213725686229532411757131326590668902756180519583461831315398677039821909677687656572647223573296478702338615560328337064887362531625342495695335339163563433733435767938280392475291790402651230508037839618302749447160704618976915231860437026897522455278072072537161591387955119638789271860899824512092194126488323360344778747496385001200030354750409929844447807840650445278309918940347814310338699416399621753636180502556691736465921102181538805513597313649090465760624823430641970787087545967549092194449681273143575828102861941955692232846743176672106568759689643470787215424531141811960923011561643167888990916684797354936345204591774794800297600699490925554407740587539913417871861108821244325725075639838327118279885364994934185946139194466090153860509648473300968815029168921191557378093361660465408768117370991664212254912357454368409976473802514694742581826373210661319445238054679842467848865276217897947941336176044646607932057328883076956414006465243735649614753986803156037652015567558407233301958624115056252118527124641871078224979667902956365495780823269790227756163500994788792865820102634821962861047580640571966689293434726746276058002822770603186290968837000712121414379719480731723790645727297363857978427836590972221842401928365200526769307241661971605506457907007386519255843738777444368259596022108711615816435406112027869794423209147878535609584644280049891131282568123695698819709562273140951851746151323690907813937686087080908808370550682174069168550535502645101272886089079006549500930310854394470211044306542112304727025318143169898302075560953725964207577417022655587596285855038341326753995942383870972689009491494014630362111040375814680857565928586982958737335246277595761695076700881783163884545173509148639904707349765155666353504855866372003822792723962743101048767199887564069897831213910645393620700451541555594211336630408166899346900471087400930324640261673208593928281938580762480202467869650093090103901802450145730723888639980277463390336174616435467447173497215770213785276097764746901530001904369611560593317237658358322074546424228242595000454379131687229677222754351399492713388681717988507447471994164117166359399436365257591009633421821538622470860525129224542629759195120340873876667557351478521334672350062869967967921746564587855884692772813308621679542000185267116318738175332473108826757337241918628026797206943702120457947271161400497218029875457737714822745845856333753200893686079811753691069670140070934263002580321818883839735880351830076960422239434548209260964660896908622705187766015832242656722206274994429456855843286241838675442025690784207543530907259912784827733755375239543259172322087316804491559178534022901961882756253363036525449997396142322591311371020081174079952619806382590147845209449142831492804011606233363202736404798971174465994163695354844778039101561199475147253396579448936770327960008586968196224423004360520981252323104452659339444668839110699174520662025898862531103530163040923984925662174842593927754909621029441568277099518093023443459409254680758003541046196189448243507109611652014831861756256948571375865947117439855530692128740521991541115015946005686358956071322703322243147081340704403974563236616628940901514005963767405517028747803324707931572368362002533479567803298285006804666769168217449461056596668777145737728979465176815085413229730903132142867542925693678943468771639715655297924655020735637224873663693594831890379142166274944441981640127121349302859581183833638769611437768224213134196308090514605185975254045774468462013664188125165902528944746453401907935683024510097144001250799587405394578646447729332246743458649728441538714274510650786057276739765567065811940510034518695058748477511810884265515849524250347124158821064711709390735424279983734995549000420903471104478161563854930370741362136565065844625021363143300776076247147175876592775704617127626472566416780011294455091460884552910961621314773968945009788332638072101365595061529459463022600409362182959749152894129871348066617157218237667920767437840741198274746589192706483609571487970075424837899963654689844793564679443739610722333712838130387168791320186160952096674766818182549651843728613968159405973674322920991827929476250942001600654843501962073671361604100800707763811447664903734440377211776675058304509808470954611657633938355970559962511858167078416530493801205120620741068859774338230466350031380483357986966980110730229527460051511530987667348347992369590011035634655252510006421568022996924908896922794400459060114175033450281170780141498227744913515198903219092525245945681308323359926438886946057662423786522253756479754639912906762810290736530515639760674254693394165103376655808741804973625836039325426455089288561238960644967585889891545139651739418009690910511353882307603052317580808636026712074825169735883826413318348562092790154199432014133486055015045178888498284919987938012382053440341945452332116466756717728741548563742175411224001383345601466871471326343503757360339100341586863840570582464653740069823850856260073040912755563565114037657352553954512753283902793381494635493646199562044948109455948665229686813126986189104314184343482403869775993762271793183709129219321514556641713575415665470087070708978192121375431394891995466939197238739331766188087155580744152536672874182110187336071637122778972088852397206414450983984993595746993615672239179882207080724218750060203689893878752810596953611192968360944290209350617845564255833910466549961615048972760002210200073821192514670483207915118650364900751152800274986342400006473058912114037271281863396080927174472736696789211774364685351159033495170328340129383301555192111312923995824126901351904062374755688855544573894739738212191713816103320706361917814062757451751805512452532830447615959140220290064666941004754814787560319523332377044696199132738763686507330728526847099168628696985026501067274359165407338992110424543404932823300926896180230237672941162664499823951784328406884252420320036885926912264277442203844366583684439479642542434779081719301955544129453695956550658050489798653827165952688952615931588449319839928231262659600941166193526887608518957033408063195310636002217089773031739952305113628546219219248971891977074943334432951927839879036809943647479396652509473240171615843239720744089576038794709258419806016839485549022513099727110345948663968297469391776451274113838778110693842496466550908753372142604822775626084289454359025959364446432395490532926246721832634118656339293707265144935528411150915448023069555107650177180080967161890688132473185552162510726816893641964343870598433177723934210314298687348908541775110283753604453715842863003929500340946086752087100228546688272190991691671735760232298900090715991656793123940072090616981956642862650794918035318903438985445548779666155439441278753976663704900579986888937165328007849753222032465044122311563012998340101003433520054640534666418673990368947172387117987447356428974295228381926363306791156334406026136682467214582886069872445923783265313383625147067368777944879027366594277164268035305852991909057483229776791871375781319460106818172637508781538950958590308229556761217276283094632843065443252588585309572218899988290915873880573357637269859160099029466181590734345530134234087982111632145341215670019076496154273746272438014377390739716465279844416326300065136334076777862771090932427571931604295094222920567695359017050778444962212026701228185329162899181053853391263576989293154244466262106041002076287106329302376531241273268928381657719351534614307011015767037653062653038394560301601073624976335226321608501562130365985407953349040156902075231738040397483976050871260075438035461805274735657163326622045356380673130621426679575010458367627296543615496711137148155163543691717367535163309897391504474484837450007630851261406090691085621704218830955225789365796203125728365086283671238850653425971022268018382960343476315741731384995146602307793438420154001573944633707177976608937840728794293150217992424244852447849835265233262642959857677112463473926798304427133235236841107782406967266927558966389259775347243797929253245244297631419640255689908679236148615779316790533731828685802356697544990851607202260552812442187917609421042508465552728209562515590953585100356845820039772893141321477234754476073116833049408450816336435390007116046471798875199402461020206763312022691737626548297236906134674822673496430512670432226085181969393165853507266172726829525969468358872064395524923274251545889458049616336972944591900226671812246028388304377918102358073253756067861042139666925400060523606364420671176679158054370382528958805634465056830286088406053091697815486062672587599643062113163880455023133286712288619080062592748107474230441900005434318724870340322244474883625922968055513460687914334064722659876387187596806218085054528701939713066100509166156565912671303933777333177443135778270283884348707060414246956071125093205054644151150063429209436601901537950101068727378145561913108826392881334467429919868939986947803661943306649488885245286793676391444610603239366958505213319690396923196707049253129743806560183820524648270455865511524853456408601095818869305236307212804495172577522576530341747939815672971489811512349025223391167563677373614635150576671273854981282766621448958575076278456784848104341947173180241974306846694526931763014406558299108876504366745133849699089340179779119002281671932002916815686518731246623206907672871828478725784569562604020280128165517816432527188010771235694664281658748874952562105192590805133372808279454096231149265634868041772650784475862129017882699283112231053814302616309328690385928337706684429724441565949507318863022572655091323896430576574736458939016208987555095906086620979925109926412618172191859128469872504101629087732816131148603382635217534813481224669386535154948100193623718669021024104475222491763275388154578532595447448355279952224798614439621010119320225848229044358982133242245321171301977907658450508273280165169739535295752561809325865211004814250215914445739876708967782644635488871766447614047828909055633701871876312617090781238399962743358084575078320266875200465964955425854212610670746341220357991643349592118521786773533607423044121958923525509236671710541711882883291988623699728042921423472119805073223526475362447590769400223789560977965641443908116154609768415537349807813697807236461398651739202190654243416194943882882164130226033361059262875519982817885516116321166777069420397468140434150089568007724156539647410564861458922714619359600500949603518851488739687021190075806305605075289434747065094794265918643378315937693479068192045506618895818392524955730781065106737212375455713071418537179881972212645022413494777401908257317059383486237751210170161808272799130812936656246370184260338624599650623188117109008121235702320380670165165628403422261550302381704772978815610979211486542733906342579311345231557950092960788606544165666663945110705063691419195777862319855759625196323681555690229491325219594546344216896185706500196245253153254654914274656751464847110212161249030860929347771798941652765933046766300334158113177162418984712677006714167576772572726555753035058842584981459959034846342937948314030623084755366839537217458955138221844043871213368048880836847404977030275954276599064492281883857221954636624146531354851531753961339797770870065325055895558678711847367989634072290964635460486838639501957319007606178418147670243244241509352808309321308995877005111759661447892235602406946546013954051561895823342844537371834004491314752879146510852784315500800948905913212051322799266758857256002339092326785104515749085731078425876906830040241191845252719067717949863878268411164929326717215045704957198566340101453434070330881855919104991280816962828385362289886247500878147688348512797225404002269705006960479180178553890159197728471610359057206790077353042882557974530194467239097223359819546749102246286321886012368180887362664656191970415174665255232588305893486560784312548088009917864012443430791781477427092440203741907702682746960595837631756477302127090999522303321889296996941508376693745997014758973878968202725530516550445686323541590753000325146549652942933865569751964735744899410438895032084074391133842009414221145629145832423062148625096742583772016334411922789088537554078691609375249489110368866457694294291148824330094845535667763021885771806295822664007523723362601148734389014945284713780440259450707577665868875370300551768320538629404827730831325955582883123530446459709213867089499551434635627660497770850725505958004078016107461740009895427300083901702330719783781604759167623165600001993346165317185328463592679300387299209405208916075427713471126034229255541289715972308239012122089923214419314422991030242133268511205130577566618075552531483761361649080149652150087471473635995033786857292131166071504355833786738116859907468387510857559344546819839081097525495421017689525811766604875490516892526290458881087504679168689462417825469724006893830904682288486411573665251377793817075739768013113073205440247656628256859920212112605091111678775156010478767727458655641561889488801450522239301238073758205856468164585846614946466184580894390802957261258144293442161534707861945425215368113727235325974814585060252496369294870501735084686507470695869973310015074062932258707375384689806415921870469372079850244372491666925923716728544610269244410592434563211138357308225328375033196975691744703644237344556129516675898762623871516602019932652766691453513027634728277248463536633793048877619826399349404424136961670464386377428492010879187469741284036856816871919944232848490459532007098181809917648962326451200436471280251206542771377432556650344596086721349629804892214851126085420965440051175648777917844455948241383796757880497228184893774309163328859935243000207888154240710875131494167025010680349086838177436488610269883500042859171121859167773879599109786700907011909501442150569098758264676317535665158950711640727060974017504252855576738542109538672650780825159258081607262641801815782701121917919888807090050300916190831256702797182126792401073594025767554351270943016847319926466460908086974885243952137250271534821140875092445762160883079153433500180055055229767161213364968571101229516652535695039856496198832639991892522517972973824822390148469850545054271817181075613680278603263123060560486570944223511640051264436691653224407254932051045659000240035335212442797371472436763414975437235149972597460921662404010636701764751707030144172025707291898124452530499797078057521106951913784164365828560987586539517771883127904300883441383722018623609881954963560569355627107338408001960645998864878432898489054745954013028422521691743285781652401357917607053154588673932304959940800760416081073435902233884137842321929137208322861137582873921658561944113150488141207527387917463991205306471410123413890432589593225172436165656971726290908091580766025455409438746127758874472843994707234289112362505932204693298896248329274307805091717291802226067798918277524200790648590758489643941164215088391362463920940212325066363824958839769084636051989494034533960777860490673285329907293174746012203888341221346308348348915053571657691915940230775098381663086879949653390989949513736346461783587624501690391949216137293625620831574920605144997592908854446398239451932284743796087708118345212640451026606792177980287495819371171867858358916455696932314429378721858674372583806433612623500478552094170649399062993014439111450125026099738194249050514936990444579463232552426124973754050977035537731106427942574426681158123257832039925389451398923981568539189597267889270583531063821331106880874246175029149625718245321753464075373989325901254708930668173263768393440892211245011777104555876646220101553126503229462622457916497183691459068942880349787086258480956935898192420911828000537310345969147165608959849786492542670435498828706218192693051715603967960078110767522103183613784098832052403857771939095443667351300911832871985063806763304265974835673561508300784777887575241149496993147580027197382870788917450949100506725785430632358814867728138966478453517882576941399529408889226106396874839392235894769757016156096416374879023625112536986199586173030222538814746298511380391504299377557178701244361390315395600897748960819867416249046293352317964306364941063931307410713328803311113084394495008664498232999675524089642942166401635495992881900107728937852656507814921497335274823145670659032545685869052743604443247695942784091293487147286632530441828736769556947473255294736156930942823777513567923314560968684747409681752650794882778708576849705049257637726660975837121913390081893631693276736615152078623117223023794876211830870484142481957367072296212500603224699660308300459298623424570111520562895348713719835676457412559265607190196792999516144737394394743132915883685157259675119747645973942676938365356645244829650042775377536323427888881982333533122150097256004583447102667075820795977090861378339268502485624406570693925528932132523372287838783986751952226616389822794166528037338019028392397178844734707035335140323307920502360003988978005167988641820736133760815359504383040777537671899400549844428966034574566177674325703771330040967716266069135373584183990845067163670576279756116671437066852984420782844528833289919027718260707015099033425177280921353543857358689779491725885606704227845787299059060275822813969705655383671902708624652482649454405422183375590441313618958632263101673377409012798323309699063489586331409610414387110508524111699281009775830740757356776019114676567617093087434186623150665459414704955976084083117373952494646310087289229813485004669137982647655709118334091559328641417484533228179323690397431560612417769190030556608890775144661355223532964748862517967246460918507683399376114555975594328324852885800859003928566003900765283175353482646341813170133213735832038286360592021545179529835037130327952516747795876714473647681274279382910533457351159772919264315900655179982415373523302815798785862511778459459431721521223566774523804038448809930361582075421836248789047997256390959521703875005633172329033958402053992679508722048337824915257591712908865051121714425493328496829196740117902920008745363713477571900704713806759754469034041925404507762642218273769105730427249315120947767145656925165465498483744224146321257148744366542515100477127553024312657086263360944749590596686696360643845679125555402937901811237819842621074419493005374325823537513330854232613307038657986802400370207757560516372722780989692206912588955606400108043782078905772089554602800302382690273701801232071236979549936425999538748343697954996072169776312302416682954070494750505420734051316422848532600686562820242479197957073412164716422026649570189569357410720040701057294610211080611273259119158483179578970033069062359319299639725001947069160694971815233281513389881674571718533963542759493743280917188099826614194684970788543125888359743379052145284469121750253032645916169177750011634691653538342600074439382241354296685845479914651918778133257368877197229369219151865236557548784165205605073112401887622045905007300289296394858978973796768709002146103959646800851025842548193524697971678352833126328216831377111116409763324670987330084502600766531609719525186100663615035457593680694131053076661630460477210784826230159176528327594191606481271314932288059502860105757724330185293138451835170734889337078416690989304476459257591394504376785403528766830875336045640177997537176214504074171115217088169039294623072812098912120851168284036776538337646644175312431146253914349952722702539174628241991905498993101996693361643802427071195676420717862588038534665336704698497073481690241987801473611890734738991580978163213863455010492056067807884443454860461658615234821095069952019510428893803198566004283958419818377540847150834273556576374699418637871941977773579053651904133944851528781268714960100477344302094818575042788276117550921941831966269876633786980385547626634031655447555738539476403698190734037709192826915332514952702083494329643826925006772314739820123206078593704996795123062091417675969142022071181751356407666468354434395320405657466357764456228616086911613720233550869713296359408012558632814183998316349914429311053831018208217469122696261531653943428904001994899326511951929053854013482599115618756406979886262701189812170849585343523393111131100137364170960360132941171411865596059782958391511444768064699468033984215784359227629205716820477132872364757063490959446287283800240585994406340825637956801314386114093088778168022734185038116274579028948570444246942392716623690843293287566142541641840143579013147102552262212844353298701503046174679572082549006113088344098949369348504916714443839036105209819783850342795598665529650647344244529511649233336213594165922834374578046086379717735879789874629036925085351202534080332567003071753937083966288149572180339225117069213527664455744739163686864835550816695906156058488655991722312876842347033633008972777785728890060850946090463867898718157132402447969421975714144295448086963353448807057007654735291782314304272080696629883507487409806220920158504950158349369146258191461423101591084711185210626831865966724023720811499123490015018247933328970891908282336011552651490197387489233041623941072287621862009848321101497095085437898561954681675535246854216030790702133787832758712585263263438440975269147573186786347710826042467328735451433561889031108068730176049326753363507957306878134407380392079880136934505717011922122350950939933646128358523121954494583048339318075764134606848165169062015460176646241099591106883073109840256884251121434466336009189524239163247570826201167179482328330520153460071197495263856088400119493841934697378609951346909746279948490437616409038381948915472204697070960517092107959941307087505536254328232392677920960093928925225324592555990703279921542767312579091920636462628362649297010276662777628752424119829211572682661232886295331995678707334010468892182589828408442397894610466030037948686300396804361173454815525202651702349397599165930219546397963461913505431823756503974597588061398110569451707235881534053969480461253300061606452351249414472015441257863062128518770175261681772096353046547143409267295564535807927486936490318383211744793466190705430028857223410632245417146666262241463629970207115501081351733750527989850834196392430621840907721046642252953635226019002745161414687694869451430087143900063227351718176919448253701647881857709808684730406380275997848253703565455171766378355672248266831407682620647447887259510650658418009504140760271824178616497255453151495765040232126415438330746153791527181429630967785644902766363947900724488760263009804971567415635104743035483893449290891604560299229236505662341620288342494569440363324835612510375658348029945988321978408547450729945241696063705695691995218346250683014007644457833931962010908620283116052679108541589783084446234132716753885316351858173175459135433772804697634166963798929534746196896852470378517070882361473628692744406449241252818135776717968065781757911456534349900061705042976418023670274561411975318417269205634706269616010363059000371540638092378917726035970097498753779115508971366153139878436308212436315710356486076397747006262468552387750712145909178708130453000631258574814366258835795580728822217330832485162465963697215214860389668798174592564294183582005002672426309732138190080855578721380080915766916436509165213565155021062743369427693490832177000205731795867431129043310726209241772538761132929389931815782379096103676677322009888746400282920332575401975404635477260068149618184861750521430846084664967310630005483773592659579670420497307153186903922216785442157459127462389320681505354617526381452241993236349222715370733234443952293188937020974110854814813404907100853292625101586675596978378359236157260793408791704584036512121000732045257877398464382640572323047874447326131946764580231709497892915771017112743822079779729892936366855341673919054030841800184987722176215958720029972076361317082148071523939051429100308474750740082646380236526177904041445565058247406292901038080449173808891722413141542750607838644317265864317100952399976764294303983536976870695507250584973820701875388889035832504281714086788381363570065176595266660988150133318891269003747903366151573636562400526107554382370624043410106325933236064386088119442481068150259817206927798207860215899299799374484889798473052221125181554300286133803553869499552376878534158985210913774767963344480860940524664642268526065373741193814153049763467652643778506347958564985721458163486604257564871817576372022021946509027273647578737834251818884609342127521288260564645063779854518861234658911087605645256561189719051198029963244261731419383769255351392377191408136627227820632113258111995877103528595138839726005684842005107923335544689336275111633377402283625957277442980546452338956518111065895132943868037271667803627017698184160912683786777507346737137208908270900046104661382407645211133200053358464640282666069931046660802527834633574446199340871998583588404486404516736541334585898365656858274040389948401288980279444932957327546275776667997111660583447260697114490367116732220075182763535568972360468360380625325021138257856880423611006215068380210191079001906732121052597870145191280064946522961893280276872232680786624324418616021175060154401477378432689329680030966902699613342020184720773934908209338677051628844903956602087269500115820504415606374973478610373990613578326602798784837689631651228990437920055465662840777164440110997302069731888022178188003695089652201946623099374047657232144483130296436424075891670124164115946464600445074301075001705196021523321920474299140939513530654730942963014843360647087889862986920427212422222075082742599073229607415961067083957965927833759069588161174271105322425146195010366285383733592863244602860519138235456071046710612741613334180318541091156085875104467846108658774322778075169098390593777100389745998843403024239322714317141780239869665913870035759653430603316157986315556523999125220968807718915176406254952211166075417341087960419388919636490698713734120394529469977192462027437170805289970129178545761359066746633596925455587938883814755298387749221713273482545305888305958493990489395650596387111011978875009199197210745142011714038709390782747454426498642742701166730555450157049748128891117223188054493870336778104410683866005459886044964480666262340651865238155296928846095092859731861490019774997654908108399965781872683586152785614897069673360727624586616288413432595477996364835296975929449434958606933044494489439104267359351832450854763648824096746351275392302112135341058211720384021774933345195783720552381936904011110992743846274232021774603928650880877291197841821378002703271263572942862457125489151127066941757609137039527861576478927467893150662571775585193131356645812224061288376554548021120656914065957893573652777637643336565765505643216211156193889160701032251558254324743626394043132178642045001619804267525422356174212324077145578258906780094328523948005025581145976008532650073577453754265304323805645140629893539831564290650091130767013833300789596022319721672802976911526503967213446292233379978169112414224396998368166051641040536304918142413506856983075072318338747066358535557812952036112847889574553721513799784369605573340102956358653504027144384051041284716650302539795899818988553804651943516765660330735957062464234625891573581834165395942524400953520115931783046792631727282499483491008473210559771462589801808523282340457913358551488519244726205977672014817512486205211010653952829223511313358188943290519110297203982172062541889351675930837690075010775984253611990975632912761991246038696404742216725431544042129245950404759191266568039407622991576696707065608146291667300951814658675663690250399685382400447680005381187035699673150839944643430622582502996233164058609580195147463222193348257180332492843302981252380068060527622164120558350780792431596464744594800141495514507483875008689857258777548173536289109309940068617241261995010384115527451186417126056978378903088605822774543627854332868246362288087766983133451628648952513434471934861951065916547144575722236636100941526976563135116428408301908176661852556490389843872528874582038394486362562977112096401694280289324560584688697921610361896724847950149219850519884795766114108430646258413399453322500289656238767466352703970020631688893683916546567754161495513431687480266941893906158891031840178667226167233721279079614640260539583836060439149600937414345148719784177047576553215558673323817188223757610421772241760926607880017597484327836699974311805075405359059640926648711990822735519140618102479158456190076187498355293578607116491390280398841049220118838070423745055202167713625802454661335775954112974506401118205138618695627864034808392672447545030581058042577571708993731298677367280613219308356720149501962525357367181223397733144575230841478331143163644194841106118513186425679963993900510395433703793027924562427454133499680593865493179348831111745221277221567304169111622566510264371757876717833130009763882923941248415828470558644671291150859301468423341195005622985872443098586076808759647762632255670049827808885042301414056994370425356517495798524071862801933297271064241649597128325369604587710295583850742636695443064189286376760314382172037239981042954281446653626545873151420550194433160610657980174485197526325438998081183151711238840366029089463107425451492149636404587452553388674558168945777001154957270192448792591442973780569935492293336350766685057848527217670020136757991726787570048717045026028407944872010569787623102767159430668281056707465342617708528460115833527052270418569297190201031413601551458235139475328378840939766768154602157504637093714642034820418240417887148219127387369636360153163438212630870104840252193197707085286690291354314536067390862449794748304238549436192137066193661316997579446431856318889508952150988673262576634211996429181550953477258806691950211741480744428008692496767793265516473299448776429560574338974159500774929358041997196262458586497849081753746816971262256786417714012669107618819441446439487061279212033130794923211594606480026863493159445170221461388432440879298447381303412306267770207277133078260520097340561823043538471151404949095607307551673994353915715950359742516202499496102005517260671285565378726954225708949178505729066689320815308282896452886587964718370374106185952450153354248533517169536573068179391212378851171630377904881927558094277808926616224659612737769823474896846983788359189241696072017884777584641228452890521500131503744492473969387991279658671446846940112755271983530753202620867601465642732625660038551128579931755361738405123741776604402008504929788386625733933638340122614924115089235967886045772909512016134462325792396506260024460709181830611876792564486084869444175710831439278240684864485840303668459718420330815908281892676583889785577997142816953971093953136225142143327622788073965106459858677285822772015089893895281129660407563174332218330730809372972281552083938208562953581592236378908494663696895876159155945034961757460616754229235115777552423962045638017067150253941898450006134216281152823203376318848278058411241939071561564066591599414851339231656752071305321493356687563523060156554394480284652341187691352339133085374565728761806522993826955507759200742958708634657914942732572874299989822298317006356111538603454044348117009906385175072435377480206730168763217560586431913307954015320788937845171097283926854656155430046266378493094894556775883504463094137094559517477935376835226915022912721740324574391352912442270415441195963539813105696926603320072019090297957987478570326837750442074531466028487608078380095418494974092526198602367313974110278429907423020601979022065146300574859738685467649031447453298940078906504708904719358224998800226792771189207305772339469245127488567638530113043639417175680100946540864900745948609635225948136334213312882002049686583909501919302730252320315592647103116326217650817110950002096406298908086364699350632133897516209714622843909829822686266965912578499017652223208644281504874117699264213281160121406807688667626013684300772217294872737682971335821391584174815949302021304339295440657805022487872855198009207761438843628750338142262322390714733637106766224718439615601963045844104103497644285601821334159095773000088814304369940075230884287794861817369245664381366010117509439767578832709729622819613965350842980006003754334559643278205058085550774657925975430007894632231794764371709881954654689563597381226695419696223294621081260972525132353464244824247049300589826553036041926510563698215615973674586639841436044034344825414396500503891884731487787656862918178906736993565080565193747626286627675779319408272745448368476898831614958880739260657323802959224947287328878758091869611398732381258698448275125601312992950750370594988914727213132978304010579013512703373208293301986888890679712452501985936636787144817129695959106535986911768699517236239861960241566721552637154836163348508315270291782552897317094047030367861722666908033062819080881936778381806718451262476257634603843281330175161992406931379444489942552495256953532327661630421161686434424068639790605475236673437026488113265817196098301170911577583979646389271226888768432097198296094459810600565514080669707225561559134897915859064802765134317325065166714521807598275257286245862139872900223444113279775597430950183016223805025407964542744458405163884020309839127292857606276418412234684726914081901741131320776957592607033916211266592956415342902594930338316561947932506000546835540076485599338550131655929506041704328732811520626192881470917392454383327291271770700540239331345850911157588501637440609702197755809081543692730052434720053177682074620496577675294202201210984221089463533834158185379639383065152650592153078082277109027978850441114480870357432281450388537762426581958951895385436626386355517093872542510867394357906400206507696353957676359150724100138745195683562526255497970208616541826711783596419417194486061782815410128010425969551909595384489371067281576471722843969954565559679497242575532779659223916442257579915734613826061105801566724621453272594655173358750891801596582572356900882422102263350542155456541132795240787359220200323235903233889205724682664840716536110641536241300952338460013475311080184488969493034346093199433460768563738456936148149568039026287416543429199539579961884082895207372601461379839178339490089610707622623132317521977292715388073028785569759226678832813110389682256505992550449120888045910279307807988980909772986767192264544126449389976617004276755072037575258165150681326905701843133084696686476219157125177197910498192744263537217352539202409205241887082076407258962018315289448976030082338879293476835623455127066961345377208088631724111828574900759531286821495122508325476286705999019175058791026769554679731638406931928216180235381762287664161576951873701398771029919251565012930704850859669216694649748992849561761589398042369901833317720411476488278821900356337829640570687974982535052702989482934873588030638512063787189350258696516452309988051128506795372249966420147100386143666597082927438857607904595627024631331216717375165703183249067956931120563956744379453591719305647749280571156907906425318868602188606641900323912540030736581430379482503684375779859367601252246093231426375445328208875517194163679755199670474153871136132752934377041676313719007765936505771101434995334916399026048569526646197027557829410091350032747482974935480556176745197288692819548820628595399988105258264459776197238006484913150540997906727317120239308192885320297520420072812583280599873985710211692664018669600365163838747898481047272028679453204091378917545360233994168985689198780272000137897145580091077625291618987839452170224532959449434870799496570735753648365672698484418079341036510466756658559834555481174205326878288172543691525381810225759385314551795013969184744991949003471072369268014107555843960479987907070820871195943323957933469726155567800192335086925165677317442957966519165891273748443399809866900160494572971170106969529883771860876053752771135945134385020920250651569095537904038387313851450882923001237629523455844888170358346388029484042116255042527565932634539835093355774403430182567311806735419711300697571104906941932636562200714556619156678779146877177651446902958109854668660931399450161458716643253997948480528862161566066036503175822283087485630753951155233502052208645656344640496346273898865554075341541188997968958559841345272642398855695020400498345703235056473799537374093328388981581294862583920807990710469161893095587240283295562220071563691911580473788253274745827135643267854452150454943362486263334798890541308631124658283457481405778054520137880094009692898873362110190660876307378810331490883940782030914885629741856286324171041021765724466937950250378210410129764650597245123388532467846484853675230370492646717539035757711094537413875153588416708183301892234588380713839957549124024683901381771285998870254644073695389574411517989029697097563446025568503931262112216787525418280936206959262156431624380531720798426961855614974743491808634400654338161996959998138427475389456988407362897604687304562770922811705382656173694122288463155389126788028962027274478618748261207013755930834359661338834465624291508034561239163180355313792945793457666470230439654802929802136722530531881492197476553680208149836915906155959780795746676149584127425550255250107560311059404268278832069675736064076716255857090120356628973661714407398392521886793775126067084157417748203730909515256486099358101008787105367234004137943286913587731105045356731354672655159575486434064592149984787415294313182243643235979204810456690952766513099617125872625967980053354300730079926200966416117822359903662034430814924090809682820053626600813869088564053123669143507513629310814747309259608233870972472806840698354560546691087873509085876687903282236558127182541494229865617954232513831508745530646596885254057073047450342559139490110146801061708251988317368481248087805024870182378141587623507004151368275826243751162505880066823993535911886209340623142027005052228477704961302993577482025535978440831696492412569902112963551679852937482655157571388236033994046869918464492620485842309214381963771632645654879838654753332902050681667808231879458595035097104489386612010915234542620034625283487192080687397671104960724833338342167760843175566184134793086216481776913982389313494218298477160261388077402932703044688692135966875292488326738138996560013240607050939930438798629813009659781820258756482736268738647312744594934214013556198061575290188942042638552913951021399900864942316618497704216034041782506244925030069080345582494036332689423309253708440435893104545831547141555070714110860204423613319384695753445504829747722008020885186142126158621203219531234231361948325962594499907299117801265348314962472604453677729574297569055494427388551086257992041977595231720889127107773742194449610514954904858751400856248726041596445672250443684506295566997210866160651511582008961852429576499209616208665985765534216956103425426808241820549307951610977519871043280227544682889462022775755498510177453184233701213087933974860905204315533316852858856949578683898875703681441456244973677843273953809788168299168713260997159031090173970396192371713415453455916735501618702207992190207348805649769786048045573394572647052454797411649124925957209699855677290586400775333855852974715947822641074116398263522222928510678431965290245612743774497084409053807963231234939056807775691077459657854153691684360329438337327335749758090982795045672646410268726762935952789625270938029090006978513639270179543644161636955801664209398702522585832095108658850110076602949183118552397717242261597450193929320065669189842668349810420402656084223874056991768312572360163247515130033647623468738607885123874366776796799378052464430095560223532786785144684763609013700434532812180327025757544809692677804037837032767319804208885444863604069617377172722281022484079465300474986150646833475953281308326065118149554334980942107668727102227898465320766005813641499119259758026096462031275173423148461174134105275481216564573417392483713756655823439487652184307926813716411632376873053904698578374718805760161087443661301289972928574418752642989505738319592130838138292648661589909137637079100130116604411539355559442021606608321411797503042347598545388211384069420875909065098796004792573266941228919900687041605581407100505614978331307316479445585251004905613410667797174029134476590817549698619546765994915401970038084376654842170874780395068672385023570429071100091367177685804043841187707295624509434738535685695986356650898022436869254139021809710684057372560053093659557477602924774531767696010421707493724600188082836583645843529828803575221803698591347608595623310169207902908108763175608629722365206195069757390315478831789690823262686485625418579376313693248773126364849535653527371878873195837638186311821295432701863395732818823581545265459358765172077283088463392557690800125375249269121691107004851318413933518519726426120306306843937888766626286557043648454228878200061348343857210434677759199821491826479180139888417553704558439912519445792409720207415232576096098021026177435265563202213393227003986303625205166624761107830641694579173780711471190575079966700219707211117251785803899080612752523912356170590791835351068352876466842196540186798461117255077515808065635183625952427621298736197164213843305940409264985775354801330802784192451124972732493969561149400921174493772411233984189765344879628859582066079409165990691431309451356991317343118287221645362639944288908956311111404212794976444375069749966304817159083482394490403656179003970878072281900405503166367631595276207984480054190916057567894944902506543250538630767346780294918714182684711217573947710273757885027099034070183314556443836184922211808279271368993534616552281655003744415812998131504906789264658034277444844821894796439936436145196725650545867795310667064102925713067859397178470172961699194099581585571927105381238996486874694716666873495568570436791711239620872780046415736203329655620406093432141566737912545135928534272137400713606960140572276270739468668921035912081443261259763161081045391199993811820031267235836121101000227201419900667587530777897445112541714224378542386447274650017643721715032171317190077327821580404628142940763823263272842833110071433825679957032060640967554809010215798690713647482732463957504467734137768820494105137722754790195009684549466392972821348277407463169523052198603702359890115102619890420930061796103489976688721843323681560596221176258892831447378232300506366463465809646729938968781718931477551576923860663518645464412419562683780962780318231000597988663091254104181907331838360445341169937742898537536408310962065292524360704138896195268059844013191223168463026933853939705402122332222940716285098237973572636837378556248073989220471641629316528997172882348881602251907186237180086456541190321587046184108120595530314216349571415054539347124946203334261070137755545417418719529475475809575513951157128625919424616417481912814528028789759893606163501701120305377788329733802883652563318403811847572678394572848689068445264822506073807069957346112095807994570025162930946018990127981225138708276919114428804577809730280640166800431040883715039150818000336563121173639742937769616312088966656024523073285543998993300328278638008246716046579263527713150258446490558143251921979537173129840927034036564080482721020526270153766786511489429934257221261287027229140066030750710903562954575874543107087528925101690695164651763412071559129104659631050298456506908885103634859865864666602753285336478681462742498567847143479795134738074181362363137520819748248129574445572578142548956217829514157639885198825073384025791819193968380693643833934526090526202790194157349558903006918451774136000219184962345491008211854738837754219994545453644461293800642575650190422519683529560356817877304223167812403227062128739788899565042772948955252442658056886697875905704238891058909122379579197561311015494703716556783538903281555040062371808492471256172178273352750526229018176203275640920541513391419496002333792869721188249275425218672917065812072005953705974691868080323769567400495887527177077440947284457179888329270027633688301218497121370057869917481836983669674030392510141033738933764047607435592834232363714746227668244275057261181914834860251424700708045817918951072995026793694315815698926067779813046717800452650566163438390301693766100813838925027473471836138000549654917628238332607122402223675598607215096548723181313849145845811103219482876480039127780600460128845474257222823118683613679920631007884217712035141354776701923199216880594239356476952762278219588331481542958888572718307747443029866587442310632611060013729246012556714123351044110852677983291329565067236823649766123556571918747633762529722766497713641186690241440544725777961473613722704488564111557662644694897456501641895467956060761826333646527533469175586692358149716826747215911508163395112798845558266398673736583134618364624267231963329093831137612786425796776654160291245604395306492368291701621931484695314049942308842817083054859417925343851892140470813449383818725279970629224202656058184747143195163417889539675914253815271405417742696880108918609689882787552619525410519964395831906472327232958716728421711917986247118118278014460863096548975494312385088237963514809384088020578478230141407479196491084364441541384086245735380561626053604549150270042544130200266672283401918273964067691609165782402685883304563379412154866985943795512708088271658334278290426080964024351984586164406087798047348831967060431512821719463992056093840499925360843934960136455040148950464483523933507869866322237074084961278012010932554955069713279498767726190172962018465498097267119243012172575086743457581686461399205937768670028646436006348558529116495851215334786973316874739512531378635201532310049294215529480881411116196258055018049271542874782822252950818667034054957609890657549929487704937029492235532122460240170726173782675133930410794854067866722411187163049711098586418667272037213587513388185312047334263857458589274040232646601268046078585445593369413684169739554905840925286610957108294746019702895547401835796382086911474195192887862362739009432531983106163579009145745064851346390804370015940117204907937529067165365813185638806876471211234499040464029639380850622762538989192411727842262746706786351510517154640387642006145606648434454248173641449867927394795034243445229653030198883198630446734155255600537046959566688687560233633025801087983733228409135497631112474890886291089296339543673332612863370602445846393029293848556510336681554784652094579145349418345073899200272593617381552429541113707686239648955557543111413152434088754651829070847013721341174234568722273660592036556993826560475794419599955399718157896457006322501295966667290170511261312237567449500401715426057961839861926216513286776920388004267553026316955425709248178297592917015379657215153007204387945587946970117924680469826124435862298204114882326773749435204709153097646092158686797805160890633820323732376073227695757159132625502681986248522149188237825825709097425868904861736043622576283752416521495545278343450145566206943068644439772657146369163351523951434256107783854474125736995049782782469088792160723005307928651839882152377021816113963807322431527363956893967581394314511943069644444672199093746452918094112909595122835414559374534908819906284661725905781443701656774357747923940731290612498227166090954508581642430415660853769691821997584586849730210887438725096782852560422192932910366305320519512221086148077253551778976765361673982428506992176832930903821026975838984271877494080375844616375053958733010855752844647492581132487282623795546991480504834327772866866998734051490654318449086059414590637120895434900118706146413746171926182085836517061946627435462599633702799243931460912310839495669268453242653778936947464715435203921515568147157079963728952217043576809107527818305029111023566145477756309852724468745138961739391687746427293945865568518213642525523615832101861125838207616385442646461643349852706081236582330029209043635747141719008801268069538764819475506814698598981530229684918205859815682928363359368013423544333056188212846993861584156564152467121701697670232538065998824598584121508495145996348758231983959324245865844184457871599020664081019928873298418267017450756567798782388567765247640995086954507198917482599627836344501072813176961306574651026861396490773223986188218436773136764525465176795779555570614085738089225222630743916257743509763652710357312712033326842594801295859324887075590302146497617460153286504458364388488822912557542518199610592171041686387977401553863254154610631358467052187283858537962057238298278844724880406785070940009236287352757716836029976830397452434651737468050904202376979877942872303875703972413003701140917982559438772492943107712334816140040681738355771399897110765877619461932081794878148246842323007867154947203552439090341317014391650293884260301109734455685515611320957421242759174781131826675105292603485985757220037009065007854040650355401336385688843390960534180358963006070157263155959027341437655469322480258707172835182363524149509895883494707410305219406918417091081993781859113917742389685204409254899093057996017621550840240320066628255851447669415417884409963124788918564651687824742871829214579582914444265072243203762434591560136154853610988087877743476647037633247661847003468262103827129160805112110452562514548585846589947579558361044001180251174218978480486069857354982331299124131673215362155506659372092953446173726697985198674095017784217390048002245362825511887361545770919902482603110873046559391287070353219730249540008437018566757225794722516769199526854760635241315646697444717406769139154741465265782694242635834606405231402262432391057036629636940392399556014743583347265185723715501331432252994344620683276075424821442013376742520022659087472757313639253462369928122191575957602485769581808181523702768232063817252388910905024030122247463426663897998734117434901564332985044694338878206174892395452244994184752196254636460327479810949528699209860951062799646309440841125582767871679501219778010168251643599033888962988196074378550783671942208747493732837426000963341251020707422233560258334488704709570913369234209977295607003739119564372899900483667048108675527249481896391600419516457329974771291186656377428147609509133856718805866234724477216512843903206915297515994880332391844613982059054896991327749951840007215737074451122575629076938274980166819083087485069468569344862976991937261271077887068518421417676182228280704104696817735875236262656703070600906987330615552341960560716203451357685101015327479169132863756789046836450463451277724481665667766909900600805218703162932611977957393035222633433771926300238331550119689701814018292638816696430418498709158401610442896623201330892944102689292516234306490299072356123146202000934885932272833169722377229134407677646491598573519336729566664981785297584717701999853570783742257310216704471668050387686961399595081316523785633481045177077921754295856063520775823954643652758769416429441455274662499121166615851113980909222407698759779993367679940808400234323214620105763042327531083079149151672141375825311902428887138997723527367539902702224124353290863329692315790758625016016799387447592756501172846068509568813612004314479801288895884943932513358499901137359726150108714289811973092487980262165851178421577609947136281796222752641360701118825972296803008737092754541307659878941499487269642196418805071549690995867496477475256301263280084841743900882482792136117388606292709146305927873395201854300889963193560607426845643629292504644746806508940491293323493822490917254868373362888374814285216777009023477086037663558010797387612164051688465773881861980985025657529663067264604482395381533946402268106891364977676040543595897254596743860554083970698627304637462078815762223057825591853579423430995527194981162833547053234630572243863880141934175488115587458680727375874411988954731785742474773710131390361971523626988840246603786324063273087418775027223772673712279932628520800705744209220016746071640100316746919719674815473864108964363775465870596384506004198922875120351808993271808514834442942174734610166754970978838077562500157446100136215044868671218900195563863702397423347114886807419370098835023411942545052501068071934494819267313774795522241251976152733243714632638573110539861585361352687521303349009068404254636817221727896462876820051597768315489493576942027148882599652158547766938745260314894306334943142355321625580927680725707387827998791345927996717596175265365246125245608759020174418366782915116114035895873509615695757753942654404152970069236396949224268853733184958559952149664426109632357902187102344921878757406058485117978832882674377093003652015211962386349811469032718798096880655814567989483575637904864979650449902849175861144955862746010219558711494714945125127942147887939048500516014328531998769464578148936186320416042764437002364070041870802687499750570227438457073191868740266678482512374793010094520411333061279627498849922209578263143990563836339176662091585191108909433047612290496421029148041376539520598289487960824694790464805615201876728034971567867220235417610329233526229981540465211514644098014683967672362664216481162332138110974787228011076786716586161614171111019015743482633646899856826544935058134371886939719506420296597517882342081166171609793926243855442727172176257578391023071332805969303214344922412267428094577915968524435595778159429479232956546676456147647161904599892596418445726363493190492399634476326117875961909981799726940045777991316441112768092359829361366512712309976534385681159459666595943613563911314877730279857221751011967897332833758660300296905484528945928714602966547380071135654466637641829861341371129914738559572966942099249416935270782772759792091629544720937088930434284979926594826777164702893623968562722148825845101489740782874089153189443048311222252658346171552118222701930688792351735017024083997368053078385542525100031774796309191547752638688803337369162153762927030415778721112121089003816073012732432869189232726279402685701435548137891583428535790866959243528417951787973336307936813474450315677122595546172579981345424928004422131067311963344889374641623132647207952932730211214339554390645173282315255571159838187959490225081730748490943364834805611354948531541683335035340819290613318931017650632317040487178163462429383013454686079887669430558626695997517687220349421847440526450866482188022253714288611274461348716710065038474725199537505348485399511884965952335359477307747606101616425106325168134367739947294420786470172379089963206904138988870278870565038266410864532858121671979116828043485363470472811031293391783048955024601283808707433396102931199392892803658281345756718573834191845173881644644629283428444646737051484209416209637819435609726467557788159874363107311423594290224629236470166013466046192995347258926723926608496088567352925972918159695793756999529814433433924079622705679628093090739201922059227330711037281686483031840144248068669424549471910817917953341007774176321016058647246860452319880113582412603476016514923949662570638204421794686860557199483737778842033497520679000834246477676381488560859230037924179951816428382944219709295493368043211890004044449145701745678446619988537854388318038693034519008207127528647352943239279585028497089743252018049766711814112327415731238977889285836093966877376248731613969763861780452686660511132013435416320175567382195001828650421630328779779897676179375903355076535968849372888618730789187216461812265880458276414131448390205875336743447824501500753135846709547910322173219786261041177547075318474791085411799788308222889715079908254565639689285535355426226218734915436318893753037351701304088474962464735982203725751483023175119850834505220581313874454914429205652277728383626492686932107779935261527826881047695509411995879622828549091918652377598095746900244341169650032385486921469091663299672956464364534683335624104362713541454952176492427346427768409820916231523074957751656009215844592843748603009330931005695389515466956235997446396258123507146580081838702077316885001011102270771497134807203507794020510867507712488254539518239396248353629706543813497961312237142517423455253873363855037639807367158269344132718953451522557858666989988661585630020648842996623262398072671300967902441119344008054784818725198859367783337966488287126200741338580586802143202771367734264717939075821811239160439866074609396419008622079715244928543562220725277146444698234275252583552042877335051012444387717756170262816007293065007182530479561826518297392437395123953914465349189018403964467035360374165215587857838230135514302172571961712051133186924970445845310351141577210794664174049385516219308210327296960317482504761314801348744209711098833480833717397917400274285525694131618395675264621070466818825605493697363004288068435458002350215403576135864630886345997378621499995735800919591552852219773382420889224045965160851645721118851816787491898546025378380174897092658640236260608542205849315549120266134727721213869125424396749986742275883906919210176271217607322156656402077937529653612955706378538672213850241203492312410502588355840432434102183980991944591102618210141781022439520776236649664174290009412923404512398452994506328808482613804662004353197835511229220971041272521972344344787424309173541684423594475371889391911530023266184014048530489963693112091199011155616869285995447633836168850519911192390376578747978902015441296805081463759487000239918195003621736687594876336707359727346752144312324294998567814560435129480699264931903718919752832229243170001155958338316450135112851339798745409751150938910810632395854842409377029184452398626844842572908458474920644625556383425717258193519564785196726623520061577700811277634597388400846682661105646834465983476489880590745217923310482596209581493319388239316411775933719888840469476892885275489438588717851095242271398408311169057474876965514600306517829183316409204119926452873133983808089946995559093255885568161633456473165399703712438432780735555776175170188080329375044656066485891720925554656204849225579552598735277148464550429116960265133250086951613432937091795278037937703873663856280554746043536075190120738920453055553083876964502892998115072137240920864308001759465555635889980922474604609683069727109308737141948532190937605856688874744500880883905008516181318062403362584056722747414146946203316382035351712109913401966038606746951631074145785708722558842750936233008083972767207023344868687533195952679642436098616577451981098736351303001818766581143499355799884728908701202053681537616630003676109172027437979944299579549047854074311278993666128056090363101932766333653950875861462797043969676563162545138098791223065496087858802077500739210909860422375509641508614244536959119628982873174918260415772432898099453812121258197364490417146610128972770749338746703592637283721565983773254803570328016094322254118999407341759135127807937411807762583318179620060233121052514077192588045251921333654174086104713025123858960347544295863048202435666832562476874780736700269852077833718855941836125479359057365835102108242914565675681991714479590642056982409402594360210555489944754330751561524106210931409932749512862085810605902776755919163637443937400998565212939554416634698028631568644759265193994650488276738355607291850746667042898801179892184501835010269505498191599402140072353489575945659594881324519364323576457714822485777768512006225515166600566110012125039036349923074000600009103720017488893521286295485254661017029284059285549329092597982165928676009525945073837834641808096845321180289004175797693828088978518683274906941503127364354729392571833215715525903349379820640457613726361003514413161184006125056622380323256166874060241558497651120154636780309852464500210880407314540963246977566089874356904013654501361107465238972535120766680743606379643767427463350410386379910908560112852010453849622770602480324057214949196505546541825803118786708168171249478099035182479675280741024665558395428820396976725748511409857276698886127670610896954234487368437210688811810903626468180266306787946333026862452681096540950037880804864721109595894184567001307529146700683433925233568407515109531572795618055118718910131177353470888368386379960323554800780403439164105139447092112297278624416279616110879268614324318650381325847644447896945299685506115919935677079104185580019263104643850335417227055379612295102972414407856172382081252622962562056637752743438836944897189753447398786728021313517751045592238490311288480492036656321091118580630987798626689071949242944898008346003879328843028884008969908162875182072849023118232361295859770378563032307284092534648367347459065614678152797896950464984285800259575820388680468844259566268851249369735316529678931271528236454553865319877508894167032296254034322649921411974710396093344137937005282503657055367570428597898235460658079970903596092593595484869027795269866108238937113929243985464483869963842843751787125235079890792079009953652292707761446357600478676119530405615060540241615990409271579571690772267906872686099455003660525895235009162190518946455713727252655205220588439742073735500434616471938486964408115876042914278294805066382943319734645682813344259043456871690450580181383543446970348457927868523136768321096382480339798927906166642406125663063663734366012838649242309036185492453581966282846902996303277050299720466832264197357427582740842254066096104092894395776118715298450436927095615301542439156974073351937309382000224487495514481891835102509187069434100416124917338673926426185117182112293230927849070547722668877240783699385616113084516813400643436301295328594452622710019301349174402518384210685198385983967887847346937589258367594875951878872887752327615276376275001967531252790800572497438902483213471338389534944731811409302675536062426779211075959721145332486883658045758153661583086821797806390124707568002299222115171622804383647766231902251009151420613227824795228553850044666103181635435744789778615149580891544126249229255984424450294329722092639660294303372695282980754381189354450279446550714205422695110207206899051817253618497193871389506940354310812741537312880774449150267292036166405490053489290448009313593639216895159095283574347816201250831907383336451138673873482371364529848062342752457375746193663554766102925076171845511372855152306612347960316011332153528925982986074868019043459114932574631849759435994988821975459069274584194850289683522872500679961268185234583913391044885143909154615216524612075844465135694717248369034022561835653942707439011231907227350873062559531125239351596913392218327359889800375363883117615022967836077820147850144769351532097040411512892444903669597709067066449599579994484838355632500957538398651503721276479395902751296407147072426714192532031550536342416725768586786175220957375488886785420045167361477119406320463356298709785388161347966961630709528403853410236900926495251317635507907867675930080401379027680252523169848821299582877560821992228031621056104675917460056386512786782506264449131043274782676978513384410131741055210514865930084909611799992622775919610423152598488819114817064816708411626997886732415748105788339493705813009212660621024585174329634218310257834107966418705160266106403043958645612073978592430427237226011392241801888666552432695370615397769482240679455911427729706792821527361100174927110197900465065646743800865286282917447301187950979260871721719726931840224080303178101291310507219129565010753052225525715894578235371063436604859923029304145541564222970763992105290046195756259544232564297442184458561937754305864022560066979825475311633977385560339716852367038237635299101257421993984739422187914617004664222898682139317833453481130399594339283045226273291580327546217528943866402688970054180608603546211045088137822400519834036049910644458240677231973377065917613032794077442189860962403119414797379424481027414326341731373500639320607190211611671205824056516211257500681778498828878428117232489983598374009761866746249269000657247986321996209292351467445947979025410791081010867794595750672050842032850407540047739145697354793466138708511857512954973543707232118112329007038074287892106075274098085783242168758537700880186357622386371937318228186499918674966478641388242990311223305514409802337796912101285260048657555703685390164879882325231628664605026822163082131375212694600314597638073009313851955781165987962831456753445526507797805046572018562291036071332048440054482596423650146395844154653796996141919014649218870494130026115904963739039689455160811357413196579153179198923978923550282073853497518834088153610411563441998300241618860897178101032861131756134399016202492790718166894548835730217636552324779903399071658346675672676933490659621133258211557675979610590169748496312376913587393768693752619485867156594077509306406784637858751114287724900176198095244124722537158231438926470588658044048187914274198639225448586398288788951136957764010820759095405726594211918619727364208953877689704431046247180167786152850665701177870344264999557865324854183221467993766915723725782580158090447368114837965116262595598563491330905008218168814202259281918988141999645739885263330644169556383831859118518200746063995835444508430717630800875836543156907023078780116592172286348899015524187565865373675854922793237682292370038738260141206135977548808627673534110508114395482399081562622044317423036441691414914493366152419725440361559924600927770486863729865374194662643669480582988096804885873850169543008948704637480731798067503770032568950428059213434217997038762208022510531936256226670371028711171891188119252320635631742404590179446155408414450157129762150456716686750682483534066621521468924904564647679171455017943469237281829585668156983295965546030889570007614076463760035962911599044880136990149101065546879312207040140360869954605592741422848937998387697266998450555744800591309927470961289506602820874166294648737252513712271130014818766217424266266647398959970188758041272642309757662404305316083909820645350071402484456446524043891098592270896050306269695708443729930801265924663963668551109436528387046384587901102960166234867996299803619484532305653616504119489822782145768271645356894109655328511847778850882117884725211138482673644307218280461969323630334421472080275968661296599424911002697605365886421159010184528376190849765695576461721224045269176652493516573600288971004651015979055248160766881462767977405895054236909487823185271494525821269071156675649284058857609715347981559434136253763940888690033813996374510842707712675912943965322726209494828488916766276030193814159194124044745123891680168840367614741644163573732682154580984458592067654515969457048817696561110210236208966420158170526839483611030266222728315666237600242620842682318762114742769936859984819778903716780476562090443429789418859806422550627543936335285296939448379946895980226430724468399520870123006593725652529769166478751676913242197675495796349006940390496904508371551593822705054511386138369772034596213910601093946213040011162616568023629424071742040489775842926000497357396443079527722717434089908128393578503298675972206707348827337023558808648315752916237843008777715888533109040156724882351772579102088298371740514223265684311112617703754443577257469659823649511893976086678616930635502076103661814431091884699342545319534715208689770536557200869563770942144946852407533809032589721929876792450048666586517310365097904632145349138187125718555772115862367217445449795881420365619496578730930016295523504312550690635123054204893275608506738610517291343575990267885365964060643137408515482323671035814088922690301816333072032428442095044136920267100188242664618003605300620109598916434347286245760258828915984814815411372268418381527512684511443832471797363014909115712641201540695691816492582413194689620675588699316630050814015785888994902909362851388052830916424728045580867888839012661586084550933338739170594185041169588025841890724569520475507529980041213946009949594796360301326051015673408692280932967761721048619640519535344185748234903373054772674952345587462118219186444394742246547763879340565440999857554496412842487056468630086763627936426655539990719424918602817416600927893263303920304974112275459360345903554656884757191001442283312781699553704060147722235816725260379574812365859487366287744233558960985219726838358087437255291149606883647395235402808865073270022192522289007633715721652185345170500401631737974406598738144218687216253229184708268483868055245349141673356431528326679707768013039715550539910315429757371615822088069142591490438484337653237604833591767792037211642336751499243728820327908868941695091793905452790720713494240388857555804490124988772492363323143227747818774297365407249866906966543950021109747915707291279859963985303103603767276382627634391433056846377456391012202122917193048289389172900411940175082163041693939999972012531349121372615237879244293225203231502168840875631554717723656103338204049176572619171218222684264709392359977828576701537278143210401820347167802282030691685336816688146991466110417083988880252790989252487598649442443619741989902864474549203012826113385959205019326172450640373569032657657097026293844003571645833061703599814012941682938595028928776583512085948198559473393351190312141044636056732325131787600259942842179009668199770799890324189269720543928368158498609694857706077939268861034119310419695539143069684958520342554146192893442172314136876038764678701000475107257934629632468045402039297015032452744211420162630549908024467594632899100482364268731169597344860589159734708007243615502442328395911766780365583091893076724814053844619743731200473130616554660227508641945396102076645025867455101482166994523870784206001720902395812291023785348085036730209147408973271855839404820996675127356781965050338909136789546482899188799888560855019632411990730521034469424754471411265314512216020435100996147576511420108151255448051938397766219038124119617477747814539897998290357046030118797286347536804250067417146597504933559003162481443169484307103163216750647721257213589214106866859374712884778819469647103236682973641454357952419391788384957465081351988186110098172982316488061507712510961074398591998657424171367364402932868598156718406790619490747183850681555311536111076127123242189858466461790621568853698871287064542097738563873442787932497850423982801558325283621450614873721748974430929875442924245743633990396525278409851344780758190215192459129026447335767356250599489972976456290939346171462352885972821617506985951753102683399384017430483041984713459307703235864581508492581888438764844619000348773966348205633992810414945751917803869391199047424827269678740656807840182215382000224650211046170297313306694618418008393078297415675073990376263624316990869013126832566859920585520359444208556739981979312676190866855549115849017143181591990519820843246805428273582704341010585828068995092501484482896014460836355960797654667942050447902427471243353641183139228283541563161604050065815364199125359905898640100272021075455416767954534456562081062672168846550855303247143924517558710334500950646977190861155067409365247156013522109413353320268822798779333865024363997687452058260203613185283319683752168720522651175669839611648869187437506221644203672071702687880913113115706879522943590968793480318431158128395077382391091443189987741335761420423827211571996856304510381992118906120131066628209607923108801659730211684062289305125535469396450626095179793676027369881935338724565046776824359298122977917282685308988451821073406936957941596510519894339716883692267309720622021301850698210966038489580530163908789296835025565518701648442975646740251769590263969158965908942721279366486157146510436957158585212775351787132793859970190699550846571769273856987656261185524069399105056438691592568103540019792192994345346667339913545746097776659691151227212253365524638616487386543149551814867064144799494822745643622523391240525616506312483729114274178398941994923083368209785995408398031540918524351241762394371897575181026187478184707579768953688027346630711608519792968621182026235293982095960575741428975517610462997546034135607434054891870847472828392429044508522776426645095898166143848609520877224942786890082316806439812356430100529626882825860771868782468743437254909790928769884507910027699260478577322017623126314694630979174285676983217440772526152447808731569398527415198045106788815973121368896051114229037321554302054025018285220150994870795002550314186511996782146448950607268815103846339648544733633477453231811145344637904008044494530571750215942850009690663736906060474321489246750641488128108376499929945664327466008149157882223854734478055849007699084634659065034998986730990168238552501913037625433273182365337501868315809897910973893756450934474348222395201990441698866277876237148296937257609365472332729683633017871193049591583767683164006196013345716446533635593918268538354546347092012171215240170384550151621864707182779391129610035173297851534898960475619103336877507964789382429523144244483984106843466063183456426438365532316995879084289361540419786040986941752195769239781907155056760034589972024771005847144434274439475982924954469025755516036616427867556690490662904749758711056167775968489898979574700549462969886141789661444628156967784493934142844846726882759079607930081528323242087183541337488532152797586169104951278758669591728490026825734986992981990795855826851510337821936265542797098567818695645902528811122569094445714758053157362024578509920770019044473225099027966991887243281085937894522433231560733065979643250213272273361603773218775011648156314706577759648825180570110059844905908211608156640659327256426779714421268496247452926174682206482541549692875083929077009406980090098536282839390695805689849785184125482528369913006993545979759181990606291643957380323687985766945808998560088291879486953563247832834859290713218544546010316770683999784069282177025893641770233571794951556180392289165318332355602893466175161579246520699822635785531673978160175909628692649617521162773200430762787036678797096715163596678778146190627562194900289747144738766717740255531402733257831335031966463313760488780200421738651927870887826268448377115936561562774682972759737960206558684305943179838439095244637315119655863305634727283938626704281924087846297652460481927040848822421114524304484820849876601315758069425928996523597840261631458859403604747740521392615359350236009456204093808525805299487181801957567725063323550642438449365992125624761063044992763214717202735640324070817504121198454069637683060325825718385899282314422130447170183266728185147926336753276727304294119045541714208049200743160240048121239644633443535474216783683587086659773629383737585734073823134264495044826193580198943145281058528851681779015995624400438494466670439404135658394028221641961001421178370652724683812372916770911650234589017039902236111972474767189600317108573724291919509356548825252719713880692036301708461385905217806653468871495328617397326874924206225056690685419194162264275041111490568232343628083667987631639336876409795254734267097521384229791426566333681228594976322260071241610289581299123303601475948475236036685873893804188993086170337386186305284039552145082821807110700403241703142280479441820447492444951608043189005065860257904462577410498925899088090732740893575752882916822820347574905627359385848686652601402597986958059058940689489713550112898727445265724206483325183238087352422675432177446014041490822970227336098425710223106052740868108219681008690955353789206237400263686389417886195951955013198987870872236364271058660831903379267347265523532287054452926958232271811561743006262839374660209278779691190457782293018832828004003438029663996506261994118611830255680106427772505904913760424477681054964709623377557545079073841714220012399525941463551709613327331649785906909451097140829045614348828824659035500635230813847033273756591192672037026794626990705423656537410853129464174114200789068180699143172684310769238616191451768675651560610165461445423820397582529971324246549479066234665241707400794092489307668970112971456389017772568578494706282585013654232575842561737768837969097355127839700766837125908022052847625442846379914777865286794717722028792784812490305779498268411434853680846636405041933424900466283798590064524635651360671237439828481817704621441723168972610224116892413942449358266422704075099688914538358225537298790389374046265794082415262640646491584903401059228545314447301836017915464197585128967601653237841200009664233176060786437821052336672877807922789659899041311238219889849944971873376900958145734772813330967192830410837081293665921416241877011503832290055267180161206464583145913296620906019342149256398119950692715327446152418402618975028025128567313805939773081919221261308381990191912837490144050896162640211036375561971528808018428000172973614261106071158851611906869065072507618831951103143680493533199929003258412571628383990970371616506951079185222585795661736975910378096375867366775136075779345042567459007116348125000119325953435558847757340322346774442857661179359094208761437096749958381469250104998935171910443360876482470505353352384718165667973250762701972384134221369676506726599482338416659509894060789560626771065002101156908431482223955304791038615924503178812483896442942027369043598560769724494574442934558845066128542406904091809931886804942703818482966633482755527870291625544682650073606442128240167772401510026833236387837364457466845990543320743087913657185306756697977248171463149353982464099161523927231938174957156350498787912986728511851033617401006592958576340221302788163920440884521595682919181783743929974394790714722976584833940450848874894092541333829086592625077276707035473532099377535784263772892370348865410368649757035728381657476421490062910782713721231039420740451873915018184017117640926236934497792667913278149702053851605852539528311090276856894778502232189031054081571574037111734426987590297132825234144727734495355570119845499915655471445987043305288256608916555171500015962560445482416869107798804785108495886740090740540025279415603873805961201685865331851211972143506936517317501087720840139291753895028662528803365917693324347567050215234388149844521464003469125735272159641309270821485396155663877722784572381082372701329718242087538213011361833194289771862208031284149552289718997859744395842599535535095866876075484960022450227978365961154464066392310671483485242665496820228984131234745658687360727505422159178776311326015350237024524400183914808166209680908821078937171985753940342914063805274321445302494494183337232295505128717756004466103811998708111348527528890339712257431937442248300723833683873577838651369380898172952734796070958722006398336795435265932367633376142328110199099447900811319778058643935021795840050334386202364727455043499826211397616850383424563498260175846664256945718044226666782365396007703997880297666869109090394329840028719949745093064312168650464522786273818889038894819961564921063451048189963724760887066971918003810991405760840461543122447759668210702999005563993540146143588090745674640381024540247473618202581141598571674543043224150197946076604783155032904253260032110984131662567896594449732582303114978398315278840753406031884757777117050596550244777608729284982464279539239217052421364276527478653327384623124492618658137361476567652448181873844816892340558087493602265145544275809983669699252473896847173050703145144734199024688746218011997148692183717611124742539428742442953550460217882822693155980522942548951229666521047643512979138651588257863475853242547621661868860540921643551190255640441487875352656680081531063112596069620791740430898304091651361680209874032950024244728194519121682728432980405560059896035065614814723902632777232996755701497642313290024522054589853954572479087517105333173294172840735008171265659690706432460700292881607612043451209624733774517710913431207262212637241902715543388790902558193792840545975427925193374317131410043924215220005855286681562334206458408698170446803870187750361981365062974840861339728479883586367101292963136364384110983394972006943981941710806925522423450236066071087862982613602376380289943845416073026435658702877763458587739956589406653211793336606474104770814034772469082315609146657347236859220022773383225660759632279699657514089385543960377829769498660871945848567067914224520297125104984373128123669950193184181677295339842974061532105120814950328916916783997260938581699976402245809699517661491073941797946091724331602034890265797475421205104415380672823155842364704753740000831204502275398215552572932995960803974536804023911782913674036307062021015084213598387497871213723871957351623029947306345659652224051811006765209240371798888208634794636348620967969246812741503033487831949475134704564933634086597420227249441756106941910486845253243268532507032417158938447222591990170177874145121771848460895785108463496193987598752566920755348185803263440305265559930493004553940519268024352913377898811511497471250203929758544156759848932540783157702668084412009445818798251640226183895225856547782729010227046044806648294597572034683187560006029375429375023160347197659304065764938123139799863917694578403408479205904720660726455427804528514206919913219320370434805995673572181537413860217812981710766763654258452395130722741542153208642643344865360312468238437123061698468205490589028729765640686678260838584586421413933376502578887017151546036092002604393261916853431568104172435265431321772256227430492482327439389284770653365818175274353376546131740588291029812075779180837233953202251564607675026712467475533791574341725582129458451913306375492351249444336022980475739999697107364067668674484552678458691931366784285821588597021630678826156969183300055587852160080493015666036811748866606705054732695042511953941829554132900098559764737787536847800649424319205883646788147462929403063671602750140702254980708612204786814810062619783971660486578690082314485690641883643167208465168090311866560259604988681978565986639941807274877827836150103828146643513651884055055834493142765080605554483498356443804084902696499426415480350141397033756168071952078576202159215741406115635226850128051100778164676739291217246274752089012360827707493599021258084382389145296757857263438467834069176638753298770955116361915392735018482789225833722772128841761119929891289457755791077837275822330768947916078117608665577173532383484095087360079682136357681144813699198620017589780454691838870714120937830734311653664865206977127588092740455326240244836070810702718699938917052928960522166687539622649706081602689998621535313847918286700453777530850730173751359891701354529704027888752367302784919999547177007303208114772256704545276959778661379392178067718071461634216306426593774759615306816543417191694749782529267291119878918963245613091313638311771158414613169916196788565680765602575679269061040819680107856217732626513551417501927475807541548896038375886511100275279445571267600554660276770085351263662062516981221211431429922093607283828897465247049782025498817922347251301776277576252219661991783810310731536306137672285042464539417709583626085876444746055983076180694833591380920121982200377552709913600655138263377158770325742816273626582053803379740727517275852093995297398105707530307258332490057177942029795640606278631246304911078935017805040471430585569423343287254205694463069174832798806836013660332271969745022134212584231696286160176285884969150275008031714076183011170941428064758348843836373991701365340844930377527247922057957347700207474725209815065616536143687378725855379795655595306788600529749735145473734340651752566748708442356523339388782146522482753385656168951098054151636105787805175827725671587702514186886417424752037438643513113315945310000389410172849742052611165786674973896131073798621747195553740882312529687042472443462663897733544737945657320021823116884307966892433950560199843103249074379025947827379533085010950092433350093214618832079266093179510651213098945322464945434086001798841840043716631197326112153476727147873925960456760374204188490944083706464047971075405258795462203380686767071828190203451795183684329640291681672149522181729832972795620797527782806412119576546702941357209942777001663767596883258063994964590514668643857848000917621179240138953327368624586420370055980498568367952908540848982488014671659993502189783502506207781207173023901258578971159716581288621055410015794166025973132952756676620954012941419535841700817474656316604424901959351365823111076752564726325717240388071601239015943514307288570353426000567071339744984612701786438948493117440920806237018955523752999619937770457503123586029716809067458404321089650648857470417526612426233931762306118165123917618126730302866757941156801845651092666833819388748201417783032483788378669545544572875586454348561579368712601212422218985587465439525254937325464255310899851586357933070217787171134298168367574103465541662080138129526252510161719724082330218898465488450516629795760126563406463110721865078571550759754822336804640245110699863707489618616425802030044339431705874850714069850905070763145287028689665125124298813631568729771702034222148306021304414030935509650954291351170576436520201725103139265161985804179940248608080837598653163870921053247994134704644588269459950724860850193202632529374646986531428501433270801686122576992781332715515547712140065682877669119844740440059353052274020999497358942538089874592670352667861337720330260437542577658589998124525337827063314190661324537891112822156314777210920771195388658617033058826359600922608587285839441830729454791320498921726136267735707994828639367340525591218277098733168487701286754340586127620657523197583455115901564686079672605313292715010412335693604012897307725444574580106206052392305273512852209325477773610841344974635357201058814526665513949079853638378264124715903282835673797332561787660199160452538551711120348878394346150635725545125960020603205391617964537176801593467715094725566676720230565040047971628457884595802974453516901645100295734447540986553328279784234015727886487282419045903825499634165078079562444320048019717507345741194108703926862601317696976367909284594338041737823172241456111288019025330356351542577145738984855122539651311603046418511503853345314814873697781023414829387658986891046334298107008467853394910495392999830135561919448017274025841087003977597706254057930888442997045954462142728650413110462444122470832805770957011531330219999927440043114083309307838477727380450746171481873320004599904033635467038694099914615810217147202233330644436273679901360476937826922985527133903106302259954978516548765075767909087007091248377640421353294143931109424960926868664844161663198146313996857482396183942640401913210865080441799734090063524050671126475090307427799438759801852259979506974205018207267671989811346915287324249400433262816752246071434075321300093250929081194501969779321157562972333977132172689265178208178228481784962264017688128400962332121538253553274233463467562363797519635885869898679887287248266710618372772009509550710624662470859664911907106968650694172838462196590714751133606018215270655663035261007188355984239688945182284155533047658917924550602783462291223914586754714025745709866958699185476278691654224898674116882206358757365062873350140037367171230924802733039504796129141352771787716107212265018339618671825673992384164690776125163233344393808620492772917815962064236003294531986743727122459662490751055393680036893982088183402939866864067278677120030987696188170050754336243608226681872229496390259837329703092283638836107101473682231288695865427364071198531974954535297478482229836855155899536138088017327015786715159847040485281616100727288652942025938009736980505120352702774919125995173725796922013725638639092368573987683334577928109035431311242935343065481004647507000098573326495053018941734025846942258630011983913911517222255107909581082221469182959514789664035101172803373157682528996615160456322645929552784182102493301197299899311828191254624308896534803349051340176968041717359164105920162323089900542564043200436769778311205450043569346207988926115259657896836396039053994674473887941152444124440346823882242202735105927750337150960530923743612321464005637174158225235987758775749075361024812914592429647627343973028823240550082779698703100376456731848316985295135333760041359521848122576996046808558016421546726443438245318885514917691622344802352212278304574534993372849387358886023086244883528577202652452625514530089830437510267792356077109744209175792220574053635570908971624702328438602378996261538939542506901003422782863595473118027431219443882407743198337024081231571054450647093118553421527871414843245027198518955645532668500894796060232481873895676129786147703016607832994535218059130731748896465287160975065534005060446121074681280263506518908264779831683305600610423924823183026570533326682045757768018416352839254476125837042331755006565631821524389328681276124864143754552192281624725298625845840944518068725171060748278875433507197825617109454166347022187960216494966011078485175160020741601779853066845819423925765913227142132583611835442808211220707991385155632334826006244789502435111943804284612918175903792321665021191030820768270503454748755352917065606718786663276300288159849310391358900511346742794340929669142772732615989790556108101081536745159987637323725136998341864544379656365222550615842166166967691095393543649643452123690294800596458413863773042842086812831558072485530799996168614794650086279852328456056127636974402611573296076215014656773464409213912716744587021774827865515583770733811168509952335876385405042335471996489808609386363144549187928316132790596767635243314090619133241243013869347872695338152636217989987222708301289874852814435475600694851026203561756663335045204200496364584840602127090214290816385867996654679585275162489626284668744072877184024247343742961411847017324125990330280123334666973916277042671915169103527840586610991281432659994351741898294283173288604264460024728700765593953979639560888455262809171259628440001977496889907991397570053000225368799323844660226249640069668772144557861333440482032831589185514576098152386188355724358576213441110969724462609294129389170782338304280036084312510057031986254144912345778362476584913429824137578033028054892682556657164658537328926644778648227433624875801140375936252025046956825767055668446838081310815199641800937713621890747056894582517943990898338833982442778966814624151514161949303256021368870143705586274427638189172746295824239471967428715029519865562844304359813002470925483656182214603362509927111692423118559555775802456378142023270914552607103272585615432277834801471723446341558694163978388781590679278705660296018896049338818132798719275141488004011897145177607637359053602157134799270349707540683450407932313888269333010434114248666078704254060486513059877763573706207492038957650955782290580795956451031144945251399405733517532425698794692015560643440729343673691714622967405876546575138388259175364023112055246873787827089802090887801047998254326998089147579281339817391568418221637655745606111959949561434525838110840213893967229370333238701677721883590518050930311329917580429091211980636095092587752591548301840020973659825025631481186341108034476288762279799349234797063471691235062009568272417353328342140327762401219751915909083539486285170680203598588546558352638741762874692855165235524516403627024027596100583910218908388815192406793059745126599314604395292379256095186230463787795398146441125727226155582002129111908213654372432329050267475784328414304868409395252849040225500571166642587055990861460219542229186907458078655879328678077958960879639265455730709842668077340247992050715380924899510498240338530352373184250324547921071645081547895024031418519492978971081525394577856492453574983488079809798586880702866350109151324484836925692296612447461138354921590939932019145634061639142500752863632353204357437131367463637420551296826665300951091103340775244125642071305392839105872241715080885906824103579552137809053785484555738806360348335159401763969467114068592576668576213579040852477869962396909142749572057031957947147572564899086051146332039738088968213705644338291027116005233321638836540574389998907289623215507116771572784304253850144256080140105036786146416188886691108730663883447939570718493160620287501652244635898361040658640506899995536763770397265420250413011903794985605782567656367296104499842647170801344831909660074791393158028230286321240774662517255530106229120726978073606110508638735072359285454899820873167050151850549467743687046428993413058372888448864740008570781945098067142915534075658010323550129408464130522995097252649854975505436240655950284383135973374267378545697635511628173202052832619674439776607748906899705592510668056205186765922503815561489626282141991601677058215121496783628812831137157969904269314045392810727812333428400636034504763063002318744955232733200634232484460227819010094680211110352952456940156661904958041459597666659986632126601293328394633998876927277980067924104396513705120050731042005831615942075866953383601733002290735728502974802430579536740116769188166206464607972313581509859253500745589692428712958612332775958868286774096451830744412842511426855413995574138861943098524226312824155736281664939403183873838901530957460421753283061218942592323688417521537377960374276783798275413285628626194813534220067176387421041578631260991155959363384555204849448388260340692698669863452087791152530458653505736919390517143088755051817718635482318590507887796511467767869176740064924121654986505578372833369651906573382028848400555766315202930174342847589332428763901006714295524067605417312669154683355020566897814908542344685753166234011707549783342685560101307901841580520409769778709346202772078328212567089540786583614917279438368446717623421552534820617690625152998988667432634535011138834096350190162862818317564587417549270809250516951853481530830218656511645430836275137354346400840486747214258838555434982341130770813260341702242069770963558930737495408115809409428066733663319113888779790174727744577234171772257281087837073821925662887977626387929816732740867412745838247765191041078538648604856572480322250266479815147191275809886774127335468811920008903522099694325643341507435816478173192670465431882564192278926617937355989022908043012743685698958161545209150738663119289371667094363211863917764992388008797297837246112669365598609179869517590635169631124306984655047587150828562035234752908332140969425944761559852501226452464804262575171163914263256806019296043328042475516398299854215263784040459110075107692049302515594833032229762980773187269738627053442405890785269970909731937459373816862451577025005769229250838216064838588563341517838270213586076430074596311696566244155883737996398277904485323300740246663009073202483952376781510705466764868611753726852506172026618704606828655235497953204184175672379869616729716957441540105963817137448446327899313178202826011521097253609491847362370528264032671691333673274400876940165940713188694248936789251062177885674292658338242169681319329688996385002839254416574303037541458064342203349856640056633032349529063763516999282324551633019793994160402674417597712967043051417673989771561972215842208568332651565444784437364492664192434974748111775916781776021629131427388116913150698152543359210203385589836775373398790456968642599013749555870311113365938766318116390385078122123917784752477807103867951006445302003295820247146747344411287291632788252108405132188415090384659007509669544844873650697140678462195872007042580749761395936894263807612733660877697193834904993199236110617085666999000660674173173731313368525122996753701684988586108558423053129887406519309102889414313691713993856992641954521107401069032532187622467628202946691902608725495716693338188743034134326399202678407307850922972957656333444395736292658870258798077299084094852193506210576486161010519035870555070166251280714279942675930077451680180953393432741371449341451701440937192676932347348350284809199839119645232300213837293383358935092343269680472086745004358337368228088260191845034711763237583507518723504307099758319056998671099239583409431656452427180961115212161591528278917183827876765107417179274188623497951344859508129248831653401883112666980039575500892944549938312663975158123301514266234113426302816598007399678701065349341214297272369230798075972048907594543428676327307673415251074086213271192979361036187110340296599583773005195584000025324013175622333395953079091762323222097730252684440334377098748040498177944209676642501516869922532676552225505562063609063488605116356070768088207065620231911270932431253365775673549942298564137803978361498613369759083683924431341968214270672806029067235566373484540434389872266655961341628562647205585264651146594147373036154951459093477732302213699673458531636131542101540456425034625358924718342456085377326815200801640232488625643398660918471081656134286788524625180244516128637128128378395968105788838546200370834863392481724000532525744860994279706432222590499104556863097452595416824214519963714514512297802572052019732341078061821235262534143137238645685009405260121200855152463821511945122282176258339092345675611811448328385512865902966433111409954531260839442177326486843599571002769701268511147683191079865573647598037156111257144148466363188094113290346328554810808175592061773598054863739027828102867313401251484395577554015773603653904612398532236651696588254105222171925591251381454925841319698949086917302146183129138145625672661947258354636262711378831760620686186544907976870180144181161145166304619292977313510535426170412856928166322068018018298803566935722781309584245302549954816278093132684794948381818793486370928049627733355116689109976307011489089428657614970501074505952376399724710000536886155266226794071262057675241852170783570850152606663026470001574109906716987272170025457457922723803709868061713429474345247216100925012553188233635787944202277917820538070402061636578985054942144687378047788386828393635587034830213070841368491315489120971588772794798485906479999513601300409714863224472766116763314132174911827899946135460315474093024208794667720260274417237016035800285502154290061748310732225780210490317029974501316018386683864957191980967444955317989272126497511998122374825991283846323867928265657838821987175136885244249214630607648906183049180741344009605825135725359878394104275331507905308734700054513093515686534269514034186537368250598077691103111910216276981816370251559980743950056989371449064968990229629455798043484883801385264314821348433702808145013577602416667758289655464119931557559814850338960763145784426677134028738175604937103287813966156832440951435098967680776493211645538642746347606036344387388203158023605578884013407627544518099496191382030731489590442453148707180109523418689943123547667922368376819822252659393302581781906243856048724899954130651564694346236779463940574675580679364225951480194110802402023453127543552549441091068383722360847594845186230477927171373059734191836715894619599713520899615321654926918700447936361389030131045234112247842764153909509770788042808132736811026467477099404035664457634782737104139821931790137675676621472211084245128459044279850341689464752739672404976087025427194417871485312558957712182790572694225049158071714871379440294232409613634700150730965190533525072842452373462770261215347126564833884418821497969459007176751347953819590841617694799863638249408273008166141599149044974424165099093734536957305664759150382541732259321106156444329367441497539747712066908807336373351348821909556467885141512503482430333558118551367240419273214381801290806203679502796316325845398074005070897030875839968987917827863479601010186065009597913069346877112417092999108826239927554341141228086327960242965285918667290930128872264796044910794876699251820665948802179245343008762711312836130471824330592779098458552687369324839892628868131627760492230804493198609167830427889908907032922666231258973617196115551935194894579614563022156988612258161530795422201572738074359230265973259136031428365145567233191163475570510967798484076705381805200437940618327340560838634393496143067825512103426647093969712387664783500139002796090234294115136804208641711616717640103998886579470744099876949723838448974121509475420575003927251243007512218609599118012227458422629641677307317826320070417836532404397093941948897613575019774714779679169301426255175793057072734398970994598744578906857761012784102287606010845865607148447506127258622386204944299041836403877552587785835799360520326191731690251751228812447407861227431202586306992499065016860046255901576347124490877287515989330531864884587733110773851022069150435578378533435200146575497980819114122726815130476155440880315113797770544579280396625525058654588768913362649889116591500154253546005439415786819743376407177082138816758619655195703835718622847539948811611540507976639086346137599726327460683243198294600452553650755668668608991160226670932758759503764726355231092938161590853019080803431643382154803881095480602302939064236934031429203276781532537966089003853901476005270877607215119575105416354418991883730131627194703018543827185719350916652835704759630539718885389459881323603077337034001242191416978294288809428164828249107676399339311939515761996023395600901911666632373360488379276161205959117703940086987652775145772209358291752394692113229044800815052997637733485081080035114597861041202846236333954751499030229706626736160642029845550504082672373850964149610816635610201114801372848678141733204860419235104129152514341731528901178956747204603055389750008791666644639858374118876209415785008406732317770238569321972784588033356642950040420881872328800382831992852655585644158962724998060132066028682090505825499463969083781987645312991393950882055803599857584001957173265760628324604705250197806637809983631563450409716716701749603723714122544751346418710600694732467949415226416535310519240518721956188898354297293424188032757291350579141853154512662614453741786711086299183148138716524804262825829917882472060616872470276279367814369765893775216025337307030034178875343544259767049759760384265543472828105573685564419020702426357059397509865700295406146017242433167258527047659076943071141559559312484995223650073516039777055580073856912991643428297284893250206027677795123220262105671595603781603921368063224543609464833339271211127571595428185804948154798685677395506826478790171188324552829034313282011601350021034506655101797174962726168307255773764618465426719389321570322650772998607730429341672609725158746165126399328855865567359794404110386640911979569681768828358578224516267357269189775090492411952671228248424719130438443994190084668447775241433103786979064091191132360714316811161980283787977423277372183799401000735273185638026670614030866450329710681095946617817991366725286953963734259667862344919942555978163249223114612915864367146860131289916163366045480076508520993110395288755933837015239728899584082577524662810015610790444347616082999012554131700399520099661575752865772386501701648884297371319128710762050413648261936628735239276802797511725762192286153356049491777247051759139449837072423412751692573820667029989833872934628392769526975628360449705069379310188056449387574921653096237072953605875936337699184203805804215716628228403618296636794802339346893999046761792901421572681320613231635373103890780941152962523510137843905260926109426260837303299694644493441646033142234103639569159870556511340344058457762598908447061244623101870422608253525443862799936638290022616610746438493891784738640315876973351488256552388146038076395324387859337224101991323949580428427207219145156239948497185719679893286208766340318230005205983350293499427919521227918187885809766579237570422778009206161469212242085127985469454049947362415901542247053532792075716389265068380340515934942469908266390488039103047968460531350706353789943169891555054078435323201235193657394574248294638258329324956142537591822569778995544482606671055918168818793028920982432668438906542815579914012277647742742012506003551131444771989529183605209357722529441236413057317378587153266990710570304896738195022593101708186248928894585055541242012454709108385422707456704612587657851884077852442079046155871550991298647297167233356666829082850114583579712032513161050557546013901544213435477294185991589896413275004846241369069361904931006865161020457060360191267059855661240629115002436257755318335716971202449785564532952460297743712945878281152769755208496383170222769714279007203022605811025150597979167590371418938603755223654256442951372872607927362753945277655559167343138772278219740013629991502132875869160523069165484228986242112683365838254645834812593875462249007058929296682464798284449512163555752847876016915092968214369797732213004953324936147431193723379517923132981407044958046083060978604214561939729345097313543696490377790005934350592487248687182766269945880811626880258006506932820828693819199324744179189284530045134845219503725957171108697978316553523855785519427559070904239650727366956696717574944410579051189355660936283645141847963009669681236580207518841391948202698079601795289661879041691155536683145351872431952937541538926501112641802872855322681461688660756964545186718627693376906445454574730987274096037671899621823792187148751308229219867746736557798640244799789898240626214378527719548289041925003463771298637876288386084682423338667162454890055364538850300978304227175351962512694341676896963536808493445256539226397180361955429771564296954946640144825130409899469588928095553274996037079651281531203385332427174817507907981280381621543553255564179060526932716472166309011689855210268796582018432863716904824452098147216901510016576906446527560048668251202232843451284868916639966036923147286552120154123920210083566887096459030722277890259684110956889067087228941263215680113381449967000959589267387890105564283884414641858063161754635589473419754521775510700335099346190767709082106514340680601894726714811548678434262013752999526068257453505159704213555651942572786526834644501059792332085662723731904726314651378314690959580587574998522655875635235171239312618507116576459420245556927707286089845304554118778733613654751867052879326009119014139847458309151361950246716719966420428362139520265468140855421004668990051328893008401628498746056690871233423158464036689199017077122936759081800261596665386761336401326273664891367689423286334185348806978351375119788648839625848223403764681792275104100774095262622835850756981399803087927077434172353771620428541016741706919044418708429283077355097678811815929783529872490920979791154953039971256720177512552278400138288242665379393389268567620675150418669410279281873668714255696784407375604503671807137682572493365164688677533365683062221253834183871269003042759006174417248610789325844297148821031640961167099411529617246204515287806988821885170296724950561000476540057514591919723665635216309152986881985512171152461839601434822694384347055743876557325867112585781264736118534002149017648515515500561410048412421693332674265070529287250886032653448594343241446246808594051211594828812393896970565534179812565378337552984996408978511796326466258878648842030466247716314243177937335260666979569107277837184286390246578019441752535479432113296713368623180655100346262716222323165689940919737728806857564435292836069151786980176289696766177008186850861457272309230456000555218542036422059074661639512763694635710447787674002343710776931132725799405660364344232402993202140310393135408837657692749997187971063598471909130033400728021965750791819404374191828508320264987873187362101182643260619656562541654814772925420487528783508819727859659540330954130454410452307449491289213202929666600981313084865248252262296629572818973308830494762299956629961376888495070158910456821858510455344770256800213339879858640578137475463900192776361437869644553598614382181314766484367386329004367052416104837220630783026468564108517144583165431752660546748788573421959704091925780243869983906155568989933296336055274216679742901599780988205503097324075539482123842660749327068755405753194474992362994219256969099577740331164717138167991884289872292704512825512998375827920890917349435006623919848667920687809251003057913925536356774859194609793333083074604961636918319764798396604488990687499505304058354877439849289735177021322543672581352885968404205621938379185496174230761650846206365570401274074072955630329866805244520762011179869120686058605597219171313220453328881484081679793061682704047717623799682404011320857236105268698304347557065441215701364349318122053659470981072585982978377644859365688527269411449475019842722302291364717864832245174842067978669808189288970959377480364341726498071672930073903244718260369243584309913692050405526545802662362865005408274837636677330963509028932650199102785894810031092044155685449892321130049802405501713377549027283177860486376435215845384088446861933618911164981652026447696042359200723542920856193441547002908113036089741957048786051688175974829624978647392101296508861467452739118301197268173466945572365962609903424399547643904952267779011750444259556609833328053805638668220559580767017830968768378910605389110956763418499162137976575248863720361983564236180062488133094876872576765099350846990503161240242454123774686105948088376820659618152909342436337546809997916973793235980505915646288246754145079398664381529930826776183941710224472410969057679469854884972328508130392989567642330351137025777044552992519792940092941537181707156783602649776613974483814256674313198734293175577286373333326821790608814092057171515977664399164429995463392717849151100237626990053252627127203195267978337701333989622764209654204006390682030718861408487263310960843707832449416230511447753856097290793200630499315962037571516926603411076398468485164589225379166258478048624134487879237027229273983607619172813329121154694505436842850870651531623872528457083613786733687222430726656111053931593068662423524894282892956293953032009684626204816065738729755595522528270346230752980905905182338488587667741612472369925350869485629453203404601913840633461693408318934956337815174033478524390118177825950848665790274825042505711678059845354164844941920803735656120977350950974980729279372609271670246105162675429775213006307570550064526344924317352430541390793472469125070781362036828870912185675933052241652228899502569343283647511773038283119611612826599804745236393636886741421701348064910515305779646640766933372864259843645947510723386939981325245652550371678802210166188209766382327904503777551979622970015903420764707578536182940113115364197492387895405666209747552583956021245740047933433306490300916014129276827007452760963704483750103008917790585704457772765098477975799540196412571028124966385547594025345234363293481172445507571496106885058096813591912119037192590775567477162185076033218761321881192966638510525925872155693282026452386371240399084392992134589666387715202521183494196731085597148179293934844849098164242802209730131227630848842582599865238436683854869145814896537883032332749378447602430577253829146963766605940190034412853180681801017746026547398687305824524805650749610706173524277254885571233132108669963816127756541307279638210749297846552553452507919068935712911320689211812227603297134619990982542022837892357094765086987289435384373372828836784686774167207274378620961677247058379299555998485344017858931865774463407213184642804314809360676109839052795841744811872049881248614192888716831091141584678492390108940101087939213865992258034525691779327151195363794025789195561734557266808069579910645392922383105314364391508713777296197890920782053956248003224482622119148270093326041799174209388213209167132911583839816623157523304828369309141038673035781611359143610064148207285922683479614665496045511061765267101717226793114034019696017575032918109104943986658193311508792207366247177201065325380132608093303919826666879053902379586710512085289947319564104267007825732523882994832535817063885604080880828834407659029955751700871925927607791585447367353816864568474518161499215626171860954533027852930640678752425171010383034237403333134355783221577898027885328963226021674629550930311073675429760931047749736711777022568347798628529141140030660135908507057303353595010953401687084436750252192101131710001430748307899672478967631739018981035532041992591167606775957512185807291480263926388694657321549600500968672422230770229240516511972641359028686653578419703091530926536188252119140067120410550272727042985629302325570873859959460739514875074178538205547156118558628829595885845736716002780208574131666338850587828881562609946116500829817731607379046216423399193108505941617522128409515676682148339773553460119118686518673819582520406095723699315528766289584339848707830030922207211359392420581149710207207565295507743809200713095828210518738171089038728964289474989445273381304002423708330923529555609950024156126206810451568484661216016038849194935900459670431213938854992007756841926257913081633341651327691937374223412990398868256326264626703613839342213925622277733028019709487469827755068138583822871250159932892981933450046084397001749919902391394409739916882901576771071436582648045301656188828361542934936477185876164349677231420375161335975140228551043165349657258363641816841427065805205426157851652901765744689165836851530846667054302888744257235420969986667561931843137359630672808900193157306236893661559085133984142378964833820477715676194839557792629033340382369836164874478167577898885499704072703884287957664170470337371313982412793534523709350981284910356671598386415569390072671138296799300123805228741794578899529573051374136324097197695723089010645190477012377124396772655138134411712589106393591229648161218526540675207612112617923578003336050742942366036291381781266047971107298362387370929414588369331035639069182689994402353061001358600223282176188542130623836302848067352016445187504621131589402821276993310099293571667778563221137088861101267944680383071192656987073577272076366171938650598072550336008012571307368374178490959895917614685344737468652206483498497264931641270062582673790472846409837943234685177115245964881528231354815474571663388884500763460654679136295621734772928276351253534272853242989487925937859600864036000484979128910176934498220883247266967254267584969628483231146922817673554577212434786134346855391474706319518653516279937261706455925813348603675850526298058911465982497014668924465442144274369604686079936645552063767124418552529918960884705444178890339270474535540252813944867941588538332189142602211269600675479557259106475661849016613208743471896471237236698566608612414783695898718732963217436473587276420999178476460063092066349313092572123711595662875532696708543681210141791236944482439284494711018841972619121623621219604894600034415568892718094270609579936516186275622297568328188904099134558107998483708488712834999704264351732938343381413812957457979622133366170430248661085488022462981665851879280761027749338206871156726935847278398032227487320046980547911797365997745862570218778584127207882438882409366179358257035774620017417158164778688653966798109642010943657391801118098280187817803530971783191176108748476046907560576021124549132295775193425643842611461393956683925384808368794769416186141840085650568462588290403313789027306153719167449443327235607997675368305297532167654239067140644675806548052634623924555620058560300836639904831544845849337595797871514857407274287393056760769693346551808993949103733862115239042603829151858251502221450181725249123697098546896779198531639157753098897948881788114313535369623797740844143916679804535192329812285383939543595711384967186115497755544957743327386334534852269993960232924578022147648078042061041780187753683783751716781122876775593212545864021385224917611743045577564611116325057175492680910865844155896093776153771340419853267968495929116768377087957305050817171375288127450099884827373892297035918634499680714439676252898289546591422736701394396877235638361652604106860831901033764344551732097624157964017291516835801229519447061810493083433021799181305545109147376399919898474742062713168928165762244055373130391597150160183037721567818426545761854829395144600883058538883718327169548876403554430004867513395196937834290442244818443780118439738051744438116933612579952010885478975290630472725684538505100505590615064145816658947236806412283062800346599626362916772711144446467850660150854640668021644746688396953624295861770779578076421496694984038625428049814033074152363339239947187075125396880284193135281895247416113236015422342691810714996414099857000013186595849188388003890865576815762056342382214699909964207576417778091278545509896332350545094944062536442777415539015260400110225731038808206931751019527028431652701411273520176262634943075713119657096412432982704236837616312563833909343234341008007898618031549202225568597009301737364403108116571341337436594627795657199395577067058311734746772338415906953873832198797578116124095000923510703667970591487618589352610752962178592886271039465309932769352500883229572928767416944905567115760369394329142241440546556868661552421255819197447446611877216000992323768646016032768700838104935358172778118212331034250758616428056558033216500884931849615817919837558164724133309120499666199222128079867917779346637406177821652020772831662100259586312440233050580924120452697288977015134174208579817040484165145155442254790742932401704131809954559260531302476429548961853507461836398449512461836889994313088786851283422932431410616438647830899637328193358565602195436854721920543779222028476552902392270664965023150484484498667143821276452751662968366760468105574287470956125925835163869615144090452247488864101563657313070995668092476960079020565184174528944322364229773131431912230239629008631295516458046441811795618807043470700315102085756198140521148005337692501989939127689662331884028626794257213139240550750571384527794449167698777861825444805369935827679827216306754581431811720733249696465442023091623379467493268779901191097232272260655439901847799049326078718061302456225107909170148585001248053347123114410294607442502469179369723495810318443967638241706020189445170468956784248833892516257486045804904030472822801741784387698731922945243205369530561383841952052998508977360521292473842809334116423272122184168794419269667935003006443130440622250941932171283941751116577490848693263028704209073351497352814720117594646064556147805654002951863545570762903267856226652937657671377795713292653988838666809822760892713757310233937309377327444243073125121961325199149689129255262498883988613957957500429231951545155228118007085620821499868273280550980221238080081143141290452245213322041909104205483328359056446526269317286785706533587162845933558738583654819559374011018458140136402484014317927590482388731252390872372329104643220151713907695534079867806640939779293264074687128071723691351932108929024241655202977002579035294686668843340738009310481123070475896627627834329077372444343923740076885605668190048633534674542904140473358353276251204830868411484515241455419374693496896030021789432378951212042777108908761063198715647039685459056234013615971165573490767615309583531770563016986340206318532252564195991880592991375501600971943416164495468871625122863200930849092610652354461778420214339082988245470626288478910995900556669918699509366762217729727397524835787043745159496243750587637233178379669382257652456343224152160066934768538604131060171389545391931997739079294222010624593795745919151502131474920306892927019344464945438369848462135956853413824876433361035506304873361089611909755787553976324234842402858012000892516582653673894577797411763666925974819263584376818215659469482540328805032285486707160879877185778902605864552720850618910119622369406354438147925317077505864836660903605220593260102445056290825253029788789611163604497335936161853932291996743735871874247553668449032511012712821988231232606234382667511506992504693984845881801452971799107692475484189721533762953664245261698427854692943841015138200503342444954156329320888015379174503497200319713756052154558205169742541975702437134714135458210683171757279362340672215805980697103051329973468448450998268663939082831860967977499732455961620212505591033530830170779023228146203899475253214301080283658399327143454961997102393174154281913422504143350727909033725717420334770841577254592271936313968971470903418707965605629073516133071817334004219388011433118336098129527124954135757920000807690440522047970157673202716307939083718481092415558304384300739124371391900709868775740792978288401284823206633539292584662696294900291792754457326649142156081619205765690574818813849532918672286298116645794637508999731400494664959754023642897846522426260232865130325490132996195952284878213192763790793726335932765580979051907944985395556666007959689757951930449145905052060469528615031546025592424275358018882256332392511492954073262269568128734818283290384498485439586603196457658170394972978307728281094617108887540737583059232054153679808701338319388022027893895517723325737305450565515528595186147026715388359282359907078234327296392687877540202483897528292853736552001047584378750591464231769470990018240697661419213351538420306709704540405465034533194366351931002623708969426904750431122499366286818054569299127372518518044975470474848534062061693636490007123033337878004264174117891694878433359418137585238617012325147026895190370188628111673321029760367304043538316137827034726215114458846327975154452821675473519639969761777041100707650142313240022048424604709831303391118272604897488972276273264485817662402858147937175529787891655823883184961121315146351720596943006054617667926224911968079281573155926876045834187537080156044888093032852313979977370161423464811228544415073554384476459090488942067307401218578837906242841999789172866856037317848034416939216515105235250508985117899403438878875653162164434586817611061313999850006027013728783573295819041493369085484981557438364703927120072767122659026152392341615533257140708325583989649872598963437969783879059581791687640356073822579606489274023982841192762747230528813991976225515004969566350173110573508081671378487136846711571777401678537506952536662732114536550826114762621320349491945080615091306762673855577714773012258017998300342053855097531574723845359408362571015328093622302876848395304781159786636159063609155162856788729266400728091182543189385363914194655309150196896980348240246671575059373253501564950875278977881729625299297803596161882702192679854078809995416798654312778195753827878876357514030468285160850126749927461517556298568845386864539897391765270702830446136499885191070036539711438292197834056156416628952323793870435907714125613239604367558178094584200074865746236179890253965932638669625189396647838334010325594720309159877334073533966692759677147274751914295258877210831974568606025107906516437812808186150586445958083821067467716683811860008701576475122227960189747752806061994535866649871142130232450456604684985829732915411150772676461951514480145787146188280552250985379095097289635756516913611517692415999723940437424703343120496064159519697116698961949532938184267701416048313815514888169945326221831846215125947429628434203272650464597761945890691881373380006476246090965394039748311143272296796346430937970462954759582621327422553507102437928105792111264474082418713241309298386641197644882175604342471231931832525320170107262423513289322857680873880996055489540738553879768861014787220807467101694737062645849084286619034098588540445712529768604456562826512080919839952956647084446857535997822625342983603820213244219189702927915849183262223361728655599600300126963627913173449709537535798521600811041869910235456046586997564441732955955613780473156590343019844686517727676376757569729487740395574086129664138702906655321582735202757008919509733445502832142252275278014988241416946653397902521975833584635351676684597132054103448908589634338858223360393749870490447849865707813912681302977876150197427261165700644156644083559757705151594174911933847767549141513591321637487725966246349508470452473050898166904651703163091284698212773690161804182821718258014127104369345993948752843319921049288019629897679157195365754987197537881247243276591994131049152698397794701053333034069147555905175345929828176893782641509857964020824696128908065174181147002867145559639496934064993787730665916081361433363978727550965269916893374572985855951611573909310005148414199054459611536707723978746952786517984258371120462030245036004747543042645862354109441729532212836499126917985022487730165957361282370483606520888564498804874786948874688042184885595169184816113656289754848799191517190281255324838851494613755015845088517244403481675157770104530107300505198610032181069364156483442208239582535758187732598667029245654119604871574526134460558397923856469282975329163439938308346343905454015831142922920833924014620937878633812086402798770697275759011505552845678059170126215755561840701843732351064460795782339014757703689105016160661900680824641234656084681906393243026942158224579813904358517243895488437423709528127274056420324274018846400320480855636492668684515777649697108769220187755394233184913388018667625514935772122550607458590566527774197198572335419099601549336390609297179338999684687999128210983813028383699194656275155968317130882553616887894336584500853688241464276414855231788399888948427627206289371683818482464065133159005761418012418627331081095002727985891826937761210922487085675648110509499291239938877019017126611093250870520538301259902926347252046297240762882024909100043408203666705882820047326679226338101793456463027425713978985012670776217759667603365625411144617077625324956940652528424022999105719743215541952273866310598192630573470473643825153631571956623608769864912475551738800408782364106427235511367850359729807199969992420068593427417331114255605539627586714490261317098550777563282615033150895792281059449995098806487497375399964031002886367982810641191092488761962109619323196724979880129638668058309032328709654708564271433036463275377961017645187445270872472542047080512043204581358442810927422418299434103528765594136071855406125775380274796439658158989340003424900709072290241068241124457323955998541154573780596246926972077648193347222473428562745258980538928214885927687070653695373615190965802157380401533473993775491531585805268478177189376599539215165172227717287149120049972305555038658508069821241650910643619395246711241412499102548602328189693097643896606951139129362761946977158097088915884178899495888330469880697472605176661217424197870717292753766554771852744022309422212468964493678839216100076778558463808390110524279495733333125535407546251622962683212872278376092082437853342014068164629300310798256832516422720840842140258402230364429231067617425607246971058326360314388052327354031667317989809804679568873448017385299187760732975020361594782125630900352756971132888221620380082698290497758495864884838585196099406153004506524777426547152291164408316124289639669535972666639622467837374688512497854571699594490350267506640140917873513039075032532999177658189975999029774730158381359923878914940584935678085484452868593572074639800859968385245429790761926452716996129705755485879202360158466383320997279701611846867507509429740300369688622319010188180516386509720476770808830228797152973067408416558249215818809950560669691898890351678048766368533479543159077320190527740073664791327746471432915413301924285153243625059487051332872498088439399685004938243757186242223699082858632616716703485360182629854733258091083483817438823007849864527655796328427264401908714286007109001860734018221060602074545543744481265333555291535859660146969952363525086116210910802016248090977175701376415762873430754675002838425678883977631054518756686412903637839275821744298842623876242434858655133150585917144539310794058561855579784747061901081960198270521650347670795957660715225657819724994932906787297136596994513325534069942480496951082753901866769021211475113261824587290048281163168627251149015085807009954005004350473873418349850084275729096134484825876230583710245432691229669552486505887895991406994401096351408947972945652248189910211641917711533553501960435025612929104275789918519922018134730466359810002273694430217631787337107249474875865580268075011613165199793700102761722640638466953721172142520035233890554018081575849340175005872628186593959876468876138626553687346501402318961930373956884157468285995240345970621641624060903167608514478142929842706828479021450961727424730889148669505610186060795556237514596238121775333299617941454830180202816838352363987374529274559328836583981182142846284587169318809695158044151697509133273493161992639627710709528265065608314770558713460082854755336801745859661491654533011373899231987198098222196955500252402384683612407648875632463351674395811806172137730117130854432448229833083335647489627565438121576426830926627841827955437964789644432378204185541938564997171590053513113551411679260433808643961022546753122984657978927811827471333322203445057067833074541938783428989772292142726671071342082983637069629602619822054763904442260466602153076358723745274788684335540954816040404770126871824158459458991946979712014663897981105981308630153421194983608375825982096275810823076586582560306617709381039806434504159278584019916087980399049946648956925924197002901796022074553233043580755975732166137544868070622405764662593806350178999694979207056341417709178347675548701363601144524548142497733208065428347021297100697055743463565673973027723730003366938288259825995854813392029491916322813009080138831809656185448843827530904825567458567678240055779495257314231817932062532062195026580701899283589329030365554857623212627025803322154393199720843496637337645105418242165198430114950935874159438703200751136348835357529439898679072741466152327719790751335563585864900837351793371288743720612964980711707231490437036716763461567920153256075411319087353650972902319304871313452135089833417834474429601714939789507031219146220420982499950799754956733363449228765694270309734652717150113122997661629561879108075570889934280775378597375185667845586033667961506602978694944337293412569849431205772645800804469247508766761719000301959122607554974834422099160674010131953522853207026097572553112894595067386072197652957694536525280662584524483237177163497184878453986803245369202944134819299749675760500113823783984418325573383940521771245130419709416068637472952872322727257154642655401398229748600724280139498972844333329023844091930920950850831992000853080305223581922292813010411840327077387674455083564626674599858515358668772189190827383641241836436573911185903456401148349946260378279344786140670914701198015291433080371290714743504828856982413274515902374648857460374738694091264333068774055797627117444353438055297202367210249194080156910295669707703719690501632161529888486265729006656012458305932243871877908542967754395567804932743071737000544043863704117678460873649316819594595658451279171014535029256968071467387845064476933763969060590867044265331848987267391675531597181634153080505438888060680619175809055751305282576807777582927202623729263893241531170404164774520298820508725706163221277278076723280143456949361965069589133038974841368324096340788675256789749728551796861818276565082113035890552124675715787233879983248165105403676939777042300837616476506129898812951108801290562189065606286101619769900895665826026020868745294450377246317392402691068488471986022205985871585513790691336662339103745202056962945770299784463475303791784787306718753604025450900436712514267603341506309673988739848194148990979350001914644291990862715036596919738925598415879414350200279195148147456277311425634214571674671935780840885784821305129117742917728013979227966860454063807276159471650976560416018674646661037325731990654636431469587739198193273875415714097051460909310298431796494771762549195548102780439805575860562392149709994826561486552572245990413546890315616916068276204558010648908956208613555029918423155181427424727684500487732304809829801586474268830705230289738123883670150782018188074745291468297111617442540840772184918490061106320262702914843851681307870342827426275270291537070545715656821088503184184475427345449080896735785542499773970514361813655521234895800761280149857661933318362244442880906297533071131155490368612057079667089958116768908834145640934043219300609999210895943880796435566498671679291794840775077979356455100044578742179088353069883668719848323696776983843898731271905433019416000668836124671693510076675845469494812438329313972469888292441463679368005217696333057946403765745919007671087217416945701729663854375359593460767032173339521992206384678736329109579810868793585829206968810214906473322833563754838988349795303086835984741418983416840730729806055121649679877806101820812675642002632872001028887893696861871166078842321109198387879973073246940716640201644876681154517612871933772000485097272650476186222610125589757836518318581559812904024198932945425071376525412162732124016918766723547543400270049391493591066711292826389959058565989267418055479686509327116886469116947805627558380797907622559418273195215894883326241537371081295868068101396240523459523767752800897290354597117234544173218038994386580330402050515196930838218548872860664741542309755844516334736105023001441734473324969967002979070060931713650039982994349579357127625918306471818589782805851355147942497710378171983285422662950964264758992130456957755211773939151811430199484546312126819392116087231288585372536771316567995595245691757474309650491964816619631969078734442639908273440701601988548967294567652579333849306866726825110216805754013540821073120603391317648550721109298959987809276299405708863154431954161556944645774265878710082489270990213253034595214487407865904326342754906151919015844304969221774596862632057310451699272259135496424366706060993252889739125113419647993091299821254522843118244380205106935885989796398546160154284375269683034681515302726898435880788339913899522608029675884374068108252198418494190206297598095650402210291731080107219821027499626289903369826011813513814522556836485714419511918950272175970859887449697262965316343746662384503350408862298873333559789021406532850565453886301378963242263309930591944305816303911171963502344404782569232110336081227156730736694192084913917842865291520242813591033105929864314203982369289104546058117387779578997597874412270669326637224787635489632800770408872260208771930660042589376473696104977886172339000973627333265438309439931832409283344675314858876678898586135595674374457906931668151991527964805049065437685914063549972634301528349945309839455211118474119926314788880703618072163454785588826335874993879952270696586986118581371172679574810267803693667099932709001203062439851148998352607501596693332779618538125918092686495266019737654663066008213720857211614040304806004572358091588279429476884509848572498791519750353454403092499853334425455167175115397001703900660869117135301233623911961012715201728549337697058588997416300302407804339704130511421812883962024169375987868976272436655897063646618148342916621012889810898584302099253529313345841112304461707185432353852361177296080888706191448661746340517587093620673725647551195065268213050361293228347203336368566280274669863805411916053951711806888742776801039026973915259886092248427305413048550863948577330445847694783943582008323544035715578539696070736851441405142127931502045600486239418270872708772111253080493157925185022113738133577959602023910154931737863170582898803739229520460791616421975527121606459083480733097056730320534336239893085364073955459643659308174812520701514726620606044589178104055284616766400741482222357401170052773961211142339790130489333402970283982732325783241077038854213063209282181648650396960305322877690214306024924467319447640667673785549286519379780006272774602433310436978711344875154652627183178965937510880158349165073221835033596205693782466740737982514669302382139077960841225631508724226833722137593029192271290552343921490798062293819009132547209698423900581692959535520843174959814986286126509347067077900625209041125550672542802617618689833417375314621985937801037324814689957741089300014222383475574369184222008822605001634203037505568868013086552441167666784471403414722056200977817423980670132061805426519716065428069494835794488734948072616631800155579288193160278880272553510103599193126380587964993133149111451285313276802159405140069881822416486445692962653985781934681680245881908260839731555973498422343619151101696247036758976429486194202156409136910615237657851450999237313106209560831412284227477837780774880813643757080718154057753837265292850195875414755407714022569818257803629375496158913969781175652742676810939225486726768174106938390603284945169168166381334824216101202773268287484907588205795548037514870887843907807204050888924957668869202357626767917881155792839501735513057653441397863859506259965752070133474661606627438032872296189082113878027907608838403797809480486751495093378659443676366587530517128599448220502092465898079274008041661725425414945160970958495208413408386470869941323850736335182841023186611587925875141592279103181422452836304655729161509049216726052210893000719223678226908505774746835221120976412825066992782620418917286119754479639595304218988287766393076830643190042160230236668493483551727627528187402779650023903262449334778729417853297176080743725235933539224007966200542587545568636766733494082809777228544476213244232891791758846503925847227005842328900343684599363492419367259991295442039023391651841874427263915151058958003569672427332071897936921389511039980359716481824193756266426789685371584273211589878023470256943093170901542723823150663857542395098755729873168908724305057322557317376658646440757279105348460519550739921388175674148309449928805820640489860893611226628623243832416681872429575982718338918196438793613141290122027953854755689280416640745043969399987911279981612901939318129437826443464385195187088596645671389651640678635482707462426756941677620339419729544673252965038614055522524816031613600683870469431322440345940669899037266423262675042932090861510934088207452238792114718733083776496805978680045226881037647522257310885797552466875621644933598286445954143568851730785502864274782630064409456822540648866756737395405463131953786102197980951734149955404405312497841614277973267582383872586099823541676065334865765310729336401471992539461706421978010638846789278447364729864578701977980019314570854233438910550911832097027656510548995093012307423750903731787245214564076264669770304018772562023026294272129749814115519562138659046928343749037315499126557461871062454880494442089796220172798157272607814111173573506025233919032620815821270518893228906219658019990870812513764802942425289109534863169337673213393927136962959585858592892557584493003400047189496124562122898618847354587649072680881227418564089608742785756960879322785271760893321084537777079717918690432369678208906618185861629892949116781033477782203103898142935638067484601112720225922071217322110993154924354078007106331807679285167272104436355705969963222814097658465974292743880704238311635155804352485061809736026563816715973734343765875907363677576033479539254109242620788262410101832328931934586008250986798961446722479486035651342906000952384952688792515219418684612763173433135170444680373900185665784945556054608642652789530163934450749214819319021361448675945677438578382147253300439134690816003330841059629889538702772523656498427514405850332611433300178854122059648334591640565317417148227905405488281299763531301838336571727030368042106789680732833066828972275483784822402714234367872930297270753822394887099968077035928080079412320302620963733779051612266433256769176620422828784840718490560082063140113377654757420111416129039210010333103431994184723414336660279400560768635925990831895370343620242832088269607975714286057409204169651546337695511233122868850535249777157911484037366246325487389445008213259520245931194396032498493174598900016910239625015541625483132394299094739599052297087471733829339294667908462630384530986941766476226995746515174840035379081345032501514261137330423401835835174150913584815233016162193725064471745488425901036017166398653690227346218353060405637588726276301751299006399543827635255686514316916307292978996031494283790700519462313037932482303926690053189711791884671980525778313410816267664610070468068211280361610989083392398292930139718400261489819494338487858587697908023744088589927020265822948632251205839911483319200417963980307690081010061098923572158955804973824045747203549791740578431896522114864826419444034087779207375831327031715178442310790162517139551522865383735309611343622378803419709124252583551307148643502211877355256371754277468845737135800070252402889436906218046476394451519485613549633133666012776943412943851416059966636294021849828554080231843940480976120155656975794902568469653610768718798027398020467828588016167905458698003941802808841609967508108444424813586554257933443766530998324464906105914835402222285781458412526406002639331244244172689406047257925134286600884044481918374349560628555094661641026103817956830687099811380508658672297056462486037927871268897214054294223582537594533983653798977796754783863219851158585609847280198237165003286178142821719707320265842123163802324495357050780252301556512273612176039541915389464403837567050564362962162960552050426552027568987622530775192538233424864829264438159968051079766678707742458917812391462125506747733962749973989192032089248456703288905082893436911277206616064939042801796553926499267134518780194439261777800784527948147298099905634396438076478206327090464801219834411710935263512661495800519705452219667572977041820378006883552501244218731653041186159975780966309538528258167204162756822415227895131619867110654947297375123692660552571542093048151275838368987187095119127975188567784551487192016916931275406980961697575373445207761781753465604627842064726706386797243356212528688240308041195796246846290920586391637724325532762195833001663930825081114250854571819260851337499977250749624622646306120900055939993070738240242593477540680005366500168826225899989378849304496822392486902314555629199453235491090928845273984938419848934731193248455975934941584687048434590636652303589941892666159636255407570598617114742221613989972791482756677930543992612882875490413140179971470166810157096613327779959912730402652695206746899786118335483318334978437442360990405698860751266510493018669390732708912447827027894946409269506921855080024155951663188930087075585844519832191688275201656372756711556106671519438421717709333619212834995794666694788116670838216795723095723821958864996626420463641610035987188318028659619683682851880003671999223416493194517255972788831533005172523225202511299894297618657166308151368414152862496842687315056845806327875481807003244840296754192301182172489591144626348761219720235381106418924525717837027337545973174732586412812081956460062130570274225352844130418308194574222975575561352521856126812186633961598064383566540096005632778442792239889445729945225148933027378928908292029290548829417536040459679691794543295467253032182286453519521362779455332345346258917690626059157646680762761232197503766031653162665934863805963182979419948730832741043754246897728775969812796675645546534393124054140630095023512281499954767889245606272952081502780163123904402265384626162861742689893726800360893035417458898468903844247911462613562527849524893161986114073201556743407376445637436501540093940291242943372187383674578042745008542302952069725502384500381374087349605653886975543715591770902836953503787527852215152527478217896762126533568641379793294442548862471188477755468011292218808296789995943630842487715767603025281384407938984131872224432485541566064865101276085933961640280337037623051993621184019264182016150957914208464234989344299946825171825453602753502893764767688968966047373759556458913976460595473745706499447004900170309990753047050826169143458976392246208454122722002587252464953053530388851488699119210081753769279566723789712082092091277682599925313411422256993422856449822282838899825298560921841556288490300190986854519727083501301385872602641208447578707509762758195791874882435477576356688894044917743468963014495449340988758313902574956298801047638042292912611661941388203657015854212334401249691978410484745314016067106585451861336484979818088908895833189943907141512571697018527098499738714676139928317132833790803966003672243699620728938576770931061303964626585835751489369111207285834436875614122008089562091492364455777780226056985720016866029029649213362121434200597569343649896834392197029907789179594831740499969293666994475391986678197218156787405103285461928148726936730056154395458034921185968265637548958068600553295725693948835024822228353557595003317772818832427555218448176621875702595922969462241304285095796020975691761134720389272539632653170855732196632795685517229344909858560838343103314040435764977844185930639571397396934353515016883739455144811525407344961943591772629178165156744305260903305407130047756561495517880247032610982678108943166481775784334181562869369364596627993302756826181953825766698069417728196487294951000489272789044218816697779688090165050221703232596284980534471146615885239676361091008030229375964799713513738194749953460363961609983380135907400437579601473757073802872316704849194130608327755261952347734523954348619160357507670546429022984163219612906237129366525813604449245716053509625524822082818532816372228250744770894975230494470812569306260435013319978570584303592993468149702760731759256202471688553533255990654878461121224901502676681504645300826506736647870781822530566995460404263013341350380600782760533502244174248379362725982404129120398813506081133374679858726408964456109064495058245265205876253286472132244581197547149331087527151131707014269398254760884484049935006991606115273875140614130846603166556257980876975516472216219021183269268443175807778873160228784248827649140658597760072553463972173594937233760749942754812617763377865748553658964160864773494373904760447393740755855821897522886348621559140158655676195172492575100943567218131124729345061571322834525127976582044927402832656477914924623804920320460171327841825306169173235508918438502497020840921224388008499165533071108618117498181257638785349818450066459680396135553558968771539631723014267750735009085007020782274552139933929362478259077148522835481796277718865812121503896954644895437684734620693546875612998189142132762297791958058483876081958667880951014633958713563621897315287011348074504438809445602366927467886847808397992852093427806745962968263891454469503896484797886218128469160272220758318555088792052410964901743940056457191999802364043561210585640568662734120545231367123373907453987898102664698129533148951424760327033190012548720498607812165734138418698082649701797040343478707980562146984121431365623521129693979123462807617377543860930793725776609474339804249726299668149723310159392382316828620558693191035343259266761706095919688595868953786442766936148651064111924991744044415699686543188917394802462412185852825761545208283743964505389563597881064478805148363115585758480567581004884871391429525848164913592163158356556390935935295578728716314835138198016356534279577982375240362138558410744140710476734917832540931271775768750553072640057016723763858012319487226167448294816577410739204593921823293845893784116724818991678984426457716727678563117969436734866205308231408594717463353786064823028532253133778096161998990735585449517277258951264606159825806423321416542781384703384986864395875818797669936972690984248990745262774524896884748748954674539968326521504699269300156759822093231939013893552175443008416275225689385082303117009022745285790975233857013474679889886437407463156718291909436037769956228409409545137734046790789588994864158700302517480380538011994655508522090704685660221353151020511243773172042766034058656241974279310293748183195726704784930176373646286488676486650131502038603507239000569986990409687148874410875761710692901224471321137383744834172732518910356182420742132441969599635806427765674716827663873725777700002256065481488737768846113953040470668251548260619561980617673404518731222383760686981900824720611702837313012941602656553753436530240704411628113323957101526537499500325158514283180849047121058581089279319443282550863591451758111870299657157048470172185579923020576803790273167252287765117191575946638620573816472028070583240585338419193489161836874878629933367267993390467360636144460382676155622571655796972030471533147731075153989428199211863052014651334886167230025365725746907588935045506567691865802956630482795785134135876881317328059734205394333698901292170947580629688813455874166877222639650644386247055546472088228691231359122425011411013730934160458250012559804660248016041092898979580774712108130666304010335664474339856857671927775944655070308797429586486547044659229768806160365539288966648544554541937967585114667146749096140623368077998711019313478213613461014658880208797353606175044964288843715647229963392172035537214387435048961099303970232739264886627854222672644424052284920891625577178204105163110776732722772090462398855266210885514327415767115218783985282415909598454717346797940287777402151637605625806111120963251312399719078166730981576970282469198970265777373106451073667471418998799453274402074850029371218267359343376947108332426903548327330112879438224915126764371233320748338020738321209402742548833745927558239118898886048479587146229321253453911085358973582448322281856550261221631562105289449324005790149760197866536717471788704452917093615373762936327068569741301537524142110067061514587940669826497630354536881294613905932866292879207791107754996840949478530097590620382627292785342109898911459661772113701709191060943238251281647822034338065798800612552567461578300157628902444444079881596282651318375254220334896227531864062281988191120765191527803060959100946909221332644636482251348103536988995442548183801005010469743187323889105124462007083205287084339035257406353830562630109120079449011048439020497487122732944798991824748954370795534648925032341049923879684698864017797414772993862820946567390110924789012813833744482269654790613394871311404888089654642927965240567624871343371297661365949771357840135294292752010418906604024466607140530480347456859015961450863162882988107667252376615112942239706164230982453886903496240072707130341210232581879519172494419057481481722756118950780046118821823170483942729001170285601397514077238888845322087098894170653355934571444022972505579844404679339751685268548216977871563702470646730163686190605755749077967305138940265776899479940408725875747946423294016114768392555184639241984160697823376515123253800292416901687447050517562621190362811036558705228765676347954111330395708701900791342432583063942136804535440356287188023005734938773968165862535654058626839064135132609400581942652490823357377306622568186004114024610250188595802776044018521763200261514238093734106770967605856491641783675132517485563479755064817211027392935332182527190187662177550849691942221514279348871968092384331531043584176214963179490262986930128038033577913896992028666289691784913320822692764038239885281220568698121521578542788866242420594226815764815776149811762026951216248960304915834267735418626447800922530225196492044570873205337324185397443088603375802445781322626026474598232762313801341420455030187018490546543636494015573918958499761776573487244470293012018723133329098014929935900964522324234786600877006031722302595421123071366095405846818532591961939943607494753381968793587293946470629785971584298005204113558660704442235983861629966271005504824910860778950433146547984658025502740401292138972456174835927504387401577863406130946819846508552390297175210770941794716717130408926122079205133003714331819776386119933681025613175682686840659053303073698870678647757626750236092424665366237368927421025906769345215132791865871741793248693612380728881888405466196875045637474930228634527059830441072827086802959540068017510768043484166760438068742399946347795728691736616878242643740303265125915314461140160624900611528801824632333811056453696302107712729740883237230702814790383209666247044517697595372479815312294298216624263261082456375652391745099724901816133891994005593664737002454851837320054396533200857847902997710526022409713909457119290529457171035117633448500124876922684015777188293204019308982052100270834059758242440757312001305848886262408162836631546208014478385451746308933461177266526873081983024413576979459947102108641130824165525963737225234059475999929650206753390859532580690709108957253783435670967993636382364207048089059555022148193925500130747783264466526145051444146976480987192843702904574354436833467514802902764819352667110873963387781917447532834626968342970338794120669000735569532763235538825749306721638947840263135858118021168326260595805764715344931249963423529828062004466128163373982225510321539257675078442874368817537345062914280793006684356483672038211644832088695512672854615072453275535636025938481892878852293645426894674732572871978249643970125148149532184108706557635805552939563059709127076545032565789302326907117077944468918094346731223532513818437665767755393640347721324498055198228267833858496074480018131247586138269044480278905662272807845275525854749785822868798641024384946529044979212524441801274596087342174459692674025157642085440402914176058718060525800950511692857915525735405589368179746099864734215924353199124071833135086780085206926550097123764461426974414202770717374453264978661001839857110056238214669130690159405530959091978379664751369130745739793969734951123285653416523000323858943999570613865281375774977537705222957841647436207230519906347665975298292260305904806449717658157976219185334581272718552929211655099362251127622552620363758811397969194802570154957313308631780360138154398839855303169247332708909190678549746386602472664476005463425799031914718253810214289533133034496716734205688711323785773159346380933018655332532979711888734541356293588290723034586164772361340941250269199564569346532672807274825228720868878155407215692003403430971386107975319749782248450014066016664169311882440287799124029630621835089333046089622715237213275760447047543016182235433549401800597583699339524735720900391909124376608806389168722035450860214113382145377200709060583208460125566993127460324333605068581752808309905439199561643234078043761626485406374546249595540711477293763153977424475451090681547436711036251633568337871639276646060409290729291758757425674692929995874799180238387256771896507347639754066006142599313520347611707249307584925939937548383707905444176148025011252353153847648289302586147522656979654443693325086264556258170783245076425539000855616384648170516957124131627808252539716137424094956956608890360237737922005518527890707382749970091751044370086244832679807804741510310462693883753987211227981202901592843293651183942463538636912783326815139854110857765943692766167110153781972973945111099491246729115631904171495783317293338519462438109369584526731855067304242892981108866192067625946591773796782469190086863162708156145793179540129071891564799813544517565418583026903835960148049680931496802933274949565094729112182838421238690742130682201737036249702633045009819334078966662668186365696281139193085782959723925046349640433534156708398738312985112029858175063807097475735305239568868804552925865391790249862688815024197933267576227471668063752699133472369647319342875587728079255053893866889252652596191649985588718937244051424851750982310995937549600305986009683521457303460432471528774359255667219413808328752209875323921788217352382913931665861855694135883003498649590424605391264753254974702523529715132069665465207990543175334011779078171981647333441013172164496037108842072357928299663820184373901064327817150026024122947818816293672788051838230411578821919008946842751661607636869262449630366116060937849885295343918224067722960799528086958906411422481189842036025072812080840624056163542959253145148584330688766250548676084676893286817952376526871567463161467536282917354802834441476762594108300126119062620213623671069213304598761461136498681952577022687796465831789446445655067466106632706955077379199688224125097746014445390032090193608718970851242591870869223351287578947480866198673579780486327511933341611012707407291810529906873403209002160045154921316895039054073855755614358508989637658928951416247547967610038033857653080820901597786183109937919907877529639293371295403522837433120358095934052326215907462782866365199330844724017716238449455951392053064322316606002886684860551623146685548292908826839975031625620687690639188405419599909622668548373071125293794245792133483733718541420126952184095608820563419801191920101313067180978600305561437313165889042156382729548234837176781438227747663707039164678898733583553810273552947533605183200781545682768647395190341166546233544060421131268400676889736981843081726622988044642259060659369636003251684229943798701961538598184263456852310736929284078172473290086538126278026821429984674654527127891307190326051544651411946797776028252835898980659956723682242086534009629377525240293047865247913128399558175997952092183129893354307324646083800342686519596914783771472841491906432644052097943633412436084022394883083093666825058816886465535850913322395588216805909689188986240113277619071426467776283655419471433011883381078621947111368233728937707344532831434545593997378819719175536732636246732892640988435942098934843042475852681423383478878094426996489597319079537756856183409946749421870970639189218134930431280595692175320592749271582769012516929711298879109729131147073503937467243982384042955052260333835918184183494824964918489358561229943632790332694756044351059017901538640267552485500681057216073995548224632419053286042747936737506250248069163569284874014780729572449547949866535984739950170675289126138122916135412245431002737385832375734937304568879428008710320349408829602327459173421809894529409570101390000152203794391632750764583140072780583942585552571971625516576031265076175390841863181256055426186700654306015212443879069816379232767507937035956014802782567636866790159143216812917844779298162807955944329518497507050292666847384670067072214891902020684462626448442219545422971604027713897991252041770968901700618222834920974363926889209983017562960615886749835637950571042113671947833853998273691317630400690806127620159180101710545712165329149932623395904395688436466949633002209520619937825551996237659026763255781199651504969667424543288628482349506300226126873362182864846103561555574319749877431188238612055511491529015697999961259488101627020991852322466055486174929979542752314663574263558890769557295440002396186054376649231287054458591239759717997875062187519451184000696728604729989374129622172308303331009264218683217514670675541364199775426206914672448507238255990044279776594779456672830979411015499098845406336130997479966690538081979687763907193944607108719714553951012209234164388898161126548118307857541823744144107693407702637103780965418433860732531404742962606402478220800592854316778748101376769678884698561075194752204419534939608943991294258854011570449506739145888515911542212384860427290500158378177831863062517035096881963041083200703421221983513264088552789787037350923336227693992302095565984291205584109392720256840477382439904778275074732590127787715671325374410831804779800053839169992589668905959944380849050600307641662224631009226448902195785273063837580119961008119842605985621106990204458595420143107978048538682039206106500471090440139707697364114074124141932148223508839754559654979341368182419352633050267916261928200042804848263183747503158922462516699808185895185076431212477478289225151188080365648713522498274016057279180318884750011338180192751425852736707072521243010269614905086203257681995866535594696659369070844680556537372661712264934220989859581220359049904096267056901754769928258148857023989566029141147597993183207924054809286938339015858336465138484710203128490541487675865899520477493785813829501837660780813776856907203552407727989411036970862846830818805180378215981633172856480876718762973297384267615764761350275928129741552957610986839336696212011003125697179681305379824961779410722436203031402839623919742121636162444357180004876160666044432867212913365077702988599598592635089181813659538502974264596469080360362944335093980502808243636687896079081852133242421580479054622827261042909071643530290548996521461853540535846911069688840357643899467559060509902959314034146242639464347961963872170635613019214496348843816136606553840246355113113180551113053209704255447421863328736214505840035417103341698512263258030868548015499776290586212080808620178663693780078717142392076245667286279300616956872815126744592167038574378732655619304295016581251336586464083959599588949546329626963936715460310693906791554201472452183085211667553268104614004348225446998402581064741344185770516179243169121549069695349201902996823342603021522352735648129457860344632985033932618927463481994391859609766366234538108532915874300878428133808964705005646569091941060179344844028992584027918689327922311657314850815140924443443292508446166862305377860097887475445210422959120734306505325863347591903804407356946722366201957009924542016545612518324431389893857208084273159193036720702224992317847744796749698934687512978206576893989084426869300170485726215321715095044610762535137462969124132487160179368540767378794566534020970127757909604866120137882739435274162992400648681669225792970245428714995362744026676237791864592140855671381580560462167044632169019961781244470337296633552443129904463354356697010238553591644238333118374153588596317369316470971590224862695111275507013093737218700230085450150819257977333014766962205379150814630657559729582811835675159117949436677484211761659648137960244853050942518791293311175112631524636599594285921207405512174384502626843997607697471884142794122097394805422302888456064542823206591634310935088684553526800671507801813575795413047393043252948151547546516607762361579595547472078691117563389272153334706326782259747176371645672058932461607558029382450579699239473067185912936849285232423547307586706601943508919070295831573782292455289294322169213315252617837023221164905298525369241070061687616940640775541383725054418648029325114365950893800133954109084192487730679587642488353718452314444368175730479946091472844013148507131999448745475239638586370771232449676475946416210150846383190579690512267411129089422244331795866011857226037598652472788362444797898963237817472035206867897055318667873594976825453266531104828219012688157773587620278925636762450920151800105935766361422220427658661837979078392383969668629838075815487501551308016709785783085209218766830037332644821342289165072662339852731182854021824738276685630851455862814369967298577115936032140608531098597579477510613892024504913368498731039431950912587732538033528794003211380453210558804084078058198085531806039184576947765162541997783807292811279477972505300174813888073089153953355565871724788198340428741951471005650286237547812551468836833556435748607868872798561994309141652841876912794154348038105077741822774600514922532882432180484401028264857341562649514354561572147158041310596049296923831345914943976398750012103103555017983887750025894261470796228202146970266687879296859449900207206964617614344991468886799671410941513385085505535351441027320354007937151005556838961745037853504445976038673468539337216923354078404791728949160927317898957259197137244239174244156489717682189790394030634771499417721511198102155109957193020973202284339071891132232175118902545158941593228395426198841577636781891339818252122901877855644135387007432589104567339767596972920718378814250150567472651683196587189161028351762713177480301658737222341443994061074102372052534214219783702803045195630181913066601737600929327011329204983369117032226206506154258517562263906929213522065903595328842488489629972689801931885706009442591463154184825400104419744741100384539309663031837777242355303340913377316911252531354261042128900335265629327391723526414756819484018962869564337776096607390169603886099613846399365049588950253802068373090438047116386256949462149996806255999568720439915801530122873239962059442768118786285996187898250642354050480313513046696275280843838806349708998818102123945998167088602734169185319195438997951356869722049972019179946318816611226674114770418870800787474582369518181081824880565706596885175932988262927805540777602402929430633707996539313945385875727284360693654919322900590983647239211958645518056210848085881916960663474386019657070243060636150257320551089274276001164251753720514565020688670925282828068268363483331069604768780947459736611560256773408411576060127281428225302644383616072727845857786898429264153606623509098985921726586440783443867432382764941821291184150455059167218151833179275558549747802585776225064416360723497348072147790465363967383509347760876281070513117048242870220478694197024762336926923125685764271835979256294683021492233186306654271765288161123396045541599108039287577869892391977639317710181018335430055071223602358338856365763427705110606998713850089381485856253990345542310318027462193669014742300508717793185799841017692005614707077400466251921492847483379909533836680177191499818861833780090758294524742180858831028967713118613922135604226445467303197186803868880081775691743505936328618677326706691120786708316103296631194453654482719607276919694908871798690585892442872409845612898828297123400988308534781557191191994074132052397125001868426838612439909467534172017400170923468117161791097786301875884396631756925927951276272038569671049499582799143939472513901035375719763413229288369346423723144603479741100906950486900953528549359056087869362084884147578399631081080733850494921224968204664244887129345696247888951320599768832337430095068199803971560775558293334566564225939835503236779843825338057552228426435896813224049756684784520116457261127349996952003967096730628829048002265204344075257745911771059719332432599801258150648968855480602815382064960542436575220852810304109971925319149425268790620450238505542242468669184206121909442574792754235982958687350503845205361726154354833802563976968218622327441161212445143408247002514685204360126861758888686578209271143828839844154159181925739647284880704615563484346687326084524973130541258708892419517652910509645514159469104739762490193713008883938262307778898117222667328487103933096774951043791603224192735721196032644144187658041375861414049723025260695567992819031430776056489018418733431168335375452622126224863725747325410464398380211653757419440347565171492351164229310994326960468204850028178778267259026801103487011067957365639011948738519306362394484266238708615784112990017720868975922396573385355924749163838360305281034691878492935968702739149542691508439454610493055215833738493773267549245517265814980331484863377443294108442372416044705453789587394786292328801340718305182465688315334362925120714524697540948175152753026947475437495739445344894679257242353105962907304047595722361111670041202331817186540004419172573513402447728338452487436256385400463399550304287379340460863214289017553986071509361464570176267961099524290024700746021813785875509050552861670496684223083777653946849966988392722390199059755472679946408434343733778500674785647514481773523360236576914856437127270983684687280695650820769431171210580372614652873031667008924316342585990260516513089443954139814903987945708213866998839529695543274315759349914234351994727904882465445780542562759337207473409006680712636731404290119304009049043289291834112405644833055272871926331942925962492887463595293757889339362175703994225456002436358972379018314863504171550791556401197544016403756644360086553173211495981650636878296013976531377990728765077147358261835728954677355853903320201530054665120046853741928183501966801287411404534782243469036701573666514224732412217120632042353783709634733024502373351022258830718571858504713786483200124768342152387737781084871111680633754571076208276499808517066818611650601340472085600881780082513768170240278651177633868208676097905405812565762103656811302939004157321272435089270749546960533568859843992260163618961315910132555235721289703816193262914064501430327271886496714387962686126788487788537860434278664584175358655963123421336313069493928308697039860453065111934454361762787057661762753480007065500113055477558662127811735015848266963965110796278725271910788492804070773881528962026343195354324358173438449118209060767486000931168605095803946712920529691786665862586370616912614343838638944672550605905073230182701062553599851156029296362737711775821303106004624559221233125916485710739823700821659769715187147187347692215176197536745175971168576683381706686160756869321551505614639130170102223149738821131371546293361042760366837642162537458857304034060483628530350793212738711383930662478104319941949086188059106328823285165317069358895902198404574773857129505752241623062076293846750725627798618365690386204046149041479851854600917074171832748001786235394836653850245618175274435339905511345619588041732132742591038554051750962418283492859325654265454152112655790298754185411171980389539019747797906865254590558206423030178304736761753466920563423388201735694596492108909656539404187455583996724688016285322759644707889564171400118637946116906533410347314332876450990336364137925516533951068477007866487257902557351916227704267890387867931223450320980593915843318733649490578495032194836437156274936926117979901014029881592787130546306579403566190667620793403503870612019232783604916074287861498861356020469915841763187296822481781056691858662081946718599622043361732148065453001169434133290481919326036551073088932050799261405290585423459265991847022563239495566104294479409828440662189175960099042361346174269070669138419819121693085365747609967774585438547193810476851461972114964540301656992352073651960998415122305188121278183690797604451603928830804438252839837344874946716932016169590956309487142331064474409516432023938319364144661570816837377058919896488208826616882331788905635267300747775911563627020197471731443004891650375812626250279353491318255466646193504413990174269970970839549377275843670355997277987049822883442374246312014450137084047417892568074359485543538852921614630257225994897598367415224324623061578933624493660861900191346405020279348156435729259438359390051901777648759707219904873743159195306569415637050456925201737405056999438429005959625701030136370377350324836471505429988290629032308330305178709196724134969148256180783188680054579628448912283021075941880741173318077226297990642808797869078919758948931973616980893015461613549332775944667571814382736010593874461203985524281896448715861380400989790977505002566182948568267973766506381286327011321683259181699013251909939731708429214283428112791427471114607438216493624776469857878342710828235639107735431554420678301684378478305425086911568956301038282232977282405503013068600885828738167993542318940240617557531173498749423595346091646437423619141880072566330265361086879908887416297791351867743986157557174846276097270938451583680285037054201428104755556101798425249272903383946283550199232801166528393024331451155201459061518138257480688680743764593103776323578904177512136635524559884512080222664806341888061785042845085424305438390645952451996644395617279030698332875851941317275593934726443748176357100886802602460339801368338158882339104136064063800980883246146273283684379049000489598104049719946722137154384991647262782631213037952006338383652680220329051941894846298204073480713087055964782560025893085046692433808441146442848929334958358159546190036126683743302976289217861128377099151277771454550822732380378808160673374384502365862114084146788927530753722233153020055153203120394924767766229227800196220092491137830763912256832622600332245206936066238207109078178121703196183205051822264516029382691153241721808558697075156337265349583812861878913906283921761563433296991736284837432676408697770357868306337973180139407263474843421620048805054197703944264010172571378145608087295728701419281974257383002389143270240996259037857303459179346744500989462994114142667922001498319834826146131651074244686259880611043201804558760382532641889830231677266307948264304459804091822586679135721567003736616192329033756767177209326023547764881341106685307591646912322740285849685260550807733830127092682458159896617153461982706216550027373913761269645511608068559122603665665758298540318058136608228077202061711183289428844649645311055297688985860691925857311012750813635489436402914966027754580368425854975666680632129395948696086949385595608184361344761414724755272476836822471968648510692660273865520863703389686549001097786753051719144555015772880595600252260815071585550176958836885847216524005474486945866296603659553997902713331758720877718452663604729093860277723443650198116292596291233382176475223822005586768270279554210917835092492546704431892671684466268563321395503147421118190765658791796211445843208972259346661926074534146571918899096640818076071482784476756796313786071787584420985919004955027858638289939198482157220171030029890423744494517397678517304733226226700963212208805935322079240656413680983459215265424132787995513001962309636805900369923974760590115974115140990474449529378375414555915298863588442382573830491361671634328971888924881411825842622555939068611307989325099901821256669123236749508788928202848642412765619310425952066407548240878299571367124406424050279035939185698967869083709189506752915820578836249622348180984421281096824549196948472905198213808235328937184019743735339930775515419335370531723646821299002394013187068349771753772032350486119158989981026530343274770873060531206426824661825948258698816297202198559356914925490981663963533394626323548968688291996086559241824679653067611649202167211098228791537599729522855169734726352933433377375985870737048027798480419269808708126094808324585034224868767558527483890326397547934273218481540530947703359681191033166733838631754221060143627532876038983111056495368049424365205351492216930234511402155333737205889005460428509608544244906468887095443221091256380203301939333128263010438405688989347275349666852651439612008792758015140047032919056177985307110999979487169668379491205232046074744135074037194602390750759949600510943812327426263151014377734427536337023996193020704081071045388961725183283983711023209550094722684835482988000386841479827103259884171505314537459413678538785225420846497443822824164818851367410819056129614726275717661503954090757841375997927147946850464322983134234547705089953592658619959307888793303767783619984924569683456230059168563429947230553400364120689251879701996700788395002070287681187695080016052952399888632707410555377865815926704743649788297189550899762800378470906024595853650373965472506284053512252620866156154700414983427582017015002249829382957470787134568232067801796568419138424067646462743618913611568629871232710540317834176310497337087643156410489108745147926525039989819083742387685290432687382729670957404732717125707183278689186030183334016162598997589905043067380640030461305083535319515970873859390799783542395602205460410130565140206535025684452156391851336062290004912887369428608213195475593675254218828189030277296597184410503804038903045581897706075624901062783532522310663035382146796560015519211937666648181463547039919128611745055506899338763795428873807572806496760676363521567761703014192364127839223812141959178326705676236127381379780075510335497191603253587806074353699288528375264085275400880351648560520871332168489013605469006700005125170289053907472029902638928595140075958017410772166400719463057750912625053894556926753915499741246630891292052926682543746289129115210382367151182002380545748853827601097686391722960828013057273330485141933833383988046579884007410010292730314911471871001525012805635025059930498646763663092637660242900387217478857278733458856091163450910119162652663902358810178237367818558854175924014219945505141866941818580394555672832453851841356339095966269033873915161993159691371485514535783823221078669179236410872400354190064947935127225165530735682331834687476426356001801209597601832648877424996740064204196402749017720791366303088254323806989965460708261530149305454152677477255598730037765387906631942809292885241695858543393334209757637151848883625650786109767930454701452454332967545305057761830323960838686153575602807472577602798357008711176762631166814006098875921537949424773878493888032373142760557318160711351560314640099280327013571877358462200664317529776245218991275726623877257849146311558684421309482862750973537262329410051828086842234789173077751567200527917685717840425686202619136308258482082888454887497412440682005149919245265361344997977375984759879848244324110570128415539641297913821278715097192774198628435444611295133809596586306041913076071673329954629624952053791632839654859374341178092385845568349863573723520076893333171307748944813737851716141982582742128397018865239568312532287300186719399742823777875648758035493632555780225189720424450271818354912071190869406028591168986137674477372523248175514029032537819559508153110006910698755101728850254857488582018552440144084894420002732081368251579938598585020360876783961667240224544244015097192651430538677858604892376071196006892886581723898030351187093431286275837036444219035262260840966736028843844809444417732971818008960999447134756498159696960992824160323823917530574198684624545168119890325958776482371017330208250757937799350094014951898359353341753823297135433506755910629984973657738130022617461272992937507032313494732318671390652292566896410061292082007987517686742429358134728876646488141465124969767409678515264696374336049828754948568107328311530097664193592544597678505922979819165925457407317668731820264302826976068019488781499379045929774364278391129609616045929149392523543869912681388640929701961672008506341760038765164952506652888807248667509663286066254048263351836373549376718446694015962317470371377147918424741799760460099011659322550931071232936273326058309619606405444434592074008341845701934268288231408202525763531471460355920781665006353659312637720191333170038480102457440636684460917335113346603200963815964632831807201026231808024558651778580672982330560849566783346344068291150494558665954098425342144940757425977641013044721454717845527982795198310211387568607160469220631294987442880580125983744293641864137840402226727355023854561055275719887234898011308911438870797226344436778754234234494600926692553938881179845894133150404364531123876402045381134222016142442361720426454094272236523806424790771481214947435960776872462276528264099069358473678226895918601531571942311119181492019971916629023903752137188787628616296210770563293358396170204371351206012869796250701545505866827323417529773516049951390220456819735208699236892615223944512136410712852817868111800197087699785511744568518955699798907212162464832426294225039954223859731302158796113852747692854996299269487939217271584225660557261084410503792764915463305809709660909959135323175679312357309297115397519592219463475662034309074589361702168465172220382878018950609951175170527688507947790484513794167708364507217871892943173486351764982408534307204640333594175702810289486302598960096493634470256861482481117500607945646052873099758929022910766040220177075781888566221890497531005036690886543023632101670805210174928783070108286807076563766598640599793435619205989785236598294768763148604909560309630181116541133687760858946936883426166924204040126015826954957956196756616851955820780211776445253521178429335280217039304856729833268412273541679361517013630912575226477367026524670526776657384788094926964047407094962740004244202475092691156391415491122260662500425377767641536704578041042060572361443109329498276453907819030769258266492319052083276188068685557949072705773525842935286321299157927578939671416985037295257622011194520825994428708238183290621389917731731221003874792058361773608013070069044816520770730523067341741347414883942646195539371505168350041997116146504301247085651981007931041887080303308058573759007472488005516060540150893700436281098584875460754474713305744877843347845906444358877812999924096671623184113038572892524969779906486917317645553792559740451366261354599625173889458336723422899206253887638192398754305581286161151268898301139446870020933469044640758415529763094869457984580918034128399606892136738704134412659776815684589507872510042602548403132772756036647339257253494785987992446898726614955846483874824420436887599527540632813472449805048522019476951186014148966080966125598508832673917147613346014920861176485709584753485812665940804367521458309416916632671508161595221421735069909651177717122336911065269473896824058362837609851252120396390678261614695854458321100044318734182723992524679692928375691982787217539502684283112506220218154667383465553046684640261318477693555287024872133321686357399098469091548819386831863744904642562179578003103394631681982253510816433258288821363689624637751051059960326987841103413658103686913037246533239499307235843725368442502338174552079777212504610003256754518953302337524954722526100604973514708625733771882316333394932438884544905331848893642742777781444590542597382873979127517754329545849857845731938692979296118289091764332092797804514266028279179862916826250621973098967474024391611968251317985587680752981940327965607568761535762685245530501879669872608120580615955088206359299630747867424767890490545179153940640312598211746569747916612040823074124061722484152157277480976752987685218332250376552770607090131647289323443526063142185392212171525961910625768361574292951228317621229204295909216203732710808050894779738142270696876728229575179447668520764920442703921034656013063369686800261005295995749309500284857799351224195440036298805429942645805799875288541647249669695837417296607016400114541624684876837946610822125395734833272731518918809242276572135671842739465472556535670281264809159179040919518728523495531894867058374460290851279845392545574973339357709691703386683836590884934550612954052302112929262355494569147035676859373409722284788468460467291869307622252206531290069862653522230446037926926152495085583777750848842816404026061435607829503152826876285344352830528803555508135757132692325449418162148196454444463673743447025212230903685963342637559046006282072615253062687630352917130123909859785887474006361305816359277485590584783563168124904093790050041968215948428735278009252140724585440527400172965391485526922831864657048080062957575841124810592989203165717072695563819062039308588926072790055733582914755231757559705475022050958806280607248011567596849134418697173465250146201934975546460580492533812951914789928361258294411616749976837496380950217792726684308391831452100245081338986320542502632675158462594288965617196653079021517394013715236307264611163229415121857424146720471757604109510737980546811051329623518709669165104433265809111494467035738676125984046380072809328342695844860442038220115422158059892136425434007802496708491340312421361592709316270231549099471971666479463799337815108409106397256768093313002129849134903109042940190911382127615676204883919149831935644240342840150748408676841452349419627615442583005678317284878423947514324044698113352476436609062301686649465790217125078056564238121112114026838642585000793937521417383916949911730171457851906146651556386011434410052446963233138139773917306992499221125161750072155838412431985707981581691218656224852469140108467779275143429627024868530581895428924544141034728192192164976637897203849868880322153063760521224654361829389829333502109841320204458290424308112287720179531648030151933421221727500170792271925268047109700642859562094578598147378989607699171991825534883435219213782534886436271783603178249684777126146886884370500538419713140692420146221860497874926129814219919699999183247692120064522848147327482360716590354926328856612318400984706763790365468364782159784833601326686822355973744608310380158881392105578517440576279552238584989390454136340073496468485179828458851868421001834354842577603698726168763858085856090088723590671167604288215275202197343080267878362188809749517771345407297568869454051857306421407071849571944302024668515661124584192084786087955070883876526916810928037834830278394007204042029900458612627038125821111900437074110990316017269980950670470160624051392538825371477391419228614837681358645751721774802829408324278005225666462220922663108007207404964932168379558471732099493994926320363000732197944763270583862580042042176381444766300015152249459326926305531995869164002248608143486272169157042374449876208555041689831390115001537836491524454407157280807344888362910420368911678642945197934011584422731829035466528138693154655452778539714781080134536552900784731699177374020331628953492606257087914518635395799121551860036625864522041524349253930029628285089518043329365015190548692602633956445562138552396472721100203860661570387876773159628471415562322839888939757082028301546262033129269489413345775826059486854281912619851035709644254512907790815945389110852650201291759966764148527425566432413654908637117129008620262426283368298776667339437670721297490050565567648176339953863475138211750153102272135215093774606188695338118728985691159814827525941078381193845297287901849407485454230096300519785344794299719082775324761578122528438300922066888100766846883150446844694742251162922287598346795328224824120369587966182572947972570365920164110514541598825519026128374565003798249057302369089519663605955700672551217484498079968939661950873851340978194986375494078919815453453519728071153105022477559478316415410649923175732367374937272740431429882317169000920591488586157010560631839139222235973893952802906655760459511927286387553637744952357594832531992383898442908143971689619564571118162772465705073499474777043593326313740373587915352252661771005246318621177389649590991361724537274133017929230396575676382312977396970027006397223997803666736561564633274438926113358472725314686823519045504626807061020297412275888302484623060214984896928299920890458650351408966657208021611542701448647312524743250960022528356401390430378148246953163667363679305795299324492088762182513364234231684701858204073909161754638738245224154493488622162693179853111485129945623705966435741465789160473418556701699558084602832588089619336728668033821692318160444356069203970862523242482529465875582460396951854031655457361799327303607062753566634700442949776952440445047230891642132507947239453555170156734947846626465064438672551555257509248756073669336824982365333488420659308881584302771214381574490820248778127776213971304366947916961651754802340548666587683107538145601113207551117779396166010779935792318463857938326098168222272504814364374390657246359304197777977548814478896613987271424408736746469232904453523568404020793434365044618858822807355785472183732226131677574950866895787206111438283875856925382031858932390472175328246114966054515218750333956700554717482536070068385366970082848380507878844505853296175005465652302898532012680642174982894594720429376847348807216617890855624098972626101391048354618081430705351177976095281792488094645924786100417812740428131507462094807031799068598195778352053803537849522454687073036519034672833856553477557437284831456984212978915848633671162427936975359590166128153055062354889992502435468247203259020056369822517393315221278984312565866028920715592165061186831700032391920132282338127936587856961165213706533565218203872863268219996285723655449570606011254732012923612760176276920470120335616066839188307502281316481954208859714247478647897144061111986150979678193012865846702571909416304826521445734561375731313171557534474341004094633661939978386543663816589201631263749746732992328902761250537809158991154215688269318985306862429789721589475506772836466060494066126752203953504178696333820004028520643532611655553613406660321997021117231533450675885202907196134610189323280306430822172235865748657412724586722330637008159003066612374543788076539574381680768336961815148734875079064421999783316076662935429340058613939612680437851900142928423835562794123979743998082983617620845965802504546268618966000103684266934245400870556884182870307931125106356396240520101083512509672792231550967262730108243781967520300794994623525278036241167695624382409960538303151362168279888501687857588919278761326011443968885192846544383865693667098325033585488411369125427447635139800203152647874547134908090440516854467450099999366704593711266352945038621278278324532370251778633280468675670890273370712783216510407542735379947153873633547836246669747263174997228187279886571461019967019239284596517359138091203473805871736047911373203669327988350180631153477634746024852407297581024245161764200607096565723031773812382781813630594628552887205355669728850150328958755175501875746333950905698412225493672804561609743642877798120053152955274769565774942364753003331317190692592690909580611904909567914582891594894621910772367105935842428187453140982519074573063141248886103347258546471649360168080942409532741610321101837749867600801546804775439866107313020777894272338643717214277003316892051312600405040812379842790138053993528542066840857002215004207875795213575838785139205584723744433681922974700144042115709405288754752284115733300497405503162804194910914004693826606633225200175208485038635992633786596962606089194708238298254360265683958633421905156830609410940810494695062128779264302737367070296556101088213227610342356846905546996326367317673733497394314913916485716213229466197495548034103979871805839237742806239715994991384742717137238627173108393383292141515975637754511175754430077656411606446404876669122238093423577766555021520775110053748831201869815360268159905155533433844179478486044413564004120870980455731890981831299028036158550130708188018854782211008473980920112787767340637390367796789174651930924469620147743730849038770132499128905902510105989282682316359456946548942710488502885020951790178870419058156300632418281980034627688483808143038628274438419705365142473184339399212022439272976827202958733388978550445348035198196940985482581180491811123414208761850948571673860319428514572370592810386853778159223164678929622553610176097131703931874397282083121155518757961249851969509681232634026455676370107524095066560756304834399380934196247408960863107396727746876605866721704723142715054324367063238566917807838000986249965528872506850925489360194637559981359179571417988197811705153115317551431246845723066059042644389855560145999616891325357082419938379816653605182307276825369603132808686139987696631226175827850617508674502225688237464249418414515947897500923374965112254464503728702277012780662384097797975965820090568000034577603824968212807650053918979929132234637529055128441943083519297803512237515495776877775886918056931611023480764146442648245468488857349852123378940311478486879772986742276024452088539304396113785306878365227425019986703168017384422332286292324348994405472693889011323033652512996151709988640545667348224687365610165445402710796418960195635286379754832704678951527161388202125446727353695368122232917087612431498663573352405490073165992155282390202848412601566984184234136877887007525479459556282864841960806354046245492390286039712974615378701425029052785147867217817901275602278020557597964251498881247790775172196308153444844974791016670444076302861527745008898952372248894123106441346537119963520807511129194447139110377511572087060153289100980486975537165289709198588383119585959830215442992042472966631259326547256890271708322113575282726253603857726911319307824332190944267983088235719792935391298472199312385506167891124986107689383323256740997095392453138014030731941718910153705465405655445420596541021368199032585027028595705261208728305242886536604922728035216536457313739997928944983949585674969648694744595948266707547184948264971853073853566065785639540453245755030986452899486501136504380532350410451974732942343615517988085502197160972120370804140819891986674800038949828294552427930866739084896288404648825171947978452911448195218665026775970599782778210774691414744665442747169187413935211078126058511858304371910833568722725540797533678417658102448706677016144980889688466617612192311618792437873175289397252945925949898197826426752954522680973814155576888888254325369719239363244894922491041223955476313072902883371659696247569622650173710706668124315608666832699745302063634329310178444842020549871624891288663171368659087694273963508775053486585977876735784293865015384348625149561336021310289623012623520267796220309057529552914336047739948337462180636312353201407755096842831004808080800194039816912215823883510085871902293137257138898033027198233276580210894105641505782360467848694841541835336394416495042699703213672201191398000179518721104660804085088890907657714604799475363068098300617617737486323779177379734812376440096387235218132288643394411008729610328322321456594074245264802417794950637691723114485459634602259102622356504259104714999928442843407000090049860436778220785972945783456311140286858952610665205483804071765548320154484801300130016643448460823674822873041715801366696943899154770440797715068622900909607740859681287612304830688532375456659100151567934806499268610611902207351408712535211983028344914618069867657665454260071595591243333751832338766368497545386483157137435220670746507187487158537415125805588703627721845873909878815872156847386180459159891240248280148360464744135739775761436633890470894664915563341678897575819700786077409426860170029200038805537425679943685958784004511570259761211594957786172423974269099052453421639247444562996409177587869042765169833358597726770408847312283555152353020759223857679928925022938112979498355087618265884277849278453468187885944649372882129182626778637672946227088956063419963017600645131913218590725740501261046502101980951159284347639648705939071591730746641084107668383659978865300952894776837990418520932475939466703631047436736181116963563060969864984967632337152406368092179640639968034197127664590095149215779099395044175020226797544175040339998621416413065325447660968407362477212375825220639180312662361307562330381808737257591555065940403797775574053859178909702435764031099718503088801608475081573545166749727695349878158309166481489364139884526112070533670661090360748312942333146861609046716919863917794567309104343405328479153507359291853236848360332544209315600714369609458700594358393707055219284616124864956958136987592129972698144221991581468974177126993745693423121538440180095976866855895139940112144062217290420064643558292410320313250188526548666500243620999521065513026582480346309033465232286258757843118257513036905389156711915888096239398651433742432626726980767056975679604955126292181209934246472666496673650369141209105597982087509287968553236249015625193718602483217573830153545623053473049218797521018475384445050472615035849575535662257907991764258277939029172905505351455770375600349071755077960652164023339213042167767690000422915545597334317558172755701284471115709197527827569434993791887508272362158057827413668722758929770587258706317895926952934812048861884124253702503137572966260090395095890236666673817517920273094782054490750175261880185474464272898380345275076272186236409649575978244908406201152003305694772147831193204112285386898903871247201392162070804692041381842173674691119356591587606915532563744144835197156604311089166899811735034800160459526005530363298301047840462737885320388423235500412734117800174753760690553807700907207432512134784228545540540718896059128625476177200282296979033914758352415997728046436874606792720964785361155668740906613592730409991225940817128742735355036114685527532897179147436911392362471466666934671891894366264097528346439203422128422969160155638821188356273936577941389409561328571945967149797085170046545120019291577518784901132502084587918846670040906762980320813897978372374998017471749853680126420075245232739962683955393468385993232843398448534309161144590960068018008750689925958493026642950765266171667914088308116464508948426924731029189729577015097705269927016935325350213395386815965571437348522311722887994824718583658834099419112312833496354746625109810179413768920562892110024370609800464993991130605718508905357937726751502001398197351988103696414877051333051507567323614114728835091559556171404290576288323056204441930999200036453211425579518428909448502602545806500399326701554232596285932691958856143394192984242022319564073410208524510743343863548530768673706577972267701175779716223494091348246463748921117201094334569008567097761874791669376998058664905249510254352591118229354761979594965185155838474026855791598952856117755183825899077865263582772066578742784760301899806171534342126383237853910553625097897714530398874859643043158417641952161728418291652214436848117034244195119228504773497990753192235075165036453490163684048892293462907045308010482537072981951261994500313833685320193478053464029972427665633515093587310966420802852914204526370499539735887797932031328943943597022493215616368902109928239425773474988571888194254937256118488554114937155145504150895840989773460160447153006865540376071537994640350264980589367347232106497974904667997231891717939479824819578633771798368110489917263715658311928110666808033283314508641455498663161802359371518462184484112759322463400320916203579473623649919210417005484800867075294058798346683180536652838709092066790622748959883212659307761320581149757652724736681627396611429629729622300392760510941078010800853204037174724709025165478298883679187552630554250462388940919921245466971246080764226177776825257707630151354008303281172038568913531849133648994859907547535275649893102606690875416742353310629605513287651642171675528265076632626251012692028624828878094703326060750598889185712599125364641899437783748690947687715471388239994795514101178814959208056597011476082320075981991553219101585747673974855761109589092708112310486790284630362024998404054240449894650839178816252466437007514008556814045948820146831983769578713209261106388908830484742474536624733142941047287858591365985616143592322226896104846981436000170387581481558016498015572823069915750016470720506018921390619171459319475452942523777487600728230482621392995290571246485333766838322230802088269043572411102971446695061411349620978351872687826854750553263186009630588062504338372990481333411621687963682437014590411010523837679011309519290604084239599233676776407166040941535420907164885203390068793151425684332251006129491033680730069490452089700765188433692939848561945073441110936032399382220511675716099395282190322099669377361059617160198622114682212657936626420421053745950215475167339405369536463297726966406500560943692942380652421307206112433502387694949872310112376108118493907560361073031229347911240265987161342853179601764809640562337221035073089954499923287017462684443890340178506858945095239485051873687783645471785961571564015979493695254883457564119140062576869374516717208149294677446570634962162960034377846200145054603273433345298435937105416738660143993142409697310765923900172716900190977418742063659891068669271600631179696470221478078195704414550294377888771264040135328756945868953406009351685657789370661334212351163449446664357539028626148658710859582025056339218323719964545376918825364098671662578063823812068495613300132307887634491814948761545327529005029006741217955390547245627304858170703196887181370669090401625306502110940933879723077228050834598989152529551560722907357111150691522005052329351636092363062157858705463565348710294302048237947945758510943709084787748159514810322502099112604965704739405947176018536761521129945386440949688687893224587007363795444934420833980104367619312799290072158566675746420156871483776097010090235993217955741113684116109874293973103325289791414635643624474547943832970619706542880339835793707947786635779126575467923994679502577184811745378086344072707333526934500233653574804404741722375314123816012114606998103448430731639512447607909066428475627745118632115474684800540958679305752622363134080026571230151000791792267746886236223265361663235230449115172575820411994988655807075804447530096163871195706390941314156858546315181518392249355771836175509442782457719816668796981716301310858987689919069886469885362934220207666241820626132852427585372766036638252274408749161231717177111626671602039982461085621336767766467672671932910331332916331466562447971395379775330516875517647889411962634739797554505102684907394518329354809342348337241482462844709180160798001322390171001025001137665834841845267548804127354230993126814974498019193259932419471569858025914528778140539399071895119904018493874161131950846264705979516919087668886685639532662278422411180996589206950661189911022382495215610999789138996598956863021177621432276634633059940611024010744690396929381628330020438626966282945694838299529944577932759241427985117266934252618549558617998187399055983608249639799722105610899977495903815707367408507676858541630383678613489540928320300419851903632301426737674680172878076846585422788969124713209919986479527913437341206500177517752159699412958221013854739857406887962220466816425127498023932388857523066592618589421994737681764807789255912804092044813883172013665560305003113052593564331939370873122426025756741463725865482077618102460596829515776560661863986803471943595727963325123968443570354330099879577585215389752133295546522611278185658780061782948801257390402651282018252132027843054115438929820793716207144644176989764835031943909787744763011177943148273023481981988541689396599592036851813736731875354993964381113280582942134840546492614979850796397637748886102431305764188148783133420413018683585770848879728524456741356442806272889175399868986004418696398141327813050756159518222199291479016399697291045573473659840403229677604378208955633445269936488081278729391175619266200600804761145091079414223935632947690347738935505515483894000841607076555653152952905355233744496502433908930933132397317396079458490193581707191954795173100966569582706112535226525832870243802512441285719653657381523153134870085615736911717903237116467721587154021435093237698299089904641511176121806037722604627685226514632167906071394155930301650836741021761619747779351152247222942874279140724958419482808222062798073090158598716567651966841791795484131945867963684621146684305625524962957633427402027337851717858019232391347592754821125919333164354265022808553535255006232267857501298105418648163373492207007637246645138057019234313000820010891865455849040706048993870786854621089483294118084105956822932504169306575779128069530495076136290499984431359678190123264925045552286336240071663567191245777688237759766667039470223202041791788326590014307437845265411834878518993279689273862680141701171893774074632890566246446401291268537424018023719882532270658217073086496252503475803669569395872088078502770360242230039036047772652351799073093716039488098710480457839795436180187699082511088857654386352349013066730241365614778618212070355670161037880773192223592644973642851085653014231636177622461715317057133158353666436741193892025751430520954922576802822604332977604055020151536353380184793694942481529491760502061232938849184020415065057662590545753504415681865390026131686969643464498070208933027914385080066718988892140289912906709408490081300436002312896450866212213723297891176875437536061362387404904060964819218034438870999605002870603895822974674877516837219990083121086889324619239633850847733622178921970635245312253538381275953932619922364593393205099705007267063656016392198015319027237732306294762437397308457556960194163328942947459240010373479169518514162667761726426966280919362523120347713629398545990871085830446583893749915799899552882532973549765821128715277335855968684940427888909880552810938991595867542365739310154300000864281500100819802647213701203368484899674669884481852951103324723232039660911797707541970882621553965352737867815496574601521635551394506436022118997512105343575349697732282254505197322514316551925349738588347239528795253166665278737565263129756244325867306938829011677183121908377276079415831608377889575397401087410854507873362097432269057909610829237989832776332991571506097934120668238589898033372183977349759271756687462737311827454909221662391197624933815248927272905141097754015983910409003940649973936565642074717856673572510897667854892288430886488050225816445910768856486407562831923990762472644652957298888555470837336508700909427049649112815309289748346183112426101137219324834083868977985115260427828475015910490246782005072728312751134940026314181554125843584723976360856065310901127558929469557146649459307432183143696971461544053274373901668240187719378374511364512753226022308818664897774550240219851906242264107696484364310955455723448771169417560662817463870035522343395234976060373119858875886420865228050119615880493564674523423593758566707245386352607745937576933599931524025058833493994355594312235560085221828585627257547411852453238514475084668061610268742838031655162485059669459445978592115234623836073987803305766523687308221026243318214334487533903100638102599266370650151924948086810158754680010870098198470357340661254147637081057522033741050505534095140371753715186822647139202488563942459380696535478243586621538752484570141683879693415382034077802613230499020870337798003949191733732574945572360327595697015299425077599214640394628439634183276975238254652714289001034539443276843298605301114163684271369217136043681365735664802283844281520656391018197163668650334773943784302957957547968143160863737344655722534813558379991339188299545544652627096748045684350810061274512099998155717217054752428372622773542366196684395929461401208929373240500926025979183138748376543554230463919116118690148495298061515674763486755161932047875775503950813679524262885621144132114414842293754572191350707100227472986303424699658976717331577925815550365166953609984384873689008752802132692934213538317928690340516630902532986097915348928915237695530630455627710419488575611202475783047624889330934337243945767304655466035138959101729425637497188071935936779145793112766671125112892488191858971417977289553439304018332857245435116417947248040809158755322239173870963387760276350541034982753337951521545188605424107235629757107025336287705859692736828758414646873939509037192384663094755419747035977483621823293671749763804046353242181128449525039446553388598091992699999374036692868278721822211815940090098824025587927552207040431161154062956398099044629809036118864184670945094536373535169511229788722142056527157248732484664553891063645096786314129448743152043445520716756088512691977420579817701533701651771991844263200705341218156246530855178154606925427857290330729553180059364444061858214855252946416750564621740581038003308048890480188649869596804088047571792530169886427667424705077169006445884778522323049946580236466880813639882880028335574443078457277833458559055900975064097598039744493761421066473095705477724909827677212640905713231811629082966090044552719274860252808006430783881537188814099602374480288418436041276614445950570602661195526863151125268467980314608067606078621948555774253518686240622995654352961299907146190394524146404352051794354311157509995975869881823862608045071657366631012484838083567332698059225818420745149843805825004861582615756436473692021617041731283198550260398874478356620677221174572572195552323049908893852186286882668387001814395451846285268472552361711843371213936871590893520337653626037054469392869403341691051283248365152367492486762428275428773422761321101521971706366897803461748890919111968765824449461345647619932997297199661767586424992942630732478122332535299763551465078905041451501926892885070396000370961213528028689975999293894738338820824304858675256412062648270329220480093202537759808664664012313118999339507272222264336339121102171726447178091956536842184265683505727887126442923475300805913744409239641252417043338118566007571005751921656074059193148250854877449954451294574079518612143681144047051048401220484496959739046779129659153845720128779358206194527629108668595651843572154250103153513824345495412775275566920266444839073995564442776316483154316601294559948512377356836504291889435497651349500476270512827287750332860889863122321030566093623287277617704910891167523389226581998788175483263338668871489111034658739605117046158821004108455421341511288586081149126218307566280634686941740847852996392379768682128594010391180727123317138630174050390819515784816505348584576092754468833213012786129263556283610799848509927474264606486510546379227091429234329618257517421312927223844262096530546215647149837601459884778069381956003617265904659635065038412953143282832221209230633608126286319624018207157639277646507322522908713180335840044782719207295282617482591771657346578182970617205745077382459829224718292848002205400771726013569907936641144661139078214721404322466395297413680390776223781577787369774926933138381434384755684862832067965966147232339922609554366575822146459078316825120108185835133872568509530926437165034049952150214989903677245210185511479860293209113281891296230923301270902404562226396273811138287088080449376302430190122196035425121111870307129254317620123924979311217644090804188893843555700887656334881983686684845260982491378404627283658730794771280870954352294364416465644530079584080310749100529576860950811769053487199176599188067687042534682074225225221573398935398584595211651030505254570710100300368748052061012506633268183602424521578654736986898895978234320828819772176929661984717484038286981162005146559520679983568132407775894265990881365751507063296470976527301253528617706459881985359873226256339172474985647154083143840884956758578311841906316850931367655949886945172986841815229926763644672429165458547720875738258321999964655946682007475719715266355256445013213652449403016062739470119705402663206411878678736239188615886705698038449394635223787955678180730617345592854087997630287291181845819447870745079299235755662088256713244293839145366381706827624362262538043520541311599277114439943853574909346233510558888138324158144317916284860152220034236527807418826969563036229849538647652551315720867336878532151882426258524973408813866470292158055219830417800724562001429433452917429282986579471716906094205877112103903000015511315429489411443200940333923882440683443284676647195563711831824468555518539780087574258901930226385472354211298995140022060590670222553939282344791740128918138727652236283912835986902026773385525476306254853749914421780019065685849496926289590719828898888332832339836916597996611658612798394305243336042486474116748407055760635715722492557949991562996712195878646200606846165766436331237036543128323801691760117056160326735174665608221144680386725549450170543758454788893337614486519848518797483176527473418693729162594810702229161333531221195075773815696502048661151380145778038059078556173584085225154696505946692466257864903179750589367577407599650466078979154062603109126415792833538376075027987917068407057014560181083520207717188113633601847419134587288375528612323481423033655561144443716835938587504356697295858692471996764077164205870802738863857497485174449517765008764138014568760515546350293094044452693851651450286954704529639285668046543594957776713108000704443682813657667484024162434204491858485823126083281949678900345309262372705193961130632843399755088202058165308147841360345332353610426268741140718613299095431624232208207114139288052846092074787737456496771340247855894633798519941600116285675248783111118954579260810337400285180500759291211156889454200022830914918093995886941413170435483681744678509270589549994232467759288573605720294009574854492409795102557871658569822302409728987502427595652871873775563016883848376484135382624501719983482475788426415964054754578273997513039174352514743426259451345512263855476584826538218537013865789615990989723445410085770884470310720348431067776065785675702946142311233123428553353607968676580180826476314323897988876522427134376847200515377388299362184197542822955853249375537715073460368374170666380497221313132812672447132284075748960833101530939352593906481860718993078736061925498526494952585456273691956714574139469933664449698165110317263162925701755801755488325132370334743495918062468025686703081820023931082236053234397836738165203238153315394068528420732910598101529650358111451324863951782653484517017573744174520216821326170282935280181496269144925236963902406110344794737003595597382180408999105511597415594157959891606351902400075169422301329225166477880794770157992103704246445491395787353274467850052846925306352754787183043207407372380736136703751495315223612467713441641352018828212827567260276730209659494282001068881824559526407111519190442806280289333997826553854747149866679698911675273285952980940678374278165024142631833159212429081972988194636935029124675267143366575540736307668285107967843903063169259120579655351563271016544032048399856106213217879498486292984407781455037518495580291215192823619637915828675652158089897372826570217446338714564201240803003728378364261615543811244016056903066237199445246635721107864255676098490427897666445090708878947299734109078748016275576683639949009808365855177443905294911855070494524845288253900730380863771751479034638954285479432865801997240571545929968689437875577624296627922348033004115290053916927665418530463527056215466666293807347533920664112412820271921046345682192190031099852553953840003405558206182071004728703327190173986598836251543148761513462289119420843306480875906513078519428902881492676645907833558402463652190489395669887183967689164346605279626942225663567017719731332078207502466602098362340439490825992715988199505957458698636219088454275747260260794999723040661548925436603385374636383802476137415648385304217099714668369961886756375629370880341122754138183756806716729820234259877688505045871206637747392497140656006543977712580575773760754232401400922360098006106926787186274263554835525162869421338861412388272058669564029714137299857353245342372941298224244149621637592479957742546579586134106219402306136835958777159202988236380781710985862879274620533531688353269642412647583169545256517484016105499140586996328971095735129059217075054653087759092725778338600474155670853339813239021691203765381048878160686874739122456034694285159528250483720672390713740838679783341148603163537386581773119550885944550874612453133592874425043108356578552005781768667091598439008925358223904449970766394244336906105270736831218801520549009686613470661660963190006980955485879494051983452580941294496320052830189163306493585435454541281908817958881339963550249618205242896741511045452467220870641156501611775160383111837789999299251491214020970796321455307538979551131442084193561052414235666949286804962715506398111470018298823905982470566566890073186176592362481519822775271948486683835200946908049022251793693397625989610537469445350520986674257515806671335593069280960255225500996425912068640104914434674708218449064732537853917412586511042705689605627570530288755498823452958101883650479260054167606991641688593163247060241303755878545492597999725997347869939698318369078552248368986597484438452916939646247032992492308279537710964390210088405257338045798763811273757130450710151881363331129188066408960093753717993941982729633876616957736476442232353584171681212473046738107690100047448159447482068633779391727911793185766608550440050073933507250508401026676297769707510693036807645883871023680120534560062022375730692298203946822251525264668618124806576825286851400620322497733419804341972764049236631894753957834435430402940203120600245426605261858612925371125225278732984990720689489560292504329890505551882978995357499251408427725097527745452847328323334500388713520158820987171146955681247953098222629821097614051963620256596106162777286117667126885156115770167142422753796527856163846217831333078551155102938709993507992725859442085416613233514958363445217023213695963438242966676359191187507472177958377826944550264760992397561265394012866063795443163754455114927571431324647639780404093962579114944300190635777414954134320836749166385995356446581980454240786979804994599780751010540954152112383823210410010080838734385252101078056896719653361163395991211555778287266388797479336118148248887826604019320657344625228503784360865779267733285638506905094883378876955563106021668379892504524723436334583476110415011655681559877332113851900665647374017544877030356539410727396305877579721672505787059956762446929379366547291624520055519722619175996882922527806894925427481333300797939434971817714594425216237931658391798420384974967563867752611184862544517442335210793070826876695858766298807770884553049579771450932664407655343079538929594692603764125516766230247253685445624761190247321035963136082267415032350412754648213012998909725675298797165643037518186496485407084042854652943469872712253724159959919138854904881025772358138015672982014034358835303794083208692346336684512182777965542518740294686191741096151196770625696184803516013755839843664385230336174694700901168181787187690057027782526778152117516875773701162756997032651798144347113730481663622211051893226799932969405128221210862986718282763196032830486500844950387916972031929179553395275815050159981540993559283825740864149040087447231559255638535148033360276509526075987622610100015270429242155382227191121093003317083646598381457681125129732882770286463428902604127798551335249225611205203510645830132525092487671813410681119655240337630780575995082861023704505575111634903300534621519474022209623049154804299453245145139998204526997287297160461521731672900626712112196523523042370210836345290874603871915363150617780500400079933251299706332371861587016923621735188990585091249087245131458222494696440507837194585629605494301298414714120195089008192817825293405831252407028051105539523189959937404805339333805555396582613381321843135977656358174310021923814029619636152436829582552075563173021582964019105080678963989113006480244590610156453562020789144616163454865600365834711405214242475525279336481124605736440353921254688506940685739652839141749594888345992323668384512427380497147644654341380578362623203292370542350451892035862384559260226987748847292109531835157236531509660827131704464112261776045904459608367033317233111844932573253484196645507058556623480763650720982308397347828553169021456545382173734705327299350531575245847298919930177279496569265657185208164617089608518735218206748195824316582573170021725486073845198146964867654024580150157226819403122233269299660877253774142390439489179212936531438798038117175845068627905262390632994607705811981957197586830566765698265649710462346938207117127428173654215017396283844692333285741311520360581742519324780026770647391163353097729369968187699785252518192812365280531702690220525937411515934700072951990205190885217064728598174676131700744358036316173630789014076440789043485177031591575981068018546978217697547138617422809779371207659097364316980948224371487399945131103351928545254114126850793116429057324488483880104140289717589596491308346101827221455200176858991179907719230434875622436447472240202621569328950886605940467524197881799936809112925602136339861585920294885601030540122267405221441813186388936626092938626801360332465163665861847605000055305359032169585256682156436973773438659829172123238462311641614541177576121139273007308640649268161760548283829655299433237333504359860569606583679429715105820572239429327829780936975706009533111006777345307731112281782298802780682669144247725839388334180962516386364465011429118736607759681818279323869855738689367412023979550364537286541154081879823481443323801752962515322019272020585190221022233903808258669503883933893703287639488709596360322466133225758324003081075669798191302878025953896079359497061571199174752448194049850300272593785943752908943801553471644306729036225694130019296274107506442288848038561387274437185403857397105417063720738827506146867350842207703342936794942566592582884640410425061241468197555569118064653868665786541256244742058951821487288283190167763278691774785333914529043195185878669365416116054667667985599176748340517014880180020626076976350977807074783527734462129261740418348560648372451327204612420544236963799418602687611832231573435647902778655650963541072420903578811382493655329260684578570929656600801339520100051250972734750189853640017212037034475780962331107396949829226837097958371110459884094358161901634574908261575740227396245881996848062851093500182970849351149809538259735286973837483125490420982932792083698092685155247713358391464277947961037138325153069507667134874543755346446004132427278712144662383175301305124200485188052080199984837864334187155730249338850229171720733541890040926858701333167478704215941575490924440024703116336013053829135818810851463792504982295706969920929659426250103305336220453897583996792306712661143095386273742820329029771573096755933956971732045664185848076574318499962555713986799544552200145594104653577449579274767470576055139342659910856651524708905059847890384357401908385441067165063373392977041297666722942489910857299685177710178933303878668317239502505734220065185364587664383347794317480471491872335898558441769653390492803561971890490021721717009289099347960968873664527976342055589763877231910367704122891051547722916118343684150231043947700408906397982379996384261926691584931427229361013175726822749895661148766597039405748166400019501266785779702661093509475595530205260197368587085725871361563650457707290332064968671125610285947209910448229128870794879858495566471995671976764582782865348309249947223166493703497325782464936169234494275234890284050014740856773184219895206650715589936441963129691930886553555403763270902465232366114133642730465565547663687886245970150512407697082683757551787486200845056573136173605493321253113469398103618940594029656322427018481628673497679070305934927176706745589050612011941703424529496762069934271047889012467359032463209394283995620533823269309933796925882986361048845416476063257055365640148745531630393951029567070209438765634639917877898703181732309870163934131651352160841477000369355419738396118695367451541655763259924598745549753173658843162927965898876306256848934034463049792898023642725551286983395887886260913376332036030462930668602648902489491719757046531409282959923578128259856224307988612602199263688903666143517281988356101493842214294796783560082811381335298392004317846785129367211887330731923108827578006464654550799444150982436365178663624271526964308083798747354248755125963358783747381047511344212495134745463674314557834226423230333888437305156982586928119177952323195713287200404811315865651465320606015363854717138408079569775624485200029874816629917038737006879657127620409488992072803671792906900775159679237887347354310798807411247280367745244018015038288436363055374308295764970608162474383161106896889007298191562661754572893605937120438889885926172843049405533514975852337285551664376782889067246246760867667979197379779733638593354617913310175210844333881447117857937439648200067484279826633734726022079956294781017643282068791576128749673878825397117554287339440004816297834658586884052019827529643680252066220886483140701343733394372909869509397220936780292790261660548970098697936773987965155969375495956058761227381723766364434897040831150896154023880919576876128773881570618082134722438764723683192359636842460784438584069570761452275024780422713530902771191993133906142909749296861398148542327209624739583350316469827565494766445631620841140508235149656569981143148576179271660056083675241914975665010885817402205654147991156611206687890685313268912275212516521640413950561367231565837326979980365019023995673333556542015881056730514941019546243180108701528435427081326152204173517287789966526612018945302464935050402522110736435975410006345804497106989675587140149894630497984178314473982016562648477081402792287466471926485061820591927399650040799311504282105081478397188275381786591565192209367368846134352065909497555436644104614871364701199072371111681326711411015958709349388752886166726992405065488106902913386521586199929236107376971884707614795933173394857123320419189933913322226228666923702777619313868801639370024629276409327768013386675585500859646968466371610347251529178936148170752218846503808478951037762308858199928921174961035982416228214485054524653318513195486633734979899129162482194004858023274082404223884379163595334803145111978803141937336287076278095792552008839538682005228087949438750661469702929438184175926149928326364616923300812834661142377422722008185421687127346124091459128412840408989850990461049691027633789203677162941155046827667959695113414552655140395653704783117886111332041104076735921265776054345364407074721614210981335412364745163464024906422225998044018147505047866559880722624820794799822090969886987977132142761669274443443916226070977569214714820646367521535322059445689175057285380314321640945852602691596692063553064928524635305073372517845454027159581977297687984615939867388314663471016588847339952195864961787546623560885240073092269081464848162093489554568726187848767639889200529037794536108282134028670783924284669221584951622297577127022026128826214903925604911514308331434631843619269238188744393955360433388038784342338336596858851449224225184508276849884321528670439896810812467854792930781633939369916755679385801439424536739120975891045641476359104535274771825717608056926510283547321606809140728235311627587782701411231727184971823003565000679070033532313719341141448843984877636552518111055965588049185826248770359971160516225774845566287110071445146254587035723497105370528128306246156489131098535844596948973836037868890350076204319223906980573000022326034028232865181309947878464784892929563466814338103618053817052440702940394787341240506254814995480478468096064643591990830219497945627248650496564283168225184579734973419855782602523108895278261936059126277001351670407966357799076457994547657715046905394803451152510437895541240410736836604366026775194880359540465102067244677871314318291224777611592706077800406076643291107395192090747220011987260783588590026077353135396174352612461222498056642910942735731639790331751013302878872415086756452703320418945786976295803652748008266889961661254431892877509108337743164653795520793104020799580258757176149404442543649186417782527208080179878456563928306004960847457854948458064968399827784763233734152493011105986143538346776944164851462508756313397020236477080989885561698772536409875986933693778719767517552040792372749640459932597715460831174959986126228759337488346622585389680659218038769073112816974004689896713161377213431543444834365862693660615649165841070177481338403785640786702787111977156401796500700816928490699928471488563296351691781833129781493413922517820089444501068095455626773887691894546363881179182600605000693812807965504364652838736263677359475566807880507063254602313151723372021908044896225415791366823538101532468949590824056239649520920724153818115587303524521548849908240942608657070376193212351473079687743778726776987333406949197141813967330558681470389775734082596936356239615393465483463719594203440209931414992310300747749703015111960346694193833894446540167318328377408645406960473487879457168873478351384554177728585599042339003771601225762570522243775553760671803077355649631373806042960489889682081265487277296182087366887373622051979485494624957760013866964372372840173753274252536992508765022134023930533922685055293919209058961894249214342643405743679855732534639520936049190569681962920569829432695533186565368134249734260593729662187574459797847863743308939354053904459194354382701651764750597321901223992542550938355540380981170275909471034930083569531556083552123203671152723571414348815149256410443684671913331237735053296248179951108429418671921212717753054700798288567752242752555719040885661796505583999497701560874146276772277957358304000868096804744067551080187118138252090336989938948044851654389662583866071410364388581575844270461539887849728862379136303991820506913222884459160884433501247653666818084666195049449748145958099455840878494719025727722408702017775585829528738985967846914460144964828734517132846100827904626013170153510635427655942450082176843664862866070969793566655963729710113969198446480288040214202762858025812614375353171588519775776632818579419019336388831866813880543042477214147038887484868583266353044582683557812051613841388437588347294849851877285452315602163257130643266884690338709084293756946260107639216674236654216612538080963142418823133501656089313490855833388843206823145783662472607510188085235041421744303358855467886241830639370728902681942336465874087955046822598830176276490616950225278470527190245380404544070148161390113293683698483112125027925344033545842316758629786853659914191206710927467927133642429125444191431440898366602432426122376003985625727601761922713761394130992518875906128640454957443620962795691460114820915649758762072087322446549543363000365670729029928203891935826136504720193497752905742374217222160294206297838234216812142823725353235303826739263940260539315410155006766647020040715650104013790250641459322958605056091284529297766933668377380931429112924603957462043102589859251272179676028279017442217152369255601332526015238766818819497565217528591219528608109398464483119073048337963019067127306039913064013949978171675730076335048506663580205410547250836590368385967783947068853714130168841809892189584770193550207178195288405175623730203910652994208528740279753540857110262007755148794849166828467063768091553532031589193908305568116457763552749051762046592831244168631848357333314737842760207545121749645622508702350516491484083177638945712851987969681500222525437458122489969023009624505158071109944561967919551085273065054026926133056921662020162597856431716130427536610495539765794590244819819221380194741556483772877185335968754057781867632446083581136578721155616305956630650606164278418881642912058958046684550251680060609799104489601904234351061255432145513886063807917139707349762186156383470200141677530698423289957956231445663880144582952726007994198381306732026276433457108193364609112637382034031661314986827151969914876073588753180969677488533366394528897026562492530518409669139093249638284741911622265412445182488653745680429798774049631736592542694943160337602402457719920112991155503022012015204968118664631427942651223270072308400843695790787396276926597298708520510590157677431325751433696473664991639099975182080587695840427983006218646032618821026324847646429489922222962335341732821333761596730795165015251186100150286495020582628191733717916524298669146021951121602281710746105505829650127852946798888195901709125799601889938458655322493468456532949665211765762558656690776271715941380158862549431869244687923903544049281408524960319642692961494230081732194129540105207531861925971172511600427294405633494147445519865780493594673757716533962345698479828416905445420389100482275827289293280596780533081238263510510974255724791901904346498628104632982258275587898031820820783740669712371904001257060433523971971276698401772876270666014648073470664397664973380615848873115336392567318689753425658056905776142981151794353654723363047531644244047962157700186424859191251057158806270438107970294309847357128493722465963508785402926802065005262981337811397918398938009021866446796789106182944103719216695821636544524701829259843022171457651547135709560664914534021594003259497687715812594496285673965545482138142286985444364896546184794914443998236337899744828309128806138832191569824723281921870028471957521358638826646049872235114802360472974562442365045566077060115899118499722853492983235650794635444354700560664819837297593287293338787608816581429499512108935380313290884707505790496490596974027332548288818239637865084268322337712795710731889833123768634396904601166359008685234397412257690293010831725594692994454296735840458978367086827692548107352844012138073756528472126717904090272716054517679738390216877486307669864925609706371957746432756284143102680621188137005041388881783749128437840837791281914321115112271237333085722555933428358732308468782025806745778167854876600306103588555813345834910558617877775583973151862544686983753819473297310157197448671637794157590772495880728558992177434191552072898002400379410835429836753430072521574053831870132684122832924424710841140051607544940175577072704871863500581963915971046398411101310830706566242114061749805821471174148141844173287460062660789110866149654925988108561906058545678159356737220770572405374051606896871489476043087513436799395975411780293756924030420541550578777733452279221763939798114912484434421658181832821635993314486424365389958555354593235941736652208157740099733488626931871767697608867938026532378355867531012353998722820393241024621289846623315875277917121023682099483498465153188145794801249529159795350498997338713650203963689158827369109418992682731277579280410265102999428846358537858902560794685873595801289868271856600007490133486594274590008031298482593165733816053448305157303531707351918575324313447983260307202125370400222179971901988492389298507887072179326707787643181094033072293548054819900980088735651962777611466580752997695005181562312310417715375497083857707012396154593319867492304259197004151774099977100206571746504669680212984139120592576223725352399293540166503545346904010153165490829437445541258522516714085179635975591403086377345243963481665192975349644682291341585436155189756305789306201675630306590390406053844537175185268292815630156705159724718466234322753401467937341342839654303900929233966297105821825276942982288384969690621922536226180655222146258646321894142933545094698247027644636535012129274700040868284736673789604336070575276129413876697610289249148138480036716834752117919698501573096600624645343408733740549137466998831331702091256362405626057563181616897495183857259106443207969222925200848385371028311176746992427548240182655501460125492690748623757121640133981895416312154339301096933074542420182108396550204310828463804559587275529011472794754050416437547933235235951377267874312592309907754330987340073470116239019612638761921750504577427804884537060152365002978306943065149539233074969999186661914724519627397748620832881781640381208039346976952617211145291000869048996829967684597465207735724618639188401834940833687058082550798924160215769294107397234418999450487258960830999912672214272829093194837923293721882759781529594548261493310635832659948371953929249925829941861421900491119662625895728067370226074523826419513461423545111623218096466780779163613150348160804548815266996709413082484346394840566945478407706537472333129152283217743294521619897353842106927719925559249604675225594536743275142633407478454568104568971528113158224883613780831390828651258443697275221966236118727585415400196794227226760793472814296441338868145390450163883202579596807992872920795809780234661790777612741650101987863170484138427378721493831870032831542507359742503911569496558943706875955086533762648292989130044446323511555890508888732057493504298550625593192893389074721145706273224276252495771412803100838116891890353617366835616335382097405275628801900252597052261651043595196175058122815925145184036679749796390360749635251170587977705369194104428142226191882125602568197533131591987258005676336613086055551739460854174396890677478460050465115379808614336876377577333609075092616715995788619782278364744365861779681761894769041574372958283222621887394159774210474657478879261469892397830628767992125469078283052503635478347737760940866855428959969396642589441625798092647534270933498644601838416224996738473660167707996429081151838484459942392821477801431401688448892818932347542599104109091057502929281441869918512142230457261212306905952844311341964841362876591485726011240814073135302308268475382042477712162325504223625015118299494396990222330021437318553216661934318499692307026621393540349367265103442226651024881349966670252816026286309559645679662919065660318539455815195800939328705007922020666495244029181978935192852397186531499969103546903906910567735461411572560291901972683849256892461511012170924837115887464603165163575744260520289639714612304911130257105326943166336934603658061346215934282123033373326409339106371340973527554306762186044481348988393664080914651577207118577727792095618077716112657644239389811947653905851542557965481045266092887477742380544278379286886042134031613147351641198017348279369710843439688267052980727134243159864907607833042838231128453349668145989380786051237582676951010802534931375225451918293054545481582856977388498921440077235081309680666396211567132171488406979933149010655698183792069159399294002886203532246528036544686635064457785196035463685797956770613971560687226794625617504425009715200632235240014820691065553095199573945290464980190824810076950486794511609787675112738657593247746050370703395048289454772823069774224441099598306991003065365783091278543880052565828108357243204013928893971847185237210873247686500809383951692367326958940898368137878491061453774615021488833071678032886357836198971314349225985494058570536029089172929406296468696211212121086154236244952414845961602461774950204778743246034345972361872945279401409893720922796585089842116396740798638789497775074098181018695097928747592432732537222138171927593084540166546994709100413284480082828130542921842401445902323810533794290864030922722201546146923339770259133354199022059592837961993054313625597038346669912718005399453659835038547532230624568634425329537594340893969712877533950465647847796049451325584466906347915469612634714164977585126066213114540324190471997807865090766220793434973642401181868019221550565937435009136216384986522376945468838069564365755665009263827792600790841990107262262497043308169021624954775757819500583868469693675114919306686291059513600444599488703477021844198824391433836813349626212134858672732602437111391712814171810758171659424180488187637063453522309946218731304364968521527720771719842734767993929881276816388264646595587967900994357891189136421994558026069695162487397520848947097767293025880431515599866721905301147844514239135478656027950192401746812409613084688908125479362280236644480079426755805141585801242122316092265291927048358451547032130878015009490356821600124263420260834557803414120258823612314209711731103191368484492643832974199025883142982056432750030702796602970090141459543063035414922701306485644888765060187822795435889974632521515751280644910507157302850536217636702401447644251515891210857573166884278729307491463459236691080449854879271373367272768583573453990022176149988685249551393614744853425693571470175441872489472331705883853321208853921710826248276268534256634123700450109031342897991168897534421218181501308821994851216779922457697114394566012737943587037031880291958846746698812694228804570123887190318541265819597162499469657771453076842045951406965279203058213834946580105659715695634874881320773282724454523671576760536152049268052096436968497518288219395328817072517401660932840938308108355192759412448045465714636455208807565190684465037731484305760934437675293191766597305263978662056903695576124232814264690842587674286619816797050978559003435683799370867330385866217107903954262221418916289305633698963586825449684549745122315341146558395150425506777277881829665415252158810897527731202678905328640905446303970217835399945415633825929521328147661689067124192287651407702585773157735261171059895303437057644431356149679946539817947381210242771104702913912700637591976513247450469206169985184625867465525841550605670401060349176377915972660773077168347337534943184665232106712138432246300456976674879232642726622461956685279065296047572114220199405793106913834693846780781266354604583424118501537255215089147942545395820810434461824813658122378809556695096945635449202487038847244788588195620525128936406598996658210389129575885209837763954077246805479092611663842526122709274782371243240546394621454538279693821024131166122488957956600338719200289515733174851567947109050043902632527530200161251826974118265441226236077585153229048838513331007711435475787238611976772536498932988084092699908826634761190277126010556279895487731249416972661002374995206648093756752499171776770672617009315153437473099985260593293227331240747411452082376587804287962944445949918446347531858619711926793433196930745921470267138158377119146211336946208826305034612541329453554993232148000953368037814595218816321606945329920349645281465479023078158234760050988454627685142188175447919624432443894772768080640963082968873647699071385033923098357381380753666625348662274946472329373984074225075539880223512576889402430009076530575577847639678198429800676844633033717874592027864455303091343552991033728810912583274482104364291065722513100650450263510089233261544890858571402654734037590334298334735748958884530594630086659953210200744046911628919718674342242136415706287769465370030907620692168733390603433232346877468983845739221935832064652280787849554722759174372384375563643623655300351043595450803971986528393808904743337064390756356348717892853466581616080268608644689793818505735068892542088702994004893584279826753884845787385341752207525707748498637990373140199608814367748868958685668964935366451365948852721673503707727826837574560700349176775629386196882334241249555118612500642584228631147061244380215406729178639393514873630325856003268226964838281852231859432820611209751458717937859770376402851829747263653327917647672165345196229345200811732213449388716944220278870051231304177568967780888693098182438813671932835847209680315563335928821007057030241026025611611060435884255697928380363009557767514540838302204062286251545515888735302891607286895573586157723696119884649214056438764184731830782247865120540897205256113555239799408301729475930159443171565450277904344221477108791466714544568785668603379537226145028458091150350201948010005845434276170371435687270851504551927858255563455267933069747805522530361777318765137649002606891115724830376875499552166277230610410172255693569485384143346994477190119118763203066993080988162393938098338659726435975865404809844107866447712740261624232875563519655390877445164730644856488739986574912417694461855596438303665635792579791647004327316360689099833504819460084500276566738523866832701431372954530382924518763796587107198660670586729468056233598243550034746976458504484664586389536379263900934358116127486409769159758761375394353243666447565689951664754368529867930266784028674452549916157515437096713501149157159641060330749144492095066656369821296944172601266812497445120410336290782974120036310606269481681919966399771307969418896912799837675867497100294116168925191587108744281414051730146180041701921275668551889855057971122024229524507922125446050186292976379528389216412520279735684180132753734481712023112948657052548554301445275194694354318554554096709448426255972699426622518379565126979252266580403385220667468318958802012969012018938174086839131860355665074925486097935784905034654820781701436966103444354593586248543589135799320922448474535125192614118902642259177658323856277965778063052070610072492555452018701947097866605806557283494759896902479640562103102902573245715490607475538153445710762472787691586771810793949926704199689104685921746304858271841776804743398804949879526242762146340251273965244795234336926913361720073964752010973773936110194299229492468942317967764307659867358636910069682951782646821432845915943802538801921026917455286662181393963890303348764188632267004044344274323681895020823246320049281801382474702860532738117564644540464114383043655148433061679017023400799389476006013762409203292076809030037478921107688884592739808717556549589743381301535747650556467424328162509289690949725121718164765748936026813127438066777334088076473546807161676576275473863479540711846276333106700201823899450949567854134409891174021763101698117264741101387128017590078635909462158065314396077521955474660602240329441222247477206294261450998622419479747489114965588509291743864387958641648929289222066390667520349381517549061520038129209750047442807135280518097221089747915372808173267512687097333800460385155725663835211734713873198392829133835840137117455540139418426693993432862072546242532984959958588469512888717066659403244389295991336728838125818161358944652820493896725939237643061651381865976415040231897344010434224141499652942110039568544263584233127754371797136501419185752927227408362125956169324262263596338149982895671336720774271095994123164758483852920143789728746982680257050513373102490441700053317953553536078424181325463085441230124507919620931998409445417106252115697914024753584883881686234447571321196214294123262122975541779495686894712493089131850313550559234875033659775353098376561005353426148584610011141196259531164365231414763191655799703076494678045733189471359177789499617990938716900539766632934540082189896798752038159334903444643658171650903983038141048493604346688410093714723754380182955511968574497548812098051198234446917078154070440011348722770812211872402728024114410142195371378921999294557130775406815561625543593136835491448278092142094274181446950315713761868334918229236204101456997311637075217170422619835248163624945835108714332032833191158149360197931326944952252035754472471454051022629067453601508741228489210275096320089422897415199276198913739046555450194871156617668704063050664061024457010975284063937826257183699054295491508512346996539378732823287820692729038481776139564454136868378775797654254325269601199019156596804823146594655128806672936594787117950042710250820764220479001503823992350662183692338937182683876850343371667001940479982578072129672730069932265533352528322637682703770449683787451911578759322080129246522608742764155878326106063131320599328972658511052479658499840819016877590571318762045444471394119607379594096615997431483712297743630702481515692762961295552029095463960748584147079383248938669330231999634468378313176574110442989810086802234308061001120172567114194109137462402067140221372548264401483233516540224008223475736062353287802425693030286151252012406053365194746975237505828675872225562234015791227985938589993294151745276131546458415154689122762031417724632946624848070936613010464099870202577219735102601160796019751952382525120523904059769648152235239363416181124765316293881506350863264325138990188976728984452764463301968477342687467373300309902279486841534909063316342505570687313790357741433816563876739369884672516761197509133395568362786945605777895612357897249355859615762883896682159372053617720978496546936681700678846651190570701135257445819475693427043575305499378949114210997103180531523342607853172971992372727277999107016696102636153593868759144101890883610222095142731598918036927786646815326604518243261454669042056655598167241256816681373617408288853733627311013620532582055943177117200339155749623505959741591162624316846976987527035125288956930099246562745366140076056007334470693856778277219563310616156828250341875521729503063405644325223915511132701963352540404392494877193890623559654042082477031390795245389108136257692734009455032931363187991994507000446299142847527122588737404076232862540203932326671499939456065447582380675517248241699823988242066506023473732858332618762987888612555301289598259185345382125607698373405010997083777442113939235809614090215102762669194454984603637793018394567309357143697842355272376311860620443125860205952499836244807452157530815295774823273063329893218448055831666016550632704420824471207169432427587046211368910612376066318823645003428377633385436139728092548778683882580535550908650237635192325241114232982385125074174230654059569383053271031617156771202958097162594929940656546642631536366412525898266760841691668809976923104343125031734025458153486733610473250119640501053318644140631227582810704757204606495663463515033821037548091474573840376090642217104729936069703740245697706567666134591248269734938708631828188877417570395794216673282211481484308218888852941317804622250566510095478661931623729361454796166587861583770316215642900662801740454151128148559865132835101311730655607891569735536205508719714628246149871294550243945212260155432216825898808545151135673215074131444135453288290278174995247596525568288889065502445076731626659702361746358237390732688320596977988800032405943876160815909194198671681770697586535148748049538973163361461178193941611220409910552539195701370136791395202692619940839087334898275621537494744619362738184638651619623328490512143801055365612522965550348455611651385709263083257769559055834003872338335327851865980118715113661933084309018435211780309964228449832116901215204639153584877599488502871169633260556891550883490645610888911580880514008657084771835839258620346222980778076865471137783173049417193843179158354061904044845046190377824845981970254044147565926075971563718298259756121212506889048257559903676603511350195664898735465669935378007532143568568566065722042565683922698092463731166546732020908433675411454350154734202294261414717953315104510755994093207290658560884489385200969398925139689520832395808601628300942741047449138103543794778520863157301945922283640135653028854634266946565743915448515913409509344425420655591653872800280487895197592281438670033449295720176237906825329710581083958322588483299752093137529164648607572107739947610196331256303268124593394843345736654347797058506198058781866600980216922069404816673844399187013837402691376481131637746391756083022072199948703003301459555476376337098442410396513116203811580874424498094274852725087363615371491632267483103092492815644657780695177874303588231342599863832341145953657112966574408856023680137074567857212646593276615604413798812254063888577375670099136789722094643255886095499087784527342969712558195039479458042563520244763295728317674842831705690863869015598580045304254475352426182277999940048990844016656052280647344298053859449345222427332978648779145780467171636143029273542327002969903685116473735552953086449256420581045523428415450708186784552264606229586370267694509993651722416076016644132831397335931381628820507447463825892440671622987292712250756350740758918905825317590806820906149962978636775741114623113908767196894036370954563166816051776237228039296038395437720540665577319903863759926290253883455949573003458497530723040409643771670823500616230104161208681907445783285972090871594623425534639320959215875543611244741150469743064381834545672407783881673200672122857593085533189235537031526996879690801620941156467812235173109132714732046351521035901801152803474379425497619963255328287075997801323914295658735369808124326726057480307797164492838310093842821663392100728455675104321944493017855724206094017137319740251835310474430774787642707653691298501716685609977704867243187933733239838872857112917394105428706893995225239556607402196894071331963038660144512905103242953221338609803432939565566059318607565764903651183905478116858073343328310320397762613415723302562347956729561422933576215205065218669070612604217019685201949727199815551662101818937479218877856419431240997175524383923175777265306544379570645767054490257099553681240488751979095285160896289707517959401103470718531141927979799680255398836956229831222824636703455501260844582409208335001853428815630940754940659228977934723360807238895936889754833213893910103702527917440872413287389443462933748112168156189756622350687361567350601588726522973333130719193640010127640650628172576682002813767899567573230974378258570633804201239575455062051790807957311270268324069223288440697075513908065583830426870317290303659874695837923326138109658588313423070506873213778144150196237341709617649258278219876748552159962392127290024428276145098011732582392210315432773892692131472663484408991664588668678154562503336456951271270408812092899970656756683753437843639654660867245812101415960907143884350550403010275606903349780770773267925153027354023746778900973594973159741297479578252745914062001003637758245909122264454076400616759772799141564158469320555606391754019995570459907445191653380899105155381765149179686659755661918823265073910638151829124413456478052168334497679222039824733370688090169226158091613085976389756370688386957452114402094183967737378049914056453469101761932055675927651935182468665324162043059508475418420484914087398083782260988364800778525109366018942308700015169781592457508537879235354715718669738066032136195871053877425620971888960573385191819681502092413067975074267609504120581631719582152173331265119311856518889464728208450793910427701199348346268851383895451918558589103475063555868176685693446608768178781553657690860904582205454762950118274945155960477847236921846325345953510523674338234215557333830734923315470973496485747208445189899260971954217929247753536033644717905257894638926587372318623563299015856487085846507472023535923087697758905841091789206839497467432969670901663853478099411790154230458300534595007019324614117808618281964334678203619033324525012373687624841967237434182249408553610054646279036192134345920270645672517120714968567238387475636592398834759342757414787321332910750536071049438737590918091982596983497730696432875139228363120918960274690463337484488764617677175420627861842794443111376362855676336559481808132971472405330355078009321255473971886302239342128057403519171071371004568259156341762121226100525043235336812240424596139188586206134637698774253812812960491511451110522104472652125381928097253646293530998423759658945156904002719492504818984560834264082134101479540826191238954299486389568969807584137129673478951338123255345544256098482637365132145177493667234142879398002875264227783039198497184915729699134050142938928104702310323185144529586073393511859047079332246557508249955269116769793125449185564226972290213894890055694366062206066760103057509796179971508461084457849308955610380351193893502087300873054651776620590118529074631069707815322390074383511140839638182572008431852837636645408133561751060709900769397574539527059622015523826995872222984993724034656620854658813758487362520562981864776241532215496138962916420993854350009064892289008424339645144593715790358972978865129326032046673055711738886759010856255884454732486652403671152737204640256217964527617043326791493237319098226024430076921753054860716119090014706172566073101241655519402535233961108693990444763183819114233305684151024945026565002871622911349231059160128576032092318573960707109415511913744006389891740619437984502278819579412329852572558842579475780126412734070690802200484406378140392509622662327428422682967961492318163662855458172468032594825440024877896354824154594455655775093667519650630747497686632905657429395344694527056810336815538056962790957116276656376586652710530614592675239913533751588181833554437631712996793555911718292347748115856988997954831477459052363924137116833492186551150104484111560711760725798414596928185321442398722253543093208261087393562919870909937826812197626404857041983875401411386058800681128000568439021492607592338040182319554441784164230196481926948869761979440918843882561194654280844217317693212176959445210358916432002131419525281438191863115130138160307446239037253270049785020823640775287985552454977799785354411243291810529195388697159385088555577417744091247512113914842821654058192769007459002553963145830718797947041583650717049563221334101296052745341640348091812409030625388024135835392101564084472854985915423399048513830657085919910527844025339827664920659288834739493191434302777385885844057968625699768827301525846636733403328090657568262677530378605781444226401844709501392158550104541325148982365748091684813356025186913192479964232631859476307079711160802038066557971254799324020858829657210843959630444093147525137464983142762288092409843424201908916592017867588916871844364205387126972195700442542061224034394315002091715977879575041157440467880932738504060712942358035491309567294971140397227380357311660770616578604226102733887637059154670263511124565697722910880021181791275031374512233382925488962367927995883930662563234672719512360866520869418273800333713899062743139532912807273746867054730541753953157624148488168170219288997873180228102544330226435319856046442712632239377040366574687252578589176682767402494585362702472089433374815727094693541731670054162739640380515510016518480678465211652829303333005542404841759196387279363915898366800556275697667887621890762815111332648884927819586193265782257152831557813941875215125789251559615082039632330892811735692418570813516223182450378809758058518820811628211313206706105587240266481377655652737303806708058263876787834303596610822624405473163992169370145540802774530343990619945951581367342605930918565932707163053893189660199712481190680088232333196058221695794699344889703742708674804797568657669519087579598420865395140971195340865549353551630065752708635779015941812433961562586851544463497946988766893529664630459064060363503968662348014382699074913321945287213399142917931268596073721964438661631304869113341186515469675988780923634281438879974602105810037821880052863716384768945953575378072733579705005307146851198864393266079737175107678168691256774767473902886686953021662650640869355266351732551436734139635269555000236888349335659831543507554040513340582818365201579631535205687608686168484268835571190895085693156120643122753818395086532246090058015819121510100405842073767883415361510998064936430594856501218392953192681960061592039340049278997914005855192824996540505495051355149276088523245728794706281615202623602627584100234779836732840335743319519157385545257775281465601995983460000807771606515353054788412901766973266005351900729782313987876565706663326363070657272202158609872596101739824135949451036615528984146945663441126188406087438286744236082757152332300608721870840394312910741842175999441811843312345366415184505253083753220679495580609391583773513777445341541305864628931867626249371336243972971348834087248292456259612839524859377801791320399435166123707931202071652677576280966752561958522317826280891946340127758128423124887600518497406244335955496134283626899153425576410568734574513896803122219721690377513547527563657044480246555378439482651572316320031476637514659699669092049378495405991203259747292465859736322429582269441338994202677333609149974600125439372851962379908829091259417350442627267563889241759221844277199645989036174633083662947784865646149913599476841039397572495146844996950167828056555533552231724001764518374562219815457815789067289924721271511160041690170730669404033639907131326060423148218599644099940576611347784544872711044734674017458648797380358762029906474949290807480654991718898316452632582494486309532612408144683410446593136636843187721162682251943250513258221586586447218037078590390479990994215599039059431422580103117928150151057836769785894351451553042392100578787004036136624178235997926603520934249033539863199094457243751055995961321877244674808189762891255193072074012509160949490474243031266606852824493810211348332183677584846348132754013766449507486219907265941790805095034246079964656560134721347952259828239898588701010199546519009516179956337510424782495725651113663670661224519281528536545658671633660529811673396722747231556193184613547521563079386068792484992798795029270228737094325434332125352198043338247519733910265141840867639068150166381018331261932862320353016475019256877266304009766949459783514789940861266267845099491326787795181769855290710759566183722008444980652383174486236103461363354996534205452173935298711767496094088091265677711300393464625932129462393612635042053541157345440019710889000370511736496277770621291791155835789482095083511815839250669180301723929320247632809380176190336167309812841849765060155811342077069217920283573214718842230261850655165194741011105800250054553167266104748676803555584434945456738775740310581726265216659517654585325705615447624032900652299847904414738753337013093306420076160369090000659932673361235366012767049209662112284669094041084423180010690019938080987858831154825540036016045386911309310783707673973301149197545601625048818614560948957475443912008146278301451533847119047614153313504744914616579017151856939459704856774432792736608459495359190174054490741685533834495780156336038818633018794410131687591300946869502764787553157678363344983401062887290688423874528524002945803683106090189113375873704519466825060893109581216378377713012795784921294231860069162797337550202975621405887381587349412582104751870648722867441741100073241007832022078422120352139685405782421601867505107295176730274405086586098515844734079427690854717117534252066309349320854762547889155812900745312011936146567860916872880219314777983923525112652498645928861686620350893420013532535164367630281872242868188196806039841280611025608910896866422902216212559872543006652220457770033013891552403056885932555821012212957430566540373427307241852113007345987091393253379377811995961627879652789746431640102521013880101659300933279374274878519354511280059756676322242077392428207920908086110066209956174000205548667857794153484439976270690121502080756258544969873917671371125186682270356393015942008952405119237510871685496818428251405826195280192830955604431864140552608130826214617053403576079694926360078448515474802090902987565813037528202054904880237397347313336928832333014110750376350683434026584659307788850156328002361631274542753211094604552157554807977524713183751854462843076093818183233581127871894679861154674164861360741259988051737910383749593081964953187004532983073152300867306711169434254639687689289237977943932550416311316854544852686628727999025519305937894776885973143886110294902822187757565491539722538703237456155561130774040372797101757744870344617501580723498009450684473907121313319714573470435129546756026809949300017399296448048365363665331196080391345120237941829008053699840162801624051048564874867947084984972295043032304552978532257849534500713927664309755324070154508646761763999034313401576326311397154498579825700364138502396373012134517878925015513582632215175677512981398988857277600709156861598380103481978346731309538823737682627843429130841063194308886199162178048366030591253144533623040073130429165654522613328300723354545128497420799691167000479798225374082532859888213635852327640731303892447495858191803503502123328953312690716971292595283488515567385465062109462862786097470501345273612274838236166463379491742863557887787454891462462015775438086808414048267249244031633001923225088906244394128669070640427747356614884898180904875705631164719765045060593358979372885740223465304433198353471191883418156787988144918974924755816841721762293333173582413001979195278823153063730287754862064658147900811339017035886478272689145336413523152038018701024223213231866014867649540030358691816422036540840519260820644829887216598146762031680790134439776634658595073476044029371265654518041507900965030042669828526340640944170365216265649575918870192790164186387452481610833369101006933991269988863619792200992827322194412903214003382349608687734777773871615367107292449087506871610556971913621749454845483642691894728080988932302106862716436090665358481619469454402183319540244236667428180386309845626628389062290554818568614650955823590063079520475538981101585404501022852535026737050820941473785605038029584320453198997192090909922540045193073270571860241241848182718885746235057409848500577385971959555673124465525219250759254230732787020698252929154835517076186398255196370102868569338328296412596714464384286655600550927626995883920173159102977119281831412252860445918871349487686995910910526164136928043140985919283053360321387168859806295193463917865876900038897129554366315048876485066939480335363521879972906111312748484161252489038792566551769227397260208705834199815634151832473675499536660461984338024886521451394615007770356966581462888100162542126608393259181217511617273402349810564605087414739703553865048647847414904767887771055602612783543018233202702503161296288402564350637095352013758334388211579971862610594920868636314547576275517193024700992138743203144460189405097041697833769958667345642672001246604374596534760496737215587536879744657444702484334535434436401483594012962984804415834452498782247439650741577482123760446073257381102137469578059673048485596738735843807317685793962142601131516588640367311881785481392396085984370796946853995449421434300797548731220099712401646795319326009845940070215947221982427783742081778416609831691317939535314517806894408867448050329178836258525263161334424271227321358589536999930743239585222142462801380979948370643478316738899588427134600294682007453763414620900634166916328113787238534300815019187597531038420110928020763959440520812525955208098726320326360439504812473201830497661817041577641741655595101897240738364902725692680037980953237222703575283455569452975956049865468605039551568794280338502499019741110634461770322930560782678552530114535592903305439414216970230049879601776740990361191787129080628732600475231544057068412572196231661876441357818594378630272640556742494274602847511336871727844100527116260490377515565969504571105605945081602853026321996854044826123809412186705037303176310525631537347695051455468731177565314702979821540374392345176129327811209696340368982298640767993320190962690975776761538801365990979308142204923657089193351276642930726716412581486483611091436790457877518334523940351834600622487353921838965182082196501140351220281669155211762922478082806365703911566104386453934179886937240323523506703396750052811947721691885745140833978253314567040866308052809589290696734214838385121448041270870026181466239112550317539680797669595977109710691843971546016622949012042067597227225381285132545241826446063110632262336808852360211133017672153235604606981187410854724252653958110974823694345862566585183166195399651008762176386669305222912577591479339260163520036274685200462122618594859683871832495946445926846790206463557945084626825637980490835373996162222397513408402240434555450494891184733132686799698769302398676546663103263592886012496783044752205686950467226127649327324322044848548468103708945735385895633639858551476551402356950510437100188042220722098329392315990802183489864153574856674548680796248181674909905208361195266477480546202297353682180676786420257428576663038443786230989425530560012424422670036420224189201874428137174521168962863340849330581986859223192305201798761353360603117776703835398999434438316494332361380388140144134171265639778292379927154277941775073765323874256183787701109644339734932582660298966609921649670040020101664089790719867718662055221434338109260720717557814489057953610628632925693512905128575202111251634230273441810933195948741446744364392942940326279586008607535362975767713737691320731264030873560289109139324131714441769444689251090532940140153292423299780110720850199113471819906671860135750629314768167721602441953513570221321202482821673774808869049362017071973680860435083820619858951775266756126121455858706012047471453284856724455779995395573505936093886958998044783137477256610851947849851422324561814970900334176735070118649351524915292691963718570681136987431473674012288403850456961023611225886652320626878296011485854390290541564571049555471154351841395447843708058043301427067681135309007757759211414297592077472644761368128618667583972796296357530932632482146171989581622122753813214967267270887578328614734267040652521514807187824330182651619470218862075297724872538898734131376595112704918641009853735994038389472493300341621141007307991605526397202115364381170181756342654736068119552003062446625975267876154742332510308263541227876152449879835412163266010835712511063237391439641098200372240314595100438132022674021444114495164211500223129449461654729558829459642660290417635691725746738112563263599662871378115239366273294801106177252607840391851991437432234025900067171902261907729624430873563645477738698307635483803529493022028053636169316474648081330719067499583385699884324331050339958490894158860261795491449941679362959959579284796309588837241420851238445743784688911451721204422812062609068044655701055840958801048056200376187829774494086079615635153714710960874857747769803473248833700980674891524153799299674349050416099464996062259724082132909384771683223161537900895606774219612993760786764210007602578837498160610568294535397362036231483113622008272559015624518189369144183482842113344758429743660905391996500776632446921609089831183301787659863176174134545687424132186867352929306275588316576780255595988687959162302155500196659951023892710950361832434299420722203554814404948643071608360896373657860613440656258289537736322088672837992252069813323764996653020039552336761007835597315499350060535062959955733149912524739079957847924012871667389239822182924761326433524377937936666742423055639426534496321896738848883416275937939923934641625038813874811944565600416277323186981164689360235147408373912406695979216808543286323406247681863852512171696361626573216075798584848429885044364128113892728633586830582700115364859388361707485852426059828923416993438234729242543661625699245338007697346363471283620678468596334433156997269913690718970190031333422763598734633977891679979339011697996337336921251420956857560529790383208515651662317702268815295939481684774184091096569828733307583593414641717846899357263000939036668960511541230573694200738104959718881711342487486523447661373943304444103678621030221229412122077487089849404319018843140979821197657966206852955692645895284804980586937729832828584756411030739073287241865495763995622347365626493708466868455304659796974837607716959885395853421057038619514452562337956110618562324346317235030691970884356825353627493625470295549775973842068045866075338752187248671750349404190324998174515040959694845782408337970368651861792454666881220526492608259793219048182612745225736013234368811769303026301591838625733575708024488484765023067041367166120647098794948581266966082221925168365679998157394235072611795947860816036351970470294533153737207780818431525661658742148785421291106202127913813114763045156312451640397204507623081622608125035823985788974951640221656459012470664055197786722999970416415972541654079235783008749016467375413490585819228411528037980035140154077026261310950588655364231484506555194029158137107035407099017637551893846379200444841959416380945259120739666515998433568787923347965718732991740815936635888518840725275264192553422292638771039013864538559180111697304247320812103648702818247367347165504226493167569078841456753977514952972578834148721665587393225270646250712501972412782694944108908484033690656379375729881283517095151843876620594678780623102583821360065522519883578799484219291957709265113848520483512449912312452184655476869347867021409350086799840022666002801889443564653282474738004929526875108807671435736288406886894152944317835887136954191521764039133962130392313245143945688446517994800067216763511758742051973569376860796863513988950313822967543567145957376965386067940365533232425209717542169904177762686547577414130266520128400005542300424098381238352917019394216436095776015652354784806782106786839242712295846105931605049419436933677779098785314165641294595089117197463855093253887861835414176267364725146400728572595730857382550786016884116266786429847700422221077019501046488490220470087638445808036156950938228896151029145953256877680430556026959749917506884308953898994052397138433782805662519793662786207715617997292385773546148210347316234273479628010846675242422440117489676721303362026646643186204302567879658663199887781874002628422940273543453450363565905570178623299373618658235162057441963265184306514069335155777131313539339343254840686255796432046033391849698334252615554954504328683752360641595923688080648581118497611272074393535625036484743571282603607475804978798816279331224786652700513742793374709938658459091174274897603589132758244934564976439687444981981045252287880411414473379740973821919307132036254764701263278246606470562420368942010652009787472653603170297015548583531284388753937807887264160534166308295112640978179646718230460279852067967233660187190617487888151453894546779822010167650715333868782017479536383831744683469563755390875488354471024561996218534446344566346288060174688305744896583714706184442776006021611075375246846218364235431170453718074619907425844784788411207474687096981226420276414245523058709501479907625428943317906266928425449364643067790490580416379567252563209060879009982218091896534246944331559863107157817012310666722449310667905840092574320435061079672624574684628277693568394491005199349886991824663300639919860864759814881111729375963106181976729439509084140650494183887143430169882731158590383201989919735530144041252025291147758382449015042331941864087369237737589987950500674075152955768537642715907498259538077051574275544024793861558820124826887240549676035925205259877401559302957101381534482124768400532764489250419749409865339657034062894521813428115111823948927234531322611345234565536443206902504952833705138512659778742724981867797094022816319638932126713625353938582243521496182911762901153052726616283234726986944133862284665903609556985143617203700834037514984287935332250640840216658304450386692666347197225811069672825630110234146304813823560754577014122559683459991808818630153181920333979654805399683887088948687748904786243395329855575532469589551057289924593491654208543762419201785749568081033855692223669772973248476305133640955697970836759173045361348658740778724108264916566450523642152199725882390790934968767345000603499458875118787470342739044461932377356695394360695425545963006957517172809085626539289946202987354974555701859673448941963843014720526213186591513823299103748928661649758950666746768279281321552504856984718829840591278130275727016546425049068287174426184327651896526953686338682597547105758749202669775886414866266366650748938175794486150613011708559588119915923118122371776039223855805765153780037254778932661015794615713734296236363423944837835040564073361422407284897619489077855998368944466790963822367462366762582139702304784915461204783995747355360542786438720332258491914068847667846125925026445899742045222161312695822521419399337880543100698962384203286581623014855297330499893491854429940674699099596357841025245875319213860659491351330991872792920383764269913023981114228350718852977530971496916418555029580486490880651867493049653308773549238149833241924916146528453489629643169590282720590251101745363083769210904099851898615590301066396446692174296874683297435879513517327365970645407692051302051738829954194058447777195570561918304915171480336365662110322663401564117572200796694186867451004738638820583520100632290301851768864157197048519516405489963945088145638930841924029983356309933112026107357782325554078425832132794379847507210693113073549697039443558692467066711523027876503423220069417584016714530734347335128637103225932853353850335479566554770188157577434866299705921969688565948791616849458783645312135125298358319687903537843986537811092518481256909529859634618698254780157631166025678448290899786894116767784696572707172603752641194002928568241476531187966607281611007112947528934192397114344029389793790975286155417509268983862064841002735457745650150769030229259873900252897051983659702375617400666784826991055996182175693586235489499417982131231608123611982816874556728375209182930304994433092326548788838946807258331641510969830079747621907872244684963584416292748010770300517651139229382613405175127291576544715718181737122116220538148614836434406066208377783217361024441436953031022750135633225610877455292181433589242217907603443637409799185840630100108943657010093587914185543864578881681065918034183670764526716594554421890873058797581939792004573954531365833908084766887721201869988599191137684558450747369735042625422804122402533525681220208205514826395641989372437620974070789793915898351510918343660198296915697668790761432457294705032195288350631320680860821719240089248555084172082512060158048909057917270140314604575448732141205801748397880753814480114240136842233606560638641162875937821760752896999364331212108041689033394731451800224557121612982154849348070720085684648089532113398824632294431477392386261415599514213632236385902982822715270161966203606386817833568577195030061504312657377600214713127944064330131177261357453054575241276090433197731230415400845708460260221581271827783425104153349348715107649273217317996716792212188678323391640465080636611319265459308755323125132311408674613752499962846886574889911505341397813447780957152755639356312780485327903148230136323646380579339954641241851323517103659556864415287819450880231629690439299109185410327919021645719786391242343159796154963942890886034344980562524714309443248251604083907823329182879099794158529554542824126978925595124389426930422170349288328687081122476891556191711820900374182904621428405186740726493915356455735160281879482248258891867446833056197446012899689304551589829473979390974865257741607354787555161952572754367429355213639632061646123479043001536883586580665636692935536544457813516981890457660601665856382165555561301622181376160736728246482436255281559890733899667814716293517596956213228083861388678777055815878538965498421418381883951051484267309847654067710163091352439266831900467261767285309477113112108236499516423212581404014801905605491746436397109935270432800504856448791393308332798741500263022882956005265228591720965945351816540012151086287525659096433556046947029341442995304296879778720332158373130584414374009089694850121955014013559158685369915091677401125860814934107382979977716113615115068688998736392533879125089807573987643233708214637565811286134393029647209367604420470370866209066010294031931993026360935448102383747635377752484745296748926784931022492946774126344303367602561163844219404968741071656674132807404855588827152727017599506688077618981117930144411083201102357789455403172881955899106433782726235514228779853608316360883242754782503685767578556870801468769566093945711989657745583728214175161000873927146675101160716011636513802659185813000318593079086162274134189524988468596302096415775396946063989867151683211727079842752263843127911616530926835412472200747854491199147126330235969245457546112739409064238702280881361027171506013409729676201097678605642616311207822650677255712924955547993851934057764191604004380134430186712078057089133179101059320667670478672054495164763392342096037306349660189296733136187620727985275531488997585436786355949427488271131754563714794510523846468079398189400894347224340744471388550640535049505023548380337226915997253545039728503888797865206220350765279912499146666448701536212034377437323954363001295001603193856461825743630761144594517503894797628712600707846869468454762855410422865003175201722531488857532562643897117999905212004238182919135168177454310506592619869590162636833968438515199393434563521712894897352466831225308517073843295614800790721488877586236859319373279846606192980113713554867556808698438950562858309413128918014722512510831454908240127272325944789910336908883802499307680785961872689718825695215980797828701915491524234268934287557457474699774102847692517730932444387860480064914771886456357553254782488149527516581695058533302860801183206129363748066643088929581152222387911336682366488433845409293347824881592391077737344830254094646273788756717001277432005511024059658351045709360738908226058456407949205579196930563133223196559246729135297290485482942449029547977561844728514216131996754929255985193189490107292923569449121148442260787083099424629733583879087083231793491545524567902315292214720659381502949391491694587578998245820943113230907026503601150299074329590320362520292200025019344036775254425933262569955293706653481315401018062520633043619230716115286572912660715897762049349453219543251554222587834611374451645508352228269320120772511181481010111581642218348527595555867316699367126643711290780294884575065313931291527562565624688257827845949054073993223278269244777969577661668528968947869067862634224557960607361329175653039507804818565822845885794457793798952611614424234480358606276346822590843277629226198641911649463168413000598438432308508460040117188972757125772508022216360293173767222729123820974562238472765053357564666854027356840556073363305824705197777391330075805564867204551113966641477927115788623518782991333878455652663208020509021849770645283158356783260505383994285909252702407371999114111245138796843622372035966187245555681039576643012988485200559503110606487788716989284495855898150703908537384331013501395277562183559169772749392004932227110892889734646168964408339449641278969938430511522603672848319595934941607452558669126929841617990679671206066140852724545077932576353300618691144530649156757835060921354999726261209571334710285275353730786673604448370659497176571265244887406089303813860533637623711126794434591546697029182873344008298468836865525858183124555010512591375789655794808683481112498997407662848954390547736349754830781199210244196982506488291059233528668414510908050872780620116272583557437868046261050440635957448356167312966042008860095820777880550640031130316940030884639220032752925045570026008688294935982977065313944531230513499097142489392961446603668825852372904073619549007876863047926088545372612653689480981564192004683973752953116493914511812269035420776764627745462412706158419388807192329785177320376863324213937459280952691120527971745194795147219988469098317644400778457992573694723517911109807187798042752128938658186289013291184314247137582557769549334029697860137599253889459926079289142768020861765127397965550210784829947757912824455869121441707131736440638111911584529389280737548186067028055246743504863720546059585696631076030896875075160948056172310231661996202784325726219549764649117326209884002109452174579256528159548878492775794284364153239747458505619336313496397871920764369469706540195007685941785405808488878884657010383319503700892552224414355358694013510750198429987982470750276892484421778802215665575945833628368440529990875314844886422883545953636608681417802552778984570853808772472691817362062512181155026541399159439219720528322294633980239565030317601469993662860517366802609627156045751829586440652060709609458413895022679989804293223536429437010641304169596657289153627515795142585973403721494674617048581581003672600862047251863059982773216080107946724982819826368890622198497580533084566011970008116028744128904561706179342200154607434788126774459269227386152297599138786308960454584469266448752664933484544886133514797505500015615131322026314219880748090805150383668645692865077994123945027810593931575208591805069476811126913253701690307537726961601554894577567170629890903397135947804514755515109735581726461609243760486258835179794763276792650552719345363551740774526920945134380140810183956959703692290104025436484979579894673348180047154026713411078227687350165684851406594039688261823509108610203778737230276709879677566194927749218154043830897287637831351157484449488940909934410918415809322365989630103406026113683837967139280206272847237272733383188341405122621076580671137835356223203416993109760303208197940193702137023328912473795994125949779713879151226810720010740586093815973259681313431583591188306032830329733539078600800077995693470544020132383817333016764360974032312561599450104122866793597265842789200155431857263010667085674107731743279584146223103715527989982851164559640668687641812023619727322611432374437782279291595932039445559182597854706211420860270019309924225719055201053962164869362614150561727169730722519463282274675578875940677143303438900485877738126462761287114215658979648572227962954061480651380826908587126411369327929002321854909673299246323659118570413661123189474246631345236216830643172194390032139184588591084343950531290974445518508759387729756639658044173610860862691108344348207157688992698901730450488198102571812698179388293000486842921252935354652950496227105944626983877089844632546820673498298907350895266249815224460806643540682732270119045448672779917004552952300723824185047228405823736825346248260345377159973930267278730668407030720409551286038145422213243186537030354818108055079032312119760572797937608389931854138989765115766402395076503436152724805841535517489778546538219830638672257392875413190982639238611459569561945281138960748494337484016936831331185868416013305514784851376673802777189014152564842659769926235312551167156823360581405347195379750698462195107572737295600252015704559205511694230202776305769664609998347470795163822499546097357337126683437603034825596288316645222102134571578544991349151555846038836637136716072181358971940925790027029983642584455571837972357340193991406067236942098242821873226545311269493462273282664199441400000566658135452090278657227673451448500312841579452075699121533111719427071567516556234877665151800006117596290850934032077344029293772168134679717746025683509152822156936978241877775355851495060830903671652363865723033748984400860604019022473328524097537364423698755145770833677592027879526854482436769730804635560656587409751388276743581653771726374860599102410033335661160593832092103581908024041378713803939336220010917916521760789604400278065483551990189671074575652361282944720779449972776760126072589290045455313776441652935978058055636551418043080666640524392406843112446237017652005318239245981999832880276999155378764661647466053808293612162745397929324854237702384306513778786235392707760399445964559039830004687568313903588097413612936914692265779785525689434320849851498481512727771857997078764247949935692304793354927512830024419948505343527458390587461608602960606838267096985044282891567129292724834784828598544567202815667227076144317634391367412588911954506747972391450464767124773426251193522817707599516624110921889010136392566923012306043918807241091999736337487717873182691241812392667140306921056666647268202951288872341395272518444235297878245391640079646519394773161591068634534040569282225666602801682527823884088253909572727667710374741227695108012341433027849723556867636087079120428621170472320146126810780115603528234193230261787561167882510179289582797961025057716135131999200639670751970940412724076187827252311368804932467218787713985791331099869382485979069189813669586248956814225901869035668470575869079574567272589532576989198004809273121636762146912075150450836690724935691225372424855748256954167388034598390124203166497453725679350272744994053742943145972900599585671306681455607884849345182691787855892578256129203620771082900693748119325413646392400128560221550908480211371683544247586419646682281910598387965810527695568932529447565365096003021988013899795345591597847554919825937217001793222558117453014591519537401030324869322802669045272903848167931373461670986831750358977359188554785894749951282729363587428793236188378904355590985948799603442789959549099529260326717571626606952947242233964713257852672819428787436342619119359112012859597400349765505056212246740834135596895805219738422580706823789000467926783852656129300844829696351251297174260608100463206869955017279014765352000604089018112646396360510490845248724115737079350670493582878219112613769822435719256471430043994377067255841491713950066981331833319714515060715879164193549300846496856341196181885528216091878086425318308768771008586219449610096502475746589845467024986482996788729843441860576157806303974661765354485135181602089777706856678416956390491341142093977354215704911971033260789631060333734964197493686097725874164988380391474374057567818912937089353105832333531939963547677476587882010972826250728517223742624629764881182264481954902277253530810194768407227869625306823478429891602697128304620785144078933259473033750014287999650901648020344273520563363002486294232535926451574589560079425336654308195219684327040625319177535078191102465433608310087511122000930905814114943132394950473527676578531743004549370207063717248509017857172487207720330357503957447699559087874266978940960318567262754890214259479348587560454032541463862041951174372305554437725006996223032909974808126390981262532050742200107907784051746549431881897394227810057316008324707500764126097021141432981002770490115457303277537045065302201456851133226363475604975617561857293987963236676992522466032252575005281332598992936167150740273561866457645400570385554566215996087345908990178633953570148145402439952122460316202388740239938979829243082678908027596098789263902738897523896431193202731568635343127406286072090389244400334064792445167631512151978765365972183994460484223074328224427359735771798353869623249932174234090079915834920033552693306727011473462380632235285185319456958352741969890919829859464207601457570778226421911017291626523345469276921011565136361376653952384832188087157859281541436625984269566288928718244308710513914573521092697993203612513326065206895475511954785032514058150682066483861645337189121324397239431424451465323220768201605958392074836284129210541602929313234278324772489402962721749993500393930312837772844485734782220106324001829564016277168028945038011953340304101530715882508113705756169110990806046405914379957559825610851094538104760943790050314433944707266446925594489688054837471859392471214690842263887791077706164724702748364248490505181067255189804901132661804602052569295786681906522721692833791115526341452170070491614352241850580198521346292284532592609203526263578498353647459326361767510180771811931328366876580980802351038043869533473358171478521156271593574054371631669483537953273282438604009361873906054262483643194229752580559337860407320475358305471461005799069206879675344178332392866749071903112395372331284776704106829667953961302206007700723037735377009942418900197573308909250928292514296129137196110797894466310898242252388110852552851483994451922844650699969502287501483814222957509757857697784653933649066639916733922062019425544952321621698141771509325916955476530778090859754409953374815396391825442739476977482259557396165761895750623474347999968230245366764606053925747295945848847175313737710551067209549010238034339456002579851034346182257921856864084223109280570979565048225331986502702689527457523429623567629609463793679976232292734124787993100650427207174140217196253787454791917950377741169504427851638069956118483191225315265834725129485598711865966060965720585127674729784278998923975058702177376173563876969278103536286227745678821066147674938640407524414113656900579447467761928836898689860372338200334375215382480402462655178673595669486024038632698330460297920472261680070923296331700889417300520575762687005658137947788781879303472833350176903019973189611360643819831585845231181129020874738936801105398325615263475949420339470877540149526836368149311932233884661849717085089222928878530125382679685799345830183156203407340269031319561797667168205567010043529767801098628201513165506983035497178844444542100422466359142796434900996336072105559924335579798554101560738336375522836345850310540672233430529763306672326755927128673050159804115382630395296500586369950085783956587704223604802828812968240037322440429427687289882588104465365528179922145670815954325834962213002766416475952577350648791139682790828048184203094383411515332038033269279022507214471209428456313962538104947603791443671396244164689920791044083942270374097017468488306651514578390124981951303430209703201198505739893248458214939534529940367802108901091195057191038525621155472766080209142313470446487772534746408501928920879914964720753345337262714054044322708851222575770152945297186025819631340742666007337772578109889105768147298875674241836231490280630038007815899847603078536018405147433873432689420850096779059726010237708292774150891740650896548792718389299914227282067863478477001074458274510749827165187658172888207884698337953318446606746021069737085698812956691370905952175284242603944991646466316365538664259807893496325879228354970806903056406945158188456616319531830510039519584193793409145617870179013663820755625751967397462648510087878557642088700161512759203479712051754738893308597198869409865339418182267219901680509572022530609743235795694322638320999885879576648384301274982498889259015158473786605815037223786566541967531882137688272653665918165604768446998079761729369110325239291109428540044439952659098888195665523125235919467536177631747959254368468935916909666573971346763916500912166609444179485151363780997404613572450435908258559692057499159330472650063916447343208765008887244064218234701514290451901659719787761953868491249365241706466446589548612265155084653306060591193563179587008074188017524351101310629859338291911285468594239105840941752177815199050501547652655134938062734986206176759767146173877828691300796466999093551988756701076774485874146317432446566845833660956223778117998593978617087864572307981975321543103487420247010519390636909140894565318029497959457965086171648067723024537378047285482745525657106861009997417645472294218099373263832234990444095998420633027185929436629453636724991989280240756702103953694737284669450327254417542825761091738644199548803088917987481701086414797333235732402838232294565577399832429008993013653044176698227543525066122890320347798190690822632094038541802023482068996807694220200720997750258906992190371988804294786227412962356572949884866957484655408431957439131804182926726272225259718802397226555669765119405621562997293548060013051207012799335299876198729567295886397361233268623498181395476045787858411625764217628891911230384145325252777042263235280664281918381374438687382663769582441836800284139609515933062724993815429085965017393818444194149729536284688922847268433113723185724980332634624130197990243976198448516312421527798837238387163075268818126608891780076254571439693052212843728830020115795746948740148338633630981173123441575931986738768187091999141774588013654644627166879031414297484165989366633263122388440999323283299256046666014710607183831325361586902788046251569700742578100818488364327156846167553257019924002390281564393207173616710528895097971793264184182215879825407583044798753622210694606155305099894070501149251622940877913691634399582164260893980655865911968665215342997531164166686143795139816720860509322569104283661478224151449148873568813647025451622881669109743699546429234839560528351698135833798358728163101591454105135487883602867283333730288212914276941803010244372308520991778379478964194996325193771127885997045939539041230555738079038033734473308227199932634902183188071302108002700579464636853691302569943782765298752986951266490796108763827406682919777208999730900385602118801589163597692382191864482801493329702892478069064255110617501114123877269205452566922796101896033844087993539926160498660497137176061235563950557925143892299447097494984777228560758739265800459980969942427852745666196196832464013786506838715915191488587552690763091700623631387343167484867101486922290224211852371914440344056181295982436122954202843710360152138888736864002880329533475982219224393547753935862553993160723828330108894362656426034650620710857704449460196081936473544418675191560066105651527997206827667073662457712733599464432910269152745891861200478887309913613725225175485758732149513734062543268182190693467812115299159491518076653875006704223969149815597019360015840209722629669575547253905136448645652930082250878767134767262662394090516903052976717008814955926001108380551712701136516824902762615020735884432060597219053051681061306316927042758696698178193935265993753706033104623061145510835169519768356615372107004963375795139694553987910748283124065468541086654017938389999575520961670977595195138438573901773397800980581378318962854181472994106642761852180804078842007628820232927060272660529674391297808380433920002835006891998281151707657348309753888121683782882696710206283756400408753402667393091796197223947561755212500346653670042793243607841731346608657093575977626282605267914373912681153280396676006421690012002479571834885988581586854287242299626900503511823176856134356095203043917650004766865436488874812411914786921736930522808192057777751315722490642993074758053326502687816984431188534988832655406532955032877773747993444385525436257118567367289616974903491157581853503916540672373151132097453859043211293747584461279029156267548728279701007631549800731721273016765571005377937037194952102667006999478178070538727232154433168681313532392408896287511706749443494732794173437197901741700123879825584908956368975790179063643282914559919192178345422678575407074899997419948331059922028384859786839433755096974112725270846676462476734305538608810345677287478737069465861586993873856518598416536618144683294411656913616004496602241997908727907307228849206765356517137793056286020106009045896607733221166897467742078276312472090214227661859214217208670961717881380117441759312782875741410363475166743275159644038487599804777184811097620911954333439225481685182333952308567019482394298985459646883362193393991814763653387351152241998017547007890785973324458402352156818567404474728980496867000225878238148322395090918478780012002876611246263957495348547401743521611780993512538230052620980565472070412669423275598059519828270066731431147177541598941027643328216762425797371036064273688532745912538468938550797753531282591247806205761362925631088815902558180148558708741247507591063708891511049175873489442580148301042235557060199503262932970904137732783117548890144635529639580200976421727261070791339504627688260676997163104895196789201852098561033728358886570012399247647643393621282112031916048980299903985205413925946826231841167379573559643912560227527809433821568384004824064339838952454971862672736716968347565387856708960777350878976856803181133314463847966797663460894323119842239939757527944658503425484276008521363137374608562645913211178047038885641368250891288094873899404670976295303363090853598932887308003922710300931947828470397037385257858401266612760372316661208479282187577205973496801839797974565031121034392431945348166158315193234860999347667172462297606792637480702261016202867543371541344181669758840007889249153786230816296835993337465933344756434455471079108383010925882168697295111757010365256832406872226953313065990121825085726911752877910270510772617268790191000952073348355379825743501786694926431891249921145642150765053616745104109716532341537276217872581688297103403939564753284210321697647295145902888821665972918641161900024284528288395170084814597918631869113253378538724953947925952429721560880048555901075309423518048212495094790408705051242532269746774438083063787395461473946184617140063371149961795629907006433665355076533613160767560306165245910629444371357397164232504396855691084814763432889946256071972119009105550962610200045125651901657689023304192594566199036466016164757110674654954678444519761396441492448360578925092149091962551095854717637501495917826094092328269056050626909056715761298728865965321921356321104455084088401736770024506378967229088964930489911873035047964694193054675077865469791441721266523614103870228667868773329637832673933456047548624380905373373757575022467884822848972595802869085678715787187674066093626620010511410238503522095410542133522968456051513580917605673830344814070485872450810211827323616216972567429436436275348352610636443325906306447264087834074804290180322678073897005337377332322353797217931007582666238855818832735774591134664422015047638273849967893726532792527345857630371430340397170424972975579080630878828584052446346745627552007881327393615810197463288092692352449035735984329076675426148131781412394376809566233447446226932608408898449937648602339005378587654703308144177715526371610059180796349834454543253191007478816435613601971768481394782798603585327432028744484048225608972339023825625742361638366760330808318304076920261486682787978810463434332251338526098430198163810021682019519469011793498023954339273192449547008092164491451745005235954424301709212499426482384148935937746358138868513135852164287095049364787230632968357444165254887592727898874462403105545689026832882342090072237706107518826344595793145463295490626841663003284152950340517392334008532701309436159771730178603612939526356551599764052067265733982791986467669943780175787686898475636883467263499724149211600643238315436241363385310258259480870579649987313796060326802290518994153015526144675661787630748652998248375352401816242934357112680174468093593624001333383233287113700544777457161290944751382939164027103072547625802897656182689444083631224092792740860561352156891643061262782024687835741825760646779272087869684201311947260545504222664131050202452837669046140133698645922055523567179086441166534072719441272628955219035672804921796733845102633094064790659341278763487618877641791088949931441352543041615152583384869028326964817643439279937648063071295426054098460600508583676503639989164332717014685368441887999091362147997351723262524613617596722089534927177212084616577940585370855591113491920750445236751770458688476924753604635757327026357863340036259419142753639366856414019380763539148118865023173265876261926364550470858775770187707731109164643038156758485837285623754259491096284820085432001054482242257297761171151578666945167469755142449596569002361710841675064901588527278506125138010297151127529626354539941760299179648480081122569422545948905384173023298546953883651103369402154836506865142353214515378481893823961767783087234609709071921229498791246755808257444661770593393135870532511957667164127164308315210138678797524198995876995344113452197718607394240711390900840148384694938079168319803734149415897339585398200289135045511014810979784028789641268942270298226058624355050363612196206412727799756714954713578240541914736796239299676354451084864644587437130807260568529414734498107665228625612505443632154751402156008869886240802365411731676823534821156787285139479057442534772992402560624438222041776393479170982618639151242426622400775264522989531986889491271076951548312480650596994378792235724831400053941373327095950157512283351680225073487692751919502635366715348913568366138594617031268681949483514859507687009245610369567246353458672043797546518328463428714224387209698296599807991184000343695247154789857752113401632288913657776537475141978302073474374618754031720725257351048755943495314656508035140052109818992110223855648486466401391097355141217435478023741336272946445602408732481837810813102548597804977599316245214017148243143024393654318732541852326392519984373482788284768413293438954124331128319946856600720726896751917831388749186175498023721088215324406883129374928708480667048236570921068978864408795400491152566530771721101988807616846551598444822260209961399333598000647373858358408058374085012926685936116945062335024406350247930557108906893749973437441812212815518884623580904401627371363991055113912513348093407837218828599292141246569577514408148816321684268037655471423536196089631507730817585835590064422065456135985109626039642918101771531075895706113140169307312559628224892164111775148930398613020837863379430046039609165343379088336995422694733032280222960623295677577919926439643110357557973697289187447035660874259231748041300821085618403322774608465625253185077791590941037636642207970375316427240750511512224083897684813189758752043312236263258173165361477720727901310490086607394640335333701865499780770056773565523327704437465075726937494300274975572190315420094935915566891495562617774575260220072466577078593281554460412120981136675457616380523498974969793505638406256535345392805167798507558565842262786372317689465572962971495474682368902753193538556646654640572368922465865041457705907300944251316180518121008819093698271595965454100202207970525576989728974564296797910096588170884985979421035661517483343690826358724161679999699500896601404576785633808186828741544406484354307397535594031964262280609744111145990827247789541862105064473427427274792738556401778893769930780330580834286717287813164355644650430000625514659005994487142228300612760529044788679267189037278305375228207994873782683739808744808945345034129776538738105917010040776229916466268781985669563624721527397897371718349648927985239916857132371699522451693342005840503072183232700299515639001802710918062509448132424216769890761921920751498698817064529550976165562064706453447190328725439781455502100006158969463334089210489984751724007461307863903296377374473468440102893506428487372350913358620435304163457498359800966228951927133171136515811829127212137907110652172199280490777725588856810364508042864300647750234814185151160545849497690215487947440347918176083692757642338580821804632924009243362359221596527454104284864518991614716896967672149327041813693896241553789767309881861989585013322141235138605377988245371359651876945385656414265736934184403409378438564306189849676165365828806894547782759041644272197625530920222104874091575608331496688027815381654663993105447446611609195397227455220877101842556074734095110838872951711829786394892907417152598974424166103798895307461671372028916976586463119102266019228047306250832598235837437735552218805323282402868066409305171789444465148493176801356481396742262880619402115490031297630170563058442421205487559971792572962721404533687970726898521135338445421620309181502077418336578654257230704227073231335297209359278310693417683125384606426232943604959124359098235617231781846409484219290720945551509972914080332142234272299676366758610405193282104871367644512595308979570494284326169217132268555746659152646679189394135608357769954987999775202477240036964416462008769964767791194524650764469134426884487586766994612171981207325065552505617290738921700941423571060010276428702955453755936578937298976464339907535240227231325012265593843226733225220598819569874767038578388888039017263339203000571654271330321910371682412144524848233170771509601800279416471664087896173808431520249585947463061568948314124839177126608927642520886723608139975689664841165586395361047434303610220464196755140238350632448416486539125792157032985529070588354538494244554165644287619017246458990721731047171762775314319728675123525132805048073257210434453727392481467657253909424856936086826862765489130215965101658074128535383512156347840315540723602772800718423614770171157159229894132849809434427236663198154019533003168856435290423299450442351010727423715926452667738059760939967393856062111933426744720671317795005410635668634267160371505507617863697137382870610548840529573393956100484907334398031269247162069050311597833119340927587064939198799910022897447175835070698834246780608545991199257279091212228147979645700933820516787244263872564270539494140214238099488954341728144365590087518255018677671516834826300678290028150092580196592198264915037584267109203143212450893356280466381184557891119491005115322597723952405863968035281850701351029380453258277171990945590872722170851954284666027090335674394407771174719040408455250873744121214030296037280366211218149597922930382095253211607952607546316572147814572569363059244472687883810628928583158139395993922848581176238549680125915699508617631751975083185417431873506734267009193368339362547788657155491688419829451043987042319110814060171872873267591943480854749523869071945846469820278149343071500020814136469876565715568607453410849549676892161963507917918984939351182609594375558906797751948486637745434953412692237204848034286175378527017339569189408715450598762435041967187785158399879898940457417086046220477865303018087420800964416704130356816385844983504023361856965543781855879752124353861763491350478291274268057610684383818012603015929844878103929382743435223685786963491595672884428316865484947827567228489039895402455739550343611313448057518492388036168932092500081376515194797977689671720216248871563669488392115670687745943803758625494928833186921634812888858626260393353392277597564013694501269791031359908381302625547716874748079536741829859638600394927370044450612063003885310905579232527592466034227124517560122551127677577772739038898659231956833028624447928856677876370079580387353864739718464385186558115806543725958496974512285671634859571720049786081081069241786347505523644354046480737291119559678571058204207819344663765456623095154018645558993402809403275696831203288897847845556479389390608821032516005472088126032064455396401549409132340179532872280345171709840472652466151359718885752566532558402319900743420423398931153576594327726206013228675105645788466005945717799942828271621416342121266660262904432037609671563781147960739156537690064419299499091614097284257908084497406224722130851156915872143537339045090254228690156948103242480702223980076449240778755587250465923235346468122706013227724145510259134689030379694275001210708788466843909393003470386675042518251179405112824935845071559830906000199427184522106969644948171314603941892955731733997727336540277636669382569741842897629663359164506602620881311348277234019929845947035424387199049321365902197133296580950391533892775226202763205958585960607106378577191232221684081619014637906733246312856203691175295040103623833166668329058701496305052228938031562854102896577187747556958486903962802794989872553007116182282540287359093838057325678570385637328840401117303308357665920935676600741090184589313113610397798983162954071654466730165967653389016166946172131234376855218224173465144565460423639035196391429527547889354870587196230637436421748351990790411153769904419278759170343559011983317734165880286218286863581838076582417258290716640232728623483874851049037011854584578151053969693158708405492727248383643362964299002689327617623579551238996038417223193587438106060245587566606151710055119263038907515068959793124825645382142047486271090786565164498474617394172533144268971815630336303243451128675707280142897103832083867237501499963783374614894999779071766484107119835119343434331190100360057873189061790945478260521645528023062806672005870217226975198115110242940868820742841582279111856208374144406151682899969400002917856661790652790553114432986726822582564741662356556485941005639848131914363453585040734297347178134257794370132497779209416904168915336215096483857547527623547537888452116003327172739873960185685407688461595910267707170670641295812783350164599689577657107143183779502155592646401043603463391901724096825790817651384933868590744372816586714029081965859093621294448953185994281271247394068474140436854918142663350078312323184581218127203567724161610289159802049492471781045825135304026587629098321468682832154617930064606729477271713250062893688900013114609014989142152928801063140539834626776718309440434984657751114541837321969885988218969287306728412975989476596770735301288010728536026434491674843188011197398723305612264975842093385178580070834804934521953912548500289579090006146488670636405636838159067619489201880578632466441876738828062276597996824645340633763179334598382483000906056101326306283143249079448782883286205137935938705350642910727092449385132795294185048476741629317136895750540989853168385053139588795761659427446783899742516402455459512690326493209679345876099856452572486015850674438524337626994837691801456777481887550705408818117567340237470606869283876116729554103155122809115896241609557478802853821593689768031936593954359209547675628733908098274000657864085371831603607773463034963233964471596031646490785245962878805413903756622049609173650440222652777764611428327800634842210694562901150029895504769244956074747961853319031687360765615757278420711828411010515508197085834962561029946974954159758850333540979229593029088277421687055303231087547097252396100307851283346226552904242725798221788543884318037107167690588298314335732618644434671559980730877266386887865907542789005938400684585112701066167651731720086733763223237527589203540490970410624278206764338744267176635919271638050054276303765273132033108222602122175957995823276426654016840543919369241264235169972188438776469934651576023079499157503279504986773471109639314962388256273131380578008159710232559679097089155001592702367600391803457145918012639081699989515017586978406430505844801374579016139850559810188607447920153947824882155658584318230440053092926693732599209844065349494577405594188417256855455254349610743778938439583213940719729704183128229741511851685526609360684631611915117762632214446490919232679277900934078061032405444441639243839085145462005031337124565394274529171232708141285464249853646918433949479426932359707086299640747951975878421149867861357944430369877967701975037175665404932106099404890596314003977036897829359541560206426429473382361498936360921153223627198716466649647254500264205265116090124918403951798946444114311348253999063212074834647307874721443110014547506013027117314828024181926433434391104256658569480207329144218523805590057680936653144114615937847276660517698447774186691764079902963727689396855079352776311196721571395784798078800950868690135588239941014891262013613605730780805236164070663473712525918620922316859989488451992052849756688181667291523112338609068196207289168125456297143958167986203572268573553878596684615244413291366766838984263762003882438221173492559189579182386462754144474545870283882408619450782226460104662565577583720509013046941288443967906673657667991018904618176527417919333000992016457357393817977575106818022806812409474767844142198057712106664417742064527356584201288131357187235836515244372396590581444652424872963752125810063036658439097121210166375664933336758274431707411523106513446395325775324754044445224590793646437906931339110602876143933855650203199499809058060517252098190690415305131555887129998165302688582513103378046156232884854225100969845010061723917844107021973003446709922327244213986788779887017040135782304430099195656552485502042485398403028741598120261984282746659539526893984759896858995533612655697319860638913253907297712462459418067179771834130348359214890433726272901581839030395856693024995401162367955680590457481484626724266868790874048586040711849416280923484735211932889903867202061694152800651099877719818610644428338431474313562642089509007041971245099584933250329177963528946688052683904616237257374224552518858097994784422471190354688684997731867259014230136749968758497227048967949569972146884588397617910434791289389858708054685023156578652823259428968328994865080345795595509810664593478088674223912471902906191792002181133516054641391279938631126539229473525329138519100272148289561522951507372840400288130913073692057126426104137491980013752524283122902658422482158483292015736519380220975808221397577311140478181935314272789583260010231650424798586035610770764150011190199116053544291068405989077493081217034632151499656167123052540589948450729826381880726792274383603585914814288341266236488143855271249747731698480963708220136578743730258986249461476187753717723656116708536093174842923090535120404087319944460581684497536045584309570113215995876535191623370695085564745662007394417415601877874857315525209541328200355969393306696577711392796340042094589801676609195715955292949371356346338576721155057495782026077587094892560552461707457161660871998695606331381678092197547273585458337564246855017534147450217173637628242483439308516138656107285980503498478938941020147356829673828720622165988823829827130353557938226849225388839959770793668912635833788152922993430006348203396680305140693156391818590132572553052901048619124255739262707560586113598303936371074395914346051665893435302503736718327961858605996970362819925508068393966435581933478928573671014229768491947047192388754449239380459395540748446798065652583047222715529685053132872936238361573469974216300741598857314154092647091849263341419300148527702322931502556249340751787261527229203278713212917445679073232760277867028024564221065441897207335136575336970977852799320209746081261453348853424318656130916821683868478795348686084392992993725771967289179430906552735235457723302057684271997907184331328154753757747076888444921842131688476644052500021569915554741882181656138316164254881671693248021107352775038453193711625840263724777685482532972771983768845847836831934741080232717220488487581357030164882959480753747347177326677538883485779867650083567306793140145642883890145655964181654902309908366881486936356796386118376706830744755455623369821952665522325073546518695358853002724770282143409398494882956682673737654003403720486097128758079047769170076699010887049654591701099401851872041899742131854512172322346582919367222944155755435574621790148643237702773693017595261600738023760755031714387168788097611574146278449372451086119390678918271318960907945560041120539683847880968001329773745702688263617201672475348255239027068887758907746162435109848916510193178208177446802254270746208455994190573753277658769807334285846642424431472358130078701968437356012658757639138826737682641965549456982812319062483493791083377084340009433891646399265277857905529989652067062928824454299331431235899843852003507259689405019591125262960681755058649863564130150478832067024748029225661790866950830706357989095059408931014215372873390324981967178412700479181775209165332693877063113788050113433308645640564589751513810793801717553415780640117940393353358913695880428902452926615747108203903704599340187039646523826694431779176813979114886443851731088196295396420249282279764243042101497922572452178349646971382345735822545455915791698049909073967531450551203267683024601441285425947906987979071005025654525016522642245101871987345704082156214426017634244434210278932038017803840565107678176972765558387226629379495808784753581651610587635912649929638494446320985422065544913561275009198250105130195667856714682494442298396524000322438084911591864525713053245716372601474568704181108319636179134489297109905717377934742592321672953990615760165636491512082581492550185638868497645193867929725894850808497095460919583093169884127602375657668154013592330532491529279613696988630575086564212301573222307128038388392090991880239546996532531481338718863445463496624722554342554601395368440557260281131387873608337524700210560486479259152742295113410136032473930070753086104840865283319001415034884407014797332603039160611907188110705748095311032169019339229581783496383798180721803254303318037071331064530425243363025369641166669960479958127112358279394604305947656774928040458854851048636125307397387666808428582194916020421441714356333953437675534267323272386538509669010312657684115510381452418783602368498885047023479662489702021624034891636337893672699700601324167078590156339950263317353492956588592983159533125840397319467568028691051239785333020240343010315342815001576792827520870435764712033278630409892341788255714847612828521361571415907032531052686051919806079487703579357944173434281743762093592664802681047606392652607877233156099490362305333855482607216528094081262273682357936241504826885902324936486850747973861938412554733293294997180379823586226836879977663188873520973077196137308657149382753629988778506869791971792701352390434299371306068122615740040181931960667927995029920776170390830596228768571112039065648917110299370389734494151824900927312279161179742637092301380585580408238866353047085487797101138823493330793357228525248263749220807285972517287602973512218808686900325726499008604897558305934255620997837038282543455700932179725539644232524087789693598541840722435980616067853181081057045706294017518271905570456802212961864215732313702410968988113151878161864615473803206973595660593780270062796558581540671436009074820429270066815094542599305201676392522912763530916920178232727676235318554012616477504053324341854699897415813519605850593341219683055157036813363580195440864730597234555691357313547935881606896410289342172202124055304694914396496358413089326281085441440202979445628339505540032000038261286033865748897971237160957071151191963674866071511217966087069574412919342247427484119027927032783021343652097100620794982508441858685808144406986250118936474770840030404328226922973907153059811617004503350278065398643853700420070437986453430255249730435875706454285303067954862909924373408425042999381246529879329408313751347987060759006915485133528911529735860963679305012405173081311417400170906691518518917507253428276301769610665550118302622145396883646225468236406760080347569349337360559634901672099803316844663448444682694669640967082688366027755807280630243330484630529253012425664044970318891701864194630664692707336329792230778335038265430273184988303734598830908893152411691265532720335673569691841991906305378254656528725065015350215710614585705186372531322847259441084523358848114097598906594537441829230569327587721208313538458099289633001600905354719184288292907364078865476234764791593083445762168559605254572582449707832099192640628804413680906081062919772071180304740199066868035722377727902013014509888649759137196617257642157679209376719797508713492991790122361755651441568193365596065714792706415551903889587070812499102327504997841783696454861278834399736209961778212959820021172322572062385529804692270591557713546160664070005707608512531199445034012447665239290646654876683689452747986899663790663411983245144828111276417588476991113282701482311818589987965040273437774114963855056432754226378513588040605986546258169264029692593375022955079478842813954534451030235959422808668614373375777884795846110566777932933705016624899125046229095975183535125723699319535292443211686109529596867666488820292714069010487545413209207254446543485084626171502205210464807689766551601353074607050468290795312583704949704403415954215647187200935307509756713312509528704038871205864716154691110434224952520999034806112850320510905033858669957267118960229904164844023628540092785518274780334890212476887978977733420434702431518756753342361011310522099753404154732927811294170098336550531954531696440349817864335074428747927950936053148324807434451491910072921574786937861623647311572347163805529248993701710808472466492921099807797293992728915067740727168673004697426861014312294121243508491686706832053443962634550166764416359872001646104111306291612881324261629386639996666833011302820766833075738309599062120662417977127337247195283440190649707132621238387785106362543156702636275998643743312971711175480313834377496470134067158878125378338703598740998336534457462479416277126190999205983549004513367999810698362556335593145939226855213854895313847845340743045302852560801322409187705567889614838234866541605113303282943968148059190466204276913383400786967311630972048229409069017421628414444271650329471408687371072237297769254519972675240202323762447744473703541744028867610128051557928839765211630126155668837229432992506812998665441191203212353556717292979315092872981463277044338791246251377363927955028633938293937864479659046250781746943871127121337331216574977380400774665929720645468328986438343707494242744785078620127870459703286057725326033800167518551645344489208426171260533686100282703008239885595164617466393931748926860533004680587047015564095640077421486945220342656049822863578397683525123432788287278226021097275799721277058804039915837230546107069135591528744789407172945591810257229913587460576403599552131433028809897853008030417142949767761160090674172131343441531961470389373818551818134548155371809815211815182794491557572028920413939164649522345858616217695987157603675225707384056389746949482524821957905675071452395003162621951158826389114886066966649872623556875278527845616159357486796031386698866453627819219025689127733436233345621062445122515634663890475113354477813542117294176445775601016341110512356384237815075012231446830123563762593418784259677405136746362275008141163769192609880649952261542146879204862378262143110505105927101122537499794872815000176255605852837704041247337452961633384999151298419051095760613257436395723929010282104670472142918095295217664596012312169758126064352201193765973668728960855711352999072885946488809040386476721697583295623416729229227883477160906383883625995350435812107270365346963174639537384976970815268856396303145840615753156671370339937908852960806691841963804009563542072820384227921595200408884764929531333702029444208946301481872627219056577493710035674219892569287791769591444404555727945634651004323453550575788629537494447050196429377757382447846294318578699241179573760669954844215288249229852736358009737179923750329535154156925781845845296630259801980144419600641624119128749040465987243396724665617888874181609585624129727192100400418092205974708151473230928995132802229799209794022775401725778118772790210515441927419106483512776002223513286964367727621879987973867132459428725532776793601494880510920874865603766692108559622010690196967180962187194833993305101344059608544623078639429624311656091985570691005218431496757621905707149429473433229871607857268946004919616704280164725300202948250898251522468177752682056485025577238817770514277697904593978943657650431771601711661621652730239569381906349745550140833521486785635186243232255602135330427297078302692469171877418017053373395039652417022425916537141895376071640647421704102992008997969567942275608693068145100214380190487757799945154450953993800220774357530545780587709914550558689142807102544412410314628334435486969096508302434528201090421963878742852401292693155263275875303557732762687127201371941076478255100038257453493450296131711922638462158697287202406306974106498907412436719149159398682189972058146847631423904098698604063950655229115044932607039589369861539172208740119406810664301381788658604290054253070726793714597674811617481567569086540841281754947589639331132181763789679804543545081799678338671378450665647737888344228842445657546060969233680203230479290730491455781087877774831151862742345774446538712008515640304655958270731098113891212391471978384386088171751996431883282478834835990237329709910128573074433130879764164395620191976797957941108178292513713497954914988103400044003932740876332830863218255847885112867346054309992987027151301443972242680424520323233167813685141461439097350563083343968719110232051027192973157800084307775600683096602017630107076217791777582225026651029976293900826149291446782676855750641402427735757736511137151100611476506475933075323095054043415784775615418824971565631215111560990951727516085931344164556418653257940468818219214073914833491636685371953152799269033406380236002790725413031295972770542935208321022318384315945962519845780465508763594844867193493918180147169910994969941795900056062992017828942666693147046070459274438189420277921113029152837393643316325869697305716661056378973113002136838965442316071271198759548326192143349054419321098897068061145761682226413564338577887892820373681197648589792116079275702035040048625411270777953009355568268898939347268212357935012800911851767325966306331808501113871611384011825526957235988445338558755885384837731688717678895862959158911140663070666868204722947410226680226994548096098703441443308908979832517303369438750776970806562320027448986179766462756886022215193608260654553948616227536493168300295200935425005252171484445671281742378556809769339476729805905507422368428164946455929816009790944608785632486493606117096496103573496862597364865869910891150174134038121049595079199526649286792878277122742002672062950266981686693293161072874666665163582285608237820329780155418215021464721027939418759781637040823195303100984347419855621663694385520153318295048176194633201207975203167681993002945540688590706246433762430257960784748489686144058981824944882858972579807464527641811841222289877629302932997338788045147803181406811950048526999004772613782053711955832502991378182513808812995638979067065130682565752181086404564345613628977678393245204231444511804971946178267920658563971866445182829947797669954996231755050226054236674340887740521135892242742483051863232588848338115431011183798178795594431595376661164600516706686621026538354419793001116226053950691146040498997950120068389396103604869421495967309349862807730010301891395113913202744018742839061265464954588499669176021202921555981949873791131463767951256502273438661773643064262943583047273649328594231086445953490756595810117984484391727125812620557175726638950137496982558260689437066771108751793356220232668955391612416250494350802838835738091623948659473202176224502180103523896454285602807637888973379992942170467072916488673157061062956846232658820485064661039773243318759454088568696525333215671814997892404055989319526173449630791648419630294047782539738788592114979557659565288044607481956240403209718835947503024435020065966653447027576915073674302793431199649441923368886267072084593064330555632910856104880360288407336863984475618554389149624360940141124000582864746753940900232319458589888985385032747435579995662838857224991569786324757792473664893630717697326835188345334216811578490153499445956003051851522736390362634489593639740932668230998150486392856399870800917762691196370120285725055337171835827147488010663085606844480571198212042106263188752457718241206639728151109376551438599570017903208932536615976120720972985714146228163667297046385769590876468661906069911584002788688007829792938166620539646199684435204812662819760141099991963799511052689901690259695164695568189874447353963225607580414194285012046259471126856799713330058142954095965386040863018958374090136184159710487216801298953975530710341151757988477907752529906537538062337513086115001618088479844528637484038427468126335960419798066663526750559932426324096804043852734593284456681196809242832448844159067381656476933592243692729168942310367150551595794161419255210580151056629800513884372452804483590066687517829147713437120664506968848740721816879282299220087848555106474473462057460361024140458411876628916886840081711222516301937387307373580602386775958319608492768354527138326900542622284385730962290582835630309247675369589567441717632258071709141645007241437020828479331791590826975889044453736504933117716485097321806993194388388554964025023872449320150826048442762915866726494009155275307212883939885752091703710801110825971663405191222856769413257997317854739689696932115369953957205620176772445649946162756593870831166637051213682015737738671429239902839838971959240549494814017400811682168534891846700813513085638370714120343270346066691622107341680223401596504156814138893495601482705302177995701043435641709538571558365282324930147209084137697750429809019568382829824851440478573844805956358394004990794989816551062026041244795517399209931368633087127248159098037639914498611926690391404426145866852999350028964342345486088723261615129180805566785996030524397214702849971084262109362865384597044468345339525893453033687149337508751770865376168685193778147087691058577963232296580309126631036275516018847940415604140927734976318931309486350961235557700218651552630417922174851344750239081417926993002401785177511969763583590707361957287234742807144419401878495130843282880799453702803180159233474319717837428340642740164835589054694317048383894776334637409634803849111475259378059731220923037225313050166056904363829146534445587848727548721270127267450708134711388519636708200157801370126316951042862847887855766388265131644204190669679972448378202546078965549847288522922384944554981225805621924309731597911616917875404163982866502322056679712212192116022691157422467713229762982207847929358718307865342941147247372236874654607288778039234756368796975188046038807078811755926139575085632922450869734649193796023887278208952820693669611261566894556846706700076690278446676552791071108855893013336713096078407246977902134234445048427723634547659968091972230178514095716680966666550661133891500041890533885475109419881834157913674698034736208091473279984550172105805853752584090705908556238499084664487129786511426031724054908534581421866706163144944480177496243614471469333256840433144139647748632228584696790602627467047822819030912954217072719418525675422502703599057816387532209007980210934163478671279387068561267196459852681371235260116560878689945258418320690060272944247847550589455965643495929483687777635030878089956759289327184695894561999629717536956972644107679204313031906556259317154717042222129895906741103556100440018805509596956483938903727217897867064114296706551146133545959007824974494667642169207131543693734726526520263927969393328634536735970500485292263778225058050546991197194892042240816390706385934075943060617709055557836050985259967310236386580298512509833462336858655602844855509575909419744907825913231830634670755626498843915443576438862407759202070913905654681914920155428627094721174095870143301477271722326549866265045357631272375302022801956182115682372589435699657191337407865710487907841518548662882877828675780410063876583364986921063535903825187937007115896400335372928015074149845310064256794421947809419891030679948114613101383021737579959898221782619840428053537659651389711945001669484218097744164367188351059271331059908145662498164090113190455846715123693686721841770498770729495371916483165960789856401193895859763751463670639037334547360562895608504090824398405653478366285960065549988936675807840501377194228618614578298367503779124111305090047380015243867206449010218246401276573659437892974015418415470119623856469909364181836568131365501989817710498884291312620360676428212306496344331101561833821617982987519450470979750912281693329875593013257224247686403631390002422272376343751944844865888715031427498314591640098807546729799569630078584658419778175922226582123547862786442002719918842958770078552144003156307479714207333059527335347950745155522119709405058864326901398905756940373075284447920063383662649389391723334985750636394069120749906099766292333060291613428565898221602975338591777646193261833345616807127110471903111916710914995342615906635008271700902153005038437336786753731821980039306241410355899347679333493126519535669069392020898144190671625068995843307568406768418120807007512357146080336326147392571707262483079010426400902704572464112202364176744716253767632990864119792887911193923553478500329921149566561137617140663745350196678076301770511206860751925222215577167924869636872613531867173543338682585049472396762598214897794348945756303238591736685082904276360634741509159544701850632508306601229303232184743202008469060169786125032410519953394987630194570547441527135540865623017375369388206057896621305748928472675716003162209942514844812276251928017931119909127618917667933994466095258865474849724630263570538225942706819668607737848649368580160537415761656830025021773010279069086826811440740548818582979190909533410794714533569344892498002373239593162315401043719311530204019933983266514597323523807883088538265628191738718590942523354901310546666061731362880377789839489583662239030892139929999768332557699820692543755116908049738547404902957369331376172617072662772232521319252837395352320073293170014330594779723740918948630732180555857401804128169651541028263094595075703503674996032599861695223262081982560133347074490327170481049426899939663051499236160232568248130732547521917132641541758418768134029854855616409826729721507499058975420344498751788531702390717784333170033136847611295938238649844320169193368981704699801838849134067831141240863198184045372146284096762469626843327109684760345228905578397529450584329823698783261565758475478572561985564799715236427691861243061174907313946292062798555373571981516598758002880126980323508346453297409080641230564103575608410159949842149731769703135101213528096304283284976609845766713850157774146944326051760168285459543112826689141655704530103992045335026642370669136336149441556925792591363735892900846916012436976638505181273871668936392872054060629219453371008565266917681950505673823853877231067540601959874986294955157753701855520098621078169292799290334323120560728838542997684965685674212962027787778382205690551103397277469120109980010393450330914003059374345763106189259725519294688819980373020132776002827549232295975889623085657949292345264823203118088220040221539131176808745842558824434939850222282807114791575661207538784183731069205448041227779884889826046369703314154164034404446155298852497180140288828564960434800666358852714390779143497029089466710449708983836212524826980917027963173257851679041438486498335749087304068284845137148552665561074151205514008516653360902092094998576191772788476523133016635319117498292939613313750894943547648594983527680922009331425086218207162899679320335426843735487335150421574306007397071746258520655797858787860921506746605395058238988105351949537001309493407448489583898650869063680948966022484805899731971685939370738653960775791571322160344667031681808982837778680521377094683677934580019331291134982210564008628300447740755338676686820722344580638677194643764738556180958391179900297921724291219055914597010916233760062285290460229321787655840075858165330268524867712116893366765226995820633980091715788906853479711617126658713572316977341542249684458742038289645774802068341263415298543247721026302538595414730406517104296403234831753092512418090615703569560516902383342150645823790194116593352881450814467271442349134155159777508706427617455734499512242163057445886219665714882771435381595911629984062360957800313943761496509764848917753822483292975099558376879381728410413039657775307550902556165152407008103823896657024815125244477780625040716856025344876624396306212412583002372068799357251281903249392491231653411511018211461404902693831325317103054892699668436891781369011466753003723710341287610515286161473396340792383918671391803039391340012116135375164589378351009827167569942706867433093827563822919922488731781193059502942548891335902490295461187590170684436627431051589595876218275140264846087022015667793436185457301101894399369575996060674053193539290177410315091377006944255215223312440842818884298815976558853757075448608989859157696468308454056464130676104914770332394561569801777437251560929547752005457958896895154397420681322963072862146203420497202482307975365332613497865096616046965267884555912472533806337040276359564604223474837264211220776805645126903539534651820129431830939788101548234557932857905242247558826523968840586713686982379336249914296788079337809136413690159487267885626774397726914626104527057451918865757529128391250660411583558861356640526258607593628310473520858651483443843103122052003841575782057730026217269886743352171535331590267435437036772116787247853871559886508360343134914133631136789711668291922222091537874367935439783426869550384507572712647497760776813948128456430512312222486227777675862765581245288024810243183263812503071384115079357475795623165801256263727008149299568692599017796007616977859972945316844998287494099810717693723040516597393405573469450010581723469750373185940373912305993086181226794273781423382871398824353683539480438107885652316892109847413433224096646480668175749865415095613628775564132993777954161163750567756558332013165277572403927790528626046943800694442519417716808311251249481482018300901663350980950343586167374295812240532800743714015561092455132074219228605301394444217747781217895635619199277484804889308064466614850561676939906130315385481979052446700385192061881211366881268616152079513872745428739601184306527033497768803165056901473301947749256409360360866749659558162891133237803705837146555062427173337415590912216224324084464539752840722764422616997696209588328414794011022037307517440891189023893368679968164692812021464192988897529205895037786217495439503704096481799716465615018061538618709795230491607589678935046936998830480331360685921724972020160459969782293483318195376514805534821048393743523509202189373173235620147977387871046343646036147578798184436950371377291352848612822838759270370352247064834776221074542580321387310873944761982720411181054229182537605819864861051278976919267731816475400614741041486462793406791805390831356691746713152104588405061988866279185163526020934859903214595583831004883025273695263691529482746168480259158248228987600028950531990950619856165269948937345221481893499516306747269024617815871937168513781886854146665587654322324580106763631785797438853098538777764731250861443143793242967769859541418720548560005371532768965411059225497512384133625389490718378909592197687868104568401481898200159638275049579653390728680656013365829392520797766755006785217098868797373703095744423862422857633804101245488389285048773180560740434877917223763787061455212194875942026561198152276219828315285120296194178444301708216029525917091626135375323814532403097884332309372835665941207331546768479537145090723706284496308525314886787067321113173098768409698355119895897467644575918466120529650691145626561656578925269249592464117327825043045644043750996880958680073754609326004093337680674223045632026842922568232934877241265785086899866198661090360805435866928065862282334633347954514597721367282801289484692206609869988789238582213177550114464644727420391768846181596954735653069587984483677439314786085750947011717695685800588385436753506948328283808094465138380882915366348476380591790413371221250218287592397401494127971709475654069229944758057080293921313839603490194089718467910795061844492209522437713402658102269283364462824774664008104361365972560181244634460060718956227174448797832056272528983562410654550666884102233772209361151673774539509479869783927614529264625926182858179207612638287851171281566926387743200058360019638607787729264752333165013618669694076304258808416902560528828630267409888825422556366768247620216161920146003573566091635206732418999108970137904593910874872534312070346815488828120187495284316620677671682285230210439502590254571786128545985113545566860279997608290706457504928992570268593650792881343868698548741477367130723555472024704486699620990397105082724516917995146021217815756272651845906631843494620842647829595131463402871106746083725101940807315014375527421437695499141941606979095360160126463891484882646251056455684368637187087597439346786432482108101327833940104376774411604080009020784562469756161216601534417706144972653650065838182224938262807592871254756923746604979636853785950387427810927442426070500219096667214159798098895473081675354302392903282009239109540324734344026626726314893423318843108002038067043746112292235460890135794625490239988757604217243621704715475350272399659652512494621196643974401404496435968402553485774044687996540182479917207963913205662373169219457306861957194690323215644411260764303836551956390180172246065946061453850230452777820125479751490684408939022225006961535476047731928037648305554416646937593686563894852482509187616217313057712209219850910586754044898257001779611908133087653127263308681412153165940681146521345053875086131206646991766548690399717089404645991503590305028687494073368711087751423409847487093598547693662104204213290779177266377370308239665224865969514749759689179417441291498009370862292611021671950262243365770050168813223198867809321140723839560213203291311657329990118906872724594147520761483038578367990110551800569736281942584995102470941503158384042248589067468277976675149855112599813082383695526614037725686054203674324310716496556412296520762964630051910313681982693700054666046477288185127533561917986659242099715921282245521033069706895847537984862167320209849065901615084395850791848932036257547267462146226897733444039613602670907442715127766813777868715069224501051196692794281360399607180286274446564874411363550943577846562489964291186468888576900716373773096447832950948989532372423298719165710716599912254723844384720547426862066468099557531104849172220427328356704035227926992033712357913194715708285722348961845919343325764043834397156972785985533360936831898235448528783559515020099336040626874961950104127406355149605746859247023873186411483099773962051851506174498672991954835443834578314305771756765049672798206035001582210336453569243238144084482347419710049861023261045145772432794757743982910029436361742860311707577539754188989444507694437077495369345504931448847520303587102265516679710082969953949465041912015572996117574759072829383693744970112665315102652194473530107343484779278759091178570862934277216935745449948763477819267658774689474250690121604565999331463484537597820863521836481720087307419773787125077810642874355485430036014592838067243608846626379913813745007483988664074824033586421383629351983702515843541717237602005454891799501023760873384305358536545170861550941697147223768087029711087428978180796684925476707616882942675073708935980238081422075226858989439415418419373274513840111582659552171434724880965620066488628977816745810717691587712950461605619920720851266013213386364817419787834074397933875223471646054652795770430803504819231087217580233158335781202936505447502488930162142702221045110737731143951229669342835976068093996220509250593347749154701707378161976733799430311066190306282917486845728189353234292385037951121403509778957714040819544839639050368449578487933611273551593370912115665723537627389065215012281603059526400158128210947401316678480531195678816851585610982872195505302258915756601330840223808442700941337404954066119520693630271063092047924099292709153238915070617711125605756406506269215738735128882824156398116156454146046314211782619535493974842375833739753386729099730059609037882942379046353968059958220689132677054767126494349827264289090470990915820069053220296704224897850596438741743159262732661811958112311584637894151122975525237116854244553944683556287099446501705979689201370175768275150957600726969861463400640608117381866781597856193194913677289874381214841994947417196973323052728383273608261902773858528332194065541214681091690375776098792205601669160803289299904714805963848235373912235365703730384807798082716427448687197643767980071438437110006884976804632067189004721151800266354636232194661425674817349690665388265011230178742252960325866104219038298274639884251959902815310157710982455037154957700455744380672378924322324434215073669462412578674319008959590841979128766553369028461384256762197316886007902553983379782447387738940270842976307565075290457466552963638527329786557341823425435550867657245798356952766589896555951330248300267998553810333433392333567945386571837246610561138457867189508127056841549036981387922871475235894346752463907480107044098134673385663618296107107442140372473572411760223323175138632691699814925114976864202861171343696031503408157757878745009287358882349433137758819391226510549922568179827538062907861685197965457598411176602150023391914166652383057172814997516024209798512344039256557378281905305171414998764466499598832118134406983776353440113847511305426533748886590426645408252347261531640233280547644186006984644472653729077410672032564478447263628416797548819082896033230210815084431062858525598245010766505725787142536333575214709795002033151835088900620286057755894110356535601978974586432964382002388059993361908040118583826803506224403374436122912941055785181706609141366045336372345534005618970334524328802342940210477887867933741003347720373644220186418190994087973768098973866345568170444581204956786946261590119728927307334770248870145900527659721835141061083474201270196354862415557354482113783497161412739379784659019408460238182173887503441492018047533509002785179644392201258697546576472015676445536682431511538417162911315026832109703075663051138000273944490500326857600977472647245176747763975419108596026500976014312624561859299679715320346974454228829410488636480242201115975731400105410385163121430255758309994022557123040007027480022346170105058531309433446044036901959716017968009359072867970475195971102078387375799868405788339825002882112091194113481449053281041960168430428743316605214402318084508057843465087210676228332061181090528632056540807877165064689523814306903049753196276474112197642442368896138586181311294225428159762491312556826612982159700956659857874850035844049793949492648420901957473090102910230302764813272990223152013814246439970260762461645242627067270948608218599277093592902645701781171143462633209976477800806558929406590367020112051875123622338202180343434691786827415585491657000245134164075542743147157647940609971606978974801050928287727574140734241006093213319925457675443803867725143252088459053444904610166081807488081962047787562153355207753904056197592749899613309754327139049479937435191007600286598351366928112305225247757816323507950371642007263527554506789664092194067305013657761315913219265014390367423292477369181637112862600840803122122067640903114247105513823537518079751227070290817691509621207501506381252293588033428747824680425590435216799057500184080650102182753355348658886827174267009916443689215418642836699681254383662554803301664988757200767103181579266095051241958461981460911205442555411408322039474930412208267519546076048541856988396178471288537966307487773162905724471820307796768743992957183358188880304508872042408653441400921486321512758082350310261392971498011084424530905223561359014730918770209501854379561010731129295351685047347311930082075535398381498904933541678558717013134159103875373916127665323728099342878745104140410981991867012419184052950926434644634406329006836380987000066313402413271550906642852844255431173298325467696469699039638014499522252038109615240120483988580823074488829437029933415250032289242817308213563931991205930487392651732527950436883831606448840910676555101605923352388645875760641258695047364565057257187152007995040158354811008232191368045112544006716457668485942285566483776719253084952360862601808550238601405637922570660919735146898386177320184423411970580546921919762736494217124984164638812716973527529542713111257815304720863041837061018513907664476637023462063844723838167900026362252906426213146402753784514122386332211815234359155569680624266793017709931447084912528310931418437195372294803268602134493417578591669759174284902896247722028437787989360161880673139926918501254322263081920494150582948523498992859172952009636210141622534077645931780137172919697609137512120988126634227840230902901757894355317381209981284488530505763327317261867251028200909449553693506472609120629836481714478096257443748922083116318249108951356282946890119464450603708120794148611274913587191381122347118916968305517391308890861537121649466040432768003503164110580410382838471707333950219103062245416428142629678304612444669717263339719611269148938062091377818469094128385010142702827700694451031997452660302141268575453314247505906563615150095130418046184583000258383252230621256431731745109090928171760945514537296137921048686580134471319915592821462897956431908433921563066934043257051936814008193918945327274627700684499645187926491025062922483412231212940782223829363450355510697007324808826570562561245228190982413234454675471920705815007037920656355945401273606524111161631988764165093316670213340334983550613173687354112365421211135955511708055347859747203183542430253302701036394900621934554687990414762015248817338185839755738330028419587151242741106511000978507448728628819123356097938872809859379440325699258650058857995763417722819890306108148730446386028387282456268636021728693402001930449455731231783729481841061036728199684666980138421847389290840400713618891224383675180874399548600162000690114065619905527084848137427698562385732535727221638903573952272680998023581304063284030482579624728250693284886672212854576818622446718605475212947527319623662485632088144021360894179000010368119723551726040323086048550365157166664154974340852636633985410528406312786316205882323632893861132350463771342412873104489378143596965538620511867525318606474704363850603025106239928908708787604725049959139548120234193358478469155038937810849068299527339112332979429575398709738965610183165693606962586923449915285356688972264458993703758474573451936252183358565216624410400343944545084942925552399628164411860575144261060104089152784116810672194622004578605839725309605673054207023785984530654125910669041447037638209079466168638220132875361998859704067440153712633634507314363878327783895954370977243890962727931252722706506219317502237541196392124384681029677916386198225434566290156823625451944055981927118415645084682336732450996873080795394692158108323110327934037887383313091669628547582818282077586347967639957633783840832623055847150070805837202393990034881427856454745913172427243606361923740093484708475420152952212545289666453944241053281903511743177855650540388570046121612737834702432609707729124958116419549509400305417534292362546116260612710137292743589198763856102722889383873063735433862844758248393690774364155912285993468274526685462137382612456629522438541324522835306770182571091512529567790222659776821647168952311146687476639454129863310729695562554324700721557270867605831457366703369077676128644072403519909974016145783639359839658966763845363200949632149393540202345573725996956399409464426554282269571433535905824929405506071427806773650133952910397875854039376468852003080835296693939488618712024255821822683052002655864459978140997212825845282272075498077992968505144155089414427564186514611400290049089253278984776565920009789601799424764560807269765103926351111863129758742099868042189502241979738505672311874233571498764493418367779577516092528973536311380388633167093356457136197773026431289807372738314532160961078532384810488565145268348911462025946151964001928615001134658546541163826446982398575691392745822077180656636200170593071709487807375675237270875095563222935855973827578160455216994994767541061624592544316876938302567825132782003097917843747243418224864316646965313188783155332951655972926994368840887567740843604466058834384740711147065862247795813497406349574662250655844309144926448033700005157408737168533480016123350095785200345991777718493549619037962365322434733062041644002666003809151381346513085797304397925459181885909042005310201427926874918495204488282836334357289011759213987491709020874839187650889322702112656909943728794716560600076783579003166359845931604012098497128798757391888961315583191765737966679163807940456884712468278208819305887075029029065826459453791365041453778847712213409301358122078356052456260059304453167107214002356895811216680766818367058203478817468302723702410144459439560932457270042877229560406420931123670298769826692153081084765541037325703740337851519503743045519525438287393160677845169011509310480668907834388696700363546505108750736276377832534640229288302233893070090310373855901347121595263381159503337310497702238018453074997784906304955091986988091275508378814714612447262952756680353255974092792371550872435071710403038939988091422385929692406844682170506277918803193216259895719027693299420256998744896279861035881801384882744064642775622712899347528771042851540388583014749114989682468984211371562209115198209985828923580464871925196127309884400171232951318508941505296630847308170321744219816025343817592589228385691503279831465538129962708647273300293663805478118652769476196021051257707793334748330134144334694617778110923709070635404678439887298939795871895810826680023959848296933287592922995819983493893108029096390002973518289359515371443807789997300278830642360220841036733401849456185089146645163746924611317212094542318590671833016101815891757449321690947242134385280210767157876062829745138739114210723380303746470333346202301999650515177543399998894100890574719124734870661443054319212533243964664721084302240672849743080448714274548688365105716686759870969262391314082541042842840102516695149713344293181541332045843380931786113822445272687120669960820971050226822592058835025624806076664749580154926392509539780025387680470498025514196197817700026120040625430734541395276399909910893163914570181362146215865242686384762605212169329437644227296926295444110470507623727510916803341457088204214260931890818816284164336431914278929401270026994308846042292135363354739733057334652056623608185989398688025060275960512085054961883114263120551255425399594279130083920928305914562720125522096008591545602956466459179474678709939587046695194974239325376553188085186685116463754786845548727427141990385646339985198637056823409009792542687628523999610733963573486483709497401298206106653694613045540484587527643554144286636336156824351660212695781531709970440481101535849380834682420927011122614321686374680636032089015806489882879936573547341265353378549906187595200576966553216173212168164162451095742557090944444472073221600445931966600284419015567586762876239270699697324518838536150583772904626115025410471227001820980020653161217707586333292962000357501468819726999414835558924208856567654549210550738472226213297694476666264767160108852288097573669907445649756952304699217144638306765025677294065929705311532653710681690152030628186470042873383764055573378693606662720883200405721274699073699061170656288915564512783742157476398735915355933993778883785342089624225007694078686180622154788035845819614109705060269016831242524290180677330820950237283152697734624200899842073846501474113269058474754512158872999314891822853560890576750638257198916137732182361327941024085172069622446960323574996208390386601308238856893172689664234447121368821268918810334381282228095997886184720286425255384958552015106391589458487326777110523817389997260536016318243150332219986620557884179779752452445891134782621198515541504962735099538338072499034285235098555818533672838695618758618261462647861000059627619319438379878185872392436448452077266456403471547563700813879996896692658037512675715879556033930107819959265788164388991875586727866249365117349511246250890608110416330866602364935908316391533464904077630909594031212477943824216759541058816812261534867857908572675932586832145638857763263370618145655303956973013446937114084030419933119002365201671242384060207406646160385463183546782269584234792533826794091836258993226430815664684675820055130276569868562018985626756093217596056436445865254667125022094620857506474442523319829262783585343345747775288254036537168017980005288948771488428799972639050862144601687046840135471251715741748796005843927058319661263808780592532175926847909510977037653258759621999038869048561154214014611151413427609298177415489563136112051920683093991606188252468193319609304926387309232778173937876953842169653113370789223524514271789441596714795111656814507194138033721945307874434415302858339658825668568217277001826279675368083147613778425521760922509895174177921658855999492490235250374540703742077657910022538955071129760574429719237366255438128383448927873650211273900801181511256952921205137355535757414828482520488216300179266498528843377154416313916787078225281890553598935844169008622839799400626658405952858067685322395101692962994769169393498254589302834030352958244897306158264350931146213537715978359175734446629290602328903823092044692227619781540984966831462905002800538272058819134942805631017154659413004406802416727806654899749796839243680227106126871401218155384755582493668197032536121841222223371800582438143027405288751669299118437763378080177387830306419820395609827416994031478763985054471246736383912137680891675938137134806458714836713784735742922002759441335452483108804110080114887712351145311915289229074349857159453830333205086538574179926612250460515551797930215416746281505847287347035729251960078055726441882617396541530183942915651865396170605451887795853527212203989658835381080986216877476364234241502919084924712737861820990383551655895365735497449064692799001160259997526089299636714624955520535165005980947965664562256140404402534735206130991993963659343892848895237834867259469981287321062079626315003663531977516446796111549798546763952846718429637106571028093774828598884833199045135001252365786560527722098647104647647699573957337151568028991228235201823522898782200916511593302977707565159768076256487638845401632528433266939322108614760135524559976338465622116087973288241591161864950317977177693843800449013780087082673211325622222851487930293112008706984204651077743303683669770314282562246600812487052813574383671259614412828892920306332597407585177769559492607810313997958335237848192412385491598707016404420865375246681436077678994795688979343629045328822597545298842991377247964926997860117255190441038142957522873259356517136373171942369034120952169027221697191538387286534402242798814673674906079567138205372505306633057690981155087279310202313536894873690327197702327289678576090139299944161337638337703754118867470919196679232422901324332954479905479531494061128342888332860124881131969239030531748867311800108575401582158764435255445191755474172788131337549772193910264375587640001477675567741148790978848232823088394009732550527141753908345887101984596636708895502312305625824999357791129131705795430777164814717667069595699750868681702847037518497348056448082405218894917003581944082902950629184413313883229283551182191694783366846857598448146687512870711749455053081706543845001871949584474482062492401024847724984192460580690961126569842676716006610111542583576675233344819371053586408572333355631707406775966395730474278197566773357402995827510473643322172750851787635213922586726495391829101537529647087300226374996759392377630173496455452008186331915099922301317433291999839042395892891894735623450318370118676769458941029434451589768625437758149124087217614333086455398341113543360090709781870008879016231206980014286194835960593935678017102521979694341703211852589822292815646215069142838748526228024567344114284959807817712058802125700570907112755640021025599234443501253569421136452759614405035018908704988702185178684486221643384189148311009571945786111719702417801284429487916471952608401385510984854214098557220111219939447021069362477476363992886458630709447049198084265769616782325439784272803888677075738684634049402573883033936490847764860847389315778140360514374807947595692035853538375544664554948898477151422166250465674207757526352413744826235160134449266361988021066880322449922583026725756343212349055196813303640256032879800866386202027248092368713834416462336323863658506595449369198955571741683623962355299433782831416788743016055936966556843388468329707282017379193042792269549338899334951564702011129926901248784453919681157735143474251409206456662524298094460314278711587479953669596152221068342382105671956160168255878852363557165521987860877119025638828266727520261657858017482887423037499337456740132847332939331820574305714327414475186913792572712523120343673000777442430796400410387364521176866575052585515244823807728511713754334148816482855969169777882994119208833666111220394531282767352347537306301138852258818569304335545269942962084643663040389531583716135619815551890344478042301964117692714375753431097382861462990304246869830774861544252567433720746784218405836049229762622478417304303811794636083977449364636977799780718256851415477407205439871249673004274257352147709776631855896909592045769769153699891235010874861205576771082285736227022062416810304206881088102383910646989549889067157567601802111653634005619163227043853629910387410788119289755314259508618192820667158373401337298252032284111141470498135484914494271479720030537929048523833389277965480909045601923616142116475414902421531634349094726006552149524237966886404537400391212490692248974909173959754764201126812464615454920432200161916671712509471650685104491081601945102773524663593653057786269289954034228284784894301321895201087654041015988677983951529803013447323969540204740589509911094498561731023497303619457346079532448913127418173630586657880939422044498039022997687695885143089595560119649411617828294333878282042248103748346356666358406764749291429798024343048041121187972058070974360669494740872185658260547826008116049749110907659208320820600784781609980110523762514361293708075082342198352692153917127868540518297247831143786386676563437668336522662411563752596229099867901235659777612449524657797754762589610777652157466949908122372014254168039834510657232547919179653418916572992640250695033896098946153940740582603675772822180427444167505590492504631232648414727202231577029244065587214400375311713069288388260959871399521826343181059940031262934013828533934123700838624147866508965189979853820806698272907363274305486410687884280678565710461043472803867680155175292173561251756931053538480112291498938539347220501904937507573541021468506254834606330362635264418070740479960219504679207002448877828200858337269640580740753612395398178499356552883527083254603814508930039923573972982649940536674620867119145396617687505746057735220357820105153212020637008404661750847007992855569872978744239932652972132366259217894510980026085893516358556290934991895489366710541641190629255926259852517552893990294605643294825391074170612489381860799429326114532089350619405937876039847130684666871466787860622693171072288620511814150939709950321734031855136310521513229963586782623382177385556328293471753728580630039265396002992677711888635757472234504153800295010917052612497730478123467480420568912430959923411212921574695262886301403292043723842113917276180462759261386831118132439693959056371808614161430219592034970784446887997133636072494609594489172541747116546983292287749273144152872854366069944402003092751880912619248312918803938736190473656791323932792001052694102374459730914268862506056705987015768151400765616269746146298361540447780947708094403928014205010225829428825695127535314674135374266525323708578717596367188418671940024716759439839889264344001344609007695698406314807593521110749800637444764052731549209796863932559590853747892529497578145386337715201018469709334923217017807920275955916148670715962205596442532713206829976935180588915806725310223374355798543864156879132337100314053431973560536489360245744836742963785751795614690175714670707397949349904371389759353005156630341750236386701904377362352355431805977201788038391303343850783465514924418089710510625008377153111458690231253814993785537213252189832275661453427263795422731315566816590582379166951799606480696556114898050058176113499225837811782032128954343538330685692083347630264334988078936011179101721436541302957148706200518527134375884096014568525958852783187543549276785655846139162519827771687771217513486444837939138125208516994569357677122770484427854840008834094247384961232974700188384486734371320365905794882865137001336144122297931000415825344376011576775512658117512118101419297470376738656029771975540710551570314931599741877231007113907642118774094238555529512314690432416685784127510743701355478110523166335726540240218768756393194531151368406066662884201385128273873599019416841203568101063563236176251481392167368381118218510076771272085225684509229181569685769673570143283208568195948988033791321395355539127139534984159153530555454514278930494116650630461100518030493686439659210649021246724502193650372020732895662924447453856993703347723853611404084407323259429448975788234062649760204292516341284472711206232303966062288986963182371375846584974381249210454738922090093132658783102105158037126232355755101118386159173823683064966170110101485365852763460846576220604127623607180622511496032653197864155478635986410983704665774851306330858570954206072451768323903701371698439668427314948446581667231683757164912743653982112458345404137668683063386523114159994720145380898503961190250898833847721109868103658911759812550524009912112710780883924094322898027867457376620998686220451508335915799112118047753351175038401884654500818720539560774256929435350811524990038978808009084855895464656648408906874711973228712901571347615712362344844601637332746895594484350383664477674183717645695156689960681387809597051000406031462037292443384758880852567743100954497116225333175397474743393663960882105496760773275061751155258929418577279297584154807619607397073206828186633943847238257723419003027764796027351619033402978084047363746899520135825715953997512170278590054524864441195272867319301323012514482979858736797468585049327989273330805918000025469083815322041911736575093465722881231420462096091414978334561632167463432349771539274963537492078066499676989437887721688196071226331309926511321235685284867542536185523507533605567688167485901415512553698473432940248563046662586263945865342678711449278565930237688705965058267325925472739665391784767710895846828523239149178730040338006248389753659497076694700138363555014785900199760542508093043025293285956241854414173575332269531364344824024753314228520533855456493197394314167187817446869145180478874907653079917336616847712339788835575725277529499934152774971148481453299396110956827641743793547448918286764426129948353241240907083124515857960826801567719941572360525338736984144128928709660360430826288415041546413731155053276610299030797648631776208141300167050164194955980443838631145008690061967845900433539980980029049964230504316446829463825255142284628635840135101981325180250558898501477836956707103837637306324035338026496410909829213689512894980863966424424067523139569999708676297434502915649054030674298440534883163795271028915083454112051639149023635172120653605057466524668560509710452733619870525107822705044334397784033441469407300192981363706188373480539677622343786823489311143665670723744866043054921048899485484072617528320899492409494933632310656061413084535674586042193046291687056358858314097096562411394079837104641034570032581800199377597284423111670962441484159057331398817712732752882799410734949639396019234816597261505087413877149580738499078901908940273633360758734660420678921058354479929160991020802177620323728249723250248430818780059147383522688001694045758606232425015400426351884949667979181147967332173419086164661637177641579708021428808717168506027686314883385801912867914025794029947999485576097464239136524117183489595819271316928075267714451876022336194962315383517425671900750433397033472338086444772685781650618427321062837267255551227596959401843520324668801278541427180837975529230341596418657006236331723348245044317380616437515845834396026639351482915371825554956625034430392595191747612235518103139990126671790663567539532098298877027607827324091322231879535292087497157716289300459082439094092542802271718306806356531958940727564777460263325332299733718406514830877729619488257884850040600846813834652689830678849088438177446528912742103460402345929513524206290205625307306813258511036650987965926031530914213954098002561025883834757729235150093345003567099840703062733708680684340972107323611746743738906902367945510789372043614234283079039026501406347059188232370501869471834556539872940574846460668739338474611141830184820483350118540341385894858644202232557448314359077423143083489869055251394072541320184053272617182744157168954875042514744694463859818578876673679508871621048866685216717343953060403622839595016596632237612330938735911282285477022551985138031205104418635896628427333472123986680487158665035594505129055051368807076649376853673072298144369833838948847307507032407835202184789519365834331806740710316147800094071939674653913965428503970888277570879942561782319364858064156491730479896951348867905481739219280067631362160331373133460405960312314172532878947523586772006774873780638780411421917258723129802347625570104430014606350457279159512517510280652814355320886887432886545338470264793050866154304431540846180655081516132291268657280586523427763369742909168837148678302527109025929156813978285367646350664708538676235544576536760686089522843455435534062419099401194822893249878164143192574112117461473496158305732184234910592618267944884245329089842658715764239685877359097557940918427827771383045631864336935683775584756077804209622324629126651169241023009079869425507464772507373999332843538166998474059901512438217116271719759154409026096870158598661628653508065511019913477811092058969888272007226187095466751648335800725832299523393349802903549565574008275504969254339208824136111175412432990667759922030865564204776609837545787068778728492605635832878986244354968880937556152464613153533773546391026122120889758360096531776066122862315980014192075213812896620987360190528548396476731135151622057853192480948612520920224968740880628661725148887419910164450592297442818108965670362966690921577191890788556454790371008604174471322690131291965831382216773846649448273171015341338065920544780190376563325284051124821711194404932345242903232182616917780460986961224383203840196629563626109525925878308575197264506591684303599269298423950083518767323113640403692897951204184667353547357844673906706353237708945347833227266485477829496665671307485457972938774892037079766714751707955542099802114155009562214676939436992033235378963061697548962897987591083580102272392065023651279501925106293571701326255642125515001908764484769500493823950051960114882557755511882716203309660879472935513262237132349506418415787766611788835039017688903040685977078373784340612048531105425073049637083491579829592026867314144506719946715909995241195824533660350213101186515990903851238978497361802316141203677916097039722885743181305986034181709681376405425501508576865509678324858686285802546136885914500725688327280769847230607627477758726946829983796560871901619816106426818863717129272602274688936846530241405868602384700999055091273905762346347352234470782751902657136423232613967065849488914099250457666241741094075649099981673778955938919801163463480840797008920146893847707015441062655320986660326718974476257543550538289362108233352517250141883071752771893935106634778088472116492147202217863849633244565443840803836877379461499186600677109519284530092304130715523288324875236164741060961792318509143833143308860983382546976506856699091643029458737876353804846833006189386644014595426181191296183333115047609578747810606292455293094039031569246237044219779152681019047197940869743844975410577574868866855762760418933386049716672217990924794328897703759362325664378277399158424081441178843528622931982770508528233583783612548760004027818113401346364757396987767575472050838336903627512667045214969459251691864393315444300323387401117903346286023976872154476827629677549352422828675051734095177200175816935953091103281373208612713282797394360297384469104259320171996921556863234568641782573353698159580969741594878579382732504864603878019475043425729034578788183740342024552582741372657737186268960712793467092259763864285817926091507096343190517755531721953075167550429992339574468294342067842193477871985939996978577483349585160572582468414650787893887072690865049151177377471569713958447407686169938473640644233648298051381741805946194079740924037117764007490305547950154040421752632670655814109680793567696323348608030673921594442234126257747286705592963717052107919531527621319939932031754694424397164445817458170060352795773217315583041718414967074549280756129346748141836174760185570854514811401044972736519140283877921477196177004850177479057416776438326154746102253822673617262072670818654279614468547137799636115017251143304789785214013114920770697359689202881268853468821093657239883142584679795836649009121274877569926169129181967109814815198687260052285040470302450035246874342562438305662241787651828964015240839979284015184740485138982213417893446777506687099847529145277174628472435354491716938762239076135284292360427170131960991264494573887465283044244791276101131418498223901099386432375791266332968322213900645534676909495385284289663798666646451129661127533804109935968124097866827644149085176362205348865496203873492557283866301384212878507872010335228683155402487452051282237788652996972727756381636024552738126367470199069760087702909189755835206516254495022901687847885961644871008433204949004560989948547525637872392887958511919077364509658673284657585373692414025588449071245974346289990224674830205904461057400541557465040023987602506480694690210051878629133712147301980620560174375477362240607989418851223851182173560730234396742481443580631030527267264592905313983627447726274256888164150248834358701912283795098498145706764566794644870151369240313522824352543763877825464536269172805284764180770863210436863837525116489155379254759322995409433186417024319878526693422259143524051903295397487967383239855641224565910917692053683161193218317978297630845713902929564870138683807875093284691428303336141922171484534227418374299659842038055651586544626358077141808954647097895251117257431435526444689848401085749073548102438573770237693963697676118996201092639330428139411410710821905938912429737225423197958757899202960948318613886948155915103071517843221170284189390644410338343328961617477877715259774010215413635753363010276631923819077065912054263010519816767848507921676496176075270346127583762384357443081276143974302254892182007044055715395764001389094867079252177880831899879060123989079308180590020570127260140568644837491055444417846502309536578503913960787923920928340283933059467432213319379138476544809190912050202154591545278679614648023654618121362858752589387059483574967001299857774789115764391756824068506622067234362028243598591844873752059892077752040805691422574245784969661471849805264424024348681507253290360154597701366672761605899892297985928481733114566115800241699717550972346769890498308888354067195059477453457916469392042690141205390108708129644793154126915130254186191849240273983933510008531956299774264204705778322800968877165536468500057332864007099604077067169544082490003743149630971817082189791253042188646688126619235188308406243118170850809020790723195263773990487730395563396920677651088340662828719475492288333429943694156727687647942858510053013894376988405583668218838299563485546872878494297657097387694770693034564293825779238593399923483281599564696329695190055333002521496329529035073331507424411260361075671049178766112962805947410762939272269588202191373395749211542895359568114200668063991011102103810737028890034456465775411611664724963047096065281197225930482748968265542031418266502831109868047702395343722439390190115384939202409007409992696387905190831856449913480679098006717992680729640339407693748112495891143892312139091527504912185730971148001696491522506007734577099507986362980500783881268493664669323688304113866815755593671094752781053594391109947112847893018864772717985243900929231060106757452631145469646022644632938394618629674376040003627265875848307592540231228346974581858762023283921498573632887779406789112190797870764306429384987964249859198580639111981663072172403854432876546052670239789558103370801359939424195877061632578387521832800423514886695949817338754384983597039862938351571753563681373149993276004367178814458716061137513908664009299256619172755291248838926729165449013229642648598843985563743098984254666966412317842593823623005173654167023876379132181086304523713185889005129121921750969865797827831484060216358113228664128010644070122979684992943518693530710342245723405756257109855869941268557080152677225631180158038083817149747965437557997305701171019748367654628567475722533160582819239850410651615316686255757530957644790386194944193667758864682501247768441102256109874349547807300986113486075029400192626790231579566336285072852461456120969790415427596256052667997128296758533355898390508902122131934627431766833412660458619049127336957135499752157461538014726330167145816224976812971239909319113696495528524956066408306709383471988079518252846943356851579915010698673909799174005220265803135573921889186270476185806900263058717009973000018855649476564235079987867741559248394933864284058903757638241783476123335975854611069530545319124455312479674178236398087413398595014291570947138273992531998601767101484680536510314242837495135268295991420974860625007588956684897454191832749332963509362673622394532365465009778193868167246970623676768939504815149882745336809556113084692398175511654430794835822708142293106911365036901797395912275135162554259211233456260966107059924658363558563932831896107543650524283050231463575459240899319535964792639689407914186054167881237821361450370668565998229905689823562332746991530417167248533398416121707636250862709871490505312289602971421362062867753332381893608836186438144071540059245332480200043843202285228889791226836414060431454931245292758193286709212561064971888868403969788327240468049899827990877738900549396632465877785495051551029658896396905621426405661466207959895002782561217209235739316273040650040819803778809472952730832023822480329989631953752588420754049318936860482667234655407871406594495362194478976808314503135676983411380520727663486352336970576775948048983279833612268345617743034087074961091721024362426828489018067307769940133592302302448708274897053112729622110165740199389045934803413541057699808148535477921339285228024982177928531912668259044285292757242391001486525169489480348422288217784719882022182425252189879378471388606293886013426276065549996371342524658887857506771228652562614257280593562306992077348066728162250736292085811621412016320241421391839304199739859290427851851844273693263815863432703432652860258833171859705962625737989650966641121670503578767297808084639644202115474482212501768335582010507830712107893900227241902238919600997950178047283790139892979493991381574150203761060112633768777654787086823073869000129827646144884646932196890730162762190000315363422102226386233667823629567554609135980396084838540663468969035297152908003007679665927404164158202930064884042588988133090287844480916418360378610764772023079396563896452396153166651910676326156051967505201227121040281201159303582287478269465287070413214084438105226637994498233728222368401633355252970738515918076361543649742301531955898526314457545121697064220026551657787812948433774771782167785033242555297665139238728709314190075112091533983968690051722692472780513297222076115417350565260881756008887552792126045877976054956582421203419295003964636352250811486480049410929769304153052876861882711770336790734649232835114724740066889550022193497821273478313859933868232304984448565556562237574729884636818095724433490388359322057131629786897568575532129063560842061343669422929307123572933661576706059659063857364637227141916691778981493775605258473312193141850891568786882661404462809374143003928273244162144194442052899437794802387630773915184178104556719720762058924766123008672556708377089972062271875934049618489113139312638537784111366645709429593581791478778774739183133546502886485675163358884149766854949141809930215266368261559552819361865608161506205150966685516246806695960975550020012628331120289076629345386985678086380825049595915918311093735119527472104367778651178856761769006656149513410266559394511716500326136299124576291602112281908558746430306976498583594273741924134846521867410980763545219076868799238139102183059329811617680593362986817524305253675578651479698115786575725970790222610408475953114676982664177309472150129585755111734552096290244509992044931240958497866466925540042456423639770608803075773860672990266015827443169257064122365162747400967016660994622977951416001583612689789199552087225094636392543587949436500624183321411323899346869158051504715498928451748151365801120198051992275581028589819666147964434776725545279211767165537294953049720785484439897684331359455350523509964183819894561584348351320031362590533686283574971203903497490322324519887537004266450671611586162851457157239901246137784055019945293751698631478311115654392545128546190288300764062303734063669399590739361994911618120062247966627546468055110056539181859498464351376061957699097059374495144285715848510355854592331113940203841121185241151592234599724952341850100754283701433019044852259022851785173118131106669669395001378647068485263039236587682160674791045168889700186943965822763892258823923500147675689414239289632505572071197260785151697922707810419705247814386368829879331817633433055086778769837558578893284223259397116360471602367318713571115819574379340693490354611514196442281798895063623267065560830909978973712814314782783595334928418627804416425419983111269690036602693400959178429365926703837524205734338113157066680674948488454179525983506497808732266949006385623433920608325613139892587067726634313522340559918337870431728463529996225994899031921125639029481655190343050954399903683867200609724124581344514241398088084720229609529692706557936418112686571857464443473729804665875410305805862585416837796309273463315021158352338567822853924046302472394172665945433489529855869699654017621823755275877516507514108276905407023784496658808729576949253932520687604897481823920769080004747797683161080798626934083307160377905702064336181184558884773113967342487952772321476497090863077475893590158036594175117954326728926655979367044527743069860659934638539560089747864853205053774621946245350507802552813420525381021851176499359513539089698829966381357354281020753532671166849448700579904446716418402145068866877822559308576702422206017458732678381608624503716488455937735896770407586743589943901403010188663763634383883142342238490064942243640729651738578926109270347135804108551474889266347608665041953913238403605333944480274237112055081459932582546517430336882800073979468466796749466515773709079858071521425017798577163445623873677209286552747014213698438975788684963357426808783588762569863175168950305340809436470098991378674022883280901447669114560789875252426451975122850195749336769594389421165751048405220855271946328702239600093089388501420828356092030792877537017048653147294798214645378245928305165458137539194702919802277627462982984113425497170463966270723295267828862563724953116141905909563489817866555881763469750936436758670103649315183991223577590531985885625441766376483509522497028098848041419637253258812794219775507430950995979709148907539495550072392177064974984532718481009548924561247360322021501272443042517494143868554793016744680372233068664200519409603271515053109336080971576389436299984668422439193978738632166784103624592995602255282004517416457619915764821935272665342427030298080028907810791404625453882751758316362802585139041536132899905196783955819086613192207329168840211166811120386715845361178226929548404286734729377829707880269444540609148119957919833827479827302862514076807193160618944081166472509316920973962406876979578142932462951532839562852978567461925197002750380665271011266873893157809050989447156976557946104382643119027634873432675897824582548832537550592076854731769757719328065880808031688491404812870544983589261494588485599141893554613433081643661641127228773767676638285389395617439203980609873081948875280997931872788796239828778764521651448750184024917179418354431606575808393586950167598957962723510882738386144994823577401192495545115632969969516284614941740538041171310768087073899834633348447304814678456927119219833866518889471932199543187705378180823157192929062985837869298649594767303132885194319640429136037685418218002123098973878062483388463754860090485420860518353388698098039156742281602898270213710201017149261903251038097053392651895248111906200821825012819812471971377039391185535118949384913065967357120553478826527931628637784564934054386880893311557330423869596671777649880533477298918612018916504392325846284839559532035184890698468853353695630316646436462128433075185742930325472900252659815430577395440511815941902668029151472981385182675588701242375306131210121306633607925206092133253216801834720493779624450106798332256375705662929622525435818937733506483024050580146683618584653171141009750420155506728799982889564481842164553695807308484785251330156636738803902114424960378751863863829941950532000949908773438865872781716353376854870658075317623986091132419718516888561290283926575316288063718047528402924021827270228779370529313563452397890553270485577160891799413271457428574822281244242008848723204002233886749716533961931639242373507555959666408324990807713108702839293104578777625426758362658973978144787267775155890447263880304293792128030619292017410853372749082513784273812119566964061959516540980590331097095147471344265584266244175933845488007727031591698096641350985843269211387606750587758140913952003872825018618180385779114479198984648083120409860859695496531489372459693626691840312687485727014403010987250861141774359155025484585964435874877844357020057889708392719369713041460234492844142684013976952454216913341654782354990658713628446479848746870584179816158811084483166451673699813797366692459913080022648998558405934580755933998083364496384924799559919636264262527767772287236014171284890406267640691003156904348609261524757438736391425431664832027470239662681634000803196795342173339348065605511540633300579076245906820468691143966966270364855544994598541610226836942389245665617591032931723447424604839273257666962640647578525206605956312277674148655389478279303225865608580907495344591043936281569745022531233860301119919668126545431529240890907801784692317241915155987750757660727771743066687871669053127951833426890792373163677955883525209699728695362204126488734015105068233777132680650170202529782651271358557921118589840141239714814171697509009443287406507491007632620329277698814773678142545637208589235253731855544770965315636501910070931851542250514871963947948558853447128728732499198780579761686443731583207697474904161688664352123830096699492198329699326997778808246395035970131602583839253396259343763402913079831426190727765875972438614950393041498345009972072328127389363261925617117830538633011630286407666213150905961515448662283733954442724102705746512130631085642566724064579462888976609546688212871106819027390412158630946757595267704819267905232696705397288700241714520268947592456121638412994253125338434635725226757907003805755381179729141504524654435977403055067828768370605797303082110706878459406692959043727947102134423051086710812902861270864352974349032497598899120534074222422331913317124449661222212572607008700954576880221150581416774120931418660877978649287638704826740945112838111864641997493211130142514268005847593738251540458804464846961465977766258761816611723378193433426759794062323071708075027741439434907702826260100898131100161773662780571209239558320140115593945523690330068424645106094852099926517943538296893635690379705586146251981860201939480224120554811178045336220210562752747395652299112330725115738943905362028094330635479865568201871077811937970864886266740156554707811095979060431318205632813558784568962704631176835317108397648291640794017644604958312360255541239539305203223057575270854377616063858628810303619930849619894402334633636765338796320678658266750956975545338013034688031236456025713003744731963000368865020665950952721136555544757400916311395776625395107562564710655135078994374753837476929519902338854308241730959008374642671112818601727511676497019963942674906040996500670808596778591980287583019636696583902014355312582178341158561636401025961903701614358137711889634761902674385398744621943525805984503351582995265681347439953896977130315152870083992376809036665588416106346133418403049240167885690861855000281764941701154969506178016344285018984501705811497867121764817816595520766872261652778205740395091296567584783681156862780237405007272462559178309447665133758135860920250065604257954310107473839637858152142893931053155650816810973957160976769784902689124689446966125303545378163644846576053345620185723925570923861674516964455087887932154358387462535716295769213136926871214479602491063467044835689697718931810340422572100853818106915104827429816735021990083817013808066147819956941689992867993935434811718745140960324816503296585193764532122842476737808594650785389167548499806403892234027535379582524400151899867476008573464753111124108020781893273570860472305576298503980509375132001006327317088756349917768857097778108871741222061832225031010288487683951837147599165094882429458118307821468142667705367708225177864094546612870366266433703226026165075438882781578811551928207404662890913956787523104970714325243000240365157730000468198882590697355381912768988318561862723903576986979352267373887825815754264275751389208502032645963660033333220449444947207065965012028372663573816846786933873198071602502204312174509947943269541061217441577048816930057563271214606679521078885701621165270846711902285352312032731289428925755478088472763527405783159760262238998819825683930177567676473980528585777109221627393562375527250635744695254270462166151564833618990904235095580694722764090188577062942818963517418580676567268226485586760244865818462727054646313570560253130178812564056392739331405318729914388967760733647410441609549436831076379522411962991064058182357049885931807662235218758922985731630052766748695809757722595877487924706656278523017444072498282801217794075974057318740374963204789551332810358643483745593161735577533243784227626045844590460959605525873862236773733635634943881318462371049013920628192896833034352599628122188305093760579780855835413449947606384942392752696498823260183276958597701210457371805634458928450794465977235049274276338351304194343774321591476513893481251196491369025898175237270454574427712045185455450935042660083716676978619367350919713206291131363664171194861221150596447991821873979432636629289057869286402761131829410774657841211848723288580055367217528522317326663988761664485729370222903049169554675014700773768434045285364843791515498986340425900118600013807537569015610523763955064418971250892361881042762980989769081819810893925926046569418954412297143025677025242143888701705230967645548950330802316461153449815926643310461891232936788014660897503764848674234595844038860345062526268402361950222647151948613767277602801622281769501299081654140179667639549904674486080565421120563681036569686753511205042019915995773848669438119623320600901023778687955785024288520120698956913511123668381308748986598058464276917060255531845733732590199964513326910409772864524675369760321006474250468069003135060511604109122191564312462370967198505968964090721960734375479492964175018110022313340258920980943369464165315104629630438150048045276214029443259162763632328090905909742378742826979397813911564330685600038841500707004901766368991028260880938045553107801167110808979258943850083477997279987335469467690163586476808586859915838395278319591296440186279876233489009889018924367063268448590495972500361209692005324532824743851930361767486008952661978193156212369310961688719996877343408355368385261973893657130902383223771379903785696480355917876593864174060186887262464313577388731586038998271205129875561012705919350139310952967483049546363755025522067684337673601160462737242966155067146892512517845158604222301207964098077028022768007450545770788190570089499480446032749990295566731763987519157175627771935460918085445687729304449246815559077788976131693234609957590725399211200337454120449804051290202148327840054410636333414724918243806773552618271600842339839570816917759972343636898970336768693020184497977247660764992589600118283323428532603706519072117837750612325592878419128314076868301837852850391647825364223869555642288952546995994295923929130839654139124544237596433538689959031192786972553547988346941933724656438530938960548225359149128479464087902123971176358448884610206718219735474531776649314663159860782035481833509131078794908585750528098221042130930283558957540216057256860323563957640829943321513084229980478190173245038533930087377926149745973659684947449947254523275859143965950870153172631179169495768471984131387568680369282130170368526882098228280261965202994528012889172481741830854151663447085644914641278132615546747944192834720821035106858572967014551189262474431251342950732043465377282265968657448825730073559198138921040693743333125466042750695208206003857744249538701676676226454070655648895165165138272689810784488271633402371067272311975430831977169624580382637639510219366039454064746215529072134049884107330235589785849137536285706393228023459429473089339046236599524356549921366265513479330668356685234419464349008983332456518864022674517806349397702200449804171774616456170244793786807288800822873298191767283111254021567542267922753864325761422951093799994088826596827140366577573538681379916225001898208949880149847207888967964372938254718536766746571805161961161196250737395697272083920031934999586106510361546805733931744934405387896639978475592431893922500686029324767019019286611197143798687001219971647857792983680571851217178857635847069194212637301188699148682723733175961188907076071788515885078211477255752857435126612973699153989108615137519647423881759304889371531240142216013194455675135255531964610971470712595472699673365424195081906862319287875983732627113345987317859571538432245465744884518546951347447656071397822797242674420855726837226141146054462215120784117062980892377750738091024244812057265405325491732471313306152046282467492306394330638286279857664178239380392801626910992498684903241044769254393944636466122562051570303601661542817159364753376836774672620660309136721281277886811887007413124667224706760520900581506715271860574524159226002818232826522339678479130109726764490852624058598865692701995709812518191026114288791026328766324997496692468236706871662064544827797247228004608523594269403893858000229928453928876198921252655357346228820471663856640762181246643049504954602891567568737992748591766912307947678508362349581840466903414488631237173183840704799001392376129336014861611884412674172624962371019309987760277527263517136843381674925971953942257952862603660899107011017708171099657408061533547094214391780774365540974819973026051578594008502689273510870611238330628156071333392198731059296755669478220260313031750694085004842683328312149517116938682826894416078786383110706358796849002166846441430332149710882598395205836915300911625427918953362817832738473896050794602448104351935659311169857575165733587966028903625230053292699809733648676443302091511485480720805023774080973215545819942301735165870735939212027691089575755107109126901213887086919969004567748912074257248837770431817144341214048950180939059571826465507192984734656362766150603451208541127886476277028588853279098098015412856882559583797098667497767708907336022227143749597204730285948505613293525221286746497801770381236862676220968547824977138378526604207084214778415967348873740010106569974649939248250342050025117596554504660872796851718932583954481793570431429946140985809849042745086696224177494472820085567153686313033373198215473534268188984430825966402504690390054746212779250508518203509964967921525058409771245178760848729601947502884950253835032136393971594732402508259723763340552593836422495973484569660659874856379417309837316105204654653139486460862089816542968184946804531685728100793802441975595214462803646198951470194258186923056769695961289332734663917101386762105722022132321345278560191103564373477839265008900423921066141770804177146802640792158097225319484173717317898739494603154557972481424783273388713304139113911171176100386628296065555246983329963890060023727455676172228449537102052785820929139624548584650129112581418508342216689258470334431062022198907138774603324875840237899621675734106297969293598266716482223491612087859342734271128200033406665227474497446198199034926386821913047169413706317610099289759086545794234883973868014310501876336611768784776334927660880961741279456455302103179986945928755008468815122189157725505865970978408786505581077456755735598753919385101001949541427392233328363417243245367051959355547201945428454113088666107629939813802979153181996284049194553127554042413789111245094096590213401288194668338709810206882056046816716866374445417222222739227732934882316960300664004814795166405147949723256430195010888270518320653020107901481585968055870545208137640667857920252404221488247907095162257951366401121857921446793495993757974937326235960632271611874353358076169365406896412632221861586562211254297740217388522807483530855608815223786247599461752346087833896282945496213302410498788166740360724429339717963009403595684337331513910868054298740918781764440203842139110797307166762299669240367778734291146395424116097223259098193085911873381626463104161611647716629486476653953104936705141806931521927702823149334927030990711258794870597311579283910014718501548385333998579258396691325431349833076901747559733889506430952575265506611427469488971940315617639587770618711467204366406583830783798435603173427652988210484404378990702497012495748139951939051354704908124583319930031130741980485234415231209245741696641115229556510528922144416943783786394495006219604755475630327351330353042231542852526369307194913934150632533215200984246627906860582989005732570286351246911205711745109374995822437603748377655068183268053031462988737568611283669756640754133582496511573813126967822970250168125484973230339595071017663359507532914192666791799655300476835116436668616878127209271683010030962468638093960205126793764488646856266066519297833863396477029861313494745457706756829349028740087417612116926746389100178942965156553179220458302014400246343961803101376335179700684440978140804037247075698343198416589350168951549837109215336774556043420968799231876180833513486023990538379116034555341709699388950920362340294854115996085157512816288700831481949065684208356945594252611053497650932501661243408020502096971550170865834053912905014599525598277554828941657863140160717786188073396040422058001284501791350758190394209675796041001595110124273054738270399141338267230366083417998405108784812296463036238012764893725720299280326590145721929132557458295377294462559877098688977190886849624008213273403363793727898057782398274896459021782951314540815886798368189354999640425627385183877347137868409168144170136794826292077538522903190755362481966610810927110843744330155769875174225445892499126559704607661838381818100131494725536248438386952954271539913266615770755143800487991817217929313536286689579268031823592046050685061122943208645619516502711071836093089765213348772073036381821204671207170604690744836687733942044130573348472237861817184473671084357960921827175363136282850002374567638805880200389919759782568321330705588575218539915100775200919135203719272275457828071677844787084715787214367275146132095087386341346812604500863896847888608254803034340678198618743140866787345935169694460747461674431705917118724866917035811695191805971922492722010411565418631241372460195498297010091253181289571584581833492410589488093538805554834418604878339959893736689407383666541855842575551880102011815080478519842577780338042327728155790855944831556209845228745774418840467862329715069014484604305620337927650025507395800325075673945858758647471164028107580375488988400362057778287658022997516849507429045250199947373727273518067316242140309736761569906963085208995974294397399440207124611893785824507714466626936445448394304762100073417139146615418115808376462526826807041117862705119194347792904135146624429639057210511805040750451374506719144981414387136275195615994601780282804522937807017821299094459481167144247289736576672195088534839224167658991732745187403017592549423462848840959698156089124522532318743455092408950298783395149424346879973464414635438182560915159664810650052281434637315996907256263185404341329787974787691796200493153551060966645094813979594516961720834796821217027203424493486551598242019650457612095296119428829238193358708104483538119228516364925621369595866779995866433351654399590428528585895204873720665662579238505894879088232940920990863437771549996647248296241525237650288017684877129273628021377706797755497093310044525308224790327543320764650629741702846025620943534111102068025674535902049929188908861539939677795073297882919475714702927924221641886658064550689009213678379736062572132320309361135712510986323438039365850465261757921190028958303288173440902019305948584160501774278337128329888610779486096378577280746204106803949143775006631870200687987213261147204236583370400468746102290830859458012325741582352309308862340018409305774512934474787458946129131616980658685016956250467008842033319854921361550695775102002812842201527207206950283012008457658274350172234366315235668802570685382292074174593008605316428844567396826475476602958051212794741295805124890065173183793158895460966493656066004506916946377461333372596598067791805146026966200028873952786316055284545689504684463417141554005926712537763603131609189555673507621985113657632504293142771558741160507216262896144904863539057030803447957608662202403517980099116498501911462992145564423432292313894218502773278261985281651716843853780515934876063463921504845342828529869597525927255402558155253925398732825963212366822259391197931521618525501561535662141490415239380313090771747494604590397449327952070410558169405541111900948063657543101258728838029043331447805241962396477603161980758370263474910723422344663204681032201239773527839875906169321501232847346117785257339621593558480398807833365300114471783374316424109159638074308745509223093520906855554646354303796903017326447315256913737605289471731050028901435626597407329673428931569052461748077542436358676505090926215231175099326834308664358378706218648601739537209782747654734900069726245337474732230805333732978126739332091613996292620315930446081296882186780098609506727229009259732370691037342518672487630797621153563359608788399211511589118450267023310878427614872691530262964193844742034120651440248340795662527522494611213851303677113474956572111405987798059616161395978861755808601369299302999360367231709191325019975904876426932189910317363273918306008748599577674442405397632565774524296842914387711917634260839956761000639644550478788370938324361243322111162747352360854816009562993093166825594591487035470093577947976388643997850152798714694611786163553356508985200180336995367418955496889932614354943936848411577229295423772034752549809145554336407873156572067814983763348010145240921494764609400906677185139631903351748161590969543475923337816196836795315180234176620188355141198347560656593120173548348654463509155795190861293966465677096949666303394192198066559757066566694798946329655686078282440456016014503270149410744135505004297052238955996862243115093838140021519531779128727794002429240202411611900657109644488201755418094207204601530389956845170070833450416058307977426525960303726139983397832102320269515516049842325074679529038922703660444301105956858415657128190799355977556099414332048521643835835244503639560554919860683165727102832449883379621355800398812418692788302298473281490096975224582342594990846833321915935350167369343961562266064275748783337289048506423099753884741576341051279001126880893027100384639439491487600774362484912637158599952375584041340755731738935073808722132578371295760614410704076721943173538439933874220586964810962416371343592963467920053200134605626444985498590619303715938710937339179808027869270838637511371347890522280946859221990900701505328357768418651800607646214370748304141101546620951702552833927559544922191993603264145951126874085012218373957587212006478086489388279564060330031260434867504538567163024457960002798827421782053394692236907241815298224105777620479853685609270792874442791800153785355155066342133186762634762414163272928637630627471095111044233080937254408226104860904900355591658664552758736290011605933114072214989470209295194563109874447808651791893876147300468351670219469852978787051753986080594705847199116043016354221897043188713207399379102377595850642432887026511306420202289377136622413955326785185968783466877398418300896847127062520763844628614527922913223896163686747551199431694869281356224669364893722239709486157696496392997723859160795981786067848377058998376483001679435774335033624504312528786975768594214487689049810596210809394648156793868296399566008518148796136489881403180719108496970232305012318101918696681501427397647449232842370880404764739663979095788854068286906633793216250809285221140211700650202199010672844935853607695696093323746334568284516999809157711817471986587492553459187224066938769024201480227608306236848683975218178160346216033569889375065607361788748116512152667383541602795889024439184002760643310919676307664341549756274791589650661095039811698589633208796898840987986435003130234666120151048191094226928732840397745030016311917551263836195659773622378446198381516492358453117713814276263901850429544009325838166666010608605769590446804426509230887901811490423458741550279017445923356955408375292005787026984975492770057222660146928619272306831177396687834837158344986847938510001580618400920099261473965352264993704013492764530574469639809585227893188945881222925122544270626345361888703295489632518359354847497392502744115844742319682604875750043129714216918395997624097068927210331869198964870503368173525755455769499552592048883351933587866262366825802067953164398330208668656377145008546182276197235720647306171325651679528665110077159010112006376325235995006448217209943750725618073869618475720040432951037458766217541602603885511795307530493554848229398073798175185070188912946026537382927230310810960914232464010818891168857055634850902466553133870900005888783484762377586943154245162744351860226386758397122661483552493283504724656022252041054141420330388610580232656432378085219297391060056017198714172138473904354540455896925207268926822155041445269543718185551102642933337443119227956228983194622465253003536013063269183965703952492446283636301872880900400253006919206369717074534044853000106708096920821941610287169113429761904814584082787693625120444942252889250060778086528516163191993094178384837989567061250221038415775931896188431076030730738704073334853600585420498519622765729386400682389816169579273446734477221437073623286989958908689011911051316379396445062873257751380955969702663684295772724103257718253733056643871913539921023033770337499001776959765053788276086075477285279306195204077808194210072663471132566695936666522356419247211881626272686996984179400418841215469061179876055857663695296800579094127371590775016518550167518514212278482739171019982046652685975242192329296586320854735869098481701097326798899903117051451967938184988171034090192740864472620982804684758701801189157431612409030165716859029000465524591148145626043822203266606015863646142219945388273131074967442385848037301897469833430665552697190353086054508612991130320587577887082208172899342611276366401038480613022660751178371619090756703366429827897521045299226781701730467221768906543183110374267719658068044128401350808420289530249424832233864670064289782419899926220498642266454449141233120512816030176303985429679358548512927681814530126574572978112975083229937288497044590912165616974712893118373806820786325750223328379340290218772160685665017740217540127542323776816249479986896631233013470607947245312774022599804237156402318430137253224232244780738389877574275982679684969253332243178945343474804963166659439026061635325771144459314355749304260546085705709091969235263008403168718224643480422797415845774716983091007840408267396006765308992413035031085121770969916597252402019459071128073424415870611088489895940046357691008794045350274214937597514929353943671804602762856576188580020792438473551887864450892566188156298816855362243938864021672062090392880362891536071973897813956917506456150317652006344408197553974435632071121697524323048011750593121978803471975624169664710686404591430794955429847885482872681283887684381837751621452706480330703331175030110221786343429724641262128704298980591350709552280744663771980897425968785313809861299271165721406231764516973189391310315033612033123227623211420085160301568569744213652640796236376315712261910924142825604860798356176502818026983765783740375426539456543324193678953693441741440003148820295828459504292050884093145496445397148134673635540597257502611345227953045074204563448346055824451639326572231016150282342004358784812872735616509444425124756202554647357370901856548451093482260265823859527788065496619956321219927854294050755647513342392685390472791417215311846167247294225413811450037381390459068514115417058930445520556127966746414197062007984493175137553799989913193356398319282017396958241027840081369287868948548732784463283692450728289799815108946456627593880896518984650897121245428465908087377001461724079582735551895087456756132925774926404380133201384840736460068388094519935112988265601573620678466765963454621411057248340127979387348684600409959062961087884073090753399824560534847280618449805238199356248841964392892100250317256634602555322052548378686503054927530450031541988613563751282079115333840480946419895234737679121901222360211151479714467032090053133322401713690859071199479191212873005804353198579252597065568262814510762168213205980754731562692481321739466205522462413679979930346123808583832605267282550988852937883030783255085887044050681931492204174590423395089547241557877962391149212021276045958619681065756146563305363171914098262998900713088238044158922124021939715377946827212560579236875050487376116510013813251469330022559521159677398510236310112029591358693277592345856187281009703889499119987087710768543868082919295335851715065082876893704577721939463009756138914392553156672353394505643383506671944939872663043647112099196020026582306246582107127343312441433553190460324683031749558713812236870222357604099933763590191053962434331049593406918515872840697293055052960452489832875797624286335649131526663148358415944513318431160751110622137203940445035925262689010800132867265572493584930193770982571310818095134877992433966095130000988815306080120038052480124754873215730642097241033704059731857751509410957288703236232655517635682172726921823884756441739048635903789849582987247886860076574011109497279688902296054054093778700277765712127162051843279654292705021377351134592538865802576262360452857031004179160891352320943028590881786609982212872903101794234127664284049207913374934601288643814233830697433748118374405891106749712719200270375481531922538586853579244352116489108265369453803680680676269474084858709959554914494738250892110896344042517812160201838059622268766279094679347594855653029730701284185555166240428706183805828354027228674694348360075008533707817485586518293656364806689597226997230069318026512512370371700133592189039646473334912921809659931244038200164485234158379652525476725417372926177158233149698915691569568589297693702165269084169153570836661844993061423743038590436179642404947692180843303567033419979802856673567080338230430181571788338278413807614720341907899962898800681698348724818223534159762573875555170543164196130022582169165495375546506413308971307478443337589235867020736538183490279222625345775011114546523898770121916182616563462349025011372879037299839746377074391591173051572796142429524209866151235426767557686386041778238261033455871861715326371690715214282958575269489499976421036116074568180103955635628514071914297734992907592068768559979635165186299509677361952249341687099760104736389428290880001432121443316386411348090324454729371995353990744505099860741470442303946705261280880736204759478221397113636440335404361411608778701008335036058196834657119387152158499855795412715329556366503474889168648218491394224775683861573926333167356573109093373297551139453850001473293971050703467878269999295741793458014183512979772652754545403897717284649405055900061366674204747749699525195621124235205894487187327377604915156003991362492998047708059384539562995077207243925331797725221825022341762608299181362494528670808506408526502339049134636711053034004484256914428542271352253299366110046720635507671546270717957410929967079436814061776175447718615010161518906413186959715607392624565720678885552044663471467023160189173996317277743945603955066258586358197579689064934762725886793384152944688022893457829913776722108718451528385936427898412963819882603079608140781369377615407777156511543811266989865506905406695464748810890442819435188063359563771350640208948692584482326842877946733265701331895365983583412992856400283646794499488025287189369552863767548432674345927388753051397267100586882382936390405965287437015908093263097297227652001869407456769406646911533793858123035817892251188350651836982883246874077387154135330452645794034406358089885894783154753067444175033178769481669001162183276650937259714013216952528433744776885691624661550243779561103718281514473659321051512350385343498202883856736269459122788281761083781052969884407156261775633008316110087147797004968893006382723647239145421366312433407997419964619048444029615688569995702220473654973721427038198284091726394062220084717736692975430118240426429693206664699368546000035048881185599604636141621112693456738854945436601119809346053475633810063540327042804753655930925112571727764369677417363246623356426504433821418124780448549208303966181686466935863314305542250778531208352132807682393318672685005440657501109061616066947532407236248233622171386142045000448384834150506749016887995918008802524897332188617607045481206216221418250747979706009162240789267536265431859889075718623671658957822289298045358026930749425885634146620251220992735682417787447913921571369171160591569062269190816929282279860454583645587458408362083898228986460962538062523592360819995580370436523700101279033610280297758362845707381262828881465268607994729475181032152611282498190103898050771351983430156210867073008630239458517808519058493534273690898463348767878369739465169938373068429316229157884070101775149220703752887062802456139178903232304652409082592640699765359431865625026512645733259327195722009837792397645851741696210816324628906289078851291839164748968157860091981817559819140394845771904539766720483108580308752789932405694946710380997414597181682174493378529146555306716988979911572029040659504427262503606743197055882156437831770968829033436354439947111888976407994230843164578531942847288323740374718650151688009932548519434674632845105420732655382597876314329675196572258798866788581203847564413638486071884816071792890734823986678992580779162740644360463218002261247783036332309625959020225093516909339536628108425518837078872325084868621052764614020066306476226719853654752656633351643595080942348190424284132596204366566422616824132815761621897197070127782047790084720014329175110850905601038848921609077719624932868292776985574029277760355594926190413822827154076504967335393816594161958242646536690151457990588174199821948608511409714385108003889182925677013387196673984448621969397635580369734777408115604607585368447839576176791894719053672784414606978584277377557055218493872702012577913019843160050234552576833730507346350545241144340341091799609540929103381179493307690344180722086759305258207666149133180850067695129429877519744304217775478726735123592378718052834137680518397254763293663907865539892426130693802432046522345809248328705208545712244422855127494066276311378932282691705763726001760977599517758366545587918724628758749067765539964024647581255481429002256510381832068405075917299091088580176450256495601435898921205391582789621127980134147756686828058855425734553312617466792519326308809039691825447218391371455263470936486151789208268704631812833938889407276963904059783697871206114067502257893389995458944601148364818859584181092394630152167441789683732105197581625014623609301256250424729043961739618136319111748165366005384862614946987337038371494906769507621206886971805885827729523422945591522174061086059362891177032392965117285586572334098774487559998601327633716778448509653690186954599554166081225548065355815740625276151814601981128322572505816450689724823864488151895251684647680749935694873864609103851581744979159127021805325963268375580423198652744980180572362332695679102836849952109850019205603447420148705194224373412004310213017217849929808057139005330859762680012318640494590397601864111668407065825549274201850744034132053869022055769232773566358660881410606639419319738541279318653214478664922545431238886612914619665579742713081780742231342360812722757290070574187188549624528275323040119210664263701358208013310555561564038173439078381659768409815398829092162442862175015773870965384844930642648269642947042783382627653617414232259758704709459042182362676969750200473574816957616516541370204190636726326037890309734828859422633000580283988376536751626866213134570550013878752480179012367895808432558304129848372929803825186916946291917655352862580834068565591397220794161145007675006044982788551061803634688281600971887818818187805943454498285431859524397996715135818428302333524699649340823097127104761613047720467665397384604402027404384169294619616130685811959220806982269512866020954124029052013341392727661167687592504914624770543204863688524110333872549374785316773056497615235141337052607074894424918410055962907856054016603411472045217222508876704565737890501692337053795612152514971632712030953160122642615497808163212619141115035311325490639063479667559242040175076415808135642346172856074696647829146089666584632898677139622228651308730459165813465912676851223285497915088775439339426428359923626277776138243557133939548557449627127112523810359666070744161399326501477643936266876885639454355560850146212860166906848592461233149264524134581655473559313351443555407281934663193676298965944761963553677327774453794153492009075285435326758634488784186511042412501208814694091244565148724516407354357552235643971245296399944200174343462689622576888236334584401963031564808505114297113272661926437948199677793475147239363737486761846583865974378322465690234263451731548749130101243265081016532771646716686206264969198163195870772242874521175793366421904054541549607043879256151795050659966963114748065740282802238865697182146450725694012439426389509078728202151196898732385316734467363132561050909832283935918053870527960368573330938798555344004881498710844989502754947429472128855155847928261045074905691815071650500981730782962813488847503240307821911640094447175216658739122693494479148150176179086560951921638742560184400492289498685479134016161216410410432854280408715397794610768532275155115923463613753505392023825643119737208146359612391129757667335762037339846360428134600624883823002452660403963210500374403675306089375950312416165996172098254586399802293544501946216821656228352259186841509253998749337920799922373378028663217986280538935025510717346173587080940495643904485839648370126871358318214413675896994602706561015115957619987918961120306688522692845306522443391687059996524695166521166795729562668178560810193965836276815910312783082343442637798859795500741218040777048599677255595959691813395207141652013463018261947407600070954339188591979581956178260235149845410907339748012592769038085544983266681421782887215437810803057832269861322856207890079281439626097431587770015426590617977240106372855685585908035819905101433044211182315191114679693097893339905460905882930717133051843218529371135387208989104780450207594690309050958085652691901568624903908977185648114916484998471395320741994016823596322534749821965039572628728129389865303090174533565296943050118280314059059358949333321312727436198611701660824834558198568566414786269654389742976561660277652769632944791093847194190143566633099590082029187781221094813308013089039756499260177993335144920330618112713362957349004825948443181250623595738273472923117414410206969844436775271331275170642427091702125695361793009125463763347674333126811991138271369980574862122808594755588198102528686474954764021864891082973956661964571949443534769657951314840369619634016621242941397885034129705847601625027343786567594581210135233465874799452099873660542140874413180097196160469351600042566640923854094486242684828077657952058445667637793636453387206716896998991788028649275329317937849289956740794237430120466732572673011818741149029826950849185057241569381293444836952553002306844568223509128468428155468791365781631412115747092092097397303949370967075725122665240573781078732901867442515773217024210711725719770024253430432359006087074391111894883070012715184763623286701247646596524375437406543596563902906081603914378459987536616608282991111817263294090216330631991018807982376157784093214181580670266454829880654296879217042329526027478477100148131794091494522025817051252582998340640263986340094937550581195023064414417547204065087255053339938056692268281144086980751363268669455611343738088859747127405918756645137623712747498420692454150487404998773837646843031723935950860314701603301523496549577645466444217829669691664731837580102706804641497880622850781684716736461142085750329747955651323726387692624803600767829135285828868978711475456896633548419991665612682834497294864240917929807760889500985690929159676250974015383242188774098393087171037728680121513333141544402472282800773325425416057280279670809056727560655833422552187891524639172370398401393958052519002394718400158644917149652949624264525714895946208934047787624168432443981161357706435180601448712871941539906599678728567156544724991978253227878654329983136627411872739098049895715443859246703300801330379406056440570448410664910321549050033158098207107336751678144146888244074024634847003165942496534338193361960518409000140302432927930558080449639990741503197038164893713134545942700547896200646834320358061675767119886218811359547932479786863248409284757407465281438402697336064757777723505629586504170274999896998180432498491671210343276028076151502198166007045038208986443122559883217751103997772496192614505630803731348363723849489372479339746477220173088253585404103028114922064230906189840810466782257368402007772112746703489603277518730398711593220460747768033089132157034832539919353331962967759200980701922189972508962883744526375228097396303374039062054247509710106448884399808529640830917956580198670358634776704225676293265971119584159410755013634235049923413022502443789016897235722850625415475281598023166609951005916575815130885372531910412923256127662438539786578065903843798709694741069567306785661187744869348925678424356965879983049357776598489192220370713152161707554694623121988312874835580943946152503200800292666929871891174820077596932969655286712191985799251133005223480745512060333994298146327827951075191696759839775353752025607285929979864750529040108382073020701940901629595888441427211045188994881345146203724276159987912391487855622810732392226197098186480411431479091908503471678194085434927071948860105256233676140784891702601366339307777271690406050189737370997943111453348951701537679336428325626276501645010092695501890693899002378744133902212779564673328466572766653995269926561583169554231530740097877521823558523387799713467246212719343992909590060622560900932125039569254696525976379382983198404489204258289925187216584983298552092396281743567644229937339888447455311646726437276634593834087829786754082670469089145652852386912935544889097353689786930552401344097203584826491287241040980807690414176553201658332108694306118328454369982578711262577601607182679831154860261499087415714127224303931933181249151872444312147055094038012221394581830230354570531939618706851457567098473179002424141610180429452752611676519074613198298452925841460121125877519225606695085949008330068916575920782298446408236960904719210402336012060949239970245201814406754310158862309979930895818771795108039130214963403863713129097587511317084316284259998940264888530754580546558372887806260182544496845109720459815796825140327051158647218293920723465496400964805462636404319313513640287402810350737720904014795524187855023795872677708521708741157485716111733125126119731462014106016643063660367098838593851320348695071759784315824590155873238045127893206122910346942824327643218393496132845894866973839831090233759037574509379323694694458408244790446411516577392345803636563982951207041468796781360347362553593979281711670880894527062595991433489750579139663538808789378176975725122509150652860367186456255420895531208643457799963027067455658532778023531788018073511682636862433634849347406344029116300172567353932425018127466836742935537997576811819162985534067801238949031713645251003501488791935184131653183021717888681907005819370451823941653918027273252686759816675272335619083136698275063785012215677672625758684541045202969237441414110560358862652045882766937287420060075151120382740750427441321271764409789211808375285850138328105548044181364897554591038338771492396753444725351050361473955749188119615461139835462774750820903726082695370065162132991654610696821569320470819547984473506056606208742403957124347456792595318087812066623338357750602072940161381698179907614839309726909313165674636429882598558421541993364921219365975931106531613332573595913982937780614307797721383303410296701022814146164234102867624746951235077050414618896297636619955584029977304980652404974113773297485084362018647481180426320165875055542708528447232602139665748385399959404497335213160877813900219105349684734235072780630404372043398940703148371935471158369880311036750571715418209213248257094166832267365735116128968463457510178111446288187962022523383225730123754621820784284239516858304447768153553828507070231385610903729428915339859908811081013033668750007110524110675274230961274614795528474463848303977236426599597328259861521676783100158095492735629975696476202972155799883913285391473668722483925148536350434409798489132117210899335242479948681897829846309050695872854038778110452748104914448324333190947107406950061891594660074135655599608800125561927489739182687763385500092961875126578897407701129630315335523342363509483340236763047837783205655087455594252607010768833650765775414112072969391676506516908122052873828827591447801577855203992326382625481356870018331989300911895458649636608579734344050586723422695478380075605311703116266098456677349140593720121833028466750906421169626692713727790476438521812822044195426626249679137664434198246685585422790966183080955327703721527651870128623221036780659664263375292292946846599768708601192701798972594448110336833300103512402657696038045919129533508460372097188896064327599521424137659878775134618301872624927852228198920101266771267428352269614169776214932465693138130130648510020064446975609353392382068106190594246115194038395345321916822806014822714814747286545293118932197138765627070963161196812886876153380110778547487518541923594344544191309926349800731981088605840330225868796745584911682853633711106984362820429490132950185580523854526461481454073127262851082873182394734242564279056279812428150644822213258268996333983278726496541025183565528708124920155147227333067289619267241649759561445692770568052483218905770683812095729732904349176834162532912866389147524235867049885433438315288569427996539711844272674859908245702447380217194973387852597765904457786954155089551405038312863036622712371562192507153135365221894973111096173476248972276682364173539576257130299363871234924617378075348106543537049270205788332006071773819701150976163894751731753894161368992540812089865316470410964409641229255367406169187052012943480073937976840112733879276183896909837734194615801718307160527096698341159293201864977968721654981226385712057529740001288299414441413588699697521927503366729127976432900058782662740265971916611267193574169103992311358308245465332402496064600042213557824803106785143280186035853974787776953021519121914936850762854972053783521045702433961226774994781008928662377384690086620850858453038398362009930466962927191708472360159545693917060459175230473650212346735750245075982530511111172957890716587907100148520844311005259820168564297442428310298595244140716885514232403246384687673861830504291130051488929535375508348558471222127125106998141989402784149314453588284045502091482637027606261963040044589150531497621287568740302356995633892409479743870092917285394656819640558380496076602254534882785436836412158926315534353409950171240692828175785395630372336266251618978674429025200453569907512620130363538362844203957798663997027612832806577887176966685630029792018927081388950610723979549257868308552254404150228042560688428258062408198068962739185436332836807693364562080442993066192388826879474834261976440945939106556091391497679949447295138748574411202204426693603293869484369997759577486146992085439747097494717496557548569428350214662344996002200994531387099184101414921530913021541540270542793234653410396252322001495030844507083631041658606495522776449477559002096870293895751363311827902169417396647578598608098330812728157205451756993525565812316028093688741763226465696882617367567634124584553702015691067667959271953617512822825398121403151606133545372905590936026408685600964342162308170365989706749186918862909849918624480522114443059078976892457565118920594847459755114837475334454255991193876951115615817404110242854205036495469195066368695757305735961367375066587844595751262217188050737781408158142882302944316489643070948456819501646935125566582824708183576077396246701129188088292904312242444632665650443354600299216516207198472424460786470260330421484932235430185058807547147265870507717661487820175618621113833269800860728546570484039077071655631171882591319549315164871797482043086649287771436525350572877142631266511721515485367277945206881725458096084162415494906316480826611676165835343746076909366083122803761807269958753022140203754599239069098656872100108799616094826869995191288149880008136074735488403175715654631131505960185839663120536035745689789169329074405707622446836568103284250090288609658870614178864437344968302753773701604251981861523083351893465459190195315415865098537250925893675947108332338263007887939367564360944136478721059577713947031497949550003525791918075102565431306219524862339304054083643877507661395990741331074311203340399574428342249766467590934850910136276278414263041622638986487971418496456318195480767210830505997801695334622810877439425092247239148295401623537307528911932224633654541663689316199489211797377449714941803065522899542107310271238457965984428401148380181881250811696118116682356190661471902703951583472241284716114777395876525037695873401285280871614600926826339544805056296672683492784583665798272342607915994277429226794810173191944177219828192471159240238924901296812696916119155169202391005544440159773952674164480229656996609991007052963189577815685613440022122361675642465895639503876563809364708351540919117658341482102576120104904015894260655635198494693873664145814822333555467506853811835132781778536509195237357087841015306594057558284971758173763419464324419672309804495485530810539008922700460752575914085894141087329700493336701446147472700845555362801476610244225698180050563891437868002848604956613870406244813289968458566889424741321116136228841466189065009638710697304972035373957045847520715209011660383508029729287936570434948819038590864285044649238577945629500389545189866774375163552133251126793337921695277681105117978971337285904627320047224908302336681623006840816199544302458888476722579284031783231905654755987106541758957107329368818166925425292068236399334358173128483984044730267019417886248279726764919589880691870933520861335154418256967644047524380342316507154803229452346899339638756915919907684021200867412270020138985146265479034667723995546556172275074723935782335297244401799986966519922900573918504262381114924780350008860237055513876959150096752586236856774710820528401917982328189733702925566706479512238926156948085424039315176819850137802861636208609812863811468648072932112672742835462270098616197461514354523037334893692867926705431552576931768568194700071104965352835290978341684573875730231217360757304299560679665095618448689126345206979362635205839222249017931560893024556840624655424614457201683087544148855754455129820027400912683552664675787302637762969929378698939545460351802507171389620893999783456210272127481530118587859086021442868225065343341707380895811599902237213850934124639723527819775833899478688608893387319087007023302045562435598731537083612668111033641070992006710245781129021621665125205868814183450627366842693268036692043697582840760521758612915971199719430908105457578158339351947728334929563988255514999920652215846064514494202209798728544528970889026548629755665877448689124949387286846278234523748512914309960020380695041913468539869074829727186237372542514814521717387758711522415723676409146880533975571516236687153690923883180901005810557060035324474138613686540546344178121215565469749412240454474960585793589029890714861892598572651105384661286639717803468661717635034469661648184265450058962389929924342606186936344984136145565423518694758244863946195704490234008705211152732713052679223941973771546978492518855891065996773150865265143866936742361916223734819484321629896648936371614578929613313999370810498108591078679382943711222049284723290181900996448719075672215272825002254944209936014608290004396647235080804956333853592675479664181496957562037701527607208839689465170988256635175154066374322438141322161913780260078380414003420136946521996003278347779314888524858487250204909712661729095364638921141143440324561366257495891248569520487105325898032680758878007186957301709220307004108026467387761891726283772275595698406586356826767866362581078547698310489955279369111102646308592674607215876193619289237431718012188604419468946299665268768489323893105763285440925461130847574493437286247830663935915656085132889123271115079463636024124361588139533432140955764441791992287482652129501134334705840727133428722647078112875932813060079116149036623147572865070821949017220632550965650760599662125816952076761017632027229590172301740627749105427464441760891852213370860056017817402062515217169758285867689012953305550213185971147259691096373176501538150373891483824756724034118541769561726255703117285988700442634743919326206014053082977265289791233917735206307384574302097770988324601654994887654608186746638617402718336550009647889517313044322019159692963465567994690139030985824524176390281195507044986715845305646522454822048103863797285120085090992467789220768999916410852408177446557602902008207525788224461025475352051807195224798331447339002108689281408333668345462395068406561038321431212496201007061808230932868837086107593921108109350894062078242101742463174627360623526235488704710982811540412906271170950995658413518713374838775228526458351263448861506332314921284970904142370900070279938473220525383733988323779241600667428264943607400064475256335177174013604375675162127873588927780268749611293161780135114570248770603697005010458308560751264286557003427962059298284940503505551756732881855471006401418757042615184534285668126458960639775893262376920698177844908931667060456108739010468964754745845441922216314130499902230855653339169855130727207147419807964420794651655571424087984317183451816247462867947769733449162307514152944417857931032500855769643564375972225667264161589146760189197349252513443100369590563003606400669073544952634835078425148676267212239415329324281181336229718438499652958609175856479389435833817475097818522537424429137431914761977087518703338665857100127395850666520390110218261804813482116395000812268814995146719170339475470070500576381388812992851790005124181060934740886287883976652744907689099075227812505512867246906911839259195580995282354426207193474679523827288306057106934997028854456420154404392981536836039406412636202498214313631929365261740399833611838063133131174182198386277479712259145787688376840564258367179423160066381789675464740814781461221970815674953135375546285011209151820899421664023746536117726977849132031061590906362803433282663454714315911501439037915285981390078174502914152705138506905795979546565293112924801131773801927525416531920077161512463701071926159681265947652770085532164317190645296947320741270103526066569795497750180538824497853613461487052768437479414039416241463799832400892436252000237377024280682816229787123962319833533986272720735917144819546074144267970371058618694093525683432416356637013199532340315031410122405097111587102245850241502065261167652282783853931287582522073365026283898428288181035788521610043647810552124748194845736892405088340672799367217161141616801295699619740541113667343765014034876747159550337261384450138947161106485582571700908246256968455879149093613039998343358199572969425774919245951660633609219211226693596908277757518325439498103270538968458106484686203116615271688690728729800248597592485846470942841261287537600734955095937888906235205274461951537417555628132863319530758759189351484118473585728880995738883288967486931005009269792649702016234015165220054293129042649871747179201678829027758176106666847685970391745810772944168525841551488695064739333894374194798290575971267721616535477612774770669202186886907744721922896006818150802676582215020026845170790159640015041156082477394853656028369924266503674498969823786324133680111346981562888814794493377264557516581759193428386369606169510090786890589283721819173386078227798121300160520002863843796279428444676003940192108131603404518021833025584480776788110978943530577352109460168008011212246933711322931014529220166180579602452917913118697750354640757569615371515007516745160365578982890999320878068921396922562450798709629979013964785479259713685259720974393268602702219579143494506281683296203962090500309283144855228830194876910706419500200506992380515977125804080395561220915874867221028481632509586328394991304004921446964572299496903509963522854856269490413942522177431273869536620350107974750783848816381882778874060307868289773010670377900361083857208575553015271518424817300647082159310758741292439349033154732794612879314961700618051971304596908237267563563819216805859826554804076541194831451037649514075765483140640848483241868955374143969704424315355551186479661703777343612095247409120810809907913849574996012527305801990634728179643467826658835339234239045632954018227387403807920262113040532340225468466084320485650409580671096113062101333834534355213484047452875354659201054098592053674517832099492840879119009047491310571287151827566518658074594380280806979531777449228119457050520021514294827079715236676429189045479549711771268784295477962524004260873292543385842350252617266953336339383607818791951557674885960925360438747566933672024533971771710333991019227641524714227752823965373635697076090822613559252597667314259954369752311640961746956901905417751086864920833909332807237764081109137234787040397646908807127875382141021745982481692726841593908212012928533548325422296504770990307972958670278046741378884788321751814092653377878027536452833787135721644146116159069221211246428022419513278714173387760508912886178594851750417290893348596518877742683927136494659898591319067021350640046520015304139528315493930066030232230733581679197848002151509476270644520592497214672118554075069008000196008109359655105039853920325551442874173461659074549187462159759866304591495256277330919419121818096188073214724994207576023574140185362704362107540494095615230993291667232460898183163767610614222154171008717849747697946388761773844703863376831487742193418399804315019539669165785895250961298649135635987801551042798604282066556480622969198079723307708642892278141421160675330459425353749640647406478482813567869204840882601368118616936191525264602044792636121860305525304010768156676345635408870559160091393025971826307874401930095583605883889452189806232011468046807866604397984212762068827152232066468000490570655633265680827504877423114302009062739751804226631060722595990066599003082396418693078529816044067056330615960233891158947310218645008979084680007196398845087081954030322804882052118811014252434122316513318504258522429849822345431513544871376305688309263012201828063128430965730688721121656559177968193852673542458699424013068799038449566593153013778022686918951529710354108004717563700353924332865236925790415493045424753944966925650660093521998069347585012398982678995677176624917745662249984652361196076709474020711152790890437678106493064411720086870511906935341985806748980365138150171565362793837895025780258367033676199003071982516349409634751366495173189023178420671251422707466597326836706050561291467857644065068104065506756579787709095230119522114032715288334115641326512364705322473155519692772855824988606406559302880208108644493454125310342961148997833394975509836418034929350635453714084438795554268790529597501871442014920010733964327813938424778899435436483512973211696033975841699424554089504292363913127374530014375113540201416001691441623520343328633748449654406692353129865719487504252512941604883100024190148132276338902446441549856501258729281220037136905505105743200362851892625980224380710295710713144262377061663109072437432414677431400665963537976129267024713453454415021445711291479789860122345921952601376127947215217134884732193795383288396721411628507423828022024381227132072905943036711851477979551173806761804483915938203766454820566706213139784921821097339553171653775905524971473709078711773110469243196347839422186333378348545736347023365924201401807863515613339593019412081242662280562913679800381658133839069085490926332862636316258843923083252246472900451716060033418995353476512270681141401105075065465315004071256494461922346806085022946367560462671203120839538191748991008675820996148758475360532941738176103300546637414380386358394628390486582902077462876256913592780583536083199208492624161443110452832872378193394916498432053552958352101909990793703396439129846635671839988359697911524058328081116813913950694124524050204464488961428067704273579908225617219800382042090311835896319667066718114833867225110671390060185449483325769013032635888514123556925262497956236660191056016345214439563694116502351225497675720440523257066379948398125049885849901057733426552955661828088526443618268844653418199047066889064617069146116067455751091915837920862802188484972210259353972805784443518042757184339558057034368329915721346996504484212216501360612697478389107409641533892187786971140096397675070988544470509526650820878503156570856901749232087316605050062339853293799449588767285023473684465221419158889578304632779926930340212448435963160148727507443347153347397455129095334888823291965522794922248865874352254400856408275796598167527976183144301355922091197020473102361907219358081743590810222411594437846720043860597214740273581702336812964390650432198885483277099122878448506364898602179874876842568593761919624063256213301522157069801908200499801572141493415892268542594874107875243920043941746787726524262574013070439844794816038467247761820738312316154758868889991918600152461092935419337449981676100159301494446534566425839641111905393399681713119100604713850728872158903956348437679197653588232850260555135762985752872882229407120057922008228748469395685517346967575156271915244442843109910340619131030993035467216280220501153397418083588847009003415452209842623552718730942709769530949292307155472232649061002468454662505424591220354210466175363276653863919247084175517434220077951309289108695675499583188342845637764478863032105193385390661515366626619358589920981093028613687307819366230773369846392614525604001292979300521447824274290843618735568383004501391042814082476991517616489610835491293112361518020689268396924455656613832841498985204283189129239519410118710825494121997730702487101737768861984125693402281813756868436922129615931824485568511335010072899324172325015101084286897049968820165767142576548535940197725889313587161009187477662730967817871085540123221368131886788778523911668276622373469294775356769679961948402145792286868532627557277136444075515713092046782961170396120004954821684062751252865743848565413897610803471541654264330379735724340319817564804304144217145738600903143097416965385626717783047355965031070965862966577413533054179257003026190260552234305430249992760926413935872055561403600118565952228693996101625999626039646324478194505376562544566749417181779363295746931024512652289843846620861648156243194657248090714031490538813263063731139241411015698709935311200095275888758288496832929028193536834635693964669305537516297507057668887818556290288323599080851413477972993055534661852615480788361860002986990330496932321373594225781965504892742646856759801109887916080132470421344641213365874293027977693183819023985039291368012526709085367516786212282826858090922889197906786544233600165504494357907127946040226576694837018379169134372880260661099081770110874269660344096749899600460515155891273661295920608049369393932933753054822899775985495938062228282149848310826356770315439513823715484004298439419827022613464895403703007201651218941770940015479721564282131753965994432799479031560274033392762945653252015671986755665534659143461289213649208643273297556709319038411450720930150132615698489622540717889106925459993026538729888228252573987708613131394223962030544005312381103271013916768803797462649345656023538448018975416855705652172751746314490348347172453356401948063376739666941209734933541536472202726748014874894310711778019840415308537304700043782187145443212731590526371681469971877330742275191858313982035631752629128897744601913656765988535005493520414783655720831092994305541274371686882602947263391636653312662901501559939379436489444648979315306241244206210666332147117330157446730690492261518166734229429015147283737310320411634909135281426501179041058662372029157650191748032307963804248645160998306174762047898616297947068178286657906382413368273147825316370606597441212440920051737230470014520281990489003354695329891818090651327365969944507280724048356705136447522856950816303044213853943574344088836398832383529041050840191044456747860233385806271742668967045443700502734570930625354030246779296483447905477540058915700963233533143112211341177488969435363263754556790578591959895647244854881709203621241319185226395788977038030659184561416286380971499591913306275881538163379359941506717930221875814687663839923987730777711768185173304404852425955859484560456076748017163048418887807145299067049138695155289868456016503832103112305425881343818257356177451898389348228247343812698198367983797938777450893667173091413220988889385125188522732674876356598148102005880020271729868538444157057850646409198908772052578191779918947210952702473490490428039206202993880212220458563141113549118817028145664648720384973250667633505925647251473544517223063502563859200338608619720254954965374101043952166602592028124967047220807830471087928365382675473883527180442001376573622880846487987823847968866294640303774398775601680473214399453442742006587077689909159921621950717828252883699779043686838324804546254012328720758810899376860576782192201781910548904878079909072460815356352845791480298484848437864636851300316005531970029736038242553330048455440513345642733052567024124364508338294323671477157583316413845585754370106866468722940745587422337498298208297221904959196075415615231646709518753739933899102046245118419665143771595756004201305203442422288091696308101869052018524453536275539626175435800098054398682164563007075404351475587925842152498692975129437637158873899036525281765308640996266935289979360800538665230368233288970074750754398249996642771891643237863167875974283277307420907684418118787082420601372068841578947272817430627554088502546705981675765971422057174324358023232048093883334466097325080877818538949881187100663618699399835317335716407093237935506100811912114877338555019023968925533384103788171666828994912886867809152031575310929686307644285275696740892811134974907263754620326348805697293059986109529191159272804617205141797320187337810650428759440215740966530788740685104759029239627388888859062329032703349805520101930634157203294871165180184838545014531040117733770232354680325928358240866707124937783107804278732722428644557818395443500010822519149264284331194108595377017791211983670299850952309015154958669493358514687920448196377323605611244486830510342173543904320684732335010868567607186515772516398372540110871497697876834273337662545815200479939251499966921451610733519735178261620891025880195779691173029201390494519975441670956499954391548012534050656720151661518330847351265798171794408503020215810535772098093359329762602280532173392254877880950937169790057421965001484828769175394462683186402740999109597956328313882213841022832307039268696234020346258030440419703872343405224746019514666097741733755422428023519937492649783464041021352221325301138714028667460983292108908253152801668509343383839064925246264249934821660162138917572889698654564347414804347453173596084476421891293605696021023698459284787015552123106236054532477027010354673429993821996999800690289963878251341852748728010709757755865163014205606969974618597858736221747984075201206013429776089585228911408516685142161179744045452101225623964627401441451480571729952566507372034765845044207628085998824402754287149982969609454924616629802097909848427823750691840308146737523651315644596933599365706244065903343900199417492793757861894519503802931224722776570893558894142612545778292159496987289423728731083033378604061064572554072027634865429876898268523482012031047853879695951696321192721943254083535573211451994870759415918706679384938748906235496746891150582110180167451782421872462346951279739224418825861294071928932854117557148021255806814495500207599756003650681811377007953345967300000612008318477727653231964806346659490266416931263265467565781685785066945682412666398076615269512692815902370748667617715220424075551145328914441975495896796790545892039847326432603507387284255742668132149974946610023704344723481097134659585030649439809278403262640391132330339645594938887965377264673240020225211949015579310890348865861914722728703288517188920256619463140819574552116623780233968411944664728854954887195030920533406111632463390383935584961743855754532376966962018866783172439398851665494081669713253633122113816115661770313576449834376226177447097216475319147774948108094980178023724101738570214788031014968664105271686802095372037732440375013106069662337690394887662854553747304151149439023239806998519155446639181290790941922359649532695980476528517273909495748700018546689241677376048251988198752017130563062844226585090893706227256889037376996059910759354942631175553453764823047540016059936364518908420202307422863176613406881799740457634197388041724934414432712071672269163228486759751434277722791405382215200187081173079294113860169588409135408519572497796404338693046502284070647260610533295456943405824083642762929793919865266897224559952202440833586413748357585170068931770178210126800777126993009045462557969900307640804627358178549123269560290703800134219825822394262237442459731012028735716082191816233897380111233189400079390725837632061732624516121558369717869872205224880162525239177143290014572016113727082414821450242084954989346849297838750604449039803191959396074498918631798062909697390790351806567108176552601895640498310011742661442675433322494263063807346826043222951890614981985731526886161266668317024452757485296677511998762287390456447516788045825100419683810232088402402688443640855339519596285761426572410903402845890851663622868023831118864449978794412704131495739878385565293882915837276080002861141871643732132547020878306518162518600993571432308075470860948344107268930158448166802538541291271542083150909159460348604679592663643746775912831355386257884537888704432191332955260325988317363734698687124038813741905519356664749615134054870831830687873284820534513755653331346002677616367731690574425038573112059238643016815907585494132063464701585149051322867962448541272087684943945262599198133686423570299349467832981186769740947149525867249797999495415711649740305691844988024338094656123910907799123472438615665114140313314782884666702124910166127040334556769988319179610597411931627289875534442441636280727371583908589874367301390184751768346569410188773050170935884157242846296834973967188050794175437692766791810521561366172982388815724070561055549342131500082518071231794130916685928115272070315118905996999493073637680435153007244552630076670849850585990525022167962124939225287017946477082299953725942152051372976521062267299895230448184799142788918140873512502470228851784169425922669838237507506039093607578814830090023473101085599644027738190870816871400868324159087215375107621092640147048565954251567588646972149766270726623679337566120472530559061232370236491787395389034123652595190756199913081256161430483482076125838585876971426126789713015017791698243022968590755364303148476553388983107759494590386634250773152781471425167175824603209860649693156462596364841568219949814669689860830196994296307511392658277322965488929230332158873017869354954202524325231911313090926902645313535287651678980306634167587970169828790653758014182831377999391265546854984716348374440443734013296178518788987809513419735862037550396737613907362890883288672549387424153103774198522610321025719956155893518875423339726287328486914664652233775494854190696544151275519827944015538302863194314179393263333557457605587063143889692502256056484123721330060536472921643788931722650135767447046520674481661469281568512700331387214740024842922847832628987526723124816856251388914855747038775395364065453346024485276165602140101156627575156355604233064940209147458755110697358931780540090298979649812470565316806113733572706587749647076138559455734372079593417211581282910036725359664915744494693960608092857218790088536921213960626362348518265458777262132220196502369252854803097108856056535974289549978919300360294965553425101782640014258599944706603406482676170761234218499450648738223500816028512698479186781807989160489451629274631375031573203169659561272168624221247109829399765029519224266809008515762043164106494038768692858113523089433698113915727116847854663235619228979431804706526347185978235276710504995884226756888735429624110872056511129033304006767852848369186417531034546218644398293103535747407022781040674106551815754150827162625067926051091367853407822415908443249466761273145942237829286636995169489931368134450093676338075044605240487289244623718696324819692982777582512665505301558636688163917390081713132235116232419527495487068596441548350907522540510448531829082498600567893938918180636603161115046953750099067589220863536595495271122058752417628619263204963271527837502732165710687019298085099053952100482406321311307805936100828579277474292519730283035374238639951131942832801617358386586145317010968393866441427570943694292161464255770231641763343139393573580412614215392919642064248173793348482630768847311384249574675937875528395114559915642051541300787278705888564465832581211075766045862045690345965725708420286376936702144284578853502788116013984302539256365538630979838169903215473551901624683910680365316619495559636963189263459315202595478089669511260731653490195992459525179543545658061702438808172795136813861013768636888750527856708602426397578039573170713703078572897846221206398054363733836367789668217922918533922805402038087138281175131924655022944125092089583791241887469440341560150385732199942121674679808269721697415513321431560395789588010595292238875848111327481096689015387501370496375390840923958938049172057663610135702380061917594020288376603905910038310586534139182120643490483540209520287150769377584756533129516537801920208893492111423945101197662119601485171566873570733230229680193228305400573796279300266622722221136092841806727082620057677581721970342971592578008797050549622910810281715684062469886648400172756733293929395801371377369370290508823367187902121487605976289352100022680855126793640689938768222378104375329072858833635249450628337374923070912034087770302544512184213237719665053430989351007800749171150774407259874815358192614997883918226360496676396889018642404528488826417781602229290879299382939745640483034366534794578698303846106445548456036409206759877259727475909326292603632907020355263907631307835751816867423002731637027577447159024633678418651673888400870966126499162727737105161584055278996727137472342166888473687468362867120028558565963645204885749342375867598247986163039199770343317405629171997529095564430254091823000362834058722930700293435596165557649142450133819582343251177204111000192633404610754266976601277399351467183841653733744538198727910120155190309582085680617998573946711244143992737674409700832093949846769898759298312056195416482465297342543385032467188835622297354303066974486509980133591425678597020346310225185117704259725517683637737060457756577040742933115139437124092463629958988970293071709739164196466449696352474500017054411989412087821705510721819770694668114285803347108905353007625377309579411238912067167436820556555389092052211764197452230899894983472120702040690637164729541965804835022690251217725738560419899530937885683390647910711764195620978966865249382511714457829734664671673394627672789455097341105580121108433701557874304680150711915893979270335961144829942578686584159765614991765252969080194645859093788663215896433652757661705270047587039931975524740080960469589779857714856422336683957749321296882415022511726122936481790338161745403527149054971995104626724069312402234133293331807254914733427606365804839825549586581893833188419297870098204805518177983127205717435401280840377789027876649062591263886273915648831914988091399458698890321666078310162525757244409509655130304515860889870352025622216011675691945870550325271906091202586704161903893091479715841067152263328677467591953392901892636901127073568963053955603363701615275775004912196884321299483890283392407836285513615172991308831977167930535842203353054914504090870960462473104334411807967592368334532129587829722578214439193875412549644649077340947960849789251984417845475994884202872447666956312747021016107258708126303643934582171605577320415016966566391127814543607970256516733215898001753253828719285600260708472606043167745827877294318057318600089920607991061357899121066593230302317580132254236589937004795765088023749719787582340513555019742462961907836968508153192444672124547958914764478526564113021096257372522013746692355303700381086753073964426026394407806434503470568434709704354325780925398002743990513047175223435815291189801638457477602608780720144794473702107098197134975918311790863189379903588620930682841510276764896043370346389574243732082791942197695522751123770541356860337439119822323944397059410236251465428487587286098643838490906952633468538972016448192544168079139969654496651448194324459846149054943135860590310270854573771979331282431174812896312524606496527892702727537318645009829646803790862321532645823903401196135429526805166447588077677438565416157062017294911576768095707444587011425323153163541449460906036137534461424498422840414314082446833746596188277620935805451763160287020850132752018981959421532627355332708297566795205117259985959762024645332108127799878495078457919255145395448477640381972241044284835147259187865848939535246819833425449354367625485773359150280806454616926504053147990094433637399355919533587974662347137447200153657909471561226834073857005465653173357689369148883447271235492240708379891808500715085691488730917360899494182799812061473815858791139903891725909550009660263152479742040213855265560837461835954630968102600974588584182416074971455899354039849316898692346368930427444546355706588339144838333586202649903448655980698556148964638426565877651975267296863191338058556784854504951286341477138191124802541422660827460630008940508629182594987806469420266957192038648421775983142357175711254135308947490941854815326437860946372834668575179069132849089751636157383506585334504594518313606043098984800418030229061335390589592279713837936718722276594056416390857946204843532330274930448819534761940422123844503068018703351830930513522274330435562583663222186625214936013145066798060049916410207431207273052869330160734656178862332037948792261943218556419736975871500279896646532620674466981430237308668527890389105129607799214745868152704267148205120473062026552795182960072195767891514209992306456844071873868023506509227527731334846500512210118520475332565313491356933872865854300932239450472287488950881014031015259006713639158810981013837046594290794483294325851052243447760232085056459863060126126419576965119388608086466688848768709029678509841739915896708926527393392130219748155831882315328492536068501724885809469145591078503438839458896249349042556445711381646848100224542487619711283066175270463541454325690295989787662948800760336130053791952658625372778849408461099286650098313916885395926068088372911723413121141304781702100811859998204650145088457242287196769238714210724949564413043503748538863696427131345005922677784477323468516331283388984264854598567452376871301140741032871466814664556211892347309855208270571677061288237147265124695182255590306678990442552821208920275143022097186545002835697729839134261921206832792458450876619466168708013427311462459106985320101455926192068741962338331997484902280359319979608850025676766929783868642649647406650979742360677223105422729454012620609139580800814034888764592366783826886491910989607513921190523031049418345308153393477969364069098465711875612345684814140165475302111783211850812369644497236562759543602779144062344575041670490283338731801818633514035524490384314518621125152169895353709749076068776025549399056558725243145842024036726460616610161305880545353821913395532576451090425438011942965206908036244631076739720877081049641847534830355394679387140859200157706439910325516759006597369229164385043363297149738252148827414236259431386248278399670762838121871351282498360976438271958886654744801167017950805347491198558297494177721434684392504275827521264466595227624769699721270360012102845386050247193660277433655025973907337196254674683144886925608530822001628112223375310512703288020073514671365455117784388548161935269355609828760767985718521530001096364569254683072598327364524432322315436703659274573900757125635454549029855414442328786090679076923253277654350702861089601278847621159012072826493015013957156276894140326870940649656438242833275040967400161358801383393106885041879550906461436150317954370937286737922518169437666209992508676211784155788263843010730462985770470777296662840207884084166976975268325720262664485902356629221153718688748767993850474198430472508694641418168050146528379840090966881098661832956071360816546255688251714913639527198945774598327552946069105876709443584277181978960651003332881977410505001995605751531999334821416541724466522730618884455008409814724394404525081628836868543254290552574371025796947303239692098566782555112019430141446088146467141138688946043853981471531044959799632384602092711338356527926831549345283697914528899922033118258873686921218623128767492635581195763614706076218611507315748027384577092728378957993558125054320232423606418289500507647497610233715964240086431397008937189742751379548916872118512792285708347470594531360147765979841824754620111590852664068407639090320524895265863868754647675381030231291344771308728761282998882436665168283907700041493377175706628279772824245191168241300926989504161381121153062081010139747195933650304981371832346382929206974417150442047734199773161337515335474882746140321121119522722811296266665683302475579645656254746664120585381979041065540048981441736484049208204855197247871593723244605350890058702394468176687062106905211353358432521310459539390839108542870343603753098702620037209371861455394848120932190666591661745107773337155586034752890671553127054562472592819188284951540642077416735072050438461424516271834553492976832918721763908716668813567137936943401498121604909557490132490804950382838815006618748204579344536591765516917834768764824813243631999048820425650339294894640936813824663254257632464946089676438321941821760718550611406347339165638364421305539381730242818221003008698217325825412940837035901690206698735339630553659983124510946059642073448397078991191454932922690659217025767009194691789597845098265711116604423103501516119241437396688188938495168285958424863406220125627371999760726049904729337336210147117351783256292673197581429416843368825045610245471384314879408748083514480760400679073030875617007865155423596995907091164763788130443565291525094608329715951489058106315203015825469200384877514390448843997375011129979193100115373035820445458454674384912934099230597936740774896293370505296659135336761011895348972438261924041872975388009619124534303835783252985838402696543184966266488958340084360386159292877433697803682712384288248500801229261367998813390413610012884093568288851828095068487522323764818905195362275851834981416436606438732102201326847653662131021627447971587567549899022627790855718170112167392274915939366782400538925595879043150993688573885799398546962418338628205301499382975693655736058452184914898980920780623711756924349652399870416415065196806255952897454834177533865645398031116230904890784817514663366733229298818997009313917678946067312153033458272548684973535101744184447607376789588331701374801420683425025925795854925838885031989099564754760237143410557040670942998129661403141709393279361688453793685839856191200710120757425695562911480841622976936860415449340370543876915270250577882980323840433703544710120645798996372505891405672775778137571283125629344799521016671005659792885130458481618927285930197710402182223810852572206543555750637946376047659695106238927268205529116323715415897605376636466840039145702979067997131253603349101623190173910638652495645998309671646148731462658231116608388065895799718115920803956943332499766778259896309923273882229456742545036325379080323270424000837868329358117549310306618899475495027470844841293605404342605964590807194411101418398253600040202174317410168886231314270449209562045192970974820245437895285987546297202640460567672833662131353781175932003226508558585584106597797813452750186433098234997710925526559259162660571980341103404663758110891869698056686394787169321971809273667376545659269450474949428291295726944795694873546355554204838452887482485412080630773560500935080303493214304805812431588409051756708286661272111216720736727402098502169525078089649825531141322114176561061641256338592698279039692857449900922790973180203530815201686849287325833379003662065394828145804709080430128858915817143414022817153082000144894422200681074657130356119414132560140474572571972794654122766591325830925376106528141998080534032323424929719396380086030985319130754056327732130127414065619283539432680734563432779244367078477028161736120784475167626975080961074649742206428221617344321872934164803279477181526543227468370220270059703301436664721540586732160479305287789501584958045055562844561641149196131092031172122149565073297608913118143358687678844799090155858453897313678337527777502517292253366014133024658281079349230686184345933000046610777509084493778194872240396779325737152612387157313439065787464708142723178382242982604538797102432903934780075383210102345287333781069463074721627754333732726301498976576351766215673604611306928598211595157485383240226030693764914560708474251399487963508692041800721180046219568908212116365436369177282738937659733848965352758018620789823622918573375342828324157267740438248297560260075763010296668039345597409381112797764409335795183070949984626123703787638361928230407481539460859079557840903326709133941305600459502588295944305866536899242192620539578643537776634778680900597303075792556334889055133453165738820783919908886077955528182868001134259003238374278784965801308197518993701653990734130522512757695006967995061405204090365202103530728113376754304160299317705532666943195386978556122400710178168161051779116355381372682247892089407209509637514148286539130172259138168023158366200851070574093651733913327497434917284914437257803786224485915045920959971993718808192994897635768508048980315181068499570093583229306583686704095700854052867026612498546141430234510870925933519133554040421937605375312418530865466071633292744010525325070371892659059645521049789464904214316879353856445367428469140453195932139084927465320161289831744803375879803062455700437023050439104419489623032386008488578697850657213257915512106085152945230993196915071577558837019336701918363667625476045223367443902852465762514662063007609566901071699077640315811978887167741706258557647501224812560687349043086913988858824710375305240099596925718719863319179355262099136915139200780666066768361736645863253987144652789987720932083908324854066118513705990642994947681223840787852870868335672358587237342827911312794841637576112763561540618295148269753750936371619871627191116903457844810528094920821696686059754455488191881802418581950194115380766636977281315192844724128273473205611868133898409059810864906752424205254274113050897197153539331712683409505336712478189137344795244740950416314147157330686905550228554323428841069093452975227246454722230165370109231047808915849648743030070548981018946068048234180815695723329996706140227305084243607103943361951758964422023050479785973671789143889199898864975267366484062774808304430972757501120098908090006194209806841404382205428052691878349268817602442831696022730026082778716830206204567933302193482642912312664729422829294325085227276304402089411566053992922825757107661918732846131086115674830344039607178944346585369054800100149235225931730729527710506443629663616657695685722411394404636071937498791280543476591105826695451791448256642739027159755746218501688403963796697085721990478960128987239380891972213998576103411647199347902625584683400121936418480387452701373266938381013982521554456530702207862745379377771924688955528211922166225956095251907360318569636205532779082201145847831332175722937236231424760699486022132570688756027569986421021531596673055986907650266756287073556920499172581389650343453926350079022922529018163039899146172741970057919446155495860299940032536293170685977502220407228067881383889448136453390284961080684605857902447656048834648250375462879218397727376034221670044116165441575407496749326840354218376245374249297933105291346623292158387921768337304955790785316140933556740755785262200446282633542520009819700983244091590369874207109980595837705398159679571124203860471614676712751687281937926593795340470080782061382525378461072421014529005683855651146249049603973903964605664791340178757432693078069318943485578710514454331680774332060570744443562643045985602782674824766908874659184326138512448601695836901509333443695619809892532960154665781010297964058070502481254735844712475937355189839959227508744278549297069117599434128252949720489248535413809736636626599437788526293231772404161476935365496506936126267061411396677323495244974393274786011199098031836880253455828198569847145154944692899358616243751789324640359527023092749195773384484979637286367697946119278777432532202747886232474576262081936111640939516839703889735545640345045963222675372530251976572643320304100885951497706519368605159318633826577692365409346546919039605917031604813339214604624595573556400818389413839805221973918718486640596573048316364614662577130570154844394609359683325483025294976206187350946046429378292076292001506574032391205420621423559371359497827599986675860332014086219995518073005252968243740441783423689964115717056491722267709419169457901788229439961191005447190125283436424851856172084046438642647758253983582503940330110578643647707180956821945514392466150255316842916290388593269274897847145129593191393014305304102595590536787287407546577968722119918012761132965099229682509206919941787730371414547487034453879947302540008235617478594227024039690895829323051486946540514009794674823017185711144181404321815292394740544042691458582428820562848363865550781236961657725743502964931753385464484373440588159598679522991320110338346764121338165301619074070537036609218958602277658127402045683743656180883891239393711098661888016193081985173125579857972953714062810909743091070850137693462821267120600600116906758520310061909148787910768823919727660475714166003663892917145352534770931406205860714550616274423406087734006578168080069501864528661324693716958819321640322056484539899033513805711488601237289180459094681497757466138254905588307435373788944161278550229951090645481609265587380677722323181620132365958167176916478732355999976421448762448051499387941326805929242809869227585480632608178543266601098969048564655229355836405408662554126892284624934999954984340999933681053735638744493966442465036339942003402178001489394213593207103002246277004731904543799554783744591818825585530477799793499759797139618925289802098277117289920508656297744740931986108865752408972912017478405191295301257699938325570926338546103138136817464741739116380345473170060420951327903030709727884606794746367855918792468275359021651233612754608151294565363573131843906381981130242362361920964027278278751109788382574576899908244384346768328293949877183811600182483351092215163087260853786600155885606392875134835354623511466440516955740269371645066512474432774372167509440121489283929502962108225753088805827491695549366300588113079068052230026437434516045547469644349867930101155663649676011388616924872038361757176755551073390185106674195988777539145857943883589548968927630743266721602555018097351485855702275159464054980273257997140199607614103484358446895483857460895890768383657432834541660011358176401094644139060025838734598816775755214471695489592972937775778935534152594256630025358942594543438532528819002746350362250931564157659199438943894696635282900818996844068457908756264388359391962445627243408950787874629415792903594818767605895804390717738929232802344303117994476113215602669280398600633092790283800529840058261095616505985078451098498414760447172306717057884174443934024516408848405373745496580210573032682211132573512349650172377541816060896807315990285164360088629965801759437756074722115769142365570866387273422002700156796121756077232193227518521204659027906815402875545487352020441986348641242415211711360383754398951773149146058628713075701438013530785993087024929448812797670049140425168292329087731239200715675678091180330902526842775287959807407689210119151743146117940239988761284577917603132462180469433193270957451646082053928753705208869365355084616398654015679417633904289976273088295168220376156563238570388410031171536682682673590569755198242372767121798313748541557196260427667872843464826977151878899450297563592796010250495917931523289174085589809701755841867553188680415682397308143512028467624817353334557713091347716854343241613078916323385128262021754872874325747037560149642402277847534065086988658617849708079585413258726271427876619436173932112594650158143051928334017496495747557157612232271687121115442615600496185395111749992388865936536782739844386549867531494351703862884082190351897208402262712267820659930020753463637095132874731867448027871758894963964795693406555014540954247136933076097271239330858219790293133518364001555085814049864881881387693684991416240115899258215729164348094614958043792934913435746648618543608460765655741758427274118034334237141044657689603378332110113314803415653449958226360378558962762095204683202017963864561236304989381888062244028012238338351058410537735114179003651130696094163258073647449044763595493547376030081719912121290789630221211547482968170058649700256817506064958679349007988615618465039043823050229816281209509202740107682204512170557823577319927325923307282759482640076586038801053816597653616468701254118356985583112564395587493008624336567977778266730277436642656974107081005447009291251234282025557910975023415674464782942811779840037750103564047043819746601819358696074460896150507402607842304349705718813207017123489483701398260611857292699054665932437845120818252322193441953983395275678740897164115054487303130870527072868516178835337583635718149647091418863045019189147890434330778300202492418119640461574707491346653511615175833004271521519974424184983937153886093800431206812690174513070391828919624386553818656620307606690067992799191734087584456010602839222496900665197340236851327532455607316776399135319140757023015562807487288484791792300486796224050230800928025022535351993846650399712357917983416198915636594510843841870317359302622339777721804672240413975190441805008849934225028446974153149215555837983593285178118008615088775087945100753809125461126366442090782076758154115307375928438628194269322342736216717288041795417599140282399093699227126455721645508797735600008677666256465782587927010569811822241682973549031634236928796994066138693003788820750935398280668179134892009008012143085765653883530665970362134359671289882681856159797680766578724396592877831140618668571262892470594245526799903281620375499667524487408769777490131232442854390916783811613883980438940656152521796998270472532969007562167987065987539057377524931762904342808059695692321894033077921977038128338043282314395597851405355864056159764506537487139935298837913768004061717083275202254505561168140148626803497755338386799499358355568428304367654076768684810613498090047617308838857706680960404546464511509398253573331952511577312335733723543412215628931319126089885287655734425883618150151542292159327917849873657096588429563482757743146618276379247805069886235836755513228223747133713266752202987249722771597024133112419055695386089607632109254635103240197908242664059032928039450127543439074487513445515933628983763819201521126831717294783396787711781454761398019624369408476861960898148739064962554939736166538056261602716069649947747195774819800184984383456565930449290126619738679216816634330122125468862997239569271063420565153847379955885095292799364460840643123812493845898054180812249188801000079864173309672629521863924138207859401358465531736212083648867093804073738183933029049698821126636626811677156444353334346050176856303197766493905512048833436825623495042009785557723379610325240679676288140145756650758123583107421713964164264244743470287431191859126982615317646590126442376499740911563628205470984086530613968773739221182029301078102497702320833409459497964004418698865131007181615558424785730277935830850564506518777711115343917917615934812271997298429670265858490524008317883598228300098997220522724453874246917217220964905349750723001679191070186068671562319237078491239434534179637998358463518942739970670178151327748428213101067003579771174918795603347854502814475205690491657468144627032679995494482134553307713986399962107723971802951634301227744086966971887274912012344739761347940713881328106685084948307797281202911249583681914897967813471865692783301307118354402327373990005483955755177831397905526675793144603275982554744623692564571586715565725304973089934921943624529558012872801460747947443925229607830683700649100085454734963478232250140064736734496899944544552464290324798933171426565322914586409513847447559168320147706653767118811655765501777699818160768267192211232745520245754071391977698459188567871562376493387936315229495334867241319067058082942435881432168121683223842082890978006660065708418221960366871908180725672156201148873771658005797308804803544974604325495563768246215690679773428595764333548406622081203341039178842588533069360817575516038858769932625548137907895783613753082458056005039387208658853465839019509210191742504421467904955445456828309597267226957647041771803369862638111425666469486777561108717040078321446150358019535677720544961248993304458544174983370249848484415407131312705665030149311164010582474303626630769901346649546327226507648868557992610587862794023303634389232768920154005850673804221082320916501738276117931374670932510910555663774813906403405153765321534462198399619781793897034233005487835965045311719786377636167861538994685258963535426087186668399639225920126022525308720237461495128284814933528327896249076785412387401536877484452267206688003317086198422874395357973665428522041909587667245407790064441614472867459734890939788368357759655602954852651020676107167854465685810503851572602419589816128691296765873461807304467702721853152207077415135351392163953647551278920458722229437546672275764134532983024552417969755559367831520096143800348895821594553000092223993794771604675093388097151212920918802410647174245022921869053250318972841312997836502980443874084690495689773355726685268668588460297695698949821025894711093898258596351637611042773908218396773220057780131611392825208081528954699954113313778314471305196711329901625891939458441151797053148751542292924181290817774919317304534908554593943825560539998695443699188887857337599383357192659737387855429857108868985119189747164523197058241124527947356198914583066319145087988855301764519447129151562218083952199706587866927746788247152487180584947721658781000122174615902902856955856618418864970549442239135303487204614927486550508478046250806009152546663446942967660522813420455675800842529930528414485547454819172093441359538893256047893654922097367854839175154566168389794846317942019390251139661238753678001706041960384016846911418613947544912305019287909405760341434548377540584452194011957731507144652154740197584541927054282023782928363391273548961608540449065974160251175652677905844187313329966483524750592316312099596009219533782325167782802013952506335454665474953216790474546311156075847568339539839272967614179937507145314526545537320722465387363712193178101039113114666309703554209571472889715505252796712329716294505474133772608672420119355230032173274912761343697224997752523477619258730994099917601027391475996133564498002242221805467399178219245517010477515970987496194569833868262807791031437725726196739653527780007643060241077050716520278668609231923403673692011841973129758987815914614498140451166031463590386217453415821966713708797883443900942866457349776691370168785779570913390572701811542077719873401719145142442417636026892881470790374467799550164531529429684098409641457834066537525779901209316928501858601574432933937226542709137664406428515332315321554934162641315081734637071022933872028057981901815292151938835746789223592268569148748578132967267642858609553422072665894548793167348133086091537761088480288941703436913721954062040077086602326293021122932165369480744190071555430474598350181843715440039633256944034045082542157693685467717996998962600375577942793101742643264233162637963200071261802032754681846699516731611801483491104197269399340011663203899879383495266784834355030313300361953710909524065821175537903616051078228820342357750699917656615196478814633627082822053500068261713582961974054254615670565820708905251574577786656464197916188678503634789394137286281306630034591527554516070153329209647360244463258297139979692035914659849774057287276840987270475659352568768980486774824846951661775444707955282410223503167882250960732313042802250416635344228070278883632865907470765603673687177385697884726256422469967773225188773180069291110722885027788385797266694408653373640053063228100638957379550055143873400759667121757905680635343680505250717120017836354090193530091370038148040420263678301411406841970429565738603107536011172334446844928875322360138536274974489865174775855111453776884360053769141111030547166580377926494210592292865511179862487489786122319894969173625715304149074943735162934451933365203349621076225981105469573052818521749214018422785388565427010252704865997896210158874041342851807114216234848194357966673489651827162331336945435387053424766413797348923968990203334013527884223296615127998005723489085447783447555171228409250959932191822077382807168381226715414867367770030964460039018868755418137272686747749449592777767382742677956455529153309111057736840467559776092120577913669801265100376520019155711101194591522350167066042223058262206830436541130994778702291114065291380498759986857380539710189473108847121376793041624032431177908929493770045101934231430948581069752033935491374487431082352323732432085822765861449164375763540903887967026392896132095038428798476350179760687397160482246438460125070709967569526650482113394825647303423029144341950822904799176571318174264517058250266588847495006183760661691460556326733360600378452139553433441839595532679659386629398303954173742071761941008265010286474391380159966639826504481189547376885977229812991048561401359590528163185490381016911056599210679834158240432436825088643981223222072280584387180770843039153975932038789805616293380312497425494546130099612826016450968618871133862839290324326734433620490071945995724595465944369228245003982150903516676110499427485643908955726398025517216407665136237119134397477496884780444795263894475149901214709940924815630060024544737313530552314850195319224827813739894757071435202996995263146268371947098271696287864592070841643307148820898931858943229073041572076734743271149166462536917787798961537189710491832393020905665835934705266179293294991725493964749179226561813193672333870401563496843544309052544557233434443980330495660718787582966238459651971889343426101602450518758048909003510892154946245351398510862687154010180747963382348531200365622533301250818781230175313788173591151518605384939731905561553874120082115307576682926002262582155238938903895656124326989654848841898678672790354966153494408825967451813365365430983806538681948530467856977177833949309493242788562052719782267523071921708981928316540452402976534205464413247557353240721902288789520913687672638750021195489580318744362546776216798853854608118111242917215176401427647000582921124792949749300414358573637168294799810262746724106603536617278888567580347312524260622906090342283315485975251147214031728707120526344513177715684303254000720068747257702537066305478611298501435083327469047607993666967564845006133639566889001991949647004875238779505121773471108668837939998499398161599387980058422308516381748919706734665256218170863395786017476155516251830382899591489182442964283850665796304128463571989099721174806866981018450870397119604947615851851044239847304420241232435136250638992575026577662017922775249604175951990314650135728340122121307107164018569643474289041230019460378752701236483087992992929584626467297776381553882706834900346237339162582018644308510995926105511758662712607908280280856779570085124288907919821510408345007094483824169056942235986502437408260275371137622098815095035272947986327850195661069304103246744726155746740050502086063539264884399299144658958575101860452090960630605401470934271701174363608769752210532160841288507548139688320882107800708964099470685262154520568113288694276577178732627657038537360193549878604380516095419904650056461858368869618703026701377975267225967061096530897193771135495510846834121577511661037694276143004261735951253385684179317973099495903702419788623901591265953486869363079438800037892764468491822291891413546291419684908049884629080665792895810078087988044509656240043663551800881548729785094705885409506319967671886196405507248862696685198674603877934588796624245231989707626459274382930375309016869453366139729170429395339664801632783089047162331221890569823812932615016675171696456082528439593953219168450475371683120374394883151728271099495683381954390231124527392284735726676350556941141533018538203482627943409380952530945324089380478741834695042083755276476326872059996097159399965077039752587320110579142291382371212648599724892311931300352037244142998516303664097984828742153631063117329634823550805147932124638017782326355808296575489590616915091289659698038372979234757319034936290896703418082388091786169860348195027989596457131879980432802942979446450230368274434006282017177271348811183956154872262278132694143867291500744649539925327628110812196576510092643106825636273951784084949810047244692315828073670261823794915031111788558608591466037097553680326054751752705083866755734772840209509022832584323370396121685755614889848795985159774628658609835258306516157421628810217925267036356579462171036300432133398668693739771782997474500785018619570993380979886540472009680617717158996534327468185645569712352187432436808895170925845049170709039851468192583516849372473012258078445787238710872839735231110685272768686971024381961820029900277248576841865815025750726377725273609013753896554063712771425475404948548009388770296358164357798757592771202911897224912181833291014726302987272406441176902942440680937338078918511105365845314624768419590920864316429913958280023123603565233686774211903616951351083252426579699220029736126339866824774491678258112004887586341561190324951220952867607442763826954116540849835502864397685493273953331557584964316242320478465251556578966680226886363476223407589974001827483286182498449045627877424969405496958801921052026685841732691827338400022014021681817001628877367281086944413731616002640497945361848776342458949487276459359751942709271815039581969167982976783462017880851968231589575667305556338958191254398693383161514700380665002674606588725525426207117878835480955795389459198793035258361885623316350987736862519917699315857248166701856326026892521389420912993626437214055694335941526368130547003669537970585015446879710012810928822578949259429648530909797219081157086747723788492412699575134087980839346132799485222315831724518089342816084718487187729368624236981845565575701684093552231819436076701853552114812595804563898667575055365526925854022715533551921897707738544651803834645650962525616780043442955146601684207182486747670382578741463953422281182852209328760477753882242777970203024535793162897257962602259377012686697363780676769835958052194256288205442891652517681923599218019160797731205372128737486475104444229894361152131666024607366790824789898717219155045668203416249375021876604316634334674197279833974122763568821621155479339215842396656091779900917165054339520468009951283076425538012548770485609838991825875615008091041207626543333585581319552339656268544884713573449925859398751178218260750219914659692500793297578648265423044577500338575824622681953159981820587446748440556998893113934226218409985385993089638849843909636641372627971063704909456196012581671830364595386382004279875322644287898218277893189907048653191840256867413990747901050357266423911399789135852216321696551799469566613428158891261571987364345029969737307710101108102546943690951513685685373938640521579438362908790361753140399232457196672828717830212747269950636948418991827347604486265334078691306898429512830929905421655492685228621473600375813591200317790779323160158358334036634595188309913203326866353507158152860809640477749741209867753112343962847897010607126017489776758587642456326262365609540772570482406435492611996363148288623961686772421945187752825397064266973852528453617015124265346541367694278214205029271037064760203877760844098076834716109174050425245144889469545813896018916906335002714644267221447760379672017666703707141794158790315503984330881229602813908471451767347722989849615345520024485832297736809360808413014836790070609540314096586112468912215076155949825965871603469860849317441892773035935176598760148940893001129590805545504606417669371300156558590445918001046943887313009943658542300217780134544648805498630024571158522819227407126701763144725966739767075130625098095050533388658978891521376594450543948486472881745445970425049367567592263218669433394909630485573648060214577982962224608200527802336302096821537447945951500359602819815071469468917623214832859128950251283720317279673079513634381830793138649147894606369512540180392335075182434031128570663473200715093829151566492178165162447733171771825301675359456084936197815570235113102264738111691720044724996637284913914141327728943598716024701232832341661125372978263704883918073330325778239854438747205662383186199395005527612566804163352898121693402601326427764993021035705287845146471071756930456777114299134419347410392426645745698395762935372151669141087884282320555838323624367681768684055693721450226396181108216926977213096419993532384756678274684870151635078499983918708894503547815639898103103037188881211973239166823907082344797233067274196339960516219008284971650314677088719059492390859364661242356359032542212432994413904461166457624035658284247139107478300868803012475975023806788463770673744712109875830456153659639332291388132123384462276791687340893462689392678094253249399575563981188195406515631859710817074288528503489139737891695788855911756204148734916085814725446882196966310182829276578143744915072974155764694200659613775321770561834615678700882216657667163778354747411658221077374615424814616640853310715783411636994962838663663402674303452289237072531652076212082541100791577855931602034220289396731528867887063084602360837447859342605178418322530487964281445411393672142520518482774642175153030462022977579582276757725965711390524172093314217068382494796292063118569680775679449988909354817920033895486740524035592065455836123671307352682471070057946646822249542660976791811795666846482984940572582316717295883917049768655911026350782167042473963676038947974742214082517977965854743426372552850308348868970060818960701082965340358023078802822808876885108049772663229793821927721554009189628372737679571376554759932766898952755395369833899822801621192061030065881138146389659088194346045117491116914635058271088760428170507412842431602569978898899253482155566694373725371937026918411472782872070471874048220600357480709750271490127111101432853428651902920254663836782737115300860017536589581593655413806528789736553134203844203851149701749380212360589594075040250492087390993620272278157603723485756181314961989271962701990431233064849655493712121323658099574548503477302304084935394931026388433262129869253136529605784517605363376582867247218005193966228681704807331119382304670050339448234469301438385581874336455608531775899096884870340962093486121615752507478639664432594023322994559597243685363765216318919604023141266729026623615762044830778998304247604430180521133280088052256478369933743751140680262398254774769305928638581247628903591708812083232577289704094621266028507005650270762069718370335982952301457683170510019133063280696358417772069783082097920103441116546895149422734538527091025656392637974202283842651909943717294279646239200802785592299457938109688414533488954674597734014073512098776777911567918786255069692620089973636911344424710077122753337928854147297129020612454495213076519362956867355800934575778418623402509054899618811290328336078982935385952251636788979175322358538557803102414560381920462124685226024306723093899900006154246874173728001524281863534313270823406183325121643376090922050453705569809376301227152191644304577209254114560633631697943691598052190260531398477005042670273946344591445865960964760227301294539260916145916862648478169373358335213546038568092994622913505791893516483760159507787036749964526948092945164068704341213256932005878460302746580102277129418259755738038622962404969318956056928911318455008402624457245255893835587309911473853809193372947328137488483574615652826693981085780461242015397825839164249265577455680944988379195178717386989357791061709258474598157164132452993276800196790676382156642291602300636778974461780463195635487770553423009801538645345279167859052993560219729513028941764080404403805498709106107469698612557611297202695181325303938573779983790330787077066541493561335049010514097266575527961296096633426858793323734100574141817399997003729862211965259002720416404133853581493808466890378613623984787874321751064248788564732956575919365076674284187760103460779609809297740963101712801989353566314494200235709363014233948181369354862707621614593468593461595519954736852675745908409693780571540419183356724649687034017155253464078998822145274876834013851639204580177366702009989308457436012331571578928249137364755577121664349093614880447483336239443595462895425972129118000571013820074989094069854119924975947399013371007945126871367751218270498565890792622235156808169207358644936845149892606577151036899589781333257597545632676012991714668379595429815806678638425807122773116161331794649202094838155026598236683059914013936914626524909507582257316686080554848655671574242178417352556286041288373228752703850925435707846936325669121174924246735028037580477143656921823224592702161468327356473548892412592664232853814478587638485780573481756270926039536100151424984393271543392809393275337232472530060342291010124614974377692259525130460756399883909322082559174947474268168649205453231178348343688560766737941648182976067477488431641188618231941007315540113926345872358163843475131273335883659134745336623888543589560297525434360277625273910752608778651495635169656512186435947336346295587723779500262539582788440563689186521500665034935090672871559646950212741310128765389507308429735003281836593810427651997431872207352216970907763753652337877523545318453291392458320986041330827373744686653881185978739276512900119138709454991412650171846141131930434056329915671323401923641833251029068411356815043827787946213683240327298705941701946228764147106879126073987413438023970346301115900225493585511046087511572829541624221533993748343590803619139542424041927489744147217146078406448382894551059597946088604318722640397710299260165929461016540403691475703941617077689229822473782888934744062839191727261178535838535576600693298125357851008783497323145324252163971620605618728812534792096944342351993858554264877751751723119985413024505066549780563700627780513827897643210533147620981696317826262849700169505452919445583430560661457538465178293917097926570286849660735720494302366477982606358508404728787476029074860117652446108664544603010442076193181008171075975487232708699428441663242689422723035783516436323454785330993454322548683126734053840885895803645876299116344567915600177424611466927455035249539532557828380201972877059422450637020424510315331252558122204136986553748253488003624741833230660641862551325298435995881003172474323429947721804765489560525966915899566540601144417118467737195055402604792543284282710925546189471532897985928799045268168228179333793746455388959926526188690438027022227165682916664141388063020759929322724463254003098143484967044960669370694311136269607558212042839182547688161899161153519897233423040440630229461631316555020522748783903947211767858312985128811290554438513169289085861811787143393177816789361916766911985181213004937950232997984198881351654283102721136058895809096205325089588582624506728810821065751929831103712799786394538024213327080818293968768158695971209684887283617778077649921418098384750366830525005503485703026510047801943322220815367269674365186403265593853915065974354373387062170533181809424188671319781402002338147006726115935667832690210671949457950361423779033106265616906677574257437211793148620543005110921260170091972901430615873859926852206187004856458904165310080630600478278311145705105363428332326037141412700919827131788412140729957013881244049792526035433851471778721075254410466641456483787659612986110025635552616701744933013725252441528867530923548690161288737425485183414035661809010702286097791481754219759576043451172640810228844626712062493359463755586892347831371172492260223456459280247222818233865510178240618508346413685415303429997698051754325931496081578305281222796220257474037268614122695181540863398614585543836047940853458234294518751735164516096862345817486109958930398591313138500663818509146597401386510466196968804475141051867137242034430324874243154911916969070083350867175825125425189784016291235699320198144662404314157491114597914363769725948259311827206569451722176560552503413210824794798869400880737078155235277847435908675619485835825598295061681101114808542448904923541835754551548684948060118300380505969893240502574053296485192116842892349019187919004037179037280846707335095329968500788143986458096904702183465435713153952120999602636532126845109428031595539782961594039813070345221737917212470785965617801226934027681057291847284366442100289584758853379080545552534693539175815007728911584710956272654652927576494970337926729004327251021392069480259639064568073162813495780777688673953635522893235218311873065050091245845560948659859653773330047769838840653515074785507711935236529779574130653568857721676369942141586486471155614476828475264679759443755600219006416527135397246623990542943553205468874390778900796729382687725245096061925088667991170396523291258234471312676106591494304418812054426356261771215602843217850071616387290720098563168310800248426148151703155550341709508703318619506434706361829262162132286550370312598235328884279358774208936474017896505958364032174896112500279198776711882702156483066753285617769081302471316975004223808231719381781191368111296273428066708806721562054348240750989366461722159249480660606298983860602781492811888037975401899527009462361379508228805166499532512154632224559063445109643638418732741754967932303946751118295329370496488081487297363162140001723175811407520707568118793023991378741224562557120002896238302116308341855079150480920961203466152211591572621167837056033123304317879781911801630023497813605821316969786243383963433934775710964296125228577591373609725963133981401759409136799651924688273030681346072519726457712756956170006132359260762237139114593316645438998567462181356182083366030883833334782068325631731385338233801060390408578818545802483803748342123404886398564520745198362395888458885730895753401667572011691630386144300662772584923741840590024832204218591384334318593472252826381203932839169636579701422648936945500326541474643060212620143949575339622038093757254633217540813727228219876143880116753264709395275261889409487844197089378376395200543282886962183662221033356969124666166022164833992567900810803068076520277225701619297733376648009657140334582443010549689086497943725536662691684877741910173672205493335997146639067320430627007006469219499875080800804363748139701667766586715412753723843796902733591185888027274396576237824162110020419243116840089066571638210871037375831250277114713601593350012997354459848050405783301896377588281816629505081466086877973393182761969719695725565319308070948646860859420633792810796324928250417227955620687319098531566581078982016653819107683170130450572586999332280551311427492523248141160147826430536298894383358189364697568285846765222556111937054130080808339767809982288470714086181873908460845556186499796942185909114451273562105830297091965060593269300184738537459773500006874501220434222388215766178955093730303680112614494847946153517467785078882306258855101343680498905539333135405869960612459808398638938027597510610426346928968119010809355388246081929198005519573095358650492513906843797881385354558439216287203211745169532067536087786293497446801978950572858891734281577237405717034657016545006585986586462339407608772790461294817834738953709344172433538322159377616114567792246349516147905409017089089873264448852983888396677058854053716951122633285745529450472242227780517136407331415791535475863924553815340614677723760537620762804426266503985639601197408889928812847333526799123840617714371238939241913142071808756413221933050717942534162134965313165091662351184553031196576747597094040423012400772493349738544354477542632481398977388967587505911544102710269220092250900883996191530347786859208700371160013951669358270064236652474254859757102215329470168968309895462919665776281192984079519931163666775468368943285597343892800595525854712034764131527755529147314932523779565837159647974009649337072608988540583095694184826583229039410012929416277230013182699846159976533671650665675349861635325028181374727380864844723119085152725077972116159165526173324456039946492949401971373259009235042926409355613122375412865478820061148427257141231313033956146914875359677239383639575316400993733513717182015778753103582191978108959023327572881386915913171506920005422622494751834050906002038855762798813627219505568769398413015482949462344813816748292138189019129582441939249928262932439648756124586841138838378329949549573479565647636960541660123306235196642947676625483828559387567982910836799989476117361633623038235083804553186514036850720715404400836623416442025126998163633160547826920021041910644602434928307940207388675325615216230228808222237848577570375679464625521009036162722236681022394446329324296802621199174053073111662467756385617575995220802886301004013410951203728556570033912727094776624546020087934718075822376434539840972635929790810010843416703156498433676840707163235070708537604628702730992278575701006283833608764760825343388567023136958481858196778729541477335452237346971715057830789843139236644706478959568924341849349116786292253559331645113174852305767630522487473085198618670282990144793954642840382448041704111388687261257307321903158936307175433605465241740342012493729772987403482807438981582167435350000461523267022105641227737700906360362574242127107221269489248465035425433859153829315542032968985043433047077649763045918800846724489930652855114357671294428117384946781511114851526872659861443649795084106097286567324711329890184232875803094271777854744675542017849120353140804124750230779324063668011341087630260783431829229650770228866288386758835824733514235764488694905869745122818095889029615912627900311535825329292361319968156541564309813675977356076330258351699976784433909877232116706301641318092196683440369533456162946482021216178119071121239310692145982532483072902507441559409063260484474214098379729093873019231211271340169620002515194196523127363751487962687055288204446763107624458616674675286167041787507026839006398403489857141931779096542005830294783320182951139058024987014760248525667266647396364391942466519075784193539787250315092547925429596518692345307328839830034579362328156775889771009947845168309427591846851990272331312875447912725721241297395103934168639109001353351874068966563807667870963680290825124634249611565216058705222170533216324026458928876153852659830558731768548429241645083383381959576066563721209085775702145047559944750059297057668867574435714551873648116628115891416246629783963630661195858126334061860976156831939482742068296420308850035210099633704404222096258146145563399694483053502283528204015027479477653686569141231742194049278165926027639217654922071653647365739542433389861646584031530668734167532726463134638319357645503942033217580716333694842628614208033787499508494757031064482352327176018788921997897045687875156166048237768387083175007462736447552638120668641502223575623830874405492186476123941747431803582067783838886850945199046650241249402230217151021357173673773870330414657409169385067628597998679467505073131305825439501595009931578418473131560545295687842454039136264137087705260768433525945849395290553477927768306162933588537450209427735175788397803670317950036527669000159190856038360384902753284464447241056839488178263365225845640680282622303775544305839940973103987086000063334573158520843921422536983927445320722164727505693389100382325951696128276198715620658587737897972378031779072495843471668597086893907881583885605093190598818582582433341229637438776593428052319106967653910988762796090917575655379593685381884033587755367176099285623713765568331925882462696966227805026656574408742174260036106346969571737850753199658261250424009439394748521419752651764690235913599956706356253023878958422097907237351096895563269211151248520354710418373309615854441467623525424669704212896460337610772084974496037678864133919763305946565422535044014993056870131653130992919947085434897892148614096889374087267727528686154311870874339791128247757870678934148459227720989024955444192131333183421240525586047062405513403323285376350273564874806559328760044659113399654192792429144796435629477969527118979288005109261911399291120950682049482201646662114123456490349777077107149358558876066317896910850116341140256785094116173076092117737999503250812657993741426368716468293235149913499994950932060769203394566575992886712204898931086465203718268444157532957408732369595356087600241766203599026460851960746568711918846100772965283986712255588167569840326220425757015351066012822811439984786432606466116600946801610948091552237459367108909860151275667546471756869098905939953068944459769501490764142933549746561156476639668405480273953659411609687546092812687334139227423715869343380888726065644748284402017421242317575113883649301688124930742366329032105299711322347320708549921146482809279380569563823896582070277090108845779983118604206267778579644661250093223338823119703837898847846554345311933715627242846873767900267826811270112992383057991512006392311290043729301938334881962996414641313794701513177581681188799126042137924571483268048929879388590970467513536551063339687344609983770618479748252691564043523133076923770733134191123375364056717700960784706157380977937203753464589662871976252157043211610849292692330250962634613505619205123474790931462016499929389107452592054122661915252993177185747636403186068785728654774314219276367185020459235962467835793811605879922189793273957180055894930604824697156882086828410919926095196661751474536028422136892123630156059652328188664969364636650048015189480439819011150761181499590122490777846399735357522788900865947539497993826211523377274770676102974526410762373951064630768557024713192422288902528054321214971955975845675301430725430209898552025844737116556342378808237974542912578246413490532843761551661608964896096255643328018982356820249308454295378092638460794614845669193068680898918168329528893974601866608987521061990003237466644338756651242967856983708509941821236400276084948514204398290837513406476192406638482540132867244031648292792708735291896279063852982202423459910734291515468191538111843795588353264085514696530717282263957826077588703026339142728033622104608972935441660704381112820781225218849404837737323459722430450264017754134754410631006590096987203228611131999643499555928529130584827475854301996737284552473577142916639679101912278281442613703311959090518770615837566545073153072396624082671841138321456673079034217391858130940481513291805700749389220780676544172449087133983569646464097134217779345593147300274272703076790708934486962792836088810918097560820640790392155660073880620930918870728612607233835158841112663469395142036446203466666290440653112896386481893876465503549635879252315055341113292695934945750961502929955343472167859466557334323348992012608871624465640487183125831718922170532766185707454854155700348961669129701685663389811211662189794344285877769011800565478328587172253517578354726577064450168502633193353951714730689535325013090309803364666107051836202065013166996839965985586908089500820592256078919810247346280199968430253692639589508554237742132642811597413663832471848759298404863167051964260381186484153547946282580515646516180272948861238792681506443765876158936548405811341119937681296283331429449963571533434947625538361400824824387397589071264960770152170975324880258658805125003742563062010427322315539779958718597682726441696201185269110493425602075334693019800754773086540118417367869837990309174947895549730503930520572892512923345768966250217083199813980544673016916915025299477584761787730408415236530705347655140823419048037109135870331757406458528673663183014696560445303224627003352300884401241405748368769036333356858364871477853833821766416050862660706955806858843702137012937477399605073893762790240945709627215056735400445447398635993821253127484297367248800385975312726692511383531459529954537892838122203511017928439543479515527642672517719113041859696676231096389964894778078066638244743862568785698501371712712182187977079784603395904538869300070778727834189656489170651226171994021268906680204309866237582639573387957625748163169886815723281775805354852995884373324993820038884752939152678532098944964805823537524457911770837263557067654435343266310587502511740599812891737301852315357345329628599346165520751881039964057813346852860584137049693718279736743871606417808107880753633442585381388182697385493168869681845316568040234030413132768652134825358611640053732068785606499096210498314992275097552924946823302180878939918541000349482591756660928342125612449440495296237032403303812170381778756203128045307696188270459253430560638203207767217173244071374655186258514668305186467143851529227813883109240078452779882170405318737634163402857922048670007746528145765838591009869357496390304260990497030631790808036777787774242090105333652117773576272931301592451694147207732405046281628513655283287665326806868786543484299796931604619334114181111846357673243410308316730175821979015323530422203108229706472789044856437358009788327951648106028902498616776324538353963474704616487116368393336110418250147985621323475312384613610212799231240946224756783175514807661377979687579136068231496604062270930125855214600674773743005390504042284263292438815983156120030040193875748409889017444036031185712472727195479739783439170280840471755853873806591752659610453786484911848672604261596316493756957850086829495354427425965236069143289965572854371393874202580675502660624575691977371369098123089031118088371883982676082898678795379448649953386359884358475431666026321575998189760363494256719780159604871835335531633034180148390239103108088289380157253660514334671021752285566314187613649520417043023463966666852257704338673009148410428792858088512918006426556137874834653738058989238415483887611926300497709931240538351630220033338286188134141295054598423861973855005036162970995915682406672722399038879763547912960171909300034273525375863725797724643861420025054286092865489460857946549190640559397677054192305082563161395283304087174345212591511452935639066849700331649327085962924366473076279753167164567509993080943146190464452497818985659613065011419894567628654347099647021642908398660569948486533871938832630501450889761507149972315526034961787907391561646420324907716223994074851014119495707416806379896448663146471840201915836460758083700093417633700547813178029607963705854108120214733208281461523401840824351882398279534909988742968925317352808341862238143622850686961284401668020357216796713124084859051435510514460058679056224554343441161640806937381679750780018994964981101584300948968267829871659002347557026979780919065357975921364946487358864280909189909673485694443326663184164930015112467209767852685403606206921442829441414377115295125104133971529370201427506813005947296232129781282125358718744023933177238609165604179197877086221559704415128586449012371117953756176393185562798589994300884269818014069425483508518609754052602073517903745250045905824572215963327830193193464416959614199041908968040474799720175517780264118567015771949017283209709971677973572846601504594131737410379797752382214618084441648276715901566339999119215139667770836691868900301852314538940313705307096971474443091310915866473880232499951549281986344696893392216592880868353438028524380478725922676830417378746465525807812870293975420775173137712633017151588663265895576579390117327057982184963586149652985396872314200868895040764294931298613120459555693407611522839805683539413423011967458951276377313572252065876538158506460762258837917953372238646822356232358993725591970066423487783504623824416973590067882236697867502391649661335225703137671603518213654603863175547404786187183630863428622776221252414575495773120435838661743316978078626075264621752896799650436673222828667956580742670453666440417408203555811906214425651458526088512783856215436779341494630629487446828236454749314365192208285565191880535757579940047010497336570421388467004179276279444540331531680101685081945412145378170804889541155622134529206878053774249773374363191744776124111951260924432172239367905069230440516531766881672899848154518248006076669551468775648939201846975340743985780516172552057426536471851367033606684730305549007674612870974146719233612920585119916267216536580872358931704393815770427746351785396421479675697257336624157951444121392557887627464530948396664930240137474466291583789385351551224847639324442198422107609494700796968408369012811627982474684715511638532648230533446887024859252153755031193064756260069195150571433767941570740187701447432542459710401154644890550738219567965002684151067129250703406416249663229083034284478812201025332708382501809674808674212921586880219387433090044700806575996705556699066365831286737825985092586502027792737944150446318187451316600671841453400506192487351729124329254888799526736992933668812380705163684227333579494763559797297345949330100462214372431030264017902873873446741043402493984691625148379075902677570791342134570464095015334644406288557508726661508158517237832601723086988407316263065525466239890783586579334684568559917425317504450872272979734315421217533517071209403118422351466871604941095094221790449286577091714344863343303437951362305010725205206273553360003667622733717584774012955594842146452888336280299716940073985142143380204154913474949231016477637683252420761454199665793968366174009371882155561784779716610889271891687997864861873187052677957812971946649100363933872871257110381681692860183698320462287114023384696480229047323456586681665975461693640165728107349267125440480939600146966932300912308465384246626965373711322090189403748982121868112441034638238986538411576479741494176723830950626624841126575898026425618683896377774000445561691864986800185772834248023549726982543062182819139652859132867381447895859173659611624509267563995909748852237207985343141200365354883116419507070720421649228055251666072138249125976805263665676038107659060324910988203914790444072508897881909219341962468073201444624239707021629560158966172582877104950634296081270331728780853360833786389825802288666624720691282608367665122049795972679736700944638452860232879718268245689693310081379757528037748393433649450248648006361870143024386973404683978730613234856381685134466800412995456055776474172495718646380443729092111263235168893725644458315551487205967545247681775984206323236127447454111341815262855653903605857827862957367300859804410656623966111249704598289975438555030760162181292920075361501315547815875192785478566259384657225629636694545907280526858753484460168605855387280628498201641808370397451410450584740005227709279237177629382502440048885110117132714518031159562613004847336287899736379585638516509796419538878940865999676323544076297137429080483494044166332001100377502699046231040711119422754496286377770094833734252727702883070394185266952155102928774012657599945216152409053003771651999676800854005595573821278375446827361288553450007911607254381589844629951650047984232709894938875731422219993564375423780792193448185188355095909110613468416297820962700862204179595950704171055092578331227232785263735067548365797932337771985605255700323092256192276115473854375161644950845624823168968037157824713621133910525722684420590622865148464978940556075544233079103478059044002671751080094465993676366348134872328326396276643085638161069695644545459531704557350028569575561021255864219347148703737811139038541436618609015188880011000354929935506852319889224315445004941698376138000750176376048170488164318482675228034606661442105265051022631193811908026758381439846007326876786288980876501166903223445869767811370905030333618689815193814944983146839179157221827348870427476681703791327534754382989892611206880241299751437265357972459902362668544850257389910012460814370457362193861378996110256386761520776195621357865739352090691304210484700506745052223800386485052447026125986351956611106951130705394188291462895540111260698340634788913272367171957448588907464515854622913200860835336829659629158612957867003183209506571225384195954644081100947165064621114097054683654463235034601288936593671125627259692729758156933729988917111790625338056308293077188034295807445976174878374370208267429494790944633707404886734437315840567779960807399549503008415315033806990031881435154474122241396924434828800447498460347335782574871099843803663950235237506508388519012112699468184041526556051779591849403059769961973163235182734025864990105733334955235063185667401368188406680713398072704580343876325434719572931942587148642883863229278386518435638887998911322660452650354808330524797335492951572739560161375655974560401990806721973986960773166540959312759374121167420735387433375140849142121130767495309873845119488462184824779574818778568245274038621824676736015746744098682430164654666462303004200543862966854781019187138616349822475412325851987441658403864560264736928944356863488402053576071996462901487085280860381641530806020429710521924055757600078433178514266684855169159689430453834566592185147585233686290873205900413495547698693415774438790008240267503444078240472462808148339669797953956177237618752854829207813491446865596846054811084696885340853023670309637473963510393277039022960129633438953775654457979356217440813942562307395194793897507774550019634554786823163883808390096368190079918212722751348927369860862258499309976648198105810337479433254264911899287923586281000035613352697875623599283281533807272181070777596772542624729444431610005467588890748910800269926987816486663486918753394417932036493045342950702754153784377216823572082261286813596578186356983577180927428877336502604275249272918398967524566044096049288008681993701361658000468031380469569901468250884358109584208169717993319547176616398886764843170823709268914219930223997617639965084097452953288270031217955160498835682024586684263451276008288177316519217478416388804672841914298300842794529713892238579842481363755113729412905829451261480472696848688130592239567959678180751944348073138126668123824373947251991645953070239409105887933660217057584561137772244549353707913969163246269755065355071552394113354462255156325234886808905116058521618625716201961539187010049831649393360250826754885793231647018613601119725301308074517253593159162976468730479992731878283541718347570008651200414986721582548112025842551265106370113979149575473201912400883433832965632642406720427181117938622438310311108167576348911752949458278118189334881899928978425608334467359361332278010662569733557237578949042288438541947313684246482764170256561615617139739912199293512425675462071736379573542484785551667055317625554665662270329825108925496972132592192363477666563828079010435650512731621382613265341022183112233773574402287595806337362599208264482647602585434272833886058399695316201952501171562132955807074937848965875298095168149957936220970897998985095614778580732599987848080048575723750750612908507871245391678665387984909478025199256758895639825832874830786473046906718323770235048351338867255674175029146904738538590747752781368224072161990984203384286644021697770367157419761922970825323511677272052340825004853231925913979969965288913197709541289767626213443224747095293092146412161628702769579990414334790617273036196235346295596255922463877393976669604346808817830739595348055100119180082178192649610576331676692228506809728321804760344761971079160859218791918330148323299003619152167748079525473586860978331513374333082451043057789862080899876004335716906579844613471281142599621293088609607917665695914060880657873722491231068661951775488221957830159766737565077439424012193241955551183480756680601636003042011323511351489298141664595948226404984270710025244502412778279072316626854826637003059738592250244575769984698959535768057336246914497865593865966406773492815873247608624604774410251185860680211896278528194734038826435577770354470760458564277968012206118380305070359523354545315190766403482255421736675166491899703705476664860883162459526335695567754472046808266268172715577019020668390970337417104292334796399547372454597891354790509265555672753205861962785091260309788617256574207982541447912078834994575109728170869635672365489568676479285762821659817184931295369179979842583371718222779889381339178001715928029805754813312442395330215612584953225026567083710662546640755816179609402171205653961995374091865451935063380578381725323958724508750440660233698296345649758788809358359658462003393339120628505203440341598837667493815214219253679814757201951598105715551426319339643676731939130119748711378074889764344856427848299788024203733679071177813942188788814658881565078149861543801786723201410460680948378515686968625642971460886446080732871938736136499560327031513918027524115622278662405311490110273405022429839833285207005541534012474936750119839244150030819438117620489977163197785320036515236992940588198303696222643133652396628439925721469206619901399149042516136201990230439143480707124187350450908947807798951314450800342795873769804559800969146104576602561075758050227014992086590625268157399758375562184625558225017743224398372101777692383912402176608343817967265990617884437401341665529873894321925019646723359910761402549014545790525363928135483048017970169196558922039933941330369680315454742506015794581163842861733892897089491340957259059489475867446821243957147975058430067994253030028944814391328225899366730367813884410486788204456711393498963016286686210561032518374816737771749630451847409371986748278052772788104390710514146131441774499353142334483374118803382955918995221216043735689432747381944516411800316926320036345385797358673375060544464574380221362353572876249441999003510348443423062098932926967294286826514120192019664158374469409798356773519765084432790027743780159297353569463627716268237954766249267629931211596877325123529888429301969177431359980949419507619169238777687264301687269183994974135742866682129374302603566923321511711485926209314947071964589829370041314428614066484294342127000531483818076648002179626910201397899331163804564218230133646906784040074861501534583676947230080218201475136800196107345248441152461367315790974670615988049980087618629415133120759565751558866753889193143782565851747310275412996003886789569864552860805594391757587729429358433524500869826358973852113371913455047129319176027557942303905700265793112777272639362165017392356565677933036570442163959531534493195932414801522681980451448457346946635510038546136112649607051015937116287823989059075154781112293933790232071693693008998545820417946998568550465568179839795238735305637709835717838764493488211202110322986273397267536535733326054210925138097487440054833704198376757076690861753226119330531855355444699437573783685448283659546738880196371356975613329946871946884261221709120358507118987132349280325832304520795618478673390388524769843914578712163841067098606234139218474891708524996601431452780623115325083258423862089642402056498135249951879976543526098260216549828066123094705508756147147199914792491115178239520691967966682786699596182211742275098538832306128627054965791783886825852684437669558395968546137745997781515410030510896875153253480909388157857673661821504893974568868630554041359168010477847191716634993351754330302139822190556947976314993945262362349702626713500566026428644957184343303683344955745261996709271100468865817407900746582596673132124274902785844452660671381526539744329138108354739763332562030920225779081118840874824571209990136443218256624844114315302077501667435085955977725972820876482670940227337924082739773164465128383226878392148098911857726776649390622343043870120957974252699185162464718452333511030490924382205787496947113130193862976939157683154180999976930198836463918070693295887077996864410062116662796580006922499104301046187481330490040454157356411424012068903055589997259430185339807690838057196579928948973065362770526295978825624572871052296165967104769369372343578828877699057224923286775380438013136719336974577948194075720737985454598911437224953721754682230331948853828961333479031665900878805854837391597838362224732722819052813102956189047224393951747074351268110037403400329178386546222225402805222515114231628061720847498457614004167835198248623804938739190145912167309202119127537375690238174164380178428904396334481725544075604210517198723106063557316496082487373982067495483114866257943069732659417940554342170345599841556394103365453118098009944889892156170911240981697318441204656660022442931801231721318077422700961757428321660199654227105811235806517845569666291581402000913065052386400881378769952553828490445776617865100296689096376714023580041681142390887715883729139546309498851243545392724985288912110031162909365567583695534816228161498135523831235397474124665842024680055626537521379513176367054308747185788840890145117859551189333863488338459023266246640389691197232833007855923288472602911196500791353268203362284666512613735385818251777210123463290372261637254193781304284300834673859714360103697212349169249749041810981703485270090966525927337317887744116159142698342181609094898919121333389892058344917326821075825054956150021008825532536047595324677480176088464628230233119951984562930862883050986901355002457515111844377548224118069743825954318819034811268669926246236557025384695839869266961162801458878261072894756793300090011641924450276292995736552102478129698791174882942676238986324791295970351022889900371518590508686437609917176111264447794620385455144091405370528607136325902301847223299968004320783376464408642226422091047764045739551584456152764975848684895757218454987313786957451137355258555817477174449207445885919929517065314411586812456393148564042855833270865479013960321077126074270813209820600277235169585295611154185045908523098738764334202975598708837000953080456117419910099310341533565948046544536677797149912497330937112575269835939686826408313311480090059132727138480549849928955425974358091967616232592556891829317747901974888050990571267398370069006288927586044641100497628991919900762360801443422324450744395055377379524825281345904540435788190257875707629985737241161833231828710607976042170630682864900356904727628743133026101635838739376302297384545129396894431709203923473794680515679418445684146706515297494120606447243566934801525558124999843614564507370240515030635385114835572792588569169040081238390325189729657429932408193381512326023913436647714758521601012266993219667481950289666773875090796750104861127185178159076711134053957373859766968364357696964515303196796211053815529141996321781232242754785316553786807677317289464428280281340919961476090765928374693864241425870997523260635360533606824608968932399462723873398620256863026642237135206713896998211997350154997504323244869661658681052421195742961272921837943468419158489171042574036352347071282161328852533286516233652489152519844165322075796903291785132567119137639488566944665160412332391937360454478437592318357133749033851844376940573639866535466546619310835248921632172185223389628231578758319919909610734757425453904334038398800715592466220274416427343722873617626446764813222002335447608974222899382004814208904413274559807655883524340381100000941900819070390844566561602778591666841952097426780535765516396367314260919564545566960189453618606937860439515195605513345115307147911392481785290844698735280337703291163550656587132551146609945706160559100318430380004719455308087963501521425231966099632876963895237362384254562329037554482242760176784786760386013025450262954343841880493306941992107456971836179731682897554430177621993772094180988922224691988099315643476289249937699019612818937483792054887021636210509679548996612130093292953891439168389792217182275072711778407988832847433042999324973150462569196761439755196016579363923822829565769733230098698286535040982520797033756019084610627417836398939501974946672048895057869760840538487363590739157844275160993462787963450812301917914920351560917053428089073528431557418163045397692486782576532427936206042118751241291138677123241611406877560422572168378463533383662911643671440628515849096059176304602537161778621997778969869910741344079213078199251283262014459135586358985361711128262562591839247966797438066634021826124923620066851867086018105790626450912789559920824404001008682565907956063116694080380504096117938262500916991864438433999265833111926512473171457145658104519534273744156772865080016048825039219008957207406860045227683231756390453723401422301650061308122243855684512426227205429812405442036821110982900128174799990223777815318277759228249200425437322521779999626530493678815434133809907447980301710616247052755467726947759989786959894222635349753895726577904174160529299531133163036041753939101376111691526343092542468823120204280660570913877051059312715312642478064628478724322922287027264949489385571282053715901148736464547296706208616305716621774826634673969044022643178637961173604014393358165586376083222458553120872246705101940612655405415214812370835668227477808093354383745312080619154398842814518434660295801365719867678392306602067140706863063847988991098630618345162938886896761932007088481564428608763136586268738097945864203980841449217824800828094350283295689792857523390120549557487719653397462385172252464961717389449893380384523428609071709686950403731400453750808656366026977195333351789309731815487483310833337879118215625321359984916112736825082144109988145724725203599151426053017825065697607490318387187518396013681494343987579260739919874525937301813686860928825486675364203021849672812624650127047477070568521125257303047013492866616758940716248245842458483882861270017482680174270146971578720311183798051956900857741030990090278024417600482269196527066504831694994659084681776633054712575828073559492883525647387532241515923277782873458079267730129196241065414131855874958675641287794524526403426717723319379931720015129244410869038630517878852482149892807456780081648390386645269027969085049916515634768948063377281491007388303689798060615856206677234671212499881572477770638146972338698213394795583620358869829883390131925069885837360444033792851829432210981909099991911869940961382341125417680878278873855431250149103349709868044120128436310045261096835768955000830185430801114756633117423800680256991886299869037463704869042596870850606930061207093692485762619210060688860671819307689886749136209302944650440060938280952241127432222609063014199885626458694874448867119462219651323299929627305715285455985481717188922630006282246980252706394643479887310937043877679614238203543916624288485811500036189408331127536428682095189996036104188840964434422760344949365550135223859196834175440731501812075148495902781635209612584937072598726535926635448635170134046704662129545963714156994539669364418059820376329595207868734643987154039740274314481462149595114998982655037189925346857812532250374393273225967860219300402727383366525285988614746275546090158518531749033639267517580382778995216239572912292138180605382524248926036903743342777785551060743376533858245915666911022407705246175016562617455007067164787871422563146324178309728985022461028175224691200928890814669338771863608289340128573665489421947533509140551009732112237664018939092638399931688317772437225289631882635915881639756921481193218784123645421546911103994531450041414755253595369021369373672076323816514018690976392530804767136612301250503819480019705199025174035665708821378597595834668370013598218328353020347396060793131495598392806859552596790861166716004724197762171354043414125029299353402313817161339121309608089135428546668800646424120439724759322963904872786007600418108294976241236739466052942933424037227907731141896519067750975659163531829374680887923257135633600213773763070678703871787431181004521436092458026578482498226858761861653596840712861319107834729731595233493283779469493472279072992765886036144662014107566017616198095476237676627639164948959091699427512176277029239431582191769824999528855116581694321438701716573748250687674897913316158042898552218539045384152019529808291808562237162851431024426710551840742204845800977904219534995294738332249009154382589082451692182206085802154374593976214534917464089805710533766798560124245364862960681467365767695922383197720767796002588761376748976710869882775252827754837058863022425071609218131346925846992939668255726380419703552087628300142610689037685638315478472921126357964600429109279446747698760591112146627809817873450468280247271311694316211886871033809156807977540817097367153704787136531258018881013893297934824848644496313158086449768151313398125300577878781497583250025619946165480913773014477541756311810517508835481116558498162645452367482516995913832444238993786899434200052721901944718928186439817635172359839413229913216723476814091753242317279439289425605103701366125542114168856027395525669894261310603584174468018051727318635047701969743717466613603575292075003837408188542686601541216278393718449396982100014164927543312950577650775155635968446848120439411775767301999610583237472876567808228874799105346608982584863508657797480224716610218572344980885319658207707604996850086306054985238305198014155156620497398882985740218580745834202544210236434494383182956860940789244884442328684001211460427907695694829468070113068703502870077665487029162148400556440913262670734210012361568795990254716551343887750359848434140650526430049961468319965673895039599473997251935333578729867446917525963216740417232829487292046919820546732560507344133171863963530159190294658475069814623798164875679398272428361030134010397706313504312137486148861397200731990193366301072712101170696335101855745725830290374838577567842236407424121647648631617797444815615804535042815774657195510021528335107534765573553018620639569216644207458336290569294597410803061828439107328981017278636119250327674928300099956090514341153796945297539171179137238283536691168378289713643568327316248120844439189306144905016475007310560772615773754530428353198094299622424503112233193920596345405783703056243819212393300479731313079440595291914533128486976201422013067717215974393872902814232489043828503845503116222950340275456514928291979366319984962788161196325127498082351423537197865705770107654939663179994357066264010333313449513575629578696321063998248634455560458031989584261434545781903099633336788306367845558450219377480921224919092489589240050609388163398615694066738553780480357341787098332749050618038876308586660400300287948843376101753129847605292902307239214462244326390399199128596941246982707319858413354062315591377457782043979409079091175946773367787566677991853325798921655764522942883911435667435694991167764107463187277624617889496370792267372058319504256021517753460605011965004323749596403554519905114281271185117408385575162507124544933269980898478402323012502077813360009626553018769806339792803928097198461573111530352446080708473568330944890312462595421500095599878058446737606776615349706551016981831081776690448123950095052981685742129347940864559071265909586284226173360999421536758789000733813256889611400651401552076515298153856443960326840352646944691667608751729851694639658970565133587414757264421964169495271159743428988805442121373173478096510414798829486112658491815110542238856443622909451732918888991995645698789374492548821964612219308236561878772676623396062050694845225882493984346988750838258005065509103118262227187024252595154975316587538343150276599226872576285111688482179171676266499616443346367657892059798954615713134823912418733904442912768670678031137418359566491536065224572667918405444344298549605944628239588782585970237135459919972672749763329899252507563110802944663177439230634020234763841768204950361238071512842628808690889693078655615555381546653636681595480086033028413733499029640174197144273043566527859970259981908745385878139633760072493904077227384232953968253863535769060517598010140894746255228684163128189730517982840546754044146074341691719931944919328765927867364046748059669099890051038980944714247462137908591931679191264529946489450434043081546029168274650099443893611407571552090470562229789069026990764377490551777212190382783435306229947035517583256348420523314546053605833127464999071729797659637640720448654553481508060962592747586892954581413195424332610350060754061265949267899715416628247434778081693865415887213008466889294409147643761525045842095233198895067695740190284542522079759281818596268505141716418288279562586171597748307665859495343290312790983044155574197904073379089850463530375262076178701713972706481816827973345593665451326172514856362780705054269432415125704793147725599477427385445091476439004295425764494992880032478036106252162908354821747774383448437335135042253054657540009309866769337838865141619489525030277585330277865553951594250809282736439655164812397190070338562797911361624991309758649592019569184009455369712209385469195788333402996116764388703847712305197576716954325371916047722690133512860850832816652512698769772111866427391864990670119092685943001482270172868356292781366042847334735524238596005183233383998253097911471652875012535122668079876867317557026419588321765521339588428379772265968960851058902374997828955260288273699663247454039407968097785361865799613833990349127276254706466450854179987696503182956236411005264627799156882798285332815143831188376635276745242842044776820802150416667088609738661753016149069713800523133955190166835673439425831849023137874184803004948855079701861045542982283128093082870191863188821746909332967895466989616869563583645226663485793825087244293123172963190475737186046332604288423608836148309313599124979780565546981510173248764288165363208464031312411291701937257088106390996096777080112066722772366106960722862976927875347221245664354208462338077865083299981516386655372394144710972926943382713938770736889514314063431211587383634491870603747999860294813831485637813854586606634819348564267555976361329587684565260595665405329883321763836868213687388662932853203435880978885639338704884544570825274234479309087638901157514223859992287830231885163079950401746010076133918988283547593758621415742138845832443486174335908003053104302949889854579191535294395814289460699956683492363180389803133630641964752863895504398960931048759493170104064277447399793570722018839797333349075370142657970059419378073994409574214823160483632772857044889968219469617478249390236033317061424713381122498400628191612895631211903386087607148159123136639078470204647392528054402893892308737971887383782025780923178344945741526677764930049222087842899615796682206181897833791457847011608617375593081943953854560757758583151072902638260328247877166308633431391516193493358278676110223559304151833681536591039979276421271652767233648551570953020298419856360944230389326423904312056544777743862363520884593051993544080508733187917914906591124260230737624716455596189310531797699004054832889148227062822652451016014743300469735613952024495961812174674579727416293398251980667553686584342184157531652687901536208316231061837275741957665424346109179105293918356747656965772094543472465147341179391696380569129378766209032094339539270775340596269929410510087724632703793397715732066913625691503143217208295937015581192582175549779648661319526212627262231227132210240962882079009127217930504994695161535849547697527005004741783359403290820358663044002318336814177364279450612462314860779419531266689683009328017126121965702652507978377494689719097581928737819135275034998069689649305682699239382082036889627080463697605585701314359270485451537560981737698744199503718910740615977813925914578649085114571463467451745394798623501047617444291109398619627355137484607415101630568676960009683871913619047487326215089577856207004687061558223259363379723158875764413332451686597800904828470020896435653593199311054390360704334054002333365625978452181083897595025568248951992387393235500083083997042313148746293107733860981857066315294440006187460812065945016893613488450170364176551210269061695469786608754093062274985466893709103234072590565726923213512042245181706452218026436952249658034863980593855317859821181046702882267529734907670400559428296971207599054295642945587779168945946274757783426234005516660391836965176476966663693602731522493640282230747183143812123411362158529369756821831970619192504832714192911463401075516851819151406933838707102301240829322342740463651269645653738541134908938722969263912933814430382515849199613363656610352512144741697259523029234820624207516120927831658761363715254261196369541590598607702749328160486825338664957866770634298303614099032029798091516531119037767217373513579228984079534230633378354856739039451041874359459146524918895750518692350433836385013098620334424715058579199770181602330692056515301356916024477589789362798498657142836247716562454395233881480963158402622648271354992942779472187283968149944487733121502603856128906821069074970390080495540761139582438524959640620891436940545654998596178894185464296652190346083628927564950189008153809835835622634484393893731125051553795337200889133900661956943637238245658346807243138110733984949555018332836965329876632643671545830258060630161221897761020150245489643627979367818212144408777685647011918543295769345827078619835127743291650275203180387208879130878674293610239357488472057009681338087276859438580267399709343006020262879009657454463285924769738198259905324576116818177456719409485729104856124896043901581298073950918098659683085341363418377695050824714226318766707993986859704911227396740398621548158622186876398653523474301009552950839109283227850780208402403863593625511303333948528710056970313988792794002516099238187103216388082381623074972560733024387797177159249892005987170584163771248857797067940060658279285612929810781109852888895975697080791810444390269629231871666630739912749740983457397325339720657764220064424314597559072927881773996997596911487942517616843782660508879501012989618381976940144092100781414404849582132101237577574745555066646716577251889515223012514835100757794618470618776817117619638576359689192109450150790662542618547654574933722540790972374355402104840422930397781421556740873405015346326584184623352271481278326333145572361376507301942144343949188550464505122184381284761133097742320819346236895247055073978934272204083174187922152652983064004011815771739045203864328984391608070385316221262083031393905861993494495436971262880748943660370328650185397617299871906743417563637611249674165092323805530690927404552473125176156028079672038252214887746219102057084266757386675933412013441596575085316234785432247440551864333571355360600330594653145740041661311339220000169088411269545450450975202921472842828966501846089615162604945062351559375042493455539358530569550937385213643204257814584416024057602021699418414122102341664983077168976685792499248747630996017186857454072809846272807141492102511611007381602625616340527977885373756015978162430466593880844280437600469283259741481400537412050355458954667204954016434707420985817181556159028835604227355883255806956291393402695625836132399466954288650774947838752498394479440328136211164789926587984518388279678195038774941057598467978381854949280140523152647604034183381093838898958367936257342196561467420258183678557474522936169756554933897403648508531243065278527772814785010864072654148556458282050578311921678167957255107059934718598029162456003816114302681332180803030517366128256165731397917177018493430790175055041015795435903957726293351918634142105112252047095241777879517732248427095550790133191871960285428626921676112975266874042047056313351181138439420699650643187780278351267378735203707611535788151393251049286310227808136959822363273151956649185071999346863490971054597435461673912951208152520266330645306063584475701701003886826182986041326150216905642669469498521273572134289739111516467325986173806275321271865124475688858972625902666727456362616609310331180589910765104397936572592184373806130088415909624035163294900722391125021918761338385143728290810134028852674512493542555372804284336631128087387727538119612682913201088766490314033399866840288069617813634666822811153310840304270359901096086689279687740298222632984299072523967546963427797193071489398388507594286941691241831878367953519329940191818198210699822363022927446484750412081234916210284597814345604620202780004302282585710105844080312836519522322936004794502684781837942501915905707885733103577033869233145581583212654316293798527809062061768064959088238258439813990833759020976663687830588509338976915837043285909763869285543991928691575588460739865116062821143937680952767293255168590892969225675544290072850535714584892026219141810787898561502247310281973461968132060005295368799376651064668023470559275837311814129205935461943983839500598905091155672732266479687520034328705157002646751405610116675402105611280852424385415529032357834449973054752691469915116419189853081866926427960692628049686476101889510648245032302165178631168694181611946911037148269019768079646852084612360734285615362150703535342423031552725285403458076081057752893466793388387108279260270985045547276135150393739717348421102518084313090315901768231445586320900734784214530145784278058720172361716775318421463541919618223550901772755980284723358364024897386240886975392799759389792534353125978792761414807248237449636148206234113036559764166077441753245125174660742576447754303660929235952222258427121526647541483069150211959700314071511849424661170511490124864706300963897730426691399479007797216809872611678850207413271011139136958928732865767283368978089239288784201060471657860290907364009660253417065193445244043211529299954127628187260559924924633687394894137664312949883131701643243287029930293490434100833409911072128391028603136679400502854287024291252814729584109068368638634597254320482141784003263656867670917012751443589107617957935170090487924766373606277926263719092454931566006200824683999831452035772807609331443389259819615362778412667283734828326757757258096783411215996365985540680023966796721456401041424249484295880578021785884669376357640052549432643585317257865082186839889565784072789530075953195216664058593701414951933375537973568162343510897837136890645033337892996793127070009230036854416377446191657145549995985812621048642891909851171959370592865720708244635061986527903272085943482778192829461602245321424862366697261062131496633925058901732993621453853290816095093551237950910576037423934915388582168793282966335261905852103116800484967976990792211989098493093949704744884449324091441833458556760263260591340963726862976798361320617735789469522646416204938569133244603640800282133738478942698830297702278413529519578495069087559240541363383986173780551397029877902078472661306280075215191243217395550323412034208457367193148000207796658470830868281209491910935018630427077346938993231701045815167726568527716127625984687678506914356701540687135363492104329549556024131090561406496119074683168196666553595295206365604323080457297149370816133045247285126390471249779113130277481698902684315816851706576176874254654534450812177139315247990709387268367298721927817819694818430678528340507703797599821216467570342629644330780347172434140598921106693379941036944475667755165525827198005155338549769521273352484561328046310725783223410406230629859128521757703872741716177668193597708635793495515185729518449790348458944811907736774145194481281328663601446599556134419568902428871327047477386520301702139084662363555246109548931741152179941138201716133834878841842245736064797471030003958511375204060003419499278438313084357172055993377798448944619929691628281465231754910081230953641299409126238132763095435980304902165086942258292126917605928077901008097404706556429449666582984800253013175018803458541187702405640630943973201806508388699619307716809859453974446692490007001231686029864515709669901188425376020498328570124804685734735283428453199805434737854118952871895654750138513233192366783447908143433431008330949059876158132365774715193173213973539774694961205646750153916607191295015379526065301092036338665364858060776255577480784419224676278423883073067572723117287590291537001693807332300635412080237375961345226007881932111094197188668089995298751264834904642123858350126533909139784818335114329173206908180935207951424765934492386031575185301878084432054520780938549471967710199147047422427518247093763041274424359457945043363144176504597170288702828045264847581914631938834596973505962215358709234715306761420834880964423123402687578194345831976553023156586972172571479966950403646980572974575279616666188247911421284219751518731272484694081785010695521002982414824740845691055622167359344108701522925347611344875680804949328659395177286291544077669410561787566080723303253943222315756120931695530385441724730891375520475533340268820258677121346663082791863900936379603069511556321754246965342894935070744339110428586046608818437691715589014519067073735412330446387511787372071642684397149734161763984432251611355525793356036847045769283590647442171344432425289101188504167314012699569621704205953113484959681167407827535200254094409493978510145322244395378244601761832829995314699570630430348340095743781979972963739323121484325393550786606116853572808143520422851909642655375075571855726875520275452181254017527891632362643298480120115979838713548375357219384315077079069183321183937499259995778050968684873893664694052309750882365138957061301312696064838686176123197044374709031439486829823076235739124609917280781507112577573214065182457080779521424172633140892341786143550206777007298060695269811153585071257463592140378876769043711472005660521054665597846192865227793056709599468002301593656471449174823351522128808312982513212148775155699431345381013700313551680080404115832113075842050022232432904274052050537265736811489538580445074599698398970128006465475256646181018558161504389230985331676851922042827902049748077809373006318876034072752316167733828466772613722280380776988578056291856293433112122587578079292183044198947848205383471020606336563512342116895020277084251766149593507506761423147869721695504609762142968098967831387718631972980718971896109935580696401217922650629986024476727865848504825046471407433518298320900721575856724704745941915041376370196079949439822409539631704860590445393617764193778944928399276778731064615458204909424027445909518173732794819247734134410492921825423267961708341344786130609799760474912483400831782403732029860619313708235509317172675364042510577298907474065954269970526083673010249099322696724099796039763675214134121754905058499768014300803366908466863456629196726989966239688744018842754368824862618606801042221152698574542819689124847105829329329461387199728598615979371503047329136850765935007786072394023407523425146059357833573461168108663004169372448632940240455698728696995215007523096718793074431213913020992549158134357685490747507556705324359210964033498177917101717640425063426417755490006987252260814652698480595573071023720377109927104400405304437997056955485255165052259667132085040552120840541732811026812868465852169026456052535942022177446264755729717834160225927836415349299599455082267714530310928809614978598652272711790508723980039787608289573371842857506835935570158215625818360042441640907776653572717975440570712795405827711975728060703967558773733123233957000108118819838799174817852953643983451418251685046341452297615485949040741477682426003578594812848829565801787279558716210641249473758405611837373770590287676820130257893689488821467658319793225726607473982828006057766416943190659904046873869558476081156562836222880731589549142551335489362324640375469987302660339545713702531417980294917581698109882470803245254285631311927457178196539869816237345368530756541635975609623434369590558612892362827736604083518463037098840685130537231882363659997900225686100318783898637988688788079249724582779733195749305476186578297836296829824005215831119315895894163623106910660361177130195345865128048987838981898200857407943077685129758424310071897721202976779885428172238880429881087194263485824013144589464744362351942736552267592507415931583780881366196887628843090007163635432746959513911116225118078889992342610286905226185306907616536667549342119473922999759054847293305767037430728237554697362677408849531307997584392889253434353416459038906919745763890494393485277654205309746589581660892261541549775917801297317944325135198412940389123969302619198937846012303376456252214700701658362558678836195037433316325750641083441311447797976024677342753788130015761256335570122035994797043541769067842153274011567210898093325393618694961389014213026826138024471059175630979966476740007028009110607066944091527179427864074410132632917771286471852325051962964314705076919817100842392708148862381138792482497207457329917287417513480042653306888254795039800769134843123110605022710204929100173329026288525778076339781741455976579584184725309962622953272177321456331240653260768946524831347903510701800760891931857080620462034445600193751751035913721666522845479251735620843959426965096458741734999775363603770526501439386886575737291586781597884174709524828300192202082371874618865994538300020225969908854003723809593610379733322513573504401516148868378180055576013551605715374468184842825192240911712191283817719019857995547587383076615595664333622918503690342625995053142818370415797228677490241091379072177417623428259173942715461524713071677730047829984602143036253336964614535268942081223514001060710877862270277023837299247236587571822114380377922381887055303549069757478327317585422871113285515142773111575906698975646347525606038890711365494201234526256031632030204721622822771887921888019099123724167810459069401263894971694192160008108664408595238073457810823606136898992312170723754886937462230759294685683011872987835201988511102737631416221193039884798341840517602310658262945074565889250083989453624006196377935329763937202486325287658515956844221936635449443020995379465253235688907067281773506903578347017222612801736710987118339112590780009053173807806597833395858665611452927682928720562166013910278128020185136552933308063714570476497903370158732167233861674341870622970882637928559649607418684142821412257283269836475399569515423868534152540967795590003954790465391116344195395417261331522506489950799409066310116859895910261719441712286276932676564532947911631083073078568246644454602998027303990252947048150770876809455954720523663332614653192223409905151078723516313162062122928803754897517247316142677970104933732985099119894850372658766697916138554081793040467566880065191256349764707096930520144977960698904933872870901704036026609230670702443919652535934574018392688395164564913987958058034045403265643876216193778478454879374882898254670416880556114108472285664260934506704503720239094948742905759303435498403058981285358144987868784598971816291581081095775685485183261575689373682568064537343065668106996146153396415216275652995343235443554139983166679628415445628079998275800443852390424248860553282604392760044967131497963054791680443911677613686964841197073843588797150905596945541349194175625362300938016374574317776421654585800393265664293889024386708543243068586836566129596493641615935294737532163355296544858205703381502190768261639749549815475515921108431358668265945078072707210538389447085690100325544722796900821379021529469041707321855862484330776366573298510004348516247821276416300240305593933683972344387155539885099607932296169710753815133090274504326783968659831246771039999319003334737058708852850030395950990590805729242130804738836590572303475608720189552215730028603646004456899783838349011628645012392323260463013375085195984245096456042892146531852736467150422537211121202164628885822123900215747895424933672521957656946999995212994661199702377893104639340692505311866585757147402682548921997076100334238295097702114179431165993037970315436098931543605899300790239485953438130018876837445626596009580100901594290279993692354735114406872688679770257766369214361655031560882648520449224982853369436726433713652996236015505138559842412554329025452014518781539534615938135973706613724921320864937719248016795221251555036777099868319988063759288079501156237996430838421072958683380596470422104268422423573771686589653880239757536665877449402452143676942409549248410833879430900858305912521240977419700203965430409520163734020315532373313115376541466088201037445996558617461569217472820348154077931203568269949236859020381208797515933443786128529381009687800856388031265765977211698416460851475295855662464571156023862476269430454857269773430035815277888036627195863759617791128612310389399762288607714188814704626175702330819056993699159070199635731708110172106923384930714668506859471527680408279509662408875421013276724717834525539774883276033399879414391210302807325870673865185128160069718166438271355256224743861189622643538599557302742412266890813658178190906223619456431244874146590957713772562323759375580100755344837618356193305973069932707740226340478069437919149701423753270043877659636674502825639823213749195779098112597393074905371822990104739107540716684990256621100489313627520565020813133713628075588607640450433076608327503730745353908420639007837078601538500580420478142596278256213419453839371943919478977980834116425895850712895488204715703065161712786209971407284121480654702426093953573421822295715268767533547375139257133139594173316159797482998887818434885613653095162952031903028021129702544478891365818285215005237811315120666448364693930778879468448154342894947712020209860360772743074297732726082278803931013951236677297014447881016339990994392039167187545052119686239720361943054098350815518002029947922750695992408476157943561279939745546623147402324307821495542149539041880116636081711713546084692771691746422132350350009488497264111894279395713510978851358992337392825742516846051258197636218805891077378031306588208078876166303881030441489064717612763814221971888331480660800308856017447407620536952821371209746546504654421898490928827098171389294499696253873322208455378051485429295874444578627014148395879690801304963377926794678379218851030327873908751436189412001602901361571089704288943673431542719841243276430854562079625391312602239101729514841801128968276277566805101574149292556019329262059719948309956087904646501466226223314225266228941826965773398860239623963027116605388954789964390516394734843143469834083378229160766530031101707024778530670121151318643955499515565208912903903710435852919785986498971574685455466303401034959606417539352040925468552517641029834418784601995535347499047978988046818135357344913957051083040955550939636632181919320090704034368390565067237689149338314334851835976689047451861838860066430573106846414573956703747958126221456347024767590916046328043073286646285583850498552253167359649802812162999786117420280117683266596392918081743857008312713896855434227126528110407618028580177263982419481495602830600710666843116979607067477515518146170288239156391439743015429910895608744532220556704407705059079708380473336690979135559592091050870173985593828193177390789279968384324054356563811387883440895196774339214304030464409541878892163789349428673847862577315189055818823704573199563070487905351001390715285453245836623362526410586527450142050352237802748481880327726908077142069923951218942359820009321941689531942365487710578936358712373764199552901891534194321210920446271619385160378695949821226605244250659430942331529245664775902639506634183985793536073646368991442661077667804807370009673142348249872885826899058295902412111355712188549292874968919109405658153577238001970596594529040685315136897573042755880300919405939822387374836189430127048012753949767554502212780892232044450242979649577726873145806471075643122526879223391882349772086428620818806323028409534553666735199966023596501703154225974147145679867342971071910492008230507094200526134723094226142521077330944130929191383091240134274935298827004152629050893659546412757078970949771474223451528771291418107943409358683492497478253977495138102768941796536308878256795795717250924702858803750169563094038356469726816750961027080142612639148160074316863060212001896098192111262018175208407984968195781372710757608184937987203075053503692142289376031191183450365780932972011641389253358793041402663313339875885646417929431541764351378343415723558792745514904159734391751038375312642709710407821194691720328818846141290473975826674612550858290568611936223596709984551244578643024997839950210445690779570532641409417815729991836802973541085895162136440276282557138302395276205767569209161399674423426435610911558187399257712159782688549026055954086257203944896584390221690075082404271825566519745429884565503335562093085305045309698230113837373046949163981780205650281390966664636500991485997957891700443557243018732749704883241222423821104541763619108922785157376810172506960323470185399065668893297204204961660401934857507498260657588248945825889193582188937161528808723119280108555952794668955444944535827921558546566314380915064460638999523560087462642044066598431835077264613398893446158826929778422620643258736879688182637929929926864356105913372170750252607717199537839178216454080481296933560768445247311810214266718622807391653743252134111960073058779126574355669115135969495473878495832385826641196557789272497901245544573060541526565403976290648563443466822320518447320769280004117916480016445508027206021415087988307868985178262844701498128138163141720376024726023861112275011109805660177888861138690072625468196041792162903418789928382368606305742997597877610334085118670819698108036458193388449921635262490895743905965807200661178077749925968893511997185469448366143096585548669157785877742678011177837282302756953206607131712173924275777221906754876037658309094593628167194854380925586617029465401961714850778615727251681823951959599877574158409369001807497583421200862264300648151032049037942333424661328272588332383963870978457965381710881607138531846639551885373216359682571248569293927166895105667910413756085111266201388760607989609635147984777444344865775032777038098533140475923724821195136732749884637038653314004174227168619500797024422040089889054700235257871389985689519543867943757167408312320445753851135176691586227869356487893274831123747001818368748030779399172131261133787962919988892557105509259462349723486478966692373066180437245296015807674916115461958202420629007614668799971598576548160116310881095644912150215612404162518599239252283356367020694680961000288100856810050435933113108194063406718715594704662679888566180878695986167560918807693074629918191209450784914719602706173541277318482100692158486536086093120191414935105996198333620912717658332837694532607214959364988880769335389355019341267378355689941647882490199996158868868543667878703308017453242414054042396401424934733473567971125119394950350290625124925053162332614578303162985991125718051015963033702892953002780976091283244312215419096870990793107404770469209318102362806773467188607758497838470348583230643049070992422330719490383028248836919812866396019043556079956490487994674649559859571905822624750712480283605806120620383328713213324614746655582015667720828713892186238383300686893350230459500109043573775828474689232368752533133398202662570562591597967854903056705296538140581758390117413288709704967989441648322243050242984851769830033435530553128675390672330921326649484774849568995176015358726404368792968524992105169091783448823933302000382669623791140282472191111676423332256305610467337645436332570523271111583329324948930034299113302186424889088283574237894456290543641660109161573252525002701566351271579620056897296349761690660374924482622908326869551949342186656489984752845683226671850165124210185583886858011301208974505681540588948654834054898874174935026866030423803659839468142135941265709362170047539587175469605411032914436608121064074137791742701657178217544471788653725570495822976560904768759012567273376597812606294337595122772883583612762696592606076779288388882703056839969676671638810686842914156185346461778385212727122791094000419778179679256214334722682574674004909747541371912487807608617150941997845609467710721521584639939036056498869324052466792597777756689245531575473456312629702268838067222107420748607444429261280327165972275828797427673040658576232052923902087504000226076728200864240968178668989385160581725694849864429711889380265386065697867194108674900809590035731000846252486396904008901230057295441556814892151297847129515474226592072339724884983384958951247936848121487281311953841698224481463765007900961634009122099594770140530338732362057342760694633534787755166607067214935433097875711728687495889616182136722883118190923607632189447913642914946213952436304956270338644203657622713235902427505398718678245586738216545511244073184886459772714338020375689520118903300449081758552893864434198877260378806433040246632082551540882353532606854452442431081303514903127329011033423408283969776833894252153435247496436405499859725830374699633251255003264240124663905812200269711498712349626094273286068215825910766343434222728144788496948251393409263910576444741844651476019169887618067730695027663335912647230054610662191883982381005297817555179575269752388171747047445010500043671743193826351898694506268439961548006471912674780794386808399671687249739997687152971429628139608322403744990653745329425588053091483007937981893397546217931442903680473968817713423270490262289791116534527162011664199879598742777595673215251489598811787929058292883073511047743457653533620295462531003218360478251939893448930337017050311672025361555576503775177040163100325659182812604742111826114658657341133060198549144580714833566691115976284905711396541788692568739407803563076343335605597082912620355873453406862509850156960163822780240393966827954854418464772765309582436976535041190379843221158762062248170183273641781059712313899641245197719201741393819890874988638910207520248469013639193569546159984166964504465964487319396333140647355227637824573545372197015959992095839312336947953700350306946410133358442423583647733646954035441905922369000206194879495454437838021679845838850826938459339564248814054250998105582442517824504201267599991617929577473408693856091575381659892341257732289978042133795951696592252941907816941287006337067238831513685361832690868543687565045446420245346712824039993035259003939842047025471534132995484054374039344554173785177522410260814990868944834579768003966104332608712154384826430790388524469201391090285281452139291759463545435460153197992031677213660383275535675348243980393258976233850810442014758198387656966565266748207224009359774933323947294165784702948919146019847011917336655464915482434336156511887605612929633600991972979256640110620138811769175142873097297436130593514547113722293358594759576552464540651070689303600930427070978337368819509857838012449293206397678169995610664059217031501284457805175033796154027011667150523681402950889462699562107183767002320397704702841758130176931234152504779746300026228773832259537420857817038121328363165558879767773226778181326222802583991378273400082853770109187154643520339361698023721829653014261504516095309300726274590505858031622943402976529929959180600964608879230022008008984608141338492027812231462587407426298224942054683344410745336123891846780594745267149809088995937018486580314395150246052813544807430998325977032962428392896239609288118355438659049744654373440974797599515398775548879305945169114916619770275387286730292280047425789332383282462017355879835753861458054787396042709444491632938654486351209263846224532194629823881584496131801164033012489670680894033953518542226505496959305174971626167246680856778721513329698370261230916942446714124476178019744841212476454844474207569661207055671984604202508019357311912883674866939421967294209024457737730202047871390509685757565143554761822336409319871109855709490875080114979783471882392798563404589800199398794949096517187799323419058938204261601385596760509805388298174526546566269736301117059050865926832227887119521330562867148041229502409827439584203742972861166125742874053482965239069575214394127275827048374393738921283720667647884274096574933763143356916790333462976903990468435479674585010781882183327026384065220516819455710854360866155596787375188795490517345710056974683252271945907113840737701642131602376877405051214754508436000377038759994716582831183736497419147045915367092820173607772147183047791192693613256252030667677787077278175960490868990640925527093923367175948979153768102759984634397846963724543044650974926355265218633512679442520602191745470220325075185005509249336436777467962345354892875425339069046394814208684386956443531528550415402568584844969054944243980749723099090688347669685411489134396252260035564307460237954399465452788735672148652282976268125912511533121046998393525136268168270968734665875045698712916003300524854955154997593823573674902985512473854107622715803582745092305859309214832500239601257482291161480491000679253151999221071669845866322279481848888554878704870456693936831254791862079641121465959969089548494958358304688375772399663507859305948834133362689309478082171783725314097801867050820056845813794119975760693599071195861682362688553269056212982078138348175445732235825928821233545603354540382789595689219583174196777051455666443638842382080706425727409938536701512332069110825405456493377695737213482524619125419450644208544246784899306347584067442172568621772386786190565610831666546336076924097357138089673015872263266455040761229033168366577906033472897866024980563963010159723874666119510042151713003472745045540843285475384455337445682216363608723727045617982188625675831554338051719392262686491357336720215043491079059386741583934617709271526483012918279815498610371769435437663287204044260695803823158475874902064978985201380303633950566106414981333348764001995683803814824904064863740218314515691926969267250574201880617618144810120163136537528407942635541424116616936958018520199091923270937267170743872877273250282870133118513874324483872091002660855066283456194428750423173777938095496700832794105646977994905571133219352781245341032545268620799029419676248399518707054473296930988846770867913962138438490508207531327454851267001039940498144719802376511549772107614954384768655560781097435659303223447898090091661839089009990483491543122813738208540796830345395447411946291487168249268543528825386557170659920174829397769289124409527609560934089826697538275374110421980501947417744794925474418201088177493241063091015953805453468718771999076969183136036610384337749870455166501248520691580236545409685363429415264708235025452817830093801161158614326465405586260596580250208822276418268247933763719603985135253943322725241111416481166058389684300718480748268700642089196018554423819620050186147122328407845272819871878450440950366956226519681965596989927730493086106213492995425308424550910191361500931710990845839312155741670655637413980206075227785462816545251923547623056098760313602811765608725640389922280552287047334311562283716474501766709277063381020251577495036759355152991699754190943271339094807648268516270635453995208402527464148689142841663835855934797515826064059905480556258249183818015781261683534888014682753071051253621678751672278375187028941511247453351901997069294026243915438000318930378391860120150438380601750899585116719771252514181964634100675529370915120236065307088751156196510100789758080873672675489244726247118121567701210341407102390727263555048220688385525056784303522156823014189147632354638640706005102813603088955515145670586558723934709102733917750744830451792003144537549260643619078982093880148867818099435883968732425685061188684966091917649828344346423393322450501277266501267821458637631571302827565720824305346890577993393265553104473257998200474434268655363229615583078166794634905127705820483938960798856838124801372266718554093358677132250663865616780379820630032956728365965592697456933324015428177424384776466232178097884016314474817213135368347583146774614154625018577182678671505330022767187397562235327550207241521439388560393334196171106917625687751266042085517401191894804788960530872617613223600544768132783859157664356416911482417926803733881683940939671856610145316335841860140065279772596167961237567996953024356276324602532251986847902916368273348421324975703648231216378284166660865795543309715040866468908292545614752556001608629926061862231958194440917129773516383384115832736436161054077341285758491402927035644168101763377982303226233633564851783136437909828911845915865957794996062087674770471349220668994996827019551143140823914863258421510406797180751054007236967799756833412403978213578709438640986562043371065576742404004155546551470654952780269029152178366727312965840319705892756585874128880317440785484555621296920969117837910894910904753871019807645407688366653808259775390298311372066768841285169771828107559787819746612633812283172055026213707523005974914265219505270206635956018902747124863209019091719166559086061174057452653342465479841810463069778063203339552591741235474150300924726734279898193902767700459060226773808564213520783192592842058631669382949853536323462970629878809949694833063656148796075439368340768189254087730028582074494579631960427299828122701295629234273986744090188044254028569811762785719348488410029066709409788977349301826959838960350783332103820295004477044543012982452520541718407098947766036085788751839132706333500952033652159768528828616360443577562041598365793645657262860273283740897133032849449159405641397228787760024084435338261086194982283061173180896681257217567611613792717560570887073208200504633099454209151661602776295893752634667314088082277426793363514945633490267714928336614036941351860627527691630180902737757361743794251513179233489502633545724486254677806542998623794215718563991817178199076159174088918459000123326609126494199636227151175260937504348023849726175697749857160472909423094393265692258226721407566374025107375613818154242438760044031658140401627447826534162198903098657155803590844334457694698135874869971260269196685898840378058231187747617404280115772789112433571373893632221319305897292491067559090308053670608058914683165875029584485767871703561095303870500558749846941093235052056128059944243856302817912150011216091967347605553219518414645364789081712772535734796318354576949542344662394102356929075882915038571200972258900017382818521192562552384451366364011105629376582054659823115527309165859920659605090494632199155884720431203943815152363359005980646359252259516862076931615756464389958976512983866747529278041250263583507124052631984694190433383137303947457945015733538246928090416256038544882237919928294365564783993501278705150742424383372886925339214188635451798654303702034477964341117387845898508714913354018361854565565055777308256095469275463740412619740178519516359088544085757176957895911096498533398953501586595783593445065330548281063674965060348481549004205510703183657564405862630787566489824653600848685979250654822985728104295329129560232059787199931815529002397505042803812125251215447404438328123608751125500231950650450401552251074841832208729047056858649301131234908579110500761049638705463180459415906850390699101748990887388561338205909508998299980163697209820189310611690764299429859705651920464410772550438235846852458671834659995765564232937231075480323121633839732088960133000274110250079757680148794153583687788603327968350294028812260428015820141979476604043958936957064309578758792168818355299588957422437388314353123818798038188042279134563205992337691938013496720086303556539681184377889638455648761570875402508797615811662775774089470142195257913167956979756981652356434868665016842676134321792261260376798555372846726768505898878625430015410418898847989221218946234525329207366089512129026650885104715970151833485106699222935771504087146314727956422634215485209957329318563128955707695658835298930382548950495739892471885915321632152793666749903524328082836946275325671353016859932291895592987778584235830153473427756381182032637697810805810935290218822990085321300031984986208453777539972898792732323328846391029079591825858835449534905076810525658543861195045779073229506875896064311433245376754480212661233470628560033839463533083656737952704566858443926087837432361340274775381232959556134643825393542410035476468170471276382339155595579787987129697461870621336987420628583135208206702877636021225713789547928496870280659969856137574757889803504330418834501385964925363563541021320686196306901217973255564647354653037286808748532976842709428319167544662318366469219934859725074477750435032666177965564230894431968656846605018716403660241191641151836815516838541664270012400127415243011124142260007029013630822287030712800491070147365042307705219635294322363148764176911294994693330957475927319274475042365154795366400081970189957881407262708106291553180834410061879324218792112637449387768500164516550543927218255010758089333445954827411555920859719361926899064125917140672530044663317890126041129677744863512507174005641111088666945975034696803225229829799097500307070207968574729219490875267230973476407667054057427455424352424200073791990444114054115866882282691271895904440186988284109472185897856056532125537033942838094363739515014506649952573141890655799181515034029316658780369823275026196258448159242729775090410991971123060099845810801156785085966656535024572193967961982371143479736267577133718568186172305534456012314968146522937899894141176339946932370765129362420316051383444471532581564506322660750739054984002118905842455748601754467313661992750768432980109850390209306709473723560740271365749582885599658686836670180991378950069582398418729515681207223468352328986166721203727217555522441944961562283421282898753007716372660608403706566565400659009603330745267907441271287547617779150739393874452865833192558042022484326686692086349078568231201775408856346363970674704550813837729921257448905470296129445228458525647563367187661753676232140500892167678662944733145095392485545748473397600361255351146337127936423066316523786639373684558269992818115378169625170815672323925958787120279287357398381240643871995376011454488627089951082712418231875943029659670978938248845398376615411245162546388882238835389765178014792649800752353359205898628115931578326912909845798770711262893531588634553925152637675809139894130031436507067621627932799707267758404103726270573770252683814000768782373203509099792516489515324108233463228174477820303364575838242475229467719332535108691214421801473479113732219412497197396517441258605430828164275569148758024873837717432097513212242119734287814660087301969093868439890593297944479814724435172501935032429008551673751259920779433226485456481501903096829942622199141867181574255176618944902570092129736964688749710284425810102897491590413850752615784341679361283487668713206226242942462959061914514368851446975078234597357505048773369201845752481225609204473928394119431254648858087410761966035573874406228608954186365600918887482409789679090457114236885189527178878702666873039063696563865556954386329560308951209785962454514460096783304155938417626225086822046160011564668453059754593553284427411822740560195906747516585538599110914161491186516650874689869088414616928789814829778405790722077148146221362363090066350550052129161344869558106458319891574694588929789018554349505162221931739534031337790374623852295457348363621309095709002180515584059355399181836159701997251732380838555917892688917452614994317928027108945129211670517376973162202985664844591256457227606766163760629546153899363812924658616019828001803160143289013397968387701124039914084404281250477380713409576858356910920037363145692705768384313186708626612401015939489522783548686900002201832303275729975896360723374982166599374690083507889133104628633163567817488927345654418997430329228639143084604022390973099982584694220405913202846022629977272435142288900805508661617270457967217722887571842379091707123873272036103776034509623404548417798495383981894812835664012019174458155413066326354238358203076352722925797267419977142375883811719600966906412605405811144501618850858401697326159007511016813808614391883403636509516809438815139730379286839086561839775821937664148003147148264775614638318938125849296298894912250746145501260971490506947048645397504264109697391451306254557124284517892492197663703367742443679790262325495783299345958001089071606920627372613278040518664222383203918600123218966340896799941172409120921013699206593389247726751713333534216033825358197357304780749479910221765069284702966135718732622524052797186782037365416921702265172396362877386627193775227660434149940252755324580360688929857409895035825452106169338600148409429269046202051652521951829020348593938111828245761185221967614282859538803878427976018779939012313570502362895217956785731367722908083533448081329207037690696825400117326575678581214712090063116011486273578408183257856808593610362274096277662293949998045166410059602765947681791989467042131724302693926989368013799519332109718170025775628790020509719215713586017853311728509015606912058134290968231251166683488114858952332215065040382017442046713686546788706199420706651394356833992962421447724839250942839908888557537016903428837495247930779002201928754797537484074988801517179437987294708503317176416192290449285578396245559124489360482123384119292604863010702666180547591275502576712318602272547431314833704773649364380247008572301637375872324932477241154790826521508554601501603750546731787153656294783685130812405604039232037311344395236428455288557002722721763789324306673270028378861626503173266052821324151609708610838396618175844348390521951583045934231803933992297325454088617501050669826671321006662540354185169623238772113809096976497326455763900412097733680459061560765368880105121267867854205305751912542579196959593761434753544576885289412361145327072371143267948092012914431423583673533228048523525468870122268537751484764363336975516682224623643651753238695351140490378151008820608048778675650531076043491940018501079833580475165997621279208998948914196783076162984094707164913955189221035874537248398922272104225099673232324441770893093176574916004267810406325061259199833464520080087210355604128407734202777634037958028391756657543012143238773181379873665829012143553861854359654899002133305162144054680417529626418118905510116982642001247024177993000551905021291780757203061015649185541399522204760270557100127611336659231787713585477469593409488606791401452799073153308469534352074624916015561202898176836748047899712458645891222635933381725833319657282327132005618827723748511952493186501172136712840037600946507614921855755878664568751115953626922400810433181326605870884200402475724107118156423759770137536175726506115653231103007897723796825702752088885538444930929721481245189928030873239187357429401003887993372230447675827248026827911483317293711090785158866721893718553328996853349827514230165449784550418846276120287913944172389445140542943824043512028598619709166587672833443011023565527389800078765551669502150647015617202876345050530648479802160525857567281317737608596902310983839723840891092912643416591096640372217476567754963524060259155601271116751588050468660670924804759534277250726174009729683646262000881726130478652641147944456819050044082567665778689443460494156798438181947621449352926401938541481950360227728540847063412101308841277314563101002208591884805640263838759042855510799384078079808288226972838479268282723104530432996642714340886592579243452486049701510585059707237909622918859547061733863023124233168055295273103220401135624320195123401010242279143463316558227094150993502646018769217189186332214285202783963338260812685818922961581253213609340798883149889219889485791263419153511232380944197907071002250616221085063285325618088406162662914697278214808220881208162751431419693179863109294728132784017985657345640426162920577019476770750205864416844469153830509283018159715982304676314541114394333545731959896450419023563003950306719130030079083861623283296275412809344989401945322793930207008334505138329726016671711036806018998267373415677607889375367895866899517005011813749101388359952387689229192500206334817970130289474326751203964240598940735038774523138656419409017477974744806393751448351992158865283722761851436031141556138587260882207492553732627013666798732429244391506165130023989667786805583503230268905118910684674174927112569634678235959601702016186016130266599996091399830618994190492229377189005819950360848551537339096333353611629146271397528419692380432665857114257801403375750371478267904698611179102680173500380042139852372058867314049319870747145259226707437539648651312429524992226753423153440798954320262476642375308348945292357772806092569345085347516337772894791570782800941805042129726353310094518166082995947643544100830274297207154543069705288768154358168690566675574589857145857346478818967064215019961170605871761610393528144313288083546876687211353869181775688526865162524301054648242780767382933028931769809984627508527461932631973127432373305375542149009525533840549287196445517049219686589824294645600482234743900032092738988406567878531148432429785320899871895039219326702168073132575458929473312117812870393910250027513728347190513208202322311002130332376712116972366332900272182106891008759656774733511982008893961689581825110560921672685423746206804904704096043925964131862944649341590378162805912079695569128387540504325445528295974753752598609479215290560225085763302339660201801638080634397981996318766298673657855229204896624404787168858803770984375033597063621855227205462828957086133038234091534534003432505863936751876832132807049651330729409711856985809652008105612827825678089058578677038858220126367814230768735627712071912533374055076933546242372039786970096348494777110912914174821406873905896752766483249615541080602280060133381370085392764347724064281195959032060162093745317715988660150334585698659948219322626852657773811665850704572064513594486528472817519645773496866135532224503818459966465130270080847369655717373983605325904934839183788257309803183869736727715325222901170990157927683781395069315142350740413416053613432789730167167941591166231539556956390631659470093535955261922045011242755826976351839383573527742063561076163960999758129851145943345635686965371481920728107475513735630430569890791615078006925858481427705092827803434028750854991841737036621628091429338714935964368844495525534930047843590213148595075544882697793507246211123816635524361213779529039603077738488953665658153268543599891651245026667991945572284864562547775462342554795223332499802665065047812197215228450006454796367232061954298710798363264260097664850085447204266781105789058567893551135169883247996843210325682798816409175765519957094324303888863602390753465344082683284401471266370286376934336954787035938738452127446207146678939103939789105768690349166064608998797178073648280852240424584803015399767420506084557725590805235747167315948071224175967218780540897500688380289322949188516078547228520704103898431846806763336108262016647412774466316363296954376410414488727142753900118999126690703195664593275686861201535464319703914397620075773658022591655274813385236448741849191057322742031197569945900787030592736430247570313849666262068019456890643540215776621463807291703708529938369977807536297307209287947966232899499674462026607689349470576672437367707841275679994308022255677953921995807232301299495981552611381045391226766578075854454352214910572458615498008523949629162713056517642237588293444325635278446241943988378000610230104395895909510126053729546979618853655461884281162646912139141825482487246495691641309759641936122126173153621983044864298367444022587986958687825113494340630215237833498313172510683084424555028212836224450843363826894949646953253792088489736249558547683545017809389006625329750286713628411042990787819751380235345936023148412660328799704080751265416955784287907255405070149224232545009471354917301959758588330041594849563538415579741370779528925288976025765468901475654733299973555097724716423292247118135218134376331778066030632205692868370492140863605372873811735360470688787513724454138474058944546220529750359481461007878076522145371489123588651025016267221781523381204649992443762605760361492053500219404362548703544575106711419248769180265889374172968961803101338983233545619445101045396551924744883370302511426843379913518858337207518476735842053574057424971258727677364027230092300726285609939988503108614084067610377257092134835759643866645198530119102733902282364514078359591152637018501559891210249871841546797133377269239893101139417250334672504243449864680975015531716470136684673668200625850718431325458837784706668074955157671954011352425463130651257083180728390639133730078671393486940222528055901923780288708455134518893444757641906474273840856638688195956069836620703639917896719068102253635970289334654568627540935182727817936080175569674324983366278082832729211909661841667027436522408852668430461570715384072003891285209415308939232874429450913061547933995793511582882540383615706424184667385240412196410261941920620513871004439010644023513901063125970898257164240248968283943666547014971704703745011995052694840364434952764246053814288839655663821069414242301041714311051972773302474872493228994009621076057254434885533309516297220501969738988873391230359530674812697500841595635835677062997204326168464087776067715491394989605761942073539218321141618822945344674665335516639247177292468202902428114625726027692974177307560066130215982510369911959982276225955613811965157978483259446145496132377647772420232950614631624145078303825749170534431563954404857724202809011949037911708286121610793486428244992578043947262722358202606484381934499041218767816622886031483760616073525588658076998522206112061037549083961093952585791551087598230747169001412907535019905603182549233992736061242593910392062375496027864561154673763320365821440449685010424115643863657533558446230261990836059588833999792948792870518601288519264561362132412016799480174155426983827617498604125372040396081574598470193243844295672968286982714243788273562563198477770065592386517721715693172570421461081660563469773757157878095402566432351480565206954951662758566738564075003169472318005654379606751268544296782130858913600625021084257329550038940031436714864309049881018232039566519351447901625983565055734245487771307016778870174480366139833569467580998421791166997061342183098244648421225606667819654777796258197033696752235599543370824191969733294736013378430906622632119602910045930224395206193744113487634682250014304906933913581370002275470323775970560767188984936475649590180980991512830672275477368885457444982996257444018522566628585286938173620640095415344459721867318351592027704435063788964595501966279304213702476506273634418020623477241669472205186574071921840346474148510284809428419134391600597063686042293876446788778160190377333261443860817100366480102518033389540072318526675715560877123743850202271313631052404372906018293325956969840266992970991312681942978369600331926519374181141905812629802417879635465554458255832194315023798676512441560370371705399750570315789391964032794517899739863062294387668973984581105139222682593321785953500736893126297065752126007503134995954793261475916379378868198791918981884550913113256501111438207572860710381797902782162981616232295450848756007508440074768818097936593663850483983978395840377630239699087130685302718594923220490673784674774576364722141419238877300174830947790825107200865693680272385795913320786447669230086996597911624857376214395079934089889021504713296182067767592987152442046317319309594446609338367070132096011581965144605095749959378602293340555785095463522341928403455812701267684147298165394688350260374717105535111395801062456209316494139898910684590056468908501443663572319246118763338685731448084541252540610771226397995842640535915404207930611940610342351039516498380127633600982992359681490986004866572923345357563763696509276898522710087945360088471373428306226853868001858971275477468449772984252280986095120664551950145816441774186836090725817962439850326772380446587852511178952606908348300328427651700091579855560639361424819517095903125000752423196524573045279677458134492936105897072581455686230651607912405677043464843361268987937980841443336373732369536599336089724451852540604074543817060666094770256494596036858665273917666512560059822627876883227052951943134920240646519573750343290428876402654105394729926163630927159769321841117165845442949331018893810774281924892807384984252263618683508889489388788125041976154071282427397370814051993578880835169247493173137376446386497352869073772593593838864494678387371215568026167532334942074646094558859560943489022398076586904726539877514136186463376405697654765080493970863964807408215287956875684192996070887174320528016435848055507049745110049166872116220717856955747495343906354971917902291589709157235349787859823710091801803734813792021860697276542538975823718808161668065044574614341731596330706884360297335997541572085947201059503487290935459887479792208717453158296609957533275217107886931190156169982853588731495117080693796377281629238313803962315110867631590084130169508800670775581148857042789332939349067522787950914608761938411605598140506920079047335445902256493734848332746801051666812460255501724045465555412834825707904844870708040310917272089633294223854613131522311436254046089656094220969743277219828745071287469239483793701658782898420396233922115422908462106034705476087932735874239902986562215005157581053437271934540524391173647378545212380388703722255545920150374920880447976648826995008861065029699810258358657064210837901610134316414109271101465626412274194731165786261918833379512036397319572205166047521449187588212684279816425490705747199002704487902820458427175039127034238933883213974402717390329532815400159619537977228203882025487364027871865051935090546141636509818062561393136855780592337584394040287927916455425154844922954324952572234594094232401173951542613270115366130548495931294723759837320710820272782634480534233661502131516234483216786085878134393461349969852536472082062187803323000074423421662559237575630513138425679210384082822758995156239381801395190720355464557372562204613078104066233285114475909219632633229151266743787827188733620043479250696378870605193453232498654868684185996672511497531578182824041898632801390923764556484598618575175534628787617256446091270977635658458359305878946715002303402608152724516603123373279550587908731982519213271167892668644406470092010179993235014296516171676293158861933410286109666536860442958614274431002672075704015422898471310514220315287128929913180666617459236617808880638403557796611517338815282997309026675678568442266889096754833867285013057674126641568653246197717314843186613877208836678881741199620560315120866566599504380980588681919682706210835467581522817900237485937458099939358798263346292858538401524915014341530410363708388650385585493365026888367074716834308643121069467669539926390176858326462518401820637585305381741026773460699314954805896329733979591506917645683440098173232338681804152842851788003715678006789031057305651316364063846193299858943434270034366792561400344190021022698297859206876194617852054898544466055669202443673026702470397141938439482798512566731326074537649539295638000797224630573097036911268717062868963049848715132210086453845953860986122518331384684234076189965968272665435113454693915117986676819077819893588127869099386026226767085775939949588768057552859030172908601386619334531739288397102205767872050268104600840510361527960938466625312875217616280608131332978401272175629572297753010657550312088104250235866698392981070237228914606161391771623906545965003234528239814393446482474045466876206246551675716569259802158551691641785670177868309426162221088914460403498104397615021516477210450204694978177115758836046704756799747210484547954234187817122478727270185260495719231470332697122581316394826400597637641960141586962493580733425685953236432979428451101612486896079133915699749370066846718472323418215559212271777294696375364127634211206628421669995881989689118106096285900406295590593154310573995028435991797547968789912354841348300779220083467027369977993492283042342721424455680244802766819527158303170664598567522690124926865744464530940395798643037772447382507406427933805093756800520994948683415574030561414314913816941675133134279095261319276627750306670514057997844176610026051227014584984020819200379575380274631441989427048175489297876536321564077076330724738908070179567181785731602591596633743767697506720376854542370295892208426307886586233577010657909319416918325589288587166097030273581307039053061773502923481080270056147698601947212273689899667219695960600985747326562979338066244003368139657569798511289889989946172119601244423193065631126255049039072852506681920266990618458277447039482125884414820261147270327665096562273254294515668679470148062034923462686785140912789168191570043582190496762988900205531094633024503821207985297122114671801336922130251574178025064668129373386259079259373845419915294211260278360739336267246716565664480953640102463129446673999282511406917402614588023205401801073560532716156750922062073603402974708903257557753766408795477442539462189638539636095697117549103503807261180720161225606856252910589649694485132571416080449781661843331311530690962439496636336926365902986727615804339045952211253312012899819091023550424302472425136945956671606192198559498850274485757241553849955134683899950009099130594953955492248400233020368922993971698339588479864602020027018369481333964551942382210220782901379812543595135295081010679278894824822488719688864692231824566838655064008718746870426160243519205754172638788305476509354744703961604269292184839681461100769397324526901203566318884669753647346313425420803825852248572919595934774215935613788125071402818665720214653490645964247332092846636576083970316328108517914174339288594035958093890254250651603707961283173743155993067494996232856209727424735702410049306124572977899922967622556219769795641736414969381684876882519343188582467650060787932746339558680923750035806483779580854300285599725602783407404322466579232362964872365225921376480140667853319582148400366917890886429733989232581841065933201722193376742781448535425079803833150956708747915860018019918464535904063926087577154558788677450290899341014051784793500571620265293811373934607385828348820116691129080310170700551611027841107977248191788856214180018858876769141225487902653492539352543917412017773012405012310824708270108935221741783404475495470252588949616319199081608763413278432275979061353401093159134664108806807015529216554223657012512402590711311947309973527504405265838658358654252974444167725262475179182301866507883760445507653449942718269967411519318028825434655493488090210513219133211116004016247825996182993016893950212265216581679309666968211413415127523349114659993339303468694464336303084164902320957455616412725316397813714206755552026868004723940455460039396426674178449486258770659754345453829774079832626636963940586559485140157681508172248045671455418016604416638156569073603255720060302933589067680266384110286400017216880660641074894969821417256408461130653661596344940581109421213062826331638536368690902639190805320541561114513009502705111505022290849081739856697687571488777007886234323035972090355403454872987715037740037188178794070713780481186215210283883221936986194052941920582292942243567385735442654830633658703391975439986629439658188819686280634735725244775647857539451612004888033684873688811572512306424522612691025357327693479211521785971745316064333549355466443931540716754827993923960303598379230344318268481582898610302595248873606150944756192431170867479818534786558198414581404169205075065534672754274251571919831891693561862353623767977336498807547889725727532482839226869092750523271100151738692577450824277038099156464807688083694245056392917658202170269346871490516152894981222384444381287971341399919594427483021616748339735918885521859802979485580395048176254236895045953714609309741362760621421662918149576256928976912282956821700096805847542035495418588369690511635265788290990164266799906578493017636033115607744170073288086030083459076666024153168648152396029940312593967740392512074049756019686599161466483729442225347451798675083532750592090681462919148410556052387711745168291271272999892673177435735832638898173067482332789508465222013625017019353678002684941645205202737128414921250863095211947013845524962584449208424614386900589468658347758332584621800919975515992726409989005630588144433184623499809118314478592475722555337241278538233516327154113025428477844282900969660885186762372812304684621280661839777488819043113636462165035116316399224524466437044079501267319932196383594408540991307419319400158630053003120931219977860857536811716539964069248265670781591806793315074597411934953264207540638554030355596895189989631006676651161827619976511830041017266112110685288114754196688837141251343378709533126434164815438532654406943774648967488084603443772053750371187597671722871196059880101958333674087839044278651805528197368533526029419837941471869350056776400730188024093596645446590116240304768531989099591226508737861188916938278648766209055419078437498753022944948003372353996382904446370001343700456199441629564891262352244185244859793296108742096782944763894378399685037244370697435115510694199819136602115923279531976286494029267765831924230375295084041435842432560247087881859941236226553618052882206732693068262982630108173111604396871729254799657674610637052881376458358782284005874643460323368486518002863347804777373029799641260620003788569116993180088891312713873345363332050420886669546921534913862353147260704110988515241967854185207997733112539595026773549260489724579462750795592229192328601020014157185444933960145794938586770814172604731338943278074141040007558952313633345597128794061558694426106567408821911110233030742957345550210294738421800310269739566076887581999792434308105461811178743545617851604272138164889469165343670762565871126988159255762193107339412043958243933196514713124522805695741866286792969206986506701262200986588064457125785686406919511404419313608578251209266060956694551317240046055621296521492344005475660902234578709420712095972177004999511865665416190902567327551204619538765230556383126783064988697594879692696561150119818313091920582498178015484727528175612492737305008266780374301344257078415841238949557146945159626415291058863114399736200817480160033706607177023257528399725711093022574139072236810910850626429656395483178082826900038288278282113516710738842342185387635804173910870063732362687457536649038639658347549015670477249440543220311283097809822056926454763461224365741344654116892246209644081441804523678393077369553795601662510283924241268769497171751329845182655183631226600508255943319822665339185478123293742316592021074107223176283207637146059086825545833996120721351506332431414788458332324220148166439121252524571845665863019932075707893805820426346228920314011757759479388016578266318322905702063725181635985652368429155323335928581762541241002454730011896307558809556081493871580435994232524486632607231929132502009049399053895176777746211233119322085009801062983419530044207114571531960894512917784586769634278462142413019543246650410639944195540611774496179127928186832801189178533209845690763278399931939275074066642648319811835301659116721046558617177416424373461984442086110323048168174404060908516084259060881977727444841534822711921938556684845230510975184925238085837513061446373732364324774686323844152405254922224149874692615899585048004930844964125367095397490359559875000024101565868593196560966348919702862636883417951715627696844213962635218658738892993548086272040213298970618250120472186139069418462004618357132401021789704386277823910629137166316874240438697694579783969557202765272494325978420582677458907124947326237819178834333505005934173052926690739749860538386839633245398869216420090422977619351219922905315859190932067482977861283623415682186437877600531030601617705513897027313050631620275671435529366985673950831867446535629659287967919569754151988181426430591293830853038322915212006047329091873882556992559177436264508498230500698490839632865264156927227827233552205747714227652357964213538756916761459375991317796859395430634303139909622744836380816308139605908701578208698227021333901312675792940692058783878482176301500588169367166846134966808686332364336859832039204284173173555784450312251525295299043364657547019230624333400367530983222029438589459960206182072303867747258424623562785947106513110198845743054132077046879432115647480713419755169726818876191860018168184327138846964019124357013235422711546856906130903699409966764931007962679250815162824048890236961495090242833031437302976382375112219431682519571586393461994887695421370432465960398151051751033045600279432005312014889815238073843068453514394815357570482910619775548976962614440692297079956740689587383594640457501532678591596172977330706014188117922811706224243265364161360538703877309686842124482475400356006971144090627953177039506386702690840775743684661564930273930731755588594164932725601164000994080300810904495617442780129350545152664468100888703095050569479149024951888095693732066771794962902490082497420813776730809958220747574243163845201597862331027741395215309784866825420225997823516332429749362065359765249088034145838792411260125417253500077489287319911676948903182637745929615454491463291925306814458546426594341762407002731940606266537230263224124254006897320931443976295296014237594870255128754939152420307534468035475926843027304003500492657537311052544661412950353536982747341347771646316548910903818859950105200211603284244374210178227022900744145769816542173348168679232698171477885609998416136436408201341221725156377338911750149179825097148766671847887364780612173261412027296506975005909948593496812627287764936545470478776384850145665266986635733125335491159384844469226371158516470018177203108647020644034781162116752194661094140692330812214087553901129327747787870942817681392292753952343943425634118237236637874293769009811646215365099827045777495366154929419718499166243610894852835689382423751083655154810914894209055415940956329038393447650936135992872431760986720338315191633879842344781832232980332200044289235750763751467579455058739041087772922392064404820423188879333705788963570423714368916667709577815603924057235231561823832969420169191152307707512076228592763444096474376215350263582632506462905460869723210941502967423578166797504497992459732686871048999026342098329719124329227147902914542818397426275473616071809453878376495406272613075489836847996483673696187335117909305164714588893009449164195618472504182736199463166053177766062946307835998399997542319857436371183239796010094993013768080792783015632533457784021344252445114935104580027862582303951827047619912171561558413169915883409030305779315545080856008110011377278549709257782841272438141836263615979013147063594458242624663793571309704296234442509086118135924389545891656161093653248389844017478468076103070633226748230311164313009567544493157390728501321492982827711337939798831444246722527056408189080066909293420755305219495687828482639638590822905263970681825213980213862274642519519990416008915595085861830267466109972692956778505469819726416156688784700152871494802763842754197246114028722732762319469268593600617877158177018675676996940086907628055533166987656375685208856945141921356853745272837149841029625974791158202466931662052546888736055533553789930112402513106337955037333128902937329783163521574366216665060752089998920105302986972232738073834102907345612872776686309710340582958168026647729625461440589814578037756689026494842806385871751729212320051810551613220454277759322986557728986659224625039483221720895472493542044836543524536889288385947919502953183306413463836681067312543849647070064352272745071484156170151502563457620829150076379855300159118583355395638137399511116326728039212241544389914443534964707757760707061541178570865679730032864605064407654103596587197614642225326862682558751601048642019424786327990388526152441299709093756196487656985635085512937619239800082452553897711913434571848675249052110230758906236818783636965131806059019953917925370355386996531524961470576357882285416293147031808588584715250040739757175487048581378919244223078480156785893013901574208464590552816587522335163109881802387437490947988727877975299863636598034699414060261586334376258987527836224726330901441372370721977868965842824419504014556192203257796173853870073452232204445185166876394925234620986336671630070023950208392541953569636153903488479916136400036711611050159519379116832251325980627975051793158878333943588238366139916174757140847973231901678946109724482668118135951564853413231373676075379112941635653752328583284622932144559281233036427091994657503955186802176484227305099488077217951424208887211856849592029494954609137859903997411252999592298262531740529696550131780777621961854148988205096819376465502526310059417660603353014525659691211661673314271959702303497158751944207894866161708428290291029353452773480608988575464492417160015211815110999333378769920285961373192676092198009332180809655833851131110176824356059265142245873339281464222269560582056915868649866814992543068694320039609283973335652340074759301121016537161137753279107493670610192604031209000955666142868716857606881050262862633693735974945988243090883166474641782381370062637510723447911384612996504061280843665184250415851968509199446153923987853260693362952452068554078339927177370833280443491259443322360587146117456596022258094276829819200727717986099038927658425175621722829792605285269682289648372395259667336074128163606368914058454107751959764920453064361294958206915664239495160967763448730893114236469499322334846818901345673874134561559089281402072351341674357811767658520591431797232509033597926506839940082988756805779139888720938500056489337453197031939826033731021857692034946961179543841129272994714184453877422258248252740764602847875780875289547725157292539822170864226549653130630658650490283035770985918386135750375079340145462517649922714328946966734171816471583007703478348892997042299374014471031842340502866689291772415627541994555119460429318419581425022529053636276079658923375105856683753936273147133919827608447349495548616394213992951295660849494694072767098573605863801891674650232603263547684007979174631694048471014539884309794988902528807721378967457514745417344299040418493953097199807273234457243567570169151483772399058746921305702987107699226531025436438423135847731002055532871829337007984616333142534066193936651045207420022594341385174541616595272386724675124114857139648666695490456769104716198251409006102628283020320899913230673663452083948642702808953896169984488389434923709344136204010336533261270990933577753408332009614923325679249873048503944585140847552666382711190375567097567837508552168725634516412238291629819167865013260869341130181087643333456290862945421036723628826194925159184791755395122381234717294984477617617420993727173056095765869132686754760432586626453448840119398826285651615625137499563618211103891030606835686666065964834149717875333288687274910320738837675818327032408816603317824468532820112235235018893557452261136300896754958772839612967856725027389930395180317493931529307856152062867733307087013976045618825143522097851602739049077790952912202626218168962405040930776235329474376973291780432472450673323488548755524810138895238879948316062580406107680041679219816685506282671119010708516393289329442329396700061764580399842658772545242710716270960757532949844138252134594293881558574602959142085482214180560184258609438414889011655716722859556557296497157809329527026736364757271359771242404675033369218126153698758215713034204577692360005670288188765776029256813024684420368524697841157670107551202984226255969336070877069882078547701666698981044289290392202916659568828843187083979779639564573493371405811760198639225197418953814774358639704233773425225754495832635063256229928073799114654300072380935291537568744466520767174412736360198174596154006010881512353366992097303812224882836333927473375055826587783411773386385782189581021009014059635406261748950766442471508027759875050087939306754612374979017108480138033266763839999084214558296296701115090722313955483097232701337897510327366680428122814918410313943384977562487692084466407113829167531690647351102872612929202150505264734424886789755015846734849744526907541753556967036607631824942285014954749108517377763941168534523974346975590912312752146152288697488096518335965671803999115595122875235318249074862354480260362748547349789838444257501059403696465519392382717116745778172307874415582707888575649946198211968251183462950224387839302299488819563770974296356515574919452179997733582320230450145636562292878351145236817531610588141102070400662031340337872298539500855664348599214301447228804508096071741217069038172422221014518584632865117135570909332035676421277953431848365010315317009928105710546799854352611801868122267411414755102725648015549794904528296934211659275658833206887278377822330853106760197908984986154490903422451114492802523004652115109123909814903542909312317026054684532855806363239406311628993354488566829991777042592220456390681548818641907713750443295344435817835293449919736743545301103423406045987283917132648085843328175228126429714210057564154362801400727505842640736365739167724928119042494703027627706680311061896807781539034869911364057765934048177839408834093292329389381241531630147688903101089174520947632906556860720179461638427804191566181378326685785411912045311470338995568803320089330455991660898639238166513022237312669253303113916573324020974373933059636730623716118769760499863402450928318835360039051333178041175714136678732412251449821821361166899732301836593137928275675744249431033422042298599583362395333671482471435722526634234843304424074736534225410674660631985728441474955697065446222988183025093066730861490205852001228034669980678616599658902215339590465829242329113688733640125643391173146539220983366006590935468125861659635928909226720122458742619928680211330387309576973621086658240195557158544138490676071924781688591005479155762967277122520874958726942718328232675701338976480675968700539891888333733777552105597527895146781111848199558025375556400901671872619155431728197072747342808792705278430046749510591309985612676164452907438942359951768345126291788886326293658004800273379670128478418808985190261817920056132480347289268923856111608384287378228618984506404155813161019971673195933218284511063988458485452064638504946451864921752252315917902474117820826039580600860979338797541265926648592369746453696774807165449490803161689627244238806361558801775179526760006406774822803319516401473068714777755214548742065162501863061038849053518405039157144584806078113468971442015408802803701209386177391232506548972976144550076628745690795399975937059284995460939375481032285420684804524900511459142569752865188968392485278391922329710494718002640014622983917563341691006391810523589624440743756817084984542651899151796363288650305545480986313027327577956854503312291963367865615708447806702769252879463571452556714196619492673534126436462301807591874564935920560906968759126603129864336296257074437562740539456998016998898982622373215164401845789364111973774261622521015096183854127491026349048140583344515654812679752658641432551567694663635431792911796945065957168425461918912555256782764115375817998213194402365190453543719883320086799828561427571019807647709362502730805661741064316011937974598970615952755332108443994542458266013845465159434197984167776948153149485781789768771208609467644335100131114471598152551749613341630064028375803926767139355088696770274274240607124395660153873549956307233630621859768437604032799687149359460642283323923593626991086294789676646503623130382597959924481739355193520933534893304022299171204803379538320406228102563100932593350101028586449150219257231758012390274025462493627539594013673650799222420110535166778036390036397288042967063664610450510570260904000967005307809849302838781232717232381988485382392559199343713498894747049898385623806883386269582060542436242294019407406799556175743119319970056790302775730383088485617610101188306261258551802668107143174034081478637321110716854343872590475634557360271731248894219483921175578220514839061414344075407424758738699699811232880848908877340150366170792969720121975638995277971747131784031424697222926122244250837506198065236571535630058387438341099336205602585571999358732121060119605692598823152094714036400018724453229448788128284857991703898453367128283303618846701637867328852847056066572464743684710509840049215750730767051860785725244466985589103922452169932793144203648031255385930495493543774018465273056815490590926721196914710800408446783488402937628173290619770545000064028337160897209753852537068754926172503459203666555699381872831457770211627661020966175503022785374811397466481795579524633483949697452860952747138973888388043614239739715412287166529223478396461839816395648801071754293254463899460048906791026968437248133476065929198929985226002748685815662894842833025223475480459514908985000050252440266435902098739425785883928742903293614521882121742447729205765189713560288735789774622712809986400483606524326265302163931231888083138971010050299860586953608112977672217930317709865262810057794122446775237054641535325525394013478583525534226740228806252917616465669459178903694675137723570243926828817052345425544868962956732108915204435048528222341722844567849388975590354041237978209034378480068469322762899888452558909891915287187796055607835594573692104120094159836813880405847233210802569885471472593525017971700597104587861118082514866539153444331070476589743120459191849810222493376442568011991844599537628815143942701442649766828057836181142497845594854087999756272185070212413983747683774890923150855145562128657701247791205027819346068742047415568669919478602038652775918879984666119464176824188184196108183911573866582642336994804794533337498637618357154257199241064022912941023128253740741701409793486012549449421519827172336369292291221315995617347682565123801300181848104908554699343448203756388517800741275242557586777698130079290922235935078394105859220131817160426834415277990180354604239665449610145403348125345589206084281365646323262227765352417486091493981397716934233590032685269396390434187871867602006651351590805698536318955062641682165648130943440804495001895880327589232088447786500206307366503795294123128296453334548536175827196434936028633564663777669526825546048835059531576941306010088272839894938007006136921640567146788245537151263098830921134995494673185363662186357021343639748760655551473999237003262124234479403736342356286712755646325929916843465155631572021510523245683116212331144317426479063804678416549006302665804001142740613538991898509916391039357534186577318605294861463651927051356006111494440632984349208008809536416949887491783257865937046292153352647337122121671507110938091612253751395000215858132040079202038200337333105361034604608813178509461713968571779505448823430148093305764036755919367835919249951186422793248014910971237566985911449545197647814902940763200179209271659444438117439703492375998856305065265160915013219037901065277483609163070827624972308340621071724626267815311037847825812219258332456972986727028908787424363588549746875815095557635490834188953703167523753561208500250519566021933609912867993922858365796735161811345719441075355272987636844205152618544251162372787325504323416598540608029054018740909390002256011632591988729813168965630680790907128992368787314002524424522291126886279374100930226319503024034347664500234107059293291306196345564483905473789933669079529611605367827145073996833219832031802007602256847001716720869595572396684771933182619325077480394575610362075819106123730103773855634587260963206964156942804137704749581361926804019428974370611263576616715368970663814320154637334542040659830609866461746134268526021767946326132546154705453148889191824870785964954461487326648556131153890923027173934307584782514829104509821442354041289219577517958831215556556203909228160231399595028015458063530551911661457301268088977998894041340216967243026396486422195562265485209514782069947565466760927554089469662944505622777323306750779069545867231427358071575455017704409619296162399722311554145449748864705090789634975078627375283302873469472022438074091573847513355608213005188312634432433604182415703910154647286301943773974245866584757155858245872654171339385028993229159419316185312372369512086892202514151635061750841956054653348513155039692521118603119224804411481752151827077828614563628852491830643807772384665731026887132121736111415316906621578625112663017649689538762115231276074368615157210405020040345480395903844057364422221022083496385845088515241484160919022908371812302225130887824330117423196452465842064514003435302535121932289068884476898578797630583183461124577637352895874792765279755112315245613608893207007661806692145750443583594631528154078224104287372994409307698074769636535667281242343863471530717546303985935309256267183874664479147934101288753845571315362555749576061589021800463873984758557794268380816213507677717852545965204006281682948276283140750455607658977349334555660504558688263885434816843726005733151213230734178576658714449764893372857677682231894732290201757246803218901711484866986289059686947768379953827655504057476300444685613943028481336437260529050500647243007958105205761899221222881560776340004706530406014999454736966146854102371776370883248006500301010777524436804647725986241337562230243724120052796812130337183270974166870233455123825042160465930490971289948896980172224353903076045649333215885663707149801442653161066595408993561283722452113482100537636806259528030091944254442143384064384833088256443942302881171174299345071291194739254379961544981858553066442559445169379994553410022613212603612269627727313750181967254895908669765020943045861079503457772125625294768772529911938711328558740500232846282044563214546459776966507957088300487081734158147924366694581885139080869464622562432390150240062178351237679600238355791302111348989653188126253501976256092410292754541874380483423193052348995647204759149567909520855163350913760695180021714098588887981752143659497931155896700542551365111733588619360799846213397747268356823318429280242272635325577464061096847355491175524575826800453173172609273306300207364788227798373724169316754440474020616388434544587694641249425582997738475709350212336961347552183590229069945229855644344426936070177926430764467010095252980484002832268941868490345590536958016070674048825053580636504334879781547259024074625496036806833684135101646512649425322116452338095592813117288075568996500880898033520411574229562945305815178154601715514514773676982198531197094668553486513788310265183702768787929795487409312348227775117916633993574394720394402196425719573881144603354160966902611268299679473668448102153212332597233651587737826810046330554679009533661642681426260599325804426593067211202561462421826936508425607878560287653072665181783683630864428530840574721748554556595142243497842299467513337478434687765951629449135220202869193255047017526957218386399388356495741122761226542475976694386482429392712771358804609025982383743801423855453357978327921228690132835616598706357855834224324397296775882669890789880434234545017521861488793309595779387351556991447183523928435727470281686115300213050364705913745594023177127850010890501027378950790590801764980248276835280409189191430536869750499082434622321762797540509583896193961749837083835489300749317821444035623544996553714749164096281883875502952480192226899916688280043801769121142375726825532910846353354322670711016383703921939928809491474054663790438086843291214675481541905719310518153926306806212146266254025736141928969336961164217969733346042004783748022127666863558551137805829798394389120559444067271440973415066504374936539808555361277589580278638199219732102847679282678763601338930506806779616432368345393451553758841633832379304742059704885187802379867215073426665030262970537630062928204492343041484626962156709775001157908673408746843881447768033391028555433093988880893834802341375842633435862842265719717831627271035555943206201293889037955721116325169460660022062823382544788342658934476009393934142318936012832282831434915660814086921326563757590729978510949112965179284992994658445646231042487045726431406778057717065182784567690711848682798624874447984766774013034887246663969550862726815844099976378013765824914059779158511794456861564727195840250171122308145646346623341546657384896036403249282651810083662284508292489001257804444493921222002062745331996683834683233944517835248104338219977409756761143644106552241152704312699278919664416040828613263005403514599429131805134589248492860514390305742569852526686039922395108342282117331037504731443670724400343192090766564915642517418472668697372643507934210218701028782252608608785866516209658011162828721610394882714872268255863451416981799664873642424822668283427698044824384941629111115519733287969064640069046065446552004796202021501715975854441327390582188531963349879014119481634876330034315298546970102009898901372297576678651691653647309065495742863245724648364827131161843576627090296339355590699015189923615466681180658515089401175109641671809654718345525916537806154249809660080524338189336541103369817390472163097627365146337864827115857488398327247522106134372837016496742518774073031776351235850376420886048046623233860707746687135210940394630798461877864066031252719188916941845154588883313444799406417434293317160429205082570969634802625529870286393470460222382692204031636057439491551487634390341139690970647026546533305502392800704836928138472679667053761257082237809913545790660415216377417823689319138060933348149212437392219003822938348788016570951711988645673930195704179576163958555040528101672521525571154684907810205260711066869052429602265329877550339679515362331249251821074328743985829338490492210928267039870972442053092642255727348793833010544606102430479264401879934359045468228474842198557946619277087010304912613994972058946119666036793583549464295727637671887469497587561149305262518594963552749077571555770719532498179577255480829625648829620905655206223395750988723830228755962603223865438216506199392143914638752660626384027049158482776578771771395940722940818822845139772707354448586471595807104417621923879751044300667549720614147370541548305033572140791334744975141530826598710928629070493291914170152754142655780284389495518908544577720102889812300589684771676996086647661251624162401892292763791307703100682208138957443307220773659274704383493589919743677888075613861601094573484421132277338523266310559937899545151159512556996440048054297639999825218734916265651508088836899325789092307111841421301154368633337475645764383643148907763006420332261518515111613289863999206019698886089499495047487269589242813092994792838438505097952985674928133197809506284886695626112686185746498448913829721718757068594474913543757276991422183789302407521055097523624722102919915292592898374582577504424435423849937254605270258840883895624562809022679416197605593998802611865646922570696554684573324070166184183861020212166230104965851494503403558488130026854732724209578603315278593075925308749369603520680147614825298640297719889681307919752853497569126462248915475497122164180872783793696104794028366133176096571707347351439648616664350563826071782030577488804292136726092783394904778340737132612035817414606847607944278003632848450975593565984209468300537682831952249832648411736077023686734841385292314416486107390394563545544157802079847822144397747245274534802761933795122003545396928299638656858941949862192314787036757093924182378435529135280661613230729205968303646720086862041526665702461909911883402469062219522580425261317120545430983894155096230622143352641912172033890455273328932038367122330578140510991519550350914412569784857326544533078184704317243894415461356821467988315953448250113751666478028533154516211704572076650619871858662987189222637335239883806365693561249309587181488229649460668676571114053912728651809729821033559676504308774536705194907368710796738812439373493202283221163688566151218689191021525610483439863419539270424828669826501650926421393060022305491711356043494386004266511511830525233005377629579271251667876212651744198678284092333143435100922002256544709297840498162052724797785802197625783636172360580943667276809958255272700447290522976282713070164045649007699687823893003479176219791667993931791347553221712790537492767895456275088589418772918594570485513425037351810013347575016370332578991162193190373273462404142872610214921115167160957184033816052453208962064929170718170530795070953915513590144833049398353694141010740245260068213818150084854853070859940947956935866863350477305914415921391779841056733138046305610710808755941206719865269322488851205886956303939913928789169451771546196625805111093471066857005759537009053402952227869852248170040742194005975782559464220775489496766446316496422567955354173347047603925930606497075881098476314040113043613709253423348448602022488871807823899266214978205832883954835117590486183289250694536312203325289279427031989445739407337131882867126943312330873854921357028819103239108294070693128130379408746349536357524982225643407574696525306887693504603271066452717464225860472725495371388329497652311023667742173207252692644147982860071233574180747787170622982315019333713704230960397827422199716652153925553669933544320339405590026897806688303378740559896612475619556614954197767241324350495489432633345841808637176253460311776230973120415871858396012209382864406440655000318828011552364839788024833382190407606359297907865531990684851035517252729893658829945334120679293004696268298917744818790131864360172526583160489002865529946086558687382982581851018790339712759592610874611474482549923237522026913643003163379101465534038645514058667609727673415413689696837332294814651352651170871105867174033736710593430016415878433528443234407516150256997417051342105214460749451044256605011172226409242110284026334416377964866238984712807689679995825757316628519514341120731698562812564875283033670723222973618894443140406595345096219905898148716922713355205464092589137419424256440418674752387219354733058521682959601717105628315461841592329590381444369855038297305564081304467332119967927245680495008306229569537219345822753739723063272790442152920651703883551875758633536177200570021430324438353414922082992479968450438405863157152955129076838165054924066275346667827549082549988701796013665117650449819783687536220330828126419230048802938841871710257512512237694057495594373651339531449015498505061265093060557637425872253880968430755891946313074618516955628027021857918732881440129991670115355236896050987147353289564557259500847680634298265506605112996702491742212576951445019698615788950211065977322518233234053477046536089139698339841906527186290100502392685403414943497250856342017269761818413728068021437693192171817258634794191029229062576930555172634418223414137019575425957500699919310272441309920761004878141738510369179225107673151824261742315130128377117886577388431636602714140462218239481028280247311984534390863062029589180166330207317098612331630893845457769827234235639528650155515444981991440061637026976992137234071215273351572481648315588534918233590990117794009788679821297662843847310388558369921171897436832989039984082171690286842770819371456212981265392195123032025529052178988827512115508893246152660554952354051540165399306180337513831385361958237885074574945591243120684442905989388802236410158486769075232945428680184884261568984720948477556037858246277399241034206462122915192324740550563491271705992319524290506033125292359760544934193335926187579867386870112020948172518837644493191061841135442903304638452091933432161410120874317784582891448340642740874539727399550027525512426600736120223849462566850726171122655091779858778467322552296178268958472203459260018404992079818817661633368638175175833965741814616561118087775384204865812015488457507523633681780659067898974785277728733720300824643026649949223096982775504379734549325104751086101732060727052970551601475149926008615335815734406038229323967887163888291746774947893964929672602792295152434225426983556742648520625376627637791503943246430671946781185856859433436686341304503204974240784739918460713096635004501398079135893929521721546077592008253179517750101093405135899194847906281543572987817029953067783912219284777714826980188449260114202316710998193536163622598161030015566177933347801785910988196262633495465349508941442031688795035821483600316461630817189205688662416888691659701641125760270441788203093068481606377562820331197115247605057609294640913027905628249226241088598553364225566945938294681475365342091133735726433893077212792398876332237596218432720554036601446175848493242493002428379823951701216109133897719074346842296347426169345034632981838439878332751144989202895357625951349210011921636113313490147386076937032195592026123361921434645527531598369216467094044280031330909885705059111698204113146625094980990191885491606942727937959018652605180775825643787932211660095206127346134516253804916545436444815867294702627546813646258258355078017695641533424855773244095143151142613703403897144409128727106148693666212152935574189009685017045467496628792578766381723608650364771524360797473483884439658732231143393494144583011809836087019217592645470740512768648851650965290240002328915180038430934393437851422608904365736742118740620537069049215755760697476318070196945917608970336097636661765921897530181146515464486186820523888945232936500539051462629847840022702866729854573374232562735597073535401322661932641739936680015235362549057381224625918546973968289034526218588836183999473389298207723883215975901158695202846802207594316276500162875657385116554878273252403927907974552825060486635302696198939178209633559857542870182588857593963429748904022028383614911183476353367365516272223063714428699447131404215101485987573989983731400490076832693255730289508340224756528493396303682108881163550226990181660606760236365150193016868339890639025439004282468417945810673416551567762107042880885206693934463364085547271606942238582686677219431448023920345093718801229817100050275124041761084523691947564506806420463805087796929459217559756326984691861986897059173830583007451128521401404717131785900177663579563861664872909089549550315060775744826080824787185840746853671416825330493881081655979520439597165785035524122213793113152052523652997261222398111322089152491104312585453622949960529570427274319758941049749444714142385809790834387470498300250290426306791671182810268093547102114165862618827816674618517926494621864937267773730103712595652052097447539113249376123244348809356197067334510190553119372148574831429107842557618727206618986994109376712000322208992932999063828445494077582566067552567096603880334823890280266801228980730293184106502557931338544671442205995098598129197855597524314761821518961753860271046605303023284987553465408708406809289432348381806763309211896529089414350818105404342967328457527637596153244056044412705071689584853870143510580267455831605878364248504344259535748036419814634804014799588208499100938369105204554270721673152838911675612027097359084931147017605735301630069387787838559121099269324527565246376725221124209755282344651317281650931560447158019818985029712843738704526383530756740220942621863240198340384283181632588503327193984109564012295536588688845778374575278520421286680252051509386748955535433080316109310701071752751650446028035705815203159346015371471890694677453309763346407077801629785047967454221401544145870490714426952642470244079391327565416033099839869757593434358787196537038508031691974125325720809115424045823768963036441164893755885930256087327386049720516069739690826505666216562449764442895264795025697995562472327027106735348933301662761711017236733691958116430692414508268392494651614338480106826933806102258895988619909970736531899152516932369076308719117807541412108340247109877216896160169447743694486431560045879266880042762072926134416766222172636760607269697253812049848592524580008312649460121748926703828241114494962009934921643284349368040558631566306937913516575257375191144486708435101506104415496948968579193139036624796704256676033453470068199873221703800710628634564889418378126823038966692629764027570776704939694210066166501786144665752796198608014768799809455074779102802583048981077358530552884064882929337682932381285436454304748230240891703062886695570844124757415220756493818309898667472330892160096177585830275685345806671949718532492477875838477176359660570783597439624667997783026009417410820530343456144705550371354152463521960599416259914209807197433361828679373192601182568815503413964926806111175176908364773828014825889824282516675405973096690605781912299091493750729915039525659439700904669131251887568942325531441475957027711479947252668157001924082894516796595391419835188568597073344738241690212391250095231808034058802828472305618300278499489022523330627727194548881648268868792318784062231938540012140288344022559135680225220487044373697252311630268212576547988085576724444413578948382719916564628068561545149208280439278081848498138421204169260624867937827768728435157928158710859568051418873678300808972095451810447412790456062830013714701745806374177172756213397614894673250009815830098707693135530993306426563771913983650901749319495261569416839851767175981637571642534718786446098043102256978454570957188928415249160178552576324757117211728461746268188620843348142503085753951297499822137042970960683002569661237309045583767001811991669586239531472098365236310877091628457629152417866818586695643593114674224710556101621605540041854969034074825088051374568040576340152402684139032951250755868232035609187435484109777225276905109386704342244804616626301506733955941198293118880259696451218100656318879982502097595707765528271669318958609119485659455587589932706233449669136968875390380136148955175418915144010957092356229239189426924129976914184131688038411843158614445743031788273771405149013750081037338511135494021915009439416110523796537273914523375783867894934218651050704513124145968152200963481252868128044170752664506482101368027298989751773888689101780738879626581436966239225362029077883101789612311203803622594000843945853210540184963829200842312229411007514761595361643776864033048429532864944317258221507960336528297226074513829173161636788664116357368312964113764713740162825002047419387072523310610143551212423232434735155687552250934930730501107567089406016690397244189611017373292178909825886341654884784553488539898116411074549639459451141820403657057882214660495878223697155668129976356250879233125392930237345456852296103327966007117441734789247180789915849589611705602657365918204660485596082264704300626310987754568111448722345640789757880091822382196082313765430787265748811538688723022930097244716210180723156665125908073883962268962981239540270057699307769827308702748080903947545828890819049779096685773754844820800709322952740629883656942182358581131959519481284378325780802603150021889645771399735051510273252004514426092521181882873232835024517305040763961363445558406108839032174095991029028601913048216415383874789921215919284932688391588904576793290446500436862686238901653905889296418486611409509312689440003804964507481607789564456651415464868372779140162628298093313725832227462070848856612414242031972568106561511001541030774244769590364687587975934852165182739806183459753152178202705635571737334556899517639746474632955088095935320129836505986489847371264568463721376565988765406330888708773491945229040851468222160561782946624987838256771974911993605968882306227648337881052038687617233359996818927376222605209170886746949649999890641110274239192136074729438878065325266057558708842789803758026179248080144316682352896369869157895822749880406438675502032074489475099386246832958902872764161822227266564244861944510193833449192943174076659356147176871446141507049757843712185526790771846135989229105975389977978546674977095754406917848962735921396881570287020990951758511364194802683240833909765938878803453274161407244600477050056352020544071597227159583887044677142740758732256464504270530169198721496952389293844099264254640129478489944614412808972757508605358257098059161633690961838230338213559403095603532882472806983555850986185945944245164946197639459978345118835079052254964632243418483783222128112228296387554668242971900129865063449543028161474869610246366265746681241600531714688385120287016089404140336802029433090320552493684947449783130947991966724920927235247328241476441391462943136805570364660670053438187175825465807520405098104793109274415660023877278940570124421500909262688806625675346927047824948764638661895732849190848494856301333226869180587850145430645687865901781494157204466260349068198749396872544327896808535173068973932838892391486710450187275689461147447056419474997587336182562954933728757554094864085770771981606064972802976657562727253794256294452686040122774344087321160148685949732914782980650864891645146887269407492303726390040420691534051809243806030211225479753363829423906051365155219205646357148385407135022581295018981595804891958723172454370378511507952117123719181834267427970463714375340733231958792533764720832976316926343253190703555542903431821331939080820706609175253659913152915599592510198667699251050183174256621575906464702881329283648929148228764644898789258705014709415205180151228824830672012925853941242747120912644845988073657547312109232831737467465086600623858071619709523550338717150604184895446735076508471744061878115907756594697550427781792483311212081863977163083959584002954992455357434905845882286712348896552348060899270845762545942445130460820351737361503175881823704956720247693623813095524668265502722910021298905360235103883896899596672380708532038933692386518307218161188900515191492620470116758856600889898737604783748106952132547857725517344713019786428629793478232159877921837039568133124671278114919841040211806549411453545662332364368066283677334221319435847189440641004734659689527189958656481851047165222856900625548704878292720874009348919999518398982043456274591655984232485526601873807213614798457002636173998116632146826383175490763340292419526692388891326631452880948305910697386740092337520924239392447474907557913388643352560694577576186243969971669810681367729673662856475371763297131874585596840936166733320356733540093089739884358244398052182889811821602403160587177021066853972509787942381102796869676302622176294680860664065767644028177120634051697228703077467459204291675037645349813868767293397858691009657967680804610008889899039829712160688896703861991795638979916867104237245833854977078964670121314919686407562740628867392848156406738509322923832678302419396927875041600217440268766935574858411992268078508703485588732540765244182344426940912550647473614447423852889100903331539229636309007238432274567940355483812022042498470349010545581880318819600251896739111800988617313080734122329435428272480631319912056586727908080665777008387956677809637283735088755353570924111542336743149672150323852418437428283348435829776662278033073549067441031887686419038869392523225362201076147395164522608062241391698773380665041419836374415108269244147044074247171115436467074829531415506694396791739526284189755212066391214390535903722526279027148135202868408411729718998204386805928752504555293009130013467405674200430824085109218703365255276086006627843916132828139934689358501695949429220803147530964288171194653128277387623538041199473982034044426802909815025326695556646554165269348013280955945203871946714565068242701030593559294079500110032816822251760195525176271836311429278156712780603060544203131977656538447779094843414450491309927887391431680748786425374269117421719212567848629511326119974335108865262796654966659335401517254698338178679819527414168127075326660411184484161921598960156577057861443704021557811847266848228166497271995424214092802038958672839895336942432153233811841213302654009880473445541732474363474621557065229107780242705639721256103592986886555701798400369997852205436022906560490339063300328432559053303432545593171515196846907457212881919880485723506519868787459803973845439721023122626943202834543002701345109795823511474048442668796281971516257336330129287283206927051028412742002398852007732696696339593762081626032871186511504826888852303939390730761975871658532058370620677076317857501389588870717578597959902658978844788950957204031687381899992711084137423001303665540400709406250541084216003285385059969271837238926384045628642888770601688074583126467602607708592066823862134206989769286474832502749906726339025494575480355047303028469067423419025183263075933490605633469584341417193699034884007060189420611423172911868393043170881653451136452515145301771912474962653927614161536796242224846237985768728163538697954399528592323016417856740485954422026986320967671465482490080273134831385967235191336752123889968500949830751134744219144404562521976169342396017276102196804058681059246259070181193713542176787078510370716189097916136650943437488572632064276782334735907275743070534435531174996942143345696608510265929051171949268583845459298748801171791957251301425869229767243975996541576567620181255660729904243365686754166288076633013063320797204676800402696443296243316588589679381075288079015005459339452535578384304651860574901126844595988383474363140601058919881693827363975064960779012166306059447582406219918554371342413941790083166726919884682820388796334441656286879971849561995618933152121497274133597069561720189858754149609611987807951671743562206645378915081880504705667002797434200017046165842345054473834453904964295143640084094055250443488138849909125617873274367194781637012245011017560078732453759624073059962939552781049736106805639152675852859242123468495350923208196163763093137675847895914782766220169765525443712206411723272759281416446618127231671426913637112777470867936442407565801326921924727365598014769241023172039750422401678317408112873183901250723182319892192545304470933354296572079890931851585355785431619626485656141740208578725714848875940483814810393960109834897704539050621258520576720457103513096146887081556061722647310013563246756686730617103078406773206470652563699665652868241417148526476586120869961193721840914410419836448875100600322810480022307864337434231869165734898297383671905503336810047386322169376274436235824790817779057873488516913703943944618577271844019259007123200161313717770558714743348725831414667644526381334430575072515791822764130309715626603327913369608026498625689986289048459344718378676491152742961467574661578209135198887662535953316362301183925928897452753892307314489735355256544151217209898382865049003404946584996887343190488333314599137929990154220112945069468683424594228815113641546762268742288234154476546312077617263161755176474286067534015240783171758437422656193134633914930932937220999965856542535268012340987401104698407621748725067048257818015718376103383722541451600743914829367212169948003516352003664231503909253405976452343020264147370833134160872865884776435739840573761058921944748686808397171051096191746479568419654322534088476631970835706579093494827475543233322332437937376049937684244762144763582804095101479117795325124008396129132578639923718137844068178182023714210623365429575485534316954855544423195557844609742388021993118022723802868740383334532805346434897746903755763820212452587251264710840792965509237821245537493205225589929887845462481483326152887337416814377168189271562543231174143142946118582190040503395315658626326026774063325497242497413948804593663401668587192281185384374780859176425904209261118717820677440736942864326120839432641228085529401646753254031650559948628022402717448254392718201513016508943967668651865534551117773703347560854108700656729062922325977425501814199453666908176414053735125771546033897467698228553017747708680360866156180370451465096217625429745307932173365400781342966290804913117998274208441817531792823558734037412983846757403618171986910430782695244308693454699957711577694852171971324643061087835742793870723656757933029403223142378070838486940678500178922253743264850075852861438880293403283983279712158980239413336043757209867204054458880499893273056506687736215294317505355252044046702151805704539679896478595182976053406484813968647345715127268629594754026799593052481639449933036398761483729567394169527115493146034978831177403038600488726259782700487112620234662629611182463686197445282101483039949200796366404646976580574487857008399169957952995862426811168010979774110660290911659395786189143933895291801663548816976933572333295918344186927450678191847396653364120456624518285180340488140598137389285181343764403307997307867921560220369419463458676910639707496105034137066691913807878823398366681471714752679260294468322132208348644172174592522411400259456050324297492501079420024227822335930778815980478343143780159835416365580887169442020597414451363344675418815983627498445098753376622469789759824984764991492087824007185362364242047006919876524436563668009728277215207560199091021845694653822814573028315299679906906342620690660544274893137197087785243918434543900108800172677413868806379915587305874091036835970723834797407934487694510087189492782528967670300536254516833449398362070965571610301239143286766323917592409381523400996419910511929113667947024634786931518904350148444827014900374558387568157554089325294587871781746526914295509756373174886132880862868266959797745296678840302976607813057684737517575108480744620603824163145626311495679692650859485456387822442695599780656390145022197376721171117331309213329552587192464628964353684783726140843210683482335586874500581622615763275053938040879674755576142073425514489900060653885874839381052068944352092025035007021417596188102735183211123635717810206618884386870779947116452586663145490118795396048236515122632731859560863118902658482682371019373832645347470043700947257372284453924017011838180899507689097283131080453575907509248762585162430867538200134035091785356322990975433382281783825886636848202618568391048221441163177990033869710983794520159221375405643366446561901433720838490135210572838431957015153276752933194225872692197670194222731367293380854639250272704359954187906830882432583166701038527984105772728758505748949084458410266220729766368110274597367536438651947633593165335714582831191492368935264698334234754863332655172851095057830614832816069026213560647432132538266609600769453063090240729129928703812297318751162547809208910542375646794833691523181576611694074648396142709803522541913281265733496514542891234354278175715866220877966276992674225692185118808786427038938831623372528620928154915892391628101775603270839477881312765794868716192003204317420873023709067760298635855380555333929542422353810717803580643292566804247033410732836243616995697279381100641112327121453476678080251959000881002384863419496512121575761298014584813455269007279310228484200869482048271007390032868693993734900805459621534429636572634355490440877279186873000212940821748164129511776406558737247804875901997045063800399942198891570263508020936651809201930521580053971885481243501278090309690735354021586233216037916384684137172863118839022427050087242927636802240542723995728109849451225284478799526741420781944631942455073339294929744731003560307168744766846180263701136089625206732536532538973922685039020537068255046392100541192065131805603396414120531269229010148200492572971754644171830411604253001478274689116218820591909916903873934887851505187859920728807995963869485008497358740086147996350421425696027072344160638814808311760836659814067884572402550795136307927645633660781839690522506086408181661546948119801583896903322190396436069566857851920714662413381990558432716955791088955253550864513180310648374904687563043092329818423425471926986942730231874003603691997789250518770090218296825114362994308721362569654394293940954958100611976476876099889907627329358644082362208688268118670026287461297469969372782415005382583116357478030517043048521272154126895476452530490593919078035300752719729764448681743499827579305611629759336501961749118741152088706424222485391157810381412346526507402522018391213116046513832243381434784917590688858258656505982597253350509833621820902517528036444174131912473767787080481475183523339570079227674409034816904515968026551056174073923897197269317458204074388372832023570815632499213492162823672436285357945634903264272558791073404658578829748282043043876558087643608855085949144513543277205095307523717907049808027884771723564080830104055474627376293177681056698658583074109357616268098680001026199102692049294976041144830603889155626773550869041995602050365730598520615676249604801377473560677733685304304589570855070418643217097935420713478552060450991783323799469129904012379568922473790033821843757087710789609872612295707616218770823473069200096387410788138589898846884606554127821756146576522984348374580592813757686073451860747617901190978277376309955823373778084299325094826283098802737174450036504581047452306645742163194227605300684130147808312733750169669823986263123595383499948072444604781090884058292959655614991360873349773148540528835779122142835011418378598205495015876790175806658548895417827817108239810869436135616912037086179084758304463969644378746087816425465698682554466664158419049843297658520220440339134464399112204864994445619288066270142098247510526802525013372585977159856288922430882898758560364090653540608787375833498557211170629895699626031757541367870359504218795082276008055467938979641346085712794601188376940590921148606172996111819444414793426449776889150670674840079167497667548627189022432221096611631845997260946393427577078651912015681560312919621202502211379808656256906620599030755600650511000690908775632049778755900153992315887339982400056708944342715907414935533175265977352173252790327813610435478077073005753739907315402420854577717458573048792179180816172820138169992372931801447792080878964934680833964749166165921062264352281050553707660483404071187576870677105835413928573791574498816438904008051039409484147794817604493900540263073690488168913281824065864936972363155590210783053407519344681905979624547004761922212200067862294335826366140733849868633965721790700641238391307855083709553254035860667814451624854343973697023520552691399867777435272148170432770182831058925947448084814358304399162438468873410148642690425653939818493105344583189711222958893915795489777541689820230767970966315603918891647981731796655465507745590225271976106360355109566054787186176718080003682257236228016237169494900356300087738084779891570218772697072838458901683715309758218776396292010101687842482293334271184624069627830849003886539605985600502572285010410389307086039027403370108066436639165550580028852649821190497088496259069881181166907576918007864169500178376292326331131346807589325314110079022236474629834965232617936086875140624773968350001211146169326437925472410191422418171953165226396887695524540956438689985190086649462201220585495438149958320337781678552885846960026660144527602295890994677517492582993545332721259512167683733499263278230427336197155309392455570470900446965840559170566095715337944456826601482620279427897842083134883408817682805480428953616788137551140101413629100761701116864984031525897910138820350435967334060302803456452779773862693117550136635306512244826311766198808159176970071423706108545140908241954652537983304415127186099132799794971389521190049926657370438213421643247876906686051378841554128087321422952668122793834435296027857450133874596858143650844668542994551613799206699301935072704202305273262477270439209976016587443736330868934476962658852422156511500724117783835387653806411581499465218062615008204382850142175057223808638314552322174685025523197439518671714925821532357243766204971608148864006490192722579036882337948994500142533749688397153090066920594444546207199641868447643144233868883074280128077870326387830922960810692079730728831271195922611086454139591633622910656588261143420922318454340112784625459766165062188240648200494539747414154074796181807816810838566849447689992267581921154015889935304075761379289644082480700341871791913774358698244443843429566216043989489753163252134361891741576132822075105869225423142093137945759039715603796634186784115225112146474959946406707103457011733902324694203967511960921030988884770846678405977830769833259500898469859753547330194898219073892296497482376967852267367814796666547503960107521947749145280335858540119088343217542885816690147829937878041192380062972208562052304273487858845948627284298957893069015571597203229507037386780385531648418691356245036364367593823688306867728159091738450302295749794998315678100208859247409299298869778118572874368177827337330565508645446530787947439494358755239133219628977985131857035489658906879154892102461031952454835172426106232209020595758830551397837887084652185309395901182954160154873978831875302505711673404002138611954557426093233721043600958771718302670640949156047485207552158144032794099382546746032895693951845602819850166466574370831048937139414196151477375213702580813600187467581575560379324852242586592579398138877147077016116025251725471990641224471653546428418282153402227837335732285884581256667970664836996803865781457049782644617609396040708904300076157571798902899474472087300052554830120497970505629874925902176801388034347685721147882796703654100427504745196782812366622808783875600939495944342097031063510449944679623093339163632830972069356524966350516545890485552024578299989990104567179007239161398690626937619481611344381405199357566370911586195179418869948017124348158154269787992199708736564504456611295560173407590043439611196715427640160257481483229186945455335366040518663581210625455995195557847838575451187355973455903376931292400066827276684337438788647495001527382053856188203386558829815936689011110659602374732654178870600417985644120765407918005185837795672996206912038303440159531759789532584385390893654538256416147254106599227108148315193894914238076653700679256834724275631642798980182551910471722437751542580635241867620229547058986051721270477090063554554065791658836315187682427662891775398699828205180979265283871378277162791284973851895256957318951523120400825705664269174543375047017025750538492042853953300151831069802522719615533754726905730587998405681181302331520234682619418998830362839453778672965589812278224863147277109627846600870777248409852337228168250193428583700066964654075811325330223543321890252923927686533539939679425290957456901353290926833735673066061047591494023124412596475373974488258669592734778408634821353850472501517235484174140688769881361306826373397365436493867971429898519914741544485582106848801205379831570769424561655581780879329579715856759276765059779123551071681265017257135788374946625739860450446496924459079037669251526860234183036897935054334978369305562792987844529580511711181343198083989893850379689004000696415354702830894816961698590471100641729628675028928074740412191181190408918335970218317198458928205438567522833582191261563814606279390273268032272670542698878530710164209099113204886206854742084242628087252691839140675758640431441233674209556105781465997456184590162985096190176118966816590827170253582753089775933579110083325120335581085139574084547735117802484153639952883374803638922269328979903541804808057867485028470275543356194184786703381912159526915858758127442119851812315172405553808731681195317713241626259199582453442661517179132121836067289421495178380610631021771624061220250511085064164524686910290741561517400846564912559970458396558453720229092670224519443195937704749070586980168491778963325259503809088375545086890473827568237316885269275548670813833569773235472906155006820030330688041925669977693858574915195464189206752285057905695204592621331178139120752763092602556329266516931579624640127409566337061925147598564064971529355434569479331828601526332619927004352488403655837584892530131664256017084862502709071632833750993594036237066612759628978349257427631416046081158668205236114062361747641027361549407639095580964574116080863630878766336554087624902432265070320999587284584341092195071982578810251645437252070285106387238957712963508093473005272749472914952776275327707184779547308754450213243033640431105068931862304056439160561287866562000167750868422394754648591716567047360760049586225328608974749182704373013655174163823746620043816521219237836183601566775715038875063057632118542409638477108431868673242584497924108610504976297146596075959432244638448509037577905096320014316578225958449299085166747844672291199309326376619889059624398660090471007311175051254191969034996041218760748034017965116798095744421660269686513513376030663026426464011903645203952474688311878692240266101148102028512264025984742331773186311590333278821108955336024778491705979154258206556816405883866773805154635717424456610788983360650079023973388539308805037194658840082256540793951521797386959317319387543146012107127699720252225221957492625793429505953838824453734723713206908312102274572290927013316479347061619693168250782918501027615262499498607207261220024750690600145362934740628822802036236534279394728462836536102556969385826653805138330739523145443634449635433964569947903112616766557227058592179444234694636652451745107550104828426733326317096025782680365058877752509796816486292410800646374994030751131827582873395462529059730637013250141819800280552295368304554679177604799537406937659728860231157682924848855689329533634191422955872934186152212592908069821409487259010243697858603046211865109251172297879717951872145707196834905991550464031020283172542182689316160556965327163974722505375980560193295270702598691348430670136225672410140332793607030897091056459436528487425533987148455562180852560352188500863413506734487243529284119895121795566488918367396185622148897454011874592629358778309733342081348216529898501938646451996166460904320997951050750643478028944991142742532273828789605979319405624150500211602549963615106638873648199909680139454010849180403490212824020763840151100429844962951369380067556398141199689076794935460270421425319219093168219504333548735321686642225517143557927915176662204264755018367516799455581911682500832368313860494677646158302138387268395123442084968952223710795566939843843327591043942111002943750716473209148814754197754458909875317071957154775382780600504270874361866723888527867994095500081376129580758718727153638904134869870469192248032440144964261816131871394992005907517362104452528645040974502164280283938278950142523858602405509530136027209175853314617977421563998414095275815018310593702463614622141103656616069654998325467407269021771560002235013309629839663061749743674593239359128049121900214659300394873372651180673192162525499101724347752361094281126975961049058614633661236653978017780627546745622267676278168749372662023371328298061806945582797699976418747401865396035586091515539981626862131002324900440047828630028070926090665406101586560986180134999361010620227712180748188404193428198395724768502449614859431701325215598158128433176710868557085161408431883384338076298249944723707862784964625175548248398108616426988947654148800935497340700602525388081349964125303966758543024916736918160744045696650749533292423112477724404469922052893223304651068319344705171326705668103875186495576574911937523113169684413759621173239406629960989036301025902409527038165520238674101989032169076940550676043216977736929967994122345971416023493928926919306934027051170909950597029718739638166697788087086687961975183422204681297195579926985521184496112340517951357152116893743511581039453987663949875607188780732097233436874354639343128168963368483966528088947190961009188016321269757014732622847919173919438358067678120625236050251474515258947429436624952635528974292288226887482320191050261834144534959416388065701151153698269289366846631869315516828199659442385516691693132438374732108680905955083242040820189297324628798738275233342403426684632167560903530254434431712244358529553106742884166031834674638913431679128230037885827765441259602731217059070790182940893149487747303223661966928097851773271364012330107677093899924831893118685764333941226671754097536173222795670668319572539716222255870634182203882933878203672674319104015407039883910601991327621983155541088957224832718321516553950059101982449738150379977314337531686666893500202962497827855091641099794272718117717720147549720190362528055251409014631479186336851884817746203711075873970366286433941413824063195066683963532443981081876401753324328255336339075827456906903489751189566302085151306160594406767139478499342821378064365167944833422857131439459925613305500524461633731940967846616397820713567848446388409916880207061045085343548688728129846402281149167057486919387355676369111380367089273353404719303385450585659982100605577698880231985909009118252189735563867468024059159638771046484317869267019553419766172898766193335538861596776419955336005453996577883621139243105722455273565168948878227382169508276799274470644069209256688817192386590466201449358347195087429028198612804446783037190488210085761841536173239267904001142052740752434364629085027377638121671702981635872436055004050157723049176427193714344496478265165547227118005770081685310279643411979844042556643743112969530594727623025590185511252497835121265619467609918963383635081936982620033653118107019619416716806860805303484204036647051458310155430003213864607077988622158173796199867461751553365255900945662219971210344955866437718463063305721051983512846080780079804769414580065199058124354010212597444159866368379924987058452547946716609463617975787334173210629576341935611379871200143268016189905272763880611279719797358299147497936573192678966430136881834775892012284988930112945779031756205058604263112644977021418671266007095348047046103361884354401980936168873138484970826224619292030625802419252227840568168042134122146390767969122674727185523425167548952983516260473686769556462691201535548992449552419711474938982212682566825460078103829340538555794396261535346659871080615825406774605709168978923952876103468746508920838632222564787786922843509093353829776519275300317310013874142719339639019954538313842385934347633097059058852397505614269748386304485369444286297485759179600486981883816710759104928101051972552116825617221354689432022545966739321233596338063023696391696354846544273739132156029719259169328754302885214373483309686553794471270410182257151428424862549766263833040375319254572039325294670932571645262920673376543613718818203124613206512999697211205523833874705832416867780162593668778155638121374815156301505319004074086056676204452140229437098936154475505053631825928336930308929942398339461872920333563397697099341578511265242488821569696958872508309929615188155467931825517049601868808260766823249071232426518599080380194602026838621989573551229636469814986630571458294229831631474156737439550171189882484439977074301633948293155821321512143147417679586179923904412426562626837484916685308238867247012523171618009296021793633796540096144981833793166899225321234841037123940703493505274531552510328442589757455771847714338919739075666662685363339658148798125030753587322516884212136095414728047005927066853140811603791291290789438305046947970450728141167628689379669037145383572226180176950827670696141311769184493293780510521898776191920104382116601881724403040201365844061217897915447659850123029088412192342784023268759118181617092018736377888482778051741658620356230374886711256772721571067421418252523255575171059880080150766401616585574573904943413501805051473188450934920786625965086912205047247100332739131817143601646256312372408371222165290539763729045763706721210058603455931419237426382631980001114390140729836321280293310417618800825090381962661573572384346148593475957577113245190692216557126935076138804968530266975777764287896626509455378209015437909362563069783306698840844023250798639434090621789765277136477013908875071087895492978413804327675490637562640488497795382375965775470874420199923096227008154185414854926622078072431020696211851462939938085268289867057935983484419009142330260827591690775613376974463522514701124046777571014991351891458170756226116744483473511173771534845727207194337073638771315803952894705005294615628364447166274299202481361984543800745044660228804708951067994076899803752614062711015696147735515444935841086567754158862693896778056847486657924514234281614528833288659240997480938646431205540118076388795270755803793608569778987122742090590161414176097805367456115392118483708073221642530768246505295182631044707195628434899157573906671787158751958905899352090330213890687829934311486597185686947468465529991101546950272213704100736724565376965017750769819820674575230040625091969061691546747961570107373414814310085984689870971477187225651236340209599504524521230389839508634161430069101124648935252367134762992609165793994541355075692417162181647704765469776104887582013421203993484388765455619138417568281017092218966959774526426396917869315485663227896532242758052803293896841257559742647224270107819416496669615256422577002829929701442189248469812212425662803964520483538818485740693719722071821706009232531457173265320890098668921861931741912560098689197301776747708990631086192330554232169415978316277082121728881805117862993796032497021421892283256126660188192642741475064595322508478660742655275463868043668157869561302156896939726102007758563458644029666549323990748528449769360600159445446766585527521407713547620765443017534600622869712865213567687956209487056247044202597667819350256658408515718650036282894074079720800792154635403043301708062757452811333995054566399685931924146211604019423688289265596628835052906304285271918172118986875696135660614229388348138707084033816992339293470232691294731345266870019171585965621233450812682769201291848335709945606631539572714511165381848109447680893872214542436086994018246801848414805828139887159538274360037588156462125931536775273769621361365419012734105504624400828585159182035861901857699783240864111047081336479468398326480169051378273883752227246377254013200188546750673950763182093006229336630786930986959012485087882327718217086936359754167644310228439001368252271409208145899362423523701257269297993561110093107182583344512417704034613348936236207670162694124152956751518929734750282457518094666610607011347090887224171389240095090690712508327410159689352245212338005757322525624693127978068422125116261813452643352391211395835343710184839875211046497133827465863764420659776779546801311171220745309033526256224993228765711071364443719289690649626891096051889836849485530698001500014613653747161175199779184186025281541922658501197896604026746120793348011408361604590008159586089570179361427251212167146644512173199634788116218166845544357483662183647312220517875439091925917130618390201336103216133926801606634070871033002212069389318201986526788804407588834844193452933938177277491969160856477899128409328047468185344040294820758527591600168669807027936391828865906483538059461915121878318337696756416621255974658360466307430253050875598166462346807338251149783279177289991093265590315062400286444696198382790495333606463826454104198461179456863909572223257770330895095259583722036204720119998125161140804720338732330391605545120182899292669247398064107369818695906878416822891405194365150596533348503412407129897642228566142021266959384473747898837009904171693232540715420447036567908589079186571543024338018636840169091825576553169562927567731193949292063364322590452360816726687591733608451974529359797385833817723147154792886201670416120736866250516960240346693896145791512574883594960125925353070860065597508531673576188477568299648839983076557033943766504605986576652216366232814671222077801987468619045479059051660309647836794504897967382240242059017722389681963574435773192534220768101868606912138369401993542772800120852185306974738904021170408753705976701520011136430519919773914875761362657617835666720741748405283923586724310384543801003004674683936275784085687808364644768643541727310133462266174653887597952118204585621596065525691598327268393999727891495197434444821393641346358139650650474701610650403162548052087644550268588535649457024833868209395143544250183641582778932021769072191497828651380308191248899643933427088876139224115497365304194773307566544828970585795754083134575789611347891322044790920348298451679614573668311005813928565102902969677690835844222872061864128334728284687223640300281961428882023967213558382209158088892815495545096909289601908819283455180305374186631571427168598050438491234702383165307931853154709155195961911150301882309101983146756229851420496797869343893115876277204495799136846261352747327128867251475950090670620382567281523390233658684000718112071478355067785351652417700122922271359998798425531522064566403146063105883374248828935735533092977241209862421721166469282906980290846151594040993283004512510293128540311732552992710805020524371187770037054939601453980229175120115026196291699361846374626453426587200303704059543593357841899015756878797167039627900557435728700217749282705110010028762284840190859964847839975679037231660561643362196695932802203220018706454916165609163017601605012414766004800888317455008953055222251444627536888762174125050209323566934119408497953560467041432791916789212981309954939833777457367484941998353776465539897946955299613017582171497392033452172154797290167126814684979588983052631638677118254025339859998518049171977584177472290758089749064061536912870233728920690294473415912449845136146185359039736517693003132402509857479541758249314085684240912103962213458571683481107228417496663888792166801015674399091655811454811003124257281753605912805565452473387430717814279379370513582210402963046509963646779624064190730766878981178663629775481938005307927259614335619001018427592454316075986066538846176703744000803406417324116089501689567900053715922819584937899458687730147807915286367148725777968492546705132394639867329262274116691558069952159904103978259640524239567380400725361310723200845283668748650751161470137603789034642837995192489565305529931736204910599802879117095343475006690009024469058418993103182566522289655391433192039899170322313131453968137145796512754932732185431022390375128114884824869126333457736433892050440329331817809832990675134644589618619904294750633020254496107960091272038986148558033906669485124822230001335408405953672321731296311805093952406853915044870188732559174361575861447780534829170515457677215167637237338409940849922415625754661446396902864589970290694011332199518076888239477513393940614972736745445743619086357710839426578972809826674959744648672224329031128783203551910363100442934489254465680064824707227706459913203023351321818520124972798203402780395095718587540385429582106028029615593774627991551320251344827677346331467650275091164708306535378260270355575669109928523772980060173279833990715876770690768952317106640102774589864759917802824921917480719801766292778386617923421696302852627702398286518631196721523467948717502423854425507254547198815074191513617888927428383283051030274534730547478230097843610841080905152769922202565056616841028819441132941410751098435460851069156478046093896626044702388976418043632424418713129423845787673533881132622084942871762504301361532249307577709008076658161825986771873812771903973158093575171786985205985190475871914465063199573127994812830435584628465281132721051636414774854554162567339341583143747670628946740746158715501082496175249539504607794691476214577845929648072487452333694790249858093354035988319139627492353725589073629748300598996104708667427166642845002484735610564970526300006711726498770603614321833818291716408153374769865814814997052534709700619696588969117201205364847154178727402140232040993117778077719904526337884815731830239725912952449448835616277092469532812225265248819701300253372732349689983860201946873075566480537458743796359854501689055047401585854080779734138466576776834982141926028355434233314760856779565847610392021368728566613083822644464151793314692825311881720351256330960044088453810627359300446188468258113130641727785161325037659095371478919252313651601904987370325910854691563389972021927708734141179620391814461853533401434448099107699456686572863277677422735796699456273058296103614767668804573236443675207942489672755349243372016987033925191925233786332259137993270421645463543553315990164785593796815356536657033305519212858505702837674501496775590569178251760134162989710511376897138304253997799808767101087027627534471962973634945297173751270860279285233153831759061890423086854589779391822961716490776533832281079678313747013915116466187943487147203134179202643012177266550021677809385098015345802148662904757251088716842072001456229136355577759407432169340121530086268609839848486606412776755530659967066045857436453265476731953363745986413060979928265238352073660164118435717782854927001828522559570773958886337471703543057972888202620525613337928865780237468818661271680957022554027708823368936869242785933891933475216450952798176317856559773389663846328783367472967885293804144594981993607428737231001775459735726127854505638662641365265362353643740885995775679032076064127811286777078699806303170286167562493624810002952807382386541774189294052596829765879715152195907521300389500246045688212635271164342182179051472996407392821449443891171088819468596031322540879133989204789279699361077777099089793373940755232214491971239042132828338180189638783243765680091607696021709658019746141673813100870531376861505866236291572069024043382276155066953665704450833633330280124219580268336772027335771348554595948279286758972692445326194609758346023137033584121341987720961565500745879568119717929604135503683723043878043854330369840024180954828196711598611461557000957942376010180288016592502517203048739972283951652005596480960767009326677317183225055524806265711927472426002159073958700159779588016297596882566469160720937655044144099703922285253977413078251780659021995698594852950677559734354874316633362564565180230052367930288733642202847825279490846074172980297442742006705751272629870572686355642477502062267061395607986404112741310679891385532521446824370494757150987888390075677862530914351357391664033065900699245917919873737073691362353514099595945905078328469551339278204878832514599866797488271470901479629729980392573715434198547046691149214230396749470008178686471936306523043247603663194575684610150275644426872099123930596611220868041423873374236845706081408742002224015292956628125022574225167102957466617419173154660112333671958230718174920202023259689278288869119265549281671326546637845128874799642732752676338304771549717219217196149353660800590106568391731334142953701289767430998018256280029991987829655726847255633597114665177747536870396192517831084793251163947275315982260577312368101458767039202518505344533983233953380290145090828549291608991567145489648156570572583349946701822269996393661075094362590529207869649917306552368665777939719831690979774871147546304102161046234611445273045968263245464278719819852590967092127115645445444022510461574922970080885115694337027139217112415496621454230877963470312979484421721815788916846534374889504041747995214224953056807017214911398709663704369660817011865129879885118821186578780581453897281536707067390573693554339539333041699048856332491288816380179658103587748773793675725609732075532497423614421437616021083180010230315535035753904229364049485171664687717464984701092923568829342697279624572933506821670201114313925472971508200615462886187443000692080178150788403850732509303966743871510452829692521359315380126488421850133824338138829404556854344817060670531712853836307156753983684005999496391097426873752005288765919553728751565340090587921097402019688272425370150813223075377611733842646803376420593112835078528776249838410975416042767933955253421113410734853417329135527343228069178986752441153244239641385765972238607061910507558866631435595406166769306585421710751547314770457490455230695818766966625418280550469536786998191069045143619241075988752404154752529817498244150069390383321781540848830019524373560983304959636920554811307501938260737972649750043706990410559724044759306074265384172937644477825348705054707746439968988131708940358444723680533759340261468371262305011582245011151542904639113161811422816428399935557169818468318570599772942849914116206144036899602032214107339252649751267874453142141040412707175838031607629755916980383970124875227253258684427881004152634264528454421206939479874111842152841255760032257852802252752855204894836409666359914956572156437133144591531947902522519319493926760939500899893371373047737074464652814052718910512507669656439787030685415908493498601431864183795659195003512958114816442008550310709863641785631827300165685609281944112665084868874079714802098008872509516787778938238110645312903495539085573990280065368492967466802236609054826494086999507172550826062350515651059060085462463563356236671570211547576535512516150365853819588895916494178788356700925594802187323657063393015944568908995716304926233748854701874216284544270274589806675742052913296776540603929572246916654041319180297044936452492649467828115109967375249757837195085396497881347130037443483040160176644593164522390743572468957672932625744277572348999264395947400003392634629213769760275273161452603230648281947209504409898868617594200054346381287991157193447782782539841382515838198636694919565879105753033748093546545170430158136437558769175080315648159064912841233095352657005314410707157403516847111130626744115855019492399292871048514149553269581637071354450190268765183841859275361151686787885332503647607284235978404710590153768241580544313631404872707060924758693954716606216041481488352984242158659757951714703093102294164707924717798339625410277508570680559625236220893026581643064760753198723099709356563943566276837121884181053822766866949623193433764160507015106299694481443532566052995233603956773325028310565515985740931976319966701625828216093479259498592747674872279463621545081394350533760294170267342017928987252479570604109204451937935097656970490724192371571205112167273395591014726591699754790098625728878665703888346068074184788298819643938364093846663302883857982491158921672032565341911592374380118611841739726500011346036431546095113426442599478738578811784308926540767058160513556555674945651023956055526601524116221684075613386449055269819270193752892415347836849036664409519405428249626185020575773373044992858090336604783356988687130860511356510138211030960852218448073384522189408601114694095012967989046904476133726260994643685324364122348325579008550266750433317667162241906257374925474296216175882100635365571234554601213098438974644234825016528986011425903575497547449235101555186756397768095273025526626718643420609580424846696220961678875970934508032922161987074467319352804524766118116452942444251803204790610818897152242351341104930794510134128142287708356558896027849800287068928755127788530928463403588631875417916346534078929507173424693254623572540689470132746799995912493867080498890871178345121968907432228689740157102307120308677811220835325783644104676891007573224151019709838451460658495016889555264967332822366181636620432830165536725125458658764903093883075672858793022111418437868178214698072865257102477804029917608899351389451744643390026290994453541920494035112529628608508627286996604262955599449926126768438393047485310086152176625904352366107190124020672266882096285288538207450901424745349826716034060249973849635248427751204515299199115657189473828158850725922508107618416326137514782535498117881100728066699699654323636242706277117173416967146435324036338225178604665014574885211001723967257591444293159541655992871077646525325928139815334209788747472770469892164745702192554074877350183101817504082555404351373978360231024426043354478103004029732084619513536280289350006030319156579879498099398359288076695974852659580864358876675961055783726456717097364519713285949001804530079941136292139094669473565919638280878970431792582853783428176460148133184889301788612763356016657942366578643313838265775826935570920775049348783106037443609631345867729586886168115853379054936547279101917561441701374434871514291346327692140330408577275396487713594411842541410318931493351472779645233007955013539507949842318025423548973421016317761896132484074383026544695044985718275600383739965265996033279181775160284762546547204649381249674942829195278724629784707924508957871276185822893555093825670114346166249633798478979342973885393151413302596035333314680486735315574301047438570376638828626247653610867192691072822255978507642169805561451537757233180560520982783957356098334336927645231924586162544551532186289721964750400241065084518890584522485875648378126116963328728358398860985326760842342488658099883201223841299364172335676798147026794566555635593836750716225666829211514402494075167909878186709118141357294434107934882252559629526997304767024909999941271469092685627976052287429805291185677975591563960471931005193751820394866981209777934632963141316627813754138302552006491118420143192621756578510011745373075409003449502627476047707264618019379886195443966453473724799139795629384253107183932759604863852169446969303354722527294435399613957072856723276503928697102815791178934962382221222518346189996249974805715312367066889540001997356317714370316988300382629048104116417556279688997775717094916269551919820694788464250956360944412523100444727566556823050267818542827574507291178712061350703166016472954419689983322898755434343470256511679058570114766321561629363447192928798832921470905233090035050849484496404965911136588235211835293333570107778408472998777553356569410490441299723842070258742495633574105998641385454891859930056297389716373888882729189453506383721082737227179764178832199999808115330624188932058876749468684842833012819435141543556569709444041317782650743953145494603049460491850269361376555798077464904436468975072997831447790793296845897365661842095733701592901260629507987991624225064602052155893214681888474221776455579636650803858397878926505379770814643888829037633085870722716101224832328480549319607291816451313052557851775652796344954975893779370834607765738070684224213084763485383270548338272885849007634896777760140000887453085181780061450654518957717023307864503130835035946927322012123043415473677099022953953975914154937143086955907599801833594684194384600804055331927242928381455965472462431146450722790000146605445353053820984966273433719482775198119913840461683031095694521705946343889606398807607315239279907263970469852623950647743677851939294793377725277967584534628161137104259213195455326061347376401903660862280702619279336975736845377594515461117445894194463885867040233743383748830224357166931788049045075357333337511503857038100933251813555908180119931963548189352717369131122503983062905118937875560375241994623668489688164731577225706502798570532069751841993235621107343269975175500967012776512768637958345454135842882968299253089167357132086682597161997385360675015104454297992869178194551498540244928547719291123743860168030576803791657969963642572536737587824891049936783153513287663694460891133694161383595153306016532973295966342893130545253304798611556450626961240231951531618191174878601337594995649630491564714021264095247191149404114353512896301465360110214105050567329077751508546310914259536366693039047508101316577324447310071847733506181482205184049645558385382251544850770720626053251758014347283404179367328411433812840765111965963197808452189587691889287047212314307994386137878042142077194297233396369679647125214862743922488343323037407549028313638651458101527257523036536713780469309272494957950950384636059093316477360497070740057292540330808262169206650596722069752453442704429708114668857337892999869124671005406707725377462582279891872131649437621414702097994846096720083834638951316904932894983620936717924044462983352050964637205249227494672599238052911300377398503235195368325941101746792571153483302275819657509466222004042196065508679449900715025512963909697841926579945321729767182484769293232756382813076119470332381274514694011834065374037515053649262241059605644094608385781406701788701451449705604528115295878480802790104598772017674800193489397816585425183020761582705484027901038832013606891021031762871615379695583626699152303605598028110157772366420235639932054071896134778275311082771666022096502905784829962170190943153474387158625851289294324450473559594206294113757198137271030187574063981584481223970936147464151621227050043429525013785949543585448353702280639545113189927352143681565925857533192559643269625139632511293788565133291887917043253385955271199676298693949287647059426129027037701603412840469326620432677627134784156595305433948991536319147342913665715692064945519351005850093005354194225787304764268934010965210944691358398729321200629810135592948747756302013187017393032231867951798354694249430483536190596060346191290581044644626725944752773310698734809431323693755564004793276451900053027511387313407324704639143221839518836600378432667877300860875472905905901286277390697263028725940571631123385072588548788539580014339366519819307559915424046138477355928096451456884028973147535790649004753727901213806432187026631076344423774198073160039843744580015712668531374341563082937589981772652976409254653999865481413314642431719510135937426175347878391199113121486063407003155245941903047051510248686879709739924469236590211691964571979381513286643169995858153787764436372567025362670309749364215348716335091087537991356862992502964513942722567466461473571000908009688691016705560740520912191625576071555678298254201256845655404055694725983441742934030945042632070387682673816895523948909935437456562902986677039729249134383153683929744522029436270236343306986287626696779804982596091604960896402581952909530726661940813120927928994995805459931845627835136347527364249052869463758236338155414659478988477772413349034626275319003205360744135847864323502481299467067735737909672368539824207555634917632071017787796828363143374966327096210113476846108568103441432370670754547867271287951790268269510831969893645370712021434064364284787957314374012619866492628285266389890117876801660368638069318912490900272479028396864985034525019013072197070604318215404807836004136383096769388132310475950325009309682385536689079538798557322038801930210212451425127718766380089875254408016078255823282709275473456217717240554630392110710742807916377044957524316894033927310126723640439218271046196988164500522025056865108191938149229625978631220217710574448943242757200311404419197318655925837273010040662734905457921102328603003503220118045954881675199748262537455690267524319317749746877066801953151472290796336141603936856887333341369005555744436869673812524016944496987368382112623778358518308444319816114859416083441629604178309461872947695881196457925360024570103916421957950020037027743235329288260958970109331566347808079328576462596765794331558747807603455157104727543568928802843268093145976073529819577711542069815465840532714492791402813091823292590685942567105147113919022183339715182221387345629150960868742513644942087775112588065472308677826121988389081946734946249043370252319107477544731283169887860900882004665151797604959558346764861073701744402711513336247589285762219233337584443284665747489618747165923817883153470292543551882763504481758088381302418622723875650362521183297502467186891945238169907263471511593383794266417064111039795838748006384615713066251296622761596039690999742625724687736293103406059927988042710231385469202414222334132230651432491357445315160496333329297285056267343225639876714419583814867505874779728909270896762989906001182761232780304518043864075233784087865300983463050381562005486385647822727651338414459608903862088392936239192623559928488562651283645481589795480262271086784203918558446698254257881716165054056363171747946187718901884374444795070443867202471990250327905509988987295495610980138197836065319448145674438516138861081053953110338459947734679028832725222468965741954922210522631023602808035995035075783817888454192937164200180207988860878666884599068977883893939405955878061438535925302826451291209172101448334631397472952771178423420470826553441029644998839979513616925341750720133011178470377106268089182892856569397970436674067204888758056112663780444627116425160020928809254670478677228605688888813355226215090374882417303479871606865336803088159086618746379223906755855688117317591193599084046118375881448778026240028344884883513643563755736536243705911543369519207977291745762975721058939228191784380817973306560354433817288906386041056200785532264599040601952061665052685572639297301418311643002871410221235534946465437365498212727889999300491944777483634344915590918890065695754417538145395494125940012546146075588862810902545564291979368217213664276303543094057825539680215784197402296432061067878897670668794852922864231551160760224929425948487819105289437577410870607989122311996707965617717066483607577205478278818049201582548546454365083549315240156178679732929953506521504210135587653536248872015592942636352191949285408405798425506203007554894942740318773252695758451140886458481984073843043507413207401693929396965500513729491838144264044850859153435320447719581263360778000144834265880463037564643391180468759153782907338178841645769908400994298453737581752468348837910430029516825925437384388366662924663128421587925261834613426511049179878951784667696508966886945655394880420882422661702261440764530876324057745893509413032371578968438616101956574923708367603235928342968464299263058263933463120326618281661635862426045513200926610801884918624187895145925126954215592769926558645868156989172076133877945257728150769927253835389964198294863300451642262920929246680313694141140697759293582056156315809409236982351945206435619465303379491278493574113145472188137100869072105214615684412543913725347036539791910851573781096546678242611557395513158061117792466752101327417489899051953000302154800971701233454093928923664909088501523987722492978625991641144903954463366753396871373763246109909861800903288813142369014618131010807701774299837209569896823855043198804550792150985447940479532062697854124228822582988842707527657042950985928361940263840385123342306487617638996555441100010614799105298261326152757285968064309112909085383219817751681533427359405931761893152741668655130954795133622127979484536565548195695342699421870005548071452658516414474768026607126445956346803025043656960096607919839030127267668661699133797478788791099815352113184807449787132483475351624924957789474952721526241855547412081097759205847258227494912212832489446320453714983871006677526298588070207505998269345446570788034805246388952796030741341423095195127357879284297336037230818839381387954859740115744237257259824455557899344978551778465516733528425757659334765555775327874395978407792939771853840550592260756625716105460706531376531797584319613128767341675650775842498615273373900889291243435335499018234229285382895167083195915588754900164431858689456744843554459754039571851251441312969388948014328067134388710217382038255005559907998079408877447968917768233606809896679857493175758250962291485146763671695705217914576017170306656397060420294843501614036489780084883798324307256920115889734749592640808915668556690255228517658307436992023540422841333915214374276224383080735600566591143912736030085646821775417739813942462725999248984757688086938353373538408320506034163973644358193051923605911580117092149107831251664908394044369156016067568343337627179830301165702339211138971949184782457437469602804509713534253450888138295691159088147459106911145206643352632527518051143941725058519514312526775493753643350052518434544109607750331414242612343557349083638816030293775873679158333259203130438977090419116065865262361777254236005357886560396999153613407230889362873645590155954058839600901609301241320380163282530108491311815375880732658638204025405778307943847145170613332770454614060856731612762825398391478351103326153858629849282516789554097953140816291506691432460617525116486477721378788820409202919175724889227906661638419574483433646655652871806567259655798787653051659716957413803903947657182153122403036141962962859689776445440481896899157841732313245520930286695701404466943348480985260553180785212802694284905736444987488308831942290709994758058269405779843855270912286805892348059154747923855039442658514700025865243383320982085164537201207109738056165143555655840320547495108046484359644710321892813308510439572466525928999216292198538579754550117078411847560646733921240391289127185648522227314593922609182271489278726724048329902701645092356851335860135775892735041538305349800555202751761988030182981170215734205662165628236089123882827126574556668275559821918314940697204238228470094035841008533445057740362119532364757989802183998734984872536021353910231246377130568831656819278752075971376045501574809373170871569276726198150728885297505178638846308016533061131407516230983645752582567424817527025627337575753587983792803496232505693145137284239332875316859543131219378624878078146312041279123419490846126333814050456003313982487921401579429549015326455434716010653767501583574039294055440002285158118420605758082189848188622449327173655597148757342582377714826558374470126856207332467410600157384502627431065580994051423662826461258690270549490592508624155660674746927651525359443281050218115705770300452433159628449728645278641997901704255765235227809264820225864575291050490759338686620515601579663396516330642681921166060377751191377511381034289737032075704734976663491311501203511227973221183265582279729410680684929544737969014409708073274275857863571187896895793971020496622898522456102731296102985116811936350560113029083962706174029813148173833162511932795884533611003268668400904987307722180551692295342645503093656675931668651786817709588868924776046040881280561843088695781377749628388644765994649949752460628803575712884892659723189661199541285162695598368800249521422441184243557625330286896438670829275929604027866634113692030850247564384651367884352500839075241293827054755322150523634903747631127379921076492913464483484935359184538690624362962348356341044622006040846753647780821938250683148047630671131290974877164235555238010833827014567111582513201304271565485130594315631742166001138849970644842602412686654955730304569086917183951415244811873954404965017703064586129718419642389161144074026227860378741650643437468578548001209007085572496786871535733222715100317571533267308982876602214315256574237833299800831961978188073208544041805401652835501192805024395000266033209150557936372949838085413282778205481223973341477863687272184441261292920445333414107147895624080235607955376682306528892712709988282350565126729046775021982510661707316738886626411391541028839632801644176162060756259246914444727425248532379988839560435473032512154409590478379367606979740206011050162452585524451549497022341069722216148619316521062442968990186279761671355711617448360225695434032514943202730830397680974830967358938949660669497011077143159035577223936384213050046848825560293529719917172261153743812737302611862169791278022730546072688090876704852313426323675477316525604039948403139881936318043209980934394221764667640425962471723072193956036515691966495900543843947382869854144872344833954314466554854393952376896980972762190936999422093082751244801091291927248414287377227134791820216771630611010719236976558821109199821612463808717839451521814932176240494932117955345534663663297222062710182788352615570721347678846214337558664891313332563084542834654013586458415213816296305387608602783148479396945100546417556354428066120402091823270265794470832097210942282833097037222921542588926216136781304931848562398774293163616112874091693150433551382859099635099614232680121849238917118679966955859298613182397278073159262221002366037582866620344281940229436415900017154290223620245413053267879230124867500977246457166159083914198299012511118768282774549391142827886766324698192533708287135377099418440574084164518354179654491733114761611025699785897899186674753442174884327421909710530066778456157005142317900528780332631137532975114292370958985355592842309533217429874725867611635586389178192903398106028143119607955571131355253370248003484458697667433126272215429936556910825673934570831120261323979884338304952581922622036036322438275900902054591023306667846989418113864180333687231579259132579687522444433139847949651526615097028089240836473168954558947262415705953836093639324868321409970047315958678110338105047009888091390360711708682030529685980763904606173797193969720476935678755106646887224377148876668586287416815629126149270486518030106904554351999232310971449807807743798534433572507865289226496394414574226012934372309258889911854021065107005931296831202917571114384852523032936086838057519726491405495593513074038057948882380743318253702909282171640652484225229398601884854821894208555654241591312340805470054506235280313504554279754583556508094545785004586242650449003444336704066157241854087424563820458016109724942597636428615523805869432299220461103708801682184036443360351468575691363348852951559760454764093588278538744370131459145965388528752975182031919345625464059465400412035262208097868024752173902070858502420059574601793745108916285407166675625175414901396713957191336282586298410612020464268801949511898050572475948782107434542465248472859880867223804688069826057971877247765249079808800520922639945716107985329447813284321332835340442319655523992924708434627130971990384144738154856842811367233193479436906287584927172122928914748503040425716878668300394181640681506390940025326751399926071572220348497806029691236489016145917462546551007570041730793239381949781015868848485875005977331703889232756210224827306471035069722548799182195858674464124485394812657361911441146237536669925512444888150299441250786073076790989008899741294439021193096057492959602422364757354898775440942238544764846934250453461742829892012890441145030648885188341882209136425969235704065829918821845171786349588744954416434006154711169592060359860222644183013774866871364710192890765503270075241276586756761036880460591445989838091535840379401881917033946726087591073546152325925601918557736219120768424638171024983531853261576267296068312379175358879473638130642354534053254367333548325646766451868777976585873674474643074334710402900575222516114526739977317688719095205150699526097367355497657318404173076425633941274327892583845616351105082297883685237651303303617572938390390961002220858572378879431245099418579000343588669334177871676874138931371458801984812922649529023408024336066569359982296516501991954316891058978085033332552364096920830430733050325794900414845846652129550653053869940045132634218911257613451932045760646269948884074411485342925102818725427058511345123555561812731271299737377201652189518463456193200797984333429601069650826767804084397149862856758467681007985881888772416174841395616788830721269971108486663672617423217420700507147791602999130201116164685442258297367050177165287033208932678472128572236882535975842605314688838508013525385420160165552588833605306486617518077813311557077572519352791557270937476440750789257988407299166997744790706442444006313463075422337325391864711365645423943305652266443260369928660759810079495812014097685296585338669653518396251568209822595724474075182223511517623745797508639659662741101264207404883483832723287086661316554902897486434223772684500877845915056407730174318330480210584829978481087665901420562529699824042999498303127187212054776819300893895259764505834906294193549005115238386688231320930709083431194506086992371960189748022099073367697765583186840837040389275986970567305538233239534230933182568186777891695928222807018108215298200823969101033124592694412317557695410287085758967603635631239301722827345259642500006140754963489338633104083495784858934526982685533275667228044577604330299494459136044556350679098126134906764615328397782430306985799890045412329932940245870505917715932498331920175143559090485438471335806643432228956772000661946763408912919735311624229735946855204827813056101491807171574250092011008024658428384865341164652526528014569684650505122817152905454885440869505694143799914414528769398681195126025099418537920149793354251933452507313918215567361111925654788687607157733442171791242826347128536622234105255531543340630611061574544133061684021958650119639125131628571521111934069287875910280096164240383529182522620792498713449409331830942227046522267492911653584603077953458876571454973075221993222385098398051535689850331784576641359343032646503531042166598626297022652992297869935107591939804149595240001123405907179804397601593313465070810541015224597742152980334606524725796088083865991754208443867329880100886662721710259719039489517392828200649797820783879861467836086926542377595986369295202723675497710144851501425777064777539171178947774741263869798065132525712892865306821736245381175629543703231066500795915806348561691332503958126259593237097630620442898534756443669687233520893652980619960223293725714663279649533908785986999671230804435144761258826673204694293468010379286673872054610185585704925879398532914389855819403867048532946019871704492858714206895310950729816239079474716982072558398529579707958574389734426012412828115791376942637660466274368446101763011240321291930682821384112987925284188040017582402905338368284177556686845379571502691735196184917972413376965770507548787254547137884867466208918701568706212907636285958512875826412166153058231734100983943490724268449684781823040915020859195365656791596163843550631317758311173179798520846556273228781485875148480850189180787560229365482861403051507553609044786330688650044353327214164030046656898739508296695691336105572636656246534073606079139404295625427248206878373141769499460482003306059794249079500815094149995979779731005570115473826441594475761681929227720767619829151273782503602396294479860580486250766404595043077001693035633999980072537334386607466772744005960963233258087112469080135183037707875152530683200766386690944776264777220239625080451377976690885437634585965049867538509574884672782721122523488277014849786322014917075681652069306554990795268193929481688031149768049012984299640495271363769996390183122862761849782940804737234500232646816612226136340607899750291175379619647453721166929923008886625980489625108289565937731008500810226253999899123394674027092316202449117802061868709319430641470610978216901110776500374063074681847674532432791620771188279191595439727795729187752481979193624783512106858573208594258560605548180413263894067637763002784223010071943696485874031986985699879079526292171403355601714544379820301856840575629822204355279533159569770669402327651278350525524398450999608750660284553643727110299034534868637134726381042641727368678019315708164844043626141132276344032290641284414587747926124772598123779525558715298392030290447807760219445643763146475288960459848199568959789259823488309385615513705880386578599335726141531600514859107305491670246077101884309135507868277900136181288850269831815791859386396380627543124354522017082435240356347908710686216931221009082583754481183351595200886236906817994407153721814276522657422243663397197892282077130413047888216474849102714503981246790984857996010994169044833173361232977356998963847292104953672359114974559807564998711998344924023295644177870920377618484707985400959539272246742219041549925301668002320357267314328591479605751651797601774759564937761546873384131323304812914469873379570862095260920817082300963832447444537950992311514952190552605638646439121934751542089401776580056346013020891634250263584892196447937974006576762588093387242337241188585525079257173372460461206563100425543144543257404167254068572862332825169739123730926477202908233068101081818724011274651073884659491128916253101215759845160615030776023049121071483458798843193434642611056928367087689955885524482676491493473548552409632632613188915242616084208453377438326280016676560348679340019724192958415830079128211909946714895649450806276016704151936819112207607118195740612951543442291928939645737760452265187135468017666912007253570074324803636400894987160580253647232376570950318786207553112982294284931897514939543022443885702435388872171605221079971679011903164262627802256287832905099944857130085929233795643030712337846183529080569633005300855729401901491521545828840796959851713812387668461989393468517353717007748134948484374965103821386123823057101344842704672768269978606440919362327989942623321698781736432160694746392693394800637208655231983081211292752579428260141539259123719585070833184425208726334696923144508791641280783970675941626443028608492770990675849622302653452851658825171665735822471567330356996798818524973159341059534604502042093339602682182066306576519754361754520763540168523953248947653001181223386314001470099129668926896141367506092269134339889039054544464821923932559962160313253675851294054430092665381016878770670175042779496281666681176249886953790246364438848105419085858852548467416127428507532845572493153281686537619217474193123757285161872021410275441690076771108542819951420033475129576724253555054754490670138372856337099300170825668573051120302669368383578083031572741783062738136537006398110925447923255337460915867590592683075714227402765848433177931870398183560408203977254470820485564359544198366762478946599952754070440101662131373233946026083964167272415229259131485366337381823811850054570368449233840042405137214287380658417248157991794053964227214837436696056906324353240443108882925813645889289134006232394141891001084863922395880083324571543153886156957915872669952658796760725950754925074952641473797503832390253586061224148757626336062041982199220444733583336172042138784148707220737456508657970691354487095113003380983566559408394920544518007698169892173535524575093558017263319764853962878979389676294593325922599615308403336127929712815457444194858446829285690031172111686388296311804177706912828794925202398830765665310780437365791187261792422233152478098758899434503224313788169915762680401437753374634094359021279653464491081604043874308947105972621084094560034685501810255504462210883875531726481071209497453309200925462611644164280276677602160269755650828129883963489901425802695286712562451526849720669025027458120074072237305428476452109056004769037116819738136387410604873193220080168519679438056790987180141235915756159481366584031700530416676376978986726461585882875757870536765670350181802842290357040761343865406348587389318800606009635287203194694437076519617259472903752784896985297580559926399469335514044314492831997213025389646828623686379970881798514924763531929006267812544592619434515351248638232718996374689049884851940680161163663075045668828095731974119112655867241897968451788076156555614891877210657146283421414000699431988547917469818357220567296115676025410055099323400720766990282723526498741368285590853258389447860344429594046722912714577141265725653830346010620825613853126219837638864672908659162500271575064825575079865822488841190581138535618608763408646509697113060262979709994422464887770645072554794996739117580472648939798827946895021448493887412396371484094195345009072648350828684674941233561977734133870616284894651284542633400332494254487419767798256860700033403396368371369164317705743356069414711420097687581294350588681060634362256906022407515903777860047458054669672513163363021736653702574423746282596401644895848602309022882816822285412546013156077238965618014493944935515292898133542075517377431557962409076115649764071766347193131620733954416536050523055292857367423628217436452499641789991120155314153525788063354868546138065179379322603927313922486450203434505962854574048872580010792505973811070073153253685770919046740313732695943152457746595622452578755553519629982671860625413682272594550225536606675919927988439243656970259305354362666792038205863222935082591402397931079237075123670125551279677076816267984434469874007427358800601452197603890575892339694091014843925024884103149920825811455183402846285727760663946303201761677280729739244345984862298400927022767808517011320537950368034868920205184141676389410022813025867062259442484561577426781471441769519648090719041271114494585677444868761471476932168305941305243655108436618848437999621056304958138939425089297320223556645337920326516098822523383133906562232637954936067945682426636225105901168873320433797810703380658094177322025716236002964966940215441436877202316600974253602340876669756005850451861531662726970776169569991710899175009838858452977157248693075597056018699091738445138059323598937082385695326300167485690126262035277485265856885624907712812153358074423738169631754823301616704206156137799652810758504616165332104286900704504062440889218352687837349086970926154560657103590963381691911098082208896811977833697398983715265519807235990525447042641594289218336939083256661661665341214206020373303632375703584264787111657291567814610968486778625089169957356001711567783430433914382688333422211107702537143211852472480388651432663615776559117457897078080273977677191031481054340065345322881967774599123736753253332810519461587875436953323828666183452344130775610665942787268040635176441532586644761066080745410603127736153564855541016524950510582686523801591517207750646236446901632263543277510964401361614913427180273189910609551481217440017499748713314524389901485098994705850387020202418213410499000351629307577643617646189774247332511185559678055791552575313132200699947412324976179135002573853294716750943557935067142280162361489286448007496495517215149249599434583060257909907686098591620386833246161870104856215374933326158718351056198130751418413567030918146298301032066342396773739428137101432125861760379650742580950444430438867340239902986008257908309969469057431275534203243882598992846821806750469137867204380216472929708342027014458028794624700164889142450860919387619895587172854473513619396342560107976207211361454008483481299712951937628898055654569745691788525527928687947829257096391166226814599232946486318702603481960031845366775800604474599298947536137947457498978988329967607459337805835426452524095663346563314757717464226985189930945383130359023631526257343875176510880401999891106991668238070434279873906410081322248310733617856390395787255835633029226173558621179861315507167701946720517419386709879994027063996512787250214401666945142100354390452090355631310825104594041303932561976961193150996571649472477311354509754527069232962626872830013219888871693584396424011608444625049031750176507440053876667028904961224369993034921408609021293448944300938209768708179235432983155032035879335210120195707198949808071387684387915437801410705833369043625676561279443278402688599753864978040387444121727737942113907008437108122853764550369210075285858713873846091871756919926122637047705351098922926466139663687389871892140970767301083710560290074555022892903585453624981524689478521547910081429204975703475938973696524201365910303232230263317577900425691592697780747832034540521676940321615118776852213314377132539065894190015808924235858244407142915831107688271622286141001276877550584676929669869120680130460461232223362525282575497156937984396635510760679966598837645817769236529010657119602028155446514830005495261392773708629492836356613222512770859576571415562250161215081235772373955901153293759500896725827781273762214452065804333778381123100203684668162638247148922275393591357104101420016011168923062898929584297043647453145990598037618460369564600099061741983929814047763796711875074908361964709505261735669553369126278939757706342633005268284589660395348438032985992413909126990275867047500630803360462053147460225948619024442565466025110180620635523276576065953301270863080136318730150825124911411541656681341541154607921297457265225239429889794339774566704295121268244013597566567118153517627180932226391713826797862090983820023868379306003451081857204245769644522935158181595655136488123005240691336990723300574891155547404434241814642985409018285757605523635402951019766669748770789169884002330058709796585397905973335983457861154475482684019403279099612754598344524864866849890044361918596345725630420225859299267689315233455096665438857960303471821177519066707802381190264542698096784094869991189873373303420029973235145921439266797630391178334850101230140452314210723736854184378454059763537740314815127102849977869330179673943669864869021237245448724558372394900631470513986597661153530222661581554681580429738931152403344495469761371876426536677580421207482047231235087130428965990107388485414468929563457796312851222780413773725946330047433700932070485274786692663212661960766412856334825513449808847666799364857434938607794448637339763180717578155945869018775066620127817003916026752625231004387120675835886641966933259925434064910730458906310242764480583793558167257595605995153455731027899960299982085306134448646775346050220848616429510357827839542005891736786154934297389292267185998180163125155503639601686133754768984515308325265001895195430374869619784911844542092762474852230872780108350372985898657973426460532251269911974777157650879265658942245187447448113351833581978610809533873978420508598647087075262067053980609259271821482244738226643710138233493040287360231276965659219592263513649982763379849561595364951573506701127035693924550359172944836231121383863800775020418803694296031225148697579072474765968666760401494619697704656916346281673441053647068819899034157063994191515527274264845576435431208976399992549617375953305738866985214798402699297748012487112798152721707007970466849924227150555552058013238017864818896872423186149574533934185335085851883142508849550391935710237862146077901254738003617195953649201643233056382786904127702998808029551257075460777428541499996236441938535324715962668118631038699585715713044284598240612368135433002443651023187655224689909798484938870086495038586727186270857081364390081633898115914685289326601611432592549075399343759540508208767894726458747486338028129660579753154949175787167450542143704738526892036356889236848747620805308335781664685149459610202288417011019446651620769415816584351344901546663247321884248752056456602841202102876881057739029487864664219014177609396478208509215904717161805152361122656109637750314119102471567645615764820914360182723653964398324909619885129551870399076814137615684322092769262971238167649586957210553262486750181255752685224956917358807216260482948397604897562424270537570466185583425961725868514151687158689311845943800562762735313580260246645483301564436544107348141374306479720792725265454257298362740864671095757882710364227104987538808983184145325819808796341452567387247344193992259441097592265652511805512736665470020318433195474181241992734571492193325087045830215029115354829707572773469340542720123306567211550129610557761290463802911301059357514673911010889842436358014832085492877869501587660739502933344893931733930030466606585510330832057897263174978668196625917490645798975556687934975226536990525096085763151024718016985981614893357010440407873008379850363361201219671699241753934389334330648237346687576040102788184853523911597489876626150535262900802695730328688677490804447026632179593828312025606113567239035321048624176326550680689096755552524977845913237315845746036877818182374978475691730233318727103457457028075461811972734285547852471515570289605155532540047668864842304344324286320219892755206224838763944558149961542115782646570203586401980811738404274840554680964160117082496992606867531340297400592924935299780926584803266111897180467225986104986913040603812399514349386974993938631594860143250271107055515961318032490083277206314235785095426661340077578821488221827884813661076429893729363576217570196636426650980804121743031985818298357149236489744831514112379546631982285447355332691950424856386296501855468931482391081174750626435283052330988001808159847412877523322730285566659634631995848686307018812936250106624127698236127789214526580827432237039982050240130886874396208439454613495904508348425348691781258355488917970031173506769564633768114987582164493716112814566701349823048760462393087579586266424781976712571993247142083376091250132321418228244952052194847902688357917806641845320805426347117731525015179365175821527693691919688700939960191473661142123005592015809561535462041580583169223049332951036380759399030070233138765508091953031324220986645572709415681969135283633790862832272761817005085347549372286009164415374774459775567770845026830653879223926520623604753481970255785064391894529160550418039550767178373791963220304436557620761628382664378058036094367717590895111590648024672738211673670602687372369817230156224361004545040504021248189509637152753369920523622703766954270800965005648783102129533083435502205207827457798741945045396916550180286638293563677454808993554600134699693719444894231107572684369475178498983499586863127791401225610301342883843200133617392608391321555840431466090070850366396557246014014782239716784299844471407595460846178901561457874836278767231511017652043591893474540828083439313880790549943882893788800520684307663857801024853159942032335831314229994943057174106157585160635061251251723435486010250763929784350033074904159917415808251152366200220702826790989214296915458568914084339385308209171640748735610016954690224987490755246496487833658916732279698833318521808511734063617256240684401031528622248773428891598052320544379866917722119552523491794911708181067657316322886201223832851923756866360132615099239760919147781566157679490660867762199617833635575742329904107355266543605822036025708722088657094237468454554477813301165539650049157302229272460853009066448587533095326122697085318761590528997873429446469385615174099169779619642425605425667691376417623290765559893111303871909922079579403248641535990099902703639658745790711221542991057941373364267026255543872629897142896533206602885153948819341742085822150823228476549739389813032236751191364915207493322231604951265902392593658197712902054437541126934517646962734706461615704109429929341029150540523785806668258394600268508872462330344399913126859446034401270748263679692352103055490318615891155950896762877704792676452429677967284903868777264695950844382529346352649029271198976943675504039373959357521137653576459042114859044286486666159070470668410166321932917381977848701613904230838322452145566682043578787113993287401178500942012297500007388371128190421423166743578607880410120252858869876592108002397764984631740806327381715422342684434182683959279896020168925472473519576389801608160180946828574962377160656792298760670342482807971210397612334203664358991687498031932369447515616616348784266731138165975623264755150788484215300083529368508595219008322507002316046498148920179816503980948594164482711787301026240823896324579335280987585028129583053186767849166266876850667463617083909291004669654383560869126725333681025450497421831570221277953784242439073584289541970844550817774853840704949070220762878568307405127614796066109124395841764628397590356182025637852169543634647767993579789966993965616134579233377282328547100547640315554847743900823946868522115074833187583594977414250758243072703367062137713507472389373996511483389744142010171520572659198791849074196874682562908556020694572092203344548450483611308990153753447875192546763560435667802341289648183372389201661662383725220630323869656347424039670469786122434860310791728048842673549790287819206055485124494967629117704504540875531578323356366814473946503671105423693014756284729111932108786492145728263667344614200716924934733220517209493182258456766756066281430915970233578444766296139965986856156106370682428049295749836650443339885439718777203007613277848741941001579161533570062488027749540495759014050734433425039137867320882713867787085798483483251491167887475754832433655498978617874028206978966646308896264744725360373170691607054494437508032940677390915268245687237386052034702604716160637837189410680706745839832736129505939761166192476039801164908763943387298294529359594157072140166620028777262583832123800750278270701705251573787248256373836489824598891148852763414423274835879533097768872298329310572519931239698479246514541541902536591193752976907260383462395849014651964408132191456461898438730472729937578810468613199166365708434729274688797733827845294842785910062835114260039828885801300858069049031961551528050183269194296533016752542942816895438658188020526006230255815724650569887193509773403290976362310509303127408637404006798074637460451886420774389373907830553439269264598939941591674858622694184449960119896516470277549606374536644197913485553125952353816793197656458244247111130353016034995853957855504725052369528297441466829771537536719919251194898956848732341305996438334211951707306920809673674844255235152347578641807271986790407081120411039170123160887116183376375562745314183437940516624845735428354422317802099012796788978721458556914670110703004417507831800871208377086776252571450114617066847039175585072545034403889135928861356696846135384900162195274192964092361388566827241816513170991522826558582043295218552826852570473333259068291952615970571715336726710086224930186201751346292424607891184964468738333380512463159297336625530582184447095728934788763243868512859746118555907634062593211228329616105729502253530806384884919293062945833453362604184171335749144481751228332758698879094859748851595948964984136648540929793649348227083763497438652950964030241805929395241323276521238737498003073833399701684284742860152502922801546046128383573890272569207386040075026609384644742593084316479297530287480159392383416403807742527235262645413656259346383177883392116694925449506254359096189949941936193535000908880583871060121886897168954558483687389337095415855173953176639351061671371632494818316193022514789862281440580316122433930842381093588787908294264601664478954961080078820194878612043448035277042698183790347017347544041997564676863682961928535386314909964282596195122731840646040078841359891723674118399610509292541514955805119563553838905052099200293215564467412280671345152135822295352477864834809963052003353369614511735743549327585176451017112253648636632577873490564988842234983558258741131901038705584429076152537672421537004813636121061669160930827732696247001610339921259128501875455796222048966484038054429286832650297244662400093915390562987230695225649006252322338478798854643179271177774958182052072834866783490983138363032308717784867999990829191815573304663002656530396496887958598299244871084828358488151358654024438598261804825422711702338838440593146383081421458370576072666594234491814097210821644546831197687552608865248067388343884607276796501728581036244387269045414539804172489000165011439405549738312385086333263028949728787295758518605806461735807733168703671756662629796183570370285469064007177816259701320353207620465475410912452657348262293357790509235277598883087506134976737117621419014151555961981665216620179975836812646798771032326872583936621225068761042625401681913943183381847140154366273858053194965722995977591244063697102166339609245013647531775776727683795073012020772841501986382535035234811980510548796776711821368966936281039470362444318665741782143488107350057200661158748788531398181225252000712549581503177077080260497443986186103098630557487975152186918827000304140429791070598753068092994689338469609857219112965866752816271402381863055094700905926828012120203247173189318667190550217137391341533013022003097685615399832040625425314449514493632878930321534271663733653895138074235843213590075598368377107806507498835190126133682904706023966676075501360695331535306862328643848937248406905248067252133288551292744655476964920293514404605730807396134451492394874936938283587885293745515052187051150776771456108162956953766470702727164652203426105521853072360763688138298765241605780482531221104823972909170762575235586733903715935397025997693797831224651132504761294914716750934671248500202165298432575656750208840080083735449969939960969832623133969186329148993450927904936092386187298317427543791897864494687191682076047381993766710506505323246537987944102376714359288552647432157427721904094316181511430886049692392610534550369202046471490079917658750615384553469878401242185595868694162463327862789164621781311365141105858168895811860464193795573728690140274471158509254731795863685015923341757574482212065871114970056583825798085427538496118183487340506366464557281636147825664404572485555923662451883489668963758372681445528800851306854512991173455557451171804159402987064837580913654976500094111450517974790883230878198501238381031049024729158348938831099963127213500669945719971873547090458632794652446219291727459429169800622943502146798295394180881029926771493645586300382859898447342392155353706003533240174205091326462362324379196796114399248937686655422691505483956498078821544559705920937421565830434633652441574681627345652026990713524391198547922394417536564202497313204167502764152059963995283933730047296055704188150620014162253095957011002787673029996529919994093941317887896816946735923763771399461362251940784562281605274011439042392387002718163620983964746163677778257480523034325848132662291762959993092562058952218331391806725905501886305673095070733949544827225280474163144937651522989562505989335081853459594350758885604471948144991900094533904810499981252705301328907069156812185211731847960402592487982760659226297892973554317221586456706198557869960957277787545920839743149341117646357612029366684840909195142352619376802691316700000224326715141397849740386493278141033025764598098442226340447451413922540023541529902930209307093545936518391009754320502681981270745722273759547251045218293034562904141427345681757635487371015336151557736684887739589567989835746765474416760843852304257201773027949924873281641259430073141663533388199352428726832414381212064714422236300505516730601449400403164483051331063478905766884193264612718885907286937374513058353583788636353652712933261306855656471283964414890078137312572093195683005554700459908308740864919728576294070615131806603689509088086129318768995704997516382429521227615101574422828350483233836376793751541070139134056334566025051077669341312129662492253187156041409540494294185797603229983314844558194711780087781760346545709819520803514263046811642378392806402499459335957746838947314065326015240963380209421540554906369235312053229901792869300508641257515343317592362584298532549766287796658565202097692585915030189170869982881793652002447394055159199356899911788805972336162892495494256077109087239623427041089836588699052422329020347938589400536742752545023298931184775533619812190337613818361448156930467385950608540507808154772250738541510529061148452055290565912312715929361306531848861184345450756542043649685142985408407928205691767127097141482520233063775102576836117117806690396277504606480745966065956332094901831071202490877610759146927524990718470344503991738371917792916866001975836620471774839596628027390088432383876606134148963633942141814938422064778339469514766265614928809861396184451831084309424109079808609469161703381781099723676055818742599346527645194555259104784592323751925895503551831949522035494717387054452554557084840915908629688978599480805233546155124024229709507338467049133278444753042139828391225116081164831326872892276190873698205639627933960267239507398902369414047355516905707170850150226297955420520355294585067569949479994592308267978190959525414129912650925600319522656852517079795798298719598779246315066506914656163420772063665437965549984717762157295561591794649934655419956444458787760544536471100200720487051352657929040836895789183389336874805880546722689711473348057098585458009750821716751581823381829587420982189285474067994461017235931575755811762542792756892951491353538873822697919233755637022136548093076015626635655262798479045559923080687276649955785552935457386637671824611047995408072077588642146243219985008100950574920726112788465497937072764221401401587322657050325487447570683531925791572882569611575334576451896491287065667410650457090541312602392658365056556438223001924082909835637186841934990798212778266859102346091222606798504173959438333369945746396560739766507476437456048554325608104176036786453167217911113060763659787565038090737825247698542574974627728013205877930484052376187806788427278019248387461313791864325295031779462812809334817404881338880764777026934969449844942865053278656541177741189023573025343762608253535747844704537726735885419217448710018791517440106395741972888230593441319045662715474700079636562631500700632374762971535225970439652708768443690380078454171986637437956376675157262898875702464232206939525139893018394792275651587326965110066185754906863116871026941910342967475518563909646586415958095363990679106110863793328111039932735245062164601849651847628503630162989507541391558254643677648477751604898169219658314040258902215867983881889315408486619526995103194589208763180437830803833805537188937888019203097964009114774002648813752415531858346434505248138632132768208615484113830577553277891411372286725042545563678777970686274817666752728487145890340944118726638155632068412814101542245536692856153605456531670175411057289456594472003548882429041751090314625055220216337875434554093454756346409563949338072867941676548567894253661630383639486512070953784611127132061933747126905368707045398236088694440851194474504707884469670684975482569450779524434696224391840671274622531530533252581572168290643976927161856923191693817415562502001537711190900900391396644533869144656084435263802807496325686976388996968753941230163779059903061350142622335465498833764836845601863717479566740751144707526029963571625354171838381142001766816206914360813181845693287135651955635788441355774622378234753679534940447266445396410973126312408678177486333849424240363940723862814086995328006701393813034763716686494628714010674017377836318233907788390622640240643927874988063195854342808934909298237619844370208064473871891663551061414091397660357132117618207462298633951201732066787270294464523814948789809431006015588290022933310379855015020650914364581367135511031204135878786962757714507936003715350497746906048388988587968549410041753085052583945502834342095914304813545469284489197172745488325743345761645212501816562003279382147043851047225033445391285351066531009419839224145514177319658148632493633221157341719797345664519418940055726503690925415112511108062940430928758918171489374474738663384322852027289694459429185275794547118831710629858039971590656366240649701657369802578819529669313068218159221684403571960342775041277977478260817301391421660012770081971119265519416460349637268555145103926791454857851789834087223683005122263167788613764557768575737868849189729002910565657100418026166785322121946564997231565711972410986114498511516157910007211705121260592575446791770443811664427772433834097788327177994104144959014627377939361732500501607254466247258291521132086051960702120213533805739242734287117305625134626491386577060744829550382836594868322419061801295538685782607466520671148054697636759708721243070157411228019516110065822459316316916377834398987230696767109007098778197336053730771068422565404834640065146075718204429993761618550681759843803942378068797842427983271757046585365474064245265387256782326653001012217383714705252755017785943193628999364033805077607280214456608049545517282485857735827226559704132560062236740432917947438966530873387730318892887311166008735111396818715234472330554999444193083219021532257393330139004305625544985422536307632368968416120806586184582973515812305472211940188289530165905397021928502515967587870858772961581813513188727006697009530574336994629306666117676950973899601095034156837053008103068872295252769859211982377083123154541342670674372460787120347242078078153628699334836765705180462280922547246559886337189749156805312027390315459878963944506267433972053211917756315585580000593899162835684958330593413074585750124342975781405736387423445312125176870561104587584481653027600248682885013782853781366359745417480182662744348072372475818687259513197302936458178268627339165600974346503610044712231924488747805734665404053126776529031608731120972844692219100951361268535955650269919221947955378568116813337494431619325927305981652372591006518074553331249468612918902906422538972270668906413344325916440153848221648574294881837682089203776151133416701731987655265873016396359451143528509017236667073522849328779038992296345134514784740545344141259477703759729309903528033780723243950875863273963550367336576215738981036341820951634215949075032710646898667794998767774459446301901033784979685924516634476768689747491390553970478151451736297028626258986858105146685386788408371534207757193000230324835775101539522770935038373913127950776568450977169786244934097683232358328677004893735648652756095650350869576424308290920629528501260159349452849247596515682997261270819219181105174858131882470089830142161245545160520835303626962501733851805929783633112316693124084393129936332754428139626180281973724730732781854791125737062467834465591548153417682503216947931416700907239270698557622761585673370482456479743939058321024410531022401786266496475374036008333290407654866176809659097036317597270483869440314793251377907247056346989697851238416277373064313228896477203865921260448547627017381295750978516750236369962702448259587879800555460888103805104693130770777129192148672626711903897798693032366048532134668334973405114335147763259053520358982198413983010638957109318984542072288576960715523422316012033588907052999163579999535652328471033600953196821752126849587767325790854311680482118083257590589801956718838771577103236205082061150374436095031036067224179799293707059212894986085899884735421871256321158134535388339667680160462439006970726624525020522679481446160530490950367824423870251382961264655440278322057888741626964456869235955511396193701595776119030678504799178046221242437520623393610731443087306674015443337967882819100383948746273380890308834288367799785136225682750600592883711957531378882649844425304104374053642326274041085614497587250506447901906721490791064310747415108815497600187125536798244649770182979092024685700504568710763220507083651831408507817226735443997816324853568652375280262207088777579848076299103946072620941707426063240028774880766543869532327260039955111547538886520420028716643126008970374608383119690572565239540245651721958966848271601516195633720279745094730613954568857919633848014373398458253220197373167548445992466561038683840009960233264953195784207050187214008871800434046974293670670887270768361702081698732570367438774207890772643863925296381855146093678715639209779542482064164480811332989893244100322483933582655308479015807283810406775964666158568764546612320726415920068497297778779360242843294481436267997582652409567778082977520987262312898728574185685419220240597927749669039030213930223865082520265126101286329879625289996211318517890312260531050016064059181926826091089614643374371755838712709123065890399975235461555757566282193608447653981133711848996329196953750214099888553177589817451110660595159283135786715308028635003075494970604687762639124092338024799084290455066726279716675067101956724818370420592511779503156829588777266593581382902496823117603017089002452028128481995947918824338579636919910132389315813160681601077143611892308559175521817654492670680686000535722158762751663073718170536780450371181522309675323729121422023284570511776406919845044762076326987921139927721681408078488306041002555161619258930343135464048451821247042709177940800219471300769598371236719074702331349796574863912698624461149392351304930230480412450824281934706845473985041151850147018245331565865702435163328543509474632547057865116044064463161584167303569413726766096608035092901964800720355652872653194458368066549045928173692192368520831316584446164586464616189518388852014829843338753100893534089447410014293750403265702166081870087318252464546484282786577921160721863101414275614603222037460302755966280300240766085297477496394752551179591593355181927220285766754653207185300766079309386188843486806401759925557905779319003022601700918637986245654044106673215389743536513888175721792298844536797036214262134738447994566476829478809208084712374994596719812035748402160863150318216721029642439662407027392644394561965269406681796898373414869621709777378517036349978800461481063180626252040628032696698814563025273785775094684589503925788306872389742071699568456329951020149256818885670869523906136866029663055887467289758318364830669388507123305082990772174551119611418486423107435958057327336994147629968789760937071174553446045114826135591179347467302426566252911860982993743786111409397941398636738405556556759113626637878922547760426678374466619025190026522900055212837031660854316485024890961841861796304083711687649096891298449578328651287497409313022435773339874415304043532829538814419446973443608854557808361931351021623771055644085511164602799728145312205086029585712016659212404633993008357721192910274662980595411833935125400977794411484047973617470399684631757812954307706129717879816365159980028757162412276869066794254194069185056209823716258123380882421736819787433756184241975187070009019565644690201054945138795023240024459504076218785311589819764543957059563678619477545265457717102400467694709068099761173220915069903552224453059407983587027694166176164648940372202648587860622693547879682771653097146434028658424192521724053032303037959601277275987107092576080981578714328801870914284500571839247645201829224213911716802932387532026192648130863391195313171504672291874582940069219195929311903866970891605867201519602918976524357118664035625849799117846582018362710052553021746266215798463531930448607271926640802856776495780706502223038797199501971459429569593545359031685568873791575353462342684162537737996423002916130860945631622103215633620474392144805616847418004532086584458521710894095731742853043312123668083901569207344757696647820737442999243738569584498883679323460714868147273061297456323480816623796806649120072653592636726613853529929459139195164025816030257792268685124065835792891343878011259396057212155403509725662503222340759853359791306459429944941544416573674640986895872822729437307739388490091025318821626769090947473992612159221796012714732958961789414210830657584149737445727373001034293926064054870914416997277749326305422257605913448889902652003427406758509051320736673377684345207310716266411733726774443895562367805455549677454075797945065691367092708681968314635846765434676123063535373871183348839192842569303180954098550831229498866178184981604081336534644687652020644197764766055505322930502213293108636261114752862730076232263876942175965608109466852155119712759675069277417861569053380132616182327637916822699862256414302946000410976601831410640386583145917729617669353190898343399329754270280641964284891109638905328880671361317882638008945021449417295497434280655527774275776803781129990254497507428233919934390616674915884366832861916738808725826550143710997639148483152056648402938740143081429549547875079502959831690365551039530931052957982874450410776240271109347467855413924677542327028428255897791067403922439316495828448797540449787682527927482233690976663507693199181204792726777253110579369917640586134927173427900358796448339000029348947968438389809995552576570384577577760287041043304588818013288291060577432015418730602614387603691422678212306202862601124779474310050798623874873445384221674432918448149336959858758698052839547239621799446871189980037573763564770185323062464895542013247402822356372979583271533150217903904961042849345078580919418950719245494820573696096194032329955196335843697618793672005434376771845587771691746212846364995332605733352234675753776886588231454571510365487014725957544420443768777556033015244179843633049273375907726366192618827283211575250238443794537485269167917027373574108683044994775373841055648061711848845717492443730651951628096104774301540023852385647875626672241279673163558116354941927193159420218557999017995504522791823081175903491670123212629564800871623675095129731084508709974002148986240877981304754733103299990843637627166895967919622160488958104509523649516275938504633277369858519322298353445808808336552328885558550619355182573910430194027563049922105847331357164824293999833512883311417977795065040103353299961054221637631939001987120408954133596730369636197244520181719401809871100781835989548716875289225892892956482865985494254290716439290413903486400865595946741441528385050598122649629352341178495783144222637135568854456750334258942229470032794301597207666748746586631074687293490743151539981215686549648227481316474630978013137136551521753475897718617352898447725953020250959318401502086669072032715815856027424162971617698016898341339034594923913294366381895865476480046294411363371347061553739817901273450753286387474628066984599103528663332008269313297719682973457556284262119932768193107833112638740625570841349018967484084540934656352210522635530045727961015058446678470936149333786877980860817804868180378453749431135103705336484997952492231638338907238154468359739067877869550210205265329268559279060408101520126021941592366528806770578760930138811493125246515308009660357530794645586427789412987911297298068354066061153442736615706544576226101531311965391550892785766125972138857652468808134277903125577738317897361381916200525734129201937023754886918836943593036627358679879984522007319117844056881134647560889461532528186452287309200145313550391835945958280305717660211530576025654011269991078161803125578025548427523924727226638714942479615523093849255682401467156805757240023891706090924399066270334981500633836324909293753576381657526306580478205035684022684080534377625641414914514416749462161145324940502823463609652331729780230144164980455972308550336387524987438649563848086293203191154502632022111525544237493356035367493683576785746055493707719525465580318201768473440748210968860775457468915109758699546292174756003899222195632505240700975231688404481851628138153199920284707859343554915047051329295013790234833225958528370983658265126739026394689248322120133569750497922331821203112521665260430305921651135058450506626390218952389841493276268663327230877566937701128306118791578565422565526072589278406728433305386587982983540671618948633828583273265462313367722985041573057680231857065837245880443235798280201333793805927131826410685269507965020120424241735610204033731748821915465847853722102359242485621044347357822573070156418326299671362267540089798615461075734266623011169422741573144550878495751538021643647546974504341086535956397503519032798464132734385296334193807012271932900670777722805316919011319222177084716370049072386319866258223000694280339969873008643184001479677853331411140855127968468650883884762178542526864438520365510783958981204263197527851422563755373600802447672972695401793269226390954734297446682961528912143096645705287251994515402979328018555004635951690671591794004870416612468094701788174655608343603038559754919014483543246348546219589661787621694232865503176186596506153358981117058998743319450172364482256500248689438438833178734418668216745668735274126639690306241247779640839858272002288186689310550794551812897161682305046731150417201462852482038517149766264413626045092644474007150703267213212938032642481412122518795302168233161698759546568967370329177447927651776059023563708162448355494201259035694123277169153015785142639431388403929541813553224269084514788541377435089106755721120415215637054587424000586020165549963638984188732452002273038761038458080819237173177930357822922911746806537143716705649934644721092285386666965040416967219999167256631335646552643723353440052767001035265905934299085864778791836499710331074996894949424488809318087342521153336335074826654747574977050862558809576559591012471524128218018216319211158502551998644247489181987347188647221664603270417923829269229728808216644523211487166094756132627569091449845171351358176550006835690845035572005313477941429557000713917402212601341000345090293750307497862318609466472973154363753224848841903725322647254167365623745682902124855966278551140653995553005452639284064582055690083278940890476088806700797516865134190882054679876656394309369438991410751651826335101483140275244720789352471742656967273547655663356564063304034846477252352791323391246930839357394757638082410846379795971782608020753719578637966834008151436440781070613969077105257228690196186344622038932170653090890546369614124856052854877139598973835081088726332538795593659144056043903099969753055072468779741160028929909941181373593213276386004266776961896403544609391648127485515296987492750394978354216965168869351599049909476158151804228995399061747674236084887161889953194467710804793874296713300027418271099868659639645363165768875768399544889846271759092526348438736531772674030147741100392533914253785187835410941366445101125888545059052731212953958399354009362639117320773453943700669531404916781549607155369240831463149173085883370077989305409143073029695310319190877756066369626884744216453981960993335905228919206769104686702898525152000278302290459768864219213647801772161429644845946942145421423844265355369386490898204647311148710056968087131580943709019628806678703974616181971346223946507539889772334091549005508477272524455216096889181763836467149969668673822461904871106152418067647375132847066409786046685337967540592099655921043163562670741836531630328528952625978443565315448510799826559498821280200663470067508748249638915444769769302000187823865397333781515466888037044210822445940966101576220223215906999956944433081835942218094286938605210833775182798761226783153987499985035582945973383230013022814550597315003772714241964516740657386027293492388679601840034033410363845262275603996444722453339720491733440269284419736405667710977740557725602825693779473515664968379371907535472632665224042510574332535602097439396845691385455903707215316991713569385215109774384771715265935699923978522235770449754219102747855322283588805802672640526861728330671104500548063593387058950635989671545088604452302002682308497190114775460520057489668771144912300594645321703410768685100941911004142875998598828024937358749105819649613845188251117113774081530254815751201169922829824341681082541681877482801588790940294667878559182040554292334691078348524732170377264236810707722306315331053741069177938642249100117353631228405706650383665609256961396826163530746432654033025647721582342183726065299532014950319202092032399016637382980716010377187462154887276152370841095568425390563539983116090079478223385155982086128391511713921669249284840529830329632939506285704059940078948340858175747691491341203988588417292163994158605596298710144036742742257801308657690891730654377864591794068050479887788237709671223433669503948715842439800138979335196819951821441669043270478371820897063775921588298332579577844970714575041774165017815464349402746836205104442299151287066313180468555427754342321365835674063760858211678350090989412237564467625366424818836639426094230508985247068919381678338854581975383636988905999675744772041026165019847377018289896530304778412023341465490161136113948304027748322660353524230324158862465040952978513197701009706724285000919313144422906970645707806146898246351164136343597541690810508854364021085481032774210578846949452537862597876860219513547350668429648779825020089567618341044981905765814843437630540345262701598716700798252208510821491155345778612179558971973850649985632000017325424513352060620460506936554416518999498032931889396524002654260053652875033230106030192700403681073747758304626616942112890602834326206434969699162836057138176827963225589930907137085124767406943369527340305510593628213838045209061822452333004704743577126056103568717017781467176788470950830044824094544851122028656852327333154161903358326449419531850645740395865585181157531875385622657988657717014735234575987438158134936042470052002039152140678133634689755877950465775286092548543846809429700588098422554460140834187491431461521444806554217991509943208608159696581878843586354283430224172273471708673502003419171448251761722316897504098812749369717987865939518780616526801480543333869344655391810624364448217966017176193621698630396801311420670307185528100218016356359653354279211932300505461783931374721371928221908189993349792633569598118551157880252026239468418206874423682580411571664558193336164362338519889386804367436987675009298481508267543266061707446656327986251939852504933073007551309465134814576654760360459543929078621661141615027801753164763758887527399156059224303886954837192127799524420736290385518016593810420905752101731858530576329655435231905705998390816862492349339900465371628855607747837106034682626385430814645033013416330469616361030622185956461769908256043912861878196343370368929135321131432913618538667386737680925688644002041525980909250952240223538761005616070506347494641935239156814256316966943751784398743554687655616053612968635328142333226690333538899326061041756419494613098731229035570216535801180379965202518872727790176623233824656155856514852427254652502345224443110102367447601258193599740934944495964890462562340422029493875396715987576305106665050150518092443129387345469781612279248758918720776571476836471705551207377878572481385166624296784023126512303602406964703275861727629691783807660799878184516221281457482516519852544692423214719519618678416867479377050179451724669574611476922704051141359050252147194402266202010526987063503954279068806842072734503341692954717921938792072449779189563444828971913636449939404463172826484694558975098784608002841996799923880478607364037591210609788563609813260733796081029410016490633106663742194827941430881521671876938079047536377472350140171593830850269957257430728894152104814822889755004656824313942368197387717751536771027492921892773922675915385703222404078934578566307784498480322860127021869414322188025111929605913078044407169222095025107924641820748759774725973391780517795090625570324086311840893148200868804897051894892528228263714666637288237028746127200722266896515964138339220301013753620589966399139333641412961496122873548558299586092698698288038159271820420424470689762244060994153713981676302437455762093110622485538203466688976641501099744786863613311514861282797861922945727490757298798534975063428088935761849129752620653199198296634799880774090228544719930157853320130141550566370056236501472027571048105895577390156235718430126843718171309256190277662118578105604133751045930832037833921543773264755214524174860676417216803525943882940058144937696200066735640453789335471972185132495648019018524996080154903326199135192941717253552363746880634207354145714486264450556288517533403449300905571256383312100546253506719581265397236544401146671283307480109321698737602624030589044327480635060786473953075791252871000280032406217470546665534601318904990083380403807362774202663815689208045518214203227474916166855862003691104901666526023347225297292540992980356128662415122572652967235273437260925345875166256987796812389465131308899175188312812784572931074195656434015831720759867234170046608457054507700309560289599542015101595333433118277293597565720035629268296473866570302339768317800295299571226270278940991222447572313109339654771178910468772963662141971357712785435185453323661347167411984144749581932217830063944926498769722794103101749442736771891016552331559826342259120523203771438383195764772371217531077233516035178911886659767175416131877320143725013835362286791455250687091757672534115487120196059642513381722350518730427788488650642344170444416387848132378502711433100766781539886412432230779199743024932195365801826307957192891502677835721978916014636167203464359312291172069552821176029690812975446397523736804818682902530862264556056758061629888052179793453183413185620042599029783343754227228050393326440607721154888711704346677802615295538763460236196323715151406601167319643050890829205323143719901973209493998705668921440163706831728530229306340573877739598729658131288298530424221150212780919483725964777060115179695428374844439728634658469946904489905749677704682400412135476693795421431047834069334362054818763170548225181776943333017566412757964276600083308069379887250176072726559681939567464904944252258750963803968170540081369823231341154774608165310326047393405392679237732265541682815089965270592345542701710254974628891940749632582339440526262164273943989325431704615911541307175052131980775455661122840016512990942798172135962220761737496676689061397647603769005388093967823102822786504551411641209638765133075219714806116039480820402669423914289142153525576591223852659941204637527866269653053960821142345991920111207572738835037825974048622425581171869540530449533592211195294600193515911783934025534750469701983297543362467387527745545277430174838702710983433426510018476391273140889787441494622027071922391261744194209606028140316049264416502898049996408060232294774405923181496594752644480007566650738137318720428354859418718203987407805473262082422786011136651408932392097965378190739014273759705012327860385641053548633242698910643944864423697905411570224032783478807246512510866564137813961973539287492545379839233490577935408255887028237495174559048845392532252289628746108102410621584714143445635129657904562347888949558803689134605133025130851634439451299973079361655980372162869835604578494445931558842140327860885513125744163184651429753372648965832448781299668214577420027898504287338625488090588639864170058058483450354300419657185470055148560337305777292183588320866212541957407113296692731405985999079556154744794553441018272418963676525962937626052697171288176339065331208533616729859691557911664931939071633565240819774611952744118653739578303261218047470873082197848720354043216484710241360521338214053476978135466671727978055882511175295111821288971099821472432547589583880154592898768961633856094747293217547327408669680116631069090823630328008407058758999311595057643294627131863291650176505807190312887454515465562311836778872587196281685062513386891132924057724592459983222015953367415517092577033052760579544499340032231339357030816778735622865057380804159914667127803748118236610117869550608189137261074885842495868137357739454574096258423644279606528292684257962120858994392799496050269143370699294737272091678511709637560359357320434292790389665668442819721124271817426134636151746928767440725254732454001747449165530463731608653196777879303651831324378830544014745359082759650224636781677914346668826627968554958671688734273437108354122922712743871866124029722793792974607392079511975942640927905180391682498728097983368725886261232746744873413110391252382623342515247168499034612959862374471895281751656520583723263905652424530147595289070744317842424756555601126367684932263149616638572873343296052283120357304868633559088877907094032194841081563084570883943160703049802553835448209858544816969259297724111010523507668156290968168869331279965736189133134304555158450879254346247868900759772674426432039718316691441871086366396747361050966566083937110919134149702754343086057702514493362753657418724043434123815224658847336606939326375773768469017365151431848894021187974729843626608941196911689593837194950849047525474591554756742981268364549260464343195767356642245183427312313012619742041947675350647234088264860066448810537729885328810440547016748918533416326196101813689253660472669864700728290058672269698754456796366914732608604028319620113395131459503522834270048432883985766815715493387137681828026159612689926468730314014116821888959377456786172631545367535520472184308440513859002753287850366032844519171397311946398425236093422015733952743755329263607186338427947568214948889773696142968065759765799773887975944352466732106460452054738674733894269159053295296077959345517277289756415964310474540633849444736870680766141502695335235958780246871345090713551293968333704266961441347243377935086324285999722563356408893428933277200409794239788392090792427769327494805473185174704605512800768599306495024470071869326623421036864990061868590622262128859529687546686759355253433062605497666064728514412663805476503805274533687916458204266635516212624049668102491147358962188550877046844685089905127117184073626534414974792968814038484587442614632416165276191012289351499642408299343742253525507123777501740409515733339592785786082808323611377536441016126402677331091058971139336481133518277148784529155540706698144445950845387549954316360936417916376194374275321153749707703028601377593833775407939176515369634498021064258537881748493029182073390654705113906331192880765465340299820654040752333561255084965478475308831117184214913446749955875210042775725267838545196152051202678221575045054304810225986126445660881182597497218175292276014031991193624376825145426709940038021151699921284299561057356516620361790998800895632368708920906408308917780017417019704611542198234317704966836338850484287496604533145337371936077038199232801859319201808487463116375004387847149880973333707239576962982718843146136900433293541094053899258251700524929761440261611447669077778171836212261962831226404040704201840937102033439730398921497766318470073918045156329048524182932310542576375420254764137811744706181306455794682901017559716921823809245920070419198623804143832362798530808748469446352541668183275513577133636012194771917385253343312517578745221915743766907908004659807743804609348905845094203951396797540719442705121368457496564219290559223840258648236427265537622094965203300984288776154034946615849118737896546520831234651887907019211779067911964592082298272510077467901898497418453892073726704582144092380189590074595872495118795550730149060508847050286763292638995541903894298592224337445980626330994961288693454941658651147680905132205187848348343932664404070856976754978601278497715379029638360531806687855959115290570757500266068932184229144053005280629804787189503554256649621213512339284530694839621299544919057278409977926689356638440497342662178394792131002100316371575164336113752421752027228000912644414037893713360327517238804799211673162918445651880428896592581140384374341219226312388472067525287973708742598567719872465960491602769888375501227694008112542659310775866469046613675868756095949350149374559599631324811088642384862854233653442226939324734419361806469944082500854690352201325010629872843915333995389714102150019026828796755224133386357895348301429694173221036741474930286257527857706091781183302570799376140851945919179163429090155981494045403919718962797136409283555011889285896533276762530504823002334180554262890067342445381912525498785299108107597075319264633938402211541937728004147743372636944900220396367381684873584939352647712388235994028124823221803528544801113398525191207752512946479398945686039324171077263028674094050917624097640684341567372857711524963567454241535772112245312601827225979386319623346905359236295794541074589686790151150523278065698121063986368666154402746668190422880237153729264639356452722421691771273250664840284128270318916126275357308646978940134723289164348768738375804051677455229422881140430213821400580868898551841349277419149981372084955443098249727467133903811499276116488921389997202507584283784686275694196885712472604366237181465308653239307471269714265239601194979123858830389510846094212830000756913148875474493049566130623525745569291580235733073143291608486014887373598329601796475016991450992626773435980580221547099893411733747134480742211552174504539666112134838303504829055016542504759373945620532054359110755845048775665440975651093916129168764691894180055590982619772684719149925647862604839354747050525459397989759428034096845285998550422134655369009972117379776689927269776171634156029817010201754366629430631631100534904712287948929681882911161811750652146680561385068476556079300619730625241420373135493828197958248177443476492566604279106358686172205497942734475083684471827782701214123001931104334322493667131314093659448871013274883902484542288967066518525910012368916329022018214909028105040129121450190727837373364978284768020230508825997852666534061916575721062766951531118036197554511837466692312815940232561072660568582345482623834747360775669709360317534686632788845415181108056483525516191059126393333644783484237431553585697199022373494728620736736554708461357978958287425301720456692062717431833318404392354994828634219642990947620859692914708416185179293158843243165852921907688687916755815001173243530083063182880701375698108351301518221452787012782197762424329772355063558464452631179467190391349071922790859095074277270088752285089490989805457398184743871905650815052933387008834765414108200101623674443707166440530725953107526822880996992537377923096126261530807074777930993949959457628358449965424207760646693473185504099712190789153382344273866361052433734101759851937740396360177654399280159484148839310859639938801055693092958625767588901550162132838151673675903992335329084036310742106020591194069323370008057907044121207107655639400081712967677555249769170149502169774110248993073899277497970383014565300701385384871938749768395223912150669678456723954000989886170502341087907975771979909663652248549729593926295215529762299284964090266922108595898552642963101493489786834626949855321972353480674895855379637387635079167601540315726895115769504153705343644344859005683119470220335079553440233195521783520600204919662605867808551251487313912107132902035333500009955258965819412821545069457204313363104753596895920782195216550686032965181985144047451359433323689771417182689877540985055998484738288709961877103980329912402089391976063456013046260705259623122183217226509555243468853403193521907152175565634912313059200295824072623481979024234042692084207797818705445624267586494681040912855003610598809312199010085525415982216109101231096376097052354909131688091734256652309922852140056773882398427035271729120714669469694946307504184754142672197673608837571770140871980202599133413346310518367698294147935616131607605950002071784373503949770052631691374339419195942691603269843464711271366767831590322797927198614007776914698049450845268143598670591657500036159244375723875663743904930064167948987338358702117650752627961631375378680087201941388943418796987816446191660998763632411550325727521051087070208237333987145651575679040446497650000057171209916683293729523842327897063828533042331454867265906033463784430265390362755762370136429721537373765587603548553094911693474990027728626912619403202708319630025976611254900843402554267420883902183619518259536271151079098733322796735519706573925667059665830093486821663049118353153851051792387323444233514522559730050612467523484463646345950285757302399078733845237213574737597595113940260997293361626354107881758363264139637907335261007304501614245070240959429691781610026447944812872981383724388118984691075330878428334159598114586314914309545779376931136622394763051355742895248361741383483445742009846797499821654622527213036227459953514161820892759349531042556195836798946261791360142880569130697858695433486115862284007524945952269836110966447785223244668447564479472032859462102196209364154236092929322684002890576357848721513549916664842059709656835708589971072033856113975719550218842054646160711387872344765691261015671231291402202009489475774970983994182512859107446518296830009009800321484919480573888337376514486702811470152017739479082172058648918306749218034641300992533471914484810078882991237656895891907599306157398329606572760838450734518070351198875434603361967687772334856422587639588237593371251797493948260494490578250341949586238018092531637664617907175444024893838971896461816423513719827804056164157030804349123060155524194000012890017770379109881806579705118697294780411406718793617603046515705397803813524219994339090170150648085296820042131455048697527566243979624864891978612414020947335141787313452828295048908249897346601035479524286518527444106193240246564112285818175411056048182281654749104584572365566515237023160729555637903128209504564434786592154628881940999391573047708545085094987301773404880912865347708024533846796595657726031306720483924647945769128207374945663623944022322280385049274875927107501395762525898086611035855479725609757836983942277095315778226815977299358331281697823219122387175007598543379829508267447850557459524356823748592876254755100400601557489664938784152096186244850589900192024998869770574368791036191057012426004574368300155144992873438093331503203160271960492103374227844946989288719668852249918263829260600191841090791197804008774882777960592777379996549169770146579236378352811236661973515186747253683681113182609911279267732437242580946904073749857222211148033328738764392824090197322808024030898874708163795444710901609536997721768498795520042529331203726681389991970253341990047102179606729937986238042274124336366506373125937704154979975696768247182033987791680769825077436187385944899161052950137197575146886636871587326193125254605688174584631559144548034044426902288600923907241812045658891272227570584533395729037638706886622124911274582902057711684156498631213518281553978201444090055375569333861546957252203687643106177365712302354240242314285683774311519896420848837808175574786840066575541195676861750349422158981319501068809289416874333269739582941323647127887433508527823945631529991712766935782826024213505889640046452390011619116109491945205447842330818096332595573535771226567616709103146100777818639009759678790324438314243640707435273608684239999899299482901162087501649629015167299273901571701080153539725161979484336624295154932009942710692004170892114423270906566663859687341393607390015651950074280408882870560018565296966920647468522752477177808157286931220077345147098389102238126277619580514504673962989229387396879512544379319890905231054711721130488337215192757947707434491459681288413567345286296941220518258858415937567912035180352843621406174796098065710371198787970491186968064025378950325728196789324738238287996213249424810134463141597152322808261243506645417566213176635458645414252022529985476607847512102604964234843537400125832038680266715273022878392901569462264028325096083676955095998588491763680504451572216994287927940874704968000846670732417440037416213226023686637163642276534271178350301215460277667264140725033481643488929299774630191545857899494421345055124143459970943286129177366078184317935098840325112392614861558667637951195036846734420244245254032866605183788599556763084462160360942610353109250557920184430935248102582833262764123847182458991039165036773672096394361677426521879447038374236633825349554883456561599729115968976220465631095180185399882738037239670115490910335203032966729504780385158298340830855025584298957631579285458032932143866193643420503270184453317946850396520175963966652098417985857920161931283647190092195004789886931062548829882768378099614558769409686175974415461610956306281190945443587840715009635524176439031563741674110617755472363823901902373277131297535855327478026254591081817974698708752471244304541912356170377140344774841723094273969232006369718659721120442830116619034272405577176174181689295347655517662277871243411784197772102904047415026152204452808857009638926770857913445942471961537327626439856631114473916158453147087221633718042333028976550635646509678984847694153809364071388102904901076204002489279591221249741399907111445502447783923259938838544513986317002460189913658751988608303301092798202606221252248998447641519824204299921814525237892214399379853781587590828569860017928046269846787530529873597512413594621068903748194324766597105203052989703920576651383859973576070510389146437494862217083940091145689765624396065692048008420886699257981299743683422375749328956383454668774488626096948685465548328874424136023557463137692173421452843050460928542141042204835985727542885499292569715375679581302048851333111127802487039355045509833774937442464074998456355358981206255824213611766216096100472559375687696922116775232497591333239805872233724194684060001514014936230127156356168973527422344694729267537176449942482633606790590584518757432832193794962263867701920160982658825578682155525257895366614829658312845261803090658359555344079762940148700469820935447196918817538844740793854806042229448656375580143942794905307208700304501084365809670426220585399040460650618621012572540888179198858572983643005823711719317600770427689847988213883316080421242506235173308104875028963519683331889385521902469007937557384251470961369791735094050657546770877625935803424286106112707054454046619871501084368455899870056576550032826431535177030555337887421375235611228262647079308171789684207431319147516668573205724938049206494218424779030945857145543545828954258039010482928798201522049352504352325127257212462905322389789855566764097325959125385143916886145075242893930077076563186607066810942223106973134834155403450787417111769050430147418362276442767604656774209431355419722267382109827587927916155275779675990775273717473636642198712934445054841266860795027346015620340964969377877052636869280496873984690753910897204572838888034299968483876832237584746230280724461317132760346261864444195013142703097393525270511410059271285430948809687947450284877838854709806419252656934003170616259337850693001447637612144502055030255726230024418094046666580822439757981852771953138878540240450296557835726100249354943418054926248366873687825640239229620643726424085559467083656846897750910478665694054171464841015121919603164811878288236915891172400303164943792212681453900726917169542306241336649881999054244707698808733761320948503691672437925528358551714823321423499256402207411986188405086335876538297253878113535648171854099303784105034878092934084382270991500386020151625115186317891674113818946863701899338413935956205353378460828484927575291634181708746264296329063432401798134693977218819694546257430107842543680467799001328744535675251333367144240435628464277335861847382196875855893532931142754124155582408740397937539055142691827421482243265180042365478392653305089181773564725558773087890172067504723499359057095590917963984436383974536983201070997402502543221794982180756823985533034739304867196055792467134444389079608661555534040529324112250791644207269272300582140234337265717057943662045073153117521757425624086173189631813345283550084781210644923953412725062286059075593181805286999169263477120782537545357824801008536460112602231548881417380881052633783652435853059770438458988622991904349779008669199704950982841087095017139396729864471688951685741729658553491953686833845009518514769336644961536024358006121184270481319977785097830780831148041331056160326518555265497786213287662492787195598396236928224141008559378108623802932311516182175369974764149672704365188762455975852582213537441815039864424612917591423965494225906230244344956681801032145641299170851071262627922647673919079220749427813340069381273240895740695497705925997057607891160628838339604387864725024821662996350350919634199397293106845320484479191804293146952039477633090179113161726367513188136460270344141487081601616366211133465462138030891864750461421847156590158032619358325365323258734464713680701893282962941427756235322006666846284075794133842310084977925911683758337689936318309923236890152040241186509006563830698074203259169715251609362128859196395923658567922262659368529771915597130549570885084841694181281195641977158469043811118353699152940704935107512636760068611214999612700256543950378457312538082300021091731617730558667218780240169570847715320489568662804462450967239129601755925570638483318813114424342089399343762445690504632092214334550116712530281699601699028953978130819903743325822757222491267380978839674956795385023697624354040096420387305525570148524924905418593879090734276723866379682505962498670950854363323689398806431614028022127287717900862896459495860221777718855050488744433868723107705035045243224982716141276540095761509434525032504757494919585769780420599322851621686201102484007164353199438814505737167130781978784066433335891197995503083302715191349397301254193167368926359229211399966139257446870586032040514895938461465462133917013883400480123790226068708077015990312492293227533697165944167621625547419185688274847768345510487026755600565068336662563728567692729800378056353816675454944183506947905732376046817236166583564639652713333010041111627715320550696719318024317728207107088976337435263438673290594163558698951493744301395145320884381489530693221246404660628348228412673004819509205144809414000366816119702070601504403896289627594539050453446160036645246275301743663603534051017046512851297080032079362803927094928964646286856684844802251593834369986032699537587947516899670490959506306116145507536383032643919531807741698308458494577882761943543275397056925000583705914072711863156484416259546884633655591946335929599342573422363062811925482575167084713021477229645336014567337363766840489595688169034658682619661953007955827462332207196811545933562252654409194667318038695247686362959725201013209682756349529153697502505896226982624219115968666568721841660973753326118008840795582553392628952464414467920711916540547658409757016735744745924425395113624502230774694466071442214987668707061860775281588191076116097686294154599920208313169481436925295321898977611746454804955535918975748118810982832276214395742623284975081266748641910224317123862090333331312804550464552454182461306498434817061493072058652273439668234735446458683778433080236473187309755148265519870326845436142787578459591591560098832198471233475347853263863859580041186237378673726503852812636949714544624513117900513138414130108392379218337194750857419265759417950255183382666415329998711661283326113818371590388599183638116298679229116439152735983336856934690979586067046068348354394196788452585193566762837712883250025977078629365846511711597939722444477633865096705240655029743517509284135622578059809231047717052914837237924852241936411821167628395267273306719263516532518198928808186575573208555528652687293599367018355101935812403306541694840276533746772783001162856926070944742478927108849697249527135394810019558736799000123446250608469013095970646155534902445894889652415206342704348403072747809337539602315291371171372507157534464205163407261499216462094262424142837903103215525152727617624337577108983660316994378927631737407000151232031357891707619457344324492486114658987373935383605669688255980172568319856649832927152789029913076520885120180233573447074481721278262050787215043094045396799633490544134610473219577143252203447276239285831058016140837321425711360305372586798072183043463723186754083512013872161691989503710149987169357643245044691916967111281186202805548173901637674342607402254945593322998079000001354108042302518287531617872084496542287360946380337412128169442307924326134132759785667740012211179608735440435520246575587441679005338749760706166330809185884356582896274790718192275319918748858730621180858824293758943415570347167555380843284168738088355978874125702803639027718832112588591022319585202623602283418454808078955103009634979818458421530047290545443763827963540196190099103945156318315170109809611884727545108887317465163246294514521143613564231098831352655509971801368367574772085327826860350810312575823118790082577375012872628892538576870048511755020458905292304932911400676159689944852652207142221743762449961744688993195516269052739800208845332072377944715703462355995091450479043450746411675419145303293413693471794625813575332510869053948928573219624399794368213291831035780708451624249954331858482603043466535363959495365415028736197432592980431048970043565812887696476258885973387808661143852525450865230423947132959449957547467194117460280627352082421920125181508789374922915537518756219837829524832429919605435334570135410933332581301105383307684668211356342402132575442658829366313057496921317596872065171775416742342028507170886998663455235361308364815620656923067521085254795047098317878332155592653922332078578447768050109336896173094372502384454814709395411371644242399420571622728441251921313283383602284706565941780819194635571375449573920575322262613608872383191328072979625260690154233927058071921514690121239706220263411749157599172395400660330896056533152357733650486641175871545127927649357492032092837115600930549113743727181098260479907977351971020656007280272915629011549858050395190323420338222355530435439511506796295304309884625606375868695668761743062334471017742588386399775620999037970779254785001497091974711151149978007020540543186001075412477442361067991757055948465254856257477293677448139087801778962043161360397946970031775610722103662694634542364563488397065350251222751247836184600997178705345942438515977372501682830947835449206356822106662116257904737382530603814902972270822578106550071878003561011148872388335432131276753254477924590191466554269940927801313624789015492440527693998595234104129718726320729090832928173576390881704375243422587678266683214402657942456890033752119057828203928879006592304154761074410888989438427898951219821160576454224463460013067583321497692969731126351287839107507612055798550872193257986421687559729008131168467630590726196380400680831166824134401263530180377737880908240551045011659431787859347455732439214841202476599629906196357624859688254167147418279838648551625016069092774167031378507016303275675577870534281366245721897496769688716335624617517151159317456403718028449983714539056042911160694137907025658154565417167726831028088496268348517173672824048500153037513493785196113923485108439871086673193787561478390332440831282736662718957639228058909996207990978141878099468725732666399310285889032708162161373970120901334029999096495306159495553532178511272068117200885075162741335360529978323119726350261576116945386267946558125818599627514155790334467512455997117886312240928765957820168702995533172458478528250898773665588803179718432054655414910460944463604286722763133598147036718031905579048647825138574972901424650176208093099474014920680314754462413974538234426094613970644362190639984603138141683328880690309824283772015311994942884649809840673993268808922520889627871904404766506896861572494896687120556368717588787383776608488027641370826852881988981026533601053358468309265660496797935002951994182833010196429181261765756709367957169516308916973074978116062336941341674260393242654202850923948161564964067675274900856988949445259126160687902757161026972131721201960255581369122737087545143873341417713646003691560948131305685413818205304311983570476022203919293748378446785162142683629727982863512411522507325771953744141331696569905756052499258174854626086437733883070751925724366661903745271825953360431967147960053430235833869034130040832630590813726048747121745757976426060228046548456414620335117382129679912978923375657633004690434589065478616347041821253106350874236009548998387772913523411419017208364237600682349992849477518886873895193038789837802100752609368207047386340648048636049840786150340632259337231928381784765505970753522923198235065123783562548480656249430876805308591492124840650026357303933588251150247921809082372545730061230522030697339530720435990701137261290838533545090972412913654178925100992249103651592367033785329554415143551657932514372540962563154444759246547792987815719119999131387990557345880766706829298134041438664401707719532806062192755105320188632156106223296417311981402404874061600241026943984109385194914189320375536787827069556113918327697311780187849658842128530169778083805435247790457497158605764161763748244873387690785019728964030491364367371793848068418962390301919578380457158410247841188047205247035387644179017796977636083411075998159450510839085731919482632113953805666607840316302412525970004110330939571190549461229144860657791031388716572587228312927380726696696844736905166563764240306950483880494391980962116803707661432063079282854296667517378953987443328724007665498641760153162593501787351498915884966877875952947968564217546286644115628553416290617367499197281522195357027176329057065271093436061184720926085124706186244774363250557449525253100637186304493816680216273395814553668006393378386310720664986833048390998368187612408165984835160640266218622378169602224261861110069397568763063197652205889431560661623113776064649873305651584277814489270275225177957804250080188077272866225036603221547843435028537819086911456283960586043994516427623180815263345052308956547300698780076421750433198924579675309765299290699970139286610894120931941578602417850909907409581252201373394698841934654381726746791183032797641905384604159713893275233873369228024827994282417123916532594322362390368352315716450268605024633616242387900677072724838890361010791953056699408798650972171073966719391796996292450799660174548627076941321121612043265248217764794108191035090228399694602092788501945766211258720786350003753748070453811746156157319855562718951608391028425285976096889701710245992296960116668836566833936536855632084283464850916629961787385343475261529151697732422221781370685452414457750088387888795274686401626715195008271967129371677185893950690682449593999650419096462461086899297665210691956990890075905616084370131025899654756049424255776297228802306870062133969824352040383153505164419904844755653171284639308699435877502132666787825826989005292605041854396866345139526029957023565935773464555300152904383619954988172814293499844645425098858802829512446762880696735954996502133303179323579496070301429793843628181315974003070286103389738135955193946938395867983968461003149884034234034426454298031599188533806069041154988501811799680775704796200597451420223157305547199496799214719669890084347264812482670376581265052026859101336589705070910950677120280592995794026637046267059573399009866963726234698344766958565681947450810107472109964914906449325999270624466672546356340711061100906520004755951775862215447254552400548610693656475778413051442798084449369414499447534966619423765314996618961621872020178820257073872123540811572427430527033269323562722484634289857065144886390631523276010163910332324009824696162603981904196382612012221502900488043280879343338058181446614663667605888650376921523336684722430219699849884857268588923685352125516090089702779793026332090891549903501173117673011880095663757673043447434454123396370972160630098303507063671742608514789200138649265705475206967092302201642921396079953792786340890547717567301273962334328192068265850348773569865612667661690221871331905988596399247008423429394647866970573205134489261642877088857203416290380472697714033255665972014789697881065009110783864982982891786003632769515010924724984754009678318438806666669309990221249080371529799236628853252695008535484282496257187064344757185257225870487271880902167938482785424749386569712668283848026540295777817091462371689443697780273566309292470945059114594277636432563843883813719194572315772679902034884737443388503712084979817093655426881879385726733215058045508285788559243917122982711538959753063900878748202016368007307517111637496903644216936441104974494990729680180570852148037395653724694099679355215215338669369949292053839443973826034855312765989845707107310274644518816141309237297281552524487297211964492353723746838492614656137981879434494310189659675078547449705998581357810042528441672622094748062158212716715705945494032663635916691594396726334155217364519601728224906269549195672650786164820587890547427016718177358885796943579618493392108623127377279803081607452688377373029931605487751955722452041201353741018670682382714652343842406604299472281284724937570993539067496859098259094357268795923638790546503501591261297119139019046892525250288364541962873289687937525675471418890858920681278475633673193024949671025548699941706526569316166649017984514155633240233042999017800121173819066566177681623304903259272189972557870803222280604834636197577272323668548965239660519779983671316922947264991148598005484606725764850571096015826280121595334396071496777743395967121617207583038980055981698004407141469393691248299938058981059053807958130485271193043269319852225554092332839047034734004410326275119236772955056860512193064613773511272702631057326353760276878547271619678824962068521477339929115073545847326950766983841499979669938417570102443511023363427198169915644209598788420642783312168569777998441583224954105160142923646318034296658085081701865198748370418724640298911956898219434807293464166818057438160885074349101362813047735589631881273940946050141453399249008082704257059835442000570451308509616784311137150028511894621860896375300841738453459712419609682055359862096979228025890532521178412722781925738768324250396684826838624459637652869761572471476429276644092371386499834270810333919119641411346449624702095012550191637960459114759483100579331330856067564454379738237667695915216515164148751466362342280196037598823029230586062740125671395833610166845468811739786327503327465292559539059801129167584315958164786914552163833490592960596910385549494424912259994168397062965627335869803445626346575183885887034907973756328206472829244577662822532482869465464732903907768408871098245476558272803451679189231642234297764133060751166178960473690876155878883232483872953250160690325981316150715632078779889236092467806033202487660090480618590792347083590345441174475316292261676236611698672947044500499316780765816910646292461104189681187861359858770319966284606477048175721471043212724469480544531278781047200111022026657196731912291901799878417571008119115060978908195091729693607414906170563239655443858159824863234614697044879825665602270491978307316161147980125426631138995590258125105099955040781041400511626981699775385878825257566515212281030320227652688744439516925839458073475865742938213897240761731106198944259329367083112928977640698650548223354063892082103541465954343147090358743765494688370988208110171117481703858417559338173381740224243648434769131631628401116626837849509484559467054118068019601928002729071372518586530270596236345983433866221376373527535507558200086232044717642383596395986912897685368508551147743864595326012953398215720044913453968965978658446896242937381486552674625078610659527090524887147047993998481132087502413254117441141118006221343406554336492949385805246802329925381484824498487586287318337995103546252020573677820280207130656741223275129430885438490509687501541830792297950997321287179013149423162493173897159042083212672130872989127668566928068216471386915658011628511784396013878943106066880353664064618812132634103026836732049940112169456811919755216986283072881138689978979512028772943550797525402197929138645057962221063798431608033897324014681011252331972457412557349694150575793442404275326149441150986675523982619899786286310877283592659598266542519472328290679206014425084115540841362969258740817857581624600907295598210714611998096481170343066793058403275868348059451002630365813118122363756936613230601052110121616577576070109653551396552674481209656100474955033329058980865792810464245167294442096999499468642303783459923757736283822165445168800322252228301439536198860610835512695599781190613055506885804210933422899618758589910271402431600882644213433484117312109333010152353041479294019085271636052480981802958865421845218101949840617144386052697912897145551177985194647106791619556138943807984160829001007879877443290967931943249116133787356385526069605925583285651325374562208868040189173281415570374761769235902323007865217988300266267908417279229611239672236366908129765831965408111797622129538742428759690209261751047828129270847108306064461450700835246524230816557557029805310436589770371864277670576864158988312330464567054087244542283796855108105869648944556887996676324600295072281613903602140595253057057077615276688956726243845661154470531857893929269529188598697120287666540758781068941344836040402718920237226829458353441504737260367837385519395510961983760396155625294288842525461414503025562081170412751854630542965465521015616880828664431627946981525883089100334120669833600601035138241131892262911106924622290198437802590180116129238186152778580773804677516079478058898635933349373823067194584413650074806019798545895136997951812308860963270123388025081851703277726059018408972262656123764360964235138318337160330530067456001109142940650753305272473443484723287118564243920667946476802115088520092553977372057975287231436750156471231925651982297963266691115545782147906293462857960810006681085706675794433278873048074982849165916652996121783888731621669489142817018846133128073836817641539476347639558368579485338302964546842134729154076790774748801994694505013259229745684138734425652857082318722342014414699899264032738232410189968332577196572818344699140099887320707716973871501522338199972654469923520078538704852252473098756512325065338506789383665320696353815551555580530780607003786716671489578362201199324204065209546276266352457056638989151863665230494882935813842566113988233131951119963800327639653787903939689016990788790653108987805977105039993445978716570651087043093540022594826772798562238199817678607552324690200512055112869219414838746747419615143223560122121854973488294806861968213347028559223733719082161718843945051282547442585203291344605832001528994996904752252498318694247771805581136804137875850961010130250594683573948636884533790695059680954989149193204329823311730727689810333431202411033013152381257661076421700690785100044548797906154730833120730466587478698627022991761055621649790704257267476407897984923996914310233173186730337775236293534643813590889124536137834344775263343787623444477796354682306726332196892508302480839681923182347941286085377750912404478135252146522627342947806778201967347006516353088083898215954333104743628999114650274657255342173465536442466975736048776177406826393791054428835649712267636580213605601115821349885759204870911635454921560669303554769815953810736251297741644565369251181443283468219913751825042399406422132102070478110268281763775244795496683863312543353138191591006862820944573245224087688258887564226324153074081181910126620684198633667380595232418506896756152404447913691579283667155543101287052975229907977419568179016570020244489360487146737802365244998927397500387841520497386826360220443828026896465757153320257958142337699636952842621988878603586920534431643820034446410823583515692970935557753167917916516144216957964988614131197843175465191532781002385863678283404934912438476320625027902532572629225779856571769331206691409265337551875073255409129368465486802887664797179569968759267057276152255672108237293092243894400150468744610508060529921564877347765092534020643606717650800951663395981320197629384064156777491652970003937712848685443310240173261291698721260483690600896187772567943646394821627163104779386461030627192006353427095106239399368107128469313651819426878856287693693131792367188091374686545815221482858920958683820057221926757012341158944782053485273265172852545894273114973286995407285452335663043123165770659594764949639519141710271966144298019033962812490686052830734846525836114767504272739726013883356444283191416400256521805298996571892399169095119490916967722625167774944945541261310184353327133317542673917835660539894473413819953101209438062480102375266043378259873188003641575614895892151640842809931137381141903293406399571849496927880508344579669271676054654778946358265289547216433966196442415345103194886924997101659550361251114465191639336867725380878632999895312515901750686590015740197009062495080127561415271288369965645857530273824770515933115632299615647589981600610198893640797411246953739847647314277543208115584122872857426984411098329698708754211401245236923859832604707602853053079714847376509199199946949772394609163663723311074311318406884268850001478560765487524985780555193345634254847754086774049278733987914686777826736697789157269427653312579746608239154144689168510672198185628731347554869708268187509052855329997400946427280470096757241210681964097057726619437174267474358976848728667981771901055472060302765636615622158793119150867827091075214280597194272907827344869336741865844083384659070626563305678742848235083984971649084465161993816666588570849951428547332640955880030966788628780467715486638761664520159590275960645204206355727082559099614920440162474882984541134483340542093074141408896257961893973312011503352120255252583842339195569280342433237606243663996795277500487558310407225436422950394994588982955359524871933503075439673603994984487510442183457791505382351100346944632907783312611901560079590523870986493376123211721241849883071432611413718259684270231273063616402677662750256326086106292663262820310571840473626618258044180960585733521820387390902819851367975336927657485797887213203154821410163844422496424568658731102348843311945530061371646474193359943650315799797726192752131858263049061766215765152645971423225934119023119493547792727387465090956558402934601674242524896254027005855085044176956876715907036954064994149947207388218219726677624268961898266359516342378445534832102367641854193898476255935093466083153346452207971251717612992511188831115984425786996737156786082080199928747645339896850366680818350237512551499833510076370200225677695861816682033942484407758263517324490773113982038553292204309663017040775329298099469901327455171277877960130847293096844613933207245931751942782308806763587765137772076076089988984706564901023100513226014727324601167527953523237552705121283225062037343401840660393288804407880439787283778767293165645305747723172229535159148090653254097676217012773222619582274334359135564169259733763989564290037883113463034670527787598858936229178729174512697391091494788945903124580874560737438872816447067177238248490496066485747521683062971482090522341725242718472859794441869632007933006879405941367000008092741238183531195851871334746680468412824246428020547467892135688129568039498410785832738108962612146491076921408910332812440972104717277543576272686764271080457529613620036843835250188072438919816120938572658456902003990970098640585075536810153109514408799453060649241338314956034456531513241326400163919043789915040476820195076108497695429649082923757130322381574243274476108473048354368034706410918468889724875565341939834516821314005013393039793523704189144102066990985350911135294320566752336830691188796027590204213944263069285633267648496874017112793130892220133720919645326556744943214030642813969517937561399271767509661604690066813710649437436036232867518666745422154269291815470464166000205553549708763721807829136776079936684198454708969424241044270206148583488211557470732880720072868864269349108882529045742710448218904997713110297160168051640518391090160748546429914865802941533447029217038373291294065234063314327694734760061793588191956693662506497254291201178575785447798831387733488478672192799704190833095548793263816623419616192898205720092020873741934041205940549070410347749197706844784815184372109783126417281887011379597944693919825831763077890410220536056672357611431483234696428369268692787168541016602556179448203513480093485327447515396431153072809457154664067138128330967583002214442647593812762390711787127475776003870749028367503507025452734516548718764781997044311569700449053977982682709881131124983140788481082263669082300761943343717669140655268930987008168252607423200008201294592875710277620213256418895556243121570961034993784423235947297815857023733603116025151016681171187528278900962524248577461237952687072821236742698846889320446530921732097623094851614844792741554471920855521268890521123171168723231523414072310801329039555420864417612785051008126704073308635639391419367748438430859089216147543654942428170923295840780595690759788450061006966523107259951748658499827413671632632843907691385838094043596055333456333471943922154918698846486765397246178736955423629127816410316072139528707296237107968948860468134776221804357791752031098151016182864130365434332435986395790121901497038237348678517226022969299974887015154004829414349102997575884975285846875913836909389331745077169554518620477645774303058813430660972456597950894246577424064856589100023675432918949497119880188079100875565353806804884129136323607057823413770843167541412847437568937259576602926066845272113033194027104103722585456170137070824966285995873564994133364706054093283850427502707683192824299405173684846484624322224151088123280801822395900659421657047353030058075409500759098709892877936959897681595674514284193564208757939006283250597272824899337229741441662733381165428813289064343341555667982071539034230874984100233211470496924790500832911595107729641118792981464450988567766186382745410478034742680361989387379119292433536025294871693723571399523694562682558093279121178513119724045736614502687127066554502021281930717211620512120656956708845410381943847729473382293642128995155872421925522102043129362493011956149277431874358314809006613337732834748606710339645243200436774991201408371597455639313586855828023526030506550201702282931527748244582342707119180694154474300741033304563746294487116000072494147291482425616422006006219392691893612606866281070939016910789048969562173221220833765950397732345854599245090371770038209571400335345815242136511375833988103401086154039297015793717866439717270204385999576464403627961837488217459696138416230295901032241400525321598168478688199822447639398740747395645782921177253859657314227806801867936069159272628740795977004865707911907300811780411315185893707575088050357741534752347006432195916399630770860465039243687028571958351052474489778809854684026984466482473257656617150245386159382196783105973321906225626866107538920943910706351617404432612025754723013702585283869224785738537248432251203894521709506487478575758808666426256711550873576536152581504248302135362386180143562756051632526457868679441207062946734516387515853726071732072067567316637602308455387154165845243226697954702407587764909563879344387252806874017428736153044409759813972326988621607441180522044854998166324157598732349873579190257921256208093514035844331425283931090240298640950086040840009900687124137858088427211700719574599413891160261629683602618005816103401966001015404561948730801706247660116882507694801046950915119323790029718906732660378289663232218708940507246491836017556033480074323684877064923458643393887997790933692401524725137142134282650340368153178552477991155721714217367580560432553990940678120098193271335544431003521930715031085508284515288550951060108404586140455784005561530002741055871474155432973852646096900708610498122021412052888479702045459688897770499193222341773001258155414178850725704092722399714324133483532010908104368818367912963376148458931437507072318378194154452793607145908197391420162203536577377517237053941244495965878946045508761620253214665448322344786306749140582591867917160050550215609497962315357025547666938237251544466370575314148938821902508697053385856052505216186373494158733172241935732269937653247443545352619362910504074444017653815512656698445744858510112992456890125195700109382095223723927669237361253942119872914551386940522512599622623314368222639911942487111260180147318244706777994610941603601416399171593841554057536364455878296377837192893241373184131529456179937405823290831782174037414750978032490734558974456519043676032390043275854846473313575169728162838586248446711544401330877644101921310217010722759852632069061746549222182978335134169577973199182565950921547765710275695331726574989824790649812510949987452872673309157333150766242178760728882124068574296535802890780972417012901428056867011396869848433161021760712527555157424041835488065426528596114369834962080394007642248343871204794083877629089133588967408022135479330792422243648881262712964881486378168038309053325386592770355825247279437369089782632955107277591770421279934944897866126377385975701425694352857644148476165121733649894078275422557147586546266869412273058136531767279920195257565367413464352087172450683949853358105464290606372953413299048289368656582622052801478207713940850284556956659851486419591883638247976069329284175471506385494721853558705559394922073234037566306315256109513439461760758500572883131678685623330635394249881269049476893326402098252251874240160939868498161392316698740588442557772044858384284044600275291613605408671807441802807406811972141000216364030072167312189521051518688477053804967978571943566108508755711390375488569865518924953728002856503942376408656157915673373628454284585973887073673125446883227876931768837637502535776732837152733058034459942043036985594960204319577497075081737947268840519433245702980006226182259928097406501419614882903281944363259711874770301881023556199557860530800384380458794164321685379718844025749050202166646838376153940359921366562546739885369161599212372878609708281231792119647559934730480331025713858557026029937155639327803280916061329424467241110057252738733742902947459840487867705626791656702969733232502766884605628767653353788570084266442417834166018164560560298698947205837859421461259657245966345116025171049305291968379649473111702199220920769593528949185795043171664970826410032317209694855880064760372190333381760785457546083751032891464782151594736021721292067695028586496238471068491988910760620371967879022385622821417029024498810966882174592222132554861185735044215470739426455954108522626706521707941778672029286405407216367017325699695583707303880841441795014544324423974689610047419919311301551275632884206705340830989934371512686683830159833873143646730925034094178138567657570012558162183907345324213937150679343955119528945218609425101722843764741785942073954200916851317457371836201064919666503896697809560025424699059290983892209418372334502680407172471553834938343477173935530901125785870572049243789300735027561116770451618053583078224912867135052004651840405231432460091233330291949118745770234536964561962675889418734395674000327218767471355307965448905017914043523321586108848911295765684731541511293344023125368117202218520440130682083794445947752677032263708342116382385475934431415683923756690265594390511706043532594750646446323280583740787893420424041596726503443587105538431810599660326245340387072499601983227126033102421786583661846641838666017089667540375740649994518795644595086847466789979199085273831714392290151292619721105989773941955404881584171174155516187265737227961982097505831561015037220458814953155508671663131968460563796116339906617330389437555566127514788882616913373753862452220996494802443394337498149393128257638329146966660480902038214621388665666323050527661536200000988059470271835632682708787463301432451678202843648128556200219871703898861437486751543575018237341961497214749187840091284452519660007944434223553680337662986551185087562228515717966549085323682810804793408534476392269242990532592907534621611215294712356151244779337560290659530041445511130994854087477775132226857155241255050418607786736211772647469579607877287082774619989558309018277442293191151907469872134857539334203223262991418528312835385659151787726494188666910473337124854294077115173959683537121292926641946184981005050040919797159321278844643714962779082779782591291375545549602379890700392903783624502534233215226950074048535744457998404602976052233695452039466217988757065714768856341580274995096718041626852197463640101586001526727824352092529617085545914169119417186239313257708369883660068901059877344824037241429720582431271597474940528054810995216445460431157959926060996768442403134070874406813471695120584943362042224210183295523429669639768534394749905386627924030561042694412547508410504475004362623499268266580120330145199763860186164795991462267747280018243477988633181256625117067531832305656989468292869501371520138429649652796372998490833113263228401271367195707850964124697531623715172363409808827020875105418390969155093463651414422045694971329066579178193842774174163247425888130712150016884693009468184472448938329059286930387867263750592960699999633054457016222151687217517729156359865647711420413577194519976948674660065642667891073503529457565837808185135705554850232695647644161482355700602884721962876096761553340158968890603552100316090005304196667002791694076397190492869054450391610543971090749290092713605276236728966384971336513774792478747144828293875304072620429078423248318917918646426745191386173638986999736987307832742989833620564397001861968296901948797460184567406281549898729175918549629041253265490381364767790457674280335647769195224535754069911933003672337586056324601005947468793848940922421504930171061943169863709070710486998228741144569384096383864189122111382176877418048203771195398104484599305818501500302768315090822313021922173401138866854212763775924271683487847135049536523775816749642302468111192501834917044201701813227949433625605168860219802362108954957996060928284996235717699093637693744796540283715151881310760321863641137361904264600381003095276877912814883277868146709109015589192133513667003544352494666623734032553747562361294143212262278234717740378598213463287240556185469133267796503646481437195045533587529299295477536425335036873210431778248431437302484265900251841835519604103879657042650115226618287698966939919768865754745461741384878025405083283194568582390322868282994393182725799787321074576124216473280531937791812369269483068622004986078692959196471211151705099665192712579802661887237827145010735983603831579231931731011892497655800057163716595963272269193817497995395054480560787567733337356993712028668555503952804574418499730764137960531881106939421661237965783240695950620530212061375633310019677516203330241550729344600233268875849873003339518106120768462801955556657788916946597777163474124465648744009319614090622891618484787539147957972310508246028737384516990235487190963142712156655756794519866969814439224672680010455108364436079193327764453861328222784990087638480681348650937362718663699892220851871118666072811466829011228868133665298389661439188754647446263063795988747503584864107388744474429099752610442332685662510728125006308686568169407476177374799045573417767025214019279489077364939520728557379596416385182891028156993161496827579798679081762829151469840535777995461373798554617879330477093962362763456165566998650994892842538501125011149084365784200974168805136233879593420783423428124171711233014504198805060100697101999434926673907106216626463550726997531722642793686546772541435674823354904795624275653972400895367963154379874367694807359334649057965991951772569861048527004441099123918916495107206484560225723757252942222935750519527153842267066083754057138432638843780038193185375902545890031187100287041635210971770251929434849385484975230179207227796920662880105460669261927778350918098840273063788312019569101375012407922793234346757107051219901762941159459942707689111996594103413504442289545793428466270465770886373955185115331719389761831615472623911597042606115174144921074773500274411336738628359728950158286699781840838079409188980655236439473824084048388075405402549637510555841488226995556193425152741657298741758183478052737242198420322870537573342211661651842654686989392078613258704517943186033616602369444333886428567809016508268651776720516479156589139709547238755660542804495279606008014924542124228077009894512721753918249972190096460437827267075287622233001866079487475972721857052722792275229264102681148641375061638250733546607410344262079318186668225365830819936437957526128989327299493623416976931787782262458708531568570225560933194791443366083512185849780098690501996414332914674358107833813667294932743508457683247792396593439070301273623667846014039802991353195280444426836520950560097982225869309659686178149462950143827802425554852216407735328274062742993442178876221476078403840920897306714291996469907604070378938776007990858076986219702173057792738050627226641275540683865759217621071519982540000982535244227137810473566747392426920045442894325370930912321458153184746770099543860044912539504287923154582875391321929912748348709670092152905067070864509192439062587519551921160940413474177669800268615680654863152708425205393379385556022186102707303140190164217763472757439978717971856887280441643924287882472688532539805674109876149442812413364877572791839293450506324759083606416792086845194046510644393290427281785637624820955534042327539911961298182319525891864058750172412895991650348624247904809542319387836248986868827943579912016970513217654902546282287577361607031979113863883955032353547299728624511039370302785222587277281312800534358676982375697939249917600086776667328605019055001384782755994177758064586065837409434022189641803677424711269250933999437024670019240235710480185636454175540689938691151562405015246553263909237944793512143705690546422125730112426244496406602718156566648895390355980386528202265764277948260709386408943160868281812561187274063333660678529930490541546836517589566959513586528042663110048952577864134363713914461872591869100567206823426221925572001560675143595239784614061857219171711937793263182624666675540166435237532155977793094205750324835102770327051469234101796570059633569492860124420825230138845589674286778916844152265469789470747829446887928305471470548872613882684369592191902071305954950622835104142091960323294291151376224340383000860403431793000781401056949445639245518638497076912521796758555914263927770011653685254488291954738653593460076959403528352292491896017836683873980514217941704470819925743005469410759445715328449968088149868912102038423178200301615509907471487129652897008971588697817286004800723726677264973459340457437178006031113589304213594724022025910889136856027027319858177151143701672402368146498914083890442191308801976274799714545937077577611866246288024181295125773436650197913893809454150379718525566378388195449263229767121300668968442834879189713868784182936837701684711326770174588485671717133355045606533274045511474759453165602282728168446328058943308137888938052151571813381104553619376971510904567388974912575510380041670178633344862880942142497915647871541725812026742370638598825271845011317894385782907199421864770570554590481426904005200022158843921057732601254874754279669553561587046446573610469150463719546034417097189618269838646406644934226136121940273895150395629531042620757283325244979113004631648012702975465454915649737322280149103013618354671455061564091716615294424508748400450959509870587401689471691300833222947668863464511678103055288307152059862878016968583130734499637030809405142988504912085974871987823660465455007335026085675042145789832187815570438786712639396007963066323425409474950884318731028524982311241521895005900525496145125889032501829873542116296895118572164331223266130917835660495216752684245371114236525568868683364049129856867576463535043239174001602924404524435344668508208510436654763684238680888292696449354754505228078748208594174411931075231772581798689043363082424886689708635419757953856389090346605151626059677681944770156112422488283879854368382759024925024049105334761733646445768797214706088445964468311323665428379780760283046907412286570807003907289988570795300728853344397310965256820087822132289564970870257708923681609302687903833676938258472185580801134428734961659330432749736366879772610472422045337329958411078222626010021070516258429611533382490405665495873899691667440010013396938730096972096352470671329647525004535154302574411455822483014954046267988620076836484309016008890006338676953953034427545363573459125639228632106759303817986646411709753936243649636740707100749454847235167915067380407668416470099980906416426025359670383873551020016919314494652864156934278880170729050686099267386698957887310136912772815583907809334390001022628473940769485463213219273794533588116751575880317443278927264770194131900164065480170873838754193732172901004103353829820640809106405511175017204735778461136174797301401359496828903207846552501521256852247920922111392114554049967038677645954340604129128200677099385476211775625121775043757558268547265084804313858434313077148900977797364602175344474433244881947856227028919838647615466862165477645758268397533508768131831306730543525157258882326939641794897842934687867501117456659228268064145222124153652854151235449975959255238208580018573538709916677756887590641862266059122731772683760155647619593415204661195987280958953385447759762807911376686588165631606270205606009536232892913163945833477529075380913983690051370176451264290408251919575848840825540813710890474234400047814781745676762194404253416485626599420316478359103566250748348918981619374935748833915039763144305788992735157978973216150598416408541837155772829751308603030292194855156923338624557771231887699707225609172284098158409190333706620584114742310863993931801007650780995196120488391884114287672030658235905162199366535733776842788466366107056882526474822444392763216527099009043415108795244078574596929159360834227073404469025977325524114578970910860142482649663836354646374615186098699788886059475488522015495597175591177456406814468176797667735923749829713973057460421209379679689504818671663600006365142964398140293889929766205669070671148789470102383757843032832784850366182339914827552007902938755438818654165747177728130214054452753773730708976447266519192056840676262624521972266390329914653263911790659458118094002130990760480757909073843726298525843463114585149326682157167617592256358276033870921138616550700708171286419884828685347118360630534337761506380609263235285079173186437336344974598405601547235319631795086925996747192999894932381714375884689506976263533435975285297572221545817228687227858976902590228599574736977986842323669111859131202106200249823374505721446883302648352151339669835067291198187730850896338231569201730664133950676230095958360462589285398073945849366602869068222007633057288283179669669479479776617260369486504337006657017538890092636655829401295686674516494792451051252759362018720754281165775156507286468165148535836899584419419940020833781575406074160220637291390622504523031310691435647665233531695486088598405368853554601619186562886387976500581265457812877151059880114191538779812079737837755629119183355787952997769129120469208087791138859582460414008230158308570292766219824502655394245356655648553514686144817237213903644321108022516357417428020919314866766569200358251877047068603120199051623577797070155470223771337402594032284895290207298786177554180503388859699500728591792833887682584799509543924590659164657304107882238973036088786559186858636780318995176816318751323491844545527779445357633429364010297452048967396459368839501977960055952939325880696595340121431100450410385658200734742103878223303620181389394923012823728008567334072518997520157870307369364021599795024950648090367748869428234868630500237262958166262775879637651062682587755163684424122812467676310050136369266994048742351806859918515712565493805202035250241435014310093890812659723117583582415677017846607226931375137920634614130752235126142135757886691628725808620848849045451193188493062136031034004951948716149838407622761622490396378599317985344117208970665715257308474842719669055600498612397298822453629785751054793519603276377323032713971395027354907210105637400480658398312675110607863381537138826422844659417622465042443232987218197267444052620177976050593053786925080325692239823289673812341601106677166629383944844030738771810063848872261474483561056331997708346999107199895597601404688599041003864477357273658825433543356965002832886817681772888021406387170204297668769237089648956416579596815990667931471729967423439428308833655919882566108605967238178776289740281856665482702698209248516347522776859525601339949903177959108143274736922385445319371006433851157285621905822212986061743176336610838754875104013521517444113857737258086246514508398559553347108930276643804930102178386005780356613743672300834072437127646778416947880960532636632854427203655394417255172903505386144884925242193043009189236229101250105739498198536997225669383420539984316819920336165857762997633292607242239271675220346046105924317421936176346593573946203166145207737512405106725966315225692655378151164172917584166782748301716210543618031670584577108012576580258060997926924689165530289207865366739428867922077086957374546018008896290155643879000911367416001842148459075447202487587663290673840204193368859782798567847501203720683437490742161376844163668353004367919323706556586471251947437734054702419931023116923820867532827644097026841484387465965352838937810525629414641223334953479128682545294037530766134524629279260415442791554891436011391576290962130305796559203737964311931725416532604191193837382333848773590714759746579204541712105420309576029592938105631021924749846187013968657494274278537941168304285728363468093411898340142070300333900733589869473869097299949449440155901604261594962302840410165176930553775208838602687049123097802494561385656944401725054607382885024385885353430899996372076617643396324891907732198407017676054765135000590430429209859483428304201962953138976878074068981569002310486317873370268587165666681177333563255891208771127311813727136027713885249865685051674819216587345898316372595052312884155594320665953735186906828540705649198016852600357208939344752187248198346688642468980252288058503540770202161862102773207803231061416300020222863644997174297098345456869517541079914146454845595877930992301900982535052567642637808382595115126431822421404135475261348714833174753491292095682736358306462545384950024321025015455859768222298721481694837842716623087026936935334465741342563230304697270587140472265815202455237727167942929946112677235037443353274112865739592866741684864268885209353749060237908653922783839716010979575645078925366652512591340249950348252719763134980042672844154250591405698790864117801264352121875838053990639200353015474730120916865807162363094366419745101250551644262053360273719216496529769032525071281845331148121943615102688401135766582370061039473420149643548532783027084648644670120360627347298552805319592283688090227646601136799455880855170648002109984037181634696910426183463323082040103323194060876154016208657218286128493008364917470524279971448872034209245088407352236752367007209919583458962169571814037431385230945969673004421669532669156982530797948265742960932223289371081615511145152392914461771499101834923027297546110041230407048867114480785530573617474167815128997453268855299155737967704877535404364786797316751704116722722504411245205594017218906109872952657386547516851692386527553709019116264068224270196350341493299764369992139404627720543474806804432371738656344317581891333950748916894371516532753681931814112012762267295220466941111222133898528630452648355247170860197055779555702520028378809858326836577313255972040762032709897455073869315602099646615280055950562932138603757221325758732986647531527831946847537390285047048821186927860105790301311001383664800851812580551706762740439328633344631565077346526516304358460273530572273919148451036778589850424757834638717696249220515392308544568682611336327114725844522727919954992969092106036942278966188661960520742383683179967520832655533419178348119836556360312056402921319554111052432375635088939506588177173837469152950118045765384032416031285587251323349053452360688727282223181093083392237976880068271027118608773241901255791250957930760594005426352318088112123510962384992427331021314275683928119462007284271942374663992684536070173542564662896916253149458266919598021582177091956642836251687943345455339012626175972967908460670132749909833784156882376714156205895451022403534710769631802751439224799303438786375161165717543360713766088559037763080772003569530669570038137356757033290910856425500413999480985048451194662515374395863058343098454116301276944668757640908827667866293604197887327873672061210887623429428114450867553191505846939642109695882463074433876850097509489348181611048991395029734010259391447723343231472645784011953530804147142377974659006668552646450617579248640538419798402263046172802905328678344742876635480444711887484186061446163409407140549152835597615512517228817737451642385437620424431374863273137397079568138057913054331282140140685173002000834397700020103575344966690167474149842012446399253410328258018495629027338357475029960386219044984871414209956975429959854846705958174494886636195373196533834736693459675328885017269295679786482407015110254017114102911528517724801389433285293197584318263280543390324145871830247767074024299861628625332502048479524383567718089511538625911461756717712640716827893139514908339236111076928737932844894531647349080045405329282640887122029867455944356568891980938831301746732955634906259033405662001914935063459350527617090839102442596093580494297899959492405757326240799125632980615262382912307689139843672345779923451858611709598888709505303338059295230218586332959607400456258881007946188542099593995322710838368602136957529918028375701923945414308947800172726352931969639657539737260112484579699142282099101957303930104464040530016675987739699514655604148299311648761974843201865136007493106872580990382526336590122175707732635496001451052958789270898371662708073853865447240374593872917140654885044264714886428871037500162842770456538187841793756628909747473238878783633328211008895822501824704552234980961370040585545885423604293452449089510005920551503447017095682588474198810706544431422290860012830044193304630903384375032349819397837124387988003157772827440212490160069949759449673758191774346823399127714467875897659922414040774382739296788110115858789901588122659331875364787878377142977342883061796285678370397955291311150479946778970570229900350753925939974901909647089529505153604953963594107722881522787569624274938791911714109228253004947348756174803008483325874478164776526856952543958827045258510080940488653479439403519867635282177784026339071214237910140407949784353034156802028821582734720907621997272287123370071586921174017784269413636379429445090343252483544263934188658271111902144996870377598092308109055372491045538775027495454522461127334939960735280141101946428273646035961722940707537711097401626442364818087327251658847871606048970535590089963536219116356110045283137655618059379875424403356917670483936849434517878613406403697611981356593062158941906899692469241335635800900584424888112255282777236169435979762095209570367123899657992691024808734651886791666217193098919968125559211831671458117639953299913618492066287958465012935444144039310539927899865427535335818945905272260149676456260569553366800175716001632036542077444355626737837865570126760177914936193611403310257224226813027322501633901412934535468610354967099828840863088016706942878173190619101748356554420510285630919701476478869299252850786733066948801608825396468896119974462954863450209678308048269375186919508779170260849910730153983595941289565305381908806465194709443118884300342550655244151210128273203634244241859847116999638394774660461127421286491462719506776439879487085366848359312212985216891550158390896802104498942693504117167635382757914331350641096717298746482045849200474880026255018688484881802567408517237471672871548475547203673421185520547804812255470441686455444078345298128355631353982513060973713025933766742077465810588695710532242561355336465232027484032844375207762643253719486060557986774540306852375453693555151586003346726044407360557170466551216547017420341160945573290916989528599913396795286723674718944863990901989460992845060926481686396428329468167615028901144896540337423724882701272627412934598660914961915250291827813362539929663475475880906734300445991225551953588969216074499675699002865782475201265538579517078562627387579755804520668842036283164285664033641760309401729573662153407321085061648368160124195024720936203466392412588079372114199052572642816587249088640324128054312536497166656803190847959935756185670744824186148244732728170408528358838147333720796619152385982391155817453675111874495702900619873131087999237658661708429379116728765909185303464607109769422738461185165961185946747412141118410517273761886453018501613407848081132365198290278672320279363066615362686026372170633281348787713601536243851940016061988099530359772672974083724377180045269489973638390863438702694905267529306572124835506350263850106909121802006102748827432622641509875013192752955105035127984516010277965610216310659774921634153214854320631938176516527898755003702287260798229918112848841507467124675584646173944358199546124752812619959218959738435955838044957352865864168121975568036665686764501774045070174060841281556056208039473646033311260312677901852183756311667220700585734750822341875512516792995878192656779947603714474113369197971735590469692551762969302078563103569764503445770216745170837584475574817981327819270593008083089498976657666316179156988637624850423779545631137665233441632783625795815099793638283767690047719155815875509489916388477293239769735678482405029263367974403345058467922396540050326630991710945389568915666682296584390484766257644361984730837747668929621371358006589867284894365963116233801623968455322845854604601824168311741008658615774339005194766836117265642225197186468788687515977922541674369168809099632629719751060393138039032216153913621163816943408767564647176759976283956389677592083553373571700611400239316070829925808891037617458758853658597578493986845464538614993734630384360391482656340704568401434632684995483883177359423559989585358638700881368704569697109862658311924622362722555274644253628507378723982730108461266179022597978750297104132695698006582234678701070149675127313268125974574155668982147608506015169396487227699865469093781863738331576539803775246539795139145219769835722629047885916079455298741785122849345523685059947738159144317426811907520462097986861381199911734617577828144568316833527716259317614223596895537018498534014148070415547557510316749707220847051836618470908346035297312661808002883482699540341921101346468016241465531271539486879606791798093287305814410045775703766695674375484748944429479849731820686616729691573367188622377750985142854673366441571577355527468369806875034959327072839993801563824149127582081268845323425444752238868081947160047032546296640964186147114424698562530147853970061385285830367337116918466514713704688278878654875279820564671631409344532326292096947500737438205613184325453515958529963503500923876161134549121790067278904760046177330967559293758048861966524412642574691711534841258296493974127803290040233986834506599530402246768124118867254191192234460959830240092733737548685317391072913136248500856367973022459037079076899921722162858645375105307645995085253314821796896784853021551029849110525089484533076144075658573503409826278045692846916876620923598362246566278925412210267893383022684226359930887812216885117159739696742173049617080538853549669605124559197219137502835035792604043735512836434733275045070396489591599125524757017166002604725228611745487832629789504563944986470163871333173828250303740378264174791785930660109024589826836643558765045547904092479151588098189503648274915308506320677690167520597650579776247804401299460220762786218740054888771838969117744018585066723472791426042146712975887623764365760658305018100442417750414662509588680663161217892322655728855091036275687152899821911730859417311285540137139670230224978774326753623612817609331938959085315048783787913605166350281604072224579732606941467687702923142844627344061689755643342828166530471860830312994377514545453777171835608686632177655936271441554011413256264099976374198967305082101788989493958713451549962696504523142806768740652769240420953058269893072235570765363860383390638212371099976020873498064457649466722701159164888401326697890746407125738660606214991700540129037155407377616721129910788684684688402458126885447957896980405113275978163884678380424142608906053239495735867281435136470635126868315586867988626768040626283294613066161383804824999952753796841306483049344511830932853556728315444960513155483102078122293698088680309207681312545305959348371235929706528730331069442066597655814204311165524918972881609413227489404228293725727168468110652977688602822660701470344430826919171707995185106343657416333331338234772370775765192923560586594944158008646052204830710733826317103114431410273203241804369816272796329151944303915182920931904889436593575771647243778010759279583170091727273086544459532897031369848650492525834850569622634709205208017823661740963818994633847801474934707883964528483951455506319277357450289194226461553818270005903575495562444241081988858587196710033623242499531359799459978670591367752653165785242446380234283076223866799365315235487707453224018078266857927851094203050561014790395116293584880304782969584670833588202008326916482425047578828743971206802520009701290548154880624527004110494139130656356280631219986030211317730919824738480130439025402739357148771300104642778812206071718550213149829994988502305504716912338792939683467394764669485311978385821276482536857997306713659701504036246137610900287723117280943924061723073453346914632895444736045096938688609748282878336688361898256570854797852317752320052896349357096946644089094743697837796981662335771617286947527103799683951673818399691621120253939974217474555965193952108802153119101647588629208169650469020346781978525439163072141807193449726792167044746290499670419843939553526634955273363738040061652675535643510115826091652469824826834255153158168227678089609166373931929670902564815936825335294475225321088282970211214372797754520983331308249805719092806451865633607472473844680795057171604517880650348914736483521884221450650218581515561211253107032488414494525125240076250485769400207716423580551395135288192198945902013016378272300061447290176864014750061364864372632276544536422221907927477091334062981402955534333122275814387679197557396598483900867067599583987408087329175521712259783288194384174039538605364372810895026126636121725285571625162880698983587576164763742630990733505369007964877369099967433835700471773422448093316334798931593284308638521407910517157031870268231790770455740765552171557213564432845952613928416307604086976717584454363053699110939814351653091756058778397745893292267749097108592378270902529799661052769408597667932498875166756559527797430605916711486011213854911163922781244416848943231771989158815201496220134461967781703762768672715908001342577640214518037352295831476343926404614708963538180198028407221914908603461793829521851752229876215409362468306716065621654387340944205053134912539422918378136749735466037359829334646120472383854371429210145873400087720921396759762760064025194149202539108668588263569010257546544178154807149450002202022884579701527173215004518319704101375540021360177800722120882616240261937750267235730501388260106422825591113522725189241184184676347557693408552303546702352418095501408754146542686669739449654352097847463322278153383137549267891104612262737889947546162528937748485729351196570731817245408185301688040412204934668593354122815335592797803430382810403772615392679770913575693824311453088101230821392756532527817617114863361367174831392006259595483910551080549971036878274453609709634580048234115555681780978402836187608567682361423148943380444764102737603710641927379618605773639045607014143021159097595440552786748479529160899219677966939923249865797541664778840235031296893409998953702443794911196862653245815913470866232163839966366532835955121542714205074837073615206768829756194721677311909876675016500614608512940535192095969993622860880571675958419039165914666251284096599489189792936909496695567117765975277025575772127072734301890748597630366267757312254962478237386676724068089830153530478532874203127967926082653483702985775252205237431139839032736809156922280002476324099240546193607376422256245565201866527153094592448684343930451568800762131231242906267040607324295747217693534436058176148381283452003691433173786316751537128874396787856723977117054657456523830378033534290758889012550979134346671704204563290269935600612729115834476097674672801375872377863759011651204448892592679247382774311291505410938766466090699296791054352321056586081253425992194421781179244887456577329147687541510211959837945509228121078227622558443049721516285424047755662258538060419088286374038790176822797573348578173228383698674609935137900140772064291323711347148807731233275576379527099555806711421130096264842167066254012370990055279747756447842763719615302934620243358847988638043517226855788978160306232984626223170632400722330214579239447488928014561361483083193870244162742985337328132549883041316620463889255823548239428522021170500834872773190419247270209356362405723219638443551553576540167845009556206893271151498976208583934780511272435409054718690148839992457265288288439275175376949589259926929794541985750264450289690690419988021326205594262709073398834855363127998526610175589446750995966202792564802909242057086270795355813370457807585878639497749422706784438658942906576266487019537504382102785201663788570840842801652438346247982516222268865959490272938746027562538421955841931025989680120206300211671608701681451673766511282867291219728536776521071028496024267171121505321055927039214730430639440007496794352843220668997344584567945266563327262607055000655973279531482594146286782590325363177854455183051707658634571711248115965327889411349989116581595309392475044222968111307434468112171161421878124909758829351149310857304624191519705987382916368422163742013836295403578704216131765960841948345562770664520842978423454518927870560250903402826975541771654175796733751690996405133558376609186431766903402363498610455212343806022335584746560882633890342864472391677274576911552996142026963292242882445840744788674197299557837615032261713563947551406586550587365118080714906434666244507826215685139894366040902862444759158368852872167906377221196619607588026512898177644317922195657117998547891390549947753178020777984097780542050839002027605543744382100771006461029005248138556151091015217815320342929428499933576562907496267556908347936473602343710433454955689037776900467892166266755811540008547924405219745375355972788032066614091920481271786983458572467386356941228183356646941445750049774715055484441575573130379605614202552405743980346694598537977176738633772700497605019176722416718453106595318778690952652512232820720716708639363479884594640984401651339489586097505990212982482119862479224300279113623092329559391541210492688408264085464206458730802878821199700812143642094405727700257514023330915658467295153419490883346700383642943668294349227139524625944246348348967488261345009454447975995038744463768855066124308937714166777076594812210192256612929917010039578736464787026202911274037067302040749424583247756248053048716522821023865419452236856242180430560315476014008436611603008416297934508063328870437049043298913026479845428976747470372704119444985703963210278993709388546112590041788985768820375219540312078321798103797680197669112989947893960317766118284685468780744177252240626255166762485572916193471836115953448228784053807045301855853114452717319278154872466075564435267282430739168774028378751869128668714964403665998883580889605326593242513489828919713123376591136979598606654024296686556944337921437736119213347889465775167542416957114844459381047327402024186959124876625645262240807171810196421059173639391069394798881081699453187523822513353114639519336197083038062053057979830057538727635772827215871635329979187754676852640438987478993292006765382479052147776453051473261174761528049075121699532108919937329342325831284655332413172141774530842735053537357280886906836225643385216721366284956290093521197267773406977836724507183335274747709852843437594045536445579981317607692700388170291672609106036324573549092019696835368348467617123832485588083297729877957359777042929819317260231685471359373184792308356919290399913485950680087604881490487831111876437292924238209365834742584960255730469609324252539282053134389986831790730109165196461468143806134145586631983001992708002565811357398235648474112126744360032366339577895822577455927963291024866641017119561608720734556640042077305125422199641772443194223561565452636278886306558079760723240840279124820071305862940701773274521091658847402706612794012522240167979813746193360288715287185255349277163740679156441259205013640204151529648633784399326767420591755919145089239541342708659914602794095834324265196802106542012056458539672502904390325626813163291195534347952272871635798153614985214928341009645741875851777442938032194823379915218540823481488260788676073334978839618448893825590808683244959260272698241998448479232431204074559536899586877217485283077731576050945436403735134442911556425795821886818961151516636024691274504467021291853541501424057005034892364026105933465898893907337318005247597913140468636047406084548496384908222369577993541766662082380995552489031029640763516614823814522082539683495422311972414533199580046912988723226199609655751886860302458741478836764893920822387986173317020421883706253498038922462532651487402808387949883391959567308487777228905633629730504431115698190121491422954897191610085350813518060041265525556264548377744986598342290974369957451981725626108678269537831054363952380483487435778066637645442685795228539735710356453062992454962962337061604502437143474570634253243210152934044258737384579274549459844533810250094037368043078181357783216838601940527975209475526684726631466656145549111666812537474431927124086798801183445375272991993132556907434318416508234116487147968273015397450413402455918966225864488044018490869352054607201115945172859166744079719819885416492398813545124640073044133787732706614434942525441894792579271882826461977022747420682146387843298244740898719039372120137769379835057899449397642026197476872840582245205971577158367744320835162337187072940440089995821279725610835742083209327634114830722095359656791640206905047724019844333358410144032795652596965905184710676055017026131329189820036364474982615190878108725720547188105828805791688438387208186317772694802915572957383828903039295535447532714757023436768718062245428301854355726797892702517103975452634276434319583049943223612427216053605343491632958000008058024827800785419436503791690880593480936187324946201253587832830573934174838451491068106336954816840173764430518277651090748520562321336429916810084673718212323763005306602654131009632151143341681635956779447617876748355397759738850834714474900911363083909724217699676675101757167325752132903000405993061938251975761028367560262303388418333537860445979463074765330961092981930750541378094333826490393769166708316089377906719097935154575141166728120111041725891140189501313933787440019320989161600202206931383152772794180221678675202090171923857889334585819364262499868344744042439646689058378013017797772657539232632764315618963758021608705396311879017688697389121166541837307957079782864139189600527931952121180676470740044590871185156758234624019541018569387439294044713769986703001199077610690553965706768257341056531640884200604921999020685237816742482929822837130843344555153294751866654587312759683460048698340077376440089069342445420580336955018778664703080027212815579430780921856301728833244999092311119725946844093574689224145427531964690637448267763242625446878046917724765774807737491756051141739519013657566095115895501394304032055630791818037963847128085071554670636269004707696558274272362548920559228540170604156707327891869208052896322854262223719558644923458983156104351850033844253652956173996836083534354229060020774437792763853332197861528374001774423030895868868083268424789411270530248384579509681947427170501591494790470159414835484556219026176228593793539276898505574366220340342602844082900824659115139864118125007475342507894727380604283616457486013209847356379632633684221101587574479618293734039784421107461941160022099932508787919014620790466215786706890799930143932286877419981430668814281967514433803188884844910700296327213190469747894570905392105959762484336860834504177754812446746353102298223595365361479349511586204126399369624850953814534639087183212003818192334606906708451915621488705644696972001480487638218815655780413707714468950154010811915705269933218667157470520554521347373178554676674773365576803913461872253256080427392842359767953988698060203699939556004899151097654514338155188973409762857538008037738380956012839893166872473845039304858573415014593260289373408582788803934725654494439578325280790641551678162664853807838338444488522789293834030617889751684434089373907727197546137930362424091802476026926446073853080960678022133561933442081203500523505438629995220938357409052159881451664181463828413942413305482485707071441853779653697010352119538717435106734681754103381472299774832096883352633617539421246505315517578256551300817631650077048505054972695202594754159466582919228952757657999249860061652823930068906786251236113533078167505019840682609761808567046334049200407383402497487950555599480606229047856100748060318688181722494252425605657325139063229484345083838451208958199342871992943377359368093142906783908423284438346595776227403857923419740912870653274707570331950588987308237285892311660798852493255590348424533199205050212772804695313714543843314021214227128667383138097280739899765846242805740010978812466636846104100164000535995963748988568686955154727331535123524926838747335889988102270395487802859407089352897073979976276787247563807781836210946820243114192340114056077750458384148192125060883781180783451019750773599032235088498113222958605091995603291220788747358565043434166032944701204713335700038867964529917252852055973572302206652787226571369919462664805433214136459128440846497328442179503452354272470729302085456218929100275486110458906264061907867895187436200203869750271815133767291279146323171529819597013572721027385432738543652109308442998431754739883306030017326657272480891232401589634869943316990217019808300973186780989093479504984031967802033189324206454812088843138315284915358284752339486551135782465439947031145937877986707145807168044041135831813997482010131063183846513807470953418106193064130102946041860658997191169426091992815218419797005753320265841470866450953696806729292677439543947305452401501819696285029990885995331519988668772471898234457289203262867687195187291822029777989728981660303530756208422590997421971028324472347457832235156665133290044157998752378066889448029954439121975959279372456361780509000595963096573055780939135005563480381691709153736741318898975459871088896791346728488995640305180168713463225768626580064171802639285347439848431154263305563443088970267884317622769354451967608805666107366041579682391464089000748540999745832383132166724517603222707422042736957808409819345126736405673329581258055224015061949567464425261933937653891462823040286043939557766529285353582496941439605687739910178813308319768957243336792555638004558664867420437556644063934227585989430363143804916041161813507586731938147352925133337216832377916597269724432856470100915773715752657533732489292947905401408882204880334034425795155504847644435715086652597481250464731202877444601537300697861584125514088877916745175705365567116397444949133350922993686231575539724943896022559829156371194898153011549929402081719936876876979094730758552422970515149932134195638437202762906089377092589710503370558768205619509761142962693709329089470543370414647203700364826439567582781158110831218530731194794314609588694555716666524185364721383120546302817039499983569539018543698184574517707018230905860641032133073905555251142905035312763153002355692732136509975094640808198257605879197942359475784126322384399009148642969990979781700623646312738233815958871840663865520741488054029445592280936003603964869699372361809621683257339223577903919463235666035431466463541546476904783447723767121376330681534030669642843139594464517244906469195251676195425097789884084793559460828970231235747405499629410082266925433878422157809497343997108653606643081225662345020852957878126980849925525111778969535346779749353831963520623102816594957856978818498287222773788232375769867626122710364424586804818815931339736345002449822453949274432805249851314681954627861768025454420482718050673247470426646046526602037909458709934153520767567270377166495746867835561489362441106013711728969175779829754815957641713729268579486261011241969141401715368466921800885617279367085679421477102075791688764696925149667925805023707667973215823570279606473688663161072297462385706228161771700066486281867111906162848744150555242507899180954494835453553316265474073787604072256518599100831638048465046855382299983105107253023460437632904038509529591603018044481145727562204656957537431845579028016176813978762907857079788391898816955294752235628110848422577440570069340053383416771794707677455549432928648835570583067559788806598661352503237157564631140845606708013124654935477326864166971628148622243305172433115253034399791432872001033632889573296575991377693132919143497420644262927122579228747946348070801743340842824102829021947777556367755606320633406076681051094017160232407129992560717886704465218834324842826321763734022657549625356235984669434918524613850595983887556143896233776082929813072266720264670335261028257346145619321610394269085454606605804527071454264634176911042345747222724259572711723674670024932959396895670121857456597630015688117701781668150325957858396233842619931523361168357290158360327792676901675296305734848562993581887039205097006411169478951756122970210140942648109215485719382362509597768508914765217980225179679830878155675870739291586273589403425863916254521449322128933752731368228090089308752417075761021720936254467103908558210919077465107948150918711446113287819450003132607016172866453517932416263093574038368054358945932354629438127029142375246255789113640907418989052469542282963734536103304780734829210510654996436273304296956307169248245096603818644116332768312746552059473220212988223134143406224262619263705442285212971054503666559718286786552556375864842993214048567977081848353198834951958662454874265275946468181012362410278700165355849313824992583897401424871197563719308531697073832966949200066098790710496678087688655110411230717769311237279218654009929913818750477975264435507494877360815287240452763583151456707640836402433751604781020249156028157545360966146264905836802249969490736190942204126247541578449279218995744504008407957359193999366610527206269512553533076641683633335325268855009660504077051485692522272831382992866603788294979937592688304075627779320802785805250422139861016244893418804440726424825280197347836053738669944243921897829732819822196932064615486364926543662603303835957773749037117950064581149935870230749481499581422982310186729351547421691861219024319553749797982563043974810330497347061433249338098895211359923007800414377706130243576698006730016810074459240897339262168887908457423397132878711412517274690364507783595858796003456927255656971106963497003921517827767462431536634191543429273185058815454941513081300502668693977389072906016469583856373462587027820961021736013872310317217161048854284065488571145583156144334891288460039358631013110967509337514129362632940799634944685429042530561478666187664794068027462002152027277525672731254907120385230806431026023802306428197997899851636747225525005768340447892821639079080055869496931021333970472747489593690911597974655396195125243513111409468128181503450920497544700130476154057032074033177159941333111653144315171752314941591110742039048178059086306871579791257205162014822421825002235155728101406460629534672148093274419305798129371009983781011340660467412038002582590893336146340772414964963746611116518661788574679611883736129822480688286217056822413290317122556179561566508169972000398618999986236502900392977304438003519764006784712729234016152925264301105444196853879139490131301966427805068928048533752655998890249794428785708408437427197205596564929738447043144486549609792502992649496175082997861541625067136582797618067840053814167258168749330698635342657481948235305821645839953301467392032291700000363930204846381276340217618143517468394958780098197384667170995244790544538753439530248707397271521168175941078579230936266256999297382516951059771357481918993819611728537509942177859392333503721759085299050228389413891306960772729815953026687316580656530674558684073409891213296190037030234142451039216796921353614138709841399831894610691539618207837425050310152097759415132700052284221658753802410580546798026095562341845168494802381400014139975467899737603735750962480882064238897840263631037483227859266680589435652992210335246357196779318667831720025499593852498819623765502936109661320831254606048797763815239535055606315262063728380961807259577439939903411780106983038240803101263445999930940735399882472545348428787507697472321472726611821933023065977541503245466912762951471544865041854168712085845125094060368391712983737581069484951939719747839616241637281905736847518049393657950258127679666702755469127923224962989275504951599069684523102540672684326959590670646946813133252839708682276265021585513047022415930591574715159614640267024467619602445818193056787325648988397480200586492042121148095827535811251376445337024184964300839770616451270955670110094840218322581201948584102081071999465610982795667780414708102978263166626629301194464443221915266682719767899837459320275992225946947359347577484565564003113324089051819457347462647461154691203807083530162564694864880533579080109396935042091129438358549011956583583399782245533570752942612204417913982692548993672612072647410715284480516533530553430272199435382286441925276003050194711106112354321911493351457777362158557657257798402408875263481601046603929233180866783774039316159997214144850515394623007607353565213132739708587728199374912896537677766569366370236978499696758389812250449280949249276096078764547459399293039095671983407317893763922411819991795240458491281439647916826259437259334909633787630296503628557759938771245410170232912371394335321333046639647636208695889386179955005172153839754442272473982871087369601982202989555085039651848256229758976607284644826012237454134730683113092503455381231820877760192168147751900852522907229880106342486124615660125261315602519204407745395522518773806349668320875937571252375830027241078788639362599274326450748190925264493327459356669351610333052932687959896353895444284975767891470357042621788456531220100893574254573436395983884745349707685842862503277673172358209934596922811928470267033003389723762792683951372130988096369535532447185781954958037870094535350488266600567102289071413744041043887296534447780207298280769372857582761784888157632441560175436718082850546848619913972620192426757198663009603545418853926436967200384077649905177838948557432405320319201699708374567167600411603154924977629511505947837835560559422705638157398879007066707580144808430939999627181556810455615628515491513169580938981353086579250412920178470723841796902771987696902084604303588601923374671730099615769971553353145511294173024752346891775775219506991950432040100957597285260285728366829986027801878121027796933374226306706761245110647451581248493033766517550849211666753979209067451861496304362859920706797990489845400458921235935220560703405688991877073189118067113053766508088056541417123249337073249535934319859423951105763736404902559725725803595074423189550662711329155008547076121725138694080539131116410900817928814869084995821484783787428721965532552874281522902289480442879838953596296084787384315178897506809864174614910322013659315033250397099410612476074429379096245617000848217730278810771064448199906081230947999406422836206974548983889522921471417236587705350215112701683867111280331820124933652548247871651974090377553564550098035310318688191702647412737204368099174516553213855477454182548707825900401949122067629610400105617537113932815791680545068148706834388610455261698836358133368316145952346927503221712470303449625279482349741000572186067384509568259707223456126647071231056486512687181637176801519548780503249757279385216751252784387206398446495304683996376392162415469364649579711593392475507209343342082123722620608436747078810194494484264006486726320815603817772719081420918059831772750056936028329021536351748989902786288030341167529518186596806942764718124491015848831122954424755071771216033796967472281953420379670809698743700619725859949699359023173885346296436795711863184104889064792154028359762208291406668027408740948285571048113146998609395345197152438712380593406631571983283120169452016123008575103432929945018674495468040612794589690312436673746604672356424023992054695310317381129303796626305630545409502678457630084437302636361753736933393186851779214199158792801056367303189514198479837057319835336957779209553567556908250774515370946034174320185546883113519702068393479197998770855831872821622334647295340841107913651487503558353254508900698697751749255206663492673173029571667701987598791959841554137971458384636923131609979309442629035510473992352814607618338882169508524997047303753500116804233333902742622360536830148686087365311964654968344132476268927569561485107347779814739044011519612663251575748898761100969491739130655107752720336729889133456982934436108501470930557514780004586519581866905407001923697512673475722624784939694346076995546537481937641400729590135864719931244465328985118624604736569562826795433438787875255009338745691583810686772450447287893975141031922347724305693107038091799457638384572322176746856742535060542134622225051719455487792296728085535175569352312270110226849269144405936720930673536132676210178338407131025614354486855605867183470413656666746835253817853604214415083598423690973186923940245596745649783606204108313422650430002633013995896455039919319254558536191474157327771077569013400193397080623305018556857908476558096905269395517941879179817512240155388685522069438980237076925229067970827228796675184168126745766875724230222900043423583471702343059062866440221159000060591295726463040384981303223966747369136171234219724268360663906331697407774254304749746970328715797207069241523206676517652559840597889410060006269798493703617279160679984987046249405809276643813054080466229721923276955688500991377123856423101024330895502981524290855125635925605869359657570820505848032572488037951083345867295814740568774889219767622845624306125346338634214351516858280484114464113724926138277923500410385536726986490063049586815436726554023947886717422748277480888351645582057994453441823316352248989980472149422231697774467359879406147173967205887904257115639192459431725321770082212522529567998418912568606436935378212661334783069226745986197549612940993496584581089206019728434856277621917921159220349948619545269013935063886734075653263225714767986179049981447962192166687199331574485990148590482804966814202981831810333076223183881646165671713671018529747261800967298076438165228695247195309032420436385140848942285324194099843903272095771353984456312107587391872319833969455869474556440775936273208799152231877196456601839281475816974982018653229369494327969990162976054026171830237277616847194471044355759884036512985198040217628201501351994470441069878843097597226365716023160268759132326672392868343224518756104187020177273827859329431705164927343298650638853836908428315948775073898755870727927954836222672468780573590118335541252140894317652492119764916774853512074043452003275593886921264981357224077691833756827650286225010566815326659170638458330601472026604533899758567020442462827122304326265222189130866102417904564751109868492523227835622511072901757482481123824585602031404032629572896914636996978432434279025960900691165391510246472221468944078372681597019915567796148887147549673195902906703180673434287011350041547652496505048328417219514458952520679818737518913478306605517015404398139301414516668481482475186655955919470271516085067089840971791776171545430827190248429166352930598837662908692407575829037619650109440726370007406134286432698396255217573992526235121236592506577906874359804947534055773645450747600525315202510871475056178932195294640805381007111721152567485982738378805737914244059985765322586295888961665950931481299822504119840383577738044905397298365099885637660016124089891169808540935402638182446638063381791226438197594527488501652732764498708405505107053153284867379427301851008923259797253252198750908343492224872210537058791871240331812320511928117124664728915515008885222491444899763869548606204530286610777616652829106385374564745880341936544574824299224746800857713220667621660753522236573845807403776380593551365994059944460605220301692796496352110985776347521741041455155215274982372744385396278046481361187540573081224359252169105229746581305524937944744124084561711274639893790851944778392154707766349578065520524607698269197764088329893910161594309807865795615778147366524136413391702564416490503113282359360231194409271430996017828282697730258676513629214281698905501040774607858662612029968335533808230903450726069593531411399205397278843649170392680509241459178661730932961663899190084682705620366533344645801188344431188424935001182027355432049096944850771636024941335336566309890744458490549680152993418700345783924591899824273536296684449320164102687270865188399020786152141362073690271895737540797340961724139143943831058722422156727265584515913660154306563113038053130225756037228821422040651072135664263352970576758429535357679217426140118695445996491086277912876018952882085756995096590534956010423522614018384049683918769702710827376136943011725595323844136040418994948806127052013373716773720380751699043942219172161677584960474926158254422124387656601448526770063582216399181390046903593984345622451379760554363524633734910592191580533360366763865710505769033528868835518367458703919965028910621549859484592184778414560631191914160912426488365296622389134582114514979447096796227603220077498770368494125302055895145190736794093037358791682365407329315323327822644468533584970841343805909659026606175940115093250469565254512404595466551773151201493940442892350565188681392549491135872351846835589065766469041954234791039488041885637876870067229204055919775382773739134993565195911438490885874878429176825143598414485324329073403740556729839226559756045925395046162298122889497814068417188627238282369634214208902652857421090927096840359127845026941101990531683295210995166449903615974037277255287787561255921051761310477990041485712564186007573378710322098352467513605243030970649174862910067641895664439526734895844035085673164853853358434069394545299321975193284899875965787624373092845654288630365427441888174544421584382834920263335347409847416950142217169338678537038690375009583845344561809715522883097291982091873485931410705186307501681712727718152651570121549079659635609002240383885476398348949915847283738617230524759867246068109845741314841555479499437234419799764283726197085271849912643907904973384497287249626426208322970473439161832607253614295019160782721917942535791819598502526217108687829089752572315482918793790648896399525485867875873328196890049923750912415303578209362810654380536370501826368546764856388888196569080154082467044796531924228756030734696682338723804580687618673909743560271027019255845922506939544835658759125103504036549002354267779786854208592789948701367510206107826951707105643508704679098534726761992400449121118308085285489023245908947108063958735028429140003740389771781321785962552116761605252147052502693608315288470711385262212670413587788642349885916630173719972315418948826635980158541555008456887833261026722866277088218020338401922038830691168940179286398644610011394220300382939434145983615180362797712087376303492910280905675768243092916669459042037530877145693461756108082889545633995035226098261672686646057651142551050105066984278797741499066650137078822733454178502921234996773252311960210361176888843015111817610501756783512972773536486249677245310960857248743385544771200795307176181409835887566070438898880937022951394210034161144045744027892305367625648304788325828289166688504814267191418367689342995722987149741867490088450025374433896485081931138555166831380161200665162694172714739988716910022912991791803026321764426902940770863353650975219118714420121815212211519556458543591196741214663277062522078296636012692178050784930638476533054982950996646658021725556053668772555675930996693404875879629656299216420986111397344759263705481563374165293375374259638879181173317609064694700445592506565748412409070118482778429814836266532550928546142537085239977558947556993506462754331890608090176143452130626327119926269314253674315618507626052575267958267675396567569378357510164861048749682293264736945431113829468512991399651886491464712734986116142013250877993861141325861681308152072262973355743103774162566558180436798096719203823046098519345066266544567411164559723068948079643932176085359240985010148175260172398308164115040054979912959515263697368311294114167031404916577935488222858279690734278477777799775575164516442425981347204646318211518526930544644118274430393242323059631278298884964554180357768723586106197600307342748716902751636789219014458225517787842565648719111873893802961064780392241341857762059258559485284605694162181099255697023602324324799633496417116943238110745102385866227525570060475374247992112608976362436068433283283487196273486546121957090801885634807996873215736976163917456869257472649814802067240602749125078618786719304610621746771099484830379672791096681781238686127713489844314234517641033308478387308342089829109286734822555684769982685901458135915558829578081274935825050761174152731379262184597482456390794868527439296669226321672576379629836288889800220790583145473282851775989029758050468743775607930434049856691117340503919083493071573464885500970274554728876918504980970732979976313248810848407235987409070522260077643925029627398753501888696631641013737926921749026103139365207390427949673202916504365985857991739088191764925248358692330841811665489968021151449650251914066820808244386629346798738446629725397659719988584148614891969401758545917905860253145900213485677222584726624607787143771232070087323915943549183175301264757428379631280828657395367718103810650495587729598786481833120435319563467968489762332461274558283223369643930459769383177482300154499086100275787275920535036774556134251516972963253039933819734418996600499286470386449114252996054729394207494278496250074070613405013576372120258809892838530436034949518340847868602840788976490461452358867533934189885456982960156612577386739612928706975918029366040959908095828296792351027231466810093302577091980131653941661394584329757283799836909048728142866906908145647137595464683182473413696372707960572223780180012351331794986748829501681661309115867304274731754203412013603019508396320409302580635542008194570842671251915423914053247104607584224741304337956851212379753928457640592776565531353441885039000854698386831490188916852630959982905300407867393216122574417925678318457440608679607366799753030730168857582603587943541776807651956362423862495543555928538050231958272037439159023741758273808625207811937088051779785185705120949704495082483247222217554686955442656072792414589204392251504824549245391271765414173941968647022609548252194564350906447251217606905686128788447759638113159151985058367426610739093297213058794590677694390900409965685119856300335655478387411113048849285435985263790135535653528286643620842024432146785986377091502349591438455103599797485215036480353415855917769603530939675360513358606010298377963666621456539879490073746274237628855343837485057540630626683315157712867366457615676822174496631210570042809377592005349309495085189217669858749298229871234839017844872455338031040298233209602636186632770277923386495998105050734033026917157380082317051728646545798373927954628392997371527994010218021309907231873162853340797729512702873032317638653955268314768419063634536236829677810818929641506303606661500889679128739369706468313866174557500942930589160305510869839850927040340330126043240838403283714814745505217969101472756932029476777400691645625563107689599489493832742432036935649212488696935589061278374845088015727997039102826596386413816676726199079419660144666107450484174504968974857782545749156670064753468949439937813768772585220504483870825354249125557866062468450771674056131629454902441829786405720644812583944549494090185516002717104463096248697932961904620721905934811066063837160060120600587477092213830903076479992563549457954252416943145041820711435635055586465574974896797826945270837691705205997690853647480566682909844618932811688329696021251476199352776505305970522044165914194757363704498655888175709580446642132783715417360935050461099986702314456390983132746338637110880914714120110977632644602936748128648016073029269538051928631318703424833406941198586563702623664604161644695403903976808940106820706414479491854414662280530115258105023491359132500663111661640615296420273900593876406227034267671741461623658829063032516133516959407084500334912166136821869543112076057608014429011523830451073083610237380634650091352198778881226171336523363349231978496252809564222122925293999969404435964331622057398859384085026764132468928053771800085045009869948574209870147289760747917867802624662160696586512162039769524717741475129720901663451726189272780896009334904978670114392604234724778561891778398901087942500800668767098308556636775189100047298312454960083141280155975754988856298393281987442756425863510484279111497287611758525722272880132200306818843367260923185104058538028310381108330518868965082039240446581268790881499241272129859352297231508861611523313192672176558758175463731809854420421104530887594688929907364076907370521561279135414954635186823086202692431514905133097291429089133465036800263989497558388368439071411985940561883534371152131339375010053413072358112016370191387010279507579919592084825567631933859360912241380308742298625465897485936825498657385478773104088927066311249679088623800260951532316798713020961140283742822260971734497998731574104914867354047863200823777802890971945843740973418774491964604833960831094506050437266759145135550736609224892873795724556475730553187532402418032173476078919667163046077572016032733415110617291573232683301274236281116462332264615508749389972551563782952710875754075070169400868115898288035218632227176661330020379542004102581025415779328048291396355152265384350040037320934940294284785141525167791306220246759729037688920419675246310062929421824157065770745949153843985209398268375031238595609800766747040797764264743648066113087019326679346388446020420767181313714786389792306803443046556717008944074959634901107518099348555028063140720469226322138860485684363196705859139773133086388502071426441868539023353140510148723733631719848815333061615705524740360882012032352201809915738006751408343111657001250160719435323373317867866133640330501563508811306698856441845248493830081361230735375989100661572173164330212567117569549636516308842531998081057260007426624715088608883795862399777729507643478814516246408328486019760675106980177090908829643356685004026587720627712540303273866149719169146751788466984427552730694402778918714933463313930679767010751203353111450373902865100968930461417891989108367266282072044151299489260196486087161144048007704737421944789598790695089880439754769794638364862945810749645833939331158785576567824071767720417001977288946763982392284297875026219034446420724390039950107008092605235074438533560791580297218727077259546113081450886820963795940704411601615990502627101827260806876595804433002068437649162211977352083499123176623180745124136504688409626427374446284187822343186953987209987753906356010486313468945495281630141513342291438351192438525978419043398762073207422795467782413496729650991479380008587118115934665163598462538500691471650212430174154711418955825305699177748818743992563735429677544544129235066131777425336811279659735692057144776114324198731495722012383213827757450667285535147507307851049808435994054402681251915120622359794620278494526729686959151604519443798553880230851413793838709968870502757251241997348745224192568984740952199087630803392100786064778140088146209203923114477913851861917834307478885008766838748658667149246744293188836611014574787363138957171979849966166725724412810094675210356588620299009908382876364547526040782743397846953282982394182990335492681951411226605539238405230511270963809690683683634859871730030633464039374052987305061857406252860309071506062241725327774718108310561416296855139461303252815459071572391455353329162716825726898442715683318516347665724197293222501172681237381077222345915742508682394754366900734434741935251979727015476993370719770023456912178009541139196564589933473663829352063954614071609563627740120201039009738926814816722931395462873757671078805383416253654843926591150707060594454117196304040539386017856937964431236981586216934166468408946952987908264435316903238791407026508902856456178656553478893146594834134274854188893565006150893520087040840527330337762527463958717189556924247680595415442507206666867935935829459026827394038830704250774303452904090460819132879566246691204728144179302839806618754333672485459539185407142274361247733633025150375512033373117795585864068435844999125651422164582216450233321345692704983432854775313333505437250057973424960258806746234717028212877571906429196733892608086235622766842574442104349184620985630729377638853585726928692565866955944110088406825095880180920303921274431205622127171310131954426778223835463443766337513691213086215654323817640740817114236705879896093943133079345633732755531093877703052728515531977192962329277990416232471788498335550051590324614982388459998290472095245674929111727566413972846695314698534861818763041426229354746886355384956791064145937244938971943584156917333626479179828885577167472358715834062432788251188072397623044663264825221348581568291970217740237556844606141735421165028297111114010895644766930780828369333007258697021008110676800486687718237977975372920268569681599258895346425492197122592488298381979777524123633354464076917512965103123755206922832784112588223164135012034631982510234638130935089339736658698654290334774611385649865551741101882876092981395542534497971572701270412563415790126098775697938025235106057523700004495013750773099828921140993153916958064782958016485638195471697954569237363510741897455914271605916220757381764365198313938611602280975952783261472901668425948266234932179353594529858552126919087409951812034293951584577652368688779659167072746485569318961074033943916835124660669355942399273584297376395550968849700620845427492670585719099857040534677981801612640340331771900125683821460256012349334615511075635231010699367990932988180732104017880046534387332675748198676276635541817608881961261350768278539234833257496169378709383512996582581992751433232686356924315909108373551809478754475874422464948995335174494333688044242804095152348503240894291989767987722259623469753675881295020107461972100686181006006800921737897720762994178060049240680905877868023811250269210628745171147491080267644247803619105118243924319022841910414630799478869163643265779427398310792202546387822842606240679508608810135191316146196619965686238195100250376095792499561274408753247584874184119922160218404263496573619387572027244936314970980363162505506393685823456681382277677127521787415333165699285065614216188612332740800789260607976539004825228420524875155328230608074307845277483434879310018429022750833081016728971391493097247874847856525630570981945422017856137397936973054554622630317440058211568516003925534176772065905125300460740409043917020889878422864244860532043575920473962131876944842498830381987968980408840761185367453112174882246595339924862597107181641994554692671256161793293370515407239806998212686880415257312282298620456732229090809971399959055614561360806291764716512622145032494949179634739471444632683914093380012579816066680313323947129881451717974725981504942934237343183340298292284353213756980996264656935783237617717874465611455788056783062514365725325553243021799307236119228198309771271988517273797757212030012010064819213645240069999815463614649662970939537309494957621129094022473968477835569699014251776553954231551123898770754866754786171809111621883054506692431072407574774299243126541916962353722326520893003592463387935631498977580451016520316028862650106013741035829841433799294330130069305057010146568617747563239377047142071211504303654850258908970063913973489022295100804290466041758328897308016906778033342673394432044917464820902371762397283995020086699572463498040420055187489862862497563976676330800834769435812820082534715060618375856487542426594506064326395153679609823283328890559165808133995507502975540359100995921847372227323750165026793899658129686154645581252318114826914696256088979569245015852001016630825401059789904861654230827534251279543299029503632214828319335709460736964019091911428707161503296040535826298449867859504284435023528155893730986394324945828466760325024153106599492616799336934007612034294929952613784023280922181641559010258917037177717638643172240387179960088081809820443722419416412469252285190891424662552018032234539499780320427074188303400240230156925098720815430508792824979934705143430054981862957716017922266468352764208173401590335668498587571415785156245151135438096560977430858847133946372529741217186484876081233547287713132317326005105331303051739713742979418329305354251924028308607340023990105195108818221918654325529108996744448214378368828482970533827700226563843104225501011226817801133937135554741877070201174744988729940043634956891528928118563708592368237634013072045592345971442269176951922356409177940133657622791677699425638750696197676205799521305150323384400810357125615238057227206052882990162276830989747988042522573070948993818057197431646274300548512790673606763587712620640622054572445195137476936901553934744890732106956591445081717895062846403399096664964405573253038716377035170068810452524244181740800819452508114860290133821947090405184232648538120724587442327393958599551303303631176527353654805734241736931196969195990648236122027008373858230116438085863710215386252049927035997123619049841060766424043738121862558870413021667119130519747871102651678728314356669884186633684658512242827569997281995572811735854763344972018239803925059291423872769675001125471461965717145970106411246654504710640373801274650649947977853453837207243913373313510652846254949018289201943132586468039549417071364959573714624692176810795661564396809769486902188332402745830530730743226972893323624398402260833329541795421220405091979723501145899332052475491909954177184216486411183553514805093944140692933968495948141179955235216392536274290003032522161801628227140817745865987005347611094443059442604543745785864106730404219725749753993674982762067384602713130115917332959863159177397423630310430953112242182230769004919161975761262804913916906624034194824733932586225615349381092700154060247514741811881198923091259718431025719844663054660755215891482593341751610022156591367459768067521284285463892589768984234720032774424412019283509642796697770531783925775338229672860479542100956176137877109437458379730408679910113541741755541611212768618408819749336840286270234378796273526323058362014146924787594696521610121014033255636250495407877477848390328631330603585782622868846761611891630338357423229484894512368880467665429869303222745345560722379715097010071653012406936146693809846106492822532826262025335842647748255582135953983340377823176204367394306248773563390126483530219417866540646888105088661525921873554932672016921188557455259361614626980990355963460116548606591738930535404658161720519672187026399486144822804148401566039509739449734291427265813797387092392976693669570303784866507021093404215523528535875106910956191759622315115304701647982559353023855015900840524926467259714825671951145457754643025022102781000423775928475485512050937966181404848288774809443373606731986734675242561362727968338623921043957821093599212657559350080525963225996897358435261651592832252251282361330303558811372923574828897143036107494783035921955271938911953700895029429226945907372195954244730652812014965901152982817233743970813425042574247336172843391534549903726517009046159203112632800260204675320071887171138008197965751322860201198165205117613894821055102519201847620035623687827898235159241829297019366311052530044507412229478513235445153566094394974590242712977400974677219045316099624999860583673887034659979511695843142605160226644994281869250436335072366262868309368409634356351519947580133579500298055318264733127728156787567705753299887703645761719732900974479419951884724947589118542444297892859507063286359792572823966934572542816998849936713625268272929919758145049045584987980617118957101376861923046936678947140624782060082787108234066447345119421315566069058876284026278961435441198158797990331342109424494936977956608039196468360006954909227445354774717284626966267472288086266371011805554257083803836478395884517935153660001874364341374013197714882373454685327964839758064998591790872915376405585975095166461876178299385485641279559309231593627486109824784824150313426463774910429966959119733228949566295159185223188648291193273300403218677644320354481328125927725494431448069822410464505917140622822195513422053947377201177764920804329504484066044942599033429245377298741042559676503938162024140278444114936786735570821197342560737172116367346055925852542885937067076047356727322269938122273204907263148748107729987370412591690925946778447610804196887952332800054121532073844546488493734366913422377363968855424961801078981100861188953974274884009847599641889399089019496541755881381519464859881783693813693999133918191965468151110145124707195440682426644020211177830432542454547161739425454923976903287594075347731545015540409444481507129962236762419199489306075706481125076106721752068002095358034943705191486096524660443901948462710362700367736100350564355945507562366655545277848416683262884498523815395562185996482350197988288853290794348967204547477956364639461674837327163942847672077811504555274001280378912811840363143736357317166904412037466191923403630311130748688400831104214298684829340027557447337228599839589820866227495911540667444496625496219673298855255411695895307339323068035764644168335575412220523630873513302019485912993006620419313088748598194215965653679168471981885054847488630215772737812899043308361150967636348977779803280196528929506263629062909602913149575893133206774437294173747742294566506122042541531417721639077927945303437230108199963265603514401021372275337193922285644822007056364202762284143114796477774916287054445550709616958966804363806349793969956184403476851082283326703581090475445510653730115483793297834381342086075153805283706191930190962339159889755528950470102588027837852603494584482936905168884249976976378209769967759794290633510123871422029330937545901708461754825060435913960798792275988178669666805762380055919342470730576778827177717678809134797949036379525066014623056618281348050664385486459674946081153318389513465434751132155674249118998662618413803190767721983169109841178638553040948129655250348611003810967862381443075417295419415731875309596318028539937580379797279573210337092856788277916209163559027230085147940674818578290647285451863813115600536659479802237939689203370737616871254949650126463609190535559787637160343678555304967380792005438845934388568422940086491352671679391363433949414965054465095350520970421501545621282963323434135370996508786643598099511181123904188745061615230976798297380660090486994792662783244795488340522139866175440575026455576109871155228413962061867631530002440985898991265032468283810625964179512572662859695465738191440507675234313833131981579326005006219960173509292304647403654241894378858369665387053949822614118214805827016292665038797818214734829563487704884208361700472727807175668232144650584326579684360997328891148428795421626396769065702959264884244883589205623655711003725523527348543292303894708302208952279713469943291271771877598358942770432361576659508561866965021142526796289030804406510842941749620320788587917035312231159055070669569110913029341867781145812389124082367762882111178380916201554093169161399217032527650971002256486348861274722873541159798642835934965769551815693145196427982182733162006604396735387842270282589103320796558227228426533470682400391783786914680516353131083234829374874348996864755829232222276395704437750451256682211976884229029810767482380131835706365887914688518817607354434839186597060364084820696031731759420032860084816646915269401152603816033753470838122453337870400769028784367103608700037535859229505753841351057568744202151202180489949218023156762716136389560368049034123055093035921084637893569553905157757189235069339278895163538765200824925033259526299941293676508346817304122560896038696591241802342320611986145482255257445108772063295168126036587890135807224842072636595922478020864697257456261532428921622273124980260497001801107110731471134481521380534422731753258585514496058107293426540431626682894767121215882793414392502763386368324347900630008163236271753313024538029397384683378990621300288622797824741945885914221290464865015509711510363432474127739673210198243520556330375485754713457986546201238533963967241467916417856565981629336496539457525121572087336036892253398408238154391055089894739843550277765348982695082148000982776712118621458391214536061777235319763076297350232956116007445972366453016570711386825871652767532131094443613938935333521351644472084093714049215700337986014461922148941590813148622069787867930753179896396124621892626935296291816588302478182466188646789288110876174948043757371635713080423444412807158309453379524193707214751596684213290467595061242768327318695230296104826847562182751544222600727655606400588629602183928813393520935425157800624117724314249963153852751990726697940913737598723628122264819467336472175066271198049358592478386898855096671664178065352844821249683377557163613970291729924487689056230597256716455750671598322594440898817934408454265456543230792623113802328897561825877654014252200450081137444161786287105753381550109856655014497570745198129299723022254250511030626002652357196213975247686796021942687861280401441794343934010169528836224266040374276545244419260750615844488256775350072873050614121519682069178051206578422193429485307494432515181715660620671671242113757425914490383739789684179765230920039784017418470081902059058317920037303469957852668739281565815130092373365288681347956810203381942206970722524462765533363033816618378056257040597380754621028858206957358078514910230807816281224695765320380083645189744870409221780298623198564671493065029345557737907485708990710925831104985804100458403625478400710424702665865674532255350924348766563460337785262983096834134325340616624113551044843378989208742050705430369133980823850386092832929304584332193405091355303455629972728927049871654497806245881564911954131383624815518494698286882553999063459054946980261581626370628187346002745270008368282372835143670037038297573889344969635349964476342202381991905891501510786126970621663314719182212699567535788872992012706033526591587703424162251291282536154235588441362779798526297505870605756998337950661138944685573726985989047986399117485637098999662103573963687138420472553221243874335349269631111401596603293213325480019342988867602577269905627851714852092431535842717474180827421418477736867486236627021367068950511556378457767983267792705251079887513462200568907954297239027199950525860762058559559616645257775853235549956483658043810160589750425913774862602819182783634284185281229359431766923943224584866986883517605111399290587717800737535348758813848878730769716796473166932246631472992000034489728042633257335322587992155577659806951509150141539296945647896512002504717318877721598317908782111261227155781665683460277488898976546166330631142879658409728518886965994752306208078020078536797535411239012996683238416164584111810434390893703269214063078622918453612274928673811753398752687986045219190071992764508134474589977331652572570959024274089644538914993107472188961497425757507508359475883241166123580231334421424557685093165642405613530097123620800027326518399069343109737159662630914097150318693189586952065202604510633168182155859656130836493217533751683362837965226512518105292931615745635907175565077195752793131805300199134335862353349816231252321272138729565822436236686421549664874950301893226858117681302512750221135850246905075990508080901572858026013469260863802616641639015512449445579986455071387462423313759632131701740504310533690607030703774221015984026043251667285992448782997573954551912043308431733337623749862619199840494472471254391356428887105350099016248017275890388750613354271576313654808468507723967447344248338022150582279780351609876618669228161112826503663587719003948903055682484382286928171605835432293647658510661986473280161470978182269572648551791876325840870893653889388791072977473848755435036957839137288049786050851610756224706942257938574642658911465002979431194175207109090276786225987616257148145744038368824009203465250302283311162091491725190715463891892327248276621297803818056683095825169192175220181686570439258560167164414566764882487831210700075236724105139265938859154857328913550314431276285992458898407671914552747705929156941071968903478963316087421719634593531313166196563027252923453843600294920949986148192017930952636431279824733905073733454088516254926913327584305264713073465802907845026307870945349314013963693694102608738421518053319595560471573800466931010152888455254707823907192815448281985862735527334400506247284809161082813567804912117385701623044890219502468843589312189124065810491823225356512915358384736936495084725465256537831647092033446399927285575364210631467434978449203893861085236810727291531368914108658922042539004674542727124999543305872045230111489218380937624707344689286181991626189424799359105317039946191156035913907000907698555409503993016165123965509841770964067875836784225435678260638690579336845058191956392639815907295739750923898169284117701854553321460657730778925938284819803451161183630732039811030998554789176079137174727150054570874285699240715461388716885284984111840690226585997003315955091412068754106429387247870828949540081227957881680340820175207870917937452273811230890300370511850344757282701237002677669412055142918999856782011976362353890929367181586282372785875421397295382255822207579794159754174026930704270547776291919268881561741407583378884015051332959104988560020742350793876559388163276422992244132549132930876986700442972491352363845838270840236272472632176222977915302179584340406839293988568972656357553778877955574989476694533268154889746637476670856752087945102082110732294598752595372668395694096174861353887313695184633237626406353387577701799562338310555619050829115131815679531474395494536517025842035215003724271672004396006580391194533776812300659686128340928909158870697059139461228302205767531039922629664037446631202218172952193645191406418499591310354931803781741662280910510909874269160478850204939338565430794942900096288859569383586159250515123290145678925113582556033083323792896863314674545301711073174784072734016196984596433039758639150131984613464030782442027054669617446438923651787454055610136552755839011435365891180273552188573051871303636285274962743903330539730134021487432235624143107544606791114472944074595512359813986585773537447597410403827629207389537073162941822939350355166936248696112621063452398117638938035464081359558338977172341387195413847587637644621732977064513453385589069168589598708251420370866083289530093774282555985903040940040764908787484539355617882810700504584307457648944507924561278950490160607198216474405942401703473483754223168183285639048147107920851825453238417371555170111692995990943041984322687650229463800441816420503655131334745207573011775836258737296043718086298162404629409025016739237891416486788102186310965147002271096663908360507658531114035138405332927649151592543098631857152596222936781729199489960052722249928500160006714693962478048361478225820133537059146307685861623875486807262998123560928228733857134481741415160130198130720083152523065195376808130114678188769767790969514451043687071401516268496982064252964173028830198306604993889018809140036393753121151440286876374838671418927807904691478765907249523208633528185504853688064276167386365996787832338240877274199836065211776274179682016374071221603363959743002033376039328810574093869775408063381898773033545762904168273267047012926649616212626187558448269213876561266741670989245824584698643527882955309379779558067035990323381800852350143666276378090284061466222634262044532416766718418392266963001863598765103792408734367803237202106743840627557103398883666982978333283559421731776544547183394026249014407777178067441772314111075383251155334908410112887202118221348031886056691554961223583466277468910906104307644151694330785085293003509007467424879936376902615191694940322751841760261028168330269877915467918865465762623294129370883298807801555481316001471782502191842930414154672731131000640565268224714682333258070903761768809446913812190314890199503602444409521088020421812865364374107928081862509266245485706108931339677029885728864667965765764164466342835468436735128067258585862863843544845539338185394701930438302586412194259410172368475168056583536128711188468463214260584922699214510525737287923717583336093156073073960169876488768786816586583695025952582736061946525481704329983962869835690920117097117060021906007534313470806643046942349965389003489638882610112116452983833905776945161424816763050285384779110686201427240864354179866932893461707735424279621950234607512403150774126774589261599780347458044626349429167097234953885330890560185267217458706078725981798824042303740360952365758746529332513558013096205566965066351471548607725081278029645081629947591708281059690451532251790500402342843602228742271867445354789426695199187004711034069456786546976182830161160765475943873805207178895568960304770043265668215358157091980298913722886277041729312058347357309063614928480121884697578792483903020206509377613208889642197655646868314485424716880162157687519292247570126454392866829399509945033410654800271310633391887062778989167894214685492815468904822447585037437138308934071900534654526663513629560737527808073644006006466381451995780214658557202124990995500511289218908326838624869276027908330622624670003281698391133838059070754027575879407914516976600579590801618366830587550206106673084076787927952746203481882396455130652369964522669102883549559701852458578449727065408530033072413044953219483573832893746665415435561455875374461275881046412199006730804883835247096596433558256423293906363078051969417397481012409665637946507409310265877055833955352948233756451819002244185034839138634764409297640728150235371687550327088269466119413744499664543802992109401417823856322516405952657736681462155853914788240646200328910648981586565543579742381279117992110892611228976284905955629607306920877780243662347631211627281273988937224404701128283050041685103245314507161680694569159663191987248108024680013302278670508322094584246201950379749898145661157770575004734347466319098758022896739817168216888268539860326504419999029298268877761479379477807176143846768087054020007766546220938623476119909602749347896077892746284767655669441212867354200597693719483578739370860376264261499051172986918229782476413193262362022038695749397768825837234062617893467629371272782113080903865572072298175710310600143294596405143261795017823779586458565750792648556069223619415700901086694069817603141112925276026324540882045944724564193522428424865322139071461104233203909836854345026578031494482446633649180038107885889669887846303943968196386929534750109627089275593942993233470410507551364925930683894535333943070192610072728111261734149209688712311006821757586410323166486133622029698273730677841159129923337350759420233384550121453461832173483417781955395525945414957355649118161789756829419579294110771472544220733142401494152519091894439051773859723812138916908103126436251852836373530710726869258292353243799540871654924918822077635767793976557830199106997160997832709429323133539652587631875225713894358459180386764932107998820263478444536030514332916972792093977621314685208731408048533474052939560364480275311343866349441789809590399177102869278348880522410074653332784570319557522810053468710011165861458815146133947504636353347264248388627191686513258634277290761170301054594458655599224852149522967750204526201680849976209452901638096732343305231371963568133913829924832909812765976911094774760317018911171160616613413899929226336125933825655918308463315865034275632020681537375703244206314411415802050898657334603776085029877652920546255148233365908858163100975996941936836076615689479393660630637786127107785121475284408431473612592999504155136661586028114964473727986838363164264369350398768862663192753748529290211916651684940785702707391097806587968054356722326954935974414153448377394668959557740441954967890781903049747923892880484007627320890120783450681116040069904825292374486743867507154408578999421307524237810398244941319210416571532027346094595748177906634414473528461566831704094214245819605684804335364698150492471174603777665558204200161073890069770477949932284723236973398002261806325418359863712044040302308722354944903301162465531704843612420941807497746043797270995065299261271312009791822084016218218053966817082944196276605321919517219091133983180108740756050420884641010602290106734462544931839850224388121775418190977600792854457552292786693258579497847993400876981899409589620619317086920180522139346718163506219086770824418977962852014277540402458097657087588056330739798512821901485065732182746407530107702232541682238863810905632955723638162382465462236764309833310080628358179931354658042369762010363713408135620109279670878317151992549539362598708654777925659920735385121073068911782857009654343766861352475741657688767254153434387456008546041943356507274153619734302676790557739510075062040164427463331759929211594252458865963880487642623802382495180912499612454053947374029800939171433278323984516510230700689417556490763430629130143379238774748769867569884388187834003773719842795884067659858755703643059793445879147415532749566219280420686099238543307038733709968212153979573385233822871884444426420190879328684546239769349501171117688439432873027010139135766221901566078316927726185354750950432542867217022958530283135298305470246857692131050465400443714423438869786830726457954325580980040579958953702568981521902652368426317952821156673346565247620194109737174071210451968376157297318554933817445387728869514747676181377399296416552627868594523082630052276868832385221222545936044508031576599695998484204395724818593630018761560287295324771841869563515774590545573039924524392615777303261791042517473767414538924753256565124327723771803361030317988837202360913499040337634852659587534824854347855315860310620322492070681939109089626197285091057224236208602592529348986971612292392501954770739707822264060089644818954478948667787556224978245471826288080829942911694990645507268365585850385894215100703213034711839874360725647732245573968883173891803467954050152553957179241511848951621801488155769285848480948486401989425576742383460231498042288870991868096080454576854312799996891784765813877061927691541099467017477708120387200449756413536043961526596834829819532097797649300469125755312681595044499519238364061303177483795918748476952686320463457179548361983746628899528648231454535095327573235257107495761877587681227621913420995749352334315229264630975622925633874202544528741447719573188848411587365178576265070903395527215241737178314377609230387357587380776365598543476205878031402834397793811416759155206431314689867283740941545078618943561079821302314599356492143230538222953110719951258421247169668490523493411738932254246988349566942810331425614242331295813845271778499849752808736088266538920570562677866795290081220927021470068566014384991176404190166764471664720646182266200418632689156414474706169706309407555015922785283369711175848570647836205502760741551260301276542095278340387071115615131781048365839837685439470865934147282931393942535839859850242042208662281498037606774350412193120515629621634996297718976317386046510851341840729022129213892549949111872468641803778630220392315444944064695545581344637464809054524266057638861605831656807141419388107325695578897087631599500947293935940152778577566657188453817269470091816546979583536170848285280811078962033400059137251896415586391235617645752288737159893513402178071733244206545590192894064782474067021652065930860403856425159807372068271742470685193764121453403843451892219523344548617719922344009539148785738648456541297301046786816734887496370591455153848409030467476808518517419460209534839410074743782258387183927954495507136504717451398428115862754174515781912376662892034916442504369609682134259048336149350433764548249752803831985229217111656417600932848147367533711777504257212998179456803403328770004965295600015365678569982958250111351580566487822947628811413283167333194586943707303307712067756980197188123143341093417295661257846523944407922760465850965127207995933195029751710050279020523959244853164304090534028094919341726179167529206764610444779043037108308706761887025770168612920550696677152847144672337569777322191690331058328759191600061151555280550460125941278109628517402587425424374669658706465792587512981427866547995134299528297855449109189889618022461668079235695130255583970614406656567887326637560789881674362077784536529014197636182975435352550676309813807117632579989461056190254868876906974485839485715486900687826669818394964599104692841240150951359329154905420353211844110643838701783777082187209542786852754122322167046892881773219454766295378329982737309031474087113388415227046596306343272335648755959249268573711240639415692336096332220569837372867106497537690827338138380455820712586122875126658269086328501851167888572113947800564921141847379892980830565800736939948976344856272635013085304731327672245452770693156652480738367906483204740207050428379571854516992314909087753841354315233329428708513681171832246601168920655689927256549981088963049146509985339010671756106573851071044710188831031823630681928715398243043170743634525893902712944925033290865502159488112470405170069994244532865829225416410028034992004872326991575193894627817118825767595244259341812240246063913602776668417887758952699974764249230937567293302435242127448940312082661927463349375415172589815285849562181613322163508331405015749993536164551927116992054091118187658481848203875338221878582211168040112417350313280937095209874857001689267477426323396457557138716925138858423133398637093718732128185117482087857863839418053764357629937851239672259718848067866484277191758136978053369666093293559870528925049765840352447905414487071504445849449855408061748072769441770943737118614996988194768952709470597300000012458582637516496419948422949082652853467465272380516452627705861655918354386294147003448746738665329799968999596285460360289420601154714432679624209106692244320352449846093044757570979298988801256122004220183920984229144465905980946320358298237676691220946082638485599514587933233518016555979805569493495664896365277784803206916541109974184115339152878108512197192322042369287242508572132090055227292030182090241550070431880701670420191190861653065916409191665945743261402609933115516051692665645594511009306592166253704756148861844311212582559385977262292039997989894327335784547050028870993475089079611083860157908293607253068202325835774760537241335843774657203113965308381337079302057240270360279211592673545282826015371809917017303791656083589892798892959233691688949695478698121947817131737525936632889456838672103023540010733781373176263198790606298159825470419944903691812511313552694181133125873041357869514052436285301215404718204573943310856480673155930678845478875869184816096178741830648128334128379292619363060186591798509887567787141124349756112611672695113585875273622496275084404492622649758579229579865664831926098673199176729864334230094873770169534432042087523655216944077414743682889970107133153999865357430008682389826585491513845031792428255620103784009840774029831753350212701155598587213631804253873752649459546776293344941809135113184374142020972093846691358902288209177006400629997274313798932873855078495935761445015227438725179234619260908329982218989957544360315753089106466740174697586531382444194714920976111436129005119053798193864441277910774701792147456904047790131124942241557012430104277363488152053682324074160822656063741292155582422781124539743546169534505490715467497585188083805434786008372218432735334858004177603224516148635613129152288924622623922727260967335329309606734706443595542692558987557698517711067235734447568252111686970736669597617277125788285494634752687218238993934989033010999236157632269575651115104148250416724030877516345192147161018641605851576255165439259339079640705900172016196137863575802315913412855978860538816413515697836650767286432259627372356841533624104575165572120775482276111667715742676398801934840414633095647696777964804289105369003434862173937610671281850641637825252669976592555430905383943325188358209882031303932901027714426111585224111571996291299103423971839482956281439161024710543607894633308103883678670940368419404824781067376090277748365641137741634398501366756281677028154922412361755873046911002189635867548606455224523849582677130880094302446989625401283033259175699185155469697302865931197648288081339947256715549518912565929781600127868000117078319530741466389620384912101603350563004672630222962069181909200628302705744476472821526284793336935358884935511804524674965479395173964178899041766024406993644151534440371575223342932160681893129331088996846691969026184395425584911641561379922258592985067712554212819914146092976027163115684080009426860979274716619694954434003224048514422256327793034064212003276695479915254243160203279153977026557113340551919815134067365012362069105990945822671902746342794442702005483748326638850287727544456208557806887560974549455191777402651366505666215840447712232082820696646332910896956393760270966825129980277147107305187171819728063189343590584554030493026696348089967071929387311984212460242741483662504584869462507027749810143144291585011850656555340538360951107961369838433221185892829218018249902908324882376948621063889665615401568243682287483000283354496054463654611515163080782341304476985711841577801284917332654145650041269318326607347846129102099754931278880965532305152901800627134707628956230137033203272516152584744721367058143116238862735309225892158444246510920688919992342313941720753424198302400555118522102545430669968108652704210719048639481138030639535322349947926039468139553300184894349570081253804221109424368592574376816997672127660849823632867093983722241441578341032377305101625852306892874424493189602321686564372283956520531785875590559254993750738814899228582646754246926454210806551929203639799505615472067847093424515636803989206566612917680856036087958462380457675095339427437354866656653648037007594374990118137219835382028389249459450530212308965959491138603342911732060903174136382677046973204505867275231183627067767408922138421196973774305925565503891989834263548520085919286678189537799054301483208961806938535154894933800921926604140620482350212827536542596093028134117291700613231767416396607025634251145038686142984315283119695078130375234314355704700258932115733923248308516452541800842736865417005084062099397129740468899281925251772887856338882113586521207865075388934456077224465985494296713942295237002969071960117357830912453430859271920519615760142696679852175923763443445497538160905571757993312479949682082857565368701175155122412545314013324430208495971824799876193312729743048288854490421728002681994726133526027990874346613352595525193850172340156089505272893396455490999421469816570157658984206235864946841505251912780405855663317970246319877511160501472093175322888831147958126802660557223410887183277584703978225137573420371796608318297493550085479432267150365343842227312397547609390797247291511751480272205054743213933931272480848960667040572774548050094414892779807324460227619254874082352666020225322586158318332791440363625585417745831798667057004651990161037992750816646522399102557410986005709882703169432764219911582874040443856095173762279393339552895589590793203060461216623382220247844687638425142884680611551010469543137389595365444790305012990930611890842585365110344492540798871625678322487604033751887905421071154299217467340659947745833158820456291628783140997133961229988348215341332640205890839648046200772541197764247831836084992886845089284513406565090671508880595662490930789225795278400694689340513894700114935386607552163649406557783183099771641497032594657073567773548814358845154428468595926810804644304188628039827220830296370910831854645274917421190495693579117132234338936715272202660791393974998408714842689156563810412207135414641118796909419581957631413995287001621550476868982313798810196993133999561001094131976833026010494009386743676519971871611471354687380649859897207442020414112778143735757619311446429806536413369588777924595506428613542902846054157441993016209098461121017876797456048175771140746297959149690996041599749128487920537407207751392489707286159317540239291768223060732874924420879663349149437433700119708927851644291679523691726982610402170576437689546332651465124045845894290081824787555839608988154095229544447789917264837428249930622925664224399561933726115443582572316069188091784790475264698567670329611156901202075404477311231111139515262404347431827156665436861405537019470678884224362544192763931138467063952088760248694313541441495025794069771146573539856997892788649010021692831031817445464983503888842164135067096430831993892819160243928234527667809913095806446308991082339101339929852954269723662689806784313731447057847362154524188694640269047170386098026616530997687169870128914729072232041980460378675810445091956729759932859971503959386394784962564167836554229315450225903725959953495386729531562568103352094582012626561402585356805855885419306501890707551206977827406289403185842219826475784328869102084826188127658952810378021527689847827517195503662434177821854144678536578247088504061667105349343487322076968568652213862944386233263961481599494727364656191791574730507804433428220097874077567067854448190845022643184091619945785796690842572537394082392455367047107573137647859086317296274747985280505591454085247981792889015855307281864824747028329913940797489940220369506054545144809196557520149836086394160897367448146641782856819252609750899370415624752856674273450944694958406573356606974917399236409117764137001193623069938947359514236685692589573343646747507190170915428196749068911904625118453605121440905498138647242345553610936228428839969800101607224597667506640199314795065178698521472363148983942084289831393495058897489945754477264818481387343632868744030291346673259152197656884856737429202517395861766572967668582921499920258619202407790514374533446312436394925285591927236083792191975440474833748226493825528734959311544410153424770630449163273500979929758906388795119022108359714177237403872155661807431554333712856440014619826853547290180203617922326995608862943353089068214645450468685895796210814752307711682142116468816226664953873915442133724462593817548608545128449513556961649160560151016418870939751713001394347151056983816312697921530351733444495559156935777839787266856745280270192698600171403646050018689019207228577416927543082927001767205110800534139116855133601909221564723736145348107742176946232976183843453538460674939467248759985003552789600995350832357732867687882016669528754158017985314541268830068357173775490490393841770195497324525439463762661077110080166704727042902962751090493272567216024418700172899493171615657498387587359335071009058636507244693827631202863804301391729228264383784173555268188405316724002114805588980874253366081039463807006022027791433718445194433541123487057870484514905815886250657646882698291445159858396027479184048547060353315164555015323826136854058494660033575994776677994346158073745987185925115678235727197062599425692601231755146814724288679669882418234150628693487304892310011119042098024581687948012477201889950294135890613574374088586250482181841465328164531863105432942725706757805119340254706629912568004891265157845374766987417207457370690807835829745854931824649712995038684163114923259453008683539077488834444660665712291124993414230790554639725333658395668708917224136918016921141289272391506081225773874483471391350078964316066116156294530726250302636884695129951165636399949203766805359521021104042290698071897657583246141386687425767904376958825539535152401434985167959009984235053074709419398898553586915530772397697393439502666757112314787442595498776955826624081589788280889215116629104306144129402031016436261944835409441221549549459190828884043950349296051602345875475820631122481349107185878771041541236020442679227410725053449610959641227687490683656833772150960269349633200651088510731392423393391609131148687867683302968063983368608643778465027343715671129200537113761113972914379130635396609400992466004555364243509685098328583626369087181548747162604682003039028805291556366912463764153640546451687954336245494453210118024284215483866735280768581666063990650219280629839464460777498231606168049745225080366228145782124983457167451935768497638136009184917730760468739015686703577467812914030212739938305631766744155857440920677803334830720305809801864699650895130146040173245714524512926313401571909509891562215813758928191397582035837163130753862537195604794633919999158172795252244673811054824649752770800185168001102351394838746990116051856443488315083280153011673023683982049601966821019306861038325677494178383420037677975854143023948103359642339239337852112407059974731597242129424465422031165757586817247583015359750476860562184500354605727602890472772517271529366030053021506807009177754250077557219504799623528350501409059399404774451272113934625146854405522971250789735109240939320349720161061098061274266675107149769627361188420153287724028505090832847982744896865896552191227744907405576848207113628527384414813473176409110010710611853894448450270609395608606557041974495217230744260839590376224596365369032046312326219012380482508314123651390929226379994975263282385378245029189854026987153232388577424469742972676047821753775616460872851638064441213818574032175711231643629649288516352843771415872936123870546684370903322837842620568776073399929333170045675417641561397910232016257764817978904038494360340588720276938916868382188002049061484026175051823122354775365745538226559955051611567815857884586681569481369228904823242356456251063505914193098097489234457408328910131149192852875172534872215397007799952054471714792699400854602797616646966261638769913840224748336079814132795174780770556485181196675204374861313174110710055896976516308922024163417227296385351320032529276221007916328709172603431785509592463437987627710116650502691375584402104062108602220501323869746008559795387285310632759061712435771666577627943758958271913497194955690107214501406067794418731315679565573218768806530511020925271009136472485374734240933699727362029116206674745468403422660290864197094195375218143543410997069319891480950332013432633129776665459049902069799454304358747010317145478007036587969547145678054503115998075370407298806117320588005471070600051889952440306034107916922020144121999553666221573276118479760861111574090033662327707466594263403049005318847906995534402571484587545878916477647429613166858432802048498505094260035334085926192392187120812514411900945893109617493288740105336942441932442402924863152540263769018479241852882171123578174735398476054372765972012219775149753471414810417993673575811643224341462911991357896623709133962642497392483459386999725950477374958052037342227584947274655049663988187773990093161867099391410166717608708011922481166533080947370510270289486776599528035224829205590839547505853196226117445915450707405145558195646337400311187651856512960622796861873025580413681709534268456671661005409653256983929737252306306420298202963422458294231831684775958543064136039192696096720878111457713365487592471056184294461743755520489780013054000875787400559372978029517224373365096487055529959261004987436161025372294756777288405655231150122656517777798125162941648945920045014351113247633093398960310182632858744705321774251011318056840149983660053830995496213679277197757978862110146266266380009131482832079107703655351138211077135155276253308090762235279103604281980650665775262833320121818683030124712245454328057200931610460905516460271944050517352673458232508956660784207012894800725907908202316562111154592349046431580367930509067411708346964745107274449080059239299077773379439519774950909141619885463838980911695529482806810395802464721687735342202702186046893718826420077830893767049988539567443828460850474649932432415834879963197092663078160580809291671089107588680142541932570528531506428156948464634236934319963262703085363862829633464697355324967296115763746787777306099419751441939823709933404257930886042046119739786995871397127543728032996214352190013779527657400246128229320147014631081509557184387810551009134384340798622451990589627652783185124070475369949429213442330535997339901870799078197833469849079665547275647365715125059030185655832424402418400714999149793465009906743113472362666288925714932262863548409312031654561328092331730864135527780421801595218087692612575343028962294480423519362959654206558102100147840603052584125302200798279009515809966054944009387920289509987964152616026418823398378870232877815100545921760056072841007252661415220162892871410982596866112789981149727260792533026827312334066533004898040000108750381472321323556206011144245171872302571666687668433495950839809458716024492214571958104422986917403341404946802711867713506949193253864396092031416917624883134538228861038532298320794002176904419764865093914735324033708308240402725429561408823592258906908437749483543922573023754763489893820925642295547540970063907270949908015159222871365844853061644717211988041372614706957851924127056622485574764006338875246193689151075830309504447342173170486108574736320818265192601049811020811008062363777721250821909536924894155128476600252305835493845747755771816933925378869620936077944909505736416279763341634496573670808951734593911777347060115326028921130576852826817041477278008866998542750445570848998177884905393048397277603472994978658484424698245524482806140917492593677807256865911872885533678187689738642635611255821034375460072232404104182641042334933289733694443156179451117771083681494333530846006914545178327046263028031205907770646129078447691563511665854135661708874909875501626107631505743666999061228108452836161080353172533833678475154890275301205594460123265941551077420116120189701386449588931799774772290179488631139579626359530651817628202012126978676057893494056060240420791497870225210666157146470339874738419138875801633609764552438696040921107703583430964854745694125740836247010392911133911488672882180957253451982350397360827863959031089632872715350047076556843951340618222189622002123684619905083086069771399504117592818166301875660134881831520194663655217705017810083280967874006151810756534718487177791870452613807082667305990892547124716084296377918729576396465896952077148937424473177777324626717884303946180259322283079566034984936058417525122038614946243589930074142713267176411555602682961437985188721741050836181476029034216444130868229075994159259905354209168154193854150882333328089824782180377911456445153885749680330515009347347983340593050359374636775162356679830403253665925676063629360960617327768749514539445213065417130846713629293154103086261611571530606834326685057959553026511754105634284432722916118999152824679395021021453626264014022293271887356478535231778041632318206201114968298428501668635888615989394580491651117838267879105503920347246218967795592366223971654512679397923675028767218960278313348817888829669770671636809437607124833653183449536532627881682783795144578548164080935872297163562560926337250190695936332480311401280156084730699902848252020171745659285221346969899373187587427220848321257725736661504419261811087268438858049580333136155400816014986336954183391723848155559655231882687817951914678044289759439788656091243765943806955332857872489920490493517019038304095232197552449149211015568814040080132366517917756862816731084557220833402364418092882534859846062310005320153139381017007313916337205186331806222155321462544470599891268732797002105823158720064218831110957643460065539954672975601362684623352628085997013718245333805775013281534623018025619676197182654663759918553500966168419047559399229072512009050706337245961024806406386378139181314092496641616107747988156718933446398476819186551626800723156354410988415434915868964333450925449222425526476654518465681869622196390388101833573791655898926222689214724841910473461197219774928829979728102616647524962375397700348439774258435760511294244768388957891712062228488554334041081343204886420330097246238108315826675351862462725880172790652841005708912967651204762222719644004063513546461738549112285035823720312613476245265872860024740598775150952007021797733320558316297538209710547287582108333652821764568190408272068220135231423593140284961442715524795548210237000498389248139774045856114607715599274230364771249271396915993796792412190155465297680008678955848589826594830880418100067453258235311433515448818214739763100335646669624950268272147827585428673927916937271765731048432469117486883927866160321387693660157434952025945433479225494896300758725612841944108921206191594988117320381953722034045039897865101892847925483340613957776349996845482174665383772938182614950381440151290752515341697043970496719496748951027979925823214103235338338021854740008941774249238475256838017714610458516700672854119998628113901994116837515154738014092349143289143420011510002309418932289688868647574274588551238572634657446390002824672427102707565382018528687373961780011429188923351047102408328428335453749966744995652840074162154623000402313681403223877506832922649644195001626926698973756943040275412882302612494176120374795786297093415420333175783152844666813417408471929477955032923305852142223201568812479745055984196339805172104803460950591532653918562534298780768151453140021461246387439696324738623324196554070973186496383866000343879286268455028837340328595253982813285934983636031687070127090603096265141062320702723673203863474146256496118930942996404962294114415933407610256983989885167576393683346979433008049422052594674531693394770244414485143280479870062832964291363828659677238398928347595365278275226845221433492480341177985716519719749712293659320134506265332912998427175493516200176156467108459589629532076783947080580630673282297129092948852727236693728185929085748816584915131133070987798242575326398496246065127397398729444156160808242463066250528597058860544313807557396210109093050442941820197696139196176629574575500288843873398383166537780331192938952646116973503071651932918651488155534956268090987210440994217891370820588123597770068890625131235202468165528803892446188402109161828185414171009658001655527049280745266003930696900894195868259292113070943804237459052439531871927802247255423763168832872151954391827660430705873249377356615399572125694380576548939959775828996851567829930499169393755312115504401070662292883239424599311646398667325792871773080928244523649008762218757740285119361763631105527831644630745548077878092923999721111180424875511280928960155085486478461015548458771894520062798267840583371708337760120402503075229016441644926710271071336502494955462266588597927077342411809117100385314997365457594020129034402939185555703694111609703113402000591054776059444607909568730718963323097569376684980289417542477480896381266382713823936191948840520246364261991500503002785484054169447457412313268875551959610137427196182512344578274609293725212038802227288106442575575364003117122371751174391181849780597292292152721245842739531196487813456060451420990859653499668825976900152528379916492736428753396894852758626628365373779907087978190317022183542316563358019868735103769820459418472611314824702500078016681297429091569763863704546748024354429420862924928182637869691365139596369859775439905108636076591004594936156687362777869969591832366619843128099612374876368765071056911877957853611796748406374332393790794100331497196629680556794253298290546620490375282218315918643719296667337659349220982698287115542843924155975821034284235016493899100838269099868607271702672157638072650192859706543076021621394829461421763072538929597064510439053252651591943277881643492548174932194673580363365115904977782170944424221700502105402672643544021915200285779561069893169072330937108025230131574122479171234433075451984674030241676778071401186300489513585550274096828574107346647037352226624506284243624519045167898647422044860230288860233096529354110806732713000623995208323258125016103719022211114939126733807471903533706696412255283323784362582289150549782017971609627596080087844625886395268645359038517199235252376059862600222347544236894161718674621471683520850227884484050521993617456105515175466651589025624758517189088754594069661707905526088945893290614931893077143970308732815672071555552175004776128517377972034303485015578734934332249307050110157954044494046742395350006210830434931134940558960994293084330672485421923057295074359763855077078314356843394525385420360454876215885532104736002060432673436484049674324811344089623855024631072992785186068820050933996022570081627692383643191314771892657346439116819910266072587570345606236093560516220420001150917844987159111370944008500223449410829594856022837603007155399646238747027065948499830510938396625932439848709422967886282480006706005020788790362860391140800524356812413874730448622992660612899246087939279367731337714916875624297206230979921256645143684953805193334436881111771083711208296014569727802779207415887519242960761115002122331168942332502566888150179684702604154393044201551665457173544522649494689941970507364534215128796013379819211989103582205034658077405847142243985315733754862685337214830923809474364854295631582154056189084171921909437562117207293916092702583743221969877003564635887251246700034568869322610186941785463216559363248087922637684775790644361720399255136427469548440406052320993650938583101853446559755961895563612023222702090663832925737815041043690135013093683056419996041062228541478518870966612271728885781331887269186091122236476496139056320710859858827280308192060973835361273565914708836761664950675122553427063604692344916225664967147480425560818379992690843570053034105524470131953291181971592381757254240224197549387250107389102513587853850002716184662207214068615528069647953742149757358669863429818427954375499861593229873946960265603913757934135701537582560327212305275731766252093966696050055410374472517991994081369094066376443659726288057359401366594910582811214037042229988759313764781205797460731752204677782102143905112406194500809339398001574471805163264213008589997002615367732472533111794492311127569435867051501229890197559872067878972402079885117697648807582182948014375477184459299250443341063416074596091384774965105516844850366045857626459006256962825020526770037250776196438799043486097748688944807564376675348895879172770009017190978391657993131813966757511635670682260115556911827490915792780699475874127754368028023713461315840750349152143853129710948766718100650091987654105219159563026065613591450758072113809736467499069656344978495759999802128553996472462132464072082501334021571354108352064833690344929498052596159259924881170705084635423487750466398173369473279218257096343870742744186309095427397655521117282052710843885571985291252130530651972678496758788844243910462522170410420947927760909248748634671741448986441019843498398122332095026516850848697331398708923349334498997231780581414890688048306041483227285839051039103610224400966484032367117558871848837170929291511147607872657354304226935163520913556494276566110741779462540828080963293450514165213272991147473335326867870039841774289576431744758981493671680760892371174307546903465991653557141534401127306034661987443699136405820561117113489676321928075728764318985947563531473711297558031972441146681879116094072817373559825049211885657048623147066619324540080500400404363867291917621747353622216414211864113234712390240734802307191649746542235823620232148642826154285460917260139580190674166744644397971549962854807499845235889798842565078775473156440440334691274263637456495829478563686256190495762339620075085902126183177736978985957911937759608325802457954012662502554719792360152796087177165855311451900526689658790957286860413720180182110400138075477763723341998193025488885532136932459239167501601145865868883693414072395137355074628273180603349396163481542098671089032315239453023395775414133539484428968834443601707425320466388257659479484802408684905658659546082745243860099387813576838036411143384821738729088118376011212176883813508432836769762747543660180459910122634658375862806871718456630232982612675617331486278188943291402538960509763341108090267493945492538826745560860870577274653704373889974744000938900563898025765190771290970597322166836637365950878689301861195376087815638563738470441485034852826496554558383916778871133350837896068151867684862636705952809245256261612586557299347742795769439187029429999602499881519856998110322013570849072775132431688435496505542452555016653687934071235766772600963274859239207042718633072331984297911360983561808618770087338619455010008936175310201750560479621386416901312247429657613325047897659301468292546818051434932915957708274390943927496163014398250868854703407960839825155685899782928520452448011865556565188584658455150863868965571815205688660113870724273064325783452472136282690898574848819873319125125869360808014164426163273907777205041101177121756018229249797468209948224959368003456335461755843419871547435281264759528288415352127696992499890876381003785663288311612127056519117645603517837830076197002853075205387760661835970716509068355481459986431088304933493867064911600561063094867514371890558897113216492283207665131529774739501152446558823217254875722379237067726109747223548513639140994931545635579385827567854051094744124543669583953600275852085477931084594703071387826999035056912445037626846039362752215538775949807090665721139757946771577034365383604423994129704825344958610949675218963306650171196410513297613598378091380744747201557167381675672091832593990551257466667095990850673347301121685308659999630527655830348022726267116435448350402965131618117333384393997070638984216719827181799947358581566787907305950929705851001040529292833059339574990470470436013581549811424460892044889467548253828609450505128058517553070317045264511114555157557894791987622124123092781287238255029570170192879254506956788300019261486121387380721061779050030820243374479979213054920907280221287385461618768521687189409296251345797742763207881720899876858046130080857035885397773348437613240509328922891708376574364741973685243568048208312915649187861203816817073647989313554444072012669249502634594046396193816563714938864672835510474162976057141067914140008593923260918043385535403867421041449331004517556592592318616531779201101770194576303046882781448562268890726646261027258970225897212947200137700439358979317576640389642692672393563632709674853068939661701140080564629077115781937231648794603768372179354450793138198739060053909011833624408401164449383784269022195313627785573602650640929239680685583319508793536960643763148584267180922959362301020782870784724521813953398087769191939187214584362823250624126195339691389748728436992959660337859114057311362497881627533857122622583334491712218711227584902774482372368730967181690420143192827790162904360626480531323288210920632618177782563617724599953584728042628945416943490761960068533885186267123759130072900589377665118721072202882962179019991440041623421238167420628465491773297976723007768251284478730088428183858729913591639818087004783335563841861947399766744167309820011427771568907347192873724319579872988920426708093571005370863101686505543184562067760111354882232894705223729141313783800793688950567751327243292745281852018824599045538137819472154745743089846016990689111956892114740362093825116836708414232500544237254903679957526389942955965138580631034234748302566472169538325329643955681437837885825835248599221139776456777584685671959802691372387376888564856997908968520230829269050396956519404364646042055533376342856987746179035510464999349981255851472403622464362431099106001939348316235376098403456599947225551200673101935456093343322854175431282117413718174341871475555909633745418077208358188942323381282024747828180356148356338234861059925254817970562981297026463723314218196221465163339332343857849842305107117513183043853837792257517870788643951724376917386432214988474190145230902105375684123767032786656900681332767935372045106312043720394406216888675816242861402354207620779935404414072522135461485670385039494143325804646095572016715261336750589603822893989770727607493172236498497556269471345603802545906817783923171791498825741909488200528922381716203043609317875004648339031361751267163570005784316441551536951790373202648166423553707826338369920961236806057932119582507691260835323381559378214563790112710981709310500857449587243134207793533368860149619593265378228769638185838438523886222878226469445686135639347186791208062711459800112718606045654195262253466577651716161230855030310828536014780750043841999644521802590285957568303249474623027082759157193116643191468466538995116458732341337037085908966015224690467301003968590794761732046856117850495243052426078689499591033787714461340111770300668486394120188213270541091100607225760453002096970248278248657702963141073792918705687481876318588921822538619502347335782535855458916404650816013497052386897599101166210956355210750727653647861241408867957032107073379626221907391418851345819429268301200769526462148406664792471144679065539165326770717184361285965867891909597214569644869594061890797934283728390326511401921329189469063728289582349489527151433682779261220673217581446675218258686991131287934810401792980236703323049451335129265122703843253366000046865937029414096880068874019860630094208961886637700346533487011836672309404579979367035721211599205709377291270788251106219802508523778615982621710699362188724316466067492252826027897655826006508280885573755869290153636274730910023059337309019484088745873124779641744489499524394501712907302394509742177935242528072939053018308925712016596763086361541413881901659405048285110002679891011486891325319354196128447181817142464511818746595500626588198618415327842527660729340168050397161438797504840979401684635133300058566465011633333317911973675517531865187526420746493432763183116460096734856204984700746942077311072427344776964518612692459645765806206008412925358969906350041333850108422941161019676901499650018033707711025414888309749444444532800736901454238527178248960630716971200923971749453727799968421849408340652022089454856639413105762780812373431141435542582712516691030679938469384524500485426899628401103680938178804195543664009934236879175690113265802836753846459402399243922769042220757081360926998059378840054401885080309322709251984312100363003817056098592414467195511622626163482927774822136639951765227106282619552009911930736659303760725958514370684857671354345866294543009437099701560592191437015015870098983066826618921609137178361267024871656209533235637004222560593270384147469576322746349566474265406213421815801951874887713360710150119451958068729142851879913084499619303256952549554060904611555321005720373153700978397861887138212573065034272438126663073759520492782387898696958295452409095942029841586267979355949333445265383879490169128990034075107547974047664982042056861473707248977664383352043414723181879705120509780643497734048939075573208891756220676571050335269588453953638105007968531775223744883508751258611245188311058452650473765438025040444223831290140251944796163894266920486452283747435859810237285412873890676048072513264293302102275175309844342373997154976471995513916561980693185960397917243263338091447093716913415714354037735379683459162868961335127493152900673366646124965342337513882429512525942940397312614187235553629469606104925765862489444525266707253586078462832266400367200640472588291657275246548456598574911690742437819942486401179380595085445281122117877423273928052722799693198262588486882280307852487240370798359298080543398387355755211101838682759527294422165237769892007388654753836543035689153265570509786255652929676303645669744445030572366392092322093062620022817648428531746997789202379038617973756789507854909256516005633613930356256140428963839388888890038877672156470124675585331910436288103034014487518120776541798512599741977119106036011215042847756574121147684486838091008781727981145940822137716353660572876342016166032217180593452282728872003175988155992395997304688870550644234486022966068350155395859094671191598246366649243150867871491411431408960590711174154644222145179994187172271821759178027706516580969601951552600103354714331016367560985937794403592713601715847063619749843991824609757576360554361177983709578803560160705597817267642447732103821671409107754576817125271403233704602154497439370173266150087131316358998957655562972790343805018283631973350719114562223419664755194890109503925515722977752462170746902484243422425114664746987780390032326563908360040075422963744609730819324433821117020517785990337712349309676078532419490655361238284432638153832134219099719642197330517795141422305040874575485501758489302731812962921610070716038399656567012798032549808039838695164161722739753180355938538213195951357083518268538238653285126954710137313811684290141203457566758550892500116235823784042285322081254336173492708479841875616723949405932294972570945396624404524546630772540847211394875853397573595348845339149021675927368915900306966269888500369250905037855431135604178992195084223192595092764237313575273343802321738912619228957135853030292518340289137118893201646843760499839801733655601883026377878785767013261019636593126746226432803624763178741157762984256073018442845193395139089768376772984200630883926440956019705357104494499032616190415080779968691567250418532485673810792895277853287817796617904463185466823942474712643676375903215694589733267249573883480721211160404678607395017941229245667803310309237567825326250781183240860555029273168819785635986735362839181917224287099899890501405631588589583551619025355399078628721114572507446141468757620014743923460883171260225324482121833189976754393231444214443128868745694586562448185877733262509608235770770333941086432546845535223405107003896466969161094087256501164093677947896100474487864365486514885245556227399127377630831927383548590688470428995817192725788332241946099459229980910461387168763509835946967010618810706975385666329018270221066680384527905818161843549449218492201363918323293714202104258338617587331130952837495165550389988700909632827624852597203192334929487061236403929403012327894484554930129439135262719456214570893420202545501895178554083650942994574174010962161635658123080044217036551518102820466353544783374479941249044776840164872828723595355521791428838332847882123070538134704843511220614188763458119408000172137726806273084274458704047097144398843874433991827482172070494738280403852590662378153042068652298427741570547795258220660486018255071474497696846660279356278751994704567072064221027969175150427816044381630023701379617290447351384598556301054124164051278376859209937436287406172303194958249826061010329985856866202220800105101201725371902310606732915328715041765368135255148275433622152709062261911224741561859008671397877163948731052904113289215698935038701560995904631837196641776137379794118879482861812576506653948584682461601489008547230037975220431400263248505049393911420345425824228579578582458760957568069275307823432598144288835757066829989079983537247392540037387701203531947921095016587528001235110625977109821538692022988687773521286592458452127606405472148267759667388200462333542364153252072550297238236134027262962374497105651372369424239556139484083287599398941228126335965054941425918128644741189292359425492050429037461480458347952432543966631907767725308153443530383196817320360817478877697739408391562839095665575786650087211334304600533908727756920809554080322158618162691464571385770534450209784449165181668047202833255308446772609303870138784489522927094264913566101174347702424445301521993069530448389041771546381866061994859978853583526454031549876682152307469554365261612704796057916028173165380332673912338945887066399902472252091231243131182207222913334331651858385550882062016239504605255130331576361858632381730856696654321496722362234376444100484642752965201711176009159453242659782500637999560684217691947114582440349316335692781623115844101441972063901601922164539829186197030528694603329879150429357444226731114520520985753243558883886455920150014822218885413884531681830882202257073013293797007264723135709741550202846214900555089881449699210184056772844839909545079215494213691626202080814420342081299728649346395255796907532086536003368269061626480286751060998288644790363659902005832246757380049029485312673344452021715172306808145316233859007837644882045202354857132172644385300503587274802987932065852884699665332465220881049363669025966354503051450263936270313324217227136835976395002868822523023218084967361333105247638821017693695999326653321044809990417895555650781901563563947938659512179503694701240155169201086386894284442207540380587385961599078600004775667649732681845653444842857834997760471969692597698838992628510562471476679255185494540034057468962211057231437389441274829219646606108200458909160526079343309701955043090761765160650646231029869111686718963217451276252560637964192240307303303174092048369166139209405068136577691362726835616479195197790955074065678266247956525449481743617655035633718814337802274263065747435291018347894666135950994914095159977930238727460122070417057181185241513720009567386645247327109860922020240964163817589954880032520351342809753003721485558565251850914253740170011204657859611593260430380156703792077799401970726740956096878237854252238870438230451308487184841438037555890417885896109157687264305277086653076478454172356867163812099457261632392525881261495741530167587643989062765109127717901098763304759906932889121397098368763755998562244363694699789208614257910302633895773451284269754939262224270974456868882866828285568087997741431743262014869732387013370652542765452896951379622385519141002718139441672440565385478624795005458470715064953110824838811872409741969709648441369837459669313236334536834175871654221327839279223929301665815175041330312126536383459082006316622081353563585501067353843137382054947925580705561086524626304343356902099935005110007459293953655206106961568714814227962535845140244837661513412118005234933443471760596457293163435995435764226100924377442575033175026630481848088287073393465078099911570251717301353119360620771065179843875561814300402558011427698065322023759007226000386600659858071921320479971059724330635013759043847241935624798050372227713415677530042232118788246452338693357907206119552028418595530297313735044640741591260261740921808282286127384699787562092285675685089757660423929483169696676565197800734394478296414305311743815034751446057936349600856740759167213389978987660263427932487272103494536941675514059346599110832009784374926017336041664694047559674216719918324138310541947767530022165230323119940431245303406334118610744663225890399637837616212797829489845067886480362951169256566900401767688428981230275059348769679753017695500602571424221047509078142028000007954623826706247504178870723157111293754851219081057060952201884586132121163760732207161269969226435821489839393888445189214889716364939715136824304709579662477587640437107555157893998210144361554701486637298689813303333420844646190927480811391793930151285871386516392828033749159955522566115344951170026203824271235187685815784992198243932012688899286685147955928336034903166219354569562246033559969366041981387711968219539063441934232338717876640025396656419143836919095940839310716337402826019707239303639516930540951456321728057025278648426431543249852421755873834989555822363538404186763233840282601770583273833727439383160491513982061470788897695170461882584343549277510872287626102387564845233553095572339207096881195960918858251580339888087565176704322475725638653786106511911571752282243160367194067504887025047643301765908890266296354597525125436705577701257235122219647901927738524579538060481104187225565239794497530395126299298795458372960339972050614288383925214569390478469438144971586699564129004235579019219741366918099875947448665613466323040721742042273155057525616398861105523362715215236648650882731021896991969611889578419624993010924294676196071710685371647804210993593979236302615701175082415599332034782774072511807840963895620860141144416426976102007988369476897158418567981970197145188913082995308956040125401934206702715672289721998953886705795217833241457435277896581669771100199203575741048868507941364693984157712256195562844077322578083861241258062594239329205610422728218344261716055820409364405275136557684135223604936683521512167491983411520979661417322224979869693998806225369748383406587801752331864288549592814223740549802662849310106386127823672718552358234167209334858672185560374423611728289478088984024889231063227780249614351922996821561412308588737852497140962435449715711980556138503705157949808890354277572053991096097590798319297554729019884366490076877415265570062700803269877539751564096664476762493223868697666966935479216268289833708841402514908483198952076807389061276856421378949089789328962140207750232594685098992694819211553598580957744549061263449225716243443192385842600909937398105858799809799534188561461326731444735462245551402237862374254511515425687258183705250504152130293864370897399053021439555158563338348638078141233342418420716304776169769631749669960565995795184243956826784127405251363839302661212425368731627847388705993653288015297987014097956557223506322501871199031120623813002342564505266646190037987595923377738478380400395748896054676999941824165503277901385427610569436474655046827043709967480363768188008066544816714481970665868267562818585401525367374694312068935062791656936604406514803242348625454979564385150018008163806012700880963860995495816563933834347451139771175138468498611307394737560638802489897734824418559893835220642514026736934959081817156128390948538674381882534379378673976669864223269922474528926186276919411330652347262085388856390513086756643392727649131206173231543550610549621819267267687734431616255444989522729028207142942562368324147049278232169809350641814557570825772652985930209428878405126038041547695547990854730804558076945645960881296296935928695756090568209358043157450880888335679664133414959403232178157199881405840301262547772341938746912626863890213531988895990324694968156727009222681225442963649458849689918832578145570566259987555776794199453362202031723833141882222395958690935158154728742980518193864157397742070707717658833494646814304871195034444933964245020366705551131235880089981039628859542389926905476194692029402292860916162249513584444813291752106742901738904410964927174637148291750834168842006975273423438874145265903182954988550097624882312789366695974944070830990978656138414495423737622581805850480486591843805542751043208134716091022097373240544523437764957272041606431240222878735976101851792118748528184931836319048810159356070539206407918867817530502804291138866482435035699282126570991355111577648175451257162942558768435138182922225700603887083566271626904376525569429029878178807686115419224313046286980573140370692625553115939778126890315149086414212400661774291018115571045497941486061759455802592040464407295179489265573540521972171835854849954373816280058946967497855330629362792353858446485122456190892088400574405555646397744982279774664863992931418195185257227519368031232161237524751505122859053009033304196000781628692355588482118156991056604051535197352233356134081609521885702938058659718785483166360308313159399514985179962825170080149494940612141280033893131197680612475559826744993890640520922819419990444964490109768802210511657082039023743135772044861829773280966149224207651416476297928519571290686118503245186916927286889124914516357777774908287209003623957395510143071636248333003350333394238577499327003205085846394814751970129034305064534067489535386856199943556656786575599297612155093242769249257560789516601627265740117514930391666717135753554567238203635643004976017510813276792816419151800217899345067589684527511340066079006011721129971357950509580197790853465022322768261298896105501483090561599234205872064203143011862188768876941704672358674701196301380551838201069188855908971735222659439621038529826082138752905211621233492004614588514960526002239715294020048744258983894552631124775746525222350863928528004971444779298461026527930325527198502973127653511112199002326819738704490067342371875162402499762066590491844881958685218536738708419137680123868510732264095847801929780287634377360115499406385052407049405091066695737635637044168043372308576974712855268529873166220168328387693913901989469766881954329227504000703439175647297438174574385822430499234368621425453903661995896973212460790121527036564507776224316307663711633731992465930747875673928693611118420825388948482835808051286714693598844592603329023556487082723373616957114469219554894141579852133545780009340743296676421102665067124078338110476040413439142628178278623974360022440256108644019644975483382762241780317113280704145376638834437129922071707258143025785459409904959349320685524288113758561321176467261344380402756977282394484175889549131318053964527833522674907271803906071214763758563246589240348164903897504389730915179274341517084779412215068987607109445423360406482552774044357648638544608052022573388431904453904289165814492830738822869138413100785035335036885284089895076249210647969309481234245154193201300142210564667879303854136250226332254075786637373888841070084469604975266367285021562899901768543424358547745607044526357334315922547440784830446863085160745389827843755438873692943455124780326424997617584872785386228139577077074944213091700478994748002783226825736927702457596366494603318730690260213509092104362493553537783101147556285450970176643176647339753060096255678430107813210324021783956356244408125438328391588545667916326995189733582844000881966342053930040457009689781601294862518522817737650900642038885079600662751604710126527587997558039993500684416957440850180526748471529966935856017860650596667545029021777177690899953491754803864062451133229359733968235108044560471667201617541617358938922839276358536459454545125583978069060704418092313695481480297754993494366269791649531779256861656655254846117030851628253944129125120706597454442520860454944761929671245493577293599410417181379149870342175190552858873588448302232210460001031463004081942874240132184143753629603954886565041135385980929308489836502665706733952857067019086843573130439331333601575645650670516511304740295063904707791138556582638403179766963484327937540529778629959742552546425160158141600836862625392090798795963373322797880062655906854921670390296014133285281649412801094561993726637122520722112862224311749513923925814356021826691987503179960068917738867633879732087899627028588570337099985845092489321170312040272241316686463397883592109096653470748541918215384639610720961589043739791065980770584153490868484763517707695889683249671266037174757494480633759931192783120147779944819326026759721541612938018813965384473364390490650227002160541116236405011424085359923065270998790931092500644811425705873125627660793906258373622118768805689642468718194933134029820687467979854067499738457041911102710500681975270536407106834489271511869672277481666839512372482412692565101002380604670517946585009236201597212896155203642727406269754471055273734106893681053017090885056019780285007921898636785793256995829655745409131050356789775871947887822423649132752914897218304112359854498625696241069162128970617164783874785718854934420009791046770680497340481853025554532012336858118687649636719614501782670740886366827687988011494439871862488540793638086260580671971324471843592067406830228566290006444416130477465518831226258757044225864265729278088164774577109204559947688349161168227795583559629173701427592111282772701647564671760458085860709208045000294153901886024306859611766902965421385729141266140507753943974930539730328957046235581379359332057185226905883257621966588362549127000609494786625921259599350209114298797158193733788056701251837339321446998103789618370359103906443943812825803135720584421713927590842262743865318258626034093198363460148420794955485558751429327842633748295549802864781526499892155301001998567672125741156738566466433253353834155793423190921846555150749050848476116163266854373035521450563297719287661770074136977094348979953622821316067497888913439849913283411262574678523845841288678723535818543317703813976422443353520574165220198890422547324489016225530350498054593895576056302914389560468708385117938144485838293984137084219352929833753784183416679588303072073265819643387492970827360897811169500866577848776034539853143481984579305606662903652519253951850910676653065097634506767222987169864516263209752809509134446810170800590695183094360592825249342356679801504996903913620618212671758755354059386393166550007282831832682789694096312562453474851346592134198771454490543749434253413665283888734202966138909376798431484020827090505605832382064630754260969891617869834353989274466353402980200637570751151978725989203044039083857954469039352417339930581118001048036792207637798365861470005722790225569502193426092750119157055628640266150341649963878495129926935683517351544542777947138741420696637456330330253375519098744056836236703102793052512304880491044101210761579702289331947866049607878184463359730464016053620722994677842184647316609043054995557964622498292043312244775677641909403976271925874968106502108068107116591708182605448049934827672709815736470990627674242950005050508308892931075763084187565519184887934494169329545160604217181700456758300703401610711660514481227918354282783232448972805587257315930624575035750822257680871647916255036256544425019726093235461131314769567430297951327721077680426527215610335482382053019114114892618653217604096897762085743092980975626896629221185610034986176113648228780861939931716463184137429608354156153241002858084971105518183332418455245857000952391224437011641481562713683845458175083392788674783297003340446125565587812083964744031136229490221121207722855299982915558180611373080098478830613109338953289289036051184460843190912910452767130311145809476851463261585486820584646739231551413641541976659646877534048629747078374556869765077040878541904761170513328214891251103109569811030126115401054293158112653599883770366151343235700395604207120506643092647741195926879095603114041815223837720886929206711518869924313358666028915428990538837894542711470847969604121585600441041056204267266217931664695022150431930490465412356461141845374228906663154275256416857775472746681187298922366316117863500804638928844924105181167722023955451457403290930935367939010508216039587234270746607106076166321114893361662993232976865378084257131895523325391076880345385994708490728551909821449343240581042142290296671074556459453654983148328174619361181467916070520903853336729194828469299675533840857039874002299536843051604235056873161929232858458298725109876033241073389490489993009520794784478403496886148113916205799023111712882396074959688393771528293695131951785216777882772193773806091286145079801998181144481393990995167238608196538546721020083268886372690820465302560318402806646235104098336924173921785814972807731154646721811449926981047286128440190003612574345079467224450525805125067327408115225536791978016124382822093304526489565572734059610204508024484156364976517706347970938635530141240995479689908215432626573700664377765907598747475314737018759055822154284913212381842124117097314396899459871536281842883407905188273036065309390622105963011055509757911784717470636851605883805143235085298642864458095636713716270505329503582529074919631783713896455426372431876053841528733450096754739792850275289060336591720475015069761281249983490280617630167417894056220013294549734351972149015500805959087473781563056859558341925459408345800532468640254321785465032693971338249589043252354348208019376104263597523991999852585127500350654306504420092653624138767913072582103884300278312383283833877022616897843032334426106078460120819910457703409806553013638431078472024022714145368202113851143624828253288660774161779480252160833458396467793091001422900245879012793566415582844660401865331341514743640024503217394207918814752225549014272209635117026451457514027180192978874469144083591720993056135682693330174105795757809638177895351716895378182358664253353505409536895767923760969008094678443856023110052554457224822042360708038952415932072030604344096007501846398979454364012800596638253699237722066012780582423453167920511058441431522831961646275090863217910157634942591338384007497804802647895349546453484661384723244822457662134632378845676700757540401329644408152071852800800329966520582466299274776182493569495107522820793830952644762751663003231426382339831352397286584058908757156732342101311072198614033916678296043631956836273009380289382301307822496564987714077178373171724232437790673066994005073313011947978323138413857351162669892455143209614060917804893568591032531127820324581993747828845787075122224792980865177570330317130961184136290336701472704975048731223821336809415668035668615944052405809875883834770023532029941897342770592782752342384138379537703469154948954822088159869379061590059667379119420106170381357197747330755335780029844291651025000589230377438514817740754939261672902880208055510316420612646368200732797407443961162553898695625949066594770174834695991830637466352444528056520608149421160358846858369015756886093571196799653863208579491210445203949279838890209094461743472616130897912719939256820260106285576532287758949486438949716555206562927049416218286444723969106604879105214986468429595916268836931049268415676965772882537363784822829751386333859073867994153297101118180140570351871304879171232831422099927874849954640245887864083225528022858802598763376091855019460447566293803580564283820701264332361882848889834690020171307323476169240060238511831639948646845344800347135614666855796272430739904406583670969433920392910869498621222443878724095274148805260826926628030440905324423364838264045323253850327174848231586622575626941185898499910255988751468669417843024152731381768632495236316486468640788311686876173462835262791540495149490761975978792429753882023291972257443193596096655852077443239962417345358375631520370504774746280745364482351785611119818634374180535793244532919964747330360041841072717044962895305051814270068559895879789811714030558673673871818441876456454386354145645160333904535609323312428373304263037335815114331991750033802839536518777712648390218353319272907325301420003868795442738475187105997373000447715379096948651862082928937072050053077133622801170074968326388366684587342914534380359640641931611612501949427509509568970876616602652660333226007669970261457397173188067317820818825738363308325556430357009998767063111130004762857740708479026261510787937775966324853744527242104052747276950873112256941560722624235565849708979195543438363103915637558996055129071021844368639440651867190119200895229849293754083004081148902527251661898851384631736361732366987681827956341526425766377688165790192321742836820247925207033614661203624083217467535565785841613872197783123831380649744388818635829602930497434729939799686530941470820870725206141444344007783095103805780385695251340741688583439748629570382376433603325555146295564052764091872954593293473424928456949605548385030299844975963643468492137194431447860154177981683225003346093326504098587602586208020724061622776863203133101684775556787062701649076438600084464082393733014111182031044056242236642430251778108044767963239441190392304994335864435609243533488161365122634001896360641310356996778041175403141637560033081839319717687180195531170763626038968486725681813756300128797592432744377798228880690317629295494184441808405143194002377413955859189016039183486847084769741088809827366456602451791387540121113985344431848470297266521469301649257936040016838193489893584243398032531067006371665341896426503793988449909250207648146758878618497049247250795136253290271314452158070404100591190778257290578966580684655803428995714373889447265950872439482277616021815817678201412642775227966859220607491747515928014246217494999454981290788391388265745929512134853170112888969116365749155345930797438006668084197509297653585455136742201805887086474378438601309574494371158183754364962320608906147157295318588603841977611575756948159017517639996097694512759559251033655157394667420435050251238327761485958857660471993786708982630801265237902004290173446695815900843221346516898878291735368765606428067750012728138900564607245632477980618178402051169658945892380147583632789823158125138322618183946438936457907870671182677571740566766769071013519157419189083041308272653660152925973352629611267331963901022179106003342796048415288449017352491012349453491439286165902550526576452897617360385289488599794322562897699728986906040653328617024982170572101279605725098755248231786611175062788804693460298017186090780854360463263825670262679344834442637646771873091025163166313121082825814742618318783861794329280200931028969168271737018786436107188697321963750188592610221395169477039048920624315750317051154464804965909650667657179395871484287774029825790151377565031595108567516184451696107796222578628061308655804675288512258303043329861313775882353520781675784605995860765153207047387852869940532155843890492406214030340387012081550296382016714334378501949979269244003063800299431051158666395069128277351422194445838583753170221998994130257435565639993424040657149841137293579789921389008255222477039015126197455598642474734297981669177772077799606411989816505334820561150903058043538021764662559343418777162549855309596007070093133373159002809106128719357310433890274017805158146340139958019712348470840374292716588636724371885582275523805426801041690088949602967132293148543785131011400053836936404570322093022205376400638075878526593559953081341405667406720395828990407122708143217912386281533436996612223635564760753611816897874768221897487495751611062037844548228066470305424166213221589672047594887848770944473740862973255279073896223407790936496185149494381157916159248625121583726283738256809457745360939571127515515552776359718745485007234365850781977713002224830562951583639296676309373653434599470136230919359508294179129154230939906704410482255349913212427836507251345156529593649994187531418706845948051074156571343670890972336564798556147012220055313425683487493971956856449510837009040630454915365790903904905126376816318873231001368905038357772539789757242496335030380780818559340301369825511079283893861651257571125913959055917634802856836834214070759017951249487852605128931346512330356823805651775079488220235281887637331164619621957150538420777728571068900220150606759689740798910562875720983805431675087956924818545647673674613103648329559414673821327530186127497849249096746561448744719994102798637992345362010493107288645027341110792787139832778689790980769098761027238453852459506204084233697335263617055767648123338324231147064941227960810969934112362089875161448033673932641871615555864539007420957575323282661440152763182145152151285940425318856276987044833102469716122192235342286797411508395416171401347504297705585289070542658212907402591741497501975149739611454143815255340011081415204579017592187577216186497466042909099165396871045157946167273473308563316990479702734493165691427989029816956312641147182689077793137735525235307908298182589682120821569869655802572222634472134880080143088366547571137804324586784645328955406096610353596658328885068788583641552007202800816327583444082626981433616358221590111020687109856752350758953217464178788767582229814225203325386114918272187497861200946380027388520411134062584947461509886218150602710774354045666871608336520858971871239807781973383861404551591774853045879881162504289603639435975931233977520902976605861219906681423598012713217991781991982346411622667804334531782815193185103932342145671460902860551644286193879562808366622078383424828876092674341382946202492881690416337595830113501251253009943650490685889515233844462230438803948256726646862476056053493464320892506301131448763532173082156290489367165776378926115923419134257850721221367922166221761877793017659149505583362909427820994081568230890411182923692155573694193854438032818490096739612807763324450202014663726121988490991718518590343680079676133506218301805217292282487408645764774497105270317018402465348917085791987135279883125366715524838978255367323912514590234771039752744162711734504197985123166404918812950205183392513320383821926918101404866920886854669289420321404472053428179092834096330650117618937604296622864866809062051497418541840271866937866525529933198655114218805610815662073736926979940613747349423772486024428687016920174477073418252747499713056035408580959934617492621830598520120117765812650857202382870858171031033944274125569972495172305734094042321160310908765981392439774527949287488818076893998831791700686157355476996562073651858141579723252680697199048809404665116105335522353521003682780348878056769235332260575823989183677869164292460333203179444047069476789771650224509977861626130350259646299249813681076665252008923249304802017945900776899734081717731980067618677229343754619650598149174327192154724441343613219550295219605902880269702605612743224579525928954127992756278395906708918622849565945911052131719160705300079789222137857111126860751578865542210098930202535643492516729495695645559852453093178098723232209092332006268694551010617805336305853799848326063682526302835422251802711058629086441324627035773391381542917162509894024478809386041864068344986760044429517803834104835319049663365768026206407661799987709184237053819884095950404325822811401277315736093960716888658004197374706865725612360392562685132708649142845147411820928618293818184614129115974575742741004177246335875624044487379509301763890899150581110731120208935608117794800877258594384076635763572732571440536283766879981699010099464775148210808926021904158025926994187960859410770879566007921056912992388262691309728784689011537163734752285898262870959467155819060404327813283937482882313144492364043162235684908438882600705012844239721005941507485761666493173254618865030385579272927070232338309109717004830791975744417004191878165789909396841298363642152699638926156722877040283697154596840666390687004856209037114625616315400256828884560163246611717432440789990109454023853382805877948415141892816573859041037736328701989641517618832977216461323233643100908793128834187113242349286585664211386858043127095381521562159210001155073877552018281927416173794171180266020554688576219989653260876609116151871722327414685174816447725210361172911904995845978788649369523475906045809390902394322776624472713798529824252892306640451498925561364182780060723738429073179396800238846709302846950380323764414016389168787661289837796275235086713259059008772466262585813253387990208107874640344297859344533974012580504791383732631895715035952934059163695125625552904644369122393637998172622695648353570587131060011787612727676970774768582324703200742854951414824499846126271428060594312110306762577531237107825969311560240489410440894087303704980493619954529076951058125300537452797963657078724003256560419109454927856253104712526803434142849261590298334589350027620424621746189591960684334710092110890847126440295079269643330526996577445920656442019655881710882357708608297711193247543255662093532754822777301339181707089703383009381956301895579734952997791749296531280628404124691080126034880517307957401610256234618365400191868822186050315572301920362515437989811082062201309811514843604302286584448430897796488651157591913489188007864958752274207669178088834444153500683377164931610898497945640804238214474057087019943180640030412105943073509052753255595282478061979710290428451926094936694138068184713586486532626623582318064743265359600898388704181460778137761192294981703653392176989154798904221932961246842998569490566226220277919883465667919874683944881987118355247374255949559781740467817842271140018622344690458290257093922347378266058470108615923284714403738058925936325511864791134272193142723115361745901855457543194278562024722507751544747128918038027292339865420679685273838670298998484053879763171249002229689167842311714061771283588058017147962723949639758002563483698829545257280273917958639564818572196289690012265600304334991274238685603053998205723949884522309429574299031587862149085006392403156578936954833924213259200848052238600159192120041869528994123656558484297678387658805369977196921728739406905340697726189296817291691966901134394716294744996457480880924362506516308152873719780944648630869888517477606098019604104740487927539622186352691919033767268972311876500424504980489503170408013702131633126228749787539645002088305066831880271008855835966288253893992087555679647532429816246790731350497576086182589038936668051124319296868850320970153989306004088804885739524593697969144975628690438176020597791783544650939014090639691337313303503178736222005460277482922278853166371848879000433625208113985879520694039808832865414928362557753104400270641026927065841579208805682974718576943419258109592491406940925576742845893605081781720131180943209182273488111002971669937598523973484352622741206094419037254415219447125615844634953843368669868142190818742096642334960019071201282941746223004716535143092578465389207771420251650140665086662134305256402105822797369941877857028427065460562684708849729584807741995562171459187866521373257196032195952311752945349201307623100401639587065863667768807785650014454109038286597317579546973716320996195119037507201107486331765909062635870679483793649538010911861954167608827554460869883411248188783431791548793044393284028478898470821767069967302181282040885359695104689932603092850348040856280818002442746478659533203486335471304842670491495793570694659003570301703745308734086370119978765385664828974702684339219353859429809799591121315655283912483202114414672657121755480903532409850282489314566391117187318683939928189194652273977633650288196940870105892020816087862567773499757961771166815575188233993561396396623731262463038986773952733880385307419335257601613391109922409833606153744719278513477270676057652070091754853385574049262128005172531607455223270538250558015982402882618139839739474021980317360773409455627968208179297269558395723639997784799151486573534177455724535515255850516720547566416262206930300354559713786250705465585153502207260614672550423823208471386789635344728621568013373892581879401301710329752862057299422215978904720563237650610651548040302811346569884273479091599489298655245877084753484550784897598103353876942417764854759343517798543236777119886522115509942230855830551413332418613845075981270021821220761525710709749203508334563353656000324165647675051237829857033547498648706294322658545984443305822963055934290942702498714683264044237449629008639126345406669037200889720182375023528509109137086909734245967812021206524165125223606802623676065971365948374100694602133092057820328698406696519149531022581067930667858221500249484071330907405057451132900320659260750198977487437747211652654658546943331728894015548580637949520495487557511443261791555386405705561316217374968240258450374799161895959248187561844985779925810785012452063613298298881764564647266691377895158095085662697148678986971036828416907274862251059094459220405166157160932508377247641784488672172655281535934279018525530017391062617294788906830522915024453444674874246662167310739363450206223143604630096702448024040530253698437860764253464412048613334581230219458949432313099245129264771952342765278025213930659197248358451459339786977709110743388865186068269008880570006475696965337699668638998897127765516901845109698836736900779495653250480646918717655813079264104877677881416502497469100761186781984989071727112851765820807321122733020397236162366553436679000105023282395300649419587877044332422502302220123088940918215962157894389016054723284626600080685276788938971141269505510866298157334491040947833329806548480359743197675993336969645503950573258287187240887408588364695991781887554596092894409558445543787141874103100454958687677218586482003364300813219910931935234683786706847780650571730131793444727762186956572554063501045276698871120578724833070854556638771190044860721807039378066384713613174062803469993652307010151922833129247091598948081903241908953187539435813895596529245611283941475741446046532420864017387278935175877651613648255271513573879104700015888787453786047425163132590754862578882977007047662885611282482942694100767066928517017333219839189398510457040822455721777046604660793716930228598326650171350091176568701379928952208616718744573946094919404453877421953323941318897673931917491786643958427369802803379784251407105010064018694832178423517178835782208323935172506041296996196407698853023692255097177541822540261488219677210680020282297971471389659267315806644838178288038256516032224967205800371860160095050611276567749770467810557902245412518041550993057628200603719654459815447726159087284150836688538817779663766374147252864589152569421189034365727177682082185418883085419502962361466493949636520948424157582888047220234686686774219040886469493930619554167807202926731886484437404868310270610507787734674694324250668141745678063616229113191105351395131808455645494575769410169042050309617494175336187741943162671682513776026355062753952311706194109247780580368673107514872140522251518739956176201661457218918707728848764318839286503643575726196488854917977017854956549010651280522480029415293226385185937009119544918343576383077728056571799314970391079048836387125557445744098110751174946262370160941734645903049088069960559079936493411015047968247225571173809070369031508762747762500186332690593342744211683308860789104969259493783858516698012755231284039476976462676689152813900682811403179355927850982499626168577465186045286760090508553537444134702681795429152628107042498625621850699103414599428657620163972815730000750205374802670258193074139379361387728064358468444205510577600778605411377732649391362289553900971425132640790069753306790431292169981896371935416584140314415071113653160222206306625232785625590929410767351021812097934165655225696777497605209399568045137653650003986407948361884907189511070508137286330341201952343514058297143633864261095961993896812276075512497504713783328827057195701141318822639777664877839440446282929778465686447147235399985765823012502543736662488188444625940856203938983894052425313586159212037747838814416382916552729263734135631970229804606936672536522556258381648080944046039539877384797628921906386682289935702589525827659322586130131042738984450970203559995469029208859794989251800709117335543638290277306987685929105945491456518176551062405031601472850723462504793847966421882714281058924618103594697765333757777990920878992425930109946828526100254838733400218117337695582650545359694681113725083343930829605911225259732549840866132274446448010202961730183883756746101241093344909490283601923967880676517828220722327705370781722715114343046402488138946991792679871883855156361047326991998480921033231678057255192897708983251845833940977045913530955371363057471073119108785953339094737595050904055756193674657771180962993291783418770134498521903721058114481720295230263939135619897599578697789934564567517135464920196253472558508561292829064165873568002720992929098947064819067971083089907642187731290465018084636101529485948481399287882889595672308795174086931079158640570012591457374775406155181061545408049522754484960493793736746086117380842924353136237113198672027498772733996361812916720578393432170250277257772802398319603787209170346986474793789562474539709986482675459935742834758112342040065090546330396427511979826915794455944027699014008378345119432047410575291992674732269931284775718351996601319466822803648423451883218238728977805136764368773296408116499286328325212415239023975085516428005257053263087647439311605257101605158713434260354338288479710699263219677485424357434212825194893605633738750999406751156206891799851991611138106270816789548795055948323025578107256476064452572170629064953921983708111739813015634768610341619745280492335395317147268487902111931631637027682834608814426615521610881146273704668145721575749265971071098567151252555885268102746928454980083989002317346495533121230118170465378852523200565937867433078175777240056149611889310508870202990746360018859289847118743353731628803017724374981402355138514575384361863869514218034806209552374091885908828331170591341426250341092094561241164442634980053773149672832284007266399990958978049289524406229678495664867360969335415865496283833997148498161104499919418498493312045786537914167743548740115091109612472037458900745720637974748730938423805296035855541903948332554909448999893270502268956754726823455563155922451271997609068761221799721132138524236011535296125906751687265851288647209122354050554436879558005915110324219152560942893920741758501258162074316783557135767390509104512818197058520988995246451030140382565876334843019406570624855207638159380344400163411151050873849560600419160236638408697718219813989921690229098643984863405673993629589788710293268144533907695717780068267753834179473818735445875343743396977828830871662788108983353335126441787517983262320705833799656459193400367597581049316076155902803162410811593547577928311600141456863382922790201243521046293703019085626090932711483633701907833247826636904388936091205145178276811158273490317159670523825528192764412424996366599714099065324053314465575408852735444540926630178242668473778097364660134651024572484318422318681508245010531892459949603710768961084786631148523833239724211076360447233138766536672548118764445976727902632564471712218677046912713549381077487792554780028461466192036212905840499685939445062106948830138644747596048871429221522398902457072780730430405209241768636913411089231782231179378923523570015795254761960891616011224275020651074019713560950756561828440142306310764140108432770404948741057911514546673899905289636228626724005586751785294631126622771855060320365083751652596853224445993620131500901589068485808709221013185843195235127376070651159945357913921010154430917180093311849302759742293497748801461789048946944527018220267862219176865004458924714375972648451536805853224179111684707322365845579240891508190575383077668646485965343107967985857152460105915466884027104663164849004628926622969673109336690370985801947007455664207391462280850710700160180306599950582452144528101699563964069608423739326584774360145221983897027919043660265487443967396363621163525533414733134325255416916302624217558368362105256202459524418349321615039872277204006856873443303503980335351989320961146790336323264445206308593021186792411139004406318945495433310286107380442643737250578855864812112936397151391390981232687521373465120157257263338218431614637755940189234342514415167122540938066083401900739353023712128128414945906912168350302752202039167382046562867123923470196063882051620737168425930534474968811468035561953852530834752842694196701160469166016537347893739466369684051962389942493600108660113489862230182168947809739613991726100213948491554233186269179278185289899354123308419590121938303563759981848220426381526867416771659065896945667529540625209639201786009076173713721651277842115805387003155490392914157565794166186364670157841106547582390277847397090462340249156234660638317182655946318360624261094375634186697614090959022191112010395466540684956295972108558221354971559703097628413028917350346445452918550616929205105298418392336168148482554812151441987808175426045689354805432321965484021606083083742968969578367997856378320205125567823027407670588614275680412908745131249064145955888092636878062581277428869671619739364923596868284148305515846591321254056858024121824987247239273716195721186286752514912003158613775362972742323020054075076847368278496836428817608368268729742221488956477116641926631637476784192805183205979679939889708238577219508381989873175516104217088665993150648661573480069514735627593761414863142517142211526337381064071469986538563638164851970237536044816720056106651665462454413981978188498713490648139089735056764432072138851875967065211097128658210540666114646381682915282668293157779497618060204471530774877479055404101249004640742573130853318313538027616265042827347995032507471046606620924796253438702589691735344032655918518160297900459046880701138726629036599562358063717494311345440551515703698975305387586793131515833270452776623339870673031975609319504271097764479841009142065636182259119149382933383787182399732187262397530182562374750791241322847443522693058126045239299550143828330529015689098882184823806978270419941722409603033019178977398951098579745389106474448276975523168210358172426791385973626829574434091825384199540515181579095518912012878685293905898521912408948636951189132594290350306450748949646346227370560067828281616562308517387254664466312382499384199760176195725966171363845316748517945992064297053334218260391359037910456967561772102497084391076656484418931071921507199864409025810166532785375566309160471866050457175828416574464757105803473461061423925413575318078634280144532289503865593983552456480892173854141602848997140120595305668315820192604671334496729579788791823828679394699859875687104717726023900119002128926884746564884070206357924255257451340220253186061630099049830499092669261716190830975136555882335799490305949786304148007192182590197104447652172664249497144578363687205337083467206615120316430738671455317807028880353277626097869416833558848697693132595452496190745426667523278410571054393470563329969837100301487528085925809923320157005730348534806051374467611233724548702694180230691923056616161617069908736575369908380100582756910236790992741315130431256370254299384837597564480895600415515481843163886496923483157132177370859824128467415775522957373943152242064225480757166948421692743909719952359654237328608638026823523573708733316607492406092103997804251671112399839692680174817875294026282907482126380564556847908737985089973758390640454268944316095989317934115395328284488366112506520740607987229162994473551857079204891935846957160415863616420223664302553601154424654836422652555039701379361501909550295334342653134214568741490705318895476528118016058333295317912296719924082185174717298367199564983022454439782968237556443629682993990712739041269628563123340931631471483929394764351187586043315116860412942477589716600511292836348833031192880074952178480080007782369975418305283467934368123544777657272902403782077712295054340435258769206122956361479549773238143525296172845819322197905976175071708916405789400917580811482953442292807227190566668104396646910386036220436822221081130865422498826867762562198324964906624417922841382708589823772596648644063707669731428251903620030252325592855544334193843486431207230849892795285967035095314756037476861992900733103561109976309087726410286368363577363075612261901053677469332170451696727207515068938559073418964669243883024365649031409035659448911627203289172468565844124298191902509535973212943517234482543395710947082011388893058289931403804363671907544913531377597928704163946180980230519607738192340939799658836436494329747507088524051747713061238159688796067582808093992158987601973054562989941671145698100899420707347425821000597386705150326481028993805982960632713278683979715658720586328981037138083606809070671582158730925890179457944569789834745169233830003864422204602562936288207133852736514601520473017424425347348570332773666425981615172721191060533418688276656564111655688944091201438646672844193625643254808684354654057331530698724749682394106715945529816747470654042721491168083005941746350561795737574040862309726368821859565546754183922501762848934955751944040346650590785361271814393252220047418781427733021223454233428525401289668763764285474104398460194324385643270888308594101132804250126749680528905106346773378427015035543418968256346699523443402266695642884182380362561588135721763779101048057675619099280911616645104827166928765948632782733417190117030714657171955066287244042316703275151490327951117057323038669986882994117714834011947513175397417663406178860504751800943328621377805473180311817389797991065217320778905808351688003581634659114319904034647007721514445941975017242371961653385387787246300583181190659079445486133808365288779187123758895448638647453992616367257191617589232747579222343457465137301737272642113553853744496014362110923102164540933206670385931087209708557142930508255609532718880612786913519789756377839436785559046713905947443849942267508812198846838321098486679773394209231908784243688134786953333481953701033127055010776750846087296293266924162488000374415625521494878052564842940308635314113309425473087232664669086468881346376522331132786749378661239651646667513088988904367755086079854053677521451401391435095554761829229740347274610007684453608379448427279239290145727355688559553083646415979914021986489260131578601605735761602331883227832410510872105837156253222296718564479390324870993241307548461214396487583683390324524581614081928339341667242192068048411991266650875616532076273328561426025831028477461153582949699117294183425683359526857365545843595794083253858884737555032126761083839868782921005465016835907066935842318647817579993809293200056702276363355840865890685512949286566360195868538891439054132163002589492745784177642681850467843140536642905845751317398365109736126726109132282664611309068431579041836780726113448303561839394501441250797572453023117547942259910069424152799105793782817126735223350403830965700864326982337895911165347956035315277127717938113105406023305456326515309212549639926507070289694958922385861624435337082341886176095486648023687999709872269691240935575515180635923027686069057334761103738396580847726271208284273073824690669327421603175182006402167600284959607437242207527729891569358689271277962356977727661373844028679118243891980736132147650878114440660620542497457673737665318105498198649531390120955949316472083843072117629176379468754726279278027804200218455789492932192540139040755437309740970579731362155852182706393489559351247155540326332133346566572835561201886009292345559207348148484687893123017583174302153313698302682129715984071346185538298464954081684750085808361431587284255041000408003669362841703949905311224678899252825657143204408802923715549216338979756333175459748592821321191252360455540014698578621907230526030175067951095682442130501496816773931916082210855466507081760393440096238577697264652079296999916215599514466756702498775577414457958910788650062859896044187677929074242533430956060450976605908619564869776091995033018881395899000862967437596416658970493989825826081235582938542811290280036598221542505550314413360929584549798814900398279998343762561417304510760594507999659458753766313136796923504779404561448181129829375151818164534980624982602089046669372656000244183198762275929568919595420598023582290634161534416029456541876154390527651681003014029415966458708180045517656922443687574451682552651636454525401412459518300687993998977653804930673261944643129516660462025069574804065815150063740579103981771017550395976046404429009015107730817263808525070013730231703764241094041399750460173836336561224688438469535964788845092091636331154505854124335800627270909104816134797606374798862058985100317867247206986598451144553713461955218764965844805748730006486813878267421916445005310769101534401219113459006061213633852314776490162073395312962350960115635368618442023056429426738303414416420725798606825654508118597599675391906010609756346175391234551777937855888575830636934471416354412367824627591485334040444587080917082343220860838630018655804218179776421878264627796801450041565306224896443010761627526952952841115323235712599392896790982826615903818712080654258157481277745605810477246398065420687915241824183617217989343975789209662054358195193640035908282264133571588195916270480077614918417675285972114262288230729013190581274243440914156013462000016356785177928600418940209287913055345939514962258974174890346038870833175847554595305099452056842790839626267473323293237887185482163926267712180018210972140526758937544153221147737095954177969927101587985797590797023724047452239615417733511989944914210745773327442313283927785667214978951534249486558295182315099589057223140785665010167953240728804720111088747038162365368511464221141144309254993602329740216462135835493314597128179421723127441777491479095910897961894649671297895192117695624905776677146862602410261780884623393771134414673974365315913698611184873843214720184618169507677572573394326903835975959467315854379805541339936444394439934546277944333965965739427175702561883084088438352572104094694617017929758983087101737606622387019626525342299369185858964056118279344731855159558145229968342893123800078182823854183836847140297352937601632012107973914799737037844438741047144721345083037754205376530934823924985018645054069495265079241980829644891573797436014248558016618380588947583808041987451755591335969582549792568574769159616020213536568428501572685181559135376240864890926699959912589204246780195984854368803973232422195464742315608784013867181624357949787888313337868807768128032410773952136626034616121792407134574633651000233243037523517396171868149662425703398518018580780413840403567105077227223392801545605046909477339573071101868723572035121944087302911710434459240925749532616406503822337048222650915436618093265414465974595703666471354364910381185351102520285472154230839669553142360411213031672135523333174049816912187416752969955959678639512057085532233392551732451789498522670438483260790866752780151077200914358003191844921081764069921142424191156644005792624020534051088602764501290386393672381279604914643513573026394016143187047282696496426604238666660150689021672419744016754007061656999770252140161994747723817710225951735406343036371986589589532644992335911213642287405776646325431415197791580457783264891100504490242867352070626051015188708428775257399050756002504764540655536600437644938254465541155355107591454724853708237791836696039258813124628214714443113892854477833287100360954156485781513415009420075563326440884391512170825587168827451150670797887376159711936042007287565282096115540935872781737414346528679790045724529206719614983836782716681903678753684379462999966497097201274354726066918546357448470926604376877330485047970341172521569299795162063775660397512405895272512091584708551208341957350648087558494468145897700461970293465156955623130425520410533451749728027942532864404105337598550980575304350796105187410434533016595897056022581036019529639178855261715309055409817398744427312870730612712224480072485441907502619027069574516576126941619160483244925995017292615045754448486468377700281769826836810580685448424388998505497164117056274536732037557926935494827758591228539359722616798675351201776720522136661145816621061141373277348093151499955028700638078594623294845710357047200818913323849494891370690362143293399925343143638505284021906443186744047279240940136350624589433987582305861873158233961826379885811901872751055454483471502450560891412108888548390993273104903795126335568311555087581099833845991097562111310457478488990430760507547665219810615368105368887116001186974965525818446592266859473163066815965318813975430821612824122868242788573361450313420496564978096993059490845168657911972404581218447966764260643087866737968294074405752792127008220894643312975929014125807634546116462505213492204643894460501642954797315059231620910836069312873810945438466700239016625341351252129241679814449210490121140044675112036713071901387637808733971603530737590473644836904723173469190705965775322161289656167545531225990635507555425863386960039858779387217370936294746083090058878912399948718212452778449564916677083522352531406410933488360569702541405695124219670673364800188197138327524131004699960156670680190695106136703872089320997909493515602618682452773321013050869883586916134165076398466653546912163759297816881198255443089585547992410578589541753545915449949603226959769861582796864312162882530031538071607932857004729994694264338146111072349726176420423318238235286798484339520382147245823268425212296662757453330130795258092283344032281295711101202753933266351045354732053639719133479691826609626592848661638512276355050465224658716285427190479597103199499390438207408667917854396087441390700725196445879813469787303527858610007823993488560061455712070918300833925508161646667946611713389766716356380258221322063491239861488883775253820070937126170374127377456857367313195791096706762041584870799459282091224389472394430469573539396723806695080175649492266511601254688371236154911643288753342562887251666741862056307169985873021737554272237468599210482731780392188932472390883565016608931944957757872390293097883315159691306812421995453930539882536102107993043993338086784323432198236917852715829775196701777145494395067929611418294304925423942011922489559707109733004357707707943811120571528563771098039839348264765272725612693827936480581576022850576996207794011353228341668856111199200751052843609064138599009387839582500636750871869790438881788579743406652107342154871172723815822370575333409380863559348570566623098691408090222566864404518892028185740336347297698885084190547659968276171325186351451276162245418505517206157736732849816059844245738789914165180397126833763204076159176584846492585161817332629025797924797388944702492353126813169388843434419718116957596439446216472810237959723383272445091545077973775456361606734152021761262111928269755371289867293190392129692054287024513439012148251768194247404436932927752216717633829604056099849769414363133549132660505349497501191075637246396745517873705182408305183301147465076448361830550258259647101536480453576062002514402371781288617886133897298841367163649341601267903201906987021609097710818418072316700747841375134960925496377631207859034577006776465133234030605511193993048620358048422546165049879294856224773607348524916406257988182639870745259446648567850057040511399215486669341766760980774818211093549734451989044449115485304291420946289983227478102930927489772809494941088695502711269658436131118239571741359315579303149804947268313950115693188606850743210367522039741480210457460757545571393160370938300499996998173871991325854685697355328320534789371072910047632956799241125251920645315794028230597411573278217453994589261513208316494715142011439122841714016309572761440164322107709546164106156215192494284539545021308607198746023401425751628275425349146867719675513125746850658845741452710488459209651697379800514277445815245489339573584559638628667123314242630928201110314556586572486562825257915344138206671672388879147569748409497848866570558060206883017667134398036797228336229835317360479860044206732245594709029938099025138568345969380824878103156056864658147141821561417299046326417494690338117658511510612646458150314774904504251513164326822676001379496452442883102192128430924890286140203571200382232848464791535334765033443510279772072278338238913659287430401926414900659292426748520378167147824682833871825962804030494980242299383295463682705984516469906728550488954653546337708415645055341724526799733944165607652482213126998828112391019835914013380993912098376135155371216046703797467299705831426436231354378933934656350873519085912968603888028389017638803815612778695152393221191732016285154974229497465997102660764240007469086184073601016834686943854258995592358568885906819060875438889521807811812146017541912091065032636528331277117184037518003434627316049057902353057315742159022565119823956579996051755891743751139718554464719728654605911980870872152247590292554367309821902379693932418486831330276079857209687774856151119395395918720177498608121684955467866424966824030560440626910512999025139707812761504968257943958504890580889700886832130867068506448267757266847620816338540285347588554372972328998063922949556867855910614605482226888917327386779940381644164233534701682025203252681325840461522496620331603865800594724239962157822414624963771894265665884374816534844652883917108676413364329700020158756090744454142029421849487080939683571916124150583189525508218783978000061553914173739220335539295116193514608169881861561840060714701424345536064552388710664310350861494342120256252095498479750991371023147738315349110260004832738616707008828852987134847875393917335247013178575372953212934966717969726046446750200305960350489538298738649174636790410761634030294489940986270473547639821590994930121131923941082488855530800686022851259920806341858520301586278958180557597902901822170282872474919332496208446865622414100168922169203428034558822467622866541711645866845726830262832127487528198431742626411417545497497881415070734128733046697314842588729181123220580900519892964875486263444076502448733853435411703933356093728751121450755775109522801504358197983680782345336167112912503962337606689577457995257301613647775429290749229939243893109721930885605984106034910832365424455309016491777762345563384397347609251927726940211209738959589726761767501382190713133028178920796090730524195129791328263202846511756809744704486892040427638637863912856054072339836905292683200082580375413884914978876989236776287454610069420440413394001466241020218368981551665251748622622710612039894099099807713479828335253879404788745714611682518129700268921648430586585212111941474979816566939815374206077546873322398613975700497514026083492905397733601015438462433396971182885619356139570470647147555583123057321282925721423449005764906192564137831965476334220365484930385538754553147381817334795885475143799287243249759358802856892419325222678319324881233602802972414837756553044435649398519836304245088164217153429509952358926235931499781237319498837280410080374996355901509664262546187832969946213505707292804484912919744833629800165683038938433995555494754548639975952034162478738162326307329932868059546079867621707206089676439816535917780231327424296181259826191010092239831830830663810563010718023735803956196117738357626740441313593043056598621778996118042361073941786576814121709277435256157443337710101673404506349521837489807664650261646475276205989619220407360875012215393350839254626076117074937473875215167575074397001598285278344666326871296412616319085230159267516319706203383709509343361127122588763977734380630355209758687279162653913345016139213423404134796540297821822672521122418204154896916940585970108718988938843297022825383735488703175300445598241032368023285637514218316284351678894516926048981760685566914367605602086488624290175943979223712745472598111631308967144723750543845242614752706485176904230362629100329827134947011510960005782282868458740226444326521780556490803517091976498765919665777230805823069584338975621325421086702005670131714072166562155687411957554827621465267036321081071220122339968432528279415538852143520284033524193353214991291796568794891023463240602046442437088186103665470303028477350986300871289570673137660996467006808459698816091492171423718566166678933959864036221565624995218493524234943053088754517065277051799520567406324169241226856335088204057862839487378427943518229360210889353308887646031013250745157517099077405004538753930143874778643526954156349263979634672010905180217209708199724353889468707592499573073863444100753890710804947689053285197142455759031292445284875357099658337100794444589139272858720203230200858188564531607638669250712174547416977514243621580894506344243701370086621774636178898499923869887706890155881112022520152675463052060792769216663670405717986344769584058413222945461790077563889493238712354371557297210709588062172328975283510277393491489397567911858147695188160026109728125283995355974626491014225942642052783459041925793847927474351433074474357734152529107935181952447487821289300913224199245373891036071152755097274885479700534023403128968882468408425290763907668768273014492581679047204650067617733610169075956808896473310767186667298476101637526279327938042570123319109482372144036852090194644524057652723323259048662065893758151687723121458099045128604749827815051022554379175967317306521878240277565796985237110925380034984457792237013540794814446331648770453889881327777132842656769736645617581326714143948611631965276217898267156836350599568480329808996556019598798711500453471424940219647852661457344425642224669175444301600812837136713696457473298605491079147184531999563138509976892387436604023746714600672791313478808609068648573011423301430765742659641669285747224651447399012590084238537291882335673875064515599691748751918798561842958644184509982163776531793664103742142876567968317125509073474094974711623087185893612206308049445103837897378977086832713911681989354970559295974154050512937417732365244504880813138538042259035915231025324581217868381200848579914798855247308933075817584556381209721723151105602493462912204098067087672822534508819180646956053452818560545967004636528289925021913125922809749642367712604429160179630915144831329542963543096491569605118553401830464099149256457401621851238467024774978790156325431070482216950109540095846851039830444977624916246259420610617668063456992273883015209739080185895165079403547671344491342830890096833187099282761346284489946442484340618831051529448490164389214039927402914413753330161104698704153886142175980605588167652307922493410602033393311306898961200905780468915987580109733636224633931977698766646613589353333008030182792519575117608149531515420065482096966710199650632793388661700678837298219097280673837977063249442194168708878521129800183341690080476894576153382284306159637955524482214899985304983351207246957853170703948929270321204474515321878094499811246133035987921217648164536464749272027526632612635097640063513695376852345419058228270174900693799456451993702061884397813599603865191710936954270823387053659573500631938795809144473952475886415318915237196769045550726995136932793580178998217211876705499224862099241852716837554945081454558946144143123956095947465856553465682278374280363201511530626591754337094679809849505058332378142271456027428195800022628482845961883126023295156259536909395142617281019173144570640928624646514565794952551769463603543037803207473681299996057780249490201105854574849174037923711289465121845038750683397807177440194217724028917623668007323811224000457594813205266787778319728197952283105623210702488135174895823034200428727290983178618871080443778312200069098517808110725655746090542805146016159891077591871502779525350172839081895323167355516272495624376877262550682711219431548073263110314973598866468328342997183920123942299465312174679065458414357501328934258007656764566988943540666048009028186711222614070966010242294127630216004890488151796577917915515211062745074454944724423625921217315760329405881801394680765854715587476721933944020564596933393373146535566835521071022382835987038944990641597332820886193939021839492548521065676303197423327836354607330500830692747192378388187713787743699281772138148933426741360035003552345477514418996994011959773343985134795692237671075746992837727864927116423240794753346204609520747564137738177527873202911994182104623372189160358300337013635590416957890495791392422956795170333708334814421406538558463862953729803483895034156879024609292039490277274480593409791741721622602753823810024359171519023501500171053537187816002916236241090078160753649200055623970805928189525890318479286895909668894770687410444919569856104237053916314544478766486851089739163274224631782008558876943281972526314196747605366710761233224441307549287440273956908378998975981416360876963298495734038406938268533251042672857644404121314105277393600054442616282590984265737927896923918872987848051171825174514130943291699794727044607914336540860976935867118971253052963077152600207472280501242881572909044582283147817531991374976143434458722337801254539482112404506231134558264189677863094590831353276341354063894603301459942932547290566378765638617334004064535902435365074129402147398684689278053410557157219899403802958497543820488926934606976099061609536756439008484802886375621126356128041359376021958552210368208443097154642671213550994700889003794430827827394736675805945449990181224825899239771726685909405292650687793374238809557061341006298009930666443621892726457318492488291182085100678348505209327650929708553762769640568261868975422886196781262706670822032489973086611163980344015150821471833145359938346392884369147504175313300393846698566090616688008371195836078572080898224897259089256640020856204022591238747080720955164522857388901265731991874441500634422966546436662268401955526757860294469279886911666391744100338227452663363962993850017547284549346716211840272914396354919967466643212467459430065026298065422000482040011170463932642919838097745480711686407428195920615670608084883179364249373822633728848923362729598156966891265599515661357820483669930189644261155045981763760693925751385437936125422734481318050347931127424687234361571263628756647133667787116831029571040823884862413790560262972816936148275870066752640455805475615407550508082305094777149861236437630547100048708493507143721574208873148007224797225530575085773499149743988019419074873622076688668597399080111444154366676263520297589681285387231351428475609806420433683871539407363283373327910937192152201226160351757504083933429181313848750445569117500690877289822521946567488945600610608943395912998173881992972875814875075407821692996152808035147789996059171993305795344306241421885396861866997877821036216396900440890116140992646801208034585053367109524167762071634888120890453331237759159654601262171304722146816718657249173437511578977083703732234480923240726144338380777353740864919401973420861038167325490718047060878670334434769137181244906648969905524966312214331663453879567721425426685103608924765642042316283901122650297849859840510469391273362405591582672638635575786346846656693553024017619077423949410475136394747689959397424374119200947281634098049892118556358431260698065128178652356874079570834542661429904880197644890513885684377407957559757293056285510494202635332225588338072106561136533923777248586717563406002142918432928305153451116516065587555333542573593374185913919495892955586042959193093535301446269684042105388565322444468770624582735931013046692622833832020686902408449628110720701964230378811227100439592365173346561479748451183184457775016925192924513399813422341403402962844523272569500606067564394395556066851991158265876271089901400001496958089098322510932150653552936208765291203811062782083222401880219463488805317198531585473369073351799001601553695397703936632207048308549794284899505107075982398659564039375859125590610467762787217341178462444808908193287199261761295534969196963951651975378995961306360494347635914297493453351709075030357506261506804751433647712477504584012882299544855611456180965098422440483459335821428924772160146489386288251726576195696813219969463205261700702582265630207110028815295036331571139894841487213867438180493721578998001908121393554633211379868414350826066902083445312702588039027233582367561582478071950253722786316441499060198883903324862160273243485773631296833109949493494018733259176559303885921696297701457746667471271951818693568423631958017811000264593853114278565261612461924362283465315823812960067858155395913739443247756623204685296064977427774118316901116074296683271594880881007425230265068642683769456300528580334351606389334232277957317880351861370850481176060299925825238009598641402690763207905957734892891009169639553618557153814330767022592273290374144922617737387948909002187050830850102968754762047854693523682651575480821043724116626079404657346057540624503565873797731233114297473063706225520934384728870879945922113949379900710835258244612018755702534309474650510431133555089048918784798846321402549635935549326221154394875490607742726395127427182346007726906554017515198893739285050767873258956138246914487294938170925274432697444875859756850443468298327455961748294274566534486774553603121963332992693186270465280311930861908290727196297889549844548901222038776415143235298636134632588487594582205297293252262606579404727440248784215154420274020348272541935915124740938407645940980721092454156178207580185292246503469724502782270082662941691852953759564263083002556778627950906768986199952770390462462645382767999463873035850060205758566438563662521295609798857194702961512422977653884477381984515395807816953126974461658445218421926491999232442090120270295215029793123483740837555782677593443562678415956089772077274234881083706290144126783320728723199577095065074359167679169526269446902848866213458298947743398195230984191033751261268604427176061539077039902776512202836646048883048593937524411778308055379100352045598222115578517026798134742829933753200972828610632143708715884738898905775782176168766630832611703504988907157582728875739108279175976146240903990820277221676833507250287217374477484747850175153360916056405866441555368936536314210355604796609848092854488285849700243923303834137161727127660217461685709302089494297819675480424785179220196754862214879812792204000578177209227369193192908368322455772754878843089152184716544622131805446910880105605206399026551336732703413194123275952883437637581210021820169545259535499571133463243221330355709325947557563356403668857296872643729486308683866383678948456905512130581589036987870350046223908426194136316516136110470599369952644848695340323989225289713597824951172366953503663827947928340077559131920096015129843458502566828871290677557773164019367591836700812703890368728824047843944505659545669508642767877570291906519684266448283945804225923716692869455734012649464006810382476489256733465181218170968160755525256251242893504875345363014660161466316624392812538851078304889474953252134089955375581880039924310860042962330184124042646954851389706714797393483440844774627982146252922084065170934039737772374048552083287408755811154374067919346752991738327450541453976337554922351366583167835152927682644780421962720882983577772224187778783981471448351146935776381607552010643053772906283602448594157931790806691818587143906074898839745337143098270184331634902928520440030287947915868816669882519228645865740246137862627396150368977008710570628462705748228088586857986725461022610943747947061995009582019247570468371291408131101671352364601796957065791420290869112677216778921210202023368859970260353173016806927665059117300936650307701439290774642480888463103503665513812956396930558548557988001298991458143958171375812923945821772322878392824501941609781233589614552000561496523201012019424932552806133743889045868475337530417200271469920450754929914206334698506541504042889468194140394730515840686145134521558467711110269211001160958679750920827368787817032103645712377849684840938084222435382494020939759924545379249487604331077463727247627049598539725806690571170712529320610105036422804400813931961340721309119878847204745896076856123389585012905968279266418615390794885461953198484768012489239351999114286455179826147828630851413815594675993330098538663433612076410862275238708224776034677963305203804879969398591265345377137090794801079871042590909529776216282169873137402312901211016295997484535623075883589553415069449002911116138357540668503971454860784461302179002852874611011576055257765996682006919919981956981612330022532748366789670209656715543666211218884815454773747591118376576649147821259892781910078476792461700057719962322830240193890662501751612792312363690297526293844637910175137548186503587553184672338031670782987681878273814410601013148237177264107175791154062531657755588274569244568329983251035229263940325418861894359015551585885640911751636400000680668008299765024751821496942758774043220724768760965748449693171116933312977933518535494902537406872382241391258919625838254922044393229831061776941265991652064743624327495448908346620089276526206761413543009279928934228948799981677988670309078302995324534608837418389741575646860464515678685077779075355942863007472172275128354962720728603957274525915871093797819072167133798825977469047165522987546181604667351121032522093709154597528731821534566285976380400633142512431024889153012349187422392386261784037114253076221712790823675736844339592134276943041263122950022155942075755079297596965266701455795496258958826606884385030739099831140315322097334809420148643697819225294004646021010723404753181270439779939783710587580997024232071832147026487735414049161754592244911728469314876507010514180447684701093137002302777193868986708638519934386944068414117048828677746658378142168302369405295603812911764444431819071794556597591658737322176655085828926765800830101414597140817375649002105561129478013894598129415036443258545385039186462522072934158715434401244512715809045579583397827280055983541521985393829732853537899117213543029235640958695988805881160090908213449049643033855933799331513278005028476423514830667864064044367228425741404916281805432272104425284891754403865146354331228718022848838911615752533994799561009635820740808533511694368678166180723964416737101637440281645322285506686292461688701246693044674583730721159443699106800134787427004603405548723878283274739421623764194700736596664156813056967148857746643489573728439456858887671594649860114615731771886475909559782153441413883779770245028046756713653788876432725846095150075300787032442793231988566831964965924939971388970991977883700817434566474621055972319181775312563112346369625747956532797278740250619656438397570901483260686113838896473685296490448400370038820779422911886721394753217193856402539457469650339453941363733654575346600239673585858249899893163595638469133995503944256937378530323188680894491023615332783372909526436605286355516007329571433986148030953271435682795142020056373042663239853880717995869441074254096173082618777572339474802092961974845814633531461262835114187088541227304460903209217543304569137405633090107920567209780093920966528298288319023372086837478240232916468757637529191302809049265322803781840944939836035628912015402968980004672719726833639378723302740022847301861410530254964146796097852659002308338922953148162231558254322950761564582952326888387110715591319085232518017216549887206314487670641722359771943711611318177669567890321728363353216398202631180555264820110829916876440911759109030851796479156595976692278349924925135929179291550802961186369326170202345044807499538163937313395139581300067742714952717106123054589772077138882105972997999982571128133060626768036587367608553715738958872096883398040455888348055579263861724001250690492697407484442381545167647255341842541512923655917756141387001335893976729246266031339579566575843196440827351870186659208117691650480072417307262360078253816525925443281876811575926126118819301675884649562818181572559545582599375186446227291617589244604404381934167458202726094912820034362005436778502843262496990558750238606798319911651799884054790450991248789410296030869526979863630837296257748418296659002241501777348401753461754797192907514892359586234005542458281856188591114493174801206452425656431620934372293090328492140347992990621283153471128505082972349512625243910678513348592112726540870758306748988010792114542377473088395711134489497734661383258275433901600799814402775314346896788451221757055787860717245001009154759468856154492042345601172553957398024449324860073948212076137435778244538403430090415954922156780961986987397194890955355969040328360230682513940479994322691616041366704379692297078581690789091275365222546418614481155766086303193662886471515164610040412650485093428340608157278131252162127500030410128677576221623259577255595216101732053687247649637988658807197410957530506981255700873927721461241384188711354477055805247068480278736370815244532740235401753386060127253752248539322357258311977083307839334443042981208268131567123287102151849760687493669922734768890779314583163434255152744927023504230200413206170792774167258545600075664235856991953436262599414273284131389261415938684370255993182255234085546613044858084269529462647558967638466684898129675079687021101889154155256506661421862377883188445204669436483150026215125540329695535475109617086804611816728006673073981426513421856928456158224644449754248703698127484428263043094960955768595351739085293084530435017035968515632013890411930392437256209624690125005856386191317653471928397518197092361155998155447977211247107366118830849392524385677680474241076589159816405922223878794104297866097007653672987173484553152262592912963542151176099002313492862150171557318442062428794305069688832056516142789988054213305758772147881264782155492372790149917397961868783704554923070368446155822647786709773184746186917455269946923335253692068862292914484851638260331036812162070444532594158131801526545818920685222829417253215631317223592668412981455837351724055095067793820159335408006142929354636632990349323724252280857379260104157714119880639860019622438336906322343235535515653252274908553095299380382167099015620974771575239521416492491437735945193748636309801005850171633683834848384797529449699549410387309981781329749681999000256134248568239736653579856041495997902325439369268619138781434050187429926170723335361187276762219499038684742845029172875310014607491000566178442130479094283367077071583966001481392669761048359755297335903264716452097783472872645726565444340059168193275973864400852169103419436475450037371865837175907541593820976016402525786353214698686125443680728391484194964084238211287098007099525901379093103397686280926488612021195270867543044538262115221993520394679317748266046595631910096071452054817489824229610477248266011905409611637391497066175884111381958751503752175716996257303036525398680612597685894501944582788981218652554821577551082730352459656497733944289893644619363867488511228273303378525639169081628772048463855771411004437455026686111582034202766625873388575617381039953315718667618162156596795756199499115857164143127587931059431761059429881972566273344676602950015306257517351487360925568258086138106688789389799623284592643396837173049880489211744747140635296656770263065298185325256027842163768394597363727555377523213397119145176844863287775557739793114210043501924042011041309596453427151894102901306827676317734266757048488109857594489306653920281956253488333278754080393930841444195423644778265657976999175907604586741167202712533852647188402055436120476236735353973787244115545179609049131485593121525005515442954213333094126652866141121366343598652686664724328434011619641005289626859928393079162726491375449236078268997033275740316271919137712076269425503937612285201003670445458822984771728059960750639951523718354609365452188307928257804893079118167930559981686568800194005085972249540978313247072593113126476829555504555192604835804986983134888108713662272835794887107855631362783995248631003281256826908968258499218957157475589283526249201482745311949701107337484157208227120016130329086011262490571723165287428823267566774727500984312856479926360134804542555782672202814611270447792850205002597484305536874895980108148464857280802967690903990249327550571401657383858306663803088852186520198872305423931367201599997510108026950433640284076749253711356091792680068136127200825652134086165159152065817548737929979169281846104636566292305010698012772107079990814822508839382390973393872348385515742791757257730741657640875287115245042463669913208501308518488866876945062000448220907062093306126005847312349979414706128508945736824468748588685157403391489225718568667610246887441404219475807317312715741827665160750309367671316717735570802685052147497498103789957621727771104283928794079148760800386358475562353494960836197049992668488248162449522017607433777052548115898410640986195439019600719659911958878880964613369924963284643978701099427294496673414764664455002356623779487799024412518061787659330160522709437061809972885270956211728649280030904452845062691208558494942653679765536036857188837957007502411301694498823878812822439220196447577630400823892933518867504283997017317243217170954561606323662242868492618845873168602005016550232458556360609194245599077594727683636768165269179737433672393314939326607065544950408571389314468081253024016478401972604742490561893331771690112683596171606945786794218374065617108645622985324770079807879498965753662006000384858805752007263267870892983813527079454223848870074301454635171813249121927584401496473441539833891491939635587702032318370386173002376786020709151677811269940893847398636755208209116604188480893585101430354210984533791425004267575446549570819415694650968663007436057568625346342863769120811511221166046985250008862530820881753736035441391976989995184148630284644009362327301041790915690192279053350601257721551271520257579457644887418078129858738174080162212108456298301948503484812338152878385158371323231548166383035120302915451248028656138234654654194996850242306334979787713904641070948707453247561167287209443168306152787095908610598854239043923450800985575294644276897526637908070770618999568602054879461260853678518250231699214958758507126997556117189397806589619681067771587295387238934000755206036638489685733616713656323777506202761078953652460267813978135882321398004278520024196855931939836770905442145807735544937613220090143335246003906427239139175938095229287504442871292839408170147776535446259459237638647370375641810932552333585344113114831727709761631781171965376794218330133233217763640409941732757904417715828001377453474110413868208003796425827061300753417701389212019978631667501110109610091519486962410737946055655259779590680846654204504306492603878004946120740800153466984116685871090518619100523254456081399166787145969835090945892798210651196223367667114814665782724180224837219631339129745211582353795717432130728429343810412309714588622157694267378310141569243325549782973239765035180207948224433523129146010711002017119116070132434238033402258471559300256777411394004210825651189751537387162897476258407915338151982233721392301361609810344778367143328759816419263564653746138027362130060195825089775967357888096024033157071820746785072822134581201337160919619900084665948650278173232646149460398830363265471154127309834677754446809126313275552694599453822146827733679435024415737288339392553645450030253469559800896609851922438179669319961512737852913692864372800350605270380399721193407348142225171610801930498818250465652800362042038694370356270939105774214993632329093663998670747922575312774958855153246284112301167355956809124582284767141456577083865889177098953980354437169829498060206456298383063421324188507453341440646515357881455409582224992838934362868444511110578697698726909522345368274094483787741914582880682783962609408376334400025586595382222417566309280772018873003722883561120010491981754399432544286268013003921508008634570011306271478676476373712101045407948593650944170702463525748837119345537071824706133166354690158401159827562395010533993446864362591469110654437678115528150054110597313041216525752364697149009091103071142766629292522812416715514752659328941496247159955382598853307275315715089999853145278199953774441921812496904226730707581026014148697074230264028094946696334086256593268473363676151486525440968361562790222342994034734817098776524382947385826653793177205508464762189375822815724830392606156692850287337013380630370073974653110746287872121489664253776857948904834364107511528642569325337870957795187816596215351692399602152915074359760073852085524881584030137506452987894545553280633509948334307198005263337837086685864984992272652078995532756028926943893501452179803122239212120782755817047962945149544027991804498583066007513358805098415910354938957934063274668086430309930799378187949357796870262436502829238331261363649456845209045582238592098259905358412651836324453541297153279927713782295708079961448024451397928369619473254789877103131053918155877451551041711080688288893610490212156045832479868201551777981365797742545472864765708793535650672109899257531247803347860823847729282844450211908843812792012591828162991050290973746760309268746789335506973377730520677558454291823414347417225749321931075857235816358746553781885405440331518474849453684344505525084300427357998274450661997234479156736982559200549433541785368392327580567375078312873994318947070683808961995358808007169269587483954413383799408510967292171634433878459972744498475057063973245741844880780273877277754320604692625330764930315056860504140897819504701772015114849899461611037745685106470076467113667713508812849570685637587623768896362335298700212961290347899271741880549317687287248452654750492932475536651827250284506772667209101229379705751409351930406682906678965369020927341793295538658853348538348077669021575230774713862146656899243202402699026588436114995314004388760772778865015478339151409077066295186593886707092811046516667582233264184650135634228995312741770277582991080546234022343535419154187085105429075919709973380949892754043899539775786076520079698467729826109150532962463026435343896401285288662979360567898492354133053546641842578746988638166937284206157762006314908544338620166696374714129635860304835392864342875641388573658456685584667621444225937694010765756627900854716783272022543575510625112183883334658806851766039119856593419383956482230232538752443298445264065973106639795367729596152091045015258325620316196217188635808945393286670006693306691848143483947244085832735736997910538680068177988851783015807723727642692607996841714524400621761700931413630173017052164380795602951400517386355581236212239802107604571240387545207424580285239338292240141105960874520704032609177459077808337118436462111765209317987971467855855778954765490462311274308308817451760252874788383106067922735797773260823327180916122997060363535604674698190458311414824785660976152758943954976038764503374654355128197982663109886238900384066838139477799855109082876364028713051356903472991758096550693560388102460442410029449428445658652285578135560233769592012067406468932534832409176042447990686289648049375686545787160523110602869470901554834921223699210031244344839428529448425737683842226447214309724965355044568669761938753591504065473232653170017136628334790820374395928344492183055622839974616179505378518955515192947405353549326666161899312889522061406878727086428404579320481642579463529855018317515123919704534995933036750262453047865442659629023541573202369896914075534764035965197134244120120019163188149870112323127131643904748724444218590853635344660557108022576748047139454409294143044735405718613834943989366083425728777100259474710501745500050197333778245416022627119012090999895957712411407980730959960973732461752079823737801557305203247603497398271059384916177382679994359113104787969731670127591056142710423643892588508260710471609176465306108408478294538506378043632405803565340337658473252652304042026899814488560452052603860512211049346262282348349562511232239047620519913568390460169422180671285924340149347946544194017974707942057579512761368689219332405502993604198637271389896287035576956903178194499891104981556627755765071096555411736030563051223236537249220857887867931811970315843139929700507582092859038786080263663514432908991771916337384391364352281135626226236978116551744132383955957443888797741573953333333244321117378112357652816413404202850593371929932858527633243489586593201315386589828540098886267704341450368791758734302927806666208592765211437185359029631458856362040014092673879691714087518956247097331741815476075814474129304691538979739645461549490555270378564889812595004231881933850638303457627538282785018842837872959167179482005866856595558466894110946351611567908872950767408658139929923515812755355503616946690748212172332755325188244546403514868346037575447151591557377438463310333587740237940304179056450699277552878092912188204782932803038938433291823598196550283576832728201610239192064669320768461087553627881842436781048552192610699871119507113430172091255569017681040192040353772253384929508716700450369218521991906270694568161380731831249508615457532070332889430442295448098804224768935265028738307273353496171227950186959232277614535290788042024677560883132586152944736347355788367955406604673002411795711955274003027222681806450518458507746313163789824979064144235752482532040731891994931127862328941877984987177991023404766098433771707790040866897310878473911199084274562395755832603574315492930007155762121097726575043472484478031433908216559464478455240984652066541093960122633572068289002778856482537832381458791223065951122835025509088301330042035596417937137419046019624337302872500419044989173359445578717537955652854326794824390751042696504018296597475061484385223555148409221178953927064645364664840836967496296539105505195683248059130590810848473460523527899552244951945304229273051142920953694899804425374877345929279210085544367390792298398024864950056004712580928323815714807352384126521093555112431588282324980820999877926663116010320399639927900283121392529431651132776383091250425365891590040581104843916204402469596308206349297596345700145786242189372832575626511001296592129582043297379182194021790799435922387318199622331673565114913222734484527291743462025497573242630887291484361477571638900622329481882562317979419144542625388940443199284191875989313072878047033753306706233323600581278749311584039340381125055014786393292551628686781027197775925569658160709410167627929654600405091296805868294506004667853960012283205266845383310296445047373756540693372358093353170677939871377049865111139103160718174555204526569101017971851119603926646631439980079821700807191554766391697146172017566272924955747807402928923578100444009258237830844298754474966079006618208011842369659856637020741336066043463189891089272725709650037637548575028132367929526827014663226342062068058056588951594087376286706025418305572687088176494905315294141758039865733765218122749629215961779833554264929350290963551547980092171916836954081410219834992022095119592748174233241825345528931655409256939291758354917110100907459201180028983450905107788670541949613092894329716630583504097763272888270160727944059427447119364279689416046039673425967597299664963271823338633937907796892063351455349559713105322123024286323766469881957780358836323062373390291390459878436821050242660666952683041484202685529643537429815115284036054878052726617121392203489019053309583899014483060887760448273221518434311275573205886396157639798637170419651558578090554855908898057074960670500411929474649469304323161009262828045320637010767728677979057605172301480525128172691976921556131278100581880823075487692253681715758081634030983129978271379070011245612636912153540194827729959846484209323660345047300423296499443107725538570200457516662979179352412666122992359800860123697862285709657393675115039037109127109622277183317821446550593027630611494874623236429958698097768702854183985825337089027843459757530661349751406647121168184555610870015914247076742663440174248655219573532328593962403680784126029140195712852260012104056736395757486595115061543599685771092236059082087312201817547857431796692558345790445172557982524121532052820487999964934271479638722676859025239171933181649901045689786271368742093932024873611533769016305596364070775533329572181995771650102252632077246995739240238073223474285346665876916172675671866043836306384679540167232266749974369227296180244926914888856417668106584176332173565587966275064830534234500663583103377225242956595548057295152649194903052426716169154370655795884004925860858311387210981106049649597762640868955555473885513039339384710551162824074559298135798625119284555164218046532991361427979458548708936441734673922398783503400950442552591293773693766846242369501683529005548259075555003325513436120854445523058605082982697128100161084137972269469093054988126111175879234830275330949854903210123191544694630500417320184673440283758644569661610569595930958576844829491747602013295429394099828808208301469325278570772874101021155968415509125217007947844846568059666950499121820059273703651835677445994842086078568518403136433735602109311596294467531481330852863532056686231743467466712005164799125247868578869298898069196523465840565534090069533415304466337678833902449901329073821092591504783449384812331456524581239607953225320008353675722185056173568545478537005083669542172776054569440440388976591297592729730637174095001397573629968975611831519545358754540592760814012977039749440257002362589932455340069574827792880808337838131100260736376285108130491412970667071916600960122838507655948300924371410350022961020613569612396459372713263568151089147771665852173472260576027709763466675271584684449317268533729190559787938907532818398563392550480267199540072432466893614100092182803990231692635952569648265938067876364242078814571577665325296173507413337919178334895124583078038486359161907990987177048639359567283871308537393693392252827181982734526718730576719300498418305228726138030058017309414561873258646625737392835447439128436933476246175996278037791649870397436207632048729984511946933580476987319574530850316473713832455120996439351342281932107197966828976916986189256393036597328774021954309885933192817652423405031967506648228559229196635043005153607102065085002147673274257436907868773639362335645589918715539620867408529579310217208705434312708628318924782758602629030901850280026769674066571893227583153410763617633995400046356045250751493865531893564552630549754113708827842265593403358395138232612893908564117154687061365956621906005312244894465054566985894744590583761706270468847466305200341390393162715544159629872922239702336131340214606783601900034279928282781408214974488438826105974383098967489198258183270110177980636001644956884206216268552380616196371294223328640537842646522482764294347844162035809500700927138274954345382105532049668383407074063243729888096248044124865260484995378207801362617064059836791823689993053629623403771117730033277083944105052715898878714457469391455136658627163808775752821272267668303215046760287030545953874648630863838708395556304551422009635926452183688325995897406349921130850358119872745614168473376980849184256229213081608112966424384858118256775942998523832882217665005637855689970216616054025933449964673609452588063936992244567986096923982094306123151929233771639027398778738254070510836777522012160339327260935849767053475959173997260163617179828177482016290926821251843676906002618219604850908632498776802259357692368148980863846990993915675238505241584728729584365289764873911834449133254120409275968520803571394262185320245747322080615943474213581056928239676963575554452206459584787631974408456674426618057796556994416276722204520770176873344515555645574204157455850438820155417239202719955274563844045547598041866203541435428440214440882911135416491782906410995843257806830939450452445843279010497371649806393576943634749662566996434888730835854504947039742397119940402368164044179729293862612613774342781933084978476313168480316317641083786250536879087296097664183300093763794998980767433494869820053371755379589950735781228913744370576174413426685114191158098898365484537464184110129470919646646615295716173029187713917915762378426550833002472281586083858627993548687710345516297860460968227317100044583550728960036015618983791259107531510732708214533154829644741318663948855860278197168584441938536226936745848098271371536602131838689027906278855122020534178707068359387926331449227931914184082827446688744330223960411191961406468827801143040641957447605780666825537239010639490699412028501784452002396667911659476908996591936401536780114444381324035050955869946901829096099879301495906584980422277563151485208785525982140061398657122317331096094216192334234612619361645412776640840594939372854037560214719140593120481061018175967005123168888914165704700405232097149993811796548554735004548317447476651604792466098807631008222119021991134982554353570818403763086144529204747158350262127464651777579316351300827061035153241044601041593566520673292670777749122080455120863020663312517794219805507146863940007956112684483711257886584704626104923227135615606408069499344871785324979092879725722521480356158886617361138484021523829053927423310868669098653628809871475852509612168057373618594091203202950024012622463738360029493980393301588995990981968747600457175397136433445097825956390991791853382039671862657551297451814508697771377832858930701155601836975719077239651093496599889923412711147690988553453571837892577007909699915584439316842064507566678286088707372851596105682689577349099599239130318298104924852297022516725249579381399586324455963144381044426267892217489275282692362094836315385234783980253310228488737449187851236443518413383140117577704193217356416984639428854949490934243439815057652619646076165879780248613181589512981040720130162092180462978947422307902184801571773202996512946201690915778520965965548472190571979387432572416562005623407566952068173210075625608935500136091406841103184393844239902121820295108045372489132711151455782120850766269907625685288123994182606584254613511137766032771294283260309311192013394103604767023106255887837136798312361953762092678975016870020165815494191108436545470947990798806008908009260596562329821588564118569242534294091543588576805944434578906178488137826838048639896162247495455128449359908797125416078132763214093833741971450842191985643162135086536850071464226990648901885070220160917410649343975684205769171902082059920409577094378540834266192965922318478928584023890849476349231518503896581525999434698865000024205482175423663744789066863370978972587828045540991630998083608112109195874332624088838211909555805645806954922223827335097905866341399681923183491043658979100103358755300776010753306477500727720134857655757917388862168057147381272685790515495231186860742608874385853314232820820311588888033179681332928152165276527156249865294813533660406119385747892421274977629874291346890004010006636756613709980686917563219277857731695114422242418436519720539118030235136666172416641158040009084714443117345181140654043170394158711875638872426755905036937823118064629110691514511764980121321772497345216034594378939432911883251808071621971342341136147779946690774996008688194120879574672465549547810237790375807191487379993562762904186828494668006925927632552694921063150588312025085450845057284782890706511706186048663804885386136620492937308834881672133978486753011548430208695763963723079465992454618070011992447259464394737729063275001666015081137909397649738696363511054928465242443603901665343076544845167682970397969939985692062285799428412423304014774458031321108611200867265360797866541429878963961331444987795230672282374850368380822734776569112278196290371319488404403582926667817864745232662585483852145325415824772440134955869768251344046639580874818710255972844692403854639804679227231420273608582905157111916288776389757371366129881695224614933941359751580361863299204922967155173565602916512042872294086515500627133349887348454817323807110473857019115894796719595560642139496910790921423088230484670840792094010655875207753649100016094402215714988454395849036511819635159616156354918306291773667965339011796220565643045460707049152531464199705776939224260013742578177216281351170531056389556727127102256161257139140463511601189636968981005318508644746804413178774164242333331735595543860625659572055726717018217483048192349074684347614943651819719224822771485035750592702877353887171603546000869691549564650570530749338852678831199124163986304651897796353080329829820727704045419777165310572415553054077269647139233862203535698736202803766681349044276263363922132109002659908218907223027709150064776743035392953874928981810341677756922548795006397686128467535128994209806003113739895749143073260842335782492239058151278199514286663440436277563058854392004636285198635599186899138448996998040734087669594143338578747688635326812011035891676367940037417773878207957872166974987927720202617548806591063680309816932652182802382104036869480475124088458499276246491995055593864789994755344567176816752622649906383181341200426391473585752096595847383722407737717277821336809098571072205197337033077937938187085691791732512686725143420065221480955598642770828109005871839159432895880361904369899607742016647109353874623407449823948539049858948339598108134663165781869377346758042075191674078100142957777724292919404108633058397374632544502679024386296074447675465190310249003151347672806580169501510858042171142796164418425381800485575686200091954375393026509787350257102497546859828170727276579262290582105777082137725789761847178389231859533926965303810166435047229243069423817586389358915557698784404950524552245207736943228740258791578655814984672858708324918526210467677848384703213061214713416656639334082607221075529277885500941278366452945672373958691208697355689940586246400178611211505355831840660791763499736318507673287857645028377676862467245868481847416848599729250268370648036027425239035432115098493803054562564767719435129646811118178074801810819432370579063837719742936319935260430101693444005709728612138687661075402569609192119447414385161406032012015390201561271381184980767010929870447035603772143555928403436591751018806480692000220298086919414423703656322977905312724674046919005737986272921350120030375883548651099669545176035765037104004683304897363631311681921678235822270524323285200040902721778290095482383808620502211893632986652236021196805081693532076030755896498917483338161504421090139514818829774648419943547439145859149355009658631393198560488993209309664806991429927068173797638698127729170497353369904899056565396770471627367449741326020276394925097238820381935716129353688450851010186809604598471665768412649597344534859126534178672168888847938299496200508122117736152984530417683822190643239966650654071755552628314930439290224216139800698402745529823410856434306251595052203761339589418358439424125831594275059379657301437507246217167091231708475070750855468121252486177354646820453927076196073715506856034920388083392435462993489920762397334667688962225764159779123456363984188144470458130683199798508836557992594694754179570172951230584084449002484026296990721233801515498315214729165768595843767481850959866769261555976494839896680320679963970813814433170358591904703789669441474664477811319153811876077520385109696111097175593780041801815340648276796508290278836774326149782525309179325285080517854630107730487915978947679926264562813772432112524180166130181166231868930395790751938003089048468927607421059533569878311333530097482033325510480446528402515859871531895307847679552707561157908829821635601046596690930618181515358771292268794823544778107532161673266307011439685341983419233948654530320542158338046958770497764109165338107606891729261755932876453321725445082246722318008252316669208574216934337623166244406510237024795392958927824220295874894187751677100091126274980293786567591618858608318901356284980092634243563389722248763881624718616495741836546443197568722043866527081299053152142892351372999253257572759263836638174789076073784338771072152404111638294156426430553480860154134130146839404467584131779853650178049477476209316641517994568263046124596035115218597593750356846816757911716317597463454062699783985449075931712217253895834427368427269612512258217213188119637529918870738348768440803283821163770491238281904898441639436114140788046748235657025217950956112020657955965979172507029738095844351105743470432487454881317243787784090195568772906792491216926724383059651405444126984299588208750543370940414505504219007400178130265245742858769118309056834454123485578208850554855100711651863002139895320064525963288022707324775876707837469319826277844471612241997380574797465357821045190856099224564582793304521712229474526815430798864288680022225125456495044976489765093859425226068147807397121001486254892667717228617560987802782294608019793932974594456276046992037494775122150771608347146594779299466541216474558172861803001485046021630148871327700057767523388678648706917955441880390898737327075597113333059460372792617116263828232969163401416459815230415367403138769469102230339400438315406863262076090660960114905464327867471247869314130797222081326150075809190082053823108328953449127034281655182291944790297477022110014611188441431807136951494890983321371991830267793895444034464505788060375576570065759330712630454368342053687878072630344189316724861830533935021850931041109184843364667685160466350007500449848620615952980209422551297883061378998145252613003722161300450223177090590939289072110728999194758362695766925717609942513674243376262434082399959068507758087616725224848096240173042709530241150751022275243211614492942026060611909077612179990910495364892867318170316867523982460786139679185401850623201576636447914798503829913638219342030799488577896286928564164355912704510101457968283587541894004375889108681789818834843869532513470405223399803209048846415346941309348745541721841843633162277947468492462243553167350407114675931546224301236094071445595599461826438115265786229800562151076173051989316010348008430709863429519916506610091253594595844710081048576780203872676184666712237699369553527292879750246774633386101864937401384412441331967870218715335191682675027711163722880193577143772177540438637380735208007164621706326908193745935174478410437593592811323737217008142978395349575434229559200468339948283799593769102562587495216469017091559026033772126579808283725007918365433752311321596027026447389388110700806492220474656543670468693829023575348144846319618191003859257941620839200932597910518557445698562111629505048170241022257238139502699385841771271394632424194900847952330896012299490769082760471942719831506108937588266042054525625458524053921018154506269799955447477791019028245297854545982461841737669269872092692713020993228496960802957658478002853842449034186351512782107141958292974645912260196659475913119217982190888708405552653330490459657699647635497713668071640735084880253192674902616838095523122747515015614015197731938621014651839099852343619291560570967170804888552949601444095636540888332334197547656997600578298920080151183578326773412474902813588244062459624454291552854872359414127410349678618313069643984288742482230176982471343734948567097995742278435234558976281212194064339411615678811333907452792306454415933098556490403651708868024345923154817308424646044180394532930885258997647124437716554919712516911242759388813350693017957034697358505035755020318715831762167989145487491323702002414754581547412497429110293710532584797311539775927339822739160215254917899417519102415754145324899091580824815179322707546361142468918639810654227154510191095916972109174329766819705622619814642800401939377967339197022672759647040211184353926572526244384321395223185143429964224014178907013436267925938148928626602610679083152566217158055132559627411947329069071079335364204100704312788140523487241873601774330083018218635179257277964031308350903893104161016609825666074462873276344297043879079326943372651367139210400783034832644359179000457700989574581117204446075164221930782065784082881056288467573134117250393929067098786545720000879742069657369334596218258568812034242495799808011564398326142631235834236643517528209464360211530750237078088826157006710495000092308467468312200348916267799892469976608092637111722508834918771578903493783559755166769732593142130568203204929215778177179385158410812173258934121570008059982942273558505146940456993112057361758943708745420592169694616406078683590330160800703008639846072651009691763578291624669120206550990239496279777870092838089928891949765339072096485895403610468030022796996751562408604986391797266696288998520439872495176838224753723856632402312794412704410297544721518180284095836043411567956089829243285926765396372739834787728698499608327662786180018817024597047944798161933841930545366096783457215017007046175008898731460254179632739202075629808544935932231161955796704770078471831559761409844243044574155355284590558508788795411119690358186572037892656405751086512056746755617962882950080673023411016341137838342243091423565240796332963966046348044191973079229943954151240422064232378874714109814341066344376586182446819765436179560660312930208297904820129883020964735557184741309834641851447806931218548401805446134358488219843694683664535402681414372516230823423812036438583273578185079148537304644184323767525211525915341232878985304312841949221875004319949640653713822031273339174963986514778832457719572490278667106807551408925503256678165275338475357676285782506642660205522160088330590269222250541104784177777479479053409818704963269129270735946776882748573130643716925187249797813079660082047742825887862439795967835048463595239312752050478232735284898942048648461522381458166092019017078818365861348389132450915597302797081832681222747935470640023417632164920625072083179458832301938086111968996794590084204564829727983002005723528189790572827704350514930760510448964917450267491475382012794710853717424898942350897003857227459289987205455577641338154839361097039632173025783440352628404127340192102081070256104892754713054725407282618090971759057587921532817765598567612069774571715419524637976375684354351870523582028734815042249295110507301502627024202444255870742132673511567394401049835115536609374722809276548431843421050237952572971590181481447409912119936539831347738318173895550960374647184042793418745500439231339406741067694578703138969215852750095216103892557542555232766356865749674488310405323664932226301165837358104349663407424471523311248965546518778125154731148839934314908742821505341623262220913869826180119536392506479449303326384489706288305590034119265682517951661839241399525061935982722373184096312125423427253795551668288437304545643767343020444961548454377622318275741083540806885957637537224245291776622116247708990472522148149669090586522956080266887113057714846440551320608327870080876420453325449130944564678247012417327658388736021372886477621082470876409938129740597852501879748721694764545621279482426664740556428406020828776638483228379168225986533364006679749897584612345331206401913516129926151939176371733424014378685127108446840398942386229773172014032873849152236802486237559060542827997147718370491021606735979866107083890602278623207732631198533961344167799965429691435121204140547183243535011845258330497679654786659421072499799021786087847584822064968449861840651047695526490090844316118021614939948125001763353999174769423660865211870698170634275125183206274273016773025061472110641540890768606130515274849238758015493733805850056693702055146810656118149473666612978830844952459340791571853072334780702775120826350503536973818709631954056483488410079109389342605273123541626725133356504554461682346576452345976235429534032903600567716883492669636804507026464807277042847122482031862302401858394695732081038495030481332658087146099050872622283584740575344274340781162879782425743376970780206677023297076311058328179809073122726032521120502376018405652832287102124058201427986318665254799979494918130440958391563868480312642873041371981866444498982752875647415744075648924221551052967795042876326716649440745419624374009378601062265639667971941417685906590574550699901355503337066638716107482752287593916060958419359674701706765107764708226456774621674723906650102892275906069576726350270325523837337477348680962540971382131274958616018928239741185712425675612925929325805397119872308763260589298364991845444321177444622179264956394485957416211573318449890543145807715564199914348853817394556213480918008619278325346962494451663229449972589488796593694669725692480570261371719488946297107904473131853309622014487240024029209975032687967155952950467009427827667243942095503491208193425228493758189900330979473308059279598047237201224282394741700135407897544837836082017298812536877350547922517353418982937225860895061731132476951577821793934050103314146715332164282555206926502660251367271428402661620743662487634882527523693168791422242917925064500908561094411785369330588883216128203282420607316314400962187442342398577304154497342184667248402702549612775245243991334934413304309861303948679453726211036586465672372587482822990543955071126760189559018442930486313562135832585977057441182292589037713260263415934280917784724544965430680996452335828899981096372995565262499882096528266431150144628382818580886206127023641634117688497193078192212445439792087311290567155783618923730254515068580581260223541194934054588629261129849800499092875687544746179669194910063359181189019054685237453253057455572156433992233240560596925953712752130506734512813857667406559563890537490711433325158664106462585951068718809485894009789682872808737667346106020197200646904816130815645017570367281195959930672998129869202032817896517718062030643233956186574812204422254441512115290863311759616167381524062971054871844897651829731885361716284634983842141734675781984496051430693860449078660899408078207541569495206611879095278477754042363643207007096414598511396236881318731674084007909225642819318673210352170811690004477828522324201791919379648178417289623476661269726568650979011471019987244187824913839862274381949205744365927089286782028285613101173504063103243885860946783166429945522223289951349274718250120832018092304474762702400557761818776240997365479754627041071950532811049155711669992728954655258719781950925561349542433769980727602424613098306199536984667625457268378920153022510152027357873216625864182864121392922605903364233309356740448992362163337534546496694610301161990660050019310375389714279511224874585998868948297038212875890247314676891557560266584042623775067219026837724320549453982113659378137714276377212796076345660280596214729316052253184724263432173394728416470162622548285051251472356538603004289448630428845027464309775377288870833897823817478329144720123315356586733437709160747709733608872201733785902875588093817556066583522944999952978986143264846860733157815165731731385801725756168125015853187198380017212218107451260423989420566123209840507584407708596335255856922598243107059509393252699669056799866490243377209895652561838042938976657254372421347493796600621665067974136435024732882905905569790204969079547658379854106015888934641694115378978846586269738640540154510778401210292466621025527753109175875129069585757197706168651487182608589445193519327444925660957889876182967312687467190881361501549675741518321982052248817320115455874497973097104132193038849312371448630116479824333027151369870224735039398079151063510669290234457987276507932688868550248972710534805995799645267408084158737402395120312397232231182018706676643139083142072558933102737405629943559966908214304755303709708922342170119733415784591572852732675204808488457603788625567042755559280872715469521927378645140084970846552373471776852957414479696986788221461110018288706920424033060929705922417145305538868946527935409362783077429322805771343806259156947693248542748033980469878645864972286258374565273217450906729038155903063133040103677398306287334606754986264638575096641203732119244555343695749118328624185186977288568886717400856815808473507531827439596762056096976358483760739085333751001364926351331947293430579126660708599857460893020105457984550266816713670660815912256213218090953687730070730483494763415875836835814690499836196134554134902871077991508192066300189828010942518796957024316783592965519099361725960557916965883994516361066621640003373239136911234632111370552626023401383362222598781566767983989964557184215167973245225510327465793094795452985517387028420698736487402666847894280645292155207808418963714558487521522022959939144288633803218883451746467417386081021916648389283865307271943548853866136648166133976688666071795964478555869948131334804207875255294313166632520819912135666621195055061953114210857202220996491133151112863462029051927691530483544611262304101544319262620873660113861895548757239725448439226615234444131553489334348871013792046396938057468541041534169245669501563553613862779522422614744982426952707480230624311107910537388955889235856383154178068977173957387686105417136905393707348482912234130714721631569826547510055509217192486537793052537960872008683572767583543886033879295700906477061861892147024519812796353290878953215059785703435242058897839340631685397373050825511516434889916379815069919577967022617190352684137667939629264360129474598383359769675129062484714153638424123479129750982999740512592854248662906315891611835260285550836565965941553219150776002769528510736651707365338961786013896640987340496191098587497854437969327850939359459043376746015407027924659239842639589369874933167522812425513526734355027869110485480649246818891339021556666727693113110745006853241186837767424327765462238112387565845211194225680799841321621837211903698112592156919540442906165972971604289242093796814948024374862940394339354765594515241383078878099053346459844054818717746790729330758788590552126541854429083555320376415615932809157884486257316973583556071703897020061617004505901627604681582783577225491730767899165907092701474627118913936971660577321502930159239032926760155391521640451014034760464696382890785561916453708237444258772861826820959904571256436709626929208513025709738796874636785618361906256188725498557826819940374600661882527652870840104302766291284732881098654779806422346346209293256847329511663755706822477339351807285961472538427916830564421434640081702419591260250254466060768312523195664397325299562962321515312485508239693813679253355764121512630946345041953280315548026803797045868900984543260715948749786718561187167651723660758730441647654920194145327939293222884724133250514051220830706547058397286932663512570605879471923092599370596631507241304262767817134412511796231138481388588722114742588036147513567924292785763689231370965435883184812268378523833982588981049095225627451877316913367502604726618494809879303589301218908528135357081205387107075596782777302036191993727272836669672571118712474650355076603570894329425139387176598319949122308495251064928370227266773884219106879414489652061170460813141742556983711557599909283302167117781640549574162600871972676880026960027830789918390175920168177974760894510218378783489703718086202695455944948572439137054330635575919382007840364643475440041460147619651046401464431816236366330007536748862527435837933687221568084745245229480331964872260634062306731919736204086633536110024829510359267595429774327701298264713955523346275899742989809795498949457114326485024831598776775707684208154136087139908226332980786675337355669941026493830665766185182020152043931264845266256406560285890171807419024114726798642136440644245781600476446073397316914304435369626361143409261645656772227490168658082757110831613068207109680037125354265002509351152409458267665266242616860185169244692681773970863914169424308003210419418410805473917663473453159581863219977471063754047087343353305848142880233279966978580001510879123252475140547593049671590540561034888056597449547036582375587526118427028769407492825525997571345094914481352265662456097315819276212611845291165211272828845621929304103176010117562357525803777106513429229659747858760508814275662378653502706977352728512779134151617071319940326784430639478722305322202796388927932588114633698293942815074180009884169059502680489435421350286164655228142981361178466577049785841524790418292515671165037565671632347187460530862304081084200730876126205393083304045768106060732643267400883040530363117565316023924691247934560071383540842913595595989102174319924727158045164521927744751236521975124586748564365745691953367144967955583632948510749221136416891000878828936686028051259417413917471799274702327148662966210927967462561627998463432755089163215563417090754646828005331394525643538546132486069732373861336432017984855226372201322601703533621047017188329054541404644532904398711958996828978487166011886556117618267270538864051732719059600698502281123523587450638922963002462027751164516970022934294652555494686868980070434494151045049729071644381723297411931364407084798634672996311610238347979769853987503256117878873823330128847511699407484552402303321333792990435245852134943914353513803977613763272365932073035032747436428294185782938602975413639554519110673264796396631092578873931443258252560150776240304222648984198295258755952671555265816062235167072592405120095490247312152051094309343706324822696967970785345981358610395184031397301650963165045690587410867357575809445477268461479051576698617480173947070006890000983207746020874733769179242808297508120735398030209699038371130480215171855308204365445172852758789117232564628437096142828038286964757449916699755242701957639274991042931807499017729414751296902032052996762392852641414744244540742454834362918507769906652473420114296334587067376867856542868000586565863332839491566859544072506549063796874549630843752663688770681489807366036638718650221005354972440353089600706797516058972470201733430036441231590689217708192227089975065893659401587399806649831700860836873632667353191625058946781472567844271882273702061313122732843306801309867341338861689589006564466602316316336374717228452317173498394973732580753403489717250018731689355271016202336894935726715154819581237868946237152314917358233923949825951714653003470395827385925078658493035231877673932019326638147042834622149679691891341108013620271449452200689379013299662903944387207892853560348442555412704661115841915860921050275062041992254076654774803920903178940943326240379882954859501320020687379764489348750435983447631179654529867946740548803531446321666467380884903763141307248204332666455095475888509516296767682977592130320491815201911799662115299261379439785674704169166087084068941924039533660444591132780509469424584260079229106344863719649429449875330506993168440653206920385526373036907293865745433973828529433915776636077522756516588916383125444726306875089226300939524454742635048631369481003121706367743123270485206318281929763871597000480959530610985378868313918914820589303408824406692088502744414510662359476659785863460748979989030219049091445842051554624193467056206774820724351568440999597458100410509779280046913602670332582504531602489794594283047270578346587839531851495004430561941568100827522050219247604788581794622367010901983943038779136347495429815929337499809572313070632685953265608614147901266348178236570687726702707822552712618475726569010381082307849164176679583762593624962647025443585790296319183397127838003663638665216028338665685717954705328582025483416406646430318470780294978027853737697293268426661260647045622403430813417337061351729838410223572965604023541602352755282198436596228291466469400220865497520827269578056258216510065363111068456607093204478639834084474320904420035650662928226466082743892340544017428323172667297218610752781271958487377396633913400075951885283245820497002383269701095930387373955411382814042065514272140719340020309985849929987002544889315999872253113477573155926244842420691582528066612587742399317335056340408382067746311459232169163364891536941410832714570518706503242630743178487734624373762777088930390053491379579706770898039231700975657819684357765873139701332858029405388439120367716761526454304684672831553183255092209898935697496514935930835802455575982704428908265593109099670268266924171507599300778271113896292389375575085968092861493478755292855308849831461425653195169700342952114200396493258103332795468239490130961363952777966862357599555959108494958392166120986005450696673920125938722450991917988129637723058774510638244963958638180315805736446983950430107337579623312258878361205434594566482311726159766094688957444844497599148355945074252490040890338104787237575771683817739435047743137426855071317295432643360914904625053494606450715058015554099518678501340540119293064599223892797846153238981404759284884255784934742090856967874238115136110567409604454604095538060611007930375326520687018998877569783369806536690833860594380371532712835549586770222780001484251351554276959326672072147178470056104814823821306874120236509117157410424607173279774054761084079859841529394464274895287799068689734197805779179392796422173405682672934919069389398101930710558238657830909849486786436993598070899855917041637738635707687159506563656841176060431264934420110069078378029720249508381281782288717901241511465032835898566116812926560586925000616310407120497893015369351500944353856368814241573135730885292816536583426451741694131421246325941517045446425291666519947744941840300214609441271944792478100870634938233509983586932347928916501917908991475678182278600831363295293165062271771629560570017021931279447220244760813304872586152008414585339605497690511328295761103768193352213918411899502499191396185900156565185267758642756213331304436522953205541917640295544452468167365597002319766438019698491714842913502490065230427421228720662374542996868841243101653173021018308537265470075250711803605728497439793512201379091992846845629701077186802610012929198165866974660169142370210192742168868114064253395945735824268303750190023099293536016616450197351931261663464739800004237873615135862854570237498674380888799421256431027156348676510043826159451072752640211502691823203546397240381299011508970081508183639622908376392786266560929384579115171472757487255837076761873174156369485290707281751518211023592040042424718045590305599347898168215723963675902833442830770336221728460479639097607383204425596563144929249130170919619338951251737558988186717311174520892615713651519962931707122763641124431620981064190206031396071334155216558793624603538645053333756740012967646625624475261221648501415929966311416116798120844289335537987930078667774001975555642163769701210498516425329022459404116386031872082537591888341213073888754442018370863092282832487992288109712093669796656022474946973238916938900275437954228571285539383300917030844050346751055438371882373809702451698202129626760690499160246504437317703578592040236067452719129513217535318507948773353848885262557205673962701580081726431467907550758844610608087667801610474939128946508065284945550692724362198148710664609939403895204735286432829678632792057677230396519023814766700578703296005557451652745869998079622561392618469496473071319675194556890729499824471118831607718231306711663244793958509111078945916128222963101904142564054984139247497375140470464654164438163990952814666365252332487599534194362913965700149611750109975361910560503235536255843505193798614354091999858353040376205051805837880403555291765242919178223592707589700215315969565130367150987315943158435574550926740541307004141227558387409309840673283905115718070426649476931793529608247488852896093389208523200100413108520574729224390750544673403758135988602887324396267337195935876320899739559936108576254851108031501656083300338675235421250267111879935162519675494197698083603211444592309586595166967100632102788889508159257046846165668042488254396394223254568957271057961803660061961828959160179148218300391697260632101269737540207075966540247450220017764477967516351146374652113394087084094282327717183533048555711452611001767848789116033092051821522843083444659298570950414473931520684986696759434117455104118488686852199743950562695166418032589733864053454409368932304764979120840583259811217861181331492274909988052512330224810874726826137716981564679442788748459268139021463810171416807256910093576016205864922604478843245691733989662023652867633012488627851134756602304031534537510048535337829494562385490735637504485174087914872404173426072051268375151859156018935489766696094249813805676353346877818553355017560552597704286426993388075726290508564741554161968531616841356256365807714705913245433982266514911953201944269522347303397098412412602372065265600720176102999837194272292045773685314208224119390985096939778390242993829082963735262623750060922154672403527886032989245459322429992172958924754229690720482861324934570534213645991525128349820432157330626176405342323598044432747592594445414575019609546451132027629252929560922601154603215772665892911230713531341881525300131002874723836424309359769764592080048243889110696857083985845436091027476246512415986847202362696956149506493544332307479402164153075698935043114398028276206328307897503835970659401714519257534227834953175639665349243602130953325129430324289246788212865034974026286892768466147268812813661317115101924085286838191183225279708470429594043735691626059139615447196939682092709197624726222432287340994986452844103689866733771175918418194874823599192643234297162312065230308027675771426658536529959412454284781852320794418436595335358654016138985745506602390008097053689345588054133965038118757721873253510974378413382477857828134855648236963072272189649301103501481979157108351034135236228287967208436773375923593612861153681508436857277348139138106368824251954164630689753762956881914675344062839531469854675304784715536439545458102632965872513000324747396556918704766314228535074334022036809991088516944929215514924668411108738656226881051851377254540500426833912384559708793532702031554285956008538934004368350727055228604448973040947182253673909427964624507632564764809539526043948712319693037379673391586199710204092761185990950183352463913146301551288113706260354648751796788083861129191969058204889327347778769213759934636783333416754735941207711541547873744817573785157222009228719801292340741512474173561194991531397626754738878630951918883775490974879228703775091411579037542000542477415679937222583110477064678772215715951020482611102194353606223696079664043757797077935321354777697631820582715409794283087029335842809323677887550322588250897332915987120829168431751614090193322591289673682484162697174918866525720427168980055521335764664039621348780284678783779987972970920064248626639451154537207760376632438636872513851823256675016558702453100466799342589604975601211599106686610210323165199768341013584447466237471971072114378330125538390355443497826460815674525957283067282770362229288490067042790506523859846240640159902691655329255909172072094120070049422797995964317726680517780083708256414586861011942695449609375020087407285634867566711213754774507353236292041229975191839901004889811973009851723574310724584978101833224877526712529614440222592793626551935061380454153346377615134729750070517794806130437357884513825687638751252228459223962388515841684247847669847130375832792106917500351498070460404249842270496507918379955268978030409665532984715311974723077574999416148506062166780770138367814825014506335744310594700450529384911198317377432363325521983314495300035112581466320897685325019947489901728664659426340237497476724565892296792005546885370898143033468985392733831642248258128278988803200897294191217255330255008670351837641043341792607567065566760076772254965882342902984114605212543079141640489193020931772911748702630177401337745049908950562254252155800965546737985104122935157525908997200113083751771677041071863867414700026318517992480253739462220099395029728792549528467573259959285338776648706080047683875895577575040573617258272478322458329076312495078024989966552995740899590609154175532159850451597805390538888099247755315894202410515243075776604505883311012213969618715351462810714791885911473158427142523027489071105484067913526648173658629782232018554241732892838491092308324544599065557211333751670926056013377449705330583131719687180520868149545846296903198129125534970657735624569938965873530604436423364976458620722029000990503565481614999310487178802388544113696913632349726664955858407421989429830334577133042925319594478414819025055893955166919805887097522029644707236678155338614524845015489049281883425026542781758587213422071568460604519773730851942887372975471739507407248758441808870253251562349645313871517528864301575014771115770685715778004709003701501080295468956428251228396401714486748833045744629075527736148201113985729005701497051335865855606455460634886019592597084226721986808768684268839587833273414949229302890246467020220209252231865031366562852733934692867766348795635272684747738884269169505810368088020240611740367721281270346402743885126610176996106567047825170203480631912505057802017994216794664041101989614816126867716575538151434869053811974606584467651384746283229033736182333246456368159085875535422180810404817377006295015514317563101123611635566044212156511687268712544702179723580325286244267650471910348655977901770577642226911585874661776789978961432678286406541869092348035407526391735405795704544963945893211540882349770183790751039222691156417804083902713268960815688471320919150476629690582663619864323696973208797158165623705146860524869143286500134721395992746148681577152011590754196043838512258975866162889326053083163606387426390599095682003017565856799365588083375860515109931814874051379753726339980549447226771976408297749680317556724525463402161616627479605984663262300528741256876498585021406471326390978455956235632260051704977805734238275070913715443284861918167872419208831967387345406241637805904117088334626103189151704387377060888271234003078843351022679243225060143998614590717506102131783865385138188657812429178756710941773221034599855961959852820345610015367015245285151054482323151186153326920622304038982555327071615572221147349393906428447617990811372298112951207222151773711982574828334117293964749709052991731676276427769094842678594172075059649756440328148862050145340380653951811286295339197249662959818867483502751426440310542928016208162725281226912248409110772490000636257802761566483836784593504031854677189776797543806055289074569241330843139503885074504280709862239863574660273320154326336839422589944976662825546058198981051672446195219608066920631163942505640045785698789904818359506905140209897325798803799747401837430072729151660316484413097859509672460879906157780754889549589579051309703753202245604185006576643293175529399894197282689023385627992131286251145760170743096500609133432171619507586056856088151491217955149435163189122443908535305953910066768532597607969923724387955549516499452624000948009847976736221843388717721780126228432349495773554621797989502369273572990112272075350907981106404241268745988358480683037105295062791827895122669810640455290665701902790275350605843319385536916222660543005654240355821743747647270717712164876333168631214073610850665018749027339443125203400461799760729112548409117844275154709199363859355623594150189183733390052541109838801595100626555886687843455395046068516911743341502142094557241667231734920779563414928085396016349556869028354116452703663570872338927443983841510544013237337106245427031758301462877204271385728843078822706916166694166498182745657708036376062517279512638280612811638798920166050925633663575769672521307184479079968443053011462788141551500296274017805291996258091872900010660369216673108286472159244284209898698248181716325395880909769302496265794880343815993042775320640789121560904251265611294648584833884496776919502397014050061005409995221587886450430166127364842836757747085397896064138647962672897164316259021794555325807910054115258092295532123389205611646317715763114427324482834663775530708559107817615270576073776963852485792215164959625848971904233403289535576004034128209612421771622060420181405191701186924930928468479688970221092528862990461761633327334526348984956188626968728489768480143710553284513171667013321409812240254803785479280097122869476657598480080970985611866054910367232976988166248961200474876998119474804751906250629653936009634140403473994465003589636439347573982247945332596619981285310930183221059827895338833370505604081356525790688246082049609957109479680661674084160282191808096916170298415573584651437017916072246748071284935559215957126816934120002202123013834454339793621382091778329349725637235657243165821688940723650367168609832594723143294043166038573812063580004117401725307171154561257651003051417744523202859310283385090783223702882778752404466420010551290369446911948061391031385038067160751940725696002253206258926738119869189609659292767380868679759195035286540845475582639647553567154859586619677067900573371574821045801481850424414981993548294132160064031227768421199223880023087480116873281263885323637797630133794358290182667653475426381844643475786708463146075291227502027611651459175956809595914853165491126518338430264639927942684539643854186129556639130369263447350815776528839504091071454927833466805282217271239728730342172668799721838180007981772901112461122873220012393567152710847406999659907818399649217965911572934509347435648450180556002955978246520820055172955621207827757661752361857649558489756264409402305336617556983616718312456356729055460395692029283527014604336490831762471457426114404529537703082345126839702774934261328473020288773597474203280210494921459293890019309781534812501634930611826782657341108755401841002062282917197623874561566653950451468577947372829898649041803522138861178324471591571524895769467811023357233124532528497630484420203833101565371985052418047742010272185621765007587399571182652284795992731541416472151014212576185706939845580846637592847575143479282390541891294047854127887145143601605276502460575646364186228170039711043949091041037890587612995030977673406019550544814856305336527910116606175696372323369343562578800494891337050498039915761639546189355326544915669569347912248938141365323632799185048255319057566992566031499585713292593034346186883624079880878197331638063375756631030693946382213252388062147209790303573979188749584113355749414394357311329851055347530732403324367818740046367309813906520260357162178318194125304206985333878973147174314930420687834660526332828319364517436422472666727156170995152974888869700455708412786457045321011398569444449249701910056754923128036805963802720672512906649006673817309890970238677744562073933249799470665465674919571779806519656536169000123798600435117352157642999370872988193123489617254758464024953482891999503199394533100073767582572387274861838330665866930831682910946954300248117274545932311303513071713051380061432786763865093917475283857406006340941986439512224883061649522013102710122443046374584004406447708600530615114536406723844492091833107779471475813064909414374041906213952930982726350848757930967763256675360926863409155005664654917550877442405898218359434076586603258579423190144249433030499832880921651382027278451125931104165471584218061484446446063474947165999807431633096816094792557036251480446878839624388431475007832661153698054482614269454808062161991364360714300035148593489330291981554456394533334697349826666962429828523707006011820861437275767550493245371531635856913018882027675350769785826751439451647304518859779072579722166477896973981735956548527150614756777707106051452970692282256877749356689205881688081673317738618928312248395447251415400275233456700976488126949186794347198580613354930725566866102145895414742719673281891713220993596821946524127041076091355731628194078173496001800525115130236762716796836800408786588376777405391201486771691131344762128201615090301573689437600164529300930808112113590933212118360556773332199111426948799556294993463203257299245064440540515804571770671340981549432135004788138693210524269221056573688758901741631327049478758715365242916787481218228742298868361380675659065414968093259637743740353863023940955983108319971232799061845233526659957583884902555888959713054076384476729523013582019203768695365666331384796696670516305565046740566171327251097657422762867974462522021277721406419779017483110191959014394794521273760439732134435095399705456500749142593599701709908491267499876038666004899168227542305811992879695741021805643489635054392021837153151301516499897228216115158373105694171093633868588064978182435765495467385448403482122278764460362546838589792289057387291783165516062694026640397235701168664222516568404344932043645483184357602413246335076031288358134235406925964013437691387342428184837903023071524136686732920611739472131284081856346884152246546457191963920707079749966460820321140462282599824758185096320187952276263659718096583136132474053734188790911225450797245439108938759065614951943187721215301537977167678987188845662852628440965890341265532188498285820482847625109733668280145162785957698863143449724196764131974815566672457248900916035807115635401037429614453585744378017672656550596881065656574240513115255530241124484330988269563779133521056424932208110345384583189185348139310600337924047830151137077748076022735875401088686288627006815786507631754005683968123402766563717784918513935835877184399178953562151953161397456490631806490554907440756923194993121478001629344901018468771963202910418534019077813613056201384099725884407603032098655177134790131892870632939738585835241441853165284758392061630976438179333866546783634783587702623495720652696573940824120827712386474284192011293280200316669436066801875889948498954166286415639432451051020243185295132343324391829209141785764388850913340670459775601676012174079069115231727168733497686025102192572468428218950103008671810701734357571709262246347060014964008459787047900531571740854103094524312154698340233439615092119275322839917199225021881866671903319532262539977817396512851849134233355955241821517586019285487390365196717219008550166411623962271528669194356628544075667066391455527332023908416856165846453228148599024328674007112800392322762642698733781945523853348136712566567532822931124969523309779681925048268295237890711756558265558455863151617173816198009832167118178236823471692600419867306677459546312288309680968535802546052789222133612250472025082732342357458007703268343481991827426159007252486662975511583620070758336253421870076004986595609190848388464089627978544506747541815861210182728115081407672663320690289498530547960004939910583132197400182125317745155302405404611443703176904290275105974011365035448080894294666616379981268935679498274327420331721653311930466728031571139618760927298148354008342176698955533745264434945615901735259323582937378935862995957089061965139776815329010610618714454104011507439680068168415898818970905352405183063424918783422032608979366121300013287825289272909075740532187197400812082403371075039433089515544994125278196788428587943069891561952713922475790463077180921816587436601360972081362485569724516936520013320483753105747688672062106981212093570590987522726105935783673497618763500800110044991612556209868635554993629476184644209450487333544073815618549804424951202287260767155922218989469717239881488020356005842670764285726790053771922813787541319887671579083306974608725953486218347084717837031710099605064747168242157817742013209181693114653352998739122754059718078957710216616612571931796128736170759306820425643059156956261611704884421175120641182993220936136614032562223061688482551527550121249263966114022269461520301173355004600901623229563466731582976885325591148192675907511075800338290037706192420805338606924883363388066260986453863817166678445857145246395350531366138375787665150980147619826996052422315819417732135776912407049788897624244931740824081990441932894758732334132887235215900816745566565256323666328105813353139618852280876516175133310245912270707975423965466989274301025530075697068418608733928910918805018413298842005932654663091763631171771202467210906559077428721560859227705782147083004177881594573093234199657018526948249325387728856303874797358844408948533196265065849083436008240737080778574449434891221352475040039411109917919034562821387319319870181300344867574715007265458449455641228632976323510816242800027375851820057810456949571757137313484299722288165099995546904615458611810995001558395246884807782818219677932713013211277726244037565665829988349363223855795978347441014691734370935375375783730431228117331485275751620986072661873465589955032787719473488038117308987018215371874184630071434575728831833093226264603348783153844717219164953036925037630142958316207519583204789124556706441725261754713144709537441303478526479940272852546917433116759778637516879945555527086049095937401539426199609352521407275959407620957053642063202076427733802194682957270569375777550537403961273945000658697908125297715547895721540861597829050240438349401292615108444350687071225335300698411811184351864350076236125227474039593603507131250418374180781842370244452463351424736233715315424442170145449134635021540203108799894317162684733471875265456249624495341520339965638483217007212640566240941981431822945511352507977374995746037844899676813967982479407007786044804586935115391846601150929735057798361772507660577486716321773480966971311770290148786621858574755572374341436292295247428745548478195581732573724413651128038372366728051793032256759311035378898235996276652623073021970031919255097557549572955509770034634651813931201752582671562887471373117676198167416796686020049707683346330859873167663710983072796786527401366740500545532986925205467451681977816545414942242256926858346588720851281314908470320344881616759307230262075231452970527644564626545125240222197842880330862651251270289165809268730009510788797762137805285621403528042897743626009273819234126460640455170644098998036507019551812382205434304835340979463556713400153882574115744778412526606191001017312727117043868352406416874453810359931876572282753537352024338078773647468720554304448764847538571114706540230839189423492486385263607723219960997938667881091696368068503000868246825179977109852870623347238650261384583365767239236161964659402136921933850396157149913376357093005652536728606304012350439348291907177245557613263968446875772700795376465432736066006371538406244675420053085845065719304719923849478958529570328671109089049065068734766147272875382899364804943547860835342686423092544218314842053361808873515487599588271378974546685573727335452980240521352454684580250031726651825567761907192955772979134289232992880322168419583338322900221161150405944256332085697101313042838548586550262909329755310780350944189010733452126777768918999644262814874928702047474157294239261464018428158502296007543567391591828212937319651762108940191007504570598601506745172190591031123665516382397517958381751802572237574071077515512851620262714576251815424427610063409837984148262955424131041188777340166773000298782322311081317034612769113951191705964637031216584388331735969426140015890333939402652341575971329787767413675509649114336969980408619007881633783217688882161321597720088422956337617991520147304772666775548738467857726155702774341347961500607720089217420145137963999698503703376255098809163347834001664840511312582547108925540546819847914970357424964185495673995073253908882187737773841461403693222679575649084014907603720281483500600183346433103511283317207500210640260128255695946133836735154461958853537800937986223962614832913503944133311545555723820773801717343159919172658807835155185976338373428077131145371638833381800857251767619120448331467026613557321014750829416801358296240131095408641380030627304960787791870142821508849383762308788088987224306867186289036406687887477373432391082889510851511754487306891871814637115333188559462176000848448564511296088062881104193894267077743954491036425080733334787868224367849646616836385779652820435308614866633087710651646386711267858891018323011083790249300001127601269784212551021429702540258322749522162585253856362844417090304319529896779719677530401337017384974564818659118175799731775358946845509670174804422085078355753777191854203577066846973604552346251898793329427914315909135245769044980161167567235700185515170292650162056252907375399526268680063761563219474820510122297856892360814471832448181048878461253060858170072814096921694310076562121709564929452985971182563758828355230538827040431244464791685949152384212477778098431205247568834559026488656535705155512439998979917221504694207162469348746564771319730802068705356741419451694597768225972057050129276725510931019966483146396200010481481478270455208032179972492008057192943676876505533730429775248963115927130539556541222670244511958590289551890883833388216548209727958715416772854169286437965547372966288265477123197989601294549526413708136911280476669759661784684023552062108348012504821854810397749080346517219289928632151661810291325885224320546359993242944090921357045489037581260011336817028917381482164185633147017857875678986436071658276120620601197468772206183575330696935060669946795713824427937742711776458670212548679863372418342770012233806850419087952741414686683613813230404932398507481702553405363925634192027681804378556066939628818154680756136533594720456639124233482828697835250067867596349891946721819609895308356479472298320559557759652519675747325167867876412330821749627966400748132019238347673170031858814524132714525650122102251570470070423852248904980202024021761494785675154705388820276077243629528640908880498233340774980446368764481024610001608058586872355307960251520780836218870794435966879245320161726600842720156862121495103474280812817593320335625185076823810667048272831098778799681314413911974925866153397669931281470320809799402914883660165606758146898651968546641444737917973691467907438060591801170971003709752421957944729592416691695389874589246003892496141655733795553022507960316000511470104992178689243860382970394170544440840702165708821143879706583654536721181363089622155519467767301490654346441343973722762204218779111127009401369018155640840101221951573909470686588858136608336020912194084806604816578320323338530187571233059496334308261830785487055944433617194983440053412008178718913377516293950059716167991806600823975460615049500606307689457307601862822651500943166157611116267948552344217991630808902105906792527529445235360001227360010978895611257884794498978822233689428283663555712647874751693648569200003857828237670687379308309617211004397201356652625160842757326424180167458474931499449653587485605788414003918959020301640365352330334664586961040228854701678334808448189617996579566079573602079637170005688597974061109683942538176600567193664903603834641707630941549787301315031035894617931680857746382888400028119078449273915306101872819783218180853763070097349015615743756386976524020849355788258080343393670131386314093528094309514707293322806507840676642454166246161369766182090208263815460876179224027031175246718855195159515751248660572085261513303231851879297584572792786952551502830003967675103276751046114637408093713056462325125182444298297175310859777242172603231925284548868927845886387673399120438537660552538836077880676481023484270075516643811212506036485781472892679581956565767430353282560971250351960996857480085766049996639638603047466301333751346841034581848835120462381957577418163091473032218318095019387755880094334067514982285981141912860793574908311045691427280295706482193591330015215652611677946377301891912995519552826202302844965516832216037109990102855375654817803411392100748440194410662232016731691377983980956023061928969942718563760564368316903382799936865127543559148854877729457816831658065909028271522001877825573231802126276764580184754015567509930251135931404277995689617256058969729140168204008373957756206922770281180047066703300835721344026678750798774636828294902785624323906896031415461215603993310765884201186340312710493913248182011766989474193917784034501526872981487241707077470621687357938390752510931515297586414498613240826189567322113450950734515129552705742077717862366084130542499372723314268954354880897970349548322700385008195482082260775145024814993818307993176013727577096301608027888315968618380458665502597648656823661218231224565248258125080009828166896328230600325791364372255917178743547336449746532970488545763100432871772412194261156442001625416212906739800549685986660667552607398799764314804262802011788435313316583585482979905890752847896176207137725033281648049079909427820204718705659332600652133936627838847790467741373185658904456452941311843573910547950282663223574246023091421854132186191340510515731054751472995707356962124126440986638580415594001582492413841978961473324526830719181195794234522786024946106482279905892504812403575427077250671916696740045273657736707253300782648705009839135786681231391303628580113696728723876043504710610504929839627834853409048343620428282479571346611060665541487607575275843302653252237046054430718102944252444351199338713197572970703435075666951634578083888117530592495379822438333978098004222705789578699455744664234626497585620970348076921666126592854917549523720356249313642837963994507335351286462339080670219124874546673470453115091529891679332150026890005013993958641439545078554319659496349367308789048448364927062316785174377168071712089806305131687908308404965096799530669691152899901538571536431587440699334759373952865465471968016299388820007622458539341672352669807081560530859473485720860962262661417786762618434283781744957034606452408223656118214114697580618508964460671952948163969767576748723296281997207893246238489853536325274457189977840721918624683812600283116991115577766538495106985119797033696895507972998059796021310614795172614228655189281214259146584830632255961106285709436970498456607797318206773580409636716276136066814448768589372284609712971270624955409388879566652611743388766282861789882365669561686645716237242976210165140400066187567363308469095449416085848909430565755765074098838423638692505713076744067095998848982705076685210107524497201115802814478866834740960978974249283823042815614378333933869465039659810656492316725186787634770501311547700202061556337696006119093199037421009342132030436654438634115708541356838067487373019447039997658560031239099365551047146448885418131931172796924765635402776798398304942151935793367855061457951686295871778035586337486333152273768481149325735133911712532849011791062944640292863118308437816854014593351178747985181239840562677588909041201619497672129475500823554333988245756010083136824490641722407502366915323186145376090864703695179553270625962236624123471965070634006139090554442678911684697092455416981120678896652304409172769273524292263733224055856550567439575992652812889665782828917897716759515309576471568931849712691836306000566001406276694384532652408666184331060724069658381163894612887417793897763200743752385359936858552948641652120707758168433575559848609179390487659256274844599402681825048433282148252199672466386367755709260342361611815723396386870159305689476153435368634656787322843181247792974385638191080359398525732976866122846033988706106577386344782542937153671328122019771663595222755075560304555151091521002835523975066819021425581194030263572909487819540512067694811888534037763331665015520772608313784809288870962883848372107858554631910972489206736658436089535357603999969185645523742757332779908673910415284811818706643936926438028441693670415583458951128016196388739276648670079911837319540018401210943803414645715166220196526907945728082578861718243951062795279165313608098187788728069248324065072316390265055667407141205867720441493544022238711132295281518739996031440034375862043728593281122514197679453405472868531726188115793305830950080943260956477493626403375137195990300813002138831495558680058296423919426240273321286499657333692396524534961545686742707644465660281084379372419010179959322069197075645970154674147860823659892920245719352469038462354098495510988437452908531120998014135758670134659909427574407227724604152471742787882071281839107912027568148917078599473230319418860244865579843827793073118973091763447923802890957561537978552193400688806290785274572677863223917306602704222894519711458745492215200607364127293481321339845419720344588934438471344586886883530316089053250595250453352224950799869033326274368017491522576841735103314548701097564658037647967400629761735737531910718001422701113408805200884738895645663067086845230317294988106573310100216534696857780497979525752264541436728956050888780881790506627879573545560244977219055790598257845373773288757227520147155185933484259781810054547728958234932943351605905864931353867365719856812948496829961064550817650018213655612858121554429303859504433674372018779542248028430491105282163603972675431821061761446924437658029348893749380108843495352626385033138074373181426541070699954512528687809626523286356052687471799740885657475206699288263282103471869848285939740651860947828189863791165621769651119233981971192472186276856724540291664061930122726128917724339941454765830736622292999096453561848040901811955099408411361924693860015192765878710575665406794872301975308681658552605571518254869988054697543273404816672154801640989388148936840455358717862537114082733573131018037290440901205683243974726926799697770964524023120980617792038131375461281567694168912969145996516463541822416108525763598601096837808118062722110383469345001104894051039037382279493925785341574745525192975190511631502329031775957342688971364178477214534245167763267220974007681694651840057291932082707069729491025193019287760036392956504691900182369262185103310203157505692280208276086807167268032582810656236496854624573751050772509039239749243190414624770892844991448857723501147698683786933579224379442788433096469973133546728312092409183986837956558905131617267395823685630752359901655182663689325238493920501538774766692825355643930814783836013042051435186168239742523410877656527547765295691441322177681100574769502737588954518835394107712668554725048405052949308669295059913730432677062369689546666385919398565188170197741186377699600871821420524901160222395907379545604049666270081872954400699216284576338037607173743308409946966823804705803397427946870151317026312931477809753352788690742416031531890748838687245661502262670596102591050221392056050225367198991424032798275556576043741632360124879279035342914773314750160390016881751265953379092220125486481398191008933459006698614246678981827391662595446559279256738053355397114158667789326967141237697791650411348129202782527954395109502479677913492391767817855401733088050143150438328346710200041473238626965461474836825985658699600757672698083649075923239710203972814359157143403626600612439917731574846158020510543398103935858568259033821569338121079184498503030062033526345604473934319929194926965304150079924563433595814804649420664286072496595554434521480061160721545049001916411565161201162075899711765528767873480641949926766648812059355923716651877600698388996967322725867739010975776020661497300312571424142894549485448210034193782804974594460087816556971766773579433095040911419850641684462939767800239308619407715889338980270860345200400734848763741784143188340574823338048076309780616492985807652970540375870298267434242933654477052295684108057066681397409151499870950327480670386463482921445341367516798773307619234178350018846828827791724996323447947143318440073945907638628533359746893186431490549688667422861258472486921531094489732726890237679486397046865145081104724840609754561705043469258479279896541887930578160105206267105606740329141717986014970728973610850885678186819335097444337634339879149938671640247919427778485485502227863714889600296453735848677097729134967267876498746373685307303956933576774584143308729490333085592479491310946358069699799383714653583829486382097542535599631683651478969584258769459653347191441848643702498635769235589570043686315121374227171018607430936915118411672691118397374181357959628316861621764849910960879894721317417608936195213144877365380525481592390177860011147681817387571044554977936930867589382333314589080694585386470032903579680467123211676109416976183833861530493980131508893314910054900097802373600693873589846348487077073399646340734563428228214909700461864960733584167299635620837536046338965452627663860211261719585974467429918995877929845715185895904796409800725405514844322545151656003029316084087961936113084011317926254328095958027757833110179141915339627555563343896754255726675816069243739928390560656389295318268456697846510834881813282034834728958459281409773064102187498006142530079066573939957980935692275739542399009707152643588668991016979223694847888551126040662826996107968864399408156514835378941803869909916616622563041970250991194639410006874728166581306306300132144916261136205743492140753949745253062301470867602538347714761258418974979368079651578733454989796657050936026852736283877156810691357430055729707482717305358872957047715245743653439571536267890421255310285713834461463947122574327633877922878745148276631275616282576039953001653175705014516402249189796091743464918074337294936100770741786162137291060189549981331295953089578818488713430918442568910197281432244669125157756933345279634678670032636189722190696401469888860920548123417361566478915366569746437059051783814138576387929916340774571765154985003384589244325637239637707671562863676872903669442295795617924271822677035976076990738337452875634898594982539765738935022236120092550190782395003618335112476683800078298808834694674370235938471356255558930969635890552685247142121816024179677677749226370140215756705469344699395472416034597151919476199496626025847582690801735078033334339968940038773120763292268816834364956771039161868673303907454932686315983213903764591514853703823481190042170734285384870914255639086425035289000637144224373279984884486599036273800709134635630667950128828603803102160358431917295762544953761421505688081935850928491243424200412683904923237521290777363435721840481880018702591000287033542462480775865707023002695019344797706656332868622973554707282716492166389061593581394648838425603339509203822914065372004499662084505908994580062015100302690828331237355234263005442512980151250935018539873048282740890377373361720247636390408876811036364803597636068095784155418771171831138822463956272425511913983024827888722176927197566048138877071970722341677038800204513784966512939165516023041737105345421454651134603796075257045719660071333132216426249894934653821781716539320559625023147812394123102208634515598758576972459231401672159803653472332731819971052906404804240175236812025649849539508468415164460385158463252993933251445422665616021469295420619386069012975916459037127527341338913603639807403710189860307347483404894001402164884223646591641173689414443027939908141843127850331478784967196557214591049089359343793484797020806144581090888165922263674433087476367367632266872246891517675953980389457921078992900771271087298924369062670550865434403472390194373240287254320919913843887697448041408159575989232827933543825117937162019803133321472312988039503996438093212203233334621595392510935195817748826525242885093403383174279874141296113827692288030956613117246853036476469128758899722982025562004504332474126689665696994801174818155666877741605314860537163259335241950437521545851176835039473058170972458302229726672914222814485834575105837639671562617648968088135058453327667265462031218902695931907097139656346228832989148822863983726471916214238650668964339062244995767460158626462078523439866554636636134510238712841522875813506465461180462968357931738376488772168216465811671735934223725516692511806160507885303717494927544952132942327863103769582718518023314240492654203096050877701092363482349525913352214491174379915086619464556060732830600574426091605910990521588438918566055315035398509421448785645265612421989220800771835506497607600105923814602325924284292330070444546171278950944232654735943620135852917109524614908276101877422470399592217635296307833117205136050303897206301026142868320834750182725881239461311251688843857878704927314274836127742682166555445444131684724924922558996114025795976055446840334071230208159443740598823604540088011460069159537765397412249882186265879184481613160630658715992636356975182266455286616944843860787499177571393735991787967645134557967027542451560006407734471426481277983376682501111967817490350582046339768436213925919898699811257991075068038857598264587013514825053896340467104028235459133023815143508359910200674721723525544253490232571629327540550379771274327941913441496454543804032726406787335493233248375310078193492396273200158595629715124751135452402648318530780571931523973911573202564855383768113965007755661568367106048309272323269414556953704307394523321204203987060855000549940538743583697003053836098120952270784911883679580404911819048171010297782405296683823655398742781898048272940359294030223157499270601707207913811309778360283090137178334810846789629791672848648162766698697932233692813994911202436426176646328762650748637105004698905291181677268638868159897030276756019551793134975617804588422943442934900503490794194666916485973395372872462926686232180522152289497594950173744023911094018919751788703506532964259739742390857321705274215489808825365166884465449248155866897404886213261845657509129818555126708154400366666971646425683463449231221836778676042873363732125540684667034976761644663624951669720567586700647494947444672320328680485546115461596741554406397242880148415483307117990084947056136077734354819247612360085045198282777747825753597899578619271412037534523531913503158591251184720348438235621072177059797814771341612250071048523556615948211541854431452193656730031824532805591221088263128205707353478302413236924169787041651224172317153036960930426300244507524418467171156616876959196416263776431726025935536595875852915997598643810243265508108427285793067804941705836950148376966988125608721946405045952007068596151153066704493470992105930325308108816645323597492602519344661782881255704813676027253839770362474289011596267689242402822503320779250438433863711781814493521373105972219512314039722024240925800260905116310475379327466482218793256946185407178320120891184661081078694854045958965182879064178240787247150468408396700817897019005204210967524017484874735579924131084951736891412662770424183448674302620418491102702006991761184306426518443150433473973592813607385477682265356037643483468802739075121021026943198075006087947619110052146204438997120093955360569890501036762492061815173837225123317643700871504700083904192450396862805893231084183357270502062531572366372380580451244819279410765989937655943341916461377446746914755281593501625228817950688152341626947023745772411452898935785518153286618904809809493702980734339817427227924502101383831916344264134189359818135531786239728899858436111086522412636563932814036602188561653257634544328834002548319033999948307600490965066202460596754178046451290887040718948658955101027020795970593832360480407067359637807727777165872422967996946812188686324888659201257566691137541815099886284410831492213267471443852282583362869472385576265851028917346267891681471696325472337914604679175509427397253521128298328730421828427007807666764708632524896469237211068656798403537319835842335595980608940358404508134358771327079230924449949413952956933165310406689887577232283335205892537651326325583638086760703958477446882937455108020633143976347973585313820270467248652217408675108356154184949695592785692296025358519171111889926968560045380305526082966660332076468605694842550335948443749790958939165900071251170293813555543770155322527623664857764831973178481838113260741896891967566139786683832354838015027836081014724601292400395060806373679438753092777879829430189543483777780567114323465395873558874873964957060957785073071248797282945389897505404455354723599784367138822046125380024408540214532770453204896486039939225063097763262769687360098474467880911610255562566543306670529019902079346423775363632295493241440783401370292913215859334978571832998555953586031427431791489934780354330746766305462467598051841670400746519072144697524883873924305597555323446872223614657484750967918846860391650394607182533440792230281200237248839367626237394128985524396912879483173010699763114867019140664761073917010048776237786185379693144265843031300366024591368703728778717924699328371612578706824872185844080922845365151174275602197838231965838222165907105798044480018017327470646976642306153796054084649055283248437607158975934436947510261303120550542263318722433920006173251296081599037516957056337292446720834813085567046938103197006395232998016750800468456758966770188346754985341220338212788760842610695613652348278898663013541963648274152790235469566860583073718823460620390429400197637848297434941821017895409869587662766477929997359183881969913333712123107427831827081336203244003522262558971085020496134441319986642801619604981837171057133887052608677671682008119587113974870105743663172711222466820024055335000727308793568754042718697478484477953019603690749789471849885150451592245512227933852353233393814325266638459495601440613742768366621444800885957775547922262315257870612189881486261662260063331936955373900021734765311269291649025794859915033926269188920034560856428918427974684315749289914157529838726584693245851559148488055745926763757608902339998093466557319451146555360357414005368546200672174897645492888578166033133267476541812172514996636703703487051946989674961829598171588823367389402308237646217422607660785297829021429376534105031532773524322594009347714130601405470181249855453256234287787260692294787765258404699588814676618153254848672045874617425055953247632467997374612532748190683369852773394447422811826436568115906443845246014133241958167832980532053268160767915491248145057633123710694352536585847793869751612375241811582247399874671968956055064850407598211777524039287088063790640750626651686721679592250385140826939013794634962472851201884975299824876275263926829895365015799827887977116412120327628153007312217719757724048378312491668708653564401838663631404008058996852200385201002676451158909009856783325883854194662807936704830089690536036748657219664237130672343326503580795366679924400343846404323007087826367318107726536946449596684445837238023293991992852899607520225150922277415238729962546478230707977801418465783625571080719731427043943342488766922057416962784868670856846708361834501871212766843942941519390511171118192711408459494641410832244546125334757469888411903650290843742846729359401273529266418051207782168643863768209864288455560430873208401520201958511176495268714090528135930114387227643278845059689282112246358956986907406483001518069602962749488240697740910762027638364207448924763252704515525043877304088239845387161546912216864471823042289870544635536709122247769971543359854404757585714212769164437180016408732809268030764364558059828164988716452668346644546819006365166970532968097010464786036560339729354853636764163588366030228213029783823893730383412648810402582834123412204431519719431549758599070670958870014857952615719410569160244648782386384401054397755664582789573618110820910031308547481592975439181872529087591712493846188394362415766844335325904632907908459668814820397141268834031755486319118927170997301529724267640083723733630188042677531527756277361530109379502661960933799435909328491311562012170818207313406744086013901407934382968730939256579035131494961086124855356086615798016328546045048715340551655355171720243018281860767719226499411300891423245156210277010845684369793376566801698241322958185816580405076360381631337829353859747662111361594995623140482711508562601527865213615419946598245573092555494001000093124092583922831794049199345222432951682633102523689580730869062027448659098395842559772716475795881951388182815311793296323179410078034003137337382100411386597565472218756410358237738672599979885076319479787222870525390475344766645015494894687185701239844386245375438788576585987972093474744862321925777665809120087537451317043435486475408920339884655290988577262460958292762427412813265567325255660396286550001777699978361979926502952943851523187071995839423370241799813741037556480696103593193118735242583314084559950069010340759340199251335664534180444792768197459645569368356788792830956353841825097737100310227226792747941535105925015972229261927628398764065791683852760366298387016362335231584797727596559927591805744037645768449255606977252828919124330406015214165299061863245006341783847514279902964224156981044692228725513490247716376574047605731313232936156590692621750568789390360822227818356031649477202161019234030630024093451700606305614576561113131361629301276660787657191639602930518124429820882917052234935494709342081045624692866287151366652983709853554494488368765528135008944317754269583528978165820420081428018412439752806377461285123744523923966283050204354428764251236623326086847732307148815569255064428693532632884709690604301542185775090485957862572126873127293404348453447342378185197373632571057745058875110546466633811228065815551321900831115533665411941120180349581722070181552622381704462017727089623103661672878874494155393489355030896005332011548202319511271637163483259155578602057205157167709125657425045484814541975983933318431083616987842775590317051695637534331868547944057923949367364683423217043371880801209370110744114918236011802026747210546442937478029703143579346537809933812377295026626319100384324258745972362893783085883446799348381672901061076364287888648765386389235353351022453498769137326309253551667579796319238914497665551863722678621284373824419074980686386395022471132907053412920057695288299099803028484088780432447295289739547205192849039785267649501651088129442368582721526188617099016149104131696582561698655309572991237605121943008332926077973851595381006067572935279691408561539968672232452836349683617725486632683372345237088935776762307236871542434507029727278273851509707490314769027306831229199079135264724052784875668835920654523418754028489338417125444350545540981017280887634799644657464719990071033297373373428242918166597848641300591005865435991446964195314442651780727176577354539298242340149174576469251918469715913767277762746826635620106096467216024500307189909903451597900436265657754399262779599594511852793361086133672065591577812426653582423309913981006216325053465602905700307819243251591467579041841447807740231516201191222938529142188250755096474092258735296277311508247635062792879885102188103698628709677602987559692874257887404525145103596226024345915080559268381435413835204086573212630777482351072475890911037667773969831997854310409191798775082568017876457185373915325383942385598076792048484804443585174750370853673273308285103367704490244325289545905530365423294916579240628982633868808421619417309199722338418646370074107139849948179994306534898257035366920154074263688201330563904860068656381263854395299185595847557926819992080828311740554067872014462130616208709570286301202274955993384607426487368579923264116206992138707675977241441030335328269495216604034292601272977045682727034228031050137624023930774097440483858503521914103165399646016156180796170055118849126728043342723698453161085613597541050969910775995836251419406256707559934249444889610428104522071593354646134055088149692317677446391079890138955210315291450722449990566130391436279159116552428347781680306924672179130951193754348245746889471470317599272250823836589739694901989228267687874530579126389753521356401287990301688038458048051063890889635553531165654700533639879812023170769818894040958177221263513631346861383131270128769157881766754494858572503205456437716922778319496132961582502747253664346288757494110963001013335659488676113437179494995854922814597167099893531169577027563868007584946223578655041683237958261816776405018797303934564639706788938211959353911792968000583110720383939155548636481182858255124342513041198907695261722532241331793112716872782371600426161822928729926408735698419762933978577583182346301393165504106753011395695839656983483447333894333423768608453594192966283176374632126315920248100477737504120900244526488171459630563194418234382404359968736822764028890899815268589255871684882801760167904599627759924869969432337548303183230996295257284769967403518937115012002796802255834516820242075632696156477342604818749846142114552719496581667582683596195980863157946086949648616081765983648169182782834765900080928782274631448412271524590790982225533958363354764146579721913574573144494064680976017691486770114603817695720075088569442320619031418534487769491776416911085818435083373476862244578195169401161375583351896173336680541638019599421165834241717350150612855132992111237263626346829409108327133319904640578579196408635282409111477484160767139614853291511270669897380438543463782397512048631769540127831446271882850113408201840552033507464387904379439344922668476819094432987213518212836508667062871393042269731856249757680485430192750348394815909758251344356870686724663847139070674068107269367930219151136326763829161993417721963918821470995719768212097041491845720606411262738239436958768334265094022438446949830656143449747820209012860528483614253764682791622311132114330554282717014083444393707114291856454536089867482937732550916140137828368925323950585259093699078708579690159592959994046859477203454850740374694759917666122530387239969630345026197191976051361797587022334455497027777429389946285108264765873714030035236676000501654318973149491243679119102867501559174783023272519428016788778432522032741476725159738046024763954240624308299378685816794398863127673895267900544439385251772493986860205334930233977064492404849531206641688753011724286022274257634419448237280613554963605805927962932954951965164918671281734935987612763190172019922719350655514625168476739168981290232146805299291072306397171551590041695712238749659404970960606295907792053894397544385245477884168162910352926671276110942037461303205423400269892734841439209559661251404799809852823859398533093709237438669586692338522346945671856371998535992604761016402859290159723068663541825192713740647741853547896240696298083742339357589649916726217191827896362315631424063046093846353828838347959605587693411134874858748110138000265451407247314565012359935230861202301548239526966876789686304441424594164400433223821881926380986432670313503980142077911625984338526580746041528444015487234456732679353108437252144464396924636092386796486381855107554904171278882451078477351990677569075324810901602681592951968571764058256398641022043983783436642477466000561965341735057510829245272554313512612923553071650421978448242672348276236495555817182991694003376376178234843018919615746913385394321601275952270157534130788609605383162929909463147583198236302517213285797647362453716981234084631350763296001520448512580977236546246752059404262961789330717867275086677903118723988299810891587477706031930189921060877421562240540441725242109347448615286481477606847900746307946350287243983249477536937272276691631915963279531392660179016834981704756998093532161774145349358808341619021532130930998957862651250755039312003798657302435869952678698547826994816272866650222544510378955741553167508619014869813807974433983399421449140997245879900985438913318001559663985709834846318285224038643775456452738133136764715907858415104218587976707310745919504156984352151808434988009027727705050259883704665562938181047057724605707601925485584580112590398245179165701933460854195345489502237015098149836419337045341905442717634446174606939818864682389517120344630692243677070095385602530962452591919855858478539970944002288478797776840188162020112923707552879406733036953233316963777484095971992869272458276069905818312899520420465098309035106068041331632608816936837373362727119800768186737644837949061395288885435352141062419784263986915792127668467550154033035975702069299340297857528715802133372689548171750959076249830811684566261730553571792511833520154982046312374455870360358329820353941070565795770653213680850184944968304943926886499168355521044737705837829577098520864552122221002056488041378975636223799550079545537625023013765628198624933598198022766438406001785632296070825263921447325293500067752470407394825984388926440749813209077119288601449812469104007828672584918420841375795641261367604633600526314298054079290725183537338592426791157396126899546971420713355817508492405604785031568121336971894024017066463294141188919195628444168267152939321626046028334123449540712770647587834734457013610034610266468979262722896033371677377206625012763321262356210897747222904242207391835113753734184312424999966782111353952415793184817485367705696097927235514846315366369176488273101491689364515729114146151360677878478399855628781620713570279668099901594103630199119834919068814615178513790331254929624376627182740828606066772717641031976166577423166333459870025727187873525519763060612824808898304719899250714537144747774993985972475433894820098476155573643624079554959968540695239662864873765985440459138672818280750016170586186484228605367019847091574749111736167187343507365524905240967012586588022817196648382746081216144559609606401289023000205996220009426239561169918106875854490509130924204686628451729075541690929287065357294400287160934004026780733331646444907728100440464828861373856339237997449392138888771445268607316884217831302068733270731515540195505674116263716943798599633211635864108588621788276433038842715784372937092863755437429615906794377976082368938942792618339443926691389735702169198572888766853178751554574697899169421235322986665754519786969143952223377753852720441619508530485685808688666531341810335832459637314686954030667255324921939039452067096122705853404395497738889566849255263808274408877019747645552248298363556475158128853274492363938313249124962230734309063514358637019914901429655531922832112657119463789852210674404054584642436377649980592457806808308196674234667587495725449375415484264952831995881519970202262335082654504133294352673831631379887536770521405601725456936857453324764081152044384178980704330133824443283383923832306404635097701695699653801376678040061390009186449151749942047581068023601439329921067691489064793991142522986677314192350732091699670628129320787389335214496626642699785306633521772249643612162571850220055638357076508286265029647110864261230076690814680572574143744044815068860739970142369305054421115295604399317801037041174173631485771771576284022152472508464612815894088944682454136670555028915321068670558799351922729586178839977046402921004843449794530835812330937521976993562868125010935954563437590568839117601652610100368853452615840230966833381487614592640820797001332025228522774724237361064368347762897980359982787408139959413170109358512492155445066864945326701910354180093516450572550908130958146888078290823543617272221014337108783683359999365415823176424029659363063144622262706271996104577133926281014677020291716474024044849056724797049672023162037288658970207394196647061431248224591485874091251484984522111982871374621060364845419118207195281249717046193166667427000646846270477504946995126587175940020291798789024871625029774474915751476503571582107812462336594028131932096928364321804899879445693118292519872203422492080214781725386643419996141502090674556973540056714778419847144233947540296480914409966267197717531715804100965291088864883583939217331564616541185665239056509140970837441027558185514541987034387988778768090715780824248617146076097615605619717217475423860113349405947651199927654447214837159667803930089323242315490686953647764534454616709343421856542052655639585356965793544911220617843193442343548609376228179655237512240023797150541618838471332639920916441858212069472200025421833495212145255693647804777469846621982096929799125377031206424289412942762648784953997727309398401219992278781652077791098569564020160977500767884348826827019662432462180456166466648554789320782079662015856207335403399675986002004380732085754376786787570050291739272349781717380834665648589364886116838784177285038143880478434606421672753644674024584941370344635386413267442731061877977922187916087589171380003430868197780571089928942617817955290677950170111735468397678722336501893781225600106898450013051837387693070870533834325950036247227396140888543445483499758357293503060647877471661676466286408547595080026995979664293959199963031999996864011630110118571355442854593233100081618441793686625972704361578771433055175479102236418719039287440599855346423211327787105712165535339511361324974721368907341025182107654713773397736814109217961701053037763776692051531601177276752581768333039579595057396950921273162876679881791100521115864627722009407014008816996422785651512859132364397236218812654468712919784490876465007657979565472607944942756267113705211843053691287845532879496850876280124205575278634618139721082928576602232614444270073423451721957935024181348017093315843747169131339857328702719016904101108238400887243126113725773513763919055940785438882134345804619220867580301771693029213217358381606290958324954183778526296861182241668384049820081283818977984671159712349662301956335768142052719553354375736877992174991441331661933999701926330280242241477408131721064462375962592324996905673514056189984797082625733159047187427228434221448166057778673553397934894050694061317986321752681846440917654796899215507147992503354721984434954631688410815435191170686370331862011603200510725550841874465497858911268897553314974228406047462035715312268597739850548939765688517228763716952090221609466848015237000599949622814781405748450375940682845037892167155729230386913013088678958082713398854797141777120782945304996381522330528262482173465337511210817214485659526737799219292709905925067656183488779705904788080279958707596485781237923623765761992026702753876762490278420287627825787375607950829802280671182820797560118208987261049567933999676639219845837767910652923342753744217322907382915950108898238439301869952813988668287908172979841397969976103746339819058406440317610637072032830176879341457236355075138231932951514778080182124314914925377192642801202062942779701895595400372312481780903338055346993423330283978795708643768363776798046798333156646160348981151523309397868097832164741698654489919935908701953656595303958857126858589009511734524691097155885596627564586785885589986708211399140405293365467232239610207351380496192438525522691230547241461183515565290048528928599111502176925356227272201798646088661172504542193633228524091442990975212098036699415895216061728263428612301599546920049687499853192614479829552711111001459580140600584540430566185123079500020112223970833971225703963265068447472142136757395900264239895030979871542300658323003803130799352827603680339277982605782996292808157394850582002288979245099398345578854607131519165285940135439085571961877568333226749923767465433005534842263335324579682322891118770345144034550992861230400214735014276297574782137197770090371376260322870219306341047315838530158263477599999064378889667051988104151861719279143481782370092662089838191338614906346690344826540809331207522996592407304637789226628684217051465560096383587337481822749463689945548263817976926603594897398128235554373483281123285662937593777918920961059709432562915498070742203150529791877751019789924028896985790327517769021465452643451727740607733959225012045304643408358922683468570442283165104147210813274620933552252960375765324588104457622645213595162521086444544533571085378123380029738034318809164532016750245836162577551121139394526802315956868557979076078758581360312985353365122845680376940911384858157983020550295864865057961302395059538133081564324221643144478426282718348345712800955228280093841848227963290130715245995333149091764790980095475795898284124321375706475857131832837095479557665873007034484617459207786757583346391303767198352756509110331556087578333845930142798801293813000014319110434694018496903047904382342727295624771936363374068250533287862442002097798816483673962568461976226361826266618558476104785445509746877127646173255568003387237791024692066949943628368748650298418808962999998839188804316919180331303507843606219876374269493273413102280756014319981891766634864895803951977347749028185926957892392487414303564061702778166369853694658608303637951588047137663794704617511091429522995973476917139485558334690756135799585580314419446739943327735917337732451815780202047544707417622977023855034008973594945933501271909117255724806975810051376728240023892360990543788731056205202822800404472559851857468994463533668022193563010688640816183174745343804552711740358854210354599433816758547561422008117008616914266589558588378658245624157067572067848913341337126760771152328531868309560261309111197560830035775941907665975190223912115735618674724198858971659731178686197161883769783489964555587256301633557798445081680641006756005712216887113385903550911895459024554474226089233900581000950330319942445905672586175201924332300300438662646601356187049905392648977429055161137734538136224534639210551586408495703148191889707493043916372640467870453365231769579417952347500744479088050953796684757462985286767712181707613004260853849349694998614358762504566581142724863448141941731530684589205497574803483534574419719663477260402698687229445622707435644601838049742651092467300421393576642718440794692040454929228861695885344098614243684988497230184049695446309692761552954693668471956687966918424546496869301314262278187540388335363160918650272705309640539378869024261636701032819962997304891112855028672496212640191610510395486947385730312436012608501842988590431792962524502362448701832640696748007623459252622355742871372645360346089824853286830025970570455662368563854931059337810356762719834760373517819430999875725936079961000215585857248647491929126181480651404004603316345837918453493920763369254144173692753520786588931497688889057141302353064720335553348193151359424869803898509169187928442005379053767247172594867279955065514628343314135406054056718435139765805921207278924819374138116751535850267744033270938341680631593269574959791352211099809357169448654796166486338030781401231171859716551767378018759593413594205415772220940141316031886597332374630307054004078769090561405352759334193046471729645881192272998615916571628300107820663662438062057889172462067197011977169563942507071096228225795052709909473836224947080080766395810654115181708358651475651661252543896129052237556168939795806852679426992650673568876168547927343465498469406599743674179192590935305814425158137267097126291773095461320502360299032267089767926629299812190239332566586999253341842030427237879474245860565371952570417437571332891806843598133702433441675418612488463297345692113487900545638793565560937986525230395711747273746525508833841933712130721507501026742501828775003161107974975473188112727637836758717828833152639036925652212629547594446823542964293139336635703210181237452721476999304867265261015309189363538246732366776924716674964710826954098452914378857187927150484982287879569825718421291540703650916475893740831877903156828908689898654677536631201405915275955091972899198900512190673324392645304090631661147782877404242035199515149229341456550841195467747278886294711147448221346521688446358707649359772615195464553947520314725172899818232676427317262425176673588965963977162243836935600421002093734407655752816854103895294308114629449288570740281763686614136702740778538999313493309767024724213525179352217850565223565790769669587628125494775296877477697089661065711097205372255874066766643409562318156128284392643223060222468275104046914352890379387897122965527680238663592260583153106217016976616872808711778567998094233373508488875351538111733795086481203937336234346299020979388075184234811574980734083843779842510235726267837238093705988703765978434386292427521752092268413164807423641970935018087379729820752736039056431083201462427662753321755285595338749379205375309460541255381403673577947055705073586527782324864764196943468922425862690780269589768460781251059723284067608191095924050439243120602310744463904123140598749289111081302485651231276292164101535232971986902637112945783614334373423205113258432732243201277293547375993030847186845944899137730536845747397061894977890323259910602062703881028648914436082815167247768070502272644571529206573425049575045770415201244691797464591781681109032934323426846622598934489536782853419545200434975589601331188624950680491646385587217130072217113465191576720059968743153382825433326794837708827359677921298239812431904648286824384634367596194779112217726731248610728182532693376910508961430790228308230396707367836586835112794743531507615112895829340263398808366958490714100301192306041173666627693103602127654621944262898563310211909808393378801852137204752747313774664638544814860573384841988173510611942392756391959544190706645350068352640113785602225913201061669254740300111797530061813941117506625198487222189525577560974244277400586927843741168073777721562606249542681675935818335174878601984402377299943755829384077573644573603794323531853289466834303212324493948658458701155785609227862700682151874283570349520415246074812519051701469145413354231390250547912003675809525762571139864573487168851835439264233118138759641184819299803996694285623136783716089039972715257423543335075327020288470859351754346186095836243488984396925560738306196489561120008050224502673689621936859043939116456548405870517862634480145261064100460251409982723541384807175828435353789668239476841573495113884222724682887140516907780308155060474877192736746192075891988250529743776534689101045030690739106016561688746598062616662468921792264566196898197616400431800410065976813843644993777513644349162991181101205336724744157910993435055491444529265693194489244969217775439269989008941249424726586299968090137036720702918484829411978831543985001345756231893543424454827824816514161606061044483027878084789541299869095013972973331078804396421109929004772302047477934634840927088686649214914859170106405564941785287869123269893646823912532533379231524822137066472911588994617742359646061324976585876406286475812675166423713886162576758083247332055520042904922726632944811176872836518875170477512808483412240660573563823159646684490876570418599152168855745168162889059130082072831715413985781991731479326462618565097015550896165228713289952567722802389521167867998584466336472387232141649741328947896133975477226315551632538677112991644573691340741459115657986472630861589652204676011265749602381217584199046654885013561815708638222006094692596466699966415338732611009543235914944580133494537880258317844241731659696299698627188311753642839197347121123634980275207282700959088055094927698291781723734856737902276371796720177575237991032485216512674713348462272397747122080140433568279062683218055941095024599417654984163703267404933725153086102614094664594104443589753878644401793294525283314541370596397631020003663650327077085839528175037452328504906165461877525666729966667990636057772778633720565154686267487085778287486983870129739303294977794851133523699241904611869927434320878030951213287010474914929954648822651591179930231136292571769329598440906996484640358279068337711510419134191418314431903753388600103495054618785282634042451870720005623745031929743995503074970323769057085491732071495134689154799633621575359746907222641645558037018617855214145937918717587226521355689769664285271653965409720011010171626532814876780745570424280250650763076802842135079397523564126487155223492629925457896442472707903889690992400356844359097672026863705545675136199809422702013436123074487186224094863392153620804228776496511921451513262162444854461597678105018271975220187462477546144338692615134256969645533959737279247940887040575360269805544288018053353997846345315371686089501909441334236023670228810429863655573752332648665539897441416351675277354994931302461790889896336094252841944222101815978130208864008797996572943341260769866259570655071922399699539878447886411952130805749517311907803978851736792795818555445740701848851555231727734080928375794286889872903552537656318678330469096795168392261114883528874437311164519286002042623371137869085654041573711895473903907391304117494380622737587024862707110284275286256930892517154551009620099935177089184026300679623121918744576698708466241911121772655509359683555835728697423953310892561302844977922010781326525930452089949832074490887600162999732458054745318540188609480918263982289638823586277331479196506575765356180028633888396439068829501362334321108858392821527152602778250594060756031862118694375874971153508348209463654262867129221285025799704374645608126828332942515366669273258159004191404153843432864603287476378971555000090889177151687863654401713504072418505999699236464661291138209649390873771297596169661366493999317292301556587045187931152590242502769744004069167239334206322522521442663783949284766011568281274429177123813833031436011475309493947626395384928290368318422711056395125144524276081404540058516601962874278923790419904105026356197035407673062664292445164193164242297310235943947643658079586830921225666444027570059624113013497495963471694725479530057577211427958385030259186614251130933505560969635724702741612379994393116800036618032843978331289802409557005095919136428816088668762357769249713656578448769828025798032333391136325752679090659357770638826931786081630910637812754036517593288841876480418803229527092827126368765876386556777455735515404963628757333892819130761633238729829632187067439117181834944161545013389269144755874238806537538927451170573965447366666051033951669025648469625255615327850192087361752302110486002483295497001759665479256422945216048185458624868465064546053464757863862165675945956845606091035363418504866960549795363275245303796509334390651838766676753104750404485806529033805303622500320680648246518882244134935381356887064396308134993566847828572896730716092024484427351841270578159241436623413957964716520228429236351935012226753424537707597355709234519487108002132137126523192201301217526110735163759856823189328556732626210883119567829528388233934685138988517366715488289924611095057382882344464350436351082812177240305932728793497832855139820978415540552163427965062611558558519235055332059517514604176574319200456941536951491289433766255992927540816605674355109741674058774149909674425210831079466493575829653763451986579360715497177859570858039782843523123552715738233350339447143796664295072692875403085418768418505389526587079540479938957934608711200285734246759563028422154023953265197661130951427475443906550515388575690474672722016623745501723214642917158183721316529260109143269346585343031877449752242142500855372471279523966174539755781251781472025696705931634071465042904230611542564131949125616515689649365790600763912838965920174287507496980176166408208170749948233074694042759095594129681784175245513936898192393373400572852535624936433355264186785253058729939035620787078585803674858867373325386810492097482955600126961319389497944312061305270232608235720899544618762448568505556903639792212426239158939441713699225468793227274349408601591441902740605784398892028324430846103585305301753139306550375838517599141717104981839639436685561207510939791391576563623349523181910664040132807054790383483579981176779425177747727061063380457641215168018204176953783057381642573044120832553764771233635715124276494034795203672339490974477456618650155253795411403576609943302778021667317129456700083427142964815415042420212430191558663039497225824033510211416853780033267436695108960643849238550871313805727935683893027392110867676950314477112295370330709109711905584860345743093928503233510491989476667267248767524266849873958749532369396901906485484284343085647387535180959770248879989495526434595459796163423987174812591968631273135074394171935818640140904483139206767588498720493988467220867633265670986876130252475135760890066248904078195378038610477381178130169736152839281063214645762231717336265349253617273080509142459398536291609876682407469310735271423874710536630926994110601543906165113499682882872609536871393716813695252095575791047349282959301407364458374544134938136412161386064412291544537334290435069403478250113958426189407809593263709856317068633258975309813237403045015239361427669935541439618078206224011245487210244791152987868193459721654412045705245145212661170268463018125253170064458974343713081880689437132564555517808641756940894120191544239169880607697356916933956500629968340458547387305200130585383438123016539293900690058514675897452224131025414750882080126139946417724261857108991650690811352025989773515060776061201523473988841026797797720426567412012765804850278810558664744278345228942618717973786308656812867089096709685571084730071898634376612180244187092919563682395547866532490498556113126148738244959075634349823195557465042915550787978712538802173483021130914463199969984652768668612663661978413513161154677514435691912451001978109355263345162200910886241187585527752330288001838730316412672830800948638998938685068597494977560678386862669793594140466195777233133172761197904314510669361464246291773729401608884468426499091960736484861862160876587773430694667969048468137566013738172566582890206636878087320743477421722500995859837326042883255616282056416560348711855700638650399545813224253240159378910647980235401569629370246886565950270653641900350684706550328091316580060685934510823335218278464299946845832101097162875372237879866849146344591898643499872246756198485756788407103397847427313888939740212500796022187284849105424037616976310603086914981687857323899123258744995909834672496525624369849181214121478840857291981985058680069554203934769217382813312496888269202663868674177148288852642662167858746102646883880587138298536912634526232889811446473233138038079450644678670913422511039329195819548805597179855340812616958524510825236905050037289248389949570456867059327239444214037533847150776603404651129401500094971828144560009085768879879710064339968493443297681950841504616314693347913202427757650681943973879258947822936185831260243545319118854438266530772287136938542598969029037290644631739601791248898163031744846714670368976863537234450545333050558742381857391601687995454455573289372257144608958177935180231328272551616250373874004424352063955056594315661361033968860666512728689922965822416254662527793578042541183126087844053121583016843026902220727238333435599421595573373228709709044158345776605751487992838276589150317227329010367951275149483980360560614904386837141565571726203472851506261912110381804121326410044544448695341014080248254628851267470210794155319341181950041165322679788203963025342577670396242834868069930916820244335877322978528338608623961504059909779825994419567955260146089066894542577805104579244203401767862270527970422727611347279132146125583595650690010934315314120845834497233713312573304990055097947367153798366999646443514308211933658996353744165840516137112700734417376430335704351065221470098513250620241457519763365157034821384483398791274891977246842768231378827984535586478235695973006800614361505856105655708198426829127627960492366306859177277835018990864358457301013082219725283456190733554502328467464840176698849878063438537231768069809290706572845525597074027972673863243456763356013492392514185436514043491806870110522395940136994498371622901290661869095732190266825879746501388574859612926731292871406506060944887040309893153699049785970371793807274777725304533826909232778784514653789415400640516903855001776491784060043533414276315459117732206940176452674824737463265468836588072080339389263167577839479616074225193567433395190559489399057497324407018131361585074235764132085476466529240029636582163760735241993806048679169749059069460635785912221493265777038172162521734415331843591096309103423712993259237744295217920396042565518448071246898896065038416110097071986610303111562261449511044216925447735350089608435898454504722451771801073715045542952169266683478188704757064101038840702001354781010897435465963116967537916159641064759319758618751664520314958714529848000545311673487750451312205197165629426345476841354091498333804622817666909981401427140320444219471687989825415254232704191998586671128750656653489679795484707343932166692461268946771689637070760972053843870058853050262263907281911872924906028485207609067923911570462470651599863402934714731178958956232670477504511113390340597473589446540996313923207788592831813049208744329749258306884096426987753150658035696547522347104491937737805100369135613955329092752220348109046198443520832143631977575701200357010293834644660643148333772039566617926958336828783000586983524089732848626694944221897796757893300107429806839252956303800546692792889728773862208642578620842508204530852186576193741567829877918309461153048822042096809441742198914063479110919185188436465536368058478100078720282202235815340666899215176714986648955228085780484052954093913770683653153825821093167974318181302964292619079797739404070108097256084435947241331854802426203131940071468402813833015843141428877568201248348915344929439387304681716176653360796346821996750956616672117587511071527647188041163397873973067473736937942256668256417966269921712104968832602904215147740000147796734616276501505256720085601918985246020581996497132368769075822818763781130652556871677941840100376164449255919568700321853032925765458831147432415663904999525447938086325199949851539453621543935341408232640978098101859907004127479919821544245487115215959935332456495834864414891648714205490405495678809028540081054290056613130407009296516584934624667160479215281920646207994422849109321263197545022665348573558700365939490623373827693181671918156475573838579207916942857183834371105187547035608794737662280367154316202059672011672838656991995441523141837062601900764853602595436599970128341520471480798409198501863531773168961501982313961544169669415880251108397533901219652556136792088220425045915079563973508007189049521071357593617751254666504450421368020424042261116239633393982891416823115129251007149295554597103131789501086500931244011020379156150647606492477240562070893398568133822626133014274187603219919938982147095823386644542027577852309035898101134330653791738419615073386489277292337687017254620318678646550463491002390497097593817182392520212769653945793652602573445756549673816016315355166651955066380265719654371789368698136103907259589422527530902029926658629473446055717098736513896469612126470202540401522817686904588764599025453859214416146321231151004687436347622283037052014581793837585558451345135786560494947517306935498174441553235344948025866492194696045101683825715528600077237398996272986143275073392166994554791042336483577272910932631902705799677657623481382795574626265006411687124769862599030081897613965818956124843671825251627574051945188105204680842614445882038076280532626967722280903288870512070197910552971643593692105105695923188292651881275653252380420570458651935224261579730041723162747878397717134378772904112376672699879652841773556012721172274871360404178107313322693467814823793174381515976857629694533612100302334033036296465902102326255899765980906526558681565757570711165585701393574454830991409500324544088891821876105676537077026236410838475549070518271902270089119545077292003053273664011115762616569166741443155691550577515846290931405834422970600357062127140371271330101639195289031375070392635367690598640812739190803920564796891904347709903773181982693519730960081246885882763610937827499495614248366989219084053554707818092680949732975130736426173531526630465192003269783140887170240890917779042999444497134544643395224986795788560896987829241115339124104636818700880158237232224522335516525640100240023043257765334167939730790305534655671700890850628889730758913933826844013200897140818852741707346677551149719671116618308563859066090661319216311205615273164185456507483618549332183049508086648406990862519902045336559308286485614789115013492993799979273140046106655970816471245624627061961056856201282819420446511158713139989195046336940603776641851370915029006936857592960679270858349918828415659311022190995519085782681675752510757631906014367178213612308618310088489800121915319474611298237713982763409234522850365900359993458634917491803766641714492734838160389275797588170808369698462256056577851663046951366830404651048382060467360234825014776589663708237615786691439950760518535150899216215348258205047535272808755101037946165895911693011778302516266815764084130208694606601269664499329091443266762263261306822613259858960410005817188372946949154527335548090116279473023766828324915737174241284401814232441464614749066952239600832845202821352176371411434227364832844082280360059889364443081921129493496822314876518731037424062825357992343338190032565683227233637483089909652307687437085378179072842453659208729738109633376096837219284854088033289886650274677297780916270032091588253426206751910192190724038481382073399286998257346212428997563594100687585492508714975362136194499403670345689919881379264236748765035829641635831344111352967824049010441642031832629787116036576558170664309569339097159581886815432235685617927894359087220343220713584938412323083588024523254636860244569499292041764808807156038436435659508921384957156723817284659948876183379769977268616097118336798077831665309841354471175547587219443654487214750189901214412446993231365650951277415327280142704805031326386150348823297508964148676292308736490905814410987826879587685629179784959938112886159530971093329756679034041328037920499970500936140913216060333490360408979664946845542237261028854615789016421973162234726806863128300801047442328743035613944962559623262781448530891260555456919592009852411708900307398658629160270276464037992158978627969315476829902841543514480382319394489410053206998905049993641931766762074737326737985886757372072203348020931754383766822544791820389769485185530083873300227736335506935536646578704426937868509383218291233440720011330217998068089882449917012466032105049357507724518218867853226587235710396584676259467838349613626073988067612427407649978029545150598372911756170572851129250744296749945024821521356409193967552693376124267468115998917027258261046573206335216131524707157742339122542369634945662963106714815019038677425837153793953712195932650419636670092944638740909704070281260325589608168545980454880053593444202466326809950119690569043610016761149510213846279487116249906652962616662770172808617707225416781957089106234273379359483211672508319157901423982569855564239371901281815645349974541220568805246795540783541147537784989444166025104620558809425630476833725891799146447572472239987670876430325014089714862637293623821107429805589195431628068099047467433519641727121521883781547744304631332932536048046372968239064117331186847487001506965267268910717556028164503821421794520522494207781319990902584471388026647434526619469651511328454963310683515711866194956371054998117891003738219309790973987296651615030786504311877914488665331296884063336657585677085572653963143935393716130802300889611094339022886389052803947504834150481078366078089065400258090181646659022124389910996387983282443777574139666905985727193033383483470009828067232219502647836567550769085900377089878817613091454021905098599572701658272849788503495088227730957079418377292260462536959251252166661729148062878732226686198089957284964704733619685375589617058108759856141614361314510740299538973167946681318699464370133130139612062406836345833940332739069366687683277073823219904502683232117209077603573694248622001094652876955724443202696621135507074062779793585711861909194938185293919010016145889163238445534435528968028432412337937912943556954536658253530756751202194819473443449690567923460336748956623450503200043414314246961181758598757829378936657847193740365334864957756004197073408094824061124279386575896379549235208695573361511264626339919758384253137051696833720260219016895131472432224520346195327356390874399677796285016176005980343077000851459276672777408093817394455196983324336545344840304816190128166076870136319742636284978203440690602046706320201763080421401672404543890731075552854421237740150643678176029465023927806649877373552468283975769603411726053364626027523438965886561148393298411264773790561687925087443986287691802436118075571558276073552822525072502161607462230748815813152293112068579295476029118420622786371315247826248606379240183443271823870490468178898482864192843682545416803837958896106030823791555245537950220631132761238256119013147976919461238925501210883508667986007137853190859188981364566691410878306586540722361927810808279159097994513639798086370510216759174061526694469811315540817462974642296134098053588970098490661308946644319477887653597182608854891155737805736367965934485738982069621142779861997268321194503733671538078882702987307270830820021102716635640054019563271577797886915290995945447230067143932413857709998016490386920705454990255513323764630549143183458492309692017401655147854089723674425888708973050115153374785596149269131625993523301815908373596747452901218195945528846346289091915479883502757144777992884441999464831538240895460095088097882619944927410292424317267940405598861493891304234818432263937435711518193289835329128943894340159414117649991200491438519126856762284627625070725400223531147275629877662749221461662062742866274684446706441774320178168800123705354991111938372821212199877904784793409679960430990555898709653931941821577440245977636031800885443712493560806037831781570874967835422811126751820893331045628193864217323625438365603805064831268002881525244877800584305118099552751294724354900152662839879266926271471503013424940350553777875613822378310069722732448743107038198907229518112449589749767836573659329061986141095497125768474641541183771239615914633082246856263062184002017548546934615007596379836018026167414206720870637047252218645502719570911946990918686830704050455767253838301383549863998612924952886917431627057031105112913499273127842178639156879263146273355064634383322314471355974859589899428046089540406447413163426544136301125369259194532733496320637627184816091490609653244693734972201642044297259983834136736243176103968890107194047399340816684141584361865914667825866751369759750537153510082807126878823881222384196045354467785137493572711404555348671464464210469756219016502371650648529619071714585548456986854456950012842038294403805523743795661145058889188225601231039783029579868323421378783240153866733335834271840930066922043330148996721376263788279435354362275965010077699661738412397773883533871931293184612883807137805668409995625445197390884497420918900908803197550376901177473943379590191399763971219062160191109501498803301453215059034215084935496282915792469467534822129713925312876337651064845258370185870019186241347770189432208071517580107696882406620241147018948990848968470968212709578580219495083902360562814684943964046621712673154295585932900253164822348165930231650923235323325249884975388261810866072234307735791525139890317109603675992338202188542574231671990786692713512570423232810525343328909293217429728538962390304481268488254476078482566798214395407990826321544149657839869028611659706294479691172174460639262118381768498907538659556515273194181134195391635655969879928231290992231765150655094648138735889962354823697928850139341477355654438117183088284147234329924096187664237557720978745477417702898212251040809538093028466713175856990371703661079473806700401605203954506253658051296314417423173413489718056712069020564247452144612532871860485813263941623636545980062608289047514909133736869845831496093498681284006938488025989895849199862374008909697339069732094329103436392537858961192669085007440582177347116596814374329021316467409098363430217975101203963654156071846707311933318494270125788553688698047941158608701119844753115515451794241454575046106719787543712526019830332515514104827411375941218639016569153897108038377524305836997169089796586177046416478739542262790182159589378285420968318864180855310231783816465804528030166179637333297893826315428811248700261757201078293884872263099057368568060711394458858175690952011413388482031920696968430457778325833406530114084130044962348311920172939945603505672436286928049010161287566958892015609729832276635133080909952711113589451096067966804869766360521751269298005020446435271992558318004435228943275474732952714748318066883464061966904052679711513060311296960589960019077990246497751501441604681267340967674784154671601118556503149305472400230030104188074002415023724935301631223352925393670791403235594062196787705400661948085874818832202792033375963591502989027097037594170921420614742178559329909298504592890057274291467656725755306644136845424216404306213683515142629343263431768232824020187345781176586026452994839236563048083171578541800323054684185831615948099647101318851569378063826419947651131877925071777826960698278475717265238305430266046071043084832587801548203682060423962535320041011202751595714208168476956232862737106526963899368697071564659776818758340331628250093542934923445543081331365181892850207154451668364670860761549508048684307197089026544617861210544387760570440544381584614377318480563318980851727064512544449114058729433658345314774888716827702990802695312783842324681057486793515216595291911663252811224777753965801120235425060124328028089014143030839563549707827003076687371421061888106791791316272634713695367673418025041243478672545150846378657920749442356542934311763195535978286046544423176242155966343973693002988338217946255964162214208119791147010600296456476662659456071646195598445150264952338576987636996496501237925784013709237557801442783202975568105619545020076553497327050250198202657488618433105581919461743674234320174126356829789266513968562654659560681284756068576861455522990867385311639681699037434386286068825222710961796003911939397037283318631242497608249983504633766963988662433712140941484477715731613644023355200141057441795901282055616645393931014249605968610422874226156581872428797186742927519768758178543988215953704770302532639961837916324702863409604618608250164340767680453491900424073666482082850273822962670194267122006542548227882149167637905945907938969174656377349587223450033845404951137841150207028772282946191431035425494507240456209777462894478473657968671999866515397350647215186031170348425680979508006042524696942865242535788555531447587319218559201364390818315735235164135786724135310861187364969888886135050346856766231539286384222883281371701180049273520415007288241748046889568450453045822837513564055048282075488932066945670822856986768149303210877852367918206135763041391588146436214910590379150702406569033978817390492240615934884187278030836557796350726159076547706201713460486665445580665527115943332050555914997708352896695728152716720533739957937690928692697143571529709971991511816592089331898645962316533020703331774911721565196558316581443936161505866143779126768908409446559842685022427339464644170106528437831583156905110057703521233546903062523527821263691693960545722943071260018783165566097837513100295104871790166929053364195119132020296884844495445464373298293325062595621180850429482151824832367880407152921471705408836170792437677993839602868894849661038040008924768827295780026189560458643726702341215776281171425288496447719412706020908566063815372004033887217132479010820327731730002746304755755766346731786449124864266980574526883131574647622791983135918465229137148729282881898966888551290893409899840426621759825309641247449063522107373618355835463074574366770255227270160783363534424041704331628142456357783362071652981147740602627062671497325494685405578042190571202205273391582044433569296603911894311015060611900693407566475844395552681223735235429963524193185562334738247007740145129356680692366635862814446222335412785431911297625041316894122692317402069955456214184573059626287621361008316134626590357155742669406613689970092928935209031136326587919414920820602662486530477391252031823313349078872308318530711313473877720037335050177618786654625159733026996714017898845585569790786403404186807434412663141578736283872934085070274335849937168341367444344879967726880466775899347977301727701511506184645027446187883010168687514114426598684558592443211393182914769991055456021396457238004706800385508717044337054657282651629817093164265742889191102385190671980149733990782936740615077187577321932298579946432183552383436598610784593314882599231870974669241299311212996277312891008279091184494641757928018061316538059267814608968484644594084129998887000621339378870931483191053717436123313436716934442796089707502703619532778948781094467089388119279288521867732149099290953998152766542772232625882684316773480559506949757144471616456757446638723320928097555938816442080203090769579192627216946805194627022395942307496848708619959177146993122597428163650153579711550441963755974142880882908393105000058078806812631400651591193118344105115014835105178887064798149800640144387492022591748186374385895884373204028339983422689159934578769257215389510372628163737540033215866509438315864545001642463636766364557411507774551212826676872731185221558207983453993662337125457285364520192315307518719201210323775768009427448178652712374381434601652568697694995542767257166548863862027843452264018094012471693291301621545171802931298457036530212933105173348095582806557134873803981964402608844383607818456386285979550451472427753667420868538083847914253521129462726685938707734180504129376025401844787821642662980776419500053057663963282772489557516672059021486481863126358450560002149472439025425105097668735736482032257897252996583529107795959064474012889177777215045219080536666653952945910444711005868507713242253526481597775297609544617842445821672498973574214836589142377502816529230055868505223699867143284212116151893208277317254351713610388979007477597757140032845810546455608643034375125840892084382198282552227206417506459579934999667722077436511833178007248251270192774474331843157023344415021520894624801438016131227128416586929690770353713666627275968985331211274144280291925988885396927653254004827408016078672372121498854965739530276353930271317586177821540053784503275625949530324950656341080960469426522139628456629034674142628949052542892309801587964954273856950609589207106341540264288601400832654267045330720224814216184955563979013087059440308011164284854552021441283211955744379371494765864868775046317916768446857484780057939466791572667484721355242410882307075057903333717271944727652594137905721278623929342211762337039570365861829315062321721610881754493770197984886475849660911443156574969627227320367562984356023134967120179363155279744727674712779952944084235485967493880314835983049536348980188974582867794214796929323302357054250925240055969613093000319600327933607466551418549607366861742988292943025587784717727537545691617072658133286210507263091064932305776061907080149257131886376969954063163401881654932498501186601893820982728450721879907158552297666510188420712036269024495510420464315203457740183466798035511636272268086936135029852033050968484165365952345203631085024962290808267734824351704079398667626505118641493324745977753340093469680256188383258510728662911411986107299708578666544291998369255737723745277623321645904188888305679699701553429939258408629410068113701674513962428128599611024866875409460173197307174750497246819562887642837467619245729880270567819498849449159303168627273661812095609370823451212799722172226936194372999464852683751053443994160028731438369476009068111789754157600947670958642432704841830731752738157104286532273745703660107947710692776930186171463221999070086951238844078633920172030796908678340059513703808122701154304417994049550572816160860645431859314543757518949465227981053695788882052882140000046835156942615912442547699101614355576112972069369806260383152013037986515587776689928967073766018092774208408709159454587614591628926962742228010639430291448463399032907378622635847778838799334780475987789406315010103839786973750222156178873170904885894757570452347978857170620407350718927047069483521956988575723834540551006897978318745516024862895717987029415148027617614244846729879065798354312030342923858446295782211980171452694309574095070145254261948000434499487965147664808870669494503971426033342226212705174163014141004608989488357021592478070487153487376653903607285804838721355727676454859231257962616600509947962617968572086216942835202924857272326792417185540009758858351263928803210837999446385039442420959167734981502928518055794508728464888403804201674503865070772801593886047007813251273390961503901218881662393602212375651019956412449395007967585692514547069735573675712838614531723444937311422585402577361433368315844039463217740606471611895474064189173367061037313081714034270990463498694155679064517191268157247895669610181961588497529838170908513231950336877698211407113004014678947776681793305388287872481153746137483184231952915617435544169730201946251971948031371791379315831649490521735856346851861862474739514575550860862414081642296211725348523169443391078576421176946400730805299198092325443178568734062646272880081196003558610301922225439556522260196145712331635644463328092939654636067810096004543155142964182137749330810793929161854028861852616894581386193354678976257968668498990234623491523499436140615520664011286628193742531967594733598601897047816821971257909610931228615920046142564449846279910146690484918020856874125430304213320540891804457914985518522102272506411065733121547989432602607706860024477257270298036709673515224442536768758235886486765200125757887894082425992652648340333298422983188515197261307711399316378903012343450167641624564873466200909612283269308443038789207321450891343653295602201663941382367173379313974733857695963373971140622679455700305762349050913086869387099574385466607674253332153544352346687908865536111717380703809665146516566820650401463356291907847738291255316191636703583742027824358644546480106976427988352137693947430086162837850088085274036420328666724689594741941661892428775614052314247349255638440191461612428281503423092093092942749854313306575952220428554166651998310153034400206135065908213570980421411886716726928244877104618163056420228141076559774548555070086930842490301637030430103144508525111490354067091863458847691119138947491161959790588842438555590002938265261686345993349218176089545868472941872462771684007469687694597054072362980953688042978658157687081737767101896810867978013490022484396221589946885919083750211607752124456321079957973264667985913206951890762715806597872050001440446068082777373980539878125889070249607864976738166382365170318127897399137147920210570239036802909197816877638796835636881170466586014817312462436918503021673605606237898459439794823801374863079829091033633088852333635666763147348681469832567503071938623842941833263674071351231349419672753499568132040602753235486234389242416021980878700536032697950026641281039751826534185447493088326123769775323913064692818465654512983832658019981745886034973810182991120116389884771855735053775985457680070582951565191488416173644593055819360839423624635748939159429523495948149119951994222292963853991874912753597053578889426414297890978698272009946202616331766201668966009156325551577556222923120251572207603749910099586034429214267251242717793586042032523586389352096201977842151052821900489929460733521172231210377000464678511709229196836369816020231698602746154656544367856390547052776931662788284478240250828782070700588163827759005254689573238160303434121066586585566009690231082736554174404070501030933510062211600035102341172649630796519470488342562342724864213099412705071706073958818133074033181976210558046512456180511627502483754439983298288513181678641218037734599008038972175778885309773109658918137901194622940769957334956125000154166242934880548596632656986503738649901191001958778306684308851305451713985822422818469161678173821064974913848187885575764289279155259249912700600814626763460283762208570704397270273446972902552917733769362769092449313142900866720420357151567614211816249016542621209169347420993380258576508632391081050030802308654910242035112229586624955797141407982472361736801699442401322881633415791899800158303227189242874854839815722981629628296028916094140669747443888627209075136620134423388797656284807065832267127363103837104506937664692495014852594886822130852513656554709200435474391467597187784635405326463326439799291714371041550056507629138865646035728728457026427743327497914985821523339868214017209633633300511637680765851102364374296575682081312358293295516915846269328051640878882348040203990951743002324793242888437781567546470701439107939382640532711374593927293015142128976117508890920687401240009341110145834314003542406081830859628084084337725578353282785237714838805933233531589574937830999221922518288935124179099553090654174637764135598161369012649009443340687766763984843908961261949126706622801208011425060660606783688299131528256314916806096564820086784524857859891479731003714960186951611146699230153479124253913395517614036346107903618159295985457122102093004017273302799736107725388455585358587449318400436597337128248275037721950881277319965008947289157532504234132334522141929665489711904670441213647002363092344243684646319243124092931184660470510932390705855289069601903532555987578711203167854161672225316789160480454577162265466644219142365559289318531894994472946752982133713854688335350874561472769340231863926534211376142144133570550882517953555314697067586459057239832919146529989864855857139424570911448341426892633167505069815527770083283819055934197803452010939276104994657303290804961139329928826338075467951585042476352029831203280213254290270774898604733905042810123930431971123371722570335959848956085631590024201651165238583097920412438846337301223510457155286794834019461376642448517654717776769744572500514837557393210708609037766619151075974669393192902320764834968676402630136982621556711953829200534383353917236032367998058307132170030822768951388467622524343502390953093522809508210353295096425734153959295523056787207266674151245234475289319652061653657475724990636840128599009605272424372845782453931705893663982620797577386281401147988898050450537789914521535023320854788663534360757400758819608354665489552759411497982524745134075680903773242711203729862431523400190880540984737668763894646345125688038750118480894806460250837650988952200335528810589656862888003947571028490964990826821111492399546564763941514817677967038354634774657085574218176635342982136540164828586154122425160653638275705065448539527775252967800741253055325011437788431362123987414549664347922099675755759010929463427532607956182553506274953504491718620528186167577041437471285076111827915045920208530216277571384461252873579133567953311105850958545009150774294281176536208574993477374406092198145818735321209844113896593138360735043908280971667278219751103044909530995681491461723629698637171862874133415566417156430594338952664401107525930700039011667749012064641756589776475461024561232080513130479620839437618069728825353213583658180266091870412286871271086208631696893225842546141629754466605385034019323222890424935385848768616890651774291095802901153289418750281582835303507914479051824685491536870466719285612264820698245230036244072441477203120685889514999611044781616869123907579063967667302314037174464035353460788938140454897693798205565191562944370494384912918703694164995039216888208212386798860608029582053040131639696196326946626354730842695820184555959324158122705856870576455867156986284939557084260444653420766368294497114401219332944730464611332981378586624711096468429981415334865964618961971033203280479964229015332336248390250377391151323552812687020244997589980049934416780481402922300853432353254272980619483514075469931938711102355140817995292428023843111311375761010677849479896021476368789713447224267749810478069993132205429652157969637943324460825317778529446591046531066014037803276178949589225473837587620772939314755254782249836813272027283790449847137972902081137044985294143262509667410220261895618700833895201925290073155953828257239325678144166306319643423327053419558873574433654635567846424622394316682488713047015071878080834367220039481843276527314581512927018823037468019886131250699223394178499100531853654526474741013067540059283690841179690986923592878837027529867834171670429477566520026031867241606540111098753253713766913313119019808698797160351948796712813816559298618010491987293600343783888357697445334447168247544927470575399191236156982990518494247245798788329356694102756342968423191065840531271343135958037262524878095781323798581960134542349365441524874432352890760343404791897938844932490439235404542889707693702618907962309573279264939611375649004756205805322336309709147733135205977769707391160885624438419733277795342402318680310631921138159588535563224619056354901700842012621013995196031832120264121340538247037149474554226096074430139019752955393617056460525308805283419372198726431801299526247804904946446269605427263479196731576530082089856321998580240354516745494812911592318514026854474022364729339963133361160952432729762619592356071231052639641310391372833399405744354873091208928534051502217687607723531291096810151559891865204095857228542661351392439541694916552527214836373708980648793801776977725129604375825137858282315696294254983856147543688422519428567926228341824674659613900863761298606404330059550742937990022457584731796742893875346450256006487096397065444976231168938190205152998152416151464831623824994367594757666004419923193561436713831946646289531694328992503511580309147894828664394486899263562797440930615735986557628240625271607427312477027805440710178546029671514065503628661817428055256323812652490937993907694992315936720186949965374541401945605116648278318084997871005086200469764427024976021853114052581809494078535106808741752532752843332738064783637739884592584130305992189055639807299785083961175942210184494303832331536786485323171741632323767135061803743212171172641266907213503611867106291025341951112429118437185315234667247514778822249771226710282456580089601942747025582515603144738718389708262665953541443525821766759384097761732186013450514294083529988635403915272522735196315229281690389657868614049896776579124321854287623774592240949807350037943211898835713148803150482388555397639873806256182549010048362728617245393831489116752354444994557884552458470064972371229414916140592971296565075694630726609952890764267035877975103689027309348557949139353240484137491279025935796469644474730858026274001364210269272845736358279257390438852512024925420348992270701618831133929911627548919829434941703802888886915021397549040899650896966233100774109311810294588825481465438496335626353337627952956120007338934983555197341735627506146947875812326503402835652469110095256186831322168631230933540518418175713960905326330874740731279445222463056374892451204214920180597134192432041526876182549721161179853137200302299773380708507968523980659417103468183140619751314583579041604349762238753672880217677175847348980103785888478901508310238672363612462668727151943922945932806046045993918689300074879333447364035579287516805723316135574709169215891956297292214807804765444833620946685889749130114064272487735613246402220451425896623076198434109478759023655075548877761285799148629978450109485468251668210707623175999720808524051442397738940517532327393155677150646172338035144990982106723837246425348237421238765685755802755188067303170033691288553829531697517409781344899148393758153021208940223256510204674994786467839104801652615951968198414248065465822966351461155938456358908656961766513169993655258885411870959588798154369093175586735916025515101654842383304159055657500083992175039814054225373059196198427654757553937955219716251351449807400060510544093120428013001032117448849115534038301033690786755198525957991768799173757252739124202128470566583974422173821421598160558290373285585469109584058695171325854471791963982744501807341714463711349561829155442713839600248604159132796004614853204501258625488702346533559696594619945457746588851068928812454315032326331684066395518313408024988929076295490691543156641685289294270901219008397280977593054402482001987456829574130324700736522535076176655504247691433229375636275445429546248574583977551593571711468266334766592135942212461668311425439599387565966458873261375497884562293686167132134944350178127261593133934090056182374491879141588951506666329414217935240867920385247003568546088057704339797076265279588576375015708709789102571781559205854296388129586884233839507974227736597457433070568850850717518417431189839257004428897009550100888040911457461386842847136674716619650821134733452359892804923837872065055599803155240785670865028566166875066564186241669887411417316881209610654993305536006915218636487248938321291301034135012116944961957459273611487542116091817762702284124860182511655650665858293595010875862137220134518136031145519179169671002516962180216873059278474823004534764589086420546214116448795120120611100928922031324236863875704465208155790236095494800744380499107206282403597761833696823567887097115920906771305521769319729011049560274228359068102553873015017741257054326166337851823083872397279644826422685850026389808349728815285327340354203787086303322145974353157141670661478277318193887722709243014964039613089515591440094549511854792848208406279119942046227974127907839235533543969013406125769774941508687399264378505187736076827024660638466316697123276529683350348494980248799628733851033728249208047438223706046221485139747294772859581921688346729505829954959206525723948450314784027030005258789523311463245766931363023589412361985029051905614638574888770731037923858176526462395524011009985581272445275170846002239239889629257823202822566807064094281168819908996067899789912081041989350609917290977718094260814501573960599867404900660241436928495919427377711384331700665554957740721943112603312656972013446672816450410058640510810725255895566497505147848442036792719453463921854687279915279107960974971928707140982268648604405160122870141997265567113110209857721984794602381848852082219894740137246676198631983548771340553396583310905126917005111459464851676211038237083212145444010186525828718787372104045780549478180456697129778495416060465402075290930483934598956034008486111429239894334856978003995802609710631146045484810096601086526359230899656411425392087338617463834363916509969146802800608033214372897119331587930583560082574765775463690855690890363476548351939047219178916198845474347894634764790360701085203269017782453835569760159663043184057792551068913278182203818961674616152509837008346448985139837918038628516005068030839010895773400610647892080174710132253040208219933773660289760217845786583756971313592294495796791097735263518012569724426604233085658424805966917093150392041549556718910576714915140031453839785216181165407022707453989436310057810192659063500766710985549191913238666458516069932172303503129313536958062621788253651075473221823344500887774271144833881252872324144065585678631976205841429125164818127357184128306798429014426951730809930715275078541881023035676519748155772854034823520680288180791368290065482746519146146205697131030312023386802854562981827738259048478350847536942557093246087581938340235977681053474393868081491461413341332354494432376626125583310214347145855636648661004835600912629394483994942759983867913495246691867616387142345740723616782344247825447893083020505455791963817211797018602059941309463270120925104139676925754787484430380689485205918834484468743178796238661053702949381989256681516522014820513912517694691399937733918165592044087794319229488337042569786354576260499261162203544522796325833165635834030976551485312398752740690962579795128444918333548284499697119246558220281762219850640054032658802495052759873464771180095004654196511000531316338153737922162638658331629956495439508472402068775492803798774448559806145408306253559041232221116997696421777558913930418939387060568912863265787284216921223927951981322021675485459175904167393078954471686251436737158489205870196857527958190875530795128891549795204736772198054313640494912601711199868925450181809830444154242319228311018837174681765486709907067875907853450939533224425308731436654302692186496900033576478243006888133845244308635527685905023626805214610414998467317594440428652642684884848905216170929606256726887262101899136412642344953826303011870120556538189966649538310594106357789324165640994615138557353945190803932663727585078471777962296292826752844547401281805186042361868957482971061842659033203308125686854363843067105626792156579155505379638060765179509698848591353146922334789886772876416009031979954957799043331107434012132323362270204584662153871058507445469036623448253450626493816846423669368974504756167173454930205517427620960277049006963408627346520622932897316759773371414694380438786508894274289530157275829107095494368061736132473825541095832324545688750632402867555835147260420762346510513061782916667347793319750369954946510997826300235687098465542403123700591627916861901096587483890163328107549738842901500970263973144953984553049171541801020136948549477210097026894039954939662539691327686940502479354559214912115487680908076586721800078604675004151139414023333314468260022820165059477884606501582549004015183497742539204058294555630333135911299508804946865854772325015292878766942996369146323545027656530240917739166262982229832740549559014118875518991575454344327663416752779375599261067384849798628952001294937281963840135217909157190040291263690084546498602674226258263164147171382699136644208006082758550663626054534951620140895961264757870599480870013249782939185982192845701904716777060512835867039175677200087233794421145980404578962490634791533495111987222491668277240872004176065005092825149247764942529804647943277470671420080409513165732666919551377136953487926636104089099072989332680766857158499258296196050532502030088848937830134355058054174167414572157011896954309415551700955004794631791563017836162813276737948767274559790168982020057938375360507306413833051380491717296719771112329274210815939294143078201593782452661881885182896432440707667291808449257042014541130863269492540056798116130190225506564197942684690507723237817060258413552106352742859631883666483997249265019774649747480105118530749359455865951838051575626527648571119024814369553305689820683323919365476259627721795545204007418274543652394010335096975534195541892044303113877791536774942006926577184949313681427045431660641752301315411382881354971965557700922513886289556660183478890332228490432168435737262588702949242822596649691984208503714911605615414751122798056029078642496709768921656633409766742078936539562542667136147182609937800723149781429084965661138453256431859294128477551152524815695268132327757840527539904523136629391255384852435985725274679650728140823109964068410041474774386687266785181157552997661890115754135042806156629334784771585530891145171727711339643845813116807923391545518633465303532141144444719974428061525052884308698371653826158310120994982652874942719583578441943966567274013441044977413649838244670441384809643270476894257096994903128118998337229970302409859781568078899824649886868610048468966196677447807982644686335004951266968512850773156732662611432862580236381373270306007796301363663992058605838559823189341472016770544738516279334844000541586369690540719180566924183170792651393712670147388311380352297979772316022318469908753165796647496165382913543012080571536942909933111731261028230818812805900067134414781794598176544053084103597929261589230387959192403020387442259705750292909276904487938561489144637377284136714043127489030142540585556248562239681145254729666094560385388141005515299861099956756146973358774967958500179571457388422565231307611108561227591611629784584884948591995759015051427341600474475280218826620172540770376231203382421584322108884037287513140515968252721789408209511274284205589414088415196373637757100786017828863106473644348898281157837864040391887730133073775845115273113701550038625080721844437173016187668688207786182337889429234045906594892923336492124547539556504426492547373264303013617671352110062041722981200200872044691613326552543654983167832420615079717179619550372774262787684479289845096221818677573233630502455503740278381938652790805669916326865316280604463760577009583938547498380420448676671528825673653232917968154124008921990258918574379819097711340337698184313416465857931481999677836165747265539485661301525374972397896841471229832604999077624279809849993001617395477041363643696058682034207931344631736025933472948545812915355320362760897443278381485460623305934176996715099978123249771287317424121791352554403778879892450078011079101332643429631667069532742222192970242638869518908608664985710745960968302034334847833855727436536008494776968409617523720722714500577515894368576352059022443714560370008437406439565413467108104522313546178849048066244642123574289485918284930716595317229394138416260900211995722923477209789547604062442882476235190062449718016680645994659893273219785595038487802611625926357456278954051139763642006563424083732848098732161371613406271712224884835870153513487625595123818087925186482772151327397009480133254946513885282732805050201773086443583747456264727122524496248016007901392668701955905090052660609954011807121048810489497254436985758989840964708398249795108961981089247199099454740792187253007001246985252911092725563220739691869441995961827328120910041787635655290501569985198867172086853411982757640440125869972086827335267532060022632977154688284106507283816486980118327922868566538496735762953745422436947842385071536212112326385092345247745145460871703241415428101286206091157084682305335300018878708737189290173342244890890329042325872414299604228263651134619543311111272363848792471206365324132908505263971545182598212942754006998572727292065842159326860498024157830194178364776418519399176322322956509671545040311125261817627605695487321765829019724976795090808893655383888213040382970807282053686654084371519412654137547133453661459744193109559619952769304630298525593552265301997743657717116507481949306234462168917473074406443510844826887818365210102795812426641983546787134377141220071878626960937364071076066667256567465459419548093288158630370347914768260715877977154773908297415386507446539904738957521680460752505116868594910467090656978421360987755111101634786264604801117323954797034833498725449288973518458898685686588999142427792829683616735991851053444890622971901098715913972613597362655508767599023576707140921617693766164498887486964333234094929778457603323959663273062244558250526966854740370894199976487234240760820094418809740858571630468232045968398946585004663095394786696405472150296169309238539637481502670601022492830201399650896296718847145678036009684250474615169015473318346491182303425130233704085346058987250081937957816581388187353816173018066201171743772454534938085984665004711745538858231070548076675472559900763748445177386741617766555328256865864632268166879695318541092108147658190363340971404922836777458881450450787245722746019515791823236853454519108868633502185939851496865636553432926462354776560375648976847809020497276464953350242573193318372314913438263524539385256041884252411784185950438450023876694527216392979318662218640348524555372198405913460358991023422999853085493300314677547219004525342762351379214239715923853689020677405839579456432317031881795813229860782390033441571669758048917082370106446260432436296770861982057932299286941384156632909418424106534318267634284585579467270513112077914768687202467319434796814205547181988897931151605799356937568980258985234732866604924682927112616189090736396517133317776419883056608818015210376309402044777033872974005738094940481914263200084567620523707047261373475373310474638141621256483974033047130363266321526065735738498799569961510559772089182462403220338947137169285549992984078534801341182995996468584624260407889473467325337477206480743145444644910539889245793277682517582484954657428353575168412112373357559564176269349631131486310820393858445262221361537840701969333998144964634663260289079848187642304357114259258053699193016609829447405349637789821733148113324303052845902398720133835141631962383586770718359331871974522728063299546980407278536896653297701745207786818470814353129244941685369666762081177408532616958060214440573723097982461709061404147063245889455974589233087923658277498183020450578473772639460135847309811877022060493780014615428259542967980019615683279322262195703442358631544049420667508102316192721902283780448939069972945087802922160376899209477449447282021499458696347751676761901858082973941560677915111193515254163994346490570093270585346687253780310878668779334340772841377446079303118718464235320450051266747441631586623570424703647696323404467451056228894158709438602506986609460143803072199678889429948174687077857031098239652731304188221832046576166500979882348876176372574808890396624685566095517053630376634420737670344106129852039475761335848539867137893788554775977892307268703124365419129665723620209878824207525163454109060154473948374634478617614963953901964482073949384057888418215935372314316164088583566756892728288690912925184309612057126117859361805218239935418388045820661687607409487159417029314302551923022640917306161343515462749842202987941372683259607964367985262834089820273759935039412048849523627188213270275139188367563007247777769363951317478265572640979188155606386460756026771221518025921240417668424907990875637143276819190170896952789583640185642421625064495558030852947238534023813841032613252495888341134664115377095920457482706586502295609573647931097460573672976484073293002459498679147895638037914039035159175548357477003943344564164754259032765466566934703362451652992629723037687464515095522157000599393830243537978537242841308450579144195612815552887890646083428257083961458074736351751463965441732409842808603712149278295717688765149308151827044369025095288621546433123134855861703625568992044201787340385659066437910226693042567847496995729236611151614101755028075092161134419086173415315989611235355099893807156535361798664306850935261630452721667254516210059984571744633400883971543418255867897666264271046266936528931684311035114580479912581749646229775720437633197722904103639771122132982041620514488789116379668628475410910639941512875430298676115119507713814780832810825235543140510555875210485805446579325856137728486918856558390007985623340799920332885913114693839760988073320434222947804972406256858228270544606893709301960897911589847821838490897034955569302311049698210047502711835929902444853211961207071610242414108509701357936198923581484188571520501156783319729423399353833514962412056744217333174202522622225962947536909757007764604674771363142555547872795347754250761214635973992456295027498889151205235269796159393775005313864779637514052859086160625185433588996103522691330384487655124252573100459232660861869748587213823536911685871561779548807999780231529296685288354130250790539858476053464013872910169857366546636633149018818391613213107044241213098254046309148228619946405854051228474559618112243256477239689552447759545621497461663266063183721661469772185051764103908492272542023807690366416952355810014606425245168072327391042886416596523494387622706733142793060425311312554935963329800032965693655419771791322211405116895512969015857374739278831484130196079948044398795643952014261345983958943875839945327048401047859374409573326165748884309742982674921921280266584710431117067600778968254111247000871162123321720218853924620867049205221480537920242514390341197349552291775529888978740527061935952613425445709363583100761944641826470517221505087821372785346066531057973112708376600414104189580731950578033808244079428645836074504599461480000408379519503747603924479193866173792096833854262227366631318956567019931290586577078270712892422500114732276408773886995174743141491583246013531213820110957540284488308415151812411881102887622632015912598575569605933560247510168396268867813369292983875054843258525713311599369683120725494635647515796008835281938742329043366088780959591128553778616009099020338272084542811635145871513321212017213674009910574292410935657451105042528538912262192985673782147803836428280819359165617680465927563415113374595483669609798967597282203973161662192130639502208478510466129291652757605371830896921359890136371372074321964643521729417629407279481814386783520145634035798595698831240565526275237218611115966714221746656404859743829202027362582573470134999531734208523559408944310955642439708100299626737427101803020797830947921321566286402209422548641845894356501547537986925272276188657820709250705228337097325353009657309570597091797896566032745418445393807150173069140259809969222483709499727335810944645949215587166814027911584714848932630219708007425513159232312094309418845715436158107870264990360303228028275925119336654394795300002411661016826996887190098597283033508937555884230089406987328212507142551074093340542248440000871715374783905232850972885057118024680566603616616083536062309836376302820428115818024521187312449328565923788583219819281199689578620454101734636599388501954627238617494559691557525406944897783510765343726895366092538058286718226228600751296825805413655046200886842638218478007812081608998151536049243046616983922701706834392357449831210876588704507416176820674771585818477691310751684560120873386201562810181648593970595608902723635762479328733493637880767182248361818057040308356683411325467708696495813572850369650086798989328723300384578964795053200657264247692683757384753642920483202369369498629179548399600752476142232841893092549369839943008375765736078650796539618178602199565302419989826582077353775123855198758674396419024854817125485713059890381258312937591611013001907116173077116737136068151294190383523679693491205600088812530343288552950419436361188807220791976322433797455867259729613590912061820547071254711707349966145749258932088896652565661206593298797467499432982021073698284631828947379221917930590548281081305326428519900214941694818519886648294194928929586066603784012575389199923837479132350940030304645902603621946162463144338579007015609017883875557882567257235119039691090474603675688392131821324304556251517791987806412946712184331748617304730440980603735608122535262179273157834186575577354851902998131887970606184351365692089125830535656431547408782653615797160725663579008752103169359106723039589416480094767688655014888465405537401703298860933315451006417519741542383520404466673459038942913847456722327324065917060918154024125090371668469211660108122858590337357085360683347300458584353525713268716973149325677653103504287523802552443310236115467467428224021737743629268653296932504461212333683130765582432760443911123707545733535142179603553323803097564123109776208973768135927157919780424547990670208337991474056511894812756037121099883430069895369223084360069238422917262879635206773357230155097590961515785077267197932942700651979385605735905883150600720013939819764579764682502385579320832983405872593138839382491388606198774871465008746105019789820371457497778834480826277221669038886342471822171404306480593973175828409541589035118527267825148227229592456609747336916270898236666648036772274253567033529824465083043409076735716794876390917172341636620233484250561346003566394108993296783312669806471655169563872844529949656518955691168347902064812296144373127614353382401055963067311618631925392075361959226529497335133771870020769311020165783463619317249469416259249048399795726089822081454687128874771241141982600814771575748881849220402466400762007355983678633242630822461758795657088757785223293162010610809159946448325986197584905855929083381646265712562787159401945401780646144304595235102112701992581056698202363522962514441532520344693364535127712101540179708910258131697351267798010465099996613635392193753553698599237528934043164362746034297318205305203316085863150189460617078857170409790542349155255465383996554712488501129679820140287076635391996840601045802848757641766113608049222608381559249382621707572982683608896360092553877264545412967045961692579482168000127163249532319012789492296800978050236648497558734113529412306070508484270247756777244071312664668007029559023289058384589372554881141223467965131790341525793670706753152264357433398876742375479379671994435053261139371168975800699496773655472013673091773822361382402774030108482141100419113900923421077194520909590455733055659605963412136169306493240060862610700067769531805903216399054066988670241780395885116831618486765230225848277866871396645104634253731798895827382227973936564481162186381196285546440956877320076124408238184802247103614972903595621641896402453190831379127411004998216950575995851545500989230245485740423276480380071131731839443858308939483848152649103420036638074353323524115912736356786542284157771375968950373695173898263883249612046742200869133631668254690859075126185898879497585846212812351873666953079372862047721481222809267247421008182664215943683611010670873340638377196783859582604124077180859251981625170055119152581839224571039471895704595430241265178571869174897351224965703439375018559252686612013999198636162126881334582010798286665955976595099927862074982327334333680551173934946954532746903191474814105027364781244892293713299602444182556600252526920947545112497718834453570004031041868856686428385362820479753011241576381087625820652651972000105266009712268131280931032278589805350586424104104037045335439675551161464911787014597865543113227053933396859005021340206330479622209943099409183818058154731478432545041547969886415435335639603457428008313180181063578771044823171892476694017044742088787330469979966687563819535980491241984160474288613669766849753773380409589942357174298939665302094728608753261166872491312799094268161160137600667283656341888264393244336978266222160901667043718177358535280111521714504103721657603744907395175989342374523155960565313197513821247838928807864942114461252698827546639264098219111025100927272325912083591924160252145559926249430177497066077129305762666762606346283319390454469257232721752924687429464372454622674066547406864356934808817467697652063495492166196627402528342420419506478970271481447538328618631206571825690601744622155325169225301134965977504592250406558963587587244513382410062750188462010759566267425582741242861931816092990021102960597864801911345604109598219157809395270624148189475540101743751817026979382535947175339762223164413690683310998844815925847465692626312849317626570388611467810102553026088384117402077319597887533572532666528908450092408069984318136180425505437880640015723148413118443432935416796761243257986811552170350367941690175971365482194738207268621337742208964102953836760720040183318363404982983480759446988441788152949038806414462432055666351369702397259207579172471999209633136976441390651815082812212751673476942270144234947834299258451796567230923467102774498324209503152008238739801499721187179172679545309432188269857046114514134435514808521825132057784863131957284492212771476196768461076750203582138595012769132284100998404926803677479923403844625492898905744117344095918140897295226164040482374209757763973446975352430131883589112688623902089411841184275405693858666821172869211186141092087466612011757109625509501649096931622311406350501101571622974242089949645364153663242463492396696519284641588595691721964293601277880962712218081352997719741884654724311272282882378555998693764757098291768956697807276975803321108118710586403810070464086649229337151344913841618064847295716014418004242888791499025407681704881441001743813374501315316905603901264491943361614569769033346801391975866819733187446125491055162942993249758961922788647235774653311056463001926572983830314509721502506151038536096937727682449259634565076760416768928732327988174871712536040335438226664646939859281415155581045957666784324830654675799408855434133942144538944208753216106609024281600265630750370592562526765592584216464607448103700789134676979673129004087265793795152034664949990449117534949238169572443780330461249558860979599469274047764283132960328217292944787388040040472029958005209340166142411039066159709477500066644457386858629610561394958818894736549471612682756460429120756347142345715891973104493508994176189765810281845649806346281940097882575061474462858183984257124441333928562526517414668406492694147915845214924243749497448834175832639006180210941801311865600026686416058970523351151723774357567004809965204649256242236270707979909782442835143990635712433834761521935354706185547906650622410774128724974839190741398930238285226464350401151578627499162587137613508518209429283403741895949878192287663822422460318342255678890694817762281298616102829402741493059923948767823138953700326360798858079715402314103991915060999956436797936260419847805546000023315239642667731780965661585593931413223718719040259151800755407094038721520837475179250493281577125906657780562330964553801711986830602073923317733932994174832325216063902913072417536900562277579038517813484845434609345557588907498173785159321210938007556757542371511646022597338191096071291654881563597421734952009696471936588069715816631096876115195544986576525427718257561917579654651845327372811163386154904266255823134280879565853140047642217775034564780791986965755833103827564580523065855811129933409527078286140239519503069324827629705414169673961189384137799075406067683169059488022556656990892559785770486820865531488137680540361834463811908212995746572591405261124835769501580292449063347440625957127527875802717768662203382850575985202423465104535506262668724003332615871174862791111379709386103843481341600219212459021773743911151378065711839892817399331793651469823983850309612269830047044212914184268393422754165193511171702398167692501611624943989961747574339896445757684747267345585123088003131628282261696184259222527466471313670705719089730579062656692631451396364781653917522838952321525264714732348025642845506772464051360565598730078307091363745703562507298757202433582224941859367682292121742737424988759027082399999896371378075647154720737866765891812317551295745303814625946466429947999166755336443915804866632832274014074927844833998094505255617410095486383119690878093099896267864591349616994304859899804608498739514283847435190680440969693406288409830573047471867635457360873856084300726008968806058184281303633937652762055069917871859376844646123050810027556843881405374696540871955179622427105002549431366550338470347485723008821895792841233897552257341034783228687216498181907116951744773614205121401002690538405729837800268351044591425299906567121972855816180425114642659836203924450997827327191894534641460731167059919949197784468023204527967975238855552926534426781785145587422363630983152124434108263784813590205512607261219709704425410532092067629616841307972701367988505355405871010123372249815755053155834110590402228943480521122517971153882273168087294236985594294523353418437030479535048094616723931932870302391019928552453148837088134704856433645005145569252929160840221265075017824970863762438633071619011217136480119078058719068896520666718532749305630773052780602565799242021078234238164688827263571621070295414768086298443596106924714865494704035580259138954890053971519369360691308071518709346851952861011828247264430778610250660321819404815974144079459585992802496680055315659017418140419241498612300670033870503791573307708169713649207880154523406721229454180166569071385211808715008815909670196487026874199077788797422376940365900058697051975758833142993371802145002121399387046105417326737484258143126008304348372937232623574148383378434581653130725378790929723708474031717347868968336296259572758135430261726284859003256702350571334718104493567111815288096271556753954823373277708183308751729122667129235185592812145763844740879125248453000388881333485665272292974703939996524797447250148763688865878140815227656338919777799561161055433362178174721384397960785340587754752227836827134267913344750698615506559457971051837023008361001289831940378366694776310502672094394250570859443273250390023929699157296420730920509977080270631173587887286634244935561439000946640303890801636901695355358555133929225414450835208764363578772439090665418050866085624100474181276422748496264372709716931748995987653220134417081593964027548155909786154629416053419112993689182753372368012987478187324593146482200547071356521058397883713182030787781429023446188917111667254111879655191993900466677674355543278546353588302356504560343724467816118776410303335043036927000132891882663271794472173580507562866653314820202624630225828951527438968981956521341230126558881500207168926850408118869708026261534241004847119361831809347933241758526718450077275356773960862554700753652425362184452033908359234336033242873924746027532594411330523778238635868083198759962744387586690703675891580692010169289362302354169230335348915364905868372116548000227362372185233753548279275170638032400118742742366171261008435685207692269141639436968626719667012390453651825419751100861960497388159868037581101657641944815354967316768486798535474526994343778046934468658962448373263290455046800848792523786217172462075308896102613478216465519126383188410959654504217836815383856020243311531812062644723893559185777403100584751827875075059187003736985152578317226047075882702010383793357670845282740810383337965043144490444336953870297103226302215584375693459511055177542209140042730640469158284002072449221595998938021498235019844325207166546227522757315599771470487270994305700307461706376654386700539478783756417989010254047243904002891380472499173456587492253117429662322465354030783195157118909088012018982310525550414189501080360088368817326414020004235971429656383831233484540963592778485335035309773846641540406300163627691654772500538139147178117454374846330670418666436669067986321876942892054477326597439738135278048550661256738237537038975180998684245060139297772536638727752433604557293323692163219773643472558553402295209333299790344288309514857246642177550643843408875068091262665649531089880680574720741591720808785095746856812744530585590131809596612338900110851053524077274798196211769068902550982218805331222852446890694115686849833297510663023952574857302509516516594442342833402234921379135273110389947425879558778258441739133296232077639370366207145745384427996806579556100007745517461622080012624794098825273984084154596368882796574993211373380025353366126147215455483420465633749110640226690438178327436851771354680989162666535983057320894823585904447204677177323427282154265554824960999388889210386212942077846742394548986086831780740191367344556483124869339809911828351921930426744783682111847471936623798850848702070898113536394377925790987020436232448175788394630283868420700840133673332105341482339899729221185500938068825988673776433524268508948330956979739988148103950716075998085742674895588575602375614378000031436738430313440297202856678780846118994411162089606613307842834275282645627586886504808301993249471067488854559468160875612722852057684684195844222903487751429559532460295065203118695293168034723733391022415790707839733722211923095439288263923031491206385420764369254152743478861652678235227804627105143848237661399830808193004632286992418811072734871500276801757372804985626004908150356970684048447634854932518707001954616240720245641013201444539390304684333906871201476722786267432608898762634612098032133216764395046978247820741349389326907554700011083615074635767527551238200967696834164791821185292291662190721369266405991326529934520853710679896100071957614384250255477236439762242309451101166662596107501688550156139648515416973324323922571178030498266973437862106307606394362023014852216807989483096616506784645176240319666570788785605818791608033021218927299165559311275754453553120630091354063031460202356588591623868492316988341260115632158685133239905455279459132674353527498718465942811983305650834176474415069713908192029284928353926665258536369909012593170266812747679380382090337271731420907572753075093164342754116446521906909731103991141246474597624657309580156410123553822523241256814352369307255929248852291017548506933531054206419976241428941196270037922041630410338680737314169402077353439413797704966849499943797573965914340859768410220922528990060606518399358176911186054166074878902487381225998071933458492523625033102199881232533408753843491490938242766598920454183806612268028058025213301050997728627235628894395352183847525016543584641674721174174076578255362469571905063412852449899157986617385758705151430207278702913585247526867645766849429796972624059937937670763493314245914285427427272796370733322812177947598951714136168711908368885760555035193911342305244770183605408618116135483171013476351798505213514646557616815711407994387019343337715220766922678213499689356094895116025241556702037024795015331812985504926934889716116440160369594602752233819125882664725297716406943163968256128449044981968450287152891894269627519849974134182336777648871169204098171821581371457506299633294843161391405434649814518881538697461255389753080011988227304362056962989627109611245272571391084020863679679969998617417175974536589420449770416778445259012457868993971493032686691367859555434819406285671648488215787007661927655132469065149844690638346288875602903725001972721860060541621958401559706208137781092508680012996030519186709102242881586038241033417494418890704779251051068291582873225353912539935775956769178054893363559917340324781485981483918205800930979816144285813344944974408444930246356038479167684177621432160297409501667180720605616131740740492743439355317914723788748936445806895179381908174146173382195141126601917522365369347774156719191046037770972902425026268697435956182401675395936495811453438627399179787242037057373046505444141324366056041865636614361364907444145312287975534133704786312241910642617896207972026144340250052265076428360803506786081280624703214689566088934880841991109833436606820155990166680407392158289714994211779959512533747212498771912436946261352008683366234101789030157993707923629267079621815732657017933977840201745919166711753443119752948868254558103810105871433753035107648498782445126348082330875971079176108702507045565072437588161220021299060059990842272323268204028257036715181166375405980536283202718485746165250718605120708938061246504376493112505490418898797558633195464584255649499877459335861597517859121951244109006558551651093820232359874503931819814720304824499406388093793097486093026071181527882809361850488054820141726977756136072024093375241580181096765146589307594478761853596501676195409298471098712796739023271215930809814624222462596984045751726361069887456953943255049245160420548683226073928847251415851169767678842195341687557116644531685149180504927908209508416873297382187259397614986065601825185775731558905256940633990080542685678856296241184407668602203146882645493368134584362144122516150764992015701002378700226585468486063029969859500653814446245728052993515810618160123552869566872138861163003401486380746259111635251521670751743791911077753588190519695489389112707033401751006663398307977485196563339132901262784618615427975746573607309072528178643426841505425197974030714846362056959244889062191222001231926548195885033128510359288552617889150303613266062975882640941596727353178460545372696138696131248453060834071338497374997239307224048817511142849868899410845509746839092286101604164403934917501777192352064105776298679085140969697404054786179228326323754220350771625961272490545690253130947651831556849638761474461570200733531449480613055113496061760074119241460845995749221523863192740253338420385471970911725613501572721847725883442900296853097538770409453782140475885447701180967943689252215212450381483240575050417182364452186672256162846843566544356163874975866286616733224261185835590623207473893933249275040225860301330937275905826174664950515997676116621450940241771979684253870115356532898628024889543730241001617642128419314354582342524333261838717553258972830177590450008804389689543575284171312831053357327611494354838380514324874638941349839834894966752365562977914238318272285538914329605451437674002512935296965311880367966324127867493438555501325986262238781476034333296323335768248385101252227275161537048683723176943464796964546694747166263623922291933786674804437014214383763617252248479339135339601875570934034140549078401414455334866419519677502300295571307003358025260615851443294774492888102995108997322397778621678880975144341406804060446336941905356461527949951643406526484366441587329688909523106069174979281403354280636720059038858249689647234616593964751903451331295459028022849047040201416651369046829296842440035226666741817483606626455081524160832846295090167360397111330774421012568662136143332904063014915683998767351261111557987633354523295634295434733514752239832285934193014557943204606765552570299346104026728332055488648691480801750422415566145437921008992221188850320641037450383834078978858548588938063992898287317557864329469843218637038789596541345805517128849362431362119082466030157416831912618621123093902332552467008144828232180415243147549532959416851545163855505312088063531835456571702407117561595314014347506688386661775605655593693718049671557383701437763210781985297756286070387658034697975279166979502508249801449548078909929735344300225885205544888667257958397173224575889504177068132263900024374893758555859178043435449424892346159709701171955449352766819795063808175517361877253168895712214174942087725340960079150639062418493857293551488574980521053800892861954938237278736212189284006219865113148438611435206043491711815029993843986194017795647083788717358043469658224507833347605393969357117351727145431596687393811078714966859580570002444704455525786232006382964153620519343023406109404176884719483064601797574314035600660748940190713990799132861487059658921136171001338729756792558522181176894372281637063954294099334984300769458867763672501875874761132964258607812379331926496524323051215759107586696244644997731391474618395789994717127569319569867403127784919086126539050975249621734665687590890732101104145039533947742221007428672452956336545073080209765969412161248093575554437265158153018032185919099638465897554711632015312049317943182622284467965515344297981446454814806090909865882614002298414546538969766038898293845324639737749811120935993009404969543125672494992923410659992912890252865246701576214181709725732730790939547856403903591145044245365428725526720496573467865557394247004097589727151043694627904599017751158376068335870653631120574777961983693169920522887628538952105469079983805690397649437786122191473083220774103443995534789363067993930148066550213386077360317688564640787973446432359800569125900281474456540799816365148633794432602317622645904516924997388731043215217732725565555838982428066336441460082564351263602935561886090457316488206978677407139529057159384868639989315661236776498532769419528660465215507814957304786437415487140113934824890805107959034739176229690119067523324675349108328149681409081745559387322986586512657566782726130184745353580230078324436820961513014389279620986777539321892120550303158711948568366146534142651650203061197253384212576555058154281633552071070915794122784555566124813884087586919598403497858889238437176618185815981649397542671488543022748153906901542288177020258901572386855137511055542955475416986362950412556112091237280741352784659790814077735067206675081769864315174339814536824638131730372718260841424630451652209255955573366871660209726950540948891607989585032461991943850994690657067074392229101674813796427968137033330037915355704674924835374620418893613745945177462916461962664138215967047600392019374710421635153933411251836637866575256869773968170842590248598210456160994294097276231737145435493632744674239448694427177766853144682547729046003266718766891158592024729262364055586821788096265706937832786782112069782665001612984024037843220943516572387069066617446906911763413333130586222444275668004430492021461412738678793961321945345404812283386506587474494830267163584969560274880773660379733222476797384911181594480305863303900310701934708678609860000893737063640489540226730949632498459778572355660662764387144400340021557358364272925983813547516821954571001010080460559915395335060917915738708809490456589221628743763215091511799440101779601847232941904251777157483836493486885746297135938873846187456628703654437165183012983833546941082422113593003102050919557263106291684155963750530681738285268138687813423616079913168929979020952519169505686406778721241341158982446969773858349467918508784089415553313692604399776664728364635864162965168244412576961248235359691433436037550995279710491760837452406153992526469470194756905482154695204485111413289515979557910895255723577466866767592367543351104441708206633991707059719120401439851228419757692971370690981466890012616923185916702257542847919600515055738952288897864203075542290145063122915822297025021595287200471455033966348771839707935266298918023471862877025195520149321963828123357061973662457963712723608806828024905858853070925709327319609471130952347108442146107097241246953865236075035081370912194949096786292444779599794338256051348325034991810280335454445203688401707410578664745184700220431111352172179684015917480916114622410146164692774780288485890740490707758510795798861126813326281395138981051920651379707081707057674270389322133796006481018522804658985217478278820562415620436374628822975188864789103599848922671533363168524204631906781357850922601768380627030559711269612948912936366805078766873124893752952845353116952354761146283540757672815587755155751877106736925547437520564150713922651350881524566951891658771107256644932240374005543279349857592347754499003296555136886872274662240420179487636501427661999986326189816940510898784322003041576903425629943288110277427993050359186778255344369148586494257819746833745016870732853166939319211903515639619458889003280779424722557748455945991255512970107388975797938987877508456598494741813478744898471425289527629638068908183118667712353929902097670332419100516586134758168049954845549715927078194616210264178375852374308617944977012257226032976025568101527077041982372710509784800023825828061274993095381541747096116695669340156714755846796343831117397640048622520345938030073890063150613104693730949659001463139483792313800946144859155063838278242362430009286732592128286261854149124480764666526644391386991443545960152080014730886032020232782877323031200042599288254702616670986847844870403517390730647613142454641199724350186117581251801792601368711646472637574384324225147406185637411762097628897262061227553795405241521010884318755088197816542564844078382407288240155143069562102663787088425133878568553507615550147309312401783546488730199425936559425838772332583461590460779955763971112770718523302907467694671568978835598910332017029613410815188449731668578002578248865657994611691877880228155859090002610425734550060531665290879265174715860228986893168512350352937667626918727800272489540882226562615651508055417901434831815670966936715800912914161327077189231422218307886189642808696265648860547923965684245709610450893287746431076138688931348377365530234927157064338039632966068523357903724997664741588660810973710296383311849387690862577396664248549214382106208968685738942243904185050709430373211811450687758715362316748780544719493838465604106267320327830524036578495871271533140772646415860586448319762060828442860002498386990879690788953741778814034770347865218134300303762247016272070230467921995426037289988699244335804428487847847149628217124342018844803249434537941241252111629818401271969370133705564740460872679956732078708207874143382100353924348289516773274730912129095529001299851530474149075893612027931300810938890225791146153738246483314234854086380836682728253679952506310374281563282697865588854678559111003869128497013350845268497786173073488604188903015868841370974657459975479009845689875170107862813243866667677093355147060780079768226134754317356167768825479283279224760370552246718888470992385772567986735025501633265565595640090329606679962930951742257340289206140734302008951881909545894965291897982972541420606192909278732574655840645261611568479172287344501757420180074751935237374321091544237092822611251583100411074470388253957758036086032888253183154332138766512737576631891277870206927147165068286941457511903401958262665224823263452939383238542073069285514896429894930795424052300801277897729527380617725379996171368643984126796679503086519850368208684006668062190080718773297043016165074080524625332051803859905783231672104865170220663852444330837399133499932264816000156951672907934459339463054499644957195816055741251420246697928190694150234773293773939113880458418398822815429153894122520019893754382919168559688121536860539156566703688419355308885567638355086943143918690265483683989634179103302798082960013163921305334031879090394482262461719105229447904603903328353530086039212720371115916200703047939323830800138159132861338425882825518091804900365933393997744474434843852358440618232616211658742177952654605319298587477645118221875096677500606345081355933730378294479932026586840609939236997746124224545185420996021397719651814740928030562106854043294803126407555824451517080581694372337973012021239061201669459936206031376145529393282823419655779611298572598943971303798229946011320729763061419150992440161837327488080395237619831998841794764222066761040999610189426251449741662822834014945492541814444774189480944505217866570418346575960890368456014989412491922355309569570302369595234799505647436828959136042384674871291215989502830940623131141061510086258607966570615356488350410045486412572663973938330451700707405272924466335311001087265405904056651330688665186482349748150960102698862371400389285612930111867091564230698999831297583902273514619962365886113909860168918196403843508970628107298130008325752897622389612874694743158156645575409619086167793478790861426206877384652309283515145346468282095844874421993805558900502372126816505026995157039907209851821977060601580715518919631395018217918921860979411739448498026289572586265334816163590100134184898203512745299449308328155555572796051051349803308659828770936458041340802857474362461052847613179064147973836153999959958485594517410367054386348455230614574824967684693677945711103593669962935427224238759712053169433410856016804826323727982054771557719465896231112192961956644607563751425472774622052450528055420366722157369099030968397812694219324593530911976968363723169027293371095167041101437530143274834945610974510646782385342360672491266163326477550063619972975136486253766122083939746815021416913165097194746396700587080000920920404501743897995839031327394578661493921678935703935802655559204052068211249238078976475901548003464535608688462027460205718426647395499234234252417993193612641119549909168602509883049940751701293082685644741386571357690028363564340448001330925670319358728552537574802215982723291380137499952532341013521123194288493522733689549076156146337657877473285625452127487362468698400981541960218747377418598642029514764821536919493054247915524496078708888210211210656383244627486827138457202179524886192116288206085105819815693227954150389620815434352014457689817229626537347232588702203099039154216102722525970979998847210594271865748988291828943672730745073688481164752859187591981685447965008957878857849808411546271452382784857956116515586397523844484096487850212827748693844295428455291655616048786665279797584925735311453925365393804851302160074456975358248159274185525901904244619548999337413691248484429282321334169843850291818661916993449088307562515678853808758473747696082102737395897544224362594636694261436533506151375244106308801631903369794686806457558445327011369942252461012713788180974476754011692997426577892639233168376514615857752087174721336555397671281832288470989313995732927454151036598646039009312439067498666378840546812644655575573572406629822753349435085861547336903819108879826141925515298080296105160913524219439698083426506589394175232730224606674114084068111347597993499233617235764457285368545378468039994877789755991664671851740973593496919928317851451728752665708539137373211959374162161422027868199215277897350493203425797994813649247878764706479561771939091734066216373650625362185722765827061621147926548308779118336916729777185183265549105818885616426456394046398251439109712755363406567411846665968090932347623368396602631296528515537813889540887728946724928674338559794231135121890461713423206551253392598339818374855685613645705420872518514371376620199121844560347699161973677585726766147162342761856311163469273933310010542924815957381682725890233470450962413133207882068451609081949371793255435440482013659853977284982993031380802670139545914907983982856276943683283956705046927220244085688920026453933234900612687287578755872273105790241095610001762009082044244374437525699010824146391150960633742626775649862034921895983836635487198230843480351178663176497048187982371464058556602671736725417217776278472284751829786505039930156873161955777904422256811688063812767484332656563205514784466862567417085085886673355431559758491863098587224287283332000646541353378380443605543388035532701894667557207546874432146197203189402553551928187518242885909850693195708685981052566987111861299052730944119413149282138190879904706783948210400616170984216360566325616529506493617407807993027691461442058766002676958574160430976632115828185590544034287212634676358229526358499572386780245339653799123239040109760555514404543750121721056831884124565115644042483683899050121759851714915471840790141647908769213416935944784944872474780025708800695106651693397649453912581763770598641632442802537214824693931457330074894664881900510413308648329648388777059976458205785927714492931098657232451185960460187609137643438816189526171896740117188889760090895936928738036686675902832165102773192591028809157630635674684249478628011234035762044053534230266476925339757873558999191488728260078402468264201086087976747941279295425289321683634506377348885798392482571624436018787734605952868144738843089395177468120777207353076691196878473872116611068345130314768518797124888228405620649360220116421234214892667497738587937705442434790842144908555844014582771712644900320543658564489583820220104161531689916762988993492642940417741141484376432338893815291351581279868403440688912802322249073843911820396331620136709167440569288086340207288917170949190154437082550706276008311429065921862224234656063066499834485743813465754047902497822560437191981988384752598868258348239360811100727071247695004611627550783678680778645314195618646504793831865472595877345860155231963931392254839415153155145226445642407603707592718803370620070087328211671183414373892125207706397517815005946907181300715448062768131440315039851758268482723712492911643922514631908262587889573008438026249854569257053687203821331127429219772681685052774912499907571108881963862988356590949740469533228093314840708337553699370010386910243020469909705543564182340906896032745024863996110706150530919772804204292206241299524170253928971756256801762800179461405595268373185512174255981887032844223559369942744333787698579318953793002046892517331526193215541121598995029508289614967013430857008808469592307007938932467136951535637633263730307104309722439865703291068485360326682657756240099747035319519206739001956430304926036100859110625420544330115916086681695005905073377676606922036804169136249905239828626895835107355819612860897224443230679370682661351185413357110315500969501164647078313087561603629592805969336159598342958165431226818348808873686161494613198259161498035013681682191586752928892267237621447429530892784368185340758054013450410385911357008190353414730492639261830968297468369571124651508298109644183147200720468872288091633550600255272440839896452607190283538597769756904671817857051866341244436414565205871115594138466756829150255061040599599422877692269253800453611753446729525281962885492918034983507920970863566294057761631236123320761318170223019732333591383738937574769364396722247667929350315700443082344138585757063205976890530946919208596278948720493481152080610722508350257073623476581083215417008232581949913895263208505138782970087734898488406472972407110302307759847815271297662606656355223063432888651157731277004401207176268337976637729402707399148946714312860743352192832256834648841937203837382954559052382373126127709487057128985886745729246529934617019954451292223938256690137509404281483123720745156893446252290394668063149892111566071761093042063255765597974128573979851624251231574039459315300427677800305377851468769231466834893610175586607427074227106529672373016756164136444372775899383501849482687897286428240457455842241688406617418069515391492229836189992010193631998953423382222234260255861513133223155304146397571140746589966726705507323517663105505026102242698630816048763390874655787248284217726467821636053277068367536716058076807870322230730561254439393586513908623888246977558318557635579814566793042879597920113098838966507859317658446389029623454393975453962617622418197740909838887843226385406197295778209132284967687428785128533749825262840850041266787145906942445418708081503661712110147502251408673977278527226585804900978869293306062561693340953762286059053514918340073390708474817728354311756307223331438298658480729127895377233818845722841615897391545689575702413966621667385825757850166832525649221206569265873226760767410944692101366907453470097587238143129545011098183456602211655283626167383745695213985556542533451115469374282723776225764214960341766335991039204475436403210589929122273191249777280558873169671981705116271395202413293943559490396868441806040202902227050365497558754280162430954712650551437477745448034895559992672175033221352606195387276291151290771078015900491311855814590637097749791501825304826119527182827970677755653086702381363416996382303244888477271259567945333215979843129543493068992981444044667949180678150928757135517611566601822619582445398239125398810491081544761676382375460867921025657947006511274193558500861461917625656092095862105309338928851981435782211039799754756329314672704272711737057043447658508556669303027108094049179948993840662435903674794934244656851613778552120661071585896435266553120024243497401378870501415591984759215620251284595124473878762103626220593891608491515378110361111264446483520246955308540894986145142039193753471987856654832009651789796456641457649553741692412095829060125418163109748727366521926096458429428595682620589325974775426159033643407314666085979645519663892644818767405275811159893238969066052447449709796400510468241072701709659128171940465853420506469740232108859622671689356150197864921577271654031657090931186139512850930832137100408360125242933188045895271728614733948851855036696283931286884727233482771231380402256701514279086983812730552676025248064954458600379702801620840009035090101306534477176768746621380751080520960517179701953684822361427955800025654187545079493499544112066040730549750998243625159476802972301450851079986761520351408797253134428460756872923023237574569036908088638571766659517789678339418633198221449530374168057504042675420026120325970852729204209451373421599417085385017343011630717232485830149190470112467728304309938362957389101272506865628135987872985270992576820334260785875164611736991990033249893700302102609493940668222511105355046692351655440904497976925523093576799517413875861438180552524873649291462180220029585505528282878063931818442084269967068347955584246427736197089256580146757023568501322342374941817358507872529498498098055653715517706317788234506398840950432025059834375729482187860259655074880429094961159240070738865984770473556749426755672810667582508892537928504982648694277841410238597124641112607840835030364950884725018005629101704981810778183991024966917836966236521735188703430071261628546880971045081055086899568397634774324926976551358150352135854646206660811200023658627130580160787510900930471905540546267346259420513333539871313705068203428585614589903236586687054604253637198689780439569103255860125121103678341132333952619657308601423769951767918467353876382433448065556006135815429575062044873853625564235777686208110531966702776199632149392518366654780485507232247192391376453025682986715457681062097011030132338079419969045382599626619369048491245256537604079321606892452780961730115096199183931131231569352433907277771170966868851759282748473238157192972942560448568767478630339133284453102936453693825120196246148131043331989815711732527382585410372967540402098312462404369470514789288131767324071158508659664013535857985531896110926309578892569856165421727564318150529420971394236287504032615258914194538185432063054347856090595523630358240774462740463318335320515502377322958681804073167239286658624817612342114117838169569753907879930550898588526416855226562709125131690628247255857172062888855904059398491673395260191684017024770235309742895671781800266837039861309666577350648658779751795150286502501657492583689738245492468099576340001738093799829311114799021484706092964068169569117055642559696260767846136192466976853607206592800984060418637335950883104142319560584984840831074070366557175105879998572053483475963610451276152322078611594795463243084456409713973563651067800698491769208777437936975330450379514521157812149619243377003016932805352695545320541532164852471449366770115305707290918694991312438469658540994190270588639354685073334647196256628486591226385901715402530712999674073942127883290679507806206358850697051584116691216326228406521762750585719087000261826212931004575421895864324474018845676440499858371111603245009168981440853461825179578645053412477787186410212512674721880098738714045269670635783775696019120037203050474606096548125773963407359748149458689547630029782789252073662904662700910304205639827425318603251285591905924021783745549266173158312359725653911770301081110026250321451151517065463997949324190690056542883713949393413278175217264816591429222009858609231792743278556401867605722609499095383378104776216472630128197448014437685933665607436391268651100495571309572117971969389958442569188727289127018059066088928237740874818686618313441530552591931231565525817164991930090366519586131253387736191494718238423536079601177865200986034066208044295813027139659076294904510563625966216736454248118745053676053904503117860123322240052794727574948827077550434165258263802518912913414169815438458246338393180024486728606204624875262134609398147186476119970231625763962738950158141069893082224556347707728793024416002762695337197320906992133948736678034001006811466211415879166608072360760343713530739453328763319156768441753826000497817731095500578362032123330715497748589274966303281595042619225187768486668417857012008927997352252997022815022500504333654179009451457184028414891317125089243544931350753721135026352495562501388370222398374961438004382116330635478337264096757475789745273235300229068124143465121577319744967582014494309941081095922713873531999116298817047535062922396684274114940687001493920866208929357838411492626926915324835464303411902272822757049527177523282604732693242697697694530983324754660198406876352504272439828423048522125673238647841353878829322943190035889715580118216769640704102800574775420133743513108747272374555803397320115325561846403956608868383046902757697438979177367576506474370740481461483717360590604063340118933784574910554138546079289557393520044103819758210228549109422792397305638103015917590931852726164447388499405808713834930607290570907732909296581384723393606923310910464901951165155776478273423443656389807250528600653130002443991269251033523655061771699457833736753379697222861112105014121019191539819504142584966803117976967096544976092266925481643621258457551285878233111823758164683381306306469168697831737892998646410735961263924811000637217983263180079279009089142427309803529241015394137059994166577699599998960923134410919496661755447404244997860866312374027773098324777590209862916443662167790068943826643583562671403974257904145104158481439216247486203323803823858117931784186423179687186861473679722093033802147004245687698456682390049603728043765434053751319498627824301256730785432140503394613085024649175501275383981344066216748181545566034549897777213357148560180631345164429201233074082695959234259374926891628981544202964425560958551668102731816381516253157161271987060166641741788158336105924574587373324444566271838633573462935577608891139789736677670611157454920161805551222831888212973556628809160853995802897196956609536572071654944894287104447568904778810486515650969472003658035314033465083680137841892847109273672806539000364398929436389759705869368287100124839450631285010478869226819128044366068682239707936278038488817397051666911972732628962008988957154548834382241374537318928539929827911095723989137603377748850340528384668587202885314665476571013672654054693667920837630275638360124064312710949500045627378878086036152806433748073900030419880946013587186688747139253443072486261182016622350023091888371995817492399573616087784042055330023169484765255114896622221148764993306498942979967823819978964280777080730585856150236216277690367317071452702843738557156250899472097923636354933919359301593001324957417360906207148925205784061064063855020591943986638841555749010076294920117401777924185426290994522151484618556573105887014991916395262402311428002096868319396664025499659262691764207388151415518557716390180808877118582219516559892652969602536711351878669427856540406121608562886167797113032769194229651904660146535568557083718123735553631276470686965194929692189362181185796412481380639672479016389066655473243242430992263103230449386080665045913639323961785810449512528727320560639566710731423437326249988770293959198683292602283576519995104164542337461726496700123233056735934150980335850046058049317632712139410008026662786369106094854548279666890517066715698357046549221361034936248358957446683495654914803537550449979810440747963303341765848078098731492019232905244132246135169742424088737043774616721589720839709210742909529169630664842081457120215841681118339465269104924457881667071167254666080367451123151448943267616757087973248705832023532606884184355658941554786189161526524919598207839173405821867018683706770389748309357009262662778367067199798158606323653615506860586467712725165422474007904180826953729147355516621651659993312524446474552702439529786982561644096019742904179225899032670679074955580688675754056011166633183200066890049267507614552861404834999902088121240702150818422701669771020517304427117065484939500425965573790671115170037238549693674087366587242814387723405732003386123881591993897712649790469013859938003772740351470269017376163356062209152523037003451491254118655824978086042244498353111968234511336255492856060589942357134404163339630682600900985558520338371159947259029240400747569546139691669735625465524932268132775921276955133370674161448784769515088383019021797218940286039198166059951506686434634513070884379864074661290449936623402578003267885938454660042932175898929729256234837242135677113259592274694864636791249126774277482074089198456596729298596006530657705367616365034871922000033135303115405597363688131600472453989104008690101131887354961491343423650653758724167475003428668081291337544639674204635584989816685419127453441252837213232107978063360087992963877448607942791739541898509324984618528899271621033380674085544595810071698149441311694218871323583784419247677010759195653026974816437876525022952410157925499357192461542436650285266923614280950900038621637629531678283520768509758976632507336686169597255749991212710396575931283123320597323656770837557059953402320483792271348109364056642599472870229955467063355746913092570371927752210371738153083670614810601874647181209345386689467599530099823638198251960622732900121597711366808813421358362647374630573758463353577084890415061466357533542805896496907301572528938829336645090526772477783019945179091802013091915606088965696389702413548560513438240754329009576474635735536527610869117709687927101477969658837672611265016644187304533474320274990950785795911947892309510986341529533556470087151915420959825442001147386077716750433728355555715606820313297300917255328124467466446506501336515634030929941715003531214942190228770360546626345680320506418743027464464067499270181346973706188287111240164995832156674190996926142401823927363977641960540037401695518494870820924930017566052332723841659814081499613982566620514517480304381567503215357539652292625683165462950367946461906412219187378131030692572198476653815598370283898276346579463549046028275929287386886768436965083217527837358333608318560716588867673141798245942607664222793727877822800787410976871301503029486878793050529052154828841712674174212633057310672885776387756880128886762298770548273421919017322292123722845296403615383052561289639452646205570282380725622949070615721882109911398039371061594414440303167352128857123885896290663441964170856168603237911936530542314197488854999820301460892083047007715812418701997178716893577929907942560576605195171708908084257042946332791823751052850434772677431709184730871498656684006862513334208966080803838901257960281669127819743932904265827071946368045362083855298740616144793761630719785568093195544427667792698077659625520635936193201221387564726167964554872292674175827697654744991473310324305978563177107584291897758569961809401092446729513757179352936210160023638393495548359003070292390898259052935003349307968194168292110909157150373350056355140036191594133347424232070832134886039989564800985284235237864035808778375196975089798397920021151349436007358143565110528733981539317736768249291473870172451099315703256183348782360922584262831727998560868866615608865307107103774178350099341822934373477324147722497715933841067398003101516056026718739084688875868617096855054988112438743925938390137516220953324147636983875502154832929399212548009484974038768892280549632975185878823174027484321519606140347286503502315440720621454022376534632406350333126656664706393202912621354600118167711710311336504572551508289362010362624437103995655556553656931266720635143824796762423114914888726206453021961169127339402610392672466986738866642230911189703098308914831594839385274043142637664952173986853685056926184213594736727148050509457571426790402382030842585918021813830651590945583089091988521520508210498226935190789552361973899328671497017131004880389633171642712450316455187060471281493589973268112574593053809284759105033387622243806128020806449323267587631707603735715534119403953492360343939304402301118126682289911998162309873828265860046492895810518809250931272885680768782946576870453682968230498057579914913373845890588851363674971344818144052020157088846673261858750807495534969392218934634438218878340137219613659518577831428873115245330931419988469624883378506792728510598403810676610987446351955311098012753779181500283301893018653547861816755733566891154660282121101050601592642972202461305355865717508516741852250471139575258869088063651873644397966299524267172091965285492736570169731081326225496108715939041225135848156574723939651500556611150572940924610336960438096585239632511942290251569744806564104598058241791184807107280535911029635741350389619479717711883661079476641300600669318768315594864559897091237111983223028796379849827743857040068757414157766632545494802828186821630400350670484507558978689725784126196706457586067409732614347389535432018910379212388876884782103332379503336753505473086122141355767338295736411730793651896679986738998790802197445397229231815342598611423664663701998657108354121162365237827732107693015012920149984040229293397070686172103518700437533052364888785675369886581205989071144413545276436761964024052368233474603608270429982061988840566892434259205332544791851511657988491956011918239547918511815203048178243883207276809415637051697551663346294037766157854983232413032448755132928802827073606056818322512702221357462150184336610847963203759554918221169396124249422311875865378193774244097592515251518184025341593408899973388017198537519677790314872339180379112325031321021904435922240425370360216776943115235060259513721910136198387578306215088426079955976263241654474571277029989029746586451343628982333573404788416140972552099957932707839871684096115705892947979099581030199655381770557875657432203760254035290686229573723076186327479513539179365127085152069038867281299889431327904828015738080881518126160118751749544637078810714378807616391824215019162761862085834439576637924270451793488575488251716717525580090751389731392925483146241796481787828717747971161839474161755919717705066527300093897331682013932273979316025396694442358602729871339175127183671743767767776624857794551351761821063734224998175257932078831437935450572375702642453579470758702843918973974844617375876224749119950155280912642058641400048415598096649157692538491139040584240448599855008614756166120751317480394891959930608665979242520556439937047735490772973519031619610681938815394407567532920558553788548200410784728512459461839995153555999612544486578394908654713513162576039442432150815807304041675818404728463331764216539862768933356195875958539673250234455024438950849162219960427391912893398580705529003428608321342058308894162114679595455438693558791100807557484452282950949828857788506568527752892242149793233269794245149573067344927045391007310046399195935641025075371459070781005242529884697319630655205568555049553800616802425901634876266954175168447743827983594372690955778758085056846019129453033088354707476036135502047221903135777324217120891945467875505545250330240893653509764513838416849956738387758058280366181803860540867994918737667402525445765120453390156967639740673622103781103992524658089007498924733776041986134636602826401694183232690815054987470034481431198430702437598848250234085325948838398963873911147117773603218265357944320842122808639356000513069392875123638356749866877022809917718545906377272388505207020238436238192278471447991087695666895605657821858804815740738830706528185977494698023714916485808096906772622045519070661465982514894710369373522802429536302624542279379259390953130513905969254918426817654199783366580001425874502702809749858657564699084240450131596057292423927351225389698558938502684173862380043944640799094560185888989501313972839976984874049258025561352199339803514182148152989710552219719865783609009113756188545755564350459710361278574035613419355934830033125574934954327743186646072117199736240799843561808642039907449987203572609767812542394199512035889388703010558008550596423253686714912206955658056456771780619533713189740329070130677075087964426062910868951687688881676494339225797919465034315685099926254591514182676315350536371073950383726652046646518865252753203288551344810150699002910625250558376930243248475336650091754841039046023651105867874887247372826842218390957623984100175514791388774895828961253013613652857153149448408282374997901523581691497401889176839774857259629195040975415808266116084663514440989880503711959368176337766267818679066325239475808910160421018473490746238663695941295172169982239204117768263246690839970324014030857846844054595060399828955661898612856832962387603318614636348635015972351944353065760380849618305625038395106029636897205226251872593663094478361297151079570309147089845943142446496211081890177698901454019249345452286030770160694105481540703241523666808112680402667445542987108518317698521085880777435672760518358169047034675518499085706519861472031010236243475320400699891164314380148613007845862894499045949487508412093311898726127133032865579755511724980676934142397309316307712283239927191427015369465672330128145460385820811962466781768202752898036212064018508406693477699277221981624237406566503764930214035738451764901765183304951906277928553555555173709441501802423391429496742117946178299940182591710881644292391014534432402975218077785989708533359409575141331785157270166116043134114757972142768734343585174833399332337243793444153566281736338163713406082462759023479254075731968242574995369624295054863919705149354514341662904796468914130187208347730257419189553661661350096799240315081067134765517418679323743559311218661145172427262720191891462585333632065786631235400133562102384722269848161874994044511432740592045615186107713730660527016048456550701426942348682766920467838928702656228896536566613432017865607351300986323680642228509507507587288207941046880804610396620321635561254056273694858669272296662870164347917076289417894600678808247594358294815852771875571519297251895083549779502475264199926447687375770354607383308731655442793598037812492101288497111510617006131923902354274620079671654106068172602791503249041863408555050919264071746028738659071778353186784766751401102353309783253674480842366425020225084490476349330673241293094817497603542618975855144889149547652623122319048304846543316620177783347206852182048336931891971334929760172681037130189175481676946369329033366462916857583547515441956484827741125258515210082413400379359281290694971791672771580911386273474755263622183000470266245923508797622182145793683895151045848397620125826690856110289507786876687174009680936459486457671022454320731473974678813620007443935111665822129460041575309743344523459541216948620877388074702389886369807966578737880037710019841378681355937088649486625890845204735813947986283393289745318033146621840914425483655346092483954669441450232987305049120062553777210396639986220507461190251893137175837797880218285598243831268902891993172461830815450067159549728067863030853407281509571385225279021895570579914950651124857638466646753423395398451489192460670942596537869601324314586648537721944251237907025539024554971987754077203030952021777522489272150641762268693542168912249302350419033204763659686217738881901743981435997204467579756934911169633232863920747692756410437362726155565471603119441088541732003879294691093515716521575104479863036615813858454376900861689498814740046666130250757440227283516791002866696973119661490198055061820650642731651687375084981968957072959998277740322267937366200628392018446138412105235426995260778282843010589261541615468490657149710635172383632738481288914605866340441351011250552580883734120870056658498833342094636685802297723438513967969749114744348216251678167134144322622235744039888606563159165272198685065821549929202971875351599811286127652948959687982901336007187290084356315076803428270900396576657380635381694899738130224485388126309694270557973800775882272683752572347650477140200791381820206285057797890556811340629724184953022273368848039993542820551763556763419821209575073337923073496435181013912030218329768515651033360388407778846486182865921296672696979635056411947375489753109628228754349333617462606349385486692416126342265141344584571060979281972921481491545907414784569954200691485009252499961372794413192179694348025625176144517527294394138978960701135457577711043335149639684410471104812126641367654535466124026922533934539583103924051254983945891356593837693234540720151474932205926353391179503569057599870581687776256492337215916531727328496806962966074483310600057145972310888361843280655932658486986359615771688540626995870211277571322616038680674116140213964319173779642546808181469782917204393480307715388605376752378314669063165676988746595254516829813429872307129645301917773524487849954590304475185130340944272348111076202288703328305815583412519128857553772555324380150315406602934742809661788836262914673127434370478882083932945102529800711760523732967329850545892730058247707711018056858025026045178380501407908245090880100574551158585894163713588012447464998150270023825763157114352363295057610996481336661650628764485464082915455879628370147456700506452886181524385696778531436935248285073519841869497774395966233866545213822753888848150036526969585304022791770842379088080245935856363030340164265666743962741866695568898701585785220799744946352821219810728163359828870622965848609888736521407186820871784611947473435892865364024738738321999982488148645647169212202838129420172287753087231127959741580255439225719946331780830349945754286366987325366281710334403257733364619613509245515584886485608912525799835206668627925384585008123213205579702178696713513295297946044535229128910232578272038674620304792575763811520339803931511447145560998992534229364173128165042769518016214570582282044645658227170898880152669716452819593304477533175562687415370364128228204748665322119845449631355434136882739834104536301612247438644662339622334385325566592391553536339526327478738603936996498740945377664822101886495846078103444649417263390007119797604520050919499069618819323735727152988897064218590035298353476368039619394912358324571024952875617862981167730385993566264595772226818465860232180734303480712279680222291374652993557840173463716531232437497427573748520035233840508240256744940489687168045883811021655136479832702500692333248885239786193031746843891613970319980571962048821525956110622989003647875794259230423441798414456549830515535347033247386921900100292161608388747755601370411053541189570147755539637851787944044483927292174736199885984983630632084930174013280280129607040982622866978886732049896404477647513562678890879012003957903172151694216104919560547034665699592979930982013522463645830449798970785773112188063004780421220960739826347750222192285355099311939506195454520128846023779977990379521172966516127705494002094752281146504555191781296593278464720830085119908672477242910881869631825914704162594764729725376421410843332701410033790901700306233842172681617672493977729422846925442195830570545824605789618170159070042949659152608022350148067841557963120248852317460563330733854789751738737369655768555535445668734546516805750704744174790031439846142691018052111083483373644767759565699005166387907281882289425964783581993162108378117738479489866956321163424919133473557625864220731835455021128278905378152390953783272841320825860373316626662917761088033600375220319107815393722929983502542550516178422174759463824106617184569335935051193585533957839791843158510450149735428571429534345196702879682549127823826173136857638304158008655157425536475683396657259675427233547439226389733691313979815760578675285331641592899188255436439158668740182168687839253376553739603514761920776526063068664224494703773625899289110549372584694333161242395256460564312681412326895884728958246012394291245544903640181093903898092580761047698652984835512889875735580254760707677131145866459526378395336509933483910264164648032620053416647390555022746471573773406278626092446311887759338982052886484983634308647100244002022237478282342480772274543487809964759178065687766252073281935701704330358858526774971503319627216972518792706969308779378736736990419690567802775278223927242264426959769968956900114547070039160712558809370596409518562566685499840850708800695502069554060131678732787754502302017272030312287868766038947985060046946671651310478186025088581543621531903811520772237364241821261637699306111336346265034102787018739273366112833504494433889203553400945492613264364772809440599468981961283486043281567563569661924272297746219454705135218418109735929578252296322287330026325272886175788401164394792754605471813089987393465715868260666806022487195415331469616772598270070543379154900038858825140638207130035525947117856642854534615996875986184114261234534605810036239906440052800572135210262158832689553885825251987385255495368174954111431787176437358213782474684999148354469060208737394116613536224159163099340305436528844061643524408842209874667169661286929481152573498802423154605514733472041662027478564828934108821447374321089882886222361435915672933642242113490225538733912015680019005571280003459364302492014787190053058640527368741119706945535504307329839489195570507084150281690086278384917923276786604765738172253245210402955743204039948081655048909694803248308991529445049740596409502604268279815493743049921550586273446995082693607932774519598131247695067840276638830779879895211790780674688891924051106225556903206692798153221105987507119817240532653290133630563106215792998266372232103989033967402190496474865377133133972559856863322648045546378491075854031410371783270843123345247351516385143386728496122633233614415054012390746956848644556204926573236380566669600510687437299756045163023285997833768206294121730953108467128278489741625569970310113202793437868155797240995635623822369483418153712997945795957496030014709997191744048219350232989171504610444521886278090756750507084132453364536289043937370718776551727014148451886813240352850035589515462220747897072567023487384427716726556261425184514306944365856511815817564726236984218537464424886988335990989859363727852787680512308480912517235045293338883522605528816068558027907461276455781221585470735264415313039243908139929519057483779413731457487877418545413939945637878895808373420504633318737554103746697221865527120499602392085702000230443297794709623799810304348432152504746853633624070090774214273527746373405853048063373599967373532865440523108595194078241473643432797645576447214269013152193979196306857832581314530404646715447186083160454485762717523568200845539205651221852234234194467627048866670760053865746632637310173140465942091028287826314456190743230285702885653994124154628928935658693244286970096615480155195104143122111925191044282667859306733174859363660739276200894158303994010773985815548018755606517553314044193250609712174714249672492349554967772850787588808392200312825867592900976393128761238857947215342981632663285293274018958127849757386785661699215428719387688735916625113912275908651061437751134477521952996238666340193536465428149419823528140570511364421182989420257269963386304113363564717610109672498694641827620601753863898127646307060612591097775736666318305666240899872550005569964195742007544796776519005694191956607034084499957293589908223944965620759269151724725376753043038591078807533704144802620435887714924663383349172042546154618842914366572689407216517938411092309566674457544322314611638173459596954199528205229383671611891433279652798192397378110849080437390901923431613197395982453433093694787231593827587280308770265222115780969262625851774596139237192148604257378862957148471453682732353383430337780890991798190220913428028822951109971705999791923736473024678808908673776132990329243638105045617195361625987206895979646475575560109593770773442039497064395593675905165415753781766473208587022223468437312736071227844040413605432979162661717787286903580091199370157506959030645815705665958416948876391029079757040005849635599585490284132130727499820061904075307496626375599132823210638542208357797485190465781524994084852566333671122190325998364395801226460079646844792618790196940273081404637272688490971569052774539836696113910497881056510829441218800463713077050462073061082613299683515275058792994604110024623245909030249333218814633230540398020884886383149082839047134321272505872494644722106941744569443262721973346580953160140070645479400449976132954385479159334597535522939024772110718000856388243568632829721111085130320485023987625881570648492307835373365829328293126133851436560370117973253884334879948125617893629027011143683547846650158462120745996419299753301395566101415130204115807708472027164978546913590311042320081682262553909655607040378536978132679609527865600470716038353298400145644030805080845088867440344033916930276570327330794128543790694072001387945867342674821800150477990944246542579698946659280369871306225122942019024286216654517065060136163840798661263823368925284366755471858945996641462791223965466175359855568402675879351799940145781139742190168709146538279676569441178699277778392517630072062114402159090934433139058958891536821541665499256309281602915250481947582524867449077822542587627539982558473016027065958199110678158032203787524916044856421108356847037008689277554821539679261303797473026456802741804751628139473068616689440974160457358340429333690121379074464503586011501409628094965028822063351742561898026635181947386109561458238552571580274890466818454898253078306822375413692975073791859692441113297469960146448710445250028752230644700744417366164201334939938664451847787652023128992269630152745289903918117365870799378349757709557565856449217532439471960547326260893415090993209230764640269081855506534954616700562810898792935057392699717211485883358339526471629830925113975216550575470981674130550658486507399424211540939481908888913643835558221962998370408874314303160949721910230297335162486625047405688927398795343452562029911295857740133312295235408643008655271227436263148952225258575437545189898140037382736336481855113956084722311571076082907980102608870955845851949641076685076308447232625140165474611600528795164942556379749598347826613643031022954162010864970067033500069932004936037665246371076434666179986323018889956969582274250799784935929445782326080326578385201193689070385332849034817724858807314796511244016080245323932835285014699955923310800304511240081702308766204490332988942423606065545554076047748250731750063406853554523030956630029311096156258903347753027018842813234111947815754983324067136313725084079582393855760283193626609358880681385319281279391186670327490745032737955103948122448784983611547790173004896613185049656810759330867325127623973819159593065521450158916092288303724791294228148060626694101391149848277881994635641582574716928365242762295590547704014365467375907924913169909728699904184808580354704020380950157559272561211600585788317339260029890090403729106063627990242373173644893160148665764049151247096579976723510942573869723940312804507865262697619881456935359309126819414728794529763175503732510129434101754252674576640018185145289079061672042770886590738958231297814766313777640675704866462043695925099411735894615300168752683429140771433436538763754924839853012148756298197721807141349372987576491938364557788890238938318180026894867702064761789926160326845515214180432686903165558974984268455387208572667613081340258223421306832823982251043930102866522568697508961625273366281682745504226002425892990856165074825822891893305847022241853088615685321985684827032055260462323239542120847121464766024837972502953836712320033017980427622693559069132251109327902387323907068550619965314721933175362000446706068654473144986988281778720583550374084652673208929667369620173109143645115102479230255419314472457792876478581194206998142098768151499051830708936816377848420933270047067222423616787355173161670469388622927143250647565402508953703353007818164777069990602702414567128866370199852579647883100314213730848356925158603537616894505206432948092111364480061096858193082329572633356700725660172844303943569696299969389201469711281613689299372687771350444176408741099003897772924102927157454987839066704860226332786207021360911904732951416017300968226479619442489912125300736864493791176020105421125806954080172716693883333840404575838137331630651478511705497159431426967128778882663883989172711281632457424183763391775697473395633699378266820160869681649144643398238952044129691591974044725172656516861949986384861947607283920650676663623714921552926422918145965592386212552181233270834400611148299077084401809765480487261958238984698796024379737379225392656984224036534588895599097971013549544426350466747566002737008505161551168029602172505964305789874164725401538593104614983074734639113251766270211267744820232478435135789557389005107368477240472647142191520874468567940887303540879090210356129176250476331147161936113806463827962223105131048687335218695414214951301819052902869090962127248910811689687387138656399988235635725137531687451447392035501421851038892894270624017771990030534363239282688030995393561227722598453522227050800066668826121797687329978610247147097216826944481095101481306489865682404958065487063946760393940648462659783083311989654828301520187011171831433564850521302880400763400067782550220902424723832171552798897551148164342840801044262171633478974990078999264473668858347815988142287655951872311144425733973241126449820496749368294297009293333841770874664771671462144443318186875513239957628688092777697710256399613141535564057508371270915122014307773108156252315905282014583424426935932044970589536546164321306552672702304849781890716582016623430154069517101198709266036823275735639519003646279100438270354838805717883250710268602768542810207859822891757588264913835593517098444942498299962227452313780378142152263968621523399580091442132223418236356244974962602689751088960717301886003400636319117294528197868254616095194787025446323767454851828029630190651467926747693095198167772096808574857224887215829201843078683922598451035290462628848420660765041205717741579855976850231464314914466265214464504218886415159604289248027296057453975443700393262518359469442356452148983273865630809504770932591779686159318003046723547779344798790088472282278122002859925396231513051779573228276888227235389856016113207492586879672103271756391016838767119340680950029028712986840126252701125275070099198125384642962551014367993818405401727775649322992582967895515378452009318200269443009655591457390149633316450758982866975556286489076600667947502941701274561664987975572892560073857421736326113379103754642849730209603397630387271480480500223287354950471341430131040090955488983651897739209756214916144160903320483300871954511209209625259697854014842967232764375877101042192099189612024027875543922366063539487780572264290303777934048853441618895120807006963955614518634295838146249456265623094817626070464485114028917870759299698405806075094065388849335216347554843062729200868487024559818299452197588335722408936502343682049176238040083515253553570257540702026857518946645019199887977785383124827887415756901968907103763425698966372621764861716606873570391326930616109556068967746926891101489977022660241224141563945794706121827634401575862576843705763890296190669553470433604870050676955918659442544528758691425502228152217832870391187174445432455341006820271302651243473348795766716031050319392420249552145519053496429126434293875489709085814225537657647414547422271686556292464602724412134485747473339569923713292045865637312595263894638506555084504948506772759720463668921416610044198529494006422581016579516359194334745326097684533391362310888557972618736770912741640898496362048006496253857599247731751203650297279539482333187483525644339088579206529004698070885938860390310205485039400680806333743544063449208499687758816015814382735283456055217898285914201626446652473877389491069349673136155929936291676751541047949501723654492787239926456924877695561586531798871513307205061461277808693526120706403427797720437380929746493168031616360325371698823990687569642779769162261934667672048629531408533032482678394745494867748588720599866952352366319604964084562203332239104243233008555317273397313382156819079193430869708078340945696172536954427860749028869809845651983620049558584680596040871446056944726827569528501666357370636557822093693669789890821851448890771636316818067665698162440598293838778617055414324981964854178310000919528696225795727654417584267423620156997301138319774496524601585043649411875410077624923663607535327378466719964690639199938181562286665027288023668635110294636889083115132212114570692794925322873461901750086218566483835993147494816886863931409666968453314404700337064806019827200171463334192797121976842578814759368179658214150065475731164430583736412300412659619112109335112226806496072392460377641243201418936983520209665340643546972813732310730060616407679111330864222492667906083846350479608875999321962080251756875554991473537051605578064713433527576175493130483616156586811895556840537227914131091157718165526227248522398628326354394824525473020231233739030103209697856854945589948555727880283391094805624945473427974843785081185800517151391245463895433269618081014125020898069548995971693570770880741432076515096232424395030863344453866208920611845768071821283849428039779824220650135040912094924522971158544418651141327014404913589590297393534853083167336331921415344015516908216991298305077046930861982783885685397610266970309204026892625950951762711108412317758845169547004775329813547462361219118351419200827838501950251294307808371998833631577760214609543081315342892626846948797176157695204229542844369260189630705075371625216987308836167023637499998192449849701571452717238586652645653444247615828154146638030107481296918218442931750945611458232443432572269884469750101557537946424395909048211809525120532920145217710407966376431806462957565583772814071446997624647817864649993819137476792504284562818267552139764667003904979532098935388739824590506041490882581620347166339326107920024355216069994125087738116467500086340205242806228582621203746089683226885500387415295250298773271256956796445481167353569170259816403428852112202002316184308012598643092374597721242638943474757652943258208343072343137643047753988127686148785759898787136031465224502282418984276555874643670228337875797272454515006446836491100126461293278170597496065675963611306275602465233473934060402279102851194554744871772957070171729784403855570356947328863738202571321465323049420627944719350897678739663374370053025958163584768745720002075087351526743963116937272653475749883992028420139303892033297815158416865205755046055726433525812974269231519224818041977515703895562430456533204203159504878254473210740391959564066894479701504955302463837749530298776279598255739980481264500637823209928226976098695243618185528798318399166060854985655696415888439764209109305293558935288319996727084185330864117714117429809916966702145468243543903337196162493334688276722220753365816763345887239825510073763747787661093907286206648565631958962980707614963941616242114767489395160996369842523633946169670966667695991687312810991475544834384849842368676935146944518245733074754873847099042370702083715019122051518655330633204438454652773024340644237033222526256485616397841176385792069403725750970844351256644261554569533813076212008416380172842788096837321283917328938972136365890992310202663871436240556909830207529393504358642378299971202741303522225059408409030021114464859639579479626883960706219742215619408483835207055714996213086023055571219429324974207871001036413476754999453385519612598857235664506585717611046293649157756144384169560420200034877942864693621162717979743941218381453075646910009394001819125664215396051637937853008391476827091064057664044905333976407595120316723174847093295017248824309058305245266416315733706200438287903770051565741188951199055897574670802906733390152188740263018782614412139590360465261508716556105961467347704744800535094063132847580300874019020369527586254495402555794634831561988848444085219497318752110356320984022288415542959926791503633490797297177606871211302853077065752652404459100781313649833710795445782990503456669227667342310323596281409463344892387968346586552541806666485384044915889785967468199293005280813115894690915965341318240746474266173293507070709559022543452566383539233090324756293154653605527388778267938243138484559187218429453673118925170466321353908063368687036577037335549917850242642835059637688076464977445057544946453502698580172260263923312108824645095479626900722321556906829790759178652874628493137792202996468456693765541642188913625283084631887151948937789641439980931932713494853742575989323111584021271108881953521967797928558119784099411311623876384599587600073050056631870128405067451009320268444459818666922503232302768956031160220100708420956553369021620268966057063281167298157632684354019986699984335808628341970612759862413252380606256397716072837738798774284398360236549011159924877568726719058650776215591724078784259844614836961046664810247194972657140933314415949698090740103190986509951384755076445343043290750733220183151201675913035914848985031938384219633495221849273988383608414548151821241585646073750455602599724364165868677395474035269501720394928480471653119991422113955546497565340493959398003288751067154267894555543783373808485062869084051126604988666651748469994811947234674525300598360607296559492847534938458159196236575938277369266037523317041377651814975382116240209243617713817284120263266283106305635454185027403615166843136244844904852820171962009750789261536091394287985417587794691732071385307142994755477103719443790709919022989973366926198664453798366375245409361022031337890686899871520514081241291703897792757183954886217126705481932106058211490952769939521939657179860818874790432322676023625920701441421635544502388807975072193082201837832879341862021513207374679246203849713157697828926701491552623373505090086342251250205706610494172955039085039968326350922568843668841723675723813926998855885469846907877151770950486389572244484691865092055098247814475401402483195355604788030385144729223699204638283572974458116550439066991279478924347628838230704145777898848368795106186020987353549671677928741468635299954372749155358323125058465655078330012241711984840661089698323433146656934708377358945204118316327212466649680928842827300102363132065457531437849198745994758716469778551446416813718153684101269008591498491383000932506720864120292981238881125233542693755331183712260563078213781984877133333249782294368233034922015227274570372232553829623568336555190767325502860588895308892433863963164729433416299287564357737211124935858254267108625746308533421798782445399760696746487942704437649709427743655297486393725813441601251670322193952975300959388535159253160996710748604152920093365198423411667243113270025298060739897432548133247753500974587117750468447139577918835002248208728901836621363438389247604403719402702755653766357023920204414075378259461053752422168439388325239945748630746113416811005617413581780622758715442833238438369975480628477738593555399492206515444935105768206734298083428707827213363628324082131046570203688839908202898518056200327252486256667517960286277662805277906242507780553136924160929074875589962218983076998766464021698834630016195433310295402351149290615164354414025449894342485027206401964741623543003064325801931659604284521766786774140500606285750590141356463446326330111125033334901765736038846525933400531116898326849429598462699382621196985276598825676150604013172620071979780181703448983095696873681290943021656554856974022497331067423350588109157157983629972390204001146549771901562822653976793549669534230747179521703011798314427750885224297921932611648048351643442931662753200730670608219564295590889213122145238828416674369909361712590496843134208858828415752172812933927633316434101046102150553532526819455591933458705064594147301120618118286213939457873681771401379221695262055512200524375927605738593946246213256089493094555509451554295966108987700873754237667471511445562259739734883812590854513107611045664310120484708070504357963823128565120840908637837267902830020406754953274640805558721209257287946641384969383493284414554912644279780858431709035728764022296679482012849485407412366922119523272838769055949343816652098466925475459473177049201762607222524627380317365139759372592937917506926042275694753550007526455935237926743616487533701236912579396273483424112816776239661642239466906001759784688982569850600236115122474854000143325415265823838765312085187385464838117424777759196803421112530364465305522385602707991969515317226897807969703977385887529225428895703299771259987252470226690072736785886399641665332496166447307104630076063852393490711451445969028059990505153499899023526715078335802851303314894787195644936535269165660099521312549648921019179614011977102619553662953088319804784960652625960474808224274850729495028946238124950309491407772344568639765117284021839198430925703346459268945062285518374019442719110645449814114799199306695106779265311854092061617928733658550831888365878736404686538284779304965165856211029614663393511653264745500854146024064271130404150379555898197314339723351662060187904083675358915613245074920187211167713635206194787858392036104533833709149172166711923542248288145432167595322807525345006879571211519237882194246214447647542231060475543129911705679906834795768422903996667644613597292026765881300245078329585348213100217291648877233885248275368273712566128009947360069987235695398082788462102546450984517901308417950504279536757674728854674951913585917132061606428646416671773814641261153693475579495338593624433360288068765417229753718887710688266378482777123186379533389458281743951719140965039665513517115855179713915920574380736895787348622283063565390722055617383724142609622320296514950773426041000281739024540580866487775376719287806208265919011940819638832696232598666088471051364769176930848734241497304172204225484159770496858858456246390448938765317002119093934273566759045631443676559506877746217264662195420314563728396045881049681168528720772767338197462601756754002871802464593018900764745433799623662975164821453332758086521947865160836648687065309339018089199540283038720115895376464076741217739313157021308643621993790041573021703847598391628934776562181992982691211972215098020746896833724266445233709777163108790088695859351171439023822864178711775042581490372681521662284924183474644243535568437696372011710975051553486207785034800237275554737830798368788280601460119621168439800154471106217499507415128480714131946548511613262885253716501453121721787079875256898488163974875095867218144453361485986719112046506362644635930948092609824737752056161299902128616000832748196924482975583601110128869239563937612505067616192736151986686827985323426733737254931634145265426822017941547685151985280903495584159482557101359038546657919493996086723773895738579347006073386158275562798030036264368602693246904531525536290049064456427025716988268853616581270714989467898852393275038615890436629994433007030725840006623566754679833559166103704643672115361244641272332124051688309621159736465234632169083467238586049942575418768272556830299363066661694021616634429999701315443613363118094902087205064334042679312595252297631624770349405835642038363534753149377283528965113798617367409804070275961356894107908093673670154263610829470600065412986389000916186149492191123375009815310893865723574319082635352263734853246325182924470951226418074612183618787955248067646334345086286970264019393303296491746251994560259736049242065910361304025975798416357144450725209330932231042217388788393891625839192257698524110513957542680199349693054879209459787060403851987738282243230934961250776277179699437568956296412661918762886960369072724386515394207857696095172942318511076116976468936019438096396094129919769168175719896637461481668389039042147444234258248557428096623671192264408449701245325072053855787632884031443830406054556725426574305287433089366140102939706012182524613779681638024278342550582871020590655760428180761526880426721965293659459587091240401851574587316617884604480436280392596419434435852537829446514219883290086577552896324646914723984506641382011345470950495402432977065376226540772831779002217734805891256912864887951504598899553507275384607724364335926958425868016635073803859310225288410262794066576552224056654597666657718076489006648414426973831312789157118270015310486351589531355234074787366123783123273572220188371890985987356039636571515723407827563038508028877261817971566862695818515007910019768840687889669744933313271600052992271387679965336586213770211797661795300213500512098621007749985812648596082297831461679680218213126251947437254734451967233665576943148002582393993770837322663938847016453620349462569806213769859600601273255067740378590469715212658726234587898982964726019654752601380220480097315660508787304992282824197426955960103199328755549097208742449080885144249729828275334930975648595862181338505639197630827921123295923253343527305773365718356089810422876199810069458573522292645238418568686555413277330079567290383357610556411146860335561711234832401016177661979938442198240079080565467977133094774915068510729014939462411396786220215223360267022417816360050791075730570983735475963102745547826744569250243129253441455815509579283105133543346029398019159507646940536481572154818149812341786202430523180311445330128928137632825869874747691113935410072909416589440793369545256179126450352135026003165211013193862542802029627362676263348553725992379186806371162450938410922350538743342293845409609992913162174872753400401156884608399525262497535250909033313721733998727569070923383666416607387089663403256764167368685505356633084794106718127376957883352519098977919212673174533219673315439842166211350388276156228232117797309848667911424280179011041586016304236710120527759448580985360451427558620053322014355328789118112667601948202024783128835545394686773731387403895987525643906807919942606574873720327823379156772438298994484296494907098306806358894563075156237532286873161711673636107796920244338603684010833225863817761231310518606667741502974131211743417676767685838657537036976860487525418145417306329138921261789858379564156534405093877635674747469491612042797495563094113659135627195752891993368751626967101176222266562886054086926097009307831364272551020155182292945492960793189533775674638885517645627602683706385532207813463382853474347748493517501828778940366764309933667613276455894449048582175896372328907584891201294043113398876203280681271196268620524905032045260792703340037855100805995812927286192948360104605970006447560507263037112844370243267595625143123939964479397688994767876861795178723931988601793646015811275444288129219879384417054146154108252712965992022508963240624066024151063773028348121598450358502005660401893722577725131314471850253876455428461157630378967008589520856952193125427394439251104304386003165958208847660092634455599161832783069247921883878281829718608760394286486198293785796329138220547366837914966670818356346326251559965668789326954626180877461415841121337114252590121028904600224401851405803509646315260041493176818314472959917939494746583148458339557291270752923093404598212296264611214407978825823360967203523038886970211270749572326970446031974068337173284586858040730287688081474182026901778988486120657668169048902056066113096095812248878908857628652448342011246456759471066889684390631148054650133843698387336588700608835869817969786979161414874088624679276451008952625034341686238011751640936497575592281767125557249022095679218093987229288041168528879104739480474424831729930764785957157725743933868974007956421271643891467765420750499506933735616335957009480185121091938782237258277386772882797336454112270165159682616742297273694445462333081923795169116950239785491959706229109815823287830945395578418491557305124607159098984326822884181717557004159972059161877487251364710076547815280037717838777640040892092404984956376844589936604132381963900429162700820755269967053942573204345915038889806789542517413464933839040141001971661234519126923817319306471966651450945100524767269729098369079644862013308855193793197156596178765577996888224073120316016408429257306991417324266087441284669261933254463388695085016148466162690564198908142712537179048358464086309284123794578115956537232408469512880744052864905129463209912258255651858261230692221759908942043579811889848124903299760230906852187949597465611920391745994482541276603097026376768003626277463855535208430441822691910964358130589142060949700666675320399178361956199912494711147450227199569717924579166947141696711798121329624165234089942428376279250636156808804916230532544317185368431869395123710775323786285412881448504912380281606616615488030659067061630268701745875762612905423780587613931316198580424771670457166197356482103296792690902725476195742132098417099240965891453244438495488731663405792150936856026639164512485560238067890260272592027826807515175127174161217498109313522333932677050758999822348713541831564972362829409586154482517541454235692189834278963061671927890794188959290960984071445235882557745277835750149980883185287323408565068303995783980441962863958820041790420540540186694946502834677717628926684595553453029849752563639923955373706979042742666772420813459818833642436634798210377685888351262427837870908229451618226330828370431659787757486268717222151998293936813086385160950392811377195419793332460137442033422600422995519417226890295503262335067567567911895515502088939451824500571567049253730497370235064571458318244236218806954072406897703425297075041671111159109797976903007098040048012068908178899211583629979318150571699499927636011769181578993088562910949716858422320796761011134631942740565959293292930062843728411009404254075610143889758481176286598132732266963319277160975433211005421043636146863001689133430780147518683524129244971571689391025348896138996737882235042583337546289285697351282257834907497704230442857999552290378479290328895985144555684789008142679796061154011223307476343461744775130755968631410047046247001895233849051969768285215463317803882834126583877555959184378328852198406474323704711834603879159408936607923018744720068475368995483929764468230285287858530222545294022776362567165843138797714828987851816599402056264621977047146550828941409433756647402184568334436979956016356868525407495887676473367683417233505652288526035529667501029127312207253719479176501365287866924913499729072639292619593905879384874435265158930054323180275342241613714342401812268063546154616531796841138405449921088417260278414452166913779249198855301105485837050817570056405604807543551149226797601648388524928937369997287920669328400953726380376959675478782662125446654843517787365817146435784351990292297231580097502003264639230352129908414095450535213872339100265814942470806481409334003907505377401176648938950375215047380345491025638971108949086213909985761175880450095400539372690252315599414667336116432405033121463840151958744679313579991361006467333301049660120076072087012835199093891915167829879409271097955805982471794746266768974346300230882625467843974830042243652677578915476102182909545906557591582797749650222617454385304255703430190514708392285373637467049506110467161034440419401353329858622741049748918885830322470657732130471353682313083100491514350257198914149256180474116652477381275247623760398070102105589207244789265670109399576665782269960143105423816127837308255362076630137202622439654416592353223978908844660815781868917041510830694203773006495831022085309554494682599190524191576839094764248379767808928055884052139553909443595438750145337540226408217932801928704907296478473714628437408511914426619357288332956838778704008843246586551129572031615550026374954792733087846456702748560504686461385348020699393312058514850585357259256622471277521231785314553216749477204770517414812371316711893193349562666177031170497256025980334186098307935859814566942077028137894323767766462010119661490459553635879016851470304039656564592652758908573488757442549730712102386262698139698219941447663116801064899031300335553377552609731270756223046488756345856528959068603739075634498510911447536791728715202928934116102433623782856240979031389670548079708776915403037123315834623976786271398560520240570487087938758281463172887010320817974767827516146143495511956076722469754932967550126893159402301956727599218072505185586735117555390342915077548122837775459178365730566121136992416699251750042776431236713431731497407290713408116326262753532800784820927874755971018089763185849377785498408342814192619846856194939256430191926291542761602928961670412460217626230678961103411148225183724694285845375058610046274079439688960005872949988450660751114468989995687293444665402815024091173881386041190796903520588553010768795075135009763058900490486836149378678469374619496197886661916893628670621227884028009014015930874221221767927370736668698459342383581183179562445504804080267821414802929670513290574380848944417251444449069458637837950400823180756277333883388211154218391822723517814819889052332088782455090447846178343435247293317369507653672826524577363711155399877533613537205816141978636795977660492138683455075363016500268803491220579584287532586869628533182632232233623633449545059285653779802869348724334794002370088592875652773338242593706129668623366981069630274927730387520518164111670137004566729397252458428429750260854977478021712320184344079335223508349712951823719909606150054372498939906607838884969541667495538060889658903293721581239445875409644127599597920716055151326327184158878504704736679105544321633374143046502221157015651856413552527648650361286929810923486687096404979614881064153513065864655914466196149485186794517643622618111132315298312696096916453731376364844932037592986019496482026559369031059051721159332378178910352506397102065100812215449267166404880345460880423250562030440146885940893984755222770041218699063280487131106715197293554027417277244419077841761335596781253952447124570575116608368425703754656240119786431952629646543169736942318829524688871789260302109913739070446218748393972401366965627342688697014791938675276547632321758723496915463164872386780987405026433073389878444822774173010157134091178141352127986013196429455901504855161883743534333975925822356548004272960078222211437015798514169279007497050701853803446440046096240133027898386437072573942791235706142191953052696294312640125853810851185406196334307091259315327264581939681917092381489619531462599925181430752829577748219554542813837590482267730950513526311406537588346042273354504865353768706722703524139087646241169458736158538961092523217384257221529927750216987281982564793445008168818721582971765721999452177081553761891957608511242219567179636485603604476038115845737536483785123800082217200122000954304935565467292645428319280433101793634633686335578145554421273610577066603672148692872648409101528902443636564294253074538333027019850018170425830857319652272097684135343566398731622625129685905627197213292049159353336925345610570761101340985088611359140141747431947254126784669773895395553269588199850144005143977879052412651932096061708969958367568123510908801867389131567728432444662227930473077889669256634969944903887332100277087390243569014126174349802980748251175721815503544075447477779393851600545968651341784653098631774820336873217922722902874563838093999871648269730294782871915848183740505144901823258078669827193652550725719300447308587124048120764982895464307492916393271566996497114855400601320860724145254126614485717366292411821396328627767958476609239044771182672929843925020780469702102614822817997945123817979549886948100599520398361749729119524523909058549815647229756705002484185174732300274120794393253665710884662180533378726182496118446730700631002777029046737501460475400674547854045669026972522215707340252718885616041900810359695603537093309658197211346473736806733305428977826700282633991797063102823955256305230181450247466941423125207842151419374725423674720242323286460462558831403429280232729008193869276273241418255903747043493091506673939908378703010814904313919334958100671466041494447372324557624237865017261791970955176296726345306730564964563822556387897177542010148484235961732980198010420474697448921021698941676199017807763676135991300783556824943826391247927446172804916314961522750501582766656904921850070567849621103277519823489502214173887200365588896000667557797443885443698045334763842908683551628333255344128409768888267041332132100517103613712961356533376468658323168027714403922639385118943928233000217214891378915057752269489936518293000668254410699695982504798088716477920371426712056589569287731760618205477701388106769452218596688341488839441804076582711842626624037724433296169707980566485037550242960203125357703278172109442315155891257459851340579613227313234611274210974851313603738834313940117639447061456950760084438519158248823592433947580042996643583940360105059430896932470428609011931090166709637098917944064880108327267450633541533007106669107358490025244415989195584074180871088455572071302381735394590794676708765240269643094657859433478700996677909449950579757067652144178937778020698422092297502417871074767456726498649746189060356339361787973869884795827141908549962877255364681647637951694330223875356502035671388802939265373503290695369378427190962215052352164034285528611248323303192976204895462122869794539068402146105513396261562292006612012029051828409810791163891006960252607595451531487407364293929513085598707190433788455243963487888515216997215934820645593112652119129338793024117380941445331470064084904852922868143498811152596748215255738430071742986879100625703087005452782117461149188195521948145716532565293274535340775689276130761958038023355567677982594654395970897379624454870163167947831706276057020562655696115825657945192296894640434643414006816917206542706419996158088796248743424819946578899381653937785360382019227312271452446165551226924958880035556759647702488713755900118254403947980644345092352203197879317254383019943428616375532776763829062417361748194974757824548566574048236064314794578500286919268527419115699109545366790613986984536124408705760569994738019605012580860166532336616301155737211104628101666354891801350335483519730869763697418260603210687307738272354657949374897446833171414928201561501470400298664304604323629560189238219563663310336980294003556721235591284207543821289411130067819518436547054514274320618405677240863277386167287608855523940471615610114497820743097931681804959423726655233442404867758864939814060184700993124158667591610673548380695949883415587686201666293045965731208559835466182190764571520131904600092722950412582108140371997995648481530781851606642315085889107965993118214448301000330773505871636161271260869486943977212354641140538346677725069523225558107271343905515053914763743891326671441450753507474332870584756352248369848995832306598429769926028014163448835519182780926136969541795330787550063653404392133436623075168439505342200258968479588684766399161117927298810113787085757514076748183065545995049257148205889590384557308137680517526150168344437496884132245166390074235247739634528127783261388657714792224915245374199195687580955910124905230527309942799502192599898573549532298446790523145116180312441724807144887465463543957503673927453717846461481992144949596184088582155513222093990128479307745577655467789053717728461123221125993888141043949467920380282845559020951167679000455611309146238003637605746332346218860711867456427499814404962434776363805887625380769858403620294103580100290364567396887977412019595657477391055607409818417848376945058401123433441903947907505454179603104683043548855002859818525861215838207212489005526040745867442759117699952914062389631087504116910460631659914636128928353690193099291432660919883216671351060397274195484643806042314742940200423329923677695773219766235419028335183051707100204046212006811689232411115985856566240607083457320223532662493720421961412894618340661253852878195678415781656027552692061753757098182160414428243730679529489498274865844259795158031096834061939282848307039510325856207571544001410326519625642053875580686630970097613684714046622339964140610851900709528831247021318656561908831952800083727986699991033380627126968322969264234518571052008713304504779424824113318181898344654138577529476243874063278873553846328722566649432727063315857818772385596332078376314003450531672954196661193806213089766588335548337827519965190412663268322473436238803468585949383083779823138200364604508528016860775442397006989267823666095349939051908825268697887031147295345962066258625426655107622552251822476664903745346756623705161816395461949700635836334655318134659064196291076425535012359047885960430079690173267840600480943927072540278689020592429164823086488202405271653720874674297011918600035031297185367978406146837616080829041677835753265029785266087916507376171821496527927639947896718631149071379948204625230635591995488521898437069834773366105337067638540152549707147617372256103973030647318891403824577271507673383227571747511255442606317162132178665477928260297508329638127241889361538850410992828787917755721950135237830166518690525261033953862284078734403704030608840299898783734085342442281875018153845340708529669708773359189611046260756193633712119650739018319747375766905364691755316410058542151845607716860887839353939238473879266765735332386954877228452229802901759003671775674116401907741172539496908442182520687578211601545023386762820673072115656382569925957383276032941632576261166092073616620243044903694693751021601340973412235481069208517715366146261299743432293856572304048860653217277487312492311026374123133861025361240770832340643282623116662177327528279097850395737483979739796501065565513092810440709340259268885859969610455716873654669135080737029335963627529059016547039643265303373734847859354559454048822509371085254170748738372811406202731118204878436367795621740617255172748055826775767331718607555771755929421676427427949608208787289903846338837410925319631574197714254314578409470043562210968128274096904461794966093946721400611155096704149332295590860574785767860608635440083163032153220598393009610251776777243029070613170719638903813506246462720090381951704656314286492553511303639470490164144085836067143473538943715767427147866786449227508181082185627126621932605248866743683992158628649920595479096617433250059055103951612386618487187008039179343266221249606274683372292395999322118069488829148330433628106449243716443554465190344158425235797821200401918317676339321042415747239500562675189278362682095922478147045755035304282791715046191753196423830713001542064918403159395522529893701461976716267879890275392513728860048875574220639295707449586825319438325175718870214487453811231998371964512404486484237851183397052605396744148677636435137604852084675761095987681643606813192685537240975471672973424605281790328916922968702161543340624111682600629653038235927211961096950065127539132203920615757541229977707010585648861521357811802191609276387834808798165507326552549940526478927520131114781428817536598530473998492707563745818437842251004581293285910011457806720091928910400521865697027145764833871339049829378134886557440755999115730118162535435550985836855168158693867555941670623856648506084435986308037332336041273389742320621622539278827298654146011127987987572288785380409672510733498226608972120404001946308148660586985375844120066605677163408181614102944355602318698953135253247889268773826805421478176779991852447369787039039107206105460258938677500555026721675980974517428643757723189140386941942942243755721298022116525212773160982358929886755963980550504749756936729076287700089360314641721512925748841227900578446126546252821495508872879761316516578725581948353691644051792082026880443753305029127197636315105727639113239130957053031941015102862537287041120903276233033168016111553115638640461748977606827091402924804239426656772156048675033517966517323040817782226596342571951633829474971435781778837890300690436928480165553772320562896457304465226273858106097159486775654061528108553980934842002029949165117265341558317406635394479485483646628901182044771673890014929836072891424560730640698929377911022356879231332301788263930193025094137135379418794294380768113793553537776495578397313849731643198729043893192635779154557423375846629900170147607422055665209927143176639974172050931480871061303468565786940060688584287480258766713614155441782338797407530309007224863565099148608906885801947140196646958249356498206302006390407643455057212676225353325379639018757180863850141302749871417909635890715178602248421495125279998053937088166147963237275783100394634378066282275389933235681657670330435642041070124995428543745822324435102377036042566047078474376711151044055519960322414779173503310265365504435979454932509141426058807870977889544810571892423048052381347146511829635285767055753337579902819367229241229636734337492700936937828483182365795100809411118153445396359417160253474088394327928865911953799674886610134613943780144374809388322748947751970112296895740893165511152919968942945155322661907229409237138099297031952232232434925119686732616532295285349945393386791109815600475756397986461286413218832929282705251752739098971368585298597477729906152756323041766379559934741478316453653122792458769999981761471544977242413855033972987067301540556004797403703302982591440841244286577980099434553091420380327492575239708324113681251696057464594581334473662866999667274757506383813871758437172241911282521088667998143274601213824031936991785559888799212446533101773393053751195344415452665080841763278283949710262384245574217491292446875876898691611304207464827997592160716248436731868596714493909931884592246362073427340117285533399118504912877642062485160166213062825541173351854361787029946408577695057636966805714673554202396379828012529061038409920315426525596663637288094735174253400715127321915830437960902834214494509748858472222007715039903662349764768441444493683340466304837280457699268557322855852747779866414877552865181731673974683373829284160915906298339826505994232457055347060041195787125086944928733760094829274069981565981997143615259908906988066276913056465301742109046830313194681279867545462176346492500131525156929526420539762779445033121298305799133526756217195851168593336332573732542629271284770119223024628151132432251397280473769034100420087034309769218038075054443237826340382263342303537557574545215229878028778717888213493826526067094556450822027598375737606336182976061961124681113410671825688713718221366399175800269530760785728423549760643836607639769884430388282890023904062610991039633088864034150308179506615910884863383360814287060114061445270304593675180265120854329421918627175964897420438819229869781473404245599306104303978679089771769217578966774432511231651744741359806110438820066891231403814309447715069309557735543395124665499814351167396123218001292731985697661061892657053293485167740004837164462765202464008771127439190263372838993411154235781946255182262320555054805171158225541479739202282164664929620916223058822372466671728116209876332940194150992268192257864003203185621909804814604141152928304091691663179877585951028453328926603578238208469011421609999068813946386438199439563812360708076599271413185826923093919338129925386474153064878858723965257360684968977680265632156334565991800400100164726247016589211003680519935099899007366844116908453150377365905363368223316917145991899531967010753604202938062008627516989577155062532371560009589198442440792657795767755333845193720563608404278677035430627324660886636845409679947630387555217136890158992708636838663826207746862662423388296926830913987126248500306746789820907638907106521244931177800001618130367895300110832854808535822936518811788338146554192014068785153226997058141368817260534818150266327407672725320930236410601500184868566401054186418282709724369915632991464352879551760130710128173952382608269795152119984092575278890607226711270638066232540046757123368929665492168266341852838340677694510833324749595371566569714184937329993411319975467216300702191895271401827904252023359836525433094623032571135202071901835659742023179084580013677217883686299568829460722841017893096065212032971361113202376587227223513470684733184064952884057045069059449088064696645373362529420782610070256241226894067528945104087831204763227545679514106878396143900652508818884058281643010042384736477841295374368615856177076106612348827220621509256924492973090258733730805531108672151729369428438308511876110326059128534433746895537923031381646711659625388482393430363890188990540918345300323365591430793683119558009583631454843807991483807935063019258983695580222626824568137997199738001289894001802585680229347524265381713754929149408223869465344881301343276526439326670022395425653728544516685332817870009608181280066197008354048106780497630793804495033836486036627103028276416547209720594161728749390001080287548461482067301618806751624495422418254330906245111981132199943098053433920009031646149417086133495811167306921682877731560732634438792357600075424024267791508046013883832218568618483315925585733812343320376998749093650342245551070515108063138553133483129267817524039968049118529261719757563679938480591256165007779079010709275292323527138198425255548143047598443862002771591319820108196151364008960475168913919193834120532479390982909736174694481536535753105260896310731109526429028487324998958166617509072906154586548465084549836948538313441087701228163956531530326508946648661632448124021160131491778821960978731723710601360117026359546433821756013403725354594786030443201111795902847687421039077529908138145908848407097808635351060472108953355405930666301410056379040468219198653277089134056431163414409290098456898997384976005492786333362928304524165204213523219281430202424409971149875305544967189111933439277150840909597105769269721973981914182329956516614653304282989823001153626250389503787752591020553997174126824646293320504269561995381247143423679029369825418646615549340962073302253029355224224195478204697746179512051200223564128117985148286008484882919349538224649171555121982219043840810897577523239533319719371253904874039183823416733782738409564026162648036173354558925545371401791711590935241863799814139475915870812479438955939750315059123058512790472412336618883594272507187324957334207186952284931146187161694846745686712741082918569267593848553325161805726978036544345750310279855105808982705784740250117166961223752772392935815193469378841218149170927590020194151482018620114675751021102606322730344720748598501957811723445999469277063353330509327170590582124912355495457970987728230472362437422296204450323635255916379373865260333873229086805072209404013797789530002346637899179379187431773636432413950532309784517472714327899623264589390158064777246057147661303834000442422777128680643813266227609495928671385220768518529632533450672682490781705329548952203230881361246133592852943276943146112503506370317629516743714393690249059322863969962420329929473507566598104417885121699739320016987351355883198082658369537317681365326237794252929736739060676037120856848621532875945989706605851761746123034905027554213149903293177508068520029106569889707544265757849256709092047736161195706556274173784712176379666238868922432687140018227058515772133003109205251913879917168414946199849183985291429867881317964824266296049276088613309458536845371398058716414187034793888002892982368600963347195414645923153083063830017548093359778519643217020835056018408850440556612531736211697331832936015345119915614016108918172606204333872142930724888659357960228069699157627083611343053824239214302409774208530770491450597931930359435688316444687904420742708946139145019274125077882040789607913650060780495407692442552714024280428804668010976802069528356920609142028001471547864098731674045254009522545271728688219764769526219386412116291934980199811313105275322736998303513846604784831136258221933116153046686488746759223357314439176879459165595691894889408203342650931851022654799214219641164267242735782208107350295419380015445580895336390812500006422187857887047080623302815164154419766950527527697482146098595026767691339651570604591236351813874803292236153170379504841344222497021353535534996687750633196072143085402778799351728514359326063483309019543741832944117795997438812974972132942307060585645383017635552775562928466003541697121208574478528786273501584728575518719888985606998060554762773002604410891119419752951603380439775298738769421015025980821969219776299275541037327955213864620804293560940225688039491913871785312124238590796326745927315282221151393644232092161812245731966153108501462841231055656823196012471152101552473311314147349770358153565947826483844652786702272701676798983328645417778383277086987764970365785031273225342447662855211482279854130422039838256671860606642537178531000440405130241026463507577299352639841272369180199883593281319840710058296830506706713406558709017811716013417032765514766875511539177474472211885596491376635871849227993592681294904875705663357786176736819359734062324444573387955426689125178990709560268886064779847886685387070813277734400149934476444729282130377935869848478105620969181999120182609443941555437166767670972301978298531749355864701744254423669197469463390537654849201399346938709446913372448919799611227034369544500502402858009149062749662142154295787473217406006348308819881984996016584040564550550278465537273951416279516311408799814813319106434723065015463296317863457492474181748448844786388997641327675109640917143489860154422257127144182730140614567726457822232446915869266501433893453825037820615966569146463012586011477064858009125681616768821109885606048876334821095323492462272568829017511269583414497758157144478697961780798688569678674891019875895176972623407741463532506920514086014717133486159727591164438415098986845090356883677904339327611826458963684698678322992279240232666602178219639109233031348213201443164982003197296534330499686606865724227165653643703504332422633653510635452283475909867669014843409842978854462796297076727882571852709761375375337331757342658812587541528915483354049849038336849400922503121406276036918271066793138375770950567468582805405346765838836255798772997299921424632942539449055455918183621276726524196326208187535098834174107931805690876576323758688281206652707115173985885635950161297712343255102803176430560534795692352560587925750169226506292055400192077854371906189139117174751983201541399066621154000109552610984352317851899525512149711026725433768780708382873758088279961750421711856197751446685193514976282903483235136433232768211624531838173049387726221641666600451307098238507359887688630033390636349184589665779936207177256622010250145846655707173428695908933822366419696069962329164246168018320586917054126954613927962740854306269200744670543958857555410327822186537310194888864109140257156928428272909837472451236572367819611559470078629541394299370847698388989805902485021051795182975543061105283835832408239367377061945591898527368801644714670059654969619589354431255112905711890911021090240916271566629809319332480591373268282704892909412639512100898602621451306754200722329478539780181940576784843099570265420739831050422130655518300276075584630669397101613778316789683528751144330986847832011306232590599838630561259983475086357706020428202553116528100721970960936628999383306493553034213398015295241182369947690732543899314162510281335355286274658853578539975559343196107446048156566324442457905470302657859910262085576854480032186913654828037109824639997970326213692461300228825055894045626857004079341948306022381912386428159901568116940498570858177847650396146379775164178867918553898355807864603425871749420331401389346161985768165144022354908427272312609757974753479645669721841580493423504488149629259683397119719032628155149699107752356639046156622208843993799102956125790496957226873674862215104507182126121680399986992245122330214615472973095552127353129174235095803268935717999405594758376550732737827111741060195781689868813529248034856212259429168660645080933125545942748058965842944151832213705439206800322543105982158694647922758309322402450570304774539362279157847883488180102166565572854098227643746269531251452059209480200117421567335159290938488892243962272294277052475750894881972841051775659071209835410700893252451498971996221084603779668855360271694152485879744269875772862165776108088945261521603452209939870796836417992754576850291346269778854684938886726687219547840743841293044748129314005955657469128134068790667111044689814005515626137832174774378778727598100449591159074196846653709179676521731650627510065380665124307102165176163343655190897077982748607922675137361222939542363981140699419134350434373682666855665344663774860129217698750429257794530550998688493824716977614386572097272090645852310665267595764217710049885699040521203721580792157653929425407132584541588946713859084596125636491323652380734718261594144083216639471208356719513842760020066262834417321094086017179328896068517013544541710398044455555221203105505935033776119415431629715294862077212234106366410952931898817042292914058328972608528045612979656563710628054995331687149915544553961553709543836648398978885259331606374655544447929344490568560370595627075981334569389060500937450550717474778539138992353693183137200467585466642984020568100680001387367174140858075763838622849951597325187301631742290702737208427207011209414913416144827417543323955353485118915474237833028081498065251576886505140286447876711982371448926652158346572590743243737318110397291975566399004061779354391408326264081873952372282973537272613936153962624084206099794884843268177144376450157577652028499371961484062106761779517917862677537503225754542646404422289553481036552047294408477551235654231439045599707646483853829832211158561533361175581749915233609268480974248200321880097523731455642835755618480482788619897042614740149205753043505722487384950728185562023384975281732242884680438243919430456575603613316334391938231177415867371201962490938035493454223630231280551153362423983599269317269630858349282818084082737313965698153725201237211635316091546208491614423730075477486095195785427157657372123027983072182234900888075211520082837098384605195991601385181957448484868642123918712764081999036166428378356529413840044892396802533508695213023133952036171670144259349830068898994984027014495976700748383290988920693677238346259792319498136996172369777808482091334884604658712513935466710978637611839794892466660594409853596139664363194795683318493519433177558860603789243953515368022063774326035531035743066782653132192331025773164018988546857275141878952866619309590763818354732370807006035694328941204854167944676783711117273401875841481413640189798118763467318241887660665121779855731219761176550664742960480056908477451852632448373700326132133881660346868968811641406950808159983137160323971456600158097083177431346299159409948278189539234365716207303435046226385253803540643594186833813116889784850766332590726398634853463406948707233710696720221813571712244058606862346150461256642430421966199943042920082967470746348712286128194706232566004533014190701799442671161059693694844526947089360735894154847609060280173988841486554409397317400389465396022628807884267285497853763994134908490414271334734252001281542803382904036830496190716280850042500701189777104481038928433743316613162667464522965355333987068672706279704857432060164533443418377055096223318768188342308855978942638322813787394967922503223678915973551814096556584664364315311420047242887324446362157173359573725016437415421597781349377808685093314046503241023475965177334227745181180700417941505217321518266544781662314032720360122613462854229198145609708733476647873039832898655633713411349053492119331101944475096271511046586926388969709600085662189966238867258016367649777076028952993490119110912594690010128070916359486828327248566030818848005232057601024780407035878775884295782183904789556824572481780219757181051876134746179870801033877378050780756825425050562492392456194392568125004233204659668399915296109868680338526277700262880726040742046593945555874330580202803521425622686913523576484106929817604686602155009399504835146921567946084437173225147235051352688999991346000152447857953336560187896803733502554149086287948246793218125028612755680986350052963879905631295964641236320635793311829764639583564705511185684187984256083902449004663121144269821103766203184982614648456475911421470863411192347865729116336394509634229853329974378190226176896786803174948106440207686604575861288720439103682562657139181030397812413862627614084082606662833614024831245352862540925961156975522967623506860072308733072223127263886942357022130381313713830233981565070296367521304016054863782071763154760631543287666286688995128228652671024098996178531820038699459470578357788519695324644581771770148550442641633637510609248734670211441543349244794098669772133436512625886660165837344433124085138032980034867380146714545620327140878114217937973372180053030791884966665892107306753721758811050517635374734712348256827146798521052745956941815565232945196007329022653394418137364925730622694037834378569700499461691551108064170430251360929297252438018059219246101044404889959813636680251103068841755368863224004719598549901254648849401290465735079484910528985615689715319478371911231715500678675349539619203822673919270848107017085341848009919546284541292856205885704562373227148162184444618116435960970091538965375632386760431387494163582787918543376245255497315372860104189867094399007840784936302766340168370607035183929717079358090700008209697974421261850564794382321315144441462051288729470764772400380537365963320562468116799289817038456318582445674188484867253712327571846496149949093027266464228211260946051323394647318036995059471568743220867746977479460615152173921939996111917064085415954534844988686783214543793425419542394412216513496259485275068902491299513456311454467190052363136164400883989768603141398498253097675130578514473880539320777840801914508728774622041821060644134203093716218126421613629533594453477046633977065910058544719707397434604029742496640904629935752168481106686623312649487605219436747381356217631765811495936208143167835262610752115724118688396492783793080067068121041064967310859940455545561136402087981608880542692035872025582846561225205951264672328520162973560773212221817791335456732747446411500764407911795704142527436716314978190184737364877714590149026927036459648121818249500942597087420413843226999162897646637681385039118625525294423646497102895450306942419899642362855462909247427405211484723151654931502605269606832364596912458787767737614598934077172271944874892583840739907033796983164594196413711087550473937351658915947935534828670447502959669350849709347059588144323910883607694816380844530606048899624636586694854846999517903254924801968234933905135908325947665494726608365715053402953631501976357803029195131668935637166181276392390719191758039067260056617390474595102976858965618581382021101322438544477424737941112550527012431517608810638329206773095341198535485573134826413412981075537641651554028596649945367358591499119434427192005359575794245938817675940742460700344595069696015822687556412868337734225430983288779732053187834832907768933756156923902877791815625440998473510165172336433828288193411516952103992310923828089892478871158465073293786500935889172474932147916598139150684900299240126209746403897461620521118649183146700558142191981053448392223457383675351635385644240896157952339995864131308638467447872459254487547458708330798667260584871511677336527362226511274589249321714684889668402997357393866140328815984869526304937461330762776789875768857592633299481253009772245845840438223124883599008329850989227032808975874309326013396568147781244884862676668829828954541775895567561025410406943980691596962743493284357127826913579468715498616535423568496626981367786310707211919042913194187709301337442404026490262242066106078036707831637948290594111516383110022675518066465236222172004928775773683226636134102755939121886914144468872633125996905933393502243675402157434698855264390466546366977575618306920682635491970698869353267075537739091308014191321519591052890982377367095365355465023826600341134495537033941957243476979078831791803124695101166311367081627985491183407217307643034391138810058286040296443655682953846144725924442008754156588502679571301351719481042625541188669488617478168744750367638446062800176049215173302587299895947651777858421390959272637639040134328634977232317447157911546618718983762342252898066963563857541929442820142467594777389113918282134373323987202618063521171203648201604283691925086038481025067268293967025696460369452344082479399526033892366689864646249295544337492449839265619308052202939165796237714864696952382374280279229831981593680574091287776129648753882385880527020317744801949618167344543351007577434240048876043023814346113547049604957449134742202044229132072445012548370072452723750657413556843825081379847734087195478447409368456055331832955904767419360024740431601306321748453809901598634380917638973361342727686817342600177809657894414436433724179251700706507197802220019312851246225001701170537540370898408309010851094804687212222969037061187704672708136163303603289310245514441560212136082791251400489563940868514367339740978870411391993613809764365392524024423502901739865708687822875523657032779514247932173087005289504715751280201150795011250558373986997454364078333703101685519946435140629985878016960054195938199277765630313302070497452591715094792970007403228491376748887928751468274000883188425496303026097622637545417802686230276517617832877887118758044626424557770040244898118155618756341312798379424407526291100157877567737162052826576971668724429773573205023951380877823376520116327800548195876878561304787282880376654172113453492602045037632630938761051139719012769655685802167141754096742865559454786643266389818663930695403140876915201311543505240903432996413796763729255184361317606445736895809747057675125167790058670841723521824666436423014197019874705923405576723765922146258534036517333680201868358291583369294360750783819825131861845610680491836564315207774440334144205254181387633236176541280764320951933912891765654231992680996787692529630355187182603399792945773500437745175489971630770774478138437824907161019077786528200075651367689316652693207250568768629624163799160968284049267628797781352852246555229182902684136676041199571307962251127663274682368184931218602551588487335760244331882579610009169597152561067800939534546167978317948018639417178173637926473614154636469092118900237600511205585887854424542556093546347339016367582841965635867711234042552384094978343946854382953038109926597089989943827716875169338361296931147575213721453881324155376423335611868645888468236725281179032842121965413952920725616828092245575969883565821792545764854408146229957357702556322371425963882536667369840626398082507509795465730850491065062967828864241724860720509629046897277869351934615654189705567070273334835067283325980370027031382141655362293125380695309232618504433427076935006864750176096827037215119150443530380754141677649265432532264358955520376448585039445778014778833493555894749603132746822955145339922266291774533641066034912177151967416964845448068131624734113740419355538958575128033667458041269775452664097811514092973636702290469852495242508317902243372336271308563596690974565199010682111815961517985892037097961605213873957277533643550488016531118525592028226748680773856287808574998037996549199047005210106990569855165317784523748590499584765386842656489539985003198813898248927794722751183509125299976831926844192110259540724363578065310756991903975821605998562516384183923306374907399754586832312265904145180574309976122463639257325634132506383743889598825786782144272100228489776733557378060994220308532372068283681247751924853047586222909808436155869007104646480304841122176207636005678693291944506701945465616311560552515973720381407176550701984020849323881876560558963822963310857625023879574118598693543325995414719736287512022639319564210360085388947151571088126485216216928136421689809523197526747543781034191040492885384574701061627311864259865141109038663987146519595124254085433045232778131286303072316926733051696997374332020362031382695961322098311506350966285772405883458984239614047919892529923535534919067910836500012571268616590195357734741197967243462236774157430173936015100986838877643179007560683843867399206822808464136126474050877723396601403005051686706248035253047826937883616296541504182726896932920184593061314208532095578983165077090563237364136535291369528116484535661737583637890704923842877951473844115621603520970501283796725080568355651006598835370679356009904174505014431270676846397646927991114230755384486449703840699142536073588400574636638677442836420629301705085739884581103239381439679454732320138749996264343262256065683046105364183137803945645362875227806091964830622146272984991326730961958131741265684460672959752213522321960203645650111239117624764242000645480979450685877217677593925151509654612308806676711712868315444787557440944666503998921241892698116695046437158254758891569918214456743192796584417579032989359970329134265214322622466568825462956719324671023684706677887741816928343640237954943125758902933074979436484820919105748987394824283460396406842239033885825944323036040160333312560292153416216648326296033318613056474722339623197008925108634655136514736055758830052964825488063246657692196290635948937409658693151177316605750094276485097245620973183006593336953413207894937787596154903695459125492624141042885270784522970153944032341014777072440907624763420080381973555310933722181638548730910428278753993164649229834375418336160668002970783500272681456198326516055555962602867622838885228903825779025266204657232628250388746595428191583207483489184770310301510274627076120224470118511481445060385682846310478936481327917649764609461368615974155870817287977393135487391682539742449892856949880806887651445644693022301551330304361448279751110162482078627452915623521317689653660740612788363261153652158359161983499303749894838947417416850743718740007426519600977168378564062523463514524767108270145784568681001580881097467544471447895235861326210341620738858393617324080444215235992811048610661865538242844779834016354954170419494072437196561884569050793568557736343842313831053897821832955919321886686478336632480646356714563264302140429332416223888425339042929414551975705409325630293292767405174743365600184182486527426803695299713451979591678717492643667042047111997106046470205966632798632346415508312467631437239617112513160732029133562153706814881393486557121056809285913324023941141990332441152043064996511050321022108476856719188820529502319042324743122020367024098286248517889331939785052687281184740778079228819244084583606317718014948049702422411188848397939336479423743215218222588714238508300968857890162646868402159101720457959011315329820847630625382583651658380884686051576919992944986715975495227982946417500014651832105349171715731352843363436807692624630637595127307623055105186683400568680632507802736546877524452627293358735015705915212696905023672216767395011426775010831821916076390146443356647300608295469728972714055211263997659890067665186312913381699906969937966983886810937131998096117501998725425486037990210606515206673231718365103417839113535990151654009169919314519888985250061479194064324962550905201549256882288223848804426293043383712837884980576644929731445901974881465365149768326888740961391953167916181618562542239970963291500905488016341997173410137852892790477534293275351357256916623187505933227634158308590401082506971749005714002909501314657331103478185116591958026854374013279661457615950687200940824711913572844049850077211553345354059555942842598831442706132814957449164928776936978770336848367324484770289344796387435948124513224332717094138937950531627144008792629426338123044846570576515404159984304426891054910186793252575613752683653543623372785725498393708834082632847071711885147082834093773307346041808608802663878416461928984809839972108734446968289110447552143811724704764110607252006705200749666066102527962248442190085010959228743200909823895804986624498800059704456635768030656337006578403177547301390837742769774217246338604531155929417007285553662647466523209421361258849125976844493208772055707422692414101912553136492385313150675921844182308628862005622844664953609906201318960386838463509355313253123677561952519192063001747828789240749296931067098853443956998907718403208610984427763249508674392706268045124039201154816417394318852843799382802193475163183168233039714557726565756525319445246309820402916906080579636548469623077290057346372107585038840205333275305464477904806079145610878896526319569858570847404161258753593639331025229636517614688490458665387660325688778924366104902436386098163368357291385835534264820202163584514572959182116040355370493258421202832593160881377319740400609882886553252315437037116401495509689523607944060791198525465334670533828178177982665051741307059811052108049283232155930197107588218686987966964022576466792612129506960289898642446227306935875106271545204955007793092466348174912464238159895076594414706328652839236615982993538495027144042310681113569842167003270179495696428529434165428893118827232122284787087493046544159840424140392835041930856575154863729127249553838785479214764192891570966203484503725644573119201439192168006675702080153990272821048579966002845021591177463617574104788114458021427664056983373041568078588165205483113301979706030960630559018247475351077785162971237510516660075176435892896677246947969406935320480309381117596961102274121750330499274065726409282365054284883919894502009774400100627673504075512096124273847578907101848881426276041345984979142858105879904017006382952023194202520753444652735416086841059831247259431402003426876328094358131995172320139227454641013036980834612689405679210657041574799929108024078215843780788639011580563269608197946989319516090789567308140769378774702237459266403034365233697782602990435206267666421211198479686971731841907439233015521360181541518777072784100010323131742674121309855598945298424969556335752329774777715212645332732371541126408556876057065015818093704502433660908786234364095995181772457354031745821621021860849656796449125054425654422573373984386801774299670416685864414798139112691226963125186879022894611231681153943617023950762419822584041771672287410251875483929412299744143932344512237129132633905089597871270142022724243774270135516382845876466120882443171282417851625839293813614242132951082233845073617114353759866585268791156962914482960933788463670724298048340428739149826713280799563304331015274737212171824950078079535026153343195453484590643004564117500238514653059187073450064413637563183656332238900539952486717110011177052036177274099584001159900830637993803311994887151322954740749358411303292495005298180266353338124371203442504537669659960877702803911243098629621894213689620213507281199334427653010736389609435902842814680048591904395447718835652571229480531816050727383384855700186205890973528952446758402390602333087826599193019961604882953343972363768510601051685990704520173116666549650912014619791559526869851013404566771097242352174527564841191082993428829333248832363008131258459530651198989327059216272233691739060337067675229599394939116017290879574630697709385814511491259954930152045043541388195380744642637519357052382675201240247285596189938677725291920938272114438999892478179813047066436495655873090167721595472106834209476012811984250366009314143344117041832843125082168657020254275048853470601702688222271390539761529617329270296805629604397748968880497037352099315708971005937954576941884332642804847274089394048679579675116014188020510937991410479775359132310915905839889465426334919481921809395370122071200158558891039768709664949803713742182251735114447885845599744409012457574967901517495552825208882959615133766994468114661597836792757233630050615249558975380433219174134306522688645757962892591309544190240655041564945804014839723917067477194342493447467080269983261837983671491655999452085535493285497648038577606836918315938857929622127568078452314338386939921592670794466306937834886523172963645664065240200250804535157377476441066042637858089626135899620415331544945958301113770936976564503453727822182590035827750175724641573387495316637598571343100942467369319983564192496130691111801851934014456306391704274379983624645947671145152812531066664957625357441599896068473615401532606904146092468368379646287377900906499195711125419203944567605727851611188101161229292294278049954139632138606448511407189105794341096419830988619032085320225837898080408066021085077429813964118447020924041954612221489162986581624725497370118077247914693976377217326097124458202935828130213984708317730001748354213008346365347976977519582636769084281340104653294482363385908969830906458248788535144750291336179193854120598968304215574646125286099410809599819316743626176885233213384568390362504727523867686480507889366771705315049054925399259765263241212805495310413982540785441330241173561840908401627643804992702362556430343124782156424657785828239591851261330397303191553469376799816097073986876789342943194985408403473940945844914197925762654465583765664353744159059420810767508370039312450866284844146885049257352032039117309293247999406212766372459265185006933279871760317764531310626834667619746053926770128391427427509546519161278767416147205917737170842626128037242625391634215390530248799301566322226201635812672901684891488287387100017074252777080716176312018126141801849613058579844557689201365584338738774591748353558709788566045243351224562780690255747563872428464422465346062511874188255636654285170228235543288467844931592501289424064449426228654078106844442657371972512139514898697655300129807511434210324507130797467220903281453963761718259607065591292920089598520628045730248100704395427973717477299350791845391324428108669009811145717112474714284689495788165923130397270611006803452943286301212024595147856477783734764810694665426492775085199617180157488792368691974468762348010975338669102169443490038770621780469748910110691722911525138767581467687261930168536368057604069758805619829463513245035249659838235598365682754635254090876881260558955461487042704540187222649961935343974482341223810893732592236101569744568256010825470477701605967736351498276697193816228292527246184533809241199259305055390454040114396814119048950797327577048996761307394844225062215862987291670908948804685515828790953234418104801107104086191977124462695857835954203408574527844053885062441841172259494255157439286353221567909043367991505245395061421663077035849042976705173969064988265140905376492952655447172653049555298953586625898597851477738481164981639832111749239682120831266029565863937413154439234826088699586133434569622659320159435911099047692681918207672562090117153431887918852929704900099322135809755412761140571448989298811500599083654694354888670179790993210477741685668558426995452271314096204984600512744497864807329622683822431090230210634059019286444190136045258835127700123801808004580558600506740490818883425653064530067219563625744535811221008927789306260381860277347577088722164026242982459144228628416549339738823512698974567176760597497281043297432541309515708364671599784496971462963240724767408464903298025937456290946480276170474017440009496252432090386263862808094093270433726273838240383048246189659845133588672423755336583096782345226433227753464281207902139458794454244079847552980281867042888276678980842767645500380148943395991190630714912518947346383975436061868413152817711142958804613183919026495687149720724203351352158801485775726737484512682026731349344886900484026744463932594997503559715522056469529299861648068707332424223833704554770414924945970094982439769202646122126038304885726060462038506192294797369898333383457813383631320041493756965798308539656489288303557370913077589662679484205769598086889769307620182961321989609322818395184328239994714328544287290280170029371212752950313460835287410489507189766676552322532371989990502907857965899175531403896081566012224102100097506075348134199567375852405461550467525384125431971986793802427263604080316048518420088510395812882867337081184644342727611869099544013236895436879555236351844137081960369526452190384352712989921090886642838927292270619925614149840119408992483149075843755505249404831331402420528284537289366531000194107226254422544829281413710019419730445288332058746475975915105763393626377565299866656911907698849784036001024532368818084541109407425442895417386889998998434492999621880794245810879882235692505194641854868414519873247023743670709972329209768430546838457247302295570204022547606652435959138601714538215330501042138657647196589425287744213928205040166628604778245672503770260348003839923786210400390407923190603849875862451928607619499580377666134870647526435614459659392168539936771038069084114486186351643383858969121031145393577442637065204424636380812113110324566343257742061300165219110174751847997348866341962379676622118047598759573584218558426029577120423256507979139632453965406773137851558849528554950740700396464074654539895997338474403717438877362808684707624888956946952600166816626741407276402046930154933031915836108574252529170300789636331864379637154123240152906028977294022763931927373181519259895491009268993818966305687357129723733808422630550790787289652286922342257914408211238596588279619701231326295148472769354469548659527363925752996117746010655907397145313047976036591350196460593135784840264857905263148040331791041888570131015409758250495944023466011449537109593692016288535054327446852481195720708835662829651168126281889327354263306179959831960309991786202140878540978928173801404024113638248852451856985423155407220766131978420356152420036042100781708970540708544860643167443366297944132551571580069596963485267667221228289624185548820574833196959791686539354710586986931359622142833822777843665063183326896936835081594126811778827366959222360794384908736992473789956069488168214216067373159302269135304410810150874511395721463365379591110662696529765707737484029849935386145562806167696807369868046803683380583160665609640604659618318152209831017234779191085053473317297387134997117404672243758407137101954322653691087852642237038290800137307419968902848397972725014221026675567938270256220929881473847238407428822886630437699967166108354602909789166070208751947543335354035205034186171855460528727333417497563385550908339595617621600515016107733315438901567912392215395410264738242470725578355043923996565238298602599075724749932937236040952480332385924193400390932289509312420511278532347096057631753937444076477185439759312025553522489286058224492514217693257203046749429914330439035816947945858524120616111170852781865288263769768148693357929402608821858522253769149764983126219398319457711157744337163455641873271800707650904569847963669331380641945371585930002136315370456010766088302410245141509231490610366678856485329505986728046260567811203851739465056830600333450574061255664736198960379913876501485998359410954776335659209999702478370274594619421003749705348147229023929274264312276678997944657239875478815641892386797167313502688112506019336397189375168780092874990325858717733431349150964338124716475496330850670734507316102632199433255560645040761002340708213985811920367665752272850552570364001320624248175817525110115195394443001496651478327617124601210239595039507880411839810291421289752812353057000349629567983266648529285835673943075418710461786907853288866987892666321425400800993676590055634153028670376256853236842647168330285333193264590608391990777119106747854489555423361942169458563157961286541100774674408262613546331934100673064870542760028030510153056125086771308066409639284071107593228363019490600974256129718000008968327669268372222452163952127279582667712764049739225768684512210953965698464351264191421930888652632829617389731245738915337258712510015448920134870238901131789355056749308842537911103765782649730554539350966334876486590936999926479975898319232473754470936727939343002487241124608680338914486638114021208769554828019276021521583525275702877600648250933073232967283933987614581570122335877188778364968440135559065902646323108002131992313775111523282701572310897103466609162189382354038881159098206103947603985004057599952574398877062856454924396576645989497642417424917228416318725022351007037529540246308803742051428438818544473968240918207448206463074386079328144549689956743101869403390761501993166153115294742460144250854655190490177680528961969300630971113202498990018835464105796537748752277399911678842077281618414320680477466558709045707260453384376127728655571002841659803012540364246795802643105045648846298228577554943897141481192675504372330808310932066394793281107730758461550046379785526763052928158216676028987189383608151393057154800553331442100663221956994245023445302854543862477971540223406662736464863007705915435527369952590166757764042156992613977325708226946403989287768204658238737231597883556143895895253590774992142671132799457575506563695397701348521707801971357852484961976305033521380116518714169230400099799134520252148364487307451727521271404694498645418580822009530619448726580031615411241028012669566576789869610947733548833894741099319902830360934523337925540088309169542319720556821785083847248764158031132074745808220402036624400490172789511663712404553464968297971642697230277312476137048390313347786120494846279829195847634690324569356656259815651406567905343735727809304356154782749284220357268674254858937517873161598970806110764456119105913038246896273890211791754580962266751520772771532764395385930151063458127752918835243226771563663591168818651651179987812522396982852924280228894060608632461094908951039867633811777374104883787477851269021752455711355494794131027249819898597225027926514933889691269088092878266140911321769276354342179877807274043522164947321794714747096415433840856240735203530596279568822819134457708875009571534656534979909555071776907695295900841008612606225716173773755257261555894779642390472112478882092123420892778797171084410059569712420560348512491524392410850850234300980678158577560893657309207324228992995908411870034971920347680793843100371156825553055285762711797641847358730747777833964035282171276703952687937815205686868030788683757435712595009458138401010629151783056445149735922799641897581619172383847015993031953804911828917665052791179571115315045922481626267770702822876978131485333365059539251860883309856636325319105501630940384719061352165809947609182975125450433215240841168012870575404231087677665346919228459143236224008890142105557436746215848617452704354704087583152020818037620921678754753621164167737823170527267260997749300765717116462465001141793161426467538209392158679266691183513512930375054779912923659254124995189650005787641128755379430368077672195112135391991347106234159730561774597831929509695266813683261201327121877601953285757740886896203561948380280379385269602785531713314278917874992523466726035114792604986080937874851269437509748385279783503904337401757772900070289671808927265389907188024258560748376781325209179933491050077896988942852657257289819874121459131427261149947475848770127052422593796523758898319013644189682435670735521557735220748906589896886333416677885780015311678288404838948303080522521217294339330675262639304315740220664427064288071389369671574606385848284094258424270229181713134822628818654839056888880314094279326856161749895425888942433824468598812597002484305872287345356542006769301108877528216115282625197086014080604400597069329820404174956686124371804910159095122082553807630519556977349063934932385980656151933550063812380295655475064740863441631742766450042805701233231893466369547098633080272054074341134881880914224614807362420934399500974331219231607614614039681947455117332987563341568192915282570830258030389563347051426729897494415409945729247562008898711530371380737723625505149570515075266359235781780816147329863991580899395984346844603949419820887899579458468653573140108234437515415744048518091033532135755763939131777244217497272387128298105397618305661689753600146328869792090121490632406385670194219246762900674701878493209776974500915433926767122056004188479191650709433328972912361193536289458657265251661507366182858398869176496981407803105737550654049906745806260097041299129857188846065211977339444995055152376290158229615058825411643613075328502122148241258673404857986633426181162075191463586313413357563247138090968130416536767631431355666360140726296151441543097107602115029305865281370134400491359821947634306512172684517552842750516648067999129762404419699023892426397334606203730013581422259305526901385864810772474728871945186290700571055191248346209482008281809737028416130907854881944287725182663052099960249201520958285461240249706215958973021285121278931221440120089758630387066326235031479620915270632850665130145265883135287771347486409507174796113846497248461907730947620723498788146814445195213577857846038891901812777207198722869489875843475063266032605286097664453823592616543107536100668065446897923306599847354344048442817804891641863766684050662391357381239590291991249945737113368092101333378985316464693996307760824895071176603480645448280523783789127626298946833638294649258602550224076520747508544153327263521453398225656944148554469039672465590059384611315415589202656424084513524253243063273511521149673181782154763307244125917049561889015483525255433310226514868739282685787268850318540849407823505828759143503408626799618773194757553045279315634199860480101347052675783695803771225728745323013904111555561596419252996846527465494905573959290087783079951694173378303953232276399002790424066118941146000145441422063028855924433550580958098537009843233293085792090895086930703926741744273912784807680297725632989469791486696151328542621200353394224835068199279292924862474351070535781149954567356721919175199511750672156552874988490423629282562847386862143316159401710933823046780480806488170819681836568193622677499173145291840077380357199952832823034819444196292626957538106986417959516535239745872159416403640295992106704516574279106146269562371698912550770038852734579072611064869293619615460982459633690003527043067314182265691303995302939045521448434884173835671794892543538637968955328047297261541427389040632969492127250237933323491475517300569308254271342908564993829036443977298882105109808154478842321928143687433266969115649388939429144550783406686166912398296016264910543984511959117102714444566292156366183856032860206477809284552068283946175000646391287716973414175871545522421058954323362201099796250919944926158352757042150601767036606941608205400796777677481584995630857755440979219195107912600807200675978623180088271821436505608017425830188034254641449637490163394414925112053612925883457678323789048124815804313251707775895012333410158428330997754925105680470871885890623080745726553532854833235775715540628346941843196796202132911787012474314093211894595337215520827823310604225668090705478701290503870551162903048416124677988008573645768617878916924864807755584325026132570810671839541515248846414771475996804740166907050520287931559599110909480025835074032397439398089527300146407040077300484754818293159393490665963464456658613153778060500888346612118324905214347595291967550291565785239291533948946364851330604260974257351703029153914838038861246940080775715230263617864103662917128869244344625631843654434565656880542836180937994897443824887990016654567767418472373858525505789561202975975106370232083100980262793739398272353851680777842341980443979285651419777125776408985818187141534805745414255397918729711708568761669727931484720143523591244622660168834601061004234009816022285846014266551979556447198979441752235996989920131301726777115662422997693397624409291754404711034932447283215545449295104826697886558327632249919971750506181834637857192594923207636003535976001110614364843618278788543437482668833748762996545907304926714383640869699424301763205426701554320231192142450932040232364806589754418106136148563526148526821205329350968363231809795617254405351475616901529885171746350434773152913470315588933708910813034663305167026582752188102640269488843714184653723596721726381618041867900023618136399496786839032857555381408671703387041483650664199443981769063378821275524838477396793376248728972400508131891114648997929216512280912415607978100635090022848146783852528770245604774399625904630049880495742943556388348371814215880672939594087613244732687223082653829667126348335079147781192768362446072032136396578412162397012938896011722704497119875767710490166583568251251421592693730543705409065199395462527260036657940811368442284038712540016381497919978234680466296828326242669413545753339259933877546255309839857434434692376624921312038320445478046630349015496766661438202261997824096053312948241440155735723484794344389394013101884762557247534241716747109833535323916624839128225587891057984299697531199948703517472467419295767641492747386997877661172821894315383383322468542081132625921191470607330428692502868256090078688140518960860105807461545204546655559279750516417832330807318988464071930278650554774421702542016870890049239232579836713477001382427263855254431221174359553381559903895824746232383150031605702847587794874752894208097332391525349321194112001642129416746298686835281775849092662395284298241748577498565015957179580187508912898347123780223014682838106961004374747055276747844176262083292573504221379490798644152141682571262610943811277265386212570704871452049974091303291803772327979807594991151054140512450864025879010095217237430693793069163046113510617032595109549819559731656102001756396586168759934111664009882163152938474265177864930466537222279624017963129453821715913810067450253370415595484928301159080356259202310669067693045332142237180549305086389305273566203114061911718666678224765212679659616149303438779607403261851875396626534717402683728423232138992387488095953966850555772779384050941189915196749601878100798578164931357259813875535848157732681762697242919759147982329744894734368846542843459962637938784743406286719999960298487581190301972628671399188496791624073159641730400205479911853328608955398842958633870604082448783143345445672284195511091903675065763083172497368317802534226680719537128313102998772468145252727930515711582005493042071405736948241025147981675581307956128420590478626243602518266667769816378755363766280489908314712215006843166867799463351588446846051746665897681485882122080569492889770820478289111783779764298669759367171619578538441450668565789849529478332788003454842612943557604312700333706649600851501659756293382236201917657444933533790495685595207160832320262820694860820824484664859976887707768330639737624648777000947435163148847687206538606155023487373299844687679926270883456273806566022905367457272030442338163845634851010674817610353994596763033568523819682248742404512656996306397860110306402061910909336279718183730470715949886154606802186226782608808720553539048113890582161562707262547671747500339401485627819595174680259780763344041193011844690422813846362634448576623367162879721632749963976582492392957964996252399377602715754235615897389566464985946923170352896896938716175617022723199659410566351490809844592317437407887160800906745570922782289181856876240946158725626323379347630903124592726663704515390368241747668655485795926231433698473111927663802692477168104830326356214571633663419878436380749033666237178066849404396509718711449702169091660982463556760439339442639017154642085854242164519237302938497040325423426893438619124889936074966584498296537447911738335468015444214838223137241455118428468136138596171744052287704798405118122970960107727770368078784879765088732589033140880786240065771428040807901373011005088121288167924390233737417118398441951984128810870639094102767844423127325221640685511469047112399409400969958992000330985465349367211258710750904243232783924608736471042247768288443400243171203463575167753252186080500423610871567138413008636004113969652640398552252520030723413813306546950082022448886094248457103435655549923790258346017939943476678401014331048948202080944902722641420805468991618954215057532054632501686499015378074430911775067050595833515513087485702679271076950204138652042603601354214803964043190943689951248019376683621542873272878295482303111034817855432400984530261962666271288307202635003318553923835491838088874986815040230449803025765690333728207751642756723190313200938392097682750195793682565869691940352363993138649382086778806254018719969083470974921937327943685568171987562484171917757317784227973806310576321156979365901672919690137236223942245201277679040122876499518598153070227426546564426954607821542671250788725819835872910864498958684583067251039061094651143666766740620832104458547919009156601774709767703693871604381224707611180380323542615471861925823271601711636655424908714080348107473725305688720924312012776806738866167046129374520803923265761354020976720092430986591096618414903437798916147418985810769620285136720260677066737976716266066778235986424112907662173556297565488558156241994357609476242579715197590326774833458640963000462224945963781015801805130640674728934434475054723863383798050858006821817617762823406677063166494231782514865041926276023638865606702708326351309675982991370792485056030966649588426877005889056488468845036495615296993394632870056243695690295359038211727639457081708996826419911967411261158257463969930833895719872149929101396805133873069380528771066171407866228175832684482356272660862052596371523328935641551928693927874055532596550410806345887195339085954728614500742517810258829332310195704000900067329857872400564849175574968491960722333555362240918535833136037626403098066728180898495041914577981572279428082043633015529492627026538862100396486778888669186076081123447698157818843367234916439230676711829669014401640297401503749989582249512609217570593929184722530852855330535518182413593895808507888285914093551937154291738418123123721398168627555773325448889114790821641248618616298263187510617499853324430072754332897763230393768232972282167573687051910087304153790308404556013337157345990286309734538737711304399528260085996028442292614324424975374333498126287698353449906150896699174831744273063140614368836616840333609674588954448582642971902276110095044842607225701436596331962457104088547678600768691364300103709918016266425131117109375570863341186545832237459766620041973155963678106104118149684491257598366347070946184077589589186369330671547656608345344199373847078769430685289914860062986001233421807151855266240240649272378572601547283304934907122919954215845849793904461259158634681933562784867348850104464582300174992419574610507077710028112625116667793477774278648181925179235300281312480356720205899626800632317346933297083686354388557767501787305612901135467549998851174255773901677248288292819645879980774471964637630878212004109337538926067913540465155274700004535530705663272267455242626712310607979673247133892813192229019255366369398874696380922545307579774496000735535647690077936527649108155344998993196786829793778795900701974157200442405181013455475110815241423378816105569907506546206073883769342020908689470764427669947888256073568859937565585673135882838778285585561616534165842865298728054927492963212355190744967872570063847694713231839798495603059172385811701231510933530074680780629465694981966879899066040817619384241668205881189651357572516060732806440681962250866664768102131867094704659291818132233361038401180102133506938456623655769068494370112050359922827708047375294839539789594027374102498302944887002023196647665598931809126954143164890269822641353349395142254355119614974222367775577338400161767048719052065434554900609142922498330073582244486908558990625850221642699088095678934557196845713827359877621571733233515973387220358220221545166005075224259067734193188664033969576365470881081062599597840649294896001795437941365590326819973172251430186106665006541515432395379226618225932850959216796508045317592784775872348185627545555009782438383989205796311008530721515080290654698286285759085739375865458096723976959027447296255673419234305254177896567454005569600787120806159671910371499879200585731146482349667500135699553564839453507266450528360114513544616218881421236813253865694630477250969358868371439394728594792907232033944289809066400492566570685982100681731550941027058410103344015673248202099830896627037087043098041286980690751858584957867088052529692747158332508635155452264281462284862553578808598974045380256244014444051312321556732741430259634517660167847253098055121786681395981243056132014738223064170999771370639591365034106241832527989662374943787227604959651956616768191721034958809023662476020247737643416493760398505583880871087018293859315709805801146429552234583642050983748065637312209805174977420645602429387622617105636038263681243129686519160244446550977038255204063209688245697565490464682843174756732169707913304551592918265730703272534803506800682462371171614521742740372985798875502629500768894406486775845575587047359814071881679083269141637689618243140934445897143873593494265659434995575801241037804085939805394254540615988868121117006679856851382459487680025975907062756556265460494649970780001705831402339037542541107702420755575576878276658405458311013085901632082895113471915726624414440469954110432900688460689898359664937043182968422747891073973736250863608793447278077678234510088305907117510249868483810269914396549293645291540801089797525373846429709943530489616677514470676553303467566409821176301895180552100295820887794146837548991886961697958258756049539585896373785187906609802547837849760537651088920010150787468628643716403545043035870548543339379849050806539828662423526963867606686850115025530338287566815250010885339142389678073904548384313264275320826605691821950490901861693140172934171671829692138084483026359323911769389170606527924556220152723713392727016501326126182180507242400752563441102767641525401638835351244383483824634323607833493067924168790592948141685319837660524884054740525768712400891938937056360444960628691684525090333476937732543314384404484068521884323712411346165254978815299466379682514930626875286796387537989949680049183198914628802902273440575149395549539846849747724943247873078055236500054273333934346230709052710578812717981923822539556486811380750984113126566159240729296730181512329295202506056055649361949799143864592492617809025552544856608070686889126222405059325217503248108282406779546928725983885494636848052681967087961781664497650676000956285475502507429896122893974939804908869357297736769043711723903370393316012523812406165676719754389097748282144942572812089991413361145970948916432732800980450536983850186589619488794047154333600486657109675640976078785173643216284346062888774138477372220474987170441297069591800583921034329431386182081417316094239846366385449990909960426006042360545439461729576933799789395219684838912801026666662608340015889115233609587679522664392834121786452410880178900651954741985981386510460089203222364694134983051983002874727705880182090674949349811026434353112449467634942605745962087496777533996330227208556928395112602633962395633011290552710701972326684489288277768069856983710488937767579806214829374224353877652231483034631757506738075178521551262247861070869931031230361239903401223943211962115357690202189908643653090986691999927211346187335331016475732886385552119431967097532557746530657650417006117589103236973592724889752310656299307065039596255817847358765045665261581909783014950326321717050970160051995048467695715917696746535223065183449647974718265230140229403315884104279500017681393141392214643469523047684415493309079532489848346228051051695059839573203726038381924518163619265612183628438644421406153250107689501787672947828262512934690351606003925096867582855829323454395550955123173072956400036793613589458515294190972651746867296417544443260484185185971851808913090075852564806890769353461004020059327450042176861016286119581680399039484769967257506831431106658308078538389597328144778341638331592984760971239487718440837565790424121605862482681534830604866097542945199461049874909295345797528781637171730119869855355635471633648200016914545576122034332959038471231006826204978101283099985242452257373691318905475254158290829101457706337705325938798113887133716370990331910122058606865351611497239036011351057490412328155467168872917726064695064407609397235386843218283177021716579723037551078854736545942242401167827897732374831621430369874818016768661762438824069324974221864474483403738181547311931130697186606655062207529197553449293261602055253212086518635073063989605997817966700983016003425531706932595377814502312424190266650502995754140124679038575851523059606747585242364863597508164854400856295287278463617069176841142045977616730779544271157758374066975767154116071116289624652116167016778814033389849012714762888574049309458500736662191573957460084868898699577524859604793770952423067483458362592043756339397756838673228209759565532268883570635480802127795781699763385391887138015863311626586963111082114848478931886376110460031429629878285829972497037982442057558271280531900198707919744905562039560646510576855874080750374284843383641235059943149015488130342230117207387663707916619601805587402964734620311034224323559300854605293292499717318319611215289398409490630136525909628508900794756682628814618439328351389176480193930728489409566752150325974142025719469668740538096570177147779478703249251083009374039833003370320394850422949498153844385921082292049459274570366725485592431355506412142536181112977883037759450617790220545652921405404242824670426004515828090214337992008297087609831249778317659664176441624759443829470840275219629247792171191855714068607181112603720811277306564024959787344494727661505946379873478391555583426133322284590261192852232367788791889944174392584740444223227101603302782478460336862255296436109518447613852760027820327923189721051932830720601264148672976367787936621720944466127596979907350387913790262734775699597606091794465244259826459687462159954395660774347730033848656560796083247281301350747754628429887571969797882995299606609568183429375824669745670515621319989080340487708484721620436889902297075659440832912808961831085443230453771607334865683669964266285282247613199014342031647999682913073711393062296714409062057550438527185157840201940181209318700998373373452218095512667912923883425164467841473534220381857161317937484677119431026988749474732172115668709480819752363955220605057598525519278638963055817590613134564451437873635651567889737806696589307279776744542325998171055348257454860452795425905005786735616219293136618321801897095150780427810669368282340559372516518448896833919689684746430918314988949250187998805481700196265616200693770880709944675804420246111095176338790260041091609340179982197260103665356503126270876254506974523188121326460480648653606418232072962040926349279177073936827291116477688428476086008016376542968404936949747445777653229932413679680562344896821441685734746115922976231025478995776844221365024696838333944846089318819919014899877997067143593140204892998431874049571721887801810912437730263614197267247810715341336033755227416879013820756585066587790886810188651205005626525972268580914143106004141896236827747556374645084162284965239406841282550679388787505181175172045795023077682994639551125951411267458560720159418273601153743307086168382473195547631040426251006934712441580032927826483017616844992141157048708046952415699569609116679661171906743321237556910339763375107651157141867517310688353849699252145979599491550384140412057615976601116924151534428076901012337772825462707915745370012293568706624395154198329285631703347180105537150363865224743815332003122708027795268120050950858199327403023998422298474427628336500498242426820182454267620007728770060444646648079106836559904305206057693992412666342919224892385799464443095070933887827594471615711280271661114411206070573950605870143871279584013965037550011242843521280702939968142341451601846489230243183574802172671692339427472204038125707640742970862547779727774449797126110204045209141989278925342803479926029110153124850013548870658203267923211570738812600430439689750435778899236503450658987649918862044920060998093115902719044728587928579912481414122696082972687666517897292034909040882729330811004813262707952466769294504108783427146051675253928363129488729388765701394777644582404814297725516656784095040817881892854033388181853234290957076816811692975381470377385266401062653176938766344891194877490907762699847516313802197605212599969723943073591877193900834687604646834213767939927462443061153654075151013809756626827585008829105651527937103728675635840374385662002790263052781113308713438713579365838482380636420028287612437603175747062472521243743273089132609629498528000535237532616168407762931356764238151403232507600148761153925770731433901271608127528197689739546247454526343877469817789092732486321841362998676379379989429833249722417797749437239176392746466108849919877199585246716450302594142623160402363261702349342836215712705993377045220915106582161616183945701447009170588842263299490826355068141866481572123233812239486608560901646360148808272765737711929304128187095700562080145532384624583744583404804150591120188395891524811307812323660884199298646344303278790050854433493998466367287001698441160604359212109200411887294725714886463021019129543916199158875252776813938063038487609116212661974019417367226673384023963503778974709300317621518914787383625694719451797462563239742379245837128850997857193660495850744801648823677670736482323625537830431170128144224229371441472101755034609193560612697967939633547830902481314737323263303340631376232277124142603042537888505999697824513968550773898535487188093664309565053070049938142965933928334017089978944330475133009702846402403893135835294150773793744168222755038826168313355837395927681193948015831390675195602690116577267759798153784577804450126123039654409438254482850774316377356931796821198411842686242233394616438747558680513719244782113443439045613833578934003058640325052979105095388162724622146149302171140605853380378251293316330843604880771323119905688675033686311363780614469134111031743301540855520887138332794652743272519259082989921218726054032196249177390360452374308236326453704574785547134168866087631944036879559975614908677094065961163305456191988593279419089680995002175256097876191426574336399253805381642349289174790689701559991345121595859587547213779456385117823027003430098357966980625675250883763117869247921878042021209633591720295495080552322421613664479664327313817127109307808007954175905605151231403919855974194787464868206251022264313546368285369615657618650401373416930054943342947195857540428385541722441611202125561764377282620606658567479400612041431664295571049223647505809667992936016748384740982547450331563597065816052582844629915158488941208526734028313781091364958776460674796058822344851295405725470217031690724355074752531161168364266395999825184875320717726700679716554613606602115924774035204815364566290543538064704584304261848670905510145097242149013309831144297479332644222704839647875385384626359489238277900687293464569815890004941789467554223535269231822622056928379614446556919421823971294773190591477184391274129808159620123879055327742374333134023485435645564555918369410498112013389325199513559790637842769909166650098261609316763315466864572510882966194486881186600733639535314722979573934701175474509462834595685472505734415660494362721273306736512188190735234197976388214333154559494514976431115524100419530956177755309050230180476521147482594510307485257628341907601173971327038265387576631668018589716074569257749196653014343841303392540246491694519582533672955265660261039882989741239284172631692111347652453443267784147295588429554956214206969929282203502093511489463981746565245450708577140648828718103784151740693685397290028683995038962061630702503190765239846490282569405087659852901821794678356197474396038474642169219099361925741769745356636436306888872330585415712665201214868481600159030100362642246992129527141597553587507034917209246207548363568944618720025098083120991877039977410358760672875605510640737212574753740300709446287915313632478173090779918526591731259914565278593120111646970046431646386114778336169186494686350671171598515934100323208873718605154376449964270261686922220738953299938951842525325325892113886846500494102644269056368398106321252892610699437105520060086461664614162024723622219781476931695832645218119496987233863887699271748295452645250762741494888958123139966543231485276769387609686165411167198464070717015119928331553088727886133167817287638941044550299703111004023758479511901404918961119882724673734437982133396535308464738808359662248347971166753685439160782855378192046104222316976250426936798889601260054675902934472580680396883850930547478861048889926871982001880489133804389759833627822212403471346155975528920869723743095164832465696500141220354574409386721572765176806043259414251017678898335119407764900336095638670768081165498780243659633551163711785685298354266576622097384525797372734426090482796944566806912554245828577281399555600941625408439516237260209943497340571142457971932063743297543169759562070327148382820863585549724320276402374761015472868345443950178744973729686954536599517324842222657785520131780022023441616857313293577268845696809023158492287034336188054172285883688100639194739798932981358892638608749846749817952943290584823803273966027368992450782277412289332839024232093254766760457261387295373722354020246876420738729095479487570954543532932128941516694073880693451019295458382721561245565671655392703056982843670581218715065657107088590772230508006419949591665243723332800582480101648563051016050320957692577598293107044433911178925306856498143976420225297918741320734536664153480132356502033755003689652350184926823255936890878852857558600890978219547766302140704962492202915713171315893562395452097660328261140342444722989606035262082469242115195900833644206914447581068690395902152881756871374388944241730985431870509686808331344757889595604888316865523369929499784940801056445278723212996099552628988338336183562274837164640394038404889045304875502685846108293166208673323395554669707232607681745159770636369454372649819057185413985208224347555820433806665133326814507399366185202387369568732177011991960850377551272651156204569142045749526583371567759169938520169164477550617921205106144922777305836150502406291548255945940916164961603987594917114905684513164473276081827894879544649544248580648576905651046461526690263032107933465463244143418587962102644014082603575181468323081418354102232768449635537877448496484372938398779904126006798884913748651394738898606534929077671048503469921234250134420339612170212797926630489092807207394537252054146598973600478092868766622812153158867975320828082548628786284160195590714490725168056345275792239534824441444110249735560324970554631604373759266458010491859711099445487011784704555268465439927187625982737166760630913083659153294084462472922698354381587545727120827883224617479754010366281734452993552705167507021648491059192118407644259563005639629667575642944979709094768928219343324254492285853717399495670078643252356062112445044669839461803074857098065952350969934657166055265353395188585303373062274569971804214710619702554426915374730089975374248066140949068869308853192600399824931228786978429974445179322410075550773074869899735890446958158057146212641801762941026420521690238154432520814251535005603596618754997734810478983525776096982882249249656982060303034109524121633124886513488694390912920253111359988551495658571970561277635819530684522380287269073010218046784331415019721123814277801593328173205392009108679405344256283881392148294456312525304929938022020860545882285795314608805785065690520680612513469609228036611386184721188321017572525904016617581515189703055397211664411868261182259673389529667437980921762412492146645411867640298545403391487690985580212303600604631760691830832893763830260941652848705300855799173256055164066593465812930144356322960305000769662149173109025710952438360180234450441072644521106758809504114814526400927554398383171109218324805250151430764950941117349042937605940617056106315237760243416698260566587875151985236666453053409189137677177381636250916879600914358287099292596336091783912120485285186873409662692564938628355168629801708016521020013221938950933734204336212319549953555887779198581747227513150602977779906431480908151490016951860718765501106210106956681274203581270595991439571745635269660529859224778196570665648860900899066524386739593819161436911596762609525196965459913467526942982233185699049587844097353025656036338845419031324148959474310861515591213169880629310014931177342326357088739801040550702384167168288158365945035373230425809508791644233517037632882821620583321109945616445352804230954819051301225923593797086940838571643687363566732577578822027829794729091663643824354068967397417367808895227307057604325885290640919943610535993600904599198275302755590778487941541503378905480547671901260046676169968805263319307525863922230930487527528955945117513139805094594347393225754631863799091545539815971026591756852770339116152590813494262278731035366415224913633604062207720533868766937036723774869201411226146927825703093380135563622320857946460171713708594144966131821169049112978858695243121145133724189238199789575615765484380317966172373474757046040122938733998852901366912979204232380734003956420856457031025100188582792768712023501924070906271831001272451194633730768937507271033592104752016795143848099513886663202146457931031818150090231678965056853430564173362744089237896634465321698168922057206360685095039703069280200745012652632648528360021394516284655799898996740982735547864459344448580351020629347104487711022265223820691910740866822390812851518733727766500401179148692614323738971913935697097463714861651788062816465637960284238472042593591744684430415063905301574955425734606866731405549770614690897015973582138617215034015272615912580764502151782688131793683446189730557558701193212213456357813737740936985796762437255576695597565791059155900815633370260741367590839437690490932013572329337992801569914470360379325870161291684568668740889369355909745663718353108766482209038633040096327668269676911544938272765187995814704108933144589589146581325196161768103008701016317922430878202453179356331165843036590156821910316536072762833450097762788936938967184218717576613668118181095354167349985021625349509581275372802368280148252003002644549316522257480659139842823906571892087852912914032704714396093825316801481639069197370675592338358138221509819959802250663107823308713786328071771161139808860014075376607630831697241101983438503863990363321062658030384267738814979882124476544557438697896328842470174415396250974440917110035955200658659330564648227170267683702412680096821398757346046167965988085970680945318140108715705225761178146513195442461425408782702593021062582206978339310477776556986774894965501975970858857819320995597503745840847814069577813850848728486596544234975888493474614423890103963377969873132837190994866434530054958546221066324608640373103745158761226563181873929499769442223460668319214035200364505521353622656250073561059316067796909183745191249734288231332639580068930947137192063417215083629908667575770200485826080652069469000122784148642251440981663489151297520535328700475896934147110762446050795600477969096705233102787253633074232544085434848551643745951597409936843813749216794732267075785621407817303533414765678100490793681050339217663841681165857759421781619380997410602827002531240093105526924112310973649208610102353087706289342231245951865831709219053995641873996014899603769501041417250147152331691289004899022932183637204645344204391605689716757712893622291016917883163569357227652039209327181986799054518017355893224716870202064226849832497814298029547711656462552019906780508900661105263841969494609951444843857650236140590322678090457062576838805462849970225938939679568067286095008951562816763808007000179765490989550582005337759728314514471198255852601693545049464833596227719110727436613212589769912276051334957055436049484188416426554356280487003724212016935273076671392223551356408041685438974100038868600775826548044138480188509023325573023357893232743917976518314950661583218867538089526218327546502099494211226787492844365023754082643220722511423538470275922034033121514618951266644464425423300670707334405890644872455441345716463745050241354448229952763419344131675850875835831228929270006803871495419425065333904888865976980076852145240919608804278065365631145972880934909480362929356569234487954252126829844618124816882654814690857765106604391986918864934184864158893488565706803707250470039578826448445456739021499024157449280856730712007247378174051480512173851031413300665763576177889831155662310437705832090871528212912440405559715125971389907799986191023968823376661071912681585741859194252397166507274550737523749561914869120797321778985474614537672061009849555592844547699113028310073892521012226163794463519155735724602659480718686972815734662851674883292497915393324532923448361455101082219112222512496136867884854731403738282311260255161923547811952342636572796613091966500606514408860023840403831107798686779568119274790018922922807267082948816273282233109633518501273991866248672547412359132374300542972802248198774828694823330603961169195607380928285217630831664083669278456092048167563045765016738461107918423233549850983959748837328386789081672226140990831537162671551240227807444735059970668728997171217555958803440074104866079765298060219431800116672088141178497576280840716775730399473574924410493411797585882818149933937712614090154235102572095467173477986543693313228898066355551069399312601973213531263031779504038247841289014226308715138327402161193641716769287206866602710296916356893913243622108466613066601436898157602387024560683211585962363551068001826813029271446403158853695242159623401308363203597193982347038169160989102209205823005932435938856473102736990288416901013690246626448468551351948258867827517435801972267872330350777598329483602947895830585105153203492125755600297429825830662744272652850855610853008528008859418731272420881137783972202833104897144406488069639047506416651064192197979698177616625184726536735168467397377817794318440383265082385407828011577093655706831091123430023185746273052234675354946981610042514600892818721649326097262378305342917329437090789338341350936614199570878430109085139968427196303727392301401222885600648811857213837680757270778619383842993568867348307651615002763760719931146965672653708848919608815662630682139733576385843842422514332000908788021303135489909707502286929938725883776840925058886588221864747892774087000343563451738314544815735467226178761585226654254164973775275710708499172571163305530909955319543345594888107188066384470324858052002319395541541253670589089399041115437594259943545957139533852263945564579217143678664763291720678578120993774011694119442710722799086631044583026246127188575200098462870742175453017459628129387368187560366102622256614141155969494245863442481026819996804888125461870677138589942968787191937608987606908004681946561219271126969345682977839408182696135061192500932279600580263708383164141440787191255031531725986714897600314997542493900277254677865332976604284110082979812009518491362066271609663124239184019581833503358480876763493701895317303107308680333889882506658398781353614798296252117457376893983670790869550730061955018300985954989300515018179826051435109111212373033273506120407215800387579297825280558797174690048748929373465544792010510031302467696886317527289414199769583523675193924556355692188849100973633211448771867797566203872257173971735193764451453166145240791910308551504302306997195042288199591747937034999345078147325665400857809746457312736189924260427020251823452305558599218715258242826575383551671364181474048043123591743487803060930051303116387373653575228285202855763912275285058751798635504318581195983199638707091721918724830234670461546215769564776915856399980422991914989494807861546604343662325840299541205877459121562739848415174227424304583880357970928087589289538933166022735898042301582490217560574474400349891463315882190442056547147906748630231276441946018841237733968594739968034734203024384091414516538280874056532717387946989150567652018018418487323640756479038136807128996007734578449648590368545687704811170351114355641197427914304945497888609057002806392892953385195627563531650831109187276395513632109641171406266483690036413243424878408910773704295257774043956530696437223571406344995649850178418103425342647659896202354346875000646772177729728352225588517417966536950518915981868842892957965326595968615665284226069560722820113673948336700348626594063566299074481876398850220173987138621771097199716282511443403084048789456265983170244964955227974548800753340741361227150611474811194018227817973940756022141511221194805858261257456226256569376483685226851680425107333244888622809467806539641721190430450594040004911421258414205554381165768813798185541839543436083025399318734239669461230763459013799799509097299310838213865452788414987343407514058259099471099281439650377473062794720712765636042640200268029789912729272748355492752852858905375060369297365964512519832967265103728512904555111807647478498343407129217008914151607056939891779231762961686030279713869926859596502492710391340960179567871359620945839006904317754523266310915554326799601363012645644064154051363447573710917370901229095573912799388919589692880609533654499020973343353397492505060409972192883577115488764636614610618782800116832977312343871258434482725891735036474745699781291549745521072256840834016932089654378215319573316465105086443644545597297067644584414067470801889466842112827159175616323585283449712734116876068182717789305469958124794808853735716727923352936618246015575543874182252043465456819610691884479435504386806728690833343460302870691102466803284222377113323542437559269977845799365121327662762422368811005713964579150099054436246671918722635329261951837607985183439457434486154189398049035336625838802611803662540730111489803812971410261721230454113683443740458142819975930280025020583262114098551142656397925776067555458862007466209473179685634158212618696479200141210786160644224146765922842286139214639037487495416807572250333016559581497387994569008405088862974360039790269075401732895204916684855847922417790006682895986741046363629211527014098789449594405771168717338038007964421315368710972127592298506277478854909799482183892600732553989658058018770519794830832815679381952520408369108958272990011243349033158285948523106276353906875324778749354944675266845030374000650840961014168579880073758155267759831087560026872171095002857361268349791712324757502867485048407084776939156287480742875281714433191466635253959252948109968851178564530571941415236946040598171914955847365072539255338190389201309554012199270113484308281728523664742887382697635228091221553352117875077815839601584648546051176596782464037615281482538019505476574704416239697712524978257289458756497277522255191860976409138600232904084725489786040796936484090661184717855637946406737872656024358069207764116017992586768300797111650986750808901892314801121233601663754030700187617139026366113138450408371646697549065234892647903385465088636177229408813457210337239208801042970971204082376533035934747790669492866582226855225208205178791565728227918229928760002523792310832877685369649396886466532890881774172738687797458672126959853155761835819284487816141184083919508571045035026347507586729752956832012860379979320143340878119685417007736869038038868810260058165072468421217267160812070591768974464293370607084233375462798230643133315619940754995004295446250701467796830868532611443535049598511921689441660118294124237526181402263001830504587242408144303541332038039637361115469094166134575074767224737366437548237033335926893676913578952663022934362889924459102087476477999478675436721205471255801792444052977391268886345324206625633520859324824575886312316008184265603741693082880262281997029293253996104360054541576616311079581647213070179828871667265006169303261971038196453880228768602175499666689926186385019292575551136638075737816651896247698916538748102725383810278229284907382440131667123400622376286974922938305294881526482732272499224568009399536171956680690325397009257623961244695815067566632030241053789904544255328980209546251470398005768754265447919712888727917606377179425291760100638846607693326431320579017383409162951378465760878375043424849800513145025380407461292793709526375305479787929059241574423838201977562939522958310403073689551129484188215682512475824890794558644314077945389305312160933363009265456519157319455961023193366208906058500670135439441194862329590184636937098272717855465267773446767382636155833685746000010923530602637870385810840395145870981108233747338930407175052980340064296921926328814080072347101829452940060191375738446259881681395747454850714238149393451193907030474173292797331349424395058244160957296068335942862828350014751323941327029740383401296160324795266123335478562712761600944307510362763252046404671636075891341961098861846720969108209244234657727653805916236784394781459162213329763102077151339612798213765774215679506523091182348235095839049971052303843362248669273039913179241999910435643536183035553987647467964456132913763807376731344288727566484668892897181073232754706932481010859833114097893510299104783907873312604198956816687263333934701924868453445132641468680420096255999155008969872255290187362733023627780793113036307529156762201694931477990871565620145384581861843183929643196763966473922012750849226589593581418055392089796849420612852886337867974848272991307088768699147172218584385209870316451472887415527742034000461343200966271534992953588133426207328350042226003826063662203288484213349029981815637055690484150297175672545728343895242815527890681113722494212850308248042890618941872808901985736549852282785222666818860650617629726329750547061508689468203733262506589375409879134652249290641091445606342203690280938591114740321204113438255696408545307086069804708077580656866747181491620748548682927622785366016289906012262440721470061790400205415851533583660141904931032623379641847866617299227187150298913884197704370476522741013377196886588049282674000894014865648758913117955409398489782016828326024391216913922845711078923902742530637995889665942574876195125192264194117286838315841130632691677631049879858488941170074311340565149801705448796257842789874137194456727252888227335722228593374313887699874384490377669064476012652477913946362895098338642331982016852051512301684198595724883648384299198974425513572912138357260279804880491574942682969697115226943018231836889994521488070046960220276111725792697371065915799789352238817253883592737498359986334933413025816303679841262141353197037587972553818312901402751010874846691371711873017877020224914653333596986414949340155841639247935263814990168813684847296261730242538228628563921851597325144636467983257276525952012350528212657708902597233001622654045366175767941272620105082944837789681325461238667594998634586310197138018312353654354559988800146695947647238120064175679914320473229836266011976548100614929425547077180255804338073096417326540893869679677693982977479223576369323605451799697038169322866931709711231297409118552761776808715673585429310350030427490154288350550730968323844751469548826583680136573607236566305388614188033930307407767978093474418611819478532610276301643930597240853034487353463227794869133641588215273518172039287403623463202476684803941151607602350549731221508650261946309312075559290836567565057763242106614037553257757367741474959755867146322389130960027149999458338859074573863982187478950264929461608547769694789594521418434681572795840963395229544297241581010017324387855333693806441876719160315382818576303910666839323563604878043240470984780334836647166046057742033755625243578218767109756825541796745927193804493307309469974339167056390314799463168965779200917954848515759719963121060336812471329328351866575548226959119002505125706114183550783553456677842722806731441461024385366780231321230811632764287388801261116893969548992204805755985025577330549558892263563120907568479661005661992481941637024201709717119961403251950599781456879632682937242723828702946939731047125257452547866181115442618804305938140856302486585594805924510218562341851433966494852528964544748546118352723389233195539292403336652846753645539109651613460145641317731089049835232582698343448124962873302154406566224532514094516204086882892760333794344969916120527653316117234889498935078843232935480701540018295575256182965008807724340952513464908191754112982657246612972123445064263678841963677531892288174770158931171007066994819539552846740743751203448464251450321365175888670455050740159091134977391648918280778741092637658700456047535830616554881511698489697378852896817062488682328070659506024160434888845565913880366031774917525881890651197340576094835160761879714118009227980897271229912606553752127797942927976808433787824646288431070694490052207777094584616554348428911119713626730187091856421389640301010914748809714942206599238323636155564959953352281929528405992722640964862047573123109239681704673016816443435129499009097582308256760126897304247345620067594284628266003944306498993783315093002341741873176077885214345452680534488882775706198549429018639872439539934201194380439646211236292816438249940421983480607586947585181075952720385443573642794035228856866952632547185364850763929280999455029825805654124924468240785418848099581410438548985412926221208261350691512663888050214568419504668816830434927398776868520521602276314885675311048530994452223104465438704770472440992462122136241277600262559037500770822038016817957607980837762913311786789068777202039578686691224268764964583944416445237489184417439851612418550356128405137859352216235072457781015393597745211212465050692908962561087269715158306530219218865981320881876081497813132872078573428636894922992042034696293650102848923628032207942918192600676196590713995800362125485850693694139548022872470008242764963632050618386181846896933999278504446703716725382333757941293983614607011652012472823280264544213142455410831941938800724635566045282696243049054925345415666953724183429895004968190405156308588029903656366776634412888940637211376099309316372687373036731794875099822852013684778515769729771879720850725202707092266197762653324761525503321275546259435978169518471383197056609593484802049869137848106016913582591314589651562390054868018485785272332602527809235376288170224900544402804903293835696740133382904237378073976391834683740215934367466120168740395292328832273410095392462729714973669935590079564288182565178767831355915880335240714220471095867849676103157654082112723417369487466182039742276663987491779949607838650477531518831323573314882901389230695981842556526691937977528488811524542817678818896131440139570036804125141126879445353734759106652429742324835624328065519284915674594396380631656595277914216047084268331742109903851318686168980794704410858732933591522233107959686036430969468988303402434739791754719833803984885857654951110952363318559828363992385784039536146061933591130563889942663831906461656696796835289132927377797405742974311848453514727743474103193613247253341306794516577754487387199739985160879586421389581724115026275795300046552590490481548282863427254126102079423684925584717528999663729479882710692346026223909114850594692165341034009825091847030529764409488751799393465794132982239981197929876408198396483294570405816626345934490673007660474576735721479008182285251285272420106610113025756980060832532249210942671247273771540712312399732134395938477798120684480253631083717988107654983527816429261990839469953144691570180966268924036973012247111486071310646313560896551569949576874224641512869087254147225312540786600348968023308789463030796586943629726444062020964490537576991357094544466233653277218429284408767215493879659892380515356556151844132002319393982263367193039273979644156053584670821851981372536624158306942662064170694751556843008851798893848236154358457768381050163491877573343463391138677528004023908485437380392454506143013607724129232838573780551381587168556523046566150182919633074928485704497579806356636536004171034150449420212737176613243189956153204822914301909715403530246848680262703270677521573141981823226289519675368008441582220675218926743414977391631511819435792634807780617450898611558268350381041254219959412486684203133262018075194697855232760303139336553207806940187491317383950779362463495286334695825128902023847585370389991034751905950273800499156784292693062541154009337470906116237698705390415616780474306295069213591297473309196910729089375718675451834604563511320302788546570040083542093599025525819749265962772375293699273948930537609907437822753942345660792167175994688710347982946730180738183037639675180841073701203403774716048444058318126201573075883529773948018033708960223106290056778313015902450100967538879173886125488363848895361087819157438937380218202004978493960607093522343175283903230525145797172013131397197452682482085166887665769444969525849777822373919185968485908278110951741224712974801048866803636600601589545414588314199425352207829985213036194357602024433525489403672562037031093382053142947298930725716974817556522803061850708191105043470058345694776669448083048182611567549770541842963178075437879129959023094727870566424196093373102775164096292529628334219461456690753182413869825446191055229424751115932155884976348256457012046005704428336585463527523941541190834267557382326731120261967488779336645781805349418459605015665895970599729144286303231889424689586617514144156985691554582406713479344897092755065413290601391026728699578215052578310892444884921896359344997480709931887898326524502393442756154448450414193281713824289331707509565929387573863222573564044233324476531830824822605515892458541955059467435010887236012247392889387660424935618810257875804648999260512492485278227418599816166550078256528171118554623613093201955144593241883851854071994188533061503434238537661790199970324825930988844554056419374825578409607881367985618315353161768599330908330641773638311102561622508706493544881267482267165295565617373412502733039657248209118507694618029864057585418619728917165232593385915610962757213983283037246973950176021508650515804759730398338384638938927857806332837216153087347662050600660332290227286584665789323127972367857509103169493282880359289470983408570459311706438064896065171503939365500613873378187745826002921876795365488927686654306460479720732169485070577356889648004164529404921868663734494673802327457204912148711046857737715252923904650937404353583366846953912597821366908665167726756053219569797777572905243298191334896552100334463177364079148046430405266589110862395950566473208207565332187531843348189389952354091765713501008935737862973742010328335501207200690312915426260449609454011837156318332280889253698830889536702450822156342588222214037590279303492063673002094633573892611484747076597309667017613324989170093635365221468115035365559993474374185262304556236336398272327388583864552584466337340526084804729613541044673109314992899935836320886456399461464438401850547699698478577782136520190443629240110693349457715159429323671447956310136510341241573146882538856008476981306122587430057014285868435034335243766952402487693505511186914773959716296899964786812934221867068077650720224523998725203272626226751857453685918783079907040994202313817915555810207907978368741177342100113617824009734876742461384100748578352331901216649274463720229633264256271569120513527303458652861324568035852932549735177749298166704192214151243515345963041696743810984714157938948997875133858523915994893655481576827998177427878418131228278595374124576313717487310152552059466639869563438090937185586491278032030312821827650669758110176570893436679663681333998346878840303909134576552916611255343326636641328623363526867789914651210253273160114340969951337518502553523374290365620868985168530731608595128742027471473067494296714495736537635039954190474867346253904674204973945833662254500399159674449527379291555769791534340892483050521231766446738469238194227619498831400868110206756884609317539901934089576645927333866318912708718511551252535552068593324154387591654249147635057877897817301925123302314410151388528502642959815930342148655443071594885447036532518154613939719974052864658810313189688105213019895949870458379913441869714699774458053400323911289771726578354730455409933238764964369157008405781808421376125883904252465237487435545505280318390986092678954309565508569196649717045452977313773838218475322323156373798443144622636745572187823889566220779694022359407830327407376196171927245354646690123448356406339310737617049565589055542763793909546155993034833930580484061903684226125885608193287104913177015873288432660901895215773501813513889629195623279510912251208572944286630508348553687041636189638882466851209957072036719447894885446724415998981622589752224469393868519087686370357984229374870186176554621287583961708693808178746365307314706423356821433445324231332287526916879933582253705192536536229132648796247701081650472344135748143572572906459085392994936682093668821259210465195654722942676580447819583297316161093785030433228653922684040577783239622622173518231897088861058148629756402041428393470072912357508907142898370128269226062213999685026087902733446753666253202580750165435604869622933365561093076617587516008639657179564866066429487198450806721427965169781527260157644896011234896201327740702584695321306548863055665822370713972818572524839530906497389970628420853706376866797075995313055151122794505812058966081788215270958230600375568976979629121391673189039218472433091291518072836221054612832713369994872013329011426455858796554759376039880638926443920546477273913428999864004750685891814262796074733015845079667237731616089550914739300404057767651896483099624548516682699222442044676973470901034837448181122885294943429882467134688075535057384872210045354672385102343450365897579156435375526262125484669225614906447919280769974508119724825111350721992473107397592514969648044376179135578374290786002785773119939758673422391727446994109897554710102107636013305710035006932443859850921349390253875532335930052711017951474769016004506248134274920749892630428787766406474848505233421361710999872576220528022543682375987101624996741112066512977382438501647479700899598076197841983697939110525153078929008077840633850295106821366200257512512489334194500177127720468308058201460142768936624347729616844482138262153238680403735942117301693050647951656457072226309535365651925728908729159304258785188497480448218934326123716227618565393915809517209740757356681263680181538769567328346704284790061031417151939867431678289789625937386690616369481881302835736021424931998806030869192425849144297417982240252346030966711724872483168181155525563666912403404616826552278686514095625649059682780382343123294737225966501377797577244701815840383466111504058572198356820492566808021710010582378308920578634526182314419456239285421690072425554717705003032372808712925863518470956440972087137102278561602079986602066142825175458329725205726757237200566496310574082817409065735953088592764395051361671008175061285052513120590668559107715902238445488478215309208293932598860898285271054387909494337893157322388285984627365133641296900843988946898505355569194806298997487018168499526701148568457438298773115599963567296549790194620786441707022998015662243299396879150836397416374346510099959317938221780871585891858894807213579542571532671936808675653397568378094581451066661529421725208638367169280821287224385273566149736519258205867041464979137391301546076392340367805398973869235762048548286001960512694625000307798155344177707777287992374042772539826369812200189320364663190648892355059503968896629162823738289697331739418738979948417874818567801038641791879359212892463043926278738577956220732086540374560554087615318191376867609503526860109286987729805404020615451391695642779090835473290076512374812459589675314726895489080702249558472522471273418496187875414574836708538336327518510608832693740282369956800670556772281308789261222159416669682795739592238844884548401564623838197120260853388418225264672229094422869844495011985714891638547920241895593190838934464077485742119853417865492131174701600281078760585241047699407712910322440791055636285479266918385379085858727282002845391820872889107366320769492243805492861377229345943873912863997563404056853221989416128657197377805571468317227123253720754438237689286539716344724458855037581342723265225482868038197364824135936945985171965200469874384944988961875429204940982356259656805146877521473421545427313208990773748722652982431430845914255481809887566843426061179406293308759187585173297768137841306415990637173280950572124319976718251842618589870364086937660346403258237910990449928224232123989579972473507553314672930038251786855571434165435597567690426506845466170911833164909602273345609672571166303460814934438661105702764234184264386629174420269247803564803862084270488414359125064936146935132753327482139714988833489989683292504142815106245411048995942754467301289620076065696283654438424105338997791670870690443331410261761995303452398781667320507632826693617689464065676447789021397736058915458248123899173953797484689188001957701719131497528344155111902935678217978227945669004335222705180797704557433630088789662419558022715438178564166016627711649692202880471459637126478170238739535595311385912521822710623011182742525852261487165286985005132517676661547087763029967760982321265674143428883525559356939193392007101652391713868970002218612800506553590917328700314058657793268355382793575994698063874621494626560201327778703002115714290560253667280034584142610076953633454501465351715502389860561231394236884623130696967644371655884529184998254278464684015600302080838873542482912168198071286788796726848817370230834554122586833671087107018095191409614808492787721094645951868725070006797105920582934626954897885245000544316680649584027060467719909141194636410853901075516567430493519596397283188762536556442144391390772257863386996231825662378490647964780488629559407435840717056771315330862282568336834922300557819598048078444715417608004250564464712115384644752046282796481003722185739051516812693924723579460016861601486760354980383836957630101138837616717090357137526052477178459818834773180568448714507844662594621225860218986452828025667233524082804557114427842495769168358315277112271289577147519772147155212656890774571043903694955653067155366129179848070351080376358709982778220606073821512824928378617861273037018606071295811268323971431295728558041767968696018887301252319572824166661801225425882299180972539183300072002294212125951598476174488381050508439380023788726912239703688470176059424551217801143700685352075697175622458753406010527370177386974283488463312289707020356772727931010601345512917777949570402261445478654185111237579765848040896461561075515688444762422859630073435626122949986301755532736993624689947171299995120566074894636764831129573120926207446086676560490884609692249722362499235590167027483038846681732484086630444275317059786404937201235539102598886479729227104000910572741539993314868797859634535781954681787721663639441654995482268170261426251389103515636730831402418202149996412431025502772868351063150370372748838274194312921651108458376436811433828170450950833917968103159036471982925121545265852134654748431356215669267385104491517830431497246019744962587756525860008258260497358144126401059453462386248220920988257862473756752167439253086616949379359067279121986478708728744657267693564531312769928595611040431494420333098159094165109496463137945919314196364375072838686251002174008651172074510252947685297726917336760591436420687964161352992764185784502732367852766640332158012020189042113124874033152782237079246312872883566349509494676618554482369135413241912923813221690651272899534902140161095656360437110265965341934754725489353492594911084990717986671812275238882983801993030310119432939527083745239007798638283956469688407036822683783116390605279095341095101416742980209724230138629163372276144548973726435196524241334320394119210323323382731678750662655441615448535623657976428479803784784723912184102788492958015793559289976550035785750955650218981063009953886917373605782274904760754334409804396366549613464177963615261283525160538508787293759636242405355578387654174384690764007684008407403758466397455297789877697039358249688922124696345133274036479736237428575183901842065143820816627869692378614502905111423738478364468002495218616538950254126683059470062491330304235876359075447344927444402129364322012636734077393373809554504048743569409017835376234822836622795642390932630560404360988364243288416287820690772028322280654356007041582022769131624235986168902667224423473004390144561114298534659907554450016347604285987417699457773364600974582377950567898428299428931670075300660293307871920733200988426886310087412563740658045595292829620614967462000134223267433990183808323753624616277466323693076830264691521693422853125717203541428138086445417575471062837851465897618896537080488176810501580794490029504744958720680361826601040827576341255526113862306996995389070682555401638350953331054328872498407279817695699811538538616674264167189069119450544099865485202107426079788605586372076425666517999131532018857732598472557652302357697838626633109741550177579526401028080307331614411249394271618514558820212716324447807844892873758096757226147721465610324724501071421016134471001996775347121747633821066939491286584028535758606960795324361963788185504228174580049541205812177665133335886064942203573193527665135593869711790508349971507793022372144805643204928192515362827202060132970450962058790163088399317535599932990650517985633849871409264949121961733743143827902758235578658301387276136020070587471998886802359668923034664469003291535236953783125419459666611038023671057526760147935782518793224066408271671022765977588522976163662451971795605442222020600861342590580471024623416269184670032338502669074001442730986781512607914438548202787608474234336888950999962919066154759538713746199956088120682662223618802648466871672053498956319655438421053429670168366746009992954749891399997860611445958497712734994480882638629280087701157686263890546891108029628761771381957084792236170540744687066904094773404694668276876863680050614643053002194823358178910660344171352265267454664011362568233759348222802502422899387648833102356619322838648090490518816256158888642200805624500079786944332158907934287587513955734655696942539992277442440217612138049607029844200327806606500301783099553924275925607088426281392723116979052810721544452381256975682400744879714663749090792773239188895161398284922176331613420341625259198297768449752485871832598666041986872508932880564340906952068971919680984566380335646124685727748241323180107932375926350513941834804488929642852171175268157249224458380865981053452153478205240863987628703352901561309276251363619600391845733394702022817482633557446566906539878774520142731830330664468208423582626745855521971430766363508401584421754062046379738397214303385267205521266696526255133895593164220480941660404222018181769355368954373184974450720088742310485805160779242260273415598462842719283755718996223433649703035451304079539831050714637446284679147112715766444817371116196843033254406350318662507836620016915423276172392721308087660282753012018409169917203043097698538561201097653171741189805015953967559292100461283544065611777176585185042006580448170948107999980253787864940383845286791588664423588619687939919810978349355705068072241225140488230051135735164802204734865683636700922199917905064409005525792011461197387118495685862593354039877522148825255613134088805645375291411380217290772787996324599039220723783116779137961643664271216667863124440629881638801674330408736700379539146730359575847189660804624046285595599140141613108176018816106482787790933729280556028639980034725955603015437014147614077872017919376195419143243220797886447346520675727466754603648688116722586960127761049791640365649504998005484780736545968811123372681335961947744940798174344933751187673877331229031307229105057867162067140594271080519385718634092100432064985038073102763801402191969136752351677947543810244758742981191862802373632010414090709940212273959724740856609563396297797417369749512674479452510731759762536538905235931270890033423060362084843725674703184238877506726632527876060428086322838521868885587228107351869546385977398887987525139285033484471742724339531793329040175527000699530859340525855231537687615523772755448108217187143755506219050465216282147002206799142599455037038482924561378415649068853712403619038168150627446881036717249823595470909447954389226582806718106367442349979128654681519685850269933983715561172014713156791804388135823956831015960799859244170819691918516925034011470518898956043854480918369870697490381256372103214763350419338983722823188740276031865520285698348875326928760549476404467949673009228665873780651619266433063285640591323871170710524099028114746924554665127716418962297387420033219755797804975430613669759071042446481666169626374781168107981971957485056534978944366913144897151429241875537021945446485655646907339108056327110990099254284665380397202475738911451441374011608430848255460789668555069714802116551834530963693732731212174664744252579977434366436985554725932088246301171665475235008131956972312134634678219008586285105121472345967117941108056054730122779017706063727501296602410289396214757386348335688406526248845990501776256921246392868755494509452990496208401537214670243050577289008414888625037376149931464191876399137161610293092780812026190750533826401986206163465811349875709727522842928979268246810494745987571500683763246711923741839320944353344456964820998472102697620262710842195862353611983871723524406838564259851965864782395368789398771002244816254404816538437371812260281554903644777471563213220432023303216790565021281447336806492876485447086826220557796804532340905242981795736241535415863374894906942743931102573106127179978364951978541458330939324427951659082456129171296408981143886474991752070572820484975091278215824690907706669263296637629634243192441417063057091652032607292471231107687337965373004131510494578966344611459516194465327395935557171017116059412244463067124369562360716939974595889233409330206772031976500918733153544837196672884425702105872697801856149314827438081461414004918911630046972057158290025993576569743659948747880802407206171267059880786621391016705563239383345297110667495316244906850734073103474429683128407897532649651084261226723175143666962648833128280350642153626826001137255871446796880070438867323431550681687577965676529856170535908800228863140753429355741981523683440319377341705097208707911163162754218845058066726046238718298904863895661500380259209695069911708502305240977812333347936444019096441766563269459926474604077376134134857637100102298166455697886632091568465759584268876838372216751519522277160378413165000195940249493586804311625074229978343074125319376405474551057555976965871893353067907819348382486320027286416794466623801751904060818688092511627071820459059916913153545214923885833131602164010639849253769460170685707484272493734809071487705451096948422210899633134996707013618085111332492167658749389139870514007296040552978319025843203352893849760802845479274131572533374635498842153859639607293983504449560230513147684727997284140082615733996722334448836359337120969460355800579218816429978193203736201817959003367664620080259098131315555088630003405226897313576587316607810809911597314194509748913933013452607545496827035365415837119955812414877841128568362335245410142943998847928555693696619216222356307190627695624530343783828357954626203536509616927492029771151018537356408352060410293413381110787146757512552616349614462472934005115535978916115015975111190875462425243480424390857089923798923407240399003359895855213527763100057255843772511514168584824585670507010785539905284167216261529287489917187765375827675470229212504314630524142656275973439404473485701604243951582709100885370222459326506784134773201916912364052235544005727511487380916140650548598308925752256828773292891866940143406993485123639703837345313650590255372284291434011242873946887968203843972387062520601713759570440965652803453510568999336371383512615154246922008519884308347981032764710335034331762123912431252916225860341363224211591773913181487223652814205406453875338149128438395701320560288850617592179571276900399057701168904888116845754402455613363313345806835609323290951444469883463192874170375463272775686457133654086341505764787533629873839581650468409858668248208407598243054459015183986483295510260975889857769911295511801455712803873166119903304661797221981599324388689012129803381066426332215235591184691002684189675845822949001730888905435900311978372091806910578015081579715704791896950193919716815649579886905599990288115467694998398963607982622943602742590691456396943343853845204316906520383318279328741426598730813452036694034692135206894720516285260043752850202733765471788919327449060130236555959610017039158155500160368949170444739553671218373382208925885170369276241564653431952393818715471928233560021722901288199345412794232001942437599705201725092008995437110223466790516574734644156947995427949825714745514597113025377690772056102646554876638028407297056353044326703755621418603408136756999481739328458163941876589554387784705305847142601789663431197880069738452236819145665562281907889026361297700232706301549022527633820639718911846115726633077811575652331714368725049138536144357971227514628083651721826900223676632004980851695778042464774434472259052308057696124864946348454672357994749777281070450385527651591403823381210904784495954976393255239866704852564267481166897943148594162832530291211055705531550469382225916720876008072326050258797709998649779968261790158262475044161993723794547930239293793952749969008025514014068608439497096414163504432135442742390286481961154877652593719314267129861982291032336437605114917763977142302353474296427247690162118729330080436710228327055442972095476091100354108268179594352978225133306152928135566173456823306612025600302770142453225150081561360033037209537772142114601857344698599333689835713943352613432215411006041765366263639072578810842947529175056110895468300979517801509563789775094564416648667185399852963097608482249587845307872398044709297955948459639882518641122998786189743906556460304117016661176461255411149951498805747582576588674478879082626533418564244887112954847562168559767311710211745841479045418049880676793177836076763453159526828016460869805641123914517654527080976163512988116503027948108710679857010382334931732716364703410129682235258238815032305208602052480438648001481126534512209508444885408494722675480568333176312289948571341568895608214754935045774461541439148036911509086292998503700160770550140844607810797945093633313605032753398133841913019789696262569122297064935042805359149832743580809696590905080187678163091194891414402274968019981520437602310260436437922187136566075294775461121907935245114479052125189882110894840828882101357850594701276027877254198628483214868587077487512902503846212531947201640059365839811249257370849765252207032134176534317831514825718368936225488582457604904485434685512125403547721911687121297586166910818056887687620960585613667075004712894024176882052887069331800704750331464673491212305051960314683359557195315934715993282923460811650051942935509026043258062633919034053841066433444398430870277044546682085245538082942422539852644054224437210215359939687608403344226647498501868749764450332643307952318556323600056400263187263316890030413250145867231243650643479564470776792085266774574852190761040707163063695077779012255403651687139965169103470576112516342635463939495119391160111483981364690542561236085847237908459812274578464520691353452900486926276801053312715749764062280659509618992982263657481924062020670845364587398218235869182644495383654628702178720346727016500266009029742093467042588835374111247996828853878898949980424397764387412397395336146646372773683901682799576544580212854775323534723467958592659976456912052838522368282365996856851308865360137965927575908336854843295251273432208097286761905480435429359912689915917677150273633344218829397618990893240849427277923047199903768392725584386471655012753661888511093961814344770036201107850839453224459403505526412392448351830997018798460857336609884772422555490071346260371782198202277098193409837963754648105105879620336881033625534661694220778857168634194526646035586959877761747206835850494898187943139129789945604979536632292137850137655204130212445130312308851269128871452313713368327232449087866061042322399238889822456359355893515778482407059966344643687285021712873971978093308623468346383825726925331354680131326320827014078320955271672195143714441766871355427506515455235118873947273155170067119669061465796195392085907921736906001685487596563963236340056207977483750208565834325164760642570074916038459380621197697061286859063457170389636607429575068586882861708231012201758351765091220229515190705115683733310644084231880293486603508392527623499357242420278589531718122197907864704607608156650382335475125929020834567834939092423255729561735439377949284055039179063036761443368395909404835922703038995370437399853491657898427695985709037157335796858260453581798363422702417537611903550359509255726302272448465958627284089769602012635669221996537535276277910442311180594527873170057074217861694173857365676780839352095697288262321565942973846293926580655824541875837726047951298733179034454681613535013333477900217962037704491699579739633227259780058682727632299511862358993609781796499417910957955313424353434693492066228138171941539994933326056143219325508064635535383344421871879193113186117921155484349405553363480038386617763052974148722363764275108952551774660977811267806008058898353699180002739193863948220000292735573473897238973042320588896510770168413184302403348031071898816609166432532692770625458033755689861383126687711903602022841109009954837695911120293232656764536843815546258405269191875383325275725995962618342433516443058486206185621667987526035684162797645501553432399616909464206298554569300678698857661134619296855974430739280257340784244789981959911999382997746747060563987547233479608918016516419667206815932242603575459864544950722879373536549486713379362490667837928228758162492530205776866951640572981956146734551590481415633492525752266003876690558042421795497331144284322331370215259950751241587306616947957582989673363794735737504386730259563688116365914076050925340763629621107140336182499503304413973632507439478010353571570446834462607631225795664751892028666536283106673557554298681050968490301826206250169400994563323318823937550577636105385477334324870843906045409111311016975757785716399828599240410648047427840668177902599636844944233803460379893017632772529064415977291665239374668708465973882384918820624674593573381691657338429967513611784674582638646889211572774909814664888116409330212867212963708097702552976670307881709028514571366270214183024424259409619936866651116450224639329540500803170454437768190943151046120048999504047649696696973777767698988921031393879285068865491703279775702665029219114217155847184094406397898346190630808351458277670289291081443687611442430718724886776299779492279308706792338334271697529610633172489382547760237262206473689190498998028297341131229309621260320542686518483402815026294695524782133868508263237534961508653659088030991492199663132897397141226900080315214315705130807824863739621669260136486079332747472418609445440236370443097224568465179313020423117579512397606626462882603041801196542580525512909440670451327528736683534658681771161849473547852339149570470969651328752131979564421239639286363089528029580544477917292713216586349756379645235830361007695237748916082946322976177840067324457295809183691696503446130129268063209074883918663883402347887011307622537438289483382243869215242172471624633138724803875733677086525150576250892560623419359108466962814930676510787387947904264110363929384342173430712584817875122383929193289398815198025399136988192307868412322217282827648683673451065644284934543173550438938742015844296500248457471198810051715542826433950975148482961436413865172290411812086747779431523814488958775624242091876033580126760893004123857356121095234584397634461812110807961355623630374717129492526427196891533820184805800485454483971832201908826187078701680469608380307636283753257197920522738608844499153901030278706303578046106960101351553299935842479906944462180200060148081526652858897038384591949427947683533643932145294806895787108619281163705899008110971908338516895463811273595421852254321647655056131009119217881018956701207258459470311184177346955337195506159541305373463575942706139507245380923776667935993024920435041836028259407589069213098070179957831432191746268512891692648038506409561761787593097918882884468749990289908512150302528416213867899991734208281111584785329391988089468487468986894172287546962553761437542184782860454277333728946286536482736387351463185301506427764074542750806374631888876353850772725204798248889381926649722292937397302178470654993417753659600777512440297956791008052280638455308466292785946115678881023443128249129137007036413663336968297799251716432415140421906504157556913321480867157146686503818497433466777235681541436257452171236434287582930789727494831653675671911497102245884003051420619541010735628240731242085602487345051247095582824990113015707353931517392731272874612293586634046436836678355574284402315436485913158156527056146851382939576447321371170101182676489315045455749561078900225533294483239688985082122706497379175369591510288888304206167291046577969303367654383335675459254149616789189837950210432470270630301525722887587054212186490535303877887337213380762930117715759821279922854994253114961255059605794408324152437588480285435227112405641287990055249292738316832001810675072765035656579006914366025669301744350606393989084848034369917787885509498669837062248890054861285551256944745438865188721706746149480810543161028022696981600772147846475298866369498686479390815635594798198777013761356668426339750241350451280797662765510265701645619850320964146982036447757965518765769429134872350452058050209256750744467160950640124627283117013037255751975752105053381855327081052840777781119638325186510107198543422348033571693394286212435234589112493012141579479551522215617647473596048563018966252962047499202458140814569376718565511439903080314030728967375997036800772485628312787776052056757261018080963184445131625379415512668266280805112145774103488463861038928765939684072854234788097831412954845445333603920837885981361880387082812165244892327252115479877927519253481195690620145859468684006219821004871696301873400162820776782296539100756879448424225455621440444626699440070492762260876069698965052765679288319310471404544191718878341576063722672538887471988860300905174817083655355098171991199048468148332394355681602471578770920934157795506537964135938530730860799759491584210961913988648756797192415843755038780467281246397069026965917728561148380372714407076803061894396475980687890064770859910734407306260651233502760358068706316249715184613032578793918485800602694823118104113607734174013963218079584315856604114823048183184877472066608147139878949536379777812295530319071312221525556232185072872774512333807952586121639549005711552661446508341583040556635051994253268461545570641558474728625424215166155523647617056354388466674203952423443070636193668492833907995040241569171635602691871448138744306284828768441144123154955840830192108286806743305352703717688799643859438866160446903023511353407180416308287561572065458820152703947421791128438185086333565927854442302492193806450179180134164755178377481891879569315928119735178508060032814674031669970644717985155158265641710136341524399568730949875017169166760546060555011988185885974916912064122175581976311634095424747892910147147998500434609404400987435117296057822302473014185873831640169438513003929424204972407595801976857277612498723820977069828023427475522410186400429566189991779790719404607438664486900029832655379491736402358092390224768943979573775653077271263173453187151715748434708826108952821152124500365954040136867872493261389156172969359666121214193680624660233230276128135718698456333844450187655522808013894494328225135775394641599606816517278130736926978219027388126307845703971031413376741657422287440765255890881696084368424092625659813080646032945615918249003961522234158476643563840349976186980926647491398610427724018554895088564774660383260521522003733013678346639255052414108544033219080228248524603787405243312180097532338313866416501987020290950287203571339147720292326579333243792825563992133462913159360131389384579197952367967205234907420779813938152419957664753732728082550201917791172634882478648635466966761287862789733567121966781990932666685597588346156520532621010333358309641215890239003955910087054221320970719373180030683552182191323219601045213357350825852882037983499361472166360138106014805199737973157148526875301234501133831253695704771651510260276574216053371920770243392701116557723885044730604869078991661648321676459441578069846284784940580371464416801082386917605719140259885379886018379291063186912700991711178276934831973848543641082440530619054195217513520531819711932170219831221794629648823415755014292096518542813656618998751226888092275547808410355729806818014741023822463572878901444702496539143468904642961645259820511768433920003538941437334596358895574218123391565933806700327969766678540649031669091038118882051594783785071684746734320528642073553154329913301005068179128917529405566291378861258415844302983248029549788946134265078829582660948371725445800383760915490035966733647380573322244160912992764079326964070262527798795658417170249183655261893134093020608748712385667845314877250662964619602789980667758143853155569701461388443125295684091201944934743398102327903474523485292008909498541301547786545771602060342188773421175582197878300898753826066110707497325690639227892639231489401776409421593849943593412211215078069548868494553199424532059204784401054690883502238814365973190575323351359800358815907729323856808295582415664168935866742237968317029759358468595802468859166439836240410515428525982256331074067265988211010582950926577449755548574669834294522786844275830145248980903573205676829622623416037259706034492223309514792050883712096687346921702994768194662259038801936227720871140027171646868645089766260115134681757204647039607076018713075211983884941768745544710193534241948448283326619367909038437232894814641543564902840475177230928344555229754878781003997169242032914937923378962094021178630140889417550669213099234130138995430202908607372372877513954790608054751284898108748726529439233702692229053828599869877460579431031666823792800865801620012133526432540635158026808260871084306380726478517743768337618832123651327718357337070629410990143551618855436499103179604135919481736487515138932543976728996961432564377058550817518649497442660285994831050273456643597226354511881840548027325288212718181909096416699894425035864898616936700803855310945019525502671537000245592790440271296276961261483304448132182054245790313977000759044126482176800537529999507662677686110796806898499226313516377928217760165955391785306462266171455422948938077349389064008963650394062569232372524863273543259514656888925162363474424148814418113868549018688834333031915387443760557647582039326240297837218467748467273558317697094923106552943161764983344780205561612209037982330271443223664882019205349917289443644383754810995071002475608974417438964687394177895262025185675431571691366942204047777979759035336210527833712275049512340715265281593450700351789861695948689636938876967622867323936637616643112331447876223643340275594545185505076401780923296414126578693543605932508708184596050761902001971945476996923408543528641140334952469879854907816367565086939514674004312210540568652418607496379419249524755184744960931030628372691063260639258913421644242103112469071115020114067529203199302080177151253896894553871925327652961815205262632585429842439826142860853995932113444865667553604314805974246348673316416879535533525828755573366592782928210164697273757444143975021398993549641050111723183612094470489963695487001962694467239469749862030275968345545255799098253872566022311249135296263572472657952697403114029244308761877024659054151464505113587461317387301126775411837265537508976252306399964185104393627863958857316535836012218081026874077083325164644974774659271243597233397814247795735238059724796464893103233511496280212735818799069965287319400699172865321126654096181178824662919986299064807499043990997782134000083228826926518424904878494092894825279317822291043471825158564925283905880771089004966504817468733714403538507661505838837817859173420996551255021710332223772742617197162764026612510523429613179825733641114502736214120853026851641104204610338051279307022717585979134406115896909728250696399517526334885512091366101318235277717163694001834584368343880804757137416323470566430407659388386444405145829299065240264152205800479592632319675872865779928239822778077202303450427338746096165317832560561941643607141638436999555909241678505644375526116079436250551369079907127742408455794971692397827185335206120451813976438235485487806311091389009355067335037116304210464254688953193278241248457894764050151172060992848391765322462288766814489265552307063954908875296549373088140432713565574611593860189232592174722136568576613896330453392172660169374611889997621409441946019515472672039683465591813152458642048035832366543723908150104744193005965749158075876742833581326440692986961652795465731938283149444334373369034376719662591098410272257185127477399217968705268903934278369128544065358963284854081559109375681723622358738950685344871176900648204717931118307545056317189557020323593036287992633767895264697658939246028184348933704913190713385084584783601448683498363624404920943910266835158332177574654201035470999069671413319472161862454160744137228193807693420195750494731159612701637287752407753665373974366275542163950019461010340331590638502700038624850121333658948268182837613331428033933432307043082821082038375872851620722813049404228824593608719079914732495694772998348442792997585676228399539107858631399086172247055696635961969786126027174094686032528193220284228516268446185700850099495970388427680645382088801043173421735224989517558703515417636260070166738424523534864672198294625810980337093740482134462758142181012578528415468459785338734231943259992971057736419130617834446555602388762705858280876395130431344406592280370627647092238673727047167705382166882723022124529069832567034883918794226027144013585547301387196782433713211344644119156533273689798015833483886759789541781218422788643747444419124083379141754093056019193039433030047005650753226699325525696352173588017023643593532070339829649933834421817237135621953791754772976942331047978176574442434276379065394664259910840725011187922295556864306248264660923106112796778236482651575728898415633705950102924721514680391174102315231413508265142043542462750711409512855264595083122322221367341975791883520892304966154162035122538335945265698064763029707075708773423276864802289261470852049664275012043764665073423409108987602112201875683068856251072087296575164871338977552474195065051579347705412160142199652452920557728581329364445932620345563840326856293591764278052882312188989760391236514772790135633724841868649777049316403597472381562525242595133210189124016805421377558734906695237767847418265724499117674784020758608207664595353455205487539458860693628955932188897610928146975936766244910877465051414299706646119919201568323662696485051147049792091112163349540503384799743999293316582339046915428095647940225008340130088589091885087821510549829612018016764825678144048817744733589353472621897903990461640885233253703936174657151037062636261056663887577627112451228251323382523739733356820611807729646116543240805066293974448554567467875350465973319496175961615186848290950940768540953299274297362549796542956470536807284788098313422737783167181499195016534614807958639697440392043169829943091716213255336939459520068166958997818774784354781682877733175507028299354764556747995033415401458062868809172176688384996471308858016556001975291824902636071832006902922932862200825133597629542768529868172903527741957512566122868511292740692661009400689427430385339293498854138286075826133971224150324305865311358865021107380652486033757192080271520020425283144626585935908877654780498135567362630713301213438023209736366954250277696773201027000414197227084606279716286463687524370633510716755723760186014741308741415135129399887939115740909170295394350230868831122486195417830163315437446722596495861968185241779071160826677740242472072323954338751143340340254464576691687567248127871490983839933515800866107077724542789631924183181911805217900565958839438099055774170653940994722315574053991098709719182253704753067072181835212879740129263118658069315160317624959221671185283334633358502434661027548296691114741552547656854285546881633399942195945175235526647500712469319128322920185719494168481392775404727134657709976730969494763849467290451347211061673846560800722907005320007968386961898261261449564522467450085744387243472937347709110263651767675421614490514068834236600598933396863723202600523989267113294016945156614767349835195494083078469227158957240303319676909797965006096488280346126478987283496306185920821625411389169228741505704802181876087899855025784748516200118089688900129908767062101433440156736455830495862921982022563683985115140675192592463001266611632081449269657797445873854233592069907453888575194788388503863118512471690803988089266582639959699945248511093999248683890523425539554565987438703298719303191709500476500977883318668534932924109685199658665061285697323766129187123445337021802492852609708320025263717042113650205651215401899849586316467866310368833649995507507659302577263075830655403645644456816326269178309653736066046141511855973311734871823687460639595707780099796440744734751040874991641908199723293188855948096677169210488152750347267622600806937909939133941364990625368108748944450583211880000042113964205916932082972722050017067773963101150377056100096109485077856782022741317830922875570185212037504746018489678767988702664412613050556982546647524694137909899141760423003019531460710724518798031743953614138192817526775148276877911473908759586292543655269902824233489323381511163087918843916617677911686254552515354173912768477471465679495111788710573504835584597756697810375797611695269478814410392406663402688260463343284869397929757827204594791456112974294296841319150525773215566248685561264406277138010516557684099713703265017013950027482137781455099510884794004915662875167283762276860680237051540975053807009257581098241501917410136542999503754106821325291433905131866466952726791467560498894058625414687631974667810075595737859546389978683889999519292816010680591201435793696543187841579270826132454219894279853675999363071097681350740108732326074776555721502451535650230412101915589605116231784388855067952342744170653416773532209185528500293839977579623275331931170760795831293963481838778147838434661280803537335187610941660798533258541968920807033788015277627072614168775144818025791671339141486331324172629878076114733204186522828812684307079748683101034753261037355243807190182519251537959856622513231214756525521894755775423419273021023841916539164459578464334610711885353617279299124232531404459065810311117488121007158772229366247449680501786425326814631795701741812790166381858283555266066341033311280484128692092534198697701784787734632685943901452651506596087116845322488085836396154622838650960451232883031245720526263785604264752479394193280458614074756738876931131746745665519628931631076773896597023110328761857642455925340035732569259998230122583581762015015110588091153078673532925275873934290934911653478919906465323004490335869863440583428183575581320041523410474943091687996778235133002946177451449499563214741616958228339222688810947944558981093707589159581629954893418168053949876719093079101167049730118858135911123542886009188040929815433619397567840028723945299198327130854564582264584517535325979753325160143219339427434238111606271326068178742715361586589140643542863502306857759052091001335011046468044829543436948645191333588518671044369319831086432095544171152504599462060729643192818893347492466094640262942541417753013608734742503333825767911587746820429289958393155835616069649927939320896940102580802881435114909549924087542224868309895212194163989951092667405572908186730232254189131950696484422350807646693459310693019077243840040550478377402591617197764986577404039648161283616946861265124495193399246770649085255332763627845511033572182202087431627163192689255354455163806800736138715507586513815179332374974884315097789556870950346128495668140500572887168367128963646515340046023565276009596629195439376330933933472290784056560582885872173178629934405496781465936527133687256567007823801722792637541239491283466620954686494929670700780629489733584726575529892885756190833047664336807152601161606367574384156716890684363887211402830703129249347563007553028190215633693304568593583707270046050612875208880662472514165892395037027846126457580863916957955528865155158014864097193475877212813818037343188787604241275902078300582442255740407611569608868048422724238565668691325238813914681797121791765979416963484780004180116655095054777000241060208053518346057059265675259881781619038579494990718224546618766892179592147988462775488813797735269068813156975107646996270050477373939589944529458188360678758717493893826361795093104713507950393469514529592539334746982181528024963704524748824394719043326256482618834162203531503568752791022802637516339879757707208200302459902306433105244099516184704534897887102340564642795499305918956622094630860628354247897838335341667780654002250930326555242980672635071944358669244808163622536110191632252441805026133868356077565746086838800785862191228922652633302517901299851482250177435852009237218617958269179324874325213525762924801620361117403148414104547512314216439873894605295582769577622853308243652451269072645681830321985840908686828778789251485237065389034323193159066335386343595940109441204516525961991519428518031998871802699317461817556445847456784594879466264708245165537771784206527542111788840447797993903652174277022158653278307484282820652489162087599737441448948006394217948353449811238766201676845987159283272045540296872340999734906805939571812704605674713241749810363431350749098609502439240312611529004898143286548787910795369529520693402974754503860487940451682013017571653557121163147655112936320185281992390417959695388741701778650282013503951754454264188985384403908674731911061625175265557645077183060782007035910784945312718355641823937953125070205842689138803189788742803870704070058484558473807974942646624805236847368792520056621846629024594486622023715366230484733308754164382061967656978856984212339265276019794271323122245812971480429554047432140305589658938912710159898917806162133158650893388862603443673160731521167178808568950751395641563506470977423716623836153927964522791761704349522328650858572246263014008602578542885182247581177548069396206280723466254902416333733512726751768367510115393721126875817173779170832287018324641040033003864283927494975461111669144557005754363814404231910819232071489129147653130676597720856604239979888773615436641660753721905255306088479658235180680378535615455991249968433252239301599206546223894014540522346989152817759523200173482909895541663632040408330699177013554023543585226218950140283263819771330095975834997768980736656930126692890954162400754679280578755125280319574594205342439724522562112334218425736148188228652378305812622862766167926680111067317186967255137891203861136511983306423311987461533261569439232737071348481889184403879380169575404257382724316908096715852136286731549214352971783901316779083703761456505597589939933026109374719592581354357735700479733465896507400261405793592495589540804142294843879657675485279018332193465555438411211463947278985552392617789842955047755464413232393335035930014807284443160507853814393857306545752617184193646956353694603796029563871565366714606384484373040557167769627984617974729974155492467113954292903987766062035275483428913156979979822519380504240874926118991962331930753256447499444503242615110382788918428816443120048519071149050893297415625460698141932266166209161604403866231541427674410856801616259284085438370363817859208996219447901643394152002454723976226859706884656903674606161452445344713284823306412095372270976085795743800251682517679328785924422636921513964280895079379391282598436257278291143719184863635335379416902577376241096350378521371103840260367026474984073962674867567543355509542392492913931586407771376362379730744892279975510991803697580606199312667518445714107898677819092912275911544706011681827646528929876588154208555215381684304422633155440854426336741186639093087818929718543330302745756949384049122375212996274015840766961926682139250989910227841330715455994867974585720527546314493587216943140429595837813038605752044593020551332657470115731882137565729092171823236618547113635360394963037210895287157685162775633078713983578303645116216127196324378984186413442097927668049431338018199663097932951452750761031254408296208654606166243763781842200308818781457662609015680671682872708308772332054776912156887732167165415322345290461812071996074474548276376234071778625070607072798099819456457864815847366871032434650820076923124119429928498566454348126309294637666708947679566852690889903453156177983234905341603109717059900151891117253976021695879822717354382624237523383418135989524665664392832998383810004924382879826513731991448798933723435874836807364007462957563314707467986832223050301347209669045975998502123033054703721990370849179980891296877251884117320491352331565921456158500555721582855153922100565851513758137944942617981231267692104110587202246422946268722940009643322185141273906765295632235387897127197152571130071549319436344290298176561208407949434947032350170025879309937316147120154747401807536784277107909197056167388757730494378398510073095591371246752492360571955730189278160054191198659979620960552001071029401932123113710056273766313758085644616897774806479777895976264371848593531191982065194666021384679795719426359256038045368075026770851055976700947443131440769824856591640795457908695670561077024898273940632305019901442726102547838510926055361981701107046414466157856170848622617123908964866670127444982039019699285154878596703908982387137553313715680303585490795608774748839047979921722784910088557633150456854198306161951676724836993037659466019357251575515616656511058103719204506819610779713477905751550629449004467960973522456970790914062242336799950312050026240246330173747369969574657329165814968306137414558918990228830526234754943124796345941714306575115813261470271760647421654793304728826099423126479558169884470070846946638231962269641966393142302484339809972388098425015732055578627689608506869263881891617681576238298156603234629142204998979632483340050871964328819418427352123377742038796322883165706764707771559226040945284088481467221779979955393911132067708259154076402658874251765854517205237780097625321486879331593985729937043358285644523570458868028588639308899559466608966669470359003628170107974555341875801536544887894002428942486270099837998289773915866252036250617908445867195990162456795260364675585456202207228677513576387412443869387257477198949921208436906013622637363744056316831927431320585464796746222690826698173137356689168384257636411525385737030750326952915454195078024469169169434463777295633692613816591344403773857825206687855472241764590645523818904987983870553506223436615534088945399613872399304192096251096543571670004523111360971297884231730521315898570446819476779076994210796748388169089776601012571831200364319631797138735727055849526217069462844227987242419542114699696260806530552377909389745609845675935828103977391854578724973131509080928254667129486847214015081837760637917779063759329150257343585918020053269109175986530198576869644741198590741764150941086559793033203733178960850447657934950485361746521757074006833870101354172561720447366260361381631528975924277177399467999200340868832381045051158936372747952891720003196241964201503312511571358942576852193116282702721686351283610035297015526601150071169138030406322031556102260435878542673640110995480614773131104996137972161964642537643790920025348361160960263321879107566171423400457391425159528882216525178497373893415762030898847509763044912890483985348752223839433263631168187175063047626232684705709725950354226369750308320699454451085422263769708800977078247253248394622222205285520255841125132792671294120186676704767180784415318345672187217136792618305386687608420938358802541079099337163282616243311562689916906879586299396161623139665134989658811985316989894216007725776472830100125201219640609301819073835613821348887619363987838021650839367039676136237058267975508147257152575367983000884985285662011798392590353864282780127917346162655968034172771100769226307759820929766976320633006058121863307181202702596406989206112017036990665616549274448638136851530570034477949454161842665761829251881042599925889330344022172348973507546587629007064923738770661448265181971892991334660029034061991734789092559407269429659947287904704896946424983359390822229208599636024426929959859815735916382398171992372913461586739587232072363179017272534484132969662427715456105868691601659661951878894627416388629915662191127848719476241402773266019804997635799943541637925286195631959159303981845819443044631074354342329689381368799178714752033143377706253104628753051089296692066771339552024411484891269286340189766151009315892296989359917476549217555714584530665620053628428549409213129958090117947197916043353200200887451088830940040794665322574889006480754820024126437056124814635719872542113740302646772689396041606030076626821343307146930042985142014198215242744297733568933018819222806923980674094561982866051291130839934741729966991395800248494616917925154803596628006096571029005635924388731952606292977918577671021577595472331066226626437400787592672153938165247791754205364788027224460699084815648261256225088368732084080824092386505121223910467900836033075979014887593420418243249868858268991970260506938881950283009156239635612410252843919235707159698393230345027456093989427058530424449002536115421459661648962191809090441086078620441349513892822297282201493024245400225059386928229463397349850676623097878706133376304647952013306052777265573987977367483692054966162993810411893879603784167787617898832318403714738165193676150076936011015746098258207945946917338200415028680296201809073616041282935197408464690059429809085502602474981393801027840531364472054538835731995668400597615916460999442871276931068115003945384388280969543657853487508993167550159404854029342677810565563538090538499212630693554096229364821071472278215630340770781776912584490811581616471725736284037518368933613783166763068714798904781348823736115246717448147080313010111700062799653233014505959120216863045605950703576548996134801603344726954964619596303984578553121197598353422019146503458975133780550153616756002248677220177392614852552536107772427950097079974545032846398951404225459634578659074736651730709994729162781419333343235392287476179629823113905575762825238866541741124428240372886027899422946338812047083478362094158932316611586493914666733000194610465883697934587636432721728975360831970752923727136865581825878626269929715540420431477673551545972705545794222692630744781274963358202910887286123945398727194408606529207104934353831289302218399932833933168111768078485733324433827457432933727481146936903231205725559213831928551428642370731579077279118773637166448749721052355727270477987187603171525971601661835026642874704488440112086672127612552655445782943221573697932570118191667927423657144593157578075680364588840589793149479122738774426122238471071419746469240540582441936735748622154523390398535609257880994889828711786784740997971226638258363869804891284842717425097308321392562765069562827279310871982739742032784444089994335894027352815879653191406443028683566998431460576557809091937005191432433498015311619122576453507390002129698654412336476731705448425890419847174920413766354812987163600984547110263539561373213204274976100634683863445622444409683826223416324422547982076811125468226651812076664088456740742248682417250094044817754683905421267715939273979999862131365802370159213294577441959422962534733691242998353053423795591968055273860745946091039055500873596271488970337438597176260595183040804774936911176045783091790425924251768526316834661146670168766210927269668689608377612517884625775433541399236110337789346762334518187313512874275594818799446105386166749978989146280154038889212782068250644770297801862745244013489969348147024716201407054476839548538581769246589129184964834637276950005773497253572407172743248603003180047202388333250417042240975704625061324567015390684106633567774180952071746430932804212421098280981907413704532910089818022927679367729209252754802917014798712054994227582831462728454857095848754645338285020605363394771050473532563432453318143039763020040205638218298069098100947857225029848158929647211498054961958478397182843385423729753513784140367641437203960681209988359994599749683944199463889717738079360825197460666510471432330917107084166274549540588608674722855531600277182991068274794118942760688351077972729501997043002563091751336500869486602912355225119052228646985384084233149269691021582743905912991755627649108376003112891747307087738536702584849824547823085854355040991926415509379838719337532032124242342702590818685460860698827261860412781723476377894439440934357673836099730714486354839581805332889441188202865314713988533116689999723406527717457026538019099071752090592840202548312630179298556289234303420042601091292485938323000199965360555844007504893762333468370382143521290486127329850860264732914481820388283755357802821164490281724295996870132253247465947898387087309062095653742720809811493446874522583860699292935163443054290807054014118379193155548857532302341875309106692714507715086738147419675116248233382792746448656852566297640965453894191912639548150782283832173760709999138418082638329580757190822294069669491340274123476816068961774505269967575614677204235597227661466701369788947618809876820524128865256799812456911314130311803570871490967043328480996147330384088643976520268279724667310479691514192792839262021288261707093910380381984458898367032128213270441756254928243665816628454033673231771572614434827648495166703475609576554201107568021122933429041206468060336446403377511931376070317842944163071399071427067302872777602607911265811205224143699567479957379564562412110183212647378660581748311257260993484694928727544196580766006879719041498870361068583260520626764692770312393543845814913194813249558165218629913000856007241702223807865209280814595566406835223053780178135893764340197455435827781720024559702658693258020942074823701195780691742356159863377862409272635104876258049786289341356588028960566114743866954531958727975770414220757689058369007793795327112048832046951112335539902081939099063995873736014538541470785111611718153828087359401873807660151421797700959938589637622464223015319484586537279866439327468111814697514242148285547165762798650757080254003852072666823966782134757980131347228612464416706576416194978954425919980924080930675835009010339799595107743462716721887375659915815907864232937271484174988335398502830047576733278308718151264921312379905554176206180028131035406882872869512716363546122826387928629711473811635465239297967403493137458389309566826245959357397337876581074229106011161613850497217712695702992612103677827787202136509581924782828161209584819064149325627614294204140908510272563650074224347952670336217525010708829675386310994150082428477192935701630170942613820099691164213394571150536059698763176651682171278858517109235966241593026973652172871790746244520579729072264506679126877363144458052515213753577216298617551070898579126108502781146718035359046320016886154771845390480339162568889677619271042406031523470116834122566315881487412768022331405073897673604011801493156102945086830165652764090436702448529455266630280460623146780852148824167718680903478738248101132846065989427615810626343402974282995901543855595881780619162128410139170499559841549990337696295395523951770002342007909103714149989448896785266651439956001364480087395390463288372821843010915530609658679757328466836080722287756638288563047389391327572949915522384763235580079719654486344800771015989470541377635647915079730027619878811577260818343751067222665925117976831483251600793342611866830852389678920982176338555861719209521476735770956579178365143909776242928672048972783755673472168296542203911098942364023566594242327098916728220633018240715427529216011901993945448097089110628805368209244312654393528861404730042248500450080845584016187709938608384493581249673523498984465268764454114187509136210874313875123074360215818694045676635785747563951640952586090667902966172021638822682292703894702622052919633996192547955525272391797544004736202328071079950717358306551323733676814895982712118950294500703828502012246632085957792732660208269255781706797789233666273406543976186197455603276804088537343328573120435185938865217332410177807244308388188036734603100561618595504906355871034806627870310016944118784202114648127344634797908022910278139619305050819452629714227955614217156753351404072343866439328967202608281509227578212871613195600048237313007423127798883226222656897466803236080419940788857276988643241082769914482010097069042209461570078360656359130967529514443223920222379322224840580203161777493748882857148180921185533232415664513228485231974718900906195522620116487981204935113113855591081164487434097900627764270449997353804154424515221085176520897393773878963146773739007146558682349030169274346204116053340828341889733769867497306452151402610974004061230623134624940524408082725347373722077365301239014826512315311987158443906146622495649939603270154586288822577332012900324133713929218671709133697868515990793801108519210652696053172725609557195626256103098295837669635413098506972123907117375538668790896330008969884669253337295840959096562861921411244489069108270034367774408684731353681101221126629110802627350191285641045730271877328285870984964088181515996585723497611010904542509775607594535942370137736721143081064122355586399009344603215344530646546200088110902527449943407912333359926386452628972682309331426694881912688743290098279781594955958627090865780285931177699437359592082677862190653480411156618934715268217844063212430020489298995061102497592182591778913666974422710992774438305396108031618394087205068912055293121215351438954797863284768368228311637395758314329641188259272093196777770676071694828814441067443112057974652215809800429371096242111944502548641050682402469265346327715322171910467012965647288545424410047205232103474497480265388109130292636840253098679651786916524230869292193521667633309600804590762525430340813670338979129530812834572435011339303904405145119421792320258916916401743536234490491712959502935452743097882688628660839038684494327103511414076803772576195017714076077677910678469120512716223945431239390423090133336211759492922588170498801999136906862954049504717929326887883047714160216350011378572612563319215308357000519093571658168629235359359083899351498149725791267846451877274596877737796186872231382265066749151785727733532072349082012965125087485334311197835582840574287235161586958555906936236258002280269364251707726740354653356859342557619004560051530496667997358197199311163210879759358917155603095859840041375821621590356993593271542790571977594732102938484174097783981665552395457436255383685119659346639567393357759834701498072973808785151526117919963440982379619445373269051452494857621218306364215498184199218692504037246062324757901901879815023375494898713151226078593736729584989522454230387207289281932520863396175232640246078563495783225436632269168599572468314236173568447214224752676234216293449562523721054004550782706358566604831569388018576258123068243189434665690851804298562372494775545473472168973815944986380638770789452146984254938042833543912208831431164127352403969417343070121140937378605307878613921974206595666330971278605471864026150770057149852582857861431866104688058800093875464218281987307270546552822723410930287575992029181801194324885058449271660528749622843652177665807066933740283839951577165271899949554156082860818493014454709485548253590418101089004546868260372423624105674302600125229753151115534043308032333161795653967927685553180292739247204417718247760600642441854807864021730683494176700632225700365819580956337780739803107170323408067324299043184863201842433178765226888462273065453184695617109803582052160340199219637086927409104690032042642442559255663197368089185872227557587024816436015677750413446833175232682415749087084675903306990890309693881344255670175809258188872134827952204921448481594924043652555269503444034376725872283396783466997993479995072280973518795712423654822000226007791877581898417589831251453994155537905779224402300444588526611739195042039634215618012291054193517841611548263806403990507924248405474799759936386103951925318198843291797663929246495392428351863437420051821572859558132459277343262861105990797523358509796163862658534388164694241085977493301929286754839766683545377467959729229942660955940178164448887421582181128127306358513444155017747558721553109838880398026652816089511763128978906916436498908832324795218283159415832513052212281365473509364111639585619318810334475538525849513087039565683898638238445813057151459867676259191415995229422504013494078168208504890835944138813920679960881069330183727869498120906275435999081207779158880816803165593497640824010676737446123130595752407188437328554542443599789648682792811755161216615070542413734017936231853445257315406014030028922486582843949481927522736044274013188818870784712335313687653388746388007451879335293348872111696083285580694145080704719777634623528236815517268694556586884987841491716509964354846600160767216130379527789955115695742758022130560072146113920585269758989658683937422809232975365493287439968812283250499297655931932444537395695182353771318678718570571865229856963104449398734302353544567073211768190605799867494298319788758561498288983204045563362043739130954860277666887043928413530707506190933417393722685248409221034157561488105338297134660635606770968325674459816904937457149767156053736317724262711714659306217561130000444422961519115040758303090399281350841418511603812959838745741291978764743894205114812275876022326914253691208364863115897421233707288100441853090959659304230807199305420332494309262864078225791231089875739340320287655215673562156365158818229585078952620476537742979110657421216744205215037278962115475545373628301157032900362116527710493828243167547912717598283812226498655438106931104992573091927621997508117857252085928255200405578462374040646393017935454218992458541922302547444334884498942218310215780773022233429110444188694757157662586752955536364817525873353687793141754856256739494890261776807712958406006069462042839846806539615454670985512609267129119694510622934392002109196091433902493932300044988507801111433982624120777055911782788054046206053188561831615420734002020040898071190523337931495723097003739054849371424453481526344152566050048089795284177255491870970772029061504056972791196921769534510328227300967649823530634064174388439431547346251466831187314878796470070146413196462258513118559914924285532531562042874192138912682321550454200966754503086009958353144510210895900674145289090583091759651838031994819308090081522067207603241237036620814623500896084270619292049845109083109203130570569568344105402353199877040514397018400816932650488368802147824525014221830791857301469906187780920755800021396169189973958273176191085167313392567205872111230835820263906026668254339346586723989841143558946856832518887259120551863472257289510554323221679008950050505212637921387237863346881840497543069423602762472589394218743286052643097066232646947038777050359692814956573846084516993229418919563456426016133270288059620744606418681114155135826935277975893270642244056354799386695195272828663757084869743597763501017018634221777587130667923447542531197346784372623684861617495615537519102671049979103779426155663344806549964819673008391606436298029638574405580921708798070035347300439936914216332372071834462861924815748912587070197615370046902544133911248484448275613865793630863755187694432701442434760921924589359709296549013296979836415053489422715057598741096453775917532380141368480922914825884590434042520705032142439786767695389884996327861302509175260222304044040374062198830446512033614880326991899153287700329328316266727628270270236625126482539409810750527702000652476465633238297512538608925972030316872158823130260906659465981934729198306252469472424535914076726747845797517748089272831633597631132952313620090903904268370441017226219172285709023572638383890447884280760649082273493913320649035727982003162751063145706848842676326722465966732319299595562163043053005169041981869355049653158376886049731366127892037768811841470659861295166220217453193043180946464783245126497265050743607255261211853135521865641120010866367664909358527691497321476306402652456000121865859890246536285005073719858498703360126126042077331594659458245535650588616805738693126031424379198358654760815481536296635521112309786695400747545281508000858791722304774390260037131394182096074425752127270884294092898786298983161622737726703054008670941927073073862016942148121857654493024786760823385609981800907175675031443444319457254456055364606839531548349407478864929679754410427167099162151479727000526048978400427129353349243608541439451633221010974781324202260094318367573853099907633242683805545877107230153456839106597495105519388884021944665308689808650406876047019251289939144162199310249998848805203364313868180835898156396679297635469476816773543617200088495186711394831729244130035659900476845726011862642027206406098006098573134621686249113363753782709315549557398395563742353928543271540706166448731791076937896433968109145693881597655462181816998056110051239925635729980713266664701902965515418611941480684205664960984978547538899010525834543088492512267321765525734423177493640276925774035871639565282271154908652396548024766675622933030680411118733032691907255004654101406422324605973578926515386742772289349048657497215970946101591331221932647184562414070980975179026531181016750222036685445452372146411047333601701442412628098916800890038465799684717520974869554710980902803528448897072307568572841495648855021990758193066590318387498508938217940534765341884109280917506101263243011333704404051770138722971502926626087349055096234024500930376909443370024299454191241683785529235089121581937784897855093734667332077494168722384305116343009739200847904173243831454433411848888233414090591960287102040095479115035631738683758236559732552616724506178980218266019703566613333712356376395325339108750990621873809767841955009084291995522400247286157581837551502872834419410241717219303102842009384115341446285861780260228998829671942962532090343719145387869218544744301661598925321534910006296097051689224983020279555937573475805101315327581819336511862663706879302045556793009215070201510709028019486880790383263011411346378298766741977197846605290787004863297207504808081883812995123441466637970588272975381183811784723984964374239417720927377375005644605087972504959751874538244351405644952949358224700332885198241781072648892478765152986082056973254591628985921256294342406917216856240348775456163273299858064416901682797506210455827058572430837062864081091943077426769967647979912965486520857568514211805096081512101010338874207819007403866164210102152171551471827170860301036532154085350948796573223968789180777341358488975409239439226241216825873861232282985431654389710172072712640332156384894920089958997794347050655629507445838164929948998680714962086646551157575986573132355460865867490341352951016255482692258131754141444633974791033880765775640796984339202101120991682236561775625470175668192715851710354960953948135144197272393002423565614101421272690044547431586576917595148019719309123817441775813321698519336070209093278793914179122129208600229404687076470927816668306652335243998003284566635918871691006784893459856395371385572366475354005718042643630514633245494287655096972574465516501084071215758617528246601266888673081072732350996032749876827799350740333572756893214825568320102992577666750653359297058965074781957682735438886697428394842348430836739481863087446334718801479307894015008762732435076373400782433502536770606314900106262764793808031741117177142722688110038845384255729087184765001908591494662692066753988549742363609854014670454502707608206682210251861916071914928716791401060343827969747267643713797918278389801833619056090432946231750657376764402203928507700899439761639230417340599044828224147841119717465633300612405812755158948697347361210857581741846738599691801572697938018797189256028742156138008325683956637866001139593101656717124415369606433952778699937777905899131952265058166812577152888140981670143290480581672686095199486471798982641470590306592328844911958673627461789889403792796054642373477718741342279879107351269189085911739640329979824857685891141674412843849228556055263037957445784143035635214161505286035638234757333279268087308203456656995881600942661207211547119789853072898077966167484842020793700956666828182630272533361961525411660997773696150002364794380004684443360013964144658722885152713028631455509379240155584737288673157129447161109351337901984897432319048545702379951479433461587000564314298802690385080029661116721740519711940999418249637484999445154247306681557774236738737707107167438695555379708135119814124148212859693261014561924926180686571614488996229351651798335225362302763903303613419982745851190600614747203582784741001301594083784205413845407806392688991620553380538394818951258377994761459066578750933328610795160684705131975043197823351038357499785394969711003837973250308614590939631817963202550582288001481920562436807741187880231122252811795501044326253631353250616517848448147310128546837327828059863880899418601665990532801098099934350379083729550443327907009711776222604704584666488033237790081284780170442733209175344965878231301926604757454341664544776245491220106670238903603064900388227504379388944225060152067467647630135756325295923418484274698120975286632258298022790740391211506804306106081750248416749953206270491835717429822379110531289178686747009365942433350959833367274530697489630158744656524993487948292611468785311893869551788485414177792706859118145947346984778947973100929678481629403513074941202574063642943923026225656157785083908541082643634694399236207693805475085430711075778393128465852120601040192843028085017758812184897280776649109531476891954048461066241676363093706781804284817539264990683479320814945155291427988740142962301685429543558038565117851510835504093805661132700488988763911429222601758340750486146074110885222561104955900110875355372158954140990664519802933920527099512419200398312642339123296543884235852006740390463900753105254372405345278286009957411585749535013097156942770851880862514352823112883697767147603703694880900136590543183216004431252768159404643669606887509696266308045124045616638605538167991635451394515935477568949190539899615829795452438476366653386421991302315975852296801963941001482961699768370038879495181462063703223652083790567678536431547605758830452575642201253664055955164512928672530169340052715736698515329543227330184400686331379717670745329600807976015958094246011715431038987004801957650515437073849762390398501332793030212468871107523323556844847472492824975355896247624001486035234837149457416426562057272182467080992726488801435944894095218927865659374909714687203641274648996315623019662420003778960824033539801794385853263380533992291387695570369642944618488008129004498892946999496733661672846871127682267608996658268261897121063411898620870525461230995227810513450850838767562116357791883246709430303006648131993009839139161272446458580877250633110971622684988144201569287659008117253479146498074335141929504978782276701498579855541595870397347960489458922797153339320672428129056755632977884141917757120730437357380454748299825353392442019598813625203398101091442114809889519970852489127767524108556933737806730275041927377700714667620074822166496294434828088398537238272097933822687614638230761568496055385925514646135904335887021436198780716309379367420505302582195564189972721777671567260608086238967137242150523605107713990936541757919630826989894598423014694866685597141058317794228947406251993023942056072664942446251053435129118560872421222266211414008783556162294935786693663652975802267739765457320905517372574641162252865556518918093167215971508485690715565472646023017167025836136927792317605978783187492807555545955233024955852981491726728440001240213853426661994454089427816204254057849205636017864207462201294724228488906565151621776898228993543393694658446659537956405455817576384445652902213593043052704826249115874010452650990585079530115965330344915839527942311669746891263632009087416286528890734009048409055035753700429110093055314573843864420906089905196398729727271131151783321698500682354467240049695243054365261638559490411200176916186449796719211557468672100032923509228379929129366933944459284848252952722302784887290146687772536251215172396853305133605629788347971290391311315561987027088456762550887267695126145974885260018648748189091804587934499408549573040192655773778519907729000188028485724674658617028165178027997064902297841638400984132235993391461484943359276747411683007944106585685868089049034267813409211934967420222139638045194551001487873111587811202708143658663120654669171893079813253920950192470134216981830124418507668110997336508060171059922340714933896555268569641619966259642990338214968781214328146437963793302508887963299358637220574633981507331786600701323531665170660213810126449706508764335721402235709753247404849124048854241569964606596649441458470940835345129072961547648604645928817965942486793493337530925377387695832358554633569993348390921969093976820525925010205232824798186845136369888686082150289289377964225676066318367125966525516202129742030488098856186908911779530119961996809250319868646315092833559590534166302657825650879241026793607602122698970599061137677082854695071557457733243432582157703854343587545616676851294379221941725624250080395178452400787314893351139381538748743803926960362302021394820535730176314281359124807706153440917761055086424094172327593006113902734853145364741350216419172612589265598043102507456888643258449545977990798333726701349189817229426253289208145369891233544506409710474571934923962999339115636693176382882766129238075339769574431818044321846357986634029983911142797557208267212092267138405531358751640696952843312063141764930461563397902891220505337906490848037135103432172122234480950212333975673862630703194565450177879829358130908145808507695788806369687592036682765374785574790565475114531203415516200034124569211947164141376763889167385723187732559440927423697687414184034257105823847609392181071292101312066918998197171794687612938754667237307283087315351233701137999712208472276818675568188178375899101631538717921157399039068535326158521523388882018831667242316419520230596730750355061915710727924062006581178267097935900161331772732339696314579632801662418735262360098906972726770965504442723955446781647898004116601170693614646883214804670137803640892125154077784290448343716276228699875739363950502757838533617535218603385897957990883894428932932216874825336974896101707967438238334049868172547441203068280751869872859396683024698257371186565855191337569242717009630212643446384186394193961858259089072312899847699784389879067802606336093065125713822701343377135161440105401542920530184561884126580553182701180638709045106140330886427337236011406108184136591895567340484765453414725174091784707556627566734029650608398370119498745437183371790656668164538908217822428205545238867524706855822451318669193914522069443134522155470186937011571638156007544262170699544392096120567022425497332995667744944775988297554719140524631699430925343055467906111873540525890460104488925175234115101451185228527762731086669577273770756233864736714328341156590860537691990969653099698892444073822705448046054541795877104996813973801230085115422418424070932670204479604228313162518924560926987096078893385030281882420391695608397652215297850285883174132450403157752801311805535779266242127949711831722901370981243046681086275117363147016142493786107568160764198019805816779869650797150984351648957357911334416214223699285320289903142752508070407155015733996987378243039758710837782268503006148882173941690256595900565100487510191585578585673046327813854041441386077793647401465070550425272143298405131408066227190793082304802834442488214170734018286893608788249915655885749170742333389213291072558537017964478110404110986117042731146087063050759918315301142565664498454925642974021992444054027172796298434089258209527271203598444231459965838102182016993012194243294870274559267796031855236998734022745709359566364949949041886169318142941080864971960438030075705147410408291403226673908114313636184094642687744420684519403307373009902043252409152748258604154638096547048662311161020025922666604359409974806077162470732259572179010577057421113650238607962228612339270662600403479834946610008964292080752563530916187203114865752093114494834687445941139645632449249973173359299839526051926834416833567920415294684200747226940821151563555051905920726063449695482122476694251947949857620400272431901287679027540329205092105818289815826258656159715803536343439950271095472127430683460533788040148885727611524469846053216760517463580505411740282945114056531713026763874588083246725919975295496630704237264467661586773953565199577583046593140748662335288312505357059429720267477173933388782316246693587174679338107388322418021686650985796982656340170945816178803847044514737007249913693980436892908752510718373386347448043870670097775122174917923813529661003265522585366756397769731519788629702507845296076426284761524000511721184892607815500166304719821261369826971489022727274226464478808800284538168028560916484906564486637296073488700796721929601009672499922653940163768169682071993598020202126412255570335213849944999519529557831772008682432347287128392434005816848236579847573875762036316024854359603483838086681005107526397652814548069003016383546771054724242962690792946855880209060801274707076232479178094067479117513546524393455691728947182691684288291587313551284737016213104781966658543106840973329427186426678560838340757764641408259598002797097550136857660926790796033513216885248807677005882959430275826488070160413566824077233858229102671138554789314619138435622125784076458060177991472254497821739126844132100815875548941008841502469066701410301473063294497011120493204180263921399209030572575000695509893591492918813582947590393640030852413841318523912691445312417061151590077762831869708045923072587812638184472508008008342804590130249743495132717681545620245803903601763712368035650285917614113509758892178494621303245305188594075227591650517321690017903105174775243859498807747908586481267048971656094236550585309304307255532335888402427206652214940941226550904037107084377382719588598137568224364620218758573522845851484033524190625117984762987061825339484612837703711319499690933253266322103651022515972432563548868665499966555236171994260673708699622696198046414583704466317598068063014401809142605861909024134899748113555743848554649312733042655039837872498707975576194889062360611986119558641098758029077643450061647943697811661307672726287259413577315818213308833929276666288529307180325565341253571154486329475283355420449905566614816682266208485554630536147536900289341549375250525178445442930623700981706010804661230654426763303638274794022490686040364482721919721247611170191375306566674657067162662872998011658048941003485428974192004242072810568336417643694178320106263695101400770897522538492274096536774335965421176145903187174262140674983349102611598488268534158556202367024700968300934395970189283733664991593985775289431068186451590144937733737996145446041791876390792142110281975147839874652032487607600045723154116360508942498227374619279904489882462359061857681228528501830584378744264709662222096314319835253359474518300584980628901053204552813620785992307176544606887653058024207279956146885115899688312979468496937579939532269744992491973283374773586147159327810904244268804978102537995265255728899898338838405609364489537802294501372993179921361158954846729903526823546406218347970043059114725954618556374027030390754328331712705082313530228246495727846986012403156955001238580863897547581322405199452747427318139768490916097381674939796390320479217103477035455262570216258677633198481760300480240741367297960145098369632341572870135740892431920356558615197066730241971885650673034533281454070383366278098052677600576358193411399586553190654443069003917587689294375919531446884642320960553003015274084410252640789625768647540407724865151309074392473117596335080171120790654477708649598667124747012239020600573931534843148276424766994635799624761561238438949048356994011538591760847800258445838330977605443922088043307267633982400924814449838905868871979971990531020296179923167127729409325670122661079654654433229859839657901240382692943585375508823634449652754340456985048332329819273202975724543217780656308262124140688696662472506800503233667062732073842681676749834759576495439350548792990581781128255760920443402607154193208725428713357663581414123207583031360131894070140470150828544297520237262795296751125870846124152276453797124533244689153862352481319783987169679159428320719874604478205473275584717882241778003697727442883864871327779550016072697680668086488520932455750004824131259851688034323615888706254976629090218028551509970126594049551028776075740537681832832039816618058833874286764709662473603736541097286330733010197334659128441480257554442297561689897630431608023136122012358364620140440308164991277440162954806339645123265198517781869334149713059500563228151753778047130818946736634857077321620587054793216888271400074180690757087829757288921895980762036451605987411598385624771655175981046905946181094677718843413504955745099890979681702203246501332066295241933875131308156091923291608688347754725171161021746452965820962839882316862829363608733507801367654347012823997934234220721710203777066072276382196879490618386969970456010953532952559230095670543284061659332817864470181512845372175341791440148380460274237070139493455597115294886875161585392907274679725688021674913831980631972711837548637247309391297327754051074096457158089814890835186400130670846814418295464096028719104809510821885581578284111892938990973248379396830785408103474171168706164325519840605092863453219127526799535848540317763931899827337397304867170500266826052601663225695833884063355741273243679613245245474894476470153070238855999367378085106578568029887739460385818130935097057303357446489517728297355888891922900749021623168421170862573490517735980886400372885599452785822632837338749660434077153486733324010322516091871038747584146831410661047790682344305807079954918720597469922982966895807910736942524965808405135785616084316910427993420324252011945898338767645422402867830806803143321862216248809185003644076459357015303770387223376794043111683200353348851203451293980743018424975772645718738610326742589652375704095534521654284711372739208235306810369078923186714307765059583996214384312262037016668795291355798697414299509256432724160006886659255827741219529752863008882884514195848359258150363833995487134527577883476850444539141939597610100128840226807352787408329825587335557463105978706221125827919466430075736423063172724322203808501709286170756158069662619137006015040947713817049420927105056367870603247623133004767017852947254259827657676950330610114233849346425154807127670830872291191637630283909423379079834536869955020411634531782940930481527717619329859873492519409035452760180266430021325823896093980651056425760838225749825173866730656382927654750501313071636190047013178504536676897831834935231460381914632248824894801324529673005475442851601181086483514490067481365723853334371405423161226027395237472897943567553978751101405225668698484562206645442134228869531625745843523706027523940041362716566299321650784787099354585910159703633813255829993428742312577116251594339276714212490456076959489451180705741225383854099733845331408941055200107588821739929975751780362583621038233148569358161766720634762947497462805518294563732175996144571834709112509682978323327765966059374301014844758047323089136851310777644235314806647114436477749575389782421924091697410752839965633972012737362629039168604967199871394733197742586757661967469372076684383932119218053802080445153479521368362723770897924769802356169603560329792210761247864171043001956766357029874055121503595499351632142843496957991426379959972395821107404938019644628007763581405694612738135052091303459672386562354401422228856190163125676265413170217762176078256818969393569854732036754199684757437781420702600165305228475549150919581741949200546070374383866891845694704969377434387203670520237341976625752566934883521709078668744560099282766548470606211363360090886514504736663222223530640951238232698397301672784680587960111035962765466907022933855638016325722630885941878761026248890171548246142482190936792462697759222025799237952525088035047017629062456026477872531564610487964978055964985596288879590453758451604148747055868114683779325014907526487926757131595569120187456713189865435334622646490148654899152881902596278228418945165229633159016609082127271326006430268398673343908180732523239615917598573789903962589336632349528073897641107113568270689754685975349463911976107446933191796356474529189203204787294450763449546813702493542842279949115623494234421256283312008226616702447855883614981498008870131220797907099119736421237531554144254838827319201756319923352978538457491906987037101317996067334411609009183701935286233436237846750910872112674386145820988227353663608561003653366833743073498192093661876743924492259347709738657085181374300387932638849203023086727492334815949378017559568453875890507431764515635916657510224962345116069419330387992899921283602144805743294014164695602650852324937904323653289911532337904787425119592041796133920402789273295606071101398143725813406773251643211381363708781222057402760854839691768784823772350592954374701328697507518531485346392546327114636118857457309022362723171566115280006046903666767757281415020214755436167897678428439708603871503293655323563292456305226385827817361859261977678924647051880223741563511372958347346051792928330319298071666776691901718615160535935612805915154368706955653837152437999648977849851324616988344093338269613418522718085315884943870417392717949488958391227863130333758497680591128827885821453824935113415791105731507453762163681617958131192392789645653337831698258751536172062595075128008872161527936198875427975178758593610963843995211998863126322435995876202835450985842731564606618751779690137492691533149282077401380980635104910105659311581204258010988389363572715698872116407989745311016720081778828943643026351467071954499253973442240693009523798311775047239941461034312996027687846373471467313555774537766306977055695983692995456416329909004241678208446422738241364999074094901839887206913231096259178398946611215918040800820472271185299545242934269076852156593268735013432511369590917077177299811603887420375713768628298141730253943130691875975681396821223010197591567064176722426363858019272721237831133378488454999876365024540833735106864662195362496411234986755540796159828442415459527655258010938500112612623466811230988083028375242305850084285958927693131579171190121316982041100118568059362938539210348407885201831568092266962755074619960335469916387544436019815412472363368371074089683647581131900796995277554444463111985588998137879002271042867092239629199716823830862314758658796338719753824633614373341214805796607504448400472971162469787580673229967246837344073330952232665302071435703821416621995497400460774676685866022297376585155713891601781622778154976006056087987353293020005031113025576272969603875512604582706317488609757138443259288636972670456617480319507712224999819116325326623143377364651374872347004877872034079847560542492071500368363661456665311201051574471980595076142070256690885900851518778955900976512316196797353623097830267139985866730236033304016601849706873143694181376838734847390549385972614770245326339971994764427296642010759587590845911891962554927574359812318240291705615049203257529375140765878429828971783718228506656163201282257407524997077873875591280364589681921864081976716552989195447625599703999737999992019243241489905094531336694976054305628999177513079669195985491373742718035064583522305382781927948965443633908604240985057430697348475280128995706226456832815171118175148923491398681577061728519257490382952611735828396059146758154636393269712027532592154897082798543009476074581190521953369368906610616292489274315753618842512665613017924566355206392373920415226448324189183317827442215657464394377132351677689640715889248699415873858587100783568222742365427186004174065752006977431345377563437536282050571918521731687548436277380919875460101382548894011698673325204593549429474748582947392067425680187072520130333105047007605254317985066403357080564475274910213843762365666888038850045903570754259202897524749096061733104807685871228499014085228464917755950167002042315644355752136115866274623119208981711065118149896504684698988792933191843553750498126358701877245970665525382720170100367109082546763392645141272852145753218692448708216720211566771084017465460378305643612646586760963307952946162812065983894947935465677026216833633407082785235508040308833024683887629273530151948295652336944830277642948243781477891461291637915454325495681891030931564434596525212241586916455283505167344217363935644463607121215873873473657264519792313030148029327279528584347231918360913468613127096395811159762188106474275129845719653259062891008967532492937298406484107995016927200511780173565375447724657777505597695691408436302635034100829785909598860931848741587084309604474423729989234601827884434584304390617491574460040643839488693123868521799302833109680558136104909704594018101597390506383918185961413323500264301826730198303104149003551870831073877325540106833552187430278559489119939851860463542401819815906534542682592231859308326650358916239712801176807214747598264219097949409728081488138757678957637032493219896826980928030031464749421976807898043304271508907427318021220373690388621551604768325463487505380650682179780285248253921887683361175983536283582222962930355786967539786096430151678505003946943166269439419153454715113919082615164486414997907278087875215892482907574455550207132301067014440445987455472048355247552878959820723963667532695173683218299748276196360950256224499328197515084996834282135827606932755940119069730324812847505245796117432755503163611358570689242823881955467324201760583257979779054531159690452328103206354400929987778095973149347057816738385465126870303694670613743860196926579642431363700424047184467800379721949119571670586671303742476248851764372670176538928503341034602253382822600566372752978252834084358823571636948278949773612958734896330634995405338170728406148293326037550929086028772091561994489462959123761160209604229429392959348790055727830497101098292729479880047310841200121619047823384353772830073983321803169430190752662933343253899358952707475603570241133979497234888376644067399882485941337251517276669997705900995418438466716068019141730950532993311055617563864479556796998600173678891598260292269265991022501327578694293303459622589792738464390170324210443437089964323927072276565493618506720925338388337621793599399113905733333277705203490824156072509303198257369108168163872279562552517429727522067215266933004887180989780863145734085006022656584452658317312635221418543732771359553557113444845972784994752138701711978363610961077860905929969870772151568064442496147221173424504371112633715817619361274541570936562474713209646491620865458130965671235336179859904269968173465847099872126216901929587133458860291217765853801763022484903558794113905593644278638737124100364504519691866933122856016646753384865735726691317891900164053020147682503684290658109503566910958707447453170139645861950906010316393880241056350611327569431746399552288274927102226612400685613835806009417838310027901579865708242748358877754680466556708704717948339014600237893451945499987394861718368333427673049383558502099029001527717512445368750308826782827687893732141331083985707163045459558559970598538118242359472493188820557885681389034962994849675516579230080251379439171510989731531102889136504662345995406432850995314571612110895639192088805699274234850164176476628356570154182967518185908864694553738883152082188265456613027471361091521244447856449667903892643397423458007880089277131272249364731900831843326189165571848309021366468853997633573350036924791604400282509583502571133721262180372374740369012269725077081218593947365770443180408694803139270071210701429936205386983361347529286373786263731976429174506331835797360800274556698633902469333699222509215905575151750602838556988572162584398413954113137069834611990248560215715733210959300854940211591823888243201856610545691914871797194643900957995881714780654603736398829829353666481709925234170821111648126586109010388098304031085043242289709047625244246840522451808687847270455611327861968325607608744477740131392033827695427260421723416674649115891002509461645394646472437050751482334385223205937861066773232953178253234767606307751419714867729652848305219107520764582225460219155097387837130912900842739560279789949162634480787190882145698296152900127309399604360989394754744834511085872657766029399946319181667313665437487326601889478353702338175821663595863330327049597540268280696072319194851306728862668192777327234685438356513942099435407943126367930888883698669616489878953280858452225741773001915799568222344270055213084958299292679911376353376388395527098589486073910996378965378334182283845538587356665388257154294838081775425013025180270299849474795806046652963958673985223231655200861672833278802227461140502739783501183385855963539850986933865191819246258701134225626475055325781001978567543617315952431314451245754221555582994330039632317728406189373454359842254982377004272809227670826050446639408963920095629681163278760572043071551330551855072709333498009341923696630579490714497615991112761191518811902181675843435325887112626466920273492143628349700194016232706324685119697301268735617801125898986258793489378514683723743104593735021147879755116340332521504807517984576154792946063078865585672795249082967469067034692519160564023606828817077720768009210162079140208617933239545688166794493957881831088467752793759747337610328867797955597021782155014876749194641278384201229405439425679355243004771808759675994133672604297508930297907360690071528956480995211325094297714601033826158483747650303925567823414656855353856466853932388281122599047194452747857850196194093195827348711798016867095617824388280427273872134143167696514309103575272715530974467674786781265429435733574441019106650663730702858814815710577813254335031626137460925746766509930329965780827992391571991383153617848436120673249109770327563921313743262733830713378584603268032430027875529953710324973047071075666078548461818361387107018153276080653489692082690555366255357412100808020276915563324461749434130398700089742156726288379283087348428443122303611363059162993525627495077305108301290831149637361461423118951588397239419760176518880401059272845279556347955406998101520650670752732610199044966273869342547287071394337278351475193579701661453210000470122635725820204934387657819010974611970030229130094051271231633944585852617243069466907784319606780033099353475809876995046673957331209748406922370772353673924663413541698992049278735878833346770577302372491618632639217219500884694913919016323023555301710515268412569841709542459313604772488867491120406284883590140443201675255699429545645324928249657927201736530214673909148198167256396178461709475654250979930412458607114022998295334686341551970848665621763758254209955706128148319778124649910332084382652534840714300867976266051585091694446773178792261024412479251309092172529794642896723478199144942722562978035454436524560460454152381642429771095034520578623756936263937409110169435291574407952852737403707133715483392749359387939780404692615868412220092166347095893217471206201148284934803008940970759043155846229376178208957082483137125804560626082720706296600236603179133145774079980699844955482074220580900035306279064031374042215447889001426970851108457578653240977914175631517248557500126466427313402492290505622399553154169029036906291344936424032788471724646346955466065661383840724898778126579642384268559743794963798176688164603314703494768120230041917466442846354254731031300428143801599838150719544916384907713597249232123823930374754207465206729733743972394446800142005370427263269408478222172660452087989934911099774589439641593615342099243315058099639163460843578301944891672010356531059868644996489055268832857933293629576337430535697918367640613484865670195741924688601650948043173554709416260750911550791599158231940040760223580552394083700001326634459786143050248535619726562429129370335639304681582415009860981225626405429498540651788153422557618009935266614708770197167736649955833483353014978225171702121476279886961662249440343605893709804249907207536218662886000251197667286751200678453226257310262412636175048036536360120940140953101454778278576310965985015427236343647686103182548778618436255691191307102342071134615614389389819160215383000701019133922634177122155619730205266210576349103250137889461524496225822719520629577578864484930033335408755991227758542289208859522288519963982796926866075877882673948912451272077264981793321279902791805891699179301894694647738022553123648524807934332806484076738948871113668908345760191144489979702454791719805848194574809495096477307215260766634224661696400490671719657282288352120066738006044505664743666533887914572176626692602717787341926022148952342956598708868878437553756264802100709720332238343616209927918991148777800625116224817986823916244902404143157374487651121768674251376404154760072680032612197732393086359632712560290302658696758391578641133682993907784888701226350522642248655407101756746305941961232305315694588343325419698357491999468673278809487144389719097357637203467083077135092166056549425468473195797401325243421484798808114217743597286659370890869134615680186881590362787983674724113235160802607988064848427563264633743773675904266321546381367753520191321494517971175801578905533064228634571735176710042026184547018222193267949892693880970780550384642750816768511625020219512499170788425925234837760042936950880612997756831315194571863195716437341383552658245681553584512823676075535465266324875084738419182385294262912202162908917130478202030049456121925038371246700080197383172567009677241719028728939754865469723825109574302676721364807245477026315460784041695627096843197347573780367941164984785149897797715725675364681618277196244700829221591785593432724047654384752655907784214581577489706893982333721019894407493412883362757580378663654061648708657444515602604948641248466179445468896762759333799397505966473200495418127817260517326155322310761244544383781708107255446538418633972740022004370225891918086128915770915697177404611827552529572058797315528130738163884164824033056578082617258981661713847985776584119823946669362658328848365297700676593696800360972879275874351762259365017535195967589351214593057257443717655296947336019873295404233341671024322135430456863373841043794152694591316382547663631129103725326784711191302282579643346702075473190647869078434173567720486778696303972192172928593392650445232898064986831131466960879546741849201931763457067314408074774327219609331197235553789240956286955164295191448753301253060756585587697897950185258985368146690322503588626045782420286843924706897611029820433600006931465680814721590869370983525434880696913955972640987894503976601456537213721000801822310642682597430346032357138185733161564537701734542642702573437013891034497798538788961110738533325333580789275741285997474493020453009849831392206044008897766916512538632652690755685140545283645865425246223263769513601778454895761297873961578169803792038923107435533167589657259632500711679144788846706314639302721523059817809758280468409644802325043042780335578810078959641910001369614457409026290251435609236325539797309337220991690627539179572484229151749098177210998783835716744880911438966526837393482603508833093797923771274410334904409279805363445601301515035541032137099056864985496298056247164366517177355733987015797708448206956394120132181314189078577282179713531759268112515294340056828111690446804656085717937314746787375869179446746567703549895230228015972372520757768644946912699290836259711964480600913143343287939833476383985418051009834560327439617304821916012630921597860244590959487463940626825497685559749719609100424075577352415743803431177276388948051994116185528840082895799445237415885461857460315274915329756634134088595305217722738180087789859540936172473135169030754508152330571092285527303471897174499771204842953092763113396241685053453406034572617738724100326183298552816737742878154169956596735305157514402847969239215929026497682153855172565256636478846786504210998992285465697265853070026251741461245099315136985451974744830557532172891622081913655961595474892846319229810633444894946454808141042130450671346581851451199273327939981034997012637500194025186325019175531523095056131528356852335821816126520193621108603404253614975530248878544472819040914032039416547555808666775627805419973750218036412246601461474494842294285522717845582953349366588760716379214528785401358464944548237857582864458584954369608530684600930516917773983912467313506241595176655694661534953582496304515785859220626520660885534225971108798841754311260882654372666410474137683607671034131387782776560002906183737840492544080394609469384751510027656917901997755314147574582027584672305545062302742030135674635474980175913409563849275211601780515239401614270260501844046204363845813560468769776067257002157327346576007080878405780163484068618557185203711404979768472577570407232414986766041803450488633207590283895467896380036978327025755580726191519553277175205302940416027861096661263012728617954473244424139994841945829409467731288856486216637814354249095865927945610616217488028719516832559191883749499607376248155415922237349012220230354012555015350337308538615907686665503199629291805253848917430879997076896794212012116048931273780410232080858144953163796781336453461507135939011664393391634321977273760290507173837417448904567107603777204049682271445323316922754470505012637309866180348961116405040699334770469832755126894385903751438102689801072581274898663268837164968744442773017399966230197646584296655722624098684806663879014771434915528792215499866135121141183995393318582581793600679653540416172777555116289169299661901050794717482482829689297674185899917442469878743998394601124321898532580728858401774457143610099227757811543106449785627852635074339706344031653111290578042330557312851609402465704725415859623450408660833677974761937598534628928971680100247709627037074562967783042197620803841792413786600562458238421006212979653330584611957257702179953717069548015287328642198436937230117760947564023292360739224385840537258468066927999476457575233773681756176966669268398162098962014910448375270954556474741376775175494294330239987635490611405727921955869813959116898351804426712346526604547481666320255018540575613102251350817520996816772808415525197845395018341985207784597435079422476225721003073442541057026783923706917668027351508708580928348121247116066727674681725152141858446823437584550171347522571085607225758282554922580784163357050216557449456475960849005575968668423326270426489778260076417113500717540284137202973851749480291082548611114144170722684986392673920500967838763466719948278475282592370502017288985049286450302617311202486971417816823985549850717176973101413907460426057632300824297299607364892483278076832806619125597323216113681175886314138850252852190817395932204305374462698636361358022706210024886291987749576715566040862624196901915483400801621170276887719372353759083636333934387456947911658723742324944284916642852401899378106360632514376668909174140994598858469105883953669004592123372342642745324665921071473454946694684484641974789639244026802945106611942004687841354010319104579154584718225085780632236341169316193917636013445082723946716946200329251222430285865609990773532490697301077828106729562680676895819289915569488611064064856732050368534083416520120800503554873078558831622995572505818361179006478222521051414165027123850359571122071402296317390859202065917961758460097379217626863783046104169628938142021440895201184645778589206059647709953435158192243902044966098636454784753287029721612107178474312507361259591419346019162097548453720287367396885613628214120712265008017051534746146942112834481408554421085860576256670720833420037655849825466459124002491697961261725278266985085778278041555422830937338737849628780750364005706201128507053365716959716733964599072473311079412255649175840174118827896393994528644715483023934642943558525213605056324117313512145127633563624012172435056519235585815463564923802601376476901187729794412149746802139459395158633716095027056150292192135946502480736311638272186123275709507503141784072415759504645450491555152214861202690629903758651661259384186424825503132197136395544130748149025934379286283087807166651378385702142853446786604036583607293470054763185537125028205624441740749555750670170369851718449368868057053012860648404043960926440576519254660104280218469101244897273825130937456246684959853295750131366082491659385833910252487011047197985724926934268177269865170304253039605783115505783042291938980173050719708557704757313108861361753662749752373730036098287815791434601811512585931526768872598645249597181007470450396025306875370049445391169648530564217395470288372776622545225691757782391451894338833391520365456304538382095699392483296964025179284776189818032608819276086624989767502158261840092298894640339107417579945178371732385106818319565570228354006836505109465508755185769492932737639596827336990803783157113862960160278337592317087496093204271053089124221737228090079107263767696946947117684065490565047311699242690708917939856351357606778546309428245729422149046621097936636406520396436331849383826668687171231398244282485112872195224790554557353571011433099786274934738509593561771896850392413163274150420734536912949814529128140162847651166114940856504070584067642908707858217880226730454617506569632104102352022215506027310586301572999120915981992377998403588623599026583738915545155281448393595549445171011943984126534932376157238928055709756020364173665629048857325287744402424038910838809249096823829175417669102112696497555480261888121756140503828648449379525183032489298673372010454022164900712216185498234102329326165130994122949973205382616660290343395228392284700479081291283622779558905314989985145899558882498817837152090345572236994851114122462591790961215690635767227207650179855599176452073865653135832734823386805801490037565947514247439122885314137772732637717694006132570508427479843919312102018580502226714605486560905203505568837879595698633521241545784859232667561018889445896396719970945454916065583177605233730386985339948245807566456403136356661685634908626389263612092579355624432009831229831835909978930114551657776904563312344970399473694381986699276951225952649035275040268662895700723730739000205854695174569437178578951088526745191874501833414715795883621603863578400528715160191339064573610229387633005413679012440913826951145973961309391862368593991094051590834191549627297377735302673774723499256344494827334411166692939748399584610391276207386346266300942554034393172866206841984352882537413529422633543256982995574939937729177204738556324054059700976302142820539126659138154463114073775411181828220512703092098341713585086962580149869963971190677496219651160486882168274061931297903528324040450016277536473687982749014700298884322892036705943224069815544860084695825831345436442285266577860283900448989160577867076709711880712549771484905686330476648537511918575639017948301136140367425989884249578043218232765461390401329350683669231708899235501411029935355367007036145929914801965607997268837905784215666880010036030289040513435137689915402574042238420444184020854134807329832690876113477345294501937808790480380318459672465712054697229147957458188034348304207815772999999179414366480601046899126509429079839496412120880464153403321520392103942380060345647424316184998315237195971481710806145343454392261847770339296424879460062521246511073533976477474245847928822912412654494995849984739707765969976714313853975526210512057810560445125857687394350621621143416198878686663301791877991028213513979142115651956363003235660774298103177681976830794966296491851850808420099902538225387496923339716039117115901261256582606788549323823329706089111821004366402344811359772530634872294589881239465851725812880593803729134395926021009312274189398907789014308127258976700564227797718692612814929994048092623622519243907120428653050300798736537454007341373662658685445528070398284098297446338596673883946713758258118138414219951519310673914184024394807481232627999190522839357932623976347095424275391711187609602326484665469380038526990939175922629608945834192873750137789219167738624297258190855099392232676624994384939676908311833155832299853973599204106153789767792995304569018676947097015769668932991194464096611304497451959024250775315230697227136702861229803154207057515332859777106327392915439107384232124191079819929285884341412591981469494415978811291053787136412915210295469083315435386760420078580869932039723252724236544319566679758232971030497050277263196960726634390200065534713795431935538937827164492685239616045509851322432947727007491670232042790871561992542349760665085040072962562871295850019515764649649838978264361640033586070521914808674538406223743199079614296737788068631200721293098519404309066052809075089600230085573047671962847363919558614157375151951533444799922887377114516072102387410540134842768430452970884054372757947190218780164442716867986528191427242651758390172268793645327056401629006049602805834127487314936821064951871046870060013356308876763440839062835225178069072761362341277993213843721940248593689263911949409418882258492870327402588476757038544834777702089141198432448559193406373963324827068209035151263016143260155952899147987859594070003437638423109839390042279517627452375834759521742973891007200687395167160867405825540682198869745223128129881401559426415689374992612466372417956850534420524256990611405400043835799975283830077545706692301768200795443386493020299870655025610884707446134768284405800217723823858176057103641646848318656014860571971111682401260094270492885404337617084582853789999099655385093509062975585149837694382143990311696855113496568135577410327976155082277211474557219183593157555110962592246225695536953409449327454278488204115534309457692975447183819990214149310853832818523060439295214083173116263113565394781137581628916976973991368894038482752898474000939403526088771957051973186008754864099650135237899572611110895452114425441676570606414601283478230734729164905460372988718214398399725317370556315928240192501118278551542758983142232855213909107014681960027787169404378292698580033890685030689672904537862009384237621943747532203909983713236778064514124251964002813340178347225239532811853256462386508682749447829227769480148320484676388118389235161660203735665449014478401276913791603979703771574083033648646817468555045712937304457057380271429845131052374411886303265560989012000739261827915131641453659097625717625533198509777595460134210554241101839694464135857746264972684259951564424802060465424549930499877364440065090494001007155541890273772498030577768504649018583754655230896425868481691765730455935298966087148610513622067954219440470318899055283603396274615481253953852895307248308083012542846779161869535644143560258763696576560864562111896172019371807651943605866428316662182794312471663701495668473865921602232542362818902731443748594051962704295248079793627132635922796652799057031586008107994754136332035201178974010531518092027626274944041201502238332423591252356450251160074768827725846444993557158516700245788110336013858062974215053196223464136842768438561803751679465157765865040341971956347920331282002169416270757398795869145514650400500706857765150553468971827823468231749701505657050697748081650860849502478397474525955907116665445757286305696415880644471062579668934170132314006446341990573563665434684664835138431708037312860172461970349122105867589003257527088577763876513594539347088045091287350106834617728735614344481654250269123993112904062145699374101523655776616895703798644045867177059165044959963634732032083272173448184910658383078642065050003082743762266317969557618239386034470515566254624001199491294550973651744004093645486902229718800761342939042588117809742808065630670274170960859889633377443710815101909610001062132381094388972780316905097675289001427606284952423103969355569450459445604669800313182428508388913461825228058809484314330404215952665160115016822028196777810220966280184337973273641838573522088913923862763858328400844077406769125782944393113393851019952719028685877684420659789513686324248026327765034618402111952232452234931782225256234587700092190472239757009228950542439124392815204945298557510699372010048060138292527112987964978096588806078213620721058314719072269460902989282915586105029660035350356339586186781985626770208482072069910255373836845553753009866520483641671790284396248821258286715319432227688951532147025022018733850253541928301951757875093461055321960221308898536764173777315356683832757562321526272859876846020198179392971509481714236665713623791186293161356756636240070774396708719315977027615359797224092897387468195392820212428007581081066794423908326995907198837015556612473691698861473513384022663235156358891040463835289235072852266018194277774272434927027517452348701936374778237294374854342003210791224376293006527087959986625720556514186437029113474955136205612187130831266114025104539155260304188642576211773048270278825477097655314502984505605595904015555794818569975180074903966318266019217796012799872847658377390275201778734051751996102340818192670328794470939888372042753167446700376082564597675583588925022074470887248859477462003014154334246917743615446524666468417892614386056898284327269138715423462506195267275455871474799362801269169985782711314856399754704182938305167283027587277361709773549461218036873688664979017718264235853568483560887598346533639798892382874006120118006738638991427576050187208640359114603233301347506443502130698521049446448824391163463829171745465791108805061148732777979621042136037185136136135219268578577624839498986714926521700491675400122509830990636285274576922661450502303384230452023173804016215066675392857820811430424094832282020305141284278552028719471849640769766862134200329090701361124800036937489328407936564991396182379521843136430765693159652355706273330883505954220881890320206588992101136244013831802825868250293799034131884013140426117774475490067065392768920276848687904598179285858890319245035136102436715810215870137031649889087780177294238536934083092503864870917025415397873585321594393309168235551518955653888031767941913698578025522283184540941473325566980731640530402299798854829693442195449651863310628322632497381051555422512982783545308588542281799027587073221445293943777863794177439868565413892498945431450114125424996507063779279119417227321040346945421154032435649590840886536995864140255218017688419650428246074432069879246559513350260530815368018674400294018273204811122141105773506804881637081723966190000297169731379428624020973953804980300866333634933977867865916920641541307274024488666827139740065016282232234439078209452944503456689633226701697221072621367813879271611300228990288092948808051395698345100772189515580070528048465738271194006073163032095761266045340685691809733603030888077914452075630124569930201281018175459666479890778864428321124198787814260501629067163875086371884688464787154376849595381372226506333965230569441630444665872891035780814812221869027125843645706603121140156906207088575113942655126856577690992704242904157958469733902157322819741777734974707827088788638274273383817097999230682790739358140789309182997395377195116141326277680265142023963027257959267509021956074371889569766021810355333408150630141308730705351398255676263825052908869333806732113589927401123490572863658120467876743947525413910437415667512383984465414958507299071155520459157530523731630285607787527619243288887784768914525911212146400050722950682196891075708785116350956207582546203683829360443454910987741063827589240266258956950239355107883606146812224924740793843864674688799531122130331278785637986107761246039361337098970514326610309656171450261680523632222110859165446977025597186782365284384059543338022576001499609362614706113511840405783136730063916711400835513822144673264062323699705698944043806850042006823884114354237839349615100901504920426785552216397618869125023458122107062771703747689923977802496681913635289335484172526873802759404295314001784477100803440746828728432116456355993318871115474875903546687166088543578442354900515895388262678934936328572466479445699896393810167715165452977645952832187794830761713114446449705698162759691360543749095799741152484876201518229143020831813900923352627416816070722285616884446701929997155822853494673724800764362189042612143117592849017134234608432855818773461927897453981135776225608012858947534000106510764512398819812612800178706979808192175288226402189021556603963941092592105929474126572977025655270338035608330737870987983673218284441936110742448540398564572860958936167283769532306834772674264633186141566200369257110923221667981607826834858299563179975270551357109795256419309948313373238826403242334506896826883230762553261192598180120265230128764632092096368095445384441054391857229779361649978840003960634259054690858479142629224958355755143293183352107267895773852384834089924775666052582470665732771849858128377879101825549436874328747174201896539726326318808937830268489516684667243073575172532549799251181958343480519859059769927398030573593039747024854754281576214995932246488302948778350442889557134882435819342353074208389207098000347145664782179092616182589755982574319118800497325932700854347985895379720169023324912922920001093231126654785101511284258551813392602227622015781648840079481895932572848087907808105536221323019033137154916196698774178462990468847784206602253399770149118878832415911737450816492732768724344461138015058538784844732187569471702126979350355406885846225798101370296350119232170702670270312842245220281518793828609688711803983543923440215033217163155533259073391171984903621779757143080171319701013170064261655309852624911344523946684181462066955861476696793363333394124867412990101847600023655721079384889585546306883961612106218623105213430918484939793812707998034713413871961030304357349479148083130385981641371577376430070362260597616462759523604305572616566212665459441473102161605912327875715988290987519336457796810716698309903779157707515810907678250656070428069785428679896226679166614282314180370673525580208078821428270098904780167827283768646518500954287430640650529572119512048852954004449946011948398907471627088866084368368283094923806574556741501871171672446813783856731911862683019462635693123331545792409255616544318987013374619293592127640818349156738151761784649914986181549790004133871321530860566984765346811443362647734292148634595857561294380356598527274251136796176707025231582798105358978541104111472291985129931220964559552514120547931101602152578085467376435777712687984254598809469627162278403402715161474619771051956965324933834445610252554304822706919438027354419614501499125246046364745361380613291798087439451296157926723235876624988915208842302216029882981087244296614750877349726995381584505868924193259981561878183977715252471689851800010754018367700523415927736529185719654255650375439056675714737168378724824961793273711659869921703915130537111033641855491006680752979051451242110732823940946621145847300395552597697447256560229503870656336131329282906919038509381216236647105761379282281804461205128987696278911902099591105825120207878232229525298169405952121621500082748723922965420123983634701299544312602046226923298118540155171027867691663629866415542957219522804180997777735662512484455262261141322831595284824088293088460504844050659649218772742013794912501281369728850534512160668383352618715268838094272361424285048923215842418399664117228372002960435369205205650614303166101493660181366308464590032549350691927565599131387880082570797503390502498641020136922138941622716977748334935811139493431886202473638963119102641869529698583850547899406780430972765932633004067277320201868865680962293187525012599370056485343600879884745025577355950126778178661429505881647530252858562948327008307631199586710454027644395759947856128249775799670425259032923624200057812443276252084777731808562486962621424869802313388752753184749463784957598625589962282896421744394629152169055459219965763272496843860824493427947494760374647204820047290896071854912955408572189744822702200966285950923406783604319178302682890462041236387436204694039471635111881267533470737856069661433996149617225209748014528336567956271566058030652146960134970158223013285944383707767809052681362830328093505644862335180008571857295754425618431752649335617538937030183343163062755846792528276676460162536568907620732182920988185227306899356532832510245414228221358086551926275882758342123464704178792707593144348964935461925117708830578417196022756248105521576480562935486645934010577329290701921233202738912647776660027935106786602076237587840454251077635186547048085868336149627122487881146002203005053053467111974757843806679786832127490907913641159993297478594665065822140459332799046141497677970221075174312507100277476684247699300154502078759052472933309388677973726368512584546296844618301207010262911919527490507055632799118843386856690278990265622328270548946307376057714844698692648253823394422191338190724913234658472976370113042092958139048417955100075417886185135019413480902359958016376223734896141114193211386112188726253839507401274853089657587677376545662703189869055662216727350773394129896549031849822532607863260600770729654823538927031937857960405330768930661218809833756374341970916480836420613316863961279914968667122913538309072735603486440904901355014173220581127716629194613882429399614528471092092519158102503830771693218201517624559371424769730568790931109698643480598170766667710284962989151798707243019255354249970749110587347239769659776715454962166368176976495949352745734469837484593449289943187142747014947697925520574197556636548162905948354152641245696281439983344903015158992812976697523291030493463751395186148733915503353827985642648727166294971869200008741120379889800365174143249138840865184780678680367532866002439735138356966280730550684312430484442789004214037381365766699440382036492895638698167363959392456378577756697994381729637000050513710296352812948835193689238733518022762021797115394516835342170419227615519716597743390286447087152540148815062499373321963223966267911792792372610919260590705860599673953123376063865205353104952706659249863938770285231629162903338630053774255387838431247505152690138307166409658392245016558244901344849568508184088994809804092191373747499147517333599872447266064050708940061179759411862967953571849482008581770309703551200737980037455336834721804876702063969215270951519110448714390593692459404486384247778824755551318808948066438892862964131428150450733320202840888012864970586557464381053435820317698598890161752856165079190730874430854347123663704186873193640738150166118359735195557273809313260784960582808059103439497134740480635010023147270021342345124915695184275601196569351190396910120471462571936627965296321723434854868457211084661250552541860728957910544263067862290642817492254134445099040027715514590314019508308140540209146811294865530996719844136932637585623468877543212829354468989605192249361230713181839637639532583350291384246161872078769941200901680570160420903833225122197477104524272968459659296926568295846928178978093987886032474333860525504608887744811226753161148861738098010294252361153162203746002396076637277712338776277149187329915609058119342900473364958611785789690565269551513402612143594007612931847166913627248711283917126825642900195742360895359418347967714829253182031457524829637682326237577225853544495370616124855420476245789739797018435687486988554449144399032549752856745533847537038429950056871153067733426979409908745369683785456759078757412439369400871200120324102994698896211940882344369185273689225014677761153849632237693801749115260253508314871258642439446036401177203060577137185731197738904775701357103648850446482636912335721773396970954072926587266955855051843309337782116826095532680767036840875513497854972422402144224824000608360949564084306357362592467903357093210899013790095381265934458868613021234182162079497103820188779090150765119652452793944761723807779432343954945349456144437531663721738847389204908108771263181442561421672358510028234362908117460585811925645654589651429049203549481408992556212850360389708151284273786244435703433775631602472880976078667920299519049240788215204885460906461630187559841783012906259474675844524877278515170886328413283647362740798616094114931971580682534870569031134861323294352555820823347003336143375762483689591787146572369322431999274733235526194054942909742582106145716493969578133127016387771442557434080499960816883495356780289817742854552760816832020147482669744232271537601676118289169304463767410024128585025414729756946351856965346055054301882859353303434034727998341907314354554382421484777767108202648148255011271555937142763110624560168133124480546184602784161705619390138946035381288132153843341262442528397586776429154304604613044924035882701347665964588238400356470639742800291102255860313679145262951977471222669803370570474158487308217913559540040011133479279139333137217668460925168069800818712655909231365987515520940819984830733953996748776047918666670220337052498973555780558852790087629074217087835183325654054571629031534603555723833363964188924301322991555503693876018464905641039085480212903321302148201583478802723419258125133396804334153731505666466136154273176727759755002921858492302284805860795088366133748952694211994536015415358495738115612578908107459466564472953226032408233722735834343306102494269132139630657106602738451093977164050765758459342949319153206301585676493320320231939368320787910280924585480735344942984491666834875825977864174056488126438452155681174211420871502017817949213034864534881066686746970010121887435221763643794965552757620726125024604786982397049447536552283597539778132325249624913445413732903349268383289434777821841035280665257358330089196428334474245233477334441304543487320306014673916896723773670681360145529267241139108250270182888949982131079425580702477869980177832762906129945668802178006000874376688993928217120281455537385779268776887297684020746077006807674940477656700120654666096428621914865220365039233452682339800945299270923749249519186884213003062735287849147554873394188943211630562449233321492454456437607465914342382450780393556318723070991198236146414452685776002365240231296830263526591129156273432341423256713870705875867326950257812060840912491008436863076144060156439659100112170387001519397477679037483316192018576283847448878171522259091224912510864975289193694315750414906662496931006295384987317331601944965267350294346957441684314770907635592989680322105480420408597390486472355243982874300445454782637327661226464302134931312331956532149128381994935154709096425645516308268699495756959302644695448639717728640843660936094545889880022408883983209310803906841165565265525782898265287023497280204618392961626569193184091754680266485877989140391428287951566987197558185447404066660676563832754257926165771208864271674999098302181496113633534039549516473687776649183003468396201491718501456465338349783640349766269510242576096236733068146680774375856540665907593704771604352325974417442595618914615476332375364276062692231043328234992657166512365010610557829061387865932870005942806362273855026083122434505432404658977479092427404716327841681566648959040346011949411040895567423676338334074681916481912424531555224255989789643883482125697953681309554944988298366455030644036863101509670465943025157267341116851803145016715119508136774644098525918807625901332348826439299989702256373038615469078574195340952422353318261282701831246940401207772952865792167383436418331569124866234895722517468938817870716962265329193247506915487989221953127275425496135161523451881267350420578785084400011785898117195561641800234073234512997744259849855285199870120656066599521705965048366557360200676565993227674119713790348641093280343062400050515582334400232369449282153245195518418071054685693199911356994430133640380786467411179714647514870506504609438706923322323575971195753432706546689140729635406605354976787849497149198539647529496953829180302810523260196639505682212922794133906257105558414905113162152488230033250074556543723820191665784823795138300028312855123695172126836650977133073972355023815365768363884533642718058413015225282960777125766343531070469236802684295455093355989697135392070189265619278727120086469358821824249497483103678824856464378288275570246151655560220860166221777402206679253858210621363769527271711891623465601665350287490168091882435810318012707979662452072352786843732455769963428193743594313737841280083217736063777095219599776211141927408439562195588718848504529304217309192655392506740937198543828395296852046765347735460022074383316998586451468875750444140192533510530617078899307053462104778428479547090219990490304503877034606865061627489805717371526572356753971204615908840718784352932465320134904284629288585503969439407047392618940471694832579512202876775593724548512408748205772431117630105099802293660605342791065475065567181135008272068863475214625472618769117701487611971741110914851553513864218357537507961346628930396306351496913012136884233300608629376774115072701710888733227284242118803500133257526019899703522004172626524463511354975491685464452358878036027721863083068355989334102245968438151200892630898242128796391384254319987915588940270982020534445661748967700448726255724327569668404933475750840864554794892291717136137126447652520037017433773002083016244856402594334633208535889017861726706657343624154891628653703680949338618265926461057092701933610443665993359050843393687112356396501269859500917078063949049208547229351010376393207771366720145825441290467897407097455925147994669420969259326494593042055132433112424262805702363333152780625896511096582878059120019439380946484949647151377666575734912584547702716110532062958678545407811028922798356760132818794656006421955513353166463223817858679630557851389192391894160065383149733835587674185237312130644553583958690101134843776587735733009224793880838285948093029320445540943621788813512678838202759022868219049589564766085818501415842470163668639357436210669242101653017200999818165811641058937977662421352605098277785338670336584540829858471997016097080197508291084503868866474992267566520640844744456394262668418772925546731318548892967309514381110165367788447605429124919072457048711672568047592074716464075612754400251891801753065263240235218618364950054533864866976105082748785755967948833493424493625760897284214466928144528419936199987492149101757845269315312823305065145610921827897705249819428950819364932397169964546239396194071893334860030901779892871409444131932122799726534197191041062893462941693491885287767531245862770259148020957455372673525184440129400493059179623127938940896409678579127710334626299032967973024231523462808999299126714183388476276239612450634847209509842702326572979704327647626606244013702137298037432666051427177448779178166582916596886488794394477352442157707620115553163091363519729727444238164012059811470499247224434201955723835050500776017584350412281579872744418734796863283525124373654131567170322396357380963577483058136731374956422019538646648239446450046113545317490201469082207819579217009976831921781130420868594954944512547426712147360270102479338587404828742411482394416788170862365962998798923181864111377365160589089772615837749967306221622445744549594359768321148738731667858810391004476421305838233373502055139270065218801055398968701394526922671300468074069549402490264866858440793902427815236055408793190625167774990624920594963618911154634315124998164705398836414660219688910266318907099681308039579900426909837999881313111433968860123004823860152274874339627344771225178306297079177444866430157171287737268583045424193506894772663609749805476454569815493636057102728449178247551575427966998429008558815699865706018227994295700756366768384004170229235505183258841653481213875413650334927287026117180122031214774829585524458175276282471891420123938974440751346607754473599358411163992315241022494917847459521937222403164165710127534279638579881752368643355676209237589244958133683191578284103187826074095341850473076808775829760045558877888185588538055255453556309468968965428781931953494299614856415195472735599520104399042700755436491614801899903428038786097587755516550454348316658715561797305423811945642025595981338829139550748496421779953793141277087104204220956799280475932801039745354788253095417842924275533985156249304068395193929109520700840496395255663692970247744208609969752705068848625803035177577193537297954014515253906065852233058147190141377118968057741718813557367267897114141571401575039959778840750138637511635038472273914930188812742864088724842143293263290370914178803073353855006402434165292078475025942832019581111807624257672993377205055684042668738423460849074386979049174997643661357203283978570610598006888316508862362584651931524262161709688385532724535373136253230852751557255862398684180694197980607734238013454150617599866819783287168014927506474853239866092734455445337118665559384548503957460633402113959319035056286163089926799436095155684284532931729358839139553757939676219248550343623726492201901000724129257242227956007776366674246940430903441335119952415963135290222403127605203640293438708908878465204012994472325523447655375941836084796487087244507351838543183636557713312175411225946146876151190211873698930767832927439988849230661604492724310927876712076887267254619544295055755715286760994522278934341173642200289205143431933104210205529319427199094166194522324863051647245792746482053673504375176082995682623977355268300393569335574337685021624857300509730908634655683803297853322941736940808506086436005510692296055321974262066562176472940167436289888792553119252694619951769411863151053714987419795902448304981208087577397508185500460522741266849758364077758210462417272370280983912016939651913695327818111801628371876391469408847712538874132494886382846035765577065867799021560559933934132950087354892341933121555875971550709688179865030685217809838007823810426080859287130930476372310267422733113131589280926963358624796199054744175180167998151111277138914994248798927723845662599109485004563020551776299805914564821649396445825937414201794344140891499260163591663922765176859233211227648833361603982447577331455198310594831281623214977632025175354384179916472358968559830829693708119625880063321153454245936641410240399265572976103581290094520997542838270688202569409531666559426583001465799806719246966549858437154222588389487082913815862177023296205998029344121344502607572694301043609462427016726739307509972660410469336470254494026607764399891924220778355746669563538844844126577254326722131850680544711176535475949840585230069296256907270760284082807198888620421710739521715623768616511316758159304493981548212954944642482661180929542737875975800496721079997508297048837825770204545130093576654471551402019685416175146913604290469433660640063753428241733663923808483993727376075451909808864958954347705345936024845874611470316779673315471366222828841047557287984033674115067847814804465690850379098806267464024410523099197719238025686288881309223840142577324332051971589746757046901526408338239554158853116867522834461503825423752475667381519034444226104392873149239503054795659242506273914990816428859421548716483502139359044647051791839225304957435035849729349445867329353255388576074971738591584343244200881684413809732375513546320214695618942064619690000954368646826269156977048210889610812201488170233683631495460237314312214001425305485857792969335674299505259637235235535639367423466699175753518834937881633765538576674320745615727357914209336608969828647686028934893538425463872182055155739863744065633701854078191456219894525387343829812705923176413905708006785470109154739758282312855337479808150567828777112014617885247767815443469225939404389458008244932968254426526940202645047438729613967134030095148123442514565045691721748474872238591414660658605178890143022230601573378014996378016835410838758625333944296281241241310188941303509478547503769573967646665984034448306148641683626518880057333546065588285798037208948595943717028909208337762326270886910759645037045060812274640521532490189354183626470386269090628403462431115486051512817315827039249630774932257960688373481902058021636909554053661906382607876080261454140814243540122412693942082227284625219045984524673467961542403950616474104983463255185938748995405788178826029060230585008522017317053001005521787629866105500710618462909439685758524838408850884743177799758314840526300100563987079233050627750387615705933535376617008784983809237308907417588587701308380215609107277218064406724771864560769693112851836531735943830148520801038078484685189604025183296773402914328105185984339497815786661214875369944903352028328755451092392206272977469083267966376936130116009866256391908630953523250454472489828470750740612380439214823319463693755622502828971602894961406139648128043375622481131389842167299591409237316096751558760521402010336254982201645523377422620969607699282644179162381186231758904132799249308605148991142402958429255921350513755483790878112613666834648977536666001305951891943361504704030431225895225017758875804353255731010295581338205132262465791209638762296976412113428656028187814012392352952124788485348150665753436742739775224005402054414178123944628032504679705505719244295174008458836133461243201112331070311811526423040201176036558861385404727236584540792361548342209087963174811677724845870559307638190754262116896820062983538562751413615598915948699952534326972803310586243338677218666188901060072467948808308468344366493491554058151299793012126682195849037566882371055649547188830728628465312748135201371039901807297718368159589203146191476891822903807438428376125997583337229961960816193433825296802671886177486631340581366521438282335296379733333965791858786972041699547977039235028276711469728045680904128747163137538902271171770899359166720653047609746867990986648313889692516741328170635545856594116614079498398387085552481679914486786821406014603373391317993817154971907316566331303821366304439036039281907517179729015371444830039267931030006709046604531956110648671954185500593023739926766654755055780073720170242438939318870467920067393409607369879651749949525913459816211873696631585322650970438338711050135587210927640575060233739036592838090123121451294635570468934188170342695794878492483349838589511483197353833496413104802957039021131970508636656085606151590854235058381411102618535860751576217380837197481425709186940362342722144285674684063823498283690793772339573121596374959585582915675486710811816880855460389043693021730803586446097449658578876175808709759942804213373767890076784733521021553001059610668652588667378682732604561899361059502023209148945833987613254119689523436246847278997718991822425496465098465954510023887494336841750970736022770234894438139752331681560066498788247452058528956655866002979078352571634461820136625386968881359433239579824011562597617539320564801301046058710131569989886678720521501241124122381244609556291083922255214854304060946030288346896826867848184871403754726306839174783127541457959687207191618795563589176524950142538914012870651108237969059002212031827229181323271358440888135471503480433423576244389052672300986806169727923266626804286283214099555431058763973083374048530372583947502782850515920855069573056583232403101685971546844709150326726337921606525938278510143523230443856158494964763499607403697877966136286763260596943032149669933592219109189053938824328091921355525380612785253783715105024457786270017244124744898352744270359079392557489087222016068155361281469268988238348777814497927438405314065317392290608469866428257229632848424185545644847627534395021517294904708794069626697741358894722697932907691919963080540929965543030593008287423327013886781638962744843026783081912011288876857697215739821142372275471311065159463435359906665203179286623379558029164794567088827973714056742427057754758717205430837021598909385797146655434258598829495617126641965541491579433403960557222260416457263195257589987091950690668589183953347138810966869055655489331623031138790963899908456974531005373941760566002193963386092354196853962702049236067277884329481363358016726948582978795284916404491881558407214785167582708517052091405679605730372433676663739363969362807481771568939994337866330479228018270868663049689051856860699117476680969293065230298262860514790698229675159250058260572412916458685434193686116485094303273076159610206954909825901601743783309631268743992882897793221984186791204503043312065501080877951423941359786778986081347039669838292117048766567692667617141609374081383498055058220379504270092065889710665250835337436009082089778131378456810917429463504721883518043471482077463215149022314622504413643940012268022189293144996493243947232517086709305043490533332010308225887645177486998858372355135703542563749713391649985850129588945401111309669550255895545068319452261905641383518381666080590531784590257972752370233387783884110475091613574478709894436232002711863840012955024125038464186769218342784059784795893504493499769715371960410778542790869293909232851672050508710323389217319945159440661911487229967214921463347441510371151932797272548313938405534088087377329641974653586838947506027752887627366009923065993419765121470637624506877620560163212596125772907202960859128146132847453192395637548476161587519358273840747329950480080946059175485821664233391633496341458690243681841772594552288930045328087575984827651799395920267899954901899589069933960251902922745273767436812955739516660212397800094053625253204272977417895305688568145303970465970088722111136914388520513924625632704226683298576114152227488962424614200635180012170328854132574606852016583992424928258490576832515563032766981255328980513685660514540717808165724574370055344093735603603837753595393160695336199827467342497870806854872444587487859659527360065372328292879138464673379858954905114751373481978787871877475983106199283636909139239792743471834084084082165178970306289888957400845813076646163736176172317445901480431303787416989260206525352993746954675553095900447667602926573465284654871178095351586649480041342213301175907024285785583256195496736413586388259929370701769757388593755042659445744327573030616970948611134434728849559334076321202752663004322877199520437924028666729646227957331716729705254642367626965517512293886631897656751299758918096441454330126482173750040669822381597135842685199744028192729010255851445107056245098662478809899562148205134854728933299044952491928104849391438825757941176146680738693397660345768192817893129301030486098605612274225228876970915230572641711152289205793888940080880459493581211906154731454041072199755469097856807370097526670767197151312943068065824101247968775197330760716586434525782142471648082618877990636042555707760736122344152342743056277385149146174758110127300733645169260265505901427716753248371151064045211887275046121146597340698994264628239858029127918930352915334409407443784166660043379595524514284365769409897150746863463112076496194116986562865885761823220118995698416320509860857408310683730302671752723018832492721020766631988942202755777699272837681102758610709771746885427632448245519197959103723852358245537771972652732940501789589276676162609114617255340339233749249538046314220811083739868941098012563377458266622787719676047565978271244859589052379214532186791469442131758586971745997570272588893405176579383271653411371777992355852946116080594460843957672602914797337349067002855711820091258029755293985815027044507542155724316832344396165484657534575708944574967144555402716931888183537726017193579771838084540235831020715326515308426269165653354787251949974594688796492503712133334370615487009822941836078180580763941497124894480275189886552979522080781628758436688997683860574243846894161092368165847131815201063394602669445081336747209748099644458877255969173889253658294850721048460950928411700390351529744654267366159644262953808527856911816970632068262236478677112740784879686266665438273454458853067195653108234471126966968341510961292224562405580601034080570409978381804506687822412357958691402867096356608755666802667835020487048624392418056955416249654196037440488693378862120671923702538775177564307660809458350204479226878494432961682743709284358008003688686636543029418479522013459001780948804523112377699098722790565776573512866648942188265658163960571266286057869613510798790199953337254999664132735441293728503418281189478426237444829775056518687454041122377864682211826332894768135774422513351595300800003892772586017038319095096552710781060038832943870620416391391322434419489353167861651147905400897413150253197875078733391652585276437133364289814522555679317623606504507130496463138599810994964773973802425912281003651032370129565699358890001824056064668355841464821886906484891238487444608197786867631335972715239764177642206469563588115990504392625280957544629926379968214660842076755222357826450933196055057555367172345012693192299005673181816441211724647148767919245397573056039145954161255358677511029564424122823652019679503517692958464123415055324510520591066202256085992400725335287658713127644594981570186500942386984177658823829700023175285989158406806893068556384019416974157332249735201927853586482592297475573249012362572663598406930236472297106617914009675357398738511652596990023364710272854912645255460998640824467150410539722513211307949561436206414539271967523683344407500114220150660949030312254655279923443218756565337681650550726740542897565752197535214984449675167494768334471352195633806004485683705288091020197780675307815471584120740259454234234457786180010564219731768234601433587638437763192552466659091480155500119897667677041864839131298301152431411282297347601706488521740037604103741693911701413705799189109989841683878724339896378432298663237397644098866665256517959942790472115770637719439380049369000041821887048709851924492564174106883870368328170518129398525268225645480520548949595795376201681391606837615943962494627525160608407732016583059792761245550050730085058979991395750596276791953306996042238709038355940569756464101133233187109076763621456314443182834818469190123721671640484323883175724762942814071292881887582304094315338727562823496044692901178953514607621904114957898410826599998539910227485322986240606760196516103700976034014708815230378727092379897394612078754939660263350706695154735075320317847797220984716709919307465127312534349873020979500028739505129953818600432198426126433828653975357212250026702002621697392187413509743460800023066857741465300291186553531361439575758495606391836047075146200492143808315527754549287809408643293605826794670516820674918620432653343605742541689587310428916238883975059410174924911876413227874184331121442148928069130238976895030227993727294581685157732072707809159535999115523918635498089933418899474673276106208103525539152980113771245932553157459807691630467507610916484046386294424499126883890012722776663961521536129505264788296639439853504877805061018088150425713919792223208650319815571724802120419163094466758119215574498106460889323687880745153574640809475764439849133601821313822227298599966475342580902085470274941534563373611435103285932784595189220928503473309303773022586218139642513135211128384971567383982423605420630420011210507301289097599881035329321844868271866208733199983367754427947733267189609330936225716087474645211183893608022763826626232237224733648042273072012881289482269189400911303849274716092712916823763954228521900088058914086164602249923964295897295626457606897426591575630912321553657756117487608776910616664966658416066315851788091807098736430168602172970574056864243009352556137721558793546918120092981283429192597684805016474016232450922135687831506801777102882689984691110938288759127598243535070228256022141108204627108174821344839925484666376905144456135392501256712568024059682473208262312279227062755122731838079004932051893531781642322346205819362939605091549927260302817223445570690639015688927806865477691540400964871591556023837193279179151787368405747527178098664641120298886912543416514496143726961880160372635139235118623229259961419751248802155242988183759022829071738621978193964194570246350708713473928704922661556528259074435414787706403019159229258786253151022964030839999701187976504466438316216792275051866817025373459065456757265153234885145697583679471526168324048780371985994868928892390589559681908424002562792005698383202471688542223994376791992016473428887699719557626419444939700523179666189357397126254083603256847928116346055746672303072884266582303706097973164270469866812254241041728202966814084758148981767307161913831324028158852392619243273267506382063503736478957234453776017923075927080250682063779874313756116554375431410261885685752084772076912820710961502469882472436714594234453559083024952592470324022816077919718453293161705498393004297335813497219258704226842270960983864464551464043648099544823189130967812301830285469408100155081788755836902279659111333599173144901677466506537273065305211388568379670250236905010205904952883723621169071085238361182960448785807953355041000522761598735327501122236771652471471859497806510150296045907907020688218727168540893004705337853659670797095263819263803603702281913031717745996733670749920971562877115565717008192248601116730095178411187924045707470630904139863081224311545304898294293951459951440533494196305985441337872483695159936032417026762196275307343549358793513406905129627409053040515022436466286100891131001809229338313086797810215206384156279189442610730859086897023447179589575176455038425656729200907773387301253430492135895567555248738988389210497654721646031994048433400613359096491602139492771373762980234107341437114864509779721492774777453217883520374467760084973314146275861641816318126834908364831882811300798179742835775615601080003842207175534815950288958855761085704656975408408790093784929779465605541762273936589239934138715310743098303216737908660198180100592852789081362172227961850801357759276851624215377658538822092106974949198914161278137315092650693796610521335129203677264326829522196023639482070304559039350030964414824028667182977292798349340277197720026829867858881988294138451967513105341458288577577013764963554745179801834216347756250649329932706235040534060390226614515809818212460353600919452758410400026289177238524737919870086989193819058262256898429694324900585719163437175649410214144417674812968444095085697883182146829650777583741683180453293303853439537131537800629339624601703992873920791365518772990340822918370060510473856391507715327627842838834230967199775281774484716683602583872554276305262933731425021775310100331131221875723227925207340112055608208009502540653064228340700231240469368864145228922439408349052162743057460278456082480209013994179065975133783664630459935818523077339364207840982542261781741471549358459740827045318204847296710908097901977357041975101558254658621078809705728272248017220490314826677645484272917262521128124092748270053981792657798814318018763493720523753954113197189864736098916452621621952474730680725097886402415519120766217758932861001531834668063055930477385192185791128857240147692640130436437061249230471802128668680535631336554783308057463667245971159612118258268342996462517359235022359155135466723756377296091355391703767369206901120623222158761515704588456400217178617700608812786855921440729016966239250966910644690436267209954796876655690239041558996163888901941300410692961512444749397064598564609758711519487056417846358548731090536126745890879163726530794366446190997593035688152871510958426907125863531484524956218403860490905718836147011481764597825133085005143808561186957058941667814224629821519924726707953627181078083941009523033877831731307731143745729804161294156823134967695552706967928787649872448175953406925109545210309991832197381078767121026108001445202931113923996688038739110744482800174913102378082258850062567842849303267533849738951790253678304922434485289967726854506673796991935973231640453100299784769608975616245718998539287826114638814288406737447541236031529911367988622434577432859341514599958920826682796737223880328766824384248237980315221094077319733215123572826654470868832070570329782206193291157271538586726156300341085641889813393689625498153927405657571737876856824472989053416133266099659437371202509258362769925859167173163353285798524607736815752160886536234538927542414532345205564262437976754333494715705134983105482781193803975605715687897424870458993109115479372235425842306802492439585826610294077785779399962316885622012822245419198792746985769058315242684857966434356680299845983421414933415447553128636419422763743649491362124807419054808965312535209863754361884173697898197290793852154744659668928634314390713142572006950441471384600903545349101828896687251517468971631781900250787529762339496870136105246746666988173462565253192641756915662472593708692156100087284081624755133174849893928252386081388040270521127092986800676244243626550312563737965458946232322238869522284797885676340584910807711949392375632643187480637160519081517069102071897701191865266276602233744667879264302934047707908442325983717700822276092912087784364573313474487570759454733662723317589957967914339325073142464258514007879931536008074199507865603678918752830468347357397646841388521877304604263259466956371090592957281092234441032930589643257767726327800362015396853995674211560908758284248563758126536079510708058107300445076102870115652413239633097159489799842115152901565083798660717630696904011189997783273989268796505749572769591791880759042234467075847794788988371771684216534271001413218876554378333910774880783855688425553506975025896975694711492079050991824593276284720496280720879348791136881386466795960034012196001883621330828000470819346114632877962996719431681086460399889699598706390061105105431127951428394795029700546056823861387479281103733102313119218478824943987767013260659410144348087134443752913558667523975175542668313735271724291326355948302967146263063661062078885739204944994825120770151125015197110185312563493704174071816017763406991626077140789287697034136785884964441501774656892691415662578890827851736676480363198979249934908311912147982764389497237674722464334522102254397309555030105831993319200298657603830747800190718859264346636150040936108813629069159938329650518538234430772530289435473363169523476316244745419664263119386116009342056573194504382544564944288722393353266344380081865108951033410592837902082344959500082127989307495746955950844871453519511110540305907098367141144121169996113185830838259592084782788776733504308909978972673382364064795204811557049378641637739356550202206465606921258315292543253460234979821213331507613880944102313958288203025143978332712143085912432576321160659852765818488317518065433179896072437055719990419575819082412628604927919805506112802681455754667610243955197346006083065285719371047844216843877127437910119698332679074951403019564734835661924714108153653431445346902467346593250028929437696867004802281787883834773807700334479448089609398934463318965818389590594438682786782180024346764816010083501164587312715017203221004838352260530888975883244550248935409931311355290966274405397924935064344553721559676854930537794961428850282928869827562439851139126117775382582408154304292566576867607199263902929690459825472610781336914618128436462903213185068552440684026598938659426882762806555812734740639677701559324112323934332772732981131536900625134387562086688448248074665801682452462721311881661053092139083820546949808124128230263301048079986827863555887263033499733389977722487559632595252023937946246598958096400604067555077752878945525467976096909672445835760352822227293724116257617760073047955130946136114742105111170121626305618901992542405826424964524921057994922598520874090968159538883859069703893320860151934783818105246456990738178691853575090363034158075359181089435560695773194985675972666083857030306750361289462644698071394015307381916577612184216368053275914236231780482775512877508033068879797187509040695362717874159427670974711470606014332615191404172471097665322888510202085550657871715951383018037399547784658322045139678285584750138208001245584365113639519977795370300949098823562358203640870112265630140730085282009700421411374534604225760704783641871137846012151699793347789048462084803841544365376260526811630232094653646839861004967420806545485567307431243022737657305753216792188281062714533780701210726686632414883040858566480726591312984844138592418553477839743119244419658063335800561762069969256854447860730393804352751021158643687674193173778663143867772852412473033356681031783750044142179890383337049190672151229222792653633704976253513747586225825196667421767185970235038176257450025699227995220714160054167275150382529708086692849806063509260868788656211526904411120816228169635338228607389331582442993557546795264321279124645686438802230324479065332802099435614705209384068568180522245737352181612662970865685459264592929764779738979999237143380429682630400185443903379699965324453225618034285222717222732592505621311307096885976316059591731361915039417122184102984538971271028174175317945928487142878207213579166025641794476567605792199908866140460345876537397484579674950205749567795642327853057653077125583246537057713983107207995780308279246833119132494619689369949814157951070123455539184009619784348267539208399076584727002506896362605074813982075984739724191964671601989305150212269296465418265865677437333730561089013144362211285592756772659167372931602398576358924293408961468566187494639553957849689403362942814365855216953111602435154072457724270874821659793429719555038595701801143853905116406821661008903961192191356438951726595255033266613151712710634078982403985011679876371219226918714034980034987855256652342270719673983963643752603369610692743122002633462351245659120941111068990209329954451254227522852926482216912960435361841044436079173803479821231733293271882500042477769627638283875289151402039207388736179894626434684551815487206064999246226606806732060918202381146848652304475233807849264560525773507170986221379604499458446650667074764194974125279414315003058796153097881846871190574619172492651881852350199915371172061018151902435359815264736293645927959393368909995781601849303959777699451237518226455752573199742971556172309943309531815146403105739310354626864232150897250986946715904487689290275783296724128971999378496488931429858631625743189446022620568304913895037842986484810799392738018210986466738206809660163514086665904946564055394647976964664158479011802162287140278458147219511859546626550136914749708938436348348163786182414181676316453850752446517869192978670326219528517071511979277775049003618936338604133285816543960059105142548415499490442997541474743678920636820117165826250301818980092464089288368386411262421465098746028313338188340203272225239658716374469663302790907448789531899001129153758297148135352384006754568897191509138350519326681393483511614961222447304126976174906208349595556922411170226705833870622532174556003082159921760771380753255823905616633265143029625133014742124491051115827166800998585467765638616352961143830335773173002800433556243430346774501896274426987767074643492324821614993353517644418158816931046534089161000047439867946222062823326888154662966400115299592277115029406192025876171153179733480568222500451160428792872317524366437568393014823171981134122155240143512305109409732724837618130463264855291319829503453950521262553874418071941437121900644781122881950601274287887626381923146674793696993376976668082470452380459271571064968001967154172139692555187129010336618584624462873262760002507205259312253972212840828440097321708265538016184978903261033348049156943316924242112699192915189350119828835304825440093985211986683236541153219714698639771243961862360034458991364912821913789580088940845381491113668286936199912555922198305861182983080909757797717602525303486886540045110704533236121929932052174271348992495192246062599049979021849360515162709357715815465126706713774082306879821102220152312157082929865547019758412108704535282400515432922675487951029332119929063529298157105775898021111284026807593279109646696025147903034565051958878973736123818426199682683992697562782162917444555902617102683390228105744687887395107079034392829531114849746149478205649907218422566592472774011920229183035320637876576730577440261203885783777006267508629948818248482942581118082866351828393064732975601060120635604442183584687087560903955305605852064008334566419114477436320323520062799579533166712549665522198430750404019600453209125350502459659092494342593321307493892167405469979749017911747196441288457319715954124567755541624322782252875600296538462999604674784361555393884162528780755273600855590010242747828103752610470743195181820451423581295488836609690496865295308390845447935180636328759130307402365818239900834261200836480750121039342647926673863196395280927950597755493109871696599399107911363828059231335085938946562331997635980003606814308492533933379514682318037247732856590983264797942145533662750932982216618718576330688223641792445018976176712619202157533425809869651951195504383559445254148172193043995978767033379170739589596720084933102331816044719734856845812054766817738116043757506537685107601850027889388579230133588378361686259439082637499956737043445038315837922822871776429343754272443449754415285574962576714498477691429590454835282199734315870595288877370007252448444208092691957367297215462272384510295255313896211231362387326867634951555671563324256785029647884021828489788079322193846932791243796611774161867909267166940651726665077976076520946534107333489401406730234314472349322773719910383853288589113123075971120421813764531346114459039918859791044292319711977810624266350886646245883440499442813399840838182988949710100354707037226082288361884541475628915438003120185824086235203347660151041566354071455915307290014319509090403804510094555286250342682645999836100126491152257276017436354747850403990734123265529836686142144469854342634003044264755833904618584448456775379515417921008334188143506559620693412532786182003583661530311803508750003399335454517892598872372007471445075790662558687553481808633241231229124439460206984976620077368296755197160657097605690935860559056853213352522966343869756670773938516216094102327164315347624560659885612486200570103049356284793993511510469221010238061385256492231977648587219024503046418986918012447473130631442331115341493452206510450365140904582539377789998058527126362028073158580566196333018777305946043202499995363623319853511641925633932215339743981757943812295521126398484390173167282554456303211955834201619436882368826941888879788633966599924625993519908663451498336985761243496894775473748188264766031075631993020191938595628957310842817131104516018825557724500306470857481883766927704225403341596326708229491822405925447866185082623383054707554266577537949266572166738736844544753150060929184643902261371835127875414477622410821097398882017563099602642914120068149602060862798507118670021293571146918226279378232337822185970370650905946416078976969053063040361342174754909069014101210228762915526218093120480148646680115051897926227599998214551999960134054385409030753784045260205693655919499055541767669462051330991801287685141157668755194442877755409236564249230989998159561715712068151919536409329719836159248221888620394985871928030513976186738381086077825637863865449853351536832924895049948184740079993769556845109821171455623551060016009785610568633040963697625168960689111740147024360828684645541384722678897576457664707166218043447524710626633787183467031281071366288322727351785440246270124209019158433800763081816201014248038159820095790920561509773533913497354427563204491682819137709502014603174411095248750969329846528254825675152279342774297509168514735231346242814614042433925191959388267914891802555003924613486746852789802660349506276584143232191157247925810634204399009536901305153048214361133649635029262920603067968233680845956070006429154277323096138430111995684867824027381576886152568329675006887905442789842802681000996624843482165055805303086064732273796313457751131576704902954119538129409408138237099506031389311997602829122298364878918743870873252704963379245989494696942051536570038530563386487906678518942129886334200482133118312725203217164230804975331814232709067752028015954214875430216030460519752800529451359799620250267586122226323622191266113819833919613305248201800550479846872880798624501783959449083702852939646425755419084737200187196745278756898790016722395135865506621670068609101224407600368186936150630399380392211693100081038904020426719917690546267175890757582897932818004995901848368592882644531720286229789365422360974810300467850257363862505513924080547635712236608054067075624728387696155426805636701653806154276980661946280054123928534060352154704498593989532080439403931985143917643475841794927715437586408510130464207565655528887249460521214712246875313692326065020700939887670520434176446340659669614692045067244420070936802098725657184793325662788035261099310368978571054832929414811273971138446905647278634126398344071814885567820171959803061712171012417713022721818561632978491656503161324599062232879498162577707723751012936378687731942872594975256555848782139291613125375314948385244454647031884961283171031373573628118931288391060059851796701741473704145855400790191547074590794388309186423580577729497857217713310869802056971877342312105166829510986804279929719670472636038239265398499527245123841137936439121039932966064703231051989914867765400285918014867054697273621522215452039785648724946007204904707982867123406426103394105213722326261315736657531658315599736401887300631515246531533005285928715694687512426100252199905357460647136891088882326343601198659564696653759093317246941902354849677321357641400944144675728865990545219877657848796679459532411230855860519040962705300752368623823659529727193274211578884014551398989540463317182246722948297599745780719253720586034387497428124858995822898126988866635286564226822343156211650976802930050390542026386749788244555049767777413665812712063442142972343625187702921248673445579067114467278809114806906141848258676153252803515933838025128642723416550254183791803037035647508413762954595722149208101526845198459709114086976809286692082930556751213491364692603080223365894637214596679948069570890344375616047348707570915782341502349197552124084661291266253341422022380334168728994337844758847121023780087152562985449535540673354331226983926036805427208781816717015838244281805728377541893029929838289255487868560443217499315915537802788972309264414126499006857440405009296693768720512357229949786774925661160754127924304038083318049793316032069865696446739345439818810634057795161542002268477451404234296875525174981518697383985770842692797507232169515717584563934175187442134861229450500384589244635553955342672702341236359290207019036665976180645725849569725713984822250322660577112268162000125646200225006226186023802446587302134348356583394983677321464342371510187184494436890413740238658041742735552186049227665945567147542145186784828461415239186060492518489863119642244953036186108064483582046545944860762217933459150804290880863659815506450185614588535755784577918412450375911504416938957337177622980554158785987746198718273111365727464693686575930549636610225703193216661710168279721395778126990435226241456243158768628805832788553893742827795585406438400918364164579406854071208755001140054449187101024905889865856340572043667210878634511258308615422656339141338917880089592611378065909293849733826177400864387964998123331864134156226077031787147319452930129753052320018452690694977917511702290077838733155176262572375214100640750197011747453092315876994484198717336378007598105000615152784359082215963652206101070384875436040605115534176337014317439487582625603984220026408424629025039670306646504158935480723527334680484632182112433141128456269437059039432598346488029706577704305259827769625021469557366813626278642590902546964211583973721458505547249613866158373606757864445545712335857681661475783142794513503443968896680562040601092807538808465874301877791866761825238448629480067269392942259550467929989588392137186591471355031582014218473265019579933204982847775435667095631087546928312886943863479213293024785894001435775355944449092915269973936783543642169593622139818807379667560137587873258933390407844495143572487517502270745163530033279137145750684479779057662760028681359384432854968790950764898646415690363343873045552432753480005693308429114169120442273859741357898892711158157024240522131839837143830630769353637023494363691458226647373000709029197771543478170872117735797140714880339826833271590051349596917981250360629155109711078979710038787432498605368313886208063390424958096642743975816190468920050210623581822219502052221665186766964873397180721716759599065488278927771979825406450137147105766335324358646899712283138297485956311386824907554566555291063649317454430761933999645027809196883855971740104841399962649163836358378997331090207655074223689043025001437781727856657289505554429086876053386679313783672774130457481577215692324937314214066501206119286806770926835261361390015755679875787983838638630224797507287050456367304828426871754386983337710540193007362724670684506731219418859533800590231981144836222451223233445110223481781463329762640208380175780266941363436028721363932028824453711518612461819501497460166905390604715471645415620922089558745859658797629610026994169836914682784957956830690577709923293692011727130028105944855971394280920420951549385087236168395939727797043528130274516769276983956873274078731421752160891662383271582557291967958729288548497922171843889842328899545899281266697862282297181263951372572874275437233964234969294828597969226386237273238448102304405524301486622772441045344220279177768449295707975533621994337738967878323326792837253594382062033394798126050273693980110429763795481599538744443925788670000937640072124512661496697284726354105511792002621652756606232544426782701280748033144611017693015079273829683000447628218540088008440104739225956745599726696275512839489477381410904348953060354662500451717197612681712220996769045102905651836023161906244167284603637809042716791970667317693314788699317602605361049091078759660925181251109769131927390145463716007930240693301759647776439635252462028149215371776219453625766525429992556898989763664558033787023027762417661650321846243596704790315189112226020357856053526105986083458293386312256030487006513656861560352239149683786958374536731291004029419441128285846087592318307254300005551725407282403108915416881228475946496514888940539821242961105977756706516576115198522764790183448712537039393668357186798787812434227168827179130817239185440188829786536922424331498655258407950680855558183952395591221024824239885402759417024278501086451832231608574411525226943470676434059421341715464605554193793724009164250612813145211038228962216782286416292584689825954071040149226679178377961821526798493461511741546448168860326083591075269039998898888732755291900721586271414200973081898496998433722592307952860535655224982095854341550425431656223020335443275161195539867647965551293836290023997081002400799857066038651281328827573631604336686659838676199832553901377067903893219117901349369833240832405380039007000565067770494291784873366986881486024406343938307609771805645766120476271826546631642540116735707648288047970748596206316597497913691001401987913997708581229393078738387233492069782520603941934376472720703776202848083429899058401041075262239150495961244996969593303395714987246050857435536844928412546147228573497458516690522208152654567616452586289686955863549909729963207064871624605573041955681493608734592773892920346362502283874350243916767222055327700161191426761715061656658332812055538120080562397218272301165960662010798206966584935138520880211768020544234409566691610015311226784302430826679862900333456277558484085375784674835982164851368369938256264737495658565172172495949415251177115383270348174891837324349355760561530131118266170793317465987809676954390714716574261205613285563718053768167076404763913186486082396268124869375780590884571785657875427389884039795661782778651524394145253542026279385439653639070865065599243545712883767392466417259821013857595263497598338199738166948138119303070696967176401883982312569644199687621256778916895919391188746729157717869979757864791291923231000126450990251444964984881823048662561514987931185997559447686903235907307765229105808117196424144322970109016791657482532422288452238977737754519173246780927764151033687959241381276539700486506301546265096174151111414236901151162284470910495505897981714476569850371882188139738098428747530920860723318949861183851823847544582907489887032080986392990794830188987340828874072862703859438360157378442474361703314712045992973079071564315284453394061963396557264057790168222665952458009316601311463773080339462831709761653590964605855045584326909662247244697887077447793622012099154407808773007360044971401371828492461516149513098583536670712672502840718957873359880468752612750227259657482205619888098895378784442185421398822244300911994282046119583762249477289490534051929371194113686870572947263036139683124709448712248295310529419939080129493817031340689689635000264999251120899085889792003852734367289488032641155056914579374305150794641307379482583781167394118079735967084564805371352741063608109965741515489281238443915708041412253304408872837699800401792132364823778437721854928716978295382589987226208185767838390969414279310574409849165412632783993051258576521809085633351747159955823999967094475544270471849483768022424597321161663590833548463161563873619740524094871200547851046527897303260931118815179258619532091899123024446429303859854686322239211995000745110660760929696233437990806183871767476641984655642621955091800788461809933804473800475014306023180961690052595117685296250179635820296334572805850197149345086293046317226146630550742376786299344875773524547219163525852440544146693021159242907360673639261081484317731462909000960226129186310958174580341733398988181473642027044282534682606183754566517082256184461686357095557758347316004869455768855283181573721142134592366304973457505137059366115676753095927086266523689740161455194486476224873100160929729011186965309609843440601727378188041616959781281445038214708373624362782936273294004040426467727182823327398540067285666129173500153431480968910838833800589422428725122693613519582810323259007797068199500825584978723540159265691879783196225592893205497018232361025963170723618487845761727607675305356627225259773366265427369732473023790363164621326886842429156958857256299892286201756373549935974239067595096441267518369894757281772731225305834214665764231488427278520362258705669169483875704319983140287359903716514431827732930675789019290741540099109888766350073717645128559463616430943041310274999061163821423407805503714303473871358913790434896575682298477170493783919829011400239306170950694463676794468508716998214971197567864621184740476681103937600502250953092027600384251951091287886913397881931278824069396864207867137872256462099387379651467278683703480460604253285944080301156287483160363545064636047509655829725629777141508145973570145406667605305375009349591798608526338950861458641801282088456527864246925595031072500768211128533438517685755379065224351905458112334580843946688488618754935628912737275577849651384644873673307242523170214634816869484881516702564481100615846695277458465724630119902991731717320574545166693529464727360913510110414169359173381644039657379782763158761999298752648695015140316495328558814642867840976519014722981530255187991089840381151791624586060172807599868070547338778865933798591592082338981400157947010687368730775346262480139402568029956428026270936644031827162986101635366983724290248819593745009344136697365895081822153992227743675328809490039177875956070449720222141810339898438512477901079613501856319496109381707823471693939647178414383872312368928751434750769939866561133920666986958043425630146208658571848868940047900781289920844621744919920787053738255746082813123901920915339571488414638616520389822797123472603091861233667072804866407778408310810132280863751688473606152220082494524004757251132328397523708367085954749956541163943401049485828792874241159156564106965027594885696621151973222914064508807381211688996154367716320028826880775727605500095941490646505208709547228509687713931493454285606541248861431574891189511206881212964117081401185390416297220778586586575268203376114367640525840707776383187836176865388698143057119140090062435025785061384396435880798852412762492846576432327860809308044795279207578211296884769360362392457717988065723332705269478657998000733593815871804895111797723462595888240629436665557585658379522810766130377058709280332369195658876900062103360392365786554470093289926653461626733675056459613941121532049943510819999613395574373226798569915164567297266846683109276884453788602588752669080710963732944939869941984386423631165241906950309435506395207004397748030954261770745331527975890108016333422319702671598125646344560903224089480918822555319101089109761310495219786507478853768289924463892244216439401494436353419913836704454994642313852956835164100741312145639112386934086605867364544827594292708929730480162824434561530940605987678959225186992377973977473149951330229417181459171774471125641192422072212787506828023035542153281582287413456714903008652438613091955559222610191779307138477391925511820568671208319894063474924117576876958448818591472966667400088821768053204114093160923936451685133886092346010209451082392267233794401635349930165209554131581762432408957820857526314467811509231117823475814137823191147648517962011699791312637209081537447486187017556876387168752550403686194531847714899167239089166193678324947971258407469132953042983853951768852287228093080434031026573988893203726263707383503277568770311136324189496277334372056592206544646188458729986573350334271482398823906408169851681272238659099562061502240027717891425319628264012622664160919970298793709965034134231728285930704919120398851964191427062107636309171114088353968186182568362020703371711428703623717619899955817720324460322415068024384926848132348175164278857330804383415734723686227546883238622099249841218425326665452283076087341659090584289542062940978033253071584300763101476310340060173292194053144037715662622762633079241049969380739142195322867266126014747622245443178482331244128892599376615877051365189688857172331770572614138454249236248494429923179533024518151629423870027881612945082874723906054251204760188346028402663737366857224495954909007014346925625920471297286237895969984016357517701638724229840329776163895999655643466233457369075201483099235511670503186389028524353793694688762268796544539550769079012819545815928993885219767928497200355889525760570810125587247637897791981098215505886277784715281856829218272275948685957529366444776602876335555684523158477306670599643009345639896402847439833808417076673219239269030685458957816115832717282811283899423185591576228121155728984361520967436247630029093093743673716957890450644804134863241354659394470899101905078240801341184149198519872712270673320771665135026064163959055968119220080679239852968986143381798403879400629702596145579889996095899985308603576403845782977331702224183987033761366737397112044112016688613554371248869087651522040137412855753609328567442652264162755465825719531065560482608097559661422035796885860401624245580015788319244035641225269431220008720189891036350341328451339725118873754167956500645959949069341162621061810589919216827851072010345873199585428128910290764829437200363125081907156929783287902889886355734045911642869011747510285270338689667029042168983002634650619708774816981429985870770777326849772441206573032926048521432787070400109034845003069208479274205729633987534719598922029719921040247504408523210936699929717237224922180355559601276114340681190307668279123608373233905797217874499292065799156636142718734640400468903957209869677735816989796030401824851463634756458612731556980462408600772660394423542141969201242936245748920641069931493646904974146593592041487626196644823673695480418465777689414834771759897006399361563444736800389946087273737743581544775215226323676871027548847096205726935454096771707747489766216472636283565615584225668977695930618488796093971611406622805829250707860321549306920233241838284460518488548804330910971980047500966600935819959237744705190113101951929182333251521409596849951613919989157554770814186973077737290642136778269692360539603050124826172328429609564384118253720335082714054209129225629554146981164843344559280620094343129572360313604762377780580949096648387118501482152883798829595825738111266402187465983287308163485419736740996820229796676879486159812726417701541424335645936612766321723495958776821127022433745120042662075538152500218584030725029591459429345460011068202455495790202207858008689452177474951939736296502986318384347193818378971908548915485255451158982289438067942603695705210602093864416664441457476960442899153418109069087611894395216585441820656246967856908699254565079893163083787477516141945817739192748280413523562818100416418839087851779927654183602373372280395662594870259597243452961087406016090031757148962408577263652586101397511665247050984670393429277660447764129592878563518129541366076644026295821490582174705299477093518031474104495513184426821262487320479505395375536375611538939228884343192586581914765245126683598049840989844945580854415036030166189609036155166436969938494615899308257469272728617558772283597634499186491245779705790455179394153104859594889335425277444435891581324311608766035763821233959802009741983725018790627679369014621043705364891732098615044520969132352061173854573127882684683048171201953842575896889003214481411687130741697048587716777993785268215562661872595288614029496742762085247452647004386323315363644585340519563283159819009185720921217674692363898438812918220806787028575634498726292568101583380763186690480545717057771290338803692554534802212390263662474121678974923390516889743892989699796271326332519608239599365072845122715847649728615798700028012465389156255093328006494451798214098674405808742826902415867414239760633983701695385454657635817306892883237620695327862018576002039293942222133858792809203796822888193328454470357454569424843053365750227644442073042420828406882968277717502472909826276626878791412035474388577867725814210051183732559485827776510894056991594222890841892590006044029393043971078920354709870353543278276847466663739367481949919282852043907748913690767853493244699477253286509113308347252998949534334766975723770495719072191939036371989145868803362581018672127485652950170157987130627189055644999796945848268729980721009331968937554369068801479977522925581706284950049024878498934201627828713359540777926334273798983546205639505474224278957745422899154559408992751777068531244653389770607525905183688434787219341502876045974203367201144181440592957195965203730676685784329532734282261618747695838235027401651731456870845000278456135219234191457498300461733771208978938907408230505718550447715789855271576964807915820326466280006048522294292816266879305967896726914168659599769023185662417268789003516379556408565286297570759781972456191976763063671767829285160666997140853777019923828372696592950794294311778571791748408882654681019186070741367310354758580185204678569370701616373139949759892893813076097180042017678379713426402330135906560477797287267618334746400489228457347976128285985001601965489261121893716410958519051265772280970802352306780081316824980779826638687083531786804754340431665038652903800987575241858103447392636497690546365839516161261388702013957703940588129957163189617453582838390070290455764162261452014366375444226725628088110378616971681614965162442169494364405172182654123893921305365710801344643467604681645184097678909401876790850103130006013980195680119102270452707634695846292048852734113266388900768175016859645622143680093361392606481057071636761564840477310960381382891390529547568611329294135816710044675174894610563293216602151529470660245782887234968903101876667237417551028053253682261733506105176385520740860571983887032527199325744563367844989094348427463463261384721568370054951152091454477648064613864319040522540836260862409762033926403139193997061319056258380968698600071324425809606755949654038214600099254709891222079006823778326560386864428011510333231877842236289169716346763554133146748055251376383957040968840524588396282158836187716614104613780706617120816473685789162154022928800347745747700296027907447871120324754440310875757257227246663881444541679623273265194653556861169786966528178283969440273087699460882525311499872813294583622479079021089636808238596372269138411259403566728381030876736792070005697151090154974305228983379791817015769370258060956660466022594550202954002465802156645532038622751104822571662231895630813082818597460152294103132696454078418530906142328561853767307878301748275358821641277297907217475586981889274803467004770985384493849674223047488295818965325966110640866023347011508703080664694315333361940115591664155016610528689484746687530653033071468039337794880531963027603864624114739807685567770592820931183739335983519014740886942468278141043827503806195184123809433506481004586709759853948610574893730664240971192606917217089132923265628901424424925170762465254759396556575818534672826209917613164747685244417761251203835315393265947980759466944710407805421669499304268537511435712747179605372124369676072735149110527478162668781044160925285728328058894808366501075944741042613789364774746117961551847649140798160258251709181474708669466347283548399380140331472483126748198088954725493048610067129786506617716188409859951244976384378556739151213922034987111663061643889357505080248323434429956195571033079513662320608665686868869875619830020301824453360150884388609129048918482572729700048422450959241099456854420043267301496175478080001519815365077965516315975301192409033495167082304732869258470764651687259478100777711141159301262216803838637429054018858512610623410877545280367490757188364730680180515835082038538214095389526312382795394539778454281550389377234611029448328700511991440377515939909057880647034635664274301417678921796539250567203805656572416494448112360202146778538497568618480131120107551726048849122726462094336499768202356079380765857583888199934372383085484026192340689321325791732919588413906258378729791779345145033163413485437592910173729277601996457165413566914231660220548913480474571271062349980815262133459828299020451319508367700552328625160045686696888394709756627262849664964640427849757454838224290094982240216289277437369582802155056011873569573330172695540146226134883269130066312543635231765205915592389006787818574615716627499507459172104918120058656667961802458816089268516749026016490100461216983356461430340727525937017757854190024425159988974205800745220389204147165601943332058895465133976048813973291519392523319865145558989880063680533191109162050736805918041242438445520691284901820323897031008858446477574593924442551492767639829140891310631628886846802381404969883842221468320909045812749953066938608144981611622795950469836066908641869850683777835441451484717282475767485775499795038963275931761469952207230322449453371075559006833145102343280606716439759918747694864978513546168403761723554888697546026291070268034264363593178133030686653728066594682831072111082110635472633345624837205594201131439555792167787316053142198834880061370907735181112483195139274890464083497855183693399821566973022823439970089658785529245206607072535803470329331043972493967759908702043381864732657522131637150593720933908881189212470713467910601827229571097434202108333565095909487805766261782233340680140293157813096449099275784331802132547000008597110596617675919390725475310969573142026534247958539947648454638454951134440319362352220848999158987054519924078735201358281074611869506904693210285355321451907649106360761329285443046184781739176891403512344001091315320395434139333766050806126413986621899834508089136503003000479541226460196189956432529071683811383996227320696401305758829741494480156330458760153668738675655958295357347163160765196937113914488821906691212702011893945417788635923861255110041212370245954121777292141977045772229993436845837181565886400716305083940589865288564489003770207154843032653010593236384484721718956441512811184796074669372453509524146900781299694921837851616931141599817980963380766067845038679323158875691879408646050933125736517168199647200010409809320932595786103488523677052830220029151767045918446515635640468638775371715836228629929949885862767148884950144177267950121743830795256283709854891152748551742238213484622039967093632302877987758670497444007144629342011774908494725533727493559465767959343702649508614804170645046998361849304744646153418985012353265270484574031490287400900727757025759639346589376918843001368087856532832570818463447103364688245169732201747199313832279249414688429271369837843694354496822530932619900303936532501341348512594768794190672310038526852895951446153094700143138186998414461473910809104852720397778336296298003834431608695395686901976844065008892380309344392538052286414440085331469952058742023192054300409005991097217113820857069797361267564151862008272876883883622136585704757616719358691221250206554330713494224484267366623299246230304766669566371157078061435893087464653126549366462364508197381775893143939344801031862302040945631608964016191378670155469969529018447252951538300782699057386725641576122581658694522793684392386658635946443982446874499965618872111414749555288983438477118937846063623422874884399749485910166110059652698285968473012971329238764454026419939734529234465329130746519003784453664343753773516446473028397176189701907912684435070662563438401026868789239005863455862002371661285847696708508136231315966993270151591825441051158017930806873065268123982539576866003090893113685252611558077375066062756281766477498213368585289913221299874482976785088786305356455871949386762646530546015595975117552827777061691089110793414771968677018326160625143213328931543033542069101888296044368788517972220937892841830565760059706798105114019824162290603510274528844547047463911296614192220261082573366504027627904642864213549219201215252357204582818237921158958143475395186588375340723895386363429395784686693908449446787272209129403009008610474019920773836343338948814660116072106762997043155177224436253265182409418029179504780840512694724506309132538235329479559838530299018307842450785581912151869728407657255643049809871282923922472377110407129404734782340385375743932981438005734473343953946571377676305045904053618178742064047037986059636660947504907845154927449569682573075886664835743745048038252306272737587664630049125318175571136421308482165967351811453313168759006541351821623233336656348910366261198547182245188793901445882483259410362963124434541293385937497938100403497459218465525512237139341887628134417064998810663189964440717054552508820867198137103498414757559128671324921224477697450525801473147924041654246392958162994199181627758100721083257598227837696657405693767712368765798555125110971715107283963751652381941348548610742837987825439542103863410716689453345259903546067657623161025001003050286804347930371038247403432835651616216704025189090292709042858947145783086066435739950970187489840433871828757988109368465700338865101733664916553257094681259262348522022661241068629864121062812430294410997424376022383526376747991116743318543805598638272489497969770142724734676894146010779289018196122891239167634491547959480814946776996368226828280265278026014770815740837522707915144871507603805275434307458262955766143099948371243377958940190179137824794469485351183723236470315803223569153976637909010844517858942340206314736739996718100792614284032299764668383557400178409313258481302437085277300602007860194415977376910780725597107935787181713090770951188989799879160708393841074680204029616631572483044597321836344706636587555111252042772021862534506534152082812197484592028629083908152271584433102421254144174635267372104666091542452390717002542327438240295819256947163782844092651005631682606872799681294401150952508676440273411138491450488150653857517050983450936146503525370651039198970551288713022813196301452004231056581241758617525438287079490180607118486110107588070137957576372038876166007784909696885707127790858915761505915946025801513712336704443683490146628890009095168715070341867054010641065880547292777531998422054403711091859545416529180972378587724470583139543924745307431852004421950026264631515490265548808213514692687415567662751431376868224971558800105241328625327209614406764188685795644952126613431603117102539871534114921831638248998964215911213551178319592539157864469594896817992035698907860424353988598002673820052695560437818790188045018326143436048423448336545362500770152745911144950235551037957494441426523295264083958114877196882697317688403674591026352773121064753079995004746324260289823927732891435397911035867792693136327815901527428302556897566067400514461287422807984207744195203543435813371071389309475121628049491504499823777162379908312809455395087200748402959545273437247421267036188978369001281211530531641747480429522647422488892030411956277533114127590951943251705089209047315145355841622505679175671844398319941111640547860091112464585471224217218692509950276205553237955533438431690822634451172748978539102564816474717236448707587692764132404913251709164327294957052128415890285576780756625914239453141604869954460574331555895198648815241629872543853161551290485174943097910757922173791000364912733722990978159756729659105535671535100357881505260925123135227967492117532675719305689672039315985156506266762904132719405457128152054640950532062509629587614847883930683884127413732447436031514297951531300329809893520323879362487213536617117124256844588417682672769964723956382570946348156880702794293974205913977752342310386835476534986146865503856186858061973227280308602312012271350782459217699883724148849252794351940285525274029304022670242769427123585552791744901426351291824531404620433062895374382097868842729088718571815479846795281085765598366282444189045663988231761164171474677733307488057871111228912673580905380864745453858149201476946160858162392330511565016435701228116393742942022888196544016380550614465439043466522322994235523379539840560087073889754680278135260795010555224580378689656758083304126409727454703216607832749259841021247740864460720426390749373681920389799969712282198541124177941187925353955253980782452351953870071371601873796322370287771887883043624695188259138104341820162436126179604843567023515869837617154318830308780334192587394338029408394235394734890853418311957346065448127685690505088192895012339445467853594336598676282717866906720745499086685647847086008005138756395539372767426382520429698207971612568557755717650843638498567329491029907114455395594302900011054025936256741258782448551843200772039185033836414197154709795777325538494785376413642321025295249026435311934579778213717949779119826711072918434456610357392245378470164810487989058624610047528948018268021703085961766724189515797981580743446265253344483925321882512075311001092672022028416050089206541321811728825053218334642425991775598254832426160646114752126096642925767066204604762201677375398877851756928430628515866973161711085985802350780081389592420923308143585817027759274303726370077235373787365368567734815066262804519895580976144117224756586412683720669004900994927302304772933547311636927566454525067209026056078189835321567153496345595408250718461813744933018428694097685287830928950479757601404372126485620471274561664797024401765173366969268348934092561612755738824456915186502040304018924087773943538711202094879659047940970627013133934712478539196866547354469014142985155786703044600542460018389213282037153193675622572988101016412924972674124341585898727361520928266621398131518502151030665188580017676149553603004284252772225692613533887264430955354782804132164414387629539159739676570845952574541306718613663084170469704477495290966787530936475525823330034289397937629800430367200294214896610180754052881165423837298652295019651707471700996261168412074755745640916409373870402010252307078824965312410712099517175461747960696202940213637448520203140083242453064565548293585804505094397005454117212445019552442562166716822861871763788365577944477235980068957636768243739558208955877782952931053874414033170030230845746744734129018882911684764266640951611085656006873137748208415835317692194438473093430697549576388017769483530816734205383741918791452232243045313746084895275992187206144904964625430076584679641369298100027975945096734875189124350405918160193803401098231207586803740823834653359632378707982726357051444096811046942339472882343974013632806306478845789354100901077478146271341845861283611189577404283143152402291104045175129185545386188563074837112647923257219821867080609489528890238810499257082027165801814534274095831049636906542611865274801993490328931101430328606974760921370517767766387991602589516519126550008278908865069726041103863368852916855695672210389029715461111463763447907199032955462769355209609499274046736685403518542263362806566561722521831863261260073389566522647859863786406248513128276669552513489528709165317638827447502379956687159389349726091903391715015265890294580582101833346715348430565415184288693852773470447298372627989741675629450865623254800414901125191838740639675798915450676730924188960405711940247880839773036827631281203294437301172904531344242211829627623963012868824175001020632992238498948187307871644061501630291830961596593075386639044807021095990010519160569983592234511955382711095998490478212132379712845206580426834335303021134049346893215513450620565272013845153638834655354994859589644195369973641440200066615363616533904104954197005449836453522950304081390160802929457916586782421921467801972857166402291320095178120651786204186541614177217813570294421847163557644596704811148287290187537978686563988984523041528988161411879354469920488894165212749146749237226246530252557496815047737109334913895335288935829117931254001350976992436747054295313482650442093078658448774393193550840400724723554337296916269131107908433572286521249939368220818337560543866247410513791339608962747096581064938041179659367401014304571580867964546370438757265996037257642921240522174942141178642159917881563628454310851682577250313596701700452204286902957049916847040181705716070298418609090423546744977850125204863235201786206804547173842680696810220132884154729930482690177434268624963938431060536263069149895467325562680809691106718503549179142106958140396324895915056117283703391211270091689045880077410138399908813825355052006215848660813546921415366980471384912430392941611285236497386815520076714492927584753242887768810511448711719391232768862560313462528058420836118786683749349448459255216970570883557544056105423736627387405551966067054837780344375999879755605453302947256317355448760214735361516688349996637163375435760986216264591234800999268535129158476350349787585909833901658785821672671330011455631401248715667491341481586240902108392806149518681625837299315071157370499843255902217385281015002366407705853644287214583816182053111988436102256614961981879277023228103991419785977588451672842405407533572965021791374441760938784482906933159447545423278670227083592024261556050917579842737547462964490989725957572936313579861852304276230994031455357161283260172477941526341507340181098416713258475666570784934285939544169786276624296764215527845479285562506795877287412033963821334480821947396172052889387705506807910627968301396230971353108105103688475244395717839871934931325377850913176494742268730785427414795084234552479069696744854374550752261567050429578370404631413813250012506277481262943733023770298680871002696556757697788372293526171775708380564715252491878630952103365683880096164630184752283568293779400704683133445924544325840770392212718847162212358103164120405181837524251656955768860483779759475603546725668349264332241811298347945719693107677328151869878205873535219124413792288261015801779116863287810581958637346250811708395477907739310647543421849558315117482438681684184888197515454216029605776597473268188545659536625928295613380264363314803815325180935149560608963821930882422155834115454320036932818320687312662533881606080694470105192607061745658248169733728407872506966132639932893217283182528802527144884065732297445451048631616087992525535906799894701325525693923310021134493142367202479473805560466265074038722298599392527694244621834583632824858432467719276481476657001183844544027018069885440880154565620516638441545345201870079392326889955844667790049869494675419888133970687645160514464782218508433869415778309997660706247944384397326026807469436385380947247454847695956523410038261703603581892939941299961198412354450896481512287186868569454227513383537928647925833682597244511417026794644386340012286790979394754527762495416256195467448096449212949472434315009676162332081796964427663668003995160850565333891041556459633565908611699402857967304108845274533770420089401818718265621234471594244356371926986646509130293064029605672167612608303851845896146350105588882350138206582779139049105330158868451696496765574847799625546720198357180242105242874725563068136423817079914434951440517024132417425255547543562842656689563636716903215812606913323147615102050985300595872502055659674571914916234301404892925007016395312499122027570885124858930451325604406465350876665513348699800479220636502410569863314099370954952241130889068931962658961959807376608895400344454449867183356073460669382695377041202613680050308953973884553619723990905964569733125974987386111064979254844390821766400841869823062342407303622738874793639835255416198501760405928940317920761749427599181343124127917312438280226644623840949902290078605694998319130527728149276706201578552862446515687768466824526818905921527135245906183803137484476891680706695620396360548585928490366628916447662190917541631133245645866495920151733463963181799714386113501034981299405973631289877705707514153578765080627107138391912370643847714973360739961083648993286994486965583132556648815962754339986511565521870852677811854876983576741377098419592036647999256335455133483185443449384268194140981915240550668224848664106742205825435780778073945759817508517560318122819330113511115065995309425829025718504428921102154075604498043072673789194775831466020333691728534242111897088980026257728289987257132488262262359145073036955947935554792632726986528553717901738362625298310765321407349066658307215664285447068453957676654998930499993917192070471851971976275815796005947494297453447369153068209362946888059383205987224598352877815907962956608666227555771530543980045502898593314706727867253291097339314336063286712175950386334634937078347221066727693290674640582849451902562945486161173430322754080179245467472564003249849017164876027801979665595316344438467320104047087097110116960845236805149946496847952876869313470830698681067823427426767764360179741088592108049449342731685648852600260493161767827707096345132112084364543035490090674684551570738895133719154333620957650851813759422577401068705891323817943125729801167171820400115478482941094763449880524538933827296499480810985972194474332082399206442607790749311658198087797951978417465855151833803524875059622909868275778106227166608385778071125363998731915054092502943261897784337609400666797304639417426614075672327185609596542405199030103470089679625504429148816466770911570489409831269501162633045081141995563274654624923297135451407207269525963035094851865965266832577034485187262503595851589178573067261329309818645299009887454680219289354182317544570986341455723606009836043079050440214974340460801758312630949893917382699518437323088045376853047203110485293492787488427209777962008220880535425632267451585849859823207734205481656798197278543252967665577814745729657106981678528490515151946234561921419698643476799862809331791277754104358091850637376626724759386004123314495385164796108185807812579760126211365770661230293008106530554592345464475300521208374768606653575624409287045153407751096896012149459819003427130551834423751040390436317232400519074475549163816080961244004647414777070248144282134868017226768710614285444878582793867173114870779904044714057206899854473644300733921925682616147767678695717903490339932350502716848721572292355742793238197846090740397651090890993331157903523698763752746211892024585371223756223340440903106660094967241962529317845339688177272027799983273960021206777071189449512340243135428227637265376542785463995883137321363022141653568686588531299897739038546929166804315334836962987951217470970630407634597242766765424795346629743249171747148341802819679323163507782875811050039745194074378031936570165547962727870737757089599432589324619094713404891830394274688285351799162776523552608908469529977609678269872385128023847052870694043535549230080143228736308003402571052137241384744316319512485394090965015728552630640666070394555213051292572360013812180810377385623957503295517098439200143354207465529665852111764836150944931746829091758975832163336207653057345182091003738266867193813952083341627801144175617630409647967128821338826010539639427274599420204426208594442259857271996297911206112659210016591742530503442104451222228268744220331975528802150980468942845385949931333171650219522443609354436595353693547116723053059357426749617656105202131218216963032152374743291287862985008660196792854555449316081232251858554451082466582792834905942297392537506400879566760719231356529713824475710029045303100760471541480679007095575713542779104557062596895929830301415656121433253727165405422894656338764680602068175285496103787443858376209560243668816608788948673680147148882010292556827849330526500248810860119038832118984752289386567112087838625374944088229209917720815303535656463895061216425913649014111334268522482336123541192055339649838700705070068820407946916027449245852930886998261990625574336885486907344067491016239998289285859521141580143053474528835914829191996839129055576731378364161018293653265881634349040387089572850097985204441955569988927357258367887095095019218146389256331134424283650237199093360525780547762064637249572985317955672384037816758092216603138095388584302428786916848732841530337055366255492690046050835331674957888365067255069256612735603391893390529447009301999431904822369991745114583089763631652128177947076008687757717406611512538134563108878394818956983451790083606378387881021141998166509063147042989843906377970709373577150818758199407772876109436706238378003099260120532588361948368429576535075589343375355260385074282029724950879162177173343758821412638882691556111521663757373700650258966138858446650040632155003505807449047695619493441386553934759697744201418437024813451949883356091050625044885069779096984210777576583164799798873614409223470865770417604179892992865874874009535087767353135073794982619928266430297538595025826403200700905239610461071420252754841873053945895493689186831949303389873285585325054593608238084339141726768993462623900760550931346067116766176179638691907382334794136591834306352881281271318781462690883804480786401487701359062051413126163183216811937059619304997769753292894118989102862218609879302263097924735881471871862059506938308329957620071481134435879531191608847261445658763476960647345394446399751301345309542964674513251471283666459571326608057423999044777009240496857758900332731988303796163283979972497840010749110781895932997926535051678129754601565280707210084731512913087158129587649704112972561663403387202272872810918358606101793638170436805559838658396074350098506947664856098637004951268238635337547495842284352088789245862262197456742870801556109169103330666988245451750945109607848307984713078349031574564633754158365185863961331909532407772640619350925715662472608319429293268391545317995985674620093677350175766306646858498911466694663444111801799349959048365147928218962560454593045410378353427738718825650875938562320583140552203112730269086549605763755124480670562307638361945926586825069044183064943987648018883746661754730585895060531666831181673126178874538297165837130553720327153544281164706360655590461824827372067730777999039373458290593366771222256314337876766378836732960670687487138308471718558503938236898620432694966773993004326408709968866842102598781667814081184099689805073908732982289751005157069584298977451915596095552601605316220913912688857709258077337974224524357830399894206097539462318588307736285826069656526772047904327530045857846283974110969225536687872886130425131857575628906947138267940570868132603810183366480346667282080751891804038892499606961740244485073350802579242357121523554407022888086545562486522791333490695064105483035965991582975578839687393601155693205373530636890995573002841271060424280259537117487231453198197743497097228272211993309163446444681069011109022794304094048838385841387612863676415346939258880487229559253871564219507315866034323530461264269122674020260177447583651668575607740737458217378118614168997872471735544327820005531204576036983813235230903141016260317693178150231501597437010850993166944939717676964993683248683637302969520223479946278715072576455003766658917765319866625945896560305274766947741319262504518492598344464716168222650316386200363171759439278119305994075925739092643075086021702496316443008754851453499708758011754608059057787418201478795937894112793779067406937822739686620466606754384684167078743296213035621361723547183348226312308841344823272236009358524857004725554109843118697277601719418963236222854456669286929492772029194361216009450318664207498542393587005615162010625261155362407235363110784755799482139896158293290470521341919062947048065126127566978397303814823796466096985388749802340046542521453979047514325801339535273363644741437923768920885493582386859155354814415050428324348924849214998363469632935116813736269491659528013280866005191881476010340974546691958304903078725874142313358452780484629247632595123482843202853113871839831473114362127746983097697056138945890982256989109979261668977701340889908087163358589264907906003326809141275318687703686334635544150953887224741955616973851165567737126346580409408747930557108132672477615191086937955114041400576638861682743791402417655448918523113001446667070100133577405391888332569193110082541013071370342673059864502803487716597189295983548168841838656607998714110733699907931264996301243598141655071832023673820515156776788073569603809654519793890747882410305682422034678989638492479704229620112603312944734134481207030798824259830444056337246491868399458041814669806376557864228125273583592751916132895625563866399810768309549581453312258568330966383110092733979543065778911217583801897193132957524523763508525015337871564291583585876365782101574879240740471848431093871313789901674307604949611035587865882816458644551691960335426253444299301258614213177332031271744499738731866602527391202944400362089276345535555731373691738600464353555276588916818033409249879253875219023528133641736464035613251239780198367385095283326366229521448520029581148017670146244852767430347435383290284003719873117998661987629489035761077366143153760580071384105642856064676651261538375392855372739260995648440007984669246261263593340990107999392347585142967666766342681878879074334955274473558629695900313815675197810898648411989143349919913742682601101915435912813710978068955769725208276556950798156656283858524098269249291045465814418577706146601652825236663409230589198898893328716081935648598748075231252855861319903186792781417823078602320561985503412032051265799102697883304284333012287764920030569874248849695065146459913458637569516927811254947762752555772817493496236516351193803156116024551848011349716013428736476128510216676967870692092012683392822026436922139077225249453924246761573162812674383664761420733842995111784120005368936731502678090270055642075405872662564457507203514860006224329075399527579942916345555710507266850677728183858921630604983716586977751610194517894708218626709811867806966417059491667119860600878694156451247149742078751847087022123364728731650547139674549670954792176700892286116884310345298012502263501717815180676163023434925261733461756948674058239181546628330806322180156616384333496825225449041069637615500152351408332970379263892619792052809071556776769237119393434094104729142313275160689224139902238542480495562841808554836609425604695961898258368298999870451444147905794498504963306052874561519828137600245677467670421576521382284851552073025735947772409251797989833596214287452275210263239801319629390790927629535657302571133027330662618132291480972581246875335525273213994180674291680227334070595690381738506866638218238403985271429146944239058224880954042135731884187767642621372199603647110502209101537754688324357513676058859192957191917984862647102672171655343470485985123264518871809918732165374924865236273367942957225343755637129394398963315145114765783538165281344721830248996440137101146553120847676961963033480297688936215346640840681375403389578670258550776166405897732014744335389464340054145190726685932465237120862685905520315685600235041974843692740019200403306855127817402543016352003094532379125956486571651012412247902848567487684851384669711491778840741483220368515385613472889216522840594289776469747456982764505121593333988127464143560010836942296929289810946652072173747155133451186842195754277559186574266544023421399840630866062627736043447461828800032528304920368951222039346205287509044389389418409663219497868430131635546982190158740658680464386052959972814322178351375159014593516539109344042577257446474859925316218543346632104818869213423297637230128037903665455732971089583266636858846151805472375375092055530060004443264856843096400981867888065023609029907737816087215902996859304586348741500342739575240066132014109423649112467157547053189373447088592101286396933155425532281017590864286767194734048532930718330872934669959817517830442751542176830211029967343329399012817471942478792647735349296477992532119423555313597095341419289835687645034840386120443687165749353696379109526353798629302679962738167258476604190453340062841369625055383334804826579914574946147782011541746455119272929567200936599257973104135779165273168676488070617826702872300799632410722863700488050502166540168928417761225618085427158697178683253006114799019034989771726449105172139907725463782806638519834788261745824660692923142256868402516541159283457391183345131569018942731784533306712431991652056372020572586100647437485715142775112629831383029112888396081209590175500750378392543186738994752742949516844492429476166346986607238151140575143203880655110297341106251487607696729189151969523010610812200915611542664802682530421084782618384713627255143797753726000320943968886273631635999910668430012738372708629578796552103080913034042873212532189712837723484921504796269856141174748916555619705857484035107371396087121132333316721007401858068789688971190851444141322501322709212932585036903833177549557629737578781791024992994805701211601570999991395196778337719246766225286703791817903962266212145957905702706635127252405148534282081530249293543141419652679925169091782956405591704467947212758279725791099097208635592613103550090823657805142521520301740530925883827108947922911464791255292151674788817095793560212084914559990987821011544768255936234521926574588645645456443309298952736795419357081360045536558650362020101094475663445544837976109573149060332908748187193849447395924007499588587806414053426624145234940866980944009891682555421888651741782709488157349591051088381781119224191183521995477195831052133004910745149240948479817761746634043965050709530387914652953949821421608356586398293223546426698316281081592024348799567412572582846294503604160060227043592049223398112032284455455618925326086511728189373769094992958995386194462729842882318955951261825163172413072410480729689144317955676032314602991492606378367206449242840197328220673059446591492043544047462297912826657406752974288174696197278711276361087428409271060489077049746201986514125566099422179625252086168284275775699015555439781574795610437076345521083911788557640313028960650193039470635468522191524102967234620311967345693561449630179311719307411495124888668368046026151031707338907287863546955327020259972284825142828805401327584309566100115292281670866317087471175638284089748719911547354286776418426784776155144229052014997661564699537986023554873881987699506337077506714950283822011681721855064765267211299448125045012160618053745090646710959775563189210968142529374398895119950490791635013947160113936236074894129143066468651456960404571207023318899229744513393213510725519283602503293065782034282864261815971759608902105363829166798394472063859556394375835437098096354380040644977184545746611497912879166773255181658566278842320194331559500103997792235810766471202205098263093998394899262964121514145884184453388029028560951149023729107213939801661483025278074105771522809627879097706484378369927270883267726731156176655783117181935751168121813377735502069834176835229649179071730005719039314335799389885306102652106331543980900370612897935606894735634949452274978443255303796089173317394216568866845419916553881633241418999412378006920361058102540655809427103174201958840556258087370390914288300343318650209064784038401138480934669443431984914917001905948028960033147894102099589717153031912772097344939788831755600610277470522214981624390827410469424160139972972835986290645216999875276364296637071146150177498013068099704172276425086180459901609970579707628175009354343388904378604561474763994897528847637220186578238404031208203611832353078137610353590768503248845130563534681969724634000346319721406130141518501870980366947846615521974663596094942670902575834923780937415903670178487173101283970132648813398922927404213306898233622598090085102828622933105650494956556527759631303519105154499030065319755710895734878208734781275414156667293989589541792161163495094756155929005721072360822095359916183165019745840014406170120287343601284211655148930273434548531652908912876065948050540968176460750900345594705756272858253959176897182556779738245853338074318277794167270538814518095042482577571745254220908349350417462722226942262466691580096289674348723306115975854878625663479267511765764833863637138189352311636604105660303977584426080878890913043814582984261298888361527260598834529382313462967067236329130757965859199110967822902618815980150578590085993624999123453285208361355988244510632332389978252694402525801196018132813285682844335132050026757868370765370489481347668478934812065405510994873120609310732949426338707590464186967520178070464479149446803757892022003104707494700795530313014662706020600865778244820334915905348966798814991357932632784474096984305242499356788543726387706789504922163869207282708018064800808924646718866931844219861044229955077129150999723750542531260021145023293381373822702537631937545048192473292378128860254127594010681105777942785668157482086342076138455708258688134413778108504416624022470127613349533221148098694209526408926238733052310496899301682135756471139500951583794024721105423289876378044391875638259849298869632538888469453639110745515782009693805625413817715301965579555991154249919766578909408920548718945688461992315596125469667754162790543265452274471795977957349269767212585643787940562194912042722119916371511263466296767153135732883397164300741601442805073622356638226646858018775769655422728306732562038156769569165966392800514294388652544813848930357811998514630615921798541574057784616629559474582564143654967582052756180605027426147989596356771168301513113936317940396827179998335618142477263783774869725470822773595785245127163197006234681596069555165006970730404786841156299723948186732433427686160645699087319027616393967964637311842087386759336343556859690682797431895070730412922670538877341249707011334478227360116897132723009581960597084369702378959552626736674303768429270844612909376077758659040481393936359202716008490867968095737778289905872580425596204825915797774117127380286707146484840614343029325230849522352630013700202213518140016612358620972111498670823546981133545904347623121995706089467637779698851814744139729756658061849901215516214156895934626272088468334018625041057078077860593022836142433916324164990759998680081886327309205403755141740406011544032464786063748803677513844683946829540694262192750627623278771776721968580818784678801742705782909386499421060274210875404338873693763120855157990091392912174604597159859423557679641210217365439188706276719312526023938458101096015876167362731060199644420013635445070044965334959913155451956557428098770141826419903895934485717553970657859434521188465890279049777398709615789832837699964927641966960661723097718482292288710389254004487923558015688718497072137140855669020935423542305894318799445196560040213649748356913599168302311592621007142064277812984395891449363034391188889531607877286236343361640836752420261564577529537040185572741583421472244081398824779810610587296440954151874422109155737557836162559554692402086104829840305593296432635775968821179152043866965972584009629901160420144897402565027548379816545403960062677265380458638710511715318994972925396225044168427323857554456299258371265133042515811880126146393575553753291335354843607829328402443470513931659076823483337229053307034301638241042553781483569576301217038388166399623464980911073211288940573615499560127074258899363289531394962399865833237453595596244100503719349384385807295039191973100596615815497665624513727412377255483114609194299636646361202853254195685238821851162704166268841608625381078182870683228256913027496298915566954925578878994637523503533544107665503615264336525928584989694238600694519106470509494956190951385642380037103476361777962895308821253902824396450753756122196478225593154438595606621002924352811558018997767578763914217260733748496578132417566117477999230547135096966942767143339801020546671611882937544781193109316279339889346484682882002087288878803100244414037710893635363918799487742414661630388745790638543746180455876925516138763844198615128867329740978942519763755831350267072391648596125649265229733562507303571397715576195457455315111392391331807359276406620698126015562322893064773684473989581683980825183100193197550453313160918715242687622529738486108803091240857130250077482821228333535378858890711026590248559966388336362735714633570672151294504696202742967346179856795463969550414980022195846298508818029491128866030164761052053310398678251394375090830100365443224827277155490907496652343803503465320622417417610170998945870873930464264770121373659880069163639573532948007816821377799650249806301685552938429977315837739268356506359515953356892906894644442507501819521479989913507470129821167021178070830411524203344432870092188168914197781893834129150387350329703729330032553306443499953116011125961911679873441832535476815508377289028016390679649671586370047136308911877862258974488565582528540070708395257243728583871118623470126345844085708660327569786292736905545719511423445650623183116438799762777759159944478603930437697102085316812349857542280629546127410271197806252792448374076517831990537643471015440906508918757181682587106078430810296314549043166048181281225411743009181637332919273812880433992954697216949643387274234420155856771871066324778140267524482378746038522550961690376290400523701220957084574571291304941968323324851775657306766006914674502610564642345104394066242791556332197197104622810147347594477233842215743350353120248967959747883831920518148768488131654088813755083146981018218496317280779248345610205854005533448998380347381054573168034529040936278984992119222930638842979200131603578313282871473331732977961406272586414108965245842993608010191128630853833063257027723657023814079605758104574241389226239303246195079352491894480255038512598874626842102759076921212147852977833746307375358263561971483536407010194299156958844743803633709448590158898289537467755203733767977933585369195672571035075617985865800681428946818848616939707591255599920333745947555554676228322187963544748257527918342461416752719712575973663701457761842321386806011971277121782787813402171922469065093996160820929150314984565423883515518204111273871621699620967696167571702472039790413136066691624175938909256547248146563811817382523600268746292225482009460399841064281224043345023972110595549361906048370871593673252682248895213954177832196099193963256777059719890168330053664531340533401098439477914593345044145952642905135342678204259974699574687165692121037739043970685679217417107516727648583419239697105558121227542034647741110724578343771260769443500380948101043174043092239739496541009075915975683700952401152543953027385200230040418740357358857443023373108324462722114023289555473706678837614842510087078462932745549446169055454296723593645047490959912544806525718581113636108992752863447704327504529010835137338743488933640554500602167251534800691576775102367736616341227588558580497514344279773819873622465366069102136398333249806603359876740670813904221174401316783024831735946024681050055896965898196866139934458253789322782373162231511120509009249736372976200150485831612627610193073743433776262837040634663746301663424967392281039436968577288664400157687709522506185234494447798105618637769608476824101387736409878376013704398213280308190148048644149691188421496789538375858724320578002062704959238728612317146222819935126691072768296542646455150744201806236731805444239951003655187499782249516060585134780152436109824068846922308500715942965860031618332668711432539277445667349175906100988436268775517111971690247680381769605781664776953673363585417572499295906918609383933842475579540740036773006359258668311858949286964719207713638910307530864439035880548448910422879794520934363389851742356105014269494989867656265159508801948877805744585163141572236131721313257264735302180179806425634847444454749865937426078049273388175533675995253201584046833594804254180511338783165149318005553659342016629664648704413295151265089885916637784935552556620733151081287053039995896400509636477340009006554476906044923891454806399892990345515958383486974289680701654854910265288765015420141873415756186064899891162277726817010639293997279536805290852413799729052621888432538824050517752814300733968498778846309438371535022338223543207774058912301579758041919804029596317447865917520583848924372412077638541536338480504933730067888827768194886840139021588717843564076593754918408494666777925111029149814500656823607214484670155355126060601859051112644008828689772218275637338419548003565817825724138870401243877201103277268045039811449187074320445201874343429889799144265559900890201469247547985953572241068970176425645292455103842591304015036858184665045156105713534710098007876509979278998153298713653842012025127448017063752991656880931273922571603318452700007508980209892531122478281837756098394540539383956771048956985203257574037715710801360151836375986419852177365244091996860835600495334508141671186162459499922879484803979038727646514489561795059970313516921677132248047696514274575565881787675277624376406439391162404732039244713410118447053515682219426395950678998845961971919482311531988759541467774244502466853900700136132640122087887256413919518783265087385698446224889173073309523761557718499484846291177517112373126304729799058387053017414801185467058231913385391714876830354135325250551986787270402468307434424603448212495668423295795264492228079399483140748891262806493704893114273244448140789291375941369685624933054122917749206062558761519809108141651295549515970522998958192801290408336898117836681431403125907329763932340584447529828119903221401138313184369949502295071804230792618586015362644874818714644805247239679457075480302234882558034762512539899840797616502783927864075692186274083267543590957993149639381981059331066119906534398030519192754484883463650839998486349410328944396377301555751691654089105301855719719555524034553409810113281560736076649283968319342641867876047864000132937333327020147526212215790259682558385122282748817828535569893092701544767693605055389551092683721245984370262973561135622993194603943142809390160261752831006609152640332422314089652636476881814340136249016960763959185711010674071583665029158351613351346706641533548705792364546540271028453505466226810097779233261129990142823391076715404558703444030124896487871043370867237091225233949061941448549306280074198679080363632681767978079245267502686168993935242399238269310792360903116923980682601996152671184163269985975028822787209103162830753927258813630465998549621190234728864443915455063963709184273899358119635467382304305449810888225280754894516415282107706490208800850305846932149607438405590623698683180916445851113524928961508122713154973019154980639776269057790455339194049603540427812024101145504979008863881440302869211143141793232151954413864605399834250701075017177369559516352071537757985049131574381591597588028488879793755687339437411009247195473818851135937900476837679464688668731402458007725598396879020644060116227034681522951199316234187061529083547801045863145296895204969160190396568781977492235483368937716828979735154727386498936622294890244900186894196829735707153187172119338046776278484966923357646542928912833227615802333842949544234615883300673578919081793246134137849311270468922486203779521316546031119661310507185796524057912378747674181767181854916120681774153830860451618357309673709175798552350416744199777094332452607227310534181833917940896997538933741707584113036534011568866401728103232990647605245371026536427864187419394337516604211435473610167067567823669651057298530888262246587792546049908452985039177226892044547727053640153496667008615703512019267839512629946518651579593499909919813914879283212825959109421172707100093244731765121614040592381486662069791732894709200732184381658114217994048019899159832672463911049757757083326270361261052722883572071071038605462222754875858525279409569114325215685078907090781513246290272588210851365315593200635687371199187816590299050648340706356922530244504443159082592737056532570854069257658161164530831901306246561658884702273611300586968741186969048223874525766990131327725953574790770726995990572169102262842051039735705988249180167406063840043941292073317359904687532609785995939369317509737002462325543997998184303315554364376172129783561039642205868200998205228380762441943016502453304865721907025301248455766295756501887756938694006597479789060388452730193392804431282504928345658799295008430331660111968866640571769743727010859129931724620018203558613807318934968447760970297707742978474656825511167246337435567737545264078079802642263081603597451547473084512022802981079797985358889250823325539466213026047381753973519085707382792070303374121354150142660197489744764341414907290673308465175751101362867995882466695882253270405768127722048150806254248024823913895581560865420168795907165539230431855967850819513718083132589053799627156055525271687985356546299936459782526108614848843513245882737648517327949328141516914144052332047769682595234236508151720903844031373176550661376152680965958815570742286151305524827066460341836392678694410681189041475063859974803096526746155641820806796413624779425092345616097909099919176854151381393676091836972262543185997596497284605996390078490662492253884657646129523484028678208217587358513329318084793830391180448004052211482640611477433267042449188165587745728057738032038842794543363838503894311339994581040434530130688528660065879864642351885918771287537538257308847790392611995586942019586250758246395828649474559749718092384472315260568169346179056590411785680228519122988711193299699087362402987755644036200256342743363989447502356377345188721714265680048886866698662369547440233320231838788570723741816161260382962336570792700804743837306296608172420115410124397637252012667101118368941931692116729643200638214284685172480975055591495214060223561685197048412987752264590938003569507626504938691567457463341455273788752784032281367154090985518797730755739460684445115489058868777940899990913951225598126202786450362763459904960589841441774308121111528519440245808035806059482511704100134263854653245634009401945463184631196003566658148823785835738981208368096715267123633428948139897661368930331210407872079074795548037231072341020094673667873200752049451644341729186653808544561217610051359366919190642624733589122236655786658028710727807301976436925007066071499527720709291539000801712411065455327749110261362488986065343697563762763990731120417360132521212125169367200117818978853031439246414506933752253625618772838072308076364383489775842429825225585952131250285194981919921147353118401556784519604498438481319808068443307818726446819495966883674823318996363783370226474886143887571706701152108493427738032627517352773013759824060284819951318541720089000540183963658712176276234812925832485934145842845671935217652335618635688774352833748448309716111402049902538527429190791831772324089870504932737244979566747981172355242084457995015495755901327419808581730078176878786826057927554516201814508278615068438885566557259414887771663219732448511390507663280628890365490944036986311139011758386627265740841783866513474419425217332297600746390717881943161600953464114533096196948437195356745520602530631209024928677453570512402063766385750308662459068261714534434534942773345217096183180300162540232258678443341723457749984354846333614396102894581684478383198703129869219083558411742474053023316881691418437591971877549318700651490746440641732184083241842055484518108252639602027148151292482428265804078470998215129989643308918617555165558016185244951961761966352101469851965455026680208976429315804577371509514579366280274423488741830853473175012357740601253861899701265509990942414196571392057999879196996863082315047333558299749233818262725879580109806866060065503599476899692117146664212560211367029373212272222069910524052705495356168040827679196533877650443020975189058025721683249698709904095348410492126766777732168711260743180654269562455566285270940207612535925609827481923938090429857665788887819661228136480861252580034397000095399865589660962414026039082936443621548312280304476168608244334097388066516610223431944334638356124041261082818025918208278470724144597035100679596826146609200540293973385467293257728720995108104876335729261654330339246364677150039099577872605903819664951748162140203934516348105735743871385318904959973262703358143583898443012020465943013705375422710366709357709595713625222403134725861442695780766999549421756118841997090459246396684708614605403726799428727742436868712681797937741453713344087051695805748155031241305341132187578726466663717829275551221117691197431150512276776923217173058667084770331799530882039715653163796485586787666796981876011162975585558302642251032271321415501163044169932900307836336202555890100517601384295770393046896244779901910272901174302398318597187193831742860100665940059197717260472014331820670444857700593326979296030167169017584971581457405869524451948799701507507067328468665943070699803501587068153833711723323403408138931638079892378916634643629900073882441283668211426337693721014575499900314012460482941066818192778472239138340487760425573466095036853487958021513321630630655837336219368717495106162866968468386570806186925880670166808278046182395006321929805129011121678260107122164563321394901590820658306684494912303091548734891912605890948428335323979890620855594374712875892147568265350141373082243911116452961284181953335330608141215163767137732919324696758809012625485368142661666095869490078435518853709463283893970312244201054834284667180384713481765747830096746859884869869968955004550911931934888446181422962281332288853160544365367738915938282822760897386127176369661940645970489176066835341361109215200161511512305460400482567784080880714251848766674539362926872884007426126200212551809271980396258328855438263925663909351364826153382232778765453599053560895959323011073917179207082615675835556480398006380597690847380694700912992674415290050172416006459050925259172794353349689309839281904642961845588643049983518926411440550523416684905958120413728806603350432511703221627258488729409157272643382508651492519931693479390364293336021961376456358394909682380061197229358315052855394786491072705785416881878646233459322223576242459247441069354994441420418117073903586532057567384302380813250042013688758511445073369107470760927770226338704064132231890013309995655015931667104309004785340758456938488360351922064957587446980908230133533969012016062634232389233872165700371358349202331576057623806340636353386661171826102138567008354450337840618619324520412384833170405653798505547614824311358537676820573240241121710515162493829648924576046615832277174391352627870700996259984025975043731357040697120113938525581992858172390526584551836842581939101893623402025337096499282976319185177476667532252176630599640072178539406462637573693743132365499619455543112487033166601516837988131492354340382732325754438659509912092565887116664510961531743991820912975200654960539085987379107131303708238264589412265304844397425968031718562548516534750909748588316831419649204238151922849664589464725919384158150497919265588725329194812141364452708184402167114137900689708027244802874521592590496184639387732140411903362827213221173399931019950370910039626691509364491728094876111412546116785244838418918677688619023019755536307958684310210804121292105089372038905343283559085466807215571605550009249594044938517831890370204191382821932228120721801388378919831326408682502474630897149904545445938225768512603811025083211482961644194445178584384166945014674271530461049657915305795093996601831215919094872328471029999737914878976232379205651002104283994770466755320754855186976974179701457148862338668600738788626576159823034383024590239031213178174997217073327518509649844113676099005268632421910404145090427595329218825126492010329710615440412294927115136813131772862115728396037728611617003326435041095664645992636550588194621548950774968511265989784523195792410645805759509718544131136708331552783230506329441053001074908820978642244824734744545047275505803418128714089860401411665775938726613526226097856381517917873799773455551495561353368783920259768201664224753740891090217399189901118979117320269374249641080066586992403541094805986715966790616963656306774018562956480065388359267802532231751309216611761687769116610461490353632693131846458467559230019122341078320782492469842093027534357878401680787138457303411679866329673903384225399039224098941031649683518913710574098782524655745345835241887507276888336435802890391380409426609971888496476951006741125330411296257432306291450850460108065772451927872538512905378408878134064509049381243936881707711543353867354609181576725213041840690461316992529519448370599118443779057044326119781280896381262950086658832614237124253469365910437243820604348894041600981573048011407015961240328376662592395188569500798354357509132643667683221259668200738238586441160360834446582364792366773249182055937369295302121688622182933195772926515172070990648773634837146898182876153207187207542810048751994289206905840690149226496127679835105283189801065812418826892519901576382424612801380327555556604414787612494833723675605586087398200688968673729683117496831271369298236066553773358571068370242704458165351469879929987680531531736065406341286541051771469956829832204369666303018755378888347086455778812328216046956404144436085537915018062301819499904443389819879820802035995351274674011702754515415001561309574958851220178531199651743685200725867061335335286032060379379072733025073353944623999626613341393368068471360760236259187298043534765576615592947819674044295666291411494223015122788994441498832460607286284224351652584868427197484918329586206682192029662837556230612014103833460161416549868712501408284773942495294825565013126006798494867645482830490322478214865821721486578062929275148539311068570632318145603017835866540446594925691718305876969726941572735764209627782993397919521552226092695767809240507205460826292562644285029680736547425364683396823676703456533423820033805405812539743980510186083889458691487989247554649855172317750089601925531611612819506107162641281856653028089018471746250204482732694595996448072935748515283676012309925252290449696905236373440601305227598484377972103371636262004664208567866208012342304371227079584043793345010733852195842407666180071667053974242736752278340642524542818775275541353760750473335050832241995954176664088061917835474266301971429105707292733078938448732291666843518617305505871044555685312869009752151070877377115641461897453640463706469701723580460293786804100148856041324525744563802344446401006873936144777385600177195033405377536201345292271611405593624511153936844838981951323557795956054538437924192423646341715004648127947748330512777665216066397720683005475869621344442027094109147793230634396311266147343626568252780119679429094044729828710751911874533605907845452586864185822086896598196588350052479192222882421295017118292790670026378776855080342373886876049961685572033482883965513842596348377210114502836798150702268493602253632201693647540538520595672053311741356521927440158367286830592251541798890146999891201019328364265127980806031797717229976783302398504179697837415334616347340905316738281743808733504908064147772855007929760342636576144636406385758406734309607857171746866031738056293652643807860544858833210221546471832734911405498876558097166152743731178986280639267381887888149599174257397263641858165508271509594227933233803007081943701524225449893800245915027652901550754658679354079550785913613669644485031391882520458270615335365047216391334672117419449495761560641819318063556823403037924602963439102538293953693533538082783652445722403778815736956913397573163088882413960300718507051302085149020324492274299042956930873350616901751759271052994741205124930460722122639178982758950860923416029651215465632483621633548942002000506013575513739216625644542678199781443759914353332273514508076953987186065175318348017043291553173673505688753842851055408254316433205502849240992574764689873408502939318820566590791438419696832535129209547746974199283699871453530425733401232924411773638809951444322374367991781098110754681393998674317943532614211114134789856075071004458735998018662363955023526712827882447341730513463387278849047057265029980133928005568670891397335421106900230737210638422608336092837986751528578456459662586423110543276130603583559075102950571341341795507229221929089042004442125523554826896537000560010105754751027776389710420586524056580015145382539616359699148605597406775259449526725180418029095351125543404481022775811754659915988736656495938285007457706491935600824845513881551466138348882306958305851343023619418983232545334200549693292426503910222898245273701127131608754855017111302960223619955748280485553547420349514995056001578536852625254698634875816308942679913943568977324576236203851681756896650621358164894070435684381023687305530371926819745055733542450725326899179683955258233624185775708198533396353508517522639907776965539149566463762662979288509290879255252625118601714092131846127947245281065556289659243813862118420123859185823928540546006098947656517576982078186702862051200180219383881978237939814425953136463222699208923522789828182202530067762393641438914511474673393329681462558825820553275357691779465203836217564073523688982196206232608023814585573687705851165567720438446675506334930074831735978064427136056427971142975148295577442498041965295527029502226598450505360389775090459510090472844026112714601755104761718809055769598409560283749473751171114090126708852669459628671012743754803070240028463189318531637283116924888833624136766841112253788325738350970368904414346631956107843097009494870636834716316765465827715500144773670568597063215568943246704680399546692719877702970213396376392099506239680214006801779485618051988240104650323699042055204035620389885537015192058506953202531151964293685387861198838821151157941628473487735262900441863017411468879930629280330550832603957849476401650175622150565586594759878789055892485072681118570823802935370068338227349824618162585109464234588463387868113203043070134404085859773467249271284336767728667584726348014131626453194192736325738831665328503106795719916170921830667097967700229369046956152639113144395721139652411140358026517277853198320406330532619827768041319972365636925307879725575971121593578179692186017598736608949454261886313721793327045277653979043261184415191183765446530015060002922742003789473854425156173452756977385499662942939578915179612725986284712929880740142197743582504025928962173353906628118569041394346492855339487184807454900293730070218534315629860732717794802657488234723121308659966025705536959055772123992120696737670867290571212847879985900134810529105737462832230831468984568429748579752949338079395221000604086261323304046728949008694542294761645572978100904513654560769861383505485846608910255542667237478154985474866231622749186452282472147847247009542831882575646619302380404343256820758421216064717404176453940364563281740365144459057705068530139695971610068128703590441779899677871861075949496927500104649453811497791612305419305043453812485438327845489665154279974341093682301807087751149128878080540151868513161515816522524893877463662919470789232694098932801072279927232179339374259736480463587427113218781479117291505197422350930406668742358520813830825742280223629936268777952463386309235541582225642474040897365031019941351922713939094841996855713823215676508687526645717556544625370170948092173315886818633442963279745728152691711726120416355343062217077623641103777290766100161868325157790646243964288270058620319595077906502753943436978322098543984898916445919416994493642603821023646517546108973104906252719514781381482231753207117211394555181561258339611620344011174421845497966516413729293278101059000462042171215101275176529577804196744796086461412175102151382130698214694377380854146263125048947677480242394191388121734449685727686037785448787057203155044754224279003084458698487657255798849600818435550243713072792540930163938655147860833818818083844152453879711105021411135056279742043448653190736286411652588457720992053864575812913991971225953176512271153405521230326188163012007133634131824188824527500875528357476622655949804459660260829206308438941868411380329583970612693852404557039350637878705403476608537679870682222465931638719273953711211278425404892399269303826198699271031738524045714455430917000986381177786607310411583014174029268550376016294891371869495210392479621718271971868376160937117148287565981685536763217585364480590799435327734534715702886639474058649554308057488562564788744854898724353742190900195675559451537680762499285426342038875729424044197894881842723570244487855081911545391210776867488370042229286143730910641435403327589981534894532822793613376161326849340412652500790568827071557265612266544465490051786863415407330956974953173403193217088414931401099372359305376568054780021588815447936822994722644212635691792309830007225022691457529887858446057596841505638551492764839206861133462584512614522872493257900859890128012141047479838840367254589477209364689517636657265768704233027327208284218694157887402522715542220925758324105520935376396736512641283498068981733076497635754553986129970174170572524613019751409988310265239047629775801181555331106658333541520777896443630186320937497508311894041024000082915165202328258278543240352348417282350331765038861823065572636411793032178283504005329717395794548907121965606805626394361613251216603928876961294002482463446227431462974495444715533234566552726423106187394278699429955355727062180365554884025396057597981004219041100194380481098325164018022704366010851832465435595210407349654328478716697089045696855438210334049351190975278806701618365421955221189162252218963325216752059677358427174449966927751978779631827988653632018947657282023377483802737567628912773366034021390878008563429847160243622851454754296096286795290790923915340666358751687567640685148508670563170205521815322871449310445142041410126667590207831911276282745788160115256216891346125708736933161549506300742381463415357424946500493413976892538982924536593692857538405648253587598619023828922025460388905098449904144807693895053079045538384708111441330597794143288172309545790122105750931588083672192446975660861865499909313577803429203924183239684388843842297774812854910734025735976010586781904905683491797968750071129740924262670758595638243074629469485467766601793582102850044912020947660568953154772594942766563576491587148804683636687926205961134719982037381253978737406634746838285801076088371774176434305626180325135350479257175981703586878159941249242754755713376434759000001975246050678421180305318545856190905215095240470286983659356419719178613797279744516223890213055561574628347046136605879217529632495086578487394779764019179454630707770338789498563535054980756506240070876936165993316979230399219917508387166411755286104582446698555507773454334200312838823696840377288763846955538025513579376130157880995670075291679254615333585734789705766234810868842827956393881076561870141199156240973752058503228092712391492456414120109499067575337923547835858349663066523260337401284349981269862436544164545545517870662850468740424722070216465381828578254913385450709993367961666911580114816380318572898546466314836898029417694970614135875890025346216711022158134740952428132482631372374540835588296875441514123544318128773864464004484796900186772217407744758140074161178430093677621687339157453663821113193401740153742722882537878923586892194971890526263591696261406721075544657258050956783735664890192526035604687048755238093344082200717629820108557535551106219979932771499277565227452498257762552495278278039722947323530192006939021662508016860067267445152718530309774223636737046155752814694172097506544342776365653077054043238713875093256444346954899799428812881596665095959936866993165831863948392186392703767276678242354047193694677803941825013840839003928551604575812759753328381244973576367784696590961325000996383861631467915764576479065462363287768673396154967772975048599588406062044043186135448581250180061780523380669453280246129059274806382912038266171638482292429160256394396781623219050637594446769004823740874582721234907590756646847264482076047244864130818669061000506391437667403926967079447429135276666449947751098468227053256535351091458046834698520137738465513884779473121069944926922953921559240505210891515860441058479636330120717864223842341321397236305456712985692387645132301154691415833980677767187033167851225864120857933329865069967593369428323271857598708387624279671684328285606525572364270020914963528960540318847780909489129524569347978766506713097803931412979798189343669305524925836016668025693608177852810839470787455352974817049451891551171678420050148281899245257411349444547017599459436452784093655833549332578853223579563139996786666233603085080774437250579197054383155293872305808121784290676898717706696170910889751420113730305681384289990136106443623618372327112050071212950842351786117230650168586262430076306271644462332650283473317781637544759537605188160582532624855314623734792345798847942798281049803906019399214257533904075159605394648438509677470859611907146183471966662262769502676677551373606038894527869761207270250722841845122362712881653506491904514220128542913830900470333654144322994676644750049829763149344252962380770269958320847848051338046943535075161271300857505599883902121710137571208155293878527577954427285136374942878736875518678011673598292827745628164200497151927376716310327760585508619371098376993455506654609230691464828866489427878899606913488605257937427340707072908036416155950604322944605575605195791809797255753307025169287098644538804917746800385730739612889614070695368226021902436155913904185377630738178655075310596220076305094882077340479102876737567265592860025523535247080162269333681408060439713097686855552876774335830828016389791954348967685417478320767641413608113320325848259546249521025581506245442816026893008096187433412346489916246136763279368109383885727488178112003757701790133228145555550243371871290875400681385534628526591072553153924221006181187094168050377445770996666628216734665786319186508484334956809162314544706998079566381195109810611945450877015768233631589916954866616848481889627114055821120033759362851789962451326734754518358363107634065485938170496012817990602506491077570374675173810764484398885788641323519115135502563430402468162914705288402915357950389917989716652218913086106987735506754966432196400528636903458480916592959958826761227026490321409965527299849195641354927695138559265788143372009715097970961353209613983088551578701985210387043871997268413836317204622879782511062608648460636252929752456526307651694382282709260473135034134757548929368310839330219638483410638328534162375882445882252942003417070235392910686314367831611415086312960566373946299293056952077225566137700018892330821376788960796925601601049996598978864500382253039555950977929504945714160124705139761415415345938583433898022505330751403197700195835033108388310987496570460606212996281189821576949477713252974506158098183192966800893919557103005156324608210671648509037865207708916855914748107342928952337955998292957098455371923344065924601832041468741672180994181663016816999298966606683966171995542868085757441421929041628006461635874775054048078033016937974253014951466557437297990785501663826806111601709241710316545175643766414707092214081262904085297050799082077100102510125898302762845583373357465017642689379352767891498154659478312160173082999859458411259674049510839898391676979486425200416281975806416088320010248944846071187427454268429462134621984451186126188147918835140230203871272550134927123135200180195881475152798250313791782671237850382159664949604718722475642919498222232516004397163263945348015351631718260544505212752802987863534382494967614025429519771433628549034543690515050573455826397904621057598858044453626870691407600498850166051323452759234819342397340590495461596729156424409815897490018117746020585318483958868177919500864146790144096107273828423033683061869820362662299262396628457722979141837763383943740420442040345191921724481541955872939253942959291720310222450403994459397246233758136041684624724692892595727201376632933963385044353153438061740080763665390413468218360514356869096666945201385807423415633647827647626581532965815579671699989862060119767048252876854547443628337453833635618772708050904902761603416475729415967821949884741407289561629510618040827753269002499046838216931478558492474903675062594067276320997682691232154836002961519833980419879029636976080437401315215419083302008363052538082944402699716424806901533946310294732969802323173393651376167239646057208372281200756957480578536204935166093766612902756460272545916981005065660923770942220124159595645672929264609996753485966694972679351507004828553888545771977095225500715843368962407640314442746532913343698884231890685257586880192300757809432414345210512370333322532949752969614127003919708325684630868522820082139515157216087245779871403564499703423611398450156917562689491988396804343097678444911589183433648160780807303583302838115192486190828868463636921288614867043040647065015108574960350483456549677887255936977649137216083575185032434449521649756095364991079407840939228106288045585243232578748419562214315268124591072051256814490089255213643322059226944034864365215473180337616316477050367492514790447736178832265191482892215877829817511742809571577276695122938980880922473037212211489951280619596393739419326663198797820105284202030070753556645770294541410945731488718994748740141475736438154951534098101774499449000851471379177203213083408624464842323453650098601074810823248213078968225125680592732139995801574235427121895634715894262079640059626310680273446437961494577369249289762276640095522118770266022008257220637276407786828670027683839571123851183088545346264649076691022800017972379314154154007824780568219598701703539889607342354679941194794075708405445369587356425770655361625899062629177843016698492780887752355874729118055540692754763640502893892163237246569057948726648598593535311393562264081324410107841065963586756201271170513921530147398810589455017244974817480070919968905208292702670063398226420994295008695588636424006086126974287242896757556696789034784853906362807378350174566766233872983029296629119909374574279263594069944966234872065379418860376140921215252942322839812257722980882334667068814017996306903908458605944260542345540860169703543726541935441600532453824546708353426854916641216206082809194035974098334537578419220746513596505594308670145862622762661415101006762768867501614838598141970656453721400629453191172974929571881304656013640804049179923244955639176167306339089063977774879198794368872855915777738749017263319999262465480573238429203425912582706718665816752058694592717063878947955397081811583502156192296903380583162009146629269242419463847959949593015828643070318376154973721004043178789466502043892235524151364703233239718252437057013395419259164615696004083338826487129836779650938450945310904069954921910324350672432200981313174125676065031680986180202925823783203177138040127770776822289792389524426952571190850172934344949465398564847051374665394235359617028125972119427027424088921489878727414261811362464641886454709991818042256114329920312392480048074775485814774606716190185914352327871045699825840400006690868179723162528614891291085379024667340907741971064384106049809658136812751449319878225927936552716194180106974532828410841986554178060289330143293880470112706641554205366792356987843239671102131345830502464827917086612225299573222451480736155501112909503956327283936730480911901915965122724445762329809412391243151848538759143733910683779168585238105997818814943858207002289515475838007326074485768524148057724657186091623566549296181410000987371815000886919670635280517575227714066440773420710643549763146654457668044020827635628636392699358593722440773997799478361351233328762281493603760897994416016621122088646266486825379698563503607037394567193293145759880618865742276093464427976779080524186927571625396322764537570913635048859434274859674828343751821553915558351620793975738523354607861559463821436252088988321285850577423240949096215758548191110725822047394906480276241472967784431159590614858547472621109196335347482675061421856430957765131047144831439491603211913924519019451666539296441549539537723406341920137292381220102256640038197988456825557034528113447735505774820405842553936503099193857251120316983615319880919983173612663900334202387682856906314672906763607213837434833457415921825461788556408484657705171200215719261505796541338257977260789243732248075036232767500820926366397773336039862259822846190586169074229147578872223324382597750289592298171121915215439575586633116339516100011908413441410977164165207441727972861019508870463182019439872021694694638717249259121476857482472299427395820337153865442280236011594313858779118256715243381496045740007495616902276838065105888913818156644039686377180346816242434171727118894052526760312744915124330396744097178894645100163489996857517457354426763427491155492063441577006325818021546005607871177037734344458711420139017795507270157500891607900890550775357553436477699762854945085453861225100729673998854067828216378573228949497413275513597136046360070054663637416494897208195604728373233792245424336452148964687100896314241741244742231543563424634019477565853938351891299044591554608435832121146148730338640769367929651086177940296314547024594124341346663777144047196697408889064088913390905291181538195336298028008708010760536257741741773954421099453148098885376726987410826203919642213531704342651147424860239239655357949716767500248735632900337724445871098913606654679324072433883373680815721322161107775835412184598752094150574227620667620068770552631793940183285288732266313153581775358169541832241425997517934692977149921163963626493517128397545641436657536922635044987940864489988019532908573020452972625782057726416654485540120019511582078958468225507189576264472797844561378093494716779576806823479373440164821030529910076824053596316840706359976222464225848352625701604067430133333995552647810761785947200945165387854827550641631732632560747411234885326670857224909529857046155286466949556071731788728646041688449027527320939538164418671198345845883419966585988955160870422895201407365746934512412020276400946079636441281255705607102235986552164747548595727529320282564047125801302443728039002403294164285602024949588541499186989593309344502242898171404577194153563320284409585450767805021198646002013835915245823232339373761344029450523477121609710332743694422779265385018067238767357961097217636113305742847257514376742576755088754860967838801957339102843531534646821724870564493992782419187762687721709858495457559592142876802035011518188420315236918956413847648318813704417303923088144255034166665777277425252293248164994478464985275892427982580886713463331654765837161017751981583403564315487400778097465367349987044448224288470267376996147776472116570551951725148511341668960109397987103174252115121002931646664912298678378579483145873200551058286850957843820249946399778324909729171909902741583606491756477958640774701748300001366946650601903626435202686689921651435335714634320880491426349037475833274534177313315072866480111689020317663774287902808440201763533525820436397392989292877493440857536004900031520601456979732069210214568753795012138267199584736894608177006688589139932255940870623632464854205841370938057723152685223839300062807567531254821781330844830998793414509901931665780632543254201902511797619380184430141077438508983471699674881506142567745695040778081861008978811510501256949694109014329552506000091109044319730054777350864415206602199525155433530249341401524918691613263604475053295235489060153360541150541516637629252018926983357099751079167842694678756511554476481435532911067408795147829686012321629648842817062715998460355544023459117727319873265201786130107317956954250730252659289993982927358181769877587031045650404172548265582360928503250600749083411075705651277775302018966065645373476146162829051793322204807867392653383610046098649695882423368596073448834598994104335353211128682360426253856469577138946046596709352015141096327163645719148952991778181099873612513524297348243958784511190587410163541580572556006197021459320795610852091025858686585436580048106209476918738978285910808378250693765689035741249782517636431927563588235778627635711926125038990702600003185528936500117446618339582678876024168575919168319173908521789147812708921221509324758290207226812027015212120903342330510773019176040815404544748542592976435903036612404795052141715324947710446356361122266950013018741688515335222327264119846440075625583217854555586447019956829436650694871279030049853245167256775066849378764895637118315923905071525197343627754737969176582436349832746769735485180781196265095726092915514372686766638785781004104298820141172149545054894890530969306099042531875491445300924153205232006502871333959824206204778195589236592369386534504882457254483919829281411347200032951288393567633796302310957078486720109061281764826559667002067720204669489861424149757025137785550310173084470535065980409281193061945865596429293698061396244096930642123728886957717333885989707048528363556982756536468367179840951564666156144341810374978178134963946593285946537106766943703321392906918559579412771094721111486243449606883776995689087614650236640925796625091099026920609195617687909500841399091961352624399473052711763101773777278575709089219916311114214818731139222811873844243664437802525127082970148674419416237553235839911909710109029487845951815068203761735739130763065355237244334473272302152690597060243447809690135725738038694881940471654793170640949281400961283654958491690024769106085869654728413598571434148326638073604998997608790881503547777796514744069533387046189059633250787061806213497467503497209885020696682109502368627583305767195320020989521757210895932829326216163822279994764011095517544448242167764161003435177737485585480298904262507072109472052846533492118222487962669316599921416547430927050205402187654499525250949555383514945641478153131079349483070273795407407904345043144357108502445763427538594810273072594429801074222908082005467348947405278063917025509325445451484224440650531230698338499916452875008603104050274421967748188615616196111457615313158609240171994996455428879077641347571224739912742968364385144446624541112677835003248378252705516460350087069707048614700227335232660235352126808559004840495516441953495602338025056129994241404566330680613515892979255797368340335209484381028283882182826079696247642171578613549383141976600438114096874776784726547974925296929602218642823449050269190772633439259626984566290856853742422329944019081824842725836434904863047318446964228950140576861773657385109261490346538928957088644293281205526736765506561674015389217624192602290633331693946672555503271825774756635376675285807961711681560187511994189959765706334416292703178526459247179009873826871627208370990661185598433627666270926030675144091800828045687237974354388193136092254375005691358705760471026676427781271343718036091982820443653291344531904104761166408428705424020706709052173983386461484684570254214965939035334492560142782579325553165299741576203161321770688266343346848661854860036943019763879710890516290437264507399628366691409760692132451642389438426927874393692982817152697568914844381347878831181151020955227912915743375720811317424194078386495129280073514406207390804391423979995606725481928326732164243960556229721425469956804600394255504507690875415606094102730704741517588462274985416941194954050813856897400167807074488026460917389856920076382357519957726623787252106700773538169995970403809699494776629105358795274500424845677006409850890924254449150773390874446098690597300583003658478177534710544796633629006230494781935870719334995961889796045236918401990326005633712664294021876884505675312273828439366160849264197326439692878491314152017031311792050591042213453668270621657261113461833921237090778332187127153389876645464628360547384957865466725066478427735384029173188233959470066664373328730970009827376046198938484993103850482020120314995617765784607855985638421493895838146955549254495269894836338134875584895455151219821244938079254570697276218326845714777132727839138731237613829698749878862079454873384544501455417829968049116334062624181094046678023150498122561361701118420700136333238658847126369249329968108857263606633685559680311532242193669492427826610376004444630365417328519142833674400424710443110962861199793135144602893754083605403135753340045019604581818760207164279749845845962461233713789257778733844984760912512917809172475398900428456719460392319947609110951911345221603381204305040624168160868303275448110430983172199012363384360684686044817735840698455275654722583273464061997663272695594813614808140323053356189996281093918394925674478136649519559445296142214893844526937622530010207792045309458005762092113176855636659365132452733353984945616829893686329117698694321509997587157581204557919739005395635331604676167675684951006504328159769449294162910084515930666931758133127017119436082368674819988357656431109223415799792372547824894389111916970966158619184480941043506285471392426434255877572693277316324943821852415659940741455643037644539614598827714922234380343577373100370512131112927945376908540887369648125693502844656129161354512157132178806632494463003276208045325535628808425413860709734803661110124979022398319059386555544520201152881992360616261115799762577553222474802674298923936008776681219808905320960543981938465377294416723274494320394151399635244531345538691851917775606353300512371884552265059361039576862466656832726695949525364673241569755366011518834800096652087232700466004797387689843642287049499364698670718600792982080257966395785152433864802075332014614469508211845717123383276287288459437291458036246544537821166075223797060090029744036065445877007869241822722652402663053896343294543326668425178793980923868937389381231272684951684933284188298942723968571254968049983862933902840657538029263152309398751741501139875381091864597710627176121894360316432299203369718937905049763507764473272429729251959735608378229691439216610208363576859672711038713989949848752581418617328732654050536382613247507386553197689836937762410171893880345142101009824500777638445789209449945512743313755651932493938774598334036768318307036678993337417827769106585182959054419316232488938563814585077158966744691786865750542639674613488567393356079352527011538932361120540702927102417724852059805459386477501455816867804105677930335159147438437014036033626739571532787895277775510209871731291233547294573492651365556668287151309655526119843694590449675736310290354286644808586689957671978784870573967954327027681332886769929920013470980097784675756550957804155433774585524946704879523276211608163131994316901174194571084107628881436092605817412506230070495525640854140983921788481635937067242904056922142806647503097362383658638193088190360296680869968119448899870733430333662646610340045264138529193585183931405501172263058099068056916560154952708697013131124965004200896465056576917590180054776814294416951014700961893568810616768308985985390670706006935850699580982973296190972969332379628487315584297451598886559452426006251113712982938069909492785052991210709808590227871815035952266966517511690130546622489721243632598340104165862030245442585036885984066230055249819718373695052319779666498289245629881946740112896536985012344751253359587621259232602602894313598200281450403121676433135482484983451840973131872383584727056923850436996792683595018186451357805270357604244398615269857518428262720363909976421676984219713178061950453675944482116320030450664393625143941206966972539117249772705052611063921660990271649539548636799925151439288010810459907650288592600440673003916538127519566281040127685638607676205968143954758663073941503823876357783151243546433260816779826851686812170433127785985119925595095517050691603758979843638838822062035334759331241521280429062020707618892154108632058646051152406409562575171576796920340657417229846504129872659537568180351487314901157553506584257149856691696176698940685410844947119352121618079740833760943135831420245170319237089477514544519318855162364241842508016729600647020732868981535883029955390912429869099303900697034406632445286187598869361017371309300383592679957385429720363320866751575791000926627815273937322852223298812384384351074046239062369828128598435308131065759216536252637945025783752707849473557964974439699568150883400365153629878575244709135041572890216177144226359510874140063961495439974902937060151813629643129566944546921147123540818233974413500518864729957293866043308424291064583626966284164580104375817737560437490449120106777281789041037200588740827115016955771229099253308135921417003704832175293488072766544580272777697282582634009069234512363103649606834290729218931796558799714576234570741272017646149704275123215774942622694699648830980282973642899050101229807471766514539390006163804465693139260653573654438197259813019556016085032476407236188464882711758729888246591459490676431069300288450548901191195351781594982991371727023650024041678209832023726916482469766650743921348093739589253732218707064198146750279094885432382885330278036340729848113007110162182294239293629692324935787174512563654510178099398598341914817829535812584053873694018641545786208618597672194933074477658194382730842001089009500927976390192385414389448531170532158180642915380625810204516191113712592442466661395010696355317203486865246311260756576090321017294117196754028712654039274431092342469214437701178392265935130047254285450184983174380326533013686271581713270550022263884038647706031116314110084149039476571039765732052558778203555094621479265249376002498307767119010229911917313659684705080907775396516340209720957958328961052964600997523284123730116618087541734828179407321336763654053020752626172584856288370541036219382398785605697926527057803475055082488771062386713508891883824904732447782875297658180314523540295723129699465321902095329296439796199262795956743695849714768561102941426981762744947362142205051439869510972458835342934527470499800676364351789827706952962527241200643176272077274782697327931723849410808925546999381300844934459762003052408039635787889884431560996779987699408264814772843158201254807304672626913569358175874900589267928045706954584232176644887290077701502515159697831688706185950915203033123511998817127251367019939374544430810899573422643321642904983190970301991583245863727720314593978498867816961260647108150592799957678797736110660816555490670927174360922777676912645844905474616449062053468046106135239286184461622941246854350460622422530494092363814778595621711708918954634857633039084308893538463966466866710056848166444027828963909098163359453715244278913411169608967949639203859545525947236007971636284754903941669954118815059328942161842474831236323118865363413843693199680459280369499058899414517266508659150854975608444326394417918925310391550770098360379122641381714790387204098595436308630873484939072335942130054380584194760792699746204333668603565189505163290581060565105504957954576823877511030179340876837401064741533183589840315568851608043298780836858814899249914321961808238677623736037619988965089916253505567188561879804171815644761266066741225126769218756792222691505221690197962842984453589606780727335780881584482830164360648769478958038191830113981413308278444521683443563448829423219290138085955870135475767125446756586245048185490905237346386748777513270969297404135033752496144479141675567616199090517821025368763582134175427918271594807476734686741392383903067815112629618506095790513946198207661693382614567869340994694682763240870914196407097904168842636670562452079302311135210947676595852213652034168060287741473011133302961167632962833679210476317802940497965244411227186750067004452799441576429669269350084066526761386449681074994649363881648079507867535748099887713740658648881717911040645825989775728946689625793467326087990900163301600549612789632328466807042770648709482310131002392633574293712930579353166991800094591388803874896347284175642250898764840103972033040755913684840231837879681156679168245927186086068928326451908823523034467051050470900010936029658712149931245373264125635559945644745855498743427880398708555202717697304912408559699045901350799663206708289580970086533892585957259635517048976194841899003400375412814624607646692205582032532653189864302945263397992617293623594254834349924382962424708669045147959846190427301671743476830699128633653739790817745350777800879871697956636077716735103008916582509042596477140755196382335697733517714052147946030419449761276485041633375924260282551681629937602512628528807011217498862858113256569480917209233033227240352469681460080475540760897791154760569026601645170772965577605473718112009054106382932149548039034277046569877707993029511744998821890305112408169606270614929750350211079186986077320379868913211982007341927465485895054630282148231104666082958628027900408170616686611582376746937517983773816714341762301162484660459382072599598271151953296360316463915211152620947300299102158268681081360512941656476299883760917976672589107532308515673439145798802745378125784153678266539043995562967309189953248798799365781941512054390735852344993691633087615843156484959336071972807487399665526454889278873252271957472306618172616703814145712569198043488366912274365382576814567929050457761510614943319699662868812624847584542165935567392504417505359591606544077367322631648611040977621228886398290877419044146496724102901103860624385237988815248815376533894630437304533732198432419471608382837976894937766520225558009250079096347360939141256877979324028404521859173134507478921168770641309333890308312407630974889052046621380089217956659821493271023121814675632901658399147793965676192959824564800312430466867800617094366681966195620065528026038020562375479869841832366451125511402885490206399674624099608043679318060987108832540274073935181194971768713155570843364434461172604074686490256495930374509407439441697969425348380513363859317601740996892172507753811940415955437708175659372376136478986937898953426140554464062883271922940067513710246106282476182883903505944904575123576431017669863201434122408524959557200791589219081745753996774067667238465657586431018178829285192683595239740099724934880368687867306377757755251177782208520977158858125075614479657960505810248838432198571198248178272829955781308475684831044831107989774711924599872132028269417931388435844874127428631204968557078206813195957511062863522953559733349019698310383905484621295938702585277134758010847286627667802464826667463639302046575501932515836098167091037308460308916231962652090361150984884137367196405495635698759018143309101718893346639641300242521341484419655788440832228042596887322562664367382986327640729358245096967687237613296720759351472538884378603277959469950640051488945333629834925832406988539747293490824668603526053715360820418910803495485715870083271245033343073090264665473513277011744521502852301481525585689627297617738927012307546003144663138415922831949889413176038156164805455720946337675551193365937236069788213216588164586064118737960360944804363162830040925454716346012572216110178413332289001885583962865016406009776095192325587678401322511125983439962733990370419092450872836222161365110252931023049919649053531359601688017624350679651851348495727765967577886372517122284377720564657118497225120512033999791363008776011965902959326489810677608850490969671023094886368638242004339103160999937352250755421824494985873274256933863289982936399813462536005816192203957679137329022061420223163370601161527855263648571997617673133828852364606912980061491323940330610092225756404080956301341902710003260963052414923358952509208527094293825792446933895563156256545982848336851919080577041174027113132067767040023308560899909962695435037555847025824767012468405105956435978239691218996111133909576187144128117570930504502452151300730030939600831708081727531047735892328469619333973444910434827130478495769161765295076470284952436015021731268311451559121097324575640727444970178006326938187846700083611067259998009650430558384514122236834637433572843738488540125299320624654004494053580967700198836888058012239190870457047426524816279368026259766292872425275999245825335717188586113371642020911768341571345053332237901463376563341825962851018192895355301331749201858265515790736581441700755042677806573384093470992575854072106504488193739163904168702163257043246072489008762349345944937807067666298204554323849989386729274111878340468332673833418730141538965097011312429153018941210014260495263788334022659378723684400208951299719105949790866989193912440303384763409526760974463199175136412676376191677010695763265238207306387899460066445219748736296643391626672978527089013066471519841655077871991886915977114547403715164395239769516242840235832785814625639482935770051863064917030200441459894381773941795807410575457107526602189691924681658283142558862711348430187189702545943388496319040970592219723700729427178460214468530818436089717909115750610346796722458872451017485187747128932725441629471192996617553041319825304319897805814998770232193871346054710959166645848444138043368909149646358066709044067570506710364086996589099346237049321088165233055863624514674967108210753403115195062221260330054405842098427231941256681816933078326573227678887207447702624274248535714102045275611071268280108402411015213623057603609280124908836722816755403612207151022613693951012706641136027076129288109027700206436246295365844130173130838275315182006803586158234303656368469728826248370558089536881905721801082358408349197330116821494530938492381733360254332886383523041944305107560516166284454475979186289339224478328041121541767732592058758534071684644477761238983487634349247960604511025016312624134510742055604257216471076823250555454161621973042871453985320817529768420044306647511683165873398947345561699861939346055828359040228044671056559003173972602751903290001173211403742292896609341364117770913079827453578103217446587238078009754048867197323449513326684001387920095666579171221587342252387375199424454795666289984995659671765712836246547986250861072299663836368900350954333571579862340502592475394210475336465770241730015133959209420248604435555852151627933711804357952780586684881705092897677967125554799878601061261145643482064007381063128429389924430725379584061752369142147192449647233022551560326700307057781062717956929989615838401128973757037272494375363946485571345556297404182963461300067863121469951925994241212906356555052583471773329224060216937319133736199958240085229569023871244513457929539537732609674895685193751648717102862124841238346059667172081243379808231394100085530675065500288649998429799781929496893152152250265021039571387742001147859402112418155785089745571369355997400342764595707952180221669504457482165362165648703304671426206058088253691971934454282313187177551302826392440694510630910822256886238395154211031721845734176750556301281715003002407849761514428411457702277748593590603286210001549503372356793961263457669705231450405455084077644779800046599701856494071736041980803221988073836962724184560478074507974199174587843747654237481195769847249495153339447262110113335376103298480704372060260255448913098297046324266993974733144214711010481780100297190413547622384339680035271228426376632354634995356694568289022692814774608579694256191969529039182627566535323119265727054842391787230686648520333204763428053030624335901168663889905688287077389548255851299248058460940720170365898955209593263675127523768505521837677886081713095521926850674876760071098693839113588972230879714584572596874044250923368710675160768202623765336560375932902467565683692044216658393777745165000344962197412080114300149464161909366405492510339020056400232338533946314794598964693937837498589545235307829563063479716136593944275203620841993752295037817456735164546648501462934844787285006922606193252478945535337374231925984550873629968323384271451753969500952801780733623294805618290982206522671721576083647198681301621341731607092083289012419767076080057103362651452738570572284353169192081593976497861934603208993914948439078654903811044728154833825785226518337556725921513136467097874926096999083711233242651427211789632373772148741406469460479985950513030879892924131125117207096308160101431251891036951593907844554626354915551422586035245498583005400352049826107166310953074892468072152437251029305100966622533223486430237121089525965090471753698198735143116282382803156917213972274236540231803366270198644888237234940400556240446782530663362509250340401909515269663282122970141771902320137127856128668750013602120688408044622317279244190761268047241720721084539448455535670203199386367113276138648301259805859071816492874305807360409512005132064530725769227856019203952665960084684870257249788019103659655399031202627623488354363286781529276168295260420105339139236754171209197803154631614327481553004312506901247057074878966189483517417244689713287073332930444493017175466039636442602226185633378569807724213469757711371569896274897437275587041300754414423107872628855353382675803567859859137315519811100772546965826751567574171134950946462892336796354563879250889186441215166757660534292621019696453593141453489477761069729512531349742266617411514210022305059251151354830237972276527370947230639220424857842715774269022193645368889759627348771742598275049907589933720041290644735767625417390460581304597433957641194412400825437275544953554337321406673454998917207471285256435267467781415979312403352463732547049113785899955191435739980350785225350723893735467855330535517235535158398602740881229135372844187312944420886056210273791423113612225927322124301502742974955362002499530272975541050691760753997072353925398577790148080600721511205024859733594344301091117743299204700410227869956987948545094374112324709895952953855901657190130759320327196328697931001107889469402433044032691418488878001950197877752795958137937452959808197252740815566356834752921954157686996542169054983332908987341598307480528188027293659939504031614188839811269708716795995133438833705437016045376076066142041269150065020199135384714011212099127235281735275680425024779259127757763884779915168991635341199643048593486243672192378191439425655329546388115400114375232696496920460285185376046819791462076018013782978006387270322372461672551984698653499066114273201034107633337362333331350066011167659742731305564541514902303260993009790959466440891938368517636546180965435949025655139807572399720193374437478321174789542950830796961756016201915242597518212970305683189072870729032403512581188608569633329610329833806293000659330985670533001227611398987091667012612591901517763092310306623588148977596357345385527067175759249965779761881746051359197333726534180848079153498288120475092178410803218692616785330566616997453536249271217589709150568816013586223387350553108940127295242269003427062044828087581169900006973129791856420663271506444090147012987221817240996304990760335033871887984747025092576165810512376414757382553419946336926984451928455146964105012390190064436813349005533613664727927939692399855965817528873152844095481138383393343198101639835851237773943605905106592887105766677929546077591434828807877239051617435149793150057464958517463612949162561413967595503927449463013583926786449659453844173614177934902233899277034682948726339442162552517128555154374807892036553210889538909769556877727123685003723535132638832533009693704716806116817554783019118161480514815782136699044244712069263737638379397599975714847480078655958069542599659365451891518416773719090352982761221554313747059696629649046670027086292643488314457439370894028517710959383276361704898572778987372202511805657394861418001726464631347626625977977676371491936653557673182977682206110718928266512696661853289987654994002234127631042356107777999204533175273182641342956914236447751714565103293843142935942671267600242868634162764546692432281004731783633745980610456877036415365989182265899187071569985010688955546224065850963075524373584000557872066109410396593409100238784103455204723945186530700939893700364770309709652038080219291225286189151610479177044523788800377689744747703203758874733752348133465690607773462927957464482489163624461771189673811265320845815844248699954188558529792216108144695295473487298509007629081087010565617121782611955483221842633999931453669155122662515823130576878909984977976088860267993559672933057968820063595234787166721108140555994114606262510159828512229439670944730367751635508125346288501907824296158161165643154125640433620141778236691373914967761859311279074890920920282290804360228730736527933450586062253817376628257912265034288088784321366429298358989292719940482391233438007957881141974817006346636363087960075768977555521671388921088825326880953879560003109718449277645278243171230488701722702982252443506841624170305737877287404584645213976731049329187801448962174015393729063225887551785931324528720078943480664220068245244990733440610145171674672077457929542199160180003820689168845506821611029339258894619235718283366049118738579852655237967111407548215852554422242422687313961479121953154273510182313177132498934149977792544307802281884847704743553615738853741000092026689653509669231350537084143773352929835750610726831783897360758566338995950419336694133835636635770729661057512176855853884202741048233451890471147361123527513661880195488487502848414317787806980939620837073927548322843070898587959684711944188238114194171195575219781774786004807666772158369068823885794618636033927200529395145622123631685661666586623758108651374753817134302041880950799198743683454887066324250006725437662905048700611311357344039701685927263492504036444860831800537025243919677434345885815577547826965306959391307512043784407816523776713936908224331263704871910350535077081109842108224699794699221426480717472105369559056868711602367766292189236111107780965242165676872293600055352398358228135492111213569733421512414888461125338930136892015032167836678881265767417547129837571557079710741972680669708933436652697428797587727417977610631498681715020381831964646998098094822293013223255782420580784737593618492575577762775236931523631236478792268584520691885719161939512648131621729244144067249806808891950013961007010556157278119951116910386426156656187247153806179156758334829409534610141156585424860648299492142020155622603196149955280189940776799722500953578349395275394292367724448692431703736775353058824772793472061760741369974616047370597512440020244341364325821219902265553571421258731445760504865070985317755749283609092613705001885289597306014352467675233558071380128709028054915162075014393376727314508161171038951922871481846393805447958541768427798363414404746230968661260588594222741791701103431949139470430928192447403161233376144712736557304529864711499570038228920507927824445647122882978270619400140080474495079048588384129489527844391344449477831037118905795163515328221617904773143610177207089048701882894993910884548038506090763444293252299085624580240084605896202484838722606050079476819352445059829579557995041407997149031383710844177460472020579662728069866604662332176449035983691090109047506382889479723890696722425448571907620228669404929185349443130648276210039396713657654667635577450291783307649757216363107296569959363039705470798486833602974043670662650273113961932665870257715720195468640088959691730605374260192834774188895532664088420050714514203382183922244595953787976193834485698335360292086416022749825089032474189643436166318914350960299694478750311911370245017784167431798493103058274804767302134338321932058450086768165127830212729706613045362629163484874660178397417798545658572316348959337639597456947833089317637226045889585755402184966320797729487042480319890543575307906802718365381875018205270903355633660148851540517897892088610521058957290968121830321735550462741631001310012876512452316266098283925972205609609047140667091824962459359977406280310444303126391997553492019057271822735539631078610416678473523493477303517155547356969816094011316503189130355558426001324715939382590675859555073684443295635615632144631078704724432274598632276554907143654660661071137239995475305689901359699261518521251177004926550723407098782019001199459588491534430777931671609276360684925631675576243056108208038380100539788739558408990484411626809264918049295677530357215097324778242360295221197485221303096330753439849546068261049237680492574937272423235751533858266399345043433005324693087645708905531574334915194393712034637330858016969149251158785816652943815315641718861090650667317040543172483727113322936100634312101220907815573850188183571190533561388170584301331637909177036289479153575746254256955706041479753591187330336029342136871168804817048490269246170294829065772501389733859190345816762259769256448508186873794389081668928648578859615493923207124216259836699013827375282258332337538084576148810163178775238849184498333660215440495394221399196953335885099085122883627267341195057395106745798524874050600480727971253624916983944869481761366934259411803781597708356987423852082841411108696801448454960130473621660204371014646655118328305704372857960606686682943417532367975054863550210840249496678468215731376037841998453728524606073578360451109983468219138165045528262596966733464068760075986928971881793344758778589168350701023382785419611067845391437170607574640547551476773060110101200146176073651714026916956044124450950502945173181680500625831059662116110934809043270189905531434277892304970798256826025343407115509838595372303895564971191187290795944005641912826256826677085305141822164160308341550120536490794118928638573108301911371703843577692808910233629084769512319504956510502151790087243261407329412285250747435183698291448537192534539130058168619968966942482944995772689661235526923036217013506235261008444281470487614709537949558847039764830869113078494739579964687955440109616781074323555166880005434268222690541618281098537129220703079807122812139029427053244884846186902006649041405080445521033549990938305710483194796959955986837319693752271983397993997919090518150421840289699824277234549693124352133197157581164191325122704942498367642537088582858253028702038253572176038739176501879720170027704407928726617145886991793407085553842301876854934499625123536282789075407458244738115810698042008000281188999393224429375731137076384316598402746986347760082297205104116225495179636967005025203257443236155641223948934999199230981994591801231274330767552184952519601991043529407315551976321697727267302770867045967047519706043669579153369021203788720630909191393118551011683204177236848250337495026550690727526387996518043662187406924858804647983206084658424811704838829301717501818722030323581888343803941054756893524627018351967591390319016983040138075948444419967338917425167231945564132484992020653968813503178356678678374301221913052466954808991995506245373955246823648023504543441544340507052541239334705607121887511047820518468852180174295254715795685016454123917315543013515092432718708226810342402671207483746153915289086722147735275290722808705431240514299900701625624415167452239005097433660281391869574608571469290813088582155027022811880465342799097909454408388649795312511929868972664247930661845694456798484171914630135859015153184253259383819139611749226456346586336213115315509726627860544389949946673523473726841192484483996724111103265935717511856877320499389423176758105892096788997703429158511253234239956198696744254952162384391065184000579637486013841186340791270014061589396161447468184349491223023019465315311296833589165508442265462839885963031457841779713063720243392623979077344346982247893323817630655137009061593954204442538932537875978153357738972379619139677670044819853171813518346712358654977071368240472347405675935321492536259402905088487144025180320036205181296566254982536577624018137140585379728482660737931609410394376485980719384354323137434381331451660940196400166681538734570207038955220725904462260864706658800260591724314350705956522387784047320550184490775752970955020335619977168058483079588207050880803489038096187479849222054638845753640749099884078599774768271140405226413061085655424926241155524886064348873027080434411022799166077489059510660094296018287140146650353682405066925845613033421335471738087015568510652893294121014262652216153710752006402361930830828891731480973724375310847619788485928701492688701409671621261986704675458525640103905038425126551767359901923910564233500975247715396511695959948431973108900331725211418016900404242094346754045906702159439317929222994245163515505581396345123503530097997221467802447694310604067874540739906763196099125441305889152813644474487895166725095063567105521111319926142489481352484166580004755048432815497669289013969799506897487124973581577543708923030058941243715438037256986814868050159354782876231536929034963038576420725732918495393697373791017499248473648678202148001916989607677249440548899555769487829543872445834560991884033814604790344228811998930760818074556534151765380377548873525355425011688677897198637890682442557896257323976999289175968963730578875878064645013982472599037416111031262599589703116544113487191509389869329439601116532523286401386210280077135941652128525866286821137353004240035413294517350922492645582074687451568369296178396394670878632206783364518484715228766473660749891118175498905643273152550735042589167307968490165524486947588688732645076539504569858404766966363593192130226082232472799293787556732572202740791664912450918710872260967607706092143435352301890273056120774419187349247914984750426699202224465971279232424091645616255473244211900292268051937629444475686862226579655080972981979037927501973983934194003235399726112600918483859499416760490161708848655947183574179791557526484307879634503110989081415460506832692034589724683579064354537116158539200672130153021004012880607607404388405194934527368854126914124984449638477638474832382644822441349715190047850694615621923558691196062506971204788664351829002228444209038371213080063830844456528762632359879077697920186036167643716885250438031257817239185582043660388794054634818134874050842892978500063200537829342917588073547657624109411559319834333882203587558714058608156675719544459038795957017746692982311026398485090935702502219462935593535218945059052075640362623895149949779383001112020910105510472453562458345999948286656391574591311112409310829842467668764500336825055780230890647365160416269826782731109462475755174353037095863102195291186746912134819700429206770438702655303968809201785322723129190791884447967463933807754667125562743823219758223331295375605433562195561795167851153405358191853416961246695738870239240430722427931727995044260625728494204536291847843453711185055841310190063314251654507106409117806490398073363831661452204020258092146532172276992554644980909124445672729309295471594454307113392241244965192760534194928888246290024301863699623230611530963468548680599571869121033435126131043075987156743176698832480531408599043031647947401733038618478828863114515775837093270896229174090626042336478688534911250478322623566830538856710122771858767160883139390384918326020726470630732134202738224200639572555563707107715812499211845477757193933005935405545733636804584145641498465135325832646661462334532577666287881950880791735206944389666360267773786837950721694596174754914336250204713955150913471343451972675474711262604713035631770828406551640605997007888263455318343691743695931241198017103286029458026919464552849222278557580403981436651729430366527897287995415082375537856339745609330222176958549866034564759349866304196061890273402251476764806974071460188229762471640622454371160170335017935930902653361603454957111072668547791248160507980158028186455251867201072000945588074940456566874906366772768605868642975075239850808716014244785205624700147239685200502882547532465880193395316839118906461147286814344817261374594272081849620885089603210718764250171359298017463283071880829390321211690659666268420884597975058514009921569195510742243368218142487146033659775481516320900624528979855017471715680717177021114928099340868083295934933497184093178479142676723396545009540658204532669607334753237671599413443690007506202914545300613513440465501467194566809411852816225274453995081202895066898389759538135071067796699945035360071292911661974522714496325954599645730241714279543063598818648934044659719927808613498490302409627297383078964246013246094394341438778953911608233237580155154263062580851370443622612452079367624660611883424933027378124173718644894503711972278946199253080689666876227333456346530194590277983321923235737289992401283934105436257699291951549046521587509556226269571682400666041851105837326818259155207020421025937548897421784877161795375066283764722027892108773300396323342048512954448516290477874639296149386032797929287484344082965245604901595391368852772343848762767642638431693788869697880350133789288534966289071905016590804373702545503503670299927013590512182920518108358302856830340177729596042851648823886721052491511280293645261959401691484930463312621538650706779140011518488279122023301075652945071013206151984272742291375773912679178918474793900762892097481673106444740087071307388064178498521542131082576938597275149981407451245049492448125443589703556264989905916152254682241659877493700872896272291684887442333523283302141646262459264560877310180657592574637941807947194905770944043867467068509825963288346655710378985060815423905704979053105072159088736357552292527303800919783856594627768437668171881120119273838159933775439966085980976380484160657326478232245353429307794398132472338793992928275948614706061981110293381364455943014568654723624746988641494812983867028209630257263163036636510594973807566964949675635432917453498639093819497110360654094730944488045092929305850505840418264349232175026991063975948225059744037171527705671557629427707829971355912375438198068760331616108080219834512709453577387019878560709527258903795150864002279729269911825667041900890503302072171651903516456923685446595007614460834108448007115381134996541804514101349111126081236818444322398315224889357444618732667371583951603275151650094359831426393111568368991777634073751652322981054379553790816138028481598493544440197186231368928999138159331726865464783564010650703450839240845060286021692374692999163736686924634672333845611352526365633620892145837133623991116409422756836947369137045448140242624967688927216825699849816039519421289560386034532474752064904423271467437768390961087373504955952984742532277048285664629842840245823266048976196872282149797848915940806575380923500458112464516955057912998637271026618071093388620321979681714578164217911783518127436178958402795253648654098517366151424744920344464911600304585854435066567273425328814502353227046783888236607407352732617845338997974578971680571375136628284673799814165889440634480402087372828953828742353982656450467494361231722000977264396272948343302947329824689259402991372379745890816513524077540318802275319526036184210202812706634793842493560207781795120907957790191377458346459851876900791445584524776377995163923720273395452406877092820898011182743921745514433043255890917059787330384429095605301049043041077378774143737428794012601666071079737329193070642676282700282554087935412681200067110350618236441861786661136615997392853399813672238705566460022244926992410059370205250025826680662177380142052535709686228529061788740800853080247077752108277103632615018358964637917083192654118686471502531636039224989481761035989133869518999690172438771495846078506245850738141475256676688813888405769157305742685250848957299631962092718346666115713011178928238473419329791919504057637617340992204919692274205323729787407094500510922131243307570754779781405702934542131974583355279136861710817862286784095621666516694597990922652933458893356405045037163631456150432737071166336518159200721706379423780283476387493863312535375737083884927095780916257947119270902583658202424726477120059331994995955863544602578725592338573907232886002765415025994917152405377477167679169254554923705516566367911448703314913830629857302464731965095627942161239028028985339273476637971398927188080030376225869607588041310803813873598509876331374198083131359951154330461655348943276112006676731418092111440335984429150118008715236465195953870881031353291012391290121669242921527933726530086016589859122776872924773186172932196494215209490188486218528838285796086910147595480479405568603089762804488454025160638556773364603475133491174397315209003499198693131539116517135912324664572420944079989365203556865909539851319581243574896257060178990222706141481250232286512049856864540878791032172765252231882676786727442324108055651289870137595087802754118076268520824171056149012853458248361788407491373129181660572832257853296145393030080801518574750045337371653502925610509177905802368876584847144468001168319378205287136044236947616756439870762361156032688964788489024814857344050957283577569033058537631801322722776029427736867512807991134220122493066564248317616907739162650061116490448665099427446310761202271971322943447505653552845851893402833876205501667046752313850507122790595404741676899640190239455687157761517156356259934967976821525495249431498600318836883442371950038372905247552342994581943308369860742990455248560899885055789053639576216006062183298576493035711129721404486979170505237661966588970888472412720401580106989049044659717573573339125771353596272560041421466537512284876069538604351714319201025248190779720342594992673886904851673580532383010836062673971117221967604100259476709340511290530283879346925012887073289673980501882569068864979001285123168970798122335347122962754913099185320621879552465742633838960138201876433963834722482891924800103236246366533000520545477073328030033485240707962070355197884658274970893727832684749609926658294080243180992770753566657737658935550947381986693050778014541571800541258160446849108817236518289029615165544186572150151132471718556247564348268198469800601992453473675258403143384470471019300143694369927993212178864495248454609354830063751003530386801427746881392007459890761268930474459734422517909715095290410311774408198617520233489085224196010756367659093497133498992643479543257539752209951877898496932765761737915773753024911406957339266670214491988414179890655071564649793548799749249410655595616038666480867917913603638613802797501913321216747307946060858228334160214520199933253038099187862723683671733601334263996340797963578751806741964267709465692982474554284866073986975243507889172891779102654956180956366531522138732277891365448339524298483263002887295856073322266373282850111539470862586699366517097649127761192267092832677009184090265505438784658500541137216870344470299533370584571728130250525219787106976775595743543711228371665237066987910293013236361345804682556264157735592501184448168257981035771582062419418795934906193023642618561155433034484055881835437943465229705293053626256229269200136434576768767391490453951573923543939479254995639291801518534209700959550812566496567477188567350007745548454495945030702394693278923903254673758929361411429772491716751329223193598429194556232239295185229154148528879436631875827619328488918673977695334705588306381548411500292727741255841256154893454319835456574380342049028113456523015788064896242869192045537157796590841020530165347949143939517064206964581927165208086973413360615710853095506865994861242047819189952227057323287885096727848944028224585707302192764629984657084082538024368830108969588524032671322496501539236816921389040922424342792210552035973211883282321357895533998123390401205788771143721343622117268119719551748358623945489379332473997693450249942155209740353756563259748179113511590793783223555138281353900797013802038031033608450231064305875815414707235222589767537699758055812149188894050282956926816622593767683661091554225037512845737852014533209248845265596548757996610943510111570231989876829879882934462269524319269590544578689535612965330210686050599256061922489859108942019935831535739097178218026384714249179681606340226434674588555673490035580007510582946846023166520695361217883947004128559394704753449836932109301949099401290366581395423550734371913549901871966854849192863593628951711023264881291156313636038250359732793733187402975433217259744490723329154756435537082542868913242615631069596210214277819995964415167815403775114152824796921006570405561997315548989323357849755392002579921093307834032584986956658366675346748416820899842482906417762913364907638317393698148160904774366572793463125816773592361613259684525831108561436737928892677071151554158251699401778251815014516627958691382966479023343120323424411436040184597016852970225912414638960034143123340341876320426393098320667569859993929747238168518873795762132595954982531968629035682166266587556243859561107202547878386962293793414544701684390467707034055068600345588945853856240675173013617693688106067609681475144815850226969581752305260264590369837072919436306638268780213763010409058607414300090301585925554979277344866832422621394084495103762327554049541043635080890907806108873043913527283303804587214238411180584030540897410013057374079038223141497473757487703941581444679270427800919859016811640881859547448520582820670528176500221588321040429442829704616957805818152506973653115456298641382364030071474610736933894513092735219938747357586654572042499347281588987071836329584591444249262372738632658795019124559982048843305968197167014462697187141358791226750740487618896534160769236988762218225926740024788443819394171442818310083467829816196780400050421567785151731362565250249466190499676436864018613752224490413252232955195921434185728891274708257984332812564972931482414503420391176323437512644284593669297127554888818115011191593186742377405502388589280493974896298228856903154322243669068793078594133767744954154065379634304108317881661547643274863753269601560772054037040508637022115484889550569722771309619533861580752752894476359013315816266975989511956869515009639277633170291396985034334599349104645221817063931763731278919807300963130728888030592070082272629273968489836583519837331055047429948071632721746793884436840632883211739024960369281031228958444700764067356100602179140989528454491571597371293709521277151521639891922700606769737004842402127800838629749505978547652394721217357276272609267100728901464143913352600883565291835660249891000059046018768758037416461081322894974922520427419137506440443129713833615076348618836649751660266647756012021911957809663825202034211673389846198138779520016167748682859408689790767835300456077368575924085820181095411323101406304633290061844241263473827450283706302716347412687764734696726236117560688259549842239446379329846284843646288727094113642903179231729463609469819335454680816544865369157897688341581554551245171147634171591282689145295100281141488171850955776978184304001237148965091426154966251860819676660602565076598126750025235071156118551314608875145139351208035053357723619420115283414112386867099418442913179505074372340932694074140832070581968720845491013634123055062880323746243405369472522749987176046835751765095084335838135584655697534634018525467133056995689694513155065476462913636089863773476814477476866082306908582225844756559082189041827845542119476716229688180037028968287874944141964009445940413279638182831408527007232625946710972289900356577584408303418184517144524619074890697781242809585613352562360692779986747734442485227894480583831386479563907815911366367478511980030725273837310455789957967143938395340285169116421683297670745891713234991272254702031452202513768597803815372570227829827220265946264737197038367692123002746191458523563116146023498750336828829040990129793458568022528619124753755609812112446738129443778370390630141848374303150747182512560675345632649109005569308565113754393429782583799649092600215115419135163474474540727678167655471065201141581500969185313338402946174931265558198199043848634514609332478199791441671840437468155509257223984836791984738341503853440629056572852974759254518547459663316110162692126134101639477190837651316592502676801893914117825398109081663465458389242115183963924174069849842947109450881415769510293797169018063853773687694817995996973522377827784689166199737113144262306355453593385455143928891546916599605707847739645456186156367337003066947715727728814280026248091125613701495535196785874134081627047689449776075945573116379369632180394792252545518751445325061743630918296436563609019433685945879585941945729836243443387382076871585224562408956598382490086480215233420387766324865631382216902077171495698769077447968005568600429631891454117068087264486657042551054626314471009051779301425649742787038605735422641112132353852128030289722965303135852852347012994149136372913435870358893180075545783237763034002815294661649621957521630135148021324831140435785505817182135472631559877170382018515067028886872755752587825420221881681933490632623292819418571682097603106485315710187859971165481967818400588792709454955988948346056756600860334256617603816721934814137048626682594156265634420113439301832040193635286251319709993069286692485362141360193234849567260478518597133609195998116164056796080029301107056209108045146018358278687180535853828606228036383575251978822802870490691104167483125988199519694651559280545304543414615701821411540795409425953682561472649950260817375583146066176575411903700749384935064270557238662400116394520750558850081917775798856539430672586026976799302469320262530518369984583625949198290394825406722190617407107614197582798646250197412336662316728194137573346983564880578418036915344363647373109644140699070725023492338478104756751105819232070475953362866338283116846087667522279803536887867300269662666347026765869626502820082704386805422791048372740660203437557848458372352410584956304772449978569910202672673519371339126458826643067941202449807760021645129722754039359252218740287103476780379740635554657617715324553970081098878462938731381036874079503991859760618589528382398689715016392512640823173879821828458314896110684000748400913248566686644749179883777663166247461368808755497528199905249887931016108221279520197080340253140186006466623848582808105486857101250214361019600976907786706900271914341120526045562295204263349630401084652662340236722273639141933181531838698003454555585425766788580989420978707454104794096251599730832922795401572668891623085115061768559160571255395812698461885879076436902340970052292996065133809111761368640615284435706598791750677805328470210404773706817738359116680255328743503531253045708303620124026369237527454389555545257667343594998608324120291388404139770006663668738401117223990075568760141557031751244839669514624847095946563629435606062880519093892969551048873338945421487705274886081281207254893451967558113791532980306461813008879413327887659469923586241412133581528250816613611173686884805272931062244637202543842549972550239836536081309678849560092392380882065791343708226509198341684802679890917097930615551494581629462851813322255474213717955795077176859861558651850161683364625742654535203448737053124179983338168708134427074963364559303356831687050196220634949781401228626795661238551588216094072596944876912105614752393963592386694071898571203825719341586595112524408330253654649263169558848345993582426250024615464520702903492971100246637624227806034845979986013614312585131255099801409302086874662148853227818783760660147472542816603226959462749373496770108529145346449879298605638120877584565684848029848006271207938344649816274627663540240074899696582496041166691949498992909302327115997790531969871360094398538819844501173187007172157691634930860009063214390524456105965201944667059515334364859510336767875117006389003167584494662767188510595104029712498886580267925527288223638216517882979869873186914954446967534552846716755991639610220077923242238130194773859899767345094648394566318654034822213484122234274835931154363074472814504697298599700637747221870255912701563725213312659008692993266492546605853698223356007055715621345956948038976170857845010176645473217872329462297711130957566023963470382786608063462867315371670182264467618901004419274138815491482127602247785669591470436270709071288575585799640836092617885010122017983864910641188147364068541028634688979189533335691948454234633084051387436304903123892352841888900376573211314683079523924099048277035534956063136501887343331574335305805914951869193184215243788085751648503470632827066532243290443662413855518312927938925840219635627139815882814294581164259918751521940723699599963408757855566015378157622665955046443573704581798871542738539815473793936230892393508012075582377321473438278426367957866567371197602444242391370293508707689716916583459729452286610628269871071678548401149277033984789086726933038457223176014480741227561929755340333439586021778441704240320659690191138898089745044482878438812639143560354724820498926492836116538463833543690488811792629744802058821538052630904439456364865976063167227465605399569643964367440241924922869574542354639242562401033645677892888423001928100349457736950317002034714863580494238270703723468042598434301836926035412188019888793631017652853175772497360567295828854349722543771283158021900944918770690291604724024249539949500857737236765849380892992067290604965665374965442460805866143197777893760618950430918480527914662695722553622675875565751761560351135338438064882162724722548163503384027217776357232109039871044338765082367929895118444558468261008658578038609201201097786226258206546269403668543815009473437662775242915442816382070195417971856625122971606708886180161078131539786992503136534269070608626105826010777358472613722262228023920022844484099315278226452026875933119786714982068201530128104463418666843773873587591982255791114910977205204999287755384446017427559755428919537173572495688292955153600635569633504573784085051610635391212839576829661001575052938854721811748951640321079579398836460102000528276883586521934727385430252258974447237931986421950065542972660597580983600627141946181132995053432839109357059213307779399554340190947647941242697613863295599178084654227512483756413764794398213940948174717217745521365500214315242584427781889872383878469497633368479079093717216708925202989766485158723128836479991455006044032994823782053584593544076715332590744405846020806384359177312780487918091986746804410222829833030147869401457042710806484094928280709744206259193697529909115296821508405970402188510809182482231805505619882288804667831781129734169048515358396667366030240308961681499197290633439315046163107849411611155123882822631566339730075380088641518106950184519849206909125014810189751245235238286709626042987836246551827060496081476168012733693940720983362619251644938073726191668511296131020503943253600926553746884696880271266615187714116000013594875582956475835494277818461404560623718985669028010496215140938611071442626206121280820058611281349772354957371407993256883169481539653859727472967368423009874545831816794892600023744217806997942284297344635087324628135102492476531424939580061526451932768936408493935542291584288301765413470230127130348005265562769514898938128256822078217116524207331807942976781922560265208490854038502419541996593660553510788437501261740678380951228472481941434362708663993326310846259472981857071151886230082718926707206081873844696993294723487909414472571556875711195498002990512157614078285353880479926517431435045940449700279095542594612596353074070926551507716495368991638581709537258326942393974878744718024950752627914012546081811989146156252018044219732346743681855411641872360612150154973404386732592104021270343772195160125277657551385524639624548736822465994374808386184660660556155481013938343079241720615053050976900285010120843674753847664737127756413472478185487826283107270163316458534221703691464167537230645211544766352020488796089611266722778189859941959160988030377094199431784126119377266083135993381066301650342088400283891283137730510475418886093508423403552109757202477411607895472335510401723598963967857610108035238285738790871539258004220899087819984836905501912643719613104789653228337689628970261437450022642282531172938928632099429685325676718610645400552829264958657264074130683333588801965191242859450093699020679838543486187520355298768860739631696022603100440581611325302450577771807266825875350132750146236629529513670692203807528009435210870965345047376444152712750189107982297306108099243110872563559587676110617053994877253173358132373541562372184005182457916141702430994551019712429403834117912205901415709309123066610589208790346727780678149631688738822526047758542878634955595929632403772024096567219635692451853562803514142727937656455495695923950633278328163755856162085487734419246864103214566287204624960827290416979148648024405898911579920000595040566595940947505284563694580863438769809140959700205430417540766592204447853164477376386892470808729030502879684724228907502352923502908197866660193586824678509769825271277157831099470242466134161145412311811430168885025441750970120063477149423502500020935526149936607869068933801722978244249595009888529558296591569994035478481895493391033163280202079266480574761819606036814869540034939828105620899966248650814947998527016082433455074870569390667904341459410729679347622026909384322155927362013519362704786884020849324315819050134468385577230112894676329563982415512783948605981432616481381262350919919781804176980670151540803574704405110780339621828241918369664251316733035465499275825466571743057143128554391877275982469058169948612467667821916397611608672700250484827685496006010176594032310521013720873781756716468412507249072987009364613465649167813537449458531928090103700842793838699405938037944662738353234560967729378450846682202598021257650490219289448496286212131740701291774679542711135401904522007246066300209163517229614406478650138853333827393837955418518682868770659124282554048127544771358913666588553453556212390891886625844366164188312677519475790047238173559618095348969715529499747447909462987549995929951860682140357756530956288162812792601490892041132854508647957541330788408497410182143740467973103157372543498519488197358582112590802273494306130657564087590973881693003982286774502999399720416237959662722063104254042986223864873721954755135571633938613768735654921109362049182350446444561992326544437124832336598726958969787550091346621052733467590267962288535956372262640508126682998662748295738568752803640872439755966553155379789264892361577722800325927774213682219290773568727602374838054024627176617494560541252958302741015045988622146704264783132796935867478037253429189141630266361754389061731279607257005389191224638531393816382815673552591206688109459920452408383521959698970053927561887796588757362669020965521876899518486448039415077042176585718011690353687364250550985591286157992589045358721084689598222229765981963887994664478111508305464841350031234946715046273509319085831321265708431709807025034340974148069544572764179199870560595309347531077178588866980830883000382535664988179999132470767376993902548434624860439568166303884639031316308290110783866582758731304663631904841955072748937866910945750524227448136036683086206172148813458599653826008327233818543939156906225319241743094021515632395269096073966184861791902859012935660824760064613061183801937122820585807108013076024054604733712126366036542712215971439792271177309532312587310089798897476244612228706608133023569056472795949409271995568865734077914909314149160283895486664522952963757565101586795678374808766611126446673810289014057598901757027059916674865352134869315022589719097940019227655363804672972955907936331200705203920240055648923013326949298610473088788291690202630917318895995701013078675083467224488193330755115566441184979809059519477563963431073983988345823672465151528129050218741218984633762206673141672767871620833176125231584426234951777105415331961626615115354002561580448487370659829624591179227960401248064495693324241064726456524240791866187223500117019776590299040837238027236413202882155600019747733999203305028514964688934385186843913437011392152332877506492327299547856237335512520711525838046439950170723265612193078634129397722375715484238869900137160584925996192671842138805011810558390049600165229915148508657114782069473752352978297632347279207243223138635687665252009862367080745914524729408218799683225598144904308624007512238940319550776748983758480806186936763857400769604530196187860223569169209035070384575174603205327921120047731767248703657911951941335738896114600206044166773505972699358592482330234951997902237235972292647995405980199912343172067746702756346721678927230653430980088219708019377089374174016882069536578741305156578308489452402845640626832844203182470684541152326178154246709296908044542561095243203771415922950092799436428668561541847120665510806195106057030033836363862027705450216958868109374550335542472184766967189315200709130600529708662536944498219150096180107401447160883831937611604773768742583155360528334342760839920346650053967418172468938202221900523994507430435648367761024433081131435362082720459259714566326634673660418002243308960415565325970395482898367343247740036249004442280042017967185703592168783030220780107532861844655353422237427465976304823530185876968135954715539141845851829744674098024194292030077648331560406817802975153186615023461039463426176857993589272606877151227894232645579207115728930792082830927034509372005693746433995599006958959459878776778974680427768554912285227499303284870471439375242071514850311956056124654947005324044971691745634273618381418502639756015534258857341674007277570246145290270847760767620104653318178965882717197843086350703856546893934716384177490337665202181870355879165842879957934773769452274173172657079351112188812641792696747749504634125566377996086104562841289560048175017349598332137313666607870455539621879596328997119554882578700748630349680694415870628812831510625469771258183293115665833379994021826640616139546271656301022901137494147010449470385456309506744597883363463400825576259880689633862898006717059086954366198286477641173912063446534053223939922143916148296532204651396174886000812600303423958644118432665183157921881785974123105371181312853438970800998180311670817360864283949901274559726187709659695288456137411169944062307591781380712073453501571971747074808798371133019459454640542237394793516031529901724706595935403204596098326733348510985924338289384242709352371121433220575726357757629218673946266980200324153008414592411461969889716297567521643353656494072001885649876662153555992845334277550419019832883271931006932225433571460250210530717255675712984558754798520731992145245738859107953736685155142470153770580320610646883253724199613990507420158496877251146947910064385214831829874033309293255355416003175078203996678110941268441360012803139298111530968392542422492580995151480442779322702457092198771340546276208696537080442897870008421703732249737379732777279164913335474951563951870552319913853426710211952362670177595349540838752808771804525432098795163727553768277223781191445924191771060713776776868523502344502664828787611998138609233758824823677419564640760031127942550550099839691834746236610452068067920810218887993283975713516355492176094075983717865982897718689320027599015936975176774157793208551150088519071923272736372420267581109108755196986013565914510014662321835652792944827462835516224337028723444022074708826617589399128657779376167135764554205602494642080304668081207011268611326430333672241268762053784309098917913332415792412670073272580352767245944873251607299548525043472012413927939422349518378463134188055872700301955024374673030479113855769049281653239808923935781570597808762325478192990506154959372888874833960652922160381030966054731934520073731013827910463668472904181817724042831170825812200596012189507970067779071764760586279302201824813694054470261093548406867106861352488205914320088348272954525124446108917383330912882899722905072158565895063175365226900699688479849364553009442090221048430112954547008260258373604267935702724967433344304079557673871733212643612212600395351415166955185876073941480181829841593582562000026048802820112438050011310651772158195684177956768531559165344404966582625091226097679665101901171707585775046211054572816116177078688134401313204866610231730980664432328674140758176875231511128651488857360275351596217537372682238608469870487126729261266520181384150706398772497712908751762541134472625226164800331686143166677039044830588115672275571510739934896457469388675362242791965354061006066644396515455324042644298408130328033559834924074662503819478631764391444046431459248957034182207759210117812665222307806775095888322548120561094646704949322502697298657466746919670934874194416113101424669579338961367920671083157133759755048544819124614696037001392965868799136297090592746292831270470800155504940443248250888047258389761628527777751919366283208873396570086232084494887179912513976926348060714277947383500423660372831602742034930881120117146383581529284373438364300352316516159408847421456165612099011256798065794379662641448731587654158845225568091642488881681777272741061782419609824482005286064278711627488292269376722300387493754998917805937107080484236023447686699743687253583664155952076127093269362723343452364246448426718081352705114149527481734720675146161263246696292339710739255772782515410075961789967797350498561021672402276494417078473978877448918336677838862187534403629370357325750630649300671890845443841492769108851903797789036370781910457076463787267728837011551983799097558846030039287068049978668277400022006088158668921000846691370284816172634741454495115693854409525755353939818931893920858271867341811791651875734163029507677427866922147951217034842132816074751362565834663555381706503739331128481204695896921054828905305891004474389613629090922158182709572896713353415607561683142373894997719745654291265902014266321826902588585249043036526619080379484314043745877313458817943242998300422950891701276096818421606550801890348316408807966908918309362657281309169763969962808675502049849593001746174741385630676749760194772637626480075490401542936589345889902696049042895159569111382245193276843582441498096880848988458976837730347375037247753305809226028675393743836315720472664273851219893285531832021508797064697731064693126089877475822471569892213026095901379716114411932599929461585246429735502153861106804336690480600865665445801920248659223902417544931444656617841503174807990160040696611857044769026105781955026720449811260923880617122116734644585912186445699501189248064519242125168502973753890874748382332789097971719271763552090210245333500398991603556717213543665353188883128747743578417727136213595067222913632883415922203184532911429167315518776828139342841225422062693311290075201796771769567085523534569347629597123740722542981147748174236016517984400968639573976100775227252660149074134196675496310279474957565814975325052253123235467152957659648726066054314096709500016589518982727085937966059853300691623269774592322250016148602529185841527996375078270678053671283938485930305520647827535627286690460242994794013443988461724097900738447293693057952916638224840307675823121667529618646775903969509963272665179228204951946779135392962014425466728926107766389167856417693549916782029060455295249521034582305269985988129081085315366418645557587313544089642613369571055683373746710850754178566625872720745472112431747503838668686570849617077668340876634729820936234584724310357556085538017721087570831828680569271540548115718337525193356436252772289943424334687008935124010625963986292690011562253438298577096656913496778905708668171143074926630957788034188554651198280611704889208413935873002611935020070083473452091269812116688539758665090157185715127457136602505359037119210391084808037831061108456543604839814822983497938406140471626251515350406082203425129177729355344115765727825235722487931775712123645866551967660253905478300173223732178460549025973190957671405254272082560792000009913801204150741626628090755885664992188196304961853142364372104659087856904727459776469737926427752452750132505733521036665627814228215402080847558577696336506087025229620337130402807311786224851502408572956535903945356220541301091818031996360733436596864200403020533709340838037409000082869409420697488888944333998619928874531857372558813153503464323019657258324885320668754304091128709977509101118667448450701695299583204768223437234175812112977348329348901677704017016962397045262703235193284179845146700238724942601490267528241950391136138299066928090819150545364427564512343781864702418122057439722235301140667747172204734274854645613499741822664927131275756870212548974430460153824120185555088758564219811970752043566648423583963523256937503737703275475243585470980415232013986738965187867225170060380979993173412707316617632698844998886558284528353485680070559974454554852825530980567570974242123781149218840426647705778235050097593604808469955098226993373619879686390071378999194335712532536322571757093288812095457024501355125127216462265037278929051036585515360908170381083131946981920651150204437827329679514000907887885654164065184276735842882496149087596857608267045317432368819350358059921736783020912577836971884183508522769389022868228882199392278865640883422939221740216986930303353602514970006083893629004654363793443980557635571438497379796870504615453648972752469286133836041252856439450490449716154349700752887663327383620361394234839377238426542535029261927979064950601370459367189233833955590687639142727799632326037467129513023030563698223100353362726678752153167103455780294908949907620786605534272148704925485381184412726029543601594949187940238121853799267187956621598771131359108662198049723931413040128627598198160641209822029937061883219808731314161802531134686154933973661791098783310817831054194712878375811573839410207209642581083862855171172409810335637888007171957992329396669489448218104781192633197593564888835303034307974220685048880767678738243304002962149848440304500641834454054946320964910412750447398804456236707031945288544125484742122737852250682471013610883019930422714720895568518135055045182429174094987406370006056517216152873288747492924076051134247269342991964869184715782433035784001510796670494593429709574772436514908240176628385347153403193329944949569780124842846578122374422819570712296777025298308838734569401438542943569980204974059247391685437457217175848691802627692538113897782488096290654878540808200544066524940507638455008674677545713679620517122306613001766064739933902039323374657417321500639159225867181806701699180633447277822612470370183344888229304737671541894979348415718505227173531798429360936494032497769536687498366512665073582743011523961013095647176819760771210004134395725721738477978153672400551995928929231892319290070766848404697703020536344059081082294678545284516628208100693203636307149771746879129312551412798378029740128891338750655106826695692599104905522835779490593616910482614358797767266920289534722164803106579138731823933847588680640153971379585654298952037342422060761961635907256181914351012434150662714658888984933190373596876174148869712585460858883803367516198908089197094420369544617439062754290231478180681590521147418715410432430199813932350693346168748321135191122026212547991848053173495724588056472219436393964567233609806080201654801295552250798354849028865411412217481026781424889467652993798334394583038008174927947126208374129126139285587830480923456166295210998603922414244462982771054821368453531662283133977072636387429361921933971098928448027094634986588091767809238173048568924668361550572056108554037846366162226725337246690799223696900060113456914331309955270619963525093561792004172996583393920383827786385376026417642936968803993846467344796820067814412686885387677243722157637679376033846533411675140229468609785753183762978141775356970572449643280403262735713856067942643706412729474244700117357179357126216729895368359286877452420649623095702938700236772896849654444262900944334038025223621535389709284749917532711852300736755390702384804943855901137406902148993134900957280227718460493615370450136064279411977490823481941781309290922123759105823827793831779817701798443118200963316118039206561463167997978326673475972286341169630597783904546271939036098474740070817277274614533376619350269535066525996104323811279424349537215850968187353994565526166015451802634230539713886513316734988517740293598170742534385562277103488716078134755774890524908711171982443044383217702739102070138540042115511163210611629902062893750732347703951452539247509604883787504682846413528694189730774102867180776589200917665902655973174696856926986586838680574609335709751662397651432439866389951421322109201955015770732474016495115732994893440287695894084069605242597473266579293805281335869731068755503536211266802720874276620908260637142248538000364948532300816193314253725658640364677532347619019086827747872825336772243515649135680092089777181876819792327038821066773781149852587513612455661281436153718180648125579360174091831051421525016331117023771918739677275886381447114891537977407803039458280017048033320178914869049587197949974938773295008738959542343210177099049738358182130219934686491851586697387402356140868207161435568261985070397927091655366845558269287524258514387774541878033971965326198153673502886164466172616195463920442354983522998009371841431873820869944904730755238256293687115144940544212965331882324845790406052349463877762955627227747118354920340098201961571702220687061041893465250417727329867690909521520422887636507751898485575609107074419171569650480317456717997099955819154232837272522239833608478400607768956738331328755622296850028287158884383723623500449049068235962295416501660416179878581409209226967884960763169191103292568181647601595084498895557534748894595479454274780017898910079417531745674431472513673396603602426985237730655637437523959806578505762230542109556298028605131525756199877261768344136236098379129500890819752498905940910166740696423204399813693543535607629971134317161180036968042833174492915657286645942621573939226962525030886389189206362273338103742909042211014112974895700322562130823673232988275774180897368111647151187440029548303855290884152429693738078033614746085965499333753201503193703502352167587003036948480904018306541308574626311124494029835633152601885334913629257705058472830091378802959836923816490824558727420294018005097969792489413405458823950960066951135555139127076223017494858669978027966361437629362371653898027672468027668408064405549335835453224092439151787175958212719471803686621663734680298297775398566211860645307975202676228300204823545497634001073379680661988467055313095909604817051755828676829862733125771860507787990766055995391705576603702189946598561231029136916187503132260227100307793766149868566191364586325528096093184996718427471347676545517044433412733417169034856408389140029126652294033726700648865377775321871985386424494633279215138066957566233731732794994053950379368890837496944444357134660155397066825019676069150140803246152727754454389490626289400635296647420979050976542907597504356950328208001441522929586663765736101937550084451827268244127149251001804963091668601929333900954953276153503483114245328607070061276855776904680802390177472863168649556416330495174497248812862529921428018603403843875846880110730886004783579457999981168548325812139685492641143665691162746259760785001292459450076380220557855051566455385261176056686466944270645067540695534760210841503896816639765867188457604359259361910956033147139457345923816682063493227634704175730374345481306024044596006177613908792195424347907762667936057788103523824077627655140474830643153939886283050770991831202484870710007054634041512901893086583662963746023820865555671352711416527632801764689192465057975700699072856305462283369655345725579084558529394073727236991099610975673510396956185435062961898182531894689201902825727459525168109032685587732053822305053871885155716836214185128688501940746608667382463483807315583977207434041620900886102583970452288895769650672174966445896055706973483803325245169623647173935154207733395876882255789540905516131373569483844560387605134567587981739895300737664087636589692342185887631623745946366891405129184130150019006206241075365909637304739744230832976358760340657552908323879636623997656991062503083062610161035593561489757962743395865172437592599289073096143892490684859212688983190478405368771333839682129591917279453402445129306150478577517717726589632847233959115971562151846186901032923406049854200516509841318715066715535605652121425875263466758214299671973303233712948876383356789721462988114199869958284279251279138030459101180057870167728052489484484689547454980341901997115211589649596838288070837955963505918629031301468804601015604273162930033309697064335249757599654819710560956977412910920011901392488290037328508660690588452449319188253104028282030106093811188806557426563770062363951896752410944229123585370529454460987946888133406760598196725637879626311447204111955927035327643732251901576790338042685524759040840176848611083690084045809531628357284926560241436800351787111206180370375491055723535908395588945711215236500059747098913052527620750838351103441225405028570019435551773614076735989345877036453281233561809666544351175192071888272814585100824395823812114254208749701708882100701971892879390014569672593387128810733531916142137676336502475967420918558480452896902271450043075890870929713936711726797284376359717196217239206066586556605314024565614668863331291299808568464687549769842300438825295449642508087900804260276883431476037521437353673748036118846788634357719271960178483698127062250512623072730349762618403946647684677369230428530231776916120301450826322655724655340343969291989802724852670500354298034440003231062385552438726345893487438638694575897964201608987901671697674820909215313523816605381975801346034854110977052563300985423778519925983318902228251155241942479528912456011383944937611826439326004309342621866689407859100604833093288363315818347451522902350247131577801222319708433390062550694031729335430008668566156530239033617330915002700093230102700415692111347252063651247001784157470732322308053860053881890933657126410974510607486617985029595530078946590328752249351573414246246785764248780534563099814849072005474934084634058733981282387008155955402274029925273468832380702370393713434192618436280323370948458161075229503967839298119960215568229941893003734772712926381862138873139722581604779674501180760939582012652899944610272396089754635428550754249216130875010065329073319095966703606210702574325795426641570981864018774644592058827123551574633402733187210982194947680932296766931184459615187534628379999409156918058985099692336284497746026296388187054224652216439152739696543496594323806821874195581653482679066455487680983059423455338229270765162191910574201608918693194663570348804691857464416277741628967222360573451399545771899771673139693131783971615902871138370838769346827335854830668427190709184074662643755525495646051396437923697000895258413632155593472640008399458253505995778188863762845191417462813649646419995312781309941780517751882519276027794835936796493517786473177099362283628198914041771485130394881444294041101160322098389369847765516157152450000770757700593433961565037879342865418299255396972833861566653761240044059031059611884848473471760148650399686546530228561493761717138704707088642882883151442607256889860117387065545044454841756739033980894030407234393401909061908054173804721868670515874444632250291874723617381615826481829568734778496196125604387160105905838738010189149227442281207636834681335822707280081961626190043423466655660854394707310948638234740842180365890699209880841871897822283019049535657001953956594272124405966453178641772293753670725041229430222471263344218236811737940461427728360516462200819115909493955973840205978485748576502650921797042907181135135950580278608932552576558931990588929789949460185766376964178053873752022904914099841101004937154580520088851963934242160376734985819184887633173816662945421900097787635557491403093328146259465154400307172359595897649408644050424240542070523204715328917583644203913410521560861555120678349717076913582148889766715346654152826257057850172673088464896413322576455207573805153326946866319821652999571929169932816410146263417048206771545615532673493450254662201589450734337134425502864482041824796383663439296739994389084209944353175349329333083907711996503434181036137477492173558348557874898556901651630886682950456072221039067253979251010929959424475014309030133291476733016399451873117394201398242355504178163683478311970085422116476075584489445198615652308996620477025447192404030367462970760131864094659396390302749988575971252209014914047540261842711386516464605666127917211820337149029720113622084839690078058766510162540725213767485937461869707426599389151793347274321238508237172719696563185966967323455601939508019712165585656730450384692398670135647165201715587865044425596840080212150297303450516991495546070823729336627379264789202058137082840026772911746431657324170015193529035788148542289629292410424398321543760602303184534900421265849314157032845594790612761257083115527107365063848642504398849163582146266544048955254722428635188387850322838310138642694341549123415953481626114401960191820909459817668667409548447951789675533825805610322698773888198619644478644814291103206953954435518922942319086631100032615714114496309047454772905022514644372570891314002130935909249888143050600480363579336905099280574200600093531958191438167812513744648536150730304569442003383844073013575405390126168177215874846627113971823609345869081847280314277741442794927843559810257471850681584526440592809105077836043617725552935332704920349400814753190839508006167391820685477909309115264867272965600835668811024968969095891917943117025715061806882341988484873840446167683305691464202035970573212206290242248064739271003672424382477694108989817281348259141525663156468002186279249246916723512528706976002197741710249139790648817768884047035350914736061583514882784486340257822670705416246495299531036455404069919043965851296496418298983517433972732329562368969925365795841755324514379590657042628379525042517700146914916376961961955396213213981319821647673228393581087761696697715745601704686303005764301193278490455723212113457421729505429267689561682239529597827262009614526005722218930683940603481970843329642191126335499051701301131645955887618131856727204037063932360528770446515778221196558943967145068002527970268012173080327456554752609244828607568316790540923059365955366060049849623477302313812930180512233268544932574400110446414801129990994626604865456375187060419053613941553447050020547165114584002198868626482672106558253763461993504555518694270419526276719627138766771834518823452919068581080515477968552813762552084317381563834911412798766235563212933763520224723549157529583769431686716093999333579430347701151314589667823999597631138156327580451739244009262778717242012248238601225636002275294849447655661203740321085967758746247747950941006728615090805097919112106169764259434524407200693551453075587284965871975800760478226668741925118608062178534724874194371395136356441546878896858462142910655462366637670059960853221693477275612517631247323221375635588518242938224619900747898313796283633175715681388732197930929230182618329989708216707775215186494116249592602372638315207978777265307481088379298948056744938694780072355789833645219667272219348976748289304812644013586287156913485550426545089677727179270726123776908495270069700002359099639151951520221755136230095858525846928076944503057257160550258674022188382772613188419976876427318244100914791537442342712642270804578138744573310824260654762638913987629453320581295463331417100409602122496539546303334850242774043316897935226319418139045970068673375783072781074047838485950284412775646762099646033454181945088476358710256333898820402329106862859094971703732666347918812450081054409346710622080061748939716216388819540304952879643243021011741523111571997212289291054994600551937719217222615363775974209104242806997951535494851909695132198849546059667447935860315766603063025363110112466113830867439044820942944461834667805767184608094581321252247673606160750917560214247287846325123572242107487451971489614929432600671549855976245338669932397639925248126652643144523610865439973932411638290908123464486892320714344204910621769591515338806273688993532286918158290624613652031899979472847952817924385950554894557002370081819152588374302323263137399720082860120280416777360124862236384548282994341252333987536281531618067871653175785011570225406186564281455629732880446518783921498283032207615037141516908967975459073865105272154289280810026273069638507140112808810935198055576862224446740456603731513932463487870425517068031949590348838687385042598483921753256146498316238873110820620659654874721869012050474910677499114339967455061911699303177435015853836002086882234224657945049360831586660728255758958950812828688756646524279951465821062101042257012698759291196551844118269224132605129600344501989283683071493516185616025539180442736448001764256267059640934756019112762297253771702918359953466344640970712323717129821114823339124029255800210242252009452188656660115022053395020541251931922580733446344287137157887990285492792159407450896864879393522989927733527583574131945719254935145671416202900922769980494865439974908760269339854851599465225522692858932481707123861450713206090313634236407554872019001030586371165199008500077341960463826153665938450524522709275935741363485710020494746918849193420982085455616304286862382856378032470807889597835233854646090574480828934237461596971052261025856162171890237317603994003717668343035735549546996965477229210734752027583999277742013696386034869040765876929482971149417286513767608625750400903760482072701576176819023198897960263891227060818400548540460562349603613322068662066298461358478948145806145974136312364259543165635519094897926731261462914691379213384637987988316246235035624200728703922118077278689745959872889730399306171621972072109102259893344231868824473092657355258535802740388771845067057595573000747251827964695813279034656178957515440025685372425962947921867491939689303575300873972361793764764675676976449097385429113648715486430385464629667967883389315074202383334565441263769317056000925817283755796784560258760789476206389900700001570620448271635444108564520590642973576739477518960136863550130768627397895525732365762591810380632976172469150391249165762256191601924911045168876229474387209298480951073552649644229812942511189027767700498802451054854835260053212705946733811540926945955186503521822816350549833275902922410474179763367349371813309179872021544265935957594045707673562209413158720536537586867390983892630513447249588204948721821048966421088470371337955924910048828308848751865631803450317772576801877072896179806260368700276760088656706286463990016780915035283642859718091902183202939862546593225375273259329401257407018418413043183610483800080943507524786862388309408151587647072627149395313415954262369479598304865893392915751834860896547899749296020222788753359249243537985519816059788852542733034025986736133196893066051649442194656217103626471267308240384897736852094784499239806425523178302479868712518657721738217056503139985607100405544708545707203983236640699594331898251300462530544377751207664877358048917321469887494326427710969553389533177646315422260727939564127335163693484113056956363101956224140136370555577064487912251947241537204996511442580597359291124784166837824841157583202248919036503299107611496981796678531983681818364203571480410493854620751190188936430477699453938342952984037234516518453117571487921330707057033318247420209458910332095049027359555629437710646914328745275605677258639224977296980397152927866443462051946604631845651756072295496341036840618136435451695828768222722223441267042980090844012921764502852675489912918919460704037596714193515551311500811437167756717287981127406275139684891463852733348685404089184744969597248875601116484177104632566588808293547640775757918501700917140525595955278720967072926482097101767501424958477348350083414996360638231043395933235704724058218109487272329283060792022334090595377174268650044733941611408471851167854114344875497235007589986329166471571912450402746024793345994633949781344687214564847755510859591552021952319139085591121088616352749956375466869213907233239499716084989779518637376455109812438439021962906235118652757212707820765545846948729149602852369754008678134367577304754727524284003536156047778712219940020953760874024340127012160597638810002963069739955275351583228783530071182819780104388784226904493901497737883455250224819393020517485925303572650150354229886000555427507296527370046630838223767447113286868740433597912561271058663034668722312196290346025261063204171608087988508620906089076919698247418080367795561087960298622700221863493714376865148411541264739248270733405162095081252031314778756050581030561805565148045356346233338969273520631129291760084784832979764130935486243575894510166536397836520521231830457290951601301276728145419146559894083545010443300350993364250691989957412298142280778952035082115874538705943150759203395639346105893718256128128658767878402710835828820960758357842225603527044758217187577366849425393404639218887444258725485607304356008804837408528707663657192056505960312318435636692768535440526864607552039902329581160975457327123987732816931163376447975126948757292367208360448910307825878081270477751486259501166991544975511700647065033569846586734304547876518522929225423150543996495949421286871544005782874185608058471739767058787071805330840525832492044930875216642398963225746954530724483491123033244393979396150666326170160303140272763170878571441482047919628540951022420134269314142403032789217004818569983777419777630175759794534461646819832150813791154687905627293718997238838516856556091872314178320583672465074755202619267508919282948802821654602133895918889100460185782121708929837201762109318286801524483226573356542921620579283640587516213068599244537199112550002933110820993539959067282055523525412114186685158889065501749146002612217536566887477290471783058265207611085543480074957840900869115614409891702635340479992723855872994089431538802395200140729359327775175439548351269963931300488523147290462301641129831654602431500394650900143997678860705087496327866171072799069432100572635458939811799804274960559372003310189791143893498140852372877754805926502391840711075688456763056599846484761237316238191219286454992434812924901100861935368786478130087775731773478556302772529631331230023784672057137508111531599652326224328204297122157977953173757090292133962216132051781949953352721800589751419278936860691222742426057297557575474126489138422535722026862616404366279079107256611247133897269747312629838399323371961002967780631092550839371832614788067856203199412861906297220177831793457635159685901885846469486724001873486952583127960800672583768910551246898499973168929722842803080415336125730340486441758741055731864550330594616668333466702581163234255343451236368992620965538625492607218988542773319250318467837278673442469051562478152227673591797265221683059097095958475661951839448649574007251108344344533308385727171495533848605411341629199171244812967974419782057713621462332683288648714252089068737661647129240238406452856001736085040652485723964665987637726706689294726516178086356836691866747500249451422219867974229164073493247121671511713733415534903030578508376593062926901546105992986787874459349249679468076105982479386937242775785708693234105515742371819315945286517990865720772557011763080741209496967539753115936699300753256011600949956644693201577766759346089889430670608417148526915733846532104763227797257385907165488373871932115046213855270831345485589544810694929546297547592327257375206271227140551900780619801594720262327799145292376898449819573461376744546476567954785930668843063719767294527326981314885679782135692534462171029602792240809577526156013647900442406101521439546047216985155141250960382446096244854482324682078385946992845680337140103137104511179590829444316505861237632442341917516412844860052714981976257641422957700829266489545488598781132349841247404226612832880157451230313612711517430935757481539544459609201993290717491506979463370266911950648596888506306562254576901248466663594651924622542665563237290089289533343865659536058932253725786571568619856400567496351851006828188269725668191166113940991912006857601230878955479998951611643607826362833007420802998969045705264576383161020412343001947949152724050172896380201375023814407277839934766670518674592806613241152149425558924726561133422695135597583630087329755290503174624176918601150559141771951559921981204357265383923818382108379794508086190140279059598932877265799656759284465140539800676371499763431461425821475046062327092564635990390495826746379485885448855982935795354108184377008312616112662338320778830629454755714050809922144405907749352334807372341831339331922694055743552023918750518313153291396242427021186240744111019632970863576194035721201601135338949968720965478429356263191822989354484440107146872457496006093257729459071075815231470538657683061157268792070674149068138740163203848965731033775235923981783911321788215832396157175655042044000819613363704345097761874719858290903997805586132927472662302943706306561339595468515469040743639165800988978465448408591795498482012393210034723138483040424307587835427901161337624465317893739678027231208262118189794397542317821787113435680390824037615676760080351138791710153917286945094817092524303323376289803735100817690314986055172317331019015786928901089836695723239421728133265581580400667702638998240099461474794041907803395528818496201359202764827516452777977842509867470478318869799277984416096698128380137957580120096857553628486436822275460105992724499593857496468860873487274581265945330624439510764918841605863971027027694298715772648590494487461388666731098342140322581033077761713057055737722005211629842353960343841037625182763856566116516608185633945626974534374037755163774664976930812802979334088219617194857768222844022509863903655588608664436223120104153774826884795647725198689003092922724001497566829233701687984707590466856809387374271342573092398395379597404255071129340217975873646390766174862226311869879905554074292702517669307539911981239331612855122665277921404789731402441361971393831022084094264699672601504616009228011721523293422856911746685736810361836732100007207854884387420649887043409126515082962462895769884570269406698304808222308743070677603865773758822143821815955804575645360271039141839989793016216534119191785813474520563750536678995265241218170731249051276179669383784347016859593756087784019427356158593810433892584208486320226994952693302220795740269108592286948647434954737684016996137492083665297788139504260813581357164745686514873320028925113470480437002739754909047519989325710966528566442884416540237311555647821574628973182867294764021974286856331570167994368847035821228706166555881056735348463683945986037758801777232451119191399625615392016988255403196886290531627208062550360843403824111671632262636194347861815148422633546405183873886494797945144456889804288247075272879980573419638008597193471755766871478371158688198565503496262930497787503662351818933372186338841535175560972222823779118796100955482475981072005873808177238224792373127720449467395956200879191645304145918795413974250321756589157606732110164690153061120393242195534788495306450293936669740467827414186133249697567349516158603901425576859830356875572535912755133088611435811708679449929943034289931942605886894493047743927454264513233454055413690504116699552210936366847233769080167244340440617730243786537058510955901952641502636898895046802305660709244036279205352930526794901677299095853949349659376934953020526571268202015607983569277879887558919269352488288646983694745771768098904938332995836289850722627633266628652143573330289327773339201287724738812623939336500635236645670303600686238894031920574852103053257157282900238906251659721598784482645457110924611107143815980473782554336584991639263557802027441076800022603281991816958944201543491924048781028923864884062810287410482821252507813930930851842633688913839066701701951151912554836777311369671656488814139338072825988622924511984565096661197992775540428328968093112120587296511851337506422820165423097568201586535043103617005548573477674391889970540215338453816205092404806104088436461429671703547961776795101577342278834834919284437571839233906692522974593565956025253630446654397255169509763757559280450340743672974589075461750784135706511200750454881192468429688560630327493515533717578034930916966044062494088245672213618796443788661190676552055536517009794241129518971645289505108333742708204749965102600848448594374059894692018733732904175726976499621533540765976451112287625950745813042380781371273821233104282772192751086398968513220672057839616321573072160477405780434318579798410698135747003685230983012816874321680794584458603632784700066610490400759463866813843271034687598035072673557268766084307638600740925593697123326438315368662003648385914096208545812142795656747570971470193253372140429373123305056868076386764734546525207115181696265026827813495494474380220667538018945781279341117631165656468379052455856515656943313079103814144910959851876565497446056366733642593604957754250031948623492091854255508937157138151307057668544698611157049878413541065397640564234159006816281217060711665910293604404742441348391913647864932844818856758054678753260240077335487560094006454900122805532364876319737775394595113735276006086165260814796309395191002397309365481466154821216906616961892565817035372253464136085169769592314236065777301630064825215832062564705979884442308355461113196457997507831681534200438868087768412853463840534299058773029245824162193741981407486281240995928034660901059509902489447123533326257419539095906222254491993562320347443768740906930430485612885564839573303070742024106291706063025937435505934071655922322303789254845503784488819678927359012287770304912336231516968963226736222774489327893988940089950293146068303338123217650746907650498880324602284901251115286030912028872143064155711367111794277659218522794746514755023645213022045838277403871987985332549331602091384466086217519269227751564146311384258541149669222334051019140599816181764575087496007037214778248006230750679720958399999337528023734601482906048548757401280478952903947512554832706741264304311454885941815256899503798047976680768476506673704322080658558906897284196104061520136638832275695425139550132403822529200622338228290358861179229571928773867138705581935685959317458741891136790412197691752572554717897078184161539249644137119807843537963038050525759438713601716926673488285724564414575448023220836468701173817013319905198055014626569140030308792883798725943875001038895685601328865323334113149981005631842606544202115054035533162106019267398195861342909405273277621875207168897573262226049119460614571580753744942203158585893412331779511816280158913758763629440765420984440703772700362143536378566680866235945496517344125864164189844611292638824470158585681542045878991085852581775221707355017362399481008675651902611946554749750035210481559279212770124625927957851311815873859649364667677434278760698713095556071594325097370680149981855820188841024598370002786304077442537958032444324369098796714874914246775668453150505921093848949343399929593370062537866363294586387971572459727936377303796363811901685071623144205544990396634301524703196211818364838815641774928954390648738570740158169058327134660420968538163785734886786311325104451878182229347238646233171952809553598306209945499889092907365233941495007757245679601612497753896790225122043105555612598230915305080285889734748358718279403993740483794166513732927664994526244774474956107770395264087916912498305343993052956037992292513342259131447691555952071761905494826269661351257657450240181217545102252808527724911999576904849321488783957683808019548232970325501897813557489466907207619087073636907893073984501252294984778418765590906660831464407496829027873799692016568351763896187091671014573459023317523518234958562030409762246296982234180019278741850756891781540781421638712994634953510520938262967729776155236225440616523764541967601450462832435501124014230563473071761712056167929440367369444417072394913338862565359111075609689423435451509538748431658479778531674448171510740855677467002313403482849596629887500284510476513885643367115951482657011097502066621416510350265580986789912482424947748173338371631023367756821737845406304831574661729102231341159845851050633096683711575753203404866711663877983966649583924872033521798151145993958738051881066637499551977426169230464092242085777318908488474017396208693480888356557674827414953476582395050748537623236630325755160945364365327933599376770262008144675958406512726724108020491698985394341716858589341340014544013902800766781439944453710893615452079213976994252942975914505733013530280419411989569156867660702906593260214759457731696456588069717898329191705534168749856693662827790390940265424938597964474485420861154227672607010540063763936725459795677190554393217879370523834420760069726971233720325090559805662875752069404277165156144671717980781504558240668336301099255266962902055760350975018632262768696508227388721149947623349801685820630433780030046600125425584125842597165546736403667742087069047116004736598355083878739798415099752034774294481030404507273092263648913010285290776907407443232078985288660026948200204656474271682155929964054085943409742553841999641748492731443098893896296378759629026019503105443592513755546117016471637916027293925648168640971571746113637877258930447924266876196790154654816578052587452441930856841643448329732281116440147783990801615317179549202581283503953459261049858433061280784493249800634481369348651227987197811854853035551088337686955021404198334208978721786385715430448038374164593659964734712651453816463538860637901001648580352764488615285238663590285127028717895579953661391183726566057106824200397922031593551704930412634193892107763595172982310487440045249178660802030049610686029177827098726578502634716666529988620662160748312897225340549581217651428898727065385342703631182748000453653443432703027221095554261083628565047034749986549285871570494473188360808838836778433814400837848205632826066171992919368826032776063837493360672622828981022871315863342743122851172184952737292002541309148256290737030285852408545060531324655482295479870860899855678375261561307968777202342266953601490502439078161928115351984990482044419097478266003754694423041339179902306664525328333126271003041092419437887960827108522166998253175294175311654269872189538245605964232981905243965180056325686277263658910081263770070255113174486346800627225915230685580848123061925775628716534854070593403951003839133012535445483662862774415537016716139351634984593435104468283784743103438615845986995991789918547387410668842396036874299295458034501241650867411792499830739669101369966480793278053756700658242208208896423009257714011169046932263089314108860375509743613101760403643678755115804645478343690602630746667379955165558409098374822414618477972455616701442502649757679647155507397608065499450377745810449281487757767237198570735035755877790944778688850898746803270886380261979962830006028615770005031374971329288442877322342986104008180015555459067212731556543096684101907811976582616592775917103818275005201337016077969694939583794485430693484974419090051130366685355671949393466827727607502936523728782184299956261930701754186182643596824182982719856734246721901969732331913871384025859002719584427285356239399458659209592651543902482646147325051852915611685567909325170836444332692649577451160027388802860192812310106461552432307924100310274309021900554181767363787882156095012114430556395271944031059132591057245003939759865052464907819262142436691602112311129401486843416132385126100384447650242351815279185099366066775079824908733497045240807407362538220761634383218202262282290050606990962654302413317067187634913157726554797157558170886989468618440830266045320467229710879250456270977620170111950250665156383182644353306941754859556677341403912975305821570110130688031848374302917882688760293160992831838952857039212906519180171370228175606500457292703950031296395601642483764362948866389662850623760725376854782968095896605291223119112741596281424887601824542294392454372718435560832195861826148503065048147656151499623602051449069251937487856638117233464284212099943840946117472195081375584965018483336883109708094822345302712834277129577494999466559551044092471642460625166029011157325283894012543430721648376849149094844915720938448195919291965592762105007181734945760620044706305233215586687598599946505040531184364595273079650496876864943382969219890711138095614473939448426415402167373050660415489309133755144394082776023662318485530390116186102495803655054844508706131500443832609922080083455651310450276028264947057669349187001322244492205534011885445379907531046378285451888815856453382234476825708147186616613291422787334512556763765989221147928401486676358690579067061051578569900579317955746571579570842916900865407711167325675479139920179068768811595099565071928008529987485920283168956133199304878760822357951809169167339210937388023363416076750533432677100218223499015250698839803998211243122559870539270413524017936278333653835830971778124845995130155098009327751124868475588440274319020682231272171148221108837771990809517817209127321616616165085622308829138666348950609182655663133967335475655694604432994970889469875150535093202604926566860072635906163469816978542448843919702545782845778859556374930453355681660811230378757142791950220867101714386547013535402198516662204732708486065520827528361555278050906436974229477562586036323850907923552450620678295661814738049320558310396709511091236322594518036721460771040558760403939874559289910044206602057511146188794291327239967439687851657669312470094538912186737911998879009866720539106687345906115228355943687327686315014080925562119084016708677062234787718566869725524780899099183549646742260478740796543905031610265812104627231060389977448966878150824099080729385574590877485832280344653630038898934783965221348288634370687088359417186749740300773769372173981814705913060704481989621901005777649744430708963056524866916333041868014523358830078930379212965983849562352014019485709660095335276439651799497231997988472589777235845451293638525455037496175641319311212739073311417153354662770416134687402708040484594318324888615867149027280541946372999680651478529741750806797566409761006499811116448682012559758858754840889933943475643898501777438987839914810114325352292996974734512689820638315642181958096932030883255918472378381813724980039566444519200541040828232942645109689429097099502664652556851002120261960322123724403559527119441266073043302794106732345851609059493388335605038989742403341723267730189495143243254206665725134574440819018415852811960300390143402440478529772058304094856738435625845002055681439022441107071921130951953950812265906616115645090575083460818773464240914352654652627832946479501513780311408315687664916112640913656018674491009104765137032508841309853988660365307307872946274221613755159816885769160303660622813784261283494768947974334484727547946670921836077738468842944115962165368337155900295269134517367505071369297788136445253069393638613645845176988782664241370740342224290673048087376650046853182973862984246007357310707912968965898372809600726860147660433705091262635467295262827117250118711582945939386980877125917402139566216970989408405411978802894858250652509833609161704744464633722041167067583178181556700958848459383375709879236700227268373111884106049797554796660164960482408456182961416854285706864994787117173428628664898106500439430170192160309087247842375571284209959093655139383709514812466771406049433479922922333079812440629027685208461771223225316100928252324461845406228623478728666972450658959325724090967009497628488468434844802772597949673577789469490617513649508919706161045024378652589733092216947757614946476629420441666502957885581704945023608974222087215485688743087758697491025781402578655951242648955966370588690742076013324830308786051724767959416718443423723146550984888788888176095542279942667579199331878424561804945558445093762313527628006322360340996112934041683944340838216499393747072601277794425073046185367403902462058957883280987982342366940781059458452399626915956301139114146682767615973644757771153400097291322682119023329720694690068328169842983923088757255639350436749036572496316723115115001058083495398389340679176260038357277768236348958407534559633462893844614591734972973004319930698766458615228068262736633904970480547163154404257290972023856553689193000012338943407857347483823563345929507335449597879030574605162776211452701576129991991167982564191850892803100025137627605811613177165146678952540045957391680201553010986933835868945795232258828256235380045087397765738583386108797864645519169481245628865520442860727198653528257583996929003570560292734078769225246016193893808049325632583341744110135726920125960211079764313655004225826879616873611861071348054854126465807926004172936474464352728290395204247482277899530334426760490564730400199167601315336545347046940229645869177560993977113589986377523154002150347882715963033056252648110578990078113319535619020523147642986191798419556537253188978448403392683335605674263633397408755746638739455187970563345624159990118988806792429713307161973151995229636733292496609285184444481032360092223313579542692605065023186817942316219353624702840043511905858276080960733814641584036130048664304322275206193037683784369076611463910249282618776836459096983691853139435395093730494023653112049672784636693400668897770975124551447389208086637498265747384604098448183732690975032626611564636582827015951063292047265309485703118981464154445432759819798850988830490462644037048513857709187813318828600204364134806131893612964097976115481330305684378862613494489168684477511086709666720237162632232066909043416775822346200469052493079757874526151471224771963402890667108245822080736260234744221557916607010676385530029188462409297152289935237561116290744771924322214018873013063356879423177960530868222222022053032710250690810103028182830072919613483024163996954063478719192124715484133447551717476565020699691630987808804902848526782405061583198266315260717868377133063599665052117630013552689778841560250549392244815281410388993959870079477342966745080040311532402909601093436610485377994397349867812597078529218977317294664428556366984502492596805758706215708950242958648466229363577486796689905820938408314075913773900512043952908656603741393998452000159648977023742772346000251735539550550379450084898488007099668047444106284428032756615156476602592125839900414661266814151392354774632300951533729210737159139868429964676469553086357539364028033442333465153338072412373004117052550764210323916381631884910433305053355996846979318487208770345219766120094051825389932293484484504158476239766051500912118385192893118651474974375687063279018204456783628911013879155312297999461308962429676558869032285759921309489330719723942020820828991031118607396777745327728113623520058608388890712082853490042069181013732277342846651811855532804147699931082478709800634920663269082203038667817075332834437707331067643856857844833888717125315841920736518880771775771312319205744643610025118980707851190183773562745801281843336533015084543031604163813336478829456075963478420937475084147996177112513856020708717715914109229735246402449534515380182348407488925406699961084083036685943292163290074261581585304069178319481759971902273583236027099151917460587615463986260927704148641693800356889132755447948628315529437168871046488571087594246339626016855301154322132772840104662171469232316195243958754793699529724566563953506169981370426860832482929649939115031539319565188230532787577969237316226916274377128152426293032794388306219094304178591847766337020425948903105313188831090566975474660165346921482567076217417947766249437673921888695894410500082591574089267583870141384016576155648652449698830121914707892712357371683740387766515229217198677870340451351198494216134301583917167259986998797404971259191126634762566810828338042582639255476048983957986139260862736824369116189529694100451864004584672449825672061436733920730282397462512430803392968223568514688480778023555314900327439428057450544100317851014555847427178976965423946463268626877649232821765045378839561858089171243875597894030991851767688888068889744870857427022009554662793015572613586712946695714544470150728875821191376809679103288158764512066416771591550193441266707715709559820515275128507528050673729453946366846559551178055267689693193001480038286427260582651260406632329891711969941713813738902876858563909777595622547787508137883285708872214433576790382803051940748923080596824801290032990573399190049731000474487513455428742800159924437723878698237076663593217211630764912985591405231253841211387806804040822985775720277555943890404898861566689566039296352952709438790655325439932209169288477510181317347661945935099412808462183672291270137070538298322436608263191911488747088261367980051384963378359453922495812411370408093359582868579916589818356941384996889814207133260024694483027123576833482316168552298112966083992963490578654587293093695762561572910913411889385854625243478614391246030025855355990866855430988892935105484354442953529039943635233795134595574387877991022058909369657793106601120577002858095749490610830157650783551147828155813756041292932044422896954510098999968842591121588745603215071314880018902778892444814281932282124844148532492641172157161320493035332210758104747587448691153284364081339718722150473711209664751737813881617488185770302003166875342176810966823425211054461373074167765889859167516961738601786698724124139275727041920979714924015643179359964233614297998262748096325502552571599685141381813810378962579278185130056413533701328704643178808717348451205469896128778259515687062921122534499632940015576923387767989838883661397435228267205673716068490223405446931749740594884940301652539873346080511368255313142236892365481278427769877847722444612090851747463913408586235857423415424544128377416010135122375255113897262360755168545169612097506461961842145598557845411592530453335655566096152960057331965161531521930337606637331719628564306310561522209819533120378756917865426399684230551288416362935780378709665175254375657141042828368361746247533191062260880438273522216226715828674033158883837932498299111599487201310270795753343364592266153114037670294985469805955908122857910448909520920595873102960307589080767027042473732941993990709340099295008075601035087751110387238517315992308965422153979307010914631971474650249427260466847484132889426019250108821469663629713960509253287169601020047035445423451721874408869406999860819728056527548620497749238443674027320212087310775342557693628768507571568410151398646093787358946088834300614564147775813314522762030421570365867345893695145405704234855176577118498469430426077655449933079436577995909937576633403679193402316276991921400170793911401305361023329930310711644968078976858552396722069761867308902772483958444847041616491938843693864998849442632172678857383952309318428039424878961978343077127859865830678636825143503081687504993162101498394807868031684761816056902881209628823430154286088454986668847974937239833199751019246959953512507951404379957203173023347968262985923414443834300465520170262141462737666245415712425691780874583985595678591207286585529503001496181017611717631499513591839889068002300056189059339864349716691132133439673320850390648019525601187252933920813133877512192261083357006376136431467687981512169292733507048796925525056023470738466036343487636104771553314372465706003170742250639706903762703997238247071165946250498893512425999888125658179422477963420324179859857858414438682606698105446937911630418385779219983903000556826195034443448763489734205671526976135827565964707720803331815289449603499704295513175224362198555287606913570511867232215848745085123020180509374848037600008713711135174114664234271408019580609289458766267713525117013207720937452713435378820534274513596513665312274322825656972931787691430006214460817040246945952344131057918408182908943802977148980718035190869840407142421429832658739567199872440224585939449332953150299524774027294201229063909815121402192964120058002841442865213662605175337952307156419594687908716931425605744761523245265887459069360340735421507395666248150289575226809967470207162779735677470701144113924098130598068048872326185089713050787783891769050825432681880684634830493599763153696147334545001260730454112408952400817978950623516414438941899634942153360748840128471598852293990588130252168246484388877805214811646232719088900689707709420892688422689842933056863597595578631890098710198044492553464955317288276544445452759758082556479291399295229820707983205565704344757733434363768262939865576430838021503651095596712307837758071661262314452340801464711733014365049363523679677387660334362051615952478148524032147032774793799708956970443176806466259306821794685353994026276154167834956343440998170230646036953111018994516744955529667778378005392261954541687563301233257744038105799343732116862129470730523288534536744618619556497004188905278913118800202954414619567498055528337206334766023466053993918380601867420593417973046263877674952252423453728050599300003342143898765141239243049387309937624441243488562041791586520656478576543995574788178177153007220402493447880493113711252923598132927587430572314165975059507031620494181839938500391590417005583443841669670155531878562212074184880910228248865357067065171730621655705047827303613753715060526467358156886573857914055340076743995916091239073773274038068407679658511904896819763440531805856550298700392479585970670607966051556155991572535426391205394732343664942043608810444199534734895934858330279169816662085552996438730358432435762403463074437360718912382778000637425754104717046142735557058742125918546335757648178205678300245713959837942431049978721082473183674827464151801486893129301661100256361737204084603896866321798568393075907344564934404372346155874324173393313896053399365861700496345813507335617920360677638835186724680188510864122869609955279519136938350767218879453089517773684268263863569377493865131160733948976914850132081495263498900091294268155656413456410095845914162871405016505635048478360389228082480392236912188819948300779917154762340488724058498895365561148256156902164292329846782927295170598531434055629786508498001610476023931654347774215770346616489877761356639129594370544651414155178389601089731675746666524449705711462656630119732452645977452817113928570256309792060241800926246907056332345167627347910452784512346428102704981359760979660519513336580018871788070471078180964733104698892966122906895402282667237270709196924873715905342803912376071293340652438173135432202283007809444763817072412481278915449461005705044055602125403026493246601639187283873302461867411732098168692467072419597877701719570433425947624648735863093567800306765455948281711871598421276199552534567928014080089467272180064582890862514702977191081771294395773838458365136657714796757962870050072585310356242814078144412215024852326497404206700131547583597593713504149501834515148662349780376233061770076372634248058703147743472486767945837199941470070135342368082077430863269498301520300030948501691388914326651488563033905258685081777353675548216834228114095133977336319082179229379107947466961350272033447677000755777896312220725196499502992794087642604756922331513635511295977241070250860620995924628629281686661316158660573135791348184663342565762844424114029897564111567251183533647107402730305043873786049488752804537282852429429358637511764684826779860556642145710372639484026926582059392613780633740741772392956658422606366634252901319097755278892116694454850765250242495170698370232695798576279493599060839989181078987013305413829721220948811568362628156358789274520420490484354308840492038470258728664155542946630131512380609324958336042775196788575167320591577188461188601603671725258005818239537001695769558330251492723739223891839020141458122305226541261653619264718199233462221982989717582739471057228237859082484808899743321666472921747047376660883108495569951475667864694375645559195149580666690427238563571594993877532842340007898263155286241914023104400548398255651098563399732187608329810105785651382253717217590514782809455835493322234587048353066316270392254205037953609681941289283679116180525119513807973313607171890373534541896108621226240592392645064318758555156130464057115005910045254226768780991650380769960628712416273838671169348717175648392149135011347164249096242565043412367693160722275863076802164359737970191098385447190499458697886597377087528521176996918351706066887031347538912631620531224632865761497704441711365228719429856911188798025001216377228533178604826373748860964407908258506115479155243707858822269448215875657191849808367838707711262336495015978200579837582091588093935977873853415692521833200347492922640763716980310672088457877157924764652831193176407517251684604977216246521820393176365950638615466692846326849857022947350130868552263130876575777920343447036680048793062152085503786684675342924742955853120749550952430284044378574087897001278778213844234523069899365159780852790794750248524019651493356542841459655853111386065754545954581400468409596038859807487208402533978548622891721976886119662022245123658920683693434425981187315850802827261163571991946245317974387232888007764944192322683306373319399308742867959029536341797305167721096284301643354840365772675782880733555393754173971877773319429255226721382800745101346189335111831638292601191419845818547931768285274592707716866619553406758815716606155767210231553265552600509534302066832513602596850569257528697597464404967357092925300753443962426946651425684112273750353617065516622704981444417737222172438637009285541292022842384273465777806108679836616392905916310163144065799020351652460739304314368582985898623737485072111907332728380382768246154488606898194357428844939522019221383495493459723347277044770382567351045678841816742427255243346184394137544522765636741803063348947464510162113835773339926006162201135237556500796737189284290292189104287451074077496934132729537866184748790934994406500037927685402415586220398312755557497930530400251270154443392741811035766244698660134001470005084114249003336688779429844420933043497962102436274675196159068741837354890477721500399340108129812644025155275909407056860236443326136915474185458094263126306721099224567126717051886006435546235839665632865039536580345578310012457435784890709753335684461657037287612680319269842265340780154617332468148746497838565720122916809099495329446074547402140182568420298534028373535371377759156362613993808822337577100886951148256658523134317112332330038455120022548364281312317039266813806920740900205585564822522391633296098858778291165981390003241783777304785380440513662477673241380825505330393337583327842312621271690712030452683437705428395255294152894911550659746288318095001634701362621714249256957426854435322676633694601981163822759166026815142688079592588860395699261254414232863172633145378565212073919014850000224767547356003320580876241449348102916463054702834662583429799192154294384840036511297880400991196881045701294459303294157563375019360731484349395494912855969438254199253750587933776404561465285770086268003230257800039675444658392743059136666042692474021955941458816910896080245437591860056811852869403741641673927496293376193157576599516899060080031683662566362183602278579118776072826970016442862771838690569797348796547634863051298807177313392905288889193436134891168821735704521687015806212785785359134997213449349156558180877976744667783496647842355411772796311910612111149870322992715861172715625196785121627841219296701788917435333935101912181235813248090537479989355256292677888854357519791909463534532500928446030982756106966848518093589837468922592934045761970236995445471372804329687543413195843169053672621709335106793626042706737657612481370779158048276538781417793639188031868234343868596931938463865229843130505433169490967762305636593174044726127890127899985176640738737101865556519337536526942409162124818390462855131844319960176438825815913300013158895009049778409229778282349393117308451480310662127139304207362906196219272738511266222241736787005855520906935761339339408107033923491998592421386482677051242921720677164133471212289260674358965579138501086967998553167852064450453031206238576728847505192907387579063363660085790346892014673661017787923962188259497800767861879344187083729746777737268251942838460644986935089073513438012525199536045724278564887745656115616015319812168234435832757383680184140566118251660084598031350228148437653966466028303049573255957007014966405815282117880620311660462542875549061337313225773556291134764407761702945715910980463240590051004771681514418720672385281409507229352109940091669825044887218057523324989535994268011017161107342853745777969305984448594123767577177087658178070493918780436865580229329278689367895902452020961422937134392673163671434897697753384238822828904174129552624587228761603458644330405966922256264015818823946063828635790978909656844835885168751324708160061271662322648452807153985958015119891236336783182830067313652660003496309317724297989926554927439737446995782932803538707097721809867739639788331097463733336373617912201064591015503244632193022384488034137594095023369681953570514303657253823527780849788284468791630047157582152949143360028486922274909127566070853708546017033397376760909927497439097295879591585235190252409037118604713131048811852328825445941173586141627053072845825038770669499110455597894572166342801018841608216316584948653884876548879685767218740507405444889967151136491015317892175978197000138582524076549768352503996547929809858432215102020798667542189374210173982602943174432467308890825024463959909176077178319048438110407727545642728229757686581228196944293267874217582729805544713389383400872881466931111885902128445607012511208457795403314989927467871716986414049215090552984514951747001448746144922176839277338367728918993708631758243987304170294862540669272180983124780308735601655480126175879367816949842324222910375067795288567103685472130423884389914708018373364075516124563622800457244345234097621938543311379279280273327760336857385722602873751400210174556159931769759361856524492529531856492722238092241330610585455482578779246535501491151497861328557005639601324487800678783627228439360540785852673730342789779657736384158656767919742523208154328340499520162405593238968410563630523361636883047145542088369431586139476330394456416383458623429250527379922672263899269928042019676434415976330543181376923035462291300870638607116129374208132099883706087601127090362906734625786585054745953393647221475183249156212027371128221772140778090243745852310175981970475031206637696882983371161277193073537877693883814334636488690449654199950880272967259571289230251577775832681165127962436557440839261702104972982144374463410211287661192820488519754328053062736022839368214697303264980455479733333225599234754196492699079582901595350493994240434558293694645979708304031122386703768648234305962985921183775032711233030425722285317695799834001591933150642738987098913999911451018793005385796963979939647585237482668135287008594225931135524676330897922279703199618015139863955073956530290152097933982383352125003157623810633844749074603768569266592861968637849794395608629548968834689568787247963094613788461624817154784610472677428747546036084792783312674596448232934809796180470552123254979127315604215069432502530913027343584101220461889281222678983582929332835581729076122122283344860536958528405635301205418814783819283694596397762216155930515681444418638539643129860811185396666186609389585321434335386698273445326292333208284248384211020444947454012605118213154934664703367432923687476056914940583015136023036983305406199047743503760368661789730136450892699045737058109811973292106620775554943679108752921588951386731677633141078928910281298931001509852489297649179853459091342044430900154752239977055447321960010105253331249412599009613423670227277086631814239291997368338587391094727478643556736602717783397489088581126737568616592655714985169872987877177889729809276260633922205058503619127177305980742288329480057030466864429237934889100159874315614471176532961432255566365077574373557439998631882277496528897452917049668687299259982156158517795425121706155844057014219690005491540963027330545288793685076383985441201031404484763641794029997188009444158748904360739323508207217072837075871821724787664727703179546471159932524543465962843597252667340904190574277670522377712875443560134764984736450075982029826077590956179430813897385918116189406652222045136395532125158107523102633571369820927606317824063281210196782937509961817532086419598554993591397732862993315027282171422325801510454117963184884420649237555522589642929778792308159478807650511098621827351329236723354792510944525592189735360988904028496377984487724204307701630364724248934936536190195521215486557229491361613552565041949504755884376390900461498752652847758836652243039891286656877692487099610955313023227748248081905672567045319908609557647524737055423934002707620372568281338816155263640541536868275255643169668710286790419786689563921266467231266535940328577037567076699817527540550171062557947518688361326856431233237454142792412458700166752301679036461444781757362677036607250402099986889263369872966423710533745151696197144223142065148750915599458760925049914884142095528156319638382746670315159189285353763056976463530881608067856393754161896610543781651941672749476635482845719421429613824251282704044144403603986882169631652844838364401064138564118294674073029520169422446582997370328527089779808896047945794426822396481384119228277749145574682743890629374307820582438928192073133790048683474787525205121059225216326776076159467093872741339101514836440070421461471329993786965251267940039447322688386778170343388227570930329302799666248431798015146542372592137214434972049388944893275134555453469703935798938397809911385458706214356877699844046349218238638345442967105798753882267024086455386120131954792320028851727605512399975098685682144530086268947652914063716005177322332184292530457562491688903237862907865560384256443529521443911082387994417777153134779328261603423238515796625852524836359511159388206608898904111142295090418090849037386129296361575236495244916790644163966662638718964649505122625228989605987519130287467333954627417404075883445417535214430932984919012923777274932113901385589946492104484767462518129167383160510779104160677373183179178645261952415581857076199741204921500514624241561016381181715636439277438096078673652007312477776764303157766547525341029822700854013093511025043093126779280582865013052638275194054225712285079569935675828389990487575738920498517086474110137837313060892530173027878361554594937512662136875854760879650617886056911475408094722737027244639895127187219596516936416820028897502552846961358499428776304361597083559224130596889465963675190195760938134958970039717018898419846902032478016633795144254012952582858469351806589734911333289084475711340803015889825838852110199558154947616691737568950954768737197875786962436479644801714010343301458932201863356231194987204999059062032861409997951259958596160551330114860688499014187705520409972558005008367742660384774990933961886479445305706384070713682378542946543949133836064312467793644882191650004761350128071720476533235480299482016209964083745218210046352269239220506303395413514703498673358264439893704739054357103289942039914521289768331714899957467187241773073365965774692823257619167388422413356145050170420740529221019485756055611506593959114412901800346059262013527522827149440908012356726673428442112164794841947194357667925413567252583694790901462615024081177599830628299399226310766935146766357768634507868206588978925485405736216424630215793524019447048851079718371063805489797658434216185918472547274650582117225825597804284347011266236326904475928618229067802976168573465015016909000358477141365143390110563224606399789669793341194412381262121665963609705637712599200683252988110020963747372673721463262531959386041066352873795809191479482295157826835331577130979520266448541017395888183668906590553910526469582181603540487079558870533423246694890935456146716632578434999848747286412986784619984167678319651126444027908843294066462057898888718919275861861687575080693333332355133938535299353476086121926880299345281506085271357161912716031878534829321581193961710292955153234936647727347352857720736053500656744560050505106212008000517201574808870944689250971610676468484545753160415391299992288843677116306468430817458719175239874971159528984833568389050542734612604322891335521836469286561690949571560981760637587317924022898112719463181407732740812566796024307473061868205813669962308902838064158656587657054025371526453344129385558018303731419257195909414329026887623400409663510745777894272777372333317343290138135442152884631007532193788851283129503179678060450405586060844244967141642740224104507826874684822393905087336087879547117118344105337365660581425231950125622674771838205307146216905026303817670214272889167284314060006211003548632978157086343753172325309460822203074027882267158612126073666349945479930701159071954463280976354184617437677543347359238302945743429810192144443190018391826722777353586853283190577427650792592233819446277006727417785474046553388226908097346038172146891627396054244153949194606541178426109089100592777359237105664572159165633425501207410872499970952156285630905098206077488918475476536156878819446635201087577036013661449261670252734949692481643244016306401562728378743960993114943425720797692817129344446564298215256207283596870513308374623670044292782773877781450656228055776246647678392769956869973305268040037203910482017039730929062036710207834116103581848726705332115331281350550310747866698719663175634606121807731793595046542477385852496167432851111179801686244816062534183546473351111977351177150431638496380704399722457727997391144712858737089676392329687544486082884004574596137054014269469255274926682255887962692154618511388707783745061212501478523380897677241651011129598218004674259044454384485568054672796704813593149848639071868000193728791826177105541190366744949506343983878208116118884234634684709481209108186709672499062781326404662143148378366142792255512098502597161653053720420763497176178977678906927668864375805306808322612816026686752096794792982085404209946773780752132443794741486358480121534542260353269190142057081662829584974898458318001803411006794776060608843428721460555935216642246609583226778475300920301306815158655309347355598644480011118188814928157014134289194005417534619147879110874103988689178532873800158370616314051716177111593729025134228961847087344380189537021677071099301147092322299828615409466267304252696377246605815253145121334695708687431747419408558978415027823317590545083948181195234938557887703482930047692717073019020911722644707532370016264281322235569295843379316787202313628169362466756531962052118733144201555470830957261545534979266679421833934330194914246057696704910454061102390075661052050170600909361762157064978001566530479700148512577104618809686943951650972910533613657502924078262155304027150565704348323966064503015804983898953810226913375301736647753977590781873095669502686281360408810823652399403211973339740468669245282330182578469324469606550833254273892264899928832721477440264645546659141745448334062321924602085351506620539767920750138563210080483064507236831896275118279522749979059583981184529781069286744576935383998427386836199025141173037086758349764012301758126723367044197397529086327511403330948488668993544491871801103356307354885196243599431738126719472380836029748770329799225265342053267594527675031031128798887704037644456131957277213858144147659037736056673281112332024472849862764316252548439836778614986671069116511262168706908251973658594489865262016191097530243413437574077276403623824017885902182805497276807888762070386708403979252182453281159340372550457530037427569321593483588447420413702604496326629008607145256444658775123396503967589674674862455367774950888047268670742440455031448040290365883535011549649424070668366081790485734018552417842600314379698207079800487615433402675906367953239542396662505195982381162116077996177502652529384638507234766036143160207222391748028900477680383310241673145410474325189951716282926947109544829843077452054274454945826952056888505001210770543526527603055892468573997095038840522388433120431626265425080043621044584281807636278373837900019019617947503356124822797422638427592019799624410887087160756394987229288973579665229521701701376854756683640841823940306795748003544536735556123667159404808578103089616379139693837480832934247143695401617083689674698778392350602834371593909845376754134394761064036418445187811564772063439460617877606733687896061659274935731633750438343464533559840866348771609536958864770280579597465642726976194181097627858013118325325115496712467236819802720607975655084965681558450446265468485006473976375578696238563196540957166039095187270531921780765266223268733597313331668066977150246941713726886199697651772130538252263030718891094273507624622246984589115684292170536699781668741990174572074858457686026046281330109318007092180614896371978316041413717850951539794614009235415707039898191011513563737255525806525493431556896723705849334535404482224269487586917595244391712540538945359893966556440381802893173573712721800218368056267261389752250673217959949308735282468031279102949040860984498872384862344221826757698686171509404313069475868804123973089211733433994161957717664942526620841592610116940456565529486722265294706320909443481258275046687810693000699507117377553947537718746132033041729679685571212220558117189209838512989461664139107228874999691257732415670496499508169123130878902482201578636906858439486827222614911053626600818497512237680316436806754510907225081903546362918663877101706361295873816964423899288867859872607036823121333362332635119843975618119332018239547463213093492427958825126379887815054063316426757412513564085974823119532696341742260259661615804796701182217372658019007552192021029967853963061872028871319804259113208540140590642563981203742856020413009602801852404138285852495936656634270320110120680914435007408821564895794619215703595843320931186803061532536104868331927702002082342421237090369366582751869734386930985833752851693710963808432478170188475700199076105753041785886643929275216225297379594252049793241893550421793820687083393127803356661548427981785859595971079917871307113658676744908447217002116800264552915665991656760151011286307294522160674483210736667172873715894134961269095672456668637428378867619164582364496455944432860652014433147847187364463160769839006289927833684668550026070145940245413800398939696168255751256492711301589372699333793028804221906248286775838472770631644124147107006032972603046593407319942194366971210841052895613205948694670956514597177683890578990887832658381432494387249179143321201782971994382363075526179288245167452402839525122437246296510333892412783396547607323940067783030223171436783302398818287154274426443586846257521961468352736104802539335231629458354636225773636791490920139208450770133149470871071295978901662094141995073269394527639641549857103927914394483217485142197357857566595543224982913190692390983275790879433201252979257203259700418384268036777005592517044312714755553117072649565260483681033282376204526265333979553432271477996897379529291950938189447816240409646669360699013302788108147625322249700520010047607496654032487417337481354817574407116256717523838055309005670389072505262601535363226011167518448665704376427227602139024023202397380791589881823264298288865942268106649462898723022512634717112354903752948853800433578789819685706192710165376602439466103056982971470934795010188101215140857792408345153379435375295756034190450624884638759205837935329776894002678566737892524124017980665130740535926815162643422853530153253704596496438117009521912351847122364655603911248160641439416017221425827735246196138148942868908912589853840235903165659015978493139942594062891383470687435577452201782988088401025777264699405125048709336180271137587521803870092212906384081751539930174259228174585706132169710495587998279247707230990635337373419446148859798062126398373852043524501815997314884613412888828053367671170003144260942187433551697023628789215183456720171714730256432192753085426309328298375506672288574268013191177900585111740568401395950875121445418572959678851009712677904318303369027411436135337115729787977478505383551461296971511934536356755517308428941301740446758279365395722501110616552512425457095506113434680497874598971434136879300773893098580368067655470823218781468944947361944834646236978825124495627035906153494431725904445892891842843317450143113153537472261995025915228181785706203324636404031687677607243226113855798237326422725033194185287108765852123759951107443360010530962018331391427707962893711408567603082909050776361814887048894488201097779579295075532184821302242605231738640069459404289634891110042922723274156319663712299059642716747615183106566134842830226977864311076218163544808056562839888284503709750894357213642583636486065012483404484445963180497750058537759406490259868902340252009455452221090260586425649593542620832817536483903266657581613583374840187557248440186765092445725650740134019755901967113298348986134193486095192073904047051923178224717660225105018677583043893042394866058893460859376206237641112491802088765498785054106469941193260700940986257688382029695408828094707091306365103768650902124657691233465550039351053454426456524994660563183777267955849381494958764382519884263756157443629060830441771544036932302174427272215574760837630736177603782766682976567032622902043059990037587980968070283677153927055485152016448996868062537699207418084002677232234817644828261827537459811179890320378456778483321725431409174898776219707313629054975030660178508400746224479883215557280703279950866005863422994480256774309966539545120169897531927257460730004344071047718714848458063154698897264493623273452613850372128787612844859011467733084629613831096262104000077324707857063683668171691110157725083369008002046738460092666814493238589367220044201827676465311465135442060948633627985513350961911654700082391204528200275768519121780114144226876124915066782948511745876761843968520863181817620419252114494514113214136715194399582992009796518356741894119948281906518630173657783596571137648876798035819360507884486026945539034348095484222058011489803633873423853028052388153054062435044763559399820594318679642812542684836641851393308280326536616173254716722312641866438744664594279448589356265114683397636917171221795939841416946048577852160705210386333529175406486083946727155407574350943670386404681566465262558500179375839614924875854173999982557347040376719402958794632481093556440785837701032976068899092139598043491566698345144248785972568315810125977707790023847385173329241957869354830227694314021480536276261245374747292846471606602027477837494616430925894336128456875550662185908749100648784931878346403684247722760738782372004928770697233518312204401896520930207083705341540513722645199469497735635584313841620106561363769441205722232891604593485234764684794647809883369750792760479926670940717449953854813873345001569500142217274692072469621253150529727736385463190935692522753174844465110634771125817251219891700426327628054227526232978150776640379397804904803924871716761306867742942291404134858038503101769659115688101032052173610395734441000045401361065779418737951598995558553689813143256371586689503924205297095118656595815978161700908326005680259562488959891712506501717930893084971338414616097841538850077923480542874567117387408347537215624893677071682960398041059463057464809496443549658109955920891917864404956572042296644258632771893604378788187901502059236851541014478480681712714553147556052945547082021890071239539281370104950994195916919645819323529140750427636932220527114065151459641144164381777448877827010614755241567895093184290298315748840078248168057722652729437658375328829538214871263143686158956215622075826893874178295716661529732517116906654053434553542207528002548765642759775320443814227845875225034682697042422426683484683495483580122307056594587299298404853996104861093100975292191067838148864677493639408094690496601690836977019620630834775391398931244441210243546955628919286026227916244440632665456617080365660919913318991589244926703928621057887983438039393868656887568936177230608170069467941146843396950503897119457443296448048452866632357687603164936607917215018622400020425212734490918175256208279962251637750561022874236453191171249823275433105210608717932911375873841030553732643948641261327291785683169774165117817314264075003480668402168810610645772746826761042608691038701108311685056135188316177650589359440759944116715366587560432123911113460297420033247016000743379302947193382203557730348375440018458858774149163734390119279777636636700091385996422321275009570354267466504855613360213424054088229788655721983787148147216581085214386486539077136428649016457886335056839537110369443723365776878706448150360268726988601033618517296369806427601953587698988566764497041538259461890647696228143589036166116157042598807798223951464565821005496398526284695474334576019407450417446631396995633147741448490804713602532855994573890753273291663342213348127047009806789120319288533239139167005782620048573245125186941045580732025131077684074080855302269124766773350994092276311703415194597476612471653188795614935616884788169761108403535433836937327777651688514870593986446844574449998738533818739297505236665127298363574555471924932594184896759730006185972211474563953402303078750508389671777023270551935153869096193023350827883914362418454210712760550468959338350786196686702751278959555124100193165197604238431514870379176969416094945654097607798150671580644955001647987965473345409171937987675341810865063815821214512506647323180364247804642986526300282307204487948969798346156986283752454822134402556129006051798188238007768048134335170058468069446746934712075524734806369424711681260008356124040206984778527376433032507159281299891911970536801150804342300545141294397796105801785598960237611798893443458942053285999468232593728469820489120832940457229404382210816461903689100980849660155695655948205588667119495327635074413839692834944411969812983868401129906352044256895007167288344840421795340813022913740128029493905709107626000953576131955264816844317887050747689354554959004990893350812790594202028049815282917701588806039987220667478487358668236136633740934786489977845063289432274261182698451100479422383869653868739758021764883285877957219507863152068967406807043904408968690726710722793464774824359709161816442507370094754991614902627004655701399741996601599516884340949127316890005484786134912558811802655174482202786438062040574991661524312209373228095469041596559675976855130582930471203193381611694079246412781291698519937941770377526498371441710272870256406926447951558445499334258599737439978134031467346285556331492630578394824857436346392180688164557842525304972959409750903395828124879274496379028186884122009578355742938486422195719314449510986310901440440289930948642587455523652696691126700793244087758181658830230578350600539392466261424563527925830823949592508675125889452714291609776484475853082685132785190358690095230282541467661288780001731539734333517156917416271399839721572357303962493684934532474033592871556521163220186136498434766854790093770641487725307463989087626385073417797586376390613848955488547329989823241161033524694323114469242888582298131272151224032535724608739870341999330136755700442829957987460835384357321058364866265072923253136087655843355353584940762642397992374128564476113199376735742302997781662965789416836706104943492490429837371535223846556081850829471339714327792030155289667795968962057761096046593243290217692788545049714105070804390475887164997054118255665018898020147687958730951017296605166116092237953329400816415076038220731810730949595732786638871134534061932758614431275276743320908178410627794301271520043491996584368169576151142911806138162213835881344961455948496624361702293081907841530930197244868111072304677215809861962993164958341830173812741778096007496684538594547424206607903354183698055950871756484802042891383083499757813211831801682405974314157605212727856073074427128303817704921075540099090892416265896670561614168814630841228827938942856887790250183210720275733693953247684389968638876845221062774644341984818086835661431831522101291504601422145441415708250927846098451956266599634307026998737292227829733530119762043072186090822481061670333469224055682302783287328994557175823041619928138707593718104838489391300725825659977189255367580903633743125435450190571770798718151435544319231380968439469251543442496879889189867955501592819440863587477187617181599185024064944476091037017893739570801330702505678592965316919498048730643708236872992459805710688536831367588576710250280117850186260378395043711029367278122197620206648432130118384766201713617839010056880091923681450703112111348212608356274349514509975479408037939189480993635362940031192706820001755810551118249575515355374960221457098172110434456383899052896836569329973198499029566346266206963448183547221706219363623826920421442532298692171786196515192103250090364356438020331695102110263566047845369766758682813642552690277782325464604038995640745110760021242165169071472432025879514649754855619247665850896876508552037601864000357071968520851413705590765445895069217545426010729404206670469234269403235723836851818228380124581982089941688223504815977838121022833333363023910608938208883928709564067868432399616123559663327325071522669172388798668922999011643125444317070475747541736019459560417279491384563362844746896278723386729459971827415172820343603554537674939395216245211321552723630292827148528404077961062530455973370259733416318995133165620229038544920402844955983979636187803116403245309441874051466599942486050343210063638095806907634981728920224891072882327562095438619158831149754161597440280211708475158279716808397815117385844439797862094801887512694811900734166789557505613688502876233110450217807204528486695494682132788375545949451807518253902959264259600836077862263191674340443357749006552671334586720846096025717668547902871539939029146789828894709236176852482511253581956817640269667501440975696234321272144175459639199025621328147342952480704695579192902788622879350956476953848982683861663746969307921433156642360151708230666565529955699799169002349125656935978078968656286552342655191388404731389022302780732370547044306154330601033444914853355055011342973102835426301747473477492327429411008089631180385815525823598911126297970408428408248232052037097269205906761474617301365778429413349476096769891901832596884842272618906550553134450534284895409019088299852780871699015942219111111696064647099230898437868414750048197338859314286403089833945887907415858781015251969876842755152743323939447693368515478460896387305471509168462862029836601416542344541604078691969531300930731705020206614821882076329401483268644871533163250315909319236809424312446085379826879717648875300786831472865148644058203478239179716911606028589141772173143942771260644984237229776743376628317958793360836119704839345435503275488130294779708757630212410238788088296004607939873722487421115147632657556737217267273511828456098478030104884983608320373310939989214400066693333256540209344367652170490570968189820697258185291483255981210894474766810923783453923217463681475914794520240450742090031725733082082325448942986927705451956714501917691632055007687007349838629890318670394322852248920332955136335839188866751523246702713360097533101148075568828925332443553045908164794070689048673182405959173255518439353675648769768558719741659844281984206577253344415889679164282408547358171561763489348343450905959047675325435320728986883344319272608937003991799354950707454006379121620521078897309970668253080475320868179778129398475299101297372206216913594323619171812060346554560190906478722986424933986622424241941589890878126673365480975604746415640010395489575743153378120567498241844489746373537995990691529511919362370108535020646008563345377305929905697688942189085858069585296157574534227331977766409079383690520678202452786786620435843760090828085352487843821034374304392804484055240213388909776379846237886311890816156778893082201886462929375130184982230470792914068506512358472796864452899696250003097101590536408403409478057908135038910369913514726349618745516645773654688074835209861896015132417137580061306610175270286222944179802402770518175231794155066754931185022203204948218558631080387981505655427779233834560533205962309578856869199223068108331290748779740418782630752023244542222410645541406420464193585999954579783259990277911042450801479200558294433217969113743214320142425087039198933033959764972734031820481769895575305692290270067076662058685289699649052615616652043683280703249533084913439577181192972211085944886400520458237328636491705228830228738852564371597701078135144481711950770968150228811398838750860330481852107937702435669557848878274099187391615686260028793849834888480315382058954991008212971301564683314021230609374995699578891641854353751622066938135131360534106212350982167763775449146894366462233320592966841826159217771927223141130734367687170122703589628443743800453565609375862279134891553758518603283235116312595253438382089400633785359423134142554972395262823565658579417594332434164412383183258880464223969190094279055786100946163516093289173391581044200986384085229233062216563187680354410036304712396022597052438959890140221841170987240938725482504256064919306271853581148456235379414278101202155507364503840796014768610001274275183693464929386768897771553363930571705793721552555405055144067489828571991963400297480738722554028402764006064084613789313566989103180040077133681846464558141232859913055289522106424247832343472794015452173104421442692833556716724640655253003934409330000711781919338740780231052836287395836082183988274797250313550534119484614296426576691533954493925049994233388640208976380949586285162751818872214448379768513379308949339821940213799694979385304730179228374635536976260164743030333238045867697735377893815848530935264553935374208845547249513279557243660165007022994702752095080604429297904546625298678869135746394689261954939942063638030167263290611107208284893103869904861860283118196067150049370537948687133192444898027540912786448907876900660390503687355915869849431746128046490184106597567397355681118518483732406531912347374904525740053631475643052911345130340413809773262550760968152804508160057015195457591682873531827514429901659013378682031393210822098081643005029522991974804474259599493540087815286371215329190709622838695659245675196836902365018078010503115809587740427500225228943416558108611774309275436128361164657931605749806678217865764257355124204257737257380137995502156638634889715494153371054539895564423086109780632671844164257674940439321089131163299781679450873429368609338664240218711550903235370627375221624885328993778275963887691818455711570591164246277300028073161769850902339602421491351474592963786308518710768578643493094556550118666378314546572471423513990296188336184641010049606783088148896441165856270649320931029236190307896672611375558537600832136898269160897939890416607933015454567217696580200894348390588339852919661691586068777194475041045592062754246078873058859799379516035532167321480138325154840909123847264985495725115377894298284369483215365386467155740098839663355204458564952764285996226648327572743453623951208799156332495483865308096073086423203300483187953049225060346168314030546594660160712246187032564056738354220318874341197817976231183816303100024160320432273542065485553549373223092719542400235224765940090481671857546327282440160732678421808981890273096151325582652782382536670928625956222931900985352977978438288047454181760669926765120385726250051777574413071096711951452841696698730155773169271080316158448272045372818078632643238758977997387978655319309401060368127666721616003201312152404016648085635563722604532965283530218794757099137873260927176995134423540207344387916714399428296377383520366702296299371346577398253814397298533111946735705529536724827886269060271768612908857001073736936790488107801921495468820631925515825218031872859071450575517894441219780666813301665500061103205203927530542333638662913494492655682412899273013932113481762173104731623854630472316065904451071040852965105664383667151465827957981265410916104167611611092496267191121809310948080731375751106094135702230814897014020378345561799495887207472193430717419560804731080638769591479333640070268495718593856638443742448062467772353488187148910841995279250422056423596161570175999400804709683996716789037395011540937077978807152512527510428632207285981234349125545985167476371999534696370642944820908253720132489084393061210918846843738686071896755120683298122586001683665108738036117835749258685211708146820695982010880127324609118109545639010074211462338407598952422429997379607290543459054616832831732108704410858003877107808623651109059577464748842408637452840405967414817500595475578223769877564447627360700554146564940398093167830426599743311450147933442106875722333806484810873805842641332003510793193556823222762983906141608018174533548089649965481524773171031210807746788899257756078947801548152907277650729594631024875278438831497942256515952304545372878919175283244121079181311111128891678495280729441884170455205535305197950738089907900297392075553659335401219777486835799644000031339163099845379410007051887938814719100938982300606751010022375972353372156073004782302264218791808059685780583450133669604974205069460871595078604528432747235057905162782376322653062306055054111703327031936878260919426847809105278439767704506211978369098628516008263095269586960190334878984977601117606893247813266759753705675107976028899188383276040499822798773595098984325612616963599937335329159379944224958673821294935994804055614809861624511366428900823138792109006391447456707989900588026081776587489587841221232838496229855991818440333165416239110519137629949638582928283056775511346507686697654585025966042665264747534687449094269873686247732408636614236334486262253564530844845050011456968255452110723522299499610936124257474642015822201841192792882524192731621289126181619026763875606239227274315061347941599797740337917369091785187684168616188644877925942903997347285113218920572029542860452675963772944276819521882005273487713894933016669084560362201147786622615707949191900933432998453227654545213912005376859695363716959921769932891971437177979582985528197533318335012625868822633401367990238910481094886339990256052927630747077464926812590333911389977280349793147235171230960222191668499896621593893816062612486391858393611489189396603862094291869021984979110366552128486803904571124783061590160563023058786204998479506487491303277405918723616216185516893301221186437059957322205381755493762627809172275874997602280317436442334665758007431601535961409850182190413859511657783959402449342684547579729237602196165102377378650512061054693268795040946949849219398210803140013449322982591743562217437889085008625915139923170800740991591089334432855303907583715476253844048239810363751487009727207642090936696035855075862513804621788156738870972001423152510003169324947632387488734204068277325597531712372139377729284206761687411755007834983983283060975004754256689781986912426982162836933364371279679544769435657510802494242673141784160735793323957890643319047428739444880370026691181415792497521717549319763643274569863037953115623353833966015580692055183101750357068703581597352545192902753327084889173959315937743033167660262450934085228031797955272711248502760808150394555551307631610408289429401789920810181436286160880845298305431373355911747462092469173192929799066416913258434888034893303815157459160393970976933913772812658636823031646311320933463561221839486197764701112493912917766227655080678933433413351203664752433409644727521521379460219156456270651761690548966444085993727742572860566735639374404405416767641243049805605094253329068526448850753514298355183845285919264905485191937462659434431178475223876035155083000504503536686531877824090142883396023513119634425374816526086698401272717191223126979695717043106375375314755996522737728403800902302651156714286468817198937848760583429004545087481873960634686659775314782330373140568638963441262166742490249777883682809041324108568873887763522263086821442124544559381469430897802203504942168580745631364720960772047274580273721853432263605454049451821927964540267147026511940069687370196802923778321985148650082084786017272189713122181369971271532196826485517007291326431493105237905584561839463183163323429808623800975756390804659151434761244508746627494264743879888104688213684483406031738183231018507425237160051088412714820211798852259598259767920047641615111407614072271109228858631639255885934537867136368744241311768403883320324099547216685051493105974270418687201308248824812613366709664070297995225843120382267693119506969383091549057397632401584392741334760891470679906137291641792368833356247160577113953619385982267638189346242120503526485592207416137539964599364588804075684258661031277616869179674849094207370106796370373466813085056036544730979865987779781392892986271098375352091842356449659040811213726123183865097194917744708646344935157986908450927028214986809878652269431299731902476935136465006674549156931431227371113157814064492776171569096635440055637118778284858364550751327868638286380943121610463443487908800805405075412404872710031188386624273483754512214439273555328200651394257197390155887616302185256344223538037537178196862404542257561693254863155480245248012750255820976000362590682233103351312737832266095627853490000825725554164948473244198522828136641622963913568906261361716313286684654540722354361145506722349988744032873944507034197720410743239848885489089683676966772290364211287851620305642012119870971867094820233389573078993570982433964439408335719613806026429762307704896729189681512868227613689928900943193520287624577503232146433135179542690422381296082108807184007022254796576248943180288797680018393639854011468371792676629795741327369096210434052567494742982133790983241309543294713480935819597054082820032893695383844089020636248801166270725868030465169960681418848018802861886901239922674304571237189459352412018754300052942599082088063291064185162601154271380825960037905766924016769397921680364055127340411882170398366561865022522475501284389093102089000329444044669229564826413251744449999588884449719577768877341108124390447970677412730401374323898858502216558508158457455480724894734630742128358748432131922647130395031097691781641618696084218482382223232304391566818906802541538604834604561991882345941646261222153624796614056643614486276618069504188585222571773803765104936725484595807936612464205126755098613441019479205429800103252768266870316496421770127837589328322033667790361558263079408565034110057169070654276978569817612204576666979736294066110023100780886018666209953929122853524515536337549831261252012077342601410630912002261648189273781418498432154070561166468623632755915605855036537902234255539560518407109720448135783666425843979681338983997226247668437923657061436771623432258703443668389356794630104897248145784768249310191164356380517911739919442436928933722597837987921591532666012204815632383486097227775601672129684809167721011385975420916486098927916355814277088046904819863309657167935508483249238462162586037105243732654345150605776460075262869780911873598762131614485935360054833977564938033416076195910657419857618118367241187173571485009605492087722835011365320199536364897899664450556161218271398357743249943991783900428890605149768858334222461776102786916171221948030898404234181114376456228769359674590384690817403105014369561059060795114798242622947067624607820480902198351150834076840939480956819868206893479323651217428107496506259960917842908440834648446393512131789979737441077792497252220417090320755697695447809146051800560784976701348038253001007957850734742247324154846378848584724332830806954073820243120521144093844288471427863288637736385767644734190405689330531006092648709782152839930088298681669032807578539864483408995577440809298342169426589861315684943862190097294087704514820113600594962714932731001964014589508808705246026679402705068682788437750412574717540191219006951492366058639996031975415844955056718956725122905376239650325166746485682616086646015795016226218246657216086872878864792749771807459220777799197850915396593724932190675928947970491437779764947449288418483930279951249583649995804875015922547482705307048972770794028980802611403808698279051938362842591837013260496558099185119771714705995792649481499809846938243242045203970434532412774339492908426636247770840019462420565685853630229368735429748184951019132826060438937462041041728368775465198226790461085805654800471785361857323324094064845547313407322053583569438051639476438278698968248165448877690447468487633943677764225323101043229233837085053438259766976451929161170859902093522406910305963870183661750287538002415896112590354562122517549364396874830001159315587913449898767684032656347299995686940091818075747662989772546505544864832987306311383440562083143891860030477460683277707893757395968014395466372728719821454164383669697712765994658986316604253618563878942839274838444124474300455571896230990855840294525503624956620900120356197175879720946612044208251387347505269309649574331159257609420943744150609935715236269162598308819529602600447436819872005979091879723292089963237462598126049737672448754991221867514758498225510584130402777115463755095782584846409850844294702702082907576789739756872741693311966053215347363513697340055220436645180829324534580853427732775930737664797525087723938835995590837517777660701631694294079465872104995502657723418555690351807390526937615290020741420931952510166575282110530705179365330398509523916353672046276374789266353803563972487073032534220836791821079621597575619708286719614773471879338586657265286740264473754507156248664821350437373345204547844584043135146573838420385315573649125271428540997422587727010382206075972364799127722235357929938175311391184445027375762463540659834618705043026296375730194470920036865397578324025291731123254271496353952176127239117895470866823592090023290941823066318399356903274498275253542075515180767878594286519617779553968985339814845140464877439130454859242220943209911989817201652291318218000998353822170485740211847084450666367359757789221793595011822302076884653269939083220678000041876274247535315634122446616057716229103990070845257741040493587008900057903228414576818392416597106346916282582082311911881150169420019558802727383578602163176420157266541317125473323343389686132549192140666867500759601036566462980798435363052534568247877680423865750014260886514125928384321300148998433681650649339889241529739886678825063537852299366126726629948107292764738297733239238778087519187802807473739489384284813115115463687197304513960156086810911138489475254952764416870813676621978666067620529811066849718353520861134360851467620779854772736075498886619769059040664141328952873750105954674863174321388153297896772758412167377373308818092358036662974840899879679945957604794418360923534945078836102174643814755937903536176996787002059246678372305644778271734740456512689169052721877217382033882963521882106937434230387777535407787044007064317779965799522477808718898906371305231598112041918111602409116839690822864675331895788509288203777386102440573746129108741612109264265014242988484962746522706006977063950942169710038836752207699760142337411641342267522338817247807889987193497884430199232458081148667437133259948169544612738448514385464858312294921804410029457460483489369605434770948005975243253560600380192091498648886315843144927401750600433381399865376291671806441848120019620725802024876343194591408827641613110670272194213915375957278332855212313121743841876873060226264950261231526916988996677787778256976003519281357274196145608426800847286746737330102420325924274693056691085078823934052982234199686335777649861675758091836048630893004057299143310012457904733697802174297248371933080118454146570390259774021188978444929900930957908537923807117392343449274148423576962242277330944058521051520047733486859576194126866693716079720141361036375640742494658397730899375108802201895901202334470927769336647653834982296000775539533559195949412571106977847955446448496830430201291433811708863503849602315718472244313664449464867936387767798063167150830408514214303498565703617602347072605060336648923882478280551890792108518603964541697558694499138044310161172716418319483384643097157003510073202252329741183838558264731678990470447020784348872006900780063950161069807005415929278262861521583893286322643935409857593965118169212944167833661054734920909214666257183319108163953075126384059628675360879410620487077694391305410957638671909310991091475296810685029501071133765856524468932803673431250269407668051103572729771337257489670283628938602254895700837521369048862875933713874383498342940374592393020120963103080205937234348360237786064984130464404555108895417919088272954501865268431098122813092876646959801499173081802975901322149470215517834611057676068392893092924736637387832843724612655406013865960543803404044031070825669651288339118847631870929748331944529230785995887801247572425360532200019871408122964751662510306529660777473481507100924034798953800118845988941653998248370189024512830353675760826483700415292147009563256380917055692121012666564276270711913839745042936848146824067741619522822262842272179438925914280419078259552581364394790637037538219124459512799825704791703311092959410367736110961976171190351663181170784408080753059934369281313615075798168031554286921214096139827645562459124863247084019133897491665508994225294498822978950807926908546726812267058596562221540142597051676291119623732589661609806509781620110539114712529540250300443378464336191485173993149407846406913853954736314846930518244889411658911243385778267799690906287692326682708094954387520097084333780872057282603448753668354701130348092682122764596987000327129239675692341409379316841649246351323695263017043354655888303563734090707691633052041083585205805663854160182996299393179355101531865195088076002596226214268405231080027136841404748050924530895636887689444150357800169076534096152895056328260693744514548299506992347183913048439306106628143195183292137710983554206248912792536576522478416219892103845970527192722131182711080950992053417218388511442183410571387825723448653576199441307994880926186822041643374271563287420586244701574132191041481974164577328579934188442404317863932476748310493045439429406955509723798033538159787351434333887384330743688078611470795526422487528207573174053658265194704908524284538300314629037320138749668217996288878871844234051420022367022812911632987565751764632146820902761963664140818952742741058693964789105764013421480407769200851016192472922211943429807312927349258650478222524955888882875942270642010322934531431724437373729628444647525118315932138699978065697118030323083157383997724422386281541932076734398488207301651097865698748014134566678482045189209829001451961600115713560761365059822665681242957717683968880051356553826024831453083871936390240745545924333218844911843815494075522318903352054794218745230950415294197581982957778199839588540394811210939928142346937850869710050589212316718816747998490427339612597611843064412658570051887775863887281430927215884988106652306789514312268430924420688617672885495862363872612216458211005956893079195520025204045269288066900267701481556215971137323148045411695384142945566738844697310579669962698053525650358355668614842881587153299357458578300890189522170030505595433179120272690116177473450664796050715507049260826666624769003921203090090600953930132668963512807295153342411289662131339862278751155779561674791264078632595986673970677397226646671758859271015877977357840891679620707398143101354682434277875347061538875357531416376736954489307346130477089326958548077616757294768655149261262297230119828425579115947170779036807626292154525196341269614276642033516746482218964581454966902044969854710916363920883998502823915119891181116221893902735599790013114010963847533141951044941591690587944872820662308160510401217471513919514761200127117735782381595566447728748263769590049321667833694036108645894093410907181506460610773428674602062504920772817719618387757293779132323017306226171545067424391567490389727742063043077041575866146129142782474604252197786766639915782841736462808647439275364752362603394396453374215935662167976963557510116116067572383715079465626414844957262824416268534406371536402322643812252700259853974904445321251804253483313902923019615895871188889985068755075156069924402656120339068235404427465659674878916604798291664521444936506453775470357451514852757378351591762134418500101203007855143542679995084285806076240414671686238685004841915694285391474836871530657259790521651284267702771987861568845901404847826255303467179130148619127509683735257895204770630592677903385942106082838612736587673948836424101171700291217942798332044446028656103578366289203109584710607691688944799614722697751030638568999231789128215166964686547502194756779937622030963953760218587364709828050416381068209896602914097794570217878564767158117841429123230010706083480140141787990547450101926984428902976752008377991363382401684033589866197034296860333328309529793425197626105447724775699755773798353309471431068426228235510325380212509122479375051624113845988061073250111380815778420087468429671123135492018384185093223007460378672824541696661450861124067201560619757429652831389705611664372875045471189662773242437958028996989583866897770657470140510528847384434372018264413117832323528061072335540948872392208887901534313455704524472877319387177919303577884236398410772783889172163706770614158315266509643125925620188127342229900525429235237095011805999444096150179069440956100019783418173424263295001367619465961980028621118617606061494412126651018456916298007771734230807389449960492208275083508005100329810477165110110575889257516551674314384675944123374204660133162496401062960402707807561828384672420134178384284217972485729596297045527129394795029766019857514278805943805944004051185277684641790115389648019049947430016772431073041434976095883053963389419438662050197309139652758958554930114940438556027032418823059167995587593494962829092107503575241493365919170888546062606004270553947961848251164905422792736543517699755652405837499974229510840722345536974944403581152298667377874904148428175504886336724659579541076545251645909009899952553831542269042585419360526787412618504086172243758850162772609078506899166705390349347177592248234980427910767291093088933985166033623774613780085541452052940763095441680735399443734489230840478535583618721866349225011994728819290307679667104817748472425653227582756894277904103401755682875504848642610136967637255442435232018995322176108243389470064406773335379644327172637275401905445324037253372895406228990363639413870603513999266820077131285252487476679861907195152949406682627788717925501474145953507058149617058898874324095823561823684673781581021311127003218309199243894202788345106896669532516471519325018314459504623696697342837636577010975079756861473484477953031245915930965326387114760135560577360677616294348160800778327108527354137634461156657236210173477897198189712404574445358782175228716810605744319933917785324330324641976139942241966213579149763266830442265514365672625180265453192122168222014039695463849574776126635425946115651803124882915337578666803473541770841796721272263339961267369513244752945919199577179011978248427709910066049731014512078967852933923948879100891504087321777124788304979341575806285187070191950646247194428465596988054633928793761602894135264474381987316136794607300405887812406635920062019744875748250064430160060801437845828798810644576025843011578094649565362648944477323058013688852330096986349398419007194358848908888715481365646185439276983078380029910099171204333811417259842607621341082244972966909515264140000368677072185657892130113166674689195115118288810894237733298366490768085285957179762871753987733444461210716719457027564283548094755787168088210958432536449196911850926315080319354016258466470760569014886020308782252017980573241364915424319371419156412477789451549523708014197646987176234072884890175737391692185143487691301169280743797590389032914927917119413900206032517041717051632136688591074862555345525701834872144289386643490932590464086632791013249145944536158483640974913646241841250240247117077737262149546967964100674841971301813346068703627507781763674917333253988792267403801394256753622917301977672602335392241776458810174871326827664046741276772268110171652973197980249791164843768837895425395333701385538313156670923927902335140683382071918931699794306046657552800984425412593434414673701286318317335138050557882314400674106933097411531260220069812342703497272214541757835414910417967965815938944929788190060790588931779018828014506166308323988042551802356775014565386088950466199263950069694262504688939090222305691395907896234359068067650827277710444705403086042450631202567987954682203761435603661885740038426548286973201679508804661399480388133760309219841939207287477288210582034320454125141580261048469245297067886756989814368482931043121713824380131456698528110781368434528521425615911134415213912141082677688720835164566613313379192551365237440960241815596987389291250222658128765292915865797392273659025662142220883278709835108854000530509143202173004493288035970032685562494593686459524486675807917787271389908404793121959225579586504478503721432206526337089720461781323428995266127552691003180509209318849678436733217217231074992787614287952371057387305758747975896736170489554943411383875196013571990574543747597674906918378763215576872933844905925094634783683356446578858990508744791233105049906483654495190213635755267266537453942718464899480037697075415221940634343279047653311225351495895776389692777813276803789121354187168189869404093189956729521892677570970992640090437922100910642937568887928301441592068722279138377297360303616182404045789268074011656727316563804586709068972914919672293647987489319536300654214663098297394471308700192161728903948605042089488895422908402447013978398533039633633412306546348223615708366557663476072443661877180930182048374565786216313075138060391943022763075279085725870091715463872843510338139754237931854651213649021467158309351449641595591710840061792000885026738097169233774279986130436202779368340255559399339204853660875944554790814206975999363687057414620643198855894791554821252298290252206053187236790568422502875886561000333933490085872429819951833325712518647262651151538275608871261030032158825667078895449543836220868037196830824996367014655091020648655132597908973906921840040821930901429168447950371164118229098524418408006659082600033720131501264725067049149144179149737993797958412745156557551335250330040535506031780504243397797938573897510404451951398366160696879288256443772005408772468991539051222617921930945454440830491310575200924132677233974243416140381748389243564423340775373116369657504159981526203808771004339474162242919365016924522246559282688347162242318690607851879238704292600543380651679672645222475332440254205800782021780423593336826426045250032781794098795260899145050327553763473906594388698715707880902508519425668891266710064060611049611429262552542297982998040311317746859597438690696295364256661587013961305971383142762103032093193400424249994723927083587275149072435899415493690090349727477810047496662010391908558432565811116653461489734480137116928234948786905615188479310117046750657826492941781578453153679901379880872392052896643127225800552259234512284381449936929146183280250311305726627653845204564996328209827673965904352780008785056579859070292429774874241835536443278514049160727811827979625066029560593145721126957371549970893860872236877369883487450116070523660950673867760625882677160117777706960835889159868480514559569640270820089186762183646281079196006442164000809112627576867497146271075415676728454866524012135448282000148219027279968855329857798344625497692822791352612487876240160871682166946134362546668605710875015981072839359170872917069685272643307119497837274169915551840120560327490164784905912724355092576546725910449903383028114612069438963917173920007788950688874255928264717929262536190559155590576108143124472154285221755228852156636871831016004745856033850561164668030794198186040246705700808316133641886020489916237427276706095245369304896846570957622018016168093338525764326989628969738541705076498543456939651704924709003508140143388112662278849451957505171336599123333585726538656503409070014699962200849730402071495991826993681092095167175086870599018655474559329060523609897133837063833662909383578176723069264860662098231326691196258958056529795738237711872835055834597015801037531490743320391477107420893656735394281008905128088148710176699661322068522099458540398156645655348044673037619479509470937489918657810845704965657539033972954887409313036631751315471329144235292285770002845254066499273387625150248703804927807739588676869763611369240391435326102823819297608427789019982531006526134705970485230157256997533566064504096177574550361734530558674561608933947514336671689280361799720031769483954045767698387479449869496618993133566851305468417349842963572421425247399042130722308065692796470768708874502585405350163093603608161119283511465159161600252086225874862806958773605144428302433143261629449726491324282544703317842167400677685957060330499863656211371668554093114030977159614087537590943957894234261096865605459020118010841738059205564386331015611393378861589582114956126928615447545811162304331286377125538144156093764378630313147366419949115556765729016075542574222825239231794413205203612007199315046514499235928205805321422271751646104677867611265495182306056271443653782144743364968046068448085291756467454773946875181197382184683663898320104625729246292795534578848933700131957693203796194268977083802370455756450996034556467483966230566423385886730179677327290090675406100836986139609712728153641246096448787611349820222187628396325142183435063254969989713314780858993819314545034577244538739384269869651054174095521344038934324168656425503434132161402561643730291009645389266362420405741056359642509455245808971834446976945338173573833686273928588120946250819000555161040583794492423803135636092005510351135367636129127715385620815325186677698859830223981444735252915339606066443212545701790199542802939426288501384457616918997685291305224832936804821070718482860511332758554232443800351793286250266821798077346688229070315133308462600455115210782952807023946121521782714945226037138798895600580652705304895602501315030985890090965834243093113534387429363421183478427762852824558499027352956950823882904011190889807794529235899713202781203427153684679756639878639293939208716821997279793640230239851605988755935564519337582944664128315837174561560896058477386202841581421219471571656911994189766642243198574032769044404221282940897885818802737090786752496128555398610066964550055752480875280607183110851477434185955476259238050400418305746636052410782641298948199324212396752449740052566872171146068110088650290372561985828252666595851383485183177906901871297238942342242326815296353856328671763746521869446802144636131174003740537051823465326437803047652121326940795164836170353268520339504644212498029459271460194430484257314946794286662322441970122588602022854612610333838516972903344565908815753118054074136726957215682967386093333671493891322293201627411989383286057809952025192400500317378694468416483684624610228504280204931726507219031138458927872790668894745367644250604873945035515096393741112920932849007171311228167342668929757574783046433806883456920901936666949450011722318832793788592538542236664298974850623669300944886035767432655815658443233122922697609047973472644094340943366803205940774376026106060620022123021376241794623550831222784770638376707688366664825292809913591894988185745627573336103948642297626027600495124491076630872552188324117889348660414700846402295189656603185123265218402125077508288278101800876093292555420999878105961389402084339537163606347992626680603567182460703302763993245248647279259784914303308221940155097589388613790279907463204441773644431562062343993498118638723426790573096204009427905190749277807214247657502422675736917200572155286444053640576456415478745858568641108119028331211378566702857971930354431789954580549476439518087074361690141571863607932067927481081615649936318138150529735039760439255335563591900314962737499221059929223108151970341261858965499848239358396284506172293503207569463330451416989914951190734295408896641393458449718646097513651172344292689335000505588039831770260957727163773698940964757358273474484062780709612154576620346731202270100727351927932824822498531850269751544680203556378908959474458910941863403062848887894347511116810047276097544731159721764927339404636859788303080716595009511546626482991369716984706768233810318109681053960606674073820917856014376435187838948159383046376244368917870252607111795262169056235949234419980739864784771563458912220714916892076822784673239585260634513894716192351126915358450635444068271584227729025026024201756287051068937767751650556845033586185418877554373873940875809489178873931205537867651644939735048404092666096101653349752009172475107229228952556267119060882728689592961537606428883547879256701671771036810813594055676659152719321050719053083566736944168827374686700456326449702915859496272707703917029999666000330275677572019989525736586461132328532217356240117169439918269858038179751315605081228798277446458073392426130532942071994390080769556268940467245233101447504134314449629317981408618168598342877902316249238290880981666261424551097452078350631414351712453018573900863336293505357933617543607099849971955811967640911267217762402995022618529041984318031184447917132056549290281742368538939439106828147126436113069062869671100950155132640791170352100242085977625951930455961520369362621474994863176302833499074389585991884148399068578994719041764671067296485184706981968131887867071215346156128455201850483702008540345640301439833375870699375978341782415369189676991163643778101324009628488189118759867574093824264877116177819208971797595434774100363387935127061764565737085464247089970081437699535941048574335014867930521239821501564978848450232632154365888703967394102262418491887364001334800639326172507700689470535440809799865762455514486457311058102733205771300161436094823588452697022918625642634776806943430029126304886541694728026376201631524759406812110785639239312040621202205085627866820564872360094325079484517801470616847424985626502434469081556797388333785990768922817037582519209444639312363350246739605061547615209184921377937209345645470866585447811152563836000846992203186326545924181416403472924989622604462803655689354305585946250665945850166448909317893874070684888330662031471738423361914120041833852798326183143540864586245804985955883189284618034900871191438862751929104277509275411396131820421366761790471718257163294707629156531799525416936709605424319445302658912687220310456418692588497538059949190003770936959399487570514734758261768885247352286153259667306799772735128946559164926610452655951473161328160591398622076580854446920407648621773966828167994900712157925341607950281917975625320703941945305339152040222495603406418726280430898596870969426760446899319562217525680231211232130799729948973285325999905169015897239751927653272180885036643679245462450774356728176439064455776757874471344340524016166573407115153142768921395951746984899122222684924285085608881599686325513717884788127769780715226623470457957441917834066509201052138617511147254368768959512211057302979797253508919161754197637143553840651292426418718947803597715961598868801065144665472013024921070401690615059251358648763047910143091576375518543147363570863922692095153950518142136448192091416658412768112107649998282197950347845403555440935774671429156105143532941114927732362577350355409659080662955989285813861893897562166436890578462778776940004515899865276979630506362264913314764432156311218362537728609413933614030002414413803548662230724525348269243172242607769629315449507319499183428905696482406396411827103747794459194339198652838077651957324769544832485776113589113650470888290098548129340257494273533328110994887848238274269513891115477308316967441788445621031130729992869609281244354557345915443265387240233024194646026798175376810252652991780333505749628840099223030707027947584013455741896018047597438183060580770949534272682445063316563458371072189184081474449582084235132401438373157766378780682895092628693705160311496430713472026512264012991912400102459543022904598983608067554474537990600575430799996013410472180124305242701769079317229142374102463791473386113861175008884893236382186402538700007175729978559510268923885843534206492048507866491138998364866131610611719070716855654515161151534068192840848563144149818032314788425679913395885378462913776417212521944595017575469624223835816068588305109757231305104387038551599151979176749049769925513015773141656831138114869884008023795033851653792766663961765007554752529566698368348238835116327474834831893721848884257403835628699840535962400434858163432874580740074377353886048554916350520612038388882865158624421650866784008596810157605464588385198742271542940976131061710424899123717531576097577111223522172025356024823879509222785038919649959020269999566111528922626918801234827501571321496833490856202442150070468507130417776429070057004836314614050071708437825271858548465674451273949966365677916311912900492465001982060207870815847405503957360164848989346436356703311780064044003897341178403641367304765885911458901238040480699500099968369714964928018559242622072986861196070228566716540046245390488325957958102683914479501829632122378479462933046536063853620975483909008777393851763757999514771394332558161122277509074254662718663177853468747937110394288946049552277349101554758733475167249031145971558995319038427725815295310628305271475830904832342055371452472687282098995874072841279870803525153192209467890420689177824148895772609114565550629323954059721204722289115717839662345541585879040395558840015278885262372841090016222808889333288233323940007124314241862090883716808463830634032118684544774861211638120100817383862285811723204626496251689466261108413815986282614478856686740999132773666367981218448380070074279931800182933989607927818025280908945525380336130770631820293415008635382584293426087002967123336907403428058599921585500916168124555934034151711907689811426135096925620692449042557966649643422633462174090090355737317862285630343744325808748873418788651305004331317966758843195380695129580672724568869366485952269615188398648799140891527912912628530682603819491857619541873247184636748337132057248644385863287221629612148536728681921366317478879285654039808849121059960429015326725993867054807915471995107450160504784934969810379751649749668849337341040948952991380761959697764863124338134959937608782707951364450765581331337254028121779088934366687081365028846966340312295117569298105275030720177434316790486913624391623540747594643775562808798857327131505798320191796740739382416294959432609372719892809688410188747519215255164178081267509086109863686872155790798431312864044782817295882082324586681675096010092941961965927501202106917561554005928457689842267103390915989495248104274172572715361084497318437898072318755775880883168837959716902455736558160158430982370598723409502646917664567373060972001515433823637824182549977754823494794274009821605549408906087840139072020030915287131706038434559646746993075279724532348495951858309789614802860888865935953886780062227058047306858357310224086929582500925553312396219630029743944770494827170390854977797770342294743461078358020745411394081826183901970224504332157220795017767459354117408414645126002471114966400607809120487142962286226837121892386387766418277880439129809828364248942500986404674560182399006244828818679837382511331774638912892867654678487219631632692045552479040901720893042965228678469607912547041501088368800348972397820251495872264118080200218018425980136153269544722416508628139561196903751918371646805221447742611860572539483956140482335264849503731623857911653277832103375483403282488744442422362530946674906360510249154805349235855540829014808611869831149738677366090761335911683658030532661584603157122574093998277804991207656428885379849692697974180785178744210192726519589406111582099298471238827269636264721021025797308925611646506387460300991311405887938994573821796300019533792393994973108992878589180612748983341880204500827143865801678149476947015455541193615126398390904652418566834412900636870423746012464687827236451826566310959021674157032301044732563251415743343336286838524403939097982022985322758258109843697252288323572036883522165605021432433746320217511709252189194637339099904665868176418194651358497643516139357756033108158975102544453934611258948259410483828834976651506807494342768871011745020051037717471024840558659671513645262620333212755116121387709382620784004490120374315294617282189837560486345403916226989804092853288241612951844922884929893722728288664633552868167293991179416032192880196671286647390341439615400799444348200314805156807026201030744834432028175741718689373861331474242581058568793050462298396405932409195604463240382362264675692973790898235770411755556139155242829302400614689207313964183453502017253319582183282660095807489755807012737998632391373794768567947500378495794571011186995605774953798072010369127491442351899776810190756473128117821350726291057754142532641269301045118433068856175655232266175101559554085949023553015262960167945614308677125157930459374778927911059970043920778686992308657350195101361958478844460984060672291127567126268399095282963919732928847237632818559027832191200348377368256338567997279319258796129308249637293994693149412848092859775648522550237696465040304802784313683386922504621122612875324309012015760468758048619230832353283881561741993761359711276177894443293427630415531766965399081439763290270016436920668819002471735941886945095130043436533868735328133743228545435391115343318201396194188921475209803766705837868319007525246823056390659915572893923780302131708442047625560338526791486597024997676861985689862523738637298986130189678603210209522337266131357469170398565363596412858690455956625852282064847656829919004786558368245620122935052606279670709326873487446845460182740917764704126286744934860993625799523296881690793873330143040748042695588972457430825093040151342992393110476997164867207051441915707427066894618968881410070709829692775585927526274017287778093366617173957284735460640797964185039132509081219659286893278883141707132402112351910665930174548504368773425381857163648018138959408558374289261172301663666492991423394279204052740718021059452185220864066877076813523828693996220848865314121273360994738711562997479202540129156798542785897083872003832275943125664078469316535738939850542579839763749255151230201469978538896976448788942156932137637296016751599642844858371307437214074127332639078359755898779017882486479789378028189027592273462818932600042647568159155184080432471955842359555576410541175730305806551403076656529492536358190361798121036086617571445763340959132563770653570031052990551675064796320593776412469213146463679138972832333841068788944010221465771634790714422556910788991029347642994193688787491503397468252749334071249745053811241242962177204828100476476420955593976606665137749538095433759741013255076949767480657309770743852969635093517262296782967670073740340902208096795003056124614653913480564446480050814267696560011556807012255963943756375648697126261951429099543182876596239174094864635537836921835143415799831959630918339019947213406203144054489377754060711004011776138231575440690168720357816596880625804131707799637391507008137453830707428839782215901565470518165939303272229505032387167103720861545564995119937287861778607867108041362669111854898296623961547088719566209611481496364432835693202195055745260445125745194287954143434736464171118111164214977957104292389550493959147505168774508211805971048868858849961644673838263714847063631824756330973040006336129882510513600879580020962531058661787012069081956059897235471450140623624470110631971739544931764225454220732136391409236731904025223602710703340683247976468763915988301205212482266266325789646007662336285412308295535176978666098958577796417195880581058882274429101131672876210285529393549369220108312050826037379898395528960793876906778900761745039113053064715166063621968503933313244208145084579789933547198348336505705955240759778934481620765645235689714955110300957491054434395204844409738980649705889039664210947341914792225275577627131025583737072831324129410710639310676033750303754533333655355998172556639072891692645401194518306560406944611204159493124149925421932326223108263918427665114297065821768347480059407074340538837676089331003479096840925291405314300600116271443959431818228717580835984168377852520746505276931630196978579492997702005345027590313735699098329081200041849106152520419163257950751896679130905310972352661082074563858771705663780037235890891687863461189457109832704802138571877584314462512715377768468720940274687532008824687670449845374267156397499499659193500503412536540640929147657689976772564000737463816350368447257669760092806770275775461940288925922156766528026673528034659446732178266885106197979813938396942927567034791598437906396215164879634981865243693230521007272735931252636724454434537245524042380332397153979316701396285241086300295976829407060980826222313597984038832338193570172255491999931352245431688503391808178542292048409509250329705310455663913025902103414897382435191632040111007108795332913758081136259148096047688714228384547514245899171050568269816647001163231575108663940356868170243485132288384655861499365795275120965307061455145358903043608020182076355307550073963430742103828830991651209413537994082766441148607452437225494123742282289681354492610788800503600818187542649943001037624770279971599565691581453145781883621600828687432356062003138182065389677306163287302584698758507042119039732739882480120097163968786287453720439500178090058443835928588607906486682375332018286755335393757582974401416640401390113392897844232234279651227511374874658779391582894947720984561510386319105862961509660350873122861488605858717732961107994582621442165101549581940441880088815820290223793078693904286654717302147798757197797527073432723950885435498945583645494967373121335435348888855656355559364136280042358560568126852836148673260223911007558334370803457498828266578370545598534825601010416963054065547966884485758533296619019209354469536989885996350313455961949169182314231752312340191860682218373625450806829727896200637330176672379309832604239067486957436570492088694053897685673059224536812138948375754142505082974799950245745452762942139743875544811983714057691963008244997382614401695479457420089137866717485603838021357727186126907449414331768145843853040511235908216200038286175830309155030636527817332436870463515536371204448750665428277926814481828627803167453862377146663071772837858519440823310326169873356459414745027780713391704347000483672326460751678752436908592433260118086956467644828655136990783902469309170554980764162213255363801129700356861906741740570164354982288065880977815938383279735289792360946823875920813240826837877849073745453234938199185469488767443536494596542477256936478906975860342574308035745092781466791084933948398079172488710415218457347938826517320580894336707155604197882038178937702368177107881313348138969906577521290982756537669359358942137308742498542020325595131332565969809551120276557592300700831508804389610611529202993472619209862012956575908093930444315255282539465124049642947514392129303894953044827000500484957698267502645922441928090897274072498302226674647827368831074710882536796878961555675581956615354488316104286162458608720173489154887815198049697645410200175251719550939868035101819976895417433326924210679025041803630582908153555450570614116034086912338236657382385161631159828280757435595280658152070548010048971971946755135149338996815462691639987775490009040649278696193643379494467289006862756834767534532725298156067818960101970341357331547392513920739249767923612764700929258822897029187437327671500296883426339423993134231085021215000643907277004303908162392757337941935853269864400405258335136846701214466446399580108575757770338945102168418761554279691962348519598565323234025325108965280232750411782256343980064772966129255503753791578059379133611034585292204921243591504926525922412695810841565824842741464908543675273494899642622634993924817496074716170589460366388087718005699717787320679871325708463176278240450664988432946003260206944283602627854284444724318997585104929361537227827077455037325571079408105982925914037225823930727047410879527469794837007099451345164405303998716337438658529589433919251647561809835498235032129182488135167963025521837539950466241522292851178266571993923473243840825015163223156906827514611114180439187897865637780630114606093775830207528455014372927125679657337223319387273648840984291690777121324107498980347612274507658462200087633669188218863528770643561013262770590229178220851587637071207528560762305403666394468223298599862389538859946006742711073494953757931063446464167994381294216845553110836717091222314229353542256587353094809010792169587139206025353682031971650681024066670743536076223343201965108865874799507392753069438379581838181875407336629242292179529398249878394483189307110944426944202512660129534590792351196677811132501106369455234694999777025686448360943046755242014800689426668766635199721798900592253303622239440913078946841629368666894668084049050856798689768332288035368416959183210956311599628438991719436781741054223716803153798494096143935147658508431993006049472116432600394519378864891782733204164472755409393686118639542619502290078766466402342149217261550289659040039362603601220344068493549256619605881092546491098588516969336236055913806355613985666706297471915989284572103527344805606229023230743359630587589652742641376425889977524650297493311072087673070252618231470297913626655320392339725812654791362858597251326775345334326442521010249938282262055978347936013337178654048683615618612581041980263368684086199391871471006440337945484046604749200923187581790200339394368133347096726819603428593326808312744501708334311483578392938145448500156271119169424441324443280513245872529783519508165024471775797051053901357816738986653369622767807897114230225735507450327795962222888588978850910918219921154533169932954540796777680566460822981094011347962129008323958857248770639013465271047226502638374576678657473132198800399851203395529487732946404046287411625482130545378826594899407914046476021554211387820647609669164974201474055071633982348092120023759601181786204512059510276642593728435476993344126054624412630294465934420382322943008229852409141027024561067112993762788236138563743737857532075027369249576988868008672532786497121429576332862816123623433412209309754736710207365465416741870456091966516736863633915131762560965169958906831886521045762275282306637065110426382686724144841235830383246052097823928235463809575022786343721301089781538589226650197335620468227535341058353315432847922443103002123507219852202220267359774919441449436379346934745671373518902034266305977831929804151990872331924326684325722824776774993301155354526287569754778767414708867328694298020878321409522788784546455438900435376538617927197541699502168551212593681272235232258526007306292733457010091010133456162266651825223611349711941555124782316572905777044327267017064144308596223784347755827383689239631801061282890905536214900779140933697135131338934047988463572704806504494088910682176968173107769783134292540173225450088513580132544792319367806967726677685811143585768025140481986094271342919377510427216306375965496067812072268729890646073122823649446742496467624760250254676752213735869686902235069638614379242801706436170795789445502436116653736885187181165764148883444646420667622430535524720205086623577638487175436195247848220891422319108479990542348778348957417023510283147623470447524764429288126818136288780969991294399256925398546606998297263242414540577229440066024026820417800021550807241280006084714576693463315254884455517173277809572926321050503949935407934146602302823609385213543090340305119789268346402298801033334337219579827217208198746331587547935298748175205528219525442442747615976629854577888183904295624513200606643107005878420364580415059848542613350936722508399273057447796726012833873247717646359964642583910855369595984308167741470263711967267548905735655292213837432211273435264005640084104301547784001955381147899918782887317949902253189624441601690775294512145620574355861263929527773948404269090356342858477235429509883001345518039369549626258176331897681807612870593573882322866616924616846453632728719676887436509989820624918474925907737651701777952128845478024415819647829695772559319328723479021086022617117868548593036317255324792699628388855023609433067429832626583508934291360378106324302634649617169755394266162538357230477961815573835771102996051377717821604356701949651102097659192896878749706233187113528490295039723865655183824108630510924602206310962455062294149764856137634313421905373320064776989018917870448659573968950710848764563565141150157952456091327563873737745943947473293045696255397176383143032856855246405888077367496919393907583437210267274073386305964546652743127780181488144704303966249524822580116117281430466814513932528425981887586055939711866452853549265423559032563631012509524982299295772518095109546927333601263515702056135422357251651374703058438148719082094085797895685057504226258363825870673894814388527564593057773642870474630158952666063854582235135518988078418002680684495744275659765988294038542924529269817772791187972176050899940881644127200564445166186875166541816202858450355629673224918122516611227893465685583379939260723922267519784953323282098535418589224210789941193954247099153336841746143304483496409468361526178837282968294656492369679108950955558114569853563342334041890826501630774870160812991055299246373283594176198198367037603374513654067649884493641761790517767674605321947636877712146182784493298304013700812481770097330509350833117775673454451660856051117818077133204884773492872807069874770135546275927987601146291409135792353230969712428472216005878668087552737566754922087792127318814990347998278759353002889632909705359210316424979846357238462132063078608288346839947219322726515624932189304658851555413975922615906737259032977891730989399225892416292785246239922743992470848193798306674152025402378124465811286355441263268856959427035581311961735878074140721159170953858986482036673062282405388614688033359961160645313946797978855406327779715259860352572318437475816574738107469336045145461806630695230856261053683342533530110482923395438145865725804299846538865223986764900614831514843479825458447779261249917593574931596713710243362297557058125820156827391268408031689719758574228041752710291232318729703241994664356061124686400350563093579729158467298423294887368306204999263436955407075065105972119459891196380107185246599447934590258710964165509399972107899585507113742740726157004805056807584192431068456603239576427854665628492871497968422335465633160762874784002944750845162046082703909831037482419161104824799783546816357078672102285817344825827607245453615123594514641455570996853324930952270981871116123738301040146225049691099036339196015678224132033908344294691753890719455787948643779528407778631624924688978831127743996673064521817889057029943282053661255905647865993923383015359595249610250972919413432253730796450000633702086134349668630595736133698882960931167421684102298247840238183167262604240003841820503215600771625604914238555230721177259544393974659992360621795594565319330423517699805857026841835438716644028720717996343360542028541831656231249276746205361024214103112520507336689173223967000770299295455177638491004747279138583390927351551502329304419241068271095745691614465635057159692413905226017821043325635215497234513200033687800487622933333002863388240899460283809206635220052547879686425250074292417235636202269549504292115535393006480443946959154687349420630566167695684007466163351135271858515974700374988835432568651105509749312948375592283120281217782471913945893711200986913365554058390420851269262051671301052967797963625185830308225902788899786261384277927174506835504237628906314936234582924187868501482168488395323913935898897477682733630838411474438176731331715436715805129548180179902159730265665567698643008015736063177968518095992035378460529996988622761217018020666069610738993680511116049189545515731649961073066201363706775412203515997985934806897164830180771138425118242718656870996089587214694958218348661678140496316411456238712480104055499610299236524445923237101230180398169805903015950887161943349147403315300951138127020733443022368057754095393937817758749542052794694386268767723181114194025861209800439694031026003899440423580864688465103279575002917518258017356091857581091575218770536850943739519325557386713017569290895071220951458795531282478760533687180761724346810677439459127745615149820852536138873719762172267135246927684048305603740517784832249648861887284340818214925408549417299322575930445024623733956322224776369001492250679338555339394508514722683496794078812386734866091550864150248103903498140936203094043069273374064054176287692639109993282348553343992859266891063044988829602825017241202414110984735405482984640793974982955606301240387414946451620623902364169620362090267843927886205789001243944562427792329031334220524815853385867374271448124116309460206896401360902329176398422012752905415545873450996132768945192006458654712447134634604760938373429070989916036736388712037072495035094114803623690294440747425408146621073882514442740735449481984287538198487570324848289284613953112392052213951461787386606480363344342545661095330124759152317314074322609275212208167756120756293272019687467082351122162915309417681225703558678407362862745581184704236587985139463242040408766781148621692236840958348767114573088994016219305820536708923715926408362384622667980001305362343535899760553111495503336324015183275311118312665476245368643629110284935108510412527408328499941875962885688140496490101333699287510126525769318415522685933452392167316780073726587472275137062180308487525449752434345260041895609503738270643710949887919035550248242725212715765564659158833831930120295868488386477993471472481823476975581343702036927965811677097006910349559077949612383222223985572279879987170191394223497833287383914353109324080863198536017348018272881702813780839436415749304386650364554377867580856666174351370875168143172620959312330727938334738243434437736576715558661332320171575033998601655466041913811044410234347556939358987726876547004842295234621400678776393725637611235116614231382362550538890939007613629559453442850095341905544430124784104972322713011404159611145863101119626260078125770309888352522648375459559180237797251460386654601888616756693399645569107251940093493882277114638002906817424276383479121297279807315577057621836149827327869796941656164029372406342832352550514566555119350242401868919468125962777327828187436699426329501903653906324805655351657816926987162037797961625729687404902553432161720939037441630353099542862130928050804129962241935129935266348256383027195016461069604614815640568015570391340701227548464335610026535753402280548862425625638727563180505765172334272268564356685869663752415545157011437472281744431794063171721077359101075705539293648148330324055709979566291852196092746560385978546603793021655965931214573594989901918422053661743231954849495494176742919151891747835026755795214936041067948544409681231081256800276515668122442321458225658366318547543839547972004124327265641042564202105602227389265399390100256055842232894820484769172281139527185935018773849426841272748093443239364672428408031042215415097656961980771116531191992666428701007119105663614701461926655351000000042046713554750186562105728432020298483491283283835184570586189086242253655447863661882848096774430780994415091096593614690882661841232582207933558944334536283399894896049612992068292218373614839041599503219639024991110969679559816851129879409067142003413694437878815137210430306286884760660752329487462959888632238533075898507759850977525112910743316298195023239763334678799461072434898170722721503946905552098060518626496005111451614239488148480691957960005383319755568983864667674654536371428869856069132817882717353516080180402274988545605698022159107170361152939789714841529766471592080575503835497434186132576825386129047974311718791116642498521572827984005839986422905199552333690522434097806628266995305172656232508693711910045283219417237289950324518154076304067126399707625657154826636898359808517902210734339919207136310540355529834834605647114355048262064837190482442128537961582129983590736996914813464637255125238986702206030463125292921856774424236015374700953910387746301334730202087489420403810659593747553559100079826223108737061971042694422437561253492664583111699673737149436562914540812140920402613235622309673588471731875685826597037210261016751780650359409909287031681768566098376972085022564877661851306756635638025080347820804028922699446391698775779672962920957623154844528610170981713405071959763075277342540368535719638656033320694580685154159850298183953467583859461388669147068935256463696630439988912693822502862698643055363977868070374787488470156032081947585713104083596189452092502204141055076037194912775226386899621627271152543274363688128083903496295634713133259236612983954794100056687712976452773600446288927820781217493239921161424982054367947886628309260333034453591801963220717897027170672377220660218623261306971565505811389189384766303195137914477503239714888442369688316733011199660503832662755944390153732017384763817504680919658506318541547460037916355151148610617884449562989826504968803189568120848930035418008416929778285244248225445626475371612046500357462690721250270295047305224388889077299519783066522942896345817751233653175438948717724346805803626348696033533069911026483825377326833182154945272565906187276582568656194045663108944771704874031708950673415094882458929575941174630207506926051076885162592347912089086910433319699189452301339808691274430408952545726468214512189417908104575642410701983831840824467639913261766875345243300780473658358863597986781077742357957684188215165751721936193458649805700825641431276461883370023745416144321181314138849972142449923894557816071066690940180850184320219320322744063607875299802363264708004676032383416044515779096320889785591554087360516338723710867444262342721862091925216875645600572582039221056694346546483562085671927210576489942852699825955169113624601799921062897515503030494190625118512868185967736895611235853515627830908296425655884718782069085210071690660480104021496214815584715406041141002245373678880839394371568239575478166350235718468894077804247578432718053275238048732640222252495563493631048406787051261484704625406418930633714647926059563498190814718051821863981834557516639600314401097889889881274211100619358157361162920074730297681051891592847896689390778217807299071750398318515826852916630169626336997368789789874170382187131341867738618087383208700623142439086733988689095693102776070958469009337381219531792082651254875650686394244588929433092927673430159811078727696230646604878462066091170667111987723926300566681239371695838437934695151336335147035992955278147948038284834104487618117444962817526820798801917398833092149413243395055931986944049027642652170549389195214224657402660933209757062011875050443693362902159020339908833350247909565594184829242958938635625696201689430619213195278521130701738948820052900421821859950841110087408538295687566503415729591469908864495608866631816426169378838616139143112408533246440528813209250011959789563962102175339723541274639368106328132838354765130532170160618340759072479034493561631209992015027049646958960782237314313879510552367863234734011801454718018664648120930761761230405384722020225879214665325063262396891188678184004659829274959927240907857698904665390374885602758530456911664426148411646293081406774699970184945039088385759957243914234662877931297077976939974063731149689885308905021161512548518592709697330602127389951454732646234801121494687489246545644416966222952931932408211462280238266658061862573220354604610745002178265939269294439132005196516347394541333581420974209887836066824890505951050268035324809841699639606378699623030163213996977156644853983101296853300380487263443645680397373979256136603551305745426143527027299894584142373429012846060780068035934040484405380880978538896816277313985833039652881524002914032809444418033877999522439965217319377551301081612874014440758150220332092884094994114592503675050185615758754140638147838622338241831783754309016898049673864372982058541625868143177630381228581281445645215810076399510273066025098747309720328823317963714930547774278065709880143404984287301127153487532210925867021166877370887118711329149848248725115403113011901527756169030613082720604896147354643736340242973072259495953169995462731751328461286829750748483286098920975632442056818430531156647914024850348962353158521734514701410009491111798876718849330074700299538620711969868705427221264596881303461705336612761901766561623890718808596893345937154087122177048199415434985294940037592229814354676528937322883262471183209247207732887285562376406896351903453956191490032675318482115729851710195690315834616043253282215784156284325210345969501544610901633208750394673735708106464782145702298905763170507443577355629018394149564067572834850471044180268981036994561500038228781814626861556299242937292385126862126389743917656848977557232025902696066195926624868971845179618180246232287282788257530510521155737697715617703995581001259610472116589091298563497319986182170377103963335021477994280761173232975480050170154567238544679046071402297009341657398102356601513337989703915803614568644417707370532366625011112937052495353010907247011393031486261356582205420180863378190375772372344899057697771118353651409446704422865763601125079294288831954988417834629252993177524479651064858673726979491435021435035463543608780033611377468597904128372550012270397675872676188363702967325646375374992797348094199614400605538112307545582635939940849248294514318776272180509138112642301944143900745423570864803406405177535771753724386273582679038500330277576772344477623405069151161155117823769856984122744378371635972269898263955664364119753346649353099838245886371218721744745730431579445477430623060628959144112271108009635668190387981025102410900312193783009115884936714314486905112680878414213539726980870251956566545231865289346929060439957456280465876477059264225689462068279970871448445101557602272779694221168694391709558149611730698866340425318797047101662722028271668011424883932062764216536781468665693361531715563049434005779811942602546196037729870152715561071891104646445353963130369699812493964704135139374651638586550483591999388379714591994284381811973912821939229700003324494338808667931247695139847080481813860989423261520741202947305991531920530846443232451277602558464050833649271985126010746675134765693488388467456218986388814085221547344161236944151496961786533501449046765448909747308038660016386716213148779253100860490710701492928762286339209203255413384130458658026289109459159345364502489708526818167267502473656851888602367687730172412308496341527138807249263552516383871894304608275404187155948880792377134010747519283720301434049786786063453582667868754826105702571023417354988749797311029258657344049650500646079239679402939095934815780575386319318636726842774792060025067783381725505563644945528732553252116592577209041386084146204123324589758674573425437091092556486131781790535055300316946997533434874569180424151411227571794737439106917518404713667980071268454174291091786348656434444221180361291215852047512055081928410847149584521539952806330057729747666254499935599113161583964864521330166261664759480242473775540738054545863268254460367654595763811260336818013428701068200439450984223924805347559771676216290459145783971966526161722057438321180392267101271477336585903313670083437855189826073124675827899756911145724694730064962204892676793461630078250231078599419359430023723486973429126091092162746944572439847440673600439287754904495700243576393872723168594717112616719688890613669835280648934274812959875912599685111209250454558292247913093046819446093549657614007017671433459490716134640928125649014370826109379038922139822155180916893644035485160044029441568091428674301840733847688620066926827908113035277921973045167485776526547006027757803304597551754844240516487282579489762807972460058286981862318378583271621158062282297392929047307201384205735836664783663042056304597067935456931161756691811009148151001114379586584139640540332765768198208892232635358218725565092477790595816657082648791474398947090064751511879145921183075683919841828242710721373113439203314355642810851559503841273686109015314774103106913665633022336994151727413408084205964574742712979388790183516927690530638682473464432592459419881001955954430910384149102695048493426467648973720942500152350692193292098199917201082425430424379384995164561462386705506341169716755337071631838189775703829770608084113608256384190773570847634764536159428481520162642830631162411115191005588212428828822703032770792091614877769024268969182441049514750205262160446457699546402658266893313872371808511891443771444787727420418489476948980493495721843511923457014663335549430703140045876618588645364361679019417378633274394380120348036280384185386058113780547835017748942276921460830119216076936981350028683241253277884051768549670227533086549412173519821259106840534791593373482905224232589398449849328760906488624047156498013150391900359232183622588770864220602695401405076923289487482659594811591747544374042873950697366953548495002537006796530141135129691452145090578673165082022928569076552770715158533632385069448188948103499179403249627836973846148724363380073296876664182807046689922335287997229995153399895284029131151630527130790026368416385654876216104427933886629254118109901687403498149199994720779116038537412841612143164033412541310923022820075126349669672631997778146091508983935808868521854009858525844513836585017585812221926115602622281027101227415376584240949320174864592493831461746455603073455945139524735105887767742835587432792305096227651346382222058278068934817601033939520991439298921299815402360791432799649757154681826556515157667285074073015633748633772723040018741289049580916592846072913788198060278346048690516902442896695689400598381131359155832776752635759844137184578259544380181078495237897289202725345208030550035590741167003475651342570301828392699792446269313344676576483853778609954417997412844228075965402710837165305189467544788683656079127247744944165579032563773645039360364064028417025910022191474179685607076705020183780997491396461897773807428794789477066855613057760878126815226675790222710816117091639271666379239257495260494736795940738851209536658962628914546471811640272757449100872776373344339106644341031133963258061692286567660565481377915633705883561903905322216848021339406586204228075050419766230156864770238303764103790379626795726260672537889464754383509189412560754251276833767350417267675142969298861161268221464256533939151471541382159376670964929879062728718735260114549480810934960722290156282516507287463087865599643366444830430222735857940290551773064944761701391855991562188789405897498055195919612765759972466578660749519701736527649064394776253405127268657319192495162887060268041863851539936160545471620360088822744835730595253485984187435287695821345982544058667887086268898480185826872647034769789144681767997017627443297244444210110154370462820686222916430058118956303719762369963709465360562436346489566639671686431639551088354607381061135283431726435238792918808833196525848567513923090270439805348763709572948504966477181007890876025007234918804282720654130759344813853960098052813863861245908534279182470434889886093901036908738244432473049676124169772504229012918026050131008966081553278500379384316198245884222191697312401427277719006400282977778825577994097408285236743556125204261151111726518420346513946772770233413950055510580022392598640939884463820595859026202543042471170222207094738471276196246401314997158450885577107988309879709102183022632025791598335264042665770983145434077542855809840708314235989800623271862278501122773488231105079132497081360296837066433527017197894314069555152074061708293215861669017625512819733126259451176638618650833567455859586261981583602653593711520077877448745187000736509203147953995242490698486346404373287383522587980852373560028501220749821801779905720588369990282033801984048502703362013933563549289325010651700716017608947240815261729696816449147717182919338527432122494320801643604235174637618741731989285278330961287957581319577222863006053251560598852784141163599082395786859112926070350039003860296719497038306173162488775792392154954385515575835802526488120289170779417024584732752980236157285905578420197695604900931820688121016904517117424082935846315369415096401618116195470477576340733648110989652841712249522848868025095039519559144311439119577707559476416808229339436600235191563113005995285329315751191597045869347437403726492321116085406175350778448361450532623292371172336814771646084366185620529268607864359106899127479103649529549757905680398401113490920160136992085697909434415350153481959734244170918093180889884438908438295778491802293782697706236202586427224520306236862302128218890411417616228782602856368775537142267808307670236151581676028347273720549327323829246546782380147813069644925651714845053410310823471091409566669316789180016400821023701835241906738641030627229758607982080214801659208679664550668435744103061852020824588613037392231025897199675853468031768968976874268019738744573066879061631549980444993915481417668202766083289628460670669609913616962027439416026721008538901487436120106537493208582850354400166381863040876565144904619018921201829496934584632082552433319491850149335603057608164923522120559654094403901421183266571925424216770686809448222714130160712450458490485415551955641489631735849341679064131212835576151489691123079453970472333702901991433350272903386216337890446065448813097212674170953196857312819865070844142368863862361787205298643416703821712041703320779785941784642513207936387002029983161484091376468005430900121213767504542706340524615121912462668933094591359253573486447720787898994274140828922293777002079576171232000866521337353146168073189291823637104206448810821973836644262347000103749728655188991524340615094931738915446175115637877286844161963995733124529131528726173215200108961514361030774326369322221016340985365236262896812006881633584325628786759442279658806053611255996215141790748194779640372097802302254573788400285505805959524791007652315363771304815407365908211719577039808535733070867183540192913264187077532845778323147608596261128980636689567913150901329013894962042708386204834698947545115714142182142722615570538479007922686407075395531277917212971644915470315253932146152040705057142451865264024748666971861417461648913260803666051158362425522688565096339008799767525318598359178381500347798606414844084167718032296073477679817224150051779602923886732385676352096221719470625811280455858249347618994550323211632787404403555402176374346085461128641810560328106286536734031950764727072218520497833200150953631423550296987884052396737536448942682179842879159244604865705279045314135734634655377246958723596754605539408474200282872159147633017792271929086616284163353536794393145677657151464337717008938163730036015953280492362513526013161642235987432665041080574842689669687341969456596567687308826211617981505853444937663304605024143771625131514373040252909451715257424305816981646362584929422754615233669861645254608288535564838500173784231278596871836371777212918783689792391290965628487108075625122637368905766717583211179398244594849671108463087565607990964184407830403948071908390488997354387203137006799374772556302619909217802125431466449787078935299503953371148957140290784960908841750809598197514703087985484252410830559519615460531795537590077797482394030433350848128436392052484573650268299343867478444501027614974468384357183521649533907986909079779823582622432964872588682714814155365451074075644775104872889616692628141503318542062152728363900275335278417852297758190288895633445600461465085807866662857755046358401350291028890153086688936713455031214081868885134836055534507234655546040130275821576733485754431035648915970979106360620221753133549146347545133111666936351110463652677393117085702890590460112559510033602518243575023603832475231842013223657274449106712631792235596602423395870859072231865896589045219522004284899718220766414655238239176877441598827456303407509937192216900270154599771594252667140525574496502134045390448413006304167980341457952198280085268415546218979147280186329212113860938755240506522812212662892963437132751710984683913306613592627635839454238450223759494352588791320941805694608144010273584122581852545781582095802660136441389749774088853466948636946719526215998294401818788471744958606660595077198004355565077870340297638627143436777988072830536328023587913032836454164879101594186639292791333931155771862707317113028602008309154098463318816664137398054962855953460584888654384790918438679443710314217471803958651210123617131696854512920220244411614511135252580783223296777394447999504586513266649262661868360378584306057680436424894418726411378742298418990726122924296455532691215846312897228335656324373634837998445842100815127794184825918382512803942388547964740075403139503351418907928935556156941571543617005917038735320905510034085466178780184807630635480694142389140233468603975611302616716203208934348565742214912662834281474229957996701632527561057388197619262171056921910212333018157220457581658212160900689482302587568630335337634738631424243195113829966525764876204256550413007412729976293080938668600435976507288822230322485532954215195562419027257879684609175276803910285190100531843595662757705936097525885695861004332957189512413042608035002390721418259834188250124628858959673121437929663600370190413792281887694193511481096956607363774021353090374655548752264512945438648794401271136688455830030146031292516928980396816489871975796280649061839645233511480404442501446800553200278303541111968472390814357633353802680662223967649348072509651848321118090468805622096377653973940695888148227755627830935952785839705145535295287213061383358126118313769392584094555636626094922653567980433093558035196761316872454346620697346896040987083120238554342234420739718192361077467971852383953507247168863473650589318318217579844273210497407231598327721564721378408652528132924104545431626512362654888265912890222734270120100885523944008223627238019958806476156980937463659557212945369256542568020225473619999078153506735569121055572150211953707958858914828060343361876601945303473511400721148793032739318484306632559261959765584676941943209292287342130379334430915267024838515260469361134585235062416741445503629310428264071763508901819799335676987772197580276625234837266962615879967850013859287599026504657921292218734151286523089965181051167585563732873815797991121433497258319869976064371942006945185089797933079941280846365503143719985465419671135578744156498517765325495087742582997348555057675490427471583729127625719437113173824330784543202273454248105286804146523467228265978084381190242359373965932101983639803652328994553701728714316621816872596933620519676334514891185784785072998415792592340547425125068298575545274632828024450985068027213811875107862311602592789635415796564387790096360407727619772148915153678356945095154204319748855715186772310025392095474537090219986882239492435937796577395563094610430240932079228318610940983784722870164875928597670453929962070788600975249082903288077750390713074934378561742561763217012542851178714430000571105813305370518594424101057067382325349714011805280050741773767183097039341494826035201901573725341757983450644529310486754669729520268725294478999550861683002135505259253024505775752958485862169859021934344126946003028902392786678142188400944290439140823282100783472277785619483281422644302420538453980200882314183244062321316555289833137693278054145180801757936021893446421167320752964363356356923947126677712124516247950197002600551540875781541323568759895010951251930196133274939993443987656410020488118879085792189121250488625274148511011244154497753476430956559693793488300445623329096297358125415566662631011926297482594355871737184754391485871606345841771416926553318009317655845762643561142519262911468757310761391729033164182477540239468791907842543802946701933558070590354553499432875788812603981604955849211715263450315336649032391883687608876472848089227616211209949199830704408652889581868833949433952866818761498782716629679828520252793382249797991148592300124318308744999119946510917253618271075999253060746445356073122870786899509691353533751816712304273429475357268030678521451989610991485664764318701447467190654568198411446108646493464717730049386745925831817030825703160103590467565021153377287165073831383762881591391126807507572242275829566700161153776797600626841908211688390167803335360516453609157772267145639255768898600534046372931548833662367145080433688025083676051560432040847457505461190439044724768529242449693374543932194855456276709035870223484272328182895174865860626719385332635974432627884240081049015814884350579553475185279453499059793218220019976043774432015719131372826627015323074269740669658611527674574953141868658010402636058282738744552023660637131635981827680774947864659383234548476945885062189111930008579955311814520235717489760599233838277066554131016267471282790281313008237492500902711544763772523944779722051794804887624383664958150912928368021938319542125327992617912623105954224328273494744232261744276786911461226934459390136771545253853577970432846518310664833492903589137099284028154686103851768003826133943203238102803937806950862142020566174421802286411741242577501903808286454694646624735922770846050179200704112971351497973032433348546421170091315747651717407665525333683856661739381335417173997446303164915161309082989434859716042044646747059365201790040440805334756349028570948174986648708962150769849177482544609537577683831170076238383142712016691978889468847320688285228461975253303175753950926000558760381977826172583006138059015219971230721534681343395277356738792333033796620219367847877064499772001239183277992477786587952832555916137506923632005009039956071290852160528001631408374262668231727177669116959693738556754917704749602369223015200325958449335621274829771623601237297724386943802937347246837256006068998806383817754645282990194852200095059625658977085068205345542239745100732671151089405948340500020104644786256983199547397787341869232722889320306675344184682887823216369764636221376139798806806103937498881423565699501160264840628542984675886045614855825037429946607353935892899445762888397492842982704095567117621791226995950024441656717326850361357032521219926649788022611341269753134141606788341867432315675650083345443287886465113102753518031334313591535313016717074152578430844129353937027872984169729541723683248965741571722780252200391505214326435002428217459215782424548991892573616702537485622029508846720272661855002295187557066457605400773959749652238237246440047833074407376186359187306297987926491510379148133049665103608763248313473251775984277449283163171042271398353984859826006080559917209416437970068159659161099019532459174138200821750896553094808326281858955755985165240519079988924681150065977770047298295199440585637716958492759751058626309113480218339136949840817117224982412344964330687497665603204849313650759555808486100346066680744250762527590414526448061589058685598699562095675971418376625806266007954969476488550627053812691941707581663185581116010324570476698555671130594715242204004956354564519637983275787051694072211748142850387006579906301527592071646144595749771646913361330089947979591371988901907506037073312128138500216554542588189763220857771919971572335645765783637385518079105405631263345954441164281009150510529125667085607568495211676184958900977903666411453829070938441382461714657390323012305700002917770641687750127970816564758194450338120039124620881190841368533720590489112447048935062546768512261253330558925064193120493244422854383817212918914044670304156187332556046414169495343091731461575595332613678876300769733427896856316656800993938961002651144489637652552808554330503484143224374609790100511912749588804767770879790990874072161376928469501155570164730713827578236221921442692582456707403437893129065026533491456226153519278418710152144868936843406489451169516820719879499695816384837027737050769900604523986054285527098247629103568878703599501855360500280842930145473267977800641789060207037247164482461969187579453201386909899435748868584210981154306782584504243640576940416263224248460805015062472192748693628358558263001921546549050571389988349005038896687996255653375095260668787096592342059955890377273695484917441081944261724194827925100078362088788539766633681251085683449264576135242855953378631468065597997959469907855529457173557896166526891620981446604845982546737428119899984595772501766905675873551460737085911539553778753826441391612738486292184790738483143577031526377695310542349582432024130877328286692048917930715186968860399439497131060955996262392432329935144456519719642604388320032824173017592169869661504003135341844138800336440152913321220050247743958018578388232342931058237970034616805311747023207804756381046005880708572859133689282705517140175656776175658015787023099886760530293531317294375049716211438346724715429374722550048454663390538305961645579472981032895872180135415191103311149966650399821312545140020954055234171335973286572065431063889922014190871081091185981778896742462390834733267216424237122419568059956846254205132104990159554032359206544542532084139340514039506989463907750328237942710158536291141351083783981542341013224412641674909814489568039278902060635250032593277741890323660138922545773998101538928899177377399875986636843946240016759760149120952150682867308671646741462507328046236960999958074052612112144292801413963237647703427652808949581869666712746924085470983562287392528919948461722764753636582051301142761197611072446852533558227157187590346115413996641267722237648627789964060786152444813830409548684171465627802957945107539129773897798798270371406083457287343956484587544722956976800918390577420465991584090752421356871532970996641485857240048793806590624463496832110018874326682996486505930345397687740112958207013592143405664382847880626206056378895269277665775360198367254478650480619166916344735190444020778684954384457607289060586578369355591975467844011336089916982577127231827258676740407398618229836610858001041294178302418670508746302645711532951599907042039783225758248324493107030046770445328120858334580058015223686695895772171622319215424017374766932883855526902826040920300488217371843096061516652030763129865313916844792297188939362183094521226426040942060905932873013654562829065536001598390682005525933486900859486374962035259011104612884819461456714299169358466094789988193242082322423957061076214727919675252252840703117348020448340140072677766021612252691688853837223041965290569260956904311533139181807289745917250934626781772735838899030961701341856362682354805077695905962063230717121229945523610280007164725923553401975398706728914601049161503112072511410663436831379471060354170679139905130610151192197501782253635097647903593001983235354224441411371301350290443031407829361750345737528262546269249051034634997309507448648992518366514973235537047764228203975890360406217928481173389531432846003079830341391477454792554822427860160056746831303947832132870010329097710979713939371988124443652755342139587577443977332601228791777475464573855601274746605971095718759467268533076784908517875767460663791716938629329752064243435791318326150468972100481935343790810116455696056852555181391067691516535990071330661156617543818579197179933755420249356393582882554900825974289507992907436432190052851772322476789047232879389292012722170460607403714769003497205251033834044803306308636848356491703874544511251033221822661915114453560188308561653695722075227743480411171885833210398236663595665058596064358048809541924120935351915984600465842278097758324658261332186110892732026897368203414092402702160004894552596834528456479064391293277389164423518946425936165072477778833128838239354965938834815847896237905873093019440775033684384663446739503823616673344676309611433373903634905410150658699917945607316381950710972361364747362092483532226433836362904142145559057867005023850980374151431368654975701329819065749099281458282867612075029513289420561831873082534575173102694072478709668486357202868762493809406358223428956247524254916703974610049797703068315337523673324376576059108984534026320278030337716047241005200651326388592429019648225242189516938057186475669053292491876472001400851670598364605013254944811986846350907087558834597386402023394278461067370296886685237545589984295447979484723918964150844201623304197901325932429507305245588537754288162087830627196724067707163179242965390828850270808523406197202031112247007835068222098374120759515219101855419782820650864854445845274063102644969782649067291870593025780167236692516479364873225629470421232397531620434032830556692984646095027126726519879254809283239151482229715506127540053024093826733783818851766128951295437749520353268760227846022408882206645780856801070498351830714020329309824553844100536957765584388160186912805317557505130214973918061632825975899409082687305035181758872009887245592888630608244915760111247922679579817548116205392660994247422755718731016431762833257813315376383658991464321268244922846096058944319950103228969902265120192010701738254264836624669251400251816146258806158260227665676579159229212154013239014891835661748226445651536201148077075922434282655010259045464321311358058458877669588148582867450828205275174161930396085702402709269618359820876720783105622769555153567620405066986606460078283312415885266163370653369390239989125135659833212689476167488676007033504955507926850186446976500265879362518259988787416847714031792309478076390327811937015449134715202438194418958117786423259119196332175339554739545599545372057272218107056013056280037628901501510868487443334856145517423672784739344683354423206559392362381224855059183949925694236684719630823154466279855843453295768840966827291827304130326090922551003216253575360989593946369705306937001009013366639901707899937513831503591270324564998382839899497000386567290765871187377166878214688807934998977173305443495015692937177745628209062473822851806665190308907946337592159387990427343263716235198363023326671738946505119063795760646681622150407118664867376227610543472474908922034938668555477384620818261565616021624610127378297496125491670425031840466781507188182363102885990335140133014556659761973754678458151663589884962416752996604371184132644131336462873881932953522091113893787059315449807868367567917306189975862455264013475870392885540575208863424266328849385604231226611313852567528714820146194111352336538433018912822781245993669711265998597146213754218628995976765508039236003877490875130303490503445589263420601623111790744620968379959289744336625650418603405057104076528408121824541635205395399007513456702154345081000884243862043340747337420292064986454278399295850244447457478523860977698598413641126201001142053967902185205189361683098647382136539583764587383899421423802039977463580992911372150554369613456953724464308419306075316317570782378010977677072253372668148555415013422243708418184420226321825087794473456006326223124333973575636270861013514595774128411524011250910404748258468578219698421700948956025848730995893654390497147648326621294386239601895539253482519558922634852147857128738253457729688326304651619213783949005425638932323936833361684752701035278858632791774014664883851217503331394568254491915630997209867328174575591918410807368455152385831147713591723326627779790480535202763890890586136434003167378115604361777019392304637682513432082141906372989848570389754559829567968194943732626400626438090433916101033178127353619469603390532570086507968302611523846180384042461105612152815413882255829478331423334651563071444892033028965911311637088065400642074474078005452009194096676012678832203877351230636855205577742579988564520739932507821865834441490885351759641095740704745341678361319462657069010151779719119101225753029889087000720695550728312633942346861253711433437504179948552536932717227554530806532383550979341651234949652295237724268794389455159320730070628532696885824634097059414949765739264211885798095881244981266425472919355607738608497121026202767237471129482094362066213301122703398071603029978238728870593203813512540742661502982032189669038830693898719520408176440376589527205169341147794366537696653544007167664310036047150104791130979190927839792880180567967940074044403146557154755044178838969461660549282519048833527317285774788058643476478213809642669229122917152429319013325590290268077018191671192615436268517347630401610638240633787903604505991651226331481976015017376377082218851908334001466642057444095050842778067907385147853712425434371173396056981239161374311109495143103849402035066335017706587583615695534095139280370096449464071978776168932473201051092257591810173247775693390791959671004298073032113684953614890086067572730352302084559154812507423873706820465311062383067585879459202831732898901148410587137799285697862529465890516582744191106147308539512668724787193221364447017096606963723625203032835881880318982773220547861093333523287946370381818611567888544544640935063018394251489880799649283748559314549829948779822897705454104572318845498820647840675335424527513613034443333834766350344224071416225539521046659490203983832191920763019495074195077807196968242101871630954170540517073761995846512270962344145691464670727515036457436588772620213886695661325069020570059934544659357492421726959288040397326501948508010664579087120096636428315583918139840681918473263991465502950501909506402181244870071883373622614847618683759597631392531904136652556213306566466241455132182853602648384086505573395089736982632619941994201561661877795379225902757819202527900260614387626929720938837431902481707404836940702954544954983437072694325125164246010218240315198069190137135658011925001955294017568978559439115120081198030032289694352841488328282712802386235312018651562290728220943536512270850241500076824571920024386079481775271885143935718287842599048156333861965648456127035668853317139159649120385881242024076505519058686362673190826724803641886564092028335694721594158250478586618590357303426311499262063304223992075319661366264795598785096820852185932301189811154034068876891183768541242763621105673433579176960400835008244209872181781991859238760945949666078057726978545760751238451416329805575757618262779958825160947631920419944536024788486912105404875104960271673724897200657046497392408420990391357922872266522793206920996217415292723806715404137008005312480906912513492479224844483873257912101838482811911494641397324914312594179155498823372320555471439854107556926718857639801433814067409022612319655357203558055753706963481709448256347341351657880931810604421858702987211680255437735746412515487645861738032323135135457810590169469615690900568862661294192247957769821399403478722340082444003355711567257422087880429906372283660019246966924722922304088776702324285147468429787018292522643853250465421126822865667544331994454374743775231406689083058206208967506170816889750405349360458295284367046114104732526234908380314328599358077444857840157596737811186139997201783521601785860055428250058253911201538392267768391061607869343916096301503602822710493799937812968949340480808308466489570785131267800061317128104075981292007743734174028681921117301113536328486625082138946559128356379124424882126096618930052156645130231572304231792521737369462915810673834993458900733458025708393089540090562000186638180428363243645980077503956115016843295645535240169796552228877027864912408544921078138512020229241346558998909596728751313769139285694785261550301408857559422754342274080888119093949911394616027594113410574112474694387096894908833861751092693220184429939063461450871625935435050985117886264117992539572240585289695182852489084818277624256740906062501333207601725117401078636045651508873203160794495336315123737718451212249255564120487146507465279595256240301753794154610788016517968688034216238486718085416284763572849627406521702733115336958221885944906259684919648495222990313656791368945137530689656300986251746129439473776178883559515621701428124010107484438771606508363494539527697937449201637154137151636028305303280334964775029747160603426679469898524192353572599279188807516753991880404634390087439631601897832800990588524964876986264276637430957435574965162629396106429288764014728707371694969090725857482699531345838345471804876426702515288194483085519094265568058733341041398522799807173506759024140968585261595300028116675406284157685461636266728404062098032769453438468504231983747614726976568999999223946774761787030152648307634303328033123794102763867062556104107491470439377575551923606562987154228409098436149656470717006345791040219779769174007688649612026395077218734746828163122249320903390273823372901955488782551012225622039178778863628865104984468878211011467827600674973557723392824329354794137626304646977209285957509759330389987438440627408013997533506738244681492693605321887548312731231643451636856582366900823869143002655272994433070630360784198042676186268743614798013132326403312061264454468272092768794662829201656855689687772276691618252596997977697763473798896999548763825014599750679251736958431395911398166508985698181428121957395824376931262104599978113238474196521069108855151725061935849012521301844626122133747747329376014807205501927132289916195140476831091119834435343912859415784448901110581284726346888710542682568740637461652738028293520614041833418772587585146454622026684267363618119039881002664675164380026121692246929659414242999571618431049086738198936485678674909011360932252215388723697781699602382011616059747653520515499385257412006676152828120797496750187698701354658139605338877335575014417735986653929844892739118024632022944246556243902217999541736371357981729310548861514541515586631989935001317352300446161361787626055048161210018139430618066322681078508577685234605513449359125418584135705969834496896486944114979718792295334689613031516113982404139597860547391074830601228679561045335421576455446843132252940188199806514558676087348739132088709662063822341864743512921255446337025568036778525662923573076143579134517728186938913013567814715839267802371494364792805822221126275942188887098014198210378525196369181011302833041443356910103527067017188137338909637566156315381539975613582475228685806279272941422699624683234353723793535564802890877325306116512928865036514961022795539827403969326964849594211083694452434366572001036665958235832964681790472892725070774588840535817643236295977019429461503601147984378279637919460484259680807506471497698297881571072787531971385044590964609662006433101248570647501573832999892814996811499386312867553835099339655693714181490327380609716946839134997911171812535712345044915156735946608044670918218590084792545368307871142811982696040439525485989206872858417079206195774036972970220935761706900459059540130827796658764364507841761035071800683511039829736015163657728999319761170350402888980081973522371806418969410080239793720487467682116726084924759869560292007136033789094043342605710206138666514456183181118547787650486483131123090323185378221109832833203219432318948880959139867966424736076452775442832876293144140695480915125902166886956368581724158823144490822883860808242813033871034641297036338743958394641008416014907678878861773282088080650909781055223943049941598138541744647074349444572262943155842989158757475621827746496325857727552448856138635410976597357431132063022014427810544262416284292358425529994113608540245097748358597750614559929439565898469809088319009093729037552302130249632535262367160316846282118409725580232369592586273032789790087647730522763585451229779577182456506971718103437028827464464333713890608536346182992818028955837741420680495623465475547357898337517575874633823661700595942231781411335394005973882350722325501013078791424933375978432633205591970174510766537837378198711959637672399787874819499635387290256303224810355111181426343181699698462307357040038427605705271997747382291795442396820846749417453423101201065248525387066224386762289440581282806542439620468471056651094129612586876774558320775469467024942120638078188719765718671578610719457312276120375872625154361686912060976154609900238945172916164800470593955009699216983267933252453629312282279684962626474489170682078498073842496091182477475446899420200314440272728043741532787867825963453187775456695588374965320251753378033638831244222187315034329159252445163128921751841296897021862394655825235666762958800706732263540975140459969221494429407878240327854365834816581057023703574354439397318652466538224512714797866545258269546616015771222698239384741018693242761962609198429644193913911943492267758537787318576147345212431919883539591726821946670273452669378594274728834574119198138367097610363539803500495272380195796865880220345768826981156151789453487840392786898673201607919067549519615259639214239949519512769063258483086388361426586512931771702098378058739030285407234208610009829597530158311893951386353842221285993984387187001505082254159628873964874351004839943718824390647724857567233090565473787146497552318757738511417617594330761939590446171540845773579385195129969143174852340951796123670689316091396310530497021507210851183238646617034183304496596543435937361532857220010924852392640421902753665477099196965437169728317917414820153868646879077400967060857342758990360040290072057426544167699931781393250628122279744792757381016218060922546856936136026741214713748519377945129190282146014388302517460280105066017525020431919415623313615575004301716225057616209533531237989998012930547592023506581960717495407358264960976800669445837239679750110865229205389574616891294835591233880990558507719188768869199385873490284875935454437395194728055971935286269856280347679004005260690654514906854229146360710490375867483821625863698882350716188550672780676551762525852349058401145359364457472828901562356572260042981208704298567461295639459744871056161497509786680157448932203461722819172925588687950370921741790921088910520915254331038689244384262898298161555181063128457428254793912131904681751803300631718901218004882616265442663048618646967771508649497979230550758895245921429653644762645835683603137979749421536915020183019906424927700561938452367745450704604840203612130530406741836451040559812504266331705118388201077027075384839815277412924391646791976798051855998780186745091457778876616611418397432819229582060648615968602028704244527180151547852627818955966798929512803428133831054199021867168942430544792827860390668068454499401696791417572890002834016915927816939121193866018566073011981495035066253267485685277631440954092652006782880057150207195596479695184879248236999972471895282884809208002402793978202818286689637107145914136820567132583179541939246469955735347934669546446627287687938517922563971984184075385183254873542003127068588672188569257182055620530219729924954834331430291205103034783246802446083230616581528446912340013357093792895881024576315524529086877249576990885946194698160119475298895842221215629481656648490742274761039963422387797871249337719544473864637510907378393826866877241702782002606628731040151616994469608638978872979462511712214538132110503515755229497912823338814327661903511334823799528862353254712287367327606228010741765144128604830464051928804399418529894890332607031612457162116320516362224519251189837075051056429960741292329103250528734834196830075601966183641756506102720896886201940051997960604335990620156912780760209877128910503696122122831612660994911334065870135490891926302462726770832273603403143997667251202023449720740458888475969049109620636070848159478732864743666763441588798377583541657947223485589372674533470756700439689256047561941979840064228633007514444721338162720314072128555217168694499676479487731973656141003073986954353094623109849621956951058631039948963842133480595459416594685737582156331361298460603174102642003302296252355601619813301499935798102672253724173269405860510833875559617229759392048347133878956669762807494163830188582138059197734054491337948033528508095271515599788410144756273905494392230744701521157773911054474423601549963648414119989543562129326062915437478392877599638920078818499232962292026107207493363803891470157362109910307188915807640044927770101357101529975463280936660356629260999558410025728260022438885431204570321445751509855145141558709227541216722345253846216231667102118022379716583228492830432505007448598944649694223831465570225620000383378754538755780024564186767483216319812676868227967199429984498356521140732434778904372507466362777519586234418118902582648102005237292819635108557843493547035520537024241562623582918933248994208092291758429172295036904911382245966922227939966093459603981406675932158438632381773626416985284911476837579041808704810194312203356094569402054381694985130988193923644509249362104194760306034487325776366398256372396239600437925803688885258643074744616117543919432038796433408298565359402787727345277834556261548882921068486064630982287370524705113225814605435664797413300495683534632103436403758773376372450542846145702715104278201992407585725655202991087204192034148255173543929249034519923183408663012127547954545629566305094972294798962582612561463078588647989159724768916604888269696220099367842787559633246138895325117472436955811010336032764032724132697799953679814276233810716008489320022970716226572795657604066246957788094845094101572147581703034622956303356580770322121573990301488949471843519106167982428123686965102825539357918591142356433654149105403606912222991437981626845592090062099707210633792400828433361478646692304196530481402839862036737927827308321763173267032057806874845749176998902703382482060700362599046044167981034714198400938074447863457998729626470254896269031482557891521677627484575367187764493694695361024441336842314624539431253218097697664324938781510514004217431081600335352344974433431525386355289339209576389050196322344255192026633868214630565417531599442783460608045601689377158139640673938235113866983352957480947540042342580639529527403405634673378843225860755404864329696432556138760933894143574331527046835690146711243121267059418206490185940732596912569893025455011137257734137552701913335455634949491730414772273003292966850673439698251117639270954531044221602388439550725118466867200113331809187044283122480561224477509561763438868278882343664375196602613619401880572853663225001250330540342292482674418668319415709533856797199312381763208178808099998356072388274117054632936027047362936202487753577957925730161086711350501179291972841624146570604239663830178688817495710130052753127003524285719930341686376155340962752946184002151881387528231229946703036055709856106435513951818550014691003755489276958536740235919190052640253499873654291154297636919502023966997560897533755549369904590017809981326490482655158505341769542010308261276763140147211100540527435825249994805266657037656053372831314623248651717372361224889450979885064994406655075464600538218325244469079309538287978764732906980514432354776040662047299075160515872913754127799698061255923196548814785260656505599206184290494412200124036548860532989735249691004866711650964623109935205747237514738693620809616725247968337384573612459219908554248647144708601187571126301429256346484464414982403475807589791748486625711118308113673740950780849436225390796250189866497770411666615854123610249545692854820637044360748514680058108688678894769597472712454990250439744957479050532896615072655445635511320765755424306640405507950212451721984468485795426885349921199016792556320245175580290542430832397690197945705323886143661723199819520662346798053949011645711203058604800568455225498289015024530544041793894970975982948449161413813607651548868249035209013089834930301958448203570993887110302611252362963355791187050266992866174935648888185011859426598949901977546749713064259797207552489681832673278533803929317410298180525932658305920941669915785317432957149512448158930568568450324297183530580014091679115253063653351220204340732371691990896835338822453197372991865052388349243299835071360023052700789475543233596552606938304776435159998571208929427949175452333528237625592170319687662703144173281438872288479790501440202714317887724751390563626146017291080452925547434765047592372542302617960926547459041904501560521992478805475480006008668616081446763574324762418949830885517845634422184951203618463365219211064229005859457615655653654042731224194637192990705213796169776107811720383217351702012099929122870975414689045525702815430066499038924700355241021442899872784266330499585393619432251361702519549392703495757793957833201351548841036787792282324170811864821152093336768983348636145335347653119553751552525718657643984335417739131366226162753808354015972787121712656651281247176567789601145141925928600356181750391862868204108212974496500862470290288956093886799190153430779452679545787796887886946703728830477476626613612203176383452837685794056105935074730088159661903818177132196390785301702516631285278750266025748244738006788688397723581755256297280344999436109518716587232271119855372691341658157720830883114111487203678869332755196601181721024197978757661254079350718088470034073106312846374187325318963085813136421284217123109597283756139291151274521456812326415713280429076644504626664414921608681872088622569649456083864776203257724494750327644678651833644628474060758088346159618418240376867924479396155762122437109376869368540680832455890452006689905444815766595089317162314652784749933067153646569124310404314206962225678136042750247352655826641052390040677139531645239623891702775450296527192076993758995182417169610588086571331786533613322173654910618388257259771540157006902983864666210456315462926034413904404677406181255440091657335847921303928182377760808794112238164571101770270678396551693324729826186517326892412339172297764884576218017266359012288085719358597912759092895415602000735200722193182686272394150198008838248299159338232504325211889792404765986477167220220366345756967582504432971180301376188773228611899587257025966914308811310032461620852213054449263085954820939049405705496154245622789401496539694856680629735635708504993113020523894331381631806270294128716223461678786515659523274440556239100949686996371073307628110749649083531976042100766702136276435993581570767551803170955237845477557106730490509238137139908872987473811541035401517702361436639263604766868262160460779163602507912558458886736122396947011361312008906251579781471587308683645449140489217082785752494569586795992197146668069730466951320391218874077240884763333265787945137048532462603873666454824026896138408017916128558188660735054082292933223941651724819994591379183698795928002763721570016706270700654380505266707021965408022034136961762784453164574133342201737859667522840811237721343601375821581027853231439940683281114156373277105787522314883376670615651325117453432964118812649115883633521771939868817179323359968584248251309510454567702398176431017961337276492533547862760768289786088464604179472542688853005616572831970235566545088354152521816822971450566520677495689633761759212382089279707929455109093857389172259631672357488266261460023966040384586920343163303267212507724662418533348138184533190384577223223133701170065326493459167308968520131772172134052532129303612789440630111296197980619983876175411614364554159902472559606111062564850516117968484019548833857802440082515341786223670128923779138652545177348869258988889662278748267394463497919429314050730299989917635796227461581260221746212561621799604796047880112328939877589798774658682852207259244662456328318748340130106364755925492397653392775288226859953186559476933492830572668639587219820892041406171430387905613358319104216048895651948611119894117814841236943282336637006163194218834708125355853184229135842256131320311210164035253093255720421862659944307924583098229516635246681309228869821128769900211157137160004876155028642452055424663906186353993285786979652272916596651724190534157849391290225609320882005219083272292102738886335709684069479762685979218444135158553359107950878973491064678730291367145437113258543041219203075657260125849845544794450251556473600683841241429044264171895053398895889438599940120861906857261494297834519984064231344923816365508456735035114279494036666225391358577907708424634775863212351677665920885405950960858977883978315682311378134156078498652645272207469048956586310160352047757124270070548478477606330672472615417764711487388759405251294160577911054298071036779573807694824512835390032808590115675573275701859953837824708044297554703525661492793376464594598147109821144848859254479638579040037218240760278121777180188763471777579692574716728254826342852688381566690147186135029542747694028898684797375679384164395468009199718913640991486913781588347198347337698539491856276784776904410597595539910374999602141927266609926661960523391101556262642131842510187148103593897001709648635507438477271657099712916700188683816746018256984525564973334473076552297848070826767159737697236755805790170173779574512220301133125694445832666668537370301626278052484841539361449892275031879501223184344639172750276427435023630181444725675010489405395214022203586581593291448237325023258607064474750502281426062352221535503873916872639042684964357023487695058148816318102534070758652758626929959833087999260881871994247407253633385452822861515820136728569322913483388212239222274905074466550651890791722813607313767692427841473244504210367758223888596793184397386610469438118092574372331190561728537139665249016187580329518960241429616570581105775665841357529144603497499413859696788618159499803661330012593619738572531750984114091080363520552094472174913129114488353074457755736859549980847175587716785535941167357914212003006264547885623870756733188729076855769647007234938044206783617017136319472698149721746638475658073567753380538984086167646192029830510925814619957246583473893220860092295572267930478947346931230818607862587087413768413968604660387638109950887489130168324826871390781167684120603619219546633228879741135137261836612950004252978723252833376029440141440027971786216158971452409169700410801506607592711388998770063007897998977835124254693143047983467065427599021967513585123060925089523414817763660651596021601694119625044702247864536069324636395186173046344893542702695121101008636194718548251602046268281354245541663208757267923269628618320682392791237825793546160258549847950698082003620574544824865545251319054024879440047053065360271937852217356906607817168721451005368795394689499423518384266481894887458982308204518675700176411667155880999211870189032996681073787764788571586239182724968424058496387213005274701420612207536279663543929066572022469244262765908820299987764878342930891165151192433112493832013599358165010821103140688049289450165372551126763128139576903140563176035471524403369281698739984868278699259163989035509094532548665680750461005610695257215771328469359044458175815615972907898078284384418998568250681481069657911361627901138537372274996044366926689060987872737542756825040703450041486914250362867743164287005595046352140200132325624547160340770041515541251752174966932373495467988694238533490125761026809761955942456182601098245105770006819666103919661770533904625961602342789383415100975864748197677881650410420692348854779988338269222693956770308882340746338981796099113491208712301244848010126034877035114943156793169499401782479318631075961963707113872787475265662753239415197287157349168308117696071051574412136384243120971567228269741780283743395179273642755833760655759573898367025328475182537602227285187524558235826679498277473476843490343889162686177153095808997347928189017137092048866401259079524907104218034569996326597046071878513997228190621930156597358121526386899616261535177969602624698499318633363728851929593455838568900220372368565711668747921018824346360534626347397905527434381980618970119550485881080831977338687750436361886043951512055173393530950582293565874662996947882227390503838321189396376929383996117930378850189213746760365238092786504994255936488579751649962829835782130407337569412425566057049099177510919118251042988757626379493486110817097969189106694617996985287781086873348353832446204691504359229472330362438679674260429073931461961365050136602094652758790071192527252258982761740351724733018913334542001863069027387646253386073773519478851873902217702236314252070433827235789823921029941846028900396792444093102718604360029657805749203129811226476608320265614054641359596717901612628278729602529191409532755526493486112459636453767162271519634066242501702051556050770702193827519111462319377865131146135446103325543043148650383315596665301225247896133277515984226766968035217567504356469852790006285854945714876091919055824732736211192320229064952147297926263261222768237716938655398789508757745224993206562169670249612026254181284757219710621907943616260626453689549958692728464875158874807103326349643907369832617188692780439946197990957504029935281625962485779679613369003367639742012612225599999107691508877711932670483356359882167237631068168402920219497353615394656790344539907714240965245351889781083791146059962234321488439612651801822922682900556497431813968215579020487986951562456744319605951948966004923938543674959691795572307410758955907064363652876645009669413472216448774654393691902183587905403542108572187135785749391930323543228482920811732949028830952618141136722353578975808531784659798132015542812543265684508783810616937971254033720393351700341142684220354280653478919392887460645390179650427141196576624978917027474768726336615942703852536427911622795426908407580385514958654007762822372921331402372048847255753742413164256806809637273291804303029592841987617901738707107611794471915257053141699869326827200746032590546481566696130059735237241923664206999135771237733270670557463718628967086226806609283799097682226711235430954302221600992753230918992777943354174470307947145303041572287254889016500208787973628254115312295512719741076147665505932020406315578449141467745282706325351784002390497359914566854929683383366909472925022646873608342723258805662430372134325542259982714490587726113452158312117427120167039062678850735754353995072284875342235824006426610813752334334842078864242535582136950417951883777049559874726764612129241840323432058541039115521248209604872166652224928051769162331790819902737885929264312772272014332982361311315252124929317365635517446979015701306335019783035547359147061580926872224043963706608634063396325905290757156555539287280724277329430732635779381615338642211038794535250737340601702660489447984065549396358120476522204449403605264040862283764102901246806076249031509645798352636598114864928721198558878898588897919790603530506232115565146341093625732581196653738985810249286638131168510010002422569709216463261814563406545672970089301001107406213248759845647068426737885660356304202814481838810156534202609919491868807932048608518884393219173862898336890355082891233034983806522297745268254086085259587363657322640078025588001286161456870246873668300359951803215615621827124119257182560452950898799426610032439141315938369841343791738507349584659350887526315420026214866718169063051461672860760644027915988871024403899598305701206034901165033783208896720843928480167923395159147912691610873147832392335179761182587105035746952422315296711968158756986635257321842918063032625416379581559442731624940739356540560562557072668693815148578192398572529088436642290582475635391518147834915328625302426220467784155273880141413082401511403498682004221697685214602169855943741372109568047873481460602090704031400529673325774743094157541393854547071493133773878827285919746992106807357952008337702780864364010306335445202306736479432280940359154466524179219713888852961101219379559102198964465542243081217398585032945066656009364140968135776747918434812487386647394986120837635373746135746894249140728994021880444951378689480244227343940049725789922222260629877449813774664760119926856059999513315646265717212022676098511063616145085085792325218817905818211037607618820538617363023076031439958446608548490954773896179452123281048298649811627557136761748322742445556112582950799835833883802135444218296824435307181079861512170522914132991627108874011726155836931138265859659250818114905609527739872427168136953051197614946290748768532451976732534078267910129964933560937028416947663740266551711655170531060412831476209503828042269224402488703804793804245179389139939115320544706913960175293763575690109092882221364928611732788546172492035486428418447516265800814872025231945159157593419000524649521938932901174728087963682488219207800068167029069449727397010434763441362080978429428492587209333116490209818353996606145054018558883950055804520005063651335877188664194743564245445382525718060959404559715765463991722857192051592163736038428802869560165141858009093204007637256719611744549098052406705108540101098527427828812394244182354447219486765715948108144655706319755703435991476807528428894565069265760694662252034755069949767109989137927003611729282093027358139650525771771971968374420368452613173151023039537063715960607199933693598892968890948223100996095637210345923815771474959837383796276431522881399487562190270511424768462947101629979698652678498064418415358133436512442709767533036285888273997180938999022820933601013642538174138690972184098476035808105389626187723082781737799862849876032349691712779883702674855906432473990400680263025251029649169540293220536477843049078303215695576235476764299378921641485574245353164066908658739164105502717640189845761160473521578714764288066578917150311209373520008884242495267397987461768084895349895257139423846628705969231743067512809766378498714928846090624567734975255664188917966132341481290309407212670733408247771475030223388690214462990923762735943749335245300324229761539447179736232668498467630784167917438431204894944615615261446160395473567546360311944793457486851165381303186675630547754758716156650123812790858654727355905688580743896858281625635217672440415816029298940685061442620265334581044057693183880161276044936997743928611156890219017302251196776218722079765895256103357136778442381493909468201095451116326495305086118424942009575698593117594038476912360102493616559913869468254885081798987004758925451961530263277280492930667940620063883612745365054129000796816022058954244048777907833100713487775807668328616399483346972233110967931973626182268991538698575048057984861882882008748924390384238609966141504820024372251485553130983178608177639057696291978734302617017520312609349404182695012572547364449295022862273387458051214675034443805461127439597640695617707744033732626546721518261609356973238922294357756158272982231435502458698128337369546238349406639484603413024632616069792147354358336265715794196879016969387558905772197474849399306977367508196430485248101419638207949907840286254564413737796554716971265463477560201879272421328580284783544498654275039197885394134076417414305946916653380047892594319914295688295220935352933989671080138415210977788998348346703423067116459744423219100553660572002782205959367690746467279121739533866603185557311879988874115322733707534162009972551747637867139918493218864281091362290258330414005693751284733957754996595813181721705936917811131952385871085220016823523240732810768246668112053941091197489177405603800242378569309476142214549824599531291209266336233226986341247237671742113777189057696905102967229204780336814670607511947301586692308907042804077666904941222645958678738581428795803645896808782868166938031377983885487369195471747582841678710994994052053007856110342738834576940335403376253254178632511849360772898913794757101743268283292946591090292552644252055048504835531003915760911328051688776222624486136431685866474759766619261946659855489429835839976145947960516512762127073715084925119945434977239630360575409585670218542826687694606428750088786664402820775137988962730389638053768809489598738427539816079567657687235433481303357196786093690686487504354864341362593357593433326730060446749032208401760772305707661959807482189746937302049356003640742977090306192794944680688529932280733711673391960738720307638284227226954230692610027676614180605220781680206809177730762764994030841667632555070471202465459759356098720396469765936684094733071321414930509619273419814345093227441317017164009939076626998994927063473282633056170840585013938877127700090404598334869419311661532025095965354801658140196860940463327131122575538771002249979418190250688395632243306086887558281526931238888708756999456716279238772090883837612870872353162285061270236554319442704109986888356822429300757300286516813190265109063942838930362398879515941005219874652134261586035171312382135943131366050850899443590579122342853079789410966660558154932140087627058096560263664846871210694867310960354461283623809661900419332876769469081569263085937718598277920930219990281803633665950813123317987580574324888724442072073337052942918638584370595953276109390700990186171321089084814745149041596756714632923598414337328631799797388572857446200284298216456918023185849901429209140329924402529597934017459508767256552849391872201125487179100914323358661771139446360538584031044373894430114227415952367056190511754801464379043274055023764167364049287350140297152928394345343240985685803865894873781968868560978061404118897624656346761539222893342557246468358007738891951269618609690049926190586396371977640575636729671400754002677864212505263089619556214543513160045947270160552570655114409838405768356933001734919928419811280653611959501539797106183532151134706331723435668115521646369644174019532260301577514278496767773236377876998184286271039083281271108644740472451344474496996046647708120253067931529714012466518486967867657047998989538063138388958221940475425147583685043674134085747150522628958212092534544926795468719223638426523358017718029459263237376178045137930994796421650639426205006102011733443588534705182011369735839113517691677812221986605326423002940403894868483169957331203825245069471371332789227553423548953459216383284708166339503672806751904767336300671212863285693631329140799523602097572395552317568751627197408278413521305472561759765936296219168145744602410519083342278120506689326272802705222827031883904777743629003926096971789639204067029245021049356711438388397087098282937334134227699006103749149534144133604148774419189961631576906487212786601144461134574074565677877980531032366874930601062065544505653677345113467195591628147309003903119819667406218331801103494595801972740773677831843821702517097711578737117736558474646076261199026568577923420577020822136606013743210705482455574404138652289363975536679839319441435134286771169463277434182449389168958404157766778646232758157630001901500721060901602046216503514753888689312224790956562711307091699071608710752172159683280056340859026388107017159559242725493840044125016071152430161436064759072933376812367515866212563475083093020094173424888736745011931826019470884690861843992856340929031207032238901533258506595794351211369739430183990044445514921348021966846981786281575364432252512128762694097217812949407956864411631764356648043434406722356323097574789884508866530326954052451813421072091208334307891415717000214583809264020137011500839881383740622824583216641511153488641433852289944668549239509108727732729178666327637681952718497977939636497035714942599005913867462413417852902224814440229990956172068628998687534341038074078757730298962049326848853367906236899406910692143852687823011156836282991577835295058838576002322318501492040294537374716081350048848540500400443678872719965929030109859791069489758626758489578095566184775268194973558769920653241579807173976371632515038287424725444319479631556965969156773795413463067713574562173582464229883396112645518369070029782964359843898401861611332507893148390051999267393864990092013820867068031529483986398787862350747667294742002794525507101725021027453654015612437577445399482938255887429779080772024401464131063901643074986447441922420923859640366113326916191732260770920681476419705731661974588330938419897022152919251812590316294479178242147893949274068944040688120316045968978618408450609342968279133453054147979077473514770233730948526317692245261922301158993969476634531563331176416985162603596265796967859234387599790795632178966996078009788347879477067896585085035024813846055918936544180504711170628075706744523160403279905748479057440631940288640079336733751504782781376997361853093666858972772527457971608282673128102862441526522776113555616551670838211370601080980856729103706877569087825669287493482033662651665127325484407012677641551268474558670521393988786141842411341991276993288918535952740614834134840965640310887278198392470473652280264861312207438987461733223130649413370963160311334604871899030157347853649272932734871775703547323137322646642175113499619987085863878045338384877174013357470112484663131509536904483518239742545706700348388048480386577225785091098581495035436048874960948789094275044334829650806675515459045301016791953309479064396308051022033859944201097070087237274416868565087655049906438488145140511432827120927102627136337153666890315766927081823075215447632686254703476653234906136094724799765049743780156671588482596651485673876385251162951770864460832672166699878410047123355088042815506683906189679942038496363335074471363251960510243058118966910234141113882783277673177517829769453830922023518353315692086345923887108332539119138045913694995310035765542643867019943661633632150121939695527371985326779576737889351925708782407557258044236555684635153076110078392177466293111041536649961167759266927179580165453275628073707797418213523623452032593524932086069352532401924637594729819980076313428802254493900298778843749800990975107272305393015522215829464994259712939441016830977322345474951001063114875075014310676334261041584952389453501316324305247876083783377184591598198801139929140943153591595285943877515451607332401498685981249710427110025112315031486277134931260995152949416576688579139644655834594275470020326442809983936004782063422060948463634393870390195344634067535297654788916416553412306718061418276089500834597707857127382488227130944445451835130996315608599007139766404878790081086003393410980547067101754453293349870362115867493497244335703029389083312843620144670340519360163583672011788879518821892870728232235122007918383840729187742570314713530628604733857108307308296924071597098068000323301335572725963711705630642482966329626172981876346785456710850562834247996396734963189767036104108638708849398187921938059603296401347841538391486673811892291950256392258688792946398016698986705318699001978053228647520400180058418502204928156592029525344283753180547215192810624554152968072225002062657059291165649048138012854581680033986215673806713407890046852035427581165392128230164637722112251743850154945483846088637983980657083082792769299346986273435082737255446175301196526693624755096221908557398074460909022586944702965258282999728700549048098380838630734482009761213219780180932439852466060654098939427466727486388218843766618906461191586615415940482887747851510374072619837818185857761836380968442512234982523316632846413816232811364296248583200705204296056094299021043113771313793776471679507576317138578331256027739333189412830537565890495379878207648441858571524471400853206078726222500695736296123998727198929913883283039490656758345931129677246667413602311442274590329000467792691559496614474094448786780207126248398817267359060376873552240208608414873660809949486974149673996944057521038485569998871963597639659662867666087445809568939220593748087085374701734814306623621751210051107249478796562557833239751655948890660411159514001387859779982574354953432687060860391773977091084740760563534053198694139389812086896165463289373741922403129954346047573838008236697411788497669542457165985367930569038453548352294505725731278718435947669933839522975923400192734201668560296025179025262749163339295317355051570403824050560880616571051603194552280032515732022613362301405846396851820244003816123570948055472692885855938271235360619066653572773224994354671377807916343061302494072638187392220298091943931434815357777623393452267281967230969053758940751756074621945088193621104998786165541659591664894191594506930879682302648752230802600991159344687989907926809802804346485203939785760201676795911690199885448576441782840655587721699299894669230617265577530052341859190851423388640254785337877030612578038193514610459773135903058366547994960678054235342426505250995589450010209129990075065764461623339226198830907083602212761723740942865170735035021401114739574119452353831055509596690689219644257952045429049540656693044420306399621046440993851839373914729721717559985758870207537821479672671384168431813886303795382488220237293119880800917948535331542182818293723582803634982596556339277899996737634414212532466863779930301904462527676465003200783748698737951607069405940747158503486719390458321804715043677446682462489412110018393095758249629187952077448718371486030269290335915945636370527903730037128354003087734538566280390528779495961790542264307663930908956212310721026644510640006342694367889411204370336815600772293809559246266415955474499714339033254958884337768860380277386683383525406460966443872599336789164122173075884211907075906132932456857917348085243297335825803140733770358918943181424103752904666808440567919125008289599578107871061513800308918925539512981796102696412732292662017516156946957911148329664876247078662863347730479570694896155602348244420810444209291164644759043993749014023223912312487166656459012889448143506877163664329145665693012544525655114721106307816610745385983278097522483464424145434611157778685778973793196520693190331540210689170917406247927053502494650391105816816786444940981181328253072468664478509201302050605718914393796421858976952789134058787716549092528761615596951382930863479772611040718335301538964505872800596511945795822644710295881470434164880509591640466968474743584243382394457680707335502173711392372314229283056431634523966642027647112572552428934067186936295046948859446483732146661958131036100376884604618136674862844352473599697429209055254565046817880922828361356034316143457270532508563791248342320853156472234925161701971605165788868117005113286189179298978903665236462227682763168801491535995994947706397300432376759411692979709709335641493101630157881361575400825931652613150683322615031705926950784162698131744790226641892011551634545124445306741806902516076430548160507797470786527037008694806885369990293982615244206963571652390336377933183703052200960572731387146837727954918712550728002951349712644389839705317972816900657840258377574107278071710480457044082833189497917086143977191281524019020260665598267877459059627935154556592321599761637303664302518717501011515084376351030617732480629089713212994385769923734887570813847275365901818169087064653032427953199053584233839034054456390733453164797844266010297248425908586201339384185938042671479515047354062320567083624663588753391160508553705830726508504165584074510646310960152415284038278952681525986804455306780954474950722973376253398334251793652856488892371792391894246220310892422038225716329740103150492656529694071812482021203286897107932442266168152575084297794313746660515209258032474720334397066788578314253230785492880376100891086537869139756293520170701056219727889310097425456570073105933247272497700735859528198371343974282699063233710143296082835772903528662219020506443092906048115537336131316580412656007861801677039985701893135994238208044776548540066448712895485279195653884545174295342291131388172356394017899829393177733940585634459595799607126275552938361200931517021525295044850235916045163487364271900241180808781810204222109593034405956261056758840749333187863199578729258195020279411026753605006286853948761465463310741214896812890587502804541772899146169030303855628080692032734572426737534022231650305412462306932912669416605096593310612107971659758045450197545379574377979441288673141898559095662965630064279819940760615809637594632524351055438663386016193122123390619599468055245429227623376837427524317944292001643489538522276646861561575945734134976768479056982037177748859719220163869740620086520479715684692279862997734044054545727214264603817671062779217957935480379237722782787110043275782420101115078851149954668941272445438582462104075448168024473274986323200504112258549508876947155949799947467245373745827937691228255895498186496360548486452373576675548993413267202714006980204357547762630510101079624684206858118216590335975436638983376526804218918435512123298568253730745370169375540560618402056409831083227669058703310444623259089271324349104898046276519362964145565704007324904840553177923249600298023450528834076135990320341045618585609222883449885299609906785763278175972078720955477393254098983562878031974550643730672001762925937477821398411897008663880695951435513866516086693935788137488400569848167306778639697496535572118010570955624850798168578465105431948168412809191336427177199043379601155760475011037421236249616983534967752190435115965643966106569181337277700791265017444315343648180612732737883040471274531759170458917378621624460869017549219407081906779291503701052494568177392503732259098159942348100882853429988485588190141999776453625288158145382165693804742966122956865141333674027787064336516359336985728698644423220937829165509736097675144733105151957434147210118404572860586366728256672988139799389239619172125279079701478631872143594952123133846848604254314383762142741345433349015312727005674675044348569896530550180926379317215216497033584538947413393707004373990420776325329510929996643114715105078475434706372061475724020600201146989970433452117942459881747820133361409068699573906667572306758785182276702228056776156772801238079932851220140192812464030341114761474021946595365585961232324731819471815918160622105060661678669119592475533071123231403584919516871487724327419172587025354119473862027468512377154354599272038000527736450230148257918499351236305505499027703975067428234456020154149594355421519684903538951208745920385639259207512341958429083969588660346705985570688331005891485805406045188349249922950578922728730574468383455170100950527468469717866008656932278482331237040126611084297222650237947393423722027668652369941007118859409936126004385131161472868274675749496094486745210477982736099528104837171294639993666258762982957107878087928281736615693958293052192346244250895202673896088798657729068249911638062468035604173787475824160767761187312156514976993562388205978654446548996309456337005743360346262219263231877177352559291505007002290379913543764002331889585115712276815525738884347844610103612362104329924395666548492687739939204875821981537671737446502990827185227802313013492515509960898274656978692554753797757637302623635299498682257326055272395781929729848025223913506623193866448962150964562698535803355177468193732923161514961660441643664200806948910652157506670645796002762897701784661467629502409774469508827569220147480322217253338619414977555568807250495206672036288380417034106508892830890706344045317340621734089448469516330756832506901509457905161493981131664454911140814233521894985648997614861411245217518525394339726354169318248600725518762999289545432811391054026460839942525955900132001925695257305140175918048980880626055731301609027735823473962499258616460354020603912545329561670046296718077658323706187574290271888821151161557233224803000845529976687212202180092904860847536704883141033879164750083909196469530213194191692579695700142571263057433317703839420732734363322772427229669263128199705025279950494244744728055352558403230063326346637924025466287070082720838194423264506994879518163376114230983621840266362046819174008309239549969042193422293675180976857584483295432071451175954410703860885210151826538497687093029584552446128341388768178051868701660857017557645452847862382333655124725502917579297553822410779175404763015164445640520043189845707055537162407026089518474168029115388644908621592417320864510210053313986529747165533597989584226348930668543773817922909121245686377702420222654702050812000516105456259194055851720439528307903214714818816431738093917099761477764424672839851450225548730395699683896829807256358809209216579607591645051156221538676087496623478582314452224763527137763778409337833247830479682564593015956223300752886606143246776320106082846021019146034024134975035144075910978463399547065424892902410686759661896877551903835499932959360869313229817373443191268433072598866869592885122912454701448480301395100782164491158730839855042972497970832458526376799673657967728085923230754034668606811413393482685231047876058104912356475883085736185656208473947824958488951913547967340910298122467927816481600717947936646385325711883099121705960841093607304522842156781499042747023117411500197590819831126707718769711066498870846132004139749706298321482454353684198329153842779633640798475865393869533705824613336877261622131737940135359733744017812484249744494134991664527808434362009255404946003260312875320597456476646797567602659439925806246878080493359766200767036431239597216605628121839302329079142964575276025936999584179147105362111171928395021822319269369059910648084455260247598981683193286087696099192897983419331966410810139746688620084401404712639374349925954623973443177340798960067321412496470563052866032723282723795690067404006785520581687556764153086543993512917855775982088023742773902695191631397147393635682343024301682680816759957174756716857118377851649513108585764390638569845078255989988048658354635667630165774470385594321099976359270780923247246844310345785802375069296290634735022608416361622115915917972837980153799614933692859923919530707618459242766885306765406864598673207477554038926295084205946544700985518422133950892497955741601992441347748792396163687256574767165504759039570358782253622541293156442494907034714618191427353097489625902857765805921099409307557629410856318323034203344916256214599585066038964525159334121453171842030116022188501725701297432168194572089738559486152045148810692972709398110178155022354923730552262980852382384936427596986725574847217096757781899325857132831477965447847293718865186708247259737558674976666746603162012954588425853709014208931451749274469105286099885691411348919482971770795756896564381854357853840158746842815635812673733989744447046333708068127117288384932463917738608859058408056117644818728088643945904679943897909556057106461934901240339358435996168264930988848745650634583173076939539608954885898582341368420183306696898901429766195803586608560885440002968647914175195812408199043682962993098651374024174546216847393906360979670993214927969582412294783355298765557634386519875572411455317922116832276387589135990028296536402325429109902576968572767053335124016964488315567993189958502227783486357233267268332482556572129174004785296629540573203409540536280644678600826260666457382112385082576745450238136689951424951946928092653708350244522112394523089061146709105585791904117105354689258193436296982392440912525996012001123034205979238076108091987187574474422989450641642520958589470317954861630817479292452579416083965779321148753602110694591888011402133447620731906412918385143775618031815031961688017683181268636322579448930962290471965770993325351418114956978683432386182817377558294034994057725857807987150000465942257933250603891295283375034757478924126944164340255360806801436396020478773240976126117999178832204068144443745902404525061710841398904198730485306766242696350569735204633132403181557191538453602079579989542352104819877757835934260850012529499401652205447645309508395870473260596914117618074509261837347336661305879293801650547613785166941219312797081099176857935980455612249278503955276764219782746641063182117840370922825460403219963753952790830691737608203566121700736243712953121898864526073150215707504735974647215752641225656267955432327401495848895876754867034179512647761171417486768287476905782563046296669093696194268707274413124880793732273473647957516915241252874367874069882620742614373564740967892034180112875390183431493354168514435817319709471032034579752887552432318665069393665834800323413463006121568721222670981936465214871501924777898261283973245550859773954228997684681199407891004503280522441934734921145285512206417221615750193367006440027107163206665258883252604620063078506857386924185391479729475874779876132406317179307428516902499369072044975059673123192974460024214863179108171988935193382405168015446892353151932587845786346230427960260921906092484465244440169151624850694197159789685384641641455333336528196726364125153366525946819514449386816088146239712369833199986346918635744888368198351952407234144192663325273939087749035057758499146215245327074402111055548387023567932455278113501441096847403326834026095889454959281532977709629948436663869754258289092526076759234057534898931226235798647224270476129189033606065001784874687057249774894925893855199607120335375904705394407598214530183242851655992937530840201832537899730781554931355703142941314149501814640907741602803977186278416055725847307271643078348798582941734154323165552071813379987370211571820799004536084877124443719893643675178187390295425535246883870855390442692946920884009987577546178774306203024952509559569169230672453282457711229347846196925171005701541769339408666888629509846226123871985627719254503115964406435062281531491844859857127675859650091271991150417819259334289133808716930803678303833965844379217924339324104761292786467635601582727015244923678344795944486269274054578890236008263879732397001640699540407195326702296419474221495308234993072811480490535033260948310541821891947102682801543406622154984400814313024897141076815611079016195086337379905352729566651536039022002312214067085934128084177851810587500126600611041482286007683329903225090583318987139434032919011800311241107030432915926783813278970890529235426331029194292155812983802545033238556475681480074398933395335593253004936536577965400542048345019995742402165100957152129805407351322513156812547376425887196682856681626842286586267333200284225825488782700298090986463348773868877629744890577113033804653615170465902609809076125023930540466481773802855040151810885291988426536743335611438241279597288888414763034013692009559188860194927273799081766882454882990495648964315816581495266181049842663930443736379082381805077411585251995948212644541754907622153889032635811751853853960031994299767847320633519779145062492012752194586493425227927641857310078799035864497955220927902073108743074718241456283282362387628867828545250796784853735162546278106502550177685405311217315214726291812175163786825727070572522586600498482194410321530730151209404566415620318010025505252019260458750478307563570581276241349715613101204606458742885271480044152990954095722989947338690062559564658451020793278526427561417378971393416144442642947581608062219974636940238996963237516464179386204189391238607598545138414464336293776858915720057141274973684014795518533537534618374087489813891275836953988240774969214805333003612266373989522957258397893659829697561121324892456258812078182936039879476005772820063953999900644346558467841611123226307636926465633741510481505606593781111039744230399193862861697542329983606673134890825732863889960301939907224165521911290107555354618129581051449015660586221707600189818747339574273032904019139815245567992692490819120828526973121388572358938186953099239511296046868683068304584505463420948895001706210890604071423560771986499137868530186588207187990331163977476990180306508876023703447253070092977361941955189666780357116381107810412469333257319083834697901667660055208731739221523922130181695123353206334717000058185212153361685702323767364866723820457368288819203187658303284620263554147422641907987904878059397289482396793259060147681666784010649782345326838964579865419668575044424936457551765271146617029652743284077223575380983390491839287971616313414038247364268769730241336698830718755243564699870534340169911371400338283495613575514341556288175943600000783638167260144526397282263620653884936759602863716514058057570741398005811573884148840879487505760066605407839239886175979080551912072470980037026067993078124627720769845811366845632055129260386770587559898942565332104334974161535859835646719506086925648251291623324511166851557712318277169854393972090453207483937756553800635574677687857726712598754617329443843936584723774248441402643715414444630182648423648249074566119540521563816369347297678027179124623736303835292450265771873777759321066532165797770755008364364978612615595038997099539220992665692871358765549342787284980511473489379866270391302169836968459416254302136619573633346088101112755001950274871586804832597664736593859866238799402338485531264132864585867917717824879273859064888202111576142183757334073866841897659927793774266362379114274178065510070708191649321767470800533934341508116051590428901971538446874462144469573373935606648704097249004993725666739673355388559025868793806455213462250104427100711112804193299487135420355605830672239572732610422135370342990561790760434381092717029839952085785339304401207311872485970405315435742133425167056844211281799880780083120624397363569929871899922404289044051277649676304755511394645587157933275262155219865563220382373817594150272780018715206270170412733772688679012967560395342702040881338221623058066356707839584691635143237286503785665512703222999097117362002407423275973410534113950628098826622345391703389135980709638431436210649764415886405206193525350523021831618384352877532611844701949352584631237481440434273534469743187652124908847937914120036886389899083800738287719514438294318532087863882568926955091030759466424299920251907038448036711879087047271951930206477565197957124429499665299193124019515335645489927586648430874531524924897294181511672350718902319894420018600158317112564555615211288094430479350495151660900828417140629329058055858004112563257598157739467756224327031539369341993653038038717747602529970114521829361784524911632444020386835955916823509316073892652636945809142301165865590904872202589778878980202780946757442618231358759921286967812941731715712725402285921731510367812753866724085261591451931864668529495101696841129190120856594052233037888010467914877750492405315845339823666027148625262658199556186759287165648926193231535654157616610251116678263913209093372461158493566679838866400049202207061173687790744569871675978886393048334606516750443364979287543060727216414915554004364435597644594565446276543165799980118290865277483955824406598092881363736522953027077902312896928408268739455732328553906290905989903677683847877851050783657461835054668428518194111462758580442029427971540843716793861551044677103133227202971300573237368242566015929476955336742962546980844634100585496456666830794533238229216769563268539661303717460337927656316015710810218615750907121527205768041351059274356956840080936499589723823061370508031078317038273316118044090267057393708122575521672111600346118931053389549681269841668477587374103254595938041501920347895538299574594228617997096077041150612970763124227357305554661828117960461440196255135292902673092199143929086495046238758017813508293066243707605991027706283621275741634201705579105928698961976595281503789194402514952782966255403217710274366248153846247629803966969486713582713183682258064465236544507273073501865744739486265737178006468331333772701838699585184561145604576351908270961674224810738054664031319798012531740505483433784183837225120765025685726786094472017636637513293722393492054980295739643792423023908996265226458923697301867549020134435130164640339098924242260841323441250833804871570913241568704930407254618812554058687468887746782494327351675996166188501348285398792669931961645435606123033310179964165057200638743644604576689768051502887595133047272884404877913422821536296433759827210976649920028167189492163560484170340352223620874156697558874579473296534754371212078371223569763526283776260127277729931620322335142535511204212997759160245328718280791856032146241215699998515920118391803080822717904396564326171538094311140801017573700372357951507772222074837789616300399071389291344744186011837765404918456077427254284717088896835621371319636535751127807363232372696648082839165091545828256960734538504428449861429572989807387758428973501829191955770595802188252688308602434865003648445867154776493316353536957826538106026525314995536965729330151084870548275843881765840161817265393159587771754751884992429829847051331044892134781547918978613381481409608714441703175612434822907548765209584508351037510725230320676563120891340897601450363466230533066086394827475270193470228232644190181212971426847732344562788955171810677127735738680385466331290811908013786812434207073491799468871012003035636257162376552610119304846598077947683189543677070248157078422371273399285248418376317667543040522218771937629372930010249129544343587628017358726603129780962758459786235814780157197805727359300528134234656587004617046212836251014737680885823748701514884414614358460305562318422609307464022841523293103506143081218367705330861576020280414503389926211159740925448412147176487779456126331548654705094898833942408893238664421526673841374279683905027974082728247412502099339074522837117465868945688684724273745485151415237285414158741170333608350912701540680045224744896565794389907636585741906959902507932682217949909622869781813868272139178043905457945759598993395557923625953789203309064892966555941772815513214912018849708460688453327611357626066389349386234987039586217535282844491252469055996708679543577408045386418360241448981287526599439752884052919546133917614900864736212185575142545686574184599413488725836183803648889726128357789942149488893315743582320643098328587548352363774354636686168966603515698155755943650886147614900385558225381959245943798396411748309532494877915340436642010660945533868350317480038885662485673105357048807231087187529455441879736015803382231353783211057477488827200758243354192243592256722403127201302619496179848985752887863740860695132423082950166342126193150538645872995358025174494049210082628375400550929298924429406118932645093070242159898536104572868909845980425832089883967497391027468937494114659118443764216745504384324575891329942056596278906946975257000478506622011355969412269003864003077878422744290317809935538670944045023341495102200535525538473519862212034864474838750489483701748458934814711812163987161549540117348146908727960853005795940713733070083341894689164046052070567643279684130048844829050146545788851394182549307929030510783700602398789259408047122182996350152052717250611757371828722405888994730184774907607251997567440641028673628722110010864630255250848593721213891034415431397238201750386301418424043983058314772559480825737751028610643363256562992125934469133946900676646067689074538264486192415480485148497418910005064761563240730244625013526092067178412112546043989944995395212996048192789414642230750880602670669375730999727942229929583611889091856620863554014082690646079083227926677048703882290290640302518810656106917164762648855046885760286755761402992267627302796946277159279308124743553592138350474907246782756803397692690416966413550526349530891052514337469140878485898249524311926170848482540664011253608115442467168752332553833239343163637731251268630367722714841658198807413482893828292204389245013891001329675721121820738474125111681426818879585555643855277839311023979612316437367433087369282444476251598567489921021143088353162049104621093897783760871297352301565330363747970884687995779504990985123185052710670309768091120690896541669749360315084778316606336513038325500206463534649959196840046509979559263450757384260608274550883055787357258563179372220821606500166886905797321233712856695026495154137672320181220969184374820251994597243792109117607477542377572245877324606757239581414516581952650991657061532486507304625051311325544743762971222558886857154014072586201098479060682693719062235660655003856330385264044795292479357061462217109405216822012946374662112211160725335409369250791366301718943868400434689536367806049773519215291936446139630964723114060884844075563787950012204393935276278767051837765434992877939570953078993277970156656195093920598510536298463463303119525638115115941034087904156338992373980912174185383804783187186078290224401470021295571543256845164251093333467441323123752655753841902656767640740872313656277097089284205872480559554232518251393812508374642609899502388182024552827335932051292631816166973397510500398398520607811738681583727217128817788331221835865348516119300484591047454061819264234725264139585228583056809642761728192675148282258114302911946650994015218495874411512125532323585510274511930561506493757400852534479785467875705638692952077478606813911594152695137708510273215803351808536531646927008393703113797260111371585248062011954731764299922587661185085218846889535292967731076491408934318733272634487735747482088937617229384227270439222912266014314202132616479742107929264045032703203248483938786412505232442475304615042611079160760691154434939446886670854932796799939127295918095176542577639708168484916282641738909621769432383344528883100995763223999087838378121896353753341719750688620373699545725969714118667381061989412341159910563128199569220638131861450386169003165309799863995105618698913087791540048000824434252294881573517628566969818056166136597921511731891036372602679372546017229063222431503922113295950584859265421818140514790265295553156299384576348417032996189349988372832859986828599123105773244595167224440182574740028631155784467584129338280147164554841270804332086722890704649701146649134503910681319483705355190955304613814207116858711439126736867916568154730369110306738602047027515067074767805670218028128328876646226709860660187300534915884346906542700590897124267280623259600833860674671893197062586271452934812364002361590134241107610366734937205088228637408513996754506951160853650549525474891942949060327063224777568408834566362061239805768343347160590434073285002327057155062182252048280575312444253175524308118688938138774021197734707497546481162536614550741983356278649843448779291272421804609933648398359681627190187359473563668032831566052752238447520938408379666005645985360575176974560440953968865161184485192259136696386031739058066439636467876029915519001348826523170036095024074844396444705668515463862794100339431468134898474950431202521215994103071566647630221467335082302934752723206113537061031282444914933242170687075315908041160068419723288645994083014458169672951226373924315971269659702942050764712600585359945951409838617390802056568485533579337480830026239166435837900663035004272782642826100266468562234592831513500400677052163082790141747831196776383778653568035488135731670364515482511848173044804015866053435313793908300633287860157786516381113776678648926142575261142796963814367910900363004271583079470089281107834334102126715433633792074896713666575423136251500698928279028878683471572377127383527574530306750646577588566006696772414136195533409366468957882047540002904024619827095453090507773666754784366841530690735444781114623818646242721961082980631246664250034641820332774207431173888579289944771967429837402666761445409659550226728857530974296625911182537018782043549250237730328196494731549357185829078919059375381844171062798980888652355909618644232085844647518569966977206489244918299172451973467207951740383083040482973238208032651496530884553167674054640653412781285693253511997646008079454393073172190584895776957288683957475390611472448968570038768280092436741421086030509676759259947552449367557196177597843454726233679670808262267108224538010301943329741485127350433302511274027584832913706559544783565752847602677481032862784305379511622665450260388447546273655714907034236595436202672952151559675932921596758696900909191249159728060844191675513710326111082726178924206128338967226714119083693365473245958676626155433352535988036281157082167889857000122730319348326031218031635020941684011925698314872690205144965184158714797959860274150322371885589352275306446314122416133777235431919461261213624952613434228524378008689375728948893710944864932771485116538061475665376416571848861253305320934994819446230152483141397690009572510372843722474384494217972768689184181958492913545938514721487232840580065790631766123378737274858208132399693192529954953889019947337619766599550936203180020975508507929802935179670047715069583959429531764398736315704435236517585216507752475254193849305431646513443305694490353182687437705878652697281637721763132469682071650399789949602068117409264759512943480680309189422097084170209271868256224130202271922657881802460115170524408284403892804983285735915901426060406972388489914565377649575005027162789548464933445682536492848647432206189300801510726334624219239047757586711612452511886253047247492451075330648698757556303643722438372762973150482206007772109542271180365304186822039716725403680983268781962222200741032274701439793308132474150943021590820304057020538740114593677408440270797304181841591132093142603306509835639982283964263447296015194175100585795614490664711870915142952765481345686683329898868921467110007154466066521889858675152106063669034679824522672083199441725804256411473013113512824149256021092218375744575422156700826683899686999210709508700603616435665318194559499205061287717369284996988770334246696523157153443319211418724122817856938001115302138485897929378840612606924604377566521967067036286831015259647123194638144456850637881669228858400881898849670548560650386644505969816257064305162129924949582175493508025875387112209201454969729270217117833281087005795329126320191749194893602978844474720245879447005978219606135129108159067514054340533492481363343300374598110307309164545480645117650507725371022965599300748757447237670713097038720482642710651754098801386270915778256386378725209533002110250987566852640023120752494926369372396360654995249707086343043520242573856274675388003009788508965022183768810374038245995421133795024011459521321037401399687778132133523591199154179218683133809364473371252422663256246044278095317810586123167974567107832878671944041060701018542525643966490038406335865433305574509221060179577777170205116846875542344432220830793099713240117849398047701393719294429164442014715291940867080517809665565310256715971345524791326710480651475065105813823712363223002343572126016181890751416322677590726895197378056495399246882380260182923826297771594692005959039532321719049583966803310855830074687469962275372650626889986103180992301622611185128380195277048656691208366082053338961727798803629387982623100794901789795687346748035517781209479989901078296800874652277376327519011180564791997480650515160445431237162382057407496982208560253284149562490052615877117024507981660511864511777067280182064147319717036638215200502611062944616799792528906380785390724511634735863288860602328611919666020410205791099318384337222967079431727402854743516627457272106438475331488900833906055354011819104077477196015729498733645517702818189493628205147434432700674783560745307867345117047021367630502333374168839004712707447712673279920453545255059869616784108073039008737474445787271536060752107945815235755399870076829146866232677452469624929493887096706905053988801251027623244249536647605132133984453395796026537507095478649373759021145487530743037374596764704759411277006560786171854430869422050908213658006869043696506702294176547176279637099972496252609838305096218953328444282840254293391530948281953518898851404968638274789899556159393793175183712950909897258160476031138240987870449639061223432002194871075334788139568352817503358433083686234159733286146234480108762009751433679704275351659595606503383035645587197783465825051683415452181486012175057131846272216489259181505847925099400182897836069557263460259188478868891379992775371107451531692169585674185580754387159910548701264882614851147813655159164268322459691054273710567591570627577238497044904532978586751757908238538087733727843681859144806901240117567408873436374091285156325317576724062594848268634119114962907086125389966092511030740354020737652257331583816562027803252314366491009557026644961602642527960931793313884423251064559226517636147849442679015327617045581828238800917098280872090244195506384794137154146225192774511814549383889954824789445005394160547968235513923909997883576222001615107460202159935577833482746641127023497485998940375824246687513348479681304022291151171415368938845738966480503687415560648240683625527519626020419891517487627219057359363379192930645924607854006267898859961058598794559635398219067090223712490853016551966661218334145257591964021843124918647085409149400251899615823650983123263231014609730021993824156927294722861617465695228323486517747307994799422844014999379580179842367058873514636207945888835742381351366419067333091655584810248714925668609783674738497645710592702254603529564192293888873516486346835461301632668531129986600452033823909570627198038056185972660372646752914017885530863621834507759029129486378470991961081678735372085419758922693025932132510747264343483380454010594685313127188420822641974911580940463598770460130068312513152343046097950082474704582868114131195415714418536053679277689845488095620918701123054028161103848000131617201003924776461734722368956540775429116315953857565884103047318097313813439235887974508066631945599026642375580200749292788879510278494676129026268008318461964952419049258934565850577616661733255140795554538457605912020434540861014146319697434292071932397308210878727707274568178210311214767477838233132301355426082179208743288230804110083700614962917035313086236812302314463930996208167665476807400707288967638943238587869393897638895060816656359678183347983567447720349877141466378574813527131155774095814525758127444461025321163511909381966090901761667242847017779336420668136990168961542874844372412354191138816038598510683272500838748464570503268672449694551754892806513555715762014032716329648148500616234480603033650599504800402592546805857742540753141753631707077085789860184934502925941689471607102950033188556599060852593025056298087305904614559836472053151738376216382754705310654929359001678447318762955266846712168297634980158676642827511156348207459569109122449225783188336426992876213663558478183158711986644896748084211744172897967199075372365129382114097148360461964183829615774814256230020635271305012560525669538055702211551975837776849781390316049759699583021174491260731846055921762991451799315603932099629325449254686608588304773220569924621841043086353928316914905595217219297247552097455395966390344650228786987240826731811130537385529069081125697492192620336995333934406070394027871905731607738340436601704231954067886394827992163294272199426573190109407674999392968627442113919290090840638515773681146691770068414815985615572015214874612103572361892980884857563035615784963678076787062847619744777267028020542861113930049015795480393498516019893714104905701567534830709039703702748975875136950382227983812642717481064006373980824149578388269713670450972898617619713686634514695068580377100529262225163565604154068179011576505715940487579091910381797032944142581504473851648853445047480342068322454548746139045416724937876651685791284255213822586951289314196451064404632333296915910278749868215236381790931938083628143360540039570675316333561311528393647848600941993783168224712544446083502093484142534732658010898209642228577803540517677264095185211026127301407343940410157176783707864019386501737224914877809264078591531528161018850401856101010328604724516772738939095322625437230037624051060964138611878243803417328276009702542658067435508115271934438549826540177195227781229965227406705418376970197672946667837005536770871918787397660818024112787005075690737230987124977798777773403367229932050773875805079718289921750222168658315015367718907905154607986816305512621905980579149921511835569265971939686158711529465542867006753547997232805118570947112566083582573404398754021469785180720873492051018180597307906835069498464800867051211595270182253785571440137092304154616492547701344777039498145405479206576904147988074565304028996242100239054039451676394020473161847786860078304410104139012204096060099509611086392040097359211779396670077344476868772065116838375676532014013511218418493769205571604860038572637909445018795817785985942940690632094752058032618443175235296563775187549297776450612290499788478515511122383272047446571774136135371344263144582722401786710828231267733407033725390174104056327289034457926541806851909323902147357732279244485456932126104352256412266312933735989536906221194633299061736232677832934021811558711708021000932729575212610329325995665498623334470318381384581617442231853435445102000303929747446987530053459084789963906417981402172176339242963724120706940744248832084017754966228897603276425151752784276852034674455011172788904635279623383518110147685923268809729137754423991023544116822931275088732332682521147803011962351622117981284544688899883065222365268919330231933485292856030128945122332370130783752900899725822942482133788207125576237756015052276384689850036220683064576611918541966125653983939265849416196060541564194679820661428226041383420220588548543346997489078519075460368533081010210889684966488167492028569324889660052541153633189214062852163769673552819092387217838655164591539021467651199375257988985283645126081366968915044344753915554780652916809833629633044932189922856400710878768990055229829132030037258688702637984599634155296102464295812667336206242053925590933903059706947274227441396997748145299550424156099602543015642831748616051627767413143728021150712314731948036309619942360659272879343084811556196454295041087351454329349186162858300517266411092070634699909910441992172597344417952168079479939714343972660987141085280561357596006655006791388037759941740375153601511488619825660617365849571443316145798212307743940013308481835410503027033979204801014813695723138938552287141588934330566797754598166875200495629539047540684579733139631101940099845401145089933946728962066002261171100187914007659111960573534041537520721050080328096372655132505033313099716484297647986964964427553828834143446648287346250480747068387523608343655525066855485275034200579232688513214951057203723984280734111690726467986696370802724470970649491621917167451718209662974178119677585006291402902247032731987210156604578690448700063526940742029123339843935817467489443261473299150530084731721615486344888295292188830169032970931163823482904909980294425576825247076778993514171502618005964213466253537450046696964372347359265859361399207916639128299646146856974266962631898051452313694344039379662390416124914724542494706635637875937474570068908769777233967877000906507487414771154656007300626065547863238524059755245632299709439156069010944982396859828546438515438904013876547840036204965117747408042387727388768037085397919252610891264347300613510423123804225164532002402788888036324915705287725274224709802651545404748978336876508239458515530393347453077096533186759515871977938959515741885344883901346923418872639485518066820354208450633613994829925131697170433124910790480237833246285193268028962278530672218009736283248616674529434212945399472050495045406164601178294660199952597624775096836493601516414239687112520390330902428198537455447463001589391309151337136397451884664128751325735671576858952022384012767157148763556040630260025147599538679866933357336214492322081064463030291172712711089071030565218214876208511098030973387539614300637262427708177885006122657141426039257377658609110517117356869576844071485635930062688370732616771838466373088329874870427781109619635492868248194963079803662362856650841666962642471386928094133903968825799168833080511882113293035029110227273511729221823945213329738650219959108759951238142387538601336558589357405334300519520275115399436490427697853712347304985440690148309151596929297074201824032696270238185928586066031254308150050638553414696863272905421183378880768086227266989619549597498547330444075145509853768522457844464054147337299224318493956683648590518783489261889555010323841516692146284502124369763559971168832845600237183810612656328548498467545869057751884416288253217338399244183762824424936866236731690311258053080402942726803017264204598034451920508882998561219152420451083856433564655296552381544286646691776329088809188929808600988222031548787445564217164504588335077038630995974057714834609015892298213583105045127338707709007542528992184387205063534012901963514174574156049235151763146921535825499308289520074787500477526765587805983661799225222009986483061927577573880071132951313217166696576421157102078915226336226548610891919315157931706305139708467958367600835163697316223740066599610059027385006268216108721415475863896501863306986925824537587266945204846247350808137839771853138260060458693220541354354410212775343448693600574846617576530256169227470258338872296896753231360318138697715778863990695219419292658693604371076719665207619015940753536314901563201377102038147773849721849333789021273651798473149959646481553991915784804641022505151365990188251344989428688698645525415060643677105186574262336491014227854083068231694897896546310556653859207151141490225693509367116505399024188487053023029261747081552465671878928405684812501171719154442770296082351169246149271325168810223966733021567180692916613195469153007473067412822046515297673871978843962881640475732885041823398325581881886361911686570423073784764408752143799512189692780374974909765188477862342493301015714108015214833051669853305308956876245343703418604150801011146884079741174782555505007956730046862959294367076263582148679831539181709410498289977876623414356488421639095494822957717002368680183854816852273840996019011383092904614701531620146774258507788132596123188538225076341502195442301169426030645142373791644609895712245911039724427421032791794548905908137570280250805610278717811617683379294671574676061422150650175181683328170607133507080665649404513507400638461993349910910575051878972595642790327501329675527139384000039509742629935020495313751949420256027749611031212857747667194862462014710348797897095364904242909346907047489841904021758723168001434912483509190323482652721179453822121481351165870255851186300862568923888844515032958923588854796886433255172745427610918304251326866213539264545341442647876408994328207714732812722403144979688923130061291019365853387517905724144532103640915414100986874550848657254834545006752229161441337549017297449737160676593430190437854047742417056446487824571418237880480814855298149802583530374529292979684075501474864268328313304235643942834643773614805488462972107271599595943011847528857844240130221870744547562496273281565808310822874139819427644221410264682867848073689559947434860961151979883417372767205942282629318485807972611302187986102051269754710972063041979142390662461865095527084815737841212091772944830397168056317503588236692956072045882368014894525179328884973717045285656891375067962135918487254552274060458389281188081808755798809354676900318782256524600664757204754222502754732254746985448614904280240129204288720632188936188342693710893412132925370699004482956406382850505523158008428753642256075427870814408782737695806995257162029955379793718298954364750799275778955451168846621033594362682150413877889249991062276282340329325983341981330159435556879413940891354402432443298807506071093405948682400518523223637491725459511390326442506675581612066378069555219066773441884557401886235012125840956690329362483202926326302112139467324783360910435251751664852578651011908933672376414334027505500654003310170600449817756366330257434517431166605168619602785446769657909934696362305906513282333122838226175281804352165794288560247558253923202920433726930982689265300062562537904235686713244073446842693639812799824411592504046207299615938655484677124511404658008308604195062499650783304951700674846326349777639285748715974934610059945250358490333424879103640386724874915976389138243445882122322934641448439092250234388777847871832573391903816717381133017877015784905993590743516998152211139184098714215770104236004633829707377922040733985209373633886212809740915727684321494534758225660761500003945286792700416312178898165589243331026939272097478449637014046451007772113521194684574898062814654399227440262813674335204638243983934578106871882575215166568029302695576457837173582206062566911883367167423290146433210632684088719110032323445451507903845637408350481955497665185035638908316633461345343276220827115542128539799980536320674071762364611926263743644455072142084427594966981140143907389278491539471617111565179014406698588178037719045914201091662537281915941030083141798121472541542599161203418059171652865611532059754145506788818290218103200396212026018709392961279526606467113462112955035425639287280169228484585396462924404623353654785710882769987525552733895190714779763830515405539811429505146056095109205791286978051260261721529261407916124774268100893261505203484282617822383751641785625150372648061502996772974954800843560381856287629481983636866957513487689372215309822554158234690299572833179618285047127719776388729727885529549362561548976444925788897380810598045368404820215856782917147750458241716239360205060701003370297753582607375892320803901698841056561360221300499042571738523899438859984296092151312155185560702595310036602000697220250212455900382077029818418462959204402986407380165263713941553933064196885093837940084326492963931744281424729600313985241766138337453770290215390463118420493114614681594376205899945799968697969952773235583076220692035940855230742669653198381887284503336105936742987190117376000232391649222450705715236577503171667002472280068503105989662274094359622762056953058622680031474664417266270422361679350638080173093538017529089013782251074263396952747834306963570919672731738552781896472900789807432588599715616417565894724441430368196025683827769307294901824056630413294089975911241349318177523204876713224231386312236117682183368293864704586129334015216371759529943882815069323648585742322168116506313751888033560952205881395601866597768993383867690699545356718888369602387293360542849113448782557084720692136833427604423526878130256155109904036520488064163923827501885846304651639379170547872314977184018996923049263479730785440930436192433900957774695592533566226853320455186532159344083459522755875341670535616408746407686352954718252482382790801987954793014310823505427261740619546908058657024182474567129827743651901139965054446442690641219464440295552620981183220126663839671499294806100370449713966403148663254483120569619104075391082323577762095392068650885384424137011239295657296085836096211788782871550527896707730993000555671407080675804647975683282098448084770746979256878830771885704122968332119431374686451793192534909117591492280744858833060334085003458686510452580246411905992084364945804505924577463849838288827439379391144279456450062915904755775074265966745635408206052454641970481728469619453131642683584289725514299028445668642761287558051016541477873458767755034120465911005660788932817994364966459474391893732913003383296090926657326068595008666095080980781017428701743960270711803768277117461494395127748866291772320800347232316961440872637004096010815567871036121270297635556313441158940708366290411247644193544373021165275057272129956659472575408738641274997210320270589788219647344008552539372161839365147272941949727504556032243524098328133034981666481183526826828409480012836420314502762465382602361873708456968811669527544798592364750578356541428962739077462911869594054990951573330387802220603414010288749864033168023937464000984888886537506735434915611516695330687447681893119922955713377426274397904228918810990579969251284882692785965552038955118874967174000435792669485482655419267778532397400691772483359257595945662639519905533988773089754927891713119054396950417126787767216493329275014237148168139172741111128332704063026900561861864324833480011227922834979083568773399529129780909148769423722026901444209278449009425679737192669741006456037165121663947490032924749626825084766596161802723204716694591279285877428154449090101213691429317601580621435863587903868526688923203127158498146988793834823817698980992520849481180336503180611106944705228190687957842414912972421966351272804992360472171129980674769558595962408684617388795853984554428715785558706321872264065490966428608164544345062553832134663479864424934477983492781311409567245406617119780318338376822592495385410537924203240075758358505279976322603089406348626997012492148849268705136492832479655842126878641476938814755634277107755322013531415318929741342574174933382500703144132504109171794454692640354658299593150933078611630669887152217655399934456575340800597527441846153422726669553672533366810598644813173036340511198410092820400683390677072555785094580209074420334838480241739737565648595767803174138266012238484387110640842663219222485794133839144132246881486662002016567600986878536892732612137920961128485937429145177462372378894426358029729562687519943315484013371134415153441248819771590922018315064004141552066656026572572137392792720722158963924216773750255259316756231600611150305811738591416470470908009737243014102561159757346111709560441005997649994315764465094723723916736734111573856209571031505126925552863265676900022257710989589127901146272637212804807461532515030933116846320202091347830640563004393395925872114810876375919151118048457931376087526353542571570766241307705057036972318965633940109132962071008239243825295101274740533044250498311201118131722906289318996572779222693779546758836345992362310456034230931428072747905049943768625204881426795997165435610730002138713049044357270895958886916173266785156812963695493800242116032814579658497174357569869972485760243615446423893630647585935933163033480497905570592597155873976828250396124396980570235127310083637677443130904980031180418295763569290302851325585871479568268597315341492065309539165069090177037482920613630357341381291190196162351817594265196229526371219768591881756650861066389595415373926104347751321451518731679894303713460731770854175888545321377390597907946573812194693657282992109450160123690846709338151027354785909486139421018027587743819066789326358727609881614958888217326544246562321919284613210914126169456219612123355495338747876675043335936381569247925696603022708619495838219265327130488909474968849853483220130071303158051845378993502930605938249320095360838877666997953734302082433728430088805842635130977054000431933069761047686459182128111491316063109382213045374585054055396256958400904710049053772502676591111309887960753511998589419471728446172018710341738604563986836112236206840053770394454134229493987355611826638004736869005150584092465610497666179972944805426745394941306125890303794721265394639962830123322445499702863125296106394778954963117119148481485810962210758971705824145484459697347066979388767342696333404380300086525132912186305563139550814943803890284319370779896827249735257258597792926873451940038385868827404595029125132485061573747105590423136505667898969635621451075294030886788999046014009636376482098509524567064405848024576973937966654725244792203504966768957921847734893068762229259243376393349312697874015474656504255166277042292668743563792655223705019874039062983820631916320906797507112135056465607806956999903042718422502475782957823591696398162159179134379034838354037793045458410894271627866858098394181651799478102548926754141890032294154398903093373959234510454851618641238757491123905272263284191850925866357871625718843271765606975339040753682906008530351968535737702344778010071298394078186771185206372896277120173451584832514752924077898500659391737681203258117503391220416928482250878243901803104474006091642237484782929475290147922252253344317390714555729003695083955319077908030803737926777899075912264156582603007882860059339642438517553566390841488935619205822198320776410377249958807888491320025687266084559613802579483796074780961747953557916107071930549088562505223122767584404466035546044137771738254103874125524792001311354688572069517000342426506810871698813610454479791362456225395395960222764288285382438207608166426959885132941437979697419674294339042349368373235617041555089468925400651767197669732419516632233256883112762354378054390267062489576580286428305795233617348935382471883621511469510455305934467053627554127093655751590754777619504642603743594927479200437769383673397354347888924705731232531797449335300368304271649419640102506429320573775421723177852248865296221561730169078634409548836988001675192007073326673768584790572653264725972370447325937992176473953359427251627481965103809264533669602756049062390331643982224238788983733227525058858954892402929251122455859576605390882176993202486602346294667150481619388772592275993264228896940061812298009288724231953495523799645129827290844135822409722541226180515394199477826793051555936436763096306043005168552516859701908034914023565001137720776968248946472198730348723828991872248080247277460811984176384316533271496883153085948761271479326510380074717135304248513264757478539327651235919289625129256739659346729566198157431497962053130199937193150820141536965834355268948960370088401582116292726213319243235249304653151780130922077723749434187254878309113811975398601347252157605972451982604664368522371781318359332133067506521274482264890835558471661673320461072497633393137308530029245929388092461281224155018868298696456991380410416670569981552812126304586318373599498984121144172607163911805468293913608633226587876410480834188127678146300646732164840789105001579270067724920447125878246453653522033967567633568138956542698925224529310748954294941256190669428228479252432308784643446196391747964279939948888289232393496426916554632545927135199148326001087144361008388177106306955958936763129692707064584396839191181369054708775096796889576525778734129316979665444482144545237524904714816722864403092660915458972244131202443206408056057932640807699030700940146768820721604675301572939317966792546307221487401946797794941801902410806782966411881946366464891900416132207685669540652347991217362535776845355348533767260676912255721955324440271744622158666465727664236854433062014180350665381894693303344813990106230697673469149700250784293083632494532267666474546840488500766456485244020136683679373269979989374329725981056995889535630906377216065075330994504455244827361988175882979314539737594201257299166419198336560390639505211041669671787073226238862012449337693455740610355544055567485725716627444458415929603457482746040044036843407181621766909814215323363271928674171587259628913775784381614439912780680612435306506016728055740598656556824212730138682964777571579352525744299783188161046373398185942655867574729601578745848306965097433540982191750750596998827549325798381899310559757024626894410822184414251266628788308193127912724146094427844574047725655566967209436819079468843508633356633480262783502958772597423618293767306792732039500362492425989633017708832563812505955699657519638474849235052930586439162176461565347551709914313603774855461471088724745502673477841514086941594110836158523160144181621174940849075249971512085951731840546536748899932340106455874355752204439871456516531816698788151438954319231756019781034264909135500041069015952055604378172604017839123491442442382443108692513499201615204142354152224644690235202471734980364227065552828428504840743736672561762078273047495560654725144433392617967672194180082112611229239908068422675686453725057012624076022252594009656663716455775707331430593571251222130690302494789931069205916277106240413386614439083155949835664382698743130875391940860523764623596504231072540908569819350044836818872059469313809280207721123750030660164315238677520707959691277930332615734950609877715448616793034063712508582470703317475305991392029794218111144894407905814376122841037435780334334686896975697215215164291978266232097195332425895326273796353702103160245611553207630533473905339462494231130808391526233352205853568318078325831834088008452078134051699967710257419143774658024808419302198003167669079167464376473112011830677365192809373163369454577146704730868238730084440952328582176013807868471631473780997657579191286084090659018911455722837182682956432869739061578626759724690397899759930866664790156128597898646343688275033097343330894662760041959028514324301191261490933974674996362269535352422506658082292768474624215636825295022031520554568138601401037918670895886560918418511114039182389199009082766575025942410149233854084705370056181279542929283847731434182604272902277067334156696062555647708010856115859260882675685604905279542000316542616843280206554345610787480640394999047424629603862841141996124392925537911657425831304929923293986914912094482112404744320313645932527611085653764139529363565571438764256006193032489882891452932478278588988521654878724976421982090163983783325773582527561156776570671266692445591482673729050825963442185594324842160937104052183489496592470519667670584860965654591990187693335360793075298751921364359482826088463481210663357930371246478071994951879924079631492851008126336521512421783061846594809126308158973202193552665607774862440234592827472532561685272451919353570020331883205659212700390082628602627983072023046216612942038054861524819582712911344846041876035324363175119416755585543719196610911808715494390180683237819712747469096685628298809138709630311751936692842657814918895589095351227791501362251107595899938607448452357980527803221780342248796823705231214669340126370008895772763689000203700293949505837387301278891958263937555979364208425344853371292203017236074375879680567134838997270485867810642061117026227001653077094512421501845314743398623841560411370663264425127185765994884213335560896335292795025354949381221865808832246333274592757557092800043124957677600633485918952322055944885705507907587026133529600421029188537981527393756703983031595379402168047722775703115625542483893390088259401490878627093283898415317805203774086970562762836587747532788036210155755690708583549596806509259693773116853460473327227210904071469549194242978544533737104461646851574998003269763403809290840032224911119340868552785152241329117071467024252696334487510084861788400747583723447639925557145631499984598281423001040097221082800526526948998778056847370261137873101650806636637894015074389173835890819363059904114518946430178782094146108258098755856428716838680889049606214839590333872251019042271162159476941146939239703844830582928758044652139596872813308474104834585701910935227806381421585786252878168120391292084791061517215164030736445829729645265010385784573589378800176416767839071406618937376725964675659774818151873847478893543958738735492766871616488723266981624962943336303802664325073253076653595103553471535461605956044963653316307798337271698000284044870978343330197479790833078683015911558701506268240675118115258001086676680580602792217842701578913320534340053832491164750478460286982124976988286945029467150358187664642848830635842662013044790435323513439020866653909374239652976402473600434367306755882538675578975863028204570131634298859325889286545963954281934461772275182773603279280716221522891927794449815958294396208679611408228678699169410626220467093900946253340419097606005729185258583809243321770350475221382693720049098559406013162296235616222464457397229377558820478849759733323610102291226726318898884915159304061882990937131368294769671094205738644756896652088872038898962043944221077756172368137870552710155159824714219436328506987962623866565976800798523782063927427185847203514794914032796935837407672081960743618755714034463609954951228524049964380216002619508747826500337257321094566189600195650274178042262973469064627608404591413288506645658335383036214807710341754308733716294321834964877685336823991160074376903168322166510092778177159518292077616537334702709848471300657098549436705583750781768162613325819326261810867709837308597645288595394637397418897292326388106149416974225641474123270450043140940258187499921533758877369166920385330347919183677744482570761579871844755880501574426881534248154730745734008300840272960210211261284003164464085268920752792410812171423141545770382041590779637280078194981913191697277862360043581275502701137613433051873289754022588575548050173754798212499688208560532790119750382703309614619963080202388379783305411597045915064113875088723459965379217718312162226318611378592692141161944073991894246452982143084346857185947579155717670783256779446791094631414372487312040758863296911429227461388001796898348666461870805300401009361419038572552823146961626783657002950293530313205641245554783896071308826167931946992982622591110584767709853099368301250091725228184912810304762670883832700821887964148519473560012755742092046689839051873373457083627494873443298257201562344153297465410696846655234942336124395847835486387619549040167976585246415888637668729001988490074043697248290054990497001842439463532496161802445184225673059203622678856368968313360746342803339363178834206984617095976770552943215050564196927160755788655396525531069127101751891209509026944376320522274228908143070952146298761721267418953311348620661366405513503562452819961078737925172071565150612378441094886275850994275521102221299323226417504882687517221999961672170013013317265368959428110573673690083187863619321628196899831473508908499483076601040186259447494821950437929242915048915341625219319235674088906215414526111305506847489496093537840057129500608629432627141216061473411432735260856574897920598959587938534097696549380685023835776288517579444219639818668015917578310479828938379370669803109795135438103690277538451881361052745427182187424586196784823617871214173677129932125967564928965990155041608485706023884794500969697861838459337345055207420885470334594673793804403102628927668088698203280838487966343047225380184362802747912672929145790250490502836931550705062361718556761727969457050485630872290360383307403370463852116876800434663096261479097326041358570877323959181464165130534060886169815679787534264138275885934623948631044328621298528184706701859762999315909606395297749113915944579463953110073255733013722071688571234413080286866862473811274702964163278354275906428288070080707761496896428305060288195025530167366366576755350652719645934259986935469900164069270418953047640206002069102486712827042351082105130376603107176614571023635136099177614658376560420520939991038187334030218991736724333092806188209214452347767233776368769846422965488055108572154169860650111126062589294752656983905571067356942199061648955293764578200021963666722796200591214746882114974160287103104997120810314289185874344557741203731579652003714282450689048187746794846152339467586524268802715402298948878638847325616518338750155235165964550206192661036989929798186914720444317409640892490515426280639797421987399659727790401163504418976759635635396910742763783438472347222188226595262305929541382303420326516702903330054011803367224728098555150482810058775459592989835135690533544926531837242200799652320839887134320271459619461868699209778990777639956948733308011134276199122646305398332443812482739550370758763626611149687434744547162561176991598188001092066550047134437471529745897489782024067708687592485680085743728334247171176118600586539509318461188369529478310792798159765428764185320088818976304222974710601265327022076373116478966026874405289431685933018270407074330916147657649165448446744822000371426543755420275515828912958104691909241223301701903809619355005498013545915592641659511115126324387774892917857592945636512846192241351661309083888470893067973900122839475973616763820138435804156044941708619634057138360249957416124827533995814840751432973148400176207715268450410815618741642184973861483069539059878043998922771995266970933553388478508457308605664525787777140484839112970309741267476380207924227885399397762738826959846705381735104446124188260734756452459591098859193149247552044755901604377362216422926267005341542270637145199302024818469068766117300717289838175442010801579978572426177666034122469492877559884465485553425247090869315255560192941863077423410798942608177939896404047184854184395085543078890524389930507762464291105813755370388187255121334530377450022762220852227064842062269405797366776577382042971110300272011082615236177723426499067568553469234095725024754752874164943738117604827422997931849237967353872909417346302752191202510243481711594605081269318859252210220378946124846896772110772410093150111575970222967093125641123971414582801863810899453233164371362777658840129136620680397383507040756989961889370455131381991946057035850471185958013516226990427093866137138680463078003121608115113244536548032642289258717977793910158407145121629744084636521442483264323464473357158622729903727225532162472784738011686287300335734986062101930481010385912951104894930459933805962302483321709345476092585864852875480448414080910796919415056861797213588713036423562679189369197157834653936669871707791567437368104310206304669435996620647959200549812023971575460366827961652737024020740819809647041983201962997282646077860935634880701863022120156873335741297749977976663855081102295872649673013840977054404593961735582746724334438508745653586978483920484443111960849139248116976082305778107368757807079928736689774632732410943747529185462406020047646347140035337072982295867317893633193200831505899778961895443503980734788652430097501564690323039446839318971877220156317761538654385606888567776061016818195595284614445922237300162024011692740028432714362561287679084824380175730049428740177645581922557999476179299409257945547124914806867736040884705535958160142881290230910731213262841117343949251132832570996083656675199266610998646838835725604358219086789437510844383398942954822146084537752563452422618032813423746163346715773252869154995517288053731780901623595118637857349912963247987943935804367399118044695339740380598836328667720705606524736798857263840179625191904582676751376800126514601287832564057659665264603136549939605238651945849528126628865619819352525006635819004317622883661853334548882945915709656722243280474426971066278295936537024779356429828053186894373165647683249478976589506712680534086672159609619562193686785672316245716744171873873400568674112744237343471793371886068742363460464102165959104745121806023312282464362605098910873823973988760833834726485300189987816373307417224961040395704843450792934391816566008873243222283903955505909039197585721915983907697530471769383951532847124447697037928050281323065823047015402275336728478194814516554409777282652169229665874623237996963202315697286445160892166083493358847211991032200527385754923584043057765804024056138097361051246788732721558061228863318074172909464383369570313477078791854301882912223474896145821739411378950133847032557851449600837628002210865724436140740636889133411307637987137623568458134984546507375539180217474503437430155281855859464230050886726770506999786428390762140596809100550096573211218047826583180619656743290429966949414275121344813589562637123470998342367499674914697775209204636628513616024715205234434470882079427168184264117012894413230752286698837279574971202469221611141606211865201392992401078649718324299477092148829256768885798988485842824310640078348158152505867141264803840842000010895128107391905335306154861564654222417506842220533685105470871813041579336628609266135934788343174500423130081798812978855590446088762634341485148743522323282932779646995190959904389888808938559338328659460584435705465909700749793210716316902485889674507502435815286102144450931358170643459866365833148999332238895969231621537003528492078325577503606480160577669905778991859486504962929655094452271844529840129394725069068079767236037604382724510659334399425349453648436906313576382007353947286387422701324889584563942023139056861627656754108468406330843930653002460429383190948081092480851984406112053898899800748059083049375674028846602900782343374717693998604893157808547192919897287174598899972975062625323210939187228755472925282993976415963977777830012593359217409830304013137424486838270855491829644036344329955333636360838071224980854043462617506587925102945445129156509708763132102398871349800359421803627995110801232839543625720262011713452929211795958238374528369908088049523359998925950444181545294535918451768682789397357913351660182007762591924814981175557406239728567793224461652948501797858371053587886741216586994080106143670154668074182853609906029253422679821753208696394107557064680522433982324291254741729313113204740933116300036859634839333693217316670836080318887957267040158546938152492092532148911318375645256793382988120829328260943700074554485143626506620433704960650591795051745027328512069596697713789399514151638898099053719119141457258103506176330085934237363279149792196885026668984487142079775476573814729154365068815812906317197180107489092526970618874510649572707792079416478745156339652852276900280779281143133502075062385410416854015474143551364059372764055545612204419940418968239885157880830319643357645033648736384935855560318924066002972541900040527239434342883464254417554752533790802241403036949172320455243318129551485217291201995624100483748222371380462613374022678922985401075135777434733298648077764986654649264058550508235828118075553548631726811664891678347436004640527577206854525370797154939094498699140638684557264674922271976241004142657191544618542027494882692805486712517209926394713544722004526087734181149439517425417413281536467265355590965078715402323651778622030074577257939965633400593099766777514681716096101918309068794494442339481853515091556744164050240029606921009202377120058651560681546307480252851660982317260907638010713053007332623875675717339818006048533908985938912161172765283901416532862276723730565105352567532646458401059610434160776905181740718932054796214422469755452311850942749192853667226451930372305814119018708253108416260190306017504795921868391586485967146905976062725844440737623912720261961777781779403926023020048465363437090783724912138659138947111674609366910959446187283741801435216250335034785673319269529333533008857878851604804969138055856417211742145240725645087543469277190641770540076088024439173742852082051460226759701472740083239866659753394734244813715136247768870165130030612788663011297834580166755736122115083775025183120552912851504780131789786775288916803900105640479364528957501411467800156073978687992247239697146295965317178242229338539380502228271243053750071107097548572660378799743568650056874766376627030811924328494052312805143487727143866628563470819945079229277080886381146404986288736716070290019211838968310848443249094336594052727224977818552217915764035573074107753229146278424558784997857713155653786577942164696772785526324189231306182447014885782532957007643674871887246813674281972273725749458126963678508924771218257500224605942149697653651145927631793951548635954248208680859837364939670496598052303761837676066418063383169533965901708296734782217981664310913310718784632638972523760648559613061171303481354076893219304862663740431682099432940982020265715115463612485001873088787982072472230584023788509935612036678996597266665071807370310789636617939533022527182406513271556573191855710003154272856274330163542798417801110338139750875283680903185849981640600479220719881703547149682502614308703727856061611961369134059387613462869606252143376045445531522517916760433102259887048357239623837318419603271857669969201118025196241050093617881036435964952198002645071002161001249855401742466297497383416060457169462330286298537625101631365228087959285213799112832412360547037137011379222602306010504750460559606026003162216043457885260216130157253148616215722291944743571713284496758689921356036959641562149867759310995895979999573355496845489666715484038926811183757616431389697849338467722614154824804545408389068453812818109028724774838152935122811272626848818518818497905860155582851204368194362102624051611013336512005468356612964105226781823384300896368071995959289919504866773058049992867430692930701540519682929810553566373641594781277810389390250877999981335574445644418070816139621341833824787774577383136684786559383736437273239297693197486051777433427650702266039672220898588144793193560464214072868008534769597435681640436181258151655459314142786889525369738012991968914998668773560734717211588721609373085716697204917241469324879808150838845555547741378814562856248499973873980835059203159703403147035013858613935329419749725859333329772200382971317598393438823191663458316854253371940503051420026645529834273393932132190640489162172837183138721330386644092985822375396548830089980647050645112509094337519755046781139171180964018345666839438253561546411023586301901694949481942920800900142496592605054190215766454598247466305287746420926520974189707143190144071105245382482314459901107438021486183510287575486139700340995802041843859880012848416143732701851420370102918666948216299629199945456697179970486532676329234407595698014531560556448582381997384045115738889553830625279397143329074430138805712228478743278074036289126229440265702607408010059166416585691263700136311464650535501956900800057710721844312153088424254506278636795447920318547944991180562183387735825474210093976555142053373085749664755543210652309448474187100217499678960669206421634877105128623312177598822005186492542304380018963104772762873129051650492191079736014114271411139209572781145904962614202938917485048507991506646662936911700301464769097270086155365441635470245373846795645975926133924318818766240813721870555134716655940705004524378829445847584460698393904547940719634038794660733662126371524268709543710880491954205241790463480508613624331111497663754409175143643965557463245925989127780091199428432532906502490732378720713869851448844043528984690016903353435356403293847076441949909056046982000758471143498230297428212855993632380400285861659744392825005474795591970436732357906706525337765894461585129163369548132768041514869326335708072861259217625876286182726283531804952593076020906609408735597865130445669474574937830173086514039242691952935446798379692028692763194339834764397195212786901902119529989933975531958690541696270332209051361995020666967906062004064094243060847816427497604497773134965548425473631364699654203497163857960810739494943395165878128276279573767680613383253241964846299082609769602286464212639991751728291737691909577244500537542092567257352000309232094855503704692327262023643676136332157610660075821354764938028125308844993211212653476142462447738496340710635231810239971776488305743316710522432418501126935593533030118711752656930671024008935032182764863269740558251804016793101311201435217447701440800777207732643676111130955188076746134487755684265190016570603755251249669565227319771278169169269747821832808160842562516101459031453203200927490788432006289042783995177801693080002638167326522848658676614355278465952826709856864086962067312336220448892836895944331554019335394380322460797811165505575066189947119759006450416532792119603672412559626602427846419020348021056945731580139894996087775214236467179953009534687426691239745048944287195320126083610009221813570215520398555619300661317274489227998282677517076906606072490799072215403367176769405390610001328112693051187601452937051266562352823617881168200240567646311838739814994701660594618357884003774214286340625344323184316771062450612523677274499163128146867104548425594450703217727577916389458045429288344025048843002426762006561179575407001895712028168974910533060133649006263935839474636195003288304749311723399486269952954663094609613404851212981865472170788470852741254031015981598347267757113793045323460349261698513700535289635433482635737992911502865486163431612536063906102071377825494717358134124183715716164935179709988673606261425826835363620228706807771718469282584054250360591950605441713986371964815429795483211210343932017533621442513146987030628229016430968997521320560240992525650746635845914768919153004285418624919468472038648742758334744627531380380516716268765199515022469757289736951973288910100081551644021152793841531149982486658928171940701202104947789425968096391707133816406643464591485227863873693615863636071192539051853293900335809678425666801516889537055288585068390981134239534310570525875411769884974395574230515653207626624651203480206321363665725825256171050121630057225746706752578833849598736276033752191416024992132745907375577166389289371340332043411413913246154081675333631298497366165312890917746557838508585653596929682719149120833062815333843570740739833728325706979443579911712012653577991841539851394442939808508580530897915031035408082834939285238709958506347230258011697198385567986324634120188655535297690600897353561945379036715034920164850883515345537367299969598153090739373886256341850575433291776520947948405147135008701592793143018264089409484080474829442092796634461248844786615879962933205368361446863312416375292321393515323260347761573480504631231827756046463907718790602265451452910353976944847806955528731201737112349048342780987627585041647265453211819456858102990768968479151796162065831864101650075258425820963803019128610520331797570921593221422881903651889853967158836148902750877636599433684915967992124460693262321058455679690387845292735904930234669907175771649401721535607972160173099266627272736714682609957655364811082610718415690727325665806838039944630508557697146142400520829565299618857640798164235339215747376445023829702847462900956198280122302415832522627944794112908291961644405710106492354786777444857651895228544268801237503361562866869421396875397267298337059259313149235777896082864039594828953466779784541328785125062021116232337645643354983093054699044844002426331380326005594378819105663031597689409488318351975407253771711737607984308558937187033233957137416410517371015443366907550626267682067283786070271685964656282970919374938136699105969198470206148151121198596552178398432730606662846370737032714850462634659235403477977419766890367923811722441717854232241093700917184119898464377300534942651683789116657136115940979158875387309289041800934210350174796651016793885834524122810682977955545668288231347549205410196554730074896386272038344271794424488138975142931684210464231154946706532964358113977436195744725807979741980473001443093559195893593547282988494196301817448561860669229442533664999588171680914953826086438253028340066859372021986995063194035982829810701388291252678588483086745888064409501859520945884605011338805011953884140992813169834961215824608691170326328561346949534129087254272051911972029052783966649664234817167628996729713772020587824945043312275927414427001662354385283322996076467755867189179166707952778039502896508872763071070044572206286516245134330949216371209843305959801406026997868851029240608393577929641531762463281923080036828385908879581712929032109835028191637456972939675213272721504274705550328784249539742449549342236971564320003337698546228222026130271358172512228638837115202338788612720556675511395123213203892264473727565304254602401789538924308232589052401216291451573370479102886523284219942640878364271590174207988460113505332633143252229996041010416015779519446889987171918434634857609970821307208248700181110532088601816088009824630504009336195006648082463007628514426523867506008855859460058618786009625154488850522862311945990620867100523698238476502991950591920078998073173740363702853539007268746254376441129573667916712979161320557649299328449835088066403188558622870985762270506432736792419684644250915577369305267684983533615199295388667216081775930232999935272418116813462044049623296417670094546590134860212437352068870231940434564359076721051112133985405363282278385478464744783810940870195142828022256772069149917689414563492358282148977923614968162866535409146617947525902355641113934718146278139265701709973346279578897421007733604727137171657645900974556677811418605021368106704433103262739136539235730725333240383196186270087427501493826666644565866285347672630154655557169014205184724944176920771561830382480925643848179904476957891692390136209310048990993144271013546117424390587508382290187367803640112465278254695126685096236976936313339306915906253676243855000250421637011470743558891172356787606555438643964576446492819800165222161155238601807070786823339787432518149247665638889789537614421901473521832372585478843087866783643374625887811871172013838483996960275446604767385815444574476735786118766654599896040161486684011729825265295235939742367144911089784019859838174330485300863254445685931139029200819287583628267840472549589984011003465108647067011669880471020905637837959380977649735851722565012016705108976194420185083049390842119880293622625747826818470418882128565573917001096890650532269500644486347077604773313291331743488415491446902854494783935275006763844983692869545472559565480639354779993152405962385404648915233148700943010739793734649721092763511903624817225883118508028843706981957674853390582428528524194275506604356578792603148974615644775178095019648944321186517686206352474829814718516723403765855185683406547292627818763001610272758175545108767035291793158748867294546330926393272955720898072894227578670802501631327619790266402788198728891315438021556551169262990135603535887804565175796682280017365940907618513028983735331997057591512758421591138586149308634872245801320004488799649873663855318514709235523339555153746082195453540144830942066522135446776537077647665270550043882673005485121827646045898019791984230058394969867025691591898634368340822686769083901201308816966270122073614504640754337982163335287439614610955561211040213825049061128430516732764010113080580109042099544608171898007077406669725019437649217027813365841538808186049787242242487259918372143443843531172622612216302369210928071546764106044450713347288960888122697453166820969008855010927032722594529690824875371955850773766129830313294797595898101544015973754761781776251291571001837504863661825044328301487277890732646950667817783110023265310754165789516521741489101705017942714851825519781630646141134956677439868955328998119349124105800065739070692141609918512244052307952200823005432972568568595534983371820756450260217918532965524907258160142413287585638962885204160154153868401408803579231766922165250192226475538261205825623292245420590248151144593372522423517955542976555310240228774474698173269779442373723633155430915285173169717106596506527355679086218904841952682968458022271381808318899226571420041320357518662669057566511568442120738170119306716760839032447467105260476893909305644160396966610524123701975389770475603770654202104365533781078351992705613535304488587477634769994112783414988236468440252380753671649307268957015679015461820611460690357995366389428228325560626608433423721626975529114359806906899672987618519636088299073367909623568028571833492725341625825429412345392837840684448844154394567686555708300746443190229401796357079734779477348804240452170686430834203760510158011432211943585334840417942454709867024226353543581748168196184479112168158338202365281669486915108559634867936949849899934773461434087465552196411296203874349363030205392445900867865957918821627012383858774593135689745897011905806854451494326688675819184091134459366489331916211310018881891769677795142466884247443032672822834589280486578162574607609435737528018170724031772077112997205064592532498041453678602212060764772972088633186011609567671705130260945764810751727744208836347199453878983289029041967458556412776043368516023297490640018148867532600294381039725664189636010582967866076324330272225874315388987517044549258611338348347597563752167013384445097566417301002019542027233051477166723362692556693101174334659229418113540029831582149415632965613573401594652345556220467376762506675437100729430096831036184168024069722258227994804299602260158217160727382918428036841366718161104235310372905008386370427543384405145729875641582606971821663361153505458819617676534367069280118655672261017705889642672685117535554720087511611017152312424322490563148159510090597837626581258217879243269867087967059531156306562281146228710906094097664904607507746002626643546402903873957185159272224871787368957577493835189316485355931002704432262369660814691026070489242744057876977111752091406826862288960112410844018107795817602984278766311880953775593113557527285362530217527265526265346922298091262891471544793741124345037728715862901917177556746329120554062131302464729053520608761771504875647930070020646919478103354461412897168860529936418578226971914829449747910979529037411895179144200159262176558262456611981244347295557523671209523448383458423329416261361479767267555517702457150701231811846818864881446263604919399935135274966019021417765535494304013193262068934262567682557442014290492065929395660514037491464623796859787489380089321322141118001828245604022790539062553771306437389089404494020260004354761903264968187952719548174253885664849384823328387007814139886065783012909871993813533967742815869244059519718419063154211760096845139756905288135254632095192210716665900948075201315428171874307839761364447000671920546790513685403126040791723802292383699696528241899396902643646627549402351806946813087194779542728384217202454252221199866441016029247107873210782479036765681587000877158546750232628812132157226629213696063354712151393795465750312899112010194107545863652339103777901836876631760657919474809459659737362914688763114251163931554833503241715611881490570260506014850858805909584775428644283885543260087688041319138093202380614404128741252981090017332256410275463007233613242526733504602091122506118594214890269764745477700291877937218050134803967610959830432959781923281654187138532843391898908526629590586557366853484630066176289425521917966929964372828496056274550694552564675804796208281336190903127851950610117576282755208739560004962533357173040386690420048361374248924144441217422280542587030904403265352234975241624330283556540616066791315941820964399782788453084804352253375275876516675625221340386054236386453432241120327065941127928577512738080924431552671153635905612460720499925304304966470819056274967771353994945542454284316441043671347729058576916230399950829242099502497421783176274621160158923924282076769706208029899001053251252068596507963288962316536786746334613640182282004054069227530333008911055404517607816190947632268960568777821096125004805650660282345901366951834628581659819468216376645427051263014967253147903967045485402080025380204448261304980367145887336471872001081427479104457424692298745282852616035875748915324669274038265905859921168524373846216853999284014198797343138714132460250787084487086731198320184700546216983655281386204104103711049960595634901126270995955432964270563176993864209102043204684625633318125306831093537614558649260565550027540200522879866916469638383542658659620859421561288433837801325566453329364288214404881486090322747101831416410113357704100382172186980636738566110414893349053768910035704079364697956999992155622104630831087360459752782166650128853877652831023010879875737549687712216082978318312924864570710756140982589108452022304759323498275420893388758586606952363063863360394304197462275305114064564115763420807704280519072862854893865883722207633871822733612454563936949233920221402458463767537982183269792719689632719131210923903869525329837983916288258393335493184138427268038907212618173886435348355232195120013452954283344090392540399200901286990755960933558017558177831518733254741671259313050221557789367052780847904152645346059499041214481034870371075532724721730183883573519396261985712778775237780858003351923025568638848393557002917018484196610405914663935013166608854358526863389541275643033941419491296282393504326305532306912085057779689402398136222670453095952186392431731213938853474395928530276693515672255991412061613396044718295005979572205075205877897614570015765054474979199894346657138577056717183050598767119621071613776737611559466701899979635084599970494890970378139859064739506833453534812634968097611473845693350148307722924851244139996153835910425174156037304179310647505601603234817181589898279689789660731886805997931689270680545299325438288211020715266447680457809420735133349815116382174917454605183413978977569347948519993876690989701715231851454310930067269077237552889804266692092223886503567239714954676933480478765903931452340372188624977934962249676802653853667594213422207959927688882585358585330939218285611194780482732024772784093700670340113778929097693756712908187281912915888738696160599344807989618856056149910464575637714334794413605038594265875644652417159940822857361496495375335727245708302175449011238826817152436934966787537658898177936375837176952753813900785598319621873981133452450196723245619968811821553651873342899406510246075114295508131927072857611456461540423595961529472088618944826058976945332272487469169641545779539360271585823254819413447654440524392069095246379764622573074129194934145960400780639814462352295543102250301351758503173486992791978606070397984626623358444401251036527299804664890204829959401510378030540742755568617148729586693278291409706854989901351523940030524121023545493696357454877504947264487979280676757831915523929277001362435230936267861201116147685512173486819269030968097831173693510588741313304614321079634906621950599038561846980463261336847843136734042141291237916785143527733748808866777371579537147624895056615957135840608575746014422748345041805564100754806287249788313187194810007997197173685979368123768990067133691639954498330314698532112094164897182082406384742367720639377190218523686845400452255907847357804943143368647613121244711133558660461550617456362007544403793781445273151226867000974905040795549833915576098938823176305898947835232589448324338297614996902675402676477256864490632410229432210765086157894924114163389693665037204595740757986421573165692148101415054673465687559992476534251860582026257637240521171078358528387981921688858482086407877331695905746483820105446723353110043801106638848410801615823696067643672674198068232822687667571898899867948787053361894594109750737978446070118840130425803098461049390184342769810794796946902278090900047065151126057870091139513647948983693140078826264508884730951424745878500058256246293251790549528531225481914713848333476449791028942171494900504426445159762603706117804255946330219885604077720808514836150004126078445247863325352931298292321166452361385969948213094445866705329616948227421147045303900884240277544797581329817189602969946680837726680220402461524967162927083854953832580362099946040443589693032582319961140527201778807406855551686318360284232382886482270595796262724847331505091352012892842590894625214474097588628695601293578602174172438398544780330204252131564964856854473498116266888521160230644069381320914809407201508056283390396077006496482248791566304350999040861359117967487181367691649990890693117729141893155623646575100172806017151633025064233628691217956602290619765424834545749090776091905874755224044879867097693672876735551737496389603127427874452303155595639766840199722446138248315036725094235991697562374361947036859989586724833516742351777535418356893561766545127479921251130142792660057047020500725011271240154980288711058422141502215117968832998639027490475327748802428771648995672687350541534599440273982297015322330073995901466509067024307456766255078946571639410559511767832900635832453870145442778407883672224394536314324487123899149315045417606384406692504763088565030061223307779986189293205577118313187869064372742988177806259544228542257737996177354708452035073695895061744304223308334338301612250100482621241825576296220990227754951985403838680299851228526565575658761588961675781218274902039554232794890225541232387639448465177362888536080851534071968495627870630843430771459644456582477476519226336236539599821951448625405808993512126689469884481052702848949513801821615476594463724329724813383046360084101213126907212002993540650759600615981352716981089690284235373391134142265948076977753271296905720871387465731923193157937374457823803104824739050272364783058795385377914829416960955975406487046238247649607121253390094910560053307539069309852613383265066424640740481762583937726055238459537579351642982474756443117350071157697332817830647945091978062643210870554549812552390675486835589996241549372835558296235420082189083756690491266813778425890311950424412792418903063112269831501129996168125194565971128534348403845428335463918084954580933613333139946068567168710900793467050150762407566489667897927122868882971139712794698201326139923421927304484586696464304811018828308889411316776431933828205064940809112734855713996724961681365558141150659026964282427907182330606656517731501384660546827483352953902633709623460102806799637397230658555057286869259495480289558302305038501613474895556250354240625801030926731681959759909760612940790742940615903804687092316450134843119354748975929214178989509938201349642901686233468853349132447851078513576750783291394464368776511763858797332885416004582702391177626738891511920630017295149592776356331139053165925295215978503762299303836474769583250957971967970895979262044122918366695024164195630808557594081658398762868100103355103954814182835964772804453402187171952382724623918986169958079780323985058665492868990997828186465750237417531100248455606692457109281053456987930534104763439941223943722560375363700661415254339570432768982990572816141167384344550599348189408848875437076812078870255964448195290599367874501904852459604607421663089072114556757882264164790841637916907011748283588083577390400379401286724904956675274656134692303981963219358793368412757542945062354545017291488511969015313566106465236225770537283368554635531533502368028331552531491127229443123183601572828824742234344597756731959507878048237526466340893065146572287692104944620327177270834360939841085948019851436555534332881925124241051557093873323176613407577439515474246547503815115256267834666050125798693643526792016004640946871088585109517562940251372784966970188859532576889722299642378491590338833956942116718366256043400274485604631048161116742435554026964788436365546676870640179755070420454773630648602702413841670808904185943424287565391270458480909516392883289456827003465172019257118323989780706087438920513116156209128669208596655808777600480123450173651204262089721915167680440931827950979656651144462342184781018085062338355208489199949578989505095954360069077978970456683878921184107229749873865169963378834212595361684970438223397483229218440458885731790280730629790289442805539974257528393494012623994000012506808346907984208151334632544343618259346413677749086754339361886480723428772968198363271917030645360408172404437863156233138009717545870511139949412162488519074639023146707666608877401479791591357562911763090916879196526341777937860622165412762016699909180044795236988979728072034863491104685700561511746725592760707802019243527354690218883702231937622555092693131717609542619715709243456302251002987758609106701442158206467644492644495704747416294355704965673180941210842106194869156854642878341202408193655154068339753807718742983529137989025991289025569994035840229201919273129906243221792059681438043656424443445986760181458060872441284487752670799702667049038868657464098993666896548186866183933128896761175612381885993808021785775113390791719036378193399814200016445695788415891687769518837311570922219384479698264492180617398233484837548071082728631415096986587096028029460337294727767138214272283771497287470502413584638354622217758443051830636530201612956817138198796065606164785383264302303060701324111168056001922323574068253947242305687475892068167814311748640148960887142976087307193137849888040787216822740497060934205455378050464105500647009858650386596430709510422599452010106306836949156780165954866234556326378924244057104394031035977022334119873044115706853820763642654582966854528179603276903011041803820780734239835655485767257821404975831851372742185525721178993521821322362995072221731815712669977694335023446057294539808346955985837628444759589004445051804684759861411963430723330298855741788215048491038792488341789643475956982360874702499890631441876206152828263005129283473119604962251494867051640945333634464925243582638386863895182660439483393227498077512771760939181061394865407494821154331437617377524607981763152390823995823692030965404543572387620856731759626390381897426097174375309512484662633305962108833634072632075686519962488244182275658356903870608506534129081538433591668033581061939899626342180444142086946874047356413344307991248897558819797463410936806483428063031917173021583170338330636685405575661584980970860134364772566301543047984631096219265107063037914014584618926159606636964144555604102393609484551590221322837934558275626924829199899292859758268470021790411973317517133385224027349769022863870923493806523854652886914260650006902014034273842452182612918272385596389237791847816486761833961481656092306589112282676919958738362250924916372495606411366216216341651059480048642038037556711923382827176408890739550660629328119290504267502007800870563701787821181997032964859848875541325426907237400009335768074696773546536119286939857654317487246817234590516385110078815096781271025365286116985426929532182404901677068619674683932699764074511598842575877474759173459786705593218235253425588138473605478410614743028993115177609182851762905671293542688729535441615862641687021340570950961525283713680015436303895871091065828205216452474229689400135158648739441197937424196272257871152891990622202835849785464780786852237785234285026595999697442614586192158237179848988284490415859294033175084002053290010201553301580068707856000352389217344912690125020929682583800989671066874463659951570730457338300344054237479529696475475532803833310236953834069450335461999497047379432438827503301087537600752977865666845717070365305518692852187954014611925200479475731317197452754776924490820758800161020258066187281347257093402796219457352873582754583183590203210409553431162344451463869730386026916565992340544692681306760488765902862473529084656946509838684603631110159169659621633646136867434458539810068672009262276669639252842250403462040464470233147035840164161809901677806663200627449666625200592058395035500555367408727341958425104872867052434937901419626217284705117923720169041215611906832276894912647043189665286894876166836315450120827424496834770096836165775843496128702322603739591078143042101734835638141836516992036156985260367264603797852608473145576644999060773522340965128212256863042227850271884318364917998861602099551612557215308271848157765976595531577653797531657873382918249889655111601019998361710169734689999753181957868049875335358971379974586048378574568773119029561955551438014438236262207220927533782421818629137044826957305729199159635156784384307544893929228776881954865905390665298608582011479426924854214943666891390315878081013826433376070824275470826111025747130211002692903117778750469978078195251246896808808701702020824477519784121248917191799553627949419865225259767147605913356467115145138999350718581112149268854772702268167074301515848245973484865047526909048528303424157819893099101796186809063370357022061270850964090199300932695928598835932148316320463514752964080439425882069204795717614072318772554876318263300650199551651494800085282726577091837437313292568831038256744494779634857604253712743336713772550789685889270373779280177310285187879045794046388951256845647296583705005668580045719446883281551373693624326682155134981495167873066915088367918224538163462548232925455271603157329791115915508297796338292317452308686475944100548283210710737487900240196994043884654726799509968428585910353645892017100336307799620450222916073455535870452069178287409914272380445554501746521060774925219430170777172813394720535221755697627946548455298718000399782411095595007663758243189491936181262019456054903308750683200696990928713341313782845906471052352591549491803426648601479936944525000950150751545923075566010849419760174334155801482836888776175092198945177979961548799892370143892516866375057134443292407747071481867876095453972759314947069223719107370079564545745140574944709206887982740200574135923514230027768248336936219321802215063482559869833833878284056861694424591972120429508446877778029905956919161323901339333158270439716979349597130718661234254145930997810651863840873051694189100607644231354811844891671128921930142392093713440511118222067334103419245409315356864989192992846717624122870543657398411729177838338850767158704310069873797702012185276895049935657821668564162680917922151923688477403346262965416989244496368987397054145922275206820218205550161012145844863848572915253345312961601951070092443004492238057646592150021596365340567182730711797076903934507104810506765497211368780725241357042396848097107570838286661431243335970914996133488713405868526327258360949405645030062085436057792073699522394259432154103353932447979489952908266055782390178347385342449982641097320885933609640940204929651912869950822393002515411319317571117690784505140169085614293939780695517733301344170337550449350119704195872491331484326376938037371420364218362510519930370902545243427941970340082708246586195762499035267032870943873483786663965608247943627227780951460986742545558127894594620584845881311070758922391054281968354825321977501528776243395824216649930200926695704946649460796573628894113137801751356539422417522514307774778714113307557893638268713684944155129330859501589061176304020692700288389404749455016574817020935610038593745937983862099327382708252239557308498771730499019635707190453774760551417165632353551680379876916329363054267927527624181732475225914748166601819618298854426828863392111923571217006283498305846735518160524112826199681358312484318201754049682973733958921567798615046427844302567083022599657672837609266558797796619498541112586513730695417933096531587619812735295573614775775832458171150621670728002943833613207881102589180440530254912509471404951763600446744953156996903474304260981578010610101161780931285484747937858563052583355535733000912353581251397805642144339150735804030721451552587419608596425139145427691213936751503161280663561836856754088863665259216608296531016783407639468591598363186608531907085929463579569211852734380793742879034435688637337991147858025098203536734601372141377531714700349461864385201823701929496108320404558576622756085222251639903767449990041206094554233485484150541364892089354891477318827159746064303793140907273245074456938880568422674984042091454850620800929697849023687974572939467519046697372783300805180508614572510351391408810115400428342739153774223981352007867919885551990978303145026885160093390316064166474602360892282571943944195101784780849097957534273409440332551760332924844496223151889401217928077482765889774898496683127246679032845981193046869380497916661532615492893910546959575764142624916236895600298317542787068723464012194589746620238014345470598740511878606703541290825381201531066146418441614209396977634509670685751948747800801157229832851416920112622979414220275204716306162502838067793396039531177133218790980744450569176848840794646431582832411145172499245423781179597458240241144394710754839757408330950405004238121245348521172337509940904747705987915729046746946386087161834391218600757656560661690283617920204203798074816064132637070476116289178074726043139986118535185035803662405738713816793416306983816292685120649329051592945968166082273178025312520328418112031047584377137905380869475449300622874533585906503705034225393854744418099151707612443470543628064519810244512923007089968371925644295126973307223656088909525389933144397687747240117998140200175912688131999583992262524099797059425166604741350923499002735964470600252285152189120470046807062741596031560315700655005626943891452628736325358517741281833865218298876418649621480200806115746364352120232238136069239999123732762786504497588542719745647486328454854535497407334489936611573282764552265501539868041800561771907435154898759575153417271003702568463470031192116866869939926291386263748609200039088459290830679528551775786445160890976117519263643958647676897398666810911955359436635444345345979147995298870879427814182939997317128178131337585473492912061788769383200983507742491078377659577905506776702822249518807014711283190163081806552651677371906519432336714505719519040194183829782350201846677084413139643959532878561470151237139922439682944144192001269613729081868370707846670963057112189663630234328650169189610884729489629701755269792410617410807268712343604581779212549035986429613955149561252250485123495564486968289753971020018869983732894617119287066877793496689611568996601341436798630522160816605272357611470977832147967221360869353411275246395352679042273711020917068913465796002961978873539270052171085828934240514147387824378048002972450224791415361766287835726753217113184607157442661334070293137975209700213988507746723865942402007767702449756648439111315120219773433835530915759685228232870920049742933818915385338915159483131695497863096982813046181720893828728566375358360840457494983936288918699655003262481301548876635797511680717621749408024198057382114350433736956799646749780617387207626940199625394858806831272154486472991631668645916273435392569313789242956372471013180628811265938325544410689262223115773139392543240451706740986457392520221804568184673565790345155339172355814716917286003571661428764805227272904402208910764813709553313254705956022059635245195416067057112022702274898502723953564774534482971369159751793825192132993667501260863470338809358195418652398090656082326729667944866100336449356022410408181028455722484498087021840262002180619672369696826916588568790956485370015122158280677025884720012032354506661843173572624500863371293143292667174646309896464396957179101684511427360401293642171628818241228962422434003786039958229197818341176142077756987160388196852057953946510139723903390435254504236562397461445497731568772871746930869281574880440270542544323086120263139953573327971332467714902996260863429681847282872600512552516329955464153066664286575407274885479673247646675799238810573262122778410513604598336396715554693224361007035348256068587314898434634221272796333400468151990560857831792023406682957321781214374571822551198044897592112581910888936624492739335249843416030542853465424165666144054944554283961296168389009250941110863871314267265158313588403725022256656418190521791951983440234466161880637096141549832793955986064190758509223146528610147405790525497580183684752953358272760593133314268899738411977067813267999253236552186676839364703916293095932253336876996806127532465204520222198754131909886996957174943033364298125226685954898472162335238676948373150598656315917694283148325544721397399999002359680865213547721858442878937138372931983908885959466716882268403960895070482613540220065640705130174513948833712239982913822049883595544491934626267517199091291563745033346605985806333572955901566985315382967077549359308410111305040301257097586222885423706655595009604477825261039667798515232199628750435346810188820474965451591507751960313964501999094044582740416648673379330393587241855515045148049801134103276599851261939417321199172289175719287615422722171690533154138151168024377586316546406310228061959295747395749029991431092479391386151647468938499108964833205321796493007620871176877458456562452292674235524457447561907690352592480467681554654865233591098499673443170006314968732776258672698492422362527949215332614085644172486220212335041479153128406323185509066647381186272825071706334259349819450995451802485088611237144140162669925722991898353515752561616736874711103833969443045686250609258320341075531309846626504468736124492966709812539629782036537547608512320847035801555945652878809745904311316609783900510715666975688880526862172048175248049679265429010495093435224381976820832444682602049828400877857498680980656223409657079088865389444716396105684221806697536706935828709066936767746788667219860646944092531048964542316440954231562567497419847464629671590699695754619542371252069813552498855056752039868328092237647289489751439726761845633076589184621002071479054137169856711777529435064427761721121071033066734088997909040805833781558254905818659123946885550906598506458065162710054177252253375087968303619473959237881089292914750165909962469353341220478370507345264014060755793097611793444688349514126943615935822707012748198056558470710076855430110890790216897591835429546614163022320510810751363202088531664205036694783268544739070527842350658856766708821894205221670972630482420834823927383433295821762300906775331328033938081154709401583865099584823683090221063627303894146138273198183299386132481888204234879413115231893977378382602573704690721434644949036222742648778899772909297472796152263641121344869635003714033467278910534975877934152090218571060955324112327759454949325425798266629408329084599314847671069070149942457410206645193142106988704290429081800325688454687021993934799061745621198751749722547481924717461949832884303196853295423538230533177202935305829579257612688886091601846717669585126619340553953178607422162855542827530495231407577083794097879597082749686786952059956428215942062829417670319694089543941536849281065722126100356986837986213216147058462378738576815846383961072884289097838809404887256025543748110196960575446821801897862161117202462250105279340574291043921960386334473028623388739082254832005966952869793360282438970954020350364669557465600530388248424918011202318525303477555166736462758408981425693870113915552332668043402698977600374568540098073188401316411452992212255050399592515780731745112934963858663091944989542624618027304508307218925834347787692290571951643456646741227542577215371741125917893115332327299555860315512275978091803113225177942613970739357236736212319352353796350719409241979190174766083727857129936642570701328578511566722352452029818043783471197849765782608004487379923705030917357107407274448339039116520608793001197223751055877169299281114195196468844310197739610939706427223008717396641779631214318957559167259845162924723060106877647114376642352116427909217470778336559594330009089095940319629319985717760269065322223839617127272409984053110829834125877239566227920878531874338175817147281444877205542508497971011414654356345503898527218832644418272172720799404376113593045659366103440245402174656753129395203745530626695395351846518485413168321801644166626671482093122513721163364631568925478513443860134032401708197044470395252909607185548816354587392614073018256692642622954324392825990528986025240826947209222727670590017200468788926831237983169449714678431970216828620091171618241755120071778667601343107198392180002245166409257591093561087298885834949786143798350221860032686384559175901859204045262814825492126587404466119695466740102989721698651518140329634695646415171840506387973281271027037043373774922130361489119506063296212572155537350191660541517797174997973519598436316628605508893467639379922742158473174011485378203146454547845424361467410451790549994822243672420478370801919928779200810717369387330385301182159300403230974863293374419172001991550382812304032693368133758195589906349517127441860687569685326454068037597134324272327537557557214851229559805824067086072177443070315825416779010572171539888509684448434585098923867239741997976517556856262414775816340161425758402157604951776021374075785926942514959745296606813996873508399831003695633050813918722792619229009450240490414001063500888567088130301912670886354244140806755741653341546204293976741864125922038309052408034326684544666285231106483096036647341959319602068880689412907774485851438969377245840539428760103280831797783055186474415883034464378955769475666485568217893338486362739385949088647210041744162580290733703670193317669443184256057330187315205119324067670955725842930235662834647587567450279175921890808450069023482387399218545101134646196474185001300118708429792004709478199790958483819659603386725019946899605146590231330010917826202430464518291041743336887267371382830121474434101919007233393079295868395273614687327784100923292687285960013083986583948151816551949628634252920576306464205741468754461830239866340244991217727773203799669000210856090335288967172166303107005991335830876095773304134919499051001130734787671633303483582383847018611533091991363105341772804586502419740762330175305590568716322629292986285050844174568549385367528487219277375267110893932040605592720950544308858435214226067480235535931710737904832741964159666800007290095062340003152675182587129071391950383355241073466462210711020161394987255248253682500525753191236176572274048591329424785529570524699764163423831620694396104717539874215698702184042817011796853161231319947140164870418423335664802393895774110468029706009168262521763529408780850491861846603746353451624028007693047132413303454274394795931315183370290768693601801803951761182625040447332694971223538910827981753780582743424195018340302480658984813935158159952844252180757470450843677782541290058362635681217138894327679181289460510630310742759499740284930844479874212828489464309147217395069976258424744253790663274429294880662096016076747895417259000471657837034738163898384116426869535436201420917193002263535010633708555454624864003533444339064436655243471645929214023456455884050617596370812986629456253673170920691128906925582203004857243579292688060088086633508036123879622348679843332194761559169069175371158386099212688904883042646958705693668542420691330972556128499280773988469776311486291831770367194229673971968380736956089574976997151627320941543119718163551185851197750788839050795521565065042828645109777166348908433766021860788258617506877644148246019248053199241525632564118133641178609840807990543222457006035350528266542993033777714754776102470490936265185380004390153743486894158330419734745492731395841569910675927252709953914770078175139347996794549343202711472424811599815553526995231498659369031511056373716304323228804359991508953491288947231700248576602839820437859282911259488336317247546121663170469084449866242622946627679238996878256693863522513553248196929512392094340664380632313654333350435160628898955210208926474964138757811735079444739554229477860970235134061191038710126083603445881258555518153176851916375097630818513906229609614017220708384555925932753506390571102642906958260953486908583794422005083016795069684724523598710739108515977641755931661964860801193821452821490875558797837007345218101630126088207369286630819681970531379469094409103715840341324444968443673621999199741941992707843217851181121862636266898091987808045959726016579637847604685407992100625879935194841673989456712977583788474725139758059230509200962025440243331920764991223712677491286577202974701229311904039303131621693049629637987762658597152424910765069544309845059926442625292898058656490814926752211378979948393774248057616602944064024738780752143873759529879072823139434374872895280122249322840192104865371663878342294108006952942847929097727275813896689763626068959661046316878953381425369270092153030788454403980427329797457426671199202151250465755886065013677536097342014563195138581107652583016390495046350447985053407862682415901904028599133963521559198500867378202699912813972084856868930020271830370865504212662624776175332616360295703435261008577496394693645517869617595669981631159269069303448353499382761712784017160166925389772407991575399207484301368376404848130395075717582330801542101394466634531964132849720145151379347575078942917130407936010083297276939385271116009853595517915941735085650601877048527718467268292948385909269010789757124345361052882620151116165151177252192109087216765920259471271459076277042265020042000976980038154167827759011649688510319217544584661419848907895793759178513752789355496289456121798180536987151264855117684217166492215416934948718724788735299538934685291420444983418136557748063395622778877924645737373040849635417377899496672429528953275431158280210991808279817500641476098434803218944708309013806012138636102154731066442754266308625005263212325321402942983785218013588539089807517058113033427437838571541360980513721945633279000998835412771895559122194979140468191832389936653160582312626745776037688447919305936739366819121047430672501477246473250953680684214362200562623688020697624775265250944131135217164046824473929758473231694704006663146666978968625273060523922538117501593394018843682934404933283837754014688593257004259055461326559498600667638041969320468467251203067250340637576097101072219856304179105192984343748527090034570857097359069337723911559508754151356842416281714821347954913461173315867693009177871512743490549151146370753709988987474075314447074568565479802857830368851679602317446005714111631573671631077859288886639264961744651978186613596409584549861629007516839889301311298223672500983683356654466075112022058498489290821077100017152339829500981967769600209974439294936968121852541708971121706453223008817856787829960876170473567572571537773350707991816331049646516771974702159478861152335578524933418250649601178160790807867428731243163283770776616929310146023500802640391910148677984037087096145523496845239071185216854174992974142360115901263255412387480377551098618464608318794414706307506201863508095756672020040649484978717671710746802892797175767263515228557913192199901462051961885585779563593593035405784272412317704462883659436017056992844509984226190074170338887641301030644094005984681601027151732945359207607757251867859435825705013927308385544621850301521422147410754373582398853316223775036333626945809040599662713979471681425519495343151062142915959268307634264505377911486568974069405704134089287865146022868477603576240293621697700032992808317743603878628454557602518675718990632487261479930335837303379648738821624568859951032079877206249253072136963328458325161000560428938451794612992784675687392787997879175841023262240623573998664616958849930402101962171142687792446650622339306336629784171312890915685851610417477331472988402518463822541714644473094261899737635748553295465181054565328941085161527383474549859815387557581418198798126847854164947249155693649533704876930122067948843720849315953635165066316453697253844024920232934441948545544819668803937748964435868760378963727764642402708380259954733269002463224531684919262966831430814889814226220045351074017548917113179725871060684274859116085852322816900289526862364294708837128208965052798395765871495156671338667844039123663035858991934043871870465369955285774417514820421478188164906099190358368461303974379530184570676836704264288390224876136402754539488241071942914907329887308714643479748249069987942879063943956020797163302007258806406254578400847109497099036855145274513143458523530305974166063851724109384716140222404811203938472142606782992681398844188395748300056629530745671834180450475163845071664927253314509291264329491758075047258566645618628663656150166552199586122374588322534544270024945480445094983005122695205890974199281144549997205804008969215274557004498060265306466201895940723366710732279297502533382623220607417804463647552219416686842542113240464047951553235071932524339147622424978656152903827154817007084712024977842344169014984113627848672254059928591118880790201826063620861426780481683392930282020413942044285004895670684512713154541534746817619129607519702373492239605846359682349356663972642552485346685856762676563376863226194092227838696698973000935485885362473815502985316897304729564155470657421107472270512671378101682153126904489773323366626982151268767195653331032482269858492505711940870503170241831646428956809833615585792841955591068349933153842327149672355160125494281788693166262819396437718505395841709631172617177909618803977680698530367441901570514586068147644619988791438792831851345909612305050291995789416812382657490870607323273123135797787638741070445786367909494951190893134808081985459227990746763197475893531220138361838508674174554840609791195967300865258892354109199486721821468244514966462576022516396129566670832806416320955968143851217262345452855128158236698195212360754899996420256924202285838295729529386068002941580353806194413742070759800461200301822723564018300059307788581428352627613910064574892080330794729120798731394906443431893345729144048539749335327042930119910545835604171457804046558566977097819469408494062105146591100797569719299950462568036587220532136758786382969181327985190088137738370582908201526386346864519478282409253829659695308693284710074190419182219246656446954689496536735024880663061226191920945090603589985705232698298160018864651952660819153594960595709144843864227025733283683885296041644411353872167155267565694047808842270798785698245410858122794707180629926727808775645202083217810579376211178181216123498941256845984164237563301383097639671463661569161644100436998339435449219019797514306671348407381878107952237056808501026460478072359970976681491590732381039744314680028917598134220098980076828021230115662472615143696733582775562517007170461674266347715984284915009877931924620431972674472916587306728956086597893343191090580732559765060189815195430722905437499300995580510822818292046706973361211240966397286093210352079755336231528316923280140140683277238702099886814513594506996786703159785903736735955259543688859819582937041527980355824632531787415042377439770955336970828055441683335690650113018261019698228382697221491999934388966220667456864673636725465108973046783704169969937175981770730319248745496086927544418687383093878629615607012354912288431373494243555107336587483809507379764851944777545004591377530242539886669960219813693589949737391501414172384720306657370524873462364507115371325981883853544179980644640628851208036877922105225631226261233449231348223753779052093452747956600440625868252970756575380828777105144925866904878709172888479250296822576817933947846148368890955412321709877498997167148618747668820988613759041250447656298076239970973327542411029691993814299205930399720219166739144042302213684587283124074625788855212648110119095666638018721922219783240764649590539980613275099281611823806584453638762639748415771561887882039950890714813491506102682214975672283587775437642506157919532505149056948364922153623403374944019548404254615789185471292975026410375758567021562045516300508973089923010308341785469350539441232087684722218888743728057199950135895963635451660376524764166675255475361621405297808892619281223083890166601337254721920411224570916737771309269917454515390494712838167158323851260106360011752817332807041272138322866708882172307028799862390324493214588236935459242107851972885991407868200961548811053331086328023900768317119225605187068093914093666510710739692561373993597493667208554487383264439990391463761233006169260576947689378668726125392070482092177184077473951629287942947880759387913245893175845354953157130928842926365894444291578565725015960138299335712642973464299115245087236450217329200428562803116580180183882048322602648425097238459157096900188018785153494307053999401433675322556787417081117231023924807314406987890076715593111952722025153755033867238596760992640154131441888113976723469689052835572396106330263792065096038516862920817800467247656763521988045540560401945816418405202113407102430035601367159233001776970242470945773413187156535559118823352268922941244731727417722487136131721312017454676670106381964985924504675217195213555619313417916307679724830900536919452268665538280993422127425638615115214285075662536599577319930390696666855150377935371334324017906312684665477233905697181643549656157681151722764523974833314841403385925251863963125666543315339054870541393832384246229775452252388905674981741022263904016092415130832292639864638444917406348958477193512133548469935109123753995364494690069938466607042964321574261253230012441364250271963222012692724195132086298512288642239060686098234527624174209715146182917815674855759916496416869210770526888058649181609096908225343888734401365138857684654439993268260535160305780430842990854225431339626398718289339170294164721200810433486753986749444621096362310124141173923371997783532867495071341371375263146515040861431534492049693378926433303551560247140862141987790167125200699188944360495944772519684809550040933347528501839346421154108388230762215084606081628832673988341042982307809373703206364748309573212127205004037663992049333037101149681774148490602308017352559728180160540492627481019675253801704789400794962743068576703240326450722012125895109246514376859207031862456439067350033884619423634677606546117312297902738459591349870281421445754161519284435463880473082024404425869797389870304539432829059662703996673826025109916083623994539444933161724435375784480897997414432767478797030638691029832871697595921769407213767002369511512681758200515803349219878366019923862530247149237242603537641010122229526381470087508310272783711136337301912826345455156078917501185149431796567113692917726626847098947894553288870130413919592345796264287480441522698554745236938386380421506375221439506041256530643838839125517772056807728988520368965502792012700384605974291096487968032776606393356701189258210451377496925704021572406504933163535295551721209884005216015173055962393780032420794298230283585840811792080354051492671385042990507510455206866141121546599255697448797772666510015038404572901736905225841481058255054203098700374159727505421872132929592885933357319036454794552094018778283655499965554321606715420597460352820377475872098172749353915343838325228520776067469205759260206419759180847900903802784165046245284594731338126407037252770279958392870176651930984998678171840893269474351174630453878879818263616489308229127485679166807509050546918935701736016206519247897055235808963665126610593501687256548833564492325688508161671460650297971672375827138540576383866422661527985045786177202288300862952899788950672568924677114018942490020080972050285672066382623485995879812589274162391924925963734487129750655751174516287163277139217918289078272262680278962934714449329330582514369706233906645054548824078605831346660125453903721780539139631344573496822364884673008694338021363634118807817634230410822317857183715409281031133947546795471321449604674481245705488970414087344504714871777079206642930871076690846692479944127152640273646929802512504895939726288672122525789829425453822492998736823904009862477984815947785280362509295156610404474266600738378162705321633620105036762348334006917119735248662844139371863817289401451295328560062335435647354565499216440841224089243095559079281244655980244015365268536337801881687163786416773336480872179848765452240001598540121084882923820004312021996925457615965333337603873009936833048097293222105746683797861490869443620549665137896645405837570717237679346662810391962281527299127410345554107919768707598602246653751635762705880526662198621553817010365089198569642788342579963197144179682789549380241833307452518823640735420744907543294743296353781590408146277077672792265611226359344979878619554516897487609039074617493371555465282752489767960223650425210307256557117936004388147951470261114614656922854722701331073740224461721039258348535923676710746643240394255708198568490767628517269398584820413470358370067552497389253637331994274727263979286764753804169800489245834786521515871136850797610494706545450202200451705650384441118557529774769423051044393370120471240605640457928303314516848167532493934649101085813290774626470262504711899165792224512210594698361404400774018426937711662323478092456974821711908622267977631871803736208091776622559304150664580292139393175162638085716566043161437422860553297807561789676399659230932307790049684930746129217217243912997784497944034560949196160345992936389476922078774837415714926909508112457152947058099336666867082809728905327797858526162947334371233606265790187197217189040375826061679089910077023229296734288410084184834929980749487314570069870231286937331286383336904411385453409395709436154385923585093625100527840272220776115505213853694223287944811393628875965645814041322780759913968068146469138322260556054038095022604678661323016087432783295977925969175876335913590939503793674266051297412550213668215365255510206766112739537449656096064421703640096679641309568747355972047158123066093110700915448273715909478282874565849825039444975449372481863347655935927260231867960170148192931526296960859976806236263533879958533941432287339412403438954771524592316777405779630827455858644050782519024496612658919792526405973162678059034582614339754430722649285830774391353552214158071966157338567425539778574430802753443143365338382195936688824822984918920915212159124915839577889704959672981169618861752300605390728205243440372211446145878698754786225688676955807444239810322602621022281183299279313150621172724759669551616346749949539872531703025848060686294317527823339293578244083672716172303679495251072306008761320398180547253034844660309354519287987516942282371318781618060810236604944870287252089498681386300442300951487390342807876174309437057437772738046847970911945661549509767707455944463029890282864231415653464470282386093653196388592464331325325041377148510997152654998284711804158318378919186029972588593216234775502212101992606103646357164006723369690793769456280361997984429831213518078521945937028620038618971889711966191885788682085303483742124206818067072265942487892712972068857769169990270569288303323936753137866921889254149222176648034188157534258115501899219607642874924233808812197234577127830787961678835743055728731773392843590530996444229783276790773107694888745521799096839976637874951902457503146590978585069337197769342030764596693429949415439728406521510013096709893625433813006962335485594864682751955128347475549553616803481244800579258552187618286333220861274989064428734921889985176183935830382656007398070704673767893954018076150487752673330525077969705278764018858428350858724351651966562344469446347204938993045775865236105626395138038488650285102611053075369657941936752518031314217000680684316200303833728462052758746380574390762109924261835542603680986544044305460871303583440440537950613180391122743573675167481105186447247674625714498130380086394127937568555008822853512623650709919095561686076762646146628840606913523327242131557979992479881742113451324099210969482868274817494800664772799790852571414770787507607429513699389743091507483479159860382790737566470912312958846113824237885246213773410111720345103589527857595317299983436034559610702481489408602349570161678037126299279302056976606427038977359246729528760246038510649600470686109191560515986714591447301003811301816132397380544378542913830282789603552685154830873424773388821228992603673389111404220453353160266933954881986620113849816257137666163173105300607809634105466452644251369400060384112277361886200923909647680739839301967406421916381707318714051013097745766917481421126920028194847120229209852992668312608471604187675852148954250561438059434984743359554584369193742330790377799983844388596473187093719525203865671357551166471028569286480068488596750457660110876221419671386864940255969315899061457554196641261290450783028806600054879034978900773959542605923487875981169962639428018728957368712040618093394401711155252557766605650746851349207957863648923277449390002847717881071301099250142616446457161852189739628927372516891675488150327486161439129439359330426426319426691692594545413532439187600111232680858293837625114250672710985743790189724095645330437738927985152446286304002861482084317002487733458661801822393991189856156490940200424105690345786923830127301019476620532328583593635673786489022126903130131801919587925553929599716743376615898671089787663745913371588109881437037916705012081485052450610283635616008707645781337578870915498591513760521673102873236950022646219898008100496012947765798229278534295439789071323380143041269786363212723149744384875745342278872534734962634950801562929048697142132182212969627717322522690913870171020853528120048441931940804311856446406809872197391252320541465672519016444926300282839916044427969531775903630465359162343191302109662805174908736978648086222121704821210036620013784418874134112077979312944346106603340648740120963847877324690182339136090735993978630244443032407128070017997528772423620312612003558768190260146642008333905861463301604499454659596645381679604194623192657789906777566188006415232170484059124465692619684068672753545644073104666231503360452852447964998350031604374948492803647456151573754428153497591134579102016590469481089885584081320526811765090729410198985229540519693609979085386729025255189486355612530355308518721719971752174871601356846606940598982280714533728532492220390538835606446329160501116497807918345901800245724129640279990672248606297819721952823785413317587584799450250668858878596584502380673266625551154489545765050459317160455103071090991584909069763429369670065123843696500661004743902945821607932388329285123384323692545158914376342753192967887191568272140384290261041814267252521729749250694481140230138543183792978338061707658146534404973131364359666753034205542773719422797577128603831209478039458718477476560665380956307187640394177818952001204227677089158272867479932198456680116748478761322631257508635817673694899550677387969587406170604290155415945982077804462456266732029805518983283475919231818526751170319352733121313032723760505255590460127968066066599281845794288029927406018866968174268573401850932385535115779659440004579713684358811402044803318849906927740466692408298822770626796023356117674632572631086329313732746530907336601736049819287404509099354989074771673306871273817413930585082569142128058495041372854671232757514175398058296973951101463219722874661289463435611236449901308533463353020335540575895964383794996772691808553509972387684869669539488022091019247642806264852657622327430108399334763977939620317901462034198218684827193889306710890620453106421898256596384841095591261853338241131073268955048212412578706662237857024373911420602845804480718201421701557403266654627030314346426343460441363085433697258921228315258671780751535095254150976735919901026311533169119984500303317338813568625345254240924854777507306491936598867650155906361165201272155342862563321874676057742151260949940961159640770491401728667141464123794524195619429586651868959984289661596450698627599413436268866593348148636388335098418723819998734936803803552418554988868876511980041505348895522476434796612588211374261118655518330815349242823450578622373800095466312299357078468432963847106215075810353295067206977163580330646805395831968187738251937776054205746547184007893271602291033421473966048990280381755546472119504121471120058076127208004305954092483208444913376087108386774282420573555273920248906072470229028192237355309939004010894483327982554322158924489082408760965417623951713240621013974638324346090179158913177333570962767678181999331458090532867400493032081601995366623768705145096016450250588329582723300787091615976679734459378437709120586524349527398310505210489889348818759413613490430692703966888780143607837518254415135878075946583889666691479992072817411216084376987403073647554910683670151547768220814656575711162029517980170979972179413675760967326298724382799268156310378635021166336802829088880699759045297812675631023539011294227704905416648750013410694899583050446644737885531401638165798832999675430117979211169424225876971811530122206651446728144296286893197525659615386195496451056612147161678471894750612219981054412102697132620576651366111084206965000996476547476606070778005565939595298225042781182946384379344031286088007177562788569531424689466700152575152958859527344110691887642498278122166746289077827836920892053582511188167028432487146005447957216193046661071584149554293228139246935698765789416525098912706996734818117925410640685651595907428189083388189230130705434173323729483146440912563705293120682060903557091339472570905007427868850775362882795224883601581315089999360596839758950186015398431780093342411154450390403931825462752253198056180383840243835802886459140654495521428392251135024389352390153787108021513934166115326728281533001609989481253185529601889212775352121744636970502640594351539039532318404641299181198290629529957235646269290207127402640793537772287059501523926876228295784648591191876534234723850028293559348590598790894775713412096489503304007494753080267382337270768421368358576184569165632819584120507692687736104823751646574046788328361026422267954482929959172008414810146769818097201716110103061221033304765253391708580294169242197037951520520750867155334939833795193200332224810206292611681063536190691300015016333550042548837130179349729780322635757092497585437197118918414895209288179580902763441360350333398901984759481825925323368427397753817389606570699492354175794368971208310999423148316870014906190702991419358813740709024641659234432992455108475145400822411441115449783256993706890712988033032247915644050576349878274739692484473378020798560776684083128995075554124040132251919912324986663578739687699432038738808196131696852188774733771589065115291086310225813038826071066377030270134746136276096480632174798633758791854069510378978346389854209100273575438333062493996735225591156202438178229322407847491700757418166066817687127756440657618531038471108155887704836132988511558246882209113586164051072962063888020620091566296132211269262168336208265618697129681049171471161367868225904778609369399418492658131983130074374120404972106312533800048535260330430131911479177285316512362367404521305354571292291675117337223736342296258881366359820298289758216577809468582693319175308994653954193638876324074007242330277879956988601472808201397199210177822212616872856742377971110813879520999713546483701387508505723326425754729923324075532785339891936221067650712163203118369889716651469698823338288792325238207763485622060602797757096996289658375932042216837471996880845122877786634042805272561606382916967260796203799581866425865302123512981787412521931056009448498579594425639845206573384665632392408074711029813482562014557266592534090717377965461635345408350108521078973793370316017821816220236463174758918015335006860763854756753458354992913256767224557291772002589180514144792881604795606776957997075073018392229392995162823983115603633149968650569890205197563230626556729193586408342843043989522660928774716445517863415708776696366635252165396997548114565528083033515507012966980186367840758006015592488488434542313323463085471321389663354132800087959854773834545454407125044038431579489936194772765440574264700559152680186447414184280780093072801445781878033259384842122959769054647117038853790194381949589074622908632501852853436400171439331844672898554140385254698310567347013831062099527703042856751797368287170884469361634433671233281804570383639261123066951030278314611302652812416890806843789626845971747630163055358741434816653516338086243531461846264010392621709261909048427199297227982205848960882912348253268273409665722110480057836129731996626150069761338796637072744430689812352038889292134386603679163088002384098181955541395186093933522050497174972147983330047101192843597296094394679693825059797564524141311091955201761763411514028837193172487502313691063509149200597012847272423635308005767729508366995275451888653217628184185065891452046736196857423010618638454600856251008469624255109761974875260016964733582894828681122124348386876841580899314932700209986084789606445924847526493836669079309551558525333427460542942350795701901317447081397363542113941970965571035593996487923532215479845559952387948899250144501571914438768883678636125744138019893497879335730109932647644714584358748308227926077709934363767992588835826026932839401828293990677644593920505726473615640990507144912562250353970303826721135910668143046135295599075884474784435427414086670179451239798033928077286548425123530478097795991499646109340639415019926464383980761416143483682034120068391381756340109377677123222299401951621460442269618557723224330579580239312560765108483561765776980407523760386298391445199223837015834866794178832439036230896642462576188752531265935636138214770486090358579955019672463334767122909444335219299523249736194708498790211570953782432503725859081366682173125857110711325138951570770629890517691757843861158019933039909228394354518908536114007934168429803963707388128430605172934634966069808841293032727610208021029131060390863694296215570567249189624802148534247000331121683636057827313300109629301739195881257181249871491035238692115347474940310339020579342457023418114564047270942287749413720001697065654850567981244622269512449585452409249031325229585221543227389795160993725642284669715506931148129085895471553623513493515938475469005076244122051243824958617343694945053803295578727233069501390780352278706247234460251997432499503544387477133741325266798599764818407606715173789969640709186291421884190423851326734356116034912513752367296151489356002196027751256898630146156390606881523618191393819048318653682917772684039027149373013816048023328938868562774007493069219048992170151076371568204629084522088817574391801877918819366042409616362222017559891486935690842422626895238985821917912101752644737792001141554580047278096613077351255578562426370698857161952793077365431438825069014491979006553651202473171274979959869761425987380832533544600958609874528312508303077403547535974743345091300316906669734232744032286857672249029585504700638212402437330476405079139111034967401329104289056960281646852736744882265438556627350826612625909717570488182803289938064599469186774377139193306783038280503325181682603669016892641995839079463236557105478367044181299383621121830036495980713319191658350619580071272389762896093233624508361388174856448479422917092466650111174373083602360177601571682528049682518780977881852127738205440300812827465319050154885341552580490794550101901695707529397607413470062134902061785923006197827862509033258083535909083646736980620236837397318539607859696380746375976138976527678678999932328003704543665680835718341391153574142740324961074042094110105689226075712931039340221745922794098884669821374837734207297341731191333519046681815130342017449691919732474497582917282373896707852216774760735422971280565540321555304773492820479143257682914104715050702571192358581058198074044667369637535868185398866973333741025179771438985422854527012381563199050635962289621803220242306486149737621426890425145469105755801608918806110210603779162453271380074222590750329859168918662575211179689414834277905598533832037959891837672369512470629574972374688680293783047443344786715674015627051372047272854685111434537290359969755682479543739130003850027531960362077175968612178208168659268226442123125221898400759320088625170770033184197946645529131779481745981807075585468938703274083988347756381900154970424036311054382576446554118484976250772410073706561737208776231786150509939185849489063690285885610903674733270014133490504693849446151213954188909783163985808455496245393083515715693601773774399294340040746032905294247425964629394156703256209388789981065086898941829964311269432209309537440389726515801030135773923687127441109265229112225440635452585066146435219059891708555825419637778906471987382136152509455775072786727377685456481930243498860685387501328717508584650260741047589482142672928903726040683080919375036224513983715775921589784462222641143244374680283719992639460482441923269728710166817845461399127224641187184038285536917393793957101442866176442194151468461626476035391472405768501645223004363816630295871930960683653910446041179390298404841269913967225995426580789019055383428917347109701037815627672691393202106336227983719122061104485108882745027440129920234838920517058257079416722112763284646476846152391061596490426832816514076506305304097356314949566913092524426988793316269354351754511419238324373934217643592129487938152390568337231732845707873210523684941823920762332766295690694320356495924246913388327802584271846497570075611988515591857546789236455858382282442395014096569366525459597729768451693992607792975242172156465875882060490285685929054329508285455031722102991988123088815307642785299680527214611876362539950659312933028349882221899265721197907326499184683501538335004721363691954769579544557424202183281006337865308131779998361577623665848759147698787949148789765717081146446866098430993654798381782032054980321018570956740834140446043876410758230205111806160197374595125938006371784220560657735821661757683587974744777732361375496213974119750528771243545068436791000189319020077381755903406263256967640358566085607803841845268053915305279576204081279463860545157361485107929476310376680773452327141071190788640583246098125587638846853616229878271722393658780490113028703314548303800050308694403727076964151902492249375415519291429652828667922254772885187598447596628641161376377450816330120187809577022281229525395688585821522473243605015930694458181562478579861771040211121640079203158555380296371478214861288931296304930837806348296110478570919898217053390787913520047654505749395102196843452748444049037261447287555330450488557431465564806769484782687871677613481552516317771107964254809352140139309894103029202623719355028768277835889411207746848013222979344539647547610421223407799346909575778513020157322121956682230579443588083340577740791454711897047788064211779658013023704489413140059637785036347830609054932733649666115045476474289054191359049129808189450512614587778384529941153735488132642100617976905116203603954929711768518270725253386701468017096150141740485196010442643411896784690622943860034226481433618514505256771848788688411536095589565348511836361152453756086409224983473057612591984467367557529952925364513754718796794430247510766642120858108883810554058479257222777982697626042703860619548010513202625097011626607292870825447888609729771112014690658792928869928622113676596243473438298743208346961310274778115157010311052390326646891054635384323012630708521046848998519770472940431351137814220863606006962033935221394551889832560768603569496379878902899534988689790344784373577834105828192612828854766030428048540684488652071151125719841462237596179802899138031048385726136676418429153086137259755604845266045378921287287077276607509159640467292694329089620504513113782538357849881881286114551478922351593923168133946705543392602120841560213843429233308689125941686078764158125894150547222038120107007746820716592175085428405272185969864370893198845052838254809439901940115088238322908786110089894657498441478503327707382847430267045984541632080683751000744853647859616289638713550946597110120201897292716576167959725041567828037432333512383943291207052908039121925742258961671339520787377484614480596550792665651605464215514347897061759507708692363308152992410955085735697027680655102204195728580010789933812755176656784821237624292641262672937045801567032328293858360453232104815317082044018697983768605502605396847257419167920325815660572175626197371403824913666286709795302628884297278076916356554725887190829580445393483219652147706857478600846843377321584578765245379216568083212316343279212621190211979967149265799211877743155162065873658031132213343183964967150621725403940666242209437627630575604174959164286599683536687899831921098218533858932369955727422858914814953454551944454332705549784448369755652886872310620401098992967966388327215303263390192723421547898407890038670212901908032503287358225252490558582790206435664207035156164975057752557665362871028346001311585200947006214664259281541718616048556832967744951280510765766667843425821856727561717577315257977739301860358276533905844619658190349858726516013759352217583254594444142304423622423036306085077352939771858937003835142034921231749874347863811839329543373991617619219186712586109596985559831382318419703853873218412443621547345484367514513483335851545440661535068959052656345948868990725559278513245711519361754668015885060731727402831479717318829467136233713523162537535766191761188747380998180614938879278971761453228553217556266965862077853625472633155876212947241686305661765353380333524349351335960603137695476315382715248426479184040670455475777816307653325081070024244016559982895912651371754517213552866525611852111512142027112137236633794409127711268473060072510548077622996825515574265812096542859123863491896761478345555230329491610778841689964477543964507180022618181536602739700542035197894004904346608729104731206001819047558964035165622772356519621527820809370200368092809504618558204583841294918788531269058313397839667885312205596979192540611300228933411065320135056001871629188294027945918277517670036245619532809142372809965677777106412232205190275033164038643529668121599022154981066270400894057532007169908321093270740226380889624728800983804536110499989818909756587678424132091026220363797019713848930777241492246049598987975949701071410591044565420785259130755958989775392232038494794906950179735991202362761187057943769604276373154394444392179329640607806210371615846921423007213047995140621059315874521504787468109600777997582720237498423388868182332503745299556832702224729637980655412999002531026633288959979414445369645905555434431086413857906788422246278991536535970810417753761579374095142017647913339732020878350709056033553084334987826892825131204646551417903920159303721151967464407262882767234158194297610695654903146552572232222943346833323183267963329060776452500212722572020597176267682143038926538539825027473072192063636024665467290252313616479689270540367988378495225231727374925836850092141506238063678704056088198652070990733224163110386622403590341632484491401979604862392211755012059156776989559438503980183461696928083529133282099747301465664329989579108054343156526315953025198973168870650289328634108508408408584598334784177836091657537961665970536719779240391074604242551952943187912925532354811372031889133486151836242646303319829359375440589108263850448966047548304848307488336166055371596283937681475858710267997477139276179146291495411468715179434342291826164320153164802271735900470970144640270030940757360748479215312187782741014142586946449451798526414072832639755414234439198729059213510747345592522415693084436783909219475511583203997717886212462082329522141277890440581382878814274051062713799172534369152435832161041881736678449165942387226405535066634513604140668648723534534052275355022867287896014952954625618311164430272974886845181047113727202744365102388944892923015956561658080032216980017631108313453312532777158912993369968168940382481851988254750383021235028661007423633088752600268314557530446057873339685305754215601596041331837262805778420525111180328465303114170993422097935910592686459492078784085456988299255967411766782188916804159148145889205100662362257185361199295756522462696933539132544334832593860589120830735402307165961789471068479348566259726485814924163368951998455780683483160638699594943312582275986120149938436920160352533837428275432164068545808765385708886705739538824988779072862613236970044563471430563514738024260529591619250326198157529052016444377888334194627529476489464885521797700604531843775314905638992587109854300312951746888450506368735011646124843287455685484319589820163523879017918640278183171050818460086768161441699668901560197200423072645383446746580973886862155183747049556628896699684692929874469779146727061009529366128041774094078930433967975422134703215628870717265133051381853733110905395730640195931793917361677785823071028614255258283998231883177411022393768197646023157207955791404965799544982080945106082769347970376105767398086295516861120498726657003895810029862526520270824764851676024540755578929094357519437847274910504933887863133906715637334946177832877635113285854030574848030184162279018815499558048492760758363116259252667405528610534888444984744973460170782635774120994358372241776249215757832335926178680117161693504550563138490233362355050459618159409647231698832405183775450347814382790440673333938257224539041751175092424819256802397320364256126516466044351467517497421513442425232197309124851293514135990819484216613974892645833646578894612965698598291112787864413205097031451027733838566407369709149298929176870689574100340903480996029436898060044061788881392696091472903690049789139233218811351862749817359238538864764881326692742931088867853214798679954709227296917214336838292025864913798883356917271454426530187631033325392666419555003532235133892517340249915790089472585154666488444265410287731811818270113157152097169471351831269939936620035392864883915537191532574224778582145849573460397449211476962112137217986780621510252620540708862076625961967959148969389562681464842932184115294776889431830627469334266627043848665487697428265812519519870249783831592686220875836879914159746031428571724320623788105698805395037288255897704042291324760726626869739866915903800583876574010153099609794915941170211194353108989447969616346454314664470457785189662572475885719603911840624418507208328321153789114778481170469840692242788747417356389892683783311789591807217842609245128084463867558334323352073036701136200311468020796132147255236253988306090025360632709292098589988520613707779966688191356004113029576133636716554576834779200681295358537648547604016309947262058034263495479498444070810721050140252987897804728733640312265538982996122070302842090357475710429361115393920587342024166227566786717363503921770652053958282721118104816004146232888187206106920866886280253010276362536198779666943823309877627015478136696724425583714464878007443048931196660320499055426004086522907057465398595902911358942380642196069904047649135287234464094627611901117721800355255949837320310574654150272921274145344815464522812868426879577179597391633941787403408051275085698349511628519963680429716565791374182287686709610499954038960213535159468625389045225723147253013469745844592800546607766191235656656284749620598057762466227190438125164610719247197452816815758382326717236178620922531860027988019549225876181674389067654858598922542142447526181395920107966719324457781129251885954145715933696200396031003106923099716660657294297316979088422966599089709789096101916563039452698685682441964259910454036061163507627580186032879178449103239320600916938091212027215872305153781441674526905389432003885145551637625039987400447559603070318143720373758031748143473237967442831198024618415466995215107385450969062018134372368989832862312514028838247018523029733825986654248297572204634773286660080041728288655521635783352997119290610588740407701408648416347828388728485736234729384109730873327979485127879160787796168043867428323039290223910063837555352388870776322240630386038789646470447410570772158798313432556285555511475628082756415793257862412920063499325678668757352029072782468206683714916713349972737427221533724496220739276033783607379420040533407799543797271896963377518942514759001544783786837307562465143316019457270630597943174059028235000515974774477287578629388128006737389308728197351911007296718850549268139733940706078681910463627005063110485076505791542575318452096784982115431597980948799731216712024867232478986867152343043586158929892452269129810188484824197883802191744342850105772961513236583509959021075051968632020134547090937271980154291072189637862593442747911262100554128861205643608096393033907479869036399262065171998396561783972562604383737693392568144615284327987373078822496232938202362438266494434183482952015902254170252882008740517733022952851683966805970756461816842041889892490336603117842190786347876686977890858208236806703383896017504714028911172276904738460779407556987923156694930119249169117563743044476473890489308543129796309850435670978712883479682783744702913037189850840342534855411027946105512808477278103471912426992752774130412576533952565840374025127232923648947579632410289217321255392905427273106496144422908054960539175358348823244895907651627884792073283482897831416034975963369055856118880786522161546773947788555223099440554580025927609212515526632526658108876440608117245132054401981054199900345508823228933566857801775254120982858563287816491542736706443155803778302353772910229737688128154037715639318832833303208998614514369646448331987965525120121087440172517261447126074216645067306914561043894472304972662282662292665442531662751885400594313696562863584841872526971563709021014089091858916040222897457487199800059336614769851099048920810232201177604687004738157411769332645544672427896625582798258696327120552499827954454419821991075480510928204035287381717453964410087394569285839294059975178750928741334658585916132355388118383877619328995700654751879469781097094047550783135108766651612175047362396144028483933326004148183935062341959805319814463768515195073052130345488698303785697254739111616700953028301826801692179143424050784413899565587988337014012777911828196683055429283291925081943964655637786553011300482884916162688870099598955092152844427713390202322560102015202617867009176678187266416477117873421330143331915473577440704982566009976049518168389324065729077666977141653955655002293972278942672559454327473899955018071417833320649283001863617037682595402953680013118889187204432782092128781392042759317365933366862259889458682441588513104279512681975452096524432652106523363588368324783388146879440353533452988654586130941944622247314524614910512335218643671422755117429985207329083595868548679097920578524044244184382410214193800894744891921510609018303321431666125711108092422600783462270843549996776763144860858585626042986677792773702769261413548999118151284236688305988607043228226599381256332251413226986174302248781665822910115573151778529362924486404262407420214359369276948526615936849473713664837286363290216335256788413687309428637370590124096668990386023765786174250901065081702991513373111994541542122161226662309855758693257432215800409309302830659865082163353527943548706469949512995040592194184551534865242106321228946460316688334428500131315102188097472226940632867558341016484639466177099284022868686850464779875169171704193668417609557393373140206280514220247013870441829903869520781174596353964546002052819057359328566150144406967783990341016441857427062396167533326165461305728115481187589972439929780418478664119508481080198763975705053493486616618429398306034657039924774899469978928997799644393840651775018468638005349084820977755505040837316378638615852347490256949907983133371033667330752494762488359052900430559052318293842169048131644742376595177537600223888543894464459817549550867169394003643559544501618440235973538568977587178958383310083666647321179377348297700456773216556292774273753861256949035050384143213849963552977932830832482670287692453152460219403022222865892919589697484556650926603129917174700406664665012525865529234743665871203383441000194142230269562836464759905838261121581945905284474600229522412440518017687927869337320973063525998563216183346839161140868970861156372550457858973608000027051403855109917925543304438973750946714413597931346588221342332487491187444049537531050017494680915406254447197247881190297189379764318733365191002266736233838504163704895536793936472656148780178356202943384188029672890923026006892930375759806452624983133071410278767782473974124302530419067684036848110363821867699278300045945827901577363879012634976370932317665331307472482855042988393863356214604323919469294866162683975261741417025324945990081391278231004654667571847698561861031675536725609970579988386261871387563557934617653697577422448871009821482015339235732042542893056394622989825200102609268677310149092613035460017496308167477577204783931950315161936161262279334793503486809786752297108025008651482865476656601553632604493803672420518762444214224623752065521377411244226403054436085265513982785067125982155036348373924904485255010825408169639829466792582517523150217921644065198750588928479794745353028761524300404406485864158572249733347044221049452350913986428605012138683067812027320397118536883831583120523196403430289879984293781129468262039810525779810744242272723492855664114305933392767775080872897324388281060101881476106119967895361784301156835600361226032146843228634567656195724556237658463106067508106816038375801251542524938157212443840163991727468360995007767029824067945561283930428564100275306397378229841314506572145626543815538848326235210832954672993622588743697452948400540960449686778061474873361074624714795763072359550989046963831552610500144088548093209979192141460516912355478785977997385140929725774727243765077994101695291690246315387242898795292077240994501595140005757069793394459383809399886723606123997324060031681215151529239959236911386536909932441848377580160188608169105997847858801361956214276989558410801820282612223521577760397596315157835674275272055892244614634812131714932966490329013131224196881041690749717377803058401543572140212987149480095554609897659476267598852411844556987370116607186792959093101507829733031705793263508246739750457914036922503786555065182193384160085954411280872433131810320082288088189615597773723578956218308728710877244394826783968722481429239172648596157440646293590423268653665061570289832414378056359463537001097706959992556238890225253041174126601490903002150114681981578856577584224598097540582192954365449217487454118915964824994739763728642120668545882249395728560583102080543433803460527550876628027981353548274971743178674412469456054127163140074786847059759736590791830102226856226356768626573374993223771783365488826860378749202624415839529132544316591268889868429009185633883471554700969332161204095836620127366788063856703013302858767963840113043310320273886606122639828525116552996433885753132954980484435478847130244382979831770995002626670043230760384899307825642611700092925648583649915003068841645118063227024220192440055358119754923078077134614534765186531937403755995206973988209703457139440507418352687840351779484472836716119341032762025385498396683630677028064883660167011620091489434468291533052774336709291496441882004451174660413398879875442313110304550103672348414295463498794562565149231269457105227001350833283620438565754308147687547597105128217728959417208393705554419275366167858041635559291925973346457296171003670583524025391118731881539947374132129854038371447107841814268520476113213704923370863379888279753196346012097728211408586607353767002837099105888967004470773093764033631321109574962909215012596538102900784290922207554008241008349924372541012578079358741798724961057981247239709401431580087823765797587249864362424951096182163888157916930868905460632198145327607043658627103101392962348808118755885977513957366120214887666348021435169893226673095330303390507942329428942333696421230440858961270340901893088827839089547149424266360735384890354915077452744839188478598873511333091674562908061080887145211939827869921464518868741323897543337942804477051695485700995587027504524933535593583338998831053692595608346744981877280570303462406366200551173719230625162691975797781957084796687095018582977665911324834441663175182869025710337079275209772397709090087729625185414056461053933608129060502387041530778382039074395277285000513891828990635174858211588248076403348194496889469599130149765076328814818975964041631951043503692598473265230210760692836945956108771335698621642338707885436875992451571852983153107330409264407523077092214926962317973813456342775511328840768427954319355619241224648569029094495150542741704313595528000725033106013223857694666355478814541667424585344459916773410937962209389111547847350967257553459003459434570133451552429170580919397367337547805884292108426199136399253376134126870389462050739131056579658177929584645884414850283010778243990135969474802379010007507951059646980382785673047125885492415323776402441242189626656055645220292959087273876413972061587016034634320019513370214887827336016979910280813643111940168954508090569329831746966897340333683636968643475703527098423671397629521194921033198118404777242323693805537707029101188959340775690690250596036695077945614340518517920365034648823113092511255250858278716627226761879210569994929426591785878367995803795297541527578856565056924494466118680894793358099314197661202637539333997221103869029858970260016147056708803373453120912965778110082559889671430028407368680558419372356149929550514535225885846165340332841032490755241343636407633011404358273150324985319282115486311988375801732473873617103983428730045029678572316322521840097104863464392845988670106143923585648703207817769763240198206715914856496859480208604742124863366871413664992727238874391808360373111794805124827718093813766031601752930059387756841378303236032787677646759723759920422270516532259636391133222925900267077268873905160748337554362975733341203641010348997644374579999739331108874911906919953040201704233540702709956525647569390890598262947297973615395601376583677923005119987461163258088961410974180384843841832842952337834470624907982169412104843291345447208934233680077640360602670576051651130343974774338060655929786419462812535127617917097778871756332556098179377996571346099203567349323029281652460082647992218735011110803867254064982382925832492455088953578737651246145866022025743624806264687134050464219287812117936700546035151675910369787454987558522578303789214168091692440702873196427700106613644308752169015264013478266311737251601979103467455599523947447989351202385140176704201712112232490501562259934953420391189019002976819407944022916899924079473480447903674079176159009192108295669635979595982023614648887368909676083887562879095709205036565280875243895613373185669390515871528339867660151752737378852189776752922693734996984608520365449833822464575413853541532135812031267689827253352593078208177879359485386192403515861432263783040964124088271213148466141770009744904436010802397344078024595474443015393905403337182411846486745736313579317306095131803747945811012412271601371924744703997271773916424513673409660864708862716806549317766527592475150019861828315522376151801286175250668490037101463488572011093708233743454761192288611346962970699115983725355585623727811390586948729944840803290609722715882622815326166927107070620655783691382260513831231053064335649756499910338972437092124983484288500167284742985389479867978873218471660846400453424046885753998927463305006093077336158450035768036817546993904923888494607781233076984064379268989358438370956458949223216920655662577610461477990352404620860606481472962916154097946327213734536662503533999402294946587549011134715343720797397718772871214632617183781370460390840378664446095902725812806818059160077960001475522592706236369534944914728685207428822438145337176683337357274932974775677355922025615005432340012604143775336217805998609397921435053870068996892366461446415379042546877188008932885074024258852011687322488211037019309631268311407039851818177507191151531710748775793416013042761419179829928460827697844574063876890251512150195518588063972073100325268445887673797912371067501854249918136289864402363071679656311706850197337585568917812086527185136641910658417671574532063417312253585021270479294132688990114644553686052146022349931573464577835520161160524903699441542881896333232688976046352620008039402889091766393496382708425950397761667470880555883624778929833086215555664092341782671092742583876977316712566426133071417781996109190833116491458675688700872741925884211927320304756509081754860934909187438822089933998493971601312744319914776494361561682954882000956604296969102522770839580486474352691965239719591176853618870319374400714280944503133983432218018634586759959533743300466060039508580035432755833676111400890758087063924270328074292169534468078633589833887400874989728744467719499452006235550302440855166998636167202912483866898497282073391924693022821547514497427137713444877104257002453007374980863169717481757194730306174867915813017865182565536577073816416607544712090494152998268598523161239894984235919979275690565223832865054818385216459277227235385400290675322696766780226720058061095853076806774478506121741308150304856155127364559959129914894864299013002020289778860868440855583107003549155511926149268813925926428036357298191180175781106711470448735032098776325022348775852964064888508741051373032470346463180009278004317720938827290068326679774970614204597613546665974983414776610076373418730810137010294068714721523740539951414298424054313786029679518748321055412488330815364466554552023056765481607017756859530234079898912016866011415106024008013397411243556479017055594053697231260183075423337131750346104175551478242167642097068332580255948696757387251057425278111856326665616466220650542894733565290097216749596903532684206334765754714574661296261755599474118127074712497179905688784220977121498346222268422589157279102605774934464361089022079600874817590118709411214280445473935525386673476483296379920014143459666748651512689457690705974715715151604437192633575723620449938398727528208797866850840067761609561971098312441300737170391278210388231920407652689598241627897986705765434053727161026583222535474440244686932518640273535944371224676463737878734023992262897746425025338478297021040145402766599184722193698033519152408671295342590184022153163443266035446062612644011604857726735699419095128918680658977014313589731727139720272183673576559365174641295791145521411246334279802341498324099849718448977729892794855644133538540047992267703047076845831265246734474576421512606891414381214899162346314164177838428757442572176335284080493815649507878687148415004517576829529123558924194568405739818163061025451851344418080762244951921906704455593314828987020538253768579035375152780503409950101917737315018677881236173398958275368140331083643474323417277898972934441757165557854365273967055782476250331127379564693415055991560769137252089419287554120937187761447142485467826298817703322293822482190918745326804365615132840080771022967840276054302454150830648932219904430564489709815071235440680019604469877890815659252676935087767965539439698205656248475689249809608572276648149821299636576046530718598254809761593171034354564555298349520999828330978707818155622972450926079791665512477337044260562475180068115816692626754727798212757112849011285673652786650996461834750779333365564042488543253910982020906593694377591576900001589673521007114445261769813353185507454175202773763775871792142396164638693670087863981355114467042166381211639317922557382295006889735933032116718002111275918087896342646619359453446423190466962996893495271795373886731265487791307387604595840758344773229027170420641592291172353219888050193425489459120856306508946576004837176693482647768972637639267066060306069031011193402726553051651729007084927797951629756365765111229839479475538728584574748453036680588851660005601642440330782008152958583682421980952548377461645236439398343051226225728658371445844927931252766784266493146293938073889353516293300592196573259960758190727023024478960477623926157010811141692848692465328663528373506702281642532054828377719327688117465382687708384387461715740492738452442508292030803321743671791054960863185668371211970221116051399583264929777189057063181785326113129380141935044125548501416354309857993453372470616825253435553189356651206386518593864310223371274183564671323649823539827206173454742922849500874328113841240617138953172689187668161248803565163467766433130854842351501623349781957250179094289468444204540853693887308845499039563366110371287749125690808094843557956176072709228036539712797745822690866990493548879854238157711011961749855447875474761096854137601390652677438526588501323043449890543969808506335864102934067165552264872761145907450973379061146568156180645283691726010796492689910091366461902600861206118952244262487836337621515514282275571188106426337800856752584493135555895778152949051259276693638008134967601498744187448924726120134547515207828795277541807642126271770109459010567448436647549208692370972422227728339185050135700967868332727816887745929761848407458976879078763148049752350541178830060663059772660179362240356347639123263965418647150818194653893890832394670905680488462994917218767734765397140569299976708619247880884201981996874461429219686604122607641311215782670760463371777523675216928260315208576512672789801629974439048259575500666530514284301212844173617714078821307955603356644438653867692141794968365361951286098235950959942495769817723194325280531053368763136866139864523943227257314792336458008638492590447382734121743810354664620350794273585291316042567578668205974757347473339221134536286957360443562905561317136828579251553796270278341906791558208491504069754660233951611169516972423895963005759915561359186474941839041667970684221399012323869486398656283389274836170850605943757698467277218039630845804012586546133820149276608535775462777100386381585945058904523595229077679930307364526319184144954543237258097655901558246159120345298592681575164123469204764825158277618262722325482452938300298913914557416081732060796534376131826606293443616776034577451431270069258944350360970393486899427047563514128942254787719664059254479321788795628490867494544675573615094663001572166143383614417693211898182718727207743455332116519808663835396102638421634871617797093171861758755051632296376789944346004112169550134360034513571150747831916761260139867057842163158347851992077783934521300485365503740640230614034674374370243905936367742540524396723820210897968871529013686942825689304614766960880878770341246622765437563857788259131829634748305977014727213093662296455602522262751817890271458550544574906731368284491061711899946583023676627038194771796946532094863153741317245683124489516745064921230017343579450264497760833093689425741475965374795080734183443079969017217676468237684429971138389676149308677331564474759711346164197258434016175550358898032536510730700863263496050402986238897785577008490818775459018334671032622313735354581473334990983341483633150777797040260280381231403837624917472591083940621742065680672106722527723834985824662143212495248363798953261253968491514909911029742777251420444550848435224751674308107989606182798142146491230109981624028061902684378947599511522785600936774850597659677826609038228430014056875947286799373020544417368163248354151475799590891047483168643933773287681830693870840600655133737689951324307183142962320941835001135976328353753569800340626697149670718255727314940156482962226897127088087427929537848514335289924962263376635232448732594359121566147027987777686696754015274423715121275926015569826460075895222996234538603045862949701831933215173251435164742950497374486813429249663975514200337843722083337566487177140608094260949087531455903432998498074555549005199495075855700988988181958561586168273030597912657292658451193617784198776576411880744187493382295537484916685083224677576801749228177029528342302442089231738737085418440008438911095028542611892891150717322750747485633095284787605479579939698940503097135018165201254023192559670795269947779639666748787890610802414204153516012377744814400435670666826547533125011975666101124331671652614601880200090017564757297129357407632954018724080820750197678076549779258951862580753954138425944002636454895899706544575290050807357138752290507808056416704885404947201309692730996283487437366351372280534548757630881252081865964674368311881500617447679673706292645201948244074801039451220613292802804686258376880581253330413245618294446899548716922547435083909014366801104148976085313743521351663029527794837222927490962343464497257121855711915721129555821933924870077615217963390439442126728374185214149288605946408335736594455135523184322329096658750306731592653976085582816342253456136529810746160388137720620623853084101087923823047640876604391203652634069235850504399438763143123512444708147703224176623675100874799588648178616909243102521902044316730148130613979556491168686171310260671962323743699164791131187933024432043890151968886602704403690233945649060030586743847118140129468508137295200602094703659276892598692848547905600192101728838098137799198217293813704183245889041141512364818938794914422512876117901678608146003105428716476546970685075140368750787860369231487691681032287630064125654579640959411982496008948162161081604348330213953292574410053998179424274186435870339842058812220499724630825271686070494004637649086542054136959854569374094630065528995262277333167582425578023184980796982199364081068377922688474333053375670498164742179417229202285509785607247271639254304197985293626028924697556507123433138925755987711081150424974937265572950282765527464284158269248093095922571171939736244389168946240420617250152155044388386963429527194759284893106200337578168169835738377248958704552508051926927725091169226491890386153682229217228843213869822602663471213108521398031183741762402832950023600247003705559014021075736861606963364430302665824105785542103564544003123336575525910942834022871742429078142613227629781338578115562132633015298236679804911195197143273761408985508816751467100828599827742871456676060265427329245977280341361233369148624063506338579398974054221556053864501117872561107242575081761062438850793349270413086311108208021259825022342372113620807296887169426110340084005303480057283965431276783032232292919294147754624201115581789982874743877518867066946033189659649537263272821727627169342709147810381412128918123637161783275068464644092324470064977109664374101795373968860943122471808980412224255032229340244015893618661109285155786849616071384534532483796329850559359678998730882046289963413315688999922725026913993213654883743556811419992385036802346507086858713014810927783780985349294473967544133272925123334749863318903236415499061653688582543101267685934077488916275935407991244262904910461113279779010338407014559238786458216448081011755666392829242559169350659322586235181873449231319249917316349057412689558215028661665417576028739396133173169317496424070678029017496332092491065218947906275991514168283371177232205050080588839586766135877069150691941236248425497374801882005766733234882096816425819442628427489478197450920866122964771382140257778965402440469659898779982561478708811650673854460258626535424600972975392726860850482135845338004862725866228961116356507271656213335264201801288397602632685259719509445779741855006975349590548308939022893796814491190840702298261977219364902394480957910543679859102611230682333589445409419944422643151447796708970802896628114306648957953646269865236598987155362784185068139503526325590041831827842324050325006419562383228679090608760166556036976426101624910164229815649889826881686026256055419248827069867413307698208323996079795191010226847912537055019649273246126180135633205247004551805097454299586888969957132466183562007086316230894655497036497616818811990245034902937832006011345593118712475649609468173983728495811973172059847545741599855660987530803715654825685480496365145630199287879401217561997061170501992058212353803023592474343305643708259535420346608620684235698403639652465885900928365241034275494324380214808282063646094041420583282077533535758193502933324456209154851993591474067712023481859262549494656815830863700163138502954188468670917251495005962812760327536422473674186683868498930522456995614081784488621234410224015782833578930492716518892645027850486930627901555369862788258681778409180753272679882940864424792528400387345459416006029931032486814254911087845970356776149885605037224709616347900095918223484017563269008890606428453535447936667395766656377611288286157400808107137022193553323285111726854148276015516329065553856768893677720285846243070565232663690609555701584899418689229046853032477111413895871180798581046560984394650982236270012441065244242591063649646609697388133808395420427806905955723945826310728640717254751354511779395656539167393016789611837594952866822528032248855332267176803627222909013144811458926646506467399902554041980819955494313357420331935975661613919495787011833198934129868871487204653442618303753615171398118094244820385497644520481944795349694826333002795354136695955446443610761696778261587385066975613357333271711515531481052282870723756947076672693351316716137653264101159611901974204131722804127873039511516773361656005107832816386851085438659044776375612443056277887725308346447123691057121548577432390193920994534113213521187210001676081761594631871220686956255256463514578146094723076102002057573565797493988277849020882328923437790540735510454602394653027703843367213983506536466377756927009160491653351043507522761482177661622291798108552486243147988173948717628204759850985258911220765143519509600641842607072796341353690178360507639359788529714607697540935905479472264327522741070753586405836655428362387639676535306558472102067603649707565204999125491597537691545305874005046894451463149887382400123347409768367918345654160457637043961757483491928151136998261461703229280245291963561973213039432961792606850688882297773414408821389517015967838791833340649254456437196445086895757319895547737030612568341829858714458350354715589472721976471609167471717940821757115944926045476832414415125417952206551965378852198253009246321812640139696527509732761870533401148144498382512629043862019852037153358410023990721031170908078402950128681442718740767283277049091167000593153987973475879140353044656030293383357298886591051518338932993307761614828716259653485773543242421170893718660763838417813302477965286586063952609005928069998477424482361817984734462202560024249427371857673412145813901537189126805073350185714599161181416446577169476138245868529910774313573825374222294390875567059194131380481751331209797246851779604235462436980547100798367590976699292529533385192693715743475517855686295092446329636508180183365022093966764964008794300273637484422636593472188203404969056466268140833977988358088489523620692598096113634922426688945938364450596229665383480404456901288165900004812613277734598756462298465911871564762948358386630919314804040147066760747418291292648375220544391295034952576564941873028697209791854143464169239308460282161680054325284767455980714660725805540882833250261883210472770117885124651127590204712811655575076570498253609699726494635881698589776297078614142379392673695758289414595735480096286535633118054392882680037001286042089572671885217906243820810439054326697527146070770994458799304690579742670616855567283308848322102235108292641474645217518523187627499755640692269494160848934499815580918707868290232337741171305850295460924879415344193212858980681391946687258019711037964997889556091405918027438598750784461970678799162205204068767371821377448785666936988935377850408906691684407022393491294782942660849701896938062072259064688905171853865564775720698098469204398669082902815727140152746882850410373059958223083591379752541827804010875025213023073669337317880169026151965328100080837820522106940471147383275661263868122080348148794548216991494962013560643906938446225107628603060215278395259974440140053327497105608023823257475921488232434639833864357480771416019163234961073510718622557049778825616833549779593541276204743672717925203332568567002361017489634141944919966126813004699840041995784291968199083321617194747430950602521396724693302249916154268770681332703392938060648742059702388779169333832530883112869095631251198037199729676836453397011690491971873773250676946148555281894859365690071615928219854707473974617861178237851112397876957589576403779435341545799657107681149926986599183041191148267336896130666100059225194142440496134176248322239140793052600840275479284702352744401749038615271463759981954786506040299989691264889143740898936804067495761855297985899930787477030954511725932153299536210812811674823271083927067303168076781835981774678232518986183704005306648389760341857123399588376561642769372110917897223223525032223608618616063400463929324940005926515255921748494803555439746753666091029212421774796775338013809466773946484875463766307785539178427228429253831784466219345289544714648550445715023430048319733596164913933997000823464378708937246118766105123687883283063786058461464912461948764378947139434829393493203640350689660199197229082865650317221825821543218599244438441017528885882272818499517976558106246223979346521450545186609448769791286719847860694546525696494443099293451355431479580643893664298259226005118355266025887210085851673188425247127545699852673916696549932332590781502860593233896000802558909310569909709145485773697468913401204866582773997969349172426023339740742269671197665976419651581216573925606448711232756883639824469866318343253911148802343790507162578720722711278031340097868991912937838944446701094510261939491895063685569998597663207264776038469854605006740520896599965934116595970341161904562276482946087168612117375329323735457601987978391187508304412190283277884153324717636977845362331762485815980370047196498378626307779652601692818293219937097917948329083288074829541057052378453965184506713406358099278388660225396638357478655373879300413966131530581952253803714046365823788989402524329865265674269449381473456347890113559256557136703552352251493047756955849590290814883481327701730920424647643441491188889133914760571820296693964505068031170764544427754267970665690033135608152311541451047680035509066492855492797816741349942779479713576537815550158060615524158247104664067923339081803762456801125774348053484504399054952884236803585200271731622957177032311537774184051334102190183064248838248515772799028907297452616715108683662283104465117404419188408934661332191058852583360893383660651031102940209276995335396745049555764484217580129941282084468537690778954351183069442565449511382669658897793842214235931147405833524653156089634489976929966191064294915153081107375470068111592848577615869154430908963805892293596349730968867563107293269663752492908055439819748659864789825867771915299859638576041493331196850132879695189302663918353083239065698023347092830336129983735833580602597116506481318702244233365879369737818588343058769289973613075825723582004757539026949530794073206910756713195417460390630817291882367253909611898697326079739117783030184700823121490253211936341365819035852064172665215259547014245237343801660554951624768706473092119480740967002449668558058879601074048724526592366005234528726139905714150854689058056319210384535361277482207294477332678604157209696863362602984192936581686877533371894614235357408481958611115521786815506827198214786252685515631611086504341755756166641094254974525209693744471813768117635868454345029856214044388750817892518826028612044860855704200764096399735804544367189983094307103798830900743319293932272240977300829046390002612653924704924100260085612380259286886573668535011743609414259310264093257142420874821363781603797421954770696215310183528112068920653245474335546539119208424579791916341028834889829443992769952823032097825553896919362525547102065692545808945256367429517871697394705769177220409809746547592905882173003711935168584121834351143006340556741056777593648885676240722482329135446519054624066227002759791730843739527469413786934969239994217858754462213977984010304413680629786918744261053560137496688372115809422620540076559225282235897565798015680861917364339408692895392231609755714385042526158860472664958884472506491977078395884005520063103395857131391384128864523148925140402519096150913563511641026995392444387288793765906396198029682119155364552161625919665428865205569505619305279781458078812398894462899599647943673107670513178504228689236580517793005103726643268716085373904745775627296885045811504715712362985456417321354130330570062515949866033154233822362772447948184159261351010867113751170428863391596491983469710788186736277081701343763406153678159279874360661662578083624259955477068925068587489316692029772031503567295750136864745469910419927346887603913504376870956190561794721233991518481159089834451122314081452836865916050377862609369604481911610218502313173227145901966816601605740298817141381836492780810445867663112751816152449928218623244631669665979045002877657370746064938444932318116093493847887668018810731453613791810865126839553813149710862537877802030138365021588421538993739950839253243335362222527764681100136164771602801659348693275860574401323989144935662326885897612566555560592238417087907689082356676539431750752715603499033251933486368540831273637770646788840735335207172455317870058961636859325630914529546213943920224867919763800492821364283432458828245035138673222497195380693433991245847088618186943972307822126637525189920352908009235731305156960958828587435477419430326410367876599166880196776985396633455279639066205918189787242735352216700587280260797998168592598029132801055662891297522434404632244229415993005369161925804805587658152446384955119500117516713154887711237055906133500048078507890345304229014677443861117055956946776072508056658968507914707371777761511360490530833981476455943830641603033498096313570494888642493801060160336212167139671425955588427425084208750467731379251165874125844995067980886984409127366263243251070699905659469666728358384754988700081163420988542597229470658641934886622456708354769201385421079972021756361723763567648825933869299548605724957957591158347987593059706353474944966890861170556866099160183012128506089121991114380509389940803607464102837018618577331498839295449915895703674081156930974768519264873905772403816236827692603959867128971289877644247439435850610521143778553869830954343399236180141892899042209901425047678795630038647789138091552529398879588479571582534853666925087658484842041674131285916696561172249243743622261368681633746276088510530377661697108871717742032369360445350797419646712275024825800970393398472621571871319689682782445274848186753961948385715297649382419764485924086320002553224082115903510057381042255886424730656139500932358623100908815431185429607914744229511869902302702966865152950315101749637107719737623759580198772671402209137667295772259944651577356667790433424466766868839707102234401265932079364024905716762702410224244571740212128696208811937608340164283861889766173919782496367926018419287501871473706255785221152098575643291085153174718748154243455518972669290490584936264605996432695359076329202498309644679111254738387980067006338539319858269457217979260478567030986502093771033476080566583347744857336920087193415984880788225763482401503535309323626790617627403308298546167634172310818472601179459782662403195659751786367297953873403665893357757290984280746274864982992977633916216709767413599325108027628040206037156430224789874526016719145112815399863477615496185623286214764303948445298243949773868101861278083818014793338202197535526501009607178285806333040321769161660125125033417945875678634156224434971903173679295940631746645325301457095932677394630780129838895630731500788492255767041378862530878608604510036790219856395451107664297440167750931898116557781281151957301287262189651372140036549264169142216625460512787752323614803180039634002873903596803960323792601623567684219655884079896538944451178641843067187877937371067026630711701725980196002540224729005598280230438085089342604584778111594125447481119109864535215782910982319324379164044295997885770403794344187116180008555362592561631143104389568537049652410957002832252021024139897464525033957809406290989181430185772904002101079051168240074100235924498501117565140528200154933748378614548813684257574939697792569943123002773901322527323360896953255297720147625599742114844548894188438268279545668908621965942552072391623960284540342336327389759730823238985776244188568151891847257625553791306848377354535872353919567141536631461040850886200151470889223961601524368818911235711504435247272543668761921589553920784748396029433981473370444777123088662068102608814445315222311985036105821542781320071142142947697776141513557233331167921957175038498255224812168124022985803197914490542652403695815857592720290556533749737515311856446768697111565140100947552514164945107630593614798686934726782396428612104235508681809469726062245172745305162011831920019195185512459967456542004708240332714673306846879147810877879911104735385529258158098852435355031310269667622786385269158621838526657015874218741196507573824790502442980744349464178067814014754574842338316856741428968467983019054038519886317723226182559874837969384474052700755176847898344035086884594817250950738040793758584842445981111683420282300440442968501160153675138511554083797224636747475661116632902864484665428598518183895159114400872724841271343843760679496434685365618724385060044888720908843722903352225533886248264367226854097956498887511789207986820106965789903742504530125972967532424703739456941680089851906962608642335560634079890785392440728693154771503244893317079356433956789904708522644598403809165323013871831679145657607564090531323173738630564331094533912260353396107064471891458402296213575844275139859707604922920661109770372521274186242830679242344204325000010357715377753977027914805557627698786462295858787949697485705974368792060614624764609406204204395115413817305248010328027957203402897013069268513311114298969599206428346114127438918551556079103134512490021970910965122837915759099109287876581785724846613481420142997215669736661389837513171050711679717790685902046785132789658145796948362682137998286753013745723683243685199263894854581773254308037624326333237112003248533540102520018438591664102445653646243728024793553202911763079227181694764884561966290433101108178450140275879271087567620918144524746171142646797983468516746893464377475693704088885475855290393718192587148472028917467907103448205080055457499109504568103259427030354560446310417568972428075417374998506612523161094596866584672850521511194112580877144457200992377840474990035207225923164870897705035691637107664605408962568989963416120560571733216767852628731090496723352028664812799054764226139951213237913707104874893090023112335175876503166218207287826906132669425155076308843564673490716659525811410131135596145595993576725995967486176010315005625895696701987180121427013184891554402471403574803638164270329479897439591046874960060354663793815349206573059357648041160066439428638684821557808126678975559309978976996569520867181485489367529188663804275209974682485866646379186938460993824314725670005953097319155596983872546837553329077128916377687557368551625404991571041793028678365465359573745671765535341471919991994772562888577089048248598601121887168331899455814671106947598451694611218304511700938412285831789324012699820780429964208077862401957078555765314085904344246470300307568059682871342972012063868135820281456230479902172191443875827070023101848096882082846564230128432621737167292180051266001051364024020349714412035822156193078824927513768541052008530660778707750283215960061034953107486173689568909721192620566876470376882801112015126068850967795344519760075633807022399304616891354993309546386799744595065138150838988440193182885492800611371509705135754765554011675701883864467537735764171927468361943676320955097844541878832991550767653157626429380698175016752903622098957653607015514502297850210162488220152404531712436329401770341544080135436219765317273495542744604143978278505422278167397513500555427392788965231376929661757217700097742364938379970463314806993780361008035108971729828416659836446323915240750088884901931368284790530579881573607327613148628439200110766574813580453611869573440193611316347219198629241090281002197628477620532763364433784015635754826515363473671214194628613285428258795083103502597906299223696709440449791958416816783393746741892758379283833364238878714861806326241601688739442218486907269632183126231357292953631578589503528123151703538027588843190073651392133645156205741021781345234933087481516049820056434892031024581780009517755862865033595842411285454884609286120218067330796307922472706952329431317780114682287795579091013067680139515289038573735480170946668068888307967444552652077002870963138150263164416565417342202120653283579893035557895864455620894035064176039513552174742280522518088470104674063070095387994471347486507894940677009907957550431145030195727413486187166261580208874888476192749957557271464330255263560950529376787559837569192038895280850848360636881511135564599297301198100917766281812311725480247247151523403266718214532099369128277840116613371770381401618644601118862315438362109781751582133977236034208401013545303872809029693199508579682796720867381199844039437473886886892521227512258028043419718273339186031681431846177585440185921296900789821631251988987100428591028217807755582479816120401514472636464346887079589440823367068664511915249249521806443023080133098232560970698491382620768209915662658593374562437086956012636034165472135263410961611036780630743563257915011320585642143714731151739710014803684645278435278712289692377731095342988240163323997025485714736685716020939605688568741152521976387723726329976644658607008547380459513742237574201075491714638096546489090567757969319004432996363203491416630625835718167540496123990290071321533671762336556965017822160919173363565970335713283391431343305692238427884042902598305038046827008855498395802592835718412276806416026618539868291528112757637919359144009826938780351435819625218829942933259884037326990704035442092632824890831703054585412707061491625029645331770709148284432259123762878476575660555264416463854887649379056935691906493218930148656353121356855728732431373283588184976446254218209985833240347858816149751698288265393549953382861675509611415945144114625584739141540353640007391915641340123474040119301188435443555591102486233842496257093027631933732025999653972056547303535025118434041424133095205000710767664475942387339313742473805909439910470512585377502466287261745833883136048722682808008525091306922723856460635995316740888512923010622975598483202644288811538046472516271495480715780414694852492529085322543558125436737148537740603903054840852824317064144582256606067502688366687787432444551461590440799586167556571524620150606351773806549350529011428945195852543208137423765130605335316008818581229462632564020199092551170113070040050911767264524858657438177894245721754356714872223806276072604234276528041785086245054017359923113411942959083374610225695659834929644709978592764564990155086237929216381707068917915918510157161085485873109909925859430086292811702876906069344754838747502982778347778793709816537400060306767790582145451501389876351001656687625320158041734806408724015100426518870957584735111543629596750237667881088172923640339094200256603571928958584867661362846832198384661376805148354218465443071945787239988940866965373346232669327624127347111710225420962768461537820958008997706520557642483646479131998655634178698608232117047216194253195247115020072980372355245887233489817870934812025161041378744941223256287101796103755370229224911940920420238267022372086793194050687529859505193051877389993884783809931092835834727459818147430595494676299838552247211023845883156829539513776812753098246005873607350315849256416244916302870076686295253846291872733273095579143929446574826360900554179594686042007986394882987533715723116767428461020355133779791915718546598130239906505110703926353689807466552969425970338911073916814339307591327531428429856198940085507550317065264752440075175010303776917436518653179745120875068196174775830213839801338784533646982308356601160780476779420365316343626634538288577517909933821730010115125209161185656023253597853493640399397877770238431039052472073474113103395440761410775505078051617464714299260770910552327565999308064187566960298231349454334586497092253207574591641126728923745594218691314881436669216733274438757492132827487178544657854771403175931218569322061815993958926992314048572631529374158529885282824013420030557575121213948457760711266856248127290796342124147495115475070879159102337686877529410950670033796794589374342964770746884216804616797868185276280113471176345731860997723517618623198406230472001674339239606755409624549267840456827680713905170791742235523454248275756997561075840311917083072562229745200230751295225174700307886853285423832385532476834295452410456306974822648461930825146177487011140757171207335241740987594661787111814373431503652880723082642540627982313395932677409033010982872492939527947071967888596719962621935631593696719357266664179864983397429569879039909795122956682454762823317573615784547100736242883498508039298420485257305818649710720377573667916887773586323121288290955411516551783835274923095977122085076504357416401647568762456378113510224492506009549582073300062204072584639035847639381129767487392984404527472226378857471128677436705036946780469857726919958105343794539697244101999494898821699926978332066442614959418304285779403060462882801862963392168628221618699567150518357919874870770531936904609553373662985503658106002490264902184312356323590306585889263223773737500955437088637163988147807624302216571045406005988884025702446141516885040368426259645725875003868247779712935394694900369537048626595019661088159032876201823167459376332930011057526202196393768567354717026100536267022578522802408701899351096528548041120969519586533694203809612709424047899605405363872285681556373986327094232757844885795503643700817008076009412951954264485347515948572028096950342388675593506977679151236277368377103406294061484917008897793990203941227248059372230993014614519267126918273963986776470683562216882043806217030625135421470575190596423874781978732131811600580973038416595020392912191284069371759405716358264383298548322243209431117443019629733980915788763276867369694000342767977421973486785180083470381593647434271960023911162324227135293383367293542287466988390751328359113480657709792688619762985191688520218322826429326011351990968472272142597803369590936093619544694211240282812956410452352270205343429356627505490994693537087159305633576052725636790697016513618711835246544175332258938755403674247577742934194108586969176677957213688495518382811799022531934316550402720845379313253876729915626303632111469516031536901091029666442978061054036293338126864614164229802727723256888534828424854533440040900603339111365537326407440494434812916753480416565799927422416388418697770141003387215976872595739032381236782712426846817612647502705697299090578806930053946114021726597805028122571392935826774411106836715514679863392032001227202547404300949149115624307536660800440899123060763633688240903095525973164375980265116151255630388357165736262389421434042493282513790142796221822001913743448430260410998523495384350230300219752392549471384318856591382823459166853799918355265602391010689306747651481409222413753327320779346646025507692517942438834238491789814121728469183655396515920461751178376382120599456848314762162876489039328874736004134456602983901710246401773464408858979027860806124493222352591380745516370444942595329968547090965307960150306079412561251406558355272742789196633001149839766989512855315595246132940206850742562544463926317059757648695100169021059749403945254140141647227270679868779856047643364223155367752710524025207564789235495758745800742664607129053867796262151805234571525184787555119969569311966212053788445301798942352929023759339344074110276457633912813528075282586503495749657852539544381990306253659913411339324680575682871578493736388788148541570525273895407648974245725403409916918311039874003589798603181701776873486864891095490607377601422811264247079581310037400510616044635985545118627963276670330797294822990767851514681714114739016243556173057298318149178891899862057524529348874288916033028775280982536385436346330060908576750156264997613485663524106479929957225566438792542089968706319479223181048311727745148333769972243523723137848628688980849334119508845177288419755786046880805358212931452552504879071156193065914927164186079002302715769240108935196965017663192564776864613683244129064505222923605514304722634741384586524928182014977962819337175252106259286445316305909186298700287896276088356234328321697670923064298572622882797288366435411910533365935761728016840087604136684562461393010974786921695668781271928589306654959469898774999328900032357612753040046940185914278005140753104460947253539120468412038352512777469336688595355987827071404702119466848580387538455102687115784984349192290506014023364392627101325946234547684758546094067097900046052833815316542018780710783041433560211377074595426094770759544614126218274889899446478120583849037978693623624122874854347804919886919356406428515208617540031235243395339424660002308615143376762939808218271427675801527949351103639324309373344491209283259156636184246072902771445283577176751723035874917403410939189296801862527853667496749818925142313170843930906634069425605739912185529645820358250563515300659557736690502627471730716449953325269717798269476799742159127940373166682753895836443276762717436216521969489368396438108360392903837642112706594538416557545659546431113415909131831287942423040197801955447518967881018755662969711016731999886866533575691780295194740294839968483853244954982044216837166266318161404154788711605690237637028056005954667484476687751107684273623971491267965851012067575435714251243064032505340488580333574429893848991043589406344361568191215654875994835353869783501068022996561315080732145541750745896118368864259045303674409568678355715178045218597493212730330731141955468145646686673123601984985220697275490020080375952444754835701786151779133739317856593478663480693996510982605930585908710536203135073616885052428406634825225467387652863289635022556778768167418678496787228001469452898576371041758230334744833998519258612890989702328947913272243763837826990578641503399179555398486339991950831612313134087824939212419320169948562594404791524964740089707783786107018863768038278428705127057620365512096189710386584617682120137055008430366681688860203068735066964291373855788026977743382302023767220067384543536069327161412753879830894882786854330525069191487192797473940538430137852030438554257912501000170333101198370022914496436266624557288686151982730130588631875091891844685191623254593002387485976984733722125095592674254454911262377426467499308546424843568582176120983194683356628951356503941916365990783882250701425195061790047385559787115723471224759094487248742293413988946997991290221259460050472507858765630252305643538034160594193655378883534926603704711302422063596598979302626591319124490393358931766223533148270829303545585547858324834436004494118722052890319772473793749632037895305606025059396989888585887086501335224134579959872668733741660540310816337696354668158114667215798629504753558950491289787490175499936253694247532608870572872706631354400587138971334527434930559549512606741120244580325517995439679062574871731917911152370150361811650595741146521131919645359033744249860674746361686088559830620415110769181537708493877904334283296020648717264939605370784110989796966284959978089082971474422148252787083850099338480356578321772077325756297687923320775717885665193855630352293100889513375490375433913349719690132459546757020578072618079754483451655901098448810732139225261738710354153052741194466862056961655870728660330118560802612320985090613684751046699399667151753109460270171345614643445272954117087034718717360955107065142274975529721047464454139560153971482766199919392128981632522313059547802260327843350846861155544746541793764118075601805052396291247364720259301623108518908685457410461141699369051481412555701277776801203347513974206640641962307826521788996395193964207778118216397026631698850587118647516143944049177513154967784265338306274983307797614966801087614230675207035860066331038606076052275741001968344922045427336636670979427713974615425534302124080836200480232836255956610575122822374081337645345717064975175926256954862172128846731641611034995421273881409201181174633486729421795631699415267592985399197368369514247605763778410261599594416393364960677464817957234381484960333044663636025935830368650729593707591974756790029551429011211905580454941131487007468360530678548930406110031418144823258296860129930969281955744246316065444989587726045036455995812765217869715591024723948850428385688310954779349700846734450960947019091695790029853552743780231574919878733613424324993158587194095250937283660476250826625437777231719974968809692879067724226331573950181426876762074063424972565775817297229886892936320067674268296573016684501020139197817555321510754982466962521589137064008053384105616047264464714514016283738248724919333300714546912908422508277301478039384852612996854557527060812249934830153811580408964953651742897318942590061724935522986897503285858770434528688451434502951810906887707420747281414828397460530520254005156660277823043631565410728864227578627370019069247531913279495596840508311646929217919689412134119811517910489040480244877126614668715665247250208730839924500212023224486230265232251388105671709444888416757093394253816430048140742533274450535656949712224058341011771100247250931844470370975379641581935992835818483366399411654227726614641394035480980526073664602526023845108397029996646621926759172953099677770849816336354479090409041207345899055649065497685906434729560967556935364185583842400369616153749969957075818150687835945725390915582159929645119418888552340942085295793999908665113275509704068940272575735896495425757444661863458086498344066690844913589609461209213531476059583960421638247171686160635198190440479703443362890173064587675703338047892183400617749551035767123624597926943341725459362641411891737094865901642443236986901072355425220418485692688991833348423743147370305226631859572170189022959556434828767008084045068573591228061236087421682697319022772519427006565115777186053002648249350362240569050500775726477735073428222610729843009860679800209987866179115892356205606176440991963027216613634597268515220955177219570814727452286830782994572280684257395077806596240440829678058878650906495602562666910093493372599270621552348566629760636503630826286823917151630602665578440462967500551849504064606747118920217856325319214880564993963004203873116805523751477415448459638653489072842497723494854902846558372871743716166617138666760656044475337703187121168309612449701158072771165230933002330929198084837832984834688779627372905132670428424449582326565996125944793367978486415307270507869362409970245783611174949487638807673068919988685351334073380840539036382597840784594220748737461499083476816358711683326890426625142878786556780631781514813172222143883175223762323795078231242634988161530430793452758271185895457774891635027510090518489299496797270834548753414450326787839514815595274845353969055302592089822011443713098548117502914457437593711139785662897172660077707038462783879247715017404474106162689949625740392369192376525097016773089936657560781110576128186341783807025513529624255275347086417671496536814070397898441129066676010695238292304351273236704602733958688761903874302320489018051693838753872288949346644940884321157778413596710713841850475109921723899188243726124058772146755627022480563785167882499281992765208381965004899373963400363216308452076161668994951258489598357010451363782105711474768037425881478501328692464377048682838421018930944728842220673811436983975760817211087242659075928773002027815773853423196731483974541089313181709979753395225597551523867034995113150412716740806802121385159535799612141952154318526776040966895037145669291965909072620792978873699385464185085438592091584475641453377924369933554613084099074375825636147269659846181391838925986611231863710875832557998216417812058102260401506959014198993050977201059271122041225042493580858915692052254382235714534445165101739435061145956854100894693063328131824728790900249682668146907484515581033575510504183970488077648333273145404855181832323904221829366769705934226105554773256159149451111804311471204117026519411616764773876932954049658503431077532128660962742277770246191182428238221459133248166859157792475299256535394554318539493221535225522919370118799286585576713077136018806221453466806749302084051165295839707478973869997416274844201014530471589862041497221772945888217288063629352341669751838784983566456770892522406986629462754369237764426834711008811791869500194278611356020755726048957056291321080450356733396372440196650638769697887555172294129654413701465748860385160023442988268630448782754262439491286748415415735830353660267938009612489667378919481811690548132378343430263847469911866372106193683797965353187772977978897942149546296937810715392259508380983832661062626972069968924704871980377200480296798400386182500333252111115908018625146742600305918254607179013123308032320803196932414136248417435027214229701546784002955788270208884743345644312003868974516368421117033467160402015437981262426929396243101479041407133304080869136725181672745056035124497231054886780184391288751951103141983285902879391187790794496159160417564959973683943734109889960217403731624805383308072381045603895739394767057841253645554088580828251328320544059759940629771662448691305766435067933453257572519290402813774371840545106595266314929199118062663255374107979856675640333926083613266486401387563724896999818396549116430686262037714096998555326322951632027093412447364523543464774647086939825697532895003809097611912334134048149198043829007017930636562150163806315088973214005161456468049352876616071875927737907425426906374904797575046016588081536123536337614588513697362093235473545663287776048870973321387679336642657995635959991940434839169338367164234289876010260157607442403432536307107312804265004989307971232047300577290240075758684828102910742589148893309412008253703812442115471891482510089372063793736471014153055850786190316858905286094889359760409758213411656447151360697878226013351280427170817500864790474220581263701980797947257879816131145248190102422980125991752095551673737521319729916959200000472584935878983123524495942265405551202258948572025729193185444446840231754274125225152143365389174028550907687679163168689507001244029440524479678760272659586134394466505967417852819251583146174968102916374001444719574971706498053819127908890834501234391763603882683419676358445431074479392466665522376240518940564753190006795772679923817327910858243084194185451604258881541697213529624664133906109021125903386387417733207593024762009605272214313833243746492686067284222864145730586602155524036726333345613073657206247164106132058746791608282308721190398110443191060601172556623458328964237188487007254477688080879823618656501949022881790114149637162716791527574563139202777593729178240422984040585657440432495405791461364273678486046411325959939476710774399381439555418488839358467010535459672483594634426015066365548873682061302833116295555211935125775029935093690495451306899319884217980724370369627967437270304330858585606940891685496516041090745591145089821115387699973896352249691568321529070154422904928112692700119319089939085408906637035303778140919417823316440450593680604289362981799819926143235289786815627420234730087908285661490326840208047658499056377999243035523725512461918129608496168522894527332811313823952507723458391454472328063864603826810469648823792538702154505407399493618136350571961367677865858323187745773844708552174357099658008591319351848455917070244671293929411971798313849140234586043974978919139330456242052198787699724619787829280977703775931519564672953016989694535019704031481004332353972988282696801457438425934823998704336242380747814773944448595010958003725220855867022521274798952689509756356157381902042442209881838645307652259680912340571314423001569720986036588638057879613546267485460095896319411225077779472261106201487519091605785524617620577539445583821695845900384218336370177047521784520161205035207188176102277003103785169825381380330735560841643151931000285923682860370403924900531176895551225341388828545643533251153540084910202895008566421140300262399572165577595804700607805364855402252680475046654382556333696366158942401173848475176924917770304449392510622214189756350729639324888496935288725429846430541518239857418128188955618424140842945912363641073300583773550230716627368239993429744581505065284992415986151875216382236536707613191479624977824435731184766247105846952713742780629535588835207328813296709416350915409451918173917606908695530367727006998952387460852563834232565948939737070433325745995292008375447194310843288183584873742022045454435599292423687785390399250802843953262085571966483562254002672883328802860621684168879185026793977635861754339889908522724686061788599217740016434703316484315244154751212998536753024626983278893223163439580590551495237593471777163804502915140415188929209258393783998343236866471804334449763384373787303005959183239390276248036419071176423121257301810180861046941116655802839573808815195111030899635586067593520684303659330662421282935172007158934411972106237138810790053453953704360106064468265012904921583095113550561738820400840230681356176717179402543898143780874953386046057157071746685944188167723887402225904614974541350651377081535273239605071152361373115582371003299326417059514156952887341783069701008471690425119410580596058327350582011453797005159616450474388931743066406822968483383005511819779176316040345868960732234209235843495595048765134301512383831252448001267962401371848436518914967687949526135910125639197553757857488098169660957797112177317109554613465463476896981404820300543843125334661000749976519319203242199995834113365807300567775063759595290577314386353747532029845059924106982417430239836581149566422705231218816240080850129578011725944921199524893949075664455948791391413959723243900647880724722718493645963788845796095963800601627277320295750530735424238934830584248028642572750279217753372965508608463141324865915211553020623616084294119764260096239599791284076216270021056663919091334908936834184326238578936118461307411765925837713135819902424055604985723053297154170267324514687380820911304623657892263391973504802731287694408755945250764559649952060224501900496500770140846667721472942580390727128736063926012151675019882216674264499778481222072740292537573294274709960503213389735418766061306021962830867673909866964134004173314456424772051389549231980455423812875999340501787611244070701502674793308276888849494042749083233740066498839531010365997700105256505511909261971672212114708484403817771004172396257667700827044508756929626152354337061872514705847669057981929179583701891406032030072138775075012256940703816814423801617395686295685025445520825699449981680374266589442623299844720471708443608864665794737160788657104691199110537472471825249214882451994232840274651442144437016071363724523676316884487187136182528885934281919212376310051539882819070928898477639703359608415905115454236727088762456428736957841211661197463444475218386630850635522584400080246112263931464594550561197387975882399919368480777195058496662189256765033134753050064434109291101554187900815365248947520876802325204363509797252659223118200628409753018115141066199412267270024312385559162765035062777677780454742457577390913331662059263713727225457507813893906970497126858910154875558406196877448882145962252273382202807348305297800706516562856895536757432412113865485309296497380376692422450558349900716627084828868333567957896111619672352606840751498121251789581388784636551091180839992048083130552952746108528615603820946321556371717559246448980258606404910139533270895951577789892156224893665469436594776077317725746909485131353630096371448102702235156169386439744542347094491717522714360854720725298928756550239777260685018159414355061154243106639371841815880425576389107999822365692638618014311135443926446042855691814611428977668869361854036134855409829320072787184280437674894964839822919081930968473434879633428136683141312670475250002205167974671671371743516358250017031583075705232023780052043486208666819154997099054567823816879991158456243515186876568149448700805390944376214630672542086915442906027708139188768123329365348118810968241264558908194476865571599451310424776368569492989804033058118756609572792688044868446671714387680818457814643535767902129396242292057444428095722921581668850355985566278761067292886481285302987686175380993045192975171399312296106234204315560200789855026294706658962163313795155886702675374482578346147490748524664678095770578181990181423496970266088141185772069697574252070965700508184555211033558961048127024164289179037634987697781117728892903775694366203916150045078214198298182250539971942877816618303519090801373217417772209684154980879847155026328445653977144373495857408334557454228994624863194339125190767951256688022858412470954445217271498496664450074183265157860263321473285351061435050864221159968946115236373326854347102591536236868547061963926157246359650567276105236124181108067998239651123171656033691869264819102547086641159445261691236614465313185081035820269774687454446085650573911399004414061958764214919903488716140464494181385258333285504294136910769977343138306498714276255332462017193996177108723941514875972316837775428682882231049142285482924425593873549479432063592651208567000461326069481183068797121525192816853728727807119401276861259508438285247610246784583694831596769525370938249281822878063324237316282951861119381290363202264590361279498637520426254286321764625047886451264135146298960620876760766885311157085569951370445257210152706168962563470886470000748729891765275899070290435923780561442547113929710721370588185843177866002289641744480162299860761974142989161235150719766923472529470763026776829638517511338234281334482954871644902617886335073640168224657055414007064379654236522029109874088060109505936672227549988690358635674246809316022333121669070893940107233209670149244167196883466829329896200495956212154407108664178941411605482635668802245105828503001932329382631565032909630274375261479588732476569602205729594142841070041467894589183112255830496128955252609371473402581109760154558262335543914891697133822112227121618736145921394657606618071774063269180124426337175885030016398202762908123300287063268001970175025286072595840388940892796254923466060803764755149904761342698140326458673555744011651293096282253680616098549989586920909283431042278417288220180047011103471951278783552474742344394142235061452124640682771600710430268616155797050353591414821406015501280706905393779323989262551850922087318304590349412726942992089877648521606146552475065279468509933009671364840729283242777328028763748286092443002142854226028151438950718206400226829227838940381435407131817723679887049488945495642320473380624943836168220377312953546285898695242847325778215061970038859650872403482597611554386895325569928386718098409246520432331704667722435930255417770898296452314762350423521598449339166596473673124067244894989600521894608651470458254523296307661176790334467777809467624826498873595081938442640730048490115434996043772688109241846033864005306980142067845518979399542905078321066336538427392380132239841203262740995971747776231406307641222424369286503645915525724484064208566970453131205869241053232590255650568368129963528838895207991373134168116040094497687261131761937274023012692437982561251540491600985569157724005073792480606634674697307544444341830417768409134108245503599704803100780133240108332312429196239121882066306602115717900205845089366941284980402511013350283933173009750447983142020158117774859154424039273431309576355080917459844853199153159820742355726091047485163506313522614208969736553083007001983604695993628050839942756834056939339109822758715392633247219351970564980174027734523592123465725807985761470942676687409162682278815836574113444695495844787860682425883683350240765489572090316299102489774936749180260623709326174732150967971911093958658847085422179831938405695980314244305289269095397289903218906290746621594393613590539090166100473102784113929004798002027794791022891707331390219999348957089535034646549162311151322100410703436403887161330475912438221581757046373390661409799386188432142712514624132814671329621318307076710263758952353075280215781041724838349580050426848661303057164379091793101661671113937494832065736758368076205350705366452045660151580603596514554519599039177509541798313560467517632929674642984047286520320058814520320920544989314179193116805532758849048498391375329860919455189182971969064362179571297472768632624267977563264821098767729355787839034450331384976473589566609254224877656022178534366169715996469581575935523932958200638709374704892837211780088088785351027857359112301652385894308041071434550157459457589707289930116664880219227142619648275516244066810246988381915775036211946475930865757595821893028382468888992726791315479522030571344750361595504277917504268308148212801054479920783138271263766065424139356348471589355843397658173714258107106587818041107086269531221988314130383284305017318793328400644967884759605540120573043438333487009447743372172913097505296904681295538911624340208685835205751356566055291543166666285573445589337194287184306564489022605949662687484163797548455192982761381457815547282528656539735078327620573085797731346320757891146317861030570254314639848606126646520782126570100772973409426242653280413976866084137394771262702959372492448871393994327293713145491727679753380633996721671474766000333695253286845589145843281877203147643510443650149101984848410528208915586185654735543670297028586342031519656262913991479519942249598736696740487001935834223556716392877891441856362228744581708578838557235831554726504631767308803526335155813826012606982231786189910839400402938684662078629454943613523692905579575916691010858739713407671478214177079691164474136211916811868973122789409578423908617804132660242536746567147932909680387780355481299632635906556285593706912073424666807377996420672805904803499480155657281274520256086753852774119596502933670419333721451046814483358157470207380490878039146954426410621974912269227770086506002321094406814884966262748672981526988501177254103218154144158343057269434527611256134592535776395776343636355060311441844258196113778141496254637412143291930186482142030967851626939659294415982198395952888384612861891374051041542371767107222393248649576787920817807894675226395733885936815156788124152695117449715303459664288017326418509745133707737167791289970727118824155594034111435119405407023132201874221418655353308615332877157308097425424255254801960247526781707165651836964620639375885253341944998113951608170096189188251534857100875429945120947523874728367147614274433853343840673236179572619012988265919973924869263895911186366869791274213768276738506920840982971599800372570508385646025841736336379422984625470282463878032056765022397721697145226616973696662576112048360834738610029539795376666310872639014982398308899206503742253243541408977160972667327361379724734220307027180389238864669999069237720524149561865087183332395950277996658715347240289036736933058549201808493682449785031055258926152855364903382512793760904296786863911616595663262252954805772355550132098614109491178373369059075503785251988800190352976300998159296494055449463550863079687116156902963358268472515693451316152689848119174537387941336620079342962876353174849615653968715114774433372532422297329896003997060166146316499623708424886433067891515568606378163890424981352463156571879111636819337273433246562108989831187560995973087088038613342913237808822077696494019813129775351566258886620297686978207732345262953088208069980826743156841534894763848672361816799560699399287299462684526790259375629552164659211857438237662174641133970593608383906920865064556041095675549445937210153819191468037997057151540176108568628471403983781961407980062261615529958543960482786667501236625691850346231516292384460591541910913209180889598730174315435063368402465204074778490695996383128736978704229038657841375110076563829514506251893579582960400809091779778523362039881991079812253443010384762426962518196398751217190266471317171610652858916598321779553725656924019832254249024552918617944695017007980687011478427647737284303000192381478064398712110139205606949815503824553785225445455952990387146922007623631388925683916137718880843948483673534028387423321616263690974859599567142547880598877186579295690715613659071475327910457000622137857309167327635332000923930574575490208869483577966884761069956600130305290184659023854769085600497877524266599808847919376276325750027817688392127009084242018277551426792154548917822550445841031417786560429662669467614012862308966093384352635113944068445296784871972808034570641737859258880367068905643151687298498251645141339000576908949982747513794388245390366882691254073725706465683116395459862575718944252648014156099766559861370142207842608993588373960519329932966281885233958178718125301856379968702748090061216064859863913824168814539757824321738827374471666988535892593367940781345924187863369033341234380444178625206620427861418579846164534498459529984813630080985108072203716340487047444664102605958255449474022980104871104813707846390655173852786159231979937460485091272367104429922442399012412277255855750396971897279747766743057360859894837274142415109892589766126945574671395750835589570721880868447763270817919049576427995033950737494547368769603822738921269055032062401125030111755673300542623776164746824181466974041193305773634714606539491416953680481017865859027809531892713848762169312668997537611000297827696573474503171320098058526799086893523928820492683239526726517981824694008199776688795338449507451608760291057752782556744367320174658758106734097385051727770959743366034874977510232138944792731218538385446378610497887924472098394629401857781465552167035566859858271925481115390232155816003241462804519179397895115898936939265385303723661422877416584355010305487870341013954296242008993909305207922849456348532043056168494111406054653067589686551671600264328793092244771544420788465619094947236568252328285192797816043000245882201787231207320205200380837169645695179866347420547140508184231956986522710928753876285306455171693246111576439508922048557106163079669603535725244987069811701918363422309447178300636633640906939196571336384033078469444014971170530538962927413783599980027078705621057732200438946285664764060320506235805684672727871909375562457075405186711348698305628405233787163953514971171498894031682031740130264413638493079577452060408591123938088790899128273537921621071234057400128476499253000728561875407316293748182121036274498666073210978030257184711644021408336929433165890267234814587181728447517279649805256178151638124267072538537258904423580662623289991511177660602657667221563354498724581196552430827707857275192612858442142694938314815724301599627978557395334960294951546833658437130820536818583856520888801856588310085441988648719742978596557381291573233379271361872543745868513466435394916592801538533394531233160915348514345757576093495213067541925789051225047179264376257425366736003439346886183787086866235276654468429211338272800018523995488230507328828020506758483974211007388394584394021812199984147145120643006293786794057970251422098275884118857741460482317447342212707634951862670776626582663971813462144732651437115742001250047443797127251644797030700880809118741161793884134109387500261855645923994680322580637980989256784879903453182328813205715733667553061892073487898725094172483573330214442227445601364267566513867482867575713517867935039500002559240507994084803004893759603604024401518297004387511345218879309799998418314656910115076643808197295961502498861803048158995715235998023817750420721061495255980850592066783239959700754865505825150100870498929985334461671245556255396300228852554326459055529276172360274373780649818763243207137635440599107824306230200634943051540137945138233944628712316494615576625152886820926274141735115953494258669656485054504879094910755676851472484150762928848347935078394863361721088775721911121663268123224409415212796704181482138993971828611305497416297613427081890654018519249367911080123742598843317341078337066837940685868457471441477356053520822710811298580109039027772936382645860016431263232244405485688504239643693377164874018572344817219276662668764651051466153072002899588669784709850236491275633021131024025608112860769181118698247612901397371385162696204296752484362367357694473897223715774461521475974726310934978264006724635508721385541105535681111450594079480266450548321734992910028059985078546673529645947968884508064068958013845103840020855178669265383532101328916022906158028534732206103552451040343834953623161623493810281622502872112830852384653593207865506815105386558467620058755938236741946242816562523750126755618213935695453055691058304837956577670628471803614919374169872381056272825381318116188247959409786841672648378658045008903374489047405854111161709548229170864304814463217783807921672728984533998290276757407715078928476361736386696470395168914891169816960205878762086521631439963758047053969018488294024053785268021819879191881844895942322319069870139273727319107254126565760035272437411417840388685699421018420934253571661239713117683827851907591865494240720998570823100107230264848545874607153109493533530621109068132253007909834052458156064041451774387564022167082497837590701082770055785609160656243049953792659845780455616360312549243870171643736272610225168672163470732495606660700294833016077854941262750131526985517827349911336549761514251008211776211312662738523057395887777768183521714106993602871210333403808742584150180574759583181388226894579581799800127517960699912523833749703119239004695180366218863292082366363833010826043381545405790318295704551865136866013986634351039948454554391657628405939813888942718441686886108706347697373548673655898631811294132255748257936095982102450448594686858280535328618680782318637614177925004678706291001253633925755066243963094045887797159355068801483801742973239688640074837969202648815347416745773539478810835617464603305672591547102256875062653974621452326226830514668189276755001427151336144633400050072152358731136945305740438087870610787803329782320548269322650673531858553641686513164876977081006773741764713772511000252757213080029320747425528709505997401409952084616726477963616186311981164382300603510215342157526223100461109499642988357403996994411280287376521606340748893359448975736443106346928590933892443105731895076742937631381415293349556681734966133024663095000155345138421285490584099070712749447806666554774617817589707438808427137981281020944329163241006026224099381403117442151319675553832543926805299140878685848800284428313463623017178399270755207668808941849434172022752802943733480250404321472928802142572527009101060458135304451269295091141547516613525876132771414139981944159063398720250670786411625936685644622220676840268714080201029088644586409329274735623235388313890679117213496966562616096002041976961376485348864115647525847286292471643917545369464569239972553324050446849155770614471848661568093831322034252435849801410297809183158979286643250175758870023108988055442430218009087505742055885261242984792933926434558846374677666998069558074349033935551125985707963045028570836339985892844787487819711859347766247856248972086424421245054949242677393448652373695938562345489006382184835973249566312683166680024582503926277250670264297227530139007035375577954646821787937047179450883592272536591323325668148428052781643785533463323496675923340694995208971931807515107173834145808751631807047959173615112810348548728833473587541730180286156536798597374551589097227185583609229342222955178883629854638308749988607792654780319193037049888627776594180668786304829256419555424733185750742815105454050640610711183986669195787022971465337621614534434448414254149623670970103850540322843243102702979983104016956191884345598694558812879681495751008759537451273674504327481135594790785169251126056163383505796051039993728826422383024543559830665790521702232842614333655247642381865139743502756113320342355759324662310175521709185774817470326710554482913476241060191451728698924268108745304018910380004752751365428263689269632965671916370790033825020172766273664203410833048009212256694834483094875179775112551951496252971114222389715562822393801746419929607139155235588912950062654021329914295460472520973982583462850449009995410605032850377135654467244521381507491155943451127768392845607536063405143275222191954156089058855277179856617725591945722989333441029379651646329692855331967669048228878187528108431033514845831072758847742337767589827462619299519242854828379093197682110222881279119582472104342789800259279063314780233774966486810915343062777657817130989336811840701524585104846126791053198242290362993207386415350455168207821943389089021843516033837153679555287077861210599582112111985408120176478757259010442381544529600553418767952284770765516675949088718317349583449711610334603483570342238142667571226217812345128046527288300632038779410579681296308438988560518327831245899706908122890936420895034287068830953900392258101587680654607657519615815118619758756554468268014630212822378820584204623762523855747878165767870265899215825157584056570572902015427401004034324415671813081158058497175374073489049034416400747713633810729208379542391556455054640495805680087649750258252828576285991191093134958507541773636311634057792949907503495151087076839183785176175351686214674004141493558434971353070119318491315795481345992352682953314159659728567221893237700286866222724717014352543829451425752727366079510576622363534200457876423411006356647172079182446414621658266155277698001568928296430989033123639680567633334524674863858019888792234985135320823050396664717348033642020428700637094313750610031062966298560077673089112632983235222620005076090996256380751698564817726440870183948186925277458453704524739044914129166170600656187083748264086616798837203606616811131477633988840916919504766012582509312320000126244687546651278089273696939024551682896245377260369671528668764139199711110424969054326113123171203988075363429400390293198381771199588039817865252938530860485924322387535226055255945622467248126539916696267472648636051366043879334971391284557389991849590499399981514778770507082138867901180602456598113496534044152854330682584755328170997987972569076731933919892098957302964408212570301142857077878399188194952666985095772319160403386961545586584052185455552426765688947423098109062208579985928742222472628277633130988202138964246965010067173848349116923660053631583641003876905156731453526649383113090529865921387789745302177788944800322634980158189099085057075807417232375155765117763929307389729328034153291522562391512310379502078195417011284009292285436656211965521019403698106586570456251834055467732697639802740965516201124916540215738280350369989249146018835476116616324905277037985605215237929246691303147717403266994743008020166283437601447111531592881386255920147538047496545247225442852931386301964196404703026940049311789556803984710593602790211528932104352432640623292657354834218493902532898049311810716272263225501349534823148096113406101206816414910135717935249399176671806105540365410076056262487968761997893076067989378029514516372810602495191452411967264849218929172986803891678624195861502621787905351334036098882291011039719969483909378262663834366528394900282834013975166816569025747339095869242115701797668268883917724175254266758055783942502394229318379492309704407482102814738831728944784329936767569876937896210898259617658130722429206693336917440226411104048246910544061539319075024084398112477142388128455105091507652101190964392627121755842784880780996255655989350081311802661799874959177169258047824393834727648934230176130139145705295497693724469204500336346086243245671361554230513983904713276015834358652377743683301497455554202172837830993686686660760942396347452349080165303476946621680802788292816031342057835372978349958393780367124392500196884692692046644658556646888518996423059591959795621653114846172035357557868741029420485242533679140928032167461186590250224131453352890579839007678400231509945314502982597806859160925806194948161781238741593930674234666543568987615913678782357093076324465445274916921047570257829871811492214044750447608567779556016858185232137485653866347595811884466841272036094753217163349455138138846096507960429278783317726574373594002959299377960082538767308182504715145875558839498531304184186362696432761981276189537115646982031844771844096839990883621664882367482193371557428235789730000282890013141706118408467246776843711090440176643407293867851441898010622120192192853743755654857628536179041553716736730999146492444792311141659968570103389984975533183650228671731496177455142055175689831708046646716537973734194054898670394263468250686631638808323613170919976452966757249307196977805501188857103007948957931315720360146121907251360364563935213818125240436019718711865840228730438115864207350784983764212244204289726917937429634376043922389200394810475229647328901202039462727435703342280843425254316737053033620963265510260506017700278781989575103142917833612283412834020810411551234680810093418300358242877448794940981550962529770208638198357029903987491401691128650286903698713539341339949936217452006417401297862530309968524710183533030699129315520113008075472002721249404729174748790967534296585105052232950846357974576981160813425724640035994961791360494718598386169910321398259829607342568966376244263335962650405461624844803897759411956669645128501654355886891458680137011577613854100430572519153204326759304097303590828138467744182396961007622120013907375819619617497919419241118994477501084816051986545072127807045543893520045626380617669718623594837242944756454965827435095005036990831065957207625737489758825777137264432447952269149940283604527113787170083111408245954853878545089799927054773761416713406501741888205902514649552325415758879599879172048146334459522295847170021474673234583756968897695246988870995174819356351710285960215429387830421452802041274158589553251033371947752807397868524817966867428595600970698984263210432859791702493375144038485565468506862668686127932450169873305913034270557903584468406022526529109506939259920264319044213949674322182129893888565663255306948535761731515431520829183769237626196790838455288803174362172916467770165471393760768696438546854866885821206554259942721740179293047754090490735110453289508017179386714990849433890009195895373011683108260789922786331750762952265931180994611899595165239159378210679429946516676904362636963918058923098261234205228763672480767684490588044277599498775846108266978550974477479569253770416965559047259581013936982068283156706213581068432199253909333544326951984025971803274991963899070767556955155945231632826974487980449349150313098274481045416965545295914911324722232277549205436270794654712496256364025980878594331773482168300162807903188291289089435062768151726784239113789006143146546925609855634455415059711904123598393115149627207879436264173851178095343651211454868823877433570760876642808668224539574441136589704231518787863624132337489188875293775289962626129427924445330555573533170966632937174267821864067108683109396253042043885577226072817695681298372944238164764107382621624852712290424631835248327598447653923990620642924413813462682079807325305189698803625624807504909247271802592876220261511989663611373034092200915523006644190058486742879775327997203784065059058368031456763878860398758953881496944025919731227830529663548757211609545477578985246170484194311860656303508936944885808879157444654897886656315276880306644055855990159171780616735311382433973644139718264240532322668839156735501892798446866773572871961196905114348393818406650988032412895126560715688060776642268302696403243879784852963503587660457979016225317099955796599691954293672856398341134488313052071902722411892085476608731588651850345253990069816258005754094064336585582993576026128643341036484419525452758944277823535613653597049715058282599234794777127539198193350320755449102207446666303359746669279390245167894987181328168524310755878313581897484153947817484385265503675767718583811884184958147407317889714456896361205054584402002619708907840701577658088661188251863113022789296098270421156010099716546582780120637855160971724915408185450788373423920718724764037132628517230334355752033375735761913917654893925519237353175051318742176135950618615635426425462211009160892426139651947529624793018869365739985928671011798743058998170851027852898341500971541318005632042318703845426240698983762272835147949286366923956045225280550784892870958837029638703217656565344576655129851614246319464019986243093824451303700267985730951544971001401957776713030616829962627405733734001747410646594298813810316168050318910038842605357425690457961121751140291905433243436991098232080943619368583313700248561217859027881179968777232983149888646202490285171790724283250384779215145600770731905663889485967069554366235531020789656556550399130873818180463621260687115675549141277855258500564227062519717134634624227524614461936132697407033517827688631086430842272491935793270429507878825630520387163927424556599773286788977852641494409581584572733590464301541037255717426451564644170800182967450502349366306736947740350668545499199262428973287498720971201036045534287472422007513871435945009344389261438727974727268963577863473980501052506701890903177536013273455259312186921091277986822756776142124616068831893489588363571580185246346819419866654719198734199606832120060933242032243390373654646838924190419000433873584814419276837532333547875278835137615660567557283575656083474745197046251025269769613366114726521181719292833804811850693967679356782604862060992984388631751031494997931115314036900299007982312384090672066357884090596699653741072815492253314434907714207352001477679671935081416931810787313054600183666441649862127928716157681246042925134078580534397654096092670835751666536380880041902403178669647532560434498909712961810545250289906044084000054372971205111608858069496814996729947412507859970414711264327665764838271544948178006085116024871876672572163369356964266705222347472815167630189441271521935506881599656520340150624579158941638072090482358169326714116438821334041576976849098520710687376351191043331238192592165824672058992685322631659719835466701747873144118243482435609521750409186109321594090529006480020079883617716499828145942191359865619259600942682138634565617142187638475916671295116586790596514794152446291809593642492321364465340740102174109840364854743965808451336516277565275501237836620439538838443235514567649654587613692419188080765266763193274893442766071236912277303549045632161103246211884511389104908072551000929941533471436911029635005964835579442596432665765070034676356457666304650412171850484264180952984025107727282096225850550966463027638337500291859206172554886580986727789049560366979066297090122100330701719624315018268252870222567993563403267703373972694730870818980809214820901811707062714635698608668203969749854392463551232169609664441048806806524289244990698559053832049577588515549664042845027511515583924917660482511319357857365028964646031643180262953168197648501501001329245750220084308992792925437981469541812273003944913973387812036650999991701648666989107535447643217011277668214233302284142326258591087317035970438367397921812765647046759659664180172448906212198238536964218746038597290502634347655709390031901345086815228688801941935376604670048243248707711940108461541882005555196095384022563347729583486614945025582166992183397281986510155366183828673473637295915409842514554380683618221949512401033425323398395261614388736338233239942702750876468604586253114160564745397966780771143445544384394090430775218807393819344498337644108234038097603489339990557203709383504890258385002432183440565886985939554242123143577488753991437192908720413492839363765699878319503266742178292922907554126389252382669071629792887185307981520072385869096795208556567485198704504404159472074213468527803492130425370552578044382958335993261959765762505174421292687037354205714900269316600334002459888327669376192782630849233571137309729912018399733217222617515145288001500759082509349859874123268589491799004098361835189114216176501192450684575612988736697175601276874492708593826131859698172989819236565359645690424823227360236558762068610107715342117549336211008923631023370852721149865584130573021749241551341173634582012677384266703887372574250132747507955852499636250349435351252202586731238086479450193252823894434071530015426900308004302273935630329993383179410467969965966329374878129598136565105001785986968954673497548515017279056799849704102697095312059140234439475574770685857665304182698827842486074854282428776905776384772071079510791412304066502743626912323021594374095764705581556664848153673204405170816370505209482459349826021832370526920165945694979667347808258795182620366238974599458603369042758705777741540843615107100000252467111944346703412249951961381414489522819088264568522827307750247470438990459492466310287616022475017901756363702330107567989084317604705768163203669876538069118005837867993393323230492884809382145078971483372959820948001742958218337271392119118849895840948782640905260824314787037980221919992976424627452229239542351163022542209061243046961656751165095621476394168193503030906619650857572565915772381964962221926859340505750187763023534658664023543497606626461570083906441214309123363023112000972266653082778048209098464497279917826162021488815921921207756899499379325601440868685832185409111381259748244043581069475443689372623347884974732153922482712413162833164423298537076885605956781872821198202129585669846045461029959490599161000864632081249418229125707375557045138711905952090595703462610673478187689736545789958919297642773635097985471220267519117957543812128453999899765701289762903594624747302058764996289109107976544783599353181874930776646714134960555081037910891610565662249570659532457916435410400783417189323301550217759997317100353594361076531850311148717166239211808721702308379910305071202589724967966742441128294149032878151946942016094735426758544051935121024602918714034922815156535231358215784944384304057253703044902512115427828109335429155758731029585675366087392990208275752839207711137783899100028071396735139232298525865947566412340080955265786484220152985435508692272851276575045351554786746789895297287621077721707875256328677759458272709574220413235437474765764849475603775732240531525736818068769978174102865652356672494139968734449392889170062585607692726278564348298325602153892877319234096363884758477386454589440942722528957213580516094153612974891754891560874885510314251771181981144672310782375114639293234108426151695191258189061471968610186173878938621893176200945919062555235623915042785650259758073831533383615787780758594827241963687912081655052521720276161157405806873962918904674506995550833951855139583536083618867758727872943435527802833253107590979050817275101524498003545719407069706152748901400449425507617799241969561211703215695850545688095734169845373387842826479336358930011692541013699184388638681265695124327926254388330963205987643455380666226514188893715417381809145404351460373135444788796902038684838273542652533192607200043170841954235269192436029456435526650746150255123172444309253435232569168767848347060269968031781842576905447484869115686229635927479862679134908659245155009129226937088514296224653066581610650249427531711307280645344250562712865289555198685789407067571866974620298503933416822543265345711768381934171428164496042167632338015707705866086467030292905252237045541155510621413362904915529541153070923236568584632615285883955415717487514150108773081272887947736514794945647186768479736724335603084393653678534060729359502843401491099369828885523785194087556576463309815047548760520456436681973512462178603088588329880286085654999428577724265265934176713185816662796613585934057881682099165914769954835727550641434871093847708188100146135980524853581304708539343867115516351787565328398440295805206125892282930195155745377086393579682111011471427186903005118178574544065302397132356432256570366358701253536363994046512138723577381783045517216559856929412352840794820273217664767175276087115496146283420043128160215017647791200308040942473592330642161822595228929375292598204438995364850441582424880058890538630036627125017451742523957444155134824844813316869865371571838770577919221216983400982468598207189071949721635661590570136069609698939091928876035491113064156287540025797797403725812029506995620677049139052249124725584021901048794869451716838222765988815112679295621538785236945276311502301246798621408075671271461515776605602240582955359683733120537902183603175680938331738724123180105582763885970471805727292931053218580787720450377324897203908333836000727931338638439371217458712074142892304938055592635633031458281422166642213705518716366962614852465848933009905068047068866383827817053236875811821620495362844630437931214897834052017320323060969661317041276225378539079728543692537198968364756964067020632272766403940227593170033649707101168930675920359300684500405904841097873127477586704395133304452268240005510488109897668925041373389107831825802434180104145802397544320582862872181921897637572262286685005056330789885798422892249806005588315132026101417198847216393165309329478866125822717640084092952541106409644766925617567451414005262704284343909449551138397955283835559499826643277283001958022420586870551371677063317102819835452652488215966843672686025810705067895567646618771061738933572568104802852936706458161092395188593708088518766841727354562731202359544169117603964453674384224401281151568106067124868752700818471897263895822095173516205692055911778923399753236488902196550910923373034079455919355580239443612922756854327665526342448212815039758883912359674819074933393577995815477748893761429059324766061402046989796954531277621174773312765365967240802209196952889980219334680709093689192142723454496468195611817176264347939036117371809908100436214356663986492134462808546288968605080034632941143939445567777711645436141315403421381128775661451300779251866741155429111607273133100353140234156475422649260359259115296175411348862802814547851532360820862768991948439514620876289153587750368471735146510216418080987624758186759503330447541521147236052409410877508637730416104051612424570792873733071509251374033578043444223439300501120744204905597033961447399707250303831231403530977451295356966312802412392708605011964511460181514212623906674296036457212196840929449861182495518908707148650495641456308965786531905387460121096528849176745948123198447203280176788526921228565002490293280562847267475820670301654850157180984345563150943879730735286586023708183781301647205547444151847200480181600667183295289258257295592103882053331568779679026523586146407940056247886617705751520334023039559039720896624762580324520928656081732583001043059883440806320758345343310464151675340716007233356913458236684829021972989126852697556233930603274837283898236252247922294833255360977782853733168358910453710380909326773702909788952756072399801371044176508931804679489692174987380744928103779469533529476900643498474782990735830572088056327112547747127403655173984607496004568986319870923877101180703659543523437858723304924955486661777479131966678084393204121487715002062840883042473031590958554250611238870754452550077465331247686076864822873746558388780707163151581654582913485727467550888247555593900617741879912747216428471284613409440137279959508449466178068369065939746642859153458599193593757706395706616296835195529748904385051780635593052620449149102739026831046463462753363824095727712711545851375344204024809736901916451825707057133951922911420430406521366435651421201928086021913643643599111836965974398187195371282652874850299266163963486046326170840515319730199940978626218519396078600195658992146004797128167999868293821685895684830610609867937877811652686744618285001246779421282864224896353938524805227368101761404752715953308937082838992006252572802939284594866632948541941611304524615289788140431133186922093941710223834934241133057202666871344512703465457429332831544273620790040518876280874637183671815131279621074454175127436710502725355284791633454999888095697607701379127577318289846974288377162726209698514051228459283688551179029109062126353161650972117905942070633146866771878884553298422211919792570724752761370679651885829245512479562568985470831714117991640111302163564148689689157460771592366911471942996784517315831426608331914588615559223926905142297651648027135686094318051486813262031548390321410050389618571517993320202110970738771674316161972007745703484255103881930706510351075870871506816675494273578116554022787303743369316564706689797250051377604816549664249177572063602289593851771230612210016695611295288648649292619647468550329888322449218178366670725431539438785657028260365751115054549439892678288599076461393942288821468915616515784025077902084251513919071227782755335235014314905776192446541644462270931244427072671027760050830681134911267417384795161549551105690273903882112544710124206858744393651244722380812945584428935737549802980946517676726638782425011352709279470804015320005489967971778087305325143147437474952895489509527599409188353441642992213286604724382949988820538846775515956753111268353528219711398850417702128340148925017335847259060832211771205112448581779540941575151749913186107116069641187737650520792347117024916809514793060202375759083017728373853366439187298845779847171588198641547854289457624285003924108021977715356418752740182738105507474480069680968266736567010880410999696600575152132016771919049516965295586683407095132954529355008244127053092736792550025012958909889758248296920554754546224559159185754731439436134600814445551899992079820561010963635499380812708390030858325378080308487923374096043286334591422378710049490721827837851741831459364152213318268178983079406547332953501431435616084418023479878315112323537644485295747161331974682837395957425935441440980104116600767124934451935614679098315417245694683877015730905235778043613250700191646234951829915365234776638368918742559858191816822998491475240392665540325233577747376823657657799103889496278534229331385880659554256743686535776493596321576903897600443632961495947452620146521676544661152208753592249425798450179791300311522148590559221956625049416645900624076511120428330353497304141484937782524185754891748248047955896304865131281808732289465757745861541705356782044516001680595398671688290732716417742757593295615309552591653270948496223683381758447333902346496900196997883653426663860221322622449272312377969520217408118357557505488268290226231594206243930274891585672541836626095368639498160161213605290379165452506699194173416965829856695849402083828091565077866591662432312454144256936028175728663410255138891988992549392430949067337605812310790835189292340752614062830567103718294049940848260933196375616613131510745831828108956426346354929843081187254661134375250359624020300011298369920514808606246154179088620055882089606384837113920319959265769857406982661859221651921587929609208828995703848378244477042022054002299610533686070883383694831165336888204356117129783308762192573380366834963060878383089670456893863876180462543125771135691432080716795644899332252528002780086473725754476541919489030842478006268477940256863810876912077449303152668880416799444734908939941922893055477030071736648438577023176153295470450665999338431228495461461390554420975931266333705309344656780374819265133471528835818410776844942311597907970196488966836705744533321678966652152568726833697676635951879004521396168959169876112126331148902309424794734889112073985041510815586930321813749390182637801648950059213149279668454413085696898542231688413738945267235593255073833035998815311579808056035382589293266346108558517470231847394742013103327958429466021714604125691973645676699893066219417327526393403247796339520289485210957553430204710589654419354315605005459632237691914457365850139281715145742631768437531961888552869453359029082154076857041519497486459076649870066506435408026183422503753202102302286494262422462353875486508990410433326871205605367001775125515879198910062871762147913617426020695232957819031449090348751927184518006692580503792410390696745940052212983320642557317226190799261997689035582569524353506390256619205028527182159179010905191055253761104983571548694035002452906013824135834482245621257361361500227976124423240444816336217597650159667485209327370510961177943965378617256662643042352705665120945370899938912172641488291570992744705940218776899341277876146204239197605895200353347724427517005499185780398614054710413231825697545544557906296589254504255107883160729073765669894261220545912748094926471489468175377829110820882100791580785640770092413507564659797300761324421235270932322729964112043594879118892548144928224409134601771994676097726559333810289216725528727175439628801881668549186591399401776384823797778133392778765048880438480620586051516106260357876529185595862252118598282512186323835753062995708980632575311175449998048130126908173177597574889546973540412969676785597918904589138493638249838733662028968355903998162812131468008502667190393647742867856017064402539874520647446121210744449222017343276687701118545552964900893123470065584542967848951636193712875717122342774089473910166428251799988589649876292372065045376035965742526411201243423774772552957147336298171413828005571501680778891413844430550932067749246773015505109198569335344981501330962596870108808619659914429255868980601446942565338903889475736103285455929865973461814148632875373620007509807285270784028940187584698342434649928989436319873542677898857759166164314461281612313446255450828330872035108924358172988587669175349772780033027234350089114512232156198115853603936274667283398218500003576935219360546285919057350832171907556639222298237585152025128879355987148732003838628590558583522755150580248480930834395393264694010350381442014976277461881555071762865770149846159808594409810732196804092465164064200666981104091824695547680270162260698329645755757865405326753161049145569752018027708129222481927081571564260184599676783552574516735710782481713344531192522312066724406422562288151294125615349412116623594903831239441794284117572098994620688247953751824788842967032298131504702598292263014967729127139601646994606924102487861433336582084890368922941444676846529772497257458020824169905805132840139041317949523636160882149159104836922023289706694124057590882169572010607043577482502627550934140490821472374401725746451387830071193990450292798780790067185511908505252269271279393576671107880737299802493414912655703030752959657102117532513014629271624440615299707030248904701826729788558423449315427453522047298016654119645781147628357264487908550465078689268779323487032776680689316929685677022683601030587292232757432144550374343063788013695557287206837487854529122838306370896631849074827141491023479033468352841597247601989511175593833170870063385880659186579860053074605816126769676908108946506343102005346356357777441238721358895189882596932943282343299726262836812085356665542593222770822974689329646487874785064883256814603708419815524982370085000971635750279339048554814565428213713774272398001428439549317256031806596101200067143842722233188436440540143205803079259762428418419695457045147898890070646709934383875354553383408022851146874989704085850176286112727945033413459451897163760326476802039094888278340430200748389700072554131674124201131620859494331532529044741860819659091556970790674099652271694337078478832984365029124974992882938624958106405418897353299998288669544590856717396742629560082911162303107591861336360842472471736704358431273640684115151725482286660892091388541813927903537417286367743455638467377566739202360178883080511711088689632532470359691356329610521007422580079263938463267216843845213298576911200528575556496740844227223462286511577948387156763971456583114617168561077694745953141296962624224683392507029270913392855981702002038996180534800219671173471798872548170184649135659208462333699521580738891150849019006906902783092479307749303749818493941642491493782497540239880989199777240574091175534151214987448569882453988048817122133356162143415072807414807807450262672059496458342192112329823676003112976985286504245460482727676264931221766903256116316560210514903525195428866261409235350102684823435498558455509190947336624989150443274511787433109619029012924469705494309361671956130288643310742279303884180376557320089133803503227154928354041407653610991074583436460655827368105982428785728176571173102526675701253334067818957455534505467644482141875320603607415924159599377951994166904203875987344241082713125553292823694857789886498542855592082114609171445207641350823665726977009599699868464230385478627393925355560021735926418960658524556090421430484866092365415501637576656782961360216030272377098635885418427325295965777134650685445659572751046463700001909166452157139550067429810705851952059950773248228627067567756592573708800143509750456472478295112935634732834465100992648564650879851383006975013672327122490785143861691800658818503283450799819762653321745025549640811681202103586510621808900462041473751255094946158529870346393902315193802462069315833868108974142980392917748393283186493117336567128878815888597846735078936171488952763432040329679013040447516046966144605215473686152988064702304383059894925068267736172583146035394884871412251838943652153383183334440816476559644910368012749636417386275619108452610185517272366276183500722934256826296113980734929182692475979001750715036969123822212264623491062902404638048046008032052588992773813065491627130729296215376486511930468294813154622047992592401426919171643070263531293568888103873735218942319768235638923858706964945869103244114935014896480755303337968820494808329284966510910363545827965778971603450249427655678013015049070681141366310165760146086331950836190820344070348385791024384852657480260954037198069956964500022950264022886111245269856419466976867003384145664513610406569371523955409151597841497787144630557429626779946905149278364162983881469686671992168767920170471794576696863110497468334765110554708420709605631749029062486658298359597226857140830588387555438453653084130312772525481493868336276262494507404062305162057037280889228451051431976270393905803160883187575709657292774346392526771939001367393146871073638977581597569159366442855911648266098313570450396629582692281422920369279009987322458697839939861674725894484955841895675351575164278804825622896232073544513261006108061251652356975026041029332644390772691218274414079878433610999243758520965985660769418180054791513820981190249574507512157804133324964605545673219996650096428462361137635799656560389039190496792956549247594788809592988513274986596015294508490407124952603618624719515539173157456713085916002324277410368355462347885648484518819937240976119543127371102197359139772088914702030134209742056068371416562890259351935485277056772476783197550595202327775016180841567040999189527368072077225071742094790090266733931816238944648520174048021330064612330635899527897964280236585001065464890116881430201879414481771114319384288694429534683581618711110436448853734204557173120157083580106178843563246377243878175962863912913845619823510353768651672988099636386615287064201485932762646037958594501824195892175099288970593738150538551037652503886068656437001041628090198453417816539096820814086694731247498787296383693812530421477724816647103059913113826695658677363384415433541575988214548283481842941265670219699096781439710091661367700214609709134353043351958615757930698805291389503815348890930349845476705036241629818073914557327047480235673876909667523441567940832121879331164911896873610433501137378326315701193894454276972569426213962784278215642422405631421429060459426478625553091575634000851472682804175042518619717645290986359703637997848185872888834228225160393976887565124913056253665610706562865519809952661965229206783217964230836924577322837843060485113840250653406347696394268590975117796899495979032890544502355246186210113477385174761207461152120368500687499893883278200804749821768375215250993534938316685146248971905131383828245253613058998098410192118047555930456254614239932740373252285791898815171258344606681786863178632349555534819657877407884485415071987846326232402862480360976909576800414398130818312898304309672929295777647017804422849561538406044831733170909571000878318805109236294943917007478491765638948361872543639765643607184850415402548379146500843001597005455842165642504110076611433145553738810416976755963879670942644495971506320456022278098373532599858362337341579698696373807899315403058938743054746071471152769035177289607873715132739920360244319224098248633484695311273238782379623534862484192118537808816500246491758005047312718734507551550798986016269667361584606402940091139030382060930356473068287772960477184847638205899484517574214468770964048427079451494125318572399050124162443082901693313967633655085178332745502857020993005384280799023955920464479273217304649707482632732013867932917780282087684141990086418374890719586757143176953845245112407699681587796032215510240666043974721402475906928377179814489034983263984342609951756015530471552299537202849339607109093929010543961825993420374054167172821328313859366969276252019009103130406167683667837503071700441494980103450051767734532938959336194105614900066861657421848245927410292154773811620928225056030188877630754484991494383905276298400192652084650852356157354424856135078357036217658536214470312358131746956586772172665290736576815773461441902557507425396018857247820063154359386671646914110441483728236945676509968310453466893201269529202463020531234430937185109190015787940006611756631964908332632393340843569148725134895080832537919923290299544785281320191517237964530043246099492750356961667494767998539748125000894174519513489683185769591207069880656505720459090638708676828696913549917488814727942417143987038635949113278068003805362572098736568794324560629168031549987853444643595662807431909592835711725006661757820265310259017861012512753292637757432533977969098491679523397737775965545933248595877402382145097836113776507831736227359234059797503256927423944366781449614255536852941742673864359477333661226185055978743221884252626714644486060426244134639541147644239119759386737205892725147424541755348670991235620504318603206728967764374437651255466097232835250229222672890920760324620503706974108491007699823352247754320516753090510517204736748973281994798965330397107154860402609630157788980820912288686759246049239791954488340651650055620442819847427138617408975695009202228915653828404082329877998400728939109901352083040509708027411488454927616302885308160042754659060197058366207584858139731616842045146601872909828017579319844718704616986385789393866322447106902071910609074090372552636652972331808458314750145964028482882441508752365825597238243105078509794878480035785749854071149818023391546295154541212503875962773707701299610341286798741249518950738531356337516311028117333464208061718063143987745902962038429449328511495018865841059834797957442717137796892260682486602919689598821844920399034754632229691077758482090110601171613886571957575152681120063085021282622377617291587008184566222197197182593106283820100051888118433518186834980813449319805726650600468806163047679764335038433675543403270298965148437442243596931831617609754137397098670672060601734662721940386427531631187643786351452942954525151037955337402344314242265127327160447952530604660006125758842525746098715481414558099008717044985232546055346511662997492137607529308353327748003452177775565250917065298518847776024618632282088050744358261480553291602599367557757600726588202594015984654552170386163076043678276169195972364662678217514032456015697815542836670979896253719699132516343441392766361299315382628884464905039268126842038978957335912622464561402776266540039468375687608419315028317774362992626134131201785667790114436210967172136922238042816363137632653928150291446442275043537592098018816785990913785551986287305646831255645092120779472556458705244546409070116628778628574706492103015038166992964233802696607435050457126507598791644121090524910811685581893229638212898106520696866662832115280848460486116172605916994517089360017733631411616650266727273162564817100912879435333659921365745227747969208841115088623269672416975681989456713281715988820904657718075770225972145280414429083731457178042692229458313428284685193539676793192287528254607509727222985273972456976799508120633613780531481090635261872531935109067037481378613890982845924936032768923765779500153114469480193731525024069084341446167958056449370280417905500013350979629167088097632606387170737599981801207298722371248507408743230401330102185631003065326281955891936007414511761172840812994609307319389528760805883709023129619241210145533131423044282023727945164801396627838869395919104786598861301159368198337125283125314216586267812607799528714098197684654250587009007799906429349708448991542967251145257995034394056529553068509398749103369028388573676401989051422131207376562820013685431086501936963840871217305942237698202125732757475049698121319339138074958917286658513219473670977315118279779435503658748504755942597679994638206536803541293154953490781807945250409412334144048000871689783578989777655304652524364168928943882969429658856481204600995917650821881330120488145668654666567832027619062140548640925101541862361568413597642659505721596759226436490174505423918970778290607120016746931948024650259071436924215160364516092781623251955511137391526683988010699905215143856670400616188709806391612461538321025262220787805625213975881810129301251368244351562567596124991827447507052716514491333703214030211735884250158426700269666369067943933886891065560689533841544238161690883777150005153698662033465236763623040105021917444747479082630303251184315637550544885376167962718074191797352921680409247004500496115725394265985257590435354880905955152106115703056193431517905494153818477457139323488943829959436543751352091944699954449353863335148552895927011242399060171218861513480151909943221504711935136221327979418770455381038598481880143046180675052892584036982124733430751847101514883726223888136558143927613579654091795390311129902110577325532805566595490130527411505645882836731638384556751981956295774335321938702181698775406921442921475493995936511016052980950629947292952766820898254487549075345659781147766661262477234295499102926870925998403112023999861356192039457721176470186596117934528204309402444334228635200893832373574332433294258579926963679710734755410904989385230719673031653813126695539646617287547198354155804487426005774097947310428778841845464684576059590873955537584343237000969552076468595166239714828290236621620364550209503837867295517356454208438165904918262157920111332184317461881731840570209055119756018159485878684496842003345040386872800394739732987269977206399977140768733839297902351565187554593963339221548131273921503123322866457715298448770439567818219428017407434522601542294119889322328116565841169592728338577688128764126068459341250379409339852795921737192596863916177792121516972717598369815145167845841517342375203507327517243243167529542336657010982988551012592012179726170192118270636047634722642637793290467693630212396874127933718464509437132640589071287969287869931610746739968981320695461439126464523568987296025565349250393523816420706556787541940570948372023598669342984353458578249851650142969019541411340658869744421059303746244919537485367194934705674616410147069240012976364703998218498728235172975571784445672353376297030944829619622282956136923651283730372333125174620513067058249068008487167132503731338642769703058728024185258864777061708299586222802061648121115335400106735932696091146248787139441419169268248124421349625945272932867833988443343604971032962991989443129002758179078161299938385544975826159103039255899810083187367261252142011118428795311565672809747526092916443131121201290599455277188439466892136547044197805345908184282441049671439526658031048317915462386207174866288573447346259546860248980614222096592584909320531550980669359294517361238071676776779155060012478596255135364438840198830937250323691487889626470537061286208597477225327576338577595341574842731136264762654788301616579683231419663868961669161448102164034390648908226806093424536172243525469639739388478735981245544664574961089275543194592164800016662518758549172039825941339590596072486352234291310995537594272757498828979745333996680875075792610449963561792365914288681371470636672312035279993757451360546230417646447134086730994850446068321828060792420544300769255256532219768787096508050296957199542608509500283583157851351433828965320660978212411466747735174636254977122085237114598700461160087160892649283270154900880460435966599766926153162502235054889863074166018168325804175120341864498877753830545060994594924700158386395994885994299059836400713145639898389083951907796862727036777570694255906586032307172334459859524802051953652035085753548531001048681249239664189594230623126813859456993036008798967883006416548754077410217536320281792341110137909567862323916570974913520728901864889055069591533637011258104308908794800767333898835838256875926194478198352370776905175072050478115206674037654328277822508761581637981324448774495630157167838960747144997678812404698014675027633397461473538216603434092089871386148754316051919193721159113254507975694096019320571663619772186645474456771384567363410666163868390404024070657032830844686257795961804413915582750756377278578722692899339263276281249842587026538010550832630075892269418812962757611481077053650498863531930648208302933055349161589551977467087344273796345896713031851123622755493043407196803031572561720642012410596464945558458563872681137956795156059871653298364090462463914334417620394023986550842465113187542657828315706301778661642923870967496409872384893952208470984177250762355569103297588397520874092250364969098364949412984224321289090956512699174486966943597544240611222854726827356093960178211104035924966281100595033755399560008036758374919094542520457714326214617705075555384411890561289935914995268912037496817339416651226208802032504570052026903845493930142213060698122259588333624962997856545762347065593857333515037358893024678079528004288889381862353928613209229943097465287150247699218107622544393596674259657777665117604542825659966322325317283416177317403733063832464123676476740860929894305984722274698541384985512840414810820344325429136226652955015880328320192459483650152223524849467887981623310042688320879087754501903954074067898997588031947772927541475669147589896014685316399354692419630582461973836505008086231189634155819394801125967938084162124426380601491160438227070372041167386296507070807843481577802273184252830236624469543740892950996956016497679245616856905430217220572421366778474955146876933324323404023836333247436822057489157651176684529938624134105982855926357869084474927625872704062321024940226726166421411356127958120104096444814626524636927280875360542521662355228996166290964351207922260641939448642189321737908262038665328516638365322285796573125016223053395219531989713014655927141078238332995439403036202368571598741951553471287826727467079653759814284622980650664870117401836108762106645197372164025933942342803222645140031399651271400457367112891610862611524450473745199224404161525152395272230556392477838224220769952594143688276803231237916196143835344386579623212715781776200538494325822080413381542380348493639575328580213276943955321169632591634583995907151248815620136492616294700788098162031711819778491309548484460217911569220091588233855600239224451234047131647920233487860566510541693712175572910579424723873473945822715079934885622159197462404986232314298908783570944044715091180765207765604721817131285328150282687996974059309021035588070832860159467251820122375030494370208726003637236203209767103268203039616156340663802304367570056593846044914166580986516519395133862016641778042771219482253701352265105442576872157499388791233310234285303518053507522926639875477989130063087273814672364965088442325529310569853468815048623252949259499103631263959009878194895862492985064163087896500128235679003655541068390514169154588605806116014917216440893665920346093185343919996204759078697072791268719268483103636111275133205781243265688083066949763851559229101030906714754950251268624715263256777069065101650498234994058307030463529533134520296441317354377794933136558950997606889404703186831288488799223713624158949301146194235300735644064664914395392950660470864527091091955458358915885943650452767495356916143813159169898913805091064068187636047140491645957774472443636827818510278610344988871619805279989290524196164679774660271494647563421662295160466253849847279310764502316917289230627034545027186150654646416238317942303531628022838094073536924379276110386707854579786157663636484585979984752409010142894467811978106012916984346743702195152025526842647190800134595838714709429747996078855596264531017046292641491751285086077317013615964589233106007892082707526715382264988044034258172470049776963486557639149169833331182551405547919439262245359976153044757313084493200511881789696911188650931876128582586791098891593607090196636786966665201787217828006841908923335499779338953608675713994595444124988812594744970028257405789071566306674479409471377657013279644372517342477624574852551910814541111198934942641240871133152925517836919606247157067196707656326998833869133048897890318590275216685288822128989558781812372819248618800253315186331500185906130791230039008218819505918904477383440397882003296247568939073164158833256755342615362161467986691164733939111544256877007423801432332781527069451270585877079971719737900950466000724486784924871043104859344451669210478011532377518858341043498500184810625734974147191494914601751211082295125685055618084113908057741799187194503206809067332929354529418358802004181589864188696222698112017989505687468032525652419600318328867977889178400792060727612675028886163787963751555161089697627989605738598369352109853266151730899541636319552917953609383951546896483522662162940615618318052532264217943855058547951157191410765802028015904248867044170249571766364233758747494037699791173120732318212418547482585668027288270495001747710477729961721517407298830055365318685657553789819750074930574996135806556244885419650241138213767238371847875468813550815522894850750364622012130711464872708274858432793728097907522323383809721801282379351831977161159614313599227503290841280301685548373838683243344085679059937782280355438992216451807343951423250270667873128825009458374132748354136136777764969000916750424843175975663701380820567225741896557042828306559419719803752347743615438878921181436512913791247356510372838329651993414340512539376035007689935670863834422866704485328460107444516186000311318531451997494878580321929244678645367095663846202456901968472030846330507673397287924713084144016015106116764811497341234366413587259289767193034531637524820475990640476706928511264527565222975430265090689569503272778834577126607843782671605213278994446396114612208370390846940851966558599957402459839173713613220619403986536691169322786227942288285290760050918096076736717181225847062675112788143149776587519215399352126517653702121052517253763535080461839709597289598381775683645661599187951393121383303238593939826301665847277139085137893158992335620372664254951277486986801987603495200619808954326050999850824535217593196882194309140358094543981957013503738363918304345755800718580385396806697329200665760103304927169729490270987622954387781706988062369649238874406799356025526353548894690970014865028148917915381975339070044737333744767616811663203129689855558976564945722028485273741498983146551235693120222000957347909229668682635612902830834733921161789092570974035895885189522853726761655738398283911798299025438709904946943710788853158427699610083349406596967366932312504038721915578028156930534723699144893082372312580083639997718096589883599835060264953821557403536791790959693993521683866998369576271481634220859826601073122928533525667659783738363881907386022287193438009720340126425031844271247259895781677226436156560980366025025934321684838956643625172855700710232453637182482860399152022564596970963380071068038082221943980275280556845729571911385442965588122937706840292259672885240414748301604168942822459468407327788907688954147364427611384685434881409591801189585189557993083981511308959284128887284903206769040086738738012138644981866090875697637562868649792375973903515837037417751257310571567887170765777945021088658459815011582617806855002119489739168670862594981547529747124540549062908820677389515581823661182427460317304728152365097735810955013055579029509952323202031516595776487228964387676116387157134287752632902201414892999642205783808354542372791612028055454117521576341865073532174959384292638482134404041609604398164453403588102079800355387535927945971799541868143455771862599878832958941443139390162651672970459187342243374496996626620255921308423824421475415128083391363991249392159745312178595246200446730515360759313686742253319457349180712863043112185225384254922120635688472510193937535095113724280081002194011355810379663843112235910702716350321722104379850205588440196531790456363090105415734699423409789821012823462293577984528352250923247817103898950526419904850109140423845074955312697856995272571070064339315796397213987887133156522276111550159419508722738609354781711726380391020538864428861934665817874769007024860910374139422334408000186038322458494040345690696492854462790483965076056953501705610909189885570449997176347541829670660022659500022565730198188584860327149103946255652528071801036950653568439941912468913909867851773881609866429334151597649774229201181584986117468979935041987224656959505153857256735522872475384911246819170206379187497891473066828536133360210115722758371955915316863050374696226873254694445590275487137112812530660692630423947047087251515895083064787294733613985588753284192529895784702363389403233948130274986766763882870698566125323492056347933723645509882492005877120436114982593627243336171555390236205988952632432255023717517049668843080210843039879195106809966785347599894679299681189210371763894481762168631289411937844571602144554740806293753832403285248686477844693933304612693885511072109842266177157453295641687561262003447084977805603117251826629112868313797365724629970992570527431318402568559645024995319305319366888372904483360757767700445310559033965588351081971354467110176004117565644243629094687809567236572521052749038995183468204319805854565992589096072885714560892965002386931987422648712081254443534373493464644517981713737208095408007977978119419532915871042039990384346532821329023307708469495609572293234671184682645630755790096840484340586940932364476798371552283768884710236030007592744228792186279134412927836390663354471912579258409166308031970534471758759332614026965515905239506366624000837850879341754206323269408661769991357149948871514039909010020400939823071284996932371195203317532873708845804937528528832812501424139226754687762149796702528101769349499726827508188834525766026326996854710518184713881264457326654433117079710933002784574426218690192820334951613145766009999451766581411475646354763855814200813554115931515789622788524826128173528090263322649393335882676408720846404156144064709425912667589144000491257185780893585283555474632850076336547155070320128051792315763810976377456933661843528242099252935359030835350144870549921710319632146918002203960620442177905114511688904914515542609226017930930413046338583987479154438877579976042337760633499814413049721196159166411984107689302049065617783014140694927554876305798309656236000128002382755134253820458829445947232295257493959825196340708144252879548084845604728047160991326321633773230431476202678122482941690331866272676921856889228749994582786517699711520687252946069317533437449745489351971584517341901003211043947665097431729517483003763352087281375838704741479146190930153415142537913850402167257322909937016732418957780836472670625672135010966312425119009212115076694917949896338122543197781546314050258254000234023417899748785131887064411877778021378788035903642055709111071147346767690075771799261391046941479238888152343105956421103036312132050172801156774746686332891468247692321913047377150078436873911059111900118124639559367932912557708098789115858954944603166733276772629882007106459484236030491388068546119021604977173366082734758024646188174195621795030130084545751215137735545659301037673527785570703997639703667390020672059825021347944496950014428498496998934834755838991600968140433432980224916077801953789791290725912131065969317082314967395167079314199259007670932564731347722071030603464373997838264950052125723432575173567572481434694292484429116778499180969295965870807413084756787182664471804389383049103518229670787546759220258249117046238485397517069587503010438400065541260881238307362396956356793529783380460317087022306154852692929186424132353695776893242872386797269262963261508626288441178504959783722024800750169759284410834527941208243705014771907345360434914656490714873829825286298289206402360252999085843885817636539418220831541810685866954961451263382604368896534761257833602149027045859562475202102260500898606161014813433169697403676759495394115625339708464811820447678824395105550582754442383113952287361191030496565166645390898066782318023403243660880089328500206945567828509211593907191651279715909420786143240176085120396095172564689541390858941261098199764268482750827650347399633417111257113859078529812348209209055531712551487474976621716461123970033420088803004516493084578526752703199583812443042257227457231579297636165002613097923461216238086981775351879145461368138393760154598570829345629871466459463985395737672324151078158805579471623195742180437679647188005462799564277987805197813832592898507054273760304303150417481713055324916706921870961302119859362924288483213437914628469951719355125394209421508007039434492796896418317801823688088803661175847648387578311655999467337906696796901206843740466440292063657976577806353338546495975602089282750114004452814099990210269233600178692455057541693304574790425713025499233771503867552886853185840666132253093354440274248965714875134409829849613017366283645748157630360512932525357534079473767522176044500682406869470456669093526433333221390784206792213629681962947420563286658056438388877013959175194425470654472298241183556864837739670702338909525199355089295253252860252787881872646788599391679735773199163611638812615412329964753362735861217313687132586504978780147499203756375158606649696990673712343842394612033333473103272112795932874016956612504369015905155796088397310441608830953981446173249740314557135178748558039828221188983334015828204134535020795033922175984324688914268842232402871123976386003366131204653878202270357781196749291068834728462357320810736040767488325159065808919901024513010858342635454089010847395417817625170775238562731691691159340286972279571437355106373299832018376654481458976176508899157960323231633025111669503429148366369964142196854716713393840893216423105526046354258068912809944687304761845690629770113314506278725417933070755031732020913994015284804026330458179724264227680615697715449019822637073560439574182520460538075643793503018426635600060324685367172668391670682115032903947577421966269107779294079405370386372740238645789585786158463333125499961383763897259623376767158076943793691028640820634906524113192272627884249680767333408343214355189892436854957881149336217133419571402096244080086900069608260037837878795693194816211944296851139378208564621042863629878312199409127737008204650514242517422024762930470668057907659575618278402231195140856985461034244849198242332314889338772042568425177782268870715327886410124507032542037536851513548175071644995243038361375847449053021863622298638190994913160432407431541447573708631851587211729725162515324992147685966947512888129816005421780194166575090145981648097321723888105215051996665612413114454099939882141776994076241261067672016686280196376128433418619736738312222308134916228295022472645051493867516529754977319259228341129063573880076701701731632086208440595574757532046980605369685008782315447712795417138091832801510785492664928023046052430673377717921178476969750284024528351595472282960868325266220211359872084270684561312984863460676605999430166012731900998473189560432888047432557183040678892318979995792929475095140364507682236309295966135222430485633929339192972598119146325078156888100764653206207624618623107311916342255880670636840069112585894259306790994424296370882786977662467338781602444965061655016189787420419521239151870425312412118451486326738872264951427392834746338539924168957900300387309977898452923968188234161040518516252971597494796988358886722891245803159076368144268951282985724533614543138175291009534551414034969061681386543935510498614510784329254041751530671632047994150224621675458931189339783900708611859340175091790418934688188562039214954297331724074719233039304693150522593661688256040868476305507271172943332487813140291759660492232189745034076166844745427733002112333691854762051969227271144468942828920224408645626743548681302074788009477625144395969756292214875784190303386534126166281790404456737971631935830038140483268480477945390731363432551579188532159958523547406852882277939630169418384044174084280858067231604483759123211633238936144704592324137298481447378558600764045630461693752791230844628050609102210085343101865027652875667871261554042575276256082469075379101909075792244480564530615437445344241377722889547468072770562272707514408229754884597927998552929331986679745985622107980159429525117884863134925222625955212317922257432983428789625275845242640439416415512796450695735564216265111679676605975751126371281379217714148914231980138559607183932514545670355282948556473009116490581250670482181765147241866893161680004056724517679260940938640506748612941599617279926072970489874454787396446177440511381614680180577916213362535424444971026851803223136849224920803286775417154659733831217219526933597882907303249443217282987525570889300326717152557995094798812843337796367225494341508835588257909864979479638363959247556532547556787371532758588009408482715051664554651911857839206281574044335062885841186995486741186886705766894485996240845906597910997903839243583395261339755300027584134728778661624870923845372969228497650965365201167439304313725124789940085895615818013379012064220073918763147015901283421594042491977424803986673801564542301106523416143065813965908029743196228679230636526056232038120232477647080347839764488073119603313309200095241416392899278830269271511154868318056516273577657015493604061703433086228796501877150264440982361430740719541652271139786700435313113182525073281862480807423743762721861014186593846598499620339887124198223115467397194253261798524536606887324231699822399422232611136595200972448642829398541866177009542788896280304327009524705045010761708648354466732907380017099856210445391130315055307932562842466835200633838815535577716959161187403614986296695818557567976715054975782748265788197537884372862749473561271014871454410356846573191708700573212226408820210885907379751741095360163353662404118068595770050012981898134028305450528382517326450954842644405995993168552411311516055890298734017336221572166574851574232192107631607968080057788769476202018933195340598486667475648676180785241766759249691541618459686855847629328156952857328027040692802473320370692301823798380619472260906175242547431696922637752694024588877155968633400314295930592275760049843677132087822208909680493446360737932127772524398965361969058133678940019523647887161042468185131155132028643327652421805777304248578880325800356192576762970672818428143076187716490041383545527314712351445464288851277880234200733920687747283311835962924438309627856277307184364911594959143089695440520821222929282054836932823837148504659095399909379975505232409328281293090752022236150876653048546734963538691900862631416022453349802036724042447204097201088674309527707293001605982302111120603503628111583115413570375457224326559465186848367904196900957595931442146600136805453320814090527147646022936820390777136778649638334568462610490944030542624799328761644518295967100160987515547671200096560088436818751995818123212819029427728106272660033352027098071998783665768627598737854695153062698837606201312671074305548638320622046920335567441449080531288458702701422577810612852542378031156158846247961846781394498743682986731511832172794433549683884396105960388973793337802578744911231667149687959826393200553698686338028754943791688965531006994902128837860704335231333164523873120446977494258114650458619821018503548179611370136017403292298451227286816788683578024743816611757179597583298452149639969313266428869452096782731965157092129750020036020694041693334248133094023292829241942035734396105466027604180782031863772652879360164774551401628839957708237517289586300304815515838863942314038224626610949038275348777214155651530955368934470332268537175320113348487319920553622151829788410076805349788430647915295651891221861741062697477247822131510730943763017355178582040813833159974148238684355362475601483686637204513448546589975401262994405350334750616666377966483947122016348659076265662092079817842713907359065111963212880223946530298136210170647356295940212572745339562043800352081560474771878398746370155438244292052195284775405820433432634604115795872473459499433419213582945645138540584473502289533963455767722613805944566317055492443651398439307833065761849644744448225419507506358400108422694369877521563293316948834113601780107183011238242575003504084865460434456033046200858904199096393346793106440260219463666120524924532149240350614992596644724128633192617344569727190604428306532141891640835702551147505200507986206367994966975851406821206817731173865509903981794507310109147849733853125579721645694821985343079453021206248138929387951716746517912969798732761828106907949701360453924040412255192356728874238485259027945848229978374886112775368647796743469727398390002201656590154181026392419899805368791468498508335979567858538491253800689815312219383103076941212838445734270284847246961317707865360554224733911565107753210205374274747691494445269293059689095527514176323735953554714746565337716803105704482886345047101663463125591549495113111193992515558937249017763242203334944787447733666558700758607874003611794539026352468357498494737583600120602247447310988665519671751460854633762884832096053977011385098787902378123361247114516298626318380989860614258072446042118533154276034292742245870965833877910715326038915405949102196265175921788574820277170071243165256082320997526873325829812278137005891210546571531567670590335467791998110660669239186397625590258491596848292119977910107975932123970537848655580197098151878440917110833718752622902373214413349548778851448853644858762936220269197591331894886104590001405892990878319507155023235692971798643138197465024122888543598150095967588304979167424291412704792757480215250554646975015459424732777888017446401290013694918916180151967080941839553733457700255184714777848320082993502031894512945627055981518187608591155318817950542742220473750985659941123167659100359145893345548458453945791670308126244599160607829406109012659781362180753133170018132718812149779894237693569978490203991133198468193182348429590067423593882950592603270368527882342651639422542242828932578742738739834300387947650686951570724072158134380000354435581930777755082545193446362696462225893743489530354852764226265831898328081173766160206065518617716032925807185948044990285930957362831451356055803740009485803769623799694979259211789885939031272089630596872037100879092083390541937184082594533922726290521083719432397912570143643618243089853049603453446866508698297118627101586122545305548020305194825546262758972722164299754723372317021915126156995897025451932736243750081341616268000384678427419146271668838846173023638116736756845273129837081281957223600612428508227108821765749988014278996762605533725631282376825651966335767172717182524874336149424272566593555226850229102601694917303148662888745970738991141941055966342900751857577492591162777624150671273237550908230753788152720132160262812619419840861517558333607020456252614525250508702355822230577838617422040426297462431160926648757925910754411327709818841061849803262830879313237672042581456365815355346482780117520080786926247207199407280756688544327855104389011662704029563004223019118501173381091207569402367984529828512671762499363661918931880859273177473653316341523378391827911689523865671067665505059502371699300971082231976929780325697935857907265714934382832919568242421160104506670251142753882085766299941550926482867300216195140383980729489536456587501486500062500448893503544148022245898433451353733846269143298916028046963343963507112272415477781427036658098857159578342571061169796798933069971979739741842332443898559553639306922748597115179005092644130910343567611148553133594284825497477324309734295417890348074258306188484990617039849725911535048298763090249746044387021922430975994551004754484067311157486472946672930163022188996454833582881214635591056341564210012156515425107361604454805565385465514553563313073347044073633852413949036661670949243790768327093319735351578575897736565216513077036199504386997891020828709018136917715426635597401319699121727921254824443378640129243444721338788026788563342318295834210992996072668585634821344156736276907940835157856946007215325555192444710173608691690832985585789158271757290717932105916608453099976643067386220583833336519433181167788683324620834322426325226209224088745490217043227859639621936245144395929360488470233362559117171752883680490158527207921015415830699416089433403315873598345768797324549456615459527579962525448101085141417509074653284527160120514142533199732094139899548508384457168004251865137968534770807655382734121965015426084532890470495091146236370048754618824532713159992167408780682512177152244650988312362448739023197448824003691285712764508786767106777291432618399024111440402143536773765315226484220358836401926780977100032177730304158832982214047186620599157216373445492778143111971389506911523392126167210967560993683175222475427876901821425669857296055649150237485032609803813506652564872258307875229289921449379987979929360543543439911684816169105017836294289196236338546790110326805680596928851826098333382611736990876722744912232202700030936094155160995639794730050112522995496434690050240636425282300085103152221347185436312667916171593975990995204806820101626958049992368599322720147966300535746163207204124179503048253166631763754346612247692821004668087026238508962434475263176692124008801380573189416633694910444888891848924249460733056245838873170616300753887806791965814602216765964841298502720356349968566748851794566866423122677601972226807340998716357068418391351580785525399508008193277561555791803639933280674071984778766048588789891640924026927541002767927122979635453441439640818849208583150814383929266529890219498701950362425673037404767928688201503872753203366655346476921181334541528025808261733104212018822741790418116861085083051959625816866896741023058985711333092722389462213225481065586500888070682606855387327398508632946205907158908191354218486280689758396751330152503862841931519745909333617765074136178736507486417428849649297474644730295154960924524089128888858630117738749691518487485023540789431012421235296627305686882893290254488124981104575557386742645609650876818969250100400418176247088439558499926190130546864257522646694080056632712913366806053289724637159216746749559432198541590880542960459154893803496563290018922390393165760523145767854944515277885990313156701249269846417097056950758457343507831780216468385521567877849668895037869077393892611208595595624322369880809719497902586044340990842817704530973131862654887861073924033464827046647977031115684460039019577327735183426521312665518571566772791462320426066378217054973084775253200879031966508122380703867183074076565242146873240479303954698883752788990585989119702256839483222059330200911141228435698553880213741490713187655278944896296175383376938969643965999252878167738881513123934617725161377588505378533415291184071418464017460895704279170758597649083823551002281801866018287905956002910762912257723320203345992830940238824526511140810263202792745162541705404571611068042246342088872764726864996765271509561485564501421992105802116246278975016925737603781278497132590117282754707462026003574035953197493190447776468866315320399624852158020192084162827787450637793045211425208202346798799329176044115884787018240014738453990765877375594906139568436869538161161148269775944869302422615449339786217306847812436774298256702300078477592180418595835781153018330043720386243913487353772355018450123850729925763314389374396889988455181081615132748192079230825702078687346067702258660927290544144419856146523684554186685887819162308312736428499953858542675974569247788956090607780071326046101222872083934841650182038267318346548311485241814519372876474625134576873933075330261507237887892962010734873802047582948089138136007869973425196557054294170550708704047218323264904206313101481137389247249150687631754514174905284320224985536035106319219101441037026210886318709310035559681835818418387263422794649118077709491226718195392374401598932519037805439833382742991466530632524761025116590816516786632787821761100780680123407736536505094670076020704719044810534427962798474329048544831135181549737360795557935568978638275346791769964903685448506838868485235019382082591412127207555860650018230153100088797375283390742813220975870783175048678875376119965171248752431150750040389162619492663897745522672191398455834426613049226514693559330640992962870026596208263881836421366556663223622035574463634809097609732196166635869586895447314313251054182528713111673950145254939319083031039618402916445694193200284450414986147500176112075980477102895480310531632028776817791796687506682161254680346355857358406106000806794213681057926319328095855073544656966825852273707419599506663321756457050610981001120443405714153600990610246968269447440576479770591596454625960191403233087853757843445554967313786718776064775336428790919861198213538091696721706960658682401000427640361137385606592487065612817083648708612135608411266024757086905508432997208240530991391669265736544039766417115124244958474782913752758642191414449674616734444995985327754494165482613054234688913549064032154037642544239067997911292198546740418613200920983406927757409756538380394398090711815961203948520962944614088455006991897408336558501179371247177472006338551667013162239069291801354894285927156781769833503537308515356914031328092276287921004125349212216867132179805585712448222105694787089416054098640563347532178262862430559685384483579683291642952777820828830176837369656208361759259219871423939444818046798313284111220814260852805752250364953577504494767467470180521409748499808026454208480635732705373324968597201056345476165049727150827449311244382888601251887169518633917704633793939810689330080004275016213273530753391683418319491458160094220716746824414534378585186823556410334028554945808914748218960349441454751263563079732427048231976066511618705048842297030002879632234543562672337722761600766803358192217446192093281902897388771191891861611771791945759332080333955916520685252192813220861575795603391368044022174035670795405247467713020645905314568086807403117876374455833967247401657698653250589651203313878625522491181009369157349099454440287863447222591071272902802457781795573365167118394237389057086821266009295713580447802386707250309266447218268402997741629366924784400253473403947740911769728250557913358919598163966132832539998536999169424873016685090403075051536837137669728020782007239398404215527333282150860509382132652977333281085823956993504891992716703209003715639740792399448299102028301618001860005618887610838051718405374726412627727517409215722900563655555188445354583086438624581442972096904162449030882768508210030081237156911573837398096945667449928878067759049460481194580520555363350497204426072898875356390338938939763452606576284029272477087863220106495875667532832990558701304749087662535853059318793025373916393561848526894129450330771665219042257906913126275931238705156663421739070151529673429545887506147278430210286605698326082539119704486982900932334567661715873045769963478230632325779694092811684399564195416419903163883137393886529196835432693236916346268982756391416954494151805849038366784985284993557271811523917133606633290504426250389190314862131662953217923650680419569717054164660209312428384706853497769351795924457901060004727840856260270458648277692401492040715413574395465397932682309823481465060148795411382535173611777666932568021468187392542959444865647245938393808888346219992587135885238270840719270889360681760818649910108106697406394508315683683151620350234440679928679414599859272883545003226110491448735784508054783893493027949959095536937488434567224726748624036353649896558254318427373451191214930734654828554894921012800713970604252047896228677801065786562593816463714112204152114915656834746236521897549226640001416941610448922196923797416446907478990408098905985641525300048614455311728732967357444033416680691948896780114220769694583807318469425444467875052278730134643352699358290985063615225658444774689504954241836961752366451056713430911900016411375103036938676802519854790066263421672969058179557485299505094356677464941018281524758271250721010729854586390269978742073857253159449703692561978717543827351021867495595850257668515542798533239146403817244600488053994147051736702956947448030754153047446083943340153133293669783313453707385116366251532028073876936378069907784040276254430682616115457762451100706822897000022904258619250417386227041642956817069865207654221359953331993856290324857579680027137090866099010185156307534840124827936110663771205625214202165718980694711053218398277572668167198382233278141379806107360573088188308418786512207239452856203546084915025351278525266183896559124042913971359045490577336343668555310378384845398448541884636650015725497428789615718402890666637243739996719949911349838131762437307394046830872295399874367223336113513617892105632399400329419107375380873550687486740454696361149765217199179934894683752914962392158802919911759872756512773130596543755787012471586061488701350439347910709740733755034712970048427937494883974387908879180772056001365972864462578244427355094166877059145451133433009874983411967224222420387467030267273286686813043734485043843860583332706392714526110613206870001605567534226431002912414883573935966622816341163854907128726893936052729737610755933256610421332587035802078137923174756933905992667578290599937132540072999010307000558566364584755832430637181748519799663998047878565085362734990632815234281390738202609314052782519520310627841275167416813050839668798434480922942818878700709946885149557578167789819048055961904309697335751713882238514724479565666851738765592671826832822341793576558280689928802278717980944192885331074471290815371905975711025371887747767852497531460744001631478739468038546800692870657230580128410472212297319543282696753464690875475951038460428703370584588585636997147439635610528327051931988993764140402560601478998161159908805733668952538652104846077099303089916671082151309115831167618653887387224521467158678497966728667385250734137988900133471053623820908528806449758727789880199788756387998393322831433216892321224193110795224293284732130802235432273706521116048602176522923326007903604312500961515904661164159528999255985453094828772721236143064447582028801514497704157264727680569043153183870787770669431172053470935808596906347532223321551261224762607458579694738309514834273214160286311807218709516157054012272546422083704510163540719042359749618270901445019062980359445677542685198050861120375788777626536404846634032204069225242432560880146274261481153554188853967211658044152966980397500169398376699906088132088831436282190914679305700239564924443869325058088976748882038760749262926847350373147311113980189858067073357677162840784586731692936014206813932765842591963848601895888843989634753469298700075161643468148534926167145380505347764638598397147989525376619888462423779791105393370970847464582174173925757825952379635113951919869498317319642143708223806669122265828659832487215206736551688424127786521082672082700923032295637635674487895172708401510557148534949596405947864704129653126557307068676039643833920186567615708623256323176553690729992820107658338046583104947067556758531310014377144209311263760323368910078272630404332090660518120579427102254915576512226724374521068633214150197193126673837378988585043672798040817891913279364575049085002674181338056359482358623513426469210986709762747414913863963931494864718495344927206483741989827773611469625693783588363783368441372821420442032026492426790636863747434239121664000787788246196441837910935364998442587487948220701596415722149693518709572987310876781695396970755250219121450735164407794701608602146561504206651114846788678286804624797447651924478143744247126872652021449824207557978395309381456572788295587984720282000954406025244916408009149197142372108513299549459146602515593405711940504661737463152077102073619544424498247715987055447461398696553042809862592443847878007890970254681368041089540165673642348035906891879405384646205053105945924040082376441014045115379924073698446173664628907700409419519933101585065288845508596881510792041732196635168305451980561546345950973032162383267937585779261268981491913943400760469988851728160521553322092576021142213252917924804488339345855819885375997569499125863901783182059834102730344736130304320501000880525217588735410878781323371094852282865452343382158020059243124250769688807542883374405526779381871011223045976639170127045205438584206007948987562962185440598707113536961132167620124519335922649638496008084287538733132029964043568100724739383013624587200120982054762737936422669838279989167768159172404734610103265715246863049208319108228186380816454395758128240728566757986211346864216169479216939202246991080027990553217427505472010323629772940184264153282223907168745472720643093380276053059367482487210620802064457843523703210176480392546497021118765752984897940892844479346546636755875114364094370484924995584485976062901110481460530848991768086677510924852082890572560198846036623563993439851530582865411564147323756132795457508923319118672512139804111808928896935645342310797522214464360827218215436826464774730711253989228497914892294296706678034505723498021397605885349624335152669575577138136655219896496515930223792709622872588276695762502768194490740589110960711005959874486603644030153762097787688793856606857396208949904635498875701390048092738186662458451129526138127540822432074224238330732697708460841558255220433214406247598616795483489805842101306390916235954488462251710247624337861181566306314248786734520070477193003198463438870717745042136844229201401933895079919099775812497038802657676295231026690078706196930129004388770433574754568624089960194178561568802015071503621864351062905127556137227213637565353034049539397798565923474819356158309602580574346563386310579699901579029802873644458399453058427740490703039389127139210905132227569700193440788881405015569058666292416635594740973849188302120646345213830049820671081550464147610034161529767903906557454072548316544837049670941107505192707202017226660219472130064121664579126389646205721052350713880999044245785538402273058634895861128016489814181874989069320641297615271606921908032484659806163417507243220418918768163055422984494460656148736356657376616195766142979106362517032163274910808560343974695073172277173581759765116551336601799303834616424819786759594359249706614923756677751205238642341048956148766591330289946052423955570973215635577358671892206156905897977319507727789536114456121308453554877870674935800894672553620084136317618252794511360552981207715077597722596944177927118937457358490434584907968282869524319572368620799263693780739111928636616772174190265015047485986760893122475543031402715179498492922956786216348182915431117259244528465370063236923172534483344180360251428531628149371699097713608900569259213594028494843987801191039296733166739691048172136811739390520054055862782283406234406511386266097635874742895200092661104865728419469657615057072089794791398121273874909343957957024343516211512232394486942531561456554365429881203474537709449132306045336353844533069093039523584471861872015570117319758274397026669685374615206329625240353398863566770335063075330760232737712408063434197545377200159176785020120158548944001044273519090867873671260993945387539008702103820799424886310939581516651600718401053284219537512875137130445121533076094927229847445519828199763346851745903332084489961655223727347654239164466944990206301692881933117189245645226290388938789269813909241847195532260921634391606799956798145552279815300453544006915150743665319292640214202163384275725022837454871124698295847009203281570854428362670601654290468828103747225227524090057851205397193553977460415843783437869848299050644298217587528195663427143640836103119705578280897175939685326821203791971557586358394164362745561020765229918197037811624871946867964938873825537438368105853395068751405160999207948015103833220272701633073979631348733595979078503936905440240719964159513912039662633869135341880469366508261249876515577013908598719753799390441596815219946411570278066065131868210941560320002912278012329710937496167499978722960138371948833588310254188663269891741543995144715469107877177073963468326528610340762877227418307448661886542064161445192459821406350029668493018509204913064436490879760120878970103932303727268621878260496646593327274569062867965857047958999205462440174233392087646116115430908920373966130329819582940485447163982739237589857988912432486848681195109397605195981559165817797758405663610047061055107662123948833211453941255299237891789970503427077555976338735640683722752296246599723247542009703553016728038450510549466447181211057707205155645760294402681353713193238936210888767090057073226009699063480569098760857297555240140803305201724044336088830416932041471809052820976390535235741955970847704856897704959006090108056492304107864457173666444490744454385198295777062072971432242055437982244264500667601320111025792408233479578192380531877719122646236614278860721395121454960975251031952400978758198871283962463365755313751942644404308924198578680934517611059149380031968878556207265524153979329159059494473650208365606412023726444369199496779905030444262669885944570092748619474600665197199253658560473040205432758144164086817168955628729895364422308715822864203952862771058505584519777706064449957005766901632678337154405922926288045156023679378153837859607773946583664372685157747892274806930296913267194930590417655627286656666098119976680366759005531940823273420092906538232830388688022579630737117442394827312334314586679597341768531225673030368989758932484013196071972859459300008430794637246084590152842163694725420737515976189150877163088154802747919115549379713112865213999372189855727004026053083119836311806807697425099256019117522111377705231214475003796839383684728686027905978279986273534212664738683295708995338761685529965079630723358405952638521586468370893719583835032238621523528726703559031028681117401474472817657290408553999147298220646516684092426063213354973473548088529860211425766571217027755886933635178688215417365381209124581066965051688924820420800999645202426091169907717345267995910406400514799503285276692230740443099530802285637705145204733521962752554336669770235537320714875667500540305241783228437026130434467360377121673926314183245439047281080748276120072505905538324001629164082293479348308747292183018235835263576263750259164118729772500092761314758840360459613327141336239490452483793663250078825076869513954058439840678835385147516235794281257740182708402635677416659572408921519218769907699338373793890701661422337793955235348689451405569472580979091387656560627150765287114923538829620948735080472785937361046534277682567675503192767250237464159617677675481572334052642486662981934249746133823162103540877355324330286908383940733640226015717408257697850517683329147672463506865932153860683549724658046991310592540293917390084706291522052461258450554746269361072223472997035742706220524804170559677342763884271705626354378530625297765476639961948025509108889378379731142444708220512141453065854461577221015030757519906439067062761301325482550861672346389217107274988772350829819560676983877394359445955804033832320778537318847964977014350633553591288467200810872541213654986060925092129318086736881435727140500095399188903982022234876893337766129741154726176562658508127494298052585260442828596287494906136700942395444579941693668923138172708468906527764841107394985728691790878613537690156625547742780360578989015237941098561269484457213068064153375367293279207242969362520848136881417618256072341083293000646914865826079391581518333894558524741302895278382674857625363535607115287822826368449066010437689472494892922101861232938232690526860066272700182416902072152628642606469750091541142774749731752708046104542726869572286473136197622268679221598299502429015693140300640963249647472130878917168833153772162137433400329226380341215014052321040747590260049878602972371372061657062495381314997466175609914692695520436076713251054786505708070844330886570791477948189411998748162084075769177867335167311438104639550907773374359324571957593363779288627236431169395270954464680291921413872235059377822256320795661454494285600175266251844416494696741423117168362095518910317984072814175318853256264360796314938622684628547186083609065061116499507380324272779251215417202098739316677840397863662225689008263781914413273403706471257192434525354112240488715423866733118139762258722137845188226723059255366859680081742245909345418538748317114812824729661290953931163522882483297052099897533177161517828676191767636334019121636113273588530680319192809090491338163526940414088430565963696578796717187762706632261159467760213301369698088009976456151773916510721608128406916316784268189624549704601030845036952361252703102169774786421872684578882447132921245148202312015805955235472685280155988155245759773682690456106134997719295029651873382475829016813695469675268241309543813824761962385707433711891209043999972830455238070514928352173148854848075565297847684464481245619716677088769061279270134761873201332406762785045274055139975480760032044720951479442888761769911076608585509172001912765205227835106672746852742493405494751248100534092735687083183259122478351999322634623153655703675410359945273058280230112233477864578868661627864232835254506589743240465510373552498924317873609187932277734891678945185986555825461599483686673269133607952836021459426702020307941771690788869989965743162557367788894481803597846759585482508410654478051950652612954307577516388149564288131694393791384601986785860108185122167110546515837328101298836317918084269627626018950234121914167515309753989095889603385416700345708217444408302140906888702562315034347741870512782299430855044196208691753455338875239053557835091994984288067549794454483913038499849353660180860295962613009468683415919377427594981482518983334604286974777968531940478225000462992111885768438385694457099080517290356623307710977698875409623429843205361870653103035708352659271930197781573140563394592942506762592939169784627661557641597336479625297989183650764333705142866720207364784043260838406623042187930142742276649890173776987105193559009767802340976423466508820777222228425130060308650514533078870511204949287174717797637510272277024049360922068769036322175264886115571264579275610082022303070866774012328703915963251113718858075287284924790766090425763015722369386374726796521323045870188873247553243676650728147619370513441389998116495767035307720965008800267511769699851715031227369796570922958187040428855372905922428315778588501963236956630527894251410660607055894764850944476028746855261411164019794808786383066402781177037871041564682176093386865618161857715093712631050672855673481141390271538203725124018187335724477818257541034074225265838848029401893145063670742576907839760822790830679573705593551950431344739164095102515843136631432711478282696153168755430805978544388890610564791749890528141485017217160366377471394657462069864819041618331804753086877720582775066604446969503523122288016926785509682992690479233151583708446737379770850535160306221702705108779097028606765754883139895644410071552557596852445620290551767739822435539839146018924958680646725744481336052099187805763732671084847630178154748696959003073498660711916913797456681630384709597435888295131724514324019099343325279981514821490240094082187866245739724440414744630738584297272899488833440250340598680058040580658672351280897639368613368191279043109818387818961894795206640243405539738617857894789149618631230359601623879027317138309842844441888746958047704580459505623934831535014275049409826119991260911332677415692997786914730025970644786141301458406967354191128741622224212853026938777524721460749122343951298294480853366385491834886290135715599418959928371574541190096111618556952547821483003692855266727650335115676647264109569608611039627719583339289411242686192781812960209491108096441086880158715543606999240374675107479806329544986320417021536799412821272143154311623998604435997508698832471385329067454193562977190542712021611777979381065985395351933143926203523934235718104872686895576182590684249050139770122529458699483463002399755206053079334811863764719635072167184254605193746118356417877406604094740940676403505284073698142717673249053309815015753551366153911853119153982506661828161150844509076785421145013793936909972588364580462774623088891353002679792747357097785703943992100343693934191893584995220899249724300500683674780889218744615814264240111874828457841663690564949614981118551866984341170998507230375922317897586188958881339283457284953932623051447347718667490520032933583645938586245830264275427639319189473543772588545198560845587606005255783981070113962729047880331893559573876650681527202073408490871873812917136926706020639023433578862824375862255804508704500136425599092886634917172512507487369592526141441228737283542263713982843762622394179494781197645328494584051709774423649397921443842121832031417899025943948517086814955572859667459497619921801698322372188871091044186352469897825720311470896985969147715833218598688209800099393954568407809062820521094386115830212922929583598085945893547808160433199621968734257889737848395886521122475983286298804356553397506540151072085971699884253954212000240197085374710496607685269683968596672876039591479761097353777382864134738606159185800880892472357002952637361909700223886674188289757330543550701296973468729698670161760715085528720380607245315656066047100049484609588953997974749280360387496519504390851663115835715652702228961932166771487609046867870461837785351969551600278264626193773434440401810384630996468532275507583085092040952864341900195346241504894827254530401495362837802554732855053363351490708611189717817843444518716665808471044548773979460829958935909271864509922540622839593840152661568435089813147255947183215348359446414298457916657808518592628722773557851918012258152154464060586435185532013627761948497122674287510072336848349683797609612398769056549901476863109605103897542038944935457995438102682266748691098932982776099709761714191340900410427393138736266825408593014904850608310504985928589570033952839810385851377418113171560593494977515129499829840626078960701802106674949498814917778295634075939255018931744695049397695062765880093050043638398936744774917696042202213032225071765426275957194030476699100744776309690656853747894152811446685511601228450364042657027240475340354837692138333328858232654821698739772406906482138095725087890366092619855818658674900163010283083932937835865024362825557892490117412342763337774300038263074090142605267137734184532179105924253176697880004705583118912238518903094364537000772195346717756867808364585265849779653351527191937182090632967280270990922546562191352643483275734608151453081375718059961509309955630415555974557406272795249615074970103818626031706637228275653315836679296067216968704949017755544437338074467473923037631124868928086280625154102519097108914554147629669590143586841046469646112041960502708909480715534617544305504310622281106558359290692743960326800183410149314266074245962621806942080556589589355623558208060762354902258767145134859824546035605622916341959509075283687116859053978041737288603945854331060461599079031370701246066840921589615641990368815682504400423978767530052474548535953386673172988438257468810390415993164624663818491447611325468875476898146877884808529418695999769631492192885023107521096460772113114382721421239291164727784106953425910413988597918797333190864604979496748167519003705685028549412892756577128616295408553273825173850128067734659737221009388870007070468520350268275217664913896006243535558460805623804116263055327794403067173887828300546391327722942943915004940455843074505951147764519507009184500507475051692245689629329388999611168239037936483828245946692543077708291661083209505471381727104270824218670849483284068656333056834059007688670106876871057063243162004286453598215167598441193907569339364092740617654239805731989350565333598473983504843203727049778451574411423016087206632388577185931298754513196663656306116173146248706447570828473146916332918449293721271051545947814531972553311223993709744307728205489797247849271899626131725367852073626197429718923262084717479196731447104394781386817493395794781686726076165281207965544628396775642502715173556111433324657014782651258989945227312529666494864626886333936721214403018552271716621485251765492003329392343580899991253861268916578763402531696962475391558000916704431380209036041424141506309517394573434614331069351202878489470722165207235836700843246833970696729771871908347714255768460942315605178640259520298837402442434210238078324517795937341884835288967430880770929545987240866470043966901688614129499247974957804568787944614972061343020821456300253815218175572204716572584096421385111449958620027760607552636912745885923224810249416576439988031572451578596267672744448350848977305848508863672424521250184210641439752751342313015332866076542054456248914542108690025019858591566554114777709192449729264349293338234846321411714271363356622400016490936655697309732611820728913547097084286932582268115642227833865754043865730239375699530992827688362919033032041924549714520004745526851433218214584763807685184388030110961367623338607819221988192409272020775780738490432385690136780915709505904281377393125858959351982880510619796373314695985617039143355900002427531707087103103694874387764455754174970680311071471256083981098340109317486422586116389222147234830450823577970273062311125601374631496445909527512524953613820468265607061615586766333641888054231137271497664471611995379874756864796330881923976209441791616459612830412418749533767545019528325333506456576749176512893810932146145686461153339600773026169205907763224700846576794123474754427281600809527197410124601120197330313219895519508896833406173390348286751280973419696664039533823893266904183032183530053468883942784959640532676279847714602110484895830895878741004515911330435833808054165928335422373499035419188892647416921746951217615239444895395698694342936495494039261617970568720381830053721279858700124886912578527686098897590735015762171683991977359799376245123007156616262646038571099798358940063843464562807361932855515545524114205311960996811840943052397152645543013344222435826393080405961101675409064310734077405584983124538479010676655402170015144565078641785257141117826163659027449377710900162653981242139377001809638554277410298101585088331599434299220849202767479871654163181137718595270246261861562132735808782264868853613263260809632254028470840994879296301262468513942282445672232542065452577297791597394596865531758843891776704463133357753793770450134837598963891697530152750255733733560376017236229416862054891440328429742859834337152750079465184275183889145921956432993322427135894567858027395917114649804712481082037770973416522621829813541206252471422603026276366906763873084252051957722614323208145325336077930258176346718463794510940542717776584418983498846156658365084543569782169928907854406798742993754843576335462099703762841373360952313069726601694709553746977280286058623078975725815155048055468144648292054816070787961963619743039104389673026220883478366578941464115889823101090239250768843140271880441307643435024924984634154788459536535821742010619253887539029922488779626052664118280265229013265527698163245759826621265884628059435042484505413281904551664494059813474303092294025374101196927105502563434576761105586499790336750676424026757690273622977774164631443319551637672114731580661909487622478579139017941786704743493862241822326181518574810360538019793212562003288776420694711401005400968760093940125621441119784005214613239553003935001894498092394611212661506977458692269443294848881350076828908366616928172739981360700014774927231991032998746591470364516748472728224455948674988199849476736988343615077598108746168659224722475577255566047113518986849966348751238309571555194204521893715695022099453081680669849515440014132263038481447626938764998883014363030273812299396069259004792700173696099962361291562336514733889807105428223159693903559298611341375862918986110331211920674671095654078454359934014304812160402696419914184886617233482149787946221148975279556843869835837758493960303180131104913210306942623705870069428759715503374389160558323872824130934213390103810025372517259325693100277214044211573220299124572478909084496650692345868393177841271857987540842937749857931096258401631306318561171714546343239951587441508037548158921065233465455601536398315368732674977826077726282544063479359204635920116192836271589174158803467213369245156293627663048515551655403370906556293737258148469304461948591879923352624266396465605800152325126119932052593120323222989147946517496639337983112886489008120061941763788650668255120257164536312647141627888645267028419441155107962166701403917164326669036136393336046238359418824771000630561006818111361714672019535871221393461403863867810323199160604274782436504216459476936577325225848900760414274404221231938675109211786208525133738721198361922010551385386105965575302943934115244307939120449534963507867029976376455625197521618296549640156972187997288495305347273767219359121000438986057748319060965669753077007721947708117224443018666943267920000770647807556409997594866188009336673750633457439830600852501231898410847816721878059114403055363504896048658786488309839241520415304300644207978754546811233809206284179312968102855200962334784763028098227492408381110590286010906426641427029747897451440155210589947027990092394967367229459784253118395834519636686670621505800347346183413922877553398276713979775792724469672088773695048426543729404187103000440499597214563199528616108112445374950179942640544962159374136393908542794116936882297138951298402503275993199084577433094338029851491563448584816930316446403872483843149136381663608185824414948129829159463994305181894287420651182024059667868801030161416950328194217640237065594531713302076127951633036364796607629875801570129859425740846562227731053608745403073947585195885976262395487997706051118786130004318474401890625134744291840808386790170074206928975637543647815110834941704517709129976290203526976179270225647129220626660171186966766981187994491257195078256207304850270177176174036139975956843286837166941879785865557916359756721776346488912203775672260765656919414849288994043574382186194657122009406805357760942558925337969895542616390153893049341990798087737020119015809774024464371842425030687065699075393382851252013317767564341754699637996949425475774132301223598650953969890127860908185921566892717804831029384457314352675988213340702695151592542368489166593500760903926917730293856836768360749382098943079124189463401517768679296183774015379595799877332961593212428242827050934396460153888333523711200637266218819951217936731762330767750320135577057931361629458816716650418355207402026257801923786668088429771504584018090844252068482898130794942113993455968347292995729317322107020257384013083947547803523422404710806463692253251455879775262872778857773695762384239296790385298480441610976116692473645853192574004662804366292125676073558466179076834167836698828135265991177511629098589676553698969819172925905281569246524874996216360702070578853686116026104932242367429481808534843831809407804999911041055885043931790278332067757205996016825815389737080572154550028540601687667426935704173556501738820013298294835611070929450160080877143774864185788193039243027376855080242230593303683057086220444469859746174612227410632331126779459676986164177353817743089980561185669181863095967919938330711096631196986941981417980046058553450227103480029274172375226635406730721816452058209017637123541777570229456886615053469888041913893805551861052688997183137973557906118249627112166244563224897125659693283075565982345249788387654582328395106049093348489983527740670738143346208605506365365037943567087675418281575949170576203656791300267509541548372718225585876786409577910138590097820892239271185469237332206374952835602756778349044840347638755732984695048605793645019277009783253989230976736928895941414219598826689466325586699154331228140283125379176263600778011635643216919607367031087032404193716945266183996439143544211275569325771530900058042918900655778484481955299729320515530568492145561120431675959843475790541007377774578300518488807904895430978371343516879643781583137102691231917074228604697811760371351782152648990006636421310430241956349836965880943031029475826792211424538172533393082939503877682377095913725974612851019222240891375153428491245894443745104816465768599672482142802083768999888350386454157181218128571412845977856447955472527462843232309226113283519905334659631820373449403190870708228412779980950180535602390983902647326619025800629778527612570076242498841859990396900396390509184071923082200433514765637520179308948787536749114506735917956053065602964787484891540799472776575782793878283265494679495604033468551009148565843957116712859115495335608251157578350437379817474717381124487060937350336372365134226016662926735542070031780656247810977736474142610003241259143306194944766563052514515408393519772529351562845230397751707570550740732523587833875235297426109011767632424332636788769459054409411207746303640017414936282861622972628414702464384348686227394008019818263863616927039380100803129427752061156093913053053693606381643142563949577163455383517050322110932877040990756082726882755252441601806469273201567802737774573319290240074650492284840925944274124801553218021417574919802115248951912771294108308075370080498265471112515810003658492600570333565819407158002641120556538165516500894769430248068942475508652123539136270487330672626363623548389522194165321606896345913357746585858445235616780694753690251276205358929539034916592657321830678735770821064444040438079288167987033735027978012436710339388141932199741620044626533821954599819185795861949562241745414491410594738263160567874010543530398166163813590350502152612028891206349460883007867297545260989029557951550736218842818770409242119575633886963926885088764366610466651980488080693878666484014693197514139729979328172920470608351148054974894245959143736638671011306015782963804043643907143451847623524069480491101651113451464905483555788123910104896884996726266906491177672072112771031591234616057827696496500761262334868544134678467760405406407411808584377399643147581484153090546058532633336660130440925892122117412705157090372558879564104229321901199933524212113746032584361175742595223931762609183699118026243267462696127854185186825844448415412280822244150897380743015028578087949074061968429071896571719542197787007848869202438908880162553258618754674823831771617660742939108603240324626996384610510683730105101648623126634458242137975442032893190145570036646174586881378957566745937282430063510616953912437328335069739939392699489333569868518863407564379392877293743842311028400478989850837188270458631437816181450489578416673326563932147395007261250730123289926585046773684003196608954727370070984327418876184222228270868052605422184833352739948253371307782860590880204360885179082153567581795100302696450847374266303615659864484651437482553423124990756197193514672462708343357872734704927753690072552594348417298430162451743165379985815127393281157927699208187121798154465017786722938396481211312498776420449219835370169885332333908741702509141681998433757545642121065236737189832657087188151464602737004222190278309204699607149117609184476150670041687819655926671019402542152107623839495673308129212853437981564041847191855147986023341842667493690228874103433000585731975457562008266054452743316839285423236180981474099002296809907929839641643554407668015286992064898801318910852655127144526491366643463630474001338229349475343242795301581383079152828394398249211203819839473068246538251197515923041240013097529581442087969545896119523783644743478989619170960359617914694988058695210063406660848356180515101084628875085259060370124376306509882303538236522543716942198479779331774536766618696642889652172428705044658001846853951387229839394337235865761039272189609427554177245256322682608659334786100902430718674682026144100469016753655226138442319884916242104814365821821649639680761678369992028803045368892473661828410927607113309780270123976714516185696949999231567343787801230163344566617656968465860325554229540696580384674968816522372143919639720888885332043004489409625086774388804143270079288771685263902572090697249684411086976764653100050829107943041055205207370965653672344253907625171899677214087824219875283218319751521667340093183521141486265733678378507432593881249847332692101666474099565105600124936283822530020019806971523687505684478930431401738495691665003823647610704729671520210840191220229687231131270258081345809939133209845492791524271301579289272692528780283168512739384301723581799745389796459957156150916674405852168752550090741113326503036668801497062763357925731138582694602861993203796565495309383163377254123726179343536932342171206498923342297804182841706022770240382996884984525376696079383611166921089564002173148935042254102735491035858375165988147895192430658488169283724907338379134320685085806478828581554900590936830311748508344124252099792321125752128759132742401258056417526670393539286987856202736735890290902865271095725265673661050387516544703193634710935204414508274851571912981236123371425984620812768377105215842718089834958961026656878997316409389268947215636393963008062324456007127572478856678448023867001017589139372264507911722586227825294649304474074784355267657943402677395811491947960652189479639170838037292738074205850742454895463533228754942847639199276766592061359106227856468863029677546079070817534032454599884520168158020213652373454882587548357771279984978417651951675182643352577514835936506538010929656092567237304531414754287163447751158446150022332285104112868838425022957919410120361448952209658921883088875533262664719909539479547888257248416227136076801185255172410272566082790747844444718735099099630014244464468683949135825743270457657250616306963557063734545842368893221090929150760434083287139555379121600227461039127586505523574260454229831746403455609711291536490383287893879576257480580434455138916485968005022723648635078877350183340103627971872708836240620557720835670684388926407699206370575787885632755275713888561496100762403931581362845359923981832679220208258112239762647249337349060359987592539402522062789049590172698486566510980558332866978332825175198912515447051110663579972482904600947893607406028320314559631393095180571663635711987281514148560373434604129449019870769624714046114884274795589173093224640855898646741319311772553006748031590086452536420981276851138129744957396051517798571091757677621907603930931746732345152883075182668559140499936390133471770981290167249525856381296961856751527792555989837963312133343253038581260551502054458693149575120741662363319488259675206453929287107714727661698267377973015864754262558429107073226012426691071382297238496928428402362268047497724083163410163233304006982547703819264647483009492442415977530913629174692197310437272119624450931066912339688476199085201297824889138184818949247534691843384928910245485341136535606397998265674197969427143466007294028969530155590371156265377536905218396365788323481892743869314613012660822164793470844253409348337169715385583869643394068554047531425678626867160231452070473553976838038162090212245184456143410953626571553525447369305523945501750771350360363021017640519014216419301415651514127191782860586403515708371871309481578853090076257537135182754743583584953116503636114211839212917439300368054209515483858700089903381345057370819435877660182558605548086194657038947164029151566445639637023225041736011405568801229530810663545829876868024961154326365784562134963519789238363483361414949535368822772049072154424294107719596066025659935630686313889566437987344850963142923823737677580230668573706070841650286824600360249809721972786026130230353391266286545504399448991659487149619441759045193504237783361769477591625256131052885659095447713766392233659911236560719167250737350961004626806960213513911943350734463428581231804731490694108833393405232557640356956242263625995295368031130835273671745678129523910916522125875651198563057231857029947078615279491967014079263176348954433498050906041170423133794116492191482657749983309983341779826779379413426544228375814538179903339028377105371552557005643513476748437511938607134887493001206995344826996708210042485396903518744467544086842312000541969475228197071875484854216258899327790534418727178368604707215856480447007144267104609554209569502694645961907131463424997818708361547891818702851006386284238546950309584076355162580913486393182209063771257022291885263850035846564490074949511970957795277812569844502535999633333004820455797899830753076631530057777182382001451884893686364870890701870519279631321551661837552132954393688493810614656331140836964050914619104416561770953636769929243520992049403570934734564810790313687413376716674644164024812759217442310057592479896949508507844416901592135703834711020278394263256133363631787296552954018363646799033481885672462461789467413019036692702950272838423197752520896206329114463845327306196389073557905617613216438055369662119240985727773457401815121087598882121838835812049215581538507266857554475983589158362246020505031869781244042848674852202825580044424519692080181519763798015187943206992529759210517053483296055265111792548417037731772572688365569347638326984540812098764769477341873764328814261750966072049088272117037417353754959845089325327944141967200662852950507339019072009518537983016544533022726718273539778375182938606873658753554714171392286982378483224959677303902212033119098347879721266502452604056606858520896136353112301662740079966532732786052940734012035545656334150711794456295913970236345418032676974867867109461136932319356954880622136934727067668808700256913912611011685231425880637184157909139886277986532823193833950933386462104512116990219104939660933168792898959590886934309177382819153824500563988502091814315161096587797818381490245490593213447990234631992638346461691431272068377742419964659772220336590408450934396208905573983582936842859578956085453450957549472435320358863991370438447346492505595044842142888511476122965566684500782210551745205541303616747085669647688275118666406250183868385953414402897019925202840200223853897738739777198585492939827070636095652381816300807179532978453026450639857327887224163859496346422362162834880402688710149801247881264717884025579659133992999405719835909224110228003546541088149531584267561518971780436344666514860504286296995733095352600069118549173669601365322086270739958449404652490068498571572394309093540258642691397702558606466185001310633752818671796647844260375446275669467730531284983921449445494760568331792941858928971997432536604959857179772410508592153990090836203248200845270908413090968532196613046334190917811607607096129859248470391958659018785867143909063376378548728215793150123828163126734958293045946154677904183670373746706949150852888648384837749579906849894354581481536032004876332862388704848051690843992734696474372367307613748236054165384082147005121259730029588195586514784336347928896136135259034587012439772809126344968144869952398935646626585684297363293782301959891431330337034387429483882095636908253661667260998136459504650418268997101813982140439812304527165916663808278932072333275864057926329596381603102051489837782521823212295529341766289816033105070047226732291249106109579547999580046550347013247111548942683805278592707969360401652573783786464700180833051450090236422235440490614140269682908989791877877204500701050786710660290040543465210267429796501467655398121601307033519702096996400711159536940651041798434194462961001522300985651782986891518636946006538777774015939749997064639980466170469386626743647359074654693104493005160385986378625964466320298030628075252888252388398643947491691676354159312285268352228223330988754989253068367734270117585883640913185855637643064788509014957766888265087576065089489154701737703108169463709194207009610338860913586222240316612889059881752150103583050147899978814350546020865943316997071960164475462345065862621268691155097443195124537645166812866360061950221293168268367519308241833803626009368786041028062265245259162805534900659382389442333437122882724261883965813047821513212759911395658179370335218841147001326959952940572995487409381435317428777814922534524847366220776249806934218641745646228739057022872616893010733254055966549149092396895346172244120967319430537848002344087916319921297356538370110680493874563110807288275941406980673863799683147986517704392940185241376066549200678473784613432889909586750470421538707928145011300000592641159326137871167767411062490439038232944698766618256736861725381736777584762674837873369734835363422188528212613144853970130916951028289069484793811822397257939624511985219556440941320816056297801847982115757596848850318826029130121445862547885208171273800821546565913042856583386316732071530667123139161275258145343416613620623858811646881917522331719191769661473166210652009297997594840628164019935718711151328440318406481091982725094921301784478563874654957789137867920486471198798597827380130903500272179790155353823054986081156921947033376218229776486189515367591090908883718533776246305321408960646205386779255921013207154520328564820500834057995078324335039038020641526313159082619593424470916263326517767584993254936779498116478776565021645804478619984060154454268023518822558876758788384590509872001498999443516949692844935466887263175795989425751835298816343815930798914302140643870880795575928464223181047368777669813097258526075696253610986104395966415223730845241512001358429972166649334121097200207031520871138399976906306170717754121742013934776834465441338984390605791646223728579133465758974132718037676436719498442807998404014806737374250941338607558838095960052911618029382900729118094625619702576823548649484984482110831493834792971412694482701288570850883347780106769104611044545859990328122068266804246365818865313658856902190236179940791243351161637343909415329661903566391728651692390239440661028972200202605506898111184351723861606999556070680207596679946365004261878948209869018351008331486608835827460742721953780666913296699268163504035645287947459903091849440729387870409045518341457245358948911138181055369692570088919413258432371680702230039290859372576425743782704383504905630746938342615750036856823867065114947208839439314937266980257499286199135798028433575592396187735933492644794407775023236034448915302669298124481300822802569332315455311873666972521714226201879641749690650011932620676569253122921152680480465263039725371640183824477557396632954801665269546573315322450033413918990635726221430313500803516411394877870143075098698818161213152931541570794530476931054150383072918515424383710272758972628985736272996446804527071582037371383121932855462791279643028815646030043037508158800346814864884197643539060321956245532211358131299011931608168012028958716579019488280776677104158880737538761687640760358080517452221588605009439506088715184439712936544915328808960292646207331044884845278630951331956015610889109675561587358132925895002969909960590822089015357505098789892141460220955515066569286848263725427982643316403368297815766814116538194289747925418596643482186698769942895861948302228399706105270725077113490448353997378431498703341708060900423629444333264236733353556188471336092562347190091614470822660754898838783967719398947262764527084319055819070521352590835061072089529858422824570572188931688023000737868023001076921541973737560105045052618180666392942674613318751454262012914436978868561468565634229390449536098098979403792308324288229764119178504360595179756177875250543804431750240013293159748750450542200184845021366144428835676048582340366645654934484322834636378192552856313466838904063939523301795449593462471362205370595658037354130659739951689636091560026719038784838897921755607453876960775955048235203541613387988880420290401405598765951865907998717147712859245569163382592909513693434195613531859021863824098716016679356180124146049637143728457406316424837008312863151604577767637306539337399170527684709630910559044183565655630861216476930329120504307342964117500121846056471194822777482914218937438090366501303309765194505602328481078874541684381474739360526216434568652612872970246913682903288090014577930282604584307913318921943282066420567263172455960689173557273850944003679388916945622801829075070742182969014616425787196582603738242392963190147672694032950930435181845439383550967546745348952366354160780809601392459268267440532625552247002386536191613272723238101204137592971942945758758383537759695845803084451619747816711050459958621120527135393764589914325930248328159312838926445367641020228475237584848592100601273000784820710371912004764738654302300389223255013183558079805304355689823386788756555918643701349021710586794998321649573872792313096197995053185073825943600289965716802393211495288313552671298402102325255939484624380419056519180807780930985131268458507154487984963919433745435582621380768269209697950590190897818542964941382362302584889288428005803493237744140739553261058553616871229251570672066301342971145784634210462397597965395239107128594025094523082453584240388639901584377557531333282909749467994029995120258462239170096050456200898334396723798152041691067267385112934551552490903817131631513818166358692198773899938860205077688744064187665714918445246827301843849226994583732326291244572780607499889101301267651877578193595388882387116047859776291602716791455462975073680732782871987389671063623689889954966221241327790690407064061621659910264859572300450742883417325613186829177215030825822536232090907897533668551435996518215978791640812272097087585533125975576127883436615746536775040797091878576791779878955772824018114844925668889294834353223460848455140856836343475058832265493512728201761950762808861922292302250779799100939077560665505353532577009819917504900350472345383545435077724403313473155853627021042997388850149448440655623295999125903449543461027086161578755554073796084877705280146363256110449312340213967760610523289683062667675181288065124106592984743579714738420580942782197026466423831896702188507002257246499301087722647697689643881002448523481048630549180553326796447530908578812667841901969782869225335238006814706938379809214714686261820740092866885953537138504767043644314845064175622751725193246773443927980022808162027461822294092320823242345857639072911026569376698963424038076040348664365109421842480714209559850910929774304145373633687925582987304090254894353573869347838927664084331632236240926784545454619352130008845721436215268743975595110333766761536204950523232983624653566020600570647566492483626316163291620269216050843939763276117620001637800909916217241217378769733684002657456176129314612925431207756277761853437500641797562862834284111392361918284900187553225062494413325670946951324658418008770134726089596603041187887622693796837059063202820241606836308205413548477884412424734828949479134268710273667388534680193626596235862749102880641244682769141299664366181831868419814785851845831322579328990771288628795119602180995922264632528072674240229559748474421526687305196459286452134010474935040795067641958214744593775450555426037243754372735701983259985398889827450872485348529924965566335687951102133935318691898478403461719942280083765920890614126044571858105953506210744123103781424450277731555820859528268852529001389762102119730735236080760437398921295883390678162714617595832648584718485501039022564965406131620191682001936515608747490685385887119535394623145170143780111597304689414719916153303491620693598700076497134723585339950640402788512302315859395422556336491020360882435460230389626819196268244767253242696451981059468203757716727683963617530558594594544570725903505582097739909144582077122322807963496384010453808088044158876001978481207401878590991059674922912251883910075192902594984752449270805947557483559842643072448086188701204418796716993527390451247140121925558813916838165358194359761022805025299131950176681426739277571147100068512063616393610268464387366475085735757410652646365817757406275533415048511797834164306007557369713578915284438811454337726334727880586530646558964674738859948185452950472930612933753624843785842158161247566075221463480631027630523963006769773126572813544722765295643357926038231429995610702847630406082778660571228871800146653243922267798410912056737663073484118322535888724536995042277690532783930715682612291772639360756772819151526220314973685522811838488516392884936751850477386149961506330068311305971140677368186554780218005987196057318068049819238957076158280775545866046951160007492016426325200006835693581248404471859263242347659770995821353257638955923450898542038159301078417628107030916125611554364756147398018531237532463281215151041155101946093292238383374236548280267810022201109224596495374064437489503048016767496806508416369636686441778004083120094052202077645945393446340147287974256585279548020538219719094426326368263201348484334494800600722594495503170762538080155259177223492413966750547296830982070152690005476094400791569282045670022300173098254004369737934130211971686747882534852740806270779303625876363840510446985923504613378934475344608329480665829340866876704210765218214181227293036739055122318506999226448435829913314232669501700091634467086427630100068598515856953087529539584258195029164134331601102902452973066473920384021226539426478158484309694312363264311521275533892085631874368582495887555789965622689704355424958769342407500496597222532241286094175893027455802819382129238099214021006547046970886738426552579774737285841176276044092075815975444667877602464194561404381230106169785556827284820493600440094302896809286261288040178560488225328956121377265808766306595676613588127253309975651599937903469120876225679327450659706231260766315234096235772667110546303369879768660637872310177612660237034548727034181600088110790563842518999745615053054343587481847769747988032151022171094112301046117124524114491904527043349111472771187421969568235323273942003122051507006978431784419130714989668973369739867720219038221952236830649868978211389703843504941305923624470503820100672147844831082601454824342751716394699000040771794910391827192110842776688610468415580989610364239060373088959260826572863241826968170467676995302650141486964102553247322490009612730549669935126643168712120291202945134695313663656557515816416436630523130033117793287752427017848192345031956870682822263839271851962179445591318250919492361102759926817045847514339080745274563135773835884998012275125964075158768709919344529325598825620790711703189486561965347037169016474274811946344128493426651729740456454970116910421733866182064176202283741566305647037465626968498510630174462640965353679463246076161936374847056160356031973605282632411186571634883895548518186368448418934316899633373151337111923108283784710274396372568861872390397462436900470055846258528231792104228211986777160041320672613434422421196597405073009047764859639492045491228354190862566093125639865805898730126986058271246836123669550840288607521059605824153412030238809002643555080404470420654366220766700774757745456108755250853475249817239108326522105027485359174971386477671481250312063785906513062919203466011116559259030214819456701373312848154508636274620676115732594870134589610314071321157873048728609356040041245271883140200956625312378016001793297436779931967966734593264688733135767375729742200194508151585633353287633454508649176419113533862518503848129431086724910802627995212247890258442257071348130760442192937478192083579771101647156059869692803185575468023817874406869313962685330111165479189012008051643678388578265213192005711767985229105138052597503399714875060549348772196826139494655810312098290459616175906018870533706891337546131643913297671297261667381532266716613165214383202437725304283049541334263990408766701001203850960321421746588372715070905276109019092970339140635221798726108707771806604040953245533936622375079849432951277584580494590870065609038776527044559074876284515363812344912777866757347961877063267174091327209146756453375602777163744869032762156332636408758545944279422355528285459670524308488234661907151617910504016161985891949537287183043095576395428274770556056790604656351611785820575834692767408915765887344519301573201183240793286203522627261311220440568843422120951476794338151918868801851371364959740536009725074897415961717698284442234958022981718519772782583922211013841782804761289104206860677228113288502155758361564216986132048279689283132342551766292218026659544745167155232514910226623651806910629744193738767086098371690656156953084478672793960275800261648111371117358683845327474537087896258951168123483473401852451564488725736924761497862255963185967827429003985161056090633258169125886492108993418890946928978020171169464490002058800614066108000207166641389289295557897990311371006189321482510381093437341761456462446973296731170591101022944465604505820311342305044395117967864018676257729095825187575111074338616452890058911396442830778313786840886807672917313686795018885483840236435676540589642147708116025292262255891991943001825472537324425643122101924998843068576680693038164706755186016277512808134624267990509848053534067478298502610901590151802970394728671472265878738290566666313214356939116759367246770381389369884494257835595589004494785403981938109391831139035865655845285413481938585744512847273612796959114463411444046225465534211184630478630286059912998322950288144435935530321636915001429731540462661322334048102984641895109509619636549558176696797054209433550931593860983591407847186350792705122993384209827386900499461115100054642489564559480802883318411025194595173297683372019933891136833764273418433459753379744413556279352027006295425943772146777937590757604653059912449348808712490488684489987282569393105964739798656371819272156827827360072601907489483420137462000052429574711504324172565768531672586962847207937869886904162115850488770356503652559801796660770278788641158650949818464978468505074415252650418538974941993977027284672128960506462176017433182754769993305257774806212390936415633176281183013467934074360137297852448796265835463317949821970855172566415801107010889688891112571438042321088082725082980912393338759094962618587962447184888900340255480222154054609504484778026767270073927411297594584850434101017652582282765449652934810796915840629725940286299407863184293855555329028395424791647255891778643362022397828103525755746650821971666537457290930086031935921985166691019212441151614047326648553069629478042586440438635153653564424037463902416485000546209397739360008263716683634249382386554380178967731691426905667378094960691988459544892538746135295582095384068480327977201497442686586275735277859658199184219097059589790361557785454341049960512180681486091918433000790478162575419148269404260034790114371330179466960356404459815164966955775686238998312470543029177670430913157330398481280720082330055024309196024780915587810758997615115739424208915973456339732424574495634125901845416660757177456020065477711230854238889448536582889826801465961370928816128000845524066755461211906735021631924148846801351437190958950798698518377779517130007723165778437894137067805326893879160080980304041474603567508160810726974668739321250676042072792317439204661567156232407456499330642588146261393804155488715117708820665516127909668266450971858948081700585302670376961221246470993173723168221908981880091275194309829716641812051888862211766670283972785267866522023909404283886713392026244701326268845674705163955441391528109135107203390291222420379910258160216283213401463743338356927003412624927228105724926277823103735805711892470567952528382707249215433031007995825764854587875856712732627265554311610529957427172379610107889742763926367339993296168291680383492432038975575893198266728252149851382107787880928005464442143382112617212235207237778822200388382099599709007746391664273622105545433247139094609764369508337992532984271447943824607339830745085022969942352805529327505579055056066661528221035494027045123327437276938338923877939815480384500757923402891052938484682678399574646944060970756730010534990994815148033442162102898936416035842074618325086873062656967351612869484824652512260822386546209953115694377972917453285550250504628112473745610871471262454747594855719286500373875399744511271004022819669982565450381529670908359242986030746905671220388241495637884638648281540595727136500550127783980234952380290038277267838884049252780082284749454365518190166432087265772333497664608763663984117473397831805047767377970089957635966592894001294825982583170366109640684227319676751449532003594849128374871947728874812831734746232002255642937035549753053921457091535319080226827919650278455450277640892438236122253553546657506352619263409755402125263790699449801840957650752408966887939634446005302605683680058946200335659936253931043323635157963816670622476415003577730268674234608691245502277903695878041577998061916450077625487680422846098866377930499378735505014340703632668245239135633882529377750337003311978528104368493017921704701318081493167495204474688499386485073575719806122879175788166218016802753777856849155795934912681139918056782174664416006297881632066897327494545068126095114051150781067722817197041266125802335289993067198865902388794767417664561976898756118017729116072621802680767622203612139688186516718102827920081627179044941211346700794239243742308203970060144900222794844220151061240316782944526531893851413370589184264727381274066140186958228101779444675791232079316809698507115890709534269311580157179149943744935829727545045506572736587316424929052570688544423587917430453502341713310417794488880082307651757100136156169277197812998866804885359904677170172936276829982805780391956588492618158956423288010432023667085491472030316595264173145701972845834004125990042838096807659084074693479907765199037584009114736909896967046638276175948251909621685218293654969613308824753787869422496924822800039489147226480555469812850759284889193022553473724009865141534642460191338027467486307933877811343037318269020500937301837323015868593962264024533818485149718821079831813764864621829944739508032056969793425604298326375506654529708988952941318267393483646958288035015844090471944028204359701062693715057089937137928134826230661838837650467785694742056521846869925728284644138087828246209872690439651620780539469058703414937041470191015991751004164087690782221862221402263462529757194295169774884531993436437725842735791927043446164067749998972248094844910680759169173091091209696797248972577112554248469222690019430343980611901994749474212616193399014979074462891159357595024627811343070590392187569902700276245730185603000182898554380956708189242937454209569590248193925406762884749619179728934354896319029291595642244024073655138681260814865646937268189941572448140283348870871651763684128762182880060221521281132515135281346021668570269534208913071373754715869248164086002376064489607461425148993876036608183107178932743972962801596113389861386277896415400709685285128822941154901841821593749637839761035500300206825636875746299643896980595208892542332024788723267663396390520062884114728776407156287194825671167265957035261890405737000982124216500243033036332666706279334305029401326663780155690326073442265767342963758201910686066705835411089467522347883726532133750443916880116559757779674082342475011053410481466189987864977705482047270712886611714074074229427407272721808236302330560178831157060825167533395099102254569908297447010532194647558550081143487297014709847613432851686333201022320216602104377941647133204660685329011171717368636220554849037572380559497366748461502158628239914161304684996638552851752260557552249449481018179565929671257373071123888210583258199342128666182148241048455889438440324254052956206858991271746579892041644824063304519521209422125939556746678511252863123754250736281520095930977097705333530830212118543665532376710705221344781575325207442822540463607869605661761334840725322937226377326165301604871019349450110813668797822132011479587253173479715332978738815669085279718416247099285252214897775442716661186048663796965805206035100637230299975167332473722806894589559491502522956247792855631936438211970022536659781551317529891625549692637517902603328164416564979391607992431552370138124403706886098548316617544765067877653949194576883471652646703555392214081165996201862415500076700511956148227859674101324680989961298531913136930008184873343756331181429051609578111796868242895224053189114124244981965462517340414982778117417276666766326474956820846948077299187161738104439033236396448345513316925937998926342265836183899341480924469751715864056601385738045141917951896469751363658433119323380861362095354023857730949433579938226499719006379824539791205501324790706928268153173949802971565652912323939058052745415110405986888738466438400739089600098456914868244379510280058304872009480147462899620564966454999779843926877494022638187952558132054340221715448768093826849659458320038063875769448770499020887680201988068713410429800637380098008934201210564047539160900854238263879448112172779328785445311093767431070030644054568392460541960781397218557731785760619195810792257629303744619007094735359784849563048402980476414752794107352573998262070688723516608991150310408718999624631959785257175940736479464416506786573394782799030031408491675997249393538600071612310882785463311340659241472844535083499632128434995275270453905683208254300009949677803712694079177021822004388209561433631564563596411275798473715963353464147249885700556744682579000680026320432937065081201213085905870531455884130615362687001729998518929026451619073679201310278479538184461416420038145964182555646836952383644325289978840520645509293224636287367155092120604130900510405631038703252982122797959005377075148905820674756505029444192146946055671334015391846134583231466993636905790313878369214555871674087704441007573930970803458517693166758696035647875395845898191336518238591604916980725113924798023928351949020826322194202729208084875241060248026302141092435468107088540541904147201943625311312451128825830877479511072942639148371334486533363305628091909459780698807656603681877109427401856206329036237085318849584391486969014760366502089925742789806389862506715024727773843933739600946975129181721936289191349254273828837324013313421672437627997263333492845575141697044293265907407895546816496195023315270044248193883514530143188221021854276005134970686762307943823303153351346072595131713760174656986723147591543554452713032868972580195906429059075046935258546841092955807910631535294464211544395604055344146487570068959458531488509481193163404221928662409346739187624573405769539296815323836150256138004566514682135113373440209350448825819321691319434639760584909581447190074535938570179095103709092237209187356055865350608910583673380941893989387794349815706401560132592312339551930528123271198381443166559858146889640696137710670872107729030420496177948232643364294614451061290492966620105457370365465850694596032651727406725849610029581128581824104449301641750125871969172002812975178346230964674632876981848016762349325117488621335442278688506226995460424664585291113082054150814424585147907609593876951351808201285621541237924536938734063942878274470862786143873466010606468156487848993677548608815230582964435177443328323674764447849965754763019430832502399327558826454700484935207551742056798930170618546055644633748103481938099027713280101339438386894223397040743907931318830007460559778386116497720438465514043229688592700862018851386979689177888300212634775556850115171346436437176917997610341055219903216390686119803377135017642651568126700189057956593081682554564898518624426234112518702445297672000175074459641320347719207401461991606037069050894378065937113831840333976368568636371045472893448935397992558315173164614380947605238968231766017310860799109360736743462743202331126031791326086247957694029808142846463698882976231903803605870858144586834015607520230216658021497865310920856300344563944890006942031293238610888987661861168350994485504323190889048647520568540243059965803042744705896185015625962413161449030831962036908236792794559415257823660249871652304758378406406517802434294265128826382006335895313045134548106828354570542352058274678017379888004284108006462985250813770372770148981685600611620741152995028718757890090752513904123958872464969071527477317224471806893634809158272080703479256908173172125723953036957617947593722513695500030803370662433332180226457854376755921202393077358919944692459623960690711875102342661647959255579884513529800480314373444984877750540144174693180829733865794611219893026481678210973548509185497297240717768268388132280111341638017380773680304542111439693702975641049188459387880216977563539679975665800279834008437027841428810240727507609455189947791305061838549741132999806312617643682066308493322001681340067133390263987235794185105434805212634837217610197151182936570147769654437107738313503433408908011878848036333363042273523373125089476600356131387972789387409865746406190915672854979532914371371869546609927063246413287490440013902588551705399009632763645762107337991864519196823436353412698063861932621177500737895355628150253597558670461761184311953714350424895764141444317686477142280967676992831477332053182007256965362323833920474400586767771026503482933612844754030007747267130967281235002520648995130399728580024857039572157724299867268777065441743778376143277533817944100267882554707961382384468547974727760460360488953420767331437680114272875588040485148175495428244278661777937439020569047702576935585632410569993576436083299435224655348922039348507993847784567822568420694339999196901172077858463134247699991533698542931034559236023449673766749551374078774850443673726635079827465778389604145223585685080913570969136783225726137026247764224163696674381259792114938104168843368628289250056690592177980419495790956862342268045376119474212194643093711414980949879822859483182910337350723361951425330053175741495536752993299610163019532744236263393877409575777265271086575972059826941748170813313386615953736175737221258254653494638563461905246139717934488831245193049841659521044675909072250020059457198979823401445539578951671856509383552781238344890122454817596079972912819872918730061822301405003354447341023828570588301080226949394886785489259698558771176444343802552472390936974615269834991559744394528532655369585862815535051845968401930524968345457434661381771632636148462548908301485215366835141569187595964621618475713385719293743016416234163595518235219204709952564530268558097549836666977929535177177338620278261615526661793699500950844614705496637096176909363646370918102188400293296344657970664141403554659447450610945217665643425801885430443016690981611596790932616662620430654087117319720947365256500550303794551940938639502696175049895020357697114756679547595098799944732073737419893728899209240300128915243314525217623366303389209035454558580147466210556335781983888745078494325807835790691508535211022467480884857713698618187478310169412904158909756425830010888729719565378175979665063445064430893443983143505130624099525243205351057791929334319036075908203999240775360387776716709819411393722084116530092749821747354764116736846276213058892993579317132833396383793306375609187757581237339541018041270689107184581458726615882860260568099324702789414515671202314283971245373136956393338730671600619924329356798520514251091801572637121900272713496204149521344709504053849431921635386350713771822303466480910326626297482432786679632009029049222832593823406201046480436104669153022263132333615918542039442086660288838106812483269680229237106825730244265861759070409930877710609279978698364187898066338328142776220858145436415562489496553400253729953613274316982581595584940298628741390520387734913284098228963605114036009948018232405853253889320152123404719091620330218501562356014520394187072811177232066310538661228374273362052829323313960690578784863075765760043264192010507472967348881441278340032768256176815292026002465856421372998992499378078199402655105286354481983444398964552754103154601739111885981766932890906814157040140774209344724480713497072132806120140247506658581685117068579631104765774112578506069357331695968524393005238650886794649994215051111282766844094654698839530645447861823218738491233222342069495042711947851286715277206297253841461425460950498032590855119739799139350473590866884223519072103168697873477035449528734097641361055052045678159728878085465977334969014447759723434330185886871532532834492186909960590553864516136839731785941869440516256781569579966136759602938266972711557891903448647065635809711263792446751114288248546609483803417281105687252844625382383458099600471176802625016865642532241931997910867674571675796001242090926100117343856173941499090344617780132836157265542186934747648990499618781974536681225078898453002309688865687848957986577269645056913738919075031240536741300475615108124579914621927866281775644002296979465411366032783154545292387702947660653805670969156043132638302158167785914303930033235663138061551822712076137044456477382935274230311622598291883408642975108056453825599301223492956189925604523854991278738210546656329247211067832955183693127736914726004460832128385225922296071169036252122619838914244396596400386399217484397743657636772589409179957991436192864165915854040448794950004840701348431001953075873210981756574265275194554242233016500890053789688202216491095832145702681499831393051129577341208494046563643581445923694437909859510575922196647397878598645783154171495801923243435677477103536432279475243068449114765808759699561588657282854225405698881514533662270383942098089987089986868516184710520723921966932256225521010831899017473963394553637732460175275421408042111616824682720473148701344441796498906982539511002757830296617112734596053573499030951430184898984785764727292205346319146611139263103134529417968674024058842668786458079603826119488492880711677746539186055710357102026102907445990204342444124348170324620473196583914027147504582424805238187403006707163518611847079470730538907912052019592660008526862687258717687641824039498788226990486162914717609883625447194337022782540722070207804710185175329664412597921141734031573192638716979656829194833252167645349545844910926604954463874782876063773433220374956264647769634351395218677439863774598677378989851029245300213259133384446104659334677777714544855787073784175589205605084083679055461553889681512797052556270090988855729503957757694126974178458216740827697459479235552659561552546137418489790023875791524864814118225130435449376138660929492194996014773058858004558318755237493181547396952537903219413441982151309341089142994377362273680157805352213892432867023162920072145511051859182292341169511749900511179593625522351011120025262388787704461831215089060348460116220047238659732841265158292043347474515391655097124208590551094113024241873877246611299685824557165353891380145149898398684499438724935193094219353288290092681773832299042277612219679560547825553375917590078448829131858953267496543363747855806780925059812459287805366077314860899966819323409726559209839044161931087153319882779975885290954390777743331385635432068456710104090293753320276749564038832218918852620204235789820429741595115065715550525383843870039327746405342758620943736220924526412404965736250306985027533004412149824231415112340330863491273873125189578020710560128661784144381105104021512439918427687245506753023567607236404812886574271586091557449779292637134959179675555563048469258558794176002874608762483280335134285542263495256114732842130366839654837475954422694590674658087221984446687812475082688837325771568337644501498714853004222989051726064025872155129345603443112760381370804217782254258852397075464894932041858441171770614127326372962507956260399821087439644792947002701646474211205001397854449793858178938714092381072157399860751099395623824607159517520959438225061103609897756640146407323624801106115388478424003493630020455877012789974862044450990133390506890334191861646565815250447466984290249745498447004240787927064646649140289411362456821801757280065036629845508198347784664733141105927388158140100555871500229649519772205647488855466276022710192359836136920259580887086284473184893668710174070427483600263518515980839068553213876065757339019044892245991615029574968700385990002742640603727766685594172209341663679086509855863670673302922078437734088885436219771243454537302660953636644600787950577560725623567613115812018362471052447686022901923550349972590264850592385069454182930991846156153026302687302562436270045579760671523935008880772644890866154395179775044794034200330559332138661567344957553957111592109557897847107872204146955041399428609046463489979384024984737123283916136430932191772486630026767447931183916248501239928755319876290913763745278220861962173746794091426179850116777941366841710850826284670056901027134207784772880470823019139605641580176537342778956857169578583122978210411725236292652903837510551528807468809525860777301541820532123397296898733041751848912274900494614061903974026747316413616338341612901010287101922202652233132673490119881536700062441642366688801848947250539369967761752610756201369363007035444180281363362508292192417997281710507743129258873709654660527886184802985201147549370496889928200844376907165896160482943823875529158759245541719083617913090221484856571555299240921180037531706894251285507779856217429472997383633640955912502909624174049699307909613394525877148406930988394064511894020339205299450063683476080973304671716263687027779106342042125050738710767730830594181879447298092886485188041439720695275487032369855027058592526541405076949761548436907820668694186995738041042224066758273045293921579982037783549150461336580007460429107855840230684145434072366081140728782506634368406513873288713382941362698308236405234378875360945402903486207859038164577327306794500536781906027964466386171654356571589092863845213193691530729589894700913966853919974319177616728675045727673421089871444460660236665676842017229515882277261486771706149582463043078407426895520709904081289440673268947895798393762775449637098918063771779362074883706555300361688275774096129157822317899414868222336675326582535138716225463361232108953846474826563173417219172158440046067222232379896703845299230851273819878634715805583518861996039662708912864556493583059893105456570605990541527147114854434335382163197048090985133669800707782177153913795687729147920714308881850719656938916050476610807639196364307498557230744478353866352069622132177449710428312730481200097678256717596393630138330277685153446896906518547444792329554251639633758582662935650809604604975846908146680452835085209881816788276646103779211392895032219824609594030788890475226045025793461703892709459166079973765337378156480527685811747778605411611850814331773747000560676718225179634516695163173937539018045495836485925713026324178736795354987380850113993784406942913725595139438510070616541535817613439810143664846862484223380631273543198122476888394449907401291728765094433907231677635706908788144499171415539747424871303744827592320730548855013247212958804490386299759420489531947324409342279113539146661383152056986490383226730945606676240319530204624169288892204393727349415627017002074742682075547617567287501879580144659651999565844794159840830923547668223319240306622621486216079491399393823760386739855745445792895325650109846613150351589382290547477157908400846338782512284662429733349701878334169694445537965800750261543731821917828229713152502052897658518294897273701371406339682876887901529598950424248602646105938828001737472878265477286014551435691486553882190468793624004394074129501626704597337557541828819871683139952314462415744039980844948654552467129801162195316336451419517061665324670260006523920194702417327798766179549339422131770784338162247328258501572471704577672024858826640487472268728460968476005264433120823190629375482547011461137946955727557523995759334059745338295474505022554712139589369681975827712558724226466805223391761116602474893612402075660192991698325469579786384946232968671447460259343050067116211030079364976579047641281514920901217544946044985910782765968260496576651356795576964167126096842909186458006242200791383713212724130557380149881860439923363870301077677957860118318644684947867799806504050768892841423192861558365516154770063377702655950803533129445754231107873197948432661504813626685456602276476019092623102467829825046419019681191393998209280851488148775142320706672125843768894504632702403905607936552031968738814127531259921422493561265984625603126743565337409144421429315543957121999298328755978607022818504854516480984814232224891426449945681684291159060455485225805734766309614585710382551251736190942536705526059492649697289761598734176497701113453192891971915486735749335717691915990017631106658126734095346521382676925286238245358581491250126231030651357757975662323631272434494500817446955801282385919734847896089273805295115331966207757449662423412262693778942222093180357717541312779678432167709009361344678373487991686506957027156245536177537413380717920453541092741992877255176083999011533910350893307566284751346875485901083076308091321745054941947328097904524925574279712444073050061414713440397781173407221284897878447677750759448051253561246578626398399353722818934925079274772123988418101255014130512126518443976014406653978185232823845773194196836227912919455913851039672262808059917096525971211515616254470504750363713808112132588831653673154450280853912006391086392826076657883300734894472029640709885773354598389790499435930322686532762696269483831910880268973386823861438851346018495673944731882220903230959973926132087482261613937818616751766687485777532248852924586032421603759610161757345799530357884921114934299028884949244920984136942600032598570783728722306961355164450428643935117310369986950284920865644519110149687159198960889405959337678840671438003318849857002174474109842166727190628222935405176827091648030876368073192437820487687465495719645064067372382657158484569379525211076193250034883348184365674790538764259883522579631075435004480083483628064590387992248917381384353711791907339928877895182011636837640489511987130622903084334596759287165632006740179613561687588490993359381135913022125852968040858261929482466725578286148647380474041237033164119140866193540608061571684919690633937196405410721884143888167428440820836603579958688804096719031684131121963804947418507292823275178583914864057912584872347636075870156118054018423430238807723932184595293112728419032972557382334213640538232520628866935072013013027940633051499284962513342180558218890508916099166613141156832053942804661413076955293012878481829242030864168573091104163971536610876413664797893688447247800295447993306059154361818319250792145347436892173415592560554371151763928095137967832989120206811118598918866684513703071335777023021920466653379029518331061160495282989973225519269013797815299507774741046348368403397692389346559203869897659909587239587188044955380145967845866941762560774951825308588263685396928357334006173913476479714431703348063355961033684543015735828966466530440081965427700645893950096683051718628862198624699941642932078183296480929919194099822694338840876653702527226082219061466619151267815889445912670671594536268248098777661578998370533546990651500855158684889464510048559889969010993618452799639609149109986968389678729711820069606107394162319248042542817622338577899642389233328107322514213868437408662361494047126377899330666220739288181343036770327267490291776609360695049174961192027016082253114343005766229678094601664237983717877037808971676609046410379295233373336666293068480164770297852900345386189818765390282170185345030322400272066894597915952019610698146923959818697258641611044237413568823841787804943917186690398092731112483736398032792163785139263256308791771341127687825750672925189025583074048431347590583176088961645869147466478407216731503851688567298080455157388593088761478185764008530536076826074863609313047837315918191025797239802228320803722597456562827035682656271049444877662077408687938441082599242488989803432369364615826184449009923636000212628963555521687339656389867263305683681262118221799410843323698575311291189652556405296862904636887398384055825230669515146718344304242703159086962925252864124845883856694309707083126581851211294056895656359217572050452729383658544944267565722130037013522022217620387182585564947227527182952799669546675761266902733237323766648555287564918906789263491569726549857753055476814334425159507589416471351608480894948242772261811711832863471585096533952929452384070701982068046631689516835681296932845572981012591363702289034587942060719203234516354467823577360805339079145849031075390706503106278974067667189017373290726172968832556204148521891429086649093186252771037189338804800445646034499456573877679827155000236035960071873103236933965160462762206872154815233761306658404334065082976214495044886510636079439822319258755721315501576819708098683327008843546990591235520379975287301417259019531816189586541479465605199119816506740847042704235875346563514237290266458258317573396751040917624913388345141381904557915914629839749172982036034542131703649617770184786324266552951381926010589450293117206297426927982032503815271479581304750966241216922236807106201128585533509820117143034263209620015298662725554740134034860341784424242889057203106887548037249113841898920595483342504220174517089887958431573793368202901994609511171510955322407779713546563587026245359600711527155771711162822711624230493356553079627651240098931628741834198496482982898557439073256401637530530038762776998149892184474077619712024896015783954012590444066910260689779486086240913145816315957229745924517153552797347196919047531767288982542397794943560913594798421605401110044618621212551824461077704037725503537806546967316268780213048883174422815236459039022633721221596156913949493918014509397057019720806977737752153149445041898224989268095187604995795380398305315429280936794438413064100417687665554182861911473468425809220108329420595110475476497137448366714366506326061521681350534736170958846724623078463151827831160398394815730020345175614742996278051711590509848979336001581609104790320821256484795277270903746006603598680538690527272409235876450731167560216850879337571807198152665726624100056265171941590466267899336081104424894745394562681658752559891183610894579194485128844392800203448327855070942520112232185904151029514313694362885280879623988360455084676584294601564746507513097584199958873259238684268745349303017487553441105093121528678283731611851358397334002165688039637732917643846316240929957690639385349731907744734964033001593884235641247722772083794582109379716403076454998192010509477053698617761292399297147500776094777737154650722614173854373201814442661187733261869956356884788878782317149664812908048804140332573502941443023995819738782670482378276805807446404957994142847555069898562645878477792386255748039951604257978344374486215771803684198321620920596086293102079541054793057841441670540083042057324863617590804635376219840397303265472115633946647897906487131515302665248763955237530444332149018300917257590864953501748738214869525053908854194536296174613290456312848495286148900775923425992670373153699604121571995456379819130581574618069861618723902060531987698561063796263817939897302231756303794226426655672042852328126505395457688612616255491337946571512241752603227525717658257027678199174618499686681246794977305545842164811505592820537111308440118459482817433982130757893785507430124605191368387721573119151339067153368890517932964100260344485671523557235641351751155164050366269068536815456627540153787513970048984359380150251824604098320620087006569219437061883279529000710208992871468642538099819542964053379113207133847699782761120907244944473509483205260674747483692234342259722889157330659351457442190494878505075156649479158642651165578072483777680639853790747712457273951070376877479724256909331977090310658575935465353353589327988429731238189585006427313044173751436610080074151805266509385247733963952563976649774176443813835980238147984682643435391178261123601835606653776805233895432059542834046441275262098410349269824316753547201942593181109075509272872532487951939843651380814214333766571016190985738959491547230390870197481666024905242975630160661278502784378885282677424425989224667568700714902798902029627567679426003244518931347796563613679340250927596744404563833054975735237566458846226412305590743560465409846861280436071456595682800863902270518213160543331355213437593863280158059150312158388598922980510735883793331586752329857997982066526940392937428896619672871689577576401084265028332588755414676965140575988081836499637428487788995438759858989123981808486550392923652607274449241296603162831432793902611938789831839413735173618775381862849150069763630811593567067412926856200234887936134684020115369604534577505168314590409144815237979510129299454194255936259233319563485463168821656705102648930194489345023149453270464032730971078600928421902178049697978036726758141095265446087041395793905079777056080877156214430528562803421821943574763363826884433080535530814739899630132712034758390829348939414515204627581735857300396765882530239074986485690443905141590392717844263843856726620161670478984182691107238799885933091880613015924316645984954927644006406806531978838320364711293483435904964765995605515214809659050212727550597267532330512858517104720178892950737740824919902960183346457353520540203381744463226485926687098978272866031545233722935755670407698393755226959335527596625960895150663880379089561343258440690598891656678022230695549876386131659953098500904663994304753161285489848348563022475484841167734794167760440010007092788152623727638237035803107833505816836561396020942015888515375034720246502037222606989500776551882528927153593088098838105126613439690004935193635157980326073837977105421154625967175703236922308291576708828980247400189195414580635854983209820206472887643602300486902684128246163137267732664014101336573056347259573187698100228979882940238209648634651462661325487858468060564926409109286765776332002756488808353367046368340282727751166934621420742910992498496292063418705709001233360832109373350035708026548895554425059568880442992657370888485713498152706213885723346912480236325344713004488024801324491072778116394391123575437855342951347098859619880299846347728924226548669662645423296840659463172551824564190152682897402572705903645288894312885374813385509521538341662773973286000498881515397284190627342591238365787399217690060097228675182028576380589319697353883413188527145964185075678033495515270208155265331365969365842728011776276895901583142480924946048827846506542605374446549674827155079116843792428623699867368024649790257261061953818317382758615098008493665649251707371780727384890364986526415824397123050363107992118883645761229275758699697431306907781463611645054972728248812189405388286393806489452687156447622884691229705374471582922122445052181528492217901448245718725764980410398922870514436944036307228450120274062289069437359270257055961515037113888040941324245899006109768096845590916246648262592323749905237569910455003522207927159745935861452201995065086256216573504228226993479785344647926886002128602434829906276566129588632761419718610302413728879001271420563577160518418158918377965400884725740284478855128793856179678564954894120551773158877173215844645390409834684191211606127221469949807600132646583189198201736746652278338219806267916025539530511119181927203182966178694598283125747907223041608975981705737293240640415082970722256964452491477214416363796114353596182272996651592607209284402331608626790351144876560654870963403057816465624888411650850725579121680203239140485972279470241938665473102017859377593693348626880895647381406334609234915191574801669108357345314905663653879448001763808474914974796043603903193439045000809996117656035823540475326497084578569081965968653174468807423473430732805504673208680494383073961650716033448908714785344715867459687285034325632542351945109188191431331973063838307453894900115289581623034885254378013559213798460034772072727059914729244511023212469387616203957107460128263684053126711045516672714284109966671992464289899191313639302687101748137762410057004800269662016156242023562053327824594579715324235522838363932748725654187163438064971335713509860099019361690974228917625745702464438075556231923853880090613639803077311650763490768828333547828190021019650400780079485147165519076241282545564319663235143228400044607106365921158428982739544269538162399337913001591424296679420421137271315876973733307664183836588560110486446025697475191888041248825577728193951476971195172030145606702223313482760118456052587530987586379771999472737518899812112457828821651393350775668715172606116291841277661418868769180861121539427905057114780798938464999963947617922059597360925602678028150992250289992902133351485319407704824787733450841613778116094164733795540071512874298697434051575450058604167792398733910479745376673148929973958255379255412367527889069163155693408820444033609831381382342956337329229304955907973406178357426505067408027460411854731940427938349127902502842393824148854859085554991852476093305735722029771070742394213085568680746947607880503738393875459679561269926471560747852415431638872471705489833629329137323458701140683419347990124845505723942054125995334580781562476770476494444774684142943085716913374490806562910636512485642475868313090377601536494139468248797188665620910277835418871073087858899369078806105219408952085847660429632331502527260659872435306124910240530610018568580999394244439190334699262745216964800607518404611789198460073216370785956789402569517541727028629311263669153813297626219957479313730101708740685576731216946320600817093026723667754290522885896872501642380437939817659215865223608493813927871557785388185481917443263399494385549619405103271297694931114782226714470005898583950361510997902867898795660363551502033398026885562307980826605700552220567153956595295869329958278094912698152251031961242832490327290166335182894422177915565822472060001004117464091042168148231212993257509543111362290962273015150955816972161850853190802747535686289141795477870742383601245154309951398684956390795917246019632371346084479214091511086910747248864369626013591112680611101984918702068968592931651820982088439092420856470094540167539530818245037343572532058347220349487787857918548822683092022675441514282839757524415798279318814657103870110124760600561727932223621368867976869728013579817938759821772247124644453883864423667659525026050987346237237651768317332444765039050510416828651878368331041287734114890138546431847205955803809939866477970053858186033929068163363556217504848594274414274412291050306024718096901923332091596944136300189456196182521563918420582356009009164000205178741480571090701647449603185661259738150597190992109042361309207349286055187583917838451422080628441711303910444078369150420615577917601305628416579452641562553657218245648602630012176090249272869732437072399198707408094843510783738086827935676450365507336561618522508012825762071114914177482111826980202065203738462828535505327230024052203413380375285801722363174495133720838360298150458764701279071683940331700623709922060267577157153253680475122690749396713864110142627524616196564814162324268443473360466912683136594778425158684609473898864658427979208120736133788369152807905180577735369591905947461213575195225815676659675689326989155341159654732420139665926201304223658637984441902262347601385853180387512599600078177958219432623869723508088459665104161571599410505215170291631739724569893551542126240780605392431316529212338264079695920523142755659493664969904192527840461992274287737647888769519556915367845966334094347354399438590494780634880650335270969840126918169769711391468361206860067352484601999546614204019724090093235598290799504138276627695746934073554335069204526314396414648756037903218173103393335918452410672651210400274455300571586680389254178998091087218658013737650924347859087347830770210496471836463227567777416936572624967814551192950275254224960770418821967258503709481506547328517524286627328610595315702241095600685189186027689761885853625948221263006876624639516173743268375189169049972753524401007388264768660708080565992729934484709559847302652117826296681451958291502680895548747465365907384865302478651057540324977435682747588917432559548439315881529883221575648769187657284248866703205914531057349862505684286603004402609086210758935071118997579294034653779289360229561370920156941427676106527088217005330933974757157045399464908931614796174467934154466272651190138590688804060098067031504128227624935421390415754699457489523667887915317066645832491573059023949295093185853994920105964586563470300538918326913825168481399731951697171433153566091518608584512508979573565553911504994076935760365553076508921191404783286854189143643968539835192134878360443838096497985944751051286366182562795216844604622189252921556817848581295620697446978852555377510604401268202652439684988245737188293442244106949024921796453071720062296667394240900542485600660296070299986831751778069816144369380253557152376380923137779879999434874017853115776790593616070926003213708095148484935797854810404452242564365929077697460123430264088377236002920473263580014756203491417443718185900298728238834981868961667095998386824106054234442525889612754978950627223682298030585398047002886205859243339891516309757987639494723121433514107010614242482552510857477668522588765964906131232552279540961904714953207895467200006328178666022850520186109772123913323100619012858874473458576251893483695883429747118691095520511238254971177467946305800782683218778146119664796308687123960647692421530389824021928246114999960149881517996165082495169016667501091560245361734748739747297255478382214328293140908681131219090536770254518103470372526893932646128363269411781591697277723050212963229847698971820413306268420338951038056422319263029548848549604715096808243053469867809132179649665697513224149558560243011265749034697670149062843086283378053188738997997893503024044714770251962095395089919058918731668656173429631323627189459720328231181785908588886343536381344540730563795569239351191502345568313399034893973692620185254744950148185363875811141152757821524505486724250347349857818757039314229632619661775035853289061284384469102528080072079877692239573838244875320884314312095777601940610705035067535641760422406558754019203842005581701209826454696844004882636629937548312286722733153655137026345522373005070640051078032170849129608989208105705588017479817642600701045575142886706441389897769379145470737698006536143551362582011016612554141261430232080720784745499923564570236588177339181026061857320325887291214910473470652114068211885831317248293568962925763792329585594624058266130479948698678842089403305249285385501959509612791015965973166793430444800144225361070736877076648690868954846765320476410544635037985736184554659092194658624859175582361169588904449137148696410592453296764934455714277729240402641122151550063606273415498938669797272514519913754144087515166171247032761741973109261304466174958425266754102666763915480243941766344296351432389052800813227196371559642186427698213757421927602587847499149039254177261838109221650264600872162250319878314221810872794446843870331502284989381093053464014937875416273590764178595274254263285491796478187679806501078480102033370188370146110158085350437935701007286654445640736943160210509675341213995361195316924932688639803831669224716668935050369127999928317440621891238716510880153674164573243936758501450665786116950391357363944330726424581456425289301124638398396588666511214495794875691014867447773522167267514596137867963758170691000714913009932593858117150166722904327561028435940915701937173619291736149399540899234722609999867735308867228001480634790294747026297513979808309810994962839107215738531688071236888511025365253686267858008451764626038495296744011559692743402282031557356534941620203938382925301862538048234438006369497329448433211914454741585137117233918644190348556654106938327684195760217123584390614020346413314486251542342719377295510192454911737566680569092867518007135030268229299996695929810828042568339957864996818660271147359383816558469976119648227612080263235810614399916574581005791659285116947157355548718973273340163212599619272421640367956741461886217277031255391260270154954256938723675898658723852157158690172050742203127534029342149975866117266163747497651293493200652891605388172583790181272439121052937188620877181946625926070285320454299312529620531992857458807647838633661483692004574057777138741346440922907031733302689925555011528367363489641012379496154075271113609288832662439096768721377409054829109188868313771463621359671202124344160800590979805411340767529878397329731208828805246028230635212488979937230852880879186866382500617984286555948524888247530772232692051215097314026776368003521070020959172074875850418532575491218686782486272839869599281395599103309371642569205603868749554487100657986844172582312836428442230881039596867137217176929117396771750894664036525875534722882895788534997319634043677620862635288087079240633679535252797920239875742207043999221532162628820664618576391058361570151898727760781787105203387865468249644354157461365630798856940273789474115960745893760903299937403453078137015312162460073824201939158870758674413163200661469403753291680876441410968798875025200408877958822757041005922558002773421458157189423244638166389630126197889103358100409081612370816508235855789282272653575041435011968860992878336228322489135461984476951345031960452760466645172277279692957917998195539564787587758332612156414665650830604623633098832522606654976446789078543811704317777580894929494838525488972009822074195913534620222673230481339768683407998688139762854706910972462154285771433787626476978117817100411709064569114226240346851168666588352317796225135330506010125696518419090572666221620326991000447149380225820996843926811688538685149710937787936165192982139103618572468167268830459636457846304850217444924168279052853197943866718247819294180967430265920847419819197394868546536092515350429402628699172336451318847127455286402291771903049236688245843630867336543203827510692944504951576775234109298263192229093202850496858735008842659321468126256568776768714322579299210789925545779299278800439997634483179209652544091617457901035604204573437487031654604220932625936606233696497966935920216438949142381346162138178383455697690936951755510602810604857293574165119676492084472261480905068185625293444655627889556767787646709601457268171630178023144870656272998991736265844734291726830303940348381282005165027582633087104751850655510020263225680514250462600157000202597376374620527667851248011759777911825811654886838206137552697805076366418056367752604525263717175680188624084380673031573379862455827951866958894916764885586614067086662783744588534126873315229331334978202276092288634389230802571919866812442511463307523973920636986865375127415980640361443585404248866160038989537666018764578961905286866418910435134501819616612038684183631055484399510275034999138635466519000157595462281606615383723102634272162866567983623280852888033832764489024861662743797779869425834034522292218374268966846792216188051253012958144278764346379830868334340500343639116078295884130600788875518520822281732524853803605957170336316238217624305908368818551502746271908430402197999962648710504264650199874475837829044969898092165481906585609985081184458324526940137589907078937170990417987040379629354311931945949363188536570681537434698900673660435984720545455982620593936796299789370503795131547630594590725114539522818363002107215308718688464531539665254704982863864198478043139730084661407564674577321780167539212427888431205617395939903266577757313324866672959218428674072977245710251790833254631086261883964856222896323843513887783001944103050478019626860160731429675934980931825857001309340578565651989108002267526434505937499461978136007822776247878774710243918849130862896701080252759692471520929012966834292933856446890749097148090775965690516772776068734746032500486724069864897563801186532470970068005159794285051589520416547066384002823236344798305252805272248997736118268770093309378602892772929045458103163825822922633357848557691548921075516054428286453890918102080760253838381319419400178841964020875133126191392027867655144943005554988734293200819797497195216931972267321707880991862826695897685450207027543042519565488734798145367145539872923504837090463512002302461666043539664160539657555016589989602434964550976337307810517124835698807217518281524925232589538209742910848468407528964960159011665470765824721169146171393214412884715814283397905790722648562035571458294151646165198467625546566843376705821003951241611711482990617141549063499670717206616589227882006682050432115312112254417476318050671631711283866898150240912391584783936323174101814170203652639273372321108013075759471764605541837638037281625798501802917372077873948861903586498035074151012082562422542370618032230602461515187738246306367675602727977572475409495623394270894558898713855310448574069416803371105475938033105182267230774029130290519692386611492843655760075137384825594580590396877010153380956654951479653996802699547487679688861403523965829723947374903625644720017067907890603060097622245805530598492827375915494214385609006715519166138054097539199342918088493193099892163949983876695489775189869587507561518284687518286556958321292444894638113780301697959500701139193707833176470910523179499910232933613690322765732363994219432042342402522540508213363575933000178766210047297513892428255110133295221408061440959484852135245511696049319259444442870544120355574340361440163134820355518662770281138148783189475753382165855900710562689411090261984169334698390069044112946035163867779601787339746084082587171596746838641665090756620871767417450240591791794730263897013155866001542841155130955344696923489720942576712786209664893528087802202601380311808257896901183777664500359902232089475894310170316864878757882681154432958770717002652190524538839370315986454163328432420418906851126707461955828539970057626743327432178313123438926575749539741499876855546518079795954916695068086440303044370572288041755848445246194086941874875934535902833125294443207843312035888851806721508671253419082994794471068995289808479019099982608541751139077948419339282440765368832174511433568480828488594259470335974588091893018453722786569913884153929902079998642410619037752424295315386976768900828820010737028957208717314088833347666182755531289800733491818486099838661564263606480335160324287671522598948339575497272246893721846424020780804490673007830267063659823752686284290890585922570950524526783364437393478262730061979133289015725133625835157542089859938081000151710734344975466459326695383871260465652287542838382549960897256032528064503975778463178401536035632957294145964613167952723314533081530868732447578442199228879222985681459421007821241050642943542570893218072014885483101237109732737150343411756864456237176969332879810729644705768374823610494698527302529295759579049385301693476558020516229026535190709282503073051130743100949119111618374608611467599357358761302451346835505693326673034293332748750937015826745494519481285020626403150699730047766802199644540955429098000989677646636060004749339852646591634565109031465771754421479227667949587315314478214408206910305333514775538460479876316205343374226730487916973945266761721038564912843907716473093362725092948040330382207586812508316637157116816734949541691025432029372613303083385862540508112174001729273501439859034256150491461719693225230813701310504598037097632724024469865597083868029659478065167853087521843365970675371324138636100973093716585354262746965988252473483917838024086422128542855366718259689662414247910881588215521367382263180158427317918570154740902014338069409768518024644866990526290691936078536810334056769922289140352802961209038420041366152971050758444129165119672082308439579743427653112644414127703869561808278106045533342124053106307759881448211776423607603868725951524596043507158270059004593951339437030663745868323328653892100395264041064247115600664057972294465332982163936618517473999479890010754110667681896053088039920809250274745166554568887921751423341144539521328006434274208020713841903489725780081540161299488645470838877308415101953287678058619798376077069446009966502629964830804176245459874392031614864759603819073989065156006286622176770212413117499916381918451263073780354860801246500747738331671481669319192793161219441166587401715895488034326533188116481608959447911090315823638379763111809668885049528731500930906845308064280569257932307586724769438528278609097321988686157251983713476241632670967768306765650463618781171424452161218123713860962657489714181270334776338219383640442541607503135864912458318331889701911393398590143251292768838667552444383098323103408614522214905698662467410618404651479791586404005656006876985292169632300475831187729244022808772043440963908456327241489858964230411036178749289684560160958674619084491142066608074870399965559701236078825086217096454977581486185361358259629584059370352704220162520786891018250513355606801789688099842269317796233197945581309444396693203590162522069165642473879178681038218730378308495295918284037083462292215119099936262285915205520096977343220398215065564249980090575667786838750110373558839973166717892211515855868944907214061739627582428618436432100201612210451445349394271117827518481794953044945985331749761805213017649376404983401927132538636149283297751898985728028420470641274909447595358634630391746143486504763742290511485971966390909754139988143697896721288685190340155310674226253373882297084662397367226443038833638115546122552256305420967264975829499053107722395177801358130273738007820385107493561862923816663150571984460002980327922694870226305193721936102464988414719133973497234776052135074672650598447268037628698019007329058177770320363783592127219017172006909013665145412155345698850080311885273619908996036277023396721191139172949625300293110683023039828604449134146969756766308669390375741285409198648644682046201278809725800785563137480794689483749448734157081084079046074798394663354533970310536262323590051683340514298861874917675098520930993228337637057832674221792033602350846988874116387043660820460559560958190615202506942364870976047969794301624152920636536732168863282596646065218608553300106141243387600663446451073394756858330973242996035324469784960634934787323898155887040875027897682943055795309563640936764843404442571098832883708134764873698123173963491900676509936261597906290600644988398158224433342494630360497126825572013129882312058916587188309447809858279047167935163903505515343725360505952403236905054505895623401516370135940669474362613452265428589267621015222255040024956538990662959075305144087023194990484237087796649607369516867647749900737510390579248338532858820505224495882596612469315754587518733864609404582645428592211353484485352205770068020826563702479857596211640113077934161224140931214072825722370015139990531250724418024311628658174449491978377444951713744604501498155073540108554628370994442811793481778376626839996888395929888862556551204576449567775039500682357224081115834899583698723861954600173365311890701754389532126309401850950814493748087441719363447490861275376453136906954980241509921733375114927453663453986079429959003403370661758314637606815560817186327740455712651723903671259309065105587326142439122303112216337965395618816275380905415668422156434613310250438772803537889509050319232984938348365104774149306612374117708544198963709855459426041935374782988006437532057893153270664373112754531654687597824807692784530973445320961803339585740425645818366815762135842166466913866999551699940476095582246036595265096838420219507956120951109753527110500729866916074612046572278185937018827982605254442823410013673402404398686900881447684444587417542748039907670012836921221854418665153240931717129301916030067448543767054087361627755611919620970716599841837679595078470184415491324751004467993937273332679184383915228597167938140193937507498552458591970884680079223334735303439201519626165982867331128826523133650425379883661517768733109890511827890706433342493766178976117469451685652963747253391564325522089920089183586444763762545161657783661395880312668394491617359912735865343694204988377219465176521060980632830772357082795867144060647339274901700987372589873460731741075952117316414150519697025861272704852293913734909991831932726521044422868339535278145698540358336015510291415981951345962030091965911229453794662585459314199957583497696388652043847813716098872639927617600186668921709276103540540668648658171585337385041743210664093056288014797055027926504007525967692695464090732190445798007416610383267122926625770628606957907155922733750487811435335378876049347145098923232438567110299403425307030320601088641730407561303643554616552971424429795456525633936657130470606537041416438485915297510696124880528749642641055555189805169821041783195959343354154921145130528984791054834394912769593349656538238046259587022105262686049827885766169476527067285137299493954975317006455722010458863239455244363812745297570275438566033308420510747262570464036556957302586766888154324580838539434816358324421362813185305096673241677067102498944677564667181693188298254539648054495970050397529636949985492428876544399030764307575620744784496306917148252051211852163454347138696862254309205576298266119038603401774989067760340461923831563135464205432363577110645388400758752637072873495679142177584559127779129636127435920963909253333698475648077586495438911330720003115750334842208059991854464701650484422811409012464954039696335929935486696170226645371236508595887910141492389864386629769891685311138195923100817629045524684051583738099268960582908582588734823148347554626586670100388755101801686962272687423529132353687774309928739595898585542790100403079985726952998232908774356459505098418549234587210319046206752946386734793241312814203279393318601741887946268870631331109271196511149992733767651353547067534484894280310970756676724516989015279723597361600569145033766317220165415601425053983101692574423328461973900000216996370642745083711816920111139937163309792276687919430471104459676147221128172557729163448873987709219639091714440667722898958027918805555637274979891179692493051470195249347769005696619444401290030768701773053536558999367351316488381913907546337284569438126352360821154695562132877534566126042201224488522653730925389038264344855188550450704058811356239116689695967571228221510415095889135926231449210667048913717902665290774606972854130258269289884851829753706232934546479866958301081686981840239393958199950002469672584115444718108228633787295458016655714941959921920319064643764638085059644829391768348912441756709662877031060942466204688519405916006429113238046523378983804903444439429667131313861565800702853339496517298473118192038875644894801715196508370737907160624894534679583153213441386732145522908060079181491530189134360065467267895455587231535574671821024651159406064113899245875071608890348235837056969617721300047384548199385788233775351987635281550440017385000417396848699982643160204601396153369458939240227620890476739968224861801440743382970393816119095594665887864581701387803864479430318351243674883266789264951848883089784459503682438971262223414483309070956693798265786193000388862527723972729076186109526999418298167786828119786390020055322440076654589601688035279835308596529230345441157311797406364559417965828716306784206005035181711016943009142135629844096735313792999542569869587697253667449708418244070857012651694448041788353133158491923299498226681441866100575934913654461847088420885481841768194456735288455107770521398241951403199035828057288680867807210681875868320747734079581160093232929346611072325645508742945227121858609222276389668331600514543207297817338219472330751026687442959795667439871944408937501412595079954159201756556479054169628000075416075572998290738408804645838500808734993094508455828708503098634370376864609162299941885550263277300814753218220916194636719836946234932623926101369594210449880297424628641319553966997725198312171396728090184962816717956642903490690221653166880456819244123905965366915882653818641454798669682111580092581284626861512635099315878668434569904821407507525848308017028239295266647462246834248834841186353076774353271211397353396286459854807645693945884777005728408665153893206370755541446795036351604063952566751703953766854970489347134983263128084879816425224449005507104663974296876921777733812860168324544732808045267173372218176519005860155780296971040745758633304614484409789735667171149293823828621131764765756491564249356360506580116507503427248602472573992241044147295290098309728874842502572884826924057353607507461505911346432238805447155741920394466382767570127747700001851577423402864552013243300216885765714619638924037176768162002103344256151498605738290981917621031883648609044458130121469490788733039851352771748696454679483767056640402126296382280310976764902866730358443772437757257972428166631790235708276048390303732512391247149449597895918846384746581217076883044633916147222004090663422956714865207866843589508191356004518267325017272359195537599744379871517287919235768740527515572515078951880026146408699775359524276814751743083915779683216597095337741443451980437073130872348028905971214827136019632845332874925586604985883502413854073696852775010212105412435195812259224551257547731369952828580081807318091437143783158987693219365960020517581550546833540700547139208114564792420153312128899487732338961831717798433356611871360226768458924562416797174835425712382016824723654771425674207930861541960859260294410845864988401327773535967953700160984757358122939834414675785914297290472691997724972077610168738872731561840189982686676732515097570987840273329002759401198368632021832471975870220617605294173252413899300168988618903336831854678929963010927631118542805960988884398012598329909925744074956272010556553092988721371110009315422466109694215548752441833839037933970055456751220937091596568825409145103185521315271650409450174889132962768641811011279523153457004972052443900157669613515457943995607298261669605317874845230749333234811345500551727025614520912435030712709464149705964500737867447563871523296024870880549500296307557858970935961964420946260389546586849536759318240229031032104195292114806490880399330083463050313866541099344208960760345353122965846275775836889331197234905537632112334000760594013025851053554621076116119849960195286896798540545668657808730448587299306276524489990845052756690650404898925516664811924983283304657510689385039404514871788839425717149203039246444548277087967047070033222569740431423889004593092119590426453317400893133775411552883467179496768061674233196962437502477586820314770319102647602356548341948791934512416807809436978663883148985482974513043606050235064839236237981298227529855597929502791605710202687600179469226694091068384547066693274323068796798336211576358604215257319456059644786542900934770427570750806624533838835893524251780317693399554243608704412605757627696318899331722110732572696303455654499233566428056366229565109859454369729523071749006294234428170614474142625235096191077312835065913852482903896140444802962414027296377820784112620517867596759327027075008683328869811519134727343000796446183394643923435940483996978375923511331595952770085785237204170375222101098714855118791749272585503263228466518911739789014500585267378861821035556284820334176262719777727835145617738238748922255564454035273747731883141625725905267846238178295528239734349607202800963156705226592226251546686208455421867538359991926661122930328909557833026005453959663996387112041347269057185035591176545135904463712761102814178170913396270610292019959609767544961075500341955571421187548040858962991425303274113362259923285090125785365421270788242243085086904868954503292789989095304977816834750716226819043039175451093225389876561078275648031275692344089629199312197809897119905174918329548488062715694407758425941665538100101909972148849450320278666769498544650982485202808486723884417088157699160502592252751778332771566442967809326054711399366815857815388473000580350887668166351280811231861276639548439959545147495123324707340870101659704245245224566093979198447216222012377839077914290817656477400048141559128547219904804791382415800283969338023306950739043438922150065683818893302306591588553998655368180218564771780485573643696684209896205203777979976820283009387445498289188987435278280455587663155221008176662474198387760317769146395162856605270084218258059404729489041221102142826582359571424049005466167601723562850592620430110782485747813880086845696476286290385896093307625716930327921283361575536392849103340907514883517251905951974868227933311751223958332043741419015349964367247651204359211775361923922104247185998043847623026227554339773151382543414198029751526308306443952157677309924445265141153445828097364620016591024781727706666576126252554589955407154286862559595467832311660559531667120217765333457945432688400154632765480003277680911359115310708195328760821698189657647229875990862954464375070051187051827880189514620071081884786973214685575025592555993710884536873205572437759242678644490839842491288050161071875085568503262942656511484444794504195157939634548022495110431941265717920912319025880308617496038700988818022830529943824733588644598882393712746223087602234302106954175880118947571520802484646559099579531780501638033172144526409569467162757514056159272342262042494208962147625588168330137534221869480615807032175261374385111904636912518447249503709909300834872391162155375338994855536239664075606660167119964530083981687459117973750265216125370674396768174855102787483872345201635019339476060726328993899430850945615003304622118348318127698818022531996081378643515073288408809906146578857781360454361726984438122704259095377861376629339648754087502762356336747247920928861041644101368458206853981345957794091897577308623494664064656375686603199686237274871924288319717776119253162270599614548995622881938947843013841542365143822224745047145391023722828511642715170432457002998502847957737735090032123504863120970741267506725042087096588698009792928949355900784602139665778273404844238882079211929274580749538694323041639899013011506861064200468375119840403067780634008502665508681928538792416356323289141045274005196772162990394175559083222839230770102456063769383281245253545227624958244739157466015128463269552806350476141562791417504560748600470764280617512304751463378854662103604582482521296498265191909300836595846998586715749189034753091802031455998708849130845171252967000999376511619906593860991720511329305511103201873523183982113988248165684421614882459312711022704441088654410647639437144816214692391666845270443025449743594276068768206015151358274549922829582257319014915318008845212496046841572083516276171856035610192398026982910403784092034301971272259500309262004964156291504234758678800170723567739466527219708636787973870459546550587660590626694130377747200609712057205991353446521409098143097066882664550002135643956617055828660866469944542178420387216790367989500428792663304090887626517035248237637547131071290829368808596826139926865287059344195012256413133087827613409044360800907288210219228053001561109498091858489511811046504502754822863593124021962237451000472223245097776856237475447845957829674795654627595669006581845922167177005169192007072747142419005602388902931384720800047370573728089375288116435080060402898399941017020655924456956154598999240978072934713810442591841060894733804862576704068702394982728420105028911312477196699406430496836192779641411066519147157839148292132516280627249570332966377659334135772285742277783630110687452599145123960473829707354964361883649901658560615985195005020435060561586620504152085391220985835148938419590635251010230202838636392697704400320415280776840892864318493117603290304279017928419292345210276875105626870536417032387899382930949384241456840944094004884159985295789666215813046028754818631241790979278174482587589119061310490173949175480921391195397658081799663589414353102344572707191435957583211810443844623143932634339427050781248457400504785972528222443858697150989018661551431654943674182803622950959985285380263752990425010190290443964094640665488757572339922235882489527252209137962774936097139729183191770377857954398093706901186135163866101215180167251145643839816650416630504083582376376710446599578805357274376336369764572937407698018254568350775058020181133435082016291799949513093035755024011221603058648482685358890764185170289231016218832865362378001269111578550373283512200362488482671478433613071561337423683515658778930770894214748323753605964576199346486092221726368687318699611027886086585966150217685585416348436093103662055834467367342239665627393794682652756804384651053997000557774720304325114478162100285294008290937109905591221683301989133949482360342807268219730089095368277529362889322600058732286356255230052423777827115934434645087302912848753584633423311024509501140667841380709467261668932152451228255169746084609751103926050069009549395764199859660006763121115073422132785243455339870712150506373238461861154895010146496753273310193772822173630768878524467196544998652317257856103707672492974259587506761165105730380612671618668222042702651535245732104686140289221989875880755660451517082014778466283921537355307712980150258918109528219536080320244224865532100553668394339976135711209102706476784731007121162136388262480489983822365475907692558589251269302277721050800062543771054674247522493571845506073744325263457787672046005086899237292940501800235531050392838002970036225563977147412445103576821803798554122388482211518343439090575351031901865553077540268547655233396615766316011932065240471514329904339560907413508335247926068232095600102105431290379299104136049480205963724985916087658302000186149094434968044584915465918819229134374840133456040592661538402787959203358012729640111491478874640236971846935481439813956968803480500429191801593555939540329923436555838932721373306538639396099647811997527625710734710074603214491014879694622826133799044537719082089149825495689906517126070489732160025378839741692740854552151964745314361119018214016866209973795038145731460525051282226435182388240330541698743349956124911829487026895133894235297772551083080611791599233213956436595804373689901382045901073750898273564007863103923911640760393057115155575067029200697666619944060585976719517236946282997298970582262308175161316040792375736230550862924608476434900810351542821338490198163915939079883396819737829432047969975689988911570613059516898486778656042013973870937319413634778231262646003030269916560461412017789187128443392092036827212940668626762957962460363870712464036493747738109951225964257820831606199877821163461432896190528556930227823653818339458328136359062221885333812990805301627478021075532139161571274350478774861534993371318229321338782377998390325928646681691527599513253672924003296038147339172258578028153493333590554901165798898579667661512606637680594662911675226562478268935279880216056810582311871015985085640428001488387681546919054328828676485053391212122754845781132634160384358744948452322268393752398508598306176507795184449739169403663160619133495872040775827766153752543975022276729973274496166373377207740748240338783347882308899699504377617947628377864404137014007404967528636329802394901482481533532326657564429141115401339705002725155586042871854481620854558630770198173876712276129768278096593294202164112932640267412126347979591800518277645461238273216152398903021717869330743400873289237194508078315048186105151946817606039947643419145217965755268309995832888599807755157824550356469672624604427023480519906582085614626997585180299552781493178253386919621196484638935288426256962186782561187482373175542446170414287399435413431169859361909717834888255686600816730692552168355787506989868729075777681616810419042946957037784136395019294778871738187584567105193118409902527854610207359225399559724280159186603879594982941292492836036923055947966311233213523237543974387169729283753497874889998797960041497044072388994149666551794826572596898588594419103638680516524845726516219224719510998763658246829056109387043691279206380146889294548494625258172873439471850558499420847645442239778842861762408629004281683387686176550579898704755818634140457160680434349339033139350592521501856968244555635831233945160083409213044844304537280379412049164090103729396878449123091189511850237876458462020661364313711937029113473628314982735109343625271801082864683582378322519384900294238128047920152968151585473513377228217219975660464745628638385807140998076252696788675108487377219817331608807836351011493473872373106678241366392171273409547304378125255149943631444894398433100254119138869631685453515804294779890827856340639857999733179914395435880451879967350852981843550744365229749678674378615903424479741124425559204861350788695393166087830308859839175895233343717788578373730767951544063626953064956938270026596013827493269205476099220307473420296605650636607899584626377423328085603784073902371574253465492977037893627125705749105531717512294725342703173583893067568360325578085789995962940350549300025635742286172543851288403439113383810759936478443532578934671332126249893725127700350154417560082988069243384653974173495450286198857358402024874903230952909510842894076871958277305816669215106257484092294634096585566734814142138190861522423582180137478803040811125606053831607846063008984427231611507523475644869523422859106390759564289113682445867982057197878003753167768680362183229432556680946963682401033913262638657927611217972924776034787308870624735709685278799844431387486719961803423605552349987406381173322619180093721703218838587656827837306129626094560243443984515617273490401326268891984086825384792279872147733650134379638981512341292524456203532792101728402776077187171630972474365546149097611928269345530591495796544974304372560459348665331314723335917884111311004290532248419858135843421358007925494859074391563330757638829153003115850331939944107524014116294920039771465379256655464135071101708211811727257632395415895705826335864336136743210471096939083126218042558023611304100808166261134185795828788426359157390406178664929692016677715762164465566399058370651834823555844792733093068551194642960228680518580204870253377227099610077996060245873119647599763943158224951749643713083987243731236752341529877109290731494556817294707752989162513877959534080442519971547116997787881582063978647370207371286972727424296522341438730857770884557999928784218626478013171668310575884847592362816026392515603521663583479974376072921377228468379359118716025309070037875069552696469006802110561615732427015728149655181557689294187817044391588309159679809157827925278900087268075800197465507430590962534675243130738549300227825236176427807172837299571045660125170294197047770392167080171866024967572073786533116151940587909253277455950095570290606753820312108070662806902183937056360013453365385582526119372343191012715876272584791227886873195150886902529048705032673542142282112156783297609634117522837073283538753281330030827611811226494611774836256548949119891846995014770890816307400792474890871385496629259886835600934853002147196048892858192291321803067176616160635134698557194917221754022504649159067756795155144563985168744177657763886135717765490687475309393128537093059360795590349223949506568896364634938366052088662534557298580419041247319824516423579883048738690161965996128825291936179829192977544740512842101097638289772242211256566252751589104443710638081021127067260376797407402033360654296265107605750712429445741147796750719351521700210832482407991115533467239126247054353927114576772825455316728118474501082312287910072269157628975184408375623736790733572919411239344656715335669589756252385874647497735373747570470538260114048598812577981233492765394331063716832647798225564470682659234909184029478799669061356242067202636503962928070322161184885976692344526659964139578991108926192000170173469871795760546973086514969023898101262576083103091050828931011943207081616649306357085296445505707045297219874563533606328053684474331171937067178149544015660625669762724143015880151387340585740179087279212591016603532417023276611357370167065235366417300464909402795923262459744563031648577483473942791685020090550289296900008704820626888554409405136437735776868298330573681108079696637174346571290557097694859062316300570869031303929492153162415570969431276928556467699592666333434206364954072818407601116025811254062860753301973959712018150966892500207268478893758171609469626205746256269916073555771123782378112917415184575791216224732671642643666974372546374391728498155141610875938157185211914461467733224464092976731748609609469710478783926798279650053058886321435398021675136466536844702257597081395446326446890180441459585218828879231793076607745333562279869684565879422490695729123533262167525202820765094379464588085461041836007264515051869065058691223700939001174661827851994209730748468931512794036287430245802515994596974985571082429836026428816691644581569068327094245258842003815996219669910944084597947930623696147312980058854626535530243203051060510992053667940943434515613448601190762223587066763505128584803094535600969463657493150513896307590126926688963882573265970476002447090052992166868638288497893826699698006153296521744469888161796962805988532355336836271508490927152639663801954965576816588631545005840916439408474878024828176493843275419643811969278171219511536334935882009486925500122575486076202600107946344187581713612420496028325712309900492435452625525353326031285840729597029216577790851645483041149211101084860533148517453689770508329663345500684678850274654337927009638704619418808182226211065021801566814971885860657036847600957853552709144687099440191411934963145545510091209546365496507028273322490266598087702560550861511844585656813716199465073261300958367452418705226650852266374461382180938789175092110716315476715794121237741833860853596916193842745033426389249222345472857703229553043072282976350944848460936937460765001724014286437106788153584195059978396735544604449635293627735960769034148469953872275900669427635595944202095357596336687794647796808223175874879961119830212032374957993509905934586189477529875942226283719111716984119187141748728686418504564996750200427190813363110806982708072911507798950425738007023326715660356928649526077871757808092028368581056998578643275725271920851107714817804474263915523393343696209152395695431781217263323017528451262853479599242021867468872646760632683625974316406667912535817268733974687500591185612399713717976655853629299884739327991215498054683657548471034616351333842252451188140311122482169862855598418751369374485976125095018166071229750251665721090166966647395542038019141668021185219296748088791255490522652689894445800865873174085491885947190097363814364490036948425200474263317384380712133179420344476138795978403197658108870169105800537207016292981279983789852645812529929062730433960018683890173906615441016315355112742987922057794148551641793813605735356238100360854200652951594495051254314174964146782228100702101532757566009105812201536884289584628252620546870677557457358711020456225328975986614989832463941100333965144048187479917931177007646676165146465653735561625491085584740216350615498466294821577504825055816497619611479189795951643204693951942515888480290750645650851285597149867100517869302165053639787681926499282226678733956276612674145198642539712562655311625683911494448235361078027595356022057894167453454690735910715010134525027188879170329311109697265899338568873673712241845528066906985745787534531495300546755398930959754428775000857197160948567998796713439862293861832829286635486572315711247771915347167954225396356631662367246751670055793372490255744956172540725750340923964473214533528175985901292922177526745955153975988405277825716869000064804697532735414728007412110901055316820586571394810701664219158952643207084015848756721449655622758943526376256683231232178329427657346802643276410008125618078184878378397545891166655888586994747262366995045772702727261291954761445858384312271416158963525492208307652653907433241594791662268756761033519966212647033431453618459817742488511494721941097113343409960341914094256921884751657017586054255258173934829218902402216649118159553841181559312996782172197672042964725700832596342551975019895013129454141681655489588726108013965361009768802642310053325651105200447649986607577072095286662184731332051797176774253535210429265551746104069388400728178819578427715577954365439560224872794271962343468022454017680748147996980579255808316408024203967508591509192877073596137191812164231052752322266681150616551985070832011258770950972914108823576389484752271777297047453394949102159444628849056374487137363437166638210133125032049875386016212014316977800537827723593857829763919058530262364980079247127426298523943331835202210736420031104245812606118083706798163252281534026973519335590676651240052491820347753634781543205800146625369021583981206053365646339737462877559096067708162106418892801373786668806564102211274001500284581069501938947036808415608928894466857523375981196203712849120559431491245515095434769263802037440445112137897380484741865783732420426166846280364109059495938074846031520890402718132021462018525334621120054354957236544883979585349682044453861619728937375290063114378431631546493818870556241366951745137483142247176096256425783267490445015649916542754006637293359074371083638076616139654401737709825747343499103024602043624928091931683689697435617709127627385056675222974849367527516313567217385324355434365275757222930592574633544128036929263578887278823982498182595017857667864755028084731831675704591609423986340599290649319921031099984499141903339112035504230610275672573975966161269796680646144731917871853102134401307321918661224890703618637963390199799162951570520014898719043770142462908775834270691073155314950841823906315637256309724698816243972496509043198588329324371381667886457748070203733332359539902733198483021726413362886124484016112165916901022529868920517363167013673932001537255469791661405742746609197171503341027676977223623530157520097106602042913908649154579496605852591587578484867711460123303044255147928410522411482849127144716438445523981266133174676859891752935496397110770716069300941928213354294717184914118425265440334715155684446952476654328226159052483189804532672443213762783664373004778693611007942342523283922357519016382668525433548399171458697724149298821594791738707983056310199601851161753909646133979347381407725171574750056177707195132171260515225771947959042432601569044243470588005864944742398608554485253828888812903627896376329174488810016772596509597576551453359678133756635152915160680295524861228824380193043522053124093208027442515006145561888925942014578791165750561581906928932087086586144572836860518269720812971636465282183902263815508055567038821656748573446160208574886320997150688104073404324359480811465454672811944584217071383860109829653778890824258133824683579623230186342942891921655831333943619849116206988487615725357896284167299793442536138420652128095383474200731220892216101017735996199033794689937550589798887403498903051580601485656244737521245732256084910757964380494113242366316837728417240543727251624181074336863731440050934959758430277246757085005879609029610929197084292006956484218678459589628298739680321195076735021757344105939796760002162006975997033897690744737725627314594144157037581269504098272329694708205857473169537361547241370351917234099477017743061953768195538841999325524032070845245825732750189042923514078912153947652924254544011207044593871681596413746476769244879451712334013434901938834239711459228838311783066247503085572119821230771785061057732800218174930502275091729539551449847431382080525572962302818195666364496170291438666317128976427649618672833421958617833277458892989593845784215665948150065428504627990938223317143263556312748722723020149274897102300700275727312265099793927650598966251126778970155440222966838576021813277245146840536927721105618129157447908326656268991181237607522930980136955532386003001015589887991633743375107079293052508355877371922547721240394193320341161492687438708666543256895146035675625099090054551198161404548626762723995774913380201704979650827937933876858663694342488191137463197937833582626851812478344395218577595830950307441824955108768176301547834064031577147749663436185998756122303258301713776889931786750212761015793882673897273795773663666076721288804924382460563154331189041157305918441769358475835992796077688285312663830731159630606403168614472433147900795850335838617789415573670236195815621508855732447636674309449786422059279609399846915148591585291841093988199821184169415537607396926027330089010103963765649891967640533927307746815584612125400488859757612904375026457801487623154844390223370014529789795192668524618254809945556987911423094799136030315572984759324795145423615786114544702170983415160339233191606664687612613359861609435721166587759142186055557778208374374010937099404481832726765332802507201353303468504335863308647014235395839163289109521850458424532632559489392889269837957329982365130998282417014397670175170052348325415770587672049298707171544020020978968748407387507483371634737476734881524720843026325822973309635034772083220898107022711096243771236449296671245210929584250827346937984557764407337901693634414052293269331168873659997117109944772140557992719130263547720491178821451774588570099949250267604000911276938170919060078740807678580722925622860158102432278571922056345996412920123511585979222567603979769179185444675779097817242752047978078797489303098576177936903691785426659215999261666848082506314664969393634874290779835763329987833070449591328121815374802808722449615098187087435254027478275659472617268626100685729891314427466073075455386925367165952333875154001083699590676207118268377693302833811538510035655709173406100253670971918696490082057259265958053556065069345423490633534833788900286009605320774153763696572937572647925216188465160463124600412203181041325618958295618072631275978023368506455552942361976179415687653185013186840704657352970405731625153155041099567159567720919583531191279467685538409137133561043786822632741130961170904721666970844166652238841376887614638138336021833231066901029286120894018847479617866154261819578938029020849070364804360944993558779312042126682615961779451015046551654175618856590011105638172062017847926047108983786468537497448510416901985828267719499207235979161948369013446225619862215057208637890150002457693514224592022659558326094886350514555280934404295057027672884151162634189583411343028855372819576466036979775121537551350369456673336798025766880021532745291539625403242410662817013136389026424587327125489634019711542286672628156130880615644418042901815314410687199498432642441253392435607206987926140679083589579534044048246385372703030766983233511218436041292756805879102946329340162018954866689709962966968257244657728178013404845871495057769171589320473651211312154278528377044394493124176100469701117026573702622462437713836121418542147487035982920603419164379123671696864112127905317027747148333383534802209849933041761663240266868577513608766197070366654742868765293920104280641028154902798571370619669255911819230778573629887624313428325145713396311670385362335515499659089797028292714538278890465515120352883096254475312112344925247158655129481073535905578822321092674701014077898595937313820182995627764377901628166693403931353481243861351969019321444767044592951115940972113729768165352855103716607589718085906967178174640072668322646740634891032628687464171776366279336887844602394481766528979133751542216704287602159454005196287602761987841428333905528246642512312474422505722441488758669433508453742033733774216395366099312353693931195902644043289704190202498846552226788810527252877373533933905210516442229402454376800632281376129056068143567424049637695226343911899763412032904042115424454499882959102268247583389519265832761409226632084076771244052064010375754003111551308594745206288137086836279094122261612132166781166296214715572141214634055627379174272559712324834946683412846348906188553688987522083026425276716283488530727171045837675363431941741934089468918531731383255088321710247189981411292355054262207514641850265890394989988615360454463680494996366710525871257500966214950248076756335875194843331122638506084650979852958216334677158997322552829814763271078905656193518853769258303216572084708872905243591237562353587002016812846352029820610058133676931208723609909373010607459650459190731917170093291570697842219953124564252071799658480877642784138113913464160272444031765446073280654293144213471869773219909831892055168012982285050899151216260474892126302923378011404712472717464393853378472675529071722388860759953369724676903972741372242815164746907149522579291917687789042262069823730657440597528548719402311588371739056058067662511541014300937084613482756620000048153297309993546539267125219110043023645082128098366160804341025282101134337853604706177272292862858375850320483749871711601894293297326942373739947249797421581624410586795983530831539869476025374657616549129042467730032322552715557387068994662881602044368996774797738087427508037423957453877085934437783775865815771817410546872320596774603685914976832011469311204332072838079845485329130040647866112319085734871132699137900564434874893525951435720800801610795163430077409600441710195984128354833429505330710337381601141058318801675862319741094266807021350129967576773644069609654070239346226439075823132621703104743155995480099973301760411226240664699132452000778488461213409220207182040061233487414838580176403451898717385729718076142733138123749323471956922532082258703631086271023611997839281751189788057002079013853726260505306253103058910180981077676954539570525579109592893633946555228070028151976207925730238527100511949161109691783822541340307770399911744013428215227575053418774623602292264689792045641667775127329162195676280246147322671275645001382880619218959573383841968314510903341223432155350437524315310615331847041800659161289000929262484515417441773759792826787478459590468445239458298144325993567769304514595919924974367206208841839206292280595864022978103463220545777512989903479979680794484760021577922727038900603202180429378168707527424062607474967733745414148521027973976044175691135688663815194682184961852966450065403135212901863901946179238395125444461411206974645552178312035871973824665347321254944231114094188600549931345985039909103423020575046038627229211110836371400012473710401247708870662866538131574678677712473747462019401973658789038863815644205857482888512196618840371721235082772384410233604287825082555952713968113981924543740932454108909689729127144579508081718878081275873823628840492617293954207628211346161850080748903100978578595289402669224397101022838725737911063115645579664479467312203689847955823489207169562477684487339996777561074891493057544952336286360292813431202656854528134628812838177468077794983511814937320897799589292828621797312745624704801346729643124188694486697257905770660498487630288364938795719008834681042612260931057228546396357363356485507889596846052682213592337030007745766910383758615725322896886695885452745966618167456632749873794221172692433697086996787204672190617871411852746298686478433113785940516299412988987355655921604055628937753420983729885687280570031315920786765813136821450305149289922615906438951549189542081475466846866717648488429870439858788739398177937062762981476590168343007832464570566903421699868158700673529870031900445669633010207748734977705510287839229803695922009758584136637149449398343927156844262850745908284818832543430462894995066587325571330327896980304985135843167657619209893844322493225972953360284710182476973865733431387484835374677487468735405242300897883719355180703841503073081765755812928134693801255301306363298948846309569170804324831992963491178635877922648540469659696139320050660519575757246024398357720221555645517964121283856927085849909446762539604917711343668831084201477380232768676175128122195031811838908632509097861991296098189317629193497621830989766409711740749139426515012186856366974233606465832970805874216904574886233021682368633760190242832043387104154811012477565890485389310875853922319185064438302647141078621636859229231762910916833058020958825401754953426724367910855126085102137257138506840809680883047212021683210769756867548525277725628454271751825907088854074481586352842312165918726847981878440927703689832097121544938409785168220347928090959847225452187394609358412310301051752607057524462209665464026794358013576103854311152630442140271022791037776460139184884985802003879628895126847769514339706001789904363506217869962759324217503995054283938582871822220042684880695778875584168375873633206047752305744486162788767734117246252855037868100860651742082884835572836809908691055989793248960515341639259099700944551914097217146213177886886516740915757806248620957824553482453149873245580735989439808347852352986380180045405700106263944870794266123452704381801731112749224635256528264722003179947261119052569712018749720922051679949667498176273805339877752784251504915109519172124992123285569095399018029914523559505893266079677679736379386755752857684741357530445638112277065625263573029618623484967274453167124184657063761583861865314374626561653724327434938227741061008974955273701631718592040591059901498021422777792399736313076338971839007780653544328707306314568336253803742557187665005076361023374179993811662893179585730346712388363030363162903404011508994884040081374547322546019018395709975048744586120715282062357856299181810122198478569623703000692498438598178578432820794902839997346842873744879700913681606930062290402023773820995833770918835636739720482061920885154397287262627763109915506101211359901902431419774708252571415887783834949212526815637051908010442187538824752265104282694253553263086253801028594584982328027506498523537531507432651693353900953497111707102158813461427445656223346609657332626161450883479504825409123991702140616466870223649135501633019878367931777002164665976830767706638713641829191407923782599651925265774976497409248631908778588980705863568750503751187384499536168849361396348394938181990137674345680966134146459322604060929621619018329421304936369331521559016815737265329451234913859797514879477891893195480607491408530680525874799040008651487329749591050728381507675319054559252299025777361909119976792901579831047374228759420562494028345927513195986576856082098269032037502155554925946932907337861139501530529449510112439997699071437842023796644562664816590456022438839253214540541246070400132218984846133273460442509301479788989675464525416042816817264039893665945991421532204877360602639791541635315813003835999036923634241916686081957658933735514428704474351298942218947842896118147738332790778208664420363389161574749531896253294512104909049006641025826650088471648869215422024128954853613294232727676446335566667398284629485860017290473130238732151483524078034925273868208375001972940213148945137676133509642368140063815526964039842280001860661936210138381796789499254095737765596945382039596160975514581963130892825698506782302603769361325494389544358829184309739499803269549137280592955522288665703099618345125992316996851905787640932684044286968684670775425270123905773543553208359715916817619101520865702820687847406011378412605866196860286244568549931183812271081876772121346404931433760808626760537884903779108300850817703921874477384476787368161905680467329921095606186557808477158243254479640854846949008275316953305031219025363578906443739987163060982236798034196547340982634088712694660680355046672862330650676353894571917346895652737565469860307156420544566047870858923649142881633929065767672121860944538111910390797706997617603405688054064732005702580744572120545551859251906880370908143284376931739582977118625057913763183254362330806640167828052372389280167528342569193518882778027713186982223532526655792189350878819876026859568718406986240121826425339372282778680241766519915614928671790019083866303962457051625490616790395596210409305862680814558224773173602129591658100398725933030689882407120763600977110415004237007501666481936567610598407289999358835796782604424763835020727518252693810712148171836682220622599053572645422687823878904333494558034174872790976392141453484416554310674108118525287335998421684656323993524985293586092307647431031489060808706234661855256011954899867746233626346161442308930788485105267257189182459589011123258944189110182182853408136836451336574836421687906097736809778086680035260515592055110536289101079060884008263724479781545288484736745994530449080685111633460587290194674991300691966154896139028360758362266525427307632935935679715936361702251415956804700172720783017740210487337272665137101457793417545216992622852998619984071525295879233069850012618245156755726794929909894377098833330000220916385155928545777775203525335414937702158191306487376707900484988569263619612530855427434359312891897559757910881301737717850699262893902119909157053261707152924123137941834655912768189092645925903225952541992641273362444952886016355461627054368508678898761043082569448330434821334889374897420247602787982041220768176258974712459476645467955399962118413092464168750176961815894883946580587238454260523630653168110644321408381982542654409958915428057821448777466430315347495536566581585877653679074951457664932137694701047773545499163279553887833074392831579158075357687196550350742907185850899541617545054256951582252289643009650497637614518878598926806640412613379689307200336293119031970705858423293999295100483771578508641551785381031223210190179761320165174776037304504798237887539209346205569060158129745191076605756143897800122444978700020505244418298698291412679067875101968702109099321228771471668244678323673484072597876881976061805693191251939565959415696409721735733319459330696508253827170512881764154980779149377392468105194213920702488248062177588823991506208286841963824159419862024115152483471782148072234508342978660185429092828149247913949600855989335235467115085079962167989265240482225791424399608894426999851444413624566793718789104047943866686461259013881347901853471611072275277030764625856810972370703739753242588247787740843086480069753018794726264664576562694204920635422704922241744938852226801007592643297791553823910676525235686476800665426092983517556572398152369729890198890826523831529337555908663920032027333555380808869395110318415188261610183591162341020091010337777772221246485448294320076700301470360538231354634204909934233986539327438129231512153992219412211887425965843922681951897545276878622382552247760295129474965537642862995346659424989657451733822859480074214075143297869606431917248026686586724947570759819029677138082976287516830038326706290796260489851280527627270059758237366577503479122009360742459143225045922626799973912272713469193383648660709215400120543174876165588768305149040420935898024601752629983117946969505780396627509894781147337523037416533880578420806444154361803590894957885306376780367395645559329632347019191101882243428834683191372590853664428845108620456856524670332548582072225749246333793029264392148812031397326141189398184452744225329238815757237947592344336370176653306795891020528599071075312472819722242194093978180807688652601491800827428014070718015272930561614131374310216677676546581987214235581814728833091054009341385158356417010233521329650508976509078498448815811948333771554244524028602773619792953719835500587448881076732252739766231288637072202179481842074363625810521102284962095186944476656839263763955514474928586500567247612694204907145769961236416542131329397912287192207605343525739309457765539893282891532527059216833286347517169929710542330677715984593756343920828067391356994901700110485085966985161415406747579767267209011478624320192237417444531883890716009671859917916259173683063822747496949227122822662503251340786996239640157450506543987666899802575599706610637952128999668752875543358384571176444875596593288274220461259937803012746042733018500574813451249646495684233936944035181132150114035940836019226432551725616306323997724497604285526757577936019167484400175066743240669533741994829348676133751926024085822285387842133287096555757423625777924104237702862132888303342386047521511396150606346814620693244259771854378375050055176447655000351681690335861763760040868613726298029911095245586662642545560982850468741678956916687453520128109883378664431415871534004278079090946140971765275578842199482441591439121110541538174911164297997335080601821298634281146488860380412820929803376157865777851241320991677573450998211398056621318169649001038510317148652011202176652872634417328320853077870774738221744851153794907221353071518864188257038585837012761297319922054215450746183070518695455540052273878193043186746580935139447797066049638960123113395582161373610017503177101114657824701560529082270629607132177547135368068858132733626302031837637374251030909680059333804212751209284302904985722714110356284466759336058921589869038856495989516585740090608199307202693028356006906180729918721949106182672997683441799850596851672903385502278068687297013572017376037636127865906972660936702175738332113404022831671286355440440553753237745951989918168314012750858990666049668644486445859436856657856649384836640080582038202691223051427024053300316447202692830429920927467909477711474926488884389785402089088983586772120646108023789532740594831713332407106701567520522072434948795972827475697927742239130314053543888415834831098773736777954914363808146895492225674722061609056712339529395368991747782232940763511981780032851414345924716053543733318324376530164818555219059801848841905859391156643066864509028740479118544502813301406760700689309810115956913794242147148768830774742156398078430006588499635530746257217653781763839187973499669435023312296321871309779727329803879084974491851264443779902989478935403633272549788929538251611036943820996524941723498663351748420847038508331115286277823758367087899272457774555537890045046866493150690182529724982467988975776079548331908450191864766554350442821222673519539535358310231940307122928780799723005476632648850100740325907323865901998571536692153578724082331143162182573354397645746294513158990887634917932410315660612743764346033153925024623585127991507214772388993672111427087499855151586032461138446319967308897345670113416796944009481327427224087300752209172221546092419833127223928540805062575849252216231506179795355506006889793318588581012601866624108158178357515363847602451880074586589352028144122819330612516200801520594776718985965257534806902771118596561192801306380606866534793560533405229985891739917509494838409789973777240695257986932722909962482372723502534773402679554503087203948401145217234446164805069753868570607217736110449765912124303133061592792850391694310968608268773125112432007195702198720365312851832659196897151988173163874305956098329862642355528698834743569502730415367786251085045690601122369003835230820178522406394158296922904982729017696244162477980044665777275677196507230384739208827567275001147245966533099385795260604318120201999037047318229217494148373217377373526341290163286584517651796267666102546639722738408273433292771542213337251987529426852071698985318173873255150536724710887498167723316947218785184095232832696246910238150933310041442242605930094101812643554430472240570656562991713860961738439304893599769405075067109847437281372814837479037421647610505766615633183480266036702166905941616519207548872468137971676172019224946653950328193410018804963195796822393682641819752203012612990355971330974268520055879228715014750192335817622868992215927619252750804013744930952546651935502154822414114470782965040107406017130041290053995821893939088355108392907294113915474915578266465702364034780183980119338201608553006077755154091960747281761290177851938797050189327796722090071107266155595682955592486199784323098736473113612949922951673628197671020657840956559053945319530146545015361073950475339583424471117008533504585206308151600796716658649257550906069399288993432705875988500010131072315999382167953204683997893942104435016228402507316169637310334000277627687626202978625003471713864023923086856766343426480223035833725830179746045516019192442967128940426938424566380535194076653746080478160381695444190567482098033394375168638127718670023462013712356813367861707923404380443290095618557653684118769746570736436803816422156062806021755543893391259949167370319718442951536572185354054430770009008985258464556847837056841406679882734055463769424519152071803812856458456881613238323346760463551339648500786153052400215038083034250453526236633281370026476179465969581179998491041619862712290670245939897560667236135766980308838864859959305708350905207355349209990707986202813387008168854970411606385832997973883209397936603238030656628450269687513682978223763405844118966621048976855623606220200171298383036879913979149224028694943857983135593426916377561463327657473982221594306768171360323450177570905981461740490680924223373382607204873243399074014049736132931744649329716360290731697975633807804109894907537548387824446244858917922464424742974900764264301720272291244018032508915825406761888058802963188237772441092579618709637569203324611380349950716103120356365363208228976637079183471395554346030908575792665775104652135049940606802263305347732285926405956429097603867291709321670782145195476460398179443598155428709874399093699892413731546874038244372936519296780384748011292580577235351155072406832427906371220410650431815077813706250782551587697319768570182089544930384675883401096783188698933762789615171811700368817916210843080801143258206614859223617856629703947294231294433816436609458218718187507689850360462131349729219159551255852549172054539310948820824997909491600275989654109897303441747820159866535674742661751277878244041195360090174194149236123381208040157657611642508583737543893774237737337631261291389204371729796560786472446227281998496785896231208063241565514917562289923564312563777998354088706300480753849644263929316704292700846568690462795576557566029979072153560447681706353380338829581666870601570389290854786501050111877361476204089481166291544339055296845583096208630289204998736310356591841907057639047236188159599431551495411926349914068824809729279086340572909721279523405420353928421513335184080021913143101315905964321847421434598254189825534466666360754268686540625657151148244183497685866940258093452521111160356275086071924264202265324229229904856245627880324943446717728277839038176707263159725906683178508182819700506012410225293815472173307328671571773994469192050132614893443807939399361354657524365015159060147607055021016008371976774203244275794346821459933348822951878729935207927724333322258105523744372755617344400350918607158156353573831393975582443199708003640647349118627417459827223922224848860809465713286109859882286542650825460582451426698288956251944417234319728675330882178152031040820247561971270600816983020230691557605902415478014774924091053804500574168682479467958730632458571137109211524348969292882508374551613589802403514450208234417359471617154778056297474816670031800959187501904023750419362439509465418241475869677562735014415618012473290701477685361071902408495000137877991907096698475597262145361265984807286789612576024947921618445660158352981161788037413873517529733552953583587660410881628702167563335726484060193109295877651600952841575445632022166209932372118984665766246751933211080622000428085155609473597969970910039050647228145715994872677619619542444526684166318026288265925833853530388156972537178896587875207876469216815355248400582690210929677229347995456342547828038190542931493799037232218426102532392258518612604887073853051244200661300727630079234939507458359927174723283133301041576554048868869159478520632247972112100454046868537874190748847466287376105119046416858823665653224342472508296630042017171817395090347708545261966522373759654602599788885286803428300084069670673564739781629237048846104594129326614848090503675689795722032202746525281851373591781704302573633711214287871486758946480358714227906316412470816190313658143120839851508261915443709269287910491841147364035173267689239183915601102728584050650630461210299305005685018758647407382731205724197249756034874046106540395568181330011953887912022465310635365403243650332363884215479538003772030662258362656481337524615989396712881460459996677833944791873940171402184746416055900208773636436004364151584810416379824707670355129223317303075633496129005309889131715572177515898609693262558008239468565734426200730324869976446897791347583879330610548397231501213496936635563591151251937842101007451861220972330139774431241450475357038099115066120551853292963311084886826301290196074356635088564002720170853794826945254167649078200662172283252866479149149146838348979450927097834878788692324494077071721957605496247767857482930026586013022545352686620020831865568537377052077916869947723275757910082910341459220284333629594049320224330780051705229494168802107432045989091074539292746786229916172987006588209385187793418884382710705121745146319855335810239856270002621420507062370166630967909855347973414740607858612014406495020875993881972474452466408818750161123382046159275210954393217164959681921738719517550085967942982847325214023160591165267080183753325300933845955503260053631931869002146537041071608349242452226343386416361614306713229221954891349150534515179636502469074593930458474450283718153896913341694096946550061061658536857625057758958840904609568357337668322392287225635583533707458339199564190888267054706879403677729170185195443538041009132765586156009899812423880449356734171270346499637270296396600060127247716222332527356333943633341467669867219417283987374484809605606608541691455073100887579904988181260589492041886727424132863158527066179274450617168838292422669028110071035802052538740378560411207793548651935386401589203818083893948147542532003895324313038107553846195457547787651775491795669143611024134320268627537334879877404733498307540721404648819467542415347798054215628477079463214311428516213186522813697880897613131631812033700833062018638343470084009087728741366429029220410348129937918136010397712974819568314688933273442573580575214366888079499924619182359220573813739467966849716939942634468220872627255471615873636135545221552790667759726827832636375897229803423746202151312116712873223279853169577487849604365962535303834867490170578519559413169928170689608569169314293245019988660125422616550123978115860477568447059609227524679542547514677139374315476745012885068380068819915913405309507277255880036355330755337318476219971125459536412919691548259054926771051303408544996361633429982485373228173749593383021424801593897538458605121309502890841241185462788813804217378594108569155899467750058128193784726469285841091813387081123967597242892999108955238207237095791245252776183705658107247132353970414508543827792962643921196770688120238693698693171022039530969999640939046741050982057305717008392852882467806149484342458979687795002221016041548941411564975132125851263506071993273315682224629226412129622163130174617666862408558013553184870386571983544763537737210418238472074828538687311356848377461150860327060603447674771995527890545377303668743763553214036689989073312444521058931934751589673012200925699770709003323830721962680999800954669290241617287048979440554856551787730954891869527780890192593872644831043268336402596031658406477981991948969787748426536472739991984215499067540987771741299683188503381197310387287767615768381730462822110678489695853484274743970289678742396375204208673973932786089221545009114910161088153428905646470926011691474569586440123747955827481345559432129061343724864280799000927720644920951028189971168695419783295695210900947881599467352588125521180818820698400086576725121873807828768797831800928816757709679205263252257420671101782994423919254735941837779565388724002974160004107122798798681038013246899713864781387565367074221618490910622224891470542791544988615390782406858270449102715994414433573964956731242076066029075219318673031681672096736240113809069350731644564868837616667484490881291777464596749848582362835154822447824839817265425869721334732456136163451470383848886113213145109549755102894968119150588467496018105537815567113011217451466915208114131446601805601683375008181034887695469808017345236252250659045932307893822310124449026964106669017002128404811291628154935513588447602869120568016344796243691842691909412420466486546982288935974806349899721563550565372722394534069854311477831839531513367854207251971533737189106500936564849023515092472581464538105746633222911998476322524254229090486269923806703494707270524213284331127958717246071438589214247256141585670904636592651720807270821698897781583079658760998161422056294980273049782038218226694085830733899501698110906096288755725129691329236237050244494512093739363325987062103662811361876046714675506658905603283146907526650485623886943772331216288211258366739674813654772878185257959501202742699742216256017294299806340057672938767039946453329340272864733454133981737526673639430958954212386727992045503516449200116891155869797674736575750176196014072770581442132282676801844121016294085981640618476784782295597794589339405456778970748397708432393608456049954404442008817180889652842472418490967922912506630729528510705196067246411989494965047644740131868229155171021785804361552402131799669424156516836404968537252402839683850080390915131466651508548770297661934860975528447790872830094047172050989251288852299027608522263082621562214707951371049441005721985133406360362373400500984227341430562730019911885064480288137480920418900937961516603026612109854278580009606301381668289527842603893375495798150403597490369048102643326917287233451388596619019655908784183883176138455186344520738696350908251147630053067703060949929035461316341552496518710537538285761890824122174727847808525287135442350943400257430686770670700968601744460963386227433219918021789208102123581424960709142507397679465436962517160246719130303676330551782489394917606995532796841914894629818448516125660362256953822245010185763350819829549163188589249660361539976308402263029677911356613626076877021163766015876796680710056174864288715989986977974254516503075318961557292319133320792590698678090424895234248984225981643420016087804869240486163018471753967988508937842212932300756814994192336982861841096838965064656227221638092087597130434283636886369699843816689381911388076332092424111238160013376019939881834137752162190064117014177974815712857003634773554874875348258615166252400432258327805283502361914159319030850110560746383380473261820002822075012517358556387735147660729241119021756763686682606623904670765282514061205718481667017832881201199403921445549154086739753132414515035468069873684486576435727072485376704183552281318086492547013214411685880330748056052470728917647642385698346183129149291517093617037867718952901047691365233564410801799909453416870613483695956431490289929490901623489794480743822896614136891074327447337384847229539716018265833687534885718912359300714153340485876505357583298537723954497486616237333437410647897010705686600797904027367563776684825851771005388978737321330323029261548044175492641207657480688297820803220920360053485761539055578126052504992248678536816621097421288111526480931363971980274090377484185854805112399081902508684627807824833120127022030147261766668216353808226808272467105223395335422246660939215671597974399063532246224699293510990786592497656319228264034201964489320133323234058752175465625594049380716356132098650110621846109191504864471045315583242190314954099570317498947846285730514494450457920604945359859236168928845450480282532520114580849098145411035704845989932589260756838946120583783889445188390451845792303735951107893823825063946541083404570108765371426559099501509709953470948678700824864079310762246586986125095680797823637218586104023688339737761755721160094236330905082303766938209203660310530408264085148839329854295583599908779088139292400325793469477237752005615933795763987708812771460359295004964524797928059414054469967878917011584215862275033839971482170095713972981774865010621258612100141641103074162021014819153969097656940446826739586555641676832354507538304646241315006297046423464369369289066044352885873634369092712758964500257438443845911343804833670479014264240549375096126552049772307722372640299107853568799984854690636411056382066610613629553603038056541245243327357649572850802618141457151541742314215857186771426840039731621593973154664192597379955229327204312102122495700217258172015334755184593399695375013617784673695089324620383657864397841980262512407357511267196479488506486428456402973662543973777506588663790042991252717362971696904758950272049840472996732838855087257317303178455106082056215114496561191781834851987763333198460050568294745280703117466411958964840727946803888510766164890455501011682158287335086694402610393075850860150136574456303355368012504062432645729075699910501160603384155864940303128662605815906242099061583734949182895547285438290293835400109079374397013537820541432837853964154168041458370936060329794260713403044722306539606787965476914465064790868649925925103560372139763643294705869941982502187432187242775859544588749618325398387231581791760997311154363642686355053557193706103602642269177145451529208428751474084063478149360880808232671003049280380417998039108279094839382553171937411157162318981807418332677426788743455251271436608902959176160310093227750711637910427723460933282575155529605909539961609185267346277276824262074489777565024370019686636896600011558068607649161688682282079274200216947059879294748882791282850389710318485456558159746660697452757804772033862835576426850098535139435071172806485291811281463880725984778568668781086021463540314914417174846337902061160074776399123893223430584390415786215121511802919401017363666269877823225599357899147373058555176871657637108155056469488317685443535317276658528573997633195502932323490459216165015943504768819168295586091860909955946302829190170679381920762343676028054431882335820270967575579380627962397210705644812726323549154253799536530559612946913966934434507347863752255300223201148538743936882340588471004443437048928334340179298218461368393182767557970199484475965663989710342606986056817322690624130699656603284093559655950904686569716837650090617914723824515889800281123445193609374450377465095358273145984946996992711622635627748756045451555363315098372122567244189813575469696725776516157430969656108783975678524567316386068595582228613861890606456262674443838424690442060359336040272924417622808609807776041823778955269510719004859888553211637996428465471922672681495211226718342016503002093379535775705027428554905364856937446205115021954667564598912195017532937499328046341689045093349977551123680355549506663136060345544382939781936759197673352661653316593387155546964943281438586425682695265141973080994498365431826390250941963639211902564085081198433514340662919010442181378488173302067821744167231181565410120214594335179515146977505558751592765620867123166083103135691630712542291516496832343014903960817676122362584696923430149197907865312283855265195809473644790017342824543524148317719207922393751407746701534553386427696596768195827079721910792676081336027259896782501212770546653161719209067397542871343981429291043028661854447902482765802548930995996597900757730126257869940660673445899348359193508254577944682771530783525156193659403711014565169822680500613203782617262217490188787570882521869550572874788319577405936784346799244638823931151719672518115697510362236260189634871483411607535013250140080463806411010886428705695703159302120466906389614448710307028458393957751157942779168711884821517630374946236272388705228825391034218613056816634812403516769078281142579407644818363069672331659342474509739902816173305952331810399036076795639320055528699955603912888583933290091009627878550410139509616154855855237263402407861828146214034942862783756027765658954695494899933637929450789606219645649901702850322772919866035076215594780447855726311714508535673554525410147281299957837361050913424312500691700016347933395890255635311993210913514410866712484928947256286763504856867386437848243683626662855346995833845536186463965668912449592513477714114631551844446523887425456585466962835005025299874108599032790819953288253888285261018727124474738323085002186220926758829664850525739156230454079588283909456718635707920308187037462517965291461087610143479587998322315488229897153664750150553918951291752710530831242886449570718152011309260603823059636605363126780102341727944479624807894859532102167383471015840967472514878263606127596851672550912221825725668002980112677784640421894928821686126247876057947466804035067040690830938901995832979142318351920475420808736570674908083579065658291027907304508947991714111609557772312610882282163036988812381210129325397912457665626834094948931668296878707686956112651066353063139978937878260315519105095714273162648727026051016859161904901476720754508613380371781764918315699075710516173366554518659065235085693329371128174193824533565002539094911281942729702267444346418026098700461940046322564961424050065751449951969679033173207099899591822885643127803085993971535977068509415155147856088818446563146341609767438778730081818789726022729016937669478164107702235662429527646212776982941748557477576329413414748840119573042426834316199887693107701336450081071778105006702576869202858995835153708109201485115034383518753889430072194201833797131259596410211188897539124883721442018869403835203816817098132043192249934360228206272163494513026994142023944409732670220742743798116400827857126446709780554117432559551861647365493970724344919712101540163771209157468406595644788102338327672919790599301104191260576308755514296003461608627011350782171258353057911210893099755688382971574951502359136414202510931358041904475525912092096049667410923393275266034376644905356002996443590156378574647900308205438942539666702387793923209052888121372499141412084100967650609973345881055114960970032100645329496993150348108012064056570868421635757441396553769521667154371888488751069772279465646204947348895241719915181545470798242117585260413951248028112393750816398728890094530194140255367900875296106787759431601894290432633431365335953365198923791516347351297265201163332020850337499311407633434904535738349205383086004227514695069621779035189181414445179468413951479140739054334938531474247165166020811738916398736133048125188244406214656904239371679449979859929817336271045805108084105431043766115361448892623744199842783910160520583723231457958861350628622850850336132390366697527648479351115231184824385048436093421668411302473493837861698140999615057328476158084667431702115990806058256106951542826267967089706878144567357944309397171638889809513613885547228274610553884529813754946373395009763338180216488376671934627279014548178853726648471817907650237181182785509896997300406980164431437165869097920305095430376592100091262597328813312373116306967824621082657354363285319798133577358861948450683557545454272602011493192928389830811205719651293991092357813200134012437655817194759683206494107930729990525545555452382929335269892106996494141242626436798884305257338427713686207102451635247057283127255308613334394840517281659381875236560034205218497463723557813246079585933651667605095667458827395339869979511142246711808303376660766410858886716813041473081311860222928300528822166715306583358390916606364975240149833189636235926023296956608539567083171550878123632659487961697788591366449955742990578059714737016300758828414959460840619591556850258032870382543457546946380458528969365663571628472992009122010178635343859897870561109226819257435491116485970861826768641612955277468172992973247158535840722371926002805432852430765123994646879170084507064798646097045689858056374318713042222919771724160028072304141721337249889175774355261307904774831451841151644493124882532714915833458982457876407935864094488283027225883065494066925161785790521861807193937583901798971357714639373868349186814917202544289827886102977078918294907996874899800066471536649096972852267492864910515233763383815970950080288481631840023576800424002103383906409533386419590337690834705178273984910665567447577715911174669184683038847924065233463339586938603808379284809251610570215172225791273629700058874851508062458392179450985979700088498729230339247789880951205135178018635142271684570569335914005175041018141365109328807246977398788965970156200384759616959298578916936264917201476206489157304855467652815707243392537511195703477813297512879848223563203756059182968745409421947987766265986586411623954011708553370489609951615729680659603723197438118997820030247924662945964479746974050628761354362546959491267567499156106231915931391683372109125359965016624850073635920670605479077257103933724355912519999139923746906821506672536427653802598273177357767187604837483323643036613649117665361204768539762553840921917831131529620897749533197657522904505339247863495341016848002932383254819704929753217444990676861003692720411434218235378333381984892628862112647340036234591233214329954162697562865661518654039979260342857294814303092412748519116513826060611289593894445504190974553512259289150766929892994994047601221126094113994357312152568092010255426123735521301341165690836849945812919819495007130416913487325649695604582950723878802212704177089799316631735304024224902492786986410716325721648031947083254267645402198170759938258706766141129428402480401751548014936948785375472036796796901491230336722045169908171414379376154634047566282845269332551174241159794340896870435204780051388489490405519538621251451583631697800925270083210494353076347086101116290159309009520805891406119463802451774809007252025093628679393727754832066558006190907135375992806384807106299811837001229962060561520098728945116877709916784529363076184487101123443410583264282932612276415389267411960380604448933541561907231118115035778729639663315712404512068933785488708463129656903058350598816982378623786031952597573664493527375120542241250837004168758762616840310623179695379643907265529021565955061186330864149870025124549244326705923364578541690883380471107428422404930951633000687137278292480848018415409453949278567806046899793537985909695573768058447923672440479266293654103260595187604076021947835349461342574576472920025183490877329685581972121183625579633850512592824098302740519774726238709401217042746621671410631971236687288180983700101543420068730534352304821038276773161961707780037466112519348872065843780181317515285734982062362984330097507130305139149036280244750881007828478926584121391011389435931521271944557321113079784751503920266552092356612334163045902725239274009013282698121806479454344362440394163273892622312538467516517986524792303117419801920024276902715673336477771777290893655716909581097993420581707404866056083787615147442940776082301194885052297123252549525153234752886695072946573713962010046942571136212254917605773662025806537215874914168065807668121288939415925830394655304360510598555418398659383114191042603542835740802993751268417605710007221883857140857278491127847934721837687067411521106775993107675657109774749099562376669502114879250349659903349728766028510087333989526399148484280887808708253705335946327494228081347806493602790225810277598626616495763283337098093378251383220542398433507406024763426815310439391835752127000420579042212569696197261135332047656656146325680077750102517296673235007898747045944363610630623324502255285259228219505722880018041219021198094582250913975619554426222122932034854493385611924150611592886785433468842066692432544724458030677567045922672080294630631965729567521260329736968708690331381756842091856910743863128982938489073319901465513714662391110398612009946505066776141227105931039490309354601077536418548120334436230386374111770974270295299834424779761515635324391005706316990245620158368671644119719777492344255233314613230482851556941576324331491245335207470917518337820111116258881133142660918020252477947883939876322899047987431882932256159829227163187954116138630281163530357855942509776192169705045031838417528549750169850130593746436342355084901189973431936706208811003261263920248503827441237793833224555927938900535299375082488638849131343860229722426220347235956039302546055978541554234821879419482724598933678675508547591190245299422822115104042846905966436270828834875049315715990213380494703338498197198810771980997768702696829427286136380313312821517477793424574073523603982888739083253447203183959616571838475443876333172879572100903056995395403697797269465158483119272494029117180071053636931923275788976821820387960660486051116817359291609769144415516051163151077731958531702956912493545484144317699999044131107573237085737447834863772172521324789628377957840689407381317012597571082338744630696794879008130021430269931555427222923897898017383966626616703408031382595302727547340444082758281596417577386334996881555432282843417964880234907536773606168631392583282300308033080365000376624517127330599473438908097676213006589530032847444650232017833346255301024729067518419998674934018012109511146820279435551115796160355012676943330971638174812488848350360555220854673334542086219805466665445654970624980964107200430115046659624083432520772496281226991128680764185035606301069373799380157612748969265305584777099618517362670568171588765246475220043328593544074955127648711281604587594372494810478374933446982388906162573504238304787568960419365021982958293883683940333827376994371815242765059553454258607318934486665597210418134257083881475608207977607438384403016969852416680218988285845996310904377012317037235883039930699971707599133558157648211557774098489887224153762047172481351932717565133841026294818610953005087019912450377936592866647060518541361635848786064858580445279625329297305739259185179060239698535647838781252339400670650598486751005198315983705264766651452960472929605160855926053393423494949983033452857254005948340594853374678801695663667943052274274914595637657865426395966505120944801731117461334373855693781888685146263969601420893762061453364195115662313186034822292183839132890813706325043155441520826970994388939226151642924593093294699752892111844191625124144442739566508260260754383347565839080447230901976688020434738440857435750951784499514629595964004495427217864054639211722362584759282932479380141345875499826777286921719665247496113044276224181198215376734867737454707949113279781493886728529633689930555231207432309009944874727223077897796169960503048166231892077649359181278660620918012069455116702132097149152893750688147296170642110660689359435623317692726424830395232548696239609534554993145832119553475645458872947467832402803756001390647441946683591606473650386751017011299006575592154025938845117268847182878466132881975131467291480354567670752624352230904020963840549500204169566656202362984988840939601758560993212369731685994526971697328955068347568613779673336467439832180490559792019228201667651385546199099719057877027084745513973174234606729606819870648017101367502767872847596492261818875932875540020857884836653828956896500020349372153440911164872537110691180036306358976825680535185710988516829605135382488689494264616641800247504911114795170743549083855449813141287594898177722982123571959318610462992334828741190629202495956498635708113743106348323828023295420481640239519479212254944609304425361352080485547832059990067092877972199986708682149617729175198320634033598612512737126759681266200322373285439415904481824114506325704995213902433842804351037586947739026787323970900642570089064591367704527680020327657833200477047023325401930826946826449268423042619810210147438296845394512747974787270952379984768401514862002152488175860713688270709002634626707602494192363712271594895447152245873855268551451772310461839156573088780741163039910049045597871065642166875616497232858086896503417197855782172276812778341474286269242758150555144593388318540699410981630955495717739786648915089971883579246535654816020571858671569635499091277087177982396633710258189922124030924864575003749284423586025997073574952408075971701864429114974631853275081511248032303776874532768565522168715279158769606829161932146280059841908705738546844697940120983578626397516698242317268393009857336864667588281893983571935385693205722828381377098155848032685686583060496366826607621582991218907636304594429512946867008549000827390598521046671385061880618582654716038109614357388204442472071003140715408660669819637296639138911557114268718735017944598829803305385946852898444869818713264881180185710133382147649717513150067109513313720642305632135394047918281352855682022014696397850691445631827855987761197519720246952913203596176669713386744550295738659675048214917968546677309436499092374923979994651858971604553951411023465751088366172512931173342674683836239897450996050292691874605217872797906479523930392166972744293309372371081031908344599081243409048542602237437550934182802400653031572584851113843387216301258131978489255264721034772046167882854360513823248525294314228109090395373369922414672619958703936447527108904690523334916639951751111806985905022002714942347380849321134424638597440475461409986032297904435744106980464602996551629253909532469179036709936414477071439451773553426555668711874031411148713163760040788715663598671693165331438226025951204787040335725148559369688994609284769518721745516889469468913501147959257863926272909057211600938465450435691731876818108213195329656418881144243735581614057455053068200890094289875925923691409698625755542001601027614343898843494034120968265979488990396104713893170837503332905880715349070193411697249321410554660161671506177271966113342449060709940410770043092084191373855541540160306993104621832121537382800984727686623459020950838620556874251958080232577220982931688930355889201459399161275085110929909840702066808224713266077625653213379893665447703826837665381174459152537195546811439616200700721713465374994426380304207924534381236941861801302789197461309595391798281289678070622265226273795168029958597125628669273906867319909999640216048631378171495713090280001898123157186042202863670147937300124329834481385256720557678589677389592170883182851821921441556659184199224752315286988617609407556505681086077196785430910229382680517750810234402245378035431275501711261481929544300828337368349090577483693528955361798016467001333085073773666298411488780174706145512680400061837856734878672101217019678132402579185672230234874088852663354967183658448670656513617407388841481061608532919710172969644027629812046282563640193611719205589389032253882163744383554933582131319001399760404941488714508679553557782928187670738949716091019443089357462721970451733873579930242662335211549538704531414395470691074434582438704480779093948134746329133913182775187736190675679640143820069224264307564127333938115589722655488805376421273991583561742379450403192051314015267070564118566676605844851563791714282923880756683167635803677215167679379182181678463318430474812453027170760728759823884288071774396806885052464491549871437640488459971614426565456492657195326332888390878455410053324961311875788319746046940030779235075314154933125343699513089297886979981434922153386953664535571827005941820011462768498961414728830003506266018072209047813907053499806318163296873078396465551323046557482275517502028069182254384964581153895185456231046326192452287024696988075700599925820405998681375464199318966581836401022136091746526076717981376922940474402389753456738013773028247264519957305727055039883686386564580613034365605416002309078638705549816829629622585167678784364900915636684720019749982044554920879326293139163055409859471078902991775730505364091047797431592725260252005421757948473569826747951692934379102671689751441776281082795741227877120723735779773451110796681119435860965864731851053005503569528747595915960481613761068585384943455805607725035141195062271295128122057792723606953733831234434517220738121739032572122006867478779963670239368102167704174805305539210966442726388100667128227331060023815898171345374678665112057461424788995801621514489223651066035783288332120141132356863157293947952378582350980337679763408302035411109150654034646008334517503428502559573292358322302276830924205130268407837030188695656393063142201014522980872326296735959701451692385774834693863102514790697579198120066177576427137543150172380826695486702037874355753396717467422245884359710028957462431322866110475394797807607418907142139638777376103335921213976053318176336940096703906682073446852304735767128497380413590065825149311940057057243584412994468872733625846177572957311291785870624062270641005481046408429322126807185312045879885854600525851894487614699853944635670952056762564735112099939250776954313809738345218879793888499678071734176172065221886939433132516433415509073016075006586209480035270883387935977536413032165767624718068068792611609803948650069355253485382588462097858283826101405866299642247105040199132456428594766965120337121736648904684495022931730794775000227894368740437189585373071920821680144965618872177749306165152031403460689312932049928927270839300885090955948055695687186487665509595491662868041486231352766891784164412712169794634893864876029719330339796745266919526069100738838305413311305124013704810569508491745278697482928406732890755465708225369697207691949023177134416289129747065085148633796200947276191142494176602949497506235879721860114577399207980620363371407632621000969864650117401674482841161006030205681720053147954849104601162673201067607059788689819133925237872497774978120629957778237877802834414273980292335964582982594368804200514534544725910364193886280854106386835375655038459984036695162719944206784161840071291936841792375117617965458644683456700853795876246027557603140539343073722547832739897094141947565874780211485207948779292859208536609014104227851086024110273034895643988000902706020531672150760975038175412082748634880055156593984356432869716421039755739364771901979337284868533495661934565168504020780807975067678050036772012068223595206796594558976558371001876512019362357210562671534502651934875907414998956929977045847652089379778397615530764137879437849653861591928949186732833466991406853452116092111203633809050597025160742044402921049021417323978891423932327549069940290314430555078874470695628959234123600143811542396915910191687264242382673787957324916956859061281671753173566253633474106449433237829951437293342325707162461656250206978048280643518876912895642998247711942408971104507622964221162383939259442349091135233357861912981074100334347208522433963750079133492530722047775761515822269603264943615204296039910528829480661108185982654011272286483383388462747546814544848994222357701758514830207850134646050041267731981068836748736716663916679799710064533619900704439881847794120705840931495330293796912062753201430265207276023769580788715362222017048136240865098672055089773314019727025803617303014217676336315229579070440683037828651727420160319314327275458215473166533825589628830798515107321290499300989243649784869018666715305629930362300940133504197598107724643146173571088761421496204331114150889308302045969680918487176739661498127278656776086812014627550652181102219792635090352863533038198440608592190637563516948550140591066307473958004253912305034389118628881132216149385622049217006002642273579970655453169282228448529660339910318162072210339351299106390065907082367377943680189734081971935701824532584946195766688208043322654914684411807582713391845087258668365663138217988769553691992283048619248704583187989590017358051263299567968704682372087084981566299369124553329909465243652136369185703933532517104508524724163166469098339180610769561514030766956007982640534956663656509069114197041580804548369871489042672708156416119215536181603551431923117703812553680830749969327580986582358708585546883243914803506234030800522869747386968701162439496726168443382642965396018026346348442732587150818511638859328887437488627231935551590272061960191266138895766332811684495420469468373153570920783385366191379164748634633993924781715497152981111890704262585601347538732695075610802179228280763676406674463396313137742534132775283385287011329386967591147090741092798219287697348985895392614297970743278112455016501947351487100866818386401480328828771863407894703297755196441257032670446420794417000395764682815447356154120343166251247846294615171247870486189437157801682945763180999389257280591360955314922326436785439571112573073190468646582093159861832878442783277025165571196846420836572579484322445381459151540794586951237984899792842629027373973077157912377828022853588949356856593667412153483307872844441373989869057924983023187766393157541559193039465185457438733776918275750820721825535498312646247624986807624520652720867182970870820444087797542222903191631073110627758341903165015654390725797761403340392958649592522240902729885529121081030167053663319884156474887795046306106583077056714994660100967437604084519197340501656100209776099531159430910437573759985069238332416733723049774076554177623534481324194540541637608766917004012253226152795715204988260974212522544317673980116408964550187155056991898738922933706462344441954502914944771220431779533760574503766395845054281504793359718706236803207361942703733172090700644821662898180753733077120701156865614714664151007402844397961756534732017452950193995279408158495198717607954388145427212933856885182811027018422411607056949180899561798902325545183207147303146093876414696267756449317248411284596814033775833893145104463456907821713335100161907089891576128571934641580884958730878632831252467218466850458436802410453527573589227578054812201956152297815793434111767508454473334885292785208883081486749812122823294590749162331778277212537788184608697213021400326734472124494203097231499618177224033582332111816124765828791700379529111321912333528579171360457285116068951958387246937877617929863190182598710872981730903416127220273298056421628075122648349867174741509207261487342272593720713691763123829433533024199908346066710679267283506848117579283339950768170105927868554538752957738214182091825830420860119044314264851143390729766151252952222750525764270403923243007818284172663416519995263621984551352466365702459328943283842454078801853815036966497260091727963350909800557895884239712091390054586450040724181159359535357458597282114577440760347360839102607388613160817753636248523397762394652469552492073062910945133779854079473804391561696504032474114123161394821819331181658577321421095548115103945537773306076033850209043043956758414078545335316435472127256700510104898916131833342085834578863121227208768245957749870647664613696575004634953364590297720305806828249045260547763464970993224770098453445192821979941610992249966288677046995690116925971895781070513041335022898490162078996729827895558739485212456142684770340842986267438013189394575603656393249702254280035979660076941998951733804352567439761167537727387899091455667551120683688601694405501529504015806417856621583812236730752606021974823045064709451857587643923660826764843352849168061269704595132529893803101935178513778767437405519939478641706436119663983030499751036298970684236997781117711327926731184312659445779392112929958536546306780004877757052192231204430445819961010206943031739127603882601418906092906717837547955894510284810556730645138199985243233091726925842658627180958098722019319570555917077831985658535239817316017757682716992911363901203526926717995264910257978846998367301175295690345906620485594940770560114063695366926418491673240215296730900751961668419405454332476026898150590713538948998685859484973851792518466832446249523309568218864918177002621685430056993668207900698584515728263509206324300845716372327947709235438133070748265847682296246456173014394651333250447881689934437210003792271803050573755651050411998783832514408821833490199956655443374601342119978909967110166909545704039787009051413493252864171215409715841578331845923786938521016850660134475973192750869764951144274594574025777159798000104984153121712252672802958509459212337756050121953197253992461087662645423178696548506579066008580738962811602703930404334794377260050623485230282821713904515507920295865365046179821955094968780298426090972945882497888166695062290519670043424064673662749089880949469507974034916647634810385756649192786690322699310008054194474095061873824858740168923542221576637571337774675523758486982191248592852852373842346237229659032905642069788879625327708100258280129027878871105449457728753761719725162027894417024418748141585074704141472217236041245931601928632790138193646039986820406175863910750445465676383279049683830323231417233418165104140500984655235212150829141360072219768154697072295776639021009077818487235013608668403189653011688388191402106655808661029584736069410366519531689835343382464897502007544949966479637056310595906501763142321813455282327098515655235447151075318513804814557726540352140848315286735344465615556930489819170438613799252630915402327504573233661698254920297118902276385987023647447184477300007958277269622559871112797926584420706291007084746048524635817771611939728688633164886005152962283548893383335429521543640896927723812452272378704644817114118989510313800536781071619754585313361499664629430116567699425652575779670866765948218670845977592638228184700484836357177625083477371611352739331991730837640706522536289556874242541899551042334016447127098174970858891330719884218551704185443185237619755153004048512500130550893318373790030163858625559221136677381353502235427130752659394621399112612628238659391486114341637829600327209437856586749987955571205342575393343024655292490045374417309134334193253912856237789406880865475973311708538294305273736803862013747600197643091267656184916259322681920823688794997518602448961096586274182791786668369010502518005666822968695892016691914109964742996680623164757152517907211002324414727910975785491864443410636820236863813444559397774668177761135138313109533461339194036599203746484627028304304043625761934941943324562229565958332452355006895332507638400598865020939532382594333502853778131479377813183561656442195508922059999841813828355524420925250705864194857788357362511095490718464051239900081299964613844948120552581714461240447412316841200344013484868582157944360120097195993388777507851357707558079892876000713994337618254056012988163953024677462883434148048675708813145374443409168558774058548107933698051252756336156328694314875706890574451268329055545580109663337953308306653179627290735322132037529088600227000986835957528896697686167620129410941265890611556332343165909505232247353031464131554113477540345557111795024467540030572903136811031129372471677177841096886281386503073212893076533667374336780777552331600386266836236416264446451452119884798990857497612253199662557597184811961222516874165093079670172343169333561610952586740209420590924067782852014887424321577901500317273285429961579509118985955857737633474677383143681615807687037885114764794900483808455357249011630811059770560883339692169321164902826985251347706303912582241548484163611770900645655079446464108583965820984907805949810485647259707669450428138995450312193512690889413202793882945421414016227822816185433612495610921767714572806745611736120226955114808698107972057127492080942608083343313353516342471847393808001566705349950079337514849192960176987279578012972125732417576295275960738963195564542869992340972772095360980175246916473832048314672468654918902335843904301355210966842359330205272373591669041134260670227246771552008399108018524417082032925310301673108458974412490114049585533269085212919358183978436229185168081146437108457831777396037770887899030614598896996309402077242226155807311711056781209389617998314866117512017346367650876873721005901065707276890583344956491822316549441520224196449710680217035255467756766893837506573220501283566452056594888060295311340531903950332677607557383885777708194050841696855918593482651916488345746813783781211830222563870862909776598228868754149562194606171939403323990467263576214333231676755413138318792585380407963425913271274734314189221182848673334360304763276877752179247117233633703463615256115349481888754875481666708228974133755864374609274506573195698228217618279898166190837619958056160757690351354817344516818106338238742284328402093956245771050675693175097244673279354637285561694234980889876938473447014980430628610678222486151163866524910464511868348242213998481157192774938714824335978917202615783692182637851326997884723766231186407777699661485111804191914888053182664192625376408044801243094833052550183520204741196797394121209965668320264949562988872986687699611613661154074338940248048512448152196055814049076635542266765728635891032629131952661529970022376715626567397122560424996765772542825872031750241321259725498677236741513489658939926258005863177634132703732054358896533343196173751613987379170979731823038698894568807079120129457530781009862769390543503620800529462159787371907583155617986794782084921212612541042692692999720323449932445043136142671284011919327106962095112642879689372297126879804025481682925825162413917321343353417450785548042188625819036809599638658023184900584523519801153635078935552689743240745546992145958429031030139344773972220445216234709498932501319462677991341638488917063639389266802580401818320194290466430311706063357459586752660145062201936314523098485185283032391682413162785210409386907492272191224680165098273614991371094903631323845625383165640701092530949410166117610609067976582196754437195764539006775473701339051124897079538968866152404090837695543249412599004165318894821295828654497317384778322609447375962610493506413293340620197642757464544978759495592215253103505201039431923588106937436228601565059493948987624071463741358963219761601111313285162127672845299414262282994029471910603870528075684078174760352178850868445589178163484389517463874017554119937994778204160376815170389290718307345342392414878198786883691413103271984480399290320588025522891778603845186180340039016903564515383062633411960815089995011601543654657920489750549405858360587682981511947992648787393636595114543931778921604324796254473935183136513910334346362886045306334617833233944874812417945637033739013437881177249164928115781157957123095965043667298886918129384986291701900529393611445055128343785737682993699473538200060813795459122785244288490551299040927008048570865921252672887541144726888523659602485213242838420078291477077651070877507834731867447950635438491467008361811088075413307518991196261069167713647176766996832905684255527065824598051857511809386285617549163535468619411524518355526898740109936560703694878149534013205213730368485262148924529350913920517526504861040370460397217715470620100031041790072193549092872027374020504747459394624493650426608386273987178123625310905769900716677102005839548885348884924399523767551794677287013295955847658782854247416244005060741961052209612401615286597751264847340368237048128788995639544114894678566546686051291504188236590497590899433350767139530161735565843382441414639572478331920315461499345860131565514769207978766706388318899136268633649726488534839975356312359457293018449488621608914913810022180561665642557017549200223030333195667607587113320375397886255329679051640533693408581577855437252566128146997309533485605765408709375474430526683510337830949245173629676683707670419870547736080587705206886266615590985876374913258401749480453681701260303418936133516290416005735838050640200380383709897141389255599598899643599625195163090696326175235460834908124995424577802704293907573865127705799459524370631372020981188949943313571772272069481996457949657764717190250343166555450482882895834124837350340662502692573741151522631006082903052469234076188618149341283614563611411629797681505497070205582944449626502582912139764487406495778487112359032941080827514212111530868110849587329014996007467492149916742235346431338510125155601495952160723913813077688511073873394565572484413944091469801886311638320327647604925661780909451229903013517184130260119742699502412274796703135348881256911516792961774118660125016552418177877026485971240079194589494148443390116834450662917559407142864888376110298869179925320580519005684515274877068565447548161601564829411399528577075807887343977197409061841754699759571781344027889939746930752028810825298791281308171556796141423687357832408785881413278476670556651433490093389346910915585396864192665210935177735159040112633790652733744226069469536018994774700421330112774377329806240351350312594545387446924085916848741147983651383745284726672412723737257696255290227347308878861146085388351645906987561234466373837445841160921101253253434806169267733556492044424579262815504157196687180550324746413753983350760810056782545989146180786639609744419947860538158068430764778868509473347759121328393715438042388117674628936650331179524670469164530545576528005332349344006277492468478934779095203674240750598781156276073684938755395400608440102410403991290888083053768829982656250548287427129760392982220115715346639264057755004044696655547261954696549956990822751180842252924068367459668873231643028266837922335757706689273037032772912944933141675498381553016894069432300331706568413067937338285080025809653958395355488397644086146010309555985316460207270969851303040502662917141611048161853469296394299086822120664993883197956324638120432399780274062255782801244572775486294691544200832036389439477907753920596847136339750040195549860200308679518661563920213622643151601776983357519211951366094479037974345324491150094164341239297482029713537042190379359748053954535559038952594870789039891495518564140104774290127509654527177837422813945980132309444861812855557481066381994471519073693437731907427472124782193192729920767759499653220842012336866030983368222484992999047662782787169398995866928852628351711362812041938100711591550294955160524281867459752262392536543939910344937269207625048587035182600959232022331029661672954599751392315837090238969755913546393402504159026309710300301881097228829062995515772143763641302990054106865941272852959940081299343698468450472145474562805402740693865732661485523954419110023133759245750945838753793578107732066941439580070263035507638667338960666463978507665423971488130025210296924168246028049932955914943860758889122364966592233149273605167463622814937114995408996510798785859115732673120030829410337312020894661086098601632010676759119210478779417914836287751674621069219574520558319583894907196626388277898809381580990798823432700233204684547412785763665813846663319780711718472651169654321810918660916783630399865639357881841043855867132754122355512606137299493118137001954079758953668706931592595254622286102665146483850622196271951693783814605954572736811445269851044787706525491218615816211573463440545651792949792514699510623899792730401153700668233516511451033339494625497853702686866743532823842466659763409738963154109042652317347665627579917941648438612858296601711143664995000612713384551552721620438871165008117950220497537922598778529304606808463079122772762263887853908271773849232828717095665989948012209662084019929750662642249901552808318000346451332106202436854305764299078721289613474081529950259549362254469470612001399995155362416763196776539489469331814962503830366495646792361620011325209465674217553575461144428882162007915166542255442307651901801933955364834302304382885574259972516209538666637243585174918275855385264476470509245133603948566375338516626713158933018114003878212094616823529926829169542580122362830917479192199753553664761575817115601859983569956167818164336687524500272708360338365152716093241970171516932378958067634965410623459829258135828041400297077595519929028645790883337184012218741635304509974423608900016647775179700078568751346827825639398665896110167691237855211066318184673982951625444795331401801794362209628177957113179985522542401994846323346399323946159537951490857502894180519568832509996627580844865045702031951946634106445555062979760853427142236150373836756277186320083787369082224430675353773030757899900470941711351697986811345635261061253858740448571744307881797598415556993841467204395399887499208479298346758289341163968518125590721429656974244490755360591513158163827801906604128837024676599392543236924941931726659306303132523452307709547565137256082699523219135226519413820799009157660758077649583145044128484562078703316115708428941643106169380063206895317231622774662004731841125407374993435178913493698102679207448041146670386877617716560463655105134307384658239392192100691685816869697209901864680108944467657752998205097635242282810461859615912212101196515238425909269838080935384291824303078893361745345130003008152483211559257743121427652194160729886020619239379962529102281000766022173005810762198308781704334103263088917790413897908945757374613721628298600334387030878179451043760586644815222076517720852529764657251532309218025688737570071507777310641878405893123323184808157251419988678965767350866691704797125263540763856609291708624061880248481989253901306846200961801790438117446929266216275104116434649016645749484246765122579490222986023846556479960387039156284762067256304236416632063911907801490497703710541091527008414888620991021403673430724670832457404491181892155801778197429109488205921858744235538403660243936249486503155164178799280032720677659134136041407062689928546708582526010497695702547717654212366808132300564093210235204976709414926221469725226412437448463800508472500956233202526120148779204799249648410660322225510904407090487768827401014627662927312436666426539435833176418232791774388190580501264418942992775425627913354037759574439784113117723031289245820122491607316031223727522136508482312531529646180302720638548435285990901976489567568554065902268338222066846943199442161784537059864562117594760593302299036635905902199104004447631854564196253358889956387690579732028385870623822960199410283556478617737830109399033358310473704310437719790183265462626685485156256093112650102887913401326453963784541632645697983302230598710482244305435063522068114713597788657564529962090578767314758496357690698966747182514331645183568443511273256378409509997719848747748353749278602745389924561957797005665213104366542125807911029611210086209964941578517374305521680105860743096820822863492830919882678278412655547919103374045351566850806743921109891484782793057156273739270774105153922327887788132622281534460318676142904258864243887206664778367473922766194385593010656635164179319753055220526666521927250439999284252363047155539140396453743822323498493714605421013719217688669703962430789261023751354217944003401645849763043504148537301984164766657504968200398513872446857409825615370278319034364506117279756883605207040464762045394883713123346233144100609369080896011639974919096711451638536679414444115742166223718037036300208381267391648325675443975271910606102718420519133314219131786431060710456351117516071271471881471087125933878540583290986610462419044085552989853791110799604497863518153149208485037802493785256521196411432553237938859058476216952863146108033860982234606487876831703681617784185541438269016824959043694700745842205794349172310437434520142924120792189763672588948531791304262926028408074418911296001499339880762859287371950445872513103532230838891758596916923240370545192450049958967715448649541642678956399246282180249025429097501512419722128419356825310594264428737980669114652568595438154575170198844650626752678649014488620232898029836000749295350070665182696617222140868954439835192687028602805902677641199992793385701252309220374881016166977174965508956891105812521185705361877278992282244178664829657721214658806403070237453253284140529994547366818609002564345493528587049612749867498827062283104759403748625926686377009537584518491138318077512149095390688558866925111242138607053120612159685322656563598602615537876510888405075542678071380944336409707737710722403548895569397821597654672363737753292983803354230147034759596152788091246474170540404032475337958125478259285346392189961394055473280084379385982526624742143478119660545462172284771249324624853479358917537297421927218943463248261488855502362806726168898855796670118557366314334963082474866527739961936410963643134991901998660437827278823757168837635596307034745194919496263751878232832502871531442567747506903807705019655088898620606103367526089592989774568457991624166694426601673490162663943566560442537883923824597686618601855393692665314979367999287209456546095443538889031942520258236428959669125784280691893058702218117892349242534724609697502567546827493942462832057054805582200298132027142696134081128650061188071933135830938491439961754856276552062326291628905763734984260033721968061461558525942106299287224873016488347026886781542935072146779557848105063862544975391572726529275589251235743846684443971235875448372206930571351517164388417058496914478952289126950118385219568012852317560984384583231654621117880889924155050309186450114096522640990223498617015256538631519753307094100492550592972367987103513011613513416671282063030653138352128228041828026556128795941433519765129778468496013594109978266753415654864285007761068484190879858210758816951466748119657749809433195161505811944655334644454712274007833219356856738307107627381254101549251448238646286005790129928478881315149539361037787739662667091712804241666386765872166206880823923994053677440034945710429561236121584095418028813504977291017460841000094744648485150015389338087913084172910983110292836157879082600471909569932385532129782856287033252694571212733368570154163461074859910716115242559787363691013731173749280153317517480930953460313449531686127792264156743150952423921900064100275664204045211018250204246724733526873075891793344910130647756768381009016154281509594225789904623150963899861373330085894690750144488992335609891302704984227033556321430027113677102097242151807107437029194812526457658041484429778852506276692276074660375313292386972627023935480872369957587093138238449718097152649371420165069421943565029683487534967163969540714184026915243218543884052786230991358239234193999906898218481198025394823724712569779573029411452085020182745032369354371363317986600136612747684545482207792958235087487711447345904752147000044019570038587853571908098105868692374496499469991605416240049473074974307695506253668210341333058180791457926530868611912658164760533938612631121282229077988211087839869700114224813998573234508384514909508795415836067701145820350435067915758653299852326358215688668458111204314535716686700226594123913061607122602616152799982637721006862355722249787323237120818329519955645883760745498459811315280352522481034048668662354663935663265813364818279205272643121011424643302684008260118777521673924302414356067299459192964183039830117200049870853155867310913435388811535442818491284687068618576379329560038978029127661651794968291919103325685057900842572771952688481857362697920210197936985526652476406144196100255490245978601001505726574713218913653525592868363696498469112708405824865691623146996827435942997265649830464826568115803821256680151297214104493745150155358846150468727045841842514181591839406152278416154444380483801028081762694743140293729132654983294382925290508692330764377935329760383614573932543101083728764229040450777145339416366276521892324703247285053330357355363556012657178581549478071225618042115158549874921176302358111576537929847176795938098192981123194923922244215669544327602040881503023211430619178202558643732753899479785143434333410784511743412123640631419802437067635993809811776135639652590479501417583872451867424144676061515438889108403605773612710763324028112318292881772625122694456000170497379245366292555868106276749372755449974087931233956674436150769367494096308987153918701545263296211912755068226375206185722149844624508917862849217892407013909165364167366302278540709560889066528363493678334690686255574416547276167885075802449470007555696186361572730153242439862268271531937899137315115424640432140123159368638415983072298336986012396281233154556572166094752419144896600348639204319484650767317821944610745343649801771909455906478761856094928656859214806831287177680279050314419391343739149206437543594718246608649347965839636103965252383302910812099034235369874937782854024813387562915477393026274622456204586188755993763767321859607578851631076084857517018424996028107540487449594716217145754434227381570512377531584971631584785990414947774942235839925419580533897099164529887632430152278623288399632378090852635189786366895349292150729327527546713695822434336347726408193438519817164785664168757218453472962175205793668687367662909735800612671952586479189359512644296328800197606397173334789070113788479689553993499925145183472377186144321903782972610820419439779157873165875199285850961596509866258910342953184506430747953945020558185574819670833376113387790859997666572676748905195782893572352778674960966326992372044876019107848350951445386253824404875832587076231750514687834652134215623634159841517415195509315526022964034530872963730795540555318339667982620432326083588259425086712443677578172388196312814634593397890458128972509845185848132251460087948255119888775517663314946973196089695409970199493809936677871251647642951924223413065730318328914254807579097955322211752799148720119214582031962944823313582400341347395469202265106405648448096271922453201988583461211613077019758487334238817512777897781182797457114439546356284642246625740689115801090266290493066308423849398048688674731751257199200188217172469888168780943516674981886378581921007768931803890583454577190360071269215409263406686126518805730816350283841669636204661317178653600093140723659167243144724353328845373130153082179759801944949830718943437496094041859145655965237672958993170762575313524789204272826235205587775056301980883148352630109156837013167752743040469199923360394941192363672370667893594804688331862800135258245751579166106442970182183453315366595483569676309411437927040640953396613632982614103682610405080570188019839687701110870267520059138771442312962161874639268797280286155669430288869131235188591497080639979755258052575174378800225837100927517632760241794687052914488526812303027449079148982767433183922102168867719163149241515526858882024604190236634470945265995809634033491872048269405164740186391209379369913322198683425054335185128353023972398377064697953583236684770138981658436416834995413810402844505280677448941224332908652692725410002647650425857245333030435929647770326824625636507685334757234793723896361175811716314010134633011018960868973867338598144295193257107438909226223901100673145161984862816115100547944295735023378028019021340869684768533567248178426631650843659449342843739142036988826610238283425201826905209737018776511968173843318257093539370273364292676815982236841740820092135820559909074336721906801920260574719552838381786906327247426400231359795563337378577911513560300140841742512635558476799190509492112602273994980157188601060243791835407174101956783457045666114325446521402581527937488768836140579543369224002941265113181014898786128110990025537140804850299506484324130797882510176501724593659090378459505093732731675603101788622956228227880094057217090674598914118860761701789390214819640105419843947682721610527579257707547978979897137552665634815112730745228949531933255067951575470940424896866688232734128167296490002515638080411961937092980110393135727450501875157661319009289744943516671067102994176776219532637658450367475133851197582440528784793334094729070489399841132364732129487727153470748006958537051683855320159062817148641984942213887395476003671261496095895199329532752816766325143884342655432854395122879044304678021735575710870587378932566039841577807692672893994595699479960869283161179451754358865274025068366218193385301109313651801693234015316064618458642795796816781821918177389578090458360218682171669478782774233569066868112872964331306653134877167751136918233675332084983026963725769947578544220934029242446964057455864642626301191924925873364019958450574275914415378671904572974882028612689945189478489185386721453272100851547223143926597380809165589215463436283807988678635008540593308009837715352095063957230092649321633809512639317294055508500643485101687394140519631035941147715483051986529524244657715854163928355144471957668089844752273842847310906625884865806679915385167695562578634201914813805539287585363472081672429069347668442447498420207373257823868514278378574580347104355010570500665398688281413371945639992850664141946361350936090850764975695619363977090321683380389948119596785819941307829859457884249513258748082906923165914820210731911739511132891065251207546380250093827987459041196875647921308345192431492689609766716064255406856769536536297843371537059146135952914214149378027943947642243066343913995811065599877173874511585866819802389873713685476389029952011051580491847611445664059102663702623389027437997124649238405424143290273006384527762303102253113935790900514107325538917118628126030455876233655173563514436054582406511977814767742726407809505138041963252391925035137564167693840239201973864452957446873524661553787967190399574587311056004245833462042389125580812445949715350609191890232614127135101948654265135758476618605754659782344014915933054149109907528022076120326495710630241183078369808429593825319880769103104956207440780274280704434564180312708149915462018026452102221506061732716651181370554556150935727859842368854094679071274043429214334742618853931479662327267482784473547863466987772940065135516980589851028018523534581590836595060572792000330498869392318684147203482660816000073936199227355238414606592516220539294963796113470147269087475381281413604230915579758986501938650896184613510812175213316915392123966522076220100068094846429249345330908558903198544213528619116482573735078449273254790651470791338037653502716341446184510179342558702808316403983710199251823318753932757827390520314222977391937152934762783148644788817785374932879932751080586634711847049895663389339607378840571845431457460611709455125877592001186333753921518482868190507530744134182734676515588654855820769134907588417471777777065609912917287051528947418500597402359305995353366012346747318085849582499470663942605120295331022384634240428009746620332206219561046025409578808894975282424606296159555338951603814240460794113604584421020683314289357016414308790964562356426256514744867518655439380327336396194050631576374235370380198677512896147688075081185037557502253489789692248665007689091342863078852751131355269382553500438648838235349027092605827267271145127878797745312159959757754425976068863489911490838893217507541566072742810550300111240175354482749899813833658461143558200769841122211550232924368829683946559875211436808549959362837466444646415277162682997641089627904140457781892241732370531299511708593048462477920198855458984364857183337221883629565282256029806909387497865762110468861078507218313345002160095259990393116015403059331038405693424148644096745934332266545847761844976534213233644063399161012301886475475245557116686046995137116949291739519034674854969639127744722275054392582131191411925372301549401819018125310158644515115607781730724705160940204943444043014140252411479664633426733856953151468410838939052917788922960809203013632975828888486804849388558113076404818195579014831015499743780957796268444856291086259798229128770829642972848602755548042513979209823763605102140955174238990916077904899881701852163787036800292187146456502598032080728674926766344065108751844762023642305586667807715739547982046709847315907485486047144292407130642167321797865712122563625410191320824679611850552218498250773756130331876962539860686347505505575059653394606707982587231008420810512996062064635462748999231730132370192633976776805678019766040132176841457227638480847054849597031309974001767633338447863885415788989223296232307729021486960728605544036777413231039014964865142266027516970291513695862464063055664927364028921239702218472488342140110562201505961387326889239935846898501403994084494900507091840642661837018487927489229447886471737421252130417099042787093908968916784078723114755270805548830741404846757999742233193599575769044145349145486074702481615660657460482471244143897673650044342408890965487114487715891527319355643231045726663293173000900225568359003668292860023202803864530699701275802702518743700569165902617280003011570376826920509886907704314569009045655134300683923472218780758849310097734238027681806323274127437113034756150965777556763826416736079055710321427138117948037767764615993082272211310381453493921460453095201028345521881851282704710389827630286850715416685971969446101390248980294574808571100119357575418290860175765239345217860517321184972007851036864633105635162796048787841167899049035104755743366308827238050110832620139013932733585048590757664340937600219597884983796058418285270484991673739155023178591930810056395805099580702374584309710336866491821670637115039326506542986958719890794648433864692163836689892039343802874136472598263077660504379725060250325125682170023511502615411718854422707727981549667505285265061167218149031010243690928946986663551265913775172509631007958030946259416025840176012911586590996275887010214302313807646324449037620686863345325780470430765966884619468652137926542380547160582512902616052161233894143103054244496114025141509933499713356828022085743051991813515766127466110814082820375113506920634027009506798719117072700330788027453795460722190347558199633347093580849887233393387558416083242198636099155794156320327908858705766302402491851015543725964642734241107303182243280341069437284003282626843728520321272876046809209253346441327758649257252334777668759667519981712482062092930409375320745197385315181810316405172053348857566123324123626911474877483964046012885763104345263235373523988771051949597154593337595837220556000037575733395017360468225553938875266211303839207523259610636249090886594153798710848130350974017919961009650252158683087633249172594604063438089221113844984530008166799792551744547197939684405142642919923309836459017700982524716925801843711327638836750207030851071698676149210845869248932168555534560281982109780337551905961963223999780687748434070749536279695032671976395521267056537937560740758029482618311622688353250729777329145972248167394575262987414852079923655596489245424763530622785920343906838259303165984948696138110882116421037425779403449898653099947502849287659766647655370210224649348190338923475486363712910948379765752538273221512015286651561044081252900686609108149855277352297077699441368392193865538084111567745202167119734054215449107287923705419623174740281466983729610863816240196440417432203207926796646691133094128506395170210069034822023031857667814022428822368083322560572525260990673140461885510756077052686326590052846535484480722517971458174536080220679304395625260293465146737617069020586336238488774612586710787241997455956265855542124407020807369401913465876149105169371744330273819156611537802095042334492101243819916677963086541032886668610610574708803791708023685978475764088773769453741421901053091977403394324760700655211549344199967186006580393508696123176157483280534345494405926167163776269745665995584947592074474813555927701832280680966345980693441378570079098965201925560349896073960702079077844785237333112818728817638340206579905653928344867944939976868572577780567946874028767151197448882525158556028701339777017447861169725651107236233728115836066981002341014895684979474728845136108116110926440468976039767268326568158974163923330724267870299290431283416866603893393612326548052966746661281660467225985760536868865168555053134109639893499950951377059965455886562324204449716768441059516345506485264197724176993794521162594741834546204013045782647213348390909638376125048211554955158116366731857695170913230771708152949723480787600843607773718092636561317045246135469843207068176207504436608168626658979502928911787306873454627385132761400750468768373541955711874002194219274879069798312797994826761626750808728416392839774071725400869287139630366045729878757149276887098128581069187707886661010178816810935018031720951024510847440568291505650405035265410395950165147825780465241218774510150499825304560697982362599212990692146202578847708992186296213050848923263828783481147325989555633018035165990594923317367411224314603605336662668435613387514129834403666797335571905765478068303467370998509205611159288449698624523952448522652041572846126247152130165218172836454100921550590471324493313278406694955732729855318255675064408349708071322765110282943081427246590718104139597389240124642866921734331447366770098185257621658749559550650625663850062942704092861848253128235338508041606362852021848065959324083413703339308967540589347626684441049875107630806352207215150580462959386864039738542257099662594336305419855892380870794240288438082228599662538557161739328729091284566724770183609264233090236696499237073184016942586742442851608059509032093121331932584861519842770899452941590818379197757166926754562012124262507664402337244080914338140326050937107163869300320683507465177369483099062061561019942745493016649838334279763629097433257477383872419201486024140914161497946110304833937109887804620448366021887519586774138700740750666462283554308377012560216292462154321116168107853251268548961736313116654401750189192419898105459124707642213345911338742869861158821325106713937961362506334892023682712432048410982287127175935747659959345233607453677683871770782709538141506211958132188835986687214633552001807880514113489778201331756315199601967287959612275284641059430438095152789150445995465430684751413506679829835747286837154403586894431470833849882967622024375036832331923633771892247093901134196127036732057523143812727909725265893208220889711853805995041853205312369003237133926378324851945414814154229420167531826041285434085276864907664720002287016039962303940453940281127305977554377857929173395392000197015203080182168363217583974315547978174776367104399751462215918303846174331385014820040874202708222073964608099191731949714385288029069070625742875268805960046950073661021279792176805403716597822638825539075471440766058630330338534770279427391192561083404955659553755186705744415664327372813460544097418867301025148491227167128209169907050664714139097050045073777327733261347898476083823631623417729907038160361499847113707417131712391688804407747127133000641132837539218112152548210777518178622497479517869620725107445743111356761240796011073290184437242403923459421570364640412561879357061863362693665425892429000775920646273882280813251403310012191584242018666312496961951656753519979199430717639308321546115764300524000450484562282492949971878033965192825455831079490795265441416138410370796366214348215135929972073980604036755280629767059098958585039382398522862105906855978466301930273972669440640725481355485228023578808637520156428490740509648484525777021574738958594445288602546911327236230844270836939134207810081420052167980241301946323830799372604361017501245758848041269453851104269589317590790431656916495870882288546973008285503191493089375326193756246149456626903260955961269338187857586894887960008702740855603638777117281101018625438492369348557586327188532141617633735749811058510595085386886020991206459984515619095914376993683496441307376964423622967010694840520964635819500134913040478274731685007744726305585145301303862298952097919126742792232397076870581798911005405779920482281121931626847661867408785380009630728100265702818686903197221963027995033446779488587079610798052554330273510717753717800782742725180940652627459833038434027143370282532543673024893604483533198743032821732651894664332862258248566673747104983931109407613598540081986866058336875694015216542702864374255448851341876474771583609954162830010505398046424289542460365311064326248582041629802891328207284283881294095545847020843969781139214363775567265297490886730824022333341849494591890218757256600276333810647527039300969723395597830395777328982604811146905795428329970169964761595129014407841215187513049121222377835103861736923468314213779947336012923720904262381393847603361499700654896426308356708726814975978434590281634850429767092798073498799725651736776494885171462977647282393595942311879968114809068650854790081673165973739845089698930434219044083702288774228498598169045657642267064455137620334725480730710331486309960530863605389538484898525722260894580900024444126623022929446085081774872653908562903811689637521661695776948884880346303147473914271166042468951778632152346000259421290237269795581756901376688239853786248637532557421658476042691202301644364460057814880120903323245013749748410463346291607011802127349135846972972749115317083171202831604938989280336484174693384230745315919531720009899761085400130793605378845603723990884534773784870135948073833204030114530462798706451234407622758641926057962641973105444853785363922929963789003451818372573134318893297612836668047350060422462152441525364458419982493449327849775040480048379230232133649329571572531179083521627462007338062423897281271159747152519513673820877515989576320199708255198729902809571715818989457024695275038566082195147423022318288340802553334041600633671049915954455857223325327660637022981188842972391578112676137283363573075645503628438105744040027310614512929556356960309729112139575952097615746075931274219581855183526062459960473092957477108875860128831459189666183567241651473393558392604360557140568843509165131796737409402565664131534811832375179425101814512401696994043909072042405475504059927142667297134290023062559698392835666357923359824938031927111832908550990621676864820579955348547325552620272689090301015205834455084082862900133254331339740032110691338812755145212137661946956149560871587825330752982413973304026812161056029821479974987379159434325521777663460984167583367780601550071266217298774165958818510183802815634534046677521692097166861686851507236831923204087010732195921236036336614913117796271469208643133938486284564052602724766764522423983408561835890881756365584756742837474120162899446349419289030041714014887250555284414461818747517070187798223481002419304785901004968267055702972110999328469156366966659027868709887914586116033178910914551886011989413638753242466209463876346782892657927977684176335667985237512247185483515255549516599958375018198525049051613932418895339077504895181673106661136602647390576162662879676702469126065156331381001818236733272678037859877731476326394498406249011710527263460367418065926111160288200424896521292017947753671810060344476821966069158514359151610091771749733518404370426772090685539851565816351122989003058401667083311376845549422252665570335256379217181021431428300685166960974712447572861973376306055875142990736928723096227947133133416989576190700828016878552127811699230756574534427410511056032960970229126436634206284567225255415454290700297897939377363826852666835911433163028045946610220320714860247838163747322747317222086856266380807212529307945037872581508811085652684846570467775879914245865968463073278098411970130676903050620809097060781193935987744004404582451503958719414579946832956337199493713711033718957526169558856367168362344875457739640920308824752623094724340429588232159219333822943800245714632018523459782960531298596991793725351238182084237594096376612070114361936376079321570801722702619833797007879394726259533823375668002748745131717028037438795700472043140838782980729863685305416604084367749358848050286468946131232522775218910001716641725796599471269151047704984324978657848475283734571635518710777383242100334874595565125502353723137577060995776831542981416674989394058568941543893684342859308150429146825713580344542039120878597530352875800718870776954984742626383074015649522885280311116156459520107944982119949871008027697407579908253168722422370398527849408341962591643553223729655659324473677879319469484038403188314100770845327552838869531015995448730995030435313331851561954760458145174313206603608606003721097419510239706992860777368214363111269480347659843584599405287296392815993906622525401391425105446437076768265445215085787644482484634153147446167600282412084578552960412578816214893422508899936207595452315430530406755533959824561290037914830408408774818509556062531004173761220940796737402704752086614694851935184661038019988985243814043386632467385748723519412858672550542349354730292075166232458251453048772118068270783496470496757455936493910276132357571484441999588539727416291809800786805534943245225704370723203508611405038706317501140163224252400539018347037518842065444992717646136602473479858003606034781876836719176930302070367587270064125157518214036035564935707434778107766343569383374836797952392623851802266938748612121668577427678127009792390583231636660125014928308361340610796367857185932890091171147969895863119155723460113258659092242741974327880878345382597398554734039489457256335988642616659212957380120930499745673766813048647534391205043296293405767923683415620862669489920262499710363491853945449147906562210335094857506702741948169878440068184463178277624341990671940394393504728523829350592670898594522088891344675986360089692460936287829321606960058900657493061610831019031184052102310583096243941568316453725892094139344876978602859785333306085350222054111421473005297048856711614511982689203755147053101610311791530132833200628656539848052091136863480933426223754476295391303534493754936915905635991041914176729842587900337388488334062280770132966184753947593925996874019238528556537934781550867529660973841565494796279315258262643981970304045148192386996743280797749274478350552295608718739515310950267386528384791752748615785605917104298846717800448174801670684763971078882642819150896099042578765418638555621154156909145294636754900469044599248614373718020518149945266567731394823874141891500254976604192528265446244638480712202547661914959007865616231328078538960293842996708140283486762489431527627476515619000079546104249488327511846068122514670740407608235863847476359677661921884139324645748424658551459070799354160357423129637088264121698370079329669526542442059064846977337894419256742336649150086597294794918111416310478552514347792550442511422529086604174733767447589031906144647687867409435890217801488740745098837640544316124672871579555025269153295245334999981368045216512492794854914178024203041102180699786212754274054834950166035503119181142885143661662843531714863065105783827921586798635027756869188536642037823979475621441290540894465102735063923064739582194203204218117765143683005877953990940279897594148878810927457166109749495122194076576653559026444611188076316226214655431151904525099680272824488157820613317245541715783528941146478012807427757210756757732459895056650687398604271563136812015882935130661346892713824032620774382823887678793573060524077638279925997707477813263702657283818988396299389462015321470333221778866333945292792496459159728655409261557621594499643812894832222845975471697766130688734356385970977130826749089667737219419650408056628225517517514326119202318362859811910901183036557659028389481283763600375932252924944019886233064491740133809468920513041001220956484436389449852315298938243480849724715603996887108211412068944971015051752663296792943764202326359779587773010286541903236823881487231667244805200228957314556024508707372588365168558082205224159239322772933116471821366683149433997384174039110467076236231661771188093665842190571946163111654687104678927171371345079697532541256331556298478692733436759182823102026296580513279602780938234100945610802128179579934666987907023754007585974014315438090438925069533628458842869280726056507603550070495760827742443413790375954732240445255757899533504181185894478124389264480583130991616972812468388497825444030193095238068417654461632924412718471025294432228783520637508353278071280156755016683966587585094249396751005449212331454319025282437088405397631553988384046860276692940553666445353917092120411465868919498597141262242620305046261000467971840700140352634867157091493432426115969298648240433968522854962169912366092585381515195481433992196634555541306237642518141695978011660349000377708347372102652562823079526521197876749006879003430645900576882748319500983195183232533869390574480097930249756967436411386112075945188439877807465344696868472348193698012508127698333395518908296151734634799750805531296520647231417349748515486318500641281842934946560364572707653408269624581521139356068078527372181311929288065922594595707034254387062193976658223504438339843589725588561102122571238953528028926022847110200434168834227482250291882224902665870746489636332306876006123358064885412883444625466449084793329865358457205633226816461486398819740130096904191392609393448478609898971929810272910348118617207506812097937893686799324008202795795611128433528507498005979217038187592412450935606112622169758233079068889854046527069354756929631482364643814272777580443102878457881842777209313708473179440615533353651249728330731123602173501817032362973525122532011100735066303168191907385162497550466859306614094113873556606312419588925469160106884016703331588343911735834172999653160341119981058057065110823629218275644095925542759877436878831281334578748329767358158549984656293465430575374871235882096155026905638582503810627676252309185367660278271065218303011320452487465418052495932328944025031661482524511236564406945728834125174887472443846046882231191052193890401334195325261432591611827688039900678075407949360261622258940361318866286900968380920846551467282900889659276015263161084599397313991831848220192259514007827355659949735604200736250322516972342594083829761356698061765916687030981461855196866259705596618648461792837221508893707537928291312229859925774275682631601452781724804089415095911952180114473031634426337956533283266194459470822491869012264890585206242916971714785592822261180773421955037480354044670316201383533832634028644167654203374227081577398842784661110014567180176168211129067627725815920308352144721649924130103147421233479832109903435578626445553451646808752442949022298395416422897658452305067425577117271197476238533615216246725488718323311945091511696506178697971188412377384716546093635212455007922859186581807742843788273512538530010111995145913861188649237513293883063600498315367109352419419276623180554097143614948571010229362594580079491658422591493727936221654145020364903347637504690213898401490059332617821298568269211295627260794914120011815535260653556360414669227158815366725695144308293590948637888304609073230168840637221740728809048807111036014442949492133096963167596629552986234709094914027269190399973490324746444693175645911024852806859975883836879136222416815721988277487705427734773553564173718606060313346007872084588249106663849974694106799112758961764986841564685145998157480177103971185019084011621296244945359953797970006320692763860214102958107363229409619674383113005510639898848176936475966495482817075307125336891425928283712485071402708088810898748963383260424028206256559482512042853971612248004525836221034636985286671417063665244148748358724611920341051500879565599509041696325075757690498238029659606619558790448151718085463630731254833290462103039114127140198561519703828401014265411540897121167335513302918739238805061199284302551469183955112193304295730253995344101775558425258153960037856401783195052107978163110615342620214735962198748530454873175008629994799641183494850417921761625160710576908480860933812010619914954698484988843970875791899886133882980429145943781540181819182089414500700056225370528421706571454853709786377473765039813536640733203957084903773840280019448794669157490431316549382560397480702564559415147568115697014308336970857582514318228095150978546611388109883119674409612049356043721237551365472794533942962594797514983580528390503047751175404540087208352513288057028508626479656292595956936135001327564398580456564862620700424004589920974352906643566617082438611693406615520354650117309397261833657221389536971256253665150556799910507750331623905043073001663459461793822436714454203879529874309696506866821922218417935942075658768400679827091872095159763219101633812828566824206110699440317552481108549263660611965356114965842849779093541371541027980086046537065981946476383364100324061784796929553630687437431430690635233240035852813423359642121217878789434339791310977584231889657395577335817046930237747678941637895181837046605655259315484066278092869992231569537469769758491821227216399673247217198590003432673902658760575216661609008854582184742071373409689008336977730992036935312084465384063124246667013519536066029782883645711878950621033605787283568897914143374075993341698160168754380584293145945084518762369611571329973879153413258840240841317395465174999387747153852423147683148549784662371049839459069194382459166996457907719233979975823236332540417960132427463814984425863600964826558894183891383044339809552513790840183317208514628164500374770133084297742728921239139756927624028415861494859841880493606623981652657147408323311091185461596552114124423867899261154076065589632858346911337861248995649739352818195325663370673209851576649577614462384799696547848155352212763219270523923672066457097228077710473006432269845578383799826226755923314548243364976363103903295373841694993674029304568897651893345781794883045405908390166097146351224205207071387074376583160881485208604622136590822082126207781457586780029933727423296097468740346770196031788964434198304449622116546846188607852371803987054137322187422617738024988956711861973981054340543966823316163537210047444443078574677784388188162798756759405322188512437528218894270987608578859991819764464084442143494004106461698224045624209676071652408262977964027879685701118036975415050354037893139351781468485432055938191443757343046245124501072118132915295720254077116479856222397958412925538764514230294995624203180150219151397318734022965891288164335487758623853285347771257822379549140757680374849320432442494835671165331360816772237897142118663101996530232630955537266634162311981364932694815088726109145307360463590279357119592488224582886608925076076717517974567849737111482406829287967021855617793112459214727088505160168405370988524897179566421612507848047948550462458951610873461557029113911306029320858790167971926489510080304936235567082652543597227335479868167061572373485418546598911354510437745059962535498451974818094776357851173019816449280404853542824544544099880285743348940387446990806908690336487089933365171683550649373676697623674021344502587433360886887212043597129698410136305940322264051790835634735655868984771861216806198816576672623606710489889551969766225105974606505384131037175629135084551516419832857702975489411259668274570525000134207738902201592003985803458755100166275224550666151342081636139564162347495852941676929933428899718711063708132526626240639829301816016452637142443059717567360352815225346217758888516890235129215598474458507790833469514730660991946611750596410775088253739510947668975712631337712906647859112083007594134529458115092644066640378186330709910674960672404831610474272379743233822676130791055645694418807742273579459575375069780811778834005403169971773857777112487070798368791327319551149608164676127274440191437197640048835286655025732268670853749689433805752609737875199434140728514783081304875461808803989188994202733283486185994896218235205542891389915247779960570346179702574112943100320289313680820293927067939780803310580497892727949311353368396514603625653942455598878071558706482454150553993617624662618929692023656748651708892766349780155549356754806531204492428535651876609667069126763626661325767437219125367594170329001147468130648378250519468093738477027220459325472313227488209720924987441501409348755146745893504273369790202162208466469877768664567391178160463278801189734922971716072865484041108007014960098502335914256644134356910286751566958771673512353077915081710799218479349684042952617731116601333616198109144993446223218560797477071832323333592374147340513937069581504347400580364580322777404448611866230585328220434394596496503786563661363008434075152949070930722360163540350966842136575972825809004612244654489375392967859122588876769559488609761615399324023946917259127588897968337114295181489636634433769768662510958760255912502688774835427962883198376276769703837633650147946334617193347912275272540603060563397697346769825058017962014880815425968674782701524562897460251433156179635568806881386299218092928113165882037728667939620063359372583882128471622020506452469013358285729111162780469393047275875121655355684849626602068758110497163099164316748799160298495679673028767390331832222405996065520055372036763864202607321158345142534361443075068081756460068009439569436231410007990572531274112412531870090723773330455930143126647561626182490893492373823899909808189828464186378403085995885626585848824821193473783393270703793733900438855681463263510206471213939814603459990071780044442081042813703727222996484905001672504809485540345605377558510878225123708230646471441217174400483911732821399932847321959110873656608782697524850763451088100678879914072058730123219397557809200330385825044429389803378024007570897766593249071182636507549681072432664022198240277554945182891485278410761140630136656892338589834820942860341432785465713575831192317353013011385943398350517260330698679769586234978675399566910096575427056159310664588773736815097155456015324773796809785570265035468051918631768005643598895050041241665617129266568318372742802544264306748406126768644510461818383915314864223102229981342299070700126814421581615390898434707055998502906759752522508397327612154447718741635662033912028063892221294416847535041710251213388928145489191561882474995548490375652881209156757797282435405567331218723984780485432185923281885413802399383161438270769686375189582215885559788877748870021839668469061518820705855273517032671298061259548427150973887402527015985838519370438093192250662036177772075860849742229067895116805665187928477776095928144749291060155461184408240229334523183221079037731451783083496576054502990234941587984535123077907700065905232600049895368761607638825391830990130973906602947066612166435392153089895980981297379206186534478057069694419748143344745777040738170243146008058758574644883561036133383021524583394924970578084707683721842503956414016036953602653501889823231449426979619384214317229006376706475297758199026258808683615933152503044681951887494671517190534805496366295652300308956516693315125572897660461446036807177590525473116819770843280795244501627461599550957480975163040843920643533974269943840068994453208636554538937232322015438231882268743467769874856578631380650933478400968495454752258429686837446752511638054840212504191579235272565685789700821871051796788872483959759156079929505857989224112388813238243714921447437473961763006135916103687922561770812423644956072673844555684315873185943688291966899656292702383363915417573387667571906136163306661801603427403031519939785531795193637089207018123721674031922211623100786557136705909894849010533709888202514388133277518496924321123289217342947742463807225473459476550887898180362007126634778589876768194210375196602227431624633360440803019686907005754083825381139600502405302932716329681672085070877946593805850232095939222566211586807827082700646352442735529513336385152914105897886398185409710298846307561701674054284347330508671752407680132339274048758722981914561117254556193352771149555968953893155443411465833051948463832760018265818891828069933754995664914974683784889065031530892938773025638702468511952667269126450208020505486621931390564413188355975936595342775238601632779486556291798140812789124147208884466907902046049824564152725068653847855131896676018987399343127199629162909666983540863308386195913503198020464645210222381831858732070339484631445176274451760887973189760377846251664926271579004196035626100802260469462561489442112838884585129573047468223023090293334801121092222792428435926069723837932368890715649953253250293088970817877023475904886794592014853103523924670908500366088576787105903144614740972267457495083839347477321686988363486887081158669485958840074664711316461390001052526879599411889898446903625027916832002435152026170444149296767063826144094428855007456083785080454942478660951521028821308977429099493212246157762120892972332243159779206634750395667468299341140543723414065071162181330388904735593708742625050405906698138737152863089875927749345915663423967823457376837073458667747872420885874518626902289289133043602668025423834867382341942452528352105917042333752264910476231395400485363234279363262560076553484449827694445878384166014293328552397562265134580601831810485418151863463856281350066269597138183014217030394886005557958580344411507923586982273453473485041988828585841498060954852383249644569659057853318105334729665305748900819054461230093991984330561941790951287140781429996117998015764477449618900884888917405811195237392761270112816650570724220558473934962008076959033711995577552967962062042330528274495556591995353556347273160812550003947966069093937762240790948057252894512322296493432223874418490249481572949013080257088632413348948070108623946204110874286071649187410457180239649964999085654549825713205192442949797992133692413496680595048913691830605148865590666389646434768186563046911878531610449707875823937820317713021457644223475485949925056474802921066196661377203109099736002929514229121779997169546683186661721683082850984608596964239087034593109137639421595968490604424600660578583990905845860911757001282348801476070184756405560626718907535385395450863452826532602581087558272992610912989143095415968600956570827596636770632399703283020523154480757954973076842309948218287589677283529303205388304427131003189588120639544099205255654877338897612355442184818280703926738995795059824795804994075133415639650234861817148044931938398801767590869187988231761907723294889166529459488837779523217574650615860990514699003168936573825609323194474542457207506096217402368420246514270131044774297993459340422942920156583047775914089516117247928018482333024653246877153643583577458351415271223431782586806327424911289846087977815095249454275614085136193332477608399650902764352816078770182286879207080244840422625975396319820549027577251457412967595922254583223357906415121762472119114941544305042983019780282289231869099178590206890788218985129412353228705006282979776479240092163749483193150687119805047100073875764073723904974657522114039248661642227449102992756194308881079096282301606685448588830132352518432106042339060121827160845933903677619402298520911861125679016018331269925666286081093128973224055184133758653490130217533658852600915796752255905065172154013800226522573980568441236214388206175752649552593404611947493109606085887856321549772513896636983494552543761422868579739413559677893208484153057737185633302883185622483910498053078041209643542976965622477083105835823845726665544073733368707676286924060003082464864306517818932054035573291400172249326596767886824600389207454835246698128932249452514895905321035384534311843384687477020345474080967947863471146822189627442577166998839788226616289034624099934444160000089535554044876998982550479891917472973927969436119928697576560847402757206988808896319072335158606263944234162414948912883848783260319862636498533554696506775350359858793308612509736972289172150964508065928337967571815656773675187430514942135925550092148572808237740599229854185455270153371330423761808320245451217442499528304147199663415408099027065419826534129301707676515746588505765739608991761800257184092158969481080088428973339777090526071655417561310399963613952322815600983255120551393071732302706600190130031858201129262155397822286402019515156144493503639648731329960417463926463434211998287436386813917602078742505823879604774507085988271536328878969658674877495397546667791627741815036999137399785202615717657384810324821020245966351356586871122104800955733469942711072986923643275737891791466432143816956759338846517994471503936144401957698487220382486971863234502670301802343608670121737701730952971282573826261441007352787930173294260579713035147671291343133056137989728609278256164400109779309983466793789471448049621899253987313875537253926756809995621381169837483028638385723529397936763782048969710690026984838892013774016453583156690508809274187092486632501218591939234126427657716577107201580310664353340756702424604716390670885096003273971225855033716796344392510871109955949292388097566738092903610516626640324566775257750967425103424485303459541519432652066057487170101831112131456815956640105917490013997992303656577951070047034024332502365998747392105565461155556170033306108747217439871072857646530783149695535016692454134106047824121196735592848430541516846273639950471780513032469777058827745508314939467738107111421219313570777666218614368844010862797013604836814644898128364137292946842310275738347500880264002524236648335052983968529342275852168707174819236321046563030945853459788097049513991288282532906471420909599131777875983168173988437397427790169678260249896833466043522390727399856307670221787419881902974990343937637885271898330843125144297704852707354489641113851677325848216850897813361041570498326458671224554937177051817279664843961758486594342594034169176705767606045141431585624118345432151754100828647595121158831700233766420414403123777027068915264465203319349082573289775330222729191892565310284610132408619907192531493843517535704383460778332623001582917710777649130630748202310322937404164170195114315294236425874949828572193787167676802644955979451941273063312646141472586607321381144831205041789344511118439492515087321185080671892940052501795957943256199939416926248735336635881720506377454892006126728698899977042987768938526687333092671554531967343282165099680718180177137992699692439843371099783401945245863047879982860184519693260404220784608378521463862240572399044445825326342983809569506778729519420591632937052468196752942707939864171835598367723040171122056929542169272608139026956707630881834586102737663285578081162628808783417346317320355080565753835071538268717119867071180589872643526703283825818461081471013953769933850716904581318265657154157842142482314652427043884917770162093491207823824862349488211368729693018818256487838065906901057579469891564632945419409525731637667213104443516298178531602602031133318427185822877353780440965797537187481938408604412145691510469384965646604498037530950480417186233685880487847064695976254730199228266405986423644946469940849497432889921614197632063380435996368919020573522768696606697497550561961399047922741705575834990702724307165217899373346074954732074099512700817179802373672792796310563870036463991753462025905100329279918632073678867217695528399379414703257437477876530177105581676243523527173148583678359140308695710604943974620723826043159460119097140779153044925830480119720721947264737047996129130941193605123972765560661581407987933365404625757653237210887128578766890572414526049772857569429408367251473568688383718406259079069783033436389100473218876241471941155510359832778607387061093115008851813682414797095639767697287959022352089924838395981936055510818572630094985626194653071037816178591875508299349054194725124026288720539633897168135100739050991036113380502687091594710480398810351354201614000342251197609944246410395587076446174320821909895557231956514211831783996162759681345032120115953963779120705818947996088347754187888576115130685128512725225850448173087268643791879584106730871615125647878153499979835132218754828853115260079436315150175008124158523527391717723879139110323205684517424047963509564400173624568889781320068476617183906853089329447806544253704494563219833642089169541089029714721480703286985016846014308077843537798397547566203192254193252115467578591116410192974759025442791224028205609720649796185358766998922262549629492648361014223262328756609201960332614469484481712084007672000173672781596521423366899229626722179768552260627669259201764735161597688147711695707851607865483036612973237593662962022842748525720190339456199640841534403366132635983088421901683065423881789218695103840098489267330690418101972707110801080764163162385105927008536448679536357599097904433874990016867444332903744228304366531593730689370319665629308349853892703622319044223857367141735768025635014726647313588415552009081578270102181542928445091411503081683530987974519994126300043923231376175423357190996923305273001233655964511820960822373140453946386863527891038684847428167016257245166582966842851372351021431038977280947466382614313827702279542309004562615224094249888727383774249489837294670976265664172315739391782494016272430027947422615690411788759668472735969045689232222896362403860587208050826538912568229199197195602786624968999666997420449842501201122502796921613793799088685817950500388046064009028744557897681851665631736412038875643471878084683799912596143658442091744595433900671728980379087043361489144781785145529779501714997643994499278120294959344817629662123930286306644064403612216473380858733954127432102351573049842688037296758962379599636203219967643566582704659979812153579480900876759560129546617858541166538266078511897668340428909082942161156911171870343496718867805316084920581401364427037691640874851681292961065080092071769305609490445552527156078543507467460988171759902923338735585494570198817758456562986168308576434527303417710769137223095734617582727530760071823274702219932549112816418177558593501410013683510745139445704555789991051626338363265285833485799615487979088384739928823490360858074908694973596764241845960334365125264622272669366110268351108376015692263792848505678626120241034303920093896487991401692505489903938263485995989293296685427762997566960041806456275349505192040621576123027225899446701489724634922302947303039741419726649533165068159659763365851354180556256351727031553418954130828355764031585627827137329932824347210597803049453650299801988040175308784562793755411456557358558362011692777830948100488723032859699913761357072949622847060947458997938274165510348255017001675434719186275082519663885830355791192525110353945890204058598819799565519986955537819183218154843138375254834437693474955838385421083175263683364332176424338146455320029918031946310635774667787921355507563407762333299537109665999960418882239110894646340121062413982357710213853743045924305195056841191073166992020583861238460370688558719239044706447214150023064730082643193906442920300464269074694251120766994210222339006344063753455882177219726383645432707385837513073661479012244591802885384174783614730674164540598810617994588984173084911095871366812280854471371963666755709017982344230676386639070953248482577430734311211731712544678436301882354394399597281927080331704128454704542442129240839268059193813246943807218024706939996507554239124519131877404358090658754154190988776663048523004114594739750710321204992972110196579931531902271299133290546775447006501796821328760501140392458916417891803744147450167053025618957190859960818100067219615042623720288091917788893478417965142626645731321011818740329828327178009445237938369601438726058415023967269825756886552639852695788122932832051759487292779374520710650380183567061550380217826297136458376385281941443483263019291978951364700666432361879160434616087632351867796489454196246720599300666886212902777592521018237066006990480986830145741164990881380431257830723146712959806331717026999400533138790124021059285773624982617561324238222731354219532295478030273500191573364396214884668103450810714352420722589848162310828555301084875537571481275678090415764520267178795274312589029627262219045472602753804161177903245273248928850128806448932691816546827551771783953156691027237556478738451906536504951914512219733466397893476059985388774179083401228729514703212002701117419888961101264215647149882356615082155530106683838103149465571797212694209277025659629438286479785453544338697130383593996280505070627077548710152956444717546718466131823115950686295703906165071129847825041392626230188736291751900440280663869124324111500266648648290452341054404317186523935979062652189641844410784163242885879716545766750425529911529679619517525299449643616921134776875348813805696001454368937251093083672627345970023055875914690690498180106313045030483582558095070126464558734615132462881273153341224813007264257375150824991572249179586195002597476630771023977322329775002529927259146163619426847785160793054544182204533816288969442254364202152681355704189900309825588073862191782086070639380866042031518975952651923946718808297121742792834728406095802063573377361243202261619942090338327188589920319559763104335709980663771294929426952214651720165790056749289330455806767301832632303314161634224305438303748580630760416380822939356443194984553992988874350572737045242678491594719513155008818916726977605024954798059392888885676741029263040387317151454479196770226584317119467650077827560637921963509052872681141504035141651683167065632221077555723375350425686820048519824095206289273331934968968178825200598926431707666983926175073949227501722726113336336601528278483049828300166933502225735126366972397674386367981649556817260541688844030000808653224652450714910224524562461633559082436670015198145929843491957311841816276230256715649794572635818096677604242240420746787666365868712389698983961958985055568311889865725093001201049257649163882992759565297850998096176828146921665794433555415778243890766224373301872835178466877822312552491474565470314670355459966411092026747985052106192897797979897666718668140342526980356161552317338550997660077367991237388642861546248643679066609771951598092818970466072328473413421507302079657207231602781358889487380029715312347038798503293246810273972472950370649288015399024522467905815124855523399161969944817690397764213609358853085171320961233129936512575261039896276669671827068617074699488831622853120501030718777147350989932917100897035575493474181720094999245815973841464735415219748427092199175976857511521726998996901369966688085677534353168943268548238812285073624194741806110391527977487476870074491553073087185597151370726339517678730905021659003687323685322128203170325111104520951075057033908496608264070654959754444491731994807676133026517764568193208166293571259948042162254708551069550581861304247815168249870047601156027593282601695460158975326652385577121117747047742550888145113244102989973196789910402778866480988762967151084770518603803532985937674302984940514713503937741931694261753158925216650019364316987907498282044915637767467432837772096026043630365777116133368952174632682797862601016715290288993731917567808968697942784369792978988711173282904468354176224900237796934391531187553976593104132832435418018365513278567768418524794191410559674702316660252104734310940019344819446863106679117351379156692187303131017464755719057599497044223541841368753161969933841673961989604404717020361939757780378226958693203111585224491808394052522152735240487413404500835933903154467699304855997499330245218183539900464539052701728588365622939046253104280758185008770031833422051425128839147790958492692689159503468775526118091738588878042075227008231879025831779585654471968816426469349716806808865934952128016026110673421788765702087145346704066656176937227778800420895391860463417780103083374672073469962701374468241479718503940665280335411888465090525275998435630381947993711792423980788743162598584069053039069459362944075443788556164911911783080308784976936457468646857004500267747562161528893907085919777655242579090704698536774855214079551828683551906274389337770777028808712921022926244220527764607407523442777552777901229491850299963606538094544821697752240356122635049877007866865423167259265609149205452854445435749832400081901366548069927930037990109618568747191750519077725172020314682928541130290470775336119665215971139382278023985618448245666531375188915669243750189726866655481598464424666920430316237407638016278034126307453938736566195668311356794945627339146754689424755459606915395402353646788488810341909031443898721740626559816080000852443847376094783445191167691155778879957706681690564450525012145733739201044045420558271903171656614274126577887746744305923786116597849195104869516996873744916187313324862047275175170071473489492691625088847936325016487318290184365877594833243880521443390944658531796678683115138925707593143242843010942521272708060757138115197286478178031024963267069025595940321957456185691232859669720266977416357897234976233043457152084011647431843331809233856051956721848451548841281366921609522236840009946059391059655119347342930143803873387944301090172730266144225811085120324315778925380318386211963799601114822377185310068321255409308421093785400860058801598112029928779070698107547939345103953637986123739563686466726081410370848409229878545761444041094344216920482718951883815337742492287963008436586335377999289639115963228116929673224397365438144308315503188833880582265974012714464898529011196375724082041370619518393185065229259106537948639776677901676160868733412839101562673084357045230085704600953648781510543289437545707842952471021337813699420280961214194007543462156614517597591849144685366085675458234243026989225979093533928848623986433468843493669750244275822627661203083977544773950178458800833739751177636177433348218270250906649767139765660631187627043778362040084004195276012783761903375718648095784830618018494902652304461914620466385084765848288585462041582362470447552909729251437862468478816429707211621660469955240166667342084100760386296171735446734383404250901318266965245368913734164862390403523284300864349143898799141688160272340012309227252517645945812371970873392057544748304908978407796955458370178834614794640670820019774685956738201832856043425257347625270145175839422502366122353739417569920494350465207236127661244721475319121820701357255258921096989745526720259641947165994017936967514477393562651091932941971034450560825311070208785445139217924671435924700749592827073070561760562920764071988155700297024278284839895977169803732272651219423949007722067232415335607525300542066054131280944475965512225721879813569232170834701706310614106846598761811309951008661738960477965711072201243252082280673565014615355339401648890641916541197903474023398347346697271968925283450284331886583310571734024999061289290992084325173611878149338038967045904937417055088885107251425226635729971125610874962108693948393887263312453267328929147486911057783016728387845824912290920376993205110030856475120923171957995873175670528484529975476457513664798040350305679657272419021629783793929580907065879099515156606853045903847366246664539180522383711694271104554298076864745513398626987776560317871729879042125630454580747596625096940340983596090776612270186322879703815971289038890893697344501035055632817946300119197962361950419442532890805110360899123442368432835491589984840686224668617572822692102180380111504144654450490694928118130160479907602106486192783158229042146675129595924546124032961863571303114570834510310856727298684825001116673183355499420930328900875540899709304811139961092646422524166015911203321149883606594375151799983557645594570761929962334407225525624626489863598574567989510211366196566492227281114369027802886128808996436267548370771689719977565106908678624643619829076259365318880696757264099966597644395666068804809198678341001770175295169185022617196793919233935413908293820685528222824164303786917771951613680300001480259156276788146213275163906692981820844391209119304127878104594057094420659594160447635519923000416176499099942440549953895027568566328628145858793817119924983010636485502748955455868036849849408300609290435978196498423380268369610111140585022318606935028468479565944827989849586501014720273967057038851549580553959045745218047274669171657576561811287267722067547778271808930809678413994930002113404397112426207167105238129299619038294194785888157007310316927376528109352087429992792821043447486075714754035644375426608430269165580273128122130623512319970790785809510104622847605868616899602196977059202980541790065288611378962338311557266150214622595720172815235381459933660078198024794261088702399332529084283444496889875491874490040168801339245841739586015539326367105229113066325366968842697030622148813034530713172046883708254169929319353658815698772312391725982626813702861225371670799846581833020809000236295696606883171848284993546586199375497444162967613812458832899273328661098257019919626213152579138805748868205884943833287654311624470921455824784133495936541730425193726603977983262141496472109041849078250184996432028547495309665559399781017388144218967258242164542217986679701224700323254475914262522199163264461733317518255797121168245784978769099804146241330645721315237590623367974961330102826405739316699441380377142070912193816405039719623227879604727212844931378538940865943498552755061395816956269711945714509759642387161575945596426604133343100446659281710021559484502016243368049050633998830452920310164147546682167267019274761650020937218593812934154280645382597880089134160594474861324741095984638803851116270848701079777778557768019050849151440101727954330255744763027674452161776323887106270379898822448897754440179492512299851237896960051384492526143769424387872237615427012157624310132228062871599834096669631881602476061071684150380419883722459638882518011782242712082560430352165262662391791365794736429043756825124547498522645368859092169950986602742045138661119962881934920533306392443582278396430384117843725466886228645339435264987080505455358350999479041732540263175122784854810036539691967255333121528199228688807030029658086357081006653182987353294137880565142334724548458975295614383719375705566563315801986696232323856019243968132329108182872929513483143214828243108761735652789249341618492839287400088440977790279990485697694794128180087985478144627095401121040024749466829545553893695554768878819401069905224113119751066081674183632495714796017899007981516568861417168023265392978438253594066853824171835171863365294642040229681642343066556191994214412850466714974525914546649738392064391983625768523035854911827568041514492329104379765370237281388996618906896342229482094625578518917564341159358333306031623940705182066765020283260975961704139866362616818227034319098218721866695385022691717475011805994972156934705726305185891061742013010922148327325650605453857688051233528164071762515816820947045616355641459999168570381628127830856766204065793283324826694840563614345711676248035851644696850721332953676861425856372576326082223571501245043099527867644441816200968329242968490604472846074852941500118388604987242055246338418477825343479008033971322136439515076016533680648013865775164488080321644978548211708208567551080619617153649057995383058041235942674006618843629690838806677237886549701785144008211402830493255596494903332411809338877174538071958089169826086924736106833142448127737450131970613205991679818283582448845161627543366150547042877821916599920207684356461889167904958186820518818117232012769303927074563899929038579736347823142176972411672103381029662799418662616836871445241450029042036392351036159203118238802004834051040874839535616596080945130782763183172077014319078154213060568538468381412188330555829395440470059095874917651938909003994951283157610017612524843399077832842389324288144269237005490000220757196418658432168965224829252342288566255943222738653268917247653532654092567335401677344134192093478445579504434664346914948450914545835360077634245071555474345641121337954350662102387368897674930204197579982495693410703471207185728791907814727818582725160861063018712966908703106064959981574127771893796720890003073052538360988173115908400661659022774253884391503251254316220889688552588744950978283781026190444331324149237183397997030859277090034195287528418969545223645073419970344164279725140594051017597717020748601057440549368140485879274954786940307916939431734631112426510892906881881203501328169504435563615218542233118651517530515577892091545984747935836777053629827164194975500867670069868353766149848181822251785835843256328480532315849125031740288189796609264441387812773508854424135069360457845651351680353699650509988416941934505233539452743934750486510284107152989474469556788515275005067230685023231040582249751262386252535733589616814672596367086083564343467712692814021885201309328001594633271700399752344632315275187018337009286341229998099468314631386307026314027131813296283135264271403497081099778042291301339648954907762669372817838916487542820190295001006681070653173365919920009722208336700404459102009384385445294283964016342749199242685746041959611922301062894118870947488888336623074723534544412491269924396454862639173145295078600580164255682777755834503299913400329365947451479196963761879711522064467884458602235835334596048888800228756626876926182834588802739440699690230891745403707635504152375723172171266837522440137066637148962041058261246612426016413864952754771026145281155051806989588307428031344450041649217798857987273149051417758785707978829618823322839757263005573728611366884632834505168222356782312788468963261523867599628171507685757695194929728817009980860166102730282972268223681732931685100814608427658909936567876852132483691251161934435206359243657762702174806373032225786719332637815638662175348273131734843123800127298010955384439448803996980785323483635855139607126406190986132669303827860356761182868323522541239969576836911346520265293488907353708590657263722093358484836031411410778258609422177862570411879666063113088784607255209637591712864008714070347437726138654729158260342852434372545125069189626466899062195705658512950325225874129084952932502839172113840339156414758455726830011512613397159989348012271210326750137463422052299494300942043520955653987766626497552502128111259514372114772772273079621791203826401837382721942687970070851070134812728290558024660175813140419921753204459554412389628413936729567874548599347665019597295716847927081581808410501043760860676376147044415531172815294085425951677351962402047368443253704253732538628103386183947226158850583362460898861196016370920893934370185064219821804764477554315964568225721158618900297860008476847545300320407639026494101112903953071524389357597724388686084280448774637358217261507535119501180640212841081518365417512267459914189021799276247519053052354573792999981292458435434460901872526955823226654640609235144011187147186219051222543400536385771019603428115242335395860774844770147371287414202052116985425243816609665734185187346572416691218495229437371763161747342968574554378346036737815622820151669309236020457504988229438453442661649528165368243066854108062396488896145761680825602133083319885459089690075881012127848755546923498525206165474612547310748142785550256652097075490677241744934965021043343232149037472935817989753031023395481167450706098107040154911392667307239333824494129769610202837697636124150748227251463493753425383831158333271970164483259426516470398233408110093039895485431150701253165843714186436959632374448885363607993477183769410918129413766841535368901758550055434787809540359509517081136517907290291393667005996130330264328901475726849102363601784247325295137697735273738645312096783729904527636919436970017828273583672764549590860322539807642453861370350736042153375747098008445927397276535599382186002410631953439646044230403732700169891842995247422568364615064252024624514822530647134008678514237439226280612398268822775054761940049289707668601276644150543123374555409957056927279711946189095335022401038450045846988193105507623683479952359853006011333486134378845018530760980359324786737153196328447140809577929916580941650350080622366790309191150119649968294362768211443725862218324537920662485700096885689368157891606625369379510528423706760285491794837266799070812726806674151329754341103180148517513892845679551095545467511710750671084421288522665186827122583887236219334777568547655985550154045016155875854675356783185232533993641856463543857640450336212078358069916282649634790383478756002588440353572338319600248486985135386221380599030625820661637389721774137316816939947168200621879105443611942944724763497596386059003849566749741196227212895392440103674306058214575307992148272486675520383328900715144150001236237678600305705801461668847872366417638672341316740569566972577508786559511418426257106777860361635480038594741462930573126165495576729541072492883862896880424731906809509764101325237718400828473848518459500544821117543341257897903421686586072892105636826077297189552621136945213977927855708131717752696764360139895463381728540080446754145096788097456861385702520289363320023154621166953726278712832002697430714040635862132375839222358075027897130944962900157884953388744339871087051376952860742182946419299023255574766296994104019316651981364469871460060689759424184642531591005595044314246644439456248672868062891000465291749327028799353020637137476065791454754040916046713063743005012852117669629062347269604506544724287844250059174567708734248956025976880797194867833975493250108710362879512731725680571536173666459185421484308726681263018896287383023321385140832501510145377452048352027075029925603237942885431914654237478441820291270874981500838144679850181894993838681368021412078212495497092630291637861672897237752712999739433206139667398068951282231122923699209253097153543481706627106103907751211992383764604375599321070415090340172417781482411706419296074405985640054954139573994230455233760174144362273850367700376580733326738642295604186787179504148747900613045136913882754985749357892355054064017104873532384079224639739092133291358363648963155568287494254934160136379479441789460617919381723847280095758866552056806137767648596547436181212965823956276433332914632296137039854197293498567447960041651362930163139273628559934145047076185241627819782472605601847446026281572606793720928790489681457922118328905451062237192454743478203699830420947188658543128145243285417622376795720601320566271090838948947779889666361582055359787144635119982286755096170919540236247663826507521617954641727005305601118348771178102480639967133121851255010840629509633967439314592886567040098740160512691184507680578126280196061055681557562844474484395322006558387613928440540907377532214388802755335239741402774712034286297587722113431061673305131961540306429379227489085512803552012774707109012846545338786216676977077727922119953448834837665592042846128737762881875771032389958434469903805161932106119089727270301005092865521689660246593734238452515844558069893034043920177511283493093152992133911813571784311104385673732415052880326601159636824266474755155180387030041604327428174892104874292145049134535462843991499890000912181632696887787959944081401362865406216948187851409584276424148352065226553328404313455117533231392012420412794559658262885251749083645740829644130565362799770079171447242503644449680772712176932423092242238033832128902735560982939006015583629330909231733591975204397647568281502076938322921604605315586913191114422503921273363445842747010352179439044087806854005305170853256233573859038783722695072302814722063405264841316725686672000184963644049352718070572769585944304504248201939887826638336942614890327049532205167222448751036776637454139306682608847478121997024838814525000459812987435929539152556443199123619212731928296289255947661251078438571317979705585727557397950032510339004204921727957699898367078154829375773596708030639281829883415290619094920286078122491846494322584776562951777968249487994177342364820770333905431090477831236332636642256666682197680963393133718156489671847608493933621149339630516872924382252144708664082619983825811372113578941321393317525697572291539709955472680435568521358609448519254270722340604563435355762168025574753800249430451456168313630725030595974002431973669666170352687226701333842989669580942452434872771188028235347136150240400031732575573623011208367068567119839505894955689838159575305828314489419326704175397520187750002336937946418607476372880749345309770746418043869545224254050146949036711812820699048295943447128726044957991425775964840864843775316683897529304757511670382955764565419157421912443972477361918779708030701517983669967291088683949916103055004628309989508493307747165460163700213448599145522861022424772381066135977443054985116201916712547878450298455645297201339087553949021715533347440548424680467353067853625202027643593159194844041620158873604669247039912362299979890798757856970095136404367080456019538429035840454667554918520531535260104979193286152128344977647695733340071826555617287651582796849153840364494229138280404079276866732470696696606174507793363330322523178808988908642885337469877234038570155587216423032683969750448254224184897165540154660926371646874552497823549675716881915834467674012189228498866736862063946642663491486843969326155231114610408946979408631279086924874708267719619696319152860347442470284475079743623177172844815565687203175555169352079543206494767216574183893563589879314384074081379008339745588316375075024646556374131219015931286510548587368685114957906454596852274680887611248444869793550284212741507016831960937528775188273299386339141534130011297822794738547205189554041715315233817065059022361324586534782540459309798377484683514152200060678840434789727911165720259195849253826461939871762267961524527241673189759230916723338250396951898140299798930957966553508272016905457435967721520195584492126198608238683474704065920349436323475663040284085785780121423041577868857414407986140891326175456691567679996182351901346182296404375918464130493458776482767311535055541208745439589280820965085519398610152311314306700454890329531547185278924281231291250773689389929825158195751524747118170596830138278620925404747403779291641762575454636632149085653831602634920308340328791452151974952352089950595792194123507997311672344020079557537157683208100587334833356206066970429443353331651931606680624982470827466776438960333171990949906039838380933171743763931275464335577093501027100115262515210808116093453635972644934718015271777989414941339451571110407516490178436437951716187937053317409688454984435878367886660530476267617677174952810007339145968377272886605792262410273079139044139664084416735931050701409469738823767611712784356085902062302474524987318475205490235520255055107944310256905028190635719717780721281787244333820266349734924235393405387555029643400754215922494560964860055630791719438501357494843818595607081154444850731335200573603255824933369005569298089747411550195384937680956608763115638880385346485239724895303965369256993537397862847864901644606182991878211499169057871033139376702137522973226051520244337522921858229317765579270849626344334577220247779537415110618141328014530188742509015946158361717917439997403435808401875320241912495238540078407234867412072798666779090641688056030119785860289877509317460634313736918199855895948096899286451999984543875891703203819136150853892916220204293936472970192694673472442888476815781482080015442977248520333563318716710750508379154393584480324409271599972748925136342514991385556462418412734545719346139469557300046543342631378189932592409262601532287706271235589482496193108698129186243599312651138057763168112221485486109143272764370680881885003725779036128688662897740680718264147606141035701006315920865224602206733047925218609758992550280888008291562011379874336076273007904892623616059536500943754379519092699271792875107426335603712544474787053404795973656992967672402024023860971076925137846632303988532348557152376267330903632007875913095577563379134018885947343199246746001965908116601450145913312722076610343737880504573628511942181737306002090597727458754369428800074613478061846559578355084506190012045891128857800079200056016368480535870421846791802915925275140105301039569417543271952673751197539097185095330935592382176830718862263661961267272174656561191630519519577742774299996388121317303498640690207771238416978978689319501429521414246591883289651643504771666075418236381723150612970900438542380298755516301299359189285970688802701134081037273061352913892083330628837485875728458966969865063605489783274471553364393500936126569989310483634686088395072357257066567983364151053266967684626501772093875562742315919774838250166837349667034664167685300355323147533922665321236235270564684627233003483225172391342530252002027179952365926964376522013339230153518497371915325120874663160798385332280341223599940857567152476811722769998401218239921710925546500157991618574597766787389314948709325338548209607570493674633732838148661112133373150940012935918436387640723106362731203669223931502213609926363157773784889455650725690511413756957170656652339053903347494820792441676992776646728891175926072211370724435824526381009782206717050703316351802029740224450419236597496431407698750566464889992857005921847060947225330768479292929826468498648709864322163474697208817184155037158925012286819971827263993382323615234558052720663493503746912100956591566991470755664217062235354016980355758267895758281210153558827406162957956922392917909730555218550522817754919075991081106614022236759671298006654484948087366545860809654059591398594669735428637225063511774731431758274661078573417447732847719202065813947190431675418523208638070740456116548200431199205337878987714776940834727055623123658506296997176966753087678104235507698431105241772682987755349190610666975685881136903047811298874865452705887613413613311423386975941425522414580091475061442576887038737850585573367071261033107518825224768093542291097320256506676496927427490945571466865245807116433588406180625450429934118229712841143646086234932736480402398787451585522735990807746899446203525532671882544663174578598711317575983668697530152524718000158779433509011310967235479159956647610129916447487697649944952719925404462119669578259601715868222133014896265522188857112495681129245063650450493372381895371564446180823017728495219153510571898039524204411971819427076787850781281340773554026005662322409432195973433014084393714421720797095838288657425089752219030835339233361928893732754330211377639833212925303978199807591876415573440363878020669903068162336351567965929989257140205175513387728785087132327429496092804065186099479522680220482743588882233868162404551330533404542458443880845665258404768330640230183219011098746839666081059762187239338664509767698693148655733779987540840380634333115786511285071905609258132078699039220109528488992423074345426197955627228801132366825471696345068255930944959345622801603192481598723258449336412026322846480048844428327806888393056557553201081058434605348283459388526571605300242877339778550177765357163973347410631125716100101504850288555523988906303684666916455729894919917428520202290731215109035988392794490371800505732164119614501326040734606537022581245523844559438679730961364799350927683514128392898309505311881524125250462227746266010941501046309394493626571334279464073929865589389186924264458839181332195400370211571648880602087155911286571691429156508522808488388828836446306775325951241076505221467311050407415318625080158254604204852240720066297548029953854255606309428432706196906326576883418556565681962272358040410544192912994533116394004150327850256265136266849593671675977383603783797697475184614536104932627925766037390630332951140060312047515964038154621834078943036645694669859241040161980916338358686702455129658264104696862071335872395343793741790675737043535453267714339428736649897129810616248865831222883331458510506656374075379024228127484083869369536241059894731915134907035857189777324329287359732311566870618994532263319067730117278881746649851305035108683507674373184465764322182936381992381464623846708471160872060501170671357495402134342533490355453975427037467640757783375426039082702854681020554931047263797912257881582060751217979829235692133179429549372120726126340921200337131358443018185806309352608677614178931006335096564720593779452498107345782523729260299865310656285010788560256472786712682677283123068577239532771426166357451875345687479009464396008927780600515254598059314741933081992763924174843185571628292799004800203795759328101297872253889418394815595637012944597311825926355553821568988302193502791800495973593638806079860324698191670990688602406824220853792461224828471657206167797142322369976974354372482226691464670211631669758132278680995046831451956045286473204135531543760806661320316127573936120243894665616958389448911428315756745468967430778744322083092003502581821480986515005359387310555616555384597147630179070677954284120400278131263802702305521005945824130773293656755194804446612901300773143410902903834315663593048829486359031504597127344560279159825153542538564036304272789756228619992732904601243543205510531733401539136717455454463234844895381198570380807891872686935190356484873643057733460651267324533666862486917866757983897105671134107280111304596960161221220894033854579078355275034622798729854283004473452805050788713449955715244839934355057636700847358194161327926966210551351265626787770436325765058786028220735232807871693650232589657008430536514478868857524008517176948960262893184920187997367986078669685439612055892457909462881696593118204523338948644640295441506347614854724451016079759077000888671690802553173047598808541092658833599288355354138896808426246132403400664294958974345054956119201505385180467730677425444640491417928592063679060174234363167798128453305497671927143015528826378178278978502872293019110531403586567151255639838710083461469331855326797014403951890983015125289048701206141037982082498458062407056054697947296704268701566774444051010370368546775332418064908220918200449631961051447773748322264262916952293721450317813797891612837124078735372057612610399385961230973215879792498146051955617174936397990684003223730776727593740753043041545869419320932729425413997914753687587058654435265783341097840712051937667246941600448278925346056473254182778955137297800618329044391507328948356405361466576440247382074062143752439821239571833536697584217896369578220924794567432404774432299269102728989423570931444602642124838353301674490202624401728334689119583537728783391162049358540624232334477608529209533140394296391739698983647540868257367918264540653957020361762890789024612902652361145819122921890155830057729817539578918448363359087370317755923572719110234324276663781280512813773620290023982093371299780585094822237765273581330043666707265801817339492921410221956038586782020223582626727490051757873531080455888385809176625570678269340137712767738337413996634280610742466235618022516125067691729970688059192148860178204859945697234177834902377498195300043619238805065490567014235219719942162507622739603871645769565983330467625849829598157100683894074245177734402889101360146021420730580788867680783316294215221272773321495242948677869406877018370548523787889795767878476095671689868046925241396809931510829335633856043537783156129934885319100073538972134424262877408509603503371679129362418696298473809100184854889829637532655643444155884748977161513852097622534015696595035863893609665871355340486933750601207686153939488730104170359129867400258741416435654333005033890901632182919002430325193660979414095564414602994625341492102997647859027561160477870187964727645086827548385291351193235351721400816536849315831568813845061985674307916901247689728923836658426778344417237877348802403328636746533642582119370828025839223537020919599877956657646639111242400994622285971499124491834100795123843908158202878268871883853064023135024591899171359867336914297568534843957086569163883115561905922633595784384931508214273839995757158090415873930192431003250729161464276018112347584588803069945674946483687309197160922661176721557543568366765676293306846099858025465844976700279686676095386333216190234173496538103455019686588037570574288185907642621061190023342964969992540099486303185355805671147253186469415064302582488383206839270295197637865748753913577171040080527790139165505977284008085991741796589833452548662659824765926723033761670363943788591576555603353179730596132580221671564268545225029061635813564486849131964775573916061569125304841632018868359021890174539916879491338674241198911771146323515969145715557121905642704123220536460742283771743309833860667624264947643123299072313384262087848280565276520199222083661419467719851154423074161374180240486259310319881514059660587372577539986391732581809777367180742447789640414913557169939518476453269382448500761831152115970462465632581159733885636302117334253543142733622049037132661986236706371800632063946186063525767805110834750034490890118698052437380174866945008950002356786135195767911461173439449429101241307114543484761100947572931172562453084267817423067771098540414153485254103902094670075821722593729778479786838244948628077392213268502977617670370143612400931356871281471632981009142002169622801184874512981086200099813519319586786712375950482909539997016386048600744288452045758351915664282229321435061468436312269374680534511427161165541900076802823222077967433998404362277204398230875129626369844818182600460915705125920359031237550507787867602345886210615559987546296016641110610736119010315593845464876248492503243894350890823001064286152398268787594118921565550418111240162613012056086640681265960758737837296578918674606479056138819429056744220914890086670335131328926287629933866861082458596622837083569626857434555427411924520517231670815541833692599507056996868747795721101753914606948942131904772770943208092893430487598633310526958802139790904550546772143071767439221005981653944236136554714710489891628705748820735955103258789071424653546244796113474338331638059433857256108065501229916488089851723751164482457560357117881927924880269296871950833326685760325447373671821934911579841147374612183881976706199899707854047626944144577496841662480633015625134202345929853827306301943874393183717115665795540506734858368551620398498005010428515180976052612238815160089751935539572561771107739679217848544736303486671828577354255629746078990120898216475632450696446794101449068287259949083995735410370871895457945247782022064642419439619726361659865425966660199917536729517926063633066153043792145750666337607392089435143376679240302517827316822476742053321121616868775985461114723328625413572357878292602581090972937377393352428972753322032149963784378421461138134859215049309422326916528752184727152840396927255229110382345935416984659868468971365261363613374454677486780877747260392255104524857361080290305601367806514480788833995062353239531272954427682464481880821090170694822247793658170255621013697058624958925536790685930473062445886262742614811342452907995320968357708513755422852201413698787412040748122552977195338832482635911640865990051404352739393574664296580134970822557494395811090101415769838327409442343090217990065929062118948980081145467357619897749416652183453081795967400788507807546036597948573045401515713560997992794642428299865478132153140956730557367576294522874879041951462019752997003803899257998870026820403030455420149953447750621307139321504795891508906195560421549393593748650835342780871090572598439486813988278768476006602263409542191015603322530377467498808205828385621148641158803397368280146111795728660255119946581982756087904180142692732144147507254137252036503987024173089740836220434026065480946431594574615247204610210811414696022663804446939182988741044127001690845947441158923440022333243919051321150558879546988115794569815711745947119476068142539738387434697639691883096236121918950501956803225536220355438494133358586202396783227912175324611857603799693566426604328169305783717661016351255994195127348658235399210807097629385878347762436655352870323295438642098623534311085962242783517781541116090690449243420065930619742001741719696224675642937051192751598595511745261922510350864154031744343135060180072667541518042896385345567146162478076551276998057016013879055029046859980160148036244829142610671415128020838174011427744731472081025860165913198439894201744306000215042129729226029479677127262501676167499115732536868758821571407255211817107363901900384767060917851784012705590706454590832995889222509279471404413601279623365393900992706052849957204213241295570174555661132901713043292353566149975417053538456842940644167142749678736587431860682362472556455503846070044278734427005327380365145034734621022229485214088503350312810544529470943914185395555917250411945364370036025970696261085264121709536570049007528902355472172264078924735304026505978467257489370245325709694886826564889709641469210426130498748938474768473803856658092520320469780339102048875528359145089783694531170829511094012338873597877115790320949346773635507033456350189934734625178281990015508577001752568074591578504919241054483871869127769177495215913359247898034880787311456720751801743117660177979447968740463136798760083299379942053052314805561606501957135832741994782504738006191148189138330808650983889852919080590813497898916863590632178839220368701410533905300598970604542201537270097766470844750654724934263645611688123186647877737847871713984292542095301326670342945980207685007158692556421025946245032229849721908476504742122647566783323504152674197734679516559905029988322906236005690242137136478030469389778749895213072689150057874037365115784143947649581385757436215346314594220203626234823485482590008046158121862818292580645486479484654619344375063244375125182088814233966160286383177029338127101857172604612862002917765608859420649745204589805646138921288656301795913652653599605745815902010744480225832360127811989746491277825853693449533512673516625848822008765065442013394876781482578558439697627886164903554946660678641266533461582227123561131490118894926337781861163603720998929785217880231144071954487148489231365161174700507404498193354209063890518013526279948341511244258278567386666750235248774918661418187661561143438732427058555522631663715242911394556251924350692551237737756220363535540760404171901690395735908649247990300678927934616955388113647158685995165105752580080104662676449355850007932375981548606401263738687367651741972276659067007382247408032700155005028210870382461229208894738754260295641169635534206170356190617461217501779771107228849247327012508053721863579554953250212045339611573362273313314078776193124035746700391921070490388362376411209778425149691683081513335835280717766034384256081644815726650784676107106859348438348401189787193847879880958037535443389513094738142277393637072285846420732103923138753915848244060680078247815799569217084810100449766702831780986437448097438030585813526780228593183429135603206723350852069084734774294089750932575328226999610079160071951564669222328771265610433486979722643966156379619762411747084968838511312290560290878528057278084127407018573191487471483207460203204931742334087101427465038242388840098446164374258067677133951272289350423664057681134313904926888593571763122372718536850366234711659728391540747509624584168313368771610690946630693148589831672268188967428715458675824607074035812553945523483154677902922083300274415784397700953364359306107270022632481482912570021706239446391261837979095965299347203632749612057404740472586258504044230820071260237800599734250239859229327134378443936756289315992646111286856598647582940211956693230692192256875037034678557676775786949430252390906364156365727395544870558835571050408302391555088734970862509998149871194782658370080907417456528157450991211905477566371427180388748025809110714776262025915749601955837473198348325703130810955541170614146384156296303670081404630367706917418828396538949224690193072950014236670817989438733301438168356792098943553882314682776995042455276853955505006415136849030964387472467777694185723153376886299214455163893819837798766590284389052161852941317560952851435794146689157607137455577521584487463030381165190479633505090065917162291106625981297682621876367700470082245187109541540063899891578804214705675953120240012040757589597457105566210663088330938304047571479112789487928235690041635205097256309580897281691415148627985060516388205924197757668012821045759701740802151789947992908146490315478597917205174301409792180174286365794233807835965207818337634133350417192077101089948062292906933650687695159068513847464690734386149802867684898830667694261927281904955946093331467229643969535628123273079001539979044434115676967994893025251099215812730646845541942264754040068799340167435710606146006183429213694407981394213416554207001193679056376610950855479512703656009410843765766760978639106470578685332637277193901737977919331023751613022397466872374127340798846528319241160944245383172303191366735418538194408195873297037424242611174205055726792632537934868656374195025581576431853747765092688064079606598600671034532664757886957333839318253751409793291840693601317375053107383141373553361233969581278719717166785571564650720589561663989698632790179805916721000427359338973423043023128831494918916172500115282409356513211281203798640441476803982568807998389396793948735421562032251476374838753406234997856568668095892925688641679594053470670391941152406954140164021038516593317675252540772278979821805718625127921132531082844775620479087928080093795265560367483456378231028111925131863844624947529048845599295153629540344909053090385899336162132892921493360806045552384803426141853904027638109804739401047966030817846469062717019955732768045572151816714369197974976495210675061193998749395083096725236697023618339349392424707418262598966478228910375445260744660810922469960682083258902888692539565826936239041403166118952693729295849045117729219680564633636092913330068054175802800354413975497668938804122403973309896791371871944974016000784765873566330355549690641239650628210479857061143332754695327277704678523539191446391079995579641223989162243392332582845495663631741416946576330274670969248538013992018010943554143594629182988241952679464683264379115890682027950297367188091073823567023338883139650662907153354967330199511886256750203966531265046203901589250792660363977993388146015516172308633056739830924275198259839583456979386779931219891607387358227358064736842010784041027321883433993522852346056785314367531489976006747835485397085966025106880586156121177355057507440417018454695570934011634765960695149295144362970087394195480450463162184777357178539694357482536024347755246343225132409080391336312935803740574182562061199224533353249202511112721024267553228180276143761524942039167889254205304642650384846816342816017702343040150790013557428883830556421323522063042278725847608470221035763187111358376204068463178140760826510882878866182987617522043727038046146987323801198109524391985639685926666211205022318817864864005709406031396599416542535885346777277436239608823581864095482736390193044740547455107461115758181869766214594765833946334698068400751304145428349778133428890752761545563740766754700384453766294863125600070017518118055572297957664224274700916781577882612740229231330740457971613498588037482094151376069841608535058524505819972900703151848076835940551839982471803644257378295250749777396934489324774934978187901089583546564948451592284906673589653966750767198104945663629631497699300302202521507952665012764389108071270026291387492455802246932400235013649676635535370115620210857445374182277528997274096816601194657718639741202434594702315743900566328046518773520187658175964322474810799483728780619494836317138741802372187295641334374411700409545803028563195242925901669891242346486019619377412208770339292390580624151412814750839214388307111856296443701292959128555360339434488552066236521648914320403344044576654927432660792976566641912294566875979331330436032868588982694209464960636322231279280860982942679309887601610646887806970657034236547033632962106475892013435872329149459720872040677559568650017192257193161494110492226176903459853415984280268283585953949518197381718292839495490925006082307361171722539500353074689820082553832975239070963050739025582135335848269343655152320952509127854604529776428441206535731209296435324617157179358979718877304116411879587962957358702151082732612609708300148172864357009240079283416702066491191994319023182298836840323302894882518937066606033515971155895257265130273966538934207522834239588479942637541012906225984116067662465801086691932475487169954963000866639354256540696993618367720224161788635096388489060911044866981469611876257438382317208455001083248889247794592970565115442188551092418307324851474665659745699239265407000865965969743485814835089558269300692216309559868439239919293007138857170704374750079260455944052058171927779911974781060893813906912512449765953915529918138052811309036362139830314302505442649095871783769798452103348721240823025503375130438278116101555098692621868777464927781394331849569109650834275584907646794776590999015512217163051517845239536347896026485568194019320358345729786604939818544116626558713213942460702397863450880219963167124064132126243006191018302227141507049069203025959989243886476265367373671551299973827805716418909716927606042256904433730524293243121126430239271788622558052722066849657003829608608765050381315173028616251315979082372657780016634801689368360223930102690430389458047711297646451035799878203525031796016043610856637045918202352658040002517518488357998005566416286480475014000941416969536070406229417927864217736848444671180987047693634914438406512181367567720399328936814111260350713805172849029239334849365124421230662359552044291788974153166086310758698131900956987181585714028208214740918926986568105185410506190459671402914508926452097698331361666639337969782810285765112762116593785855281604781580486394209642069440350728416359987017247117185064475570950261244206461872376814308270254816763485253014274174890689146261620089294054741522591350806893261019973788329724976928354469437345060928392203286847331905937147081952518651486800393432018777075800225813540725655309869685801158106201964785552408633623375081544390686947177430613263196827037459765581625539079697618271674153048410105556636234285929824467511144157599391168269817742542602468480639003931404959431085230803979277655680901033789792639694647266706250324652204556997811890748072098193571724127132880239041013122149126446822042304951886933526878458918979554722676756147051697904377179961814427473525841811081300340148859672484051821232982887407749565496976706980169823134501242671441354295670177887730233476476988143490535191475731258468188064281155750206526790056468290962791687831821942249777720827619392875363335746748423551416283714381915802486300283219112890921585522118776084222811768634937545597171050119841817849321844736947139110274243671611015308733931671887478419702082916326791553567257127495319047729618217245792817422666820430767843725905346165152486771930739613607151277312204266566819209677810117861279766572403619618146483661156177948725684497809144636403227270753970250969234829809426563173824039844860317900980977224162197959881228817752314297774863693954260079704063159731648465148513447320021727850714589380638915464691915287670241690005731923546317186802125903871006212339090578365673295453622188373920140110499563760057668843379738558292586373375089075346012160926379269363368181403246604254989957570213962784530068733741842510601126482243252459570554644034047958789574793492584959951678564782678626143619968324641880154007030210375610445185688626350952976775626390863412221572581798577481351945940206330345436122222754529194263713583190746753368672605729517393951772801796051179814544138733659818815312998144346331847524333157415457266967376024019760090165141179289803521092653567497816047066554488776247291040226994251014309025116630588747566244679475032778657059698506646624057976450554658968788532962425731263373085435325856666316832419381956801755852561526319763848046355721432599100416216082071832676124913492121950979307784960365750857744944759923881789314675383607777991254735107582974048545887087530462175475661659129510374948754324375352784719999954349059357860532533103497955017369357948888319003154799718403202058956519298343642904682753892118080790950604632955714564144608519587204835423706036242218476187666772762146556370798289498810371760215594854720066231986654127694972712096753130275980354176190656876182457576786127241956393051588331248539928631452331653530404036731878648482785573152762930561623695220561271409810467035790924534209010863641088302961733427055559296455898948109464379335813314575251333031527496108417461349559235597308932889321634490090482597889785152669767114318246859024686155900003816903737379517885770324969758876457442448388924891728432689508089145958299474911558025454769673159914910592010503833933100363014327572816751992934682634630838497646966231926760783647385468952077204901080695547600054217248307475917177870846298171093563243631092827525856791922819471064171423197402204395827988467771032470097266285003050597840942516269699480449021486335821973082031926789547832663442690811932950420256557939030727375913983074982291680318145039410608513377943471404119924435713981842246130683542147516677692681765669254280593697603264726346168068967079776285247033022447102804108812913909565004904850536907292504908429624551341839738224439607617448634763829578332941705147560700364052618138077720204882455994018540966001656977099570497667498229911243913617392843833324694248505420727713059405104169167037439841188978223404211022053716146508712822666383562254444165541237715773977349160222593858144214809252278316683410986502705010919778298399145959033426890732449931617640230866961305029296743223874772957727640057502198491567546807900331865921347710454926696232020143385234953268371844338685124033433205219701962984550288693277784063490189112406006580093880767962660958312690918543637291642650749573188496733844982279782097296230458380708420306328185006562368803584424873222304283499797248196722819828808427523125772109933090754777468214371049376194083194234286633273619614517986898572849745700684481783581802665888444428663648676793555359230548213880325209459130877984068034911219316825482175971841094816696415256240517354074464315867921195152957560320113685582430988030842715352594400271897497692885321315817425335127730360015085439610289839000523778362177178105883944379914990825578906408320415342841667798072181661219488533471748695338767691985842276652139220028313977198498305527689111488678621225745149301809439937778037351584874742599548549718670738935296229597012277971185188400605135961172946570921041269593784308204903319102203260318036981619774242656996753624401575878446564992015340988490082170603721383919644484192150803366322658322198629559633407696145487675189910062662511932390111009020424546904097588652666739174224526361176005087155971721434324790243778760756943537997018573961197378796122569082614996633272423144951073269854867425183420077499427314225853104448522336417774004628028010403516480039383479649232536431091672169727361219061711844378790150340381909623717867118883578646802069166425611188028416114419645411599348580414736725719714137186301483527539407664020336765664141473855521211564051738058499617220918571490108012907862898225402515693279250169893732078012436864912242832059058644733903937881658765880233934508195438745372875420857060656802543810312701269906002997397393870443791777152205033893294406357102727179821425073918681422971333202902047826272231025961673604027931841897442779026605761810243326475091965441926430348419722052749814219617372472839407389116285812975542990668296945629687382934516361220444572885059840167249831943028959646141563022320884567579690527127983946013742659593503983162515576763180910082531469982958767772214269854142206616712329583501460997081878205872554455759224164664329740009577760319638626329169974546076327121711940216116646777266632366725575543940181909687838365235307740137783795166400191687154598284898120205708070885824559786592752257334000734734207057797041847639942070936462303647512663280165039454713246595965401949225308318482938488570349689322184010983837382857736397673189245521886062437540827400433772083175114492364739135454027910856615955220899708773318050372349359221515197276128988112447926048300424229231908598350791043359953659140437446818405251043853986732889816384922944367623418601927167670349484448994310268775964571633422573432583546526473276502054166737182977031989655492600640284302279847695367450736882985461168644389647400130176344855810000435768823906936629233251510623577296705837935319210512013945274466194892632932438649321111862112796441811599197735059490379960619191615116774852624426507909786241637140000717228501445055249882760342907169792445179390900586889740399402778275186871225288068295999100570297813307914942621980594880997817767207792625754775840879101295210544992505170117453234130667911452304921174661980381429339303329155499973252708466949851179483417954312058688457210169207741273193058307411793202290895444258708263008010305255640763586454352232355203312395141812032438582534709532569511673260038457251544552640505818744404120841771380665076988938003264952249625073160582412232403098686939278874957715329842307725002188439181635960020124016129572393497083289600877086691873242295693248264617849885270625703592374274952162764926455547415951019948815141883362539589227012494619485892594649181983174470546527327915898087727196643738230103821761997294818583126849993460622621571538416926144125106913512683476913928141021288979086780259600215400726866982866216456206612336281897421467684445387379950686772012675523263803133677264254972561818523403169583876011259654516798305980258424635612481900523181600053595881740509773348938161347488219004907209226946784553940576648515207070767328762257744383551158442568521103715632669652281771738413780838543299081772954546974203337290495363427622593663193376753709071173306371221655011258108909032010336229635827390289620066785441046362759844690320445307615047067248263483027495852090421569558689664929652336932466991097452242234196634907634059791626394108755326866843873988833162027112509619607095658802385375790605588972931459781398691000865577330161892984760769527462170200998233098226250622378918430474769626097273900928817127245389611415055033323081856245414581000735114662316526182717688246222170644287278728122494577818892350415304876848253350743137476774741003506443405659097958156711976410313352619724117183499526422877506712018502994011633180910294926820936498872904383150470892130378298825709442930807550031865154279031934066991991255517700436487868912289882082849739723673056547591011616752160939338349648613834929700199203748373292449769847494819286902571045343782502288219666237603582591895998595496009525110189815462370165102856882129622708810185466664321111403652173150616674026603449955404652824166396751231032308164630269490260737482875176696076333006957772754587650910049025997545543523984886661750427237815466989229030891823744576269357317833857199960241288470192384991989291183148098503135304380439469877046299970795514926216926649250927798688028388647186583522382509337396915371270017700733991235050593026579608938621472182150676663536931586203807155261367540268624659911466913840534278172389285843694495951666845276261022771924097550110037988573490628418123410500690867992667600629227977065086996779435835779308190475139272597927526457354736074788947022213917035415138539355876925957311140435225850725288003571021597398609102318503527208789254623511544470080988377594661784022758567106548582459144016168695100321389855524313059710855300987378647996284676179037724147747338884118226270513851707529502394354515923812594627820638110786450515708741680977079011666481377906570394857504875085441809097252085721503783408015924229328638815467577988050047185061387284257178811549346562224530886672116951716918751930374026706997788144539939243654234492094051792603921190858805409212626118386659119216051244247487011598825690195156133145806724400147483301420703232357303546538530278605922160771104824813856059259716732342788297563957069764633175487332358114957143392419822937830982985691866961746428592311663580569161720734031658234456652309320121385097435098255625952066894962921129100101958823900118029220970974770211450947709980173634556412590549280277010194627283836828679292406144731651863756597190348251618342836234610598300942292289187453570468952677508185357977317282702100327580092669563033389887478951559952977634042314769655113611631572230937946154025141573768475122299628941329529296896284325409442351372467305071972933248389848683414960101679330253138575196309608466956303012434985544889506162660446745357585563954283874312282776266954650761340546541754123027524121164791521758453959785615971557198833025759229684929859867862802963019081348724372084811325944249186963409644424911465255197815093727228317271737623511676488853185578705714743018067040563232748330686301088352809783833938901365237388089058429676760590809896339218419510220408180280708873989640587122764809105640543339034579286564732340863346439725988107382203797103070750629628802763937219103925551831351103057851237008728358432609933755320517317971126108014996407705486260894703344519756047659755458436082014830025164084736901066550597674833423654379166068638705683407598489102746509398562908719227434128765198681295692555995878724896989834728870887484893994346273559048930717408864176574959583075673212660414091719829382003604532397802910026936625817572977067953762783927565899459135009849968258295301661956870729489764456701249598934361619703497101157163118806067255935214959428899543163430381707098841604316831659682340950565381340215762581856418441821485911086559390627786158575245339905242346180818182369686815530639346822434387384241965717005557919222130001648959407970061666800724771132788358686070916196495858169364880490173796174784260797174952118775139435379411904563039567207467499101136353855874607140894664408226767868371188886744669806465035020983304348127555179346632468128162564766817155645744365550039423580177811144225751562710220043804965291449031089947078356448235069153751449903524176245352184194741205479174444690911706248283944108169676528388374892728399113605814289208285944840288430416459321023369394755076106956106074541344527626542916479043618927818948277553328066544425715744377015420278132291454673837283076747861160420784281739678821143175017204596488224386438599867014516387371637345909747582117290285662348690914737562938039015472528527651704062039357940280082986292927113741570627693878622491759973376852648890696423365134505744294348385394964757946370427733261031804134669070178599431469321038323708070611104091693038655300725390211576016642266008108760163917856699357821275092531953803729579079871498949459007644086003834570639749818575290928432655649398471192317831523484705215071328855544629458719116612797432713102150027703054795181159194565795831615900476248471129767488686660999547379783224977854069378750081776562835412167517630804148520289340923003611486877682369513503075305742766748465646505911780555300347837744173378604511244700942554385795985241975976442548842338639536247672491997893623989368403357319365484423682235772208848388598800815067854209920042446457147589386654672856751389046960063587592658273015102124524484718306377717563634375826740647911742262592190308948332085888295116946785348935813215298028455390509363061589896426814838894004646862587538540208511298771288235384508723226126199943643888689267069582667097088101857044815490385361350475420326187795061242519901665091240861603293805624136768576635879400841493628991828419007769401112905247902184396511455580033925255389637552387857100368563488884003972354354222419064952065531215823777174713043071121080113786014157520108451657878591749481817875739574744515239537488095377630703273477874181092807075164240309778341783502671897666444279634263660169987570216476855889270309194727163223971986722567213061917763259210656697471456482304574627778178476242593281485847861048551367352859170750135036143128702612492289277493733659615382383532255869886793237094401749284642720749850682029095798999198718732789518442252138724771280325732467611126852062735681311799942560884538372476511078384293632520035489770882772989362902892341165590808814799021970539801866624459785236627413970200742551216991861844002717327585175418362200885823585609901975374760118035294684712254613962045969775654170306776439993013943501877238396247241142571104679924106839005726885217430414013354775875880772992133358574921425363433339376974941401207604575783574660946865009783398630192997311527070213403171948347695825876245486714536009005490980084187772407964065001902781891498607221972475599841412218681522909202475620193529758742343240662517079343762859915806501484199352159847949532207219767044539725216225569979850219384615099576910129356478576400763550950607776618444947813377311016855414834673126735837649603236230446429441928441286375256465910620405084269297559998889962434459689875300923951342044054536229596064531413355153548723532751671746704297599503492965305789896452438083662776683688668392880010251828296966933267580806684743515680100802091845273798180322016702481283207684796519425153371450853181010284666600864778456368398454054839879567988677246971109297730662283042989042582536909807157273561711266754097727755586165405649095476128035512809551046550781718169733946699176570430400037600787789520319746495159298276859376881727348838868064782429951585346600030948723087094691184825437434191321566153690509033254628715489666679331082377965625603239047447230491010321667282833628178359269043574923825277452407543430958935974361207243293994283122070125939152385098991798387899869459426272237236439115106692674635861282153278766229215364247992195885839180287612220945297860777997819642449854675424008204575240824762817186724805700298439025803421745612750358755593152497789349594089734438229236703472171527463751222880223527025387725415621617468512844261506966217235363646236599513969476202707686797540607188146253936320298666736565606697409409274731766280142113124455776672389080935244770241923613815820443274771455475441727378334610647302048195423585430483742815130370351238405628410146313122606821402220581325143954893534909726458073522539971468519428456398302859090825450246526592425179117087208072165773851091062208043788621689459720114014111932859832135480458147183736091551953025054865250606347247703166153856707790104847279837626486778149631567698775650181782599679353505404892995138189230569630436105817189755562523956797926889787761575744993503770546389812931879960827445544717501070828553097309654239057634149668131305093690227638300789087692223130538509908164744145621929328331129323432263654131578877627811143532716445666625416818652345880570056260881011210420532658241561388602408974566211483790915902854699996025358759807908619817432336390069700861981367964796728851054360851436446864721339768394742089365333833524660391359453222564033220677320286987516089384343702317019508400043322366279324047613431638906914928043297256754965376381972823551498312709001848587233866832334420238147906835115312219322801657700615153648537067925740800649322238010331493527744659372552007253272950398228006800147882861051045591841170028250104179842297299532446350209921464527412340622213940966181430257195219976258229768966127738922663755564810373318582218261762386212931755810017294245727344119201642517092422207484299154974979767146173500042544605997791566220007403518212594351731187787159947404473973966723676948537400070425189302993104445339068667497031417144164511052796845139015312350544044136372141662705508958379809685830956047633697512227525572513711739752733011034170211291388359109117680841119918962703980341058246163929548738798345367428459432336760586815480302339302473341734529150449559837936381402093426061353813898506943962709889102415556676035470581058273759702404210591009606858251827979228982912840966393439458097804118133788842272324868439856540091653758057947551788138584487577236160569702540664071809645440216999883971356385047735506260631634707036076901303541217341989599495559841383708827416330314992588223066083354814638426802429947941410121065585292089849552124471392645192237828386270019175101793496587383187109499058550330936921449378437203750910479813747704051206498587197988096758960228897185361652804617902869982493679147298998126163025055885716354578090039121308011934804024172466830908900303193933009913794929573847352818944513073897457214988756559214208113239780586729032634579024093866158199940789328707820991125363543197200868316806186805438496830403594741485240955202039567162651110273492970613622674455308115176146703144250864650920656015206800018197199756979601809218069836866266615419569765095197559512377083264636223258869961526546096194936823126871710689923390449303730989915766309543292374958994011972019828340670889400304387086143995381572574787578807140651538655141914575060231376148034721940046850618842058705847527173458396277643124588485880367847795446559852788878883239389091749012265445621644760812990309424478053799302665325670129154608836492645871683841631552787794292335425015565592408829578670972615513219065126226625174679878590500426886909320340155345988285120271761715197880935791245557457017092576299888068721176431828158001970272427612071608719820223302298396716636165337778849732111567067984054946222734897841593331786145416155125293489461046790754616811455207201370676773707006913971591415351682842409641358821417396886511925212813119380831599344999851939521077535731344088107869774148988533296447140080062770491821366661332930634204175448152935932522840254999271852645761274401032986306751731473392173937365260865213900052860287571569073288338326117000719919739513880195983342792779188243161557200767399528823311934249219073985121489772301377494416348919629034567223672911476824490122919093244014802663230387779875474173541113058330520657000063212423345663407084087589403534224766749832076106265466077146628188326444141334384977041810183826063033038485702933000404125396826697002154651081663986577722254600549841483019090914868581540612548434800937650359143244304316161792128655553930625621907187728726205086708099863465993151002770728090629824482211803387004362113273908903553681072396206385992779052782292769800096235707142062009797001081827028562309389253061691311495049336083594883453763856798292450998587852261318496357207493891080418527051756832214888180218451817537514390805754970681480693376347310236973370280758508998643547703707141856278511254430286382060882613944657520717738051360869983836029749123916384754404341276732097320567280206541081020995005467964197564820288650059394335324616192243350981598772338877206292973814175894206465776902275736922555810365739173516028397444550586286506032824460361523157459415672018002020319803403573732297553202951571112277952456155462363591489398004041169494733148214505447818163961981723639599111954504907728083639903694124634426705264632238796597294201768041763176927772569112086439217820306839180845843970884004646819215811556050388803721417614613309509565033641099896417947650853187413479535605552146137754919192970199883018580306867384365087949768330566377879477556060580769511000093771419966974993734483782515963758617278451343635093718046348898017627302312833516202905862114634131895857558471601504760924735927586228685326322465933442027413815159402479114070639442909562716771911262056537896889187150137139882214537917600588150153602887207802077890332781336865680965087158177864296236717339173639982145883142863067703258868500653204787767314592762211280186913322563879654973654219647945726953495406750414791390131485159118233445667958816703757616465350583518612373344082140804171691816732715677375746230066769689090250909923243950091905116006830969890736308433604132196356031240594680131777269049826829750743065252466458914098368876221314723780470117753901349878516231882716660886550097807786258593342148270345363079503401794700538699077303626906942093448893657299299476845002676255039946905544806255103656752180422497912197384242173481469444820729864765289804678272495008355344463387030283779348171832016448748872817413624070972990977836460178600244821228013730657017335684973954237435604655386842595978593825560576755797280917908458726901224994827921766853042415884043355207917567445296920510900890837929333563272839974453256272135996937523122143313794764913973321929930940492386257426709173279082084175034119975729245677499634284678260030913854971584556929708100063430314829774678394895163002543030904488096922239393983833635958390213288856951982550004400650500733679874534641984846838266109234900907278591241009084645446896756594685384145853781084737630170221528216701577316848642083236130356206526312800098384614278269636990340279100909239965452489777399810714924586705499749787554833555848571589011966510391704208960045649052464825261400218445163420657855749659532876215305540141970869770401452618143330416379830305849433397036590119138855146144054098217238409748780183603286163948612735441533514321040560687560082212644258701988478321178249538117679594874833704267994537612585649091242411008759442916713791495566184178484508624578443352922558673325306415880299649342542769349610621979092801006970720317274505780645205104664032643512509390109149251251943692587067611777215634744818860357639017311240870758592673961428996283006714412495972006438148817744786696482466642129697445050933674534040940143908679659842534159139810300759641022715837223909804392768174954632213481773895064810703716960391848451246561719267506913017252352080368429645759457505314841741537918798052814384297435107340419436132803241948552560485586321176695213837482250505176260917841675689611814913494083524320063766292593020671069692368617756178362200644157495399705737230811753489915447156126721047870356018215517634095229882415791181008813237303053713100822397570630429330692142526171559791405407572711832457345946433379879447900987052635596455298255268610295160004936780139594301990356773661781779780185722944896308367640395336878532891916326892432720415217275340104169604535373735895770343158741561681589148731242024733523865442534925837628763144137409925861329392960376243506261551447715841618644005110461361306632890579273282233708664537849688260950761989260131823890070078017853730671531634241595802699098641593255062049583973426773381900113044242421635850103517964460467925235731033026983914402955426681722134574325416743421539915318161552566910501525722960609810942868265140531453987930022914066330049194253009889529458334663426595689794526164612184342830703085487443109357242601585483143293675233212707494754766261648214095363169730645367382404152300162440628391122559439968753173497329758150068830937542452037256147951973849295627171278463282334890889142700874661262860288884193958998774869967219751992205838657644764681511191302509147208711536805871672427422360997195625340059469707570459812003853265513792482468785127651690490425645563382588845678421004248622538702886258532286840916082542792761414813982995048812950224429407443342601499440745862005994700481574860266705364360731121319522828773002816955840709750554909831657149872711922637970682435505908152620208452510816211824443154139647947613845658690996068119357463977298117993490449730548420600564300047812970995347987855763682755454105212079106498409753965394250615664242777245327903256668505498827755152618753107431545271859945820044582643652260032064240258035361205917130803959670273485904698910047517379713875817668714727933238651991156076037421196847209106942002718969456853709683947596502269339741868576101668665890021642381386571833049467120580900251839374385591241593709823469066214849840088202621976961983649658425299941633705159183985889179921062389215065341927833546710289734469596672068794061678824266205388188808805003387199988331388202667929985519233565383222283912764616737096392006736331536792645792672145401196916465010333903526724185336971457766799371052694166170099965226173570000305999736137829926505128010338561118621274202799798080469400372455059591453623270359508453375447373180627992896245680127391669189136597449604728807944444192838833853765240400719875944451993447416039787820296991644196265711976530266975003384442700891402805296819410956152170606144517953596402537535316330928244187844616637782441076771534813701039697384204284459401793976322978770054043136795735076795987619440339970625270551238631807980046145529185737694581462664103842340483831181781759612773153712913536093203595434975908559626838757607982659483764921474509181628797189881250988919133458667903603092314147381071547990263601757560011591728585238256009923918082067691547104455151553300123069084750315264123671034609347113256546019539107562884399884511522486612187730220779998980463132554264359396158836680936810368144805514071667251245439879791300491993699794318520088754245458274781343136580103397893407874879210077594415140508195469498324050108493503180555753321397160340757235955878366156982896619962599965683672350151923382898437133430172182336784689572851147082676169517929534336467217169589118081344591260510336225543806527742439383114241335908358250425898012573205190278871102702215220445978088144907595775203325353287597401883118076209639891448871640297832204853404117205894781630437284728687955978145793317382349442571919958009533334393000132383026116264731994514243101336198921793994310964198414095146928114773775768752978716996396011032492540115920578255193878893157122808417587431057334039911238918483463665761911981361843188937288053873240649469218126351212736907250273682609164319133078026507592016644402033017076948951603433332472402281581522488399136873534872640125114807469004007477544489521447669982487063361827861535162113403699806459214211982390139202674347289091058020499978979225528499096437622484489274281536342253084623251365448950000837100845573070974200945788778350683219740690006229900940796992071548532053974739696190425102806501104690533231416834864938342632417629880591997534778364247291684766026168810153630596701339023924875908787415136937996661110779191244754432151822254224518390439859222973192292305365281086139563359628755419794297304921157401126602526346226705584095939695956952383810756641449511311807329144166560363668674825759453527836149140810100897022523807240930612533497406937197776804053016475401801130817382181540518659194688681756925395424300900934476856075391265177762027407460738673772172081450551943775820466426912109681893453626617077210419031381617476979154802509212400875203579167292893333312721833027205371519847413798036188113710867316212252510511955959146317522301419458004245458112916200185878926921992464112408074176382337346565570312576699388641734479238598334154763955227190648930317535247628089216253549235409984249914131008448700399799192650322071260929999922041053411718794927661530444203856234356925594883801493976700770651957605137510370619669037681425701408355948188501080780244424206867567116022692862336577946294486655186134351806763230911808108815928415089156310818938091892998717055302322823458899482764696621547487957088804159692573624515758747212016133195464122128114044946387618443904362111174913888754544267978130402437781686251190663486788082056233688902736263588941357538819425007032095320028526471820499726047191146963588466602641662527583229532232132759132789191364919498877026848426884771552702622909124315459941569680246366057595675040969810566544954772804535632730891975530144001189255440896901119726499145464364764393954501632517508250688145765305814752588688542342081373436382137879885557758910042428296590464412906725835994647731148613649733281067849170759907622298933614084951714323504111397483363122003176551600955449962254639614663113829917888708751548100327560248243357867205184972997380142297587158502222344936946537817123266852217826626636326047190278050227067601700201696039264226549628555192699533234118488130259005777265522333863820661894317564604783726752915047569600027231538965248060985068572067898257042086392171663869942956941716658841485581333895280567279775878193315744222789238471436455528201462631122036980116536298373704525655051300005507859384192992369509899841790492857685027375071533769924610650157738060182220494967085695942810310469133352896037738942028682957177165621522318532780885081225739746386325508647429747005481127734701188224419390291462209292303877560788912316434316315022732544727274469907007085431659716537627259145603345434240979998975771661126224404329517422312193309454262541202491292009272587071387208923449931874676280333822214131267429959810186328098644286151554275936575967269845361730779590847437536632542893379419926608242517020440303313112323155470086181164958461116134549513116441163267010627010919160005141624187778141256838207130553448266636970496067862430384007417874340000304006972760964013581502540959192978928670883592918329366720566994292551619646416194812456834459064875698294602474029034836258923424681258502918706453683181789518492721449468756304317256652191088049272483967686029234893772130747316675453511989326764912387019356014205544909543457247240302864378287360189549596599978197323690992689269865582123843787103628822640749176982659724272293192195804249854269252651721456835661253941272783556677750199598179778529977888039685786072519227093257653439643637562394147244222249800227864593696054894663913486516728622539569929321409863371905131951601763242693335266665166098087713918784612776980879479121614126818998258382353459835813071481330797933436595350754157255747001852732004218334986296372396575640307902889031739482094073915950133098673795367189501487594060643182295215885052728020220712107485136539235287626144482098640209536553732445203368664686933451506316075159977241725502438482608712204055991201874670147371530889040657439252426723830758054670087597749167971294247551103035094751408385172700735515326331732160629287571911304622289717115953664917003630605040265631618314471122713477172372512721422621329448949360931815450318336492984905963678826880414548708980229528046884564224126235473155209885948008843128166830789028131912839200426041988243103041800874865374119239792313188823944754435035698942861081262826072703446428764814114775626502606660847098238201959800549216147624212941304412834625376384056364266484340669505125368253398843986351486784934391627059821429685007490186379683319941184241625534809678801208147360432504492304890202885843691863358616047362178251332680872970301266593509948767487318428823638644065840826839725477482764480997608653648995399617538617616742652629347172204539936547430864551864193766537739518901675493564744498443690190611420266803089177709532782332880174636906727256852592333926183948207894646907912722972038953762999196957552412604537488911553399268683586783227213261474594362066843672943097442475345669312010356412105606111482450247800491451522185063905980460518224689285594140669398673194997186399507099718065209693320790060101440649427931480293520369952707756421244382145665393419247198240724666081977796638555492876194698202221348038887597391713288709980353855936259394157597118974964095433170107424008623326155951535857936732070676076621315678765472019050766977959163264821304441944423347453231108926646465838288874693910020537419646630358400180107507510637627422138191275706493761843536908401260223348873182194916394033126218129750094062991267176085635551282433320276645099438317549037612960113258026859532866412561527402455410293603585952608361714333472022430030279366380535973785314879282406022395136574717120228148347854824091136843106757495791493320389608696232022695706509355368187162853192027990986382787893235272818228557712851546265622519894283429645828393112257499239995704145316095531969311600345707972959195714080436240223171188309176668564433983299087741854213823547992502122406532184623235635069584829944363554903566706243867906573055984018613025144054657559081489366066027800585235679641946008910020095236996240261133560948662126607937766180057353711507016999430381166650428442373484917344513530323301330154491264408963079598259489915233599841584016491278050283811449690733968004724322426789907581675671410884406333379313337223542552054084554564516663835688829152351278303296163903673305079906059068258948640508928659715303174898168844222403692966452853862668123253973428530359055742451731825466123911320749623311673451238607946806484553535978591705695345954718162849840364919490774226378579505765052895277572928443261814992601626008327562438164208352815067612789749444430351877416879311942849548424006568139233185608523552197145542784603851737832169884450455594725161629011467099247648764139954944069631680209918824375451849389950575761211854112070960816817465034684824449194489720460814935263300484606048760981895720644277125300330938377552773433915111366542477578496640731465100082560051400385447154116896261851759213218534311385206712147901495192471142151228801812074506815621482532216614801656426077043689717525812384758552835742224695977016440782682161211827044404695330237533803567956617446162934157883297307162488955051513021022598803454554464376729166154996317218618326956903411538915706496888295404094218304114223186218460082873957871246616484755592185237705494081070003095314167526175398172474815090967510386541897258515863876669244135785318649760932219468395387332150508498537610967328193254939570139277141845435115048031456876422427019219251843662238494161224008588437573439688594057328135361005995418775007854223363919141035204480183012411444618946920100300519831074957538761510304732919181870892308011617943760295247848790353378932255950058601885178371958558740252911996887921861148562458212786403756638911965232504951846119905668804406971722049029146986859218514901504445688671680274496290279125558539275376530969191901350880738869861129281450220147475238906761588389804276149809927747815640212039596435273888595085814798396261012733185985058629838319343050489273227460286007723037262707641655790288488173490932175156273849058528036987741136219524225127293716289088833326661045104337870179159843638489241841883752310394917853938352685854847145810005407441034982998386316949562020980912751270069960165114240572346482766907690241699581731609606384923686752751061142638210521634194846603873587821360328983960142612262254588599085716299204426492354362859201446480037926632180437927442202751278706359870913980014243230652151912229486066872895896033074623105902791339964215041458603640138731768642461251969999096890532159612401391705061583026482128750942013226553897662414345317458229465976072883786956560437657851268836452026092073097710017516439916947447069588908614704591523393772314290668232071086855947852373917907350243737133462541906167684658702329248571372215402115205907411848869556713026770408769181644574848370966652388980895337171560805985904914532429547251269528698429880131746517152731547170068601176679676870024973127963025938652719302606033770345516055953707284453778743795858117999139557707391316992673009170054722413105590042166161271567964671166768363042360805361775358518242533105772965296307504001829076673602235966651595730183314476771280770430502709388455125812423025198391359634898377374172143936812619333813734890052637729765152955521375536587316851317990746835138505098889333346619647583374963350031531690663548217067688846182438296442605659433469814868702909730806012495634906773681247756640113093095264340127411437898144372682466134339079264779598392400615336948189852117067317529371885703762547577584725620662280741687413270598604344979353462171500136264332962453341358799578373289519315515961589919028638414607790042046941044546393092366275978699092427109751633222690638347720008814179186885031564525122476731484500381913060122819102247508360566102990299891165839986047290606638621800314682688254097093206238054031243245003896476007321623681145350979283906138916811160820091568175139503010608556457875200127412442057546690929684038734500131450964615914911827401906460153030759647377969378471536437503644246727893193825164583929206609920844460036971737159846556165668480450229099823734442675615397869320848586958331337814368196428918274458078090088538746500017989778503814497952389789993366539990115037584560814681294333613517401916755453449167127259497516775429187726154386682104661393222026200166784899451172913756678540894533537753713955764650803351791455552365790207749638347309205462012170616853961183898510868938722569391343304147475304794354795548235801435404498596185284137302066709595657177050330088388070014572551366888294606006714290770303964337586643897189536432037464509129697024189268498402130926418152568268094383518774461075107557237752999182156604340225874118649466374608754574219131953528909002950201017080062401019904602851645492963400197907119580157569145258437573353089824937888467034641889938410629885667357487821898091184878502639586410219218465954764609131592354614496733657733029778186967095706013720261907235472065546934539295318759338093395334902025572000564870730598741300031265547056224944586371349672729786323089356633574109976148056246787291434781632578495276167064947425747996406546184418209061448527530756658925530510737583641703705993807642553100987006470583491100444782247458902890848097294010241469882297668178652085265296230851185651555433084984125570794091764086802174046305812713236617482095458952054400198759909276640603479190137830661220659376432081872380518580662956269735749666688915605634643556175160669547344526849336257952616167641830734356119259664399638092373272727009937344939609401745198924520557620410051321253479591161329394449842572527412296882848907306241401688266339761056507773577204461951079823610595751690199219968683393602006332753062295943548041657420702429904926712347759261306801323718853471053876799379201299786322500451832992993426048143726659869306671032869156837935923458425329720208270109876643601216047294738586004508144626077501268208771650922186394166917805739534091964745872484398955404123231965487795678502755414917317122860586095639481477858359583186747969077868551507528265839534662963453711694355629084405185760698595755509878226456580386979179040375393280196143650315616481935643444561658168577410688250462970684310527595027963929375056894958301213587505854088819509496798903733929783095910391162598819326043951270770319952253711974282281937397926449674683424181003372738948341746789075637555028015122853264775709516402486117638305435215733661190775215365819602504232143674952558568164897682658247546292094179143615294541870298576081280789057979311018809822492864112981883846500167804301383315503513287127909928680750874274503271856425060758378163114563429534958823955892123325536336106939742672092166706850406012005466776657408540470088315123598643289805246715794956610410974941581295581397003635373685517344291612456269044182023983832477023920186938458703578444591614253377080744247105569681210755351326470563029127131374685630521372842771812139181963627506102159612922715688217246235872555077481888312598306135374965338675088736575470390523471652248069684622038235997247500965562196629537134216991241995912750954280870222306286465008422172697153688421274236739141629516922992609047582932397135268657283108239913110207161255654745786781138954258725564535756924001804338682389921210494520463104123898956834558372064071314721711859031854708033290501358484000258435078863646423698938045672219232522857209058830161209951250344397409697958554250778827756996335584119783948192100393611875162577086553241228026853098816582123382592092047046992135926600314410098003962395364165129074473977006147586164043469026073458029303108883963451697157867826620653324383953256557263287391140718642750773512099210080633244078489947948530648961570468083980148329453057583780606255837655220397727978244064296879428075086258400260530837134582239276141097721162195901499673368768774179653653824728880944194026554935735454851565235649499294267817366345742122947431376350145768601158443840159554897052194426916031022639977738853750138946965613392107977867357267181789458543418352269900003542697509201198008093300952126553896033630275327929691037463253586421361934160497768936351084407906325705328752120879482968035220972437607121183978037142319873390491500402899367119299951272939992653433174092130937200363865390089738491221795407413982802443887949324905107814057573332992587364298383202586512559658779783977297797584986046480536856578770220206292782843096225059269459834731164702797160112011231254220241617532580720310880423934124426115137089110417788137865360295281528327098059147355969227107052185971332584427858824631364081054427717392769623770109268609681059022628592769438517305057249007354212103905425935849691109562702014645025553454359819686784969482614085684377219233101672094178953981818326147593460635229457588436367600325729716981105954498899307479425192179923916672265535963894969117970941858928606810023248392116221068506197779710159498925306186791880516381620948241700072888596317523591775187939404639656032971428109662743389642952796363630430157181768506837578749862061155183970948885350750376615780893871227542308615014656895234668715210413248673248348876595891323924460958729698028524087435295175841034314129688126220392037050301344470692985275691169606965351972431381109314056085829494424442384944299974086587584978286778593073939800401103386573440488055015227557560062669040863152530081837515209572646890616019324132033807745391234873254060622764672119154423335963848475017104542885580362724493011943486946394351061350860745741421080593462556897325148002144597326699903202147912376291882671371790563827210619460601705182210616892946166952418209677761271353581874827038206942006748461589510341759086448432589806804049272953868521964559668010734875410057569515067933363323220440214350229761768928468998681752927713024745521827748665877947068343406379195864003199087269329888926237131129916669147299218810703243276696750315190451099245706813041387621155629037916110690196457932521374547300444894033485431174707193280167125893085851474929960739073291507921002431191121632264593298080069166689017113205980092562182217809151216039238131487239790687117956075030965427840878267323384321250610373480646765428991974678252789457135369734503756364344379828447013119776921501605481440802619877286062778158321767397488243614920489022829484285134123869119962026280351424813371652984345068616377567558349838322933187176095209590200927581768487747769621700001425031090388553499033367752118946328951309526942049129637597405813619509095298806641301507801726337696978740405879126309732296466052969226173514331428952452176826136920312550099812949107057822352167159424479683934604936321797954063129028631171371222877035728487984051654524136922378621965589621256451386284358006611652952088109921067807288242970202010923108476788087625763587370300623882384769882162643522155094771940917738508171977325756898311951365873663414443224883524101551672938800226253028247113032744519348544862766545979774685967850584242415639991481701627746721156789670571921075467414474517244073687030040438905414002928440352828960993130405896184781305566742296922365316021319781069185228114541188513873599805815634432335698608567902253127974585770219906268238784236134109685481108946470252059644070839134212122831718803714258777630411045824687186541204150019416909271923576330001879483168675567441274277470882779968247263668956482461904949316253794837584386090187387224495255509804310811855367502340309785748459695932816390014518812307409266835847834162069991460817218474426372855769573271562808689175106470991302679400687326793870575293085961726380458312857069016788141765976241702558207463266445135115303767939420731411731738277701590210559022412014537086780473399038537184191152146644408715830715788785853516404041618789011943316423018152691300502464988033865626613819822214743688064193079585735977778688950359714815832428515753560251430738182430276599494469860069361751628534395403314989295672346151974039893004712674844962441875948364759026669319883706411504645222379128412118736909249330592001260482998740395105693845334950233353046403613929117115113070318890188639464350207719461839072833178993288057907078926450976704536096131511584463325985209212557858797836232437398747851043588035676012752110792469435487202696349241624172693143240836936988429671132357831385496729645844669176988794986219234663915019935366487852241985209937462437909980697459117437354540458984828577636536026179042832373254982324209338060562889085226956200958812472865884691877478358960903670504602466645733147597443371055902655132007184431181402139517079510203854058908338517298732424281935991599455406846281647522223363851304460200175048217531125314158898745287767323237337669520502241066718381654788521934071369157991960817737417202852327795771009412024308535983680433490632160461321733057275058302460906104495401760766849982395062406412358262829569718554105939448984822036742864158443280627654447684387816584922711128189924094973325414552863363929445806469134915951347563909567373792949230381891853627532345640393987545583613299301751382944902830201587453716763755281710777086325330737622070145824563430008099825624363392207151682720352165874446379702692545709702324103128918374657746852291155350842249745526738068743093493561868444668943030345605326620595901132757224831889518710393075273221253211284031426495251883456985243000424924364784062386870449242990634833896498403298525770710949782339028233666240581762806145235001627035860795939687868124820970741878392485044985062044467795556947471693202136780641799224077364973973366897447232596544888635902730878129249987039320784184449259547268759087337774953758956338432107304820811113650266194280146887455083767396206894551329461413588036311563389110993842762323835586944193934083619009659681829776552791139063800750456030364615261728748913811270518577808657782306453373538705998781778592936911612231066972732348059989945349079303031220435420859214995681178174206013168225414477975993610124219656963163038529641405785919915229844137645779569245966864251832958951549583834934986914888207369831921437716013203116015685066476032085308211321577039076430174663909026433940947469138819097723876273359318366553341950874424833511682073146122188540828207371069382340411964999207942100496403506854983768668272056807441357557926602980744599210624849621746729677999064366047349529990405734006690587433595346996768388416261078906972010440344403744030356463058198816838128930474637201420589224638261821095163126067428143801896859143805024002378800777237288491138026459629987505205051076299407645472306047517450084379371281668340479347304255867791319177289482713801181453001119757183678553659153352983952474944697945146371264786129882161662279250900004425159245824418185061128018319741508083242918283324880463620660416464815875383750027005738654441444513961019529960507696713027129024411357674082584304271707363184796504818066734341450315787283234114974639015326503251171640897050615645713340392943827554882976285927185546374538070935202030248761780831507162839756386443106600848213468586068810664462782602844016508084752182164927265482525851507494745535221515837832924709489232031694497017604718047290907381760718509107700764121813576581068651703777336442504637020267222316939968310277089913196660185969186870948081566716053137932004092885169184495380529371319012275876726596206487773405526465495044194269757433151832139279044204075224703013837289318784766645012243498090171805432526251205023536455005076897762444160300175294308357695889382554493570843938049332216394051883039697245261009810639247640842488265490833640717577754439296800825784028340799291739418494255254272205566650229046180436614470639725536972040904098094209143145471289150591427943920857379258513732300352306451109522303711145837525858605710954982634188749796964836952342063933132778989195072648767894209367322653661960699847732927561920234500872614574256553681820920961032950247967084110013043591160647443756884607416939964243063669484262742576533386446076044152431247302120353817324405939189768846400272488585361867924143352341769964104599113153284107579023459908267217102331460227563317301873047057803556378395946904346997268424079700960733471252479331297436488755115855701858459239710708913827314805632491373646368805427987367445240018582253201960226798518298050559488304516049488424141373541102856446136136908561659118729784174653232481238717210280312601654193800593537783724807080194811433882294229173306903303190969491721259063563252169912750919919235960322779563230328673561355386631183988257754354709785471436165874622049545904667893062218291232972243495799412038019427461130426988559025078083319866933990119698720207183715721043926240822502725261921630926575166367917888500621629563936951642360483256271202057940282801512645915140607523449246141281441639510962361406556502074271050556391292342761329643080730052170460514843673579018838982288075150320388190577067334697541060886857824756093652616581668593208699743292049918317493736179650624307957885652084899812939164899093586187848782006800600540544967526436871870154125456779067161167893762749348820037464697219218126242111989394317783946631911987362989677778659748387457897029651920092097870223737454873261495689916067016695709125037922121080977073759553137132791386979896401036673374534142483783913854401438873144439669233821516660859531625873914710918511886084521544329763144841943793174268712136212259485153720947123435414266426748731146859519329659348459938413744906265135665917339404066566862301356940051055142347430299194284284275852451325013423201659157196990194559754136659980489508796743706007172585002986323667443063925217731848807480932023638510674810088978375289809836400052811726505129966566748994146885090604835511508423068842102553148795259762280795057185651315954306640281040240611961680877747523112564469297501241061141590531133635908346695148801044156323277566553688260971240765698653876167268791619129276531201679353720540121755712671358407219572930350556069412440235615466421374259440881195019853916926010702964624129546927859091476357193492956954740121105919480299804631700689721847435734395341158310399364296926696606151353374565038347424651702137136052680629731318988483100214844905116606987292968916429370577699741441236256242508490983548602309108540736157932333426307183521419439506063563435429214469428130709720041401212157445642793181235798687508737846150390776134433014041467372374555842056366302321137950254719545820668191604929369237127504347801996538874291870797978052988333043510080141374662662441291859236845558702517268236841593661933985677267878196814020334332436903800214427579161976855490540559323405834375597280719640127200137135524311727975731454153700143974487563340115341085296895015800598526133472252784257533086092859271624751339453252075009956807069515160055433417749889149399771793153060728446416208618489934805441907196985516437108507246461240739688693257152226629643451717493413328077143740835245621248004067850769945647649301147446375429421122466643926410161189520739726941305655423164561586174295875081575096634426222521353652658130774235181849561430489842247721868331253059977771838815668887697823949254315213271534996168398621332469159430241028095571625389496161354955804397803091862564714128801394799823126688240831945374843175220581640851119303873589324252058160143056509323629655698783892236368099665089577676425011520433129868463682845466353808331771388144656732777085145556342607333835976481740045397288114483674771479628099660049695493674936456448691459836557659182729663363399420887205124598287333733299627785487193638315365394851928404653089531401353150931633399358253836151346902075138724211238475557716843372975942461175446306255743789497492355857935674758552335538491098342988935498652217337337349459094721112742179976535439204815487868491221601359063366268791244077054054192832437307041640015662760565692481525831352764060619501151256106245968218903887161793541682400035684117799059154807171390370447595426946142182408265026327533747123231534816033447659542618235225100357945994928366323812427335419441738194851506647207230382562893117798530226632688036794925506860171696494973162432646708592599251655729647116592736473402251897988455036473322065048196488074813061710110966576568121878263349371738045550022051562606494417134139073010959563444378374411377400831219086081908696041815226968182547126256296668512372917209080504971085711115900091892460711553684963778689894379389140229897384279345068290293159067924369929651778324041466277487860951152945061461668649694445454063382559371177136356999265506362221529578485454162356566423991928322641151230096181572963242430495611820106530752937886627888097255050520413980968581009545684066278416756942097721809405261605045453302012153628601654121391214103043086915000033228589479096289291380456721716872899547058773474292221604364965146435162058863058295781777828841979276246626384144739345775636155320843028476517845336338882404629343927231696868308590753375804093090616827663956066369676050350742839995127291857833106668394278405032301857314459158022235949620895301499412586722161175206339116331065831910583844441486600673805349751887239551072367948531709666927684790082115926737789677885762424547402928653231874421105851986711417547342375886849101205937424647970978371114659771811204060726783494758506362995309555012570697199303264732169358923101838664263203063534205577000322411703497005589408620676006949838191691781124393973719123299177415714069928636113106412731707242505436997646135954785736120739816915455523184423229444034737021568034018100447576758663670169163148450446366883617998031703216296535584763544919361152986689186658071597377670192793949624883439061653743268757697765775720712814286803474503749917817417609171023214597402988675644270994948377328963861298516064388726083764947552391035921082562058068562416906657605928987290024157850301679527831680702590463708237749906059869029004028381694146412821796996643690013881544237689916253175012729279102290673998266955271109573608461116553229745174627351696809304246957890643198942261873329623989999964809980067477506637784316346600974429187387394730302718483452274177965496444577073459339886007955577265122341482609386442557463253190622861541804926642968359138947499839596927046683339454618133906043779719597303410491170312213096777528113216549570947780972717265024315668533569990846064544851717294875231163400554502251392392362403910968163791191973240153196010529036976835709780818373238462507810509615401509643690491550309327495147384938872917937996405348067183408233434610691197508948664667813174112338482349009009031340712551233990671949230222357023070167372766750801494596189679715169309401439975200831888766909294393283198409008355571215998878999253643610729679763916638345702674550877876226276581437350461219543317956502008451655423414400764802965351799616286801301440424746358587146427139719088481697294002659503220237224815987821776557116507411289674787458610190374245074791609011708995089582066734968679909902088167011414641721570090724539068813028080596638554911174542821125120327837223634328382757678160149438315369356630999155901855542268248422339682344865992499491111816487016778340437525970217672355569322585115968056469319506994123835504571161968815525488293484709941146100460714103760627571004271781072533527416240115975438453283524819389209625417818079956019387001335822731584372584230211619605675597830992518259904480683088826836827806626198232089146708677816167900211065213540947271376087904103078410103057970710026093092324881731328109704559202920829843756191524980260420667692897557104079846081381958981697224090756513425555325785712243819162160883588324356910322244167562152582768667481502043229877592873074079538324851068196557632491552891318317474757145568895837807924088101107289403620582573188433720446719412497570424997124191533026870777679864001505237296313209411220818346695112970711180763444664443610918990276897568239188637696335681817903812982719586908310750313754856499439057339770663998751387859276457527729987572081177904585768589020058007041822313611993310719127541795296413795409405999296091544189325213388194902652998389515898290529014998808961218065206873316958918845755627303013357503487854661265328259664607938289093296651418550949343688890328122913724019693891415304810946161197053940600935069686673676908560076015836955867946997263916300784774967135824456882331712410325530863256941113452255634374059952029175892984396288668618989858401902091039172259175933521994275506595204343235144594971730479620148945153242131951520964079986599530956409221511841324673611100009240413907668855893135804652890728886914443694366401947583933522401888518382524936849677996069082530812299285450573444645715739072356751058815468152223249171082874234699978520641393563097816719156528631446615906066229347244095663967066108780478939185522411303750203119348847326025710132371239161185366077778084308191896591933737709059840007350509146046356299662117024195795490198065428364356062322129140557468905645231650302507029366624037583439361684191055007993681987304710761530182853010979898517006445736492170333766215511499355053025588367812653352112367293042618882317411547742134798751624462468348510676398470157832566968635549521125492950027715584608039569526723822521311357670241260348556256634335373791978296994844958228882085576716025255562058333635327864062366352204382001242253650143517103371176505750827368547896047418579073405752506239117571397867749523110633159678530473750367467210267335214653040518324373195885470759079499157980337019802793995025030481675458494578780856880384565353159416782269876652444846381953247123813481554175498754919327400085333476254813549957022957765908322612162097699651624675781255086247394840674891231829599507817069022567452181337778308388831706386588431693753873505990676165120429467438033067763652036221350573486193876738163007601845709396669378058379137163207784986036722533767032129449660321744257422104388207842581166234922878470266599768359657984168978761623294548762586033325062049671794695176217719699834063235895685205365722847640628867862367411949671509879478226591365019303473705464123262353421283423915954534456201117960318680711873017712651183155181012669141520842487330403552889038192002719997197486946972825632345246870019845420890691242526413090864256376146691582717901289301205567269802012614846212381396409442258551511023013315780188447843089058181697453500411123689361277743992386388617474697767821515756570264058100186489877734103216722856304766316486438952730852321354250283796344887725163873872049571648688572544868008889848708908617698769041294584270979805441293820026061708478068415908199130019280414227737334779454091250641157177176965301779210023484585829265192695181550371385279734828296692703873430185173219058199509052064473401013865159545127980831077730734368540777938493845528721851298389138060995580996250778181699096532038198011173552191405359472633188680772992494715740744554055393946954365548357898070986145218690826787231729390400722517213155508602379823035697978043154750446921495423547267875164098514734463853686334861341185671910053058547386464946231282749972176845785516160897626608687670411930809472882473388401554846803100198178172245151520596837780103707313844783454334314503976949374764584043340367531811578814620686697184640407376962738354568943808882303516352836405375145116580130091127367348592616965390257235189729750756080836729625412500994451608856012714201397341431848331736409992049969662406390809076902653777189534140719391001795906601467244322923753107568320425399395972778751796156124368492070951657325327023177824339690277063715427109056370509113110945139376202431680734138250018389102268832331130617376358746929127085465509963585491559588145287152605345508329341473655574147478235507450785187122403169555756376156088499205365202419747808724211695836893488936271830327833956724391080848690501111727267875416360199472866629978960550899787593424000625383674949952756986119792934639695740914238621363121311230818345881136751024032143774702701885499524649723751307839568061420627425202983353429125572874890723343521461268518074698564738347613762076825504724585150353255403088365780382019616901044009591420978941615265024725230952876583237814144080649310432645243366928948573010066173609608458782821364986340795855551194189175908075010679651192601545883182227903589871064231598465309755615149877111797124928508005454815875139543524131104780583140177071079636843271356139003684788578565670291798139643866141015287519337346262464393947591589383660237927131253667035834972284414780360404718775089351923808305723497438637510631825127982219930130573388218041212936260618155877737393240776111783993021221506379449002798213347217084238863812324432454818641612692123789433341629142456730898490602761603350932379981167047359008877329833047574652108761229252166561510307678019743872936979271040725756444872386287785941984676892743972563860799794515778330452491793539688362345041453100575642051169447339549304029940754201054645929837100776449094214214680536829027074061510173388677833316139474783257880497996151414637098971160310464449637283811641959102799841710397185329986384118445369511824710596898814951325160135613307226172906231553074893086085440017172768171249381333789529941698005113892009773143471677286022872006279060790552413787979974131850187595725756097092481137850260187585332413676833234717148922725207575939715876074033435761061620362024586484895045438336313422899147913250948539499571024486013525454951960831662490748640658871796024112049183884887471605641351490416238761820962545768443981772010115150010689734441004901027918672419144634875232578465691263219823152168908245703156934996145289904035914128867451196175139281215819338231756779830330635028843415842346435066024632626748291871921071508787176491020349261765684429181031328020280488500447369622333314192046088561128561595892665788320124861623492183137358169405766642282716292138085538004858861658134285322891493170723294743681500626751359070859719033731534420687995808816658349052537490531375418073573537268317102719101261305976850004218591177498256114721044678321142961920099839987990763231670991453470239146045068503981404698547875095365347285584192301880416727250354328961962621689789210492759131610064773389903727774914716125216313886188863991220068144821283553248229920866831376491470623715383575949491500991509244307201716260515583301453053645520524471074125326309833695052821256847257721944888531608113885201302259438876357748962437450444821666009761062684971936937169697802050084653139373190175020914312113809621405618810480039885512533457502290106302474562267790621621824251447237310158071115528166343648004783364240631403294610735314921120082517591827747208112882803039906438367246390603063327905918005779363172395187514296317673641748867043283152738591631623989895784121394442894820552714609444729084521381371006299108255971089491291412182124964129316104860060624368122141164343493191362431257668371708857213107049120484059390218595851762467520821350950733617522189330747705214686097255261015092920523022475274361274874669890151509188005626762216265705145983421127279121288990957030687975776561400020078857791972372911218126601595652497919278991989323444836070489434578447616026232298727629141826589951946332480130133230719724682058915365427214247314078319678269200256829431627466332088957897151917846152116636858726799715941988293686398022119027671321871405313811683314620561256722834911774472005876734804891303264772147929770903375251801632733751533216094129062981559139753943571443970019283358813034331102367255311756213754245737968636574322706848621426534996471828676919699125937676092287856661454231630348435692288223537658719794142100532324616908607063011293797229034538339147003363886196726322062232926976523976800546686005530694612679897557083047773418758549807197576903144620058207776189406014083225878475684121501809382415753036331827831409914884140978126347662130919414617728689252894640361432067131664469358428930006754756910632097416949768647548869630477145745670040123924625200369969637326181955764431014811142798310503549219897326757406758774923388669492022104441686479454255289570847899345408491284986326488267778240805065056154097421169863574483967030269240978659070132224570992259367406960782617423380052022321415597155424577358059935690151319874713041511389846113134278023967390457542314065606872962878990569908759515007210232710533910571897838863562471395848793217222173936218087884441294751385469304393643105117113892750238497412503423022151568677696585662456755313346331410382865800718092953702066361350265493031155736118952899329721211401570459026063561087275314722373909114510134291662645332201047487490538701117980593632497908465493931369653943989232455141083222719903487088862398138652545562265207447824094384473166813922494545054459754471967730172536545070944213883707328267617254602982265942279330971413763904159249183362923066965209799050438436248587558615703096746419712908029051355900376392635303020183897720963871454509288031148595667005345338912009642464116559669819607371704293895432324663219224018610318060899382461668032400239434999939211422832115522763957662388367685586453359447377629549788085993833679250966534629890124001806121915303011230437458466371870611881140260456991893193792628112034805492382365495168023775459708720699728238277557023713719266360043746935770735656016274455138109663083725789646728773613907590251632848832085401970459430338909283850771500260834263111255403069312591913072505072694092182207518436124357569713975723393780991185411438805147801520325704534449444465303077538735823322182820319906355645312264121233866851778865838238833007957973713363314212394357160322859171107834477902270566206802732680653162942755143778657919088477185373755823294680472543685434630980857343531544459664800739751068349552542226894803506320690613605560812743371690471124501993195415593520420847781876077755532165918998515250644827067273981762452182842763147371171488779632166368854164313280431902268649012477259090029153971531259420754498561664027116401880513976519392227149395406910834075492078708131080803805792224882761160255619468797028052094054096100310649199463371499964551761361646340366665001291419847401224758198824423666292812606501435529503965603359692030719875489045104890338393707924036866485877943664447484133119766305382978641776934957111238090040830945010757890578866383220926934244743335224976183596353912372549178958576400539912811659387967764799489901305624368888268851695982247492327305615582958305665513518178313027649186220414273708814204590287421084301199941663804144446188627224945493172194842992837883025699126575089168228730478931827452560571677130561574239214421649063378266331750779232874784229235028143582796866879247788779902107352528340024990214416651332843175320824277618655986930089546373317706687904462773530801329258337035771733936781283244921804062971979163995082011610795405391311789130000910983797775190669099729257680444769115492347541218421065457103175563109807560805619026576446103662231556265526523775404267203579616027083739875332257171169919065971534499160110790411637928902865377996375688674691175955417933974490267529540013525399903508005123931171111651989327118608548328496298322418142620585518534345379315639850201624268478750302008837319750604174217706371616629510661551178965132405476327792845892293187255710612101123540655614070332932629353511034152885036440008311603606019002806451452952256587728545234255096016064337575820285003706490745727990809296869873814862117628819464079080206394611414937160961258652530095312541108857411592325002450096061794673709503347638300837290707477493532234383342890097113208746241730241000999758566799154035102905920548843114127208876396234464976970118638474669588191302379276280557407116255075584842792062922327633412845985725408266162733612639904319214866105194628981249381044358461959458262952095422095004314490470587006154463544926805773691377080886964800644893423932795205359745658269747290120070247579522355856312712473519751383668699893680886386095180962176884565743893920141283151411120149123379508756087737685589195397653865708011102010613142553226758511052490445231395589599042340342227551635885867270075017248137128930496249119651762953487505776003413017624626826729738406219513995657497297689520267638671862149912164262616815541588382483605500553685692960843566363737054825635724262751192712988573276811505952989017911359275387131239851472915906650733891435514840011776319317358324641397568986078837531877527209180900210382990144687145139190451198603849758396136073772872302379062333098626693432867233065911288464090553323041363159385701016345168424734120670239223073690432716109431136000956953371679884370832569313565064706033289438706942608095452566613613743547930413119089690797380548101807634983253249412480925255280040961841419340303931382937362805345865782992650298410792282245290792418268026006302079432173018311195282284794526374986791016075204376107421340669101474257911033669435776489041301893771565057561724047465147018037472473226300295197095674160234586853026611159482859208994890971468798564251660774024251161223092978110841809391612860083458049887187572506829337315722880375597730680945947927416946545618537395410257349259372569268974181660896658600521888930940577679576050202102194554593250165977022575753519127482951524272924480867967093153968997728094215237820037201070202412196912397706182673595675945489557545500915228652540340750193154419507283083289372098039719100880157608045628711843367671552297321804128510995925406135290009972892428512322042356348047238205794227914610682949671936307523696287907534114943906393470254020583391878180040302125984033155008694166249680455542622436361780355325529244337834140639693040741638661395818489332658624348817350127319543345026798386187718809930571940217398976761417090041785721624727253145746552958971651240083514043705941018626446863353545230024548774787770983733431329236473423156802604273023690645809295332418076377739048799197048806408888028980571369768774257170192114090385074706122111633048331458268368086002860788193179214987007852707871742994239818459856741557656576311094371656786790532339692498938714021777618305297153335199329460548165051023372373671066152021072807751777361227377576806722153216451511637021966264296676906998747627306388001791336335183375290188230619819875664003384395041669667864307271213167168272076402124098569036447824051163864878457235821270227476455192237159248507989164083214665692592226089643386710669986927854713230635747128794048527629426322705546385870732509650891782817215959771306902109980175670614613040293230784388706530665746860291651337397212421272616611616727758195833943342123101439868082567065915821561976967361276531795554245440003908020445826589862976131179787052586649182842599246599986679041372220659644676020919361088720070185955019438853905250941090948413038020401410214024566367604052781465411431657019140669155045690223479589746250177232249054942398348729208343676551439419492798535194160034618288790867148830110525303032501041600207845513828308060540671170689652723324226390193303939967706373391883266000960697289203080974624674059286747314075038612452037536830464594007656339920957691753043474817781157418284751502868919485302128154682537076668831375153236446880005732067872351769532565162993939857651455499475217947041122590024108567820303947131375332779343024600476291669807177438188576038059185307639927681114675953247381028468495666438629204113938662383520673409085904503283378935277159110918146112981062108792881162495190496864970725145476779798657516264210057093619682757975491723127246480956228528917389556309926899069544303699946732647566020001754145391657371091789582577222905232634748025624475590814874713326148977111430290865319537042909670250607209471888783175733363463838652135777944531623024712558162464309899249244055407975867146263018927177165410913775999032777851960587309658869878524366345376774648155892613619563613234747670871435626529571628433102103284672037150453084004923399751861647977594839621574326698489416767981743680112267811146754613755192196900538003259999017057189074326516734327711284137644598653099299939598666413204208748867238231040722190670555204796825678949731682209905041087446309548900476978103519245583157659618805720833927249042988341967734834496001107965575883942282349424760237437818385535514991098358960237566019953993944319195085382657503580702542501605007162214236215928737855211228339670954304349871668755514068963463021354952534094493579972100073677804382899293416287137773848826291562557353659540996814132774978982038081254799055757040462377789037393896848978522752478753569748651221692666272415392311435237180325384487843327799256421943151988325698263617593586001650066763312717652794551782262562254246874646652227355747321943722088039245173365005844000129262866986180839975593072113887153637620483486106147115821400979243193968395746700597464633821474070351986933467932966193175192907678426065877791101979964036558367444032720011585592255662266689743903096427301894754954096363574471837725608612512069000593260090873902912253819645778428780672164810897375374585884568633249196434679111101686255485735212039922747505085679541777151975427639793666264068550762895095425739240922085165532977696983357959555408467723896509924660192667144935712062111914785340449522325999824519804164037129250805208074423741787762053596506116571388595604632044654260111524526648183985646331501311663704410426939112265488936041495652855922227880081958759482121109711853505362209617254291029777808096954423164791128401056969610448336113297469337958499993243140763838701288411090217127238970401232514591379568491737517602163962136376271841235642753174855953815290069749655021552037203959409885199037099815426914232210279420933471955897872153219872682104546068756495079661955919663118804803030255790933646641203885871454355448595760703051824330005988963347368648094004542303219481261336620619847288931788075520359753728031545062537417763762196548687472007028555355312376552276180312439406099210376454506057870968974671891374944173404911605851944854876666097139331287672312980556697576844552162092414985592141153135920561114436544135865221554475132530827133541110049358952924259471830383470941119306822589415992028132329465511554935053926699821031578424721029138085948647223102587909800870850233076048580771885107383873168547432007042677228753412118417770562610305525476119551019811110684631044923099766814912996815701733396696791868918576228222423981747153322088050006207900238909267706039434111653696445757931112667406672086148377624277853878530023163336397196013732617638136113902315493862499323697620312546354453771518538916839476562674115997819940075269961369774625426718393703707886761642432330827352965156000017224347148084476246653482261214444272873893922577829405292011386860221563299261051807982771849806268090512446845686220106383652274006509561891673077794156045432535099611058257591821341338873656350010044651298909571430652909244989725838322415264560319245671505096365841661706596384359213776180967754338559490447776407410257547459849984616599887922006142770206556703056503010691400423102327457536927920122856841936840367183170978680512998174280688909583811713163510450354753724195955976044619915094274273670685326855926095015028375584292988718818643390677212506086680943935015024980965239150627589519263340950951805208387323830466123165233912925321937316246061225844667022920963031619752959341881779988745596508112606711416882682777474801019554976139394947361971217610669085593472148488627624815706691904535319151829353506938002455893776556939953451376588308511865967046007192106172316228842194669141113888385371497417274592049174061244936812735886397200575869543776202600987060535735561493499495820376043126996096706823850769096412861443757045465235660618150761473465853418792096343943010044537340042015336077337881353929520691111833008114743349948054841080090819072438007096042635954036785487337629453839794908359041540287953687233189373078714649102190589215227891996712658135934589588346656301882749797113104604957603479929801088874223558786743508672458572855171049081683137090921920587477639066114861606486831460880924363282037848167260483311514540646366302648471082698509775485359819585458114452443911132170769260159613490678790712149194593057862244319349282337888040523484065506010485972941113264420255733411953243276817206980700426839642879867505567704871383798185849971385147515727270072857685728045408053952691854459206411785896116671199530935543163666290531710048104744240387603790866225018368996283770183221194488313910341226108555784750835805114287991804700026598352996462253102334976354844828618222954328494312004953840773948183055614292078607599601810796375748980838255481967011890488812602118033364534811825150241361421947856933729841475559999898384398007396748436265318078404377011238023254202662182907130106424101208973333243929110586251473756030078432432794140403972952004486535505587007946232719655783477959158698603727571444451027476052496077386700730310797148120115006153662294493469533510434168992722887199884209927320210968521612023000679480598803938375068459829750200834061165684436337757057690551467974488797218507516298561889245494301195944698878825606551325810620845201433295142466351433807343011656216277063345602920956353972521523215750658991200811432411625969034104355377632910218756885774402142034234502136617809896405666911837611571949247621146808329959636152293227953808814547870698105976354746004702305420525375799662653584072904542226249314714141182801537607085283599483350970024267160661523612694293437380193534814101289234876027889953021514833748459607556063725558908282241910148152644356324743571276566774653280804355213974225546823671844936713415522568467698906935231301819427928911865701173819374254553220756294515104199031164003937370341915872797810863727788942559468354456161325973998610768025896358731418323143469403852008981131327373715518881148997377287777348340955784904690484434467414234557544777203362368787609809849977428839828637078579098586066343793485537149306404994471282712485937863206438904072636373311333038636799824949139801085186889826417767254161345276174794572572126652504473925167365183636005633243643006678347600157086873339932767323099693629670416103415396050934114520016126433511840302886539549923425087073127577674118818601015052364077714870855901844012513554012913093434141850619491366947841376375275543828271573922591339774557964670534023180911286823526166076586852825495649880745368763447627260590173154890623449427781109232907093725368850686264601084571361347280844799983886067110840511446293308246625456177248983866709526506556546412801320125568840854965044794305371885894663237287933755084892430606304981572711309262295491461218512858545521801834161996262166196230833775391359806984983938118028534724401164522733257379300725163044607713735840013671037432457750401541318942013776792627837448476896204679430436794962023859990720584981570917065449136259851459387542439362954787053071466801929197891899693337660138105421157753398491305131575823996421949533624968628793265994514732656799961053568934028126495815944135987415368794952685044624097955997699775382121321519923998693618261582675454955007176502773280649531618294404263578182916200668543972610991546745174116261086369719058030166451566730679596250689931181459214864707150610417704745942747987328000650057903746433685369018631540783695380209907272609929363422567010416420642936847058103951674250735029472690020304837327360671524802347359763743215210391961595796802166522410011094433116930678451918299235455861531110897698432231481036337363173109945077115500963426499075532144044258401593522703446513630795747001178561227985171933458080127225001126655459978656059460174415580764815442408966257145319336239801929256698120147628388891024629296499677254773160364051014710579021465820994309832598895710511939991855128833566927280370146716396984736362172521289421409214420804872249313882930592452692075733314859852220609118311668086392464850309442696038698438317962213691909668716557439983850801794263310014951806606034928388771186219916229344867015546569806984459394167177686987956532963393098050281301443413920741078915304149435015383439011233849541540596439126434697412581333061683484045411424821426440805407024721872092333096184894172758481377435836399634632193190602185972348788133352543702041006703570491362713855401594540249114444748598443565074981129373076527455393553654012399842700063539972542209997495790495872952958149704162365582805434876638674599723370543445076105790389958829551280157450344494196379475844260178191189180319563286272403572113245008997452146005581026602618730588432757491123775380125580641197063618239041056267491534444154386500973452696568394567738985052468642159678887583988332391083927974012428871773414346584475999192972327458005634753025889133656899238289628440009109028827565173816195088312381388666391360721867384887598337319081496289600834335609953030348997537185086856703921162992992121659034262552245428208596954199415465246769757319815445077912656266041964544059493585444585730190539566699474337412820461310335179626557019135381050573735320167714993984522816169719638666958148209858136953563483939125220969930168291939007176408971651434779164366545615376070656212886779730005284627611037484521644997864968252815989904814564120103840039384816187988773413529017668784749780494146668693677877166303155053715090865535828473171853832441239974558104401747090104816607864203960280770872545540105540774620195410713174771425635229299924293342411522364419587915134648646283640101208177981840665519612706427430637897325209140163892531016261342958792715090371674177657379967983374630889281648319381974454426646539908016874741232567475814338907653466384388323721127869327217733114479704381434818655068901597156312420885926589145819766476834003824320990684525692741791663487503704752788612578368382557014359093440286270649852863593549097380686148403128501901543609068237344628658637382281097145527742316932165560900691138863832063258276962001983534212119692813097350688429310385679411558810024724500735862696154760406960152039461277393332610808073985632776948952119284302800092094329658804350830366245059769257047872544479205999106600055823368088474887065345897383239923341701410498801670649861908021386983038465306908244285565991549794820650082130851435100363594526918185798481364186356575292201240893114678206968107374143266055032973764226092423163226039013982562490429162821108691631017906050646080704867725503972314263076803756081413254056141305485984138624688890878694505114536728594063232926639548247514008602757126151066225655861314349411193846365331182664365509031705623489545290879101595439717960514104041322972301964336195264065254072071793264684714888338130337616236291239614578926558520607283435819241713180864622149797227975748735335529820005763746073038571168123541964961143024245268400605358600945852777741889253920109094163801483208228698537166717383169804462983284293527561227456616524445571755401301227534278485241172375389397197968504252423064095066716880274297286137062029478811149280342192270359807079309645769696065340497172741912160537273388036355083406325009993066895605863005133834254773527621988881549035329671217266570242063539648308357598788422376624216221781400546892840982333209261516168551216325480502779877206575780571007526201402772853991449030313260676090991867913892140121265978167813642409592618269357654555317313760664127219927637095907161987172612272373571345880060989357012612403606584243870286794555347385584283769348276751271287170557295215921046158308189173687950251859548686340872224438403598628319463309220580523051973779387216374392666252377148747795909545406982424004281509875322287252321400815696786685499734253315303459590080731409566129482141206415727084953265101355772775479742040460583873675493370241821364261449559641564626557358658068385924783066698625404096301771566694902081668682858826988132700761277617379306289719192885355387102397200317114986248794595510452851771198657764147447475048624154353203774790753388839670751113040090454406497817325527824986499834402873490204368055523131816513070507557028770769796107756703173831348366332645634939698481340231759074674062306645909583438227510938674110785972248244605176432657794044229834595062278025948778963521625333538923207918109496092861444073227716186645338333999906509037131179473718108882363283489726665014234702585378361166490209351049518077047537142920829333493332264801060155332277223559205640994003221922311198048653297012283004034995194442051138332480514806377272417720272677720867601122479768537511860438562168149807311527440283427258849735958596807333929375552597304644845676564309152308735761322709883289795066240356055357582948356106555458758651899357158761747216989291981558776655870797259033796425799518051492482426085071582866438048127078896162959800768465004421108557169695546819715302896826358675019060545804522739189627651922826602518934783927532737274307824805454774471679512869982703486737133935170199160019732321735366744835013982115296662224378801483342941171078094714920223264113995961933749917982062169330546345453625528199147653901266854709248306655321842475205349776250549615079411345734035382825326349113905395616473687495115494410396467467245247040774093750139257905607266448859089355043745022795782406071085565447999954327107584469425547320746080076794260211634107454004753163902257976460662905670295247242815372214169728744264944002586390988850975407361362381404934218127058636688338364932138439885920729401681823323324117205701557319144295692082171840676484949841958852452139720121465786583423349655724648501635990395743355245269202955558605229174664161519384764905455317790683496463766440283957812799265956189525544405693322044646378665110589455531199995133757715411519379028559993628866038128046472833894140254056088989443925470866944478486723696694098484430375375433213225266402307616003309976439843310720356683591788517521399697806033179705733952019841730364378014515748429215379531231115920998522247682456573729123827915631392732808102038356538152596450867481067143815266360139055327049472820996479447423586874530844886341458444792272016953650407711778029537887777245777978685885430148430851396422896160748638380815073895725118448936049886868456426227211271974320590051263892578928138217345658722597010597057010025762964962855426818658125319322123529370560927427566444053465890223321403208996000498765082877452477059936881879836879242046895239924821749761356372851275222306193812749236527777416752838185946663738936911176201749069877746651923098344353616945262831671259029623934620601910310147507840709958161545467458026895067746082236888548554387926481673669540841532051044876622875770298857436920558830442822178353457937479352982908687216907381259616435307955330115552726059777893508506006483311315727993307632581693823797784328268513479999590696361683924781917671175256909347254920264446695532595678093015531697447445182902655030340973447499742804928083077579987433348876300117489105366272864872051627446003172062013215226247369603369259970642215896042446068201153103782562648009192885653914500180855570444468280088984221189746688664079160055415578993278367992486873111049158308208853547534158843418175548544657353582980799127502293292738023087087108678111217602972839581492141428404601182454018892710591311586960511758084063109657292050864145822743189010295454275974575593711054753920646355224075073096089443242745832082837036957972366767318040082889408944335193507555995776939561385212579667101533684991941009724279845949269330476887527606548334333858368090740440531230160850907584837262679903018170124392522660135551409391568440271035986544443768704121267343492427654896392226574041319952045452473259495361363603435993975800516134860573516538853491468217577691158580369978010415931110780958998066886185081653480068578439056464978022424961667136917801018943810436382649872543627443559146904329120344139485050501883438977210001688129090175197371912911645150728176053091740537257810477003578778838550819390621241495601252118248120292775442663273113572418142036157672901842781700152196069324104956807214149103562539417026807109987714807641385181622946745759967507846973003442209717283958605917605098261982645678997064197404292237768630950797529752072276779106776650846483752967495472891898542894587079506750861310898147935962998697217421266904636750930884840172731454379214712856432719195742032754299411794922996989117708316070881105814426522361634146259326386734739921236811073367651510891948277451131844117448625074916520088481104530644587535964820027218432996392747987411710897631873045230914124539684460304634357077291093951914139566392007248985163122206961840758730665227262345443488679115590499383197545342529291431375937981095081449462508861662341052387743936243549531327472253699297537631385014533496104706240175208981107913949336175876559933693671266296491420634645302518511066714076082343982371083260410627622553906786769287618761084333334179525040017704415921424369306433634293867516530401623783926422432853043157631367612357725490785974615330840248461775914768526432774790552971415394908197706511155869851360489720339971185261416717395843020883568968464790435228281061024812532890732733130966315322275494233215995370304646647257363447043994625924856928784800395377087702392813619876676566192435160129398015366394139669528908153536763392554920482324659592886275760482872436259025114097901752307137243809972502070336015946775987115499990830484814446214535058393669721328989642795395314422651746270885281259230318965404272422740407314932871804528019997340499581881726001882762602288701585675746113079205016422771958089362303339212822359066230396584705619623400285935879085266774691087611435601564349301662414070921659702802317969015203940448316885802940239244260162354072204908386539348185246528488955627706503410902273048371428110923479763434196759151648380108477924851510000736870958382864572731235428525888996229707823337978814964588031614809335042138818998542693442763166156665757549063172856600543471598834501681656988318293649906317782919198140974026378710292506175810958403794576207812764125407419622000187178567268779990764241643381456077671629594437473550738673552919051802228677979461563329379849072733432963502462269248513877148680926255992159774555032607611074848472507110648563663367943050108773245705010809416447235522801510686132633003119349815179378756667285893587070969008078710405041253408478322720966527237141107224703110453910003042008243656048539141643316814304748188212013997374567874356146912614731492552295951283555855107516259030515141293235445254211324211527252684037288250214737018574249637856829146206821280879066326358837309983910261483476289174144788978830232624308618066746525240555494825776633659066907549920123945727059357784100906032219574997531290985910010037847039533006394591417666073550435384197677564376134711277132452171525420739085143248722155034649643099934742321182609960293870118650994351712393324621718106353954385783738547677607730618919863019292177830225477111027454206295106276798767925958187561925397342098785503535033717066938661057115138985031152032489981137248128608668404688653136174285091781981537000793358941146191443368942047619779092893634960340302796914292674367618143697581092339048373987839228461005412574501939637453728059628740854959013199424086486805958783388668942665522070177073698055442574494852969758071049041329280426312814015112470547722297692899174492970258236244011480217047068210451654555244353699924299633240311086748816156511968190738786849668646993254139210645160397148005201888452819636117219264795244769367190450392911174990367911029447202759497037700116424123456622693558599450288182287634660045383619890592762943723982793813207097631298689294239875716231491805546638033639297953873171703948573208948982844859308068232927836856127204627370230790730570066545788176340502151873633364604304639899115934860229746006922303190333726620021806458202587051243193830594756128256345762141361990249277928860056305267614521414596963440263985774376046711223658947574912940777730956960854219621599498988788837407527697118250010887324160166899381510417859754777424730919194815532148211966525622406873829628796520759403019664447220390616097394246975116182518957713425571559890646971674973833881056666605974397315588531550403479068170593827808338157665246714243283336049817455727361751219588719654133281807164686920223935670399202509601921715025602493897333030391169551536826859093116937924158309440259999173723832315469348089931260679288817853082716577971047023558713208389184558757308737468444762099902258502159601909277291331856530406410987808843370491717551762140901310851550800648975666003471084488073056589435279056483982230422287192959108785593793658422533599103353640615763623862043695392398139847868773199027374880609338900810344682966239819955401099624589397306073703315059164045923486516035963258321405506389434283129302301974477798618787279229482822914035221584230839293459842796199200617051781171589237687535671355573217513738116549444126142582764918389482765798727447761834973708156711905411374201605382867379569424557680648127159906557718444830773771274621780124694132422936605654100070892284564962603332414763711210132172533479067646433032722553329055654922024745089525429328982394675161197233279756628334031926915860597446859208105920039645416572123239577613520515736395452920720841270144936941380739810388734519385431723833221156774524821070729185207549579207162353733946797042752145271871165095892614304346042376195350496146834296977521755089260768937227799366925252529219047173762468780045401777815959390819346083376515777679292978118695989419875237885314632625097106714617807501135866805322076450148220507087409991705354405352056890317509935252502367621925445503909011449285146528603078923653235404143312900728179292986903600462855874068975875009958053047391140736060344416361574037958132744482660660939339359692661514524655457692376002476979849969061004676906814602536108205254176387732239184240409164410458840171609373685051942599805449369098924752602907320790805567363826247289781874014642591408528165020255532353753846985809743280749907666486345473431990704860644269623314813222058383258825671400976074042081632803103599099063953523754584514254404984673064908648154555795254572641081046303034518827946524600070794469846691494432507745957090557016974897484736555125217041601935579672944540982013955693562813239470741223962035841411077704291179674204384616548426896532496138186671896334573474133837296983294904507149011057323872077867456335527143666621104682024948239250320804390221689403202941735634987251310997924681680269020848394456761291111804255388752213028470998561757925869874925600081184421775206101888696541268829889016112733950007449370454479534239514553814971827666795059140782620527981940698578059487826436770281406500010606806978542361260917908331123191730297866580395733617847178779023577829970867766841047398440245699791353603133466649423105535315200831718360499425694397252013722427797024573267661612679707593749455798229940970559948733625014998931683429237120186674975113469823488017021622009952191979453548021435376515835741715256897071836066836231387762405456528236659889927632023463255939654795863354806142415794377986237787132243728223571696684834767579217151059884031887253573400779997901885365234164488247627208004052175444047140125642955138801696967658718034070735401179531332177064850243405671608001733131513165667078687037729564561358640091752030613525569081010192531214312006244624173325959295449920042566073381579408102738820412572366717221219661865530359833749238723555627185002166067886913020392475182382443652270452924873285803557716768037849964465821302799080817581662212269422433244148843099832389485789109877784169067966872569698267757693429955455825162286356192309599475670475248463193284360343991389811697737345305186217401014565192038951944399933546464088469306667547207071077215885371640030928506898268524072059575257007156126175711075494106138759374502986500944725316400028193115550072953482970330398737533081135785180587521520204134405323774627376036343369301045123994709457617865119099508706921429664799731677922686868948461217148528814677935913922556417953540377222130425068393307611025744267335816209265880905867485080605804299359988102791843711355127456638629949629531932168682643523198131834222244905041127266513733693541600695973084406945557461584125443516540392650712365644423773812595534450515410705205703058720522008121532540046361421546668455007505470929767598634127244057358027682535443876460329425691864918348908088598200988688238444605890680429772393672662374030094582923120690080416083150052287920329260945162631171901955177089217847036175468325241054398989088655248333821550773252809525901590679996980539353607621645504896139622427931508062847588713200180682847420170303081013083406327509461448728476176407636663007396908279158668065954353569452120071103349322356200312603092606378711836086014378706823527217521181725247680953714501742052787313495399436696882519348289640329868283462572420653367128007219707974095487725901253326038643661980112734531772345945636924352639235015844242945034769402567951268482906163542458543559962550925865256363104631325495536427860308520750362798072373905342641171684620051642680422279915185136444155844296587736280199799998781050284639219229793365383337888221558097078203593791741823705590152656207322164929503501651499865189678602373202080891891205992504168583596301235840715762768567040573037567565622875029337771112399643638334061881171059260241715320898631198635826291279439772921885125376664395969606211235802460217416929156869954851260131419309738726151857680840332108978548973502904976961223809858704018808680315565696388604358484658593408963721750090348288526723739828291321045672616385376190506921483174614156203850838318812655678136920666992438205390007815982055758889724953254935659597864279638943853642216969166977063469033236407289568582969376951198061458886069085298084404210294553718095952054739840578768748386374708281122966510839117947008857858212864205967344372071915548874589664439826583439395284629902576052390844382125483580161239643497068131601752460163951547715374866094825805089977869297742277517166280445829486686587687711565362176092798723688732567302306240183367761822946814395748628088323438673397066087385326735866044649133363107913584367144570019894883848119751543349501652697411082066935525044876579397846660341661490754539839452974713588460267590044672478970373130527180512868751954214738524942964167571116280538846267107310837164852054598889125613500014004358616484828664347811426209305415395356354283966191414050756277048454642627868198812717108171972443930609703046597767417685458234760274939203734356351071549773227867074533948476895620112036653996940735369465782200744452230510184699295990448423576240658787807976993963400630452859623079315758202324968246409973536818189877510184574055915236250893896005462148093529887969340570303513404026763154450114254647714945404489895070273443688417095100395367964489643503832062219044757121240496082587225482423615750777488033920962347339923337460199768869742510213747159283252795669780080266272950422203907842731269641020761410108284778152648841782905459691603709786296275596590390103206716523243839731349154401931220061858330604747639366466557076536199080061146858862016596418259471964427586110247029386104334078551004468756457219064733143715764020040278307465347410345180879524651591199583613927304195752728185353368144395707539160216136617914569078038828660375026223437158066879182184609903455602194180788850087898526714494493568399730076348699720026147318302683917994273276347094215367837725832817818774949232580577034337559231617382004152778838053984859482075511619859602117570423116373800591722428881161859262162263548576286531880239029143761905759693713573032584882271800117513647395040964031714828696827048140042090506946226249448071638978900785326580119067851922589959731923163258511235413275259920195815663003361741418901483259659328038086780677056297502555640133138296415500018724946021023408681892326395623318559068040198520259080466419699209809198834131343785869861757707385766531793882077327502383238674140558272567869706228846834799458895120357422939506211352525375657791970660257772427458347309502692450645397971281447635524051047092084469051991854505066419556951840864553700697816372950183302219641026500670219161737347881142980884515345557675782193024864672133870544282730119393158591798952719520488267990421241316661804843863583023065204435338205623169732886959619426689828162429591068967335771802800979155494479088006480922667611720830301744227417739418083812598810550255390943955116007926399272365601316156347802814662998585409416522406364662095115632463086057321305961369107939794744773632092605572759384650891329847990122532516379644361174776816028572865157237657919025401506635074338086254213655719393177846058755388761366941833831394264399710453089968167847241157519188907858145358075089776381528506214722180994254364501274017589902458212821194217641742006112830597225556879048241257015989624599877325112401819505181250196348158550686946414000009792001836038339138492380474980597863704572146247961975862318438298409809317874773359225773859094431785190497080491552322577690892484737361990461362169806543931383997269081828107307230690005443141665839126780904839602788383770500425217364686997229704293224136763557270011240539677472820583699141106717020385093419773603074447667442884724476208852323813162783032068534722593672413988754574476887521868649232517243253226796068352161391016206944092305041719015319982822543301890116647344152391299886532447585824581619622646239345759051574261465261716863162433223594037520547259030224335134478990532286712240402915259453945373332834874889666904775823709268777826445096262639243295096165504485590166661889560165420786814258007196404996323514566255526408016599694248884868206009083319606188354699272452593711537976059130279833241098884359489712579712167235909265175043983208782548162006208184882106298808591770988759441070786869281890809451179450231806484646334860820105824939401874759875139385925173360834729169145164605569077694043281719579598097511017077171923923771884081906123019355068291077505161054281705607730211559342673141066715892879667694008538998958503035052824998626351188675424747533791544013608243846785914583330482062450763552351424488271797102688846648080477376971322660548658122029800643285238690472914477146498116880300067904438662369697503262210966642610269684386071472476668643609579098908587861746702331296662232706562562318462542197820023747573898905153484617429937133961538678955903600634534468279625160362104824922271426500122801342070321143104659088113456059456152931393475402850713806585163459478081245832984010610022596970768580339131057590470502354549759086556754213050267343890141502600255866715754211358772566842682086014486745365463075987550907221503119994807940321990347092335383093957118307347496752960958472900566628040977796535718309290857503688118764083010439267902205485703413840386527120684607299299171286456504401733491617716331329961347447316521504326952037355604535368957209368195315169688387396647880503069569030189280510848602796565673942921117297960015033835253574828662601324157634329402500199320989227756382515033741596961176802104908425978863861217408823678434880829300168338393403883409370595195201155426588449274341505152082590858945186717773188466423115744815942870238146689579536708182617376227468090061635748186920495881875761267386535723360880024646091050062332417484026946156159798477237910987876808410510748626399305166741536059165180271772115686119798060897952493234889385465719741620629847368938482655614442366325243959529896515905157430400495801691840979787446372757456431004186772669976233765129385786194649892206334070697924995375759256022031458309871659204444539066587981848307630586138431586164148800538417501241212021104432956120430853490229377134724630687010882357476140611197503325870989633122805959351306766864695156619244531867201477874950553555810129328555328459555570651673966039110461824519648714815166724307881165264258538128466718427566378193964437041719286848971172717264965208168416626412122532029604349571005171022160965033566375795551500331022849081678616025618292964206743067356044735978118107602898377967954017636492537338801554706506891427444407351241694663051720758787997793514865587717242201672920855485531193343722186435841997996883348873099155728756240214163323039170617087097915226338818050466585933141456783430144700964170591149588226369359692319614331550323069189586300582140087543401735769832689131654599954981653024436426368372703760729893798681005370479091683881169745141814348071262944982068369155460983506959911499343305480788220359086907150800010050336595819619094870039512569539631712864748164180954424245421976802862210360510226234302336837773029731777606416003995584344773142416956521655460251572580928627979209146921235968424027322207216134826957007819198143547585720607278587376223478898973330891942409473112151678051314952071877366461405110770621572169926710467293506981621668274361247918413308168754493156653897347748224748760624848131767542918070376352566650454288128708039978869992583423303804145762820451072787935051045444715132457458207623101942469623864269483343442563771597227769649440500526838589905128050760339180322181723717049347140720122628596093425850404240682041824527628982391042345182508354857170262024305814061695391794168972657326229251434684138632230151410995934267417449296939288596412814216797376897665951407646588690663684893957181246105841211652470707199904026910959298897694227442382175638582022932141989448876669401602812864367710971208351394304034818304693823435324854867455883794877470452327645121000218207150249250243636878834391556258503444627097283561006407969646555274436275299120636665644200054296164607466360238923416152500842653470887360384763049253425489160160622822317905499082084535749019341998437025915991459588876247699907878469966309091633146108445482335680895340637093654681846802420438522973509509192324100194134153799102792259652245275371653261864393350822436591381587368328103087527121752398145428932995970823193399640123935161142300507894915162463010827465518647122775467663364230238326035338782438763713070054783594495132218649828196680660768089352282960775522362420805229979813370169391755312426467769955073357689041109302556525618660053876025041987305267611636928262143833636084205058776402623017833049175279920413911272826828165279177264060174295757935708701829960346065211489050126636410802328870964751178800838873505139476228703475256135791657656232202410233562206048852583278355753948945420269180857924407524177213633647848326753768871959079612577229409302899546086193524500903302315821471435226681456368472271874050725806666908155697170052189541071780973642766335478958171203387866442658057566331187051984848253940125113928401782565549055822369647864832289956492701272764790782046136079064280991368783494312643623649006855808453907395176969110679199171593984524317573881093305176983247441141610938643874957785331390606265180323321383807254117172846440059431159315424290871705727075615772145224940799097394876533469841428306574402622622209075824969487701266350809869333827938574269170815048460453408730231550234034894577185964106712383138752785307105782351784656114176768301446536527863455053687595798150036954867927401554885995943058416974489074062929972044694356792135524401980818105915583192279665858919538810291599123825459345004245625601285849020900336043780306059127145929871158304849613719211193849598236208041435668579559214420065997358150803579108956674592788991191964956123111564670699823091979919669989200532803885988471043751568129523026059866463988030776835690609090969605716745978074510026312343472730949651085609266681809033552744449803818677223509278232486410338364083784634114375891828877824015073424848047575413671547906773192275814514980029018472675773854712888863186673777627106598543017567528875342654345967617185262310130274648165978569549678215606052083186003732504593117683246082483937725463641164946061691107588231733443278887707156388523343642585706989512745997388177585065868082943393951232825661215405940054942244700659425287852883447788297950012380021043909027066966843487819001916650483958421833615283795395621399262798373803690104715517462748853974755159585549166996485961289893293979847843837619105460657390656241203728074845343834288701024797805380925326205482124925062675595610778607551406396097572017695860207397219522314477094874020983217511842745157556239514872937324605366510199122028922397877909808942519377207047571610693937961039216281570123733532061332405668033648601579636222117882323737109406947983165956045859175255512228717275192923360345881618742065582652189954640399976313798174470259034534139021963947859343366561298805224880638363090310273221650526011164080014965857002840857764056367086272752786331861917509610945637834638376034113987273533353876623642285789683814800324230329038898102842789737136584380277256697107947181432873569041989943319980701713999209249763104318900005499653994266168395349470656573137891352551494537050216458343145690721366838791303910817784984021857450205497042824774297160336962454231944783969156289500433471049709951593578158628203327337161662602053989145782385969187132341797153132063576748025996961780045382033718387352567280333708879190218090468868105301118814183372124139976759683034711545385664715506688092933941336480141277100288544060974553625415006853994044014880815853680608896265598614755550534515037937041614687526602351235284744952042751281348789096900466795870031720832852066143351748677508266965839120824439233650888623078665489802512477539778599571806515439590908705644398784071711236590006378898471933216390974844221167818029623591571314498033819087490448104107923670204931966010076012510543393821040616976291120577588411585861086477271252570378054407737492905038571782948325266863098528376004348258919665505190132168913650500106617224274808296110712175252412881361798730781148957990163290423856257561796586650852541304774466680485445485150776599353864669491400742019871367867649530828941877041461746312595461310693996129690382866458988126387267221777943581346633004736783356788115737592624195417628875582661576830126430114647660689430136195500410704901567664276075569859894150765372836555181253202397234066949019683857806762714987737619883950459719469409610243335884663436206804196389990188682316166429320950041277051266088391560706194891796152115787982773506226861324855780954624658264372909438880068374546316804297401455570143080568165375837846753259684341785937941861995244502690669336114459531616292861364671037852683162032145730979774490047984901561311441131396732911910669565687344718994538932523671135343975547940624202602904823776994241315718797735369124246085138061699963032919586488981690182777299917857883442035435634294553946043529843982771460312264515041733962042315231216833534651651141478554403652176664474444155828404226163938466931590251720035610656359041811012087396596500254105185005144752031691234580530546625823040864781604043016518987099229097757173861569557386677875787891310708224037905275799912286390122966054123979690045872636518182233827659082380105289584375610120107303214694975811787350836261352969214843067451268544215038509864498000106257966491607788336735818236053958546445978503784691649867277366537555686191406414290979247940605362837780319572823257736687326508268975336581438192390612170990898022521113296421436242733587421136779892803345085760241692563525470771850087217897221923333941718879281372474811660226231144323156208618808761533391274012553691060806164562590364940732571238910841964654555766534936610941991231327609112111081256803539022590560301353412219974293625834607523752035109183882107704381737634340986423261336316258840599477774417816578698796895614386785743143615560179615041548772180627072639941635387705969353354595353594104228829845546451650554591745465804483493069531381007069075437843952460958524285107868079159828684563326269613308507219735374604104019091809913961475766483589640414354354066815154244485709992088673943652556110120052094168429297167783126455776173637536121709300950614397083809541184989371336125198500137113935604189396379270253371618785791177849442655741062742974934211886552763999003363740964504206361012895067011634046331762052225016951316845669305447634622769461687129767353044892730697111235859486153945439227138810949699539283294106874305506398553672168476645559054803790012980608693994206231337170568394888236837237976846344992325768932054742408795987172123580608779768542768525722854505416571509914748090797602844872336387225716992203281187071472096353559381752708546022649682562329961042878559266890601923112645942423392461680549291749269434961331175692527477215004329410330921097603688394825408969142846305379626455065429586162345574411424899075572423741775967024364239606753750737369701451622098466065564062590424845049513631836802219954439872640293533890856385278636248641184944130772601810042631939099787055885163576614686479196411582840266502243782016437115939506047558450632268884930055744881576871353238299221622315639333748057044853743120060349871424513743052013040356481600741996471174963273851884030590608803523921080245956173643763585583977647909822083013415816377493839118760107811296758504919685773148709427030258039236783366863771524118105436573739382563566409048998897077564154151428608605697463920354655663914097956836689085780609963981896887087268118416045173087104323920134640095758350130892686339636122328323825967577635635838294744040637196541125971317279655153689597858864430124285984184553488077336979229538985943599805797780341164565624184825155285395934446731598490076638470717737868231468647856733756838344816419283370274716533138783180118706683259281879578653971847124272455642338660316189445182322376617269376403414774351704768312910859057283787451880599043363407620833009449678265833789982012352670518545349817994516817571319452784046879016047491887262995897562929464992348975781359680351302394150995124355109666851512167750367003316797826446013208393259978965135038807764140194716111855558866616298457456340703660836025220497308789866610192793916015831933982756109745602435031484953659262652524971787737190757023070655010381710373388826969615652896304151968068522951013852898154232972236054390164147329948746535435295872348550869958511126342972138638220303811131610674313713399876893835974039426138980005386486646777369471306250323307908210053644624369200361369558457381490776486382438765709506238679654259870461612908790688232097609980219557511610316992178166195022704716808513240085917746332683729985312810790431107276312046879174740215207312816050540134266094185919529717590297087002515472846676355805039841782327622656643134645251277265326048400218266288178086828568197398095885667275533475693262131403535339939460370057626003655381330401173420871703898307930501132541144684700153942454579553933778914089522108639323122030273123897283978974031621124546755154864079583814429513003561252353229075704222199954883799008643308322916282423165656823952659750228376687151946676719884623951709826794467024310379035141729084022691503517051509237545150194247417010818122794280327412705357537023247239721695034317847221581706300258942208365073858015317592330468238533498579383575501535800269131106922542858297226781878538844302834144866160617848970557538482799969140207260428996391198977549350563842818416010036811012966644755115552796258240596788284109800816229659201559725999879584891065861890939635584490091700830342650227015242196252629453257977679234662914527628798333016713408161725365020716686355591672917252050981057673148223868023139296078773664960516183749596997872103476478299229752571893826344779258758157050445862873347604234022282078595290730672709420973120184847260340599852923542087440947222457526968449502988464258879798946609940116515524866418234046952487380876309126212788551771893734307171562147347736998847996375934645124766959903082916028705981526340481143448001305203721619173044860730732671976583791050755663477299412729853256401365206395249384799711720101796221809306723154121465423961311814897383479780946211051318637961464628899947387550824599423147964752617408768357006408489160046003582536038722384416167538826893596296207456745700955348911008582697328071194791138630981113674231533027149032897086304355413275290932291858756954085410378309860246200664178040026121875886395522128571562815975045393406761055867066346321311469086326439448226735756320898257996161596134868467558900430804209321507140182736657034149878792803965611255334959697214896958570487663700359580212590502838779748245364943600520580574056227514372237113350052813920114147899767150675216575692262262045839986556591123100567913769027547940657509034446403496391943429329419810715906539991309780050798632623578661274528528333136861120665047197423148762769366668033063644154312439968643830653711668778056206129557598306187591362794562240935750346532551078465201989958255298151002257564682859936209313902059228289415907510824797191533478082197593595059293859317945715764824229630698866298551535441940766727160580217659159181848908751829167882598023093056058752020624361884089778594005157682608722096583845577931748104385231524509401996672647084869707019816797961437479815821244432263115412797598175805494864180738441426193207371419759443847926970036305071821252153948578651811492680891137135474232133877240866809559263855165326471401476313885728945067955997699130618241086533613446361393322767043441163513742190915403739251929128126735365530768985416825971159999749810985395255204315488394078065634733499645293921293135648056391254098355653290331674741839049769371616553628285048638172545042306920621265770784668328847900788083515321449025130664760945474772791903734385978442734317243062392786258969662803697054850886942560849375779707842657007569119101335386931339980901564552371917094640996668875158566993192715903440478112611697052042254593146261224892812877155624352726828800460974631392039354404785062410193468715421605815925550822864886034178942301287799270910200217633847362743976212478692630483543825670321258607737202031834749301000143921382853511937356334069143843091740313477592798073413713355308431160324622179007684377156411366567938360917873420238086977480664598973248054240838889860115377450315490171730789058148443673894549680269193648241454717129480638116784431214672990772850809413489990243564995627112563271983293373036781121191543330728383943298193220380375978087736588575081297072440799101167218584458583960025967174645670450583710549421316392150415954093256315797963959381625030600711409733047442806383449431111125966584379317662340999812710569925423635063330962227782716055520932536313521723040256060808581293957216592270385094251383768786477353715031201842929726878160793812713684018473042472399806139674263231002524854788362473362652751257702306566771874250455582047925256004176820018135166393566215172506151875656664840420393355748807698738874306934503262347223823133721038572806425861589865274379186087007193865691718965136885697385095908675287988135225523018191681276388071263727604009686472300805154384039651989161125673959402301687173011454199528356345135106892449598362204878181933505549527839646264201373287190116686150420376274911922028297077922011456491587894244357106244418000432398829661680393214188206402290803359344075327400849332225776122006136452652259864887828993775185705757708323323663772462696811997543676295313569631827061883007788946410660507554107852755908444545956729768413851266856631449020749072642183886830656246361958517541689267965380909786284499061394620710259997718809830242243433359433377182482886545061791278694680952760385149810246627163444586063800419620221567868414107539680313031362565333004370844519419556522779410859089540350992240376976458866939875049937830313562240656749960746246222304829802395902046402423224931215182257649492111921312006095813880841673732119051856928132715278836869358049140326952603715430350581717576590798481268952622746828727396395758849991425015727424172764313788860318742317693678023467134630516472181762543628377235107353472286892285957837532063046127596619222162364434322531053381031364401565008758734488823815425507258819227374874621994714196475046367920979023280647374938030765155002309963511101736174631406994602441384812710298098410050070227341337456172795155496088256340032297943291691594641340897691973988426785499053267577083798562851143431378855256390377925963960713098610364468788379300599429039518580911581042407982715225370733331887151497792445730078404464904270659677848681219136094357668888657370417837344933457364170273716707634078763768998228177154043201179920433603014174057325817409590199753464774120894085239685683323339242449475534728046831211450445273745658401441429863266388531113677127357792802924457961240996335846750007795459441074781851740752326574961577105559060366539068479067433170159882308493120986448046154333744609803984592627475601805045493569825910148378996446052636022708701004963457313672361554452729746763340059389325912514533261352452063773752538588305080046210180260985985356572732807007933874059601948314807759868102492024646813547612124994542865619028782195148239913361481893486042742289096834326915526771030134755592422082476776160751903726096043659170343702997885906742664242630418887773101892785988975910573529656319989855184880165812638988834359302095501250505924104333572422483866532005850878273017577267118685151461667038046940882663285971734175224495000517043138960045613088397970745563904017161237905897257766061031544814768449163855491626438817133266672783644487119440260175863084127752810408483146587525518845606405319879441704041465134660458017993805794464983851781659504228666802243839147138519780905437991056419416109618650059890981011992344399371450744012340324737171846907300852744501731691313432150363598011938650136728456405948240462167130015439724197181402711211972284421778680360985784810128883630568528968209554939817531747952059755922946190929562044175538414882498034086945060029678026058758819357263440923976318157733298927427380624509801515446819795104391838009330529849954398486290505865433881593495166782129008293134599775114161086091437253325404507107743771483410489984154077126331415129188204948301268351148701953064222904767335206633810476410086627153007378059788846283273411629554259798650468835402492583569260037735867584135740944263716056548137710627047923379135953251727321651705175540437703218994364431264234624521355743059859450474389508866506608186318722802191012808351508731771834565652784512484727777758350379811258942324988364869551007529505703834817736057108059797219040403116971801001682704145810730555804929173843684082146449231394602733398732647726607966793791084500790756522876338734828653573040426398978818005617305272958532511044591858870268052951967098166081026349409663294227612254157692553263343992602769160422466583517976257086701783911112882218321432355303356047789964144981102192920440363359565108590580730172037984318694366206339623915160528368168020276732082751359200332282560858577698175120816250985852223646250447428951751581436443303486867709623178051175511086042495789943235552471281171250564120052265399957182280940304752478431017510254249202994641292125382343621278859832379106473214415961652085850054884328680731322108906717034511697305723288443721290229549969066649780811616308612512524041522558110612900461951976640196729146405914745127279769401968263355511184917938783299230643475247535012531256508101123644823780968797385578204152056755523010059618919870094264064858668435125235399792408667832702207907742886279947626769716090771330698663302693532743754717011307262909704436225364747725768985261663459758067033653358865043026703763640331940873474310778606249739944170149531495904276162134968392856388534334175991810748322053983089899491561443698748360473793516399905609240640755159588686419654162397506740860471208330045761287965066094862984489450000134666879262740525336996844838577637710994322344480297486137477250790535265582898966658591494669248741596114066580304724432827685660144356385644380914616668391034469215880278466330580927433638243440400866375838721077672663491125243233196973441728385443386175218218217834672644223704258744737926614271454931915059689554666680613388220966579909327636553055806616356548857760280727639656106394084090088413526900779855910534774587067995809665398126139168304316458864898137200196047300778784681683851361005944173229031390568073592001849408418126583908741884285226063913379237761237222858363689296231985563804384149104374583186872704740170504571181851262552786515190845405365159215843574303004260873992724687081545888361994532918153762196631825067358248293497036611689953646062258545693070140038729402560589831646199762259992250355952587209029155417526625283200594348383524621174442474349453491040209834071640342492594244496537305510312650621156658517026221697033518795562079317375865653356169871398543480813051273675087625666869514401046872773765099180967346961981663260660048913806559981683285349446239215837979477317456493934802319304083028099152985681621792163843407375247549040290490194732510541447757875357765312355320388198278936858984317060045471974342190888857956040211139806933878419439248720763604658972468215473775307162385076715812496351360326387671836834473797205639618855256888830008583302938614137032977603587447065535642989248118753138533262696939588186779298471781903383103217892284402625935062761964305038644831580018509295650016304505819616757403262610215055967357896493493705959214103611080798313120321914238947226851558675049445230127157728019480274481987042136039422445433375520498742117347901078568284858885142649966513772688263188590114609803732779826292382637424641623283667784063167438232775961587664046670541498887990000183499463256259870342894157530574115520501307586104389681481703896801375882026194452473373092198653082391269819662646585070648265532702625222490806120965456073129290926682852571029075510697781944036955063748649087970916349030525513591324896349504709732167771103520730352065548229481709491809595720071215052373660724450734129834706321105844223111702465112201235373077589247283793094886754626388278958597845642631613572109354473389133966063692522876705521001935867218674648867614405023355102221740541648339531766318383217596759289672173039812399755104022493324626104980385837131221031550915878895308540499615892286411301497342463704345216860618620197730116759157581034167299063134337446751266748454222101435467365272578332660316100126081498162885917757643353016944875888796545780582652929822070580273127317838075925677733932066374241090670090814106624561013064426924975473518668522328634072706783815112607461159870270413475237664717192478203292305851512801119978236938158669881820702782991846520767020826737472492075224922128445605867497953035696372215403823593878848850344205334990418997568264325445283927996270750344814110496559459978192552936990414979927577314713279986895786858001830901035175254513133327265450996492811700902811180857846567354585852580577858182346220099983520743916882027317328334597152444850335052070600993685008626273504372887342307257768662854232108915343499651576191269739931108991442054463249362484447184140245510325286214935719341715330466945252621415965606771086571840637908398967840418840179229907353573402829226850617582352192283245522247578480622054014295014282009244731776478488109844332562506471146966161743118321282265594335281202647800150414880260379773352219886744844043612759285513638754236235122123314471133360997683332610985770402553204918729886267221421404681691454911041859050738964673906585635380851816247783995603728667631117050477189412296668334517458129897581011357977647508485172287813027752639197526485248276521255521955782926462243919500451915725047657193913916845405353608406174696854818274468294638280622292488061531918887079540806343748351879480355355191848332050372189882375298734039815288556316781583241650172019433621626161609554797133223719301078080204778668225751260789820058158282801641533819028569329547564797307721736790272139842372947512313890268662258413364894141376552612371638140670675912386802292822325637841135576577561982090060188714788621941509942350606959243504976568478073078412615034227563466935631508367926838607097180805000190101528324987730758864220618642977158460185467396214737892207416376525998835572191318657531617124787169271495794751862541529159917458631756759030584735162438842508840044186124701357145811000409775335806493029231450079583659414688785034682548069309590800873635286412463876936335671853826245520471228332693407165810460100134197114373679913001003587178549850919393368410084169950253523600894580743401776562975214094108303078010892057611729872556943824491758756285387012729527496436331286974741997470924271599720630885897870104757600987940880764013486934231255817185062316308190422681570412713337832061634535750693126620694349371163455191246803116218411361882511139299459381837291231929330835508309921628512082862431748306727822525369712949192778453128562429363849582085333268133734975500244017382836270167788634847611698605111695680770681053617021570119582913339420065104074966219048439774607631883166046676731935029765904851161509748336831215321170291021087683082606991246879805242242704828875571186687181346870019216265132368409829956377430615155320896033121232522624717617752715825554767125531881321338856829990661608254007144693548463601842366091091272880548554843313778941801304813570281264484773833716179049047598752963852384300132511900366029648213972682303854973879121915803307554907742064466693964095836640486211899941670830938635634356037864552969089788467431491792300883467860563836102977848486179716494185525482434626537402917833447663160108978407098100443107465133975817155637281551809166854790017128444291250533590129292260455701082875617892377204868096022270388538246730529322805694573406082802155880042540109581044512999727455529720124187766249339837117760256127016125502293678094974924589568579411266763106454328380753595829195962994310776901284977235276136774019227773155509121533997155035146370886254194476835633352857570609187951420747971278526424352388575114548941810038283997481814855977398495685052596072499056860876248853963477528174287191568052585698978642285008815994622594519720268772588968587733966837251567139862744194488690099728954304236318178223079797839544069857172719258051462002952411502175763473391524926797956150897139627604691793289199242648114136753216291445329118740697064908528091450703949856971365878799300275718774691319319745666661515534477333621177249143875660093623757961986252032916078123708273671225660027144679752372640075627416787347068171061751108603832876293791888440139713706706339207937183459714932113272444064569807451834312713871515242934178857398182735952989405288304421184408102530971568164024862924988820801647669545357734057739697033758815011865945284802140362923194660435030631833955650688883106953075817927546504474778047262391847843441787276690162759183220646176207073237432131770014233611083747390148455397224122401636858450174434149841218169432756739944177986491165841635876921686797681931699315698072419362742266344561909193939417421116030538890302823156875738615126390998359299987270801469839275490026437355513698411177468367108260542743008054623770912180740188261655986907983529950974148168042420022531436972578639268464935974317313950612072482220824119741826507343376348878206400652481969022956128597182493505848934241347236201982481290321564673096862947573644936460837119493234153021499960708482377299180897435753986137043039213670920456403949409313217834800099020063341847030788559409450404605488762142957955125546263575511004680579265445982859502436186624993141503801619073523744995308612101393849961609417309441760117368541997726078735609214142579498430430811062095043269610332141140164635459832893526598487721128444597785554764128035293086023125981015050739913358009584660825581138747360110838976513457526162297208982250259830420824891937373646141841176533019649336922354416329654717162165413764878570324001737639400717341514825910995822336529428590648668554203497553021966659042990112920667183286284039165814066830075486649032894894598702285959985761636084183932006003529579611971741002955251961752074163844442274155210099753171706494777291764110507044401524097692471281404868982311781343376021476779640751811051229666429048386186617550396160384705377876839138669247435018632944539619777712321589027029443145216833079594330149247779736217948326188337037321333979971739034661484659708653891471247195874136931628210079486519592814568513514574213381289319388387424680810554196221508227238193883598336213371425243237637742144617231417720211818984388195917103177133721226789129343452603890476327164936594347903140035909072037246488834222041636719888713891664183177103899895384351297256482220773032283935026087542440655025424309405148542662713396424251169213856272492525370887737665645953662002197966404883321405617590851060212335171094355155263151009777474201890764812893297639211829183692338670927871499430329655659760001785553428418251479731510575484575489508510252854267176700184216695529905738329509564799285248128754183856507584515633621850264461376106031967826594205394461282164977837186815817450649198539123247744064143524713453033978934730921675471686406846496110435818295675308265980856107430861425293361739398498961941846757045097057613728981717143830965607040770197696998353178905626242481486972188228063145370092295779287088612292450406148108207618125176918370334805828237753883956934424548651999908288114551144782272297790900175447812159131616070646775782921916353368638826400234525131635114938256082372085158014969218600352494312476597740714427495828269167388127339753139840861523922769432603651576589803871845717319416921686514421757916543232058244650282922073023601226088916399711674028581477008801693576491919921250345180377646202785676832859303431007940539648152032108797515855559507075915629837063185595149512132985037237908200010866416760295617578814512588610517555187366743252978344777189604898033788082226350776598652494304963385691012028494819778623208079801964864411811344373049369932483636208802384212533115426348998249583329083744110559193511282899067342286660888618762461444961904210277826647352449605487940935373152335793881658430372815254840325951394044846048695510378564963697113484573896923448755893116283093481583907369638795335205030208870825682941650189390884615935259512341912797344409301630720882037691379120834852130331818466297022066189164361661823657906887649234427738370292899449439108994009324646224717048406206251649156294883592314573788097099785172275179272788484992862151652227624741584667701468216782510001813971496036615084485147440785185998590113936102637618658313728329325123787027616948109327519417499548595430953452183928594031851208679044202539083062262602841910820391654667217429665583905953071342469713036020154740108264544741306182081515635960978692277800725994404554591284824226425267666926966053739179077191136028848384673053200132218941787900312614002016102183092870768977688987894699980500500271974374903564967109284873839706916821952100983014159187546245615775511152498661598940352140580875839368950889918165554148853991101419445640391071386718035960138984727751337681265648343140518440402079449973332154025810588746531064752784525997073791215984306450024844771723202694317832068079630039282889428890729668314739910388559174985750975144175778644735230716235298405316513638906003532507474691455268884333522604345685057978102601408692849963476714805401319683537970395958842894577314181836036382331911744808918725365125929338242464527074153623350275360142735826140570629294151700699931656574785383001870799927818885142481730880764673824833541829794292929562846397222832106735468527623109232230497725122477390550279118442018881462719517522444698962366124048033636513052700709460374706537423654907672613688242628983962516217043719949881377299209259614729287286210634048521303280238737878325861909573392553824845967299797702140991210274961259151226419562090573499100603520387295390559000156786123249099615316221148385117953592923540597734685804699740226310078963392252453486605861363083740246069284492585188561607591569895820400579122056241145199985868163180015831316388949386259603878182271854039054278516618816383716630431001276185255433073624558343280431928626431359885694776052190886372967885933707625681363494438802880296218066469730957513613644092281876176163684326444185359731505906899029556852635146504046948371303228173291687874809414724584103748141482865129175756232136355382012108279965220449725672567797730647003027266802362689754914724614150779623787054847044997087849834212222705074547027640558052460003733154522544819330543632850929857920913371821051872319893827619012901147157415017572711666233184489684764681170104670943160686764858419885185357095402755064079637519274827966457655606627962029799538603212150861832249786830541860987361470678510495121002345191230801868063771305247326204315284828329889164095023325010571818159352492708597734557935392117425548249117986163945581543828897456102058801998595772180485194822564133566269983941333574860977581701038370367802700416032955932151006690645453411974673518368866777332958023452065773628387714239110700412732786913413191367856690445116370350839290217872450523318930639510019581819540270280242052099259084166956839665664103881503648365287379441618122367983753655593511533879445776043801265769047427116594998716902609358921664560295047113773067374720213520474352001099183769094322521314172195890273840311234268638212295669986492333145973513852074423364920026743953482417714939484053187731274503216796630571063624190294695562721970386194611040132703969712336817813193706530255162034217343025648629190923446741700235964875463516650626105695924609356967419718890165684343513448038661977119062436219579872789948008531350540449486222716979603158535603201805272262587138317689575196500554444539449706107298205460183488315835021852280557819318301708449463235949667532647659322252386205048563143647242610670435367540882013172639767403668143252677969544475425769272182462160058932915030898597203321588048866826015899437514902133637261984217843422614825340769346766535516630807674634491966642978642346672597013509707575961709155773672188144246860860094006904409616173403662691171890204809997483217491309928111481766364959527764858728962841322638455135684275018331098564928650881769796432676789438834899077258624672068514973932832640981885369323192986515475882080366017465037221834606629697529204887520649150821655309183736516277636992152472155481091522409284540213842501942330820397957475592540537117035784315880281995712473549344541737788403774535007037372035201943739605909234119328814318140865714303638524023051548847607314777206808072861452919944339218519362608261692638640576103138436973354151676839126111088128242084019521252520334991334973533622709729697570186399717259518104252846107203349346889331441504228444121588777304246007316524628118758664313682097568804155880773562176199483826213797749786935529544049206457342270105466506287906767049847557327920413885976341873494897191347598135072853563620841480728553355459608204286169939091632190063302940335483825795002965931057393246164366760606644448478418393547493177919711379239031234887460157508787998309132476986338683165902391314837923131863009793766340755925847180904561762571635358273123314706690462309431340449073113145949403846903272558811280162449755467457158292093205577998196965435117601111811745592906177265792956812926217149417451023920979106509372227725724465177299120848493950969269386324556824661272309316012059994388589414315237212982842189896569497703288223126032609544170012768166725084536199744567153156377431870980863649713448689778367956928430923266345933375743794918786063369651711199791552001378779969872795304905083003812118022177626646592840253449646892960382339530852864096203629281567952885304613584187452662732644279033227826312217523383149608894329308516728849693528727809946575475227338983916300014591586770569343507589338850475471930878802369567921749360768943406130544341561667028462696833450465987851219216870593659107179829639292571423223550271268125511054556808502436954507480511891172525971533566565580539902761926457217344773823647917096190521940776943047875238650793060572267714803265235045747960346175465447367964474818840293296732585779290388119066008750815057988109624397735117417498880977027488398895037844995941771007715359127453263585374124655084804853272376233658502784362415675323427019412899864066316936564798682823051320909608660104584198779022534584886510943876768266875501361674600716554515687800509294940613206478514199898872178481712440398631689994848803433180698966984603642244791053208714275139704796904360458080220385133804361442560305683462389833383277973314397239625927820090363251970755549205618155322385430802941800343830861789811522685872072308062597794418923430186294496641612537020052973654060240913993878708594472350013986271054184918581032143281192757782127345054973969797982464300266643287672871791611660828727516974499188675265662646861567341104758388935337689112543505010901064415981569844257773652991516323974730016508998901489639133445790223170935241726836062605933551153433024026776258825390952285850657378524010389138545495711198084796528272691353134000910761565031546294016285052449567789497559813066690446617271526259967838557968555593870605645725991738053269421093031592132888554324352986933815952154154215755656411621008377243570541482852988867119380397915126873642422719815986534916873568811581461597437206335676729960219938504306462606523142096021925381385315482229642362465990729674701994655965905941322673041145259406401808862852733215693796582987142762783620699611274378794031263584205701076233673511025280241441815607708686119818281706403205490576191920014643588692692703338499229086238131803619948695403656810001493506457959595795156736422015908149748300753412819797212011068492270080421252927554403077494412220790488810203676716304218418356393812127882555331047424050923055361977642418597897898518901090173021624752223903607780573234742803405313023366189336511874903048857401996322565896457980940225035159610455061226446646685802374736838472918170311748657874375784320293998002809949954799672791299235745732499904191360141648966012622620603006903759907973761720227689135783273029999382908700906469863168553598123606252873009356387602194231487343191256434131784981883650681545892858391401025174753838871960189587969175807682348928515542680286119073886802418851207868295369554244619501350863230247538746519135905678153105321988541584096908002168182339928701907847451835420555610013553695666271587438834934145441077331704187590407163111082455967682815752417110886521856056868339322116234508746824872424351506198990307909210586161766453389045963404572273212706200391049906034926473419762996291255222130345620417570413357840067657531472680094346893159380847236233628637939552679719122772203206115970736418162192864431782610736119006933505687485604467503019016536903868170171653996109750830108187410088457016111308643151248605552416234900014027443579739900940098734045288140447432567605780157829800007106423086834693562481503329014512086811227870990487325354131111317116025849893874548061824613800271571574704593612430564186340359052806758188602044505505277717210652361159290228222689862362916443164200822765780208688531482315808544860014044519256741153907529771885707013389321731262857877052040151137100419172247312845424872273386065634162539128818444085136692208483520597707510967545511026053531447199123513357661131948726339508438924413650954055002097448314138299282964895845433954493368417160254120720140957752768652002680501235480691277287219488262156508858162301785453051984409519273379783774856297462802500459478769808149387570118134806501603797955498363904987207098946663268313629232397546979510188237295200092641229939659398133893899373629842192205369330163192233389185667395922628798276815733667807552077161656851415870088001185598059409258085609565802803776509779222727702560023902251098726406645513528611110691320476286976623009769437095278421753308990091516144027930642021154855494385062906941383345815705902267469795718510894451894414618073215709669900473587399801303618124398587445117066667366498150983603338508757914187052132408524483435663185746041424340168752765302630757250752340549098376182635494433820785600298436540971191147724559737374466179188096103977906906428959169864682425869730582994412444342050914654775993807431216938597213111878903895218877937434250213257488105114716742174859914889163793856966543077700901494143784622950569839799382871969186428033293255850237211067191560898317390369377849421326134056810843816352092473440871577367979344710670144902046179162694605544247010576062251773127649809134840517207470520449456608427554128478937439860289584583961108839822731125280051166443711643359263514015097066242230412622572163872239774490552244574937405193837811340645262117946368374693134040463150197865933023944422212390837195237159439516758594820796401323344711559541711400779751059326617033577587099868898813203657800129018052447863482729312903636011858726601093312942515211591652192941089440341418018600999925355131502720197011347198178553755276609757645960634688572880266081773481644974732700952025841328980685737878587361556397773117259825820066923588260091469070405769093020284754080046296084948271830090261830488457222676874102629667036555379470013379156129502670206053832246600485002947031472949548084177459393913226214574915050156632592446832968012805152088375495747846182658836657788374600687159181659604206745292410059279488599171999042724043625230202837365939424548138039486383041129732159283579064636749017688006687030733315943067327479155864133892152002606264978541244140939567997179361243655552157137225542051812101288028159465586275695554481254038373893176883569341862820560595155871684385015388649374697772990613106360919321755126525578370164418242138248718427530256239350737492780829802522197875180725700225566830169711745479009041651012632677160305255820035135151560202094495769721477653172149472015558617794876541478605784226467603426946993889688132308429897560840651757204882159770549843000542654172826679823923223477231358719132871715415071662554637820623553578942909464104056964834350728036906660899809500647154123608342895843669658347191171125645798563755744390675971229845877903713960306469047318767862929751759375598197973899952982848565305213995517676946452572089597750584148609774563197644532631656367609358874824085925606396897648606454303431098348337669239680061827092090051553923202237791776593149287596223337015990921699842779968342322075313770216819747143392415936361699848092745802311313494737983221544649414144617489399374326261957985641616248495324190403009898480414814243633396768926345000630866399835433458318047196268518222959243040433437542957606206385460615720470443867920318415787534982556864641633918358392776676345080365964342242208890008673289957825434878947563819873472205670133086749701485283689193555501780226733936256416299722683185930148032888944956670442207329361472915300957272418580121004306683163709392884585745511550227261918562080213652417572661189141887479078676270525093557853744042158697836546377631314157608519756994844516328114437915482161739424904136817447673205006882308642342683052777629805060169378097771121021955799488380617156560043510172029637063821599830813903407026436969598482238778628484713020002059556576989881529024354088464785851406894440588472734822818222714179044064558843366548547590015013771714619409272544965933866525112280871727242834232575552758547877939837821906576660120196858606964843129231803850891360354532289476042564326767248182202921435987478899536190826843261680158647584865141217493645627779061334789916166664625714454002439746081016985134430132404507324870995197526525074830348926127830002987601068357269764268107770608568917986930221582052267914171288654096372401104017629893761394318826367325738548644001686783977960046403686544707013858784755470549726772703873839301968316845530593252848836567610294630591507479820037338333880712335845859704230965783574868050840397373564425747649270460409212717801816811645148377847159443852864014528325383339533399251138532170540797425229275675365223016875777096023971151230873819974130212574282434446019901032188929962479529466358530527517791666610445001204388623462372799062900530841722328649142362969675928167655727825124416574112471799334021061588263907409719532552424893245406412334831440975311158393846688505919671219838055992034094425607248997608329521772468110108302459544881620887841831995922161966970548487502327334200099610409940413111054745572578412975508508635137093221103920582566503190127148559239489533012952275445433204829134805113105210729558289674433461299863557705401962262003191518013295708110298704453955589464147554565622158072991836130798779338398357845323118153752385554523204881638815249403533707238738412392857618985986106194553245033941863011664845759506156904339146207098158643526970628174705969918262804632487825997983404112934899025530670020959225708233089742363673705691552850071313251083642239243762081926539815943567831416968569353495655015752748729605813285069250869161629113587698529225055695830081715488157372472631895721887256744141184134444705757373347159800748789687585786076012878041249342988166760508420462826605015615588846074349011616596734640007863273445224980160394155102975267723019485445678983830866401419076900976489047451440052811478252598589202678162285099662512997733069122241822382284759381775834035760668765639003883983590122543169399463958857832459671468255209855747325772597016167175584124294227757714749102303134002850194401589696124480746052286190729253722994521100184615559267545257523908027048203684206776741174678251978551783519753317995539254244637718594833636327063064396146534500030416209599057369800260936748036714868276541573433172494129678553263750457245477262925008878375791397556615216844538186287941955472947944884787578144640539403553921910447829642640865640395095994383261580248854189277714826418715670531838876382984137450743167853502707151954735342949521385308263803858224975428932706333250820378827642602904668517240077052110543095348648263614346687102635104607863881413236730417301532082514631198203297358713120960794684055628160696920127947405496764387349772722030767896690423443854969144877531318958471288279318217538451338014708349402169039391947179119334102245229485361622794798360727388951162902637119567948130754738403543892953503303134791799946919436926005254326347697030420981261325057718979368403282721504563981151898044930889043461454402229791350858585150176125635467012788785201802334103811977500524900553357908978156837279902089633518554815437451073179354912965334978691082757589178483316775113585986188191486919672219374386635445897005407525159249269854645458236379932254971777613946020178160173007911930197478639333582845359474697564219387210366514180404793649220738049844963116985209920472078437216662341392611315924960585648180933862554525455387880339229337756847374207784190784943808913991138040002184535145896256279567421970274350789230033157770772707035765881747366594968755685927562682378027741323553553571124839071366441097786386278841818915121353492990573242745610500437775395280960752974546105391717196583742485631714104804143594046426964718686132940290939422768450124197633289089688863596974431875284924149855195238382105210871755220210874674339182801797982043263449001105893512921131299746037666280288862110885009679920793448887760509491233930012996252576678557351242681142605025251312946766544151245535378514409843769703961079771123532805043999946706876697344719295988764921220531194259779696706500028905720675248994901921075445305061782614975993677713917931914629033299762580404257321590871328900129726139848621864521610884931961430064973448556553583821902567236288375282249271296902028437492768266813352643485487434182073709344283706233880678459698662694953229228756749407167019545035867118138277175617895766203554669878025053343766591914771490710904238153853964833853668696447126542808660272891985168987576124963304679964241205464117145344549171503916902989476296217209541856541709326065921465021657275835449997740072030436932163351436042087794942952997392829473037342563226881435693978092922262862480217739473458149797588475970619201241697980545806353066593911990382496777931028346712434982842108904108235960054569676079026350361917983378256735182885784315213438661662148691002475915269960200592911320393912095755965237822143864459358561557581183165386442445906171538804560736825861918498267300977170310232325394898419622684240802423230132920165415946459570530267443827654341762792439322479710252566559613984096808159887940934352658169689144126253825126526934598523267428029365471371183944551293598418227476405027808178166680045889664285662888350570166215347462355543058587568065191206235643543953637545215107353097814701622187603473946638697120863243750616225344103553088337861884298179392655052181209525441564556006396035477510833381011813218743636466094348850813073869867028605183199820535263623405431058682339576046012546280802359770166285588725047055388933743515044883604466083012006512463093535197854188063342101832993566339696128727479566269580102018710612477035987323257124195702723586304865406064031990484090446237700933998373506383029512970291628956672742566188380072209664766837062359273773592082713062150281407372156667610563461817333857964632399446643384768236567007754040122870012275642480809223406819950395374154439284860678189991955531249734241069407672542726920615860090349355117691762843792548965807355289304910652407646586945152360184786637907959454241791115204144255811973578917011783051103288236406498723523124129672105444889987244972418772233113844644476033433070828801769818531146029958889906619234048196118239678406651771869573585632137004379511381678129846824647850313094652495045555335903840556147541289713040121014173535319837992879222381669771146255186478514785592700721492145878778832767629211873738257605169380111313620888920252746451237872917396317929982628509124802221828734547496133617104717905469898471373838574984657857904017957034334418588714460874047146965837709692251831015600870176420411923128206658209741913707483990355190882712067503514104923090602335519046328059503050681069462835110887499099753083389249614109796637855189901684727834262971251967681947703934740990191916274016430654063672361885527661468871477164059605951395645147962782003009050130281652923788442698722101790714890486793940239402384010025708965387230424420985109248322965482450674414184598922156295476840498598364163200101670650414822502090386915494334185625230183118463725387655691742298980297922616319437313796872085710152271272668581304458673367205975221216967153485879952080661162405355725197995643428395005584757344420283484566506541503021946490181517075695954395572253985386524795349711773185694244836120687152486709096610732201149980638418731093372629240765327593768845296013249279163058186362021039855219256548867745961777676542721070562660673611512745350338661053268399555545043559855264987025530355958756676720985759087817664050361033451596228138428845265089509760691144530651164840239501595783525350517110873696285634168615459777410050534257507558000838405824931123799677589225197239073749436334554962623072648973467274968511424996232683870790522706097901361816011011559999139074067678324507295688843295722599243210082205559043049427688127709380779165309988114738466534877213553961997554972947188648092644585404373141360288596918396749965347272059539129357727860658608838794290737554699219342203317714400875680975673279644855786974869772088452130135435485104504412105062469032321438384711371400678984681704043061234175339651959550770061240126312986794819978092156667131334162248337815906409252902333905385497115525358112665290069527582316885344532357669219203536417058005685434254629639697586356298337763554207895580926508191063894435227361393332431577718318385150288728225980220756657643825035462705883217953822789995162815211677135400745810210860905844314129176872122185085119876075062997895416115416185184116462176134858717419813245599749116269727358092031939643076057114424811753267228865090235606635353049787991182342311207540117018955199276390852450682369884714302923251642158781245262429998475018083918593652825231695345058838806085806987138314518104570834079341270258458479186309172448494012298547766834242739418546746779634565024238567933606456082611124224534042231216962267081504343644721303326241775181350556172650426267314180610044858470535886624121934972014907953707813496343226136976452057645742839252809739382000749636931607319979526402631451667746337988840680199169757175141978673102154135214075631107975500426454919209605116360264922173328001580339547617341196864325912869290789341287773907674641469562187475621221500377498097378020224123395464050079584800178105306130378281737048789717511586936191800494138540711094900538625050174480378023219675511784724648380050053939027350620491583350041524393700390268353342774017234105581266180700652763164287616268414184134922368512327044672008602315175212151456591350679923924376984581132913361416612865923678156900859444318376341673814223820514747783933523476831562596962656706362898183333706272111332481940376093023778314321966978882217187841865526233496301762948001206776380413767831025470167100938973736823433645419355261726981781197307552741475011048059308314085697528204725673876824989816215549609342433330689204323089048776109391496685016776158511328599081486666354729931568256622408363299663184800625352951308154481460250448944090606767785407143378752062211223961242281492140084257913361223901612502649639179062313249212973304573356204309518425442541319323972027441805924980373256407404822317729562631902645018557187565631504381671058032059484634698586169841139715689786100078302155239788335174098674577123417032297018283208438746162302000900557182017344081429880412466208596038661534574418410592786715755145713854410856274178840165557030753688427760933670989584656408742309345579290950745289822898411844199045858417318335006571069603169866623974338675328283682006979582558938688272705618228775731728364455034519214701972455959159636986934488249688753054721950817483877652551250081102701993180696687716805586272356546929202404467982383475268698289088991511520310276821821795498642192746006317983487468504386687973930577746240278117861237258563097253499976659268901747983586710923630136359208387803746749635470444117629738192263032652611594557365765078359759261244522797862148177235344687489944549676992813499994583859250282576350407445917184798086476484720029617056065585890185149061868764406710287313071518522196361724187724985559609052353720555612736561809968200638025264729861488260165944635999587100882262695145847327867592863339722620550779151289685735653808873971273044425873486907586089737809091303370664792065626884672859121546568877405649292423461525954284866095712253692247550895903592721791629082548941089229697707623305510666486199842448258255612789147767356109824480910041949785268785343035706100114532669145294245725111734717579762884866818255335761011149470176947878093146691745397463159888148506890495776861752256929074119876336866680184961736220182597471914615116539033917612979314900716670010404800586849048182134895763070818501248128131309444681750751432909181865324910574612405215637369802414028470850645759617448992319511156515591920665709687642399524435853143590874343506017837175098368407711123442267294492516378044187141098489941069581974582114022633974875754526117004716735977180758679540288493702831561208658744210381315131709352143994739199120372163541172837232955843783700376906099855394775504800424882405297101892822307531128360936748337431684386072301276051310972582350045768188637826474184679309026780668586467399039698326606748882544881366545524420901200874961436672985226147240956698641979524740108312961611150446757222143364493485503724622581435024229106147131436793106286196721467335785320175310256554580211552526576977997871857099271502710235675134435464032750143116492515606349093106643706180048900763058600928663689360295480639742437879925144757640263432909627029059470034280884630190197241614318613475512795725359210362488421159116606664431534909025522027032121819169886416323264843699312402116667849244225832120772854356615069081462435989597883068066429596202652432588936055462975365511448145993723841171913373054317442693700294292229762723591261339414549118859434147747919783457389380995001900478866687733057504265581068848199186713528869361624659689106886221037925877645554778778073258463754329986191469292812443008479515604636183520279771281235224704278697000028304712816595293747722160699537886748273035148597909342904409835397421943454294750233608371822954691562516881941763188567267235449114412509097060511855114550122541506029896983627727131760851178769243291929126316023261933993270605251385593177943169358800396570906753449230168796462755326178840478285754666398717912384978351894226204882993118891612244385412228707650539732630080148902625468127445845581377345647231241340775227250490318295593164948422776815904028815977604032853505841061416440271229824391856687355623438264100650299119540890284064090282670459623359451335209002228194758163748448900384375028091770001249929730727797279887314572158731434646356302140389928692096281703713274901984191731995476706653794778499566205288850581864351307862413400212476451521511279633312273760144457531953772855174955299025541846677530659719997365307135256740716044376302744192507303350407936365421879663405874994490858380844318810400320588362938168704185233306306929666232301131598149542676603683068568823793870800346771848510357447652017433933185308101300558718139392667574685198291172089344293955467846195613831807635572311958784671247476301316273370386583850175798739739517512069526868182887976442352582866290183274214604774586279991108130084127845111481818888667461994159274682993165076614687397990165807624906404715447889235748758177187452214613821803590905766161590429410337626597399384174868708930414679264935767440882449571012032958683407971627276930399535156806896420676260894187206445142493598410856245889306935402786968430094498123504609424740489234033600022448055233180001673097328703135283384232575566485696230107432630423175065677004591911823889220111097475570618342184521674866491880964234669132700151869760483476710083216182783001705144331769638645251798401268154876179316595949756560010572173151888908285499804944987319820616355877655849136438584227482689924173392879281732970569592044892243769338082685152864267474167761956063288398617075602410864360249290189993457602980432851327428431559058730322181380907136862991743259463379259183889812618131440817827882624370549954861137674567258008169922326877145287229283814820039977957226009808542829387888198239546179582240349107838299493487340024583619764781479803743157569549172107641180836539301027968988350724234584300200781309554998309488694114274668785865462999123169711461088982885269981475390078117699445669464025500100896780076727953490141940468011587966047874360325076291993355248996519260382984906312089696471978603054745295337320084521110028378089729451749681066667872728164557413629333335248792643286164351435003905651388061722225818621955118490839206559074031659846115875738690359681392590202069923803211372719946909100148554617254084397069600375257967249410541808548515972261561017645969568480592536541946203438907226319432069717516065993519847707846188396866472515667379563123078989656718940116966322787856573423769535869695562592334987478216424245896030764445909371486065218145272760696071531474799424321282908238164889140940612813320815503198533237544173685583347080878669162553727761597139921134408970164274146485861191766870311556469239573566526180197458669135065811204681339139128024267107953811137596172515210540319482322305103583403363235267854230489713608367069891617011594221232397259166287182172554242317256802160390813426549266849138493622928191530955720859696661300960671074960597975092982332175736591067578711451714059435616672605650454889933396320516537386718040555917734274432604506348959462972555948966299769132546811123330806480304346120939416162661678564210984751816707838500220671788227556307308465893992032021877084088938568375130869777364581527676667446818807158939330493882072776657796979637506489240842610052542553128192288454168845718104276275612477000884994247708935016850548679815722843669525413948426225617295069141660874041118624878540502819664919990286302475599723977470260889572566281119537817248635922416770836807525992640037457241643317745369965461603525282544209053604640489086908737805915446137525840385620853296916981831471604344075794999016128989231139933318478908188549145370716892621812095462435309072647673362340599045004073554677282040250459471396663827629489642299090608420067263403966126023014894803984178449104959480207211427073256945283682566004058701219633540130773260154367215654335910465994347017760790337981111857150249070081275557088443370010962258710331216526575422712627812635165323376754411591969168905010477670833445351566988799564969157276300297634393710676513070976565071820344687493171125275492934584598521526327755819633412462802590179231850882451314908550508679896408895569576508344812259389743099226251435847631226134849900375346655526510583362525155029340391250837453891096227531390200714575790032158559991393981672956748826240621429408421194671806298321231217887474442767160618595597054513145729849532122124439395046017750889099697149413621868632045811961850285110300979036329900048050723938668499882509175229961268457850640982612962548474420678796095010639190587503585760027556701099226459613271940162632087118841092134624320729845221931635311189702152830976127326837716711649297685956610097106104671507644508649638649537776779719229550942554603719641707238966149905665514449992038168042626258422969396511317494485336270588410930632918716461446605969791981920526739101230058466258091375605995694478363920308342873995088976331732044631140613944246989762524005539807845101440166729874968799077509675700239119896452618883022779621241140975695986427357370546484372366525590764384177571213067654239591381663982172059583746581134059956795205864141177911988770673003954061260522780446599480004840262042073710334866573857173805677911265755447513836620836910333073383633327661929792939443660940189695613929997766558850636023518544039942741021967035874719690494929635705020747670508874943853868818021391110421091834413512148676409044784044334202460203759787888175579520018526943943422003063601910915375926366771577549741845827670484298223434253006249008134277200539854115497945666516106616918569788360252162034850522598156678771921533508553159781020710799047297883588796089589396334382892746284590551304806810180300556314769057206188283395537946169529085919968764128626157706846425069525652122115429007757524241597601506280536810869212243213684056124860760434168625837918283248471324848074646122649462076171433240914463240020037145273838492771523810051014287479776052295672601903842500489052380043904925930481671729576481391609565977159627251629538088305439045675987183577341853335428598630521842208107789571838774765346666014176119823180484468335056453119827365677057067792237240656421873707962158547192889522553563211196190283775384524763105635032350161251799358054093910519021052506772073004360828164835334607371623087467322928831727295638301570565012805847171885036877262449185676091526880777857040427989292264929044975854577185842254691829760559948675485421200591612614168683252331539516451801473383779241387051500541421091168914170919325028974604233436471160944171012378756281679873669335979624831261611126988657817445732004783822262167323087260341166176979461072567982989679738791640886771383320063713690192904060980743327522452273982191253388677815317595967087230122075402133552014340958332930968537194617270901804448891561864963605797178389753609397963259835795298211372478573866642946839094445197939667958836842804666616609521355018580862063911523517085248408526500078243093724607748972745217062322320530570160308426447355542532664142813284925382766458860129607548556900964829417497134181963849092390000311764514038982745076651930701289661098392147327594580889320779752984752264242793984075494061427177404248835087410956814580931564387011380874505474545704575811959598474939625197839578020190708281732895835089457732172971486117125423288704320384676082776765987477087393945388802358169447922268656885382016181615702514708847013986222085617675872206017471993178757518506657505461428534386636992259747964971382227364557651670784169403948346145599337885909109045931349962210304716156330173204931488717687287292249198304057078042225775193498912648899365253533836440645057074669615219656970206616884400561655663091138544895156388477052888260795635149456503045484488469379309341213626727779133375900141485689094183584223086309030590013522602765134044731249920580394014587669331022626847850723643802272458348669458270722839950885527234554270873179064739327357345088436652104946426671719031841674763873007025960562980163574935205863718886566596868283820898291019010997880996551835793179142201650945726192029752318748857815035446604248565693906028926519117042556938367794423351391409234890218025564467117250902084960512100693583225780516855458829849264726683207904838218723459009033600433532632834211783338365945898540687609226741979988759009379226992771720149152536501592963080834056834611049495925964267799427295932376796329245799776809064977568379251321066456243629562163802363710332675116982522345223882830258631319103964530038777160605227639143689787114002929671475801560583592741755206585033313189042419217478800770574315807505920063695745590044479474506258938851366688873672290095708490436497013734210874915716466969718876797328929657132780120519341624245373665986632039715185030506046297607693042549261191332232746118736743064715586570240446608130706403537793449987428191426059613044821870029319440168280391610539202556360410007880467623567427332565054562474058799242927082844016747713982392530709976635612023371792761611478838120277260687986258988140118803958724911011029561498091908017953852644450252822376039584599433680039021471991709391204769384298738699741708196105489250346232768876780397270571363096604720392499553185094795134533636078266001477519190497968378158377142063138754281132254815050800771999794205311485693803548534460234037185623117773684811274399858897072562259308079529273338330183009640366797204732587068885012228841358533800919847750209670086326707670693470689325463106595646962938060084868536110950755277791813877198936167076482833002078306543333150309737816327507479232517495737702205447801109420767730815314112926245803503081707352698311345526131684848194032098496187044620815810144350718061396817580090632577135790403297360541304674378871536007092381871759180373861381873168993982783607120357892670430392242208060191754002889268650277692317904790010362437446879455087115573460871616481163504693530900974546290248482694627236143330366640197843169509182264394900495969359854010158209846585112827997449733334449924074606800133136177274540533434578090655055784014931118678321347655634413979038155134244933134380526988115141817504154427513173375313231148528759681222116942204865508546001526849264158827174811660632772397642220414200305080176131777497882983840737534282818372536092865331747236286877031769822558288788496135884863029218689415470584793149767365711979794207236552502795644621051396363213082668153400716052296313549910959732664803221391389620569698554954437763084224187937861819477485539563705642600172553419254324203467396435859913149360649955870471738617924615198317461781440215123630913295185320586994016628817543454540301276230080325391933350318573864472036991286852262187265747558943557374665395529570208667679788218571048525267951907380264044416545907344750589752554592037184193498770070260196040159892405533726401404702910998502407323023444038626259609527569457197766264210625367110533683284052829279596259955709634231660243419452291934393732822486775323976186823429365207240495006156831126255712111581353864794010920235188170819218482126118293749103909965607190780525008408346321800757755590663551769469842694062462445185995488981143480933890080835759770937832191431170019727714100598414516263552777270450197999078340245843417704513301462760448495990776168169576284824718380211030415452085966449379915139814602963421861258117363805714593743937793395668474809084153028276119444740734358934340783913775318426257014330092139146306093606498731686885028412673545952447226762115819545522429404841596986471911699795751725027178255325391526071153792849299531073952469677994850491726610105301206756087176237213494711958304467327272135014125137173895352898615793028177154404309002947119164175841591529151238560615575420438539173848128513231290774946882871567004363011753981083246365463460049950777768530735688037051970566679039134822579408446840426500828488703655312541606879248504350811615586055203757202470762889714802550414816401532101483932769823118174501775297073218419700236320254336519236803163712555119185031671985025843942529119866783350686121498853679746809534345552628643970506542835520537216487609326791557495422537508203903342366629166592032912808606483958842656523651124886857109965875274983185318701133381454488282618501596466083877341541596670869690241616296051605907969302457752606070498018188554464600013982467965883896849896225117591333618044654598449513526247443264621737469390142292090339253062319372724796656510239713408697640567624813004394148210646137814460721501816418195062964393349752151792181394818287658745823426602196876759962810285412144153014265338055177753669257966823346867347243544742319257016974327273869162148992923332202841475938946845915088734965030476237935565274374828296111574393301448965784127118138394561096403938574845025575625045846555802596395975827093882651445366145307129799208245099877857076219787741036277519060056327119894056248637228105661341270091854804835250015121261199095799661934512968435237238607434666987676555368992711360390663373711429384192811154329156973752642165268688839102556878172911168571443851526474528907347637917027386879735922010939798024007355611869116960507801659075788964957679083900639662370912073594711435525431862005383169482661370605144749804214858923597966015900955938094862908099210211463211089257356907821119382124478166068368898756983218459356421023313196348667601987454923332365971311731239068656947443855423780044563804613585477093600896530046185240599330817301341814158519006519887987408450189171769164580894977384006266574840492293596796655612540722230548550172206491283465237599430777840232033584820880545627481378398220629756016306490353385040266820996188679495518895923563215615721673280844637261706304747671648847554225732105032247922482786382616677995971030522462522271384719357696312611335299745053638692064651632253682180209350148242969719498158143996435752984954859103651711110802736566436237794366167067085834075204904798943523235472000072551024545760987490750339507395247212899399131607583244814186839473261139731839362889366367211887656017232197549868846882682388634332016503348660036761158196789700305477039046653724176354819251433599771453155468327803990260961326704193854441087578576847459376762348253859578979477295038941924036827313279940736890517994778192379667470817027620762844472779591378672467610022949761775683460521898080723968213125057646474841334929265201263348846301070592420562275783651533337162286751891970258072736032400319309311053816912867534177714880745670567346981506341667585229127237874234742056869532311381232165461538698480324097033919433384602512157434165809924675920648901027059214808998972482200179316355883115018063671509184015489111792128627467366630684022745805993027300420002229112419481807233555396561968240285726559825243883043508816171019366934609617682899207703173878179392437349113523204249333943846708712131342894030240507852285876318992834997745390203400377703571684678640568800049771283447298977699235135421879620050578856769507279451877469488492569301705768705280600667942899210005971681622781639295304650211969156851311132586754761447695843739216008337148614207282166950930912407789346265700608573522064515113614773906249360130994369288479560717577450470606145212170812819935778486292717350361949621593303122846473597087062698091125104621310231431582506509170948090821649674895281947482982860639703377707725114384491714838401143195447585155899525384006319119435161823227680771076051270754290985201383805863152144286003029859300544125178677227432668322369483937463442858607118155403585829625468417076780124079629376569100947894772049313307845005777416152021779748925743582222093847586906339888192366259098101546731226620970182566386849016426815625178208267494918105607603840912707598630704043563391450654239975664621235073334422736011102589018412721880685162998146930544263538617020940875076666020848845878929994955577126955308007770358605876908569302762052095089153977298716145714850411208032608572019319045773131274004539412439140877167258701451652214651811585483165200333269522731951162341446342675795481351593724398862462807249409327855196839090601978062332169216085878229968896101395064586560298567748841790675381697368346052613389874720850341362833114213702874417625775548827379526223068167396857449336451310812788226029962509424891137021588727768790626909532513670435829046610994820666164744458364795961801156363643932735687257269381606137797313446753390697348130371680061474287655716269218903811238234980526451439086129148944447965398747828309331772579086160355396502520655635444388491720770147530291268387338367115813206854126942143631034996564683424147628159479757751284145024262931314321936801894308010306348969051894931780663715223861192586442741409274279632428411504741951964866112883794274489699773128476569647568142035093362397531187366438984673760296521416063028686500216427758523212210262447323157918237640618428153961668721542567594620720080690744823082449927229200764095701267279461632289315085277424451749981032493868199544567147134284099131991691955681227452824048865546349486280672847749571837292083723417345033990735031845008160714242831030111158792684709731260029852787338876573608605971793024284547435060385212084018081800683653455883125281902629007448492631372603189536645441825553524863414610581399932164349755119022734392844230305978705219649392225666569772181384252902803777929663554720561071585391399841675439068545954923475017972870118627942792686538837724920469537185510610675275292882103468490175378706135307119970157156139640252448318420723600788678119674594097129420648540369912134155759354128862844305888184002982630722697899117031612291611773739291922360838208349306483888037921733306436705684014328387954211652482584047027285595723203401560516359548033197245321039255374763300391897837788432888009444599903225513081220835288382792975590021397121617727606710061847378422332789621547550601079716307551965410306077058689744430823868428673471268586046806752066528852416448645863755968613071850960281773576519982637103962012951980699686593834866091817340455765095676653295840658373452266553661257265491363559442139844629007354076134547505541068512431403174272763362667714828151819846638584654545267242470920618074115348893106988152201829938957206473514152389612614540870825712572316156263611877105469633562105137199656855823038241266488093049183801160108329540845051853550214678624602178433568547209141715147544071636501770317684759291399029017404121713645711316879361754489234181084624400911111055803038600535573387291252856804687047441544294290509190565506188731014014725147885531956699871791261787356043398410651652879705210527263330969814551966367642137720248241833170336200617689780081730125632089367088228847363713514409856199568539488164912395919456826762647733039669156706674998534027112223353251504517999147372790135954938392935855197584375465913242411884091512330336397004170434044586017337146508113020655526098267204413605277245107396287967396107742334179814996681450016338467100469596494875807196317931537918749913208728520974904792937952319926636246770087268228218010387632520653634919122647718638669231864371098606591859018112040983569123493545421965842945373197997126454613210656784252194322506085169411206344450803874553799619639826823429517713270557277264747956812958724304822011771886204456612297376556998368939453614106234001599147860136188610683259666207801221774168175297662907079033462672037682766274633793945991110000781945160005287743881770166459579046352296682870747537171878756697087933834009888163099005508819671647630483506833144702963238783656320423692994567417903775815230160661750743078707412483711436316460588696327159021101611054008166085151504390971514858903681498381789418764183394769968303861555026184350908753533707984789086919968987877842421023556059391128120903897749939142487384623164318219801130101806821452452499139988550510689500737005320630200503717972790366840031538903846582863630560082130615199981378667314257712751731193462583193939711420619586598116068632695029901538456521825453872541046432363595265418839157331104457967950351883208051459284315301143253796725806165042057451923328425058887149184353821124848773493880063298780025077670982430468521399383445149232341628310565791016004792642225623921557662838748740078477360601653390236848842678171201582664411203588287400022288312163124103702682236130595054131022126402046996768500167793268015609418654063572406907179924914469974240627264434553414475001185146522399576376407105902613903299335495516436516230302852007346586969783715591273725293691853557667444304882708747656425449655906023844219611526172363805100371469196111129623306259940038076126117562973166567834529747455471897645229965697490335602566977559407715531330477420011446535621227199251642101148677605318998149887709597140197851218490085256157298612564937944462547096683312049869155873304814090548465407884100107576448620893578441227914993095147506344292568779696241349916063929875136305997870412075552974211694688475952196064947293239843894552532417321675199356075507193787710481709218118716299353715223778927078376365169437987566354985004301555237427044050116023647676800338932422029896319229638139225308818354533262856469652608912964766444881076072707874930636393569338416910336486496061441886769269273906201315132456028457604862193008101794002640729223865132731490538604871281853542548880248218350807191440643056736176139129767590847274496767259480701817651385689077832517434603510661781854168696875367052254862791923998607471397654721081365578656022359585050693721821407290466990018974388092096389770356768644923624333612724899116627919474050690233305633585843905673855772528206256822536364415535648243704900512687279037739885416122374646782669628852239379882951197000672028837931436071974186933508017419220785426234755381794898274125954793999930145790652721580669821362217331411099283384490318107390605778084013121332292064024033083635447219871536276807233414562894113160509935768390403854380296180513550736449332129055792530000283995384699243413405522359606515385255041494235884433725021092147570997972495248538016217172409826676002669157534105057238965386404589862021672388265579925301149194699389598544627909294604592951903853160338350266976790269695465223319164166974936481506117835208953053130151000730404177495778553607490247329577475420986988460880093584078060437668958575154369498821337672136624645676882790407888118135663360092335891963126560694793829006436162519465960761691237911454571609153975575680615838126237201635141032743166588966183260881098147861864538062858034098085680229700182633626217002798772961991599321387590218149157375883053952992523664458595015252234397230627749540811008781392123142451821069703874928623257952458109289998410385761849283042766556389782482113559278519846933252488378200218124376179189004738219164166389331920631239719537019522995797766054339582048892866277728490418539517103669699160052633664577856538148782288495694842492174368253541413179146933925928288164648879062528168372514804837323826955569519962049733832752723348143220202727523183284500768225650201696672175068769964845513000754931233495091905579666345790315182530708674668488365458358824462127506919255249961640220685318410460518130606446942341042094356658881233971326936460821048637958932658232077749831534188274434057726491212050331878457004770434576685957980507466688198515789254447114039958342301143844086496510249619396837469106593950162963623690815536717370087611454743128016006430205634691425412579080999024504847412429140618134010662835926655518140616859921063760303318315044569718123064778552220506335491755242564219322229215874509345338882796117375687509917070321046302429522479553880460170049747769417902828414741281143533824547505963922298415295638111064779083341796797016789231733483561026973980470506758181813531447073109979761757439847639057430477963528502352227765573363371155333222453302717047955032922653349149045882356078210789384884300716627285799828224114157977384778713209743162220677763783252184589788306540578037352159817171281862775495220875962882030878295177315438518591767112026933441127930574675620120468652807337294719088889471776542040581835523857942784536074626136618080934069857431545486204334237587202730848812587322733314011827270937669286286045461585325299335369133727828848177613225605955646315040445215253313579402074978621598771379463438151338724476436440026104872570600472579107297976037939918489067850405079628153310948612740064235489338202301339187711173221833411794345629404088383333643060778308553843527255267030589334217884820674502281311117401883393643859750628407853501377551689272829029584677798168379744425573785594753899178149221935374264749899073496972426713924147890645497219297648177595696058939357808002737221328154828239348528028903231301001147211508138009530292840823353066541494990453491078932927614596900145513633538077187097848857324691479942054919193636671578670875000248630652083665043632170313325835074137660921119589548504912913701339721533981282449302175733476561143401618451026366936011853124868417204545338538609620395882791044063447524648354596561956615030687510810908091783525423511989511879252267864537564686966274046189841153202224424899098020173798889827727719657267655075354554730980631993148548139364339146831501654441853634625488628754472257960035974892631793873890044839392576932467258838118303935912837218199491477499590451478190056795408880927041128974921175113890380021418191581938965185428295365690201535973094980183416882171865017879770216603838794288074619028680639162041818788083365609763711654659354795832630664391258147127238859298968007032718710713877474559569126634155377251776794300066106714600391317563174888451520207347209298951115916876089714448974391011658791206297077734686598469328296541823001471281503407521886323856451551245070334949107330559934335107400972724743568864145458573882268518286155917479044446568633877640538087456277920728355625368835816115001886611728951460068729776404963730178725436789360471090982548425610442460021547742152783563289728382531032576993052422700510385848991162558386997790485657090192308409138001192252641181506255339651607767601251087759160571258952686210742295207282986830000408116058364478225639554228096208564096290812261841469585238377550207710525827055771041067508372692953865175306740219017350452756552865039878139360832936530603731869498749563959854296750501350607434111689669680316419082233936280584689074150932418708358275461657259708539031155367227921464768514432056688440311861268211822254293467500436161642708878042813040107350079602853406761928948516737968771287516551237224525850993110934598897827380385501205543778124603578262763072551923660676140815010633431041023724106826211230655154195164393543525239878857581085431863432960957940194722985488379911452724484120353968576374321062023326110093401085033119123619294164374734139475108652688966924304436165973238454173117471206979755195860773125211342713715206881796205669631028084728384292445308576177614108987823847852765318638566348518828498848829022927782446893904976355298244549848812475812008863805476951275330293730028690816360669290154198512486338263093256921575973114983611920993332594796424917534010714051103959888858767225450507147657089120805334498270270729078519107253536442983487492893040083814837486071072705106733922333983457307163254182734860268676959759753141457578831653544861527539244243343960650600529441813611771043532349576609727076798084157402105594769391437491607939850321374760437003628127617930113517528356532376981723693653182322648064147974366844289849429344156415244896591192563979205170551211042289284326265652936039012828795346761846118074800513651600226163379924053138160993628689573926960089686566087208901161836134931443425782418954815438914799175435593634640038888260200617149678500694478868806650640941306696337853942020602895933508189914475328068408111399507017654890463967110949527897502949839253218831179731100683839161261620030367387560686674154721426431717608097834334710967960024752010447660060703217435392933845793108980553948145015958345907338697628225340230379961078769569517285576258615496743604764445771634451194114657771341743069332277952470573007323639332261533535675199448959176537974181095637162875179009334014958269002985534050987042571257016733838710867594246856696177458249452457342165964795240688347627027149940202808343009267744494068664310865486557057240044436442189120271574081671892448938033760423019599243568795549570640777550326214200547006608769040845522449550944357817263031275097662923245111987122410442652563957072298274499268034251522787901308924491299519388660555401176853726670877291026207656463937360823662201454930565188121849912422771982287855654221893418872885285909298245434675003481614709632212566965839222739933705540324403067591458558891150547423313454824423918018480118347936879719132041911019742008352744600346045857298681460895789073870519497063533470827257856976952007473159614260515615728229680821934723188754265501952332356561037703661523603573388877619086641304545678356646277958211840046128187058479167052876018087962934342123476307851212683084640504598367271247418217252615859462361553170465805818357585178749172903143495907837053867264134903539665051584723962253046805838702035759527945342397217464118331283899580658412604995202297032781734414547092912253983976496275868077866856783609460570151656583210337390131055933522623689140845554726148139306093464049653044027820451822388686940716634730395709609075405232242417684816577385887442491642270831280156784974193546801640446619488664805367857574828586274738099781546578868827434990231382633228734106519649035045996936272051398763651175350421498348115809808199742843909916824341392531192331087210820874556277701326880998993326324410507079089528757139954856565855826013203033021961407026819297861496762230333447975183224600517339012696282868285280806211770670723904249158861760078415252678805695401936259125126431480240001376298351595020192922697841587544212043378209997991945086213683219817792649342498975330062771739523868917202093401967250007307902479174942349662519403491325984743077252072007238509325021751249465279861480464109091751992010268579541434539532268345868251369150129676709919515320479104486450314601982648719469392986203808974057064091624787101919101560957977371024490245787760412366374957999151943092152833101452191344341753227787289366178816147072176928604382035749034885716019352053346550179564328301912150422095039317547390619972964676061351095383752558009337750739632196781187322050170258607740007427237304502829452234992831799629158750588026692258686545639046007184953244344703065224508459657661538338617109538383734236164196639046139462722423440789124206231735497132944364531188849501283826236921252049254261200557450074699027226553477170025363385482860837591201172941434211984961660845698037362621023883792904768574382330172723215570167987975702901971315482001815718030092513366606935034814056612050315441043903199722994313328582834934286590363016902017835978611914533438242361870341275921558430752939381359826693585056125709881731416362343302534992517662506695567345557583867645456827409277627851526486970118531241123804087199234184169217981563597122407423363463457562499125602736349111349345977763390583429554762873609905019592553481312868709798859964868506753361435815697095381236769868517884105498550241175551019582104532517114345039588715828614025006444591320559566389961214704482669479064341061278277463882131016825082125468075959429581108124351122266887560372493797045656695006238810214080366205501948534664975211556340680801573144454810601412071366469145597154253389890630118478815605543653579789156149764339667781523740973852952471629632842085709251217989816264289112999067973647587003388547294317739489929220795065528570271596199320086155845128703075876454845944193608524730757899287012168543083711381162585026285229060196389470405209053899791495817855289388093341776911307820397263552444183396819668297003481916816129584923478100738682557658760282171732423141660067587745037336114855647363061178911479910404148566306382503755636742242136146234092787808944514147412585166763292741744892199900634029903036561373869752816865688487093302349400249098548390005937332441496041056723108633192018482083389436237687660674134086158718865622252575804378804544609699260636419252930870354661211197473514202488670456756605205271915461287877713059219385902300532261064435742012060488600568871861284536157963568797853253282029984264148078201805109111049797461935548226428005730715581096724834784572915942534986787429605774709467117315959779210981265020514132345897301821017562103309951326725467102541387467487337441345588906909132423297787359287553684439275569048736772477243233361440431326413481091300757559811561414162452922476943373377792588036676569881219856940258855853078787710146625705154917358092529922398245722677573954773819086388250756126673711092431493274563857492224852567696839000496234488743205130613477612945158646971811963779653106079806950473829411498687203683314840665215589902167807677514721745104669992166866297254093494031432219821483492199925692360850204337273404905846189974575225799554520448816996858506911858048692677922420786950352470332064396431189184228877332607434250131799717036797123275822400779044984747724419603641389191963378431596594514605106105414829743419922842185116187854207764126388101206089023197751374255339609481236316005777429161363958689409257643701135809785266820658097683211491051843816050199386964957671673590974965194173036145387354190138418876328206647887871990808746473091873703865176636390590474134894550871707739701225024632796835614154674141971145604309357535025455319065747058636446916258131141000969574096366798976830789647101228015127348687092176972745915897826387679236996713468072568186188085415131047041291120060862150116836340370679164321611266882467032394461198325696120735293608755989684524151256990007818483519441584223970200005092993512380770096948249122002092531986543135276456275231241894714659824370706258418768194563609121813517998871660112074956318199276339904385337368643427498640378157890572833975604716022641787873262704127211058705026947146393007558039894934354896916228234799004340212556286002063038690958974294170167050134516438473407819910850783861405940596658926166446665903144010001115074741282799741024918319026553213385105757770717385074952999284347854930357953491591759666239047974315213815523895584525987460112706333693092160493740165691789175521692359600849610475957528346965999642131740407159824517647810012976821032636897918209757768474502905742771375704093292453172215698831153711987613094442727460015778946555484816075062621036102096611582954161664935890380175542560313493471541482836441930387707441836610564819396479114404420029001947833789799225851233263189408851596502324029154259837753689101096980081290977892918773756319689735944025128286433062663053820286005630779518240162440156554945634484731953284999746472130544435820888043129347349827126149598704921634514147668315102557155646930702018927055745271837051669825362203373597071229959755301872718168948861972207715793256892989103335882218060181458733334636530973157589979779577063181635905858887719594152561974002911564711006076878053053161562267204313542602858470130224255700712877840028602163507292272010944575333387642903945481108450988089098936814972259955239417539965885032748689826440607025361471801414182960735515042516218834185226564646634993795332863609887404224331040940304010364221826712708659999128437380626809823171112389045532771813683781152800011008774412639377490815531847401038994667732458069845413286591587207132869768895096198747496968190126078954315905894171157514334459269310731600275174556005431113043863218783980550785843029178380909109484859664706270338781029344608286721724822983043002315787647059690094741194515581908643473474645027712061678522284261012867939497116959765767599682038236774984391391163204569845679178249769971886591385977634187792741049386191800191951144098617935881138224914159097036143265944710741818183379898046988746071329442553293797135154626222701920770137980870484982624435902277390672302272539590569959638041475208615001086071495765091927385825290172452606546311712776423878785356191578225703800479458236818976273929447341835721600646851552358226107933626767654402830420033083744123854826867936595896758037953374050610338961086941956672285625968870623716974939537813064312053770181289583168115609579372851756308757998752350609508772855920240925741646703396398479758758423023280565670202679063159669413663628107207126388010265045015415991678005146262054952418987258551516326924065190860187972886809686830089342922017606178456456229816038932061984895544686103573535309458695466814687000088856085482780093526258307185276781078574124158987699546539566238005364132380168241722522371231629168706160850666484961627178822762582405478678532404033003014420755691498203658552250428236791260792749491729983861142861935270351366910331739559192080787667959522577005167548374965985535736196047344292652373674383698379406029817261134981751154219476062907664939042595741797842071885451043682458840713043558508398174188694797413698198458342874550621462698718046049345498681892477982959659263144807505985031687301012399439556262760896030734219581726805922737236612528953993049419737768133180150529811332678467789031872898917386439551916298142073856262047009712332650730806446764662600544206937047248934051358942433042056741876965570672255253021684323616320173861768939090718789494918075600261261787591345227209981260639277148898618706697014759989523625482086103628070867174853319540519469962697941969624621359010495297714594073789579304649911038529908884558629836456482607890067773775805695998422578173275972217905615992206626100212391515374108552961436775958157132843634578840308958511678464684622943706857182369160212640243794069575675616898041456091545181296597204615565566315935710972889110508715839597516946417266216148492589031138683470780625434995733766487209348553389248043297327454042755042911727182657810839789922439827864552559354714894916497318329928397126285773499698815085781143812686740521484808605180881198249807011027566626781575133760674884677368270122906271806990708810967083385272855055395099516190064905791545092635668515268733931014325417495696566861504863624296658410610089844599273839645634283076007323913725130189447849652057888267266857826740506172425874582570916205807312273820068330830195081427624114222959480707747206425801932306360527762776748905745835901495006812692867745498865102706829406206616497086609256701169362800836356214790394327930260048301507382812336759535659076684885112315591550299021139277236591225769594002062938028188284316790360898444920264483223953892403613964310576205389518194030698813994306572215315096149448001930342945658481443671409433922979733032825830940709166825798285345091465175293131064511004477472258535623538673124658879490433930483963406771227645891704596734982583801585871694421282447435307222362897639126313513410892747521681586499633877367996695828036123731486722778129780755267835101018317410492548164355355790083728167995211041561626891284015184368781523224250927421976960789149352621118406552080914327273914065831706607074353302970985996216228948370536752050337081893927607425125266211299148194118812777911383379458213851028399896892197935589609057325611328530976585213356499129312067018142014554078317965263944635672276508831903730401168947494026234139398404150916903134482107528406555376316278711769672368776316302620579610147070106595679251125013285930406826261914627390091202606799856929358200790664701822413899686292962915903667976142933792027452170551104257410286941694289281590730546002743229780062121803385760739024818148061986723939051815860887952801799343795965438560399639094798019867309665979592020569073201361182735818005249594151973461244063739946672737374497330577019781266711368166398523451197041399464418355355909879271289368726289160741963188161746986573679211190306933964688535211158465126758699369948293547119891114299393534147221373492258490727883684187114136037191440385233082550501814282153372184697510215819671814291948891496999054768545077117158244191380541604550877086304679918455252904381549589696933034390058751144190625009911883893800071739603619489642032269762523467852783116550237321153930616265090661906249957556171237795509131061083255700116843226971757238378609966747416884928622695344837872220542694132442231506543991559767126913481327511808093391093180538951433675399631731377742002222523929837371970961652374912344338367796617203506880059759330235311623085706323734515361855895686852000783987801819906517103610730519112283029563482186766361435880053206850070207871743115036270885309583151709801069093570056584848449452559224654254506743066232615453611964428391054227444136556371236777886911251252998130304384820868378358618601062042329965074610365208758061582085420176102446958096055086156271553611109551416622761760501307031261607835980228615088550900127558486221079028378043880930119726975045235122878661146530201541871803320986401034340623386042907949972788272565212983047484264552330969599099451325340070009571878354383827840732562745014407504079406930478242910660525905709782627542926245098113276871274028784100690880107960479927384527021861706279624918324510083792437013908314920316830886477201752973717182756769296884263499429567321233176072405947112234298106150033018708380160282926968077268658804732431299563914480580684555343230158280350060114349471169253593655613986813079780149421842126538126834860801667944890754412842316136357142200351763518100713484054100367916704864659026026480266363141402257202706704918622844920072994051563013244399869052518562156681185761769000275757442423754718379261353548021709479864489366202485905249401701485780738084801545593900771134797087488746162772034976625474406827197537975575034041735662565010530064587614884037427011571955465798565120962555055160433721706136713106469576115354686733367956695119690391501971667945713720154565087678714298885292017367039527910199785202385289819752859055135236135648197429144274593357275228690361401529890983313267617861584740625756003926983030134562941364900572424815840011461449968075337992211915973204758208937227350298921583919401075452116442587241854490663776310789328947237297895514202501779554364987400252754727534879006474049327782867668358882485147806696602100554283413297261404159921090881119177235080570920587073465806782396687936240213683792206211362249931011854375939014044326624238433829199693137405936787685493109805892310553976850394446398957213717386504118348392438727685076804036011833739053792376009551787706926340945813155898387067403041214999742370911167932998252257149243130471535640957963547984428009498682087732746651092077065211536632975492709042022952910776315010250807258618521479302838329290189575399597362874555963505857599711646596329239896551756919409692089131273670104843231933360712425760057803952745055545448362998668923951039773247891457934106111854410998079243810030511226750863322494245079963925444251421614719757829842174685443218955034657771023275578557666452905209938006479474218743329098130221611800316002173237892553174237949208214550380668886614658212585300573635303579147907077143773720917747102487314145095728030684142801267091682220159514662588542523431476728855698068830846662505362473218364923752055959773677846045287290086824460025657664037275465990852615718959741795243543982050082532228557448404029880568259874043399936357372494464751200790739358160461880502392544775713030485528128502016230341671310229032865016366861181152009967026067589012801277669770421294770569097201609881678578293449310050641739641552322865769999673647173184375297865416432997583767122272964716103748558321898778540295295853305265435301834704910232705081928365333866877139600687032834803485531914807268265007827192339356698895946417871519247175427974943256070573294842793808837286734722721541175500772143577638833457353201536683579833073299647928028211072337965018654073010228388147937137174739864283461056724127623218382370209184955349509261310208648917147652406619429087899082735563333278957777021123210071217339057532190366873559191158969200763474874205047264111663813784731285068987983668619648916617568020629960179370077921081493431695592329478171278670569629501483515788560881741279765400582807588000469176500497159694930702813347601765046592217833704784285634271490679147166101513206690464571380891069944484995898091571432170209275677724559441961498690086029112254572931845505391784425931883093828831269957001541949243859002026705934653461250293773568175957857036359852021029281551537239392564446595834521250247256169604887034050825329509965017880964107806447282381105546267932892298497823392009543552661435804577643473634711730736998483755539287398070079076879685889406941681673748132006679347648800306712694534301037094952322309607019569343633215115528502626117199700006199697458979483514635186471806183757101002962582140392201484212690649133400183240658518574758910253968440840578139437101219470028699902743231303107870017195555204757257914117383738652396889609679625192662847894221372073500314167902507648301754547960959921183728799998731474424651168596819360556322163639870684965724871637684247705352438008707805244582233058208642211661611037193727859215179350633167406753845597896390641427840296194675370262660852767986228890917172108257168726402619031651354978569513213877925304963454204238346238737465991097677386492869659551351843858430784033573784961148184976975098622399187763187387842492235811815549471727732903812103897829980406893174632826726886886349384254485959599439172670558036543284430113134413768250381128528145301589084061436902131533688950496225516582590264699285156329121171961509615375786692100029222788343885022394590563432821427977616644327696135589491786090155512083422287189849629051658353687153676083355872388940038298395267952976941972823992286576043939009543223048789978681816354319986997364421094799552464775691374520680673456987953200531587746466112477847858252286654976053953103909709033197056626337672317609152256433606615662146268528653481572802561539982063805378818040525821992029733024517761143745376641614622113592077066003469764017931756061582841837823603941472577982353584137754772523340594014585283307849896416721018563464311188746991383256725046283637697373740124266183863426752508403097733644093319324656420791435882192412025468621315625290837615208401125650279313787291978740885238485168360509753713228933002930840360642129956028306473819367299668696141963422901592499392144554215523461226881148551139838464477828384278013500064360395494033791897388307444195703868073095469757474579192290202593178375777783795183175786218148166532798890601224797283718900392923497446445209765762747295436634951399553449352981483407142706231536449079783434937771431343036881329968205930537786584564557402775785204682990461173533365435550920204780023083046621062583263351240266640960636769725604856836467421112024901076458149448307275677082928141520708486370297635521225677094725144570626604870969524540576057137935702758934256071567773844654083910651112850913810989443206504831029124422986320988443452354643656115576146662121863723418971728163959647730462740886084975622547665070823343230573149927280149594486935529419010825733825790625808334686016961676391052656838166763417827285960502881729993708902729845222843721531086290333951648145745811609707216657281709071275557409273247549296911331170549848891981915929072174522068565340525790735911430101750922004244311970265238642002803494307023886569365225423679092332251541605499629739394108608828434106081994311774660211289631321005716926991060385795698835103723239265166529140503471951145572508418038059604933078755872420691250299092043112340115013799494234430399550469561562291691007336371262766358518432820546271203999008202657036597313428293887675659567947440487115043694206164348402457851038229943318465003535906454925560392890841233030984191137960985499359558009022466698694647697383686328726796466259210644340727868083716928467008704619057808544461412485011876740029847625276766319083582711778992114534462709502725942110866257312367870348174367585770455267958767198492637019917131456090805113424668547982824600932043725068805325293633033365032948799739548284680564416195602100932934547448489262832189363360829345662360733752552437966900019278312253304999352333198334163489426549639529496190430503756348935566836347475083397370024306100020414321914243193075627777180594249982638966505288800573424360556835439987321656344917084905004001964375155787711430432253771521165247066138008150161089189342254748343892203643467197680669575981300600300424368586031803786989114990113245508745776758557626988846304802188956449733771200738579721763473266429195829329071996201131685075372359620080226848444771106098192514214872951715938995877593757489919161558048375543569818673531903947397485829582389810433266314934104314490761748369769214229034621817306415421340912870692549668372272420283290742047522357633347688153925555031801745803945767964589295044117073095293820185147520621005434357045149476334127325207882592279004512301433146161848053555194702153470909637627061297576058948676102137154171796149102181749589023148577970142227509890637611666413794001927776038655077848165479843090694157271955620945663518159959679955576132911304296591472526460166492004988914507138514072204098699306298363052849393541177948560511438417184904903932816856562624249421221588347777634001464512926332530866563229408722187295327202468963273602125080474111998477480977633784007227819379767303932392763377478817321386619583437952529417580881269951898050902617593139121897020541644121486720112870028605296552854541374763624099248937088243756560576000776332244645051199157752649534430948648051207520238051171902829240029079903352032493348671859556562798926946853421265633886885858139444755799161042644720524480420850562440579581023648969536361264979113905720288170689809704673967339480342344797272231292472409251325274549389060842281008065810369709407617704186743123883399423912120038826512066439708257227136233001715540169381969588556483823018080117808726742455482754767653618159521518063715950560551881831678507115202017388660412629842674137579868256647712878285842491315458835019729547870270639075634574123849433479855726920212222243910610887682346630007049893773465480833967730857008374188729446739955772298270496808771913407231727693290517822929139559464722100965456532296849733529896819918843233919753262638439721061296116152669759940920331559162076475400485697532706843356098764171468350146521984496947967103616194151056496519160677414846640928114476204392243006532154196374092918815746730740343945809592326118065028497107472585044236007581285196225665805862288850958375030679432143463346858078623810176008136764599211381531393418637534515273476125391955396996101651464777926568300041233555613764181736209729470488306808232865456011834877770357606710804727406852868757526630406578884486242015864429886938429822197555314304587916403323158191798726314417478260054800551101955750308711359363712286439213552395276758925214155060061054116292399652219079944283399789677646067811253275256129276833721566105313575457964947470365098497946767192913725804920573682191630175485454002133596223296061447647557196498257474036056304408895419124961110628134002617556302730308605087460262082381068200031496864499613926514559741553987927948667426779823063316974968839794425561395232558319052332186172370385075433618677273253177731725166459271684613978356722839180633697751740613527420490841335593320830124988656224952878317695908288462439657892161873996982183924049061714368958150317148661253299931612427695117463278516095852070963274027002214398005568704858681423139542291613997772499266037862330594456909906061676791981706336378989958338150612287039477556421839979384172467702603106092039727536720027252428776194752117882788915533220723180663541165884796756460604908384116226700583863816991246856524047323949855201980671828602806536508358761949666998452355772874912137629152947803927548510530527892895732589384452087054042243806271468637182001563260464616511830140650757706127580624926127795996282231120200170192515566301233690953070659071418808163040440838407602952892066942439849647169291096976115419583842249212891236857546650149167005396163805281669714578236833635347169744793227876413161546262322335031923092081801578841275453980087655550460005932776583469270784615731532988605337514440176869890906223662259824935047286060646166130431712330078821219853217089062372222261889664964165244432289511102547692894730103439840699840207446053786422112582156848331491188872161801937563853741913546554757577230051101278741617248849872979913522265294014141466331564721660288911720459711119094395427022141086317227440180961206582508565266904351410763359392721467766891603923123176450117562503109796095738568212228719086023737512487486292753273943977544842958558581056043162720198131910248414649574717488568270252121727242108698915176697907359141071190646826916167340325102294010244684939018823935238858650541692848346268397826427504238010641107414596629832775093404400420332810051894929438016431076432929862334769836640942035406155961818393518631232232243259150979629380042164144822357496453272213843826316448233076477098997205961037054218867156788005929846417255181229731698935134483841326120667302008839077768846975895075561537673301057474730927798623715341594448818251089842925088623386096213189590074217441484514867043559253794733036205104939064167403464945922214491117178325659728178473061452525647632400174588727239078949907013337148366997889538980206254074681696246088850168950225665759287947553650588525002380024659624260761312573994683836831007705608970210076654763199645481665853501097700398177822063117130094562726408103799872685202938826835361899213078027215351178364025583325381503087962318908523210751625875158898391785861077777346646923925056951047498504439606059850735756674098082182478798857356821095981059338089166125355447060974320750363943119739805605934878466281794811747531018833989234491187837900531330759338938733524721850555795163292068848685247780359228731588933448083714064379482311242585311416553253883028270150579220660374255026397292508273609038852413851485366970882275284517658041450655509433482510360671574373432184706753258945053139261259717967962653183209489831434133501233160568774941890526685053050096603502102552323448989635890231382337718439774483101003687991331179879110579286087692094737098216892293638356253019602486060313841010471857667237642930687125298115954484655780197138059273290919836016805596441715902552627022922102472662744818087179906822091655970214051803437177325875837192610510637066476597024834585013688270389786047365195288357319268603162951079467132791004052856689239643494698048262397062641184463538222712964572694101717110672752798139449224367387725545585051568689661216219762001132067831406876411242782682363771315436432315468224025472650567192263313690622918923560308027656486160457992870844397393009118761721624481130072136644604748017814245984600160624361766945060639806140579068800319333599116882629600151138781425752044503888841552167149492854233077126734772353523780170164485428468478063474458382732066725141043804305771742200741348850082029653691891284761267144179433938344898312880732841347038768897757544546842565064918619898540604830805722611421772426417695374425672000318311517943402355356757835335372003481340741118539830220278309160760420513801539056570539551554743155124741671498519399051939162859298863350325674019237493477964762659480253566101048671133581911874527941599916145788985451650431008350140073109338371352174023156100532167537598617611446281712185832889002030458730036693502761328547208225423994209685081785791424567265594075398758795677712979618540183905805116241549937030267302766416770100838078616444522793782230989789306049214313013215926192666869242863333953676058796032777555123439755410061859636695146622757474517008709770033489982541322022550677097230902747706095289212676627705065285226143657406785767756092165198384849943836053085713174443128379657141516775776317203629440356425005832249438103681458878948940152855858748643034327693560031792925082952859517543076513905655119922991858692156639188617247750500092842921098653022392991921150057117043195214107865674192171608180212558374926275748102613930204863238208173644836758047477023548654350429595947332000574431527377037190021630272888405571590637442176741771796040293003617248292583750890669289707096119527555568206604749322490752781860680125515363563092119739719888515274968032534848011568888679888419319285891963226921340795926536200438779551982490428591700194233342572613595834164762147071743931158658226473845107802838316366384221362293561798162040053608234655018701659291090431789264931094999570547980696401518262959909470411801423312382869368962733401651840976846958595093612405365480407532376663974960371252450487006327312662735913956382651693523382743104947414648557029625259651852828381714677784390406322215466642028128495285441200234765938796380488974921157027652777148747845176579204075782831356004902362393613873669902828805667498712458364382482912155702191855531029639636604143655742522257888176166998949201282167139405262370527577967675273791812022083879372732009512198098923003049925389885522491552099856193342063942470044262427548366382736540103666249942338337797710101633138022540789093013398935574017602152670403955640457681266245790892134098900059977105803424273355204174754671378024041774864192500671288070413081786586512093377517875844383019078147556209873422970819610941951345282505873841042849099416269820502793284156456586482265629356468026315546094500007470983387117586803654104268009595068346108151094458652609826659268132454344562095044156409346144617223243530765895514903073166260885459076900914670709582873946783965694425158602848301954429798134198831973441195820107830920939773533615872437815395013352445985381590541915451492993086718674577149978170074860636178686296198561808659335892825442267752607638328378466082328090933118752994866774787662339313111595037028226408861968707835120934672819418856084017810294256332394206442202309639191755904758295929372469289482703554113354232340746846522703324555419891292827040750929830199398589652207056362425674335761932904692473523349541178451248094309505118621787665738853362336527794008582797414322687618413939667622287091580031315660010653906310324244596736154598677370250670003504251674066160390767601974068691799540402255528094512768302360086667210036542217493859038122686928815475708648524527759921219269584069980048620728346862116061603904003497717956118023365453328138677819899426615768440642038321517288102138882260487682190561358596121608613571407103458269922519557006262739344387193973237710821936998656823669005414035395501205874008486411612408074755929570533697305952513850261914070996763802080339314921794327853632418645834537695147081505967445805224013314057947411252507294566442927252344069009175145635923751226396048372329856866758662402592247000218536609370037183778153517178289999013890646211661915437066249146053112720391985064025484295845580526999998007758424288247300329157509291628700939504004956440869484941481558847361983378730460917772292181217690843054691668797439393188312192988688612905938715871234707529727733161234998158408474134426000098343138979560626630941448222463476770584877548653558264151508199178680125798810575545611014757292630012025507261784900185289678131996928304828336023682373876612503164868601447938512331993094481977986714484720916872609319570015287679169200228332169611617383638823933353820259554866204654053447349359421205222726608630716259329532983556001341363344199052475712332336601396056461122874722151299231698531227518510333757283959223890873041121981005138451325741447754537540294365808131286087062760994331283755188046200332323048610087807767908176033007914153624938699943896430718086668297520002050303067649266867524309730814047091529378851566118738697141194302411179687794139888369717984769134362405207807980565649873316519910274569887992926379967667613388186913793618833094306999908165634391686034287097371218458757816050645864521218736249234285513879301721644929787681095194920353075601859622574518227628985738351604737329100971158200503944677252364034560392724338654743948084307278136035325368648743401329971271923269857712261696469303007827476663284251457267412475594535580121134075454267816340288600232631635166325482190993967224380973508878482152226932744584606128895592946179865006423072577654963200172769181578909213880274997383754142374788780022942495759377650341311083348681569525186655999784234714510822912188378493255053652038841718370846082977780734182913612578451597412814793716745367261289184967430150028044029777081070922529527639233933130793271736121810086690997082143949105347474963521801680857773565970025806253577213194290694718298654016052416073088409804137993883828132408428670306380926267866394136341153737685608586155367800970409724932118998888981784164522561462974089203110712690111045292612345781038850390902011852503041890251311166352303112117758196450467797038993661370671247240066778722830412656758601560588803518625303603322060386699783775648477266984349017370679036806894653161300785537278872457059426261629539834979231391281576699780184968334483148174047889506336722114552710505115799463513459761322497389918384915337766573649843484556143537925950501852589898458617944229467295380477580873783102763165034071749708311199732659536041275931955064056342656698336147403602475134496800215265882214255627527480834785563314779637767266717338757556991165606511057668832679332094608695813131471753697930154411186967844866106780748492099645388742987948026872626438700949681816871540781520192175828658470294914877299810172397061006534786691081407986158340657581293547887390157821562373716026123958847729643132938242906530710841202268109556616545983110259741563096792998797766480710470492937657932280139710152807051408591956403405368184520223403153454522388188282650120581697743941648929595065478818955557769140752585061512903925258278158267746870933125793334653147014725349693291993039745444307683432629204276932129797435882757878374832359224434196396503026986151621595234883870364644298660002620248296654293178644964035912276599874278866435854854665367862457342174631566378108476792501465723548144895057922507053463334353925390860959567562686510633379181975365040784329081948245233385682197590460755767083093671719019454633189476727162391464784216642954338008569189481421056633827572803886893499346342846846159189747927469177099316542531421404030155602828239472478487191307372482939354873459790985795429369816787583420142527513507925718943523902585406250085447888439676944554932150378791305497800822639428919110380380633926990174397126608056781103372462136167696230454328641522472111155933120219981526097148591431488271241922560164651389783187727070898625797797730882364434990033696850784001112438188341409685022609634118928406617299613435993649894675027075155030877666056647687385747816796224710370371470939821603978207992455605875785691011563096450110483402815572380241721281146884187363105052663315795214054030337681164490345572022241226766944143690109137694706917129864274493732442985032179201413483658704868100227446809029100394044333493911307516587392524462370757786614310218651392773441782939086996353692586061692915474448817225115721599970761658176035792062180483161890639279437669011967213598842692705260999746556065906079497501228233097211313816698561576762476510247617457709565891861355668164026425607910885591669872280497475147954015170581304505088311741292443804696288066424292431351360904763803278555814912546479433662177851323735011067554996611921715564397962306963679741997499156309082421363648223035765362408668613760634848559844598151397174104156401127768638742724187391726118615108064011135744488365196825264121216783504522934855834495601415812592563516960501749804611891000636715650472477730943379671207834948531089156207440733504228836520248287608401322730113594053472094590540707388133840787505720401275113066974787280042458421396269908509086271536634986168269135628410805725269817403684109713499183151237427131617739439025822008725351426909795965831959393198221397142477702694822630268256001648565924993644925458727813916019941082211884793205267672600616721572240843893009183751785175310044774165976809921844709560908843791772382186551159612246991834189669810308329090830608812958820365006916442983140037307845858677271640317459001701003509151524350697001247392734205876318178360907302830088896196777391871695591001074256221599548488088521909593000647849835934707695590328485110878546627059652022249379591964370538430210705915606167045471948987171837135061315611421402964735855389406292211017909029155644578219850942244911815465459393425375394814945860872454863511989097594142885435939036617232778339004154061931910705553639162701198165591682998401479689395187972671388032684183823047491107549938792859901916659526516993237140463526704847902037848394897216857446446876108624838786405800875961623258068287310711835737198026157499507421354970225255073539321264196776256999943242633328369365664986680439287902722712404802695084977238456246106975149149569277109061577007570956064627851419618190904589219590628792016000804441558801844975662815981073475791877979802209768583381751977142847708165923349484245108945881710313517639717172638284507621482923856534632675563227199854311488579547613601473896905144793474874218908345328062301244593283788968267805674904920591734948256515340020553068696055896222924336940096663250437180031028106728668965153114811135036310064186503761811830158429090831460807660876639673466192479863384788621749150801985451587338913675215026957028898553679307204142150948311430588254194167722981952137983763049750328384368283050703028834173018195828582430605635496006074193570201827091881478996463482212131889721526683677474408627948229896506591817625996018010976715080279265994357673340179287485570208319009677767449335254906545751952959009793058763819644161206758816189847185186742020307559845688851203667567140142012278854540930307943526067236923505399804481466664916118356923044507967818305782284343834539334370867629543834605989614020037099108105019713790533735953603741808954620446361843263812192834157477386411804768687989981615543823687568837493868796645960885584544227355995832026675400233355799512633067239104580065650711154294523011022932671887876201156782942736627473539953948338265183409760901677101057820461809051533514300820355361301822368716926545604461262664988586555782038858906125037141336081064200285297153902524669896233303714525731889287413066764687583972290243556841669698966262904038159101434384273358901167418836762790823409804116570763419221936243378039883984503676467714612724868219219435161232680560349643947743549967801726306879223240332142245709647030050572279152260260971134838248557457779952082605153187701477542417340622977862448870912642693897735457761310339869494416963152300298540486532876474472924984506482446690703579088189849279604542820164616118682324909135510480776872052099793677397403895289516094151685483420386218644394626591780561826440599601050631791519982581298019887513710156744186184143629210108899541979971874260043231274866437939833628200543863341296954631849381408487799386253898801709888938864043685599473004860836964051531457822502136544128369123923194138883009737016464296684765517874486472223456128676343125760607426955780015870137071403771193008459611690574424772081106532951932445919557002271689820030524975326708387372103619252225963150308938198253481876006912891245751536488155163011127021267098574169451854666543472371719646944368400097996239892912037465297186623836525870985280618791376874388832025991759228320214180247064732989232739405209392519012153273829963813351364241001613933571583418516929068378659805291633352488389497202422911700953414583257548413405221698064599432359231103406703032524891515497874845850375725115929451779117929676324776436125697353500753713998721402543097590210777516490977556366456301370794511624899500130325933118213168207616329218994620287921495714484718458609912383483901093394284873417189460315746283508198960401554092482442246462358076396138636358248115002121634399420579930303836870900202713906633915929752624866586153745678718934402736808232830218877427778840237250229623938840716299509215677085759585615489265773546816877681636995119144803055250884394972876229401844069719892699381935814641508850559644674563098163623737034482035133981155880954171325238976805957555833686234130598406372451024060469348519041270386880081653256946572866459646000423208946883181851834227914155620893173935815828844788260821189868936047323874595528705639575980861385280479514344851507477588867541559854675523478007105381228051636917017056511584539380679753256102792151281224115721676842146979621338268813852617359875181919022262409269425604365682303800493355572227948650217214354537377356159525734214904931259404612344597978362894739067684654044669425238680728740928782096941286618654628207946448590396937531190999147563459949681882223894049818489264281956236583429669130468856667382048793403294182783172795916711984919433284562758501334093108732565169505424496771263262953792016328805295716447965706498811264118908267494264141397977454977485888098308934594488106220976634240200003249067670677429717918460460031439986521733821008738117481772166776361111184798599786724994063184289321756056233234788192460650202696288576957733452485327329700927929093533644382866341608770360394180812563753284417509553220456269680325157783324461612264340911923417012091606164383554290441985946890274419489644333301108493163455443552593412828198392443436154316582850027749125342287327571847273205013660902773109095764151758015929066885133272725344175494739414896961989829668551153792209866811293915515861737309049461017504916843240403721478241284051818954159756518106812289558538292907957581942065906945711039360272658311331261792120275728256821056971707014673738414609696991420649332853173844978421047353002585430206185985404046544843980206479963935111098356289917682104004479038673457675218514859340093519612762211336888699884299600926378178111288833595208201299949497150730759169295142359316340665638151234582871061577136656054303340487642938475696752882430129403725579292858958299429755936554861228801079155653033313681669338424030669467029754055364737777777068626180472396783030439024626329158363808162243385855903304735320983108737725100610052952001750633413289405845585879417970566935073421335094820667252638386348673546912190791050880100332125981407807710877872127240661211830947546472271600706763369911217250677518144474233209079084523456507302409300310506705401675522878937321006562811713928086732959790874410573294721483243005649794008897202328632012922835737565557092658123983153895550141601798666252597071724450141707415315052908477540111215573315860299872639028035588001776322750381535040035190156265325592386787561064665520496162069482880812259992987174426933808330133958016915725324308785090242703368813548566136896055105831699657143034567099722831729628226626468217126752983673702083525726154397093724136621326731263658943512199753701035736047057104389648356734116276373206388162607002319722823435150648876439539484615268630813684144288377232944228558689870146857544388269456102024570722272867677775598430287271705625878826940630286508033564790283433545309221371984651539106896277181481571973030355156229562116431594165941290782118616344488414133161881430316069838632873371439408471289083517797689560574308389411969441984113780863913476474128025116620501543751877633576077172990995855841431718226072705710501081833395110825912587291858784106088110816563250168369542205885175147457722285576386972608784965280263010768129010166051164925617752692976254518421380310244898745776047979434245520549653101771408052781781671293272990314530093088177449709671544546786484099689331576015076776542091701866382198383947671015820312063205448078558774333293394408647194715986107264309984184349439328312193140547400804736324225402578963370045410412731679463316786385776289304948856540774804083712786368513462342686040702158843360193575089081743221502015992893988350031363001475186073698847053119841904082998175548680306773348873903916567826781861684796065770772893227259295597553423930957378256939967441974153169881474120775637725941971102166150358965675499728418440469724974876320830177451124690464661816312056346040017953307813594739953602906772973914640450347928506679774424303825282740356299135853568469098517906738488621307998752827676517204893164468823519061412804954976635389137511502106789909439439481837982295845810845568720003171457416197225693665794199362282889489634828504135984937277027873711641582493100209997346481322397415245827521555832114058734410730643821629021554336121392358748917981788026874996250442948547715327188709808856045459451993637684317897388128954946578385502217558218971488799204779832911265677641088081283724132960403743882004396095374301950161286162879244467142739872424042332331470092533051186477398315910379639934593215993302212166151206902942256465414645101575401493118637799712254142913288584797127910872928860020243954694466709017107243381913279948091368479267381356114805083215279046630034231472844715954990356277382001882592819498687013185391702874541705221519907521241189717359678917792774692987624801133521344525838323044459089943830013354426993262499650190856481118164885379281677641431762212266039793458936487902979524218868113590885333039773583401163158381153231380080824158025207089088356380808275529713384827485703555563046932332921310173195252495637801146686648294553113300237035736935502023463905213143500889344839407073008660588226880308970343462835591874502578913058896970655899165769688314789009792128382558987243379018790726823898048632061717677292361200939878398099979349073994480445720994931230845698803620951100336613875093529459303714891016023547529829791634290858999679335133194100344840761292922967847059789152520789154955693463805324770648784151428250859089480699319974671675424516307637341103591414911884715091624260847677415218877726951885321465074312380416851789935468123773000442709555393198222368306734705102340563132141096695319137672347724957659859696147707468589338424072220347226929481615657871469028679508259258883118653958543455286051625610464276882378130613051566203533430670562922350078705651484257548223304249828413832964351055497405423971715522744363838935664896548016803627188130806652425353909206817469800188906858262937813347901331293379766518344367562498723685910678822376338590254481814965900848941562861806537920741351237723685633530637134067152698581133881276898081120271413308802436974164689305623457710684833301781748241317309301974256475518718441251976523053476337692024056102554762969896623796632571811649769552499356667646232066933100430322777807710011555221800879731055559749022868389210692480058190513598534302182911799262350934711002387687893411233814836945061929325272398771041482461801408558436634691802675695038209672650815164221627561315738340463335691450079805326139307707304300632484670162760562292414330932317684645016634945498916521613051898770712588774542126402852159722000425119425002701840798949546416863079733321794489505349497459953665660700022115452588602662169272652986142162481303822091421346790580919505438538461101899439146267918514153238436924386407657967424351730901495238675490487120451457247901917329606820698833717901459028966151024409501785403181211548829695183400294062165346096072822632312140227158765909604503080528432813910783861670233260509971653816368903345117991375313016888826494957415520410310828863193033464074937372457820520022633831336662037386874444070201666962866683888351942143213396927846185439187692269123546394552516609819683763752692967563571280616001449747470814838641233693332339236961654842413830551364713235692303830950293102201905831112929145535535610115569373917845420276825867503283759835285317054925842808456466787628802084658785714285955125582753647760759355378460663120110160633599809683509784557716236516302968530719516833748993648731046310271221632493671958404252136502153602832985907425072337376003491712497908260828890846946092342839198035466195257397284113393006269862972966581897983331234966386576303951501826791972755515139483101669309446862627328928010303133270161786040637875516807194496377974074034639596371031545024013209010677530633113173049521422553233134563026935335567877071587020115909957601530303496810836223199633843147358161574089061379315204764246912041605022955205413913169100676030835093941406991443729741670274305305454796721191198647255055977390337511262311247561242790340335383087727584015109693291894911918441588848712168981894017869989135876160195557841360262154430118910096598250306722467091997744449307974770648403125335247713356989775821713366907647430980066831484471164314312865304345552583550689911692948778000634029706360706106348006519562835490215707776682339870725159364233888667627868653586898477731972412425570209063090638580035293790457234378056427495748739572915506662226679353332285360739769252037010883599111449430851431294986254600782401916863625761505662379493523975010600574118142207100599725153616326162606189003020478864711917984654461434677429646222850460203073792504685629353053972424826622590489438687997406262535392837828178998262058198736451288217270156154119049641541499410232411783590297184300782326810992570185926740000007874199630136546795769791924312634543248076825374234150843918049578802990796622142976351338249556640110310018003653506140251907306246582757876513813341225032741448974667387205001885068124415360490243060233821034093193735368657944798755281641792232978864719587521721198129518346751284273949005642137425867621049821657969980480430652529592539034815130829311619485272741402991264867866552869023345122072820091990778745745588172991859528316690613942963043132324494465318189341652286486688232225892166982241260429013297869427512920054020617328759480018871925975748340738877882238257905076143930589967937913382427671292151037526105464657968034718857319131435730403885638181223010431592937741248562012732308363437004820308463094519912767650494190818852854508984678781194012847529167335628893626222090655478881728700120021032537334533099103370043502423591543105645594552740821360217400196161248362838813797548646196549868343601226556620990586689947570782818598879598215138015121609345266508607444568546886372844623110327746389856573636354316487697645282427688953505951080392938387022159119345449507217648863791924915220552374485753338334314225411355354687587397824721706663772191433107217385634597500677162443159300296201595290603759473153178457593960525217789294791393763384967751418204673544548803606340861599528210092700583681083359618322931025351753585585609368647182632172166243169358743003052607844553209167735455268830996583572404690127817352859472926752512657404988159953556996782498527357177829952875537560656009521410997236362459409950223261152568710150125050695320645771845679494787242146624112146508170798974254055180225619863598399207855081740120976926733950948924088189578227574768469089569565773290961150756174937178383964381451424670157070911252070419382990268784865375593685011201700560266086678310261224411989349821784410502927823560604681406268234481689591506502692050588243359709783849597883825294230124306521446620437469310422162165484436761353587469622257077455013736245253885493234618667955190780024986670958115993997619296893615540795598503859824121088135481867208657843351851417062665429559004771174128340158829578796380864147390319940733253934011222641792998635903754073181034908199535332370199207407192878839960183368652587740465480416746971110867884327162196360430816992250744488717098315696229976521207429407457344567725106151044024334657863436932209349869931821128541570164558095168030572681934484624865969854990030299850879331092655200784738867608185038420334423279061241981576278569651150940572389979274911909851310112535603365681357673718412496802604244736502974520511154516944447123350282052703598810714422306024538591419672463541709653693633380362798021045632079673793388641112768359285047610022894962645948499225013909733781753004964687132022014718433841935792930655732569274560514453277321141846369547164895567936843525237714363318740608108253859797193652117295921013899884807832488127941006751292868705877058469719984277863484266254694376381124662154216841619252195012554688035616157894347381737100487641484646985720886342084604604815509373922759174729773203073789396360636371117227642032425059535664384415472209091990952102165084945192554723574216148839951697839665932688519061474458777715709266744461098981197106609052808845427766277402821846880603391812998787374964703819924973502866173963233620010316466332424369042606166077310177507367327697426562367372030626384945733515233456048010111906419023079388067152265513135685222141053506472961451173726572177663372815871535232416644033116776716347059437446107473517726025602627943420132590289810319455809578655763471552813089795974602249416992956989309798371472866421951084431740620452244012785421259034544259819935268877976178044122065703634793893145971559211820896741923585200804439769598736490105722962725804348125440235175214439094158345808014205494076439242189568985748290018190519760951779181449953513932642938226137123553450482726373195336138210773982944337818397603141598094982187882561380855824043184405499479588555454794475408290133466360444337405724531124027631825627201296464888426869456967778658770615640229338601661298267264848140289605834674195409610882154581894596403259148904430274124641626799655992811998845934417659663123429733291129891645866842386936512146866978045323733276309655456568961348732558289503944987019257990405762433575902654122184051435302279184679936585963666039937997615218971458920776542371116354575697676404211026974814544730505747019522536754725798658838110682112707358035890672146347339294026113605643427736436124211957782760494218399166398154268992327998813209509445832873587902281969524749175100171430177523670634050345675353585040897625373518246134269003385616436868693330249041128992656349116833768395549821321923843349005566379675877076172026942046261827264094571199493992087708841706435951004529937664509407215995339452309509104138233636687052870690620394734289704976535732512357323162389083868083824030195797173269179782008360445479511554612403107324823247576762577732824847419337212694378761179968462998297358313811206720353636111849038213338672225880121419947640022186925458659143990877867930699425445552737260984953302762469200301556993518873988945192284147542897823390158955387682901984950140259537983819399963645475383096739255621114180196497200287048016772562275296084388229098716697815168960672074102534445243982449487287895858455664235607227698279923516425884572972188188519339944812885724811517207933455637120819446093411542749360524540122519149484808036766677992136434959961473535824083060206671207921902654258181554371544197775274356656007238593639989860169090152217087616313556898767015344751012970063427367896381038704807010896995560890534461504219229621819620310914867732845032194795477669226654416553878931622182664220367720045501665455246798401833467478539552190986185250833659329971322565553040105458933003859286842254628854743539301022012259585680816514390802797245075745173461384007013138288406425774713220704921343452493611664742742862961263980293219657473407406569572756656602606135748347797532004238628784075406827078270768855190668000686852047251284471458587145820855983884997736343023230883542352427013314132440339122831548201101549426142171948906013761195603759363758653426754618967967631188424668247329196532616667698007379719037897237601062615643454905153235464988376198503688389709732036440744001508045261675625529056263535909874230821959652142001149550685927069988920086641868951477211028022190264336023672010756250649629130331569073588541633213363353541803730180662343957101877034637632162127968733627048268567700337016877109691362063661860239540706955323120354362978480099854492970525552540795951209041323587341857712145812543288443239784717491103696999714239216955525955342100485490263136541477428353122193496774574096576074887647890481398092746653149843937247904224096326120102233680284989684486927671767114578563402771676093630695698889974976745471108129772037696988492715061132601356236596007167072890763754682742997774018395510598423218958203070727081990294484506046999650671154947969793052436265085503795415750918994292593772345766304634634574006347158770629680299316915329517880099951124052369403874737287304267009872872484341592030738465845839471546826484892770434938841850949355973154251651098487446850703280466658869436029749810287533460035773954110152380555584408819618805190622012112000966413535405523008094810201805020668348951906990189460670790800177842621717924938381003077604465476518795850506091910530416665581203614452667898190855132069845739332000793046732477710041676785079507688257847996106811927273121408403812998661109656273440077374181880104364852322925945716261406843999952784487600537053181154310973245911478211585293552269417915914531447527382320733425448229506697029850657543519651016065450199442439719453911960000406463035597206485005834129122961539440212805922788777928651377573172495651516356165303710503074705183033898440857940370130061641162596585164962436388088901281678978379403379847002840178302458281444227877749023674161202337966545952815329332612992642695397439076629118889343718959060414904912818502096818452253189308259257101133078177483978841201612746453085960098930597353054126800686836709187833896360060297367268724743806302319608217508125513561659481457410076059645485808362419351074604732924373082768807164041391171154146307008027822435339707305124765925720449958337757266722125708699016564759965890608561240099003791588815090533789318712255805045439358645703631331433575940914716844589873910688585357985762647208546901776151383128136041336356166503319166943662978450194851715049027130511489650888154615855850423370463499579396828899283855059223746331011230398652468572141169972581012801386494283273133889842319510386653410838284938509424696135651872321919316363920240751127572567410917635544791925429172309383940893844871285961991769680785723083284235109531995714780467431712294461495637762520530778806776603988340681039340087103919477627432854250147580753758729092686360784957150406565967047072906965206659088269526430155744688449774236365772831571701074291508532267114588299175474202067820319412784925163223972506248503931834190099481557185941315199016572124230609439985202026153817954434215122473931040155628281004900510665031428142730468821216190896422367371960203349218359639959620874091769162196639783016266902794033125673247897869726041360827497816247461114557969148804078415438667176806992085731378964797447535464958670327172484334318585416357369649127498355663736732556165889603077005006984207822828217539452855879265617575424085039702606038758082931782351966150391318065436517376893997514219434298878116177157743565603402164035932667991606441238893601161149206390360797266417628205573149832204984645369549888779767769266183436874145132297656890463737645231176641542604370636763609380890112659602737084812547444801710565731270028374931618061888985149960741960725167317597774603989315716789401359596132996409330074885239614740519823665177422640669386064082475756445386883307055171689397115515811015104072846843295177382773526424806146363714046382160443711468806962615147681095489870187964895779348698188061237730605686599060006726179998514621770145812659248083695601021852110123724578056885382327063293905375706909143908088108547913785077974545603556554622163143539535456129437706470040436998265738058485470988450523435911287393750981547864506695362610939850756952653593878653795950463110995982856415910240894809392638818810309176963940067084935919636395464892641954541139728215128864900348330255171425809912471776381235235621485916312562802044077369505451929111845295291267344215716211171057411028918590392970929239396039774034607985083291295941494738976349436241735571891640021311030210786660309270594107684048333800916021431501545951366321086735590519250758480266856890180054946745470664125859537625213054127575571188439431118749835138996177860195090515333151159885961973809952644520598733653343719910702733558615395161014213831889190941033759333115369438657407019606285419020354983490226882408545472446890640883495737717267707592914161589192095313547993321074392370476239616751303426844003798701194550250304871499618336713116215070111664439574333589415669544475929957177834993498607073084701494115614068126157012399257782693789970520892055960638026216374319036203810702545345796943697011749163219792065759132307370458852141714291537028902653326794762675929010900639167418773141103724090356332360025300622651371029548008654333705962546394792030340694648776368579081958316360163048586264926697475754350031236023975301890050597803152054499100002714062364675927053245366048793316945713903593033576463616399636975796667151774654567319523113790932778561213451925835061188863479246992241058032631525898594027327521011651637541375902647024022684225790690019720852435142103850827703042300345108234414516148551223777726331707951206963838195369089473736094318640669544463542256674748354838281983309873566889652101515023159665786168577584199271322018257624448702926950697026073744853330453079934369356275985351460665250962526408316927047670645334765261776600843430260806673471151562377895042623800668431800418642421765070748674757054420490048646221558437048174349622187915089936183464701773308702921072742894186671867675401365287745632519305162038720558096554342144285585975450291113129437326400166679663954912709042315390998800445095822169183316934189822464066269042627890991633568692548979641939897428975321327845448032291129381223673902324004288437025149530670014840177159802055073288413756897910946029875126639875996241981784734819132042544592278994743501343426456600044173776184627875824509637961774544470519773689551958511533899524203864503723134529752832981599004416418748135259998345848644820516630775770332072113622951947916680302122031405385660277685921020347539416877742961580278299454908492801304648678796340572707032686237490772347491103968196037853355497956592974149792840916427393991431114460221167214513458395819388046379327751399866899626266969153576775419477941790688640069788196993360955712963208893798268027139850904990027793217899803476770615210461489952487602609161627222675853633154293251495679346187257697389168412635194461479896306317263075123322091144967744670784874190721617956772763345929293183970125879069224548708343437914692441336201838540845269622037468402240661609835848308463962022691869240182493255324575125990641032721743579954224125981076405004052465354553915793270440904148389768925380485671875304650741248886331256945691560200217327355229956164257606792784976133220944298024883201798389194825961154857358642280287455715829878513693849029307906804559715092018957196555964376240621642029674795652959425548222062763886702390383467023708475790781261038325499906851779890132605721179023808035528988159134370271021039637903442704532366433018751874136622632376637868541217194810453690047748654211067607214837378597330360915190715875296797727578531940871660420194409050119699251057735342249668922560460808040208301795957096199494695016935985702529385846391326527027920078511122846180547708282236906203358201520645554133923458757203070968913908698154153378440000803410208470561505660689979167328541491736028795400507181690882326793014564090244797882331513552782763735835838778353121281994300153151414621850756841665644102384994883926931259954696367215399951014998487688362566980988944267924570158579500414719914984961203324681638748487144629979479147605952388756048936175919815979727196231476228451765167498959062092359589343736640339781059100292915416767233716108260844098486174168736809422359423716731733334037896499226665979004296037344427332267172624176451352536612150335504917572561996663779861735352792430480424226324639587637426912136616349403100969121424084492970028360480902262009239202661743613867259765503203380634975636490055980318181299507224839092828765408846370831111342649033840832097039634025643719193077505612611363814150156774997369716298755777897710355460937777091363701260165592066011785780228822674536284920065730279675315887083139066579203562445014299254864812871151912438744928531680376743376094404197678520426780175333412955004265198221925932916155550517525045775317070725161947873345428649102380090962746404719842623097136139363082576949098622543626199668884897152897647941839182073681780768186872556238327355531170292786092532973184787747777585349518163285652864754389437880583086261203581742761779298899073524817971190582077539107966990595398404804949034605762668539440998528036604654243029908141174540289320536516104292703242026203695845431037912660485185982103371010961227637559203804249510815593512930575754338348755876705355720985261835708490351073639669525095659998954861707544793856166395902688010174301568532906025539909472831748298730668874234307791140876667372462197609859919800439487356712182116121692328500156436026251491609832763459123463028721828194866880392180878000777997524874386946267128000415073362271444713542787889883367073234132346676449855448757960068558377772526984014356679666003440294464259027849311845835852302219276037644021034548802434141665806976072552610715812152498951002846822541513627206779286804132510648185010233086712082269572225765403111990451398521491913299639178395152373537900037923052831237047933655397937627711695453197159682219834954292133340035040668419179192524265678211641738200155649454285187731765016330445529873292668620768387732830210277231958611270378857525894105134351667608540384554813385784938893762545588259701688007050328134235088162459625657786247368959080574533750275531720607551830091805898835433109011011727295483098840762580402107501697579649956351237126493414382497347524793838307704366303414236954939796106207233771154710287769029020289500763516144685040111705779022514150264823123752099877994812620160772874214891684014911191998328059854870385246707040882296882193484688238356814464012898623196380281571401831733196204927780957868669143111248183341859510226222395781862048857947287439339139560440415570876772391039988793727088337654183510888727034361682699346701099890669239647208902595495874044933619411753628389386133322166775657030338046233564681495498365642783467494644531715698042756539295628353470122918360001662743136023117615743750873692525015055000348508929030467424239962447596603367219676218497843924039727247463590574537759404868801418282938656319342856930424017813194097647635328988039836600211307539840493771876747078124353785059875530608087365031670475821340355819177277417524226813051886297211937574968431356838773069402266560859428411190728627385403133908183614586399234914520123915610695271879551917058069563936514638349409821264357430279244830847181676061947171112838623469099993069552074594971043927977702677204819021382830476239401139552084103389482465452559900660527909451480407399911645388389383344338064335268892960272635509818949605873321338843855091732176379429652847553264069923948120669478123199388969142008312536494836250604467358510945426602488845982778716741129890136112669041835001118339969290332620328024884985749718607555092682070952365199555123795459176202742197931294521622043124484589260145269127735045047568118022852250754327636090764839903274880655600453176042051348922344144177848620786949167192407320351065360481363437056502574616231721723383769943322883278762940560888571550320021118015406722422732038905937755378568476414075646798969956343250250976046541184051957031572958572105407459671689602660116313597447098458531403024844602976608654437401808862942271777538636006873291904481734188069719334569771168974971679022666801503026709519563597501116922140231735521086902038092228988363877349463481337952570062259807899142949477526665035234757237166474909028978121418473969244092739464737293844410702457926030466430434292833443437454030139744596113116000175387722863248109417079279023316557299063688915559891596913609492481546265600560777012879661696231297774329878241896873042864005502461363964955711763690114074655725184529533402224519807955364523609165207905178353348298070809371069974657295102916174610663202522520752580553069273308575050411322621004549242518508762552754959066296819455645548693158622436279294140937429325623844215725259171779664059873428240021787187191184507298357015172125118238360316848099367826409955731457701351659161113359063165276328053995456501820387724986530510568453226713350414004902020527601465271028100648341249287496861095616649890988502365493604179638183249843905107415335875271923328235563635053759555101747202172657584262088273616242134527595364342230109848100857010704250548637056367553994454596772167370999958342012492549917671337683221319941868685491505312886275848081567437416280522694060759997991217006377572350908738140187552070783113613826747534997372104314747199935721599776237136329548342405091765968809253641061832089071211654618556042452941671260326949517634180515223044858772488001317241654255400138750019023497255138662485474408171395802695646184209794355816765751502685200304926192906073243880904094146077640412634595817063429501539070686587019701199290239882631586707495533095175426359141260755488647047059370553961034028229752862968779390493847658378286240226371231077031317911672546811699794033588756627076580703755252024414509409012107851208450030975646937601433895661375435275919694074597994802907580830519006722115175322250791883459427998363854113239601997503898313814710013512076002014476794807534190672272132260025326778390076115138216284804547746733919107335281207892899151279212168574985969347104338445303177628580481694255500541795877259419404382785517387070785590104162663274617837523850237998550673627824210429167187662654864897910986257608742813576396250446508046559178977800637715008836315023851995416821472732058869986023973044865257148736604958852363427643772222886717713198555121693728729100452400527996378185344198987148943580627433906972454737489942704591927859899132063886575815088130036135056647836065988875537030806242238135486792351919386094422548381341549604199028421891052722410201075066238230727842920561398592141292904314882739572989694038902872836177267207367955605170924713170744011040724255850554719163101457620984825999237769939433205040618953998000891046743032970114570865571948245741315516786555616335135864261045479776172733014962507942800708264535887821159303550974879118326941817964767458523914420776222676803673872064375487588527896374683544606062034031317666120040501020810733331038703538472918954481172932395319466713492597938097294727001163769395388352893497964886292945672234477461415660052876437133056599590086026634548814105175931012382331823043847583961406846843525928657739557762140988920511663753117275017542434971983091254203997144500384984075595004097462760991302213794130401133646608937195396670980479363302317851582704032283161172007562916671381757385091980042977399117427117046553431045230191252764096319165225314863090580334244505130557949839976050959964544064086886922030988034527082288175031557739020154802281248596473453055349474271948014414482855325567298574796726754758905548766676786764221919997695720620536841188826643739215157516240658001861056134610605311234863731331251925173730830914593872951176544570403711331626188689352480547544607824957331210066933877673662477711772177199565169373747258225638052700049876933534179247473369515621873549556502189070844019467379324998160490767870542166764951047715709685531973529729257736010519373556482379948305267016825398050291774936620686807094978923739217483683224868047970587076268567413602358061431590288146715040847547369582400127788773201643715473434339682945953089777248454084774846725559693937846755708375407862957202079633801280286854225036008914260460052150695879249141371014286584304213086694293777529214558363720517696590613455775911182344818826548932262332535415244631243080988551247087830132728336661312482347830394099384286523764619785622441139506808291771761348284165559033532565086662487880594314646415215952548993073559795749246293239427142411952838939372707436581254110025844543060969358471609840975603566243020421169857762708611575821591997959137736031113646363615562299299507619510273528437047890369378205271886500237096517779361693331652032582821755665920065615620128403256728243760916371099855792469411594065303692831669129206191246996700215760077695061990392056989159570076663058662068745117907582860192151987735911801753959176471750167737220612179068172025225346172444974816701284869261693447797045406232094006500309052253851227644585870195401778312391560683042905170408908681582950093067136336137662480365777799786372363414510768817443818427158697323608647955125250117591989514119229345456540822904698423358965275682284062005881094433314571141087182051587606198860076392356122164047970596803085134949114703241727388022927052269239310207508972644086291218804120247946722025267590042013809207486922616196457156973187393916543000511680082162987991348746298093486493170001477100507354784205108142013994940085677907459793914501040447641086839147278815651783877841421536721159857647706719928260298393328224609618843042088579885214455533180091936629422117087715466124034287684687841523496226409595967485319349310730528988763697309340043775147333629075899163037396150631563221536733255429461750769139937402562129137121807159487640034232893187200292524907246736014322270588630427457361647288613695809307369932048431585763376480851199858146973285400256532533961371746040452638082904027108730055238160995300038030549800014825632613366523633477883125097078056290775862833168799182377229675746177926746441139480037198449834150185020951068314130069045551224678047478805788509037086552460052495735362947525720961484890680852315955199251031588379681049869377130446007441413802106128423131923100932776833304561064027890619180021946818135441030665907937258105431922952076223056453135149873184178299486822285905307076429808460777548805346902822044819271609130259561706739642662795900742412829803924376970686935328955796320054599344654543789304495057603016623659401963477388567570815675341166037030956974581186424979804709617117559220488462448306237998609836751221128070745193354099028722236578585619585428828497631701716058547604082864683212208884940377796491418091612886801275317447361670982126621465466503378803140976972737890913615279167562577709249233096344227120299405216082249782647929208166961416648098864698477802801382077403193441532182012750394281587906735795869986128620352973314282691663398208055077246226656034026095959584132480606928763484948417089658564943898229370604037383597788929842575796081201568935251685262766550134084094444344811984904345838131974921965510552137331784246226611236187587456947303572702852648366476781570922373360417314573738915055938277174201849711677803956764436855086129549990411271754202149624694471658316985558809396820002725728607459835454002539883347189251507711237053700598610729175769997512116771990506893524236339238111840460592012819931153288641217518301746509278278332121137134976518718235355394687219997557065206970149562769869933633072699664722459943706327311125698156916893244266750810157680907090744758317779176650339384286921915380112898089588329573283474051476955125835841942631220437946998654606962190693331159527251906168469615163158421895224529825201923331947045506315431686337105690537193117310789580865813793011190406381225142556069906637079159497006429959402046256418533343764937908054320156776122171831870707403206096474881969357742951717672509558587986722314144920977497753418909339176816027723541236004819000717511477079084789424899354075192964485710668280016804128083271748850106694316973298788737144435805596474734443970454262040156397884962792106463877995162722249590246772684987447283168846747795600959788760000594372441504056224886404486560545365271252902870766269005120176156806269968273095782612798203284770339063984039159416893177662014976378225679057920356814429554197511568525529456810635581816119714574318174653176886762663887524790166795933915457327283744037478288162762584170492916731450654106857637614430521868317139123875395167185978977741122534192190071138591241218517454232881528848285972401409245945486549417226280912667891914892775963123132204963443381600115008963816225885690946016074424590131006469450574973389902419587163567207522848211711722148418748772887850469891466144703064296225673278659654125696893778494036173869227261068818548278731215936830035926483385807464102137279213092853966512979066988442973712173752412354692672445875890308919084921797892029553789182070595633002536092547062177392528849027825493357968819454106195334704903448227440197294050275618335403917536552356703753131335869640269982931444389771943681301551478645561660867987141831907475587251426499225454938229287372004968355470181434097904407380801410841260090819666181362912952142126455662870132985309759751541461582365358858684343832959740707928320534132299544086011535785963402134171157594865682225058516159081085122270967845713929348657786394525188031017899914868528856472950560282679672334039095379243282979001206006145587371952837281710380845220298758319931928419318122902193211310196946139099328575030648576783375703632818947628790762233952263353159049763624137825784429637504271582494174749368330394494635392431193337007278729090832130998148087149845354579281797778956798410977764838539599095803236479480510618801293170257455655888995475787668070537515810639351394728974923601674581363249619429866585356172373977095519870471848661433985212750495284344020098179491308804011730288947769048832278257133284024988198337797906879815421403596687745693437087785545938581180226661792085600300078017894779772939069964037513741487611572027555127567208415554470897334199469695322944726913786420499695394512669445284386447552650947781647063928573668582627937730916937017954748105231361609356466916225391451638344725015032871514002818307016440711287162113284307653912204005609268755868279964815207243232918644460154120349529855079302866847607829951035246499885555340558939991425945912872214446325729570510312348387697561453237628912502846065065684502945354019293265579645847952701195596257463408229089407147068962549034225140803086169466175825890500039223912775570931825207186514182245442628313896588858467968659487252235479979956189884833191628865223535048648945696094220465587487982430755004826995339290023927781728460563635476215383481254999061879142456246739350580703501355801837985566699743894931567355189288419931256690415354471182097370718561800396992300444853316916929193571766558776641322214517523967658582908260843914012575442540412095887964558607199095562004155014749911517998541377517549261033870415216315757692600184429854261566435396131870191904761841134858780009178984713090226726338055861382812166674077906754936874840086384224066789183228756587916374903443238300105914708257385429608379685422928539975259491534745906905344321829392615778428649408450669405510895892314092132509818529389969591476826360684517888798294138737987537097697056504174988476895632510411224971713727896738662682282282484330187875633671183305905379840778618217518391001121002625992203468579112209971541554829968177064442195806311104924318098155034329211532642802109137545677649069092808465860039393497231336213528032138700601023825180335078916047275509660737297529052345360504552242725618111150610513133290045002525218788904210494908738495970939249179627682933837740044730496874702746137009153488402209882592009773763200334227266224406682378995018057891574392943154174641242314173481721188137823445020279905516900002624352406729373926110302756906088018366988684945141135084507269292635767310758044631662519075293474901275059506051178062534779063271207372287195684953446496707877300571848038381182573021035417611980905991406988722935545800370588504545813704736362401050872791503384610139188449820149759582693733589726630601839845062291800036727159869185183925597448481233319732457279964980676847236752002069243884820190930347847506250466636107402966255116516394685022752230704974624947749695825919426900728429284894639481529527693379369659966369991546140325200546300492378813169436607512155679770482012381287922930753204796305080248552513376626262995051421772655124576023021113609541524822301480061287126330759861999668369245573243405448488037279237241489136603112493118626616506873717960018591132876785087410814670390809651694408493735139340862125806715119435658382839633249206891998976672783936627364244353124885593854345884058807261717086770771992168918494384865733173980718758198014530013571909491513727099290097272980197640934098448942030955896977810413796658160078527511867249091749708508905952361511351331066307789339846083207896839291062944201478049026615666998042662225434349600724077057565807243465673267180344347371157005028469605313795217060229711814434162705916406319585392932404266776385620170541920044219859036763503544996640169084721672677641253768784764227881340394765138196933146803588186283387086568828164286096532239989138641028442800029730927140681797386602333450525612445055383608321032827858545849556886041174650774169337405254160558109409311076748083163323846794187725381195614359356809320672122287318250857418998595340565039235894378782997043325890801140676733157080678143192854294584300572373295770700400873658728009137876357778659282395746019190215067554932500804593584685306440769267926836880394922298181826835265285425061325913335094218788551056109949069806129357000810610918863621578105788572368608433528918793201553684244783549453156021906439391737454431903821375262094932748602887049047187442564590181852118673619216786508552216751487025382372586307495826947536839179749977852175556170213472525685078594462192856377683681925013552376084600760490187641642574061560293382095388471163710884612762996145436163899964821796574646713126939375477864747330720286891025317225922362945435882146859128166824838366083463429414350222674824282189684958733137893485704086083472343593263162467995847350628157272183116808583820075604214899710045840967818211003799467993362555885566532980348458447527903728969168538694315173825338723707238503893206881327841501580811193299414946074542409959300236102743257172988675723526115164701157893827036054380238478367828902704406164928005630930700426850849090955980297614344472027886641546428059330925197744551022666445022654742810687349329070535396171231536070856364589593544229202188871274379325332956805770398387837545925599820965572920975995616934978976670363033635714722730052238220064489191922839859668037973486517691602148709065508159274649682624947815275943690242786339182765530782926778998440280043834049478801800371872509732493543422766711463048614220941552157264352451171250026197811757996973414716522614669761722563207162470511571075370710938130739507161539111797676519036318501780198500393912727250441711318680349690200708715774838159107028347744441564607011740859717355482595207324872464469040222527730575466031478053330477679366036245778193741799055391802470448337849542332030684025424896889690524420212731392083169561763293232259457336488571570342442024251411506827353598035808235838298489290979809793576941970104226905401414433127843687244028951861000088579449868864383958901815816057486163766532840716167272855278891284297337415616964173905799213189785670152713865952128224011012009983892203000325658868551907990759346209077169872064553223467279909434164016753555139139509304850127255397806656374398028595770129427711774800341828585626410172325877154402526943624115484943596983217198788681122520656855985698160966662238738015935475678839709088244211757581593643905647516671346486300804615432090121131783488744121431865382161390511824846333071829512602210870849948599052259511815709703051707394707435705477900309784233711280057194527999701959099927671213110842488193954922702595364901530098394836705268999704188746706997132846735085793720328754759911473280968349929014437801525872129378689800311122475557890792648389655541307998210095862221824299734752165413742756350293071227247026147857565932468020980300082543970681983083869710359425370933590597167855511884184756040361004003902756119915569853882824421201002738017490313646677856302765693003775574143745094586135510234122212835291705978441183010771770240121009961431023396039346143668689057215414795650757810639858515939446340735755398066725550983885262709634912697173455830712623558875442038965494331982425218139384111003684658247095247296422710670842699956559165857651976128980320561881995554969455430479255958091565928258195252684334623930750705074673054907581671123161016517801348224826673791242615800896700798903080506781356254911409289175303532757295475486041206784636735634075265160135731351933004049462291565946050234459417006615572441702109303807170936191432647321082579831782832578565228768092388761541997583657926323644495909001369574221905860097320892068789832200926631406969957133857071315806546162397844374392774059771620729380034135820351077235092441135302291435040383898390896131642671351490876722876318871404745620411843305206556723412846048422518270135952340141800130232380261014111269313801680589754806628198472146686130167415307008343506536683336097147861778702678497210867427889599554275238815512489922879602379326590109181401199476164756632963238019768126788009423997704242246314085734004891021617197348630868273271374024389592274459156355083211189019201119473086268588269598591658836217535264639298189892752251778841671671956477496169374403157340330231848438677641625773344492216216371945639853349099504648831800592878062223637218012649258174850917224249729873702174892120003290497839709335487280142585492026904388500804550236326271038635199109240769015428994193994894756323621086090926349227353823626421516126251239717183533762124411684290546706939631048287966422825414652287416247283096552581345753276190394447394969341402442540987581552645171108816950699187633135584197583225734607755553597855247666030858537705715429501790597262526955919094594331525127408396408562609646943854317325026936172992296747314395729370924491526511755927468524097044333905300496231276330013819785437397900767623919626667473790748277651214786005669894728501297552203120503075522302286800504321796868470676020186234081926877451474328235703541066149996389204838708015335692185005345806126900460235860127505514353172348864157837808731450784432377109225097298832657697753915089846575416039774130705292376505687726038248261450062484080917935021549415602326654758410496918759593394428201719457050075437208890730258968486576535330320096867724787658645713527700258757375538762729021503197478426379091237583138986796483291522284099930597843412008533780574991291943062847329287530314402054658425621095080488591482641378952990213034018676303657380237527679290727275821778901247177812688660303002186160249349593240532153613710988448463327781014766390462861282265793111589466028970446914440704449952946159786269788499725438729132286026682933433841313248183339036541814841271776711883655820045499225254584717047053229445562510870737312543281807610109885178782994882781179447424258319062176285134735325358178039477975609895354250574071301972367023100645118965273014685179210479590756813336789954915163139633616454151654914010509555602281040216561233479823348517069975333024105842189480901630856371359635736995411426170576769283068733292755398042234945972726068001831080797429513472802081301898051132361177713014657582522737029091811621548406368295963291132303658380380270468583642403902326008943079839336825198743655935094627339103174635463652462848238443002215292930484896236844756711133715442562431163833841452295780323256514315475318103330867414506559568126843826393764311025852906383234084153974938751391895020409639335782673576386389675060764248699060411861884250198349093549112344820107455763683830737196312814421928460871915309733917916159845348882778852943803408453332925874593508814934137952801477652212287903485655155495873991357538877159642489221337702679997519397774022970452819674045399598401634875921903466869937036901239838752642415901818499272503685127291665735483834176836013380715891643442264873102085721385152188990243109576051163937645930660559261731353581129588429461440243759176705598433474261067039546415176998676452559137134691590822438859353034201731651340643024345111642605966898003149590965096821715733947901163274701637269195512959053624517393059076456185553199055079696193138626465323398187492891667006719536393069942196844569744869097429589199540599289273201285790495296658221976778099213150541189506923875460888698874643513685074968741819258877357579185592216715397198883895127734175151195902466472304515212183301444133872039124264449794349176551193152544620252378288787781556313365007502222419936882998939372812441854026811992182699837374522781319203269515716783785159575270498648043891311543323873175472777604023796723312345908552435535824746570987627565627508905514494728625374956073481917193036339603004834360544340501138493452289439875156593106292177347037263108989513661307593232506088383552367076565473149479245491581977710354695951472257994254319785608525321412658723478109411890429344155312580228415071095440464123467358274762426526112610829007774333515319264466084751073732417771107882894400518834801044562891374036960855431659856009041384958615888478218586692178509947813382509245592185723758430750156888133425044601544424473713430976531313956606347472491213465273994689110512918063293503369886545193558998939410143663528163009317929842132457001539847757667131244675433956700163341270481676378475192211907681048529614945657773031912805892089132349038594936669234565452350586457314461522524367904519298696192602212628062929283500524277157229737113946652029050448063659156853885086374414688347216879547438990734831241657353550902272147652011828813413401033893384710974214579364585035213209651506085348402859304287938377401229555119973858569721818887902855899002483594975373363567751492623659414224985991852663226997150526680932031613721247098893082404153191860005619133819544607968290356281572598661158408577879411336181912747717878852918458285535254368265246169325627719860111192532628446494018530248358324781925760871345987054836142265000725267417761224255855740784583578786581641715878206027641386762859131824801528535521240979278989178911065639935197018647941497927569989304268332114551945699488860061851283563581551702180217324886740131175967921280802572731695602706725537897750190804431410503582151380368460917280358103371392548820281351622839251825702251495161137606832951927449985285956435976951918143378480165429772999269473219191273391666443407728687315999023212307603662521817489268780643985012692202822735362480620161594507487070529410738290800560876333660182973341441744153796245891859863419075946735692244709178828313934130821592617613492031015260752290662631291718953289076794851991565032144159692856418514418504390329957141419073570572185005327124008088029878001410817810537107804211695445590403375213640177842158039788960717305457831772141825841673739148209196105340319126024197049793193325519507123760708667797765657221544946310097002026131484978728611062719155584167707419969860943037035763170345009593117580283241426495998386457846154693405967840439881542468194122117369803747720131973197554954645489627100884540013523674959349764247075359817602392279661005558631392899266554974686877772495850749405014822300551801416979890999988029771150091839522437184162716954357014866439690524898764541659217287723500996817688282230643118134585072407708942977337458266437568498995524020558417441297670083445011660535256163061543014844761618723955124714028961689226048526270892038952267022250236202509714045857848339942337281054611962675932898027431683294175604964777130701705083770114488587806631804028643241540216015505320430131217169116298170211408681074211996373392047772840048995853934628697801878194122065258964355817025828276756230032541118620215811322541983677433857843998097736998216221798653029276754591934323955180571372634763928733874145362143116783040155874118655447061291222610209664198101905149402446266743157896000410135453495482826301105913607044974170674566271651580094002175039299131783347875374830770652732330734376700664141990398278632907273535095165062810378827843117615079910169388456742531642570554531499524088724152293189097403063239579367589110488117666025299845209743410314332464827374037296799026554313900571107927489457207163247839540522283552070401610778085429294959711798427533073437766794361591322967850061319147011154800752470837732740143515059439540363038870484472807701730656308998875597330241837552357663925438074656688316046961010729771588553061206485684346181522445611967371643439176721344342320025580660793949476854908563275837926565196519560136406852172198131784115602149523527228147807453274651779545150431259822354127124692905002311089221516517674069684041911641480422377969864390187253639990269135735736992686897862312794579282847364220675688586014358175588838887306072944635389146976754391402040912702958336045431560511226592016420591659860587550234924413117521333830881889683032233148429037161968821420039726670869067228220576167835082427921715138050039437610852524872734860412932473148783994077068785117412711976005892904692594867148560989597420080896912778242029727361676105162209683993858809899157742223220644103049697775973474067013029714597864833275853489527557676945055194475028195875144429613846952073724257065301671900389057731850836434698677398520122387255470222118742711032088114373337358059403973788406361239003468150128446197293531187668430888090957667000403289041872178165344418566540720664576365310623804804207452842375190460686271452538794716288915050871285936025414854045468957203344730694783428252306623343979785069413041915932999493399768167403426023733629979889098222254252598061079177615382035475269356908937101943180546694635898890918905437115827012170527389676364793523173679199217747314856159946667707151012827275041572891065194964459300300691496874442630234831032606443948706856346965159944146917582413145317669941113132282741250104384774660410041843848575972740118886699398693253635207523290631266473790884668332913311134759351716456958676320003325279677455247606022525324994282957640522500226749688813972831833576257504101662772430326498465612592330355675308435215223564410883367696882539375453120267761502751820142715703487221057970516959974870125261580553608717429338649791838845399738640997087819646507677908731745082981931115099456611586834914113515584199538329317276882354275445578677600140698226365495073967412485469660763147674033117292758017325482912959873757588695813074805690334749668181515320172716147617496819404718936396603323861567687790207978093617712036472769824328185296875253712087959260789997514094309927825835584732330608559824991627728483402673175671041369820450533496117884149020116978094221996428804482578107681175621517789380918437505838680371151974232808507959728814577719199297441583682056351649241987912812766647564361856492196632964776969161563669719584098028883428794990769671795467228329139569730156148223079883508197697783972281343843629546786613272594066431188639457364907303083444887928074610287689344344194444506330169072958764637872822618153870016251154477750808693900799112020480102393864609211905879350406074591297417757492310959690801807062554978400724738774660604568425619414857931833620893346071110651621514423541780482516921084132990646069239924406296167645473407961407327189069150025491795317497730174528315159689125143022361183068760635068150307894934793762198006149928425171528731738182815823463551296271095385648435736611472027929954029628864301351709808877671719181130962176526630651955075051757142247819585388702249379896836382635018306920991557909275898319033618484017836498655716856154840267025545578272410966733639625041367592783885893105623409377108532613367924693607465094206815018568168697848485551618280641468874588817689728456672788718849501609139457027994579776960493210523217320716836583606858834661894754796801255042814660636765308282044488446326424333274828196795474819008108750313609017950087129860872539617934026748785036631198862897207757810019092039672983102441843988129621787064794767174306668543696896335093660878198862630397149432203040532766568668202491273930626329742466276130803061482178158070621444058802799971038816117003191715906654581601351025776363011275328811187655636591100292128416716357462379009471520865228052251773968550276438863864229499785977427751928131931416715382567923793439888532075801755425639756130776017597063950473758593713270725474625930882594884595694238764925869570550196108172961254535101472773099150732096687176885763551240278006752650026145453585906646531678418089045812275051540850637300274429104607712337093378471459197789206332454424492380987363667000805007630158088748635520787325993682800611658342747789172245869899828499378191550294241850850695587644698525508610123022127391062223354559302300220801016151771855725046696270047524145155110972380991552154339976700905556053475080373446538438789206717044957235809498885345569327435495706484547851769603589400487672617756420272598392978492872987916219846878407628259210021660091913527143533330748607931777872090592384528593110639862885099035006054365596220618570483503971984810882844745587939522019530593589026593179179228756206302167479298310658316525765599770093600561932808559830927423252128268476041421871747776154380978490204015762207988315056538023478846512481251512491365377664931580574131462314759932883349236335471899059643489911789441086689188483064860493528871921171043217024119355493925938330290022948990057782420034448728735821601639598059770298087683161827024398396412821862626084182102079215612985312270513647895312631760284338175976048047440224249032317925699072228168326073659221060354311540432322190442008434664328947057585282029631650012878751004425143422731069570906029556984961419690632767040682454762079494187238437587561971093017318037408209091492234901663843299716111033729377819291296517887791500087467239939291235387651381214668746041071143251495186895400210516519492932092221536296148234295132974100992306288068768497128009475769180453165144490007694992969869707305365891639381473609178043781614280570820362587019505301795828066228775621243777511780862589688513370587534722499794178060296082132631244855096719942653653460912124992910165121514897473656552405655142475273724790616340676823501482680197427228415735564693502311885367846119081820328558693596485696535010388589719590460206342657318349730471120570132260968737755537114884755718819422327800972656221611137878275207535196969398488089900096272856621934864893255399027058218127627733905966907107043445094365252146153299726070606295194170476266088885533648130747444000552704076931793699920174933557589819627286551817694614429046064959040813531196698143501953923561758150273875672984727568246269485495644333530856077056652679343910948303515108408962394811881016554300824546332193717460236997132268412199335685747186843079221668615554726038700374854927694216046226724518481600180683247436874399888126314129985716561390578530516293252288712257923526527615398549179261846364383938464934971001195881179633270265115182763457474779314816690538957369244644280546626773774614314475006101530502390116050502738568993285124840265075203827544748572332057781900235786372903535915364133555636014033046961134790960519943400633180347088266866241418707423758140451745591504184937962562922207191218426782099865516683912801792343453706736211474386822396708198462707659390247560377802642699094649875181201204190442664447417116081689427855122276736847522234818820425109162762000172870904670381140628582052907060391424822696177829292357075136419732483179911377400203462277104035457029839822036718805917233006814501648998406323233161191815385618669225155427014007437849121248602358509164110103906409272969289121534598384902597861092335945675890055314688288315026812464846609514171561100566004824330681782790700882122249624025711782720265906165354629208591570901733113370109426488582604524976715581492603223832494873966196215222738199505598824311959151080998192174628928592208208612393433665878001984422581206209386721657244228581486220299477537669800361992634067404814935507292277985558187022840498842248485621786630574451985983526056888633056789482015602061747223584814128659277676738839819857498534980246523780111808451447157903075861603165142204627634868444028531769734282711858733594676768838926890698060076979200384779266511374117816281615157802844291522489868853317685444013674147943995275414162623928373980609548545423704832999445636409542739148867890411893225255358747306835055410596157223232362850377930727102688774563664837646727451244281169562075463630529509106066856894049793300464709188565734722273522401633495001045877818617554608816071607035093224744399114537625651772954319240269969317132292552496245086689081524631726337533208276976660132154548721130892392000997576027843839203243302182290293228906326840466944968682202106629835690277168096085058090161792535373161710951022469557677504241858582462353030761034937476222006923571324191712039459597347118664179396012064326977197339093182246483112262371723327213036633067970609751790631651691142935405910224422018996287523816332277313341405987923424509677365686714385621735513756941123781731067867463651659604374004471275841181655130139727921155607043298717012224759875965501418536370714016597221260604002546877111899965345347590721409308798206783045690133300840876874800946949568404749261019209200186507074250558544680649037654533399429096753001200053445629274392465015403120871823854144403882636967615196888510549254394770586568437853381330823815884355717276088108667377653004761651285806982053770785559841997408708127276302721380180694436655425125008602870471390093389376169070225710671661447070063341264891297926910182274723721489764104015648118757570658059350998961585793446553493490924982213919268899665945492423907374427670995910932511216660534462248994386872116535715059821659415353141866738068258918847461712606626032240451275492669868506369086168963866501305947054536696120635463641025925116425161075619927193376477597373766075041297771412922781136550408076770616806924232390145923300142505486664878292148493071208611900416984060615135830489549467872091007059038305531291098050236054981591339102745149748662814375025614089366396247129575456248238156109506426726775867071294507184603900701823452078491817328469244739926755360733633480028227108915865369840630063375420935883446976864903550419128900557677786728364264530959130858378452932118447583134630267986613987118186932936763106302546595449812573763336953608394670544354527494591618745480214851531169858819152914458921441645219296477435340631737092115591604167490988190110840081741140700671462700295488047442916645041029101571149144379323954251606088316799908321474070337243588933716960839389696045326106153394469474461804001967084496466396360743891013984342563875304109255688737955746193858585575329346554125667801744328991645310103892589582346793813187806264358907668576894062581670928830561874623076062831994446771180320232769385181788236320833307461509486434474249517948458603494635356154886949758806544058480291379333127818022489695401504751424359224393805873455670604455736498493676474762907137257708415586680491124188109326137701370900167329762386838006501723751583477941347133937250095975566261261041301789657171550184233184949791737138854576256299049582143010745502654249750401678807035945274714781813207473934802245564880612334152536092719101318871982793383958065427773945509613770950474107018746736208250424189056964072869172235444316574521377323358471680542002373020279667508753964053925292638107242940751258671562785739286151955162238112886349523551641551623258422249882268448806230368847231823568962339380199698981337551677499098778422522789733696198235432412570846522866753987613808085486607299142109413447202542295769881633564390366030052294836981071587715411057004986370494600985433849625288172950651755261814518119220648005765407986982275993378384186059709460934256000548212781898325887955273433673696781291910598797800112466437154501034366434498549568202873684329426557962379053197342406809059352305654681401442653077190175605177843328665116167906314206500240036345349398210186171910694947390975368379895418287968569903196994917287312516229948267229197898310621987050470693139495949942193907954568182146579661977989728651503332354628834771302110459959879057499530659101950627703180193006397307211301996325403066661379950871591102614510452846369681554739303279386101662805989187553666063045427067346771910233928352721903909120891172779296432001693408964405650975943720605050050114439699392848684680018323673588774433629799245438151684204109336286044923040844460062811125977129460809491461615697569261832900510317367724283068668141818878664934407454957035309210322464627423695248530226834369500429769984171041874390412082877365069382462960416099051722215388994232942963095240520540218441183338208157469949848641503455269848600072377278050110938422142229957997803623721565718346057319930314267112819491185183393195058590693217299244061885744444754124132167971756654783894528839217065426751665826078134101528815409357021195937790200533320708128511545490188599012274275896516888691406429276109813427822560920231452535698423299099991799412292352947632141371818063531774982633587066145181831074767133526630311802546865369516025552057232580284839617978693458035676489767268763975607031216195382689311812182627021293921740152955296632323850516496796165419826038056272537305221223369576450910031929851849280252367091325493016124026487185661117835018480484393433227525360212225440262866706809186801646554909578996627440507779786467149368696959167307120999826980103592860309019871528074145950183520472171409452348040068276957588630988725912263879346545261650339961514082763903617984345290811490144627167339521996000243955001107714423377881792199849388835984379100583735042675675606458448383656083881506606256313793203771764957359931534771987567604116577283767586751582232666301378734480032903733304883823566738643233511005626530147777893604617425660306110136497051151535035105581308729145099188958927986543234977372395097738016183463733307688197309596895842593766286803001363931833072817642485261748425317158583973236980938859550198781818675750663150144344504452863301942347396040836165871345141731204957239388249867944949042367059428792676062360186733381045650020775089589183369762681884994605461836908077116309623694559240142446056023436014720222539902162313364131974208930217123306789099345038263956585416935968353703490324610390980971596304090893150785784202352288041315036136156809412740456285866534931523845223381720117290196450087750048069972389799117258764728993612734333295183113670352857870806269927314856644700562961587615237993383312539632094661692117193230650543940814879423336021590775996630963501720178643952884014705575779441265704136515630704535918581487390339685387450285725300713473930052290951580268470464197462088002814952290178499289282332722077620824224513390072967050402036931070476690695560849158681063697441805553143502817228852300694368028964667075258014518834568997935840546465672774014840143873201945456177649932897418116828766709069573560324944429943052249651524677542509419892607905811648199029025703952778948145536393596879638293752371312431081711868489785744219824619247972220269147975180854628014648292450503448931427939399611193839270273017580154581752586625528039300478225040552889441477006722806855827778074385142627387543577048577478241135258409011847106164501944644635585393960838330082344493073042134377569719044092124727865593909771626145234704130025180162008099807880507118941101470777968605598361401662449672965691890689897613105919783431454659313162599034001542715479962408220807932059815906995931826068431843048839286388492483914210770228167137706550959128025534541224700753578060840900046001721522616024344841176032939502571154205097071380046206911559209039632438682831084877085513709974947331691564991572621723326831073365551074711253758028517349889098537942798293431331238764564109151769585618452047432579288904916028738770698745308179982444837017172705141811933102958740693896206526572090789914238321743874987434730608053349947498225416782462968511748824203891284155763072684714837209892628829539937841412978062400313533060595577256459141692225959539674696900623442588286820507793766165639773192549932740165213326120477901870338639650417194537283556162130298830885369905968422254988575273070434783539637176905892709325254740136836117629202165706738285573544355193200098482755105197398668709462825674131140359853211171710549565463088726169361635216663801134365717794146570800959939500939676087145486611708179821618938114057880567440179485493609689033994666817746770593727599344532666792437973281109596892574626636635607129530848775026233024843749956820381821795794431831066444916960409953027583192734439259032589598059275789217541793721668147500935126672739678266599839328545570299081444311028475797183302299782661273741692793442340672846809965590650891013893049973582203519185899380242320347770721447493176420760674917869372980792326425966731643602690965189571684422696274121585891033124048081878098405582872812262570311805078910037577179568823544636725391522336985336237689072918749144783686602170066775713751417623052271615861021046693894306802638168434620308216629316914319889784860663394589547803948271699250395599026722685430241562990598439830135538355828554414180535521113829893943012102438071167791751716100171350723590484641177153960017972890411692984363437315864455043928981453737666655039252320140888364788240973477718045866897868928667627983676213130131822047526420614636848265235640133635398889144618241797684678305270115383883731909280482874264284922786110765674290279677118543548231312509133659259604685356165690693973926845952030451327882913403212945954309710036603806609445294299475818957656046719202274148189948750385083287801584805222915843411929246214058145490301828920814242731969811435418735388883884192103598737197323464880191141652743379696917089185724309117338748695191548149039212110712178071605337921250052807881591885636090632650807924721604863952354224508821979062046917678589768902538315203365671876106762237831412868588849902566611748962142231871749077916592619922350630835211664629447230906362046313246828757130817687587138851534425159045804337761088661568071749452592164452299457514975871388373924337310177965706385297281968398346347348296802726973126935762551582495811719374689395228698988498307282127812583303822512630416301903949070772892114743837546449727778830282811341256758274028900178861838957796044837791722887335096343612981143613631094705143324772574257387619539437662610599251397083018456805062283929606744089880158936690118387723258774375225198442506032652595857069697629091438623851433998414131096964662749043048092593123642490718012730697035756139413769888521913383222978132267495524256813783787244649825907458557063991889994875063291499928181925142795836686439735505630751435582852676753337080982072970666889080828323373410277591857113139525279751548959775923965263107165919714267265810069158199414809381055731612419365948449912603408184957919655069203809611089817973752358060958454470485296811614568104094572034076472749776764094017344056226089882574827837956964871807693449578643471164749827085523451810576684689005486280950501281972740170487078270511965569040320181399947365151516063954419685201250934221107668516877689956252408368114856785118564418251116876450122513618074761100615068744164871602809247544444467631978193351158276188119409940790549172766321710295094634060657166321005977895054174264915576338119468253712379061000873848397941325963264095240056594448702402026556038822500289102152607069254051348705118561980378119249609396242067659539244275365268522363282398158596810648291056230069219819001486839732713472403422432544005539691963354826416041560132896047900041430002600961188522083596296874561081749616603396454395285970930749234539172611161359464350028419815275254926949797207827491266735148086466965592994608483540909987043801939948739994641000758171804809466921766670673568635538934772974367018006467692663780685804531203661259803518114893624009731023330636022685707583175787273011946551112410713739598142021884840289274902282753390545008098708426595677002780937347614043061372937937166942960849450578037179666450030548059445533456888644693443609686169230705550681338618468013679945201079041836961601238145018930756769606018955101602962772525572517498666925708463358775956729934524362994569667429718649900652518544942385313371493558776739150543120361648354440994033488542238696552630588970515369413292791078885211182915929483541513786136369451645294713326794889598593070793727420914452311239630409257347983956967524997644842290009398426317851589972177494655481270300573855034544060378399006484174759329202788915153416078130611269520428639259651101239308447934718009028234455397580411086573135045236527014012225954040975766894904720623594954770663442989705336336936115750954148384611576030438376485463081038820628605419610034147426151680758006417094132576268363621556606554792601533797017081747371939165808125887893623945755649619872239129672374501696720556134261650047317526128948079920985808368501704174474836376326913222564694828192175081273128419087376612140678104407629244406283214711977652357828089422183414619647969358471370304330445904513231628173493603702987537361664054788524250465593724716370014090240064772775712742086009588978373697703763428204482234878015595256329995370398566362707910077464080916745358150532937735888054442413585450645616149706804886940700320249166216540215486669261526556694838873764527313497198189449494271315877398958139431653224004449810178879497843638449734810703680197432729254128698580924464126871755859772273490966428350654696794556471130592147966491954033466498432529713562373808361360587989762953972892896568933358506812538196854043964111804591162730174657256711519360013178378523299842853540421269231727847096980924795932335427849516261312890466109349284409824588926839561802819524989615516876346943778722549305557950262169552481318750106109206095066833047873315647928154606822388694956351617861731895045957470300383562620457239222933028657498665684456938842802487446541600988609890986810255990629758645574977531875114399314802817869903934707859004145070627900225417334687332529910005799261334113892506344332119696833554126129953378809296238817599596510751882519262437217064694333377087433201661059266216498976139713844544483451108132888438535666251919531241114940173869148458824766649420316673395624163439815447264418267105353086385293893549128017479054918824531844365743191628677287735705080432101837508942617084613334679371487344823079640066897790232593072787996681319101196439121832494464675201928531309373972029990417385902909681373808004800713124545164781838771123976104252577189433382757421229979944770398204303981890179167736590993801139039587527783720985547996680051478190156714944046589242036225806254550110483237834089818663519694009338264243013416628418764803582336608659983912900631216030874152945685875728180567674316736585913885488635949544251594171592295030916802681785003260251679546154092146409636397189417567233481140110215872334842449981557288768863478801091691815550426323030168107055957170088382536079519326117301595274186279121560797832261307909661434396046848554165603035704952636894475244755785116255520528721256006727759801644406701016091408786199782821406265814260810590902281455645514182218865287997366430938910478891019760818414217910238041314772040734229304370553181115652055551059676477345863117926448195142756810299942460827288553829230684605697770739393210348498047235208126792811991341390795324909091896804431812778805450410056289013242816468017627133211287207679851552811584183719032207960792773896511096094184771681259441400342201400873855554477787018368840879788609704281388650847885712211676632363909896790733770065505164389860948316268051969840769231879891711853838521873755863629780520993413470538245602921281921556559292682406780675002457801249998832269039650727140160225588092081342443579313842286634377370435251578309927536262446037783844885634390239309064991570031302458390299406356840290682656878888660905245921693816505491493358025603421610423793637826987323714123831056910408691597506333032388561837789274064352507948355789031603709171483367071002945932681196379432395405160197790938265202363705498021542952907157400982760027577101942977687874283424375739375413001090083266238636179812210738447883112709134247869033817308865512875743486006340597007045057746403124753551173361997772144590559083122620188420930353581387910775492058155558237984992928730369748808673197483182881395652298385723907971360843027452307714162136262078678932524312272573693575487054668359778389371036270064747043271989346698801361169528199016369435679263053490855112414524237615901342276010878350651740460373385606640355803314215273943634857591782459518222976115935338080169419303351586875301854988228117557523937313884649860470810895007717554945306550763272532440710831643743146351744998592262223376514358978104695382577822901463628125288506616597403018659685067353371855927635783881984636326751582442496718758321079779246338027409417206622482500878144199789019626540274175971451239826393318927065111170244416115282348147999861106024479746846481235387250301968556995712514816705416215569194113110035456125764852619608320748630148822323507019720859543825524196053279073738658247631489361013235043896584921217545130075917805341629131001579224685875925944177341488972338554047921339262929768192527846434746124625850281742818616359479056690270232004154584201195713007399931061451417122637040927068498751698396759833301264800221490699793842321795259172463489099296479581747107635495131348412023485397953210218939609987455112191622721278929446462303692144817434419266684540327541548055220303543411069900528207827014694428557009417924404538358529442550422666216267595119178607767052812503998904745719712370776468162849590768092718248807793696308103690828017532309552332044366373426027395762633375445067387416885593648144892105730111422723544172242720651333784078843423187390072778567052619373491125405564436725640499268452697126661484145585627380709065621088484120286322295093889402777351405395830962210572023124398898817275567644194762810221817456129157935463204844551196424465203529748554874913656741380169646377675555598553575252967042865923887123294470912000402304426573299700902537142909495004370888827103427144838523037043602075231121876400510018577620756965583805828958525885884753430821148658302503713546146024332974767794655272647519229777259202748727563783221203019434444558063303200838383624853174589346143442301444314137731492029741553259940251579838703143863595097315853462772680840367722296351690504725957978635203154617277872406131227563070378597662999956073028874186500600643345558040113703448361429745855633830265334259177697041594945809558822429263676429929055127221909663042249595495495043918906079174757358609000384179689676484031650787187640983821600888800818145955810090188694042907923521867452683232300806765890905355082660652589905844346528871246913653120249385287479079458193531997299969300470077350899889485119522550932093697637854310685360645076138196295938065730689766657330832709878790499532839006341739182007205898141516553449727245667214727807397966685168086854786451840578775320738165093224827834747034035176747943822985295985836766008920056023947782927556516961876863606562675483965900828572847768482826491941794287624110815140171901968557374012618284182555800384399559748784753687007286431253214871631078502859221365875235068184203773734838829390211972881098426038327563347709311090337506912820384453156629985974206725525338569147194873692438420037910696357567502601669731469911423389677496023627577694685514587682816065105136329478857866941126998543989163080941778297071374711624084808755062251636190485053008038857992917516388735394836379564876577290909553684703280014778486835994773443591808090013804022774171070844350340584717518580989067029304933702305780590783557699474689985346292374295089586430785492130584694957401762425558235394151677360970966826572259371949166037864679479256012892127542671661786974395035752271997748729164239044479623424382430140764377997057003089902603376282515775692663724309406361098532260263179520314843236404590831399109259961136308425044959002353620022357109997557225739728888162580553244756276765019476399395247467592019891565040236238181349422872308218609416760413157089942338592812407204857568658765037789900034991561266109135109898384508210403336766920476472723068646235746070092027495553398688359625130804158659330378501789392761432777848023096959112364979174962044186455772459549745039917867962664569358937647904196576738658247420376402215977882879739831179541347992595108068340641585493495514972564500090718037726952497786075099171086480210535497451723030879091671212672350986532465169313344603901264647874611427858601389684381129194279225415142189812153288215194346628447041661627413976724212121042104713854905374864794794072377342250679560734634397719650404727075047026906934862115101580641060496290193318573325270931749342014203019657636898127523137725533997540338288196014799098620422021102224024214845171391686191589696800438762832500158739123399864333412077403873295258984315053265343596523867899869500481250582705652964288182914270242135983455039968512909025575251731450007673028893546629195655200920580562705367896222574285561712837058705488916000059735999959160814967762386074543625397775604780699845283036458853518489716801589214651422392370439932276164745378112633026786617493244428636216716227642257924179173023937285180781944783005263934033590618299657562274816746084911459436569384059482132854785120335548050634386306726957343327836926154704039120873267145429939749597625634391639631902577730552018875866574347443892495256458187705434859692048292876801381277334925124291017120991844255638822279659015345700135198745728996333062611885452052040753092647231071396118341517896119308069169968764262427133106072086282038910468622452979616753586753456822293286064049091907500592252979183623646913344540715854929429969339735027115859605642485982042527876033064403635777184970583424666282664908843206256820241239210254489908451362019744707461989337153076329268621087410434408082304517201188185490767827618978025298005319580840812590667668203449824157358890263086013477325898805156605696774269611722845615827325219665937389949106098845197298966755607164446611032889637116731413011412367736782470840609441833994460264880424133822087425041978581056753782815942891285177935531127778229049374507562235903112846265547210772748378878799929242267288780949184690673173503942484761968270760577674456356597945199332979963249135082581055924582939146047386134990101955424941665155020732033076980511574471472700557772983123164776215411482217630336652676493510531954522910886815204115170919192495122106815623206722397437199363985227062520480277556839738206054544719596933008971627563176828397303023189448043909517595887980420600971260924385209093311251919332562533758353330199423901518975656943467137548195369221970991059803799509144313362294015569583500735338920180172625549958840367929839863737860585302469476271089179267356557039892052398018471207285513017197558240852613790036388059673324777105796338976527899244356038849557461835083574846956212294579009364367564682642974020382378070465236884645842332122442347434475806353978069186585685952397147701315865385244758486141993914012503142899694762734882968786431962253530810897171884404975853783076437375341898753472150695962292985801762457801479042228666999046402937338694524219189390375734758494597023477404892083548884407594835647410530437689236537400485508487464454710962762196381469299062358840711089837689698808850392181853888899999800338590266192541144640316827855716016486126568370837717180942618254272151202743298220003857814879059374067527295756235482022701352439441558535291881821911310214419603654077963935053839471218172495928394074947674698380590947801668566904360905516141660892405991445808212388172667125433759251799449838151393390136156792883004810564549191816700203082785238681610339420233681400784471533156304056442357548576212256514440295524503060232707148730889903657516215236642496366550965900242919369038403043307642300255787384420258812333219602707439774690160332938266018303017750597663675076300442172747999390619909519248842501135874191489490643167364872069409968259318053437221923087960099642410209870227023531580119017668063126493898683116023227276771471078000987790067315943842242958079874689477429727252298210862357333961377535481537558656323258811019466482859646515066832004078265064427528222987216376760869110735837501942341316718845309237815681953715385451883081333581672731241160214757964992236426615587347403434785829919538605297494629628140276907576002782935352736562393311962328697774698596771892078914748149370638543388395221839316613717205737994375834370956722292054986502624540715917994346565063807050327247862148760967282058282326636373898197007464089562955058363062936816065277958244152383288910030534300899188231914478406874123641302230385484240439541955929920093719859860387826088610897075982555215896683930122422674378591224253445128068569864793976174326972986134439462060180318744829703378750801963228346628726883540934627171808067183524533297061747734701227320354340194877759257375402287590812353786533033573152889634332498627945949158103271540114114715107653564547959521196809610730420603354903954704512725305461052171027104479870056737818617994618202370540349656293188183566451614577192205216384500170872060439158939890952386367002115319337370705417454704786586718225873125786826153758644664798998274604058857527328403419873040286371337357380986437635133911394639914819466073278772424357913632618655875617359241641951559513241583273589557884779299682897420533238888481867369529366044565840565800264226270607253854434571874235252749767394844325020326186613440380967471001570718112586012003121035093112671901825093422789204493076745182753375176101335252740084852349432110878496350560427681092864593313907979527989289013692642753502933917818020478973573204468875483870657705198278502635241252998208174193163055308292623944947094099533949879475426472464376125650114808870437930197242927840528994002826128071878185843972652959792645441546894700405197699781500873378096088427453521080300373900336292910015858764349679415160404829484787317499156663060880057039149792113955398831343694418615782629183228107614161516139764986977715409038725153896078478206106666973091307474001750490354777388087223562305694220016235259952489260108705276283832138577358300810498317000538192646981425566872423544523889391299576006110464395652703585981088083717549901071477389655986509571863305337673033860530516317165143298685742558017293484398619822478168152025301419478001819279903279574714958463928501032333968933474995260426650833154459494166402432352103385512895675299037571294949839457422250578546473148811125116896263418359614133990590058586597892765210530293671867927950972065938811728137850008713247309261905808943157335866792286084966620406721484547663882752027557659910405829938574022365907326675016477262588741452242535523458242978853800971878311415726037804539666209861400999517224853197239352692844233054236069929555067033480157307631746283952964223597585733005472969209332247616999557655425897134674917961304360041105819640591694243574415388864144123602696284311069904340781110780845022362552545702172880751231831002715527821663291506818820265854526568856972730266289126777012077785354821504952160673186817574619020589870887443506906334361626895456982888711005632090673684981050768120016634157038983454119995883420500769258226140590381384574572997184255448878944592020100412808121169940382478620587240926743549388192672021100930275100754403429305177481790929637402974759545818514872516341776976111699902436538962042463818122734970894318566971186689110199306896310101483243917870532575736124354671178394059275843755073409775442670495690142764232241464307957574915512900629771261310887596203703030492864164934855754189601738814838651164420495605302032680622395306389244315224741406035847102775134394438762018887185907071950382438547902453921875709303178673355668417067641098874304546337301685066270929888736743844963473395266569464458866492457990198709671942739399199764078633025328537171583725072302287319800825074101597609102154072426752727119632507396660031694612568821922613627760077133567601645316480613192078291044651182429820664736349642708819237406476038581968018492581679666265644908930834727897764060831678142900936357987520711320736097739600153130950117822635658699105231577032289507519621542761516158077631531965065297236699478098708318054240150988356890452181274538198801485349298015426930832528052496767003199976006466197931191745182486961836801174749434023852174188695894900620500794826386908800397896696395017495004770368340836381167311998741216581591015709701387126776056765148341299261295076684530162975531679095294753134675641365252743868610540545681515908825898684687169592062734620838058777937621642225506516312094390325771403610648357209057749087604960210926409748712745929992550272543465894976577997408621201726941256658920709431612355871561728950367604693798206991505296937282759130063928986564295180550060607081536606295230243071666609397682811439350975275662563764123277532158064693449077476481334821167864796047317649397410567152308614131462643048977045988875751696355729297677855118638077383796427441888465271983009666644270396952776951135838174798731182379699627561574687323359127411853686667387227269126469340462826012747301681393267280244176944780170197245330888782370395136494984145744856005650263955853269224955447781489781284254008585985033623860619040984123323946680896606248438572270847487209288920632902760085233008091914310818319531934103377015334964850138069574129373393618734656646252403545459857608000892179254028464883553748158410383073415274791866100859366216432165702880415247100272351525031480545203712413314235371399619632144918315130628842023391334871289100859244492735794111752642652401736378493012173837507992222605600419034200768699985299008955435078220466375910981325227869706299238111530179755567243681938241166456541312655932606750403958165181062073187891906592072402547912980001775258717589253487742261288745897696067752143525869380041583558977340088804696199770316284932296413779199099069605580337208694425799415791363844571665916878207232489385922766154189050224246586130882932608926416528363617131708987517023001981034215602677455091099953333450947159206404059469507363416311213558809130591865220446915649351503006142258431737235157390306171068539559310023888425533310026473436326445999258196223104500275856732241604247075268946106460762101604020380668721682697872260858138672031288877441807962763755791675915675596002314358662422549085671037361811147639752709100996610401940675365947080147590283909494354718836833429881594438529675230058265039601156764021150426346300435902676539787611865535478132520516079033778359169964476773913118188472056999615115485583229620197182221109359324192967383472438341544546000666756888543472291882742920459090106161618582327283916025857483543955567972060459051059683245198348889256769870159929078298121519870554633659714530826446638037696537791959747824837089873771973352450456913756894231575106738484553105822319223677811702355761653261760672880319179605390352606296030125139583812514984616609612292886379080677459586078519922498183944961258709573216485355932040866380610570601684321837651298518350119686596571778857031507981787330813767999007458655538357300585782034502350113505474367875987375125850444030591488866564890999843777465081512742471365369947620540614641983903626555594087963586834281094768162785468507398085604096644684406237779060855213575583533640001649935073284421701124807861403690295232875077773444267420342803002185125000050803914548194945315408422143264769962650287641956788840144968902782943676847939247541257497589418848206627754228454560776933336637740815062189958467821900030448311240711638592361137715977611603885860944600442538912309155046792215345280347099259686053062559407400491059464661018134435422162800422466191480163848337476735444942050945043943900707767866379475698571590704007592219635526747256927683667492670811605941973764310790720594517211160847798051362220255562116538449434755892369786307190167101278840105765481076045406333140509651267953714145882699470514800857211262041666663826303605842879646014008184238531180287602000667651653093590721541992441782874958437594672638758798470996103388664767821437285990333263680842631502553656673072493821674615279848922637575592918215624822223570658192943207190396643847520590358315322398853386932087846381580041388673616312491186403725865252626132843276247393151064399975054460217259417845992083368479005287922134771562924420506169439224210204422081217289189414901137821685887194100477710665776739864219229125582432508236196643034807215770316952692966040665698520270831852193217478120972195997785663050057710423600045183744129486683433620420294291295698985472986673023315386934273542896429995577110281746424196398984717424567923223890772666718032661599512108011106812744468509082511695836067010958505534625456766325350812721426867951629699262975648589869516313711654418344188060519557339165855663975500804724946149664113294937979452995098549836990164690940867584101445309729957707754335472934879695499324345151865195748372981017817563493494778910228570265971638096605655916473257878139985533376980708922039765547024867306981281057780025864356873393383120969927550121208618782142919871383282491606107464805821667539401536517176665369015593684357782933223665285277479527291683115062827068112174690254959389493600709916438251670342321772664873325619874792928456566943671963306940060755636567102634463607071057951799593200676289754632431723137953750048170064576352517815362710071356203674667360678201641783455395888322651657095013111582443854727825447729520788392203059942474491068160344415173124872694776439890160447734579698202915317515779953871646028892876634093498218859721082466427821806356713010018618997750976672473400526216632809313876839689138157013746552573049159728148246428802400710277327551000362743433025278273667658483714277694914577457380923315429326121851421676919761430924861450071496852696731407150328545304210372523925505562546920951062476226969204610886193529102908158996461184809438332176068561354377530654927568554173072690523564952479221291200092040669396897581906876382442136730276462663139331866218147004419245447762532128541443898356346977925277358115910086962654473811396812390865165161951373564013158095061610965975771609800349993770077257930200140078786649972308243621218713178168371027504953248330953473700143304145336143362659537504990272241435097000892758522568111935682981114188094104866804649451985373095190885441131040942385940636294451117318056060600548269467387611357999476698389624318093418259937811056825972729941136040950709501554089842392581663229335533402374729687002245100978462598914033518804576440886916020995731235341301869616727802708209643426084700242393052398936859498851277185642504347356723914329299028340314053137531205273262092873845114848912729461788618210978591124871071951063395713377280826550501286614838149021299086202195917589422435058089334019462810713642401754845426375912413793984957959321130980738573674150378789482252470879454356060383572867691268156304619845280798434981017437527784145988920585429281847760800602706276609434326756093244501352090418229075328282369889816660632372729636952285359861419352033828440684477268672367318475858778757426270981173691589346466688126300362054332255631948675303253817063317302001615040714721361444681401030945996355869993675916296061767260360596807323215174770338677394694802782500828029880615413138004297388945747196911692438587175507455485529190378416058804347512907332646991716328573173907635836302448473364174647352668203865306457369552832237367976128217387783442508154226225389413227926914625974839232183222945583964083785907025249906252067066472153448325262231281092503906535559289217327777453811973533660301689068545353625553280856484983129077069290687368261374700326102106208439112705143220609788685386641152179497167160677505661928579661993186256048562360596968191706220199574736191708239098011544184235899262110276922521328024093113245976086446904930653577373101829593697425668836368131515565774954921285638057631180575396515257235083311570133790837390940352353425775009243640141735034282375358664191357595824954008470339844526280409791634124092809427833300594801331914670534710561691624095498653606292339415189120110498591046830878599900408110030775546925882608892448626627441633840919111437554500482143860185698563134062524858872340880507425871187561189993419064768673232699237473733104367546864432628455368249794842288810002762660499532555860449200752948728253789822399141767549675215127590261064237531762855337686362048068199755704876632085651967876494867482124046531775456968219562723973031790799153717365008567362217303188185728854427771534595793022777037605136799036935874599817995143166804852987982762184218041101273571455377374433684954162315109407087321945457355343361189449237109705112487725283241753477460180891530106390955657199759441299611982955015298403512447472706027699707837129795725796510993115569162172432664842572749963352851695843288083558298145408472109706785590052072312198962769411228190983066553247277108920233022515992590814358614304389970428137241086700238085057995918858566751151477363993756862191906859632575785388484528332771879299059376354244260832889075033244516663052461181691495415097065889469712735226532467480636351426701850986124484081587896853783904083586142962494575163487382173073805364286052906930628319773858766587270637487476616850899954545944380537946675327349261364906802408726161066230930743291258654686787956220196085250568369762512941944448099797786015535762778861559736012671832949229264221676373001556624259428737331353707387031890875146580977935711268062719976735376669650325090957538192997807927817983484027022789781453975869950988942739679264622900085180157139627885360881353308880964518219899332668109695244512129187953285694452127372713332143856889462732839553821292341629416690792992323615588171535246162087525609987067640808932044703601532934478781412531255133683504014112897664607626783254926641361569970172496244413907409682792205602233671461123767912589455288083125619878723128064406674290901371296364457722441269003063873323013477466623530186840642996739293768269751112632351386458221169540035903356325522827737587313130496450382863120019195383134004852528591014198879719635229371311464562525451887002589610230435327378899387356189993274111216630832050304189317539817179884913284828305605140656300359246870310498055458026846007911548871597483635771670349065847964324591905730004671881300915568280415647770252184080810358150745310030235792850412523057184846811355546968391384046341084975051083733250037000195823314237411327988180535276344242283051313413858690268106249668144744268656399148667760897870030935643305707754003094119405452671487768876646757734660121791839390548066122688203177707698961069007931898367391323186157284993326479982128889449965202040038396854241126834996482033192321935257845592657840479134444086848674397917747447420884684204479772743993081697230913468449867344563278576288550222537062844085559654864888094018564282629123026642666740966148304205237887607564491732414514798203596253121987931416230782361059775955046599827753832560510460037150388017198902625269666897025240981823686910179848235354394091858091811610653817063020479712054755977333037049503558092058444987236805400747174144665338891576058205533459561089273088679184064342017749345958941217883335059892401316702540072726031824680657843593648837120732170498952583198900604837009781788214522247124060056041237417111408131629787800132254275322446267702544833184842042667362766705015829593586544992664177716406875727630446168163924965860397534751004204873225395782179128549311473055744401815347465503740355989055297876238169173028328317893688421743951427824649318020711802650494494923701832611458906747291080737723343159677506405747236563320322993272713512310826782147475759222589791168317632364975890090177010728968176229363002869181393822078715927621100935448075774776730978988772700587145559505989238560022560479602171220438357244268131595172698404858044083180535793667964036772521750076015935372645206876924083001116644639621598061610269632154796896431579422478532048696449394296809787963028317298831318962750442475458596053464867409078412483675964845525559960443985442577890696303375585960125308518665496432269504168808852621713126109531519782269618232389203577152408825128176422337094755580003569542224825285336653263882989024510837870294762915746002164359791381989969170105352370878488705508437402158403392096894857822206816545248714437831428077744572789608808624516400449934380130280949927200484155221202773900719167584964483539470722272188551588004101027364424159900558642705759737929469568274660825989656941108325273549316576904151953144328254084882317863410885670543761615033661379558347854187238666457665069453777997615689962420792088887373128708088478697011655859953842949255252531844325766215774726616380219656847425618798553617311996854341193050698332728453589654359978742792106896002491754182271211130767346461558374668426079927428603645891346464467265102849864032524127963524155126673329905898332894156686421547214489820766098758168652967122721148507167224313681597728994342477671886919690072670218188886210328612021078671091347380812829297486308693126621600735637182485974954779363752477452273208524162667020285516847365694748366486701805591713466915846119687172078645648634485241918586615317266619502626502000794134081481141124086004820921409228476915124838430598269699947695902426214000340313909613929600054176276076728411255140328474279874742551402897827812623133173660050167052597710939033835573638938754619837987063918994429388149919512431954231074955541414312642627744873459334224341938279200619348796462198468891365207780875191364997078854264508204100512258525236962853039812513920992599590855626867540649109453451060968505350228669547238097505300728989875509106039053098106886576773095012951010228095103147706281371640179238790401052306038608853447199066577122080565024000635104167411030529826395918833140394227253961604891288794292071584456343576843367418939846228992981952919057953578180281709860084642088084716797823514494599699290197805339879057390990892844529268772101114767366522451647356256222095774859621923661699205007337173945274420510472196994117757325174010856683641931238863420982242932006440200128193566101447186614819520902632635144572158635798992839991907168865812784832518820550634889512044489743664913044086573385829877304778397718065146540404760292051524347453047477060554867875524941779267257846922114957903872900351240406837345675629660648413714672077503036592362468827857100512212427791378916413499561169269979199595690051101930303813157674297500655692533515045761245563106519945509725930642821099164745897078285856276638542428565279935091620960144737429629667580978190868858992508211466814825817919903118182159821571054305891016296487405064147811230276920485198318084826467939829957825037938443745430852014183002484314318722928657642249305704801027422753807202867983605823935440030714427230051393902161804149275178300874714152015361565412889197255675914056192934278563279156496709232131802806467416180754538994292125271659915331697866907810798280199358752950818600038852200420394502193254217700738634528313518409482681191252869213500744154259882159296318617789818274196758013758237893619452526721011835598152461016963671222012122697813260399263271216214745535138715387249479317406405756273637782616698455033865860726862849891305018886417114971508454847582267779044955587642861912771596433343491467031110640064758524834774073945283248953321063360849935764015000519432314883553495256590166864546267354253820100079804421177636918769316790775528428016594836448356892079966655328543158871654518401070503979536858590195303171259605321277774074865490697350332108511162732528410864016952570355662402006138592800112544180576543079018205353456663691919913045560674519447350996370656337825392727459659411280957135140042660359500225331707253690992111480035695898308505791584153275317657435380513205193352375241464027572237150206613913490464548808215023906736997003253003286609237152976430906406648118543408165260219751234349496426988173261917973292597166659637511310967266151003787674144126899184283428726055136803906304446095088313279830446478744172734500335646180970718882716789138471434865580852696912751244452294634863755753619901516971587231452940664095700765448262133140365342881446723914188973840460557885637207954556069247028364312929261386264177662864813580319635502240603111784766460540834038540881941457207885394541354252606750235413785951810931337819479376025951040603415830853916938254269961369700986425212502846039736461664181619753422193084772628458019985478825345254581677869537385985804565439174557130295216481855393549212100639697574238642922494481269908584286438957207478781062725753888711154037432136471358225854780018547085902293524347203542259795154366902919726389858240183053778476361826225799548769651814630613841698821178286931104790294536787445778873760449128655657059733817247110991209405064005906718997674465228713033865080686928427794333813090368239820038335643604778538672637190412031022845677917827460504040434199777511068336729530895554985276194823588950426730708990659107173964757092031382755618196453750369851536453275134080473883672765667243514585223599968925240117447631367448690287646336085472999460533922172294255111354737650399407424998555132413826552446895190529704365861776679737965122309931302943204307293271686048163574607602151779751458144105355392835339389371428838058256307554261185211518726353248670767096067531126262286583729005472364453695827041666755540604931667200418002609769402117493859910740608324591789412246927745424133002007986245630495996714325525992713989118350952133031290979633757061725289257108228513871565176892466171967989984742266573250813971313835321835935442000451142485468600985852017984591908399743924629868847814990979895346361382633492940967851237462651943199124958239304304534089305594481254700281478728691677499888914015047342397081349317881308379523524799068018883534380171673670542674348030990962531337137157200204699351466685908621364524223348209499773110756497502437789046730319791848101758942902390400707694271311207203595974349892859758280080780805559916827970940793739631935574543616054368810007738085864072731607737003823700097639524023379549194188997784747517304482736950255655036690764135184920202318252719250218476889246991445253233722526077424731990242804380622678488236052944222071567631279262932319642160924847721901449287709410342641033032184167038441805931057067753233947799972170749146950571598526102313564406433774610106180806053336141430075009327417067988835237515277800278315506000001622101224178649527886600307746110953945130797649618378542952190084126316283915944924092946683076933005932213373862010278848550195686376157331666704687819038671607233805252769704067306191768989760352729367580358423424506936457405007201008345673709385048606027736716757471434995893160165847470216932953782567125055179982266835656428568045450556419603681240623788882395445955926757581336857129739185717509264279470978362007394530585427570268710299421114170561867041896451300880568380307281381519959861921226798445473020131086281384722568414840735101161819905626710474358399375470047896154493099495218128378499329829958839026397484656944699633752899142827193108624322949124703225936466181831805103119599760854638838048199755889764406045403817264923831992268417133810188170702284835975515488308995454844600300747457048022230811328337792206450677876317754392066783171907739448022074546243221018444947232053693666473972838237112110994470617400544584511619618049490544973948281721231918812022653149869917072077089899091371305507432389550015401395389356534189341282895155226842210564193779023373373743334837140745742445037562518383553365599289206573482389523365188551094358913993205833672384571407280328880253234840954488124477523393160252706179686136271236656183936889484017296544305116937286962223938579972546724012656481011093449047312627210874982263281741798391042425977527361922453182692349473513930497630649324996951059516258351353021342433216246541909889472876477494070515557718851161300568822862429047117677195445362392424052730644297165230398016014926520432532655732082140593571977963375751653000511134921646484035443044343009098592311117793659271782704670249934029921889241822670020394743233506253815762288276826397409856331218249725795726494573153684420535961105054719961696101058916740617959363387942960015116499919971118738436595685425517358831472462226410258098728313395960604222385481601219228018552565058741360999547933080986276312624090971183959859038731577141901926254210170059765311797040557726290855787800946709773125095937565833971357712652034245938803484243033085360638346953018976506606608457919424935390600091724162227807184083446541229955941672974810136701282016874881883915263787968787791770337395548752256180829546574968613155609040429437087951123279925493531874185321354386565275265836395872218545507034107996559002645798570882978229188493432523053369049916647875117223653148980613928998775237858175216441109753982026088629806030032520736620564592287593171304899540612375012555010918999687052794668392767949983119381238318352139825648906394939174929767193695335669834657765478954686865419301532396638607721569220340490219219235892123140923554657630823385482474739990637414150561103124803868527769483605459307675593442577435164113645100241207952908905636215017722858598550582353359729898584959050710397680413689517383632860762105675834148009190532685455327176982824433617810430630799083906714382873819456263158310523720919775595066738167022209992574126553067172970159230027756275085788875285993694984651506010287525460369183364898960114642618229797347241586834983593850187829252900441282764204022926074796151766745106692959455661203972206244071383161970155100438258857507442637010294309419741759809223584068708051909140564851414127414096401134447856118005293907802794389813264406292325734494194622369966526756981628504064161347455305544544438519420183268241537778596829192877339628688276586937654583275257061321369231225973182105986162548665348616280701290575262483867516046373616910494939745374349925768604349529622310707465131643514431827440620364957503271751569091346134885570970515836882811073631918661203205757143610359175427073038564507174481370417570133428254157522071495080090373096206065420692867281345225654911343194276582010625514630743941090625842610969714878716274588757284970398678806422837351646545877589209266034517242314194874084578263771137380864083177551374032371944854664898901984366228599143343324605163894061705353058353423040057039278776312333405549723421744964278488904645018760321356433663102213519946630855865955714829515028356823337336487138912640904073119462948486882502430280946200886087463221618627496455285370345522518697200648605089050581730005059432664365756335827349756279459447829292165383295248833138068565661609749195631078777632643540492955013896821153735255950052816759224453835939064717890048990166792996284415362958929753963643292314265058358285438593137973333886479188295838153729288993197636909835448212955956255536243957656135066208531183532211215301208704424535592151008642175651064876498421753611241546357660778173147033431179019219215741205591292859442475295470514008179169804028698730454068620903951210037680438423929692566451474795155775605955535152530005167841435021245064239942106384876627276931233985841613302439635078796275225465356756194110259539711919135308722532374011851023768511900599531131371733638230128720710295636768380058396530728561571446723142056640295618237611138045658596263245628672393700627262256076651591600021201336562978410684667148112819187173578882832642452604859023008773075530415483072191503704285660589561198647276781486394840141221159840993620405133126902105158413776590435583116935663139901470976412508542982540591717463009504519395214116372214317303505837728855447878475472574453014297234593963469897046354082303454800347062466909398752306899887848916839662623000416283396109709208304130370560543799471865047682364085485414319843345051434708597856219674848514456575422698376775221425917869378172894579214562440980369731956662612725618025869355711882814395536514855452217881429634305967029826205781302754288560822116623687242696272139127122730339077627589437584864711077568373685897957459967128303679962322694687710699854873741773236791316092790983149318448313771899076519789527824544656984095997557022768312168921171868639805810340800386265486414726479924388754459112743143040889372080614487643194123224623521881240794006119202946246892950669934409848213334664145747954281944374455556129137469208552260525107112147412783902508944487155211952882077362652322946752253585332639717472976590938318438896739032228474140625692915987719457208301749019663629796091940768834884772065301020111154131430734114230305723856909337965101821947489852957236269423071648908414489130531870956500602956504227749835913050423177800527068269699393822296465203059301834185796184738083408855858964398200448855358204519090517585164597846703919097885367050672094818349353361070855848373985876118292900791559449881178044843667095025833429150020624012895632290528734389741421279702183373180187899526376802781063735176456857075726628074532497558193952741107317473454376556721559421591344250144972257580615077320511110278172742936278045486214201090380815970183168360234158904077826697336585769417826444742456055488669217841601813379362038166914630064180445396763277504111228951329553727294097517297440202413951453745672940570559049066570688158090853564009106086916979661060412568357147696667478488799982077604833081685343979123602141531056243763974475684715520816857593561390434494664282333448556315992821483258082707694283705341318010434609751367437050978388488664358281457760971664610058365799680389782675351014940911411420347322323567713619969843106979249698655360629409655795899664115949047575776638853126552147752375863497129130871377995623616955312071020191393509833102113989171257885445224947244403778929420778451397261131992285730191208886814741021211739463524814217435063004037112277839682296115118275169268455329835925905823187810155469506996941796131114043134525520466553044947544284384428970678981906082478408792697474482129866285128312646907639741627046463424194090603266065566627895907872095924839135972402978534126581747203530880031147608815648909685517514643548781984526798124156074038833633542286781445710428491411718298406386170658976739573411835526059959426821086079480625545039609118084285043425573464142494238340104226196841281752917871467046210137924942757661254208238536433605235825283591587658449629238354440761648002485857673740692576691506146184181450563164915051876586587478420655583975136780893226451950282652409023970171918989400395198264395432070420269041833019704319883516625498761820890502409419161767877571613977113826923141629864118024651256276515651408559338919970718838104789351795944066764296080649859152514549769925720452734165491800505386023210856372715072996590279126002031900476702880107124093493020996818502758544474861322127985027238235091702036405249801644539558294313367886301484196531888793677410574045575924818906898807384274056256832556593842546600678137340205590099194530968350197128451812117832746197547271948233367474604499254988931084777148252967794192520503276821013993615640094573517024730548848420176218106196262848228025833341920149700880766861979551649526385567497318307637287018040462217295483992538418708504134488132041981481385772160343906562471003947545076827897399566191990720841595255989679224889716580271313479362094490404336103949228385372979092942754606907710889197186905411131251327567237492579991567544900551634103039188088718037994181825381395796860796420567168423424726736774698980397605954257917005493564641588375796516274180459422603882204942111343630749399472444072081713288679396771452522237426131619539515123130117915648501703159544993708004755892292454804218687815531641396265037214442123063699774296979677072865192806082078465083303944245760353089743172070985964586912333741135517832726189466208614136266604280839248106525184460351235229788279536776915750738279319703475434996168169888489890255434934944642095273053905998841533831301206033145383658026610401056420105264602738422499573620849728827175199400098013930214801708078020541155784455966574514556089322710935515643119783336277263462289411118932669433245678624536233499811705472836039757027105000436649891562121499617197767456523278016777152801131998318925661257065566228988859838116383676545766902952504631374844989488563036300117810113722560847599537019416710842260974460905688102513888415826723623153968540366825401964134458609752893608209172880018582594570090348039640482258504186372617394617640325660421929431638195164090119155442409954637567524137576324777408258876647957947754397143779615272881950559719349894459536875512594004404848175768996807944929326714171717085957712150023603886766439124547376853962831591732986130859145665703449400621512093983211080705667493389694294405810635870197577809935000735210457134335376612361762645032453749092996825817906655820846467013283024161746552996640502956764814159322481650197531053680484916531407873481741719131601284737259411895842833297347435437595593552673784941831114219469660722984269618237917506349631192776749700541671938273996618591856392048017938679317728568099930143068414056024115998578208945254577240759764462889254262467224957914860090978272600446448756096878857495868637956902089603815638178222431423566811803813033805040859314042414103837755715639786376056538806949388185557499147866668797539266181702237491513751146291521635761802868973909622324600961560561491390840592641429751620044552699656818437513832530039646604402223608260785712128212897140351563401140254187818038583557803790230702748705709236242660031264868954136271769373496269228418173201637750346686840394383285863107898799354045149837477222023441928067784752593673799264659795057668861210080443619017418950324994217649336201433611646973574629524308383145792563066535605160554996641476553322538438963988588604212102648172792499577614080218542913247991132299767207630466929407883761681248703775865023912087885523170041998160767130047390193044091517643547443335635681606439254732223962274834523219847653801429093359996135786504265264740401135552506678676809058586542275549189599627592966247362429314079001802221229827522175973620613900698511230389205761201266011340058759160186642248700373462290231446897851287580659151046462320805505328947166705251151145507935609244364684798506892886794900081939073641587968177641184445161496235686190212716627860871359140903694619861288305443026561411520596170086029687219722978639447798360528274520619118366355975732887906207376338342729586079802049094139203770203329086434295086816393395883095844153751326943772105435906639888082429588693988794976357720621254205737366880347957006437326557479994116879069983666482707344149239779239707154450924886863581130864604955313159444599690894404983532093335059251642048314906652910519359336261499745248953648452533129231681692978320883632573842266370248734272083087311543447991177058643596901503909164881878885727389664881246566836034418824215792887290250830669278290060819373694721571576237994190597519060912399955015722051632169983778055568711491981733128645620329234762299393800240888072435479752747235200226553240753805163767219703898849226678326914530187683133968583939728483092553867114119458389879356329509799781526396642191962333856546986488945846132989562544915296152512937749263542374156157731131173307543307334164657623939448805055880509232368735442778007230775783046474948349792223713425449883645823213752121523967874451142106156547025507731014182458150455400177758598898080385384422486900980158245592276762060809851817071188049641379746733997614989685756783309852954518817998238259899883593893282878103320937915844495243485858291050909228176622514355621570030081759827873381908141854462394638472352273178343803143551459406795962863574407200786570044593827039400977313394495666736940122041035280492801174905967875860721236645057858854034143501813697714417431689865786823189416526055195079457617769470270900713459559292268778993454938667537608911193745052986939393078621048335234069251550931115159640124224049988801746333532965577981454107949784421766222551077694195539768533468126202595567074279661543522568608085137658896694929901054407372601371105461603835732238151411525360836135072428542098299510430752542492352214333298052780328315623949261863631784665101819222689408780280974880986284875659823483491607080101569363087411276971774656811512327524324599379374630374037492683111547645762327493089776473181166702503055251684904867437233928799894133518241893035371589081383105027195784388688868857014024593730030641424185644676510811589886247831094092043573091111591218438588335912118268194062429986612551323594934218175151275823511122741913132523713573157418588224576248422074551898534051688357060537595487191634696517544146686543815335037371176728097220800768969495933362188011409284077302177085959741993103004661213372338335298183404077373589999520340898417617926572452608723960429172565101150532729399812022857549829558679394806841800170263632501217899159704780796639380638199310610411291342906588468065078212059540814250334636678461253118865013724897656688148032882578855586482036689531119450107183203780703959772784545792860980212953740110196363942285700742959707418328944045003505238357722752482091271884591569035775372295991048451328577849023975811941675249404314910663277738243398562725972000160296621433723559971704148908405826098208744820416520314506558234063161068666734256635592332305698859468382487746275749111694204080974254572858826869883908625855131823872429937222744194848524227059193753820159026060128903986314040540688391744541969684512702909629717065889485890803392542548252715429922340268898912972460082302389561984315420777312341674853774494907967682066393223912750286779772194502365829956453893346876804434344915274640043439165633486612397981692390462836373509887573451449143178828259661825086088736494015246585423876434115605231993503513200366855274815585843875416064604314970964497692496949515110858542491283691617519861915920357663298404047637683268301608666436010310785558027991253815196006503091592611879253046457743688942020519362670265802997564637340177587458390072599317293235052813708651594278681521186255527420860661833229322082356026335051101298438964278172253254368884061513231555610237413791056189670735026382283951514149938415860735903199538083605518887368004362626512029188326766704828439053572052241594979608452567450147302987781242821499507905083450997049815251634730679463773061231247157414991235831070692976493272059258921950466999792851235369240910920639601494836282040681059023565135118221327483861840160639194518613107661926570987377859093596845248439043529469790158946062318407490760129507499989402326204603635348616252822313936843424636100359016202539239150915220758049461892284071948490491594550726108269752712777061111841144032041275297759785352467313105399012129276119328842291470541785669790814224099082190038983540011352441339917790586778400697792522768735116226423261518769755670868498056327488155242589124192530564350798658401576968024130399839804053284371738432661041050530830688174242245299455108701940378105590387243075382943281907788361615710368801087876928771554854988122893236458337123462839680390310903167825899168562749925105697079265462194546568984627531744160536320466249862901006437650752923663919423193062747535708985849601673231710507102681812527365143097224145566397074712540505863381138931095974553092992804465642578352141851196819086220308168402689029345454844109349483412257259925514158156355448373865666608861535167094612144939553366943299953056485527194923829818508583841431106717248455925520618916161614728449628270360090766478050454263929833857786747669861258348608476792472292842389881276266642549162126288068525954085618524935055889392209449006496595645764937327217704172433587368491975306516135792686181865498516148346299178744336773786405169419260742341415677016798702807999782857592367449697750775641319199698526294026736579390816990468162035771245635424689761962078371085039814673644060249053810488704122294631756027786109346068452605561008717496387596446260553532215273506915753329931212622366325116967421316656637699497908298311094842474259321487469047797988842983688831886229017147574285620670445882427566448019061362268168049733172582252333274984223093759099596759593459337586809577802386512398356699792743808894931652216175024426108869555618398101805535463216689561068626984104222370196711300213225775366954356463695029220455664945704848607245915031033941449275716216034739400762955038828379798884716888088082958938832015164087888493424302046307384357122412994105067169285353249226501018794435152812367513016918435858131418589705826750868687054088364373094322649650913183418959482877424819176494934948455490588653331118486936549375248164624566284465063704787951520972908642524506074955700230660023681572293097731783673051328697128862247638975340143522174035949068823289718397767897582774800218052048172852219631819159216004764759002585927203723547469813385737747386104482523525402641643713917052578414515643534951870444833387761723457312302686571237445859494509978754506577122318517216938411712050327438076862446969501766801741138249112700878645218669620199024152346075807126069615578597152182750597018685546652851743358883526747666787186635123647669265239718890472310433806060711041942171364460817186272596648082030726522978457400594035730030675004222370438280758276243372224146055082255780859093716954735933004954709928346433287154557229585087656423932280532201193803410572082142115578491001993087150479159659912432685140146891843098118510320266882389571098808009278953474817479020080049649268058497699839266163966076357271421013643350669243226126964532934191514941796020244731469812870946735891249340891090392320934062412331017770457267538418101946950543270415797815741259468814945145602475360004892691282149305441746448166270567625121314419810961552056344056783193293604967396281801203206615720232766340227505681508682261655220493362713706860570502880258315626252089630370928220917878498631260244201078214965105450767303766225242564707090460224539086761772527038410656609209718031227235054631406551351888160079544175456043941692752313276412975800445020509851322286012480283139005449927979389115095890477051509207558175281594881141664271361890741544439623235312735838655044306505165471855415616459145151040565912200381764434668332576667075520817479505936472842472710564680603547862417158669870567304139641221135585745582786566640936905096558685526683083038337843590219198914437748672297342411935405994277737003633614668856947735720625554596427984548072738172391822236029410285404326872652703917974635558342130030903903286515271453974190863665241299263174903243389526154504773720567635510694527138777181048115534841302417365480297219577987050456618681512699070689498088952482158300412305069945221632142262745281286436889688887434584574096475645907010338303351028759886083262734558787779289608243397703665401448570897164699271712881566411721419841487671038110492855739133384089526920760935538525548636029525334119464120753469390481835197559528425346896310181056287414885090402297319080726799987846009598359010779644104592187790460020273827568027324700538194276393401334732424930239402454193890462187967040452831348528480114437575118111271176017408711612629944695590967162271716615347606982383054166362427135067641539245012137631604521287969299029069483790160958166895766511792228183504296956859867538158561715703009415440104381629420624072481045681392666748510435208360174071623574655073392470346610460638211388947791797477235693171948912465252364248291835124860552436076431001375283948663551462937450256668614238272898906480357588026629434175049539873897662766986363262994918082188928186974672816088986450310624070816290557075172110429661208107943114207340276472887911500116079284819550113917183388584278026611081728713537616471708677206321681315164164089509466969116770127573030881626204310439945392533162987051212988311911730036111545656852260330549559355180162457740575688954275195157536462966379061818134990424708198049099229952244554425973949910004055877578472388595468824308693882592873056398700504980228958228879153996416759621848013850297103564785458918083692658840795006835978516518006692709178813060903188281863012257703593114005129819433282897378108078803908992210296876119240714560725452251514688042886590971141777293065366864929435731785865071971205587213363263412930282921555066399206460953091265775514928807403401723423593280198569000091942847735065008023559725019163184059189700533870550711962109265944915038941122709281027563172744549562199318529657052808230091993204045802963602367546091372555355283236139081266220685609021268210081106893325487882457303435326575440315186259984656498057076802668291847497138541431519672235105474308343812968177875812430881959141076253153632147737792055149812805203921741983252091659448116982955964914906350277718279350907345450301327532237203185786370771761167668252938711216285611260929778043493183948510331284702858763063400149521022860160824338226925494089978887748110176674021396129474599029390153904070439043347847934614462092112393881844897131677473509011207068282218102032402563934232447734222087296098587570187474817310195178829470360316381872292070117049732925379299479360764688036801560091990564298499363289719910370677068184969257346310462407214659223417296346844582977496414210925674717396414563691901259660694049572511272304160373005524791940774316381670885694092793735857831821038311854244359850676362758378746820878727715929968986341083435025888337887247439045658333238870549220388422505734106973735295254719901094879810919808172958725772319579547151307666772791803706737562174569612598159502858210708210119887359138766527361536468362846353857423436208512065219460679614398697009268283936223264784734443220561705685428791919841508111192114886756903756714919242627036086866756040941754498760215709855252903469579734430744396023552171480856954276470553321031736276409129847251309111082483872823855424297930689865974427464070120551567896729444933655788398835654085788141166699573303233271977840609916625540385607565861781622544034937461340616794372186411568343502992687863870384536804791768780110767873734509386032188941380490958616139642062004789651284390124758319993953744689763978616443615176913348091622486129823013719934963158535750999536464001772389610124891294635431227835018533223949389801465934222340879802999783118495081218332231687437745874446462853259656278050991489896542130739848337417024796451155224427933149238388483760790995906118086441140159175655729198041632271752272100733646323969759302032869072202931622969382299998215137395129055998014126352362371710528689905316342286686459038009957191805938647882630450766331590534628665669807942962998457986236649171452652829285984707963703407783929724687656294767350096971606555856577879743356397949217224148332845742303442635891801356711050091953712369323328913874654515253411304593548372783817886711983535198771013602524796567949668994338018833315191555823851388985967063676067368685837240701068637363896668345555923324359573233921902607208545213966246766592803742959533934245664806543987656935416328523405597430747834600957613416675706409052007454172561729205183455056299957409374826721646547962096965034735612807910351683025298180802981207635876826395609415689474091071726169394538513668525975287389579553706149218172961571015791454719860667559076031106059161369526905119159957199935021505354205442826754344400559578021332596327115567869837442452769275239063497720252614748464609076824798823205168331977554947020642992081143009908341680606021231829101199748921982122990332453459854961158218961549988390026515624251541798076144563563773968513270926207288954548820699752285188715412107867630950913907820134092899839468886306908207387828009242142579869099651717922251533759850068137458931828547699094510840491866503012298774393915840476803188095468297235533666073970602025516493167807982060328887062229346982507040318980957499704233701473398693335012288534885647341429372683635321350759357078018471447778389985026894185333754426087027971701564470386041358537068346650717753880082156094788700788864063551999367305324057482243162626732940142226079092197998728291804099310201822561442754136506280189456244725047017708913013799292962052067631348534041143332765051097219724091067979209235328964862790903195262852887566749956418106844500985819562420896570814401032264800461304043316597724117455116590556091294093620445092814032811562930680312262671954869339039940265227978548834511554763575665183993865078488658721255139385939903530578319232201671973375996858259939612428658734586396623904429580931741778953670482704569721172268313927133609236871612281491147212092085001785925150449276714418107744168102122206916310176926340802019956963512200053539608522821441332247149285520828441601464676681132124989241651778131296655732027062485921096886472893353106896031813615319432364232021160293869913398800421317689548050114593187438331127209001797262947309475083007305773266832746050447502089208836098049122658010180781760343814724089862045734588494107107253312991843419153793558510510764975416287912373175930798661643630606959290639305547639601998840728049858847909333390345285776995415733408902198412837043519372597589123692758754273876476798871338317465064227876126135314040419323250643310589561277316413331642233564498924949413933117100233447040180549310217805244254189176074210455655762062958233163932776345569544836037640973876914867175693582531432587516384925736268338312130309705310298383697350521165284059837248129042350160827598515288098350482711627033699976140218774763665785547831233330184541847662974274082064304461889319184106957286829517682850028421691361563851118984100938742987748974992939077784977924162106303861644580074870266415298432040505795631059894287269204717253210090601770817188374699420237119988797394491612095052639276001212931024838961070490416745762936735748801349602372352680785217256004371866451834989964078977192550670078599000838437499334967719543739547453499281007350648405863451535806972131960582641270914707513508013168887794078880877716300082258540313219729043076211512841599082359836081140155519378008487121727556310445138217362492075067734451156069824576704169318168711207349796928986241080723091447500365763943694101504385953127395448579572429247101643931214944802056675818798156819454009529101625069215500695446491730799500336855127140494348413290074433146233148028181205015135506700716399693021834448732903170699587037738617173226374158294911247360999016475419292862101579066473546683411377988800546343172942666057078482906425211121837245471876312032305485082091969317664171113487363541119515286137773460477625453907370718989055599989222050369429381430243860905878398612287442444355085266351474423444817122264198002679358907555144780757730683900320907095234830244788136194451499403771314347681277736018550853955479232678709800719617952524661960467950998283981493038382925045833781004080625333246862489446226270496932313024052628208493116128945959251134296050038072580345390038547997285067345779140654536476811858054106088644154199642955649870214859603918603044915890924037605561545531740356915594129967437218449298583919484113280544165844713891961091819935455383831544624840058480260301497191850247673651057326047163695430944795759043707268608943350131431737448949047535646438307138010962987591267622736940436132649696406575950858191196969719594599659726279851142260491204302132418900125415345082666675673480760988760819863840118989044659167742200148575955965175893585758948599493872915486009845531838941129532177855222521076439940512577105473846692878393316781729466052957581938379169210088673505476392076455651784276724168436929939795079135246683656054824822766438967719240960143592494825328391165984552363977276854006271900513466440552868125928587044753600355972188541892269389399717069452875689189480525910302169043328191195229709879231432562403670192923550006171653745792555456590744560309265009331288240064498079561092615176371648577013011570665753588746616814263665365094477649514376346036609857349011258558811106487815577109135955411801005909262563410092106498471219621079087869038081402082348508326466509032374723270751993098382004208768831457319253412363003338324769150237503724244974759596497807406790092493572135717487491567603655148674882801364414744209622059434833213521404340068467529816799330822705462355176301079582788624079716759014305279576465684925036911477816263883894572767525004593834418021375009682276831103185578398391972596349796819921940295275155159774328695090722899055151797458226126422271307107635743488114828961477817344715226213591124312065138817705151983400158733848183799913481561568480754478299170451678835436494220650578646902950714135374084915956123798194624105871439053826242498371573816151607970199841843980071205769609530448546699397815657805187092523950804874198040632261927024511980202898092864891362994254110630975743010500157045161702732132798408652675033786580393884693555646066023769473450877393925023347325941993319037768806168758831258818870392056268560745387485279029419706511485527835013882659696055734079735941325651902857322404570654079584608886912092475846844807120366943743826303921725139560813437385963145760615602182200360064551441725483710959689238964778159518722472481526387018389745794191116277531231922718748434812868834524915641665956937382704819121196337475608449295666589347479357616438338392025500534985280009877758256838938512256333105224435256453776171467895023803197118787353974657972291138699130033171791013557456114593108647649743189213994433420293960799387156358231337130226003184761347732739177006172790144873463349006421174345062102474824118999435794038705069211227387255349237715519603789673882380637582686855668113986623064342894310365584399808381027978830503650184633560378034886626571384423521474324522690949440078538708448494105125479883591368193679174112364570592252942958687891935621225640977138308068379010185028397190860676629247586385003116608799061897461523532861798312316473758502135895978722990018297503864980585390081905460497903627173905118957990918344535484548384907587812895214718778875701130145058368148741726514553843092118644601323869164727964920940951778128654560326565227634140165611356225348726496044040769258745541458769436735718713374453267359324618408820659250420168376219873309755489085347365754060957966176084334792848245747334188416962055951980603904426293456369705489330585986123799205257408060379265923922086783926694799700424509803020766862401488187841842144133365594635468108419906478191763125501289300137961456527226333569827782970662787576703235125177119180091232814975059402469014852726286289655103972639290123706981112744387661027442922605544933222346262976035404093644405609688784354366970276339315675252067355288586508850917477158394500752355230227064775005942380372472493105065701832443345154750533973348360259859742600123697256701754430585180985819517282454372512028278043517002063458944495069451585955198787753517364230369540810382737365872452967178596150475782488486905573133637436301203493394836813657766912339314630401246082997400741960113230520152930884980919313322094862396491237753002741763077741810894908004810470273294375948570955165877675200784802937928212725841099685819435823937149571306355385680472049055617455512350255257864459649731792956342994711765756774377407644348623962232470382057413591438668924117519645409015849040179849007614632139146651041111100655509403839590971389068950517703986326613364086407084082334368313232500923251709850315990487484968237880257451626176634303059716727138100913058575164801901744733366195140260627285198293384023523472066601090706358278424169048470933624265108176904781600108759291082021386697148981407430937077028670111412123244432230909150400697171006309353800841006848692561185141362263274132730143148219192883796073255272102299456447865534388448153448080688688951792329301285070842286269118773836665474325563743759986548266487093003956023871144727612333711581876881207444206092685374989104381157666192562314568060637768647756683608322223505220784566571617702418764301264099766210654823047231065347129019699256305603165408104462787599406634492305942515485043620146700629022021281845788828511140379627366640352463896757142878683151483172593226615583576067084864002531681326041179039379427837728355089999168389708994078343184214743645945053378418492399826518126285745895976898026613138457293289735109208009067414533888690006381307281353519820388685206006602586149238952881921231073397087520478048533230604603269085853168887058701067728338666675145384444567285283569854489436118564269794009062183018380206128012416821375728403749775303590001612816124407922416515914525521794428019016540433958474141314029801449359029874103498643810872586637783131489604171129335671576563378057639427326483104639796224448777433507879051201575465736676721769694587302539131312850512112862205941106060820600030958173270620359903386315245187893426644150985779713713927797264672175069723669698872702956838511409236578539067135477044094419756367776825767773266683427595899485645269474364401467253087423606845014064969975202363134744383952548502205165522095791228733721692407892696114512135476688829522268691954659779113231182309740455275006056290141829180442295900638703297959302864561973670163248192381841907175341519495647932970490215305096837775622770784766532463573525267263108650235946107409347448962429376617501979125906704295198335131794794966587665679268763728093557872875119262211822981376568361179886752693764330706319571193508868737463622448687614319712295668023596993312535923489212206243910014809276775796813612499512896548192552377653533844898286283868228323299257093858713306306518159877255311602819507293628678475759904551064053060017910075214080829476017196685827351878853907725780731049416478814905137682133564512977844407017842804864990459791565019220796034771754379405992998644933025246169236864342544997660184813735331873216374288487636357132720631200020347206902706986576160494393050496819482422805559855213047772103818102947231781077649653490364772067048642806781883807457090495564423385454367852261143897126477950012608774198978620897946905962344918545067012091111854106662706297332447774811615589446794504784909669796651505242571217372313852591173540417953946818573033201216966916847476292240483650080457686280568030212673202515569467809055694719520925147482574771538440552554185389880714965030238432643579893972002768205936949144844836075663302536334765383091288491207523270152500966894666081957667836144762250009110301450450836215701713431637687188876828604108007029321301199524546310088489798785821102290876887528216799275680045196034301222771984766168835040003243371177521927486981279635352121103766472106095410763773492315507373086896499352543450010850777699088389062169131990177654121560816904331856356833523989117663957216272019449765863326445846945145492889333157674215849610175113551667018116687725157009622462524788781874461314858083896713614839094539498988078270395856697750986044627532582154388434000830957307019415606301138450267015560471687971912098034788286561933539766764933167939724737366013781932606877535596881722432510397386477112392336491466071289486019307320040667737975095952535930034739905387515925237303664813626830424609492974041460732233811043116581119471030337913264118368094483176271336977439141624769978153807716578151376022494836068271698772441628781358495961107213636082623427296778718381737022656027495549409768412295842294652260286910605675889559882628052854721376752033372028735584963889791476596174042645407630460197517946038723870664488989993821960257563428953547941489453054215048278861026497631775340839300466233059974807680131521677696073118715046521365976230766749812318639880511856950926898020710384749465570464026128499269972818857368057491589018300882787167874601182469991997467931635924635289532432536043999471824452229899116839171109321100886346086931976087347542086954283995780406881717045857600078652928707432050327770123287897625444635786774794052166985613251686158679117082439931050427447939617276900731893727493654892427144973121287405478206213125279050588481169473910184694360312473982901680893804577819339782657287936498254557616039043589782830528861170591996286592316902220089998460704250161376013271474454623280825170200965983130866246079424192532474119524206132926565844600669068653519510445016624091728388897316802075875464845276170792762393259325403650326874797134554765860394647792779557924164369857217798903575681596052567548142407044610091439452982825596601731038904595077505050025624271222903418368697583253709454523593029041374158468438611331858392536323731231381338748822264362938588679647241710445420675156873126016213003479433603795237402295495207057863656724553902512680823583086653071811725948501923372216410772200332932284331172723952860183514418564223627946997255678334340264718886853142297731230775618078919628019055315432841066150717218732512956110546357741043697885828227990830959746751600927532720371046662028947722018926827009153220628898288416927310915734636105855478044182479287969218177536066855652706268572210172721197894977043850142835759013719131522077310289170787175372293805819016422315073970706284515123119645833897248954792870655784490129400160972077585021274004852505742381057272384667208051814495516640448099734040353030404853947954642457705461956005164704655732403350956541338955964276309163220335408518927244860551428581838012404047119315545772183887899941135665695001709160566796776746609868898754794054434655540621507587272986823910604221396151142827585360131533259654541209276164139656021425008137833620474137227976052876272446542720463657792977732209148221793595208946456768491505604431640020292579291578316007753697573034063255461871083578122349098735349172332692756603387403622332827945599348101711448686458493802787559483059511295402322457382061469384037199557118503822009691289012006173142532861584510106895808395024619749945148011039032145557481681086259922737455599292396684776720037403734017381144975655855385904773214180580131550404324158811011580744968361883648580944915624645820211237098300679895215158880290854445044009979015886475520762225571635923123983909420766684752007632893608553986697306158670072264245447707406748836038204701517782335292999914131779651819447085472730349914905380237526835622600572594986733860552285763740021781773129923105571724758569735438009193783749781080882990107931939396170908144869895008086332701674262674773792470577389271186107134188333428724515950595178200131747802288292297883695945591538619282963435633950760226733998475958938924210419751887170677553237086931189328773126849454957022143643328223460349141673756954602268529568833285439048107830765431267328290410911433882547572265535156783938306803485725480261871626989352286293782830509912358191105690560537022504292455942907085707409490659915363389402717886266675504828871175852230133072466408236907635350593934803402101735442227135195189961265747321059013946792682785017382702755201235348856584047644075176480497460809624231408098044950343889256389006549237841829676123976198095731566596916865068002444726406761977972385700122782070661692940025010484063542757254284243661641079169914405811849012921697110680910109813252717774462157690165259229010293288195883998282415762177939670278639223545641793575623349103251977006171039985985754452779303404091971011703863778180096853848557479624644426848194337044629737527828278256966688108013299771826138425818286905340438172559449255360727671829299015052482287098560439526248427198478456018144563923304940004593229793115794069276053883032474646209858455483397372925465491754745365788616194286414229524414172163159457236570507303882609511463112517764402065702234355316684906156688726383908273869602009916847243680280730054945783549489999939860733575911121796979088827639225022489431382316484135250964354043195044777156643603749734013080446446776259434139140954708777052221051551794926791210523273703659358022697307196851454438739945055012737579746569212166603888374806834527402175922500886892572872797480473060472284349824413210920448548591791211853949168220894547210578141352472116886156638177785681905654714949693041380888140908390668479956101548969055329915615627986087971961665729052813691285838565471508187495993241696346572120777542779296101132499968768165962975474939844328088979630374883871553683057807943486838927378847877111534920538621225683780485443218054586175309701813659646788769204194288073311496384578722453378514849530450484076046341791876866565288844384531812521723790390140297108073308792990561564286352036550653250892444018337955350655545252396109878959367436860259074005175386668835342334132654857430960719329432846334250484786317242471453160848423918675609865248974925478999310663212308251967372949912740450578238112979235887679325351352866115512453803524527856607341353310765918881193773249453792716458308013728249354243732954926307456044817317433281372357628745300066348601859801047381832771179427254297739427588201741913310077558834275248827824608979487007693852944062734763145896006780302795233160139273054617220740768401129888002392430935883375100632280109101056966580248193815371544106198042162639928680619579236353005579511032093551907781822473797793298426098100055235642759455369369729940708486884728596548800972653282326679140728303387102001908407344109811645219998824468189027899063809556718191883449164304486222851084468808245663791465797882922206084346315822084366686438321184125619123829239821481406857779464440595235424954452398247304674291724745874930052709271371435490561492819617475703117733791149615861914039920787720722449692879379712799354360620117337349169851399075112628507287605307583247982185251153785583920679863489424596884570453355983048935872659069560152795413982143097503517628276678413615396071681281064328965781966186232320345195200793281596458336431012234118344839365102641864368135878522433299335531102599189376054312369571550743995898352867250896385821030248967065747760575678739245400382615684700915183315066726029528923440527722921577754282707655980201005044575842592570333467533584614743347526023426549385748924816721041443127351991355671331265403145199506709156523964020022530053075459503960462486746000452103451300887530884373920872577312409850680891695478698942020595481965345507085914601482056306592520303372999123507860790583805408934131682018282626718539497926357313914894907318651239203073829643275797838265114797591597593991751016804528180917004327190754077009959776737196987324109807868229571293083377312616714573671290717678394463402607217914151060840985451876456451583473206044505262881464171973371570627621793282521534960194617489936669357326260936698145753521090454388661151941510985983092862722803232568766278305279789725149183298478486875370085715590743447908367164864614568033477302024974727052270317304035457968919554800493709281517088824097781151545323794603919179728954197120699406767074621139244917647309884643212675771818453197680206843972575245576703119903487699011188906533633356237478758245975315808684326468443891279582647237336462992844731871510095928412506809010695837391800182711309639403012242876071055522008596050429627649188989976439256027438769111898770681299460452856814067712914364423311897392031261184196492127503497376897576846142536553579298903971966108038829241897838058216592372719691198838044326222618391891500031549103958987716156313235412961560578642011712204758179782760814734007166215475113415826497059044423044069219728678865074958306075166622189057256431773481371247864700298485817155725407934149443102103876456729856397250613307506040438567743231865048137204441895582098695032226973373857747801856290242991362660367046985514300183025556608402163087215934078559064131333024056957287907832991180891707594386053373798717545256391144280419345692453883637633886480498090556846705443777005830041738122981861664596406230323806422237072995735358925583458941290304288663777969223667263699747318299143003178899615601640045730435441589299050466030140773452223260713933221130440778977759885316659136691614836589091667820090371360339136673759540758695326333703157437618881809018939632182978301992245001288126135326380514934315224383406995855949105647948122530459447959301513323505464207787889699104451252436942995458364943620103089887010672899429008383496969711435763420926603322918115131225406969794077078656488219300075817043477166802131156397059804977349845070947634108417374072388604027323234664058866956588893230547584463799064298816687788284175990629796386859739361135576133673611147070231115155956174330552875462387636736224665637068369228121121586681112589439059578082180739274632203639595512110561770561308829135761155510792548775221909959570476416698998420875217999642677215846648361098961397066857763528593648846284062512901527818392399722969442818340791532058442577497372055981494530723104297391557574540838129141434015350023387567197202623032051299213960896528874826569931065330190823234284607947160946334566098902144623898162873070979784605713252729661920165987835834556656190946023345568696395618676440856991614758846956759345726570424927158046661954526559948320385085292280897956502303121128366044887251417533532743162627841455510458105245104592657954431742976433772428822470829381119491095049381120152101814240848356004683903427386799812598194565892919236880059855147224856266394882234784110275215993710632024723706032179729312299871027437159096101360796411062665175175095106325375275064869760933799411490928874598314682657271434617481985429439184910213145093933798401004356740556126996133026526107412592447960288656869656514918792130816031849170344786370883691700722444185625799456574510434928343281087165529142842694689149318447397975698821706664595420534750264682906942203035806890156770595962552460264108521709638412254300169101292526515636420719109541891974036036484106437100944330997816119137341122152911993013573030077496479617911169155118721429553540539470340404803452076759970075646881914245253733270091557290371926053800681653382338727038169943948219202942153247012648425182601692175567629991929813835445054610974746674899127613390191857237312042138617878206437288017916686736374384591309654564176876174117083850591535552130057478352389440121331315351874879596631195154283749934172123779488200121958720735968377447505734715304134382372213638796905655322638120068131772136583968046657173102081155631687955879001650609093166666259964832856749508845546161553300755227917234459912133649012840597861236939009647068105542221687214259367170015918545235139766190494404060423767894428041737415181771464908111756634316329010298408330614250519032567954779181644805944534678377635388054256366368044554009667692753548748375225416300338119179037520471111681306654497144748704544174068954984244597003974048608363173987010405404327695676104994313081082657229854863675275554185980517217004453493368586515920978265201836815618137627856412621879286130746081855249233308686668050079231597018870827997394446425523780099154954655177056043076252640659287517520967956730984283376737027294833522331984409081823917112831219453169720787908232933436951392648760086052938177443911917597311353619427068246860754733666183067992997529523729216484082395790029369588723801705904307601007277196451217703062524783820662385625200125388491719749773552496874483116805046402514450768162310294584914978101525458473778298748148583479782371388161893953379349306510569914879021686238078743518715824596201989467140553617393313539337577189915300109318796463930628678986490243434490315243288370772673640404617270896159298035214867328266156893635125008039953884534494406704759913331453998978458263705500252608614365983895548607223004395986656997476704991679248955870002673209787208736033166313801844770076391239341899256580375673922678381594435347689846308589316982003793870854690527063819281218069018049642307029019998959384295893907503124709884548123698250236469634468523005392541936722538572065142707511878122396381046853960121330141240598545852645930691081372525212090607061218587918475509471999573633910243281998793017457175975610777780055189149055723764679695343779307824790305549501452566076716185330415623802488790532331085608905599329309940424183774804228613320548378601307800003380524771457677001567768533317033357062382115079851162540994172383155779634519942635201358589879033189487094134674389644328009813467513008897482780559844243216007772480074598356501076843971860308181602409996607937322192766240557056619310572891901200991333747101659895389934901040242402562936719944198671962475976999999044924460348010071086021557466982470729075020416124370722541625890577535051426979798848767353989925651312160626051244758155126814752337256900202372609331911410419563245974985075675821523109479179241152339908677927279217780101735429592021895265288765069642622599696750630175876342151226736223642485248339892897382826546226859130176410152533655870321013348455717774313171214222927751180270502008648989996787152210150412757527046974631681494982592292754249091898149607516554206672190726725340718450669016090741785131295803547652575381104080426005950276347532137332980467010162337097807289995130649301136893485797227342907720854254318964190097903275252023781128673081527705110656180485030034590431551156889624910417790760904977328271642833881077730776909142456352530285442201928023477356931035955819296341643663543873311747374997065618214149330298516181595527330780812140234664132850621007498410786726818786399965982017339301082387944890175031446510782305341758093868657873244881040063426263302134454536990933792694762536249801616213990403572577745857470472007768835896548224112491472024575968633349571354814815442084819726340743817999767787218830488383443876262916116805867171476010435644226900073047736973146454565127227290468948703017425261227544883955405528797360830879830242370185324332118492432725976943454787234897518070737372890732804303558494851920861583375904896053710351359121703426353176521172129377539378322317160817713271373440898600828315915620894699495674931697581018224104753822539853237600081898599890750250632164349292633455201335683176825257840448359617529077668205026872880264839528515304448224241842215214405639928839789268337529274327674768467546937248181031902429884523835229999151348914254703996344719125473455763464620063522152571312196394895729255806580915940748167585399491710993023132922392569846791489016834345220109724518285037352683800917759064517261435398773792429856346765435081465817248082269691302411155287466814308311851955923367938698706737262271775440586041896562292074769987428062728783972155395580396435447386978578193270195949672240628889228538434473981206785311034191767364346373356922582288833065685104377205951362837342326897655167459665569677145627176300528446661233007573422405875322165684808030515802323099819062195869705607274578913717335746157886035178270376505707815231277294818068378695177916371300151368452599066209383533685148797690039610995015545756806901592952813640413227140483690691635189193025753185667293795010327896743366142854510681220223966655119693450911778659319410935868201905630738603624604817455501112532351273746541587276831212892902587745054447485615338429351845824056748030853116611659116747488127425887645625948282786878275878545623252616852802035722774194659261437349489054775893895668208530670604371906127196409006424298416596923399088580402482279821320577993179313313306586090837626408315716347741177597748337483048229313709078200674516483558743427300189763580092951105429586873829150299112194354869578476552741639505400678773472141189876212872560037371491963805366441646368712311718788570723261979996042957267316524164061777466398485045037584824359480712679918483477423046736333781712394028052544334668460791243119431071281241207573581590217534015168643249021145714628687359702034388394925753822829965480105451976709545330558279001837470526627005536716311642933129456979988505480374637946611207085919750702747371716710938371327082326991632870851341993649996056616461708840964451118937792030704123172286664897087049829608852494613317970352836980408800821110349080432342333551275869366804190968632403392952465456159460449799973150587716022527087719336965218611773035931125026579658037115169092466418815905758449434133815021696896857923508613793015466917806186476056339884040692618707722188119178806102720710041804983955365759251757608683347686287617795783304380286950853900654457632924663018580366121944876167969473608528454956237874982140129847675768128789208691674524643740293917952586708523108220419019852400672566969753441303989854633720281362660391918874503590502696858385279491708821605093054741345161253197291200763122555963940610461267961679085785396819268443602576053234971922659215302089076421677141971887539487897479502839752407795158638288700734955549346046421083525256766546163140344179741943675699918806485956276239211229815218124201533786758042356167627033194040223988586118490685823434558972964340411780556625142811632103018438092593515188528792828288232043203404665454816229800920552951425476307599730568750010221730564911592498755788227255528206842799341367997502266812992061206372591227940810278916003086696924545927537652235206767378784530478446969985678268079493197855152960871254956521224524413694543208062141747067285072789078931849469797459928955751430384964859632171144166067766891371310484209092943645897612709229516949912935761105829751308718977722670561073456906064362120177637675054459873400552533723837381243152172863584388322757935697570392884208925812504891033956581201098613204717342192509311702693565585990263885453611403770751749698422475974695668924333349786438811635727914505517189892640806966076045097390612747809530889391493477645492714753871293673815753141754737007913538685178239594170126130611649749534423048515527833661424236654415852493919598349291156165433434725153423236056146830613015325032327681662038048996474092806526502446407020897712765478169775448853550873803197526327591770800039234553146372730347905872816927616510815013042751385814285483564362036550840091961284525316138543133292304660045847940818901306529051890899055174933782257363310213538276686622478845838562286468173355970846069299428963633234823735864139052058007618506300526518229878336917473519700695977644919071281726101243542459228415783135099468608498081449730130578324756059336573889518273905278828135350849501905112186004553673894803688778403501017505455251046316972309239400986859196214973469228373463138957432405530326125650806305120752408433051136047651366248014843401567658709750524950769904203932647001000410260359521977739589790904888092925990754246647226306773429564720270124707241402732545426322019352466795377513643116779352791936864479494703522194488621220118566842056682143964721068924699264104457780273921046123382842816957375348382744563599034663335264056281398462641559127166933993869622212057836071753764507944376002050750210914202189025803758652394612928806189026228846696848129468807183226780182425174577305749537757882301780724419023969297355227829661347884934385009159468024086481431028224348787318915612234496687535585217925990122407448204972969024133066406743629263947989597690481607492342237541216156561992773626184214250202262914743763620430431451097855342140412604926137828039482869397929251676748573871148522763894065270340683727749640876900319461249431526026837743138923094964436426981765279342028714671073931173382450738149740483134527359874446482909739219904224797719859710080813549727255055154250408345716385454399244233960187380167254083359305825846786824723934830618980915940288691155200224101792862804790108186671588555193990833123237411073251291667915222782394129792760641635385545029268998380710962356285450125581805026528391914097729671890915568627604951152625825379241318163000068101324363766076508872936461985192112360934648386602257226935727598733242345324790103438142033285653349800250596947520386944931629798079525711633196575330158501138430934314447724343246946220301118769424107897422365050857698546935542260040687138920597909614585670770705088527232023911545659404345358344427180415963445638659384204891399776217687195948569300474333474909688230210767682221192156241325293652302295256966941954556685101795861693979357624632676917800485066888939288742503421860304653801279661887333952701657797188749338429328606023920311024371422380038595502531510357199476407632752618737480021809615008903585111096953823146411599235436889280243410259184360120436405082365122760906372824061921117921935583055044834767931984984001647766580475348622318161668191160112851573349692683801201111766767839088402577131132029496314765542355002221079909145775594707454217381082233237651717823729830377194742419066720667313093548607747006302896035349895646680338759476700186480043515192287167070898734333589261801780824112783207369833380029049605612075599627185602512769430237757114076390070417376159054659737940645615545520622937090080953618581917417032926448347972863913236697602386644422561057038269494454834527134363736176000568894788799164143051020295254543805631637652044190430116192190677265591023074523030076987634331750059732388850016173139998972654840957649174132768025834787025459446373200248358277908053761790109223696353404795782208736368541804736028989544992096107171400268704508857397534410147780459902245033850427650424397710837986407311278981945651304291149234687595164279810000105674919018546446685473807670521305063336752953232378230076934592699406722599582376595996540550065870221321624319242275765685563514118380938138894784798593022996797304832661308812662144406897366384608163137915009976099430672144025360524873618618207520524433760400763150237894420824705781001475287113172245940588000304027838668193912715360719081175513678698116169763997729897892436815317245698375487278942342311645359399088779610214424639387311002353198243831090368355160118856074349897956339113528344270314165324523288290941244106807781117114585252907567100522482846363120787571481880676211628715834195135167286551925285631470963612980421200791823301082372366279410775833917969189959428450501302219493640016039627231650715654081817020003901232183531245720762469688886281408579991374511120681954804907172091987172825909061981395244924901396680241972256027454670421579894389136434266689795883234954928095738333603982411814162955235210323871700920525066603740308257559890620998133511593879336496166914941163780869198483426770298012614661128417135971814964310346411722484884083919430074612355218936971969914657958580433612715212454574935625877611352578140731298983855831275113729059799094442238923765822858002058379517167460931601108985430641667397332783546695060169247151257822564896262685330090044340887883459044040926960523144985802091371730086226136733507380406255636028910777183246679065583794833349316218990437040121270246563089556523445348727903880410313495505178105870285615597790750873228286429665653746846043722319085966248187004596050749232790012871022496151696933876600086808288501703821956908242592030759471569821378917579067984570082242780607930660844723616259893386604307847116311300689348625599025342106299261992958102529221833889725357482532516298098767715324602205923049356100601221417710683888060414828513667943485635373310277533354744297159510651017400957504364503346475136285593859014709255814352654477107049468198321434193906631965259458331529330023593699013936947855760811436715398912623316114889458496712255112915304506971902888017776863152287814684902892971803729982401616275528093817384395474000619266460731750171803151814261256528270248036728587898156387433713829803242585645420172101929575631449155221779492731922573337543296644262957304665002202594001175163151045914362797775024094626808958795324164221331472889689169207527576945125861103397076541520304309272075954494226494696349932829380633141891695095980568638975038809931588204020192457279090217429217369182496379730195476492170884609690114083592305838808005518724241927494385400651147173253543467286041590744125241977338066080697244720658617462325241307665760881159129089600611619634675208238146821892533375115259652812217351627258187088019498095409874800670534671621440766449401462897155199565138228563798455235081773089736081341415348384876357891787405857355367747041095818793154166512842590374148413343630804448670185846299938239010001232287303250974053948673323275786106440711335431231824701584210382418296510503389941559024029853574091148770916398736964619547849780927276503576499208732305054038032293504036619621170504777595247035556285469603281699025302995439165107351764863263676452964870797428198820792750995593123313330987885004610315691852572640163949861867044395142784022595347857046551806251518760301318276732449124284966397267732794411703230476806851107964784422435300210453711944371301679657829513648928140241962307265833066856249812125762898524545624916007650027541698656582902638201344638470799573857909396919892482635969861989828916757485960413241847664694165513551326943254770357763829156608532464940368204192129219780886080344970483788121245340984811044281569426438821386250853843312401401727879800744961724222983524267761280648601001974486018898287261964554423568520003712304016346946307590398731566752808372010653973216273281913825359663702086115990696744951983423453987081219581941690010443326550378106362217525486653351306123068263139391181614295681158758106454630389030787040640850184523695546567941504401770662904781335662953570289903352750623453879680419216912503712512939789555185299592032906089120691200018190196058186939065220091835536824392430852966909889351738142662400777128285101414455507829078165469021875126553564617741811490689520383988535654343149841640795675563734616012594845259143244487248964144803878227564773560850778043407900354581854324404555431033413691527198262037169373133598714292963152997544805107487280662533513342945449199752889127291884071282595210436057824000289486906035146512574421297589409737679799927942677805262128887626625652413706226394360422231189414955556823322381733520582748806886303472255806981099485884634587320941709048298638533745691266993636177455447291874110533586415402183240357254422672575627342362064341617920783251016392358852771362001500628570056944257516846000581295496184358085181795827778425179091287134081616840263816967465111442317143072886074011083805110211679787664964161895404305613632846536727229485410770180568607724871796752277319180070257373337168386307909779468852865129934178090962559271534840911479773086377174341272890491599862431295745263517512980327186998921606586838248954248353979860072413532410609194843549067620268272120919424352181920144776434561419662876721498656952124123455531618802232118741337543556308227053164377876984013864415849224955733348205141429479929847706837878216594823003729216137320042947414092639449384849855839148651827541504262109973745824268983070019122406292216844578399230501512403518162818247637005496820778697001404910056653670190565509147902883429651548768567547015074633238634301489829091339871589305968731684588216897261796957582156329333624483908937801699304727957010744369507839991054144876099240615307393975621918311326191533696489507442523798209463183822248898813291562418881884221099430830410530372867174802456075277138543895884905808089304872574892215721759192193814652987484351565027282926031290434251977770751891399709697604554047239624639829371786799944502449807247852804543295278491490954183130617684362781647600158091487157594540986590918774977905391463221098695145654511724990254824272949609948487414540516063353330353609071390444382787778707603355854820525274473577539262714428853732789941589947561034793377773723772634445018334236879305433081323911323550645323315019652246011351396025226806655366828195317029905988084140583669562465860543637934334942548640221323593898855543115495648032579463341826675316975593964197361175763440254289089001056631795363334212865260156857432976402382809183811627501810801715023860366079161044433628936489354811049706476045626582949314139352723484271391394986538877987513130217609657213084559265945250532513531927059141858573684779993576953185948940786071778443264258899501278999132467266501927418370679290487944723400064618313275517863623218414247282639345286470353851144592700190293361663815104870970513319843144757862725718994361027186977119745321020879096927065828594377413929335002375947117081464858614765696385274146505590411293631212499369986616877822136240588305121271576693105255317855053552090707203577968625901511507770043683974022091173150062344346980557531308365674572539700783310750420239919461361588931259149342150140249411647847925183287969850078051786712942506571436231071002080346214955993444147919546755431624891810207590853051656495697488674609513723890355878985367211564104712798613043964217546296161470737822305118330102936332647842740701472864734764966651817062599010508742584139213506594051519256979365499116990231327570706512119732676398061130010731871165397378348598830851527089415396641595846597747608451821328439586090866693720446197570449005670032539111231459069505849680013625643611008139996759321693265981057708570416320003411403624687126977433972358169233241318758092488808434141079693827409072760274916786760853016693136201054811282899683505326574019855191282804655890317599533910001717538561450136681848287745858482378560989556521121690126489316561458842026556375135767251982267554623239728411339073219939800431664536058446218616379170323354884472412274983880540122780675533640049491357296805222920221780166219971742231554733296667294041481723739143719346993312399870695568431242067366283650010210595218419668536218072943332655717182021013035175588199221458815950966562819535037119271845745239061887681923135927511638393340712850778769764564373257729246670656197581831168283696512092565568216895755021899742040804790907255008332482555451122539790509587244806183757760184129635158921272133178420828104962820138793548465076973530735222789719661028059088163395842512384772849929934190567597734096647707549165997402802429684660113742579930056989445731440365023258811561041964550093396038343492405388440482209246894394920661681897773807970791028124724655841579981215202512388944965056626082512423985666373266583873854620903773965375369399860748585488004464187984923198894281877004381573976602997092410327787003375433203226484320195801306007283381081684275742140974497491406616908240988976954293505135916528026033687876031037323731307009536743471672002131584326850147692642872458163711428259745029106429395465339183724279964853529465533406506979656073200721227457130965691927984940063432598932321145139155896759982536216177500038334414904888685638091307498031094483280039226950830734773928370402691412109188666526241377458039508855853472820555080151797048384510522300110617732916627569236234645704338995079135609778455861245614831820556633907577533267286286602144345573322469533956695417365776276172294080670578520290832630855439694640427306517888520045912087698817309397879664395083425540803893154443441327450379168116476744512858234436250104119553448919022254067047994276326576387252390298112509758419174726505546002149221438357199753758042741560655090866951015695176524148496878072855695294619434601848121955359897544827689859255375481039179886711469280271667592139766811278456693826821016700685826742568301072934207321174359288080832197077846978421039800617546534926376527659872729813784979277922375652373878747363245645276417848987572854657999683027545832985042011877189825769265307542432467823327318115214232159217907854238430522864475481842564848978467370817944996439547220931946106301541498945243839788038217966312773221607870004141480355156254537061073970704867805214111228589052908263590354229632099329790860376178407571468478288882162604258629604301084022406486544441093207385320374127912442892722687984001010031694514921729269505324010411177221890597670143222250804943899764985544809427429689479347656654805199805618569474663113370153463186204034517388808301850381037804589323107251285709165888017278045525009996424229977004718912635511865978560142553996766244452659721734821770588422609732044846983151574015611879451540702579250320167624099819446231799359427438106988256076246401879951702016598514199594571000848485092964268903115376140878768590787471007214167291438706224044182804236411695091672187768597816712063980249321012359372478782390449922190554910950227983671039876753233734469357693263091946662185981087990164341184169585493703626967705766674573898864463491193475027589283360299775412925715290973486877960436950575814865341912159194371176618521204327274198604388416352411041626916698668981971828596911798721139244004157317715707181038558533521203314049757618456871280012244454861355225349879406224353305022587615486601662743469153954408856776221369167134614731987442459632792961009683997226282712875091072955422726949499489059689101786718974352898744095076058659951085638248679893638604689369699461931952893833942487354845945366538315868543099798959788362270311358004981274009494672337452965731069469365208681753611355030309523087115633015040249239121447784725263626652047723185455794643741852381880232234603574633512377491344376573690381769255172879803537359610628667441824752100035985534811145007230787055841449304286590758755318240098205185982924824900450099146517935658475859664866956002258531370482260041786452443245070081708457716923871896576866745242596963832698117366894204002956504289595906563824187500556558881721170249421635338536388360142060867685952062499131632876082668715761058350784156591129309652280012163617984787598537772377700905149100179386678129083065374480741052198033007242132582106333052677696151374812808835077774132130354435199432526228380505466828248239617085447826140818864174110043900448841736409169265536374895603055835070558595409924574244065656087796305396500355752239494287264752696508599339993387233606340697493253034834733287580189939574310149258118093008930825848443636528502416960098028423024213528100012669313344766121153238373984991159610084539038053393072211788461564499912515267685405706027132714058142093516126130579038781860838295704201108100753497143252580001774190602509469321922593532528696225082927101401850284439738203680441087627234607993403557321222838126432169532081285083053445871285049392937283159454757238567800950761438510627708568950901704589197099172622789235872096747980860940752812361469196380922944112408796837044554952541353857397145628638557496132033276873183047731768701968463995737008720444910055338738383075472195070145348032849651693372463462270932705484006674700943841199128091487608808763467448846679712759052376752755592996912828515887047101457575101633987655038187849236018311619756570443003190280623993125143527240793230571107413588117952280327035463567990510697108998289607015903053742701261565670645206559162587965486825527773294267965894645354159785026599889326644994978726655400205484100019273450500507584640995188595145081357815944445313444601492618002582903046013538066277235904625452576622955009774705860248335034223511272601204298697622671225271719145961894535564072629765803404030948125838471152758547115325146560755084319844090624471014233473959789300628148068489775207755217286484503335801463340747351514233569790307713819744339698810269484216665889640410599667097157753010096605770479708074590285139647971982885896214359702296158644238713034064610485252452276528627701919283231352609107884679158263625243352385833709802241520987983919206652260851996813101515058480910530822576945397550601927962376177685625194536093782314067583150575035198985549671860714561110118220155853005719194853973447177454625241937034478008895044294829964832625579257953622543891370126762600580242647687699642044882161521998697507535482752158657121052709677243903105505261784395308546260269127238506979338486922808118772960439452879426864067387115490745952624239308711889152932774001231393378104202521849265173719435030934909170536419082675840506970656825880349469217970151570386559861162955065182074199004335939980210067232876877346584648256299671822971571425742301645258354307744219246271838634426046676360241143901329237854817498746658230127908533936936325052979875385156990110319449787074287776852427925448751354618665379495698690968970008696028369677386356654851018492414282315426177935660000734205928270266525850425228370008911131337677733667545352375422904799896004425008825642933612293742949016693926360686445489981603745056408351648413197537225035947133766850825852900152018163423125373009450170186267981824174819373455335481865751949138419057083176145037509721294510661153919413783027049466574833091627422816120542054683232124235229349553979441586196807153106674534672197684950379733473957631819150183063134343202293866385820930799932555265052104265911316865207658078653110493515641729532818893606508756465771224206820034514577948174290371353408596250221600093856387574548594378117649708893088542725033523461341687561409322498065611466308195116110863275939180904105603302931374625967663974051268581805701238279342133619111666466636621570389351407417658696742359048140360341437336452016731080409468047176708618037178855514262500964265949873878063963068997788651616453039473172886596912271563440945020007342727228118502228842789324425207807788226110000737900867950827140173408355755747645449310788558553949539303528462311916590563929889300256436254534961075570107615871146311374440243040168969643963527529736439073009945342292000354770177281712907748110555219878698876489486176190101412106745776336059950675386676877681517918630670247751892923014042052308470151283566471242548095019440726454902051514937153364789003866109721880239754092457545296430259660188114307014321913695469321591910257919007199447772405667385192922426239546357225436966132179235466329582561092124479128789468581765427545633935187880405284864287826222089931514320380165596010205750170337341644594270161810511036058056471789661066388503235190658723012301802785011543883710245540956458267012598738467017741243055457119240753868206765901615238257339716369353711027391125294680285192470621986208197062606286142442653325820471229298275735965816208325479430618901535243130268381377377925409716321993237609388823558423465420198830727334613859265822276985465447213821334164771013014849371813555717289282894588663621618590669309849796225624760528950751568649373258537385083641572506699191609602768870131613208796642233207139332741119832883137577060975743946636936543408925428550762176482233485406923479349473180613615057282407112501451026639158779355958521281664686104448866213555158303216441604126636969153410833567945185315566906937226382962956219365137952145061788140475794377841160677205658781643329648920677353203218054520993014840727801259055260385946971245253987238783279253066439682255762172979198454753251622502407718214145157992021400681558623125985868331308104678880720173926601206892882191961679865501405959732682360645076972375642100603216212233435445740914844097574495552957559216385378655385814372374654184250406102532736045163339329037157855118937497781432535548733108969652138998131278063169851747101093103538684534313825168502855506276850788925810553599982278460543673215582646622133434988553622110592416008919404511699653576920455774665509098908832940282303451241777954282840375984561483443995173330315400510212679266113158604362972881365527754390611880843397382818761920580299756105240635674062119356527257147396012572236153817770640530321431343133973343902818082636946573769501034207464852732962703834332002670896988805880988397044922694540031958776308887233411119793958181480112485630807905643551766679569464004370682998270685935657527141864692845384510154018058270008358173650684373635276452753242064566477149207312784165182605455850574029261511569718318796082003833010344169974294676837116143211900233826288338577007638901818063658125586363399323690019509849046195721144977673135331927690838785484134245680222845094022324866740518465422869696067994005161492466096259714747573314526819771819888769725651224385951157002733230459289924723529862145503238761986163894557027644385608837630415511963799779843388169065263656595989537173821830740758389361433556499405257359661008433604683893332764134434289099298620784839276706443255035205170744825110023413996530420035868051438508551105666322634669170885081492231837227732714449499942522146365246978953563023839466451469028625269178054374235486294729876070985043126949049267387537328282816072202635006005676745280726056623359679807104165347257118943614381346085276394857871851901189494082923353214379076912371165663965181695987435715453761395797700219132426243133737433599787227997038860538476912636658995171033259353038141592708401263791353245420772446169121031073968241210658108971724035890985938309188696263150612399850509389090536836277843142757765148363417924136143929164458683523600636152773251257862469501732385963136920714106441392260733996414784944240162137183277570430100016566789829423880489322069708871382099756575698326128898826112685100412797593695107237389539440971876823430503403943479993155430595785167785200928298088480813941448459828224113585275872475009445562957767618207357357268364161677113082552625260618725615800823255456977061916229502108899472219585162940294691526329327466163298460604555486601812567626289264016836093119407330674400163399340393338913782290631358951894202097255923307443994861833640714497298723798760577802581756008578195564984367744936029356227285465911728841210415406063107058758585690097301236177187620060653187298377997740626841890382722983984514504555006742931585340628637958327025632637663146413741961170050462134542702482287314614622841494278239133521852037089036194289299207713633604670805187476079885720310768754743016620564578371131950724000797048635968859259025948712207527005412486369374668732212168740645589480856016242020251028439695148216349819922420968276567252881195252906545663123442838136955028258008550430682169469063636460193044898197116943202783303414104258817678166299373715320052873843009078624748877506498372619090660960283963750260262179363545221026158643479502618268471980150693149373979406142267269144815794704902541992802178446775582968391386063738064458226058449970239352877495282238514712975024411590801417388512672807216187513704561804332775245218962760646789031590235556779442855523889717714865627923545327084752999987147804524583668092421033056895407994801486644070353107496099904555141469956556646065249304546249787648716900078835766884262289483950414038114835747729021759961327797123880783080622219141950508613876331848978106615608133616985248313256892291886247637223031452180905649154458647918685941200739511283287303268412954805617928000619537932065441749901246855492112879422144316613519776645432750547100752417116990292715236500650039273391057679837571342523804725972537055861617159572092966887635574348325406245441471568361603551311522602684075856264565965836265030001167412303277177314805091505875298699937055945056670823227778538667578739374604409676531821637382679504507819864161480274713970381456315487355606735304719157658324653350164782285923150421254218035246457057983372895685334731446209192319721395639844655413318798285540628344840125642475850771035005011361872912292451315274450562821632394777354227915330756317763409684173844236728551147368582934087596398368121409326873371441643677280055676869293114361431133989414940234166093387490583879825365848952228951911665323647439604120372851172335907192361517242837647113041546178045906587860115221552313183715335478397949232274138880601975418143019235115958874658512552938765552863795878224161490972757687936674619455883219772439748190519193938662500092732542721301604995459728924401615070876103960951164514084498289671191372691722583999060169052330799859852217536767343707288598397643822627729557937529117807487632938499322968312468270089300393739509673900103382412175982315426499151247485553217912225804532205064380531247924796188346098569751745819911121065146684912236660083267395344041316442308287501687983555637402805888172063985061158501512456615181060148706233033265870761276703016873412672164458003125382583090828747881851898167059333974697890287611101832995463921877633573822340514514568491347728782083123854722474630741938846810048736421738849370337409179197964035919524629192296972173806828783538546304660667655885517954297432965154404514276321538357494866593657436837910210067779284449049961048446741547237835031035960324995813015491576208633721045686037304940620025013285234721352323178988205135702844546454509022258440739966290495513315563212739416823400715804841029307734913488999042813408769994719715679867414527590755866903000998091621990579126093123573166183283442543475944335654064318487403620983536070065037771288855218664602590881005246712014282752580584320848404559060343335409723725694591522212578271239534854293079462508579520201436596120812787448790418981653650255018599647147959387188019577473690241430911848212879805402364135866766183512308139383820970310304759380269722800656652232165037275137502965794597160633029329613479240464895310183798398012973771047517702722918036061857552707708553654852591310328430211634601449047052253289093220832582355073694721095012132286639472581010782022275648008687706671438528626994559386079018032646357493137042364741822026362610778483493222415128506028984120240900253906685790340521380566230508795320387580378817002783691900399509376754906073671994145378653387331195830464490922665677276595618042933988110346962289763285207285761292354153728286691188128102906315121302728010069824342950501698821254119002656187100846353439864708900891394307498827032209497896389959665801379126785483055063086995985938580366408224464217959556279360613335601806458590517958714266269161762343610824560492084424477348537104800240293749754520439593207919789998129710441266176868080464763391334119499719322221112264967738177302969432221091662735716884952609902428903442495527470566348917521345150992385460459376933905915765314882425142450725336900733787467457749513393682015728721054780136947622021938425426824431357580539499544451858848260610965656706696190228180784802764970579223515943104692301501748759175035424766005519274656213906392518062361843869895959472361579557217145405956911246629936560005778953548681120648294028050038170652216189723053354587547764089669937987257321519082618909225392790043094303620971428174315799368055695887372937544297513747425823395790157480999696953709221972829284526142681594707298742786098534447883568934778351204041673265246370895309738192886747285610367688129228914907845460868620047485521446081201204168217130680040261946565971146874226927012261011492012011497992240091276718905548231825791467569066088260661315742572109776775672478412443711638442402879551421355234803230612583902337374061757057775870052208296280560319049994897389748892552312563827139825028905557148768814655110763960184737931723964288379175843540017653681367564548062056454733426235907389037645657582410715766961495348992300720474933442150818038158264008155909437802144586942827844402544734635680581420355931948347952326171592645636768197125552033647000486862472503915323866307210373337958527179859434523097184687046152519300177561293930214234188467036585243156485007992461661325708049760868955719862824524423388219727617322052815164129641606353930600674757768975542671850243751508544081144100873008397941151489889112912024545994579225045646731306118273332302063293220647868362092031020860483194918443110176207048012427673357145744922725561469792190827368875079299417471950962088221592338858711031016621171438165478405863479845187723817968799941981373233389735506801581966366577409431260742371918778957434749436890439594104761290586073173937257501686080234941281713344915948028401759466429111099670550331286579114439703052982423027858266415948353784343140426723167758614583181380745922737195917711621317787216090691187513053337369447524228959536895301019169246594892464522641683513997784121664819801379655494822397861078818811629904572981112616846972734951210069625128406214733241084457955356026506577950268806734477803013435615780497152587499358741875936933240070617620180231998893004009400637490837140776180504573957951421658456973726007105943676313093068212034494475556642305931659006652322906720615878245818132862900012994138243978414651349992200225346953478613492838195051523395928624019514984620743754529100042771669627720244863724969393463807110933877052976059849290880903350116948520596578407292330182392015369397753006075069117678726958402565419219424737135730299962024033483620400432026671216571421822830762810385754894067605609030968523580403387374367993833845261757244238372708139886971649547408360076650886152414953188239493841970476166631522799649584137613792654312146425423577703766003029705942773284118279508148421917996792131875934280428078928449964873396187215323740619155122917905697138114079878827672249066243440299306228314618952530844301521845816880732743608653962706735620548882551059085881502315804692737594945503057623771661223148631557135597246848198134856476134499068806660458704828577509355789484235197100549840070705771425259819119978970062852994045455817719913883181490014161559365600868794377186946330615632316293426727852833574786002516845247515526774814750782342889598241473064059064578998097558995124236754377126532362883682976272429858395588170380802081509835411624000271628479227775347465007048531669355215209951045817798609742343526164280014433010393349332992927095861975373596411040178717877047555697566148539242222100682554843967491308714198235777845609572269958659601858363724736542564340018521034401484505266589429702794977358228105480238340216167332378628261627517306558618472808779425695418987641554742345910587571118019522930468010269076704041615652405250801897047867009137202804243520747849133137075515567125583039153818616238794916297048815114320929929330936143429740372962377508611341515579895320843331389297077028132429395190374738271495960502899862632990539246999148734734178219312055725473152693670472031453478469196930667799673292468391492242384024081898717229162623992053952633494123324247680008150453674166651819480568877042409852091539108300171728030691554739134045732597470654035633329668428424898280070706955998147116256470636116903389155479477466008679626347783356732935755605403856383740908761706250943661800141223652802033301692810457384993895004848162512333233628185583617485627316591604091407200322179257831184357679036682026664107293964508893387332455190797068619729984280158659904586907008072010909490690293983156762137395117214055516387725725878133015335290590010650923306703704474919059512437731661922042756494122076403413899189184517644709876601196350561252324008639741392781517777729852043185333330117191596459982603540633511218969655977448412868860699572576364057577224640973482676090775858450766335843539549321493863563474141929964313604286431214421412385221476320727210945395804253282634730336094646845322293012025953337655593252352035793531501368208370608734512104285704349472631856294303772620256844191602123821338924890021193456103475260732677639582364122183400571214088263103789702643291152842803196833588493866842183841324558093185591122379125268546918900335181900658489240200899417988479886951455802654168378333064862440910717796000907702926308290478982545471525838248655191190119263200706417965286299442541601946547543840353383504786399217004777371903384753791410078038250601105152598938047253930738467745834305043553017168031575734130706508537264575021805515744660350104871117998702866334260665147469223406003568846641322808292193470245163496830271141528464767296251510693911517815583267534775556093799560040909123784478713221619022156620549419787043519039184538505686810427838438742806957635741783157059524233748512825698039661675743012656567156052145786619423884003764183462609513256528552345151201103438967904453080770834672178440071128481848903817796077879515122487943763201931607231697772519508496000958502869385256649103176644171276615982696821485721138619243857263171722582365923571368239922310718197554089548752619863219922826890631036969659075169126789382509326685266759749667012771089336262233949155510787784267354577902431367963285235348493616456501588205857067316363398448881293242267763808692832516331669318761098498630675145205117988012775187769725765553437852376451531657142303029523045683649115011520318259744604365662893407490701604126575792985864449544457452764451618455445445729368134340136765328986343378618964706160798617917244748027948027456761225109708652853393150057665763617958714652238537636403654175686070412481628999861958232899216631962859921981119291183633877865742612774073145825231393913536835501236407177995923027605483703527944415578057724578832049026849470361054540508343740478084416157171306240028500975121518050074718322884375432350691094051008567800690566696919363279946944735129829309341605693123693837992787325189881372632638845619216728903375047895472133025413024446654776183496427356133472442446184396224701801882519937952185558399484005055174613738619495596283336510112744020317188048505670376693766089603868066381583480299858017945726651584823479209044142079708585500395332072306668107155478505817227508714670840642235016457153973705357205495946114822650533441792562188407572317216902549769165093154832708761391753509538947700302741427831252477907474346615032173154019433026603813301908741034889697759529960110844699584313122805878785377431021771087822428846393808785082336153115362217843616136916871282500811374183191842924505026102191375677688409513637440060052963409412732466828901234617937745099513757388399074826703692138397798034035181631792294280629188988645305737613928029018255172565951467588810399902444207306617029939934482107836755702132576067081674928085803083906899157763112726965459110342793408436022223938210407024268305812514033087391833440087226645402829622933976854797349894558469857961051851935711757737614877144173903326381383792270897247589892593727066737574851482618690976524655251060273646551222843234795463336633926877911617998115100785124645047027397560390971763896631181755332250259264582410663755325978498592311617342769163750305424244134054206286531122309216889581476495960823267381618576236395611231702221223018647407386195350309743325003341381192796895609061017269633951564756274332622779556152120034716703089092237540687812548389876100611968713514031365642714241373450987546467966983344415625676158324637274690561872436779185315961828947959091894760694490107461348888330788164813969616809692978258920320910667570700705809959137151670575873766499001556774443618009940959265922012588828140293828861022759841979641292047044598130442747234100957760450169766038850275493867624232380129307895143835456833525677301693533337147892287316680117508612546168987076451689084040195821972399386143005119051054044816784583773415778728029262080177458004532412601123633839754538548512876490786939851368045430164649518329239719966734494145766514516040110895016353529654721732842457521632986492122299498451169683613982092559896844732651107611185571519751497237675265265309311297916808982917690672326761976848359952919849977455071630178155025145476981653134721151709205052983092841499716112368076652145923769343649912532049906850158137319706910200580752478306453605133195591868203953943586114374896468831980649358495211656320060907818604161194177413555695865745110276016089209218899528494262489363952084195692299508758825038339134799928734621857540322294774366474649318643433743897042986776183215312185091381011982504831977861316147662927945229634330633117706170993066791051785140828393488302477884074985180924834265883087464053077621743653366715840275038667483064857035689738773402625743767323246424429378535537308154823731666770519431304100396312695273260305391017455875220871372969688624838202610368944733054020904636774300241192721387035530430450847774655004320932457790435884769498844599349419293097271456840436790420818645229494261595493624808645084478947062788122425171240905812999375001262017512991309878232335574848427089998657999593592849391383760864286895753640668801980169205369214134245544715611478920763695512882589971295145015605828674535696973716112794595089744904281890184355052429362309707253793147808611132776897757377891620218142854028053895793481697716159797960650577469141523741440175529438232392143277240295026654077622026562104907207630480184892911630014398360934473755113499452478354014723895782297339222022851023864445891508032183921245014406782539696610638663428144863237969696295068590514003017102307370775014062682086997385643052854509571142159903852013694778584834616158088360715750682271071490473469363378123117700532310769660235023599254896309067367612770387853048981911513032702882143951325569686226316372827314784321309655480964924240435592565254780868566102866115004271624979464651006837507422473158504225501219852326314213623837272955423989144035237888644540232390139413564186974206847039272296632119478857178429509992553038002511603769181631047088105676820092645493540065928236374170258873694278519871692526086514909077875156886018209232056071278480547428646467660821492350794821477162548191364148186317390301532884572904240969423590192919595053584082293790283446742847519734757334810718520360941847626896441177447397482383986297553689304935150947136430836385338215730771739827834036154238364247916168186633379699270490311922822232795833804940412552160291974062820664282442800936164761833125843069697015740063812634781007222940255843297914507930525587820830470114439310663976100076456342770515129282604007527963475203426281712703980345222269895933557403648550478743845948814004489280079091590184535671851266556802724433521192454773414394441403324201507177294807888240940008111170009695155229943570175635217417856372718944481438124245684930056460602528122721174194007055655876329566998418874412285183310749809089718508783835989789684147449259809114772321473060780750704601838878862970031291119426659136855017879557544635407449284679418250764151337859027831685980552141824876172982776553812713163524535370475568876153885855055870015366470844627461718362011920604539500053617953880689195934222559233448505392474814695901196100452545132325358858349373127252573630096500059267567245008237563140646355364362536628032685167340133003826446941307882654610531354067347698193978711281547568010022697821624232450864750077126919101380677883418650904399074664255696774204732975537647190223698514284625570509002192266373172194070809648217648897076716049632018829734507465913198314205766063059531089824650835728145557983138774295837179688891113871048886917960065590990986186592892463558379013105280719440944885089051697236806772717699114735133805927272551657569503054066901988171620927942534401515846576421236222208600176324081776212752481921964961191849241112453066234590410078383668253834597338768754331918742415463203244387681414096942379557124849126361948433945203895468755314995059507324447649284894538695054365029578589819054960026391867215793670294699885531339012952372426025904458885443653192145340757483527595413291387001441670016494319147963335100988015680375727363610139877785597374932777353410142206272873429938561586559912227381826918626875545631756269095985007800093600796337466012873392940742465602703119534401277019409354509357178877484437249837536203603055964278197265021179022202067598482481618215603631845940059826904538944546775853303257216395833607848282908631116106690539196698307364927346809428590857424425389119848163680236579705549621865921850009903202739791251697639488912610105798960888185760806311444010305190893620118925003222675999624829862496543152828124164878639401913930351950190192020808011971536304344383417854977153488165205047193389220572454365120724463797398879060373891460199016034746704038207697447587215751999929337311989304243677261129859438095076272247719927224209786075549149075356827259877448740046744347448777404523894506562002819378402904126091301891775490371413033117363694448178534929406186774555428601123848909164936590965781728493679463454857180118666272040862460612526219340121044229335229876856329856440196707554233479023526189273251050733641562734323298874718919852044118700669025074173610309885595088053998910052493356964136805579960951696122640316732544882455048108834286555861625421219712866404333375519548539622458453073862873322141820026605968829460349236613411910364117352698562093197789775806840956003109759760992060089205787577533375039075055075670633877779229605049038719796166748734806701381302068365024791088057190567064750457790515005761880890546437136011901558479310013511712411628327267410524633038676453896194813484052951200389232935993562099397907932662215978173636551517049542622927068930689727677772063122384935636338589249274751869384286343176396092748866486090315083010578085004315096499378423917929793166947506982078840095421324097941982742293974652122307503210065123328545251709588098830085088210889426234807349078981906300553147394960755958211053950616122183624921146041303591995686726820465352099190774660349486720635381635149727336559941958825078067652625751361299921994176081155401094920662993651271803379131192867683470282571797987771556403103676768172357240402450082048106908535440351926825609634027112878193707125490180341926182484167709425758001070277122090297530005959075638515698849387273913513303510921322413891719380013662408214501739629696882391947127310756985858398528113113406462106327883914671494239933930786120764043419587656287303497881576970761992824834293254083473655354032254807740199427846293177342558125145686725749667816267951623937065080101463904698449531947913345987126073137424149211403668951716549601179105705568551785655679498564160642159342656137409271128461367645228460053292468688126265138941844010308106073323723452518237785085633832121926819106939715231009691656564808136203954568772033135527594792884060307051577880073435528621763094446757420541722888092000418524513036809213865867550352135888491576285219037112485929853205420967682839409239027488294425324895122121175527146777016301232236035652332737442636734150762296558923888537300461535177564539357271536808230779808759093132936367358501487032020257284186852037241777649565159517301821920588786385514423612712299728266432646967428504562571310894437376206124535340549064858102398803632360780486820096314749208624827321986515599213914884949281778139145572488203091263244697789288755737098119435320104146924155070418399009359306762484129770535645406544588426743293809865581817690933389606027373996637654346024238141661053196931479774277615826441863337211389572475181605696869443615177384972510330488656434173346953037039843270275278314925014669255357123592244465774147270730604508894029148963840854633246453746606285991261431807364603422751394209142571534903991327197633307901143328563034091430977669207198369480611107055965299986045575343579723191573996954917468513296341953557634112595810376679234300352606038347951003148147033782916646310874273864738298946443365529752166305907047042462566434670931447251514343425316857167629562651485085506631705277189923025540545360556401509497270347423992706404631809905664836339929209228910764268974954343479855623631875460515363296108919376664153060384843194907640410095030835456862940041899634282211952816768527381763290519302523641098331018800843813842736205485226978342530657707683924409970714188535681156544881184273699993268602484978563684592723072641232428154569760965268461305911742388502586138999888293201544683249076200655224483614625920212692525548057979595060717761573343758039715441929635540350272103884567468425583555059344146654609926077804133370143976318218378960459702580338187517740575601650374860410511099856965798558607396454772273695842407178339985993174203162369555330240359652857988273885354205046633091276563071223258056284832928256319238512238262325146176965154983260880032288003240116691365516932365199470234805292007118114867221592053195343240901162057589190437556253992401128364895545759602627528623559429553112506071526472653687590886893021081738140182950366213923762211773238309787936246676443390662549864254803361090220455045440063291834920494549833544109173329758116707911130758812431767707699252592357315847760304428082808764970718232700977914318019112215802718163813242986654645066147397049321899458971987580935122025676728739731480545658777364707938778230983319849048771668184622798183432205243125242342609134723000640376968228754973520259942604170120913315907568115809094201529107351253150829683758462498133411735338386053950272695987474317619789284309270909278800448878122319515247743896667740037185182737425245222545457204604641914756560123656219876568200792214376877463256753201887033257979919168485144112585768444994048452577257373452124962352178320207331874777940174504391426512604880069728082668517674820788944944040533785945042807306157395732802372074184440191299851640734424289979274546906476542807713126555954404681953968708866744401774521424956508923964976194916468277529241688282332692761257973596658395905762536593040114307007655042872947123670156259039255508359197625424731230285544372970091695233750126348050814581883842602458873072758848714716470496024786251939701298528661034743406122566698252924907053328733052275016129085661360154928386606503912772886905837747005163582036799304263135634003860534046340134054785495269892239266894549863501646530925578237089680197126963614856312191594051806346604079129467514838303449884979633826587553259735256528331519684103623876399922022570251392786513479557548979279224805448654451837519212446881190616060285490806696093631096026312113884372906927331784631646398965831694877906143676846050755495172445526131939168146221179131515848382838263924106224097390548142637381219212997485054886770878520600223747864305535152245757849455157786016980497093530889124062593955838067161495302690368727027750693972765242989511155840955044648552728765566236791196201302825978326676415787654125400445491271795197770914703951997957832532450719548126670821519973534324942289746650032014099089282945458386807317751661579622015635848892711589752417997047233328640331492139726221214990252654918355404027695821555419094908631747433260397689902592515043218823022686719267144287788538455225652815001848823702956945277369102557212918332713645043141589203199491204829617793999866950480973243083563939646979541912427870159127383780553371151251130012713886374096755037534484446535248933164400625787158170487000314133483700852831184854495950369017826781975284726930264600198040693743856243306606527136686426669536573408937942600849628533866337919823681288649727770226581753008177770395315117317230434498008437988552431443352607905678868476772515406950173673458215488655486402846226327276178162735255205750792923137501378252479227990247327574683864457224751547134284184376006586404696117155329213051113156303902211370390198723222035214376031666826301890821324933177851713747561207803862676748140477965272087933478053888835566816345077886951280413962900132066635821329308189927638369393256111709398677428056390899782835884418749479201244780304086744550915416724793315361739905445823007832175704161443776942147269598711631431327034067547054419196361816517991950870991037332023549393112386369101868207650631511499713810215241416308723531649004874320437670391136302485007813909309876972092908538715034378997973472807353885872387739645150291832238124109951679090348063418845414265118688074623199571374669958149082084101751181135295237555227301437652229671635575672237088171857926836191310240247785162993155627723509029992545461392973676134977862830842526229542244476944131880934842123973218634863327903340309974166571395722617775324526652830911228732549315734209134302037641499026773239434503857988093652790953234194264885484490970601984101098830434237725143532017020782645050796768902029250579814377755094830497575918458510538476431650060830621249891632016572197005785891539808233647944279162958907918775843991198904630884899446841139113978550486185288785480344744163620260830108623221490283056948910141434336264944124823285926240291063985893755941060953094739765470561177039556769058895517934724716245174223720933202240250342560237032222153066830612345073564411417079121784502984395451706639436275280547533526587357704878556233405873592861713880592194577266230462755743102294221051383675834102384963700883446768529695356485563517209095073081528339223282293747241941145745295396427640044617687359352523628235386851465132740210578624639962495759665015690597381218416566303273975507752174839383509488044896461404010723462573270766952305834472500697232896392133243384095745404228588208051011317496477142140560613485761966012470902614568161368171063871512194666715724655279992956371332541382328160345511808537161798344639869143604633540074246374072217243503162990719906390421472225224098123884642222521312846976625760324349417865227932662742951751730985100343713678620209807103980077353487628965929780491532755827036583383696104088116738180323250530420909595134470437956632768008117207881255161360252444702348026581225515032244800192323553341610778719082947162624202470218522488322655450573950582227874304945673044372219804947022650858180001563443920539866511906274438691436166639190377074190490034456087649238421533557326052414903716549925585826609421990281073703147140576858005646911745643462844774732819375150905021652203175346872452793818273835721886393101488590692452491703769722081010333835403531608773802512972179851604668309041605594966199685243082038694157811599189749041707867203513678416690243211479766184841763523186672828064052821722940756462434111329286129380816237391086849989006794460262111420982147221124555281999192310377744969960385677940451960899760333397758184832457102565878858376295909040518217549935200667635601366896084543867325196265173980364118966814772612593152168768496947232171505444452861432484710062559035188567800057477777737032835096921441516885280379475533925038262352633208065447153331398240903275822294548873477411498090336435961303989307733396011895828810734137566760844780426973622301182453139925468821869746805907716987341651924345067101338032451686912253494626741815608193464715524809572665824843847531324450917198182326065237223421513854877722522334629048256490287800715165329975729608085531714955669740053727441673311640063951033764152919012934285438815743009935445759174071036682298278096537638500662421091679590783392749039689071729743964898908613654097344398170133810323648040193148913931625500217809759373246822770111846735009481961538568814251373922731539293916100751246207286300609027443478595234889390218040756778410884282036662170199821398799863888357447825863604756011106538950202739307109864150350912908608276323592569203664789450161071146872809848680728513116628826843859340888039969858931341754926975053748710615475630595714467683779600420822917710063931403325524964816825142420326679525871433519410705704989845471845333565245205132161521701574185353498096966445713708426314036446605401122240558329240240185713756214193830555460848260980258018389288361951050676795248762441442885577158252556230282820322463306382882487153668228555845038001520098374533467617379583561414627225721446501855129899051897584516834084434049561887677822983403453871413141481415701596164095188747062420328585268359315396758658364969031190582998246167988412229994672316469321147508823519608450410188229931299465736714928270879077200287207228730242405481713976698932669434086921311754829454974961023532968574823124674569606039330279655943551468612649241472857037879369027945405478274766712576360624091516050036422496144817388524066296445539934645796567332766037997211345577822679018018869099540813698451278108092543584791203883952271652975614030819829278769669307750348526387776273953873179600264683300198686035052310493808821891261384592887868347594239590361904442991634051884433450425625144183629810254842774829642788920566717762269688675745036323984510150268138764048563392097007787322798666786251670179350647847379864656543335785987404241864880921584965708086159873831376727474957598214094857484992663499288998153960741195539918551357035065590981067862872541084546396887524594290208782960214092011548409818330185135983304277086458890438806848712052532826651728550003148300082361814335531597411187289946835595567367968083311395402751515220884752324780513424240993533645393416056849699005271827237811922643439742491895274943251367890208132333990044071877724658663978774730246949591539989366140958879468781085006187051668571768446747614784507483090517325001984802965515842222113668231933275297700890301014932682929980873570044307188831137422183396561118447841698922110928555925976987282881837976808981952595381696375142147248572435071513837758834156270884004628778213410704429051330185330394801071343843237999293045631902212041314646646441362233674186320885762687856832234010230713793675424421285813711191341166216524068538411333355588766024867454624083631837958118940923172829266290668394433167767466485728517413293930911557005446719041559138686037862187494233541866034083494507851067833751706433023182884576280670069831568794966924121610791952851131037174069457009473346656679023778735064825658083551981415188547808439041623387793132569150599239025914616082387766544906644392224329534753889068123018074515646023576387604941350370002318106865408624319765237261500723368811233783837044726996186638051180352194678245994785918531043478801053859968619137418286214207535368946951500309683991783081328447131546794954923937716808684088097638624398009670415065012797425230342603089404749767837534207879121605073273202375862763752207278944146300134889531564042725888097858463697397697876386688744528519959444066604679408691549129422077150909690142315686304193343814623705078051168101074494362291662226015770403012552483655121433511345377215925371618589582119574564597354014654535887135890813154807543616519795037491846709613183963710498451837549347504217975590734977465920285286111191931490182895687958326494523107501106042530198183164249883266262052182032818419327066232195853996788674926211674834066172598713418023909362484061758133193939569217896891697509033969877363324886929972949562737161893688159456208060733304926454284968714712618926928654545318631493216827611038924878351358243016837283082446689613644815442050163116392645619742081107048366357254345271501047619336424156497031122865183219868400026515059348878327648289542939744893510630571904468632517517182814376856976970934004353863191463465168316814034652373072198080193909544678992393585039047021947072491148892891761431933425374047182957879043521990687761755037466100444350597908584558882997235491487215670293447406155932019586246358890026731051299310047028842330208675151178391073251545742998271991835531792904800062496311174898478122915214571977489469530892596283493877961880162550804060710192251956205553276985312744670280530558060151572710567041515133304197422102918060049943574387100527660628262094722784886003700514579274984830587821689295394482477987063743797159136170230208993401887372541993202751055143414477859004094337698016542023761808222504240767415095539954985762909630275247406371265437006205703594515122753019666142697593600414621791264592496062765818727064532278580127952095017903181955294414462744175050294077854190942665113436065567884235125415284800852187541190115199192384209561391363686940586076083110516117709411728423283212546339439705890540148888478192167933556935797976308287696343824659712883756735666622149455967719563213870740134079296703490955798822995328599290357069592731729742394441517837588585640968390886033270525935135632834669387835880706691686150690553820421235330091485637961094887918653237007891234548468782179990002653662641044541780145620850885386821546748004212838629545275709497482994191976138154477540838163512563285617202202094645981529685558773142889144452497934732647070302566999138703998859044068884924179354292935028613644457634810099531954530792003333824279023893135746485143462623263763766756236626751208488285163578583864303227916816663739557955232743777256784492091863831872216643588830305607164937647300434767094514506789679073817964365582998103110732742874044893708797742428530907276918260959990263720865605349949433919284638065192237010378182201751972848550136451999784474991259043443134413133163649501696742426125108718766686368411175670865478915508524284467686587098160367764754210345286061085217703200482490744930146468614861296178488598448774383208180366402598079584438897434809798299071148258353018300823630173335748183971677094511536200740125484075771230332540653281868417073754526241130517073073239568655148390958790814394991007486487632885675551407860495122658378874434394368402641447936036614506885326404232589780345045763562624137900889401286479834174502207537813835402308941851785898701997489532627873704152795310895639985280769816874210386649971093100846586104596151561377517292508850531711929409736470952524266940018289668375857880632639468167663575655818430898758230936084819656176708365970768348078916895002834068254031427478634650428899245707683694916616176417027697197736338662023928083222613661063815801712315438936021838882414005836119506209484274710743081952129168860002506624033415972272073236022231041034881269728129176382167182527752236686951294660158867621487666468656042832055726560800524810984165573509924520909347409645064188098202159161306509548713685363235464057872669174096631390885951594055483660284395906008626810665750761535902379242881509178406854937485503442345887833298759060186492855546681962897079196501663167763129199882167299495096079088187554837764886182682340515013501582934525606203171539902750809228617533451998115019461203442832292093044504170731121091697858312218144793973914983120313515655421069265289507345306696098286233412285305444091769645582133255863689673329038199691674064396109013463340353591375032493271087438534712350428264599445282972787705013989296650236847743984972267260942944797027306771554921601556456926376981859058382340096432384242197085099815621433090783553507647330614058445800048857555439444485555073657403857101588533197131280334672645392784539784193960759867800368687087670092761697915741962647291163438548276945446879264233660305628134870273893295644506161029783345119380292390185840528450058694342602755358116078640139753739333243079050345448225351840811464508953302018220374575912654104554261802784732610555341572397977182531099477689347583463142891672243266761090814474922939056442411661517828720910146296463919232753072209512972266514515343968556537585270002846033452565612225490949733951136278178562365219170229158409522479757704451380245258967632801174540828321373153533888156570207464208685642346320507563995113636233648353579707034109849386295963807830915693673549394374057793501972369115172907544160421560512217116394285968895787775117737852425360200894569050181178297647185271258506504947223060443251084095825824201653167617873907069235531264053604757806568752973229470063121905211848145401405061738764331564479147228203212374179591242644774340097851844948273872933614572879019538261091409054259233014551684428760440700195938946111615539344372832102701150196371986022043695894797019844341745104000148876805769139730676883277755345255331473741156036255823831489297044886936476765698539648898766612423272578762196374048400106719187193868145039033291987586441651140233009458273581908816797771562511059103093818242357775665861921708099601635537539426803404597512994409921458747063100510808041315733944416160473099858088182355883522354847212969608587657151480485501482001685351141864439542428703899635714968632427764037470794207205782623644964489862716199292845808341191625347793839880530188240300792863532364746576525301486467983044052027235525986312800849646501481250032325594157241649282181072880712868803118387790797704702608163388287018545389129523665560026092385426423820956540289825045095130230151078299043559432453279327568345921515167953140479365330098389306968134425992408949681170690376399953721935815864906793240012768649532437024974923691701753022308656524914835391830514344391314765663594750037457657388818181672148201974797989860031515664339567967883395353720186414615711753146329377389090209163961651242278953966744113374951505539034711415780676034168742097417026881043012217382203731795960823505565318469437716933680426519543443133468083843384015775447247454059539523371942558209403375475240987767108018203609892348784556039608510024893706045196393092987510850577557783875847480565053735609195178238450875200011353707403308594052348679175674435838773816579196813081678169316402717374728360877874515799956709861453813427052356274841491980530634318813753898233676968343895330913156008183149672829559871647139034254307781697282643688643206881506333953890625503945036604407261261658881466234583927350709058989260002875218824100938373977737578921972397269353571236615757503178971542640723611937048773189537888144365616210485032501585285928774623895655261367501325633538680290882552062098764609687633384662271883999327345259130151807548226005349956542689803302030563150885213120140378505245982060448053269881344846606962645804679989779853353073887019789422320861116226040889097601867975974338392978756762412129971591186407441048243084691013719657483690374761503080009668644027084675478377253703289361785123918749781129232050690396740706022139191643857466187851646161892523246029988374108947502706162555828409671329523986546018380178750481726834762290039114057929406465538062218036496550356151167524418294434737101577919894827137110409730936314159612853045010836970497102511385715173225044630237732429907620174250373727552039559365978344226916437877332781100193835166121212412201542199069206540884263655962969437742943633492573745904572271983457897155616656871113193964943926959904562525141355455748601638207238837371442436929278922222869676403664128589254619620102257969177273490849586627753102198655621034858559211508135144573227127889773165030911476113846362121110121371114479029288892181628984602192435512622593471093074618969695196820541342010603441998060358174932843160182148182567473643532526457553726448742003991987218375208993515433717545000312780330247846920491256273412700099865658217705381808225337009535777346693477687798324919141672931942326260689682838233873090590845947872405014404194154235581976138743262036203809910706551910242259377876691378851372544142632584448974604847175796824707830338431678732672100850449353893598456245918549079500689531249185896060902684180111092022641400269840935655361712689725091668647549672710665900188447131191518094840448543306601747806729816941502961968079820605326362932835443376464737333825985299695074573229584757002607227786153684143287589619097621471953228334812295507670480940894237549126641022903121972205300134050681549873806955647541257871447619314720246299709894308151698881986649206307532477936595163191019369527515706587722140539244947290288889704446819646722054293069362092009800404635485922414569333942115611695659553544439243285236478966973091877604339666187368113006017355365828943118651086291943054411834607397210630632165002266322536062039924790107216638858107164938095729948918632282448374099795335671997623520420898201848636881413121845483637374964982436932142659369929473284020595009585337973726958187231926817529030428923107303423313938902244456935342003126744511753652763239794097903545991811048901085589001360713358216483479974730935519290261576616651408402820866905052160371575583697050763456185768620669370299173563291504700147887335098224095256529748482788825269848267324437098928489252115906282933228447799946152355598390078488869692130175866344443433187494374074873609597803650454726955739295050615851444360216695135336668250275425348299161877662114494353409585264645740977833335218447621023081569009759431898613425478087520604707141968217633340689010171891613326270914269801886271446409569854381536270856816630630310300438203543451464913812664077271163401244289011904715693320137679155354118838375658752755933944562770688878143069480096300959343131447954814031233788511789729479765081684904293999152737367911833014357878059774391430840555214602454583574710978067031838428563304509501990607028057665201620743405230417884175744458413550302794717408839978288198126657971732026380848391148388121440069356941127746638705093592501348634514269725094117155366360386030545937829741947042971606708607423280561347925827323578512432512102417906401765154087135370322192173698531306306071415232337642767918599205630023834925816158309576202084942541703303170285961161721015722782319330204353260249598129235850912638048948215273314103433894769570434109826539792605993099794681662614110771041320578133408073850068932851477248096057979936395743298083355233067919981468806286450310492594474114216951764924773873303699217817792907358225956539240118894246980852481223348931092179931854668227350189407626969873746268397322618345108019677982375559300168077658265490928194139693500429197356345756529976529716228906636378430228166141491424109610806967820001904144173007059255585765962574776380397533867051426743469342164311059851093163470525827389614524393987141142765657265385291424692176168401223079202064111433113247034949738484071566802580632505431034537632453963247791101369335182565810829963604250654763624813887439580402853716485755287870074677318195704838976140208840655082467831934703196298489426064277947296644745456918648342243850536872802320333415538722607631098185283098827141908010441358397176125024703685010608049103232921631052869312306343609858177344514617326425315123388679972310389564399166693764798212880639264009529663974968511065093020094560996103809871345485562318159597402905721123591119168600124421258615269135663852819378053963101445436693939740563139704420288668626056952334534423578391217094738990549511264659283126570082211609934217713198106246173856808617479620105059864566808074027326581215185807932233317956798487249395409106800353064691748230414191853543794159657540689594648866401796206996729547288081075079571369134370842100493318077843281598680329518228531519573203285232307333193813296042982737249156363717656047985016613188253972252019462097877947965669205877253888727401493099558528515676607721893744170204792202058015935385949782853070375640397207537223666691557386249161442969637382113948856211147470233218916212335714907441736229536246810584449862399568705824598956829184695084922783692522948729907649403149010116276873976517000597981225558143592447625327386290305652439909034046293555934892870860454175651845515519757354912926738107161012463858699748273740422567225660596549800632157296513713091908282154138362222980572794828235298844791880590879312352938744094785469569572031606328726329237450591434689936606901779360895119577024147687018498444857567728670235778822720733340209096169316048116778948885806456727814207110921453036550320161395156962047816286678565834252490462970217766534088043350432980562633220578179825551855623276624452021304338442490786542633968645931918041270728714146801318916137518496133047428811253615442785530015284107179586920818853725692721366181839512609200892574530841083893981618466142988696081129310525530137696067725037569266158926880122253705812586097232404191501268973528122184197188089125185453103411932390649202120701166880285554968656899289111321485769226112241661708270941021194181809070100629790494060187316250866408819728786677055095434933651051638120127906910241082514117527043324027788956038650068995291865258147825569075224766315157265088192138291289076886947132519372288888992009067487107126378083482236430558396132397376147439478113987468341250442472681373991200990100644361850322260119054248675662587851712048279020773215372450511975230392914825277106932373439091136656295459272637235033493619025430080185929916193699992864928436900264660215725348549569479260000561162071925524385819007974895003437083680325057634504868886244173063434992742036732900416406547315173390453492475224673345080518008553166207217031475931339510515534649930060173886902668901722647348997948273940372774099948470546098737279937794573968352968538236109407364069388896329603783953363848155308895972414304638962604372920765764016700406160455030053432775576136386584550534406170372522928454335039215926958789593242519145424551123444458110443132842484461373816875591817852828385080084299164200314508207729857414240963444433451810651118642537363989999630345082492723218949977166116586713566690231213949157255807794551885218544356712028585502237592700003036526256778681505765573664830564409480117111728997032603374075986217715660444744923051531285256155172688866159163737323152689670949966071278825497671547263389447949080792539926170809280346412032381302355295495311553225871354461274566744425454626560471235855705050936699015058639363355584023124482548757344318068662269767967244987424897155835477606501698117794952443445579725886545817670653351322746611966266719391017603814233201569728993643000666161664818336634454717671479615692807824503583633877378143843183182424102349741521527416778661960390613495801487835671314574872439023284676142250743261296453293106019179026868478331639440456579526184598470935234208890203669595363174370004118857750272371630391237993293882346889503792623143553624602232019720426324089860444609592326292554594721816327144588502776178766393368364881432486758180678526700030465981022591137753154332268495880355890158494129520643446240780774215423905451500981703229934199291066299136333327337509641774983552716395445599270832228078871945924137822853356024710048448401646066394849837656665358166680155821786685476341498938793468577588130859040894873419864224719107406187108678073558847796795362020674585219264292648854394342449901267616598367353222779124212232459770248651562462076798166304982659707426991363142098416708969093881023422687408610111596151172066039645914210547697624619007636551020659839730384255769206945397108157408181060656022161220758495209804979577880174538314815823553057904769242305099712284453233377366001857805446737176590786808316406555646548189698948495403507064791733126620614336752166794412811330159626868136938823591388036141446307854802233034862149020855603623731001284735528682039965805304483545157704461849957060529261909912142290029320448219302670352369330557120674156361186238423249614584583585614905817949554685458666834924163139127933433736685201525224268102328063595201883590883577187399367225414672883242324486468997184457576066343342861357605703651137490840926928392206327183927524476272894024718335600717054867007937330140865013940409104972049234247354297922756194122459962201245088386079182224307772317069102345266544638063313888884454315886281560840780872834634555415197759069768311969596591674173870148165220468020228004437906136719246400619593545004968826278802895455505987255804588524024134442286976449393451179239413509263092041926897107274791306533231498582284474254703340620230915250081147180384450708666198300489217410243043813864235552266928253616790951309992392089660178965488647535310753310106879622071586638125546681874704728434321158120460550183156144516884244653808911099379085325626048227504765016685160665579126355347295240234297008271309108070998709044235917296888586718240997338143432995402217673751525204456996317215820203872677808651410307450776965387491391389070712003937619369683737224265382731744300721841331387063818328114693307157287018443569054869627416853981234536089390494194191089033160321272655334782938157061747850199573439483224472613515202543373882187746427667626726952899724420534152170510073360982547415430497234999324336572721031451256262762662534995627733093516251171967191371961309901978050785241372137467030757201911690644628849947480128388858484544766568693619253905351241752757870584675790496939940154459999319021097662704199825202542053346143864487673242584697809832221592330012095831583822518808301612436986413078367162537517235524539049758978539157884069883973504615460686131787457780591307985736502539339239704467696525106202252706423031907037139630721897378551233999196365328790206928487364606342955194296408608961611055983564135172290143454028246571004775557798232268730798608907897392897832041066944951949474596405420103332225189256480107131784693567023974558738818603056418505188713406478133532963242398697235523019133967015952519876126347331471680097268927609160884825070206540220908655454005433989588814018990789621331485917300424286437848691663822941532628818600841970751205323929948497575943957543080883512383500598911899017710040057593471458946787499254172405512768410176915109403005784170990513825325554285480286115555788150088220547922290417846602672857806767067028828301029060672693077724258300430181325081750104603888978097672085639098960169036710084987911854457824863931324353928577383328284718208655741902551455491280943631248513487400431158347992790992936972934366671611463636136280836484933837981238899012387659966135451573415004357662715142593894728650178134588525350305022518922946011537036299720712859265441598425647102843949159546641739213854028115055578820061968360076702879129595216794203475056588821610735444453081357736697002281662115124481343785756762361259196128881157068071218224324875518778868610688624172339658781095126337875030467090733919813544272625412899989173496383283048745577951879606905905826760306404145273444404009342369698530476707871715701512506350783018087229746982305513491954857879621962968030939260893026789079510389819760949846667512498861892720192600100037358769077548164888416572502115894002954798193811032906353424693035619486471234856350583389287002830018100578380861976328446115908217794947073206341809660766580802151927338980779334064878990784477422376126189677920408144205860655379740627257895202013559041279350269249631673098122465520999222651720264268663737986677764299603288050642883823733043960986303858134271321149129730248504275618578926435569236372894603685352507047374086831457622150607503775082483014854166822408896803907208074929193437358603135516622638622242897964505993772023461648342196047308561694905572371737816787296756871673662044541961105058090772362992406840822369442982872395150999200906545338995115835069371181325992733583574330175828477228455179057952894081222317251919898097100772999677892781029428159918294648197236678999783150980628057325190280728423354308764094401014025992168401732029487369945480576066470063888923273066863725367885250197450939438084229484907551537625092939849641627306634640835394176306630691892738495277714683316205448668749693641696808621519201887383143543610477776488884360580944038919993873504269558068654142540326890147371104425767962232738995651267391590983701972200618913655692224042640501072391144932700782517172254175017440803157962804919148338346229453833156604261358992850649897805345698822770591651768633612728445201923054197355693050141443326552279039711318145387637171359392283676714234439721965123891569407262230202193588533679811995664086277288710098162929184935232446697013024993826879460385551610534122463509646971198464936885332913675126837132223765436611749226104779171603022301276569134840766312252799725163921328711966946006605308798573781946297038176698816846942523958162856379380153092359568949678820966494711520944497491612081031171505859308455619496495608652328168300354053764233465057487552428591308905532491128604694320772807679491952683796572012991984005935264740993531148580663382859168341824166561306232645388793573097889891994364799064924381955790599853908700891781048354677708890832622530665367524575798919581764158980995450032676214616347437146501887328700852227718823708900421917149786366356496760681855796226897360882597297945751096657920399952166309847070878415325560897784627646292488408025242372929858677209323242104990237179009572909039216860412479697465954860368528244037723980061735333272210093046936182784494022948123306436543342729822210895430927651767608306895662540109727487836998494332230776358463455413992112816952226060093289810448784700303581979510767205276207613927453089613788684676058613035010008548750966540019280027620854478647922779713802785707359303189591300745085286088855429203553741614012245320315295379642185273804715208090627942926881594740818221864104593208497440506273480106549904416858943287555362104027412879204543309058818677090195890340191657490621349712452592926199264292825281048015147434230350885239414706796038512971802927469343287270984529647589568105057288450597232027299408413509805533255061937108882616400040329027808192262603003953477079925758413999878463131511054245608009668480057893736699172614123570135743965153608245795775357916742878685022500497438179436290183415211393193188577958970566890208463062966607286000523922976788792470900072971020868093662441498293679572200477476307845541934098972965887957665777258686060351795055478879293656222446942341363786301355604496327709664958664172893584453203948094823610162213077921391946496156045331655622011336068164158634518836128578008999409012175186438028601418873615506571810632532241462369858173558901454345657874276699657404982730635477707360793205457886462925939066758505367579005429508262219610334925716708856164664006369205513739586733030989105670263731721924584290925207724058925489807206498477509262308043048807354517568597984392435669025527723741332289390557477420401453962983964599738661913573193133653410084244736324327105287163250798363425488271683050914291467451166501706815782890669116377148682983943400351470612680628083792524654236577617977634054631973348657033399370868855307261261344759359104056610319029452662075594601351375713038478421357884964094185040436057951633903189349064636577303321945809300479422925238591065015760367151570284994416188419279801593498470751501824239556613863542161502969316221792108318717772995474483924730238987937762034359019344757546768612755332063654516982734149694973410933419118925401312869694014481496974535218525618284413985223335148097657962243579993875580256785241190227946771770415794537252248880790054639540201233188399236121817124414670118621247329665158427082273710524535315604835555474642160510033449276853294962314648239773293713285655590891458519358070097177059138612361513230795606953972557726263596075248527808606358669965473913082620062481620601472893258859423365452107150839234606877038608848700712077406988493429210799218176104622781470336069456601491548997854414005174858597604882597510595105850037046518055608974282130393609281858222737756464657591850239982305528359208645850140652977934205867728793119393465013961732705290508201366909524959764448525123755078241188295090979649505723922543334054891266699782306032930654208257843675857734117693582645298012568558717929622320032622075022171188332782546344230045454590059936288567146207789858002662894228128068953290479062341745856930392661244297614250805717942732216439878133121188311201359755705932299797075565736950545277114379770187994058631448491449899629013979558760148340577686765552714494648802629113783096571687436926402785075769621731633831890528648793143458037214449652201148147241620646811669377019436682479729410321338724505446206530179484781862273605632124113053909149010852848724087360870722106342437147606854724325671553807270710323071638998955601887370770665824475154509005736505649566525545970340356403196363940832277205013272494258371810044489174762155380300428737750009099856554945313715766896540533994833707513886760087686510482108269747420642169554538691882961929791123314139002084522381208201432038342146874508790995485287831870955282550896161094167558957702613923290806361072339395090197082005770241798338621261356354066040195512415618581420889841129930832441021339826667991370768349806763594073323710256350031734873139192476833119729809139699098067457103776869269484375143265595904238117959099559929124717415981836862485311321785661827744901784924076143268993615727445118953639365652934967334410343549112496531674477641314684870447704513886412022211945680063302823743096643576893750643375424109335247746365800376912961610389973074362380434518964798928370953246077886444605042550098734666860384530775044282505699121761286237878739991014749155874997471844647382822572710186060740310721636521371422505161598989354389970403217809620852403839436945849840147034996438250161001524430613127758849943718394793790594864802903516029942033756466934637702708726381282926346841205562960910747736109060323551662532842699416038461777982940106517262297167114101329908946800622143574796755255552322900718123032895483617186002591063439604715015880657011163861964638820614598611805998186862600035242145551479671222027595306813106548374688819977118987428916073553361586847509547799046576208430989967653131977434798250052154000844615033298207575523136851787126813324930109938094951082325544924043733403820484039404521448006025449387117560753301096698872812609927882678446249977348801072156599614616051265327095511157174495470707145773875025263464793412306265871741936696575713812943183399111102836938942138448641030872906691587270717617547793913622647309007872821212520901659082422322076043038385081993167836953234171277257741178778507680981824056710145432159676352770709796048345695642665643971813595797080853433488656046353729735476273193251631653733380957816791465920942102216952263023642705881699907396500256289196202027366692776360210079382762831450661694423849088852460191782426636928056838996412315376809109807830464246484990966364046310214564074627779692936393295735003416518509828321644816428643692634927364004965815355301219480400409851303067194125399096797304176344076238295394703529108579169494249061464721249937207105909934246527653675822864055475641450528585769248931956666593621824675284192205972400328125566258554509340992065447275695161942352994082678937759544582805810394684171613198930460607988498098761422703860249888326698747561731300672123950792369993287303953549685220227606909611753815478519989700819069110420657152531845118602639120875525524697988322157430153333994155011410766024475838405556431832161206625758215567786057216011996245585410235730274139080168153037937797383926938504452821455859286415251354822531012194183886471948123027513481289782012313673945892521849358556925710550510858371213904124360994078457813964531476461537368662046768973742014112417008911256740728791177236745801389751107923433289216988384429298564150720696373448803037062328850549859917257760593574416334709278869228975678475591969009616564903552544633134282750368565473462989693515138675097022262226950767513084203047405095546409702878622364776332109881162615441609664812187857794078602807237750501934201630492280151216231824304562902204119464032116607600707943409133132933026210241938140124923508606115986024526650574534215486303629535331547855325535288218845507103865856881278283011033770115558812858076943163418893969979818757106830017778370384052341147398832424063668627903486704920934955672389202730119374965861701565135688733341016376975898183041761844111866892105750076952194049717079597737539016352235351482770948862883914840952527837920855486417506357094778801723966417425765791511918785254130128724338284572964690707698463906111725912470479508865804410954424663428636725361912968723003026723349414833466829261046939522248872654296593294935223623006960885237531223002324248168531863554300207992158206077109336387565565237773378914827860827419812189383363266610031050176554384859337827259434057512481477324222352371095224252192115040329097603897436980336087508606743901690899698332443271947871359916561631522106725672571808240117347075936069346634428718147069789180928179985831949916581703192626726024286682189299503613530158769880470013171791882608716618312251042007994903993618024002641184348761104136532688704901266675807229716455407348985934279357063368325816701451794541918500540053501235002862803706452035176092928339927936870766675313176732671913119609810107993361909956285006394505570110574763511757336482150274682679763989708722331499469690199244937506465717230477978608551672001226481077615570525737452081106467724746140360341206476132025410074180030631592334353109565622598281244768546937694324465033071630883869430139990096862007502908339789175744583201839135072392692524500496661428613786317264881479802262170843673408829076267320404777576128862809947447594701980960494834078398653494405863000212398555976456764125782591248296112959096246237242986618348332930411588355618476595698742046259363450556840794647938311169010445394676650818283870519334056705641347813659358900244237752466248728878361259597677418782417372659519822824847887243329376637705078853102717818744127538525725754981366387082623213176629230202763299725929346983943948386906504657650183867011876269352747325719699496978364285920340345492789272901696707569848685551740452376331727029264532525502349266124527611041626842657901387311606403829727258879617450837474137016727572121835089738575423817880872454850938764775713582489102627420845026495094476244424452191560354642832674689386891688946516943399210627451806837143946489851007384206040024472198826790848346821183439107682641060718787232751958238937054365544399116784165680884619569543224499588911384045704282104884838235152886967839755456533334043075628153660309517881200071973157350849264387645148381022208129364958473574766688993088065860892464248374782035560414263007627689617439570123203999232123820912292169479920763080531728829194544011758506754447050768120041086378494591795596131634552278167172316900269817091012297425711943757768654301024096109030673385621588070671291802032133871448766633609832960319474531170055457136380431017630683551999292134634741646307269350278578374017906939007488401450586488271622338640846568020818724682740911669655724000568157743996592254941617044324640156222053129326224702827324904958688405258256627197208652309705426477247381855725302145186122725621185258354994382567914870171780218159836698860839506418169442173704982392878547686076135995820041822434312732209060937208856787890652245377889948369068515111159237152914960025539673891621271905123784098086137721599476924657144718107733165191304690391716488721399104479410390397963640459336920739658964411696302938273199047814781366529297125123282819272726106128233079949328326425457392588524719406681431059252751167829642861563676363740095205122848140819574766161332543635847194487325237038146386862466889387793625666920721015820076554080901309614851666294585885646869007296808934088719503570002719741098838518026390726125158205320416563370259098382337510318813968953888014296398013433532798095355521263141855188516626807065442957115953666025882915792345111720815828994934892854470641044010460934499281367240530247546878876575409602295319980905313090948297447471852732068081799380699133946143527785933104791508932536990747495384258505764514749199991472552370880288206089901134665546361303913259915640417689298890311009135883574790775184732078866926181124482892051000396581801992001508069902601833454671972355887954757759361905690993494606075928205706760814807354757380099340924961374477541807638476027054203259392029800678404862273984215561143187559525069698819047128235313700740924068054031230393676869381579053296326208308682064093075465167567221697775786161282493269927751244359149088676534680160020621255277925108666006580599076724060517088363649983398788375587331011107546196135966861944298623533008096498105299152309287933135709445428791700383178528493224189475372312336235436261318303755520813133854441510225843094480336287350603656789494925367893892022805411945857919519308381008576957698472598036289118340283178091123524961326052330251929318582801317907629301401805909770179393334054272104928863016676449557877658180611542559717792028603682800060850884210872136469594678987223481543547808288087167989122912182266260562027197421640495794735150367871528070973923584874130270178101542521449638353711672440331410340912555859757644979079691794136256657002717229758804771246280484594375975922598835926382864769385690134273835844549208829494944614383428835726921843829148310829069071745186982823829279599753672632515242836786067143771755293625463986870313345005618364928312601860207515943715681709244190781329683234252869633130597867645002668947058573977600546191340025561766946419689299879387437351876846779159313573582131431233734786398684678587822349623986817507177146866878063776397962636567545563361475056906674832183063740773781615831280651480876091421339432801321293727042826796435470446476256163181930084932193899924318390738255492556425833369361810240381687280582501415855589894352785319373467464697183425063623034517657231919263408360725739589438281719614122515136468691653039402724337813749517220488483397997324813632488539496422145574958513435989397885130041480480993896129657628313082447084245915580961875707732736088524340509008656384364449778132070710786830029384037524875942725647922717431765063293987836261644285137237823347093150792317634341705772892013462189069710349942497715379857520725813256351565569925036837853888204300428540906708370256318644161792878583063604576250372675392713656739688224468460336756475639192310148614324000243049295145683510807451054778177880238098789108728446709106108160478850587986693251534117357646209199189481695553221265680993594858895778588762647266428709607544203027530780001727963881536214573935877429923708319156321859928581454512607183045806304887511438050944408251503800037540107509727388530076940428082028848010975542966278624124221034279724047452439521410289671188143965848073527197653305378617934821026407980034147906542242234787265878660777975976686446373039586619354582885670957573303039234805066146399393123474662055056987884864103641050694420931806027195847377196957599499238958035056178607335148810179880502560058543093840941653455718705435933035200512366584722622574962054610791266344791330872673947558352575460852409490589416735180308279517572744727300751712577885684709093365318985421056908465985832694393564764831525609253127164069406278899110843798123152984723884452336563647767439747585488050616626381234647514937001593215828153326828441754968527752839261587219089395215097449804081536165025113674710602332403296323546834364255323147343154564537710510125079645222216953855998815223596781812124795266161053016553380437637639725987761190955066478073566649616627881272043190778099666666211905367640095543013635165194578256326068688624746377279052191235767464036482332991429594276420768803807698163236647759853788073088762827553234140557560523565933123021318278965200371839506564886870941303310060009939140984659740990571521970367418273276432541904192690602480758896212291337031854392026795977451323704321109305274365814543340961585335129345995820483443786057988337371446323613008177971855308134953935060607472856355454152931718839126873410995840261782760639703637642517926543901695191216606236615277786061865036150970882101503748054691359002116239119820867466209731886263990190562420306933330673284514391891174343174681692331343074725502434391512888614834236997158549119372663092248976424197458210675535428254307293426685272880091376063099190869108882591882757645491223004487490814812285053754341816735155039902894705221159118836708870641904199572788800758026876937126624006344158273821352342236954322179695906255860585607989796315217273630098911658266929860249026513261697678863212491943949423767841205925124656906180017580488791032230609630167012801562421990572718853001359888741365081914267866622548529161708209626779215390363345221930214641024171568606675187884657167908617094396957951683705301973210486096181592641320390107768017466306203527739835473904507728756013028585917410007340506058492758541974504856888218392370401135011651917431948594972308108556228128069322256135072182144346647891479350124576741658127636722428325951486988210474240534161200169922538308785474059207300410206996217934478900125913062179079104046468967971036923942021892190820322797086208816454799434205012923496267361969025131620214672537648137926832981125922464615431237451790923147727380284414713709166017804901795260261432344672203863850829521231646025825190382190205146778788642494490077449573407067810498118418025767809038896538480900615239061569005810664423653065915418929533119677649301240055294907429272083307730512848125920091050302166511279890159388128261178202614591518518200928275881446636789666424953228808666457208735637255343517493453422552525008772697026614759597811909060267492472854629404478757097209967971607578214409326460119516696118815238140212740168393324502692919188828043479663894047623488815167944696428397327506353766607449030306928208167533299008564582050794816327800675385599358738309273204543328765428396715492486108963088573598265894625243834475257026178388353824368639695999356250275439907587758316150583308219130144336923774958150960025810427847412760987617516167078997183008519641468371982456879569037641297548905530408590349586069328384744023228290569846928855925787533835846435615594814950330256711578401819687712526606364446823758526361739677301177422712024759140569225439726372541306766261491595343680397100989367260991764249260487486525186595794546792177160117787982400859445931066613556922536381692449324072790541630615814580093380251582635693284563885619384327534847968649710074984843207833103830557673811527365855083080836578705681689156151263197621317653698255354221284487940933347947472009314790026293828304927629220957162380979245382594477544784837655432771170137916683077062317355945295936882467781955623640129892259747965764821046545714014461397767268080163210224705756422006520489439895687475882272811011945719110530510674587272759645164574355565231702825830033178444766924987480357912497385981726438823231400655247002455934054122439574601986959586508940907299070268363267442923683282465348805189559234512877022960321005216858990316646309532239799008566588903143400015951761632528466048527291596988845553866949595718057053407678899866231664363543554963050829183043027780934847286967433825446887061894695965057183090249170616888420956782296879772309554593683064854124904828641996509233827273761771161718446598175423035971858750715318152622183908731935981201703281286864675539531659797853443348289764528383962845159474188309663284923755072746111325518471792068924638859620004171138568308117727015087926627682190851657998966545765635229339876582763264215459870857637779376564984751338275325840827103008630730112788967908609863795511340414603688649321202072142735144512093535225506110408387106368075563680122810080727943697108653259470205545470511326899831754537075453462907509642412886293320605898525884022029068630767186657875313168998275944913240497348561308814853273372683013375985872686214912681888806375229801140281157632491011726658703442394010085973104981829651197657146857197060161368197893777860276675631086288670567883740373562914015901536178588042598378457134202327299126985464817384453684335363684032122543186794975664633917361954384585554419247432087159458202021798807356353166326345814004607594020718805978694219882144881029288103741324290324282655129754221550962239557835528048941574103890834606183821600519567241696041848236354441698615462495864331236064079657225724556773039900777337836995432941823391870486162609340851324983105647300172080772402894193402178402927578882047808667050478596520471679831676193109489425025449317363725436946905810385240539482322452695393574974967408709698579762701968611511615438985868546565264981937404185127876452482396025546090607507083443679605731142412394783897470330713208622753092902137884385436155929521454811541410293473698420568627070434847398450529350252725004461031007795588657949832452523345782138754282905017470605500058987503145292535410168323128070213708256235505373042046753588924753971552938079368083628225181336553764357660584547049031790248843534930292139943441883086028251512471227858564815728387362948548495101583619275325749655802867552820541103346902550505347735638225351399117955728872085272468900791659685390347920578803236991259085330416845928962619068750302292570077367626725025858091266162062041215607535261668934296460628256876754018926179267593244743264417618514669097319234282912560262449589709568449328737400556387815608267031119527221537230607109770896964383783324577209601492044489461623815925786154631048051528551097108615562738453507215548785096801623403759650230716343413332277881705752996949463210161411447056788501829720740702340468080188872777785874023395771786159536828434326687771039372278834262216488782309954448527313957473445099063036202673350663187558020126515258385266767943061180066888064187965084065993590843665333581103685260202294104096121106499545120116002708173087326304456178654632352566405252517142629194353144190530376625027862642289056998240876603014915837827292128001873286210635994708306277691476745016059451139652660094404045550562143684762422462819536824343742377963681100170773976849022496361575737803300684171142106042281449693301069414281974945861791264097492779137686197016378332987386890202708296714212066895517054783520976503933812967128777864854083034738380552923425474216088530100443542519243502372395106450910863098158646075678787748035426140840287357664584409566730848688303926058702758335109364219175553873371153738916154249482014712534494452250678373423006525511338267272758789181216201421697691378950988477366530010335049924458604393425675555738556197433931434401012946654392988604737402076931662767998837105009940753362434192364547320658094104422919644730459189857408760798741407081542743615629502082684253569591769176410359113635859141048311295209658454213841491649573818514800415556759305278465107393843688145475235673956586560047376564599319381000565223826903406425863734904144533279424281350383830979437131006637545129927084543894372988271380722632274722984743206230114274765652130316277396444777151725865576400304020175073817734546143921323759463050157722212517044619117401418637313199027377583632305473939411239346946465427431033017779645177559680591991635592438465814445538040366543378581390179257729566827934988088700898072765479784485994126433451505545108009670571050674279442399691133063236006624987321289196937634376626911338938949053081732895457345692670626103959395091260187568735503472807020664337679242688088794273886793707779086445141149695564653975486806440506172635737282049866600878328196113673349830274631961936745195160344082289132733938247758804255076821623888379999848700332331485806888369059727925059243609301950567332952932975163112944602747395590150682274550981081768211011500776100852900573939170667710239217342671949757243457358204513199881066855203197393958226338131084857314723728823722894017818874927191806985733884030555285444251192379844092551293652071482972671641251121438312350187564877019865637757245586222723954191044971488291770998725191297776055833923479751503973031786827686554160190622740530152912077494081807917422885827068533397772681455935003033597200308979511593297285878919105740516467803059370990517925891034518120538439075280079602533580031254442814508937583673506002474285446981148459315240037197035315811606080958922336665614544890135717700671450863263983111244585701595904819518709402584638800923257624358544420568251889635025854608292942594806728269623137609156623401428340434086405462044472286158662504924985421724853728011467158373274568610548381375658412201464136235766206105186608841427302377766507540627240150572342983420845535048540681955185263234583590880742621156369722955827162853668079098511068582314370195487321092264790263142532811631816668647899119635610142971815534919215241393244028962592830649472993188503660257622394845370386020658403048608321544454389301187465078031639815122296474118183703444958351462791995575749282852318915396385418932771570552083615566274817028356157146823854206352064066374613102504904883374221858250405169254903980611887011402449124975838161961650131882930487887122974769171215339905351270732863493682556071583023118570660977609468103620594195171769673420019252459308643572717979239318747460863789600806287269865671108665193776158820498741711697723326607683342397537992495430807287000384728057288782477267574863494257406757987606680129054866986903086889932190749081489779525039000327549433330035251242188152510411321196995381067611087709684323755132126072200682631822046244287613826118717901747169104473073603624074412834280129689646409586189869689619608898156070340338095818198961848982091223941312209633927262532501330933625937706682506827296067720282561422346112040409101052709385348918888017494221054591703826203099181051526093516530499378303506736045832405836766085245053669322063552533192823027885025486922909163485565442975807152150352409866063120463869057841540186991217251043975347055929185958676207117660338929742780182976335217076805583613881910885518380166960812209784115926647283049280618606610375216789477345708637708422880450795093346941205447501617572889766138865860692004804953377349360799165429598356616020640309609031583308682950937760998170138804857034463092611894785689538516962714228207037485760835840453260515569987283080256403652202286896624802951165499564347333050361460569809268556108897710909627229947916342985031781355808817428671831442106859230283713069502877834323726775019322636198961842736650622074365081397737237301786329917516821622161798938164119101415854944384637498111586827210508737422094182447272565599674738279711614603124241049307793073536266124106507671734332738544140694673118324203023644914839246832106833675893186931034936790831397701203420806211419382528739735807947032987458817017773500875102750650551419558336674383422859201776288017183544111215028577028790300711253355845624594407329764090770459410510700672499654086632344671905384145227211803347397696406412120225580561753409121548541557684242141582546250315309275285254027450069357407077528692365435948024987936185493061122258469832139780596624542572327611808375286984477221252218516513455846363269888927372510103162566200387550183459874972550881062406663092975431734672740614551686864005160017482358737501735642191855690971298158561359911493242670434046720116936758662596962154763299226602484615408240099087537365964221587204942411983040062396267632795079936131810544160638709283189336433130500678252076044685935847244188026643566547927261508814369189769001518444101413155338095156668153371227395501819804688901246127977927564649899963940549212232165502511730675692915386831566772120855733607671245009468595292951464120683557739634998265980367122049494600851607282668754027428527984333644339825516273023618296913947478449918427756835569229289216817761177912441861638584823732565605437203372705707450826076454716524690657957668981556960868137176903318378750915370133965700709903243882394131723516011759143418366098476345282162452438252950800202319112341765617268270942477809905082369501515615002915296733711341199164523976285765544844491549067212352912501773534629521859094895402077187822653906483928576375016226230982362416422178147193549087396993043595832877674461166477963840686721704990198561380436824241892483809588229574479413334717172232319162359084073674552667875468415816314090027017462796481095970561828442667603072849173064373752741517098983252750764512276963136203223792202063091515412506813500229914867989527635966063176098827913412555007993099696164103422258992852956727826656770051746256718980288831331774719139560181151372929134394500909882442389605542938349020101338400270554477145837999445465230334234664621020687160364230059716398287152180900586616322251353401728193509195125230570921266131642663722922454102526388839578081331508486851454575040860066795630729867669972105690057933132365866385471336005322996391964513965385036847055161161280920501322412564427029156628297255780589185435933326875540412907647085894707268725951048223089470485440785104756134616024551467748793739952497980865702593628981116536168030797710065086647590212940642606399888350550929921761169009863759524005159973294244926339291894403126243357659549247375090477815805303899098854609865382018817281298008862929126447643857188144536604522027221576439329687515679893650067436041841874855749163814485891579750485656678527144147788047092971177674803695006660262560934594407293053618115127570595027856520283780374303092708660439150978458675517931941119826809012510441008206435573008590466820086412919387465002803596829663863602938983221020631340132001741707990748420803716901338069372164806744634516780296921975967782685308925523745327822087055200502096487012443744535830728308572441605883721245184362465783117458011964960349280725390185710024474303784464043036610476984901263240549882154472441702116977535045768783264175884268662003232333245837325192689313222994683271237863918082121442600831476967103251370954043993127153733053666484503660280134552460823980893494995738864126668934891350239973027136459184871847694823562407655679472307914078872499658744618756467259510065730623813687556120808338524613307025171631803709775765454567419603324641599953151100762711494181805999869474200578719922398233327729402853561511490088692164369003097658644526360909609960823015519777838733354325664406934930169296144152714726611832735074348268904393642559652929756514580354976133373418931061252318746417158448347275704846958542190487439873423759044862865572026614514512560880801978898215843291309888437348324091638529073503099523944572417884259615000099261759688309524839567431296342174537942535664496933894331135830006824428538901305739448259079907267215688163604648042974577106765359039993500575074932284019615092934599912912723361476570374963950247865723265781372775701697503040580476684660890271515089170108867656627379073948154421564399274411888681093490535358688146245881048785909831648457924578390567163476615832537165713240118136788191750814917490749355853443060076690376462436257843310257788650227806253710648407173779046906043252652787465374037032373792993322058169307705634040995703562900798572536368011809752103301558925453587956027531665979307594067307519492322090952891682701361305102042583729693899347360754293823823648954187453890274404814939582743927965579612233687105315230239545960103638695171545235221363337449199807263010441773002141632483220378881878027215344449027385937620793040478380632753751914899096080884044839654347285070953499649638502332814857506808837927927479982388414013070408385982987187043314937020944855445216892212187144893910407058852224869711346233390719914317540202398854761726823157476051850227355328890658996785767630592810017889210011556147902157962883899561452047146145010192786769192032512398771274772057761307726830601247943729435556040653450951629506842889111906933002534283160427500150804922412493530378980870159570184284578735041128473901691812611782815079140841998681704450766167335980833145823557916174856214987422136672390915695520186521500866285344588700147283759546243917062291578500943025388751705392127347569136379475668203189702836819056955954180125687928167583111501795949831552573397475530852862871306056769733145584620551116868951429822208969197634148739793176092728966953166457805517377432614921135218684986025513330179410265697750913674966236153279994656235989605269999512164609728578799007259489990039395404556769018421120436183808872186981055508980414180174479314902570592562718828712949425896269625533911382425910824808234345976118504558503636470927990041509171320658925497689880088313732506243376583209877280376970555583159610739237721350618422931854729252125175546510354358714860799440996937569931945787029712696062639230256604913106091504830444776956375847269907243544581855124594368173948158262069324025870565609731618495042083125479661974418408863071961066337138015155444579729225167587154360342771198820806756026933144339187304896960155708121379227418829736826196122890953835148374022545612915074297236376698758759769510063764302826445959156340911004269346773411186302330970008561587382424858459025148462893673289762607841082328515293909644480534186459833576662043678601673660401862380809282792478471426493832799787408099456117465831319835489483681803671063845374904942529860613096876212751039478739589727428472694610012639322140986190075137033393961660347054518408512674930438811833308169327323197700115601863074600110708175800991657161195131229025452870610312910208551457492864631301126396351237287160878803974440431734592929346231846517006443055608270434020114127599876164339730322300578210389962285443839151048753456103369913825128241767858969918220276231630117112638471229775978429803879902975563152703582712286023002357765682642516192893517440052007964772445137661490511435292059857109652321489896530977893737659857361042185038606248491219278841936980538144992000386422007523219951689481151457907016258556380255461023163175336108970499970565693634158442758720859539835080779207712244894879455624447321772277287860979535887840158124975781358245306377823233836558798146851539943011089231756064403816269153247310394183298828208784841523254851742852534299158564308376009240016843629253033218944663245923810089249107370923717770017849244047691487930759763003732549744478479180991471242188373899737407368477796801341638158360872069285675540796024152083431304374391699224236300294593246297468911730038796860799144861937755999622205308367095226696003851988815867246445604541931366402547369357927092671979161572795612316409566523109488328767096445238370930041853008605459938386188927848955031351760496386144845071921591615446542337390631544781654346898509124566707913730053796881301180168840086606620739078742052632678201204723624536796571464603504714683649259103382213448850903609118198446449650614542663385057444289081720256928417042762458677538688720814700958354237361019400577484033005380379122012633348377422133175011281088596055710589595063753209466072435459126193989382547242016386958658482488100996558210238283444696061528720226425316876700239474501045528911206467990884842431147653714861003050235610136495611637473633949357844823403962508241944787313317576904561413411908089551460214572411318840847910816656908418100903247999511298705083739528088049373496106009790645162041579447206836996232955509769072905495223821181301584149593313579241181231124193627665800946130221551408038120117985456655857643332752045960193288529883674374968159385513494273877410014128619516850057850608046436411668851887337889380167210216284898873995958037815922099436797952538437440902707999106020964600116372084345111270146351472451725194437357592911886834219003442018946512693806799176081585126339491818872296856000894995556607889627589682196571989383862534408660389368327359778141595996691312441355118850973935067507248298617505944345071293642387330090845555725479559730852469542196866196331311452194884869816623419564107237389234932698533537124679540138873377956207703055345018935932563671245981985763668768763285382505397759517912838343977872375161739028412939702626509256104517960257435576465210189123190964062208626458554300888744199953424824924754799144675962650421003615547629534255668627134436938389375524134697947897797847800446794687036714217098234846515729641104329422481174610741116778458516180184350325012874473503658960104996149013678630169354950454869308946071927988161532917465952259076432543009613093421243553988774440400263490467567263163860468478762536852869459595351891589059763418761627998525683036468897383303500930633906822696602065264535540476566428313514936213245927863588725078329341700120063854188217329305635169316943894455105619169332259665030489672860141378837161632646248923269340038698846104776163718301430531100746887311267188121880940245776251876858934628087641880547884762187253265539320838061927377049743788075816735276911422964248916254947681254323648160541452480064383346008596655084410090790768104972911642462023559993904736580874117232705117509684768265718333786580091756890844774969136367959650690765500182657471901192308587912176709265683016725500267150655030519259056590303601297305131993156157087851992653064835455646677129522927052824271957301004612114412027400755140414494585494225481548242012866336607204012097060191541507528411596744168167049956169920888626724790730000463293830936654946449326017714957830740847548642318023424149048954045970176609689257556330856535656686598754249532662839704245747236227524661560222447123179418641740240489596432505975765383243380393020913726931514648687673812113225166104335552653030232000924089592217698328866908620847770741583906673314306841380577269370354059976879140502336554035040501954203929845415204689491605699848189751629183524085974291094409577783502556253085439435930146950869543064044229530618149383194710761075649891679570164885706732809049426652561782748986846017539489350016490995556940562656572792321220099873683422316866495006547056969396287571312501523148519471263255681483089863831605299263464151282964314382773510760214573976111353032158235335282470070907369756643253081307269955940946257754840842872135343204278942609437636586771635596779994014063573178982141438529786258162766326789081744920042797869887695891723694365479366087682133453646790257198437554947798173706085996439706478648876769594310429264898479693821063830490064627562440851106733817984115212241507233802235684676401134822999644968628760163685696179986457056954508299662783710205770895719293315280556285702649769997790115175427327415582249704475300086987478537192447961527099079629797676950778984961800506573393545670045465246639930765380569271550526296879314908870073863761286039626612862035612293140019453331341688502776759321714566700213002318097796644880137407426287510370406214384266740676360720316161766107126618625171183416446455393746989017556899090340095271310295529050162289040856349518397140167790887055663296445548876818711507663531397586416422321497569246822068113711094896017259825063540620716141592967901763689937970882937968198146273299450472930673994001807085095651727567673617497061717037590354026414596670149967546164127070807103944431749572310692937491928651099190947737743408069712047030344295546355678540845866988655168591231692777296276803707685885135585550913806222339281011694073534871434207366449030654312830818850307387482083688210139403504167862067814844475083354113335955763555299819931959240257376647674273058221021638152728975755507117800468820226922300939069540890643391273471502479817196031454666960565774104934935713445605436710451150189243447814368198482024471798799543172867082806886469296106554278402834080142960760229037870248579554841305242730054056658802279724580894483854018155064582288244386308825172886948493887189014834243359389991289658977711562725648999953025649765300275508964136196004058362767185397806808026963009441259922863022288261041421932602387591840971176098227832906133585182186046596201870641542883608824050034040604391600165691504060498643679805794216458328530777254346793714658743236167635413259112995619007363213110978939242155101979058433806469892326005440720517183339888764376027883728990853324305968303096986242517866060893293089663738154355702010607192983269625382271960634065380380644487566221444318327608618180471017816817735586608382824198307848961512420443382838130021946291326507854689603720781026705573436121436367447135554422465499763362863993439943695108828820963686102199884271584230589920467697722358154347484293033348866634235514326073973873609143731419235324310819494898301586619213333355309872034705265404705149726571786261348178095108344373755797486938156106112652197540398709676663763198356081146499180368399753213432973453937498709621540196423702805833625423266548423791015411809431025821748022528826071642590604812090388487289163668718678138336778577865443990925832756023390879253486634113158725587849113386424285734197410463935435423675291609936353783218223319184659297649413122102520708587096672578548881238155175669787724858335588816472589725371844139263977257437310620282714899512014941315895843592822773302525209577970547649986614472826702978066697882697865935201256827730621500573803138202699358700626913673369205042568883954663384627352548609236788692541453117163165537279989929394739385790862979863119678847888960343623924915144278025364723532928073422634134608501837892755594470574254822471952041203237524954996434123067665155559331169102587003937886582458638043709024054548402479714458934886748442871023417844209757980494387967792711173349164683044568891846630222353654568981106421413225886131198823745110936625125534287437271501999829245908145097753373056744852646937590382747189483306770207665860789073635877613545055091379945099074600726286609350514682585727926697960107902120744551511266302272342448970080754950086892520508171062190341292185093534915661880058866385617400586412297205810094242645522191523903241644598876793574686865071042411370940608122785566925916691081635202507799361205588970989161828643688412638881695356642157743489270449169158584424656973103743101170898471369232964825254661470209050998894781520709770307100242317676071170600183426276660473300501224689133200057507041189563444514800541667401609604802266077855503892414728712443066356495092373422644447222482120786205491194871166872709391578192536920027953450673210578882299503371908547184840945503424142804023083833603926893263027816102837025186296369669853072106501086236776851182812960570636359106996064118592828662403835967491005618788202769810767604237300940273917828000683429034078352282844880439404944841101591973574041083318531619751615060993418907921525075401832530602073797459682885988014340296952412675086990321523718853707554391535779418139046793390532450998726457422834013784040419628055294285417475713266452273834878250271399454806266520337295540007303010420926425523466661886954700506935743310725256064315214330888283241487663143243854204912249862198550556220629250284910345760986729144388483461629587879087980379376483200375754499739385444610942409265141890478831719882388163915403467817531359823839734554061926172583564412676385698562647251786989764317094730027034079246080251482041101669132820715849556998303471643780214575081334267553201060021243891190081366065253467766095868902276066103208511487955820933349828368525909188616933638915820317161232824733054763720579185694230876081784152004737699279927773197637642826555641729148055883852106548837558747527678460660630739652653695695578512952534715099176085381840920671145977297317785291158930878276128971092940829576747176333150281529451754550790447856968681962048133280111886350490096091929347217784318546997992247695196766626027455024479021425468882486378006174833227102806440503350936402867048120342025209386149481541609104919287600323885122581482176066048866967694218433125269751395403778796682217441649410411439148266135507452181031525609884031966105122090053245620791999345945837752936549143152740792622483893641903972915811450185651865728870205332790184426329815971136503474338747787932790754574037714707453057339343862595539583516576679081411420310547453015380391397804040118792367357425867947108120464665650840080388375115526036816071588037993395374469150023045281427751848581151487781885805022963937529834353110549341858046786800584472909837103097648296299020437423477906387026684464909198048769128106745156559412923544886112985326561667078113564104350442685530756519100051869575249859330921369041651209268044235874799560506155176735663298364970185056281763762787661059379126772179980897797152912271866715018572613907788733777468719077692691270431171205646101758301112697597236868220432394445175256922734131213991160221355314442354055391092400804472211219914122234013282728977199816775944051744693257938378195380064397270913931542150764747590408948947446419788461675965311393494119351405656298989295058829065451067718447662121253458844891861925534857119152740985847553781616738258789081495923526491960713935177099988112671105069747611496080904940492252804303553584681100324696642547486032829461427232954383738413877270660789407545154006633592142789336790708916911179109675763588850224099611604301818209413928197607712643858472382611513410799698332587197410347003069312737902843222391932960381565198256923204424843730738173167155017439822233849180452679380915920714672465208149817790345832442104929242563302740322153773213456530553153502174013413391220024007285166929768986547547034057807424958365457140843158820368216306612023191301545439424450522883422813423027255114528657343939515690711334511308045665553950414037579302288877729068686186272782801314049224877331947946845243974545689560918378992729192422591613683900137182295316798631040031761469987808214342874084493437515750898679452301431042206898652109784998354459637581006311038629008224911423123585839801638902918759179998303592537546649806837024810118914490378110944624937195155560242483569392479705536349799568433341341395939865894194702630460363888206435422423951839134404418930507543413898420886220615759223315169231850128455356963232021220089267321630598644996162492895288514143852551656472694068679135682426124957393538077600874714422947222242175964301006135595448239549590639180958895274675777539549481135456642437671606867586690601961511031367291914467382949368269941277743388665489286310159074777659610458054260771345573430903931016349976669423169466326298901183147894140713006177891321071706598284149327233056003543685630765344706636605141188550068236386331622853702035335443031591540486688001961769352577380179564182039435483535925654249542837264330282196054015817724094378356797524701544898752738296778220627108918453023477691119498726122349009306177679039463266901667981125318141720640650592191630693509882467147214033812139171767782659335077238076378732898171432980634404348986925177858969547820788176820498540405590466056645790134953262645200820321588074670690598493788369438443691664566991333396250636059936144223286047575082054844095204159593643288751291375498102138765193338347373341293648327960034756705297506583537759340205482453460567747640824636757077637587133432314489334100854402311917465925474167799255739875286951156688895397988008858075945329397160726191352938086687138697217616767020200450732940584853739389678043497298745294023879822130747597307547979979641297876550641913377324680822500422185220194870411086456751275338526135214229910898655739539073867548391733690608717132700759880380499190536928618799049252183829206553837350620055810865355909817026406503715153569810707085102386721195450247837248200487747516592086886651592215359990165574385439061772026453947690345661617797448714517676445561041492280208800552841224052481581918578788436566863476576917501224348448264168860519845692576172208483105067172860453455532124283942452291203469837381642645014655721273264712424755267600010550978875566894711487374797987837373459577416374471597507129142752695137488267703346661399833162396990584250021998012254512021398717016362902687129236695201263865073493289339947136335606043667910737850880525879347524656149933661195708869328379374364991289869537091081795679354194711158052670275154134071491038615046950006071729009963542884310309604976640658617930944917727529405410688546094886921635802241701175403689015040346032742982770324882139188807577347278259602893764239057290643127956649165777292502361263504099793707573930460380749188011592042473577602276187361671677088098168473470377063900146494793340184228009734215262018915083991858080939608978949767010708180144207667540412201672485201223238557372489410832451725562533297767379811687742716627891102598655532099619619255137549285967037448323769646972317093287065490689570455566832245587530727109615129883029699459471292349235873162919348024430818707014397097579050168837352826714505729300914382170935899371489955120783356354144428986049196825916840497801948738700237137838996845950231501211616002231940491403177718255275058378219379878306306409861191645545658936363613214610118691254170238103889644501489320790649559520197143077680430828766650532008769281407547585813612359825692205971937534381862663704973392296570808536945445881946027164138300748027619328790851230565312958288993441678275778340398003174155845720934514517816961136221519408989187083356078345074135912142942643946584551348631237781522721390989300068531158182858593730680525460877470075869092352796144691086297909563416159894671566882234869619102185484026683475182509370905722034676469275679105032447645032930914713331181899737556513770057631778721394943550259246519193631549801356169344489745938587138727574903315962626767196669715997382926391983089368740960970957175593913576018240666894837712220957743572732098428067504071334542679151618679284987380557798720087478031296863923356902580901638399651874099986463305888587620010172325172939630070511863504857823724009002114970876433889171282425788093234157536083852808971642999800299029422035911378746316782745872820211252682898249940165072401300921388295430218204705823242464057698550684736202728838141413200350510095138965284722640014266356912685232309837166804265981186739364184811923880010060376763553857573729818222965478417710647877055840438773053393363432290536177984239150532616057507157811943065840028364255249713693087145655372213007539980300388066923162744122145554407091668738753261969412123573358597697059199810315391379502967497267293901318087400192267852612390083956181597163390869851109626261551593277417943804504328256508622908423652097703491536655249283979695806919175700422391044931536299825889102169905928028768548684705328119816582825491313899754462034756207942758156313494829411317477010635394425575266485583555639299155408875012035471150696013171992533130558555909814640683734686940469933868465518357505894108604704488850994754049085403812457968155072055617382275934307791822418092252959277918602350366213077469895213466424471725377453775125319990626560801687973706716888689081446548759830329303398208868361049639990676515746382274195146892669821755465005132603013637785446075518246945316956408897970532959366045733984107000955892114101433237131920431248349361585290531883160207834212066264524580783497354871271006563046017548965414461445413376571912185831022143832978979476961028556317783021662449259456883925905604809666187956070774458101991763989040812375845394166685338263845881136573766444981065182052019156847433923312920855961025089853206021069520510927800979632740628451414015068772135811382419839605931257903151025166325798930294483921407925522735852445774424228101592198722763788940215959792863667414317628534781258901847731251512801986208134303017241681870524683056030635426207064995431542088150024336241688875574274972055396363137804443717236593815092258048301550131191334786037696069296903342591206534317895741051491961494983679874427811304522112077501501527273199537331245771736774007839721630751039866096033929564567757930025543979073802320014371658394244169308026237678033297462008382911208321095105664872195504946389890753716702889243398969171176417644230203831293164110003531790694797746258790894426270759912662878245305548102246780250369161990138673057748132795575466411653056815866880337369180504842785822597106247572106588314246212581234929096797217301680628039497211134436516819180646890461657444993062345409975708816358380989435810210573137917506618034686464433436717062739950812351227909109901371635318116775805173792672099658953741146407994733886543373115144898980191895968778322535722497640053464248793883091955603895840615424898981540200830305617838949370524055314157426509270513400930904800449028878081408428067398369096996330688390721621046310167977740406743249399331126263628122571590595774006625346046437526156178416978130751475212812932198016774507888321531893514820156804279140283847139380012190950192454965451201717241211969239059827866982160399115155904201612957502731059199326956805042674316277528659252496354334710505140029852731400945202291258123220662763014948608457816902053044673959713644619008469154598506372395690900282950735074093822585019419340712755024052648730411020142612068022495088627075327155046384592729068862347919804814354619954956623807439083353974720228648818492347029139343190516187040876645588308218155034165461621746492543291650269981042008995679681980444365465690390679542312018479642483498705491098145301467061682242171017627727270433660047930984258840938654842289806382428105204985330620924868007419732553274644359218035113846521733802440262663276125757271288621377869420021937182936406446783366763596447764712862864701652241815601838363503434757013880991019070398126549577464247934406437903618664372409212323622983541042396350665192334238392248097851068796967205479407360755337161679536763308458813687638337963776789191079829337387056791054883885458817318570596646912768134972561229077366638416722088030965465686542778310644596907637542890529722814057830637052721098153819339979263106229742415563443942500575343935884248848544590566462116989379335111449963991974362613249019252466687049557368503693630342819039342483887632699627797158831667690393686264871861601930936622680814424093639478810188308972198403271281738213954200845774887581749003398181488103521973409701548852988113872767409535122140922553200883290529764746283256675285252568650103212995454856404046036716406786573816110928227253621730609950175935041128860248276147835380275008341022160547132061275361689896130267918509336167248368147996995848330549609989797826356059869786774476085648836331389370690266265279232707991174439003033482481837681770111893300549055727357851093221348316715703248291404450932620324956184187183361215056059421047815401610736345814197226172139299044635142718520419304343686303623637022543699455667634349039584832863702426837027556204960986212425385279329093977410411708264432037826109627616123471708084178537617487973299919124350277076602242871386270206986172652175950715240209494673490953983003408561957054357936165959661300597145437975172703490701076768502775203985132176790896070557901355951517755768076658123289569148697251042228214188299859035199428238001758212442659144514622379605409123827616394811824900730657200654419935642505891504979599526029446111529556698245307514215837274611755269747220172379719734303089968391508948882511496897571939046912072133139896768979332840526528779404563769788339677649813039295001907170807220570823676917712540282594633808510106315148700262953914024776989522835254427183290292520287604643734292797285272293620221505373318479349106311793810311666660895311375099092406010834030616439326151979474476156277991305547595154473694951800397080072217555643564644317725519554497881289116835018526678758752399807503621471349621430571460552549248260662932866762304015164656997847678441182090312458124792403822734960549391907691733201952053090214695708599470149476782327720999130614893258429004935371904400466638791900214325893081184700967266654432107202949511339118799754540890903737008912929250243677883563677702332381549728229062069884114286522864129127983746863075649725303434277175467474656731732570942344787967589575298121611870577744536624842864919732932370404287176426306012143787535110729049410927323995791096622076399730572181060798848866650133591548122021481439473949028133922402619598372359954280671291745515080438372284698924675698930929811287563463364033133964796700013145217819401429813569514861832043191079034691516959111330876096980345215028051050069248621054017027168324559112335508986157684070015549892115891582348209376324607708551152040193931070149150862026043530163124170568551040035471078441776055775398709637295851936934476958367909404947431878122472486487950831240680999825615769379859089318683510778064360253708376081194844270922961868389100813360967290209694366611309098688504964334873813698622243158304749171002306832208349754068513367224098695476845089605756839029274955838791173466670053753412889064495324887011128630090291140800248071643857358544256999900695757572926862314473336480704833826953459896030334647249132505941911568516909169175248275222121452205272896236264487007851936791165093441848835774193600222382789706132809503976376286190538369302161494171355840914657617000671371821316711643246847186516064750227899595827603303476215907777245033988653858775956229427386765753361002148998431159564196198760978299772062388246006414206308930036950178269590941831386366664899600504380638743309348497527345094522188290710504769510658111282928131934174945337323368206415897352710779650498423450097688731513096145046345840430102430049391026376026357607089364924283500616061658212893726281218670858859586387689624021285593641061427279081148895733956526604626699772892965464097731436088545942014558207240283047555777159820811959906879860933130037714615224357762068244727543650229432634696833150415349878693357640807416664261440010372070131509888634991316808661990076237570946128048369556937793100996951776089355305588907307723951466091044882769065579394587558884147286767718802209153587233750103084677542970764014985381114663576261124912777188621782762308637988251071145522697969215350044344776025451702368186054085955862068737004599231992972940458383256874958423233872533182530225615530728271254195334495144527239810504628719251269217697229024050370420437621667998786024889503784093795956579443991679314916752603355303640795664927501201608720996818590341721249757991995596870066518505750119352203244476368096933242940580338919590456815258314378871092172594987577835717772849466315131022439453399234364586145271316792396419494109263550989126419263566074833855385732647872112875408688339449331394255641334323298627042760772193674464075161858009851065883840674084811261762055999488771368799536002006690690533761395382377980368095313867306882261086616787833117928681593403246598230805632641037120231753119512047787223849165060747710303312694662942665751453348143024118036787243579197898406696465346029216702775512394374534377654923741524858996687306331766948520931061109016104556861358553356584751835919106317695123134064496630168576980156950025835556470021433071134058354181709658235884961296178932059867412898433204034525502716435176150255281446199930367472255813626849623935923593299647447110361179243677043172076664255354514145908510779441471753883556881424822811155265026433191197207631154283019411984761952436724187470764007995682504042776367539727634368098432900380283283097028451499236649108425174748865808715856827592739839670070153033248964852287420806193773878135688993608499273841837952896958701539023453572164415446851962037903134558705648487352848392155227506327879795568221349674487860237529996378448752121761779910976765816348958273565709011356580944598702926725569280527844070494768085530962249853566216375372115711739509472446883361981614104274098405687575600823087866236796980219176797934940088986857579346515284414962504711885142453177798503328954681391958923121103334837061928877104076945889506015311803991744944409394989367667454990245984998161365895477198780544720848874154219404442313264091265370640448944804113128388614409189360029343766702406262629918659644451053477563386026604026203099341571441226363275780922488318889045263691263402630608192622675408406532646500332759382532905807952717815878164267447095446935212244691208311825647501780440947236086284508900228411253088328195618434231387752657627123708773910288818874356758592990686768901192903455354117015183536732951009516535991807347894048035502912016708505959772371737813614696285980849033118879750099810195953263074519012683951109246728904354861937716853396461857866682115715561579917129255410507468924617372079048670826817582328352696737864039316697603054860906622741339536112798298452238422692519776334671825248258048864033652152535288105288061344598680882499994151184580790709233182450589615602350915527155978956609766806696348379914538418815289395903072156248130125042653348298623652212393713821573135060479771363874544474123302511215938422310565214118403466371406354217038552569877611177696165001142382164250366843885542408463447344423117138289647275065870181591284616246623278751330042627020554700449012781205066745886437265876532723260854096251547871789867785170862105911544069473396440950605498783364406322994777099232446351598882757888588001648861211121719354699989131632964573132743072475897972776202028547595005100478563869663396586699883563181872165761515458232508172165004269258978934724711252093071839920397572945881555432767396110473755947598819545104165228804676404344503825105921861735658360088645057187297135215556267209057341513953156094341608426693489865472823921248531461873613990853935235696020008454161851348850901887550501775634390585102603214496441372967642755423383194444837438683087344478495729420481425701668046756382755282997669381010592274768908256920770145846454232045111292681674658663863446696913535527361259975557479539631244784559623449607619078410350707151454412030309601617533870157750300510457580166232130623904689195846701923122514277837938063279810728304138311507355257716844553859734055025554565224851372036662278406476467188301077800461749279169773495722607915261769124850252500835410109684302142667414654677491288396574027176370878158473544981184505551723130947073895026808997993937231096552109465997924614353479463378465125883613891059529401005350046262995260014508197092733423848294230175053660160062720030523064097568138651907992139750976781010597197343073482593717141587396271001247538044763509812683384339267420063954959724845438803451138942785713307367041609251563601912945045338804708744202973295974258771476946630149749167507708619792090636806945970874599812674487965607778014960155840284727436050569338851153636274327726799295770862165848970733760584140106054314887669669461091441833617871596883281793220879645870855498612318407957805627590446169485130006583351549160466594954688498701608398089207413552369826804893474074170648224538676496896496791446378333057148029706089133572108915779767178277190881330872136489309980538062454149592175653762518272854181208308753380567088808079175095530006157431230565342661932640862067115494329189858700701496327071800466050735300673509533200959003604340337223499276296677557720040294673783660958447544141466282147812704316660540039784564061780377817704895691739336163318042174206050105602761580747265275348160940889685489111482153449758297222044186448218195908928999370539323440865292742622815522423416109868677353191244510525838068637333326288720505141637140904507489771551971904274926364976506739764662173632759734805139017742424482156599645430126866028517432947234769954000209038511026256484807590545351655290251221978013954426494847669481766615049207460636647911617386249197898946379837553233484306877841558717543619596174782306873865831634484939462159964422313762133059465014877849834266731008802917016311467291054609151546823149047853403825212837879255021323139893906122931623245334692442321156042578880204914361382105120162565145523901864169471286508472659772693982621589413947858672501501082348747721165485685290419433763359995898158720741862263799637029967196098543204689317354930719241666114379801112763112289523560671222319241897693074194448115301455241930159882623942354032511647917272441633995174371842154788648941057646175817678067377990743468083632571005394489416337159212780827265152657754091628960993778782235031374577271294630879851609913726467299798691258148976586287941061886504683133258931091757998906469843687133181342650783188307867919629224092616690034237601438031087595113545276286150982251060002957722672728876324147736346220288490066813514453908513310899973554738513246273017084378089937783960542970095144264133477058240029074285492131721169303718873598664512798339591870283389554508181030955316614774141377862936009990870116694949861756799958948324304144887736536870556604030122739980940077842384480781530102276158164561634614296298697696925470342141721047228878833711255626614426794347133186369189078949154026145867953619988016999408046645125519424586147132552868429602781927987021967053414252194850405870514184664959360509116854880732113292338834526287969533177289243901662992696268361676319749123049977247022583867930504784286894266475296570081936747822495346020605226872874031851599829269117168435898129643665902341370844044020442090791760447748325189930054362096575034797255087115784025763334552255032860982339804424308239347741490916980630060824059456378620228898225040658481132881055362851567785206007406210674205815908098805439833195214610781810827806836542042661049355501405578005417870404455075757265624767754667857226888460203781543480364737042916624705158683590691871581550109770668021758031450007136714194653431172213989554245377211963706965114408899768458881011396113897229111001218958269231903633470925661975685268198861277181784313064629678100700772788440738620326430561851737668516322622898651954320224614315223823451071227705399478538613911859386360502309889921295179456298632536440032275489517891911130986883886179481411205897183154262299769850419979287669755113375630747366526359175775610178979306757610516755947825277684229273606996840185916611149837581526190438452219388675872089446269713609869956752793786429913252856061603303472064279667116477649240551234299242212885906757721573551065133864016011363618338877882523577747343700728727355337493684746763024603773019220432738848346783634351856592088419959588047096893423595501736527366239688320863801545531076858631260001468459852760238568761208309092261857101623074299330382622730971740387956066467901245613102227480403540899046491215558219448016078472844603181275936326474253457853528912181619677230169875242914128696705807452128371778209274740859953655087524252842816327084559182950537824896889347949033047537036352244559252138817770972434916451004324820140059309813964431076712974177062384777522627159144649317013994835643505612192959068347635815156894587635875164688466886951865162395942790526986372559276742643459806762194096838620072328482512158182212835504413049899384785606531345259097433968683191428455781988057675481851624373725064388343683207636789801917861049838118153450314078987834361945177668477821461165680720460638465319749040920274759235932194498168618467395294129098692463674670666182397337854977226743825952309239704609459628178316213404689052861736844698296977586195279191719881787028126343986189090158769058169162361958110493976778676273975541335975440017458006247605608419680253981034166245424682586566375149353179033464805096735392661789756004895803210056958383111404694269768632657326012843900354328447707917397409731545326167186410204252715749929494945400988305382517280827202340239586730521320232470429687492758034041526380562991607127882323065615636307305039996242321900560445208718466671676653871393504183546941287314442402555039259882574587991713709015121188790705149448322212218262806348109123276357310079181880332750329598055710972776673194227026444078884555679957373178152363903949574525635412195924291261770788048432012359190222390930825107358488589816344509076456297788239122541663409973624728052526552603009904170264011286035868258118137875626658912553359728924601434040813232916207465680522008149331671684572356016381481093517138473553697433112227073802747253187957809124729057823703219446389915589023285655389797530722272691347766091933824690667291641507781499855843569338332864208756712063870009086023006036195113193942843157976339429522164205921966897927630090914702311793477429259240156880101513399181715897575203507774406615549373847998627432110297434108152003115724601515776296644797230528003542660311371771384406510817504435262270002139842271174600727221735605847103892668179580497329988096076659258399925827453617631170501142585722998949335249329354626799516835515120335178686513657732358430232288708099158195111807387173822978251652034199254836317377760627266854487503497224998907285757079689255086116916020230481663316110041878519839545300999898768468194479553608457761509384966840497235307952783965553174355395054520933819269084054385991547866129379500005279815437352102012764357077235863829597615995179868844470518299398903412404576955903169314519347164542860344509106443173787915373625817007376807255669265991512023196059227922618280681140074093779319485551776430156900523990524195622090628292840365053755675903606756246037136548320708250899491010153686663500142761163893740529761978337385372096861588131072039969576803321962661620912919027037409385379510438989039117899742285864299740349350049607759649788869742895746792047247054434468737951212781248130105219953818941174281280700642654764575746537353508147047597157403432881299307534948509379813058594098713161022179390213929832260877960825632341529632782421581412715725242481626016701777819644246460204017521272624618473793201909030671845895613883122648597812467542882149658417663642198395547357171395231906855561173658680294727314933844794841620724934719883042354423815891216875623681583922562792926291639824416936137670377219623325359653600397997291190212984793027260889464885012485795455038254294755285460381494196225405304498686767632139776960627742052077203803024116382750702497204017117942091541341384440431002941546880998413211901323589593283617432990302102603599606052108970521862027251221535579947727810725856081526692042399709414002799107910813459423174581401527345430467310950435488812167944613551035293427548198123026146787858780634243061505137068691650428339699777879834362725582900260384172338293070729322183317333449786977518393599969576485981342347540239188355581341418870246146877209098733647969984660922181908776571497295773608016617962057204089935923617469614276256821019374398624913826302747501154687901587265132788949909117711966859750794052717176085069853948768364876246452972107652220355805682862340865605251528659842623554846230650169780108670772922481537848995283297617531128176558935893410748489630026286154732337223890689639871909909634645424427424899701281303743943974366096961370745119618559301149564976817328260463504296755364679760884888261636009071252171210084455991904163789012595519967850610616816426862422330791257816485179683389306725403201817929543795792148809072651052262346310233348313585899277442627293587289607075292324832917941120556265213000924757335422333604682811423037558566041623603092153435538112021674930893043362889351559504917499455919076237178104043216210717573120420223149826309550461220832259268064975241873458999982595224357489743325679429622572995789325913785791910800035366734748452080543918662640323722700106981134416927836371733141921628200388045645248590197039959367643644146741838608405204619472859097991124376565175001129418124628327294652272481816267892497224026365110155893199681803704317431389343394576539236607919861694490107652731366064829729497784545659642898262111661203184804079742577189331668372826288939040136578873561704112116463220550745393771453347749459029259354470285941120264770556317767953628424148163233983671157687529144868979819378345247230199991105900622914617638840153771183272234002435031864218437220705055734184765143207722003777334923662985769315581504284217504807371696786941525011715430669586924357458454558230409373501467857500659637874457928369455076724301534403290340461326008507129414657447508692575317158088035500030109363134252015904226827661368860389081644964310404303627105373357461496939687702275753358176767965307665701691343491439750549092442530110563982695912262581120360559529807995591944629737692652425319761908949546579550777653211975196676918281456226824303080862711706754953320173584539405765994388905117273130416993756177742002221226571039322279600374502817089195411796506618438377689202625297943022113948251862746623617394202446517324332297038191333019117178191971054699056818549259283430453165672975681072877734966121184825842269209788814113304259657828204667141373530812823140796897825536801770367592992850248896816402699696015238953754866132193190126022252633086681750974301544255973053750059028714853073381841062262488057867596047718528506817311444504407779998048141452130646339476974152684470638858986011430990299621319154638064251926679688613112271566148719200460077113421699942273859632183877275850774616496310883933454035546237357526889009435471838412110800446489829469338538654832740213351160159604630812071259767829238844221653897544791449201292883393633285278254140946031780387134441735593627713836527811494338038081029056621245275299122101719232125294344654058970211356585270759137279109015183449471647292092003478171555671714178059939038495385395177862648958340417445775478269745806266110912117616541442730545175660653898837525243023747848872805805457101345294429456755544664663676825583404940035949894984449785140574982031167046204175193638433731989457259213062462559674419480577217979541733473636330340532924736027384704909824309992506349539584803108289229784053401483379527516860939094640486998987956555166527546678940366478930081030016757746757863411611634042487215776007923979969846304088289140402339477154368317248970315583877034097059160280149076437303252982237222541292269060619509688367645694063434888083690979345609713767696699387512687327611103366406888666811034972562388914123628003845103436741814081687858580050270235601595109397191639140880013008468840224988003608910861472586808013282035536502730831684488343435399475815088275718874364754684805882524793384307591167395011083520254467945957521593483369557962526562640841077177801441518297964724481171259795714399848850476133172176269341918963210416647862552551010770057705183081172991474910577386892768202884949826813407244948800953185977577668248181217443819440959389026472884399805884391925575243880653632646468065812991935116098357471092472642016297989014114146168039950559254600666541609897156151998220611823745369031541124160553740997024282888954708514499770818381871378780269360976760383365422700683130429506679881398877003932265657198977864011787665900626629705521711004711468249778292537369762703803524653105736819903654010657745698536939775994640321250507126713613187282687768521114485417951966260292797667680604579258001485086021321497228250744253219089003250805607292510449058300039036250988865855013215548918793592791399638812097422606170462602626582700854916416814926842755326902360350099706742192209031079904594088032496698137977620258768171655748696915459571528985072042630762595097456025938865184797784664805243672454271401207584405955041928019138461120471941060786711094851404684811956306096876824676616479238368005972670851927721530773673745568916474444470537301317040649008695398646153689267424767106693603176772495975941324415077659902715610354311640932349330645840951367015062998800227654387023563480771657696810326669220572400324700859530283194845378118453727323583098921348168844206025936362627187475067456597660531714647944122936480374724690800758955651169101302702336457227014891379218406237975000270346324089708188908940646162610666043194501688151552844146666699890310139245022329506092621697648106986921438793212029998033471976498367357403365233477496117418464731718966230195333508764383070984499873240970806473463283317692720392758115309683868284039924429759436558294770005338547718195958747703489311222597907882572047494578142094232622429347699412143269601833716203087458585179943695253494169184519949626031309366805912995254135033031340301609083111572632126799345903701198355857151978897122187046583500800080939531000235575058536643938337140055452656571123175819432002303016901950258284788866023683762681025059886882658059363589006937290190101417642441331618460526417587099685465094873211782588179774704205646899748768696756086004961191706165426573027107397083684162754855853377545912186010560738096015575660090886624030011515294633819443676322187649820988486468237631799334341153256910965023162603776813495205981098267762292278124166241899770161562024751138221646787758198395545556159272936838203706014497088152792773279118897403231360946318189965204992938536511774084779380102345367434940831740121289114466651727526416570845391988357752013560300026608794896920599910371064489302731563571853715018388518552150187105383256040631103413835778490523508574191363798216787590693410192757667044921513900464209906151762880202885142763955187341221270428619339139857427778572019851376103502649737886540256144758184604093212501264555580065717208539026249839470355122187841748117898970091734419527866137030911372873612277168945381564207415250163827505816580618029604523257878757892744535851976428695203955731069017021386087794172861578156864578955948514477616210159580902541833149675306724869826800384562388310063937086072283028767694349736149937202398493968308877015409806672592745913247711420396576963232265413918789493291765620992368311980621886664793677886497285378584716135290387470265851830094370128160095138251269177865918377653593874999148679750337615524763872951758985881079941214828695359031027997465373482540234717706631914585788535745723322038397149176650291813337664574667942637065570617082457967914909420670643053987049012311755239094154040131601205663388221458976436497064064236950283765564711926881597084619999331916537252205706744147889944323863140052055387217029461155002116874917659892405390428728802204614277733999159033650786951349459386950848189246045742119879483771085082735831698674562623328670235780268783911402739713860392570715823748982668868985136686816365041411294382330020130388510044229334309589352745659720653795598953589822120196405462287168693584312732678513732170147249800832897380228915989900110023071630180298921781315965212466675580673260872594400143684731299595777466002377704103574144040604445554258541465962941735334048846523048059913343515833114353226653694096022366398101195848592414324551309747933122770020361301740753906908739536650656114273684625979742650372072677757380491377000953245959938078148823939069744979881587271469853893519596387739910552920136714009646237048342917065981895196560801977549351552364568980622490418830247512292547698590138345038148154320587453401776953085423354603230418550243013935050636965648986780139743399774531108343607111994994391860625753612207772112745404798796414011822751675690994112467462218213736383688463169870991225015377824588585494058141988329818608915955471934965036881107728026629114024463168084153006963737196588546034332070166609767376590468073685312686157098084573127192322171356724564626747671872703935774762932666672271501142762409987596135631789281291156558158288277400246463262728262232460388312788134838033846371169774932802782265533042510385428154248807477582410104985867688389969673860717768441651570674915980683406846923798959417792223687149000374774250370360847815979019218767849949673795793789690498598175552315432018706186276057182299635529676719233219285093729796965520276501305629232960415121835423513528675690143932525636555924636636995558313161530279802922227616068342424996753184747474406413681032986315016057202896536718561699195902536207094176348311351515680626996795245785385217625685718001127599628308673218377781080009184442575116659498980762390602117163928852959399503085682234265940329480683123996233677986818740452580225406982807063757842796706007511148456867414970277325099159456932444368764422532121337992588222267340425868609856252803870197978491843764000881929700757356642953756440850465330813023203366116128281905539312716009763568745108997149653260596012740691899126751278119612727348642531852678396538334401991317990749269983243088711877336428106640229230481171878093864887086223373787232506690754619853085793781783653033526702591648880846430011049183826442172529836444432646555308598428633971361714889206476694764412971260194684220328228889779767919987208429922350549931418867773091349518467820006482104163626928544009537187566366091565756566192133661897698615876936475471598829846476350597398058350527344332263407069190829839318031566371256454463086145998814503595266156835148225570270595242098890293858406873383600376319938156435738870910402027827211195912623236888018098099018363409408581425964243341301061881480392635188064058150655823644795835115228782093008066878495159046482044241237945209174403705436411381107761366147381769728266460211885632871724940199475024914052666248833545805260146659055780306380791271064512465783970920840832360821928967958823280949096945391725086369543925353798415151574040555592145965048984078285067828283204038336962768835243417275731525060791197921609700280005488446198385057530360897407590440224160222032298414350756569839462359328361449937112527130813636782683029714670737700568514189589513221865872789481547939102568198162887857989560820415616966276435037588054346229779156899076006381080408806028608783939183328196269993811219942555318019566628690815478214348179915198186391396666874313834365185607469514921369050545212113740943127652940834456135187725779849161994618564047875099420831215941764334994745046490784498735513051815762490164783426105448989153186636078608790836248056221563819989879964121794613543131807560316863469145489026286640561724430822745938565465187345892969923659862572842605600065757530249249243770521708526083830337837512425024087765668471761934051554135728199493612176220978399504999194825343031315754522314503345749904430867285656975179164468947443771856729173708156733573214014875700467440667334326673851151572744123126606432731719241738606555666348990065520261398934423711687317957588359255887013003790773999780245730039654159587280870231269750009686026817915487955570783347299615906906889028375177754580176158381607900125260498255209363164970799026358681737625401400912579097542918075369723868299334863703980721284366497557057937898222819631850644551202357258299180611847713833555251227137116521925430734124310191312750620844820856826915993314371942885969295027338692816673414916495962114278719485392291354753470914224230426575324234870312625671387200371750002614630151651929806524664255287389185724429318646515512134253580624708753107553312987386144549288431250463339614183487414409728037202721808480056315027461852088724613458922354807674871534334560680533206671859111339766818385620568171872388343941735131783089730900164834790563226721146480310571583263301217586799458480561552771389534331492649368229729998058702986266883988667663971272579799459584680136590348350479253133742930533304101898876762954273114815524766015621507220201910760936302081876705710627835572688664693209640220932148100453926936275992161242126134773558021959837593106785363257421263261482075838593332266881892145649817222311641522643732187444660634531067192579241565168424758329780325114110472854384736508434477764184162927209046959394740431916525683427660945306849858444923995445572497495685983803348894081665273882628403448991846012814004679889403780688764982234030282106403073775268288929393690026148147388972472910492960043578474864321770688743821587891812178266116192433584889245393962422271827454894208319500833192412197224657642033750072602858343369457912699877177463803546670726140726049863615956539041695700905991567018984947043192077382716077234444721775405165100876873102319902848986422731998814586870475338102120236002118985809635510915307014887981577146161354526787722201643707912968951658626743509319172049370169682174136584766289446083000351626671959861647532457141141859761623608943112309283454310315110153600997582867785655795353705060832433943578565503935213028966939463257177782775630598849333545905037424243632828411909579502535906271295920773349127917538183021545192235359523055275144605205199928338974808386347224729706536506668062033662503419456620742497036871214454795766819542806474929256144000105687888075254974883169929421356987550705690237195433196362977335084620365646972237706747789028740756961451887633055267670803416714550964259298578420191816288752521296766732694539521786757565699348249013449044903837815325409808262146642544965627407051578097655433940329914387356107378264198180643638360818867832932163197770439012288446360200114714434894358983507234421397824185781674682789670372216803147004845271764214867530727828780294171589773321687474679044167638957432602426591344703500851957238660948251408213275526418484549150759347842863660447442488706773256644204369829414883510911772349818567566034319123725102038881199975094426318105908385521773896704182052643988408629254501631942583639923411530481968096325284510701608636582645955198399787196387950065161759888310284039219099684831350061457573996831537802547033049692776113271675002556750002812114683843594975848555790712306244540706695839226054246417564608992887365422206156603677335468746897004066385659233681767352955139863204145587893159246349113944221257950913616718704244048577987006336799125079336655686932142594663346579463913149956395054168220351758798922380684729738956104881805698396389012740091069078781573806172606148059090038185027224200381094260076830415514691815619125549487339611090403262864032762377227563256493607581553245765360707886141667642741049483574254026722286785719595120575588875194458866353421165501530847402690936099322676435577086397903590879528998642294796238868689461956373461182256374967294727065565373381404823722050418205927853103790092843493184785673351749050842077603639915188690202026998879614054440200122649149026846623410221040599465065259204164173938245895551297497676801881675666384793258719809000043143883820820952891915488760550427002449477899478441835686536389238104746911485386583444482797071525626088610992032189825652470731360889258873725763864936609290779876463302157191917861708155682315498124835040317172029361946751733020454914113073218287807637210162108781934486281429267982006937317471594495510116083548647558287354009768351877893481480610828173944198377640497434391084352359081624476827125988207511090811709603293533285851587730296707883133213846430867066109126565353846423209215957454935035217350869368362174240142566747875412743590036399134207795994065445901550852676720852394447413552842569113284261852629680499505262501408706711242428434992342489375471431141173910682161754363620487028296984415559170591302663393240467349417924546636972706698795819943929065755755307652359559920455095535990617303223758384698750714619428407244431036396397472528799607986959628034869787471201698386824154672929485538207704484081028090642184263472127099070721435226144719031980758674652519109900779486834506403454923744037333283371712260559282236548695809315963077616110890939470869591991239570134931132225957695898013187255271471551889547275542185554018635601579875150129873645595570147507847474665662737845791377701833514832888043796366059436085176203952641728511777200948996759021789822508204357414290185376116488412206644482864164246421833073031033361825031735523072325771056412776322208810656590774797343337692911648950888426549624977726892887484910708014735797948000911594593846179712082286838629479463612652013809191028261705130912813786712358415845965580530400046704236749503812338624346209947253131428100236244495643581609687041839941031655378081796494224724843029918190006886737525037867013559421027644220478656856079625893723357106153283088140635684302905788698979191573416968346962862767191494074478124320380796834834814483059994241226297775285510351348211089768916844659165374268072291308403282067233920971770356976538157635544842474018240118592271391368788518198438320450525299834485787203859322768077588598195795232454514884109694211261689020167033304943301603224749900215824235120729821388238974535118426845837407631526797192489417937546354150449352796823619140837262338922381456744946018772285521355471375735390328810047315434611510037957002403166709103854171140536924948327662951252939311820864452249255976222677021454095721073680069052433732554814247110063019994126402208708525106906134684049739220803793265815299930092438999308014916299486763943236047656008839431482450078394506542034581594438417772316218761832070297690141358486446485863228702941468116338704915722915422269692667098783566140946762914513677341502844582595685117316805277448089242862853752172145054182391415959646039203108648944802493032985673852667576004585940359484908561854359965661636368207646329482677917660455886181065172216480010674658064468330255105005233969980935817360664103009922754446943576395386976535938818614106428499926073739478488939045133365459081019390436506890632231244067461631865212198607485932972341701277991381040066259467218178493320498443667860699791328228079533382399848427735302149385828106518448131268244871830307640567522424368254988474598207209436683345634906848739306523400659761669535573935135051343535608736179188041005238272446262180588330558601588996934149683941106311214167109783754420486386785997646531907733501476697502387828931394829035094146574694327339671806062891214969147138095733621205256850640296173070001161692100534764116175735771950422660610660854118612371986498138385496160552096141927409384042801305405468210361302710731698206263825864858590081838300823065966806734204592962279394268626675542246270814739954542628845993023253097914030239767141224821894004634675906194107470581896311172293825102851917177928271441345679753112758607770213855824174583643757240083751072389217996704735985214648745687173500357240049455205932219615362581646854432142821925726368802533491114954514243511106728620404994998746901954935865985208957203951893414729942950949396034688572248143242830084781171931259853711822617907251122497131001536006084105000634583462862823493562037375932494935254846602332910473366758642398158816818080012857233738769972330912496906737307833595013097402296835127209141752254239462706459736596361539810578862858182087439142952961211293137418846008317509814826109383320190970949295675901649074774116785387084675170884575574534810607968776580454393727401310565816198046879971061014427883099203039510742914953082782267118708065210987943934895431642872088634347034947196805406844814722750707542804834936896345010699505585048196368577270246502233814907680926446618685073749163297943876234890740696702118000831479121399041017137939494671834305817756046629127524384852662141553032350416967137032855356830438492575649461549547788238339140069764339056075159517760001683805762718320223776720077261946121017827074428358377662518212766388008317029439699134327299364381266068390285567779579295959382509168626640663936868206411521069098861541905548250832805329219504004166298103249002265656156221275272330663653455165096089227952661029645860514890302432916717188461994916999546730536113035129472584418360318138547624287356722696888161861547510121965129396911082694894614729986195960870095949915521206004705397971668311696387799777037961862614359158093309364295237647056576738996873023043781346642175274679717668193389941805577252600911930967617947809296229146612632178650294590595076867103776862638630169472645220185349257678646729692961299905660334166890206482995672026752866544232588818484188658914015270543538000244219181676452609377848420903261546287205208719563044908944895373525408409301914139774515728366476313031662544192859204838178129540932629518176268267608236995651303186703625604762769664597828204453312725238534507654471494389780658305102012656344103034546413761715896167307157283386507858683343677700461065856306158683606543286724049884765227426392406721004746254780333444095465022085677023695479273628798452627740531027896526417175192514223504468307661182961848250886343597056392440317962419466104588128466016563762017418908277487801927198088713052956241301931239219496710837501580615913330144050526055560843170338251187096687689631095048594844878686998603655039683256382283817321358002347148271977406262495692286583880222835500486699628114626306554636108931525031753127232400708215393620780817414377700245677061796441106705564228579870355718005579942061952415594788354534298931761728164773136460466106725595656614005612495960906110078037752376867004314776414058657077536773405401156103265723054169205015769966051300367519875730769194227867215507357183280078480867531577450950705818471475199915920131096849620706182955965585531162847959682841441659335467437456733898004381751415928578873424967063827700662531985779711974170839331499330311673089081550311041631925810445408423007536287305739369073178171385886994127099021842422475727235862341316723048641303221471308937888593948002438823668008786925149009524236581209173324117100770884173236468186383476694058306067611210893584984220108429991595967303089253700391630010655096000220172112832422377997048886972003984154184952070601474879630903362190500016165454913228193263431709901557829414695745378689561239195280352333335753787655945937124788348178746720256809272048588635589396430874578425055415685295645228177180266885324054145324650142678940777478196723631614927900942146740430856606768736380003554464588919426487710249826716179086488120256413759178658483210009653460028172812010463624115567572563312618218891680145174137357162918904447563241370267431073950816292749627558291270491299856077745416199469451628967425194274907760975985082948021460556484376741262789735511128063488267736980974503561549913672883108787416212526878156973199774756084745343154667712288596330432518548075558586146349421686276481316678908524876941975727868901859035468137604151433851229970946460076181582720212092527223100548822184654161223766460230531751484501209296873275188381819606400922569322449229984233402911697774729729273122369130905898823039916364720295136281612244371098808537031473724373769041805834089296291020490389286299278964014379573403109031679235902165133324958882729753867589876508118014611417165768418398391553994294316250220937017188731396359008615294484583728308406168586302013764189741659186311811633329820927862401822470106699459882688288927323656272276860688548753843583517542286220532597177143427303792488397757743205646398024999707078285802238008064153604205812977672211054292427840229521317128985436681056093696314834349286860847603599840057860013264042684029270751710604784666736243157400631567455194002738698003958012220970550784434705456153332288355777171404516138989752388165852332469043675807343023451331583924263527386849842228797750885861468421434280103181930452059845186529742283988329309726885700410961986693845226420431222631856963538976390188787214312302108241672404168967126277193300798204061779718386413555321548869424813039191737515988194976731285225797244800832716172585313399248175504320266312083623416555331773769089859863433019839629289441125191895369534418767257710548957184045588098883311603045736711928666775239927028959486275335926058157945504465573948628620699583258239357936475260189008833258698541591037244923630475452032051916152000561458805845012308351651361570268403305782117690217674909471968485355360161736501127484514783498790877977753979613922214948115032352550103995939361695730495946527510718859591973703797647441223315295631552168311860647972419430291426426273106226355747725494021980455422495643792397939231623100247024694311502832528896346947692406446359586683862486664452491431188332816692084678654447322322720161013793526850178388262407928361602230221626619928873241986625813394287754260496504383424133262970674824524403896223883032661303761674945931141415201024226513800715965924446001830239550225326957320986538383617613398632466024133257194672324483522935436083489819611153146239527377607014568657271469012932873369617881428995063802397890630558343472748989956713306902027773164599649397424717280430554839645117659289733556978630687402861142789873863059190112638210414001429501646179844685499248740052591861632824031363703309830667634380010795763024617668861681949184255359547958247329281882152896413533871701130810481003374950759853715491318716608691682059020085376642853957760493419139971487871778539366029810381849974420625408880234437749038231556951347339392253738379455160801783820847806028546707796308783392749728974674858852682467340708699858980683054227177436232496983913735539515246803333410368709961780374290940675663015776668427856031203306463285733936891669998692096310353171137770348746765985820186377120708701640254865289117453880947812675398353790991800488316207599139140632624995167944179890808468786380314188512593736219817688214639254495145182167900452361878128856820899113486191863504732417040215343022713954776174980355854246646937742416043740013317438634139942312890376443813038095947515054599050236917489589820026371943163896986581347060751971204332280598578739022218007363446830752582753919138822662410340392444911326936847512267662367577285593933474103199785373708064856630906737084172447573944191808739348326771101770483029832712677302279227447864528417814000116806847054003887319580218220853119255196424005711451833255217467522336248237791898134181488051918889596466594096023695369423786536261095597911252427701395978032841593617938047509263806012122452479796448901678450194673735728947852419353094882731880760685840092024346994184469445752592676476890350309639499525322522792830509907132308608649518474171289299530829655497959281383102621114820772161083377109542021547375397366557118728167298992437389672745764879398213482203139039883749964965743845943451367667855120898299749242928242590044070460746385761936158594213069833390343017926056102936245500161687304319677642261060269757261083636862896324591149798915530856341359746982229359686066807391357019382735025990777766371635568486611076695259478035142123101360200937086276248123741729869078541598862028659039492537602596688429489455772652140680106774642929023570609208479887832357504658353087347433951237609637350534289661522729974458274890197949276524851804923253097235232451863785621431109978903381748549180289265114210270169873592519425138056421789738288751126522094754171540522771780398571066319946729182760200476287473030927090469504698201906306832103250455644295027625822712622206471252702701847975235946082270793689503362543506697581403899036790954816151812625119545845052863451598227260430145827876399813478004765014859256426522142838542399540259198499019544063903922952448954849617025506499634948350758627973779519199745045737302244592416749671580757230721286080305321639560594739248581091282886200072026611248824696443789341698724292019986749894958031007400038681908510447364406631975272072692992788713713586886861413776760842167195209550936439848914913641785196398974859440852798024767872919787795182490974268213460625149390920725155205107583391863601504934389934059812531462300401950676066999655015654173207327657407585691954310523752297484587151388524012252238089496262527211918235430244059799576945544436910189781728712308984519553371723534784722180930367317739524998518394999994335287107512456013419375080096500120588977078566511691840196589682752267820476364181326630060585433427129345741375174655021918880623711407225867746133464225416890750646600749534889342740750264542882640063497106009170883939352148925080998630851795254425745885743342587005171153810442942819467851999582758087737518636146739828206301279549156217172702457311952176393481901571637437079932206409155969603828616460498146987549484440337062098158814210629270633018224278943269263505374109418013244564516687946085036927320598011425598423289018092371103223976777312294167007789518263724026588754002688223762859486131878260377656742308813355001189443410766148637254719145512995143457063832870618402853233449726354616287755663151830705801124403722007016193078991134011052612048526350262483434567130582663286993817248049698967766048616465825752321800550149694637136470815356201919233398486049449237481478678815659737472291063905208498580278528884534936117254945277470954847847693147546928371830111782007783898748574236567595131767705387760344623614570410927119174085089592073859143187174028345131723074079517993318430117155801693924928292368354613749796673845544678066322874565651697861158894527843614229584384096756934336329596622706909551498140667551556720867272525223832962237484614145550521638815806630239889969556776668089968758092616998234656334419638689991768523829852165172474765686549360177740154053473990874694454858857528707399952810909691415433596350124823425550876011258302977454713250719806741886089275667115437710626944656003516036974842743754797453160692280627673653987824051588967999989598274216549698172723755785920992215960554311032024832290564951103081068378300038381915202386786854143803011692728794880495291198283008329289756979261724282214392039956000681790766717289860314663564941692768813803282551716374334730889117898911696258105392695308556405816092548883348343499689666034464963005369051700077869463255868199260371325002513871834863174158849219931839742748397101985402838716248379866297765367978751991635681277325574948390067286955685051881315789344453380433192510180967984220494780423398143327291759978292894550784977271759660888676867371552182399265452163110028519032123478858931267821591474924677775062859449335843465106232863739427596456987051491114305156335752720681801133669866414990973639503107880965524511752985072726978803870822039233999452423612641716955326851569135365601306636097960240506749916402192539465645612790008321571271919089382910426017852558135856233362830684456828253903288355993928695521339172592877846760079478124276978227259996742424484730451033750768011719452614717238251509496126993824708946987649223942666087633902604109317001941929116539924996854556931888486081409229041453554631890732164894979320060657294227920348381539998410426537212012889707671453106535321972367692923149892297981438099993732359703242050076889027420166458079735416529326610962421487005917028089858930208540158504611670622736098442236959971426366670297326939240537068973437976270130498138597924918464973761326133605913538223757701139447828055302680323957747085992696053587209502459206856118768708153710362195936586867370690962484072415886567550077706067920631573471948438424423164617098553223743763024917147208869303185176626828395819905957907930773670438920912192795143350721657254276915833348287280695840721771445233716661657586914201643563274093523989406352345297738707468039361800549788078791564517040507384218861789058342984212946533432892259987682575490016492641691176477246060845504150290178674457423400618883312684527947374628369926837636989470400336263019996683342550408569162628243071451621626285836112004841585014661181839995356694664382437651098257348384224856163399324134523494456398290660464934969395200134688950869706049055375343189619184212422091850007691157978526324477219536384378268455146667568027097968835252185878417663944190835348359283161307606761738915613824755082667565707014744499186715000111420051599994603117907668755808985274953033310857154746458889049988227540626201086070946714440324020958241467618796614510988471776896818901971825618115662048583985863180168774973031447468813843647914503429356281824763252149460195470939686698004225229859028709232347265097664387931725586719277805731475059520538696247323694271730570104594599791380765695901661716124788803251552710877298462414448705837455311004475143648310627699173182989590106250862537287486212825388721509694096336710066764984474086913163781336921465664043573256690239259925287286993382416070497440827731113235348701501750292260324394133915773493216319138738787267633606620463623890325145849441905890561581407998443394815272673695726635538737723966154635147683720965488089134778904665039826693287352481012260439353531964981410088983837408705770428583331559335710194445642630594135241593338014019771113415940208365986995088798990601126803366418843894374938410270406776732663682513769070643808091757314424223760957531692408762376352167209013693914942227134437269149443181692380918930005247331607740232062944400113786415249575627819762481337115213108259719272643203668952932518991997479981000428376414823518868380497573798384707907748236539162729537452411268386619167246100438129992243775507137440277028377879842620893085625656251229736197995801885582914183246311880488180257432744598108190391335507308625900208007472907147128617735012779330396564955144655124991607153505319007774969589416834492457325979141441896905689359135517579982674544207241486325214729559187459658310851107944761736887625330805034082351751619550765087782709761521526655726712299689713308621830702289885436659688953165018383263519850445785588609289409669907146442453824440182564673818373522856216438536767395992256069350735464513226119602190928717885702948718582060147096350432751511326410664818329671909459112851388344222356201021172956362718249101191275178586864704286226919017198786357006147429078716615318518683003430290414782564406113575756422812760136057295781048642301310651534399722717779792188019917991459267039256487523771820674610010107757530903557136034547592967926906889776012698971419864398656464469258060505184793307180899713339578366316239697649674383953354888508753483976965008003622383513432032458379157345219653559440326499981594199535677846100995760481661316962457027456394731718977185468946257678927065905515079718984552711301422168875231095366157202008609043294651173106788052591739127997269100446246034661800235290722438319050525513097181233643608107525144939599386619953824078150456924967540038724925298598981059623211974401770315458707850011832781943342374419784587198272343273290796117835067995649436922959588061020413809595663349190721877414699986362520931895007161396620154714459142570056313855531562752191391205171512128067925244234817760743964099706255316684865606530330552639400300692567529190578905407534356141534240617632248600535316070404170359184934369491517249827845135811459427709091838834593192352305759642475829254314441255698741571442273890174163512083056697477629941922830239938090376108813640063328408497149293396885285943395004868401469732507960691564243632056800910951080762989292217728408588640263674079813036019697168752173550349931401843159841510095513667036070731557928121280473192303157194887873811163103144144315772722456279845738437786027964987533785838011449487510195528115323514388689373332972219937964669290551178754343451578445705132559684279091871611679099171372150429166420923767488267955160028672744525899528854908370537269820089075142758210787522343392497905014239297908679385349276350402411944657987887227421587635051443965180689794316096564304171808401721093423922974610991605729029440734806243486714014085957024603588861168805314414443500426272712071312668702751030054727685923692877069908463295069663520125169351882450754543089513693371326753938482794810178244053062100021454736476487184897485344175209483711963818288088102567811121509013165967913673580640594805593630911269155846077389994744976813192896800910702379156374315705812816721906080091953166627438050662952456711523822660873573384652141687629741251616605746859833675522174260166664793093761852466281615808360700092338217652540307677500762516913155507583601114076153261428964752158618754523804953711065086225948064235748065403597744365490979114411967385115897773380411642747947890937357566674890139577982176478145330512624220669621105900917558817272863699165620285440339477453889401323244433489176042829402217054272408325194837799628189695688931255266965540764063529191602842125600497919747639208738673830817498110649255872099338542402842177722124721110224669269171127902638762691903841940891079649824207056235104706110054845520338878578482218515958358337573438537940132537346174786524886258389838843080537007520434167896006489098979032714455928303874262527329240303375376610414511186057064398202926260354464133256976050070923211668721767292650475408571010875464379167566627887993053410518263988602055306345176094175283576182052449691103119118511320207452288485919131202539412663755575970969047601161713108150560758640187156598100410426362487586561152992511559384506397503467237211873903893740567689044773354259989597386358768748809731540406426195411987833479516791220059216142402230356142647634667154490248227734710133635239543531498550477610989490970576392907401876264589916229449275962310557110260660452061196671819179116669200365102319840845107550684117151161634943410367387304900978383373885346049655755055936086303792628364886971532019612342079451886714115581220299362037809118897164596687439359792483570957043461970143308340368716803395246234415536870061060322289759024356116405022481211490117004876457451791971908356300238957317378851229541999343679014300752673432751852375543865542782776350784566988313172731481586039638021835203256661078593487942813074027184619620022566426496078180966977366330240861703177793081002777396140002929207936442504616691188434417052249017300591231612686985401368685425205880128443656501720782535573868105794193345005148443956118706445126570827027534015618732597597203831340059201736238404680853558022093796593108059423482609909879697915422697296230868383412230656271772586545744530121569203887503745884032699309642319003082087075324424207944227566063181135868267500151938347093624103909946569699950342807334754927777793874848842783592956799506071708556962650292965111920782376495984732566553737870477497752985618414161425173015225516694849580419360929053469589049670010071938775685378179989976728268256588411040796358749500557313888911966525761425711338656636884916468477679951108790645226857508579505183440907177022139670477171774832971875451149278347023311667058976399898556977487091562146283239098665523627725870661171784223255859922793321828452319619019520226607010721336748285702732329476582889300731666712595673458478671698222650404340697868957142468501552094417370989715365022303049346895738232473075743233146443475091565412084261659322819749035496340082040710970559615312909193179438423545584371788847071134891346495164138348077091819164797907160864334805960305016935982136954546021368125843248533532904766134292019348612481350855016762723004827902621890605310319993036390149823660345961071540429928046795760730245155717443252633425453864254846491032648932170999147655630149017548724794968604318431147424488539609943814420741578679104342061068127737539075142154303510256212090120994997976867412061070270625794889841734765436662661508263920256659028033211706148927754212756136137809308000278828014780971063025810279866470592954931365600498720097201053078984106170388776313241483057528971985890799152906769848770566879436732406177550714956689701847009227401412674762145267344380204877748255541131719087624957256186846319905999695476629394322114126394180660792806872734925081271169388348736940406828631959738322761957683845069916802691431226531563183443073915740180859161866704023440257481761467348003387096725299585643881073940980562119021523130049901922210758829987585606130795948500622023623741872797312922261651450141135242309754217957292976005838199141160043139069649429900084570414855153385142383846968132618955490253584892479853376103865693900037139954564499276285704690889000770183965408836359160725100993277015428490966084935657005027504183824405264513963808804530183472381169685570405935296130003153046903522626056795874605221052504734429399593586181365847372063179645286875101558574064607139143149239975187526300013381103620157453944477463874307697977415650756195235600918431451539111230394736410958355765595200865069742089111803964100764303672401070997405384058960429897448641263603940936680478912058040071962090796276875433161736213730242681981719250010043793186370314960519378950521276181541175736460256021345365213683155489054952056548990445796866716668662264459179990035423614152268333739783155380425421061873753512609163858729179495056130742819219017302611548964812684638032348079317344549200633293308349118444062538000518227747950770899561073088366285858407100519129836298778058629377202685568847451688142059963150082720624632153055167822559814614297054702344654528708249217902943187152816009297378476417337915725864167801319429794499840038710229366523896660708325416861636760751676390872973596631469015459187524778877620863335267982215094178847805590778807438170519681665054414598426083739882787655965367206348604482351309213759454640979517932051209444948356918327639304464721842389709841420952169535233069047424726515802198525398981345592727486161536790534519167251237239395790047372343023187940572140801527844525288926831834836536571038805657499985362382851667150237309286901072043219136068354773350021614471567042456305238200681936250493949688673993148259035877046658772481172290604648860384248364658020111379433608007979298087066219899969809357766837470307324547859194086018180551634741160600835487289611188509686671736807919857949818055937279523524778647683994115605779573354197073972164606764769177767093056825471158453911944004726331067368376036629929455742168307719220785410066354208423512075148353250641637295072333605540697337251384096258901189244438790998288466588134897025824688006500943367935742307306663931142198410175930232892707487956457110854451734755577557437599298676670876170895672138263302107546819442309682805264489816834735586722648664021040538821443663386301810278883174479790248049684207609767396492577716834542605540104318824581738756846035224902603549256093221820239965811423167780690319424766201923645756704724633551918616833732842669700327801553813008854954980319233907369967264279545815618797405595273352838646597100111495840718124956858477060305385335756491385250710566319734265178372729615527720202782988666842659668232279127680357281627419309391518468578799057951746933527280411515705921839384516357198379482087331126651822359405419653104135246427553430774400714853755045118493209862554488009457834387552423437798062986708118555193787637138672888662342112430608152534456394731741595011008420822673386018097793012650793075391470092528149860697951583407050652184503149440581224959405915837707946634674224235269343115982441991034764924535654401340481176652963342357349225659357832038205287886063064024343914924812340139559837580260772786732137171365281131967556976625166515006490506087515336533892935171535667131026961593680348139656026265186019687760949687139104038153857611183421312623550653500804824548282347825322418649883528509862835365702639714769264089044159787754185467989873360386778266532270545093258297295764890668580510633794429671383494071211561556490552668743105358364392412793677465191621381035157751108963698553906508640448085211356380392231346724445231205513303540545865870662110960310786475514319950362133812990400899067673008373910007895935849794607948837434571606304621529898289783277936720314704028387202535702475234441771040909380386821411343625255532167707571159864945387936151378804654145814137141755872846569326376005949136831931126268638293189787428725167975204260316507152582300650339988321140825827578085181813520468582521292122260953574338654017241459470988337433735269328263267572265942908136664223281801514747588857087774066950688712071760288398524106034587718694021804335068820803565115005645723882595939491568421390668114738842604835236312396856656528044056121780666102615594029010491292904901416673362040868822941918757662657436098598957633066237864117590438908093018328456942692328806395144779807420783615645372564917304990112638801141097376650931349139508269795659135905670980472742142605011139407643704647847011653525554859677239250262256747946543865782269908649941177727489794828789664088942966548810852101825960525950152554134484388118492022972824411668851116967923358617513013213993535890325773517963099243060487309315803855370727761120163840068915453175071218865266374046352059799754026018647589156500002525739733630962195001630112768069212062383220776308159334952523505967009056604459770963029501826457231166203509192030781449089886812819015805703427142675895380275980709566997481448574265823746536292092432115426948082717369203021682080694769516968498968448592264988780089001849207468289316193776564392700978600200748922763952467928233762216282377661185430400524210622194448401743971882891708079310324628742577909411588292784281633534051981091218646065568172944041774423584922530866692709954436281647509478897197770423108759898845791828182406254559185602654141939728083425146980171099824620687387482547342056368203819512327488870044086814176613426071812037319660108739056572954127097855222224361260441040007118290318487021278951951118880487269145652226818826017868695171991972596000932842701411245869372739474403308699318091226521146486835613539274378624667062379366397236703263454602556566758442538354580310617784462229882589482318648118352081135876682663816091658184492328880372251231950892009864501408656974819038031731004334030892649111046057317162852751034631951162896906778448815995376244724951152910941618332301366768039581600342194096063293480017126177974449924167722528106184732584821715899538592437467819600623897881682531676855046562856251724230333366087968496378847061645803094991525963319613516094243872850099012794673310748062232641382059274280446794847746783459522189876754196984390531494094716912841169797320358029152237564333148327844941366610338400546105575049958812966496970467504681579972763992232919603607816143252147257947034367712833023037127152091493604076250130663592787936634626998161431557957843601279293320158726161048625013600204895771981337664995302952656573774814476575754181877132223901664881763789495885586118923756297215551343080188862106235641239705161174998241234308566427688662056583954862530191409015946733297440960287791642026706128480554372426928705635061697640367042017598479446105545528258727628461205529013285665833689003270074882527951371974326572481673941015295470108696335989551141562893111503825525570820883819790092278295500492991445016564772016355402679778921237871578359266308236988992865627080652105265299514225002497376495182395494881164424128961334796058769030866306836219982291350501296947896881340969690767787425981172904543605163532140073278453327254097783721111468335428500537351697177085655006105772505119571275401816966890055858324364448699788858598942098758247281799166156988847205861413318807287147414680985804974154979429765124259749544360059561062972447580524882114943712059836451607303639417550525373312005746829877249903880441788940342302003885788147654539909952288526661601677611498649986266491789688355196933261633424092122898830948435305992338528105507926346116678074482702148769597492794424883762765594955554682150060347809110190161642455509455666161992574524725170039711362446409896454574560163900639619310019666744545015300367484206626041833796765643612865423095349089173124497920688962807861017811733598046611295470436878526853596900497456857880539784221384053800340803947717046184621629589569937686598948709539773525270444220286825847453600357175483325619101121957507822476512580211732564712168147104038957280375130031137573729606401483281075632203929171069319972042415925494849704920668956123094817155323745155373977743546949180631770496319142498760993916255916285368250373369021287622984342323337232970509800103527935460958348079060830129127399657518440337777091350543904929750311922678462795152453202732455157288806762011908274100613951902967784579698686174581120670634681692073632686391469437813458094794630058531561214748360236897718588718545223511179965957794828880903940096907870410674594102658783319646665228454053442998365642253722377576038722530106060352210160865947654926246943937350610765817017234207679217162612973179751057900816816270579186826417735675381221963402881596510332482592224062815259384896333813738174840780560178973066803440418384173424208439229436691262884786336377599245189044376019606551147501913444599202070626196669187060961996853647158618748337688824250368693510523191600996834112739741930653885403571168438858518102270987555553575913986330268216084402959772983720859521653669596561720359066849316794691043130565127322632502491014583408090475804584276587800960853826748616557861168461770320940332246521302847920643029674782447581576003157257942086790253619305512223802628999350066203388899239451618996261634784255806245544983514286097217292977811613190981698091107331482906989224942902633117020454996335094959380870781484572185996699998895578734131979334270562281541406801814817825997722187743799652425274533792673268145959157386319086231363913585321185008435369536960700660404283429119736300640036965776937694855837187024815287366180894113764712339953757888357848206436988382662729298186197966357855795969922159489921475556735811874837953179670839342616162528054482877145160996761263432195724979456005775754229974265349219681870840584645952042968929780462104716315029094365743145247997538393107767809674025891076996793122814449029107203836692499082039060567029997337068710416879000065015493627419004456466310152049103887631084231216621830326268643990663986974357860906553127632409080596521765827317093645445045051435296202878119481285271231252734496930930383491397190539297625497970414569345015580525630664786598431878167740694034852422296142362156065434733005674175257968521120337565397623465813035195919723539589599935931647279573524612943414145323351793435851862261004116283434701483694528766306499851255397136277964745853438916134260388094655000439648634577921046208510227241081280496706757396735758527505082512958504946841424995703971848018151079264043814725837937901946950416399174625575930543626832628730467983080677659540638239607350412932087002380970811226323906147514754539994144770590208167571515023377830842565948723024353171464203082891655100790988321548539651932591818861395771602636566491223358410140609768618450306610345034435601194207545985301217648612205386734008725154931533880715165220262689995824982294945679636518015466837659813233317005546662507733098747108699427975869137778233692769264262804629178791259882435168601359922878092714930651947078133907137454527917082841845802949253935599850911694854329770336694457222320768727970743752250738711138462536604138864319969961550639566265332059357363551432284286383618686865461824541399195345813320320383080916618486335227554067554321272297586682846295031760030323728835194674493763663866710684321618293906336509418179372095085866188056978092690757993954723024066927629768796762560642446755581095302951344353737171606294221093764419102239150494273791874172993196090290857406676645204287489535709465036409374279862301171585376343563882064108672070323367589926698371327730649963020006858700825540410754784061258211654844373076010566555006081047247101723367951610067818400473830380230578412631470749356634810917941546046572843964011983692392012724949582243059466781715363942182260562686198852180179595776424320875424860721107215145337002696261077283236879785718046510102714106454369268406033488563673891596709144924407864621937579257167288747429864407828994270707297051282348387498674384736599375115107260729099187817589219353630000807165230202089593740112975925164240747986094301752700182632777849001866999999944494733695390739587958040791315375130284049115011924639602792778404842691521004644456872379993753496626063390490390318436864410815375759922217464417202793334207624954140661862867509428396716649263257866177648594864916341201756485513580967890857158519501401517646707634799161303507648206407011476205282697019035060034738611256336168634154645309159770765510611911255659751055957540020352960456949319808149507116020288911766669377642673070903080128037099763671765774574121149345493898556448528519466846672101416572748531439388414750527981386430965635144502023584739700902291458420170396481266082250423163382763619065889736004593679561848032391085587640332151598036779589931194703667474964211075296413103491781481551943399294849985607838677346866238862903936202810093071029595382309109704820599918019291582642095915644016574545225304408163116972217717723853028683444286292549665277956033289287837814718392473188101148601380724762778614140441082928323991040378021402132528258928630792278207977126151484779795100614592709202802541341217782933773475163520715810149629969201463854415784648261427681005328197450376083951912194275739165581221704092239175574569506665803471013595276252064288139192640596961944703530190088422258603577238525414025302686111622706893609616090352124005165272710216233970160115306151147449501099758964435226823415328199963387760275093253503783261398423472643138914737006508907177574130675524383142679998228768944372247453090140067491044130204404029313747888894225649253379135243467634854717565221557976055654602052154631673978977244977159819332922520408034709995538790834644441990873671242970496002378706071572505715040208891921893980917242668940737948193658090848793132011236935439484643735183503550688318862592531095181316580549520311583496868499597948378058970530363071739286114936721844533000972843572946387228648973127893901974927269743899323648584263971449907744633244834770125844957425003295860023609124958440854806504169485162245981113900001818555097839079579767907006196333264203883597943988147093401553648239723927982091847001254499061928190327608009801766390683125339819333387813595459398330434818976166757738223419884706625161019942678797383668044300109451322942199078361895706858380072476431025852839666116570147195766472686744004809550593660204398347868142247607428494147248782823059372914422443861248110825480900572471321274498991373675496234901890000188148053028197280141470318358101312611980498525043020086187052555394918226138226693646659165725377754980957080058711388894171848074199674628556894088309202396786403271583494490249777146733488756103968477175525815669134426118008906282513773307368035973297321734523466793662363022058361145736796509585116560935696660802949300425963736150452538711747266975455844187912347907994484494488649386399975504970571454754960109382514054574135016996396887311135321640067810479826855197066220152794321248413063779961647205560872032665101217350563021872915468850565844991275522266246560327201538888309923648598892948902620708912185037070144473968305519025737949981206723385100654893741954823042625875234502991490270546685101014728593656028100327388049522694889890784909145683176856121541793171859229021535622703731143673696334276883493135280706817137836522583107604213334826185360617897816510111074854927694232586842938022175778453950622871928240871840037018957083629589378314477358974523639145991086158245050773030046785870529477039370041867692318082501137908964353500721323607542996449377146328785882957511367870448937138701071836759726133819889348357269790507862662096281484910897942811341706112281466707001967753946327330140902124768320947673590224947452572078994517486862001653622224283144160518246129911788654154906278293094229924888832573661553221597682117061106848894808287104675949106562066446396731048856879249468779191573586468213040883854156851492836153281950484822318233819779225273144201750741415279131583189036064491196164538945398349369168947650308657615253256199737203254139488248165432198753278463128691076797727527859826618499600092098491695261450688525496178794009328203697953715731221943220251284575733461085678711474174065071961541468780207338097030855612228013042117159792508497636297242106562433296034932569083134659039242576323048606980931191632242946047375514059252288488042422104882030463982302749677850021706880737100435956325525972701768558344767193046586637571829493133890865662715122146214574829187576688525204236811307905054828358557166387886325898621935614930878061558186149583350414562966456912630364031023517696697476657882254451785964361728645654891251063159967572034131255369107708677826632652686643620331319288192274757325392050451674885345120867001518530560071755217055772841133904600427873161716050319101155288467941786189979065039881813337584740802557941302667972480264207128594099397610869845647473918553166909947049588754123517055026179730170222005663859610806258481704054787229339920518042766248485982813202591847742417979549764031315701049018650226406813079518470652895246209128887957235691602932639333781663614459010314009357559449285687795895947081142253888941355858855736611101327663507762695300001380766968707084080636735315033080699041918200272628583592563071125686412959213288632087147253383357070237170567283939234233913910170156180050738630678529881402013483808758597250466639995121186677820696683007173344484430909486769636487390016354749675548821900195944813555906740698204880222736752383250741540158345492617887095976740571727491082753484873988097853737990897594341208173768016146649895735668127412244050424692848293528616645249051034137791116622603889702413679713990412435571948342689168678012897948376492494551734696691901063393867640859636756461659133503881806282766044912358654087869240454008437400810501910320200417494221598435255829749724686758918831231614610102449693090790739017756043715065391390873758347426216027835410461384157038252615962186530705261190897188950078009795833326408805200799585005551624887655109358252388102933726660646187406882598512726548826592608991972479760552524251019868208181227298939965441772933824778745962274809673376744850069536765494543348297180858379919003099481437145404239394201163157986735903509254989267608630568507894769446290380348816840340762290579422636844865130967783770904321573591960089427174784226603396471196453303535239445932411907224736613941010684578682577811215618503913951030409699577842436370670260603668340608818554426332562016776926003886137233008418546187032985057957757542537117516388839144849966309923297021273434819035729439524973431764186470569171559952257925680166548562062288840077930373176337368427418158867366212884989932472715235678179736025052802575043807354933192772888353926959866749001862340935972946923609796317496903230313530585604939577660915459458574634119404106482842979906536091595622012014957661068961631057966598877152591538324617944896610694542382617160944054032166227856380254785759156792319202110213206922917616857471860738444088921541091269623715696119752961610229560962782045507827203788364428837351742378076911658881764530642268939695380294142947412955951887602103811733942028419357324558077115167943572911186684240876700726764113700167655496463185335789234635645923745925071274603048777149884575065313836839019185716635720240646665992549444083715819399077450681395439353774600756296072754706021955948389040622250331910608425082207458528105033446784783843626263641831636291694796468675862671064881529612478561777226672303929202108439672228995047841103686093361829780079809055377471871164015644149458062576106215394434074195888433459404087112473709026448407271300261493469825802887861426235589601687851184402180452844405763710791917369448504601583034727937078159621726531101182297732653391668573777563343150533959110003875787488202972314207133687074622793702377260161240108269089954999466148749615398934393757871131508959981807208944950415564749244424007968379346426474807800923990272592501291218363586756879738562507019465495108495580798638562905080995679520713442909573121571961972514200115133538274139850672656154955934952809904192219443642231531775437704532735192972805586578410515437541263575329026041153789018043197670293111587430066783851401835417382971547965439578240344937585820445349207491202122661298647680572936732829115977186996845622772493028860875660865796707959978376270806416607063701763263603180026806531562458743455298156844918184862084010750082291101785628548965242099407572437949874741021692480332455090118875056971151496836788073039809353300709600841709238311164327561259996157098055257603689528445773558598900622994460517304200026946497305325529147166412464025043639799163227042842408446259803420981362694965918456313782066419207289622588467704547336076505676762896636501378786073865271811285853130853937353528614786198323740773334411624742384950953577205177634763022694728830018670331100328207544370761854319789263565989437783850367209062525582286484594007711997389091371465660705638759389677625940946755794482276843047381946312565068750175127825505809111375091903565168388817411660797855155144253154544184409417673110790016533377162949314675901150034896913265050450293152401417222372571605019067486631144666349236902285172971390478224093655618612329879325250371360943459633863619683212325906600543077869793971798058392972758823725823773514641486855387310620489046543004466223567593370031295883891261449731115808330095446472201791210454183538108309146993606518293933822634446972677063167052605579111041759600941761160906928579589087544700929164749682582554161417072475850411697964041307324499702073124040942977135779589701068447769364898338679027753105870078893072372114886366439430269520835940351616328127177654176912225114216701732052488925937647517728436713565739860543695319771347967670619299803489109083716405022417811051710506139889196226833590782397715691934643539315274935473310729186202115149151058509978632802369631854568417432415983846927557290975447812069949128989684464344515944549319770561702208813854176853275362115722677327066735390427430219018594005408500337273791458667557406571477533059918990833874013475386127765105055617773534983057390997565917990792136012745541528145162925496964879763568128350474606365074016882004281627071575362127915782333548316394053846626842683720331335720540208645990672304080753983908201783055061901469119360053089534759268369009784533706088801777349146012806696079318340016309444342015082159946283512393458290463459039832766070340424224912734923763645144835031674536269403212187509897908205628635215758556179284472776482902048368677446902035231044916719984349136688173303905204648693656600824678428872503389757043910133321107893680671822352331616175135008739827290105694915737125724677304460236569029682767750812413776710811555035982785286936831862431014991803710444521079094393674677024171790444965549591382095313218662886403800450594515035035531905360902718104034674343190647308683671064763167255593544516334941694304099399896576896229600659682362173788431999425086301333914275618094622071198715511717963277341178068901085327354832356916706544641747629033168960738778969364837814704984970830240203176524702759949891353951790902288087008473096957806814687625474163155433277712792460913865568864514898073606742335577621423707646235821465117076675719365863260650873285886778158188617579992383599056871586314686262191175010143219847854917890327740641300721119074084095712066337607048012518201906316477957185869594496882883775837187750412618750703608400790926241622824299452550420094490195170157988869154034819630510361410661772567262092605342640339552048385656805051078441593021345816817506175611167261275386917007426818183447952996110272681594012986577964153075043252634552346788331848449835417271416829994977485189886495410937922620043558607921303549162821459947496257240341359673304870961968704625327726438738154954192668242999806812761923627978573718588297846987906883296642070794063784100462019903295213069226084506058559685476934612391906742453420392850758011219586897614552571158541964712932385983224383036004830897069454729904385752639403082838166971576111878827802170571564028051015184380604282258335456236030407432541965322290406235862610998857200998228988923082469305630727479838457432099414195581370984521468175872572611396098009053317660697458096640529906342664004195141786110114213393033937053548612739448090160969367955059756436556161185628271743961814427833301222756589474752354057468580850494371080299026698679195112479217047146419052592362528007957292068772772744961218431137646804962409622062633226812513514494881755070548194960629189562824888991949892717132076441416379556462382528283936395105178738942742695164877376214597389217950242926634383744334776906291553336420272883694346307601190464826903613069812548636884880052605792570966846101173061561790901017988365943152123959580720910355107589119575705862477673788086529375756596078758111117369206778011879770538328629445663737521205160336307877761375300229915354655223347378604425091591996599501696487169214515933306214236745233223376026792227061834521481561992829271340352329794619275981565358123231532948774917673413661814148915230543574628505832498011543668932529986949967385567026715914223595862832085821305681354109649236786566988779492444980561095890367035383766578895724780452224136546748149466822646122539044312520428161442374631356243109475630748807042239183037653375238340352000493213175118904470327140282226526420581139667152878098328132378410887577119780686466361053575952624008648297495569005446369470592914839331078261310843578488181609706355920692249461055024581335041702703736439507099891048740675455891154772253295550066875975391178444090051891602487675152435047620919289650878868297803855432482980039253050459083739384406130987935364255336467477242585768960704025047822553723770424182048397320995080653972114949453796767694509415422969259986840065705857672942419672719092020711428665043985138647381840791646305143467387868437767271930674751177556418886844827915044393580274442357589208022548899664240197440387581044076659858209273729113706779678560775333362269723850977848199085047421297807480054631285586259186061538854147032516282103870636176225068619703118867065930026258189175716833925073036492756469538653133072457176603959455987131882442015018968160120699287560069588638932714657540027444674363937188239472036340059065733402218893499926624328018124974199249583776690505296218950626794940777517864418491376473849901613527345612759018844911709068747489692545794641722051899490074946490858105381107506214127559048846431269657607432894217312859669672790709202323465185980404881073166745250048578299289285236189163209059027991821536051702905071275621711667000123715886610935426162156973802468734632040462101351386559686980093517523664968862062117669648647217526832727970272234203323120289703593753609008501927921949031918189662426836308052102469690074143450698036344369840364438753582101095252640322786487135277741242236006171850925491637837072004103916555354089451136130861597941301557235095557574475465953453625710688623888632397865884187943469113556671215904653203010173705152247751769929360493814190887834149571050701470326507310025084827161854754985695819414896494754545015041514354958432927046815304451109405448860604298573450582804619658162367862052712857004689994209261834661587695331110175254222059488546939853709432828487167384551326817834233497280104401225816863884949557350400336295488602582398653004999981162149654175341890514741518998411174551298752920133610573173970344994609720101836347075614330647596200179867558331276613110065980743833003347835638720738960028697958197754444796712210819004157217617461586542840253760709071918151109303793047604227115998696583225997562764494757339818442927897439272727515156015150657850471514900724694453574049299849380108288292502099179067090701542006570887294387545106014972299467086583260518286311515031271545099749673326063550020153691328570938434632248547626839015390642684737339251899269590094383183237992192330175262182050140911127327414144487317274712707625415372189494871122582360072363411932070130609837418572309293701204647819705807676698793129981575268522695584956604503243808839025146589882172821602291020692837532952419117381065787330806448412889629679991305514092216329096904090155050687944071247849137716528960524119386104257181132600910910753196580175359246194716879433710044623220426138246788499745659461921260541650629684854423235689808362797378253003391502898080242473112560733907655202171995310062698626590437249121551263171492912315470155843067026066671067543395427110676005844259814232608206254992197904827858881492105411149155472506141270981237817479526858820306851607944800820344131367892048022725603491302952270656281843393289360872620649532340637413533529459285707862631061019578899056761750373688107987866677594837561376933022828110953494344987444474920526801291705841451511032715383761248464117146988117129908685535653841088917587494672668556418613981208950417147356719922215706715391866782821446463271769520105718425820313429995128049962263265632746152727680846856759224890644096560223561879069931656604581313281025528682586469505833091367468944652811706626893643162075736925166457732105300042685350973575643378870430271071374863141894273003364359355592342521507795557424530391881606126432459938049040748028874002539484818543357406826717061160934231844963330045814668506452365917199905680453456698722273793428272642585152775478631020352666907416273098897522844713223887096357960077979692473901779182544260599483414554176417684514880270188380290400920362736939654702713898771206687203495300181186797589906150487389038535994020026963218133558852452051800165698281424732262792475454434655442164555760970078131004703083318589828234122289546316720346479376046976202373518638460401345232111802815515323530040889662748557043042654806261640683700902439519529682186336362071592321378345736627928892690008791502817819252331840189645020541810485834014228680951574349641710745223220589084609974785567227829272841366312150341716475533962447012883764725401567050368534196151297701929430113722484707506372098254833088310046942790180067423756453450836080705965763071632198149850809901556896848106377436484532271343811130552143971303942525960368991053206290602868913337974035724786005199199708031789414367222904050237657501441423328951186266795838795316889713196463542962092076442793320150031963924928187996027879501256019938813665415751346200104047704734001518009528059681372691099308373026145580284209665849797729866319635247933091594221054345571781285928523093868044264455968096391530041584447758521870753812605198799332578813432133370593073414223092238544852843933394458887695073450891507832784789365471985982894035005370805871578216427118951302833996175140888626517227870774639623462634922067729359584562791434009231897743199561390087762830788145578007346013360811781655182266549085558578123319000571391470915879728373710016221043878127872349745957196382810183051196659103110456464092052134159462471127512152104031649483986998605182539243814616139367246468291165642752137547935458215159805141366359608752206098141749132262289735003429971469145725013930285730304338470917818430463285705499578299709809078174588364717691550752454822146185330614040017727964304784863164829011318330803163236520613928428440356348514189576431024248552236370757017457240966104525776144694031160872433579165418848977552679468982231670608398894283149353619673444279825297465042895941455114359141831081954867987076057272257132055490692489702610056414704660421901644405265240628431801824234588523253394589867493684124728031265985823007729884565607299712545931246448649850634799483730977688837215568257137627787925892828957654904095753436352702071537660365614175704489468289157705469005592947584924328779653794622713144885611006127408589123512684528215294792497976903359317848763056407028164740531311844460488140735429240359207083720984717358630938594439637276849498146088043645084043285022632267542394558415186290136604353595339490676698357479244408974705440153349106874155880405875334701762300776110972412806226109866555824966011975279837792475578848460846727431185055558661417232799156297673960945906689850414073622098069762437459053336090765286821741143652736893107902749792789555042750878672152411941364537537768402167125425990909110236498500262751483309889522348398789820841337566315724321883333365721897279543412764939950614422389379811377936618260170150510219033890734145366803400346467367524434558686972768283394020718834989737153928648874702518200794097423727620617434111927741636446503546076372888830097934273085177436129326485937588981604372201342784806685395110596294097496873054228724572594671549000173165061996898402178110954161877781937419027455531476965323234417023121658619141275274958190211412364776138714584629131465754748575791628919357323461966853414167661412303018896862956398308364314770556426034937991887023455741567031319695941980493747846668975591182885660450353052715474508321647628226304110831196425012666759620671696504962224411566500751092962958460346482244499823144897679688566395505317148495938674133400473298801004149224019386601252898747630563358890550541922945481012550476585990738992671779010400342077890879782087736516415337588676476668811585290132149955850073674901373734213416528221017139685608520070967781069969417214242843959153353182037378846879645909592832586956782613695060683867730043471069510158289935061132121555984734678521934885383499344885960436574813884838586303194710097990757109828175240211555737824319331988197604408186877416841802140677839511491239236909212612387172164010607435603202259228747210311785725292192067442389594245313422729660260819039711731392782355308113908684774555209085059675557903967031391769404234412471548784332289380661564283129374577032273426025044740074594738209189441575564210882240636721272881205026601247002979983041652761943928888793060869901634995207363498514343166261336290064072838250150078083864373352742324827955752995314984381634419134713472548597326230741559063935452426055378436505467563271828478387658014091760269828924805457349869719488809896566703154316262863720523500000058275782443714801585349010596497927685864377100202793298173741110515383188250738428705810170025675442386621200694220473134298359952708227950477852343219283566430617352857355279075885335809992370921828077130777585677924443164674969975803568665301327110405859168675920017232268245516933863477192758181457271251282297273524929944438683469753599833492904322282018583909281877615854588521092694425305749442340082642462012244575877233921291983946446502181730276268425597721545062181530087292114689789961079818047707601368639987657398744491389929910508602565155877582291410929497287487755172961295586890145162062661510601990846532052141571001210941498231833780936027614898782690444273732227468973090138016683126238785083868201297619252708286847817930293604899920332102898128443518962604631902043254597502745480498290356380798864289587585828110552841419998745499743482702824707513414395536365504709443762895238648282074704084787387723805763250783577071369926771400885896909528949109795314252196172308722133742099853868944162869773296025756101504963588990648579782492690859304255827181017147296465531021846867786908986360432822828583300262605511511831698699388297662175496831825553244759518318088900588106398024652608869377504154448078356364866950505240670782009724213119962322548679876386692376782565989284107468969725351652603714451122795483417678954476330026966785760191786562554860161665302916685847282349585605850084959510293549204966188581335401520874111227868511764135405941798756510116261745932870080839582206402715334344101597883926563410850178615392117057632573025542421382857608328636535297636236173769639132096831500664816972828578164749368714097583569836731495289722968697934933514511599483331200786681631129547165260811210370298123480767946050883066996799364054651309971922454425664495304250402402547886166818181218996357858286135032990586265053135513134892724069850778261572069858775184736083382362565119128793162890889228070101208994793386090730113294114808711556395543963127047171742219923511610872518783783007240638393729763513643401511710657022722526742562703292612406998393121515353477851690879713793615360664992293485900074059639033766885755713534927431668214681144125639445319538939486006298864218064146454470466410151566697837157999746157464402104096430591628173560180475645125899851813514262135500034426794911075780090077283656391752873445203888526066405628160448214338134990874034611940035082342517503628998981188121935831167814303677012456207349224993164898600906031312034945663625245020096841258199266092245984283304810157422161258888743258306038498481727012728194871552321338871835601193088278248764073146902734069599985880880505121254288160628895696040220738162469843637250888214901060013003899491647800434817703067743716750287370270670957642881580149886288434111201717212636593267800014671403260073111526696388225988717696289033043085289730647204122397240257674924963389292802933521585894706723050757477857801256107367420467754759842027159123527780920339739568692957191485710938857924229187476248574552121553823788745968875105313804667200495072326627047907200623140057806339856904931260909178832392358209173012291071470681415282544333521947985576390198924754548826028764735853725618591333811321997603546783214771093441900562794462448378373440146031671934780859905375126493299841882463743219280220823624320497081122851910968399078201192174642690327586035678143228449783968698848501248636960620769024786196304193433628936968393508349010966920196738090332761390298976922445838564027767366913884314733111566693652147224283258297578625392971891499104831278343728971094119386415858071648933168366110245165441099982139650465367549185451542375110549431536725333633615454767532551258343660759290775887613304816713364962105463001455674308447757856903111060678276001752262114421348106924414659706336903191854296570252573116459260527301189544611009414463605654874093749004331436254255695976368589440301067749812255046117249571471491987193534574124142859572835806233502511993778904121542830889969083834503157966014949349566877733878503293900720680736951308024696222379361962014352286229353214642932710824921062910390731681411829599637441712450452443892357381494604950532213258791720386588750909995954919920572860059002322629267897085800285874711859116724930893626085385874169532805469632792514842017213916650070552257143792385416768572026095574388257252313326568885317405534055893759987156364538112900851603276343523802752291019759622495740213589231386631632275260448176273645704660327152661441977521393995654412206294819449772354453189395331977028787745602432352393527852799918602476192844616548481096921948690442739376651394633799714435448981640593372816610752035875424369067838932686153751964262147416259120216058127626068698175978742852429039109845676346526903469543630569049354660004965616455655830237894789405260136613796250235110098185371416904808348909978381286296713287187744586990127184584771545447405938018024863477543222376139454555928599568425660553374921169838168431427943928951223343015801173236000342272304944235652303500210302035191596125489478020323453945198879153632364892123386503342272598162306449059729359515886584301985480006402712842622269320818203278961905487768992320555651498955907711995632619260709619776804215046984235122732812819142725120595524681713787632534845720687315152520816109339168782103855719297814801013167875194539148877159117664032196052274743889591966710937614032334313787861795194058021134870345901688646019491475722308399088060064028846805600959462822753981113451982707879069694533252791387437563845494245336854892991637943161402101789367908190450237343731166417354656312061741938929010654124096379261880735985257301599249475522154076149300348329934974218795035374125262412827003800872882099859335194397414587131971831190839840293728191895121693383316723599134933452497122508954055431605500225391130934870870435092701682639892933584915507765822538661072371104351383131067906151261228769143183390001475634196473615845471791921620256613189906569015696615157285974245324462193958043040569236977454877269598837802404034870028145302312476347714937800081007883668313847145343417372911581045524991031277192378453568419298259978050395736066440424242512856140338820062297386149975943424062229080018324398176378072449275756695490639474482240360896499492461274932840567283314678487598278553485823272988157766874135715732657794459107418080018169261287100697312320940413990606902785436639041316286282226881978534777131620957068439106170506997526215177568173107255053118968453674916777265269696638674738584347385928987272162941529144385771923731201520460730833946854817023932518828287551097093788422476427866081118373891263666512610821166915985016393028526352445364605913158222192167086655506906539889952383745854681742803023083314887261357399453399867720144917109153134374211791583961373106367159356949460258475341834990731906327043407488885845504365080366584276749933759046884329169741409574992711850708837487035488653856314904665439617474484464345249314469020934211866596125963165278148424323101361485366960231710964865443984697201249908929689944930348238907226322723156187689706432977044067538908548129715436507370438235957538936860276849368119145234659750093958568148860437279268196332967362696957911740654141190038473111564596196670756445079520134971151794833952560972747047158538847383366669932711480754449702739504054493434641820787365750742295945378934556124558722844557021315258587411321299603656123763604982368124932424053830485133470349900854786307622939205366941265409375174868848110690923153457135920806461358832610333344950172605581302153270800000557654776367583405513074637362709140200555441399123531805778771357713861067659684803927374787744490270379724107208143635200634480038602097952836958270402632369176969487466362704920525271627619975233841829632274198795088986495560079276354459580784192799629974719242225959385940995110762302186771064109222573605022816585441720206716182301532482814814002663350205418548640086479763853972548301651074349115401458107566497844575256700974820203159968817377133907903524809434795909485343452658654151224897721831769247993754113749381644571114922929615626573202545780049952652557271283744882592772673788252571283749259955608061509715376020029358211446849133450597473386300845291715099467469281222992548061353684219085982732417895922678217157318706050051650164926065083424244470086266656608810997972997773590521973530899871959217895532888401442522585956203298146344846855879750236244053861624589658352975651461235342078699980801019491162085037679483784255718574047140921284037112676724532701552180155568922447499465856773509775226754886614117390957609370512689687747259273763136914285084688947683643254973456997532823137790120746248779543391826077736469829423677470428792822245225322674301956037563157845476186759636264253915780221966569235291182082974288079228207870217453770024933022843092391041002116227435620435651967139592856984738133588662989118257005611386817605215528955824505376728196218866376567633170282087265149844191905258994084586502715543308459493918199838231959392615156564809189946607023495749682825986993259389168681954053976422538435492770009185971440336153274666184135301416302268987122686145421195716450571075277526599618791542774263810829066029421026534382820095002151963376216285442797663671098604417896442036785077315938564853029139686586242493210249602747519014720948174870124537258555442523427887995032714906203249240614611926434852474493817239136018564611507526580767814050139435926372910940385885694827303383237774377061099760702511220429074515292402181588784075947303086962412094258416609913146575117258680871823860199211466399156371640502871895697953142228810206189554121165621034407214433293365050293756038353385878946306698397582627626782073848507847899235876185251650217742785057715266365042189310359955977596911677164433853895451363209859830499109378675557485279068668433327720253322368171560147827161726016766399936224769469384079852487893415633614853671620391946961650758289638773047095523614074584666863609984035861904488443695307048630016675571654476652159577738767600408937189458391775220488476277226644956804109107284333002533294642335398594253153525640073359107089232829750379004460625431256150253582931974037648769853732516167443832852880756909323133123976537827028980518255885662700404091372927110481104537947785983356070703245537820078286983888470492972340123223036419679736575291424568954997319043213264438525681293520790987538268477301179810252961118024419293385205332748023448852508154888158436389566968342258859287991939898626994419991356077953857000572250395524443587880227470917319853312216916942185079270041710054944984955006810341416151263096547697448170632194702000128681994622191447602528057614732240148452332481368082307653860553145369230512516378396904862648181439447514259383486177863850832767515978523602367881499898821101762183487138231185313412715173953022057907029188133155574933462176515146885373021112876300039576095496158057163785730830124369574982050040904317463359513804516063285885831150467343436693874081986999953981112087713508289718486192448655954813059369258153709488721623063307367210134702602712315208351145218766566441885743430532616138137639030221556246570771719703409899529739659180722522250776990975711003968700920032087656582999168469886323635587706218858643042497575722877787463993741980837692309538657817078914988594985575781333373828649511679954290691284826633121805498822626267996252694154301334283904642534675347272522058567440423927417763991001185844032085023987076167614571303290920198948798393873602821437688719153234951073459559764513671326528324841410053439874127455745460535899328323133504398915248669172969794014633450881225504623905702352233110904954613731845115915172635288735560251831611818385525623832708550936303209349363432244182495214940761118744687169365078296490484996932324022741662868907835973897940344651901274741300903063546410962906775682141997731468105727119348898684103512978833231845983865176866205027938536126040628993155125397384777120526452901359513951829727497774961888665482525873077936826550851250175464624357015510601542959747367557790639982071866603551386785439299257882739236613050536480718813276488839565381683337161531253626939399394779357003786292267164975154779980775461471067368156230320653297650020553058125440031911979982808872768252490926548605549394176807573852054124661710307495431055473950247530943900656539228699904186256598872959528500097697894880126301070730989017859461755528000262278920212465394327897847648204789210072199727892367834090186930143279149688179241475529730443670800667584366770681949616745426628702745296423002726818097243011327085470291543537626417014848526986731070202051942746349574212599429629794606979125330181534142656543890423834616970959581068943402966357611536562193283074199723433745703686642863987963873077035303935292877195857963171371258948029913513860408086771484255625605711245046820731058057815235196820161323388785902557628957812173067218482227911699370625915260471605457576075961495222191549596397592908487940100753428533317573523245684487872203228413132643810159478222121349339994840889343870531962373156144104057733489750925959205650460010192269866523658159601731410488100922717825607960305565477329372124255469656325269630671214835671274285061168186538694032982078484438570897115761429604320921283562304732511535556619506497171101301733903922099829454237697016570629526499358139693815299519264462819886521842800211641946197366355750533594974246992637409816057807470644341815170346020916132453467574997837138758884173479829526532863613358601435539174037209211686678817428632402223480470386135861295074098123075986067000230686285780698207757156112451121434033084429390128806228917329764757180329027067194899234814000438578264282079822250753944409354385810461729318095382394415409403649375855692492787872049065370030272565886010805828860273923403698719391829804225086588060456781063196202978616497976523311457253674792596748482607321664221422225094312631466612722542098595573830797057938271655311168893141150698449888469426559263997047907726792204996394524840572493577779198020272156119663469223212578265294077721823203554162495918022692152720325673055837459844403367010624781043221040674767906268669991189659580354857981250758066624643766674208611620680873218339582554782134387890070999847285772459447442242659128536300182263392774789254235790778082173550195482070939203987621101792279929898592755677296080180635704374594868023587988483353583445452117628200295802304722798856253873528183878480049290570250317083024708741189913011948751845455848354323654265240100635447059327529464080201173364173170911600834865769244863350560945812621970448702706406132431420651150358634109857132732465129563654495252206666626541455414320882558046299730723246544768333637345308087987353130047820231869503520538036626192335136425188184225242735395307275850322905758928080387110651987460345048904308543650943828174887254252401831835505948229337813724274955630279385257646488182982710761544721595063347230712920927057105477403692260905527522588127401221172724074236801889051192158004792723024347479996567714713285418113059551012567237743159760443200442656879222728052323989278849253438378986650605808053117117232340745497383972037960628153078500236474648828691499018162796746534745207572605225822985036932273848327449811659930947566670079081776290857708329392383990995654630597397571448535641908356783415046406601950675594436153562711810560876626120031413992278458554325967872079212923419132260946916151405060984625496803096478586925910191429283208039357248211358697218644639947431995945719937175431225871395877031466666277150748234409695516626894279615695786736472755361722758168438842739552149516603015559155659649272353319641157466600739771944711130549471205584168164088195651094079957681526816017261590885050529714330872569700906332780793182457436500234428148554213089728615529786556383932473375142108209101672072820549702600680114761817018623454218309050080094622599018218575676094384421130430462013155660672571249854450524571628482730607454639777414320425683936739905788624825242885157105656502858076522580369128731384001661817453371381491973643183832970127832274336398563064836212451353186715868056371600227259459758529944456468229076094771544412718106593471032957507983862591018755309042006499209437934698916140223933400664150769343937753542872976592947040467448943586307818413169296715404309503397848180355666639933802315683826699017243097764424970855476320764373740825379588170164859191288556509128759481107063959465355888456377704842341364148222814909046974222246040942730352184286321558487996555556964925986175159615908577067294014966775514823376902883005160546706505353126484245977403754985912181959260914873415156201193723439557767158462562502273884995509443439839880516827563565452803469954088856997850590069000022449038340021531752172540384176136063207948701881479470808139804492827844572058755563990879918120575437633361431972526623247369252470939358493565684524838384061257561521470476124774561061167037192150070090095274374855430283544996540173866250353828893653462261200001194361714815103455770641178943979438995766746373957884410435087888838052645693569768397955046474848662265289040780480834065320872428701061020206773155897066065516857653187721219032477912854178288498576641132588729171884431657619458810271715804993815860151945252608320314198570930510843693261711273613271935898816429152401903178087303252859260203067194240031115679339681675856120894491176156464619528776727701095145046786164199842813758224266149374530651744479391957338220294657131808023679530149393101820766660556328293379903048331732541488745773915602291245907148059423204946785288661032344042882041964769545405101529141132150263808947342263802541641812424600718081705382163102152077662181799972487033844314552403002676947143688693551773075570484845022725938741609288314973414403721909118089524001372841072951127399058652977656073587379310695827060195506382902363800535320205666809760782396061596395037539386575028213069112244750447824786329649273667308263425955263217398469188445705608950927333646622904100260859781478153900795104211259528504335822790632403442101141670577364515173218381977708696261165738532724116897178601322005281210866897038488188411276241885317590868689752279047585438950843753455791058355167721130315307891111917398070418909948616963602004702142187968894143478476328932921117849311367968067693061693923467351080127210289251716233803755610717237616307858750487605094335828866874451120700709957146811064120904247154841243804617718679533119256056667595530948766162815559592010573723562168408758939497901138766389568384390586135385583684698084051616751949171788337053410752139669794021266430840421581763672694754148124718052921221718920023509990748853711518945113288584323456662479424257420191409484766788269237448571559682654298385395684928713302044632491681461173551510888771020979865903941305734411043497298500263193815707668736094622191700659010381319667574775602147039317098623764716731372794269389624791247561110138468883836945369685532310082540128109521747988406774827356361264250273586547507768783143039588594738246412981374198569030691984681766481538180924889995271238856218068943605593832968259384226144822591573141740473327774909115178369943665683244795354363655299425845903251458546328307477776066890090440537009220197468608197522594962930073645381765777395129580252374336288092754113462449830609321383266627429740211140230789401340578543913914113286752021567572225434835578752148705872094952562488088405051485731474738715930382053330444533238016083377294076030428520447268472162938781504146545648160909871845915610137000995775091631548069116785367604636345483249017116512416168573946888509078225410341005945573749000895028533832865428246975911470665661853094910346181684911561432987005991566664442883750978761085742590961312166185493974933555639101280684588661195097207692627458370516812000673100556682590926837954430902661805762807468722211682690669084951123058346003949692045549691866261186258465949745663523116074848081175753368531679092313904397555381615887443850067186253573701513791053923238068800384170495489821045479099108659513559615037745481233776004294640766673743518432954378774235646914557957293803021736318352736575022677632459886820185768046508936593252285060732140458387836071107296973592206817839805052682140880092454303882495542433513206264182768919696758616459274675641554786075836348407459836129350790836311374415417682204193149902814266387917497693209047805776841919005011556226952133141329742496576967353498532823289039075700259429085752423536384702535316869963278840673291299891362893873798240583642644763512552669474046792334374603193178067260143847970224264418705412672163714783201554285199960218396292173124412518840292271903634467054157340279644003838371753576295191048794740690409860315926701108561861423646890351044185747311447674390446534452872626043486423223013530139002240994532447386051322254443799865089185748190921006276241760003166291850248736445614703877171476738952856072592531590525300424252305257836977251188587549236882483138890017180414537110971484037113956055966814992917546858079214771760443813617138327833315201328735087891572766228142538132519247531281538213751103039596646621399646627613786464667842629774513617149928375738047913414334826720468576204002307491663606203332785162145695966819413455744038976932604649332202022433496241479953397089710577812206041949544613783256283623991486938517304404903715061705619244044919301059249612477571036527816634520507116021813085591082650530602125510638610751301103711740584300859315783432563464935132512318416626002604066952165449880145764392952407873447866313179864967610273108872220756844860701959222659467499566044136555948060986248283294544940495912895215021341856018095225682000635270842928335944374086408261939780738612098096622531163722297106114274693261059856915160210575986876066366728096774291834483536010977436165466095348395438721879711302221924505506065036944374426308644092757099414555906465003374522735869102819384822927541925943021694223724153373497977914266272658921508562118497259270382997173353521785908218674239520454874250979587497012987398695791635733140100092231746247071152385804203760348162662435498167703895679804740950532922557687613553973939075687161261221793111976806813115935059839743657767082208655903995548525726036881856170593331193513756913504987410516786200439266157153393471413582862067050900242756133699690712888940586084425686570204119812774761761773887456223677095938823430590092565488184092110546801365575455778336349536846058581251041883550440072643734157404122349978060024541543300844594204726765760221666858943880901129611873915556754178198874756667361304481559681652473187792974468385455675914686595100812023985534205020941772879015097250557875863221950995562133061791620912071401645259366870482405897738247468392767382347449269464291895190551791724176221544459404547081205692441793251003184150626279745611877464430948336920172419666694513068777550085626559932531390643613392096143051110886390494359376008071402643227155200701484371826158619450779796537160657478088812386713438994882378135818072682523081879487019156265515177566250417998662047407188090755230411133791877946573013947063511985326235350907207183551472299199298501288917417624497004746479731395545538239943075513185530695280952167185065847263415224033185481526732866848095630136530673810031100650259028621901436189487018333950540396082683043703417609556305131622489845007278332684593846359655472311371498554144115299108813068167907795701317223302568367597876585318215709024292788388817827513911224624358024366971781057462869761634737157830179870854210602591463382463887885296392664757753338569247634766987691798234191117029068179333487656316098658444311477453511091541852397675047780579996294190183286508124400909221538653028801538147490273128016495756438484754329346160444981072966979814102253742837822533259908760059093112904242522002905531054863997374596359114092150688231307838935838530195794391043986434015595734024580222704885008587957148271528948891024133248078220257488879364117929826540069456593250019381726358075685808654675930839712138514920229539744052640489712338248120193073103750014664415731728763839292643038947706503794597982753587748260911675122611737986412982855230917605111579402095953733440750366786339554506001119761390431484426389415670006157910537402858885665210464596891868261274034974536716660886579269713851283502996750845888623630702480103432999792815029736369602770668204592617232729654234372751872183123228837664100161504404828030329483350110478671142842975817929685031555138005805434253179313882512276698121217731180488622559422068463300455277967226999793271399713360150297331143213228210050196101886682959105233806025856187073303516397068273676989649152510503698051620080621075304009609669445921061909233176999481893855714629177827662558934407140646602172603222786594504555194730562854370343416037785510248135169310660926460217819132815699350368480078669092278549488547839578047373498027981436501610857518335189911818418678285332611548745077435981542084475244437642966403755163478819576988393796168524593194917777818766040426987855840311191412077991565998436910997717830812992218208124149677067247401966803716213238625329119410701150800217439302651435969361508254587483903282747573977484341727813108872619314899436471696806877570434276181243526718123108666765161848843301516434395617182801732331690784947323084821940913519281724400325933500962276551710541797756338709618846722842799825158247982967792977361606830465569095032041851007401144307391696600945206558755099063978376097937925259853848847334956701035334291070110267112622760281820674282004120074515963073428551396049731641630598676681234707340419817798974369099548500528392462167337501667889093646825592349073143758655730291906719399621588167358555148924754303095727946880134914936346891170651240462713757139485431995073904652553844420077946712652833369554240174234089946725816440862788052235818933990451605702219668879319032191000740069495239795742611156502802419937923598597179460722267204538063040383287836261724607025954486461730345245227488702992766017556841722610930878924190703369232007302037460348670501108901529935056219299640316170254970502949689811064304815926852762133390338177217315090541801608819114568327697451443683809415492495325210791638173418987134565219017842861401479730442533028742858985756883591546054192231079315969147045730132960722331437057820618696307021349947649028140590658560481389785052702580249093762594134128869888788292955160679815962561461168706026443642397751578529487628927315123807773536325065981612148186586255621744454131475851745730385629894681876846516157720628349544881426972624069253150128933977028483908054535975642281102568374045987912738893659550319175275726950837401605976558638093568711551671487968203829811525026076403902210849326821086920702546643227374947717403798973966082909691212022883358486581494765046469963230926204859408588772747460867193945337362779722301358394181780928218052434285272826243825348527989850388228727906264948145398861784497098811143385204271837198874804591814139582666027328992872363524877002017150721607390066907151213506261729646030645892284865716149440076240612051492714313255551935457265245810445584302360996977712917017153336418029806581621679557972224859939498633505457425896377199874294272748640585290742768362225204835171436279671543703308422017661284465283433223907847706890082948626745589139715161213078612903691916067290252063861789172349597001370673882466574234664003478002545435969695713054815053993529315568651596681905980783401010463845311833697650152913177057164558987825950512741191907621353277574750160467961039309977055587234798407616262553341739870906942587138232827849780656522215842590145584588575932608977143063961656771021520186392522621933945059791062913495711200439060339561907989733157265793557559723842249371266582990014513958745738422845275374901166570683661745644578813075770457824140592351995720233753171977580416564213561943674612312523004830615559280805917787145471269967047016371440359663660110651474550133307168645305065474605787519603764612509787486044053484675267110080223075476368589579721989509883160108952069218831431110412909060736598539746577493764293398443240454777076959511714800954768608859509126141170726405537499316722729823386176614260994496187328192373653258597342675459160153970505865979770899744435542488297961541565419557014680430140166234064740211637615145819678582363354723921405957733254803468441387963586184502964761265910824140792153351421541943592587667349571888569357053228882399663208560051104466980286084207649455648258190526546795147220088417825285950160410841206308317349402460407085834703521383304141185521406550845314264598981867141447823903983549275174472179282714211488725966917398307128120091904722915066833160033458977037314984037154094590403788275879072025162664596766522704115846487549629290913308675197315425620748187695704146248555949400418572228065832191103652552215042597014230603096385487893848880525103238758121517100503945395798880772114537669004023412523071918255094983981321867813935281580869129724446388426021181964630159207077375324839472388590204775990086061381887687483294131258719000559714625631851940393622206017322798517321590903029156217001571419543348118443662918710547938447338626531319809619056493509607514546929081289102806876788901564271505000141000031459699367370220847186026759258851135127222360947323018045778782145390059089738156882267046165525575149334780078518223811021616002389728602586636678388187583442918946842804972283070429747237334747134000084177347061708094765658782689344386002911158360166060191845845127203387345047092763554283849179751700424989446605512812241354290734788351472970881231735204389539770457760974685892520846335597856787557834822677723132114577684963124811375120089534115488539480174750261572869767984966982737989662398958475670005510456387946201693536181549478873767564689719980310283142383299182307526550535488209556754809280562342938722633773821422887230986034914470893101899476956494494194610624661876174187253352089443216484041026546606918562160425425754536485599133651603429779149366185746397249882292780406659414526394202457879896798036898964860902678869044933953534115765354188851392608963119442812086074690083875763802444084749414180240463613744463851825480270733416939026960155987664682303199532459611091203078287534790073849506278749307449593200921906118462364576210378741863538285460231195753731487594536284692130589264681123111118221449637495844043392042888454555291711880501130789059990932749133272026396369692944986461425978417266288370076477760780869302960734055159294343903601729210591254373642708182399821331242077080157692650199287330691358981759528850122342374672330609673389874164537377716529555766308275194207953526214353858658742463352562153489294415903516628900295452094755349455618089071376208398736263161723774785206772092249351665115157755743895685959555429898270298870316953666666322932901625049080124920734947859224713742031168431046518897765550401354708469636009401660844010962716804780863172513718143637343734035983645230144818448756613589083294242879992055841187892298126935852714687332796164687672063034811021218085639899218147577363939950458434012372423637929627604500880808200312750103542359036218448727214566162014654175179343111567760192911040004899004980394166134601576731128721556391442764789680523415775395769357626973652144282779228197564745662338914797632291522648684185551470366303392082332000300939209035128933241001018611377359217946847004691898709206981706387853288788243752369011021206733576057344094979810893645384539532927714666005083732042488399728101751991407067613847322669553282041842064090984885344299031927054952901598067194258150229014235255417796026302391860878074236567289186274084549306754770705663049596326682296661615809321624579468363325816314863071135703151739548092952959461406992457825031597031887125883705231887582212720602790439677891357070885141196011106076894243238268584502591181886767542372036598987196586724996825914398979753057212152728593559898934053893866692061536650017587882038689953145339530601271508301843294313141115673383541789170545340495556581835240611402896694591557257335838336553159771034826442513171973459340032458510926687169583427827340647824584241416100706515189373363010370936989586682545490617951256354793107111029509029181446459685092968672051531991143792155907849751764234776860058997122041732637347542941503488694660839915387547557342894950761073544129278496408660984751659934357511527768476740045743343029191349456214559561018841137702455409745510310754916251286246974670278397855743003614689674114478769760879323211746919559474105446242527281952475025816635636103418174009624519991826273076209601019410313787250583003972277804897287659532028593266806265482997942082780782381011071565703745499778502362050568574225300710123329646536826497997422312552963146188406798685144322263791727093154439653990246111347716183511010135338639192762855301762592904760308693244134352735571668293791496826415421944949780040142760482240694462199426991801553849659379625547245491482678108578460027134189530150836873242624344215406759729277744196466723020395205106874243438607297056633249023650887520584406475378758187183218217389948197336101688497344732382147509989158436918212062132297064619802439972667794614700166349492805508909937493030322540342204086085311350423511995771331101969182088326031912781918109705255765875619342875229087607182047758812507802027977150484049014197671782864784369695867620196351813645500614792966162754529818409627470807414692144318420438455087140613618618391992461767976026376820443021157005676207802359483107368598791322498170989093049709177067333781071422088125582136912472933895388860929788426432290589406906728026560882333567383783549162679437351527712722020116085101898641300851006374069027281607376907275896338857455969253517603236315892031605433533299538876139341328271486550634491288548737135183849819645079211684547908234378471346501901550232390362926121967660056534152653343616749031038987853969122826757060573669215930940480653006690162284648690520328111326787252812782661846465101673986749542575868703221668129288392206776534118753208057285032965566210709183136171302650935163315377451048236553763193370709721814913622037760993947006402757991863252952858543960556302705773557881099352847580171929830249531232791886081373839585275707711702064627594675625859398397123556282724334065899511786525728303278060705921367600414369784145587390065898521632081254745544360020826843082489058583923572213400884401311375994255134627637797269588664646924255446324416875581742967285770290633567300527014609837779174851781621600035839374700758531697499724020555952182135067449011940954899787099529208856545848787667581809976047550709746374728377601699583529945217745505838598359634280215994837691093687228201088974025210841274633915007053804535522235190943462020529177528465350103197825133429162194892056895129568901106763183525816666412534806693162218713822813373367240199099042136794770669991166382596311456603771496170586989894756412388526495372528292151270301819016151872788836702160887129387698281964300227501245018315336024118984354757467345416486477205627472476617345927930825625569654433417322218114733869739505515812197087978375483107074678317354529750874574879397838468177850322603805718773333215882138197677729292675439674031759650188134757493511121852723027995205187304491792966559938709413154380120823129498980907675236148912702590956651048381978436563363943827945060985610053596002262296925769553916299028019546135351697191874877853081459484040576046940266892747099846597068130102264417680977573346369335959027202208979484804305370132071092439977478176021130468848681179778021023046936247191503373258573110740343287599336690350633855148770283829587383344162776304852201579722685175935110663048785874971323102964612589831486163961514054237370207110867085267540152388554869342453479814883912619088598012443986899602909160540693213583218662177884439661377578635269259087546314195369487031023253799547468681021379760487432392553716376884524264415827750438568630742889769288502225812987644401179290444824489988431331903820495190567397685524137362601031960758629442237985269140803481899449769936482803377562151847718903198115882038484003486988870528865248886874492516385504198798143245232529802053184419422733231012448258253234683513680743149711767039260741267325049410873718173340080936201337342246597941926111574237740249721098359652091508214467980279873424848305890697774268757129049835246516908083230828715297387216869541532501062888380623994057515220069175750676066434176398509515595406257115629105792722686641731263251772377011507669365458811951935569031128733112243139978610718190611005901961056249126695716207666580036753623815219501885623595874890017762294536019163057850138192873160196778229560736757640525134825793138672682483074749034894534614318905509401656684408784838995879729519262789988626730213910359173547281651868857625691025941536053074934004898298843606797651837662870155911200803404193565449723842291067346103974229023432650948202092554933509395149384135998143692557047944932213395057057579296574032927083845123701991506064392615168871212748452711213024836748819838591639059142592783637200480379858342596710721230830557860855822338425082218381290330134173011458389402998844216944061493225333551213215398286645968909097533735762367068267818526935376033580042254201127045826964207945945136172530107385846673826236439104557681118780103536719409570783024217359350483664364071529155873016873271119828661204261006768436763508890637970992918035290207141911255874301886762814571203837163849621833264454745591348701787695741201808807004045047239246666806526317844365802310051299623982665166296756325639628746156798753500267350351060681507661275139127397233805534079926332264732169851051729386638007277939024144357961963788571594435997528891072559907954371393605511993970351348822992724654336945199175029849694515465402471892751520335420623577933922114169789617198997755522831554669853314836436956116915836727678055162269372763031397289994368780447505878097595731971888008047051427878518714011847263746796880923099036690380320657215338690272606751130683658228131548115766464093673724238861592938154766537726636895845878520750101267748558567762893203291210242930955574701314096218128990083082343965140642304396330982075740353375277271617112882298777361927925052074228403980208821310541672272305322057126643688215467794835237735817918405969019932120168466897376022764508669862034305772632979028456601653220824036323742568692381922480772862184730273554509868059731847963076116734459879956977093129748431864202651259774479669014206630559510583513081592379301493431315999631586960722711744228029299551012270322783959811605267514363468772209584784857545691111353864002679407933110177662566735376025446747910487448742459547783055840299563198475998189790263807995157824032429743033118844958573373599858954259578088529342024695830701564907664971385479919609157149027229778860346416674594445767252035682049485530275281259753278589153839558598664986391612463776055375236102647225780753379298126597850180222506653810000197792015372229529553537223416737806181408156222849052112673451808350917816113121387262323587610434203148476454539516915113699556167344735423819491167549673409707020289926298753715956058945216285077004660737251887982143906035296033109138414158544587327971465488086389781043279216129771848446688838752220203411521752160880103848200063200038015846995583680422971986646275962955641020648084735257841061929216982259225903360324259724617776331989248086971195087858754252630914618121725169749373545030390003454340664180831393238603117764494190034400136314907418960696013465893147968253478210626749510398780777075184806712074727327057736101740195769620340899505988564767039606373119601786005261824849939108108545692930567877065891830167418194914268710163389473069391051319281758923003472577965051177627051568932476699551538239874185431920064065538675537729929245097790431971226798329973100572244342633739761482756203879947609097528893152910487786677371614612605477891206941396001200337843620416217935955172815907513646503410938672455999760917717743155216996352021493267402966083547448451241724465015630934107937934783273053586283832579408568153061592553285228609224816108329781410836437565131795909875625176372601834266765966465496744254729674572695061895673688202013787566246180476540844667475387403346592775022160871647399779791413977189503937599604860589646640784843680760424319178022851266912496605421115250591614220344293702431933935288169546272576829922476820407594501432056183121914468550130958404724889666187036488548972573120518114397448387667766951398249263176614030223112302780011691226196965911090307384809531484824153204972044892426963344300926413037092291186419380332112351564616763845895206609862287203380590035161227059223258100862392678770013316743161689379177207464823358968654178904292364055835793341384589537975102896549954214197643446519045692064531076724160965232742706322424839483083153924286596325295685573466861775014197154663226070194194160049877292529877714618257009840317511285282949116179454459002218368673828399413341112370833913110052625903817103244176434473781877334984501527170442380114568792408742368170400752703094947799983040064250904340561965072404903382443867063281737952626589466371885964105662156168223559933375243785517426638810328337253174255850959103697435074057994019211103987879962924204550011236376807754600352041316316937226087602852785132863846408560328382387572286518236106536444431222040889466011544779017174121495219000141448486951242279938625710474854501985928420459304725200465547531358466020828987499090180751079890421641862061471434140792353180309472818141074712985188689228417907502186903099686592247506221153486293544166235927328324639179807901748713995372893098882383468642584533317593826410576771020524498230227899363750864667331712008983809959914354906809598258913161533660018233459055106919991922254460522553194437781012713402913975151074916202648508669115135361301208367232358020426401066478679184966794372593606341321261768034867103712109311032572782891858664523101807772888781796925692873002897810875303160601887261253388212393441979244424379416387533083005597732151715580995721007991347145730324345733423965411206302453489580665241133379414053362701211399299909309865135396171027439804431653564215610335592900236018185618204112105192027588406083223046894139014094812092146208780066566468102488177423269351585358429584143697028090962243769341753849108374895616231766376081853182489340518157611033378454650582857064871587729070611017533964757276153449993010544906499783505362356400805935612437172503344458705096574978207860306487968355986588190044366006892389182642572147695410566231840680372870731227420690089438241262871024463299237887581810088727210502948361109393344228893528493585241525211704159601781946476344051180890599389258122503300405231945730321566803656474226005740014930118906737620614244305223441949180646321358924075549594393703670604479047766132201679762900123329617385345751058926946493511230575124951289773338733375068777200671067007987708757851177163755714593959862151584351001344196091995948427362852617987987728689584830796056948046651359141384839634819023628534296639036809984610906727239236264918820346910789568364219745558101007077595929676545185876425670240918754623080463960046510887373250656546242228867482531836841926480564383367030813874684464636894319705414054404311778412607484674784927622066913623372346349977336945843668240054861181945716339406676365214241037051235371755593557904443099313855269552383436868186272700671899061331082174601849071684494436742744143577932434709042688691041993091424195913848856718202575567464395305493316175183274985410433512099111605492313172095601916985430008799614418928251776336255745539864738875214854832902793441587384892658821191931860115886880331327291852421749229435061205882700940556434880394555432709110826260433654210243622612192899739640293435273212391246785658420877723768554185002316762615528256113299322760921367712919261330996383512563160165164333178206837223152986277353295131674717330098156283123491572990581054505815251299440042374220455363809566572028336638271592181143914891464076956240592773182719980386488438773892195967646670681331686861447592777577584178009322232578259465463061091904638199119343227124057490976708913588828319956624943266771280069437891651790865094144571502328603485938923167698164974519285842596943120846422424189931057156103510573930513844135903932578165776407112439997672255695360013387324247148560205460932909837344771415685976651113591148774145543008887628453115678231974201320997203778145424681373070594146382780472031322744407033967927843758763088910309925315478648702795880084126278760554312996932250700608527482634100464236397327041402209569649697117483949050409835293511306799511386654542347218060750318638145694700460507331451724817864812022667672764343599212461017643086402255089141628951389396202637941711958864441640927594082489202652680125868893771009879385086570945492485831772540491206707909021625932972951312874755882786803942487481472147106578901232085990939879802717904787366516983616366325476411677481623906815572034264156921088718141880098254416760740423828064701695765787510479976749147244066019029227651672636343664126573557858831561889407420935314755251501098636917292975088292543249723370931782019282992467315349823037195474503699349563176502147468818043645305373714881268751265767578927885298601735871875902968940515102010236010817335241295020572813884780966992016017046966436011806599185121938926577086297348416252470275316781377497821635030406621092754278444815394264088053665053599989784930408804853943302669110631628729419340301776407456983314506976712810453119012530239064353499975641026398214584687696455969114510330783722095659756641884695674460149731219878799838608843684938010114596944189147998530740969120636473493394171066514098063752207048924666566701470435833857651724649875226100031731998856916378717366093296812285239147316709588758690570721435999997084255017773858379966514332494472770594886790814412183200996533532050262987085542727240832993924670048157722920279520814522524733716907311548639615335742152398271574656262007432427417992816588126527107848505613472474001025773885901164772945068460135950277270732814735711185334507585615765345713808740585125360644355132183549434830496712726553727443492746547297391268527896809809723640038579658507216174829530382341393313925020226178523946240495171618854696368704145385217443788733875402633818860221318022756554166103419558940017613264242606461893053152549982397109559659522339237525166223339102022754136955102107030900278650273174099915106383478058607321553522604744984056255951930838344782062669182041183091096616000986709681302672940462148115729480311652531545236786397309162631621660233983661927178776219874158268085197454879559516299825376119024923545912516767655216762000945017977007517993923262357574523652520485826040607643682607934893921440120844162595317822820671465079036626046933521564695472583745267715523993856683903420783935831107626104949904620996548126485924107660430366908922533523575994462285081491016092825309607686763883569843012446782998461777515300311854545928443397349599284977214049306160860107741209214226972218524693657935755029917118667828478480361324303917096337606864245470171957818418019351631222450915534300835580252974408268249905800651525687494021521518588790250956964749456198781924156396261469961827872375519524359018497660471232466568475279294880692594979190448314783690865214252589403846374697225906577017048582331645770828094978014349890240070120313653542646351898674909390947372463177029723820313999673310560558584957630708436603360413948088024598646061830485518601197432946380573920443692088496152315574684093177718101521397261960871728415413967155906468287203202915218188285700406656412184760473248687145873551163457751880601619548375765779372886691607264766377061724276777530307881555783267865698501603603013565341593392483206635609573628603316019727874973897999908761437177298654915678021778505007329704817706723652488987178290497776109590995351613014274756728736686866472255981686382769014583243763080298814350248764932659044121226902102542774240428572619455561431196967120838051087725469386888602661104398383675025273915648595987244712940214412927184151735030194461055447368032074473728442206105093521268969708615081048942556544053842801992502771424475785589176579445807120302068026969506906144048186247433448967567064294566662757047196206668929344837850660241653234576463329621888808827561789948338106844611112329693422624180319013759491699342468832546208420479821399899796437703803687178677150448603400598098501225559069631021317258502513129265437036311962266424657533466720029568114149645014293531984838770781304449210359216935651363099083529928622688063959763741411546734240123650712494488117744583756321180562227068633591747629941321764059019962411973457394583053377522016267238876131520471240010809159156601618321922135747834332151271643971707887273955331951800052589682083656181887704357522938208342747624548379248285423982770012095993939477200579205394056053030047877460033209659285454687182551395436614884757975076198319235993863505937114039474157667118713651119413809259666300076126025884491907657731933836612318215542136543657522335051128524088108959599385231440538577502169592799478885066056590398680298110098516012195412662002198029073903532361617425230324396382591459467635445375090954855321292638729161856983781846663794102202897903689454473038811775148231020311060595058940057905937878826490404370298576382798668147655969049566249974261883494698494204032028105995838895080650872856566336751173860959730549716819573537589097701571357137784144786657725587186419038111710441180183073067251844880190985476665971497813951671881636242274076193449431965518994023823545675354211789298534425421981337729513401280029766695578934546881893574452080991984059658366912699216332163209096973833335164367210286028990116392188513048279923901125655793700150528056288343192464716724898043300823385625217996376655421817082580879859823668421103665852954593210203161645886331878023639518203878261206818691339593495214823752398200866549817351316902109100318082890825275298866236533315799637214234305792816605633568079317409541430125774397322949848197240000028759237323846641679490497153971127473420965480464139171368237784922059324242699321820493442571291463256150804417000089097686179037641816140259065849560690912874630963197172804215678000682415608447185896543536162133344859206746324604019848398953067554997213321357964779294836010763811604519640417890176110824304913196866332928593034270702427999006719430685907126145483737077650010365763058377605991439114318734571249185079508382550782594866484864835602297207774345003161034630248080634119202436938213268919969871349090840749714706522500812863300231099086403237033967594613873182000804827568644287622929182939931310779642941547382872383722274483456640448192402856362904657806464140000520048069024065544939580493052177340188384756633449589140053712421254982975396041107405799398892372664319813557952568509166994776025892976109833956952293865568990185932487176901849076028945188963887068895953108389633617391117420406669570625651341455557772764123465950744963876883747132588837958421844437041046439059196562300594947334834406525866227958141415943833740962295032985088156176485440586022912168528360050235925237647119196206053142268461494996659650658744103733562626326620410293685585086008500007580683457157836517465250384979097104323655411180582052785803909040920413696051806535413025863187704406403361299278239752885033236423515657156568014829358834887608085733721797974597329696239400482196494163961511907600711053080502475319973689117179020165846257276614440350885639826404826325782671147983104304438095213660607309877461431672869158578824708532723412417004551354350486812532754824671397594455561905528948849290983156604485545525213198648840379341333184945514016742241219205128027529623960973751273705731868641981968935486308944192871075640864332213330818109866640003628436502780079225323294145267562583276623418033756899052753449357099749383370779295485264807741316772695873864287489703898117770807721444848881360242738514646778491260683375353441984006120940050941889121267261455296487931222667971885549293632946600368401184693693596977778244156936047583085034758317188168838592660147948015217579763109412898484999946023820854518893928767950935250322257395289490197470457462260026869554105157435666777959374557534212746943068582010275181042527667912388663108842456449286832872311989267467323585773267683481419717552251158242473853152417710485943262682767614954603242615495707882384791218751782109529676051578743439913509148093476071712554125670659191509717399650858116854331874891545686532434772693095055814545787264510661324701847780883352062580363901037476658611595817814766307800435876766310858177288569125077795945759425598664926794216631881791133384528312026644206113586473460156525559784252510361838350706174845074586272565735049407663457486866147595024354501280540416619757617558980162034656569126461478562052576691522188547552481033114686673844490341448931752502446280470189227371923719031435389580585298005096471591639764518681790390781312943864011644995130223555242249240810192061770634226525704389419037462242148717600941337697231795776357639645355349127324640118749141094157243078358173920895617562661073859893229076491818863301061011761886580379246932010473579166176074963216119895169882271305235815151479836182078127653182176168859096226747706726684545011972913161086703151677714476103457171193959912249743103966847264664820754972862019243204946688971784997244235722138427192679695448250463125298547772535214916445234107444644559165859303454779858911067746870181356347239951391406407555542426291377115573144075161728838370590001685956852648905127432716887110021870098686832791224634887511917374275601360041475278690463771582836870818977424260246360404952569796084313697801223895849412793866892973314100304869248141486286547066814371008312837386480651781641442805612876915265199023443695141861011890480732657889036271054312382931290325109986703839688287296604686354586075883490597081227325822059064799999938461104537688755296120999506314819068603115308506964383005221850244766399268131364583561119994076050142729705830690687035973269905445916158508246939053410387177006840680531565892045275300267078972654254035972061689256885749082059688765874617974539227435614890546749496250339430758607006299778326258808880489030427725466506685487982069516492132787687806171756449968513999301061058046083413530711295156840475635621260604926931509564702903184751451185027666262748701196778238153082158483559850469065115138699092584119046768936846152069528389471128952705699321664630299290763574608692921812630421619609481156783285672002683477451006648552994346182995054591243483016475508713658777779713579057925780120583734399528385031793045625221089700096562688841008615510104182092898064118403756275558393237872314033958929043850281207844902050973185535219884191383441738851053969623765521244744007676748790339985615829345365683957456051363328916064759410475912054539386789008260391653692324571620590815872531034650280702382024752375724606655336309055962154994873007854295004079454125346755375904454285612889612149099470114910896545210136108458071210432553409360625935714505826530274427018587320149022499383458115713108096987731946939741183998045147768753918275885551485916380375057762593940445985669393364739619427427438799656697104292621740904243278363619749637472112200960932310712015971614081325260054169617807233385757906612986633429519659275928492337812393971751057789170214525280383495457308411146535343146891049455983519141792552784545378592778431946823076735835861029000742702638119214500286865926218911292528651444805566806210088986069803412354251202899878938744057279562542752672076572843877152850473056027924076614016461553899105719650174031305452658949397270455410453417186461586437910946500658928827904985068088255872512308676608599422978635634611420214056428109538713420740861377560196580074003006410148885414816855295064764571672092345419930772888213250019861752119690438789139589266404955875147478627412969599244809012314006344000903786555931337844557507144981190590195004719585013206233345293112677227729744514230482689654642446229637733058174495740666406833567496534723727421269614951420564559128943503469579861926271101710168553235429216850758260170035713982452209763135790646301647092213191086230290651099564580887756321509786013337859033662447999020691319279067252190841129348481302755510269667726631521544915777419446921920754945691796264361404261473064982132754910844685368248830987327607090558372616700662126607165419136405552721086908324055974483507232879753745994001815907355190615555656368637184690584509358913644760543302639522016923788664648180539361685972555658860731874032295155877076966287764068671585235498526955621153019548801903295891375577985526694697022441191026497635429473406238467563029709773120251378988081747237079209608831082256912754045239140195529187587650523535770842146279597807661569724531770027276292764912582047592499848452191557995679282701624998745596314038133747161580429302350033654004194740293710354029327869189846911601564908484324674103558801916185122499141209227795818960777112384183371318966235638673118972322965570702814192140359068890129499845518590811323197637232976249938122318292933869036773292482367995218937022568913816326145994222374833109760004801351500057167355815803824946546584521466128658221607349314378535867227514770462572976783483319505551031275686165499698802024786764139857906886931882420409486446658772629076515254606147217268891373139561372611014904986624169443970773453404569725478900392210541483018680183170324121915083551445537308049012882164178046996619242852549061248580442610602593382157117338873633494460873438437619557608053213120197633339734172969748352885538028752242734872170660391633458907727701193552091785153447945846209030794017890001086381950998704333793255184575414093905999531613616132714636109891715149415069269263161104902684975042500760648250363977217777793549157599023565609778015652536873330062586731323307414585515708984689184311164989841181500452634790807920114629184998469587258564530276526440843176119329201781178534797110180793989714407071161839305776555250947171406403548194875736331293586029945103665381698714743394149191228700168600685816090761704621234876878492067609883560576191508543270323929771075904897499039864743797815703884514614264814373535618285686592586793479722169934713657213649726101414785464412987668484653393301035032565654403670536037042605164003635051502825703961888719544262582704111641227208971049380673071852988261296630944629484049971544359122566984411742331977135652602350544018915035732575052564779141860314959815623195336290754233244685405764600979318474925485156443274480593948321465487857774588734362074159372030689868137428835184581561431102272052547845735444494793553752170213312345891983425454122005423836060714882164710434025533519374904597243857511948382593480782231981118116289472304381311009660369461732601418562481882992587963151031220764827191639463122529244365215768309927428806127605385747897382168189224298302472624258628092170216759961743804785717283146471351330031576510856546070978327293209524928131790287383395505470400053392306418822437265260189483400563359292421349683449193724516986160658921596679214962031854244602217333265900893684468466012319345343622876134666907803537722277988677299935680440023015773837614708413177504712460158090010593573456909116593895350044335739297972596748933539898425321487364918180361744714969293292311729765348500504440023725415183024884197294040706838047103508550462902212341951512795997299117905125398585695869491030682829857213732441653606932535727806614855090291504086893182239817120225563032095808309958173216024719939604369084283431733723706063014671109259576286622699649753415974327916970625962419619203344800891439585877516711239469396990105130262445166600148126797007416832869907175612397924237043596666897970785149632283495459482946619456974629137486928760434129374126473262917871913724545447647531660252273804520858431281505606503848569437747045897504400318749374328945395949277965586509895064024216213839812016083928988780355837921130319201256691024672279259987572622894180598539312479276185407502695802851492106647797814665159678300697571681868173923943315418045678398267281129943908279093364038379076137233529540663470081956419012557022293102772104220161345965009869287008186680930418036715934247759755608735488165258660163427321611734495668370586600757584381448559480181391754923483998685476114841973559205049897343395812170384454393743672252341019571971765596666563215262239373299578608889960919603131469781289082916585965092419138112317869473132912776442213237730869998777778835577715320226160513701289816088621973696076657991751703552018032585116585616013498612925735845553343055515073318087292806800532734775347838385703365231088743911274014278096583783320855933168001609163401697165428007376169676801852569657007419540536487287446489950972615882660248706970197808787728233347806800907301976833442309435147466395468903203034000369633720423803385435250129285464982257364023045992590901686624864930763378383459676813989472179853979738361776653865970816419650958131240625810693602405998952798988832261883709280240500726196522272886848546836489425331744840499807466367937465204664615798761700316884271462744535502895857136757532791711221730314433985379837925053230107004101022211776268006465708337304863278256220550453224684806841909145375573459325007416964464481761737525211987000073916635759283619174875637109728664611849171422591638544350214255771715963331562612186323112138000872792525235612608904098735706664696945402293277574040588566113388318149251509184026476170902478232794727447297286979885827779328050472201833708756801263819992474855466441218607988360204102791764411162464524645306421352932580711352196205626311930613764856930538229112768239887782213601950874036383436683197407899404958610046339205376677353314893964943290224987143058273881663024406462368267531040299983010891912109419694521982867732294639345962000664892715858483849840346104233426483469276081558462092871350765706493483252628455997666824014351580132451067191406959084662621828594780055104075341889346914820948800978904891557677527793821208144531658957609118905828562729576216652726679980934417518941109570524893370445363697968300178012844376425255752109405939602205775158459184789388024669508626413535695543504917424661749408360934284477655838386826291794252925114925705867664865081268514981114156830607380385246584405861703973891542790030389097604632918077200907286214796042313468470327131508408933111091284456843822458057608991267785846087268368376711528695960847405895403611387761212122682523879075899114876933727283197021365276381551652000000451330528406102409543587946224237033662211322805196551316787556630713867697505215606629028608240834855670004279864759448578711637351429492267248915909330183912578134485571976943952108825606315274739299503861477719131082007786048470644777018373925096175382643633782980748558341974835422230210987729527419737666900435797998413581791346635865099228313965737058801392603041106516570873517629536016789269686763386019767397843581805118944649825286102848684849568165216309102852943255704936665687415349607979055086984477471748427769893155473276160983159780904722895937428856893017125482978073901768621595665230669230612349024233891689422305156893488864315020531067929667759917572630932347158233594562561896303998759729663553516170143143737241270553309357955978651799526170322003489064123566955426487421240956780826141021940377535187959641635810729056331191226686891748356286503146437501170345248282619787799228822863154864911540305056256825690280479373193893330262381955552104695183056877661010425099659562191192965512223940703058858038397326271447108515569087533654752033533214699768117665307698182939367614775943438588192578559507259013038957891125008700477890558937780721445113422372456995254165964081708778015799287482033032409374865378316478796284676996223078878055926286415269360706397148713786857045382456833263916931028435215485020392961200569980528498598480064692354008231281156691784384896917819945521179197759654059414817753351472766434756272382762272643301674303446131366288470647831823382771583508352131437494210740267249374015810707677155873024935005426970156521037087204263905666065952966116718015193216605956426007357906975605283697144200465687483115646326139959414670175292133700913447387311423008586525782119348789622647059238712224445372467232924262343197091730787115250764509284794547247486522801882944903095069713504514188672298589021354457278177612389049328816117969234860284107592698125094600463015511233299812891235724017317807169612368630421415656870120110165407767240826497424576842416378207571244547211413335225041162088877088502745046574012542336062532677354441258421285322017246265660633718873418175626995132965540172831307315586307401883503836960149304624996174500233163413701898124135981031570831825924493519672023313815016521661458714583618330974503093135748028632874786556419009106619651224399681943215375059318134963050616780684258529701259275438457703489007178917426780335968400770449537778574999928884868534135603299549762566355410322374446170707782310590836538618316036462201461329601806633685916225038983647267154018302403664939555527009438388067780774222964890789847092705279294233515778945864309991337792776031645498300996778666962055799278325344948243317686967298842646677634222319437283792162368345294275977506391574460294670764870270783863559348306072851178096848696834979689425582851853200922738707096978601741442510952149925892869902268002012416458077108030436365075663768043343993181639145629961692326748514930209471570441690958513972294670993302897624186990426461048280290018944745859415875440310180580242055790985929727343369672753946474189472261427258296045925852390179050788608951287278010872458695780251161776750540181544849608950304880101990796672840649423799127284505834314616504059060987093016448600249515215856561478747414987731708546616942905656251623996799466516562121868042009034849172496769681794409472873442887937138566704738703146571135398120921294173814098508132379860077638323712928059052540090755121320114356880912039790785581638021644873201077899982741008029933438943073293839718353070976913966673223129237378398024861824978935663499397028901435008620122148020216754970122042930588083064524972404592710058614112859908248164428507126097593550285968014557776927889295165745939960668617114476565691318576268879813490952943437362070058131996806680210351530699772255501150903144861316791210992145350101488201973735133532547012640731987545930166387495919511282898719837557661006036879552675217554173362480001223330197242619916061952457947093495310832819666384287816086286541483018189688167343063739541874905013477976393780883522964602408507028266938616257753775962222099348817021294203102455009890990846647550147582114755648055884904872776643656448563893056925408617977915696206808480170472424400425816799474870900589104497674970516194320895584992967895231653881904889668021307782132133646654083947872085963952348279828512119426105245418075769628564364999313643658558671043257130154280223611370306477613795674668574696975084792572414230490869193026980948492747956934292458731347402876192628535896069520945298321592506681258060112450047550709256661354726910474214674356572929017640769957041501458524141362576319770550554341631323589579604540556798521389317342690906769775772932694326705600359256749513981141809112973257315039681541576913109411512932700700180012471760945221197275789266200281227846279949986537756579032460567684130758087731196219272267530193911872013718701776683225487704648296292964367994160519404718052115134911422126463502060768903768031087172739875067389860305843232190596910716249373136888757328760156980538701370129172439943555374212827727812142116926997318313152253055814932129461017792640737142231601132409773874573493461781188188316544788677867040647614425701741837441675304229959186861776168935266420247926112337724574060352018188027278124092596408576511455436746925062247630847332122918166904440694541058615851093018946830435342747237611097808848503120113322972738439479304743825716876422208833109403388442361860146035731859147599113271639594807717171151402963049790155131816575008952784817119537827521693854213476748785225452558960602314915213514814273666123978896269448254272203031124202368023731281411070508742359239913198759373999367879031677094835884804541056839584644956456718265361489805844654339833692796034639404690818988381655436800094021228806970214537325010401758420598245519313215418116537601321238009413508884229783025642571720829696678858803690960032695263473686898177857491726414619902708725349831701919357936265009776461313856088154788899366123019674556375194816945893816558093010166914550468409431952424022219554786428707231995806848596240184681086736383564216676096282091985717494430349560077207229238947740064294962170780387468775802468197836005946909353792812913150729144064388980512141590422045074053080422388554672304165936580793449994809763322261234958409411697756758109322104829556501393613039925125680569088878167227457751084704303079141571599813084683161109713627943046541776669785279557039260808339584948202924754207312462848214053156467845052680708687284330293916705875029546704917192599946283814229264819998708363284879757260410310012041430908721153940050637045089917290020181083227536214536583526226086292956599053820087944128627020149028291105968211512697028478780806085182322758219344428661328573639429718915573239314298480257867762362412146129992412754782326427569104701742627544196771647063043977009604455480901852993033742749686478102702314820098813441292079251122048657954232132950198711248332079998815960788874857508567988813932561827225679934352261709064521693439293666540891647674095067223478169588778012015000786416155557705241803886052128627267272252467161387908715518122977797494377627194026516662753462476728362897541402818417523138984458503294164376520744230231502515894080491312734685762951692193061196513772736793799740403384906490160387981531923959005051190925858901763902229152016808764773947738107659423638185764361735804799684192504806220447944428783387740293136040431983369648833633655725478429246693849881459907996235078216974015094916574727101229789392474533533319060553834727119991219972908549200691480918462372645015383906156078932185801602642635578581135905520850738974168006347227430610001851330109217035638063281389674099806781654510640442832033046758334631809467370907705357784969555925060385232886250769619119033138249626064448617928861002082184467514088713805137153589224996342202652208213667335087885223673556533703202925541146210575796543592740391050276182052507563593438068535373485669381133566212928798812583777003129378679567724787327933407191089308582220234086924631010995348400236325849347386589385181638969564032859297640830494934385336697323318370496262704594749388974310097396385587818172656387248689106006902044710168929566253776698068605223280498890065693339362693268130117757507591601364707311818864433917107180702978717121379736471181046769297369623771207248187748216687792392009093645830478588609650502340118359612136339421366428986562409882991738485622321023677481071002487992399348012684607929417510098291623669775811420688053440024839722629635145235369546750153415452966570328501938491027358667242241936514942247309147948117069719639900271850808203985805208132802564264452695120364279967131701087267850999068710962970809645540592619510644319466855131908062556285400173809049070573997780449017243982757346232185485061759983795755008688963226528786289996103439253903347722284708720958904202084818207107966754750026605609759509662584239324853136334663175707718569704420529136280338726936192020820564765668091831626870115890306624677037483164748543308112397471963418649642994064515661168409336719313007375267658076280301337007626810010795461768800005134172694049137289340406788468585399805983399328533743079118472427031357501724917974481537386197391784218876751023109095089184698326389721116160608521122689738003623280362830246737280695658690524501258314652168448216054713848916156059657309348072584019223431971646598075918036435879994547641653985586173630126575922188651004259986143510063388419422360981050609995552280509066627126277078432329525756961610636147377534950785534526377563424251174336053695961509922656154081509933376777033183470996605437514582748259342934847315585813818270762973409556442111023528534287192988104625885646360845892754245918078164918581032211279916739806136407436533221045614009456764687952795963609386397684940260038557100145607516737526029572581375233573004950609089496662774623697827266898765770256977996907422097209588276406119941578679658174697727449455264572642118726295587675549346414703584293482015486703723438535460077200761700432020049783571579854541299099340098716798218410228162207424821852633691989764543086569786090481628666370892993478472748817031070548694623769974478830949771152850560107282180887625030197639040620638868533575449996491207328882852717278379036823648104411065824763482429756953131968608394722845664829026768070715166149237210951288625715513702098089427217890992141362857832062988432946856616076138514586896259392186313756628929877709099300447019625609020311280222017333070838652661861355123068189650715000921084403527141323517208071952554357114578704192375318497206363057845067613896378956676688707010877954446308545965658690276563956433679743833675022881576676769381764601832302752444808756399487183875482701186823330263393440062524362581924305875214408468745143279330179841823585121729291874555115835783488970585802696337571214729762203394292875405176600278508305353365323582518058309230792912325587754544275359886680885534172107242155992112908374118126388419028522523775413769994544467974458505871651538806437229121564175596797160340033832060295649198658198812695753877789512473479044659931189083052241884587598954656767842941903345025167137745943341831879783213181008975726687550535787947669210492357394496159360903779393679979928017177482825800779655773777895296370010524828912541624338978815736875532823096272965902934855046142828061613509127103230495965575571266975665355683956813676101585701102187683789894830269689285962563020975943299646601643292590570841891878254623793491332753138778791044135245255297875017565637157208398399199601976470025034698953538354525065462680062649923508851666491387261057752901548059825388990419829424993250023721431182045402574465736969294312829422226656278677853818202242949984830739475081908051209881635056830141777210710498456293411925007296886402404608329936351821358478206215343518417512275378899302069028451328676066326107961613166016613841537145391175817326522941466409845591959072164275447862787948672261759912455580219402850783370071905968948163326824386013434867390641516056624853686162034207885889161106697528300945864812790762589487429100293562233253174201024223601471483655714493938300790157909768447246133841696234562706775671349528426752173004817651290565551300195146211528314366765396084779412442947169077236123587353965733463823438016799500976631502541447767633670430297018210940286941744430441223531955119653660681739600719260273409177194369960356443799725545144115972597445418453505799128069126126499685114148479619701057009397159956647010570574691622105782236789542080285605316344682119419767201341010977343769616878903798027213225112102429440273087477183367715956260345222264898980668953226940374552778835914946427885748168152778326645883132009892745787372066712321685616304092511081403786159290877399482810696551929534741750808374339577422518378930004183920166743149256252810204757101317196919562157359226122508052519624116193877023123045812086224197591259241954243219756678318762827021856265583098604931499203312364587637621862766796844463791315350710615464969220267046806748498365169786515075784246282089035624500185760838032325090040755174262804068353561560729904927190921400010283841415102036129313324020573964893726850584975379751659186157960625722157584097814232164427292115782941093218930042766158649232434177237348166687306793586909310180136071521485017543823563029078736016932908478067159486658681669763438856050529080771009034429222221311303164273672803722704639028433236035669678710195748359847132633694846669381361855158003275664585582254972748773838166594730403718430321231843250592461261814578629495002856756395561885359229095830499967198120464349106743855349634923286415378404376435740894257097709643600896340676055537289587938774425553454141530203481250418466604249566012911960308297425774782296445463242104975416302077451713608453146419177366305948538475216982918834091914480806250693955037053049779345695209528226205601102530500264560665692272861105625847001778944110569682098450413098887499120361292550055846810161328928092462199611555615680969253940116012375326756251061615167230986885620527324204405316090865822542837463607591379190011597142848189564028189741375483706255128442972518202871482384348481280334270823582931808859289677143806268610600105164962528208273649437274777418053614805467373221641661875126095841718121249120590471934552149659213087403391991851502860182321095115678397803544206709846603472181964248184294533998506101522422517504045405158615484745000771986760454106536305631724856818055517225731649071937457541861032532752566768870682711304515663836300273699376855690792439968044140024946420301645633360484071265214186168023874874326386147709480513799512410708206250770178739094912538696153687700126185108825415073836540884050336826362420170892492027308585584043664846615046345340172686029445480411067775848994354714081650381952809745726479037590778792508572372550871279731422639082177873494701716990540560569922601567481069958642550769125274945593803286065144578717166668818135198425351719132283722080012512536476111152337452850534377155370958471065492369188969987563455079567277421361947490672586922697793633014385441655905681056163610206927942904726840115959177855152271488285172816941604759512463058289575778435893168196558645886462241890538128648572379087155553991306170934929295096105533741199914804527324919271142092562517879865941683811215573102486745447999246181841411969902032720048845105252135264205124237722424853770453141494941989009131757426196523873603498013567332504942286092630145283170850192403021364699572470703458048138176967784042697194609241327953498824289763159093281726444402838194910911924182534335289318558474361028844361645135856148690277719564693182440547367540871939625296308492582560449846480500046970527303472427637981484460677737194374623078996956049576558960265808975742470047338973974638631480271064053007016479026630289546128217145772263849481655686527339406932809673172699595330664690962543439051732306024354894162861334989596800072085990661106117817468745595476405507025506059658359930291209815634244480111507866485645545283251628714599921972791102878345289341778199347621150042048497576771512306675167276087995048015464549400449894311189342718919983990345069017603082766271131136056680029148636127902286814366886931209194943320755939039925372227993659695790115735683547620628664311311209829609952874848110523195746690726653205654559379559492529337661244046764658931589591866392797377450333107587099073791606142836609794956233136164479043419468539973267698417305087917144097918100282388959433537617227968713521739661608792475312268681370228631946271836415034791505235377394376668873815962447443699451085788016991555611052579833398155304470424689633838053917836698544927677696928937981770511093598797134327880406602886639202807393509741762531260283625196622325667817703990309972962934977383422337071456225942443848849888007993844021046534908581610440569693604837955534069385320797143861639295586479671076508525897914046179955922204929043980920575122485853667610861546772140909359464039197561140743371314149482507988813428388164606779105639866880716272171077333920267933371157261471641923065094691424620239135300724301289771355265712843061155059676088018216114173397913829035011905398420481155849296236639595489034646572316610806419970922846615093711772490884572949011419952137069772080687078813454528658792957394842296837891680819690925483786203945086612095650692775427847431404198184382674061292303342033455256924262290567064957999365228111180003644848457655406231493823239250394769858899018945225366196492445080515338340097061965213653113106986528534003956846979635564892365047972771739254680348999496438299082951605806507029618936782615001603964924694138822926376180252410846395734832906972429715879998653633679551809925376961270099510980141219328281167425663025956768574383053832539773926331772688608124424016779712422221522201336895607208462898370265470337626721749707148736410695844208776370628756101978743996300870499724381541490696901630704820962802803020166835926019895070501599347427699072065664742093396652738341136655916904080847100921803444525856000497441629964936817364071617290995664634273629306605035135331424577830661797630830785910026704402018176836312668615135417698887775521386665870291138988186801400856676121504907890026567645071719982808668949637790632969292787773109942616647232709913325643995322288349672372004986131498074006845743040713236841604843243914472892799021098459922154695652788845567568642694581868972220870129389978597261292930518445863127269746383433506591509686954660378642421114533507971145607245998439168106683231030964629275879079420131673143027900027912847576694007688425720933693532951774519556966280255959494190732876749312045647012451237757577949300767131501326538405514020415121364348220142386812900029355925557449489691476202993662436466338386209638658192222447072143744596372428842365446439261900303864284907472897074246498260374740308493741620386510530644997680856820131002529479449199853501268235184261623252516774315478298134862425465879338848779142945003155614208684506027000590209023659787395653915599915658047597281016781907404171538910413196944914717585009388226361002963328247686189771670337754785619669035122704402492620844693098524297791939760635446512759844025174924897967661416305576378598853103206560567633442821553313292981757823647556052483447297589641291283400213141007118683608442105172730883850195930025386383781345585136358323187999295057984096442657812000765289476254343628748520949911084474160329723697386034522327035998600441715265608331837004843658507088794497849843420767621707467752275049453997217719665609968368028133524812768334189990755010024494985926896453086735731115708572983190514318800134686329985200871393980347930510426837094911843463136805751007251815287306199264561247926565343387686258270452034616023521391996336235239389575306092483434107872907828504428655010275289853168504555680940783543994379067064595731214642693994058395058632176996859865729001790285804392173817797399228839744595945442320860284839652212656235180162156086731163646904269142399357498294054237271447930619724256441731652178986589646192306182303133682938707668595176556624743742606106296605033267584714285380373510329960592280872491012421895549053686464975395469927099523611044085507824648677809100814965313981030848217865084359439063658991442780801505347838027996194913734753333031436508742890437496064519992837784476531441930878316491321665267264243729482658890473307866223545508963471586071149421066087802386158243553369400018315000318241016141613177330051003003852306084895093454362439367228337579365499365551494350477963242308016413297661676573718499421266154943877003893926385873812695363171865236972387089127888189175033719691514441297338340070593875721520504734070854321891896789790671514066820326143406058155398359484002580125435696557184999494983829847037634740830391169351800341167696064636487516957030691871770286475120751966431160333272214908567914132165736393056436762095509667748376956009765435135948587768174480863923913979045601307169884317349031248547437851439736214684751178986956365296163196738784413549625790505006895974031235923428839682686580833397714021465309716907871544313387062472613719041216079513776218626646560156478078156928107160708525117892806435632767621192247002332125647861597421516725575771593726921103515017390510656603220639135162812754112486944329478293841387845217066228397689803244223470434768879642366413056706674894656205857107795945315207265171767249304319511170084975970989980221263742041309315076004039301256755641317749286820254618737087329883357213057588317365281313038827173805946338495952970100066201499814314408398371696773340438740180687597334117804504876061700295785841286042090869622387001605856655246948262742715886923459539672566071674042646993865387447703929165178599472265437627225994875196920345913524049318171174123299806107645802864977432799382313036108422447726896044770927426363887697880042172065942094872689610060205444071812072827644030808628297834083331167464099480208354662240083836667701707995160545613634471929276771945999595247572357538335241700197065730435812360312494790686425991383142325805002243857787954012715926892832447016889964525746400099023352980748327981974422682255988085307537594555694135295050372865828936251816501858605608054154427003603457060961286148972215700753803412636264446246440432388043626239094006838697996665656155000443597376383165887527654936732640152366420714129096918510297289581474944225536806883466833827308312998205940217208834861959735781450598508605610420237627241149074586835570319797373761530284193471849692944437944883388107060987170088256075651788745363745104710201895068381649520410321765298062595739128803446768565774875078050761779877452100285902897404199011249438788463408111269015018097106123779555605225989975571347813779253733677164986125721628892105623597744149306643556552234541891347615337014876064274900072086648372892358761854647451846315477089237947358956699109733920087776460051560248428168367305011808382089924935221318188952409900172536277264036713803667481881954424947134380947938559965889677058286795686389263419733391876355062852616364964055037222394063217180689656841147724226533460721286099982377555729918393506432221979103351970088811375766706374717911631574438222973483400324388032649656858079517533149178689294117050045248225039421835214997531218625737593298004574511958265678949421682369509599729656695256622584113713850341148406563742543701040762327716397653383815183954832274857048840347390127815263092321680736385077506255981359659242045490742870294564298300927863926706113412517498029222803736861263526861681797387004083468974743648629057853653331915364473106052548944447276001185955207895152604023419958980545733060310337487815573447055894642317715390015402203120487447517496645343970895511897250443764861975544978186539246545026949819699049327442577637043372749108176206447902958702398528692330416685797046608686369372153145629914341078308859481199090900801848195854587972921042816579845120885217711216307312556421545566524222567847433880577910141819816371660675450205724063186218210264487217780854278537146165366741785030984731566894358270141109585723127622180853665426655641009104404080411582366828792525083462810993200299637089048017557355823403636573847581619467689208285597449500633091419726781628047173651732721283935658277438683031097744515973526366237091740947444290969213257805437628213407492149883667446961716104133104943996950759647994673498351893045894843529510688418323459001846208380545609089877346272212750779264783444167585865195190787153369868104411132306375515675567929643279117085928624091390972759187629237464413949757019906744315589109140411405476812529683493556821645495539442913905942369133412469087843940610081289323823440580719196672341081927485740190762488599822165848502769591915965520855185640135860505709057062774923958100771432083711842162601799342259211802754132290920464571133422615986304018810704493209460979185586901934248414532438303981031213518099366565002233033253963284643945565931119077577520029190732563640185158476636113432035573759308480334375733320661422458862395394574325594315094226856348825687646582061450430385329712368616851104768765233913024288550064456175526162086806508266022450690934413297376098024201384695952935664062263510507861256945046083903258792579948818950002183725313101456445760491543843532981065994750570291069604493268117869708569449613422564645358343076116472220378622256226620507191219016910010368690170845809665632667415879100438941299510292193966579532704324892621397365914441911477962598181393540691496152450219227696444832405610884497046541809134025510067904169661945704737784602836046937069071725347960462104624211697690568387617506936354023915784315814606541656792517337166786021363147905645857635476250114686948937757208317730870301269327045500367182412597354708063409153834622505143469573429718451918019850027119520256119669537318475799092487428447854458918901763004661765270144786700941838072038402726396235682513709983622117467219181330123049425585344332137302431177175906177998272538759189725645373864263515401719711278588434035164401690614751082939188736691884522899752085018867047012677034504657353495280753662481922393558629801701731477676501568423298512347559601606301951696827999895194059235867607944489948235988137317730143171120882391401370797153074832570610448682905890150908073068493108226998273010961417133290317149937030880054599037259791290553361264084763495574053049832948686752943389026305232358656988119515269828013031332721899845617665447374228319644216453486208348831042390806360384191730897825920749146161319744070946943823068618267480728062318151838249533367440431641163039320747613160595299301166792634457346054653273422843388276490294046445347226169193016472710400315515033101127399944177110845621173690585575825668806026378655867084178973205675223836773782173305190365863300188095585288192914428376149545703162721815957024642464538421534566849928997255467423057036250269512037152914509998364341226787723359758164409989979272598755611397021923927828304297628474389023736749494401265124823087786516726533907667546410034844004774325615920331363662260382428110961134790568369403718994337368348509137128604187317033995335428235264758884916352038369397488857210053920573977464515904893158829825418829718955538236140007098845407663562738965574385018348759215563643422651378231195348563533299324215240679736931437426925995799418415045229747773208305952951207801145145420133963721997306048555361403960462989182536123288309698450090695802931506860898664765626130248954182611970835716065088846929704494380111374902244165065108070428223834215248099937146837672801878695118886647688714610328253320861406845716608901417143109471014766493763008869952087910162401660505568248500551259976844338062169273047341594725812038213652858263450428232545683768228586874792979144925189318857343617894065584890669392004017274568605932519041815377726088386279539153262073955763156005382468847667749761615732062146279125598432890618332610251654295429249480960265534007603540075481986841334201810105714349529787957919636368558957266345805924235745223030353068442378410770532473480296875105488233275529886248097555994190697058376124020636480312549412952482506924375159078060538041576062842392632567109708831759509910138121542944568013610709220560140752944297970397119794778658376729660307848802102808304690000427908233479365438140757883498019224774962280444479037121881896997819211586490018560489535006834039999314556056833381366363470716914911958644641744781898424906055125778904398457828248160701068573143627471314796663222124167451384479946159749348661279069164797176640971495685641964499909275428072795083779420107174432818207972282694230058256135064578105516276758448298638192241314547293478363126202151420427782313733805819009609356604380133826251069070516746419309567934407840260794911901140021798793781026960338679076106721600537614679395103149418553452385930254686777045244504515068617357927092484698273781519619523867453230895800488828372260850241912825858949058542940821261039886169940227747739465829014431429884774144573092360175307135035517141498760990592269426668206624028288562898531407141637817047362465203379611446192670217943281611057450020257435534697229612785731853885837550918706442348260887012679575905203012582369307709896739953159445355973571269592283612880662619817412967641697545871686042138857077432587888404102608775464965207445834836016377750593976145591624923851433530139762409583548522874718690116259900169868007905427000213167540093824930272675305856084249678341973393527856627693061749626184579534360200634371604007296560187635939179100965123305944252298922312344470543062869328993233789082842769183172716828363752759564943389535240401905072238521417415909915164940813074310086373727951604010242751692474864532598924613553344020228091966491418937615570841614194930515967131030609418078400499278611595966939373079837612349131138372405966016216081257880004729942960010698912150158436657720611592352723721977901440644072161789906527713806284734260632089376848001854643777108527519373900201407451014164445136035580519457882038346586066762906986984664950029516672502791484961636832357928191451796019403390845208598306948095822321990917800572042289864261111473552201975789156813715754690347640217798577053251203258203887506326519774353910961526083187578433694912191727595301657798345925009440426202832943261004759147425660351853938584272501178568663038109237201944289550201987391680037312323398140763954332361394251130759785442284064094712416874828644256705465525545458591115506893770138249941236373975874745261983074077276702902727112247300565356671428836499629886573106487657297308979397252636073174094577268054107026468481389460825060710900873584439510490683816973367404468846683609617766683906939258768329302254522083352548789774854077604501643261744063750480776947325425482989905909904598145131691055843799226174204648893149324092101143523546183586643629707338697622749921485513956260297960703966469651959813625381175523216650166676726944813046408815783760888013091386896800965443816273842169624495820212910489801281768984070412986104143138664164044658169733418489039000609207124026720309543914985913236768289867078326184607639407726624514625608709946235907118893502088833944841814210875291941457240633621317925635968682879802026405325790979850029567932549037175549352105989829539118479625525538913356485218388290154384211205017454072202599524484213451362895837253781817590387947250768297630060696321787545583068703275367741080442170142756662315221140108262396738088400797608741123529748995980311519602380886145838293110128858391854767434983519024600124215719867896680082112792578026092769123818953513016078691366284491334312813533894598683619207274820469894157685531755091980235150031291994364818013775737891079503199203802184073074408402221466100919306851171077382300160071460023143999678014438482047553309039251477191051302527586012073154318982902539183260593750516753854333278223980114157136552613648557966036869914952606379748336784626693632845227940081589351192364026174952711426726475001378887500050350244263616802942246986734039177307373610826037555145141700954898905221719561030223772347059125111621780575406384202898278834996938044640101049045325916087753411252575863895791064564046099941619134342920231795797135586977144808761598586437522207017390250652984544332397587784130358954208001386480976908132846839327572090501580730323789003579158018673863509747496541594963955902034217470566709461042292403325000885334430649291501457157067617419441613549896396710609576501622030992930341921210228370762762261534498989790942758041735312634364700229908080784411539265523055491330977092750395703585437237911501810643328446479686902274049686752162267443163814419237222670252968232418921516138877077968976208042901853653377601382473469484448716073461904437393405379681985154599870546168775387692961153402005186184657786968871474736345439776169635584887454476640752665131438071930929079749228148236054563141461764133495100683385455226335373251682666633339354953377117604806118663656810269772530433952452376749958276589362377915145927973478864462761788426701764683775312495321223073942899875292402788577968837843871714646369833993736600813240651218144462299538469887752970426543935816481903965552315017858162842589981824424515164956517484030381638169424587687614921589045859440232392037185699734231260019155863778991244575620629879919237121629219486178504706803829898695235752552345754195793028283261933586229225819772510087590260117976405955247751665243087866956586645604975929272181630735726895881975715859018092633837573770116104444960914771897186689776209301146472300458373621077381775983123354589359496185338789416927011902354435370093402622397538051212374276334678087279725132843837636352745875644232705274748635092439469577857661565018217891021666528585158586102857761595265096467213251105655594452918186612927650695034855199522596013350162237566010958775003077324486353195009406906021659690657652164799319464510215758469925497354709277650629021196836802081969091077150275807225239059635706231269395598121708997895565337336027271420470732874280419257454885971523343807967638248165943677750787275148591413088954770179340248599880581456369629298952896903339571095185387518054607135067837700681028081490441006861601809479520702001436568003152662034121769514197570677405294022638803445910963846486791588113047619149480249854368547681307743887958039554763862663601813626513354901509841535313715751548314431125891307503491597864968670491725943711075430818297305118156198411378217651913111486087312220570912087904732804314931694417789892863923818393230863234578281552518656781580853589178240983681973732108470935664182220053594901839261092728335198776545333457529167778564125308432832363866192922537454315107843982465770295259683727751477321776086650419513118782060005833770123950949318850106092440488735220359547386135654511537882535879320813374555555881638328632955418401987201783648280947915749632748570355827727653391851878627176458409900557864631780670497308334896269764327180910039463321918916640519558535162667589113976964448866586193923943322936956812715545856070065030334230630428187187175807556678909095936539602309738489940831601174803841839259763803312945531057093588441750102279798556991631338524892119307213480080216403730307098608469999821301892904733423119357437855270715589687119327901509563513344399231736678359480527345602866621216057897599488582850585527893273462463185292185619480546665496647689257402453934551196474338703615697498471090965057845891336039633726836373661814117686503217080791697374744439550509755660532851599681391713949478987744920132376761797805617854533800882411591581697191594708455489437185931246394518406730210559028000145606179501324916085108010206462541187987342384014076511877682449601746708921195064101394035863077301426446232230085952667103485639016722917829921002269705750210762868059314964180224377289499874661893051693381611058279108167713024608783837691201921373935676659894561884603860287027580530298963438015357409950610470323362799544869105822287553993627028603177881944271963993400698094449489699919980538376570470566567356326483516123333797433414752681188648149743111673141439330224263054561541499633259286196470310649025851924843767499622917303284123298052257996630476077185656236760854322454802953282740473577839648003076423350351885598926843888108733012492276416648642731964373265252057119013694560881093189275947338743797555157412097193993052866347241057647083407126036286549899271856373918200560902660313367087501200907576772491081793191453239222998227407823227406567849670960439163123168737166885909807334889229578492722350615049491201718765516226593979671784671531356792339022709621798234477639403467879074197348903040021467734238666997658538272688741638038281528909273246271376937048176915061434050528528708620691672470391862107263862336094013521076774385305699518458727346483965383630948960740755070129321400872097718169920864901516565974962130607885914001207099154177583747612431152559210210519708603028297468014025064651197102675572900976194578324136496830622544590667219361949117986558707674543073952899762426505221636714229514813537915006934856857716709551978283535327261593650057425939974179827001241427418718159820780131986619032700923438455710379444395347313220823122418413483391669331456241584415017282022190617760302295876905588459465800890379629691605047085557714174088661137816017976315411238963951631297143425792382219625488797160603846895700930597858920557872520627345009517891948132399783067533891036338535869920293267976783605390788266877826433150258132146787538959708990250642338327809615177687198412672315165821182996752997102790652978110721552293947915136134168281106530310229267980305397444912443713037323099766855454545635406188245836060289286068981785880719842155856941627368710709817083924168145857434258243512645993610076932012789853295364604230900245547104965227781164476588617628372592741267618160503197612153726007889606563956314987601720905342024694805644769344536908529543483903566461029300546238244829549804011238268982289790169356822337078351771440085658363830283591045093479265485265831481584726615048213441569111490109853470447205909170530256877184437695547758448778237070697117333191468058629264137553349680279113775211541819002815657370226683613309821018459911244075886007289644209482686303634968924179747223792118756772029285204899358850797821656051190008418970426282091184090094404023102305120593524616866084720703711330117411257229483021490408480778619927734285612515095166146775648407876113127011485879181137371629744804481121678565263463795883374656174547234311858509943875683236967640158869546281321896736838039334681458280858573458924119566824301782460760618090088787654876217502313676360842808562024589096666456658045626304772188616202389303351921447209486911365445203351800895503837198855549281772111162876651824733496990576908114516009311541013253341455348147548784402476549156213916297351657318143387124112595242368952898758305129704252746973452919428859919822556195977015840293051101469259153834883931106280137724030240206694235552013950428468963659492177944650071862065894420172550921470130187025710454944619121558573284739384988771553412968878810830803219476096528011380057253731001452355678540263143234393784695438609660270296485585218825366180285043019713072986462343757821593274435923511589749708991990554405328431237062529113261783546627742310093307714953187900319103969823508334291254320749000462874701317842185838051678023213385185005117360526471970862910543244398041744896322282033930213000937428553351286828962247082927455395692847191658055271192924133296324911367181756889304393620855514710953239329599201014640614359977769142326824827552129111929899305528038652842242241783250527891323110943683038215855722951064384989501950608381529170642503830264134806273239715897496966828434428679851713674011336579982677537364699371475499049325759033695803497046099111743932747618958060180210002481600489657599903710299563889111099860227972285810133364865513152659162311317216130674082458177528406009915031119494586114642883273962390951887651333682557845219538025604258119580677599241934632541141881409712707571608890332351537828909561035497175661874106239344181292531187269416029445160067564776610631893079000665402334588394876901197590198225750988979026524148149526013832753583082751316520844520865230582512139660766216679512899205934832255710229330302165292712059296452762212062387194565481332401336597669731460806334873623662723732336272616323539973375572428149118289249483664286957199368551187607189618512601368620881043371718318181127700012765293974667417975876022881803213401808419716624893591783643625135738965146616561814925622969326669022896587255606222966209473253723747115988994150216861042455459184344834257783866145717673603951390160536340002786248826978282473897270539665342127638782039432481286253726018589684061303967250497220352162809154298415981487257592995391186612724399495647755715558047476731093930975338507872945097642221775693103569989424032914536123904162505230274291940359458963029695460234504981962638955577928460996458056477143322960859538461520550994330718964788125700945356178338232107333382353567274142669053008599537111309099277733491244328475603305180769045658649059175129599755155792062561370096576813488938106404665916901580395787172530189678513498149420862160378790087539393585800722590261732823784060815453247909263487913157824746317397409486199656011026509979186730066704233798035433413429187922650816276448734282148218540765494843483410754866264077155120029882988887709123962696909464773944359547885913005469073253428444328584250364116048068685828008048048594330548927593961015776290610622793359651206394946054202538149081433996003388885025731131022855914391912426552214900136131131636273857709787987321782157420229161038199635846635585567342914720846001715391960820120780003404030893179642133836099374583171835201141475192698130778942234164827590374085858152256303777385581711165011043082093442526755082741138448480333055245286980018960345506569655051038446251047603509223622620371690683588804742984620883017889221382735919680101984340434098545419991955646457495215120333577558926299040535269777316336729235992506767456038574467474039001493796390289096314152352227538599351594626294799949187310015330969679230592011675636248437394854601190144419015065079133009782343138248043738450004785673755364039103874975596633919332992272521168798363125761819842101852066237903386048100990971306570929698854641746061572375685546537220891762676597849689335848181830403830722238584948283360638224094180718446974461821078723164309383831879080894087269037590472389998145492130498244881563805451400363026739748074502381927862922665005639670174343119059884854963431002153231302996739468774141960457103704830450647684973507825317403391964798386479070374490220979102232768152878925529239412186236214177804219487196253018619582262113471821533024724194280572765028954012290217454214062074683421757544869033974057739055706651743911101591497079540732151291115644202277530015346581152461757385938792874510206898673620286809188676278161004750017262913082962873026039342526191980935903001416832892793991415535193637790394939380511931335228483898604243025265103276023846806687492428251599356449432524788848160028724856869622430957475002421005817516777667258886471313766397789351745133994764403840633839256883263127868256236241989539243704162219135508358810405765683703580352729410066000618736572492278772014876067686187180335892534289073395914585922153004673671952870907782658479395481090305758976745588507279106921335096818378580338644574095227757309843718487106810201157398589026464341846287562054154564900166312778062171157087832815025363015188277525060528530030221359106391027054435884702932491516794612079818958022497050461176454404659234876735714682141803553934404673803284098536684510861252137478636546999335297650084477222315210674235060059555801346177681064093028783839635482088956944100419028436417410748902675365337211647906773692092094931178970710078219349388349619783747514780140001576076380734064859438359401755281252875176164055402836587885591606324733159297954422124512225891712525858349862623625678144227261269148785852089424427914473211112820892146646730074049720101977486812339085745484780332702443655037058772352832588471299121904304789299682046215141303924557784462242719042477859618760644647994087390704974342506145720800251008587274310333396337899119678926028278941513948495972021229447767836450349787536954264336119946517185879532658047768771824834367884078923178787083124452397572906415568013621425122430500266047334561788744887630061611428788921233195122923324678052338835856676928508629303156530233862232908967851724803026032118303547600840724631598146120846368738712048832349807525215127578878336508704978065143101832725544497585915637198569125318370375732078527179088095358353387109107387624827032267574062135938163042625335931053385602976808012405712675348257918286924551118088665917038512106814614808469699909401622074165313293576233226807972324697475344624109092696385077591835373247032279097353795820107620147842143919758983470150774542056349166863245764107635602487717154639570118297547247285772853482585588272271058773640753352141054342268255073825079251601077261380435205051787665682178871104650276151232332176628440739169056141148440298120562973194339331372385135666187339495557467678856999759570646974136242610985717679614684817557656076188679738870448054027690009636127650381830783012862444122673260418487191080672700164337077393435573821206009447655729356520777477605656212083953219291930750971209491607777762847991974618717965354073984626056826793088627180818303263649889625680170003429973928938999890669208862920319487371414494573316081792289095057863226014797987614833746972022094749451152024546257963482735281981629533873502130152983063260406649101576245386102837331478097384118632378871221681016962158065234864293522578289613075362979344836147339250580252581837230830037824710612868256747998666124857482223647540436183244171527170684819681688743801557572281688813415865269260963231121576663091846928555434968684806224687808881632316101138457723721068170148070019618144816325551095354302912629039308479081871608481109346643093677770271537224201100304312382021762263861512145313765408128240278698855090533972966774383868925425010652396248053411165926069673474088726418332780354413713320655001737635290027307802445176157544519722202727009660457632098162089920004110955572915090578556910972156544169458089896698085151993746276115711620553674428140628767003880141385360918793950115276167341218138047986419321775056432825418016841537905177956090507952662501240363424175462986022629219318713514163989621634807846133176804139254969399707902785530477476848833266605780282863806793038745525958089779493541736431862131042613904495035065582714591671998969342839443510699296283058524651500960266231264014548052555917852516026783850231363732861723901004678633484634595160866033904835740698738671341585203722378595354816226894428733643005805796896036249945136102017764641360299265986579375256311913023349412447726525938591417970819504463092263482382410019137483782065398171108822269566971816719061891876732092136790555284222400211389824350172660721085628890510371623382640205023438738938728290259190128292872672579411712714422665435352920964974901200135221399075999974290089890296619848419956736851173920885457917229164589384575644154059503416308267618834278055452004636351523025966010447545415573512930427588524893348752569639490306529167451140283099941054429706380791443073731354443637508413645259340322228817285366072534163450406094176804022109993281158036855962342875627433084553866256452940800890630061490218953653162932386716596355899018865353277510985491827051846241090599774942342469076674451303317113517657131229294109683032460435246602844029050241726647476939727297605210287300837061551626175661325939068726231406922991079228052583917817859819859732718543719829424235159858499272906894898788467899467091267483903651921765079578286258806158989971278678535981343992975706284514421345867740819548422618612851216297072547186711047729001939153482796333776275872528137364126370198892667379998277219262384733274405941239618771851733353299488955431500886486377494436901337808835103948594700330176770478849422846440318858414064651620762355657617785227507411312419208282697884160661990264039949103465040532248022998281650848640981918368526275880865938339041300073044520302588427769465874384667748670075087981366721470622060652532738287923534568241480019981416964815713396031080501351337006608121858513568152296257527161338139839658589084459823225354710563244359901311476856551515251493820931716202526153346747032871439848694048541206835931196041984643328280662654156846950597447915976423221987627203733320180327903336079147576236155216962060691297608070655847367184167966580294905361096947466302915708892691116107122832633938286290072930365635638746206467129997335542912966372147336778494247729448923142585383882124449583001776047476894416548713422417417410854806609031737905158852695312832652542333392327720498659650167927805121520158915069078944375964100492297335783234484713196264885840009090969587008421199706967598364553124695907795111414830263509441940949576304374651044483925946846623393856138257854811468766591830141713662810497191463719588462625427889852315489008294484921057839618222848921406751861444707229686869238047699382236140836566246271178930144314627315878166205333584967048969915857847500879013254277736218824909537436421555715253255229779485265119770255026004110256558364719693672496723894814061155614283773041605172322201341396405242011497695046094044108969074111312223964339222726288014415003603365804667800246594069510274762648360993032519363968671674492503491558001604679290136976950596650170296783414752830239177275117772859221171155936349203573274459877853161390921099496961778439229282025779100770674164542849558177912484615362737775916360470579331647742778949546617896576010071980179198145830470992965891116924037408165145284845246926965962325417059620516154225619590462860848018356359379118014341439372472470934945952628838945626980590155625905875069524782484438551698823808853138449292492972077899346261415760274778272310180911012718598479385657534962239015895905762071460282058018083929278692212679243955701022069386768887331420302540095020557035849368474816769250312163764228963960925411942278924076301844793728041965387087114023237789576062907342838160829833881782044080842164370367589959599946970606739859404928357411254721696315126364802480233710361144587828457633968431353570175122406621812024260009152506914984771370937054611608616906326945312533474931942162357791780006770591958227220595867257661663263553199160181915627892312898571638809461782032089713685097218595101835502882147079422422160783025589711251226149425559337647821620848126709896336399632862475998118742993080116584457507168480909338052400861209524723972813455077616201223366209858685992222108986252348783926353555710561072406102548761991587511419804416434901003286949405021644342182822917761757743942100029948273861198351877195567490659872289218339122040854009048651165475271365969807639450636975575202936412848478772932763818067779764335468026295394469355570694261583362761584781747562188590342444585726510576807563864180604370760845871435633042636474629913601527609811074516357737769689498523011619148566731819274132977705183795023683864725148677735814648648656440860040294052107294138502280801432340949424771232186465529371007969174357852855150333302032810413019340538105454926130960138501971972568902490540703693721760249308246245855370883161219459018822822383878116813201006723586327219793026933898218858552863465207324368958986710867942007474838459954110461411329060642764441251899135309107961698116010153462425224873166304704507554656226059245357670152319865074203955409411948379075228272103461362571259994190570280821701622602507643406878581786034862180318774438371095728058207257708770992755372139126535681638505481587148520201485364144571401259955601926374376247827716938683374596633017880252821516855931677212854691421925292730262127077083619431423007213743690833162623940056796925876929164474199047572062601437367541617251176874773262681940693739056162460607504337392556185106516299787926199475224471971204685301894184506530832426287069019477199219906901422359550411077861612127449731413264509757277591495763900865416952191718602350197811673787606272585534635465014602239596835551271344855476310730633764290266007093320440049699433167497280657537494219110459316495326414298803814996580776842228200661645631289312683503012299686736730055079314697135554649906722287949520858485152897067222254503332703065616872274329046978283891652427934779712728722330348710330651689429083753914067011803360210746892459172902576073603541146820896966425577659407939748874649154032858392684697108100207572332027718274880314732691606561109211717688912179409710937043664662316569227781711322802656203626011518556547385539124218536970179023625439503477117179186299730800872411728792979643923149624217739735013949407536719874630099709155565005755772575437727691809093845347620665672408799071610997964465078833192740084046387028035999867893489093998272143873550690370946243958526037344554435613842699076084638733411941703727270046963843240379210819352791453974807966721292070109009059307700693868234385911547235347738092767546317098633195352464801616580379901597442804052495028410980980565862283839033894145107428474413328802529529426560047852475561687786386767344425841797939096315446377637813768581808331265736758464878627284531915678314561219828923658980513237488712576761789468351239529696629253152221268927123231606120069172298707808336311824366510251325257193533488018265449749914052056281279167175409528210146341397360695647451456111981032949683618316458590472898003421894984458554699659532270085361665085221665901619685225447538170217134491775786136927378107013998972541222848907925683997507137595084898700796355308770761233156785006351312355856588097511089514916163275628841442153957137989440300246745270093548822002864609787618032849323580571443525775542038824221610844483113340356287940019358762119802462784656761872980406188403607883807863186456642152472080290121985588034320070553774164682409946437820467012621535073379590989206815410823141360756101187280909629854722324212361972139637817630433841385305018484928961466547998681060825830590294171790901029167041821724997274804609703552752499555680105276266289100919502636873341285491352373165942363800892714648979951681801300691728133384294122198961858397693758731115472912467380667980831072546046353334206390528358597457366683425858904026207722745491904299831560331656662390635285111790757436267168874360949022152835769281687211056509666883966517831110338313573016906242437334649802007425964505051179480982388270076632654022668925840268447126014352952559244986683916792373753544269469321947087857138533970692212392485347989354873240336865851916373449780695022468784939972386468043910324140081649592842647350310282000877042532141472709551250655700336907088397676708396119834189551042783932897178895576882629152488983129207233107685300611323304909035398155878691835296804283192890470838012499078913596337345278168078948035789906449462021876081217641070098940625484977282359303994575827017508062891175570133509842902119335598366799707067011901832412771866241240959170938821371645033009498831191892961002277563205362957316141321771601288893197429962068508433032673327993284764404235956214615802368414471032453313319677204908903884833530325108786316693569619486890130086241751114357856357452939812481341430871620670782546013593193708950703651545377153577085427852283380786455013705852421810776413442132989539325501730493093260149583889477729284398974253990035995465727657803108316193840672000433899049259450575219770959135113979533262174263856086220534139474097190563146489147670608133107113227355226372110855876273985145663429013490403077705880600784200683305811694971516938202091171146218286802523415650770193879092621477780330380594152093720163544265370700667527107232894544634676899237445753831948829222302412817266692304498336489127847019391015415983608795951023039015143149127177712124410710883858027644507986605053003645477561733863784057254327384482585911470373958943177772919319118493677866429475481776825943764773347499976700985272185627162359475011119252969508029985000407730968981576440064729823668905281664541621379574776604210986011773335680763138654617243138111769585444741396122598379850329921173483843501209372111861071971059103535829172188426461389267121643556671460483261278535953340809239660790610592421086477351087606303309892625268260905579268857313955937582242409433954845412382647842794457009439494175281658552272393265019039142578244031947291692708915324092941088791832447085323180742589057012272378424593052645713315165321819195923312169641047352484622550580560861109402840921639600457989161784103961987318653716805418086368979009230134598016810315187428072678618813572771849220973634571233511101311945776838183650447955868225945258940362605635410576058837279212438667492220595607320204281906213724298251656158350234641661134941366433482016528735695584967419101111327923242454408246080142208834959974115587981391378104912094954022596252835876674057058188066951530757865556225752137648987244109384688477758715418330920881609485243253516457140299018039268764885742233441233522121192845829014105939033228647288131187019889045794856159805820287310269508410542685985127979373974007177435042667638635785921796226310519062409991900033707392181403513928485998692188215897568865965269820561703819846653565802785008496028915198671562804312517447867688758354229097225884611166433628590122819601452829131218514342167429471088392583487315126588912477659200896970776033919543981655427860801966161382395969767163943275081421153051073262954813454173425726723179507657279593948540030356218543699407305973651264378994845891015413629935926593999411240760296655150542318621309471833263291677637966511403481368629566491357366412669130433847773502906892286443667603688894260090406989947717882886837890547023003482005949755414930004226396462232430156565859476850877177527577371991030709636994559970094427370957899689348690741328265261304579336629870593359674352845774364944080811078025374487483303346539181648763177729615141517027069017314818788190574759079520747208094117242962352026956420079583632129081704331191497540454743183463512286478938857965644669161822891317101494597800473372241062968659876187003984033613568360245950958655310187995328642364608808508500288558141045688593217592430838253877524381684205462591506097256861347536319228296257649186833141969973542627546995820461379458242522375735311434131674566284312161232670726398897955697583624333855720648608607493902430576616653625935381886755346274596653531293403416437287906146296185526434040004799612522214897749269627431236603789444504883872522367763818979329090403505446023730684609852536678977688522328040467650216966528609027309546947924426150165504177520370751643217815761981309864810620379630301744002933982653215149731188237565007084250441541375273079232520963756231257333908336442568366753389977162239000794581933760458645236538343281335657927750435005613152724279586973035267128877762895690655757608870357513991469611691021353866027411566153593525868859649532001991939905420207962255259997009404344633115780212612771790489523721945273439833111698523044564648298121402673768476412472723830658427135811910224966536776919337993785520952939892964208590078959889027417546518365887988980707006001834437660826333467459014500562165606143458917043172982496762521068450629837661009017242439758248945627340681193835696268979530103469816208352444131976154845400244467723588410111099719219993504019254493603356146424296468690654067337507483589669011120557836148125325256501645842256936100375403619580692554580851316561735210906995638142070624230006830192749046862645376259509483596993942146814427462494939298949227167611537497196496498962749447984231903010045358724394298825543242498767700257325693672311882082619802877492073813630571020259827226103439999653431914731569724102889187680231517886650803519005535180048507884314040940230370414400521667114268834552434279879125376866957205149013848460335610966709484110262648459878250165301477130286225626243723311766538612571803142198255608150008701634550740865909051470046171312850260217878045684465451913734322072193491768245657073384356294120806509129656707016740084953956822807831977649912561612389163204291552809314319894347154045948149962290639426835541990751812322919017584422242487700257671592303330748187254127181425486389334422648511966471929440681766583660640532538210109778344344724882977195028156993050717100111768241987258989365711939700487953528259007973882861208020951698337029389492372322953920122855588122113653710208832676363185990174905111115601819719590837820665627614784776620429124906562882132931897104973380210974313650357912480142520520384784315717768135109008822334676022225467277780204237302213813621421193908263433972919528077633903019033412491453494614513814422414360045632013873987820347375199058331583062214435625853972413303457552141470677706402732526563680533202410927013831021581946691504520772090369745892730419789854385517354499600947640981182725025781933534471191563885639268911811032330918743385485678627336038302352939650854954579425366167895446674617770090491534125088272992299886554317634546256462138151036845944129759347934032766277830325004152894649242854888688346269874432206519137784124159796002575936032723119384585192172069493408544923458513046125370082951727318551239510626437124010323962342895242841906630541721003714884517706104810153619256728395778622610124523503322720858960198557327628019485811933283762539020222771245318972263769225530411011116232326174726864923206531157684342865205399487558535641749678530090318931283693018642894091116704963652848559318788070081476899626544467001897160041100251906690182575849663359075416874565422113855059123051204428966321754902386132226727909659635265264649430054026898730184890156642013335794007929432332699106340034088401331265188557365507976668122507197745924813974499973263870925731235381651982265278092152379522065377611357418943378284400910268375534685229234406546404978624558685219166423640524585329475363627052368974002152539836492200892591696851342514887232392880015939769694133377312738899447434580804811921721463940350890048357219708886749072403589452698418189079464559036884853677777871764875687017297443123648822044489256858416976591107748565269983473444653182784277127430421050977406880145584125760683477100311075792659681026608943333602648706467391917932966304019197152551458809459236034136914357588886839369087509829485075738062406097938129577980470155311726900449279520585827730268123564693120953784479407505800045428747787799589740648223770649510367349588633682671100807003358314270246173626529350502430047662233208158557550714634265674822628089831946099878482117604987197633267753012996170119117601529297502037775398606754122709491476759569882541261841064651375110905828722771641965914031622289808514194421202042908495446241441148529507603178953856102673165639432549711266175711888055641953971099274664011532178201909438787309648681430610873484861973276166354246687813830273591902298005656161701641072813491249488487464772677241301059483148652998530287632885576978890535247430481643242424405044384116343845349539665836583491429512934961416523130749175043337933674765895214862269741684181207347071339706854509159910220057614682087944165495344947926760775384825273287660302625061021482526422636724513439093562487991692420342465607797887073931678337400956560869719448242831724354968176903748058108772976442587134171196100964177438527158460991854246057447121952612735464710964975259760541228253745860806018699121608947264615215289907779001306693637286377230807000761596314513778104982643108173092625506745596898645911754116908967780137588901968526542515709802224339421183003442543017491501791927624196649777502133870857973556749617372800441008158952212084404263661817294262965405904010588706715108284860816326772122296475500208670639146950065222957330072738917127657236093105514022876716252300838911944984444426591397773451375562526870318693252591791107148160828910709307041431626229116811358118338257156393801618856167339267724855679102892190188623178648691015874144153742711801408167395064147287256008061023617243810193024168106494267679627025470369918341003766943103797695201394446485654428155124077975178667739168072965185245906345535960896662723550283440721247613173546771634228404189198740342867186794431820837327823298148244547467778890052943845964279921041518625982117729400738097589917528667303485859534673063711059846126695966751130662015854947205574473476968093426888540042340930960486460090033028812673132343299472803842579572271228067066469458147555709997220100259779781798096319611972166849355088226694199274670936246881471162532057505528464478800131288874746368448517705979496915465699313227669875199760418203075414044488400310111385097836854988866754909865022606263291373199699082584958457798250301619022923405009435285322547854054081893114038470498947478644250559587659449762652649742118964962961663127096734486797972057862641636579418544907093376831719224033947208764131555621636841270803024481029130221661361579325402472001853689974876295498887310741652149018624271109763416448083378602483182090773358677937011550003655861638087125286119335414951693213359390990272248128822194724545153573560195696102783309476738473768107259132426236229946455815881649869941321949014899663543669035566399887660155305334203340853173969203155518047208977937442704049554652727002513189683975645881725660303059987687746334170124275539181146572976390115744823803268251272678454016088263616879973225363536446402402680335424104842311862657024584284453556115589487298573947590862860940726908894374576795395638007488503206641089774747057239002698614555408997286662827643901818015770973862101294929866454897192624149412107996670676664671125942556298637754937562640557924964951203608786603855169681340964069650288107962828780986661114250665945679009162476697403675998131192438441830053220597168250298945894191307338508170694059120905573773289986712289755618490186189716938429855309526797799810596837387303413913302810909990790969414972477033160192804688642991710794755015712973568267588380621235524376188312299924969885293731132783125866861838916859361163486896709256535170600122474576333368586151901738847727058749750834514863058477908925995186857533355227644900079898591234590027621722529525923657036445890660253479839271946053696085570080889687319410711854304203313275876615118579231591036082286095671504550033661134240895404107589946249671832817298100646461196870726739869952742649521599269645351060758640495150824142669151092028648216001749372235785130385147043595496533687498218275515945361573352080997595514303659674783321099070714105309924053328451172447934679620540743875007701369003907625941547737538474177029563087417208692168342746506516899088884351938193562533957966889918468846659304999484452334320985814632296844611268381517988385125138954556002927035819634075724927445062162100594787684581472231601428620649653166930928295772141332244693291897797761009580212775409772389690587385123723980067214231504825332691921383521049682017499126051923804440045201876453918759012062378785941148948547241239256099806152614258923560657585277649854919855310604067452236779254569131526568971872976291065800463129862582317447692817651864618026820864804096416121474762401130862128571792112465190761864003076958824074714030167969970146575296967271916830739811577620728108128329368260048420850210401059308374990244440345095032169597399921503689000228805143767864180267651201157094254277611492678140592567680890840013307679840383840014531882696197736750896917626022602231537808030384388522021014469768894428028719429248022752274667579613003778831133945033287948392932387023459154025852098285695277133803570026771845260914049853387540717883933033779247111422450167531430232478296788307071267378693500479752312145274908265775993468918875148191746043966533336821485871635401979111460791173589909863368703968527440530063243058692798762726482241083702570481032760037460108533651804222573876294074466558265857429568817861668207929722660330760122074126985834312418317727634173410878040224074830619828323139247434766755024809512558515711206447581797138631914251519209656064663288583251864766069000038841862348206135907768222316246845952767418589536964067484623759431746014015412445929167848331132442839591378054962033578950632525502453493223309653268931737065871883723033995954215170679871128526133762771408416391539462270054996684328170521514922709771125942268372506017378975082845219596359380166019281234053392816590594383261025097247752585773196308377440019241335509213851577547540402265845170887376189078420884722789418889121629365750678061631769330603443434918758591014213345119225965557097592714481906407559230094239868540478304987767714015011517865433119832528290117649221835779280340608416430226522251745238782686957973654396382546365130420867073806606677931096924411468936630267052720161972902618711501546400432446961795603344878263804551143509565124396688889952022473084730060566079150377811701776516320206163085205535055804038595300149423739148241815271113205895385952697342188715143929463370985319927734848689516234209322179338651200274443599959353505471901155420724586373077354145321556810201925382652341201286909958254768889785728800505755924280642606242681143847673058805957922950593088770733582165229215834649997548699353738742796463392862061166598932176272640566881390706461191282268553613658273986078276484229203861167100422413130246849059913644517556988008158183840408529246318448060604189293161112427238860888542043943079332089312602652707717663769711432476206992793309502078836642699625683868153014354852462548597486102551291730363542410912497692343874262756138485117813432099004294753114863804200398732529390921439182797086140143456654634749418295262824717280277596497567709634447537977980116950212913103581613889470020344688019401007999930336692778225838829702095942132609932883803046976169462441564719217186659078169419755806574250111148613815221234163367297030572707788612473097539071456573387909946688355832133810761143641212383724569326548865240495391227566737089988315959221890116983707529900498007962257465055866437923285463141829558938740181405511478688551792192303601388199993802348094255034812609633242722068690821525166060039829430190613978744635109937080783327120347542159551469221852689051324417467195744641880101318279126190875315525619252035908857509728316696741454838498928040918817408146818100889540112185686624415385937433063021418057774982284812986533785375074312164439998547925134371699210966855715344102269247274480647913241881823207489990885005859786731855460854170537268255116181670878859590385793617767561127872672732535523127558122205901345839922528301695489244962274876144949594661224300852640747298463417272924418147896137684165732342137767866018610804041660898842246559803980035701757341942991042364948050992414701921473367801595163506704723149873114026552432135710732561425446718040259157173197344590300998055710958579155431355761684668411674405817620499106045953647889157780074824391506557242279867384892099807186450745397817758413245356573436219125765855219401428193007984761427135393043285099172866995326723997870305337852473132250280866730413093062419661256647271666186025750990065400424907885719288867462995665229406473153169744998269101294820286862718528362046607908354359722066041727474029892871578570822371877720581826314963360622915295526467650034596147177699437275409099860359661968742046981436623922446917229072713133522765071720255889052903930056925751190753777752417306032699205598088200285407132928167389825169570569833347772753880601527963215996891903113502937641924559981677197073298384898134633739959459593699866093258802459162026123087352191531988974897074144694449056647277886781842032918734736706857047937067171839336520176217333148385989899075159563968244343488426705994783574041931177961256315475346776677444712333311710801360034413768435397899482936350007000378992453211876295686562812862744937894031080628945713020459350780469911201031485177266904441760611239593066644228696266646980917006005411803325340137527943355244852720635996977137180194657354581896355545773383388203969145480049923308557800756791667158315126242310585217091078898877251554321936197126370282437265015674451802618915183965177481239943286459604575232197944295479878155801963777008405232123122529490476000024518362596424897825566552436469910636850150333516296474550158174107401872730720226610500070978890141559765825729988060864556898663035016061087065407254059710973164509684940810060019220271414388310780215648090599771461153313688312890176434769427390995010592539106900637597021669324070973403247767070283066123733110747461891987645965621198424080774635299280786774353966534814804155137297159512648203159130275060392828183555489835877388208394003997032246183194925748137601298070246842941011498244754500573869561827965596673151726832441114413618514492052353916362764546553060786031700326171707816763740774340584978954824650229348127139921094439365980520056350554386204908226409514964731410869126643278956165681066756290001739412596467555594647089170818519149928590897117924867676296870583218564397157218800230194580925285180421361186084509030851969812673625121303770919669508780485296589679410246806170141066591883497729420062559973914148907442347025430140274194676871888669915342426442246349068984386233055058422438072043659597912594240547531096986706567833068267673908798938653211197681289133066917593595671955289860770304666267749772456692238722695206508039688743934911311428353911056955403658453711820237612319037321402907873981718276995962147220272550195674794304458897041316996414260224531766058200415986161455397491813551619138803929179521648472929417255939718185702591678187604672895576067685455408966385585011673585827306243938440117214311715081342812149561830967809800123534456260476933313715208122710110162442761375725720523234596413189349979460689833963916328825271280056959197631284419505201039813450392137798797183440261316283068674576826166201449248306908977692123921074511577787097784555627052057675506428263066096165510518742201993628493322431812586232977988613322512058794957352043349670183278461214457099756246770419914435142960586942901128758772889968739245186682377844460752997441004126796526515749738665742510678138164553483012731120711789732440622234254039848234864042149598495295678726754301013072020827276357282740591922472315305760192206952303621123681821839781981642169927540740850136458547375684735452014234965378150094022016622426056692905884870032396977540055928651730681025720314390884595683365912010077482746884903441831244277498611883547355977200000210419982892856784241515608861771133455084326597799647124630805768885453753387061746274370298647370152197870798620002661869740609291439442014719318266244982353494842332381845205614627581368655357870311080142069712266641354234666442599239069556638180203402308718989587023554887046145288984160446606234288078863537008392629585142444619128116595816509704559926882189475584183347500234344206674773528969676250139522783232689742803179237468325598985576722338962246576685273353733917224921741731425118708339282038493469208607906633142604746003435189277441687146190632693309774571422341225004881392872630416924890165341425671528458196907768807944113049418421170592986718931827807121975645102102566931537080873461713003955618983317393258879689600913005166933414763049525804638308525326186016871743660604284725006563304436638327954757815283748622790279439831808244939272228530985498726852850680524568597992209032286515123125043756811138478526782630249753375326951622803770851508425992096168005147268243064251453382913309934824169437550645876390168251788127861648510256571444486761236362072654616699558633775544974538100133270091569472172470690194189497056180845014210480263225916816868037157816236948570401553031316867440349695914787053541879200667876020608864785185089759752934146231182664459836791296736100976976767847171255630082443378821650024622851777336660792218422681670481543900653622827360029900290219734288043646828564242395866130382786889049480574362826331432447532301030357573698023587755365619978777519062337409905353199886679335821790644174179593553814254045037944469267922757359299336158051784593546026862150286842437007425130008383868165150684885804730071902658530969623619253822970519836100359457507012046083247544867421121605956863791389039025531653623575515235473913582976683288744308217632549784304204978891469266081556433632710834046027623780195645485361905466957645238945171268564635371172354614945144560014519020495662754185252981558420099852489983731295875337094336340826977255042632973194209657425441042638463353647626957346319428737300151384319113052776909358474672269917760475989691260236215378865684171655187738468221498841539259642750942209808992953218962666654489756100226679496663941928811858378306970441639665392616130071195889278656047207801761428802602246026912218206411627765272992029387680524072882343166494434214618454733551442228018280975991445012696118890079329126909387814278904574458785163529298576290508641686795206387297542757104859158025375030276331459334882607546144540741155834877544838311616207034115360167200577531902638471606564952079659539480164735369428777101916003057007795203223368328529155835820130522807181960466896604079278982244128753004030835103046620608413065228646547963533603546154218592804155162757800798863784770795194271861246926186221183244082797727170577195822399525084461611809304827819925849311279839290191389809698153471482011306186276737769193588753503458039243997661692770238269757517122965900340947299758674867413517594037862000751769966893685405444863201225199677600907640432731961598539461108997516784609383294063405889138240922475958440139818099927173357878538937749474759816936696765370142176825197381079479053156997903847709719733312157659451366372976289946413474029687445450217477465839063386570096238028388424927376348264901120758444770448821938344523952322918896595491353783827148798020866150876612867556552860380308320081716870646579506305411038202639892908410421480688907085744003837680892256592383468794547814347721071348956158302766578026835587309544977364320447925010081806940452119303416951776203854845614091248937155758694634444775069982536286715900664393052911926008895018818686612167688603636874326582364257009584940549525778986786519570448229428214546380877640696734948544051012338336621387339851447217781081950314087280906341389083447617285718885762802436996489297638278675001485458365632809223298551748699309467131052051074121092865700162609346017302681190085449641517209310666362020537263626782388197075638132698939204392938624735636918210024473448739236870159986943224605074907359240283283131430813975769916989049008573749796878749726495407212853886873842511437135974070593256832406706686569923118969388758119900211648793800595520520358218980987735627664704043284284347778242586758275620702450942513180430678542802359966090906852788687258844478667943877102640879255475609386874624152185558936190841878261136446584543838698450050938098567542771219430929297773409808427744437057946375366805867217297865250426755047998793727301524543512928668468243048441536060213623354761861241590278843166692876944479739393648971403132035742872539352517540022988899191638878571949052742804945989477033456330787102661504889628049896282767388007903152168548490604936009851065164103400705101491496780285582017705191762715258696435726445749424471193708162799514480022340904416834896648967934093348341345355248676058147761662104650855616721106026638263685813947411270342652387509081389713567090937063324611138248835577235369787885637184941057716040940177044572612730004622003319436518767578718282149536455400777829393764701452440313978109698738719053874370863607617658160989477922420584159410170887743876493348003872196219910822006200772448793924853628427802138788157165205004853721162195791097693539459822934904576705104357772354676714612187160739538040190299741238053395574764369705716172278674258982931810438236958377281937251564077545200962434158167072245865949891737173057166199620440986791324129986651275929616738709490649925279945911890837832110894842181019506112510140226749890600203447719249825171385179350681217607163887529040477900951959471072449827822004160102682860378173742743833666451225812566176899489330640228270576761675385067612388491880783993097793479918093587072591710732337574111916328886034742533283080669163581913547517796800901558941138709212059454981716889082090618829400585161167552957725660531919171849258976385737394523048870786980510028065318620821807884076905846303183228609312866227140490812728516647001860366608321712331853247156982872691087879806302909587319043307840367097878625142922726328815499732063951775595064780549412816356606648883838660725651620911302089331598362488168470746731173560991154827016951508445210502372155236592130129822605225614421148267563381861488395473172818522023964334090395193330178566622009161186434359856850598752781957284755070652679873744830412931918495947398977346006717355940424359735571857847245302633944140094476303386454230911053496334767937301812851882660927736711923029171095702980303480912307971495406153837650012317236862488685073794963725681899772784649118665700477741044693671334097380434369152802848654170839126833904211617009820682399622871128760006790333060329931302551007051767615742908992831652237644017468298887363908789119512873390719880130656410214436302903640290246995394091750582702885707861530796392182679678654690420803923942530997353321301337932460663050407441256798248966662669910296153233726206115287648018196253259861267372246262965861821642219879097557260379415712894683785325853347064761277067162730501435562089632605127814360907159717366052488968247385820927028450122870130993129134006176401986579958864740339478925790246895520562774879174249894846889233816745667989650560530862087223731646606698372430008097408343694199100592547315866100259930473320877926738561342071769110120956995263415754750834028300787707322612811734605673552272001566247403007366835236622769212195794794976531640535638811326811672325767955981301386264601180990438606894193409216157506561248222438518753435449958239611039644461579038775064400044082137147037252744616775842819808307724777564139218811000899658851523153744711413947046759812729333583507934559915140766064929334690099349880113439549313245140922006586496472767997557191256743536653942395962348592529847634380960172646868768464234097629218167416627036004386842161089817596730711659955628923982384900264808984608719079268482777555082594556680459744154943521004880739660766530793434844808784873271018612933257193766977590241337904597490547099131424555327493754544125998998459617221734620201821269888711589019613021126863933357605849712126500858958144333520070660347389305881676820128978855088053478393226253937829522271186841275063480518303219435163954641390793065503679716643856207852271823085790933028900398062179522394872298733508850789519613607315706354068346834777843680752874379860400736697618884819044903798889419415488682209825012087575152416853216808407159180535723238453505417949987453279575098305433873186872781623000876664703326488732458238834162721131601260189881595238527316630932623378577380029595383657888426933267082738550041384654106885833968018811560878020883375815920690012404844218741276227302759417899707677080263300688186375068953518856969335558138199860712539109561981641844408649150398422053270626508812107239602542358759881645714495171543067994592141102901556054592693317542840176674377807237096238591176869740972266586280272154023433579962474178788648135332571472040202780397591078772676442126588671407151661869531666263339704640053836402041392707383540965209480060756187515570693389606016238462574215818996693182208502502795980080326627421016868063143915269845132436768396730491972552847821362866786354302409222501057388600155840342554291362341341356016216028470242433271939883659842701314558798487810010573735631866685280346200611214729224689994296139450254044393969399523700097043318077071676905864365300816271771372889204728156195406120268838468539149665289325710286815954763138459777957791988451979212472768368362426987668841508638791919471026732592188468759800558746817115837383746799469511277181539107404563237956915307949594216008022133925288218709768516490387349435601604988052222277664080367618152601508686576929655749182978091453007675864712034138430967634333433654223420920507802243093761454323105782220620938253228465024693665611357894569366226874540520106976781697986082872166845221869844892328245089010157354536041961423888914180817219007023246416750302744505242039631302836636747570532931089159670787251772957025149291339729550994335182081267801667813901770707391541603759874581979001658160135710915256506845977730669178837388932196790228920455341735080189094894218071175456771272916690497684087598397288848273866840274344993940550008697302943841045696039531802774622666333359152096107633465683704528052579002063040649437967666257664846966334888813657200878459455087341829155757226784513244593918988639975654951234780829536027586566770943433864141732308411042775997174356867200420585977697511858909212223246482523762002162346797948967414430052688547902970985541566414177995901135052433410750852159061614077753084591068872344023983113911370633427348701564973040393858627694003083324394775325717332994406630747804020060099611668234660520816068114943236751061311150892200014751099487497221229377195623847801819775097375085083610108334108820151844285409818261347918382486099129860295013154540389468329110311489854807108407447806697662420730193141390271232906891228442567534915414179508147781036002016765731397634691648619176022502939184323203815523092915647729380570618240608933824970488823287986488879133840234428880963998980461646887885484867644946287591110425944495843183701532468063810307905808486402541141661141059537209340491574885478019656812728328994134259655623330625406026567790909284067330924014435959542518098285219758721814805205774194074140815731404389182267007897309537863243466320905818945991247565707333560691316509577959432142562746024187967988131812225972920391955573208508705544178521845657426800938800656649333891970340064021958874303117079683608932040876590326463414807945177255653214999650053054185548771003870684051814903377372021613782319862743328408440464213428271270346818557121848951729425273917660709746708479488742380178161019740040838982429368742002325115787461439726072086126048903623967650749155437608431809638569983590904025643305688066137649793565993390929822179039517584181857278088561553017133871441946375482055991845512966973871173337110495717190592826471157321189985721241091642662964040518821664185945133733483546850636448893808540435360118049280433881417294308182632825385899952550211160982803847344164174684950396198863246646041016524350958379673474991813274956468735786247985665545646452664008474226834531048218950255002890999083668742439075560648105457728057378896697496965479499324150692809233142789714534065383241126576027674958780747813458316402854420025728980519649892794422870123981858240611977085154691997365012778644793375519271812390624088607635796575320068760479754978818391733438006704901771749573487884500838984072332882456836966581335873942738080004790087113805627421400870363852358134446724920114824635565937673378463897276189881409460326923860399441241119552961101677322196401258091171682238730788787634698465990413556351061572913453079431534602757556315211700389226394474784565600213730354587346636402519377993374755419095184859553598214786764161753602002583937430686103192952787280153138209363672345102228530475322990886292603224576342363027887954008448703341218659360544640263262142893799085153365725109851581242012312489093514103598176064105130243183037976451340650602239229218118409430863826221607961147129472028256999703279492875903448093627758502164796993636961901497765945596926308203037852035159582145619365211803554369941724305792567242498570017241285655488845305162426027453257973744764542011203301968951550740841940050396740926565282158502762281879195995274763637389367493843665307807323652146367420474004389319771411254506055026688118800065566420097453127841584633939154849787556586778248947475884708392382856559690646455856745950550927189084534698349462423206734581224155860041953369138046788233673830532454078542100959154200917515110790399082379071052538013979591476012078203006854996328595405279967261009330290381517677490922907675750065355382473768702916723223144112133744878271835181324116534973768658319486045265866403335370457190157968371912414680644342758356945341728036538989863741592684954165075475802511996714840120451401770423412452434513859841215302929458691691021983943364309624703178958691182618799524665540826807256229229168960949966015920072783948119827412992649842927199183622967296424446608052947214690100101626543716120493009384880613693607406285587820214037731272374098721573061784884005284865070550846798408076688042836200930811249952343955730492457361800364364552580132259388269005988902098180680220721685315611834790164874486343362819292953515787764834131889828972036961211480983716387540009204743179085597448091489327336793763622507354849458332059219298221392521088397783195131527734197417112169197545686848038452144710266861323991290621699862726899708206452109168704971799708598860698937495548161616916993341164911235142615213672946526482975086750533166996777736166806739990903940112316456592744597467301373950107169323580947487065510115839926701315436951383980345367522494480950126601075167583092271281604223365407387520007429308340861619002866285468347762058275914412358514277718261089883385153612384743337455553699392327397047224496039787342565805889087901584921646271708051484130242845837298667622257700041832080669495916810027472377244925202514786252721962047571259690874273934322450580687766404971900893845642731986572983775755697149279939358716187205225118671122209152732210824321815691282173090166660351200953750685424393312641009588723719653774107063442904251962598221485328526116580335033202240272408580285549511423915180659428406852536769726977854080850541384141136471529515297179471105666499761151751784266553326896789698931432576249787599595347704222698134625262845649809305745557591726239746766147572708570631541840970852704044597193855188466082901562546388319519402870428595880607260246914592730421061498024981677554859476893302622732635970785358008033533067019067384844461760661901432395274375914769603051623969669053923900172474486419906631332889494760394989296370014741006427181750445520072531048679255748808268390143981189719177735286141077841868280223069986547611456911149649700452847749258524585053822589699058062886552310929462467973841967531217053480992908594246230634301394158072734314416256378364768006938382042092015938957484069389217762936320866719124279399395453728099794076471738409558419147458330090890868934009011590651382129128374191770215981471503832990902104201961820484239205861819751178049561153643548109783120406903820782091311370867077075336912209842250015796012814656482809361007917469644755636728880435827432360510136490469035096423466760882609593305185554688317321279973952867274334549314689257484940791933829368132000274244187096367641212880570530042644309458988706855658008503974944573935009860616711005514921643514249547324242056254983610468868599709901660512498005801171422256295271429210085097762614332598182232750146925619076268001438361226000779146817767114624450997684144453227995677474509786603221789432862065683563161556465474416357628943273729834303946500434514757213491048898978008205382610053952599804507631148445442842288443107584465178521273007615126244064107908357601242452018275714509787336897516040989591471227668854108981166257601619905470833915401668227075705877733450598143058893433778160311542319967295294418173867968582821251399431199626219462183102255582393936213220247995357922879896133344556675585952279270293129024662933100470814935850368811328186264868276259153281706942177746851396104415920474076830984177031063469531999244459939956468522501405821813997847777789227479452451161949339945875061902744452272055566141291117698709886192167992268624335338994319922333856763351583600297064650691288046944550417362798746786856220113376052309485335081797676851738284341258760919987485681663471684756945318681630286966970906242149938603580877865772433653164798404078103523453573659670702222946195170834221577985663814803555519176301326300311998938436914064821009975436173246481247853384394822876674942145727947920476766864544614918085764128228217978876394689235191619269082069184583975003668078627647215932674794709955679374544250430930261592192860958044470884921796375248775675695745373366566597709699645512164239219722636866527439482055783469427687908399469819766531654486899111191435806067018754460366542892169179871545501154062331597200895136057726233204414225080689507442132420985784290075849022701650063864022032239709484650205008874332972204571462057017668526354482795557165111125617606978337364357717214438099099627521094850741412402217781863635107965426798138836844497205423758208013804303958840256486128217735380298660084756962257839284148079277369012478213449769659080813869413790230207280306637238357180645661029411645478733216621544433621672356057854138588205617512895297201626591956003398652618041047753392743929509306627649367043388738277897621012579525268582260572913429500153394336888899276952985328736073018557262975729700951326781363315865443045700149437842908572856405216627963337378826207002557651788362432153763052812770284049201132004324395832456773190236347376644077712925802678337591064897651463473578626663093809762871384877768728552222926077638188949509814709796430448000990936692138777881867025513902669794909913536353085549505531923453700792493648581887266330253252958225817290308034829582392242883076171809254613738008799354671822801694584643070051689224423421219475738558389997934485953532425754177420981326039515725680365253309107547762189093029628058988826622190116814083425792344125006602186070382182811644841619243658262092420003318767833117804615094408623144266413553423635866284739015966248093821588225879432250978984307582446576443348682776032405157666138965032565885305021152547286070702702607191046634878735810919804473743146229839615662964787533971120441511574513480366232072950074495622006324301261088369349282559174478685077869388122902750902937593100736001557946668716580143118557872377578043355166345350773274677469645074834401443464937938654084779235894898748275550825782452314774825857911556891659671093354386222925035009966881789336552041665452897280075801453818658851804932581940362628329897528321023134963165230068784192291956637941947188456765807889557155999129754984498847009124586633513482565520881485080073919954426385139242638346459606036750081706802469526016216366194154255600421561678855050041644644612941835382224279959715552194651063847277166272989452803286707890001087148322196178009097161520850726401801253330080245045000994566731436303172504228295737808383435051227484644423788792505119377750067048309279529366245110462812396099791502959648759436972937784453440408140778362743737416255425413420894588571717095977306654532993293094059534302373456594449898453452687609629836672872554459486722858933118468818431464091196973259777121384980757156837514499717332010122079587633868554615820840973754577169456515171517479758642119169892567236811074812063428954107788086385720461371378752465488734016481947350577312880099794267152179759926711358227861167991895186287984439180219796481241823718630526664085800629116052109021608432880549146981893982872729918097385238998944939680163951742713303044702448560581080898113124340214437878420544704718988546816587358540842421688494853675470602875582949530594624050519325702533065018266873341487093483398390993496929960068033671751042971783552598317414996814475992153420070888258468992962932784583253206936043087107746043504530081732618982820011641989188623362275744008699821547372552966650982600344279330421351553503737454671592917721035833007685311690304588743925448769926408005212733244968121455410044134216834503820062276448345771624310410054921024949387636111822884909557633037790477487748803466069921780979639250013027977282981559349973977212637215070660544750695785228520162301990734398353627991332179873737775839911980485636968702939757389583044268403362047041018114613408096046937820546393130132922942949589206206377327284736829297465692843630101352972899651027459519096253301119533504153021262139212382177107689884715524093444935323744601752188334060881525303574020034243987749237415750815382527450383956006812921653057453606624949768259566439607115397904022159455496484907334259517464908860160962422244734325821109181424039682818897437025958781356961288263732693678472722901794851024866255080445630231721367906284657152818896902146736883644915640123490893259451220596059120629206746210720962421258709827067045101780635832405719020863066543118714934606543083734015724413844824488360181755057705966608322700176955021084991042819443379548817003224951419743714417468599876919836684384248732642826766276850290183589784639693886738930467356673683023315286243699585217400049262071313495507705020801990387156177831439666163057869107301518185271709244309790600664471736397636805457765052307474469137879894764505968396068657009360067252139187569807287720300426539887638768164609644235258264530843985817539707436106317405326602930430650660791030532333181483634158606956716763883751052383961311626765117456876397681846575461921884012795835906806405544796775340995454433284812547480664184969751201175554607836782989618169887074042260656872464364696569175207632556290322699204218032602278741573598427683169174233926358693184433712784853778234328591989615269381573694267295156455408194133736864475447974552526945714338284312910143155777254946643482254561266504784268514225406336278349634918664577233811015198000188560332320503410374718841392093121456074946621444311291115891698492692404177929041259052762563526095787253356857553330297570870434524614713834879973707438215541272644839581715405929873880832082277334276198165733404230561647705673798883176079769611284682309265568792525328007605608868900000468832254925531707198054039165913303598012797046792457760678633094076339518463087390163657435556830887845387742502229531984926504021452479075500975641813381731872212970879990807212459098182536344000059251894421504723795159789273951550508298979547056934772610124703871231804007717503568505229038121616270664375793409219333161762762601518639300646304110623394636363430767869469221735171670193255692875164894325979515032138142012771501948960763932314524536161296470468685789155885108075558792784408864884711123276394029891321952176071155858293292010255407014506414117732262098823960741700856508375935080546230011157969054293349995211705829197278287709466917039858846146311823565216760577749512403777390234567931894303545280298510563973271919620526095726139346522810551363333732286299558683270752235363113828187270888361436506591493793319438322545065077875812291223787288366244738234088508152629046180668678525905914479923992009426545533504029067408362249722872395753061286560680164831054507202087190278855067094005512765991387043928431323556705194353506729777983350198777999681434366398807099449074147561758032061212896901951680171522214167365836388878104534795392963351037947546685108709626606136402488752489910707108170334542827740339097001792281008775163889746481597579640690699961661045112122928092226325904269750862615237344697548173359189033964106934636481521150632727535623856475565700874301491824451064648729667794055481152471756391189022945765672058016486721826705405153429994542103645448478168416658749049825283393071538408114174759511299573776519770150234388971820387165492270336051597380597136971484304596902316541347732886703550598437093059053998242574935849108699908002709578936357882208017472700477692960341910183514498061410164971697976411309856160943565790488282676964039509868764556522457648705658413674100859240763729022073313203183887322719094315658454474920580777107322781521552782826235267846566136266601807673068915327744269460869778683211692786769089995534139509037313495902135228615261420793245035800449124518953582442394857929554241288988577283405634385975732648630492368809765910868248983605294127169183318107774198487675578541883610413320004993364210113901885664510716346743223303674472222100493711359631399927101943606138284966530175912362552886130654940214947250066568017698722204951346060555894283118818770908249095666633810382824978100587262643243353019818324117944574946085409477434868096498593331132673867164303740652846599307082705533678859912829577366381871411929453063809647944975713027452348201826782696068244385324028706745399211927482702978311203792581376114014030257810979643981926327629749498246901501929025492873152719625011802102933916355556499804767662207664224899514445142341512769779712457454454232023991367390142541741247314248936052854549716933937581610658195442566022829941933925626148749664283397301417059603113816475541201837345565139610894015687938339820552527854661447704400560857940603203711447481425184746731446622256476643234894388414547178448710382997607403265176754651798205772436592705233617346162717446739229230237085269701924186141879467628214603880215549966929861406220432831476092291747610159891641954398167916040732712257152711978271491396308151208367986071386698086657777698259441856475990101111635643149173680979165234734291408810682385321323774062611198950831111846275561881705748817960670799334818588766122315181724484924055210019440083149548844857043678149003405551047636791698017761256724155042982802295492496950339151799704388768913596435319209530580857736346059696136095225358669941333588760096546202657674225064561587402863093299396464579102452999145133493565701568724540341586319187973870541184112717029938540862759320377981440758539680964873489153899170163847652714506227537382775799258496756200434410950404081044302368088473150507136083713869454109725029059849243836464009570335677081755850362144695998107291204884345408371278937757284787222040218294174486483146873278623096550851193833691403117102560225433652843846302174173252712724861028836092753155005945804962419818715808551706723935301328735306853079231740532851935882145239215663253655861340343327500713233738646174275682778811166717691538043532376673256019310292178707472485594455661038065398419318089149961378886869125376183965578025070501247390289308789321162896347883226275338308032140252544417233722944382401950320743923011869604990540825197213660097115937898042163459854992080607061180092214930410932110946065582924863935904648715147878243374325651068064117271036062149145301193759486876565084766973141627052833692635804132001131063279734151106082567499835504896499758995012779764725522449039019916578691585941838555719917426338734413609150388628282536321924219934585371475390682257330419663755664445165590967433339211043034508615181893746865131292623061855640992459407740836003086321022005091002846182450034300313661615602842373363208276312553918955338834999024266210469485904540589005015957384608025518758291167671571894320779359474736802453954245602331181686469410610970925658273302169102808691788758238346121721315645141345003872763308731317458432032130408918265512191918209247607095965743069353451322920112899444182821157229244077393118471139756056108322812030461196227627926662877406214207658674871494912145202997997753931798874983147592825181828874728577918767023580789150193885399049007764371138117950477831291181242691809800438149742526332143722206936737918465481234874653942848356860824404931662799933113414274651849626947455006116029085184771457889552110938869934210103085946317219722637092380925976162698225999437735033762293038568733493641477638862531152810616434473893442564111801809192267011975443078942203203309753872622145276902163424476039866477637630481182292877424878737471222132437788234927173548622168613789161494460277747274777066720617029407580224158378280445604835259179763951278846884254209209267510131525889553676981035094833936392330823377469838398420317095112877902079304397496203422688411995002731982095805136071918834908661874495361545851341107040479295068475835479640289498375539443564926749140925969669838289421958637990321823863023996059375937882227070550397993913469053753817546517745207789510738923596132303689033202427115700843339360237866118709418578772947780563488852105207056193906920859556278162083400485049806037091512763407615355968931167960764549208913166402476675189129598488947819342121666785091825433016129875141612300445713301312967753105869166058497378681366272804951016918814875609839117165717551120760607692497563986384156813871439191877826214136411062764262677450875871199322460119003453287134218476527951216178281547776745871092573257622372776865147142766244547180001116028415256628464048809679330333332952949652255988038378425844708373135864764584372399372081455029958439779042485404494138001974945300526200643544295519735761867006397639886205297278022800343634509187627896741257773158824694927622661452792735879612897715236885255848614255522047451252840152491335287915215746258817656995542519969536819130524355071310566023384084165978641764905200884714984789846544798898819788786857010697192085517360024219548813495105589996942088249024315470359056762682323368752961883648007162273313758945189153110133688705374490977659933726156126301127456592542625274313867391619636873193174870618957674436332705208625400654352492169264483653030570703518755499404674971330831194919533061621233038918858099720156598315355156727474647908017228862388853852788218683268378623694012822342648366963317343563647944975084939875404160781549652070877677394254180527503190516562563183411682501469259797638611147528939506329713238571888373299916994100636365385536361121360389569371089952679982083217302122831747726176993256879656466918693361182534148686291024893070268178031108147118122674320124881411192112810230179031881178885762386486693451115419304469967885126614003233264295484991728143710762124618144776821447627087726882445277049604329013289522020555013321073522296788931136726536951141671053556234556753907659672660277916948293007969792133998235044035746521406898064951063078522015084983348950564482136984547975797841998748505491315229029826998172165796833909372473203260064775884370413709209685663395464027033380129661583822329691331251392570714225500700445204087827976141443464319044355084960634681988511111333362108980561245026355751913020529895055857283143641165992784728871057538115259147350980005284334895275066851324248526096006166313190467644425696245641174067862092773422900470088827147714809121377597322613964092076016152597593297430213565669047821420340258371486251881706664686537837951232513454804570725961325982069308454744925597936441867584966699883280085625683216039368203366690920861631749262692501996025411508601321162835259215450425518875631078044509881795854110658910858110495824420816063134771365082908820797775268076098768236041020645598440483085104169073390370225444946134593141797895129331396101643702090081716625726412393829655741113120916720867813972223740927926860825711992615156436823932908211640181425139135163613141110274399957474872798534135284866316187910104645071895157063144350423781268637288912319608442659692706572375321641719882446442245117105679486335354764619313693535809591424165981223953710601774038839662937395942393246303652913275990349834758202021354397982578484449480856741145583752903554553211803945685655266317142867671139991394001090990111267862562968433471770157635831145966302250275977672439055571465441712524235471058268805176456339160238953533504308230604489661841054316042384932512502950894628193726543640881688351380339324383328188394184090340621299716731633592783655244938900806116725911451896079666983511596860432099249663392308587515863225036493987678550415140887564396512732655438315564300639195090325574309954464805487475659483514468335186962896644639152656006236696506433487033776746095314009738863774257301006760987748967597225430578900236434749647831004361436262136208183252424460320847055542865295221115239748190972748161185305297993655302708719599078757117624925523600290510627728515706913792125186372812287319222380161827487867461648082151712854914857900007475762714075045101576107874894891158779316590889317090883398784079875793019911725200322804144750047977596215671119984344742839691895016471847014762968394475916097721256899874890890663584173959094720965429417454812466376555327469172857487697038042707835549239935426628908293096275481226626127939792870389216770073807727614822941853185346638834312854172570698367630418981814075179315308459857399090371582059148315811563250736342817004007790344625198443165688108947904950606201333328265753810775383345176600198820436464453210231029680110531583238500516399936775457928010481937933063231523647482467396516879627900263061140214619683536749231053033118292395497444572234987189774893638201027663235024674155997377354577366561920286803730303949090948463677131704403355194002332632249115826384206582593236791904029839015897943633788079140886118983343227975649956725498057325613028445548274348157756512239884688784003187251732227147851369152475452308790712049642433865468552500565359038815859833785302630995376029744322460392196817302284571651783698849965016746300260581722810136676849260263096931554854218963402051343129477231754572024678734233017306222103807979099412974104711795839319721229825294037995608611358297646611427215302018321580128087925342880263321067703705681299982377786643058202206286573711084844784642586492117861408980088556517341436214183834386640801033497411354468001787432317952331765804893146580004971960093587739540263965789463446905086732890404621560157420224929226373166482790179164163156749445768573205294969391509171364305742387506660185667533745926656807396921689118592993765797714072158814381342432325055489751694937482235532654616111169031098937233825346848800530586557349988620361053461436659576025271234466587527684359225429515078794637262813724518360917416530625770503503438896528435474752578314738157642597259644020858642693729582703547591883778928331942641153487673865954940015931885749370676611349071483920922222559144886332048547652218714997039065434313565862987460470101669477223170536831206588759283013320704479446718772336012311930195801558220740514044655795352527927732506343252325135972826172516963943322511310374851173867863607459843001559639316162443516530444700252638972868030565725814703685996191049169547672605982959626244781496842004520980612883699503829745218059768690025198320886426434025326840790187012525325301382320095304865626295119393901633988684200527428715505136551193335089583313207962693124766305902926328834910270056545284164354340520341933320969298184294665703968499696267854206406678892457468477264407454733593747741350755130611063476572831330091513081861181586053161760264133371436593957974483591835140869125455676086293284156703214860913222427087035610403059244132796673510474152719256534738816737918326762700053685739530306486012141144859521855755925963956339940278098562085803505792208133249339333673497207804071730462469543210024977057564489133432415574356755174940442569795811265262524889457729375686810549986436493860873234216841241299112411625229235950281379956496668411095198178715417091554146300955627592185974431544937705464430984893183557541707073380962426131293600936300834229493602882914769783971395657852470639013355567034582884711970537221633370251544564272252896057637692097466925683868123674030586219405661880585042577007893386465148107735977322269562084616954114427129504557144784912726510087608577151528872859647466205479621328937304746823026935865735156276828074364267761822110458308314126087957214289782067854991515853008071996750348780287502214169909334266686781497822147289412709762189516731081640797583046687423277334771431763309342584799465717262384950900638452227153558960556194044852955167985061028891902182591242044385132823567113788689135371448176381004902459225802338293012404675573823625275151715203834101047447491312849688032697361672453543576086567293021654602076064563234801568786520337797196609857502316198719091811646018256935288841212966635036948221888075153716716143064920764209870639432453592500494822899147793937464461728563006954761962188198773812391212630537922444995105574299489702432212083193502972230108210313098630719140016224537558351973058954035091028886130108450213450681074033213969146691597335744612810316292746381773420923108755795886700843131096403669313174884351655256916340342893601268855232671278869224251465676158734592816209783298475410018799295580877288092835425465707758275796384378823792039210561594188177482562265688880999425750467465025148386663629776375936119687548169426013940625665021240584446013348934044733321655243287907083841523874744049193077553287329727664060018434453553572367025847900730469386894380051557132549805400593878068465070177877730761081833333661382386344678089637474955945315495308757649663616648035352562372921101005176894009927861123394024700835525360586641496372640857289724388959563869565667565519359248266393336338664457460303909331029962339557752301558422668639357031466337950876673374172464647670384979515766798779515289411334291601050049477310403453438974536217229349079034400976454336437690451070410352470707255811647238128321420029205355780239308194945561275383248390425370747342146555275701690021156662600530206569105555062017250308228146987402536151778896481865884252841125067897901492545102396798491366079462065149013457047239281979581852467648740404718660875660049115744093969961952927373424600361003117985907530060557171186610957162325801239089411387477580875336175632786178386071674826837077402615132247898688976106922621031845388009932029536514427816544360207345780952554425347484279277315447958493799240780062841831754128348765139939036711415469039602786959331682367195033354502736529623545424392764960112246892190992045244730812331330385877988085791750444692730715801156923379657304874042417499379211700438099064425994536114700257262385121365699984975471474447403853811726811443668704369086235107924669428762355804119935966304940159442052055194384452645442253694347998742357399580452814476410832684288390831216880840884524812667715176784338612625702900818693889530029832365178099225640538511542746948762890583601565237920542391258085223989950627708460090981924865559367310020899700516861964361799430310295471697408006756789157911906447028179827924803493696391077371075327567661523159780949468853327087609231667238028531622159374407469931067298154456281625544389575110759684028850760801103887997611457173718488448463961433459425775291270686925743673050282931403218118226213249434996945198692234487271523534414924408313379887783955308136816048841308752583934554186842986470087078132755096675557761240164075547260186897553870890263407733594800091559147507100985634135885009748762692134608669337848296300165605154625479375832224193462729729836110679865715341591376748131644630046339802198187781539508364164884439904568631301332467191530886840623626289551787318104670453695031630874973515853273748042712686633278720388212136395817109662408123194814251823155905918236002089185862755430659010777654567105072087570779483482867102045616980312471251750699288862514683793409908329032666191679526543307018329499978270764490314930087601534758762855238273234727532604584990154579656913383687751143166246744487395266761769797293257062980924198603546271698740399826983787026490443240182776876210169150929835487775743923823526856254401979394813488192733212105484759292790144473387725188950830150289865129357475571437353268181655892071255037402143167871776729940436426380336086437224205766941230134807714888478868149867247207348180088319968113879407672377914100031456566648892715151851408791453732272011781356760168078045859300939614491382910339127743932882015367098072810891451993736772291540759316304916758469438292312500051416385128427364886124220879703095030755779317023322661820782759151939767030063209398457255453423901671417255358835865615120491076266369914684660413290670507684922642394961973951278528352767291224181926372764611867245702833901270528800575838704114337049551686416931782696519630777548655742800797852426300365025155550733424622474224662113418952617191829259079539623874988957452324483149580032082403595415186040411638670857275277265440551983030838406052304424139148029218341830299069209968869449039488580313143724578393659368236941630911587266831956212973714101728329879838257354094656604433188948379356614183097250917565734214075336695907141947166625210776620331489452270008797863398512374055107567233912851282526846585308097602779408909944551092810453692401153849966343946584362720239426110337202209935625350370339729241885974796988544167566016749613193993090278085462468573617464851800112629773627834071012299860708896322176874406687245585674691166282722428485251039488813701573328765643175224124678439477721071854225978119399696611548325815707578933652338062774033508419856600443649229034198489447477818610554268532965351523598335870304331282327146501053857578030211189153997052203574726175607675790049663455165421704149775638198480880482787993308157433563150748915643677852556966151877671671947666343276269685778012479729585398147644509761288162508255426335463352027242325356898601549723321610963117044448652106047682396459357479565308339629834544507246747233163939544342361836590496129223027677811283596164891917395642022086648739831242658492757917282803328268797595083098905535149512009757128227801282309786577441335111828977102268176750883121281064883038878568440694345340836526076607825710860337015299698599956066760033331081026251510132169416866907227434457788901567069229200687239256349581877951747560919022568556735680445824965438547450289319457966681335596644452280411253009264271482294317052986065408133948148170343881294901367881629105747803794843277868567433822923583516863390264010469580923952450806289202392412497002123617351572535800870892002286977830289897220073618768077939971808700210818392500593446822671311045880604512353554327946037637337595966513282832423607346148891157664326925461045274106244997517841412716874444133470274634455491447703550754725775007217005708132280085195106969143252003217105610437356332878704086346523027353262130236016806906019456295930875876862583649520026442878244414228557385038250982671164206728459565577126773226376498557453585546292005225947569059840873346700823402793662979032820263715682655291941733924670726886447098640530679613858942520176888971631044566377047116197139911414250741210698094446621156250706071403190704638500185494619332544592128149128026426771345445553034437642363337749821946750128554142862965545287582744839724111989198361504844046915446214312444867109310801226564308051598398360554081184541458424173765203446015962229567439097763562330743429439473294315398988939199037715092970146262932039414531301304108390857976660357015290005145287649279084630465153878519396413184186265975340616121311504115899511196928025424868871635354144092200778193468833845677540893573466258006633880270528983251365357173096024753533873443728678033684131739993843576372996721690220155346708250522100438491223221530242976706195695368018975384589425762830241771861066176059780598838222096020028419166201643940760286574957662037760924753551354506967924963760596014397121007703431095644813897878613033606858573088140164270105497333410883598194429643638951940255010147604592785408178645153893146620761919632426857832266393651082304538370012051819145368627050635468042177522408138583994050186446292072778350889959185730383018268454921855098607650061716348595131918773942844402511335144360504907812196613189460906280070369296433033813613675896619439329266450269792323500178284211610231924231567122059876754870854822491953946885716415933741651481508295842779027440971823271099376963448807230812546550997120140505154041207097561636460279878610180728224920419692701141147611658001511849940496655270148454894345202881160149524066493829711009763021819572677261472693553377475895146974130499990154818709967188147378491341491752174838000138937526742396429202976364932673760218692965284186341747909987034385840707660654242679664505946528920285136178788784430818447702584860353546939832461063522578619306565124713253635668325231601130861220543641933987884865864908481852395149379260249084230971020485554062632257438079270374254796018503551992129249645339636023592401248331787824950837535667532635470516607422291843247374131193856605104412646240397420942793287181518960231059714913050256209927514496248084976776464309871484658244346756958841740346827790503052279762728936791774850044287798197922915315903088871807691692041856196968234210233238056525413528480961891381044801079405588484929141241489159376253843281110216693934630719375282228357659399586088853387296106552414413336026136356688453505401096824902454525195459748037424184673979509734727053048900702548232270317197438934749841226283824061523339756203786346626424474893694945451228173480677288593013426241763989923247091530812546019414841515797404054544803811688257109976451009955262704706488054224045855477266322118113544417236166920625272061546871805828321059181701026804492614680113494716318427957151333302906100911396731818289779032293466385750477783033465419027233088736975950425317123319688154425576699508257626125605764720235061449712632599670392072374834970746417317386000775570908589087767902080813218808894288611047823309173226356921251384325627562885380609955701220338355685223180777700762241534295931659698586583713926470404897052835419729097874796361334995953907928929243963269092163055944883695818442536100877262720442507468719761009814661045359629819928873387124174235929261792523772945760819749754622520187280213528343981446838010452554746660154775665127522785286662918608340386496993724541213939802345363206388001001538218802487375050999417855482966560406192501768489604694312498593050319678996620840155116281727188657318128004947072480644181945990720263324900163596178588009121877208325943842046608669529971884686798967728524676783982986638446681904881757477057622383525813441395028706270563746079435040108800038127509171241145818087775425905429188065041690345655907459726946466427661833129978592084064730581927989500557350318882941817449698132776952472445810544897987203488108984756240669388561217286897354170347819675073666309391163972560298956956900847581638439838359565267923709841361972800491168488551188459199381628982644562557509393205116714273955396193459328825974649545104979867682989417574419351253311801750454309208966699866044044529952772910217277777804358521369483547650539113802235359415504937940524659487058087495254169230851275748947804954803575106151292967442131125587964624223179693802717023784307237291621586898868760397858722550452510356591347102251964566211250541722644335248758146662021352879681034705145390516484903825327610827599579751011170685678627115634679402081593830904354093095344553395372244414781022248493226450525739041234677973061168988695520356888223643407510381096181034919661601552928420592693750353844692828302983671355404778002529059193537891902872066304350563509311563906912749874016913883548442822997124961670988186161789855996441409711788449872698486191485245705372560285703695237944451353396145064705562909687830321240512002725098550750580341169511838434000886324736079288232887596762107767582193001236932924697726237337864252474607345262218956990860855869311543025036058976075473752098594035273047158230583907256196319238203583931051658154888122472336281303252054566662397653394967952164226483859799825518813179047992116293151996503439005943509040810287292163271222243902846547234563475565688459033582247018942745744043836210305449233008764182050694410511036732465503916658995751068037539540032201816502010700561957539898487873133651177348188889082235543239771020484487842093288834450938870123358464887990408472749662377102238775812206498626231135520006468355202324476902070592786926793119258150914277386462219822068173838115094566837490356365081738808490938160166790011546562516231995020349097413734680987834469789692388011686804223120848304284952962218949120011042493588829329368425434724364611588322763118749751247555602521467648368650387230679297517676245658188000344729218905258347458578588095058900955743047813697229634768909734935641422567641659106599829346356672460767825503120428917995795579352411014492709754064236003768972190922859611779542113543391913305780027081993402381540947603015368284724669288506017273766423897907078817770416998783210868322646636073317611870636020593619961581462774603493004737467196582875499044266290926590292616432323511791420731248419444213039688979509618096434002016098285289901247600870620370291892318688758697568968504755481332593285013619308088465025359460013241329925257435546115889595150334094722166420700023575680553904236458240479562947600087965997999719800757868083316391620928131229178299055597960802229153783619511172522002534178140653767842308085563781475157560148738631651933808115110192260496105161798028600299376982134789114209289606431847414131293628985289398064530445782765617033409677748836549678271726016556006296639184287315384009484004156065088587965526003986905490326198011820274614101548811819950596844492692783341221314724246641823896254419619339733411727028580217895002940739106648744742995911852505613606271942155180681940546541170917150469304001828828531784842155794854856058471012188892544143348268217388041078114678288118427254730628282166606424020730694081754748951461009879146550398191925904086798157560039038817072109258439712360652941818394375815660214610372315024436882289857791618949454548123826092746064699382327090951158739059585809979488638645951934382501740604759968207118663891454626819112367200977558468143619749182389538185255918561815165020307445908718647264288036195719102383008615400085795307135588034968589399779189183291033571107704993500354077080034032476854097254551944842850596640549326840700169144069337153038426059355376721366944829669111129900888049390164709981750699232873863156632422806332428160793261461951782428558954463422406688863430431601951920199757748178389769766085409158569320238124764465315635011257868520549083294764778053884600204635259618599645663558735533907506544922805537023924507222774842917603087631605399237556716865105958755575036487685627636665629017258930577987726962545611898368895163619957562585074110520976087096101703012369712015678984128608921497730776679583001472075412038105168329608131349684737027092223102453985114488037950452597710756914339034735215508284786953924194824260070425881555073799609750122403132241998453170986200125528878278677882338948309381447950746824839725724493307752732446383850633547431397633210486037493790707353238161202963783928036435889108326134944767386889106167425929785029381200902525087509690284062842964181381031464849249355319981713607150236882950793686917020621866432050945310668335885061142214764280836024791444831941929793009712945095850470061631367010687749526927492287910003468488993528095074694015817266762005895518763925117207537873587963430416164929873498056116300592947608429485549398587767067238089814014878766842302995285552114012029943739265152688754528494343127370595365116999596262875419197658775366252770115846200439760457812339620879619691861040476899892086912143171250845417119707378202916478154157402458087834266802029928321410338048841547972302656133105138363035577358040334277380120920693230107111018322957882648380041032058135608643020003913587322658023133432329392724397313348969673172079510428106226421799372555140617820772421150680965914799317755976988401865066702601028627672404129815688077494109399300106922261029546633042316160229403566769886506834414554471804559030497624577420792197963543203154983352467993834293579789654416353154936187067537616502645632414763995843079831154778816031275979441130736594875642772524529448075499387234428463076612432882426464304597154681973929988425353738626334792674380474041155073849185744218921512663608943083520186115716887939066982415947890520916841451374161504404850875291741838951514493905392265005084377391203280994184126918361843291573040333756032682958063740226541187690650155264750557089154741477450809173826430385642401196044891197086618575411754746761744560697600895595501952961070105797242013725909574082695249083868643873944529827317128972348579530145388185396232753459995629524769333052189789115600855542390253071685631673227321003024562517819251512534694104020656187901459144741588316106217699758849904705158282300390495610487827684434351282313904775865121632323530762387708787576734475383104329700562435516598481628551267642642991730147791177308919367023481126705183375456003329882261403034580266398579521185340073962477814209764515661019707081892969276702582489057299185998017182549758369244490115924798322130237959806325381765638804423704957297525697169006723972802729866802346961096784333128504752791300729970495312197519849735149432858440570454445406537418729979547441632424543083657164421964769396718297415403599945547325926068629304508291862227850352572999922254279082937009414092224945613501232624691002113983271397048648965523184071823200625922208184515424916512540915448375477636996893002974818433224669386965084738431738376061197612710717324975832357808997186879972925670497039748831552534875268993810105822062106276143145258078745016549583939835994648523380019665989258366745355499017319414082526251203213867835172723575348174766781954360047668309744452690163636350864328567251422626493217610307905337748016600977200866808579200874689127465146271174113354792226131362464921671796177030302572474877088494761275957866842419000364903836837259329300108523598066273515199516183768383750009077152372317927611364532176750762969557853235637498495752866528212471344377893049280481570645018740880335333557150831269047721590926926151447702155724907282577675905373520392077077358390051563801639868633823201492938862730310434899115674351656544413918913160585564982207938384995652262983018293911684728626064163162208947956252990650088806811666780646178682756416384350987454485857018983677076290681984684762249106870586821946058033598985726419249796367745606760730789522356777231247733522198596956120119337309657414480540134943174494125706383269050257180273197708187653699566925190560195359294795973084379890470097329642263276039888521622759178533298856619671141828981745080939655646601563214629332517386221985819153377621900162509969843432432511636465828307994755802400485381855514957306268995403998941706767710433986177059028152499506343306970942964687406587846035484545937555110034703484173178894176500851695688769973182603164607603547730729110422872695378359449920349455391747400031354708100187067664885709824312838183772285098865884148537723266640098484267760600864978930227359764741773972677083405959508430305698243575832396149574511870292952395350583742259323938952161069955739124768290519442199695915606553685217427172252156429508437962654549946244323010538643048020363284545359753933095266081627125724470743952925200678801676070556109253074698305400288968476040811182872629926292791264902472813737601859651283844050678973793331088374437540257041835191271460212427396299798852584013433622365751660208832190274997157291139347991222857529211903838057049458165586005055357895174633179035233815444240670596186795585774612380676253331123292580504829800516220027569683812429182639689521987486824733119679061394276297246620985838040596415439813097474296841723453874046077850106722630435127440463291648681689873392402258952661677135600430660602786708563036405446179871652896003123402316619559857885687304417396919693670363588525291455962339848580771053618098543002222001674180021806247109025637753583301504474028177670983321679848804670773900073566453140414938655682336322667688108712296221386365560356920115442725216796898371574849046172023325809021071795610965308324670561023678929368992984109719921751031356808965797768459271369289879102100715553925124969582100254446704031240303613474178020561773102989440953954079999680344995147788391315982669437496214299258322227564034155913376456503215989928007560270658009545856912301683470032365639224993270316992013133710836111963626517803193189021920883742170925148817955787200175014518401071643581123735788747085109518168211451140048326533716497752116829225364107414810078292476462926628761223752445414068090909894540088082008824543956377567654275092459781935961696392836908547425563300080912423149964359095584354566852536839423654121827538553108380797063336158714902455310642489889690214927378828080868072820211483615714257479911507877065228033475042519668795662226006600567801829465722479001981995517498311790951079738175870882040570135855633661163493814384545241622013753513975431343555251445960665665678163381375556177580294194283452850140784303296832562551804909521087370998978135447328734127171475053499726872818747113713903578446095228837859788064702962572574690293839886197096973621409294846072594015956088218955338643565300786157601441983109570337895231635050812522758935079779872344369847624913454911656661768283494939018398371999281506291908762133652943651996359591028330588823535742042955097941027469692046378333835580095215220728559443401536798495282045749211593770724469902740046640841182535655091934812948652411156478647515092662558798070395526412957279837367059604766399655940515352740987918826191023590552706935999714051406292955263899086715212768436802051852716546744714757388576432126475580810018095865191339830481841211248268167259701751622490991712052295166606556148021382242681332374746686190624665951056386545418660967411055931128148667706374746678242165204107025108673392439930699701228159681697645776249752108372677640237562862182328127968701236057602689005233473247922041275040019076048171101154632869995510597076171127870654446271859873954669445814013143718170283031482204045498823716327291430588730490933908980382585203474217024304450014037595886083568206500378577035397156467127066770711163415672036550658624567112532122053351937651520917262282924535209696601627289631458856120554957872388372255444491612435867800501595267688994918497001736657358848381992496394167673604531902628474012693867585231947899186710281478098404333220345962349640156662803572095687664183577714488666396710024187618344370723644175308473510701797010091482170456688854352316369414948097804228957465710195028040621500128231395944059610180231977422629743947403964828385542198920022422293823486745347901278724862134773529691541667920211162780011172114484275076559572833607293024870362690742946397857578499354532933906210820541405647178883196853029460596805682819730119279136120597066688783905245687770248512311902686750478051570151124305582851702902260613455443686052527376682424228125371017080212470858472110828285512637985471602294865329982580700681774705711915971885777410691101338150392576596689641235038895673699933675484194983653694838424265718914645376575542009294189961283200053864105594414354476621970151897376962494538204078272166449037858006545182794600599747082422313303844582702746143264162120221534392526059700205177756112438816101374055286817934312975179947306797337311133566348983386585333808568639933295284350310942050703450966254837359365158585430828196802366321538584789952086658607469779110320925029875205583117884409880581724895788110657359247242867499791322304140335298465279340747959435334399964325918648980896019636389949136705828833639979526424832663429573949577522436708600161976025777322478840585126544553532517273275930446626028871315566755119588296045367500733609458584744151519513944810616713624097720492527512764972823997491958788409751071184556334861340279914210169544771600883228868936724297853400881011581344953706086847315696586474952154186979582317323987164903265181169362501144175152313109822930124292005360873779913083259338341373611005442559564964072453715186318661353373683855549909412968185922714727341676085901384988505860414300912962910330464861440084746980962810415058178679143480211582879975791444154084204760066140089724609287123158540761957826587268194067682637318563752779501846639099535892196625297115235654159785480305232276908613660160654325399779506455755323299291814076410857933008285375482852515734305019430388071291187856644453589015173359982246022876712337420690198886504848868827217806098399788979199794793752498873547853702904770310134953610464408362832548518457261026275369141567845287178623643700637641348514573216226758849129445244755563670281446071835997156667461248865428209782926524442827430792820234104830589580998339006805750582698573857011313825385794309021215304594414858617402992155084146234279967929676239281721744129671666435131917929475482047761836342477426593496142869045425096483324009765162101850501567822391062118868215998199819132537015226642186182129937908126727725964618965028396429803555724254116234272508112477653851122557406903196796752757002400143086853516724970679584587438069601469348652206756647336005533981522665968137509428375297187616814113108273925902157908527119112977681566319792699721534160874727620633385505848859050486824891543786720581164209429802878887756663513023414342162776268971673816099279030315999982736878209534752246331778643477751536421580073191644342698956404042527074907199066365798411011210020456922947429314269373814261725486318505120054719895481156225558624061769700778374223714658872335126968819052631895787596042555258747598462755669980655971965448881879225034098818012988700698992049201835027681311485688876933164737170575750711258232610303590084572403411522899445435905590820896621359027699120213483287473892915617583968262974672236057770956646910936066238640219139356781657842194732002354377034769501436539800955547006568298451226874936817507563256057974175072818545076373390541576089222706179453104807677780547248003941337168778866884029402542551219162358092185863814359710692414758040302254217131789439211375677704346306850365299094705194798181373788259197945635283655189516680814211339315373165813653967928714042343361123781853626565712837661501299638166834592044646868600970877134322587612040628413500589983352486008931322225368419776587543224821955122410305448689334421623577387138129181174266567912379675552267470915100536723759988512746664061078519936507128233963384202477849310375162782363459638549900905027264271418128152874940344679242976922553280977092708987908998147071312592121992183488085605653682368750405065643706704094470453497371880256281979057841373177719620558566308358439495418833309348999732880707581809280192568390666803305663674348847683317777484102730021021106792813187284977961605538105667910052652713425171304986509791392005307097933905250673289454973229362730625962247379106485488927846738378626879520873321445099004659166723233687536885382529665583880510570243392927492604501699689121377307176440514962527165938322110219205715697585370989402223378785142882258009870431231108377886648336923782730446564097610988081154171374219772623216930934753490003323461687316914803614557670078210599628003597353438336877318199624605132586483457189629710184364351551788658812852004162524958413191397877235324708597098064770588359608846138138710985034646224327248918536271629038322671137714054744567321591314825343491546107773468837959299309956041230103437881738486028357421302749290125852365337286533408011631853752801643093476992355838039950902781043901675647170214107811698051933219895043759363207276373830941712626474484389891383826837456987855019574933792838490302579573557243229559502024481041570922287500038346008999322688191806759442742110443398643388732103539339787866570979031853522490693128791341175979521936582192474744797977339027294362660997541395600873855532292783500247938378940938122624041097177470772487115250544618507089586662615729679917086895945770765792060929284213678253700568971494720669585865155111947987358956491976123141094711914084647297441888316991976076541911776840408465938224567073493849055837226988714888860786591499963782058379275341631394940366834537990933050855794654277213003359811484031490896222193626094884532238251583734935015582772101270766054306748406894527700946298315947056969191956665903725000014173629518721850892554964637168760084650058874149422017469438989139935881147792362715202339778900984567536170020444696077903798368299722422856175086979407872058404582332322243651520429979549055642673166293997080209421394613178930737716689277145595646804460763183108726066959546401428678065981127719586619356543312344040800585078267819991287938496831878012220387277920529754185930248575096462487143993901842069888267761312881288327496422928982362952523640661225957645252360228256107732097176814115469512071004049010721497795029726790847915913288989263214245163609838238196648910263080167017655460573985154443854787703641386125142441722010171568609012126292536877129614430975738365559132376432087883265011652347108277824597954297906794208333275594824411613065969367987095916536179451546034490072024460409245236412039990908515184672619261882420300630802871545451064044052907772131395588316259399621245554790557995554627053665872919812745125303263876098111054255999613510313439045013034839774493830219677740997580337281564805637008579695671145588957487960747019023104281348701355094770703062777888874979266087084287080862848057981032280445837905448641326397788855284874538496930562272073531660247815395200901498187936206920862821685547174078311506543578154660879884658446274127391857476556013309189418223280913941336564189953526920005067559285611761391139951815902196617853651282367979008352351095480395156941424365491756667145187004061452372862577021315602749654089536723555082854783953891349655907951497818151675888219717114096680720946525851958565772469544520821896155184929451977354034800933037000576948427867540966482202235811495265411279289488044156474674012895611244666034722009365553148296507287531930625925075335437930371762702255137781873073475043689662354585205360541823988578085091404019064881425684958805618780086966504106273129025855151991699633367873870318237489248333249041494122854680944233614112504330524812492741374864513562982744934909712558240223812385279579510900018639178084598981336856551329796649313439320656403928828815186596784234101969171636553250251234134840478762664886150922446406751419895825764277989155718582330126998592827029958170854905261120366840162773886762410513124772422852422126294882373701666771935897494044554886007387982690296027223792282591006397784279411233692052954917700947054632250506843285786630230511820983682933137822052096963823432593813614474728624828253968651536011373352577126098394766281638052668475430219598602573132972940618195120335421717108398743297382327202325993801489596674865325207370060634409748316178226042512335263820600607841541561831942139996335340279029669719138725863321428486188899974475493892694572349752988375791977831879141964090924305018930072809460449769481104576403090291676425275691763763317781594198041725730189554822441497118562613085530124186708447947565066336857845862684099654119565868142405565842957503680557729398317698962666376304901924708490254325259556718921253411701495956932250201012861442546296145254858375066657597998868048712775666540685140492776492289543566175128215379649457880201288766989181082234950748725536289918418698330642116103522591644336378675279659208866675509723866117625957219908306935664568215489619597002826656694685539719899160982105464893898337783427989694943897015077555806168779870195190531455200493407644569289755824105607580488076370227853759962448561835010957767109400734960677357623764791888509155262168874017862307798466253604256290391627426711952411486181569674284255343597818153611585490666228461265736568981865339103916696287153854442836956886099497553205136813839457024290757549279785632837675601808622219978071331006973804805259990655920770159651937565517623033218202338890822540646576908265993552976899805998341271125391050101991036456024243535603335346296587758585397426141712731175943923072878442957574672497040957788599161415667351447573082315782479168791663570635770600874379368061994582697000474027420206359918860800022829832733461882954309567335602539637734929963329338113331719800052720388180041732286443848677767510830907782896204708492917944413011562387422504932103683092883549377115532127113079405446895902803104167992046886917855609999829052847008155370590644828209887757523373059300993960682471967059406185161901014104872079057106356716215089165898937695649440233220468924886833411585104334031558461427203808595305208793880139564351860606608577309172432853902105722093836910916347455400000286545876833235478322174723840944922325542062797149698238318907623619271989137041398385654784847139187208488992681745483506822398975648934492379549858226467903892649161951942025774462191189138715638896603840428102206362944439545864091523229004326582432432957668396583213838697381203834017330184674078309021985429923393676315127323028936383238686331516613461406670697323100690659573585099059092630030004192683993702801240475302793242297791131860039029953789111880303009455080148122508175324997134895402777414384658896467540776490645891179610772274758151703953456964112302671744640198616107302419612939129133065251634193387869197641748080395186871181725673643759557813924645928698824956761065158032425255795854185343894645985505473958312415108609037595071277119296314647507336375741161563714252857424626352145360584937709506354101219587736010292280057664738866640897734047513141182179960281517184435545227116410773550529025241202998054220956802918731579121520632006948894893985409161242571958095787570192267836163177044456563949140819438656649378480624725323111901949988645893469035725508608215650641338798924429160092390813581942013920125263514345159890012945808167198289810776179353853092534107363079678003437973874297851494536308570541467121456622798098660430229529016868056957072162865417231699187739206363581455445243451154154845550091251174538991608331348639926591431218158282082105824465086126094665829155746597801221635061851340127096729167318524391067322905920037744800459976846650914994486820703272417205956534556629940106741963772900610354840833525747227230848198296991660408118937616878563968220889046849848700900125696557336382059055293971485722164595017752982230533726364367883219223735666108181485025837752176342235448246433883374218004816050932444315739634565724122742315875858355862795279473759223752759999710423451819925339975762813737630861556635335852766656288383400746892573782498873539370818419890612432623392505247018294169135087178428463435115564497749856228969397612017051008474163448750437104327496227578590902006276019454708013793784777325866168918419654053813001586737272370059447513911880169223521817208409096377376629575209743484439512911200444798318676352128588040594391497824090255069316692123578858045785755230881599854827169193052916705699483671008272333378527592524818206543093899850560566823097359716263393311950479716853134915216273077759709572853947686617403921896969629834909621577171816564588623529316283692702304492892736287386758851534593172531010854479655654579202439523335399810175967210665366998070064691301026517139687240483002680124832195438116176804679756525445062697025047232949289721928165852471467250611371773271959316117217597560121728273794908031194586752119089278019464840239338412962005587474351826051827688388827362142220102149161458955558803346360181722947041458814421126527383295781515932669432456430311788038064564229153150784974305558794093656783782956671298281619023391124723624630192267438800330757827523413100942123267838456093254008873848676846843605188494089815071090757026604827159823401537219311996452342377875004356324314714209643502961839677137654623800332091729866064792834448022614070130896480239580520411729789975891568362025036878608504437334588288543699925033989088613478893839676619969796516120601727138735667627273199504770945177351028165882432580382321210939283592779261119068132851826983663046779593564257798018125130608890805904115878903409999075576585034773029548352753938007731839741023305913307239168974200385334763457935899019364724460637255711819639423472483479993997484320133971765334792351276087073727076402036702825526972268707121097405817412829654540769100811405331592215357316822360568037549987290875025347103738591710281313575663840849060969763838618944528065923140600219445956129027959684718143111577405031056053418175971377747399044727040431224324919069347407049484296200581544348347540047557350561899571485244376027771547005539499433698349897169617609395569819725435260065494770456350957482708039199585637221838478108419802477616702855804775547005966716834260375446542678222819083934825864994131016023015868344944084606857206287406109992860820675049642786003811587308232204449790096229570226778744234185680388823324590717560826764961038216008894340853105530532888574494044626239416047147603330402266117202953791745648011738841335567822846319435882351416790066977118080501617611908914376160444207138781162611756352646380978616640004026092303925323447170440428706144834342140734588515253942365455844940571385999900059044124054352998300782396304180543913952040567129436609873289047003403223799920938142076907048539721256731184426246188170620974936793641439435831260163997647560749412561594267471752337711771105659720017877916122587318382535490332611495737633017744899772197517260345112091780237499770397726132930508156185836033395716153055625502041870197084707488446265353562911654791812019243150611126412957869559545414796165983736810555344292039144798199082195332102181967105535438639657445211013498510694305138621717028375022264071929152114814880225694117937379225714278616886888926833406011968561705089775474848802482065554679912038130390990613022358301722342737688949836010888804601524034682480405903153297272103485708822042755363837519541561605619475634141371348751116587389232297714774730649809730601053656226572480490493772467254530359815996402256428781708519459607197568002436421185943813660031929911231647960647995886642782423456361085510473767609426415407100516743276566698624580686331896865612146862284126534268419423304953941315678747475934356605134434414190171961980327487317548799911022519018913535368753587820917595863742468975887461718466085831524351243413793091714440813779571114397203213527205769868838771181988312605837671282638229202072794054554592149066486873923308864255554465496236116363864220915980004466050767637291499797428747584013453565015237167821609386519401076214302785458104020083865631762031917041153584728574219947011220663803933044699503457493692187200573924439940911507664257177053674185661122706261618404186438831567918829161387078787006093835681144063537375533260970284465575361493794372360823558172442397842598135054177682104404743413908164211140863261676018544944749519281292675395072067033719113496236368864218925730206964542159454399689156034661195686773970765252325399098898786754997557400980272183375524824210946029145271864467117628054595266387945040622607930763200615671120609457346156658720188411564992166710263910232101075964781619718279592554259708033612866077655931500230363336172587340655222697943584634825430652456273942839827628518472000714980225565192722613773889378758019699394481271809714273917217410017114983604583364335579454193396362353899461620662138277256838710067638598117479772087030881334639495843369837785360220022017197160672259094985935856067055652621193805829918973529269147863230270845175981081210070821935348544484448302121519901808858455987207020151373007957592166078443366681404798187528366723065397713601895284338312236306085129032945492521143100888170995826131752008526015835317123188739625159440192731365928337392997640445922593565936626805818964471572277958844621313588074047816239546130600492326666573603581565932119150058677192551787641375251044257428443042304610536290525525433097148233811350035555292277090924925535370423317737440392014036218484689538481207812415145622503201159123381534297031053319424611342228966593424380951949675157178979520044536437307264250799300280368287479095920739287145123749801796438397592860525531715914148132819922722075489644495623188628119820944752472345070805710395935714800326041835207377843414369514137030243797244327341625516594900911405224822387929347432056672405291087145022978324624110327657722386008570592391109137773006842121044370682611695282858368545578124792085539110542073748049543012950230096519926911223383061117127766732710712552865083036203824730825669103897610810069282739652957886033711242590770667790855508242933065495310160274637153716325210769201681268666413492018035904655289490827132606602622618359242898856781782696187160293642003630429271342145839440650943045364730399436212539545976486627330831011406384904881638783725299658766825244314972533153249829961410765347108962732325351490105861270138563968515898459833247704102723791515232820639069213331001821293805433067359970859664088761050568495151895510351199940925415476829595449271960144906276773026350340838406611566596748021480852566561612734162404452228341487432266165150832810379775758137481553338923880463482828875273053148519808659683038257197190157654276306197046956599329267564261461661993793730266543330822283209233984055327779900444901767016052568085072837361889514402025757042946851738325196353065392765719616253654687199442242890452384122327895950939316110581951334159544258746925996708657515219177545285454369281939901473904843176318403235909578463175822440628449645512306755587953818741361530116885345441203932476280546667483949401591393008280457167999922441147325539578923941847720306654149021222553350701525294035970515561198902557100850888725370774234447884639478555759884307908542539956194692902678764034683062991729320828256627607278605723404661995509262640399755565300597405080110528466569381738858347273685336872132041274436240637081905617594389409148482862518303614535514013065914947845001523008071320463338606842617254382325698477068431687298399672546190212557040376735088017606863258591398164295562520457574173820720429298120938410860644346677755105671883202646248444603247542113451910236153334538406820022811544990523636098141735351157561244812945430661861891930199169350536463794986740419947871479751268399818868796944637915517641575755551820564901619099009456929433281330069925329080935070601069634363230310239627833203367424116366321048797003531510260225156435412983402958548615758034416166496120574494350816574656189952811309666222746203718926137728529009988206488451445861033299190724081341677174882727963575819925921245074680629661955621232128804483634520455875400416800838179445079927534992882759678825689612832132250590326695061860685736539303651512259155594087168223123923229903306508037683188374889109635763328102534132012492337439756535723884602530417413712484012609798314399327309193788517813504783270340210461860339898330543442468908679120841661042943096065957469037180158064125631960505058968854546598808934336233122915017201680581996655619067414405815025992944012517607155847256787724902742283137523065476429472841502394271257507919839078812130066932843790736031751509422998029403306217506206177937896951349271928195670420082971095259051463587591044971842824579801280365149700507016145366771119362739973107580704374223972649204185784611107570935809072644529982985777496159371377810960383960602805849556615603030721260052191489989222177633127557844324904594639084178210779934750381993519712560393586804453584574739112402188251384765127914716701023941985717178258264097951726712954228862032284701204703349886980897715724115771699014605087179358000430954423841619666770404868003636135075207341225830322541671594750084372254185879164052940471029351436323881517722753497821203815737675304688016165168754695105015677282729092652192681364124536048935266724791425439934010316367843223095650848052043559571199688056621283274974537484667863352527551546939572694255638526658978700039635541118117569944743404708734848620903151378085657965904557721770832633062774913669439706083335292430598294941243386880650803265133100107355037086200795801320833456841840560896340420122467543780131082269161540243003308669401909026450580190713785454990264737580240716937827346258737855585998364652470255076588499107364748199956299387311950604124055730351076716249859149922714511400631523829713666955606195774267451507485177418143846158756429012077042083793282063073419239364116558770597242367534979085572188917881689505158515527834651033827496486097360429477807011378216638256277930955954173155784334980378341827355042524217285358780047798123545847539634488846039378308629982638315940067395502327139359975331276730006796889697101352621734916432260411361905498970272235312549919114768543608612306623031363168317727803218979872699453443673715655926603842218204820528484373951633349069194316614767143371147713080163583441539394917774674980823076635778860617854972447912665130577012806686260542111893536164911007867787153908162697545794690701557717631319492503621832401890231530800884608881262686614679639448742368682071461220646746799953791041533569424302909387377426856531560850443191621198869456216434972661966110815660218089515507838954659861296266890517488675700034691531050085047524453790332110885540378299926263388583033835428063323565344338244763441672218914843912904805438693378815569523940597434454149390772280504608783292015889724759465973971395639364826166251313138151537320541651957567913201082855086539117073954469210982139436671978440412087654662680137976369657387237742064140291726100246184180423209436610692034366102750648407767032139992374234673255083553150014933120956386794463113362144526997077104614515217395298510865862574207292402657098064678127556301175849442010360281690533588575521099236448913596688862301728999575695835384429955420305507840994987893465504945418023048604513526627574931408123008427849805130473839106801259585200212076812703455278426974876253451547647281506049622220541770168806166226154063314300741242825039471128146527063468089875489104311895310083930454561501903032678012652465593612912818151505528045487127060818017968714142678703248654801939551815535000342324363372388836121373289360588797436271204595706829321666521235159620390753459546186817015449922409315297030776625323231605403109769263991237782724492801712686295693738599128307806240718708818884036075071746093402558731385735045756285619608384641299388320972341605129971402937517012173907883993695593876574224927328408087509868603626618598526809778427793346113169704543019030349138580301502918105533767647664111269904310515157287838535625702496071006882991228739147739442276322198230460417118037405455473418545228432353386977887001713770065665529525083542622836597210499503009671598076361403909272874257624559983292098096559294322054605095263848482192877915802642643237910655630576082083424039397674899437179764016926356994489954643987380188687367728361318623091750401476567898634746165333779366082494276393900710089691659755965357959849957815548360667319900233896742441787371744611084102890012592215472774543509768873478161173179713128036210198650219739024592756405141127889519391230926590121945582082892080737877487834896285311660267362628511804890569602559208836181562140098750126629506747243835871633833753088774396179959121825599378278851062430031746091761495583031988122973526047849042470542613584456046866783806676308832713319391813142446003893806481296010962141866170012618203764230571630677606459436321628126178260167319377531326359715791052379584345340401878226589809992109621911920314495337306451956413952989542880390582668534852874333941316723684289278315331266095099288593643158967524711935619093394108796544499352158960127374373928310299785603871444186093933579679333486797731916578986395645921535350440465300668254283751050706728809686139344530760781707324871474072170481431021065438057947402019527695265598225599276375658530127295092434912018068737522728127961958897457572216483868647522425189363189895197333227863334245682565948732844625384416830286542210450885444374624180264759713181744472296471259634787197148060759186867681334150037098054006057712223644659800842395554553332113390071182493923204844528088667645945208292437496431585556917575869599181013089309956238136214010073792317102100237650601094598705832123636089954441766252476670979662062806217906265973411589113231541696748704299423742134045386096398694725407364233384745924245774276232032012004023684760858928396197276523452137643628526453085482359380425231268179056346787841853179755071278880355067332693212871985515968302786188790973634922834810193465604698260561280448159211976444799658492447709192211014815693222252166953541340078495849783723227629158535448052861028432067525690978931486823655003420085773560037743828947932821619801194430397453763313530628392234718172063197204378784035555733793107590575608627198576027142274293250335608689453207551539582070996329109311000738915389886069738779052502845793431884202385811260248490921987052723758327892152799702300958664755683108625475155429536880183561575674764313385143455804271997427968994639176470480500282492465535204629788186176543485081618838846090452309028311796471737596752519642858794080932040099700581625352890088643435143729343881914631701417126410027334287488940634483058237090105335940341042094746847811434165187700971224361198228582838784887828538896574139876832397399605409625448002169934307377362021628762229504868469030390950946015236893951145240808837679584833279268618803535641656246863861086977183853760398985195494074639452722079717779603328498725522740792803891061364361996288922685066253868067962555679384121321564698505973707755955324057189749360612104618015902948899720894667357196998482062448363482486588111517989236555080817341064013512983514660681939761019812307584557999355439233624557511468297503810931732165663193660437846488699715194316222491582049925623827084107465472340602315660889063748542417329131670453697740761878385838566004436544985219967644119693076244701703953872738371910979727317497212894953296187451930473458385322156478503560257866591154266306019280283575567730999923644241828881118879299831266578470152311459984634209213601556694644163836933014727501120456020481564677330165549849177735398084837552292981727678412546844293920223229321496037930291256801308123454668054306518790508411789386310648712595245816456325888638284763413568015150904475687548657980637461588515483169683107185899299960957006393135922968633864115950035050984765388108028466404815607674501029764053383025029462594538134953125518256570659700951017218552931843599756597195055386655795645763668656665731742207601681410651207344625911003951305658568450561311243743237119398907451101810285562366535611367174666097573402428924589618877622512020456569412361013295076894280620317985887964176101113791652177186324859511017697618144070859335428537847212502686273932683257603746777284058675509595849687303287918000255834069420149544312048756575634390227360762678437181206644988741475619367790951446352982018192740004665460397462912652770410142128763389241279540612352951104690379126850835811794556864030177911746215053189626216297760791693221788969197413291816844900205188898555000060246705639645149205060408186933678187345101080808887677297487326439129597399223868496272106388669441073047755241297150113860221015694669405426395225629192261002613534443337986275244614853087991200697808038275753219552164631848406870810636472057817062954714827434460962296133104108023215589244981390044876011379643869677724417169420445134270448599806682179362927904859117175484899593821950915008174095943531706958951551491073512310758504680517960811136198632850160593141497662337788761530802454225562888748322042366845054402758703275228074179336825872978856679641127546131901100689466976684433840791832319358683775197781383148015897680357330752536359900957210320449132045221053919664413636491152188532447190570881082578860883713464367327768382383999936692241502006072720872858869112458896455809047034179410993238696389715231871351257707455526638792309824988435514905658253358320904187374619043001983461546384576944225309072382584051782251408777306194840231665857596660745701182541882064490553975898954286486203819842448392656305306035674498116168571043379891085878798893610398008087923291401717359947313531588938557630136968699412364814702456154456129527917536996689096805792464878643187158894950324771545988602140891009168434143134054807641657521912259389903126951533447322757416705226727221629136246551110111347731011118967823107120817659440262558544598608330561827910726119131027463983374537281688437985242763569787655583120768712320594183787974095668633075721031623021836578497350508683724836810701195196817755319366718590514984682037289776968676382733031653136330675861010689065633837922463101941154758286855051294334309697909986738700737987201244266613142340557828690670808224144518308198534268150543044046513232242218842609999689051151913741394550736740468374331109067755450689941352684748156576038395324911818921548241282624665168580086812903944602569131980106148715278460732693748166402852304307932292841676317195590884229804143152589750836449413254472778358774712142040169625248833154613493463858883351028659851413047409952072537647023016841811233269381560956496937541921478321871235779919758395014925411250520686578745941549875344520002861373247682813210094389018106125079497292907539914459516966162282502281185621788451088711953965645972166928070850669339540872234683317844665929976136090278878193598626794417611253115752779668811065996973946792293935560973710434781790388701270701933983981726149623358731831518028325970455046569400916815919115413064091117741869688476991432499645861645205181615002056529310266524478649773071924468797525956616055140724534026392845787309050662119298625208559302553756538309741720293946594069072401311712607962922585047322946605571227883149401388024624691536323064309586786446714229265995018251531156002639458079793075694820208398407200264105313404721264740118799479939607562036454181225970089664316572549195088105014204576442846183103869834767087824733853680938953730915977984177163558436668940592699196107744245022582642431281639333204357919587245026845909674520214290043879996323920869611441762434206653642595295298056527729177070585083151232899925397062172230542913261000220993957681374406203043329361265773828131350338713133821963980109183712753381948536119391379380431653522464656395489364673677763615128147788432515160793930712538379598124858795810743383010517690988220412333038793515255219237899697188956350599928939586061157587630876810352687467948757914606459830063664955697089267860209965912171463044681163911977328484866818521269670262928557586841658603532021350716380020700610792488075710320992524792073403477205805204798251830785630463679355771332754908684177037347087157469751973061986707919230622166021990263991064238256451657175755374861949436489413809713335996415877760986655830353889447301021958766580184093601168998600949803657443731101853426204684265848760757027869900910863836243699558149217616509171608047879506051503839596103420578873325999238882151198777809987248497139425956936583886122498717120857516176825628856203583085462059668769558895277581216957113491390326047287868636468841201435832964892387123176350287000289742352159200917556218464170972556112494006051158244239052330182022325328158308286537276050009391784763297944022848466526322800559755668260866912112101992171442065265880538734788706912182465402871184043842996466414528210642021329798261095248935531819094579735723602437461604060725642112453960579571309019638678451439141168521828257170364680099846787556933918146741723657160278363893673963948888290824136779626964746710896882619065299521919268870303409562110809344319105249132690647896887909582501768570576820085331114431731600067917634360617702649795498263320629314991862181034998285286467203912170613341061095602523766239004763167086645841277553731480937000321958913216244552630333656712224219365141058282190744038644345444805844645776410491593793398788124295247541277084118106321029384184916349181394039557297022316427813748665019951777519425564607287871534164932926850965757391329633814107545942382729298899105611515470070634399084876360620966169853949619697106736233684952960062431445236715546268033099547828651762544882769661787155836212079877757275517389515387567310466248190916656202329527379934326604727443594077007150966338382713194441198644148256687613835285699886448758176792508992218799530009310762889174380116636521370118565247517950859726064869489302217582567642788388559291280696781918133432672640486178332045539999118850625089051425099348941342071753890780352045735095584753728760927542417877927622164005014506419742033687433896756506388910485080811588455140479638036216265843958293109903056792231923143725917447726523378938549965065873334720993571918592202804489904121783568318177928937699633061550240922074008491603366124770837554470248617728992446744522125832379102526773125355761191641758852866654466938794441532787574010993179598252765959946836707879817259315873477615978734441571725893940109612698644387196675907248236706668384999258071471003807652770988975777501306569035505813400166975386391918239066623196162573208098001508741355467702231825387953647646854206842027649179670742666082710086242642884915081699934246350696807427178170751090919076695478218125771174498429199164550749609265886060580634610552476245792978881691088921112014407244090274590901661379174837030054477910808437100557514449617178781458027210015037334945798841696806349382542314947543173836304099810931825180696925078358239481693485904163290454352540878914494829603124824533975095812389136248946172715487778123258331390626439813655355478581439583843974600458883455668584937692473233754475706497590882213220141876239357552469540471726100651376357068829741520726846697090232267185324844635622113581083304381462352110171377460412172486388017246722207395354238417666813218853955838580034137157136078841443418612553586775961792611402124645968804895574389554553371140401954511523688772845179022741326461024140421808345952915488826288246124471163115620041313398821675782321431356794454741563063735854931479725215453424425994919424420246199045907405833104264835512318735025289878542511404435226701389229733199101047127334118037472433419034764647312566024386141593982557985108828449864787615086236891317412915027371511378834639773325791450360699899885856111682495332156227888427178227882120524682288494000982373798390753964642561947852298849776351694050570209576123634020988220347805608098239823421626867079620237531237410753059644482276974051789386439885495959263657383509156615508835232426184721645665649993926651369027645334073937299544330988655730701720280448050137500048187334602648614472592342454594787303467868192802152871668081078057198994804370256896817015589747503046127021973148203446291960908996397405777505236138356526747945365972424447339422379304227803086098111762407928481691642447609538115202983403583332916875026647620164256644570281041634927732561632207145052445360161284382930696060675258982002745854590080799475314602685410132869423807394158099458284559501953651953097585934591048405712195830761588533673050683100154073831913817873388710230541603345296287731653096974080682449322093279686694018207310927707423116065106853708428262898272379025345578332944008021877517416400519618924525627796602663463689922004795443978744577675275327092285957736242607486021191879245102107066816035023287367634168875605616249664825441102395113441569695694207592693286661260782506679675750465609264356304406213768881555964812712748631542564442863449595622448130452614811724031141466682389987765457035203555879835809904150168001581865184136423224989600731126133021196174092772443711171894175805079855206147993046057659588294543200975037059883655585628773969742323274989968254022461633887566717672497407348586187474111001845295923112591572944970358898147876549820421780862117577291791387112612415890685029446782219611070974792244893484638575367840725747024800335729944649797310920914600139808285203879627941816751782539450212923858797322256719830538767797160903798830692521294336974269184998177733755212971546525969343841950584540222383959603465812645427610145786165853039691721032366765209755828793387674934669722101538203104863654591193479100905873054825792105507149483853010667730148357407347161156286402445013805692326432746541075171496704449274181191432683107609484121196597492051851612423982220084989054019970208736387290173830049219705650714905850613434104962271547523663672171995097081127978575726296500292253546989064768123333344909644450967748551548661413258195336924983361668687245815034312810426374095742689005969231838558864199134441366264080427397810467975326573985257055743628194529648699875830342284069548742644887593241066482676129835841184409260456334251823004210458894531284934874804366407538488575121229017770352770271656266204431292206411670009150166033501180874658879989372037639797092931184009412068427866983649052921401070736341731170592473815540792972057652442807353178047115835562383416100848204844186382464343993304988185761783170784626301968311902409124008032834684202290193538762283003645630317390543514496886163422854614515054863017982423793319224040904434097344308783037505218124691137784835420530409002092249897898960537441162354608730546597170897668166462047115645689205964546830350324095573593489408417109174077641116023193197183653692588123774394792398631587354400060947657237702078067427351213875375971534030549442126571819303014625050354822895147216555946404627384710691709229322931067017081030173645675974628130909377948247769050858436628214376638552918554495674347387222774706161887688101666937397547900241697421729205827726245204273106715470930771264167217374420910879859576891952266354822891264757809636606933156772065287147246773644145537814095089876207271591131156506278807126760791860978340073340510903722995689181821021351265344958824274759744682141557693648485603704765588649340680357420874604056593379405637685772604660912753091729085608692694402138852876903162182898793558777944506557072735069624754126019413008350282523010274540206357444679265524300166002907467352001076101664077060027025257552900097110287156161795707666573361430527278690808157388301500622674315115847639422373141774840264515712704456727376189583191413524088278962303101906507700194761148874007471931921399229360737611881868357710534031552339638659040677583534646366099670882188982905416375332347095711192165371193322065654753403136486611482777701271781578631908138922838708260620077787091365516745007721861551236550686156547362949917904765924616138351178479320699613151242398387660085502932480319097083932761341713351789046686635074735733506807335678629870207759685428314350717905964239119690410137037442481954166723908341060138590367832209711460026188274625817213648866514072330972036887056836452051685726513306378484151682625594387988891938410550200674953637925478613084803145599015319818743892438561810907826547401062059518746475677670929833721380794715558812064512839229567529025653650237952662509956612205992746670171395749454716996250473920775811106490496467766699904256271312890770645477954294457185846787909215351082761702713007350898635473208741186740653062139364458823030551609439733935554470400651669741399701857290357724122847822373263068201123833890010369545209981565430060853291339539214865264599828023436894847771357994822274574819103728008510335892131529252242053947763385583783459402392389648874011228105520930248361682463303272140810229711126842362681959836378795821752295514473859355335781053863615796119133745889122702959374483626620930851251987208855814769298407985270751898331413375565869025000095434225321021500029811630875154719110848066538788752359926784230639281221055445145134789416649108732053866468345329830045459556525759099261221130829361474423570155240344404851481195508868119944323477134531659021899405483702379476867629186930942930309426191888640092269425534890876164729462788813282454094188614114723269589475667163945293808606883769399636201234073589312036348471240152490222422247204684305860096687913933336631046894703855597279106820600507492188086454755506857081355471642598778792537391008634773382547147179067712749535969615785082606104483334541090769356788333871586933666427295867963990833077493249811670155326126821402498180444849037644063317055546910212176017645294842431833428712218492565262758614907496876901159720457054742480741840102547767751941389771095532376518679770119046367576670794437215467855923884816659011932691402322151279622273014760615106850314736640883008302070330346613473223217527279184514192690682846704162812671562171333828929048262328147278700668252779603562556321018865502732187639301059420099251660785783905704812938722138921651913875634429643140634974013946054223878280549764271645484955697972130300640066126823492333873502754189744188835930096350684388695758545444623308057654680622048904861936338682702994866151154380486117842507223640593119136350942429738485550441765745285157552227932293830654604106860197330013847555449101677925416854077314904539290336457121914936876625675473290467688125668050486064709415264388911852696063703978129226031259794051592382918757869659078194251064076749141681328230029725027066151563313926061350958311498595671955530365981532685467884227616210664872589127396572737022123770606818008373053978796265056601793042659311170893177707718184268531262159790756944733498275057616312284710476396104496502525681943221423907997445015472532662817932961004003366680645431355842687866733482601130441728646654091417782020187743744729542438739820956217421950723703159543688386030725978075227858293275240142508220854130305706590090059455320204777708078257137755585449469143936477217819636046132679029264153402107897599413853168065785974842827962545278145486903997116190826514525049711253279595426653189027014664827327865514263854024920104251408674367972508881925949846343525091396074168154271320280936985113171042162528966946477480886810487390195637533648961710779957753830568302205510284121502788876743681805861861750127846909477809342973712561983258669775013241204342077957620922239781997944063832741738123461669062726409500096131666798186866502227874713715094869247762877936700019604825064381827793278704655962000636140904501400947060238069250572805894398429286073824444788802970761275876754160987510704191776001127059052109411389631240094523456837512715629523102131511594275125974614007375335332474625446489428642907519450736732545256298419271043264952106129605076320116512849295901032703666968965114224325561922563372789589098051936234680334942341518202902566384667439245167968740097371149630503900997757960957325345123259641341204747932503684524561786311622238824451545712755395817589937728742020662395212773818182129100107272582328203952775732233655959342314430726315969755264603604740546953012790465548156976146637590742678963487093319507021489877889561140692488015187558267814299270738084192480859405518420367663311497818354813947855842339977773100693770943058856974434435125867048525003018892559604883919402574105704853156148174744961596198214091700655855864196386110181385060527117543701792145053705069289703624214337887209775200819144591199814360188770418984291272850498709890880762093274566381906595349788294506434727526705273070292956363782929018212335202095620070062437351361722256958683725083843820783696671973571881863152013901455458537815010759824028813709253806281904491130185311901841276102319066578155885777575907980912070016001969248409832730143822795119080624942466810814222672679816717064658066666098759748548864250153358591509365392528954512527666215744754143565031013742193774662186292900254118499595694792411133218251616081287691259832320131101267340031749614463821746159302448386695146491423472982654223119235884523361035443604939022571709972584814341803346152332447549044455173260765910070085682942352188890321278481626263121173158111880015854728051553721492846624718456975322422876681500763186038619606219435813448921662103471298462877507646087599917061760294615776893682361047108851918959481136817722872328713096902677608541187130064933697764312691510349300844396822450973815153014243783967763359798172523513430637285763013831952821663781677293495400898370359681379380255064441515249290815909739366014718110820621063420450407831729326700660747376516278014347229322955143424575243975912435946679748743722769429688644888814421484855111948294367721308133275585905899659670065268320840796693835708623533330863887725632354766575965232584513413713658397540959251852294034364760748131598760537397987266179778805871314414598744611681939419826925194173322947102159585027725243355245678268778717800365613841102942231191955805313383959699984470096924782369169614186043004744078630393829342370559407820676680196237674588460608625329790989961191621516757162291874786698712787013388085969348306332206154771969166924231647991142452986687193868938455798547532168291258076495388746264844748766648973461808407738113401216571791880123943592018439024524368837732383581421793352540474431038565009855899860010306229757840114576029132971447720020854252404968960823265758203468251401771053290867319888735453456550137654929202707413108927680559438276764420347690934169718808732890873869376412075001429481029061581120107649783776701064172147535429177107843449357313892302647772316757865706973811202447476018825310666635118739433396670950489224953770306739808966692486113588464498956899255988781866898336959593327829186196455144773749627374483736041091488561649704345421693822084664126240746713004551270139015765533411344220090258852977068207783788431221940210268699945208073896802290685103595217898934335711222118958992963969863864870516372077736932618906320618232753235389608720282404870373265109893712087635580549990938619919713139279708754387812686235237886057134265635187568550879300845119601447171425657104895987490406373448057272958628710913775617337915536871168591335402755892243074414353048020524841047250312306887719444017113258065000467456843003811200405309441110683534294010232875471256063884552913010172666003880384030336413749981916884403016885671673903076874056235616362752523086985193011895123451423785255553310026629173581284195726664912867150073093746747558558652982626885829075671918856301769890030166945433956813348843029562839757019130824155671264165913724401567465916052691471581964274854163643932232846264716141205718724552363415788184771111869815565164282573930745400327657528730385980626326975870386226474737788724643062221743909957933133898352249550040024758766778245958599427997735029026755235523371510553607758998738690305391863489092767036166894797787563170282366831953040027448401129610891488781107185675299551253429025541620389920681797404141387457695635071578398735719710729367411648140235307643286946235580940745437799207585472338256837082121434462516714499347833648804089476352468645768534853076947242505950554161816485027170672440969713049609329907716991776708226478853317322579149084947916303724109938068087329888454428384633367256415287275361852103900729246763027821129582546531936855311133527462779180071533264953669028669553772006131510885236512114528187587129514208908372592447189276924443763128385572114074198148754582630527938286009107458598115614783155189875962438571353802060805513166189917895935038042603351831031402140044518453685516968538104423029987333124799742279313542728657268315024419068259315406772617751171070055044236965779660446681745251580199669714459096951599444139305334697509555051396488933955668400817335254203486534761220196552886239032636906136373691918633708876116442721633397314469104860194444216622524896424599431803323761020199658851454496835099749028780889384641741443958651824035384264670584270879962045383689120276863592247679563859741722603236051077719594928716073759071550463179017139481345323721708493709703664077264494830140579456245909791756512263248135940296199961629379656353449705490472030436321453348151878553432870487732509285601934575546095324453296887746049303470550866443106835282298193513910205571126155484851648010154357695392253809401473617153126031444970492957184200795686389193221441050069873630730833462011037014737520702744361291326809767605698712700822102087974287715402225427426341529012098949769815727104866578938636162839799561686142973693073188635547347629883065873258317938578540319906660516506967115048960658923968341960944555433010478269233077362100886921894923372283891695896159695819436939319712192497042450260766205146967520656188512616038633437507766534511527311378325183953361591561155677657200320942756255500117643560048671993821904913877516004807297321160950282854431638613616390087455758733582410089228144002881703526934605709621650053916070487761377255502794935479788390145778754445274254103174661118301444279522305755169702138691315896747547917831049321949016748978253799314082997220680747329560287909369067866287224236434021156502281183030743180416581677878625653777263637531360406346342419649594190174098988901103974363827199733309822658017980674304858552282023831291566692166133466123754547847305312734169449435722987155352085306582431071640084746853735875023106374227693379493940819462207173551653753782439541904524205388312272910708488369844684794266358129621985998152375670660994016990129272804125287719679174248860967249822438280435889902407973598424285479686412154942282858901936693561422046330182358937061375671692707996711968052789931590801508822340346010065233614040411062984941638931877911646655960843179254483084392349694918149488385799332077992688303499982307495474430349298159923852441972713087631559699052586805346649072275853024303759531475937538229523348655665371564181327055606534576045762025316479611859072833224453184842889999783919801375022830281264635341007447820359650411243572938040058500378256352217736473938168644186266829175686952787905480058276263117010154220367518106812290209002112061776885257009042155144905181871045725999777647592506284602370837670502180618617440804859235708074659959553260989606707978499308600568302696116942941242311601902026298174265173110196014709392685273550695583147040753837203156627188254723094051213352405032250137435659176940750126844899430310321239764341820640431244523370079769772582961982754047772061435363915393960518366990183996182759046562120147983088406035255973392252959245775869122727420403085253350040396092820275933867356059827677848752763571052891870131924878334998093180251806717010997402124316292370362244897555695733649710365150895576867775899830613322808240205992843576005688539563812158575361968108131906396304038530297641159621856351129716015590144194556119038894844435954859489674150868947381476826202594987610104809547615682008861691582758817203192687961184346269807224075590238196733955326064496471224374066131442216740178957633983822707417333739092342447934815141315333803556608950529642545696269640830945993164885443765315441127118130635672293083070500966169618257025926460169144752547440033734362601998138428480688997529448526451976841173576089462146383003102001544875280439581343668426294923967631144539635827350044357689833839004304355936155838410316606523817603251545893643909932210512423516945857050967190695143758913045498425344872936362049238305364815693770093390853987533961434556330171265121346185189456782456251588034246272127645793243927400476533334742215941741169157654821479081933917633263609563349509452825894131659548998339908354253825406187877558236145876263318544137454216283806851698083528540576189744387478072250494600044134399678606329385394956731192773013974184978920117687663803588833580697125094021044560516682666352425697912812498448746200571685559499726118171589725923701401098402801731046566193947876272673367637131557975803702508865262209775038574836910320923263835107936734118315316166167075119632435847400177503782490670315190093140171415802507982402841344695174590417436846811212504444053263541331090637235579686581548393319960515819879052509476644485080075112792151043475326260895602556712881683790716791237859765325926433043061137379562838830203108291465636208580261131845077667948930477151834547750612148727133938712662605457541209962460226377101082022061967399895431317255030572900143837422927907829289528820697018488377063692408841522121640416375298693067139344337601889711067357463180622764598982191198954930107562502581034340961104822458881453382403939353735602558826375144357285874539727719940111687870147231303815104058853747386484930092293961767016271045839894058808099210487209658570072356175992662134353044214854981423182495546584613093881462334375963094374005679618192308212974777095643799570275740292395636819338755414017545042602749241556447132406258529006240179498028197232395574958325726235263982523114157538507608678159768848530766009865307430907704076758500749662973980287678914723820318564419249788829327758973340453662917354464318517048660242810932330884520786377543324563222719707307210377315662619348695446630164261330487674190076535507020558564606255719627378356088275371602346982194966076830559387538714388514935839919708367121388946649359553905685347180004195419804306269183576099807180392171171726421209516355145707089430054144044772319144708618103486131315571444004961127427832605940224827157513970979189800138030968352506125981361348303173639551380968097021985179252762636300094013200281110622481651122591622913193136800683690016068130211269706963420062335040383220550126677047003167350811973214174582361292028712330991528436976522612818400190390452186575749259410710119991440785269091755386661070921704580561395633430188365526008803486172505714274217417768021859149964393381284344464155941017350382240190872892858516400620746019705683781416505843853997131542590586898361389230900709844549457952851683063181292124144573703786593813304950545572901120799878177080956420264268062307301447289779877851097288422035957123044917739579236104104209765092261243862579494076219031938415054020187125585260297210280454653105508951431523821081587864184929275664337775103192417935911241150210461842056676125083985778980814017635307099754862035461370393917129909779172462617691975706188248070127586739607004614395771641978371917740241064775135867752244827391611340059797003333034533121216924105784368726245625508722278299071753554530867927416519708269714258170567073664631234338602738503633557346827937002944480044092144384600680971461563137509318119322576710212502767866498832672468304507603416224627373856488637062961456863601614757069745747853399418552120157937180089076646871555782181001628228690480519928681451444635362800544946333419644449464014247939814228712421507848520366196241398874204666082120637069873566620282299280668892516670170986136725458864560039715943018652428899856102281823956785642994497690991927146354378299523039235892179179891947524607074274313849764494622333229260151204193045669598524701030884099862716849035357527064077588910438726261316890690773996901194064655303208583415960823732934406941526133731267510563924228716757224741023076146226946833674909767912108714010328593667766777232052639774538010342509090611946500731248040651727478248755795812564265066364608314848178930804248749835496555794599179004023217900910035700978428126334914749684285786430652899627830064980186637182791248967839573307953482342894195926713770332126594795447169241173305383349381460628144830884132176095219813306864011697716957567601855086095836763575172588049096162031323825411394857405906880277518818653135577643218707627080114085323064355299835267812611947996237413775360235149784844187552106882757587863656959968084186261977249748149494649566027085037545663232563417864548096918735708867713142012156810933141736231852836668731199745917719216046061754349028392443578011068788790106554359341175569171683056169965321772043593396516889892959483699950354016624649627534190163888908338258679532660458733547890591402585019410828068524704175225400222275350954689596142536669303139285828075297901577747200638221864846918566134096434530763215164581639618457275216800049195832422036757595659937406462055638293672561525555418278141763039507096572008964872213612602936724274465440393163484630962033449696788042947748155654736409819432867423842917778259518291444679858087846296961787056616908659630277471654379116296551226846415444471727951445058743738623324786075100239383878509920852290800396394235124294939110649692934970512626288894094992550951601348348930544537410228401594461510948726740930739512744904085693388298728827995250381708193493336483464716753027066053522065257817599673495864497671191320214447248185934511522806543262065850988690427885828495641028798172557622051691445213572412042061356122821856768627437916311977650247607606894067614832285777112059565710818145821611329012318326170162344521689582625341417387419162409387985442302338191259117153300889904710031292433657237185993121037954735135300061343554235025559516455363081200630503517527970791185875651900754480033781755357465208730743215096671919763867559160141260421803253959164290105591974419815664379183553567857875491996868514565136930341041885950505568484553001375939233216267288507826212398470283907466428931552408198256094386446982328940453947103082044866009572540632846874457148235579722713282918374248817269676058255621437668635947477295907428242197583126741809433329802791979218100617832644629328573374748391416220108336456427569089058935947240313070580283519717336949151822162066826038003915478554882301439967438773196044783235114109213826838240389035367231542593108924477303043252743255908744495878651631242975031145995208547450262749601074958740167435098864113739612880204369178402071394032512001998748171602138759759188078929082211406899387946943897264959277701813286610695390903676540680845243089722718470647261943022196309881109755312574600381263019187332823648209661936486333008953687528359527093639038867846728911160664788663282876339593789519796379475985057287762863867413263290551302483457551189352364682359839278097649488788097656893985293550015902713478603028052070381606269162329736917300563440575018573418059932876322099262095138917153565752025032281131357121357620428611873070949915029263954566793674919779468195833624836592840948912721794084823682618334648458943608253430084984598256121829930137953980721650759008259633721293950692463858570498187906453257653551460813538094428758815768860160007661728624203834849231330209520563526334702081558258295163424157594871641514849411955664767898837150085707542312153285884981160769926616576395201472345428138630257898732821202315333013242776249289547317335532789336784121624654156671147304713994653424762302864473639418336855600910738428440127524783554172621356034538195345257748304233738943136525673740038850625052308345822055589694922783017932832684936171591462866452682381784995068705928544305926483751126083046885658449180217743055370689261590075737752380446908540469154278664146774004814527589470461505928948510242033164365474682218849852346539306394890872276787029715671010788058365390825797311016878501019436823155634038235189366049404294261997734482470102198065282482670463538932982686006933580205973367812537354962962867638199715932785838305953348951381443185510763901643047765919282514992384171183539529298082862397912662927072475246452577156194553135361041710094026603476006288945014994286671236679611184262128395268857334508606844101681497817203519121431955374003968644289772161431240224508306728186859388458035451840014236942685395302834038927697188543060670915787522673655790818858690953015822242424996425723067531739665030839337025984335319228834260368319380511588051414864250060688629255954647154989776628585995215571004793960531653651249402206985587716462600320882292846297513188661033067128960807601381424417726146157799360881013292608087488639528388358049663156837305674174638615415615578220988590887988121782652544032528142904358318491327150069631906119847953625433140839648926075267128693721816394742217598996768257064868650620751326721971883661270183213092928731304244343055423813307437416264018304293026123068054712700871788950027292483467487430354443246950643769719424706521065580964895051391877547732453563353301016244245376605694938348942817051939166446764291619151618763792810723124802573573262059918453160831146711040316785413436112292651218795690304212371829876720203260824366197564540863703247406726368254842798790014358801706226792043325914075877398984403421329881270035694866461743452832146507581055263917061491687941340097213274799245815101239546277250749983837346460248239818628313397862510429398946068715424387254298455414530072630779237801454316378066521941904064300285716836686588157132068851937560290636922076734406978781749310643837897372619874476716169843716880720681379557501474086384878329510190623828992160245172007262909369948289586657986233781035913569190553473401413970324462136918483022230370257397623699690179366958138131999532144617565815441765540540253075509748936527253394452810801382046961969289779128049807593517268424885195305808472236268787138847322216212378542457193103393549868048347292193971092419502274202609251178015719946972257774825679248886898417391713979020569520660596724598901592059390115879029571491133001960833853926653460739212614609508434536647844233208899915108048582997953226531002552558058633835644012243467698641378241979012352272945132228659058313603501320451759651588010376287142516794359953779284466010616427705588216649779141312756848798715289588120439551708659265002551373157210428879382979167194597225422891053550484626624214383829255123587947054291974970245451010883588996341117037653637393667101116470131769830341140438223657383090553806986439037008453805688372504223788227184292491123319675460888340531374314339410108754031575241750035359222012788588505971165306889000086575542352795513671564116637204139956839157192804142660563665338603117783911963722897043137180015913073002571537980263674196232105671071849521710704638488880561932257704959767613961135222681854070012243319723594277828471285015122152931010708067848269338280536547611631359867264724101278313112204659752736916856862137725597099307235552242223734392855790872250645102432916774340211660643338448654200160887056088303128966097484414326935983893545220500281413584304704434776517899371504062646405550577734470293815185914033394450944222663544701878318364953948474432814556128699461036647991336083455495131465961471206174997065587674316282078664586874166370603788007659917529548307386630689481684277168705414076792374079183754006180203369356344806220412088863747707800732429528723012086874078765112714888094912329661327779546789846772119084018295163543861137701906940135349916999889543323112905616668560972291030812634114290352227047425065560136954868925859552404847400607154355273358225980792827433718089915947953481076421129795044746784137151958947953869902712740858088481333987160487285117349362799276857956604523752051769571394275257226402863740098774446671736942751472992459214820250907139069577174062268443606234173520831668564943828249985745809138513463959528891097627848798795510479838186118750066648509782894742043119291367682781054322994872147885510821988777095949954398264791093272271185026442392651449552052806852180167026041787104812415499477780768647928319893905115346918975409561410411612713067861287624686680937106731157765475880711588418409786643235149400930878546655642782516785101653306533596679337974098569375244139521543367221029461838189748905628157394757618955938848555954284472078203880474076958513067665173479880966826409420667970553927865667392406035294142225468821522221290247623795706977621445340856177304437772853746416339424492137980739150139249117113872699426340002674146460398236569092341007651168519076882577166501197346641675259816492152961082430270759541879133775905447159576556856658610630990403735386898714414565998579506800118743648160090809812430802018598934719361405252368673795567659448264679343094520398296144519773655536525219502990808793012928286014381938825445322697016168403936871322220056246305352308464378007061955127415428651960363962366183902124166654335558947324636266620649423457058605982783282684409615413523568659087907345102177181318140033948746601932846977945123851543838999793184487606879271815087362440010814640901160189054076130501729673040781137515838840644925445613066515025121602382841999797362648062891910727442516038053875508700569103437426852786694403424828426672495221324639768416479535421138298206312614519530919951845370589534731428450410292151227060494503829077396982435535447583414904204241333067336729689064603461538065755549619761487942006410571164817753539166094783842370991092355722990612687627310183105106973890793081898914496374736966588723895112005220452701467207425790335130004440170775069102564528390362055870560125697654505513598720011282621187811253605158722871952419251736337007058200117755036658642681955989043832329671686993478749545825274094458929381428036402912371245185879392601373017012898182064392367632306873698829906524567579465770387864760039041302402520022979526248684251453347743692355941797147439687373129894449814452133780337140328208282071637257435696328245085569875553679759174627429981131844863221292675382883720490113329186948373140852089626998082675197015939433303085539954320523578681411478595750784027924741747489524512954800069975543733076807529891750697664518510979975907555588841921270753045257368583564766199485491847438900672275438825291194767095425642301287633585313510003449580891386959814546550387208382301813192441541178385981986261978683907470063547538767719289297472276505909880530839929118293358769403637083885893144212369589476708295095464949650482490449138705695754737760819147718900155968012618220883041010043760658013905153646765400337806910603316504690171027961633590704974443857278978573213486611862797590885992668597656016570154520348128378300152989779688262075020602564815786575205914032786990802589071352065356042546876334268501620266767602041326520745846623893972735365845463408111420090356634006468059670033380604487460957584049285810897983628475743542957023535130176568042968523797536655362080496623780616374417117722870660322578074107883147586656358454594193068510693994352173169228618898266789005578099140108041981340331222274517631730483993269174881173958880244438610050544423015332331071693718777685735247087566776545356899480112084387836034030967794931466498309201040821278796892572686655233772501375585243830540519441762908269700816938006604480277988243105865675352951957334080543001000006050910486369827938063751165655299206402861777258103983034078578311834957358861647784208853484678988386496908707626440661581148687877169002286697932244085255813234643235873361508601348870910131221721428725398740897781739445711119813702332334552423026178407109826781352578633855262817029178874468924055247636997594882210456762700246149148390775857345754827399577278485061481500035956020490060563632726268919294579123520017585260894020746538048780206966597568516293664252996394365126662350753988229855335502925898940066702795058802601468272758179918126908944664868243150641040372871129001260949909137313639360044948907070850951262650869546969125678908518288322110314378209657196785919363162744559351187525725338997164743867293395087465478841478140422184302584850096013131721547986532772215509765709272376711410228319377710476887468307494519169936562603749666445744668032595024113469044045910856816525375065500701315331088738435882359424909116754117817021323034571163120154894609050669588713182243927463726660027029702683316847112099806043004554533611266860772153155583883131149827015932948504329916517418446835490676739660554935730705041401541751324577414161210797679133825836826060164012252753066421259064198761775412690380043902635877518520733044438548105802651589798209212929688521343400091494279562505670920096016333314484892334010141335319737886710425911452065285352361024935736310217143013355229553699340423738739702381943895828272411466204990631943636763765775291269523121148144408494454152414063042562076392498725625555974669178403269244209362055358688676723751860313286021767451374240454713200980126130468777393969535562758174999539517341344308259633851624825315878465810665523899367037088716358055284262510011122717332318722200183043328889385953645376312099203914736690967010491436768502791103687130121913223057505176058414238328072688428843731588687897741463550955035103069096271055985719836524173162269276345560923943618915395641661410704317817095971556471136319243595866888905485163671993279217969952589888162917054271266741569449694910705477499090737937262323438301707840702851940936195793132722452232557743361922966445935488318995707437134130561015362513368583731600024220414715614246728712709157950690551178405431859420274159373663275846961755506759180047803818052334958732404088805348177499015299297496714668095182136335277940091982415827707558738040912870925123688179973282601319357622807707605453345494602278774468776636574562545717421354612741331184009153219852779452263441891109584929879978298796461503083303371440967642975983360625587721010884548997262940999679013884462740415677322643754778658297306675148187769142304133104933117488093804852219867741178587089280433462851947253349989494334922011598978288336008062668351540620437675503216907311411796051558018118053224120236424426781641440217431217208703882315389413885229661820621507599389062220737072676871607391677711204486610730780900179047840437974804014445631850723291372838759163674290019956440632296346294831334561860316412820142283059442819892197453367171305357932321521027139997700133363046670051743169585595607539141889252118688817295021931688337452926251893674680987146949198080259842409328534123784557071875176023277880268394502391686957540385117039579051634683111796510373637679208702659634398744314720287022326103229043969301192910857687838468823554588876927245678926022068312148717098264782783070300586153479971567510043856681960499590815457671242938478131583118865786634535524747827805764436325859484300280633420500272790607923961004856046361056307807434798990952715617448086300694746827081939044275456650721368676200467546269031445703344982653324575120784072733109863926437725698034173584920312039739410666816290941601151189750013236994006069408993097879920590500321766381263766433019131093850159244861141608179956368803747720211100900209814680095282598816737051436438619532657892994799900579849573355989915443653057069508766479270241193316162918015483356715064272486314835813348920629253136456751096600448699634929358805252561068818635088912464343020142251967477693736467854805459812076899237421992019736620369522803447795881063182604137046618480086052546360684922053587977192019235523461939381200228095102315829175065741776594976455817569095773953104900822945129413834184834850414707417562972892577392021243869162774771262231776668252194880504462208789911534416737314086958295617334422000562621035851289753212714699779304424433311872704756698916969861251857341037244134936619659716562401348668409918446392293362451307119304400065385792417563564914522009936422361587300050638537627769506700717858783479910129775787489086892276058727830849961878059419583771234805213166266388858329488690381784886626028494805651092899550213930252004363898098365956605487590090219935364126942625226274347008825239726681514086745828099064506235243049784848872906673228199809474248090149443024335240771383868468327772687132179445614416598008292106000987729843594776195049973457918602265521220548310519516095533537081856404148018612090685318636875029464806442553597175581168356208647395131736313383534002934505674602231269072017203246350533365142488752181260855880063717158873242780008449851108563829305837777886138243665693503959748306785001992407638670463450264004151341930006991475873593284081688985270331766443245401088106611404628534913977935846574206691993198845894347258527064462635734497434491954455961807730511428557904181195633626465127741466210714040172082962404312692157737292290693786408336588580403088817090613770355552812332120729101407898126498324215952385539428447041352912455428782374055392631210829770837017501524590098852319541914696553907046071311471731577435468147431244250377594332291723757059192028535882663422347564266212953816546395076851115620879129944357273673005493779460073459500519694953625173226852964587515869066478863777400346203487527207131800334981888737945001187452816526759390132519311418441036450265332291962937036826487099891315803186158769591426210559748652689593648311735158525324307466155169653115434551307737016549756575034462685900727740900738108002978611960327852847356072591866474456531582995706075405151174600726040199392859015307719406556137382649318312971867808985535245712543238119864977845331192845092148323851916718882192292186832148961949495550656420977946008130604453497836647092234195489763441541081644536865493434506029282334877687233514355233591750198651162857467433734641650389544110496633357538321012970403480512830519783142157731860924444469004543909820477139843894656662006051271349439661431249841776348404603555195129836387686819207396669320236640521918602189530868616849073800969683842156044737971889128472661325817566859371949470818402820311463786626976544055752244476331519321754967256021102539445250442359975834312298090769761432126781655464571756161083303842588861290413795135561811087285852730959614871928600499781535877642639610190865763034878123050229480766800582246086553821132243129150414679909736259982513921892175214273964026142176454120303739104147446126495709995447309368675149709774802571806281860699085814978513659572913815921942602105769966984683011849698796154155335837566951927514195491509182200868959334392572664349329452742558837511830793408023251205730820553712379828980851876067409647183487676188809035267239319559635621782737458923781706345600081118286274293086806103308216126615386134294179118423349824404808681743881995367449622713546445611565969636564771100042075573783013308019652640834627181173160483056940024356156565029161885797559843619519318708693507171276755870427187854860802319867695684666181861478020388083829717401024392407651419178535521662122484974057527533907780408035050734177729829708049901318181482238433745994368512790627734146824019645416882343540565408266746560950900887740597757729520447766761798397468151597253366361393233749821033990458366220220225908070450969581450674081936773779286877001392966188908029402274753992655575274867781042007760326043211964228734956251569512641363652810590237925058582027012162307335805549075974187796236283733902474254786491356770180036239320996871109928087836258128000141867432829103762820536045505267430959109284315192060737618286300204215808770051487188804924479078134195333384204633279810995317094278086358479728002627903769413249189119702733384355167244185185489253353010736890863844136477845068929521912069543429322696955636053689697702712606370785632829347839262681421403896339320955663238793048790284859387324693640680159225409086859454087139805101015083330703932458632354306749118007722447036052423924502104635882365649913087167884897785951184954421885505074989824418173352237396315428753039362691614357680010456789138569267864393473037541710275558046848052241667329076330111039304742284963671711378902542062073888038662217374614083061232016652618271266060054048112167798978394946244701207237933184026523008899354585814348006608791761171310298363303704234003982648843685637038163120415145888784336599733060948554545039585674743685106328036179204225875123091505509199526235967980141276645481545631020276591620090520198903339787354333914959908627216804858510289158230331473378623001553115270326684521039749843694212522542938685416150597176227565879505837536578303063308642689584873191043897809535087037395568601837629039473829508776702854555612612300744688536117792744797879131328776808141590957959743395399286413064139424108028854399716115065964304692387725938434485300960811529058715806022884223823414891500631575404364789043191446101140330862254683629253582813066553543221763788102331551639915446010981052437568126483195983338786380563817964906884106962061404734206970578588377588962369599567671199781627934305987659371418687117684886863868183585392779013419053284675069377523820646449691770136792694188806320350267254502903751393002449957809298384661793683754764299099999253020180796976594590286757785908692054070387882811724738608314794816387242402352828266083335440106702335656538600495120217096163352257202667657174003853785768920047440774923815975485062562951344260555625856872686256618711690459752291108515388097649987789126540268884039932811391212493074074161743362258565464363241170494229979598813468008124185058408851996189775707626911477787804337441167506807391847906244144820102898761064630938590850939966855923300868479942290578599365172443610097833497778730746446744382259394463492844100430257848650486095676247455896170366321626549590144356813594284234035162901411678630433787883179003645501286493103590544040438612157150743302742880856072789492874091999536057788098655556461726152681130889175024911536777255638815827682203688733801426565007232042554469517434236368405961676880546078756400831741736965019316581242745947809618050917954578790467784167121384298980732218033390952574540331044902042729692010198733119643358765049480964845916815615755277475476282681508661141112617437188263271973764655952118207883274208754121027037056058158922573840532880014305804949904665400723073375185142779070957334690508799268400534247676942888481299633263690456260565599561985184826092627676851892043060300447954977877092339667603958176801630611445822336778297623447174464197016072866932332025289454655116913229961246194317914118695200030643916500775056229585015983575570383969815182985254639413376120121159975848229256793411777482541560371680099777693810263247715499489874358440255478927651089987158140766403488807439513135935605637034381318263258331225224252207030128913661872396716152799987625198323354905717175369425032943892957652719229425124801395836962990857542556569386766370086165207769121484615600670759861927674761832684785576399502651574780122738743487037201011101989558454844652865265602758454159439322767304542992876634314843756654011685122711150478737634412847148638735652781919151358658062289607075814161311521299523908331709384209166888584146945424598216581588127764112700912919217240081688495343892417952282470343564687367053876140530485939069285900400615254645567648423248966181441193025192277712514977538989888854138259733050969979600849711141081142724364062161291834809887654975508065522183229934422275600237956915828784812787151770681905030621436696589928118718911810535839070363113529332140151133328027518874600424036884911644994684148730025003340289248882359473687745832953299901036803068174356196560309651086100924538473056021805959014700378109694777583575439034532332266156790012092492094706256624591981875304096304975907767943159672910895722856527280682230056868111505725570867847690192275557361548096559697964668714833192389646674200196778232513563164100591416467012762748905607955332674884534615613097229045053859391220901510566812049157494770789396415687289264969061930181901729269638825055866624560896972976219975351078075951155358730484265971535003688324159099000595207989348280496854187771662412244006806336547123289032478296868150336653937551891898632367064225866032236341764533391938263102539789925566718396648452008147541340923253371470006335125649918566052916013109252741473636907599540329458615766620907909374485619337713578350107371368732769222301668144285048682727382221596208167080328222731119274442579843074072065305923858572184508513956475174152713124994343228366141528061975686629723943973367189030203056855482514417853033726389995552112394550393537924608539420692459087841384686474443983025328464772034287897401632206446751237085388312250979154964436644101459322643733426006242808084526928170107897057255393603654706453181282438830447323893935151957732101096633600432194937200143267172427377003006163533561568490497854557750849782511026187879352074394730468368166051458719761035255371643656468776917981988149274611721675696571837965997088032890953050532775723855103220884097652150019149721066012424713404484216878839820828217001603679577165703453550023454124051830572806072188370597123346859898111844783526027599183086474841266249050992726040991840097373877615793291172971473384938304705979016139108612080086571644165419788129812804993597176195048869784317956770206196201625080604609069117171946119284079415651909415116477225728264420518262934329563491065889335806290057955948632023105231596558558483019003478691772507494075523945854192389966519918799105662655930744187109829770340500516676904017739489393262254624138491957200764249906291177765802749393746260853595400077276955814579569151680199792967850093809047940190871802370073847359355157874111084675104471807830196498755958344097851335544464107056164924865746559532684583332553707752424120512481987014519788895368533952706003994259968476540023386521967193543681219869032180620230298448888343469159669239367114085296201283864123211524070735766277292941821617794139822327535415960815666483454351074101811310642819626880199361751674216543771604603988109805804792467498467927132380830670649972817754481870257668464708288060149057988443532532816321679689532925921224398326944005349234404080141010676364831654366322519873483429876832100561116805183392936271703130706413068710461166624526450992720954191660965304271043840489503537271844985505303925607511173536118986394679962369797399569881147524812479980978589048282942589155349503224024202520432199489786298678841411570583348369599786069860800855827200814683403278639421851235594895163567752404318288048488752998623608105268032945929063819850494605765451713992243051597659516085293435229999713391271335508166411848689650452825110946690462906659742616038452724721562669039558406724032262317977103510409072137732280288272601827437106846555676659261406132286086482112633231040176578277577124515222655867206440427988490538547659980894640820350861913522975910851664016787083853279567112352980865669453013881153504932720883220960845894615361175799009492148564280813655432031607252777917078223949369222540626666797261046655803857248888401534031098095628289353025104885852215145828845555046860752027402397080525005109786810995642565627288155873174289459940776929849398828566553639103321842906336339108301921891885605377311430689267393034356350055322209188358079631085050513004949326408570876651609984364691221439072719804754694275286773366729990742164109418411219638101163929283636981874159308978073903272150473566276473181149621866413993895305321924988788288627238136718751925786333496003301934368575402931355036224427239528508129378223203445547339307369873653733053445000113782229526251390635001317690588376319988403591131295295772488397543050338463545761719093166774558215479911142262291930136709086332285665242311809450125098157723329227864416179604630144353883015298016529667490795331739233065336240689792596973371198104352297468430341410081016112311160817520624280529553783106396285076441924907547870415575139988291841911583292914705562108711831292377943522820216458931441633673272174578313654757166233989086612500895589642158340275927088569167754884388777192637574708122440022949064466806702255546435802152221710434194488601859472780968850809431852804276764675273508451818214478907864535403662117866326125902693963595949015754635946041723256650876395046079404311635880977851351625123905893883964364509982476758144552174575306944290326418544562818248536559787977018059415519171294293576246695051625393630862929402825898165957052152262174280139952022691779403950055245515873639176328784587154357637211152131198653899835695000544269221906470761017934749869810318171700703385022894385933954152688484165846559489700017441372646694280678332331975591595387806831775793794222617833598888020555834085128094860683861769258328603992458695185201470253620848744236789826811077627397036593147922239477635365583274211517201771395775910604045837026698701905942512272339468285097609850637415240300067399369704979358737374324284320089312282400740517859853153223974048605633985187452801858797580971563987539934002349867182287592691153555558553038307768719941444581357010556109303482363122412613758538880548912698038530259785733472393155134433460252037762282019873619494673639264121887722780240861550550502686747252521169598037418319166016065192137227074957401677325557231588355955145844643836209380985561674392833400881337931632756389191130216269392335867470528177635393306712714119482562311795911228952058346516917104100933079127458526161195078835663846104984675489415999234049698526380683137847940402866000503918653419299916189466207891311221006655969819932769348156616787087425476161430767392756284317877956601260576609007311391057862747388272345670040271320298124664215592761635157990461511687225567050271250665119324773576438108034300451438868792899236656012626921179247219022948678329018496023263991510903164442737373662116872099859521094413247306158148669019795672680188344055545838885399022355883958380766038110849887784174007501199087489393021063101743383209156979414705730371527216554682951977710152893018314057564462982411400133066987698578493652343385743281036057426155848053421417673352984970077984394942762158217561048743387541469131459204159087955874624879678598232218349446792147918871880967392537862478373802359255732393143279764150071104691840474080582757083973657922020709283250522274045685216222922672638525988128043939223298755035402947145381353414228801973435409056897217930563975844051048990505607493251525377739272049807425735257736616568280244637019301899530935174950563183183200642473800929173567255163939714272461731486076179355506072367451879928817290529535665664680311446845727530183099710879959340120600532564750995069879543922819022914495744225748000700260931891729409003652839598659559656657760634284564120953183298369282545490958552672595433802874398994793912720290780899549273204807344686116499919863571660553744005139427104996853393376402950917818192846877120747555475508610081436362108436189780509228978591643985618824930690296760625684070701362594036860502908160373173268739586294642217396846733686350064016281941386179234351347418985574522974343076295345373619053087866578650165547471132574198835034119628024235401181982071778269529830489059681078103548499693813877449075975637674176600095594655416431963800286881458788905305889134027459022156596354135671111564576423922550169433647318209019859960692857834060054219987369449256847705461426538101541158877636286448582247180882405399102111771689801324198994389180858370854834261164464616249231787265083103945356063749518644617973176107961843837909869013722894145437861697614584460812726551789383486289000558638606124495054884638686748987777623872986668970377510412347250799066412282257063113737471602125435538447358426499058414410135005279413274786004395682468595583712668141839093429454251060343134031703642927698204919447032144508920740281956368810343835054288644702735154093598011362530176176106838574572556832969410569733479638111330020267649420752586235352603798435441329289607492020505564229541289218473120896245281054246331633875290826137279282171873983410475489453914968588365773876647321039030468196136068133863485651814329410672465797783791301219052341748376311804720810286764910293098158953125311505260462285652167154761797637853642843811489095815478220512325235634637168423643302562856056501769836604833950524640910662361626172676778921664856407957494833526175621892390556891439912796373270091574708885988460473247296641185045315859773633816555454908273404039146682151935050573399589482127689619018061792268052049660466125989275536476068911794756392801401161157762268832646728593722089989758546936575562333829780015575524583527359957702135056921020938121544738850530504078947148866171751521423029815563068349571287912574583983517467880097270118441181290072211334901337487974453300733349798829069765826727325183580090355733383330215554958896349762443246632807661299253458127226120579253801616164367103060376030965883487882487427744845635267217344485311836570985767661362555198624644925103395853216475386502096308309297184991086848559818978947405502330681830075704805159493628283952361949116244487210062463022206864310553798054565685678052535476046192991184657125570926766830539332097498700097387741766404619516529132646080034035280051385883994229360358185022842199348922194827384134067194170345989965373806348708084191112466525851447103724293884209423184794793159067768251877932405339941874082861580244652539350002513288615372861553255110283380978022984690928800696380564895161789032101280642984983374908233670909284099237383834390317304467761445721088149609096580849565089157426348681181717660755261049518687477551290899140014056623209286326553722496238282701195865602156685298883412228904587580000722136622467764062371373773285091609819048837444155914553960397781551398755237187278045348648603274854824418924989605379791811085433794074565138382462255847829189358626833913513383905254831565184508434398784251675476200633884694239561273048123929352468258062893034263425118495749307567857874442504113131996997166371343592547430530824372741059795445324469161362777908147523605480044075135518845565534595402262695395721089511620687412386378997927639459366295221681293271122662801612533351272791996325098363777501827085590506751908923337102586389546460373144856135058764064153835807279557538135325823870726505456258165586999159690908304471399643777640874892368184004836064696389522639148115275137759657102166505271981853309920669291828687995029694007317793632041858168733718768430192705843298924044136805342265505247900331988301726304660757759168764841005905344812404013831715043227409184269263334454681276289164300924847300036750478471155615162861591590404579917452976628609131214164634652948125170999714371024425752636932619948247958923988206308981731378400606560053441878124857368093656079623900273926177021281734916554295394629470160979008145522326938028788022184161189847388258085795156802898130850992331991643208817321359244152355420305383780882984537443422222444195664725057872421395037564816942146774542677507794145462726442079003291589301839541988047451265193722846465739889957039231062185794600896700024737227067749014269208661968206772321503489349274880991794141913931009782871435910131819550299778179781045151254687279873426220521077359089269021016241826809874431709782272203982704539157300974665041195271337456886067228146306545376155160390856072487297192420126986983000133757624720364182047892026634492753346631636632690347377790226345058646474433839484864992822166409247022617981532247851066292922471439714609085792585673834198981108012527000619644461632895418268537425967877877036937486338020147804945498018038351312035741665911975711114593002970465827543386291244944241449285275595799309352980791398497501232857829338670734881882366922972196669006194634152300999490100839920226288526671618268888382202730599086046927023086609951841863952080242284715457390021724162321287733703907502696508202270803285227856393706900966057486080832730565802577289211485108826024677887206522208995072465747702179550058172082402159339824223330952199847181098644951953754890850141117688603076963354013603051215301320492090930462157224473964242520781526221328433541225959406896287306103624995154618718498103058216331864708703065539606724732901534674269036851796073672280305450620619946693994134637249051322321864933404736359746288269052701498970160997313371363291788767378922818541999334924596880716908901178673695734797462903528512334193704585214423493946268579405793931862721655652384876953894690861493596509810909365002674466876516512579175702743740149605636861488774420565032355251417540166857733497595495060447246696339058647448668646529851471160321922590862284138230060291971711238301561649348578674349092403142243764387262036446569844219386936206541415677590532293476645522669419295050908730994239940195206642663993071855093428892698699890512285943384360798873465897317150885813665433580160803896713472242999465602122257131493135428669638999993299516450536748995541783388169480802542179476480457137169684229599216443120137556689631480886735450434541796326193895400199175555130823884707437960968317529850000605378655160066579612348637583257479814948198787210863300478812539874488480862406721497053458081333041578430389498930724046560944801232405486386239423275226237540782943507758755954030035882432759080207429342271917468825380954984843763518082119216031531468316980376946892811491732114621917349559046589767073851725747564470078364453265416656245418933392877462204976399224221405146667501788904085197693579001265823617941345316118066596137366203088128879338152946112597043665494163197003176804450068405972287499012660018185958893954548721162003331891809551591586235530029326961855268656311606013351974800567495340640488020252250572355079210694244269692791682221774213111336921845785041489204735811370250221238869608775010518407553289914181825821275324580842681092540555215292183736815784685977910521915570331818517406914529234874246392950441704847481480027072089535012532578353211727863963402045394848331354495268222479243780060926490038274158729160446241371882743126596898222199587620178494738880785059182907610337886763110853876988081078092883223824211890203735985419044532707217055236681078730230537646838253939721883218257139784850606217652156732663436365911325416386261362676528030523868351181017462928621184343017579500086735298405836570031789019213797232933295163055019069098261529842324682782640471029659744852558342510612238597828119313895198069115747757583992612310233604924638373615102194438247320412239370737911844462425859277243514797872650135281408231101591609578079409377391146520469078810379860543482038525083741710082202273841018357872189007520993432104521899127374074175899092694631394774622481172245462426917883027348763454729396812976230104677996086401798994117010489363847875168184935035394900336086795954228310732307368318647528617833649216217955945399732301434376471157388437659602099938656534859207690185506095443530390647411328621987731816575588020628382546977413346207240153017382674084228458000959528000628651977113521391171871718849874674995504321977252828716268035799797745175893192042136148568181936194394322087957503002297460761089418704244421326498665048897137897642744663313090249634759683937345837218891101517566884065279611116313169074951874318891346190201210673969663202469386831769353322063247253151584778713695875108681054222946735328806507120447162204396808853347508911477870354474192035432895142239520423971829156821126842765172755034083484608901199318729467536024437087110196229528738235507594926058877720993582774730025145073729919110161894752365489566736023333918193510743571009197414817051455897638610237467505692311547013115292819742858331772880116219714287568021090882280500012224779489899169101347718723830324056992180754840664657666540473470879278827865921649973431867595771094214769327943107622931627485580426632432972959852477824344534565144827014792209935309270360702721735519877143234734504551043628434671160643290568076068126989525855011539353074321479320223522111878507225787701618620336215426009264080717096123024623491633558699912431322749903653755100332940843905850657795933615152555704711442157849489767991945188632347406901903538142278069553243402581803458419673113950276456699997806182262108108499341088497773809459808246293994843097613721415076879521387057037155897400861654899316321567980584672493674039835488447749855350374427274518383523465787695643611223169597645565506787112624384035663116785554515643718952749224990949065185954306208559588235112930206154179668667844878763203789233564292473042587403024060245640352380598234569530217479552169388346077506533749031205050886656669927712428623393627575142633501301427759200842811538838409551423885892563475476146451724399470314303528511101922145704362041704035298453073095123594615960743408363592917786529919312176279015245972307107968499808835554573526897574010122368143503900866561852565755488696093436963525901997187159087015306491208230443211832093909061749107990867769511375015354481602193792435793332101184505474290400686202774310291730673026816038260735455387726693171015794402007916465897972524930308139904335678527691273399250184894637590695198056321200089990962750214094907363665581696086214672433547964796644446739889446776187567536779594315898360112051056309264845887774259423829310506986869552710745473655464749450436662673549196628553504668575817527917048768014528006686885392994625981027752100680069166792658942326495943178138534007644431103026282605979335273209969831918091505057938254948671832109205770386973970679525315630721010990273538382931929517715972664747603995075675696672951684547523846273383699559291165386391279790737854882320766110066449036566299623059276057267272796060716502110337598656472094216623696674198442566011069623282827143787117868181348945367339157442400049516438766944714154265084913010703317438407375100445536344558846844999857532083693699087154788324532251345857288159960736032073704860930110170056277053512098298895769073620509241285012236691246915722480291728839798376479799024984708488515701885541326509651744649685637380491950831574835551006329538328522374296446604154396173279836419983098171536461451241722196201761255273586092726763392604113809019248299272371000031059259970883372692059295351503265393543575562227907234542923224332071722907456313835016405149498533214113443765991691972818331001383540638236600813195378912812041241458953069379804310192161736359745548646819183402858944203320107064300365222014248623778031557266995286661731222855791010588880569595515140186633803501574351681235326957896794864069932570933046067176678415823234609130223526554126614478039816022033319934000527180297125219159360453416883191665770684501115454108127450519679582150552564805145432362953031737625672911251021470564261665811060826474467154476597828681360033373285704515143484608055108631245680257291347180143288871852452744299062915794298146498636398114176460311942894062114098614660354309825961891277495144056984447430046857946301181896917271438756357710948589106096276559947319416747484819202208501682237082419938349830388297355599417587786532973267986119958320997722493405046354065124614851454710111197363532280073439216751303274106240035998697106972426059682637952986196258345297046741668757237244610301080151085354667531682194781887159166889807711001936376699136828216801367345141313123620156507786703718177836756012916630363188820593294957920577909671140949289775086248455890431278066348479610386323267177955507397642475587794026033710162170098790244889992016440607937999465939688817296749861319793670173185101814487140300428131257400534898856162838486671520054492074896301331052397991712105825103995669892507078932718899293670194994818198583364997782625097479733332498279021741644461623297402223187720322770007546072272990404363592153212950740251633598592141955393952648596700603216346193486430656679807592093250122672684735265888229442156817925383222645189674319114718711414487125404179759514334088057408586063330034376518202651714150434105681476994122114478086206300150961103880092819946451585298180048465804371092728236903268979679290708329292773427916165921124173323866264857716297476164496027771726567061943884923105347176383584459321545139036869514166835025378589889573177811678054145142123643397984222973045385380272963857942237307159999595067127554156350832029304482245619869086081910217436283478269980607781801073171086246249291099780513063492924322598973876606563577475815544872747841181514305338111017804249223342570969876195101657319572720724318994606065752317763419593352081191134186491026705070572337896396404076392319808798599788615085847982303727544187022007832686196122099858667771378638202304449934763568063678894828242595241297936442385937175633283943113453950646914469156593713391972758904085120158984982232722480057134636705289167978365124269101462322878397338517911748375114169421084815565256246490518874545587931408790636195797420073746454401038346336897818560106159430314170452547741947147922418026942190168771385917269299068794460460519220065814781257038344930237577034400132861389019550854211965677476801289867902152720070830648077286289277284867841748553058857059654291571647672860068482248167018051994123488234602763586923448216369950093117648945516402962079989929208232325361267086873855185302088467608094609016180912822628353288061896192932221376271504741713168938702210700441296621012796594906956810021778901294825018739848592960577118700775270895386732901017096116677871632445251640765349863597830470269851792140114508860192525335951578283551927818109586296617032741556753106370002275032211185290166186474956992008317078078028766709369004395707508509224096796018706573225948359964680122147257705130758831664629873803811380874991424332939840643411841347805370036819672430305233299566870984930602336516778342509171900991449045603592963495141320061755586565241135679037762740869314269115657691685395661834360353599972571635635564960978477233634210375466937408022672124851344083877668492332471075439845765216755199707012650699183774165591062376157344590530085495177001681903329213959968145805126132644068681968726651993366578502307413814146239661851264295924322356133961181775282753607737926652903054670425052721941489407349493563326706611987484520952012599806460168739775379884663102284987916104492306889561546930044177991619869976064951703030102136823765056654268589028376397851340969517869014877972502307524881517415289553810779884350049688477331559447434519303502699454276359474613455094967465646151115276829144821883287209151270774157061983226799595770950570291050671755396499351182511404576055738561926855592526250498331282939938459375427111567440687913754274464420698442622654035200716492989207399494552143481048265210204954732370929860640730716378448207885459112776948878608821924500575518752716163678299260490104161876827072591428577380055647193146538215964336285788926242442856402866343765509757635027532707670166086304644470483085946519006005554353706702547564977462701623754752794429954128957928368355960873130165911059271266401642337907980021773449275035098667080556845744068832784338931829963553647426161700795413379503839363206607459393682888101469346181057114601380446888727948787676286727584875875736808678409121774716315078095338694406138552535513451239359385208633940207471857192938539180204513468235606932372466538915202628202932670643159444287573322534028163800559415584210034316649231681201142709536730706758677684627388690769156797737819925147010340812312974612580302265746346730591241225791063620463890402883314558874724813946211262677158250450398389821883134957979044666848701038578680364713431207451336002865518225686168246817868116097171402994775852222355502081629723401779353447411102320062091023435653832894363115789757631056419142200275104089973832749375650099615376157678623216773464708885039804373665100492062846919227104281424903946181569636807177438226380369808346240151958400434422811493545010560194702076022932622887179718170760165069531370231492013786534935893954481793816122290122880583609388607839371357228554639197661972080438193963571149859389693055353753349923100361266792016345001172840342611603970368106754665186662884623011224579706011527910954873480788149281376092223997221131384676391900201288940203789828794836950820052679354115947539181363853816199513198979490625257048520565089458791518921268560137190020366903737068845339163103122843508604371895121150621686463807258412059885617680707192088014526706263990273438737074136652604058512289653595407453300373422470084968390646835107361455518370069875796220565259392915228276705592307201111462715145247547409957259233094496421572794214778428645638557662439637971172831004895582040986905435392143788200227630925357460585524673878906370926608029954871134787293112250283504687488184061770494889025660589286149648665508113766555131812892455084739796841447274597894901082233786920996127282602480086228432582382129090779909893167984116082675922175088516194548134307023831929596189227217490100761555709384047550387102568152967536841852630338731221051137768469477315086338417363536543494129516709557640050207705250607973625907869337041347981524362244405879322099821913870425194304033077169007021632039714014406945533323064370369598502436447483911329879538587951714747992396920759533014397116088862633582848509587231508512239443238091126530372938879337454298401775072198443053455113020837203011523130389522493440752394737777749600938845382946501806854883804333981934790885381486757573490899960099483321540517372008619178156194319119535070516574214414119341938081896165256207687145902152448110278555731985156613091474329301308507799700254216363971466175725217639134151050324982779412489466633674355440112726823724063023978028996189473448303832039310946372458492618779921823593550147531850474456157030533283041260017019533626211525983202621534601318286707616718286447931765882948478336448082525143465991738537913659144965118391773989697936098084202544886445367403461800028884836782131266628632385232777167175235899849850924607608823619583787280078691101132992157031785326010580068450366175781017349490975556963406175944795885145425936753043278686987860121826749450458104173393928219657203798880232739708663899351332050663489688663327340049838633927297743079471531656383257358954971633848152983499866710182577320444768663660484463482258355022238098949751400512613274900720668722361644552926898183258309130057472622064201564511008811257457681683711549147263950849368370373254178377360060522506096626570851921708988380508131631459752705418166345163085482789429220752685718657322090176903292947372755369799247986097082882356495907089061908224450167932463934044839379938269142075356968171312515323146358338515251291981022850060085672852155129966748929021781372950434913546522799116347324517293597616851434726430061403574648267048530766482402629897552737292434562471554110680983390912186726888246422490038528793243628406038562385193010823042806426319326930506589345284519837247371523301104735677183647120145810288990771378184157719694895941384303784439133449281918254697231012332308526025097047123775934545613943852378737875242840209821866348668220916915000033659601647656148198734410738069809693009656802303616455866867669693004722280531210388649215844926880595773340434941959122229065256014245322406273352788261035369387430672525430572105886559043801123028904147933289868567191583804115309228999261489949627172492471605985829346346294877708175116108585130573414602264115209231727026996571025077513365035142425915655483341556243192560241363350458138330576887940598191125308282960804335412039002854247442323158615021293414762892285706700586638577486139770427813827897711356446714869336131859659905047893146617824444723743016450628686129241719718421694968321522305789683157871666259257273491012948942120099080822929998188696641062047818509207849705886085122796684211887169801280254060959457332393983339806853134790004058280784998818151659990439914048820740822199792813595550229323088683774622283291579217821502180671488988425550826181692938330632321766131343193731391179536160307112485240665748153848736965052431556646362139734642708343477462249847707456473985592168153472055328084591969122048762335025562725289491959106509979177790503896186440221143656229465747688145249331350420133396024456409867548047451155014426900995225562022565224330235979281232388797813890042296612427389152923853837167655898670223746557286810039318264631327332427705901511040890255325231277410837393761532314890786630724421166593383624158540538603072491412659115345266209911533770121231570737140578111330550710722839552675482803468294137718581920452050269728013815612519542165386628880768060372516369747798495246896746952977443800979544340806469234903566599420080528192281118246608577053799761553201991610082831534492434644851052009498539775407036323227170918835641233154632910331797126754933236397239592819358947804061614253404484272774456964586632281610763597294836019975522639229032461855092611293800178208282527844814214907344993989733104225318633775051694399459333181879613211504585316526451820877951799650180308894501318409530777204829455776176041325857007334238464285189285745551708341443835969482090694476951573274850964652459905457841195660804143039369079910543367129348285946363432460762974102347168936149861556566718047032513942659487547338455864721222785690543739424504964491151422348112315427467673886694910212726943405523824272259577405084141362156441695606356477051288358974740646290179572476375213197240527855142950207966329630457910033425041604662241771000470462748410005382721785835937830850773813750225149169563736959514537000893733388238979892903233311427991380278349525880028789595852769127168569572388271836741373666404839021240930463798818535228588227933760000894940787812903892859535113449830994382525431225745646219075484284587562874504255617963865547888266964568702350865964155527024994165318509061455100219751526168386470344517076659853546968754363105298659003817734143704674475381850349336105106755992825863706251847988585327795286973173815220604239180759333156090237219942026020656342909863140828137242131897478432763922792936299470138508885780304741621262251378149648947788982093446284252407642842704784897484199437758949065750985911299756982291438420612738186509517933966168759030433427131572619608009489078915623329279944996899570198806324450933750536738459656817694890870017376876084004014488275251800321086218665575977182513559955391644801017036171733250444872877755598475006467925129457072874990507271618021119745566716397107930392082451816302817235745511235368515230870554118603109031631656871685681174558544341403982403630525607513503579494142664438654761714820437394887621843953048388813102381035914851577964390847533133897289578929510910113424997051104572676757557726005693643602191477789509546991285367031280177520417399054802807612564427011941377368940917930887687107019281318964147399486110455322969436479424273444622399102163776714549745410187124180363375018237710389260940211087032170716769265694620122117962970919904682277235378507257055710756492184191933769343875588374245791574257789321284838106191519512838657937628551388919623606616372806213175808827112084151560017963115760918391681345290457619577695630984001430058254649996293221165687453210191563586191932916965331684787660926696934367030190700040913605960982905797164032929844005566430457512806429029827110432991006467020325001119860064578188100047618340660314668264707776778018509494025093321636953579182798243643553218443837907577107504089823741951673840919216082586319880468777314862227204289768005654273854973208046408037801589015168651205452681659303343193948827557935673740393465886411601095817983400594438321786784130769606009085129226868286652333761285143493331001082286009450797778062563420207323133003104711616473330813394613629532625261731857458892464192524821211110102065915283061592671813268938069608541291114877597466282259377322047703733838806074057911472030525152450081294579592594648978212870518458086064103944298241846475728731976772809583188152122304956613268012996767249845590389355763136658222130469376641797672446263163223882429822803636778833609867471252713675193873257687385319490253213534572892848139411319818048029473733472850080668244784654747667041723579342003207975345941287232699351493417238692770686589036191592291842827658903575194540287219359709237361513658465197083542148556314524013040296714455072515384187718111924009574272115649795088393254039100944689039740471456988533357368853526908160192271172084967378468820971693054808580184168801471567035539395678581105201992348953946761410606142389701524221642619812220922381997774927101410509494534135384492448307812351172149222167175046429615787740916351870536978696018288484609843917308133641292474932893513874710003568415321324413080296151620877361661101031780334900944903392081619789219188290003605622867782688492998821148592774007067272400626446927280190066666639832577849765603627427040646481877657154153255210820303848343610459003283910327148463090862367013253816211367260670937469082037786383226426831664889845015457874021755575585184971397061728939574060331606615759056270115545665694865386218893777605707777683997491120890730234237626493302438819902035375712415524058748398948940838220390297603067445834819272798614007529683115701841114391952599877634450646061399837367153566727051370731763357410335576681569267232551292862201902169205819269118975033501725930502620505262798892602639246966247533724683834989912833757897381565699223431537252699868614644976468372458171199325334938400323303702571492264755855830119191207572188930799404617374363215369880743290010991083683697533202959859837536282499786278758931717961454158091539585670919527029202731688657838690903171282527414765672962873714932183546206922722825029096475991451486683967961769195127972648078342718694890074578930972580789191122042120766059136312494211184902070025508370016808543490456007296646023484147475886644206257037299694322579948660831743023954157975289285794169356221294531472084894659876711402104458215021113254764792872122666640696689030343065936353225484154383778650249551286166787178217564658047165643991936059728021803525168541732095649625819530628343034679361117766628406849033086169782519292675200964181306341400262344307194493973666495327885839624027257833666663948047763714773828516635119275631277026205600010056014132828233956970379924859770972198346967306746372596854490341719981749230865401847190696786907551498195765813302748894206132843040583749906694419123935864531040180718631906140124184053133091318516459364735118065593453071180217157020623989822322175788510046646460246397640073098606068742723990404326218523505672578473827525275564645062100571738640681181997011966147903882005876915793872239060625443665781342193332232278191550539414790959064928464412605457077819903774416821084346503394856020724738134689965165290535801279492203610196950787173596074494952379852011043192154930489399559319543281298852778401459489221551273509375800040910048673973483075188464428479083298935148446956939772355354967094104442706331928288102008836862777438756698301043685191482605640378104138475735495658857248940762520285423343340355076193794467049281867073860479048601715235104117432476072519698841873084146101960367267423917955837490633498470874178607322818135979442245145818671007252754406036038007500578228978090166519364550021853910810894147761075216725533306109117989645633466913143135606274698973670848519815808412250904193239807814327110059648667001254034893527674547602928984937027524291086214190752745735603250585060593068167964148371756810848094757780040701392708832783098251765194194872698323916543954597698386004041173404695322622115212518241807922454517818085894720747679170531420737159582723498442216425128732857351749799410360719731319676686846474508971750459776142803299714231014116432331532234312351055604113775894707011059639752328266824232366336086072085341955874295053860325817795531982106427339374689067465138369923358041773957823195672923418828721830164337263625131767910332902959614534322015717385594045081284457110094307972798083940525923216319554641137203881428960665303809821502544166676985475430244531834259102122646253521603156736619799955525779736906013390572180571219346915224494017668963951936638318510345765851691375289138611476402711366755843136247742850113784702039221756948020697100049870366515687047337081400072405811518166089161799693584247787193347523893503932030648211137780383795519410063493909018164927479906163626487331081648867186583471805167952147075772085504635144310358114741192303877232279333445646566517269874824751706375207677559775269852532096338455779712250457731624908478313328921310170314427282514384093704078186298103789862010371881047864986441486089278016423595903579807019458961560674370404322387630685478205896760020900859921572268588878195732568667887261785744202131618246209072407213557268051779102676295987423065602213303309310476493837118430131165436389093475533615690675432345819492488770715335727827138223338446268647735823029875805549973976703697083636184173139756035592004827876022616212145806732754587880588272065519503168990436103306052437837459323743088226551716385670406994629403729475343599945512122447235142722228327141871304499292860482344559278822205058490596897676946926342927098508206828385565901328080159421008485990293013956187029935815206318301222462788018522505894539305041980600617452308736184876409357373296455466544270024458749613441526021542873581444582784767682475697119403763375616233636789230451525229021751780879698297665931618465253701941626208814316775081699912291832577954243717755042907649286141850600722647415892999804805382091711497152801161149502388702917557284340539485038154322510081459547945080131343601302108271478227115049318016265091699836734844139581522220324170742042283163947740905137192908728565219538223029982249702644934779649804321079651154584001573087202933924364608320468686895548764268429393593008181176455336814224777279887222880103517283579698491269414564144212142994650059365634524826245803631990443980697441082261067205742093785920151212356050535873583959691998025785402777668925632581209195899819068314740294021424919238692292113157679153060631511548527915147559016981955302842173297237764439043444171594948068701974707122551749623537602173062821738686910195679758028234672782125952835689621590161655604814322500164586967962904050661405589519360263390853024241640525808337151505472904178810753887579217636967364063354574218287887849713447077084090814581538549543383751470280056877521578531856325064924014061087972510698620224550210946420378325406688035328079361371820932607340484395896604780425919103950619459885751385638891942260762325427743826912278914284518516009154584430433137918125292758147345479437332351113788978788631978517586181839391122340799468273590942409196123590731431153887155182720518803210313173202501934908491078478719464618516492564246745694312112928422226804473950329594302094120733053747305631486580659752253231094220643270233203475677569023312562680288835044714060576707643735905318246032425177983312241545109372529285971106835037417020084865566425089865390642627118029180276581886433742027472719251634972563460007470325880761929674621793115657500229160443178670762921584635076056089413912081105106983633250713993101489640678971919636880477058737224746880020616013468465934608664982349504127761731496545481899182224917251895663016977956139592072702649503546678396684030484522586757951310397431317221316196161736792013166679581740611112864452623918704061047664114807014007661073505080323447317948807225648948895882445468856713552246788708403904938373593393129096764241899133585692652283902695159229589582930635022039195145832309441363214946359638271605459418280032335969211218826319489758350398246387082676813497935161558985979477205422584331100593319931463710767474820468743696644643741844763446467354399372039335993918316900924849747382602816503524073622900622245188845053951687918643460891461550127145527712512461169834392671309669793179169129340523447193350443585902316580847592666404271612491208561305380248840843005073032484327972189855320782564951421915002818041158958599798805418505787838884052736418719478552726286029661554823643553958526534131696732910596335816256202908118456786650345229749485864668845004707714970586702986834423642867565703140139962052298778954163215964809186020014814620455828616004837906825999518798295281180825439338359003994076680053182325886713811923802287934870218763070760090649591154922129366178483237773622933474206216743079000757096814016441948333889112304840914502623155648774246542525341370297090046457382152047972254545402941417047360591387703480791593032776185504416994839777327112878458065617203941901287791211299186968898063451662272687239038891826670004794682646362018281713161199392274501515247891890674131203114474900604261627069954875476500998791579329516247091724615096852914844834726599753989822588135931057753631906079217640515690672547933903910346982450265296067089779373419341786078219857746407745589244092037852036252047782599194213785055088448540566819764480915413925025967657021044800067938729977667605622826052758867024067926927860093053801744592691123005939727775122039022768945455315709854364883118060583852432633211851635317097038806952895290578067387853160384363062351758024070689922557871941708171831778108991149861373373287407065064345761199452695921733740430792486286276077345569218605205420581917873939189699422408136133852012591804886152886571651900425428990089019288607115933810303693228221251026539021930397927532374953907771820735865946426189339913780465436494630616849937727804493114338763979909922253699442082934497446720801656360658234350883037176947481587131129707282140444644885231333428929829153707642906426614473145881644511656603457551611952301969818194995741188310435237274027261587025916788795399787909910694592021545255542984084738075158557663460490644691946769995850160147717899207461140636429266860560099599356210078036417568381621685160530281308751322916287638285780546054723345183123451451087837785890671727977515667842484981977801928180282299131339234611452446129928314125380658607803950904763667688194830327555601439368524273656116161722149383404363676364490880367593352939454606185992238150919844621320517964406804509213500915353594727370944694045190562703805950228536448336833265258581250352422081786636385932904922925215592116370711852140351587678472869391256878243741180369563810927904582558351872097426265870165918548114197847569762980542816650200554973394106353882522088318021170963408882304153351872254975210231651524537191037817883953252495606477142773551072350496897096771636402696604448788844866849583290162536995722731467610618397409391951749649209750654451314836983419104699042448282507976161522905042435259960933539249693569529425605000582663302574061436575411491464460137890926749412214656408141010368034159948498255433970851572791464730602896468037020929307188318245142311216959948899834446073321800428820724242656010690500625840737612562660099565578001177545189965494811927777389489467314278670328368937424904871426271214130303624212771043213879960020385390302714118045514769961780449853243384393109750910148927049241698972567608490486187130831190138800486228660035004996930086133122760422458500903508902943787710938505298485387951784511568103646346797046923407829412989770054660991817509223061551250871540187140682388458008961517092003123615491971378955690753071067780515750110867013230104012463945537429811607784514449094484091533918267281338598764775880877394570796647002218815137912513959486002564621891959554196932207851464939024984239428232610859522871045308760641327435717295853930807853952361605585980524186845439772033907768901373469675317392605286215205430728956050573119079221633468997313427764466716538055555772829653092049323970394187249268369244534053930957301772250482209465881771231877621463217499854675707314140180065817292834116914492155502881513318792327262694863297563607848475013160202158969523624294058161706788530920237552451378820231468676933876365971896843848583814390520937790652488019180836645811684120303226721727332830511409142888131114567572886657617473350950429672270176063046690642879501204810294262832951290817603857659062883412986939829917310558888530995982710715523544751735238739022556474932424022130303531274107083897000065546356633767866976245080442631419020632873691172984554554576446812206106761827823216589402271621756675084058359669708849320357575817304866737794164564877893696098592048125628102059152017226541452913201606769863509569228781524366672884463269144236338313974787867994656047673374541983276120979133225628142234367987588995806186454832952251774893774617428228760701840727806327895339914516483420509413409147273193033215353085643628854730401667344522649006393181283434736525828544676511952670454928232740361361183945860211190572753096311641767770495356287348865606436525134938229561539917809440132829917483152338266133903960672367365332210304131869271230974336660061690444312933180379561919825598489114521510474098898401791462748414222167681753759568503523772983108700258624603959363971895101709355194813465930712630430677353351766660555455775115452506359039971028722265752015471434897292818839865635440260375292625520132863375241178979513654684966792115209634373857547134958407464296359227588071979512250925119438150451914593610892269060047355426233177081282117578697329226929266740287161700930216108702376299660397899441741230690697851165403222065692472186109056425557382926247331445915926572303750460870103262410181686889096513192841968689748725421658441550878528542477309839164282295458704186632427693264212373971986086430351125752385777270010005688147705460074273465751114041481724436910633752258445870337882256038811341802826266303753891879823453300839564825723078958885092583563523836649843241621532591857964075156829628601668793092125138678287690042273594029330533193390814708362490453830920640392207854339493575165713085489761014832663449834175834144326942312107860529210577881783160660883903148287083036609390120378284121537011716381813474167741667441626625216739484953739393207586338145778388102399285329703702882007214949332533537096850920698230518931848125445230677380834175376161721586388319088553451887241039803342703321546636536984882577664850567502256524316391652554101259189595605785304630081046292034825802295887402762210382966861023991549600117335739063839034147284850721896359875922821799385559620668379601125228865864384749532984324267303540592661539160802563197135506162417880711985313800128496999349883163719246133051066515644544863259320942253297476979517422095429320075843311523545496893008293067435294679400679282187964603163649477978617175352920493817203191088879920749489265245663215583130424885246273467407238983867765744539842698541769686648155324156821279087062678136735418614542332162691700285292224711728852648290881125366611964890496141477434079516571165602220724027799710699510675637980641858158196022083305610218766263303281399706535922709725164390847058593571585846337827893001105954398359125147045754527789062773415192901839249161483039044754467816516517423842140428219801999962039641802462084805993712842055992055650068899664306018310101039854286072433862788368519125148957938015148662024527394531858242232357316078428592036938692346167730813396813769863569410410761100846430488599778496225487950302522693110367726736595073650553494743388058633656025506948729422543263386440624337282171254392321973410073303616782938450125227954793985389346949476394923227333259186910641355429155891165614877823617430059792849934295444359476829193164358475035149052954741023462966720657058208302057223249779471924218075159399092952767782366980391082398997361534140305602776076203544160010951065195231985450915077601179659969871903755957822861410126672484279243926356953241521040337656904494036016503954614021105618936873647512014483868733515447394972728597483118237990360252881514218658290548863228705888616282047708257615226082048068394295990286152533819971650324410181571995047751581656048861871269846164405307698366788615787487128985811871437619052918405164941096392062746045064820791685601696202439897318541430359440907037208853020110782085129561154631548793279198966303835190650079153906816551252228842529184774672323408601459340051275482080492233229455964656636807028922554169648008771825863605973251946748067906381884389914969630533142076573421548590981281529342946713148877087178780658602132284912443000578792398958779093078676764266127054597879012188821685438361316874972938117035046007897621753187933091393986659254156313020336020896424512212673496680045980732932649413114706839263478415120344730066007467003444072742735064409673910513960972635255901446910263141933769477719714161845002274084145172793722220110924297626275819533608632681298381918515910912128633449029856924232178946463470889876963533186452913921368406491308704274800161569793227262482125840389041316640909441385076598900698441625802294685558188749100549194759597126530453090196288478871431685792386765205647703716434241912925204979636463698290216277756756204115543117516950620017409204788776309732936225944920013300510236683009523461855196018223467050319984174176117822932388801616559466518612845452122021349499669399940695023873767452551345695130086125271071234675254835071814877307902382519622956942102475465011475479867247195490872733844983095991992717821537211218551290236376448873272022599400289152511871649193157321547116058256173658419020540141686971749435888426718900647596532268696218816744256999570522791320789291292250558081596708956748054079678723807396309669731367451750668648908650446697115889353836678199243713844803133029902522728537215607236014264580087232401169803640133635845429792379277574955400688902193805155097175298423057556389601397290258289687098571605925487466444974051912972282054653770634913890885995241539225385592890279270236533193830860599479287979780057438647398228661384304185064978049828571716286132514539770453481973657200275006159137140833304033874443818396791633903805113275135104052078840843929805857233778003949091558759175139034690693681171422383796421040285723326514252034739895198994134258803169592405957636300311922224549220949023232478753835517993900878625232558515514357039978071799798844441300115170633981076903500345678010127858889203381770495215523433463364420740717376629235472019890422132444955002655723052859167254183703575304350491597963513239293780120689921263133623081979224479716805565795980028442044737699670913568108547888530450674833903526248271205112125714075879488532262344814753733046912248511630913068035339239465350541384054367135443507206232595779637265452461627932857576234480366369370469536612793100084593139197282795122372157715830876400300393669883933792460235595207755224135205426249452856149312561318059758310085713639761858869116160471332033965287055905845167890096144206349002039831018063871269956071375046971593675685909011667554517026912927537491948172852402888701093902777066522049457436573405843160753383123570670768132777316682810213718719117427426637334608237218349483051494500312629516510135040662217713329278243135408344345914286343284646315991285699615894917027215896770056377914242586276044998620314822874080779052249452673200432870896486422530612247288714319669294501622726054786542858567647525340419817400487423258147857412881783530263418961159747700150746281850983111573594436892383688675339754164959048300380639820626909787562216475612456018088487978518765724681036460326444214067294429080055268936975783161160085763053332321710562282203233887372436297059641285368184577525794389114468509846820711811278972052924326903483753837441142817031074040465309107627131806864354686921212115312240810507761403315806127239871316802897804029510243694292594845883659322183555098245436738255430919620594796176590679383136340311027564617086844716350036386653822716937900210764662102751707913299419851810192688704818010852721399377641184319938705037437804808957366182989976782495771979378840268353112946227664570734208102737016711976332763581394645013493003757897406025407873308865843732298449102195462643632442573666188077620159197029832562095149667768281378062751195425684861498968944294302128555506296924168311093709089617596111211400425392171805518858314200711369906904929365606734249885058085295690153990576871616369444086810146663637284214011812930955897597802868071486361897337038946204603942339028873762514427389744262755451043938394152812614958468260735602820419744230094849237877390230475077402299973797393858608597928290978817299890157601982204134335170795041183172333876565262291864750595358671142596230746772710506817757831825834830203102322315028334970526972013551949551784833330533506487365339325602287965877291164734210503582017861787717581911712147965884473524014564191429106023849295571068420752774222147516649931252665905839729357178391856095230133590194529664863645653786415686938856953612869170291301581058498094564054680797284365603632334877697536261246028376996374676707478400097767822129092308358229114155111639543973091730544752895700541039113573517032355075495190983064429279084104689117203823136707675342706695706566786560590791008445791020330836241416431706814110434188197581989942971376536103734940429779772218954743073890442632394588233588006631350673554655666623171368509424432153623439532130537241401667126910071678217647914683696562995596548450953581689484332435650999154700444537038850537261667778416821802884974140244696519344929336360092464626346828099889396468666559887336971884313036774248851840948109779884380020063109714611290810690428324306746445405627425993113853352796933373689608759347241977835429863690952959873006233262363924560736484980333344306930112231825889884617815203931966229654060474026731745124223211738239421585752135573401055965901090514730643125249118937000259198164101147160481306757805226561552199793341108438488196810616484393964286839214447711206495316023789811524923866820898028825759632762101557360479739158217775859224392133381474168862142750319710836122561108614816870464473200473619885242270178892883318240159123109873985229541487624201263715387323704706538890935416470453516028645809840256128061480410722888234492657744154454240631257056220478546914778121608584216914089251106030823859951789398526779595295280153005123295770157820546760339279001106677586054727691135132236272209601943704949506298366881582916206707061452047084954166982409582636620686391083460625418521708177839811986962484771525324156015155811635311690773316044179827466380134366861753607097669861751984596222914307546373475144270379560909197217043148828485461988802348645506130926729750070059261514463569723594385470143402016993159596755660797672743471203228684257578806313702877591523551389645109817162764536431089422433762072525862846715770445481326246813548867715920126336861671963996552651078990810037917502552713624799488885307309698239308619625768613167220189317080043027136760484806182597972563726176858811779724363427167770032549299653284719579263764019976862609849167403452895713065607668673464508030389252199555895348843313993274907498476234823178443196871435839322351213209894858382943637122213578225609093711399003997518423414698039172032129311381265211093322197704605554205660114610806409528486863820404481554084165643234347922707564840852485783646851101356676367620022209247377173545444647020646402362525545785565361799372229187455350109085995682993777989890845475793805392980428609021451435383015834822515441730818929715030096845314217950045869017190603232482785170351422661308641029413017967458709495863431692009802990990906635087734402749159514031964324368890791613516783121933191942241117056874284107194701638903348101079008158908911255996435340737948453506313133226614300920362928309643400307811259361699209122329627653207513903019149287583539916080902977930376014462062835597493250096721264678840655266071794202850409344663068708928042287183857450432216200603776041402850264983876021845580468604187058963018984984680726630417065707748944901955378857294741013763795566553528259234713211455409095199183999498044801138527658319298721382363693801433070019624983523321219754822216360565354321578624025052514779337003245135883296595850931889639990488476081105738471048838098711659753641052759344649991708524523443231843189799240759532585589376566509172705680336842169978702660064180301632007296757202786360731446877797491598181053531116382885652424088121396028295764385433019927551072968374240515097659172259196537359995019130622889463223919937103667252440345682397362679487527730907009104071296779851127770560406615783240603340943875956012732655995389413618879190900826834858528432839595736106172668598127543965029416697536675113731628208106592718989937189292502546158932428486045401918991901967134794081862879124021126897000831931326091008763645571499100006423363636574145522602700515933214183981166312105476375973554392588111109462570665470261499104308825028812257997372929401234892878019605270363281948141829086536919088999682592282174126583338271272634675437400545816744563203990467900623509776544263147683331804196227290137697801023961646074951315899592222594364256409988679168214982173575218294779691675628385502628290130560960054279938998925527833472310067651391186502953676729172562084314682490789873227726982514563308161045868508074970009652666662808859553110442650953790233502701004986312354777515996082410490429708007656588632445049083083358109136862210132029013847758459315113815526160574812115771086797835261754555522657863228291664928236554794384707157597972398767937814767576527011497524984805811622354682256537579821544338556817646048389896996563961989691324050732894827247352863076103200911266527246548289285747814103314881422943526827217351106482994310819122748336908387078407820775547279735015262542410493486746149930019059552350726871472114680097214526567013405913669007244389622227139993139361490556437243671271759633793672894002256927745625421698634990443248788966499870457703974555069727060342834907136547065697766292735203089418496764566828602309958487927813317947565721164404592954504370382608192765666775964707182624490222704271967458024698363814970997082020414212992912260713301863163563615316533506587700399703323616148579924493108605280843359800514995952030928976639430162898759239129264552470388667486663474235102518639282436815903521042915920813252290220928922829644962078644553951366572002802889943619680862563033309002964245885202464042131741687368158466058873777028951282268926292718237411892404941210963015531744353353526088779077364588344610230300783031626783667687733468996646704004920406393902428793608588513100317128658463045034364849645229101080932164147978650928636863560418537553634514921297207590806567390842918201797024429701476867018112441271298306944417022951600783772007226617693053945554873386367755692129519963185124076328602926527614288532177998594062731180645194295740574557316300629037378752515697061717020863998158526971988936153211487767407160533984997730735295102388845860484943859056487633959495417066072361611420305660944752671504859350651550424811407595223262536576929603761766416200353487851709628182865571616411589250072730753727140979737126137262907829208592790336742541778726694939718819217068447302838458340384464810504429683636515612059953369771105857747990422354773792362767172867367578254733338529273670873363504669053152836831576009542147156548695143514214939025513312335745524093011036708194806392500879329876778747395440132592725502369273455067039420278481818236543058270277236869022964360226657225431582413573513342852789508255178695108430257915717759274168013507633784028519875520384297121570843541833922906881463639292810269791545780477896841932924468289317036701619517118872896667854031178566155180313783658756099057948441080719109685315173447630092054970630423391352697554759630077517795209476647402461121571756849713413812325729669073187115721266065007535724572195794937762626312541141521020956690562607202158921192556747401467166223025511023910254160456571107062390369500549061638817400160058471934922147021981264321112443452478000004811572137049657055853891312607303332577547927039032139965641908252441318328196533961288378103648240924834227840371370896451739008252256372323908570256487402362779767117295822877151558185330396941589719447458527437512865565176680798396126064734009007769265926451485725237581602597300158413379701353950629559285253405611119890121487548645372250759138434293649248796548060907725977937481221281671218635627306673986523228284872596420206947536803591110736864449291001925255012254751749577545341225423415951659210939417612526480844774083758351879270940218719089046927806040002498221313568834402136998042231686874154140800474321957697402329639913720657741456533634911591233285542063533409139086207537706431410170772116448223860082469509364131677822481915077938886178169603562697559275076234553456259610979314191271330590265017592363161622079135541042171987321123543171180370483316107007921224043906149828001331435392079395237837878023350242613348642893958108791574663752699661209315516253450341499327061006376821970010786920590371566317208891097442065512509631339990506565519640416302741533145243692039432592569675523308015127941389175879117651890295067551352486874680797490621403765101192153226226323414050629147556165813764256819122650732037184415399469259513619273367882226895916025967282459665011053646517966299965302538722912173483383740930834909603911938161182808989919287269397825362492156161458694235923614138877182365876340837369089500275393451416651128286642714416630401063356896678682512846105096828685354698238625025641094320228022313317038149385286325910642132497830363349182263434288588048680412301332049789146756459469809787460533622043974722535069156286644010791050438224696491668659356187956411395112191076374580389673082531774770078217210341893157566847690136741161422718223513609136643252865311418088855221472003529313661738688563392930660172304954389314440980504248283562276278959821318221712495251531353810921935535750503799271006848775936921298702511339235391360586528561603768882292202127166510031315317981966496128615520841535641012982786329323653878652415313530035943090343126398045714250110546395184268670159082081612927135054325714748968256640146406752356783671659913276688900668798717313675273870949573685968657660129877747549379485280232801688677191769779448775417780488575991480546151923675027523739682162792466824318719519458615583429600487558682122344931731333619805677924212851224433993350379972092750743785574994843253783237350987948204167539277181406626183998741861786455138159035737781097827629538664700495265378250210108845125065003254741257975223159703823285403211093157729597200203472900153928403439701632504131611473443108027753216033339931968547642519397303217145359380834650497063830780447378385768794624896717024941575860468950519872730618298925742923881994959080577521800878956851217736557991549669186062105004883131648646703482355204856077958896882495762595345497408345561641510938132263863430836634185191114706136049413818791656629252415502777508179007164362591859087174281542317838493618013388799362006119066633583015326177067137412800302641865332982039360852293829299259272600526420228050494733987587841792920306407829483804199450630206924569809716230681267621544833020926918956110531387495384760509510650634615023308419082144587220370482259487371672147915698270333552525875211805586992807957493173705760213986554872419714131978235849591769192552816703921809978225668812519491595621586840470157736579105371228486779592595322312563367581411433172489279317157094408689520294475126375603938977688157221561866515441439695809674176397509072026958200953945841678488425976143639738294676860762215764016194943890246606949671576162616869687659245586901885673152731792458399761532028952304531451215326790930092032646811040782185461118932585755859210553462777865611108524058331647037188676843260196629997401185456302356773620112689884031995610871025819599759078920002431224012227342106652917562624321213660308533915628467723450402356708291633823018933502401857252698466880822476033521287207024269651452160604329556592904312213909088264801418374038094732778023142718536614295184852968895135563781263146161228738995694919158661122364626343694878885665781168185025909464754569359335114456967912516309610113661590187887201479046677318000664928315067694334674531233380198123967118945244940479020088943613741384121636199031107512317297802916338621655278834060866631297819474513337606385823638267319859419246019952244036979322138252591472686874435247151273403684048343287381681145148685496546119020643313459715467740098463364675631257964594878329496030331144387166030332515438329676127617420656877910878311515886189837855136954383169922079410948810281578195785667847259121532700420810121802975769220160464596980399736188291206784224750410078341939920415093788065945191464426727013710675055832521869677575095815608029189662440404705710925052786408382384582894307261836180850713945885502617765743279714160643609060488795479718767989765873713831781264869559084308478859568833531947918756884874862849588899102231589417364218947231488235030873745782752788886801239463945900542278771704655031280022551472536725224019339777047546890291947324261483840199637742255852114761878572974438803966951231150894425074001719761101532227687917583293451245326111065397828889320593314038906020856024201488181597376067232266131037072717410684839520775506226586837870476222590800027667541086856036943854743586577101150501923011210827451898027227870503322904439396378668073905240592368754996088657839532722656326745728268963562088850075475142104910119638263565587436883906259172206119849240450254362576294318703521471309108223977690579035363607750906407113808472360876439039335675555940610772705028471266059356654557614904610883362122951005464720414957835727891521927521859933482254147781729105233319610717035844168767863242786337652433811302701367077208057516193365710735808405447508115510755662036639133771439106893372599782513484918427058657508505893552513887564060700151904605076799189298029942835532223973094845073261421416790850253107409987864188110508826453130090927707112521971796217438974563983326898468644933762888160923573132363964162683260377274902511415475532536333677819140507477139921041038542206062044689014926072480512342827622063292745254451526823287087148302209522961249626305556516153587550995472692526735927647712608119377075219515101802191516686586742499669532227682920796244470277775408781549816192282301805477968082719326836777934927717418947060305641460852294160734220865819586871218567869019146272109320275994991305767558178263556416177348679175787928311678508974862037679124308720045045107725184288694102832270138705917184519074744630860506809540731570281552482965050001235992028520258521145132447213643273350960392712620368922246284600450903516376223626175292247759662392565699978739597386683309956772552113462456483014943114608379963017360623792744024343609684570966654250537242106519592093691901024072645987201893883563745829679694074409447235170440288093487680886521352853687820119253554859591489900418347214204422063881055040535618867186411012133355077866648227700405819193529084403888224374127014044446795917927421832294542065565066076734689323159596174667902383176332221743520410266335507435202499808737916208817248702341003957573038701456403824213223761341961357043656156430450883968269582662529035220488364013827670681049662152911592640767718442333609966282360412628377936601643842403403880880900729862254460830743921980262053903380289821729764266735325465965101674737198011093346227490431966783588132004864435420349083404866174650593872948146956607775389150876545951746253398245651500560710436978948606660715945033006413267283137074026492395734349417941532443720297724537532248684511884483737227059290343402711682375678955986871935522224094163539461253853181049082893839777237156130274803349655304599172096164447391346912575074452225354526443464078987613518751049259136935548262335843568873234187777733911827038779480663498808256852016520384113211304028671470612332155860051841869512325854175391433888557614077850707589897251886816455368275494281846926555556503483844491656395899894401555575071388839409597270958867865013006081933655858752651942071958100274923120319983752877970652989982371689639885198025887951218226835734416641970001167142105042789000943761118484209823056402163343410430540634472598681039384142452190549953344681636586514651108661342843262768425870154746212274715920143043584929552533790388850266112672815124948605950242867520913217163606083431495661181443374157634764127008793769095463726033718570345663106804251961331619893351067507950413968231771406580202705935653654402696210140651073503925189222292596961555274574462989262691428808550627477957797371871007115772010844757526442166282089072089518158018719042722963577261194828832018995220719588066467878754609748844152589722566116542209317668624567904914630270387172411449785448776109781673535384096716974742350508554833017075270654856511934643095581691036880122529637358758983294105838096248447739275850790301322802387965318770739364933297045697182840830775290962873532657066333831621853621196279976055748478552006644150033259588537531234031486062733796520729711622699114174294485675400113636658854187415228281375464724590776372457120243060708769722818784931153546749800053791482613399217558960028831554357765495548099594151330352312853860040031630631064567556363098167723686876854278355538714317063782616241696340417539046862541079498789310704375638700173643259071731461609204589505451744648020976232567908644212893701572500450831296007340301477998872539591044988146613873244786810283946620761020303568097864018082272224508470660995101670240596162302756861599691837477137552572409158336687991450625700076904854979924426734534543191029888376520414463946511806896209791340176708946684441095967590087837401737682255062754572689958025837440213983892339518973992576975066941839366953053622875513347666734256769680509626421679523226530283241954458748233788830019530712757022914451913007498206344581417281223065685824615398815259740056827715769945265357894016737001292551220859735183678672923074234911617743403901035811265653764857998358543400805084576952050116819595310473521479470601300300798520650835614977395411155273010604568476406017118736628874172165210930072585414391661495252085914222584636394452673600172930611625414355142757108231888371350593930547067306854280931363093158620798123315537829653671586117090718446431675826125662906029786139633560585297300098218071550139908076715086674536597412934176837144392963374028053195960599129180271291324677891190511951553314095138121259415801090800600938378582007527055182718158872087064243873495596512072957197352987934305774097181716027834128967097052266586069946689932968116548185682824752306330502132166716527212591769980178334424721081946838068540445471608607222168637873531667198884939717032685680156631186565548646267345916474833561597530374082362386528874965627905421370438710664256402556073490510419302348274217791303458715445346926064045500730370664931955104216359172865422751163811125566656470715856988194873423693631876315561812019293122882060365248738899587424590887731483053119213636420118159723671336724351424229408379229192261078524991412195092362964595745600689694198234378249424510127914954808631668333757316343080330091412718049502266124782122766016532854549691016761930242066243668651614917261982140550080342079658933186681752175424069936974967285317103363527939739758851908354674185634302665439773640405049112341774875635652956549983753942614634683201588390874087660442060481857844861625458706951477602825053803478422865583912466321940904156826446604479570597930531917687719591287140273849994133806268309747688049309517959288033685416881462947580430051268040559731386912889450092549510927998502232746156752331113239207932349221604199803493501618042261584767484636498753073414494097587280894874850017544543524095244265464901996484923682098786514960143054125651196320979599542049467817231736386383527986358380680563091782892317181925363299428797480417263108502281474691599753126126899294210998898555960544296478035136020260858908913447640423559984881598689265124838478351678659800745290256932089256120294941572452713897767342008700891038777282437064596530159035077084843269186268041975963715695953876473630183372498829487947895198130052120688203968769367538750678755900620479888930477995727623270454149720035199953672060102319112624420760051718334033536472526510175386874589557587649004657634354911028804153611169483664925410680171883229904703118023687490390322221081488721399818800374973239701850617234646640741828830995703798682766712026641286263742568859261696724139766927533999349516620936090236759113677118586990611964238674058595467643159215624577236335377194253698049775603633997825890850321164650517518692479937729141846713543777248197866503201141106096581774207265967716508490232636217060929033507750836487691368939827472292779567470459648656732174806231970412903663784200456001764574000549573809586197040998086400325906551744528325059476073282109851724878596669904408906507770058732609756273983863191333167577751748800107747297976138682584504848884745249965128427813081727576343624306480369501165303543455289691503121194834505091357122697678085429752081285474057915700427981575390154913797898229586052633146703681446990221165967659753797573131069302220027535355099809046376869748931216482204435491629228019659581123864288611451160293605408428526418192075956909680851750739777791310755552005988250638732202214899137676092299798708525484995978484011141508595337849285508194284470607673836198707413636847403356765264202910718855603913971273654317796765447321090336182109909968759494139239885780982828849462300195901007128671053206575417926457952808734298255192439246923476884882000002019170389827890613168717527214079042691055680067545751314496934350230750147495988578804405554798352655795478154797411789757237904948252128459706257844930626298373986994369414905250987184452128749241499395094930739049015293813287386104126224749556473927174735436885738193244525033753913637714898509308764886147037032788976975649922608423760692809824435843513835724064237624985815314557203731929404665888683535612143446739518894832369016565132057242540265867537616645580673697143795018936681729853062670091759331440894319512705598129187312142686896444790635637984115048825001990805077737633517962129694463694850549885656587898764640397856543168600359414948496502816489346569414570558747547513558916688732690926843197456355220903494959206383595173184858958560022914105893328658471152702424570345528150146804954814135042607700829177248769692462765660822925708226185015173520198171922871370757060133057506463792898911883438722336383755057474709287555708642822948376785249828988561755359767649886035007748521591646768032037054780511594155007422271834433860651656707272744127309936311973954190390410703051415854752706492842184078249042798124010950237312865367095671128905757736836556341375501570544770184930047136965559838747639808939034343613111260440527347426725459469279458878729699721643870336314971304177214950398275884211379317360946669681845015664886619500752613995999434466980869886708237551532467623831901809536609045417027180261131283039465677994760035775040236884853092074842547260908893062828618987822583313190559285801708576066333953703624229119598802296362697957019505235555274468295352545873443359045639208038734562528337131472896861534046724371064864389531772024096546693808246297515642295841638170608906220039384395194920809082976047315901485121622493816649749832287134806782268516668971966153777760356710624450200301451306871032080253216648748370427899298388179062617612658042023650205061302572953103442147006902196284261198567006801221870192992188888600268792298693765758830606543104932847530684919264587809241700449127818760167382543302386330387902616034037505675282491682410605562685277289330056276267673091970836997651263161783611549479961574132825005411182350678008888033884883737935874363821185287649049688401718693241204239214420076996059149380798373426046175259759082786597895236777960202275194971123305485909753567151447020104674213127539731293557660253698127520887120920637659607808683703261112938313601247058122607221846670646370380779689166469593108892568542500231352019251107909971205655083049350109601317824419894816199459125412920320705062697164032878137772161658744932929866599431291263733798565315870555959340514870067672665146297766827704081771889198713473244377053741241164680343204778612634414958900030125146115364075341465766303456543861980594237322324681271825525412134608168028649487523353421574204489978156070251184403598146718806799583593712999997018937972571641794127124282052757920327399039262077832708750314034123622801584323565259020937266615124279375475990310428729719866646111471923540468386761978481152755828469363868715810215613082130263354293143237010513948861063348996943612559225495255793987454110431986573164849229934980049742198181314971056450117665272545462690917277357576706075165403654695395201745016277812320200325604428610689008108487087482835004369262468545759390756626455008261456378236802639698896103958421231860107063500595659997448527153802821942457662041564070202101838140268634450480638609079333141246046186795248644740103756095183057524600569752216173619619480266341915596447016706041676390505203610408605148973487214006970042104631763100355119635201094421290248909102585199105271121892920386265198409251826676190685761076153844207983373590527457069291745094849118351766228858714333234628430243659294800236136213062193445292495787736316104304900559725687723372671330448262731097808572096653540724554266625258223077468108943364816432492447795986573025599262535755888668483474598566430957631978599070190951854938652327996062155303708058641102078023516287443085703947313613722133478084633644239987459867388310773240528436397328413504609928314502330350235531445648761642587716797977983595736702543549295750414124753984888548584602700188175187336064796130200534656168350355579152439538933161643141308333521409949254624065846904862948805908411656501765943873500663693365121021838444713213200785367670263846088526863639412905199456741997811571816244048094700619739140929771821916136287534983607609620295600795512120933183710114626361056078614600379597431042299494951403039218426062259625098708356342022728907463090587261435683144793141367275002013921261924951143719028935260068789494646090901629945059855282509009951564268647960923086902833078346852489360064662995987549168876555742160356814304558219618944295010300243147964811433310580861021400551962494037306251545650484679991966348608451453723595855441406997530659450381504925698892737603853525721301291359389163155603631413551659636600923152767660276025831282511600085790782647898631318531477304667281476752184003645675556668573336180203445003845829733738180067468348501681092919227080716180463094492135313592421368499274238154191983249848328223660352366561042339623051495971129755699884851758917211254673573663814561562922276222793072965484103183698580830946255084907046076529445558521923649144716534319131750589148844859316276359698991934229218120200043383383225366314879893088696863660321607955284337324524001257080172513069910976831944158337702688745634739240552035652700380942416539066315612997767862373816531234168256529655847697489969623791546997711009758678229685249852415125440909651218204956690356284603730537072406233619549566008137512447012774040061289269059402227251898800601299991746395506987772981272145676664951214326624788362732506897194002347715207461771083588824838428656279614014117387318514116376523779231093657321229236722363347419344652597343855115773741305145754362491859661507649910145891647200939714038931691700830240209255571663283294385553973067042893592351444198759446692504876865083070168562909309721697382171231779583591043028609918387100295252241872847506339488044283303721143669983483844336558748294563157864760995632667799906817247963999359493815901279553659288920975939913451474780996556816155909092523596618141319257798108097291415444814744717448699419758668676952640185040836707963953803536041607780860785399429748642585450116635885103597122585905500906562915284019493040840926085333818525289160047315555873565202995947483358729038530437627648562159160685763620564154951975354115155159499524579196889722099081531977627338997778884206213434970222215250627694577522892234245364643145252366902212126933677976289176145551662405208788560703166219611386165955924713288241747217776987366914140863903717642036511293703799944784479833912939423190831772459749696352684550371252460835315999849323117986623937062234674317073906230141878786072004503380570000106322294077822165664008375487404144730482272001902858836508882900489635065023628757965560881811774976266048821893606572280616849512747364922380171310897813648723779554629624502540483152492124157594295409887122201734607781260978111043858524685271557161256232427260803327621550264051667118957997410762130569833531439309326848666411935982700638769436920066169091706321901692298212473997417694451215593473975783968578827400693861854512617975766300206167605389516370748533380258503076472516842815049733806847279030352185230769462648208173380958033300771494625112726163697829609239961154522333245328727283747665126492916204961101340368261467797583185813045799482736901050588287967364657218858531578029190404836625021622978659482213305587004836480994218531329594242379944445787057054302679816467963411843858850539725772465055271947388808844240341255070847148055089882231939643319842898084322335674151240377778928623101529787965296737444023801921357537333847583707734384396585631746838006258465008438213523725089856383682180152302487270243342298338626566374401326960360436174201538950283011758272935061162932541575678017468318058589930286063072348965743935189456998562328597127458645496358080787645602091826461679707936962525459274103115124238350250509018016820334992721249654091461588093017684348935272595577457874512973837280598124302956098997554467260253441767422863736229110754762105065966133012465872559504796746912492632831125402913158707784099909563779538397616197370816376533306734920425263650330388738413741303000702466230002333723782359034634554761707753311249095500578455211077363892283850013324846768848056645765436476772939730600059976357233921358129796496769756256065809039517987535429938530507571260782101142384299316148972452284577725698015080478742791731335743521674090142468251869787152276148302884110115180437227967828272423213213272044390378961546511060398060868337735485396761021139678805799140807926137211958545870464234881422706662486330677594450353403259456193775358241317919070635100360978914133930490563074027326737912200666661672139699015100672211110778478257147918964721040548936283602315889129641728774432202065882996082938042307217465080252935830464011393091075860575662246328357485695690186341896829218992170020137739398791276814320299121316640874072468689795588753424677470516648494571486085713547875957655883724436109453163815858860083913775540540168149032976645496662310364942944741326322527472090538920762257899640808009982742760359817824176845528821227349035942941392693451047487070535450703003459164366730640882633133586111351253724166813069973718826403883247782783403182824195010377126093446075722734270407965883539232732561169199105138278189561972732069529141339366254242266022535637119259633177564113265367760324350793025721969242988246182320836070184041086405940990494263040258186129514011268165049219111456632846615978418308453866126470861453450313402698901808373912082248585448060020648328228947223815435250830673953141816722618952308692923482680245041479629973582062259556692635814629496755785445377827662437143735144375357743107780308808307780981484614002243107504212470377412230440526641660748046086647615948687126476598032946770151101573960035901585191321156342837132212384608273211248802283402873640365350415945232286987795781558768239358557154660031256514767522116301142627235241748960016866112734941455112266209078109581441835648625105672195461925952507097414497954079983103852960322298344814575738257706635207940491076450687709462240374184559334583862298452490102394416317189567112996645451209128630235290641023417233008807035308126314030063095109614676333084065535052170897995950510016412203118909072001191258926032252199044716369624114602044073398437163461409246902142047117895619533185085117963944048322843618003705858987801183742211197407105352352847071648750811156594123831505083117269268952165696503769429775758665864459249856890356643713266311354346700201551030363948462022283150173684198669332007272078819225383030980525605941140455140868879617468139500367354661882471738449144771188733423500523345139783209752215694424634623719029753539100828458966144848206204713604176142470474686740548076537416144140314594156736327165235788739759780885089128256713641448861935769001173555789444987120861760895336062847857555139354934747082358175539028347912204574330737895278871407302737137302793234811404342063567439967411604737890346603666186783786424711749326302851184041624856928434745681656959597530294100012810590799407437424217002473900065095259721694544622388041807610766425351441789397834692521935517447481012387099788357616121849762348270711422093013301031659667961575478122516881870600989245224929728755557559900704056718484033659798208685504158859408663042897667787571935339895147595790694019260982594995425905893451531005370264058500069751523704835953112787519883911709250104103732664088877457801521077080138593098248256438078818433936325517085256604157263525359067480786434544209614218144764393836264551760738047059811296473225390749448930200082326175004010642499590117806394767475465002373348773047265487440116904907863208096164204940982964741513090315571260839040709861344457720215037081357736209356202793680317726523840124226886879940272972526048809022056044215654002518200018532100018687630057949336163092794405158552139127038772432019997959951642437965619280523953799896613354113280056847270765519862786334973933943135310480549752345799467018820627015352026397035098362672059307055886958224657313847417400301228788411201231435093480049867983503648949894510179390538802755883977904569716701517477557787619292473363958936178723142488750103321752742575225807169687461288870589560634579134186681808625156174928264474733745920759396710217012708188471680283559359783176621828296926790160948089004979008281570894444832851056039579376245329856926718236696766126526296496798966980826269989807985294657478021558514813275045793584377912375646222105072434951109819178527999411336647957282728651485408365287330170741557001801131793881054566737799009554974764484388801785976537212563003368085895066966590810895434980715452953527871057312063467663731053975188450039397706138646054324225943546039038726417889062758714622066259986982389952031693729789772082932614768804895598724937949894873019173523084289329546892220252330724618988911937492853199791866122247228599292933671150438758026971312185930095590959177486807000318045143388044868265595330992585569462732039784366144288180167289928755104868413199448663315618683629884856012842624738122323349378838807746793471929865174807212541495775405053484444427184625686136468301299488086234988509050618717998722635664327263524606329311772480478235904420842340572369902774408419574490116227448373296323685172782314053328405913634671885807330038624412388252842803143457276160765222056839391713678524842208894475555355971104027492595221544376203619982485683832338600016154045045816686398791386192834952188356385738725398268491584493063714680826169615782698830559025522102755897492711647772179798843521422121110270280848785994060641186500599596001066762400261118068463959375579040155301442038434446783697316736362291746973501177742118256630584788155585659301375210077961575997931619117325914729262500741461214362189510526820825588098836656152412505400032713915008855658043080414593073755082420593713565566062227168425117919287516997154276748736514807578588796602318816879895885047348647710642650547138934168372329037872436560896497346353309581410634241589362801083364211549523116090035460336486709598724279741747049651257216738956257945395109866262727489765295398008175926070681427053540878413687826676018253263469185054262487649067312099625163949207647345273358598145081477397583724975015526620790394239614907784279145152245462265640352702229466938265230673053706071009892777213944269123107217709837204533075212168120998110254104364581992707798347257604580284165472025923086887605120817267917861611388564413134084540047640268389209725673725642083895652492907295343214697405602280777471982376886498040705382077609125316581459202407007080122364572402192065797939878936231560833189986776931269365353918850816799157984899282560670926339367403017847183871494545160926636079105854364488255285180844538252147483585266017318263776438042219073311520495913931927522535037799466392788242727012205631103037370135483456646718026141066273852781242319499119269918275593693304635599730847854613707218197678752974925370370424935423801510122216417446906819219165373849756989653152369165470164632090999190586876088363384192879842031243585547742105300190272496612046811378042121544747995720471302874291308606624883474496752999158644165682855873125593749457250171788919832827153756640232391522370660320208132836342657778330221524085872312855599654822228982367097921628208839243491292428808011930995073263987066382129033833249092610776130989255444178586005374097941227294788084646326350471585869278109825459609747860836006622863036625748984942732983663360403456929351706173799428500965121011789704523556576962002673594594884244718052986866185897052192427587378894297850503738252085194126673312824913902026471465195875796772752417038355993498762180020791589649193354184448792237986691291411085474650196988117468309512176862202231391661173445816114727835273815434776926155562812770733096391360810452900234909749168779367319918192853589925648523283504489722917078559155087095217709527232646334122951076433279887294076700369619638371399377947826560354942775434197630460409141801576110606256699127266237846303541245335051161874475242910009053616323689648200746532328704252498868709933357060206553389683822502007835869410955091369777616200177780846026699627548929166093369366388650128552179328674277708375886028493534377370446509186519892101224686825386968365219733903249418629550856682887413286774146799214901523485554216493003837700309112558383725977047393067153202332914725853228594444866816278085436987347251931586984794499634753508195241098328027730967197984086657469955031935153643251606955368035215824475861694556001526431015142340896948037232868796854515003803552658677997279780389530203169755277545005189725324425010964757557967904796838972629899652407195080506870374528179926502143837346116307842197024097550967520902796663801617689065510987309612977739218439000525851161734280058436374737127338684888305578714453883463784101356560937138439284887985029953973495412876219452773573347475036662018386721114436235937560546357302110239514660527417574501881890965938669591796634584981159264549780876121630849168127316356631112105758654905601732684251550783812299675471471668871249687767832762242323843280711177601145944051051456304588416827285857594479314883124681495233900776190855403561822498581600557500318196406685657448187907477314067720822752950064793397018876102368684462411456242321644431742059798357529720071577392286036570446541380725770733502752199903103547791958259229433349066267470934809512193106699918781795198393951608950320386466229649441273653608326185642210884173639559852837452288874246364557782565912362193279181149039006128798943457650139234287014455722609080850483723194995613733120711960278484861874683881984153216665872655359961144641696988135113315922834175054343495681172854350315055482661460262233507399530132871997562037265494002551625182302046616269122402781915405774886658615456555867948065883781257323225163022869120219415959437510286711557225120830912583251356110360510380860026265849544041672709792875935977694849997449886558056263745650699184261964442535063339812797310506401334593642940416548770746522966670617011023669480723191796363702711436657025702925155051010817974921878214517490513280136981418248719967380941048125093046574654895436936136518790384257272562894210938250013570793636116074275136930114914230521134716437498089025946505812643753992034772650847899080795280151917721163669847701099008858429236452937950003246035987150937921409475326770470817904613831585368123686285386314382022817368231394973987154642974923320389066221913847718617869540359164176159799460571175171898963562334429422514650473593476553749023883776404629449681340381696984387243332921329011891505530900871911370149321859047555537535676693771557056819200351224492099311597826437377045131434434143828994998308207900814064279820452455003889072886002510158096702141805690329712084912461291965737834803544539063509809019223173346059608091457923304574632800539570857888317861207762439011185641271546850612449644549467644953410649894288111886075231754632524910816900137736489304211273437964908159935354298408951635443582441568289321584175815448989552036590391477393242927645594725928814006353190484853579450363274623875277121543462365229278359468817257298376220494601787884786888946270581524221765983567822319292912310839100032561651047357327635114533543399744600247865458217684947913275902230302597147152401963908149605228852491189720908129434220705932792888782308134303296144566966509634022156167290489744377606738347408283037829280714361566773720697682348608612303474723686493264168063051473055623047982097725920621919924004409079434753729675662238502787534838272051983169891802413500284952344230702682484264892057702471391754972462353184000952583993669498667754131863987976197834385237438410403790964814727577394378276741879563901936320242225335913968950214581903211121530698314581890649288493643600019826766944133340335799534853597633126971044978222131539153824776845598771872357345251986179381290057492625046471949444960121796639354410998386012954350627755527278247616770060844211614811379824454868669377418421842783441814637862351286966350758008536576228384068709011104976999804185365987392411640595384509615965279598778714367032058461455244271051985863877389166241548466266299221979263756214562721818940242142763775483977047065297295409067758935804117348364685943410482817432201191944687730996449148253010096428420412721367388395536086495896181299881119479156240108366245006688062152442010578760120788296703938845410207802993450171477324956936232915806122110917863326204930833532928116842086538488592395045801371676300053722093283133315966839168549754463756354707909707168931385855049252546778079923752472067628327794963848636845280705899630102901029650004713461411908798562323982318696967308061302416978461862496857455653291883223711678012017932569818843556400676031409008138762294181481501366908753240659998804305077803984043613858083556740196097614888370924191814155915908822531489802165229514494572354073345418181617524766623144742968031562322955174975293206721596914923271082483251563176229018731886630460274563439366628109901700932843428792638958743288119194021289426723863310081699888004508400813946248272711437167918442092178697721445970314569666138932958766799246050603602452272838006226601663201071412600365657209775110215144260335321983446915958214837236601471834402942175511361647254178048311200152892227403107157509951332022250031328726105254530380332203367290134466810545111382101852369720567217076742856465180241819492292213625856429969782443265201278112085111566772089724784064923647865210241256406880942194546788811024698859173668896690001529706733645880528225979617654087683819297706102594985699134327370315093980353602837463975439478758923585079467093119949773201531301767085560291412259761179122507270655442366440536784031797749028574104976462001920470820702361124793826060733915233351024873687673731985399762453038438762627806145734140919168771281624144560761345967819863225798178175895019777062694368564143919174423375048822165138009028641487256194157555157425857926982019885549527724866412187382095938987973639976933321449486636986652262935561486595097106992386628322258998540539185225810555268453883294696833259954636734161931705962513091452633427800033058040275844950933306031855415282323903097437685131514456354645935359247810890866351227252172071080294334460102610650779418209193044080452018758785407525358748101145505412465470538564960604415267761274522879761274604896800413496073495964496294671645765178666289741880942368370937925603695961080501656661033751382473512127907573001152401046749740391210316304789147454163023154387183512789588846956578784607374758807132598212937160052357297539994677972767828908950441868960160300527625822661791967122878362694565559703029115855200024894190780204865457427923029927891535361934278305617046509388539119959782174320809599159319818056300427228976434529611382695481577924007923217218252775851282407941393522681399507280157499915571943736231788955775622362969128131396197112220020862112310419114476523385809314260883893861139837981095519575713930043763677257777543164700339438575354722615659852727622822074459129028139591584136292465676716915148457655704125921710000988952451588628693643957956073969955189367413642187213389604676728850066658348179082407816365587842768758457825503859847095195212469913017963730359995073492627054671467262096373405189094348522029942379871274184265653264790118257162566766426188633973506459901008080904184776629961041984005320744228793332565130881208464193975026249284033443929201621547567182610460499283308261678907397858261380393214129199889288315244968029070864901480392688363189065939605800003888737178516702783041631408948333087666214276307651363781398489936099302313597041294229848828780097502864336140953454935868126849476095422734569320410314951694709509913696030966004732988399468191291396643892086929887944127834264353316099591815706023266047934660433200048694810704991073173069733348798886311057537208737308502623274009924821178980281647066483161436094146780612298502658051483427180928687150247725372784939575828783093700070958465220351954672049935912633286503475429099248575375878504071686453343214771440901291641697149757430535052792376894055418545804070156260236701300001209736759730448981101072590952652839700319534259168126466787158704340796609004596410212394464812172739594034485428543642308202431425665728918679276534079736888834664704818904103626483365872685014743905400014395062348107190288295809708964300153598307645416649316014904440944487960930513366088168684252846809781610516981717769294409114275847874606086377335170544707806221277313721893206649442520248118243363822360001203828006726652926305502795947063494655225018183325391180552090847492377492631667372419041659138440751785344369741701748462940810098386522152627126636564230346855982081047203545063710887624374466448117232233345570728918230476854780657952090091194003520633894676811091431429167447190328935098292280061487768848638857333233858337768884913070764843990854513872085110679507897751479263133725327194401415138074101824299311844085029814327717757903873403756460677733211715504488168997313596662998985904835804141183540227559257169061242333049363847039288968267875254517432406100613666579917590787316095146449281514999873102541500423822946787361541325197097455503287816616619138127957234972990184822012759164473602329515133190618104844662684783789240946437197452757956218716608841518889773351265511838063321598740849429005098716964162831084449678079496931068719213467771076558733709359464797350103961043136731036539167695072590132270452038963194042586978344351567431096772517765879826899110358683807454480596593744335391597802914109417227325842969210253174838181726338924563719704789589524581993529384054936912517553484749303389617223065952054488145408400933361520192347900773965955605270113701499536258910273397668386361040062536216888296349043055663377676970172383253414661428514893354341434904034473145342757559532735575520474986946395559169580311015509131870844461382802513889557286112855878553814042393192942751851114892519312945668858256680402567357158706944833672531723343304157497119388527578256808745917176841294661919564389097982091781458486273986501170649319977048499667500678267670388102518512674501728031706073068675498452373756091596231190012729244072206341326241833029770794435932176186734329186918961860349445689646582154596446027990039091355899634486752724909002314295736842996897710553220780581755850309990482442275422459073007461109473917315977081753457827880066597631806363030149487922883445813821807533940010852454790686136678096888064054745891570843174978241125051447102351229805833978041799292027045981699000577634500255153384074405378967854469160069232720898020393116943310350100055132452710238160611515840953359442038110975519905625042518331230343889885213239328316301126193278526448733876726057701291127327655547901546344688657665313429738656633511371778577918950836620951076402147603026750021494263092883734302849660764031174234288474543963695131047869071288510667670133054467591458353579391604705988248846990676872220321222351855465812512522012554724242806056388343811066319189233665131587220400600711432864070194718428708730236354030634273442013673121669756105406586564494860343722927425900935800379642709715209194638970742482755587582240254923614226182077712560524649156114850475832346279023360572455592691787205275770595210197608455542267374119090205578490686955525143150900760364208822606972254734458312864802614717605459588736833244373580412038190517426797999084736650003027016356866489600077018526215174659944798373242071977886985046523720235870651291021803017009101806554469676924578534391875489083615757833704515142199242605079729718069793965031383409915515768832465866492348030530431821122267399465752185147865375991559368049537423571221351336500305322518782677150965747224738080387270577727242463783305696703094080801608076522991444312713268262230617963771005204020014415245864835782316102488453084208242649002832111247337425734371484974428507408130558420989498198086296548709911536571601473323168027154528175637280493534875486512239555512555256715720862673810584594419794105126584343364604574933813076713806515801449877705970508558594758083931459033815686669020617374848635736859393246066510326946939559519637552556278764390636254307731736594009042498751470301424879240191510225300546809294209757528770771958401651661599909333371867491080040956658707380946510785763626966132432760883520691635123194759000520838443078114242877067993699274306732247354174073555542207157162823787963292892771452889109984532785251845590839147569893605835071582535399365096776861192278002738699911873598823838946852042911746141174625841506325215915414956534179834340208039825935628654784838539831323787477425500254903627440092096821183843450699090864858074308587210970462403910936880215268248737062404203951621003320358858778582747494379326724856644208837094069668354153178544248658050009634933257797713807798671896757809858961706275422858382126508901733769578248092889300782771145612330852711393234865926923630723177758228422872768878244441126607432340468990624633240680565979723284722977912402735296754509849796237605175299609262842002552715330364787244926489528162196764749569216528231180517834858326405525619270564839644326825075715672084417049548141642875835430740403722543964844649994369396687439151689131485160149239446515000885591531395171904055097691811546505855181625641887153164159751757894679379622625575233134469985929605180803851058104679220457451938407303922192092262389136435902372203552799321557606967101417009642980505935298770405020032241770796391189467001558983397953738254552459070987389517625261515150883372375151692173174288107764337772783060983072518166928003896714997201764235590344363072633947486656843111515352454773609597460543898565377937568093959694143681348160979570180356893783791297878278595595135177252907870356820412330976373687322417020488031544006033030404650047679158667796616677815077639015772639986252732431848078180446269670143692424235568909065960829644476865525978738810318383718848650422410476589065378821260257595806840921406437334682457718506335929847931987619424298561099614371384235237840239064828577262957896493656871396811787689694989834551264663525572078244712432192487940465689133712961021964352597985276516001888581202775541094502351503880082177066407249632526241043819751619125827290344371232797492563115119252439569854146673506919481516383722607392515188775175165974100622880726448602209456930414488539882981108512492306260883759667836216497534125396830849227113425139495399569362544133140173813308584817231588747322566862139251938540102249475575494947158395623512785670338888244955510844623004724076121659527843862528305999230222328486593456626292974843682773081203014434593689874259766415514412097984133998015934584353934756506243238501604327319188051264066718713537755576621467093181315116287950050971055179515281809093154481058044767364122166100032425098263166257417305182204807154882246165638913440469342081032383990325402988174634249658318683694748619425753354036331223838222392494056270856378033056213544686593029868217149528085859494186765322910673398176848507757615178505727709988062737081438579411766876359975814499149890314594098525960336377989988228138579039546085000761807548804339584686196410927626534467964520526347339328607497932393150314117277566980393148163858531680256523450455386534374008745651706692375804497864052028814698203033876888057634113507097201700855237718024492326257354695859899846485396171834973655671169794953645390797658424902661855688270548778520603230290704963829986271571871394249157229686185858727091770414798495562938705965139577005326013725947049474672978814590136356861755107962732122082038110848181390655248480779448663521157940134112095831515614265336392727825755494949163626767873519993216869870182246702306680531825633592455481670665361602190025586641535381772056275552979751377949877034644509880403656646137505190876504345806178609745971699848284690505697315364777878773761875017711856225894533748078235005204517629266682906365561061703331048550937948810223245171415924726080791016396564512532799092835538949161076359925615405811557331663343570424151683081686194255090196921563454955762556934549689895114787183734170443753241183259138987142452014417616829812722591246197388354781552470208140800883267838281174337101155086370430376288605755961237169547305989954989885055324261598240554289660689798669357283771950721310236663599544149223693916674037877622004842870111886043753095345360044606280185002138259387264273672575206961039118065275956581696503529064291558520476438860335327697245339596225098689440185273260706220324549708829709991318978925401718831864074028079683950651062699656702737630255223751844781247483886090513721492220743207338903597724851443760534279721593629035459644417032716885666651873245580486257990467827169202081764193025160016676900394002067098847436038866094185333647978844055905407854086235171795383506645975044906505999189193958939405297059343344731850652999919485274842651897909798397940002267325492325479274651415665456145451260245280189481561709640046000879297475608156808820743519753746883760301683419803676640737412860534687903064955053022720158506270737730881617456847685287608460151428661541000408621454155189151739592405998257832959924476205317656726368709186845560751404922181804488675122298455054627466172964502344839966202359813159286152682895736589103744163409537059768475236898487213543856910029192254828797005223452053332066824541372290335032740786436283323898936965685177163362515228261118743580077043867050235865198903937254712275427181653665110054556131179405773506192818769992999027102255586482511318462749453300073882351903437661396444242574943865126518209749924865144795931096320746245040034205048651588485014845825071014969772632416806216316203053944947133583918213731376027046110895131168813757345837314040507617526739136264421047682841058166723014704398870534330448238938503927862305735913449146886149171750727304999877030144296199892637418004087838318433160190921357203662971680002281049151150659501427588133860970183248719811278157629679207477856866529448722574940096984489607396763965518767544302078739854176780923600853311501269945158784547331913101195609030269948639915347072151304401693335581940583052107511449482406585178291988937641569134221251072447106778377889162495878535129140752560959656871999643050386772441893026677823550270486570929145989635091489377304218300301314362638309890649626343662503413809653364694350779276501333117327223364702247044459306455912989433628100651194593441788798922085517490025816938545431992368795235984640100740980591196723528918311565989745214201729543995175398710846888973696655260257256672316470044432149909248180359688220135395303319380366331078963811110558284563926955855362302859340230783780279702806328788092375027166862501891744815310298020880735357052382071435224512842488583200076921258586528908485992224802056947745788350626665188191144480233441049734056060729078680044336897018673878057668965300656913468452906784390336683301337476799738610100402324888802185081447135292065763516721800526063097969426546717497767966953952269365040027552460834551166647913891838689654098043324548282655872981136452906364745850844104838972324427449830130645650877509866513771574900376393200773037625996920235955653771640395059943871078788436432765616467585947120941801772450135172572768897658354742595362461948057804800927393926860513711904660022910940380966336858340543916373967322772523181830405618211638363120744871362145156686989242195091797871832693808703321081583318437120274394363320183571536053056098184186640107104537951693679677201029187651023405167273611843248631804742889176783509126225734590857832950766396538764307594107331900950448360928163218054885987296409879092060860074086185131924774162496725121751889036546246117331306163549745061307153951526149906910061446288921192557637210075806012429022455235471169039244015298016653799818440645901967867209220444830370287050415973544081980718782833000838086177340815692061294644225580773050177364570371448341925054018177901532766362421857964106882167089211791438672178229396509879917437164737753275619483675837392119090140654164454995826210035606501535972181271717830110838778663985819850471771819787508449788963734942555513966060493536886718240033164561365142133334565144283876473078556313961094311416778639798051675175455027200440859419866540142122490502805459692750600900796893984506667574598367242315860940784625143473983516635348550542704630093666693197190534361757351816316799201017065137727157500226242288057007081990236360334664756336845507541392211750890838608285887370112531944974394019688202346897892054001750247131125173226471760040806254350882170293744159920270971894664755767013891576370916347865241879297624893808458838877258227760420922418175374993254971516414148232941575206805473832538776033736609741979989574015167703063893789698718194150467753310989663198448926350931603817297452978200600012901618425873928696343605730904935905348600323087427173511073732146121965808647875595850741576405114908977136013608075755424089750055759715799156884037134383297221948424731308441707068590141200168932746015531487290388261097893228331668412815821654701328328452392984957161576536657656045418670202658201241130098077230165008176571518417127369166200446410961309773660114415596569533833535465151772046418590619500992778081128131893136607250861697649077129539221144963562329575539795301676588945677655150496314425230642786318971048907013659276665059548997363627374131076306159242737447852249348118549504906610720539600835125650810713674630653908896831103696846254184780704776021325443602782669178050187905321484674645400961239923570800973116313886581175222334218914155861807624996255864606096698937729588614971971412231136872200372344685468528465547001084599483006340433661074965310853968190521542744708589093476281908732094354416285526776130159955528910461632271344993797419319521654303526156284685957690563120071477930208890500152953656595556397607234669908072225662530691517995093910333435319940878215437206626462866671117909978756613928347267644895508144365734335981541922950314879293776026235503643870618412229405262324592287580949168832899411830514593398959355966033839943955617943064944533321813382258237218188490947175165031787334299433603667413556528960794389777663914934930333508908249042924009968544162555460709907564123135846665365036319391679123417485058611857733897409831295954187000231118926033625142722928688002108229094363912350853677833651556019089021729568557233689503652352360351965153432914597487372828126892091601825953999022701075561666044394681658313156157312041547455991080790766454932046740530160107970316193844477278199875907765881522687017355102086369921538468900471595120108249802656409741720682875350339244690440693839922861636607321370233456795471103647973985867437111994066462374673675038439811185966557342360205923821612266537016610812711816453784901855144748329831990115247332285132127384053488476743138738073287309171406185960691118178781190134174529080940739357935229086218193766480651098646764110965787352716321986457411633155920327232177808199837361728137712285255672647178336103812589091268376371279847655219140170255368311479340808765518973493599962841154516675624891490743898473743393730201891051500812148258202756708150724473449973037555517155540115097251074536368085300234293317745383978317325734187377246441176775371859260628172740838754559445174368660783544753723385714841833155236441211878761429187470855846485038955411666048509262589559530102625940122655654692194858946006831259038431261638684552458869555489227780479903056951536043545664419454686313784014444193070907406759210553488565428099225407659853785045970887045613091280762412274757503823141035131486259901390335578205902925395046589005733446428793712345371087585325930761013578894630524093280579296292057859207626264175866000443258024006203032711352580836551846248217376544479302084584696129990052851368682989099937570509939698305858876071407606903430851177055594810338817528999060745533747658254630380865728973062141324026565177412963023265200832210176754528882179184459220396175059407777675446097548328119189837171797361125779111740051343683880513526203602438245012576371421613282279574988140041283191572318957099501011905882132766568302062318968149679163190153978179721748345498450182441723245929960652586161364749538635713322672087062274947654009966850012910671027000387456999951445416402204338798554239352151363163404349351733624085917870471240967790411364050251270765111134303226675132201214756059114557416702551156898105526514285300411866224333536325080740274779625691665439864211264653475089040601578287481132164743772056716502789800080414587914203899783720101357816039440663847658396236437882723522571942452205145043088522907225982934305390967340166408804183694396782430822786638457595996576038143473835663407627937264243605554599289680423661525198642982455524817990497609078328853443965907252047756037583233317983977521023565741867479611388505359561950729853644626733592752244095141817383827521921854216355267865290327672716259976431474298905743776852830582469341969039831800694122920324187288281682037522970992447424229634181342445542331461990767140449498403292521580596720995563988998037483086301412828824242726434381623588995562068404380739917711946882753510616693123006616849250057708381598426221618621611160467696772963504162350618600882475746774231058724497199902890932278922655528200526395242510938796981793073605320067043088299126054379231053421862482239444119569540843112546704985317381777168378293001242150929485634260811788093679678026146296022124960713056083347879386624179470995493205674388788814814297946109605334085710120642402485601631769856125802635539310447647632571856568490623335488470253308936695636210302171318293100577726788497299784183280603925654406792305334118530394647439551270434730750525645101657199915253538648435046880891837680285135560334792543227130177238463374653858638722289607452503929972508102875878118862222510755808097106172830872240981847898319559762912191090168057979240132007687790343397226112519044781339886693178556531241428324895469763032324000176738747283446158271411539278995116307944392273283317896030037765380532034424033631825832874023108909522098382195853744546310844082847330429390926382710380340989817520744289492085530994312968258961658390288910973211970230099680863571545652157583989573068050527753743315695766222970904102702409373013954780749312343430219451589907688972622025021707466629315721780312501114016334859789142426533228636909487146647160775024028581901822504761658276623930603708835862449301176903197721443553212931716470322248818813447595878601815715000386707668419490485638170722498840566553902998692268398172375467231529385266427304187753741608154037761105301014718292641351212369812687451554764629694064083991733116109151789365194265582550592887377174937613026350448850702206717602679338428323049750170508533282574748195620295078637039808296506944091063080722369411672999043145853002131321784000730658627565827983726910778718206192443921287207199841143995282589156462193619569373080196211574739993176671545134977319799966053872034477766949273692553772235351240025885595933142672788061373901734979113588019502675511868265285514590352272401990319874970752019757115834927137443959608380934105505556810243614740595579059565090870108365866189909535365369083596759952531125879688328297945615614542059215116358974219639766700826959107030459317594114469073822520382317179365372441994689178120558317578093812097573689113407820506751418723568122969994087621359669003539761490845144681504424914651939675821465860636380325411631932299151218485174134998578038835455042686652255385987291451619898458696051506548990188253527005378717031384109509405963187632464750449209445153164661545371654803612850080846279462794078735509516367778540346116408313955322230659762653719454646261803163157908628441554498094059177099630958997963843478522588616881443554864845745042606513406859807900263418371206402640687791095977068953710224688732496472956969787575503841541097640906808818737051289462497943022217879195729670518929875106381333723176121068837428176581515166007642992374477932772876473561008750054939434673134314898969432515802930244424114304967359333461505097899161208210021773975190074421153859889823436153206300861078958582070092324915594387433706823877839670344079053697864867950985314977420316716015044229361240773988072304048607666194767526304898760601693145694612947993811604039497802059105997744368577122850185875860463158423606805822603603909296289756489575463070243769853774392802972829453796555173900616509296755056154367730079440289978903120583653082823285978625328987242129222251920700971958915825597764049927713659877993233736595182697925666470593999198016793492461514203534622512013927014278829055407779816056424894549119665108991529378607091349443919984290022279853557111324637543986502929088939948700186536542924656830458173318501028257627572545247987588153526867675311121978475593864923202816894681529033680783725736916407345747908877640317723004900240654894191478293532412719929601283227644825101651258637023739042726743047448984654677487692187557870702518005904275541140642593426673182438041639357391754766859344046859826016732248028988530430389534347404629339870638298404754232905468519485407075257743998079242641916999858560804063844678384494006567853440596186185707974614521512873911711716843365078553134465674595726551050912824030894253493918460485581234628586381382629518334746801680479555924580696507650371392283880584395004330396734645438498105013848966316527587027302314248914550154432399365747461418349607902731704082025731051129570570285429944283292758489749529946268002888047873759904395534625656663798412905105256539711863597566580413089632334233795402633433706580884499185819638431105191649253730391330931932742849982014099210350667294538657410483423619986677224992767588544488845202282928230921136915757041459455211265868513224253853770792636825021265178756765977710922917347766864399580849858158083428645120658951184164021907545249485576426156804334709562224165576772576686483300673547923281110838551954189349692828823551807811569466783767538356291904545213531353087119101834689309226012976059070513620892445838486726162107367219980362424313036444795535098435111275776231220172670249752458835416899339311354970720823469943249910478143674276515149923211564011623195654685555193889512484251497570205659834939069511652796836323274554344653175675049973091527020999274693143064431765280503714358420783021757130666747222447291663224396321644655284427249463156421835331079702556920356578045706141877902881764850476403034016110825882621992839755051931369938590924131751347078916916509594462877369880650129848402256820856361837763251755869660866614418132671703454207448760813131087634073251131122267864543405337703671164701492376395784042298513602834308245032260450189109574992038733785457773437577031145487893868009616580324370750083337835519415073361509771634248924745211335088537439530978588526181522571562364381634908332406783216364674223890872643819835278785117211586620717487751189387593206548152279425761468005388000915214031339288676730980862129443952169519194254127663506845461841701812167604397121371417709857425187086290882477539800193430627330080089975720361725762094040296677060999560718073227074084430365435487305520045156356664206864646604282475297043835492995142508411510304912324226408479132330160601075610489658658996218466317112438310094684653457207263910870726456157648537645374456979339539587100860540864503856488987491422580000309960792601558945929488095044038022684462763561547065784188894044981488622546199166349781038915797680779653011456269631058175632602184360808271543353818017969405687926237026932484020461304429189870194297968166667425158893303969892091161680087086845363041618841036047830799403793717007571038269180510590824064390006932970686743085577940792348673458548356136142642436599869583019274493301254159356541697906593479973185513677962754301889858363328406319587483537224518891067886479167814780354973354424678716137529129635823426751665049856609752268220003166164348923223127959263962082936404604375434038797746485274826691067408103874685639634227681957522523634037188360605408679481832127183853103683570688929327943799321293034175019909871603950661582193572813715155531298997391590321199921143157366990302848515389639569043732458143581863654401191271808467333536440115492535000409511009945557880891793019233699220234941913596814319832203294101495251406841800483286131584009038628567729837151164933230594828803190183125349177540216985743801953355045955494774033757442873573083778148415631865931413206085390679668011551057269014248205490335910532701654695016697778528697484289413110378779527880641089399335175639037547681294860159194486651749597790010530608838510290547351169396070088276524897362890290263469060668024135259287016736310920352108201191840448998041517037876752937387808023638005868754633554609252552387019434091166147877984767545288858977723776936839018380461283185151237334588825458591867354655248684209219958804435398511145239690536951190028551475127516530485907683148201234346427881402476837355256154791419857425153171973766025103843042013442614902517400087811376079353705169704548555523667912210006032791180016502680453129961450959901247025788047096776051834087730093964002660211290743188447904943059706724711216730108541489012161596365402261165035144561855867351303484077496234721606023004404944300714759310003161461805215753170410294027586164261639808644980451815404197569381824110534159333619605174088123682521578671010191397815762934994480563014957436245452485060099895309929378234961644488620236537693057061029987652015344748363163671948407889917278957455914704526697861806305021383296538691109223512831655315898713407435810358707029439365866325102148677046203372971178998010484756909983881831993094998238515776324284711411840657976462420316641135226898713544109424211286716553719834189526190777806317075596597357193338863615786537178769119953768430907369727782877655403232018988450055417770994400801711800399935163265942701439678014634650930643722575743940738391761376893887711321508332768765557313548366561455070901117649293426668094503347674492896380938951376472597159079750354592183965479669850109975864814389873473839025949720982200053016667729923956027801542004290288729721524646020177833121647136053591844110939698077047003880463536502216033136106750788306129476895201149413698736921029926691430152124861136663600079860526434134067805545138605527729130629459234060462250380458171088949147526383580583457473837320134806497884363434139663288914519757821785156439242160291291336575560356036329331146311604364695849992358219118510343905417542082741239996633658950016394991018444588142353659364767699602050908164133946975850251303434874369755888120520978524505494368110053563508446756543831700327537765490161228071886637537476749146974920148229632864394905041205420760298818368457887314195292457506453337716658217948505746511206057161739898152846230480537657083758988933510502435989996060213486741430954548712820208968829364292849437438914743157362081965461336800261013404624414880796948060844313643747628195459271751788352514835710435618569327527212079083247513441459988783509849449532200921427367191295934938788268920770138202617933960072293338178538091880351633834551994888521085516233875608696044923921075091199536346345155658241649937011775710239575898614601407032248392425281729387910355570767623681183660050868385844963474657761396083849990215442726782195033284436367455983381137200677269144543050362839996009991657326516004242173981829235556099879239117247041256750461425102908997425440318454742499442385200195413486168155738577375353553317777868340757584870924612616701364827954546393584486488964340581646634012122354650447561160525960900018122296355282352616296839391317470303423823136531308138989863276829805788188849921917474398101302455042991549465301075786415943259963147099764170398758154587761303093445678977703662202179061363035463019482983561534769164041820983676225774712950006521954290500675563602370082729530866042520569427240782931773599765507298003869755629624062605689084545914924531430758403831217917579736725071190982588379813085498101365637632780586485276009004848641610613191708338913180865959650335178467644231814103943799150746393059143279631301008285883011571151992128215904812722402395001415340877460865945737452124867561689006805683396402428382103739413139226249453969205801298679248872837961693180965115964551364229176927764697000904274283271948210299646491121576171588183816110508442843591416326571022221561192373270259755342655052205095984673135887341871966632641473655079298380354372602295984700903294975185605765077007045297160861274088425265526205388549870713054914909739081920233468148202764017090091412633572977908051811084761359068803794279823314399447305975411931334683376865624212669941839160058110297997176896113206627169088817904705060455083422139832735999132375184537493471763379790407155834746965982748530251092481524336887904141604229880897153784169868689959288825227053458870526265849975511323773385339809830968610855566736568862268258666160759153087366735343897217829044778545282531452908371407163190347402812313659218380672043102164441758657465099917305551239830092873133693185331455999001430688061719244561736226350170524985175416615328601174941694297713306419860695115845660116172203989104661344364944526206025876150281715535853569974214400646465080331341997218733309263250053300748311627401458603648224779197526150707166925352894478343573214846977053860819580167618159462211649283924653880178001076651637884261649390453141964509621029412352684319289222396950972405066348259275663208933578107500630987569208400095791989853561432741273140117049681690666750729086060392090394777335723130198030025645535553416422166307683974120088452054904500935168022665615474238645296844783500983329377433739816830568163470458125120632551501076704489031298879248664535600740446441756724225337403514909980702268643537683123256033965489175799010547213155858473762168057814155298515514544394100515067327478002921623409969885403865939254178221254031339181084256810924593086421788728391328806185729769702331366877087516483335669771882718112496027567041960476566998033073083531975666327183243102594417126100236079659954142940388008025958221503035074669978656041336027692473035907925466700403965930699907534293673126337632968860918835708135932286313589849256427725133602753682262383468631947510128479010694976170814818083220715878708831388268182522679592792087240353556518049099976392594494119054584306371294910084056114365378267099940403346715625790562383229929185213003045201646758966176054771156785256727011492287781526231440034450869115509416384351143270715100208804174590493760903272181819473763333004769840968408828786144720053142973983500004143733645674041888055486496693793463511608749369378919826303596109017801846260928570725334376491549904237283778784850813724629678851482223467136798889222510464020293965067837582227114959744031866673398582298356089760442898563923139663504745816359111769562409956717740226341151326407242573416885912976027730591212687996548350659379016328331759430431817676882530436741438663905439307648842181132549735355179629523570719731355247775009537488195697676904153058223296966218871832371899636362725568515356823633361273473161634309738286647480726905400524984696955764096142160678040354764111026375667418600494398903043343514522881957133579886179015133090009600254304023553686518625892349887640771335571714612248461700561540595345413545034219478688851776220787309780878102474472163859829322017201030524537925037122533162781802306489680731054166967504353951575405050885900971556466461924833577843203966821319579375604731965239643708451378189140868981310364353947119760722534400442944412717089304095651657998090098898276488886981795968822463413500328578025012850146243434792125104444825421715433609673232506710085585085641099271034011628898316634514279041255050628939600906027326528482225552500246147761907274724772204228976075441144220436648163157601617944452641421875371644748657117532957665809048319393514218839300121391679981959142496906138319215911762089860600872277798355310974448995693200565319209505854864216158483341132918254136167657879412732064150660402716799013548937193837359431679300389416032330360091160316507585482663514411159859047429058920966008411015889173967165440287320818265709799443852510786586566563210366956593779822264852542718752907250889184097719404768972556126720340156711413266014101215272631713597420668338142668068545047291093027195584248403158316418721381015567094590871158624162823286103347233619151259858559900233847420634274170755540578794204895723364597471581268517245565558512108708721672515583492627014779806070550115594355176625028452355501726946837226826001365493061403963447949083324761754124667481816519303047909976110720509769726689567452083453924056130373721763651383964894326350119160899103367564419933806142110830908252120579333942004239910060639307018234446795069883082098424753191459856732820441430159532889681375031415401477285808386783433275840275601600922391572420418921891286241100572627145298831035529832283852004396835439904853135803188118489342263480639466358298724075712589269798658523404587589543805026237107776851267504324764063622030242871071976870340934936758128015552434912022448894923297243945992061053058459110979422970353019299558703814862952126699369798311597939998116289536984297794453918324930992287100578127523542145865786431893933727368550783555333937222793511149768905694326304321767457533430344433300403416838937199807865891930790814139655780043158900196107799022777391474903112921876142578363818455358785573138767087572416026193467430569061678543439768286535836356849131025397901913782996597839970971971511643463758732204489476633375908805078418317337793503262329423864800500377686058977913801234908787155731744362227003702409377895082034652214783029929221202308179584712939844987999796223083692928269629914835338998754147427424104946970415885448455421594186639945289561942356998489415935029051518248514395290109517329654663335149041868560964522814324158594182876074015691714796517402100993785480355463469081022010145599910728114793624898106171391781223372081499674522642368405345173459207602724715819026086905791212128079579375152381779812370022665031243643394153437693770100251163247040656087163235678293526027798903002828486654448906866778231747904459191751523172946721868101729852582355978867632990217364088797048404742011098335172958024977122148222286694678565494889744510657760282665178089815828053451785758565518326361708156673340777678426375144857654059861922724160427854820260065817627816920211638349313506107203674236801199890465551503288365247263624319015080107020545379190370953258867890832237316197109896826517744457159043936833586027776055463302241911096633571233714131982002751086245766817968959603123129553424186842821803696752868832711413050003171248197341963650822016382233459802337499404428370915624819534709206241871709503245207746742780161421439628092301580652804388455102643263789681492871214863480181890007537949957541359972802338226545214888469934514805317883668496936694124372022204404366444848948603356072347362872935448911773261612473861562952471652530258587193683069894217898543982018595326120502305628222283107351544202306750212696207953988701183729549500271178302128547079653678364010681500737756020198242482910028929125522570979674132454382466644596284151172672780392272517161275681858480164961521522766628927854202367176735762258449017462154920274126171474100455397748317513899583494937738678453883706760995907217552810144318665401411740156907568372405107591904276623991037416960216280392989983602987858794387895266460997218301949575596593390137235765022379121124007743393780187071406034337864997733461047717988063411667224511655667183281508214753483409592987975832359987077208812712139809428711340227662452834960667201710603509946379643713078908106112411731897637098791979690835040691307707378118043726104139272574939067429970706189991157594033507692022633773461938278882537859148191695188563330666724679796062872324661871789468839459537174417856553565766997349541361445479098872189817965950374226596750727989500314641996942981610930371403230066439276639640197385128908278265426091094134349831478408681528411550623222406537071242909162066021619514028976594745749648863652076161056042847820888769706856706067049023971879390714513287729635373635345775186803407246930587753688459985740369116761937672963147659859901579289036488729065011321088879568082942612685319039470198264617023882943497210484118379249445463030891019252972132221761832405290273312998867570654971040156375288559174938370650584212618720683952608646268650256196178358136061871303980039506934157867655166011059808934462646213043067744644354410109046728642976545996814702402189535231895537591571871115352531664562895978381510708199083113722520963474014812010825389493232452205925122081818379124614575456545743383450217004576924933655427914693298033874375185496413930578345234369714017323467772843882648855887624205239518702593297118851485714655756499412067092854284249163710938253913375535496988010641597953103999764697722223375373060908926276194916539187084567789672011153140193411702760034078689159834496851795390967065860656120421700719171870600274479671403701112050534752756086801916898838757176682445420003459032945101062283267912856910776230644682084958896033571914384483126874126049044398089936575943698785211663931832897178599037468046687383771985296070410243418054363545421723938212792315269325229087109015814861993699459130748952150272296907250364093558184979308847493624487406103872655548477172093813187339533973875815913050475852678029101345507225441446186062192819373253684187683863898460848899098603987319552360356501662144226866393990199608538598478161949009995388753722554771588944043005710801395973011782319158227521084274480885866622720813525434668064551506726783638793817231641474969673311183095389487663417639940754858363799486496213561470113720697542816009372854196543380606192852619473169589164872338004119620995612193843811899432074939308119144338170850074749124942423009141829266929651364985186469302467107846794647164937113051517024220555310135300761687344480011804347400899455186500378926023797290034964249081514608542142349226084211874033813560572125898601816220200892550637121591277907941337175136708484731877539972254203622241929888204211029395888809515636248373663142916679701194447009228178095146118841246722419218317838905304649558955050097183011959023105370648815939612499737150958997041470579061234351564914610532210875536487303518441285857630203033875823627449871735961728184151208230554611585419893112440295507129052030113332299549652303798309359534208959399788353390899493969758591334244411354006181584017102972445019824036025958816938539491250897491637297232218932288619368071486985776412035159057614080029430933847869287163097029813256540579042966928406237206005962188038721064022897000346759565981965168465996974908662447686760703881398403703939524322264493282650278172802651374596029749176678352770986603664266648386681705770616748945315628418326803366268802579470925550666772301438796100520800400683626430694482383538257640643895027125746841364320149786836597987905093218006753007248558542157434615750480187741497949615542300313720631677785412699915016360838636234041384375102871807993545193713257569294536616555476108048659094644709338807151271653044307354132979378135083859796620468935932140017621594042095642207797589360561473928940345734768503254609442480992786151656503975747075833501386257714053671774982628995123018886839275520890012681479217260713622330047639689189671990667688622132209675565616292818484558253113573193979461840740259028317627519127380839292551763183538087716617593546744962939933142189075647741290064382093651513698543659794408310511310633459764347976550968189887244224122951173380380652483345128508028290070244339473306569384789989377326996414269102737933820060757982417454564673790247696097902437546799593055940521653425313081192406944274059629999211235197428731902250612024203671210498175643191378284682103966412490255739951439476774598065639601620573158624857905108063956151463362792362770616098234637328729501290021034854493622589831016790837399537630856756538130943370140226331660276065401432466011597253976179724089333512920382378169457144615738973047966102074753506489138595624564515285273016600113351073220972443295173772522344588511059500382333552551429193123760773393473719754621323153740567331083373825791552026157906592303518208015924027861945488205708144759924201732279948709601175344627153674937610921032928515426491902268149678034060897701160318956635539990680997040228526539608646843122636982838625693428480144312663002852148178068256311797055613226484084643181635991491968176207002747285317880262605148909657748228859063781031932259698282002845691716107568697656181397013496213851778049169279452452529106565555309868345172061596441545026643046568794869489115158241702336323549029201748455044970373240895369066783197531990649969408896422286330891269067863781855385938299114742269663044268041549923454347929653045832000694160788119115762347987601654856536524424282715713767353498570849810450706859090534023332203503831208268231743979803370412197134346547902231191190598313456630202582601410342366545089716814880290484235940987024195175191013163878107741634409318554019389714641413264046075751330019849879908685808697085151553151379531871839674054385034933266990472958977041448991554877991654521614247824076859271163198433007756754494277903100517364090936529519190080573530220726840628777588872414268430506895807315183918485409389321634684336848470968377026661965353969834375703960312341749518202146911961307135942499070422474628048204892903282504532472310239669773752089414447959306965385790811716874380153029854827998353972445329921160257387660934881494488391744276227080444231491444767669242706659418984392893800038024383270042508662135518475588169866267542271468212084147560915752348951496806908249007602599197225859026765619055662264542634145602145949765444735311885134532683322955785319080943006741118302744227114629484330897401241492105228596454007973576196409622739978491500319532936244986714270336185910083122846640030613439940797152948024285438604024405257065498399036601753922914648770678536986971369320215111646371971543943593785156420460283022635941636900060282755986535405644801422007346844092957626590781091050420178756844818277741105576837436917103018340816572039043734782154879200229746057456534097408044590519423850265374104397333489472467329358549744901316202434735486691133460554338936929741331640495972599612897322235575715566861928382112771771805932441584956809108109438780445676535685332966769738748025031285124319019446503678386227992943930731629078834975385097567895993202242249494443714423048515597694326940959305470356151288689242084179124353294051398694517629951557253506222547686011148170590869549581208334229319872007891938050716838689252956101794615091650360761570152255323886343387842534854141470575749802643535628993194520811159184328043113485456374022688696358680910094069447320649933404223814899812632048127627998107723017100094446152537742259969374717919038858174067161917629601427004175477028621329201226305034776058850679143028750421310944227863633472116241510836536847469334838045696625526542007577015504894159360296270040489646894302561452531403411106492461250948141199976441695243122209689252101687138309672454806875853095943830146323535831877718231048421181421042093644203082900583339255620474472434937361022942507508254481056945028549867426918792506739053930093890037238821937500385857455325397963037334780360335828425400765883188735016914871143558474104035057460766031224033567500172414642926203849644565085489097332649634078543959718464901364393998436383124179419222293648626262990590244111566362139986668597721807309533115155910093711787581957293462205592570716982836544311524854322291804880679309550104829195508319432949219402345883213704236291573703939493942508875132370835410370564416982867350751935987877931949410178756671628727845036340249881750523969091542848162829611311299331629763171530418276472089917969814072148718718994092997358226642707714880777961337869380750238035699120515317501390372795159811607730686147964831754840946251406439714317371670731195486938434830001671935769865666514563393310824153409304467394065374250291708600653217383167628049419156012737530243520447012454723472413505253174375836318869835803581230386545776430912475464581568560759132897814041539775859628075120332907260893865463001133160980126387746771979795055400404023509841222713368578638975327911459213912183285206848856470193486250974381717756747621477559081301711813132784875384057290876441390527987984653037558709282784342071644531934920549426295189748072179350908660848593193326741173030719285810945038574379420881769226149726863390062478896099367710757763177071421365381962267843396613204317240537488052991647680061273338526401781379877465414414046888348227042107511522904153669273208139161371366304830020096473487683056291615103519859689375921310908097223010817091857165955890398551730467364306517595650736940694785260936683213178162985648419352679402725112971690693066211147855568448522190772195622931288773031988759674620671788462538422875879617518542318756809223292605531976682140727564246656581602353828363769010831025465095102733058161302976346474586236612907459574243801467635868850821040160751883424392785790755105693713015380715981904380543630608719989729415888444654241114782204985029713382366639280345979490329414158863407991527559110668739890337801913874708030317653442256656784253268514985920606559760362469012900036288748145113359967204655383110820067039740764931588524933777384912717903789109041855227781186288530944914094168077622834646925810762346613368992259655148700563385264543249451089908555307357091186525599501657202810010542556614978941900946393032516453463338115365783880543893231086446644554544843356273104614507469218613984226984070821152036020086509722134145124491914699759129377699135738918221979343803429117086611688329155689448267050841775171005883903888511135576554614675992594080741572977617128051978840980439761217147840230504037978882617099340388261719352503493367535347558790024691254098063149188922977716668153669579409670316195297745186263210800046097209481081263861019707426557812480542120132013526672217225756531582892055898237935513528562718431782190567723862807981882773076273864348647642602232806966328347283464270571751145430729189050093519269330681427911468621570059771766221091819725181923391369126542832576272980999342454508722145676713749654100260949677397599732595847116404380656261605729816079194853435160562869884179172373230083645895532035113868261288066918693237486433433717587069141749006931720046589680805055696782401237252778426356081839351270860858065247935973193609643716288398558877216276781740501619949427867157018801725389736612976566526709558424221315837608600368554335800858868229086161780439922571118674578764050530330897154529852203783200449252035146829564144189151511297806625978074909592028660964704815935239861995508602853681039370738576989928358655285966676201512288205693181332443931727458758903964711305269558998487055818663490381701986350920040564865662350726696524594084057410562383982887111175667035604912406401673218231383660176041064423506480644052626855011453503408914287418451731260204211914144362131700661544364842920549767657699016074205677024666091946772612653312052330130222507769832130874347677137060765156097434206937342485996919100944955296160759710104670438504661534046948897417912178802697688780216926463243933968398172433557712494711474832881778365300848164505901480012192922421047440148659418451750364405161183167347850192686033246683640784720350776055067349841413096128785202796078529643061219213099525926292798623145029827499071036911098277141703284608787867680194102494020090845066834844948658338181750220135074391830487219259780281235245692563694581283322327639610514747100475417895946669737011800575587065286407113562093665610246076892540880789844383299700659660622994093656929539579781068183294746131804983908542798162023595404315155636165929054975803307534143796256951269725364560667045746788368010059156692518430670881624932960613726083298729225265426137945890436882256436402567726953873333623093959615897759679777057409704916878115683977728074212509595731698041734738433965602350057748086675069801929658498089948896174699724038436456425124731852358286875928635488246601779674878374487663286351657157000182322244941293076215017165258925744769191189297125236785963399606296107160192031192545594428779991075853973933185194568424959561624087870400305611041356870936611104765456160738618147954224439122898566710118369348627209573937393998445316910947862330161136983562449918030009398558942846641230183332972920159979202881809665658743919750155512240333061485410676120124443354299478340226030829990604720571803681685687003458291790231950349730217781918446083326958841445800484208964206854373581466393251256796652238872524358424363616162952275456302381700987180822823783095742770107813043356671567083130614205468569878208712085162326972314168922082193993319406968471366119747123384411093781324541598541277025763897353700080709469572349935784797975700489582254530509712213285274449187684295186237017252550778101347644049767913223885162614502128066992620303028059251445696112409168352062903001202593859773683705354415774304882661589394087590637213814835357962580438804212815225804592576737728237501012460059869743742103119112450590918406561423644479810848263134441474761982724514470766892780797368752171098399666104405225275872521445077499370817196782332031982489752383519609649634760038841424584573241294832206523640707880556655992877858680046361571689170512483472302494402462315512530578628677379565981395338303302850405013938188414968539964938316479649252084970237674991716691982846376166873433318324529752296658997498115228629060036366460472851026654557276604784874092177047147232477759051335673878134843456987398279319952678504191773720639047344221659871587185659237068790967307467097061228965049628057805275976576763396181572874095227781253641698335981301669026895857663219053670849409460537295798196067489621814418998868098807558882895548711270828126755916708833380000846144971051527863200622874949148276831336795739036798869273227512362376110794128684421505899757263410765804257349916533412990414003792445005757763868965314679192920105437643507335132692138887496205393443915039400102908708388772048025990513558723983027723080614923656561451329992883125061827877954113168974057412866834908862654562251933648937777654319269628866832749560615545299931278852725329831958447601543872092410697792747577485602366136827402560512816115365878844832544038093500672046038011633364384871874845589668010652090443215813141254388438415774056620965772611656982928084921613722577141064073374300761889285913904616091907842918483081098099375025379813039312635993706718070339141444838193515686805869747761210287384769236133728576561226548712707009185839337464807330247223275977967018045018393434715777541546539197233646648451463633608639658950829266784859205193917320570979268016919073493643283848169673160673838999250775809477875594160553513095950960219172613027635333261418197179963563252096296349828753134799686209144160619422179695311104862118884575459391776277619613078684775432684085701703513726160320710942442238690108189131905716559676700575355019174109681872633008985214412530509232116331928130342264444122524933789954946999168696543584171732116308116725842043692406490623347534438357023768833924078080526675123078027609102698617436607062365118114300147094656662030435526880753370410019975949587214473134675828982205049955400531905079372466021217313260353577567332037256988006523612661539229364012779809012285021415370175986968127705725504221791720007115496306066310605566087297167195209743226462553732267161506172280591620921402804652698798488226883456864629788798763236958494832736948938023509665629786541040945336535242051696681771798511433908735100072173168946274752109390946095898937185677854073498451103967087012552677267238777126843152030250389148547206316319137118495104468757768210608124709199817356617937781082887404499334647284595886638300932378865961813649745932369053090179691583083338485854621065396573397732736089310038508518621069200909529345842222060916201322352797336773564163747228452017349957833335280373475735101740451103991389657682916382976355381729101425215292696726836069683232198003416117581497365530322237822270505494185030209529218179194033497890244149757124034936826292802847061749882478377867743655555821572027094177858494601516809970135939141980426713777842934546600533846255573009139099591951560416769730178007555973325290057881589314019576168353359558938327149043986891738561797680873338077981495040765081007853771204072391478928293092646786294546337216358901182919706002754696619493850373593509604554793028910379348732401358261937917663480193602731606278603474826668175420576168162226546521328548823310821864833334578782616873169200974152311252005680239413971066294541569007100505275401995397087909573053797310052869383047848127383678601600787835715155620227160015876730300271270018238996347588273549168601512089140169225587214486854887433515720130458755776196986274739478973613211450952630389288315911895367308143996806063795082635987554345991763171994029159078637682599085913289066157814622115803196010149218734384124118303493822225765747116729470102309273908026261428753177680809381129680614945838692947502713126504062689856509514150593865521218303966476569832795961213381676542369494928964294964695976075874000294418254719353911264092412907035004261334644536338218324620527501047688005851385460760316274212436645251648638608385102026749638459210554514356947506696855014103478882125942626237454122025549195783544430710013153726146763981076502001964277340797913991990541402749613101522646292376512138276360226871079716486427075949769072427767255094010424120785236168138484633371704495661245755727139612906063409323520322169296063671136565999736117218872753443106470891519172912214757075713215452956438403970949583994678139197357998882849386798154653220557578407397108934160412477788508585047523014571285047742464224085162260569033158907142424136414372230492906280239310735979675177450497102647176047325561867026841648499742420882951709586404489768528845163964418768261407209708024362914122669058358800808553350040608618632827119023691935500824115358234341096550930333397313480746383087390307405315045529990582354592635807746281630385938712202598456282247618443493976902036170913122809766216633351250425828015439981788455297462131268006513334500589695427792242209483761149507138873119334631494808598365451008047841569328921541277004919337796331529700336307555460767319481162001658153553388555974151704131727276239945294825480661816367849543220652441152904900585040353546528880159263167090843757929737025973739043533835978605881803096186775756731627143810948513971871482884601774664742933044607808452603536272894724665510520838855475495913936438132524793787649404269820069474033909916252378439209216559513636287863750282042217697714464398013365917068265818121443863951775032942686200446603943798305608798693489348249052031900949358003435785733595329758832202082562956709021058350552385902619443216124876935845539130678836500803515256625295289151526791906545342293905476522762178989473077601457009233475260267320896289597573837791467735318919710239294096473953736046301204720091312869168261611623004277993062086988218169035456878398928232257708105007135441661009424820922808059334310487754603211070860245046151518639938267133060116750496895034253273727272558297199523192396530764505568765805217482381045828547338668755475814950342958712539866944568053653845830505472229274558761594292667163310092959914759051105921848379467889564244345920038479262145734598393551917850436456187823985508170650813193632424764040623667113413171209050965893332882242080403051338810373951790839997085464400091888052062098491248771159512255064835821876218758181866348944623571254567005611743234997413989148124055819165744745581330969386658131871217569674258307296321378132754584186229976276902506423727153607830878074000811171930572190616024632568289223839881865872658866689880567357134631594440668554507017806244965555107346565529999524241331907487648071107994016668969015387402633082644568430649588781688685200647944383916152328096767080589183754502102108941013205130390092539454535947762821388365746441560626607796096131768587433741859156764821244950650841459181629024628269547725699889650626647357633758251801733408756706862844291292903602723742099229172950110087761296960109319735440200912469603623738625935893897145950534396205395472353485477548654766916395567196931250445271178865509481506581332869146907581631584442952682457333622988392771949780896984063030865744671467167256192521125462477738513277136141732245202635884377149999340698879838868359107443202447283596783411898273685504986770861471313454607430285392258770889075493731376626008731322093279091173688919852067345407389128023625386285741398780072024981777548802483243124994957020963782105587138717060552743253777426189692769298389338769348912982201055915725228032846335807804898238548946983187797524669004934852564153717979253880608360177414822157315118137442142958922221229774579261767956216879069722501945078355517239551382039529262427537722204183616732807561034281219261818309233908915740548450186990789245362359828936947822259659340096505646443594462005864656576354957005492139664519884704177789484391628274543384498663427831761165120098367458628197689116516370356833878159209900241197086460671985365195705612506297276219172902064479000772691903216014591517801447959624073598453353615138492117608599497740370284528138050455069718574954215767086711670501473275391592172369421507030341467635010129101652761217125190961273709910932528213263480057080218589187729695467138164875377356616942802908153305257339223278017479234644990779977451568786897003605417656797515468650041860707741637099994254033077013905947995136389164731154100804950162769785208104332315592001388453741147492838519507081390480561278668980770117172067428862303900353850545259497072599542918817117123749704594974342408526499487642746151829962852885099716772411867449906725164657055372575018971358388311273664341077713251172988537207923916548948236489491681010452646744141493303724076177616988506626037526176685220164604155246977210820368036991536968496182238424847098128951313088505175982092776829459506732093136491603280683049630724383635458110030475811076894432108037078851082678887584192964651170056542080191174264131891781177202398709221792066818245537947117969395327813348156315965042177351986446548960863835683028993922848937745351404517849058513428255274804480543249716998669715619631258844392630370818815242912088875168215228875964474696139109408421320619944255083746196180163134977204527946992208389718958106731654793429277327809692008911976101762594780043388011108371772403359812125573903791248409011834491894566167307424861488885915468197836175752648337392321120305895181002245093733542402508228888297849918466010216621748582828301284144003947916336898343978931954637919605198983160411578791204524091050033426391810742646843824196188459372338255316331029692760607655399868888437108437298301036291847014805394283199514426154985246099382848396307023165822189684915873262632728960600472868013091233754780558271859171782599702119979318313690620257459648758678080310539254547386191694580487800918547641512834401551889421700958467294830761766730860615337136394711598069419383003125364765054403695390626509017873186731343808616738718532626024290884207238640606690918169645065776076192422330707678309658225018153965161565639303929570185226169898180784081351658940403577687009463494379365210729530378916316552666861310088429886089870519535810356790756562833213074722964652222394042412854400196894205196465492356956463870821736626871262618847135103412537408117944685636436387297156260239793432058560395202027467229121566651682435343141345785600995136099256129539360472987662673580575478001772274031125117905390526709797969727670475989988523272633291585112483983263121389278684977012966158679836941850604522833124966954776716448793864175420685555312553975064006642974322107629520892686935921703365528801186646549874065407910985287172402534555930293653394028416713913998944811199898240290434413134362637112435165542909925276629202661016479986461554395198977240294940300486820308967685234869940502342057441612716242913805604769285533897236184617310058606269438929128126654006148784275081739605162295229385377187331004666528315812684395600997109935988840124840460417947553882929676845882581188976802388386723243559810405770125681719609971755986815693896499438650474069042788322392331132716593889287911624165751853388794181882053722216264548557122178159415074624543943736813797862302388536011993626771951469350619218556611232880647068464649313530988532548537971663404332700962272315969962085344679191580381370305388491526369051642968265780759933798407486010778334037181649105833550643955212381613799068116295292646160466479747655997402175740304627990861676887512772091556396788536891332086837764247106856701440733369675144404862997896693775339463996887726739942015005702849000432079976729062851635740977689278751046331873886067582599511520503372120576866052509901839355217319291715723844160498001640610376165874642376419940709150672828006097981101825769941113176342529040873319053530619541194836225145220648097531490651209143945748096641825384710702958439265799426408908207428797224161164584103724647520720527966818435475437559034419140760107023665038878155711307785238370541631642322970530568242049277846074944802496845822950461553593569617427347939059821740997059472834140963567523176903130799148519933157487912334294946900786464333119143718105268343019040784121706302723339632699522740437894329513619546549648754090979462872318557387021232707045955876688119998912570718845011171268835188436607748139553939542880838290903059395826209717334158307402069459557101610327917194772154630531716196388381090740419718527549701301123122117730956235234395088376085257605957661104196530237845548799942954514209026013420808563075503667906573192859632933114858761091944756792123159696260586941825517603339522258332906241107844891908854773626905499975179715570466308174446846281418919517327932766118179507775569811821253516576851178617006473095904321090637381875668994295449401349795681581099153495454572869448293308043921851814787697873042399184260681816420700086053003690772655625710696446515352180734124878344168194642338698185894522276761996330721348583166831831642956024051664845997486317350549456515664350863260774007172537028146627872928544959389904241987183942896989091969282581847329124223741079496817186004866417330354420720394405614262455709277931364779365952059202926820572339257033041905165911955516257457487053063702725716047624870490962887925068557793845058038169906448454784616731449749869294101173066612356051827520028073866609978482895846245372097985401595620163841267933332348428931192527038233979264385141932038292040267036010072066660770312595617926725477693212459332208643782948675842278750962441964168820111515901785114337753962311177829673555667424273026854213018592556393890604112726069555181601268025243701840165561586015234012194620635478091820872321481151637634953439602510475981264445426685240062019424174376198780899584469246626953496332220964592553778702716525761623033806881463304136342281705466642717862979560408517780680449881654247492271471963550403715544015401694755653960130162543763011330851929236930180089849526344679525231449539579759019992550416608158758336250737850503207416721531902714439790669792724600154632274959238554966547981896932822942668748672487427042443758352887617394309295682523773523337305824641644541049228213341111592723517847603725251139566394324550009835565407296333181227413835968076540528479353863260924821609499024006882669370958550513010177697874197968517404120690445556110721968408246668763042505557790112872543481758013083036024637548016775705167773817127514184137957469409843684576743297379140805799208511946118862226101470377751295786534412759753722799821196814333320930682274229011028564759790871915150789097106048125447203584230047336092166133365987293178273607673363599448766438333037165941315948834356690597370441061979446769171644383688854113080135004795013945685692149070749319689813516869144275583556832545747608013085721105708461221739367355576186508952954077162542664215126139161877189713009222062482309219076990933251613107695855890453336951117493316120510667417822131877124191415993230653450299807127922324364067679905062023430075026697361564416865529101996694626793909108104075084873841160981100122505357350869963158616119537676333006161992707139800457433299241901131993432507494812283498137520668126778986309024896844790018883562495935805477377557966671180872461822561116384769114598155816605834543615740758937004766993994200152357802658536336384185005513684840424819430805771785612750210676106842346086321399294753891433144621526147316289686975618391743957384354311334131184876327641776700748642333240375581444841562328639506445238303558966794514892720021408274579718568443344261000576892873374821174816477324912259929786022697329938540207667773754767555066498720453619377970621106670157833662117886930956857414488776740352671270109310625522154537890772234705554651465960622991012782709265908174387991355028046818979057867540611513707143382733531081940589412537283595785208542407090430265213140231620247116951657188475316091559672687754682785092638564891666814155962181277376028724162227402391208578777558545452217605415191513138818050586442282508951635195707612519427263353576741951787197416955597496309843289967265974128307127226897202631820426847775124901165796662652671532027780105747929786919249960317478713251959054186719358392801176740244455501694164612524825576433085297424984342000216056818590845487192817113102285649645505647957579523958335387806433081504026478301039241836908343716505431782631543228318884512410853634230561669147736105982003507581460513541722089116917113938409432043923828271450893354414925188892532405289674771465387802276784478530520388490428746650905120692261764630787315643358892729081326375267746533308678811024533805719587621562061715001718035734897102965043200473851359028157698771230202510858214382198087865294814081224948204336336866816894916627275916768474336433679644818991930488416166885979813502517648343152094074426785998812657429244902035402984352558523340810739248721876588675129191129182209914904054875605097380277315967994496149529398922563210390580221170054105011602203226652906772763462363933669959130636693280912769865900753685612960390665323715054895648447892001514896498668641107234933032264761047909097254058155658853720264281268164810759019175842827681949492909609036631524401322278303538588351187880603822181816212757915543861197400273148851112417684466903426031629806338088795477774364741745203193139128048479485591661791376426645903720597771330075464239876362539190491363624018683771018122465529401987153020588475044882716100375300793828424914356246467393297079682221648208326630204422669570707949943360847000760100399049552551790339863175886429133119268501753629244085714900574588483254280864334200234750998937040758681019620815829123447453307738526575565964155676382383808094376250185327640192555383858405253608847763332380031476348588714196587521275322129039567274070722521272679317018714542105254683425693600007018480334676770830925927001651440927584153607104821117072510017370473869988464886480346014809896300955050318867279096586868440975031665995940424022335975768964316858738071586180260738980978494870627551128608742559455303948036272185216925118527659448344076471059518963989718629478956913094400936096865463050574708324476650843290420061809440584425647191207280603410069023002069567371529685221322786981550279184723755138220353234636253569917154554997957545392949573324563931457131000804940159293599488588408630997171147405734652952106265550263877770459600782113099560871220917960558629257304151275913529389584839366497553047234325343626237967946205743161940668893925871254763312349599944309830775706791041278501408598402208864903242642733497891543117815616145894436645066452599237024168519252625303461948482908154300254133033766498303896693675528396936353225656700306901820876013494301666332320612365923170864492534643140773380809841678038112349534296741647886120629794441582480400815839070030859171013767532297355862392733095777137822064508182158433470413371092304364990481274313651599092287753536181805737106653611406329822981294925679778605845188385363436958918814092871292965868573648393018768631985348618882450871047622322979356779498133687014632088935935041862012645618680926817220851619219994297977420302681129126835329753429388808146687016284601570643905212295938381911108940122819115982493682940720096109058145361407849373518636457332751451918464598728537589286209457644765672309103379558449373939127366760561514546342285019663887654346649699041534835388022973047344058333002154840274624162633430537088501019334637480709721301855948201646816191961604750768824357687801277989335387393922061728153978088730184723890789359106323526996110775676876592587033718077006948704405243745232919941508234945706009565851335607958576447609644265802187122518881245362371024167042442498682429586733960667576433170884072831372844931196614743249045024513176672116723853946399369525303672104899846999941354084476042635063370995695870228363150858436590305723889602022229708180002470917518818414437295144483730657956264199443862490110455123797958606281283794011106319729315769224511010865196073935410381383760635885570581611544021043235616625382429898741208333346955629731272163044034481621157786237844511146133372002095014147075127237097448866116976388084105769300858789316440944548279228985242550719967861469369078763622545013754983409184192136402097071193080984887795530254460181235163267922755099150278203415438673652073073412506183152420752300779723905454731740457847210228881537746487324099090215643330413121942175891414205873410494381136960551210980370434023741203774061500826980144441620079550951572119237195768448584409678362960492294865531796577146308858042783871871432580129681157564083160372403407310829622864333037863718136808346208755229759075031839848429656546952605161867264361313673604760323468721856297691157968129195636608548343871800466585387003396285778969014650348511817031587302756667547403786599193929668770074784526004078780276483936415978356700957794555762096544255080877869836856808511373655871745446766916045172423804785224326285525268145229468260659665307679039952607193698205084867433288954826093376079704122841201487879492798731841200135521967540071608015986968439419126250374781943531194306588538446586709718401063167057100343924291504538580985291128864430234127655127153948086828438063441129970994245064352706567694944002068509514805598581836699754933146873730550460338515025068386653319296798390427608496236321724032216344484201802805997813467342132476023851489997024618702027752693764146107927079616615614252605656994887502046845139299212709385772970461317225209324838191832639884544166984566460356770827365994702568921629017192777150200796502629013515960842285852940950435429555953817933823324969649025434013611054575478062898332418051939925732320199774863926163355534849544605561516597215397701215793395547875018124179743814911480278123523706606965502252239854180311661200455747121742313919464800417627011373933535266429672527503558790190395788739269490629349141879788627898053220541209156272076093942241416033921294070303198561961008199483736035751566235940660433798840212623014479704263268218503989127153956725346651201407688369242791331901665629945937944800092164901941076786398231699275304562366231030370560083348040480970514460553271721905247113789466908527752999677586377212453823090707616552609193424015196767982876134797117939955271955355274312006770182141294034897305640231461782824984279670451157470414103835747954027145811123410840914731265989122868191897928952574470247389552103172240197220862960796735420990586680977126213967817382246535774245656203082177315155807578423322639051644296431364336721834595033082640963176295943932943907464281878898541570524355879287561187329268416260827786935761565811304908764715943622352450660136376381319461870318490316954381191023192470147435133312797816035892366014197237502653039350382479485850030179257067214232943000287813994720009204176838511409286914300261828166729327077572561608828937669324335543040751898359983526518697889751028231707152244757142836258126802541420836134583103902520058267022149781010374655119310934327750815716333525003324423532160527116358047858665968012692477473214642587187655519874463480962180755844919279330186500088859194645965709555675887819705263735536062380693005520576484973320673584899874227442181477544065908786415366980626843332072648209307495829902421685366227115114681651657819104111221882365839414543243584958569047597635594435577101211465300249505970958011433787039352156036181627576801079338305761183283144784476647959134211915612267132021682900747245218433766876091404493327174334719015418818395503465971151252911913404478720700827140400300648318574784231131159448544972361473302685371220448865700867974320748816780378042762492768404209125444843891845874534514998575011567746776490072621565477091150023548269789217037829979299456713326078227110241797597239725379959671950023763242914068180881695265593679637227939688378263791266169249703463930809593895777345578403069399879431529402774219302546051440178865078971309976691444964067117545682799390639117556584147539932537409271008174114354812176328822997603315071947988007225523516611832427663869425568960147938321235298289229129295268049431289106970022912040322890987312848517768204007340223133957804946312917567481018059349907548784952389916134477711190512539062686588754660739455982896439359570950486010381366264795482295858404172592163896535935341074809649080136273513851872433834478571289716570775733449472888471860056504404649565511348945144526057924751810264582717948071998707591658300153455418372233458883761004992484221128364506298338542069403008449152596087077389176994407440043481201428415978142945436497082002045963205302650526938610876311769337513021174553538661289137782384464851619761041881651632968614397885849889399074453214331460259273134645304206355282332447581161005469720169768244626200164675580444460634351633644052428216393659898463779513518273769091525194385345924409000835096701578426193616590082810117635343788460884066131670282155152277276802327388740147445147424114109657674214611201713329297513762375249040867838555144268886101347333406062716881171649028123288053549106326984559754757666791213760555178897107756901024550609426881443821645262007746695063372957852387692285730543497612872181146659959901062764000962436531686078194464473685061072812766610512512348204632381589665094278073581271929469020925534498939474286385187743207267406530592666695448427848633528161224136982073804003795272121069669800698519015286382899078574592778799609133171085282488391609769228616595604463291528152502965971428785524690273954672306643368169214798661229587367013687613047396867557499522816141344072604615103707314449355744556814822414654878069702274040183823563563769474160945053603566429930019358336425306932887085643899080590472764842263021312721979089528829443358622265464876894503731946900951925906831726904286903970859078902210820820692069237497038555530000762979983517638662514405624284397456333171580673891442287386133623780647811211750973996155772266101421729676562884667994104011508067711864869567642608930657037553271393466618167897426262505722873259392432652544433850188633821248611977030826138434679674057058950274313410737990244396255671597568064452469837102585214264769319791230282002837227546559503214755643929341849953346661048967098004130596180815185753880410139764760423430119621409744545037028339631225947350636973352552546879069108622005401526151051860349036071438177004201143972601591636461284468371745615410882286578437334272174927712342371897586038050922067606671532442533059521293156959964177379802959667231777360926754094403002276872373264011480727120736101990779702153549674711653090007197149237038334837494505031350228369267501351698881368849484086213423970393333946979852755895588521113015079403394214933253654802351327807172493008492274965641290328889251750091691674521738626062113370051512846341143327187765800369831424915387797528519105547805169746032447270204221094062637398331316351017646558163470170057671077064510406080676781875328743635683012999259839015583522826348882252083199607500775543852345885696619995995444126190060821840615422882449297770808621157899022646866652058806862767356766113416468641977897324455194323770799808375050808113951283884713860990673541650583097368889769870701192392099854921706086892494360919760910425375220785306584278738429512662615142344453189364208055765291288767008026312400683872758092920910206373035222776949762762307803063826139748222107121410816877761098105365679533352281004063513345416933093480905210160362282838975163585092610062462673263045598776080516932489119896523503928807928417175097120384117695199616451371085100724087601237822664704836923932663889590277360759062835127975825393408177595190492052976151443267900093947127539877972786815928909284474014594914220449720912402113872325496982549459194704302431369193321596878488607281447278013853626670884007968938313076622287584490384400693535018334027829995872515926346230763723899382749421985707725737701739059931571338509900800930321270822200837334249677483393268141800651395103952707729141303213751496203683144777831340782491817477539605697571697500013717383007480273884452411205270464951959846734164948850320426923287416568900909379274111782096194851388474463327050246642523549948505910527884153637200337241126454135724436492306383502415741242892316506226472804042954948575529940283650861883679048752599867434953938113228433814882005761297688220822509230530702974707461196064141303594088932887335338530711407699792331425471845307006378116194953542351520873003896504950141377106278558440311650504643705113048325260755065362859689777557329276747775285742739192526883490270137107807411991893323930114812285597866020979324029222099576523428948439167939303243836738608248828000575779581093045283822504445363438361691349006041253558725388632208508959240562395812808429320222052926696940851620656123540444425927752234384054452025058140138623636250278355958956184318516324171458929594102580077399179082770141957074832202566803668754248006674826769011342203999482741893751126623050090723620990108495703799135587012803448253771053196275949276908610434199080949873622300758187203718037445126897310233422476002348340218257763416003476773212482733919438920986640562829904791064781789878012664878845827323293126929770017708057017669287428306302010657764169218957157358379192272079993410820444283295537588307796788661351138522562355245573910840066174173433337150074146435920294200723725709467197809768875984623171390255606677781752581582756275527047630251859409544587985626198271987728709495217495696251872954447244765529615880888494925136359122537138258887809356329310252467595456414547692156623114122390305447813533687715324549299250453123833707471986786398160683180505734758384357613776535987293288364456916894325062916570495568787013458089196379716940987106382846278187622330440173753623888937353018750130259854018438541970820057178262827430560863192400516113022145535016306898411021504250715350393688597925408476178789920536206486593280481629832109224219894951128064496172259820832007595174398263193406425209525713901718421822412155364361869395733640885679022014176442827326730135437485143036276664651365723805948753862879765444397505406489099916997086083768776837999465824959123576962332455468807057533024999899381290519298411383740062178271722149269660766625858147175721253190757059455931115591069620626382738148419389664085679783038236041577162758419591473838566200632738316027497043158553752380574817276296269283469980012051564004900317841221263163025072869562312626829431476132620488838353907478968974103217046103066440942616452109462536820691193144660645643580275804102433971617662282287506688239333514023065445319611601092563178229026040807991287435855947609004138684375688934459604916531552043240975960388175745336546906665496592633820216659847986562720098928475939681010093075493128903496219596331751018039669539351867871697873980624964269418302842814273400761338706809014763358873304700927385015821976101198346698277615926667631463083137272847374336795362951268030840474433189507552038078900614504816082106846959320918266060879010978985130566567055780621086252978840565263309925463773789148774413355646913385009870978677398834800024219049942344855652193336981099226642251273758230238586130184063275539189914633823770792013454401321265065523256628606439254535531497868130155671241585669380321161904808167395110457146411862766813223893797469869665152134431494158787476748337838626262174598309230424374428235796884319211215574324254686995447538775122503642633519413960242607275477289841018816153675218999015025490694250963627727231094506714017386166907115288002919114095610535712098015352623911577944637270707951728251337705101194916174148291597881202304864944327168584324686121843432948393093738786438116573610369468779862437679645575284028005378148327522025208277522486410063804438780712106349248052428790757670796759544106224057226248590449939912061111698251766861748228402523988623638591579541346484887586011371196910764586120313924345558185721993627459146808333444527103166766266268482049434150901152978976069590053330882383247075477573995784910613955397383739548456127266329669126682546332132508027243187970099497710988984229118803971385043952106016431140701094436034392330054577533301554678366937870239106967406853826596678200387388643511987382485619762233163749910727376489756995352354813832006336218523543128487385840746927812082314636306303782314835383076938003114148085420985181443335996600910079793105631282560690180876701858927546771737444195001212608355453465729148387002747399371103538327815411038149682679710677204030686373345545356274410518504070682923779167204250694973477684782547596004110984551125207540501059932902803466823003921624222134383728438520488504847605118483763096883094612369447610552860548558577814011825476388456124221551150665801818545794503100593687744532253164067505544132536969591668164548438135940837573226725721720118055540257496813111492416392417559488386687691396073510012083093113013937101301650817476262230260000036237835250836996201204808012289858556254668417921066737812585704347234448570559360626628224344969904371820887374175160084252280147115352510045205014178595604207059210781971172510936177134753052819655156247712371386434580786844918024811897010613891907379067345005318555027399360100300352757025099917136182022987337901482105166680252548948894775596091951455403942779708248856293583892679102180252928846842656580649462282831306945557197215943904762073586525514200032691847027785218997082344859881558100139220076990359543073270798013413908126113994335974273500186937339467273373565430659769590479113625577497732290877129654232189925609652135893734176407265124910200516863410903906862258300776693485701812559134846095581839827126122892153237986410990625796599368084144397225150284243510425778917492914934130088839453892248770670744251234671661724908494855935869799035155545149252714644611279534537091451640672494714134248849435069593165626544886752588772953006809705832387362173894494638115589824324297807416176359918287148590389994635153562453108849845829286630127111863018519413964112298307819281296596983150171890816675066868780452178368495655052645158394742869647196571560954861079731880350907778702109328584754400708846273962966502861623554371463718496176260340901043532005790477335433839196614428233231393034570783510053513978037057373163663717655639682387331567206313126822460513698601517694539053158651997547538983031987839110174041267931244530236732338887186492994757492114101800924870039839998924329375510914982526636204134300234582888021043910456163069037835102699765098366886394027424011219955004512920131806136583697833611886089602861132894563887263669374546024809423195365192276494675552907764311540771356864118520911420609514848025869463753632660462308188535177623860661794763113211515595916298839930489756926873979609433785036164906757981377708457981941229442927721684723640293083112278986859418346262571622957254269054653082868442419060948995664258733737561550905985424875175869921290497064124459785072957165237014262618157017831561376916865568619574284000682552181667334623693467788422277654859741922887729549535792056737564061781341301829990920041667991147311485846529746457028283784217155452971432543643803442966863744645015876097450586800820351716696143534100348571198712504999741620966409199352227726702287712239415519996081396409848520221802700054529227631284006760945269065881647600753295893008909750219982145945216250255715013729732710418423719820079264751750704755499924121835538787037482115322054516221544087165685251738516955786442752152730510692362594736722806396663052587003058807626834294193611267895584000370343790534949721129410775277002119928625233899920317771476564807584634737806374175638514890188717983512171334384439983605803611892824856697866379678370493528465490559938517903735432579220486730157073416828037701102556372720373068253556786103119090526956855683951807974036220686381487491889519849258273535034614568248126668185001398269305855869712768495454122815952320832871051086345368552774631399647801625030199943219328097153642726091592588901050745466469389060129091153084586936415377078689821566117029605666216145610724005459505206192455509496868586287663850076573968407207530506835574900748443758470878145137818065539091319005491274742465667492620176286870290296206252935286506127470548140337079598483591009786253978887301399701895150834056367280762882076093202983963546919380583157687004134232523633954994361526712212066606041683291391339447476378273167415084762399208568277505412945555020787279699471568853379787029467256368483608926770300784786933294231085639915938925356505106133530577114007111412291830757082713318215679903467263926567184957646530975907359624851669935628094116177003136649536396642833003465892682302016559021205379487795486985804483853126076257083365913851723152889478961767913731772886157673591996335446037770611741374037909820294073646941761834698609732350504884897626644766862880844422770050234190727305043569522649894906132074401976658177293200943182533909118385230973762216700506873694806822485405543794970848539620947712709556491021836245253521182272975835777399746206299138224882166237054442070701471256858524021182426386730162393821676508006006854984424534186292635618118405194392617338617440530103926119571063417050171946877385718612370936076950434632982532628974264615888726919597430960965913140182318142321488650344985520306882170583244775803913668798411560525970515121866609103374010123798995269691322002009677538483213957646660313124739306876266709631785751055929823881092417843777313197776395467666336338311655247154696419495878554656897604228030414538776096912560048770293673018410077965351153317770271887945477353707415897817725340171565687778168037019730262016717065317818202519094996168489600679053318219884265916638332982049869162074698955253706217618574241756748740418746038234921005213340125633420795287088084949325138207393064148554805808229653305348898463611633268060617612228746543722894615389750096188978624943200313386911586409657599339296262192639150038633905197116733025270783947000344062488531437359347195232701934507396875674674278225821440787455486843781084068203902373732508430784445573651026485462515377942739780667867643426806577626635325030337838602718229346896895224306184934330974940444271085774875980327624602891232225102175446831330874185563522208734162078000597881540992925681389295564785473498870051530219932170816459434900500617427542552603920579504091643227861031992084764437858122119449278978991335804180582202411708086235187505248023494736577093271579440245015673285051347479178276240426272094374851752388681302710460025979275292212284030944531614720153386389926464683334759973849153089281990487745275773606864394326222597446391403944368395575566277280783962392751737786323819899955029624080128067545657861606401682682432244089428910840811528150802204906965176623039646388015217920654007595550735127031943315453474618542474958767730785589140880217734900104773234901093772130048691298188132555771212819898529556103913559683985526797126233623315833691234126837947674443465282632385926895738507690207533969025206286658020354787105137621743139990883124092278359525291896789758462983227319646084948925327073652761772816967557545780135158177536140083561621903869277106483296379117545006327810559066113880503341847793740350716485053129239814615167840303507026463180041263598408670849129612751447506971728409883191422805463106346427540291931691167015739539116016334399774483639217384612261050607253197348170999681534407262548199981635589815997357215338329338392897128495564417709528883337386497945702910357738285674469578541663288986592916253688328294891921893391382376023436368554822676062823259160647418380704860603559823554445116479738357205606473220917664338617838260939218520109432467616506502380921534757724547006581363932114300120222223576337316381825141814068003333173891597006771440312437937409730413977738341984519686208194666623626168275951536532153778628017421492648642322990913002239625341417977522550999059897499823436325960244284857926581178813584807419382345442944281800152803019918992079242945169326169473871984464206793253953103808430554387710346809166939230167387751708235448427134829268931045341006271226137669378349458119121689019918365948135081104717254996788196284530844820309795306770834221236053554288737347732357477068512509559373731333595746085952400158986489503971276868403304019977769045352584629010775979884456445788928027571586909796045756357405043585822289653042584364676790800532365402922305695973873640642242352311230599677042235851682102804851263190590145252110431762643321218565043912938251801373227737981742755794177648955527565916550877201436181860036474498226281493403192313952337247646057778043198598848264455690377938208882500566883022788411340972019584535949123379164314064471328616354489227436783424105286015161314034210276218278909221087614515921753816634650929366779882943721943589830249774912130461987065863377889267364881430751064762545830470327180768642224688440870775257214095655986730162995200936869417487298006368147013364320344092708315435319658120602461548086080101120010276095349421952979054198924695330827595105205726447018418253649525361746544178830706880850647255516859222700646373583073111089535979636651384162801981873630159396497234008645159627553313607348982784085396315952196774997162076674360981125436879177103703021954109281809526678362426985849521610377567044527060475951894899470498578397452799778289578205834689838956818465784765924829716093293110795646795088589605591840531527496056419981173663831577903872237154311736968610610862937014360185902446699836946253006245859578634721323101613028648410162344625014842416982106751911745631465466424149480625046969014776617220668313267156514845122138977147000979847187697351446210577777308700219207996182891609676881104277389209457148044403642807392583215611349341706923853968824099396189566624926043465529286434838708517354146101629971076760773217295899639894911825323845169231626983041503538835850139102285663370865194397350952855930388008286078263987351601064741378072535786615524997645703648331799032530836558512323057492991735962688088764285047018548321243806390676926985515689940767273769119279169615294315015769262242750817332351867763464153059189253285333537705979236110660061392029721974423511812976612523246131631277735485328795513428547345689573693510020824736809387062156827569684774239032118182477822174122340844885111353136077649023598723728601272709421345545370585927624543087015724449858508447942556895559870641395114806130043640645490834573984484360687811023343630383373088496884855356664819530974857247338169024659041671207989458086552140166578572837127835079917977160694060977083160085281114079994548147664349836737225031503238730353669998405178067915295681640368493693260108456485832138536462027176225579090459616689639640436291806152309662223510909202309461997773856511677064211384824043318973915807914329321612307231007962857497732488740647441378153368925004731942837951653412830197241889563577467487928310016198870117677168228707413428815095835253361132156635509202207988610002236232683670007605023681931561361179522478408179490730230960792272682934441431739880653529933671545664615950985047010434122933859228372875899603316468091039481623352097629050561174883585303401980807577426433513667228692046278983984562832742612206620062957725387773584208371580522938809242479797837813482921637540190564058247891392326657812881215513406667566309555530698017248699690497783912851049879540916339197587711490713115978803524977529610189875500875471421386533291929194193054638676332271726612620430719168976118443884766622965965677652963251599968495277373559456421726326319974573094991712634454157078208572974424641919988598556039303848842564683764258649044037744420103455060038460291975841069893869579723819629420159721095710002400144489802754011574632208955946104969166830201120259166379855615833839808346152676401958529865731180500698742708112709320819489698824646157508498825520320951392482197910872912796197126662324566726243713547370630428081462127766411117685395659187961374063670990731351638999015520460294017509305311121018003076708647053805417968651195439244598330799606489475049385315051839876717465270338221632473804261752929802475348904560311864210885984680873378006347587466905750404082418488439599878685364188052614298719769469601685749851390229653544837784320892375085975579989116890721226478062359219504158990543077305512584205501765174436797230688015877058555659220486137965439230858862878609247407409852199972028528223962887169474904006848343732386625268501408274318971368163935220706921816074326095433681262566591811875535002609669621901141347168184976870906555997789410541982330101354709277527476145269296132249479644115583582537288380852390270813365010370784866506184795440008333714241778198434176274794988998227077724672301970513798011690695250134582724574532798162680212610531962340172730894874352749807906157579755289613976202457163366981912553143685469940847236793774779364549750710929171159850967493119987627303744032140072147371106474254242626500718408959539781762000453014836584281544647297611113903744716157166668238877204360654973440577148657620143365035843542826074942316362100254615155184722349866400518955288802321150350709070863938067140706877704027888410802528943078059065423217417979875101331503873910975727097796410706264572635398187171122579377275733036245014676240357002465710860827091341406327002117783006981816459996819365483835002041456765043821523246786068378785377298965209553787146697217577531623647672746293814648244002525660260846851807138728786158464735965483020562926354884882632754735031783692474672238725655525518665756661965440358629849072474134585969072259861920700662239100490795303058551894447046964890655774092200104622311328043265703456711047415040817002263351537128186208719081676967127007208728785474193347358732540723056929718759355164641591491297012163096165623627531484990627329332479224718397179206002565857180465397751070865561475297826517089018960663265876795379676854555618404799961416599487389576095888369827783093322716603444863465786024020126789492481385922637769525073572246007430413125680182609285904827162700708683599248752035798964096478813376147605407949392549982347152204102268476616109777822688887041749719133859417639292729626721533135479385635393774346863590668327722948778285863960302070698869952677969870206676543490095207379668558342237988430413662413122081820322335096089289942831810637531834032849982531944472939277272312377085491073527642871270049021613644194663883762802821362425391461584198859922041944840868867898173175801127639830100541082578479213181255633113175986436257877887819748671136638097154637565873645175585719663667120162910267409219324921592152438048000951433724656870368306229928094239992342158592408455033127606267754558490360907377806714140925864434059891837712308858218237184774656452240533590030923167266352932673345248408065140438288504000521418719290961230227100843422164608458932111540534790036565408655830493150332846503143668264327327274410302570123122136667011277063615224342967559197954309050020860666168353224986220198080330983544332268653141606558823680991067686483063865737287875003593322568646311024326598396536514487773263138992980976749882107836427427655491841040545988388761591256746503696249571739529084445215732027251112561011815528343891460615619666671697298020222616513077568611109260219324816106712356220355772212693348753886486769315133373042151742417024649664819880751726970058602048814204918971951850101301099218853088269100794298947032591837009559296752229336535932411438043407421957729711078235266385450284636993910674511353205030921249703972107984768920332716360577566344770906006995442265954646779635188337873705520822822166147912285445686990926875701459257966857880069339434891512258354037818694741807789771224674727975931751141838161679881349105558370356585783161852097733463573816370895212855886785497449226565204177113876726738068291932035890701595662748072659214569990584444351622114806037926942345062865931019188024157811080585658384954227874145762667388924973546129166857936308056882528200194666031659209810033944502099859317496001474460405220930771713887991780651559420940201476685583109020577827169090279293237547461528980080010501821197553496187443039274940596890872601470390801637472247911339632246653269970836514505456738253600366392666035279952503654883808328975886500010803616384297789356243448353682361557670361243431237315442755405447080473120363335518330473538024154350843098660620833749197510917380354156924793691802231456319823309522990178135620564994681378980386045982010093944783697907445635219632842453421603785625802852824695010943936082967296208806028988765027384919777680976865615530652693763476447798091371225019397802176735666099494262930930530682945134113075241812087152956681222702364942137984307598682093333684285841293371659940115948473948074720552965744398752063335279570368684781516466242340133561474236871066181951444674386663491135897738013725066538809959714659734951929125058850511192672973345084843583449857361062624304564491413837317049825496121365113279708304168556283316719652726400616689379191093855605629420538890350501721139380775532446824388797738379288683277020942213839710114031294779065439673615008607968654011811213137275772669296439554923391804094690739789830344090231029731818873590222682271172064613641366434699072329281370598563310015481523840060814197393463063959513695255636373849638145032844596490824822255113082185406685515072125016157512334110065322989578632460358993416294181543322712094019397506049551703638142790714924941031847719229782449476502479485189888701003661520163422755168964052424337305269077227443929606296961204487936937158797332854296004738236062563121642623059251186252511027594827894681816710717200811984300084210165932475489526309093798140944359081658231412071964760981021163851386743069497189779712684696501265530672914592709638521363583674591134062885614763548845356791463927443920055945725544000991181616194556679874217991872331041397063895563131877116750941936647588629628954024146567865917846845566840455349701411274713698084883410739630574846103910279416212239161083456573755156173491995988876290764041631302462459490679108319432179873574979314832480656284149741168906949086827416811624322373658103262723359546076833670340283426351906168587411012435350332170111529287350615782906276234835734254338007600734202272909072699897946141569738853716506024743158343657926684585872475804363697344964196810024818553845778970900364135865438107279931093529203676717209329888734836195044699933649217887346489917699194650633153330989751892980173117208756881279709771858386617492777590333392947461958636504138876409182043644780516049416688377726373243113863633735995384790346944727756712815268215429938426150203659855490316573110358274622112962033057663777323336145357616632782574088991284909483210305614572645123444986282980060757233109304065220164080102815019449569836852016954185921857333887228201692173001667280317428004569920483208063734346273750923629819740666814212965833125567692184278826766968079693738027674065316076970612155301409520229822531355714470479066900164179937272382017011581799977913055926052573769591791642552461797748261868633851945892216717152246123505033294882691895365940865727864968483232754210902991743318995643186559943527360663072696069005301914317574999001582553609189081506922382322324243496225965052218614959361952891533254756764890797824152834000287219062199365295017827564581531414839274242947028351366192441272990087319805873384000882289591069378832372168888468026464297516680210520232063628758892009971091983984305526507408036543498958579613746535917169231714439380564177535174698884140930169756894248158850045659722067758249965880984261223288113342507912920155443390402325567300181089015922276756107386897970349726454191135644501492477839791248032057623253867879435265872127722328124607842246622024550657570036362139859070977271205471635845948393128320692148645916044858325966235819068333531093465684396278584196708246435446834948637884857999289866737715450998333987153158332024983846450737571375481414863537070417625562875653454112275681269337399616153906335033661686258074470816228692107215151366168511354197524350034553695169539994827257291912666502414394256649693793405737691213420283539521172602917529018684878687825769721575173403613207176855542739698075483822118926980176545364241283786180111406090015342139591414521391354679853554965556849049057196781501901909592133136875983613061502175275986792360348313665884624323396563152386409689032371952959761170260909098408432331418443640890155868444902429541422960289344462322855533470791578829437635382551414907612173565692191244024120324673927133467168633538092002306239038468986498100910475389869233535803075198536696244056732439314300123214167071530687608870269036260073559871785835204282827587328548978058978319148487082809457924263570659006311014809521634326062574202101114325305098024665544177855797774776607152125703653781119672584800092282763614298512631303016146979566865839173540121930277625609998089602512365558661779531134208186100258316159492382256818049432012192450515527869769078729064430858326803379361732829202411584546310807666313449713185552879049147311133426181566735675121954410344039581986671103087164853875261049422836680553615321917240604426155970251227638994513360126890477316722569146645243182526955889788581066659567932827256912409231583266989147415432558108413811571583837948444358383263736492389771415802418233670779107037429045911476549707620530645939963257961424464650628813541850968413460771814604935989359157816191302941519547838555322943125836024725986192751513134474754220127027486923842421864058633021189075796786706928771458696032053801326109586549951191860396554639804959014530676222511063290843311498055754982508257488259821446543941231454968735353382506387946099788832415684995346182051253198774853129604890931723562450185669827634604889114095472989262464255970417158573399973536868341691079908467130904833126502201135539820046014908748402250202936410961292370493958903939569805844727732296935206158209837699597527889328381197003325953299224864113147298521907863345892633924170739274113214775937486262351304261362825563147235014622550238661112598062711583853270052397980102944548283191407847442904062288153226715866519004404436114429350740785313605011948485911385547790514554967380448666518395541130427518474116782647546612022362120943785516108098068402445437365661659342927950252963569198865658624841497140482921821405441638288048995683973645685279695452910487946096413581159407219876113594268409355367486400936396686102662645000391295061063587209106850453644031428606596318617275452039570107026319797988427370624598263498520556908598353170893306481942855005756203243945185579835731222796297579927250620170279599567305422854757898722026802335676904985696699105568723130472817979503597226108133301167305429303859246348056758278661625369290436536251990141134715215883371150938001669275603692583440744482706787207156400367222846187766772372363642984503347787797192958374475367292424385067004165633102184465502873952063680914658399163246224164151637819968436990975836031369562635657529621535288924368494795465672173168321271916112266011798414822164304534894689034194237845467923028997052375392407883235137373352458799104030707931714787340871190905740314568147427990766714083743395708581504065371623512401929524060314800975388485796081458845314651117789431419478464656639003705366019706594423480512325386148124524534133945278851372951372755387661372086258164907338204107021394502985286057296003361442599269302424312352868243154357911539635994210654566058737275085205840958450312640088397467947476094334593075087128246549789029249918531994408166520068289613564549580120513812311087487760262486505307358643189121053359312276949354656196018775225941544480368593050256105364650453435616371569757876132019373631924912830709448638439122625482588105470663950814210534593309549448270551845698196335179017961045764114191056035695824444960254486689080291045649930120916326326650161690654311069029113336647112129163940917405626257767084170063345456651022213957212270163104219526037704303429354067695180317979943193668729207213234203775250783525382805990605463280434986867108231235054217815360730300431876002425603746862409241344565092367124733189849499451126692101534138829229476424953376933105662820839153233294353323108028581751793425386489123150204973778588926725694822766162298440414516806622587181027064890587737094968390724231033811192473051897551158961922093373521749684225669007857114671138553226516439145685749793425353567504236493728806812570865879504424872194595780770400101683796482442098470393213523092969470608128225722238844302852874163331900706084503659428913694368553801318392411771990835320012160955501702394449588582948553209269367662570110725676102343810457182740023634125513832485005355061474255477571379019469608001495280504970782633524090039305394604759780118637264373392862581530724592987706157080594671683868072017644075137774214599633912952708650686098552060330388791944956978722364273257150700560257270653133060305056452669627365472188060144937583198688204497119031376464291171672179861924030413437207923125239150097504107846043040418570697600059720935449751586882981401483270224908463414551628102439996552144917720663398625782217718920513161982007576103488418785688356178824331664799462131129664406469500271899612925199344887234046650132015747342795516060839451318316062353462489754585509874386004602349638891855012132935420752120357066001504019362880173715735780284397583750315826360913872986968466932345093694725368879726185183735288188599508536179315187637573560623576553623268822273536870946227441187444542636980468696829784000848205202643416062252845737739516153907086083315652039558484000108273560852814887240708079586143428611483588648519058205093013548759023837978990896830879738630670481717910747376264308535083084996975528429646660110124189019751532489598893372302941265431998656268573093116990333746002888928796378482986707679506888704519269732160013748781501576306997105996513109119710587307369971550055096375625979898631626729678071359905714744097747509994052233357439095608340321073425025420069891679194046209771088498581158937471286750819833394755583289272208173887549348603910694988087334560733775882637364111780517440289997925810100058170360392584140820526416553970549270381005255583291994624951575308952222358346772056066577255665303861645014493808590874101617805915084529885596290916922103448905827779097668171144942872239810582919151991663097736831627912626731690689017731361701260234721446550288732157567344423966377885795867163079833016488386043161437285003186251708413224764977785281259314952012233349474948153175729510991589517940488204948109762324940680783044443614291443105773279871849930701410144314074048012016339344840963534097380821489019196907418418983782249324436613863052156434395348933228356414421356992803464536697739521298986538165305361547815511408190065096366743327385317469374300928678513721809616806617587949960761724722505690828990955375576946362790135428393615520720818178148718201763477453812479465628995628259599447402772942778500944498677797123327189487755918162408760093267697301537363206612187314287588545063997875673016321528560242491816873362251271922782989868541500938013159262249419175259885598872663597734754428173125027939346968481074525368886636236788748703007747168779546909648736034750191370978578679538294278216341563529265349916317721274365628202231706060735556179465148368632983891321384923630442497979817088797986655951386970625149442814012316799058897523699982147993765342652339182641264987779006435456220957314091076472242802114418645610681103318835491968473360580753457110223185008734194420457440715401926809416845338251228921143378734966840648311075375857454662469053455626835252834796678543362782331322726165721405858805072795545147214719018759029045648681620599689983636242279109170386730119624721247356461248922304402912685882125817831846509946087387910294117183437293992083071519497681941022003436344298438189799437364941489078914581910417587730362388929638582665267259130476501347260511455803730228766932131677504878776092974650703872080818518721922668407251169455663411271614404019805221671264859485823971611397675642527117436091505493754450446071411464627258071633193843721465578018761548407826472768791797929547935980379873507583098596078676091008785429623593547465954203479278572496193051038865612936465059176150540972236217216350396883816100931978217234266880558352587564932995951685970414009436616152829725176157866995035344356956325703584186825360615522847261615968115010853256917190046776760634444584968436106604180739197797251048420058978867847321666568160556073549413176032916660969692474283754136777881128942255589584232203409410145060600853311320208066372771253149991242962594975738584725763115105279510221278666839937794437781496202700124993568066432565942973432051474497065446242651675608024413864850664872861188439164298060675373065494678751200566497474319123412589860584104510342308215088753623569325657248841150299485745494893448095678729221577359048300219970155440482300828876604761995834202381719000410257903248159822709330371109077763989308336521067210791685171135935957571693423908819245970043333093979341605589519356594158882031438755787992288792480490749822041258938282911519989065220857427570173169829836511171457451857666409564061070701604645496416513717251701167742641380726356907944325476064074374480351251374513904574891903557513957833495862166102194127612580102078884518197872124414430430145089399150929629844804221057455470685459907430298378842469845956402787684882330914798958434850712101493076718360929836293336513390550621732133296549486016325476496056062837479680637991252158303849572320327301836378992216253648505892999149087408212053001086064457577142725574530827217131853766228507685021914739289094936218326076422944434659244695844792430225337657573319902784436723162427464151402153882298926495611755110149941346925178471843981204292380536250936816009323247510389255870319112089625364457391357169004972095620839171721863225120826452545654285694948229383512838082017329400306885050318258414264829196581661964819481656194173597177120827088321501777176820335413515947453399041267948999938441268755906703687074932027118219712643349715140245944624634125193581980105919459169437826967253514278606985627674307272298813706523758781117082880892684455135250983453882746469533733700075537925591706125285146822195313624559052689320081261593181741408571381899583653857471698701361301385308803886263499698374306893019646396419586446023052453742976609533793526187975898234220923363151823665438841361608562765519515072762781776607548304340618571127504045932889073976629539066521503486689039021274073645393864527065502796310161309741024634041262414084476904512613599720168751118880131361560981889475320363471261191601083558516654982741052074118384061553060387881021818719753647644712550138289642533359323427911315338552060004335165014926723280622410779101442586249234813236655884167321779509730656690011705632295169683098214427374375535572894051854042601736069943207344463363713870981087923082823721918157540821707621974202839791817957954895976070887542139944331470584080435155528374046658638602850443951356853687789675636961816278468927542458725738018461951231971230468772912432556472889445558573824510858106534981755337710168697772940644370236636659472095423963236092308940918825090626157514249218058674499379662166725433279520636473994109789660095608294170935229192581006665943059104828149630966012089490710241086780314997503618323198118774999351628592250052328653460517506482775504266839291280272845154450347032184429981767283150562208298621197532809988214084486953306748559450619386616862522725033154846475907550906525725297576973198259270283488549635365855564210346554822757711917067780910855591777503999676064911703907622081905847574130007772721799449081984463881275945892889856608499924818533663198965006163941862235305536048535575870471275215211415591835390192911065269607431909966916358492189924835500304954833751584609878589748239964384051724382010370885435338858488367176338110092021283392882713153922337761007112000503952900783266270789783198611149497882174093566980878983881922320087356706032026293003477654710037421042447168446811733640651539542905906261606352412923617354822535812590323760207907598986007658331376713063639551581999862200672799459488472562375891354031412998184772593631693263645213079055731450729300289017064318224773287101973208865206627815786417976514969202434153743529614310956706510217470959082743744811028354478960540897171838674988638508229932068722375952837750080554587518790525814837648858573582115491402938697307850473755917862084833171967500481529104845756122609397002548234168265760998731048810399459952076051542275241729787158015526336774073842889745709835737039085499559722608356196594889265288982944739373122701341305494975999333560793993534694256574425229750514112829385449641125300827774435766735968823157091876226400162455184692946287113477631616681787499511544444452225737901654795594894909425913717116692233659349339516779338208785866498148297821200266425520859906490641964707365721135077779251623113494403133981779919336158402406870730088747349271838114134712047600129093150778327947328054778455706477227711131643168403228689354416183153137132923964865686824023022340793174089525454669314052978279038744657582817609227986971326961489774963631648992532960528229023071646083086605652815486834427400953127310930182489227821094949188002913060448624664841617605935515525869366959945689830399412679493097633902677961684865481162737849890542161290670222767921693419143499400514153769959218848819661961370411014180347940708771578761166215492329826027777574031635308901675427771675267154715749445648479790655181163830866530657778678291562873104854282730386340197307853133156116239268340602150115591029301839237455425566775703276813197905479829225304908390451874280077081881077913483960157601493022283535483489172544419268052122304494703286712016327205447627037326489991744604412015535041340916276616145774503150188369949815720921397927780136195081344751373985302963765136229330962403474000669158141630225441533718648718338359229659941233280745936033878752178769769220156465667516530023850298281744418063568510746453289611199606883598424592470790037939183111055353883934354074083405780593787875217686811987252574826800156427343320952955994620233803980502256643557288537704235918528572418046398418631469315261254138332982443665416147816606910189058809372927690775003166979099295671125796642595132078315608531027737658551057466029543420073756772600320301356860888060892371609413850708116728573880779571260260958376003588457255827578319651578892358867875212427411929948812358778933572762912736720630325375034645646689761278673613793746726326887079403136858959006864069818112980214132710884082562830250182462573187906753639774917917678229757628830083048087591950746323938854188187026814172975336168101610561116431400286700062758245207853883200524879454535870926030195004397867363815717464478570540340051158410460191184339946670827355845905713409179886877597691443239219787569348682091071363062656093987911653971534106756338228038964672674499677911191600310422487066271674234074072130643850148186183991918065915425899782832016772954198098315774283887622917121825605815681536166171672651183808127326813702059449234267468909909835514828598130702932340686778960755138359403405344609258921151190604112366897113781172267905589208691892135869476552102006983850572825842400329375563233942341842010881484858567303271167637406001080745827711523672145539710175352340083099374903440184330319724077047594499525350683290447751351567209168580943643606658468786479973457194023054885292013367119335278934461047495405406509542396568837133684199339731664392944802525954580983033916133882400474380676675077796976404729049464669441580314363368230204893431038797992571338429177905798170272055110389892829262904368103391784661963807584496636328046829825600196383436147080812500715916984976880649210463191174474045400866952329281928774265088462589074669117639809309901040446078824932816125128979526975943318591918474491441542383632041058703709660848764198278939820885906163577494053227687122104620589688409085845541786070146350142700224241119512434926744134121529504104163724886818861776171413785037792267219051289425667815814172112239544237898307449195700149957177395427361294944057193870525497324079868180900063552804788921508064785826521871105237198235564571394178080498496418873531704981406776013306012339624032933961509430223177722743670868724027040415833075896551486876936824605772900961541985882976551414624056202494677851846967486256233679925434456513093066234608742555346770983595995272311740443007984651937809268481126603056853296487294859514052909157588194860533890688995522363656032272347689721273327468530470578497573439195088381005218969420364009121933712304824511460921749485371185866494483177945428254256232524139041067917691480219597469221732201725387042627064829485417555326728087826158441408140601313973477910063988074910094361311351384627467662376299548898968445410505605496556071466584299676689754872515408746525057409594322543499269937078020163794373391735102944627100906139653821887644628043145105666762173882383068917707977647481894046186480240638216198647928656702596988919295079448472147426752175303988298707503549036251079243898760517634451770894183461230500112025753791211177019203683735211042890183609380442790029535374860388459892274937076558030043375013567329684933599430064464587283295390900345615932007993090501387104227607356310777162614859693857880757902939275128562425566356497935377889228144761439111575601573618490993418648181682870074117419650785184342709175998698981784699501353987281765845399047177652672750339788608504099438364060039471291086955395791755957390664744975863253131250280781275870847025625358393834679469738532207775959938589945564949422191976601990471031075872642387618162931732040282959356274960581457456133899677375069234327535901140995125322139777565384340592253182527942759536630610859019913489120510431878880148916191646163675880634664896320839248492216810582748923574790065494979937135379272970181262000895900981900060911314023468243661874803500970955718717352505564261751724454465532668454984133214034430528387947329636622469912717024320195652951030293639938473020801537980905551496120076995182649345392342739675412208019831473094459545763344395055628777076921688138276722583570308549517050226637355996919602964525076113910297691224160454746103940313254549023585014864994610505077253862113929636055391538637846936862578684305751416495508294045896178026829296183722877669966931111849063485419349272821672356254268347004946821339825333680421209349666076518185102434393131296929663204346222907057972766540694973411430440521151819474012812684306354522663663815925926641033612800022493765054184456133803901923569069408694598660858343492348562014242491009805349663950870173483375525068345080415839766423444751240267280485451151345871693569182551455232839995080219874882885062319778667137975918910454545980119141675504198700115386674472576155352092034770013396162864317525509974782059351483781055365414622025897599212286420603628916575296257288111067221398703099832145907830347028008352150598498351762846274693461790958871980216150722132826372725938944910782899231368604954827380190176156593347272858408459035411038756968557942101928865843502795090911170172879411336950388969514377364432628473436817506483640655600520459619073140341265873440290532311967773574371966764761115672691029205824464432615695125689427776161996934130884696121286081811856248931133061093893586758781381349372233279870207183930079752770733238557861494945732858197689024020913058052518114831591429200489108045002080524721230134494714099356987418118318031228741939498453394656378329587188443194829361658499453297984547886560710136512746264097435826234562706378844824033549573668126187170835375320677562857881712478362494755909488103621383677033743833546536041777723472304666891741031971833101879629937679119455679812528182590058060671204941360954229858274807674464599254104974422462727757184937540215735700167045613430706210252852833358420223440415383915599850642060523061067082047034177481857411811876957908737629654971888595208782190028329824828296680351069995853279808602068052119960178182912116872552238319410942583721814775971819726225692618759593751486901105045255048433197952082828374336801838517833219385412798208967806036110623721536418617079446319261522965432432332627362354048123263151957457192405057734055056384812888645819945388131308944914328650839325490758333791974354830996304106287522323693101829940338745910942901656419463897136865453863761902895294860949036915072065184642298225467815658678555020829552754369746284400658179250804880381592529960509945144677966818728486208263117875991435793784711929186164077794411353708868538394380522126731260291496045425611708693882396728530554457808893054602844847900206743822013034753316467572495229517145544665928996013501042587962635079116454842673754085180678052182433711542184568068961620929602241922132941818655005974045426305997365847470456292311740827531128841615007900557632909371940541096096832609597266935619794781815134968135167472285010498956381592216722465987691444551497013965047136540011945800709978568345458086819405986876987209644417556670052006499365457213225253616869027381544923048344867049336408019332899739282341264517562550871232881709624295921283894887383996818863225418599993747045444842230258500123798093119309041707480428059229950325426756859145476066724266167107468867067000512324609524012592010325787847248852428808493615078113653227678333198288713586441088723216057144918241247450421296783183748967682438758018323361821045989275304660155764488786145466880453604418895607993048726686729194477087420794005742708750542264259481975896009228143028176754998903922960515929406431494960928013390505597841732581198684706103601606677970063794516000207209933089632627255539107128969310010117719808956419776795929901373385376701695170008448773120425431694537109549396251195309581023362947965188656088911072696873306007973235606407036198803237042089702276190471691076532413449722176068068454024262405760230000387786612655460101180814085229250192330327371912907037679124243111153977370132039280330200607450084485660212249481385141851321412271258106128654739018703718679584847783750506733823481280144990297810624380724726949578870802979978123809119634204838875252446936151991645446220197898546628561876843255819867789016490803914055145852286379438344884092238991893936270865206183720471742947019219043085591743282913285450141642220023486152004919141187563533979685332507306952941588555839089368934285245417202718799415526170511528760014827870639391937592949907036068686593741515965231642812280569379702371131871002583059896281869997283199104005501662299935310589059640006732938769270097511086091815772202031363541061244607698898486273500105501599084738738340712640243523625802705852435717675808370177658329799251587410391301218794277085392993039901905327950697582844906745950304928988090697752966208984700321508956526698885147358650717339221152244055929504101625570943031779557161729657703099604687313377677051391368302290105302657826298570350288580402404648204832955770665578082570285599266795380843162642205647781128347753335355271955610527719460182459739629056979481480889638286493415886334306306783717155235899766621696081318728068486904200031888965731189784909914647219504171001039692468772057802727872001679406231383840057029657284031317917110694445799669929861915386446286045579722672741928586117317871168166130918665956149540822270465385122773438722004340375835279881296400930472274974814968933628909373753409965424895441070084587073103848439755779585419708867945780129520079095686341380310533855751498906045599397970063190633161130358560665919418083632290434919614141089493634057165591066092019758002862737135868498426301570933600401553572809383060247231860140591869184945760622759516781114618757944061537197826737248889903672515541897042349087773583459437507341785932453909272431695296934396213006064521151059492112583078200542865052828964176891951340488748841784831049529640126219110082243520071659500813599131353326986792796242449485462687912240689431623019917567252543724670435673677992001882667525277870182253759245698007482790735032199390666412924445600103846165317933438102041783255388544121763766368962656988428013628756724435910212626254623626210616091756893499675287717439430843334867607608552367409634423983843074058980364454895818378451041215841068794316167274724995854024199008550562133158601875767381531799471236769721002133129344416932849472981909370933247602508644338766214042904274671064793525744856337441520666770152389839239453935525043180041633249241401963347474216109304278183170229981658609890826718348439403806746554088825214815345848919452749907429415906605560785200846576150049633535928924674652819710735522471558214353198476452536510398819329650100008549991900448708756046490345540401942054048721140712373499765181230367995299830489198399191564200344634618598241030485845324824890952540741369003320054563139273006740826435568368384731205051765439842415692940610421309941865863814297993797867140629320714516727938180745308765185085778082900287646085370090064442448688288126234150079421559184397749832852596974033666262702508998389214337324776135091544774242880970710041194408611452047716006391703822899632280085739300645781334057139457769646507449573237798733397522391402690850723617305165892928320279828690792042895552325781835502184156002806571667258054261731072993662917008916760697971068683373943292102418353653875838897812767463266393822028970035503129268273500634751639171068300095579189692614514416873296183930868925366639853916519782653870358188491171580814537407063553431038709968633796836224810636170278972180096421375019373572663100655770519477426784834782774160411032478659995411565852148495156200462678573454185591619115107650228887522634955294957100866355578785971839325520342317804213612825369209168422002119928299804054579563157305167845209612783119177960864999595541268566819461347595983697116550663120751871973768577730479286140732503607745871010764273517826219807768254175976955456776671964154326554794435596780564182719710841907989960944734562565139410902688970584722170646955526870430628752490262693761991554103854664867107753016410771191240650954848327075894971088422725223257557663661593016494141676346230597131466433109439360605646823811979698080637088701716926733000091991311580980935723394903483321630247255646459902677602973081466414727077578793371684256729296193496180681534263091579168694786656535824218104863436397432931668589458667118740146630880942946311673277864966242634066236106647748865163083993999125711774051669214434369879202197972407888215335269355786728563901209080456402257452640167037796793031203585587669633553308900616461611540926957205900719336928916908721746451209091708036389027134975078047244672227672521541358068515956123139979381880454910371199360657567329437507981559193846014977666264486115935694996191985240476297305967315838001047003156658062339263688084627707690135785779792305047688878673485176287510373448192619473949172057095718090877200379187246951644755092712567757037385767905933296874620508501833412471010413856751538132795349159399983748105672752951287032423344813798559413608632006852907646700952817907779835700289011293339735847071689658328900170740570975678534551262032975163495481160228704913836195621548709815280385305818053624349590005956084389291356323276906528614013511548210716549525274970698840221185112648038704322180337002009164377843197300572561313947343493705862900458851974537436689058658839074393883463921090488451033556291648420640939719281810008432432562989056209633346297325980627477316087700146693159058825521291298619373436952026419708586996555438593845887382174201971472228074203360555032561990475205054462503382456721613723052938133773276298401321318087040242852500438200019444295948232799580266593624427385529686982549971089251603118343724020387508474751904585539013959850652478364541157456466373129731672432467039735480875330468660404954067153067116887218810118759173834646277574022256650244837013151654536238805937823000595790088309861627190927419974782996180656904498980619118253053515432349662119979234611014004591031099695884469006369080719045869623596492599696860083173043141883938312123643558264122909330959276121163212836080326296646729959017932910273075826178685669559932965664901204876618603266126961846333434784867435895895104124415811289881312205310101441946827543752883837193411258665517247578151648902426476021360141999880909503851692179663167205419793358979395707524234518109667987830524912173232356513757266095746286799577487073001105881702862853792128958631338090555577917006546198908585230558661144034236872820931529005467763885032241809113456393211675312160327253291589853134148897470404644879950221907536474534253792661729274542985167696409826766420504377021941343052442262649013090282217822243227168942469364620760574309378726881947580738515631544405192074526133074307534418549415839599452399967761556926648509996591779397276879062252740649498910910207044270424109684360851433724973402286125340128210068315068223341683284494559676552685206058472565099543120902132147208017819048735607224544150635635729479209544334518680145549789393611870421154492612146917729638629648205865038018359231996251041656555480660448016681273905207105008505781626749626492931494249462223625396486916261436534919383233949762087848595622334076919782357614874219396483717603431129289082429747185030734363369153075094952860063681351147701626563980553569943785671785853143154017519125602499706863712273832059166861975463422512578539809159072897858837019252924256626761664103082075202695629320720078905356769100215293837638213098734696910968086061520289523912766458360290546954121046084358572206839081255716269328032689975630464859385180666434809444602780886255071726900406979735999911374445942774695713572211034733596289265335091198925507434908965527721032653287482413578106897711054451687223683337985173299183385888243185391311103922080908581775702166974836228341896789469189174797548556501856721355524309984282565199840330826358762897127082067124729053905877033284637107938599018875029419149638075850346786627244536106263683223094445633022018500065189258818096783982064054053577472224609615027504704705194669059450866873691366446971408048960337857695224182415410997633861397690188179793806547800347470996413971926361831309580482946039836922640559638843783521398099725364767787793642167287882580303130074153439221341101052675689354166258261965716234032273709355064027691257319494033680393915659979098004278027938016036979690676378606322096803145279500040475348047566090433098447012417038142246530512372052026499822603921853975292731344077630046467296296690392966707060655816257655880906753462097633136121446821355947575403002883455849925870597727162011039350830288192023983594269269605700495134693550151024182122724436101858589199368250933498545205016791769582314239211467662639257730233230129562929277038252531857014752385252722831701884196092234844343106554200144706825341418242385161773187189699724175156794148870693333038298437810930669130461809227182228243790148610191428483488045932348813306165608971450307168271056892705849343101221324224190988136665547171906895347290466793543715509212656168984275250909947688365191961657047631838765330032780611731004204738987964756692754036595049181307909103574570554954377129733367133597129178845626006108499252500879399625614832174909490156556608530016501774074757462453604011926840524915801896131227320389752851637820341880276110499679909384356740880931833488106117220630339937955456170981494821621465886312620589448860394295478018110906787623214526985678785824600746159981781335520916904989554816314209976611775875415019338439232146756050697544210348957293989094181475795813119791322946576058281200381821321124176183272208668606358214252833673567841435248490999139950425220398979189807183600085225587573575445219795032753131328475180952167494864747342191528376850317491857517009184276327579696270323525860034108605080122055879481880154726587594143984896715199563548499604974372803626323453160502315040537156791305322456306142035436005292772867489514285973304094986612324860791401998594277910885641401633663384551717625793676407645486972327903928621749681397281332338856078284701536710115024973188202949492003308617699608300872817448584501001801906717963779369597503009539642041316806722202354751374382955998940117776269452688350539894847512117321884609795684412434945776306855794293901234157220346393406895385098351313757603978383824621777818703378416071380480074772464580012277804816100885478198367526465237111560594500943816463691313130933753881871649106033816808063471553981527025436989998489516100854035116712695247885440715715811966606707079453105459445499701124839159537261269018188996008684803759338096630672535514987397875700198212842731604491931396275984589109628887000196861680703892740326522865110252292805220815080985917309004318603431589714745993896323456283291618544275034173820023179391108721186774078082456494803679428585740557941395080968447485127697648983994139099368883701067573261749538126532815150710509033393106305447720263525958839963017639245489990878261402809566690549286781413714749537014250791819676607779348297543044896244717397452250156115046035532971613926521324724822752621613103487098717604289421820268649300597985037679324827128721767247414964063113749088740518193870739146839855252022962123043438385095301573967764101229581758122165766290399004779204142076336479613456358273480268288313427604888909500590965545519681420737874724728584739388702292437978715700593669227765395967408164218380634384067062884666658475435824005519969622108543322216944859013886773389610355294133601973616594809814978003910119458663432955293359150631274155145668315833042846672125544012177686396191537381750891496563103300166563542138918767777797019357405458309966722036122365187538464210643423274539173012334926494894858461498305291385281758647013881426022314273657687604066544595911456286638631207194355287419116921066471978107585168548597175039227973251929380261420839834736324500680053315090768154229589527705755289359822994812547288086868359086865323194415680475732376148091997002915771447810273909138959472801647088245151456608551092692804864956258138914766224540412417657577892672648445326591259561688231255661413399220099366932177489308423820718908768939894626045720348346487035826272509311241143950379429009479728328223877084211071864629006110848065758819196548102154401611099224814413927081074712752395173304794684445363678008681584291389846229988407117348159712837510217742920033935998652274660871267341135882477669737112748286334483165001425047343368199915669642493424424132998713056451597021147106477749822403846810280447789686285719505448431896123203318388786258247959458269504536288686514739977809678270599490244686242420178437946499258819148264534857720620222579650828795159494304266540675124676943128363948497304179621394509925016677321110930173886332795069244152988086308833828946391348777995562830435351431789914255804400458622887309258138822780341885698468609042807816498697088516043301725662784204933722077669005077722963739233521775553010374035551403440071155167876951520078013149851455148990820009515965745641120193654982350729650083934912251129965695305212165420938533280838002482001304816845438309143216954268185560525462656726077347022548419333374730853571977127167256313556093582964966973841543084321253205639616978078422851692301751874459197050957797277933662566034754915768311752684891173651426518980774847234659097825204575933184711825923897585018386423782830080521598996158740833816782138147943745343143919234837496533278349561996626915559116638582817733948497893190240656309822836604109265748489715411836386856383382579936931017789211738977369431681639698504661240199010842746435966469148618849282266704544764650965300278400488966523303548231424516699504222233820125766424579126249663660299924667516315637734445311339543509698694528766845513890661974851012821652298659159102418443139253724750499705464582108499197643434522592295452123704477409693564937988802214909683104326705108798287936089447827736539396105154634701377263355675178241264236566907143336003035550790922663714215635106956592184883623757833848023282784571069435773088403982687475440057314291928540531530485603190984545563473434194170804620642723874574123787859695901668678719428309174498071442002675937102419671934825777081958408883457058275075295662644002853893544223581155843407231498581264757635388322873604463555161121934431090915477781954395034500043207929966482268467100957878355401468712745422174560556504468260835427626265514536095892266449721957843642587564230374010101633688514642535481562196810481972931778742092897417056469635881549778393723570586770781492209750272113333015263152408409876245605939517092048619154286375065484136489145669517533502557873704072261379117673320782537536192821884013057400477144927174010804615747370327225917108046327939812748577743872964826309269861119706047427222406858045952627601435547440509347281922061425109874825671577750493382474482632890839606864975886998003686427145770008305748953267827728404293575420297721286405927291650601312512304476927416143585271914525167504080949426678151257353575224167589494270919276864483459431022376182954981678833265799996287665034778745115595935103995421404477070834862948190122940831082467042381397701515801066848639207354950822409947663713667934632991196353660856763238896551606333877018001107442470123892402988685916239024888550187840834922678880956375168315052621149290575786418900559856186944548946130545179473347788148087288523826769392927978161966290920726072287182595649657009219076045531956671144029046053757862952576088326230764634406020030662493415942679396434536310399025032310096615282908371464619784059555534085574339679773410699820225747798326230102507455475424973284804197942070192625118996383890582117289613012271551498857653769150815949254453870318194069466649485192771361517544452907421243174711002117309667109533851047467915819049557423316567208923198160983523733684024257501783642138746493835713583460480851742697147774048497709031625935845292075655298276415553766705495612372603114468975001818334219578177793724773359226526687140835847148680766620947061248031198645499563267316796552510694220723550900499518380547891548432680252978458413140626761868737335539005177218583682634908252775937374085992156923553700123481875880044374449245665777500926748990514463326394089721267767443923343653697992495305901133035791789286060348443262234525437483796189127576168744470193999122277303219040804697380167246019404332452351049095079997764110799055996017322329311510030342742167145946150469976150697853726061821327682063338727100472499854668256211704099171538842608729730552786881563970281461078961459921418440388091148976949326632697976391207432849264783677040046572060875425009285344318956456915942571457960535166708606502743042907542193214381135858716107699957725155073003230525595315624730321417201738403599940807114837901305608626995409374338298399648917733130466497969218655084734106280896274013142083902043531661810564740390476158341071121427149755496472723986918255924460265572946758784957322479312966930450284887866865392543635543192728031765428108554684581418882896881434688537063086561064919881417872891592476445975783213669831913375533665314967620854001622727498149473087713849267409887480544674716433845638619433554878621344164778885949195062985810556859230290558165705967123459537294676153582893652152704584774258685516254464082411858116984263083625518084059627182765759214063059290657323382721988436291977832116030661201432087676864429282452868893832841468175542641056536685297579472844799414703784428066318857587075282475300756629303614966039991544630069324339387979853831119435744042160640525230630750118717920387213114713298461593398261969316883243168453662203817704081637882183563459974334198658307252704624036010124932673953078288927151471984500237013704105200054327079487961868848913971797412031846822872145729992675659625075414563984563462382768937674986567494422396224111718663750321054574392819823001221908459197947918031875111163049146391842781750772028566316338437879628938817345968614143543386218871361038333574868927173714036417345960995265602798046322665677246731197571247823975984685404844540653004054462794063902801015196187726110638929295541131055332739855285101510967796947019272362691876912836224480377919018558787680613122741065447862171390683832047388269772555070212594075662846209688151409619785029407844889703021035904545242316533838090318583726618142561039605506626825067012055952229185645273226632293341952923954667853310756796348116354502375901245456708884897014337181130509952361746806229574970445100655480021000927898087038123820706875798463760812099161952133281592765657123481834323905815309238976881961941794073906635260572322564285332654185816313090286458822923725115506526199171421183498843600229063122288460517386757919822115335016153516051029313715588794843202481905774000994726391819463476103491077619600763625841279544615761455066578132484144069784316797318782487260924691866810212669420946233381930572162593437000342954447052341341800169318398087649300541483420035765392704073341314861593906528172298263092576178883435306753843637316341168615962961606559105069130030560675155355859187463291001083696743182784853903739055482277633230515968460044792387053481508895598325095402546003317913770337516337005343117614009796984891663353601304329327969605833123112059046028273590166760186791676631573625484306912668253945846730113100625153203199639841903332527872174328449278429225634472686344599631587784927819199372657193090700958881095355759209538402843306949146900153649175024636042700605654352052420991540179339746573339649908741827159204155156147258997769880879872189986478477780341872007242318523105273423859750133327365587558915357282752302808327160987666726933644883532981485881281286169177460157534138675706184796008924457956044506228287246760214241414153289475879455119838152673973368173871086261071597182506153627647241848177178913191485726071102135799977034935289904786825149794082872597505497876804801053964335536005443716101437539768148866993925519449456607294673405359167160992261950643987435248104342173812041827086562917344843963405515867934393367493919599038460747392897258422796433221066014184241644756593010984274374705323011548817090691020415270495911662953909819715285855987130193452442729462324876028069657576522909801274085666752509626323366425924270519042720050223297876253554229372648952575698218000132910296220377461660216179816531790818126610983233069757864604083805302510304475397078344349190224099573133086677488894416903890285163562711094401393235056196540934542988059332489845873089808760390650682736928500046225277078011973206826026781167710200875419216646082838050292982145142960520047794882734365519659465178118190879915433040350146784120051839819922015522457842434476701982889033012797773703005449164849804645829625776087571047265098636899775738594738645709226895353214762737258251509244126540618645153847936680043218064098219562428772832983513494773353791061206737603422840073069287801810107423807274287359911375644961969882441151902922330837988440669803056122499783004592976324786055477020507042989801564447063832766253832201069397425921139487198306434763832843398252226545501202079938828245972372294769941682312519892066747383875780622018124130112893293885320533158445148575133023585312198380157646973387322031949623175985004791828457937818772092232723360523848833269585450009857411610253135583919660219510508920369670260821390940150362309733770431729324423555413330538920864539324606987299989471134327937983051788364165515147792525633952778787991955081004589920667253964641180303240861333880990255194171035830046981074086987746186305259953629261200355553928284994507622328865374406293348947195115893768410037168270559764848509927722760334971478573959805686722525660273009679875209724712097132665583027801384863041455328241248723144512815996686838330778336277683441371857971244240950999345510748521161351310494584933030752659452648790439593177239336344042263779062049639626060918101257529878183264751752328018771228823158891600235271648824449319371730275998875610460519615536822464840585808573084739468622212865761334696052148520268547690575578667997965451326431243398366650456517021695305546381863768348476074537033984750647417635547584096230256553884574454094967506433655720698114301355036908117266442714863178350540960356757848846439851265423543446375742256628456856654013674633932346493842790550436102938997670488086954685717125188415614259168984730853661947139714635496832372539391560311707997063386325437309651593940234174277332772283834668117920124755507479123460715959584264520758441809831167382412505920175832879741421847706624968573491647016336130300224597783373553113876291927763199107319007736978081156366865838382041379486473746784228527163070663526938238827330463343981976389316966690825396593161948984424542788084851293307402027960183049350779619029113736989339493491550949509789599273730921818646079745267760263690311792475652310442757658886079058533803895051522654640287646353757968683273676730049386210131556122845497391412635065003268575200776107794892388576288370683445759812157067061357563292532877841971737388546579189277473385456904650399524022722291998359232723894966322116745232484212830178305727552252874209359506591313095920776296514939639415795039902609430996031005915260504347470383453288350079758531034632099691415436111875835662576236953005828145318113683713223151438928242245815554777086437346118229766429852194359416078482124532860839177770919085667196278087327475987142210544159960794123588255954729327594326605583830695412434290643048949765506283814080164522479185217704911640401573494389746003456962462197599396686416563184166178599788915662288974010064595012583501972357783035625060880649441457331685074210953099945096449928390983082672034866238840266016073969352162242353463802403201247652999012132037597749250826341005291733368741498741423847960176510284450378274568841901678727618444198378111452069058113322015578578613767547740165839412928766361736992443527775332883438381268345378704048651210335396351613758340605933278906197030857801017134514195671419459897388049735454935487803326652468605949271058402584036982697585179566427741600021434764231026382149205853826911507498641619652058924254319017731765201804953981288639571872187896213529756148723792847877073655536609811083082737052168713572745413737856830314849176242769477280975708338931192731662760138779876364927447580287633167470594106717140050983907800174130344723526609682483976014571270586085682788346460657077006484641210234980944208986837648695910924447924608206933019873011249383497036692333905566391666081200130835640228174046989920121514225640212133188792123146796591039001422164965093213096247126570391697705676445093996521031288405245873085911420639390838741455329863326417514597464524867020402901669802275349389351143624813055063328065188462046399608181157077360948488858218291290534207696589754700226924664979793644372057014458825456904545623736650646356116888161194221158035590292974760463445561782373812375048864565816384464359363190556464843018001714665739453726736336832009507064843678818289947050553954855544112556567963671079819151648375863782080216346540522692357509963874656582908195614061456967161421814355046131173655401429226317189495913588192540285724187410118743368560389788142564711602266116616127487247066716620521277617221880201574770748212977904628033457050482553105681150232319883273227911228859401679189665754848978979874022587263244992036258501181965576277127377587133665151746437936617006786582436987440085581382168919842366126910531424377601192436148415425630222754207481735255198418877388499789384637051735667925972723662569788354738247727358711490270028770419062102643848651640209440508690801563097130484241099638170100420389525975909960246824333572541240048491553291307175860768675479850614312146520724494756419964177319744719133555141461950444032354992178468308583344053402648206512072115750407072883907264265938107123899609455272348314573273966933157988576783113524891328617503953455368556471488402002159307965854280170413502923085611893604403088965851723809027543191047019183131570637775245256412141573703734869456086442521759260715898811446601097789312115356788857260918984768405618662181120079113727811246502561340183931833659519250759378761214402336494376104347363431699806579379112002223331993471178135893037452378261754731591185297790171321325353287521421559039025079944589659381279846763219507640413420199284168287630021726262943350232586817440992050210824426351992356850468656941512978325118768450214628555128448874572634215973489186096042958130792484015115612430723498274424992816615666587205666108835410142670419257902174715955187804499678868588023567582462381042275088470446299589570713607717897059362050379770712122796568749653894969752198678534884525758334920829152296261698190827727289442135030689711914526266142186745220291362259104145178875833965149531101770460123026531851995849135557521086904688885045717774418488802677768361202640324728346129121373580200424067337352011773026578190155670078847767878306845155312669041776986859141743916236646518830864354846514339369341607181606552494288144270331573480906008162502052867262904812078264614660283473130737550935937092793706212971379497327089416933442726299830062113482988046037810714492583233969010128228369045778212966898621456307418983159481050914244688340347888258582323906551200779650735127758023354350785024036608060345691835448484364227307316275671757653020569708437463945882090190131726387265375269288311688121353600305302310229388784013938104069248001682988431185291159127398163745989684072506405866345429136238707137988050738151797645999690625109968415449742261175748062756662330174736217419139159996755219019749061292998833343436832434412154795800768081005196337707308720706538988798489836180139334968815838910529376434754160596527038843145499929658738648767847024663964948949164518319360806787587845493728825070654430647541317561862902125042058113523930208929799919164926414688529910063820167089048230228439631226004578367788127202860862243032025040844960650037785391567414368896813445543889890572698636900993527873911150524784383401157096319395576951834547444929216933173941386002855886892830970016510341370152243440805200967950002954376432356937565255793922349123541927592195164045574655497140812592508739131170442140189172804184160738586873741313584965040262281693553750430824133260389411487400830669656775837308486274819419690858714479458275588143817666825165886554359494185187164139061245752023004501364365905656906632247402081790227437385525210608895449162518457623600203180956392669378965302189186082568262110058390990886415830369233787938508815817328389254788708286648558445633952272556547267723179711487141321983237200738802725721646163509538140648262536445062396161763437304475472550855634667138572175379636354018014740666188769938953657196329381036921044806488862961258671957026382283392580161737202008060135696288639600429274461885504344473925711082723354701217435834390751350591528714296196888300160872501014940790805715833233104652589405226253292625013346026852577040610654201519767170208658923402985673201818701656881776494768936194592261139727323803053853659774238989259534663772130207034005535914157881203930958995588154904429490459853193276850626157729095757202473087274241690385422315754738890812757698020539457596659293509027403476471724888027849838801369379256513388040857249517788193550363225794655254301593397490816935279704753607930816192532610719619775805473125656878491948978599778000808073247318506657087476465439352593056116063928626718014530062516079406840680952949145996377667244321259827551707525214495804283829975867343950491289234799425926842652435668798546722530426182850874387227127125634662364748879162430730538460562236615652628101194931204075951725216920891958743245220539046693182754354764106263423641998679403693958081088881374937240052454502469786964932086269790040227530429139632204792577409588770679941285273250684771090831713674152003788343028874906624283678920773798115360954155199517508062896445748581734872371595953335322187247529654714705684500534437216394493707689586806051878295205774505081800332112706375323389519545745378048895871214775462603729441888568187060457947957846254209663611338101557600373099116789851495262616409572103009211602747352433053239995116897047517943493684961102888733593023404239661443195714803034571903709366687471506689270669516468820308703521768464536432658673830082534412803992208566411201328889961739779846632128436181474404299664397785179529415053778967847838702979238031698506840888406915314405630013252345748904042652279154000169485962463647317391357742527264859382916965275657884340744005323585965754026149316646101934573190016341172390858429499716053053912174377226268059283676889761620306128667893315603267551157285926222075165770593396803712823419999584153464100850693644503140805026074298490519087955037409504079121447800612560768971197551782777217961103585263285729059800031045823439789620210279188517755017261882798604871879640798698781879281670709692710932841199913909490776818782770105723311800521824989551023640583950179886800206812885413014492190775468364583736271761425141245860380659029351355595883357237593873465600765907094547094903089303130803125990679247289331733781121882109222709725376265478508429983248598480162965096106451800524550219818007698887757584140649246643400243750363707537969454478115857909485960521380346965598782963343982513839240045716689445917063618453799981243588166879367623069735517503289364035172465774023062104326040241787554437043338445079291936840474814935946325974907976556671085089639040553803623569348847882021192852515281493149159975668016389671776521872807362993598212097734913312422482204872103455884027175121424868884725588207789592715558841809172892456491550036850004430289700882946707568274697976350326009165658195424514467851153836530631674007456753008338281259102172131739985433403488490445493698931071618566997637031154706006305858952928542593858045934936809776012365646010005585699182209580441345556216133646643476742044121886977182883809246067359941624317624425341204448113100280151936128748811208547283656069863045809993164162838666878336956193525581078006449301549894296831081672022432582097397894245948090327053281426959303002427970486155491900377958260001306879574430459864184605643097757920798505271273498376436949268337365691434254595419954853722619135819282355776492530401887300357098858429802044679827736836761394774047706324505759577435876277673723317075457153727216726358564014739959455893777162289555423679664174553095372451333288365649254995294102134814276668972533466777014777465211734919774801557841107669180872878050338904660542930931770320454290728857527514384325848741560984238053526953318369810222205838525669281696536219243179531823007643669261903659613146668600502057971911094917069110139048994937172309858438855484049852940274141776194017153904899586137300497986813638093130906124559002516220296956387621969559182454314441848338408419489161942667551665526717180731410532570840941912786183587952825903901305343781542301008880116999097829901823953434386118915829000996957036418196844558818325801870039467424344063754205407655141725055688884070924004104430433481540254545892701771284641160393829855194031274548077880986252370800682360009757323453077235364230861736311316359208103354381452128926456366674446334754210902861196550612115615262328336939797470823242807007167444612644349820525670842391257666760018500967661401367847253425239423727487423263396530127612959603544399447192284443330818369756763665054357288847401747467476434194903590520797307977206232272729786346868931692963692970403846263717624734717483516236378010954159949904271466523131535126350031150410879184245128615924304534324934049814424949455676997215674171107851180905582436381303125942974502437983909905453237177202422436826097577890314024708363258407706675772150756113134664441795817692972461579603684096438126600487078654466571052806209206383028858503854508593457353422840596706557590771402466129643114947480785652527962335604754823822247528612331241531733331967601716626812721852450485101108581829386491399008728944567842218932714689663882416260642555637468960509313817745827206858649435130025750444129664076110559637789126314250300303207708383063149367201440097025424274775149366491331748356457706426276943775001645884561592151684734705085466353143281484916708298298869493911476902598471955023606141139012337273575651967920207203261087758491418820586997514657450859717926065377540136748863368897539893225313409228600711364761033500524935669463207728693662875654142917818808587366046275302380511895118972194367560224191711486610332908937187561426520760746376144225384202979526036850164950740849398079939094205944902693003505515270145212819408906068674891394565797461387692549758493657531358928080162507686245561711583073679839024311846781804368243544642294695922800861942894536823638000258326121172969687986438163823448618507977559981677257166517137563396613485330304157236298055269555386808248672792067759255760651264949545461331474052936600199510068993191020145492518204903626033240936307830424245770931793951623854626786436244261740737024723879596542589492924188474011247167697431635120804024941626307003051844007401674228812982432226904282367906461746708241171577206184505567080542915225295855886985835411248878180695486661917762332670976261581403681525403097287573060280518172902260687776970622716439391219884043637769900966123032043598801953511096009568693511944717320602713637260065886594632044455139857084433076702686110771540636539530397795411551935804747097592073152007187943344613025748990060372157150514616801630568174179603868680505664420986512530611824793529124793421095007764489114454067974237725018371386068717924342496633807012477926941775228894543545332436126548423655053783107608699924163726785959384105945227881031017423226470727076419063431091500253882867678169582019590672175873726972263504060287154000574527151005180842943600712977524286500613323177185983484358441551106021649678588959756241317203653654017562354595666996101291549864991342125376236317780610085553267661722655760528472567619493188709982811304861200663824208919939443205075751945227515401620542446645543010756206401376590004677677656572345710109547562052109696667773217182482399193661384248125564374278720321597544777607720405672649429617191407883049118583407491003933901143776769620746003009403951164322661547362469157258590263678196804760194103382863600222739064490067546775122417369147593788022083834846600275473654325833441454743536685462498042954645975435615888971825235598581119129892893096807834611424460874675784146289887427916474078804886701452939483782856890173906596627688081736739331410326170904300408010747474604598847532257157976855148144162574712500147933347796440174944987713350217679682625423201098381722110278215061177749098123551052782002461265716148196621860923993244479165130901831090038577971563277405954641417209513844581045195681109664666430282878305923388158152373761874001312652512424001202627163569467007981403061918409750985178117909434977349621526730320404714604446819399698503718923269819125387025166946892149792755048735683215146770559349924980217847569259995965204049813811701101811587443380481132123046591404226910035051349213090265437910300173416625316191059511970729073753613932616504048890831594910099101938160186446601753973954554629789012144487419723215192695868752735161106736675080457942022197358829916267938727568336492682945651401406761234219830610539761379255656423070618246782536108153452882500592470410156236862544159174458090491868059010191928249214671858071577688637837428273558369594690519933345713992408334169996814860928963100511704120308379183697324007210169285601950274285315503702990747903039958676302801630803183695185421451506921463164752145884820646321338215935916407763213453641051081084536228524490587549630342605841534666246354569010530352026771994393391033832092727505151104691118459712509934627779348958248347025781373137823705154830264418693043951246106168603103668783585906219689837414689063751690604413315036601470041232934612028372910143943900315040594769495644828333336207779174267929438593165472244231637281830824372508051772314149698414842005556533025182917132469853477241794071072077757840780796647946453995703446845325186144432236970542980280847057968736298729344988263771799660629317222121237903265692621149377682556703788351505833050835968637651353628173522558483656066744767052278676982434544946995822616363019180791075038684381923466501037178268155926023166152202794305892470833178791972007953265520706304669504145165161181624667896456317011372083147154757988907578450451508780462678277070326655003001197058329450877657867725525654750807938010628901663216179067970511806859763349703661649712824903163034189095728639910591654498054883724992423653425890094964548860994398400130972171969223633683404107895780501935165909547344491444575821324771548583400400807040999524427582976296667689914141186289825174300892349331498054924991205566013994870637863452655000367208086097620082292381176247505893026107588093150962225319384260408262730763588022829351967814116725636103435929611042888853827198361106356740760820500773317072941335820747205399277542183203828921225841720929210024458144772591327126758752497369395753737016929345008255638075179825818771952094922424291366903497110538245775452389102966300829561325842196266864027269940816673445343363426804529457227994821114452299511273727245095140022868909472528928959064728925956854158212174228013557835589774557841761552424115913939847247815148267785670625711384134394662876933603543697816696868183416265311534461242057001837968565665510014835632267358249026478586098903108761996184057599908077115625400932568521440794396815003806504111277019601705386382217003091571549852435697405342900669122873575073474876718422550420022760401915021413207185305970796045313225701103352530265107159049439986272223404006767303379519692175801303421930632515682314417910935037538782516273198991747689647779767862499079331953044533498625982013480700627684547998635742506097821749779614041196704534275232159129099959781886946650182771255675417075488835035326049537174586158496063430555266003172849338647843111760824667601828336427245035421183666630241412901273266147632628142460368190786225466459164624647289199455062615934077498128305764894604302845596322532457880254580696261244380534167519680852671899686574791830227142735586883072438962638003241383560730304062213628143917547570535655303652737361429207554069939568003155674354924883446229341102827586813688158958339822342424780042940855191258667482650891577810774242067409868774799155246001244033217851797436255788075824110232052752298056344440960444918171127318930407755742393506537745243614750347880984166484238176579841909282030744832991740442569798809571486936005717287148505449407096862326975363867313362264040358892000520352542661757764268021628037205988809435675390899058643051116683589562109633041924628746227388039262163404317324237369441638598444585787822585411884232806858724524952047584379498728643377929780503718919752079346741560225587681148430021791086439389923702640072826133908189872392034378182767574849895023938538579911807352455486000884224787250130301584307343309746993067300265843373284694132786035877606058377695887758403805422809965172961511462353042608572857752156572981389359460906329897712850507404107763589878216274827147351878825916079883657756031609828300856495250892536482298574101820902304748640704254250205099103539103059782978097495898801203478050753646458599114385805082759439057482455826496416480257943907878209752831467667424801802698615478509964163362625018590926761058548149118699717118479034102952371653011867175394615964445250942985478465141048476578534222648318699988265187752798886635294600978982382656976670665706686403989446042769945090638340887255792159428153242127170363097249202331215168722575189586148814292987276380570119153850580815529889417123468750452720354299544611644264457058096146171612432322245281810110522568133657949071229721226778001193174361086432324456574701557663643732591436078757054067471791169148514637630991872176899490825310608364446607223093854751992458137987979621937325086159102120001396896048447731023784974549084706012332462564299215282782266388877562889046544008397533820319249602788540881193974263232528460983899206479502564373074063678210131936297036997061457870141820543483234080424535432900244283258327138574135634476686363151394232700095773384691516092159788510277699967160132492756784601688208593891908680442420130907488475467103305747089824140658501709810977458047181575210222188414575582119957704843711311280541245719461538215765437144507657010323452763676390374188091310870193056820815197786492277272168255805873236739969879290445490209311787076476299598677021202667625237637458767935785320185960287402720900998644406558069630442608772331617414799934830390966577414091713209657339945452869359918695828655728656895198873629399999096473988079140916287430365762680616205227025390949833799858125084761006237575343880832650660050749266341749714335309632564562457442186748705750186456141198388447853632285921810525760590169200873992247150622057451807845901776149758157953745780290744943161021803521164658945158467739582026351502328838935558729782981348470288846979627599725642621239032312906079361015562192650593356200675084969309571725064875993320699061147506962054132919745784427666035621663141664350094503483335217437137512203821547150623258915021519494896795068246233570498534343359473621778679641333281619813077945244591820801410975853256452366145757590345441526833032983607429131799485867615861784950630950420614558116561076064374680536441669811935920553843042460894448628912522740128043900381273278447206653009038546786819044547711677803400002389226097618366584810122529148811930113337757801491804497248947827960330334946529370509650267097854844655172959834230516073168458433033717814561362713252227828954254053513755007813584413533117519534002957674607327776272084701698516431416849518628548208073044308014916274623705045653038821569376980403165925973275728443279304191863206053043608759940694912777841955319365603907824396481563010753201769896824064196194933890802498721966779068812155383564897785427579176551653995751694410031979158847616172644838679908326231772172790815499321376233063071506263008644876415380498518247466911429714810927046372710477302025287032672623619820116656882610160062048489353065989842513882868417681234838661134314368723108459040632180061985140263748109456958065629862057448743926098854501537132779757831178302756799675277912381233933294144978010848546663333368852362759943042141535006147617884738518117313571420453373306811995502629405801780672567666867436548854908510745601402516496596582598275962390284845170078110286050927487658873341408301023899759693998764021234980119503332599749816889451948719796502593174317750731580939832550555794567315599434565637797555052857758926379418963465181235139417570673995780079641348093476640755942765535101003123013684117091148743440059183971899651953721713240034576889753338659640146830522965273247495245084837131725528620416526358487473947820108475840016335106368096636584806260031753764081607137854375715963797286858527513951051748180443509289750485037958438052750796377073739889138524589056089697684058569752878652007515993232739914551747458064493762253674799318068828379026941050661851955781959457902517110880169239168231066989313007801520793765230430327506735716928331886497156411980774539386937271297534879595707206828644937742840538073078766658275099246129452797701070600665890036738780705398300017169012822447193028739695201653592259578482299722655565846052650862719504330618326975098926782850035914276087262532994340406966534400608382470447329453915227275401919213604485724320860208453045700636625290174189491522668936835960167834159021610098672131328126272091328493882010773542030875158684038890289381113659725061287235316500728730396698852252641472494115876252009912189276538545281736332283153884320745504267680327184008712005197490880884309221945854022293623199936180302129919130193791088840591610955471913911275037842723526877403231116120281444811976808417330969588880663060644827403878387899160594936279934682353698598251926263184793223169729536187884355371136749196199898755851302892914388730618768846601065604088099446350090069841783279018238702771138728260565102271322072702374365908383840604305789902311753310614903769893808813038380589965378429552015307998867771239985210361648904744211793580853503161363307977257824029339162366721736222026609512251984977626361036703756550848755658407186822355677587821530823503842164861898797716997513644382390674656120720786586054673562266347946387605089351829345271089222428535855830680544850103863246107059865356430894168454007355858661823618433922248579621891303950750471817168454132015188401186379635662121825541345076789559237204232045480824122439803525069415859656130358750328462280134448689053732178267246418877329756056041824085432291950430965267877211782729410235914986148134647630616938261972142366438875217523864850107102471139638359720598476688135590059483537308271870335733862984417953565140828320993885536215360329062518287127859822221857717353697405780766653619385659693653787300567062985234955451357498841287054895996239437625771575915914871821768998926245621666119968273274946750305408997655593987794375190227080079218257851538128646578301265629415167161890884568278794178790840383363700612886303258723633828787408754695546830211831942775064397644594775584725678406257787351939449822061708229130936960372818351162582460299249050266420212184862522731168601109689426788197397043186134091144378316578921564623115130669235522839850429199740762997218896974854074404011917052461795482638590432736813875696488568791870965649426408763173897730458318035384173374145325661745530839632274657089503283866188331409709866624388743863259368236982545597207841887817366774076118302189270100130787266132544406837885884816867897822103032338632647635346292987887616024527275782542508784913293140434898918263940628674351843194753410000322292797434159122775534317086903720077523893900518683057616361620031640402554607746755586061638753687122503878124208902019733122064838299685901299168044687368606698933825719593788596747250136876358012862594671032311020326966689467101664493698942547100167971612654109624221513897469691763862120475160574955664819761317708530595802946842806786730770597273365213018474194440162389821361310091544776816845970170029033044285980940249090886424209619482836183682762337073380207521814791341071401363202212488755196151679737605044439192837997734854834539504977799025486115493897664596213181389049209605344173922244917998284105294162973534088611820955807391866983476107469232293909270115097577666647447488736118733663842051592059667384671498298825809206491773397041727404577415990464768134922907237285543018056707908097904934007667126494973011954193012273086235555092876064043011330290088757078579895521805136565370244896931970567606324085135822254218117978454045852227425101907328562050081388369948499696012395189259497922302631118493042259143663193412594913290886193701729542619155844804368451833200526093960992196571822722387600188575608018962489588282493408166146490537912498574124019045528149180397964845328966762496404758737371934213246112904292548286108965707895866222170602790333017487386775082197781872772677155647235696662984130427281084260064144595390154170503084620694455635585432600819633873916186715526210619742991332165726636102035844460564997474562673438254135858409556344867632386427489964360405022627797106720394957155419191044575015882498204133669124025116634003598169248927191158881980422651506923077643382633144401020516295286738273065706519001272256311968072081234052370504826494649082895653134035055716867685954331898811749021691345069790556150348651774109799325435583075429125035892269544883961233876308249611233951808273073958189627974599447316167043829196203203327005794412820951045982479454724418853561790198700945499474459197255864874467401605047605273435412325220016661978413707242841403130867328573001211680019759256222202092851743504296754180294056833679804076558570061412208360556475557803750940862315845981458908567423103505493519787908328264183262667450446610206027838674036997143340233945564875540141168379483794626006820774415982036513939875788571515627999829892104968157386848582595424057350739694432597517379745032655555127898192268724248280952506678424961422069927579357491098798027301489686537297406869165796919374779099623616525417980450591135792004684355339728455843319605196291201284376757574738963946472344934146584253943408044277102255821025719982453564324776200747801727013719664053046452292545514980721127611881413604464713091700063850952411918010061765169912171470728826288504267677257650613585398872378016123316468490604117478874405699011345737072847984041847728655576449910748890129893677516197955193780485872739621373930020215977568556178012191783308935296414779437451114463010207907767189077178823992767155990905017449796971471832882502617336563724023923314368686024697919803693608358882598145326871463625542819521080822127067465264644219430064012711563098694372447967370493362226864572610674543557014419660710453029891882523485353439446679624283099089294864117189729723540747250624718511753382597222413176887364589169997994545078631063213683063154130974704726722283177563357517047899619591449441191865853812817366516833618903021491314171418513985284028492406310125085417678755305367868639512553300583366027822895882590630110981154087507723788832201680915951496721388046072627622473484821020079038751939937718484775065828112164322617676856121079053525774843891729615989183691403303725990158433000117982555445814451981854241786906342338951293772355896814368820301419986439168741398813573953760238593438126458635883158501387114074387127568708369072157572367071667238447790715310464292714384740004537797655320262173259267028212735590777433402548743302219805515098574269480064691290312558893096811492492297615204828082618637029621680814974390233961973363132957334435422957899040334482972156092965308604055787952557896280205021446655280652876684003812344872744357846791093887212738022543909496647993176685981210239757360496715390197020058602950493376986617936686034950373874216264786208052333839753461799824501731853497014386006331991982498211117076686681490888792787001979624244069950028130507759295804703580453388492227126595972804043331377763639244727487637320146929132494108136167691845986336402632880841410639387795850124378465229619885641568813356350940754829260364694893963833489597729111482084211576752520501134940771586436616651769070845736546030934496342414084237179554973921481694029352066240757026383720260224716507074128586393724115319282256643071692558932923154457533071369978994806040778703360153198363516605498028334835444292559411313592447230720977826351221037492024626833060403864661069141612027067247935911292054998165935794700020781943181950788534173763044157410841553140186519955515242281633903463009169528580909692452894872832836070279412088589638148944151407672523884806274914623994576148017294716684103326775333357833048586806016834555464986736842789446690804319246557816452110158961145366532191070713548819288138470723602519672547859548064845159707679966037255717728508858784036588188057533196928802456416010748940985728928089109340633227894912398795498635930895808605725418382196406954893184271129001916114166029024787713072647368884524515932675044946397431605425138352878689499839387080755431519109428701602689541109032398173920490365398549504319033541183409028005663525889366677703513807312470752714525538710502893538977817763198173440161377174933474905327838039794817875687494013551077744571045176147447490795383166524996968270600827793357701737227818505298215936415090349110908575365485131963895395792174278203765387429468002499909514180519912489685792896368998797827146046663548157995749330565646107155803475528358123390978554866943944328795561312911096547869516330707094342896453920360807099894074462411048429778303749705799850899926723166443675952001267177996706009726422386228094753990439368869830903718699059363955390472042903974443312077832824506563871732929325144331596879647460970010705610715432190743494953031352819052447705023617149826862509306228164074678764490478567250935420683089386316103732187360635138658557023752519284673954319817548027432465884388050924399251019285076686421179219085030756110958531774607250576101740530824365962018663851162088035180939706129797834059098488798595767232062720181403720366747220002258622021017290956649651775916660727366545476887959750282448288160800135773969560900761234478946629096568475380861196245446192462347720546128275307606124860931381174546245064451451961926730036824331387159683946852138290560213213037704199955611010008625001988284472429031787568955010387666176295606909915995391336842403130615715090340135517395302501728725412086190664914232112479274735243649119049392366774323497225169123392738034302882177838210802378035623721195174038093562002015571646529149193109349768992036495248813135145575666365598368104079566810858766179236886682515368893643041379786797765611678502813453286259978887468979912599976280921939874722800084320402351466198335267839571078932132635711900976897251237234466672610955031864682816293649435955845081141102582345129439130032405006405435351716211188620459526151133327527952784798326019565841239295176807212589712307011900468356059796483731215323812607467509869692308187086599870727025885433345674988783956194202096882162930036611848922010739563237042695393780056842447555786107079826191073277559889268589552526724939074458574253652784804646591715785544477284317539920975854522536350659752073547343322936686027750481418043528765441763355376770014383266215136726697368665158707347349352280192156567805997763558164914317262740515606970817681605759316212769221810019139583276346334313067651377679733659595519676418919229608471021493262927473929213744045689081905513845810333947909480332782707347456754095322808960406267364030365020950284721783225402198516493467196880482825948201721260802829491554206345530256518819592766459211027703728833215285185414690956159309849708591121199855514837842424311307797189713129043723178367108222154562538033686585596006060919435846990993979319717264278295141701830340415142846342077392290499936072675081953930730788549777926529615020939585757281367455971488707497141946787272237368984081016634424571948841360849404938687344499420957536672959269962729042976226443499976371117986043780771524487505587312396491967504703354276362596646756941842184806470319357741143669350731743179021156534818266721348469261887639414753482695427503805259448708751233916515208225399522838273731210273825975821193702752964612416545567693760154561303641398834149634199858134798574522307179783779487253574078663808009049953764892666014679675887848376805162587403540349361550182701947044228494697490946394590771322802027583313546269986632908330579560752099805311960581275370239226192064983878448804499600769897152130246284470448940519405464915683976827387856405757198756385462967408781404475831369344314084359683573734641957202983404893319871615500949961189679909100461506831792115201401975847826935788496340321626660778225103940205172178620474192668262695517224757775736359693670307887802778361885550323462836787548554200765284072491585479711002477499370549449830662765249562131948917580407198268438488579795365180758984073564575669994959939108618915555728008431565548148552777845047078621176762050372032710287670983165176777726175159657366618751979045583185313576381334286318309779150458985892417811171581283938773542005115002228737409073563672804635584593480683178007718047846288858386778651493950787858328376326861243779834175822555264587047991905365167068260674232684382456830950292820382734521066988769081574703856129712213720800366932606553347819418920812635885795086198350179902829922816348477406059923052339832386183671667003116559561972196937604847558491796355204510308992229883488727986914034806743970324240227867919057823175230051615634326938617563515980796313532425764304666396548261052984492362888051580404330926944683661212001550539874383648550040097227286583830855879977730681041622294060844781083872300102555845299020780650813232949822586245433174353254162783741882639221132917134338111285737766050331910546774853367234642615952691679846127735832192677780577672206276678160024091246946359672881832968092400036868803200740722242833813700205506309707272596870334972631000474267385189116497368378893107924623022910165526658307977336348524897181207341853354537332293408729204251138427350684467419164536511913693368640872371262317906275477910223679842580234385958626419446980806462091492895843687355791762976884968040596480003178333945037996392266113267572409761214343662118917407712168424060108514093094808909946576153865000940666650141769195532233256311632358179698901734018635936660250123415560824133387348340116858463523503929022869396587527740591944704885069483252029167460968409950657566577769419423499876887567109371673357570253832086422864165416270116778443777622317505681555890329572569088666627189821775326431435276315728218263730784283791413113064001303077654586710352326107998769419752525445874122562630090083042278306724250403932020934606112182606028694225621810172371016214870331708573315513292285169240968191821618325348873504062724791342089071435780698396730707811403668133695743151228291807022684652756251365400336725615450822349209231144731608208769425017048035817647490693478070576528959631308707388919680713568906283113671840714779519101241769111454571195767203742275759346434503289484662785550837254804693418830936364276447643433370788100651831810878428084958587999080305255636007494546373221460387802704859488196640316174954610650818434622271788604010591866458663406104204275236360345031832715736998549407318573037492902418382575399187363574726958939774219261980455430507416022311960030935841148872627392426015799777271275333599083070203908208945473341354842658465579451140974495437678418503354573793100323588929466810848715031721772018751287828065474359874788540958305992749345060946828160285084727649987253647758192847357393825863071689392279352068166601946000861527236958057880614301702929687195653889949589381276173905903311303105743064075819360654277766166689562890501172741357819479635643103925649898253561678800526355823697825933121344224492688120060019012462046409499712622390553411651088491438174905611056403908786844403785396555408981450243225329867984478698447904817197766269414019373334049547807805417978757138265574951664088682020185229912575578115019172286659807536194048679082874686516828010355321241490384412200478661270318026753322209846658776012141843014104970491953681408805728306408162473054482857650924005021546234827884515011667346390432830829163156373253209888653186506393321259945035874646796426379340997757747461408926457836189307343376751189233261905503445282894308485648397180302601325003500158659164677949636512441817371558697487900021849345560464117103942951425174197602339323730460077620632600280712614079273858342977279589311553910025779094256593955936803038017028518821667503055052976920910415721253295964972627317999764401205358061189833092759138846489910035593900508687215292588873455385145855028541420983329910815863991297416674548172225327227748764410329548346183506683698414317124498074279081327247724321619405520003376275201909544520541875507749822338262667371548121785093436492430846131143606082091226284025020865521522817380126195146354703681704716641306187621725321837066507818804146448105291478089748106225200580469477612428120037005510536559771654283757370272935150924637120387668276831806317050010245664395168495574662897194012962272149063506511603233680626450046178063643488991426734930848086165392698875010940058567830156171312587539520396570859164783747400149840837017387965620104317339590612984879400404426298063347029415454358679589561380267974782685256304346034881149777128107505361847370123796109461332006913944139517136937610261372023722533592528691928233941322228260400555142610662435584795746720554661821855906313833763384948788881086400169188992554774256977739941583243648132045458243905869557487812091308419718494463862098001159130222824975933922213544779718571533547793574245120659816040308473298738421808264158181707170700714157233445764484405112117811422965039755144319227826247182534727682107348043244084232300516234303001264923463010129791477056749908479768376227319772944732467435466807438087429998253047986825939311221435533873233327785167426382473278064631099800506935263984345065930820351749483576985249425250117216339102295745856266185153108849120315315625682241548117545163232478386077055963889751953165335459271310910181573177169795050226929291088915928600529294184349679085044470469484800866408075452091074245941683489672020625166185365433332605442048278571511716379355834117470229294371124071876000629307290175748087416765992860110113160395847974356627072107759534436035789026548678490732162276464817523427341002370534380768856801811401064289401088452239342190333373724365922979700725119995235910029147183109039279026280803128220946651005927555248147116543587177461837558840945355584064052560285134293519425352008351251425154118612415822773556733529343676763439349506188811260520858505249224349519804627776334173622629822027773236870805516903918235380746293414938087788630075051537519916532763065793506963419463063436144995958989581882944266044584549324024010103446597145889240630408063955234621624189854818829062636214063574143717348311707812041563013182073305091543467133463395288977762640667307639073970627561018062861513329564982924171285605359964138789859104753172398800725357583295888971830489801212465838613893012730436363728211630130837209010268979624311220132295080224238727001341096522441958001569341422624437420515900389316926092657557640085255524822174370091406003827874817342082757251645362415182974216761571050919469595509080435503486971439338250994311912715862441425884144700386764038301137612591745460661515508576344065198959015414496491401049049230124465916331266102823692125217975305508672295273487672572398907008406272062850878292424772161204923312356705278044246105319253853265411816088877052320663450160156180803588021991763879593193902594788316224808643811286662410863286545989805513291646121216023441718692584189037466034833324174674415662190058535621770645523339241218608209201610255335547620523463451220087843831046017599580439040600908636305820970822868390449694732546845899866771767541986791848113608183333639216920451270198709855954075468767901061231779465705970414503510293417678127155374768504704296256314278684654077595958137452203349919984694518025040540887805588035026315722560902278518362807191018892100756712111353173358926884148662433706016445185064080126315618282180017008138654214258598689393206632521705672721440270081381737888246665512115682261156517217507578976189470609422810180966645110700874192175913858940214959259657435308742740717072798778774206500520911781968223604156787663942994924665553131674153535464589281951507846823244460288688183197165452520595411794760628951751398363543920715893667398814507381217892643954709844065056580319051606248301657284170448903867659678550108201845245804428760007361849049069417491237317939288601453225775084376008607103609044608905813044066577321150454769120560420213735960943139544342740746746607976413226531588880676495640177080190211269103062750062653804259861401878054184544863009629660406489283792147204147243940399316398560783046816512670407818658386945493064549881155255602625938077670560778003571652260402813793607807245405534919597797714523976314616659593000607591329286085879397140739586384824288342673639647753527533355040364013958683244973286763606153710055790960246525196229431393426726375852047263003239094120483241466569775193353837104521051693618800034298568473982020685306926153006518438486114374369530513450158755633470727445187856808047882954009931163453041306189728946430993192512421555651355251721454907752689181300560947159918599371551235133829861861988806739878383073956290718215717916564656916099159778543745592402067948546608819115164992299923799821795921859664830821638952148441746041636933557063213816581436410884762578239405884404711744226820197526643710944671165162292053720221238570429642328518953532907330137797018807054224384371566095262252766486688093841525624168682998818831177545949406037248423706848741771965152293382648253297971417320576771593606493714855566267487314970220888948815454757425906086880802412597525803738576277969853490343445050547726600403605586487517675308388815992865657371159147555905615508274161026813721161202097400007508702541412192171744375519183577082709678310131413728673025386126597935772856691397487911751317599886529530206999158455677176594889390706479879661302320188133933512078916950246963388497700081095284194728816069412656259627924275414276615109306395174218174880075013862734023891967463314356064086454860622201656312299996187685568584117763474297866261132276875397494916598254536016610075684787444562176090920716289058498730470042083213758794364823050575725681743071804438044082006159400430873314543351850246917401351680851923657766134036053042711792301582809049621144650346144877244733845905034572695462342871755489202729641382197640042751978734429678769950385232316020054508577361591186556617244723779025166235480029083146872437501224482512669868677516702906866268629548964121342765095499159067352859626843546257337980262395971370339544899015133966288662518927931686054373834596072303172592416023791655674713832296502265285101446972218811814938707846417925403874174539380878925076297697522446268109222904091975755075972559282281706076506577184846762793788026806540769793059491784006370831724171310350670377267107552182874082366449334342245243793518726814990616513691209120313893378900568679200675773880244981856901205856979663795830139799698171530097420355779913544922517489437725203329897463951029312759007282083931205381375127853831187094538854992209409918843173659814111229160957218498657964809545459614680399479894319450524609999851500335335880124111076174259637248879987882476988681132847054529423046139084051733863649245499487953664283388002875910147781641595149382294111492440085620604463199235027265839943103685974232153471504951143844584466053129442784088455861350706794599123740487537334189896613666398528054284528614057990867441692339377670233112591928945987965065482953154631535554322843486055081441023229639163630204836023155779764794545492369354233182382627247015701540082351800733511278567206372149393561971819945686953113391489130381076707663450355846790155760430681174520940306960801521765154661906907084608536904398063254148438196884113794886946052581162502690117176040207634237131721609780223624076070059527025617747897073162333430893781658153783152298768184206480862992947921064102607271758342940784626487943778616320431552698014092222534210806717799342913615638359377540041697300335258222536618755905514005685920403462015603755450742827191385763359606953144946072768804358801972841885813826801804201724693196766177475804327209616116912797446276576302519975781621512260121105341394323529672141867480817163550115596133584830769162844233891120447923005723684816314022213537816624956045751621390054392965721213538773177274287382322295285463987283824660285911155836310498705412115607355535917592308991352286771240288737406238596030849676231077962786213215763583131036419762355398017857042562103796858331426214174055884926479722328984061526242098343029965534461157800897150644356513243968080103176167328752849352945140568324624349068863834808544476642008245487014247241349698419473372722662284947380594045957662193379635990292610260059907736652598118080171166776091431605843396019175594988063394049351269524542127023352579853756654086629139401329496242371662133264661286116144377664108324631953427015775916570645083321666930004411000638983012502056657211875331486457182128297566295199384594575016692285885866091594205630374039055946420186569738406012982741234315700131439996453336782576110250585311779496286259214365887118750337864730728215630828794402413901469375743525110480492920185500299247990673115424537039881567292378809848214797657499697230311578245096379198547729356901921472908020297599941792670246328614901514996296801396739829208795022297777301282866113800720473134019795331033375201823164640272044481670492997228459613335751758387853216677292583172741648065489957753912972133160711540416155180384819462628023263242815166671374110272879507380897178847034444923113046767906488639500087687937037292427045891651689297042966118919074318407728764709759265575575066918899005408479603920535774003113595267243423060246758259439453187633085766019994474059303498797834251216354034302385057153356161230020197190909507948887436880935208159867016205024109466486072485217078491514868861627347837979550784341724993624189997426670452619155666112469201841697356601346710036586226622471974277881776141339332263520548931281827546142301853789846253446583104756345922200741430928936531420440490578044456368115227516748207462382929540976200466936361012855119347962648525121944551272267675746295295507819571952675579950778573383040747805419317714955735629904141258863351418976530850027418684475114271185395676008964804569460458088470825379552220182563284857168189835996686686726373877941115898458043459727467340664899177082897870110137929543405380116754144576736211637652896910783192231442081542919312662408508615754885650570085044405651210101451234711515979868294664376401180393122526056450156857088960979233010637468165103213556326191781683140776059691641348056464188144307943921448198878494050179446807736485856165053557463843946125367553978590373979536640454235909308338282806148158255298927580295505597551099981069435871111799858288756975027588223888009618579339889516735300557037475732707084712545463057555848566287043886021675435791851454429460946029257209599482779690678959098646378613281860252677680869892852850812361697038519892181645999523629398388106000246900623757328580261109264716404379262199707860626481247806188107991877616090072861925542260820042013336083804547275443563441694179756654485290966207543292498863730192873467444742457243229535974785394349215819128497778126151904976892640333450495136237300787478049510598453833085274106783775524040839037544418045671836326959306351675229435903372307042347532924729684625327472119638316396296578974525846242176053692813628000849580418276732157488113879403639203413834851647544119820806486379774408069208136603688254131045288878189051473864962364622355028121144361486153069011650261296807434421673048770290763182464869032035035683866044756550356833276668676055390855567437560319699509348490351936583116928231280096199729975560754027172446872150435045600081445383070830760889504597382415382786867218835623653321223132595545388998583507881829352596698160302723838816151493206005826176002468997808088204959328235397473697300128635889782570328019048105643633173331324835105959696119303471860413989929357381004770551674284113117716015672032307909784878782785530793431482513587202818343383395811427149527481342965689390388735951936916372476074232797521180551733230581584515714565173941469357433529623082586100491879619997361002311710514060482235374806106165233701979238488808555086796024206676996245767325539823434205389703935095271063511856854005374909080113394706507926308584977028067622510904875393486865387731159008546250537229748717312834809720940292330677634427952894850430573845463443387895820096544709221594019853432175121499956993597414993718255070803579422468546542078945004367174012228933580620732884907911199375564769750182154918722371455866785222422780002266562064196742593237366647287103064663838102228535838448785460283965959940674001459139052490560996449952983243332753916911859550058759306783507002193452419029538343674791193558621770428498777128456893069404618078961308361968398736437877180289510319203106034775147064199924935188396047084782618327141389865992970041997517588786150348428753793595641417386326416277018177594580843054719368938793234867044395825791812285404870577631003765770618045612283779624727235123039756149722670825236442365645269139170092428893566205642463103848017114642656542853952035685605507045238375619555531438341009804124542560295134547104421424555028466808279109896644443856782102320914185982882486668522659248113343261647810656991884597889043619747580362490512294920291609130044173112731820391591671442396298947251627369864191400927900338126872215149466116472044038791652227261569875431750045895719613622206198365897566393884896740630108244340661672278798523712188387942183949406283479034983675961992233251592954741908962372360416641476377612948334818389869933526455583305090508488831052272523657642256349019844717023114052891456529036621269711805304340991644197037416332247263025654999334125247548798217726183879292949596975197822881556760637608130682460448361591970807797216944022388621755570951737913068599682851722134957927979529316700787861500409610559063395272676377794525025391806061347913581604361887805755966608094554099404960575009433405735262336766413392544141651163244535232327039496931366357609691535523630016693651300844661421336228350362771880130503454465393332772952541811941063198578118856896801498397360686639859094119211765120894369842548980314805696341446242209244534895613121169804307916993644862068184337749783364908268483498523597105476130699510602092877484614082344503543741327240913290268877514005152068314957348679187225219301653274610299620522735355875688247930042680115051973611637877278320377643945906706650950211969731936693881793362141523646347874476860606538189155040340503570979910005700143521327846384835870145527001411933592635722514795140823431305624922659435725060945646553749561460356154041051698021654901086185785941499884263157933944570787639416934644737609664874125474979243530434732393686629986355360307224336253081748043966451937091303331039920789011023245469197165002556269124691071755066269168721976864474478378510539666039309197916135762654152609258141191732777376548115161820714997051932377767231113806614615711818069585820264893825567738180082342197474754765373801331652272561791261576585248309422898898051588501452735583256089865976183491309640935371239151466394268718737670101231763499100776849426712114889839185854781495933284981212375114359953293620062281174369021803122663594678689905370848942928997616212790349790739752823238892629792838611910740942117543675950810360816605595467506296119141238758573296238010250369622316287450867946568541889111405399447768100036517295155014377528484394042375509729254768545182341162259304152855353465815872806850072479343885960181542456630462604969581504224060579772404583994962944395451001194611846617861340659148308994591453787601066065642612193662852117459877362479264443481228399811378505650929943087048674138581746456557324696094781020256008772996585901341938177762011708604055649211025325312531460419714860248384232501104142374149012928481397260985190825448499058006095396957193534597956853831420485995720025828807989470194618184748238141706044366755808150566981937343479069456097085289192440848157615389432514141763829428798690596741330281864614147367012958034233119798406818302119441597639545504371464642812598675183229930742080932862432406552256429834629662296229567043747810248793975146797457198647240574844922299846884439494770706042971276182844079896904454108596209667954378324494692421602477401219870001276286282090656425521609503328315200615486008911851539520437490750999282123312195337699093441552510091284369630467471724499087964007136915646510461814147487297346667461478920784247386112394554328450697198282650276712433107818229569304379151920355959504066855254017827367351009034181816645184068331549930481901108484659464762561664768997950066416318361176454770930726172873053388761845985891332539794680320507119811211063353349269386457524808759487760531758889718288554887836079937488576958286860360114723171115855704282011798618635518681092483729150473769481669939363655981038434642986889404709281406382151731195866788808193855381830976294037014388822744532033786641861173456737948039085092995926210954862103600478223437468481203060661165321529913499728187593390626797496692715569570149268840695375706385862345093302354383774982151204011107944875899827562849311093077909737949106159886011689124701329692524242585212663344625829658710081352744712906943975649716714714945134372181856429859579792775418024180925456404426374702528355550556395157036722408477052545361201875457284442628490714046482261478036778556441763812032342064325279125510482496550081963089480858987816987764808299981159233960142603900963843711411399078324810194361996219929725070245020744542326323773151891392817278360955210535654580029883839802780978204535929629748757284136767898367988791663071310560422925563446351226147555195293964105671241190592689637586607641743215526655166239168939866314839018831962853746848017828374293982833107272491636805862763944713350350689803733291668771552275225114757754122963849821860140602107456019559532784270584515742117797778615221111963228468687896899766750681612088870560297553306785497275551632693500746822099798913226450533435388984848134547828471255332141902693332127107091140158748684154002178465903032790295348266813546739274129183960144392160786558128743237064232358047943832993381724691898296782156918511189054729606060689551953143459845500621931490927369703359220681461399438951374562783258380004580082816659113250721365846438730628910115206316195887708251329428767601725455788703482993111123950594275984087329625241537261340197792937274760838547656746217947850429328562464245914846671824961623646377568626522870237090702997453868068154655219891325861173397151350798044217948415805467392266540989768494476824648163823514253170801917209265564369131597183426085631572558637397080172232300971007921339154754728301880828699691307360223275834683394989504047949405585707669430774689817852104697347098949031659459866908037467581334035806360539153858832197837921998721691654446600393932578626410255054268386552829941812437336725082808607260262750067081259728177631940218104636248740849400390024952929942663337223334084345411854509905333798519786176851740930194369313927968301542575246042385210930189940704323176094732403844537128504015384314031781712861430134429751357547577239225802843115223133946353391777465374528001287925348412772545594627430997899804913967872917813158347691731736962005812504490875786740531388826869948761584481620865948552787863129282596338740542805946055080444608045563689133355208682640464570123213375126313961989366481981357086811292189089903836941328270025366459221372939117135438520937947975334869642982369828706115613322287579685712949429937771946309404746858475523235600122124560047586510847897855126768008389903633609406161189835154776954567441420525002774386816113024726411342972221424827351326061994517688014687942517794153640723812442143793835333058075822386344296141575581047971769830289638886869982505303077104558103908781279846516127186262204991661474699599409951087801917205346450213200443822773129648111428541787326284124899200361226060072791117831042855024261304412880041587435778892527601984770036558230498034456163712599909568879937332596183817198623002932688905718857058185448904572833335504446946688834651343193528727696619477622221935849564353704013191032510707079716795665250299847504383070708152370927897593802610224160043474143237681831677078010683326701370463464239668975299176071688662123218481809551156131664775002296713996954803073513192089923613211290413166925170428845807757752886597622859145593510360010072291721159937021157521050503908742650340046923873855717073013187703269132727065430767130153812290101193581011540376151631065538951957305451690216540606615229509241514944887421545723927248727490950188568627161304868022843262499037167680142616719167769126589435651728388819891617714742035109048440153987339635665649624807729852084980734044199997312703159056824851053145431719515943984022239005060485602847985948114202097395503907848145105744421199776462575704843368398737400836290029117179943971007561783500955603340820440324947345574346069376086231411497357761445683215040310132784457483925072221857321065049377037341748424351315686537626036626235271847658704946542596057697838996667525479011787234028643068524974940121627616811672855842967507514832283070707073671516083565107197534012347317427865164876382308830086299290253771635812445816625484203212671110906040182947881724427487243900691324553430105232653471205327977123949672612458758104533519666593161046210419540006863887124703345120674486289918567396982432314753885516704531800102429169318243817858911793375106884742731883656008945794757511983752611230647359266356501741353589702336102385836423470209053787438840623726614585556752536378723730905882116578735493119123043508496485628309889025366217010230325258256035397802266172294754093728961406473332614605100634973130682039476546623235483931142358479694829140066936465017868765134811944390183109421007722162239984955140110551885845143070099798270096804690669521166853228070329309137595685253725668234781571578369342244838842365959500075635524774657910434182811651436495680181981311595974887120821516540352698484473895423422813245358845287044478787943947426845585065006343564928066155161799861126119117297673292371879163687965441935619720258462400096087086571246273916380203808007588919418643357161634666668805799903197263126263633139390099787977653580015781167823628286884448232328534869594829507421918849152809735177488970363600148112275912513991286467399112531696515272751865794772436361158375131882539453637926374093879111480984597275724062991554093674259103069632919716541683826092016828471064465341353065705790669711669819703122297613364912431891156331997083530818603763849791220903335814524015199485201322485960744008044111984753227636971079380938816234818318743298968401029352997002935196154154239463343880044996449363653131250423465705448926075152344654364707955848729305251478326496353913204804525489254661092681113287881949157353039312466147944602263066347133817623831135444736753293238009597261597241206060960859498867522161927864623461920772431290042993500204647183816496195230309653579865704537992566336508783017578752334084293986342806686427411144098119165006238507487155129498401577198125955093007626633908683277431937425000315503628736797458248462025668156862882638411168144690729163751551277130079563262150465986638146413971700651488213166821514888944296098378719909959183691170347639304772021657181534283967571249847249193498322275415070960573324053492567694619355411071817901278572970001611787958707064501026235713993203300682102280656325439276984740929296200517341331803944829326811053024059138003990946732040057422178775842767448961991107492282233309477459722477245358238753383110711737651766636063823253000154543376565527868883467951488782124970089780512309604105403026883426949910650960478496177988162637387346838662608755236761168524980598669873776824519389609826604388140832041287857374421569565874660014438441122727662092168137453713929858155311912365673296162394514996776651741005964019807355683929509850221981972607174342451666951451281992429726487634698020910009296016768400772069375968687912034731365043836228857669581056398427210484981632938168316756565645856829709433945468838405987469955567821335121311275119757943440062948366662298013268654100697513274989748837525010952865473106392618306624906970540659374259233382663428649569729236787760591753736217608525242281861929077044275661735366914640174865860854630523296600104180865883169351722495209927874583870751346655202991171061345683357967908818051206148021084631018780013389500836426075652541090626778400649204869630430069939628392181850800884442238918771576359687036919900832229521639601917101662398263893510990719953822172888432802075469346425881595686980004898933084494061220734386068889930503866497292605710738250352775388603740672553564184620974104512798637137532100258785424110040220069579786560387849720545031036846571047261897260546303020999006980829478034992786743428451510379272050273402823697724849001674022188286582886037493047106288117633078066409014503472309040484935731367931651301766992766146791994287497615209321444873026592464317816102554424198756675327681326233006354541111804507187692586478509505084332621899468128814060612886942083515291533400424910140733553455189273054826842856961510830611381173948593999063349885641095629730895368070598319897658973840192482523688175924360457964754871140596469510242019555540798086136560979785431105330691246888359223686031582231721580754363847931794237874092008816300305562194926897310210732026156184694380230612612734414737083386001540244929255651170515976525541233691435450252172637411892353672931086361681285526538428665056584060472009495185547256566874217814049456587300937560761046703052791321342106378796430219665924490177646380630191814278292183406701935189412026177974642236397338962850362207576091204889393589794341088836877316181586041117391149417837831547007628043876993374920714404153296209588160487436751305110027142191644019755254201405881297025631665953935779420090485636738088048726300273708280764747839986913506337223606168507337857507609667465676834211212172986552098208271423385295945216372573709528612757862002707848253929669211865451293801410219105467055150296220697101115986808577274241133636069468732397551746187690823486081988417565986668044822701729143329113802220454427543107615715390188505952357819960963699704531823101263212098253947677200513677315777212882290982294700580198291086785659497998715949346510945405958362937509437694287615941137381807690172844713430677707424748935331383736485555686619641086759666501190525427989023187464984353049363630496618239554209610671930418058412107668552269083966811951642758148389927479786044093457262083049856121479624925374967273263189824732020611302139696953139961720055311378097986000200109028473845868233650262560381247088404553760298939382644798636009178921336208278592583636301477437828278633881577393242650632618216090832956781283114138795747847908204842211254437859941381775958414978491013541996399982312043334572553470045045572350640580529609668794792161244787659667386662926987098581668524467711834283813347931124743591446648625543817253725982517785825204799245339207522923934660558454618480598038386485048024710622188272963188906929694002947820478297604689819610087899708134644478167773795438955390355893487824627615871661134426933010484379351520409211237761417111631993757169455821013321486071022560236227657270028830845168612813042170773505455085590720490507783536665077162471267524555601648347560746131869329185257293120713282374293979651550987294970227023788913057843100937977857363288224309913920995411781032999874480516350705522903584192292007515206014968351941462005324603111871451665390983081362425823793214242290262434677356895044484466632463645876227233785629706353639620661653505856707019738773682529519710635521767167895897234548490162301417505449038878185593668645620184245562616330182432714687946225709070001094768804929418754973021834884225810814259309694201926717377429610738119821959402318729078996931515279946718537939215244829416775865031697133086947867965801820396025001514302956398744464977608124142133444387933034182619284465576969774163943766166342736999723250121615821433461919243535605394674584558112853317016699697854841840201882395703025943271509890318813055220714689997523154284174186192212488448515392732466114646295138249312371960425474588774368295348466873917490677627909815968570719948093022614785346970986164433569183398629556387427882008450428181381901314643228775708401547501045963998611860489158140945355212203309983443471708426751660505172180386838260270486449831292863354626867677631549308968939878776970412288940706397609655603147034160476289116370565567170819907346431813718831114493109609182702334616318394654913176963468926735654906615163550818681112366725336705354832464763602549732191141183055526814041678790945045032190488096981494174654459450856849112748528777271223590530211893749578181717480787883683888341862059796500907961089545907320867892705925352521503630880337022019966065885390160362040275322729637665054396324389807905917451988605159616365311779830653764331089237242943410671390003612171807390148777132775759739980007181105649060045782459845806337623216895649004714393676841287267120223065384739838633595977710280262879522459840904661779496730244679418928842080412971095305930068366871724379617903879079067193870248961219196104392020589861187743690044645535591572169710880883269924259870041294998579225111688943313446176567250851293769702426022948385228750797538037333969948064253508651977421202650368679781273402790864629719110082423592899787581576792246357896195677690554667216788972764978341905487688707917573252422501599301007113515898294709482366539544882784387876880010093024259382170319568985782540243491046677568143024898394327913104991943431714569094164166645274095737059571670522266110713262405849340836927116688886229067459764923378082720828262029438333833614133700614656985894687157084586175601824503782628569673736911155668532092920184788301259546381713211114437246522380619234536843285669648885825185855660483629292044394779050452249900036808066876066114903241370189186377597360250517991456147123655960270541155214040737461114998342811905931918109610104024026302510914646430524508002015236458322360129910297003628847671776808733526631629273156622545942021597116603742216161423752231861731728759256574741508380220661668511347151292416899122653219057766784509202596486731969326999188938080538233458733879948035429051339645927635755815139767531945382287207172785975217043965695955494120225735510231130927669299308949792992717442764191202753284001377630019126436265752205730466571919397548701361082629644827901502789748696197608807164613856940859372833150511611880098013265075796617198216765660142922823866627543295470232260002629496316243316589909831854293887202517711125731320613864989297875945581958182805199279728377075278170946564938712061221387995810565377287446972068029687697566718449666355252197308283136955663203509338508052785104601135929261923224877185099564109115062184292765391028370511702576870470327521333534639392041341001850640164650164459437642829945350895709556642318915442048383750878498938850376188724059352351816646608164012005276830116467123879613540601801612802146968035338424826392916984059295358632721501532550925042995101564582619321879004292636423640196565389683080894792879052901251739820682786519366688619541272266046654165031726381079057859912267266423271900505925290823994894738151942411410696421286674988195096022959473909366479030159857220555542414082830917541602438020900864788255756405743293302350017728241064860351938768243325918730113460134690198297692698430593056074976911671972838191143242903756879514699959872135544447078272596351310489746747291970057140612167319089213301732672922732830875494261952552935188633790509802930397969955606107264598286548031568408982219849775197337422588452158775342613178584545663668854760420331351845182345327032243616215179594199305594758621660021512085715761008667777394335720382480278766287762796574551992012355332209952051500305365488110242066487464933223371879918914307902013618364147724201239129599617840639282720768476147909620483270427741577091505351568987685426983179564065393759924185688026869921171067055576320161651061388830180778566164879510300313766903668554446486792206138114468506889036086162452111667407420329203439627736708650142098642049549503050579203488819420743285449969196352217392336659167147016208573587809257555228665335850901230952508759163619356769654876388784726819432849936274827188552190433218294530269346509709809199053423767151977406046918589987562930149493288241491291608566672527757818236633739887035974170393887501161704717338966733720295999558476106191308161856504334611104545570875522524973660639074053338327249808385386900204615004772360535508834620947824128298192107817703504577467334280593048707071014620869718145405086235093022299332172761761223160825266977119723082678050798187413288894078338865994334239053502670690085736990738007416239978208734628098548005046686561640344823419683192255727378859031813980207764511996347317806715580353472448218139201116077878674421362611118913563690760368677899802119370611268714037537506616474127509954349320193014752361205793284987122231356641607495764074528365537112826902735363020278647497414225162889482772691633747427653739251105958041529378843078926642262190959537838252165326198352533937389803621067630615563745516011100368636493277767040038707420356720610327237957465891582791707182036584540992795152186994888339297728880708380252298651116941125430592719891021346882816845213350465851715333539729040004951625081355823331837414840281017283396150506853290262286475127516545953534811952659921490681457893494149369189901005113215788813694119508523588296875953308554618844633832867664408566476802670774632220855339017389581119307917116017460437192190426341050273102910743926910141337566208747544767078750854368153520006354544860363665305056335506016884734793387230377887218142111176358749245456446872179683416982710375778854040576808425493655734015365465103003380078008957418560257438160888872839692678050810659360798091916390749645720437294867287894741267933928915747250004523015963835386233212384908722957562728980484016139661373803533720365086398931430847116552522841486925817020746519834961737171219024975799714874817429344039898480379512031151905500570511291516792494398952051095420018456919417208462444050286976213694347664121516993722923447391798610030909826724630491929238965616547445024413902841831715496847480773391164849885885220168615407444507672913165879200756938369543565276169421931115463842898746672807839286861665700051973498380987253154486130757448360772012804463356102818406608841165985567342007606078928472311814895741419936731947044261029134180362677103627308590172187879405067084674668385183008364219906634175491954918699063322199412378830716802403077664029611605207325318825178539669661476883756615622423238171351487828455847786725723884151102824109181462745959764980197476675672991103027926267509630820181833251011603680995661491583322958489735667417503686732020678250375866371764213703350523464720193739855444653795679385723497207594908851295531893624022587856471457840664059175521912001686213416159601820048798933299168783681703731373660861224602138099690451734612204182730848783540646374629015590805394771133348487668209896137611974175223469243366471422704979296585993143408939152901321488637308410860079539716776024001412744717412448783330535582304905167759867385756343169897639471508263078287705809234493359599936169990632977667666032079329479384996006800306353689350167212347029079084301695362313595134768536384540599826748861797524227404748501747918675352723229928221762435740762210958409894767539759993460751940788933881350214034739349935936647777620774724959586156476805804233997048234245618679508902628470562702233612577466031185872105122272891324308501349221470512875491743625365757532939034160017849641516418292783364282703107097909464966393050111544832088926665678259015587135907022712312233317812218618044370397721722304149062020349743658645574903270647311877639188128339426224091878875958495031461059306756134181194187508156432600228815057927490076166028959606919363852198610013710222674923031716783296195398709991212993428716217430968450481183339857053949625743805308280045799659100616751388949284698719516801051865326987503999396563719798880189683941584800790725368045591162112099469987921201243807885069560684747313916499985180821276424143521607224662360261069114205092570455127125041175448542574450351232279549894259907672820081620340974513116731637901128242247866421076875249500186380419559288951431508247168638547351333563109125584685749763825111308520063691736119324040860328004417142147883892010234721294452071426244842183254598640880892954555311690382511305232417616660916711262604690013510677587604552056236388204579491981483163430354743244313104954698274306039785214840423490399474167474800337416755111107628234119716332873465054764126826880787385823462704201867422936899477462169407014739646622741017423863155400646302106017520708126112884503996646509013604788535044142149118809049634678423010528599182799306856765490226495611739260664868713139411700308477303054096470401130956898030854879797593250807403879265481440589544380357216590532349143622077187137954378945677317556117265756845860216648513449794197783542282263958632832803607343270322657531442635336262783826958748948780606883217303970399652191936803537564551631212177939430263506852609129183157747175169894808958785251268852669295036256594703621518289186879651601103740400033587120352376250155346733864151498286270119186320551910604183786865789294056005373832453394248412667547083806144392835805657421110136512526175785936536707672630788429117542351489358564115033291436044705933583803620482686387513265085031138507735365795475448100312312595796347258847368892777966242486902009201159992293821661009764381381640413032279004828571128994829576964610816578043083275611643348158601013410255785664497122187213455779659023247397475159691231576631009292779446586881005259206785391046461404438353915239427569444570946033778390767110303341336670127178164492629536765655471537071145972467716917836531812557887164427148027112775143279684934665158092638602569405917708676412555392685149886165829815521869865614780501585353305790935489741249370043246178064649110983898166689514618959945868090084011640852313058195734835140530158895454966649366775680756570707445017899828733605514276606345941261756291533126330700221030085921456327730746309632086393486014051214799601926702448786358259051112676413718577758503874371452301196636120348108397352451251954952962451796458573490641403840640067197673759492773028632514699369215586689580313735182739150367698947468844476859563359049593284541322074712376235874286529155828712890323904112310234580562162875226665594300743784180716051301895081627235646163301168617415068949358142216885514789118520070343657707383358140369208396508839415491744376960541746774756687272694430695265139753468051740409546695178366384493300954483626725508656582200479943123994130737896437300761843809734792232707935341745018875744436974444321860784848360587697982193030107780205120439073612227140508023100577097597337128269683233923633660717699898376239109107960926357412299553828334612630111250106035332496536902728050664683484396867834927303431731736630989928283315830293528101209539706971038545150997028264882147251167871113789240381251106618592939539040464418248221952361592061033944028562917292478084657256882463677628281990644042323637345629765478674581347898004628219532549880348852835361930575184841544604273419122027000462804792398473788063443959680213483221366480123723732985348348868665710521263017656931897299814600558889084294531268040085800233315389801224066090138847165532368756762685822098414863765988998771587129563753558144025169262752645712000487183266522751960486265825889552561386706818773869659940930762464533378964881024392500251834687299995690258183754255696171243977467140085071987875873446879927942017662528328567095936949968460614513220873850238554061097660654067337919081404170443217986570523627338081452678601338318969271481234059722164251560266818459416080478544646809002842451483041900483090229034676356784085371591035648446549042399993012776998928628407914635393512183789393836130794671100841189255940911426683194134864596394182434372759518771700382094976933769708915617659629344515503964263031567448229047309950038401348988897576956183752037936980873503943919593611855491881722085887307241430341362560382080545481777480629922986142079095823064366860242547507704961238847383167233378087730449305172386574457577948354760843132655103177448539490290249513021260043231538054737342655796023410683936568963535806366853141943958190194511266563149856804408319191639369203741634152984902652955237107177115048441802432619647574689714710667562552631793383409764434324811593017252415501942385230669239628859535138692407115281619728737963690271802416253634340435864497057792677423596605719857337260050560168751100073917167857955390603112679893738389400021260191675456847408542639029111834116554339658424993483873085453536724639124342576161687416072708269917966205174623784282746543182401091773466032547611790339585979324578685308942128626611690365515651432670591415985413202545683589615378943492857254380974748875831625271254744037678543147238167466365366155805711909195321061385047504114224187870607409550966897754158273524404083040136525098447272599310725633942077034618902026583881693366763431641161911673691975951015340157281494212220187918594944863274591330086358423817979398404941267368114542318392379461815706813695390835355728649625600023788782585072961389193228318936291830604248630465782714174848220022522232688441580720203515186021356220998954989917620437773074100585783893288728857302646053614656052111032882356584369647236768196686782305505270227947378003107810279555480520329081277915774108293269980991717229284693466849879125372260632705075312527219658952835121005967137665978736832795154225036730882661041380566139657579606179642939226644045970237685688075051184944380788991755027599176974795837575975190575724523253344841106340496918952455310213279499523709234638918119507230543131842219109002171015421147620214112166103226203760196834792227401194290803961244647200500443371602519294416904290736548570432041740332888775914776430335619902773451187432906502589152493804597076479138487402722004836320696252866821509656219501965389618843015064427744205338894088611829554647529366697885664701106899177096403109327251687876775152901645835673086938225451347970677631082315349339709167911373519325963591068226617189733434542452409195685719823497680213103373145430741649678094523274693522778226850873025067603673059814427587695487418641557487341355849447196640523947522843430961112339870952307183938004924250005420231568234351476283158974232326850615363305400944814384433460673107479245809957218283909007157819400963530933646674091490212515429735941066678601381273504512475779472084627427186961007041754515589443463459359979435068185009935411869676488378691297172970746960607979040233529983251393842025604506223130415497466999019232825895872431569621745542170235978541242882408786008514549697157225036452581436729407248957276958607069232600049200950501921880492907956903100866455762944919055719375486509589214020713953754512695630086498311495496746873707000941632969012026948055071132512245934216660760246502803484912877523495079331770319958640477976434493973555971854055283166044559504627011315045226899733798367626280936737521328278406023408395824046363738828174926494572309509968226479540738301378943514955838543492887121032389889892994275702894856614257761426677227457098467713099104845220356126259723251738360376469699768016653724526309856147553588999810066262897008593115856213615610962649329404864188379418693462304880909174495248621734344080918632312728981540508794622325883569611918471211573707159502104177102616922063407040891168429178909077450822665302440937556762841304865818650634150472815187350533876842368180664411293672205699015011158171054573584428101535888158043940013260146931936739593172470055741099497754107931791022107525105839953358845487295269147877172371922913105799587906875843145550275285972974069782937317601599282008695055502812073108274103619807861691390537669826674673666588030780649733901562815205562707558154584472534497060068794112851587721876547721717158621848926983062032531373340269546359836346156953374812439249867940527514255113651351145415381492582270073699570629414985416753406628765247997008484968093698366435123247029625104962134305873745947620648946378853671035044528811163599248380223667194768074795967553955059945154063481521015004935051828224448259772823803744347915686535778666534872992507803117350234352918109074169065337487494851439637286691286693267259181242672278837696680244095083299878632969694272907334289245783341611200973250886897990526566835493936552210553489501149774670006133429933667494131046557829161292053204002746178015926988490509188245674441093778000241037801127357175324391925015826232921599273393114241224240560452904689678362234371046478643505441167001253134156744899594513416619819791526672640826832543192799969221173698198750388407809311965702921534349792991128782495387905732768506603918455550152861405012156806751025651380794358396027693691172874546515290337188163279060005410012854715695790502023046912233757776683226076290199646951495644050116867352259460068420457553309860374545975420704964873477301878404585434927235742396490691203295275498639119353758931553624632188119324780620497823757552980352398617963150454738401507035782117798259259269274264032791976130858098433098760007507392243682666734817356096960201096866375989668309335275818185083081278160523648702051371077593877873604917738221068374046188833286553215521759704918961161602260810894322761008548430632886562342733594593983613988816802273542001296115700117170165074271701766583245453931108251482881611606075108654819919482132577985294637240031324936696235622159283927643278540049418023747265042109725251495518728827274609759237749175832212280116435907262486115259333397422708323046082060628043252285881678020265701567959736826281979554185996458608924479193304679940913217617829511821210659266132856974833198516382406198482503166354886293910902572165027053034876656187941899232873708217407019556173385639846790499738966225179236089522426264782226633947770623736455219009027838488681546980996735498592302633217468485345676239790264534981078227884361951998625216885563640911037593438655314699401923866351207714302118805627810954477212150442787288267224308817358091049139694044741593842043480865397433571644020184660540985564206239987369279889165409758450062271028421949393194890415609092636958794164237200082447194935865104976277779253398987620862614397157431817154523631723825417431160643318777745238391382451793064166572680386007160046281955178433186723770644459105070798045787749260000978114707064029650286763567048766627293496515724831890584017328703846451483747363357679158253136787518286124504797371629559397031455744305473315868204551612943109574513250977155131038772796428283640760693237686337615130651995369691292058365233275583920465157000698448698567256011221402966650216811470537491854106106217888940282142536067307758013005365602009298602350470158185645746062913228073203541718113706887501413861940501453278075532682146462712479203341718929112748069636754392471728358723326044820424103265273720369978583146981010116172394096022121539487979620295830894375581318001173038104382143769926091163197010459590086417884675614193268687101582869279361841872685779094242645120423325658238686198270294008880691063835759477823268471946964347949215927104736304320579580225970812560274800416324347109684482176514017599462631444089627696403620755862386960151844331199847583368062961266561328957661938067300947525292623052453804703702810030034797551889459105863363057519276434414282289004160204936788203657340672543504210251768984831861330686018694163208342229732380304573091025118835935374218223998603675020788441586437166891604682164186328690410410803151118130658077204459807809942967238832053954078323903395818916389729527703214795799041826421642368520628949257212638750768000209149972105635109449755867513412954610557783717690768030788278053565017092968675013607713840178671591214962144388172665457890610159131650945402882980989019192293670171892428452192295563819019290823233739690481855847971182000244076055592305222132499534988516236805319263266135803814976946210082931350649137645052887581510641911953921087993298335806422185408504475048083662561548211746114820666700686521190421580655072066130723412243494478845638927526520255172151449128572099107992609247234190004809143304876693627214123226080947725089635995952510782078085288305782302123943144648800646430885964300818937543801408830230291098293383231712575800402443043087621273677390689348770818587711688881885776629049342678799657532631992204863121101106368511841896227008007042434113144023314648476585878532378604555130080469179883860640928916818141954730487510081162517543139054908811219188398685685843181731564933571217254427382766003362088301436087534125967822778218489605056641155789094908174428972136497213865971392763559722882248375758037427460980598924356391551472021116899815647949998930756106998254833428110102629466433662346547875627677470926077317777855699898802131069941313434224106073647932376387931996143370180134768366358482808073981854574093842067563815120581174179196454548140222699568458803575880615468522590470241077196460771425371075610329598985206667289159123348656113254750099379876117866509086766054643356596175144344670479338586607901870171779128198287815236057145767495021545136568996282881244472006694692304481778608189709177827795313173452012133292987857115499438551659163522902796750650835793413249933445787717020710117266127705447185032236950432477864341295611983174786789139806354763497933415561302870782882981198758069697988490027674517964976029764074724753790361375560062338179137242327792969497687598088842806960418796922875372241246610984485429878916542032248338769353175550580221882014705278050055843771468578697353179655770395824239736112055983731521494171785146591544503000830757870410690927327123040198533870408251569838104382095477589826298992542572431304461984325189274110112317399097754840534719089827138030946229314504645315230622337636063922411629041420163114294033315292540746809132149806713397209064218047433713215967694142113353304859397956873026435907033379429478854495455711423099775084877609398196369424348202755891401886605376987835610124666385342119223890207762313570991756037457157728412561844223587635378279784925989780253552464878073528221508817310290587557911581980105030309415659675882241206133369408714635747364093863745909998562345500895850728316747600704265855545413231793876947316642148557110993911235102993055928419156174243955241248182054867237961043356620461726544402597809913679383558578300622842870091744958244233425245405034382385186552365064774590304639000784773809252776258286271014331731458387760048816885968182872472792654187967485136588434724746548970189264579471756918169846038234001004570059741443621881819985365260244026122024297988753227875237231789771349837896107323294341767115343007357463343407869962126551700710866308600286202935528020604432274272763949837642032962646891471023722833125806503816264411781547414000873994553005552664742089262444676904867756032230653386401285225910654848042207622158707707733893528084223113183539350658523149825428123173213194220526183556580614562707904792588887168186360210045088642755157423203457988152524500046217672332399297085928346262094541511335173664929655042398770530997709850762212702772165261846471584302113670319458909788957826859205624165619291153102369514170361385448424724857629719898814403611481197157795567801857721927475169268371166708497154770190281243593692642916390717417436978496596400655371591101932326900322373838188830410137918387067935300305084890370259901401183464061912796139506649495428047198026687258931813257562165539040379121610176424874559503380377475671080909237343615162639900516706771732190432888073242864713591771968950294229633672324091644051550305732985283111253818667333150595079838354661451083509857330011436086509257015579419630250282875443155942807732733488629998102416799640916718875557046489122113106728884270164124430635833147128065392887556087303995063491584517997372697538815334171816476143884910925336546097036725501802701493408134366650308391110307526865005292109284032137744027226641975094815224253516827142040425109814827156614582342764241179896823512288793342963971410395825536491496347998732539838164098890433212027658204679049313228154608763251108905911922132999939234253041703238387957112882727049064099180160131814844252164871813930278749922729964723962526796586601632531907702825052949810144230466014828187308841692575350665441904489755482804466622994580719387956122054313137070812077058133713666425590458263981731832103378817638801967131013237634492540398429918951798524112957796440402940896754642779108014195654186148489533055363931515893784461417464303472033133163916382048667922582088504112122095657706398382301064483427577397478291923714941165407904378178730434919241647247038223223880805967658340475870475070637535558472518287658453847673939662370241018126495032645748052471721914069233259540852886514836350367005826070496082386893829838712655147811781588327181949950682863302210758121331187938551164061226519505059051593635567154651437959192183976230057258211687918120375412168736766030250446422611229843933070222305725459661363276136974799757080802486415671572378955084529694931981379507565359342904200660398305420675172056948336934703016032732267921182634980168249421632502852071284964412934977102611817788009792409083425033795217042172105357052682493089683084786095177614388894484918519956165244375117346032173919435770514832074332092697400027656933130856900051770914902155440608289851003138723879731578161670963129145695168592467150964056428169047923801995805077641020014370838846187512185305973168792869581093898696205454523989206566044614775910931117505268575351365567066070482653789814621479914761349388631030957347340587264478474463914646409166045194493391513164860318607931819459566696317757401739746329136412079054314968635960334900164928871379533220245146083165417943383921272177488128347799163019298892216416796036891087633937291079449810119637979318687985921348410746318028465875238048994090579985185130321317821479973703190874072813954048884484539081650781667492628266567024565559775989559299190456159314837084486858785078175867959988328133003765074605441693118004623905811102006929928253383484612613264692211989236628017233287236750294366798510014425279257279329618237981710180739200319376174228992367471987613244548243181241242538951256207056616208094357145946679103295180683814528451924223751228916872827132844335997042866220081363314508786711666494145638476283107461281801324239349309779931497822220508805683138148213969318280125229895383019289477735376746788943772388719154564821629595100831254909145821836210538533854531551707971560804881715208220119821680962285610886968025652891687467202036160596739345999443439388529479373579202260932504198210776709153346593289872462513306507118547658891875118084326021866713904167631164343133222167231583450217588500303976983679655805540475852255451156081823650823622296502589829159104522533644626853443120795016996118890610132274299509219757365342270344343363594585835326527441571881172133282535454844665361526619673664147413377098855174571800356101854133529306552756381169607817239743210076681954950451630425821317882382543350476229659371839051217698293196914348349382203256454137928355985944280657828628488818040849865497958712369757298070260975692781110056605302317951853650246383489578066274005859110323351590965141471154892109295305137574611033426672043681113870979653198848606385946893322238638014893293967651200838159745141469366466017629733841105336972707733655528747306380565144274098166525254958126939613968867715857623283777132470816066537783087031475239461883522009354367481879582998034469542618085933284802677118506131315888940992371018405012903885507408783372845610516421971001243888455384102753066738818460997026788041365481250238264486146871913756998076726610946169004187563533383656579324391099033521067039762583910138942732849981195119321166105827563817286055883083086613673354606432352524766691890089584757601491533745431233699748853746578381442935603377304842447835869647652173444613014354007288365277915593588876923787484748519458340922818992262901465098760868039765654444605520267531163487723317780463271601231353383249420381610882802831133794501256755531487030042819383845103159148428557046491427651614335099898287447899683878487514627166835367508999990249139295039455999698693915984949435976215356620447062214126560000151092542735768584216542360398062373515760608510563351367167392776773141920190145005252664579572676981220132762038603018495403822820886493919626051376877556604541242451504386377692974159709589881042409299568261532461305531555365318347651360905828428491558551793047931587499671069762905392497449596918982296400264150230682154649223375515108275549637979680860465378333088270115773027440465823632085652185781319196531474062715975809558845154315321823485439451041489931380560357586998814661892082060980851606009981556075807156244674475048721917762832799988395832826776693382209630468461032732087684083479692017472681553156660407957601272898065559846455996944581502412232259402625232208303018427470980604657047421981457862687996936986883295821003015169505384592610799532828084264875948155885342895863208142777868050895460520942301044599117045049941555824266344370864324746154754371378698950022214161013665862917613913331311375375303388214343580424126783161319466982693253809557976209134904056318739133274552407785833430969266112710570568796993948976676173727743496097041298960996798983202081669800893664165101408923116982336561256262869929238289250159128395623050108995346509501207301620349097713638623048578584833758595325412682842567173858429197102379454066954915505304093304334239350411546281227274253855837107230372698793781435641809656197693612463775219380628707689761285150518293146638329828532857398525122422657024047041629964578243985166056847557280539663143622220890749079592773632830615231458345568846099998149315526865913691391367783848283687518524633709884133688766318009922521356941900018984649724512279045125248281145961673523843841342275268333125387056607784481313862769485085535462677502385789557738544656054897360582834559919052361667014058467780245144572441042503451512090329599658612339260325460688306003699070350329693521873899813097221362333006071252525352495337601324034050894472998992221378956526308045032463421650289601535300902041537555876846769259134078519918179919796428569191749922321986895776975821032324484544236472797577573727893242915493048809842089743341423108828567728849428059130775543149103778333694400964276008025831752794461927352506936186984982644852130431794436083924043011830446638094227856053849874455365602415005908483178806483567003247264430954543929420459112809825056170840213499565337047313049839415673990512794033774594395999782053475201030565975046297756526118895198987816965681689700478162165659608358050287079557240374160610947952653762065841096403779857056323010632508960125800561032779905930710460876212541504430721662131893850356957510762501983664588583705919368524155976065316340944285942183630849816813523205934278526107288986955050969928655142444859842220552738862227765918802323295864520795086217839744601027504767113661278776498992964069332175658644574650283904580932277139355947351915127327654164764940797693767721925278983024244279207652765705500184290179230021718843906370199289179343703931710123885936922965177577696466119964294862238281631058094153428743575428911879399016108892676937169751174710496098019584156772210808099597166733652910575065336900023323775576971762311057210341688392224579716339358538624940440589296776122029495237032550632925780893243557208575022346025655519938912486460197282756544616209196994864591313014038908299281059024509731811147330394519880214306200708327376473766164088934940105117873815456459547211780925193135591654655123239968443348440631112558183623654606744035915369746031662591571828820796925146431942251340151505973760196836410965342714109517008847215981480978005486390649959288482540761139733453132813778002192824506760496567711322412150506862508672240252799793370803456325112282346342832035639253382650244923368138643752141891603932910168113794904455435820728134746844572391080110126904860042909580274675811335136673095750591912842558709266437338415842930275505167474259094401020018153027085009643702190538188758762283569839892986109885618099256828205813816068328323292539362528330351929615719751838938798827400216057971759477873766816376211925631394989498947143193937976774787395214499731881487274751981277791267588389757435491271103077717459630676889215305331277944013313258676097538633410705156147343685768339006662235362007239012214654036127792100384391743925669703544462890370819568493949444912909306934853266874462638445468989277161591209791181318702068629204714057496837249206711134885718654155530471067874015720332509862565469445314995342318185163907172124481094515843782531669159504959730996328219657590583807583799540648872498978866620457774177571380016032321101924221339362472650053344355253597662338190478565105600225926689317919192814137540657973848646602119887329419377401829647534190173438353383011232641733333349043470051978252445438389423999895533954220178397836870664713140591877656884825304740946354203774156255285910523100944945557064535884701257114061444914436517912414398368104023504078642285513775884097360863975877643637691641302661205253057013381789064223180827468118106746540479361071696659882710345488434292036349757338281489714331888580268166136949915713511943721434321421808680890815096738140406248039131059578498601777071973239351021070361950300826265009875132052879333299774702346023243118730899764030763911163605087282675994069640293265982267509562278816455819973963050877256760648498182323973138011708204354209700854504956157390256199763262350735097257788805205538105615650733176509176027656859655380204985534285493498327247526751654884315515158034930585586674335509586762037666349980116022293300916633380404932656208208167330845319022872752325183632510361280498587416360629248263899222751335506059910758974163815600274820023593723287643041472712408407420487370312747852105614185443153261851742710955309017686464211089760392730081358050190459135897156651722333061119743709655728889292544838754363151594164698828435046562794665289916885247713216424611567318333187708020425588912315448587738837598824918823693786548023059372037028069940788421906242437660649180088272489440121900160712346983515544507610417043301478005006181762824370220979685605096628538472670709676761800134028467792142331517641945186137891570738559724499618507727163512505449499023672036187487271840822469871888200282025734884359500843858428367409860250989874024827231446004754376356155151465073637813281743519352043981923631443062549940658258687631191672208675717219567709525023449940369739438235066467521445928091753453023847124857186638157229875258457501167888444698871769016313706532614341859991686636344833142670913792078460577270494195388855636028276066046014099928468946572592846098372361177013945900252524950485890276416506336143665334738749188646025259818795896243036805943794166379120395148750332737314194311194480894595231959186631133709701131088622910577943625620569051358239231192771554555161368438612530971458851963979487149038010042205115823327042429050752249552069962358860814772229193598083173122690124431508854334378555873947716739166319011963205164432672798671300563143391526961994269742773036461191602944796115199611911574413213262578680927451586998515151579549312939424494263125539336682017882644454568066431691780119532976228764722531833463214074679211542251401102876200871791202943140072592608362313351973657414589455621245976726163613874225322448769868857167573179401651229637162639866176731080858306257091177443127309910933701448593164543057431493367471510871356356654503197336576226114498673083923269248160065566634344566479810351658017343094202498046062193952304990212958898337453704853269682023895012727234502091134006895637044187244329418524721997966139236781399529602917728444356449712998596558207273343971399232166095729727123226667792360683697221001844285402334661653771315067604905935930045882108784982604003667736956857190867377084346572107870630899250960810684217572897878810489919624909509036274946343310019655555169967742375973669385495733954260714253143567350085218897692687079101716660821570354394740376277117428011891545632329755292163588787865115033572027685666620699639059552630126036888712210798092411249475561802672128910269668322989965120098256662194351987613331953675566711667818598567196707635867757648652601831435897300433307222226463342653660119369846393837509822140622567122168736228992859159288462077749035254310636533410422453268371486870948092575760030053925418978338148104923386664523760722924771249912356556493711864739680676139495770279058774381236371739136656931880966853432585204143134746821227047255969809090213813566411787318174127578502175057632285016085701714398908033507249576614227745942720706407298830923141457632569670121503130528236503948296334430080351288917229840942828554720390654870607733232786284414717619368771537595552337748887303543818593496258737008427195094307050299872595590979522026701346260594775798165331816335124004391450438411837035810807300706932721818978765656076207835682209501568291391724519799681665464255767500552098041134919768238092247944203284781172263698904443629849590787713439463674110685650667025993159543556446807361987348868026892566078133222566606693526149870265066888679696114557011136486182364090119249551165510801096172624823495748523062015801596418655033176605735433232609712681421294345150868871074547889121295410611192065822762058513676255133224822893789805262943415627166810892965762479981145840677313948946968651191295163173437342010349511577450104032918164199053572438339938655696951201486148268909037200591645670104418673080309897904921675970853244423687272649648225913114335760649281558344069978076642743141005895806709644986699021079454211216608764739503945502164783690085322963247102303476693372675078361120704406218145862840449916878910719915373933838942414316387788776439706351756878235387422894072413067440457968849321403370788276251920689714870608011454709420381249032494730364222625920036658936158201323920406999756171470966393470072532180862412256814897776511605221802495796052128599521281700862515551824189973861138116102311868386921931337727948790590550713225958607175184317993737981264683464769172068459182548666044997198689627859634871189974123796911687645515524507160782164657859261884058219217549961861174194859196626005638075742251139314844553918072939251611709292219180396282907988657277903887203318863637913723213647004103814054209423893570516110909407373017819084640942441394108681513026078154696729820706842814892209688975650720878163054624993316633427515105178209427653263898631713227864856265168388909253280710771755505859911265753463368078630410308789320976738533108729515985927486061255616961618445564394240196693182937499133657375832193992794505585298155563762117211587278261229970194883468338423052196697325581275284803378617457279675029071808888493412705103678003716120555740691409365355082926932350163888287161142228138071982037887072726371969825471099915147429814604652457436819602051411978265465151262328933721612235231729237406600156519561899409346500441247076100874655800634457460058026300115742886198455539031454790824865369676091651273233304830251635112383330477225162778859072892546646809911078202652578789542640055735705658687039042938077244094988593050864482317876877651910149951000418752309063342639033134408453854862527634612877399129216624288330695639042336345457755134171239594631811066625886502982923124203951175739475033393924036177977157628730174771805106113992517447944735063980180572612773322015549789844635388399136668488720158523568609169378279032601361740934917747820702013161168698344116559339345835118383926461174049189747426375185859748528386071254095343662012510669525722974592927505437724856383945550481722110461928379308241985006212039716088339938670116590923634870782597985638530985734688317386889414414583888025105884345470732410823254889481194237107887025573139052363584790895250616725769122695689649001105874620021062318786496171167606211063002443331847305866449617656558784496118836610736994933714916234343538500815995030879615432703105720139538695512765365894006981903324845430188749183420783240762963446307101197073478166172885001190159014055131014766337310507814924624430901204887575959019063703503970397416435779073624452328093699958907680121597783939611084385245205762464733151014469979445082185398595769875448013932135014498618798008235232354804772404615377400479422828521012965572990989726081542465353822247183847985907509777482753637346125120913558798220126986194994691662968071873515692338651447897254353874298903869863840499086205923868718100264873572431069992114227857780872887042359539552025572309776056734120859940353271403133582749315037006768174964701032707448372561796451278825952354924578033800939233258055670948579884968864235433625977682177384609898905080310198044004072757789390516592535099514711400579487966638239936270226621715093967544700788934412889698418122344387811558298311424251474555494025209637059824736601538861798571604863855980024365818822127549138572635502741616826578598858870547821898318194504809260534410663320983636472956771183764666110756947791524176057428259495372349307990168735885083092132609607023609566388805890788380392717381126992815487057580041053356265120564996492119124516374940012282438834774098593225124529652123137264224445236052707871479968964309043700097531492903019194110075277819923966928362788956814902605030270728068921791838404091939888920289332136928316012813251541081065990562427796534299972212912779367499583932250285156802828389760028046665170454467752868252627794821063949156643079978606923700296009222903633110147491001815494373873129386172747922813804450766807233167709603532619030484701496232393199469383478745898679757356535285588283275563699990005350770427264013780359947802919067012135123363611347209412132139785105679704447417113287907571708008051534036231704937770202618747418140356122532580015957774404459301607814618224911527564699979994248777356197219585066538328915588175844526343175050916394395966253136607093671586407870469513234022914848729614889971808847950507144799880104976509299996613959707530593942889012602595124800526637376605526519489126556015042144398344899060508104293612123249358289893535037952916586014251774892772925974815697223363280795043912600552891241685376464919467496350672080164799161093679294636262198580254107576947330088082030681924967622011023641359595235291594414531685015643196861636841064097329175401372344989151704662255675910631759608379419134432383376742422179969923547233835657606776015929960939635454603823543367685102070340739473313045868673744030335019821545690010059986412554587960157829986226906527297590174607509215424607900440029097618946697487099236564380169723724830637407724107427148881012108290209935889187349779353492132468597545365267890853624058889254122905104748934377557421843515236649786048050495596636223745943149789733013479934349286275778792458324232117801898626649939556219325269229734033654742919946365607319429141385777756759306769211958312982597430729647859652692384013832032357760756221261305712799188765141624205124206723408988738091451316479814770786551241371836373921056706511525387938709695746817994051872436043049328929503867326277227120659670121321881588468234149249870005574052341012186826439023917714119820255742840074569254404997049592849342666076671616071350029684686233243433304607167184972774892166359036088860269152613509933617689972555926922727019021350219686632501861315891458150506090783498861763504252648405371982131319047531712534541444939194594455950577157723036612015031071714122464920122774464715940291511412718681559915278876054239067387179462067573289701258995501055417228412288304186036983139463399644282403595411736707641689109052553540535414544638043183973084482982520846121577468069639346440394918653183919222171872258583929924107359690681422098148091161514901795728232183260509964969343454269016410601590031781442494655720439463118351395158791228218399980178059759817403199234541971511550282418905683666323190667096320659983828303748196140159718066110767578791200549013821393204387076101553311175936553065186222062419898337720903190912926516348345321871925374594565235353135818773384881894339310340801760117302674867135338210244148593445851951471385636064329000904822771307514613006816414369275253891661778918724332149581237214200641472669562257330327331779798026470931654485198619425636230113536466005714241655449505025598589762293314818301174124295226249807469371155965046082871657292400274534951004335003055688174819015183835846771165582223986605809629735632405224531965316406078645191542362958780787711581035362365658306035507585982004372218697777496576057347790496977764943642069574738272050727206087259584874200466509609022466230203560786548300051149012097378173686878570233207802404014850540148495999960360112559959639360199175763023430095709101943911525063385020489961485883480757577773723379861529587308682028038415084472847880071512631600633676086725051631574071523196645997658784635251351245382550329038105372074276445069301869266870227022149848763140726202576046368514690449928403264982248786916319486669089305866242607242978118591969495021957268407029575746038690027637039980053670985578421543986843645992920320968217188899444176774717342482798519011406686745589995877864880483247293334429709129119133272368354792561764667265993576681698546819744714841957973556765586613464362903816369658289669828306677590856632348554400276324419435047899563139982733127004991941047112960986550660074086772383092967031917738973202285955875292341695246640649391528275542751547808900558674481179787904808414210481245008083714039424424062783026254687882227759910976854934475142199307425460514684648971032301402070144216955307016361032289631921071986548155705527693181918896220745356064194714092965578844771785592263084472650014043448808334051189254170063348611147238592588334387756075896201130632812447533785609736691454578105997283475867009014280441128213173742943599099251092164366443280171950814842142905018365090952225328748090786680558112675908678474446037440346703746236657960198566745809881411377640224160461355556481326549323339115110991849447559592593838912500302257843726739610486071178725898952257039601787798647842358636046689032958925841949479079735442624986570753953514212883273625382277380485057419122533315858892181660726500233038705852201555916871860511982857507528819191836436707026559286537455673374828795485927757496952808371906514835875506511907519256638349705710543012364176898099743319614699726237889256455743146898192566766584076077696807183199680184138892688537340489420818718228565724069861488377336742142190072475464719184526427694136478434613240641726839426865384831914262043614008207139743215071485629327834734506821433457143375646845199492783367161270817315378571526216806689698892043092068224893242207102613205806063699746080412366671387210386202601525284893779545472038864927699905145467367407423814283508757649438104166837814063960759900536537558758600195821945045739882276497367367610006829448759608930324141620738482045604640632422997366451041088919835945119362803682689153185389289875095105414341208039650861264857473772619220553307530159999689470374221456348116198608756977085467210909043184154616308002665576221075547515974280140086445980393467182034592477002977082810940119936092559915348871664555346523123913388754981945375354046774235660847550916671374304059943590451331357851783346967263881089022750987934286577727110088755825600138272675860371205846009168475560731776190443889158158224006556489814978095175623407772149905868257602856374987138138003420986098550357778985418720489110015534105312947813701590576663252722907762810807062774589070585638806839978205194619042952508751676430405845994951361415560628046792645748785763471834709390923072916314674261317193817492662248857017164947179920894835830515425703561971000001898329816122848763948268531750223176296121856217206596857016788005621428865997771774705718211908373383419568085056888884753381268247988208761747168503271727909343593112625233311001272409036140038701339979804992038591013624499742987138943222196653900733269497256532211105183788091552240230765840998597985821064204684540602876426070598234158731858381722664922231226239200132566908528094213725261960401877687847331729090144839800010277064485902670125489721815776073659540909170750283150811590869184472791173804221635636586869887818619270650340298338019708407605010635957416214340306737276629822099078309392138840499863411538189614955794753285897298855195502112102201727849840889046455590347714531042790552694870507256301870503815598218916335454979577146095944371158990947658404374308092114952868270486134837598699104959428785015691068886657401479790359388324202822930799013396963453300748533700581422183552116778277295049750475893274931230552949065613022163613937591145843361662076649146203282862194102689482627649375287797309663212213789526034798373593582459620803840620226010666872444296201799206348600002930479056273466378714313996498445959621264096405510319117126448363810602602632507728780081340604533671594798270236734640242899999998414267344764639440539374570921667021778212779187148433314861588062106298545492959716855314954987821740416080569661886817931456561431059674058636057951682905118358725126434764042085283735204701884691373546777087305232283244057024009199634793774489959085842167460781091075452848569631540045421288721186441868298984499891414298450049887393406212178799467567584381840061094038082021195394574543999625602955010533822548306831625012606295518986516900045955495278575076758786291735528255599068270733400795977382913930776316246767025592642548993920928040032426516732735563276551760173512306052797971301707483101314110389235831140216398785444709170522772083946725049748697841927654232918587053054625292723715486902807734839028711426466547450970216766735179166570062885566628175218007224785671203130030300297989082835767343257698301533189980546136670158544736237916382753742446281578628192479729402561824037465626142295240230314776086189624146561442098222708965976698565040646085489750427338345113650006737262189464825148899930900564439100692750856785941155105919434063209772495261255512065392118040633447384109141933600328755446113164781996217026819228966520248337263252510671329813487832543681416334757052886667427216739213998102791138492703329055354191592978655738771319844015774059039445257879429030666047428063516060051828689954172066475559176500359195699926579855318807185471270255089513651646437416265611831414946509274408410164510892375193998443842623237961348360393720310058338887623184441033742961873475637438714822267335337443598586239666973459322923880910623523354091660242572640463062805253474295981590184268484797110213648514769938221050728866565241411642624917755098062029674800380332491782526361441183169227980089835502790416357950575119291806062422847105042401426494561076870515282752723083928413227827420846640241151102135820800359736199421132157943083523472460004151472453140916977752326527864765734241392659455366636425305195456960505633998965647528073899406223862901280741522120786380762964837288529887597848122594785787766772359694745475471608291433923318617974036604565982198521622533766353414260397970582182830675394754219967904736764595398789786235033227680115620359797482400809827711030816779908231987157750617368661059901962855758772620458434162137131956269587186128028056099369591326814275618065683446631779151660879849493591574420994686456871883582444001133515368450779068424292026353553539631740128958423073480537889674516116612336501310060496895665112409738357236511787472426104845302315325799907107649801020071147000228915082559762973798596800917857070944166039168197144554861005562774858608327718764935128271957835721267681146347579981494941646118356360660103566045219665776255115308880367535387272492220686150626165399709491210779048182654058129890649991560041358046833965316989821772682974037100297273669135878202508299761718145130076158415855439533502115410184738471127087116108557782709936090655893218682125887979998102068071578077541056797684461868041777215312319889560896389374751028864735166747758195432640801479449134977810204888406117741440340388802041392331670384804905542407958315330896095629298656688565716102231021307364063521256436134467562211823577983658006090844949843024541466226726594375900980460419632193532071380187363536880666466459664657977551512852857534867387548850312978942916753800500515993446746800969855611213037455623158015252982445556452844498369448952417135535344034703002996067737943857599865015080243882032282268581747396914187372495002280152594508421166104090064886190724751069949625091789053627680733525608539161658675718440496330287307682583537204362570092748937940047436997421554272351940016743678100161170049216044377005242081926238296903834059688181252589482824721218845598815856658770102949556465944376122092103044499866439621357815315106888353548579754439854637539529609037261983188464734938939397838022588711515786634123890014375867769884409495028067499461917795592334663165601958437948497062688261874553488293933777175122817059178597967682009493794900935730430634364997852823704188029014769605285578068364907860346049246979785263540973924918643923099651878942069201355446065998224658285326111584266382331770232954015911030070348892493344770783421431043036049770458384391618622488307847062574919635873609295757369620080181002133181116294492754271183986703684271092436816005085661399053968449182957946055006629519673656302436513436400926249564773182469109929785562199808694890182345008176923136393079588467057472872659818329643068680540142003369066081252786300450075132117184096135460712079596012383641553702168852580800362233509491061863763754558639590326451873311727294327370761012760333331034510797245227662897554078771930149299909659985427137354075371528954663651276835804216092591161017477854238770767545328721124007648392657504835701741147486362959706883532827081306375222977785677129233093908016068609214288157627774427404615595382870736803889128960695210704558613577439676607880260357600797132635916610063343362262371654337396935884106735890440840063867273181590914957782866904581490697093863549549629905031724095598158552364596751323179841775226903442984124895744420545633726850300061734001745941932512026399151505982614453346971261626190897689334055217655512591771679396595667871017984179135123073458510665312778255936262646444877140547202255984861451829823905955787389615588807001865683067738815719425950901991248494014273978800172836641616632915979680813388129460938968951849224830541354769760181790045481483701362251844721328547048015100607488831928022892865287365821032464126545566842472422906744128943913818141089816078989364934788678893286977436427265195086787655425836605467582442464370262220084345750591673920751469199251694728789176237207658949850161611173731870981712005713671447363853514460239214393657222919858134601013146917472519243993412973288061616139915793552930237569743097802968370534815340565741691797250653096227935055497166697335033672085404228140652568153943887741260922238043485112247835275330667510383835567813880849707617125136606375372748306704174962027343268051765683109165409363698020458938210758360055992636285248138798407879425599329042556115850494325527991149413980494185673875682783341585223775828792284730124653790364515985161574317701104307831413714754866573416769952596238136240142248290101443050044017102167300221617174312535558016160458126761462017925729413359020117410860180337625530412288960351719881930245377081483698768059398283499698536970084992775709740826713601684853084255633036879069278433047417424194528943492124943568171004157021684933067016218548369433108586899198636271864902534887538695075122147464534733393100664554592213013483064077044934258615934653732648632645685958329266452393565930035424070649346499709917615109706289942535598435981835695951237067936665868324350539074982710369965713240834712725703465646983343059629039180200854083374128757630591455621577829099179295068330085635134363366224454362892021315209475811824790679259000858197687718965086986085255410749161065542872770095610737553402998884960819106166519774042461476632374851184782491091886996671767657978712390247485087195030737842676825810443126886260327805383354483936389039424354958487032122436126986632481388951212802567705262848408490533303525687438558420922815501727017106804981083034781868307092434944492093427814816447683292434625552702103306044361263302886469398034731769173042215852110283214838903195852265508883097239352140774591392185166767376945998143249218570599619333422681011155738611053460172446756209068429257188691093441264594981753292189432710561202166544222233215328377624573513091149992594670114925779786546318280406759303926969978442881193228882760462303316680384911259706338942078545675875222518170595929416877839313198353829091750015304279191053424119345389136919256320766501482974348652360336998684026511071510625304895493632974186167257461835073708742109954362983376129949765843619168214433487277129680655255426195877225426310679314477064171797101310402498162097953849619118553963790489475755332934147433674687897141965746392621458702834718537879509232621681433164028024023669914666608447771398215534785839280592232207127781815117177747557495983125743417471652555032217957653155704491680385253805734367078556087392637262940155320140444196315533805202083103313770886602280324130978216837073808076360977747454421253401115205639615709812151144852052788608657462852948109414024051599942491946296193328363942513896071325807738297489627693922814084890681012166817754108895086284444888201974239423028018886571680623602200259353445778390952628097027829391592633623392406015332406049703723003752218446850719654864046815746412692764924971597209925339188721181031665398852088755671295210629319380165387377440727306100136850997463455208109369745567601386188418822234236224099360437276595777960841589855385390758843190861981961945195614976404368595129128599080095686217716186984938428693833252742600792589208803357448148992433526580660880603550595754930344150907782867416200285983320722528835669642761338062561464414817561219880225684789685529138029470695613513951770158663066128048497323051419607319713954240817219354795222890052690279481758437821622078764657181649851530290580355098136657494649896444747378052984224456751318111267357527016042483348863466625413443155583130316743372807724161518573638677907547351533745345836652666218196738077971495154413368346265759820037600827718237790760624372611073829960063792550201027779623502197381442638528499185516190301940739120978609902002076446164881891864898987263282424812668669242413297241968512257775818208822355970357938502053543865974859121192973928031483771913633671232225804767638643562392768310261345603913895126056207611323416550167465236573134676159163500106838080418675659367658173862238617983856700590498281644474421798393484673280069260847869039578806110241706673106710678748991931198371661463719731032250714942197975899231269586424994571909891390232672856561201223528576164436917440347274874938963876542436527885078930388372586405866335267835766565247324850126365470330297198448805476537436619968822516851360462906485705946102102249657391719805011551245324415087622695950627407995074596575727680821862998624967457040998512504539628070296294182744548795867331893916263426470661520239443617038970052519748112983387020227932358666925693688864905898832748212215768942988562098815569755343830670369996242615366732558560272328591271892983966951395247105166700241317626299040377551134212402559778312783134864630593911325818394471514512583882766375586691294179960517585544485415324138222365552409507978443793251774808771516285920298899678798944125255182575230339249484279831526126633676083174752294036716376148792107647677582946554659773970903050869117977216393721745120540607530338899382581679331796554526742203086772246564000045542627650085678355703628259469481908428418322865858808250304371840917086552930645096577317399934971679122984434468500556983002137206291515532407051172873444953451074722589607920308327683559831884794334994213168093595403459011623704585018952988146065726527827229328806287515746387790328811707505178716184448087342946950039461527400108071934924201588395927558879459802467902011267721359061368716721993599433055239463764196137079401882252055327250446270323665127703935978763109523326485907045104883386600338615186853831521072306740435197036231964956979002952629492159693091789172002575474604899194935426788742609296872031873776496515462603553774841747370188896006496510733245181713207798069369201259149521128602821191629912623968653609298382321199687636205098908546077326230186356299997483120502957886020922926883164691340149086566889403798085501420055790497864521736257196990210210249825155646680741148388333383609358406270792657623422047427696997783756823068936319034854345015391310919173618245978860105829800302209399457432020609410321070808710777711847163288855081371980804215509647649853753104984060991602373341567778847705909912206671317555774438885887469261370748251023080894316553382972887563076290073064676271155413628797065412429255979300300238179697952014618024222236580282470432596584420935980040238661392796215019195803325165166502010770406379860267819785704892117250305421572158292791275462207765240975996734124327147707456643005526679549032163324808620001964489707264559145379880568238265179763640927440507333363990241450150056975767974603083223464742912274915024662177703959781336200232057432371499079006927428844646905157874697907159486005240031257548370781333740435082188744178871101626728027707085188714872154408246133667008869842672171217910786743048087498910234405253615308320822122482264539507434844133520960851796673514972121110694316598613553914464105066805057680834196099598033606586434585878411197476190953259375206609297891885357358065452656406570406617648611324608156090409062706392465665148005845551998531264341184087224608090065048532808394808225302991379484854216051275272933532424954853510032059090164939321501865741715766912617556819248443864403776780656294747363163110439340832041504432001428240273276160725188453785764996953367792785441059262657617242809539268834666975771581808152772160101144917733068515978713423841162305720155347728453178845115072186245429909215619946087750119324043352038443782981444917270846703407134849908569543673405396975294510347225727353329178382468337046043455509380932711747343712597603988106363967305484372677124233385518762126123577305361432405278407581377601347722437236733320838613007197507162128011469741200968771541188382684004328538679387203588878048423723266782245771504300408669370731996126485768255279737972020191274210398129730117046135709808479351445806423801356076341238994792183276291176495725710072781895587875369802344967223625375434721532776927417744903574638565649726172343776047720918345572287058813000598670300837844361959042870548877746019419240208476240363235328004760729103554066456441172699251417953235735059079958179407505576074648460335151694361186750372721897502359128726810680348697845019617441759571199999774156701931727138698641812550949694431946924872724911835680338942099208613820164543561118538318143551657910910585238156991376503791261287401868983582013459601119571291070449159741060533094526869727446624511878861580080678807801346482401526417542562183011467701965969577363622325850716932687931390121072280443640743236348368276027114460177567725214634972196329193965314712332622966687168780999061507493145491858512526617517062875375120621494169068543075199767789854363518956822978102498834473884467042272425010208264835024386574865690583073325048742300524467144594009042217174691383971744612887040689498052077472291845686496496243882001870977578536146280129723117145674030586419888859629886605173269325086068356858364146208084105306051899877726196283282850090803317657559665202514234648771041133926580406681931858574675761148311576748992797818113599654539054405169391213126682064380703420207164654017884541251581388747100827442910063216250387156718519346103200265833471685014993003433583643330480359739640230905676402918553723884330860658128317979809828380185860930894532016011211288495353166307775724913952406724838500828827004465217538453903811279744684299848793475415944309366019579770665546464796584049752422297594492572626754131575384856157659431227467346343071147224185468761741448624192131760804963219127440407043453393664674038450563510834450125167878378998387543199392981831614214603692477357551735044230609837489948349296399523853307730065614158610745246677302299624760058168039790953751017043426069402936361640218495971161002372502140388654759151599755625437215543881449567738119157507452747623835182406496645114320350513468283853949487736168195063981704776377771901366327656916316410428560632427038715535013415883811166602321176942176077873581907222945401924776192257451382778864800324382030960561762278630423859610296465155197492290632694155082417391306306534318782579283731136078988720091737894895671936296131397622576068625296829593631055014979109023032954082871851560272142510353219262680030257020515396603174213520218709644223268797937468279934263643876617475670564841942480250391072285540066813623045894762268153858608420368958173476418524766694661613153368588977433671530869141699703379026678907932663487077972334064818652918042947890997469519283942159525804729502209612797915637067734996500564216108244005368721904779600780705178797076236682874731685370736754812597140103119039890757586333740125723629479619606115026895079871750034296504898887514248850907616040806038301888620316078959678524195493221342841157567214087136314176923913594277706211108205064488479418229557338738265910826638539473471937053419229939200282449200316601161862470221410003039012102574837983299424045835342772232442788495389980963256568266852351672740609264748741706330461308925962154453327759031966216039171500646327315913003962717971906313980367239919835242236093721227441281531221420682200368813874789234906543268703309942246330836677586906082730743310740408188690795966200651639067150451065310418677939218132714397158006040226849614221285870555870320629540215347917097521349510001696738362677959560903835947070359471085150583758047286975810004776285305808986842159394212184797316663092628127802234680748258989430187544358945545055337847915530400315216836128168089685504013981608249252546408185485317429511878401441608397067463369203528779239392124400460149493271796617947093628506980755393955996904111729849871861912768836493100521528071266474527649486584126860003487433834362203573681087649433723888633899909552700372292269742533368732631341929206564927465678119569981458244428505625807664583716793012791983978820431724702040945705132583845500770722555194320797366314379769083520960217035093038199864929005225303859632006910031638688764044771412671935845364275709413370813478609617848604407545011898418252135905167535962258467121545876108146974153872523660610943553803305823107243899263263993551743446526758094619735291917480021621982098179514681780888425909432879846399975457180642083183575348542664745231720003752140537837702692146300322050156190303922063636535968692768050736322647178147351868824905282042467732290253348732432411295954948161300267207396152917000162173649703219073394702676252105098052931521905573410450903588316548437509411951429588283542541564746803320716031974057656110881820510835488314837313683000503069234812469003460453511442776950735138878614682552305500668966678685845802869883529963302548626225127762898423236995965235562505267220447938783068124870126769871415283122502748746825237839240712230346821434270518760462717599574966699105309960804515160860615298719342360528613480348907277812176382481692951318247131138908537798678747193415855135362650023929175710161999898720437119325333861684004734064627966023346792217236562122203341925326672597776564259822327305818024686651043018692751815993796863022357403396213420082071359229639863007178221884348392986563663092448444245056463759475989200057139052928760074562225308976533439504977317493726485529058512294010644912489150990543643366805368038468840624905040169570110760123188984113789437314416552763474385719901992740643590148172708000498164919479974365856818704962896857153858717727376228379821320012601595798038509323588068014158440858856340104597623339695585793531114153741867627705712363311812432970108383944216680788777544313892347748419939030247436377221662087858886863178331853203600377747453492777891939687887859584429727960528025325512592856606864792282322194016935688947705803272917951549647538627918667669973900051339389320440720594823676948517705010165939955909277133403920214252284057620219719423572349460301614369333323285843107301406790483376268683828283353819663795029130522581715399551863790691439145786872818283624305146984903599318811863447141707171362866394998011680815223675507862687851360132819525433011967183668738644624598868433075116032089087378176374048442485468287174239007863442180942450307579008067816784187999671196147874586620408390285927863427839222673811679859609259407903930630808636312553329984411139021918983015258866821695154500144601593689640389081662101265881879067739026630744107924318516889124744898732386477747334351280610574037551509647506138517097262497052119961911500467960666206643029559546800593844058338483285620445827649030112275444224729944224180868598645314934026080861431787811642432716646957266361283597679933955698934378678076940142059924034764073074003991901559943602361486263018604011373611335790364310544888358755078730457943588408236484934933468226070050705293335989712882146687136617603722027983587038182778207823800342753503935215927633352380068543807332330988005736993271512673090677724684330840278018294819548548811567881890177810253451996886277987989344135166510766996857730455551548702476791934719591249458336478250458380920109083705342864854137390390089423555331417994823497161860110073993280603617216002086065686790032214625609138006227358755459803213246361462196407089618872180680938047267411803108827924916761540975633186600432871030437903585078747756504927772773291870355001564076132281284223127117694600557074086504870081582499111458088743158120049896876209868495696004817626282252909912682459216871199352637661760591723159446657965535405042433409631559361656466964371981142434565193954818591032012244846778505222223498486535835493004457672087792634048422397859891183076662787736084135912157844554586006673889978981189142123187301525363012251941577476345173027698712017185333379311965873632721798725267342627050217296711707825435075176945619287186702168585462854211453843778632870067429631907231977442814064728087277178187639995424943033597247275101002538591190894740171865416355511735499400532097823542338367081149265572124855582097403731372276730774092826729249491686192145845059053782081596154337346959636151411111214238944845512911233296479564009533010850297969019022948067126287827611639095681827359311104249962970219678025292975008339016730964837586418699283226243327712127942049618358546843961276631383992621955404932865128416062558223035257382988465093847919923021146500947274101924516267636716318638231492413331714871986982353404150596338208607697651884244105749178858786644640575115983588286034344494403266726637197179481516085196872098480448022257196322009234509873133632111661547644566817636504705556427501663253107735052066721260084035283168034575304630429091178915687589450245028550364805647035149144153502310205728997248641054151388429835531844368430231932003365491385078440095363685246493970266550474615308259184718499243959748429128789592815775909905728590299300138324692501862842013561316110257637436670984541077699341615119121500923617234979823832511759255258522989088855217262127321591247056448761412693711789748004782168459817472784109682749825526883674418976362075007344639510828825482496300738992487055613164560447257268676233217331023498223532555052250365261724576940260717816712687529421494612889267746640572200091446221847994048149505492458342736257593723920761382497540706684385746392102510424001076855151310972203137498508376482507570880937258773593880580088783918469288198353471187014590385856976201518812585881540025965563298637676455024250352245516197008319830294124261212051611310394385531694556987079525474076411456216734840229952415841882907831228614063639196577921897125343998949910502137398102999063860862744130622382423677768332989408249945762814182557702852854506288096059108936326383287376243178187341846225432415867340065110312570300188408279659265175815460708695242558043063228013807666083661793422191677609379134109875427017272496303451975399710443026668368977687077688510669166611167902585832747633893871859392725451410959691772806553400103770631778478367930395178948795330384147584926226257343370846535310102606320780536331160291176221677346031886236079821225099144279059327457186001767678166461141489742493584742655324334625008246609993507402619279675445327345598922761279466214202599045502383200358916294667762198824600227359326963415253297760950061356936063001629822099406835118683052166953354755880991097313535484250781393882826977788190932659443997940595293867225993818001435458244940223019027178649179613661302570158803140703253612721835733609623749345110847770197827987617890325295284850780920595663060434693305731709066069026449987722824810908858023582198670634552867819479558981989475288288963027376512237346904245278365565643690827390200167589663457695236700739663033793851732689946974117455431462901104481283757777940754381736347790743196514453427213401568983114599507908094094750612319760690307236812812209146977423317345401249337332857612967082057785480944540437630565924584576647821653718155456013486107874072422237892707968168082046000996435362933580545261282477957898125433669173249620675250013594427009310485404608302268843542815423408448790069199595655760043761465662346001402185343173220017992219327773721212383973956115179782351948771330594993953342465597883727235338475946199463196589331601140395685110777110040160939593884695910232908145848985355733146991270462003537116231806622784320099759411878124151389947775073412405552934026678466466314860859579712463670163611686273981057681735083781142893907588229074866357150381491644877888740381307408533510833456955777744873325669413980296757130505307520819772075235788297240811660146843188109474843495840356989235966094667970869591868257200326556585922003391825413202099417903065664641702549074606620410243539368178525174668010674606080974647910850170450213838681012761363598250633968900838108618205094877471261699215435210635241195412964623183241753587061953037281660643243509221477842038780278504759251978279635609148150099343959160738902903477324605933814531929554585741904746180772536921872491338113706807581940306317486469960337497264226596091035656277727115726534832419908792148043295830330755355417161366201941483116673869680135835241172151943426926856495858419427090273437866688874209197944969301779133620914787789089843188791349898671202934332035696478919730635245053609805687702611059341279447432073593274249336691790297773870171994420002158570652299872964133600891272244401288754674277806823867193371028608891080224469977381488284372590570742739240087182274460099502608811399868575375503464654474282126144321511848162347301833804230556083361981640926829242882272111839284558488952963041473656625723342917164235245231981286604613218827944316984968829997263853776433016314536325523547494410113114390090464977777205664472103321291134677159540935548627488740009165711304767677760251271779884546799084991377340094793333198125680237611777663223412535866623181141144874213470666542491897560803477600460851640124176871410429013317855874982309712088123295325104190792282121247388043916442784739762599720138712683336405282866167952121561146938050851137739490968160947606816272996051133436000793980986371693324853556285051498185962665149705610679782136030856991908668861193973396646756701641098400031439831481691685851547213882257005097063171201400004007272444319505104935801382459818370529978585398765983348957222743303432367845497625910438896011165474556403220140525850204410371824222595695657148316174690402324754786908971181908403940227361756583615236606075464783852028659202159460933044573832908727087336625864804012932416220057904924920454112394492657853047707000668923780961695110601217509862493916862836182995826296398470782184321950810013581054689566317141982863050519755590020448750231987537229338260977069957823332534627686986463005065310814712159368168234184040844618839463721726636921863125353360314601723004234362185398136596756728902491277054960567018707750954733133765166805169895313891922669727123093806178873368446024608424603463313461628177811422565610461434847831253316176001469501007728120099392017994817472211112076062878888785845902749746565826835894164790057483139139006862317970982987368007864688297961912479989395979613635534143758738695844715674009671882755858501984397877696005203693246966565779856876611247814799864150693972699688423936583786657972330877949049424892543419747881527943206953230661448232319018981871414398761790770194576881736861442931971430951670561530857931595346612706836573189131765031359960552855348794428672327794891797084386082622072750191675592086828088284409751230895291667767270265538568372338721044921144038993823182895747437905782735029384616512238556907709166423369861826457124573519145209379500155788410476628307086942295508904969265122310828783776020666777586768613835261435125607559939507984907024212695215083432446237859725357914995125156379128329999124791392740618072535193748608058823478516632716378452246512920963390009378828098028450803379314499343901818554962451528374367412626613948805106153710709634681403695837000860484404949143427028622349858412789120011769731728629172596654560245747857116166295621472328724915666338005604456352387191530641191304693428280617081714100317521932401117498578351051078163228290517126067678186387676770448433332190354378827906537507335141761960488982801173632277055199592482413184856225580776147153862598098204725977473551239144779140630780955562203312167019226694565336658354356563921679626381955515549209082829302574478639419867886937873442724463028252204446197261270551006307856563144641452185180193591268369974459067401812873852596467720924181083784336613356346831340956239964059653534728423499176399401369891444021544091454795732400964302084868967561603887898439943440813003713081726252948659781295938140873876593431068336895540466900328231692731689997567429494419206111005488757288951865590656637594749763830881458616208797855676086844368230347407392374257971454193852930783686143762447727705349108436613494708555826212857253590349867320307170254062949771257668775406084666543560510106335664038179243736888885899522926193507864240249916661672684850697337052161873777156890706793637679248902554890316520973652948566102869566411213475390603829399967424089407853448693818532690308868618306141081599570122637243358265570769557522037044068863575227067481672793985198084543850833189122682549505923522478008146177435001226827742863680156301712174296848695613490872506567991116782452359454388499987080055901904879498752094306644326073909786657440052043759828420289246470022073722981925108917423169649114610565687216127137336101718858688846970816216622564386984991639170857814725755116206169970112141838838116819847998244475587519076049981841322165380229391324974122076223202880196332627089348385168254034538519628693508122657517506303675448993375128567675662876463523685158410462234690099749816905930821994800771836918381147527865058141517776916959617129442269986259571529323947191751717473833621544213580392822440182717083923387952502489959745299295307537195629723558163342658203529638020327821704118297478555405333933786388699998904872124266279083077573810544558004599581228039735978144800403125877191399777727614849441919120005242526209486787934723490296253766973619411623811223524466595145887881909536840241686780427353022879837648601554165903390346499600543363637284374588716935441955582940672090820175713651184145997827187007025215409823329045148111203549903871554480731600843859741374510006907224024471419466953565232736909600807683247726162994834419823813227459806052243494075040248810678140062742523198259262698914066857950772333662235655492209664898625492352521072427136912490673183921412950523139489911588717149270608221590352782450786042273962391396553948382087819731066452734844751888892442654864570624852667626830203011731629465686302654130016957766233064902693422842687672590473090959922097580302313862286620216982566085213730927785771375348825828599016720638696637916565880267539361772548740414391277560449711379757973021298348870466596883281842091369559258326834003433362454896009061153722791640804514090311327540496153939986730179660202654920010078716432357882390864721591335834509142577399371546027597532807933236861018678931908210860795787252014550513542099551623920055961305645194382388369469167602918025566448429606610159978307656262233905778933737550445390454249909227765694263347525928072624423811654242853147559447136512725139948156037518291167964288705304012546668451657822337257414159917550711353539441916282095018374123972987332981448441388054049630117528589665853730514876316042574651163437666581657415909457083880751956131715709172443623045053503522213791228228489340657180738665189984597935410642895269323566520231400829647033527405680501096524042444427011178489360286151664936109056362900034065327624195697745606133449933615335714097709504080232467023983704912605794041213865521158009081760190172969148726299046707044135369514402216237781287305192754502004169621390420393507584967004602514587112672816980294282338612841409823980207849963744039370441265123427876023805854253107748323210133415129793044986781446943271294528766751493402164357730414329190291568580639866102025690776598289883026513800503117647229055050894338277381192879964161896149521092250318543086774868255778969894172272223254847593079672447222761551061896405483961872530424776481092706147116606929267820689821766095378773560228463946843924229163224237611093522028314330637005590698931563288670137297015441823179767576872264976606371996733815000833121120817146066642503582585532529814674497870119382639208611826815724830897186957138299453074225477905321342437841020217948914389267456355327274469858626881168355338333437425572109716566128933391264255326047780442940411620275399187374940315015843039039351301721518033739728147854591519344473390562800586422646375479486796734448769152101639828634153650174323729225994302673763633300603178500935984205835621113865394833061870619074280575210657693832255988589559662763922838559369214457805102148491691376079587274245627547563516687453091273766299282206696235718647332174343193586179801171795382604843066786479448244306296798279412824210157650819126841456287123875112229192758436353536596347267151552728905450981076395269322126859168322132239831787251638272190660619943926906249163290600442207571097106685463988153789997506638227343559141591044424440040459561847367248714307265485748234791843206821965761488275614008169016780752527799033555963699485801952988225420693869624496942074924520186181048027791978166149875909392058982488908134000942347087986474976119024349730203357319512275899387593038489950403023905872238703054589582728185769457180858308435598201282750303918717933465827092983669595386560808142658825405630700523663759863757917179333143498324106159188510828615317041225921706690448789209578166797878443545927839723437292318387314745110697236080766909897406175363040636958567019681327436560926020039512947968419950771111887456387609122580438431768945392487725767988494682462354186968279024442226422644632977704598483775245657282879151509694962032380602604191461212157482516709459345239736716348645874282353233009467366313321778501195682258695177589118320245610373157867887211422129348929590613238539108434696001672069685456794594444189418184528017529221747293014014327458773652723622658819067942045062491790738588464947208057387589162752706801391092582100841932746980912866252119116402014015989694849208375188082899178383074901548329101470330698766136405691653107686409071563624545539121653142152206695455480284099653749168521457228773907613986242681017072308380484888631104200479182002623894718297974451524852596984962714085594938065762322240455096075390556653304725391108086793897279897031665234465201877466712503637344621288838736422737933231694384213663035134672216898092996829854887109949485689036496430389761863748759248074776288533555976381485854401549942193048020947372743394563697593947903761189612711883467647826086341888707022816307336076801126915663638695737239252188902733811038263122889427826673381760379359709429079144497944094449033961627717460659979254784770559028837983434901428386777044162190495562544473216830854160551859472955313426181706975303509221718903808907900325576332920994432755161851999499555687076863094392047142599387951522475667437476627927378458345746373861731937867304333121576973665046381216191662434486076247522567640843501424770885063637715903467197395932626066982731507372335410473491390235929880745779682324619897939771470274696200393640445489199555097893546167668038306524738386495211432829530759232818303317629856985954391337807245059510071734837620753240595132080732319245637744611627595062004633072918991835055213829051126685386795872935513449636918911097902056712727153057119908834160332526016134455404490446821665759161878014860053688935787403193185209206014904994483128023072539514504285229637497275288177178030552121146843413609424651619357990014492528284284837018158794134015946880131470399452481935339052232720783326176255373998656881692026378051013387433905321595797296754066555415226891121721242538558533368520077221775376722950798344512821339077667240100345016983590454854698982281753182285288465412302011020172824833252421826874309317551654654214564315703600828034661911220527680949696918899254983259003459474678838927705582703394602932057240203845626080969060753521688297077125654785231349796075994307898800651553421475033224035959521143384344678189004539288190439618328382310432691591567237491753142259138439743700972777964621942341740192833458453556131170664352863693835587065242772958014111481451169352406105561353814506576734149671911018682167994741871615981924131414831393599424396453799369873070597582274783298086201421130842993160215050953601716534521845304959919153799838229471459566167683038825922883529429669126267907872749685426705730245762708041417589951526329472738887777836780470509913737992650810385481841601671293951670321141193599107286274073457492527557491062108506418996530287549930123081309794829012853426379906195725643667486732871668743372831719979826354723345586357561847538953865443280937277483987737905379242571512056791821520834314903754854617016964822086230376198528367763063328941748668972589150541709688657748998925123008572488972769555801114848266514757545802654250658492050700459121822904018718413939714077763557642856261548157580229759263024290562928533081122859224842652673558608435632601173754075381538639934078426779255925717931831713110162184080161252762957397893281954697160902774479849860459693659099846636258447184047878638419733610382149403772860470105276969756622665128816047758852136738100213933300798826511427296977786050512496978844213950958923574036352718222928444877346961058614401647506782932779957250946145314496239572876647826559113997226760497482587967946374569253982329298452889000914937993607671311181078808153780233762710645056493062963473423997101665457059045074939409811698454554907029076245085790019380832173807356512375648949122626239025156331125243958918390257532367332526319238427400931174096280315924965821991102762339204356614932621902252432866677313108389339535688129537124846115048791368519758919209011921335877337775285439366180297478560914015895681972956813388083012414557524705511078665521975238758481850883323278988240556101873615563010878647002983066056756422955024386596929510851480610020489578522720692367565924666617300641160356402495360728482145459515379044464439158737638098854161086805877366348801852158789990507555661069282243861327612085934834338208725246275946842070823820829018838529491671137211296863806986878694910894576362834881847960780878663936812831822671120515159137980092665079564386926129181301738287213621697949914478697066319836886878422215257062638997960160601932046913415615851966536527775403987435437791923652853578354142589679275442121887149136740612256829786945111441055468132028486764986731686548290366657509610486566269148309705916714950818583086867091672021266077433577679648971330845341005169135656435584496382571351749912651154561659152627536278164274635931905760695283000784842271668184951444338652063663546502618438584920960740608072077100851983729176097115787501581067064520589897401883855440612084184455778692957226269077985934522297472362188516818852303455799375160099211313251482625569104003618163081938293225609751518152662145113963324191967119706668707808939968527231528488982108405073972365124827040688200686312444021351375976846976050723366303130597099959773119454326822108716542078034649727214249056027636741780146978064404965348438683699568193067400775606345927816526058689448254444460956336878647317795129289050120221333865825149743183736519290127099571505144639736400742972586231322635948664586201784895088336869858398498034673415517480037576360197678816531980496050041453163701907419229005557432524155842776874777659318405631264671209857484281200874817247129226962034052698899456550400429298798007677949290498638226895229679190535818450804475458753126814710769615759441768976837783894763847534506176453453302997872633530122824860690947078934597077513363620363339646382244936233568847501402000062031962634323164342441998451359626498471830458417497948043856937954120110493627451459979149882041194572547603189013538317579989351655139730658897338718534494856923494239753966034857476194951488579856326823647045365779289449476301677506172710527135993104338597664275558674706244429486708681636694821528421924736183962806950339396309761924043866630390880127045237548179925513472310364826565861812653060298840352278300688200024715017967332337359923750754490077145950817792369267233036539416586296125969313204431666943726250366454215759733804251419005022091170164963907375976793938051090737073363807549946601754530807384597379159133810826616148880539553028745484369443031825041389964370677344736626852333689105024541620477427774495125978529471830930405259523315932630446814115491952831782764568142488321842045713108197728030469748565452316089873232194073109115562866498967255930160061665166710798119717159841006184090886925015812011834065774070162420369368949434263260069328575966219509315578704180328983024195125993003272799610418043268542623124983100995566829280488700826613748906330939122355693919920358971101799236450928804819258019713905958061751930982081199061656196428477053007790273016536123170119654181511240564100607197714110964817178426191385605374011529491667150200157628816349096813115933361162724012050578851413959168750803094855863365733495415238098833707247324737579546433474911800604540300964342452151207716218930938351119468180209783028448490856621233001136605872388210416651365847983524475817704364461103267226518511416338408056074677153067902531748736257621715383794896213433696810564068473079082493524545320831679785428465960842940861982913829885926365139321224566728126782000645317061426273015378460625143969067250559256069037298735995000178574407718763049863198107860994042086871792046422355446081320382679014239607908771066874765769522264670885887638200793717794597346259846919344523377747181977700185346823643219102807092462586241915866010774353020158953009031011789906796617407193379855238750562583990259172336474094905529804148492157558654861695850260065547096017190056329588627513093038505233511063429003815326953481489549135901928840197532487857048023257040777342880706458497732519952948881839203715335934849049515237525998138015947024424467481631366049779576110419839305255717493968247935280895776748766416064245190196012275440612294598543488308994466084471745951743866103649984883209820503979161363571338464039174190457952506981986413538396012224994160899217955040397310958939821066398582296960926309204373428876883067124620178182883050103695463956029086077871799655535787763456911371954328326311081550903883213419419169559598104272193559729501120764461854412826313238704611147894991098758799443051328258902732885150974482891381415055445063363623712290576669882491421324147850300530385957020354293358935175345768340491254043241924474891321383039458466971597412803969470623080521617469882734921292651849897998175002320941177984576633733973231347337652404451304556705887607390879437803074376070186562133250108892101660925654182720907519366353154779326611516659381425464876719074869489573083160617770369960351061063066608204197865792693764432949751704295435366194426170435193763647995130239328465655555949397768853981282624570359581292028258272830609831311557030107139033527802871746131364711396026208440403164895902044737471709811954085274937499111840433258357100362467374579508231641042008600111402693734857042583523251988550421730726660953014353605132229625358166517305290427220471344175416628997100616884462656307188287884264148351688862661762055823279472108290271254202233904977800216834226276651709491545995862263299769576127334551976857365511688555620791184941376956448298574487526383385758441710501377869834492694634139449180334077236786449539604416816203197888746863630654115220168674534202557773539854329912045546268656652702725426871674859826262190015890132554430507202435117222228869702036052803972057414194653550668251415793384600479150029432066463476417678357840559762644896820543399559757387220152226847438703272840578042485184371452452778898594586306272668382933014139509502065780764781847848446957880380743370835721815649088865596664727862420091823994539454171399331619166918476179542553928121102425769263393671575611961184263130637692693378243906392841265308041564113935426790866502841295324159658441497934618580803736516066533391770535259319155112413942785917294560375026352265227715512252313431643500346852044634634054926226184866777121335373160554908177609132751940968329537104183014871832336362522260115655045109410094071995134571677746642943780593616922681317867904651220495687967136316979971697940225442299026215247429413423109904802122535215045943211813530748734142136353924982875504990497080210515575994996999321131158438994434383244252794457944299819230464195138476810825351303639026776964147646809363974075189315205786467285277901722984274398730907494788980901672720581026224155082554130799011864154830930966727948239317494636876429673293776635655154405406819736276458500201475909068417531474267268360410317239922410866938569097811450921411071109576199972051563006835361981118014588715289681240857444361557221067097299527890619655042982861024489409369325243651451316215284395899149578634288956811348158804659341765901378898685501962365295010138766720011323685230310692566012256957486270171728699403481304492409500516103744799414206791351986910263960735352496604075477551037443777802581937580568761481483024474224669071475605133765490760203590805596165329463515034974189621618266986955142226337777136568269902944304977466871903724225066689408078519922414492934939797613523693254298895841696862535560177143427689030328442522473370276623809667522502906586247826413279083125251983584457433252083098036480622884811129981252205926445778321001371105390338668376703463403645078278141787959814624141811676133788632103329986145179186403965027980173761385103854884813661501103175077718864070092019802358896735879479429556897550722412499009205325096298282675110503743776099841343201503125839160233367861988369731636380814089617339007132106872693173510540130913139085974573262753925405104820208860292613835332232982999229160531622580747034672324320241467560027715789571028653417393681242751873415368176673052495634736968649892594867153415928002491174242534686507294601484325715909871510720100253415029511610772808644023784955010813120498930822673752017470269475881433682808843710614422993680801120382316802532786151309021558211556573765771608670131911028970844594682696180216196562706447263755252931347472634249878978356656479518052300162623267358996939074537677586303577321825591299380014635642317784052574582608365311807412937744344000171402495859934758881321845696508980308415229355374845918241998785200665220126183105753127811921217418790698488273724116960875292474269219594172992499181253893159005705057939261419631146758566216896713878443932574943224240452872619136100819845650148154016149760082427304610973507243428645944044896946126679803459292794050043250993605499080542290466143839902420298194954156517371429174536428603363555650962204789576378914368293691738586912067674510305835704238118264931610253949052035843531558022218868416923720717184995479363194856583947081728269165755153957792293119183890750108169245461102386032781661200712458232517685043924323250357534410595418069134877304738416825434005504600687083786012440583847382476675796932437244813273312095168307787872260455422632073950220524744501537698177604898188695375412218540901219027577530965543896450113427566020527832427541562611265675291778789327594652565375305822080526015965733235818852957671129117081706823350948812840806329831572346436012635938857498494457278176759127500476530608779400065504071640327435849001399079164064251198968047142330774566125102352411934709211956225377987991871472411361956945993796780612453950142230486987154979424771559219468006238762983700906417061718459669997341103952550691395642550611340867578155110885250437366614038985392768886554956772412806313703403481783782999132477001063937940198000721053153975546071069872189639451823287867470020979704110595425545244292225176850071491754867770189325688672322387503563669157505327022190921844997676455375810686312833060951719221271082829665909665207637886113182351336890509677381601384817571224223649831173357697415177489167565477792714506493603925459302638989770886700409240771443625218355501717414780211925630006201140341099846781900421449766164696286939927143269083539769386572895610132004095659129693316756769418434213187596060444137284484913613075343393602927054655712524040310579186892523924681597440127434151185712877809310717735165170191377876266997304592331260900412489042973473821511581656449747316953539047315969768791089882376846442815497895099528973938076237040781796884611479218026114205898063471685189857056908912788868864382836960433494111610425310872171413631953535935754981198652963316189466927203790878709704581706479027568330633378104563163191037694987859005761404418012339770304840503046352967087792866347109354402420709512645444449216072873030193894166875425661367951303531306999302371290735540309736390693145659118704452052194604971764875544242177544385478843450441347992372720863082341764385731952047095542427463793288848783226500725317580132967230385044021814002236175161998428332489852983945228032951558849772609898163873524549954992592699642841204311603331921151595593997518642315419163610807945350290749944189168915318638582676992867535019158732905510541122419429137280705180527809133218324493891085698133591888709519786307058672476499532084696395122098782499133674126394777753033283529629176579537293757911308322932037717918810438628578819091990350582700724631264639559168824366045112279092579927533949463365120342539265418133336224619639254718822341428776363120591103668569835957961044927305447189641037998757698472484789337648079639236054646146236688128947679865960699669524930948900538007265182528746641336673396964849223062349744533858756394337751415511181762616437389254162225704647854914106296308656075013475141878582844259978607923824706506833876852752141999426050772814010261438530163848059621015727157146015571129188494855473747658694357999402215732736195602065812559640686015184108155138702508700074875730162129603061813162298918182025246997265820151075193454101560929930610211326747481868080438427604438762840130204608407008986089360232701086469853419177957614008561612353806276519373011790814583060501648344952380292024936383287792626038442821858797084047591277637218442190012392610954343969422273080304022954662313031746034234087083557808566474798962188659966405020219971608521435356533265113433255521948759521307562624255015535357111708055655028125581620202149258859275322271388436785290591716327725540793401962726952472856590625726681645396786638542494147517522532256530609138973269150462624490333927617365363766507956812438566315278216975788568034321174404635337646058720674005668370684325894678606231429674417518697094247953188561101248180153459812502984617492339587825223475262381828364514797595806928639460776179044896969188578778992373052185643536148056032182096327505365375065359087922461005628684860180009153210783770821563707105397176699606572491331765778644232083598278544710879750811181722102900673061024941897796894323512937886999369114017980989044462251482077327129903779039108493198053645300978853600787449141544093292095627741559237874523839807378689733244021984069442814086185126970419821690637993359491003641308824702979179226967620170345927512381742946956982436741201899699274106642990410658170700664836479709162457708818494084852247359612959355047083045697062011728196842467795869261027201539890050089453957761923266816856753407042226026688970054436593154311928411233122465586929538500602103839378977858747500181014189504897984055232241710847806270078690688404210543967953990072819792804923758713531337888004835784406402232275414524947312604793718391828074579126871161532241189136218119822633828790915754751350869739651025457932002736627993380744695016879360816626510686774048881608350080103821786044160313709294164784461232470894060917892480584573126106510636032681710476300881630877759372067440730722053845221013191193064027422033642759181368925558716467428856403784512794570726710413420160048166050027553890595103978869955103747716961089079897731144874913375724250641152071956738616988957352872130360527212289752395350967710362286840893829800373595024971388844795100602172153506122453261937103943411920883621808818367978795930232745527756224755194306828028175602691180894178245629653223391714719195094342480922511019275217010336604689934005348980698859165715114653073543193406105921589136535555202329275530640745218117347986151504304038708771573532200669247306153818842167067971126865593923406954918769099305200639346489343333536087606962920793216140963258744167251440183141361715433637314119945490771912638387924550820376312212717945325083669544524556659353221627765493931591319277938613622032748510867810297301099446869361333840363379704628521440941466292433869681965266828283698254945506836365290780870677156921858320541846205332523643495187882381297281133699857271145989264548673409826357936256055175783328912815896161243660997286076378437793401518030593197903139646388047331407897528134399164463773070157231857944006378985562912223007137779163309274095010994030411170803692351607470819499520332123301541085287527266833125715837664410276691402738014697335130635935060661515042958873442820928726565284182204426619582318791302526324206919229278374332247547034015977739185464489083048988427018937313145790428676352465790501425916103139064874002069283598231294892160032565683938121906419713057322571004998273168435711080553571840940772025991182408471137919029966987755628972920824046523143482508799256518461370688551426305889591066719983241634568095284168962053997158665067626978149712213615681127520799998547036496125005412194509796440385002717164314045714491391331402298852761597967508514410443756120017690764377765977219983481833132549505429882342809641289405568078546995405998941323332623722450056243989278454671552937091177431233878965485842964054614264417885979394040690519110129718453881752912102028327193546061990612464192483541455283859993915485986569343864967508627964328140591637926147807279351023813763164731716260949236367589304959857072375974661044982220135605250344342652147685667726561276414961485128806393310168004048949259486723642656218585203077789005757285693988246907915028735019081659362611182885396223294628202541667297073956669628195370041488380198540029729330030868634901192601340377483703922423863827025103232792019538922835361782310252523462054226437809970047466105066120403870020113361679805093350168042433180903437940737593683611051095274710192706119491159523201278811148539184434561027775494259779506887796307845769494198367384072486312463603211383549310183211023551905860630339908314914844635933990048788197417547394142129329625746538827632311096616870257859761941672791266522396220176584533916690075252130615904986519282805693616068360925809749496072026745556421880740590388675667019358062251707827958676557357995598573973192048971597069114785015742605615806639951567826214662932697050808666645690564440497617178162900303582519509432384492655213277623186058736277882911445675142052331280213187809249834622096316142319801448306192103252104626106020343200491250119957336756384293557215226512718733449381645240418623243507089407720392914391310244203237889110361176052843652567893666222198867108945541981055243815264298076144331026223310829509287667658748020160885764286824159031611314562126074344925188966357864002078487197132693442383457106219778919586443079867810195752640471375835676224896976307316543475964013449089185651578410279246865185531836696133992665700787821131008580931857685702851586961885534524254758205712487866219435797763091252732532653995137159899378021377681053555158041143251892288103472818620854688790757873419768144058366932012556047401223122256742500131522595192423072538699165518418738051040985384311872950348166915382294040398240950466670371361295300699017336723791081765199987536233358406181160306913482016562926985570144007487802530287741921630316406076547225088384305143506421680158483458069546479048222321534941297291840500172982635981765083530867087619158485601267563273224390512142860638342272267890730174884071197518258956765224441250450429059919490207408784270236069472247508987837519412336112248957960838572525240637624894401538278400244504665546861831066388038734988379521409707639816143182951241557931836600706468716325593759083283404706284985509324726958816341451834613491273885167157140193111966373109813284866330988152661034994460320031330828151550417880405062589750000165602002144843247576767452999486130619000450796760821449060148209238374982848834954557731746612922583749310344426163743670751701812772494335773722764039125655810277426784263810280207667658786516623124969410776421004379680150103229113168326472971142189227451344721579496712689839517954417602773212859449381125479516206509844168364326457378084045073445063599666617834748917716481278682411802138729616400339420958188681611994820175003013619396087415202589790911956687029178328372073315367763139147492894893912443691807952934240006308738637281814461465089287070661521219182705927005874369800832525559575766234649503836547848486526935170064949008777929638226118167317881819136550312124251168676778754643860511602879003477682045457255015593210953327030043592973685207342202308686390322819374203299331353659469044662386622882715776270642887236393707625914385037094630178992029572551704893729140574523027785626676040834310624271371277675609928523624131851608539008076988477807784723703637062989356785072247650376821586358825331786967145576216880910632190729097857772362606249322238478730473251004228638718335622164506077462340041212830272248855278091928533927974222370447680802255562966065098572100531265860815597488086534062579355107772558091529190305007331289923465819404109601045012821307999709634735817667508717437941481235080357620462076110822188181204059933965043469614018912537445221100096303708275081357511279495193123725619600777987633513250973088254391634222143687198373227217964102932818892756554888041614829090262120421097023791829776913848147948886184955545115372860911137411025054725173408583141140990821742001810174200255420916900288375965820530915288578986483724327430432749977601369250593237847213069915771764224555464230363909469508959901174513951813434515501461509715192450420948709453859111133106556257843990458048989794108559638797066907897298905421207816598661063483482543901467653510679812859991070081416836496228629040879001763977663614854455133057667843990058365330868290246864309326975239309014707118826783934937172980725294389356137151961967143317657269002585971154099468244351933347557058633186562130888759642265624573201679701957591201590818630832818788287300316587535574472855827387761398845541636619733301993733561158336037119198874733640720469678188649923679245350096945566794262924599041086202550012074348530127018659137383813379721217380996805138751688027942918217995114812130698634573711233140330999931398567615326835123462067890781433218446047597728739177904831781420065830470581321754163609833490863286958781967596848878787745217375144407316511863732510207875562696490613995614203363720884897445714531549969578766182579234937762191688122097042092606733390166742302333836336692378453187700296584542717277671973851505900737237879776392788764423092023132722039967631653355233746048572573678980086918371693379404756186673924591872590338037846942026791268021456787857453988894057635353940890594859222858199880362591037189447699848985328671478438247261664794117764758423724356319970769433318164424074831688867061676499705760440138964241349220809070675516615528936913935803251098000292873396989198374239265490914225188404424072279338009176039817320350521286664740460974695647331219551139921402880772583992204547924190779509379212427802770561124329202314561435379472067857621018779397542042162305104010753344793675901385758402155581398160336216728555505091998061945953474771094887337406790762242208544638712722174004439543715843438894765558908310503203313480419903910078424868296946682067103984690162437373361102805830941403549326511714875884771478046621226369527491368260407096377486187670674808704382047600576857047402221436483145136303698329048512613446885286520101610486308131845537784558251558086510090316560943760049977033130628095734637381686621777603537068193779030991602760638026350035937099577099473025491517070902872316847058192906524563308291574944061086465870932593384960940917171881804236846068208877474325910102145493624415963457701385054284377118723418301997335128541804308942236842202147585115902954493048825243468941945876560918698851469746247085879275003952346353472119686938491193252576750837733214071148715788427113751466308404283081828242913023389630155876227877728360755280355924202911096650608014045304277683463369301348233174339106335253396100071298102053452013480226888850620144665234147771970731683730968029682757499891220165276202867390083936885630610981856830950902417680375404758645477681778084811450307461377047088215394790009724250106877705182128896132756286656370919610192007339690462972717930986023170320687524057286658607291716294636881317750765173376901057991550083586093076952144303532226205130139100721534073722129535212811603718187444790080865836329973784819974051773794395946759815583662174226534766969688413264569372335769900862141685920120456261605988335450618981999543072967966082828859832287310865485273994298395930376525706836803299571051484081336248687543397076377055555621175350607027158168763270532749964984358050070596778500335822631067746900706775320883663659468579000695682943283055252997691857313012202497371536593885433655304800097884575303599325747067268814308941323526310261469206846099187672143006056141640400657510028993765489469527268384129244442637070673841182983926462646050270115289615184491597460545579108740285469167786626167779674396828939411028984617715108207109166790643582205596401271144937189935359637930753682277579799248443769888855171851582488338504758109678811883642835324148818726301012993723904942911158474020220183987948936110759567779933804087044686214665649033895666637814896644560091708419941489410784051301332686471125532269411247467392880596866637302977849176462462023048922906474029706267909135933317497603542076119158972554307031297976474011362018700372569602360059605865285525987960267663181422217449102752782447752020526139591031217676241856835878106698501243863251015778114900015122419963662738986149698166268944774909039410142009335221843037045595034660917426849420576029930235049683990223335714392793443866322979459216126295158463959096363832869432443971818867358842060408613589189657465300034361656102418596469524818922858962067032569525415496735024820889120470576336018444732420269606061184390663148869468542864901409347599921683727518552159363429703373296071412595505014392275020793602045349448684640568681576035045741478808665955961296346743638836278839886577934197200186678966508268593365040022327323620232280062617215143038237712145237087540339235719244774354584411116446316828923599459620539141211574099258294685908102443244401549241443525842568873030175119647174416057592448192963055042560849039941159452041442238899515902032498685165914494374536598251858792215826018193541184668271966138907947118432850529266483589198379475795662009851727966138310721392991057130063658733207782552700240053906783687820001389850287760684255025440304160870474663212814268149988603906356066017026319359345666223463894412549363584531715801307839020495040615341889409896469699600724331047658138717219750717430380170072244020877952333752345276689132947589785816055184212303220676813131399774653605356765130855418353508857138576604510265052203860130960613437973089341314377552477350706536351846414541379046974649671104895500973224522094198061852096687191924354018653059934019864790825058621162620354284827955803676135693667927806533133197968257074885047463614667162879600226946751293390987300231132253710031530994779299006405534512559994763556621354523011812968081400802185777471391598147714531062981693322416524103599090991634392194207406085842766269469911762488503245881610605927650790749358973608202774096081402040066670006102866347022092888526016761664922926166839355141062908964492291415461845228017979129293435372676471157725963343181555136997628958380661304927062009259514549081230753193057989786064468107957810706553821643638900774268169834187866449522612353418929911462387221177569141983999315592638544063961262004062538302991906564805134357969985019419242144737221037978036216392612593117157635945328861256137647975288334582037202569034026858454221585113616411770886241235992143650302116790611368501584799570401786898006259348548656567815935293949774486563859020562048225279864357771492898423958754082664088414412122352045860207689708973510956320693180906460400532083676113091108700314020628745503763432096646385780950632673107207111837186098468609430928136287042319977352331186656276710921950978281558762343802600109055583005627146585106411591443994936123762327386676860556798069156135755150190868472524542811999366546221563692708432656515080175820275344435813057461798477564046021634716561835100167440561737017317327596821602046975860825562303853568342243035783043189566541031385845390288105981467255214057650639227695289367410016205349960959987253619408925383304957118105767869341492071365650047742376218767894358892773127497018406900842521124178243384532967896353156150716102059584798423175000498180609944829216215289046501118538587068103872753204575103414465047410383724587717467631708849254352410088261132716940021265705505129504494732127941975585594651483266954464262373699967127661266648914633557273260773688062841486264069062347647552208420103826865569855658367674235255779514108989971999824952328862644646789843156984774363206822886675807940127133949589619759243107013858115950884888540707955612655031850541362090601250430670879011312506132679123906289812370867882540119815468178981144272159729008636711091859841171604904024496852672436783242607600343591634536966676848871181167362864349803502363295124065183340751852376803014896749623035076746504146085911029041988275307863294303840438012427651189896251440738029410979524071689881533920383637471441011416166559488063730721631286261472886840614697040569710030626416046325239830995767743681805934108668506481171883742154377893125465819853835110429300794061702124330320425847053865142531100206923196645721614737203771514858971084706064166042525763793811458307713384009198386269899868497687451590487971526331526000649042867504075495156855209578761779747828424580097812272839220194215731251540745907782171116147662347646692548485095671678496973485594125961460831028190511582787186987130700078072006202481971032382230941430126037849212071206303637621190938503084420523912912149536729677804183615407219499911740239420354343595860619798614538108973575513310938263253940690281559903163246031214890346033288185387729657769089386872913940974180302206405891464395276291055305296372061014075071391362827334063936148022056699197198483023300785273356761193111969122049735444507187763034024783503509459991942418649941495754457521623883721569442118687073953350228813813480756124797474445585841593452146257303844172805208011859761961315586007876599100059719180003246400736171936857405737879413993176756225894085752332839591411662361964399924209925493479877438161978493394364747981251406349051265634163022935407180094355452662728573105057251388785714398467539007093095910735031988979548557203885661047082355113246784784253056031749330806011702695782728900888048159566640407934971754230974308498004715363880688074337185895905632138979291625706726178289376123802857848249956594655776000307062893662406052141699981751735222455771039385503162197629170323904054802987624578695785054795803758242819691138445694039554764714712579622582154466862495626433064394682805237972564170602948512767364777662819468494374177755940099151387028158073825989201054180014083333532920398687818419207535175705428061624541766849443578749899710302745784631621584651975554510143319563952903815629645620611885152868548266479220372175980720567486564057359521400959834113725591828936789600981136537326936010179235748215074038754776606711149294287783139037463131911114148301619276073458960169546520236064807097791224418023267303109411295737397947679495202153051604097420161432636208789884317465828336625313660200566651394629972608864579689811546785268009086254087575436557912913914915715234503683732493421231397543653379496629346035176793356129215844958171341928071887470229591015221354417103045344748089780277133113803073818962772760395161960566042478644122360526880213010458153016710420347573097787202066723487601118452145579358266177444452926221783886580036813493710844612813048849980933908291495897364011177392774465819626233603364703206329645043602577606612697525627233791381445285041480912917456073282865497888364635404061777398302869918579922934024524920471119872321243720356675325861540117895934956810354664208523946090443168973705285827091760565321755355340466181086344257691348880126471127187604804542754409444602854811712595020142025658874600219948487824771950440597286764176381356224387788073313515562289277281143742051661440668596017840230562114698478407365175463662793851839374301605524952438977858691826114247326833238038445473920855451616108954545465627002286885661779211092968608761026064189932114125336244302853543773781339735638062346237638968211118169914791604476423043590577640707482056915748401637391885381554666681896564382006657125397971927546976252039682961249700418798545779961617353828049084710016503232416499993148742196474464192815401184678145528848818549177319381759715797778946396992474215849258070147647013179662858262228149992887630030049575123090858975200151515187020885513201576313271374160087952465641386480219947370562118619321622941187827522900875556076741776408478213162067720281891433671062492379706826974593719411388765140434789075181116165290287211076116252756580119228175274819480276716591910096519455570681510847358706627284480903788243936124634508222064221497160864018794762320414698675066513267846384853193266762952139321166532697744957246034923944237288848864295410653514658374546570633437720459644476243105855204864352926983767846890122592028719870472251956805971716611022293749669654387763447976883525449715639603418009946140996474665906990879910853959830637423607433002436892219510387320643583494925903082904879437613069593240023319433596947256076288240181872938802354492653315823435887899592095016437059371524756188356030802172294129337543160698799442167701777799059289969462204222136781040229849918413634959183853888832980403418416765824245537218637930533027996579365006946447207342358507084873836805185887618393528621781890161314425054205998204050850871049483543744727245052501029597161030985252531046472384061836321393073848081818346857576126173778033761011446363529370964917559493937472672796998776468187236250029251744775528613856137307134900199811414656874714766747283567059456463570989472802932574182204384303002169314760718036031746342769744468061412377217350855296574285273451695770315975694802700372212141482516842999732057837500936836999670868910511100712737291598717545158171524842699854993286626633113426450520699412317370042345677360579533686577506457893037856562109946997490488370275513653863282908679348626441245585055682240185669217869107227759339948964211687995806169712942816821032657965449940125012830469544731190916824769408244529681049776371189320285331624586247359436195602443826598578498597393201108762377971301755592372318906831453428104646706457351210899076531541943192221623960242745611085995666617118126491423211611889281869598651071567135806677062586562512629230649885163659547964275446641414146463352933270519232933818513235019881456918534337392694203937824454847066515548484210330447006174073662408436762261544601751232226222118105111817391850759255426154554943411997423131299844303513703126833929224996696003533557252966916071842836629656295354545423794184832001592741602247902107720879988545751566093837584544486435378325684653080779347063902422660153889053264878337700403529992444679475476009794430966844991706192287558784421966167591688791699508515945003389006615728135745807900784912057419045585322321324532929105249242995156343300100686481941569422834207571851402229737333643748352280744141389706411328321698395248308431063213417613499166821470606760199603585652485752872419109930764284086317078529386013007445367192313022619594427079735774885124569094791997342335683027672429582953988029510393176330122888731430131289830747597285949030258079622353401586806368110816295666810509109039220725638810976956311319599291651802213549733176051969264001703328636835672569093295502519601161588133550372413413384810524353325321288435201999515621510218081620837105121542601399132154696632067012019145491522651402669016507393606421124809642162746529785167817371747087517312542456109088904356569135898645187602260256448515829394291817267624125293524783023141705032687100248143552666751490441590666459578996846963007055018901324103851907874461082804456696399423865257673020872033015990357403086934944222482314139037532697358898688706174723026289133634573000947300237686105370899322508764441628654151665672036790324369507792168973226052954440250367521535787166350774739830605514313293827125894786772451875235128399784151399644275991929266046980159660727476689174892513452253049246306668845415318226017649269766985349068921849476476833257904369573894122667073951543587475871733301379337586874987838297519580739116326289819221936775512405183754592745755124400792405532070254034401735405642453569992568646614233717157464164445837725552124657486323847927052016784393124332594325648968373307240975471581957678679708809991155071451470909913611491068017674297456433883218057428601096619748740194081382299772982981395361627618731206375651800049497826189441212035703989900540912800082183808910470738935231301224640150502447619741419569216236948430273821465449079512896303923981062915416151148025737132054721702321366658938560859980558294864709372483098120425858943457352894590762540690432191395673821634022427959585188690241439650458955231161533403089529469776734544354321400349904008934764521177133018022852169332294089307839444423435719365136675116214382533626678083042371677380645099816669920198104131024879763818164255729586123200023881861641443203429425474560846163465274747004540056732953628569077460395504031735774794297074765004109653260444739699498705081583711731736733705149969874428430641775802640412166919241806939053267339917225822652863637539973151730405219133302088961492317376618297689160331060951858293518358498531545249907496377785958323495588765097756419159244996066642827031017599685541744009925399800275162944509180203749353949928090308417369752267080872220049746809084669939383145839851180515857262066821044973060960992620794307243668119825844624074565535370818619782071313478098067750926145937143005982038886210650128037560033064309786135024825824113633768899892626055143072535254850443477177915620506238265838070788545483667296539548789321576633076989523414709269681683143831936690321849098618909707489097891014564251398959652534510789565527997066517884420449394120698686495530207143313817910977009859378026407904914657285022955618272289808265108199139360343876623569001144513955856131410250883482301726110615471384257985245252449181783782739249504483689174362108293821545896537120549724792374410787817641084060489065980321848390660228709221375675228318570957715006549628248539991055974299697444078252989383486471507357982257081104213488017911704212711532622222849279098234777431914504199734958129377320869199603132437509815951160662964844946836849988190817948488913066729796585895855361003057437207346572041874667900892612901047239029696546491508650600579029714744260527459479910285793671556636906783857998669821640771174360965564193138402927638197465422062453956147555958824060941068026339226057580913440244031650914543043077339192920384545866288182910448487461838262940412803572191774641445958786491341141430386992277833308387291168097968416218114746123743114697897538183465414641878514675495385686362727810359823404771299154701890619872165352822674810326102944241856098020306317625135268179213618150944056506998605667234289606583900235426469259131973828928132521751273767053698734481978816835924592980335470209151569016501689961296246753798226248639331767092298693273863726728845232973908585184651504547108638226262922027453889205634465386277062986126634196678973992074022428365211464322337017091358028041117627879048618551705219811612253448036203832098669536122895190884883937093000921413813905774332215756305976111883087138614301697224607339738853210288728691727456676237688016164615293946407764813999926573061228409296407479692987675807677112912534582117109732581734104481366779446958277479932426802871587384330714566602806204508958292092151064531830262346551904275660228953122879213718957753055541335185773059825108648409668968525981377737791518898478885061047713316538278425099432251538930358566006815932764357060082171946459335596498270378622252952742419448074979046180220392376359972346724391685530335097744493571908211538531338899236081712889804182700231773532755456573801807493376092907328519612327932534657061472833520195872680835148926552600881277551913316901158448785158747405709168710054122713005452815601955593115495571797942021422278794713124188075630931823549973460878845950488287750543088100407300499068694792259060122645669750600655720348376479801185420880224806005717804649348176823683499701711339562787829197495739876516782528860451117723802143154243615907761737048128735742853416372684862070972239120597914562594056355508371721682397668987882276053516511995128026743081972774274181726394103907976858433214432679518865328560623683575720084904667462626163692351595457631667095046715915067440866559422830492181929890920805779258939708464367327245925488193426915630253946904887419157274667929663764740032012871487610752503842993668749297482294386825577072574340826292572434284992550942190573396317807148627309635517501119082564051557066751383866020453826917141658740314377688970303233666349304409747786292037236165297098319549476848964482090199783441710506667331791711576355511587069110759304525855481822658798951958823212015613434847113227603410175173741373783107570424765701577018351964873596412456048422837328479160082486564179414104663560156208571260470079824172851258752011874045452940062606220138335097983668434226025274538354539264789554411199223776404185335907327990991107957284792557869061632946513177740731060136154779464685551659187675672800730146601678184245474927228973549060810009307343968160750030528074367746124849388782492196166944054138868030904066616511622808294928532281296313626601918496792721619329127971345359343545553972524865671999557011665617700400388366760442086892176914097522742202682138728897928371353691560873484315172516855351862820148238357011383110668991644918326908295748165357623445335472690242803159944637369180556322822563517891956004795174486273336171968926918488004637380024564635448838808142196459379427098485843996342639429212229171579223154235259328078264190801229209526042491385262850449812888257219048740111398597086583957881862687473498777274463712590138853348137021430286021348373436073900475746084664755437643277812425745968413693554476323275993885747095014925399583273568757590722064437386934775106888593979390634024193683299969508652780839831475360839177970018956685238493862584471714364241288136941185534641594730320764085487254719508069894561575577242047639710797169103832710468561889102366657350753900903159695885455663210394294994736930264089730077310505288327511700916439414451471973392889152742133619580522315682450544799655377146846805604377465017604103994965411447575339274333430148936522466932475577989937222881160342090962356342427658735140732810200642124037005022121353496859821046711196419056975828016769671827887099222830710325487604845014524527937617159438126804337136162848744594098442773658993573579211074559157987398605352459951714934124840062487036857913801130826923685785947027624011683787464889877606849318418582035188866039468885389840615632496716963459302541122407107756146952558443707670357359112097006611060803755281023393283965024415385485858364944457294331509413795652314388953433490517854811719977127898878873107666063714693854467288580707975448508801547957153725090386173652892703758583120288720407299977231282026180791031972039878215644029285990994269965220501976821240464182981049339363502765159370301214170311438731487072737939368870536395426722635713203606565370321624321611238496866554630391049425279230418736278751294423488862440084889344242572149133927919885975350376889089600288524481430003529872037698715051748704918920854850303182201834728303452000592691625441234836123823113774681583528485345557761796824720884556319779953629655498628358633793509633702779925973542639095653928789060899637099794838582034439683244925914284952552619686203271374106612661589763540883806395722861076224389900417935621409118443796749724604411134393279188299889028774856736279599710057419381307257066686696611323186237176064506061638770074555695754631362454112866301635606794607943261268597141283179138360890249189556535472204470605860735792182172409074136581628784931257086290001258018398633156212090800125857692920825496284573244717976574982074177592443788515877574266502887803220064405704164425804050076914249781539169871293655213716606389227566526941986475485130004981380678220878268518266726951788865966530352788617305925097064135493102697620224507846458476333755024761853970893137521139326734692115398165573925412907624664047014143147764899296722258855740982391528483762705781919997538273671026312042864610667158800683679321093396009848481060466546095913263287375151649029189117698213359322486630986230128771735921677897560100634708328833256513485837897788718754288670962789717394085932599676298605820431577939686213239552758260773613502220201599649137586880517962531249443555616000920256477605880199392343854034306227910702237131106020938777479790999496015087612250958160519871429758397101238082879232578848470333845765043445136505830293538072133778992976070082519099247482840527227649360842597475095097045557765237869717216594302584599803379486820129432520222874053011649000127657555956171442918202203920969259028186928568705572453683282462858431749466301466431775453651046869662509633068383959830270580864381017875324199709502736823938756948080932812328699510199734967462474560964586919712786459143576415249093126927752459090123641807023520732137619060015604135067655933618178445501747493145684113816778507161424666265323543862169287710100607110807443906945725941445221172452614739787416954815479314328945737974368362136775304195391082259825287261328033499395684482536154675224943708624814487770275104677308895321899388567240003391875604257920745233311366582808702694281359442490490986202629867291581713778508374462057794950680685447991492152930999662627085695425006434949314655577160529330327618938904908740750531977971894608717122849966007039731540133297516680763026790991670539441006207953787029975076730152125715892375585551811174000055414556584074203561018543017292124359489045201217132641426157508121262987355929195752150121222778671036339010722661179200685087466609086905863605614500890661078118680210133493179801138633017285780535100104175262151018543012868732250839570697784717199592323712746842630546669520829296292199514326804352145316045351903326967994184568951288572323996507574769714660794051675427247453721562583159463811745222430992251715807653379914129940920618024016920041859311228393582332149816278431701126061580048136338201100144975554592075905545119142135150875849965971002489948951588629620079080495270948717394782272825410165635128134494371232878520413662583685110408320861433259211401834173242129973572197704606425262096359134210090021969888059413500977918221923259152015689007449704500749313192530952812729038204095176849764766668139815713406580607908307363279409996199614524274872558230777150678385697866518332747252645372388334500833780870545750186365104870421998168638264300962301189087948816648803556897751631134991958619808600830855276837164118998661033668484357220509148686211630471060945829510972337222360081608951884931408065014505655563650479326812519667818964711445909241992410375797198996801547364243686002861106012468061176051806007065228180852719991659504026299105277357430889037168952353722826641255662697489188993428916560164523223556213635515325341211601967908596756044486776723704442654622997869812460879984057171033263643422235055932134736712102428590766583768575427321986763845997274109123693403253596626915761966924159772660846103439499705186020836537890103504198106998056901540806567327086884640805650986706360397839854622418509064184058913856954863352582686363593895532747271094557642899861069228530128416146148138783697706999296880696510762745953442977615629087457810722260083125951734380044823957861176677044130563440946177292166688394136961668307459046776078632761593083128359983708348394696563129091548582462661927927915049039409373325510917540636388278574150787341915632523688250247987135644885026643599470325015052652558135267412038855762294365968736926251115393514593745979154123822451900645158995824543633343516655075879828393313610745232589666042230058564376239838456196276210780196095072649892883771623800547513697874979911371320712650811978715430981985108931099459277975655734614976176973553424908875649390855349687677794962111146099601034449606661558941796558470244369435105458900020048524135735629514841728124895002882158864747968150408069547514537163218509062552339773565394409528296398193551816402092541654438980470086314305977441463826789938992658795814523958581695214283547958787772059777723411894119814515756237640324651463093920631086336433488255393675432269583598954870883964892315574551259676654761389391759440250122788101036584626613516845230576131302678882198391704993191639006723323963121033622982740410032542433105001473267183866795016851300663692571215691984923464051233873284428722169538584749010403579174596862204774306848305962090347367795167173089275456798775365757548967519174500068488161671798516719239051403967163856646836750952757984624158532029546790076570720258077432871987123406814995159195402863698554125626087802953238460342607092059950315977623846124857579787849825607553634169121612255990318950537253404271071336023224685024475626566502803806754466368413246677847224615811006001720207852303857055554457476448403455294182362510184569651077549892030016914676765374076639778338456058248027337452079781045573371560737038996076387103750475693097097581944822912165101821589181847432337424923633589441949619528170866866539652015787784426116003198532293639034498313194525922735023368641429712614436490036356567014227462666985450821116963564358233381696855860058162760702794399074722593308490486790587651477334453319206293306117703173356708879977875685028345406445073581840317877906201118854670544457017288692119693388754622016673222484145114094842498198422277420813721496798775248387526035103896401427857726561634369536934013475103902203745363729372152130748823755416612812710704153249199662538154013046696905393033902036876801862182947139895728954583941262603573329349870354341291017448891426734028932098480054242175434212809751575308857445893665630441949623828148228372638204342468455300282751843908122085159024946218540967150555129536020219412500843779566354838438846335788398789304848394238902254560253751947730068357153457510968831248432926770123707146752892701657079547079364309240131825329685096276586559371819809311778789921828314918067510611868619212477633289699501834175835474192020510724670959872334678206311186633736382063045364901444349719426812737036443448832532869430450463182446230812546531904580788206637278011517640437134396118805483718489183530373477185819750974400666378480863596709567504156309319363023135060296305315946985674151021855444348194088944439060559657303693181372019164015164510606297841298815834753488063057697405300907844037305716776174848810305773419811349512796238359887133782564715265355577898143585219192384208538582304357983904008319192144242931315078943621528951442022360092483962761215293394268528115287422644395203562145428876192176851209612272301578710168684215244865098215632345024440989596034588166624012874689606195898596396941530770710520117402154307664249127780109855551081100358866683873368721170559283898244757239715199566726022712504553975678549125813509570776267361787776277582573032554582120318088427387351626005672779753168697521786881033063627988272188792425323333344136801354699421818554379272409223664539158036826796157015006770063589358414895031650125697112103363171219469822352996979418646146514872330793080055004355254876944585270703990779523141708226457716884844730243626915358327681161414616337538480309004702607186924897097319107546838981234262625069483261970948096921934578402711102771012864107544280605944707910720578603537452747922044486175328642120448825939112329728420278588296424791683593557740199412302063525881619758633577193429002085409236904111636659380001164163461354321542703075510254512329740427340845755671077826820172792742811747746697888654981925893735568326049565590636192307672586396431030024058732230577137813584351695364576420916219484956012303746934120775572807087190640234443274817383896650418300673736287688513818954277666369720949684214575758080661974259064865235837091014879020967635743761233749525172213052511795496538390051641161786848012046775891418699000546178006423428867041069926612284256824484919288699009673380336301880224877300214691244201211707484409898646194546725101648783067298158055047737491084926559163723522685594315150313233174193840266596496152872893325280635346247691163266344140991672110235633978299733756965914676962972946140119273385171277619536604255173023970752607181634923636200284907570407354100267013784456651400370926081572047457418893964006176203295117480254065527645783085285121232407163197948516478881808178781251401547806074080220630847646442952988382456647499623291722213887107308202558677590732237084439186362088023488210864656050818245827749102973474789248769687925610349298353353964619253931961168174882450286126824258343511159855079600091699537717149183692924746373770057833607459252071093447595674542309001429038580905289527083793400805721725589940971706929323329539480917371114092406950312911057853789092548183663251644640109135947498802308558785719101274394105323763429498361285090545620110775276201516990893762299100963600297816105437516712572723206395276626347686781898105723261897024119976447885647663382336968661045829528059305102304108530123067191239636075954106261097226708025671312113486080600787822033043505732711031980268637967106422380903860825519902220264405935355131921950859237547822913820085046666630632516946243351230176578314157372475038586979642387233704777034844257079060212598065125741794110842428845651248805263375902196874542275977176873873961638328538067170772303816802993822051184437301277076872562913008086676216725443316144214437570296016374564671897557250589632749941543790919467209111219046218134053125365836766717943656420067654530168724064032309858022783393016075020217958734100283855801239517660168888683023275376971437655463659420061365520715097756008643177636767079072761977594088230104136627829820277168560754616042125717943296572008597706805642861627001686267217488763236375355757203676199016666981222266783340360088082346956268839135564645480908359954976915606116117098928093415756802890595888664462723547187679626688141569509733033655949926269389589349734907917378525096022601165130284410273327032704140802735653372623652311853735318326412699007320715308656727785616464419787031347159022021611526701113406185186931814206094725930187667849694951007587056337605455474107224983331747733051649997206369632098295735048901760161307502181954481446695277467148800797050697665431819069209015144053112562573065241136289120903041893190662998494429764601019859887617411049080441648696687071992608753628615866147779457776868480320850988301657806336610709626320069218803500286700098561615142782447886522194183797825766128331521626344074210270375293384134330166120218940383834291509726213853296728043108116093455111549212310955808823102893366144229617647651275465229562606431899302863326306759146386614420674219359154048989280076971863464550607024311313108490286712383030810524333680204395165326955063579816314767525125104272126075413060956227486434582026712763275008069329673989001830017119004915670760222325329369764405550501982286178945242050749911962519409905223490054785876490449905283241281700886369919211222245047449012119630852496317655411244721035355873481803971259578778762515541400530595949380966215765962503891630232523266501686134349900236923520171739135805128399195148914161854137361652378111888787390172758955342896610392824001795524941372494316332429956104445608283289810979276092385792754310201053465648725005605564245166975784879405234268484686169405516553137910821183822388881509208048217715509162363462665984326563136382865382605189122219598974839903040427686184743625950960279815873507329431677013774329818641591563292426323396815358534887165218706652799810321672523813925882729291221716694366500592788189191804888498798671288945202538376552894727488412801877691987101374339779709551226143482362946131124540334721115473867441444466509542428707673156844683919717123445337020144613686901833531007472236171273251027806156200683997030641076883009955843645277013039400001927608398531639419940002832150602600464493198844395087209341216247906502109974098025799574160822895965593887331851902772036711492198545464452219882979190285312075157975180416402492385833453857387228049454020332104328748839071660925423450438925328985294244533486960880443195050454701560211814165679686538456212754582246946608122151152307638328023488158605584245633445399842503321755401677107156420643194115803241384347695013447496243232999489433722046551530700962506718392862882258774223955217430901390512850381180544442109073181629052717884560272992720164890981492835148969929111287907597105030456734193683422575829111064741064245730906141533442419889112224981369751736912361911021311774247887123143721963670524317578582912843825546570648613265112742533468314915159122448217106364694459385543774474239161666405696714110623508401348687786075922890297495957822278484841470551280380336642987269322415148960888167250492726948551835025461590739469459700691476885412389029043993505380774278823433269538255024632730918640907927001098822681521277254427120144142196914183477322550505208492430312400308922437525314814891275186010797126477223004220057532527031095647012978015663654137379399384039031379311262445979450543482372446324729923695760668236628502396584584625872849643097214177146679676541996544470220013877136775363086679381131932547044782187230433413898867754193195850100148917189121377550922567962767364258488826421703356271818240316850373021249904277272894822529975733526995017576993987469610581878511410446959054770719972080463163231527071664462591653267824691898495239111468363824971263872383496717781037236770766693872465276733777732350122008475351605134064543572523638183817476713602488831410117680419666474603663641498370268953458591553548568525135170966724333602276056198648539866481234769794813365942925368447513953851153021594530139364463240140043023708795514765189665035907197743234700405676019879373935237781080435737230793690108467864223332262692021295488931254876566934937178463452000815793833637058577845411071268565378889428549381970098685898021240669066993851216106509542125286404566693566590624343568103707480632499853906830890115341413733286988616246610029282591215258244446617054844698159720330038614803845735945331470214080920563702532035586138039944596772468666872960631301670869279657817662334304138484449867486887412320784625452617716061359507835043267467198945601617841795216134949832143545127371348286165266449274509761047642820924756511293606402964751495595031363619576225753258334297719441001617436057519084114215966888246508055107368854409932123163484640080818642417977350204601491773391120931109289866045383734447834969352612529272985163103234615209674898085513220284641412716544019859027324169935710223261042292794924692972163938035059984635213946748026889639476128337495342982004271723839039667358914355385290322379959006591915975430423258721673542808439997478012315774441662661095168990792091444196437737193537530520946614421098122577160152123136798473943008822112201743238148609068435332981220620351010829722809040917854129741668404735584050220913046414576929664592995693764865267362399327774062787384652363114743940458296974662449535750043690328282625336572612344419060590199663712803708882222097743358634654374146647035377815933864054333204455000023700550632373947051316049366964083697296425855258264059296876906113179931989584538869911380698851704313814741330843463781599061395132247322977457157502651257423221616622930681954875138203725948826379844690395105260550946592622221137114037308824012689647960235051439827148335640023730653873359432605439098212520199520817601309009763129959595082057243546722431790091008970286337621654325358307336580360226711741301395994631437594239539577535013450929012112302726998047474592056851580776975130355250966161677817527527079457119324690470157743765870113065957859289457127227442753425494879038585099985205189004875820905427725824832538001177830398987045084278395870682719036297760352880888304429989812134035535090848036228995098963114427077430821624212674642043435995787790243365076921708392962495877680689573475169723518607112097192237419486158111027440296239274488156683555645310472182193417660722697233791465641837506464375151373050085277383369139948294037257919466075442083815577295037253234422180176420534131505725773334554999282719797402019418262183098578449562552005104099506308625340737212228476967990201825609920751337193035924967590494038164541063036301091766469299658386262748570246024837050759786105950294453182810886377865798473947635547503423344009709612539435091199732965095080447252879256845575296001789217181637644656257739185232126683640837646251766125350781799912275480510425040968768801292908336928787165401623869337707475885993400076096677964048141116281390653995492472618396242362809217515946531543730421033195103748595643926344822613374598046475151227792506240169455364604084579631562654917260946843354459714109030849127808522002290928823460913025728101865948792686225442521179164906060271462261734912563041420699019999005924733009089918416173872761035129826349566608887043017318056244371694505445762954855493102893830320223119792723588196632998008581650304484337460221015500766082746006393471364263011385910156208722183584385702089926081844650468773499530180515854694376838378213605065717348659084701059391853244833188008846778856093097308155160704654198230084404800771129673057024760271744701547894317203510329987657711931758663766852348205363203896857665498086719871031098721890883565553368321181782320457116293333703634414791401620024764691666640005781632599559002610879848400839100846696607445087074346911722928859965955640475703398761281106326961804989797077317613986227029698237933927190418336913379199151620247264803662177937496008031342203659642816806177555695360629199797932885068195243771658889561194596600431792496221327653025768118896905903067910006706079959875693375198111250038393734073920691171216957245931869504769801658244182273483954077021436569295409576446656254330673918862720530928002035876761526310865390044958100806763591775562077205123797536612807679112535727295291683184341603955916019714330399769227669209779035479251963183337103127187447866221128771908519617071167862983942793608332945003992773562802036635283761762318810850903411117943505887630623129783557354068885603627756430937737524602074222772983056834653166327632749301251368097634703021381443623007162148026948441520715239945767262991345636916211902069064169120131914454540262991556349213052166620776728434345048432808211136375987382926757182378065523612933666357118384180238649967285079558525076087093142970049394180992940950256422733139367836500036177801223509497771602634146177531786490822316801875697429057882909154336483133041273116891139396868142551262836085202820431026669659379442544072591737660221940785496760773605259732363422968291226278251872722453212508782214819578292473218847610999135603572470683325003802703848893460640581520648389028826356423637495209532634669990160965390167328426948042654946069494851982209987244036447328956734293924805443807252658541544311353448074094931367340186015371787419658726976326824090355304796586058425963166436178291943286212319170669915189597125008414562389803280728380461077724740726594329966248213311209840238496745403743634350534405744687186231157528806305732321966369882667461161715337467874985673896543372297568383536952632834995464751586743404161830228976808606553808547704389243498154016291365568386135273845356165032482877706664062861416703643794815371630208947346013093994082194613192609776840699857775901643473569221319875043620181627470664466362804212529965122318780005490296777459248527106446652894266551180078866476683450717353802541963842451133408493527781239340359023958315685631750536480919145251367257548069595476958670041628620170605189792062534410943556075754783202152785725640218317321137885031393361244332708138824804574030638503399215697076804570154977146337059267635069863148258253270970467376718629167485258079374536273337071929137052419919909285105202099793240613795008367875768484366312564100978498436243695741180028852711280885267471578410646234773073440476043147719068492357922901582322223079170372262873818431764300286630108509262596554619235272761963832128159478353269659490575537864091323109025084659944044576512456249864249658315641910159695191776148370658225102990416115079479431988675660107237747160294431572955579398225443219795097880499643624848701522986490345973712639713827995425868668112100397282730595152616001411880428954322497081197599601229960897551526353993750068320370482371516924135904263490649872645219250169095905023746543236486795742374981485837784202643401995636446102902562125496152640675444211283977637737627838638823933350459775659980644726504311608346548485104005531458953332457213058302249629641662571571242861847443227269124733714105653132123765090009298112097362919291356654377371172666095994007037979830920512306582277192688339599245785695628550306379130978380688826795468637327520100720810324691183387744638158900524833216073984844273352814435154685209514763471490257568563955035697844579358221884029438846612626978521754759144654713826646988557062186755913095129229776152054898696691694570135769928736093937173801438834195439917710116638382272306108252849178455689692520102814394116092253298402978639245098298079357861534159550182046498169679691282089425047743252595589433823470091183906796920019067523811880748864751164679679428643367786128267217076565821452942203804556852918140158404349713131901788598067565841686481711844349480607580193783525938073984989655926191797077224829792626452503969971885312061294324407895399534577925721475867867243505800579026139155109919705605768796534937782941857793328778474962609528145299013518364495846481158724355613491662455851758851846024344135102611844551648723774512638164368813315409552543824651483347962431854711609745917872577316353337992159713915999336893365357053321198305521897167966465524406271259393450424041942050210715791589016310547218564000997951678887889399976611232916924083223749195685972530804430684009921510102079460930478292707736975987343270977493512577636117067589130816159796715386688686984678177240505834186695966876895591628839338205075754588511040704618903032878387481218155980483125422233383492260672586963116765503855828711244172519655156226188917743299036623850633618359064309861934894340863465981345019415686915546274488582403466254678737356386972480232059936458604254538847147661434949818716852115600381353692460414770314409908973471041125267573307602594499517410219711913974448755108891549462468076339660149206940106458214508598857821328246560412961427415867133050021789641586458374191736969617220463297203791470475305591953388138847102645150409871233095049162506848793735018014131220793728126990464467325882146495070930840893835306009154414748781699102524040734952630911143300670583999036159286194996756535360844619274299732600458155736627841349415460963052222207653877530181038308549534519584951031055268298549282797568390084774863507300757408825674459104521519194865925154554551409617035418296845520236581815739956690237355006869809980626684919788417955060842254866718105813266513702762344134620263620660000983829221573518229552670933345896478360174869411644125201448863478162958235688098863359593668979618529805341062874333654593175217987823831622001918123852628788908668349618552545810007404300048261364616364663000690051583897155390285362915783051928098789548303917461124919491534172116946976467431372150277382324147383313118463863394422460174034781334157622666345646478752401367586445573986645805362795020056349201773857406134087849594248994091983448287374156261033966572980288525647069789890685998716719783308450157525911208816397723389183543520974280179601927516312713503695514276158632793440048792020765918202580315819073209278840465150952260273984015711761061625523253106270587011524030829865742490521232719404039126645745185814127315809499284357135040371491013964631229624525325893731247327907580346816837955285739266486309670818896741071021657500178772142335352953970515527360104810306879442948795719483421606190579344673267898830764678118392622276901257907261017370655722312498922187237137635928618461402502220312810248604670266273093198609314700570004996167469442905435957276951255063324307060821183876115270542098843580712626212601110622166217411130018827339670784832677465722724982246768118105993056841198298193034023580265446785725896947388435365749372797311222747274922645480304726266198356374874492010975581349801932003066960916511570660732779782556968361410846700913346420679121172251745192544489976081530266264561110469375119476753558923689161551016514282958756877757959082661567689125138602670967884333990686815464734783034049670969633411518073279715229262471881023168146357203742992746798559892858265611839485641155242883678152394005587950288102624364362366373992169387206018193935326119987104637637735402048840960727090484841134143331026215034248232038711700560987262719694257649324779191727663944251909037600517083232636993577916419737157102216816089401958061861067030123510906104465278562349838956765593995113433827088000729148453698299398664888411601192622304586458570888266143939148549912672136421691443586986891584936832503245387038594392592164634124272660328055305586691827911439330787980750650799250382510881083769448918407029743589196110669103109091773673876712260748412041160471665283050883625416399343603609420655614880942853194689397494141059633033171829053455493928414399566385831897376988407390263413446901329637357536769372083419309373834043035429665597069346068333844670545815426921565683938210654752792946386210049555746890409946421305809142278359902566741184565164909337356729685948552042989843528750078482746121586479439022257038274197436415068447505643817063658431687393137073598347545195133817440735364000614249719082423206975403922931334183531173997948941611420154123801366487209232801814283704091513597297804317732611270117063360383175508236874201185857517155012791832300170844041870592128247672198462424227664822542491158088335179339459082759222142490293097900121332505431091980179695052968567155945109102052760867949939226269985156614836156682328722162708768243879073925110439152537895259460239062895693368388492074398486184062671241198896209891695985564550913154345721516215541609136356260638141484610467809281619654782288885059521245369357427764335437133676803852722345398652256142609497869225418785418405598012216935253291132541151786336885997626488634268352357118579897621305091197345308112021133216043493680124215018723147718624139154425325895560680418145042331841536845001461466110878448913531467353973848425921320476678435470202692469990151908615037671488669714732230260148050990986409107312724231526963076297454203269929091647499682250341239282818477516536262109590098777985209455098653233755479826573743522726812462905326329165050505412714639061930890898792905441554515727470725784412242826376821460655534658846398044887853973221591250891448373949398031670830069744971210545692848886425431694487597053271839253915474267003743096322471099247636080753858481585883180633510946649986819258021824347145477931617223653184708978518832972456834009543765280792918479524965843372339893935065636908279129119030953686198331622048175731684120531097934794286144677969132773218920750526976906704264328504857594810863796678353553547332032996559531267245584624580057948179258114411274576138699694001986054452228696980718616570495767714492827471814517487026143673914689187500141046657121231181676773677063084706439694163714231140643414506542701389239586806245416332315853777197296984413816220161298057040178582519870112128202803443400650819334059067534115073932873614056947503824661956570478071058284521503153715512061051824427327283360269419881604973062398896638885230382862879643927008990723891597463525247602702827203053769496823815389862958611062114581555706080911066258630793404615175892856923781856518556620846504896607077547171225115161887909142698415162075200968342703489946733683742808246780676116569469696694893675661635722543138414281590184627206797005920084929099940455763676558041798298335501141836117157867951013117397584102980100283217775011630378174552276464396408613160349261426814085586931387470333511686505168535872866480347939012050571612822764722259650174345371197088687095436893134022464114620970696357644788658429187690512152515428084806733871742109943075550870280331722390184323235177208167382353147721721501072399066712077158307141444603635563526241186017369312226174251946828970210443900908884778027790543625717235616176406470305002390530524352653159511569478287650290898365344457818117322090263185425872318527039066347869007836899092307032009919471881920755120925657571404348556211457908333453811787185572948039172855824769737872113340422963670933524076512151148735027047110012593749973664899216439555692547692680704820286036410247860629536768121006838311776270289863302189198193072775079789901330167156042854077953340507278433376005100645163767987970971991110655435600303929441415949112169816745756672030075792773508002549823254157170511981526613088510891479243456105896866969325439258142538555554291338310517896800180416375184699399664734005213924493228825335341851478011196103132177026395118231391256846766561808821974289261259001749462306572700432139925798927506017799936152966959200417070482813805326068815795773787386899672547388520056431782806153592256959291153548485679460713914048566660568876092682639402543538595945760102753995838445865494691221565548106757054276202932108910979224998173979788301540739643781573077544364493771823947161299638827648227680446146864888008913726126506844634242013000338764159197191737377402832511035075255487268819761655565589693234749079880016186950571863272022361870447617256478301066067316684825806080063820668481791481748745138412231394296970480435431899581692803558351965998573354324225124810420333725783174125293146799627576141600760679819747703901560305441432062976304740672277483745561677191833764716241699081180339285020287953794888863865183325965394592637410468198958334056527066122114598227975840886489408515646829640322915258058900314177772518915507475936707718868605040227178470565619781860311015124290751403883949227928244111239216328490724002604868449158910607009894171869987820221903213787727627209390970861910032338356264878845098026176903699538777092930200088970041546340321054643241521551640397668729479753059992109875230167934595064671648642992478563604029533704925207595719371477243617425639554912216978699724213272200781962690289760473772763218203318145120415420624747947575871425060539579262460924015888416592561045078020739416549293058059993987585082239018499052632308542415871078535572946038821241465994615844941634320483719148506355052273334690384623070906248464010395264431045252120312713078076047686892665933279377038447528230768829540563119916954875987837639312310120180768020255653516112692860218416371351300455509888800497411142277120481960212955909403685662514153544197426280145323657598407237264343470061473948128066187519393911397575996062438377107140379827559937874942849671446270069061792965414303397557589433736422367766835308755786086719202877525206949623775416397687092356326518549477570803654632035234726731360008445814796823099915504123687631627803246750614228004246143038588606890762731210555209024348812524899516084945816212355438770445715753656822128150327420856326086598499656482378337451171706229562352956744373529212090515633271713242610994607454514854366684973167182393862140611469154307971784881881421259163606063837120195940533564944443667735705578677888396299942547217380885088401329866236841197805233694226705733648259560511981286613319376758280686144592392642957587202348420021236715677942740684752850274370351824938049954831551405945535217965006922985643876260052531295472440696186761237811765666959379968902516643006605213215721020437746294314919016853554630777604555279946226332357432452031954233771058090954943058347552542426635549213925876522516408897597436666901030633936748725853632955238353737707482698284739895479726630905649550904119508191794138749703245597019432858847077690252356415040989637199242136560844900244872403178075922094727066899789532706709729224952708593433711073995863729957696046779240675145791963764992039905264436397696807517089276551374769892229511084121059908452739226305690873222614115035994087667426092888140051299343657292121514386011364571088767749269800496684096120152555539448260641802970952663227578042089068681010792354369009496092097780790964115238768915816968891668176566931918435635143615692794086472393864200562769574258201978896564599001954690444588453123868967872101287826630953352636050924270124076438905641917233812658772689351112469386307162684737154587062042149275935325759044518224131151487487680591006556106752739530329245666828472205818599920750094081392283287121817093508440538322360723141976161242780238548220240978643755545675670771101273676511421934754569902821998444082415303373850154199677625960163454348502317441310706781986142799071779523504083526622560199382030563436815595668427975792906430940246423301264928762641811349020507499161842843991112685509819252755427388913526367441855214767959932755828449419694110663989127158391408763529066006294612068476226597497912205526546029382967251114592444718170629370882229724965171420382079779093760934045301341821196076369730916641569468462785010814332201769878569565463823902552943886561136603332726984242356012574543310701578260543603006210792874990349629024278786063428836199456355871018997167045598640968751430533182744720738101405523588386020061106185028428625957137832847602759398202128860310821236036768499813287082884577196335404509892885877852591557087262623600734599460436768956567011265229473251901894300193044989282627085368972458042134459847128622538501550689601826004278754203441081368127064670566438581072886520918527319983285475371061630421605771704702181627848189060059054235970902041487464710133140784088773911263222749873903523267920671608937143516041192019943531921056455487799189892011672585817931976149941826397421989471450222076963707002000271706237420057673800337990404620490429858691374791509211560806862211906401804692060976170799221435595634779135386060692527563937560296271524729628787019130348204491620426684359932582615814886054588750734780685986552588043810268466419636604498688989621753290517463722184747757204718028661802743308957976841565024878935933740405910569185650939273388461534340222458174134281414415855045596085829879404791650313323817283671725140749004431277727629487770437987626053058977042218330639531546692113614946750453530074859531263272749712483316714931130474904639416342489022686346033104475289743058933777228396511662834969684564261347256283157632733000910136860804206913577206704753026110804974971110714637216228035570405537325586899706140521486324733976728083785105248411552621167035519737855372915821211757730944597698968662247358526165344452069735490924218487574951537239078810640397015836319374664791791731907678702001609560467310249127492827157567414518853340497619709278337811086411328696802907246562167730848699504563984431281997243491139353908471457999590905995176117939668227670246696435758436962566506339844780952578566825943227692047062050795349085444114631863465928490468302736366034613101346187804228491720953092660151437811640297257018871953364828404265825268839019104054491947988102847275289321327344208788829915185802003652525802134600280980240033767439963247422344549297241018890857258153817082617230600207482140514013985616942508266803245956546168618591635845059046413882887251962794600471885642570011065759401253112909291351051328496045649771592017937648382294130411709659511632323943842140592653789026615914862464266400725554695067774238882964687568492933600192319926198202150260927145686693297754032959702277354010142232723218725040199419617138762378335674434075258017462443131055909720736848799804752978597376939506760936760956348974561960676368020125387014668957015516604618553416854532986330096028565774552153264666450113556023122986016904003781779317744085115685262426442000924692896436113544017475268739775784182537767111553810504873664896063184365092091349617224096699098988442319092339423799017403242728679927177554282741513621354287081539834954974885414759616762464748639398410558260183819728077632684413502516885133716305535330623390515871071216271614026123512369182589928313893677095213542511959055627463387773083231386207315757703641987403505287836183599679728981104237730172961794940990197324750350211281825991159317403135283785952344300506271616998700302221157055155968149754947138068555219384630959541689611298270305100328691884293099866172112970599575425820280480144629589209075139674908191929677386051669661298966928326818108185276279669227796046989412428208616978871112339069365777311775641703034511113764466407660664760703512123983888892131017237147623143577607905887907170172522805048543132997638323087935219359212884197235171893812256011964283251521608550389730022819978329284707961164799691656633602456823822055550748872080948510237371083130347789428614500900279063839440581090212351572767737883399984644886053942201917714979246098225708326371519825067960184834420614808788844200017484748404726551628503222229623898566189466220714421306744091356763767461208611567222121461624131142437615289443665000263085143493090544386218617296826364381055860560557543480744348789073078351609224538070662344875396188569945079548832220320016117187139807020001487354995759417670373627570855365933786163227522473925682651281274831652522036018499211163357167048144320122785902980444210294731545286274921316652274243948199092164506858452776358813075195955427994367097378419111257131873018848558317934875873273183139078419146912555547820111453939470309072484086470880616343120612470746444093553723756282339579810768559166697817357244966033147311946506814528218318714219419425284751239601450601420028103524422233381980963195564289020230756338827237198399513351491862183960616149986013670799644103962004405485557044379212597786568060392246112638477326631185210291718960446227223045608543308574388090486026819989141414610072070642076299710272298292661182954593474827998863585935925031154972077922275412609278539309719122402605189778591910799326689662935663729036831291781550633879056059846369501348589536539887001198487100429452456421449753126087708565358137377920315214590996128608832374884150128607442836294965809711986010449378383775289081178067257390586183427690587736977518488753937764785222146721673900199796266051836992369501367707843877129746137037794771442632780948032669359919695963175906904953600367315898745193428984999289611926715684703035266419815292988195209224353836240417917846168007880047625706741303499108109797847690512879771661850779524546524929112188919309588939683066344439965429883235284786190654088529034381256127372446272713637331199873244614354105499880543040273407816946018255933267189224707604841300700581076168190687636508223675059907903891606646829822326252369944514432173515910588825150960686551720639277901421443288976244179914141902525247146497514899038446212857633861008816451139936286882227790685753960629492122713420360251515374724789728261892861971781238733437181703598699581760975977820670022855271022490174468652648373274297831948103140161163988683296344911235147490008395560340705704041481968681757037149901941536260364281280845346353000625334549115618557268099329980508051123249028794708542223334779626785400729331255642855234870246297220137454344720306664679472102484632925225923330221581053208520634860927064298811326631486088292331130217694184680156342987780450321267644170491117120826905806488883879164665725430084573052986740209117105885610770225915019715147452800482726723553931277374828473565653010996100948462111914447580510786764596587364746851050678848070215184318645031551985097446761386507223020529252217649206342361518300810206045011754107843193662130279175111634242512182694558172036133629742105196708827147331093256178083284980912420521894914460987910781223661256722290901999913484278722828245195355043385067166605170561130947013277798085162678449956028755837505115661746708389657271813324628446851685339508077576637971653714063612601644693735769193278714074240685771885385363825823981363565357798770531941009488770880540264214855799465187514231094000614245653624235802563582864530965821290204437126498235462119534856750535105153460339497544613842285406516777347678014780389417357995477924370152057218985560524581884811937995757654005110715343351440667208599740595858572290707556563754010884587796920842229513496774987529658587276118209157537191351328141977442287447620366750805274550828217628393334002392131165952998901772216870455799890712316396686380570362149448245079042536990119232927539324243494036292148894007951453846978668904345367031478512647677070657371173549702886243243135184147591035012915849198051627430045449949057651108322582656076438840891290851001395780035997437099525839880752749942957542104031970449208089085718521453323623813782854262564137839146865548486089065184778019820968976894623093653242113079226988996067287876284695691262385362234999091280315412177649855170892368744767545081061707761221984187435970113605869184758665166551420503382271205351357902641380985834370787418336214611129532343580690938451311870160662196296561552764586886435226404564884881637399482249143968159955747992584727616305994128809582601777630402713192108271544265462370066398336596698841522924586358766523983602291758310713410031718451665317829382506095081838088024464744658398847123460305804648696900049894500547029330461484457290329580613869360022594827008031208918410373070070462408158904923459208884507224887878301355524554301891397474240795605711968320583075819528440886671837442716486231550251354480209965784506646951229780560152803024526973203834615522202162383091625053795525557663664535578210001906458688822568656658310283761088498524315953964678868611225206376990748440388139393434142586226408049625994974526838971509285396142699647776759414592096261747622121653903252138003402662374868201111666929972358995124187645455659082973124145557186955667741866652907483568834611679634582173168440877506489734538030897857412620174506799676173002499972900958302581107155224805125017121986120783616858947405489731628849847190777620040092234228311924839692715667253882260306990426567985074741129049224132355378082544556046162890087295704067363701596631570735593912606572840159928310378838545222238748862952661693019238964159623596520222658458228229389749967619400984622294078525186393907798822912038255614155935504194688410101147849649203492219532123277463277178614652856553986553490996068276523361614379718586861930303513099120306996573401594946543581083976410248836606625194328807885906902432138872061207433843276582079071158999387591114500431273297205372710821625794379464938224027051757890339761414019093448656376920542072614221197524378478009359569249749902429071934440408202057545353146641495094977458816456424198879492770161381593180479290115717050377006090037985044041980978959833246046218657719902831969276347859548256317559115898155700081974104317847269185920030733463783021708928784216434871507966612724140056582719048637052280207014325545911011841435080146742672016914404107495936197601032166747058732511605815647722334005488243991038417692927503917528622599499098960730612012308847280306373422114852837385021163755314278537890674089463717226448293871190989679106168446158245948436252347003120288508018646192728169984142502605955229047015592705121769360983783885185588830609586076306124325221469089614564231153900592979188107850005391139935129463989466208443096631255918977676032857036654061326687470449909635336590337082018811712674968137495914791777473377338830569024886049349805249957301745960330225010786599248438942751053528730169834304949682588176860468483084274350067893513092828608490495525133927729993153708854693128802202232474004549809955996541967423588928759939469873374516978604232545274645466475364857924131894973832439679729086330303894980089318586456858341266688106710066409813329811827673518693231912315285929268391221747419972589281159042454439275585626126811758838872863561356054069179616898279669501517126509823872704760910302181734824716797165724928112310627053082586059209424403146380469046822765774394441656800633483646594028623910357610816278629674138320144311635961440428164370725403614434424089469810622836425615404724710454920344987546508275056523381900180099048956523908898581784796258330921331234913396266814918553650534624250502206359610489476654118849947011942201977056078791910060188189807772674769877855980767465905896098272772648679973754524103223402465299306863274362776630719620897551035990208260302408129747692271095067616433941941524659528824310404963350888510387185367279658132208953500208627513564085262075884026671079322380925969904722341897507802035320626287486831797705431387065492072481532057203912808844583107539367142746399166449477958097400522745702736101379283234716854619393789949674818016986536409959727937739217699137474348157341848172327907474899361261534602872863042325971832647231502672101746069225787841914266466592721898339362126054336486193588316293105086567814397262573865789573828226972276416110037505015378978727515336995803912714551918696631876012012779511960332709956224082227030817305213401212068441627865732492710719798600479559910237702755624706102751718641983748772898892184823264414072016395074827152812884789339795308200584725360425459351742812929529444019264711916708597206772045776296256619641632224033508691050887755794693387824489630636019301420704448028173076996377346484868059231796406112225679975728196205938316469037586378797632269614375191026839860852695735596056493791625780166341163972203599197074371374705747747264282762125188651997437985179769355677218609561295197914747359033069667876492410243597479664740586532204266013501409458901467792507060168705977426829991893732177732985596434293462728919452045336290046671422775983701371237141462702829419333368878517526963476309488750467951769887427482392091169700487707522092541940147405519577140055021795440591789668772133846253492937419510959510479426545354571500515446171914817674367467633899657563101781482870143094094621875890543840438600599427767301131639496448633172459192003435089174771886393959113765409534025441045739413250088048416764880141101198860236522457073795138818902203706743919221805915244750596174740248612441291503911787028382096006935043821653050091375045416562561916788110240267143452640248603710215156794071477801055936893791350528066522873017985608958231102079139143799646471307177171402470646781657361159942629922735665955823195821809943919582445160897418088379486568482657916095503862872635241217121053537760535876282251479458269971973608963893444930407145795745537654373679741204244846651069281705251445984795197644090250453682356267344261816865989150318468756363729420909532076609576288603008416825977953575613765256044660677530985715527041782277094044994536946645452923005307266182992778549200832831020053875745567121780724349309376772560827555530747184908888680760027869825700029863779125815330534515195158447202704479803800766280753837148682686443291445074153968505316656666224803303227748646334685820480328157663520483231262076040198471095074295819621114065189808747478574995682116425683499338826622789816036071431673519579132756846644624411189275219554837291024807992474809094510148494511953103693863558683367540975563062245689215352140239614244963993733113147398914333819921107392914192678915428724534327294255448484520453061529483953719607748800396942180167296808781690228850656683120786533807992010718666727712590041658418718074315920518906759982028518511018131370657216290589501667739273077857150854587430763209423935666175206081664447672826519349282362278368911898802021619637884038808336077715697532420133664230545053178732639920576913560453097202378202428748397048378288595479835531949126484345654896491149653954472519871721151898997056047059440999601595079378393398129668123892551179730018098721238853379376368481119924538775603800522210978957238991618590307862536302921548077835193462451045685191211109386172513162059330099139960287074317737393667295613523293268257983220896299995239128395533088024843432980933331043062745427202557593256425902588713806302614034050217304650241966425256090939128316404486483808679007312125902773274582850157169882854166907975514091016494282700094471193451062599201774161226054945831252221683219773395689795046863240309319108614018756418464555402354805547142342150458550475512404406943030710294870961188020576802903079535644599188364790057751478603305185697895650763051346588822458986172780318449669363607634516924373513688089252972651323726185934075275990163200930372659821820568427005679804843784592644104844035416895014065421244583978875568107421339119621754745905238429870412586664347828473478925442081649786671798625018581096414398521040109744173060175561857772948990110386727374620879263713216636023734895233650170938295290173761762518600046344118384953287195098877063622267851360752613646698919889397007934823169553391250508579510120407957811407537527695529631236800886954644520551200337424713112654115850426399190936099159855987906938239643739361348389805052656188095792696465255421584384490219267800177558337509393443484799502645394309471370985819770147204157296560264379604874806332948157207031865469025079067368116746099112346292331576659792691842081003871599284857938680593953242062272448354221846764688082241364155294878553941957042317405933077816777517233505397794195256356138153084407910808615951236694383734035542648606951190717677007281774155787138928103919030531227761282689472156395682890136228203074212949970683048137105377267732894312943175785052282633044909801258018240272082614161495424543074826666237776809219990513791965628761438250042292053370117014393141137600510331909221218603828412635256279765745532209935363521407915625438991266800339591733247258655523207146282431729706042724259937838946368067583460892646067817744109862952128578252065767688381562506964478241366766638302286442060916392714769657033878778885813303039288866540183365372502392984906031915502342235856609237572895272594231230600101934421940479907402384359239884837306359614234156268262394648862401815260903908560723357487079961694567242557139902882927744923739893773832005221575438503721460055259398282425909129244207264367497358276618036348637230869365709141968247323292627742546671868210057401709544467628600641962911218437216587827607343703548756465044537134213063492951400581144548329159552872255219452698838526190921325244662796045997165927233849003758701453448891100616074386663967509631849019819597473248655890691822754872970383853294185359768198600072049904225467115971679547631541882153381936522988170092498124275122106845119723407122962383210289624215086336485705984823273128856080844421682450988484278315620794142020263345375856882006419741830995567816598229895088062226477938854374928089482031470328264376242198908159539633673765347802386910606680381346777694778231457922672313400789593921117192249137847657855294204198606937628661860895916579546977099708834532402427626743871166629976879580751807760666633224729789365363095160352277310897562240521169614675815976150426508439185419899840320078669717964259684198878785496482634973281892980705666951311265513469472583081465455375592074623632374895583458875944486085921076677629534195880254403424128377459788138700649008602528284123157716474390326426488468622655161844679158980400637000659611951967646634940203847428927716732934429235571278577691595635865273605078610680782770167856730885308919897491387115184567995305513869565332733397613956721999002684652173120018713927065889302262361450309854537815167059322490925846282524357381346710755754707153024802177360669584447449343173428969279608423914503745606813845685652169565389479126099783939391173177322785822640381482115448383099578183690436989163482384782585917925027626688684821493726136864356297985525575648108061483675710468511808260961952783747543451772072762693828630038931548528147653037711826824468201155934764718563589856256380295394090011055517551371101198962211639274396273611349879873482613980721080239630306355028719859626890982343039728389008279107215620288644219703531112781454558780309435027329946170737622781331461195416975311519288041602791250159652410578124030537237968083825947474262283386482419839157353397480786817026751455217113276611994622570951590903680187447307343523258046426920682066982671515887000489175756216279428769776929764872072962020787610677162848433821580181420279183386328392955411220328679175780248094227612561998439888280947144816477147745681634517407329199996982216831904946019534063168827844798335493227732426203533679794433035497053681699303728350299245075652846578894925663929887387342669248975360765738557210800189753946005134862155300935569071427525332380727667634963115054534816623815907331053312959897998337714728028651644791864892664190023452523470128642437420302149238305602564655005068235391353811905779211977458257591973435955594667472687289795096125456259842168789165358378140121346922790888878927562408674457024909284077002206860472623616456618683418406617800422691468166325385182808596223931137198975405312208878413315496832180271567802186775151912916646354776319102282012907249554976949258588620602347282367498542684932278976155921593663231095405262830136028524877788246942433632590802244590839864398466240617033187011858916785029256516400890018864044642183260597345293670400207769904590774148138258597319652680183880242345967485411085691335001950313156911230803409012734552994394219994054800882349225333434017766826002559854598234763888708888434702591638196668808731139931473640141595041486524676142391164502988529137202249503911449520198745270485182234046508878156626685722153663529126373612756706962348336150292026876389867498068867016321379442670746107901539513751735347503767929421880407402619978419241211349692013186072286143361805002558620871672254737270690695057974272913050430475118375407644594965928395321708925014784315539183569045402318983095613297149015023174655697548548127739349913210775385616149112236212039400721708687877087905390376069988678772354637059776194377986600399610449892050345401749987772141077743554861673687583365557265799657933015754079570073440521225098908178082729525837501659662362878973240870791245245591130713556845269941833195433203286650879627690463856042429633518554136218985409302026542979432937177233999876363784939021297287671149701765054381628479433981016000937866761748546761017958122019146275705792875366493297658907279719657755736039546362404269775057259747074350709531749690863719426618047374236128408854346709159443683570180466077106566742723034506322974025743233668673211589476516835497825534332671987662309036969637828495282364298718183499024623997411440831581374755236784527533146500675212265658361955933485971942599886309814994132110557805108211241164162112684129511306790700789000976766999074782874566934547187752485940512492143053603149416838622963806380697681347241851672783001839171294357277220159885967258563320085261776894510656558526641576109471263328554451598721630169502178155301089472033358875105847000934397530666661330730266000337001068483084796457133256089609508226734801774385951011938477873121193531027545426361438885663120544959609323127568072214995064498500685853036870507623535234494962562970079308677499284897341037107489404458339857722736672478537749139273126494217719886634108524949793124665996314555369381660383114093086088452845698782327672940539380863252470956298216631405027417027220672848285234774228022382549182067678434389688195078874800035094671837006946902801962859621222795833390303786670940245206390922865484181688712112061439745526691388794863507726511401295764587949101242648674739780969219451518030764698383106052566941928669977404104781624599068944753186217688820048355085397085872834648952637191993387854593154580822630162359771322346011405938572940524025827667552833645057740542246020829823808345447372815485866043260145979443096357328471003485483169735317711146286130194009036219493355527996421769116992591556348790566924089940787182520915575909533977733406182689217373495252550088502096638952184682191329811007702129565872651577464715453046639133677334024713612847234130486808164502505590518352374869273536561220870746633000004024951792729585526491374198986244844272598450647598983727877314844982444005410626711695206238628090339292832731867314850373883501856372744843761547527349520641434084630855237814946606893570160701891317209473721657174445185317458124829174490083450058457662231632178848739130141717179672160767960911376889253395902599252094037241681206175965137437695293630840365621482484141977163595883785673658222408523808472856106589771980694410034797564063496602634802312816960730096696942696090476299980613778276395061320778009877171423236340526911184705057840110214467171817199310482440351929828312025745246627872517076733695095848098378692865601238139809148007343999667319001551741491838269285306021767701667062644132252617409529742007492908316040211992721072114295784149728903682245286910204690894013005009696440604755434723970222354035168351167180951383643139834140205635102860514547933956359696639305281350606803330606012342726319891028026342996010642933347856741689467300810885136602529613689675116696721041634101826322028044115309855371542639990493356336154481747990408598895688216720920213559244495140102275851494789884212027546427402112795451858126101027251634320985395944500182003540115638643015548468570233124742160815392006237551650757188236949881746394025368110759015531948956003081147935474900068916745836480962248692065443505890919211906119622076046341835703784860008227273327579740199039391150286469866124686451289412718523425392543180572126390305035921845776845644050818178930928443601827150029767005418920082836075511279846272559601648491804185514818653126840146943886940300572528693399719010885953437367640839025695349717150888146082549849721598679504073509323881054560512680844076436384405524848061023719131513006554308735431576377809660168448167881674162828906994210022957270916018014244490959155430401605705064196906555075934173801048242252656179627598219920680302071361262445235119396432862387175928027901686809750584937194996707869068118956787162994565312818881250198241354482562405202749889173995267450203541642400748203496856404919122169099271134745288767968848724720033996754675682144551630658330321982918555777942067516448846797022831942191336479856316744685652307170856398854055386820168907534377381071084311873244036597300288500369127701531594401005636895587987707156975538154084032750918009358035907111209372908234149212199593571141621258748116706628776592188219125588891166959648648379304331617206574021730423573829169347985928290250832370459315736816339379249530953540703786926833955688525912343320553705899128073697032001868792266266694555782099036760791881338553729785608341939783441170152266486069114853434874651574769159620514580309768257012865881819190443400622227392061635868393421529850023570653587410596949239880799190878332425029395532706101954861463325595398045214188342822676773192504215693676889627349209672447175226357884821721435167549825669209952668147388870351407298055259157869308240445365624166109798674797153176563555340509047125268397616641426906794601868902181911216770220653405018952276615781212413236580826743781147874231017243795943931511706407702407399212328365942770029105804439859339904250014441623501616583963725880335498642431383469369297459633597240795659098346594709301228673556041332124808747891781892471061032689444493101701639090661289967001914535622444277440884288562782978893424137226994950748500786827326876267693467985628471489667713863894505720294609540297811664210452571147152334358334523455248480666971670987420245849433455481485939322745281389971915075151023697051499698640827831808505540333913284160416967807557811221303969278775710603004386085780562970407938351301975328529143012150678657601127169776918038075784505508424715440918884406342428422931900426534706757116721259949737195296188052410139805744938634280638133671823586544565689300905790902464955119562718456743975405632738391273344378444534317428758829518729907407400123256231718085645008955209291984104582795856758144102680762241657493354171510008896996808125072800938619708501462458021655264237360870929839718909899230178418036497185520123709428505790560868792517810921148948376701343535218936369485576411485841729622559428273521382355365087676799231060686638875302693435835498211426234824260246842248187953888386261982084550262686693606583376930115143708082681092828973162273675770935150723408569055991513926187005529338119523735203574545919550044440625263889275609550898172408021888896597666128953883555994740777056841581803093522454009494436059599689104308076434622328237363212496766831137488713518660060514038855654175753124041325446197228526635958051113137567150167614127195122262597212364274620926551987333513372219460471971800695064046425881907030371432600364883016311267013557653054597356669990796580707870156801077964533850829347889942276807195065768032318952001046524154171445013746557179914865073048062237073766332902101347218548712439901725590541917765527953074397021005646258466116525770575801586521439350709674245245920656923315280824915877174270502289809806751086102246852392875666920738245507360494478339997917344880342597791128994095644483927155064648610721424910429027712284832614663756431451250056375268119710213308805418689468950077587807625805976732194111597097384956155708344630673396382049812114383394419651123877362755390446231541159192790529086297249396045621998660425518545580592708428252885953313537557877684841667082406359453602762411596054657261330695385528652730935358915324175499868685916471638077760025995766700001476644229367967824977496236382016522555945259921052189319635585303671581752052007037879549694469617777068560508070075361412243352949190014046834394805341190722194100047703424874138928541649662729173139971727518286086036703683978940682892112759478604358223842209398745282918557426011491921186328050514381666980923166966035143144776613355342903666897651336397110072905026643274045367017428663543281351554726893833430523739918333107079957694773076746045321024247328088681654857239805569145563262081217987689458442360770072813551885585948737527732040384806614624575754167920336033169786639648142731867330691493267460607227703265559552361508112873216529134846462118275372419060736718362073459633727300953367164035682879813208607516689345587397358341164856655579238427675596916425313814692529615864847461405916744296997149307944232767668515410524620483222597401274523200996854317900465563340597335562646915826489620334717437951865119630026156873962734757062145321607479175073516132287852431810847561039887696483822067736381967116534873709088129106652229215331169528174678206362187148736075768776905110457660683890346988532515097153499362763211997216768958965518929874011946270380459889126158331758904827510288149965678862913519396645574228117352696496811122484391161579316980511658220797459604849291890811088738414117252180550011114833401721395585593957672019403639109128713886918597390501624236723327506413994940376688395119476822700935484689358966269403795421630388783225819071802436057643987653365198906555381654570697511279537754084440211248195996638690876137296871060044456948202288818888158561310577647951316451406850044439576484989949154314689016094588009272230603306211303635611000459987930094107177006607816099099402539565513381628225650046912610873712310432726307596941971918408008794837625510775588048083593214842548061121677099698204845849832685310950756939423680557630485403725800495533659224052204542469697099642685490418676668583713755639752727221699963744277630559263693546317297892254517420633207474519867280498701837780216628503672470749361923873625684680931761757999860764592062176206083081036702886073000716416233879819069509049737173737774168169753519776131733357216329739566170672207286655889054988476244807250083078541268426262873813231855635792820737135179788543437985213669509094009310935018323570938325649750500010841424833268529242011541915800272834427770150737934611627281105409328057471163213780381273345536318358280453790904174303270555771743154099063306920477686985239910141878289439631641869080521636445597213898789476309860823207074707434747417627397889829177470982366901502671671454480455410060576651650325806937941444153694780865219396030499226950347268288644815160383714961362942384558206378479386573955889871131272167085894560208022616369698508562677946656841190610211842443022321928075295220695079428406474310806100409111220920139456102715799617431579799185628167540070297470514236967733536828381511087040302673428534655653092096904271275955582041821349567770882534023663927615176101176851158882544255158716857134095904576003765001052639146995783660947792310649276249134570330942308068632340664044868659284719043252522455466586444774078532278170832655405430577073315287855049842229452059985982612844490053405982956244912592612757917689769936884914043035744495036934798877929666690903979901009399090690517403995437300472776140204706010424144072307570711599654913071843303841239616956177278112767079632444015234765456194517995881008733201496185826276731661243883603123665943287211564460183835213293274795384015236998053633271007011800848763446335831716630811695421963921988406184469284206162329568491722910901651386031021690259288694507902048098026671679590286782544476387477127264729529478605953281910606362196198399704430936945309602487905159030601089553748980185087895242122355624595045747572416832589366895442003359014384088915245880476629446179376448735934420274197032786384818910326379923946864843535560688589772085830029581268050714393806322721580159947535258095626832040781429308016914453509745287633549145021529091230720995153637168090466576413781469648419125320430230318287785628122741367453242085223954671768868810505637458377596735739572252764413089044757394941123011153581725686416793309616118770500781187516384842023347440668597583527997930151897578895914929944101970039237371682922959703337795765199566856057745483343248005613169827175680576906070255293261013957506638609295613756682606305692095831379344224062257474286888047449935830992766807103147296200224122677437485213981069583624686854708593470776243831847974359929227852166123082215267646687140860071238121055560857091764852324481538819254728164602493733778966307072943628158992084300983650722877363291184178317355163286596645648599290223767623391235251353925364146998287193039246005247876687911793151371943462619991474072081589544075269855822992806320271587911970431671463560641800276363899405065090020618573747215504085063748300134134742878765785126212356820779892129858863157289840448270123783885113812697810214376001172907821105810872323385769199321611777289427781287332836170165226329870240449934272587952807600451880334479470554048594547672487997363148995951421108914506462517730695442898684072048696276064623606563506851125890424430473355721325734280529065578410831217926194593643201917801544466826539088154403312359930721045255236620785269380924274989593898720763433258203038536035412566385438797768372986050517113173002115169875275674315510495008523990235842370561618153494005027531481061702916641366236162737174836977637647824914112838292651719969432474194825409917402829011692139135953148035143946161583185253955297376219347503111899362557953152844101751640560398570479107458756527450144104450570244024526579170336568750589014452077787574722023187052977591246460560282897634407000766239496014106110925424406468918166219887671264282974006906929910936460268388741797313044321636014075309600992111021247215954032842643680717007868143389387731165749222482405217252843811590240765709833328241386386932763135258137520138263886695689230219233289839136498370369463310231422336205081044981064628394781146934292715495615637479558756385176448996101664645840706933086514783706939002519736600814163163531302031599322995874764892273510733955280593058570308444252937901249225860602698991363179868723838904254837057940394701123550187252758146264444942976338283347190063883440330547036590231066541086273886850825590575772212088211086179785682863442915253085973758370327156508861439982694486740263194013570636993283418193456224441739502699570494279668360303894390544721183540453553644426757046722009024517737529641811793804302889672591211824406987376133912813715648688155620778510240068664544186423107941532529813238930112059837607535391967734569469174993277826497130972842540898955369412213577870632285489145337043191564718408566350904792973993616457516610602194233045036669858320939592376326369505104456693849275731999538923306799186593446832210804650535730237409574201813523566062305641192894722911202463437477104598056251646482106749115766119655876136033411936496755817120948841369467128928983419357600886599609578210846796416182910647985472301919102437864648494816697538983399384482394399289145588045749408904476555578990160678647718776470482658769848658165249183283315368977437871055157915881042861016875993338624847297403206918447832147076703488349395025206716707490595779794185899096891346026717804100815752939492136225198654431691960303908075247957572104492190382005627905535557980240159286026679213433085104313589594621447611968642468150332633335859962253489771149550899695738689573137035277119349834445275333910977088400666826347738016050767619983521985840696895195454708530986239544396835926641311311347592642825611313066063502102273177491188549889115209514229473298502833291190551827192607918765881409483198041392126804342886753958960564239218519859571494598998966598776797309859741646800658600708530015365886478981676413147024535295310624201590254973280211870260271909602318492567360871986961757179990210493436500946855395910772371760806993829386800091372947434019530965944443757719204000953059666224592573955122873756317710734818889603039901575566444333827008080522633852198096453534826254504944175938142707774981083104606993378249124565671335123290241919867749927959802277591154865107308727328485433387625667943616325685348790840095373758317963269490145311256108835515657700304280113864403248004230745964432717348410839104588689077330218003103969901522302802073422444444367299142895578223810613256567515379509269369469901628908066835793975875151822936126463134393572097170601831720380678349365210188632691788222227441546838528313131679281973427547894951320661152963247533792562415824849500911995195918823770725756214595062933394134835514621843472570973997225995921004948910597737652901991998493841210322495668705528209728932418187780208082006429215875505038927483960805085909768521563600356818295636030525954241643549871034823792197342315684593939482212273527632517070318810468611923758194767227086302497491585107067305053009483672217051280447599817195297814957066349697667981139848886941271256003556942694401974249279052636293032278398588045666273377892160264407076207105953325914414340123162415139929165869887069780448269518802943804964998835842268930368014798882173062157368190736037962717061513351105714749252783508024383996857083973983491833140495903657023358353388836408147167309582355861052455413332854098572210027692832135688172759499528008870195646632046317700376043991535081629447357067729513943741267854884127424024784996872542207127021002991272811207004743309238421551002774825667855770296248802638199280942072902559835272026508036939162335284594356287578464883680561155249749044917831721336477823395742971494093990462747960680401733601925435941964743931849026189523617852434828979557011177942168332790675353801335968109398929757011753159474488176934087320449434926333733104534422453447925318132435508563815072843838064113727255139892583083161059375892082962203888347838479552454338475430934555792046487347171621086319817531142625627877612044689984630986212385880005686186111657488948031938929091913266765970843882746641709954613050188353171919518494613546196168109221681983183539794578055712618079975796567190206004266186002899431182016873713859040458907587265174350720982391124545518693518132791014665453043944964011442667302258235057575473599282776233254240622716623427889005342842056863297257101714435806869960652196876056080717743582366541300477150119164428741774713350007339461912936741390960222956212695336153623542436797650043965143602870424939144672190445167129576921883003418819008680783666321755967559234812208692390878578507969271706739202392593319017495413545463011115932092636268824984571656040452111896634547719401355937382264282708324818100240679097583726209699345157234842771508509975515818874399527126487857562478784423022611224130112526750243831999440610747774281733389364495917452506013483773607171358972772145541160931279521982882451896797797639123292458623131243876383744944882231693533695120054348811433073335781519357471308891605953162800761826839136323390307888331017204199058004146777183197469544372801863468283872431853700476705691397742044489607502706043302152292175308094296131981212889427369743542444270361813205776511296308222111400930715148093281677575056759990627596090323145699192100414466663478503517586348973177997112063139747915419828711652971257724329238969050723885732714963047594693872994188290340643633502219269149096071623983360528369320319842018510758556832389339914293984602700071390723809438583479170427841015236557326435262064250186618035638728655453112006190936530642252543783953417108372915959610736617440184737074188216500441159369173363541842622721465850915640250896709546205791354239687877944662390890360609903886500867520539586940588280253553953828208061247090208612548283264226960399690150980311036227254548864775494852565960206270052970940693581714366999095759607243859323799345801520481230411966545006493808933402188524647503654022016609173857536673228370226397814231431024824516466991946445226902817786777644785830102552025538496451892400913650323667251712250662113689419956363781214227633562600237216173585361246578939094743876508012536173881582125821776179475706567935239264202334759966363021974599133644962205676076241755909861527808398445062451931945824489678398654328665401134590375453778365465136274374521041816790095088922399441322646919148284243865949120248258329267012795451615703019629006889637115001588672351725783752413582779512291932354975437357463309706803424685774972657825242996882001500646759464942468873512275522323802639697249991841777407108655314346588037012236677333881825515039705472312031730644580656957761635997169446064439115215663969817212721890582923440964862755210710351435345983084217942721094856678338906380991620976201556768648374524944437810854328529820183750451876662083140676607781082876271582712831576940412237221623807798118251550746061680123661076520948890521577457393687698362190301224400481342121550449048029488721429668493351462695541474845790202608544533494726917397849244060169850656384007440621424344116255137870122381446376564545115322055383424979362267046991690142980657701992352243745357401462622802926025882571893759601287516644834939390563096264096968327845520125884414029246596584899099886208577075999298234558769635262735028953971663099808112817973646057827112407423705869515574660513299321711830043871957891712586116262664384689621713920094308138783049893991951039202498926709984648895325158409738191637457590091129973978528732622160724203316860969829710063496454506162970152179362808965942952854203703620509150508890028941571910640727816107731927779479961613916692182027603594962075010889755220865521730885082172303444432129621351698634830247815111532426517196795821517443521749749498624886587870858263852711599022535176452638775729731433388023805870202810213638165167461651532012537820837563606388313046286399019641590141976238672718306513337812322858588808558254290935655578902843602206755303505763404410349826404301350737064261723292416002223837474970117120570343650565881163893822197691926459353778938651853796175310555373384310930804699376606297398634676799586397546088731820623984310614858435698805814369804517169570924864566068885070994799560663005152079265187107046844785092447585389140865843477763162623133842126869745622022198961910712052610741164895066631520033881655268772130605807210836071734373028177747683895306834307909197205486540405265746197351524471696798242763739216600846030310483236311542936121151614408654772944941392341588628782944265926288991962814189884805079918667158228911000837205802095663262009308627654103863758288762159056323312382941326784201160623238837469592356244943103922626670314964443209576584137671072556478918276834596884881292049268092454986228330560629722458158501730735923110449380823001031216469414147531994376783686861716178854387726672109467372478638105924890286439520028983492885326537605237785133318209596371115325746711190097517345516613896891498299032055539861805524729589739247982568120252273532048918425074322271561725005220746565758691350443860058150048006397467930921150622707409419756297590110577258843800001675958110887104649777900389779831754414104531982674888629332453787517967505968714464894743655863222464911014578840994273331068467595510817890833688586798851484204115065879632376969022804799220421901674480339074779544552753349140836163497085623559109073317001550220906341765398685055986699490408400027225400583770913254931952615168445629047256045618134317034811674040056493885345936515005648512924227250837882595139472134994261054738987753456836631070718912884610753445693632594825534454520390150778418638503360111337529519424204532611239971582075543523511214203200550867007937447365009447245234584726234408402250968937279598256698973861742221445796417968073268021952779554778891325830951869992664696092205472516157539882037195288577725300779107854757000902675535868388608256045518853714087801012476700783064375512640561645266790487788986651907039233133669768830538367244692231293186058992519420159175269964087302649464458589873634040065674614784970475742425612335230839231893771667139259873733399624812614735355927532820575873635535516609983238628620759103874536631371509993006023139066904624341839619690165462019365043065478278405879885086931489334886178595221618834699666669800626730201125542323270753948496218764973673470103083255448384257389956638900160951219866440118794825409929767399814161026075030580869925833215599062541947970645205797540264824093762620242453612479250696673105234100567868669751576286724862155149030260227210642687620550325393156292528229629215607741982834008657092762529636929872992885919595714371819550261636599816177235419888896959486586603158931207165994248343779071533537613002563988835247116654357542616979906654331524098711569290494726568942049431590813897579512056396320647786016591373939953779800498922418661186723297855112806151936006422580994841107772072176898305544213607252782598367855379377727543306558359568335654290121251768110514672179902299585618211058337659672202140402311445421236199125357542897448904863984042703347533070196954474602131053686434194116932258610046841894010816769024221818416508310290643357951989739638827718462212987742893703347025346414421138549952626245292209938017715569590342468529684771009317578614481579253630787663912644373299566584334600611869353122348191304837925879109132519755149240819824746853376382265349763204512105603330899565111759455525217694712218280059577594229304137877843028426999842072561133537409469034565486344456769210827618670634742972238000610091431223130549294475974370509788291865464567984146702661685000674680739317412768331879407612031753331575949284741520844350983226847263740682014785748988628769494541276834918962507241209416994232520734291475293687833983417128696535600424869622616551093093053382296041903598480487356409983779835775142310913565593333340826879783294099636499928676846191672929475127409872529691332577417568584424900342368934814715432199543170632062802083392116943496382368911473638474676914335414835152126107066072550710626939300348559944413689766866510171496780871242268956733244849947236840434911281663492785101099602844690143325094151077126853140278277115501530697995893064966679822858835265289993932898153877622760152219545023971633975437596666454435770010621840347653175667573473200216058393141955967970146104284538086909556434600505938625773145710878908578484823108074751874701093134606683949248432773640075931539896608601734284996634084281421108640867183776625834982543971394253248778692251658433830089517818060679859897190207809875278517976169056430584034400128749193746026811892646515545026852722355231805945775387461974137150248793600672298084648479871180916419935268690821806043439628466723932293584904616413552306626890550589990770790534875589444292356759970741396445244755395206452648064842306162439571264940432275946340393642016866083635712144779279461538011524902905642823100699096786199175399700361833150662984554957320317151489250514540657424982921265702459084552803563691394690951712282960869816055320214608529834405620532147356065090155792222224578046663706717796069123576733446903245395728995581732707800734538221778746127426191372214529332375627896470334012151403444314816163178434314816585754761521847003975253700807032035645506019577938662838610619286436979125709938826659989430453140291224293359265794025781032455416904974586548759768496079772711155045230625657721379822578354777982657619683969604378183712232950899720929802109882312772204831065263466614513977119074891104513773692503332133538316667042819505297205525489861250465878415876865570372586226450341680238701134674831448589826526608164168479845665504150879394214922380183115760763352588170505258623546899321902064487815423232439494622746664361823504311113802198530280207712608935454046651418299725988218155072967068545082111362617428968448152470295771031941416271860636187021614019397268788064071150625880928663904732778134314175089250062246084867063686838401647341894313590145652757833094114638295001474646642702820162825731500797669359874327716020865700986956718506432079095076090528117305356685956428661985331655461352471418479687603234181620364742087283496636209551743223085266636124221672735832668491201427938374975743890041080172621561846932944721328999751489594153769639823944111592478358502381836603735614788345926637384864583237362706305036427108218944000545222121109381627357996325259622413688157444630931856714831551409678875945834644295230550900126693825088043633965929124830977393770588910983677299848512322579294909150159573157060742250204131049782236202437131484003727541488333655353481354513445684900808849762777189067933893547618175125496087385356399993776862037622286889053080871164159436364707698149088072587981778048943810540349303205294023077567944328781198711912675364048514196301043068067323674434225383889042394864526003880463870406751617373271528449062694872058748869847885661007525768950847720806643492284004984578468885716219596939480259478325690461160801236462863128844257328909875202365630239298417105615690347415714953872666787405511007536243889801129808650750822292611878198774864439006658950534020717352311561082492102620351682862058615231470914376954253804476810513707318709341255003578862835993739574766681623538959970033091803505777200490745788934210848706089072050048682667198966495650379155529863038918105485052428323615375310518087401529892317295945995321414668943466460129150474030253896840754207363842205183778088229841993857668857572367774036836175173081934372193558466557803365301248418527672646727807568156505083559593226008060549038332891935172648646781817991963660273309406985295603275563402898713655847886583330798772154519552387954020690442040374100174998161542218000004254825010823876847032384470358253540469678181868069800836804914442453065838122207888714425474326756994070426646608225378879077871053924749420617124552617385232418743503210944729493089928750484221208140684888019017474960892539219482427417028598664101838008487094064374987019893901606411005563750643145091069603927874281487003102347123178281627292325957391754863753549021400903598358447556179364846105930096249852665715098119984650787181513418963302536170320506192298479095427939737955759551426875178999129003417036732816975805702430592494468629558963886431940550823728913846960178346523832588544845245919301446182813012041628193954693780546333408736446390280225254510397814910775840792123400735949374716594911623256169545825264801014668585407238008814232132849652172725120349986799977389713598734327762625727975134740355246115817134328065765967580762906669474673191511430695027428735978956934720563654714165229905577535411551134092481059665883990827600802465217951043265795689900434971783939186214195670431038981214160950328799727027319863880551323812200596661999047610444354663088914623805553368024761080835080905315773751945218503130648907877936399895639666035419239725348829192041109821771504431325663914212888527376005698511209187210458365895393077402781961198572241297756859678038347707132432606080246864122955859695748108482192584152531990332860252950810796962022216912177227070162441702717605472939884873831573080394557575589195175280920008606952871075264532981222608117520775927913226454504888951339955078755667185960124089383662826692265524461963457524811872931566476333593687834306468128223547326744888372613618843500535236653384582178624301481934107258198064255166694542857448248881020042989286479980953186672792065964869610156430649306779845381537681379770275151693844516580605300106249977576920715495765670112517830254461895600722563037179465589922473135998267012973907776644812754853914286726595141752754049578404787035931506794604337475787561474377712666380763649822678095606181410266398165380730991677326263329338138640460920354332080042306082163330565735881495536200210164295973417271331811660323726231072965134280688430419956282357101675892718449088940377021562914246461809198436946509710039890659504149492904801730707196963812551934210250891836721380783563899186835708848307798339157399167255234458266653341095716397432625127845066663495092310790044877744582744509631017156619077506259368130864435214379959176250012079868927824752573986843660207689022659453949612822864535819964646226572683255326004799447943728120218573692789469932788377913988763472340210530161651729016148118519229127465858519473993101196226473379733782077425311969208759261338630416828011081429955999483010622698877393691426058278388758125208565819867533816626125662616016770715340177132645956457588567039019960731141520985046928498146519442558280073204430966366183430227127351562166273430503011787839531425600033546389930641443181046108211022394050501686386622308163610579483199718022353533873685601806156694798357668362758472001185440658447304869528191013567445775807550393441218067045875754151113802089207621620708557397485231493970404015088982193629677427160646608103690253857042565015988946667355696831426817598716756958149096196053723402924642474766199273904078097693876336637646273588881467098007079243822217645639366317454008429864048566108962204119821661828559071773097139567128842001993373521620394579712754314114632694478683680963860919893044044999822557616878107806659931324224178431763667515958962594075893242912835151235503227764893116230636165005268749009970223037769734946176884385047066576652869914753126063803668728885896236421500015975002378891204355333972192950137318751297846397870213789648109919464836632369173187767651182668674371571585939180880593138758442594042853080718000780034968399465131702450308930355057712876190120291377626186765585987654734872248782980279267757879352046389363197499888100700867571507967704854674030274437912895447052314414170625342269962454901150901201480130321379648804870196069860252086985992398530904157898275082510875564915590985061160947346347709829718078243581410596595786121508927948463746199608757550336594235862368911072305257531033356430180020485265474493917769798756783265685955900455893315312169183002243868147850956212161036881800218287904787965233481593471739315052146324443792935672704147827013887389510283531470605460110942164890267957488965950409492189077179838670081488460212099285867043998405545925976730904217516931122050162517905386053410647459455783726691057458276991394431303749968323656309311479660805603834235636550210760872567029867240156989116475794412972430079456888957714528750617048860747329996016003096195454337814507274563827970368432058059872267953854495522797435078058496102422333903521255930636600806642373570817345974174915775955751461255457777211528661691296533692648013532114589717255674770051126841849624164104558893084844906248650235762194529599974904222937343224834328604188505636064659822640555121062059924417981661001095347721359071730181889293885075829302536610003235310450455801860688924195592550404726175426003543264695654372909998988389078669486538993523215603435887251532004057429707707542261725814867448503504901664539242501653235342156394388300231494303305626307635207082771700705281446410991471264602227868424441552688677091933946282058918278046004416688948634311719165736351973123823772699019189134472616191972059280008665193312358199097678363857097604891843848525108977255282986089779732454112379060036964392004152602166389767422456232554199190270223001038141024832430625478835435051827353397539452556672382151696535027375449985070116203851711529928163961824052524548250549401076752152460975940845299726180022836396491084107166722441051568717554329071035286320962825756979095012977773526846286645240085814638433313600038848864640218989630475846814211229619153414023412191887078964452853335034191111828128148682992658271171330479573109668712378079860023165672847397755301448254591286512248917404749399274376789927142930547484659190960225247736656998181629008247349503677270897486350461832865212562343960762060545873626653834518960020856267548226433536051100194446954952651052466736041620049004706446763291535278801193712751567264129787860595265469764587751776103422833661312451276775748546884844704383021499167245048310488819729404896915470399547928972639259927070415930691928898891354272169348000011376475568919099016835475459598757864225011462247454902442907317015213194665740828243867266343644442660802404746351480499661589276434530968778186682951152960785336979677291881500817215672270861366701857231046163477706357391585155365458672503330391137893896782801606356111129555686964478306583682970916277047078865377590204867267945163189344416955538038352454448131706652393694059271517111131943372609909667294577263925356501136509588544061741219486985981053627233775145359448984665575436541681945272348122092877166003107319213263389555689358227379920761240158112167791226169038413549950555038318637874906091660954861366715709711877219241248446173098842671323800148800246883081338732206801870160959715485342029636776608362211339908860313705755229967953496590237995746694408691102815019501931284546066955885459875558710978114735307951951892296399204770831310817752737097022940776875227183514611861693802749757636846426193011469985758045127885722023679128696862102964446428458228956346045783636214285255476400000674549569491177447584677291014356730632091338123588831570458044789533436474866127887778272298532432824466939985939670927505674350544333373274565103717915907296577239451851388259361725633301249491936711933775963942228237411076841493957644609528820107019360781210016155964015644033388646833761666573637529716187887275000648162861093384360989827647100736590985154994959330821164290496373279340019907783186616340529081539115184297682768423357332276490368651361536764146652610552381158356834604415563604484431074425645510678013472514128034935247568801052608424812306964985282643277572705447954759028692821198086764530561907520200656398501210209693935140997399847114265394477675341661384495411222276084621945258400935305190018768830750909400509204344848475554320432135722344987227736068167251525313412735167272547017839074080837655042059884332588222483327400907771896888309429450388847418952327987014392007472396616016037380075134702597008252068818940947492047299438873745510567734564330496966210344647943205044221329617288517112797174832136124919610589103341835976913716709367705368009268746397972494914133657064095672062128167635936268580127583262238729605047232584354110694055720066459869036549315001162984128843491903091285018339724905399531784426019241303813144527543505237922259445979300511942402225453409995327657892755398636980800598223803778979920325595478952768919608358595915798660493709785945960566893531183892226753948402211348293361962042753064263819194888897227817231635353632972263793484763225883373992704431225664044558165529058305408270844762045563751884554731278191431036976606145326710380738050256310723231590714006048647867963549553346470505010139833949304773526551611113681128151950312446829488235890825287653008529210297007471222634548548822237788950315988453154480814170637779838797136487557390036481278992299245273296579425987861526560491361447705726689737393312520423198874875085117523728542260051024374891608682258825311175015991774118520951133726523554591370639958064757373772596240613161828531404318574365915782960286626433935714040432224643430069209459580782608318822857798234297405140040738508872531371095103744114236733316496149772517872090231322624649618028387423203913175827524970125051137270789805484441968732736474824204151409111157442858485825966803981173975524006179065388974227456955226992121552865762370977419114438890547670966540925412006211714493720360043703642616421139189460574786445922964764263915003270553049166178865336433414738716585580009196268823674642632471503337540960863047613515984017172775480313644000188669360269734394138603853031163496682831745782866496955816854693390432577958884431865624255900050019015853193000475442182621223412112855201436691567964422274481249927482765094041665053964112986389087916164618858742495502640785707685086505623070726856722924637145101316595742947704578594177438600460943446399989797177208333445734384314948423995769172260163427538165089365653738906881421387777917415103659337575606743537787634655817958357665458695842932473934731522259133587421818936695908225482980643223715388645833189611708141983339353581950726371399905880809394135967688441064394558192127844858637701620346850631111729332333719360321248944516940847024324570324133045948941150662492909379874444203577827414955798236819611830739842361250524910247538622561926955865269446434885002933971953157303762416988992116917342345153852092370245633093820652583227911724204144423908791901265476765814253240509427074013129924930124176722058954562227298220850891275172338884216277286219911393122134315636894733711092960373098642039347816047973897839525708040353312675364175928144857026710117877712084000543587637768368451966407346367741529186743246276023756800411876349141931084002249495330869300570349458530002483519562051802868071391107296618122191058384321153418174439547867836948768300900856688016973244189078924820472486474155462702874259702348034521147914214711099684957146363343145558343905379247023387184301720739426162584523479630384528654983783772549190991719446583064849722495200056647097039799489562971171774752534276888436012613170361852458521695265781461979947734013492637698916337205161756844102533571794589888585506934478904244293419194488579972711116695709266584761172971918721011770883751334714638848539267610886238757998073369270606755580529134603264591595990615740462460033955052907218223821551457979288179585416759026691601667855650292599184921296732009201987471827514640775149257984353541646021796386031172409313089043506878782512383471356673673466725410709195900800943146203371452242148018395640204332035912577272216674213925374251652117202819278863279696159834561170710232219892349681607979101000171758474375230378827980035430025359207669313116290977384912238718930996220582310779683997896752020318520130818072064713545433327504029933059824204070409160753280296030325290407598783842077035219948480562554249402424582350052361616713254361656465351083495871660437004715333549181067537246188785060313128236864076933880862120927859887366163097043000842651702351343449921820124543270570716570775347613187018858238371558869654840018020869864361875885828983932196032647030966768929623978140807159361987443801071907567875351933251024842633229930743014661801245978341704832864034189851238727949337006725067325830201523978190714946241856573931796290039426384075193657988744182397435650983552924654099106952927486339372731725706204559359065311325126045812061529089900682617363334867822387384178714800494504563373421989426946925576182455137703161705818892407927079331588252981434041649785330589464791090393356915431143744967684025322695735184765769909845578322991597166879962021935787826127870738677064666714964822186616290507193726192751359695811976503700418025528843627765567023359201440035744544055031908533892614136150336232610104078494002542112028594557152235863027117906382509029234360186944842730976192153081141278335217231292439901754716847643147344434368135527397188097068926791468835171498913298985974903863568675111218524317218462267109413709116611993484974668786199314914101274602766087028467037271573872040585510728491628153425176934270723285713893928181623758839198681304820290637201674807323423915618559071095364333430919413299934994278882978183553932928293963052005928750562262244030120920549883657869987996108271889504864021010262410969215358599913632168108364555142452742107746676709644891121022587508357836406809799060844154042666120605599955143119075245351078373588504653050472841792749409194421612083446052678009044506604284532302445155510858484052969742484277679860477063092698551995069589637341488467714292271498376111820260250337508514429501137908106076207154860745538666652909290687439004827798376331656010720110764215347711539008843551218916373521523291354837626981885384383631248648357086406214784130967534114971758050949014857923060702321423289212409413032093494142122351677590584830184004424922444184609000417636147008798886835753232824156292990118311762029119729044099631063688744215520526606741292561269581485297339938103907193057769394172933674218716986195065545620182080944576514128790098629310772696392994459272256439725888958350190698885928062113373725230342576317586392171559832570220265365272156772474309700370112327001345253266538437676509927769003097438929672296217778838772389845514755110407057822161982729466970576765972726745855820686307254081725478408575331930497071595055968935239115235969745702648940565581924343392294479207881309732847562811343832099181202849582313780694311277606435356036736963576778540536501956474469609126156949695695722942405075759979312697137708455067141840873654607082903508973577697650759111327156828702232420602017371238642937399653601669021258698526810706244573141133817190815183275944767367527226407673137637267217880769414992311319747623128321497040038060496368425700322867412075578095860758364897158265988383671005819645477112142480080254624106371584494627068926203626119902055157142631746398305831444739662099423214030246534729280730580831841637460921459253675837280290472373136570305515527690333215299807921417729773376511057701628792423207044869244492961281807575415666987510437937021550578441965040868142432356747607975238471526012601180052605918391245338027690788964696488816757664152954301841705251799375673850711222404676548559463543593391045511032861515248632852831341846717954219370608415218605984762231000361440203408436299943408052132485376715644880542734118966436127877201079070576609049534868833969389411892876271391436696627330831508944945180070103402359469923048522444014308930761803948134453097641687737969061325700107961280367827255957776321675359477251616991779552397370220951829364525448904815060847304784009331645732528197757214884033184276232434280654059090154707064113298455275336773499082783957969129471689460324893627272401346593422484151802348839932346653068455972390417518687317390621235488578180475654598670830423740132468943380299116232983822903194366617528197343717562176174305811935657376141649692119595935785471841734758916554329596231045433737007984857506607693923908292192460310089102089610016641657788870343030944082381425443235390540490298002347313300827016496345506535731912837639426272127483070755078260737291104825292732947214054041726265834983136426913032504838890562814132661299790419499385517218071192532572506424324695116049942955602885828531069224515947776326096077923580930200515585447511630587174045452280272320499290611941437066897572785167921292106136045750533978636266359936340681922828373121201759230195005078555394875751582456819689457508193708336727771279893324054407726182562974517226877727622281937570484005113482856264038230919860610491451133611699970467472814957222494839139297908468856049783287043832912468560722289003511089820871953398017394182685923366737465373264320140598356039489637780123496408015531903239088036450892597500704746088394579749584070770405162772521459404233446626335789029958330028754936955621624893582215683053680642494637641171715438606741587934649104616309346673291555231421011055919577736511262615662475660261806663307359825042698192528424194059031863514101019062424876814964399134262884123690993394017219996183404190624408872566708574857704628477210042719855106756881951845410192193444936335710408649325476549126693860372508203469694858155109430754482039878644610164316756396835965238915836404584624622092866151457787793005824223105247596540838358170366493038206060791809146840886081700591988034938262235067817559455406255791958446917692203996447232002407582449386390590469041641650834647468560829489803845309527526740144274658656767818842796253451162152214628251421629529193775646951681810281203470635455751619465194933120188460685680035440523503547792312156125731940446867101660525904610486789217475143814364867390801548203316966035950206141563534461617769247497589989646410028659778997996158183325884458630994751598946089765194883636077456508267244434033336436602780338183449607232173476884152109405106857382041381307271135878297685569864399291281171138569145233619983434493677663338785841528316773458862702296883943292761163200802423432476342601629997855866812040520229995049903865453728538160272107809072658221372451048572172527494178081734215366402924775673307986039254482487552753593721073332809184792003576072463423845195271940816114448914741632968469395667933657042711895254445540828173409079650875380507060112201223827535452594314209237712499743228576008239645808119955816862977066806647597913832559733112236621524751668527814543895544233765534230457320382983543089776567745981835219567615296486068116060116764576165354008249822013625080215767850879606846949795646284572398513634195005127678205383520945755353182693004213166497313070924184685688149782847123342657344122401536273175669408976669974509950127282710031897337085365900590359673564230899558245781054400213826090891012234626364281022692130132484173004447261386754941913682012567946342074094295452543146029393595041370888947550089665255489567306606633727036033648485517082013115482443124219280821955203870816353828485184774993273401590368458263815459292618737799870417784313344567863534549327940380511670614176219774542880297430174142426409255808261687830873947923016733458833941376015795172853647305224503854242813757228603396532372424553881190609541519650199289243986223204327044556790903213765889201859605980375304117396830712779093442826547990411265826468927619081198083162528962308567360018837991935701070093202504916476841189802698344043548001510914936766947982201204206878605770185535007905167955791089411903643140563048726313925390106958611194322820403120900241960527429976069022421646890062317124419476666163946729106561196345381725291378402364929867354755797509346908241817627222324390816504368460389590064467961803157142767873779913591896085986292575220433278612001346626682694206627069377592158623237124446405893020943454021208956125626152927410794942848013178951618445804598286198339744816754336816487257306149694107223067403756452691950803605531431694702884801539224837939291751511749817939421357370488125266664510278246259038160645543338039247818357407197497043121126002584787325822628039136845460194694092067054605408993608861949076277911209329135108810471618470558426699707719907662845901538068103046049221531583688746181832867921784522350575930934006878505072034102690949495274222561657082303505516511214137655610982520394164121179619572780895136861973420846822156853880331910666551217632034914695952459867132377287259434151215464717935349583478683088985571467900150703918864518398213139238788219427047492224844428090034563629156921211694938266943862412536821825486649378992965482743602371783201533005780776143858107624611780457813560451795663727976820821131385632730844206289760601779665537587037589904416189052998471962991202567429490020237668296722108734404376930360489306003022500032623457133831229532144577335382259917652379259915244030892671153603403012721072840083571748891286159897001690757181686052432005773175429404842754903153868293630654555807007514832727164103120699781182518473615442436436677962557896691933168166006599335835694673728054446265319707770296416427182331028313380944278700210337880839436900827646057577060313206785314024309068311047535042653285502977849063991397206258344326926145129036853450933929973212989863639842184727568624266909160506062269974776699210230956014173146618755627758138788424295066776980707493313920370776908141874146018029197023337842663721779553612405768788373217431846863278411906243334940015893525831517937406861079246926967193041444273228005283012731914506767644895609810969979741829263765184936937161446471123830850527856948931599425085736480457614814183533975272189377771584673456089479433395926832771402924394349457202456047549144276621283423255238659639320743568315274522834656810896013617575290340297899855613575386368147000145950398432984426689238814204460996172977025076999373317861974467840516793806577622491721471148239852434691962030561999645710611525433184085216700658686966177152138859721130425986108563697046761339437522626882618876619724081828007963287456207517291664155573076434185269712860787955314629066133182708344079230298099254875583744056317625151325259574986776203798893471874360697904318818418545853517344016996320577861286264939174485824711317596590260820878327122220212227476787594838468752987942538286553842030334711418447323863983535927656885979226195527237078514158956270259487861931498006443362765534760020534210856535551556800917393918885469689501523749325766213466956472456217195433888462111878812235637443245660188131643474482244260624802446001822615138175026595815339287442823619756632717613932656159591613211093671212034000290502717974536815819276429686322911371921384747975686398485705375408217988138511960028964193788134399743242804831082625948712066017549114908092627728985197008449605194564501856412164496883026258436210372726305560707722908247938998228100932682608380775640259631282332496104141214729216217051607490709576995026863371525181851833608343181189118904015475830555251625860275064826729726579458799025437726227299685966864376929345778849205805807214606627517974166510696977414618972322878166938142997536724375855665371475035763698759603807815991625351313189145183639842019098545253543310700067932500466360444049747567676565258528281404519315263948269522252718661164792023783163216561604971304209139150603204852585074429628268982743637815453269465044252791048175971017171834042323792871057186490193554550759401861420189578181330017828323355233764713678290796286104307899979717063849846089955787116070460495749144011697459645507391193203763381751250667158896063172466730692477205385047165314441262465534585610287007281261089094895635694348227640560860157397624704787662358968559849825417149060975977229469234114914732107312645963716707144269978490801847410961738470645004623681925640969123899367839604288181849710690481482331984017774358585600241802429115775840590414704968905619567374420695385351116220693959347307402102284988731697538240054850414446025316541906524352042180508602175752185736461581894191715823384308345592944391716252473402199111013312258821527888919606403153961245567650466630117778274448045749931265005945917532835754814700374275008989154404864493512960180852739301014227261951510108728747270946273137936325509443758417549997267526198933863368028538325342085569239537177446188781168138742700646122301811798082575649974483653198606109552946421558440334158996972881888138540278011469778297754381241506777389521596030393611459747282031809008751542429032708409639303942470247946501866951926296924385635610648756180299383846892594679932597344116092758819951114659770212821027407854321409763382178414688734348900398529077674047730096554663396334920708441678352491375908499112865914809888118463481856395271282973680472703923045109250006712278728764078998250527590289754506264537830465619906984963300446704485184804973747278380212895284563568845473313327506355143850694585054930546883716296887852797831947274081985182048109516619732000679280545338928005891916183537446588514546281052943642777779911508782200198862849249312577846412849316577755061535177845784642091990463092445297414140140811992072098930122881862903601579384315156901297055103912694590265231632412331148583475365008463277027912443776699196723884930778590122654044709096390118652560611603861941542702597232381990459600476759180660167119020836667184287599568954378216313061936694998226813461955315004683405718654790451749955693892646546808165064219071278532186323349065946255649228642436727784760839121773393161906303257513879700199954530856232314895377226148850064775497799715379366588158804979873487104292093643004476184525108799404069698842817925730887640037282256507668803532783974986283824832378850048647296376575368546301921623109559462056793360752636555230854466295984454995622183547146036155168857017377919779247001014268649579174996303851775620333543102285105628693658569000123055759672418550509528134419386106148939014183992756235999816611522325762848464183356963062819033193725585616014849268068948790425275204058827268961300087325362672037913865126677674952101441103562115233971971821805006560939328106958040903825844671206750263743464086328961054100308069143124576691852207351605768794296051715283513693219144638378987910822463790122968485380609354200275056861722923879132581611948080857855202222739884305691655907343070133196548739028164076392507627709778313471438093871104600040860038281334379955814099622437245005478936804387702240457960718458370508501520615035517186119761752393642690551202960014723988891931963715492205039820040604305928910642356431498404258682569516781236618772481805984726259401695947050750815402256412713476940823912458586148977721369361613567561423655486604942612348803337756496923180021139145070897447970496684471370305644633958990064794446605560961786271053828555083048414002608832161812950786440836135574888476395769933417147592325433743590908337688998563458919226845263916645487803575452881606868340226697854294684063033939403337183557211270899023666169165446257190201117318935815713441413474912855077388542208542421143056631658136592270014943056644947797089291480960374447600148453761750771433760595268680266550029172192379060535809621403876885969328627288080823981502324520192698478794441638770692715590076990455280054493645895171529523408742973001447204641673152583038507992417323468985019366708231309536726511841761945638746250554583940772033647682467541703401345220674765571253714907504312455236541886405821175682460047300484742156617942343931694204092783888820802503679603312393867675316502986126326556447110766132706467478508119976174923635847666820611368895473285765864952010822022644178844038059147900059081612331513476211835830396971672621149380238792125724866434604667386992048986756917133101253374095320163450434291189036040263297016504592994900222771380444736507105481505959116296399024790893462525043171137560085994342763485891799624645626243658442091909449707687868280322316870051632216744091494342944775634332017657118591557750695049178717557663643624776130531677824588401175745910019506271221388509683953217594409614009519358558698083098611158771314632059964878397357096904893296358565960953889910483693853338552321385175922005001581448518960713105080276497525060562151286027651449971167909073774148585679731540782662551624335205596029003296215982961971430320479725897034949831641531393095468628958298874250011927470789375198674858067988802789227347899370229915260984690986272829708214273824868605704430488552681305139269084335668733679614872310479353628888878600396809290774532553447643315412429803973487942072150953413146285453825509196667775371334184429091180528278003320352196915452820415974876772480947866339442073694480262082883204618899202213962265373371930841271501565403258564124014982449130125383796391714968339089092216474164738648457391739410543590795387286862554580945595560317158395653717215654330925479648874668798959760021441311609827990462362568525697056603352536035859518828620317550328052985144255284050068539403639449071555108502694487597486702543999880849687673176649964159519765129410021769693769029655883473992306127154833419952515811912300636230245854980531994903257452607038460514434495898879861704094592351008922274325051701278923014762002302808936849900482822826249693949730913842191915673249877333536856132891585199636938235745949797765780543857233449709762062592185093498954553411759925860534784383397916847387893034744343268571972391602653110986965763267914220705861852740221356241165281615015348701278072627579513147467072121184861578105118585486089428939453882372022813102391725497616291192684013747561001707375206173768837751387987878851018192679508836455221228180610472297579208985004797290823310700482597759467169750271554476902611908104513019939253995952245226718270091576964525534401117548762514735655208487095226103476163684431389031576637760770278060780682386816922992136859606533989638315309910438313241193531522623730322391769560149231141237892839934423887794570447469668455305362056223042431149427116708673399933004409105195371047058856366331481849733748813272939216410133348044317433034090179036014460898138605473496313367689242856798866101046782961453291264526376231011109846415289234375932198423411899186529279024079590538828041642158708011697040325314122683441782094441413728148999015239737288430598038285992505976874823038449539868985645645001155753588976683361006332289715480421911281905390730472543840078075574839977045924347528326354463954252116878479125782856525970110728908939778908562337388391388736189697325893849813010463873851595784414951877579954944535064239687983783787907304745804973252541409390319616631042679534677816511415512651713132477095616381968027232709020053453314415185577004994548221848830225131976574554274689960519109067738580093543605795856160204401384159260445644026770544718844508239808853993053862246930539308056362762879586492816767170055191478345188118503952710671844216929485913076041566896394571046482529035069385770391664527083314038921897840105734505283907345670605101850024245629031781592120979092326014529118680832595636147964797876382492428063223229913622437232610700237959679101060483323539577259171120421535822059439359121467103264969334877170825354805608744203287816128460573637627999494540697119241479660994509727314258750391307123877294601631057157406873483154340447029922501946395608244164418751759880272055623600748980540375012844282213444282053709181599273271921690813182150797073811754350403598886832897194564792615872170880858799936685087134521332814047167339033415571464318568930502594044264709662301796642962771475900518272900711500159732799320514528469038532386312439745230940519653520003109622293929190301446868098598376610854778653683838269068274449320060518618886723015412970153793650059010478656249850588805963878806483399612546782353656547219568827364848679509195276798028547487203820275954078036007928645886118390931776957518074198942354886527670198664887460410457748842762668722425562539968426022648329219305995746453407070250968634427364950586337350531335418343264418378359259179246451462300342127971950645854210872008975533833909114795307233082185708918079548842266610325951169120226599971133389487122212493442657174177151601226819975304926139870934957803014754252345477072122137505098740731238461999597452181118751505608037755623894286111482622391802269389585795918512629780523636056153972343217075393934796688169288429914725334347786482158967140834424851726084423706319334625638488990412213147951957947340738054703604434083590963726462706494781628276928783971710295536536648053884282672003069885968285920139205792609181917863920229818397724824491521143038421057844830829364075976730037587093023396734627894688116919562715854188237236965939241759372826284582936086827673181097017453237797694158214970954833231843643497817840830176345590895695286571640514821583643356520999878028892021169267601586608293075350914859114309343672749460929765736729701157608755665768081887000978500445195989024059943249140617180681480983761701360302077131860121890441880003808717870743153207663038148129535264678652192369019992615390262762049306203925198639377009020357949688598385147716903511132444883285720195466966957434763399047770973782904012037282180536581707052158102067036869151209853675139581194039667771602337709421474919155748789445204409431383415886602102376285222561885807989420876815688297170168666975547972681729978159942366402483459964101132015787213858399339485166337102883270784127670564270072035495300313529790351026503633522501290266982995733823554217404509501961153390197719119827728014850117402070763042027172232828130144272228527667382575087361084772627299754188785190293727172293372696912944578069596285870949397753075093290784357534850967649232877662384056004645009174795603614282966020099925758889416047355156061075441795701773470202282048199151596629252019986675449733854679871502590341159350164931829662005152104129940753860551966849400807587266159328322087532314619260728021651415307206764436132370577164935793555505535238142008329887562325019087691316090726834808329965016405327002060669291978162309738056106393226370496562554289664184302456890618190743476143685071772324009504405790491060641284460754450424970733956274625478553564013511996455440751902684230025488804718993504993372791514505900461690445024065948382776558329714885202427711653636757913975113617647692454255359412643254049767098454758836293177790161375148670755033965102283393347286318725396297091646151664962130345992642184790780182105029142266884628660228038251902450212652929542512785684784831941876448483240333026449418316815602835974873063021039365611229570810890834799264333716332389291283508918241944159870400809209290574434843725567181461579081214075448861275090667395617813256299611781154483217979273730199197764049598129137788085000398909180397492151547252225222356269829175006712291519627497681962041976041296152706824466888477898301984492420996406034467085900501248568360734549743844380979914706664760622120893613987511976778588256497059480691685211084511417723119944837180372692932390110064907804157153178299957776994531428054726686405834085311591628058677672211186590280950564121161175666861826293126960110239818111419670354833688820831884719936017577798728492581914020058612431484313317322531359003620369993209085455163624074704013866337976693008200486945786486985223126498286568100405183741167113301983854523816395106973776991430264490088391060462702794632068795282228387821102564052114335020702889577158798524945647800594706360823541499654372482582602014779198025894522316607104217796555450814074023762537222846023969797530892134052490944139836713238841054637658771220408515462858423390365602869965716115611725866351501928716586371736866394488738792840774925980139454252485806628469859138122019249345457497273661935113391638684554866986732724171609691074942579452891170113044698084520267127805783605022599842351782137787908135604166041013560641670354653053066301252734233300736565687820905438141940203310391076063344431848565816860351237976323817769649274904677315708768941685201167207309266549444303475011435742191896697443735243322085510277376571277598203123357645424096292088492052524421244116795307218279714942931439087907503265255399122214937626536201051324216204775321544912600434389442455646183239085931722412190231594677603798003205129888612055109350973219958143015073732998411900272758482876002601618537694162501496302897067668638725872002400420780783410616174252293514482526816595133360458581096883772820199754889873796996805563991081506556218006906037987559086309238029948869209155120577387191689873965324812937353980857588199154273168633145386107528842666163443540167167958160199119465224929161454328627006961064771610191989825198594688645390522776026202167858387286524571636846127218923778485166958204110030812414431564025209770369131209454241466222241764627441013317393242323353925534298480811275706523404910394369922677772829121193714964982670983681342172838054038029793560214411683892936939638650068751621037691013076364868996317697727451739230754251980626155193953890140965030724099770714995074172504992865121921420402800083985988289799929299312686598147327580367744324022449492944305449185012371947420082982843527405832389570073319030985697617237423520808863961158667861187912620188957423713553773556686648411579121073000050303167910071103352383326305160082022145087303304954676104533232999811301911355637028653867277475046984621420530631493081200827188748257801373874200528064255186677683448900274920705232281320484983957072522886152065774098638712477599021834886836155357952575520362919386027713457039561999922658790685813798709281031390844621654520545559652463491066253961269724417732696615954544556798512145785229561944038369397109616340748596426503725984907954370149739765182447249812273770027807685583888664228765001204729191496638616408512218456842194708844160905909222544914386291965147777112865785751209244655751290985762188735040480555112610562980133199534359879376846186482180812024062136093685879897577724670716608324623963499365390282813595946011188874320863426512007578086139699716334465422542414404801697691864722924275000993824879344505331079813753111955182187066827481462539548518513177545251451914603276028215741722777047909663541247984221981216152595989569219043157836318190829398315299732296620222404400083889403081125013770471172113933793085043892812150410578032244144088030973599144883683750204684483781765563154655672896080923950071250428210225902237249456672452192090685481148456179634589710470096699330804983135240831619189083795481864474998952895989889683279221553363732421439010984537457741755936388059106383335969576898965426456156002501391420682282358910041759702715703442709121411158825937825842865285493342183491352273333648172750410493682368114517561707565341249683100670767497946278579381080885211593682029475747896484402619301700322120264143001902928808235128114576256515066342158262590933162205779995164731259249493430051318042344579230705557726961133989521062223809732221228964700001914970991884186857344419055847843148941118234920801644365502256757298065647025113156939040854089656799206900750349181668680885152444361723254635245551280821904372769042410129689513364777286670205388216283319528550758333034864574733804937441314593598423490932657114748433630349354768085642460235689233036458278070999761034131380403572302776371300602332576196991071059854778527039803512378150845020975681923312434184785536898466593140979009883472448509383224709594552275105256606982040161356878660374167072582817733508246956381257831085506829709851789207653194749968307583041851025951041691366452594213546050917602563174524170622716665572459022931713582966231312611178151614479193286103139734030756598203238916431015902818182193906834455082999348804460880826230917190116267868899880785850310645507574493352923090099896316540855495291500919003747663818515050008413889492695738138672978081091530361836609504456899239950861267701924524138632886012218039635452872449579382962857192439012735910038013182937890422258833358170524286875645728401043257655492573201207299623386698026149994980779067781684996890147541386427785169083330010538106701634478355336664754100027402374357192067535591979871020818551991377127934410360264277233542762692927308528935297836557124096136458213557090841463662213624825435399317628949219135613321836380107849457906609934347793849419566676800348010452558567326072383664225238280775699722871247918607981846181496160831326582169102432602411347971696671059255984112761212876309139274068934882834847335522517946954273482930604506624926547232030347986508412650524562143790394035789389952850851173485198656199964790951263829916333066832049782854272491505504293274975820877793497866531300376243327594719934896991396598220266086452280988287367685399271493568150786769956504012241999867869738062237118236764166011553283391811967308483560150217075726397775704304169908034727803299002111948715420027671482774746812237551808908519614761617804727657655400005812221964337534313457045917905430178678124386113552198246436543602764537174717839677816756667336861958772578346590901448175444430620305927654106321048316099713507429498067795302400112629424300645790974861680758412752388732719088050379258791198251140428136761055324018317105624488123283370725543737468256507278259795541008029537587541157302895181818570757136767298410234621551219337126508274730915224117545962940341431646673991555953758006837408735275586523391132109860309388383033813120113420058747413800985736438120642893753365812042651220786116718663608993549441977604111441392834410014135180860196337954395847244304075509303623980229866884891706456111984443993513479769690284731762938783636805518905033361486032249681315491923147180573320297159037324834654860738959469472355165497343067492260927038057172233854771726709568064830204756688813771013346078143879624730960432844000972824918443012981948029522544423013164831373715505122806108860404375411684742832329913145453702013944939302519057717445597262748256897593079595070927875724689813955826244126350961488460531587261174754502262298854611640921896504970389307557446908364139132592110642855326268751873618218370186718155399863421062404913162702050912112868482295659596728319363728617178121762536632385180223548431824862251718637946497794189087573674863282540339803675954408772016511774824352552018568913037268986276237783709183357701984711620166818295631968625617962878497475626482938953397077270266843914542683727217734303700657068262874696092662930802768270966496473605486557265554133161090060437908213869045382139837079519407315118393954228012251517690102352349958179523551931375554803288171129574100147485596056859607067908327516587520769563008301931474684727492359724298190017100811117559401741122848665395761725671842563264949945345829284149821503843363030999619445648396866117677388690975555163434703635802191898430099324201508932461917564653539392872097337320495702416315618013468322712652581636626343355678140191668362404313606018144111845396544581111877353826586227574937538785899504199300689504849587206169763312874376592750388620192208881729458742991283127442854061344127069316456715541753949614916568898430608375712846022577256894536613815107498608970767827793840756131166271341903208136599016665817517020327562950308641219457616657178088626392329344873327886820423855227165203729459892456316508029021192989375309420684352860078745768070598691422459163442452616454138871797976895584123061465729701491637704457537741762202124477916401926208876531033958159978856994712609313140955068044198218115595267593929375192220381284638459430256513134476894889937890495544509363140127241449292335655214903533004351856157598792611061448430603554051342413508639639986512466992243966150840613892236244873006825391022349661505237038873016797716963576914677447185832023937841818978385431672761843643441433186758664810695800021731089894949978815352340361568278297782772031134763670961076225169052830606307044176643076593536350510940897436362378916972074656397061764394587768543876971800816506815028892167278725205107187151636752251601034656905750004238609186399222698225876773778854909182230683780519583880190556954283395099098556044010076233531508809645022773907810074085860464621155216110758650532428585163848305548104159786420197260172200676823284132477817880485766266446965061503777896384847126701810410764650414407565437390515248321510659578896507659979225639052923169093432904205053827710711698601839138527532235453106882032787949804984269260994504864613804060905314513245051502905403944196313873350377082474941981063816426237200441803277869658953721307211648208537556610975331574266653933739118517652861355822443708296987807433658186213532463768642144538549804676285093852381162954889108398306351661335070627251109658718749538863456142969322717309050763943828637242682331033563639645179509413016596335787293491859022190372617313386067993464660262668186496968704406329678793068210014385810002521481865205711917151806330807152998088767787708876675558072857093089613247121315228416511290684364624702951613937746608289547972891546182175695724892538737011996347330082678316508837519938652362613121567409081645399526408014548808808855102232935136770000084561290770565296933267402298803010172757812952853958869867763306928129581887682336573044683165326761403350806885248224504794810736639809545948738770121750266740312341681379652395256553694887765994665267574048155775488867049655249846815159890838046793592782295613074411305519895955191595598963699578974732955084231557884362109973487803891393144024718553002945635751275335181526091481533268115226122896691195121060926707759446659032772422003350556810694577922697542603124051059081566863901132955846394537041557005223099305557914638939715010828492882286911225204211574952235781305802188007707492281082577108814652304207773073329898231028575221746436060466862087488157815765924349962241579821827019147657742253992863178927115199373452351687580127381687587621692073957005418917179166258786074133543872617395451534886335145106139312767616828472547225410461567688069804634411476039151884878850167287117498561094721203069276036702244144280689773587036995515857164007470062589493281748692435351568774011863136756270452577440649569967082882058296593038730457674913586045373698791512225164323058113338475222786489293519392177208165058528771884165533930803528333425273345102361924820439915916867142341154429254941633784300440653366188189366862227722208064441758820692982804051962649951601816273042119458479304021902090846121172731363539979423305905404710975531507761999314369757664153980431977705773595818328656233024372028488036521989244175504093559879717824533012827858678422230309666027595935877177509223952484277978574651313063763832585087216215981755369782429434845683219555047359627872275487452862599041590055791186648602772320086559366099888023538087321529833673829056399525662126436305111295595472617464671983265517514598089863148891533634703063696936699651420882559742464049873674698072961178913307448203276777299613760317423428477946559736820144413645313889261190746162095166623876476850205108249064970963829084960485494657474644516520641217975639574124285405904056318716434789465540508317474363940483542162110718643760464317425545373617425115713292152583789215325187871678514397256281929536279772386854712734963605066051636730181079768264544043661771922148677411649372911978193507935479312051129046159388969344584676908147484062743096622345431640771850125483680486672894879981667640747142809607043945046313122708482885200990396700720649607917228014180535070093086778218427971425767017116441829059818825284020448220353488563220982410977591195395544623171708285988975040533727118723647383079018531310595226584109263173082749148737627439289289832939162991466832349668682707802255979151997613656914343767418415799611548773892565753946514731517975593691825955003829647921682296603317836889279091768826480528081164368569154318312505215593618847123258051101213877618799484549746419368473609743644558312205328737602195065957736931901753947850166356206488522713769575636612148209900905292362655600336173079446803455435386429957301091594900298869522136999672857034373837014980908693929569117178617958886333886355463162526027481437571297228636595620120596685797525147541928321304116802086590129237395020129881757405303389411311303046064738385666549499573071617233261087014077386190587836015287763043148801548636621042164631604307609004336900548013625802043678425519357091708492534367942604143234521354132729115938459139441616228004574546935424522307416676277209838052158311433117206167709487406529013394137402368650642634312286831349266383651527572731593040810818987488873439670113206436759857205791401995255617832985673052013336125653193220553483578532683028682983608587465584070187677890542202163900983964925793273993828786211783462858913127052394423544874954512941316323197787630387453360280690731367661495020677582942793420716792334596851724483119242451376237939365130644201614032200615041328192889217605111030999911330815025992254939070433535635208642647719411296021775510500338794520359985390582829680493429609152757762916539528901366106753253207943168429470048400349707928378402935581833789048832238564197082525788451578344567061389788387467072001104319012769570533806848209055112596720744454234246457802036646482833769628342040685213722414506558391265124963932976026593658209452434874992075157923491400678661563695500367610403502636023665653441785238403846184495932502404358333691808107349864861459283702445756221738236647974018097041469887490632803633938190197533969672349391420528479487351131035429827859476147493166604197956727467853355441236948152345634275678351852535738704432650649653302937446095090644395321540987848574204578816816267340692766943610973806777870478616030396602951214510884691469922548445372567189839468337116366405311825206910437810537325953904011367925880187480102705528235455823548106798761906320927470292364920970174744792738720202961444802303711930485566776588289686464240805519574265182854103645687376280768125769640187306944700356821910664148856102702423990860419142169959032117311905520649026427054932400829565250341843994645502972584687885139480211203139022619149376290717641255273522089389021007867632514456472575477972986525506533043168501743676275673903418309319494468492100048313239784518432945221468414690868962126219237966554144057110270169155661295704741899261190960727164653687384260966141004560388027659236976544575449112219841196266169909598034762870965987626175796531606016915787487827577407855709955067438400940001739025849491404381145290220393065046993765755774642325922453521718794825664195352228959697358494735600894922520113767666083555866957176599156010339122453360990276251011780873726345423807935630133762335823008424713394358671491695947511842958492299651987034309928695529799705363931580352601347861883003847271325719689369412373602797599940990373414398989539735896705137112319449995575235628322893307756695932944129439850488057023941294557437729130462094520969468873623594336994123564615143155322719515297292967158995821795371288296715541201562653163091488850641045682890516492905503137261832166965498754259560448705630353658708585288313947589657502207427764000295092766237993935897517995594632434843592402444648260505132863654776283353241387900337044643482236730760231475302225851959988232405945982074766668541986288969388104220305460903559757640529336967269385849981854058868137236930871221981808404763219167613307071414427389391611225890309595095356943290565946472302783133347761591909145017839868199822643740333955280608457889695354607844157070164876418266227831467447484978651589170367486998198640329072546722223473907710605239426602894583230762731984067272871527192677598263054564225948679373478369107595207032264188962732091988796220629481239579966007190925474439968097541975793446433236035885415561969535544124881671443435884794795168971168168758450205550117282232049132813566110538837881406116567906893633137552964948087728170708519160455741505299895082452337106679686214052406958306216487970180986606878529019591836796100942042321376469546808633782994396337694234734120356914993807726319916322628214348830467436168211973447321409768505003622493680810279589792612406874751171752151554962790661327733701645436264719847717756185880342621100511640074416847690754621535395124443471229492003926301890955462166807203608648014468567793063297808583146259850022971870158931981918711914035201480325277218708317787124348718421253091701437968033930277066996564077156559183440930407731311368737668856539693787677392347374635571311194284198425063238422451932262133422842158060729552821147597771784840347852860053294600595688240410977794628984432008131711149150104461203783256222448280459179809061718711057146781546435617344976830270546591372572725034633390323225674389524547773472814604490514860527628024460647328394332454458435889596799535272411821079294968381118777973682051978327688898679648146568677320670855663401025787296264385438856836810640085227272838002582096048487231564980008101031018009292250950985448377493487011898493196749508001350565845007523699106728487510338332688289217831031686921183006317854460972247766858435775653199185640476310886208936631675846844250860869316928344018936186471440382802499595575789618617538354032096509709924830163122919622884340253861179423729342684130738826454523270156402234758340327355009152732510216693841233668329304606774487813578960053070889725113600550152091335033762986896679254286811175938720448780616464380933711928157801663553162440864750479639294034837302877754925737300404832067870882727391116411167167916289459406174478810539717198275385304516883503256180291521890538787200680701405229255284590822088655163969859945794905752265640497754707065570824857629925016211400876345534630035659664021531679289814935406454979888694432674920232687190195259855889285963079759615067123300507011876081377803590040949262755152096343728837561996100553203730734317954073546355065112463516798885603048660136520385452508892269762727167403990693410737560711252190483123832476793260508991747007488033313179240621471897997495918789139039973863641662946450626079199493101379864557130429727395844874262789517058401833201387175093949993658515649804125661728618386237798437723525059592311511095818769112028824382201372581693025974133845988604020283619209299570347501612586351898257088024475173529945370792351807118634464414501141060990901952578983661196817687209100388516830316516397783868230112525129526385345473708411407286142070581691774112117575204621481995571393856641343595822836619358834532658072991863023829617631121743023371194645363096559236293670608393678090796141929722963350636310570932804035714656203327567787934985386526809058892446239377384856767349527491544877113197037986412938183238614732590555396174306390334948613469149607633972951144556292488773460071195093084743627550476876084247680826422979665290496087598670848748213359186496497657428572440088158586408696285991192015746115914537391161396472777428634163736977690461900657098602196013127514136540510006925291954686403304653315104302390027769824624287507699527555441278213625762122526700906631602818568752694926687603720295238579529487343399823000334040286237222348779601897207772945974229136910707624189420633051830442301119354841931109316055875385014366628858592544134359594103580914999562954257599220075927481815568161991453684672986973667864110934227856922078994165688184091890735677989371257784337467704654303297589999438362397866848209746182015716470587593065940264235264996494299841830771159601612061496182147647587054563687044900674279409581206435234106999116840554602174712800974294884806833570008678213767918405360431069095789100864095169913758835004029060394112600437252376002962741307259902591617842135671416698410824031414884385131393980464808169567592038882284243897396575219194648403417403944607758665024099493235808352300494362495884845333288353277300064916782195938573271202587227182491865652465583354005587456181591440347967928993187658617309206690776746304467938317598747140642501658274669569486780912778066436544644189481201741889596963043108103214890279947187507093937630450375493865923057027358629133757291053428220965352785660057978032581004843635252341067268046044776232304369109451226644064130867923865492811940786166970046584063959842216573209709508635663000571020422613900231496520761897873971159056848148855830238163438451518044748968966399895545891503421828780752188671473532346625616052407767000050846743708944507372524105637569575554638640011090080010190441529595867772111360534098464584952748370952905289654513799962884729489502617671690477691640019748798334263216728762242481618479916101860451907217498421482770090810665932764917221024830953856440663873226665127767699785868469527757666430286565722021332801431514891041657915054172466242742718688389243235540554220825826147844189950684454049548656776373456894563985674440181563838316428409409389316167901257471434612594663459592921554186801412028870335019388738234728810261907261316924396236292909527576143141977113144032950752210598965317255217595963923161915480023162369683407095416651066961634074942812338956531005844452624315051694840543642573972827995943134528766163337076092567516377434117344204697483754093770396317347996559254960222109228249152985729644680075906763651081291580272727067920162676479563673004038177573833518955013933433947895717780198879974704241310224651639294775391592319784317439784033074639208838726509814812443984339874004422142554051469094946635854890952422429771427008445666687871318235085497020463762574463969099631771206855315320715545511006940735698160824214286028002417470528607694199741698634431172897078233500731748120879418474492217142777993612416193769058388268039440515137151158483345639208503242170160717908151437700374723181758828534235138041473834368406297455143368492235991703945413490464265389212521288689454103721534767063076331160149032500418034281510370859939790405342530056929325622484846069057042014842744912837308457573129224825347094854437832993395088593748839649985173032388036364026854747378812497870290750296419901363368500180228971734751908426842948834728955128399644008481014787019318467406074859427919871425657164743192467452286560232311839582770822031657639971200211482410500072659097976150603701094061785679319024202694327706366372322022578083549044781552456131418273479096488635603426349137716075030425010825151844338152743515651335442522534383494719150787492460287359255812849048795849056910107974876684248966237425207340133893654982166562493317082492446096083743582249440447689695530483889924644192869526928675087524516897870885193938226611122483229269690838530967610379109739657636630635048271892862625934256299581853056626158318490022623269847237587084108767438806046341952839720317624680676526657696443407948892040034531444260584263299091574432137181946380122705096226617854805070675417697675525405335220832930105815141520493134959495964177626810180327359961411938491012838766960749227780322511889905911670522336743238644219937667766094352567568267663942028913964877672113650847258902672323949631355617494431456736785836849619991267925397426308397497037847221489594409131924521420046716199575452283434378429181767244145331927950165743456710752252583758029856370635378610253881590952367046221172147380312012508557186341762963023233971866288690742848094588375662341732821112017805054876435243727574484283362062381732596173768327983847878034183018747377949909051023816012431197074636820500495216749495517107397917488214852195767485479518195849500058839836802777444395850886455965875696637142663779487742833411576282842951467718532263788851394453974096182136621525478640888381258142324930938782890464539243298490272585863829007879056184622551146050669369932650589048606019027223447630775467284839835678086632629906046455637786134773836138790702756727331868260164563917858497591893594764333804323773467512883316098629564286917661528337494990025242935606065383389148823688564976793229072417525365879834395297891767787162249886788762603141967094304468675581125271065506797304132744056814765954105292735752302605738539689895156129706632738125038006497015765310282518133492994047706998585023014696873818759477679884446667247733239189147056878319671780471101422161721218479319236370996362952071196150259354704318003618394051283232257634950459535510748881044677249011221967357044651079601655700305608496852303250199086960042703875081959992434149088497594046482419670637781538295037567438430801009374375838318631934520406515789192384946117334317720113829257918537827593841801289489687719238077449131734603820181993911761890963214468745219296742066320048034916916824991467632188674480675329995641014609442768277983707548038709592885243310205510408233844330948702986661227403955060548650307007649076456620111139455010550068278772994324061286015501127536522249004140012761104994295489010183214201780852485086944783034393003832547171991698854439024012492063322287692772213737807105100244946211479659012749084057176469405754284437602515175928272929957836608388879941265337211794307834344071905993515319880382253924793702261440454098409214547669632613921263411961689409480266246609722574737312560508622152846969597883678480071694344541449071598762176742062618914230363286684924948687502097952304606364119480037736884253141482025994053229824514673102552395033339203024802065012154253769450484843214571563569839972394218649588633061423965004060895260349277537726419607468066851757158934559291389327549534893634926886603696289777702328218232525270882995469154720106507361420011033264553917034477766940772552633611357998079861078392400655540025409462626406409868130306166552468166040494218902668280642870996422240239319104627464926225452973034311640908529450849208797610167262343827505770641918693623048676156555143421133151421305931798751840176088800724799978232985622549280978829841508540623431748542736864632142618650933121771422085078084616230918182325512339071330315538983254101227174989910822642608928297756018410633328016482477983726939325616081009804443410421055515240800538071036429953296398228102001608479681373861158294635442410099730992738624655689493197510340181980184845993824224907354101233402535629286618035762967458011342691684222690562936299212182230389522931880133229316452852909773155959956024297532897594777979873824017704540096101151249163196469163882962888529187918138776096601727525340969565114738801472439596181315576403040761306581948953278753926491040378057861529647707337856497612183376518380943440561858868310055509910513239211170089654238657854238723361980712397284870549634728256348373467116488431367705572936583104144409482974645388186190804273651572749382716124256834744888470180257539247176295987956965239132112519373638535462177356540655282538806052763061935290930342042587354408735451756645049665914799218434645974958828313264348561977262836638138104416849287579519016839867755870706253902757174581445531773142937862370652786338522170050366411362522440136150171610068549929849745267369073870572966326549706814443497103491162821734010808095180172824089130165295816503284914809599107950526498491534463942665563704279394565443467879675769368668560650839344391220284796964064814083386097224822245345522471211886682194143720614681672650371210763445373957359487854475957976348538330080417501866953450945922405187326535035196350664436276314644035528194896736757425228276639262923555083745806375221353507253044558766781993666969028571165298454666520107518084846819469027877991394576105428446100649076847195106397006714528108674969755370359943994626132035110161850421988074128305226344777196224488717811402290925135990557943078139705564983012343797059294140630095647947135001638478265481083700079894537573314519789068214696938127458644017828659255446037679780874388101767489633940365320622700032534905795799407752566890790775676159401877129409367053951675589115377843752455989811479401345664726886895861109987149116865396178733399082727074840381480001122629944903032609902631713780412466213039110340495730786624910907572941757568933939078153362397686997129561244636477045527274583465695705036615609835104142311836662158586197677801234547723490668755919710947407688399313703034618844167127030627287695708684892350021525002505635395484147334138463551024212128843263824811022107253507474418736872947114955407585007871429366801752790014679265528943234857793298094840864918368639845820459805577441157045717711459214168121803183439905509328954525281285690689310074791668999649263848826150424252884718636197127862311243557842601898951982895899261967776680287626850162588366387793791911339176664566165112885499363895370591462551068034662320796320558521285351705606346058312301403826388354360641532406733984556357312331299589055629155302046941515262237915278839975492595548858713350534392801070331148872795474174421944438342092147038202021749415186914713492201368370197217605131805606949638317233444226325733647682574777502072452602506346347219368686394018876417675292709219334375724262142818631332117587280950252128714221161265651751888671052084331389051963679530484108304984757932303857858540766868260913672278034016604486214000527601298469277316494659150022734775970931032220522460617070205205449607838058102976022785428326475776379016616173001339114421073244870180457749543420630854765164897988399033163575713111965880305785860505486892053520671668644788331559918059849948030127127965946828676695159862862127928900938157578383131482399773628075880752386313579450302601938154025947503861744854625569732061666740122175869641143174318092863205811724600404707802846625782841277651393514729291948773039772490385196249878014200577195459860680950530299817609974869457371446208175037868401787930588192725340841217113465565440981411758151549910288152144316420766174370260473929570159106946029363690722204414094898053233260336479815505909043710179196406840077731817053675775890458119832037762985890313858413683853760529661127098287464198942060894400150748940159313967993933630187687767439510915242419615685019120090382697941037677294143593043495633747591155816739221533925704444303900550640749523778042372533582801285226806121448567015619634616591719164104006786441419789537201069779772151104046261845956498987539073067675721672694264836829542734921377119440621352275725125731895595160185410372712960572397046372112795147758430399979505050199649044924420709002192105210437619966854240130812547684286225427067667260496612998762383207099595211466439200601829350165211052086085831575460287246909225608799799143432372627787055872001296111891460814268041000976960701691677259908651502832812112169285151664677804897784295297388181217024556664641502487216468393608671161955045408556546654765421304073702975546072629163701759613648951250380302753421153723525765363265414496010444908305876202793184904535861875714417530068574801637598896559148282484253106925098290473115399904554420770535349324920852135978563697181100073347855780833081971553241961743407639174714726114430492531986086341384101757337354429866733450483697034910751162245739068866275818284845863193338489218419180077411393751400943243805623929784194937201643316993096041719190824182412466073063375352956575588592968428147141465997888659609761509965564799722346733665636133965880234469911824542895302890345480917101957538113812258812786952748913955894677357003404084351370244799882949908446719830655748335928399037746898168900887553272277536168331438888427287213778725343253478648885402258863085949241912769630182487155331967259252097673200625867139435834634063929782346337412584667634806673233399220502940901224306041570884576611633436429361468596407968444140790848486424311994581429195485797517666358863350280504436092126959844218178769007317726085676899419041885038096320860470761035680657921530557359108085386657759976207768822385730573536749878297040849517559263627306241770877877005545100525184411020382204222054033983530765314502367794009808971141074075877752387020043554140853093716235201020426224657235993566059635208081951872630476701744236024102909014524313437622146308717524160148433919417407144049748772527598781869141069380866432216360976046165440320239011540547235402391915559144196492773053471201082449004367116412646546643813803292339277399514797306158714126540107479862752106302436068305910015455890890466491370452806634832900146596166215936022957293638558061449896164085658807763761490348358349635230106293260173449115084203830727892184423255944096308678403884519421144852201870180038321970475383100069537322733805433023941248726864462111514616447173667742823787473909983007088504641224885836606205887672945171787304222399077296752043886762147573829077420171708030163731730072636668832337987239995553184313469772180132106232272307509907139181003057053042366420553634920351771548474448848234065194772709060959776655602214738648117017264638149592562680139053108759038036740222126519656385244713050954275831309924855767073180556484286677884917503388558285981106840951014022975415319028079398891551667410989108305353492307993792984271359275689665887105010752982966895857834698072339997772100606047686431502433607313300605950084846498224694861744973469584429954261096113672559792327662670909852563809693788499839389885672467500602417713010368067862270593789317508053233309803732877587095695612361719064321637650809142731085149276938707835778234000832023127559730069017301530235338798028717291154203787543659071332786047263469770923871396646258164052756719911061332102539550436587171580920142278022216157310454493249943842348365389131290824986156507408496520201042334189375793842106412099785069710000066016585707210495321176063721566710018846165699891544107112704763464629862114076354311404681769212905178631279658084570731203919419951312922824308543879336348475573173470849352247708623441115796035408289955348817950816710408160463889580173382211091744801184326949407310085307884938701280609596132443666879652589028585012144704697718766582954180900373286770269096282621206135290714631305151366950183474871884589988241772556699579783398652009271068547730585659526894496102483113339202920101027082030135043769400553519676693621346780513971266922721994004656132353233921205700734675217101000204394767909211840710988881477502045656499631036040098457557724401358793606751039182464487657977410815233615967534699372038201282394198348407566300464394986579753268796361926716047301275456862118366344821251401928212302253863189710428987180094681284204780634161890276622348248860522528682432469616709134388271429533496367312143937086929451523668279361622758546101455276986296791961175496153640167737163932530646133776054458586970628708965133108733240877657318146011338792869954951400825136828624006861875106194027203035412641908576814958074175553040716049942202163141749677084648009758514599226417077245295868905242526664808143231520672979083655781557308309466479833222411680876540790512670861393396500112756895191254429399048332395345068300895208842147322231792773627253209128932503482339381412919761501190278098400185675205703871515362014191690156661476018736754151299877389170679388334184563336529363544442238251657435611337859619047655368237281291555326957494309661976503280146201527229615519571167901173991931201562599375938485253153593051788671850465952510786721060868384001464681177897293142669220840771807044810561590632757686799036925613021957106479327249869248290016966304112057434125998053308298733608152749121520276877052533219672551875184486535000612052599679253760745305733068433713901227505031764616213408005469240583306838814412053515860896005919294225267291785922732938792069681003748897531168095117626956273851367102541039014237203976861701115599526444373111744101549835066149311155954854551470938347771225291270458822839251717524389202258223541663355490225067793933560968008560936740215792193716833766568321645601358271233087304979630507782348022928474186889135835285421805280082853877951116429108669727100411477182780352230971048272552551360293792540683069443547350003669049605554914351292173905129310071491518884269895500566610328321633831293292557443915905834560019727381187671571583781692005517565151139258762671946369279509122988980157922468668850366455416857956032267754511212724267805112395263969635349056287385562245153555097942177122377905786671578998877057029585601226219287042212269412144824907747061922735361065753896757895616088697166719321662447284166767223225415797710205721825614860443558486655801746235913515940554707273547947482250997749993467569906265368071925674553650008146786912833672271401749608380955634411394010815986188160287978954092677152954435820297696069093904989207976263874277376950601133995378684554266022103340974936835719373243267813058299107606192846132520213528587459099774932732540693963584643282169974385753711418880698289729748077648282703103613705327910311356632143556585429755574715004621966889686622140933902127886376305161737887077636655498160227915704242062152091588737279723991942842621642764546752925940694552812299732141270968969795158902019843181008795589769932465131905194389881625052891400244743766240619064811326214781941635720800423954238096256764256745553180581804121042550526577571950615659701530564122940466966363695790777420773867573551567729069164263885473327725358947302459302500240322644746250038851984102340321475066125849203248862284250468570375593618753578599532568281491342947759737843436603264171640989203433500448531349965372695436284581849835646045443487022077677699350422414830720426011270579627229534354931328432642366062799523088505038985673593249757949970646636510763401389529178414263654959209279474950146154018599460173491614149858600690216413875138992975710072456148522871160691059405320632167277810097601349809858940702262798350672791132056869495535955850273113812958349337971249423628253085157861723900060924848710119159748324741141988392134758741071472117327741616659504615981346967297267015282668144074111808379747878088349317222588660352473532821461272007388591705794613123756031004717607959432007005205122625415886450337923317806998361940649235285570771335172512865182019401428882946896551275351896853149424732836931258210147239058072098717603544428839681195928925996161000304521220328821382309831660165555329216793291137362767856804252764328688468176320368635303160710315816264785119233010048635332804669129876208778344349647280479128614664346549686479223500077250816190108013086548759019239934042524632021109688740592032742631039620898536137234613622377584873398268808833482487509755956189463494998471617370204504090421721451438392874313289767165878721479424019359508098777191510038894470743887464750548958902534192164798587614489409336374493634094695931342422788959513255287459152497697071911557240996425149022868013091471330883883567220689579818800039431799668914945825282151991242779224575773891320353120196143841236169120080612439371595066010031652824449368803948257758349618389215204322175564144224166735857169483061763927913774741289059334115558613199156493650005486550619411697212012049262382054722286553128829105604194857705635812673109938317188533021662712073156488863164903662628485114863825672988609452260972625825660616258285972435597548566021497615794477923102657097669885640463619333203211698781731865159377862229043619597286172491036404306754862227392905856140464512873242695608726416941966406906308625263605309502256335267556054964711383686568233876418680905369651783022304927911869309566821313483346376603346732444534594053723422197045752403076913963727718278116824502990085395754524229023361455814479759628332728629897970591750990075337300875975313061736873400250473765278466717557482519661082348477722563421858732409643792841928331489229682940587041781561379599375342858586713175202717835468318932160418005599078035840252622863072462031540360581932564479035749494417536065762422846331506692576474545412813130696780100798564189006320285957546754895533635419386677327526829404022660019168867772896378227023583536799941605867732087185142167982917456224370373618711201073448249921228923824262969370768291204559137838270127038840595492845010118514493694381582918808803871822895920781397437185244841481020264257841234965318575882130115243676158472209214634197098154178652666600216447388580078477815819053726284345732965432169194794661979405257228665811272090504951514255321186001598017833566520948184694777159370481131700940714610339126399475833517341047290173167343915723742716659169763265485620693352634290673601996122346984681541565722328325575680881597732378571712286119353957353778978723830235917548374829002746500717779590301761861187309667331629201045851849535298542644090801958298635317440504461059683163878522263671410938735165306596092380225771178888489956382962235640386854039853034643189035486466635158198269162700222090675624162210505133247970827009409658912647348900771561133218097891746248898472709419067132453024076961217617725502262245288882178730166554554554527133935789965494966652206060241976533967528659416928956876105201849612535113546961655751786476470728042650307374118336767394200072562014638466652292588854805614127095385004098209600266869879857817019834408022635630749979722826637580129929362228733399619567988785890397354965429515856597061064729972364134238202057875576304892729258792307540656614457718048698961908795948812649015088579498966838537184976075592756429075793068329913576616776465954420727614434586531683895802984059428586319462378395714526913619736368533683045852073346823508664799769705334725573799666425528559559057315306111745422696777112447280613710147335904092588937015929817524978299794659083522039958857402955808347760370288957956561035872482573244689359054534375875860251568486546907180689706889916740633211355273685065714174096603260040746526019327666261585461737504459458846555790437944784689442545911504236072691650008170978084275487796826288229224088955798369382664024497808792519581659683980888173659220882359877972012956756535342498185527215880231225567150323534672493114384325112944840966987425760055046394442502740749441494406308407872255854934409489189872808634094345532919147094941499863738227196977955926861644550077280800337977196255984302243839487191765359117056171009209810796738478556865584128255852502078568096286110783614723081099399404835762126104205286251727212509948569803044395327345472699754637492629681945827086675791730928149489865691002964425717368465360801961903567397986357988546754102305283552436795677163153923823190938616403201225237243470075907243734530359970951252085726635528481976902506997643562156015896681984781282808587333664960319080805204604910318934674649656955412746049942256074833407797527233078919694483125669252313294565133409248498297077537137012316769678823254694553815908065064215193741977384450124252339474665788017589744292983639773958610557923228894935039572662689492056053893109491971535584208343549376883768098682272762952070052219653145066911951826777800462809894915246681729235229703326492099105206804267301949774553021973010973616602795222461775796715668425135453119962139401472617770368051596923317598791305799421857671197858070538740294307026149483656761845063446383483520464153962407184114122889397489846906327836892724298819686665281685702138933673190196451721348040727340254174415617265891083195333595491325122209880385225801805085065135249072577324925350401191236603531040646102708983995249287889843199846422792032178516750126888623563199612177997792102675088699937984148562990771332235921901146798854830259535233394247503527941891047599134432993590967708144173920433798174740992116778202987468794926261626477559762607243793531699902559093698274186354582521810357390847798309836314259510370979230275098928429065148880849203144462633833076365017223077637429583037054320005379937714557233780925949966263100252234441551195522665495581082253209355849435696259662944210483174152448697704369928054918266719434065027947645625381233052244538866528093940782118182328483639103213819993465200615890658318640119505298297820942749786297376116374327287426205724506380996002342737657472244397706079174483582960568564804810469342937438281663613924509712812452916219084065629226120856685943436187331250128478614931176819680313390563358547619817495655813739694308117573998844010168133871593650234841421284525224838990654952268972488244307980071898776199325315004017823879805172219036932926110047122597479393057238009648577184833369402917486794783979598506898003992366962643147318381191513255621200583159240906331109460699234293909550244525791262372132810221368956209305879259129112236351407555162816062775201531028667238945956357083977405301443138491952215992931026280014819324938114048200999592203204358081690376042638106763770368897928771386624475919426915852108256337317840745570335973204220075017199064470371565788129845455462415773151506832823728672427003130175740746660947532151654619590301179997658380142001073438301688050791435613407103198815210605108051637527877855418017363171153208699059270801072853906079791470578356582734301422810915958114616345149274756976486366336153596297137122762494442902066757391026624727489370678610354489595472791274911426783374034913421489148681235545051045984525597695953825001694987868911763820293370510350828283037113825372347583065732430226955553812248818696057475813187952028048515040807620027307606470042793965647978542977814248661222791335812869327281294786387891850847909263598757533895207023903890939222103115561032904392179757655972855142507624326358189405573649795108331772721513395850833551407819319893553553979141670347186373479096683760263954986128099138073945037895066527263725175389776386482635693057020036636086188288989698855752713543775034127129117175292269257670592191900011017609610356202676527267877481235388388945148198863910172560563271654661421034064097407420013232376353182143860875872100787805459474586721035176828829665149687795596729191600150003038480752072675888409218029603532814770334544248242824870303204878341402247229800667493132026598618139606134828496043907418259459971065837049205972616444293434225752944835280047645994578205081723170676344917859045439799280175975335751041188331337534150046248026719462783251923599156651911823954688990141206426807756033462887312678957796249135997884699243046022319620999763481717088635170287538743883666251606678602521530994457274498487602038719137712981659036275970216055595006098035256003222451353265628011277888101331830417835111889642732974231322316555776702253371548675391812345221898682920204559809292955892400630369893861028916887385707605738353685471741397175826234342934067330683860283264616805661406562929135032847753337961597486775911998769368420963268275276298342521297430714461700407423430149419639116540100703995454913149239899606290774965985773182193162383749985191793042061529700833593687221952889949304280362715461880627600281147208613736191839296054049624459726141917617954449197606182130157983679913031095929879186410084759916221400044864437300419976371685529817590257100796312460283581612635905305178605370645320228458331479664319675839865965226337572661876289287650482303890597321044868458900110248768299715485251319959237513217327212032125645060931478805854141997779306008399404126802538339786275010105347744627991441861103095175232138931841847383969081707032218892202771534666942929420655180340053341367390153224611466457659341921652054496030844039385703747617802637048049635633244380067305890209021405573918485773812050608497217771223733488282049060302832958806807439398902959878839601286180635679276809558691641801142475398963763610081278125869080081307537836270361933333278405760852685013006532482107643465329355131603770693440928532207961978236533954341198805310582961401676545769103210571985173126385788627542073784664496469072051201186067533047632797281406282791934397804020834009888612910032139066198957371009611604566363211087096801555913951426699260248245429160796699690873646207206282167813880228460739579353010237605947844354895953423279258970818046998878124044124819909046331245881150093375386031542976071213046950899595346871891033369811661931259857714114031812800284772703758902585029736127515680946676485344239702474308262108500459500669131182176681287873645293765533984863791501921471755237669564703581144070729566019300430512738038439924861812468910822194955108237774254313676863784181188879407289652751814494471520017786795401889826419630703127029856726603158631583331368260864798029491456600733699328748338774833272829588169396238510692297617085865425694556542218458705778596280876535963845654466160856497944213956111999772325219786607629215984968326552171501874205864774220560654205759700555304226458551740474159156156495062375014265641980838610075265608905294172292009677923533879067691352908537162903261303153349643510136712678598661864327824503085749091070523642355792330233927354578444246718426528932318883963096457455464472643344390982389433031512404580965642032222713655759478986248430557481455667768721851151304316443477814293780092125686848442729698756498462612781840379215158908092512306715257292516788420524295147661726622737647156558110328201397145477976815086766747942515465623379405964784628472021858523657705634547351537083958038699735031275308136289150717906033565615547127175797274682815780441825898381736569988976160541477613282789184096554658155265662296949559169909821279767739256895126351889919900638825977241180638354249898521299629638780027800539556281928853968257665817546125240797924506537051342180895718827290396787674988650959441107809411545592467011242433114970297961600300221183855585057560292158395667110529838278153558063487569691792014132857621492845528774021941632763722874810391666237735929403879727341544197301951693768394248462608267497216076895367493529678986976534655464214468302733697636536269571881303283875639570511675063533115294579108844412948513686068007039297056310515256544263126049209280861520969406890039292557034518828292717890958144593619707598801334578802720482108728968674553949143111818359812563736411543546432331198546515167679906719733783383961280813896071144130556018019623831893442919973824036850902383798698869157581616576768868500778685474999771147289364711867146926464162919102108704716992240463348168530622118498552757076275604960125273718569441234793651699910229741210225438705862050179711370206421613864849714947365078781426934277127378724437627803009418152588210641772505231216615077044717759277494017192958198531297696768542019068783899219731385221448934337080282690856998192588384188197996722874224929658878214233535726448539618406978624686305770993707883709213462419812814924996049029733431934309854449068936941480832872567748023309413652225923773620790210564200592868810569087944448551036717329834545985632684144188624344741913555764456809807998983915492883629708228076878131909068382309532609445625602619800872536386194265785963466627125306595548127614081372506454136997464317027727772603227056826252546372499709516728452138872792270576940711765979557488395433240800929766258823545079128710337097604633030701175354614508835531293008717026235583731136744244270318000210266589146478282002789777352697176340248763885488774249232083283351793126143589766112009382823778123778862047784841998882216442110472882122474701085102073159345435364635432376313544624484686640602026187250622849535226449389975598924232354187598260240219086241781123621800694960169984471500653848143087381481152266374497687225803628474119707348109145550482173141363023740044449860597286770396419909357729168569685103428738113559559835513101198068577993269639794486206256607478064579711311672601985905716691834676174803787252486311742517462695727966338370851620614619030775412457298518343909533401852414156904608896545514009328874926437269094975023529192840723529656175822037809725528317017142216482845863713792020390310203040170216851125320599173148034105644492544393176286031105388099529765128524471805869174304494938345209067601510543042900758450362220829191173919870945163080183097059015005386051520529851183760684103888227091972589752440705399659989103100999718109632391601318593666995351170717855550521572987920143428337690306492694689341155751119219490251530275212846937405917165354796185192439736203375990355430881152257876793313458377799390472742775480104866429588422846800901532069435626291829944188723488568234532734244259936372489453651804185427192354009301077460666333627249521062867007938248528490921420029459170788669291205855664328004644258206041758135635795653162990179683926269782431027035801192500954262337186366349295662148919897871258340769198608740864263827204550122459878365695395228998414365574150786115120127212930557867524577185666001492414646251166131404451395886463352677214661384925453946963458312616804709212987087429238606201750528014885278199649500488730670710684861787818560681404384710173751219105590255462428812203111115979206721795225349612622955577290406566061694704110797720667709983652233978064202403397631459869271678887903926564453787760360746488666726582491706431730337090226102473385655811137965140095516141318758914882605912295708667268400341400566788928107136788748352006991811269701280493158002982772461582492581771925309307033872292602613158071256759918328081340922544232436231167732838622568043997727061825605440490249706033882282031142002551111426224939320383021251971857365722385478864945201003322103296177682308496993934143104773067563694864979872845543103986549156698700934582764434780441670087850745237124338524897809404605367443510022570832825517136755497639469044178009901396046177895172609351053367723460087959412267448666737527447957980126609256569543732404231807762556137488594694693537190603751214791420937798987446448787299669815887389230833277016457901221869897237660031803737616658166985087021343211406090764806885079156321651270530856495470059608370886730288658037768713709902892096751370484346988043371055334309062947733315985388007535051732369320539582568600872928474821788123758264865307454729190229441959778574704370621571992531485404010896589497609006812467094754237144972904587216422753718356124588650178054549989239865959777854813745589404620610849070992000547514446071704004355625022450024542276730100347695826428835065412019550614398157290434519533450795353615938548196623696124334679102263291219186836402922752469487717024956226965264646819980508089669102499205025141394581748266127219900110572044122355933169227727041286455826101216477241219613284412262440518138016557127703693819085713006237894035971267530582589858134327050279536068497055716377256724091611216500198488895847079781039690876629736214803919962190947550370931564450288102631360852909026854193748742869031855418499323409490018325770380136100717113623476934993761299724868831660227451149509838388586411257948917909091549064454930990154543082448838070586047666002622944931684201378137339795171140075250267576010522149307431682928880622603567645524753429645688831695543348325529635975596220329545620267452092732381871329633615975490526072602528460530065270102176879619196356413180682363809125964685944707388817271130904190779556368377117391982277563645386536302083440531600551660182798641651042960272428150932220778155105303903605021859559241516939136602794232678749558377735757835765347851507012350197594766366317831607248481424448780088744905001358369183302379286289879074321278681474766877477136403134006682371445978419368321955555861752224359355302170999914380099219726769284657685142859023045424460070720289480490222955050448643702003005898332458180842245652522083812950758430229373227069134083942118173582096533100858842003156749875213815377349102047824636807157240930952048221632783905882444894210241304472268343070889528781520720206578921364978466222683270920137499952085354659743396394465719897455404687016966955796672820438722504925234459316538067892451139473545342018594080599710180941860433221672759817073053810258778767151667249832468356419366016817038079817543263718976603151594728616537532438149637296632744222952004295071801691755477683778581403631112770991916464160137166759834393740374988597137939801089436224066359476289474657661864922096895463820567579020974369134950703892359614470918445222025723489396098273608891021772431413191883103935886698577250098012223606041529867501107080062518936698292576499514959859140777797130822588968094633371640271848665334816493001783324888930634831535166607090795506594402307881493050796930132147108867524009177787777105560831476377430976632816600503890215276277788144279387702123687072591327785378403994860388857693028900449076183104550339184039708662237997927851882736500560611002773529234339093705536545595415964273450041518643163841398582574255882648606203043976354102856846459436539555749359896127121517231156054393828862657708291269938665459562123110794746244665224517630216289139954450516891362288358584637094905936515217288772790790437818086865980326905113494748390028872822173436230556515425361895273819816432103866398341099010122412816547928434951174803735973705323509699777202974543280230447612865274073228366410947392048132987221188867836134585554728715439496737226963126195381250303536513564612398723704639748219861738920965473447899844267877336120773172582412824353069805076021350153265778433635419272978958541181110454787560688088677686593116048832442472654524264786065635932729405829220001547800881167957662726387258182399798909326011087803201448903023351577343197075042518627024340227310598335128023646527135148460969820868011772771899933234645406653978796156961734223532797315616008785916154717277102162800181525375116222479906954573625359474320038319576711302360836893610475004312706776945230821640917471445875602980221855986666546745086973193543977625226650580102029551484299112597683944210563005409442114927172047885627784466741678234076281429480922224769612036725989079207375167455072259227378913156428788147960845788412616864131711761602973950187600383792226302687701902158423530235319176006941021612952646865560776427186008499579069576868008770479419866384684791618081945525254946677298887812163505562448186430626604251802770863568491686234005723195220510788100357265478477518361102440901936901009835227150991182544498128172314083076283297655962222845369835874902496264849144821700747430672366644262662231949580181902870769430742637315363286420999062462205483835833287618744213301781006607244620373019121334486418381181743823994844998632043836179426747299341740052542389604305207125818772748274687010089930218474991272697483790039948626891893317064902685422434967719640525048437135993454821705253534071393237349729030718812721144661835870508781441835700004204244338679160983458421857438269312318998678801586228399478015230924550432317707819805191655281163474481350647898734406462317488604807704021598984150817706108543309713766844274165395662161022456043769736129684187728533870171811519009175760578561076933430458106130077965877468985420804044074971542136707354707851563696226720345460362687945068544403919171861393524781073981506390743599749310296421894963028846899481903613117485576986553796120518811153271910179881696088078272040383312792431212990285675321277298144976178158590028655836284206895013434206591669440044876496938878584383523851711454407957412188008331865009716277251705113259883491316959021110464337955789052182218547339970054178883419840750029752001142139833411646144191607201374314571574864820390025175962207113983368749778902709770886859340681825452564210722966980717149118668501982049559305663375781406654115443931977326982006893119375897017744631047312055416030739370192385148382752615483153981297818948892787386214444979610328095770599663879570897015646135704720679195441384635175231688254670378677716714375256747357166659732074263020993686967969389239637683616106203155988949223419835337931353753148410406088539283942917745525684974105934149959689088297014941125581168620004262674401005686378022235779241113246930459726531343667054654134735686593842436564663419557893005364023546246245337853546026248912610823972261792962106310017317761999418130115887662393324571196131490421402050160734530049660541090879313740914003393726097424859808727139406593271128775947759679536963516177112499497180244433966438089822726900317671320899642136935601748336546108665334666449165222765494779600679970811705740603412703526080377739478556078588418193808674693646767173892702464595428853337450693921395390023094201449291622947800587419598537171057407616690835221779714618425619180672796747634195471992136546082806294462000515104342951707075136143436801984396739087951224140877697449168817183479103115242117999843349710301549731613825277770859176779572311959064340634172904256164363159739451560554905362491755994452273145353808694605207793523838764725300506143437265976744164826164063223646596776459780190587734716702807660329415094504063268016666344664545798968868427768410091597623675467037215414230338748864204704209010233722717598584165815555542640678786433630112625517545624456589014128163767191413105521107548065410110821983485588518870991090081174232124030312544554918831021944129036357816658744311523199979465176487278046201001842996412197956824804613926394751782340286210177135790822081941705651837686307387521542372070389083224071282387442800665218178908109112891561955313849688938672261558746562844177920948654127030405983178820938559866819505793963102009312066302255217930511945478637093399242068619518678149690630199100926827254732093621154442593846244416844323035938793863388731984445886559997341295442568212484543082590116606047048262080008886574554617985406972658761369099965161426213200023945007269402832517096862797087896119886980385922426026040747776866786932927054680233338774679682387431036728949812121425310254673581529319996473750086059477434907821279665480262618882940284634365158712375472579214077571818126454320169786695737289965865754334664275002381875871180246200189032328098260472311065881034615392592477463223637994259588503612671509849697244005652386557841606588232366820543562937688186740947083378262807832584236302734250918188900349635796817143344842365465803568148792741362973123638532559126495682904635734454231377290844179745926909566919268118224142226839117879109525892921563464953444792627780842155118433949417353185047159629844323672409324181226738998885156154024782200691337109242275144020443739532053717192856594049978646319040302944914786696049116983561468605814130224339582494540952159949045365157439721900044741583289053528380280943513886456648583802537815287837415884292623845871973476424944367450534721181201575556678984312045529603885147120095560285649788684409453044014892862001357045844920451067916651994388346060410695084790881644688667221142045431457468073451562251945330675580438374637886414206752346289326259136727726452693937974492252686242576603337443438970990798752345199368581850819002336531176135201250454808838720759155371950852903131691178459707205616082114635341456067995231102926822341402240660027160708534815819308534156080940044806609791587960779289743516566226211353494302663124444550444395040796300343617919939887636590787949839682430482112447302175520449635929877234756299426513439378006739317026505239056678385452989083933041111202810025074779055307034085293969984112376479261705490285208090133559902589884646086202027210479075267066545498963532104963782350930786141859064755550832695478153518122139864102145768168923272536990047099287606456065013043168557283692419575949260652643514113035697725766465052212911763163772535212066009468911172973896067433363550474042483054304066998566795355253106191461941763204113642242118216450860678160082059836453826227312077299065704817037708292520354262394533038415246555765987358969893214763317932115983441186929629308404003836083143687786924191387193395770965575140271663393561550041038767873583438822577679314144175394531553927418464917637731812526162817521284176332668065497523662839038101486727646894517272605708369478397721862503029528235113342819726075018138749820860001281851039378811804238590633815772955537868840590483250220416703286797924926560934028425712055706313988274034040156231679382892522763123970960295030988261809982705495426545736572969709677579039133439238625797668978023761782791110327917733407534547506476572165519188977591266198456086496311472289829927931725627936331939868344925333708889691036238531216363780372162758854285782021455137998052619679486356233603793394361675053351388924093174233043168960013855476975587300258623902861649770951540482524068191896902195045181632731621877368332494730906836601964778240394906302378181108611882669514003186115735238639234240982422761489467057507856432490397270386564441098912958590996677403520166384236369271900585249171525165270499658789074493845936168351388197123600810239734278827440447796385700209440129338158314645916687019126132373260658177545040741165537783076128976970188780709098418534856540564326744033222920574116563139465796591791927918435030545319207136480992943426125642266128636582170223486247522577190694066443127336277970930045776831212338638078298456217303812545995526215654650004679452617984092813930279163595827604176233580716300655449272733976682839831723276943779813353540896595357105709015793359974108535919170261774733153622141694874354459469553047268872941257958031531843250571109242171621807057228876546303224165100660829005725234955415199847874728053608983846769624712874028873481182602884817388153580715337597700197376222255120315676693608731516092206945878938032964787871934849964896849714422410573717042803678866481934669407037119038383774570415385275616458862250600537413507491948582580767058718114551292591823684650417406836014094424159705294547356460576403122259390851200037098475102723612178983267936784703218996900867243519222266286742933377167162292108037262022333821188657948501708582013727280265273065072453091737083047845104767053649748203998440500419170101909983510712417812523925964061891519030164613359945362477229056519909187352541995525992120766464511035192024326360691583807096633488439050189575697785103753971000441045780230834426451447212196009189506704893415645272942940203807251011297354051880550511925626141062191412848726719206188668846713649626649074277466165567174309572350657405347807863530647685888195561749953392417034218208646652954439941370132307448410344208770730626672056271497104148076683956676692718018532408516548137605754663516657178312672754411901662346639406925629361214456522716575867176267055580210275013520584325666739512267601357234080758189599455170808877543412600730125927365837426033919756830403218986903507390476787595330657570959057121295179826141297350079225158290725022309810134580023278534202439239165196888963252113251786941554459745391925528318332846453103572961268094914683746789990507438365493863579642339191153027675117898352545485187423013548362975958658092651396841955253286380222412390360415414458528110865861143642321444785627630713082211882527301852960728533395026394542703564083646690366405340756632026837406868318431813352471435927471461094395255610808835261110481996469063960962468369063502160230656496274800811976565960746574035962101103721359079195109813924747991054135044341975806636647548042295524114345820875816837108353647522766810437208611229033544646199893517480949751954087337726055301313249521850678333733748556707888345825176333131631527657029512300616674411462713289498677204802079587800981320252814902860295416458478680034273414325653526800672696727586487219538515029212524947202900410790170347581968244897456299574255235677786693174620233147014433032694018433470348875700074092813515262375204536256216723496293737103284164337975269605146457015628699108506268463955530191216043587736069714109805311523095995839228288714798987143164583886849442505100509071076972019627097256105314577453856721866563093820611564920975122512110571344197591207982537881942758657973325194231509012304509245881496146942883485649823793120908727496970464486136293196149873445247591804656560725601662545733172551499305368187975164071794611094479081978555205380600530308567281019917063165574297651796325598868193041695706338709166402173063418187792391825737542871349115484885890874636611937247974124205670823969299691426833202804397660457387997132703407922765813083936453498205043224417943679506696241156162727864770404065322294035201970011505004534715139189117905791867029137522979815495231466924025643083737141802361605401863540617033083389634949481718842614871144075833381168371676754880168775022625150390914038797701042459347791128362213937308071522577518545839911215566018423230116271903038570398154737058207611632060389312987079235432636788805920846623507761390272912521017876156787855743311241279472122744275574538207820653585539387268194421031303842974133867755870747179854667663804493282091344626358949011627813637509977827784658955846390664487854645361851622042317116368784251319950472297634575866308283589004539653333463309747039130713666538424834969459493692642894075979353122402980542005294559990118762398414230832865995192104448550726945730356866922732959761926793952172111859229040802217254776767544307900336673003116423599195291366634466336538083449240234020554419704871398490204097075331563813078230877996138941944210129794316450008118689348835597297603935426727353070113237997826259501910982444601491160268263603857891952382595998666972678395411439382204460552309185418036665185178528307534985254028278255163700837858226372543343367252303927240779252107849783689486709289822452843287659524683652672535107568145647676886292304122818240706399446382605632213259565800229299405232965184907370918556797368529259233768059430112631920635598171645786918919827909273748529764169907782280534674258218975330429867607367977872498222113151404675286058686071458918145211709565181877583307474575555062810018161768232287963562522704384138831093552518707393333066706789934053362997265983742018346039196821808332930489693768805731245490223273128217507835676686581939005952182586668614469723324248081595395901757819077617623856294261538955148331179263563133297416061297412516548660133845650341230693124859110958208884320557188812944216112629010818889935748046735973276244384718657784213401445238554633682487925105376674925036107399257778118407229318726593697389868828905009683693769140378368600895415501507072574211453697506562417531439459006748197811920684038597044877779824704656496663785789384624511642730390735119111565053968678897573183732279743517934903825847128456214429233180852990631693007167570372719064561365250193278808801523502050728145291679201372577647914151993951457231453081118052402129311176193239773745405534077541079378576358088094158052807391628090049715003187343144697159532502221560006528224480578812648796412919883867204449136227122415352025542507632799408990499745775497418807268932685095562240339148134555930986752286013519011613301744668935403006493969048731040412201958373199817888265457159175598615756627423254868661748296058158150626390593044870684842980314854537093215250617187857274195543770851002730528297433720012154250711886218982949207439359684521539209041353195103074670946927799657351398960117304610514290341139316908188603081000405402877144139463197497112701833112764626613120368254192396183690199799993833811474603899004950232971235959800131797270538299008035751050874798597472583170100371442436963482717885707828013500042543897389186162680087941804167741915140491480363430253314048641146936551906650426256840337706623802497805042247558875867825199617393313920535560725187124555046770728863049594031597481380902198645368656161882943111529641437621281662229349511106522967625544170188974766862425791497009421092559259032257176622628281273583724172937202839503957876144652129594309196679283167027135594515499697919110077393505194492975308551087529988553150047634972065755463693065713844099830784274263526038076773208384316520469994975642520624980815321321643693430305499591187441512067046579190929307208053075436467578430583826300884723790826003618402418775606680965014558997267637718660073713615515381412893287411036087901702769380006339968419371020464517820617523938460558237357886500211939940837896755256933651675265103305652361467322864041762506492567551677050204935316583151315976014690875773197904447190813059765183048305467917428080826588601720156119616440374886669984026948373366163394795883145066286332074046614105469683626450379764382424740159028061639436228479324703957165750468094642391037039313760961460365726004008348586984393888070737530024359508970523157501876133510564869847365808254630671604741283737791358835570399468301351598258052738322506057394173239358533516392100500978970947576178112997401180584331257712829610194154798899895784975607783507657029090982074342494195406543534320717587920189802586711472924065619557390600264538383627830577876366315212542437460284251595546375046049517311256920047429082302726076831661336778569930790716582993060683501031459840329863607677903201384953996107832381143193979965787068960729804969803598242753935211753274620010870340503327282205701469391417819071284896453043000275781847949363016580405222253627231342500470431791450255961754846983290874987792661891298486302085524681154689081547182109148718047822177404724970984737060141815079536175350848324958336837656571401313776571843831713621186728066499882231276734352627924356970077839764750824107254906742274436844635647554326747524989316828720937872590838063537354274390089948541716321171021850847778160121119211964090667040081871192983391533872874902822507639029187437688110936655979217181743385817170000798061713711807060322006937375320528554165648961028119543291337355657765834918034784763430907615511673095375428477165419741584458912961460032445572665292614268076705616904439325504984566650683863935951279105753919711037785032913155890145015275634327340607778121411762994944035850754470090906681346936073632727885006278463552110415649486018931842714228304435397611295804934687788225492030563839509510728749494643714437251326178218340138523713444994330084841132216484661907264743284465609850101738681479730861881637642040787628560911342002146718838858379278372348980225604794491251095880722222406736250201113911127335980240548779068952808212971930216560482574982186677774140934982299082003426684563672718594984553815441048735081703936370191203140304697469100628929927311083159766579134101095289095016832046755681591250225465285775422822064653594000100122034138674679156222358517377482615064438208070721915350382780532818032580911612001747783721782289283891816142293086415907741397139529609233574374170545838341076010982823889293872454306067440997703476161802782600602711871509968690742604818468452351765542183417332077176210691967628935997481243758772554454610677729488363021469328719575255379044763341084666798548123368620058645789511352975974586947714459505031630992792267524476213422935170019380946597816751182944229108860046862260130502822920375213974034665014729284161266927379687998983506926048945514153061278030224479385663770182339342409730030591483699913941524513722323557586291657355273226938684922315807088818843165202288895615875328549852485422927237652130489631286458203729506966724216603673588617170088937301763247360630291382096706898267114164222267018549952879807392431672386103623047246247918445108943439802964789790185412622308601399162690602063031281036199000073755015866839990173689068287455997446614108889183822375188754931281094804973585545145481333036385252261566508172488673802752990992925487884416803199068327550777243591364838354742813019220563241657493089734599436767456215718892022442053785823779988711117856219476120575315164400984931335261179756609781258814086959892667238099982230770851617662056267173517492154008147741903012107993343744149788041786239913461160885688135376308137000856010242087728079425597600735237358206723915016886288632015786265050269915049755235826693299824776508527579502503772631487017060812476120388555168045624352684867058802101804985505033035248008567147281865594954536591864577829260710499389732682528871823140788406380975719538368797238094247413592775094992630890538742895871472531899738665012713205953190003212390908764138492663540268867440128239462231190252866083809288832874797985627630134956261763132069205112240704437082401331736178446316455906394639983388552211556615147188443010591226350548234554318451281219681336350876334333301829664683399351239613942585432266318859417180570901210340432072582426137963073162897498997895249851052545978176319015226627287369922394815700815385049267969518239633903421231790549134929429734977100972860643129790188688478571506021108136271835662136274616659581141365313507056421432622880638639639144641358523410992658283716165962477464468997581331021514081397881112937763484455187809931663298689330348811431619657867309658893294250512293831039059618460442060102648130731271425650814580674260015645644450067645637640972851151071781710683715849714479252205432950807071402423761528591897180524869931894640555719459420908111930939538355595697304105699847861008945070370862530501581568350050093617235576241367044621400927981124192223134975470615228565073569386305272122531250805336825577485143712644147068277036270660994883332924538830789333907249894922532594732350525680524865797482617419311838943734622252931724111598430132072258417157905905293139438062987622786435618368109946637544474472416804019699086739481828057071446075212025791416345724662997703423214345912665583820034199577250313432442667981430793189090661014667164594076772604018376425533985609198024578737031509062894866450414257678729276678088071980183837962718005859169321762051588963004181627616361458710092303376237580868764029703098466595418988640511101218334949845484663753763777787372901965313015165926782992362324672566142200119855800772905469585374721959950928299359230964090064579101650119732305763784737362665124922323595641486592153753013399933345809640392410860770477740406063868670596228590421666004030714122621494789225562914326428357583013220317558990116386926421204838996183062646572704780053113477263514087052025346796015559460643535212079633424641927933953741213284659221342603187524356001785180486720478882220573139291853690781847068672641215755252696759580594415642018603859023517265087054335498506905228928386583933958102631708697834414498920768162280424558177929301251573135460832919192183072407956255638057963561367855309796263846025111905593251622070320271463849248455189397333954094233765112974771285728138793135436095269847689017404305970300264619046932220390513783787340620958189211106909280777146884422464581555550031011609401132471587376672142737752265916280599588608669099583929624075047277424454844092291683663575240097149837231642746845818181567524665282895648672831593494643946739472478333446618847489474390343129880486876068880405013441858532295918054739914472449752554519814371020260731460657811569685685056838404461424609228480676875296470503703503872092332473528742369626832201669350540378614041014119361725620570663654574758501484836463730513564596884441654514548036414936929674318903697921894873318361739359248542898103073537678928469887646318795824865153783167307703472708110192843577693816814539705329903511488298137723486483600816543178094459609703647785223695014846252786178521955446392874315606162262907804307102022091879356064841444355335294167710448258652405184287348201410047902061221397131193575663513712527871018135049300129134279456890990909757584366444688151721076259628120353363906396481892880168482127088192639997565764146347291321487349857753364715529143101427458583704322849548049765423364977976580340070945091413874729147174643716121058246469088766881746166597338083164854931700226165814659649866614639899933996101859426943210701904343913298179811754373052293277887514649054138055499151529259160847002282372974854879051009770074094585625780334113370807896166176773933162493809460436840753756941155965732422005766378318498891153170616611774371138350696766878854940155859602777275755633558557413054989752571240344155625435239958551621115819858168261968228710033575592554023495261611868468780170890795504223202156512542678941034148319023442052216713514166190523202944094824816324686936098858182987168932904612891437589685441593484030793228560158979526759190721569103928425322402202984454733396581528138734299823992360125386942783982097701614559764761906181806243170373733143257848447827367436826544944289165089332068749728353700827118416177399320548180401120191058502704321792757523182731763421266111768228671254157273351162063051810716128638137924682684023729064780524702668182463691895784429877688611502789255570750867030558207329231210409186017522644396309421529906547167047823363126545871720313001662903467538265020245811833246045467748273032493272969729347069277353531057846216473093221487305829750432289895419480121852809623903521981489963563845812970528640390450339715604457672563166222437585899701275256608552410717215395848560252393663316114497915359672061779019414336370735861127105266288396883307310606859781418010060341226124999051756343718317159720451224287537220195992210987957721504564435079336089486654692803927863788039098332519210642250279942734489274120395219046567715442511111018696751761174802905465439539521946170192569957396061047392846137305395055824536498491552790244783053492037908166224384683945742074815533739061501635816341780286787431478211086254509576488114293409882007495528332936457729232491498147835526363252606999306392169936424738318926691649627289575587011332837580950596437764882543145424691666518615125476224465765751078373030780910444929225934681120522499767036921196890977643867246497089409205318473088193528055077617701166449946754706525041664859987110152640604449296651713225462460189723201280366375370390146025800963667385710103564492750610480240770283519380049846992084842813303396240401558935379090548414161111540607881153506953119480586502162993925718664467591001274526775737355268100703654424664214938788555035095194337678131064679136778090553912242506209592764890109493923422934851514741784042825266508993980566133675372543954598856924447048376746356497592172852747769781810202643298825647284889773064112349773381869135366174980907814225708362525097097947777077005669025556698911836200757139160238083195830628719043409999064247179535387194762570879742822671343609973854547926660219934887407224478061197552385226824879498498464430966655138001849676257415705791216664679175713831397131718942791477423623277025236975888133231295315650694293031466542898572270507423831149235694654554223281608752853707974243301317430365172676026978611680819834269499116920310362386526837161624336536463827385691386363699523994345089781807287589800729114294982577258136074622134298861930359431413292550107975290818761584808257929774020283496048449937947413977177318335485304346789509307985853256441445667783585569889607796937906624243976056475809104360304788685493108574020343807561147567614383253898432385339401258898706739852619868793044216684022585147925788113256532687458373862496422653338452705375584858654528313970957109990394626149350433263473002482232512470236930826015030042243219552158437152177428571598120530151010214211231780995855320112078790377535408265466115214909650207356440821882242419350060895203117542754616406722246464566754438899579221882897058270340647174738142302894902210192131055020343752473889454358827751377204367227412475827260848739652637390920090411224456904761703700977939755277940139566987486706987103656084095335838167423820218598201160498827478959504199008627404645096862768528799719266748909410695329653097273802023358271705792103462021267558551342534267582337999425474307272360990127771230329152010943298880937290209232276747847331858315110697133533787155279467480177409734372195173405312731803500836515754455470765132241707478483150037088568651420033346792230260472271737529980382326603700899563949804611167332014111893011356851922970408864104660916972652768648254083370185726117816328972144231479334544207466117640007335940522774881994055998525492561472561921614974290948893231873121997515254768388025822989295172784188805817151920614352066460620497434577102570185412829100185312468084200888146017566301382890268935205397106249951335935663952369029274003519313139152621749476926307334767333496909491290145986778681020858304516744354698223812492234532759598888200516560382545898295759549494169545066268736296536812897504171029890776064256774492827491832355719263745790615775198216630234944608155087387794819868239789324910216015719619636357462345562312868881809207750357107403475249867385371795870141446011160287852836832825445231275399349546542782383324442032070382853811586182427073840670678930914419387407268815762240291279754258498385327795669436172474362333029416624707346151083460854287596771670060174953056169575000174335568109111564018627252462062250562346189573390644231217054774276687265341114557779910351193481051916958339693199287457199304936405340669980660141304192040396403767273956449610680316462312572424343859839401896158630588881581691493440658973164450894114935167816699313489264070425192229384029862949789247541730711300187429698169589686020133423543974009249024413247677317722723308839503805142013852352642369173856599010805542931357169272091675218686120957000833365642271018180789410299181288125157326449319419032778012053201693024068444569583293281685363314684457989551590200193305148419964321322753132462230162715992561112738552554126876273388605017453661452226281313914363946926306299544028714813144900415327263741981233965656881238464271780737255928214119578584056408851086338653883163458041691763141152372858722126994830189279974679710283161568530665456499729598831511536440453839038287302880885566959302201847113936632601233208724026126774575095677681543854068450533540448868868038281673114893609711732382937004980727668458905562457915226108612090540704772861160521110403994837872099768563169751288048810395523027516594118273187641946223284400127522156845011446349302167265962746122828737799264659717743869714522795686655372743861969367046562204911339278839785090673333382666119565444765155427025749977651849703837221828838464130917005955733415201894775646860848539119534047666558267029844015299908740879739296113894000769407286376253692814608046246777672682268075682854094231757252752717145320137502011451539038824240784710396893883498076414004454654366759834151116752932925339425242123351133099699588215959967901555649557266040956821582954482906217052169701064032803494021797930046118832749733533962706605201691086035226542643253090491949940575804830279866258260496383080782666289470494608366781304906408805952627822884911210296946698378353977212833425196632206740986608305359138206172940118850231771155894294899080339625709421692168337162893143119399798847148640888252981368540185934328941626481064425776526748955393319270186797047561659940347578085711762405075311120874650389804304382204712792632755554550615242604425329343383920234435314108969253480148177353172354509322057073179134487105210506533651646982280024434018653992834811745755689718628906439124064726561395285992943107979263734395408745179817170387018028699355074708872913923112756608669140362795863945173275677583615946998374223869829198323126287239705295822412262678654031516079772407737266624873425489168666225089738350117438889019309510617405451128448522718814524261984636559473211315971544367435508835765337867647074761886816223402561458815481620736217508806976505060655310494385930926513904568371629398870146986002909152257679376463976089996799182369871747077774627040933716920653635793027961630132457273602376938280271750012841921552494078503230726893614575690458336374364973954096459321871538580248645495671074131226020829966996892426494319248393295759231779040543062946484794274200917368843683708233186003147613919880542407457162060294897249751982330108428110951313097657529546808048087518850442367503829028753158471986099519382960432293611531309763990820354503896556150161884176500803407772277951854508294489654538527680755378535961858598620735583612378570630078106879483812804401562202204570858633887303648045477016155431938967848289096761328816978929044830506740934716296136432051992036778221701768901040497602805211010886241712932880941918301045898777730984243628684588105705300764354254426515476570081370568846460388632587315899163783503999362380051609994928064446165037082371787077146507735194914488412998156661335649073825591291001799710580810235435957656832742938072919319750817292104466944117964722638066114646093995145961456064368297105389315257888100556272962841021266061691143078446997171524600875520439018949645116624318976084365399804328961672764578288243324201189226998190195918933141461410136604079280019424563502943369081921823302206976120604766659633314063506166395806565881025670967749403632927514930343655521642652175700953644951607278316979285292321459383802274464761795639049206234307616183214281193815657285839749821166535188301692075363921065422918339358809829511950974221366877674588971140287786228602284157471342676015202831752242739258780325734556556503061448190317185042556623147450198193543663014315244864668135935087324919343846901288822575488988559067826492402063325958471013927776507350021321327378594304521094799935733713124523528991245284360504004416431311808922707502014614314959604029656700084043822900762036580693243554278555779042600078992958850752582841001610640411939173494126742847443170095602926124821293881593703614303795300690325557838274136843533114738432331169107108104007446211199658968604693723277073631706810918918571579541737481861321274738803913004232631035194593676568105961629740980279041165360791290034983047637714773418019123662696315176767521795384604224297847915587597164780016788542152641302645247946750663143199325431628906826685121960924568420399692203872602627499354502481378598687108307307735717819005714398173843072447709898040334079769229766454205320841481486031069279708122643827116099247911466629275992790743592966673914884969049623341056150358945524776843229760784817408268589313786956997712507347225482758424640807453153502162414022648870905136104669536170050226217876859932456850917122537455498928782076000886752029391638298862172721569058130718848319368802043965536967963533324467926331920630058949973459289718880560847308104859741101755590834957875517187621770451401555549144965403852281461094583262667484690521384141456955520173356538372883302841336668437961682803735898841459739667063019227444166985742999719797278720468395659951734992296767760382836072559667813468387574893675254134437835551318027900932798877111435008031372294602824030150323662736427925013424699224321580101024379652618701510052113689435531978840792972873453725523553064405144853768743082124646964825617513226670160752600941817080819104895269282523627467983109790458867975168261901589524766710055000870687940753920426290273959265532421902421637694317042955792842844663949868962940187670774301582282564469869610246875307052571267976181205653472795288368890274634259985142181107747337929644360053748157820073176695485780025793967705298064605390741032549526065637547620965473941923496568993364563502219005430653257713646601998339691657361064453424342213895483687850759868877708648272760829952382485695822565488873919805590094062857544870161953600919382040289371604000093086815503058296383086806054272238754655022488825185189333595955996532104829798503264062536982180927730491590792871641369646324760495709120064292516367253242317634475819848116907224304303533313421737343717049071494502812622353487369656325363677775314815918835762729698130894730152909664741651043244422077182088267968944303547001772513586229491008833199396941871703234156405515171412679958619122397379017516689890730497817287207562383361484534774157080052333890135286993993699977063753069449071745678531559190248516319693267119693480928375420094943288746657225514627352042704169541834860931774971237224093211168741505064732287265313369419691699395708197623780796269656115075449371966818190339476571994894114804573807646715320518839399272825843655130339715549011247290209277239595206589348633538157552540352391406119110147134540385723013261227450484729963275535682499546627351757466735592436527449376877319564080847770851139993481227182234275734534915496365199363722494878641557320594914683827070171172648023530037020200209233375679415690152154586946135893708968196749994791509658052967061173143371259648533421921229777799084861194520743606611285134951222118082281029615829834836321273962962235338757021326535327261485719349959120891229587863866262048655729461233213643537875246528247238131891765935453942301715262858022128432704644272596080576008852854420567703163659011471948060252477581512610965796163748077624796653287126295766579363011832088300543157566583864271951736590179699419755017734943256204422018774001929356118372748267641721348196236363563859520429556199334185570378277481531724549642770364750771565149821343650673832717492246369469986440916707743557951545225367272237921227854692858551212897690502010917409070653980266470988259421981290913905323641356483642874415846616192347107474335236010572037047848966848505226419965797657754896984326492380888842361447570207969092032227052544480481144167107589257898196154174783812297362442867309156381997704432373337594265413980932606662533343472563748318263143439984518601670970948183294402009127800004498015832378586518172713796636915639844139240214858954998568858903732920066010153701675352142771701320213737666999042303309442679379235053092846462145411889340329643275608650749876087512608582079003678595671648783063502538154152740610370199677377807249449519404152429507348852048989789023694449919330222145092753893652722796108310236265862293582778889411197852703879398653971608012755356579334186389905029256647715265637973729411375662926811045802342733776251388459264576314463123123146371479743617572425154578636812127044321497176906238092341271521413707966250551552814869250499373165896191123548789141792817829191542709838926721876020610725425393568967568111302741314586652045161490782589869487187789703203881906415118659792321823737327449877102157048199771354078255404540124841217695149754404786722798828573924726106753193435262016802414296806846771768759457803346241217046458422320542524747350327286273788503869600634413434512830015489033672981410340714593460704093071562287999831777168866277438871862796957027507268562036282879864273540818521313829362820758066049564238178119736186135199968332540058806984473830258875958229127675622356226919451925692761628934549554160489604380883709989735808371998892912372675357407426457641795293321516181558749088479149495791205871991084868271443384808277014735919712766505060511453164908014194544010863618372553290680791321339136677839959637177490180369793462549793922413276290571016637378412414816667431792497046183339247897352117116770088638993025275799788994091564535672106395797821751684562646632095811839286152322232394565863289651554910962374857325595360365998094129180706749441669611184664323155288711799254017074730660077785236483896169261585141790624190031476402429695061405646706117499999632579297820990286867487411115588981783754669248794289052962960972025728267168143470175021682974191899819676228625556366383480455690858970932867704582108301731917039974125227134373225785270428796306851056574486903129083610138192250941579186019914085759017984688556428235105542608200185458287854638828014983822079729709370553604212485486284363916630955332841316331821244942785937622838466038822935377924852974148324555136441290026752470749742706685433604783646829258490225310191191524274265941458084388842275029988389096346525097518883940236440735834972516700043992386452629417001681059791785587206775265136305403258959852823771567782244412061193076916085962824760300912172991339708616521207919767352883930651713688488023601484818057528271768546236379651556097479131681952345958342499801148546291942679849017791313622192826089762717160247084170345234628769472332398626045433875647787433555255776923908491326504309104022471517226236510712559925190254883302571578881799271142927531199174081545627598452794949639288726890553824108686392661811882333321170268899675579914395589768425208703521735861963210242339052741158954642157395064238846837439891895195230254971465704105335628350927787412325660838170121562109408523561324134034173996926824271591904823141525694865912741104900261525007295802969921679689234318218026947047534377006498457437955281261303956649876979430852367554800264647414353393209910824501203030095121605358615224734365197699694682863129887026865161892066307282347923986830217166152475699243850902211043823380656290401157499449427852187422757976342696349750555258354289681789285662902158149093425853048021367082128449778884518401536985098228514702248437655595163403361535885880478409019161745069359545742634923836988635443128866712456313783014394887910294070453191721153959882543540024729803790000945220469115985021249968708276536226186812867605498165544439835904525226903251755057628777013993682447279774012373852373053376048517131585338009370770513208018376648518076036289948813737912729822565220315546715930197532002482237992017177191170725653011576045301732374894128265280005819390330475197779792914803377009202683538866587782863123829694069547932172853333624611620408806399547479177684425395766929764142616248029877414549691516088028599851606404951241669036797090869466878789184897909848011526905560495579785174283493055330544785000591613295222766925630872974123280360572126646429926094232245502302759647955964302720906661666145232504898812658172169117629930767178224732610157168563609040751993890653214958608726257875120975530653710769941354860908679577261953954709293316765040685099699991644301510997502630218869963552614681266591980870472732588418435498008289409536878670729079422490501233422858039997532806175802286501538116907878788572508044510332280719308224878349552606116891448671229744111508054503275799561675601318942678023271215815236897130634774249310397218562113989093797112061612725457104828593714194960857799784712495733051110462085846125661735460019382080601418880469787356027712754443159158424639820015027912747768805902289182571391866577690190996900611059987048787190428949722392670409437998939519136320451472432082261746064988399526793060153591888768101430013973219635427000706382156645971035880535606187958076143743693186334994903047018999773497015425136203400543610282968788273717899971848944312871373582992268257833459936762593544761480577157364569470101620351398101287903359515187920781172513684385611478132399953054285942742515449203863905262611464341483047952489101191594579990599632522601961187352798036129569688113446060905856015226822899004777438055591506354329131208840407581975739743388172493679248964903521535456799071979348120557902320586502906063344585335039178802987334834360329880604699021634127936135594709989099702186534797505659730388153408547804939209891270001203234598278562276516315865264402318372821791890141179325656841698119836476144197844268352343539674967837934273288697957871548430021201560252345612568305875598574218628504919340933630503772708890695129550708720380593004879809734464108441802836122563951757316645013613524416160350137948664371886093087175043240451343277572623482373033384188843810716304930497137118178951962408808990908061417701645041942523142529775978542857606802682409619759835972250186084216127665300087175503566137919003931110071804307269101086021247783035742452500159440782248241672129794078527104585276626228531930526249780762135675471905855356404066443716536384389245496836846747525741316658564935895549496419198948644282852028459056342643085601737111893633947814183234493900469086088336519365331475165419283112803428992072526088841018050138109350512932668671872607845269962758523121681127814701263425157658620620875666217400639670387585690781045326447003484756011951565071234594768147534689229750258415852320566324535563771392508366499216905510047362090330490704676042898418355838426135919094625883791201203057813274350102958787962256045857498702154030344457303753544095847591710191214953507298255715909437679105471968371020915947098535454085530243006773551905753642497590748216895793765820700613436131805185165342772849218903651940028028289267003026948060758398437190969714515643186904214956147242387868099103856643232614933038736734085550497495633853494083775602310875982534345208862538552561700139567619852947755783535768146115516654794825776979942546571143328187087846973964377357092882649068688602291781305230379322442655096263202320015311995005099724718590708588153141270449450307780959430548998026358723638393115648596393312955477786710191539148134067606223633908764326973870088651300469000544584199305054708485678275942783838948109284645452005301055659900231523664318574945120184661295315674661777588382851803941913534604929871559971511938893837544711024926909288544818624116889252588621293669782844637697785502131079858915065012618659797181761919682265568335187923822673484267437743804733043489747031229732294361931622139538286291857290454775472431292173928587028429730674766263687782442228387311554733175270381699805793656399986513175895500287561816639556497287415990824358594185138223511186015831691361168879039752958573281002056994467710104397415958734837719718368895132415256488010229933877022055695652073009307093706954736263743706380170154284206804593081989638634261810076960551501131457470395369818423066005443248629525652938531589630544899339740607913246951693487607208995131528976189212798814613694697508072790406993930026853845751478698786368375291074207373998848827354135865823816601604337582419679211291061575083789895013910598978880054242734497031311846719929285481658961625801734809203521226249984819970523821153933798303946597502059273493699890877075947360590144867337661299176405034329457242566196414029248807810550533124652823149509566978580944415959506140498399272772844238107884712904813075736938847105944225002890431108924546195202399465540707802452467852819565598598725212132252419276368005202849562121554788199098846067303905564678654123052679074673779966837068574386732903890722636084212056022326883760897097478099174036666268317989096047251929293564733759544783018070726280753545098999390071002082247048170667489435009591527055338303548874829190864938726983936843580978586250472784402513644151324095268767431547031761840675519439187973896925507601627422712699940884407647281690708063609720993941937130222395574757495191546049916794701563421977614098044555317215901397600837000841581108936030135126713264467882200552825301473426337015958525468083034672971880724734562292641008844262488386598547983280165170995817476122349306515257069120962140784318347290878949283283571110153782766237399587307649498396248077869902142775785715136606744529318214226086529278463050193178172376202604552281981841656585242283419895902870117417325909405357682980526731018838157289284745056325453998555146582756363950428830272396447701568814938011001934433512707930360453998084034656696767396013924949429359852585624895814932139029249393516094604856913514912358719440013768481969025604429227817782769266354904818292872603842989118616477685497167218634363890580446751777206443143853869476228530132107949590112974701280058374315677356265136454563803498268193096583413613618833470055001101560693206062309697962109364195952060126036611427614055541277654892526034284437536112661954565357411443511369341653316551216777794315069393117898351292275354472105271244621609020502558709663437531612997976045115265701191213573473797064776754290721178132641700827470756075045032403655957716305951913741162865614842408589105763114051478013715301798573060611739026435000254122661067978422720358663924396541227544050342536620951518320909440601665209716103838016872345404269837062226279724034478779845532530917570099583608043373787375972504778331339697012947899780801300277909598587520721337851774260824819970616708307452348584242429415406709930880419886164510697651949955342947807845841317364088505314236926289199248048398775130338692240513825294112383897670144197584999496654545854980837867484587543976538127155100289559666759572890879722033459904676655908053338437499228991525935980358331840150458157368311599518530936751869223275493063358500531074313210024738979560383088462638501648844611160103624467934843499964590676253536846775915872572802686882557222254616736162762720459494054813968235385726225099498283155935576696488515647904943030421321338043823060266352050309437475877473582301124076810053434052793265741826324031349587980225787055053860951903765378297371445371907345414545696146700336785453945126684001515140619956173606889344389744657004950649606789518685880800546350633979465000573334322720732438249324847519737607804003233420396221776295220321319932159615762891046962029498541848938861866863538289275116102608596213486713817262927306502473261075319663433493671630307844006446104968707996086600407471010815051904218251546605584162672892308089345904022576232875795118009307765810927328904945626000280487085763533589385305407105882931213608248513692886557546308759873821419106983994329437866955933599882918821642006539593842091569619768475631332653017000660512633311574354722602194574858132276015727038354423964058778675584883037680760647887657919251775971959337419992310670277623448093242027486503359155554621967381843543926812029564845355708668670992056537947442333448194372873434655491060923186865261296799424706944395792126007802919400005086678432012780591417663012166628294334815585346067812279062784320943925711978362449024279418502377631083672687719247548686945200744344403283872246388447744531111996854235440367530344706055376936481002325383205029213314221738499480024500616616880721481252418608265183840360830064562461850621854441450698561698323122226082338376173531067419179638437570917738419058659866058133696068572857924851936616668616595500574055486395942837502128698439570209657788729705289685606332025827059135615100124906097493695056173775236993144171146133887133577078364895829291818103015795278069621669390714666638839208297347817608340500173002526567819401646093928163890547947917938800661668710120424703216436520795463233422168601056244847852203307348761511505281301289555019213033946136824508408922933007612119595180327982227766561199293601640463777936728054357873124515971214441056671902426896751095073910819977760425320145865554478108899198980990697699618866633623192933036683919962259659524688685467183557081531911083689036018849527684519294876991254903013748062771383828334073845887465895164201678952419348923949763812196097038095022028290654019982147442629853519287319821633579076128181510990952960585359520022178113169372480489800118148510681417582294909657989208181847940445218561124883138216280237211144305371938651257327844864031221599388567845101067484730374304445615334868230023181127566677124797355240564786892205941453064154979479823525563499078167724521332018476788349993840752426686102353252202457559333706658728707645993384763111626878333973002088248252362053633205752921361828914039045096249275635854312757169674977742209171451599064098257236217874285227678859651223150458147411010810184152463200905769985680628728336735392584214359864376164417261002549555884438584947611980796715182347978253981912701167128544754090716816755232278997578824010585800199510435930905229186717401122719976562375440720928769858284337582654979350360711749920390822315481114208533055793784729815178173698790671991332090627659429562477269254427742838826868752206314770305432156103837919405279152805047396519944200891508185233825042912136254006944058063878342520293117622176573194336645028647174060356537795937637908071050527943562553518999541035677828244799491227406242730980215612110166713150165405648707726576754674732782825983321877868491611384932825481462312240890495370290724521976079079256644042659171232935979856741183871200608262647791393514737271649087855864691963616449047048148796830457652562331834055968623387533343851028555286414713934300368886575231548322714139766556913966616590828950204054341921930479068489460556135641684182925555231044947243960324446804872828546791820287643516710589219680857755094139716550186504422768161105766849220210886697383280534450668903900136305446162347777002946752907326522494057532046798018663956653659093814290834529728004836494622699496176037440092883925914457714807049317292910779855576500190513574386646972184833319416243478214548834690501046479077484005961176135499824295095597800705784568554151926108238766543713391617242893470554059380629293824297996916030307015717367593221217677916904271686823769291587379016046135387080049367603980619704731273770803731424337648934443942386038315151207563516922884939947978140187876166719238454775513872127251146175997979961748307315641918339007176816349179603207584247871960478940901938235870338055249516672063225949989171558707931569577215592126484756074345738380839573235378959112469813616623982947466107278428957510606008002922150501677804344824142415165379291195042339025706029936347810091277092736646176492740960332205356063959588491630417919230525853412734573801063697452681664868997031720137669206188243599462478595031257052059643035690260032843520187493441565693391064798723978067572143157144802410339141967704985125891873090782982780180675712671610072059083299640175553445837839138073689577746244016335964104017526342582379331446654632472139973401780042600357525481601996069885806133726035785628836976427507048387959470886771919129184473923505318199534102834941677601584729069072138733759931368212419910630295191033294490144115911756742984375756963939284676054062729493439105123378933243316011669595281555393912295366588130242352882043336052947632081338980469377779752457347354292633822771752310608155439808988735719425952834371678213894506268026067690301943287250468156275743332535983727765133863608892938302664971507178537588435887366690010121293266908937863201600979346922457536893565599325788364446272290188508600181876619640089437429582069470216559408226290954093570634845230575394182043344611576845080365633125414000801676955941975102846057324367439659249188784192445585933210786130630262327581370672955400691272946970680180503599461255745576098591899820648467229856457438786714721138812912421697481224080474707384285501544296128971519015971968749949132420136151395337858774533807308532695916951002983193725832462081061053615866114761440575173351168417124803718531454868613849252580959543714530335010869109396479180027467498032650341975300129702006656981522165502967409241771166143508817917337702842950224703528546260365267786642567300899976807445940590220411640771049888748831258563411606726874288349217383501315674896821303298598090429475588862806190474579898678970981805125094382117807902773652583509123128716118522188732615539197236845126063390613924832909804470630225073526049515743650837801520406024311260102436901419689399392512311314437152483567698789495307941608214969821650467593759960549152013349961250890354910281017472609953425420788729650398287093571197496638779679714921714900940999496467636875235290195131395226470726895321959948121362163706017786980165566020460784660549289637101848300885436316160288344686070353056437974289362440756741002699624051490188871805565470736295816979884756394892542432751851540038211699443447000804721149064873604131695652636141481022382779015012575822303385374486823145673687177414151138293161524098725620956733342341573543967339736217538020947254507111834127639694127755538438130989098022641906573495961905217103843721015639952076608677015373963353787856482653997330399947101399514609593130276522231509371207501437850307970990349389601830953059061659738512767290377658719987068801129725273510583820839265940022533665127852604726752548887262394598591804964261946741904104324009897706598913408721608239047697299866007012670469986092909986494251159318281067991164646270668941268542623998925219906339039059722330193538259706546606772691774613539537289703047788170712040509138808807502147519864382097775576405081043795649303258505181379690705642673046041574714875852469689434421365776281494080563071613916906382481011707740515399330725806005031772367617654717656863520445958650912937476866799663798420297716672907471269034322655739403937840902046206881523499027990447870295130066636923241000905390517472795721343196856678575101079045915565453894778063162323487122106355560075746496674966400787668805833381183305787265132720319613495359609553028780846821974772260120356529061227470048936553749646957718603513216396750494515419258765361962944285170608068912811619574311800348927167056240892156961376005970052751076981987396000636620219198741168570746325686841394395185561912977116312593928541412202416311279186003488473763905153474125368590752077188257318900503990057035755999558791452492184140954449590565600345785353970511918230369964425516600873119715319963645779938550741366262337701266533639614718995679465981360959974439295110875174733235604375231051917693974064885804515249012260852853358002210837095367513983727929831616549049462649143629479698584507089886318785404193547654071255946280266734426957579114312714306869537475376583251691690893413142302272373873209755003802108081750094511686915554522417393778238102110271164425342542892598965893378949065422964983247391533084306060494776504220939988823862382891731896446873349757570230316799917596428689281379272319518459421605696021534950572604606827531237451615284066425667827943880222020805471279135557155635645803745959966127149839359858930262528460275433145282631473026031540089204522152506051689635568041339423449122547036089334024576423151499365235050780186531931221675717738826872528087553801623343801221204572860009400483730120225395562423441129059759421796564488875882279838501643551148014749829420469903456589360032089322326357402518599293442749968111707201586087245476716477417398321812994815186175313096805596770133836322388744352284795638601151975467778319310520502060140924395366423217663090577969858380506712157544115353961400647338133560775312259835276221871438041643664721922869788794007601159615908791006108561872295734042844844532123603533607330608053916385825719993791203602203098864270286825901168499976589131048835498942665952607908815702533775480097315954873513584180855866148056577517106837145874389178284936629675908929492811692539416074114986646256959942321890257523529408882107837410777939844295018025711092153563111319415473399577422043163448224623559301830446650535796055585582155424822932164243532026006273211410818046407188054656289416396438613735061739935783316113051832964870295095791569499681180188998099930946873475986683328436601362153436686152989112817380559548968921713362016795958128826710822724248162581923397360374603465048775171938412338966355877266881737600398519659864323389710797797531272582106129539629259842214915717207604329690159245203768232620602459398634413520094629724065773811359571800879909296687708830312703766932075548325135792165199382973260329522932947168268258402105002128712713757546398601755277007001067588155253934277001017377094232050903767616098318358403624044765194726770645563411523851606999744851674391096012630577323405220040390374178155261670171908243500838132860748320946213604522754812068922858326897512506871282906468786033084511412606582235760647011220532658305660302781282640429167528694651435104197337727925816500124479135713617392012426385029190904467115588313850535217148891888590103598372618717529591762800353774833460397052187039118166301689558717921165523631776381978153340762867037608413682399045014418509938972702062302245412477595512067662266321377835822877570462392768142532476413318318636098518166579530941083155321831885237454251034868893141124980169408221034331983784121579011486623896187492641126032202181307276884712519710875901079054729967012304931721770852275162904867322996581858883956736191056907760268360247251572045603424631593914922424652176542745654775252463243437130783360312395829325533190321419263491805878512826120139442623638299670549857901398737822578774144527530187885524300873724483830380922659570438059510063150388436069913917084241841724193076642575223669558799023038644953855589443673910399426401178794238417993932555418512608517294979897525930725443034957559016218378022749731086977631508344683803189967189248932799518074152109926528913110679838707389488249707762787592831059170065991238235859557423040345013702182658410395503257091550702883353070020139505716036459936514831675823555297339824410074716827019836521927362853555836005932079300191735066771453811575136944844829815912131452408098545333471903162687459993058651981120623261700021956649724453260164835557411497258004105973251835996535952871609090035001636623508705034534644020773201423167229100492611462940468037800791589235398757962677949955174940698517468424254630316128040014330942384316015024785723946258930609535197268822985521844123449087712225879869875517061298724552802651933387213800961561560388119386567894344177019071116648913504156051637384138806838769824004890224422524093292881360774997089401960359621982665071749328552719256764219480576769313075890041220934749257886475542218539430001011936707257740254378961516552381981723615161835328595963036636014439692326423366859801167121680532897091165581876085406919538277334110875712002366655053847961791682519798539939331951829547598521533955413330135014133668716426350618839544974439879101728139136496408159308550557269994517047820585270958785108471036098896584064838552784027142743985113549948238573901326491225433700586795082259107734718711061138212566602530682824568688787827170953327439826885385596186956988456231142737683585504494447483325304062764869079286750690428317176815570478737467348066191574174804143597200894906148591806036035245759856761614024304438157169906341984846576012667051916973623726942050392772139565775667142530295970034225609186122238950265151834980258378309329161721498595429930322485265494085325894725424985657969457980373883235472011777522724698482666558487111564675218492117403024744276937261579268481208935039694179647964653463325000743571103301701805479307356974711882038415007991349900823919383600150498191943319148962668203639204380092628767968835731538386359433518507040605933125127520500627113359589358199251594398326560860519359777959157145163791736509777926256812605404886112341589636036854415231795417172162947517994196762385294288969536263673506653025045390897141183901276070073202075897167624964528692901858838149306650175814857310359952756237240128193479075806004857501835762289664744552474341619434711866258159958490978426664354224586404244573917782525302041533490099459808238652496268404371844813697355793815965643986510384647019944073820153033396989398458299765937182124864077723403682885033335480059918662119016932402886098023065386531018728270001633466965416935251973853637661827279802358942325195409093662149192700609299027579952699849032693856501614731499471100720426381239737114217660032751835341402263143553663935619532236122714126065097736798035143834818983476821500598190911394243145293634083133411647733745280820670463338109649342109130354056144373624663890057997499953681946520819429873668494434213557493525116348047484085808160287811838303377242991130461752085921888672328813776587494903418382986944057119115379631902036654154219853202766018393859897747693867813032144921529094791305768879501894922257975522897628206081594442709975910177170471178300919369515220331645057589844499495292594036708871723977654343844700225930312150462732076249956400857028591596657373627697379018679054484059949241802807024161093198285263150770061772356917824033854659067965934299150641027042492970840506989289709421637349203756055819293292837774981236140062775120475962272782695438082241582348599648809172168833576778982276200247466507749343927285207542592835978569022212002748964843520933049415434687335197321212337686460715628160594104353672734101063233006340534156721523718115014157217329618680073527864487674637960994590210711605837195091303022383768548090761888523519976090948394586994516635418067533040037396823936226035475777271918832106386694638248449576025143131735184555249263361497330211611391677846469717114905590450840076523581142422046759766988258828362017326182605891481286186128856006009310604551493667242485679316161761318904125539936978487438139384719750753224327138404850825015255670163967902973521728876504157456573009801463876391103866588841388984918070264814526183134616068679470198857324174479366424712228303002441569095850929507196784734259117475395052553824611465581066688589313635559318298578856202027702015482214867446881449046630361064566426356839272570648607660981372758471314559517681653796095941491153495793588305262978957499985008122881159536256590329820287184631435386643017643905300432977957840443934988408145813954233802257442205960862782113324559391598992042220873625485598997994932175624914315692746232955500270329612015389338773248869110538824932297785361117195200351389394206481128319853067871043041308737783560743719521194582871755971892128896158071610561637375462535435765974048744493553671898857369016954900440292091355344396305547372551420393004520432216158785139475164550569042754486209310809145698395686848109227206192261205361005836960051894259829555088794040291727190197321941263166267995833429979168501056713468350407990017159116713461520419176338101717487848763675187452127721647608661654119552934936117936997972182947432991037939812121407625669247452262664468369103742476487425230539537383433220817029185101334835621576765503905088379681146369808659787327583174735275853915489202406490522337374883517032137364529452712951394524596542282384342446683223537441266116097302751183797277848119113850741383851615087697281638947465722821726244703498279083519096881514203483633016503220558962034524884068317242231945463120452817433805609386466012381981300315865281540930298439930853720875095973083374417629851733280419508963486594813790930139485745279158588767595264506865542869842726104077061659405751747949021621401925324676083831897496547891844865859048309068950185909333459191949750145510271799148143944001924008312062600876158833253583356579671440257111408911763562963966410950677778984948933691342800632386336624613465355881120421787603866442480099851355494976380630248178875111303631431863978932866418627402083435991571022137230547147465940067881033772172655250863266307400574032579186504119497642574410005893292895368313787201870638063502865513170578424905270543602303260095265628051625961479759532024315503866501491601220630913959934818820102964194769708187389615682610202952085753581692103552117670332466130756907381720130744831467905520576037381759972512254733055543312737312201353182961320815590390398774639496773271151287645044459077830434161644626358912569734682859624959977244840709052230537882471119672597141745975821359389638699834934086203972133702941165418194715486851445686146360308757061068815009991268535253567741259335637430407847014062305743401914861916661296941078328009466466762739250821352047991647195812923821183376789482607658206895114985335099317815281634382416514318929252839232294733839053628867369448071743288362871375507144188711065368613208130836786708514045789331857113540271881353607028251207754707508570033774976107169147199471510527793804017192199733966896025544655668422123018241099434599288319986892695757017394629647000986574621424233407562935926254737239549104413110623162792389553466925911825234611906933670050423655212386989854502850391458533355934526403355093194967278204123441175472401762905766337945988795800863688306449823714474781532679999259109022596187787673640058626050850664608209282194695796223110321202642549151598285165430117029408788107582743796888964750487893084463774639091417624672505374488430785678561603309316971666383944629838153237722651736949550528808632704058532180744015834853223198419696243935447677552568065119688310225650428664186880699220210397344707865570019419130582924964536592758233668369647836905859506879452113343820212255062297757389498712485021017686043538406941386859360067076224405516171949739624338339475353415087563622728921681385341643713911911361277529541315946258212099919541657268356174675450351958086576737448481249099913771280191580078486266133762230626067485208097726210108051662974892963765936630010564926813893037089159519886539339523047020094582985093572523744297967020904747463030079571388947687348905760931671493075438842493417021362449700113105004102284437376064685936688761458878023699925982446130708961554655721893076139084053071802592351641852283607953308306719446487352098485108257490577430265456188804265442999663042096450221706205280927742033873935607441104521018555727603592991636715890514709886608647051114230860902406365546485140778975667268702415338917989071730956553308932112259406672193934060596387520858693168916584497485400625028100592686874250537311824927201096521211553308442662872679088022876074523075741650343861688716114207867788290990280128524081625145925569737226812501939992215694641515425831176113585439304894850884982241073865128907211403017641483594369088722014916029789264415184132727331028501091855113557410186017097951236612219165553562481329048204424500060665127337345015346692942408383295708736144431738642819807044844731569327414441865350017895085431921837990682585443879103943334762658856597808486970841799670561829860323567794490336179936484079382751157005930804268446376618437076393426512961783431445074444324216445254612101819124641620876802518697934944956131792961884739941464437057461204463128858648690817583853374100419576755418845087266217985030313879914720801588088284820530064500767017723887187429625091201447631299554056444470736363467834119482683066008284689670565443101435314314603728917428008537876942071464524726544725475206103434372627641334903000859860499309355316400467147699833191253035011265252309611709342767701318671783766092027221149857319754427230199019836494421920455627677332337495422624614141661941256941279010469445391229404562632917393693721221205411296774701507566371932535596456161949855812804030073830850718360715855738424617369540826739425236743167916507042682953406745434829356932281942656771125901467334645804082003584297210889821965291509199542893727358598052899927056258470355448088955286493495309921177336175964923903247083594180832173655320618176898707025177788403573971346496355559777188574815181351164991013525028446359365918891470139378010635634969214280447027328852406892744684033666545531768106868330885363325556139801416955853137080224783815509983228345580561708978942291300951166248797604191847891067410815696843874723195249457773899268432638468207639743491393709284802549820452908759610520096381356874203630100114547359190842450897943550981729225657405475532016259562216198090108279494515066386687539829177129456523378216345730909709239598216406698347102374036092261714957570108256751981119631338012880683156415784254482900529157574085497748878581443665516743958733663228253415194328541965109719572065871910838550390675985809491013658534661082570377898775788343968567862832775804182165681739585162591224082411758398496300300476230593096645055282486364172419004985313149511217408149105037955390963676217677918165048132178258128993417101291406410890412462288581364242678578238998897640235184314878047938521358165231858340393123809024895993088801631881138728726033307176473561158285579957596523547257706558073775478374266290375352850102127039819104161765850895010911932310004441089449145128187422820868186288120502381543174426504944891573561505716663539341231153940265944954131578077617341406693006384069077206549213257657958812050625341969575380129306001489281698030223837961904710454426953118736738991459295967422601101272481780777426031067458647816599138314917681687229011432047745072350800867171836633342694917653258916998522760672592629261125680218521605327948283265554379060404771155138231720206268911403556147281172646122958933214990662378019562177908731228975060788924073414900359372731312034743716604788420762601015237821336670466057765113568647642863944214249555116169626165884639668128400573037051546386658172658959820369406610793141068455880251359880571684504355039880880163455650786257620849731667552764609481859445245308659526530180375817865308827653742057589047461433512456871819283867790417668691222675701756170918477755763512610902920919485563498093436805446258560055053590870377085383075558572325644637212935177837595883841804083894788441612975505355529676224342759072266907053040025317430713911116619444947771927249889270492936756709743589621928053512455005816677997046987673113636780283457750534791429898539200295105105765322828463118928840760792398932200654171140892311923347868655285113142654037161306238587390470984078705986458152876438602387146030417335006982041732136620899079412121105089775034630003084984352513242002923544847253843445591089556908835175886290872035490560985896294804009170194251571359863993092542646768654791614559402194525778263180972355888587363966324993473508522812647237648475480178771249850194817148037770646519862451757321542293643472772976398056854006357010817665592100546273521899268156522064001667526110030501672816568070596586226444056006499909601735039576189272555072918297686708185351181356446419058951461264545747288831696865348157920194187038890012235484076988944924289383616324007291011953060903004717715038785674321393967745052090801376630797482718321919081648942170195273304454564057712279915835945587134539719068586995115388497941765308625691300456268483518505797712292598872878734048374665269377680527639521567957337793892912074687972446321420331267884511917858873734181067393333449490727831596636918582457018262114844336939543031711294665680877222979140382445008570741754937764693931691148773136689856140604853691968996618172055145887618622297080555508946795542847782651757164779410189583977389595540563046211836487583761036973197672395847924091734936556432734044390170803177752354494186446680911232249965038487751933449492048039583949305076131249152182882291784932151639328791299196185959218794804676088329677395243347209602436642320112932150808116477853865100567206032711792315321477740505227798483642804487779622707786092242809272250333067469621906395425003071340230816898145879083138451693334771011339868203512558826407378180934038763567161906408750278513668393185766483955184869919615912977739157426679619274594078063952361981501549182165140324322724445124472628708307543564225276530369427701650951410833376810548258872534793265710330063075379999820830428462794610642831857213539850173150070796835276269923509228915114514106532774265561282953525551311647293862113889114837901173601353518608413455530715899462850539083448217692169742744899543232422993429851886260724690206695774408939372044730479212136808405120692634580686151417466543433221183255712249623535557114557973352177501541956220777084520268573240850346267438727231215551700722033000705832886860297827590262315358037074570681435865023564238214894668199875721638730954165341609017835944581558832675429519923590164628200404805296615112483020104447792296978553574335379995517086568739737157942077126503716010907038545508066676577467800954331721050111911903262943743938641757981668840421083118498535392129605211484053098092180185790627936456068220802931207999205835328025558662467092252725022221506684474335641773276390443020462761905278429215630078867147752886257101837467618512323035017285005669352456127271181526642789140560819049246758927349990323043425634943719187150466216715073192678327991283213023663193918768212910517485222417550162310083422880257525516080570339510748358849710964605895760079800869572979796859051764702963115728886248268411958016666168304959097861672377004682564359126590572041497272748824606386552454668386685389865320257869408084918621631233312500743846563033864416600377340449599133631962218046241104118099640665078047714135738213195342709788187315374307347368107011978305039823710313918735501151223950955959027744148594888833095564071625569762761541192067836716824438032978115699044221566862626880593456260090565833847658688100309207708967586040518872679041083501691942507025460627385867656685845032573701813986180202057997557613935878687311705740337239656916592713076424505405555946176334177362433303891615039383792430893091906257979562971245675435644206319550747018589949403827879436808495410112451842730035737951981070836590791984105027212659595494646231346575865619763969109108282672214473304422612433169233088800183877631363397235504443955583599100344619789996164079506194928817610926938530983559938750550974450724490522769828620776500046055998763705226443504117870728303520001163250575369463825333468830462317969404875473132577937528494200580524140950926809207649450724486437189429046384044786706361964107901743813508178573935890032311190395256437297358454027069203053406196873284197114778307178723733006461640695040456238841148269271726010885691879761837465164678182633466237640848203225686081420217724084597192373396828770713588485912904096155386470467881298654284517281673739676151309638240700637575068286833558269209529067618939942709910970185550639306567752108256237683692704433613475580034511262535057650267469285463305434440875406092267650631892425079707105482092338544963232876760128593235372179187804460316293788301503313638047502793566929332435792487090170945095000070116069210134634290934054738182321515763142365153867689515104183672169467069252217233898219648396549750173411888983585679672388793671776746907279770555230897822527273601139175857009390302104235411913886228851119692081872731564864311805044545915855146970519268797715998237610469220640769884842781262351361059318932868499337754872470333162907196497401935858289714140364396330373659440800438624523744351748843423180882758715421718871403375703669947063701228195632581840399777076651014319707837021844687189088970903839515974667801554756729827902560280358201874754485119239894431721012055281374466807411094905399128587859096766860749349750694040688551940313204779482341503464284503966371922653696209178503337738103116871899809430095971954852423499557013002437503244023593106789325618122834872076602522286148639435340005792822691488128649099492501835623164477081324676440704583865695419587747849269455691851309910911851702945700882367018278158295633008458901954378605304595171320015759260506145930271478350251486619443089405269871803568419275924465485946645500287402977111858717320918997450276753704687220294947107901836969225941274603751626793251675150834946540724402187005495842621165681886270372388224345779095673716145432913137938335606887948621880999496058104751556540069562493607739739858889541810738071049478054457925813089183741741342960939706010413713215715283427362329424403465199606205995153908744314622091006771200022806569051939780762777420512906200809156410467857857337667622179052936074776155862587610966343729846735101163197031905729453464340634007891804809231995107004078866184191717235006247219658910087911779937299915999258585832408263482191932079214901393787891095828443821353889891564025298531830993357480552866251309411275049960970880311137141458761283396916417271849606417844092437931969665818854934392103811818331934669859903589773707625527889930067401490074861245794989294428749509191511922727958852295880953962539427612318866991129979288662921064099982986547897121826330802321281234863843351033682964352797129833605170021166292576008368647412642374696831763226877380266136559047376182283172287903447476141131866873415429915296462941816687054474435113752274657355000336771818954990482180731272976454897388184732712389056860409490054318657711995748621430337894868337946036644449987079647347801372938162622077567337332099530118436249104198694529282802505450511895211139661356089192926039375740696415579434856804752300331414679510159556652351782856958491833668764362535435301494176616699612678090046684653883053135735531852713186445078619523965682229168350542868620980599016329348677970075760729440159630607266548491843713125038825622073534486566094659507992691669163970920236315857360647563173942938341884721951422389845235129475651535358904188235859073710872688689875181325664782272472904199402097546231815043799413664829414612000103926159957014592572945304650188799473225795337265530375329306472355054687640537333893179954888566115600984589938444029846666100295276103237377094105754892512839341394874737709751657203901621977459940168908021062658908169566294176436003221069367448506935449138347253706819284942458314818206680366162526912957745275772840253861265771772206137724560686280046336127606975302645590978050390445190059980365004036142906772061383142080074878959550810820871786725418846127154042805472794477733197705551287350354823606644403697784322680236354425418910243566387151415637858296710234969361649291276703550837330806265432991615525751763061676179174608300323974634243268941271011208877879257641894955850852972810880037632976005784528696376658913803907419622717681988104758015000108287928826274563753089138662415866680710053135172221714810786443916288448295837529008206744763062614618488109370164421432171825360127386303266637926005923874895499666797918729454745455431517659151621629162727964703694071601857091113699305989077911560761777215075224571787074711318814888319172500941863725649322536234945379376279165430779149660101485392699522466353263716780561906078913661409177144218291692317840633001600120915750101014550626787553398743997880298858334532690606815707694006055413399728180159795970440167843817735183497891991696243623715744877846900104056879228335133938727322146900345442075160097316815773592195354133766141196617570060296237973075730911793606748870915007676908256667341186662052505325315167786047880279398201829124141169189498630327108713056019055345343565379201748313747112650268496849881672321795261927173779566363160303955531067244112488511666025065360999312096057362086435067715330119357952626867607636295964133667845051783975570808831726142476366639620874410808957276853160432047227838178004224788831677410106525907008861946514404538672652345341752006605634238677446802040952198127332641586768129826608087310678572478918444733666891672181355267004005898469176656193047897088661874943575551355603986277991455878114903776655313901911873606623958564516593980831232080659466025789993556437063903855435585582160986434006913867285542816271201343179596547962068882601973112031012999760147917755001018191303593300610845080712485398114255958276628354341306664754168524016458459285853403691272609289300422364153859723794044111259287100175804091116504815617127259653366992377781334232834898915907375181524613101614949022330192431600583952943806236820671913056363344901285864772818429860143594836049446759537983334608466896479534400238501504774093471504172681034813352350908065045833510088159298262190618991239439125013662596772352399010668233178173288473395415735462093308502360861768586048237529539904850525219083735882910682291801522627806414173002238976403835743550483836184987318557111945067484784169353343664845016054483852468549920689559537892218338842903252199410619202775474259673905724338222125141917207557814203952280357586690756770263337402627802349698997040219227619132694874772476662255965139055213329267855141039874023687461486656472293222365497547136877695300801667187612812476455595596830285788488518326463381983612504682682952773879271240286381018168544000257910399671496277450182748303998440112427001079019057512941185840676915634945710932769929550976014662982231225774941744315052841769522561265345680305979070870979448502625924385017873400930467329841399310816334515763016181338438061236737767455831076353040062460815692213587125499524995755776521216516277828279879907736265738631713437063052998661152781758582063300211131745607698188798545894715491349205676218231659765669810857755143748900079142358090339180004078704088320652240169163122783957006281832948053889016147804145895541374123664361406174294029645252004536158655611096375346337542491683257992158392329758929081277735025969070699934343246713380201017723849246160954491740165082547455158532987537139401790754897722649215675799253631408921010437870096257190334440085841711498756617863524405339813346608618408627691965191178326167780592562586144635242504612979408709627046781857038872786268438457036376133774227857107836203919064833843808052048513807068981142050678377996855029007129623016441344570949497923866303592839610772868846601400500458266579070242947340124878297155630439499087050694019986978113169867423674350278330511705911919116448809908528978103836456395295465244753279073414972316696708417778878106496453420425452340355845981400168315945611434501081461330933789191302070341120677575618603094753524388070873859592868264738530596192536725600410790387179257142904420070331399706605551893222484272779699708211826996490920645981128973780656341756656147491073081362601353941623979602537116118482277447651878210012439408931145280046699587298303950279847964619173069293373577758631876339385839617281980949024911463642656023171954986738370980415945932269186176778881783463735075784121252968961459640860373302622430989522572975212054777214956855504070231581617642515509870698484101354636053610915686458856547126735804807694923951673515395033182022813273848565638737215684742786367130206345120919240555071967236239055267999654342831414055177558299114148508598203039279005321007328257449761366203327230663316591946559305751781685302636924036147642484439220875975768879876188757000154532248857737648333404513593437571090886108834584835655027849307152732514389410927455147619217005764656191896870749871414710342080861878736178339051414293677599143025619253167147300301971704254944716646260952008793984289416016615704617829243819405820993410621861616746861732965658440930906549428764522608397965821703539599537568923142022793554567755779616020652884578184384613072312927993067837241062905989710254225654710451636761826697306324206269504543574170134434329769549262918014614043954416769989163350175601985393828332053910538883429722550795751170206227129598636354092536126272990870443603376982917763588379939248240310129676169622966363110185899330883115880549717792614544403778823554659042495946324362609571160068643635061146678335963165192514595687725171111456231471723881809035974417546629552155310543193701197500741414368009613330644231217375178992204309990440386061924963016553012616692476670686870323516774400138606840758362782773589479494012966704518615013382540153406524770671145083179682230798304315482968481611822927912916180779215216900038227870634661104894214634722451706537697442112561334455610353304557786057901868818555770489860332832659654760392110356788197187976159973166326408565761650809955137340088336124556363020306282361724081403357090566058856834382216461939690374223928023044375396322362139699839297669913457920854502506926274585104942584169512994338091072525274084117272841830143029412495680008132320371206164615432537056399134371104261496670166895559041561695380502888832737714624910414035324613286268002200756564597747830112347671889580730187947440488269735636253802302845305286564340506214232341907054813466708680769758540002687929940315720698210552206016207736811668651452164051611446991778680978020754308232707477397029140685197315309413554323572978933186471885016132096226328669938566124288025944843868599637007391226142885383300941084520454328817311252871345556125083941651476325096713428987486882726563641620555761908952346789600074897518258298163025007871483563452690790542606981956694865666585091394985529790893635638340589609957405368466469884960382397194183402507897875573338955008285902272501182307077902990007275978446688315815271778713814600679041819876914891467453623797456492361792523014002781644145747093617728870930901376706782983414186841805377105407732580719760535434402578485182444837380612819765477642109248029006606797405970206877579874220791817308350521158132442151260197387600386682937355196295020798421953923226744340068056294226932418742431296916755477721219432911169571106385542817364567391334039597638360210440966738962615825831880772199273665484345504795462542545525621145879364442642332222616562225476723464075206667954543209448848799513261160432814925859042405684074532803439519344097879910900611527692015390125150461330679519419792397059174903828320194356193880648109061061249973866653227949611377664036446307183106675235275575931056165412248366540105466130970378664197046022189157759562194938070102176034310415656355992682866765862515696665019848103824101581021796142122746201986290009902007668152480776193196334680366371548322391722235500369556962190164452714246935963093816176944410485504043260303505956597767476912135639856185349204567922521421986154430787638860687326776574167321425634446533440702682126497894357421132311546036180714046989125244073826024238654392499400835100831492064111100504686203847286650102103611977682727876772914946113984646537882797812525525084019272706166323383417755030563046148835907250937561985989287927138716649973255624655242901961259692608615979805446501511032308208906385570703200287333175534382303719047719917896517958359874021853767265946338444171419865413137299529893247201474382448792917278259957031091699555743052920159000000469618892225149210979900388611597931132842983534213000364736498736887812497649494243680916866078390054137581472716963160369667438295876686948851676254770047845477336213029265890060664786936435323632414505422486592951582614942593024164786994816042636184145669275309532280337056115965591376893045989060382165153342573019981885887273770932976110988268541853611248136765823006226366129718094743351852055509740673832748400773473176091060069958856874548084224025440899200065231159859657905036516597419915956154240061767417419676850494369686173169869258232616585460903999471166248460828673324659488278128492107409464614701587136105362178747249253842455265777764097835280003756670184776614075146157111270469711932572342897307442618239222717753574218747432487839457566048794269785564216911097775267484478962800689936873075526877593419021501903855962372146245172344095992179218369184606789577597068856415531802604027608818272673055619360476094195840435408116752272209261735448990987336266590462753954353477196622717103095724308405371438115311089307290522746618443082795535309653199275286890061002356902139935016987938990513724686302640778347689330659136228720996337607679656975734790601510569058100689631818643529287989000588100003427730902419955569697497019166572215360076650229728406396476219857801915355861259752189607018457134795170174607293182789277251529814841266290836817709111861897946151703430354964243041747912483611174125865569818463429008548158969533429795013995475176294174135643033078597139372884713875729991397805056508797792913065127268736312384247095388181815899223485869899373881270164084609900269218873019198995556878526211131088928778726914296492450346904487215731028612808242812004113002443207267299747086741459816228394199082734322610874042649516944973023905562324624923573694580854752848882364449718319658233378912144021052793979652191713009634089577177091483853594920314157785040343841673300488137839049115182396788750891982579878293330944544528679977563395799421277009348828601699229478010004989943672276519298550182020107126108449857994023156149747800914042006434050848469580614423059982841060132697974185022403653457872031545676520430513497851524599580585919279922403978818497046866894068528803818617863496510338041608629564883500519489771111045829653735285309388645500072725826044707104187772168191845663655149388382399900406115183317176503225362580377832268139245168325209946026020985790664565363119402422073026728884671142017774380107329965490018407760342210733452495328374620668074556554083080316765119689350292132093419721600054781663438129023771749827580018743559481788010841722227540443638406263155000789890524943330833365481163120311989846898333749364596291438211061993283520923661284866088172867137057593186398703532941088791651353290995580073911451766887251938981997054183726236868360891424382023478556239568638622241017524113268391687504373289411560050340378067082517449508098213543864148552981185942280128569728379646199091824903157753822177040427680004412426847230594530608967706624451913261075519281768367459645916122788756535745598242727385792739261329931634052311535263427965906542725964690127030894466640310193692375432270252339000875528234206440755693680866366717443225720341715078158909196651630521209282940570144061036362257354549866747087742278169894561557695196401331017833324220600813842174719768388620913879004193241687670928012987802855822604106919376110965986951741758563500112602988192829298332369427875743830191808895223082729119056864681099699422567890136081245474630937616021695620341079817419621632245758380812052859755582136078217721925607986792172302911097720166893834675679063816018037938696716763137379682387519513710612269143464581354518497207441908036660524897433954966602187659820552175223278372570886023042090302205482325976011393292025278958708726698580914522775299565917483124225538730472646386513393896572926492002420731815930516402785669936237702807046910318216735995149461954404558027160819288480493883106570651189720220495331841238692651473866143115474374101816453518681371826868761797344792887791317732058354379586945641746760256603737133316403942943802429059989151661637887531162926205518691956495955540276579060745916364685054223231382122038291423947753000928962760032781926146856092222050135051491833102290865368455480800646105976925652058025229723019375149956052751510347630275901100021013207237054467860548454646294009169917693819863452142105895332399972481109040305967730136810061215223497787273074597974782870019176940508217837197889489197377331478929295328732722554091530064338305728841562155806026118408262617177675418026211117068363595087403355582630722197877577581594224332011781982112008275065708293277140516354685132553795575534692425415519333525890605270969632796427247063449268730471784575389149498959065655082255843798550780739173718392204819083800167990308064950058874133469884652834670578718423454248172555810912320161192193928429129363812058183101016484463109920087575486295309397057847600936601021390114319065515736497540957959821809226118201253613827482224995487826154932496927793878054151946891311132508745580631080981386557308000566652135437215306543491969782413156147505876287443186700818868210629452999248219079036544395921445524811791317050964439056010967403595409142218220447146491713243179755235129053436796214078901515992631195068576468623751517173500214560785214844329370657071912768475008169491883428668227066217928416402382856709710574514779562391028918998973135017954496908754098090809586419959459892227223121532446613551489363965086244938237798121010816456430848856641544074137804747133810843094249981839090776285042063560368726938327257277597750687888720119801668722346083396589150716812609220393835498796525425578728083205985235517174220834477855858535651859442060374952573837140324476994763837044917979184320163146298482706516201097568875670783518319357351623615437307269333907101763046882337104970166510482572273345107955494632816844052823139098888073610204630678579478867314088204558538199560401019161300396165268825108870189709494346954393311333224770397517572943362249352970907969143726885518431222859700860037610197190299923865901471542876060158529655604035884397845148615622316703078914337625733197824979887809007449098557188616671581587463229971385506337421096338179137167577273017403607822761693717958997414609959936704156112233680073570062502676214875500847907503156448518451583383299129342354877329596504372562239057995328328262543268336422236080117551712185880256531764173217501520162532808261945033050297394065738633187349643823240133241326190063278617605490905010687550632961128601718553114637241430675746784506216855052644795967892006979989296843836969109831479292140466250534928808770600957072367113703777782806684064787126524275154866841032966009007367965043700069890450733908326769545372895724600453081146056134641680122545728597375778828725633344673861957922003951124306682115831527813882651496349777859770381256895913804812197826256545872331173101135357071584154088698477258867297907641600339618030359690389744121101542381632581278294257414826341738731045068626279728117431469158139537545278941013923192669741354052605104919272838454702843326252577668126402360323061488129671579262420802243234740263171212179270412357840186203802063690915678912011962185234402242261191300681164614206887092617972737279986252471784699473615140054094585129849614114711901083499892208944611997385085795369169849264714283777525060232696561385134774476646883099424435791490688666940794546603721207936938675528344786851610129929536508740133767881880788617335021486768690441636958310164697310108731885047206530110116380186534304212627232311959842417657436009854995130374375872241075947204408927652139677314271068081282908623599949357091408241762302377428242164884049569207533843501262329328087211186447449745806035563214492562716962738317337731822012921224082115202378451993976229079725085723710998724977858439524217767318772588751300683330862245649161799831438829618520128691663931369736997142089827219674697439115114368556608140854316512982423756331064319526187904532549741671997838530993733804705356935121818249501076615766725695361882171076638210090861718024290944227154477038849538111979560244006246798868510797114974188507407640319461242027234816559819809525419707572419734983495127803573833239447961340501395368286503818202065727362345476241400503085313439530987385904100282941332456708652340790057638662737383140382993695249864599413066771543024593337420866540810039272362015328274263414000872274497507943953263454032678280873726850240668130404421882942903728998937701550081525264976444150731782222989010965739530149133258780473588563174912212901164501311541908972165967101015506967234607021292014735241667949704865231406022539328414646607971539903290014850618396068006731085600085265262392455813499357676759582599960795110667884385522793898768937353061205267278902773146017797157193228601171371008588579235807112774404119591096482319466627359447618647527950961542248357052004318759096144093203113993690351847211481155293334593867070487088704416695912091557181896018986857322685644139170313576752121767118714843759388526544295251160773896970038917006921855116761961659102704979552711418725157712744160822440946469629218414223293410192624375607236926808420488970050278719396688200702615647386913553996144464565806109599426584621723186747677269912240745535355372184434427272309159855086172274635503149836437089784690239610107206331530360152920775257939729969350117412449158953887019211086396065192710764034940908880274544141269253650763572659448856988709034919508078906482415500030854335498236420572638744005857032334526615887125784816041907052192571112928891025141277822835592437910440551859990675466393604239360208246997066115329163848428651930588446746193921271961601822692935550006941455612036903662703302452996351407612324446972522300776469897011771408665990180125254536251657583504724973845801534389311476366108792339271797943655357278220665788903306930833549815578082619937521044564206555951006437225895384477959869783562139543255949387456992328149570382856802844211690968241177018831705850583499035709717671505661233661108998613367241163874845486129994081182711610540998903906936801645831390866466323905142567951509925619310171889610732923882745633347438481909433950361827127297618312498341062662482328798214961398363651152503310343752516061098564608406560965278543984611956408090836959385817115916254482674218545673947833451577736128482725440246316846108649358268751432557752523586391134566130328483545609318264181519012206871759324565876687220937533103062570856087679208189010467680717921734784501858913145556303569338923310946394693966467210550442094911512209952180981183227472294815582986439852977900360165020644952776580449041469606774199571963588268834870986230828082984803206422905539465640354313311763343871794343861911747343109064323289285218153055277194068592273669851940000254529879045361898255480988143167863572807584808128993960638065652505351880138113470943068624628523165603651915073463208384414916049938772242081921652415560958103836000560722579922557586983894648819367333950509201957795317006072705904614145468856220656141845866950236854972003283718988862469710040643696092039292105512493537531530362547762998899691051938962570490150798025718615082297748682440644927079810562922303117093397577320209473152239065101208670447139795112711218070751435958197594941171746514456390762359512704957291523617703243244721138051705568124200888978125003576060790210560854121457639555443151513040672702513326476289297218310967167177905003679840935922097700209684658730756556604406352538827831113412029691043388296741592632878727494769679362158160636408218717791230011665125547500031679789252429860163723390112690406488708520867231190462879590951217405998533734467562955052718615386402882708034901958056609872969126304954005340483069667974983608739009409973207920802300533727667079472907981721068363146462060955264226119114388195846705432785005288972799961745759827111871415189327614573687907713537684742797852863979241959581131577388924314847434131274664155021383942842992938473246857609697268128449145175332076848846630185227292714764564351991381511269108392401141983941082173060853379222520433725554901326513990976546662385434490807223336269914323680288270371416221157170681910323882612784515271893119076146527335672199197047601849171033094230930154706776068103674276693895165421230983456263157975583336380413987824515888815480752513004612425989831268690988858041285546314703727748266074081848644312334415416668930686442845294991562260591070096525415201580347374348624442822896364409410632498051900123091511366568394420464558022798673385033559180688002081291348151258807090795881327349257230193153133686843708863486504292960238122487710911971711042659444179467213572239365495920106169216711733413549379842972579754513325698610127791360266832292053186164393429883061725335751284985255300243170963131708084604019463988832391535113660117663266440715882990105612982132895574577040724572723923292177253986566271981400015103919870043579835263428778415277539677988789765320824167486039989365212551164782671479607421617082935937820429750181420046228230185166186508687141866432433789062854386469752380654821278665349760137864807036090414208906907148503904864959002366615631296528029894488953503308825115719478049153132022164084553628626410540752575086622243011070591574184293952740886996923568037919080982672262055028432718961767395941794047924758139066219425389712579883827518625428191720865776412049560655353030494017897073721513318968339642882550124977510327473344607838747688125522675540687142475164486750828858867245094155328140096014314652952724409973578142263977170995092525768098200564759979780981122972684942898481967182259833397286151127248914165062571237581869245302552290369657896903603744934964382591164032919137288427356768970618658254033737748311528100606666739042312887176514527878086855568988250851463673493064195657309761463082542968522750406470407675673879881274493811543918906166748506446653459555754248245649629061276195189494260553310398165134570033526542346116080428278878547561375577080748884340569892415175459478218920200261777098815299777122214562944474289705099672637325903598875834087800820686556298953474055767610495027144607327733559496139893378754347132528749058108824393199160162305212641470519939196758229290554629326226344694536028701875080643504429200876376354428779597398083574932813430714738237238002220477550750574087440471585574832024179281043142628165854932506436226338151922857784721189214317541975888537109093207716396391657562947300289385124944940281093258420948453208262933348579725176980916606010481152002929762297088055990521979851875457595607330107991255774723775792116638736536992507544024914117208589681181334923297185905201091848583024372286553749170724646987142084945315231184735086241168441662826922934925045758175733748011959635705477036890287748138336798959061085289366299721586349626906099172490527641708999511848552644081199425080702263017553265251902258113361789155540589415781001469664641846103792158113535906851059852744193530137357525755154934542873716924888935623728628680865869540337497464153693925720039026744616780679240574725325027649207248612113334231067538510603198124335234373219501935719134614188120720948800085568949625628705529219330854594707606319081443343377792190884898614393922381913795799426794735173314893219099436198287286452104458824035616807578798011366972790944929004798013032002721414063191953279752234255022508471565761958640205929960075789455457013015852483818844362438293672042561661254792441845499906952394808276131160908323168701154851226664862967205099793771837636931350550653449431433964870962132941524375190034391205724742986498727059694209394551780217755599220805843442694243214416000643205165408187998705494524603840064379939602917579335338718728933086229463955197655460742315278248325982549585379488792323662602730785393409225836685362173732990829115017570768266738489831739535879145595633687491384903736960120991330214488473352099125457113100963855523278303249596605447682690988734888122019402544841789326041953738004475894257796228617406415120946201258244731560996999278458642324635391098435894615881204018878272732251508477637456234003688475195386843584187239870958216076975529001820735775047500842541086867665776877223229413560728929454502970259961277847253579412225608636860254911757015392240309188708538762802417132684287477930519754791928653588745569871715464288317980748539013097128361131850410938377257611317426562781080489970936623859127956892302244759793878433774404018411543207337174930752229770907230183989116935978427095714869743250249091485009196684904911998580206229260147208529078055173601747955354812907238594681771772968368203882468754694081232938833844375898836630354883761759234081310609618082139135147270148166607763423123899298660311462238223972464567051125648220796670647220506163470133914828346280187508827802821425786492496781870410376123520216945344026995480648686125302786352945340755708311460735700991579666656255301608329900424091352513940670958049938189934677601637324888292077217881885908184355342999728829390211919605842323884333053933443093434705964218978396521173640383578858959247188670797542724503499745909945089706692438080827819005045659152971054234611131629694343622606740496883551946924431467992736338194677580390686791853285248001597986793031463613662450001242686894078218255215947652793072241094480536927516671133996148950840432476687864080241823246333734517976548101367362973154434941256820390883229913350632368177183156497558085364074873371033132361923634371735092373913845275675626925541787855592408836163953968946826945260786118394363241462081060007928341353962679522005347599012713004002559592403406165609911197836617825920590991215386594355841926135310754668126713238338571601641840353830608551299671413159461455872406019386517143520935115548635837822031268842638423630689722656185423259291201480348733954134699449883419112460542195529225143005461276467399135243975003685844191346873866664495902954301259576384276981034641738227841602969535589121118060475415288354619279507046564506567750678400007965012570523025090704022551350642743161415561520578835692365271189546425784006214756044972429891392460423266204282011449250186796731965874327855189448204562358853529014750063045184732545146794189330067590016943991510362213782789970186036429859653495422879019268060636072256774217197475521409861648641520194506003394616842237247008268063776511697927438419218759942712451500759223614539831300250400284339331396502237183665676996828534922914060387596505614196101781982093125912810480272201748624367604712605007250262850780490193681128770147923308571438252007342956304553699428856856203880166525330804159879864835499828478983178189082945544664503097428872976388191084679270876616789994582829016252834854237406167080542870423703681778207979258806890788712554972839675818473673180926426160089021064246851979991781501322987722941866071120336387546206245037811541448681478545124408765810837183117637173604678421263717637092424504199776335198796493482406293038849049526812265212841224145396650598543250397177568284526723417236921037049213524343864463343439899494577924013079307580370781685363461660931168354494533525932278952128989615965043270713180550043289268707157508714198994833762744368494117169346286959180491037560600418479658332187794068633618249969329020495334349612323926959006533297115000023296715810295872453148512054043093953691238613298056769994979436085649027756896798702870808178047742012428133773129766230134689502909526534753049237499742470082458180429195661060672992086434097123299139725675271893825137321086915927160355738897587775846513722370896411514602187103742118894343807513926101942118722153420551180566244545053732826757565938404286112124172378407549974369122845607500016972117043081502080136715037605859653507022976800040314423298114199095393742371898079572123700293963129279846912311883092124427551631112670902056414734015400663550022898731037173958338827961778382330727327977237560939785289344845422983685757169142662787889039719923384253854120394803969951363925400362599542697336644604270307552234808290590431231411490263276738889759436710684667789892366737033812774983371807023400223150383100495335520858622822773057100331043219569079379710624040551313044627477503094311632385674822407197453245620863392776033366734551351796249290258545521686901596435605601570319584307035399257645907478409464102006593896477792041253490472887599177849316085781171248097779441922048939643551683087396732572685142462088140861149929004859697073819751822972060881778713587492910331393663083531521496753583823048890235396447092900909264092596160554203355730120718368085144209935618880878182082989030098100859362738385860792064608978916390364172961775577332061682743993019643642856831184208831885726482016110040336413407663212104026200512016498939102124389790079972894063014701204231711284961446108203051115570037283651098041098697786219864253974764402274255533966699078065961009275809265570554990337994740983776426048079292001271024963401119922342558764576702210510632596328344501381870027463402983130856121517575507684866614857472256250468694985115580750033948268825608324368931593132658260551007318151561644635148802037389555545694463918041307527384070821299531508028158474991448621416789559029262490614755767337743659726690626142820753652187114187988057107048247418302346645814111478643916386679781994100695176232440866388932872944378034366220241353983132251613375893057084445856994171892860801397025789187312514238532951879947597585896933807949447363661862699088843940779888428957924303485377274894197837620281948252606482124413255814366190288202192212405973920888285308906288145228938412664952472407266927202857475974762984506188239536246279753858749567634719686756858606860269393221336104445351670920379728876427879483974667876960936761206383882983591437171655018120439011552284041517326437708805887545828561386804532006245286781979724142627578057479918326812947105882514057843135713833396132338159377391941236987898834481923401857199683483373082392532498695349434615408771347122621184786298772822671990760430247023848628451699717989747532475625082543956984892316214245315363817034180226524327290585597950760922085195572442308067362074898829855094032639134553418091568551655168871031023458141313442054976721116584662186647938918132713738120912016125188998225075799706401682650396219284217953859835185707820169296929709674425704893120351920751516360603872219275578976106745214812974207036581625803191966330239948858700468818477016369232864580809825153767598760987794705358115887120572082440338927797410172679329698401259767592618098295093195062998122770319830837341768856989399029681385047720144706187960146641481535781746273209641580532164683378165014302869603260921335343132489133333968895123764484721710260646955317701909805491818866776568370616594696224430991445859454251221382347203586085669633715855198943461781620652148624432034434510214626240961221132805333569940645728810836395970971130488014958260031428733652329122621179791597063209625521631120130146141502875594142976597754309158795169603474641159356261461549809561866938259392906176759012353518510537853612062322107857237589511642722274814472891951123983691294980799372443602307954634562878728205456577434950016489068750702394452336101557247119031165852983648149001075499901655464622470484791658188306829173359564270840125652834498362817018584638977097376931250969867867086736563014977226791417250645913573424753056257649828060311819231031312191438492715901009305074461805020399639301421972949650827895836920460699961655303004841210066204533213535904093373968502326605904014324248447714773980033144107275991275713711963904603823210789374902207416617849953164792562936788697400770911369462751632739951243848088416126645689315424467433426662307042303938541367889809772274030151843901651392756608943577225038258886683313216302821984989810725309399957063218258274627013493896202766852650798653927029780833947101738033795321492677057196926505388090323233910140332514698668295895736277812902615878068253828421075462436734226011604010272462912322087328877647146380410136634688235622495835784711023476653607935668989846197265772589209102778476510664082418652272079656296878917860313638909878943652081428131957192769777225318558694508648149652268018238161906951179004356452209262106169467149059361542407687366438891121074251990057333368171490905734770254687621255087885674295239756349135027558341807301249277631961633166230600594978773792352182166958221439132540760923724141939809772385647441724411167760262096875498083876363855654506836949824869840941037836230539041216039692771096945748209195712298650178862628279163706743508804055357427317752821893417493738556958747397749750120664246578845660422781695363365607380299975424053750775869193433536361979058319248596110903143850438738909366446888900284831542215775441100347516744174854480107403228025267467863605423117288944838586765577519276774437971258910429284457407297501123293511796162345968541778359019699505040816309047606862506084548790601967145838693694125801055082752144120923539432252379650578842029220092858425446990098751173358012852556724423372645360460201252682089636430905935815762537176512124440146518680046478647558112744619509701058396776858834863214389067269409012168827829008051448727490380980738887016760381438856304110119102882760897668780344636307983251956258473586043358627806289216846435856482641369926571048982429626425087280746147622148750939171881902005627401723072569359907372359050296084267504116371614767840578869490442796870998099014563094019784728950230764135428129784020521811892342297017116870318116257856858917815841894842360529962781708275693619618740851181494006794053577950311381065040343559495250106989744523743874893719949020632822760554237024800673790039652006627465786873277045027144038619569120115013384218160633886122260484492134556393595104331530250015806094804324834901192856374438244809978775237597556547474477751466880080715794948338662515567272994179946540179369504593429370255128484538961068756618947894953277470682822323782392265132277755605186375832950312522520408222090273822292682359651740844945345187725122162665716086598298256829152174819064907515093372691036754819249567257335573738585705538994310977328015498126870455439005832869226545928154674441850544569020448929988347384621344911316436975267895355425869029434154360241684312701798313715898339521661034560024977862665827502526590867664833564391295077272853145663893324839032011543655259151279743411604507639615371942895231870986182872264151643610585423205493727533786609758967519034741190251015384570269917431716656060223036839046546371477053088453247967785437643993010056475183848909129463096403809158022121876358613815756763770384415371148983745779756142274993909898102253103098841714636339071206647640911535594181884065293876413029303364558332694826265244625955046294877032963786506820294390856822261956502820164130983493163481545976058554814516172509380025892840009905335823940950360880707553230872730155812470904313145576564348853705119418105178138929633935018746020518225258422763219037190962432418674917614511116666144550480304785943799984444434400563146859207292751471143675447510676167105226889990312600431316668754367720294452809834117346933365172303850626414570842907030557244875449947736787120916330815618543715771681566532653397280870475895755394472717281580325774302101613780111135519303659770870694106864459002874472932644070997905498773334892655706769525486433799909138622877611222448238242388928516108783619667907099192533335429104361442720831338492535551164959888103980885194079833878497842025958071596852903703219068323354242657460472285597306332230120843004847341902598238186497947053417311667322027474587157860433531305132576397547662225411560139375002755836017360730788045325855668428294232454419503856760229744871181794422670618398573635088480698462866994998800886472416454870676976391621880665219651309686117660426754397054941445261706774040742849253205267402484252813482585914425574831989958378788164427053167105653507096746633694114440616919804805854103854213486648193294304278283247656632261725883311817765392273485835207230393707825963424303453356160826398488384808532731772184510049515668491488754456009173520315038901142975960529041297040687879061795402518465867883501671705726979499198218199767284027237677954734516333804955628806187701449171751735384270498804441288259335578988551817660894034169980332848812820679649300119554795967705639244694266056281140948489924434817524726445888134350987538625565174813505954135541358241719780765887448242663694133793078067548779993321342181502174781358476832913763427152422793789470346749273832927590729590585318461010408077188997468326990522389001606708497907391230199248523118103852649316406910103652438632241299105726103626362938624234734901235437649169606675215753478618215421701904233390488029414216218377713289049218486509457939195983982694335848844437285180077320684246411164895054016711996910783361135090549358337603664887410170657591556926748774203431973611589136832361673941427139434711923985202244503155366462475600075686782707397391014076556367234532734866511379942446305932389604139949306063752946784571685828366355948713941283635925483116595460517235041317350751198182790829450953479415310425671279183869429552062340238650669571208049263290746030722772328418128198115278596916420387478104342482658495508933865128931306608367220853435945358452954058853294656208524767119753820216304378279271231146108708692842669248140051157746375262925917493455787165323931311316983138847579791702512947985361816495923669019178251410014912382085188753016991288184351686187046779059605502138334971932747819599504061957068989507802486626761063071011844833039568597090160969237030562338395756636296849057740971985544592448798336900101297247938809461892144676457320656904663294944922415280287328095983878360463135842239124087690618128431695938540095205228914751868006889405130087067627383531710112593554003402295407742084469904403759438481768671832743519622055097164847270504952214759022403977780694054110011576590680029366027179290797962926374353597209466678732958922446840676070170734137505797925664841465092698078136578850776579060232444844022173527735854043716218681519644489343798857170738590831790260969397874508852439660682753177149606435198703071132270696637544076013665845364283144071122743824062388020097852562187997475270279002336285282322446753926655230005742361927440381973911366998590483553997516649057642149136411967435159610373691022994855199532165240754084969635965224699584242742434658217820455133015189304105448841915817977286372649000863162828535562013004307064877674823442630950795898887227906781214850448251036785852083514866985088232509838850649858766605442591567441111012115358939222061749662916649570291607882530538457858429757661531318960876136127567717509879071648150023062837426806750419225219441975003476472880878547914394232616440674618993552750139194064899221126769806023891191617322415468291625749380888556579127264205858576323885304973110343898131400167870758230827648577757710494776459549641002332122618987343483051771384975456422221458804650759305755330925192051331661220308506682854959847088281178444825289346856966061155358493191730532199824867217499003520355104375133039639028180193728428376410233985117220831966331536799365474125723750783852968408415021558278562495278074604898224361697587066565740662435300553983579141976265046924649686511666738791315682058183648127112170704225241600026735992467913448340673683079875242142606761994537523423901645537021159687657384165613192093100057188635361614484422188932630670269179518130975857475161013346613327870944836511421474129146872980517012410278275672236199593658065031877634101758099542117524181760735349598169433162158293697572025666986360599870288703257192544957597319604925211300031207265961123193424045912448163474731313493237077385797900461824815555015491337242076690049092353365992882028892859441198749029319899844913719286401411900734197350681809587751833747416877308453168102279962672185376521665097802776624294057146297593466272715322676109453115222805601644240354323423480842917209903259400604883325797427801776019551831580994050042158697513159004342786666599780233191444065401680127508547275537625265073735415892438498789000225984614692147796290003998035598263085343778358061961700684463867459090263201064942930964547039946630449794149093219522804445666341649734912810783709844648301225484752862075365352533170442999941649628789180881231974878302656787583086384790212013185330877395615799483359225931824393992761635733902783334516332133886098892030047900969016694951895028810731526077888160975104314717485034704577342978698646969288219581268476987466785621596353964956141389203141639189115321236782129982627141507901283547113162495674828083767905415843378723761734345650506682381002040299663291975974315663408628159494975500566625215004833377825228272266543866412519999102037845841051012402285562815970857286205084734954982554873023861799826968135685888987720951938123499564175208451962543955509005185155043411526732679391422549748910845809799328143695011213133683555501494259066217676360198818140764256050563911738664981993141392006641145114922963240976882900792524967167597359547079184621070402784893974957390494946051468563474513903951088704081505829959917049062747916865474985570695582737893594218742121981821319215955872303979631916212143081404175925428331261474820931650905012781032819623068720542550210772114995078161813514252242806659231048811150067513649401028163691210798398718664122077327333793929280451486350900804537480524384801247121649144166775240088761599838835353933957879207637365178613981845395205948941090604586146145850830887071749120883635141568820666331717095358853582523799294639631899221883785517671580327354842032092753379023454863552057468031118490521266106306444766255071766151469482963002448445866117195457763637248143323447736338229983348452304428879809523577544391053561177513654855057170888479689815791465534779580318736607132802690375647648700448945854741299589069771154732531827045038618225094515001106890321712053171074928731920347869847777505686906438634165556459790827195154071886083863696841498531625903369808030578461681590602096572860848369142204350450971208982926585888741861786018511784468617408672027623189391139139623685871380774911202615535547058874002054355404771076667302349275129813685496863198757516789760222934983751367330244516015831345016847316764478677544509889191865709525478197081353552146019495522146700706634833173026784800070093336066624575634688606495000281797613019733882551119417173125088720663140834641646621814624017430652589174248972088084100158822455366610691917100761842854333590465511994029998278723549755734039406669731510218328893749910543902657006619135422183115213104147521475426031658549944073640564824023591890877471351136826434492217875127905560501279401260980439519055959521168532121269720631195997998464817640058094894666004862004954614116886263044068358720484982446954448039009354721060637020441661458787967914410945855764663947589379710655415136181072725609104599802070510199884141026216313294888237202176317702842262336067898142261295880848968752943918296641059651786364501434440716669359632282255261626720100734955157434730710207840149801667831933336159529854570739817756462637660856917637171181127378220271831970029435851208209877369233358085985067587571079513086500050219994375345497650229233841483647875125315434573784246162260026288586375695982720385305466294223584443228286625208507248602378692581281471531998901491068897983905564654891749813267299057557672021383170932123219274196049600065273922645176670234023972530740657631234039737769746114598033158360679880856744768179337579206546589893759644083530206363270375085260771713808207674166934603073907949435288388866516157087972153327738268195506997270623941077512196848254880854918628236565615063739091864881094399550416042674524218718300091259898335582537632092050749149735421762095105065564371497142124193825532132577867578314564299972418964323412821608671083055846993421782979495361739164501353300014956042582605902876973967306521576036111560729160228007386237970574124439270314680461782564325354945790049598869233843979845522734433694495623473589600842536139980241972993616774183870130126421298702392710802507710783887196272240701689863663535290073432482849166160502473431833747983452915176890185627413111810674705102166974789803377671384593401241234899465020605207673129956549071859857420128150284667338399482669851994908441622217312311191615327408254762684515140885571681650084190103760829076234902056265652855508671787489807064181635994687465703342159585752720808732437786846193560034317865345019953901554092397803237732670102926085331579266600873663570160626500880502697617424474506059895721266232497956819775923458154151895961481949792656342326273840061648030005643205599939204072125373423986276145951732838282611963673406271288802456581708970167356479054339748074216010580381022094714112408666819613661941954414280260940020066386307538131854852573999928950111615700231587093388769353010596497139338186157333731723330282296605484754167662652510500728256128666611495376962638683640517588541091131275179062119840351597176124377491654561071251420727993435616724721828949930817093983887154065093831263813881831975878756705414117399144697157115888510706420849117786964122169103374342346783696712656779580186630899832697172476859423214953535787527497099363367857554643356537407983848191761575658128571725026519476427659963582817969264661178678931659242376214000467689285230993276580854841540774354917872356928000802349410565100461133559566828775650733715836929772288216404771554164188732317935445860403418452551481483778614291664359462703837650898176103018542232627978031394384911942359731666000061515433379175228189717740890513129172711381339572081361406049951680499495082761378203400676536430224201028745021411345264010571326968733259605592095957919115174078281705060186496640101287353031183097129138555654899977394777602818078995999177728974390009141392780885498275784956926772258709708375940846828821626625573032338159678129194630444645157822595346577483042460728702848254412041679339145537178177712805505647350370115174789628571292913489620108538702713419182480649244741188310454734587862151568403836059385872676941046084109705449420044543128027203147609865172249895228854989520804406967196954061149794630554491405421616152790135648850856904969872703168779163279029220416224523476013337424210663828705078871896494656331824327546365033766149128106740712853167062188866245913350672520368969798892444041410800032676979733477745865026768813261816574259393826153833728358330663677718100724140743589817339583626805589040261796254875488602523269568331217738434491294123896869100579287920784483813003979485778938095500801509954741579083172307132445563782719742622660929021192233017004246841537299605989905391730241507689597016397325681485462410698827475650962276516433719301943951654306808790454582664808670577886754757310771625528493189707563649312733830355319721718533519433869485479673748884208206608670691587780005062195830086882413591178223040858073175100284553403572558168359645375685494060303473578073687002602475248146216742852088585983133458244506948816713690286527729658114229714666340540787770791620577470730571178077322840054503837690340757553964176130831097653798196571817807906789734039816192502277159446947500009779618159443656099611459416307323627561393856954383646069403553967005495336347721026244405452653393745449173182167202477901362054977253744153961920072247877829933099823567907147594337388870007100138944428573648367880154861882651650927531297468673417176335566966333926302846698922775291282127201517017182481598251866105100761246575461780821486590923801436891239389120154187859939202830329523254114419967192687198857164998135244713890677513753959300731978412491585921836801646652987272039190652024035123200147671818142925252853123001501267039179765729552069694545623525784071209325494987553681421056581989405334947132855463685135460228651656504571031596718049717094811678194999636995014864828573008835384550093085069291307522730750952943979372061179232371326629513060423176887638609368495064244371741982303016295853361540041243423732452796807945771118791522541529646394391392788533284958785836346816220198217866403391741527443940007465624453871659980582688959800641698232201905541116210149087284119776932916672399574391809922533272901256166996537389261457860052984063444907850475596156827163865277090077649057824967606817449703431069413932937630636661520312760572778171621211058132064907027018943750197089551074884876911115245722315457092057950322491330756669423210706446855024182739577073385308636525494056692605596047615250858725846275169823910108888399659961728983573043830592064540698125827101712696292303471567357267382351955108802446836216811954211449589552130064864949989506183678590985728979529577113020784583931965301961879444542137543472882434593602223561068038397155579804551488216301487806486333408468417626888987010985536201430859339614835676787841037418360457096794574131396225521748828819531661149119068542925371798843805969317731830215637957561181749855480120648700463827524607975923392016699892788256680039523051980788410760766539692153547527743595495455263379067334354458439826991903877591574762034416121755957258541277966306243632976659188042481804758332765897813044359016057246552280269417785912428926251578850679634312356586905259529801373784619919239322967145057869382382546973700706589513966173008874437813461449155684412800438824448323051394466866472475046737488066206094146845643224512026931051780949481630596509939238251165068871633941307201874218308406621135055816989405521499471288444111694581281523275339638643859630864493968792018225066421752455039813763421599756600731827080071314776388668522757484621396954131220919163684724401531672840659285058265750162213785125532072308474446494699141674527584935197691020859497396907354644035091357840748694374719079593944337345379224688564181303466628536126200572081385652436979855959989224711161209623804351973013057770215326233607249722069959914704879782609535714718112374845338438676526384743021795779355851915906335161420937619405824567228396046366843722273349987724860907463297842740025482214676542363927248576898695506584424289089218218548419476940483273581849289533474412632246928070547134996468775622846371312602909807001611415906187075249981578150645382832775213322157754975338511915850957227939928693251493881721443559886466039213109524122348531702492957766466773005240424648951390786133967726226860856371952693808954083190706089078693435968563094650425150653207882133779871948464779608252282127117298370375602814890855697564990509267175927585663325817383275594709730386161161899841040208087409827883909545317069669309516489900003300431919444347537048178137729765631176934225722988867314261088881175711426244329805648936836389379529015655673323191120194867108249514966268723415893370166858875876928723249634503632106896912767982517541979630330946466769253458074501350385954652349156556541456596315742321790436819004292246046139027912316175291061814579851177164297350368075514300721512627677009080197296234773111233080010414625865053972809997969045624277935850051326146294775053839366361297967465231257118167912132647119671051489474952683152071808001023827834014130437611794067770188499861414499103463220684213218836236764162039467545136084078768455027520292271914344831769808138073150353952059597611122155235861050181329351623603011411091852855433158672854909516642683313358805271114741562796156893012227694571317444741279784492056795494248935696490947808599334485800691419566279030939170255092246637187907176031237456098966650464172013994473210527451915197886845669899753291179056796586812786506081222573218897415776189246488668581632606141256835147834758728220128449101374988977022332519685892974585000466032206633819693544028329129604994634324054276592855467480161655499099442870494932167224920476053022712289879186869825935785700470267000776375037639891097537060969499684132425021616461902505044049983043218482937235813502124783640903202322022593748111292802103082052526746758484508709831893999279343474423942501475066860517487591151814658558194363642084161628266812905254781488337171150696337913126435729686088005621350405040434628166211350838510663618595631424562789980314373269348272827545156979264086548117643166506211231039368703320266204930299992198256367947981895460560586141041666622290837286845592436669530843944998573937809550635176324924092134828202858559917022516089653365946000843887030205049990770154251611574087980667448458422375524951976171331711842908342493389793407230385622762167241335671993294107765802811535165466724756784937427839671978092880201841549005951334823432500920249181582035107159816634612103697915285691806517156921633120257656738797764392858083852672696768062154683314504835514086254677524814667680884744059836195872789566963613104375355762609074018467670233116479559157778218078591503362439041994887201103256806296672893443650666657552115335728089449868431118644567614564354285498153597985010181393129403916062278042912033736495850279483503352335554902591219723802814964870092379835491797826246613876399757803230959782547343461968059153585763485139865684633306158544741827696675617096582369595723149679218083015989905419870671068189335065880519380180986049737873488521125404522635091767446293398530664631169031625647106511278805709319500140468964266149373496280934995841675821677131307293205042970642256530839123035748722412688820794283539750330582487532888387797038795008576030959891345606427666171056260508752640483175331875115793224786269371457376728013513947652683916760700982723584837729240638956901510080345201148193494711724011716159882305229915381341274546116065919646039343329793046318615701692182700511072643471886392793658766910736305545584854193525591392212584461419467123200769352731572661369872462474780702409089936439796193546359314594195265304713060517882344162481916383102260671203690166677556152221934315647978743358091981701779396514198897243710295237466182400384799711307356643749447828043551382503867493649918855507554449452583325216763979719237655571384148885905366648819087770473639730839607299009436834088865684937673866876533843989839611722344025570861102473601021820238895137762544915230499656582536080347693079655493338047336237221463161911013589268454942438641315619132422109669796565193397221603044568338946082823696482242698678456059068680421860394233996425485661154508469640787324501145544699596541401668782417650430399439927349154971980608436916682470930288992094996641737238530612441113980009741243884104947153152890102546076716655208698837224753526032691361722421268419296495472591350234726874194645283288201245932869198059963174412610250927633855343492436189403700090245596473389648348544184868113162152479439137822716893296442485311490002982080682696730290143846361033176508543108262164152479496301093089276624621229121949802857794115134192194212943267602422939546614617414840247825541310133617093871282243642177134101277644660234636563010242667695956191712303093707775640359061382306675919479478631325805807167205083932197078005186466329134198011468124332616139242894313457155625674943303972289042374541594196302909383349864171630441750100408482085624564874608905355729754430991894543933646887606245300500513219172485642648238148194549279355118385927107454947700816424345437032157819104983981713590563380188480539690969444134044166139677738757329004081393783949986331297465862342811549397322052533799478387222516208280700996230878684369159228236681440487035410527681034784293088582670332885861774093588732579634318309474002907485182290948658581809247880681641122115486475883146528861814097845218707475410884517666121751333797607041431664616361500810024835616709124062142756352016857868872412621699076286228969747713096087660270853763568408816048891952990469684883103262883692944825659153093450364468081140023058397956107762672722847259118951730072801116717431900968023496344263096320002088042682726385954698998279490722860632660795129444586332270981943843031879770465579741063956787226401183171561116785504838570309414476854438569833262995187148871088927299121793722359359232434917310991134508671522803333434457181796046104615829653926222796292287755373852410458486372472718792981490142988223845514468269169316999753553841394886904524897272551189764443144524441653648514969262258497988150621801883757306264431567757950024680576735044706836180809181042929710266427565122212635813627927842609818552418684944128075132696602030919828436194194824478487928812458455920795195594625419670317074032837054566408039043006984192718696071714472040436061715013415749910853624506081604289902561955517644238810626630123824725189906357002874250863094776041902054423671087117950959718096651029625269595977669541552442108343395518068018580307604817734592827708856969347397541876301686456196137823205330176811594189054367442275266093983149717680556485848132358995531769019770669191133972748727691418296604198499742733241758170513373249602662954493039832989840442249987077155846098937392331358549984400859913474625554603069773925531187310885085724555067470642243278428229232727056241274764840614155850977913794605860382023174353654883317568642598807079624417564702017400534780756297216523627730761016918255989426469104588887076155327209839249352520103982249400433591427396917709288250215454805650547987134285047636597140297613881354110781827551830479850224032502072034824732387281140026423527947057517116812612638499487465341277247376899835628157533407225885338864343942754199295628484506525645462532478936967510175845838771064958212247441087589995963307543803719448276506705020855315542360998492084695344542598808703344558526605048939751375559645999722964302245170763484445646211828452133681107066489852139899677226898067952992071984570626660659589226539105040175254399308885996030468262021835663212634541944668919453810390581129062303895050984109654897224444731667542009078004725743522067612489889379112208743327626007182696615761530672150348896947245629526047350145165834755216963095153036639701321433340211126908488199746313772536597248560333266619951059087869451250420322864996688349247705756646303150267033384857734256298509838919472041793562872769362292137437073036869804640952909285731924506105269309616955503365361173365510374524590076525181880226115996380771823277487366800427036027918692200879920110512787222209493254706890756397720544045119301660381648233494830276610236997679617600693740345342446291723395085256920118687306591678193058629857682799626463885775927565190935302578134348300730820060065173040401213106808274055584999817586404397270700897840259434402292429588505109645619777681893577420440658738923660439150853674505366292132897134255978916415610077641104268701312970839525045490831279440829977442737027285105906224487346612146938994160287188638171158354595188463511824082263974567229315157603785776294067955040888189341171446636810453970248845575066677419500244719100830360548939786727630282889765757157077446356409606241536993797391878649912559268659720433057871712210719899559578491058329709055476501750256194099000629028533669081287751472598544795057674291827842748951996042862895637727712047740299677838109254310918900830532940202951915680792767710195743820902783240590720554487363761354748961999337169889214608046377604159705495757468979503698395171842525016736355354521997549206145942491905413727284588638734315964278903781975951752210658790974573587085499981505080641137699164666000950013306943941555487887830179314395194127005893247245837146149440941309332849994602523537995561754518451881870652717601806005900481471231562965274010689956657265974533964827645175991854855695991598259260127034219801090999674321870607187038056605095891349926050074940795565880256204860376805595321245156806183298185839296073159179778393103366673204471941563060656314770254051772051674518138194543674024124218427536317105860781580360365943572381227345532677928613980006932397977651624240175438250698558133259727240580276113638579102133869363549644368096740619262724839300315909126019535560630203242200113927465334063940470667873940110152747183227158548058645773006654438192416203570391491163579569764861876204909536084524304872100246539239475157563342323714587539214792901997872164523239469919693051430358583815638293315597455686647385550117295240158952080025328051088020362780262613050378619783850878408753733226639996632902834152892406343772349314755608085904034761773895343714846217607003953311454301265071209063958946720644865875070737943261752976008224079348285488259762236757859458649768268876118582965313517244618737089207981625814068504125410486140986114184636531214861051073463515794514502857609474877209942533716527102333391450040620464993594845997253169748387011542417055518727310101016901472414532168700022665716399341137330912313293551642359448663921408964468074143898726707265212415688436372250493641127144986695711804713570202090258190399359474664397345773114922617988526667205159332953573462229598393676482378803590576635561744853704692475852248480563285218830943807061292346423964984277779238512535718595973367589475477561496002792573961054859805120202922115739800153823474117385380267300042373249817680020394158240371893950648138511865198665843375928394736786064828370816816557812108177522287787333689432901776799572731002757124807335760128863705110377888868473612384472287183942922811631980276323999095095760071714488760900294681345904547145930607451831262184604184667016251756366108222464751983668478901926666565553154319537921608836167016732069169459441846188839474564827013636814756026409916072643619134130445896529083708178160020404350711284632044448663163929100802980111020402122245204335558556648767877098790736884855653263068041277908100373417226756666251638127049164247134219146947816669326092312676767152632993565320132325367368063188061568359034606597815345673948157119482302980290076317557890725588573468708864178930740209446060013388340449459734875530271434378759532272229252289441387186208565477018700825856730387524786806745355737739480660278776012054873395183798566401779325212830859941974310634365160321759412218061850130478549866511580334207820792955299500855258544816510143192600960316324914101983759296420023661960033943382307100385127167287510714088507114133113655838468132311122841137918103248037784806131627165585722329411872451688190244094040510888774331184539417879721891791636400830829602734939497371602461338240345387742227562250145583639822277652739316556696169189494548588263781679805376527616161724787766351858968234727043979606346873491640098410136903243053288494283528006252978193520321712940019514849329114019567016361922706932262259440590515925391762828123003917652869829185685994682450482620220525521854114967771847746330140223061612128095665141189529957871468961858665571491821744953824419784881110238530869638527666262721935944706001514347077586733576740688513789594390242298370240256539472616996068441433704791164094310546035143907287049804997982530448335700927868770574598170178135428728556022695473387561994579199909914572711614515720261084893102293407037747875397314692688308337250860871078306419798601519082064764182961206939383486082864500014548895145070482770303399285821290401703417996202143903849085550597215192456129477401647754554625972901646487997105597471259792829726077668348730931639555663247237215313784384875216686016373629909818308829478142317723839658423045872483741538162682421238831818871276567017083327353168653497529988253880347780546410766641521854734684946058569591266084946736941485615965903108334463183265753529320936890195526958934708893386220368162233462715348656409042570352143403657752547039543774086082390006527043891701502297227153531699281428112549402073040032873967875973918746600628785037150531489360749033140168950534489192401396643318080151864691535235692039347162899746697045534176999804639894879944256255224143409427990998604920930844528320165982804539803144640942405184278022096796711878525917839630797635407025080604473492328699495985181117970860124686231210961019265369834120563941292583088969057122618083441447035700479945720992150268699970208048267588244169372218823909014049925666214799949511635667708305386135487872186667904777417515832985418437272759066962480777500059810913830475355092051108678592707231060289998410811479338192898625042173184042092429293676076428029077248654070930906529604757732937464088440453304765477924746984371235599065565413134125615282337411953093912867361695476450297649372176320160053710119332677458684366629497047712731685024090651966515670898767838865521761209506360209705452480921735304715782178784423987381396260617263077744117370238668561518010399130392919927999063318758957935864081009835207353176758194136723761696595142898302596182901002882292653819467202942348233102429661121634341911947411843310953021388287390023284401074835715176853281834536015294964667876989025847382729736882482748024663448406822454925171945451110520680605468369537841983544318236540296700563219157134921673166215794198047424683260500570549940263707012606239067410768601381344205725021415916586097630512387581767067304928275956577037571860633829357256229305731583622896469072891241693083435454396628457119164022001649712563848394713658765396367498282320352452957604179239642927314039603440896581198492187900499316604666216996478889019390153782735468250220308564453038634345866651232704741103987947477153310323306520403265854266400836506401204644421545508559215377356592379206209627540109602799094041881315197632185550121049857939403661221869396959990798664073227195130220718663483261911414195468360510261527417496885993471331966868227646774129814987518688610577716025989216453948840151299571361278511788862893573422323257619777322727023289385486448293528197307978944013587426880753717245772797801764267039849288432794765692769448036099769518538508489798892431044674160243521829384005082416503849520124717491694549802496178964395398595431939178763249531534932501714297784698087194712351244428551768958173125597885944759827284914736335838324489360076452589320564688549889820708835512997506932769780129303385625047127314593552653185089497967188495649365226938722752391974568491355103445807533775842545974693234366644060427457053561387568823539837239316920316267783985028174682081172823426125037331137932722244658028032560682853042328141243113724109908756507690054355753426195303767990855953993725528688209436139372883148759436882059694664432394657669749749731806021733026651790842433359415495670340426967523038884177424395569053202688120149954380074253515334805188606114884078762281478741607256683727589177575018825573840562208296213363425966472314982456116069295677147832786073947823758391181490051424040331620046070600769053652934223603238929101120703046875839589954451837718383862445462749554406019930679561170274473965446632360674237443715783491777041348683549966374861702524644890839592635906893163608698280802188916796043631239936887269739447171569609816092789612057157863567182727290911852479767920540879959108756361039540171194572758351772713621407092933508542149864673696958661333873809194518738154409533852158955165893301375037145851650953169444818037137201730233140917435603737515765727689038592275625951821082100207567385281430799685962492034415445347610957482220117677030590705419267048809690558292283767228232365206704685503048043114570799703354452279938138297743895813091897615401860193581857791597584392804332297153948753373635220500303474444111046634291128028456513644516388104660116128089357398443585546780388579848371212434444385865375939893218635608087454551296505868418979025306971160750627180639217109073735701544180638806210372557495672287451977365616195001641254549097829973831794067946677870159669739011729345989012298532195682292690218061981101488924879783416507936974904408783588408859626577519591280432937497736516544411327332080570866819912065297675251027945901433742198491881113328428901178799805689848956664066739533866693861892931735750031052654551379551639813275873807784360187440790598100065833237572486738212067161319147163873804671358856251433044468718105849058820768596759236573738191731714667257869132230949640245159908565711272950798442084205870692529397918210859841060304290536695889627430629671581559062628398365388719342993097172904862839375260006890563859261927666365306587877608506341391141360438751928144113968502511603945889654975408310141770310973505948049136722326227582159592367175513078446789383367657135342535141323804471145765996276065251080260352721221991567704857445199171478202488928558936153816377898540248549688368228940119675027461188286041094697911030634955086247539835121907032474155885546025016903430156598064938301420894975967545851198458566005781784626623468768065174898674326090352532591345844859445499115857548742816038227825021191121725015518926161396343069136831997026786268028926866696694172326648096327729107948919176931719984271108689788636359781477828074519612189352395142085723278778289936424000815716216144859910666186399564161026794542474340954578424981307825370989183766719835220253258561318590845840529600968030322034581988945684679995058861427720084992451790182642595578230513187581902302611256497540035577094479687609387242538664491672706058656004374844761058613263140281407176085371496479185894987970253164223946796063515486842377680988184602058525046068901966728165009736230295861300549293652278742085972615294658278148798392938547925709341170126043573276486555520404581383607859387184804251520215666245557218023300422975630643106784565360940681817505620220377028057632131571621192356554973946972908546087597776329722141891935904612468325085644057784621233351864789051349581250538422379740406062664339946120030761050989928174669962958466626911739122566002739283115069121348025145764122074772559602126756924061753152773534044447681925278979602108930255545281103258703856695905803826852645330380816650668414865642656417936105631473565586127766448981092994074893181322508940803667398000375705614648224165532821804665857498867841653477679498133208099896544457738486510948158885030414646642207024085473891027499431315215028582775772637347968830763768404402798835431174170414123001290849114526560061531415086645299569412221960342343027649764839673996548319389417034845649045320509978036968949939570206511152741514687124338534287199692862048666560371278161038794690501333193434117440651810346430033063141920307155404168123276631620722773505455734285938085765253424629042425707804083301502158922133938639015300148524652644876843366793156774378694623478109013914685695225658967983288083044485279333083577191645732102146238126070058437538164559300875593929468350916168677425324136967300371548988136990428192193052940937686723852823705281533200504086027978354523163949772080523732041459823489293377044856625450650625655330843119108626131881915639043155741827442891112292886343928609724644928948770504464124267765166746150413228468300668506754963183196591975445313708801140289277222458215262377923544700131328181328751600881740706506411660291134619406380886959172003954152217789347870937783707920249039763012653536264440775448239026041699374594075500800771481172664523173245099267631814326089459043445221227652604353488151559442038854066595510764298959029962718407298473329579340014690665562141851542001869809241420084805172617919902655174348022149503313128692552206915185512106995588716885778867007287494576852306552712259089522341404206567039060296515246883816101062040563767756998636443616201120384273069961824840824055626928827923174790060458919047010993619285532868964894660058364664737279077620957713492693882047571215438163385002792625524228865901993135828807981709520268523969361919617044994480804660879264943415958028914679090285257819189490062310046579831777642930758083983701524939148455344616701487467173918836250810373592822989198779748251485564629577943488324097502530772407491891050819752454297150678173821179229234618931161641629427116305047442863125147229339044624137849187088314417658122926938158977326627799736499757219815458387661454726497508956657005032331044537128010337755447742603414763523269482650110888500515239721685382564752646095164783035565383080795924656809414172392855086424425842788141531034000979641621933374525551799632493480128820601805522525378408685859233564352444156108035119697954125820592026662926507977317150832606224802393508233698796886026786041259867814539074175615438784643321849832030136590695588058403622711868653497197203413354483919578550331100435275982780703259996376665106222732178781638383585349400216481184069833993555615967832353687083367381936552185991167962883931179136929141845354966452102753460790908042979642312720694281627303178064529733764767717325572635821889494090463002501629861908524155113477878063605681608546281200861895499973086732087845749940686032763366930378631599963648521709553934206322821564858751986913202506743807517329749994835435023044709480906316012953214705822892803000785243044002040013431586203385670085232922451743096204832113933012857970205273072273892106204819371760249983793831871878124190384783403697015751884058994562246446364376628203381547274237044137188736024690086056898564319854155736348775876225185733902002479783204142167331928785661967262014392580468326170783056566187005902990434458367899421288676104800749543512486660318901389023156853083741241789619411230553049939294197020627671813907753087560317503947017525767759834512739525575476863346674798803745679018267219682816485383400007939301361172353852218494981742695884110316509710569879337647761341333029187183856663754091103584973370717776228832488122502685076160637689821119006562402376014598627858143470761178982026050427901511254925495928056575737592098775695485094652655021822166944619212095810070551431152742653421233122218078342417720660216521779102308980122960523639955777581084152907906534474363399223951866338112224377407176185617950902235498988746266303773553429027629072994373468357784523501638936710833950845513645496306787543548286290474370413051844661193311558439165159897320921547890942368865767165847753139188576567655513423876090206215650478214069809149780566917791152864208934720187334332777598782201479274796520972747304694529480110508802886480029678092915998486660126616105529081381050470313012046668561933569427745842501360083389252972293823041586435770287411527509918665559717057224768182960356871946227785484491248555033505793335403630993550537736731598660457982265310197233189685046908918732852989348306048568384648417459322882016693794951535627872949887730799466801503755207567409597595102587312173752523834753935210427132435670099886106876254280923383903035440824404057766188080361725022370125872945173374176594493059725796182221683770377704447708095928768228935343857308804443551373465915036126601924437771197734555980678938976586409090886731745426943940687429004811008689779849626916060625769330174511150897720003003197670392278851493188789846767080553171525519964309063606368331571581804887190336174958821884499780691292807006028053133041572131528261110023075288374780279011263148885156609391140815417353633307008304400895623018278292346635130304719438564110195453938707237691351555065989298728895603513530102792515390773330084951432519295889030995687111069572971679711385227381153571054814081992604430372372055805388677382899831199540847889575432139414487679928162247390367668953427743682581578098851226059020869763743701096323963285114326036771772704920473610805488445235863783224070849175045772848623588384321828451048010522374495217351893657123604329504120951308045849125883265325849501594086362940020871784807940110435340768856948646276976894088712582409199644663235082163710515301798470310971561408995920155402218874324228669740298198651032040168415519256392792863364029385761855231025867540547515368102681687875830968174192242432626447753622717285499889229341112826440131664670523089589010751657391988746410571802216677488290340982239415185473329797893423725953304655090223207422106273653211143449986524925809841091443797523108602040139109933825903366767533328638394746879765639796260926848231003902344729503282367030384893073094603609595908634567407601249389766427480013311830709119277553928716218537743609120188501323826097506675308357095412992296161740794935232353196875003934904911111040328283696726622736402698886043701571383768094563670854603889241390029156436563254192698817434233435939674452828647704229253668575671174520544939233889062721097808518392993158681115523783051407165526793064990169605251912011813859923965369138369163763056137805967107074304154646360777259901199784494704924288615043236821602059584684100319019373113952747178726163821008243765092819066729958201363361776667851628242838944321375312783311866483982363955702969388133496193500834500945036134016968967011234348999618343146957277268681297627116234601747341831791587988429168397299055453490640809183777158778810621623480054275317327300039884568518716522327457598751898891066846889246162583852252913004469932586563638706143263104230614825016294746975093793164667081678393257916242438162451714594640400105443207898554206182200455091296345660586270610306536410064437872150301646727355390197378855214082641165890214867114783026988745947865418205464546298080341594775218800730912347353749370998497880406781108787299083296024003471726590346535712934186858976332454408215058898203899716002559414768794552949888039249944519035706648518573735693829040105639420169559762779507529687916479836675617666415115147870115707006173758689567938212344586395377740606801587768551948657744549169818764167822165439551247081229391434344125378957626091653587677344428861626372972523040881173957382078802983824345528958690849416446996975874304639787405246857954055054217991291058869544386358081550470672924812715826238464831175750651234521009093014801155152974104828859710714057358407435179578862024759993445812042376373103637918714809041435918189701497455037764271694510143749948221130021248976305752594077268340434177604448056982821470266442908876359966547820269970649758022000051666356439126257356980386408606545088053179627592101577511703061574169478640517670114213720616782364888537992992046578838053985607384070651665921391789698037508008956011959187128532788476406467945065403818949980097239930203733184874204509196579890924261700353858631075752174784376821045261103146386356505575779530230315292492323346153303144162995001023632501389031861988770109076832479180271308018653207715986128170990207347860464495267321787369015249299747101696269663217868177561806776996713068515622061210742747897760825402192537761607927776476783908629199984691256866413597430906396228979316653584615392434950271152128320338827425194597569366099050161498780950603992042882424847998922085245062124486486314318618769174752801301784201320030451064516551404886218137537787540165363249163605965586456746559931356723761019285004849116057984545033769395865934906358910170200793762912851405804874545776845982807382760266140056346290282978477619922010851554197984238756084402012743268716790203912451637277216196791204365844728901648446557979750518985014323862179756614732336089132709888786028038998789915139578396984241141472408087023061129232501715140360868180858675658887185449970976910898577757243972080291468651193328329416407953927916612898905247926835835465009052666302501265694338294165679876678853666293844192757476890128422976562768959683348590637210515278185557041304609986238591897915642540442325037186598534700804329388771421879312166799845443020877671853277757690334456013664570262421643767681262106345253947065635732227758365385497856478527895577354789195463660567611761002038171169121989131509299017835809644338252680786533325710675529300770088522600616962873683586805973848115673650230912217605928440748447007895261800594986253320655261607322349733473466153629731014264222945107596814356141204303113282440725082990001710146310217046472911048011744273270458041016276986742397113744555154533665303047041124638550304663696197112268350840337030535128983374957568237181422595949349377406815961610665916149947144344488709388224457771892883242827234754037082142499518269053898157788322233410153991753494808559302381723019685996302894305186464703152344011312815373454161351173969062461564187711154598849630178357170366910876864675704362922015250611181345364332742797867808145420899368225162506944683836136911305959422360359724200686171806492643251136737067617737693248214124001614990970191207090255205349509790577422154889003483001269440619622914669594603002326214517976375771030118036285918091882485058438210915539731175354785057152280774193068653306070566941058663604498088236608844306656278290117274360072808246063559906958152842931533267875275785443357481041093037476219564391353772410703063963777582657172981150161687421101991324364633003304548795024334970569899262721440004712453266744181171100594396277545428648894849310806184590776774527638618156660333387846209623737816116525244088482603880946165578099246719886492896169063389657610412660077413757310650114969086012168445210452895984933120974120217146303579740149726607975483707765115245671501481204730195402752570102271900256885300903023701374953033781455487895204262578244358294853599235903983603360595817805369582597969449163216877202466152746274148335913759970213343675622633260617472098565170589674524020412619902078864646288613906448561421288337661640972364491789598714542079963869556964962937239898825411382068756088115445473350776798714697531771855110098007443689064645004204488633533703611519794770661236606341282841060750381884185407064615544134334419912594266492164093897325659366126104751562145131731185876629252492164178094837546460412644413115783465913274038268932871707573225928539312992712075916679182251208221176677753702289465073047021916854443408745349913955372919193801709941240264307672710940102137127808800684802060771708547848205491718246309171383685428891023005532975812311673257186547117925769158726877708097000749261575071531183953135763349650856140282150950614359283234584668649301226813557146073993922233947097381579969364940787947598741582392764188099787455785005270636222208095595105634224255024695218542253412287329195347359545508852761087842639058335736013098142084806258311730621166407438985734345642998606176879028478952580226279546086836972976256575564714884815089619741213780352529246635386707147323057256717589127882667860199920980168362415614108210707895961119873226204423170188153628067525882248756370773436984742033826220592373313770031687790192416679001477250293271445147044888260987128565054842638724812978783414933978193228405387431384371581413404793798330821963320078249819756470908869863267812521578457877676296081671746790839705694933002704394284537668535399994023100677351545341036926335797284963226205695966354174404156044371407782942122938303253259528876050290171267481870655056235783101619058434805340559779261768628033088321649527085998828764433091623002448018382694599671934925409055645855296237130840679209168906733703792230003028148778233531950573116074004070103127982304563098205978446300980732793698997493549718736581870926745974768811085100632727110748206216436569166784212875687186255014214731104393372594448819168480181590232038504056645112718618498368198021138935564192759162305855032510743102246348497794357535887629240084917205385232175982704697026728533919211043681784193441608198833210358446488999974993833202173504793859057244903459974624821855192985002764461316900465567131871303674523572112996795255440005982919161044335201790089934128805925430325139927747707786761297689051565473710635634241419288345805609450631581368239215018331303267315397103523056389465744361239114983944647627603133248471813337170994834928849287862092442164672762597563282191072855991308674315547943826703824226828870212740375228335249214870491341895582375278915098867409758118946421859068944607660655149497240574121316341864243908711958373112196101593995152984278408128276972762814662032273207900136571554699317251371192409608126076068645401423186673253707645907413068712977341780660566793948645010499367106835655332713577885911816423110461381929201264296070759265612018361949263283544893202807378596032569231554289908294040288577610284471651563353676709370826579160059601239729507841248081750108761898281283092531089304724923699405888013210000519183712242652456865920697097696539387123798570371949245040454164248312999577254495195708590012644201377707099813304821493318646444288747633605040121336148887731771625215018120446698447075923031089412624700141684533047819712933326507710594769765073424937716918690605607992832199111277830096628434311861384564958859307438925422742268056434905499020902655024943569746953691717334591209084704207621810572373908532532511153066611443576662798490572879045723500336959369293146334827949996273814026985075813185827894113077265238689715563638898662017911458922754945280058350235734032187611779232837679282959916518378236538999454721420483738172328069076067233238444579868986779041730612234690375635245624598783362847155498541398411094823519803327129277884375547948839451876623569094803968126070311988400061037701189068744765356213475278152717461053810077302924666833366972377647004042076018698417206163806974937436906232261053073345222065150984954957875266954660077336547135919092631388679802957514968585308112911071016552188108992584850314424922728275335357179450276957520811813824364376758271868185273070982558730578381416932891454944847295838907912780942662031518805717168202513240997587342464871084081940711723984355751894242440104726610113375138954076953357697258398437881209043832648453757615867025232210548789556425154690874037892152015735610095728571449379031868673567110007115635945387848821400799879442380502413571041321094821813129060276116592850999423460476196524332831519512034763481434216078257637062438385322655802995942303899139732664696749985079501377293124809062370900277847578745849496453901078864604349515005032678220730032211383510819481133154076329859941602291258669431787667275649817793227861398914852618242285606456447658273633795324698616613485797996868354346282182827587609501201092980073764468556382095319828762975970860893522264546078332558011238037990592017655413070040779673635258543719262702295202623925577148481526458976278592846564634349302860442221154235027994961683109979685112578200655494191639159229077676343430955363467680580318224180623991983097256495540390235519325646886933009443944553055366861761599211536480066038004891877713720553717490598019018195348751325110351756008021650841218767306485955110336505271445809495758032876135559296255235647325607824356870971389230884809963935748069939983311175924502536651977260233113001458267441161011225078147112007384682017245676124410885363660448255688345128607482032217828140093358615355133012050059549977302616341621459064978955456765235554320347628596093519511980899316655964533468583009647698188638936614606977350891944452989444725587501407499314146197064660141727143873937445271111875833642908935515814989071244204943686575505832261116397388851526703333071791157633413678921369493655005783002486253521835155534728414736745048329568348067369539775669068510556674323304119947193454759536706773073615795356114828743544717840714877946412733170820821429950803283218808434732484357104922755103772077002744734243539448405850803699353348732775452440538499590910443610741833330868421966654678624880043700143227402422155158017413314992324635302208435018860428184176225904742038692084882717323754437909625532132004008675509390138124679167705670980947926331174521171204860244475475419689600337633899566896137502864831476989788090448018834326285072013392792371198360489303292103441277945298667064814282271321450956207129717169509259709834495374610421510705108451021341237439449666902041304812150861717143023711975475048413335162338981276966098301998903332280463400301891662768059395012861772628777509934415891500515448826236234084510520300692051701536852094440333543075074824565148876577926272763750967934176947977673709866517339556522865053279347168074809503296001018991284979290797023541540929616670652691631483446990922693757271296423454984282774609014514888734431403190095690562658990692140471635572824005653503726756051700916595634959797396615319538167074635488993359172060602542579052695584157151027164233796804813323846851961772222437063722679481538957043544825783575550465666742127934710021927114694536346408759298881448404967601670433472347271995231720342376424317460455430925418652223471802227053725276153368807199529090580849389436801626881267439444460374367155508439854299048137111738541758620532532223917496884995776741611229030815433839626237526227755278380146842545793254434702148380077856976277246231875981723242325009753767698451632270549759439023330545849226193145990839471685186246441596640703077755139240884689111489029891627117033597613318110623472554526436966683585611875725866172225138705293779788070521119949022548224721704586265667625757677902234600061550081851907884243900538907725974682193186082843948779102114123802768594692990649592207068952932117026805089006975846572639630407523160956971676144144235842288178611365269968761467394321357794923576165586027933729991013021111115743074036539210007273348071405702054193021499938191387217841534633394173075945851248391161666397535684192834599817352940071287327952172726249547029738862387064993768720119940536341820281657279667070784932719174738144440351679802079803052187050941957061003648554808906213279375206599768346501531785873450668721605291464173955472601703071109527293062848319537112344428397175586807831178928709311649501213968891697774643477066885269516772287210576975870420234276041722584751332128464939371155982315800600480728710567886213145554683630535624604726308754508515998023374947940151521570406532931021250782071706695667895967427809051014776823833503253382919914241596862930766062844469260492275996738474242613512287259321602293117584091755548299128323621485013556962514542636665891368779546816523694366804314157755805994531870810109255405256248140575091875492187672965490194427904377165623750978793303920121916122927726090100213003423168012426421070085761531838094432202099604004637561138276220701524709015865137091012812415880682193171076520946821378279927521920810509783032801128130598137953607478622314838417564442208712966940399043115417017026719585160076907789723223573557973983224346193091755704206005158111675095898956731419306222125896557084790357732071099402103691036679959231116223065152448039030238988672688036121647917460485248369503770398864957532576163660464099487725180265454674709894642423674580901745586765162512361276379708870995692582964391656243524592172485106750663080277028758552420825557614430413008132341290594507502833508628842572505809906484186168257179759719078844331898566113051345750530089554573026105652199381161335639857765277318924074546587981632232977540143541210437857191784141688215026850293324312061683757081756797102933208994003742517705307129061456696924486856358363233031541323189800859241640895054291943575309708932033077446767565907862674602094564188960171909225821980583382372528672697526134367679444855906742387684346927297978532641827827102854892065795362349541993102600435353614523209584751396458650322940241453944012365433590768496730959152676297404157760575882707918852714570776932116183268323341309257136796078739104521351258891791821431492504799951611884617326800366537841413148756434167773685010534694575630042350678503501377159550999416470996495284742407144233617502092114111155426542248934811109995964115184714946053161430156331835239489951681027639961074114970938083616864659760536196965402800308198844635727886904259505750555857063326202224122408337857561444391908413973994552096743389331696579109281532129133222411733257692382810090252684029964828357790901649102334195860459663215981524496356905326871260258733536667897437956353585144407796779801261187561952833173587965916299266905243039219093339355189670563590283611526170914413879453832085462048617274513397628442368476177655946197536812257990908649325911379857569359173473955353637813392434373455490442201603416381862028449119660342926254865555149697777672943610952426176413657024959479394441765796126059505231789656463814012357919108983006982164594511540481319081021930086747941145073188760267837618376875719386883798465557913788934390476313463280506892236873131301410016897950723320770367507100323755236969395161986889742570904658285919581314777988886486707862732714295748746838590684377550502100823222522692325638147907027855583139824456981127607303880184331450318051572535969299837686429162786858533163088221191154243903307698348966093932673273758888584432898409368069417169108303615955275251627507500740695655601755218902385715192236005161634106560657644909509546654564865888025044726617973400474303533176593106655303340745221360520699740923742409153934558379591997261370615320734793459847606348398300295240947421407932181863376029345041130543438031138653573528683098427758613094595476124891923904020457900392529165080067960666496865364292868198321225728722125738725703900017964544587459336010511567720304491223325938404012733238766832215498012461518373242375615559353074777700423571294987949689121394075169395449124869362860426760220676664598962336140182786790172683701974833664753117270264577424943608147338677380681567163169668392331060338685976614217890721861646908102432063539480477210398625687161614830661160220467389728466117082658458517451727061726487697300527772884326329215715598714784097688099407437829665920018416475722351907654237421801596326485963103591262496473053305300883699753306773148679236515501160152841002872102930868062754216913434151881539684083616111901850525077294122376697450040693754903451945156732790528577144606123143252851700249737948066488527538900861877081982422801807941590426765248776780791936818793799062871977661448335547894573999365646738504404746826519022553317283262607790458234332744759515761843132617757756212623672396673179961662046576607739711964224617582807210466235123078677072011557577790529541272081195604557203451101165370582936756261973883403799086901521026950622227427321505630807049909560117516427866297549845556645756284811768435424818065826765157162643386679797332931169092698667246465100495011050004102767536830849493742008575513487300045216985428491870702687000813921907909879440667660550633871615233692268249256981148957044309662314981556112191850173463937557792580927305820494065529140585044510624056546610200233411413602564297030102229895295781667134369394127785248923609528234450186890854733591017404222410686441983299246316566317759205760875720090441753697258604213137357156377407569414802306904699132259009551464718330897592285919745305624965891762564558390884509147898534109738559670010418176376678793105239486922097259585095839727740249841469677963524555649191410277789060807279784246833291440229119917317606267909711621957610065700408082126317791309211275153996106064792405909976095675029502891633251034840534847596825704819689547689645708802211436600949757403614058925056770608312008419478220699292468184048270359857330148782782872200900770668932040144547533762296288487250996879889254989160672520104477113992891497385158824858514389507171564264920783446312416623633597549401408927675828497158431810852929447405582382332729828633216825339334656562461807825063102519114595744075438260719134205670580155103241398479570846365541423923290984822375108900952472517253814093225218826287265330172545189927535249399126980946057483464812210608936049391340564561370604667281138092941109458861388072652028906082304411168320448844414494616643012886405105245912695220848631012856200678598381948139388889423770850570385741175776271881527728849810649561454749826415343276498121074505512279924743808658150125359611480287736815561252716106324760661188868584772206262158128953082002689167700409908342930870987728132393210377344047574903456270872998073549154988263364194476986621122888902727323935710316707417016817967606046301329175870458317869441845031079562131898642586520021483973253946411992482647842794889433521022135346649090875421993328510588457544946297114934125103720899088156282985566762047423901386089685185027144578872696808493354997924085148075343438757562954871725253300739586428040792597738766962647595326200542855930255469875923321948182542233667348671764426524527933788651265783273557029899862613996447294421162825535057180027643970079489792079736698614627606109205989483040533770086493464258245539673387764783983291201174962556048209653707182188339607487634276635353695088502706447224450249102701858039922849953930725099641450224698692355698392969534249653870402282661656093269258679087295191122203558629947979164348185626498088607733827945386587052416939904038483884660358130563972010623957198601683610104072920149721778333664774397300623298392183209762029229359741915354737966111084468240277358541651581509948330342689570378458200799702767417914515993390403695220207495042007886303582357894293290339098524390876479552701354836478145514463131776145946142771294863741869905706046245653359041778558475082870340704340820452271762752015283046582426118250202450340819251587853714156270458997590340571696622941144687991907296308968052548825361334558935787634205050160512217780861284199466475448507378487437203747705937356911644773450414807639774432163682182321105861989781522622036870685104392319661368105694722891316208633871304072934983923636686325500600931448962771217853867274395839248065932731295505926774352671493226067338357724485678910718157979681646396437943659781334132811609298858236039263348657551316278424722458297499867679946663091260772056606263711051647787538419287380629844814747264272901274755949346162442983677302780838733249390379158530889199716904718112918935130499691839490210800301335251613645689727540481610074743366615445767093182096711350532364313856038457979534380871067624915501161713551579217644474584285877226497122352604265283788326964116878306777274772933984276079430769628949903676589294858534186547500261792306299753722231219018783554427581052908304184453237410551573149074816854820540182819338692632267386937986451843171547049071627710229922999896425655121196670959981881848567353531637554421010139593535739358966220315326765051259201297925061024209010782051498210896079898858100219919144245656595786913630487213280517931399091776988950948771050471525308423746397324804637043340963348064362081091438869181395259958702197301144136175344366775535758018664122989810887399285116089387528434228037443573431843725913279922084047483549954743478951357410252678921861958612534064780330322352322859754400919317977226626362001096278633037444175225009765285539442126935744746632921353698957370366849848788805961709474275435086233782419072014271963920981474549356493726613046592260158192375321909356277398360139967543866189926785078683585001939136179990585909885232283416128095795746481564925846440759537550831358567152471159361236966375963874221586615530010173074757613514082033016223681907283700922576369817320418436294096931628065235514592607759336401159144654611463712538463225431608771988901274600445493299130258734465532600446601755339443992484290398304323874497700474386146625114330265493098494256044050444096145230427515314165983718698406491036153576066364095689534963743685047592950076564337083334956181575972386645703704682221657866292405753501231307699169300780918795544212860994713738511756665465656326768501425216371489974587104013808700754329108261797741621969126164050198455403612671968725311525613343155420642668147385914394863062938276944615965015057361752794704404495239488203705254902536142201599866221471009593544029873782819215646552265582853363213878528265191775576997106453894153023539106185673810730320981537864611386163765397200153266628061376785004688820030961149318300271134288566673192163230775656190900257681983630461122820697947092921240304892867808362865675611976627051402811488662387423963396178183872267884827003142365020229094505237062338284603728082678931900631365846109054486859851598464022750011196290153427258533012848238473570004150156648729382375982088944557600300436998081093540791515941418698916558911297159630923801073054698020618135377546063635031207887863135536652668030211622509305937246875428714204041439917019066957797863084756291530322014201897119170586349238703251830117788634540669718378924126482458421306620911590051045911101185511925639755195585280467847378502502493258309933851513244805563749051323334877977877587675098828134940659531290090909016564033090501378994772251042751906523156126917531258404981754555979943531860537955403002276757976457559023056170690528387410272774678572744544313350392545674530643759495034991064004822508030172847371886229392850567944255233425930674879137028796184376909728499998306926804847980257963909533699975001838901920752788332104148879677909291638015299316779258968904862135208104075306326396692035517198872216579217145334059411077831592627770261689317672006001126503389664009151665861262688257002075052832295268552658062108847155720331062674093812764529342113375559330126036328574427720783045246480723184119209379601629046866579719054174516058157137011337628469260325609348838225310859923557759231954038648115429449903800816582646322429627945043641177138502389147405998118091883607959439692975749717222636318467456652395291337704643921667084342613764830680253537685729901090031296469303309369279936926762920923286971803906182520000945615438721015709379725093808096264882898000782851253864838220993136661655604308351985345393805129461264735760521369151813548747390266429667048327186100671248379601263910544578156156508178472377350066533009313631664702332584563535481898119534765515170028385999891459613339453887745574882863797198967962278727835723610955236926890433083964812508719324417518895487793547307482003757161149416682574096756465239104383669769245665045002879556849048113914070201595522552939083632016602280282532943803397873995187558805771414639737732074969838776458119817993733418430294493231005690316234450160133377594778442900764513576222548811033221046792388626507587572728732037033022122123654960287288282312804999452931030735722243177154358740473126289159259600336176055503189276333651475014144383503052682410310294796989580139033142991513938559623186901762920061473696741428628061049110711467727077865427603498991819334129272910098576660439211054325796629479042375079878997910512531281650245427841306100382028611774019004979445188221909467210171285699978935089469932159589871950892996267987713743326924717895639107088808499713737736957817668422206379409199119760437290506274289769982056600025860679354820692107419623249001638923724548629942229764150785193822172460239537213077936656712415194387168827503196166071625723282419853426078122537009094785877915500760005767280824726199161799361958796474792690635413817833329546707385007789590966999324868890048294469630100760852833347850456458870870250856599691761870842233783938568431116412981825452901793587207695099766329949850581570365563638793635283285320568266229022770806045800551001849798082729129322463022332348886895466799347931652343665630070063794117001312181252252356439853991568596737785646853371271757434013584164761708323432506632850876322554354175758877071095391275209019919498486070167188776932877064047930773290556364095988209413017049450778555343828686149012631198818045297532920978290862586945898857031491691523531646536165387789614233628022280144151859884449951365006134404700771818977441503242213864155902421870793004988764218734283190786534254699744753196362793630116770099310379187183265332510100595832507310829240068229787864028821027242341954977833619440842539535544265348018680851758400938812632815152071210331364915334932822439824011083441280750809596747851965487204902218059097644877775598474433590497054676848962479893890979985649746609773864510907070174654970796068091595756149826666109809288964961394919838464005755086752433704496014291519901288519575115282996835185468823679967661400827251243218570231903120594830356087644596023446435093356402663472284798103650923918474214526453196033365332660537461200393258358593403878764080745198753024737178038562243344417745106567311596942041560728079112415528878628019929762363444401896214414473507992689322486300451162956314791342230533750214455309896447278819634751005334725865654749782389424042413966787011035304881515974936821455705004907426899201506385394722628220108608776329288012091117774765933681824892737431666567161305199602604860657042167254049671249410529935151988908077692218370299936129623356309097957073831820182936117006727673932763898697330943541928434938892800645402647473518014792952099371386525041945135174677830206379542513589086578790202013211913199355705399866641128870741822553240996989523670591009139419576021071492466633541627472435094246433153438195370032520261525478887127175189888345427200245661081330789714805217355062976707022351992266508639078114981876675061013143460840537120386766783274586831385516963105896417483223193899611830681261543147371997638102614418497794676937951136122237525006463576128276305996560488199272544046542819072986501413113279266442053808749198965894629118950501011268646808232833731023053398839465057974567547036467622859575141994957991184134904520318312627793200410385441080455345604594381341948716242858250283874749900484944378490026297899743862331725768589309905329153830112753867679072234408296396750274262265619442404345683769110544298503221910833489337969527406316116359010166476570038392083395383497212649194803703635652088845727435427482790259840144570698567126331723415928252171579530819719464961672690225469539676368469487504504349650039421396783007344535559295169570242175124796054837679360643916383844394605528179567786673565489108807294350265964369915804412762056865328979435039048511240934593820198487736615991871778060864314100172857929859834772431240169554554228551464529815479562888369430076461115979981080602088301053861738004562446198905416568675910690048028085776301848048038710641292345561558478433130570523977878859790232970844463061818858133165081189569805581727471570916661291169051516320198444033310972040702169282267160796776268673878546109452102518923433763954088793622396867651576693286985784898246489787847510333296980845671719294571621569310225496772027827666125134533687201803885487818390410840611487599837883948408789216817387786774602621592159573098076014636991640935761770246788119089924018464285444653626283106892163846260700378138307500449186618891804521003542261130652556810451425806667289020003028953901532177592428201866535803453069492017035509847603851307024578005281758595081170806365250851931069758035915974260102072905383997667444672248058908376334411194141969578851078993972766799374376469438028318847255882398203823915553709241592018522252248347568633368177711243858998065230596358572311522676873085796347962342777164925599586750571332719516116137618351274483641398854734683656371082514395071678270289378167830250759896309255498160354645823097198839026401815017059450238108109952388425693083143013683482660346257373574903878880865824167976759100741908740727318916574921813702521808309977298522698785839706488908916321251304914708643934900588610554931971223924241358646343214134490483977481133862393340442733941592787438436833830844445819815521243679539596373553598505295391606275468560409183193438569400262204487106330054672835988218189971246018751396038361920309896925145147616221007985098854030934351156766267580089926599620070586656664638954272255145148397822762525939385759294077118450359911104908699278414271491463416899418844694524807366082763074028949353901892121297165718934767508732356405657068160712964381108810352912988109400356778412384459200949462116925738514508995501674582477695650935761141452917609681008054521401802532133720391037019406002872946535511691552114388300743557392582098430653867099184377024835874740981165401510104098914190393744816319083644764555474130814979570368335545732269684868899196160150214093007355724805922977811521153123695956298965306394117374880423125486567835382890048532777476765250062821838135406995524265992522358659383992049919876165399473801837177060888040467534177641125181792872054609547413954237364786223146765665772985402038342064663123079683693075775777667262757141919893684984134170818470221222036871169690131481816142718215809271372766667362960393329805377196129822717987820855858807347489685724063769046981839151247380548276320625394130589024582730986158910353752059098408722382652749997433249305809418251863804772054862575601224939512781745306275008315204631180326784144676137643996785988229006573287426227758333704369142939182226052732440527896614716809748538395527569006079427562318056785208547300672158782395218025483764366275919249537987735249912328077835586797817409529698462937690771028547268174524879040565177521094990954745990553209524396502775548999642335461722090674193386275745319197748341515126620168182731534309177322321811866356634204521401143846059026335260095601120952924213883662182463645119077798844694636050370957582578960380000156738740106426144792990993613723158183114699276642741281975395276799252215346880628895514567211223070204845690554746600452314453420751425724753497524610380746139171788929997319782788555056773126850767603570879188574436933841779423831223248483110977200854837353576637166199681572678924019265626546814397830563790147174667109616515397914527917069513289717042655824783618220918462909550731034632801545683165380127577092857864517129894857075829079815846100030279151127444486202476230137786796081681750546913197527805269241117827971230826238802154026812017851998601490341169438181716423117884742996415198289683802281625933540881071148202949680446950222558784491886464806874210838171353658052574191653930950727532612828091219427078043817188301044325773696316612074872255395937775616385000976880535652825294530043585610232202419504476789788793516013937778899379032615008041746751940573360530268317647892860526609039510640131046834904984994804324603424541040190468751060002994621127959322203557118526080209853160999065180031750210812332951483579615378185932440459356851450575207813665621512737090092185740125572094902192416483180675816297726988991209604145948432203874358171024116541996698803809283176484323195293532217459921952818148923904794857752620221519680762794006430886907981055335330100664185891019319900214574497359508882086886002927013826592607770790102153010642354222513360176474611981093738132068703353310746986632772812860640134270007816399316647854106051937758879814813088444735210523989235311001953647317092144506809403972629147451140201286267575231869212858554699510778816870454093816876327637288445876100265255886015581015458498994418715473695804029109626811597220445742346872247757375785225997061642654445948993417642552106102889029724650489589884863103432561895480304973171704340972318848093195889959098928297360211168715581534005757220515335007254179033289496141840140713177668402413743126785844393983125073794073435002848297648772047382001620677920173161550785062419450166347130182480220563286363954406259301607874033125273384067620734615840301498626590007994872902107479353792659548171781453985153901280446482072115528037533963425768339121090996641901744224075379651389113403215373520139460112353641220868967553745476697533000854205500354120548691335379608526754909556645170452395907386169512406122088203920681338335287151087338379375144057644135221922754653498418356453036048404659456779041494839114285068226085442556805516535999026306817096478041151043398727112299525931593259514871455074901562243090638259227426837661088045210792974764400276749500755334788995615438259017390017635753609910765319548560912561705325046461004812233931328838291985753239059438749637474443428958841938422767553363332096421437928056677888325936135206176254517889307930089611118788244564071913249311443343334052186211022385778230389651351490043451815120274215203270771925205660305243813064501080097863717907526985102793403951362988277673733875509478960677846500914911791642872926559998930055350236695451853451415794887200973379767287506827577468676450592080446664403099368413185101161229469856313404726247985086434098669322404764272800968730766659431786461619683289526068398812795615552283097960961143753462935634746175996441448296966459398977775012635226442501888184926099664482619516154656180254009763193120825827480863982224712289636665289851669013061443475669321889184307524049147343884024112592574789493324878963766093142866243802462577274276457188012050262012344624888783694408026479627152715878047611246294179221463504134891199825420647929521392223366576020454976008161714991322429186723900664932969798035458866095969900642985898260782530731114354106004250113541593382871773936256198597036337923726088141274684784610919592744111233999631145950400198684401482597511889923394915793517312581662466511245017266924106860922377114536154332400974146369507261115929384928991469056118609539729544518794021098799724143912707017875529820757623833728690420011284945996158499882869218584667400303072669932702079146610952462359722008520680787823119931977511299448028465055859172740585873380253132204882156245801478270876981958506113068207556349568291361783700337189698710974486572747806654985595754901254353983838391746510597031293098315863162071207234597935893018018194035296281037222926795496920961221625329263025211070474776276425278383992334842424440137048946962429437315268051581214769815179236521784230271970566852508576680443064655556134094854589578131620304478051105756470658872711560024486701492266723963345275496991926153579046339721735996608460763032713663351649447235436155663521875202243537756587472109534928394198128877302710253729989729956127957539799139984458447306448264363202782290988486565679746040189222973599899128474810344265320231893779726000392331536781887672089097609506587743837975634812837081823910651211503020158970789346422065982895329867121181835049642964856758976884065160358780220822240456382187042257120015616163583359687285284863061292588037799744350900437948591382597725270416091064203670405736303801001629939662025930715359851699247242113901134817680226130199723212038037984163303623213196652474830295684515011029413527113190233785903693836808686030654435486283554661383367684256796000080609846854197935446272281844967256507927753758631966605708331681483167800200647932221509992224493934949838705924545225268492434277399013245839379411206838642216025951412789014129975015899748517386119548926103690153384616005368629061422884186075635109859822460323388190357998151473721074754303833856163520886004007706780884707373748165093984948588315743314669599139695889513139319679141815826271227348585886113320084401244792604316100320741483170638688367102838958429948543431456624626779965321533458814111610795246912044360833076641612475130051038460916029515077299876149717900703196936024147369898711377913728036506033724992910363049214650916142467426442785602103523447491414586520004326130017763127484345352914646471410893715401272984612917016566676636097264907840786153312048268292834853788442288131447270208358993050094805240007844020832163391775194908698267680474237833821495289335421554292992748292290179589926112676956634760689043435137381056409173117930368161179006043575895021191320480229031978596815116612591907006318773672088773711410117535063742103029652559540322453193264614093929389583698798544163772745963994809034641981743442117576071978359332865221343070353805086379227285435684432555997739022175315914583112985445270286918512915232973474553435189685429122961012500931194179595595191178382053435487469791341853901407539456531905002978415821783245757075199801671498908162962897924208318476780206971939900235728096526899883475859245454509794273912438723751838219744356099826638509652669494402400030454769108694588073241515979467018426848787146983088497946293509601161794340579469340019956482921464231371693890095263972023504904725136785160832721073131866377154805744074975618299731395298076908255398853189382694413749737460195056908135324965292763290275060772862831555401299500239931604257838663431908770616705022967115522643057361168733802392571245199700035368356780893225469487961445008207162379631418662889802305133707672263157129512460721580654758321661159212162341904617028255662339195854837904202348843576572641185930999544302509407252708600351070437516376000937498845481993959367623053665527657023290045308850723226088741795379541334271461387187416584732077553985840070150465785638736637457910776265572662963869026792331871651605868297992100677823642150249903267193851445784212104008040870244114516345973029337792415792820493952669787307497638660998168210777175426135971040427085183733629640185259899969945219072114563602757129084229774716324707720253520250734656376779994635218678230644074717946879687555643362344672023021170537004521170058552471128896843310546608061273645323321379706796031420921408164286495888112432423789637654781222254649612715499438735951694937808287765236069773567783299091040096700651478025760904665726320711026168776384546094527757872587255951095124776896689360602448033178711672292373105006345877053302519604221468052511211542733221110129385061500760453930931282904016244188126612919140911466566908831177263048053293161802062246179991567935831812603927497751308582160714190201484615122468338380756650978911008128280640055468975892768208525852973311874767481473930593257605228713633874476004886539100129221546472607258821988565251774647070183382931884756540102978468608541619467742142349736855250210827107695456361531902366928957511640544703971764307675004493161168402477732337048281646151693221969378241258073709869009031005268299947993740826040974475332627223462485143751930417920508589801073688772278988976160748826021363022176994874485512600718392267177728684796306975464318978222692394032330882132662633855347586391745139810902519313156693419112984817791425623834197913161269319665839284623462447117658032164960743463881378778026272235648341291522213883405634703797707212526687562127988049078798679895188513501437686736006551723955491044215981727540607252419876229920280794495529404594521720182563126078248358219667510931729772004856110964260680734416132832447710462905673744326615054490122203934871028477479445859649375244865355423970526886552737723964066726768108833302154008806730504797371600634695993094935226142677591161209021456793891714370967558543438862710682139532957419017129509764850665800346593288354791675745831258908963896619592436623343410867285704585663803663532769219404570664243568869026511059558591226524694244497733720805034611891881586303049037681300738936619486422842240163849524413204345090186598875871117708123944016650341107373004515171281724745095962091365699696626807255882195949761120240393869346863148662551540694161598736114787731186784420608361496417066903559488838466536594335939256128318035149242041985541868349839093652822796916468805020015486853368355378551146379658308402882066079183882581110164528331959050900974600386966056516855970688458314539771494042068307849011069398882344157349781372688192033519342510752233136982064342730299316898990290940693096130823929396578580089423727543583663928740363974006938712102898844952885138470097884816294353292211745686116548903323470078957941931297771938707171418124622661509117139393366099700087498559490942493976590198168713529511193205638436054406843270097250664065746126570297854969586080433901868359434344405574617323446686701592101838350856118203413617201412773580036197833852710748719919436282983557054584146213041953757336622818599783889247674005182098666794846223799637528152191999643634425909859731035937857991242164451475582285999774427677100337035456192621959390493691790715187697359886540410244025887584764247847321596815188843472234842813483606124940834265709141839593890758387768398565088474846723558846687595887868713281017762627146115992540966792763908689960818288094676977790304914296291659338655022127912698559136047011647944488857597745516024570358042563706562370669676312674417592940057825221074834261428269451805348527257261465694156765858722858283249370479393584958781850644050435009678144282283618270357896481693694355373857107446067427980406181508956412067715479644647860198734030700718822249580524240537306520600245787070929468920577887029480021930479643348016128071983984109169914601162427942531452778548291868166750721902306346995622634515955980196283647859326886041861614514492221884381282429818039872645958545228699171229357684098587345854871665655002766658904295052879937067686475263525994400920488626949494520087116338485357033627717492906119419706897588789278616174850957605502472555854321257088322435660322948545975981276909424474773266671976210886447991156422162421087674600250020984929491635536882380466524944478922124688870293697812103039151329004709206965940280625625705259849313619924125566071552635289184639482682099836151013440544350253841867846972297469123283974450988761726910440173080846435329284218790628636511532387485075285938928027411107479016138222985496229453366038625967221241742465924783454215293402477628630449663067566941946104179670198723082129715349510508298085858770651384773116543851490436929431353972338261027209233633522208017122616452888390167767551488461399824083800310720613731947779341165173853105998687650897247425436034963280146426664661539918579160353676419187415198048477995037326045917795982715368854253980369161276007746007544183597522216102243128025664135166941251698358113046426256821524534498145589083951444617009886644047340626089216187880979396073454956343069834559440943788257654996517342615419769088260105792786480733423301752897757099913894264663298379343851038892206464996719060521732978368982617981160975924613250507887878310889170435461543147079905899947216118400526999167796262755105610077398991110978626609918301559071349367202099849796629834099384205294129646413333665949794870415973913276478104356014297192789917468420569839498352577311689535963606731646170327984846136414246053449971418138154845516112720455777937254584456671468734079143788114532737020871232838429448095411506996851868550911004413588721758994277912701418613980935226019359885739226186196689552184502147222700631630629470613815507078357407736217337942815857556114540700832266613578672838169248687476969847402759951926068984396081083094641773746984631974102815114346107065911320318172602182560422128997151963928863147551868807114572232863623363650586676795387276329748874319567422228007038856607463639185392568166248840978572772514446455206408161776086661216782375878375530577678617900039618099091692253956987032941856401413516655404596093000479399384562955234984786765931761639977338793887739882833555412191297395544907766094976843685918842772133980480261636680115936320084167334236457592816757057782482261583744841812170553904271701432964633484242133025588933138635086141575269133831162504681179405711729683259770282915421920637884344098738570998936289088314790879148637317207736600131633569062734949498384275024129278844497372372791556804408347913820919976042229455504762634916427741422994886081624614955390280899363018712271965272181053266193894417730499089006139055346674313247650275602068491570707626382001442735218104719955131563506825216903280394865920912659857200918353184202360305522208335765806238817099630659412505966373148896330606092605731555833520671298876331097544456145246627349619798145999007202935962150581679760117609806287032370667972103283750104814992831263261492660339555088682234411526657766428982237623886943283287685137316039073005979886826023429093784011912477690599152240038510960785409664212607936063700702034764070667075937426322287465567780273033181380200094868308455505079304793174725864807569934060702800094048528571822438365416077966830053789502877561892721900905924207642043703853949556380704770374320212591571241508004679732375962438980185972260854249249665454925947605065479078423424155811672165004308791456952522510517018427393438239825097024219045336681401503218765058059431655340343818988645841924515318999152644605476014236926125728376204146124308166813522187957841912220268238388304839765521198584932808775982724354032170681106109757069949737983367768464920112245354949705747616352673935480042375690403193852045279878174023785870984449915300595304822839870447371544617611158341053668672779653925726878135801591252813584749663424235728337497530393618605965729407723556257337414857660539589271583505049478135157993350326910487269291032106998007670563435376089944850269534557487265057552034478031412583924401137221071530388156101368557164766491713665503013574048138248654819451885849503753210374170287215141447222795091310655189149758047416498696275956333896833215136942387380280076568923597395077870609169191641760404576896679392454980207067482101320273322558723751279284689719629817665338107857231500312146413108903371060352793670529571109861103933181819769595268916165989163678827119136978276959728619762522501019120473365305836048058307610308626225476393524684991973490575061688250785075098744257756240777764133109973553808322396176219468601092208224627604995705448930923338389033057478645546275937305674891403515649227816591079696560064577023482444083104809126581829071244819660998801592656688521991458014795395884430619511759315057262859521913655425140256646166540910090384557157385362689445393195243665150862712968906046890176315562214223607070069316028295270699243470835433058453808174636272489489183341404148647706074398300005942673726759818614993761301066023773277090811846236608824363968360843473856445617218925560686599117798722444567188956694449481584163549137109596293037343753064505850389072903070581692710139421920598748744937770354782330215080442075083608144727464702964022266880287688918646906778627602474921447753197991741091919746797817423721632585758615027913160563203245469668341817963863792844309104309621762955469223584953575409696940176504617949471549693045763387217847077389544185628035165446497094923526995993355457012671054838955060436821641860666557116988629750334316326435540267574698972884189924260462062670891201701087569670556692473502779639425686412296993455639327156799415122022681003567905083480011112956375992138390359567740037151312386927983694893319545603690939158283858233571230998363168405705301604045686205914677283948533770052334331379931197687724189343418158050338182520594546829426817216736971798023656785427465891910117133219689967717993001788381855331015504064824711829261292515109551238056361612911408960435828739523099679735967866308372679356666944648251804099314300605233553208470332091439604479103032548499114138116444113229944746949077828806982987471097073262924202979839521131641487999545384288786722026403155326125974658345710289784749845216940358906579699873248265149250119597837227363929092557685503739109933316381579458020084904172847461597197616770355808826750289378365482205228783647940710419968745700318417807827168996782858315163119119681531322180372235016762572902183466951946851527347435885466105132723037874449809455514371428060585122617317507331493248722994992070662482103896901702913490485101598007143382508579393052115261945875122820071461710908879043075788011769696438646633112048433870704010510274975646909045486821849683027006553508605051482615830231973552783012755616873812573472354939695859970777138839481707756082887168453484353397028884831232751741971951012659906689096057563722700988997361021547961689124016740494160445796373350203571817426507172131973745773431618803100926326578444388488716982710964681055785052225898346643726031708041429201427610809628575221604751454136961094108697087190525095394480828400680071300773189420062248741905624910042232803140969836522878017999023069311864310031993329118627590608168659537403700039796980312376257700917912592328138882854516502965596439388323309505707944455948273475979214914029537982774130946525553825958590054140854901914295107578361453112905457300560976664692138129947776708880025039464929781746883360240889286787794319234732435346281045431959976178844515444513769706343938626626749071943835483079119135398429903511137129943098651905845006991974019809607879146957211384479196318647337257491229021993447978420085653744716999186317444159355757700705018555103687524187340025341196132339340138072928206609169074735834425502842441707973431610805097771800829287883364900081448313231102103016173872907327801493669818998213321549383049614501526685847496729534666441082542551810862778954493582865448472439616614827808081094651256296311591866798904973068643177781541010862702270080856109518489799367125478597407382686192005478830230371320502793025579929929128694439671733864727665347882502082668846584776449416455087792526762266596403998972711775525408548939480957291424686273923730013391965108401277211289920821437311770606646982767892407069859673897770874071224497233246909003458803810772289640446072374956992150520367659232969047457433601660931078362904241827401710633558126087885577767156958877921292727011481776488872698490416213782912185317978183181373239355166874175908492914613527288039688079673589423226431262704183286823670892033563806998425646391637467239438352015096906958357028883245924769853641990192659096180606807041111057627763552926437147107865693045424905437680858436931872585665005397867544524482166466137677182709503005947471405521446483669045403319628297849306993883147401730264341598103379436045292338558865573260683511933361094277948289382354244736183368139764394915631814278736775129302546685676187785361949085421390188804949028935955103926242860093654056449411264813199418235906428624278486988279198468132998347333936947445653211160648144746830874121186741658721617201834744797502262715639685971424306023248727171602478856288148467823640231663656125636069561951482922765206955521313565146207658623359798705256048358229757296374409438412046045408081166274283995480829574954624974212581417183356893653336609882581964005104126497963221153773905291450861925946153082176079106988242024415937866784797253313144263879722877325268599904480279918528805451376057742831392263982718666874615663134785879690579325997601407788713891787942062887288430582335027004323944379387829009773548947810684352876927544915697215174605678833799169982664898490929351692968104471790175757852485863664359155615987579330408298740070702260563780626390751253117216445075512116814668380533723567564390916744536487607634351952196877676203706041424935295268402086351253770937385476551019714226167804357257013336040559453277831054854243542917966534898309714592155881196163481458427893559744662869917203517470914069267769751132164349519525372803417670785619146435296614802547509058734532255716189348016991469141585035444030387394135858997262982205198687014524300162052892900621660667543531425490041874443813759846207478525700542930008168538120352365864524451956345808276472045692875387801856501291516412303024645931491577324950144161173235283960217657015391753419683037927799179038969954722923417161938124837084885191682945618437279150781162054570113731676448365690351221418698019543157213955061302761522531308949481887705969485988613680057832673308911923156475719441085562943661894522309596757895398532460109040948654093304499078711134208546816449817575642591148612968374152454649493437815624166485914572603808138467964766459187596810324733460055812237391387407824247662329128019018087846206024600414035312782815970841776861615805448906682145478625060136506372677155017575276432482157562398499528312376862831458377665598824692441913256802483489160826172772145201146005087795309710696811956998598375492507718272335865109778674100421665161846440997719891979149835131911440369262990293471411111095333900762262175560179900650538967712306997907465142347850001436214827228128020010980738442416610334063783190445366821587577200243946323518849966265183018560679192652230178519701089498191266653065336591946836796452956413002341150221105483500553942322406861447510043162626956398774689863592597867381487136260401177293821695065503858637293434161402263928697542134235330327169707998933960895823548843003668027652064520166011070749579714585304595248472252688473380712330177672264655270681837255598806466626871081568494812935893330537923087388808488980737166643449411525208746064856361007679765908210203125250079052228414166098658233415246315405822726732315577041624767555558013519735813757060256050255282462735809222994636002773371031835959009249853788316486324848328539406581660910242653740055770344092993515235061465453923273845196342103748692345581036057981775234268676787220228360471235027096847399805236280391509001008740246407316359379161064912546444951516325104438597617340857883249475612491645154089913157264971255507281004079217776337026602198326434908524104006624032331208069186857325848242231865329305062510765246996041100987571233459820496477642129867634919601461860361452095694581885727325482298607556953283511624624381228400011713659459572721070103029918603770828046192747244545703307030649402615973431245053414605099016493974075826581742497292340673406002483253295828775298412516373125331229420201240109868248012428652631338375966843800138719240510634822342455297102193548367430538305227374743901982857412020648998265282072191631838278482676717656092783424675259611545926499986810220419703375402716099892291743615314875376712765033805266050821729901991067300155349935523370938086994436028318825927964334722492525477718271984754940897121388981570386250607503569093526985419971797853188272578482230948177219525527649335311407007953004314190437626628675009963231398005922348356964318652299862220944199942841808834031342944266172517450117386271918282738399329602002987763265498350389056256372605027251860025974415056775725539961889485572364102669921453032731776068819206986618347163829894853270715344450817928624511440129063407047598649733211595025353792117373326929816645275036436694378435087144282156830300940944051880069936063440291319736539360615815136028786290354046046351058609137535619936894811412329063461493778953729634575399888119756865333378496766321269974706301828796730200579156306843520288296426865212334424978361251337379297025248060887779564305861704437468317167016808167590504934741318716660762111158215391648138696973921764688376914124655803550295443530656281034047774315944647750091200324110857613083217496806530493832649497853502710974162383112189308607045754707289611979895354090845748900066827265762770912466490249892516544767377695070887155865316562378893586424929879011849165552667210418034527178944388595899016507759275565278138928382417171254761579347509634923911764987321223499684553623213560010505482420416411071315721590527209074695264122024311238082954783984719105184163044277208246829263203198405914938064030584008723034638186811661916879101199634761613512092206213972124253473478298202084766543440928294601061159150251902145940616532019349541754893255219175054061716534279264445306644841824027277516686028932930420178171804412861982181205209436569152193717015082324281340067150059629961732724938277924465416589285134140543429619809701693881494923712523683221626513762212623533629632934530103052327973449981861228502984376449979592630589050186926846326809908019791943983634963164987471774270330453112860306205120756562178291618796988385761541030402498151616335152665008982490567922001015570777135599998367733518169435681194280125493213835885019249163648913196035492591588506314293686235809592064510900783880706790878394118711999073108772007312977786629038521056209706212134686449413676765309093674562737886500782578848929188835344634161837273400206362406261657045975870390335622721992900697445131550828872006562593643824080578624939270904585671624428310067068719776236487097388738878274297865288642116663672816332788395227495444969414063342457610626688444322003520272749222494801496831810359579361248320169067524973258695914182470495987071850691235238112789862410331564486884858904127200737275961546201982166586547245367617736567077375443521756920846870752394878355347219535431336149555967112053733915355362355519994014958443519817138062935497019358211612384699273649630645456962406225164438116447485858255260297580150280514156112460157318114763183782999430877369752308148955845034764578212943770701265839894879214793581201862054435374630476539987306705263530592022410146128794925735247142003755856328707508339457549269703002123835160239014880915717717511326819564366683243335183976929983011236950426696144285839767355012999320190195166839881639196114884312693641175441625250429274266865806325655113468822476193048231383610006786565370850206560425841345321438690063779838828999734024217285346821489221871070664926069001548398873241267591296923855207180433248821916439653248210984064617502743331876802204864161057546368954429878970330487140975657748330579561380919342836164581524708930342778302205489808873527552574060227456330233586385783175653850397869855249980744222362848288178371052765650579025093385859619166354779272128397804297798481903863861712488279534235688893176529045738004128945463704802866605258492504401555753982840213164007024930706014287768004381934959302053816029584700292149102066879204175860390652974145319053801480938580008856320039472407522826132571304332232538479117506279929008052943954600981200014542040936345124969983928808839216163256253168389466001094311274071171334493115244481894308789634273238846916379702051378318422066667503008473478123003771009770510623265947802427902357293112991599547068188703750844005869980234613146779577096354340547748884043601400616440000738653330105788768644009941115092334253345347777923364637327856748391414088257710375857690655155880540820158158983311708955178764722496577446794234079981646043950509013509840715280836630724472878592467017296547285000402566106815615068135233347097990853446021261430182219396232129068044508930074450037715916707766715246575043745714851827169298047190085721710847268699289650942117421202481978572057958524358062994625782085638167556640001813955224382628139474491952396335997137742687510186263300133946898284012504824637841376589941417640711607549901819735760100208214405313616257561244931260209758807992662653845296681679036057223797645568464254700354401545655669555993437056044873072279938525745254127135112144879256155289362864981080842137975486088889245381675008865557228217954687155326134305390462817515081149216226454682186361558671569590177310986748111128055204797457592229986276056269024135115754935584399168550104211110697362503192748015210556557428691255357676686436134528574517438304836570894496380036388915819667613616746120818128016969458311784602547930889269934393064758429283912546739390379455168579119344592798761843759822065695032041889662969957794557608263913479588493797178855024233073463760457523720330565362649340162766580456486194054350013778841248722217382732965269324930562198564889366047270401489427529100891785831570929248807691450838590027733552506061547915001702898114804763477826531089732561711278100110940297861881902653007094072721467661653819021456154041584613497875615462238974623413728655401496250155988826634652410130571226803166465667728569251038954842570114615392335561134309270835903595185875194656870511175336489311094294418405769131006636126581970319625983581928913850732819292236799281449169123553574816579142915837472232742288399891359317307466109443982639052195590800403823779720914607674795989907486640927704796414934904375626300869942231611429579130504975579024195669704509010533787130050959066942239362017720336546114008311368304093372350639273992645453322528739399130895713036844509902326094719022468500849400135770686607375170454231359191375509392249669773112396392611574876395793536055272507314381903350661981458817479132295065601690648441908953738782743686057813209554351966491208249975257507606905232412080406498132434103671213994784960576405058562784195725641478120997499368673053382275029311349082689949025715093902180183200521962243888251280910123161381893333224313237923944350660406081653340185669947976019867152409496657150743695046838035892021387012123521833757084422682683056714149976531384408068991217040541594146568198054958003590776556596356934680257396696068659792588592772622709112326919514827752195288938091927826706115337808563095606928983674086048747435485725284939625612239432498797468910384355761780353610319903303224355649186060048885215825505431469784474166942458003060857739257533733824761634345671830296585613510515039418698332556971750362510509748125970718031002268165029502107402159846079230670716498962105901025105451477184057593742177184710323297270396186510315970667018044947904793138373613109718251544409558155657598717642336161214836918883846958853527862374678315483227034821384684576728536540999030850206421778663376625990515749942658638743803173625595723629247459105091778075562339123632655592983174652272821899378919961131960248147430346952088364555037767694526919339352639387552032079665664168999054749214087888083882190167549762753849824616431527428802038580212534668322214185411953048484941249656837657189538651323972485618082117488510457979959438009441193953517618216731633648331804092068621656109583950308294121432462716871898234142606405490115607416860939563170621306063773535978207990061218653238124130693019959103524346100024612919818891902636917477044889700929045575697427629059249639506032381897319729635875791614540691805632599172863338720214619796554548191390986126402399851287871683069372208206939599966381195209875576420894461484676890281015182760268823100709697093240623912009450753103319336339623636874754899002959726851706884045948470144483558894738488754565129692098656108656024795969774215613042773083266977264556642669162542736316279203617983606157287859371546114971269866626810503388490078378162938272087847365481305176199892888918981769032607682436003113168126970337075286909758810200253867823059417845522086395086205604082788196625370562633473146958855014535192977462023715233693334450984536689526442378275732522079366617646263058602066731406804275941890023974988625072095864886905987166334605420531191031311765061202930998966213566057696345571456507562718292639475926404875429138051718679749547799102158579138249567887802223342079240536052460642599728154827319058756447951397612472496525393649091290267234461887266265404262690260319031739716374749449513107843954558538809503213178270256299789056391422545714662248807535635365610268630437038631887122106689620906479135740919122492842233074163283129238196334018566258027019556871792205767171173036008827592266604978531719618339227907883107762796044612789773136543670686189808458338404871005265867853654856427660744653981464214000952826371758480744982079141360080035845998241464779846774774491384180821176157057857090545518091627093951842939183444596503978720927558950649400020036450197325959834968556278606206975094281032160955144756207450316122346786883868585113435655788515368830803384502481224675195665167743067075510083655767469557907094311770774490144684387636491037273052294817871102839708843517237427836661955562729546462573452318857129325223655624510650845627503854576623200785131594659972549632459162881531094602256958477834990353098022522216868521376832230723547377860555111253705307740393861934442801039820094286529819501671618516418084215630114277604455638857679898856829656140649633494048911417955694000094803261747792479343612912134926150381345213029494877375756943777131315829581422739825790021651742698852254041782697349316176433889440936935460461510802876746574024739452842403356219056647157255606546443704878367129790092241856505376988900806627597295176685204010601203532941740768530442163902104137599460436882067919601952412551004338946445283332264872110908245294141181069755009741925836758473290350691654886199023114671940189944310177422495675535624899255428663147165181085671704176648308550057718013436968759017665678351308174361233414333502746422455860251665822563204358997112365680099890921466383515857514761748920645481331879407998804025121904220764581223473139260119613941477186764804680327587163933632228881465411645724701790507620974451126599872771561301282946601461501296903912081585440179004804275274482125012668525156656803187427983886461146894357500830309789320677450970522926652681832825424649508080632523081772454955185091853763467874792539071531151868781163792971911840542293159142556613420236170236339560125501501486493297774115027295655260056284049828347602625718478898395043715189397406005187723080739776854953323890401030714295911424375716191268690940218962024677631807627133992335095842900997959062593843248599730688092543674325661918842126148674837306992637510775322365461284830266214208543295302473414827599966139479975064665333373976974158283331102172218185619008663550944451633694629528580118846840374227359976704754471484615868373141797408172630251927347380910768551971823001301713561387172790800423330185606781723927059812112860565798467077844031765785953933428234919495172003189555324789970028617683016683064515186384024493836485176412528719119630968775879475514449144762303496237032827773239615893764421613755573596660886610583853622137260971351047489981708677868354991747409158607606384489405593969864408127163386376775782741680851462812167612792143350260673419530874532521560542577264809483108110672830611674294583169114282593302997368751117277809450472541024032814778445192943362122645966997196561205663644112031243527129491089289825686975209764155419641839602929258994204174155420934591169276212458251888954564023611664385016337440945264196030363847912697071576101150590156018812263650375497802300832030121943270850835699353498428931838894210475789908702703893512524530885495627673852917984324647720734611871408552612162341189772558302531410696284777285348536488471271264546215245698389367064997021839676513969167146645598571554019166474853256079113686632474158861219386034026166266868694097937013401681732910116107375438753495123559102580368283070872826374531844016953087145176619579580055288731137248198169831982754133950892078252047306538657193894814738762230938139273355727850372659734384533305589581085387793602174674282886097515624452262383317345380840249887361427882557745681288051744139540993306211652420232653267705536726030354193562522327182711225966099055523422659506317501685870170510440132637252789274794134956847613315304413703869501203492333415877903371776205140440144450810858653504668986199449627946731514259447396083426858331139037646832016148952278245448489773996806947689395022146505748424107260477080162325252386839914851871755464933731013356312810725148654013578007721537476538190082162778560514550173465246191841897595607636814778443186994817754334392307026523946101000792398402313546670949066336243746205917349370540728860645049804777173026934155162673587438446140513841894407233706657036018968823167891623931100611870438365785767283568993800999144817846771306025893125673853131151412146671718035058015580249390734151120923571822188124761231289884151780772071969797976071182271981316030344682638036300993610867266889371994570104406346426000861289904940091211313981681433347807841824725742183557178777735849688667010257871589991926776673864477479518641989349467461824252082506204198729322917290533357873843239051828135695913221185357179845084616308129173212651628531366614014440600481837974333083481766812017186114365388732877786454882307237205128905437194194996875609305711818394361126381090581559396310030202467833755452284189901218079752477317327115941339062873944839681860683772108986361727994861831054771802999027705220964604340088870629121647216127939711228730896494118910006821488803189537307522383083551109225733281749109902280314982344827699043367836327451915536818440372056364656042254849695484048610421361984490452178677490879011033819106278437377979037928375348706883256947625358952994644225590012252066960111883917682791399329743588100618711456422916436731828663805910846018595634791066670204401157764404181942639418136516288816305417150266251725723571383763773515742320013408144766585830937079688765451762543533195495365024190259006763537517284243261141111947544779285853414749252989621475163924227890954421691598755398090925575092827050567566806198022789095541939861003443112872983883535931719689729793085981410113889827465163606117972173691935075646860268432142199751876853424507910038026529613672719398468485659903701592197638758761738630570754214909341336990518785641425214758334874925978787709809986888198069643706028040791851160525200305228371128197280667107467045188985125661016406159311811334917318235772604062716947287425109919029952316865177018982139700238941041893015482728557480257807229844902009826510907030774334808660194980450957371373817818316365750098001992160757286032932943826918037183124908281184111882059248585945584832423219103060225476042928699875861333922955192890733313338687146873406138865141139997700622535138206652090509310475528712098281904319480375569087303288565488481517041477806226063692071675705393321379720195031714415853505091699616234710482072618399500644689436515014000752217258718776013714843803066796805100497290520087705182582973698588749503811184626472328241878357843761453759411595000786825608727005659424982369307949040850522801995055373666679470450508590242783518879414507469055218569130025783801413918377758665003949892075599195941347644673022674313013454116336918848184780652898428536193915718689663086797235638108645202376432320246303669628761285038507854929027700489438659674940702325508121913453213941473951929859097537187591596193795701096648482970681927858924058743364608963990362358366772568572360850809248834606967041737066578949141684636304652281505493506677605655797379336374316070198477663878583353873633436396009913497695495005360771340940672756746370972667107180365154492793047935135372228123962358901091737961924859205994619586485104067428580800501377977581882389373403831923977558170902598908868131906142919104763030110777240823945585991308304019943982952171178245212203088277744096958382625505420335086372232624135004874436545547340966033202958496820103312487035210891007986116921008893347388374875164772056430111898218715391822487055611028495142626474050719569683089871912305345199878721218916853848874165412979148695475248364411187612947497129610596954102874005136320243940220656600642563588135380568730213945214358563864860037913933223778602784595464143923859302550159926705820565931220707127702683089275114438708193322211752978445500288315120309765944829546938727767071788616063497240230791367390963163809901103840411066202495677176672551835319030089922625802365050952931576802044199041014806878360692821954651615653856811238567842576391221476873422399907121192883016732142382635186573402064278342050343256013318441476947719572165766623908491822964189122098709313257924183864891876541003348876173352912487138446212641178111036532972578784447201633077478165326914642819721577973712669670793609435025790468883559535037611542311370205496549242210078726772815805205393200829071625236780607088890919172175349305017193778296614919128584995370526414956875749491014233052671986991520634193232709936345388615428719672165912765696091586918227666491672011703184613933963448545795510325738924173981862861039725788826405801364795116196796046878235924060018909745590694764410303011842753556134046847431810548405295365461700837609221253060103368771373313124540027369686366169032204714131065202709895045498271667641958475932038261593733231705605477568090939907436186816398272139550309393254583904522908633170137639759811799560889400867798410809022888894851079676211680167329658360475248278503523715633238645290147650154569606679333871718041172475930542947878067126514977046339625697028631799841884347307257653067540602795603135172358117437647144034541321253055735619819041260057549274604517837284288410379886572391259958087290835971678916567327327252489429477124307412495121162254609143707312410405187310537717404289833508007109658498552014406706499918106563248814682211727039882249070059589262343275890521106684084208248191616589075788575606080297665692095026609900501878605570041501978120305704507017999303429969507812417358920389752314798685691275844042637274667527659927171964399722008255755111903601242126198515217408518617989581546028800677779285094472904121259918135672638530567954674825854458079073491146169207613568423147310178190634708616143562582122822057220328405616136977832782938255357273946267222396824465735903889632512639279230892384646206543912285112419476987368929487997693077370290673226420754091980525871175121249849608079451054483146580175089898102121077706596333433527387224450181711435749133063864163105494689338113939117865109169055353455455778492018309631140770405875975440590848029924820517824235674887147290294216012194717963748138265227643669808729243069260301006640821854724409593199016489782404320547176469754941928394073674379685314162094131742725368557940957462514058965241972157942945198418496581905129960273430373802437517761954534968300120999119244094514121085430822182410249972163472789323063931966816024132111705742732230028575766880101685245255031442256166282303009853187361505414362328445793697259821477963403390362222974982739892618218961449586092643318830523741266916988957776909601276663088280528406882655261865179846454477453008072986963267052225347517918328552665617439130890624929876967488104529748316167541577038884375313785226356630002830366940593380203377550615190529943890687023799048799697118285098916006504889284141715922692548609594044032315133739503929000144896151211856214594778329589174213204355507476294689684306418672864388170495089660726570158559455587593646992824421667961600966529204037017937322600440476798642593075826968324974328158297492745675827405142945829862840839326533656467835952075398067875475140942195114751993542650610444464798583655687500467830296836709083180732212870995102014383526287135712696523513097926024142799816622100425965365049120673015181948530211014399416608831635144417269507794344295660884523307549539481279086085813398622148858059156617117587717567746711239056555269484624326761459289359517594068864305139866730266578827295461480189797909068760729057286895658227063140023179821493272886394288631393492001656328778179579718998295772308292609645722765911502374634313397894502115914629510921404556701624004578838107447337215233459404962291544191552021029180423480648195978949985728431010416477355693223300857549039726925190966242980584231902502831574667904282536632636781231150737344169487763943750363330930463217659773882190101767571262596404586757431303459135983539236465786098258807445533393801791638134024155759735708719150716283778546190471365596198041206381611078119285191505255806651665840566988516834237301316306524932022325146613768486573811440428811932775902605896256804196586780671050629622964380373335672085086971891600033052385952583430077317766277079549301247507053982586072345595923674567885202373745478703146288589479279547239355376260065713970656659819093670082523022154493612975908302056658205871581652625069115566997457464400898934997928952066362044765294811953724492101865606848092620016129699570651447997489896324301159873843867519760735011942331199736942524743502672448666443609270904185945826636943159143900715083238326640549432884755386332381153785314852626058601890219240469822549785122563348603992520672176784230585319345403006613515375135923184312373640546000893608096297821102953553014867604028093640005387400104632369931577677598562708064894182594214015953071114241468068460891721729516325555676571538087690010003284685196176883155560393247872900514498183415729338695623775372701779479383254393758273936854641763023885399115279686861270535028196431799168878532553037941488010842689257908232208572332831041004103896072724105803461869918759797901941753637607086648869972600243575979420139107085280645800813209435820665965480997760694547761663027910075669784024917412837968333214477416822203223522858361545700188252623930419182884925698506589754721129790626047168472958979600530542135266735327720896802491059968649357772242206745274981786483396986554177343233129098250613120403453700043256848667857187858737957416573399628262892202848038919006386985495982607047378919247768221460241735901181408113205693124623677109400385164051187154098714918322648226385726743263695452627791792533184204252055641128138784675921995962366514133416832029225489125278683764882292575123090039931743487875101483775471479382558703600399236325740629934661550756166084538537667050633628061170259532979450519611352728452031930801233096126954482627966106457838378052611593801015976627232773723270913079286386199920095282740135369610161512164220826122409964815740426121463189743171377564016131787373104772265761519449558119719014581072690331218541037531627946928688465117171759604707160404472530985631061287838348019124676522075303463478145764525864266908825440098176415874577121435776244660243878480227524721922031250905452113737378887624783287611832087176966333959336745611572128282808429960378710244286124970897056489937448064516477991357173899342121900306206153563637801168554158322345030819513366199684323435767478246170743583979654987877329609023827671832461276832090682053759161452626994100186031002406887184819854204145791693044107335356070232857143617908255806992497633426326457154592212621813520207784568763200570249879913548609355628399641634970028651892728382609860809337895121497412941288790590853001301252994292717225655892659803819904387358821855086330149342373289950104579679572561124719337207650849970266668356796953863575965616111795646922938062256642133865101557424797127900703407233401094791832045411397484163738139733467496822676552008463367760970746656931912934962523484584881566640006482109211824801025882462191570188464285692308075566866573352002921584229849921110337197563656151902505554721166250072173347426170216628364117800176890376760175344802766491081742754406578493233684895662639400400259376486404635638490533282965055071150123318466585134892783393786771937569113563422506198605863145252433522717602930673964497042822846676357165611777830004197770174603928734707799832925121715739792021933665862475965864940324329816546396844169947801686361795312822859476245457335720710414186815751171731625375916377854065756493088593757906593536732388646395070701758734589664932677230607385860906801824076654398352285834540723421731091458482746261590354668205693966960181824459703494109632063981555571446089784684559810834332755857162540324552131050303799485317023848692476849849525776652140536747705239827380405065215696046074895950207255930254694019569680604994550045958316951032299509610315806837124971224685458787861906162560270032202844917284671033775468810645014236913516098631673239410904897767248013033412988553141041593864081313556754174182229861340158521053526875414582614692492531118251912568594345974800841498368935902100000313429409295699763378544298914514445436658471185811220665208055500168719974889417881198700588342753639547296027001226007510057323275736808092926768335162655137153390121168248609618082621273202189682038310780877844547865806556694300636568885936656405559996747242432505653621757655776229637178771662784101678023738535802985223377428360589509399066661451432810697039863390073327500598637417104849782759025624140846149806390003499227125029668819784750644472501652046937963839839982080647817151785223960188625995592726580189915811765553487299382927493090533710304619439707562042358429435674593014947664589878720171998625746056383047517593875187949612105770511719214428843131736660731531742338344672397156880701438787916255075101539819990710201365412791050717397256104543358777578834814493436558399595755581774390237250703536610449273814026023852350189009801530469614900612241057974277934795583673967430508135780853076311824464112260010855537096492903893566402326523870366735471837288864705359610175069345454982866295624971757694869315792393560181025416006340870008598111718601354337438193007545791678804464600367693938961165655266402847853139274839541999058907600670914819802636983465741622493996666234456975137563692850034468066887693782358221723734861468874714105472299073562191665839519282708379147689895012086030998682708440552510867196976518230143326956534552737481397589743673752710848537558345717941932559947373558849091397670177087230813021762540055286461392406722431965879364983072732827395821695883444066219521823503412271828038396943076639621111014651055062444956706853523688561065116238090163239452026532733412239357984029545415648997549466353208627270223497721371711351222806780260702569708303325803223999406265227283688789481671592401049509782227297893388145352733729933625044739750119301839703225705900777223485989347710277381345021045051137436959620164035522171592388122017923445619161851713021837953718384231608130304858445491390881152634117256369848841118438310000970074425888906818093809644745039953306082179546136603362004026159861623219024810005195627699344952974501185776977578833060651699788233055128318526568146422976692626856706448583510665919860539586343774280547554515273771533236683493915521601833958412478098949901089432469339898952690369165288024166521227675251965657389614130374531185446501490288047940180635592624896458877700083025355166124551857976264277865142495998045488282443684180423161878221485268943143890563597023540064481349423339011482800572382738804761692820842973756772369202679266666899442278033148838599044826356459202847536434394463222149216775489624263300923302469901236242294010442235851331661275229470013687316895168721548041194984137161093559740124704555437735060035144264539590889155365106610052393834381070095935928136549176229943480563262792314409491461388780924500048057679603859197310041544933650459752868204573456466583348788474664811689455087095463388315927125266919430173489442613177071839935878746388664473528365886696689656874874998067422093343610011921427861780167494220567277039346174425984312545194810745441057300103058195102311711719662109625802115257079771341584705613937244888993679135455712379991854675458678695145087002455207674061845009264708973275158941465229089954134085200302688902698188625127171482440926452850275895757831976603061600254790417777930486642911434243111481259246236879420749645037771074418989299494246029673388275675428902424300721618814187690744635129684633201168287766353747245611027998798721717767240040365826760223091846523852970851239026128971306035781491138921588168617093724349772260247089330595110379775248905466209074862039520830615193031133969873394818950865609683381435665505922327794266777491815500349242404610968926838317403730692283432147715428018698802474992814849554523250176591298735666714306109630960837096703916744239791012922238619481323299648284380203599806060250516098915969598935724625384532295300691141418336264060266679696805173644810601592962690884700629076024782304899608073204314971375271905711714970013446870657199982890997859900275558154710712476912528627445343452412776785368125739296300877965142972160986829446502030776030830670689958269126971728319857718600057859049243286572749271655919537136859335519647812035018243809996677008514233727259889284347367201430296813343824706697738323936374497144073106902712668366498901953238442249286673799781243315899872128488966230528796714862162334547572609804487350036337083854742599195720469108494119486790105808117320140276909112376739308959582775185844856363901949038372322451641024165010477823486684905495837672094472055306296733585892131399279673988013033800210857612553707272534463283219090744413412643416259349428432840418787912905596118764602691104834402583810217541541492011025603541959423610474410845619182935916472524431855887012088338049549333066582728364279469519424430294586466858696919932650532925635425320150568256772188254865688360045677383884595874107468796574272413630724379891582937256603589899451941854156116645950496300811513961928495331232273946470681880785483841583235253579877835878179494967420069721842651172349349132486672469613888424821341283527505356100387409111207123095666530014837298054660548931566478269294065661458499291099832765546260065875174529016236568870929629827550358821643360127311811998010042565294089543850783603647401901942749636308985582345436110151967536168256180908010653611232237756937080020865069206203955942241226479346856780012593148872128178996838332054027021797075662237198083255932066873355308623468624261454786295982623741561723623859992593380470536172984244066980255373858728470068967426974901149798851780810747501360351556623597817216893472572446974995223640882346109608282904482657118780298254789707598680815702498957030284633765378544485945475618653687125461051058049712940270592259692443327617534646164145916727660681130470953245789431192219582931570262567323755583616306153186973046864060304865067311765662548891510589199839026964980790974606159229241962061225208982418851087747232539973363476898974600403421962243426394740001196423871426932923134431558893120607746853590752648116538848338987992812834366880053610449040825740938194389676980093671637957331612044383868310709737698340414077274704462262082026068925115735517441018507070441985606513703864542709390784730846424525860748776331003177013826963548250660856354721044287373835865413360617682788352932741074067183569880306749872092250519509702378722186639133681071387064189433948684777176117292986261428519625951239235666443703615645849917399101800900051440165720374701410416218534530092403762456385791856028782434947427023314666420812861501449616834166544632818963482613029246526329074929545445957079507428654177079545517373270163812599882614040489465408951631527175241336099904053180694746731349722089168169725677725055277597713220924148006169104261273728592131438988894251690674752806990733405701957289362275670529750610451317791815014746245063066195590937937961893532337453169275553963832380615102371594551754332626173255843136308951513300411907518190936392842979602027092474182263047135321185992028545875326559822376127488324053857289143235121661019666835254045455552131798884824755975161218928045594452976225001301953204617356862708395830381873639575167199694167170108184476080934058341066868066159520980914966198047891451398366251720964005826204062135683201087186633317345083168239381039681383291888820712236585057859663450045251291131096526397484701289367286938585713323626727904330911546624528589488598466184692265465508559479638861455171724571517500599178827896778680183729798236499202713326880606984335695490819372218873327611737059640391426517572944825112022945003764821994107603240489521856329639378920825656008199065307875994503213786618866787284736940125760100516311796590853257988541415316452717629817220052527725959766160679394714402965568046872996310172273957997967906606543317947596588109114006443582111384502546610491871456012082171058901878080993887306172428606164368478558914004715056977245246165411837452679861219990967697759509888736006992246718914677859883640356117319456574103470770143010339728349783376612185515595680985383493014797907357036399199568851622712466759852945739589908251784773368811380215457969968138798478900867152337100574144165342203738880861221677887538309357959121056863124557978088701370914114079035064362065032558573304153865432967090132573135425786408759550357951708086842469506671184453239371564978710199146026958233433537083240004361354120900782110807360011550719122174195260093501182971418745002038041374542077122507899898095620920209428661947510813203110475969229926461186918858689467677402452593082415335818759996170013542034305439011019701401865281187971695230593049010005472334281328092963067989023126023169206700757520967482146115426164470214932170706858490626194759142678500239217299678821780093157241270056658031465882110329954005280209146943842232689224144210528949110567788679786066589507822316702746876657756951166481410578477131954758096297399095452628190314237772131618800275441476178757968741144035977470448773901181988036535750496486006010043827357369026320047521580507166218551256899705772150758976992632702902767602589973017245887837498624718824381306133787705813839421697831737911914021652797645633306743793884889523398712268657526984737950515962049348955206724749530440318203984667276673292124319776106492751101427788236780743734156535111627771162036123742287253277887283462882567406415168547645255246650862794734779083298770007160689757578375230323374509867111361770476232471210303173296808044638122582829741751113244678796093306571821124285972371283556432833727093353037462899117583284621681377027000563761456649907544364490000823100670318685393462591671745781866201678818237776894340010795891972978476336155696092940713786120878366219784484907669415187892600120946985743400294869372974804116530078674056882858403886322297208720705967596157630681258093238974186094095361702393739441038650526674366435082170499537315774078804770064140909758350750532621455442815765199602065585521659437422774767819208052023435419288478194087536328844405175887945825065477756828333297707603249538710957243159017721986867103905980661703340655933778522714445275048069324598491049661539434318809636258564058100760238138262483542036949301929288823328721548073193671071995512412306578558270079708819145638974276442568980747576986137323932849679308433915781120048115446568359428729717784778740290580414368262875107725832204605494884899783910739491864703404849906682617966923251086114461708811702661657542556787898956688674374209549349286759830552809266603920433322375692024518266652785566503852660435255534204848184525997360674221378660924135297295592690137708626158119918622296695617269704386703406657962789417690244055162585240513285348715576821257494362580467014867541165059839618574583446803733259070404901347085183780473302294026956186767477990380302213444337840880692219889359344117349837521703282565613862296944849421459563954633218420170961389656314083999145100871656433245130454063563649385480245741278487954235903651206731572367565725570482724438984524176372431572863028980746684736607411454839620125495945977194004782596164076198609466888034345893984014894016316495297863443047682481062546603409331046295413818084231805811688001445479116631663784501807542559666946620061704589109558548744833847466111730459540926691857769621174159081246219229363544229453845876724140354445392210129005386190525619477139618947412381437803478211607355233424247288765119205652795781627754451480617548950907312231789566259834001110798741340730549487032116262922408147571750818219284566761188449220340036028766283116684158167073617190437966532164325345019028420931849967909263309409572341178510508079771656539677152728356725061081999408957709550245638604061873907381357880106526629936786041080695145530436224660124253459000030435412863722809194590264012969729216861148219980584921111505505471818000627403079672071099975050374079777056959254407727210816418501454199842393096197928258818569818541954954627376610823494930038204986891060733223076295323155799437355503770507458857060311651567277001560564449733225523705765620821161729868660635027119645496320957421945893944383480851913551664046820660946715122073234176042406132705174068682245590328467577789764020230417579878382338039675747615618760122040283009278436067397335703918373265628084896254482165924820888069899042462697383909812365946636952993789722840490043877638268468798531889381860112072865605273677190456800375435796566680831754317667048709974221614605459877795224199880168821998637819201462608837216800412942154887119857243425885925573885209471547732219060733263353189708195942489711784397507979963061516324408738069962084492569646935193365464737039728153466480573199249135358208571833769981968544193867115877497208508512630938133835481651671944076812879503837949239298592414437905730554147865125258936775825470844253434705618683722615393206488462386086824203334717445894124289839002042329366978921049606777695953766312588608340343154371997423957147722052990978331001443393828363207077243781491329469519936251979301065998715719873661610996556394844737709479496565433945038475885293436219283789488867053753772736473178695461087315232706150853980838617411887185122811383719687236604952153837166434230172338484958819597215212251716188801903330799495745857874125620888019275552900172207952840779828018477902703868244555705784913134761697756961838431551885551992481707802489513909282009897693462748199063756124906388664540673415651791323612547783560078293769595339566724589620646216338677586750718708689990124671591955672083335675954102172115354607159233546783893614067106670016805237516842363289346848603800895257217306728140531991492529005363129613396308934499959831001313275619702103925204774899191963083755641968455860349787360608262299495866705187637707797045962857036038447208070183336980420333184035554563053270824392981887466413588959178649257697973104302412788292589747038181431563384886591692738695833598207708259147182325252620586150341476931163147730064511778446110589179875885120141466915047728491701269696719120421478457608043466212696198782032195650724049814864804389599422945679778125770234541697271194585809697505849525106486296399149229515324352735888200898203549005551280187055974144457196560864804841200126680418221563076845536362705318916796164150542644280782203748124697144331203439911342480665884789107524305193968870689460013382481048433014576930149634998117110374683457524250728975098347742024881363663299451656401351860612441325436125301704071606844752328179218993031282847912229622317361523015815063000935989748218950579811104793173006489587475682707207709686540874970330067008922780777086784520808302608029249678850805505349448330485999794030523277341116613721583507184817189317187689128212400780976829407447290138422789916687370686257564518175287676777332452412066559028582713673152427674476932073223806442966967451124582390398552307231310294826599334119140968975335708129383077184553947946625377442937383303923409412072884171920744707173341342693563036475070271230259016266859959703261150965533723349573395422436222133174827353826908439110999945063634654065636085611506627009604005587196312652585668709159809903903678760365696175129252771332446870600184414231252257668443533873453990942804614338742656551213237503112063299723718441456033890812451948344146221470569895182351589017144757661198025215246881370580946401294682693718637945598987315076013320051045570945048153749234736493340410822712953895753178211998812244596779237385349453780637925121520496339758172836456839774624666404684442069701769663052359838169600475841669054488182637605172955144559542654236655114693410975831608325202019352046771032981667887625332206929848307420039307384715804449942028854424534904404687104810976747961594863086829339861598824238582027293778988156623076191300844421304981396189237314712716133944720386894831939912666197582199717706949590617622402270691526504162050778277908694770003452533660831638239208241085740589268146607398906118336196605458959937240325968242897573515223482876090558765654032937163944070953028125660238710103291855684087036388744950209949075958551285941003429762055722908907057700982368822787747292754973087180357866933330536900607064470029934291402568039375004935497754804753233975929165841493864319919613995182787428646316143287914651910213863096706701227895693310031256661910870100827998319447407785791076374688605998306356899853974661108465135931615801745025133062706521531993735716604565184281555970813480443695211600836798353224479946940987664934914168262023540556106509952321852676452208213385060835177535365570045767201956527751384802167209060057048828537326952898546275001972475138658542196116911128257641840981663342749412698225154988332312130810962806433391927071441014962218507658094468496740380096377445073942809729407912009523145256057505063238341736360311727724686750105676704084108392325589065360476772144632636497512402627108901022601272427454926881204212824362090998521905819951432124089590639534279800980253401158431940783848941052982413951175286006145677164311868997169458245688813642961332247203973583595379088450239045303710082680148255653338508897624540607286845877168675530548854728539474011677788247414655485223816579902108431317903687993114874332556304143895037670484431138016429884857003645595792337616433490866019570541105548660828452349054693133757304806031044172430540388557223740107219047064331800847708712514157199266832133193525534169576439340688090888534259063571945405258735322818795675574498041362505160435968323624746859963338964537538362611421245735304214744514185115160982739184117755716131195760015926644950371770479633816154642161943629042606710903627358131421492645991157665384317198240509436708924274012957544834572199673224209570687523914525658376149827605403184525871315454075327305598387438861485547979071261662121444601553416914576666907695091561661594375738513649041784464218025321160985841283796759925851983217502318047441409608759239791969256556753246861186378780189630645268288419159582479534186866390740057906309604949888229599978236338927622935512441000272072088417902256482575513742879778215658034358559432551018298425944057412802115075023255181970456590181231114064404400392489553341573883558911513082858787982769084504923836405159328182418846997456415551356066093102903076373069352806101142326917951342350011516036054784086202914045311400545220232365769520810441465685995207445386124936740361883119743701768623568192366169801898487932355595415028246576822947694674853028017001437728851376077923496592940050357538920947312727799057527353088319895346620045682940890009889046789497128983321977836480243433647513114091758996353302675410930726584008223162561524612138177436366643605575702257547472581018860374221810641005024641832823093886656227957086754943694288443426447309400526602679380800389664122052351971240208076766330459895275671741006586966496464630733973823716833359849027607105176428512727034763559102414155363493402928473307761415420759396615569607091965934314937895465107531068619558480030945265112990861409952189618758020982269790349040204905684592060838192302311412659571068972909887955936570168137469107487290227894064953916070272719027609714196758489126844822964674811945896315154957936085772189837522399403670877564674396513127924075546884381580080986442229360592867090817442141486229622052873345283484443473523970552702607035473096425130208669487262849588755451636193207764404602617093023930606147621439837436169443488614812387481465438395178748543894455966931391352042939697572425021752219010968541577566821078508326522906641357966448738660938839262503649216103082477048347820622642947778113074085624803604364377900501808380917986531013829733898596447200107634327536590942899920216740398626924748747014763940386991305246276235954262251444045241052735897456138268780307020232116554089187226061878018966967263134562444289981171764326100193442806698953185095549583768142075492802700257746373699317037225476469153351316892736237173309192025846522756007050291664239885349824172346904059332871808826262524495280922902313853981379261784504926151434673281340688051637324895340554757022107488480672824130389453887879879172481476831707038232457589862765680027958915436197734067621800073588706296764874998734609325359452709914991455860049635713290174515792668150931272208033366830746233271301307378588936738875751269590124121552064751513478710624261181656223029762385298504966628773300348436884635516112107188164874090384777174954168380503137135018079322011381735389183059650437287176413553851797313887856589733272763913762000512458368176643320087564447298699897356508013079445520388906059299248105334681104294302872901823125114839541282185796207163680418515997106240672152204474996959434068458235318819374827158466135138104319433850726542898958495437927821542383676574197233703439482505479713138607789686952159936766423448585419026236037636103876160743841890212547665881281842005147143627128065559374923274593964403322459214222179709168126129130452838037898510346972497980183660228788170840385036749778950251874411995291090843020306878842281981518131091234403007608056182560990390112625088430419239125851506243347073699014566185052786205383069201334241050474718879102205050309347707339388510075486029122369103146871710597622152332991514439051857821824825395586113869672599960848954595208396994938696047550655954487723725918356156661139958970767313097085914089189395905417746585929546692390969093858188289477282993277581396980850685679728051929606964388319035130421748220011874263513031458380582904675319770707445132375261961096980937847406151664463118995822187188714770056139752223216508736770029554475138401723359006681793294782351236690975337074901069311216414174427697459748463413426074462206685963312378722766266831593458943323489309995587091763596985426826916299952805803089683226292583672833504520209130572964626623300893343017679378014812432993992505969773719321566244785209601185452083791475165993715399557709152415825869910471449257327631372751368931428683032148778435297260898320337023925214239882496721760399538416030610800657224748784965357865202908690654802664067727910490068257206924549360706742026406898341144456281620110371090627224260937657836108500163624324697620188595158250470966730192296406146092004274180597856689456954253612567564253177214923044145061948188420159551384151771066740105271607616349421619930691963106883491766419931303872966291387614401813344365681399075830618208295672328441084178051361868914478942987217857768898308206293676465350944574859904240471970066149128580702529330576812224849980295600027462353310993502683567902299911804849876838304118925631973208827764762451866479505096864930054246910514423831368651429872582139608746094494700071804356818737867793909310398002710887613644283007868748893021311528702934261630223538314450534168628209521558248166612680320583026846463890324428212095247339304256703387906118092691166550840798982723187034019691565756237220527640533688688512240908115804094579805303325159073748080541469267129221691110215268018582303271358905715475124793507091741048314959243034148845714033694240144923892178297125820220680028087443870484358900042103069204793331733818313839110783816819367713376975227649449656070405515258235798522092887901776362167741854473568239273634215980170506680227374460994466134578242652847797446527361147842692480836744987575991251243345657286509243019091318994243389838433171762802450814849396849378627931716152835969707902012481565468490891740336878267654114811610011911957120922437280542572242561886981349644209996732454180692166597918291473255420357639719782966137145930832231279897464545862112641993970385613323026943915233996026738081736762270681480007565390240397229399373735665984294678657850447879417254060998701449745125103459069946506002784490501641524513421990816961550053014993356165957051786057550089826895115415025857406080540474135785235317237325575405291701997825640012606739054997923968731021316262626154948971286636094902766184625262835731462780805596644026653970505414073440297146865508774568860805571470094662674932739784345064321273933219329859459533380155534990739807079126467348840391944433049569161487867851924760339733289185470081560546128110081767480902944035307926472297608360409934919813864856291735277441421433385475701745639561009167436699702775669554362155113308691878526192431126654537867503637888763375048142941130692651266839948834423093457976546193543577139786073302789600493961443869661134499495606572996398526997548134075968791871589603403156598313525021385190863350332984932993823087059624298413233037629236607785478047517701595921666209891245510688854640779304361191340141097052919763190030970779007445765710312166549955112006752971273960433801419776005302075561815617604279418500826458564553955715627790207729223978847286798339820377717406146158096052907458223776959476316263122125992335209734145175259844681998925574318564134273632683513214268134092663443616335390280752853292228455982321457511699044256418803537534795641712441770610486620707773395083221768813718743603805978430048770319755588542656057904321625182782855569061548189447649628353663591151156911850261223697909828905199998770680526699495096339940527895262295535612048453667018819148150869193166537737665247531506084747120713767669463036397741407217680601655999461856686720886339960257431752299478634982599785631299141984861953727010280073832625735087974974870687213788955084221700826120929074765224291995949969130992877971116385026707112643814141169615978062951185806046789643422865194493122911685956790875404417308181656719479309367172123199285653216821726048250740572142884514054571671461508349445163943393650926074836802230955999603480348236655857789303936780471449202518669926349193230750499327171025467216916695816538229024193158786192295598450458725899721792996097866809651088107353501983066116328925263272344766040069361596401897746474582521578606025162028281921758106538395442178986441838469119189250463594325272284389795781176924901466808420893788069809025863988146371230050501619513766095216314674046376390220933886990977987074935943120531731995985102313865516960888361707372113538511059384019898074463502312202970541351687318392428728385266504057057411021057095859731841944084528871723274249048226510240123777703140326498617414630341803556232964193733831450005771482595852320084026127446755976125854268360168398941435336113651671513169238705569958969660001251964665484056215227187838895383554162695845813751461302788485501298517770248696750252692996112417396436851245454573032974017700056526993367858157492793673675158912623034430462784110416965332892160494980589856293124782989298470311446618143543156220839920152635750829955136515291156336830901195568665345848065406426626167967140884950973220163076616604482072539369323740046092430808634774892516054950563929783133260646674657716292424388448545459094871553573890088136107926883733307113453918046791879293565547638470399550151387904595902121379107693585312835658081720815711422765357647742512459402944350087889791647935125450571211699263736111424029549076723252147187743968671297146625994702973358323069043786339426964464971463196393225034246215516010122678549927787457693778721266629084514124156248483684115172802388050035340946717446612899867447463729560743173389176507729831397342286218908829930008616285640479638089302397575165035230509111676405051298953297267383284551371995534193240582535150033536366231852509248589489476432879927120046597440369900246717252969677050818994929009946656301500990079836596149315272153007240802493051138971331367523018007200359651598705237184308321242807395090003696031843327957217895091782472338560131664628821850310363206270935469959881670923864223888928255047658752338978113430853880795571878234605840423701102765123634362927965978695141949152275755721720629265488256656255769641853991866832063758906745645680586218740807225928109835558364074112921995225329642818411572102795987283118383565276915787527170905663067333233465897822468023396928003503075870431706728438056717486928992774464784740253434362549190478064915071586903335917722528458238976684801619428380737942712148891983862934943411811937383064779997610071280763175146155879200480777216214414552662409980938781454847123727169214247265257195697057267245820075812070243809022837988291862377704027529253204780514613395735759141447903709958106602317071005295844506230010512368391297647749338641626669952859566277536929860715814244608594543385661715143515498785678734620859806818073357209549703452877577077370124951952766934171770978741076126728532199273707808100548278154242475377716237677176439336648886550522179508817742897634468021338804167523518219813541542372973330402637220354654980184412582777087070770111515930433512068916993483509508086877533887237568799545319805441848836056572894300110413072105027410171352792710885274451030743782648937937891465874326042623376380909049817541989793462805841624779575056731313593789238429611944984620070363397964662068808042699901852890553664434849263191484675973924181103867536284300235111735296610897270089000020737683233199338407542977889646331504421665710210037454872305632284378459511656922080869473589186406136633227578150560779955875489422634768504336323627778213045984725352286072807892048448932579882883249106273435993397552785486943775062495393290676513706295453875714774405588848415083694780608087110558352253439038421644427552458930082953198730337280945097981610949492151550874992573937576266114201410860523661846808899657002635946652824755383308543217008454560612140603206531325022807877856710244841395466041491984366468338845090481947365272234367603660226489328449117599765641603981294697628980623180058567632039836530448215766577475621289662222220397292646572758787618753103672683477372764416275702445888096639854313719454823790193323251368835206876299837371038712141273975097492580143838405068302351967801888789192934133277737190068248794870056862583035121419398124245440563439607444696008454911424987544144389167659384234614768460970689531935898782745659868436088821507587781529357282942786130873985213013646553635166100624099439254355204954076119165539530624282410456151880035390991888559152569492622331028643865059850554478394212685207643567170904589455856790964446640505196313491654872714155023019926319839086143854655459802371469836007811362583990935730959517308647543361926125973853855183160828379023825326244406670156440217695975801438251491330884002272758730002188722396980303817364619960903598610929516532547463785882827170324990301656193216505876830123435872665771941741648450347777323218687156775012928757638574046435636265485647102370029660801379886335463054100827758001126922811994884008002484124398713111610671615234630231700631945999581794350596361435084787394121582802347925121138721815090787671398993013041377974561387955107643139767438062907236476547358028915469059430423014697030282057849045649745345683302938268487614339848811590916949576447717053459906490200314407055746958548171267336985354864916211744755210255007564616472755136993003799151217806399473174004300944182187531499435966099552267747652561880187657798984475369921473794249588005812447182594109798600703683559044290930365685211773838350768077179846836193933196713039615340590088997940170210769864148207500348591986920928812016110502822324127393474548039025445056299818710801977367804561479979672597965952440674514010857283052845836017245025745805370399976476392315373616006194350013128992868015646272007661534219382150973463176479555856979786681708518723746960788772493521179893083027046000510707466430837105885133250984766146760387129992522944708691831738020572486963113180258453223676246447498841098856016315777143072440825405423230265392539709127477705413036886839754746607495498215800090052149346093542165813429011926234924125565383304365016236188855813751135190849667725274774493190876468067538926479493093383650406997984236505397339829579174428772521978732220525483231698024706139479462117971307742533729140167841930478969188386217877440442830428751916991553503740592245575106774999404387135934181332021412984660950407162588268036078808412978637691385855816903077901280925244863790940414157303845179414692029629284189654851966976354080961584690995637002647414249176426481200240536644855849458847265974568591409913403821274566434683481291647918916253057843050194309206198879604297481622683558184313456037743667581621708748456038960172543405923012885123687719381269777229902173803090463237897945733962465286992247953575158180277324544363740653310162276128207043521807088172759723363629581841546498527999403490995409828031128198924879481821264308335133026576833795516725330659300909880612824286968458217284438230452729400451490610296745975834138134669817296315510541803329347450611451952346776005024294515562982940745317452399489131010335263442504902490889841838678470633973137710750316786151002128073675522609181640823372493631794525836937769958133718560827957020610542981983819945085116924195206583062269164720335782453705197093232139997198496336378772424513202760129884329925839110269689423970808212387098254544753845725240490660312148855177483897046414779050702732535518533163801790212527038738579632412277484087317982242254564686774348285060857884939569858100629898570545426906374423694980015673939594237543860595548195784455828856911740918400882099161339672043358868245993326370877006902705786007349080195854687493882121565605410371598721344970420441454495371219368134001327853499631312978137295805303574112372019540090114657736969222065272959566619878409617279870211079508307144469064664160983105896722692141298252950985108434190775613525829357728618623526645766271433349220618357759623805829195329789220907609772825357513630316259202858163183215390686782414938485138012021740370276231473584484007622224201300172793957026094074027732227596826361627073240343139189991901214453484081431809591912601926684021201352033042394442885159864534951583438531927911783506237239553894561879284631589712117265877109753716562266109647166122441470785832314874378229437758650200705327556217671677513109327364734142189576395068439305891437978561600067745973730413413944046915644680957409166665805710441581517283977424758941403105012309210885820818998779637775989340632699141298422833635863595962703145096596154719447810349192875926939944560190583279700781209459074672868602134505190879562818389896214123556896314243479741934969697467823965633933818156447532414208801914493538285247430186012879345815094749244927912167327748329126786521734106033009510085529716393172747874122005092326056277430960676227098059418584677526121888783685304283409221230255479476317758317612538212176168430487209359099835691239914377511351031580597742988921343610933144458741389400803255609704418623794265888538337218919278078705056008892431723856323645167951024326384439789944703739476029222101474418711995169890982856588189159876254444317684656128679269155720343156724318064585391927529606534404754282747656128316630328212377557665958442339217181042184526032323920486537449584980845044386295575270978395600966955833283244039370496971914567282808580435593171439794049769999731609296878156465135656539016713545583353759195634386596563583952084978800541243349400890387955782219171723649920860087456092141920451924532275512758061991697435342053422834609805706276130971168309159928117511615097769572780916406109111264985618394035930562321237714290543895631024135413615624889436858379699932248838223329024589952138132417185891425720077966787907166805582683859502739044982602071153556946909496422252326463071556446097155041164331676839750502903133488278864833708379083671710954849764108334422450970994468769739599502604462039398605994680697772767718707626366542974144819099151848666981077404908110119494001907353626308133934633799381764890697296896524210125143809603691631025434554548584541126134558601647268294611280393373478737533415107598104767055515053475716653277786406474745276071711816714734594016817800290382120465557393912965370602999222027969170631112737284433838221578447108584167411205940861878670076176428157722259020625610908157183098087688416987149355379732085943204025433647728219566794089549046519003747001020398170755668079746996936558809871505588020247871450692200477444821477146882203913177681653041135482015029556453056381539834922095832688100762843099947082339024116061796643730603981619909617374402912066081796391366813461145968868250357966493540925096625336239891456131661662634146687074066270639037752113395009036603735760647843764507801287066380968470481364132175993681011241586884792867757604471521155464641739932648465600464727831494094224561048196178047155587362656631200219055416078148682426834227399085161248188474993071285444986005524366617287323699235403714718215157889057428471045538810447088136495759481992354747798521614930403937109135363149679564988612571627929580723676538168702467623908292903173734121032788813833330003707331528474474734487689714384632658041490636008145870548909097943006760620793771722917143439092482714149213877891684157692259637986956750700450456649070690909304656740374906732895593382476243036910368493729973768246559859709447007640396982501901262776450478362045509196376962779684326199570813599785756137751854242677460720554284968375322694901107862490188500139926701375616349286143713724161691939577541444510084720612807984078095197353222628642717823902041292343368498401040046158970064540653932014268861545347910591321997931546635968095784865295278478101794769520368291850374914163030810719202519035397368807443623745126691911214418177048311045640152147854170623556916531761947990590317358463830223382528660029954022421104570244537789655209932695879596011676110949656525177365593976587535971128995512348621951997497589565839815421881675089887847204013470430688667886554780468326012808694550857865267201781746978099629955154995286326661842079831646654666825239790409146477964585293335857038514868575205862790656888577813836846056951515074669804180154965254923922711278938840789498008411635593149810417700760206547237646205472660822698246364351072371223628799830625278363930518002274697722481120686164527707110197818672424003076695083296878050693138790861496749047399066254454983931522830892784583416184293490260702983291666198007933222426469710716954148610707639226958358944348679430253118943337643512885566005016225638244678364506686800714044445854392357054039438656078647541156390438907997693062768255406146243042399419393427816045438459061267759629542457861155843927728995085204619891757695129786627248286418267121672465912629405144545276296265726349212179960160548394784767110929299981240389252703169763349403753551121883359431721525468972917185990870410218883163726747045231682933085339913277550741222669475907608931099907399280672101379617548203975537168828974249647689444610254987399579764627866447750360572894417461101769590230580346017409437661857584827572219795452512835359272501273557784462552082348357609152646289767800247460841296209613738269644129645216011888489926845399577426667929482138916695427546037365707686994366045480546394471052761347147578715245689913332778218577778197997224943874495456252194709493787764551854138231456789734557722917699051638035698612507813189880593787261902383854410814265320900047357819334155551752108937195581407171931270524403300625529724182112213363659508340627390436427840234215544175480667861717673441369888141797840998106827605308733378690244973036390254199835519103759231151167305432065138354505568302069301971892744029980001933283170941454545582794782066309718595498142830084804666448847668432265775888039997382023524932283204440017520608572903805650729160758961246263358058568461756909376720291871557826798455384492202691512748822416040228291149993078983595480844494767909843574086454231879668443323312601374376585975410084421388540956707210873092832289262162436435201621992116362502264427831913411143249916366419196646182286361611404497594920327472518734493850072945715551737550263799142651501089679510559345915228359195539251267894914256874387855528699846350958548770632484360920174828218228558203531619540940846473448781889505339094949370549299171818383334229515228295477688044453933025594335196037520471390556296158792939810710786173245904192114902413634936239859153636725083204185371120190495018910157542063473340318787183856589309003301255970541560466811511355176472143425838601150778875105308337281701107531410831876785224058558503227355823611576305306311603271699788892968233102656452146510490190360626179470242202543572518369056468609075752113412079292861689215843890396632760776005398129045741852768335431683040478569345198212186092809669708292145140084650327214405093123797235856500499972048499214643735104692212149987164705002509963511642463127083391475979227698679835193445467454655713491985891202657562907495552791795506719601295772958686251333736078361524317659841022150480126803182741094139853296318635097818229766232364025976112610202846902939101977608974812330398276858617441745417666828381470706980961799195747066648443620906818799077473152046474073745638209689840881332815875029061481198185216296712342241712660898833167706732347077499920939026522124942000827179867213849509906315891433797967173569807684896204621122451311807935617053543311453507846472584615410980370904379350968701930071317084918581300811588844401557521239930681101286399642295749074674447111299736601981081397272702116259212032189490138211038551091945081543280488850718667058992806544966585025156926782516153799570826981343993036259945905247426378854066905093952392988318202694316720362809864579160861985270768503419015133267746467770045763333035874774803206204574931624500650410715215972032436381131383419930239618160711887481889603146920622843069743441660227378106302118126327659233683986226217467585443423359199261762224795487663559306230349463460512115927193450186027128438354266175409825259319173433560140799959572619318651951406934384108383810033227482302755016301750989987079747632638657365780711942959447932366086884516212751183841436504768563682752123784372376299034743031197399552641334254472179853796110064813372818275831041208546432104875171444787414566157609073695490669969082160712669740970266972258155531822020034030812640068677324065985722698898759532538949041279261907953520952809024947420669663163329186582886833530616495611587852608060061057041851631798940869197888445263601452649128485728853137512126285687855741271124734810969329784774540736420052414128152204242258846770385859345112746437040502297014541490355423601391269382742130206307862821019361873543808312298847629354710956617983458637518584477868165718465030925396497336244429739837488721107884781445381898002142006337613753210666154484044281672097895169057257827356721380369106490507713492222616153289548838864002241910668713110201913802777138909502277212234618480966499981963467795888027705943211155893059930525861316981001309851125591300174945564076462613264139331341368869488890184639543997304312336167118723886279603104171392812836166126490857323896601376086950198462679616737091470190563001604186754997519351982121757454886742278143918231749223812973210091195389158952404220876253447412887253250196767484633938634070262777689903353083463569615557393353176174686736048638966641166566279017786180452864455506448065099984751032147708622253749255047147149072263132190657276421811594288332531137087613768145048382393752031660985580672928516158134935328722749477020305845109843156566656875116481266809751893322797781534534913092254822178818731917961344078730280049001956952068545875652589443180971254386032232688257107280896847155112451648901183226172689716423444025082473731211393430995045242522451530152672872165259111002907418613599569125803582255600198287864418819852748888291476590319988223436061495870136410936505449363502741692161120708325611251860586095040412122690102751557951240407466408497466798606339139951840359823431552399170391527366687793695978958178304175924660093016279763443192166923307427457424963911998383571839819546758192690448436789344175739501621909613980357676915786893766011888391261097669186100813909666403404824411320642138855414363789851508710963042346573008257664042548518337300890701946396628795819385402837113172655607172325318081792458755138583616782506732742635486624345124711724458631797738560156144425415094507638724269848703543639824102802032690162402751172170196197746357186124952113603040996463206020186823481012039983963218172877093047392121378785100548416745748995312493498864375098818451874817787103495127640471755425692255166647924669864050793661358767460651106345248607752654586488406580178640220182398466896231161595969245373588164742520558857387640470528967968269136634048617201665611549528819464842043737263909800146253921115667489709257037142690670148063337358398055392422159802298816050757263504199947368657027489479996959227029064250617656501657103932467958949382948262923707753488032190650769137443666243364759654215241795318493201738824144599171122985349018591754862658397745168565260715266829421993920351178583257035740257631918942624729649119352581351613087741251208451841309553791948265324617281711938223016462227926697976953920359050508566892838911180435277123791990110938458422358734503336097310494644860647962741412789212928168223209711564075008118280858722181604286730760098299404257081681277204432441408815725939594101489570119390182638395691615756491337556651262783525645672372771372017111249141755347095294020410555734596146240812311488613816356267108168344401673730371569136832890654062400166476698368387881410141804245387611058600222567900749203726041511959477548786227182547705070870222802033065555061380668131501830870165448501063826353435735031825102781746679630913460713710741772527976047937948978186672919154510141192114542356511638525416255209262108821417224097917600823214333056252603434544454317782482649960576292975194961324226826762033963000798839641925999329344162805602914923795778677748771721477981160932478314575426755494841986687014755408507709922758029835857109433509111496994667469451656083573791399903694434645026196676771529172950760749913513344945540090359543558018881656973107033330509896819932951320807933330437656462847917914102415806245376504067173718908528208544094473565551588622968946905315286315075031407372263235870109501830798715578957764523850625856598960671864144805793899993856991207062383989493938660369501791433181124787663554021352227070426100431165099780069877802666321257273425243814426661824543851824595703731778835759158407098490539299016629738005175574339491851819239257295696667403004028384770331010770115237115341576922374698096649642324680177240536867262617342982556397005373260710786613838970218441975801422792271464294939031992594569687698706173672905762631519368352201036108163662256025947809289313483423889530175836164233767129479183806089514047511412547241537312388344790883670560537132896895829680448008174339544567940485860871250813687719328546887829674063834320198132099934217186350655085612554420394792930978554092298886434165284509364019293353838647549920521163647286249779499045030225528987854354786734887447752319147628874358212041783275088799685079925089286781672804565070126956038829567807386422284905908240147835350640441255565216884844554699334225283306725219143601034222464286447045710717604290547613370172316963193972619958500673879829062899127085174214853276287661223823112140623526401563230216367579226577687459378805152828909701026843543065596349790563455634613906768280596537962393718837806723947436180921364306956565061322343981187825728390630972439798483094929504494375367453946569691918565964558452853418362144876212333220253861824295607594391493923524811852923255825426115180086898432945769746340256426118378613340730505663953287777310880218968609084392929709297591149016251272684477941402872234033496754224804936039530267824875063555065047855309642110862082977284892882113072501975685392915543337157596268950260253374770242093240448973582579871311003078079822425910026416374543555074318181170030176388385893445419317257684958437779135777680749710190297106427719866316430994531333941135794006600889434668213296674617373838013677212883140889053100589326813175743681670239599671441130066523108687967251688789153109416113774579906851552504063542548120962432847407650053810644184301823600418469741853632931763978840310249855412504942690870997368357839966507714024970216566373281849970278545436274389725869952960198756529998416730621714262068054566864234539111419290358586167951132377193081799384274845623969030451957004354256526229966170129416264431207089111648399340699759894545291382262304629845171196363504007935950110178501996566585334287748486236663724543919253311113736547843278295581055803485185738099234777371332959802740117818310993365498723117422469664587756564209110621575649669681820721865443167946018102164947011378243313238597033221653398298419590500856217662849578006141822392710034732135224942156511585420284741496618606373476771720678827223694331285684626257075372057424117444047230775575951130326714829863241215782828046469631555654496767987182722453076605953514313242076921832366982848623071389489302611827421307827395345495618261514163269659000786572319550151565498227221711680449160878360219902430290544197936134936049481978194714296817529576837913747022594052744372053864620897559137741893572502101109210085810633577656931889301584020699534462128464683871743034364679129807788527377265344940838389905310391000351601617119023475543661769816107308474592414442986235417168714715599881064000058085400979323962857388608935692638879022414520418168895644814780721378498646327480259922833345157515845772378665389693320108323391238595195798877752032884961346448492465827830647591666046127892929324411426803200856451086789420845333451026488233468658541355874041617564126603023783572492399049948139947197629470996720447779523102165401982422157664209750451799374138929477741588469054899059663830264530668957611786294541612136947032523929128685556747466119349160609108695097165395401094371916880256762024880786984247544099534355242699416431324692812761157151303557774000193077351538868221161754514820056222758314196151272230859241793985940729414156549841800959181599333598181805106533622236097728428849428737515752659150591459601836493808067693522955497907769245922164067291192538811812754581193326551828236190941763838756430854526647527508854556244385353662657238729886918985950395266396580455696917929955191037761944829298940856253653823915159113982669609917763675840357845368208758827926632821192995590246371847568082839781142286122030908907537938653209548748798144456456123898253860928801209694173015785573514844189983574768558431084733784964508581650915252043851478046227462554963414668380882116795709176766552222191374771614838942563781550113989458345734070548116215585298473061606311723694525633253171674010049434296221826517876617397909858604576660998226916563413929617458955746581577495672119824058516784845790619401079666922511695744442612193920347049458496034309137160362362811203489925340540334937210317267141312680374989507628842420156990132300218146641243915006097124868910050353972966415403502559252867998154050202446718598161284944861872146617665981908643329464478194157672906473614108412102099598330958215371278631862589837609587043485033175669788597183824086098602047552446405877344294125355115756095136743921560208679646373764913547815704707226570058313309402075869533006899387417929468134057504152235315687165220914813587248878027362034459557586329703857039912010390624056983931801810583683235282800886249366250929697213418761323811256037921219825049925649189030061915117333771647572981462151302110941719479857809486563743066008036565118486792616458076361594765448781271812287140084410003470860102643836068175820385246632069234491349196483051719732411109062991244166961016972948923930571660818031069193575552370366875327805518472623468349049044816360184508143415488712778333277418366109106853170401455142371699706627012897066809789849637741417268833721861835399447789067270747165624413757327058111682836880207501090580305682382165686972708947505014828333162136139581970217313183599341100264923299806943517293021572317681837988478696652861723807031779870760244715291547418409054472603844766541144153514612804981487443361084354774869921961291464787248732814491779879928722811376790842729658758890911037052514459001662555791452285198584384207315356067384127946494863682366044555194892783067186109564433118376514200794354789740228086295369110689343267243156373293785706170249315275166753928450573037889196321592211990464090151290462570412253818791712983346518396423238766841623493126150221700223777145198656532504073038551749078716435967578573460628273954568669180526911702165943258679424729481693805437005409578685508042663948167277586177668579359648619389514736820339903652345278574258624050019263483421973927695953047673714778631629922546200040486021099135484625208945921796749998713973888008260848744371844354557807037390598871710011212929440495867637776719651186785015774662254199377099986693307531467492828687165270237052845704018947093084520937706787135420578892360388657177707424961798309098791119224032808445634606495145482975037839648908130133529823479749906996136623037488382172903394468383744611638026494427345199118023724139950708761348217538279494042617294332269749063330199509388052758036090965054803739010278749606133056227371284958960002883169149641527093045519267060026513158365288441670761428253486771851297196081844833080216891875236140399981912886776732787839000483839331580549191690819822514754257995039492356905733420710214421955123080309597128327500740579956183347637633938513410306333122428190389996350006874425034295561832711661819278213836848901383190879483074368584151060726169631760444753913429309554363941182382502470352501848164654130593731295410944066356654212585343294558325958707644929252302170809003438978224869499385836039694388811747962398589966089993670467660615102076009989893067616296694234391184182365374381273136911321872509102370911768759975065861591349799030543488538658887202703426290443637158684837726369616090998724894558379254650426844811862476685689674844103017120446129049016236835658967667609292754014502747775965881775464657639787388067783882463663865782062434231511641036450472000572978675522033984267092529497801667701602826544096928518122627376693484054670183713813960799614635774392949839940179735119994649942106198321405355353683671508931902281997914574553017598299923639282948277803917576442721152668009602633754378266364239238640961333066096259798302838128040980535534948405331191880591869309292131449109591959361705298191520593380039370690653782500062527527983244866151355193080155002383146769924496545774765850240945242792165138176642439272878113369493480825100748312363477604123583394369722155760990678557879235559277511022652064723443417495368750096340353912165094627100741965922114282347248286133368775446474334747135039886038466598659882075988893639048044661180849616209239110079243450085133339932378331085076077399094887763725684275106867208692397702638418466721681898310896890522253645874410922555405072469697940631211949638903580802942920347977853311753468306278385268898532161078888032781741662580701670812292210334496128634912725094179170160351891726388980371615116580318939650918692297420250975014976870780086814259551299185252926501689462875363554714235376481900224511784573488938188669058772773732111208979843657702620477873230275859941584466272721615481003883156118784700698147478296685082234779780865420251282482843853224931586216304002825954907653550822254196100994316313777637559382157363232306543423462748639452297533017937342129603031830309037268917838222675755887050228209850439518180153669295273845080501693788567344979644860428852231883195827077662593387301497331951476438633625840135433246285990466240000997050284483472688980530011997402564547017895777178636864726604232827989404742734569884031536722255900599923128357366621285803380512237805228507694891884276816047864409585431661258021657949443009565554907562682592210285058878082968012798790462452342536702688141489892404076935554633510554047734724209972424279325087215704600117945527051799262258153347666159219724373005800473840262584246238572536881964800542317120607615443753043453662189530903536077043032962289676652096608887152382187377769272299627104820004991149784212722761880065401599472864281890408177462156498145879309921145501479477355301693413310898714779924895936031659106411948312437578646740085025825853634931119908043739618722963907653463923432073031780625007864971895162086674695445064070185936884816672684595466935368239744196046586257339253501561785208539086971636103305198806764413268675993342754606098425989857049788625246661566024264990835538690980318411121078926628896282283392107702818978722308338447273671354856861246507635016977205793904081566714588464465721454659578120984327671303272147303372351146623767735008694503020638725485078304958332789391676897060416010133069810720470831843403819851925969640435098718029890826462648804794034535566196464186715633702278140563661912720012421505972623340250463241543925722345400742097598822110267959706766162006375428809627164901185931261953548956141034193428671312198781728396859390642091327059842871355038878239608602350917244281026632579096543876999602750553329091038043582767209650186463931297959747135842601328308522591800045098280937075181066299016677502938636023874713191426794418233360983062404545962644109728529979364148545012198161610624030808357342116456704685312182787649184876239373457965130201049304509331366378839380506783448573986283662319319657370618710897620240389901775407234266749705423369843608047611014223736033025969865218057720562570286205528509180061601893717684723489644685757275010759202527259011225823033186128727349091739933125956642941604790325154100528950442524651762301613626517606017234020450976360362357250288704055461294439358597596280640676392352056288715370931860506381848016251462235076727322657985457518286586222514550484165761659554340623408158212313718225104734566268712312156091218716311586826020099024626530999397321628014019132726558350352128246547186419476823218590379732465822948587608783140917061713958677850472050074230314911940532233733390220132650274733955296651677054506518883411960877252873964117033143680933602330701204362658418687813888618220606943533304109539824374378538158569613636913492495261743165815714687588356389763684958145505411188486441451769916731949397535498863457546826773401357285509690907798523870141703214177852375346673040285881043114805701389577135212817151342926494611903242127597215310829351256055083306146706704482360317303966707927767398333682939025721219383837116476976330459069109248905853219414500795066424879534772557901355067794652268019704972831777724596554189156304950000616084654312307282824068391126984803033214448135326588918258157429740497027374509688576477458020283374054562256848095237043232289251307713435569828640787618545649130958008779452272283834742659864113183745285937260091796390473943886600837908126764285834829374413010814524170414994397571884982760450136028212075251159366470176452373877041742401537950063710296365603419257380530210591484833549804878290646993728443892192585379631834953789705826898053945602815766942298358087239559916514793759268667779870137294285969591130148539118865854304193467450339189983436504615453935950648185350832844610293439391954349302801142430523752636732648530268397692357582205155756483264035793196417662857314365241929216259788195744623958327113837811344615425027558454573197976455979371762353995910905483666181139677084124999744380859525359578383234820834772724575186137283870161141631307608845518313181320872265705176297364628714419626951981907103572145967942161704040282846982442371495343538258427056665243608571016065869291274447803765474489146984907782310086903919840916763416931792975695584034990317857541370685052322060646866327406181994568196423309592439553471147023782708943425792632874890545734367600338957484303195189802125046629015575739448131702955565324857627306230945227803413969164622977722250617745724906018514007030727205941663641827070224174184031068156110856860080707353103200325786971267801818128400388537162376655236658416162422410864220743859322790127283260184023729821032942796562345551532533202659217821705543813674574447153428586214837939877710853745688377030324093005595016630872023170172520714202065672933001910169817263013427694250536214682839721363226307596654351597962286506197086288351583261973531721506420200790591414614428800038459482222533045426525582326547940263185100085895068937386679382697534345468867069593503529355502188737701188859947608201602643644113000024025928064311542572898389883512866612723149782730806641825014834205216555085336287751576768455416639044284739693416998951354251951676696070210114320965011596803293833351371004542233917118819806638735261024331469197751097644665676467536357673568813414566978284392716022071922296187815500978637768508701079934226230383408843588425174885454641415834796616590907837495490232696716892834605989717154458349450090867405215859816930714224114911272519271982575457083016146327939976871714213193419415337621158006328236257589989808049675262294018120770040790854871766245104340283004350472413639439396874074241911459326971472625066915529457656432050232348820388507020413860152186778140526670665767338584142936619515882325580874971318886951043538628751409113314301922821215507103879487298167207893001670492870008727927580905709629558543146509725194796047007001707360272889681626497959527707205777623479598501952004027195106677540159337985085651486441070408542120262887131908086625480299703485061266314622293086372852667985779454990191590144398846113287510649473772676867241425275817022160305717442223226582566865193883960625863861495098973962295254053920239280328695172024329792910250658305303483157787528061526164519942931058869600454086756493264835183203124038483824453402775491650360674012097838256617406171281227657483960679373384964243998999612363372537475932895726150659223420608608146883093438644536390185396606114790633625698590374203171744167685696691898161621998339330937637829562011227490375378635037828322746219088377100284167400868762593443438553078570417921939713967050690044157344679119981580001718944969757958298141951924027098483748650838163930654800326801393478384607771018143620517481796245687634903976347397921043791701959143283609312516091015438632797730065468053851687775077487010723711160402627736993711063992640374192018945955115270807312688902144536284404213033844657839873818395816660063985098000546918213280135412147993044823517795270370122758335990737652832650847856506469565326309882785365066111804467584033542628938943382588029911899585718132950190792479541021763678370682796092404807572208902569285837845752844894298105154392040530492193392660850698296758851099427377992040720461815937941622957840492172868750458136025645092084029078672643970109151921060833727137867579945263698289739679749983878909276004961942228835138303692912784939260854234503688929617478307644678110684096582455457683448747009234093584722588592448509184383457501905745796147055933448821264992304091572440722836431588624528989403142884347933436189220571734680184793790998845003483463058415328215660589049519964181023600692132870215813232403736306156470659054795697334418142776692610805519955812223452666582683196111090838739480839393801708445081245852594096280042586956586387889957436733724376612317250192556316681828171732143143825122092929895955070505202366170021209838732983870455312315215184476261915405615834871082566298640763088536896951348369370871546726699555364488776462729027300341833380510050002666296241612892736028009952558798763248843337916234433740495069298591052704442142865742259694462700077202412612995332375511334456202014911716866258437526990101457977494515845545014005711393333079705713067402976446021904676552114191858675605515266899763411169278122796417314305448308104958971416938586329286412646122816130352201087074291366167967244379675238770403594975126148851508502340127429074851112672754243853361154375677763233923746245589711508467388310442665921810061600908485655884827322705618999906645929144511438496489147538624264396775865583464114946279233037970145185577147039201132876471786899362339833196697740835425289151191505031864011685097995595888189261783809217095034374134853965175862784477960194279738060925201370733100599872596511261401175093329633531164594495656923411147279896037717378427614236420700299953155392235436613319940434599600776433495454679649387375346072280277143208302356052466989755264300229285543332866718510619803936804930794032573429312494328536685370700229178023248433245198879923096785552684369233211500857655057299761519264799986457866849871048761710869465674264822615431051229691576036259505924138775064721151120966107438838852157990666970991523063312483210479073951070880374068071537482867142982931444096974717438791497536197430812774746856025654222819721221844311099906014421451544091207751417436543667644047889717587529889614203868051426215554918670052142462641025763169900392105656268446425596514392498067003174092979067843910451507214942150427265098803983240615318389608671899964271322729559901424331064896721820686085172146550131954055827326072500237088344405049405579376911994429609422646284030587469540379778270933871857155173994860634007712709541067381029254977980031536427839731560001749929172429571058075578381448190109645704296036692449507430729602823868980836129923504504896441556438933821465128536521750029163977189936390558594479697219099551894686840736401967369631848641121338884377307480767413231185748744532588847728535850043792667641063236854778582112231552182414913217210267513217949341000158177777490418248962398138650028732938696308569316001370871411718456091139057539907818536686260020129122359842630732723250556968719536392384440719128172612508678495150132209866765000806307810686961812947065406847961434057169315744641417203527199835717032809901788821225786780228771629772037606113539091576945031952312098790167050752690806389538449747605186122131503142555937600654228942640974639351381142458889821930382099564901050143528661780503826443577168784995458997832034996280520201506794864289882981436008161074307496255710844902445456451483604362393645143944905950865922622891993606076106359554659474234709728029872924135669561353679912165278601355824123123098095818316465545373849307838171238773962699628845101089973096059602761389227967117345904892820944934780689334203209294249754995800583210073128355495743387594255355190736216647644730300854533803584521939751574831177529488275139107622366406958322216286636081163752254836601759817633857566421451255320295116803290318013483022583847540734367727463829176577279996144242338567494209831745293141914504283168556407836648023982299171857745838029668721629313861623191287470248925836938181294120804437799822659549757232898219790791223605715623519275444118186531503960858243756438287647405062054862372199378813012031979296850625467179988968362183499496797024335514628307619512560147637053568358282514701614041385339308549345978807168958872051452065496947304953942393872330085271578906525576566187608063607521161965018345461420180438666202357561785921688558157656752007639626798242149140349776895456703274458846927949158206077095994521408394004470348843461962357375761962493313589826139110722718413973048015211110874226376347676114672449842002753167744445669949869928998092859555316396841452895543049690900992866113044638031781058865079023585281780878755533865994900721556105701050347234380589764872138594534653655601209309040592222567955180352689085306183076051310874567102248001098814841490014735256434997803564613482712960486530448916776686859950603608922899102805721405931544364626984538923248304617354640170959056171176647260715376017414936705595147201814943100735733358829711776512743619629284068971159240801809798897637981034835203203023657695500322045750428612394174824358467400544633730107230459423263110181508549504275886796078715539046713677411277355363184197173173037385333540921599520540681021975983927773541782669125933106070110642378064651537623602896314917364269756536097165504327709375390025514081500582658482287501423913157083975527460463384753341517355060527662906956556768205472029348340956494252781546830105976762478873540875714051019490520336524404938532086430587914995774542246100608665657950531444153569887526523739490416530474926294106463869959763286791411729092906985193005340075942958739678099519853817065958448244652671304419800610942197170833470606725772624516862792028306161663399317045617246448020099371737413547396627855605286773576410971691211872046736166794644670614655858707149406504863339840497671911880882331875665307510092559606013420245121241859723494609041067612158087570733164313544221561917726107922516677211858588502496659415256257936591524518699860376586630199604290952638643276524050971824885994867395968744551837406363129376990274297168903438324107156999444947452020960136896695866852732064768545860489123887639444588349584750155342475928451795296659997032800070808177839107253237581085113267190579940139965796465562396040033285409022997635948710707762643818397084977998407164303580292180103307710226606822403872237566109724659859150571147459184811656636402919257413770916155291267692172384082854120658849716774813226858347199701353992192247050287564816692654194023922243744693063536080350255427615263444736041928532217992621744252422670383429084783834155988622645655638520252310690294495080751165976159844282787010518213618662177684832696355585157391339123534590832401240176574539088144555622417483870073701714576133360244007259881092004438654847077136257256743853335196192207088975631861241740865745508735197636565935397309944743174458409593171841176714036747765881700951803358683658557537144742819986329640708778587241088462694300102072750579925823909082915509711084063005496785752897077184034205152320078607891724124507021144465852845903189509508090644745121221245225010097970603652315005655831837591635992396732226840646553205023767127437528454003974200317758759277095093306130636131907676936941577033763786022543015101570819348852875733496007869219786950500937803807252418692564394898703632292472731927689510746015440157252826725952578856078743106141553751521518010937011947843837960045078137021757768593469780769196644538352675130252729116541776296835229947103971617118991241224330081266472798750961336035782368302239121078599410189395656263242708557438568875176508445055881503377887281105632831302658518224676630022455759075430422343342581666887556474257096429587986095641762593433600387464052667402812871952531733591486002894417054083139088199998081514462430920004940360637185336076376028209194077850901804026955125045418205662337750717912636483878159724611614893976093419153569145362307065204400031966719398532464573779908303469896180278547730916866698185403658542433829477541517246114163459377839986077132064464837875710901756020693127037303923931895498904091258370180464415133424333291161653622099787959524968119488151337030668410211330066791953070993978315409043298728932084523211242985729171584427990528067331416970278708322308456064324134416162095765789023056685494597250811602830443534054869386670644391653534497935542430693400875982351144082297061924735581668904219910128607221179967247858018192763407756701623943036324797902733735432048965834379890929376985416876161141551809656725008998544784246551992623981801507306816478383258107330328115048434600433415804270269919919182601889979952896897373937523516312431974781872368384567518241445539089166328925712071267911049468836406356349660015434029293928603888578090018306633386766148793725550114643782570907933568250867004514319256378359101428670869332953147766263918687501056382294597009827406564664457937830961898740779711365813128810932112761315492735043636719334525950689552108038138283173739914163694663167913329618968556158560626975169695087603624647860449627613581728246858542212477907271601277952188608663665701980968652774072787508994093065323847874858076791220750661144039084646533884176862433988981591219746409932321509626989270211020780954828467202324009330559503739990979170864131091203321119867534929782406046878871182528601413163766291152789398076063783292018860717183877914138206914927959316690325989721482775558141336864635280127864939308598799329170083396908278738078745796244495540282864124520536052291695410641824050646404591324198979673674129353600221035195202773712848292920313107686115745509087582267385886009996503214389448313437997391299747116465318103038373248071157937630464010828659322828378593635234055347548747608635156604110486950911158035546260054304814144447024060089231460028107153406455174248010394098716533788025699113704730951334284821383464741289860248530992565166375525053082315902084539079714887481685980552849718249522620108282906040774220025948875373848702355164416859949669352261925639836408628714855436404405285752061436661559249916871244225009230271283331431237766984704678906978956111102616285182458732958055199353838563566335890343340798043696135511535376764116678755690041749951921161844422041022763053632323078774528491396955183835678191840579964984413250410542906382090751854233099114409167869543091805566336178868846899611255980544593253088103381264793343579671627369322728702041930980844442237652823187486934003866722064362079566589104205980110290608492157381441711117088869856411250337508771018868179734812171269662392421106995971518818213565610584920153914446380328897337172626839517233844631465013382311606669174631506474299074850766759310834780340625051136423594083455456891642945164081596436196187939208977448324171510155106693488015458956305431973307858805674744725615238929426227149921655408079703012105408004528251819560696334850381542781817062710290494102132911016286117458548292637535516628369564743452574464301791822120330988260598777869081213038370892517974164600287643205240896746189529697623974928186073029876093775934695430617593470376488433736623668945877202242794684662005687300378026798209611321649168762893990460059369431350272890420308923696743867520354711259985722375483982128845301271514245878098059835914479440677891772890309684080832385166135508727977657935875016221409452061992185303046582007189432136496350606988726509971347697117355587246853377358667889072922788522006528412320269792057068453406829063662851653137620685881220701969266397526155848785160935829174739908471265692346455034820382814706257002567019702469839786054893331664032735852951206997400006817476413312333493861037389460305332204371895928248946743627760158932091974235440797029267315628053708032690003023504312426088202050086832019365484845497607528260254922857043150397004811411057518768979115013622279144165137293139404563307472067093734695766930240677905741791668261372428045934284476417418332809385814765308094987557805795186500803074793049636664431331707055884611422772250115476406139481623630055342568990571369563117583204447314287438131897453003199823423528654222168654100764966451344913881521731800163927050726062848195694171093039538647196465187876442604205614071629190853880698928244933612320936993414199137778370931196726123861802335583719844605051842198900305001843754904467349070467681775675296997684775592007944616018183874119924586260867685076116379058221308597915604002179249374889137400514336366669506096940111262802581018974040336274224235694364358296332291435905335523296921658510136034284934385463407742628749217994660208109437335221731422064263602709108282555500593639902285899208740546407531058899407230661514509011531714571783462846073564502947061846480960248930372590121260457955013211188206085800708255345789553102131467525199924337074543047288214204387440216588840535288542069931690863274697287254118699416479868475528851836447125254328563673301385751657094723445977885293873792699589101564508644067195672088188017226377795777341651336817626419471236905184326987502972160430158221805403472935318356856196586490432620675809184086226435359031786349569459816701887085400348437091837599221812638366176719239217477765629313616817666677801676537948326708261971363901481667209355240321027738958947456885860265169603329641059235156743255197186343489003549101125709736827817611255432785699183863867219433370978155704844821319586864527241735935025918176515889941051113784738683310595931629112705088123438179455676511355902351076372636723254915384847215089428930274332591951092614094590322916398316932201202573179588851751406236736440342413853769520933290046727426526472264331596143708076698893946435753924849789957441205755656449854097818091276779709014394529864317162619901566428304619510343042142477227499368705421877964389115673099451710109071433954634186372320670259975846314190013740769369717349062591225108667297688364862677956222630458348249885205566310569930849431112889078026467524957568504768295714959039457040354079328056274678920559877507925939905073137566990380719776576372411273660814873232733447695125857296509594698209880544757247853246731998722279186087033247743884836188655411653173771980863661312262635210313226901656237840799620142239390177618661071922961646866552425045863780848501394288607926656813894876742437505250175999872251189344895965643260548412655348943654571093850715513985017842928416892385948212490748355544417335179182737321314217078565970711140833641687471544214909830610768770339510083750711119898859178893815395361841531321984208515021447098500844910448280247497210949180787450358197089648057856771867094358560921115442084282863812437510020559497252613202983554616382561781965810249403450424278564961082107566885874749093773389498853343874279250072264264491509860340651720212882460028307698457319188035648700357760394789536860235753217039358388085875715050328572912372876274962135808509212406198191759437480628229613884882155936122255168535218178490530913625561511639957420296361392720852625962823803435966052270137011981265881347058962395771423458782560317472084407735687292359224245722402603945773573828424876379392236800244200251548672918916782023046244692489601759338807509218032598442221431840769333495136701249258041512573167061601662467067750092269568469024599894267504996513831005396966602344565635877326284969550847434280444982966650417053599773826859063485170026456229855764784531909222223017839813050224787281951172046638774077064447084431687770537775481099575601133540377523801223579569665942861194933058748651638352038836181217797917258693209310449177009143417955680227381353708127967506561949536816745800040576864367529997232077225020874360546305001983869573380340335523742845590922431455623777179603473798670765529694228810999408015842474041266831532766752696336570579484822829779515382757416344274319070731678930838813546122976823020393234230938475383399958830060087667449846872220882481575023927315867628413494438537675815414765290239060599756376335857711705719303495615666864359927041671979402804612067349154670152161407116718890691800270635747539487525792120153225281855058387088811814730839325970892931958553956775443750431669574165865174615631395896291008603325457885697454029734714462997298532323539993692245994100309485278419813835904174285757194007245186800342359210945507033058936488744742837569281027354785619120559910748290929183010399202013192483882401635994268208874224978472010890442732666423901168418495564526220415360745676536709590241181147242271862425391716830035668132814700928193889004457357278776227280841460978527103756046122908287296978493315751291803138296265492113673995357678577909370227938895138719189276259026565942920116211234815514597536887860200824044984402175345850685654166001359265614752120755127704203793429093091605610502138209971779437605698545471074306151074350097883370517513503882232474442396931216385596937241925185775292183109492084388900922767829285936198733394708172608267606472418656801590441404379422839891700416687531568264303442731717490014979434809947767415318881395286340267337299395845744627807075966491681299485989427060779717296044383664456137438532832281897423267190732531238256593439878202994436231234086645127769922350556260135473138693777974189916663158305001307877693182425308636953474654071452249754155386826684626532214898704355910232917788641904209204972486436303351836183981278595770256983601021309012319259407159747626954080962106059871516670235179028211035292834549043521956163943558449097732646876166240979108536397833393733324240162092484061665861514741967864981234650446659576723921885980160224623704381499314549790326414098582009975673526196877244055071364382934479302060375701936130875662146463793739597793232042874501507595639459973083462090792588073136403398941648414164513486851358852698009098820568093540754361525533010674225051477486028536007581812666808333226400006083029147207931340997663572724646888925358876389507287358002025204488573207592458065735826808234800922511970995062208718102877621556624120926095180401615058846989925551448356632602540275099143603656016357291097820961492816313925594324573935999203478677080307576310111979701736352378506854267414846033111436851000138329764218079518568291696459201259391363610775628659317437518312743361674777918854051180687556991923909113677207990959576680712561667403083826863239367365239018447393601678602647561556882455429602335480685991698899422626732782031127256276157146437605834108992469279322911973952559495835405307280671178949783615208982303859278244001967774802323696304061643642961638489643183787603023662209960588847735234969128010089834074582374976661912387711036837183681533268538459517475799743444860974718981066140884671141879789254444570215010656890339712278942259666983204887063099864874579380866095277485011083650416975288988970520861461040966597186770123798027584269071778514473495813956289675985730557782606233781708530350366070711132480885754217386030262489868506503317858443882770032646520945194240367155365772982958062157072643071846580388940959033184552454411510670892227461829910306374592447589197849516573740598726438645870633323759953954994382931888086995394428323551181598940826743287066630943373160760995981456941589698689810021157056810710999290425178786675257369266399995990012690250455835583289362309924175797192242531097354247065461371076163534429835542853721476000649137884056704627793756244216643958884537708179623519398705957005872997764028594234385086011410766348767591780799432873876755246671129278220805007462830206693460812503738122788968719998464107041025010564888888200529311140563235957923004260979932445706087661442713932105486622225700689015846639111104834897871338787500221187743554211198426032923027111555283932275029960252654217068228957398963447998898249440580369488964327300313940125853623858441605880626267136932093564048450283685160492731748512046155994276974433000635989685165990784599752545900411904210381625838533399239145274954997340126869323392006584581669749973562817975735080033103926705840196071132873638297317532725942635987604837387095650527311899649519415272609036421149875935538610056768635039718769886599577727546164254707515526498783234177093067919778576853069276038744030777944327541923461471408409858279373158772648990086806802436187101133954382362442078316731152777988960066560543850655082242989210062112771026268101465934878252261545882698740503469760765893570724513125955447089044533158119173268093267404866013445919110401378943059966747746383754421057452443843019917505875402274224435257423275561028411711634353744102311293816244047402976722531259644704809128104813264259292470085813357255035777619496346281225311289182323777970259517382854275975733256619554466234298518420628885886709730339478834159068006728502846915758337751909781774708278541721224722670696592795265980323872741226490880943535317914417522823798915424500742484789614817669959859212714484605999447500025887748861638053741454091729326403865141644931280000152645748473396473551963860486287152756552771618641923943974129394404940902095511417072100574593386592883627136612646698638660402191296481490416514251545456116022365399321219420522790912180924018575302800302191857165382356673895767412091156914383469484518429182039318918807792334203907176471273933369013292460392842352604331524659496994486223879576870107193527120173705121320357325933496372265919525860618906367370663452947123922991555054967002515091336205343316578218520375146723911140272076076020554886652080277572600452235330757250586966662159729527674534433094497213347713712192731217699161649145861109309311582876419085736887771422428394948026738797879790979110126410853587537745966029591877103440014025102274235251781525484782994116527094998417803323947868338840906951420233282125488273460290356309486457106984702526874157834461737237577806805814397042553028140786279581264876640014742030182504404888344929637154687372573296299448981954564297397621133625558002917511439917801691793283551871252657057426751261835623975891058494508882944156028483711946038254368815023280263968970990505358472357158096063494606616982436709406533087537260634391727894235546088111328479148833257436625489045005432493138222870251300897815100266964943154296424766730521651597627190367668082182881156930052688398794813443748721524930285271448810449209658618953860864966157283417426987272917298551495739062768573813974626638612479189263409727504619844420227927091525660950915299874978194111515326793915687847618742567394461846484577613099885275402799606938695635081018241241376883965632317648315310012690382837871929449527045684476430833507850513667538121359773889524676212338651313272166630773306035505778088210439024472865154098494482337399602371793481822586256729244546034161325830407695806899784083564982396361688921008222237954727068816043925362010392887560599035331481784612402086068531835526911712606367777665840522315966961661588429356279349290523372691518290482385244120254783264904281824309033311393840978409507942608516773155591907820743908677985734332476278205819908078681637736341156972729090746030960535556716848510427676213134131228673025116431965420623555334235532014855088705310054313930479595836981752656660897057313648799159501548426931186411941414292699834918775132167151425345567923309792468989972486858227270793478237237989052747193787407688784452281482506683009072216914966362958618971760369043690517051265737792724342447694835334842618841622740753289769797180777070597181005016134774812320756928890304408674846839789078393313519327057288671718424938587962751903917574993525846094040289186199414154824823448431115122097142812870254549018013951137639025388755036945156407523643756507325935557195738487176585950694070850482187161895181540110025496517814224614973464602700196277541203687988089093584374069999922886321778390551801576895620138627668420897517513180089308827230155674164219401934347385671825023217268040804218437857362140048192980081496039327590409474312172943417403186210681798939141782014705528486285541206041465614477462433203886268530533403916041102170691581775919544551169796083672602122435817694230300692739954197146164309993367641297786463370888330023200976726491386178269689948824853581439712438166670799116125950236768307027455926248167188530650996828609440625622930970886122207561234369833653565023506706376732845535136864679513315392898185583415999901776267816538538009686324792887592930036417937264077348612924494408557119983089445226332320498117172268603317955828989081258881805970448110256753522145764993889544575894898733015269945513621159428116308819376442557842010719964099320183882761859876527097179732234118391654607642041377327726715240441187549682800574217929778041445231356989511536661673933987141512390465040941896097103384497016978775464150808726877324481109062098550128364999132522775658227085776638074844056790658138838223665726140721541035358399322375149631285922029047654454752975939580674919579114897271156998391888672014088389245933454037850446159174573764043706752864338268002754255640439484901401277642319435683665975298634160961661122144435695591361506213774257296832087478358070131156126161343605538762836166395790146634232914015048400514235968407215848557117217388310370691496965455082048658633381211133186513149016250834820030229012283961900158192286535217151304925763878131910512658428667113736599315047297320714029901564013185517921822259411277643261155426839026214702674601776472494105594201246277364238943506955562337021424185014307196992541429558715628500534280464108347555035203881044793669879583539087653597676808931773986190226798549634703669923003393718360770126983738697982115194620808238593266577322144011312348534921942856129323439254149768792708161915141644850149300528643023849583246330013192405235486538306863842358720383416762335243966114209716789174389205597808867008214726314670032457444706389445328538221934183708817148716972493051021409967659371552150856874739361391168782374492903802977012259769050815408170499318331241026044371675911932544021621516837093337096575540452560595965153718147531497037218424960104061377079766143665565221033594444178643716648075126563733877465675381871041757163049190766275900028010821180480581104122265575028980535199314793317190968003258500692960148920592350483846827173635406317715848041626378159483166724606446549042497471788659324010712454177070958430604135832778244464184027515562294601222825250322133488597986154589963561039727047353732287524041119422104115218266125782652879616344853694154552200564416755094901116880468417119732866799115691691759777057268469555475071384994797787163547748367138401356119675231009691938776660065016884724133932879867756455923810310433803082756712968926798672474844370522033266442490708703269310507145142751625716435852265364878032851444701932888395325311729403290353150060453735664823390506348671907152639058688918398005424548283580994651207485253323481280726492602447120823280700851358342983775906837557740339694848377202945846365254202611834836535105193889412962532545283274318214307127090246612228316956251229643332823109933655756307160274938445400940417002966563987195358627164054424964438193128403669014386328000578283481097221117322071923844934310748888867082435324112288867013003901076373399704857211861705261574802610970950090388006014987276928025071199028635425358617513726274817662086211954651711495935825329523898602700896552162945731035953273969401479827798214323013712139838513075816113836427474874090007149874237782847535208432670289096995284236335960359706341832147646470194914343075387677884958268031547708379256213418037128601913595527721455773177176656315076988868737738872718819258686779231607086476306336042845971396382909622280934204576542005199884874973668051526806015040439021484062165930576751850947062556881451668001044250017059480913911084205094748712890033855055637278225412164660043840209518832521564545931588610359997118579688035758066926891229706947367520917256269790404058826267054311555669736941609095194258587745908465091721073356746907410804316856373887982644158257505740752060286223293194594863248114602501223916457342223846972727263290678004394426076927697113149308942196878805037823401450731422183763521719627527046105609052591963628211984345989915676329916960010964930525304730088003025459357560141497611751037849213312824949673640064075383208320220030607247257105064974521505495813990836212257210213100673911060666918008161104910852060587222528862500322641013333600706566019871334458560070385993309532645098323726052044567758767389359460819350600573998273481560192871654173153997969787131868988991985551849760856303901996676374980213985667208499586191810123732830318394617688010316677932171551469916019767604818540582024668102252138817876042638196064950364451783891083078299644592793193721199257611712971832614023100469659033386497648956203272667034722028889721945739323202652716231236847404405050953118623829407432721885846786001805365409832234225543418245409340284260090789116376272955944893470951936499070604118819857669953789948359055154299846950700899105761564597077042409068123667039155466678587315103879178494825346042229321146585967771864447489190275267079912209428046295207215097977866176824719510703221932379151223808804599288354686492657271345695512340247550165237868927890045671901140695356238315125266340949572932006870519248227221330873082708877790501508995938208420814323313126907701078306279610885345938009835777527660510146677058647216709256401846748999834754034833225878339456261700094435475297166063536867572149838164059908624785907438559112174568966473480759820221757225799009879718689675012268692400885602723308935319431056393593340933215391701826991391955638892831858639890857634518060040318616984813995304200187313233504994398482199655700272962871863513012781266453750440709094314443847265846892945260574357039777041312916560291412877251349973900918938332649610385755441628641565969352051109621028446652706211088747387603716728288510452953784381648868547250408619928694666341201602990082597247965462143149000819429354891420405553818693033800429880081249773227778739335221887839161611699710759123728086276998107773916908150364440140414020966085128882555080381030086690108340006020987492322451953892476447134047306950968972329771171878578299699458417760017301588493667013122756222661248472393258331655190306165740761084074513642464630227403996328421375848041097328708588974271959012332261010680588192294560970385451242405908668736344808530918328222281909653116829243865861995301655774079398083186972592000036378777147453350081038710618615095184846089526924914965021346521412021496732030787331098062090014334411224288168190792104015032403744393360625644932571378170720753950136930398357281823940731031646407598673594413165870802919119518050882459375389751869451495551965505524498441607319758371830439219528214743612172765487096865267187221031626894732561956781253966495098851829755447691766506021528251188659909202179859872754554271420445158074199447069775968937571714726832731135039314485480328755940175322732149428887680386115100185694586667660337424938256327313948437865531344214262427347603599085555293458404859388552506194178469068580289612816958514718535050597952012605746346085919181456107013124221759763731044148901598394912312831260765042911917358947273872018470236019023356178084682007488937316006426536358234485890129574844660533112174992143105569810715265508273935622169632127384098476635510266987788138469521691116669123347160042257299111406141770199671336063030571281738757100884249149311216359101752679414140554124337158922371722591694639856204722395371028871752602846447303218962039656263739701567237476723656571716684883951105057522374713869784698523495751116152680713702672362153636933503461193877979512995593361271640112065685311656101305929715143466101166224554395026766880665225350605190453814693052675005656961939191997178931558491303665789569276375251667235309529564049348951711576150890292336059684242050087685026896474623736641476434011378064347495350240943852869221958306866352925492579795705462608427710714257553054256335751345077195117233100926945921960071162568199824995070832056158217205331237292306460099917359794399421736636484655863449432534287667637033243476571183552968376968501980405671917273529567656306421103654482243253104414233791525008983298069936369320541204079004722711373924939879766481457130634853362455596383935715073520448634288549293990671020325380865836935944132185052139781217990846403891040465336844766124746188652668296513437303424237255622707219519304174648661004898121892269387587768146047916871487205341860704726909548031307587687839548747192740536536740488990973710635497023116585833975474832195183120465968781071109316015672797874943258141058552322101069776354969429761427449080745368479168686854723311415551451209755856829706403711195000123540557465203285257359547471159902268183771146322578043336436314008387954275905564014622421140078678928108514968746758915120213794743462642037205616079234745319399198198295700279246422807792500587760858381809279518668872666905837424567271395234168542191414104570412526624165974059411488284230855195668770918347160976498315505198212802493655589621123199931126660886157637348251254296179871303831546210403350616431718762159902020987452757131985868306411002618470231491364642772137102572534711141425853705771946624680768432597402209527856721321289416931169701758263512834177837773722154647952721230480112624073344520495754291001833227970113269630408248445244926144068829588524160961497215567163454659395810642238835596498198949903811883457406738123373232422790784459583034404037584262193206625738053937016065709461234502471091873211640880172769611274015569159030773203275414883256573158533407269968646365420584790573672035575269489655940768336729633166456957341848081649627652965217703391708081002842232357066731883209326296002208080623603116612547839521221929774433302382815673911470662600938859684786909969825337794199608090115843261578413829965216709258829150768355345094255717756572894068730429774573131730470896842753374631106402781353403464003149130608932157086253157187588238193163354673784361645222975423683126831080792706464158078250130785656456800668091272744803092910482738518944042476102466059189227987349155401839526383952353726603125546462972731201637358249344525331617855605855727098040069981118888548568999907819081990613569163337020686534079545426270497177684875397355938334732800097692958445357998237426335126840595645033817553366513582765369102368930872150272592233821010966584210028292687886107755237708695964965686142631563119173012516977607208670115565283982715574737305149074763191462405642071826448181085878928188629742362379114970967431392877962183423339958565595633163560518964279896903951027400428284738854378604645339478638902388605022058005334036119404692440281266497667608019066793032411054101478999928697563958318856944348982960944938772063985202488875995050362045201505363462109349211543173888842462165814303775528739731913033114166770038508328032817802846710628432901321801352584574700869915928093893099210565065612375363473099312765474305047309407623306535080343059423100797219296325711954190714546002172788223667690244340954623121398430760854258543822761532234648999510966539944184742305817223961550839302646344474334022931766821057933320550223857072952008563938935889506700766149507144930701910465313166178485254202538581896853345190211773694380309860567137859748380123278559897685957703845158116838683189649624099061221427367275905367922334961075268960616734752911465930561511207947082978406732108779647209579469089242346230232233187148887989576330121534402940662479421754746599107277120603902003738874570859559967235926289332594485372327659186930979417167616963011487048648943351288589752224249620672710614043011434708049071752096189524733276177904774268980591818000076205874629754238917588802723203267532252160950401726892246550515300544673447478219152420876542293122919618612217869443930146348007793120830904453969072922974916063892771507326653837454075514395687914318944293078759893284676659005879848709615292759337254969933168864064925017200433688703844872439694481212421027914861922964944757379693617679820941438918560865740222182260278453055163414113463464061805258697312664220588363328932708865126817561443693555700404891477982528282184555689591669710929523464435418714784160418869960904478855914817363818455873244315466321784199495813765964340599831995579668538128156753377773303251249904102227978971554675824714772038983630138174691359537158521010194231431743134326891251891781017980712827468644501076324765634607356660498384004910713026899505408190610247600414780294561566526612309860070468522639728114734286512885225074539364600526297441815406182278412059492148332470194019682773127946250577638060047692347051994322014605741155302355499574011830572948815925776271129150518539786179274410333059594424945306319096835693124951525770085148976962576328727471255990863451163060454670032874303286771741936176365911185818479959500106470033110662098602408675999236042917855448118732777280533368438860260720482461120191463122690586899693217851027246098924262080355239603011445030668139259357143352183234632008570912982660630256976851712890871407499473514408403888274128841951963561065378806872668598285603854147074228173396816211606636340726053926151333127994016709278601319011482854063866846869566389276965943926799690125952220181162880927270250721694664485267981268088088944462972301677834037750083024977312620414820188856321121049674229702649365901490507011999840515119573900884347044622840053512588616084035477733204535517563244648075330230596368986309645487960918017557822229358683551052011891384263679116883392080614443601838633579867303457554840813428185220289763759115119685732430986901327786999842452196475451596713665776643862764197938047338757466846903855595403275549547134666117581748465581299103858740860975956863741503920164792609885744402586149054895545885910213863356128204917442052615000859291790733150981032276408349591380213335886528763747539094740951687316384524721602388252676018351867130495437294302734055835043706778168885478210477803770089436070779175640760382568438930239351853290513653474640451053107210717160271733531381614756344365004081307610582800532330366020643665562356771526370354048056846128795212261870187037645379790095172634209036836359956798461265303328728445548448070199069484531319847515200294940430199299785326302637650371484200370353542758466281311351545812103352179799364192505380111981522765327469176403747415358763923121250864434492391010728646362612275276706387654091397425532275169236740973299764918410251388878658839980671067694579039849399799084906151704468940891735116540246885803084770773209982558771320823348387802352315472003159281325261492199525105914473176685523827141071580790108643032635576266377205301537392417853146660707556321066751340408036129342984802512423569280886872078519605892614477730093680777887917108423003164898699919757791899910408916336608145194669462541499175526709338896446427062865736659282445000637461216338944883855953025639880055253607172480237194663764857259368433463613160435044211660751724038040608785335671966970820827804489331743763774048286913536011007860420582653092255063846756551976491672854129872080776405848566609118351510780230944482719236442582181725839198886857710352801600714839892547435418963794432592879368444437395269134778174561127200878965269702494707965079355654905784094025292986835737117351742390673601747762569342876451389696237921134021550379032409718413436896357923608755465270810099760288118126859127703577246800637657438170712185974200346807514855023260527359771682101551202665888258432566502295786751153544914853928371623459777290610871653115687190639300280116703627623780590703648466528607114755974781601438036496085104473201751084814374718106383275583107651440664614382229441088157876903247941934443359659184612948256695134918917273823439233973098016507997036139106900940129770402440895384956453562213343381203641041777783620984781993032061425619312608975590607383721069823258778924655350539877083994207972873352016972417437468852583421741730814966854488160377784064187337746023784637536360524198830518863442347420486630302666031547202468787356357859923178841442810924271165067947361696208517463849091785294573876912663644073603652162392870863429577032284150655267561859423982284494102243346419405652688099702082903197639753615733531802413868292191742458688053651399734661646625901021839321508568249128353643218935019283254065150593085453937312850543218630257757225022895271404666388652964277736212234439134141567467239599889956169947729274252264082367565105683618662335225573117833819293435878479338798666610557735192685281719487734376349164960561627030588955123212062911067556344646515604001304149147192795517465583884865850478451674804646346251036625280164423331421284360200516223607083239790562713570973248241509110332415765014114324036318232388033329773905356971052816126456115451804886337020898668308066042299597791019541915700216122861761636069998558506602321494317865536067273088828957139198976122027233585613904616389424692351675143367733707226246747410948485888989378028385217974781597358593632138963903241668529069328702759648884645398704342552163000384998876540252968390105437028448719847192006208017615700116443859588401463046722881811623470009465037529035510760205142881478685707435878151486944935426854817034765886291322146346149477069345202312155320224265180474348278374747125196082925259043602137584538296483008279308557730770133054362164029736872968161301747167356117429559891015297100857838095184598363411887828097316421113052198629624645074578722061410666026273912034896964123682413609134952249995922362939081142904236682635977511144349769641891843547212415216644611940517882031445789738259060094714606112860581247603728368280105341256213311248557575786262782593345120758049765367779127850559390712343453488775327961756125591629893029512168470315113850552102940832264703765835302885519716226297717678606422101378753004081469405756573377711793169024173447316229106426472951296225539348622114538574441017206755255266689311024675594409272099719227943438655490977816666576493095068215676227028406587836011348045788575183019328270677481926233234984937658294152118636635401776908483775384595235225320753323617252883141867496282403231252373777303550381907650964766303164624056329366982269556086940935320647379396084656717907881739904031842959546527630568203103880039196411361978685495030647754898620763119771070779840916780904258098822507297522588759624581451787871936921682199166454317114703199445365983284914240874378308646732572040870761280841307616655555524382694384170828225450081280822870424555742200968988126933052796391426983620931273771667712213735005750882258767158728583891383116455614579033279722481613597833753051707957546379272898695008581279830232389774075176818679072077269775500402450849604823261623436557693814296075355060143370472938466107435347325189935340873601888895962701484311954516583588108120074832282424082911591371745399600279727894570159801572889205599658976356106695360637308905217758505489554956286371061950221532145707326072397857492694836847747919878100812459435595749335245969693427118403916530377946082167110887152174629600070474799709815014210365078374783263986798710948946880118868393131501257355617092064551826922489966717786523199572762499035324649872753446257383409306800174962115474135096212178361048574604676601768598678204435345502318222314983317363769219823798904037495264661944156897900125275030015734261557413303236738593240886115354057375878172242189269745761675140426630031647973773146592780645715764227094476140741528479569740072565412335874192043442445462447919487389354984672602210217634508061693883338070762800860015186785036279169792127032841531497221117691526109714782284399781237103031959949699313430346345682467323669042019623805500840598635175913072998180324046343775056190814954069030584904098598714210231142117804863427355328351475049381959043823646157642962093176015509667310123023777957855620478649167743103310458674643482351960588967176144018682856934099818706237832290199623450856650896000872045202875610283494067252384544012456089608672318393971553788063957328394895558712560437746207319367974512142816870558699483291317766340929415236082929224223339680781184646680370690518769834540178137341966089857491327432506934747349023526546475825671462576030173023585771885617883155406364537210563911787372612783610483196353566782835634763444374775271309936478449156694786634093060704326397144925249918673844824222312245377457825596255798050444904070264512450112471941602931427749994587944219973584486466261113524213458870005643809833531283675703649419823546944326824512938447955419821798935795025972620299886510989751803876597057136990806967919408310120781346535661425799194449871412298866843896795024912824806233658758089568812390062461983801608010288846020574396398064945123379082070741140755355863208137554584065537461125142359885581276540000659365419837574515826029151790492399826324984033073872320435001979841852113577278992137929797330741892160224796262751540419764998544791495922348666759317595728317399496192428956605202662711713125431533689565806936371341264239865487759296605412125116554856605204992030691653736262457336877836011118377414158164006383309574949588493448100397145293170055225987515868248612330263623694142027813152863460829046543085735072462097642375418033213295986993412981670651541958091769646405480385979006892706543428438671175883138654867421564862300497727442855641224087399891946377036640932414398885787545981114692455550022682989981303785600761926968768442430461646866337756694073507285847801118687109532118259736294260209025119065683106225996289406763630512896786333894806373473662668093388302050419647568387729587156490180859111398961215303781868909325249018086857348550422363176301092760565062411631311943755946880876052326212949722104852048549348519651319158162159121209044909414340920827348058042825505670223954435925498124986580138253567324819300320236374948607426195237136355115550261937106197566521412586273688914070139911906750852932864522605454291230015643122154926453491983194081608564216699140680515667272644181299928293016283379278501521850100032712012786393743415330148486813916934429772755508523060801897062608749040928197345787100461980245674318916479557416269849459852734790084879193832175058032450113649563756801007620754397427072425846151985115224898756800779706042387504576126565694843695396968215999107239659871816455505360658809541960312156514155757099841307659657108413609794993905100528969342655330899047332206856735619885598654442539164379669286705460516550603926099123025818428098810811823157112806537654866528040441094008875747689842782469484662738212241365852529054346350567175811565081503765695708298982828150048279913903151154248997986144462035854703171444916111390126437171501009170281047131930056138011083087095269051952814504566561927551960939815468008091956664469090437685029486013882638433385560693269424966185904896015650171129690231839558220953439995609725510272418825199975991799091635943156439611025950960258856913532269250751846813255781788787292007824852489281730652332291932274366564377211709389242372705430879447161434528837214816899060087448303894593888784892420281488642028639177915860159838466045708560759123791200000975223647022290742414862478952026921573881596986294196443843485293933325075005394670394885525189800537313919075922434534136857306916358808047720137277977671843921015536931696622799391708520152579798819069832165704338796734983392858643968603249159866145496960767684818746069916388764699878091085615622600223296916799130510934170115284954960033998350298714598332325634380933606066062965644999918824391630262323608843456223547923845025469732457545934791683934643184430857834472210741593397380618638712176796561458021755664332139349229868966663245591118182380679801913563400956973077707096898383937621221251902928146927075469095369542824877167532486021103653929745369835333708831317673566653839395035206626731636014082950569281872057249956067543653073853328592081830225220066816020059601133876435091342743952170088392277702146543052243925811837163208039413845884442121298599524698829865173051004143876944456861037110540695668392110910378176424967696490515263283697006331797540463540730309758877379530746705294305941681488915405616199095884142713538788710967891534991144515263647223608547181968870254843417937128225643224969130726364150519829466205808917172899738808193320985515306026251092262111722667588205781033206098319582284989956493132913958630007325814693943490616199649571208962441677535695802204575164621320866347860328221139649039192725720205975347823765581599654651813906792459001525389985460593109781235692520823297179668184044683015134090159438178340068565523028445534836465306165489762592565879317189754843019443395333847970195100530385617636568030455129615872852175244067605468981488598093351960916336159319660058378555115134227712262651289897866365246595965058226582723127702304589871549117592398386739974308256173718359206025704498198911171038451734008660382964630429614715249093940314928270147906178135496833474185308215642415595645613272910880629800223610274866480409893331656009748754516129934974021544127407768993921166376411071158457581674359602267118293345086714007719708351720417403348673504840309072551489688755450831673458199800837058952011837212157523777099404659991232723475765369250842772541685482414060805881868152902267522301444515785985106116792978372789243524503590388037692344076170560219983995159495966384077115970977225499164721355218772825996786915332272166958819785891105799999936246188734601631139505734147385761144348828127190170047735776539686322087248274064548114566067560922704524599211237821855196833540784807483710731753026152878302981712910587668114641080402702170257240876793561091929004828013299182052147585937384046205334636701719936740471509832763835486891927727719633613277334526947935195751649397990619804141941957089672302708449030947980938849154283627748154112168920496595575687500923455933333578789398605129849832215271855373910314823294165356035289934161329872679381670147170107853524817377851054723448558450216283820787977809270299099434825917604337726145628275726479495423040178083048844110688274303549015827443096132087721554227964246933779790520940942720955773319749804830886951161788428806976052883489722314653616908151970192098339911178413206096003526701059744145632088840842307119750644912718794418068724193661971825595158503685759045474126693459261590869178225199155556958354706052165137785815729424686925579464487322202358155290919238773321059901072456952846589494055574998106791210945610284739521444402998010310801351396214653619615002277456225732438030073488544891927656063398738871261857225386004447307257447647967032200137282981982055399650961049340098887558303845657915531941631733113404972994388110442155848584990435412856037847092058045415904194282716550202001297865215755411391463223693660988552954504728775785831817874001844000730814374892166089317388737004197624976325492367918997080219106421967570704041571989050057380581902771380754871491188676264548274365699955956529220021990500023163236066714476485692247522283913401449996075873233906125275787231540604586086737591610565213004595281435843768696119695161073096249056711199851766871060989917952316634539475883978293308867296419320743530601498968370617671261073063273373842353597343753120129531115309883969333066497213492392883256977816166149265144930158971855815846881250321800550561755394811017413931635726412918971797355271169176333446004875220610093819186712276317851877231338320859407300915095698852197820371137925266933369426232805907152549551977813351509927133222767810674824852467451193860060516985811346437410179664018568048053533824451345975511670778993262092063263841444281841899430475564973549559056197618277757889683658779171314184117122161950133757139573082280313206042025808108544816742102013099476059678358452352714087281802036338827645912079433056988641436249855906371790411692663691298216677243935675859658427521759057500701794179499619635939294179557018094053089168868173707250814961402750690229810753768266514582147014579781372012378243672251378378655156353988644688291445956651126018095948424766185096276540922238026108675014607867864446569612871279761419876374854221704220219685145143474189778166371824002284180968542218959783729473698971864684255887477459988650056928950556576866891652060065387139968238113011644931648500778916738005905661091386966788579790991462193251039274667110956691546371741633817560320631413214901526134892414543485510496188227773508863648025938734725106686508060266236048324742449910533895520989235426007493682709654512087907719261377984217601614594520937429728664013280791289053870820728344231590717147431867190519647101237576594182582423430536435650534739532245102100509776480257224375882784696620278455343889497069278949021940059385887481004886587961124324718214350691751004540121096621005323046004645129652940239061752236308735119222492022020527435130697720464493833978718100797180459585896177856495626636677907529640992215234589895949922121792304629822627048327013142928058252418547071387568965976757171867074015313801276852868704190276285334927494390951389630827948521334486425140821689732826817545847056445323936992106443399264315981260606106478935295194076949027793442895263435529754270377305630788058593542725221028315996311865720339081895315593545849144969356604220020234165222590659313466556104012588960248208901160451253175371094896365004569964462877693660442604664454669747636729091220239797989080586156987832079811728110916230599326995132027954927171766482885553294071709523601247791158334810372097715389411947282392972245645321510759576072657981732493239451303103154913600448231684788829447865480602267066234738974392073312245979087022104143192462221952826835087174356515155996295142708633004733018817340899526577908081834877875668129434655261076431224544070959528518337351115688615758128018909424057504950426850914839255882405645186571862452736381102362195562697203389666813669699328445400567783807324714508420847739846057749985657752122261665791320731644314753338427777181513930583730758364708923931100556574599275542672773895387155505014604069911375508860180426867154733815170119974646011995012039093842224048091844044310717663256232004045003942900549755426392530790825615975871730386657305393307937546969984728909412281627732878760054929392248947162536304189709066586549509549668905764550827961008321757055963512070289574300074458094944304929960134706266745726273968171290346248049154090407322445903828008200265156905532560296726234644025242921899897117867185770187352663968857216047918866676475056249522484073070316304875024935631981599316266129217049080678111437103452493679176692468479912515389792580682417423339822654773139942567091666660413930490510728747107289558103560791209654920532858347393755318438865473564085800911411513100138661848971313275681116303311648846079417247615069326527773449622471817735881394329596233582538730706613619595757765998025131622215938478158017181212730002979881521116099193472890222619499522293474509599177578550005185652514107707510042757735113843713197373740933993030769358935172908951610224826031694099415571666135450374197058324914869673336996687262377523039364202392749365819975335201194850879899177543843385779258641999211866841050666132545473267221747695299439160791257013913290809169972301531309790740770192660375641521566772706185115030562334901071492656656249100066662771287816252211687348020137323636983569809586120019317990304255491372938741046419673527530065445327694739204542206212173745756919348979063987777918794751865939482915530724710124886727946680611283292440140599673479776641689643137644500718918553995844251501816847753514695461628674404929069793546582154472000258176014232466290205889107695553555698278276025285221732070772374612391937154986443709250539582316237076651214168016928488371844331170737156792257010021449520592402033770687548350226890024604905894487872908224370087928820235823164701975184425991593065908961783100421477158742188642078816588939818411497418648128867000208459604700985935903380633003623247552971582406609345864281427584219712737688275465416554287440401066544661993540350957547180974002288336864255961191549209710033903919426802485344977238248778309983050849636645328046466999672563121172958229600271422407540277964318211681367782042790592790496796106603558479971125431942398652413281355633186922193429288522910918570593393215277053943731826266233413582046744224650780731991634729556921728218095978080368322223548919820467343859840816860483635244121201072021130719082125718560128158762413570690608751797315754887608489287534150690741355078059888053054384219867689904877283726865664290524086967132815251980892764908391151386783892058638921010869668961923571156301164878122995206422872771226831906916549164732909097597625630739138662317857551330211439432738485263018124406100526257856342780245339386724049667336153826823028683367141041694756956648461324280446305196426821949589934646977294447666884334649723590307554807455974580754747072278087735499147395234530335091976963496340092294829907752107199605677844619511833626434581985186447770510932685837458195755463704069881922970159481209202505428590677108138641582619107256124778802853426772023632528364466626065435525527428066665469302510434284782635501788788552075875484478109635533820485410335304697436057575211380970609399365184496409515224807462887782809390522721792918899898880740575924489377693209046434180270696717031646213279402963667542678289898717847202146613515311049701691055404873830599699127770455224604897354307328201297593929077503030386364547842935657247013459238170196301660314233921990699946477854299965124754607205598295653653765888011751934228507643661143089432987620033818218820563135819605785091347510451983641494531602525042796948077650897911622940232376301858575009891547567175206005079459637537693679308547975380742636951016428597060806435389829508773563746709309482500074092244995906293267841710273658707623990865826229430962594656996934363780183989160787684124963405047152041093707120654580398398549674786624984968164887526268435953318644151815409061912223450634210338915990712510916832776302665192979200976266220251699806775564672311552842821557708558676227819244346993148740722041201849248769877346905531904732863402942233600954429380290722167573820425283978511348550464327694509825316019608632285813192218572926813211777563117438460573476548740112305861318407897052888606575157555290609043644916491451530581720475651738242161660042296469353857543092216130608726071261129064067428878729714189654057640308568610972488128452569739959104213167282790033381175927808900546632298598239788287623881544805067065747974999088970703360291940871612379421287820713423242576682967332814838049552491341532151669143442502667354185337294415948356600276595240011107966836209489810148163972055261270162333095729485171813592391834091690481614490035269562540218965866716322525264899332899513295998286682908337687254736297811234727800458409772644475031291644328253300659504815481865340948090041879559298299245127165406331007983917575165507342479548808870659743340047853871933211473932127267766944234616252737333134948642268151123758754926236148863710747803203667896685368382091869328996843516730434028937154738614613948390130581953007320522910499654191489888698782578421891124685035019522606043404552349080777016670872820526767569981045688546606465915968403774438536230912471261230880960282976856043804875306469514796874854678890951431448083267008584021228247679015139408284067535851491806410566886771877155091522882532454280011315331332483180333074345967208371903209424376758358473117231225651986138241300748182311876996745198850391275936813453953207186269746075076437055966762134980918291500688347211644104299474732099125201780116396229168064178872142884426420639559980904877827716444042406876139348879766006611579868558501872567004617217666002894375818521204796151888604902367792690339517908313189204158975126245919920519715825594960740231609908960303715028641138419983219760641264718499002630815094747648943034095747451364979724532950715048738874457769484052944824357237461210742324245014804009071607635670917840367607672525735207032044002535524807956435404327171188339624393701992037708607263442762003568829946637605546524883995326502039171753019756976844725955423085144335490702798808113293123655891184679139202184168909748188202840222871377900103342701735489774885228955371136400931726331050315959723414799881373144573963894601947373782360233708675716904983146472177143398242007993949968883168214783519101688211168935229445443007460987508267530064090197941430986006343728047649781432433231602945433046215556334001312073728222129969959223229355709926181167041604115599433283974474105215094127523308133813349390905344105830936943257304764186381510091639725771613655943294574627670862011384601012651408448883309733132819581895651372269304535753349026754563144864652139437380027418883327310378635530914271243131071403783891773690157042289117207077414676387069410003622237871663712278815290056182125060108866333772162275475653827016256792822919364850622426054053424692334940035756455742435984789913732886906374087381995939746071244809703216336511840395480938332700461724401326650171388305336498896161972212173529892138424384357358040599384072868210331833580493448483242290244910035039928755447611574532288608605736061703899341428611661140958793204563356114126908305847436902755587551901946276401848061561744328725489692336953017325183383430262394407981983187700593126420210529968696388114417471218731779151166111947824068593490454000924357345326963900914522511851629206817318516398090721297922021043919882288503559635858470746392551794395331533070569720173593397419491790689112590735045385350086828101350378143086651280652691127326651734605347592533138940798461780343708194959121498603824386123075294243153433081569069924798848531843924075327591558718688289059507881022858353824414113645293150340747218032503991959729430155094819629803462984794501561278103412789446225005679660578914060537174540933919364445255766062617906375691325784651517013527704827515837042681481023909586842136619532671815802059574405063637499864664315039621775557788396005492686493908800991697099419214465154658442901685530931952542275609428076951587166980823377398933684815039563110995911618742999138683231922744197926203736963187591342692302075897177852509899148556575776119000954467147223395327219662421951684596274106362466897259210416563134744272749542953569596729477725618410920781410736357011800296091873229829989870995260607394924514955670698804319895236343785792571471280795304660256432632767323349882633203353696850570314778236269897820473607462127919235005001640966044024894603395294808946016224141399325748272415896010047305065615379015923430120154081269312177311643745292681066899011627138158202505594994291425681895920423477025153098060413865125173598682627218805891261172537161305178202179575140654551407238521886429880313335573698944180888283182371930005417946135053396497368852473375294303161137883397440280033873905193261494802036527673154429882312233045458260797442708613563130552132749623456592120420551850973159983928037289892370569485892492594392960467127815413657559109313991292603833338066587022090760321861937191974239254172473264784838873300268546600958703106537325525977868621957170277918818822349057481545699127632678501566514159420861365980960816155327039920284777568310499100458924661593177069310864761637634986045403870927676564127274013298543880463369777066817619959675350321186934001354152179919702770102662501312401212548310695353315233361037596629790077864669403834405452011077012932083140673322122733442700156072146112925540587876277023694969292325620788687501334293216555086598018688330529951695206449887705359831251509728468687439394864376340849476560645944227821198624450771576573872651134880841672838237055224868238598214070931923050945361185716390359343498688638830616499669448110968749223328789938302532524496837209413959253151942684626228872292617548178038943702171173718630319668228540326973465954838014596899921849908430842569828912730282145164746578512209484129912484186309576900680188521921399788180963518547339323953852717854057777334510161836362073770853253603861689155096475827217516090868574192476278330874632018926242261929128671590629489835616454492283092831665119570732671268426742664801933278869650323839772162839107718222199542053128209279358263297131206763098850010613895035464189869769714632784724183500668530843049341670204970886821025313973591021165443876803356085392466472472565438939163197884430233852972601918599925851017183546600835400461434529657034117722537376807173107881881221929978946433569065689538843246392898882323064804176512486019157300559219387674891565336767971748759979226162080380633506872930680084803328656329358323128447682865967195839682035017830856897383476519520351828882055134879257895368655474775306491684326789474529315087129897775118484350447529742345737184703161577553652852930060413002658880604869856683756373093488796340018234467570516251541133228036550157517182776899249882279135835608501136651308574131072586957791253344287138173319685917908824967494493449692376636119563830894522485314248244224198542040003837321544675812673931099228764651306630944982302317117668115586877530863012525098370467599635740463823765218091019363879255239945571896200809321227477476029416279006532112117140959964060089203898994412526380207211697271747693373648427756496093655888733865412398610799900188715847530535179676962960976438348389479500748398820118898169982405382868059526590909152363304182059763168998993089682499875524866829850624288857143829099402319296919308165015916655133734788175924781003653781953166070318330122059461971966283009107768191521083793849574098303803819685925067467542098923825151868462864945030430104930280399583206950335813435874988116355557180363115588830352051875932272282644937901762028486723513608054812072800852500539790766529237825405419299402219208275194918656942060306928578479182237661360973882795280475441190667364771560195714817507153334827232477507894177221505002030511934628360316209535484357105642394577798977161366474402297272641088431947170633561364439008738248611680768665013835260446456607252902603174504162762952033273631027746974935898676477170343215112271420059705161968215439237976513732714777313426530133952178079672902834975014501736625044378536169704194882927421149233465536939398330453169404097585387882820409174404303215741159338363580659744111776748397434860839310902101143263952014761987238220086686365770135967448767531846103746420052934047963807875029915498595864729479284501851890668569060127993466159991102811351267094512427292136224391100374311782976784297075817051993617049283813124962316292185207073398180473515544159411402957883358855084767186725949392348839731682398017437072623694407523938674484148425471351840821180489849294651969445734561561807965143805289432680988036342739180276684170951285474945205078782236055931727184878945052740187984577497263049017771671383949495850484257276748819909885162979209650412657075591814489111527221447289199194777787151490341935184567574808921661562063617849429475116927244520121338058394064568082244602891104390192226304787920965352443463560518901113585255178768917077597017048797063997610067353508211736752664959512628391446759802369704636735733558135586785010576907672364438755722467087936670166366878237058731796656127391815453501231995431820946179042383670007494929420726165275268824962565523450017482235244310298550095040111830847355930017618023235289573509777666749902595165270747692563752338218661930240713291073833955204560250788400483038088621818488876576569630700733826019610915298296355421479653331600219114657167266266791418924390794232802306728647686008194808304068485752599832942783605843157967606636248307357168360807517541698506583866926919720931569020842544404616079988988825853108838865500409438308844071805667108698731295791545996207500724855102231921232409686290079490257041779516765254362097856214256580413415835998610698346359713351713151500478934902188999955787858416039350361120591730148578634678622374731183679692070430097019264872040935003121962230257705047413713415450118069351214774464192484426578356406609789865385335605565173504144092210348605930287848819996540597570455774564431338887915859312282613137981261231382697482328839942866984695813428597066804777605191773256850967857017153886848207991179907991761429947673826749075561834682487795815442197638359324506465085356677994486425056446252998749084686946551691838527427616471771928897046187355228856569075498961541138627515923917486358074989791639107507873249209945000893304917341162329791538219242364872494315110004284942902291661709904381389190564548123570517718453629009815965400011167335421704316061364574949927543393649502735433473109472670459377757299439927129586163409666504572411986841256395960230167931142875895717629990126264063035467127180228918093881711226893146038678473734385158517145557462093796910873858010365618046565252040058355470077418839374749443512665154624629889590451043934562223558360266432535695717256908949221149496444094617684613630904584353046586334229123334510657218333715936563110164492045961977386662958608049052151183038187649627202893525254918090027025065352626332099181287499455943490515592089840067164548988841116206371203075993534132258284892581580605685250746633623119261233405998679807494453448827432111832348886720456457159931302243263290439999037203220303578650464464855817221540515973941226464018484802156584475430677764051485538844972427955881163068690366719180223251720174329839236889728756345592476522995906353570968616914423374512192318355623264615690531397472602049001316616888544368360141130007851354263081022157987992955597597984367952901564062846151126711591551090417337094450631191703002862832131890067427290741193062461098130889502940351189064839460788760924325533327656405042109082711433819907191652373611759760019848121945924663639423290395325208612628752840888665436716936349400431894438004665302835128413840416324223887714806635002780884650468995875476599838947907191614154841383988720798397569515077950811788500122680463061736122720397786753845554681591743975767955172595994567122502900503314734005223094677489406649840705598766515039548622695179840144352152327438940585723136651156445089859163222424728837085083375436756752385195559856097962652135646610803047354455799716011668272130835356634809815490434533115853419925167598693674434909044821754256046600616065960901354809495019983927966618622671199093106124763191901204531865578475321885064562443223803919118676163004042295018457363937019339151705243074787156704133842713940606233682285354807765643931859639702740762869179651947388635331619487807885855964585329696651250883561555842488509586364916909030070785950420316989359810653337041910890946168982607152963813363810971221235387136400368544601875207741162617318383935460423514502833649194146005207590278932970603453092703713064793398225447154972640264880647094020352902474677411081252492132672538550777166966697858118203218141511751336978869813526754973514688272317500802226763055125879701854723478848240260554838673918612637296831093258815524187855714960441025490022358190503106535598749447471235008457670794391895039770322935652036185407631537583791215256842109989799484628876702316729674447899436168517388053108923447887619913969313448586027363365410297502942486516378782390898389699761769476251651261765941718585554613826468786671797620648454341379967136559441599047118715550150912918050252213311424491667025836196957768706140257451079876833127203919278308835601321585474691587087967324824363034519407112548956205911474900248947461392358338868537103270285911948196556812619508761616644411861902828178152966412660596544509974329867356043269944690515179203427762684581471727725805720285152801641707743626176997653217232094692545724210762039736286477686547361986021728193986378717828181254845612036016126292688218064958519254005897810068583073675350688724350083561730077226405463765037298405669427623904681177709600032080624247566276635524075324698086855445472422451988244479265142525946743150760952651472481432598529485218603400173508090548572969268577043255478506492891216161048095278225267505451218142754906866814458632758298183708995323851644264275297274491824719916011404820476858480808052444654458978956101566737166684249712018813514316389099384624734238883576718958493363854071439639500736784191099181427722386952256267367976113976063450861096671336208791008711770255551498906617745315190989453312271623516781507226910119290676116222742670569488507895994925777457827605397617445787837683106917946131908179970415898409343701614808236704591109267967354621992000228355090204550236224687248626263393381268137475798864679973568049253507897109555766560262901413345285709743131590391678874028034762982643942315748503531263394092378909878443115018094692270663097791418872474961903523643639747230828750848581658876989829166872916588193377665717869654836229398817217273217457107438681220089695533746569689306956142004142905319892217741620063943129770913886533945754266444430157471105276415625394752892499272087438894886625726818094476252651185200011324704514073342681851595860337063359368655824969312936355094144149092921413310666307429576852681482621437059024837894582232477779613202579628253472947676493141792872815144830278518717013601764484966480537381452303847828902687271803354524746719904113115929122093940822528402920953057526121487014793887126193179494914906099415284574273135785677963176473212746687340707115716314352636497425129783121645351963892772552379784095039850360248212806515157302652804108257366439280215683293789852030165671908908463780481689843206456746869437492429532371160494771083338209342548627728185799709154120411582893465176883443810280226593925234045844319607215527150242447924241082621614882672973596445537856338678911921047567790132455971580276640485933591471435668353342400640602519727719182812208335080505517430037331988281095759397611920190215092061972794025656163728724309607021654816180046523910721870528109367907217924995600048083556756592058264399724212968214448977993796130995407660493339442583521724950775889910707029958027651898533048645677705121830220291241942788973942560570446557088549088516288487464655079528345747919185250403846775780837025756139248111722310832832619532395724423577244947350425937408166371560659203307782581296322968926866340160962475864824280053220158698268647277636340561931750342197191183421208053810934290030702623928624499149065848992305819589089282754930872194184653919422802202406275067898215357085328758626550904279362927760332461105976161534557582879849548586264300613683007332524658151820345056172060103995330075802818610203955785708947874061206922738930064916954580079894729174609136099611451365463381522975704415295154431296982233291685512510275670064146858264920597465944444932630369590897761991454840775468787343556484873324548101194424826301317929434628786908610301019805384939909547817838097940395147138520192062651636728444552592944972916836957238442316682273540158308341132888237137772520435056019093643318938001685332394928202351247487695034443867437504890711633456325134395952761020296004642249670587591847276184886842530651100908425082917467011719201447842958061132038949873770160435160728306302832759381060498114351863051859561392433698319862149250643954155736337136335574649928322366317565186655906646246279882060301786091866692021061552123601195250819683822635183438753201560534319368761122907993860234103055862287990219130245401846151001150107277419018030488816314746110553121239422603528620519516908048254875012071094315257559992736644062707075445104225855992103285073188693267808857997067543709226904633887232969003696994108864407833102238557288661918292968264205775440950071177187779515762524481079031574547023700902034663930117234099747621051688788253029562487053778182128186220343955005994837458478243259917028372653138495717373108680643686647994661030564789620138504332684275527111277346482385715084454516873470434819150933050674817197531217739827743965230177660578584005608735982933838201794545421044182881109258760361343327592265243125603076917314796140568246512270047525671184929483952939302033054798541450112614456598644701824390247892747965177956881371660580484655728146985043949306186577582501178102006690979316417742579569142587472956052743049048285466553641247820138593916573668436764053444702731091863858459113018017467853153031798982654318044517682058829219380099557357946252918633977685184003904309674618696443724607875599482797715510485912414343287384256228419863739361232429394548542338313480618029351097676258217952636589903528454173973900938161499234303069804344428628452238658293196137259817028503288140295604373165412361097006303499437197531976220434693739769969167695403582044472461678396625374474071910792471593725357007918235052575742235235405139024434496348276571355714525711010557714722699241208794007405598807199539758486812808844879203662521134932611951337753913377844555636322426731966486817005863625967301511998589305710574191737295133996606611460052319285307548066861884576929099807017633737321387215332145333122675386957416128043562392851921069744602507638401187163878630549738545901744212954591521659496633207284644633049342210715073784637172839906495935808901420532322581474301392505951843793608696799698212373833002628125459758027100025834302356292377669173984314841991694967547166003961052793504354970370291309866111206536859840192881646647494027087356180908949771176488872641185780838918370933238963969983206843019882371923937502625926864673213294354489391323360477127673007092687479531552844768924808668891737875271521779289078031335410652059374435794208365571566287110865409102866332604175029572866539037665923102742189416677955147302403814575420092845052687964358156176925465242396733552446410818731909165536195260700957591761758037449504277383973700024262477670445594873964522089194340775535298064475964576451586179433853443134134336833714063740601916292505483459268407543610437365515892001079398536944949766291457822709194338767761644674401059333211458859136769141267152566046566059383926382555737499219001809056626322138791638789961242318958000768556383945457240110790970822022484561539016623974143372660954670127204032475739188787628515843254063004743970093506580471369299879154980080058624611860782615985266191690248165489017166966393476525886648763679319528389791588230617116811602201543008764849319353062018049854769276942657227092711692840110435144287830179108253673513421388798668214900528552226615597439744063867752789570100585198815492717395906690988883457187960770775966115849432678145689719932654648761897230718437598769318372224503183325535712431392480588597473548313689210921256312264324342544073969540217932310866579711993087927207692686427892381486075563535695213544847830005921254667434356639904789793064189821452038579059079003537301646889238234117262762060157015203184973053047000347771589155271550324504264871972433977439872083095420354970943174981065331270131328639506950214362858029958591887488565263885054799340706765613726282750490720838527021206961063503813684949354683911668993672745298598873604947496395973215065386783529188926068196068258403886654057611827937100408357173373520908401124921128896097589162025926415787393575862900642146929886610592858680729548862374612188598973490669067594420927925956844107973826405925996618265783832245356920730021675266228242937435876218158011953106828277078835317347087519585410383038948965260459409906674606591457676177141436363846101257465056985429337290306565002076356254593997457262361042392146136971075653061526516614515351124894931331312405667020690424195926406709821322445509962619265316241624391248598359065863504203246700474321930937925205118071869483201413063325161914584042781466046166015441315563277285883443731618144294955456443764455983722528840582967227996774463011067892884389210619049998193590074881605216011980296752113102962865721731304408201257088370140242552345032491599758366371925782136513448984968389010551905224694362169959340456465590646316599330812739509575262729822570883597379904821463436044054873494234700200480330351852172322080092436195863946028122858720800307297059603583702408021444323249043079257277988073525140195141599707664026402183267516700962398944706568868623817026707068840448623752921002045680379916804305288491451627615629853655417678072759437702337028901104962608435153061051835116600022676867062215622722853146325713114439318587583630341030693802526743558789620040504058177454763278864090808002874961684878340334749679446210616286764167018755772464908043268420684239098454737769299423736625857787850284981993552344239960977870979761555344788764904060236301611718681792035396270052648621417890327249457293147623848747812705120680628203259559892109093535423768687221187844426423509592310736524180181876764581571953051659724175553860939099892163949141799196917186107686683762000322246251956426260945592645254293945115552499058991847136006162314546590045096377929852674461802730595204489907910690880544271924222664579871187091858232259458497834426275615253722633316730920565807391990514796286798090355496846445037840657277066011069795767964142178573026967584489551670776273698784291013589435805943996592201578077497000672806164619375608100001482618857130968676060243027767393185537085414412671142725682246234144575010265392200539919669146325096168469104231471561788186457773412432526876520628604058401936141342497321688326195510447606943256566077688843797145576634344842288548555072837733187167623969506738792562138285166539952508086387661751211608721285340701495180082483859146213572926273264856161759100276767000533528621131153274191959516143570233381296247753149475736136421558537063146776995445642132144591301999070385240329849450691554128637557891376348777744358004960195537464669375759186763486669475196621941236267909854817163075490996884348573542769748929309451789785924698021524484628555832219638840036327244893685782635607082851977304421245680212486806414266472704834193521445595410451510068801210295909136131437086831374340188973011340685442570038282747672004439301186882747996825155396291940819095760221783070744307086678983282846609759661108440032116573286262672395696517298670343917997922269484785871820357292131962637090806989594480554564860508013881977712429016464401723805615620812784701804304548595626626806610696741207537537848518454861348194908170368747114129595218501916630161819162265433238161645439375762699168703509576879033340147449513599485137480902360382389672411754690258664139871944027810185070421384239884295098895881130457296457041430925505616605137304893843022859101545867837161552944182134043609955326681966684975334250762219231783239710266992098262872135211847358030492387188579008959947699366577097076609953936022223343453163309291945908088016720840178779916378820234931352066807612937388101612515710774020997038643681089679102650066018622533159604026876890279018622872121715154323631051242216453264006274990713900694828159360371823568288206238621883135620158664541161077102339205247635237336449269454533164757848136360239282344260014136780613744509135776362460564818918878205655305196952036879727709793677681485539817663602605025316244374023498276301356523721179675133247119714993108779973127270689186528916169498449218869486223407285343596088138029643325444468301146246947467947038063451219868770307436453321621070067482446318655188658257728815631042081767759168810306033535513403689600901718711149987021876947798005020711586969694743847329656307875050979934584836855960534544211983685166986824499212409052119687616920927162175298121130384595503774416785877285716167144792944668544721038352219013525759457685633957996811497081648990009203840966931975896649507614389535911817922130342431141196832403222056079769811647275712772865435661746774268424685582473673390624595559672097128676960846589822042658648082412177554472645502902113101471053008096141454040697997226259092471218501351622098713111912931591770011560278573122540848575965623650669608639349862475065687076248059051561496771808496851160630753324730163401697710170470839212294213730678556477851863514906660753466988032700926763737850325426310959093579773785866824861330792980041243117393329963345105097461040363375049332959706742242337887810048439418569769504899698746917525466613964608970921237075822077585420051522546345689783881743898426101918275458666422602880386259318685046843002569121683354773497422395857122152411861277456117352864487333831385430499780561164202700054876352604173862294167083770350185656297683413719697349429964692429535047791174438210713792967679334653190699474406095097347237903932762326187437880798013523250363064687884691650076559510429955462966717099576437402940041626669820250688418214410946347317699689940279308089986893059812597198985098423288932283556887806349950872550864144132954501784616819189146415485970468517732191502813637251485756121280532739877883264747928623107523761803608617231204911836013744379388379937714110884529897957500526163834255994910341018121984011063493364424436909751196606543715710395919697673482480707757256631426331616466209959054205171840311771924865744970129557967700516170075364287373125367171467536278314842930943302799588666250318006046589011015013551730023982370089663314011517025755397961012344709502644160805192544573846096140709012860188708783997256055601187338252259763249579309073564228567266704428382517790417640496053455526167271546188243979808033828322318023396705140504643271968435528846952094837560823747343729332069185486324463367813321060225065673299794329125289080212717826833638220396107909970036602875161729133346374335714872329274976436119510569049080500049070321739894039511243837312683255730109459545961516899010920094335454551012879036415896114716867522797404291503266726495116252498301737892628813901821038218088827342164094565255465558667025039089485114438482052216714479393034529568916627904699244033855152732990943717287540734539897090190108923466486607068470824138710127171552449881918983687863599274292802448816715245423326123653333760292097801720035612259007962482597999535278616500422540811387742110564028437909051375838520169780052072494049277054157363188812470701987159993097519300541666111582969027016718633088055470791836108660029872797738837805420645095540618446630136331736396736786596840152744403235517336683759124635862693722817462105280340727506529426960667853554716422200023343164776520826890373913760613800258638368370946117254238835671514964611882038481365054655563329227845593745893663186449401260750747735133642467490252952936680570770855930289337282639726934976883955472966287638108860841209968499873932090322737143178789467135967080332982924405732163287397354236243590108526359502122557393279869249962773610212353044582758894346271665666870049805136663025792735963847779453621151047361132319909517190264524135903317811235619361125252376733520982422998872113542839965188071666323244341393730733531212724383743034383975583979327004309161949667999169382763066975344749751102404130869884694299867421867298115859113545844455956335992878439933707477877135798059489002222260170137137116576719615158865107718964494391076488400325259959193865291657986353796278086739228489012651698970295295605420632832901347608445291572052613515397503180533084146088728071043168801795607233224743476015538283142239925026636655895051147548500524788979113277793862108959660539897021286576217311265223047810006711863579515965917461450876380357279979711476844759932744369243470956440753885755534432206508463918679023562919955692608054562725244111139340188952535535109242619691865802876734721945173787450380441885813161446357850733912090583625921622781573309140537780605747635206694974178455034515441164235390240754650269695377342592566198677609969231321633853992177282492429282154242001735878858102722303175408597044465279721926063636759358708886965620471568266509720978405897336853930886110578498326376090714839769316701355248946486490480464822135108349324583643050786093746187409218113611560179155990426988467461054901624734879728670262542624787636024488184622301459835544569188591567173037767922451666585280226373475041251958447512167308049160485984445678104653127120295621123538052653292073468612963322639333881588508210804391690621218745535642681024757223126870599667721624707614642560111049548809256225263147500869214937324334306413433429903765105510379954812335691281045134238381900554545552717762182259426646537086098072138528623833167349251180226948488691703866293490614510789226665636090325427952717396385033466805362806458420519007478442814170036537893944018703055229662881101640924369440465692399222716147591500467995400021580835132966363498900109953401769037172903130961481804612704794856824782126828455375412231627399834852596131397460077760028494983037721292299893941384118187049633035119883528287423869549024056884464161697094826711040487071755397896224969616411499372648249212024087953184769682980475140566476999195786150744134620511023769481986871556520999670012944378223935300400259832789840953306041839581888718928231662888884934760688840871043049543637264262073267771064146767796517507417574880526496299594746020785257832905849487500603050541712801635707156642657738290878975808364913094131413155983991564257332751950505111165785116740574202444299264480104451139291596838047375805486236827387768144891970372483600603079746932099448691076540444408911915891577360340353529494937388496504089985555483244277421579107998520482691400176184566079626941065366206452769614052333708530891051543612746593784143302228704188407492637463490907021976311072392796972210243265028448621117601113888088225339947987387651698717223098527964168144990316743238342367063205475506749136203807570740180219437435276121021605511656598493725374929708394358696770606339294530252393361520871804779620846873031265782274855238446693430584477029590355952592772229336301841409076725559153247877176513075633006881700380693638271277540757296467083625304078463019917932943592623084125955251452320047935683069636605179001115044604707379824618468791528743938187377660598445703539396458143718880859224391898119197903575742363721907432419126363353415678642743076414532384622464513132994827027752329382227908456707772465171364554397996970719985412908496188781660783018899275542050340072381935125696694901520597362266881026722848897086714147544459087683803487461716970609295052279851943816090326284814215973477977015742647636182204928493461305647437088450196902897785521586593891462076384876470840117842424188228629999684171176446837186123323467055494817352121352866592348155893068485651453731820260268892703874364487974309764752305536630063735100782080973471129706743768813905196339233937992225069883791105025585323532347774792308145475767826855576157147307774508449996272201009463438525180221551102087990487043648927149286427118642824667686276699788532532949017720948848202701567387949473206925777420964425485733721793157023898791322845078606724446056851610227899806258750205994939522670179689344764810079074290925782953805128125943283962096987065222307256708471466681646207137508458015193219991098241844172223711983046121715311173344515011250746036868456865293609399845194935701240509537297747783157229923739416548981980734526050051164563580536597328434420644170109497997713086806900331460788619371952261121013351677532950053917866556116615191908835092935380455495067177204240577800551311740660379818222278224153246478687016225045098727056242842436140227487623630288049976603223718968676404535988398982449872300074536880486409820555868843548413975638452647220479063096233594780345318836730040416263720527387088888094689172140417792389673051137396708268817784448504391598716183569612068203740771410383080377190312334710264871949834987147223049040347443955123337131515703701167554184347813016919485683024059215222046880220066258246798757492359532009314837188919422053882741445624131334770158524843380776181420903325362704188672458367518413710334771584802607710656404918015388173385760954225003230014242160731113717510356762633642913942625317335713238264339064788416819095532845213761987219612434546260971632409378627121998308246145952024156938103021742520483227429794232974418747027058560757964540457273361060179462920330283263972258901879930002230486691418078235336334318833979470815592180899509199619923624225282493031033198477022720008651915573958132004929564983912580844269640884563195046037516617125863922850698856391223389977339743298757957542147795394126569744988280485444259616248660756983452736416745718212166388904411751280412652977484645455722210020774067261253410098379761382750954221908861578224221145120939503384667541262854081207843356097576032373975479046340743150941377220377211644385483063142837488682708180906719453871310743872846126315972337652179529315321279309136322279091903401296090300446673302005452821272152676324526099674591108774625821577915503010184328274583745191773979523242019208910338197077896545660348620448485039474500479164571035253022473576936192835842960612055353019043003119293130212819779816140430244574915105047159226136681043838237563838326192554729792280900367252236915972609389874760683814765130437873149089340661776675457653698844698548274633704149789839985880094980478661390572614492623160131091759173850678839150787407244648639773557122436632631371150592073730729276844175012408873951968400768304213907562063381483435440940760936124244255312191665771388477370126041120216049364648132653635822474805589566196305758940661432240770303706677978047370514317089053998666746892517826870537041613780245040994659411537376324923646781131069280896845126224684210236475524871977217517683533134102632037142732664295774358007387188683893155135743896976478997667413349675029392545633996275495798695462742710056591925921529255879529621916377001135391254273071984050324858856849038458706783709784008730084753966949445612013689889450140573273595353667315938972947861864529012811347246808119950154834199587225408563787828747709024665653331233772574225035571761172945935534413921265489239941380451195961694333340623663975174237059486586262133391567875217322993609181925343569986652227704375358602391056247648457486815833726990681799092589398388434987882903454100836327179556373958398110289426703350238206289852813119748298902998771966546438313772808108523826306724639355574765876584636023978980419197574039219439888739806258209481046676804870013381502910993722502222509143545595740683478982926746260461748123513276119715189449485876117957719998476266012688934294506121249309413304671641389606129236378357275686972365537077161934556751890428438823853437111086148493874404230398298942059608589158481866816977693958333750693296539328244442668580490821453281257539035367232558941824352336816617312384465031736218348634246469220074006267395859634279339242282661009929556475685723733225267762454989050089965444626392078685888520324169589397864683406275043211590819626881647546504828880497451152046433040987561511991110999863816026653777776231527507876792847935114605496930686244056655624480562459436352518091972127567952651578338936541950771965432409120611625534834230914861028596754303312869588522676883976987898838841182879152042207031968994337712293071211730365463208234193437470863456811889022645435897299797145780520511074072356386329190792075269728669113108629115594102920527288653264490478103610962109793392765561928205632095489753459142732936007433928265992496073170237887835026108296355405536877829350700544806997138104000292642469017762188376561621991505159591370161391822330929887204271839750112245583624821083718944401019901399283331307592828747707004745599267659184971083874324123836707670583593869657098166133482135280638530387135466623909379195958508360112775267012456568461216369619134351844014557859182923033025129783402690269210635748476006300810580151632237822964579350330062561870057890173771451261535720250486229047400975297857686693801050969480780344771729159027337418719526131927616198129326281786119758140329468579016862853124770384229779724999326422492867888764591893516415515353909904002343069277101337549410790144158174000041039946821203344154645926771963203829798355836389788851108879640350263240243420917387810532868785850034458717975282152803905523019596324683442683684230419849764374802015999681068669501014463670928597661531390997318015675273841513552237507895410273099289590982754973699207526942194467394137556788611817113071242658266532749999093534425423798457480938499945724236023879026835418709521007087338759183872703305184988354096621836155563397866126649151422620052386325422438789574363732154178307978712730387055935652165116026782719407731337137126823806967153396617842050788442864355173659901523116259713010106104016928969180391527635294050526866467338733078078247211883516481475069307118450326652698220585998377122026878302960891032795988609520536135096827230462323789917546839473881304701459398220598074431193470128491113290758029378429184982497681662499437582981195204504222461030600737479743040433698952025308371294910416279699130383900328097115157327291826549604740708178616023605624975210721031847119126414000523721340424497840070146786439733802615241526078078259815071503340611847029272284034439241452044654072505102381256052016836572423144854728484750288033283586051609738261169702550369078727532559808311425586984167288107318256821135502592616678611256416895134217113055759455352138459387970881706943388840375576331469302323292434688923814635372122986861719350098201369195293173472855597764517698218156230056311859512884260424990354754923583949958694216162312860188735950716818773146700759319983998348318010723716468939460313946865559050006272143232430793938425176077925171327399269351224397116871680361749215298831285323772810956231769865399364555397220173712907557834750041319090354423940042001929093028670356264856939368196271317714677378480877408403262847149902554193068045622827279508802484731418996352635799438800611981315594842993719700008774488784117368728549098667099340184249312135683781022631223997599593487563938737376140501078249018283455256196688408153465723400929699003091088587483164757311946670700655004900260501344472005907185683207935272120261916326203386394375719818071553454667216425801003167618363428895252313296128842549657596278060305652040824048164431473625036144651859576840384025322910663822588598546729403549833191523114922519489494712747428350568806452314714875479723640030149608995724049594146070723039217154261745228966915527557743571092694784922902461372054361803266134395697075524680144067656609900889677762587738335532363880413128018919882388915755149076833808900639495752900342716697096184027882717419644961881717230390297909778841405166373428550751480433879420593848826236227665443756827016955878584451200359051260663090943369275382153033759082640719801152266021144735961216211492540369121881433539217272708775077841375596281736966395221981916692726255918813372960415872573794642316274612333818324371876436526290631091122765074796739065317025140560049695151159470425537982849330307615817957851722822079157728114542440396878947440615556272488937377395246098452624814557750631958136454573596074162894088257232100018972602709756859627109594566307573263384199964321271984938056008435195391747776045590722383447689352600162388860704417371031678222126751583538761771310236936053278231929959237405677208254867113912659877512965727320530668508131319958103929135329563443623894554340133172072314086490856307828508237473042573949008054436700696156781792882957152844123861816108654369594187350264540230994555337782416821946315235744048085445056954837874076932842004027814634348804633647226732641429172316032607113892599087352618302385592416227425213449167525272962633017928899773247896611612723750292315768574137453638460100511558796604858459094283567414739213637626010511673270082606954905128907804049076129324643823389614185518928347679142523709390219465191307103739528936363184313762549374060445537858126620837846480827690130480701960742369966073701517875279032660478473802345986351528058357541958647596871214063102907113610662090460166867240346352765898345079982754546725831236086418546386489443500044737589526232589424681110849610978153033817302516492389545742348424706878703603491931664199287615760488326822877936779498971737556096492256390492295845309151693575505288088088975895058600079049877700665480449745077328284961417097550603336302972517906033008504740936336927009819035422913263574081046504603912094777459256960572080442232470687092749958725458585526382659200684640434822210960205564926237047701849611326278025724321746940118000500485221425671050735444190282555628246198529412338981051316050145627543421846040759624402857893276652008866787412311863025400513978992600047020412521043876556644933525206765315431635931114243644108779081947985146139555968339882909027789259279131701173742896137162461624191989429353004375625314004113924547206699224536472449024601525899404139553696398327797078405881879505917074895743383802113837394966028511374841760021160531010318307515516445746962049851490377271233900118830050960938643337646144216754492826346522800904702177272451785471057986033948887253684091005785399552654860153730835943617946845597585923389232386955899199729795304359279684549976881616451480435852786527151307287702539120946615866332270449543582896049780466615305287063637933442421391220564346325478925544489151500778084051005375515070679241205423934811008920096301880511167176809120332528397435126461079106078101486733595042085286099529341447972456625822766105847776402553459902010850280892608181671823639067492144452681661423104776047917353279311057150182402529761723273831364334585811157993888018213272643166793388969175400603321802998687883172773690604027255235617998811705320798070000259845428445330540289694729219139200351701043754258679046957160060913126446457015097606575394453229328038868036519323742189014264784976482846261486908653958741818395614656635028867982677135934491658078736530674300836075348579499131010126919385722854579694686376090842902047497836687774773593208061659470895929943864501674541735267748698783966607958243184644619013615955658692037401142814861150505647777657913980536521468761240560438725058736767193201138979566723903360502602170837857320824511609469723122041398235919637335621970535294682350071454292746591388312157783436739636571439815537953071500189858495869972356558774835323279152138475000387390942356002608786179103364518535516272174222279856011138827827979954038699722061009104429929005148423967884121527840913025257020768679813966530123418590533721112760477084987044121670749209509841891504071532880998072496680177779750438405676502563025975765013239700693844193005475196546179253560575392777798027984678121321495545290747125196627095163065180278165500674799011574435469678609541884701732077162125630736522511423631152534686561816505788632896183485076533265994021373523614830435656390951996451412389857820793942662488056651336052532888389511774682081609230369098592899796481186687121083767540506158938008530084088447144646303390611405294954265739224355941612019676532366173186460519024019917458489372864536389983130511076889797637287899633642694150062983916219205206238066323847919474908468330735032010895573188524128430596923181059971495343623642156774589922855808526441015569824899023966875894336742426723844284962063907182992253741777033948029509412668570152611499959045064254749737419164691019759234132605050739588775169720972654999415131351042738783434968539545410813908713763195430752940650583621254702123158848411080166826577185147286216540434088714033312745752194046664150586562833783400739702963234535865971782957594911135052081359917064884528235345643459244997662362619441756316689396893955097905815176162713305122205224031577474746724603471063999964471772261796785635558116978388731056638139574667807592616120348764924161647741222447372764725497644374672052009892230318373581058066301728996231616177903610378467935346783078569614594491480702767811379671956417902602736036902642801461340335106565151964035057023349151738351530158753446262914954096685884510453039268951186258560477094154084567078488963641529820053114354422233751850736727973174101090365606116699960835591863290622550722552076644580621099536816736511890639022699219673575115946366495539264295565113655725671055475188725194842453386765695032156776050004834224461977533387126613740715122536148763745850989378607367073719666503963944868534104146971307824496314516208155110926812983229199445065770267952800007147387203999132202633893322773423232165676021323676954776016039126943066495501124312758204132120660974525185214448377524651604757767133119962228496901516452062535014783270286073387018223128824786913690440844732983728314937064218473949479778038329089731546917119843867146791574841695891224228940831491947415753301597107813085728465540806799821981544512301349551001994166171872820677465469496642965404699253069127772912633054705384128150889678546568795429723867931354173312276510094047106684801914865238078087861607107929642250703566892898627089801985676677355914949751604527150457327974151058088182564766187691136381479872559300447960834815733812012391497249655947013122922444137713540509154097880997860183807822691847852124141068572147698507392862838590444921427978855533547135114938087479019556728916297256674261437759870683533262545150276661046929296049282088134910235590858334795481554447254447369430225041148899139222155821773655142237452052539923205846694151411018102345725965308490060778350212959868375428577922592412640339866193259748630372499991420686020599444276621220386249377645120440327943148998515332160667151041126355391029888920347418634087282352361121348866620272546470038850159915734846835531635786086695825765181125264235486699010341683714007353599132906740739590948819955687735678543589355277385029799186871815703572362399371397485910250804105765929126526981710494209006238870431845309041762969396675461160672565821401771016589066186275755263231586919514163720342860690621373150774482237949313091419997539952122967966274863163502338778833534084595924452909293976680952557714424202841379194184759312397181782848015499274336565190507271623501054856779211617662124642264543847381086409692553309442156433828611839665208939110602181283049345564682854455247372129647831634208643030492946700338714876747767336303741330787044668500014824993507549679933080870029782369666513397841451851094216104487350312266560780300938246918529876550310563609634813876004623950769010060631808321107318691562084756007917383135085271161000661809208664541925220742866086229633148557150441316710672419047405807917063225502610009385583457352901242517329205176403605713881607608024393587842741531949895418588945674851314286269494499475263282020126634332167972534045697144494967172431837774449109885775806683061270334630735515178828852794003253306484332995709306866426378043120922678243269635453548259205846663744199451084242988614614275170921446628779664195865236037481377452814375202143027144370668003579432328173486127866928944606010003775927828241982555556331113339165744826140372818247264256914307186550251963932288105863267918096472572017331668923929153493827002833198396792404516731269812282727994706811109308338450432344672184782440381991465135359258999003497231507513547438255105240939453127882544208762110785748288545608022244231474886013148223789342711377351326425843757958911623384382594816330138830784648921090150663134704055538109359059131734237134870855735088828373324496576224435470787885797285435644200879079452730912251360881476920277159166689850044119122680693635384309099273773493185502031377754400050942892502897004007820984686940053354460937693159210561446764836717382779178747219717094513838205885960970740156091183299889688695834047711596732658466854726641950886175830636266986361410109783680973911565650425460910708424504210708901231900901030487982889891427036941882793496787382338688088759433673420890200125644318428926531232089353846808834737086712826410179041878488863169731453729913496020217443403018390929556290248589837976627132498526628666479300837707923069042068246024634416669874495423795034357234535828368674927212690848062329034651801358249519093804053631926809289673596610088614980930426572146840656997001999524653533084511608250645534091104066076006235448924230707131972927228070002774976781973230533956293722396312959602674433151422109095705521691485611263248266983007597211405414758212976714913993829447170685291739939317921253843624315495680680756931636358821006378064336895155246662362847116322057441689652685557989718282520387613806985632056175288486776007038720260329739736431333303523293661462518865150492967854408080568984974578953499181898031364432154803676412382980531150256046342129271816635564889680039694957581906863228791887422606660857240046381743883534836416085071825180187447036262042414818594285019108842200686225575353670322064528088251007277786800168956311073110117024874420712094154182670767003139933621776306501347651696876203388467857484252438055614090175471736462124480263254609090491883918337139164607307354374237619083136133161820581566399639220365322922846636665489960279658830278021791963864967701694630250961218641902610381424856991305099371370720005036515406357531918887073229742612851610929441705315748053058546523400045698611570333844699694835458847881270144614088364322322051539557308681067262249160947318520497376831751626450020692130276384578039437921445785044264887978036413277985436055385792170403979025684653322639058669864074277411655964208176469450488481362417593896946373280069137939313742739548010997230578504175596962408443624151888373173232350664711303246291683861114943615795408880320083999804168673270874133163025247090204525918553349974860705217679445852192543385610922848237776399754149575599649796826064544070113784270896587191250609632405110100643542201607539559149660223349586916472579633171995738619216802341369201208485429413070859124492720539035760491854989304839182685591816282153262417768756221270158592138972394500599420305383325247457230226035348629627397907901407189855709422708104408895368101773654073206483235918636261523718357088288199547099212186027609262931739468790885219621628406471401123815493499721242072774927640728326678668279023447634824292627140301007168124489915955726113724394929316924234369674475065058696270735576653490664633179227078258516083815895982007101788978863503424598813431222924562744605503854764657494500330882069366323282668160582769220794676975710632861202670370562827519463051355266583773656678738883556910949218947535767293556029670269848976999356635365627261343263127562142545797905726633331289110874774515959080332179608571864245664055169757867888313144558303086672892824785621854173506068227878725160141446740640066167439092184372411682562480768801452100263175782986776170518190565084763099277951603596826479090579264230597148808166289256574270312093009361266506365486272447255927486017120571445171225414171432503523046236824220521048116875586819107310308227138015382788613674975721397983237325694666837548954599875474619149563794037332900362285590532660815616326262432224189484196934222150379859912043992099416663846196630078661155277120274811597598953777811417225784589693961097858732223541069860823945770775796704218126242376583996143414492799990456195236019416595100095856564412006421938663619869313745011432025465481718368393331766199947417293498606860366438818875370753652348136917523029076075617124271042875206329435001212932719059741087082161453811738410951312555084830161917560058983199334982102541283811314187572597153662507775728198154417656293715119397511506840355291637574018318719989558163943959969352227114348540117277876686335699844153479747844141693505542452851898650197751168977264353162456452939329782642324565358913755568399061405264205463112049671982686978626949774070895455055322104505394743788632225561314608528308052400927185244095484517044789688192921975003910507210971890145495496060487470420094011286035032895941604487366256491308166757685301926579634505120392514529548806805868800727412396230261101552986524515470270147691530606147494165073753546271443829640907837018232230809878172549009001742866657327165408270195687439437482238779605733694177133764631890384841408612579670374080328146751507118322851751390341747107692926547200692448878784245847818216222549041992516202250550277323839104156187043688599596822403730790232442826021501142694161052803888479409819835050300301415653280011304142923002152241982596492674615849657944615718133182812788947984563705435059474406288310417645325190656821524157303725086118074267799123222858861901255856970164020176281715576676281078868370234976409418191382600353218641203099671206660962364361554417991866403282721188414197016946000482237100801441157269690604690896778051574964760979324419976340395400674461263054048129159806715473798827967706238383985790345364308882645144818634582788938917670934105657449861592738098584295740405616760284745806867844403614588984378190091803778214933108719137426349400123670144092572404007306472647500863375335415087025486913464685517684084201580647386237141054681154687729464350968991786910397458763784661300489584693290319253689788661660712320925726153115035625985948313823589778485208719996391354728759824430667463020623270368421127769607619049196089459277645081870958387946243226036351727914029085409575039330175196813659507769891336405737002081464160180922550204412862305838308033083783566701924288076603473739448541857112339074907195231006352054840769289120031668559639330288401636824539932639891443643223881617251151379329025020016273227943684611107665492394380817941615347344739378242746765500616966577647546324146093310622459909811709625254115471247147743230208953824653978866422556066456148651518217295711187446955153610154988807659971210219383993452898523051485410741580648728995573539294694072002315577467025977295178130329803410071482709275222535100580007068448833128303365625713569095925357872139566471181706091847599683416349524730929144457119128421844734623350216182113941266971250351587848879108566080998990378493479913229524278074580195750468741543557213144405947517638961072464577019393461694267482115084500570423605373096809473282553397535381191394885786944259503284009514173684934509106451945182981394183537803563789766595827961459587019739996457297080523632921937172589495438021019759430943760564810859096550075810080969188020576299951767397705255909677404846453498605163197933359352192710727216277838312284230430247094022593344554274615077572475927816591146666673853356214354022038687243328311048622496690195826581689655044270002468530478675210624701130174115588334183542016015418535810301088632766476366888011277100510413181260583499961554935412134745090914736439897135908942774934448820707552542129253506389894997262050495935060867594777730277500911527847064412143373196236746807746336710280983256890322674104876406070812326998730947936297811150464163321374954669422315730560008379700781784014940402651814946204899697270879489611010733529435498609547572762328501840154090693463089211859728703974024750070715922412465524097300852281587613496713112449086324914260782587514129852462946546771617539936468746517073399939793471627063640171016304177083304932648622480845912808442610683583294766739669331780529317991350651977301964330343874533743687304454788430807861514828337222987602828744036919967766250053320934308795716881016423093087525458841600495759805299079884151002357812470512391124923329807447385542324467929287274848900849310554379463613128329332384440693538760430856604694490470759318790491981497479934143829523414872016443165767315564835148711072764334158049789081008082804682153311504604281553200886660334643390941690861002432380031560735637559424899252225929540448597809659124592352273996396691084836453341121556494370580501229785284274719138281842071837089199483492029618430198200177399762375146587557111329761869593397030027639892270525329817577042763937504835559802792924633436174167305363666830507683715568678346831374332664683056237843279476579370888815543805743580006224551536895652088612188350711275739009071160707595538160138640189167844635560460858130769010940084757768560748221809212714642674191656973393406948365168227615831465986981706529764924849532454197831115525589177414219168752333937029736075742101417018425045073894804671525052334683971541059661811791202404319082477738805998336912201610646790509322672706876287458657221618219339515646169818633848571233541769901892408357886503724258654671271882551092539686473889172674164632235400243273687491031499162741693431144790739606472253726240625669322901170780189887728208314003296187127982435583900193192606071430589104141533170384845240549429515007758834031025125561206296984040967120813095610634055429703848785558096592598051653613382739673754560913073615192366324879807319188133459602071963888857914680689892409617218742287760914814874373971478642047256482743656741250859902348627238171065993827958894680158998109294658220656246241672798469937573096015087096991978856548075600347218023044097267643552832397329271995143030672641043223805355715947492047103655234518072141694585356678936082396208488361263209874409239736748288609793930261923239081729418449830018323445480596486914126537311592258577454623943915890260326896785360559622342242067245452442848341542466746924094393797309918591568463268030107974968835321123376054111591921500331597234669486948250734765549939328156826729860704992413892253408350699324137181392488230812495639604004193810502702035964247940924417431660628557487110496093890370451456864717089955347860056802151472737547064840635723850742276254510239037453062456640498739943620781950941981267369501959588419618067632014778915278747770903378485148843674493946828291318524926008765178378328322935996155869145776384580338394539366804505348570081291598443446960433220030998821174133029648582291503056251483768004491820010281112132672464372485609773814125614078528219448959262993174797005539913905700028007412847858915615125540996806405932586762986243190067346717326381569280381995473393084537521076886746294004285069190706203680223613051589977017973075322424739557324136068865935659493004589570600567983612635837225799087126991872198916620448717265364747484638191733020881145278270160012715835313670620428187586083928274683659372890445959083461400759468964708569367246978375017762067152995795183713843716711688956194784060005505115139992800183706916078613391718587346342393739675627941429025325463746244407560416124879132539844103978126843338574707897454050008303178966769061371136784465192018069242478221462233855301319250035143685931118442479269164197050784685999310917417521983647260333707662931939601261619848047098480838271860777935494227535322467065028342721781877694991414280070257932954665641380578985080806490202171017883510328629276541896005274578153414126532529186909250678468547969592345761829998390428831274616079013312979405538592745846604740197790975583116658968213168713059457810736898000325842590091312766632142654521160570622929471076168189995504678796082847368987937029707608090916107520950134243249692582483749354821011533978837153209936877490625100966067420989286215189024672261069279991507674516118033689856584306544635513046250880737465018449047104778390325907635035231322287568813646037127485386128627102013710868448251086198671626428298343694130331859707507111468088716404809110904715587601995775476840907271810795961111126484624156168536936187866196321477416621081740521321941392861166781003929023053031038040030098444818654647529363361358976102861005416884692619983197090571132886846760281310787517667222252951886305667419369261306946120233950997388309467862975372297900851537057314467890527144540588517749499538104042158617093608616838363615649584605091924060360714923993048091950657343921937423564153934459158577069705316491367080500437330824079597216765863761381704404535332170155936005653958997896637140977694615397113184136795195028019188015417939469600205364862895923837638024974198938945568690632360960270066019632739740099089834183196074673265475172034228519208697976793915483689055426593681393684284127631650010333118305424791474348613555714730910588999331154425060030321304464782774625913176743176984337186982236439276959502274042541089196849301834640873403681841218814338428130215083066912155667801568204202112672361272896439442500666253092059233456591263908684116208271784856226180191908991224033832902712164279121524682546602008816457750104209872169651671953499912560068929112890326627988561867720355956560758192902539945737632130422577140688055211657698898537592956357660083774707529075800874738432233689179340610681041075623122111466909913977107980271336650100265842544692856600039079885801414557668917593896482080502668841315285508022845729154800730160804608066787114347602546820529769057061604257930238032399016233143317925984183857133678706564229355395480807118344723919217573826776886346374594369826691497945753097851611590484297834636828997676431464765516961515822779502106804324945022568085009904241436838195227977129901958677100979682986022369321723404470596533026429229664698541739601253791565413775352484555098355680482466674128099588979333163274882986215382288242487984105475657623126659289361228882377410634274706123648196420522707824716215613608247473184683372571119160428064197178954065633679358879309143134143694335227470911736195722543148869645242592584104125246592187799125147495522819570074534848698339931102296643191461237289240452687342374097577532735513313388109770509266250007895921283685848806637369201853282855369598869360599541948018160797244518895132594313774617986522339586807882422873544815439366353458070847542762144496050262498220119348019687079720029500496781565677154462837686306102288106353742348779510952047159843752074802078121799004768057888090190531548835377011236872257602917084554424735728178676906051278926236201466880826669304199825711529113554426872086249721022591147302764528008262931391252064623813533141800814669250018942985416428840816308349070956817947029446564549335344904440666362683448914264552658084474343455729914484331390564550086918387401613546072070319435856364232198102721589157591500352875191181607934227088208749610068858106710967610558146783120710954019559058903014994795150650019908138372134333540482937113547144488450120545867252204319441935249171805143536364486724180991365357516874936272231192552295668712153161230909312651038573573631163788203460580817681200528297549322287644056810481186880897549137739474902229172740294479613135437062582807824590803734753196641413398220481222897417034513031203819380713351921900290359913831370430447731159258285052780366845133970799356901810599481560247438704816433136353383975721840772629083542152664665107699879703446565057959947082198164876129449490785853022292103590044548348304654655358266555949265009156134773727611739805679589729137202068870331507437268915739304866254361318838824024722880185316691814691524763786968880605800959508456608502596159112920266508639107512492946423570138125727376091770802311544414100069629417630179481181682710467107202881908562905376706678691466553848770440530946799218358846951730453122156745185809990893503742184012919195204771979731783066556902957451075561008279800062688090173277488066241716799195706294650576413320902267496424502278865047475850353967672957455987277678335791680825081992243144757163523084121915032793573909017302899068540826503194875075920854969632744967478159160984739960238459223115940908195324981826885105061500722318163432442019406692604848937741897476900742179820785574394508195857824844048835550100638837308334999762384416671573064014624022727015285673950024281887373860929221033078449941770350182921680463818697728310585156076645601638641062268593477440538849042475134397381420641215077075094170120783218220476410213705046589966050268845420921824231767821442603162754069109673254815620707835099761003925783157365267436566218912587589950246324678160854136533369306184538775587655254866854218135004596920875496923805399688096609474742615250263354596217292076841760057223551929980104547976629911054906382540341539044566787856880389409938711219616507839022367922594328420290494735368147935792462684886796228691911317257562158402250756218321822533707206657257261665667459233792986320407948696994636198127061306558668130975001926879241942116596617532630353188748785955156982151544751098856747904697338396653546923669771553407174103441289532963126809097782663513158123645055877830872914916541220205618028912923252896723512537076769806479835083960893454337490112418676595068919257792950558836229841955786534599404442007197805232291661993179125978742681051180141939483722000807042730731086379752067352722418989853878221031868127455954291879337591762566904741609799514123814488616091639884820005336328594949480258325164223905218202909725796567259666801458154937117199649194603877516005690035155792978307631346854497067136186951489974752004814996865297357585688668881575791994108965492531086373071500866274595938509899079073621421250780368722028570284975057972240851650647048213320873784728148350658323903706925996403566592894923235853913902199858154358681252077691882051555063727828229260922209270614424847428713458817455882360847478555281590325220011462093275731081574852444246136655389098593410310993766587241627626994661475690748659801366750123509250744163842983167426228572723078028562109865354927882838068004201145121331116410843039669449178492087118909481969544983568783509582360295993143116390073953813931351487951131295170529747654426677625803676610317838707226664535865673129359353291666223900199317926324780665193506693586880079440911802272995155238539078618568276196505116530037979834347348541039980141054663951083065458926812329403828677674707024667979341011324838571493754778452685727477345373027400405813200752003218424851241966439346246333198100798373427822377211129394517529539531512643722627532739633263778439491299104262958433935289330607587363964657670621348326813339737263897503191492147119682501303715711577402002518100618226623910847080788708385189589982464231749135743048788524151503656724127465833722669664265866167276186940606437020482485025095168187143484351335050156955939108274774525852936018070798772782875628074137256248887973797815859700019636936918632628935090084723054129417899377618549165649189276871648116871900415032604299415982149599626740416149792556582168042220529019261034253787548856672045723901098647158441567608644468582034655746145714755510096623613534645610994060643638594127277288410867127587564017145744922620284905962360652498170203376898954269711659363183489210010824978028154161788388063472021223749038420405514922677756718053712728066215432429604221684680655174325060143819741361659341742262634756184555340683399304593911814408257648527244721967446459570941568578656762941561889804659382889138448340213570273628033910362954201955738378696191681514557049887718873373674078163569749224784330951393729901411538388998072038927447227734907236900151321425265825139951356972275108514849765290109294471449606773573954671166933068695651427654890145032958121383361253746526417155667171001498994983850987324561698724072457878095884070328126610350983907834180383854610168938984432209176110900735071287913496557962802790051497400886055091392960321292773925031369477699076742483019676659105833530059158019764804601608335567836967592838213232080132069592504489342992169893482223003082004899941544739016882458509796223935926410582627603863622487807217462607485373816079462613269483585367618841259486057272523432925753279053286763129533595249281197216246365334872480419729789257877337576362927797032787179945831931200127754272356800931688152452150004590206255525149112822737992059480775051436634114670855403475539775353073421046940029873429535570250723273990259170610855993369051153448395255771954590214461880419133606795185964027144105500951105471906155111949458965907778139493945270358454250007294030743835573290731013087652208997735056606420146733722218190243370095219934067159107990041476849724794504162482989139836945272468164484053357223068564905441834523721503044084422067264746369377152455353582676768645744181918067422505978008598044835443508952430522474265211275863114456894917636352480200658377193496583819345090131850406930674662995162766119686677311764927969482776677633783180533071459172859022604240439099466257382775638332597408120374609437939038663458883706023439553424058148124548996267708075257794166880529468115312688821494421566294449433825525020304585850144586495617766094005003518216497462638006953861589223193241173643613372562191981102348136235313608590942842076560522382441777970093229663403621117488463269264662656133091067717188155190108172188889247323033737415859264052568482310838929159109723761401139668024163575461926020279631113000935237537177529812876951784805924703741288904890619492857284008418168357547706316027768133978561717404489147443828295076495268961656128681041542634859402596697639631622612744893452589518650113080865047505941597076610213211878266325519147655230942990403517396710976551778090143808950650718441811899126433733025558355913222319918647661152986001518719500331206047849766230155615702829410144114992307753822460502326362575394356940653991044585945705460718582308469801361285851779287846507984723980683651037537159631071577670592252906946506608798368695895223198936026171227522394150389865390436495695098210262826998610063712029072412158292487479524138615575755061792493940024283358631884290081814304683806828112511384119672638581977915044956920889186877393358987800890215707289184561635809204478613366206552999747603438329745081209601733312313644718457177747993296600556964931622648674853234668596690594571935430402130423155782621218636574291639028672857985313709365758004783711113151764981178879690262969672393725875088270549180910241415072286669345604425509817419335977839064395682000670356728344587399632673499914282471021996897359321329394628333185730331248688648671731121230497292672853458052115419601698204854828207425986043512012769307387420978615117680923862668963262234579076248601061186828179045259972329011712376768858485986547525523003378165321233826194997104969620309080947716506804247267569317573041458329506261011389404390521610048844177580070105777672228465284953177296130510566734543619637611155187928593338876402428164019594704891687116779696521754034467527105732642534269733718204947571964280584609495602563853510736631827679635302966417354958261388779552011518948556532556255741876901094407416195473243503017466655509746368208215097584700504782360671562504997920905488871996236498708065151915830768793573920822459515888413460086955665482846253389900541605963359316867204357007234841908724779829549054973491502498396978400546073455364430842612921134532057984003732282882637066550734699795554961033220015395714984038368698964712908677562463585824173812320490906004127528149244882944627684148890925463729265077530705819254193368007732951799626896792316477758531318089339025613904532130179216763363003738782328453339303837918331690824140570665179111870109992789255111573239064523224203952232364927029375179352592955625542435668499121349818968511739584051171670174007991072821295212045242208365013622921620873721074705719662748342377987361622210143655433543066882791233505131969869611889658284270105546051391473510899306169297907017435425837468688648902812741102587142682813520166743521191647501387299528950339393285474373519916316872416344363678777843610447353116245914733323815593505462528802018340910574118219324905826566097297421630522010941813598567649376151365142603730394314919174016225335303398147382651112111163968780918621518989615129891486005397570449832890262403020260947106762795801055713677748096705492463706946365921446706096912789257244827344123646827903604241307523231412872053343097635130894483040822081188344700952588384363293201749364150009453813785465076848800164006471063662015310978555981318983530037334862650588467015672009726467903197776172549916093323708568066608518861960020711592448457730330114844926468482054616620064751985057350138402181442864946307440747484520289909365156259392287805117564299174084966755846021286000907145062659775087928316330048762954317681773797698686071864686238698357438290317247426933276770142945480967208964724500051828555753387041508913620813172795198208825470867221382684538610989473682196627442637965343235102174804729747303956384543157743740002201960886323152421321400766560486513431632731800747004659039113087252051012753544531114836996181402083637127949371937068204822381523964249718114797575871584198513293818263534960492118400386837482120261174112467259216708191429626050206892065109300567922961912202709402385628538814850518360117285539181353801097708284165608294554360415467638001502002081883208095047021504056888993277302199325692124779520657623183088133455907661392911925139750864699276112301961708593826344620546157858962350309029301402632239651219776153065485981640118638483346536652231279139273427187581223636957146338166459525174876683963567807221176597326757925670274019308938679296706870195020087031191523575720395198145962289997691591565809179773688561938536945601387340831096743478465985880533045697373031073729736882809494484401031773534010723518089309484059645430039215322151272170593865161017327202257597873580039502968525814701079594820743798886385175658003625426121182038330465673801361070486233035196237085333982599328350028472467570481640715591904924687406996170170156532080373808264326611523691624723766801168476328774057359356645099403640947140894715430853987439931711439690598357741142926622614447944592099709987453581830772968578575849747843413740830209154144828393008105327531724538660388802627008061394231330283812794044760861706625627363227542390774888178646982252694449505937637893663247955147364096721176820567332520786081046843473378263488130615657898528396874993391282322164980331766316222419695109566795945050803210840326230450371875116786899907587219614184055712829659304687602322026830406393911232596038200913261488345756320916964177625623870804314832238075451287932766826525473081270737068745581986093608678673086870992372961207471958101039264318454173834693169841449951970510029160801467384829141299439637777289419883608418775285573797130305068813478708111858070519479489706870487035485467339622166751796115631469183450115484295809252484350307032156463960668445042645107851932433617420968063963203991929646447369765190806492698955367900311272267494810743497997747817659575390827397532409059308101352148352415832958726802532613372427387671615787697186196011317797480660922047740056181190071166228023353753487817503560308200985664027728900003698701257411742224022655339539743215637501457819147992014840879185488901489236613637563810413119732802610219452997845132401422786909948886356375096747975048099356518057898036298203013832745725583156509306370619193449087046935045482059521861057154888974536470875003169366265791036016818971259717760333645589878575860782018967882840841225812197452998756626716191608483238319558313570070304285136006571665145076772859146561096670806043948475390605773727034347367469516496530689258811422856532042568286800419206199293715314889714944001713668161125010939731323699622079485298239374502543320662911335335451036365910396675377584562575084398995227674939731615755761617298012400236148439364659942325625877773178766564389469137954734762524643168613400559752495910721407864140811702787998800589579736307021931960888397135379827839835878465969726756278499322513053775108415765858617953965529528128709382990768898586996027800352544967692376272968171671351611998552666309210443939702188311951348819512711164907643425590897879486401618065824530829768961217395989309094463895675917000076113604620912040529423359307347268624982045394941613580394420209498488175275347813291040920832405991669380955502734109281684120785153306417104321285450749730070339873214598763011803961178152226222891270369561820043683724991315142847747016529488970213963182382708855786976921680170513408663238032278545760117198215244976751762685608036554357627708263108030931024951533074550539337230614565433348480289291384243919077970718794069466483805703164531052835193594039019425366087777172416222381439064086837235467752719607684637644874182399913669388524213146163685543145929806002580093413156847016855987354515479013877847014804867540065549523819817099970128124819451439492714413946857073217987554080735426530034011732729689618409429730127200206470471196854910320657958502494927307659689930498020692863681317090254862874514514428798283553220158666460578608177268723952071544855944443643249971304219673127449865826273088288369263169534690049559023663442417112353807721926276738537041302417679253372299824402012479933679125027905759065553178155833004621217244552818396363531419156157338849688212684659960175290139591591091034489221814856608611777566165504395777110626490062710619507429387905182235651580242010197467406905099679501074014437153307756424820964034782326454090468297371904350487543311664644214744055949078310763428164680938317634896175959444734652452174209973375163735476427575076596078891230416599055610489503330554245767748528061938736834586345951481109517127918104349459922707464748700728772722959286286879611109378725013727838532515375648663716576533978362854231432733618727894709967135449678830812646637203517783824134983106223046603503984666613598492120886540485610750170335818850312216876153660379236540460009890859656153505032737284821720629996894385954595964295240519699937040157358433404213904992778518420165555338906787421321356044552333433058286776202654308923989110806731741304985196823883249431354120389001329770833257788530650882601912579616777922276098313656172538512507502022012659654050058845432267761100574912208656045255911715770935283496223674873794887797255908460685258276079906631066445597642952678547017373017152597618470849940492615473705881111017131654830499704063912803887185244653559078356201094221087286968127765104459463394318029237748232549366064863913167699082330267811424742986890800950002182317655962478788893424093240575655737328308124893433758603715062440485797831121427582384835877638521890182967833801716812324188774445236607085383751643169452445240030218948712689083774544968260177150822093959911782309873677550065182919680581651685632434352248450892900830206546742904881487605442032769182519345412426730257732515960095138701145649384058505120761405871183777147199064613971453999839513561416941011930215367291229841012860253250184437597787012809949382695015678164795515206584050325635161172700506343508414685777659600746673607987387781636146565677230476211672851716604525931985018063334266986067239974799496249638810131540945015233004935123338112561297661053277662709111025645909794288019932073938823219025650255884296041851849647381451287681185778462207239109470194088414249756227946488481415606323309405328385494948146435334262003112293334062653885115350309216669296289855742803487233980389052248719438050576751507700895262177145245471382763127541720705587616044095385868973199537306188956787009472514119503909586819804786741831905170985932717172732257757555874674496494714627554582809230134979740274644336729800776223204289984343026213298534120256169438243246527016621689097539103249169102558956411147092313392222718437698807296722571805373931730123344760352987999872445696229745293097477260781164417040239931301327041166594386529716220665545413716827592804347082102849991874918110358185800801311532329669705553702469520635379873587851504067815133339492782186146500469881920990532625600586870785511560074982915372044973806882520887557924737768934330402322791755836761054778871042949476885823537413303190145947470420838825346892705893242167224796588139926802018238377961620671260141515901214780848859860477989780423254519020481631004449512383139734203969768018752108928777279226821347153194854904311611232312888661801799953908837853223720075620753132531555960606083397860590764540433508291239120084713075449023691785946469043978272802316896329471662443027391705772270245571279506744308004848989298512646041625435937159291522237246745092693341370204579088784696891077498592770689538783394718682840331512803209114490127281211440307413952315745103991172003968337666087079795540186079064588858905093753519400006098493790275090408511851888395632375837532794781853266505727479044846095607128017091630202233648866614884825008084587421870103297386689862528587112999517436106096159580104774756664031273821039177190878750268329289329668179109214110877584179138263193679331086426702354810652216076729307434661488090068324147255503583512187247548955266059592345197117040898191021177063044257095704768778252561244251779329169251408760824404670036280515155202589131851628133424460529156855062401437311807556908263374237241948159945996836995247136489938442116004589633048210573851611835049875585141176174587698999907332884643394384952677667250235802712978865477486667706826548624656702397578688383563938377920345026713440987582600460941232407070534823805879706853390547442414863346190517309819224617733556297357385739627742927369560310526604808639337728715456542330886574344362324835809647233999204729091165091045299272240890831709396648978683537026214201186303242981952327775163312384602056838326897886450879228976879089101623380654368200215297635602439620095907782128209804425087023224191568633210136313364664972354088095413808223587131322425192990458447522260279983132455515412515235067782040176853734196240861421480713445239377941426270293745860112048075752579034626711916191680169505952716846195812386945339758077273022645882424309299618903029674468736072324227109599074282063128834169237141102395578960447544896892448415284956405850127736657460523253676693067580212718314455675367508361829319145504376378896234042684149070496840699918025924130550569110298349298348240519855695911092026987693576762426640199181880082350696909277344068826533618994996593882245846391981021677080085381314528898665126724103130066143612979493289130674602614166213173160219579946572121357404632267593030873117926790369336611532396446914202836028839228335350580861465890453989995329280216613565329942833813988048423836363913033118235805289863427519463996260604725823881547923231351537530711483333155211816834554578511981061409845303129749924191063822623136758042897928550066295192570513231640241542649351136441931035665052427366181779402113289047042767007575554966807024872993253552494166024125870450363053625114916752039645931704274303424782303271435611260698687916481733919905976143773708433561145086188942858739245488822847839432640995387644675232693156558501506700373224415068831278107080641766359558851569115889010305109065307208750803570752815698052651467316010297481196641007943741930581218885549083724358235901814727336101875816921033229111620686872109341457988679662469302050198074634676557045103877266872110146661508500572326499432337961104831761419575581724779857779626901301049908489693165257083179629208157524894838665753910199321487136147920038707480999721678987911030970935376482298971017497771294202307611732367858885108142725804018000547699706384580987610343501250531958202124143471189328586532795060068043820334267463673923609214063316223284176384010822881489833529181771879886290902784490256772690199977848434595587269086078529397891292529135165553982935615199731659091289891361260187965447617856326308232226637634473517464654888934368190971112002949959218980800610056550484514649405831511744147960873241846422877449879382159187050227373250474396143362287234898695322618437614081868520635318186406185702851568185684210939344699366811529321762030421889486348717127682694387181322815828171953057962127256008405716194348569105275340212190020150113712048132256850945550292808211479833464324898549074434036093676434855177029065469264228735854819651176102409604113135272492524785207451540836128506677124886470444021277418434278493514504069333917902582708174074615012955155305465203056638727899674434788203263100882581820808835750315295709301575395666359983571308774093192682194004744736604200455274588239553353498783086441903787049383150827530382627800380915783915822884139529205740151604383462577187181489370690630973054415645823297835695730102024661784915915961572062630441125702217661611058433158129338508726289952213379734149364629981329532015344939628580570161237312074656631359751644371214281654518215463069622741340038541457179108980573851543710501143113839275071401648495475798538491751121605319196901648684855171936689901562375772623179701939461173177275985513222935840681309925274043769794677317717853763398543299080797250228380743131212936686608954384074598699674326531549098394724966593727141193313792488088604694013526934405710609201703745380569879176659422126074852620908253175703199085879724601613278026477253166006771296923457970786120421163811352450808400669822770852822390116129689068365277341301523783107478124263885199189015340925321214046318597453944818754031348308755607636834191198489501315736771344884982167349217634782861971193178047450983183877957345180672348066158612070577523110380254137013922070773155251180757072366985821956860350906909251795381111986220201517481508644363657151838935392067274705021660571350448729464135319734788458649775017829200523795769086365887095521368496792373606495118226980439448542158223306627028308552808031258177524453890754290699140373053714668229550759171131192655361731144198636112844835949531405980948967473157148513035501434996490381817083646273980424726137529855168643204168510621398863923078314508386529258694327425121455984666373947757740485905873854880969649151133098634428596179846402864065939569460509297135431622539532434547136534909264401151943365752358338377559889932432303887851574061497536449211501979206897243786124643447464552044834774980084159186826897655185302743752402440541807160307965704986803736864788129362108359730354332260353558993324441254915821269852786970620086877179560413757616061879494407003796817405918437144526305402596673953653873553032244345289070684585460542927384192296109252576304967385403412134315087073579942576867540608989215109349675228387053896681519996104259487072956335703954967539584891600864576590125747244687824856910717591597727033343453712138353726509668101527887419507691233912465897126352772269951179789831572080734890566857020504236986067155795696895937094086435955293908113211175427591050174207561152227386501427169917523379294366748849094371681661617262870843796930546420280951906071836210529151884843143825569417192048231087172937207066190045643531610251693722560243782515541875911434080814666655047070906008458047368545424988575366686555450648379244370813602004153064030233899357210750216748928730879449403725505918422558162184586653187094158492661006270976884545415476385435772798926286722984718964167567638079013317904796540902452755649818343787382584080765468135867242808195624570609435550590614597462353786412874744309757921085511563667119183053544507531950449234537468578734173334376441253644965605788146072548715853025185400516896127785675801661311150790202147618801049701048424746767638247958987704956037785255129205725226902778096618577798199304010110134905066615995941362407526707460763125882732170889748851786106750121946383108989952399497511984730132647718595608893127601455917447514150680512285480485187061703948922387212469750506772703204190688511700601366350366741140313426083758241758455129281206673388487534938272934499799070615332649145453121006733238966324802755552823795095181055342531933370853408098139748998499101445634425274416086192707022381590039800551979559173291035357884349463091965413337496163424541211977148244031072351425431342130354333638492771423777686254779033382606684449189332280719695474347890043795623224914424481448629573488751899697830454046506727041591651219525919711511282418726619012052252115752404242131330739885064312293262052579954837892012708985332125391573311235043543710987829438403341555510568321596909135505446576084990893822829265845805367204560910176133740761453913983066283744918622452660389615192841123232448240545542035631567333749568320134517415989875094860968192892391305661691016842639179572704322286042909682970177226234246686641536758713289049649486014318208468327555971277025645036960256440671532813953479087767962623209291862990342505054495977542187293075399445199311816116911896962813015050569344625219570237368952668083021986907885093537997373219917692541366717904605800867282481192183579587507791548306547781261465144831972078714856905801894562814518146628653706686802424745466414622714462777455559073900453678933607132621284744151352888329509395700392440551866616305122831549954529772034286143634478568112333021009972407150514446545044654738551003220366432000761045777362607126698328017201213247986476821988803486505598708975107338101058574958610282696919323873660913799738152563456408913981106343105622699880882399376984078931087820539852083315177737929782109263351102498133262510633777660158268725986366228128015313282485425136624892994398718368331255409972370363178812727567343173055780985922194031202700460283497442301485892598916337815976931609546703471213522739339987761596495478699426650142576625194949651788383726177135494512523800066270217970500260070190153191793028082841014582180780957288653521645694751216387398341559554775169647846413928969543574458429360523577048102001676058286343939906882700587032705475107576649922020669913980631617155340471136630408372148019502017056174177710955612361817340645159334249874839339540006802887816211233399747083717059475915469017218908739941101417097426085846594607446223875941373052188037020764610794007367899447385150404700955758192493550079305013858346758045617834921349305646280376993133574299299588877683017941617572662282702391618367862138542947957517293461444299521975104415729502909733937331888845886175520452204231417902842138451948183775851019409113180406517821839395004456223419016081323500909605036500282488336373544192784259167610111199233376400556185872927601052413636641878915454136990327283531245237764922486531702856872786034956786239337714406956729480241009471885425221253606145577320345441517198918542147956430950002883420845521208184501298686539097367647881995127419729874169512524859384026704243940387487412131508414411223559609601911020523839589154348134454694107029842101838234559851695281025648662258470339331945092029239562069246327505181137334734231768950411372620576900776024617942929927386761217989696109993677864079616349515956884125802414876146104473896711851255603597653794896567158603926545061287634256331410996337401380017136903136748104471309363693630713170318071446471552809228853369698441508779817799561138210889782621847985811562768430284391599592012083113193973247698206833392428838295215162801253962466929194970429735210698322525001254218870018751525529113476786749935001892192735723944706257587635348140682717492022645399532716650194325709217644848956950921215222007553002343893810928924055705317239318591763812034957451763634905567152102060380462945747092855337112669438739773302398784469360517111306071315016199457702220520027336932386207776412646031507420100017190710965444391941727576865278952891581787521132459534113652286802950291152511163042703963704735697347418059470960773673057712260361885432743902364828474394774571929697456014291553818359671153335068634574279882286485551247948877972871981591133811543944080903864469500429593793281774898123851747916478443914260656312061052914154195016850443421567737936252975642613980733970536453549661315846941533886595310987363482433545177240282039381357186929447314119185335289720008443436068510271267565540434447737517680584430456325886897921084863080391717514518637716420943980797293443374991284539037071218788991030658269343538611659335423328251883152109396478442767940468652057615222651713482510181665835678150920810782351502232000322220271166416662208173064673223257370335070074419866241814848605266034282144071320858983062788546319084382021627819063696403837058875570250259856892594387869165115978087527617988794725953645184599525662574254127708443459505315655826649284575352896590755300796305017698106913030667811177149445761775319162810000712268888738158174935602498101593104738218851043444161370912534456296922148086914678713999326784629803870487072986982820365819720783289348731113829874203937841198092874452067114222447439474057428058591113533737942542105066373725312997484863112222985068039249474814911394074327491638962014413818466151409453026243507457884992057835032722337277440031679401117674220381428281043787574594207688684382293338780219611759549211705778888942339743596913809199415982596660847773405192096193415685356116380113541675244762009404785111803642666762362881559577620483818077146854555660932118931076853210589191540180088625670308373860133169506218454458676829402582188510374704676945886791613553461955480029049270919577271543691171701745475148052323347547488066806171299645171589386168779882917264473114971000495258478893488368325894738484294352935440580756380479404232559113961522974098259555794465045284753177266608396459132443896289912771992407627801604624172632990265568737915936228322483259581706477965188457301803717107135410539185330073208978188862817855060679919698115314471144771834302066975781379413010320193069159111649687177287288415858179112418234863654720111918081028708916174537741834315517968916722905605656455393332700006298331036878194208012886554997663670728081852348785429602817680965253594289401095608671282549542345732809922278360115170494089720405470136038998145204879554406279365201777288435249644499264807066841122256812129449598501897262792475375410978050394590041819528775777416919927531517159114916213176714989498459761348481285548302091968060485683794104201104398540178360159804782113879221453975387165784280159933260069478192256402520961627821660915811141920482656389553612695749690856806869660215757117020539313824733791253095507865655424936033935077221342570628524440651071390160945231117645592778493812360833945695440694118805659040526948920209918321838470636435966143696106998829036196742987750700367600170956233642856245089124798352834724589982614806741371309545965652576586412437119247793153631291884691547811260957960018089436664969248236803904750957889449907255905454966595703647229974356375520850641660050424781854998036838691084272184207777228099583324238564447719452706652775406243380942410477617200402175933935785898707442721705614698571912414832284588751979695805633282516312105518130207452780872274605302745889610291882351790464064190705928247527150458646360012637015345409141104533506434686563842825866193741868103876959228447092093029284687594026495689234693501400443635234681957279025044321972472351104068126906134222697817741060525079932193369064306423432542279964896177204623289312889654640006182750343970550338764921541143115174329063016220921398556093031090744991151766343611559813916136936350537405904925447617117616495285779484983306166922143897824481906015116146015813975451423934539618729263986794221779368118759472977807730357103779635415215630267523353322680013174730290366211209789419242565756414595115758314011887440434755330099319122610446837874616109903067661792398367816879254233905707623747326151288639714374052292752616522467836292231715132679577259240242592147423197882073051252964140968197900197530319637248064709807870363357982921949048599608862909323587869444727239390704647141102730181457811442440936771005719437060952433927196032845982488082420515196979954176018209842154722455266926750339427283253786765002585497546337599069744016804289604903069372525752810974766558838115276437728941241986733652990605320335273638006371256795500697172841712769031837497883488199580189663353912982104859309470922285005036873762068742190357730189610106569884763564322465829642830763589605194837729266938917771688427698804248751673337467150955434543380073104629826311332965674952426572037670243657010563450424443068245707566985377809932849098515284000462413890522978233935222492124477306480515101472628674406635688057280098183406096368252504550748922237683328199124363562507803719931329461015334717376777954777332718783312917871032871036696564733951919993407623768573556672854726581523937026364293838618712505521816780041886939838665436674252692876221657684336652218729344421202945295927418700846380872726976719481172080984090582781273927251536019837915182603725484323870960218125621351810986216430568280232741467972874014078675902490351821446491791121325658393165376001043490553485306111021490157789981155655053519945906186873253214127237912672899997029854442043932446178839169811226031391638377995433456646454496355613984156307712779003007060698171322894841838548213344486557755133913902201154040202784016182190823442993254488580169797329266443957508078928559458367220209724702509346569240833218953120975220736021254416676729061956511683130452942707240283195964798626372997459966633165571794053084045591341066820817546298166378638146433494669428804140418176544789165801340295167515952706933872027709720672064421805514472107199864311769920977344239601185945439541381522654340233071910285171778501255153195314385178672633280695387680287554054181367037998549669547615469434704579414909397046407706263578879152391928809904381083482500587734750899091771086519997247544760729366643921098502132983734254262990109833379204371762295169128060233752691617507795687713763505703729532099961778978396276383429423056320170679311129524621728809776395594383828830665509952714157011291683212360629044161126955240518563984762873430423057763722649716250355918593280919871477288916547923488199867342835848803929102274535151873700386074328745628860855106838078515538575347817244356839106916663002292056384835335527899163506914991121799130061523443672169486643409420571527660959844377387815012806240490609081196737721641961764728193103756956153956625002713228268281864986270012108760765153781536377620914819626482614931411113264640010136809307974978774946894791039274156666695132218179208577755998346912768671787674434512713041538988363796286289981673707860876854711330854802126854387982641551237923306913912448907530360447958377315279008485871120376098102105094918390582295771418741279918964937889918479261592064204547973473124681478116017415872707504377103228061740092027181013904086408672375115127790340930903757811898030713485161875251983064174693017291351797940327610720359154554549865599823551802057044002189115958964583507990613481749449778028966245033662481665641612773106062049574605427640237154638109404547885512398055835977351765738561466898128933800348928130534652378316297448119026986209546644641648129349688635584212171328663922099321585484485639091878107810401361020353556116286945400808830113628095339630141091466333749816382022622241833647909208237044252120543424715653736114729450712053448659895915090779542599265393792287549084116589486599586212666652429481197108685129725517114825193742707270519840864979443691029630833182130202371771041403574972689086108167033512047096287366640739836080485885283501157139316541756429176458312153645749645523243972785105717953473602669403508020387232753439977707269184123918927048337886876679415912275269246253744883076114438562122441111838028506462993922882911940293026132378177361056823386322800343727226118908047667666954425351798036536148564154608936508567718210953369887620658045712552780103158257152666942156284783706124398239820862397103647912178989091134785167315469402184501005465092508621792338967745277862913092196051895129426924117042629473785344456107071253885137670034285375879822514565966967898512597687696116094620483389977687029407802654306027427527553274454195663346963426402877378972534341993490891289941639529506497177773702842214136424114596884201812335118647494472115924541231832039101383397986129946304694180669206250240327231820749662738978999568183433096819293295343662008796675580963855071712843417575839985380830734063507006598241092078743022311005658504595559894846303840134524436366544174203372155818525993407376231367434032363359124790781844833859569764640979556251146202948435599720765972143899088566065843501203118895568806122059699419125995595029858410056519541469559811146350595277068259945275529960436397478062283104018626279695027550433497412277479379248848763673918833353593914032740203202703492596996944747769800620668675416309336315387727383773159973872577572552924777352100916699562892724773758302970334072720367391314661398955179002145652205247662030060568992922399463102810366220257536922106419804536279007092787915064968953774404528156002076285810780999473826112048925947804295002913311610817505555807802103341565475840268333704429856172469668098010206810498742130839340536338635859994297921622540834373587969791321192987282740429028279833990364945504950668449807694106886333012209932428840435038332178081508814707350121943450568386934195284221826257543891905986770957960878140074023961355584884467721701013530224348916975440770187506204288983377602872897995937706803626081563231936423631242552539275189567721619442171914870943131367123539894892522477729280503410307768449748748447064584009808718766586329188469362075867241943666726441436385151626228971157908313531702405986577790238936925918590767043163357375763099040802351400362558263339914718116300686582509119947213744920450419967056889209844606915686318240499352202708521028612331018267512592286623769699196514973757913227382623776216811874893950618155786630745831037988610512293842497390237736389751449262537465650046946676843621805907161340894835489985373494491399126840578139293319845363440946440817141707103231950640933435200068225934456441241958164166214813020065749189596347269749495595244551497144637362832289624456168584922941129469058627346024872354887738215863047496918971548765039036610062392268536770943656428115390914106580877974197822146692074401950578623498312455652716683007354062525395465226948368204249218772519641150904114042527902670941841225116772171974867941376509616949957376937033561451912335061710317657796277358529082577457506861820261669083696848232960525700060287338295860529436315612561157360621085042253297874345076155163429977176910521088093910032966374459857919577086354693145823692381968312830101386173676695190771234278123251242372149042773607473224698621125655549802038401676234234108007798432156006028907708903068872317534042938983036736669610420603867494444907003471995143390125052891665897574098277614538118264495138990557248735132365928137438035970758851314064341736411838635443317593844252194572691555035219914503894122453627733268447209207206728668102254326789258778051975273749955394178319395413053236080889080345641151529601819601471286563330091892856137074967758530067379210702307677404624126358577034832760574623109122212627277226042429587366061954711660303888176772942199626442043480022456051126279535112452025746964094301751844435291596504387466849547719852419489455862717850212246534154284236918635147197131224929360190783718572807344472210347925826349012816398624671899972226785945529140392993237458115624464839255934212117245007144501137552377202134757041330151967971899013402155303174616545042233436111329257091270932872333970916034771532805769658311700546693709555907442368760940820949719274660813254361251238954996688289720522071566839437791457886963855111343654036243810483740685863254116472165718941461337754815633378205082136817961091108194236921923198896865015191259478122447199366226216175758371660317546539371447672266100652182312726290440553284741222210202362749738932001814929197841225363271473202485234940730450835507068941913164732985378792844459175367476997274962444470782797909834705646345758629990800526762241965129262306340382715319128831339076470203627526685441210429274706147229742442632961860408566217000348290335087977878048610183501165915880411122223726137220822318439822890496919436889404650358699181090363893707835582299871595429315007733293143469509523703762923770590631797001490259714636360826406540531139703532016683021639955041584851865443743673009569630576541387610338427893401717687937043970540473882067858047657711985810680196968437298336146704174357372540247387417599235686319278493975796478920285603087769749429335309834983573309713115120957454593665259806341430229827735953805076989107343837346582686679175301226535709128335761975074068260706405638154361027119964096038407818358677925871223080504632049610220837976121443773154894342067521395373570009634209753167292477166753799203437516198891590533626598804752547540550624542668165680430353623837158339898145462485805209407527663313376468743522856173257818294540857400004557818298939068510532671426690210712347398147724096614739949904700209157439242868353343491999774859534781400132982229303810094737890744806541432106163805195372577382435550194039768201774301031317455343841870014889796519154302830371852785445420219194698649647545672293070251813097115071095770672544157904145196573730726284698424588517025346795744641720721522973493605249736738201363784492067495189945784609465152776946207332143260217660761684834925463352735630759731315647694172303242371990703130743438635295678503168371493506153060526017823985956341192220907381356002051944386949606001393455539434115699013805802667824345860788085385158996033969953346455355584944479588924198729720642263232482371492406552682869657796264984704716822090641319163205368401031174289934934007271246988496992276007679737969775750774330975901689449712653339459112627591541675237927154677418197537575895192035720702761807449192440547733519015299244129854940162027514915002626259305781591412719838637926794923158309260741832235226006657681967494375742782781298343659805868578396583464951824895429021480233267523132787764299108933789718745515778504279630700759865439639797816184296343498443117627501607596019680730376820300245627072083631453193481067515510924241117624127167323369901799138133610045227598632874956803465756291399347110095475652088034292169101511794600765132767007840599841260652637807026826908686104208205546785241177467085474951945972078027838161140073230164441176806829311526098371810661897558276529112930411176002232904684766631280508111084725124887818199889015638036401333572390231725452943586423935013774424330693983560508081700004868252401218101746925743307798485223046193353296683210914748961711054109371792794251764671854419802156205708755544549546612854694582015558451617832890554439604788827813875184866891808834160553639320290073779892353130841009328221206661185585734706613543683965657419313195679597848912868873668693748748666041801747970862331829839479134885255863062624058184189443997096747110066901723798081763370575492392178625367014653941419739124805472449941810074566959945973358459477597272188293214957399029935969928272802971129480663572568260918226435716183102713087444893579710058302604016150806051524854207849155259050093030529904500622901229095267628192929191156510860615766396162983673950540107243730611801861958710506136241896814054358418102041623138450997207765165232234385326673503969890011483547580283840371790538230884110506890639654988963890970793291283032702769501399870470726267102951367644670185709129495928786816174185004867597167861400335458178737981908261431263450546379692477667669710061462996217070283154522534785921741950779465383554110957906206312749419769052659357675948922740197059972704298430531432085562855300885547575038724221270352175299526143309337246695932167665181797213254917169903062940784256785465580363674128127491591803656232047365618477301361320114388941751345640491430292085859115150989582045731105017117790936365157244073487658280588581232329084427630543464023966610582401556882108983810910045702875288165224613524203280608137272777264898858477307550911913790372525874233890157354878321586993075035719178252762605015272993198163109738844734339184959027022022599462621880146415376138106618257585209921544378166668926679325237604617902583095309279009121273551961927720790828498604719312898160531280747927480611735758230014605356557944294506199261381954134401924578199465143576333202282537849980388025152277563208260874355556407514362183838952494327493014980545577014976404382212679028478009830536187100670773827458680363794997342616373062780268239410502657702747552259307941372823647591195573716796774579508070401334920733374144179324769452008759057708884605683157543026272199082745679591124305689487856413259181176002217672423253720408018666098046855837187816685225390006331364142551369642928207622419416147892378057407298478790907101319909822633877049480090048593454906179347382235191224938304706219996746316889478198671348802664444105389327995143656756774318101613056321682721024303126430855289637983587144607624147719906031199331123537260866141522884099731946709670427075440135330839710996781021343615914273099365831226082891001963630904078547175801378004448621325124323773662294173214663830430645812779315008331778855058517226210272222322190341614904145386124270295719265835884746778659625073958860140895502422870573858240653129043203313989665310093547619469506174741972620252185003819517699046542170144569694680907454917258635621974593117397502047438338944855676169680648789899201849766874631742940024692939359390825508673980998634996003031804672337692837845923481121311661616951908490978877596574841183126696730581382844377197911422083285814481812431367922141093944359636640502109833361927264755618030658688832107147719266614614817428369441120327434887394309184922378728586116427934328522498753815001818820318151849486253743708825471841892098015022982184995391516783005513090285816512338294741916967079623847991042643841038666432808522107001329297789060608115313270106909739685560742282802122708600954174496745822852269460753664486120660812769413946660793270905979752633032468262186703137932072402415425039223869779996051161416351889067405476328687029906489933777903220986814345803313450523083105598852413754973001654111074314713200389049395701357196036643931023117861261933992239951702147518708650475213466364024635604606309857160139731810883678368019062573280355871651479819557136424886775007188485724835718874534818563860800689574737713895767592257740367357553566119447826427874321731043335001116626435862635449743358370158709017500321248634897473674927972326436642070111200633091577603638690802224851625057351011436935677489276826484939547315934864402807168657205781612664256167084626647438584733540243931728506599774819663703560939448336302578827414596557655029908811163546024129453478213263892126254687950172871691812390467440872886672203386899043285154406757679820810621184200173105564705565362488784915306731035531950149549192360269216294117805951608878218398957124256974264440417126057518227996952221907630106229014374498085764135454886546357009015181152992726112942661922769589538408004821378644389824820713013573768191098211116658234267068385653090857586088991753637005651600366919324091128604249578803598203725820380354005380609441252359617590433542605469603660016482014907677655156270738677519996358790145045660091045886885949777182910084514172571527736986029980535806863580957414243319294980361860548436699523861845870566891705758395393954539122388308159188103205306143260048086158850541685039357869036155343628711200591945547556560856733340974855786143313002460907722515395519986380259609030129092430197697646072276495174521217323312647786018699348798872563656627882438517409528089832414325775126856015714505381488143195700957068192487978317232405554260996467200268837641703000290205760401082448409762796147593680443369510816881000482378187802363912375167253304870009923078858580766750607596235142292614841325683093797848670729968422345442169062462107738551388685028801642885978794533005556671217463625774366346578173173041596500136618470594308538523754435586768990898014439649728661235996661413962750183459095983408848750013913618604495799530556444840040471104194754840761763050814924789977237303761271716779024877559494049232759193164423917162756780602479146561963715310403761798389746188705625816638424465123977403630043034782792777903329450751111993295740791024090441364960306266846101587096434964303830033479538354457961013357345356954515839127860261177062073619583607736814204427462050074852473574614763401912850667544230890950369531062443700345512957037539902845541441939549979068949267117315205771535530094765248634796672927153685238235802051186471983021837941658480273506092633792218365428453288094181998696179523914707042450993169724382736453622546505883475542596504511924925559724697829548329549166259945783622959791747694005214396568389315350361205470407550185016912478144376050702573906592470106703342189426010465823157732894307754300789522740553602277974230031416660106564103065834271512999179267472246714197471213221958799954150715888416206023330625131350171933592239408587464786200629965572377277245122648897331592665626760165052315421977651406617425801049515745602480357176809146753062305376675777964747866213527825318001740801471947761383115146960813747999105904586851759108321426194043065001888789378956924533364795758010680836193900490526065551029116290144313162042637098115762679969338784476058926871919333721436872166243583895139640775548055621007594096996134852755925583566917274495538527087507343142068421526965241277826705664355305019947914266935490814957188481400597691412828461681798041317265709725055025718320859645734063816764453140637217992660088211320515140159725420925253561037971096614642323652419975606216844388158580278033200856263127523589857803729823483177907194280086233321129478055779006722099721596406875900289230773318013267078412025860084432265188854196072062717539613249251384439266328802898617799215553784119340430792520093268104106804968417890053736732339804156684093571312423088283745546188522007240046812140601834052486898857103087782445346023605389505556888156229035889639516959576745028698529934758116283019948766886756756937532618306688769884346111415882214341145124722956265076776966876764614860758541495356504842689781078552695202210820300532083704825480687544597285088390432071494884139659710498855311744242239872889754875904459471396592867527752986575667976458390867368965212409233197069978303070242766220905330930850500620908825135725471448383512232269762033864975292199389020951325142526167422023271630372109879314295912690726046586486853511849895340880321316366680761231978814617413433325130580160980392115190807954969774100505762412117776684153973561776695527967343484131952290189369099047606129842385227703530600325097167447780169163140362653908724979379428350506847588487621992764116561233339930345853984201665325810212140651135650785580673261746431719750771595747477439360063847542887190169523102789757911384523491605501216294040300234827509934156561753356954471248437179415894901576145911526017717134685095785900452532796474315444129086365599041263497176209698388493404025636953049867882745204840287767967178217748167430302339476598983703117236814581126618203292754191792556442639143745586839227581754622376894262735996171995713640545365750373429630879488196005019285093802842292762525727799028906008127475780386922859127317822080177252896350111356984398362254868731558920165838731347407334739951286221272146640899812418974007011527607488684795944343578524234368051764146910594550289294896901851894949508039351884381791767697013445176841976063703930125086457932467307127238497019243925577827063481123711570558713930027771428309854379822067263055117967534684618767018495391007923447394052437955918450953999482635699343509465832721451484150799658804419186230539380616647761971089004442250073964931314817594764712771692564772690246758584556224127345985124857097645355535360030860535320137879243551157887179121702373367346885505739937388876946471927339994287724731575145494531898612538551140596470412395533261674619860724739826689107120161354157554661199436633976321199790166822950119643383328104905535192903900748569717279901252235988675262421887837974743929229304628996328263918400439219360370787741969320259692986572049037605132839239418212947703693266929311181109663795482988961352759206996503036055841952140557682605188101387440562889470347392472547723795337045088233681906824279494151640003011865581069772278779178519907185039837055520825349899704122137177661959328820027188205969727811788388230463422160174687162074450287385220738671590284279153010555687529408215551677662596031711204108834865478029769316770963073690055239977508918183644078958744649634442139472780633044786788054974980829513279960421400568221931702287303585944701263786852391312959585123693354441636473152619257282459208283607056326710665014431604727901747420049209985414813942715764295071350923004831391157676658287700788305613794607939982964577208474142805490949642097396962235310538441941888681759692531307241876397251586118903087378106966653276094266107944747542898797763825610740745870975811593144707280059948781425346672773999452734164796018862307630218260799042705136330032599235391251435245728730264897931487657120176167529736221992318499198576879604230137803720922382073601187566445094952019671052937257189645286886005969200699942490365942651742913404817278768874374341731137730160178382896494761353362349118416535387913405297038097056648928655643183169032512557569821441416051366100291185709146710203203542775046166952241141357980247620810062931627646330666028946865778882419427313165967661464628912763858072560725688616214973814574946966502988454511356536104536921625571238964813702980054408182208706142165094531108305319299443343265775351368790942010489061394978239714798416524670714705716192838380799246625951061610704332482109541956932711588250731618214297768218745571917041162547516006432869669903296619762594744482606269016805663602541371768969310143719103330824870895386809604716042334506356454592654719251018578856324799548708410992767737439977944582267514536802181061384375183439592917076149826020387723015687741994087810970010845810164274150272171010650902073293709799596726433308071865159077683969363540132164379645021702086277551371424645020096161033024891547426974076076150328879457807425454174965840163173519970824547630400053713098708824844193525465493757067606391487190963360040491326724432288346389217243175212839201141031760507074222692094664954918645368489417927725830030239504019967552489345092739039002779362763151093030003473684569098496982217729767182202636962654662670312458227046786277237275751250925941509191026560284707275406593396190204756098829820762091089016809248342055712217211730614183980129219609165893632331612464602419607169366490169163468108236833478287183612537330669884512845748630389072195030291418406671385739315389256352596117980196018842486001779793510823071845429226592512326176288889236696921735832060228375509706247829403370569985337962354436677447072398525926353831949424995461671788694409730900657775113168063271436099167358279970598884904228639423451748616521774507678358621710898929325967210043385611952225727994989524685796847755697234776253243438802282288905555697966992649281691612838361228868634833636359755856901364006584191347099823342830806569303883758893633861458906821302840697897063728265489330511321927637925843769358330379593827618106449223283704606023316695794491259516534778302367882882118685444826614204321283258071855483095252496132478057272740908050998164952626470649755085713085106678868266060650447888238512316834184010523009327884259826066894743163014958726331978073828582008645598779456665451256625807839563756663479792476201781449747599768163746393645948769903498561201226318464712175774837495547071141268261048636650921634820368753827513627837652585817130767709635120949444206274787924220465648481065120815658346247139112804302029104395095219043118309399475472277712675082754308906810727016634640943700771204787169502514084411137829445480267896615525888685495458170330463127497563696198894236709845844615472166980431285453693768243661563311294452126538901318113974215356209842182314414464417505807504868650051815012463135711221736155146264466960738955355186824832674076095522085770594470201539807514261270910810248654951457221055162563433186798971990584148761891722218826462008236463444566763993681376894793466875210746768717004581204955319579386084681677412181756446353783632659837533246332897573127529170667919859527084937640919932095794793085497617517489487287719485974950780851951279845888872476309743331771878601765497331967003385562541383352267948195355866956917024310102144009969613593723065190584735160296378810660493274372416251326762673895321210292502551203959587436213954878240202776215519308959459252579139708312358806079026020230908766817618521003364824963630174703862618717158293910699339232451752965480857656600242719655240917093867067958385012122317528906264062157265904394464363227341909667744587781737586015920669617231386072154424690245144504788816608788330038241763231129464660531747058230349700791792454829924111151879004616147343945165070387361891526290782174607099573118750852134051704346100961367262798669661504362956681805230111987563513592403954325653132530896705603629954987763314611194732094237763759601255892860563426336162088992049371953744371516013153778295468304189781681040384063219730263039362787093207263881529068556066815732096076132328430801586494417207886997932498935248821956070457608193971257221225610144793516342033142833645335510212800228044530609428045186264212198691667827060728475437744449922621792728710444236507008684394165773092657590610706810860274418219118628302906825304893906037138861450931039137892791597787800494225608675009477401479289753830336603775255305925874702264630969537548878666077683834204133240651010411115870217844862515905724906612447667114282618691006406557236052012178039551270761859032918751348922001102227723820362581225569379309125621359688403789985524054157975522061738979729633654517840543732094339353342882331735258034947282266959551564063885716176960546147153343797529372033847431918596314503094436540426992613038531676568087955011025398622406735860529272211772602489256656426026075119288810416732225447392704203992676794490233340761744283847331626405636814439646487327331146328249091918055745071368760277554671766234532617965196049264172573870423000767951766059370189279043452333681721127020979928654856682171470130361539642827892336576177029370198734668140279713488522295688957766449434200166644683240028079846883923265648763012092274572662439391279966748865056764014382720268296024987067441556001508469199012928937245854866844685731640963198396159735828830508274950787539624072364886937602975453462064565131562727556290969248056991068203945950536428878664920110774074907180864773442788269493880338519445542214023044585277603816974862755169017662358570347469299496415701649920325320286413993339111213410522731328196617425471927380018455779272761555683998777098270667810342830466098287504170251777962779206163438450408993493925157387210680295452010748884669075104489274062476463495604554637638316169488049255865224343405069434787709482411614790209112908633753150582384915275052637486199119045947395379347042077738721813723888741723646553258759216124588702511556968591064624541711959926705296664349012681698047872985005438788880240965513143063531648815154831704530985736126928614340715544106005276575342126042424320595954328247968438720420507922012658803258096949749453190743295143958815166941834437018452479810103301677278788068130241451231750236996231263759081031112748610096600614457703728729950243415651502194321423775259072694611572791918264844356215448219120199058850761147009918488473112280584381007779663469447542849988535989383944888113586429983914175725797258724587316143118868588487968416932258854297191455063223017062951177427876621235220494662921217508437260173475300634551892715158354242146629089719350415852342073943498713986467462504637307130670800269201592065993506606042851809656050441596585717153966403945754440382875664382418626330468733775110109289804221149693023583866789524428770436025222850049479094146640398118633885073531223454075680741492430985784019417160590846602680809393226439176311964014320968369723129446546281999595492721691898754030031484015829074791805298638255458467420048434893945177257300878537889513693662007747541428878923199387285813352536572181659169659608999634855027051703425507479815932342607280164318328451124275179607168828957145872761678791056765508610608426958191410151694820466637127213740693412239729743261267719082815779055175727139842396326433706288529923595756203171213443742785619693459154374528232415813862609493841240911182042475895726405935714498453852863445713589522386984227778028173412026977209456894141222386108957986522609017508894865937730909593648162583359401589313743212710417851942467421960996834664822858756804920286605173749348217746843764030744343823626491778087712939534173795500179671531588469361276750690577880401420651019953650139934774226056965092232595468917024657681503834501324003011445319548865041821071638776645686078012043428130792997930493985904641165694414280860827652715840273610028711529055068571482736948725502929931810709436477461092438941768022989611122079722347206891487467113224302770752739394935950215207208781294710136731707710400981169905860576993314095937256471896466654962149540970502443072797682190064684964502682438228136161463505999761275121944352433847739546331105194275714705062225706251057101661044518684566734802292898302470092362420681998823623707159320122979368625871650198738868343163536673373712788058378031307277785381245098246355701897248296101336945304254416850460123830436434175803174772149537332799461593422251308397571154274337989316583369681148264698074645054224643825400467622329694544270349927264765321286527548697512066876656218743576129438498725786736704556148253463084545478465133124803995649727506930629993109234871898709218803645996792241493909707558966705640320476261806021466134533449803694456842289528089576975214563220002661783023763072948618272626241289373670521763223510493273608991856639252109462737956468747309678181132065152033750653031404960671145125088935977541378251885695841864051535038472429709485495862402218379078274391058525628191700243666666970882136658595759212265505880724802134457216936343464942177945499873705593028918121671543125563573125688850205128434143588699642274012619336695556891743842357740719785603035023179478920978427950667076887601784526759730226231555460401729222399464134761110823650488511045763761390593214342460245672038119081257056302694327303822767199151685429777160844984237569874492311830814229737597446684899164501853462885919754325841979907679749798329710597681939134957075813800349223534776985336502170341800801443028942317961629315865732379756633594019346066075734895230241494799670566993044981292285835089500525843648384839231797710737788279873090777100146863621274868817571922682886447705582094020830306990648082652371478196617674246666317728438141213223072375173759410117618150781851513084183392230097442853029110781350275317097208056510400970606506824302323574782048574715818738707366029463215093181153433519918575953000386600369053656492697311570185744551602070761881986456489696877655615132621815777872380581637751821187941726794425736221518058044288564999447056449093293855014874016822985965420279964151487089183914371742835355843144113014126008696764638674770273777884344876339555246047978914936737072853292022704614423711038741472481913232175975105150977874846169474272013646826524350031822866866281397286790434032799776767360647051753846738688608327111856134042129948531734424661339599070764629498169751362379405509280731554942673164421218926777642070083879449943433574965510344933283356173648707002558088831783222441002442203941197703187485141092676077678486461451394564865243277630677533327909880266663215826399901352011337962160543695863192977955838374987251124608423165306662745851503598490016801280347308827117496555248264363452323481120781488645950294780283743097612479799636604567719367902093235768885217711954035469875957117245223716273218586671827456545332180730420427198891977042105478141537991775399060703923263785439670540404941480723885934901301731622469375444055340012544834412089440290246589053531628343780129646804458320107700571200101461658060051178044165272351579429001837329936438530419379696103912495475627933059997332557889934943940554890045847604684081645266859449007465430006213547427124883289931877654230759100878119767250644800950483793093386086528889319467954036287417307752506063670071701580089367994497665866575530493574204569766247864492205083156659638747821434237045038478138382914048409269174257146890220067837226282450635420028088371905975903352263271590647180555950003512860494653207160195049439032493529946247694780450611165076788666251083780013580627196430143096860212547943037719244268408120256838090635959907155582842281950974352228247550918324037513064444828313530585180295848918783324783909458502463599672697007046677936921442529551778556279186695339813568130973561020878821691693938383959066023445667324085933954109440587036170461810608030149264627325626401697039537844459617048746291005820229646121685297530486026128801964538898613294314035275152395210001759249092337209852753182444548339443433339185842849908592550524569843884856896380369114342567109367814025350281529673484056328996786620533348487429512162562653015083151291223852797194457200116752411273818792034659481272851079526431513171948163922082039832655420536172135009184558081438018164801913903941852781081893466077247170799188526852032783087044737563595748953217465366927865348068358793581863258652848602390650330039769040034134476571024358262059856633232538940354964729432051809792262623967726004777567670000247881106382619106235349392733174118339657101048579116484282418317221070399262064193926067426832769732254844504620395534711339531700079988732359863051045591185633708494870886305119940509351448277826467304180256596878635301033226764465352954693882556502071047162814177200371105345791996876696103583889258428923621851616998749467028821026632732489368672596857750935281282673991593537548568801976895575322192218492487937116030803194836756633339223841903738453198852032179851537614139615290691117129772833276489503205590860927697533780656532673726946700875684923016256044563961649133501708741865665076743617253371593090422966373982396233570487639219044930243585752060538148831168600976050739003526330411958780775380348379658011737988456030410699556190823162518728071711392960908985432296581600235835760992216940910298099933022076248373513615727643822660687291375728445953209681565478429802363914648535448735867488021028718384253255089036199848038369208357257823360272527280809319535508332453650443449634523403388489178937986591080253248608177003422615706143249734268782409265934999915438534183171170261407625923871373685572897597824720020906604766902237407809520729148834653339071947966407765522602999426795320413784145022601993478541619921415828890476238065796133421895837305527549113229431901045470921581690462043791566576768075941473056528298423586138057354872600350231657690580417613863891517268047289706973506366429639599174836247449769362625027478163764322139671526952819950158081482452695498089391702756292384112660445208201911951713003296279817511210583107098651991873603914309991701940573520293959499583524635643783413082381209717886509761583649230537850728819465600443874857335303169049602249941441418515973724429023240048983490046967118339901915562527965717237804341977393627812963136751480678261260157500189457675470130435879402118726248782152091290318046998976556757527006166475079068161461400690305561394467700745935339212055643898651794348983466919640168569541437639394809917259378292075442176011330013098453010911005380756191662752871759367633624634628796010509920581498347970984385080109951478533902264983723538650018901684358591998785046731579104972572973478218566811630281569504262768195371698867789736507062728259588177264439973151621415172460710781584898754814762314657118826887393943137309357792131331045499957834507949987688911726597407200627756738444408858866880555217682030299695488487091852209367725510781432760044598512099347924905745604116219708611671941117423301670554308433960925961179337075034305407938134057531093374779649678322421537750028765904625716237366624650622460894393760093991945423348093362738115693026748355478000462200245137606565832696566471109464365553186191332579749894079957414314504393094980141608128740699191271724762745064000441670182521199006569307054618208669667272652022872349637249473736509380531906638770292039158046251861286194003923752878040559657987860567009913929073289599544823563117939337970650042178728634486052635970347184653425995166616804414090805558776911131158856554696591287045809496607489362819155124819189443475979069374703038865631074784855728547993774148074620116151717976434901853742608551455763730996811027195472906236848101774578909901756925721145307157087810587004103867688356825288343866382221851419401333385958404520683909933585622804821041458755383611876499832275656600522444088690124710204494145300078840087230544867386301198629583955533393456013189268604287050166051114487397061351907191839027964329758186141383717139594351263638565434618162562871089006773878541485205213127386982497696475469578547070727499125027756005440423131858100159574058371683786860690776367281693177561407223125884514653096152284436622540445264854765362269351028942344251512011832334182374398949527242829009790771853015011114526264272224085478268755614407875086624793131843713391250021756912880864632190601212810921477109756645343720354975459483125942755823909144149836560614810786753084101834439518287630063423341511996141693003057357349067072943861988065440874579763320847491907603751905048856151228259754170007094414712138240242616538998073648544201881038013441473227945994709178049252170307911175313192435627639670413782233336417381255006822380504095773728047148842669069145409152155187947588026733026446185484483291871347666796791970066707094501732399192130416492813224389154545902734581317796476264504204692666761342532748660944680678737681393745532605302856070474155582483589533665077642756203113573777864967531518876107467081750369932919671254981734320586051584936289358335199548850102358965832942216313244213934383708113814820237517028980633678603525094659616052974980845326583622969469642278733664852732552156880877075565232496870116898699574643968095205893880177793735458148437362036825537072321845683085343615301793006414326111041943094542290145184923451824905906725253446319359530520421869300160242312331157938686460207852971733536791696671785271566243389751672245523538039674014672186239329727292089970163091342558208828599045595063056758164562062351916346692826225336081668411908760995205016634825827251565250205697746892614502077589779619817556687134249679571777378466014940091939770382166755608228819223712327250058972131899418981326246750973488919696749548772000183834355156701581763712828794582749724720301176913874278265527046194119994314751054759524116882763388591391938710096714010122507666497897452094259787037133437666572660442395158070710945949491361106449111389423837772543599058389352961494194985130658253332347242378090541034744419406756064392258617513287373511946591935428017570878174251886821551536116988288937427304886536690202532578166506802249336526544793659625224750057524122095782991738004186075919506286514643056564144656403266413634049262214814296043983313526690407617850741856888026210708229276538876362237541565162407961710816360379776269171232321852902889162255591996118889484532249537167258253468511766300285938201487795765826360400032419198067487335720200993797214199020788412749157021282757577859906092734666108767977382839966792410683556986039045550485320407083922149484596542040550309272840784383417985172398792030664673036457123020257653294383392550641617182406497031636970457634239486810376208727487217567732766555421925351141231507864527402799626736719384108321431923538419964374472679670386154915841672448595741756777067181100655167386389680321791000851000381111721686895710186121472258799956711635105496860850351291314891108354839530228103645487302400931876949633276018306102354642729903438078269290895832128548384565221278001709555982236422569724955516467289876586943728666924472523051312593873906528432582644038557272107653362567916602440372986630442007993891571329414745096239100793254744312114241550307626333936083551461942866640511375084103981041214322036896707009571587037969231415360286725045363586801369295053837606192897327449059340420225779587015180725195486089122455064106133699095629616960002971863769926451592624724927329302957480910471522074130871851527133075056611333307086440224869769482799047309306287052293295007317144759518697449101600574177957175884593387379619618558203834491592900000207559763291052817443194492809582017825168741109688167410593262119853410250402752898651346360540285200554092914180892752844949191484502230595085703429366246623541137065696113402947651303869049421275190782112796032431083664811443779171068919143481093567811255880006558217000888044158555860720596223991505935522669449700573836528397197972340279694572461782569051965947325938477803109559090391305188532746325155985785500817834547578316852070989839724864960853661022099718559700615933707025311855043124067922510709604309710673969910537472736651296536799134306623010138786843933784893304384879517714455764803065826537072974727841129076139254380135280717913561245799575400618938267802063150626825136288764423692288581623459757832996261270296210834393155869476006624558390234146704014299161284301661117803280231024546691334455604962160347778945883909219450181297937111362438308361045612192157219738076427936907330020226966696683700666272087730902947942766211556638516296339413107585365257773830290939500146325616925572215465880677592206390846621814255022934727069894263187982967477835230303986085936121055436373601873034136779925872968586889330370537578263104957980263077878550942977489899907888532542099446303848983604629258612209142407858021635608023289251874558921859290830147860683276522806279538834845340922477122168650888176488471269047933618926741717521154045608190906730359305321570755159120970740859449394145739671280112777096640727978104867175243733592714555693871401168042234433644535382870416364967172754919262299826226817500044149459582062826883162083176539301826216532214374396065862824827315207528336308491321655816823567663690093066142133261231789104710780279177715437905342218274149083228776345726059596827718607648085082070352520411209815902380973680733877917011417339379631359132211986333417543565307281139152849037499103116560438081181267321344300694117849569561846959415411386834621373154861319557716730036127195415682985698978451714904876930326421164090542264130515313036594576094250801704911774961160782196615324746858340680514573422786525325612262084210105191992202404681248993491749474726406389348598045723164244929552379000170282509732698850724932805839622434511471647198695857757264587726623341341880080055410218597817602395116019129236901894712274575408797785846576760592068633563590434873494510575609374220633742342637198073834178200100757918560529677570112726357621021207966649335822239370097440463919172135957066723498956995875312486312020055821821422914331892374847568657988913098961434961599085600862235122045051072216253873382538355140129685079329089875814546769827556947641455656514341870831741673438284633087966886492173401553512854939188269845846123618587409772590422250808244858123011976150503896903557754612054272382440151599202648469625637060350766578440082652878524804693950852600919781767858233057485606445714515461682611485119807706306793510974003878811876979273169253808216816256824603320706622133729962696396716608966878187924694021812594545820180707965883813440833368326024137278186046668708248248354798498647912281599421262636496774272161662115492838655877194009218822034966349744068731083863690238857914512936845970442158875669786736636906402192864652433619790407749679411733747266190482394911757823846672295343088534639228243174358360137157745113532954175512443626003218703835679508315742749669763036430127678032226985866231195108038282994351257898927996971095494357974504191547801352976347689425922536643597348515753415661397107088723348604092775860109277491295166406194856325254552626064281333885655520222176809014635371141696411418561531053346221168979027388370309923225803555450907163467980140024725929965450041669591881817929351197928986716930721170754236374623676460917594708344099921789577435568034271859937271196317002229044923023491284245945764194080326773669589601799503041244925087442327471087137670748465566563789591529307467643237629732262800243478493077390995244399762221844796679649691971059121801886463905286648224598419358137540700504337802752428496659894818056249992818606105432475788498882053783431490565504156807470572339585508691924350616911900244485354771687494048556714852268595313573416634718837606660262302302346145722979001584144041812232642836050037119627440372679193225127658774003849352107329287679822424112608264909040418248228478491806124755965003265302499803500259643818401072337455235688891171669047233231125264570698034186616754626034041727332229883293471233207628083609563486062147283292147016673161706177647463144500114307769276583450630648552258936994904749634288800862169196271583151436943379841854315742915496836577133556731980953486575140318338865228306893443170780452224483697397196924818607986827688301046752168122498142195684037345231956944834702780153045375223960199179432931182766484037451130223533233150994125194760289026715872068689776406026355835906278889116107450403764897426855367805700952695814170434067205803513119053695062736307039869542076035947027958039080364629107839434516406032323801822016816977179942246922120722924629080152635686910735628635220659850344866176375477959982776543763834434260795044904851807197967521849764243486234151243681178604680929356547428939582788252197673445210436619521463808906051441383401593026928865282364259835520979018819208818864082054462769822468050717750479284167425057309945030639516766831054111447483645820659756096799071278784578248258316729916196445109876273055801004632751596291509558389993267987907884322064142470451276819635338887295357901340266676122803622703777811371475028396349558014897149988620298187819123484564750527004725910154041094672238547881208592179453515541357155920597115213648354058737633694065118935160981848560767134517188849239011718026335089595606928417624937591875416660782629373837392056419130371793888869886830017699288873869381613768313666453558048093784874876615222726181381767152432763988104068767467093059410526297966152579497711013667973679546616140727758520244874131285129958379195086817102268603788428472139716057559684010875675044876813428696891026024814785472964850740185180259432107529943558157143842100353254130411373146774868755798609862713294378525469424360041331783344922458997197143861032088632201560280772967819693532008572511491544232639689270995963292564130769469039069909768868702352646545919730168588382201775512509591399830946972239331438112608620636862393194760952633096199316775228239635633029362783501999623843682360781984000546412309260257807316311447455268243837053646334642394749092624567716919686069264893104680203109594912916918103980195940518495165678069844939727578046388198224140630440772291915871780589926953572896143429821693626220347955243966489060636623623309769737761586993170308026277732632892986377999789282924799024317322867706309271210907361159627460612893256156656978696542924862519043143623148012259086368840797109582471077193388622129138954370986396054899850747988224953219838238381541465409077497197520839713375610405696285111756332231699103648640418663922462153538207669915428561128619251797091958479424226800634615578185350685784041734923574093971959392255445723998454369822615442973131130977611185004127638206883732557937916729186642222113961642848502529355579258514477232638886610149669079899333992455200342451023868278479047463498519796121560880264117291796884747254442873184097633238713260992233226568973872642432552828094452373165986627568299324914809892226341961429795450672965654542952496521315740195032205985475687676041104896237464633670452033113871329178362154536395664069506192463701864987975156975099314934778914620707181095549355663938665069211556989598599107642103494367296903235356849959459321937804394332223109054088774573277446823256324820519876570376727067345831200471107173228953925377267063714649611387756012729805216654822362235747617245457218125686610690735854936538221803110495745777401376280091553913555813750250235654472959309575280879566331744206562959115174704270105540076214216755690424278514650814250142827649135501583612822669654052786016951296195378307644725077159422315884456162623065683922216809805028941698156443123400416222909773349235662210961237516678783305901779972941518878907347905649255337175964349558512870230349426026796576006905903605786444839136704216660878916952791983489692605422644122168154704281136213015801459526650449662213376106982021402424509072667707341708519864686141186792396372115678425966382554975243281717928801516486157441222525670530809549337886685928126813490739268296201196281163274241386925200883609171262826746841815340829308859369263156658854895173460790033117674193949152884888941622203601143326550281952083752785026038667145075144621341968663493447201348455307692127198438173300356796979751412900694620060755930926894977274840522695042287001075220027962791801791029108708612426040907155473017131232021731777411522119193941961174275767427983246466943775784864266758985289917291020111561840728610209315720837222971265106341202620408235569643484796939558623070149533763630377967087157255850295018433445886845678989646741138316704285519041850756145642270177740300770310524042147972448069034450629535655545361888181208555782560767855626671921751559294778292740616019994977159743626388285631354407850440767758763451110092243618331680058256339342242968616599854460726953766831626600307236175030900433693045164083290259910439935314375288894675652515369922763448001085066194830406827601830789900301019277204176279727782323984754026177232495998623414777915128603193580036395198468151251466005702687188879929975424446559769410004213903263998757314446246374191025413450139395936018777520812699893559556685866291893322718237359280274262823473057055140250611722237837421480885994188434365286120866939497432105927826425003288724365903671591102677950567341918737396549695547937097749358788251779652827262804107918269612941154812266165250540973555795061892247936207334251296782391043863901016144093050296058722821746943337544152013514725772670494834089733665956519725866418009869389380606218231315627581939677355578861187336412082828038965568770862010161820115174957715066179826499180895827462147744632527851299333537078984650863102095704326600147479574809923655120069562737920148034107368507942403857920628358099903226771274614349163471713134656462399874272778138427656979908735528083036956336847734971282068003183821754253456383627237624126934505739905698824486968048055133683475296599383470283852570788367167763593998318235078232908541668468998168875442001121218689649232908063046086272761287211740274820054502038188013637590432241027590764809682444820754072659250605138743822931754004210946259514119769606159742497687788289879545226855871302748336898651832930816941895572900130591277371807141464382773917864013114034518685149043387398387764711709547919594701248423485523763258155495625241001207422415813929229292630461293250667099292916323961644633632855380358472990074728804866169802518859192046936064960797316619506029489568307274852836124937592122736791700749616496361089360020962575388880571101197736946115097260423404494377843504645387541473247166644955009035852093602689744269856898229650759006747536922107169401536166669034463402381212408036739534405860808250474707989654192818777543307640616354968664281061508711412522582980456585456714902518025139927678413226864213220166247534349030126544296690475267155845366967067621296541499733202058688520826471365718417808216554839622402166188381084077960650921472429582339286614712432817410914776201233023796526015863178012193825776591842014279837875072761803725046471855059106148105362178557520935575913916473657670486746484757274645945554054622487364837401201143451205541131500846461041060440026757750793790457721235266092340334997155969296575977203254450643073787652649544024877498463590671833952381962452981587395664587602044690207089933907914122681058721794754086837966699284362451096855641364012892111564161893611786218498520111532202098302128325860346088123501727599195829709288349691053146262163439576428347807522650517368678251967059808949542881093279374267928746867088424538783236129395704682015334368645270519297098308850401236747264112838838492023699366955842027101436733810280132010141684012457354805118288133721828185522371952529359181810734718643632222688932600983445065872270557244016249089645979248647747103169184604609470432987059361293326975750049868677031921100799782124020135322489186487338150185703922972241653168511231351445893995131852441707645396293923673349458592558599863319581483993561134146053346206682867205510974497074636371571532207542657968549477466955434145422442051954076504187565657737248788396407321405814648421479883743704668140232365410453486436312860215418842648245813116583520287075239966364378203328094625999678656062468208507760891108203909121935395217382660522724600803474792773973794497665961479564255195431411980505126660690906921435113539590989194784932642565027073858877911520119816504306091452293334748021576415490654373880000308874758296551971634651242864938586619245442996984530276228696782779670164286690823997009777492418710639824101327953455009974837949690815641445316759173692657223721773819600419131760855599834321874182042188977547067254938530255795098667329171030415353900824467361097913064802226586285345962235732752542387300770538344304926966701269262267213462505769725424629121287190142409378009019724012268942330531752818065952421030368029023547810783569830527169869366198595395965840404339558929371900233981678775579691687060211732935657495956644511819402104286203728473431413248702809344066004955440280507891049445854947699628572586202376216093138058983093456172194972845858164918997092213916361084318593063482961305995104556652562428763658816583675500610307872574605421103629501626245775004446874163115370146592818668487580583221136973353448954409597605599446911879264894567840952548411078407647663619720393225265331876211594266187217100588547414488436052836288104241617523621013174396292151622879225827056347279166281240426314060358169869595320577389534444442687962725460198743946165211000814440523358219614754389649460296190367679988583845771537987469468166553688610778147191777938662430612962549852460736413915294246834503680994070982836013027947503944880068109280288609215406516889821794362664275673365857980030842508737096175707450268583739308038994763980791418296302628721859549567515115018669633613679188210537311677549702687923828700432803852366678869214937482766861406763351215058022354064899508093607801080407167916830061844590170797414155932120537021194581821843362802339041587099719716160404942323454525839669847367723109421788054566431943255295893200861118559427617734793406964931284577283479856368667466723800833850027710489965499225188337521420830357485446600160473990490709190845516419518543275565047659036012557623647462313951415847268029589047054689301091097786458192962584997606234948455010049943661362667829056069253274227919266733124984428819564978926569563567164438200927851049708383166057054425059329775170280726354639784229679774887379457343804988242617200703796620769757232636159445090638293101052103788785130838614206963554082039859450905011509679931515897235998165603907317552109162191048310617584629638213185452941880827107620241119290736318358855334866602444863938124745089133258494602379518396061850844781034059503287576637923583055038229904112230886375953767385664119368693940028434007372043184922780081998341943284800594319159088477877811786555800171543913614741067526453070112446326846377605831697834004334702037830543448966179150314443980093995665906015088949233701057765088223606077346909063002482540979900495835791185218512036745944546642548602217013507980278064037639889721350002933503424064264608970610261341147598465017365196835025031211556346746136379806038922395432953484788838319121398212322524429505956309574372591776263578518716999302545427335636495635226177513598460896349165181976143947460001110884377875946363036503545861957141171837818584444200130681233054775579050914097501819004384376069828240440067066270505589104152388236068163471526622168759947317222338661439307454239653786557186211004651701454971450075508900680244007561601489820788579005309459684297266467386086707581473273393348467151959798504138734910530358816341044640016217383423869869161672997953622825104276301332434973083903907264251486454499253739300062411685532712666928419382550292814455047298213955113427617711823719189680378791468706278646681381710980048879611078836752894553446104501828236500455820909854406105237398144994017089346463352732161637467887688254142676676375008347810868762327120433231283796096969807298879854409593914246943786556378422618753048139365031039947779451954598187994289434608875442583983384447907842211031380397366511058679055488513399465675440653322530235865776547161828219676835948912686030841628769060145928065920262881910974879871374627528617432094209592410930891676441600265050909170103587377545756870983334796366351420725102924473809269254121841013153803979461546628128943042638893762896315437583240728834734913163298250865363339266340671834074171243622242230054763655401997343684008683303365541781338813986357484024367150474191528508564064610820986915464480923487609692762781249807199974340790409422304442561080573410782582933838833891996452955391151639596751653006473786956828491216616307306379159982214791840265955363635854816939104040090177848969587502898652187785787321862877676711366620350515188738260028733167783819017899570245823062210075487014535986663013350414272426689769162625773047361792345839287040918716569788398121613815439870298302033350556762005318090817224506111828583788961273287136203889130730342146736529692194974258329297863887674390274837507939488753822423325233326099699350975263028408462010101072686857270802860068328009047903551858578049347325025704151683539888560941453658031727471227770582791986782350020149855027194951092452784161196027776252241967365140653727904832833716698191594296863098099117522551146300683575969131996959210498305238496860525962675684048473987450103416895770079448675384514725302948324821399029683164014481909000244126800144563123395531315257331758192099840007743638470863410277926980056733782026613895368961452635467638514031730293827761237479118005467796903195720459945787489993717852141045921531729787593063811227921335863594444696875956341950355320440710696174990400769884373115314002778148607366802707592528786778791952356506947190827650417601753931798965588226177830811187844580961935138444618524409393377096401011581950402785410894806953059679994093459293746893318814969931640617940668944599294151143910414631175235118018523366080969719855564829672119625255684204755471814860405365715565191027592416714956572044449077088739810398599438757186079811323339089434234338410272480237811549969824663929226722714933738305902881720257349159806480617379754933864526313086861448060252301867053346452526299901673106336802969479596076695366931639830095084706033619419496063583145336260907433734165813850121945002187118441283515460646200529039381496830056230183656615743739806754708713736285299942047796891141224163968611960433982317039962743376126198561665417377215723219054259636232248849542575372356560480537881518830452565291592684022208075354212923549297439911175336228898730086667345631464926850904100714432662739070107259096404070177583243060671087191930223160672469342742519994290371179636320224009532787177013450780611452139401055555486568130666222242235224020344127452745130619815390224199690235295352709705906304368257330936849300525051845531127491232602983817142417119997312430365126061496494557712480685813145587835353508902597017984222105896127154482076676784402460572845978873649130070889304175257227975558392422819252819524081014698847365159266904075395387017303849989537078355999214266218639442856221897665366237372895671962064145499338389721333110231234439484037227209837050254563632581944688443140344491917109449413402946133550839965460607434226219569853669014762201265008974928533203240243006489003968758039713203309914908906467703660830798410029323892053017664900236310684885700392742358120276970206517615214723960227010467853948976748393261303071008091531952276094667992304705218846430558872561007274785124299694110263959117720080812672118112919665835297775082448929673356124157202293770822997021248010845563455912960355729273345132206923762129854229027794078575529372746015374982005499508812518136592374228775155083722135999966253319834304401307741485456284952899544530498090169748962612214217928239293038748820716963540654440547368587933480923762550343480238228024837835499137788936517648153895017230804085644307037164742110715109983539444917830999709163453900844713242075659368584481924748938670478785644525389046169761763064416633272911770756826031698908557034221449783791492591594462111530529255346217849108326687953029438872011343726879727521034359527439013853202797697476402110962159404177257539596674046815592040492254517928151733854121838454886346587345272835440749075029685347117970040770036081111145269313987957002785554282366187258034145149312083671478297284953922513309365940954062496313601755752753355888246192713007424922113421523410880301589025867365829335067070608129947036417754746674655765081385815368838782036208938349899458657900373995398146515476765726044859338835656962055645827427251357917089787284963199402787959997661671597881147613517976803392033882564235193911010784213619017733278638526165322876036312446554594158460852543471359482103156119286788727223613785235244081316470557373071258266019442940014394507817685538704446376936614344346851072307503834332958835056966177332112608273211378655297881985664787102106052764625018664533642291531965131815426222153713202522487426260205533532252818712558300741653510588752517376456502945944903971664770390326717059619339085429213954012845777875442514314076889415275589124845515930336989372308823118989332027179208787279697026119143998584564818075025319628890947754016334412916345355606262875525480397079400936232611091335885305669395345067633600017802197291007694176700416690742317479581782806115833519137410634926738094459810591451717172009043618575234253405166398039758733590076970639591155308978040936626359735880682420695787169928967793640594487290248214000388305165765793868865983705048638718032666843576496860031832349157294346793206289679765309782706919435582512842223010849335328746187770704696572617903145271339688207912208419799725353907487770682012018379593862142959206259901442874417399027670482623293747896762372947150743856250719142822890672771619101999361452121142929299209665049604243763318020351535939531444526495416148839666972867984368533813205156287414456577469843087039699068157231501629319753315642301182656847068862201506413838922380255578894756008919808847663855663352053802928475702539336066262873469739084227642210663101377163086007865760299268252709453291635907641422227242328884981961595241033892343245085031584816805797740889597516761994501993642141981358197947474981943328059779033897189106793244540412598065973352207303260705643528802957645795509653805887845061916342722527519745073916467615986142328050689492478702093693817828683851602172986451903249448762905604048615327796329528187810764656517684778374086989878986362734475559615132591259445591686961203909509603935409040144716027785377741919271928328276557530858272568750399368386657543071230921215959982067686164275860827584275644967227148312406091191164511448006049662774804512289461778364141358842744832610068566503745205459707286582280190412332401488892864185494598176644219192880475003326203970280646898840658216484532266291195126389727050534288764639980644728628229147911236655043972564966908296559373135711779102267626306017138035654562765716606479332055336682839930261854315107541532650898349126088435692728586821709020101777795894623552612862712972452823349835170190459291447852717349155295487055355638025793699390200790487795596842023003609939724512342382688852620677042621639512115686198599745071794022217910604045638776213407368658336598151114007734323740359277202228581580882366605384102582928702520094419625855101062291223113316415328435763080539265024097656306087628026197245725119434517343755601333406773709457594162993202859690051185192471092354203841263956360104823695900948359267155589937781404460246922891875184763907148531618030129490488870703292968638401300962120665070995931455303260309101357288748466195838355198660403015789215597373681191190207037068410089704491196445670518647683579747014932520242116833172524396550194589472148204768941018655953251637534135881049515621048825189944635078112431756601628139087839456147280437886645360192598862454458181672696789355234827636044600578860337409864759191937054480728968557383268506074704231070504198687208018723575809477614648248829518026995949176042374392126238930180144636905527139416337874398511499277658875275349245362836344886058619814874947611639930409624616269009940741498567467796902215298918187909444690191437257871229891830933899193486856804520134304125919398569178376123708901814751914912084339032670590046194996798531991129986318084330723967034172814701523724072967936331121398185139639674728882935908252884953898948974579725273788852763870149679466081608557973820398635173129105362054625701114625089087163131802484268542061979374533065028350964768542825663744154368037653694693640129150489811329448299333468405624253260324124845906472829457099803911868180878045275022070454047052657182542594739737759584966057453920615686893229343706317074829913291890835308432533331662659476910574381928040055616773360785734916096927187855666076806345349343927789102081085801989730140723014752513121040606064466797003707888535004950394484420606347608880349949238755269375039610469861793431840882433702070050167590624641811193272781049735068042811750374323782812387812249380609069146553302934643752040368479541131056275550067831964675622142038113523835313459896020321281261817277317574513777406204546974590453552988548173672365463451775581623272910692077970930547592651795889377605499221287983070940990670018521988015847771916595384871817657851622669883053895271365681037511021338674151902469078400949682193785611644525648573425526750075203236507931480182103643110730639098469334318649988446413959274928620451175648615520113517347656706086186395127267183307670600425220289119511743156896845800679421170372999755258262821897094161636665228758000363492604665992937511368312135910415592853789525120786717530337860003464972637324965481835377047414487831834348782916837770914887328666402861523029768044360444834220489185039181915188387833320735204153686427548740246292966991712445588631552221022333994582792748178287032445134765302018390412297024671785327647972867221157456956460938464480667696651818655632492219700614518976382133887395207113503917065232837636792295037423783645545498035541752982055264174977615011786752882469059013985528297868008704151625784575562600210131737348955556687193652051454689883982179082734506506836995553457651371469239893420333012830188900811201629705522509887225133616784407861513877087658348581341323557751347086847319623171947102385687814536048141118291153825809562701694390815410758306762514051023644241819857612926627546160087280712172770542471504043733737412732646712675206234490996930172587977504378457827711906624899069132967565513792749298215935274669221371221087999774012788029840094012867938230613204123267705722882965965777261490524318922664854874739706155808428440046430479101046665703565156962534247656015052998517783579216981656455804646451060067412457717836970566108973697003323522078045453654701010001667938437014914592614656369983890493708712500975701239910559121652610976647872239919855637790513777248230618187263455529462058046891540417932499779775654235552249877971549960992324784823676877247501026146294815446266254217969763722278689554912244328698043232817555227138182711096039541712669101337701706999241389945615491003817108359280573063939846017470608374757079267580982737260182324301035307511695192121932413247090994390112396932635666268957582177855586217982990442336327388904498274785362255138510056292065321331800102872815652968048115411838085182219607018825232676835689115976849863805205569213505617997021102580306446223960028057998277204294631388955742705896440669148359098267200066756052285161833516246024151493735037993007850028332826806347318467583556088424945290009822850351749733835932628808197024443705124529266505041854436993826656653879112772930359827566266222517703146116119317700105483481787058620811320811952894772057899708987368253729333037357903702358650028792794907227191640342443566832238236073485647499746370722477661565204205487628934116484032781068193109609861230176445986700387069429596651290625045406733007515207268393931966685941389161180660789651864341766356653124602241474640740734609343030816685456430732748158964662293077207802068941751036317003421925962948856171446092859685460323403941194280244327573763746452976756250086730871440901306132578761302538943098643738164339064451463524890050852566209737085812708407911539932436203115914317587382530471202223891718811840951489860252539352444361743488571338319017187338285905390207017625537747303820713705625414908882461876568062709739555269988698615747761906429069563213041509045831018131346572279184762216468077437949330395922780705576615278964873801478688140756732093027771503015742278762912650926148705226273095260559515469111088581309212045149841410577291979562438525687978233131526095642628746404319338286100160150386833772755298351252114568907147392849428201928766379363712901269167572753055185310183909905084318818991208919161374229551887245216253568671012392021390415940892051897322458494746905388584333682628569779120699850741707138104488017188106465395345766197831307284471070177643932100491577319352207594928236319625361381871933615060954481101698722155138830328803324762218989672263753928450365677993050047713988210179901752128016235908995651122052515871055237189125204660401333079586438193679416254303181953251876205983246285104239320815403895399426647046858281895645045033963458393467746825673078423203297636548548028190362021195952818153484207909233718470940094662679132346524459924586856931366576290881794624200452877368748652597443074334324974716664656597940059233664787848593991809596402524920402674571432976722831850562783340207153494343768337567929497495377329785739252193891894684604211909388003620023962072574100646245621161634540372229328579543860633610809170742239861627708026150748956588203933167487376353948991160906831646827697118637390703381431169721010467867435300578543124369563527493480778010802322452728648388841822296218103034537476231465645963219323456245225552436212825635081719996521732473708903509726152974251555788979471631140406720514800322494853469276565901574228902030225633621239712753246013053705993196381364962495465100011273576239127577627259977677238531094927792237403828087980244461885601751143070129402207857595769058059425405139528037937890989090140406637296565529173029246908336311043034770105343341914299230787125555711100005899909486920012500031132900960290235121257126489531462957049681818564428067160241594082214748894104977212309898613477782106504980486652219837004211461239285108164237562649788960815598315809314850820222154488803800512895849293583970551230540299247761043784510435704405268238421433264169964760786527254195723847398019877211325911003888196979156870434820945741128486079565863998083080379173015336177764123852775988338260209162225623686222791663164145236535732860472810729653999311129042926899613080229535848548488854916286901787043737866578593350176430981957100077945176572863731391405787445228853760463889701571594016468718706385060153411288258056965004585333821037528188483415493327232124376298872728054691530272743548009635342368231364270053689168546689524354220225580104659964748749860505533986604521652400978621696207010878355503736499124631840291467241041042120297688032320526701853690215972453043348190462108849950882418029949616331998450359585821430041423731002424197816091644868773322565656407678505251315343728076781523226123153533233881763925396463575779053508227427265681427238097156085341455350066108070465126445504677786946889666496662157634212894070592607183483806570929212087411531486884116465928028204210063603320451377708369856888202549773768890344453598534333814337265836228886563950445590718161877701584936377313095303695359296913076363029852551213962300600555588677632750301103364884105130505638563251704939248548124656780821385384953858673083813051538464888101332711431251626926003034957616202738646371147871012970008730612379774123247320253478250044717418847959324010949757826588697798284164983600936364462383788405194145606476484932127129621448227192787842021740875101988913688590629646167194026275331105346524883705346695751436824505635664704893738175076582905102819066718623409572122736130841776273024477291644045506385343562214223167134949219068035972637236698560178304975695448832445588396362442033807815631566077962995507561728088433817833838748091410102738786212578389200453588046033046242786670552467672376994094209375833126733690406236552936495615653625491458176523444171423787411727684549466267204537826506555565665615478796837541185706914345558560863823600543911146686414392289244486078944436313363541738900974228091425200202450726725118259118265258923169603283878605508042232022108742612020066272533563281636346480712288948928838656805320687921383298754598214487865578012386698243562585554299005915784943936802586086364214931314168432922658451744103896241986482806257108009512557974181775073318894010173197886032998247723197851462401268332769246858401342606940901699517620772082166598296946713749876273018353898174154240705301500186646263132822995435349547705618044704922991652211479737704783219204128333763193285185591425931208733557985909533023095884795971841417456510887025306021445694419945224387689180015287308409834945043542397185832221295928976496103969564814866890795277243695816684539190854796077733908256131912391346440171472096052389921391583545740947687454331011946753619999707566352229741760680982348759615622047904153124222158411234633936217814185010566025648705732499658675400976342065739734144392292963644420423259299209031094304453936201545744955484396003123941922800725227831001482913269070405549625107588095370399116029279333474704269092114843840637788253786553418983012253481301411799513115404471571393739491304501836427462662062084983405039155006295287298661763593678399015954084506340779369491302278506735018697487719440383548265386295429701962538663597387139764400878378435045315428560442219468826787736580134388569452809529151852710975763704079872041729321100693251651052753443835488045096043963077738672878847942358842978803374878421064040601670532613092687773109436312675807252226669549188843399928212959595260641752202298826060213156739657613391830307521205487667284470980356555293242921751084717984891095277332169473612023571002122854334903342216087698366141094862510619903112492123636504372402910568771827038520913783481224263156011547170121487261072425679236313257835987200090929265470351484436274444229116453915377002767163198296717218645998233485081939052998789610577225900806888450872677174982106505163795823286587729332552857849210268204617692490419513822307005975178193435912678539504882986792249813848328878656829648041164676805381650787927532039108486554777014503473080580555892380048319425004606831269806317912822610292504149142624787324530882890681190578633247749876146965875037007529846320860780375327782565728958421409846957347346258916844975546482003089179469688639510739579588333465171625292388184607545906214812837758488150809717467589073716172432837031677638230568589562218511065042486575583388315853096655468476496845119922641373859507716911099318036589673701172384468529165966127779599310402746970865577616025844793592092179376537763816142742713218958829250744855318678127260823960934793302770433054778626962730364427575611911178150963850559899243758124694496868285859407451151474369623661136859303892340577067076915636218623500638988866290222379909605327419355751438168960904957312320277138070698290868320305095662668495076214402657024959915808521656837722353417310445528711785877559412363792806663360900115606193549474254255278130668749938908415216112368155884800062776767866171405121838793391784979483468851423671564615243652153283704230665603952438154868805459580500055941368919124646001512764940463767046995318036739857734278565207864670559220616586064566862088558367259269995373616825632701185952404210785017597537923077785452934049875708749958997630876526059746705912198941028915967441253482609605927319095967922651433014349516866545595100482061720704663245345305258147679622989878464059990257297204244981594152344502394558982047187784665167658907850925929049060521157009311927178358002259368158452282313160723458351093934657782836010725277002391146710132109634950371518611236791177256635106913356671053790996069279389713149954719391847575544133563718205326798145908371623058933482247819673282690359630173183661646046670141857334232790718784449961014861050777404892198863297341979910999791889267797599855912558250353020522216554926312516358181828397501901697390007542841213538249944186302337761682475016170444730811381925412352191844608777141333157946351385003579381951128963534765851370392067246172603619125634819088313284665084514669221060273592012451840428562259059996743814142818565554418784802941636118722014472433057453173309406454997870741600867255887738930899541707406627273264163676987231972281404345326728638335026021170389795568538279945196932750927491532213891427399411105075839575203076556005813425213129348907027014902195935833550763301483740743337532867813349578798758928600902555122884565083134136864266186316686795397654543368175487559836128729802721774299903923593060954573732478138777137469421510149309517495967065637773703900800130604897550531531218762215949743643844973927060753175345564382516305265506164703688353987352710590020735121227289126063408650243039050313241371934807688579958261835803154849691453448596824903231745971731448607613023953021170971250841778544926325508678169823592037796251579765594008551215595978709711620581582745296895299316795236484264559174438465781394774957371452840397096504530225721928822435737870122481226933241252235203228223480629066010903849640696854143537038051542012187322079881826347011145948882431390672585079224357938785416774741419147500030789646531585592477178108668739387137139122537648732120921089175505475085659426807768046274966335177002437863409466690082213306401255369054442989923475657440746462239587653020718287545669570250137883988597052150815064530486401973228626163295516615692291532895413637989564700103595643329910654122527877688835317903713628238993553159789533737580168863550223916893230088534618987334064503255726311908350576096256388913919916089660069301299490318919973386061846548791041008517090849920413840363007345672796901333863028344529317585550270456515586210463943182993722918974296810646837764981044818322668329968202590831858460174529550317924417045365581522724118547412810303725044109271821688381869750038394753684732063078270272741263805769701425285039941912809845654958245451550723897518824545735985041303280798892714908925947091080183818240727394484875837175792483439208714975630176513723165076241252496492407587447563369737160424025741286815211564188196457781661747099716303547695485361460349721920050083210786441023295851139892971546515188714554659609478659660913588723341796921859987343134611093601499761454501640458389860364885403913194095961253743254601772151506966067708303055245074528939444623583600610681757007054149599615531994207769464559906711359958562361378787346236485676163607725015514781608987213078163076602220974373033030082452875893774925149524952237744210609398237123860091826188716264090193844230332776263049494161367972173227200718935206766148008529446194306567442741920990372906560340202152868084125689831246695397192142772616834664657570765992363557028073555146978216076117306119639831197775024344489646758999754292980210361795059767435137326647461556676998395118240236044015426262361675187160308192839472305312369603733103390408920511223283664068019935930604788752399936924414750704867627873436898082554775638074313324008907496885089679446145620259808546724260018973827932724122841218078350533597899735239877032901007646523592546983864560432508968840407171983682981434756348939686315942445270942770966179501690605097114916739866566104506142304286568233921179264689247160714838481547526468082630133096211309831436846820053158398368572366986391997981697437065558908798713626230621893406832507394389215376515271569871693002534500066794638952224479538254505812086657903288156212879629513505045526775486183456744131393658475850770887208190699223849937004498107344666088153696558759307265489361341340031251361853702011230317308184846784109225210512199216717454090260654958933228607706975653526086569111673063459512308660444937472386958672799914551466085574329940091192314458539776902080850717913758648646999173993204936019139982495399334367535711524968249282898461760125172510751988857835847760601707833747648462175828693369917914431828640226206456560936921843673540452820627233543328678041962542815914665062240181453891019696183250588729196225297143364634671004193790260469859023482455066311998634424997645285181929528481086013880973281585999138190787107344614084494151544447858327599428608751291575891431652829779123822753990352501492224317384860601400837058737750387222404941182595374043000173157383057704040541759643539556961360419303450316369807797652938678333423111253142418779363760604278600817479289358238043301549385651512867267160387939276603919490393522365573708414338810543372337663918248635363668056854798330806711095066501770145352652637672109902261984618758399431958152137413969152765486693255590626780146142588997362782757325772934735421840495682375895420084599436469559841389661221128744887416947598742870053061624068098312434394306466768746475154415711353949100817698058858259235928030640228725325303115320031166096610776630738971359714578105493385300504380888463627434575878670323882757403677412620030685139823535896163180855401313214350917377471903116877381466831625407011436209801159758977474745492689348074387759307425283511279183713562362723405887590339603655349075068568166545063822645592103171155091435293683479077838032432661492089276855058750935375510402158609380066385995135641977950798750900928013745419197932025148699781053719953436396372558564649804171256175486067815373782774435279808902837142748699206216899232993972143831518744571245330051212894087248726066174676516234777716135387836175419266290545345999524847715403029029203071115415468367456983816127100813499510768587814802585688549237019957781414694650819066416626792768955741454151149854987643370881681689666645908727794598890758431653468573938256883300462397346046577508965270688020825991993731627381299443837884458077641031447645528183085444785211568334094976748249955586377193667075119261481279255659391726931592280785626231452096469033610946606001481185335974645184209789773071814979705302573616392049310252026744106313947408392366081630614993191403534770542373338549699215716592639073267057802389213268930541726551119271282362963044767978436227766771590216914270032667401885873719914414652454065988741020663015896976791012763119214122166550745716847414413583912590930014799479792421713493444532993948981033386387493291177210808881585555172146007894327273986420589258106543657377187147450654852084774137375287410968004703217085005284299241020823594020634783569535524662630652934036281921982356357224165505093258066203987310029964800652343209496884345028062995354682458346788124179933483087855987151268339885572177591522383650808997672578234287761963205774883022296170834992410061670260097007209121844637232139561993015602191868696091008251800472148661526968395210300529677745678153304433788465037427890939844528717204983347329072452097507769314680460367689681273003882775205453490294626088313690469375152985822935278389547998672249785235204125986396237952470235456920422821168868245143869295819727665833950417160655940994242651554107060520613124596865502173777240806211567390425484101153619951634451676082925942019081291715505774248822780116832302351114316553918253934466219358554237378815363221854315555534770878529652681351616746179606938610995318909557707984666931366587708809716317112238223351054690252062142492476118917938596013930341989372595856937399747890822171228187828150424445750790733441824530732765967249998326126039614836148463938880935642416010646461646419941178028269739753887588084296907016258144936315333630279697149266761349383546989602208511051620526507942162764256989531642088401137660515750939010900647954362925420520259361600172807227305136106418170957129184942069677814139796971612337499207010916420941600620944437389111588390483542119748334469626633602971464872532406459382080332891163484566911434975763902707636035691847966046082242050047388842713802152242582824557500059324228080893523330311747022350416961104242747246084678055197093628884686950248767940807403303502614789509448541410916485702967700389642716317439387991050877339191748389972181012188568706439246898353463004145733325899293900367076102316573435024338376499052652038811479294006067666814138140116640134452541114278272646642709714129297238517429251531761224218892703100444368636121842150011171503069191298180186288356832240575523085681607121040653875372424394045408226417868177595161260170696086107396312352338173643585159740980329190268564570598002719591028221847418513536585225726810669870019296451627686361262128710805638941935954451817722178951429783080418571350124825099616524835636809414486586445387686003504189982027844252447409350710136088147098339310068227931539923649265780010944861710823805123693153029794873222694502923824797758573233654097027182664046188944641937551717688091711620943581994497552122782364958220732112420608442904492832968359786320929285352887352932288868736309936915393307513741635382594881414067337366346585185490863619562222969355885825307343732621706934735757725109191597773413754839568737113239531826681441722765779639578239137040671310210954502393401300341130357956335423638342331367996470698943063527764468703340859103685378185288525894938979129100733260380995934759461741748359629784988466517624368831070936994980338096118145104606897826341026090445431019358004266874720658318391421323912730752062756497888656710595920116220573373758693157350694217100086364931053896626685605728075424952938704449523557000763491646860632387820003521990989796628436369811220825239528952103457745873053821668491380803567866409017709524979279115186771026027942008577483656450622224944159854793526729480243618966476577337827551098137961938874144668182272239374469175989330521609440997521438545411850304242516908285734095684346491161350743361269214119804697861804192471146598530498823401108863165981871868329664995517776655459634911824195096215142730371912031823917098046644183473856751855452185498660886141865003735070713078535689276578679556195702631198719878659823712975631548811364399827895350714568218119151601155964303082212102613831913230291914373696262162064227232367322717526914475413375087598578907487716334292319495538923536662431578840496399895136615036417067127426245231592058411153059519836782106364911430295195506802306270889702286789898731332637682922786986706712151474080461837457785482124917023913204492511830652714986453268585859463736487313525601289886485343143979015153190725245690713769467066883663645163780565678722242822134489884604561010383619779823573868162994999553170117242400309782131215481794898150029998057462066162075241551879186605094072740113578160357831984931153387753928501709251574227072167097758170741092494900963317597787048628830255246671590108426946997226174178557995821573412574079267535154028958652058191037461252157176339796941339706956275159639781925763711600100653332746950528314128792698133820618982058663965799208267425639975585547258544945120015263558635666614745706954345853551612603855459425209284629706737929335787108348782304818477913718276600791858017674066380245691570447544804586910012467383062759903103440825830606942435156722270701544959614973790778429521097817745901695372785296717517632416656931796816867767686735338859984424102854237975771409814945246351944958829522962414568690221477994588410469711426285711480170182297125964887986197026138056807549111195097221559482194263082576693972482383824836419803887678749952480550596554981432863379804251117199356946280118110191941264762249380188275262487968016101347722632999504707217835419463282266326201847352411182648366157503437308086372960896552206367225325231010832289927464646004040799420272402623086772949731225558691714960065796430086939362368164014651636239702384611608178397184930794003422321090949502151103947979190709032768038391157534613776401287602993830493518144330915640136601039898058777860299622916329265605055284154485644077456845474862006360271800330821412469965338232276692986022269794511272221169970309785127745876248828409880354139605934508517340572264057837599259242694619863049960948629099709870600651214586986046584833979848370893735544106775188173499794443925409910926604851542818907468571736315109289377627342131632406643428862872007251973361187317066257677744552709400203601708387744491145431133659344098680856656008043786728776396586619717583800427308116233278487433515316137852755982133206164891333773701011610095346834225551504741112962832317988821706675474431640773984721750515365995666026979258251297319092766483726829987945100416006063306041695557438486230163972398078689949817694339650937773151423287469599517618063040994146091316431012714928450750076666041108798631380704841287978454536957162536886485904528324741102690680002809171978782783604296461700552211549587262648535762124178053921528246332915957924542284326542777284976624085637302245482123206792679648481010442566056365720000020138201363994413140410175468933980066991177222646112797391969688782886195865172335576843094248927231641403737858500512595113294827375161034078122541471203628806891168934340806682386566846774110552899884528069938756803805662650207117626483997993243257939348456003485495782123075584536831863230023369852346981719349900537863785758134621699803070908554480606278109181732960599074926516229956058516546100418317172127341009588396977014534811013754641551313431199469042729710226552091582823035032557043913834538464662569444994112209082543029029280155618192712328853166898152037983189219737223179262183889536331924134663224250847863093916470980110201018077074924379719746590193846969428845231523909037287508866074826340636565752419872209365715984847044719264987147585454814860792645851040009662555293893097336331368360851666728073677491258443958459183487178762965062544133635407732137277986662335981378837984664644222867165731551778129565102431047306722673008839126677243093520453546461555486868704110920284081821047647697140349737968201084284669882571609967715669263980161355452013509181716378937046817160498671086446422525345378167454470513542916786575570157325727739784699632290766214244364032311869805089546606957403510073600064491072169220402592077306777215550738506992970651186772130332207006676673439775473024408680853572698163274855803166213561240973121912402383914913509547036692174294582055640897626608911180636304547124712435620143875148991676241579526686223231547229944364147207544964482532239287231184555266502942512055380617156882884747546628568341217313975412025917061586738114290880599606678354029623572222095479672874822892468222510973444311301803632009578223184991688506655906972538123661425094202126178864457917603002842615317255184335573934091682206349265578200946936347659703720996530683070001165643287189872102862974275467756582072348542098695427501814820735648337481766511879028501940974489390318291055477765837707738306013378200790331331030129200267819596973963120928011606561532253791552761717149668971947402930391084370059521280893092103887439138383031714501437983230840378843807617724425785334874488850645768744794965147915199547424013643381549956573274621604528535169011447369591240805875487685456361055116510435449932700063101063023635511095639822382015911849873482801525501952772799748033008622380646283198129101396935924658408174179751838542304798058106462953535656595929374057503745615156805451916571447944257206540966556233391426484975443102816990827473472522361838750871388698483442578768881385286775271858106941203260381648814227315271514747361694748699804189063405375839153201234179767176702196245867948517901421368716691858719397504683513683024011118513687220740200568589525855962703141054455918035974670495725461338867455889333991371188027879520290547624065569466276868290465194615934858823110379276506571520926885816422277978793297732940375324464449284799988478305319979681899404529023647280236273019431362204998706352205780712019293806400285754309922752583305527735272294812698588690261802999351098396934069894948619734767544934999127282870824836704214842786967942746345243069364511280084197834906722488500379280814254405131225419777420450426906709034351654982196292081697740435899791680669374510226611240444201306894836396087925132467270462345549020231757270419405294535708695058183637080563550368308348185328342074947433311169731798360679765027753817205846481584175396663349844645932277515117741190054783353792008544038113038868157333098800400837617792116800487430555283041317939524005082814267542287882860468736645169101890099748808142668582539048656266944934216549646026887458478805896745580777997613907834182007002936512849946118658070109539927106405914601249652243951204825959470906035036676721821453713139697022556388489466291441757544337277041699697430496672792665941700264108733888991517574666775871332302272317031617800907418619689127558315915310169188595260594620767180597150228045858577327007741664240706677818026245685244490767971767601643543922536936485521659739516974975784110248699353342701743454738030301920572048380117980411786348667424612025441424210118210190983453671218483645231623793189094855262436604589485419193048879189132524439780736660105835517794337480664543004942502262012451283006430541580423087022976530386954777386157757822892516606981083275646095661068280230954182930479700680167921264098751349503401873394669012829099420411549064615383984993796733612315002164831852887097017597124089363285841715364635076428923572341136140863878359602646512723968084925074066910196783001996915359518842398796439841589795171535955165518526991762095204758450465144475126184750801000606574109302924113836890448238605832487006112690459712349945899187994046922276599880793727830778806749801287272833643414071886551441982806307938683859803189099104939747938113638994125596890081113596438842424522140848256691907279773739012305274700104925978607874003896504254246495001071869190294080705398108359059440860740099039179640903291638833352786666886490431554264068263698587137685544974748082351558897128663930734537394976473482843142508885470841970861822820008016269696099271061065420195408634602989217304281346642726340350963717311595479899877768307501875926979223852082733514432685116616365605382224389829126243133350708726634863907050688669329930373151379654164584853318153950080661404821240021293982547044733746334778839697063763159051083837196396255844562461121582976179399490063902218247194707521924094441373843371661496648456689978097064682116504785767376344422220708556756465803407720684079863271274008978590041975334365545701439832013727592225559003528112943368146161122132540285301009000438793217937568920341981487419971503995587314822052777795356733706603048568328779817618926476070938379067510127406860076622667620939440255451619240351320562197424289210073771464786829115698736494255138586329987544290589271848914978891550192740334400639330976166145968882868011351009179900492773065413993670546191042234218456719198710516580523304494315817219544369624896657213259581419857103596582295439847390215819364278807876200684596599944553755314422372541894054945660990530625802437180050795915439707714873368024102916755736426253249788245736202343631481610806001769627182794404980007977060489448274742142459783151889083482038021846735247253654571223434557844640307496797116409775792847748794630708304020144799874278022737448859684687206603423064667820188778292576600569324252209686516090530894871129771453938568261112891491390320026467444373956364922471940529322831224394272365753299855107794237859292681481552932875607618406059640884023901068469695318785498455299913418312437469731684097216249909715408354987158297394597394779607201216811674905491248350674357052160868853153804073015226320998421694252196808690675917977112296914574008676863767828619166876344864063868468056006570720630879642411332673535280770643172479542295699763831489196411545085790931320400665575213004350073712521295873538535628101720054907079964872247808997549514359524858721938046233871351643747305135435119116225865710216041989078857991094195353004892797760218935188793504584380442176828844762811073381302964987718961415882853192031264323243584341122329213437978913249211618372359003364669004916409065948282836792746204211059901237443730539275795344631766742872579149113744984443946032125507122392238637176859396591533003498247682631100386613474697284763030262518544114310850840871388283057576414517634797279558209309869862400962422811596964557598701569521276935781994319937523112910801351738363914373036624022358895151100038073057856048912273041730226470820144994885419942613757079232248986379203423120428828462597171833352650186242473731614066849710628838692704791867479749684529793787729756288996948295373105440508212132173512897974685396871212802912327474503571033012591173767596738250410741378335082916041425829825770008058679542053817738284433274559903390084584971179998147749636296842384578016280654234968591858261918908940595858087120411211043086218869218069728392002355180603438951096046100770900049002398729803572048966135043499159734158576228289346144011437821777252827357389289020344159682024495743860050330206856043842953344879409288214008325798458980563092026846838816375065707990492049669893268601378983599643488326098241956182693275369135802405314586403165527767961726795469365132110169797341693773420123380136952410272083803436798806972109893061371658126048337769500078151340510192067582983388344713351430384304559690031654762107551276508331920277785011180466788012350498267446198831530816949759966489125459433154589654746921131138477973881976598500040367964511694366731289646482973232417304808102952913598058642890914238511004754964114540859439547441456684734057388927084614707197070338491365594855290024376651644099294231698953599209599086854870448138638750126388471670958837965884253976719609424038784469913510899490470968631396513878360002802990076175021535917825308454898588510120124803232253880086839425140173617408463050011491485911729932030553029022837948659744197125450629563304358091011050705458303642423920843089095464641747019699548914984553985308328183887630920666156219602396317149820602555760894946368715593882657593779027008606794628400196962873834881319931033637224045751948112995222467244922686190070817504666614968380926330677394084486344242879463415703334535947158768806992408731512649473114846285882350450752073576989222272924907726598633448642798027119726142323621941394290119843138084890279516377797495576594616575721283467817674913066967541854841635045738492693805341129889139491014076088026284689604252681630674689717775245156856037214625809027130050634341141639723378559609073351619038458520297925729794439062558540404722113359450418528712546910863187633924884576361646365841956214168791914215204576518688999559645681735530226132843440348757348778047824445525808842150351170144144799940946469446980817762639785678597977330335372626825559202847706694463918371134330669786380915390328005802777690041419099223461531889763452648015747775202974125778250738399143807172076948606117589795505124761010382115542042476286550240239487743885844121621926095165020330902365689619880257098950166879560165548362733188097305779674353041558011955317753146622167133878856773997562827296877675728775545121929675416033265583357266352747632891347764604268620343685460028715414451720737283688201119892674846006851405473615556001559087940214615048666858530731346981549376494950030186905124977034983073013293334663507608467141602525038812709595842252911014019032382367697078696944214449917847335159877435389406654723988163573101013301131758314432468974516519679847146991993627634212201212366693112975281827996498307127628889437735063889880138199269729243679683656464933191629477977369979834315398277489403167475319073929618956377233497731290404255880896628381651061292128944841256851164529189399683010659269612547941585126676752216797267936119524116513831803031436810258301205161529570565944543464450254954535229750920679435485533083064875553956105989865030362962828946156931817828928817063257928354750895946765622407821981363152628123681899301760979752227682735305160988471748983575076935658488498538309855263527323612861755773292815622141259338897694839058454654789065691027981800901520894891728813117914817744877870568219804268857721478153501852330245509949288694870014481400932880324930017973005230064059177063895776008466984901575373629424619865921410908974680525820765147832525367189209672848053219995818375385941650063342990676866770167816697452019558208496973909064808172989672738148545239275403739164649680125174831273172437343829249919139796861805820216807633053910149827349038193480114743606550593348860888796747565424882068147252007305140562984506483889366701820871673654255328920900995437040296379042192813998287063890029476155687463761487580923877994342983057586645241181989839471556984070948547829183098336219649842479335796373333421112526973202570254816873745308815906264463704758354171957640279397165042712922911696279805909139923395943202127115629044224171395968101667120901945545434435898210499740551391675852218100596342433469468418464669091750464242899444332056950701305930086563785043313935798058012882414805687410004453680210318254215833298375623496075424870023571582818874693726532062855707963205962857612569069814604717252594569344437425843947389013913617585153059717638090838990937253063757254113221784731152194044452245416270909545566905274023766245414585191316493853035827407768558842184639197993828571206048151784405895328997818915540386132425902266530010616962725062362811993983052133070520144916906545524229152382561925888315161386756536726102970266158798200720747879260709559408631785409214629339728083353203295721866828800168715633341144434800511989688822760782863071847409601722576718861296595506437953762464980779241259683619512271864083430024396038685667391403001648891481986424449751886667673731069506424723895344463420817452496178522210948085349622620115950564157745941356525826984547215317121209254396698215814120912962399676174336885641326421884367894655176774676681525152711511127579241306535613152318760679146779907338293709868474564854858287162035815592506088330450017128026761908837390515757825496201952813046185540787154154239445838258079234968843141296286914302720855124088552585256532748493198233621413366921532903031501993837449757309315863613454969953529504606508201870608088313189676857897309998361548694036656811394434721542776133571965670814056254692938301990923911616526827233771982812487184051966665084027738790129631694758698666635783228162574445367548188163256714205217764979356453575883778557841149270954456684433613432366332020634263204127452004701407359519936525931618121840949161488697465408328153647008166183360251688628964228316000615499543033098110501926603507929653016290894501471915365239735159959591863396639709413174943529026074135517461478199617644351517784185091847045952170599445936552497316870921361219410421360249209191948006521930370262872555947312075714482898234642689857554866380753430446322237071028924758522134291139066018073243370338981729793771122404024921240086248094608412027328533980713244722713724950471094939988175291788095421604681987727496605505099020726565596088914014645654208076180852748819932126904717635542713206898879178714926230104498451017585746214905645897580189310237972060212443361710106642793811125000394157254528310653289196447282014168585335169948342771526578803399273573344167495385152339736453845266352822972134409509008329974659490959683083198235239428068643686331362340500619905671046407306696707046672370182716515598155499849565528980645726214832251741634745899131206983522694648971835801002433112140354267953732731188306762556218392634009424395291682168497133346657612237208829934546256115590747922966849814721187686114084409263942756439004582107767837582960321577236890622346136743235156044553082127543616436420549586164788390593155966938460048111575387478613552630884805670426830693445544013156615404316632894548112162477994836535452009602244052489130452181546141219435253240479724648696143896230103004007833437364938949591606261259914311781661183036948449763677018072159934102178622459942123534211123197023513730528642972516462523854142365573765720969508005145287374029895943545443652573468145186336945725388479820179920860541217491651219680138858246564746714952449343119495617413821920013901469987525619222459830446344796952676124591787213145425790571885994916906478115696519746867903317727932957562507534428543485569619410540418702090568274702241206650902646236935195734993858586255031060718083538914403741907478839487063766891981962507361733347511929493382832002661920079480900270008766732373743830068266084240176583820359595498823265630189682209571131544507683013171740085993170129701355775655817527487589126944049391538910763049341194589785708927313513854591996576415049477628330360990584225973115760289777465366455824636932321303720691500395067050797076712609007100891415982537529258053713159914594221157671571407924402656175365816064752795542830841556511489135972833105071307050764282565537886804479982516399341206598533162936683310072871326160871806189819413835330120752374803522460271050928908195854094741721895420674384501698080473209762478896733282106366036744590882040877078680107189269404936660545507745771497622667661904851311914644002458665035033650144293445157557774015311967118673695060761022150977087472597534126041736806802633983793895234050618951786026820221355240103494083340257739201390907098674862590927696357460788533571586257680227551498287427088114321233417945522817832534661540467103685905587426174984001590350773754135645243720486407856310173800231380370114384309062820340844700811572369126739026249999051392924424203514127409505902622173213057716286002799571445546903888784292997725521232316872214014214389098169943612563138417467792947547404405913326921525108892208382575392775432099111186402404659724909317395765633971831196804074334870502558950419230544702226285365927769235887948359284815722347782237665207616811129393140897889125031175785952428998548270958191579733868400023564470237387506017592603058718394273105703859300162006714899452580957327940078136369326201810265758446379088218502106063715798273352729245921536774950177835236712956286458407342303385240523949329420896498524567562944665377291489722773258438422188857993289928329986413295855475266641933536651524694639729402063580597065917137872450737358350529466896049430535994794929329795949384785935728401603702949027694622536754794176545605556755319280341586395670422928247004393011107381208327805684129673307933321197968328757060718496315669654733105996051013087129778024178993328422089826364322059439818764704300818855802102818910181925192108989102887289882148925008884229793516688035820996252420425074816770915735603496684688002755295939297203398746739998799055384609125480089314768286283708307702527487101800042542096294835770370999986433979365800961264293268759036738415829054142879205854954256930606225135824655621424270467519744778352545842461617465304271663204405417717097479022726262798052515444596802960409532834423413147752838927407994892226028145110943522440920488839165693604111073633792568771570226369351597777695345796825533228944362964234018181991633636296202698777086887290397169467630071777836089245323086034007455105221214886491104159772455253655886748734892341273884652613718875601963461267588815321614135904262218412798042671135088519601229863083833611259017473926628678117111994629239783663870086874803999996284466365872171066108065703669311732712038213000421875130700748342625064146716582155827262543995913722415676155858349601030529974780545220210049807741701934516882636614493363800084018892395876011490179700819681982451304354366149931628968733994208873934880081105776814410067710947395804081933291426113976248848640884330360077106586731729026379333351490319215934834383439658380692333251991934197397327435029685203449632799368475647140007532656462660637080941844298560801509925594729690827138133784789967544881100726555675040614205735232741045970998929015424298524233234838547727189151607583286487285078021867161579217256471517653352737438530163082357486411970634535372047488697807499194347156364312123273805706309652311846380502455351709471396090685122241726181271410596703678515852498247865258800147023864886192193071024548534106172324567160338310046324706993217440130188173564187895205782922563891202148843583178891230709513615003207858609919175395963572836396654305264274211732388698464317795382551956366995317612736924184752178420044715517099875532257342539264546236545332411841614950398683187365096600984262367121218573308946127674881605383463222117448593502872166148817153822200756314210479375661622137929885383083709165856271514918347199352148940996738413245560880489297848499877872272412796125352132392037946559228673251874025946829689925630399671975165323770388001917069729590388473392052842624743141179571853366287813734937658014380737620497924125369567474510802425598885296309857023902934664377226030510531645104182799177671977639839419371736755396043565938705654749175146355414001358161518545093366379916028511029518890143336639141529074943624058845088399321018895353045415684940544106154024718525582011044670173737965907387094425134200453165152224962113526442450026265424396104146629105937430838447506334165617515314349724132846253374888102949750411816960610634104004114427722733058055734313357784875339356014294462875885617655277355374255131013150839657752119428554291329738802355574850285903754629935223354490067040209142088758192261240865426782160704413476804304745753261712987313135654854402023807881429773958020220127402271325812512076867272760326210410339480538115835411674832495113057161630418501580435786996240937026902480523705866501842334200779052631784712686623725376807603056109167209086497130171496396733649937670002859328850050736311921140757956978290712479328042195422770313943432098806861850404275398064429355836055872083588317271308078642761962625278614063582718957238918129485701577731599670216513135343483760321079033503528437495550086420689547475904491535079655188224515141119287114814117880457895334124556809671854408656740452820731421421815096364472344851425401950688186022101661268304422440641680574079330720601051605503214833518848589988366976803397751103065701248948443700996986072908710105721376242424316511419976270598389140896823298757861226692955707302872571045866957162986792020541401333895198727783187112614057500210971861085095918431338355486183359186210287182177594394871310510476852425322625759989362878032802433040627028743735369389251545737818652942649557066463193743513337555035302042929710626115846443632260760015519083843777119730678668616645450905007556437371413784015299573765270332637637322731127162856403361808196747839493380475014752703608868144211721031023230624174618180306714804735963913752081998549156197187942082003360190662476338025230277776099508920558204505277093932726543751460981947346271275903649256575932787588535978850139020761624475033351759227807206338472202805844117389726261490448494272293023688913858547689165694605397824095365230899712099240043553977337853484402059522798192069797106243067239120100432647483308752497879723394119425918605785343192197653057112715840980135271995064919502004931115867267847476226724794192971735664465254385424387638493950335003169808410224094827458662650644294029736978526851204690377412287637654839742423788075337520280053572359578375729207668995941477576085702922798895019582710071069967459514179962940864724388776582402527576600583553241577915013324006500375814112764171455522132004552976613085590663778736313692752490989718194142376898438110189153828277498798544763152513275062282294491374162915285148796118215536165239222001230644909678624427965399994603943157089120624462889770025155120038410010761360993464734037554652400687938638608720691495070845908816676135373803040934041740040951971003576387306177416698455372631834641480301382136642950974755665989299631153919762509217530121549028904521232832992722692043081522828399630275762481799876873586372014299467701473269451156151404377973975410031867775382396623237482616544495761168867389229596586339198042173106720111685844956820346136075210646680668706713163173061035219019147058262957785913766081076790293180813415793002290686123097501136026442315948465147256800382310716660355311334972962359701119441857475606427688309307390669353340168492222637079617835949068840833143042167016619395473321419319798079638620692007020632053136408736235657011147242873564607647144212654746021373540961812514605726755608252380969266534956789749615392798462272865218229800655818487593305224077271163461163228699443032939132550085605603556858166016417181359693421517406541478661508706894083953366687220744175165598767173666154666782728526452988307761579647534938839003577412027150457405293551659676925645984154835753941024366147076515895097878387135047106675132589268121675565962584528672836402877330172750100955623371728571853006017192658210663475601372945183729031857952028424687848311861423933782430544271456460612972424682649223325444050585777853274212138664130531630324956112663622255567131197889976757894913786130923689534014634814427972194232738596751122942213443607208183074160740511595221386132979818043815502499086199558687910479668115793022086449437772721140100797588073888002741858969398151235689231839819477793492613284432111021684357086558680672717922153072150947998196086867531677879898834408313823273575512423030021186887091156237898324599124874661241775531425422699262130150237504039984968003897447742347376715223912447760001416017933345928346125502481252342752367832901819207104732218109349275063443762030356525400702234625735910154407458358471795718493672650107407084740507327991875794044690832737389288551165989594758396810797730171053537932163941520260902506632873964872157320262034098226361166356505856445518082986380513519473939857743263730598732786027226683346230074695405285683372636733716405885983580741342641067648592498755420853581926668385960917976228583831725140782700120876682448676594225051862628941748972448275483999696349594972386484759995699782404245009568404235827488500956754219978558633399159600847006987357726562366584864335066378841294778015617008435622191247943543961172215653440668005200201103693251522998524397383382701121280350369069284605239610441446502549024745458302692847235238041390447859008702532433676891960876560082803575725145851642358545117226961052387924710813890341275932601316066966791095190732078379972050379773937396026966081082111704863825644975772087438709807833405199505878376140085113666928623984233228744128618885618779446531882564170128756332430019092245272032015594706287031960893909868950501639520693929202967250770288383436501729079437853078258737512685073869733827738483168204297238285838622266227243900590807912428869160412851807719416844296632035198207013134740286714806580674847080051277121541480979720356617758505445513927899338421589581155077713848482764485206886603835721854497658860170191113307663641077977870941818466788262716373943185235662650962542110012006977216237299836847223802464759340815591156862202483691825382090932132432061004801048033749542469714249262684017138717386936301187175848270627400087956379185005551025743137203153980479850133524625129636553242296774436758995205999365579898920000261519313024561002363541521690864997596333926576612257278131413385281102296561118272674276714749453384558660217321685295589887171044358921590253551909358907576328486512765009956502245821439990413357694948128511820443313040010826696056383308657991587960906080115576201307324792087287268766650180913529070405113379953032064953234960415914085169733467293189896746281445935203275473243106793987582566022047639752210836669547470423522865203510190340496938692179667108116623225471386894094250792855248139079673829512631665990742912065121124020857742572293649459907670870707873222717180240770330276300212044174039399857135633764545694173421848665311991674587067088401537077234005042648972626176413316074799769526734371085722928060293255908711553700797398695930490175066541059462660877389116392321968163774544340632718559002956345552058014279766363240826105128486632969140631262480614224023836214205847684765583165709611385374725581158490148681727086255470248943282745704814000099037441253537536431667403870093918891333878244164396443777687364133454867869214223812170250616869421501940177735540000644147042414761424353410504365945292740616130375673127617129790493040771295333159616334584900382427503561812250777421874896173542741048229868501590383775595305462807805456557305010279327145476938367163669692623493791035048475109712065868962765336108425100020432535864217683650679844523132326007237288281310214305750173161929603729360770257127197067557367479549232544058287721180934792942487312547241268681687068225838523311635307247185596906748124565610918967656983200550806468407832301068297190135023433163729358995304094893748964332456574677636409044232072770756792797320287899039620212718186680108690881579802831994529531734561457921100407934908807829867317094250631282278514160407929910657752628895418240935451937605248114136450556317327718412621724055498121681212857320512108474161049243385986914578523388077329125094623844974403033458600934479483553758822252976532102703809743929713735854236788447396522247034582464152617130062954319666662124315188733013773764801760798623395484979309939110280399486790201860977557224803949640234307138702789119454055886520140126944965077356956115472486558544456914619160026099962613244781893751195091559389953085365029212841907929050408860605813955523523419039508922913136685500767050240033777161392427358436133452733079387887259345650707017370795043367331158697850828768744228195725252645722442684391137738095783791255646122395316211432694960723509832271018700523739857029625395530471793411205300593916205357118202947641920189089678702329175570689785811381222918785843366260392914369021457424317733063034002767860069630164043240204981529504747269503786407526718286596517200324215325618584599885701569101340217564636008470175358700362491352187978812840280973284212321943897774580335366928098658176017337115173634617678515905178046566599301790867914480913289119085320814769709239227684903384679519614881759690816107822958614921554296501234314096085302086710152255598907451208593220320051920945276803393269494005865277325157176513275374992321950954726732437418039080210631914424105489287522212332536630544461022261622682005390499360217663479911280432477660927096727879982950820003099957688635497161870523850153677062307437547455837158522571432529030514724770753447371919343803977293334051368887029243060913672161899066531064328997743857506240588347459068578241776620036962303041069306008461929936889954583437394603123544783184685521044882511963955438576890253676234792418685072765229957161598676352217292766208467032370840676320042478869275486956437237897026358062932612666633189683480798838574537065692403046259623158201556819986825532071351700066753705474889880272816332558471190074014509497749007293778685085161091781259745937691391038006800689770846961969633456371485388532305121771256285205644524453799228839813602413993089469592096477809694160117268361322779263048682327533632389777089500264557077323903081820927601014794196527237315691849668056367203539342233692018783889356402407597708763731392995146106680362828256025457231345132869590668608290399296488565576290246425070850919907524198796860068449072235459302264982183697662068332284536588408052340702888847365897127050421745610364690890793201823517352108129754835714871129594564265730778863079565965433181325306613821227213118367646414057116861441704340195271615172717475297682892848950761088558217378631204609076608090342778671888472301049976190120493576179129386662445151348489307111493418651595675314324427867063621169928072092992826328001508599221691365965004891819768119801501353807303445786977362602008328211756380154395553636771003272597090793851110992267876563814732694340938134129428451991441626687460625043389415532847119548408891099653678548455736646281675388426612549574623453825877163280645162854019917722407675819291227489776199617098926997705890227670076614102706325541898440532498081279981760411321033855279918533703628277701747501821830899058701391066785209722454419469256501122886817738737946629550604290759402448282802988167436065489535327377894959044863311209332176800408508797272743075315691530574098617303289509163733224101328343197692803848322338955760557065694688351430736710605332454249692453972938335548402574508498814834791092396646632519951294693826389907969338530840476929578428540182258380232582143275687579273857972820025302016240930645640399224403666877428022598065455804625139313314614048909031120622762733640973403925618081017245192188503941943115800209254376062924898409387192926603642682122034060953168414291719304754930514964209876774128836553155490457912148672703184802694552258491755295287089333528240742994294979338513086781992650324125106839052983295429389479843158281137364180545147484679546538308843107153473827382406210489858962076650608027578309525412042107364218794320441899958125556607179666466376722099630353156294954692167727839325803285007632577624683843408690874692086734101191348348362164964651615177042617061654005041233983374756532361707554560531179750130291038384000901320221225410737665816034906813858170265280329389189260907017221507130323248280567866109335708712499830369431152782575107691230099289616208684536432462061158572020223530549258452711547943297801610884327283660070992592322323134871653774508976757026709092423043425548503960474792957361711645949209139199805887140487676683531600942116303602342276076701035507992645683864500058836783143637779285988015163270679116207833361099526431479643766174178204620116174489962184667475632948191307249832437933319823969896794701221428111311216408130375677766532157779634232019581050187165774055835466236613453943517332001068228702912291818195278230194641680491095382450888724246314272400232910370583252100113174025871376341643074169705143768753303161469962779729984236675523699669379966231118438511794964984741361298663872969614353095465815626328161576271875249413004666281987684931135516032860739850459730214459166199946419609376772842594311133973910586599490206242736642144585473070595351480642174917112655716136787941886323872107152879500916240008206659443125965972449984968178846549353809366273864764391974934370510298390870505166975984649936643235746710858831233207153168866001528452833320206425706031182120389584096562638875932983025200633863095856439469800053862668200982116029646783633631808880162242308047261357951689375963978468112102765517478172552125385842078939965110387733486359535824916855971242645445758172223107374065749817619150843931417884182475083710272666443312030166507887691163499538781495965422375324964153167585630183177698955325819521973389563344382298568150672247803595365816680119617903804321423846328519300771502919419716155264907687847153640682619437801514018563427053246353905642838064538641054858293027999568694441678681050256212955053154537390141817074492523146600276228689022299908967539095611349089824898212901226716081875981934339839809843570338457544898763358601966716139890302286013564767660628765578696465122337939883223317563268582187847167187587665236934771071835478848262710897541647450631822432905375812591550633679533194075077532110547354774946403044054167851041080757634185027921543579611216307271224746992505827448770751403462311719902579541250067697912297279571867486593893845251294587921039393177209922653935498469113961914834783184705728191551920190304714779853208023869518034484826181318784520104236513576597809533296090213187353233677875728064891335409071684247966890391270168582722774917892500020539643376648727779930950757121479347176913253417735953801355365912086311947715612982418909443488478950430616661147936539975790443306064702167010042960468570207459196395918257989968518204119651410462194005800747213652771129593217342321731313286118914070176584732500855472345621695343141375288167837202271056506893478167370804062729801792385886919007561387676162407091990624632472124105400025779656063936525980161823661758169798337605291995773192572152592059105554183219066844105469795951374634755798424726334097502597524002947156464971970591342033528261611114669112408686121954841389873540050924929228325132580377052048075995246484203464144921826796742451601805897596801082161319336979442980955636953191617873396048401312948694458696602547317877122391120645293079675307011694038209727115293673261603465093349635392562705010508596801354004857993743434248158559810535551846694584530741575739022698856003426406049760780054358411435927242049347863428552257153224131606279425938276719025768168945506499394084240884556340770420688527149107312358238805231054088741709471105073174058083609859869804914447580426062986708303300685429197182349928317500513019464459354859528831257032351113901486079617302793265748382129627356521679504200215737488209757255411525032622168931977197420647829289042967090120140034896285364264441742684216208563455012107076377357138007459232997137654018851203169789152631007371627710902665227461976850153629848191899328533848123976519218417596000761109282939948055578652481477090506334265348845399183126233534447735644867952615683475258739665085523910334976135197024042073346658641086837410594301585772375073140886807623264320038297343912240989348030293747351886028870369816733173510829138254305023258681534083854318138444010479506856251872933521690044018593370331028296877917317979129574164676213698739835861134729754625883771045504569165481926342255653949027986172095093738373755830456714413762539761305412157576671258694808515856683727096241148077364720459887662158841762836215837771053523427439159464258187478588735260485014187204603117993850178783076082852295711250288579807001860095380935344593489275350427444392201370931102165261641271719627228839806949088386020524532328746391064451072861091487032450656014419831604723882344558607785513853169689429726815277695760375251962363745264708643067716260576012605942994837933461511953291871455759551732543551488928739051553087302034019988646890747941052524075267839339316365224588502413005855538206756335631115328259798465480479524833429194169662763099166411230670575554800450291822304692386460428133853490421128287547547580612847942286056821684607850370865276965200200069918765981129934695393156126694429793280638440342809786908590161679628352841680346984715896328882672871454197272582206090661849763874239217669006709081978579988619112651485563315277220111796397385162062262838974994646580368293003483520315559769088888131474588092878053567396868767782428408874973080785360703453563193226647886032746021978747642906354247693845827790017566652265965285671231422758094925841692776276158447991137710394403867479197101454423535078089624673058170021059390394033711979035028897205535643348802772706723589322468880704035658843296923893283615276493420792985886321344953432867763092990808543648050817014802868062457794669333476712003171473909914908275894715691515051828312779873964616540001704951692322169738328086774771185101567826630994152549493441712680026434569659952987692310862513618126967540835742504782745908949508908059302852960761722022592780585254629910047303023021937510629779670687887197676437956081395955103823593576163269205113639584211324807479264362558534936873303575144110548557309893598683665896846333964507122099985819483538705562603764438447536855610830168698597285158756225222199804301332129125147801537271400941183048618007545640175672846971159771516059483542816700415987289261357765352641957119582863423680265810657260801385639719563358888076542460315165461717069333585233213123741239971542247028234231369212780534762770400402359883399870510549616241747662189348424716813603039652867598161757283108129787048177121784881659543785758260266288276488114100814253973301357210490951436259454472958521718872069765439694325370550343388643666017673365202018431108124378352974977809794058568752144140656093599786706865145899589043797569806934665281564236871059498669997994420325971331625385152436847234282768870947757732233526457876217066039153787047012812158369527962884233269312118870257052266582550390309020683472754541684095447317441150179027768160664238517979385079830357060144055662264995341799329291652113218467668417681799905037337948963063773725362991635690466922640436742322926728487816354018670844878017572460029926678527548250456914038765570887695381776996967565828306896466041104219266105509751435579798677369510486606670462841167021642844555378075760023880640557519254153841612210283490903337564176368748437584340102535985236270516302671779520994915854059594467971610075307306275012136451770205000786963457894967467099973139572082571875814182533631018321953080901639996971723546440537404979260994503115106459330905570980854531967741703984469061318939718541956954389621910597681935038539062683880746805960687323518381128049747252048897450839749488558720493073996959931737040177856413569099058935178986735530583804623331737297607716461535375215544661324956277380636424132678001961739269536446644412010846810691718526083971548138498091830397868699406366008202346722203463696457425719444443586225124313081642577996436336632545942485900429482212394385110234418835444513300226943412612416755185481566462286849017807321483009429314113255099778182773466167966852276935423680889217767831024645878835114147010095078795909976589353590305109126280965668439908071578141818119563681913726098993774720452693176471200288067013514490134461950609522156313642230350576653539402827246448426476975691044417797753790499357265517642171947223893777352981821787782637382025019023468688869310958343593856310080438924253046815339903249299401991333559770349727171848552892864781786282743574699459592242948932121429958290896387449949062146215564292740751495416117688520875543846531758423954345022229324778546334444080607265101440562365719666447315740304390203836018801143112910912829434128293691596197224969113665169976965734660559616137419001463393135261309362634217067838714420002253867732038131876829580404345444688268906599560024053726461096016491450296667791836534522793862615003339790807128245157731587260941912054112347143735460932594465421962400906103165345672416666489057682805593036716312663466101119287107541916462379015450360943448758893013826923637612329894529479472906439402211033512963705861415782735408655742412478452293840749067367275717199651907990232263744807663238549330417283766302398125666448013665873555754204849173388077531372383648159504739288187118440111471558041756368403282792299779408244622141760080407934546280959761195513900082380523765853452484647874688881119416288888002132211437080589114672798618285601301969282559751653650366839518235182875056476757127266704609159103437993584719809751786599363265890828151853765481836827208958772266729750112392148573775664702534363869895947369430040463588367782629072781860003393092635690222496466975742186160923188146679257791383779182098443564968873847979651343256593508470885860954346370183621173471136716028964077226170552409053999297348278707326480690382201989167290096417293818982905061424007309932596300589111927137734602427968784993136371901968654733534965378786285509491428877680493800171998991409917342350818405314344367450097199965424153201353244479584512532698731597483292515322821270948569561943798764115430918707279079865174124811864930377282369480982173114652416903935038357657377167068617903604582645228150299685824257757685310493823224945225479194014070900040925098120569157255807332521017947412904400165356130131997958836024601264121223610127574838181425087757149564770306686877527008340018930787348284718994393404917627782060644025884519295707522817167316660212230283703235460401080640396469221077090204122644569088206871633571982147409423601918632904240554332770837059774733374443596959833776318520125924824332913207480696326036749416023445368176254381218286492447128270456000523153830451847632163114839345642615747005956601469669244613154259252019735823225114594596489853060747165895221667465422812906581969569610497922368865872763098565969647611573282869365412329759577090940804234201630520493844889576775222405154308167562890523884591527161033358373862204730805231455633497425544793517305698158701250862667636925634159903314871412950693877490716551521216238165369919948747441931328886445301348344171479789060680627993598743033637985727514488564932984916737720567849232449557839507212160572334743900448614038863778682842638274233020482658840362246144453130298236600228796802434078166645131118277589463224471766920143601628079969944096136462875441443840737632583109951931808408295007575774557328126179282100255839777135584495399151693193212191045767584331715448956938310008297182490697332298122271671055382057665545291433047816703081766638109997509592895421587299759578226087329432994398346342152775501404175573692847858949343136070770257849409862468218143270773092420535834701718248161302419135201571316807306630983635592395718174675557264615923981898596579493431493668823920985615867620474668608988753202919221895659371667308353656504520002352484492547103481568483050799952799393677707201413213490620895770367985962960147992941158994358033786433379151163782375936649516655271958062318073806189441928004486463563881925333735236483007261379859093775997893706620691630258937000235013342194100810528768583564836525790650486102540146112302363428532612755615054826033685904319631219504377801346457204381542987639947916870012068066009598009660189980803258518963696722843544876240653465145780926903853309955502824662205755854147548245905533512530531821652707760328097678024293189392088427649011541484104252037927476666744483649849772459142166075921178041903369978300575456849429073643946232698078578867141795593435645004240214277015711666310008748644478763091160348173242408198636794038906221376841255116004327998515379836208851061921093985199172664899335734548114885560697274764509407570686470428085825961150789555209674435787721248316580078758625092998088024885549343827190470262795915612949388476594560744678029825306864603701954818307080703886654089450168310703064409731176936987645247468776767951487458459900931471064025544628385061786339090325342254947826398522355005437158318306209372914598645859569460805708651099669802979965413836124375693113422408725193605331533739459065805852408006669505399331214835895811693401577213705074764810032838472484365152992875633237911436344706276946693483203122182812806444897923586413642456847347048555690870172008435301678229674134446941833013076698538480900745220134938837620896903832150286190219333367853657330018403024584411227347922878991747351325185928874098937974042770465550004147364038193733757773546928474936864641282589689815213429122388099521009997119181397385479930352032289911425132550583456968885157393385819699760225687465617984565429478602682344543576556701514128595507409944260687580761438597431466349309237242139469182333244604334377354534702361232347467701434563991928677503216559673988817013213567970670309521702970703253491769583330512607415356298541152911703528071449711635412192797394794352648383121828754260886014896178260524792209518713258347216802062708386693206402433476790835780698858712362782886543786821574074532398986912838500866292376597681445664751859546902823039791416415451981500709083760405339891484181053671187760063243242373310727836678105417705847486725442858470925851094825528518555551512155163020384900915260034447251929296458311366904021138457081386677421479215784186806155855798116696205091044676481120152494250773947425984928696852113111776638879583393425440248778675231553226973458132450358020406685291823820380544088695659151715783346439304756684554422963977095049593786663939404248806715398545298572936297665182534349896401912596203260285479450347957860220014701220418041375774002183311297960622000729251441632019169350746164342008205087750948365901263643905008917414924206987794255042149389019312418924931402990671979615325114979686821829658100865040594957504059040591771150761216202049629748103970233873854904770675088715082147412046353570532490710625625204749567705058934396758558631393810416628020623591911189130187165420471716091355098467648809404481897197849543151687618281456373214625411120032872612558775256156283487725132296245080025683220113695076383714270101349040977555932611670753633057432232616501339492031166346557103645191508317457583745843262798170810169686237030294863237206487725871752291842728181285899988419759434547255946882760972781607358230460945710371236973818100142970079053741626214749794523420213043949746756069752858083210699269921064206460190896915703635837672754216288864059399695875243714490718592376244456629831591218096677416807978900552041244827550502140122163047049784931141891425821071194129256712706217149851172501197846991263744484433848818734272204189480524489514350728683964726290189266015621208049992286435608438950444795322921669618683804295833873003507189438325086210530838505355201402009241666043064613276671105385660583774637295851381673042944156675117369490228306272571048836533578064695717851241435122460779270441555622109333056603409162772094287037906565708723799674438362363548528142813501686521961592170475115571374587761441734335281359720554789622777093471653468356239536706998384441136722003886840979923327475750929948260862422586533936710902075665261937795739703788542168235954017841453031756232288377009118726455566121822719061064622557320678046401188728627139877601932429708209684648312388326912580984264647918266079899736542126166283972308820099839986465414893898657222477782808315654624119258683074770747150889982915061980740898684853422736201020824774415891043490143602597761326211829265162655766757171230260623981069294378682276267602721597040706767292466912158400948553104191678322564438072708186274071783409868161764834102087928888670437641567793396025079548282344999583655911205445885362943019534871639203550729273788064688248014577763159478874702162411790223645049265720074573891946613185216670210360800880651049090376269131790808543799288710894722279767157832730452954764260384093094611441697133110099900129866005377247543060689419717006301178302857290733248055532685703365167732442682968759291602486301034699065509713266338827801073437543190382003328703312937896743278920645539743695987471888535003132316232126236419801101228558758456770256085005398594089769307152376114184145993302458637401349711145323080034047058554012501593865711811500508323790833248847511365699952861562083020784135761537418452778615952399472311897040742540518389871952303972527226891628631469618102415424489850790568237288752151603831374989480584111586631888529187629051342556247839092480034287860968111582427167246968163195029498580244711997500116523938213187956765080303212619238960214166954466340191033176492380283139901283147574179754398524686729541512047189984418690658328189576481391382545850023403263417884715542771888642351761823695486339918488417187901393003828728574859024643850674593049913888975502101032477148405453046674060478712022173686274871672692143933345523382256880529200273352184560059379277955995787438216272340451678444181919756564234337064177297464048377917345844939912598353075478245735858126954244044666516469100531103724775151367747944656084224830701753764790773464511087188908707297379098480584088010734481130747320047987290843918625079705277654180096093593860381971832161968839426011297410403599910653103310974430601077928691502889322807825303320090124976209143569549328187076296898562263080831363206235508178143173689197620523390982378981370300047945767584662623015358048945738280473218310546512859871785208410647781546586311694214517005403507347977623215463722603476098105459359995846039952501542418729077496409787703197980535630374517750302801492406353161207580864102247284532059275664841571478840300883055772212642001311545995778673242383642923312098021455924219452252454577605084651656196341019512375122031056624710097770101644430281563489854203370398506783649375884268861955173895182119085216932252498190512973984790967539238850135554270041204747509238150873547595216190779652879265260061503744272079935076189555299270554312899723623691376813861325610146798871308651956662609205812151239639560055729390123725425037261747366037689194996070151852635523073460428336405003705012671589284751314859214405734288901385788106372204901360953493414342588918871243741868200433204255514569105628823294558496227893124313025714446779859410879606824531419663024094367901985061555872406661666898020724521730548382276034568514375661065192577807007017617827182435558988332812491373767334391196358381067198211445184154209495765510504343951935818794519588373781131427220042488436099471041287331181410990777381203236935212849017321353565359000709893738375677282563441827586680066690960100348441764283948278508043953655632472671938924679783165358804499974839932253599782039408423847556329271279551910329196838148600442648411181351996946631289658967436627792031821966104252933902867809627771521857314867500190459142888730560296462251202493320737682773577314092584259723147833285238062015967987938225774933718676064486627424955039421185374004862086060114589616916418351066507756875596661838488414559774409624442231146187680226452495295287320948841884006689010550535494038345643725278779118894175551479719743307016770473477185213871477758690263373695970290786193544763710972825118640844707929050299900627101915685111807589581605584276794004201122358412565165447135081876723700248314256726251742055158598622267934588908535762911930393428396297048918344011948594506897483569533814191762980017325758070013568349598569595618126637760382927906731468195676269185291661027063879889740345196472702761013917095535003004757909073729579931455078300719320887351820063975965275498266888095559597578770918580232710718249444676813269961214299664247090519953324274781206357111450404886770769511756454839461065533137105005610806726387628341803174702561945472041638771667708398367471498861245463937035646225479473358268447271723272635910086036675258376718266807058496847430259247744114963900090268988286019006669607845161232309813312339576593541993542408514135317808690194929701713822346940172530278922977751312667207986773623128060635708073429113189700747283813479740913677543553142436949465293466875766033574409631850995467902456011271715589646406427575136656056339898512645603074037498214942190531224565082048459333259304817009682954445839717054224255083261653657341845279721754630659662060468587178815817101227452173999532065526082611424235661149606905144279470296614514636579127953156986471557213415173897745537382524812393282038296526720235713053112831367656480350642308989604747019140610308244505445005344355961487493809655795270595414536147800638864070463283201235688406688766062378027404873299420571463938310998270812384582317117534981726930157420370612506779004490173967943932158968253725021446597197448564955454241295927772854732664244585609400344245498238298660186110325612802252804800566485918408440769283326888832244559293151784018738507560684726187079785297485889300159204371544365862125386507650863805278667064824568830331402407602854063962143818663842261787299867271268465870096940492934692176450237057468747507746390639521433720212980190740048311550546983991288182542749154473161477997936688653403358533172393566539767277152176585037553328766540260488845266766544920532670287815610585310061044992459334462833870150850708109724500645667147302325235284641160102580278210876590895674267638828584240258801654521687632109675490512650177862634257271949599430059971568795832421854982048490327025043049501993217052039937294226593799206915697711066962823526345540264394865598681836782013152122031674023145508090726065110523117660290982662275066879027364660894016642398120300916598887646995654722431368760876938398036757689500001375046413801139597509122449320579322641138511158472833858716774292630568641260055364342293859574824206217995932338833764112639015822819302250504135417983506730297955876330303938532504566525097290931891345949967459870601293264386317272895572437767776563397003711067422671748007575753163988230127825762814030913299663224492714834580734715687854165326291685303360126867039852797913312813259913883708013742497326349537622182584101877941866800163454674000160151235177224810707926294847539166527050303599123516792341133029329723667163862945648053196428325376978223948143563533967106898070337545437162146240805664591268227311553755616859929261757906048403350557773850463513187188530497121816496227326608996122235767888558547200662889744981495462826843658916753119765894082150935637057924458496080430230987567245232987349004964176641675926758507670589066133480669655091652585006037082902147816880268958564192278047040417835151248002613078591309311413732818963403826771223893131606917894865017587927452522702137612423713196249340053192093257640136965328095629792480983578843499108558046303044588582366393432586482907060336002962038607696138146230898553895092881816299462075874973066682951176248654328873349363714380966606874767363262020970161224257057914270494456750496815134237176296578684103903392136250377537093380983471117503385777960752302833208394536538605698398704986394953297775827543787826545298107317094152075740884953601419415818703561546110013773820898928842420125828213756139436696378066702469068337502999712269975362549761833696070382081773794183424416789176185954442992745532679858569077782999423222575376933084226223362204116103809749529468961588550729372594899603500724674957840581246516002885957684920428189321030302718356525690303826625455220214605711026898179615467340448120576647662305725098321407546728272881656660247546172284725624317328113413754106257989466109920900038030736849258836453968356929283217391749811262345502457742744993989956899013240959666759608583196491430516381890238869933023957717022123975657157835923942009299876480241342589289263466755595760098621254355665988025640708507589833012720807478146890357926625071394239918158345387701097259742034823422055895046159542423602522587484033118627308343766601794898485615923771495636132866852268362704704201775375552894250493999879259471354060743893156442323285638888572304236874612210957756797588210482711276190696734647227720510471665548706951568933922135697926784571393995975018834668282212758365648142437094115168600044430550946813637990704421489852138058211281085668070537592155098412341552487515144305117063740910014382407255517851552482866950713619417719272871230321790879692146442658674933478468099495793499682211882496725941373564943320920989334155826627514780331019323793131031185451802581143993801739841767445700678844674338936254166494608576574250257559668352970883867174452559126701946940871047327684690406882781495881430728345878140297143642240140621542467684283446245522999128013979880307226424936350453103566956616163516735484464717370401642744635135155963902698437713926202146346496202053715652846821621734241296411741634228703453055834312790714444808272601964446636515789694127651119524060037069952349244680211986180598295679980847965347634823249428030440506727236104696185090213597024875281366244041197231813400910971633265326974378643319931077352219255315595698916799608002104041161761052203990620276085740882251152507246810321271541910991644734988262923176956169860429033770758080176973334408830657293621654034187051640017519059382363054851935346267031739164865420051271020367227677186215010534263382174032383378800177181277636155300324152503564256608722337197078302573118154816261378475459742078268929905255086183926900686803394505136903105401165428134678294180317405988246199173702100206753985709094840998688582160171873320217883758507596432990843232772168995939176352513595663813229621174083762852720386358809745191800671426428955883755460706763647048017757940684130239651846447469475938282837115845351809540896525062427309510212649457784099203754290020433650014146382088734199807873985740140852739339477498257533191313886170456085351167424188443764826235951366434875476993536380382167709408496575755325818653987713702775074252276128997595577101744526276938850599059062123027790322426312696896464383027529011227451544406211071038086117372332773226320494058346585972099581322038502342111606815351467393696203818088819243656121866839132526506031943372675390201390063980274157286429632561992385554334049653964627183400673805098732943203401778823484967140329041694786214292002505094846272328579082388498741804643430153060182899106620499256444569469049588550988033962090289464064013753278962463522073712061748277066143328081251101649986390927859460760662439696587272769515918562945102713792809938000701165698211461894863721662337606017156807046697078474308282950928346241675560674154304986337222968797138171034400705481074099082167319231655475850797667224622401590998146244565736954870765744606261865169371106117193630030964925097123124730174071800344827432183434943039738397577346477951179967527850160725654567642436717890018614165213208421816518611701730728864030151763030972679953138912288616982609083580674563206579881298402703472366812647469524967555625763441517972261294834885825130637072916751925501291544612394637570281894207667715330517180610639282442404959098197445199707886196488814009460757931528890616734725635123542763570044461636097897441106645078659231933169964544353149409846841047127901859107562639370413460439689762943382735011387179445884597612665373266313443390765223536618893358117007251584110249961170928822834884981705656476978546680084279241814745625441279054358463025714025057363426093916323716353323789002748990835978666568965319775054242046429785852291911476010619042164603340282364151568265854371286533662143185848981169640424855540816266773034015101159286106794569766150117746467705468864401599365843001493719321429332223593213170026327275757018281880434887110846458913800677980750644602420029537725233583085145791897010163879352271775861019913662404832976170334307124336074022095139882517261235509839038125933339008027757964862379649558071197700416110030535443236948237000353791654642269360502674358032677375776559425139700900395099792119348313878859617343341153845752847368212705195523013078452182605682974967910044730570258995573458554755080925495341517546326898412656685353011861406461054612954099032569710935828598160257048073553859932761683079262542688541533671392981084922354904184019543384202900743270729367162073226564449459684831570779603016563495878420520890104676890903348268235502316391626892411064664683616627640775763383630859210801855247348158317878012136516102713603389410894605132588637559073771450417289580615123527107710953453015098412056116162593718821014417245620767777955788787923520119646948656440996682770879950717825946344219123894666642580657132478735821841986004564844857635397578845952231148176184900589756407320801211410554367609195802135576462089479784764222640850324599142111469915202318834681449371843760267457760692695643906558894991174760019658138061061131936784852323909465098534779789735671848249130696093923708367539970705781960747934207949052852610253770235775241407450986397322332589502238756102276032449213900066355553845347880996637999953398966740009374717537982526917418230296000344363143920950207842432419113490536476727476981875602514166143812873701357147979866861603523182103273973954104041978496600481096031515595958380021357420773262398767351892520187818447184182823579257358589188214113909230538415515268003378795225093007852526714452589087138105340232488207198398669375245915618269306153585219684726488784372178989111134073180457836814856813460048242221682520831129682889911175702746021173231501777036740497028699343162931844216009493954181427278512412577369183976332342928209131869612555397537459764046159333589781003306760588122201729250560259426384828861778082766090959891653411465553859654195876662549313153544098552375592651857964550697395610329151884560866765353790198950701166530914625137805772296763919212923157553279941066061188975080318128622709176455220893081810836814612417920573552483870480794786657062586664953346351347477240722233511798894023330481574397519062474473689672988972368210142308977653080447768880513544593841416845835794215233087271773203660642278467797048394382159423389054422028558980881824039606324119240602317947816355995032886372643302627744487506620482384459072217806902426061676550034461105127077062441489977582062205796088371750372767292435367860538602699532816051798780913096391584367712232580277403070898592464676888099906780638606146439421469224394533310303203007659279741218455770924003209315427447927120557205631535458181326951347395935771214076218409122812218786971146149176461822280841165542338801684392439608991990405029205224285142009324348458728666997466568443492420286425053586681693546099601640888643703365863116773767811270458742832700061129905374650517793589482384026104078027099668567676790985739356437507237749537956704687549477367085231248263904775768591561728739013483070322633427822392318386716581338127788187978264576329060641116579673870086602656935348107592076935263362118675410070316691672363647486697593845556132200246906432248145604387095275543061248754180278557094899902035902272498363627874579903963348828905949509629686425032452357627578248218304587116176614240022570133921132202065572743621594136793243689213439717615334673228505618497097098025887247507410815500455448916205725680651188876750996630848688412197448097659603213208148682260764131205810299091062006232803058952865742511197766271608605080748891162205929726668660717521347313585545090199985556197472281642394391978066970109644191010330959386081949569168260090459905105012708340831953058443197093336465443551982977600692109785412192787507000401691645867935476916322235800071308989120042306678382252900176556491329194983013305566059644905519679437270417333085787637171214926885052160483859894118196404487016590280127493042076442991524061042600547832305198325900352203693710688575688248628742473179399826524977459688225257018118457045368488183196397083991196033949478341942976603418082231647711322112346998184669592923149220568770197532736791831139577555497917033313212085711041810019739848164101254809994780334305621507452984747259283732282928406383993876778098095715802972282362605357273005693705893671977847238254489351090174659047445505624428000087820731695886498319129376588121783064766743984695694245455282844110798306471422520569710464290077198546058477046890966004853151791230746558431010585808952778802940992985655092060298555731572765108376219972039450078444549163899603788131131755920259059662693124605075642770247456636549823185992165392279271482373207915024044767289933380844936931936221866190017500620098424202828860836416043033420313884411631387461728936028134495400634210088027028591930679361418367909815814424672355085294075910104622542377215261460580234327962220750356474168004196538086098343179568251175652160937984966644407419289782006374166704334225150460763650514944950344475462146295543807381475786047565848008556917820614984221624295522500879786458101625778832530119349885621715569036172527213046719401615583894442913364442618151738043333111842664014721814387549122940530778838422653857698413280774750054232769972517556934318893726394550488886683862136946319722097518398625734408213239367659483560729465870188562335729984031041463826029408930767694680724327627616407352044168437772331423618054928574128055204882000279707628711535595085083183352481628774587119522615689977418305062018092424176867448114422889253486670364689401303649726821919630760635098843529021133983614648131579250151359660319813255014126716262302627782056519265675658397572851086995785720758759707915633766631349087021436090007590385222033015963418879741576128025964555825804412983544152531506449109459878436086204597347265641367872057342011144268823106658380860852293420502570098439678669669875442105872615162399127777585849308583727324211277586102561549573312509183383937600580234230670708966912568838269154004665790997196792711629710849346294719364826182952746912199534035334898181900903309445620848662898848987376735880706156715335782981945060499765208052619000130201054468945740071676254205844592266972539425943143118440277985327405690779018940072767846784271616973112868043559750424371806591881875717579823391449833993824117220191651038697290202040166829015238602303706558810696589530815749217683952209375292836858781147439935390993643550218095554843141854139415181437004905915674542617727551033365176649749549843557270304763639385703246678050498774642730058186951545875953996050122778160563440827441706188456985140045624975942692780086625551349470905685206625521717019338537089255331332033350723258293949027021718970395439401069330172881433676969099611703563382507247739323951106107949004018437281455725274182225000590418543601789843056434125323097090040300163812303461553831999868115834820663449528175467237592193305133923343842735384901863022996079353928614502238196347842262330222001141702544307042668745595639867129711682627554202607948918039712675809795107088118916818286343091012409927984280267166427637199127571424895833250031522232739520514815210632239082666758794154651271971346624032851823875065491261876143650871784872732096430656514068248355235334878380747261598050357213610183114373607412852292754447925390605804878735518349651135313424357240157267614307906371196621432771711070342052375679470061014633855748249928575018931387309698981237558451539929885682671124908608625642912978020162390734415223538490746322422126284302089184496844259886136576633216423665396272804840990327158101314671141441601074983454349766092580529868642379241422514024210401975343745088017750759412323499286155774184881390096220647259138940971372619522398959417861310206523278102021440834063070404623656654453908757713182282712253457739553122180276670643121689903272937552981857553066156115150148893837297775989412789406814304864569111470398584630852933626722247352446527237059457678001909871199769587208548414872428397907129397365156613082750979069346001277339989492493680562900543804378680252456167772828053302530259837124646538164556642934623777372205883174190816472137074330060220865672057444374980816981607964205261561122395337318476308469602067469307612232678864543110954294912267575782593438530576377395109306435054662335766324154341782484644461665717993238215290664414549762356659157631792928721361256823425637416368704304028625366804229301179002762662220887757827261296432308159335082431586676881789160867626853544949834839587442447619595226483714824210593890643541488795641836676315306287466038298588769025085163694104744338876344695191382321573095271547419513797485061627522007522666066004246637417220251583400521607818291604528138160027451571026352820229566613072124106944178587409096969285302089274688529527403413975270379485622892067613533120095529650854369686390339602702208084842310187577888680098436614469988079836456946560574354369345292251178036944187047377287538287998937764922331524242474866486966974835856089727266050616373476117991137459972900189091510764882866328037790787671380414969076874231659865283242414717363975624892206262145195181435052424076290287365228448439873207773755519962741653724998306951002742430567217983169366356209383602716015809845515004008505228929757882447658664231370879886303220996902187796968804408257748262688788497704919176053626769673499269212246584891818872219495179109607799267086992837053069028428905110224667334852697861689256386737665381367870779145533770659538369910142693717854932742125983234621197820917006986301661546735049136152955385210926415670477784827762995252550792035919156990101828793635281308311706709264336767531278689989173476775066837283720339950969759620094701535169653709449915729672310741237965814036477340902464987210490869043159693122640153793988934445463456793981552709844173250380555239135559303192008717446568109288066683630969719457935955979518635854262554370063820015585805608111537382835866280037804446956951596604417877273516252264106572799993617522469679407644961003027004141230485239504177229718601190736260484961107446061772830119052806510704533572110771894985015330908752339401927653410094654943407605216667578845706456175372283430374972057100084162579744442627598420037967614594259015686787333239868279898919720050071564147465889978245018341553601515604438919392261504372452800026953514070903383764258661564412875124766266694668740799444598394458456966615956337919164382517632126699819725749776641506779932238174890674289736891013622986405437884530546831018650066231178155251924946102252920789529770747683000620697005293408885350206103758619100453283742639487499464066945233289943656815254133289853164959417366545904446288939347442766234360514337929458316105786633745082672224100744900949249848897626911769872894991877838566834142813607813867690610647651493344849436893394656968217222005047543905802849100209051121637515111536200278038764231146947775137085355279096591563472277603403014550313801642167900645254461590806124356755990839232404137203253292976329531650557854304401818316926296455803806187711362895093514214566452390392831463145318987758519883180925100075046155768597625918148604972027618815805413543899811802777714674300329982540546959917676655947928088570337217575937706910272685503666207340084512666094298007053268716911368450899033854746414078094001619421580488782988179447017371253042169089172470233164324075531057765709249854619345618808116287655951535850884734639846923636335961959514842757652673460594706140174936177260290343668982393844083201021125461862820805779418924236414884539440526082671946964059467091204181541405749581470185963684296178888776548646431007060429259014862122619825204773783557177511076341331780682027235749137978349283298659682489293494395527349206589517341019247470130660339438015077701103239923358959924457669404570409581639150368519665305639991791144560040713944807845304899635621244255252010033289111483358850289382506737696316468692468976869461599180797668769052304283113113687502351177303556109170455335943351124345746349890713432922894662832658795115169667077943050203239862106364268026600035659948182257120511145163758624659631801135679929551028270421182875777381866702468186698821828521879879543119983517884028499245217639098951987231465676270965296864279210651175719580369988204175118482075384900479354057243129770809221699863524953668405582029844169668272614599869290503441684276008935357750181101467198659300628770528384038152767712728812784606326862605933908466807951980474678324893062262193638282101196194042517769909207842321262700025448810161439163601680327476834734026206064556939497322104060003767328829679297224347069917077354562807942784574398529668335645427187483536435345277972425953750872573690760045056738434627312373720280143244099454724157491891285981771525002971642346728223110571383392738800047524816545709066253053409382146786373512081152816568037279606050821080257233679848492439104666605402140023141776145089784115391536895994692277534476768662950391044871006852631598238638217940177326674628399017281919949232777240543785047949004296282835379416036632981564572493411826617912676531177363972663014142542148111598802385458011335172695970239917614937568032932643804373564147511244933441623939734908086416083837338243096460623629563609723936759768640300792885218918090328444932619948980299478928623320330613595479246601812556847665271232539249470519173181014573275818993477081775555585757005577287113732477498949594675659978632200530024729266383617052371959657537767795349871137532925399989530795929696111616170165880337447213724509098926045161924068943011293363327318345307681774522754477002050639363513470575072440387947972792061154378954565008944150278855354760278583125591054320454935283367210319252928758299225709621189724905789795206264143970577818304798542114725371501956143660465473417662194170715821174527729255454117915692840980998496699984018697986653984735532232233724401850344377801739512851648314518676202016329475394073167293356005005653778903162233204723477855291539169360264316774947056476476872081600078295467014173402762156620199433065820580287005236732378615064558699819683866875370748816386285404764249115517438168839184606829299401520630417469388772388955485300088707255584627289644405192383844778414933599049218707536723962999762940896413991495291592215511276913358754160274165692359161501228885906577941838334457959968136175389710472122720371571799341704423715627686520366205340169397301551598393870406561768989958092919680104782141631680657931152576984768711991126813640225734959570784354329693090947110440425115886888213834511648591830576882324405660809414336522611765837845537655465695238799783199141118099853732788308671294833126465426504611819616403462926968294147036112642488168472047334683388273091237890370850157053633192884987803158889632558275351294380745944281357345586244203662253207499066578498781447196031621023182237305266988032666890077741288864542612067973093031171077040601965956540266688230421215444092265439342736701578335446923433217095391624731281122900835201388767583026379314643442481451422418086058267040862322129855180350273599024479494473987918711072857170796860944102600921999426602759610497302242548879493827629037062014065746652919738495239871993138460754862817916074041010531071824688172986469891315416785950940466833162252667632829594399605848094153004862352016282250244418155489028212099573495738505208659286322454217438999529402700600527430238008839287960668518580509591650003334288283291893099383952022218451068532339046655624890551619088961149711386607949624107672350308308778286012157758684175659760409061654645544185680294288795367137943470298843478985254586438901391660786508586652837460167232165689690814826465553639767303319547728889209246603311032972891858723718977392896477820534054592579722506227894829891141154196070654555119083075201700732866976630350251809158047785424318155148519848356744694324243323914306148870585187919643991549312977439993081197168091079952657612064625156194974989966164118776119553335647088675053111181450313772774786820251252586881087545403710507042850810526533492808323312450866317084164847029184771487593685444560788751893176856854780662089770517257657988596844133639782209642876559538110862356429614588010033163263143938239440444608618577418333131224302240999711298944586891716244224564098869053069949937447154623927333351521733089707924032507200614098731853549229184976905676067222203737495639694519879376725004706757209717804169373357404418291590065835854830670063733551720624834624672968943262606990957636831516242129930208254017741896506807388194111326876240520384337426593048547846838085499332028212275067195055079898710443838119153623709052035330310205220248522174619133096433986879204901389283552798983935154619643775846896756461808258085959189440578357535630745174809810581209369553207945836624260829553477924864268099955322967287143317726720396606270293618486107578296926874281522694741493437294002568881807062136380344101113467722010061048847696610690268466543265447439070537175714733339974810084305434752084940128074778829321401280347004831861684828170323909155160188004351675259652761675352846482364024035231738513028442216733854079621317226012024935245576932176292651094466653268705167035019180816609715165718431432833153861634283248641519979217945095388805609070313448615738905936288061564213567460912957435452250993096845750204010546821966321195995956367346129389391578053253828305300396840109789604391447012177340794275907973078468619253192333210591752141305664682023589746692596263281654179093682838909171160052622186734321941705554422886569458530022288078207437410425525849411507595648492566135884249568894790208482159216154138739672245297881096585855859325999074895885836051480261186283187908661187659046390721743549890582343103861969656445568841522759652140601616900289823607234567971658936503034708961087282083692880502997155253646622976512466190239675006236352665450486219149055913775032927804131978025881411177910669633562064559062451241532893370758073555093961731991807677181754710921901556623074655189399340991465863896299108503160429104170599589276064362478248280624925868916258406537135245209119070108578813557948098354700927013292116407457382430451515170505589564499278008383616927515150785244863950621922318139213557830600670055395423339816951575239499098485484988817228466090988939506188625695598918019699624024318765646773913874943736212869604278461864846349935654572056644471623361350725379122551152456658740146680191298888637510215602121492340269835638568694544478311759519009282384019630561899438642590647890542469779589038560653992634403341916144390632214703049337803351822053085891713510895224312591552877350226941345551225973400692125643058652047815637242941226427316651053770415221590756682118794883951686006145161067561489330883042189916647703336819907519019791579568928810345194296313749657644008028172815656889380640916334178486032221283049096851492200051106330272869523848553840159545692953091134250777053820898809039500481928759302221464705754407761963992540535322295720184160787146855611765390834010923571665892348438156291137143993281627186152968079016973704119872798628885529437356784750145683104462481241014518955857061608587046242144556350210408698295600752464965390287992277436492568477454588832932691966002051211497703618102516732797999657232514381431169217013424570888349885849623176178528804002279624741472398808338102937269723013041701769373266657096620987939013916039030324812737026845695150137703841051709126877657266850948145629499112011854571536181812248806358999154837946541683110297674955882493168315832574603986422765687157287700649266839552691400969131183754471603068128364570450718405389715932722570814273377254022209830696106321992701749364268919982280377236525957057115889482368090385934702200718761670968176950498203769025562314522995103213742535151793170538792214756334848593277287623168980194029881934885170393252060488792427131156765745565474254077930228198618596186819074600458764110540183541034278044978652191292131900587308689704870051682267334175597677527918822867020971481971059029600745583797545590784109089155125159412186295583339900644545265232064047608401692267812268701061823928262278373891671801682846520905341187358620120605859979036577311843195923891346920057665618748370847189562571877717903812787728398044851438955458787154602779204528051531004318574304472889446399686891558588470944621239574828746457061403534095206989723186851924516105720599550132947761295613192338828693543471563762500583532196246561593581647179176674680922316502262166400428934899400998663212408870056962161474857221356836631523680699882140026132311515333271650398623898873276777685624567059667657053430973170116548879533152571437702228778058136794063407093139323742930545351125889113183591713503403809521447394696385711349121224453336332936706644527930787006076895976890075185464940069885631605555351340210469838975729923508166619449915255806718141329165797690175968187782932680162573965954374670883180295739468366913894367617870353065763953428269190780006908138739374262383827350526681493000966397442175452432719113789616068739039531651904557012038420453960095252939940230098688925600129744700527606836958836086099085589909592134138082549162469436987939606000795969134741151866387412017538737763976033050735267306065925096820433035365958189936372672345009149645353946489361428397541744283617063703552984052493258156017188023963022934930761957921099391608078526139256482524212749675334606410673700872111398856589683987769606169979393587217499481777471623828239094159878566928628417304258238304480098182521344845487598771785329828225108901579493741891051310601676629091969549618224138656366550051785240369721411146936373400895511345267779473218322420213229646617876956280546510977229443927946993391940013592010014772046706909624535856551142186238635842769534759139211066678910843068849783459677653380905716142179296455543951318681738912771829409418755631039426092074257232270199480546576316601952602584911083238386566055493222778976288580020130851141778752199054052294721531686288411748912106669241087634374514246486560839170249197852093847120584592919297784499434209979343427915899944780651373382304026371384006149671241679793502202399514415845601481750983210076277167787523101688381276222832732762917113874697395062577677850020527307391622109221334801721187877357814273636869332439987578947583046860177704165259426143982480575276932990136790386018781005265913567491842951503541627095276939688359031844544504721113958594001157849674246842644674961925930782612309348037733013053367404539416775386793137809626023622254878639040715737749879995373875241207929887794816430431470065770950423193353229247712541593587655818496820053061832428690208335116856411910787000389019571045842604660217227766505632251204515676824790506563181882534227125037481096362074345092614349100232118997761457767336902100817386820840175079293379296601721525366940398465258891157879271471175368514627447517101680314433239793619410612334665649620027127213657099209118756077316195503478223318420829919980665355373328746556841112431900926560282680922635385122395319270315045123381582730502691359107301488128588707979165118310955963002724666878535054412738684390464550409273696192353135784873024278135901794564210071064534215395554007986877427114366934005432186522881072532909942618703991961134447286554966496663372619664950822066040554144066271968038627171520829699979035183191775618324053656643150964034414941205996662091711093556479385753744523692137825570049886964644231744154359782452482483971829315056205944313476321035747001211438041772481492054051589891396255559477013743813360260278863994213365563083745488334293139469872743375210928407687868802313516507598855796115607597348016942771425710714972395749131642960766639991920230129413127177315415362133927405215702361182845602490492931012727336352141969622173976124775930012193107051484948281734103410434634884866647654291226769145876363211519748872973818552438806815678052285902744999890067624237861718322101905072793040317197216270315044270369995952913197587852988663620789302726495805089022678619921111377302395525205268421962005203082977068930490625696395781770376160558676590650305686441892154570672287914953508940962214668683262819228177968053927935243592533203604097116235546791818563093172527946635002541144161218012859799426633907944661938676969141759735866473774093987093232926000762371723745180907240631373097481122730917120390389538711397735364397271997127997522066320019553485910484447678977159125447552873022628016859497179738616459633362328439333860139945303644785064577499756919253687546162631081612216014282866957120846028134480673067557039615711007933499437639601441818138721341991442937208746215584590892484486325865103797267324833396870230012680326642048297491430916505661466214679700510989551834237157580426159708845839013343162536682273827072005930216971312456321263070751724738048000054103805133868198747796634098726858186550513112662313418676151103756633037217677056343867140398703974586665819155978429426179278260930473912039960230777340984756053951580184915186641855765684089943019604955988456884066968588311925850349143658250982205440653520630720869965287270426685810989931093442787884398012651559763460485924082180704728580948976597802330724050385721506785870941630137760585687646697343149107217755471950294829819463971953270259534954783222437209735913393737320302700591939920689462909181847760338256588407437941873327591143419295284017924015895792303983276729248829198828123533982829805735798769489808047359438445170419517215064670601879152202519071150167895479012119037983996925163111338499570717592288304434237297374049325111667223742449350926761797460629914773041036080918878077475400683379665047129992641876392446985159071800704473817180682738433539901432156147097429041291509722947899257959973596495814246674231607335855792503170405140810856962457539905372033098647598118575014577843239691030813380303950853282598751132390830795139286669115670770424864102970470634531533266603675875968661919832040830755014728539443627270756597370837727286558706952251208300830770670555991579483730048859024278267119381415762952985191614028649765653866299626967400155757673158688992597189359492803963735749695945844810948452506233005329480111019319124577844942506975467499691771473507346766811367087405535422179048082896126303909187876022139203812430025154713435363887879597175635127217558013231516053569088809011673942663274756264013708352476662532852671637872475713463076302221145055221330612574951698172783036959593380842797003497701958575384198236809289538102194874857828385389513849056673311481539511777308780060330819802056398014743009843340575621471861478330444149409258918147106478068672968302001204689723600012931321368202342281056884396963158045938811899577920339334672538945850191925628523708917563503174017240465544571061087157747160109407607295388898514599866003856392058195726810165210160799412021889324965175964667304302756542997423602596567659673903557988764358376856042449666795967130538844458461503885464606353847055845113910576908201874861707710024440330521310854965374266474805567743109893300270554489575583765997360743329619465656203218351976988235070974725454484881166283659736941295322716534342474241369826385505305627395120010479079416577154364090440752037677245572085140486947188484941932074466045209266978002061488096746808472486084484535700967137336834535503776410783578608977848683468095103688813333815771288199522318066129521048618366484114812747588896669222525778259873216599866528388209409883248703956828627314164296728105225303162455910852913315939098262476189393427183751785719505536692116802240238503269143160604989144078071261599639973644305777674302310792082447716590732475913972615865503946704303607656816659871886405446729990756919714561838529176965500349039739419382556766134230906794676810177996103117211062964749733734530868461916083656013443925395229646003958548544221646755518099713421585539138043222993941949073669716258042739853938650424587620919643725733686776001632290221185836801997288859356803238586687370169207199604054287440765114607042684449371458819284498395907934377754237116116335862056724282001091965227321039097704281383791469489499070979978186571467196331220717144823193720189055812598894347249972692093285191778556884569347146137579001622188262469177795342931000638383368650375958258446990691040265018563687082772847326849534970038316674940956195713321053934139384840571810507978792142742666970553299728972758603223481867619382728561393363685976413083592842325724860973140813803639988359757718335960511314146575932621821369027850502478095539601616993516483328797436530381962610147440991765496106649137223887736453104029613542266949112462797953431079233947210214103410364479315327968238916180046026719001151077372786154841061436748629296832831726430131182401652835538178823784714449805466218353735047125436741656461574868645710221422191653598012834910406915613299152984965954885315797703196150851307877416902442860905625272898924557940396749635229046788567290957982305370297775542377149340924385036366131494802392234526913231929629134191417084510246503405293649723072641360428107998592378791175130861011922459782815681959368156616594415550107124172991158026799381485015273298910639193328404720368892225777653163551108703939409290575007378388449004299171308716903559364253980148958750499484614548359843539925838089232376535723675623753853097994791833067189696261075401873848370339026744802343874335453921702167846509641920373379379402750672889444450328192147844265063478594779764565836258442494612347670936272088519068164578071172622473364333445112027064681919599358026585912248099326376255682663927765532751928853129375538741666592585146160023597828983312950863048461269324925608248347610546383796007663797299923446940346482903261770359477765018029075322269950484734762693615442126270945047420593031891937270746720813868560602742420874865686364726154378947143735277361108155425163164953396632772041553451465479085688735745973823425225959163557441552732463814153323983270648412353068388110879155620732801969634153228054531654246519174420649647038213038117382621939353910867583580814447810991942606590212502592339669248304053334070393004910149135339083044930913186331047543647433661714341397029592148930646734778347460468488585436747706843386084771231687317468002251364197947633590454127022989479920033530841002906471043804306730698771167471307060931962520900375013904517536403547653815711944935704626087731223963967026336109747363766739489267398547397945137126343104210052959686861346010166203186989004189968621569138746485749303339291854405527563359012837059317017375516224890138075777611840054988830937209857976060033796640851354206805005764628236814046987561148461520385574503825036817309337667390355756617281260792173673417936058601000186547195850606835181665991071632582017949431658680502674566592503178436177910351600112103069100426382241508996540804537239573926153857207115031556811982336371664723306687968834549370217481808296912895271870332925413212982348979400409005908716934746753667046974610756249280394759304892424068028314303361697884815491677589886943245008773673841678419318247995809365808762484959853215311025888918872649663898307580275925256856910656291597901443575062749077028368807265197640720881387328712374353116172241929450891360946478604237981162448888042031325858080765162615133406446230257502285183013258672025501819887385537374300005392741977034454626204869950569731412204013388446328567107220059217920799721245457694793720942982602573386772044280034347675068525571777184897273593516447702901126555351052236035679992109483787674399647016718293756054253345936467601519919753134501424059811929717368726232013406576358628888396944096467022009933124064822164337255575214195241096495019277740500809742065959445738587780425083620201105083258639343070768533170107116247749994556318220394502718044374923458902320631846074101767683763753399771363906058259085432316837886363432248164932542767227634333645536207962595916788630286894457079730414256270906247052499290695741615215057802799931071099849606709330481990572176459483693785371682244142313078402853071617062339282810485484918027234726522064027548382240887457955697599607299904921210595238018576713972622261852368249352852796734227421587374137420843672583701380180637398288272951662672917939245310971414895330955557786231535394467647924877199272600234127309303614589645460715649160288341750374540719918036690563094403720294619717318302251053028766891123761353763159422044182470213481431123703780397436194290314648622161793820045502452691644445390383571472311359303551614629196871453159288804789590150211327771200274076646616227689138155292311741782591330430326468677860444045149238176311652599697585482960748069786430555251828554980393727276252771715274408211351218504332873695226827606786244327649438351761039756997815673668514031242625531063522762283053835175349131059148491872859720472762303653545212968450171136249108413721546480631193844677408510915193792758127761470267545628989375316473497248809479537139851363513103863850110988509653903316204676189677170755938084482140664150078601806811610152239333010275114198627539483513037043863273554824691950075111993706903308054291117822706022617159798999669039219819473687551104323201935228657623323182980211820632782366265658680743350327738906618927299228229516497926094253834316619721530103901676735604769341536208927460916551313941721290050959659207799489005939160226178130477403220855618952448302811996290369106009286030339607657933544437945803470746213796872846756356166018714132616435143241815246644892112022012601771901444464949366831432705391194355388202289825286522694836783856636270106277227242826449637601191476376194412343161991677128209322761779302027931082174438294231289773711790171019853502100631822413192558548651618993737756622545857868353134278257997288531033215344964408876428793193711726705465597724159201698672936648369080422978264399455971763046576921744646115827128393905238773422600624407668004685633904333216285402975070590414455611541269592841105772455324902750012156674426781668194073462093690744434926773706347470895125621722501631426258952377807993842581307028273233149278415393933188634053026704286006852880137145229266883001201142066288268602595309576077797135941011085532417368645482210882644651901701824326745859094890507823505148231236418797654283175966485757563097880779829142466670347379034041651569951939195372327483299977882709898490277510265280364745033133503939312914445084377334210061935708928881063174723074429567979040773747747435372407131439992707534006018164835798959587379366864598039540484160618623065669472896713789533306612186947905689929540637693547574514325336384776405827457901810009217190706425611749420799190007970744060789690163674529378044508440792800618203706597116991951551127343360558867379427210667854147440637767977830749744993913320523643335142090684053240447915450638575009265931981308369582259204714552826010231809810658745437105125174415266851044227858400591078012286658858474460645507538631974403847433391209878511310767312669469143513572387511019285298661750358163711448127030585306216569923082226491371431922539918191173530698100174206903508369972937687677757309753525698511303209201841487986925036378906228454017991012852871308290975537588412812081226476611141753068503728528322634711938505007372206546859966553753087369689307819060282889294889721327853833126442658209353592839572012808965276599368277502660986087341560919357759451823788774747657119256189424759149752869260725126156999615741254909816424098289889269027144861518327847010813737992753376465207783101468034225184549947613862277876121175231582297702405538438497542834986863007106417332700121217722037393577624492311508392003336822277322134712854266098135367355152170218859884494139374611645538811154002746086183442027168471264688734691363882853924963830199813216046773552727386278961256434757438758475291024899641421318143175154818202157400197255121658691534370604804337270994394198319801997450174979088868964633772131718842349738559056267358553645497077993349763831676284620582016436310454619961686971449959247824505953482961891168719589679932828511635552789454817185583767889021522143466648289142671786205068649616990083593560759925939739821593339642745406335494583389337592858546481662541015499337129346711085733119341000068465792589325238430491436371985247447232515608939854399420967192313132627004003940875371565595670477463767906214949424835770679326622352562758113451768287251616781786764014038910633863706394029859887135526543369943229737199505751761549163326328839750254043264221372756869149310250664927378574710436762953462809275192307123094583673725045803552154933800359665100154746225733689698482513554262931859757472468225017406675250456786475403096827034955636171353010004556316518810770350097354573617947563103249435965027281207998743489040090088549693239176363612858812996994178376772440125492639477391002723611216131483571711128660739957491599469073368017898592237924896467614405035529655275622965666323092599992711625199858218444595834340388731179218449535059076160281408421900442300184009100618517590765808184061017442462894042079001178871979511432518377733770217901952067772557838267135759190964857664198802619885562075689642077577499412750050074569652465281303838478572699137072482029720076491079052365359774317541256171244968436266458168027115707714627171566473098544328131941422184475021511363312043743632915977151819510247994571700742737283492200807556788284856022832934531143865297671793454321941269258545773325887362776076883903383595569788956816260120884768877644920724758029527932404031296968751220073833486525727648524040326772683737188933939911891702572662811124877660459158108498891239784944532025684844770884995674117034827010863961573153412746920577640423337580880906192608237504495692867340278350352452838381579378709366607729191148941570641652935661026676824366088173724536793032872450025337612898113516092530816900428310023396217061833148541666565440131945411777654718959072951359718960685594593452485675081895343519820268247416997619393556302741318679313866862897077081547567304621018881133004645734172478910954350532958420176702900039924926342825422675843172702417191920677656702125635708346640758383854180948698743908676145542307214837903644163060331859342515967068690202677850667660385458894770966831025104239350194645156440272265442326714685915915890603648731334532868096742582411810932832784397028982665488960532949473886165152315645600550333471186303628437324362405205965257624269784727339807860222773336723434641740932370025181941842541783668364651885096334081997101895502581372154284741031258929386273939672704045250575520154211858073182126938777088074523552498046253229480978778735268347891711313381680950912604291651503779988078356214630731349262983023209064795196326851215590805267712716285848193817288788608402850900540898026778178222193495429353619337266373598460437172813580790008875883013361366354922645580059913698451391076447764269642022885282073477539293724718162209168864623468666873509753632535935954907497265120396463489064613771335240283978998751289886217267786617686631932075725123766834784426663365667216303526271116145224253742828333526349414914643448000402768556459394632798782331954785952310971283788161525123905307072898356539055751500604211546141949973846761043546056102263917443871233274297688332608726481364394177527054416660897045179049454320235532140441834941947443091907214466963459129977997375474339079200579485285521320742468641355246569546891984689757233803779851417830200515011108591295811701282642367901457264486848930903979844554153036859657730556697108286914162789243642517654704010978086882523308434005477164191147962802298320693735451122651964863067011205462741814139144286614329987385672333556575856909856470299833771530322815439314354006295424079250116707507444877648698582034837520760582641419633080006081707895501009965918525168595547194941376156526254967672045603824691336865521366322994787049263248646309964093616172881846116829304030931510566331899985727146128123466684030484630674965343985207016231746401419666208004495779032319479123957092630703148707150687831038236001507788504896485948081263232996003822914101240811176360005050605713811014865673769389858517234176908639670403195855633959986875327105528220463807510839635226764061376532188673582342198922611199391979953428409326498926974328364103641094365359524615031259528565566469997057906698401765646295691249094186823633144871356963192720774061737630169005270442349077518305214879366590249026171077931744856232752395397461609125045701897205314038911376198685388426457811243673201305436889140992347840355580095345535382565164109595528297647387454684336102169725651021983981256341369914843946930856674658095614929434948004758245724741321195913613712306174667481771157652272679476407463579102223164582423810945092570546826444238195309772520522057210027687305656475231881451675963514137783533898896606145519041513624137633442478953657205070359798442326202690424817015894580379765616949312872188136920277123814195735298849820437211395886612174730082939633260348237638286263053108757993440069490596978930778875963782746986225507762340218385780873127434715285953303299536254938742803205983711999357936118649701480306802693919813026797133119995349867168934654462240282896991122886718875229891466660794608097187382398392586490718088769962075562975074547224126059405873012471377596975093005330547128824329289890665835134966843534564104877732585445509972270328185453088411441609503889544064667665713212063500075879786508425061666686987250105183285753221381454868528201696396018432612723911966234129170591151581002844647854455535827078765251375144645621081560691028754951046609373849277084848482905192338535387546082170578749660119903173142170519048630867915501521330561195330129663592067759969520130234383088927222308692727144799801921355450842701811659882023965987768528654049072951715282559557411672739029322595632985255421274481636438094183035103371589908275705041757986189084523280890015992064294399743506554994093590879792002930013031081777077037890558322594499756037343430562139212597528238227404595001570261075678790547266329800983804483164462637137866576050900267754564944691945312458988922237842480304630124396307314242117270427401808060793608148304302650441048293725583434326735632916379561913873703908087162749292294441849036085018931639264127828305611633763739341915361901211376309942754130824299001602389123644275819803989939465774176064634995087740204441045025105312211824520604371851325752602913582784929152846154868061277205588188756498367956709968181137435051085223314745821878146772511758905904780235993840176687457028463641080173083239651312214284654776963119244871872947419427294155887834566811634875100998676735661108115491799762691418147234257545984683815842438610470421917015634772669385370217064370314234877556472370511680180333593743057392248630604489687337831621597192742707516251382926098514558511202163715241180314323640761043547963531667762519056719223308028889108584904655105840028808782724031626761066289065497553568402704030037600354079833766875527830834867501483097404207827702410018529099220500700906376278466844875585504149153872846952587671628752573686604082972445826150073500263643370257271184199393207121706398407090590910171195980543880795725152549577047252026028462769795067784608019192664416085163395077480526409554329138746764150031338644138963076574511027106518982846670750438868586584145058569185926361946460020768455064171816106828348702593586184026050742401829055214441599249174239071151546765792965292839136387930991220879350827944231700833172925083634694763096171961015625755411321147381072171388811594329657065159571728987627759558547774225514151485826551250586473679531064267032910517524250627248254648919319983045393697378175044499125718893974258803444991288722068142177400418751155751555535699192074122464691171196434821860426906296492912160819030499784609467654893878872279005290190626619401160891964904147163667918132204478406328990296589118942933275977727710355809529441019687542196997764068369033268930451312035311983404470461452935787402775225285106790348335870859730645600742157554291339517348023980836532414921921745764696041512788803691220452068573751256508896499456025632469250879324771972147355330511358406475285693525870252588040694616065374540331191619482190257923083720741669601507286602289797276451843809629102760036915857080651700676760420020168168876878294384472385594862107113169789276423758182133946403410075676022775223728822573659522912045009105359937681706904661830691491428752411078905057559680806927262832235845695702070718540140141336744266428754225844213157317000791924692390645999096779902990711253508070727629860501367361600423473357196477529449492011988830984721163735726002028914322206538894554517885974352893772333411610160890900479824825906111085097525092136922126547301706672318094569900100655694528627904874888263132483270563291445634165042714743417672495294656130495592096400371025034671326333700316630915622886219627873338254315357674494001367121934878495825178636132177484448776209225019931005979363296310937168433229071590490511780749411775869349964790210403743302636993240472449835950728689207497072806314393942982216031321129763741785744355874326611294174721195513284675347846381321605270750451784065550038184103691664110447443611790543755316548028762255213589992136720492827780788206782649632074472827051446109856836460547963415858823570370661729123478426660107060774192204484046319807607907280974595625646826623137414136103247334403487272168588373057477755167244374648337378629536552884680111993745045042115616761447834764226640698743080065435294168084456660797853156392364628834690090408706582341587239831548385359470698032862988005257264003717551257098316599980533279577718335318205386734866326397336736328154763916171902373959744709970407178746833135562158873684960337222042985326080869214966302188790425956327132710460746314040097358305329076523152506207031189369115994930990612624655005418029578205546165746917710406402235890440444107603851543239369247831264319866719462598200712727017155339415354604235009610392944439487160216494709496019444201341602317174491345448703228372145653304058893383558562793743455522381746563244866014878605123738832405207436620842738248567379879420512857545425149716131303323958776687647111477057609645804060487374461767990942357109479074470136007796994593986693759470795800031294770308941764098505333908265680454466549646627303668188720576467835696220250498220322997747636803061371855363899976214602518278588098365334717765167177287213479048530246830610939149828329806044631233409852166174495177556462389874133680770923626730649999817505094992835858191521537738754443355556149744845743272990997612998961364709078538054475821109704245326701921919341006672865260640961243648115036836130684760070219904088331023722660197918317509958721444308042861990664642882803968992669414215956917450159660583267356438449767268851735759354719506066528262544995723791731310824786285484532513084183534752900992778124245374200814716016944179464598912063388519603457092922576033682703593432541269081162595856872985246306418930335625188579339524717454382682282379306220086024622208355903511400473144614208093237492102581536980540097947718480669492558685074434716001860822101674191034735191086054075965734432562929892892425827577975050363595182639481120672288129975500821826840379491942082244492612377127990950574020862237577086044469276546909976288443042233353001951498342174371866910455234413508471532066374633937597142192364704698933249356261113742290368103189997701097180129074291790899243819022604003369698808044069583674963375578363930397225368119486677412786610289192503299404732594035302863926097229110709542868554144312897220166385886109034821266027116695966424731135591465450949320939841325069655019861123036350767903383579649302910736764949268910443181198769769605854143516005117999895820467531574040199222971432983075622703382997800047040539989484017870504506364990094216516134142221219835198006945259414797351190129835874899602651627161590971556921355870521947307297813840812109138349558319410930329173798113280382368672518664513551072200212856962501520071935488685152701844709572088033643642112778907375275028252393526600272055101212968913389022967499402226341746698507088987426568023161324218479093455885063179642679628414024550180049688287993028060415129578244844026317405012539685870388714713100498682982374639597776889911713886013062294961920279337891456869007270446033779766206877584360983867971980708326579089146474749284895124483639492536223097854941680193675585212549007569662979944331275031771826752230587145383021420169191748819133601320283321364436511889964451465578977783141268330158772726810855632318307624782758381666758449884011900125325953532487399682814271065099940912918649889210829038838984501124938302620686411465009443114935664340902516508132252388808052758492339704314641691584661080445817571210414103681252586151042180855734405339205964796784067229638199757113321357741661343736538189756192131961757372254420052628568485181709719437625296457019560992127785225700036638381159227150234859204682427975855112218328620113383741867780118426803355812079288883634098906786809714344543822732411457541092981581280437078545691002983930931442574460385531958387985106294533815112309445248324332266819805290599608482381930518184923063556019362676859435848067447669185716924733115398170142866376196906772903380704155836863311076944348285996944634379130948067857497404716994016074066006716700520686737569746818882864951233421210618995225617001116414820576288639117751149986993380994154194965848905811905248132064079731731825018578703341569352002971699037975648995073730294850522900754746700619822159073351084527145399749376262791511629135851947652130070694579543571517083596647068423186109004683363321749663284479299506730149439562195546665821542918218983537178206233499386389782743455688332249521184629511055387013282042683823445379464113262227575992993925812431570125515813462132040648268074389352717316807074619426936669332268418584814794602252282372057662835341734894589152554423975783284545866420804574223000410575920162730132539980721081048967271085839718919013635130132868256420864097903244525067688229389129585660640693164593480753224311505926011821234038946984522642746568169124816789488780232365732029139813746137526655420268214949565107167999060160627107977393887195262144742142921135530991061528828894029852745350241542981103738931283990561896737412329697104483023164017119969974907342742408250717151718120601298669966722567571523255550989696971074556097689939328918174858116044997025069928741211208205041945450601547575420377313493562761386044699000194925360319465108315369931687351321457600424298153138653779008029427476610123497111493841309908958728685656210692006308851494109067807523658426892207200000162930683964320096791738829229598262895659297379092487966023707347372442385722819582294960656940556434804608351325899057378339647775481065398206486412309449893532880051627477904539187530517995444486659448620087663027937062905978254110132341849716259078878439079675402811727454182813128585854529258515442236214414305244495802285088191913256393982868525239979415139943781604758120698570652367188406351879350705263348996679168877358381656049197710071165047847474506597346278990335085811904239900633090472701740486211810077068000873422252182369970182275501760903687380864121975921800302170700972333841628615263496459899326160045051391191291389274244528246605558154879127015692993172641493661715686946779684575490591400372725327496552552797452879749366769197459304997666613375189510452451164963169689767010126661294444547657641786923714742358687359703528690239643824140053179021002758705908167339990323164627416112568150692166165274982074858773570959353583101675030868568941121048290573685744776336962305714583724134474564664707723609588679193306101236231508939182081957030432747839448262564923771419723675211113660283852748980996643152091045198646333633015206478585884963375757826249417757928529494471322689923663081950187345614600017024799765347280662640888620099028680516238799723839269564003158527959164961218775897273245873717389620273542012004841895601141621884621642290946745758490599785865945528711242614993404375185728491737932534488396035937700862217772728345347164252852474403314831687680717481643948303114780285199298541392879572211944521060916037157468870286165684892046498864753067728186719802112987269462215974260925452593212787591917318403064483604544447108559112754124604001986954889243666429643936530980022972286520510371248902924630448117145539222427541214060627653328386138059800511360813671692056759753428209545196965841914746517050595777901790455747078906052973707501354972220902096074469175102286541852380621317010494960306611218300889867949123929640364263769496893956607096646696140324648379420007221159944712105693301103208379937747567173568714783306201345524055124188138704917257963620039849131305029308672090581217235653786979047131698688766094451171229016536172056850499463727929996840020451781262291214159637446125952448924528213147886966757190836839490194065826406367565161447180301946629515536108996892120842232486757825805644813535577640061108137793819112608110603372991297890359987987284816042141934414839485054548124057497955130469966147511718020579306396319444190457661702418377716208329399385524285293158873183955477619143402819662450502814749022528523958897636845230589739637106601954313037883780878873378537408082120198361817475447261708403674299045109667120910486853252949021172838990645208838991908490167639897353114580476850530465524225024175885827695753184198626193353128183672630515925738888622648754327348259783204400786612385698232064970723939647031922402060047858472340699077566220732907832845790897527384400523339002490541606808048816786506191617566813277381821588010774080384573557923818205720024373038585654714502960305621058919091752217381316488940115846944737062890196516317327569040488229341383095792368241492685382716440049377029585558634501522097942335380176371574685733957478259798466596514982874056469156913926232399657659753120779721734935388364813304891086050234214359859012396985240500357543095141804304765307248939717867722277789096305480227850404243513760347021270569002940287632265201301030096486081015786397128011669987522143474415023667109555126979564680076890470229158566023609639706983087921813930549711347093839075755536831612311495199200958622809997981961695785192285502691820613482279908483657172162851893683411309605233286311189709074698863880625549097863922500517954268180264821729323084667877688844877932316632421560405795831432287458809935867314959284905315742248395454725297145271109751712491085794674425023745371778537120676053804473310819744965003420824600030975500093577050763363189125142568876731338538096251456682771494333996567670605313652486664210939022268292169790767583670492180474654113766910779759137415157291807629016163770664352108680990643322663361099343969858913562626273893926906423798670821859053624720285600140162357953326786089453623015595835081109642008323477339667999804706485023168329949199564339931833581880218747601590442234448864598061388975412466161023095953407824279830832011455203297604160559557745759889445417255158140402215558268523291259345330668796891466920799892261485436819787434475996560801589577296467998192182612109157209989825748048400959391961899090406105769215578935486922213114810424573595853199343283236401007403937798235599117004609252268404510982590149102530100315876652474633796158791261275421908886494595884149369545270941283957058571971236105865858294596922962156279488773871533067557678670453427314189974699599304313786388030969117215077477314451287729043723625484083315259728626668570853095370790207430214880861507712184899633460555437418134768633100853918826848583282248728462963599753170036667487053830846021882087191698835176177412911794430061708874789869230449165822252153637454835509770895952549467218334104061296013569339841855202769703029577468868787257328730100770436135541513905102364870386425772447108636701157780528988797038371309787590064821251369022011720042968687740974916260670226313453454120354123429914659447058019478762594987126016304422390996850199096514256038678602683701419925339218876246506456534247562389074176935277145894369394867831612321665969923611445552284328759524813707778153103772699045312646330333202190084272794711912274643310095343289968667687750653114803232251561396094577441227072735825730261593083957277396549413927996195394088324089225355831921411290173306770028956851168441171880733668934694439643583398934344933578001691877045520763778325397332193308610813091899788075637999092019289460376209185856756922658154676962652291705311178777237363242048006054557551021296533249031637916512044099937780711754452446649158771523642724425051693047210624029217633018656448781477478851788127992027680025826049449647626585755421447755568737019984175001964892166933674760516287247298798154393026288046934867629541174817035109412272361739160631812596861823503358630022253727640793029097467216522322656419097156904729935211689164909225327547039550873970272088991995511794365246168951558138324229213907807269743532290003863595556922429398690553088672504359269144403451707185781572647983693459261860138834830860584730696813820099654943120329272701007448081126815154395140885003150129748556636143071478355176104559928062214572483823310178900509363684986409562490418413096175848844771942604163864120580680348825484909632575220379517024535165961032622605353370430886593207786102974269033158034999143093903671115747520680950744966612640252913850572432501966789335077541361536195698280344896445642939098260785085398552702847579625568817840988523526792619789503135801266588023366252756991810923583195448571778272252842821622350001444310891299144116751919770381497931900557060929094547358398899806541133602205420800844053034780113027549791895065986754858828002311669470624162964016719957957411441176204419909164452730459794505381782689761356770689632808138422248667372317833719707819067246018945625677458284753368785246329283495869645078232167794834255836221003594495956217425416796188719927496636282843507210980300652116025817483420375617316653370921226422881654418053562069606347783438855827459578841509069112967375064735547151747861482218445238044103693244140167874752959802389913519673171498356809344096868431360196545333150201558219817488505099067103088534290522708954063261874082638070568735336071896653940089881843043369112334081033314418826543682143249806093937281421957093890058666500610987057102928290178170111744145713261582674706182905449973560372634257481115194326321509236056788461074353103222210681610670815788997596740323803165007294401057582908454471434017636610971857873741225641831305735762743813150512322345010053589482945424213311917507911950798788393431398772192925738273223637977243821150582974568858451826861578833827661905620612649175460945697662253643600146412734002053805656747971586189520084315445412473079970266661367577870127458323765998092762999000735580833485214244373039914956947918292799136690863216219563806057210887963768897926802052762311947197648587847361517777996091687501464223907123509956585252690963401197874010590655018922063879517886277806384040974537356818119706737493771775197285133214914781982299983620686497423842061068169396760306209286540149020891985817902633009256444921686595333147838484530334744089909149571436168396700355670629002513468897903158278048301375848349359756322542193966381171930050245077959470599068241111062616402145986378172393368623882410165272033485569203160171081300316075769963533628334148156616365640541603897142934186979453053928430508874597595196627016906996136440936908616801504489337780493681417973677247773941294410118024996155144010709740170733115869193212904253142616275526430552246983210042110250392963910034725349975273330843781831332075504519603991261553120865215037601926906705360587096094982808336122273697648770214508463686551059277137025632672544293789119614856872378969013935392605810459594992789412458617575058033562691797208869058425648902217202730828548288055639489936616290149190643577057613099607985687173876292898078894728127596360038660778100037069759017934096586651293627127648725138758468861568867396436685015379824400914993908293439346014194214993977086969907777552412118760405396845952761827469197098608929702093626253649278151993142107945969764605295302927193112572451535172569870571029855739320506040416656885466892194119351029257913570806961650781014258045105749252258763151162065490600094606332059531992548229540592866970079697242075598178354865544814693029893777518731026252928868124433440687466713161806133567793796680760406565062109959672093210354493283141403340485342990321693855975829994850259919877638932039327092456667268137132284288360168182945368316310690197345991216292777703786882267002918279663590514655320005698980202044948971088178144386432971480270000866245895674252132629494088057341045772782542262127265208476514626981481053724132620528621894234735465833375735101357444625426528547902314298646469910293023954650015292768055592468367189898742298195344486252525611692460231586665057669586615159190742498430602752602650862095716719973933444786266458490453740245867842434191393836331872151192807247060385159008877942943775663848160773663442776483972846629444670253982930218717797717632957738329226034614864875285281452929061003551230617836792735489348664153133076004273912797609022423728098799488938202652283880665180439137055341280351201350683972818380046118450648832743431898879847470562453318682287933746480424044229411440721934367525660464770035265656471066087661964195955726019301380206853860411739031592316909880374186517656724500919431476111952599102546596380967378365201636571570304524812013505317710778902118225511514315894582181110840809651296695452781710472419062314139346218498220372255067255742216258129934607479299901959673334433296565792805393232013125113164169940930414267555378923215480876672020539806202818238232387779142037428556008118918084047740158147199505794176581149509635685435981784615817319120473755111898071904286146589561517175161310415864576896719086159085403167559504428413083571832941351796599429480741519147762133297501807008433630422929844942875155224968627856739415526816250411680173320229867718186729704299388340764894801465637220787815212279839983201620695229093957833431734542122893678028957233639513990765174345979630215016091538493743271856414641851341674799881667309483007441491975305162769810153904756054097785768656190776483541872499000426582092543923430250409995286598109149479368057951189313118988986811580109252394981755310508245824931605077860034716277279292419052749347937142838969442846482048211555737161590881895766679493052115753354352619643942097867491566395798501314438495818780961771072426840604947278542724525997493576674023715240373325130687999654219935972783498353985635579320498825644132066742726470264214048991975996011367237184496974006187254416198043667295039405906353666224562720493630318104821464075359162985882529773564441563381167325384959542784875029805774542515899287553977177942898920191469183328621218942723407872779731949913668924039870913345639797101455309554416889195479098351803866269119013858657583598078974735839023192448566053355915137472087466681733527627519675549358818094629316684625919490398388237586564181926578941309315292263205451121101338351977574556017642006706991338522951755247962571602693866863722420220443233913082974585423266593980232058330361797228185461222970538758714652744471158944010582054874926787477620279325650320813833817297749271298253526587286466443787280293910025736657357911178169495449223999175484194540028883393816156649249398312361547424907446044286446433504556947789628081695604022717041951101553338145376361118046391902607467510856027234918571937932491191082314601370764748801856446138414093200665949759399171422031889744440674480408527587527482429819349095234010044222726843825041497387573901555955417537870062301297607934911486164086789444626341947629784339772498456167205546321384460172797776328101568051641504460875776180363301791541651991880100523167652933447337644727421989435908185511860083753967671745627198799160492803839575251504517710405019482199940258290368939765137173550784819328868142990676313197996651494897786516667033771171895049019843501362274386996194340424389849131177032583533096463122372407047025983704104343815548808536056481435708502311773699111638073544424582931458827671889640945922143408747063799915459577899776312507507913984027235394471180295886516624495925816815154498172149845848876698195530723749990737138041782766998770555292932446739980335888574244047963095762478285501770564634262944300178896669504814185220401390210131847852998087766727807553377990676355142080101074681954889016638896054117027313842194368186683051286231177819874926866795378222185838385093827161422207003291311202552455571405044279585472833836714469412778110669093575846546551594867497225163853988297486895481828935806516056504989715487455999423003570594320181358376313963717019409660796110220545002254953245145904791149909649256055960070726971362441710285697441184171334568879397221292389124455253386005425751913057364683123154807823989578255158667322419224733213178170015748143814613087432954747529927604626705817873998498101030221877306936379920579575866583719114546459510252339708806499890012638371875761152468874566784807887887308631218973506406488431989927097175149417935907692698532760766184657424290876760599317890667366187604018009850774944102055710121592149708580910215415050873279284518311655993566581875247080293335727399819367422738853243403034989128764328606050632988581215338105358343833048779312129852114428950532037550132596865911728946917050905199448187116912500263783612496145099957628748226591473177275083970222644518111956362353686736760654870109040780626137524388329458977975513498182192150870931377807655231176249998423684172505601271600845029125832095652779004041373195435956879123762524754956615213372789792123410164624069915567771475409006314205730189894571464413279949230871875186775975547810536559597533631645425001170839440901897510730788519621508313159750898090038427733959442324961533024352019394071724293181127589820452199489371389127219142669217683989832223470210613402014186316902822935942361954894397009578022010383119079875465335438609964890464888290371584472904302931158628650074446613643029618662619299108836445318994350201069165494666317685127937469572546805307970099310566331792157271731611655360611647964459724359522560093977738449669432273984780678957788687928855827466984649056612422264977016163661978096187527787380655216550324314083460041458075968808207470386106102389303884008089093736293268800461513728191318873095064364197902865513364116455718531730920418896341795036356891905390680263658486163569856836925640429038053694099646855825579368659593957919736058685574876027736019881747884693385080443742982671484324998786611481030004569266583075659479988901724864029538980142619545779172822841764737253837111866205731673020951108177262257208587494731114465077890317711691085996594256859442987854437249466904546631277744172566316958185750309600120849259808647331643799504206869477910955193083637847024113867626882315624426400486482562244797697560369996011522910118786808302246841528454534461710325990578584440405501603081413438705615299300770935885423471674670739553793628807149959043153558496027049014130568582962254908813559369993062064168453498491049330263013010246636441187847740670951554088171379169201776459211313746788359456889010346499418550680984576468451930079049636636197614528697013943403294296546536231853693329871847195644993945217105031230142292319456403939287082773180080500941088516137349833150779221618876845001519661313549954352557178733451189436908617887805187480246347255021743710312356061619091074081042572216429621072248354496894486656374408122537887338086500781795514560478560112451293648084630198235784652905089677242234503415035324882155924039112325019458696705164295963606903456785010873653805863504805650254869254064899619610373435854310586813639786639767172788361863456967031708642290258222102622445242531811802819928511564013321105922700679405646228638779268404631856995524609734087430521122965767391551902836080261972166661881497200424640845548232315298291819115248916067307213346954705471966303261048396521275732386500427353762199882860349352390193348824218040998674589319601247922575189507420200787974738462581894974992950406512900177017900489557706261825297595170821645296767840244777301550259645108401258297378590782435999999560438888235183583136931569267950270962297822376837381586009045988065991531050826358883960305336433948447025813462589019332627534219665279929815784912295481030610466063862979898606860503208602403347416380383575349813102359124966735896576297792935481115507177339217058525413736799295396292108938593615098566077598271045804603778542247683798649496720704018605944838216128516670696491039462964690882566487006838498854447311674859183866808654197124013892015661545517479945246849561699346594569421821608558003266177704406633807299518397211530631584242477162242454186953658054646167435982351506875582300983188225455856496590034914133858543994800675887162638058098523787516867061364908582830248034799257475770033833921361607552434323064215387569096481154680870776373190921762651408670777005125605205447743315468566972433423948647749560593047444830499266831387872723008551695358208888964123620443374524952979355851090667259455482351220535690730789917673780277169998611238032563089394619624293728372695594518041217116359495825013711067888718840975291060855556098565094570390543926289601662509145509098638731686843986347815324822984921958468030156476735885219886425293108193399751844883056939933631513920902960478344245669096065054452863643715816850604739558007028932317871132891953499145049244562398384998402081820393811359860681638338759183414063715614229808613201792562036479207224705578792758453700970222479339867804381151538185706373550639675081035633526297944044581301645126895006022444006984730942092730547226657372115818945362395258968454866651250519232921255649735788004702367977384503401911105509397193515471490952221430193941563667538382025056066735157586642584749712208800592620010001086038291582146859501856846199685874206589475450899564983660406853745633073727209449280626311830080842590277567066932397845339915462709111426104141418721952522504016749701052747565168501512557565401154974460963121771364487862255620434451582938678540795356895866706520440987428727045255019640019241627136284359833310553406488386537187835622781677484101151715239811053785298411629403028594148247673218610734075129432378367781345679666747740060687143799842592794756332960702583907977280170755408359431697592354362282925902045450781519890760204289565238231740264586492949679304229874126980632886707779721263570342826457460421511497262990324294717245050884751011689717485638676179294158928719740680727013137471423119214695909772632245705987913133757692374037029460249071423305818161137217976001971433953091334562952048902543218850025219538242621315486199675755794056818481520502251165229347728564299477741326447046207636871357547804011273356083946955102338478290423298532664426690224306355557831097100564599732872535906105081853471805568332938982433089766618592405626719240984772251077928291421380961987453010887706665441776698381556402412875527965969014373874435129785286702250470248435208963014802024321280671673980942784123785430363492235248621836647803743404275809077450008245863552318587066237601032972051661256312367638714667164554200768231741540722092297515962345319620127625092341493214822718056317587644812743385963168943630608324374890645716798909538138414470999979488027131975645378005853972120508846296378469150489757430537825651464548886487697987789155412614946499988077437155744539807005016336848610422977259097140541507775055101169144081540721894519753622609170730312213813866704399989228327298224108422328239736619386618488725406259119572973970844569466598784324455859603882133881494217306263293418045984202450793877444486682594469655394456863529635283560345216228876220352946682809772858932294227208491311870818800272744415408137568705720939522772912264943852751591274675324168083993066225950391234345747885972420167167275698078356142923266323981935251048184369671793178603299721736739472707671037115288714781784990110412978337973399416836449490152369936990754843528527531389249993009185555818300590858909503049180909915731514013141257942038366352117677505151852789371859607266345980574426694436421597339171916374710655743774673791873716921171326917225565641717018195875168519356603226703664363091494024776834273916318054754197636034023424552647829703083716401688644245252445924130821112133893912870874165948724576123811093716679966920025160178798364211584788668530732540187988787990964930378101696316420868031943567095287122878284642855593361579804952407928174904480466364922879241029280038193673540868974566119834329916465224996974032458839898958726683959052329921462281066380460474513619129490110371314623627027313054561866465493074369745196629103780762874442478893035449272980163445982860859131309961957557774045741552319681598683246495074975263744499962169445368510997979316236909273771066225964370505940697087622857518325570051366559234071976535687772905542965404306650057855439426462533625700761677066936651235611823378100729685827361512275068572693587459627881399451749821671563016950388561572614084902888723977691068812167852252688830001038846447687943683126865214024997729680485552692725870281012004201908365309099403008234310793674570599222183394849345717710481619695528203150926206554298906003652158835330029191651581122828827254568490478762524912957068733653356410266909897162522895406810108740278927681540006057704315382628252852582004878321105475821328003922522181136964796955421939048282980011589671458998302225638115785639439886210923187966478049393401759283906272927300196081316637401608793135113605414450234172382040696619692585100659320317560838274102199070963567431050836730463463260099043745200048415502317696398704523338949793304715905708251292131836355524613614067179144992289646627683501708721333234087279177460330672836809316493575221413637924262834145340612532821495940187451234034783057077234590793767217696777395415263132538787964456929651526415842819137072230805578784238126306463065586691727847194589795732866306754270805359745458701567952690246819255072121061833257406617084608054949151887518648405197873283526589643996310901997857047566887863069379363304120914968425028925469352222183821963517367240398734935352549582843563881112778281585760199504808875460547493051099341264045519511599691060627323411455430018033340418389584415030413460258575012926140978267774253271485487926291970381805484884176269147300761724093069233467038650835195745204502117791189699813075324780550890559301966707535476215938421161602319179801640563610590087359382498244101798400390018638572612423851092793176116787105257574664089759910951324634743857097282626818260199306529304252355670547151260038181142782708852865356411096648540190006721360286016607898217082605528046259943613636151093146080837847686371064467585517157928992386789928871669933821512188127741960572042214374271087771187231289600201688524919230555574422062369289834092602216943352024989926125030675915259759712465084535840135010383978441535083928776068453451070259796332962157419637116008806644816890116329530215003029631191152515536629158165812735659312877243084933038283332282587599642714530654770051024755851842947190413239549321400268263218611262217814209106869397089757861036985376873307932735481561752706640713159210882585788497374018752930658663151522771892209608692153414733488185993964705180392618566328694569630678779901835317467332578035313280133987027358598844517745579981449978249049382872070034665745798953085202670564314426023550172625121070652241100641881387942429642140045272595017843476276008925415856812109254042535804347675421739366156503358421903169523332480588453193744317103604641305917167492215401029171757670872747686414050609898899182741918262404096746092982320872730734281997749038185734262880543640201666976760856141481706346648747213021854309407323689246080333987601128819053336226786820978843361519516274812365044169108346053160250080196585287357785689882937030805800186545947508702530140197838002850559011865433852789415344767182850459636925801938432796559527690230904850710372722119474962673205617857808287527468258374714497835333444978320334151008996906070876424446168521283266717754214209637136464807613581211709703100529510546341942920754327602069204165111166405951377205057423441584762678048116375554480749114748996644712908824188176151050651011826346716303668045882212213025752973944203172126768245696866454620188005069755900669939967567576654597431132324803370412231411365441166606050511739221851551557332971192113567294148166630030490690778854014630207570220130235453929099619026331457956240054256816704499933498991106461837969305945453700014163002471987537890889684504427052280721278789311254312749880549102803375120002498427054577104630464427718793443922852996552230918887088238014146320064161819534763638646353872972118382547049905158245676261360052904054051803413414470736632262453056787307873686189488354014488523549629535934969174983397635221896842380554227422597820071505305287222283945843849324741732375636811778393428027678992515959527523527282208948392942015690731290536556161105075782149818641343661217092109086591731431026824726935186059983056797050972038606998125308660515334080212511140447329690279306480826602473826673051047939796569622761695849209413301036094436309571656715894674365047280575638276313518644701922248059547818702252459407306778254614503307616461703868502448025590529677433503369495176843311176021400982952330193877219210913572956738772265055172171719167933094511087274823897175176147914494087288779662170656526396216487703760502988769304802552706991124958610576387867909871114896567256762473179694152783190996051419238951845017117784514326216114617004548191518745867594209455786260227199217368787648963892452489618508680488329064330723988444260373436000119040977165996645054449089279964355203649954679038734708840393483354964969910300148057975934834286090065015052512073401905721334905864178694569102255783249021775496165692637310141743848825735990140557295951561808370684717579700098262761128501717143950045318953025839144001375261843872874195854970597141574715447433708937664431336443787602445254869657057041790424077538924968071204701868125440885407293519889755316284128911907568002200042484713596510366367122605040593474655292776424265126342516354328272252416010681759825590515063650250433380243931987676616582065975833059565826320102882682577891823662606910801494074624829712358969384482712262084386250423652200762626554093748188948578786790346117117480436563777535309384787866918746405397480286343844387474111013227878359828345467153528818030893919055396597250048826372852413853555534570712210463173183888091130748605303290009777461911138116635517575955870193666249052316391638169595860451662247356596487816700340042068757166378391123812167383955453393363706498390534308817387780873758902194660006699234894585049008235611054134637193178283779505706201391478214808316321437530034366280631078154238501301755055010976511304066555430905799321479345058989759687703815126714254716214608309192549889892617809745204947457167684818480609043868493784158789191169637363270620308617175817661882275496246823935179282770303760331413368726272860959320456307777383391415517553321256869896346292479863880716663750838621705042362373790561068355601546701457386699475219034780466591135677867099568062628596997440135836908805679872893043898940715728991302294038609419837558710831464549374351092897033594054800926467176271449839580608596717205731690685397888898616359223600280327059438518111982074608107647956880061281412820532681013929501782108695447176063191463785067804401737677619836464288895420307694618561833787941002463480349448510564252451770163942153909725498054720766709804764202235241283905858024366314201799251448829740743474146374528578790971622093545597651355247074595513192529289038240938168081913823237970490659062268813474732582810179423551108012255254467551559883440879434169591738135991441306335282840187724516779379624682518432261979004716461225771547120568133096378429247420323121428556614868781530651641787988552243978141301948223736528193586151913560711782152976212622603480194740810313351791305688370023671637685978003735327443821199561441830772565222949078951157778199454246548662017397483647971454196752320827086654000358901889995134973632320777762524091263692057938156633398757272693660849733067379055451606605465683271197815930570864319050000601448941836493339219201152516501919492945617940861860728296132128994746380871796960048563765871448058098807130990635043057081776786080090397759650985624742082198504653334828249794536130136123425609375912782594908737611868686264029640966185530567719071532634982189950045507999024463085084556422069864999722904995376178358771018473551670149600548662521220871545806874467694146829106115066437051330578544327135606380820718148066430705095123864260067010192392614300090496176940162896334727297813377347209930071656521688517550260005998329050380912874704545275615657252874667363774776922750808226349757861382582022828953339159415817483077556448764922480095164399899643567156368588839461698732863358015092283375691970522210289511004702296451443385497158382707847089454606041227861472897978415575440480179534870799293625016432081720171188731598488050318456219426644608840777530392981033275779209222123902004131258521143491733821307733063843968314750595357046443471394367784178058688523215871820243983155190768358015072040159914296603102126142851400221381614594683869333552062809845390474704820110869668126987311074567405078657397217165476211344272067194754984806541482766803503330168705820739368769825167698572186788647146137966882695214800451404227130710760516429894980106795168497147077645825821630796181109960458143795894150180252938280133955652566492649801519155707883327516105226086584990795321163634165370503767700774901877270481280367647626139685342510056889930400322617856240109622923682536072486055225792092551238705335731436689627132279069262380669802762378334154184362562403079188790641793781058625085999837265917114753277370563648120936677895646872019423447016424809440021288306572842842405934945511057982018179609575785114090410494110761036374570690276542302563901597726190303383223303970686662937340416571042222642084001480120070487983820981732385156671974002846001403112303881873862668286054919385384611616139811421218540798829673372031048677633814872485098365503123309951998134599585144698144155034526988821722798733531833192620729003302805580612554455372379523645705628995592609017406910879260869620883870952835310624059499363478764593232178585058914406497069469482581506611609934544407145809387573338432248459173906625671196650741657456618930909169325139429792848064388104779761201289303933013537179569269656610222103289963948786814061780530646606954224939416394996032036566182812492877636570145988617217361707178616596132988062822588850435265629019500906376453575029876070372956516512915638853406123557043874003719149414967151175480992510385656875744538408605324167901242560836966379047245117412424257475369397609492523651543727040278179267324163668740636464458703586972732981652999161048416066566434077019547454917035062302055892551426203500296216225387208326567487503350163408285402988838042241864623434762136975157221101985243449328060379236763229709292781146100154783731690445789845158453103167717613796014986449521114782701913084218058124730018208371218679667799957616253998590722928619889188502267462361584184899870539637996353080119618958962091292908877511778805019405902411079621908557922604953360058169427615509961657590431092002208120429062477763493153872263002804729713574188077738566683959776165714007330132978607533123844332921393486847491914420457374742356056445133378586563350237934297448812256996235308306739857504936878880989821751820262943630245634035781970353734681851646056185677060704352191110940578231553495617565232942526208664526909219309692722356368264507926050862281312819570349475372572061043121167580529067678425108727526774576736884722799438565328774046805074659827468415209267125969586177923074539394938172765159785723015852177606348532502598197440171735670696307260998761330178689998280694847771943565895747498027161000432604560902618741680528576782774644957272411952187064600318156006581351356372937705646717499098842959499348048862084652332294353304637562390958326465203251900333356969576376180168494382871936999020465767874734751431055250868517746755240981738190775834288278452740530095064257559518628931525141423553995342401668983656530702102857967232577634289176534300101322776304218061295657220988509147612314639185231734375910471138194457237552182898543607041322184189304028102307136109578526945331402409429777069039667675344747730070396657800757427308951898447308121021403259570380270575243153891886551702982338456456237098146958925726724350797263781641542337895553558601759407474498373260377248966324513976161994048972792726648323040528213899603689690119443079658504954269892736769577036784593985100237964146571777229351906060198676699495102983953442739877787171716111029278832620692720077787607519104904065554705521138455172320671417829838975859573258568986028367523745423359048534673907077414678022636448040284213223244368256149215247442266933442352122958861541821046008628695960725185592545409653272753943450881698289605055273783312824969768848125619837143461528935533952727398011941670447059383852282591539604588833906714840314638520356987911552952720019208491746929412824253391400339606508055813114222101363459087782523759565166921284207258634960866823448952223654291034097839568814455785472106256331859065599299288308661622055965847522722746042633783371628959540532255754247880502218026952644465162150451185672389962484935519966906321684157483182524504512160511855606434819721402215568194092944426371227915764292569056283449042156198195833749322163986901150501012145058822823978171085233244456102688975125405155723690377374468475997385968141118696784759963009505113845376326120563660297656301455137799539988564406061153815617627235562098868273442651545035219883249136009550276031281030845014061847896758041264283803953376812306140156063342767435919914010101019223892218917625602970771383150811405643315868859450626940664067318521955061730810496833558386116481513712914347220740557525667955584723339418672320602657159111285444882219223507746235972112917599218380294621107681389134774657265869883229621204449464440587729656675179201430180388189126792836561454243286639484279838952415265535442626795945445822852798385916897959707931093427137135600407022026426063759421127291669175561682691550227228015782880628920790721996119119747988996223270437498216258941079021463228727345257494401734417424351198860602807731976542044151248083573396852946108507752113210220997626852172942120251081544421392657630780682534772408888866061019182081279655880292753322857769323692196150167537406519471738351573795254892980463845014464430555113791209320056736719577334810568361168049886584900927771858934971787248528953285746052453277783639196082195609068535812062063277543147575825832933108573976075822882965206498657164120633649421789425245765047854695551124604615419785467777736875949980955867651997551725743342831531590395639892092610944561777881209676897611398356637523833733430212449962151429465769141198991825753633572509850527914081931945484384270794201180233244851259597257371351313406828828016921428774775849098514550104880064261587540399288831069947396113989188559942735511517444094172896727325326113900820488462952254762360707763595138583968321823825829022251593036985744073590129473019235948770034300201984969076517022626042785319625792378839543011926036212739879328503392046914430891672416443724695030425080305413347740423345085129122650113865656245451885589042994025280711735985899399394915356015766669188709127037082823302874229823755256858348159511730653615159278352658962096561018056230916878635543836459402329923848582319828795797280979111127445692520757255210646570569312836926601868658085060928280887362619899468492309206411004517821224344321649268334731528413839870783406544393740926034584394281870285573982827039116747051827107314257574317645387601749097787394997773945457265744324776507431004372399254157825849407205364003889437649423356927072784364992358295559022653285625513967825535977370257200845848456718109698572912769294299198837865592919262609793698498270446915568593447627963097169072603320902250730322007772364309901182612744235786780872344185100555904024965794225151624269235295108836949745461541891086228458437549438979361349003454420971824371686041327198505866154814664887513170762943505492505277119779727982467972823073464155858863106604121054750368290952765108699626864726544275568871124745219955093525868400326498311359587277118649941611229042907991101284306326667998758586580289837257756245117187457121568095795626901339239642489049999152196155902761198012750431966144377712536632968474522145528454261363899506499593369609684111092022877019240825741499969072529690679936743746390535755367449437465606864463123438234049528798349589978578573309838149322835224175439532315852096438792910249814423248254122648623782840498725600093120053182480511093927461550224592176019103776543668205393677206432980473774776947996377406520197491423060970460629070591103894805810440219248107867330628141533448161276546160103822945858832107597965171665728344947230163149641468484593602877640762165975531516200239014150595857533244643936945282156791306482731386404756391199039296129824555507667917992581953729937972523496613524490932892447697073375007466105426154587250930843952443830130911009489535111403266677618582824098072779484889823047599716993878899989535833513979777047799606724244326837116428990239342308410925140471105874999135728990649565011815184171903508306019715474172899144817533652493491194359842245551245957840745206188464846339555869651680095646414948343984223412554727926897558354464495186651281758282244996672789618628461449510854292987079290005652394658925738773803681897053536342471359618835595648802309509093869236303814473142621000591192587941763723708605849706569374083270862896530685651998586111539278679569416550789279072026114814376203981564890410299509089912242082849825239243810146780100117971165468539311382555108397354604517073659172454780181759254588797690906571778812167287689084536933987749633358309686433669677293027993198369818292490966903471140608693762503359491392302878186067191376485754550538237212041396631765097949201551120111548431068857237889474899492158265800868911340304740254364349501459182233226134724275516615732030056150446763826977080009187497481242081011182370462233429757081672918723723111162716006210173684696643728341827822439325807176269860464779712983470980935287372348108656182757278613362783454637778100874452060594512279766433548829283751838474212970519841684312225254431836655053361566536243650074693550921423926678400438320333907064873355476675329690687999634445150858918310204705929755976541850802254030531854172614555573020186312898580139556535151848047709582726856698207129736224775135141570268119191692486355415278055389208989215715043353407130760550637466892382535878057923464425854382871433719528135480550536934297712917871207460495656395982211504880246098613947947010153167346138283506580281087521888567954155231530483481342640364973836622053447772527885151342222287264091922020288987725318134515317710352769377095365734671659271171299804435198349424989421318173404703362386615105706543609581253757028018152966307959781201495488531613985596996012909263815851854054844621254089490785647728657198439217621544103830396534764054593344830363754779055022981744755914821711727930037762432408690260993998801676913750680947618021517801918792676338153177391804035477404339558454890627090009931148336016787379458547860099772994410338279254351154533591308548790944922286534540290307333791871026511685897092935696059039948532933821009127724648085502719825145019187043450011612330315231742491813216416480225117565784503808995744629516226796149371861701822041966477602715532696023274427432404842472940801640386631258981686816811097468368210057726605112103678659289339842206651158773578807581803065274181410328585821648111769348731318373577941251629535890957185121112472666799917554544267184845722670049913847441234610696793098362547086648871501565196413831601893796886653119951451712812371673437379563734032715015014668535519625954757427916567461645884064608966411766161771862259144572692826004953122886044172129778796485272050695317425238619844271540511137342959123774542451784080347321380354554454594701794900148591704675814164109331669701604791572405284073949786600635220115891597391538106276169570745639297347446057826779771001673948450513173506174412142505481024326105576089243568091769922140858760154757175258048392368387921531872430298807568043657554484329733046180749646139311171770432056651837300763687160980488693007077693724266618956066953422793836374300652083315610551749057268434602185162831782875306417584503805489726321175362281303251513225215491380008554394255224076818241622386448948581739764445860114284332475211909469480375601849052405618718897902957396253077377409725411535968264559133578936395703529780884320019375087502644969687528969763716824952444242908625106644350257806290546601684141872419995288880128581346822150217190631784889610328789183924501179576985480436340336995994737132763893419712512258053333937099438171749082453870000404094145442110583096232709602618222272776958676369665970823392831283044502576346553565154867318284560359854693268386477501335775647241556419009492263136160664181350436564105395015719584498791088101399696796599651518516918691099963811321061609052715513874163140949237150146120897346687031733066187878527930393081834243470739310140320673535193337999248920181517576957622198603890334912989780286243430840699834100550111305786830423719567337970220065939453422297996586110079623231056965817150396309014256942920107154009821777287624164355203007276791282006513409373978372226741728233603825247918985906018355668414273995949818746560906668758350852095845396542324006892930405926509529761169055307872470946317761693948930940249866455872053942490265532842629352533293257865663412385302554046219536597976048381436889769597169561803269625561319300055555149411494242289871049751232956352058208428778618803133227455202680119198836645050951954200351726947262189491911159725557805962914785181897517582162066299944045853081408977156940590738242236631930002233329576245507808591790340671213835284776650058139159871032719934195948262437994281158399597229288561874870905124847096416112552649371881978104924154412490206793754792430457389184075137499880782200752097184238710647468499314058125333240549568391745880276137412328806718605475421208009672431538894986986686546251371551939835280567049124436655332874340730078078551730392139599207925925712338086454815888498247905602018625904769353309917232292551421804017794916020331853414766260514297784422125021850638146459522078012027069767477656714256088153160881281087951685191903230739889650389265926231079278582152367624705859885526367251191512776545788025869849830140215675779231252107687899385893691587029561436292025235806282491758101992157133215209437739578469816244534122715421009236231112531700886476816356677808099341287021780615274787129030046205765395276215010784694066721552796308649848976451161827996573381738681967451480156252600951145724995497852774687036168016321991912077178656379802921561101451939506042691902525956067210898080112265327740196327019926704913636537082565228653158605792504046953846222441912771687663155725505989867443752999346707814102895393815712355316918098501752000883335305531488606357540190263511229128782102708704724707973612830905985066176705721460283926037863501289732299140905829318498045452386917496726442237864880572217471578790308459942731940356364320935682040912378237124608803737226713488850897956050103881423796363767229100324055499666109619507177092961212004591175422611921944434788279394476273667251792771898487726739220696347884511179108224300968352198603166494862740065829615002217596853746607899576674012479815105901760677528944686558324371049750637085265948500217978145043469311325906477234944003643861440389618430036729958596232242986752426694535507445324577105208890338947308793595731550235341680146356703769426149394099201056378242954858615817907813220553624706276177942387809508022392392863679817712599887538077603482548133316759824229624319612327335411135631354653676070191043034860175103948066429170466381832810237989174064450876519062821207798702524484941675323513057895373791115020415007230004156022251236966491070228125549777024949509014970917670884830297548501363010996050282638730503689403573456842347919716779626147796432329493665401965509142458276940455651381793022017221357904409010025544127672887184213345332484678194127670564989680733962677327652405246022849197717601816634495765008944561495288491225748692274412707195855623288494747139999011221640563232936794647920291481963052842685538504783816609826658653324160942486170485483697487997269660215695029796139740448589566836458134024075745246157335273450963110162866048406894909334194196238514270483051984667886386217527927294854940896217845625731915100596809625667009927928478824294298121232947127443808609066553328456603875666962772919190287930418579526431077693888224406809102254612309829516926873685006089536403767708658835103555485455093877072431798529197466921939259272471999409824644698451289673337448218905570489043753455366227660665773881157231550051135442104046554240990248616332691727568251401510579422457505205769006283882215579343161205256889153558038291681740483303278931194882334093732943318871885862724525017001655908630605902204637040174120960341414648875404448070282138737690186912197127627070943010939183064916571868213726981920170152025535408812098696556776173577641193795595440171686063235751299136228004057507646368072075328264865921326761027411278664419684258213075119907916886681435924934452933121182417031973850360326179007328708668209586472502550343910123959167496499041532637473805164605923631779244638717952578861159510961986609193711765914499376353660532727251055123478430024955231756580198891439056309089340943468356028226909672529745713433944339286318981787973675084158156832955828708452421085881332857887451004070256986932186263866148572105094388567242182353656900612152914090235981118530369975524748937723099317417977589102052536965895946607427821436333401745497593150637836184321485648825050542969056301668779876126208528718193673215725540217345576018471717035522560954003468668418121872342184919036964818750102267248357960637007599194476578263424672921012787948368479523247103436868694697289897168076533053476544811329384297365438624483615870299071208160131196733913548497389619243164552137650565870016323008832334976216197093669959565428357775066159387178206039483767191587726035130124271035291497962384929625361256118908638328385953049100745951552553584313208921868488057290461430970787806829202762096306654977013471725136017141426403300801908918491294777388670366900917825141781628124951175761997085539599754465200342226059729138554931009269865110380473230859195974734300522868627070087847934029338150057465977540102492137927467993337779078316201002039112495275196417035316278334725361536724870481133389161797002878905905319315636425010801346984824893194979522729957632389462885851073940368106952963459667403223591133074114917439502913433923447621716343526868394799692722014176862385076837953040239709521039417340613898513801924322744988477641109361032960582300255651228781209146657377367163104206957432338871715262033117562929205453372246842967510214752813394886601700290766373625675470143006738084375093900530902294302645625734780923480688215842621464618667589016529291261431278419469169051617013397217910859641037910723751126213734249338714246333463278200524408777770102825470678216549101423127604977452982353270635061661407959275871915799811868506507713889665853685709875885215078808775491461945743185762229496486988625167391631960227668445118403445062092832708261701711172616219764424262447934800327583030471112603072947340998174047310733567342714673577026896728707619652117643557431621416715114453399001687635613721269227523140619852781363484045079662517175053416993691968826460264892864285429561261980647610268253002969739470530057224385664968983552552124183243943353608488901454931577305909254048055161594023976502775861843318131835607073639180329826848900350963130446730508415601051797450845143740551662038547701688326781732559843256212013459456268949185093263839939364763632336658854898364096302939436738288432895039168731964615446435747327957127616907488478878682556910149229932440566670061312704629879983808481990424906393136384346586993900391781853294287633203304421973669762560228719966673371457894733832122336049350227183717452348517884849575337960962043632088055965753810660072373652589206342063001946949687811066975859226631731308346352870276746984002990228656844103445772515885953420276398829341358867135436382143800505151481851620998867197876073805298802911671606468871117841302512154035505856809294436730209727388357067726082695659674196659384409278585018588456796393004337535392351357711236542984984612293396581834200987050224618620484605844990165883597856924312404828740928970668578578792375345142236554371000828164085486631444831409439833987896225683711574154893774422242812889707894269559968153298077014505948996067790056831710612873484440456501859011221129593349257686111901483157266420796415060067302217735311949809292295949375975384254417646873232911462817111569133584161411009954687977594887972206787197527986255787445677004350997600573326313388829820144438868545498978289045137743477784252529871197750826769942559668314813140131759852756227410884929844435869815666890811516897361053607346506497475895395778410829503388828894068179692318343598201916458821978939628063400291137246028829852779886996292684618989280588975576062323300734155661142449658977413001548666750671725122895990730810105786959727189788960212461241848787964978277807820682717211948261972290761621543666221710261379106642701698985263680136897401321299358663186551886448157967970313853058439140490981441353222571169896540477109260173430636150432113677195991970755342212172713805905436076288456712477919414088946257009129211597272189058955248037462097742299616219432682605101186859208588767416050793699691163459967243626950591385938919579774023914175516596092095508304691884016923532240630233239806595631819734157014091211469185124531728160366811923373999622413638143711259886624584540459941538302023761367597141292859995070729799050300817405183164511997385236158074940283671036353651942897967299656707223985892705765731539655839734322267522230719464732484238360927324307231247588674056748715615391963130595949522266048280231878269637149370190508483678242547722082435894179436725153044453625523430890356639588045178961556465261192567236008917865832529065559419969690885305625256433118733599940888271004360458747842224024714375912160574008605474988772529983429245690444534112614801294513873829203928667892484989582975890046628512849233508582364544472348290731814070595860271907270521884118203687947550430439574516762469313447975004860665597766671971743159870907037038971112818098164244400854893489588129163434651308825336416924546971097255549097384490344675286316229086626509255494996821739378513247475955616209074836771637577132175638105775725035888516036878796964410101243949220351757742355352378932312974058298383392590578916435708405060122179694679528840559477861208402160157716485799945067878745218586079959215328954903024411355027409330033568229275180667753125879885597660932852151638535310593631172201135368751445255154810178995682035282619341989194334029748714613304589171301355969116981999838380009254414340117126772971968441622910947820404321087674740593647029830596059850659687948045163242239557908829305531888998917871064016606397411090507310938899429804058753797315316726321548013094939078038579084577776831509173099370516023305182066394975537299944482276625839094954258666434225861119520941542037157352661275195474315438362141646367733398085943625168268174163592095847747219105463397388654280788503093528388958777159265333436368611897436558558685446055874749501086431473666175519694316829090947895407759790893662054459514085814272310295930886472520328447617700885940042336917459127378775403141894059455473564796372977945541975482134907841272016697790715574857592097631649674304946057301153307794623992136534851383051015632521098243098209601121762412054637654530898539928302300810249628029541431764559976497875979821297331917949351248025068686940123986846830432995551909969199432973346183863416482989171520020674390956369271980115274982527876719709061357214495020675145897202552918052360089141855042527825540833791510657864316687244278222996969654289263038113676003053162619015452007410906636716915680994720359396662407858834657673778936160677010612834941150777406293920952600999235739447136043951501570465032084322298004733165132292549659418930071991378536112760078913519223670565459730345188819291333807294144853568326230788418540636014809214589598300586025081388188266002019308077999011035948145086255256603870984562728751270750581792480251160522810656681736117502098517145579898814202724691785344323543634295585598703336835599661842504983685204124766084409108360706311096758564921028378055816698082255759690250436670171056928878665963120729679020810671361680373922237748857327118648659614623881574635318900545313759687300534082847738308422566200788910165332733620905751171597542381637552370782722028803960531143484163057772181408529552780509811871703544794236570821701815520279385838742098254401860941676798029451869023892583743611434601304412574041713591530571202495560737209351311081221419420097329076348303941183767176425741039925221430675834995238734181715349516586165117511651461569510762669147182999180229288988271682080709764546437649798390243744667986603765857773128992877203790690271327581175430120836175133593695128592972520626190146611445317205987520083394812578370183714625201627331617415969730941218313785131501265128689931218854405957898896448073912926122731308273495208314035047524908442208773662493395817671672148144190827787832064061132211705581197839773656071403073940701125961945395512994215378443760633712399266235607384794155664843736896942394620608094459921651529461582325204332921880258521571621226155925765360153660643347161492810044865692387213517401108511701303484881385050186719699860174793719711008731054891788557702919007705512948581987125784954135360271043685973048851444789772093534512644507199395419196062366247751525171451167302132507414568791438224857464990043831801218777698093111734836035908267735968642799656174749546040645137960995821321882828053050764379613370407991718959557049092382433325475052328448865341877144735161890904164624608555112544288060035703636144934937173894129692611730304739223127786312273155268748557840178275712530472938424387890097805297301967520102517946606742916404243703413974147026992421334846387950405466770695080501617129092640412724984497245072339957031642774216009218141393976723389704386790207227861985986324559972342714257111589482562434752873633539128652544845193805429629176912393488006624093380420717525460497474954577727549868820769853438463619855872637535006906096125233755657268754405586252701828094854294051173175892257415943687958191188279643379219299805864106892963093921811154560213037651639818781822544905088165916351551217896118431041855055145168533700672740900455331167982312610448540681864271879546453517812254794658582673345159533562645174347433283416375846188907376582160517730024397582632578839850817701912939596662213088041579899326086528720926053428336980004063409168767234724173995360324530937736989390781812270268558455208826878260535712955606274929467146560888013981598018826944100574870161101412339323373704998663075734948496929036256404641114151205997471697708783386405428157961224898101439119918287497969839411151798388711468228022918035114740699234994660482822921578971050143474887943319905579208766189863203918432464631174975572363940118274241149130817615021498135159090615673068682196872206376653659951139847109978848874332403166637058866024152810107466768189848651588423933491327914792866674069814023701093832089146969909979024281898420488818826844225630669439431485795500577319804840521627262154690087796381389136879210748163619909534976163234951133247879747762756542228599504273026578795147719784545998373697974479266526932777265639937338175348040196873214043201331934887507696361317547293750568472825017377332604354525161531416685437670371875098585973728014590683328099422837968200027530989451281118713950622232372009453191707777594073613932300633918105016654149736808007638282385012365345122225668890177654980120530848328175867815589027557474223140372349280038845178085861677263152738246497984811303855326754110878663713656238680431178866641419168651825830125862572250691123955600926314569299639970812605841659820006060917496937823274753958003802510629605541486891950210645531642829394400372346732041488581409189881338803967744085177724879000645900079095156104115441346233441384416047515214012206311409585494017673231809687657332904504408647976185182106045768351199431293198191092497395378129377546812310798185333062210667452838029920153548416427638645282224165406640222485863168116582840014491389627619714637434088720640775782257857226734353698791842673597292001402976002283393370172071529207485864312185866434693997595339205544622691955877793684873024688500855076574209737466605302905532643303197750411211352220068203107605523047496246659148606119054994257348661804408953398237620580241863211928074171536802949108448369096406198308247146102524186286795258993059027169571375324041761385207116878177291178657607185104705226749378889504682215671747506440306478383956937676943484929648340260136947914102738647212206938985028542106275832461987636043891929635088011829770586621282759936842043362189646172026146243019437158575925194476932036917723329183272123918715416027657094979330302555998578450451565432548765210574727044898236002921690953978109285899730372151404030363625758673673962465721844401959699453126177850790748508307042790931174147953648677171668347717968518146503357604805159771014278893106832718274931849210644151499592044377371208374301047989612315062981731873797007713012499100467596783963114177210836120200873378681301490250786174484260016367398764190822111686543835169630415845345022597933242176406605651066260158152805487094752018037730499232020248895507920118774333668099450852286183821637466289003120247235757652574582037225380726870537140181910007703516393537141461449262450282843516471880164709517195232683615784624651772528200174841636726596445863659684919241967717651857180489329885004626606106365352448269652383603784149873658623564982025252211065821943187032558940400406447496842100011261149777558650666897035533248262541757842313575684074024647239805338553850489601210144554156903271543542347440905190880015238629707099941933273512789808320756540046224549063495641725967084335538601519262998478742958865366121819933406394399533084629498786510575851651870209203893779872366939735774605180345821812320059357223373081091258689139859873329403447520594167253432165316579930545389706229175622722544428346038968715549405714436118561269428298240481689993841517907620107469123295075047239562635058918152678525230332384093613740852654026791015460517658267076780907629239701686914324013131075921790574027794704867607489618837479327730169672090815349712611100528399223695844630990654663281050055823494138403892766563853710010426278492020595678273793986632842751050512342468334369444770179275766380998679793948816443144997217465754089625410888212309645640629395813040449197491323269957872194674102373976836355156608116332787579201177018128274520737635537051884277684815754930625245144431446013908592909018353057370194679145372515753852056677422888371823021395411025329266202013554049931363582283309733951471689462398649778360772770019337514397973423474810446439914801715075898554732694847919735598875129052672125879841922416732442907202896875507282455470996676066502061932873780940616224642715526211762536844577458344636035773703052887791991414137118541203629886617218672497734339388007258840214483604533803763335619662815676466710468710369109706981442509691025431732140528994173723917716957265523880577923099333648484594359222219112480460265867884453885716438551865963730769286685590789502147517944936318981512211546896879963465034272441649463638071331125030328617761257494270783642938483723563635189792752239634580563552731601110776169088146300313655442817860825555833354880646806695163305206709391505408068693491267343840387592056128003707248287824706650309107901122516140414505197194921163516574420438444688245797078652097817867842588301703907121194823801862582095848300677916125204098105282028524289487309485467661951257923863078846255452043194209798710282594163162336978649890489145888774398717809881306759250354567857172151019570168745376926005840296846308917712330140539899650672352045258852293286309142446125850042456029232489234156243755209876879106838888568698037596783244955713295934007385711849362411011312920976996601735316806245480707938853178019798020048419295640550023897178305175287430042803883215014334872543293889876867902540096176665672576357307530805243330131817224740872229796762938052771157001165319817494122161057769535856031297554253545619172908538232583840791344100372978372836347287010339391986726308392797747921265886438084686444413347500720807912899109641711523049413760972897085978618612104485323418456139515784390727253717611883018889378730912849789821821556552609988368251091059865172243866885940548662040006846490722151173919597964566140476100032863426929497878605149283187267374864889005952445139956043129404511314923332834051829179035363472438755287670944902371832701379368638355468328943903556932598305066562114396614097284602271327073771587225096871098020613011163489228259479562557080425433831707759659688360976836076547910821084954257640697046742632018286086580692147810084975269375399003564675892496213720929890619332347628673171920403319522204642110486175873124821682481543988355692751014134447864603794215169807881557758042967588410037315848627707585042680352581967486139307802316751575284443054109438171625599554224250413942711281856069070570172059987848160665487826224225001776915871363941899340824492054597168795503963641278362146719593374457665586089883636834421323405579104272185186950017482961317623708034715698584951305375370718012073793298854246980129063130217092447933939467661979051041383951729247591730098366503318645787084429089918381949609519255614996365489455921630460400384137806595608773469535610041596371823779124594309630864625469589247027129660015736572458703301645612951247592752650709920125280539429392913610600036233390943449274408055934992923494189570991112377888165019540767753562408233411930428389069927255802020872377598038710913425255561659505001754404366624385538239847115009346410640203258116146484659841003752446344865973043956872334324883080427096735619075739803267816348664206423183967815410258096981190883313529015365085848674604956669232731068231500939516892580630817692556031669321264848632031457963568531831780356764497007700984541175465355065980674734830020203272128448294606548297442540925634020961038025105109864023429787337785427543442464963869296985257135012097528268970655007422382303990827129229006134456529122506181759222733562219849696701166304475757579253155548027558985085368007381826346418377300241211600298667558841031963772168647606914485799784836999327788964212034571251939363493349070281020564222370941158510809606418809511518621926388024483386205906047759307449782264663328978931739038411632405510570109480621434284999355707011198211666893528846776222143812123015704934729854148710216058934104656965950515580937366593232872551782762288468562154359463662430165312365591182622259211784851262240193588807516635325208744395203593909556759344682501530882138124933213873234186832208114903350260443777228889707352460840910829018324799877141732668988327502296577087742775999524161189030598837277721046460054886245749957897970272822645821176744571613951704288126992487034096127712886555755792659529654933101315301795973289923766321871914016820371913161801904076814406547998638997411065119036838434678933701375455650556224036406651775266337530176926993602954002474884720308963760228525905519106951760476452048184705395062715378835511354552789032499328909240902008926487564053733375331932180869866898130382181225625595734512750235945554321823456682362470743586352269745902938722334387582620966451056179643154380420858820602053728483213502366413368156137791100086845624593775207088652828552349607427322579044088053957217450453733192165649927073759413737406054253965728398983996947708016602613255035089204422442316080908732385755615526882786690728071777300926705564564077126056603674727668452011393894804606539853832981493623591638183617427178459433440068518774366409623907067559778947404278369193320259571040942644368471824712285627224842670062963046563926228637230763295654630316218071740393464643186095320808609511501026379651457018835158893581393509751927440289081194033460249047203612591474758174167187263772005040315174652360871271047283553574391895450154666154716053750840583304467399260734439443346558650481611352311067770816079775763104821973203683320259803966926887570836336518722749765669900061340591966730953362108605054421889465222353922255694119936943239216331048980993445030774249520445641038680648560296441715346181120181016891004785320013335368067220418048355045039964524724294148214473864408414062594899643871462898396002913218953247092195494997241473044104388064771854466727769376939126857504638078831898642505071992074212204797930633467081764207941505674233725042975107780130952973003277318484618089564284237402594466812738539173962512930563611956018852504493325656905621848237786453406333704111745358235047103536211103853433703964963187773979925849252989391966315299211085467929376860762879471935881659795650023276642052578581496814732310384058555772512145336689068840790277401701302955179277311436083102154818319623880110492174884848934593080735696353134821039886147598687044111244427214458074410160822946117270522767295042664638968013489450714480193881728177478046890568379278724260633270325944575138211880373613772102123016130044720455766232079190144033365970913581990578757348869364883534259690112984519175669369845544400984807634698348434704120933762148290455037162517011902923482897378944348936289772344846007871264551635692240525082349767147605292721447294966987104083342113409944733812276479104275979492755026112436482137339974867843371582264342621208156259419654802856801847906607290082426745878670673897480486357455957095802366382112286694638879834306458198950579262799921868780340926454574607560838591022538710850939821134323611384156995186310285009700291016845905374619679858847483415742769417768081512602136892427227766733474454178411679157169100660271464023923004255858713036597320602648333855969078725917327432842501592050682165260774180512654347509361364888446191136715479900231073223063808741275899319336700279632779592950234367921279677564075093306375939047204495358549036925378928675952457794487102235144926196787067763955648534915162819317353132498448782621257714335121229099858643355162274217332652468109755747399523332813489292389635125254731237494565466161105823669345518206372217387056344061523298147836470534616045165431326074805941702556782405472700285613436322343445267764577881585818324114451925849537082241335791846557652699386062192943585960316102344016524706508511531593535729341756384173862966462616062697530490776407709659817985044489358016750556842373949913626776421271782246379871319192537290440927129104831268255081546233125119712880603384956714931952473629829048810365203455092521913503714621088639512856247329152521724832733198352172517917769916433649003989581097148792598301648125834603025611475675362641206089520306633932937204617634896432941303027107055256544519938781295748127990763230543313113047087008540182541005207820049425075951866509717406243317710834590108221897224715466864815616300153586676436621463317836035984173925975492838427085663125932940391570637362461300556032459186259262201796676610128524622023932000285625736440901026722975345309039532742591974192740439929990466697652841504062672263011610360336224914464876318271527109939982604551732269725455629196043883377089986287296939292437241002671660445069020041559655174682338360231220647527128145739141679072346465947627702518117100663817980461988052807239324415645235734800351190834086455208348400747195117536187599537385986335033108184407149941172819829484493186958342762365922262166742440821111235270739148489552090849681335041471710922575407316957214461262712016676370483807626648778269570723202123279720296202559493975320557698308815348051902468016443859027193292680261269625236829446154705872827323555057430782202525272054156916429673141574231603117503458358444259712617579561536151829633392344588975966204521750323502805734098993908882121391307087853134555191984414301525401105397580336656975093743307506894044433171842331097344081509486698041057293768705786294345327103324607760482890794599664328767416514623083864362225223955350146093316984484307914532088464527807014565033643217149581823191522083534477614709530186076419288995611954255924220739207295577128336111485024650865709865870074114662971213077917995506610388643862803161217265753833099596277246428835827131731670300615096040046631145556676101206584225460986430129949899392274309207580128289320761894107279029120223709780307155525552602431587598104869984880338420706613068498495815952988902583396799922863109296937378063178740530898344491690462432647243441817389121041323822924386980598589282947134985668423552824990479134734394520670487493883437190240893771469947702576452624260243138013059306898592127763449614784068227942393615705181189708969418710726380457368581150797327034612554357076712283534397972154970031826733692842230607192741352040692974737736530516809401977718827885626609786386452090888440576469714627898611322214536255532669872577515303421461064150513442354514292875525677706101123083501365259905605485679581747298431776608402231676391382589109930277265530558888302527495915346960114627107701775759629426925497081150328614910408579110199117220239280328527854980132770249062693096209982943822669806436915892237793411222431155410876566307158876943118808067553137504162352116130902380559504420588106907956509703218885839377456441968302605221685641682851213336087763887844655900975542209176276659681005707810217392369472151786034034758000045637887039921529741786981172047595190466228823488825383294962476973284157120413937250204259318439097125413941285685474440703060210548032951524917666507997807049100996714218349965044204679747449616860058621169443556061096835180591440110985780474073555240823290132684362341382668810750553269125996633030202758295246728176734387146830798263703573370196336844651769720221420106381124558564759817424359334128623551398272937760643878105707717582788082352455243113463637954009799766979545024313412125655415313448023470718764385032117481717441023314265370882879309073076748143752353510491463903039691993841048992007888174579480056008315858864883401533328317038281919025942792087294536966286121918262768411076597732989244182711133435463558383647340143996832874664886818232393218321456090405580799399186552895397986487535673702739587745759944501399828163966200270507668735929688385835034405073525533616895926034265601059927856083715424382753301254540342520336905015355160822856966777033304405933185018544916648476401986619339643609982024037607593464756365882582538058619681276635166589464627594519806515920784348465826196275379846107766543887391412941152373513992028694349242949296877773822697809084393529736730485385941731350687841767269412276619834688153526849964952963723120801771153272284768402019100104886509823130285490401803836855703609638477109773955183539075073052374428733672999550160574251897926081388548549564898835173667936196583723587519727885844974379376351516026386715806131920176575120675499943131474624190387157455658875541622156673337351176627061180232636092534854847324688203508850375491185215457835711630129646319713306368838168330454963662672849848419878032386799111547301036465814669869326161106709702742993283339651884469349537238228740093885968527653504845817043934184150590172980885065459000161146967229091977410040361296486451206503775748694397635629230281302958837398333994500406038229132870096050969671215832326583347301500824985946046317472842343884481510110571082219599216585911299106109510846264295654242605090274224215797318425699552888342386351479645983865236094463030751366330295886619324615418237192369847336713499425819464914187081753082471330492745836577357422659039235859008116120605845109810175782696004305660866400910551133734092876100665682737563915906098266943015228451555570776296013949303790929292862329639938549943000364575109383762223083712027064348978083453841112034562316826986308292032272436039329193196894139741499322491846385948186102920346359439636854621675750237144347696344685035390935643052202243831531545734839443249795826934574856336565425915668546099561445504961049632034314128462416977721996073440010193347228625709972038496781615385043972511692134649501729887310099589946896630923511568919406707862915018253090574024039768914209771466290738887700997378240378443413392222448088422505962890961743839034990396678108804621497277698352104519916674866648002972776537366211335061640438338095372293831147309604943016543098791034207441556324181481051798158850790929975752857281076741494162730895214138240461430288683740896515413790216153575267743436857624594779328469812452041908932176032887825994863938619014457668383791603298014883159011176024098332050621754733493911045499497445456811057608223959985415039655112062299803048710964083027935491230300229375764859995483672426304432051097079230089712787373931149505990771058383589996031705079599561548110553315272355360555614648561877086311186966919594932223874913085624214650661836606856620426548999361958881510471329883716858618841055444678228093847874983677015834486140005616678313062150666285044316337869153810084662206918150955976309014518810180603802280299163926974789602273122838817018616880558299231358749103144587375522277164234978848654198922879692288537378452241887638706341441530730207790067917799670597676290563266139914976102456845459526546907506618349860379340498935026914413600175016522533946116881107239817400877483768542061578308534164489362029409667799161971192425039164012174030578914612251892903845889369151547634263842929167493869675724517870806165498420763176136616652742322876731047552337805570017756581623352870100322093947550948316644619459598493045369553184960354894891743463128030597422556543970240251790496246786509557332274291579424876202183966785778273478401141046930084390577355664867766219887910300385460711320524403919092728259329563451260229365179353550615537848765494580417537637120475596781555390516354070541084218325289891596105498171602015073887774384168018127876380811431363682211879777708653205010989336376304595635920686297492593200136538718664498786461714455667355494758283103658251736172226373455982575543177793828006465430578732855771746723099533938255427341902686170990213902196069084811254444182240297873167527195174592976974933341232484371603931567826535930345833312466153479581179739587542567570220234920421038769759260943642296722532071339368487707004084940973331002666742283049722972443895552094017526951475826863471954069206311783742811184142902900579640755631315141289087946636959202358490899603467738487696389647412543187310601785874161891821327923669019355948121522442302398464309579045079775963432137790441546978991758040705851674309858301226993384697105506929864782635569064856226164307478948399944827549665021047456685179628874865296929470582574136005678709046844647670756660481330541971929662399815497527118041851216664435920269799618451584778578896132057395754465015134054714309088188271904054996402966991165995355554105211876786945589783747602772748045279003514114535909224308589194790259506624149036320250983349901206708515035082516646341264969821177108226726536269464683747919622615944555027369394072077247896645818978595180624042855002757158895551123161479799651413428333321975411105985947333174435893337514305574015263868659181114183500719382014745197761909627862150788364240295551788589651774827053520273994109695665279495891776687800135096149298281402666536549681315444448056772052029426656177631673566763666278955313818033990646496076514598028342812253012803178856969519371538545649262370924082571923249001252409872345933398269466267679615533026637092769224299581468359509920607941744042071599176071786376348175928433501268472047607242117124742534429194338225502109587206180629523462568027996159226608111946225391959176586204707743863921091170956364819872593522247398018624109480625801832636554529007740071158757044599976664385465926978684165695246655240159173395483514731362899731384934999899120035212605491834088025453739207935175124608183939330767249858090834123562872361574809358268365599945911471918246784599878678986758854891404145206290961059138780891293166143813990346186921194414887250251971449257568124631152774097682531490709316951971948951228716171407421510893912869448622741419810858047736569597019915590430172615472799532248744289365709557781900931572943392098238298542109339494258721723066087749668151221768272735649798335398706302143679158053366015189223758701088689173036485763188100540905493259417506472942985956600128846439843961022224582986318715809324346246331451730809627753182026949576793427956983273972099924042492747298982298731431645658224770724421590270352355971255477076668918491037387466611884834673359347775875651730053448478071576266075647337644535531359876790850183862047513404377315008134388276802746326374833740338586735622935599978994964393706303218097543788250605948246339883386230782227152807809278334709590151717606557860483785966362850587204454459716885106617263547793867459458552676404387380567084934965798918441291484905316344374043632897275450989123879452670613903956237545302742428427603553142298187201295324023991165761424003605960627461480196851433100480689823801646080412908308240599759139284452760792243872007631527632450199347500580521687299033844451996647932090296432407679055017243134324436279929584754791271574593545913825320647405564427697758694554832689357307097182704230510024238671614738322845198032930288030075966215315652678847414711403067029124515041544868367895314202394488673344076393489029769992736647016339387552170417146060338546683873692508415844525603449823378362403368773603102965381717855422979418353000675942623647531710938216136938357377972822514985212278811463036747661520550831734082463171269261988237940021322168698662986343515843212658533015191989753814379867004190802504942972182021352279372983380190373582559885566409306258930559001749321831665157488886523065780860529094679405227062762239113859060620162815962722000928854600218404686879445148257792955211901118256929705942238159891352778826993597907869844664237736308693342965481317191346250747628570059139308872990997430480859930100861116551742365495234411803794792020160977439571727679241292455525940868407842989629917762408800801309103458238293911536047984071359695551619599621150811020209389545599572289979113073264948910536231713397797048090000456494033315143099091617018820048006102351610603391196510765453737580757018710738014952387758486179029176593804989369172032656797076426318925328935365917808111106141636428518408099165295272071222234021163560969131959043925883865145038392586555343319735619851980741256704869940986869264303715331468506508058853159063168045153778540285991072518317426399319400357766322323381204028616065112768282976983878051297714840013805823742124323110226872120598945483977844026093612386174130211809653303902577968579430245891117375042511021651502416759505690263651686269507969387953148792747141451813337686029290066257957044735767428816974361239919889449014815220564363303915829695618440898947888801622728897903521466815326774525970094543068862768508284471690889898238672730130712661176686202529565891931900260364919206707085983922624705632010264386289271721579947633797035625510695811234402208933683130652888100427468965766582334281286379950050237985661303705986534350016450523378678173567790063300966162996851156474638482033959491894937472815052082270356799550718249837869989031544402538369978983228759290844217003136228726240957386866369840105514818945796473204139133991528256786709328494240242648209542064810291461426185229631692822699097933928203324720687138973320175026414490890006330327589708875481894967126896737638332563334872832570695183536403665571722810414231301857646793979603447757773834956361754422689870867142114553574929652843275856286022934107542378542799876119895285409774365931242577427354423752665129767213177370078111208193114126806074936316742545784629387356434271228122891028837535674972536618971533457638249265247131084083909598299147008819875829624152809866082645363730138647573179429970150805643893129171883370090217313759962771712590080674692107122664669954608752425825680762798731311299007961040453235735777795374023640672962690371060481490444157511005279959976640324123260947314508049935948987060039296125806486202947732897567229395671537268227922960139046258563025433559341379027905110180770521081016170532575788962159197204833915034199009477974810809088772938081063923474015576592889839167507629046285952225278689138414686342884946719969371536763833585708437633055258992022759756053495470979690249037072124448612418675772661531143522612292719994653914068328505858292438530044548393295519823556021355718173676393715670189712197309729795540916484467637533731094907998925353411884718113839558980501064778981051435032677043223962097216912677430560289164338358655595282843791320257979534309650122455286606312925752793043577921049578913963934908074500303539760545989119221024786893063643946290671903849203797283283760856221963688315556057405807321957139596724387966171241723031561602560904004200243154517223205554892744251568694307725837397140199344490898812214694369880548180691285651165684872109717031086519450702087191075839820243854773280726665851872997713268809654377010118418488632404957147770752339947760662149909701068650118378145270180459334720436622887808457401912478905442182182376851099102023175804050489513008712842765163295603219341230579375352216805377701216245957476994059938372671518917237420486129401126104731841790511471908294425683916933396612631371784850540185739626798201202645977667420965704325357331109205118650561531968937783200724227368362854019761532634393803514837115957927762690853674768668474226896466895134327394527803553642006417867660123858099112540738056005520247855900796168609005178266275085198594427783163898798362041005548100654181367402719257399352434029271088081199975171559921686615720847890766059403460743014627918912540906051663714085793387746333904256146600571989015797702304991232730090261664795240803754477916971319788434953879748076769719110189031390879587496926977389535827863258754451423712911374248717393254548183972482647269839988522160169986536139860236717583185048338266809077231465442593683843511172925177298710147809011677581050428276797534907225438903481964858840154372043029699271146116702412708891531437632227978950268732546740785106343105391770355898116848233160412523854902618833922568112811705703381443239076188167598108164562594580315528508268646930274478941414054334841901291487979172204947315255360523808445344109195683589578700454043035427108224473456109319156450645894946986289608464629619182982653505174967129670286876484975813514860387544405337703162063244975580298273757656926379329662340312209694453782965126568584540318260008756524566014795901874037983991213144992846355384495643382754180733922735076608660956143040963666804015805553938603646010198448189477354155192544857343408913423441050436977249661403319832427086238012183045241317380860185917314065493395785331021831694227718230737724830876280481867439162352703619181424212308073567952606839957147206052383737340326088367811521420317955517397015310391016525715098326898612790981004436555398222598742934625400980170578273716696858862023711959287522920397657155618243312155956792762713804716932344953329707898031997235864902692280862768988651102999174327592324020682349699253136184176540161507049657931702048495380940382715198520416304056679378344311716598785480845620171448335737685176229775145665082745129162011032210437507558879812562631094470006906974789167501344663766628624286378636393279426386176952137554735318381506246422670333634059599663600141063923278059638174942212741169641248375719495175194406631584229192438055717571828677770570238218167885544690466009067851886706788120113613836532018469801686351310662166453354230309669368750719669216171592245573884546824517505897964680087282810614734464071085651856786688983163743817146122775337230252638275049190223351821096843634423400257112272765709474314948314034543236111179664253737906264588423573561742919338661746718002170094649667338634702792117240652039265508452577411270459777810306792971430862571156848276459395889910321807050556239001401732874506790635938899423430500062353621837175765571776500792148286919963209882887672556460707027935195782940762893924614751300615232208779264532699083352323185540873735586301619164190554524026660532815407418225285013632709026599536302872840881766568054165693003801386104370972750357958085199771289665877121973327507664287083483464041400877399251364939058969255320194524137906155974614055131955433553064866584778560177026802162494374698316133304172877294275011433949553430202465604333794552653700057629207229670279167394766182374671889228162188472704098708460521353067065968189087459557553038229395098146531026082124114744600795066807802446759947245934415579097050021821761560087659906566311775225730824401318967373984780200901902493436339443671516236273266161264624551701616199719787099291394446401785131932132695541389597986515648216061086827076637907829783449034808559861158166522562183107193535570054871864723452957376164714871098534729781077931291221771445182929178540900410763705163750170114617103992541064775762970651019953139123669221530024172037721894605521015328570996968599959308096275382067731733189897271453835594286152832627344431656950695893476845796334568108084942345105921367895195633146531236984832289308321300713789754543502071906494127259852072853636138958721581953004672316197490174084044266189498065285688408705323676854568213277477499027504194504269919587939228910842403092617086685655997406605049888219685326426900686627625931674690660430777168524507257756637188753817244452467281569334110463162320866929994133937742569239650086516006041061871424576511412301132624766635365131266844525151415340047640096764100184958026536199561949344444622770781088214185481121803952031775722398633109474512347595049607811732199340946238435210117354954923540536438620919119354011999295917743085862945162815761811201536201723296628143733668533125462298027967099774151756236642615757782950174236653887489756673599230874635298325278908832491046692115556712621616353479675915918142296585995563056393548677393047469824150803067495463244955731592785488156509620346305577074366862991382293665135014340966463645329920421967784719217051523897454250427759710982920337263883263396989561944625106516043188434580762461176369768646662584028476227029998125443819166935029667204333973443914085922810608210858644166736955009234561794220774713606128228827756355072992175722576479679105832716444381232305754180651848456242569087070756627428456012561123986687210648860043107103427760663130914495386256965495164768840862377669646743702827900804599269572570100636577390711690205714288228988127733633301718941048476174956392947731670268209114145617460073288595499800804360305435993275172402498602751322837101420246599918446323207344911809088896839317773518293966126757630652824085847570296980790696343021300729048369043101507339386197410966971951792878400548243568569905794401769543346881796305487109840411330482416093993910943493651304664520672191951398165508115645052333934825848439526192163709308196859083499980238701046748883827403443297089052136796214165498292797030466944054397999156491804400154720284636028315559051270410633959399482140903187282914466635393525712741672023259821369389899125781900533477620415970860390308732503966873962813433970372965335529780158412397588150257985920003657734849792257373044947089021924542214957844814656586130169968429853513859999342857544465627979263545098867087372652162354650320462442012323663871461621010176873139375091359353031038218680097019964274257333637803087209393747352054314937698571006386548774664180544368549764577988543887919061160314049932901612769552172638697250633342537723151287415902401666163956611616559552337665262496366468884868510371300547555888869093813718873045280335961368199065483628501136216948788351503781381445703812153043440280240854187085455967527682991238554094084807561028442203095772971928615414543467333383465743123349775706321774465348141363314666895582276214838869513198254763527391917946604304544515740820798795566414745530956608785092585019664415311086547429944596646464348126557383209233928457667162158569927067388236219937113223188010061740005884228369203292880565853436597144941948142427479663825590115667613214347040451813322753808724641043607800655230135610646641640493372071731978437673080430505878277989210433801465882788706265413627759289878993156681748525132443872730516488055618198660398245914292745170859487321101844763125775713793814258690545677361369313569537814614527617397922760295565276181730082069766711174348926143988927658231281753851469135242267999981470755493924739948135848844387688094005870371386221557913257151256594396167645306209411696514097228793361150389185187532820947995038258786719514157568877066432269999571294941959843174554278424401650043628971272022652034489390538592982139403234186172615119437994434018875994989219135323750620981477034071412087211929965914613376131022788721503532295088046990530516786493443997317742182385071025459509355258247606311179768745602292302383204430405061928390242904276393611567340156475608428386209718485778861937617088313093411907041619088821440170935597799346423662296197157818371023928843401151832651912160068765147100446824480368912703492016558806118091643154248141731831925956149123031381670607587633781911917843776598655471498922406137978081033173469942460491882570791852381406988181730177339093188276568185429100687494591883306993754571573183193971479384208356449859784032985004723990454560444180198755362283753980282873412570541916133323105135536857622688344492700723011457481452597209808278692618180343787113999785025885529657492942627084041639431796929932726849111612195348743154218505213050285006675586586288904662522357351113153554513683073940307417961851999846083328598411297220320851928616299468601352129373434915329931759683029374172686515503885183239146784577750256703622731096794378587442494565832396317355759038734071879368456270903150484439059620011313768513981726484624444885785821089326723032780238851665232476207878116614095074246886460057567349321616689701295022384862620383003477951422240378685764867588437097597163635230830806793512127853225887447866902892993701669054360364554317424463752964978426059583181256796097145422320226331512847040595968456187064788350834025900224681987903851882492658081783435201962290907078939717341354123023484814737348629380826616805899844487404669711161784537059570953965724886309627867598094637419460783282504283160242168582656558488438197586517412247738181150654888589327610015551207701448342781766113383749850495467725527082022567855132541246547165833527733931909706859818262095587835655542069850974547823697288558509379925638245988554530025505796831697398378468847379192292666351025654711917465691129901173286187675621954672904772235021935987824946061619871808963200139722031165441379569040676325256090936719732816031077198377326656580218291021825718619244070272510318460910517574590855686794713706159925048919395982094124124400122685420966347265265593012885097740581645083034173242915373622435019568488178432586961864530151505183000507575535608148651214284906698844196693401351293006860516278218638272184708928381784409520910252649708259864083414455222471478446599475386604256571421468678501454988720907972121084493114919489109744356515289864621085059125658683045767499567375533951678742182529971473581821618049098103715373866501851212021347032770735266974801458283397455401978249661514921958565851134288131828214192341497549893543016953423395368174654239576939437724304392417645491821545425629583322450772610409022984925201026107648381831735107943171595717123631127369655865290554424551517000349338013613663920292949204802155725679970348464239548992638786405062414782614642638119330973400719303891817197642456819906795572132400629373385187041935819930682660497140208188061524809812562631362220707988662290561609256883095962386151719710145305093414196718839213773463309878350998112100064448322917480187551062379256995605966057676106331346071557861632527868759542004463339793073932178210922041887006849366290990195131498304478017838214410315939579077538262693592919762328978256420634212964276330112153544009360538887087814571718578761442930359662537232447680593915176843417702486278140101597263549976136340632302989108813558125749705331972696401882611573619381437167843535174299576874005972214500834471355155580412416081241278424213914272087295938526020982505576048037501583593955549920373883974931234308004959163985677214109282220600039353233952381139974519602136934538527947666337028749053383667079574707678122935018958765167153889001553872281082734416223207257371774785811179584434028293583242299204704675097310804632528570392586713051709364860567422513359446128445929411515057077187054409528528293734671671077451149440509080218004511511617432616037024799746061070517351095382182218015094465240270103321325368499943997816774624669526541721739423267219631080485780409163431629371609683550455168247397523800612866019522699279179252919458144192524783422820232206564162277262338636410755985376780536736051411615683683227351852905696948060669376686382384055805885861153242541359456328316806598810720977109727930778856527380992738412680538142261852075315758179961905954240882614026220991266251918934965136193563393824255940726462490996580689841946353175953579930450792572861136568720672829623061984174724849494195598810392844675865688700048884064872996266247601869270754739279955318483107895135025241906926361648930400194406681410168633975772956037671341942420842402048483539791824348585871527235039993246171420179840495968345460903768387920296954011241555713401927151791818598353621350928760514297924299278755225612252127856538485698114539087750968139417804795524288633145763035725424738046439802335131302738756974096557196747645397416464742863114513862352617690162957805428448195168603023834556011765584507958511082241874419529241794183375021726515939895207400925379743740888502247683293604909750906837899593379545662887885308124177368601321911601038814569479834192434954765649733492525597004329267849397021075173619174135709015378869217092273915042577519947636241432931957210170604388764500837485256366329695791813142431393844158259714421171679152381538144033081010533217459965825852403994668010274410290490141425828360506070520226876567779313964903038936800413146812055793070167022044310031487765725786493549649349813369903255036287315604532725309114002741800606419002889980634856999234574390269664702751329931680877901831198942024611783785594033385239661610795445548655616838259138895043574084057075575303991728711467969559121280839256596592818064797732031227575567595163522966104406523488394146721528337142090959719574299701042278991393009428889961169962865572249015233253621860300649024352622311448722985685369105033035416558261100982256139752629892694477716486239946556744974127943547944774611806690279458241420726577903283955105390995438145342895126368089231894708249627826410039413653114713661304630266575894495046281179548115856570941195946552058465125211651247137699769618563539949099139468493496629512878840558730765439869110998418061541635200981773023835409334301175017365766828799094636065005638680308645760978124340559756596180257832033749292170728731026489448275364804550624710373686897406392736974739906337396259112225724615150210488182683218560576828304077510576071750206563263701281980682331151918981878777091944151220018327451235108646761215911189857233596597842131408553612859259968715109036346950195930111916484760862375678240950089216556899713435872268004757058057900861479440480542356647335426671767070018922487147589964681379081378328879721760941896303158975292782434647246628192663250077614882994514751760650760905064280241504939900314347803098682647734070047694186247911209818812200945766422180300228901728680352347021569983563651333804626984794099369634586970162777013000265668265725256968795441202914873267758307602230423950058353837471728655866423522358388715900952819148643223529698779735885746984454366915992431599936422143218969956544543580981436285163641802871990208449676368174866509919500462132423026223166932223095381002634757487248379579898339549937476978249002693043085649750556752771530587973212538188463944409493308171007680875633746472633042421909561164386278235242918597490827683744155532216558190096282144715464421759978297475285858999977440088046317138783484852994720849129183304105307927890384966171627650871387325000423255532138574521164767202894934562450624313709526016395746468875729226488003605952637617558912498067708587396938095694926414711701931861871017258120681695658585347036494244378876078161988570259629583083324336460937298600626478004286565157531115694987222101116378457059166366542931373086853216473536393126692732613932190124325045212506198440470827180278370223904255395159673038400207888214843865505165877664756999533278995853162217409813552481738432855824516924059484899225568057402461950400830252619716435059258202567879209069210929109158440628027363459431259236607629662798443182346604248981727140890688181427424869737634821021655463964475349563523047524103110132532235319470820348911033890389110695409103881389260989541003769297086341771366279837096111675287156789299438856862804812836155361994375610440216966648802482106788659522055192178401891709408847035389070137251305691755110236184941562801350354978888292754860880445161072355028572544017476274789763824597630160372387951046144916556005597803909689935022925956199771687802290671516686143102242287904047898019122071788372550555619949670980176982303586404682868683524686026035862220878708855504327320662079267791630223313029042521787194969723850177646997381547514951008174009081013799471759152170489450349137111545823239800963356288012813829188853567051398486529674151191035326107835523161752114640297621254247195009769262972622412541613504224494233551932595552342077228006097399122126446822263136804793200939400452746111900126580092741252586087637201776169391698990187292730246431227997280737606078665947091360359844016066099044921114903284768717927441378921549659520938631714228095740221652432802788716137821606432785821310848871112365651252609105118554660734277227975825492587574725044283494536968085967688799128057003619274545974340654048504191685351384204755911830338730994139359005158010548080628763825484660450190205688148272708627351947852468918398883743104129266785282356842412842438042913279760822301787779833326282692565644669273689077690041693710144971178588015661745060375742910205217642567678149433098712497144953523621529538648435572592232199640261039048055546347998697116363793855889315525331172974748729034687486537824726107553259576373449599266991328527699768405651636577202690061076409456155368459260646967293330027348849517851005062969495169339045569555542504041658171870148733189717604401033744705771656358019786732415035168642701451671992143166207128760303448244489757093092085878361067483526751068763459594739149564404433493945540918744030662865561548978015075414393522904171119494719630657518940682429672023398216945330422286462037723237576788968292906031567176342253251454999200288885448743569340578051013762565280753321746831206818483622626885674439314684307012408822440619912559153127587047767031837193498082357348831977898044281793953894161363785832446162071824778016286979743781767621286390064006571520252876599594103235372881514052823393426511481089740858463075839737781250936787776482368664347593563312232766900589494945537075794290312656817209705028739348605127924683342245354806285715203811570736342724914323803745953196946387964750324889765836407718166883702577141589016039348417842819285689222000810493613087726134027591994271584116376549380455080483073491725862605111390404989047601964089005368794185385913040092417233129043681271736578330990086495896122779478224460981106348026843266420003429359641265453435134239804728281324899595541308833279918776985639101453535821879085056087152598418902075864639932639443699311035953815521107099352584324826525688735677770486401280465365698960705924606044239816742823591079148183219454580168361617698094185464379699263301815328550253956917180514710208275522779643841947960008263650614626887042062817905284592252891626124274874791909946295640099577269791325965457759144020381560146719385125849606774916132981466837804917470599215398657536816990422447391539024697445779818255082880095862337352902088140351975917492279430101231939412415139562007366802548095139391357643884810668249410727347828246089452406264772971121412615465445425558679897495166739941323477122991968908735760724253338602530024101802839012512081196005982015295352813074647431350530044136126394102738855748731616830323185338350085190460504774409270941725299801428918253401667869240210920974928674448054511702068109913299445226470696232753460449625051095373938619431162677054952719986317990620390940406677660393635833425553657441798693000813978349670599553914372753820587692206181883397440426521545318704794660639647585946803149700476221929291334491023569142750486164865386187573211671078489624937637635005347776421218452253460699185742476647085936652611416560619043202585082138803767953336176471132838259669378413085025672204612574942260168875096270904870441471137578446704370398953614085019337545238813254529737266552397041075997843442940691644630868222138770485821660958894641857741486063925696960111692896009592009830273396404916793624526828936635236306075788076602631168516122333540104442601446247051915891015331180391322678773138472729084695688889971268319131906225222274816666772637433364353351177951115759318458570005517884372538929693983227419424898216418831395703723574112492245934899353653282287048851565399962334202669482413641773935139869778342757535065439211827313974736692829949270016476214574967194209241100175127239405575209463696994247114523568873791490010412957266025945663868819309148490716851794813695396832164876150393472958348460099077775311756492867226826725132036224459262642991107119128968122203065070933073326018413809108148911462672240575394201220726449597483052429202301353567321373646804349157060544703997933416340155720077104610820182409222796898589530280771503281931556444263465022379633725872888972729756975619977840607249456750737325667263183312637389674238952531876466495328280785562984986445365233662955132802153271239906914400699880398569650347215286391284496063375621959722934859871952807703233799557530658266827693402558922046119851860450909525464716502741913533014445426550198913551261928978339626746363752244498257837250569117182993835691326617012183554569149705901713930333272700551942156170469693657645915142959854040205473289143594614330063916873517863425898705567009507438794336727259971141193608817255318110536554594906443339576899439991157547637216388167115002726805451279804917855581236414014930816728206567133468708560144243876334841321365109650216682421558722028331450763846854261114149501929111723952525295650640621269966370183557076092876123997448911716337121031616010529097610587501054167800187522137950358328080203598346621690086981731240140770418841323315430487397143204551916722520287642987346574500665541198775546843476563991354273393648456540244022894188098123760559359159148502818336974936409014071354436875847301956833368330309663087862018792649955504432612741842366321474708462225834624154215769774408554288102873033675626522399424693295739985071206348414523423051811805483024947881089676185177774912597746813610747862567206328852935708976635568312744528892869608289449030713552879736728291124774645849169004249021795236393890741055548150095171692355599732778671677081375667227921880694936750740324521019380754750929391060653508348533959128556024280699546384775439753418713250981355376014823878689989399563935856439186788920988986970814090637387988926988692678039791864844778812217869046746703537043850132485525987278105373118695445620840951755665868171569393520268009805580074802492941303683713936114750635920783231357898902204526459865542552671949045699684648765249638858848297745166129734684932003236085144107298498010042401346395581758798216975088304109852563920174782031352389126991270576604212072162164255776736982072658902838363154766057887099858141217051443034612855161890509751182273910202733278371548618774807493751751219664191053091359737463653049524162343986767102931544172512054422279927909251681361298561157091097390740170140608112443640207837633508319993612434191826224313714089855391916237144133871375733020373543994469927782088454624189559482404501334281280566663700837533298737010055347932949593068182108871732470211573706846646787060992912598527784710395677963363398994761445066698039471409592942891895408586692142309725117089444478093688346261536666414214805994045846742443579780578604125063731418552160586907367561240505460709718493261513488986542074703532399626984934776411412554584110087939399889074181889874838759026541532325380864078054484309104039909227849479841938511275061713590257211438319777754949143471164766308020400671736962585811547521886222159027476091545300120854657338053424924807248780246510935344331101177818362272823027277902039016617007064675916756213115292071854446072728585613840631784046167592625015308675216003886422891392507476130743062940081505184508969945220487752300376838580501120274096325084317538914429399329751824802750046992160767245959682650999371900277076781061236397504429704094567813443760485797556998112947031066540826038295416514234883409310893138910117292355319720392434786065162297395264581014011460494889524215048034710218220738443190607610807863129782132881135511708469771172319855362102010559686668692980029974694690555030206709340090119641923069403721071979976084268959087439465208326717844357392199535417109024590741353218928393054173627291511283028324378341496856007807820055952883424375438007465056041959621798013915727107194967799801551610473064476666751329834593751942941655271558156099341134386981278705819475666505698116767689015251196555670235367171798094037502646386011669095843716762020355366408425618893222662553115812255353879573637039695777711834142186465324565372580403873453870992949886906916995304081027148105038550691082550752936158139811955126799859360101451316754490611428906535031694127576597833091163102490475379716775686238786197735249411942685753518589756672313791199013726579648710492234754554242817658640020121080234093741601009628166941760766290625892507266352610480958894230066104592049813714188281627289499024901580091436396396164378184354944906093132939785475718492306019501853915837130234915456616214786534653689592320471651386191651677643569034734118535186542069290249382378598793468650685128378163659521418780900619077793233440734078580330432233923730353128343435860159094630720203140733294791453831441718410274861283134452551762261830492236899339703772637851046610310669233142696584827282190258892977170057314679568956060505227648267619543073576595974245240600459729970734055708271656513106881851326985400655310346569572424066405587379210261750516170552001664542567239424155320301225763544521593196938533523016301653124844002726740893535620903234515829797516306288248662282444196355646148315729883825046817755976507012085899090274267879803987144901050513966839542476209178187291751334304592947340946620390191726497539224637815192873913760062368003724787289254028458926842747340213507650748638226000856665445491209937279366916757529425440493974167102930903330225355937320172168358907112903547994562542517082122863566395308713032424999480860442598205362809123315030008533684480882279923318633706713795360047423189733162071132875407019159754119638930149918208608987811468225922229987263504161811372323951436372360499193474913555765130789802637375587325583917664064910232682843049273359459184502255249979981970064463834054566753340655154097413376389383919012342108804152739897596003166647880263433904976784707199390508687455060213578966001909119144065145577674124574425617562183883194719951271047021821393681399065882879410369410513438622829516161621564009321839610035243279485602532542314655778860437332125244897450475321222080407709063583939964511800566347828211911156324441159223089532458884078965358016103505569803451313640171648928355141447393623726975918559428568840629257261819422797103878218959351892993431693482001657226916256240721779113205820881884584966390578693240891785568241792883054624811812013313452395934792496147888650832640975291971392046545257633400151784618069857055347434705777845300012412991563410953159938363400845806894459868072960105192524329216533580746891026137952112099676006213172374762042040536691099585204122503553663397839974076383825075906644016803083165904100546157875744940959776376188157272192103959494136831913417601249995282490598324691441607561827783289333972508415746730670734270796388999971305393506823369104288945358094247047803065224992860490480695478753033177472588224841618101292577554602977480047091702192791503832618269605714493112645880360394708306074734432430102420708488854783866420220774095431589315977911147708464572244728098714656246153362247907838689489601527583723388731261167471626929235950664629994484306307567920057568553429555638903330421779466084345067402741557385444445103932780274712953929817906927706131707432353122736644281716890247444656546659485030638803196506078145198518951666657367354408886543345038448366320467969686512526842334398520839716243749102993142588214277733618016771209285808924747542108755192937883259642767182510342808478256109363531118969231293321521148957877402861088123631113496574455249676277076914733640729072053195074778806967840720280420898287342049437517469094607128665301339148227989628299694178782268087190667116090716322330303489847477402504727363426828763706500776883605647185280568341539335560842645600566763020424740733354119597592884238624441878518087452440894719360574121506558129917110797022192218983300907491638644492086750821084780500203271246013248324595331217429253073846232797471695714730420448191062436666455577056763215412553285152746490314660044396322169593806028759418967829922874450370375092934650703107002985117032398320350262323632268373837085356027299570926125085623055938336775934506796103828937436879680890540372046947756833623029325247956685866172531750651616191566607142414680403511159356499293826216468021036603361785809798650351038293344370289211840613452402233349089018750542000786191603930018245271475120797476256568437030880216696190944168657192482279836710303847714986412821317365190789507125404685652560925564747423068627687639281661202735455020097032423077051596338163859381815067786929450836281859737340357434914052585553944408163052577056562905177569868308263396782168119850879478684961524535273685336476369966812642994503272192529214535246058529767143453721213565494210289989226974751521152407942173362791959699192704214784708770311444811806447842269819440593146131975617405261918281824968004840560299488671756683736827217851391906787859445779394363215735787705132355309565436540183435046759541159874191620262340417464972859203674367525304469981778433834138376267870891263516350614657171208625708890135583340977373865659467709978142774948187138820596340454677809861468694904638908652804731149556023343337556252173722932535442518361000906445998761967835276635315603427581596975778806097408018483175753215762369303358775535823535238274442477860838954524936155734047664777475231663027298509840044243929069224014066080530976295624912828485711513602304813324956898694857907170836762134456381113509330687173997897793148214248904865240400244700164597232844359440029091211379005112657344108419636517741373083503948229806033158534755951692455609760242241623584891886907302374118831906681873312777747786273735559630283550882479385651612351249148178568344943149220778549817108639470109375301488193585163066165490011327189052512758734170091783834358390506675519972416485272871212670878664232938957109400207198891653817097328276385473514992958565228763279236680401386851004517340782867551589999621005881557316502380902074751566925191780644217754043603374130705243847710904165536821482798460804812703515020345556415694563309104067667174379329419059076829848010811919981185126845465894246937501736514864219245806461824671110651822426984511374651529383692954359808620763766856860236083180535210347468328490737358379964737807519726905349988648516896448517883283918183957791741922166827481788093746383720939035219789378176404431371564955703656659294310872965349478567079825756851196840782323775487771495878708343081107144232874422841066642407913144818241975597225343954800583255248014565380273128054612231894922087603408359926140993569329372524754195534185172500757773940685065940360657995795953289154169639755228305559235899504946302563299606249486765615259100019620983189781111009762008006776922453844200660285710874109278145121142519313979989947879067661256501701279870143904896566483400808825584695471190130932679136774148520004804373332959469222097239414964035286428889489762801150868351087894865997524184323321283173827231034349588078718388218265386103346620467476754980304838755868055627020644489509353842251963447610814055405506733478047916147463047542751084615062609553205510036244447642255524484220895417500382659672503251772409017849611800005513121878843144277088727814506319503710991142426333796365300715318876078227806806319437892385893693122414191523597482891811376510683716958932660922489095842580530141314977654161097267274131879932721022542676248037131407333985986193441039875437045415240451149239156748264749308778494652776169345424425103220574234818942244496325013723449641311695471620774231966787151059973896920879679634468219629467221814280709179552817225522125994530560264543928452260779093275512126698842171008649776412998806662092469019642729161063417687969302612634079898572918972316014985865120622741022588315533964308459490763531086619493892942374329855676153312516125247868771540089685979725406524543979800761133673247734353301328454702936027358274222418599629306577987066965089900499777819240013900435457582791655397783004856580454044493025274538132072751356138515402865341984193070328834622541936303408988354612671235001520677396716555368689265407840985974383011920445607193686750160496344901936133926938977764884607559450670504971909198203929257424662098320993857447785600152744145266190482822759469502354337790421982802343807919363616360232756475255245152260375760970105643711012654932497893207669429245506328300369047816101629546982060207887930301111977156147512363476354872593937840472193120450665403961194634794161765689131417778174507028520785209699051441892701702393641563634034886696453857597128605320479901840459606597871073624330209265930942552307313496546118150493535596021391552085639414331214137380674117744639292488249113319132543196651277119849197596929674300530452159567699032372050320381869422410746347934314499296011808923869074323406083183132228835334257228110782739726867485358458268528936283946839629942810269704569433587677711338066200633886237617544682922486440759023943194829658373673268181029647963984505206967541409963562027383948696793258195389141561389807710245489090434800510557287639391612711038712317492813474206215613141365945830694797174636804753175512788168849102897038715689427779650117644778351761704611684666908761912740548718173272344848418009675197093211478063962924537556065222267945639344950641962418454956032208706471170084625134558692580012269127251107915708078735835570191035822903948726989015924606926501947205200219512965764184790081055364048429239091071845444058118896013428137417489563287959370619291761835833014959398110898718823241254738906925489190360712044922534264541766783074162510423883699629354576317478080207203956724219058315711205097060380282441359516491620983795031799904250839924744528502024738529292183556233075118282140462260046560683685406093125397341784791704711644938690071028138319956930299202145903593181605728844729526607377816710146508018909840547208635201679222515769715250447792010531895662349865299918579318587547065507328258744969298021383342093823020339054396399377196938827679035451538664914576516169553473235479739103892076067097341934063015257163145557350007284292873865451309271345136095311130748616296620067154509585692629771583882873918500239354067963096757537324458368247078160806481122439013713337578451236832664913699568514423604523416816401391378569874965020866355293255699662979953778500725170977898372949756983817613131839309191678700943299665188887473400918208203376563270806218649841942310659086911993204249725740167188407420780709719451630217320027089950143441615074881810812236037599967898400065252299860864867666115479553913481341276482055464979505460485002556111913872843918604972739467520969831633572613847943489659087288171352613990118456613099626601258648493761625037472782151917191788206510001181938373468471072377537711773602749923760366723653461202627726959300419295308046609209364237992697056102440047218072633796832172858473389785950447627280360282739787121341706880535268224703748539341183546558449580048970096662918443849148139571874590055816141692654699039307909700855974606181712337326092259321245038802885646432100993990492686731791509141768862028134636576021710781450992779369515705173008794635757613433019152437506831253644191337413869332389601014487857871452233391764994609055148345481588625972698756439467026531905882558110314496472797885629264643183686988499949938349830345769322971877554922723728884026083432236262221660890215485635445301965215687181038901927425335621920574153810759693948157647620871097646257343017411365541037551495326950307096088931350157281710309519382600458766374404734885659067906281959777370139161784435210043313317225883538823104777206251552860195453391089685529164536162424189913546936722153542482832563838951055984920867458532848998584797073181374978731845489297281970680291687310818038208133332679323796124596313611094651815312609940202207463171289288907365509336245886417635554801541636151628315280244378316020494649740029013753477682826604982830501760784669557272658552933117927340231532551293102203763169315060623572085759226379539570144352425894839884584722213662508931235790094548834271026742350909525405072752464043737747997804565441257511405203342209265231165341404442748670953116559724780409595674314561478474520259631373019960152275526642586960733077808137397221560028688720082918928882008771092481459909083416760721456328282049186996663517211921795574861880757898784038942505962831999194596769044069643813446401314975049971356041768619602636373113945366875400437903920868504170960332812460422590888156120925251443103422968455561478412424771175576469135879696650660207924099033145603941825076636696108167192550446089013422341091471970500035686709569599071846429948549892891206411263061295405268164584808511787617022500462409444958935999517281337633991245497102591128680286705818036216623426409952494385824196960460633621172504348977154520838436604858864807769763269225763302553912425512952302959339158408532808345079869242737535776729030561427322038217323457964847965950802286551690081286395413985354370914379439618110420325072018947961270345406522396687510914217632945649610540785187889126525132129041949031177026220036543219731223811693262990510817118885656318507401937881107913678895740838956970564338137275422119150374806901661078377205295001187455656114991982412388111085985154814172725299206455172290562765032701396622781819856275648577930138671226484902105127446728649842091649058368130172587218090759306821030706259349559147603960714424600948107819662120104288010048791928321787289152844638815524338397730845439350543852251150326257273841413022843501889358652892381452051672301357060795372738304873587182153949346122006082247857427813690679043341290544105514038285895753881478136544376229233912805620169689539059115636265760946321475369258441008363160019829264437076550076098905243617930126877381642857789302511167555960368713211495043822902369075604927492995885486297343135910109290355617638213327948254836823512976892926626752080409719418622090046970758826892730248363658653127502749242715785909925067865981714613441749014800717847234807464173712326558021646133020049278930525659584323715390554141420830484545880243983933241897426994843980612926179741137601216666088506232103002075673966342591643342965666563681896719645418438164947657186304213169711108225607641883116238426892031476498907545006864062146200481508590755603099519668386042237070804958292809093980854286306317306847544704619205942093826400058100066641967343392395359228518350199911616220785522900112285324874498364206091980107608243841745842253444886606168414469741767455117718715826378500528621950041908247608155363142671681743458251882218307734068413922586148940239996888672796264823707246020870330228158126114552914598072780775587760281746006110461351839758395607957997811314375081150833713812607039971329402660878993121014464330360604322857206051741551650919178319178550633994235252736949539489089546178049592256183692676506626941422214158239841629920640730290407960352814958106241971880345223506874605002992309947116157800897564947512764987043489789066173405738826147588969293050345473938262604988934154483034334950147768792127010072016130730509092757081700978112075989430754207831221254530496360570232721053948143859606588143670794829388007996847965469443536429624705363164547083725389116860453842759936021126224218441652474120112919861682571238550070749776234483035105261758716153254136071867768056059661770109995386601909665396221056356145371081484282005002277247545651475365644540775339579209099894929970104277226082808980610669472139186279741173277636188780292261362806190396423002618018248848482076439765983659569671239063729217385786718493556673783571642681223228114607220337028092631111431405870932423140915972717899981286436030615613723436599645739080281281278396943145144064036704731549405143514610246360429225252649973998356551140379974996227575895178843731404212112065606825829518697194075801608620683755764516798997025442743837046167596476944703301824440809929002431356864857721119911514228477739763748506553785323465425520448503601470847772887423423729003056867461866558792431334900120622568118005070870748912749895137394525119464083437896736009506680731094300604710853526991417553315917228327991309694217375379690517298024588993792697769903100145794906763479293543487533408404509669906684666986091692813293097870681946228391245096333513024343378193913284253612834131186010683286047375925715751093342432108039333816413717975171508764668433926909512335650054793429137662230003753570432797781625190869143111632799954068978262968804462977332231772757879669769311917491151672706868149941009552646068520050364022575301267548359142002323858072220952185166335162566632589253336758299088823925350566429166695915137598885420376600596253949945966710326387486123828934417049463842927657678946263489873509819795536561776879381296002693075818178034832459007791865711966245218266761432684042942082486985656791320682209557921909250818006030195363893491400513930525112405895101041745566633112939798943434445974350148824662156956377672680472488695117469688919131990585080436102786073087199187303305931952392407547906419488832198531700252007785478127548310279521421156680439693575314336223514313136918647317073226437730237105460982833838930542538502628724050167189432841792149754700394916927143102680609038085162180630537147990212763172219368531707420948914079180658302426939782563259371732611303536033484048083189542590618742742719137479422838492588293977803983240594249744607552323183906628687819303404147902873492962527871234838747236626005842379566401308740817077503871816726520137120283678060237121278783987739104838955148681917729639592411653350693405463350238727449784761768146618712882283702944491215649039114527577125566300706384253989997197566832788476301548737709397887904328779275900258670184097598454884846511098388331121709633730220380705786228044838765394041174026378515073186870438136862141156830257544427609997819330833645473461518782028969209117818713177334514633279936099384575748195819781966089464725973322905350122038305968453076822416295909389303778786095841333609680938251960669761248943676856057943765502513587659011546269939200703174495815847295513349453024968761681170263083681670089382736033497565199347162643695224064211806105373587206924335305937450009036441679120855629963055335515331117471138039504233990144087434293415631094623985215843413734239143299738148107763952076527991307814291797796934646170668694131960860138394851266839641837328981659552435975410709919385823136437127913487743020594628759034429964894310391273510789850532700644437043744446801908419668492253329532085054068525666223618172953485424634846624777061801930016520904338494715542617518108825286183602346676271573294287848570160284116139093308281772362326003876861931280402330434194049640778999487738056299764445947380201254876497502808014420807068721192191074182417616597004307647475552136578621242405106554023583619344136788817693831401705398229898011287323297035772078264232704854897385906112789427260555794622958023050638037604107136401024890147352225292592702182829824051993574807730099934056631066136959365481282399312510484531606278151441625746204898908457136786091486393381787861973375344177435870288688799566214062974137268624240249739472592994232395544124466932966670044696885010603114060234200525507099510761521418672989963191598685981822015482886936720243646812776690892386106831294972932076562313069492548896765599614435854201333921193711228605119763927767216220417788588150441988720286976488322105247196312238956531447459754195696239906847591644496253455220958705633643832465788773285935612843309831413681844591303722312177009294350066038401436137297058748692119757793389663743031001853765774746000240132172014538092801356504648129345045538944955014742972002288403502418713865470406142377916981202300228897134181927744679137540932884259630098689272293229183810746249082233244182868519761120653883695709449137232177117599092737962385615867895452106471709007719336603982514728805510294990707888115914675726233702323715939050622023063235863487673661173556829600624363180349433400744586182485362354922270877988147137467066692854874988219419623960266672726319044094627378139008359252342424193887292267793584872466531902760484027621348981956333938015391718672582961143010270160831920939354847604294160948438644127535804735526074576643433130922358062975469151532197843258194049812374010338119751188761792857577657984246206188579790477677292727295613964420180292171977189177928389516136084038721233595165717740279616955503039974344517295602057525440837020977940419058441689111004909809871455725955499209479049721790938296845658456873499252037587518092654009821390508511159305882020280820030529747988856026415239464777488408831958084528623161235637567059805091604489817806988353049556008224380619294349920270277483645415547169659300328673724967846990935139308622053791411435646278750234778901524127540746480125996303111082533194422191936242799467806386899877525438554809034037829415450261282160895119176735250979583869161105838336868122168958246880880031254669417319554407390827018975296337679156562533949317250285473116161136374408862079683927779048205817121235118818052850418816519834133489836951975482162410394636751671598337148686960198628473698759928443152051291240388908097119787760199623438074537852639359844060421320105711283901237264987980976437257557961515798207273367474195198058581703144277156036676171091883974527699947602357182741722733357178324767092901221398133074222827981760129708210747837422954298390872243597701500224632160068628276368705067071583057994935036141499967334519633544782490261552915490965062120968959086328505182630796616416662471227142653617534366041927618121173714709297002356310477296369218388622092854803645168405985174182227000474785063232701688321364738472258587389594950440468226909590096766890572663827270675706892005048313322455165627082969071756566130708608218253040500029820328332128237705567711483323336099530536490782993959987786418051662253587801732556894863158812674280254679177624068795545464110372731218727598270139068290732288169445528540809546884560404429085340484438699247344678772854851316670230676194917390935774143774470432576790127652913657117664543272240529814196554762854036403595531776202897132977579487812808326107619727344724853230114058647262099146695805056137356608356750702025018722790857227283166402230313780914186746943397592232170778871609152094615512938813004822058923742444181031770251399884339324505403897406361595045384126967447618982010300288472501170210622983459659150193945191831587482190518689053276514190610798482397477061020988131062500086350515320972915008966363875690543341694303126145534044284216586587745811910121444262378715520932806590521107105814966958345611541502388918575682755159049738642332770434406339368393635456668277419290530544594639067437880839623034126386688903743543132884866764537971397293366645967918186500477574721323379862521487029426198106770796495987333116109746586697228629608462818070872706586556683910413385318014058144759098233143069579461483061560006848368670812564125454438669136699191215421408425879491467683670199255715249357521036409878560322981090324349204595080917299228404410661303594957223803480026118711836437688086783068903455513269638628967147325413277117421103751462187091057648714242031983054711461916259646081057495665001320031204086238138133491234326499741794034953695704372195754458460689797128308151226836967910123365105009388262879416634833447972651103526499209971112054197662689443342472280037930077718460545910487573637502477438930481725796601556522520949905947580953893284589624218227926587759261835289387294206588026043930934336785089761004583897464209221051080796472832083542721709440202215129597809845792267131792895354922334644005241040766134672023786906437649810897467439849870480805392988539714905058650787364756454536244658460670381668465603831968326735251442401842385049768047050294209326085768978644858199967712299632600344669728108672519308935030554709638150339532864843409706941913463398980011512780343163948938651436303832388991305662778581919593930474037147670542387238991533354015057626428197690757970533724047444935704836368595704633201080325270736499585476741721390753473889394772115629091039409543158123813109270775295354609316066985122633602248551328637613620834451498851429616452283398070653948884182945294350258234419330394240974033638309693360322364520901005356497798239325290686919369068263095311153372196262531723072136126203116054904406383302093235322910588583699051445025962338015602612958529977434188270296744111485544512076643349203084869429103481905261068522223465080372314409255969305823229948121129809591524290214091360323350402528299033372858556217472357672723358944890663425315037179108281224922585189523261221756601446906998384650332201799873623704649040605702564862258355064497647451268624576733966504631942230751502530610643379377196779164435425885382113267602406318543852070095552703895454477676213675497076834201547377387989229409699354235373797436961014252100278079273933253462270455424515357614459156738419361158088303145538849242950141514681037859657028005870867862291561527746479697393510456869271988730501320275105572979559102303367784842156396086253529769357128334148859867221351387221538020624493648061250349709339727544974047034297844444759461518172714841969403060049187466045681379519242711208245415358746000290265226113863737909844563139958868062343667941322721755487336085929366220929901270607431385441681267302264718916179820011133644072910745634310131835030861059523389726831757838025624443324342472387470435654920469327567111150688171294588839330100449700939403513477670244943338282840160847131385490999455623713662191858591563646896385707765711878911648925390012951698952814700030856666342957162483276484123113284274107542948035114794108041551911152399117636125777865342934328703828649388788670570936625115259381193326511494215279734382418460878387375815511437134729469493631010771680507829241460309113317052651100494516119234697659034668835027905503842768759884344694760463279632678470461449568997315194224835481991675248903710999223554523276585862354817381380837651653384533043409162743063952117059551715322135644774183932710129993965197937331012263123285136891860993559300411476746841133797602957546170127383450533455637072705288348797866164409026120153679487719279375212925236712012662732110876311065144849062038943081598851553971485820586958719066151701474875045034066599660149015484958697508731382197417718074431512486926750972888065199027492198183728394899318465016200816327078801535053889562162626369244541309615915668007032074454240123570085948569751076496100482670281693748385329059462172768147974359999187471163125466405595179673872985480462143354362971083866396008585633317975533328653648362275092805950925761955857552324822122398904028000885852013543398875440511257101006838066274084925543071950122422800541214361559445214172958717074649076690982504816067840881680214382495619352684574602435094469592837953856201542460549450655800356388217090250206113609097044814365305490047804023297218066396247673653472508515272396566412242667096441649462679613708489412551647673544587255241955801167961454433980820269900286213274547576097832060041924471583589413337411491510121626165818219682335143981138343112378882654535333399006912422478053277995464432303610649251152510432652515542054937100929510868818454983041088308096297652650874246012357455255784891514878386879692334208442376455818274136478675387070304195036042510163549982175273542544221958900920087101302302326403810396271794983784326779048705123772418427359606917753996381637146727551269243663571006140458204481859141419282745496832754041030905120210267384051008529419445948898709621607618686501105185913296291707037249579855951867063894569754274377242230596223908421374008046003205875516634779923423039325490222827918908447309450207879764011916127892294132817400467676379792140693378365188513943030085492945556911242882841258223060270341530054071210177579004735635154657889252313661499771708280089149287306428610065424431567204011894898550904889200541532157835708305827353289542506643543645561331020551164970846090151475327545802252722870308923652146009381861332398474751043085807160953669091342484893947579556579109228098619028025040865360093529094129936873112631024540521976204692828639321152498069638537215359009206570209185965601995875616287478026133403052133525165270374721928410255620364522952105883917284173714181980755714131808528672587434010332116081526028942923523333933504250561598226580211753739204977905140411938752214009680089543951706872474155094836747801454628540976778496670370234126531052421705903403244959154190540215957719020710501022427392258453957763928551772898845547439636987901025668233986419723799040866738339851428715018252356273533022521337186780763526171014898522719457319374891533134223678556072690705584778932874774326181792151635912105965904468442607009251307026620547596366942964856515654585294808646051443235510553346889533387771551895564184668879391413961562727749582669396865487572059570255161271561527295298923963843481268504345294511142281064540666240760884250742608586231486365976383918706165272799979007396733611931974910510755504094379024290711079012251469768851010829624286050903469856450207091754124477048302549136770316737910946973797684957499586652361920080124002205475456385875761120676976013092010217483175330238014714476202025237558472466053170507283865224729472892153146463405366892838155714536646028829608038197161547987852885859053225195738974665445383218512152143440571823851398380468079687825344261663766443290526919406702201370116686818204550391972341473109332367328227234557545667996983123345569034762696229729575624215258542919398358925766850310542388093284407905732144600292062637038212849051866897246061554815649921318850934595905390377852360485391132467014437016525545191796971344757526342736692217734683769504437778768760599742573338039519201945880641049644609266743409488844915348062603241429644326583902614740814968464975261388665516926780924052672573678394183628533838338096058157641694824608108915375669131996709208732699144086791115986516286278612460035580950452473229238681880844253385853913331119975296370365396206839190997726804253788084217393665545061807265544776236518168067771744071708029696277590111773898149043321158180927048588439193174032120355893334368486959056594588582560629815801439824895774086149942978656961049766815324559188159415749829926923343789513917270443468924877286059760738164682690579151215632633758087719077915892380412316742370892845370929898377983205746778374563387075555958322937744216940655504387261708137818281976800469130197305725265397406044293549548868299734930148858512249595656535910969626454015209606196420788033960589600374504079362736806790004893971350866820191372632509673964197347422622598163788642157064879432965011048517119646317246164400914803849431281353559937510221070746104577236050157772789772845005202636079597365868230683545336501778076572791076918899705425029081936455592211142590317514593694128540735743636110479275051945876449895097380749336780890844562551608374654376511821656084371134610162105885139965856048877879087923449613238660516219274817281312608825557469613829361955356917656884335912925099769634209964609558042975159873254296892621943109096262108384393060087777709936527550057554107547558558134288670268746137059894993642629804454065102361240256214084766891003244678898759171829724545465484520412396486857341881497759347913855075207671137763733552965718345262236740643990438243049618214756296944060090081121614764827272221388311316006753804504036483663767694251045608419787284651352191107445651450951791844113639017925245945621172694279549270161248990372132417611490980812358235232578932608615205203914558643538619349142038542851606020174142996991099708826260326849714660069020286213947049206948701883817975697271359147715257450623367954178608140458306341347415400324618669694643579926483463455961232666562439666296014191678790424622187402979200654775558083789236611612036570953492837088082167440196913848417559010970416685073044695437737503417007400549663702256780922096337708047678644936778977042434507800721561746015718312794727690657173268683949146994989189252971765847282454741033718351534503399325874239346838715171136906336767466357052222431365575143124566839665131547782786742731852929587611046579724718743368514464873991895127281672957315896665520338811972571042195722391445570722251124649996455178152465273745874773542242383249784423122162864808398675425585516421337480074691256003851010492477363162340890640255038206289936986241704089171439563047395293942824739499148289441418442172426399363956256132191053350584084371614386390008644504539903097922831425234755867056347248485455941355734523707013078291720392157956259366561370279265797518356099183185948607980659650972034660191830792129648049789338635244442143267569075531862524490166428351493353224865360368245000052453719814809279501885907904389632163207991682324176287133450547466268546631778184489717820116451416441877971257938774919790362328353395971137416122920641509613468435960776288185131394793789259847985946720473231081118148962904588691895560214863957295629685798574069411511934519785637112467125004030550670479758107837077287062276666457393341555667449388841795726853755017928402270522745281400238381697143747318998267008333562096454055245142332973837051921464627429502131510808053326552438531985896650437992621288790765097129392103751044132408970769433153216986195712983416262726391873844387753776647437870067931319125305494702385337855785433116625069548970068470649287027471824859987660095872646826064174588332203728675504789966491892821225527220201245720028373485526577843637957414851341227023686508502626796102189778323120855014579639569798825581175782458729665377436228141330928788449123541994197604641996422053825774486686375710335887386661129188964964129978101520427441267235796411792002495357608863074534497872401834054530406389388514791971898714811998618971131538121268288076685749466117651462457333444335249412442569034497009755104335196236800772384803207431287459336046766494798954850097759891087637850991750912120140467003636324586031339776429945890232350215663801126683214146210945600399006621461914642733864287467454241306191913520655301804603132812606313252623456356472104629758217140394754146241130079273803518837098667541596704381371175496393528299072954623102860217611704050146409932586172012915052611896807473992454147800641312013460266962799338099009624372767553996951677477298614786668398621832481811645715023564259160529424588569882163500444197216888794426756070318505821852194765181083521085771959294501865457209640025526824021253966303993056031669159618879672695151458805121113913080505794668543466523782080409014442198579391268749314631585593537247852955092441230958700468404240288673086853887219868233350326051156666371443805172036833015845034218130755428352192765670356903014632672343609446211251962128333763633861602676478784058193695153184356772912697059723172560637473498932180765310115835866539153985164355393936041361276314837622432919783477845903654651580773021334438748898107301246351970601612148996089184620814563534556598775102224392761702197555759890134128804918520089583186033149180328302824671454433322135830555598264355449553115392785774447127677565455098971745438073460390480889968721758835890373080217613940843220536073789445096392221994878798839501239737456698954470776260189254432132715567813254159110741987304016470399453178570258114085759905053022351914702540228642305461609688967841710797542771095356272051927538175992448567038729602232010187157089311983770041822853936644555889574950463987201964987156333890109396207719152946114093129534634145140425437648512426427945275734579972033934957066574679106963868827804397400697812877836656970370982917950054301288573392408891837551605322213899214970152804737045320992850070355560402215896880959252227601792197097259092865879511920369121768950387282683514393353186781534369868157329097474562023345664847159561601631778344108828880038895328988968336531883426430301845130660527459144327782112800908483696005452354433518692289453937830901593463514450798826949663539003201768066997958562532202107206426203585523342386327693813644603585134038837645750567839531680592658384971764555738153137995673712763697312222887871338940731716658754400094461395627390415359648668966197275298515946228506830053705330772617327348773281506632619115982489143102431363783932498724067481793415527817567613175608655828742560786224990980949133736563993292415926294527629989650471496653537136751797212131618138557848272384220065441353759301816414646905234103747123409764806336336042857120145269536954298614009686997529423284090804539623052210302013426627490371960740844210100272726536977093885386602660763012444019540137316960224209053104220747953771694536887705318246684433170614604632546314910728236039288968946768522974551223059362262910152562326699326800478103051499074905345487118009858895404032173310142961552425285951275692213438060014970167186691349828361927399526814630982895463504966565493625008670396565032984762394488096418229569564614357738939594778406716964116864139760194637584179325109659694276789311959483670300741864222889958447539610309715129221560155352779843655280461494464949472439203298463909605349647965613016226676445502395923424510646286581402588268603969370144121623901594487686295403198310688946777205921851506354277231348685172480625076983062020639748721780155156432251876148261037861544233623699094459443481257541564145187145118942647711333128674318628142952395358105820628243125959123249092729680529943668316517085845148937675037002947191970342793206820476864540548037027751064391913492649783743478274047207463215131712420626184507723766108424355695221036923551739941933183679567399054800198169050053810510892693314998702046535656237693055884718886229293005941243726381023509778671357524514837966253949497809666918319683371201518494810785645767847541890168995017064347457833724041733307459684086364027716435290305509473121286944228813076006348003945891934641657471887607207149740304277737658706473681926311068583760812315117286495452101465289321779888788959133721081373106176519989256479041712988833719397930571329635102141550244699794706533071703544606685548567016838104196226384873268436850938146207574815308435861591648125209796961589337495826113475836475508384347941837786893188682269919642098843850387418012181130638534777358321930068842553681526554884486136328695809959543053501073592042840452145175350333698371403077924934576899780762484018635827475516650370496564902688540940831293087951443324519106080726942326848034444911945420211783488000903286707147221832113308527792783669481103763530142948523967300757715685551836638452741516543504510880202095504871524643767505203160134917663304594095033025233921269015995496197956127080366982144253736486377843086154487422727801410855924651071188866932593608959158847185254913150502624129870523560697035458227790337923223483920404733200698220228864361703949151288501172580726066720990118385721600840618244827334741946928362720827414121871249836498865220093877999475086699668195205990471337558034289414304629015367067271982624894867559077909468761976023660919562659448116189429604381536956520682348164567813867955847621481103950965418781006053030474677897318012645523692197666733372160778648185236168361497990018325278930048489836294063519434872255200544574659689632094966120020436005198129531597321884363341330394632101060246564383357555157528212861429263972719298913355175117543057455333694790636216567490883313497975597141073530433444635866336040929512167173774326962971823795018613658869693320133672091585534275847911902435589453120836642601141884696534678341659585794825561603013045655357597731556189162030433661264068730417892631423608446329758242307347781879417249309889248044821726223352378642931018125872078556581830448471980449349550586347066670786574881024934252436430275024113481625022260849170154963836368536477238415430892465700477366141439219412436447669566648738407987504540748593110556143759101770785434897550267583865987840541276125353730778780020144571310066319962523255847539321085565028690722067983249429054707153752138258913823573503448606894915697854409985943749552470530311079746333468764214113915392498300761322158735594273851910527846842309927853155956862282742036482346022148666466988459166469117427399267753925774176356375634527635300234451564392823247251825990443778309733549614064036017895700901269186224727632393850589786146389526252442099523335021717658859181076212709382849302433192737475351271040683862459545307036586996764373601894253146951346529408623122195588988070277635842978902576468638775462030049030124964293512867662751226292557270574672766458819206489372075220366722061138702115030611692376429561534673679212367740824772160228239428714116845320821677242671117297294444172917990031103657765267717628878288101196879378120171536096762581467142897612746308511620802442719595590343321602547108678005729358623800607008799839913321432364342689229650149145493283565678641667372859063558440279121758124094794517715104210976336531553275020542171769296113923521747307629910273347042745903917401203240118824875406444707587089318517244634108712925246394837419287652978271494198025613318233801445537976511870075639503318059625245647800176157799698926996760085241528425882722668158558509274071351347410923532984843114299984352073142524655057417396715774702817349185442806883559107749681550729276552438824865071775620567227382973647246114266240884490218898422378645725243664775269784573644117193414532525526017455558481056166364891615286542741089140717554585702726965094343157315647437210378453941200568458175067200050744207941943254848309357822748850815866191159082724294631366628332322191679952217958604265698456963186017529451717506645884749670719442139249305491450696649830472619350057307393010655605124154741876118292903549466359650332988959664797572104548467546690353589503384108986809356377525354912498193434995653856484543153751461431658572276188836451615530374555158246690472573011828865533726843378126268259228248409939264738995940323538805465572936350519912805537685089673198606279246587830535553578464360518277265966662059313615659897400136561179445124031994922600226088067869089653495950421677517531179412287379464024047823980982999144606035283188846750771986845656960871578971681188902963111647841198863405980839791673464688907244864828634741880122474099643115813793992912451293854108550590644266271922816416106204776534992913180296822794037525641243730901864958692558388226415130963473446825227198054790181637142559345331581907626727786901329577022673160266883139516536062609751355604774646998227760159525637288176515993314486059198798685169521330423587642060248688171139617045439720399055610853059569153083303545873994314720926367740718044011142620725830299625143723632793981844429885870789183204130461874896933990913399570683163650084430910795018589561512134885676909859889686473027613070061393673360349717090643871630804585656424012942248095459017071716134635719819312466494485399263663642108840622626381992865312644247176377957506719809756146556126363115484788780249348234618146850271605818555017102189764433620685310727523378500022153224332097975842587286189201087779404698290747963671712680539090410392917843519911337460399292893780821273094201908313716402381522171587895840501462231885655606333517859818248970256263032135315725848134986335242956070129961276535260363247486405893230290662272921860530062097516325967874866103788897487793414888143021718280259405911397615541441254741947449240996684407602550250339007138649126720756031744464334087021649005140820939833874320200032187793689322213803295246400185963114203989013460149571420825019903746077644124997390397742212964309191412162407530792452531135882404398268784693441682056229225703156257404957162677640263232564345626390673740688507050576428830434715623097843062341984718835360208062848739780119957589403169309756361935327511891870581155933979820482705032507143512639272097353874363184591053915564536847816410237216661176175676672247716546948749448594209944758451055808380308665967979244235810355874781309468007117966425643335291680786405009284051924192228529852922092380477529702894928901060976893030615312455252080216355333590271642982033857376796286766832783828658252183568052026535832352388511928166831576733121734882361935973930611856513750805173874960679373394354078163480928399372573040014919445587168102180223748505641304305507586403300714191663150305610003836908670681578645798876717173144552423532749991452626729610582304387544639526885351358955526461636805818058499301346072117123307997324397629288103989669791377181975708868588846138219551172014725617690783925155238206874171816143351892111609712456033705197975411691151647401360503983334952512082785451685724766982499985181223287642182334243235018949647644890494872728687334915051326097158723453824510436162933727058769813677769546257582548112157432390536410611255147534125997050216527132224534042971204430756460033594154959675891043087263758691913187297591729195446791494986845391774765490011514787086316248859530042465548343394237746423998740994804945543439287997287118317744013315490001805384827358784252242625417731647238596551400238675033942934785005055330152559784454621027268157320406231991707485268562019187805063053074042460449939989477587156978929412301793376918041097381811728458535197961856641184960724550959308615383722575931089030460870099505237911543865326381137381859036299216679583018992417177913533280678344517132042046538915427049424097630891923223029503942188120248110070174705937914909754142402287289631629661989275355256184004584072097512633686564745686570396263832871589644539708578508186504856690376692429025479318424885372877160794078947237052220147252639292508251712516326753729845403638857599376905850170352581758920692856079592968635678919243162254768649361121033403325505054777623074924697581775008654412705209019264673098036737531210020038864102559468107873321820333564991152105639272143979410355481757007834482605814850820198522484958423054417180764786316086432467602755898329758305335205146736331067622807929528422834206013710924359281577518636494859677907073874358951776310185538416317676342911798232934471568545558643467257189276915710453722802852196448314780572943082558930525933692170930177681514990162831479021150119313416913927734747751102413775328168795471518891662328257092557485078951095163894962412659656354163680288662623796112141178236397619826219441471210148070959828881989787446117843612995369632806546258833765143791398465981235240605381255729964091611369163245103194465984542193653581541961428811583446507403303207540875140866547991063949236908377275081172336735538810321802301118937253611635628246120837850587449518885545287256291305844772313893638607880641968312183636927308957203370908560088769789570256678582199761983397123658802535867828735058803726899306390251193848167126537132908137703603505924708663535488532240709955747305945998906253761398875743271367593357085166704893477760326355358426957009964457043783457030153685513897698486849647032871864693064680549475795769536881292228412474924532257350769854124062376089829921368706430052009218013685495600673455304986868932360935201637858152883593104617519221602133356270570410470980655708024375780554517894353795776848636154726639554090443961567184881848061329966769832471298592042424468402780354636174326706324624261200169820742747466773124589993587071216010415527378304537043628118625343197701468324602407691633677646253565924227486328422703599025008368432828377619148783045636116195569442798744329729536430518696220365107489896640922017158912180792408105489390350208686060597101324499714841377455605262178371254973787990563831843549889603624905307727534532606901250735034293592039909474219235144577674747590602850917706216467916922163091933144471695831125098752634715055322287933975266789302583923947488237156483862172508299579472608373872718588281385570526507750145123227936064996690732849363470287052443050762642661734902298202753048972622065075027906882708757376044721827367173212322857212078253586522247075315394383805580313770427059912333510737977529991089905293161405038052607751098275549427336603040806869409619467591053331249843184157576188405801605745236009392681447161242364909943806145533824990428376740953336798395465298897347598674902744462970223695953434565056272397844828979929137073821780599779868747665723367821027588976940915843160528539266752250625694934527825560979995734412671240330543876275266802736771480683838066679200456933675583245871433935801302127686715251318290982586485901860103117398323602241797403569495131105447859576398834647535798815412429448071338998784987085153582015781917653922030918065453261066782784585334646251714923695371948160288261891658384219391138169638092055015180964786968263913375506242762704330171902647613233877321203754213074336023707092970898075238054790649398266983246484044899960149885958989337097487608967955961911096536800570908742140375559332812956202746487385759508721037937310744497045137525670112967408822789240583875778625093563100324879625309503892114065797192993638699347943423749805715946839181565991474152391233058108752890686836479696158601926841985254477105127168096594476383550984226244635132477737457722277725679698069564638350699512101579449729423308223014957841158943265298818426062070988893886701130379582119399479004875131873343420381900725808555900903805991234990425207573385543252132991603213973367476568525892368686398108221489190903870966998413295444136908504602103643984568012102188996689470406327808875157722650966870902906912899216619078529389608260853694863513151902433635887431171377530149045068184824699324313683939290278950151928960083896459307847372421523927426206858853588364517406560634107448857711142534699841287002347722692084388776145280455587584353787729386227040000115392927333679161103558999965735917704283104338061938976295121921980426110960158046599765035320367945726024651254141495457221589019917632695269309013481366021560250517892740017106377821520596749349880328657183959627473574577761728500890084004534188573468877948972289300170931198664887774773022168022099464517599217721867264768042230615659174214594655847496581906015439170945634405903894260143216574595595103874480180588598286759205424815303761398655098655538108503343819050624069088164047894946613417027030899251462120754399727764681646906733371120198237851010507927820091288856329544013614896412753274571202681856845614890199884958645124836266920860723452495414910679336799705916914254288599294387098958331277253905621972422770520474497559092299200016498987530765897012944838269172190965935598382482598195383196278219416130550787102842012521523427761927883149019618864589900781008351206709917191962762639708777557835412081132875607143759830126766341312194207455858529140348255677631164080021194164781032008242595016063293002466701784555663289888563053495838251879055573445335085703316283036345815959789484188387752660466002802296892134101750619387620942746202068854104069887729611319792798223405609049548883859149131766550202001002198338347464414345521826230311157215277313071562711991326633123006330518966200749826950532385772608618078484533200747738369491956694884718454255740104287608399055621791560858978215488457974839649259962834394278243392359907070183553222935214822388496223937023891341479635448678906229343879360676023601512282409687998816146513966046133828390836760549734523727042983767712428721470366850018607797869440866704688421426451962106169515988415531617191440480716451036607846141439410331938430192562340032830346999339455564693874653734932183385034691836819496544340724844654231284923166255199234141811444023783236539330928370023407759213841219905860853658154237194842676016768890833969309644555774164453396180192256212290336473267372557564575158535229613694801004830904886074082064068020521101737902326741916293135619838539206784742830352318733137890358585104349557162448943657751830927276272330239866423247841892965299313044396661290945453319960225128003338022203444628312191566488598622556797409577902281011878185690059853645268207424635345781164505455589778464139735666935411062975983457511112119279314666230701584677467216664403671708242279688001309144538663395074357693757174527236798525395229930847555276088676864563513605346971794758391701332373987780226024955597098230809870709708343606025891048011165225292353902708609705268258958906373255977565210279549936518508618847545994704613132225820164168301390326697367012494562515994204594246078092046501862107448345329738881330967715114732195873597699081899531397288994556704585027828070960039719695723752499105501194622101313012435083704069879501740743225836279090636978785635061649118669881284174549551780789346004229599946892592396074981209068314757197837833801911973933514821374022658798990955145375752721409268468713958856919834841589422947827495716936500228669535826729226221049918103630167558674193636293105695449670000722581981156374835631705344082943292578153706082630371629402682175903231820582647968529710158320663110138309694539161976909931462177933876948803896305052812463155816863747049124779479250899576501415594243001387815980161877091939954133275091965980547206114804865217101056971478280855887167729939349088425407687279339611162792702296213717100726963777535253912133570334149266627644174712255459640042654418816773395856827114565159923098684112245908091845874233044226783098378433124915614562939360990628964804804972162428434818761045221448969515497656646469752444498112222377940447603012312780587724640460469916968487792576332919413294161925346271119683931655527635646092005362033839163458060219169562286576765629553038877910132098406126615847065324878657690156177491767080811841262173623905250948810708864002590580428583680337177320374869912894016443075252408917435992767788350576220192494143249047397782655797382852521115610119103979757543084459012852078228082886215680187922702006805705141831407074171700375475914936349080725686396143373414686592910158448438508943968071986236193035631975856260450184229422823812044618550723419811352390292063993897939374063774195642238812641552003815901785467227040983970630001034553587285203904689585228211655976597236504631373813596844378402520030565815717116832402624500152237597747570638213915196571799454173925240673417824017847933450890491680363341725811212875252459049335843413209938337525055486894911093237543907389063694272147370520069578257624119352166101072086658312195619141280437329220640550550183191114517738378453899631340412795114574772524214865473067136256825393367018357033902397111228090474526805666638580323237802534036862275559544109466725091584229377219452862102929279132252438289541484002559130921748643072658425272596661018662772978087122771023705613665441773664902940097401401196505649408601238220007731565337357840642113454005370077442994435516122945806053804796152401261794686264330385255561513800716626926427471070624103879770932548766768200879763769657929000198793308341176514867462904673106715331006776775075115814439035043021912959821979591439293950181972870593992138781703381973877190526466346391888536563047577821758250707438952024963826990120520561657837653601027712495349287797792943802935207121069255217080589613063124516932234840765162452691520503083869141316115141982072406423764821228161276923929747215556925435530301630566014813447773295673753359763011329055452272201934557715570072267021142234180929287382584312400690979272525527228521081293027902932643420337421517063745642314420148697324272604969439628662924470977323080415419953654842656468696345174502657579629060772190958823607214788780158510656412122174049932403286304875601800935644211618974002254844471581696404300910806206450134260376924197589453066923594942554069807819047699272758254652443740105235730617013591074549713062251595328647111850190151935001452748124892437493692715215738327987393022149208755255458075062285172289000174627855896095898787322449519153509425938784057259095543430696858791964055842591280807382545151400215264574989573777938036392430414572261342457309794057461388755140201947381611899592816503145519102223044144862016454586186465735183434112124139368094505188402214674244695404847806992823032414042515283892566589574661155304062829717748903727498351824044610736211863045187552701501819725994829227657052965714859059622775799552223498517490478501325276353502916778212971907141597769977382029636740806469018311279840299838630343841284402649552585326852147668752423964205853985490958737357496780562503628309518438932326710861260606099138202654264394920025478147071729181692957569103534599125485291054825277471198170989841790882290704099899297565056600868979363358085587775110786592537299361120522947169788830185171720868599018484626847930067145885838108105270493287121412051504560509089076429108520657597237679776155330635636870723339320110087363274781888093616764145679405215215227291431056571350564832328730716996395709283553452509818621791507710043806354218498138734501709982735058182190038630108636484074417622801171397420808893657722118040932827515623974884173995234702278689308526117505184171273637608446597106395490505838795796988625096533595729062509966645577010201769185538150958885324091705020696068427331863047107901857791371271284412834713949890896318984426944976978787407822175284269804006253424664654440896715344020447871062298093252738875924616773491774368291500718844662120607972709442330738039800656951407121188436145679920715231158422775767791298704764974828818025643497922184181538524401586591389488908187762874380979944506860462226928271748968660900106557787789274369500677010702716245100349299687324575516008605397927786597810317697537232210650070043502409814797930906818800902777529071635511805915524110426208394519196392201460027986281804301734989683336182621467632514509740273755699391209609518107951232800366153908182004433754177455157241050405590731647748135415647899020962119724162077282774543499128054306582034984258807573810998312287304746855815836791512613349300120877645592450347154220523016097934568648087284563025923266299137505478230992146395559598471478114620224265892721529156408758013174823300957902430809035164516241672102944512810056819589385551441808198534142486735145373757252889668282483549486836525655035629677208972119995979313451815698621557614955214949185443312239403248943765022199430071325986335233975754453208630398242392749030668268139441601028939578157423238465239440408356273048159657406527504746823261502971223054680487240317947493449814764664702859337839981334267776550510952376252495653531077393089549084242032201861651408149603326965930383238221177029040933922330918758748799551863103965994076570453504607682706297997910510000562400750955652521961927364537767425297478715538545294603871487384017801488935945821813815821262329916485198078344201909042421681223260208189685000869275901127474294254807175998890000107243641159583965661937102424709504148783100561117130683170957526799560481730534990213152761939630568842696270873891767246068377260330552652939274695219308020377965986991771861504617959965437210347422685146156513059746224676615608123524952773828753639460036436505508823124103402945230726214720637235702170283563322666577921153604313919523940627868524310942358512523855924176560419935312360327122928373934319803486725535603090194853350090124613050657128931231594477399674527681706984327126100749127720690254661451883832788263402680381804199376643032539781871207202687146584509828778753919974757763395608967347125526212208772601242509762335150558342967946662333570312578606492479643421391916479381890861113458400586891897796701451024106878882917758429800725709180485219283648933695869978612861431448252888403014149787207408376894672430813843199581182574268168777991132586057707029010610183495271304760637193364517828195370115881814700245568901674117046400938732354325813688583469901559983153742930375973563684872715246379647815572694486434405141509883413137557000304036919545803845771520581600921749407713556073621966277643834688137667846479334390028870246033745488822353086286738572747918462381718524640875993223238005569030057022287445519836041973953337870132181800896398370682553890602013309401748023918407658650259604730280942503264669534436702531150580222062110849017752840393685390154748593746805831876909202998661771607747095580781201090988067462244371699614592728393279139272495487607057721906489119643041938105582078857888086604901108462517354558835546004097703667534333280561369496102464316382149128621201382572645525271123466984077882266281310329097429327690265279195010981948043425554956475998533182650288524393282540303628536641163148532049270286722830290590047503553767207401657683607570168117699447523353040071004986175369483944087748870021133190834446628121681481912989278869746158554647152051762864956742035707042686825348591331267700755556704971063099299589181381705588218543025152432867190704511468560812908951874166922763414520125919076944557901066708129625053715478376511700234818447627114564971847501827812660477334658483010059487382497513257787193475657485670965607490214479149455576138046712666336773791984491287304208072779366099624480097966372926953779514395913965069981056596145183268766303009676229319302021061915251819278794047965831533943500082871533651886008969098036044164018140741132733425270153906646882013939572497874688926051746654978290438613275182086372292355270706395382439968010737306260313016325237507332598201111578138101492047384999030589241657964395153137180407474288259852285770889305797531318032346103946521672704831420809530595729500490717275802127426105346107512061216238401428518585251877691704934951354697213058691600435184183624022548821842962395439100133041669873735219772747284689929181165233080286903528380540000450416406688280097325490120198848021061566289492815250398168112849550185094600843614998389263033852248450812921728057320644983843810630996990558975298927648207141594061354459454712148849167032820481361713739807844496961865176516962767832962329749589394467214503211486724476667927744913169719974404059587792320259962315778368484573403405570067369209922498164945499254554520296659409130281019470709176686205568712327312819861451478500592776643990646038569216522982391526183980923779170400073280715370713123923844107029199218291668235739079205919403444377799070102767930809196354186921431562609450981675835734329883221027205546014052703977982929012650612415560388786634436713517322589323747338235033884826655088917043899694820604122497910428535725614042518068957527025684410163728230730061834036955840576377417277144413945795299887624657055808526860502989730124575342787207601973809847056041931778793708841253243929093804627539568349976856480618243939971054936847434541270535266698267077494627907831895841224743490956023772233089357682857909020182296140193061977063270392301966811940463623554294754171042451166361060836855943318593729738589047154673834132569542613009030159909903613861075157390362539678757257490308107535139358770003651794132836013019610169434215033101859222078591980052971492492574488490773584019570198340936090163919689368808465026862805314367858498134415510552831097222376585488415151965144153035256921149643700540275937593745846252569648669450857564779808202017637344078955439716934690802922718306253556869271727116893099861468169178417345952969979006935125559866923479428199717844993743693886503323611856517869662399141000313702676258977624933063066622866086449423807742351214929892302486808257607872051167976449791077076427565681330369989973832475528412495968293067306768671723351942073204144923163192385915908824663675178293116307442182789342860876640498247522793822071302172236639869498948583258425139637800158618973741168315293687720890925016265211167127636102195525475954460208995451855372988844698349738731909873922251418297971945144138353977625642456445352207666283104652949945497267317614359732228078950635955840492280003685432785873184375260465852838331925415182042583216450939950743848538031896681043652877921279939669059787047066210260601281296514204433838133275768576568665167971382410395532124602329754876949865059036902146121115044993279544647822104279185498271507234370148029665778292591951028423018282564744465049852061764472192080884305010010752981071773871070373093363525153291673521525193150373782180907566218309573572184487540198827463419578061441658395872468652670586760446539947672174255437960063057507078137530961982797745816932100791326209291270214932536600271160321567692631623385338401921375617488383876527048390898629120188882942815881475687511187979424218302602785466590563421742456313950730291806593507544653040315460602597109323841459268293137590967129509671184348313737394646378543982588868003254176062049699610290121753723914406705597447398930495121269960391952305254883651694677913621141829514350449680930802324272474621406478232851864907532606507757162056493175421799012865856562482697484822712965507897702514697186342209559777950734830829657956582613831299786722826243040569055329697579812671849091613139923187773673185304850739371031802857105125997676971365677538626468190883829161565000218559746980669720220549943287205330754206097489002876932590653438277775805005826633327727126869157788724562032762795286800690021261678347311740850714225150323285960200863640858928334553609291949932429329220653309966268826384385291681563468185921168714845736300844551284813423936861718251128842355232971734146067649386794766749950974655492524858414451474711477477259813304518736405337284540145851651763787768826843077964499723050027397148355832324885993230249547829005951149208502427187589356318098992099442266178629211136306889614141713217075888055208326087274533268593160110549349024671396721779212432964123755376408106011261151892070795309588993604219456182963940400459523793237827171655324027771856238286452202853026065026231017321744604676180944631694052785259870062049980557486493350831625535191881642338463431981994097427203906892162403416117762278725876717823391210502088573710897247539132107863365448531741857490624589880760990573227584107506794337971713044468268054679266548595707406145767755167920096938123048386523934662203292506686665318230370624588955278065923141248748219443540270690617315256545193164635396828234254395329679018086231214404284055541438624334922779431675044374198080184470717461700293292292183576487697268500417652586885652412182529973918604055805775742090405053320911972157410081816778777274708631021271615743127163932843396594506454894527041271685061686592702370076848931101750544525673727897351946018100593571292220153332285541237662228925952619785764064475018919944386834602552398330661803839541757774980402212152453509350633940921975555644138573533789379051483820760608453654815564244434462816046256449034331811679283057227658290550137430948459653304881135939249999314946853859827576211449310439220372420868795375792514270367097602103173146179923699899621396004190214918751156046633042054803349717774553363383905976551844367673471859657593031658443130756777801889993053917231400746999053224951673412263925795893180073796154242704702185432048175039830535920800285812293932813551291321191947130526951648253316045534615185192457567008465470415935353646571687373928046018070248231026566249063293998025314294537905001515596477248982037481097122956035310314530311459626257384351344087281021085822264502251086877592296789364483023902073660004746417293296382734331029596020513720187781964591704651313523569368326442338599449072409602819297373340202392166990734811518082885541032987499875753199303568733339698634097887133723798345200423674583905829169637308443149791559479833280039147610581686084871721813590130058587870867935439828949448821781772348435722258765888987732004336247640013742563610585824133365903866633437388508411914636000911434759654753099390045101187640835568585847541512910540506257855373506919001977430870954141742756576897809635373860678993872436320171515492284823532784510985433552106175046155794540213841977670992561793356211789929450936777044933310019498513617372040470310800816349085872218632202931030915252704174450523057390228509574996214350136931708523273731238196372299826921379011807443110813847191308514269686821275827095641304921628340167571637607655694347805225852388726098524496269600156669739853556540357498382171989216937498711137156888004654816023245302471203072778200375993275774333984268554676939342356106372426073734243699325972405701563420556902545323995107963651964101550981062747135065220116768612370420232247128795009244036591241050036119015370622271507979242024147741158183230414608415401326702891175976512999472379476600921932624150308188371100999434217470127303053617573460241377314797504404927823116071188139544323072433132896118807998964302392491928896409199463529066035684977552243135330853603325329771447547950277726804852313190126370835368871398063032743574978794258537291910976243481681760801758809256418039600299283563755853706847345994141783113467817699172246890044844592350705582293065120997340346621685869818970737899052962730662475130943257933536866900409535363046330351872397232902896507082271903557771630704184312355162349491874812618341096284610705721678572887711270552593092690282534399160682784973602752075664705768627842295698292229313274789025416757496168269694646642228242632230123490265089535753496947803325762834476367747658460559828838674975228196834130115753854166192538993554185327113530899596304270865294938625863958927114151726943522337961642688860914050890249497001927842183411046398034632850580223932382503099948870798110213098597033387056315707877905169975775721659799479202553483699239750040671433859137274999129733395577578510490055662009667261284004172230525312747448997964529251201229159414958189975284865406579396457291434448329534173765593758606697360720419374787423470343901113392413548020820801313515695598147903000556272163697582282700860005318680887029215900408825175713829224045784465130246811445171699999516641205689648662882087874929866720023078802607540027964089427033829032541920538824135930736875597057678001019290382924367008064195549519136973454254208231207299128438741340308122075625938760168925315063259153129945585709826274903785209291032672912732273649366592697556570810558277868590686778467039436561507414737572785109515820870342025010864602637558965893350029528136448083256186600172872747818981767852012632098798526444491219408808842722506006474961461071841730699201444940387566257397008797005198312404613592425133992020348992616535430802953372129963731806198270409500771644977520924169033638506023660325536653677541680848502060323340811561548866379208504945708042287479274220742492679797789538733221047327532386348593736144836405333758444255518893969049437267113293570730593241827774496791882998663285515068795447750175084097782500686284089538537743478934556592530198827942104515837176967738413100731459775258909804119144714742276306998240396823121652517408815355379465220973773160756047022300716435595513051970161693378945019876313239590947452439419106138809178197725199866691731675215847799619728834399297547444244946334163143606673634186630841231236086358979729635927358324370293499844764039384361224119820474505146085048130496111852199798091949282244126107949612747972316171903438408091487343085112726169521260519023726894907340203680790774436464209465921788400632701807420466034398777803521065748723905274267195300378139078708164167701069775837333880108912628437473073599081652955840136345041391374983008518680091966332641472972087075112647910052734700660754914027198594036042985772231409644280420796655191901817593703285907011780833146163406867579470970876096702678630096791174585114836002017230301675363200215327916624209442174386041719786399174811195824173232955195875655923039366956676018375827598204685474790314657996969683066151662748295073503622843085879456223333544039539185929197399045550527157912794378909489200130975382165052366146173323101899504173869065164364847833813464751603500396083087344347085801501881698759760357382053461403355466431424701364381823880132220629624872634306871514413693351182824495697986448562068725089379683790714535593925522279975559635714510183007176602253137620988594734583039319627999663555209178525907450411455888740949265632798371612923425270723981689931357254249711603692682589975553013736124102396546833803655460923741296792738285409038979840654005380938902534037662506989232271098159112956810367473094992982177677735237160390929349500138911588815043637142913435636681288983651960895617925123133992665556148943301053557543420046112873677498992801122327318718534999646589188640420170541317321580715224559463720294936778333570639173402378022818054556188926852266388690066772035457356530590591771432536902020664022965512376558740257732814696630747728543141479322810869374299909128277003998756609495290037933432586134098403042606310016632302292420157374905402997158984347133435671361280403155721189445134032844730928298201640364635495957129989018279260124909793845369014605527552863863020337032707557605274988873705593213327859198524926117299067289945398516160052508285809800364159699765901076845998966746562252262562522546868468762619708229136124149503928579329353759433208631742732725327419923588521757105458845346036787581555960334695949055309426613118278680826217246270557447931649135570894263753196523832412410228662493374356516805103778242272688971935754272528543325321059710839030462544035350905378769627241275218090180083870809531157547833199875168307841880088259989638754705502486017512118719459639349416410012924963084788025461665880050072842054007465719295977149940083119593557232672984304004985133620105660174511249124390058587347226323981105240485856300196925651585063637591073755614259858473156433262519709751173087762916601125043565802659518023468012036821446570685679827825594578811854135810115551087432896266086944725911171675277727260101149779447389524516593167087399938891321069409423109376809056405548849848916666639048562583935831833216211606105304378226798115854050007009880629868613368536496534658736244379567709507035987698063806283069474159543614600514772005424066049519698906273397477246473719888547057448883140176028279824423459669303461177214829356911363437994868304393629359589713757676104050174788485991101306716467488470922292409839610542798511134429013928439782949353308307784749983751800387839702831778468746950862967172744259979588597815507040863957082071912877541481088823791403540839084286625725405386686752814410094277491015275999098319435696247054996914342397676771159185699883725694569947905663417990386081814800872295670621692282852807755738639304811344072817226424226396132278843804698642636971948353805901468751858295218489369431202587394582460271153009380404179737022943240132799610269590196394916253748056106339102771432839632450779515631786472236623828693733897567231048876453736074899615100567182810333808051190247952181759729207905838423550819062991013237531182409157866192986045320524423659888697466028077636816352215387496757790782963513123825440716465698301192787599188016086977273409166777240234667844318452784644868634082350481054431786930720916412055202296408776506049213609133494522488999051506369052878709400725850366562011199990716302279099631868240906465205625203680808450307242845854071480548742578634108054626704815385690167353769508090052906161364460518540950038762683610930762267029213199675028978713828068794310825266058787409968556249043932557821294381807825070787317883588335838617813224158968896340502346029970080002202718647252430988690073814133306468915949432954801382699475940359383384791248140062052928599613632699714785292217524739528644123726210048267503287833310046075043966813176630221508691855411181747569210518952443522609436885064705081583830222701806469533687776416740032683557721938276460782465340882067467746778307711437902245148448421539646021693175415292547660442742566023183173913287520390915512209510244581807323979857883317523369074766401013892761014485568157842589959128246221790715046330614010450803940229804399670946171127274672677617741154930291577505612323987510734517291943744793637103786412910618927180214403377575605775411343299037151258517050297555315451597067569002940270192301940215891696760879895786864774514920407899528266083991163561406119738244010086558424884206326557040395076300727604915718897086966696837307860998742802378012484694720968735515984266973939739622324739553344313383440618745274310044461959536383665259978358230561404926166058247498154910395382414985037642263733881088474546100156213406081687970195070739457823051059285657358646277901760924352773524028103501487095378348112042273656848405923828134120092772960898543002736167279451151406831749755723401158963335707613556717933901725709852366352571562594963460970036162721787801953873891614641503606972816773245047690336289143894550832768226880292880651353217012786835137415181707736971391378517696398192845328720698445757519714474101514063192641831369262366834231371950610029185393174808409598256817859113037238224600267919511191914960583590562804674796189056609334290199412073900175663971591621395017111763398707775405391077969311944119957691704290904843327981471393065885777240458553962224512516414515754942654643264317709627194986179372133050649232719857422351661490893493518027249126972505093982141190766018186402637989942896119834412648781623514470050525718283641544291757956937314330058036572205356330793526923536119897840119566640179907987500047880174922356486576723204362942052983699003899342465352803229335086652202725275072552032036568460990458215742812831456080576094650013401063271613712324109504804480150974060275045372010901939609925756371093671931918426451288953549242887964258276509638261217435781545286357285696573658607253647826930687876046395781206545907186721258293791172276542509136765141576586743469102325692824538770714037017171945326491256966805874681436333905584624978552928063464731167792232639549084522800276981102011338258045596646655300908695608850861576778433880456017745218040713861728501369151281023500921782813190106569041456080484900952351505709073983729016330470302446837824631342890712203486258321769309238425745896694035434398403401734252871811705507916083755130563935207346295870902550970604535085802526999655714175909967423237530856228651749525315076078040713805180587640783709308287903184689693348387835466491936679283766290524849295002848445370059692216930935226509620146101227276310883805070437662492816687299921676008275895449593032685584118992507334017399228541142833019157261350354405626627387990055775499401426132641661845015011864843589010580142173491010754281731619424883884463604995050572895536392430107262181376315898986658409126823713211620082880491603966541875036415235390564139615066991419168532157224160623127728995150710037178371743247900118427570087328556152514817382903186126615250698902231557582225987795606394495277212218324414901642091177914804995118801060156860730224807119225320162749548113392619819519451000843512321668014164614856294851564633155993785891799595268559508085274586685070792577140008393353897183764602691876513495888309268598426632014556575994206347747145143863976206404998545777146163766352759028397461465243320950583328487658354364788903678594140546894880931245473033917502044812431430135338367207329079407870818012698992530031499055849306894132470455099048876812853832474399697138552563255273117008897480752302658647895551395516250978750638542990113386668275995751255116688470481841996412610403391525248940293538413803623681745610674746077088479360651209698875145412637849882639264621279569145436953521955657386759969435885211451288376444292787023599657669708447728711868049475549732105934255233553253352179180603237526653633844241442410508752648665114423568203864182442517794246449141439117873173647030326590468708290742200675636045463769362828523775649349360788441096292388238094746936993871061558540085364191057632269494508269965012263068103367642965876274657834936204091650318462953246085336872218195587883216906344464172751921573199330485493159800004638885231281761872522066659952117453929011775321408985683865253843947375459148490384455859765898836823622119648552741831239609184302161526144151026072030170330330899761539092730919619801169550636741665938931799194207450623355529881156591028420599793059399611024318672234809482844283084425522059550361443621038501057833591052168828938650283613801109539024131767546602704887204498107205838433878320703989581777633914465111357435746777686224310731402825247320518284468731776398314414316486802894948818548597744172021599892773269492285303661240857202957340376884946786770412375544917870429949055343976189710476080456140893628310927171365833091571779714023954554707825663177042784315806266205750147095592853887812788000407698792965564154771868755119635384699487037537164638863199897479256003682371558635537999522894782633642705694074603822185083903675463406861884322521795555279418049359258627862842314144530509604796154325075318494030420861370290854848986919937282571532307795962800655713618821704920543853181835106324542824221703679264352852023746251441547463734939802338757089803301222937949419552800723481288483356049047240335386479575738194663624790678710336456920867235483502726353054977111283085464644157476888793667652955440964483290836224598078624123760029398753772514254870956952414900743795999482129646082226726535811372078046721066158126806648951226136206193044683723359954023466343985758563485833297897120987026464119037816313380893839925453404460089814814738152481987672782546458791547278160552422675640563275606395898151745979005708049818409530361395793774775096454350443180912466756425920420883771216052354486675741753224273328945823392087561276653968560887654021925276959385708211065753506490801829913594406890019594901895890103973242275609840288346959052703595345382650885266942519013723747599249120974024970192452790868175703531396589234344032149150530231477665873330312477033747911956169633730574973760391855940110910972704838349708796614582308280657095285657143679993528651163175909651938324954839726745738842776489761236724612078732414515928212789681745325969205941470762155439452270406352389137178584407534982447506143071388850872829072258015400859719757445263837542626326498670015900450186617751454154228347320490381706402772183038763668304475975013463661991123647191957063252324229787505379324389458285653677705206136524091220595506294787273137400887794841589378291975683982569609681128999362019102494534916555025205513120180845388870197756095124911061509279731731493634840881510748796651117998854253495842721602108536024934983631753344920280602764541895878005658980756291058823472835949206894575035977822788123788386584231919282780317397000906243462022449444870428064511813940209202893121967357138447820065494844112992561001226887604420662542838553999674267210527516301359318820437076114131267896981841738744264605478898384110202723431828549045174076934967930703383173268662257624752847267272543464876653472458852723092204649184557275919645061908558291328744125177800231293352615752386744261236916858467329352542639247813327752116136691001388180310948298226557480319343727469704493868877260168368564193909728560042981792898943545557456915960142919851721572568192221448960313355409414737620016144615327730879324158894657216426792072021722373585179448379479540771530659963917639183957862656991568373586580793968101627455218169294152865401778322780056090287229966593534094026306746374634235026677388163309389668986993710699371534078957905238365807011740115323040846578776262573679568849819399041922747166490507149574196179811713671634504659199972879308401530597098001610362986095939585008785336829731042215730775137257845993438882737645945543966894255986950344802450763731116614754630283140378349954253569382580745076320767143279702493904522987923980334215302770197971168913528474918451795473930391998500458851539433576673947172599363809915492157115098602651909356049067600911266907406372449153268011617144186629522325316684021212211591354694908700289276479198801167739613683667567474554654671620348038600648399231559227516586628553472996567581249058776380054738682326754030332341626210605046026979459894300250929379500600658990158243582379154817763930135420667373098736764637049805178049410271086478848774595182059753599387955019999701302327264222564881769936084620072183328092628344893878915945097542345962643990509809569836580265488894664761409539017731284989211508024678055878306257919521270562055151351480489050112756975130539428612319895899555578702325508855739623373493285991618696208273031328534966779291942533284744905891453880693337119462054828663628136847910109551949570178952747653394987228307492727413983097869797523016176294445887741443095287162435764690000089111704939955603539193571950110177850309921370672651133253655788963220429229926226861969194612233499359406443828305112346701514126314417956290262834311760511128295125239883769662347222866807129761121044032104107271154168039745765918703248344830325401935597159074906754785885862216132856371967589338407344847845452735286403162546002698430967313916206565317390669155042578054101597526793701036269209016891344064325557511386168606900731951480089147439051478633556071436300843214291584332493554394602435481246589018090253682237092443528367580091738193114113854379080212351132401037776858645904600344468451071063806357498301137611087976789718190088356813079020836463207591839538693378286365400032789579939152491290257210392855685136588973708546322823049989305970515899307754047774027385201280498537799579375741685089728635481032795389597641556280817644262679500374868549909117704213244260296292219730726535499029688034674992787982273948081312872763240709119777023569485523099979208924570533700204457526239369413454615574525064618943495161918073913856550324695035168451593536462048515577363792296335687899695402870350178356792369637237258821822336730208030542623012177653445567782815083664038927974786007375512387163045678586722112015973989445194797910640759046164403989683776462900962680217638389898766919872005566094314599962073943978593091335998976786924633468613465590317684016328505119529504774363096534586449486769275444439590217060506546578926844732037336536402083693825437432956240359532186875921402969759243753403899976368783781752875001157685950812519538032096304442079720648002242463297026492891789400235221825655232906604355044624280774752775168278957032345030983665275028295464800208138462904678577857001603341506083927820927095523080193889187163417871123483151428240821579294769260878467946079195867529188576439621890397759796144724277099898947950542747756265388477428023184488438930850505872755975551115238957658227494673905652414049466334332919696971933130584938896189061232643010697748077733515068602931581889781068611752750676158707982668820320339213405079229261964079993944804630644051499429658329744946369056457432362739300736401843952739164854985172757494541858787115566157619847373395186669500016641834577445705230728650040960143492467620221324157764317679034002007531665401596467357120131362551844033940687099695880288697790190373000387649419147010598561194120046036421082089819060113003886117071732443814683130846420259299311516235252522311210228460062602961544138532322160311510307296262458618507709293153730789437904120824145188469895963710713819705803993941975246178804381676274236555040067862470016832472980158814295780971841166239628105089537515559370326176631289766415992101689022431826020114863214715748205595834987791239613430116194365722253278736153681096084441965892048327717060713805324347915568805101150203993628986052154427750047025782580355362115025158290851359783125565641358591322926206822202580617642706760659649226994676318409146690912570517620416387901746728619598320161199517330510583446484340065056852106662355056219759918073611851946061622423240822752703672116100919033252865691468365084029851745976104483536953971763289596437867166871112902025246502462649193740109147286862701232155717406665472412361679138439785958681749688655240241943354593603834674026008874461160973955635335988083771912437038676680562176228337582958313282680631224293354230604596252750817360108979534340709532809443727486932523375382546311243903567212439612198521568423050283745392031153793589281184403943281839514123503165366574153905823166111655744621386276962667402838359411234107104582025583142559663926241833024548957606570796279318662326729518789539537376622679869227163442322559485134806634636500261613728659184057251120538566804522423139153122493398115357438149785668094219959463500075732509826498053721998346962945810783166949074564556202282259846752690003744918844401793520344529192266654740787304313972118617221058123327580747896385040032521692310426532060284317876745674840952851637512162132863065753925906449377530855087743168680117584779589269659592962165060761833962292682190435992908769203516086882442800452261158786073158881828144967961203553929176358205187192308055518134202013463343061174512008649896714113323008321391109255350850712176338113247564930984979247730514658668922745649602871008076142105913087018906107698633861091951085582458843750252775300208786491380050323096911913616282616498599234959036231356299110494894606985468526143966087845302599421461220355523185869997441849724889044437758946953971436169824092348416982245287661833110053833644776657028511452842563325535304416936056807107806702595456398752907872686077021366335833695935292558586770790590588943789356028725312683658139161150853936035833243117537771803797908271776158310402534367421473321188666751447821336474043965512584574899296227321452233940839795602611925245130200780730526992853317910867188964416913899957383773727000399179721160984868108967577568904577738118300416139805801396848858146673632207762907824579404317637269249024484355230993302470759051166840218969061135907521513721193948152896773004725667864635170265656900189287164931054998975744993858973040760930523694144786455066855228404328274106721374261030594112396489939947709712885416309323829341949727773563161169460090957742555776501370749508648814410275077654042832802731328851288995903972356149030540652191819266389747039870261107834240244946111850785994176489954541204923900993830065747178769113197971690059009859422096720460976109604453852910053319555651083671441603782049937966047602594347512403203884027005514622758941817344377840133988690760201325136804506161781334615045919796830516569032553839080080978695971184797510851007495636215604664384992488841099939705625205491128202038182558501468168563798574490851107562686248022445772645324499814337976698975696010529561518722849870258752130827615440880904844848797117952431830430877399855686604657705758465242782655884207554348412797613473282456106199066046104807078976105870399014093941315346563708286374874725068818276009516919407052575278674285996378265807371366871136360881688537550163046952674443611746800120961623156528473888972496370619993138527743613806537032548470386171067957976681462332660212436849323046503997690471057810076186495393454489091903440603114690992317003511489985353517079251028625502641039724990074263341625392967356871969998812113148789002374370240743401706313112586473310771087711201400502978356225915631960316980933568590560319061641974842722757643975559226400774620441416061776148756319641509463877380388163761848002325221254571758751845539723204440583256920928395516167132317506491398846695212419562305712044454641039813129434543456755485667357647949851557151584322546520082106677674886757831359043129193038939353035084326817449380408524095616598669645993600201407412934344599518411828677643818372618252653603350502975768249443108462910334805333936328265537137993947582327061058502010847069582278667861925172183665224666002025362666273876417493756495688048106280220064970833175361333616257480883461718746235577888496861227065045876341372513968948325285277848352340373323153743873612207836792276387204183625904897012665752173215301417841807000909517119574631122144645557939525562579483304843311909219410838998196743874266933435710001178132248171273449335160260599938990942734559974597503658830036868046831883366473182972722887449145364027258007285490455415868205940075541703806621423302117863461965201164690853297838785494607798699280122002867961276318781103184396374930950589099158130515930104879364326648341971360812351322144857490032516002436702601828841108410636376098185389437960068931483810344216348243340866750297393569937699408844173308791095735690605990853369261890826171909381443791769304724453840970313728630363603980694913482183217971995106560546472008680573350182654688005448708804088696491664989387726510890557842237627118044681622273528891374042642411044670241658519388347694104232475512733133993288901263759550855884628828231615435787823468372775896435849714206179048248512194960356801684958509217308871448167548745996436405466253290198428685662237072735238006214439532547561106641493853012395492240200922964454252129050751280074118192809775604195532391919463954045050405038103804426762690773341585272065446534059236716157414574860939308515785732795522204441309782250517508719147779345778454814706281970609291762754882548598783705416191863167441254491832695884994964409665797450726304428035316022982514369221081514831470006069506343043100842875163079188630804207569086225172804090914697393611517536011992799452452380246320518009502837093697403879923501959309634940463912757954974681118199497157813262391031964301282686293409799846953298345706684059890546709314863468310926556457676648327564827868564799953939977315811017714798868750852679812337801166006453739107196867119582923915275402376177421120207248510035347075632982355184961665704660385476549315263672666279899001818555353128923188583346178706070216248810542382929610178073355995568409239440118483610570372246526280948944610204348154262490334055898502608905694343937440584792342799927141954132228989369625174088317199061908827865976803444570089252222145502369643995728322824998859000185832314167106439746946473640304635917714390539265253966811935696417639590083486049312601258390786940163180161888169864972083948571128079087904671862291054680404801078648744145526643056636393104143777204610390183120864088262235256183680440388281403066725936078714457332162903120968551418900850280925950168702761918431400429166370800430003141174897170830479654806275993183459010132574364437961715887051373667812263447616146629811445737695110641323850617449749023892269098615325919675690564280152634540083441565199130451675895352325780208955853705227299379356043795468387763556477036256480739586121310680350262696724773802156650426177592199863676255122432148650164548157747360929698063188452156023616565665087919756883648414439461475407791093739665034278614296276166458688131442043996390279830151780975883276498206913162466481504996443215836817067964514732090049201280339093264447761626370624749562738453852323365115812493292389806230058657390641816349485182591443821228372919342860050817115407141087285277946925519878039976293231196584481749529625399302047594193781640332865355412643412016951771543139065789704299301445232578313734951094668888192225655632395248269979498181326695302942474696262608633082851696557777751427961760709960906712452248769166627970324510572437153746578387357855407565388369785999387200166213187235996587237559765350229352192696537306045493530499407456434277182769544152101715810282331315773193794272923686607304121801377703336011954985341952887067000957920750702963235293654929127045808436060660747363533228145075701475430090967895850015814626368900268499452326148231420512628918029054153121412343944630756874513961599820882376626584595149961901715548515972674712423657804480287593952641538177974951013957960346742611033338812889714429899373942634366988577929828239537561621797256061331038523816396885665976140340573999774677946586222250958368582806171539002287166927328641902641068505938247074395657368317447319494280529285481026158927667236402763911768646932109862320175886374787759650984535440603419658615937112983595962142899241284041351658838398502540682541880091941979749681445043579459158647835838516732362366302399479364559582521146081854506935806463477650737237659306372388843385428639244038540884305458476380383870037169308181693880265835310193835206347035221789595738471734300268192614783928711469618610139186853328804090388544036152191402520158174024106883112249616704127141269769090463947924362518715077557257088226790081520161790443888049271422723174539902562612554795240473818749152848341463634756444558746706296452567490862174523328040577732244201101511847989387351394813337682895317649015223625386948796548889467538807540059543583958633411710380959393041429215984795670865363611252644281255832422210122423587892263699214510733822503126006037400540365386802133380929660678121559941721541062176321389221398512917430096647855291722185631623172565757938136712468011085219815621728124866487994062738238711253097809562724259558154905880945070400152623221935384991346327355812503056935563291037021110539889768685403314176593832823803787122573689498515139979505019846348461917311939920431879929292526205063173105527382497151068539480975240673586729942637811204854400262252932250714790935017725610618569569006420283707989320007041390489786002171504654434976042617808842467034062208329021246455736676324090756311342389995585746523781030783951468766317149044127159540866577775879939803188552931183994165581021822995034353705291417322210162368789173605764159613065685919078098380896483357267131356854845457055467422223924769465731195790314901378586142558584249900265903761975992839063784398351846666680009395672467223893140662270752695940308175535933370442076468578362132413869016355222674293191085124633198108489522043243167401193729225561618528758694962037596003559439306247086778508792572639467685112843689196139382627943845239011725142861576619703156045180231426369923603011666643733669590945608176284402446166685211392904836529652203988457521286535892782904561395997679844468011987815844572509167830433585748390509996970605852239356792441125401288445243121237099344228412468646684318536236918461019787246512825129333661331256459431053986906101778692675135071484106482253280227702477706542854085777852843243767748933145795264274868915210055130379999793715321858144004790814531873805248483329924181589211130838803548495067221704362911322896749679733797907984620407309965818331518960953627323955876768167847355690930656506840805945827803315249148348432971987574970700234052450965801891180202499311928311059090211322493833989083045540770181365607571907519366834317676461583775397575894376195873904103790263348118131045543211378939533206729378471902294425740367917800837979787258216711678320873084455462511759811214861329946086559265372815402081609618922345394704985124486449678557340657436675505662782424236059498336271233530845072121993581254809563733845620028248543113006364784075247269889030715150323220036800893580464310920682894251089585696281396147563350354143851022105354597546360888141252650934611374266965912997623816632517365495174471089228598912042673226942914620904606446111169811726474458849898233033029947640467457991302694986985012851681479531387808898357538030261603875751497520072894373831192821491437711528375145938098152779147100001839586350966933887984306378619374950785473547659736740887061708179763621222806969776999507168877179990720577802370517788303059932148173170544389565117622749386244502636171223658116957661378038329717743947426015692434034617599549735500304725162681144365926864300073937618879293003391919382931215099310111765429753967817212886814446181852623193181582764282813100802461053701375545124913385025238700403742369078424957741131260952652701451053247720571109926601555612113808383906989337234631429143692459875036866545884828181458761572504906713436197169186144684359701794280300039664482745545169630558223488499286928058521163116372091823454247355520892323423896376025536952900636885555223688433361269259309519002679397617026177680056233167856966447623563541591744910536888344448358737995862365281902740011583693815495691311408724976449347195954055486782913953159165995493521805451179702304716669246551264356793868606450048520433624758717431673836625163054080735075667649942044200258232351055013596502089845305950234418714023184905931115076133408383740501816690793723171646726961916671035983769324011037675621426203444161630826372465646639943533750692177891307728961700620083529255182382187805341682034211059413832351271230127523396088446875919029161644708750745751478878930938110514187123245563648627433260177651975323894309621182798340103505771909401525049751824973734676226515385998289511599268837102622968094971474952499047508180237954030059418896674189731613051326134408213653944301199863820747649548681524675858383086859926571060818405953571191030630418424397568642844051824594763324555436034806073083251260332501280405511952483194896464319744437856946282660872731716685917830496533382058303536003922074987428546035437011944126950331922027921323031930601147091285262190583168886462309688315476592494287964401614567755483812265406584032255431859861213185434971282367753198420615368168273576634720202517318769238818234358488037239993962313329689547907424657004910858827941142348787837898394971686880179598738615694548689103670174333780484034409882919253140235689318172531633635922809173564339615543741506924513176972096215379072710753584320553974712233249635781344854377933987619593239935614987631145558724903399668920279036624150634866713557421714853076268532050766215735451572525883495626845991219442475746312306521038910805655634770621206334511524256733254132526739919539609807485888267954018680108102648976845135471587823014372621250064484027874711057190839398218578643470574484260448276069014056950281622590446278732367155846432082431180631306839715218661661664557654461539320690680379822630007230004002374737040384370723929518024310701819245161609252074766851513700891729315348134646433867638958984471375285696459829091485751512421533302435639736550852799954032658477083023648420318000433060675392487311449952552090118105018208200053081566246836491488573113909412140663937252726602688620730913664807095444343630868204012007602874671590451306323104753126519689285299774943131263417922934792574265352208928851229336732392655034551531951958781518239260607998777049855756752726727078160111525809703964063839251504284258324371648061457839694704731717837354636061119431703783594745984413172594194777378503092515403539732650939814917275181790132782113521282296886218703165751303541022082057355681475741920184660575646405441408999017245531056710455155855688092490195994843942373125834850822170939877011819206787089664757255087691680473920420582359018162089860612490935533751752090822426039138917123361426663953299618161686114292432535426464181866965248825621195086483092202042707668171725154930611271754453479392222935663503650689106670314666824567828843709876956726894620951971888262820381466108631939232006351600271276516062439253449626902025639833160702771574447128992099733006506734390677105979017543070961580244351918231646880014121631995892948233076625450486610646600634369213064977136994632408782139355580489800471862378235364213854436431714087401478180228146039725627747982401304565956305294678977457412093061900976796183142920238074469219130702204388312553926208539040085959335883140048799515722040400943684418672543461120044618215371063596070592837431871996324983030305420590379278977310048272867658262848725582640901310981971047615835175887370587165651432052638174903574893228112942449160430968581717719129906792763285933856272212130511997429075748050437968500825253860441263149415685244795073773653421912925316371179685954456084588087959195970791484351813804755285519222582140092212523693424751666866559825502714171152641007827514842933777484112279404170587526154776301133803354766116033051539051032366545399114201700260191339727675179530938388203797369120624027677372377597650711729182744161598955656367953113340127402485964994924626081444686113800398170173003796972372872857745490583631857373214912699820494001431380332015142958903182229444160240067726745008814267851968536930561982159951210571842498501439292893581271672395393585743197093234950225935884601869001914668764570446102117780562523045677677867523510995221908565013345254801035752477364696915911187676275942416456251833530377085172728198507728094154798685206603795009640516043580554410140698520667229129253166310966662971113335216664562111117704920084272028388676386877934952917400867636740172256808342660356636126299246145630869901690457254509856667793494436766921024531408536734414052052113106795066577871073434755415361717763032245318909193477515471378405337140428442320119274690976115467967831686371191888745526303961883754893785316121428611782979242198657953018934140880930816962239242022237101911967622251061801556923452499576253669025311545254541878154132044945718955854416506704520230560621887313042831885428754359161890061431014879679309327107466603927401326580947344157398211514797094879892404376639442833263488761960096234992929240565598390575821828771098594687994263436042021912859563574124321739764103457368462047992240454973763294513850663904033337541724741685724381863221968732627412833739745522120144690240271758012062463667291868735058182377064683769490449498718367907825918380260981310283403467755654545953436101088393905906981135062349289772925074256388099670980405481459800950249339211648536001687448192117231919858997192274776916875458855810340127678609164316344698159437927271549815409966246128392215480119307141440144962528050064189686311168214432123813125233990122539955062692379817634453139409749717940088163710992959476419346216461136077534237485898061436406904984585440579297137051813435025979144532499558768941050774588129809546858585515539460719065099756459475617426623441298064276050876595488224280144565180320001955663799462132643947009984814322055116922865146149232393245938622131873952497892114042721089898616248065839660126205966056065189112895372327262304722971029282808477078374356362586795386633949590981962060896198752033177401973137234993541627318847609096850983578556296739511907919056005087647234034219940361274536617299529166759785579888911316634809854275838890510150195848984333294170951147354576368143859422793674357309989623261553274770490130391532013445601887995579788486708233200379567499221708467574791513214689804535830251929332782896627258292212901596301883193053914673363218430603101678121314858417628358749276401548060184833174960758425522191901385449004415375038648315748923562251137048526609586366232446899068441424458392893049417387283937574301688706830514324771866623037086546582325448551156985663436556474556444398476228848453957194622698383807110553409003788339370172677126695434474138337276810723335648334631665006860626091902192845604981690058584955715823949722130000414571450286052838907358715232556430670959077105097621566762155595830393657292701857163647639449748080854069175650376564024959321582374505119955557320928665461385816081504131853768735301689712877996515974811713057428147356320588398590397320652233403156322499627252204140422737547096410334351756960020787772933484601599294318063749258319899352434326266103914368546262063399681618997894886549957458695556829691950855744006506209204360957117649552235518208389797013673373973931554948378578925949048938213567328052330323888815496659897485160581665704426366168821091982601275733571578736604467183690896317947928864675376565901244472656826519581643359016350974545140725236323097829463445364140119949970923710564638841527230311941065303797822503289450381597334646487421869518256186545474293475868498967879875185416385590024458364999469377546481543148788693397406455622415578831954576934935339724235203247807279855846162746889489528825222591009753342375497131765024971712118799371337739187049385794093165118616396217910192353989474808833873716925844368712604709195902492457705474636094736482579303642998610154347786090786140078671637418252497892499001176138872448417681039891876814567184786074784491850487135745630005530630855734967244786413873926517049392402449326469448631732593179688220353451340598195661728114093550245360809454954731131454698262764803402377903653368820438715211926450141028988755297943428810756981865012509703207314699007461236344468003194563618722981549167799728002050148293722481106317705963522413539138111128619668713513754467524874204985287331673689721035941137423583677549388599608098656525966332304463747190926101511938397317696437679996111945456447924106889784837099474908165431738680905022846897891661723192136202362178397898275092044252783089908668870985169772686487192503736573005138776561359954817121539107527478446146133797637703300319710485259543749763289213305836187555209545723843663429151103215613741258573917185122379938476765449298193470156240069820771646590414448901613610155238665370643168546854779339518148610603161535313596668911470506937500415238553444229336666372441845048870169427948753574417668388411033582675195239268708849248981676585307239394104408615540416721201287423110549987855857612236231708679099972460416884147059521152903122251262228206831944696591794381062311540341291803509604682342585564741796620459461425462855466104821741715936795931888853964377058440176720590779729586213930820235844908477071848615867377381854759062831948191550170396376123193385874197943302109004172652924673376034035190043113700369487627817858453437794853950718787922835885980296417117505413654551125239784989580501503552119926999713444983627459897587300532012645830655574626645753654264010452496529151760401202362832793702268835226998590809771285957682980926054216009763252216424788424141747106933075830772364258300817282045029879741668084637849804940558467839053718053830560753124980610278985024269520595278221572738076681151938714579795534045891091281109940107565336038453581718853017666048013975847459590312651952680460447044428935993509077453805841068716507894559457022052825727181983493387074945542002400351022212466396745337781826347877611786942370255216538057469888943227966947792759737925615476831664295555885697416135587272470577000634975445446300377119999879740396329234370853243917888281859099178171176506399751717037165783373561281140839392866727559536274885271160077317936000869611614388968818609001627589693245666494260822733534448288094403771189307867929068241698492843853614431693131094454563456614113186396927118512420701762696817274757317772642945686711214288968856673710963146720864618168050704736183325947964180864074095019315193920601161105513410245580863645405621745084668260221890408653140787355621379730053677774531117582652677844306347609954580557752462027233730847948376716313112972361737223965546802770707639615544940414325510675027894153874727400569680496909043757220889269292766156163920232615492536006073755384613054994520281973876024001990377771065901383444293727076205317267772455513218459082071075891481464704581741970677461313733150444469785336615661336091518973696662701181967526288113566891775082844727071217182231513931013785396361536874147077041123666783391248319943127687537459900364570800402838675801293506297265071936414233663659246804088199472088645637531730276853970792673184925620212887121704877918277919660437041407607071391645365369468384139866288934147642569381908586126789906856021990069569267700903282680019684164436399986329074859092580938124926447942239447786298755330259048082719703255152838009316366283140821737653023910506273638909244317181781771400782058574536532931647858040919795647448264995991589185426435711329952415819450675479556210300827460627611677573369412019600011647348776597740100569697002561308320148194745538989207006378903954164546844743794904887007957568316457611339259134757265093139247472852614765333030960028331593638922802343952398828399664899766372596728513214276259880206805111483213006679044161511395173932976920252870403034923889900578816386807603381050935665756570873479772959884320907866661183464549237348090080407267744106720428481564199666944034957562995555386793081559101377374166072921981648815300559101173716165495926357860486945718877556188236141244150726100087993839839271176464780813234945438263654007519597084002624771334452849158789573154071222433667803869341451739274311024282730505394926159952730938416221404352077957674227719235783325704142605645213506353200185609657365761765958565008447866634854687662527661394201277633112698951654554380627372265596810106337309351665759676210702994368418127813175822531519032678714557641311652142581203342363121252587098862331540542637594765124565958483397218935354331987738067824944346895610415153793144175114063581136910297084351610016972700679537058820498583866399723815136035371052221910146827810746176660646434509656090990273627562362312144318252829026083443871518238545137265403156437478887764361856016392409560617110276910399800829433239580478388943731648462979011936195017535754321970594456592189634377730457640625154712830818569072627537176346492885154137729615413106694651333988523576620240375003448734243570870560708169852531127301553042434001485575741963533209108643304404836705938265881264294893261511221857833172399394505696904363006327269698361191624157039785941681121204801110549468881585552582841449718092658988779276162169404967688027240513590806024827672551250439614418407554028279861469343290974462175568180863638391085761775107501946393365231968338986387356161584217883545164885024512935243837898956773589547984391352915588334265302816238979653345446142983067256615740025419201860000471048954822106151490709691087650224589415524181368094302599034386855027567194098138958541958088622559221411610658652191046469658478506851767953562008114768877073048946126336690527263158946464760191628044446378101728945476680176778051904105788481393270097786283186075516998715933897891230586751874385515288323032654891446365526295475768356115507208725744145405827063150279333845862909187851440848296094227013381129626810584809671659340476938667120444005581731928933146139216801547603754103365019392341016989407493789686337318191518209858444523805002700814831608595467518182739524723844206479274749583775126129454537220015072094951737750237830428407740438116284966769292026511460762426049634607133632933219237868185147367184145991250912476193589122932048610190682378708080727859666837203851248053836270222858805846974933956124216669331023679109890740987900917562014364320289114173500003036159321804790030959464197869851763560438300312029004259407686171250689907777195199804656101152071948071787948899599668548664135590050375472383295227791720489322329534671162620575202286030332053992771715120220718428262139063146702581497118070213575176237277477363987763330945763501101585014509281342531931024517835148706959822878588853317729520955331468764029987003046248652193698833118615417159530105185120757606261201336623919458143860950005437100538352852264067248141520411548660125431744661067064925863927242648210804211346882676594689008141571673804184559240216907998393576639237168681242829811480786596311375002346925337274560751967301515495481497510092915444605555095150435825018502014211991092433060722202095669029605270642593319802854869418570338596512138460356615567261469439256761586574405849577873075625604771480225127141304990721941633466563633349798634527953280510901163229686702091974710773551426418605211194534634582481661837439215845565733812102627230786768789012900758952547708312748018763640267933707742279641632211940148407879253953863231597132770202485109761977355557187716424007137517765656079325677015202323791891100493147240125297451899414650730361867320687682764296868943100233443886658085253041622108801032702950040860104376429490815001835881429451896612542808985596225315473366355871452411922266275321799010404835756972046866030012237326035872276752432144042863279675843133574480552116625727061530637265540536788433062848329425086384284432179620796243198138363269020278936993665394060295616598461774624801498963747434562131949395976572780168636570548102774920091136067187991433010400449432668702809719593004787338566111002905459580722869877983859066669339188400580949734109984663159172131911396423747292223711261710014611517512376229198229817647139267831435630225493730136552373951019986095700990803954488749592834220346979210672351612079901252075575506570172193019963005165948621779350222956969192392769830909226173732501441713246962272666397974353708830421793809326539471766710605158633633206730236848498467887086550407549403037129711546986602196027402214577046004635715538184564448525088629059761044193097356281357838326513973117567079050423846823663619871467961082204877241022445181608809683631606340936498602201642761191301535232052805690868872833533024941519589763883999009960166940055759763472726088016730758192760431357189240895076760272411813810782864325590633918634267575824346996721420070674327332537324095472900577334599064626703944727136624001125793245392372273875062339266130834526402981464389310503810983419889806290595470905820725509790381787469106519150354067138349276283188759561848574998261553224689886182285040672309517326529753776280833687767648595811717612979161747296795268835371724572045359582132590471647929786382358400801305810318506034240095685039257573476723955321194052106731197331438369056918163739948660275133593866026197981444362362556390787321185114828131710183214527558298746472609870570134991836828033813379394150476305677437085084710434725654630677150018412601898622023426681445858625921856840923490491592047805847434512999653919228994964281243764997254490472050799388373958263508501182660822800625963920741673834539868465055138787982729896837423863155561459672530242682809154883056605721087294559557321324517684142432235986165927880588674388075571088575968426092945304805007410561292222307022292264459676328612037536119374413174807637880994234391896938169799385244360819609681702470126482705844901883468541119103749598314896416135894780972193156045302695722552482307984351914888623719553405930385821768904603829800041659680593359425396254280389283974713213622129494047483752970687577930966073500512556679145748935890924554110153623620563489081763015253017246839498013701324978552615240305800046608969658405158443683594947722986973841262995352242866661678522443630970712297512957053656506318110260025724221603597443755718135888535564223700367458674519389740158757000056463855575556196570114107187343671096442266169620339186820678038512487439035077736141179933356982546694331202311598843212672153096110021928501824801543531638124602958417197871083053836945433069599356919809355847730098174149943843747372700145288871114470048097514517571972695285140944476740849415952057438574679024883005036029722675073545008450192753119563811003736307049272485002015039730751511748306124566714260769931138574479351136462401913691934271582408123750001444508754488466334468006221599502555831711573854658646573235497781472120035108670746013536266020552628928528309520825612881230709872702129530034949046576083228154327774294638900737016784078101568670695925363703511274273896854608394580237813303723117386248294461227760567448845011857493393340641617169676681753900828954231346279688389497193919984958068987485970639631990991799936349364182449974918628150556599342358065025748832395849303399224230502140511236523474096523784176545178584341974330288097418384352662749149116100336320562977899977537097601075099161690269531383128932905427724770311067951974228515974523951655066617355379049277385703390606243433974986247045396061962200295534369398382670079697750214188509392796378701118466434584123838296927741786587873927310907030289076151816549692458234257618193404403548975128751662349091381979213641068151897756958900456810656261307196662862444865885586209603958077170168045180247532927049540703106954148144355172801848793600950844409356208488174185533239890700945695361729630841520931487298482954282008220537609571788371510437209226164472895987322856104557603054124756103276121105559208060461159985287809123408819279514804479157409164282026206354155134515892508585228252727890269969965813252508562490578058366072781701762393514251157148076125689624999796615905506770471894067963784996145390326620201415113278263253797226326141118267830484509996357713919047526504613021237301538234588426964095874682849591610763826259175126517103229776955347377883862681009430771769631676003847722609395337382798280752261026595712393156436361715540745300976819865336362878540845373599199063200202259544591740382713490520285762669461347509113331024314428282045376060037573494547813809005251009729982774668178762891632420997202073586558918622571200511652488019306701365477334142815712905009433002144951645968115497584782662676897587225168976778909719876885564626038887209446868262842164066931904357468962676877453228641459541586796355064052654516256155048236824397842858619336422320841592375923731231176392756462691767980851101795120927156877641107435687809865064065299878477056733034803476362802115614161895135353756731702749279124911490317469150844461658960799628777503830122610026807750047758683810365073313171426533129812528104774690141474684928622109029856069226821117859548945454638413921279958216513738263065607913450996420547613134655903413982129608127935782518763465547539888963066063611654617513092029941905334654824196117289433256267918252179690373492496441333449518669843353659815615591611372052272828552826522362307978246697199369986776086616773783483528283033433105683637403480145215740155186940448563813046622356541092991543158962666920371443861485445662386825586218289719656243332260334238152414922438886829121888819358839546553199899929998326545719684709445386501632645189206879974470755367519442402242081877738449661491273755254475828041189661530059489210023256079970295652141453404457230902184983448132926701809702074631034078685657825117496154413973470093728166207336415813295576948968765535303416621238929877708762381930392711617559803193512310732960785978350931560732837689812395752368810843526251027503871225760179416418454854373904172498774422412014221006932593612995512822261870424682754031006826526476343059545897312059807159216114784568793101309761370002782626677803198007706284574245931419716751947094717066886045360005859981074983881932619485323024308795387231053630236684552949608038479440927527917112244699055428745164705671237975124985950084308031612879194127380633436044907205427592811209039587618076073921201340455878538985778132788570969814829080849978495381740487900560810017007788371651865240147389492496939143765247499411895124089422804510549378790155619844601018861663273275974226176538100037792582926946772796255126167778155268060489269893912450351684497719026119057352031322851905278442471191250368843323836513913553329296090641735631333462548778576430838536768752864232073545061403067493500481611383729963706797088326909632920655060551668088720297339280336496477640867565463668495341536469333037718108918781652773952818564524184902364713691688377236583763081448016946129159173357494601077111479232510097581798179154502592930067827512448490707476559093708469255315239245585714097072612426561895527185497587115556265121607619744883662096694828847025463137581706880677337395963505316298658122892080777752002909836153900035503298740681579864546047236167595407577780385828771226361439328473218327708550448396553396429090598182649432131735745690374947462436804857104159781387518130447565485426012910700591129959792432715472367638396684438233326674492452565041188380143679709770332834655048674597743572705378532955362731859502130209223237591072328153899340917669443161179297076803432212650476496655982031478631018823828912133734332115107598941053361115145725989367208234403049138573174408670384118246885463089427152022034476911564805528580072186312136716906596788898961794938172464633387093740124305045971313534897718275320044928271383894169628368165458894182648705787983545391822305341726022737432503468432782975154930946662095637926199875030673421560101373457872358598471982574716513704840451474393993791531323043157769358432600754109643889369478957135597074605124258713214121430678322292882893886945480347275910374881214924860959037728869492403066675717556457627888443613049774399051522328561123335068130050051246663833562967657695195932339117220024491447098838551625777789820226536577807292356882019124515920289503999581184192828418976295042097878872258988382671439752722366347270098779628705443810254118411512243074480932411883167731949713974001990267119680416328285879926338446980316043600489609945450757822180104834669361867608693631636793706586132851255855733755716445006648553301873697170875585803349360794889249195239849760286449712078190956388855049722157508039505908000203485694344746758561046428735933715716263474240267802508081647193882629837652195050718280892970195145959601492692501344304391326211841074384687603143484092268538304462721095945361196124490958269907997770021986698455653524162836477227037111750690875028889313775736278014230861480467748764964751165465352327781776409512146596125781715187584577229306324699538684644739262985705598620162308600628358053984909358096957973993302303775214367546246567186319679849236406491426695364475037547644346795616297025776968553939762065939836078709868965324664670470714786118064971006031742537897306146379507883002192492572299647799316745795928198569140392730291959087166235540971270278022638746115346525055042795746198112489458560466371379463460543874528277909061351444953485695510679216526104874001695188155534192241798076415083425191911558821339920918118323759520353778229317238108124268282359337915927255521145562347953465611855541571553352865932230544977847378388051674453938907797750268780299311949975260864607926612291362369332852198135567895106647925969840627159937188421800071276459660168374889920812762105690440884429968490495559332305491476296321619861410048906033410990986527639267382624674141010422655555136063272645063803618689842908760179888142731697523722088739480827769315210321006021142247197369841446993056262475295582759760759774776691310644384600399597067043248610133002686064357556560166837795997387487096905056375458579253329785886767037159338555840254978505264517338477981192548169885973452368847944827914496091252095947357540992246295116924402009206089843836666518199693809656340369728640179294688433277302560945160607390062753505286701769721619254791345262232056385265949950507648136484107014142560301806396678414437600704830923807333661566082862328022906991397265192576731573173626587115758590668063403641970556946754236733223270135869017219396086773278001501189106424925443029335621074564160305576538236826197563331590384279244380443022008767236469572494644639712401824794105407240777971518966323570465001173342985833201075195518906471159210348765867838151267651098669309940550623827966838628046913029340212209045535426216287432811491660594466144819803178929421717134214137072859424824336117700574456308225882007795301451745992071332460564556193451575371410785227912663969063486305713121491306972462371695192424143186780731822660504271081175854506145726911034365774178649673054074433489880123592224831542303293803087794265759644037863563834167560205565782271380307320295105870056224065813180077842542866055731116342114340304113315019626510541893744648684419081797004984890918593467708070389575183223637063515942866986586086859408690537864421123318616309226899506324676447250921844250908216653981541857848264877619967418953174363545781608671169473781361766266762853769340560870654270002328307808325957510085996264560483971383680656897622026702700053287604046737892896114485575555151207909495040017422609654418958841213769589963420224000030695316605438381675189058416049913245793588067616444080194053893341685690739648830709322161725827708436421724339907640925488524816372689876584811698673635760368046574708033124080703304471773894613014901023221060829564556897832883263344509472043600089210263182617892670182187382112972420918162519195910879339905178493721703026246566393451085574674172383765691264969189957166715135865051308572132156644914021040015690092469153357515349485737303103787736441211986500478783189120937390552653295134462869619775985314696687397791528027491496177737227566842460146434334593134794022765217280300498090942956890337993869852343029373246297928664913841388519449680423563119194666122244805974234624125950806760932629473031342118558929537389463164515946406831943238645876445572906320558741967581378254108340344857318824410126181355355624333672227802177043414656574032996686076738818928880840906278744756218390020396390715529981408206850983294030626204311325458740460889775562378548820519484115879312237913299406522338153558521509652643794784304741771882896724708753462915012261596776614181077878175746738338041085549402511420897455664442111930837849924858121349759903365509986937200796890090464803416675442047053076905610093003006196061571311395406212666126490297115435246680623568320280251196474036363770134486459821778994397837121941012087531345616251297314686332547504061207691306042270389531632469284757930612479107806307812470787188517148035138880018216566744853866067305629499149704579685847184723906555580235868104465721860832287852597551445172625000630673818738561759581176267634604089432357131129874686841541313699924173192587304111609165212211101035676256904824441044269121659100718526502751977633213132500264439568143083254370477201797437314799837577530819439881256301017436471644106776954744653236716190764138720880536542972485745520683916732961518337779107574104437590770418436570055210455057363273491241885609341029770662947314427226831803706581467795339432556039242242465371218525752466522924747815471051529451975828216341010536813996374677241526039911075065694964563508877902631317155422952984874882645168663737872037687999957209679453524062966770033858133211401933659520686060670681385597578105316212093534127970877660899142138384294224082622728501383680567443653615512046556531622489047698363771193291379611850020504338708063657279270929618387722382509589147985213613400450648991017027345835619029322989557630932175972524723473350338701924130013297654626122657476959162853635674768525452232629596544129530339122107418610876835839103623210917384964157293060021311953777340277231972592549769947779218512145684130759139294534316227390231578316415777221198337265430558206343616333678461495330332966181920114218816338726872924752232115278900119805840448106715230287041124903861783487652387167252317146165929749051999280646774127867964279155925671407779157295253636207437382418569636613164144781191601323832551074450890609574977196260266949315387085006328702956031141339764367515531609641433739027622100481900772174841572135851735495632522291548833120437018329163016945400712197504822682949066756806367116277375095795586053358704944115796369419163718527625799983371271428516018872103434020955476319256620805336348714103425176209160150938417903038614920834230713359682446151202366340349637625465456134189774323429124100914808103202946700172950185691755017330127378051474692444458631900037395207476517493437628353993074189669647533535726524613618292688260132312114662223905144216338493986220053835675690480225902550126452321965620456767608490109112741253529618237621727938503358505802740676450497917762490857111503619556928436188141419438108891634022423769061296721098708138465666186502774821695346040234106213763074521874646640983770322896125223131057070102234554011980348828280179743731292782252755118920606262025092051010107007806712741152059426643437816691483812247192832895168982712170976231077341996184622724918659591780209209538830278688540012033603839111132256105464097351147212656096753864200073328897868586275312173357288369533482196282663148216244202674606591617061346369960879697884891472443966260183737085731109775014180285079806255678193881686932746421351945909631832157295528232962810133033366136048674038976630165640304410019518244581919535628932939360380252024788292644603119561572873710299253306517741358736139637149749498826401887737503533518908266390397277618667198099341768802749149182812723450551468958991222026802944700121720990529446936894501987861828748390465148441842338261636392883804839293810583927967681995579250524854517576038329031208168337272120365989714763232885054579696154941235263359093038858804088858652559375171113962931961312515631983589498902630147805285591571315968649298622529866969635290440148355090012524433653049436002694482453903160136737216677375774242874065541336346160786946267935127902047911384283362937526305373714505057905975696804294007483123204969710573139479755566599427402005174929358852271912133352561373101862380640713892781895966755505898624377074514661849125328685587773240269274579109757517832886070976501623156411575813297708094628674046770311784583588973805976795045674662677774399793623603629177450605833786588724214868960016372780429149445410195064068208898074166122137174308979854956817449014692842252229178393804389290846408372020908995599132758114740023145730904622277949086202706470053419701416400156921010680393089990854642564150135160736425289531045470002642785432098717082350487489850587530081018828681394517636630761792328161157443977215120673628474915412390344766769670960168565692106772856587467526231375064523244636561867797922793390299180742327280965031325289569088771935308588447388787642766996766241732794812730844689442762287238147745110504324105435346199355607002105187842231449363135954767823338084950298831267590611094885661506025048419966596252236283080447373154381951460536214927136050275791270713559797879984690597327429508453668527842895491517344637886894706692395573411222415780992459933424583834596672272124708924842786905999813295575587423647680259582149876598603837749641538521628743910890489058530461412295893860075079515852232075343815056758363418064036261504023127525359477614729516566771954078247974414451561644160967261945229448184625499236885699738234056560555328066337277024188383696432828189323396252993613556669491232521571023551165452836598509492994907443338177665942411154425904861390081242760442995470537504927099264581291725638723964483947802628797475847265838075497688730286993152327959972868991969290693099193747789726138676516546215664857848553657360932054795461004519272144137656202142206368700796342649144787219749341249360829846056250298676442372071234145867760999711264599340621799748130710093861712393956874216206529293698231138554384587304510760041949013916929276070794890462283856444816698083916799085103092252833868682075638049872385967125872761439471970551583232527679372986524860160560862882731282587021392581437690474103441388835351333651454060392975892798569463760060044755870996737047566481150966486151782107964732423667099333929226193268130290114846471370145130491022803936160607457104714095079070769008185708876102239868518950489814193860546802456278810478881643117898397006164972245124414312986311090323469618552558463643646933282016936036327523062254310271987853723792019789186941495274002898988556935632827272318168854331489437823265632303746158286174706712703558557195110462452036580989373401544495886036838390001043168313877434250772167954981370421799489201157567981445422934017499774041966248740348966299533420310900879779389165477487144815309654989352749086091000240649766606826259306748942860046444350541592436350657705447003307783128069991936437244689368814017365922061846928912360730203316279019884162061376513634603694006179026781993944757816992660588443932147190107405106053283175708384993938571937876375146009340094772700910246370615009606469267578872729355458282747011765370179398384602947684288649999618582492114721089222294133448148102316247493427380745626113882624536942151201132544209029391734844445472267796369231477973546198100490756129098131034844210332720881998572997157541148019640610570234694813110325766611997569056380009295679961802931701842961223080476391539266924910559321214102334021670450521951792224378571283010096974448672887125337171225443341368769148314600494641401960718219002745332494337053212276721990326633245088292442795228286517605655690605528172178510295607560294231288029419001793127665667621923942250811098927428174875954277530306552589824568927061216907892949378745841881102660600073366102725671639357673864694096367152651434116612828074330515421742739286060705431233768144034860780982393586709435921417780392491612494676786757717341593270084656515266876973556877499989640260979938350418688478360437791932680006358204570130247584456150543957401010541930688030540150525544526087575140578847179273129007941175979688845692044417823734618228648609387416787429639630244430084331548149659572210701370659797712835762589848679889647825505531197457731977503835032617521491780512175480289075810535907580376320492079229693047929553744091224951976164495237647407240290579986747850799420856810691666636235867351080170468723137297263116660957724607334351196408430895060144150826584578601283423067615688761421019613726056166510440487602854882275242199413815429173422514852741204372677916492061616417589951403474104545139111532105946391131880865516661469835178048350007470071439967243787511829468681716768470648077813848798373465105777513498762042437036706412205534284210115027612117114894279105074596784401692111381111021831154338955200247133267282372342615367092237392097413742792437578731632936005590165668206535618122686528942303274279652821680076498895155757195261762480551499464800984911017478282412248632674471035408375402562854933547720362157237543881354085678805638455849883535404838300451145263067175536708290968250536779971037130991427820590824046665289285894268169386337475179239029166862046870803115387054414953634846281266383151887056193770679751246249074978640298328824699272890350684685248708892997966278608210328959170283055905922736459209602923291577403247450087528792969532181955461959891356450780984438822066741227280608549951814884561124700997107084529127807962693443389395072862423698044497317344696556142882478197677097029610658904483588954020153882165596857267251709685745589703493191190509240362591065293469173286153096028561356500408030099266247497830008469843421847098184509939054406014246699508166867717705657258579556210732330208648013003024195474493604203964964899736734961740305382895058912637859789864625230696952153269995385276511404045248365035884279713037888129577294916967593684459390549979387805122449929660693974669468285784000176045622317622914219400639028826833166734176649031688483961873283556689167586678576372220325640019496948234492507915042653969453700849022413471518449111714925864219180162605863456233535839717599339569409059201042941009380557944728985616577098485123773140391789385618237258491197039515911050599516979460502741025387470584740484767457933708431910740448913915372578335133041253286038803746909809813991947003184838528339508845148572216134382244279861922881277716775351704508126926569867348106803609652230773178704709125635270173627523024847351598277925739830378787514975920073558086116289645423487820571185201195349281134856788379169351033812010023450044636624565617375572189836855253854723700570790024785995620995283445337166175855706990910798494561509445682256200804094269202488489125131030281736716881034749315557077274805528139795858976548853681303819986844400812850083151985523285233708350678566749719999159481531461541991231162085986118501569410137686713306607796255797249224601399385386748429499571272972337830518174757955458662013764987295179922672335273465647123010093310165743350631819223528302803377775785227541494295027328384397999734129769123973349812716321476109150063599320960845065843997284550887144398223825192678846955815671685094390906006142463217814529857501653450395024451104207562178390915049465941306838996576220619708277268926957892630432660445123336645205024019659976883119100260818661075181902112666440617238379855750773559191388661650207436931494771733608203949880684705394902496368882660519386311445213365630530167912692139045128143366934774966921057393091578049986988727452967591502037168774017709896944042459043771132258502011844052746610371686331513293619742631934771224228574877727631639385356320336251645854946400835798242585685685600374249969377882216472139146464494701116883365502348099898802855027956435292185153609628575098589016186432506248846640234959689356328771914311745369082302885174493738668888045657656976202298585671346934852880631550276965604740639121704559597289890327092776537803752289635589726594091088378125624009998112573125272723295706142150074192127342378174884448481119113166599564899939612684112212522415280124879034530351552263875010335284559422382254196955716980829219662696695982222575936267341205126157612285664038690694671268265134585455558690280797458630375537133421495486607489299251326433393779798684384237448396615213265774604071786901842360526211853343361142042682324627451357864551013452882976425370476923785757676245469031596153812375819621726648414063813969808604145000587160936625099832510790163146406621232589817244588056749073713748133702518108733666032844558923329526692014222587703209003172032226884639498738738778227037406963089033829855111366263479797028517523523964937122361656857716736424062241240413200593694855006317688110667211095058752678128713293337327642287555512490612753166247679887800804707344228740980790732786746670448084107501811830139483401486143211298713505508956952174708195733605176604050790125335526263185873812357912454107978960713578173489444074331667650751724390574583711167303195955674180841008494078039784770489714348324336334083834602807932919241061770735509572947607040459159631841033040609379788472811296469542060359463656782059285216290304832783574386788118486643223628226650296925584366363782684585793355890589493477014937173123336084192845803444446164308291930130608411467433399152907802829372901033566681422752800921454299148182252671173825102342799800605018852893445993764562472503213538642313756577478762835236895408842765205691314165373565488482083578073590469432555578905671510737053050967503304035404720350516546728828327292049236679815968316929108081579309813166660120735385408029742651102171335003914841911048338155389750035878722358272843034845849108622419387110986318752020741450106407940391257965809136059553142623307650641959169343764517585861669252309984779459442447242911801437825187713941016866814555479169918047994425007407459248800739735072286971694371779192521819658657866452555993081218151840841085341648132458921156510017336288114690031244398422222497978585269749732407471220968243499892011871172609528711103176991812399346785015328271689418884595790386799415670058454202936164228262703578953630803246353106268864948876630133095390740562586604679232930786580693773791219919539473555832453610846394397483645483765636014451742108413723048700901189706140484676655744045655419964295969108962272622509157890130597488386479176809943205826699410952841140035846240363074310383430531080105443250518423287820607186116554337788339464395841234636826743004139483936795390143726142606189863334372844278286555572542125954626579033661013594685152713319038744463689419651182547696658557636072084931437323227947920925769106348590461654843549829638511532513258560120045459715248007663586384843646029797631714628877299071930301875724982854772321827992733930448409747218487379952423672059238361880248499779517451180714640765340509962400256453760459043138158932342649005801215080246164489553476253870773073927638180463324781392943888910480156709974521228080857225086616876159573015515457369448235983618731289290867087051948627312167376914776083501607554746022279334845792610770810038006817579511390498498523795165571916686651921363430010851731329999465689687274238689132526879417525603206099468489629325751920036164968375913880709325031163768612338378826561793287197491075579234745072937755983316776173380083422257716347040649872498472194567307420264043846962552669803178010747688601249371375265033046019378449355956193908914297675197748344377422666792506326347702478931202733036150578891840338789964019979998078001090868131693594705346590892418884065297382610479622477010247113702885228829252166564157592880687715699566262809239344725105492234431611036442725507217810958220272084638356038726633963419416475453505074206941100786244699027936874891730082458346073268397906994429647282964000772359267183129024252592026722590567126584695420766123336556337686654406943934792597876515072298368613268792500781283093984787149874123413046601545903091280315560752904773293880836634990131787833393949067997993443313866785098324189500713297518537437586188362345281329556923168775704161220154628725776808956863027845194979206288594993624102087495885581551295276290523149317079602358304067525378782115372701210685027301256146165566395221576166585057440531522689731073866143500281313888459955992662549265519764191207300824008261999573100342273454310554785369737194991480005157870659473797110128896339729105306588048486147442718566968601195798917465519624162294216695636529222871200016798194687785761953390474217608632760290769991331605132173256304087557665034898274681579202505137188242800095206534955125479844191719694164902692936957661688994049811545385638855666949317786050195127669125041788039152503187740909852329078157587692774566838479223618338399831484237165944182815009484722295659278761045398736261984009388071276256550498041037320743863741159905776466642443036150783050328405651350612009044402786505813721524121578486782529549433493958609168491446444608789857158264692160923949959596892846409797978679052422649293164861109555729939666450205280979701548826975386531033700084457092461420616640850443469115740543131279892215590815983592531157454344466269014256562387472251865154443105122745214196913356680372567035245587993546351214774082320267857370826062675129489371320793493802610750060128269985101899719286921875504169519899248323277807165829730247882117569356947695288463958640336454820993508289548226477522266244219716054645004676142136458975890762565446802657822283002586279123337385459344592193002161269220209076833702679423415486809602409510864810600078049324519148562920292077444651561917422773060107958710388575625174809168139361809521037958631040388151101815680499615007406893227324753954673695410025283595251893868792240719860706393398627530192751452204261586539503648644601698820538623556707819622656110526821670144641019044376261927155326120171641535228228340584703080296877202908682067435306967319460509682353716687632835412926182705091852528363512505777412216889661492920383715158245286767467969910452919369605102669512159242435320435712123708620762753654104704199695065042295757308424907449553995389750925377650431753920220237571877541337067850448176976932299419135560024991099237543307506825173689286119264558198809722300113293859611636078284095925362405269123853482938867914745102328319831716641791935267137210393843873464346440955188181651649010430026125571186430266413909640199207846792879407090204096685839913745182285659476988338541512804116621197348521640623925305045867768843954243774311573328226962568146251395239864547897884919543645217935527486677947764139323698856418720081987543936785509086541652464621750209152921599437368419829150361243278838041339358032840238236248900930510651260774866622411375639198258492490602414539358038763093307217661573180059868243948508462326491864796903266087021673008103593742769967142378712144930319771665983219734299435968043602286304535103671606988251174805824247887712578901069660440436072951197204568989404519646643296715086562397228412037457896859437096514675422223780483693577034660116162461768541896628635797705062742887668710212559802661821142443696062900776430096621310802894442449315457483385862327827569891060877436635407662164950628263585920866300493823824211289901703943806084822356327300042256729139508243172499574562557189419909251187832888082933299687853297675297259685143197980436935105585167206464993759328765406499517367862692289861037648002004004383546288846288569916665650517444962211509821843591454986876181715280545322909877998009792759794957600029301589571254682908120091057302484976231315033888677747563231164998391265453025310193347902399712481267484044722558690162251703977577689900398701821211471182336669330632439487975495340254592705862020259544609145580862066610946205845446835444027307538980204667051795600050969869324920699081579564555087030600550412694527145415823664280785307691168594377934197842979597414554443873015328586220718411176276823565663298170756663940978768110411198984417911805678912624091351084938377485462713134087644732469172147943193355883544217315280758417279310883746492180081630216052055742618052631491682450029452080457065664652967884868894024766754028392746680745589627795516260856797473189262849343780607004545066300203117849104645348678235480673322369570126188853449439539968449745505199081126708609544744325715396109489625555445450459498273980645102061183632296809817497917863715236617876844239401922648013782967221605966538156538251495317945118295299788482103840009850828925467907045795403218128316739336666938523180569680839714261314905139768017496780738411860307215996012104505060803247672412726714857749174014755454013365249962575028275894991363031779107651809582055369049094699117125619551480929660574557916406673261216039415122112379757890142080245338637454185404214503496915512021996842011878523101261170401051353205990244730744171992452629290259248296212797104373057145049898120628300439149901687280761453308524108764654949998690083344965940774973042923588119891059388528996231482502560551576704180307483649559506000676165579225058351846836847467003648809772610658149651752743892222976873090767006408912449445019319287644969688586981764248211689425125627082625559738434406939861655633577454595974339556493343651874213305808064397565736849546216440204247796286908708683716892853934695050829189437500813837620329615881228384209177187464284625809757260551773828051230512011048687885627473210872703258926971871336362766224193027158067232618503672924384521895012616977701636549380799626568599881600538373738714892711046396957297033955566675844505297954896657757331270687343275085405705846800997971298132522852607346396034867869726974918059074463058556800376942738120802773719038100213771007876205482909901934492532700009452047134938990979292325656585245020913448148331195463932208805931828362240598678074788205533666129312182274029311909286398550149544622880151541524403388778995789972658262487092682220844585609753931981505744782132425981038033126624447316720364437118375679195309522380574436889956739799638331896545648044893107350549457848604558049609888469731226400149652581724432175196095260581521684787898383995034644446896901940578986905995687104735164465302703769580192880934662375459645307162101009699564130300630816380932384230262464417099850045003847470089869398803089937716243707901754045369415238564597825469142169521621789316678845062837156480075657729716712387628812238043772409411024740328981568877498637818030092174984558859265720845552459780612143225669184373036379856004236466336215719129734869318998861767140728981716439468663858103316614547613649769467650266754253267111482354989311179580984846292472674522210265958284759103434189831685792155613313335447438798938488447608995465213982482101806694963742409812864546668640185778715719271017820717757642706685414216896215536590268084270638376774705423709920842323070110675774329776728341140679978418148529034729089745760944098672710799386066872064399307728991914928576801485449307825742207615919062675261463042540940660153039766742012784696710836061023340391021740266422301827534339868974499470603210374837534752057204058918296701266770863525365651452062794628655546373118182516670369064975286751798107759680606050847750432018031046826734030207982657805640510466601600480374834824098998463451929098056989804236274946936455996899085527705636527654773547584075267074527069031790034692191810779934913923691867778478413300726362327781310019510864473177910282306356001521236419972199388758786311180874423202030396661579723859978758559534422752835475895814963184441982346389135864491330073911829085919973352273642016593039004395045964119112038832104892882141253743107506291328104241250418838152599338960559476562366519599297946953417580766204782853214423978758304852748469015456539520870468329625539804877963702707830092123658448167658349167059973189998910013986309648551827480712675160254877910586487807061068525000262823061019350949271538796994342414143774882701891052503313821589523836830712085950512692551451160361325079402601706466767300095494044043636036190350538618361178422932696780520549618036162383263267272959775913189521464729856981641388112986833625808521749299203596982349170412623353370585893370645313857383543167667954256559320863073492253798511402723045195715271952532832519185996093098550275289708512012324853918618562265175047049564034137931721610995533740668282265487695329640999124074894951860045080197067824057734835160330513767875434924817336782658727766327558776743464117463509087285896585594766223535813751109364550415366302643981151986737129759862951164262981072393335162245173060758964290815294716821449280430450141977886406661056142215044181622460886344416178054261791582142646179657018566594974901929884350686604779923496542287884429486275588251238484067066268788630252633273933971741236906907139757030595773524131407001874844859119265188324384152377000495015667978817918819811830305124328285729009598673767649698725529527215777355611334101401018644280512951584549672264776405167238763662665151382700450886783771390657030999534846277545034955833761070895183575412643299562340035455917632130764089812262453040402313593905032006004644033247245398797353288134713626654797671985445786032450186778378639646850127906113447183632915218217324302092747027118142566368216489072690567811075100725775651954077694270163573140288943242118113629780846720710097099773713931505295324983328201062586165090177900003354321349959579451389019291257684081814039147755069433285699643363816734298302233391243822238233821362208992071120337158160734286653865533389971478047462160145879363467057351656822498717652444937555282660030328479647880794471010264944674457454151921016963410572951835561977727892297244193287567904422001873223348876987183624574314422092972304217726459311003594037463758400380552814658304656202216611362513812667122442075737568823477900570904222522106143344389201667907394529987052909018790812880423372008211753205751953357838997317298052175620426308143683407283654533031700316296538546290625037394297486937029002662546107809469525775010842515955590143680297646454246370412345591755845598494125037326005265968327268942113545276736325558719354276385881151147289554865993870470976159097698564164660019520968316298283548228850556136674142633914350245371998774342798173396714110039065246613264416162590075096137793747997572929314122969711855077887177294993251466733135739620991330090347856466887459350819006408945489321490491820338032927903031612681378191462730624897829437821255515908949372235820982126847574105760288660690094316184742819012626445581509467435076855228160393136601154133720093179835001326275106382744955678679597074248956011495687019216444844679696785504386689180576474839362767229739782133748916019142140001223202367488112879624809208655097009839917515174068233881272666444337877277321925986943772193680085153712006013370552844945520123362916712076264322672238982502180692411083584285351514810739274969956625547276858071720376827926531977235436478262778043903746715276274217277858598628950636446734172564872084405165334655279939932064440412607150719512803123175133601108431986138680384388833031173919116132494624201380385156746650314731739254348258811643628121944283138850911765710843761398070088714741585053506512184134122931326229229825694805427695587472296100100974123122896324233777893514865692825696746516999195259322716291483642608865497656008522104702702590241117985018274552051324001266207799387088489961516247607432729798980666496525243616633576616054903565240451770753443214288910974855390118494582850306247110821316988051663378239603505915661862355273362949344595991143718113589022256616923938959319098866612838193996769102557084068581720989803662645425965474340682066986721754576854956106912511893864815909869943613551286759241277260742495082050403522140839939780094223536417839425830277927590826739706795093430390583146699921161971724534330726200816860536329888076520535364464844759330901004199847754737953949031226093170263024919604474990430312622911520205822944761294227929842209454531790847786684743272991964741570086169122396886534773391813696842915426261721058019096833562625582774082156928164835261116206736702664936795851162848130257728248745842240183496106443182842235247099809581137928598560810248339057362896345102933428463835010565694056495990769595730450331021106713004601611436482811016743250000355606486448042415688161052266640003805465391483986922410664777342506821618766490679866330236726190758622863582609151143307924121514449593464352012604235749132883497504488934657540077925399106848068044602158597225774102469717262675656828243502173003998077272079952691012847597416911769966669888878238451902782447409435970928771220926196263269176135123500691573889611460424004515642165738761549771628144483890601026589429416563511966183443750846929666840662812941422402516312915681460700961383344733610641093100048620413355115257423401328861825588034094080829083286232208570736741540205945371607442495088732187916532416468189604120229318875262267410765590052398649606315698411140343922436448201175567977873898526041031157436202914394931646126884423042099383746357650881106306276581313540836329208818065481695284881177533518270856744725474769633105665802777095586516877711689064743714020673957921178157650105677798297743934604090899240767997206856278940244341429748881401398018291961522149007828731034025475030425439017674718144310255821504254068185545697211535538114784093385457268714519697320655940607916327712487800627757041028177394193212066186651016099400387985248303222561977517264018548524442439094460547904182651062839629201294354405861093448553415048203013688332765108551926955504621917851815545952937083768772076156679270099811256885986878468989298683227476184845087014193981689677782207628212666651100537188569416028508967307902648288969677466582337174520241993518709364126473756172735922141453066312423105574825211758941161520379521679705939780022741544974990260214690904540395246339214882195938989420422267635291052354528968863399152191638445090475830308307055240430292277646786839221632812021970022855721114406731979572660532692763481321612877912130961622130094648107787037824335797104050765656886396786058839506733580056058219357583813741929173691808167548309426037555699642039994727087061586097143652052598702625242409677234438611940784101379393865692464522815636517251310424890551725109281897477253090657658965875319581381886803224740543419520338793610131404914923030314500075110069098246345690491124262947951078574311747869092946574433425503563250039531025675349331904360379213772319514565555759170284033374803330049487834747163685136285742063598434389310059971514357782370520626331977842894444629895875430537776173730318803705565297383501935360654022024502538880569405862048778856635072218038953120606640252934656603889079674730231082856268111169991004591797325127091819952311842377586413769946173255162178389267706022176431778989764908804930182013694384558852386903100106546397914597414394587306685053166497145812745861681239287750064187263713360008864071172764416640073038028622414440205880621709462778492301205393827924435332214386220888001784997987879234019015228486848420996550461178007735551818877755365405567133861097348355718634690136888449160439068446396636089325376546383691674166234500483373726722209325893856633086315432823441975134166734476128951763214781781057795719727838949132111214625280378807928202449239551131368669278783318383733928294965050335761856615723572396985206977244234935287879129969999173134656268119769603427577905646324003864378780703354162422364221071726465113635330431579937248492760896059152121799554095776350759588308949812319584237566921228146690452049092060267902193703912065794280917391933013724908956394658608810145096434781917840125643881802507329153035946996585881001863682890107829607233385590552325475580799105974992299438353426103811273620735333344596679089287509305348432825900553883211812669435920150523020002272763782521586905303998647520504692720819926496822813268672073029123971416277630521809713479147059499266132306259994494622784843137580985542011581653061465468913008120647674824642145539545479633477085862994999089808554554138875843807278321613158583712486424486399760335638686800136370532975843249534011736919613182943657603644580704850988489880799560438054188260000079370167715674283017166788058040172210168528783982078520554134309907159751813366206539651531485566934250737063334050667152193421612610669899605694236220940254938357144481582325659871672342299249934566315850480266806614124246122688011510769142718293260412906318922947400070277440610086452592975225024527689095412684150139896395255316515990792614377360515902034554360679957725329890240377614624161742744454060706228828835066153797653880218409841597462676250220605223364681395395489557339206729627334273993649281928216522553762036018438919948566075096578037244035872347020824635285241861313869673672222417953798939775403062063157588205920022912520354371882533213620897682382853979927757091966272979475068957443264483058493695512751861845401740187964596505912099173022860641926663662495778036985969756261860436135735011689631112336881226132214085471031719166537445096693948762021816317261016618135221853993158590768023570090727852454177618425541961825653807691232987176504257757792899003254514694874387001137586987085129537238008371070073470597896701279036571082083145304652378636634061256486332787688980596586626037740898250236864351077270794641900143648972617153829329823311234552754172977580922637140282138959405888423038516772988738385249013587318184675763284152663293714069550119943338164590403916785717380126191513748256589119331593605373360528688794901587775625424386202514278444715299611559740786795176819072708948571003753697737924932897296601391573054131073588234505001339091797724256136908665184405407127458544207714825271722050310650398578790388933325354343586041093588789443405934105203877721037675743755129459968415439135361328740547179204349277885002059160559198101409932478998082998378781732156824824171677801404543567151405502794686157807026607067456260342240906291051459676586982936026842487984724336031272014700925873857958969625577743750990682609395468985933862925864746810428012610755973195275589325856321590855168967082304829424622331865093334245779319579265770445052135023125418109065184377840493859485748560392477498474255822217835708139821237870667559569506048284913515254900015508850786852646280848087063149812257603795260364915758344360661546756001187303407733141593969180747425072092010989636259459063422929157220539646723050899328489954179013045326228336442917769460025042195402330734053853786245426766134206615283566500905961828983583749942845620955433423964508503899798808225334430106614772038428435237119375467922561092726542167210978988414869021373178294213676518117471066246400521077929339369158520049364339456227422896289417390297456830858920007423808021884989341953419538584071875008272678710173609846517746668934272968214597972883966917183347261047122885053767233207547089795639241883341489819649799221776090280955382230632451149551013931149623466632888120610847083672056002261485616013886846887390220037871834822560151078302740763395505494506010039380494353289683585108907198204650329227654808809987131654535406794762904115066422821680165187023168972599546309418206816032301116932850599925220852823307070321642612862110081516576500948613856025492783047306736038384557542616405301210046962238683736120340622425851214266905603258099344854665536509143986324548696682707923163972835617139465484852073499124137348339919180843839205560229758693204947325070644428174461664920891952214108496873092621206663406344515224277027414961497744525848578231164417613931750801065750335534463853986322158983372719165298916922166539508331269076405566300468471861972259753290175551716998796419151181405824355708811598950098271475242283286986956362607656785550307115101547625424984163842107175725636105532211275116325993031400239872077517787671279909738482720125586398905630701043457786805509517587049128422742578908799944645017339633592842251608863283526997655731812754338582670505289566897550570665934539497431961989909814397895793623094653542821046118270059549991595797469366506017811237866046905584238784755550126483933788799217647853152669693834948867582046022698488029162416496377955843842566288877915447545885802444045938856648444949811690622722720728232250427383233589124274870679813319161827594698820516964648816904967843492365681339337758684513590889163094310208782483245348396108150142641016276668411084533965854123096938007693240688700821242330335716664485526618006663556869955598593327431470884556758010116577380102570728979915806118121081321885905252978898705150254027569379749743637718383054909666119064435408836186069806732935176164084580973287096589868755352569661738695603735749311534621008052609175756411680102459659787591648181684991261249323671908665631134558281348889128934979023866666839625338526876580669333645313220520727748593264427436886291464223306325524077441338924761261522140864008889638816124638023579587527666630447340227537944784479519991962593798717547700992461079891525972227207588673496389487672015070773378853374077900043847698430098213201639277448439860087122115542055110025466606496716493802107495172485337251598813794040045233665297376204716397849904942479596042597892641923211252293135693511367843864295362117460062770465437093230982665935620362821992329961910496365095392162538013290895705347244141748757705371027960001322630919943077239329760331631246025972728315307669648952487506532661928534761848126805912048781725305286262439029459971533888846332635039230931772348689293586421519373825701479851045846536090949170224660961457390871726047709402379906530683350683045372148434199427553476144314180813892535939615658140192885038063197136181021432211422714329137784628061686740539071839418110989248450743308392101476339169097456848347352161229154814425324847631750778590646768744957055171820390708949547057569089054300628262294620207184536123709467037340175504530251498984013241598407594293638932558723176006527404841039532823008909756301514675672951409339068171663492092780780454590914931591217734815570649708121137946538599475322772584106775400318954998395097781901185249426308368309232407868104669798063343026545838468177835526573037112608298668565730961079624753630291386174794957888562090256796580319439368299007459765089403879666801072230550928227723987541313039697428162521661897557430043311567397070113192501980313949252956691409686204634394837844194352182345032746293961051876372181548273851420474825104670974948940614906575057200967362675929691771175572620951077262971608048618147051675132022842478602712374516166852754967007938099546651209328371992780441051237750949560399892172263500916296905434346594660669166471048167899214758449503770868792297985929119691159520700967915210095395026418241306465570584380631697894541006731562977405042473923640246436410733273265612659512203183601688873806081360244927788543905066332004270753808930494924220583924376854811241155594843729513215510492084184234457481414948403653750590347998742285574155698869293744219322801078355612052841570095283318279201323443389440714548894276682294777338346877335288217052769267784464152873246817179233188072173679088058117942363755697208977824748996632829855506449417751248829111288013990308507573982734910695465499440482390428595443619348488672508216713107178344357262425313606733852942896304777941124971410052530439818378027035965459379764760548934413423662672039664372218193567859811268923606430918141236861553985066043423113478287752548893428532562023916671488693265502923667499999051463506381619808199628555561980608615516600590518442793082057425122137449558850868948453711310998043430224807676122938800290638434778603034893489795743605666484287654401694450847439762070522217226491912291733076235959672611096685459205452953918389956577758834500613538243736938083909523067749663601073410501386783390124078574350030876503449809909559256200465246860262500457785727754589631167972649361676297166911676948982749453236470485598560539699470787311440702163845418121388851718963625362333334320153660238159621577326031762363181841711145776064856379505015402774768700553023453005382476754766714639054622840843654318892151516123526054050495735487446419127133164546963271051412328198656340196401048379497805730787616647578053664349279863494017471877776650023974652189965281637561116198630496075917254284537704510755339749456068744021710644198407139880105401047688554776202098029449072491442514482383496093650172129922101011128204537355811326422929106925612451006607746853266817970228621908672615864050420869255404436747137817703469313908967322199554462184295594696323338226238775736945726901093883091715023980325357659682785113600389990358004203824954269586883462107895984397783223113953757638358580953004932822035595115490714595389934633802086456241002016962491108846004028337372901689429025617899821535598632868788424537435029866612185253910282274676849442792974212929898499856409618324740981508933769418443754362709045632177045903787847330648534835394304773817378561460682352864390505047009002705960189134875633092420331047798129587506423380144475919900050919940781334920398812329339292661209295915681995855526229496813369121407176360499722397974342373270788695333305859270465736516054460179922286465225269340176001850830176649487452566105320131486934679286305181353128563426134629389564899943046511022405747462434402602615742406605477104126655759114906187376481582303635801986411633930051607671393268859686954586421156478136034686967496074284132910702506960465340770849040944352728987216042201972702588801241656885995396185542359535536830646638494363127426742518615788222469016701389902997370351115844579942220384360415967911613291489965769502813793393751990820226661290202903486671327798135028707000850047328941551781386757995680945931915593913106768755635724433693981295768097715223213584704689884367824409975554774171291270251680316967200222672468953625198802988404225354914508291117200209807560798345843566241663560173866459074664890953464082099800472394398667553880696028135153925170300922640726923610894332585537551721501483819815173035159088747148242110825674175998333553620362724305711711273968896340384915488493929211065944831791600081934242990818441322356912558095654595837054388098308354413640282589710621116436160505592588189397085695440686927408918363979216952321591895427826551524932901925421655898786957848152519355354669954104421190730745598661828706533253502201754422762163930368322158663766797143269368193716380811555230698246629095714062144740081267313373783921020745752168413657761139185641195609509075999693723567736979187997026736638431734793888651129026735267686036618469104196770719118627821552294643092250878145106231524445588476770410192609768330633988554972361767474920125498827549755692370016857960649848670150308765973813366450084073689342837294502071557615859442565041297296820032412045558144673154329609998404077156435099766112877258464469310257475425254653417676455795528664572540326966797572517179621412622468995983475213421130052883556061997209320952422834910468169898302885224547277079915645290797609159811127748960686634069740455903807495639135571327166940194499623979847466042387868617248892783265282942831543811137890006680471579799255129703808322205519658426790589550530910066292926827801606884461933619040588149232059404432226711241630909515830320029589618619814146929270348963312171309242262383722025114676679010612247378687234474408853493360967664301122450559761443800566587800199683509874832224440971123475084124144892223584062330038614444195684742379497881672969214669068149483898694313304847533717204967127448366639632698369984716571286812492722840153766219713280629459608793293802462144211202350849945317194258385052028525899906448483291939848049297149038092395462039045495970470962723422811091674957860063239348416675146552350337776977182007865237414579149374821659241536810568377824167249720364582578244482870768981350173847740440313516877046753314353444097723378210415061887663436512794873520153754724630712191871986981094228254582789546124863567509318494945444844997954800399383326079866488012004725390017924600005836669819084956829996928254236885486674452305062651144246357147598754816532066735218590234839817440921660565068083627576390949508127824326480742930546717575489764121258543990202239262225544528547416944154960416266264913550359848361341215103872057856744136971725447369481393640548297277484019378418859347686066319119939209451432170956305020292419981474078244152410619339228512886639994633181985524543400963914133313040042093381605878589339287158013771925926611748617958675996571296087844545184183985457186442568697903873051013559023105319567914974864176619323051310714332781097788724206219797236623980113233843874200001087440236065256019122081081935041922788564597888048592176070280131279814796288715820710691207480010730705859648181845179991215074777095330544123545728410528470585854396722008998099698629734742805720331314758452865883633921615305235425508391047205488464044916968469379126126981918433858655593591415798090473177492284723847770009504151835519364634798816946111616552962572989284252773602677028674914817158597032368450846773766103731368401655878395954184853096560735965317692311972939032332367357343220061234032646150585088678776155391714584814142976856361383396068151234947676990167852016518388511389000664213193280903532119870140995180996107592664439586196566343057261912398913397284318400436838078122141995383362638042374672313010853979176504113452661873225984265640157727681476103676462917641948652904167673780413646409370450718537563898748386142505027247352819576435863462577837631589915523250375988105537045038379572736760635777613099578625444992497680238843171458382707883506337573547489475433878504531261578380703127384384091847169459885842130362400274024017397376701624685891185864494961614992789068251732047530797294644877985501781986897497954314906019608913011628849047555394116404063087234061445638525339960068880803014941022800752870567027299035421472039310892459923474803527843573722982412877266706803166091360936753275683507226500110416845652649156141480614597272525491802301676937883645659087830836277862722073355130411885977108505432152554786226159034918030586673045449396639927631887597296144489444119887530388791671339704282337123129738321619062085412405666086410762001943573389714340263502530564048117545802114922184906758364981103087835114565359532417464560555728785162326630263113138948303055008366364632061719660918301839421145595633653998090557096390952469396225499455902957581599169660540430751173330062918084681073929274764977168463508773594384482593784245457547013785567556826190928789032956579223644416708999663024948314059104869217673871326616854994141596402288553660682422935245376247398690067722010780029138932862952152634331845160270699343735954971722007968406817315110497043301121785174497411031822875407857790421048196934402961073470871431681832012101178085032574119581684471704732106588844961568808953483461808020508462367239357548626961318704412839533869920758064106006042393317867771521499942915421619661401203835688117658478811119592846444429271225254729500516525347169688476844088877668381056474016152409107354724845040396534759843115499786563957094204318027102173516280956280971226065743330173607242406408130627858459831944500393430292209563614404429627808400650184461108229332853823190880982752774253891236801543317506575345445349916020519584587917305474630309795451896808131893374723995924471026145602006633206011642607840079015023495636453558474663202308971994211062959643671072558651946905506958468346837826398322799224747755806772586804284527954013137765717272872715556600631168172561405980407878295501176090536116482689251817277099985163805800638966135897037596114985717928738862948582659579600842317497389960507091595203966061249008599958786435735218991464214222699329218713825683643744752388130594217666475912052067900328163141778372218312513787536729288857452811515388738038890411957105936507102994813428790392457420357279916907522758136031752451612558787770189081633016633762072414647078761209978768476537025463086028342196688654119570437363151536283785762965908202637545349327504362653845053466741196317299612442045505365312645194298146163151682757841983138085067721060678089595224723927517627013440334871347274540596420281008159406704817099759555065159722290495203997256343196476075755589861157679060688757387312096570711845556916112898636097868720878318092999247488736492715207913084323502312026967520008658772039755940184792232227250265508627388823086755743947393875777517993527973709381056120632306298745456295310228691223027707964839661865032775112614947229154024401471361104658663704230983735178932329323707913488039218068023563654890862189232568244401851617063188628946935422888694404809310625767869810125029247854088483804391325685131178146535803431503833920088379393092367451507338601088650621783489933728198542214164442970562155238168162896942419996892756886360057310834256379480559190429701504767764953240206140147677722096949756175289716397795193593331783107321373107196285955196311404575763034250021020647020804476361091626495600306347893504237813478136070831313897599998662595929275020347607312975241101967443709641408453306412227105589582086889639217621669169584658752093939893406687911261429883064895504022910794542537679619873256103477803169275167542563920256584963202058079832703875360562629214783554039922144686735162808768493710259708015171325656593643863400275732837287801303659305127866965905788423739969061192016142415585229281075831310041970441793621834168013088840188571644264302909499505923492353508934303909464448539557923104883453557248020112555316855762665518952071020798943107369118240713526519126280075568131336728353605068661632874138362718301435661377765131882318074370885642570810843340058787350698836104848200459522153471758270168612944942859009980185945900587066343339504663379803359638256589390200826190588861311652723314417638009905577396807688715932606564634706498002322945192696846624164826008660406871428010708540459283987238939646351219678461056881156070165468136106870252212230726752708196393202020830523559958232619607065159920744315686014696774148352428282894926912210938696353686389549963625975792072292208484369085893391408800553593695535253235239073449086333072749917359969463672400012034121465451128616455907669883862828118953687757557846127446837440753673190828431917797401075288534444952450379454700833202794091697716796194837548071985363984083720533284906311218054809420009238044496027414523628816391140756964486600347333508973224079629868368336256129942617413476305461393085805971162217761295880735576647793399116318495600325953691384853388795661744384599427666311151199916256381756983004689318067356871542226251876268737216841492567866433003988327697711863013483815306950343121043232416651374067928158409306484535945464736592485552677887297757741640858011706767081449431884619977272767652704684654480905410849215023347168900705685643144078778920857208744296566428837854967646411554235777462552594175873213402889553152458812223627773444357613508726380223557497160087419917741615139102299161503203496418477330909821412808039702367599591420803355542820671406519596239272140130417069917957241942732451574560762852762000255533700782776391070938303492663906868372962446341450514258475109128720666236022777487780192736695870142856714982019197433788424771986314110568341162647433490925773266398526447014205819552854879704828734745303915212467588448268149270032361489046109098230288936628238906046953067546895138229601404756583498229134485120648389692285850025742799350155962413586270101423325894228230887173934354231378583107771892434771749676222170896944011628319796116307112280605714031765064206507519129612260074411971092232401965826425553743122489807487247824399190442796684001156123844573055232858076570205018820726782699211193099192058967232877068466780558780700563098821174317823978097409447635896836528788463011316669409529221026911617287475933113268366805116910218097829009686791049587935359049812597130621514402108525510909118508387463632596506321072537862093426516848887945971176798350631014887877674729640575632423360488384595757998004718868155735764153073088366915952105466171280249782555136718528012281986971460235176090361713324559913394268001505590131803312726455757783247875281360969659298903044138450862538014657460099864046911725823387000525945434891114061311790846190546520705572413700322436173776365224652544738486576958215250167969633574852735095279547712114183492226155245668086997114850558065889101679599981790737270418456288577629984694971269261031021075370232505203776080312782868193123480196812155229175329428546203620019391913071664771416388248682139007148596326171628511109153953260748604792008093943421047580604620856269723012259907768883881240101048087290506518441597375682926632074969664801159427609929609827143620687749436515973551973556971795101045943341400021910475050524627500259466571314378709891582483547864871172965057440763355420147675182648675125817307995485551416481967078707645108175927974259840021803169020458879431884415738489527174086663770096984925263314054960621038739162865262101494061144148738566554774465862802850058736158515375587080589422930282487007400386522354055035042681870770131857201687749477329793147028338539241961341157392927947128496033159008534913186731216315428602314055745082525412379855887124357096108528469533383706381454530892671008700488364134894989902405774944912212664988945067610844418222405472345930139361903695174756513972717083369907531412332369894720173021446014176627927231237112992028136982369899518068987684385731770864138360444501577780610247614820976248715540935871051943007933207224977198765685328896969686537194940518706122586734223161705952881608898553717929844102256062202821875880673037324693650143338534404551166369956259328183658322243806876027086378244262074276839263079669013161460747167304676917049682481239819596733390729096071008909971239259368670694359745816514649472436778580724084186733090382385139363344931700333929963463917515089946799194558992443430599064948567573516964626204182920976867196206642782635310170847263198671163304009127099403703932146507953169812869473475823565082723748602561546701262954938229087678543277284314389995336007881062290763452400751403151881301127012029615816506613879598125177977763534806687733852519856589712962231703680356024518623286844398194606587504551772571779267238761728131215529572836292759084429688704998715852024893036265535117066920435442652564533423697340748088009353497240074729514347928895222586037220224707004628932402275713494383227385996042740196496357097146221577975706318551237339895727492288967101246579761793597674851339485664469079533289204868787723154314532184173422320947529845550349817692481736622875842848865399085564819190316235705029776119446348364316963941037913779536602338203126781169053107209665224489196895835583801002184808788556785808733107791150581588104953092068791738957341053153357730059995766528949703181448671409657602401886269018305216098334565108546907708291192802196379560127649822896162093569657945599265383492605491513170676665658161538978122202067107884091882880495513670643162024781267771353643952602297021868960638727507905433789188139429425495295683608537677458203547183094868293022079496447921871995062911311874465049997870603641190317431667600912833727458349972287833813955935687324221844573568138740398540768377187368660543553581920893576766271378036559361151881529991909829419706691683706140865468184097106632779148432265928262540333368660605570212065251282698807326180812741600967207483776214214042276755671120264152379744962478150396034539539069585558673904594118779373678852899791995958357770407498922989512607049586528478044228139374415386451689341008116880507478994046152453304197252338025499653461486818647465085905638849008517849549632743302972898101005966445141904676506619688609676334266622155996044658742319858218773128623873991801400383329236201358603856020303715219215015642467329977611576332183842895998530903803685279325526864080193792768201625387167896577462742153342872401893937147585660799831446814683676129645302970001244148385477023865209661849920825736613695338197738305499479538746169296675324666345839036500499786297045937740637804025963269996939140604014790237731801003133062092420703017209336874773101330362256756639136558828533087538261766629450602136167089329291915804017899418832835460903549577931583404109094080928078032240589133110606316616613929580300134934723528253281405004304877633621007468572092684818642163354456032154400224638358309774648506783390523269411693990465717005786737039628258289956058926908560427450253356109757922713242532770106440203639491496965772190932728829959974225847133390771618651049192370962305019491625600666776235163906792489803296730027573724885259556054883279960732001954764317501691927600739080031879125296517911137340535519942387772287170540307907466293443088271205071013439666848701733920801197480678195358184795146306553487223502468028632090008391148564714831599887431262539086402930579697827206119829380911994528378563252167930962900054346948537720868318129094095432387289221497511516050588315655864464288762007058479342599683137342930134034504634779386812468607759174376611111678526679744599850778883782490771602046405619029763762050573649754833164413221334780840410083131904387433287381434179198705399269119576023107667146141163620497100931400179258466607460639950873987219207845422983754184410332393435344562252156822879174614575202213348486887512246847077162528458291947076525049071972309748636943659502984496032046534800646760553796249116429323056201801461212630286388383894968700227803267581216290870770060337894060379273613122539025513120149168245631942789763908166067215736630245841962424930691498370724862983091355592849634668962077826324123330246758064056881141432801435960453725632913707316579399479908491110188889443481640672208447005729205124399572554889315516913898627641408332596545766654491389161793356195799185451435469667017663505533814880793517294689796165223422667156552927811668949246627475811763058015064199062525617430987433817601766839962474926611668808221805480037551065002623230850616201423641143088333595329647077300054265960405566983494502334646299976613780385754547571766983294469396558468197059740455685353091131296996800414848741977744096720411031603312761638357394702397855140943053619019365071536160401959648708124618835425241744224254872271509728056438640501233778860281567742551345472795884680739689405826870034677322385658027476232563014914454261184616119980255248749512822291193447120936087510692043392008587623864898034605957519711844127250062027632114815755913034205500641789388169987624120793703817311999689893220099654542277153078332644024642024197469708238247212664694026287894607418812839678112405063975597913922855491158225370889904972999725937303132986570591867570948213004031456475885879899596835443708864748573868204550313740168337391136665966443335344152794011617813212752642138222910980057535385671109719795640124083620394420478147480233992578576001353571708606148807983991236194252605716729469000177645528471345620340003770289906036104098185941097897706242293304032396861694569865264907825510295563662867350122438690216745447388950126981667514133087483379399645576477605562430855181821626551940291164711726015020243429302355356859843233100229499185379324580924449907829505754310629765449201289993451252078469099449276383074023386589407049996474333377459930349948294637322670436611554895486235358804728956416592708926720821115840952587306328885486355507015891136577012182198825827191291494769355884545892681202296805598878078429312911862212081184249577580093340014654270821687004698392402060345449717314248392299417752513542347713561341959358446486962084493725439664996712524737321760864976023125687367680028426616504847809885221278784696126965402270063513907660921071500058715504971222735691633359494115801981520907965526537025504848043037872329139040124155433987510812448239032851715785634973709168553655888119859468479669079539244209829698698751790459791348683713025196276167556747089918997953626545293747943175851524206617448510806946106707364836690199887947513157147049932957081277824153856798473350877158243767267681590583377850348087553448730997213103248445044859843693975479529293346346027220615930641497834392069861067827858149259963020311003445656186598917846670012859421927936268549750012605168367917538319775821744872514114926825847106400411839013901979301058688646302120527768706101735674044799281145267262342110665561038566835350141076164864655211097313268847040765273086231121303621913502948771806649600950437491169503906529651335231547067211169239397848646164712163495340496826301891317902659798014153629168155703185842646045488822334762713623390412163260552994742063090359794168325151290286341761650662465455596637451368548206408649321911437336494544170122391423360009464305142970420741852537045108012806308242446121108052556635491616010113277822331106111881833217795390254294805239439039008572773468789548383787206036860034453509473951145502183018966871514743285003057464475116165917452054377049553760020886386753239361619947346890211958018472416380372888714926364643773654215187861229174694970229913593719209219724308365454785947116052197223828423002970666609645987150203112871783229009909924186260724029656694732995311217437458165171345263806248477841821153319070782757239111386453489449262953607068807934502049703850851571422193725992501755812469983573220518214693033081491077344825628352884025727408076439774579955070715880796497921204836015807934338456822849385872215174173578186539462289235928859377319511255518359003781978978428556507837706061677585810957964993478003550935476783110124128127290393102252874046858374789199996986741212913524169143131970950640008727993903486094145145856368926544768278738990429034338861346560111140968168732136423838106075084722193593954926353732269635477839352764598512548432189574833057469972788945798295795617884432877432001284142411456155447450189869117304511383272257709955651609299615247264353043254266037265692579385648906333831089230475041352858078349387422062738073423261058711459006734098144897351468130199819526837881352508977957226521159494026721500858618057742642872056707740138159068013931020668345432207855269423318699791688859047026102485172042716644267379301697931870355501870071435114567555404519788475536477460462909194085296068946268223381860539168391169192138391813836319406212241220539896415362613049037908934362365676398617672141584425455046830771801888139875824538545183005093810324494558054154425742972655862042724673651690646777574096377267300181768725238731021008645884528391931192453675940087241795238697135847882162456777453018648609018930151998359435863727601771192070421105036569717169609659975251672831659922460108135949948263003685787541755342746629388755628784449786345633783483010488223005380478417640661730657885811301677106373255166840715858531612699928969988558474761170299175361446556364965115578138769076809331868952329852718547764351118291880031338928040481757743232739917146573693239284047972315727386703154328922940443639793672530475134986887325231426615887575141093153287584540622784693168339750945516780632828968604806672005873133418028959035289101270440083936622111216833306290606312529622686949574660881209135640195221534671782571104544298273134078581923501563349967958076456063726023621853241831935082756688967343730186787521823768855579521242896516929251118941979358760894559466266444076862778444521943003529688260378637236215792613438167301478673575599437732772311569743225216688850301670247883664541329526310488459734124439974766701826056676535201361535309135338024745132121748990466998223174323368618234638579485138566380807741091815076483872770052248898409406608056176104169461110375827661568006536035195698875592695998610573524403943841944877592536094151220322105808590701069780019705644653274899864071578205735536661730591389969022406853390569557485011439581396656395291951087140864369879083349461389315801573297259936451597601322346375086693006369293194516801311616866408450235431031783345312647053312249238889390843149746422878272100956939016224472879819849925529811492766737301886353847400590629677269122560998196830311005282779286594481598608907411552894690268674002471683479474622371636524524540577069567597795275058796095214333094739654914571017436175050653615927127103519825190271255031866637792541620112403836663507673629230808434243665681188934118901272969498189492290576970162091490288235332975195681976264242354612272513670189969964338172223566087502658514125579884790606010054862207379262755786988408444540007664818006796729606633968768154964504543049053414809814943515735832573949915158625017572639375254651987360575569873951408830935093469759174565837932251593843046909840605167523822106157304490390229471780276707166851488966461235239910543269902078591554300613737501910023799456020824089096482050939764669449774407147001435119642788599151615547435845013726799002070093488169350783245487141246855253253952409407212074356928787773857392883089718203018188989209887396553187494853294540823837683661117095264005351671705585682059272678097054725816081240299691847778377883692891770636252516440368273159777362028543451418960676770861385961153220845275677005613809144499612077199436614173194756194408219357049031514151955539628806932462973941397009711391146687037276836037975123311507978970468867622647266532716266262244859293641654206755704580555413285730978199918400060220445492343108126256929846916093778094306910691193720252167557966468457097055351957822519614880719102465692943647147751966293547728241440647613158747199525108954908228127118660672921152841257696642459980160633973475624215677949830770748290472330389399749948873938590756174285027919286412125099091937997453863077517648241083386872089730319238937823713894950978857965868051880470962815526981073603391585027618658553407754920004349648087541544590028550171426215425679762567783819440733373084533202822167269917949875897569303023138499684776510361544513281194512413416399212512875747503639059965620884686000430298664179054763081130917867389761332999570767175513112749134998383010298644205821124432844491423207687641041211951330261450055795200895089460935586134385210983569835595033111591704774126824650810432555767011116375285118480332395705630433590951523751432375720302703502701496688745008340938630814959039785030493268555952177644547773632202828635580387208522097694587925011361070699913943367371452347084995371608917487374757728722413245665945736082611200620240951511123302330517627658913782989051931067858930095631674801634627665988230271823222670492816240540104710613853415892472207809673048451772509107897998505444655122127979569992467820030342847254976430067827793886932529231089076048354012352096486831127145385722372592548082083110261697181081268376704747384581651758204374715917119594739226340007507207342664034877052297310757440558380197749615087795346617797220873730011344380486977550421287838487036386848939057942972638899574298196564779283454111541897558015900889067183687853170373182348648519327820682356208989128551786546217556349234993596945928976538412069539931473453742701648007407596062555868384198752056477115088158345039565487358392437262131713955895846838539353160383544860520794061108667378095152212337926568528770993869747029409111035701839579786848945842596780838242897238256107271860083094097381463018318605526921971813236120876889606176820382893847567394883955324500967016036313539866294654112031087874427134949797634611454412101230293691793598368130034912743705602527515947954719863008516858709463180774584872088264699667888400631410056270554189196623646356590942305920818364415367996497364398931401613502956658121063415331024646161830467014642794383284294123958036874631002351955537308852100177783684309431452568544335150302101520472131904521920133109986901787779125495414057630257733882519241570145529240025183778476257203920695930372926171749003286062412510514779713181171230253127367197427398796875347547336523578985847213715172485742287818249602391021222988023876650613361869476821201479271371953591337935245329015609715499928953670957959126235615064784710406612860789607309258934797875977735633224543411375018465211441809115891704706492745692150729519663911831133205902852452559549527303399577037619828813262398141458152705831877177957557404185781316433443667899385342243590702156737029247849820052761797779414521986116157335970617400026144810676210345705595130512646364519588323046654726232671630205665265585813940428091359918705276633151531962906664483074652593822391446618176822754488722610126541222073404489561157767411348189162269502107128076914145565585387316083599761660683163329423480840164863670118326360709226646050265665159104213702446017086387561232923590509436310046031283784612365133193009719332899031908587209409943772142978072060815511655001129181188125175798876917309497821101659342595081736704935445097754213573982169385043859835324446410582669588758994114241423520381550456565945606509521051930189712761030459629649861857106985922318779817468978503733732882003743709047469655035004542168846509460169749469623700529795901130479150842386077018818682695754751892583337555074277337378553563412167094279067367356047417077128836270793065598014678225574538169439894264164154475230457409999181872458079941069827573278056233433323063315186000581177713217021841298338454457860925668927202821690405956661240128705449332119395417137609805496670630836525631886624051924086027229491925537082584608504174554095887222923707673172160667483269656529150308041320196724085725100969434963172648103402539605520089560385064079668101137653980666772190609402459365784061070591492158039798182231910075917193515531387408888858768633722618940362382994911729263508123539025005533373517165001132317958831752696750867442649013154272106146449003901035071817401237367395783039740594085389410110663697560512362704198504509175118212540817545201961553225932740970093172132775296617559217859209685424853828107832635081823918276320003420527513208005503062674939056988100426764314227893048078628642517744735863370085484635908797434793461316269562694998296301024636626214968144415257821627965315591799101537551083574179275263232719206896575751406887642772203380504819943721750118758646833894111432950847493360478364588015642973838873987390927996593249294471181237064744962364707388839107435625318326626970935171531541507819900451455642618064011811527392800776077028513270254674859761022899605703734469802565862422549760294087828816999507390561304059436325499886364177030863400141759776935536521690649582411033070752750167413162328900438395220948829967651945471792623538397747891364228106684231153822785277219674108973828229022901609011650665919824006980789393121582916393413718360551066131074846117909328490392719957191899679335514229871736506381469530894801164942152812038437725765825505083617762541787347418248266111611963204151920527361081203949488165503378525601159097120986470794578226914088929945964184135195086756846866870605479776163278216266308182918194905326731405830388935901142274397797121803651553464974194322273696946322155038546636270506410145420563642317667944677835207266829759866762255515292314168485518062721415518904933409041609622781256452573050779911425601765929913229224158655922518632675050236209324456175170920882577971761876633887148957993163923820411318350376277379977135502129267064583545257948890397620629364725262539237788671494021372170146523838034638887828694660716693332644271094691596481949276784323107878041261929043380371457110077548254244004570644855015778058775958952789633309686469142666539768328985222191950222559483605272605531346863466690749398198940114015764338452865556462588476718562524910834719621201318114831877937286097928592395942334993403030176505743958513970855643920988883459658589345635607624020670832273776816847912394883658479954520715823969215156655777836620348019747179065988157003613865634051564674655699116463480975756868868313093618559695249299464074434872558323698637021375254881999376423393241123880232646790319841230617801848355134579307867289653060571524364864391908863500998767529279295340806422008889245115956901459036394911243419939974305092152680536170240941374932776674763909131237587399418604642277126735404194001274539316481097418936649089104399234110361395282463154860165847125091137675242456578618673058866015153119040304943023516765800354493694042324551700520796555366235666298343823257450052734081447075291824074579664578954180085378451811900228421019654805662201218567034291583046533591877900611143925940500959057638349097738032697777452975365633632410232900364159172143923172228383611292846151321218759712153956569204201238046202260975682709378211163783072092753429312405608112300597010800711296891461612940568533623703497346903195876908576571294307157603702509734294783850991993870333615863255995827863162108726521110634226259386078875220346379726113293561099844855115918123766347714733293443890205908480213234472414071925198109891699484518933837108993484883157082917395590849307363729943673384881425816208758937075256304088451574247193423547916390246644237644257460436863009641816550542046166364419706500880979759696076300828666002216446804596286451086765977188326719315664673703210720748755037450117770596352211847018149398708970980754143275581490659642511073783213944156848149911176654745546244332816389121604672328823740938274369586096667510829422753881283886906402575265114858462843531383740111030063932802128017429517191158165571768569119814829775194159088370496117179059463038891944272934826848098121514238672299534983518826430999692268783833065897361519918818166816510377965916761505813181638587609995542483887420645633961592742537930742929452551625033378006710954106836557700020751486400411089967918446880700611083274656879677136680726024844809572173943647964693664529413740724504871597122827458982337931760197679900668561406075347417049459376438083495869285284417496662778855106376331968897535906555866498038459475606727724974653316225112425605570578084576611753809307606749014461815589989452713045311399236751638220242696097478070893630778882429111236306337537786741081670275650736677714050289572777193496677557450390196481730292298656457040688886715235169320677874167001346792647258482780933402202196050300798766555171979912024895982857329631812342688256946758241352255001924933166955314395562060123774371726496575371517101789549984015731993903018862839264853676946729419895110836291475562155885491416348408188205710772088040892163007597867766209858578328233920547489207693733875996770519776120828917346879510154552587709819408283773993873362438138524273863376771714057193454345297091766337479024380096078716954258584426574370082598521931077582993484911774863067765512924457690846880150475076029358673821954481659354470226245191498665386951549228295754482007056083328564042058582646451834915502317229960941726680702590459068710245574105055270446147933981393338085452886410425678918923902891388067908992265125884014786072798690683798891482965679910934992927300060879784204635427150299859890684301007376344052922862247590276573449079608245206854803562461629388983723633708232388649589722206527481678034634447384405990637084898733410236600107286007010483687060202455371594788842969232296713378464960777872234702691850300694320975524167564386044490669109453421570639975069712144317331782039723497891548520489334678356063764926461347484301643183349961739513012317244901512163670279815759204517698675261563716055196116341588681314251122820430965026141777206763587581380809667563255919881997948753256439834625234830979257986690759696091608771221765968303201350998226376182996623661018516762797627332175458840861699145495934158284366513408660630080321554680996695899059118320245131999740688140883799567313211073799394507278042788150545292528903378027728499781446799122742834374068735684120570235792428333862910971878548278889234663869681499743855076596145069986251411261067921088705258621097259934061970948699103395325778313810289751463732347327501940751900594950220412908184371517021112041607714683093895542802595548076067451813424119904475135613436912012905891999122757747750047246702564466122288114000463695173905212187389389052556316552353365758260614531631092918495961610744849726371021783755135907200897605423142120217490050461065416605257812773955735585235295786648228926680110826372669540821468682693748522434932978006955266436118193747907463831487533078559280670947965666385616926878276202596537214411391153512407762572519118983550231342027772681738512882397557894629264548023462288680411085034709330289213856926065180236341674755306434855840441644818060041435271328608558158657666781821483716246392183541041651751688621631156425471288324457147983740228511461953409309906124404366530938274964822474456603917736606288679331515262207474413161115941473883949106658212024981181967076796141069550227353404318463151763411951686752035189820226462725420229832360462282306121298210576710243633648044134554571853651685248597561677119378113506274385250949540386149870572247712972266469239387892383254947251927804286846031730479009073188255462223514459452667129239383286917626780678532654436007296729384631868281754138110339251300454927316401062171623615711930602185677593422105352905018840223177119892656395536991195554194549002518155147583262328448894656845093543457983506763005116450243953075811230480296281166437529332188406098157502120046744574236602416335922723155553953415876443223039921095010316632251063693857841344126842780395361685841731960403635931192923737787547687255259760798297005032357172239454299425513403642522635270173780015109628294147495773969789808422824163370292210075859171967455143394897906187977646618494185121317020264811416525698095461227136816786190436610733099310657801631238161595374218395699556030091121573706963641555408211997061809419744435039089149199176323372756163989260741808716001117499814975480792582708020649354500109857888628030095953989777205805045299331155782259697704396776654291101530551236396054714985429420040978020705987723486397767067314925370725256064127052732969587226197923795453377369817598928514495257135869438664547733293830563130869265643584541409336324816116379684190623301275467188254641245227845801750043263688342220493380451289975588190461872304489486081832116938422750714136073263689243682081662528446576222235399393217302617159233856369183243217770614036378302457907171679470740201530846054041645893076797393532685681437289130964348189744578466334215222321485642880519589782963739886409224424587488970214335250102238931138072965584977237084318406242473676689149173473477629365493561998199612007711896070658654502726260090463647467156010705303600618755324730648284016341019833160830742759309255631282951500242854926869496362105712126318181951542645511994591121433253388519719357197052514898052735890812313630752688445294710146986409959716565651200869935665637506700343950890718944107785566156019454855196343184944874314917306529742591318382981319254456256715349064276345252158705614415500193513976202792465746959016428704119837282649846198219748526084114735659046589114649024953032262515020332369242413246725670361848449604829184715194593200602005504428297084203899518356114841046932664307140674206093771595363998639687792199056292058228381825969878784806005281819958039221990606360068688995777873719824103485370236856114181217904320734779539479271980040303446788979221155384614538796384124491464333130751438769897891501752949033536331641209883105290448581367461953228627476891266910423647862930475628369873833078121265253478006322467754432588723819658608377840973203726649923107637231651703428925374171911865193252278327720197885932833767446045510545767610033826694531857195322443909126935455403939522155793994894697215215682442199617417822135312991741846761662135961199464691696664505858094881005531418601198763416536554410143894293705589871922106947290616375718603620118589313240299927164480682756435399808719372376263548844087092228641898558720127003885378943258885335635612963146333210422099382734607319922437830093104514660949258799634521241253747817579086952207505208556124964516998522852483034794249808147343728342319783099142855720932165352044266860282222306265961929457759543190986450054069602029804138189879354282282923982786121190513385423456058522643781622712753652481563280046602219748111855490848669186346548606124223250203539805745792497242249559280144190030119475783263220197653741078574253553871239569931276691112550780372748962638454215710236351667069723034739173523641366276600946622833111725755361811179670737097000546511187378076481803470167751751024423659421974759167854890236893265158981207468166177222027642886973662179467015718344425628693148829450494076015282132150007886175452556275623089865387116778394943175427084741958570831200075910981827954135296791793813081616024494473770088966492559487618381821853451959664857764108173812819028302969086436829456506470287558924775295002767788005520775926457783445353147622940973724876947883487758992652585559242940805495982857794351227627918626562837871018042341105930523477501916444601302614118939070654773901992349324979889563439752615308070001642927599479478480761893535865020955167570585101890379003385122368492328359308690877909334965465794434668178549963149669510216086445580479782997006188519642118401885136621611816621735172671467577945093949302674038004921851247827469062819659079829304223348835049430292784235032685794532372446937772158687592688633858222774097660488424728518271610277342359704178907922283336538869070441706260935619644053558402359408507388133446043549172650857122039426071453703183235821064861744901786265364545923718798010116236675434754410918739342082452091983391733030604667685425656333259567766010705783206155969576750236614565602203721196397196648547486410087190004503722960632633704283694667992106522121131504342606685050629278449329876643170911055122833465657321268790277615524677685339725483194045918268949791578578413916438400915006284772706785800988702092060719141629463110966159171880624012128609883917758961629632625687158184875612443785746472048081821027233735703687820481041203161201252000156992668711982024039098776110456629812259682504693995825291193999493488372244987910516129474581433554853610883284490667468606370923581457151077977296304049378721498262683889513457395527732030387204942649485756991555070301913416087706701374312001710282078791366111739721042827134140975801807095360076134136194259491397091350586655593366709224660845208502343017546098866635437696629163468795131434242442799842911210964537090021035641664407121356731913430234421722188466613399081229372930717266728674028176218374080777604063796679032892921279061388415803712045471310678743094280163795974057649562550030116542999592441645704083825508289011233817940050444128187322869201323363644662181050249423710185843870872334344381617042853681454422143244438829243683775265004754431966998717624442648512253623330620631261954830887439156142270340882751858452584652727699814954571101957528940669370810559173627561816317168086343155248304717144028586947302997088259655190418792150869617572883812852538231914556527021028515156614978861118826043585971762114398283945812244436653055636816833559299164317061576567260016278848248247099230511547552750224595827331776240327798894512471782850703369346787649630687501601251295230381778476440512785667799024769962666481327702180537043074848783037322794279082451568439629749161349170288565034043221766901621083763768114185837973421959251425182133598108361774535176778953553014047922698728811085902448421877418540456513183266335281734151104239831655161153057207204556566100356581005047200553356959964946504445575611780710299414057208085276317925743057378454019140420257719819807364091846517536010507708103297192919055452896751285621882954374163081037667601013942699696697766648294179254742921051673258833009819287322052770033679125074876714308829314560650110961341066051730004928911173400346899454668275147626875931293800482606413306445454866532769126289795242613764842204703939024357429407138233311801368262258473390591284123103689089362643817224750143477312363651967357138920573224992885991521991941818175028198312865575123851148486291568124747953575594587950950413332475819842103127442890336509705344016028270570603513044267070603112518493604777635228774763606425847020883628154415884140261845357873003413838597262418141759664498382782865547333613767015505770836036788465306554990591457244632112440302404465888577398857712437619626741765361394973559617955218457086849826256938571026603523671607357053905403743088759468185161936873222135707774913190139829581746976733644410321725850148392322206336487926164524118181631764500768706091359378471211176312409945432528308773972581575505140343010440710470184779535942353029439380835471089374977833552337841563443249366781258186038000051596265626821808209316745965214260387819914855622664183105624427930463218242564630016606923545504668155320843616014980211669655682289505094964938503454440642709924919067460678523305218785096474249582359087154490278938519082549716006743183465766931392395356215389816756740757622556292957335758549672262857843627303685994874245590700305236400253892357739904611640469093059060248876331178486860819567010270910556388315199955329945332681100574861990309379254069741999943064790943633155468923990339269282707569617757397973396544337175894610675747510647301178017263564597037649614076016572576170490397889665903368440427340435853564968081803018811495888814104005572413102765996428931289815461403839123974930895695068202320486391647985061088829874743729314498567154502403008767218670224254483830352297840582206729585198858633669034183167703854813186811072902787460543510958624460445917304544559322277076967037245749481801374936192501709326690023841263201128738180213120929469474334953710938989052754566514159014902793714385094959263487837835507093407160856009896756310864344557049510506717213422283708212643606913135364010570282032567888332470766857479221729299934042104229221963663485955905256848618871709006554030620678548650218852868837610932707716394165269664913580809509588111049114430256705002977046998532664629023720105072518947233180888836326158904056144383541916999603889306900909940781521191679489227527287349810456753005290302479036797445735417817058408919726219649689353570743483430663916596990834211393612917030714648592298315571646073074608257365580813826949495950042907728376749165487280232991585643679675463901408136311508617604173539408492722142166863468120789859721071534284455868347907836591619723175661860441809736371593840962298304389972362498116972083822750290602301324853941854992174125126284563083218472019857585170721747794212273978045347977601636158886991929833119143663858946257815198285963810974734345639160362670059074135672868493676326912200817863778593936854535873531918766666237332729781558760976316184925574344171710192058505848607636882903574008714351102522912845479074327380357293901774638460239542529910115645084771371563328142605135605078372116042586097155570936750256344081971982994802304210283948566038410902785701897212126189353895438227078098818837008343750835767524630580211352278643813574997633523079761367875377487758880698974514070061398552986316827525823307413924934260328830616395664321947082275946272607245101932661874158392700103350455042260670951556532200840143990391025140474455079109315553748176908900731804035069699578407558172303552513173483197926077903057474318349192723923624640067576080557702368768220356540625747433085111584035288143134605353047233634086510679276943615323857994803047258994640703845141862471533549842360374950954964338583243621539763605114562122580512422040112236804274665528045874002041841116212481092683758890941903103390657998283169575810607637084556011213147156554985887008318819958211880899485852387681387090417523694980668910549229169680958387328596236703049559998722001046239994606219750072101740415817638084241805198294298423118461197995083960220546608701296632400994809468577312676609344492430114777918545351177689364881231020899824204227018024010343553284145149659415578471985742765049559774999467968424287192257717689297668407053320866834859026867388362115626070914027629533326786794901444364184374317793092159021473738638046598887896876415812566212111944257242140209595989893650867174012715792829760132508127116313081065517487118221214488822357448294129517945736955398374658775794858892316479715493494343324025029471933812463027597422240724489272751060640684888727088260801469144257320446183224541630338726237671091687770535581465055568975768764949131028134625729157218706845812574790627840762529436622667434254643089497041463867270839313916883800403327612461380455675921062132216953556724884454280414991056415121513817605015498106417803113578332251571193045077786441512406873829541085487916171731722982763343342912357336402147705649021334482122040439128906806022175462253520950755709783908554448422710846101216623763767381432783443594931125184035820368165207048960249277265182028827412904161685000961516503077877658840097178115338012425848350390685188805487926070272290492260958408778380851482870973630620347500721514003577697948019551317847105953051177126898050549697292796389342254542064465844648025590742165429843608047017213035399374605711060594951019151984778105874089875616713222971861427539960363028062148341035679275001409597008168772673173187597858381300624069025968979941518668460238493169313887295429991739173435481953213659510507599649769705903551593949836345818520742779823069572409857921083518409547408123801452294729926124006041685173316443567557084473424549257185193458802662163019271205487983199658922301257794501734161781873228594077270478368673462885430956101404837897684213197503090570074125673466861345587573172050198703389253194010264384935569526131473717420552853895604124889332504959045122825027673243126378292754676560124907272292490762570399460243407329971522563549865934241244408171564486888328124386003097959544378926369758374712309416321274917103378053061952618009306307863172301622244332206825037139182590803415965059168665098656766515763250442915945157228168161642278076145436455483406236178522998953301166782261678915181180976279229218304480130970196969496876910886029798419762537833200923220319572372448055231500898918768891398034488238512927237505661741235343756691713689534961491568632833731134295007068451323902004336108063387327373677890326137349823667646929711247529390406671478668310280074997187871529834071715249468736151879132237050319353646029491927805388866145545503129845212878985423756050427905035692505027338933370146174751680924862045506789581500323956516863151742964186264441897797678847775861874741895027411404310016090104846761689269755837102386532768287206498288145171506349149863492902302632043508403922688472991910928624617075903156573596847473591107367036978208883375586727452005043295501902956694546383269119489724657354806842000413757281345387453685412292265142749292414720061201626097584325734310021302990169881731300787989312242306138454190074866389015175244682941306652801818034746364868288244439113634556169249003437403798428507941137768826677218662808658754976091974750291221351078446440562579628257516986059930720153851897961275927460814472440845024692285046628973262023501673570986491466869984452992769031881618023345097697634775320927158901923748481517080981341344503536600450533231187818405568857785188243468017250209943207207417549738169742389909347339930134224640830575388870811418541745239476538716268975910355618059707969886517474378231505231585712921263399894626127151685268480103790072400252395611120648453393882592348943311326576771274117247110471248727297652675277227476649059473383231481887453974516585862580177424760755629364703815563037552835031554230964454012765040272349309525947362045956395076745706717626612666171568543718067193484650947505793092486284661518044930567053017365502435928232797973732243057910521098424900565491435929868484447552371531050180788758184403814240472952153230056368643859345751166663898167601867504024767146863470171083708129812063907328723280146363673880777167734863716838347068296426437772231986029337325129341915483414894080522979437043508421507964254535320645650635301383679318551626941417763856053765063400900817634109609167485947039067629444424292742789568378201108046823735438308043172046700271041531546553991018762954087793484114982332289211064319420269248572386674112944953371835903648609830837564933719360028582921332585913605707014568183665868424809727952726258024946338353459805783029649857215826811821027975908761987468873407548385382529675555750245740295162838067219406993590780334465313357055624632435116307848107408616431949238174701074449838896464615197387191860232964132144263053926125937276571131756326440647703173205553672853071048916122234903816977810520105409400131707227970445293375808751464361669739676296963002039723322541654948952924511165849102304877419620118014927870208579736888738077306792421461238340848420012104386327410318179524840600547592482835494762277533620523477212845608551750682887002517658798048194347553182686300971698110591297615164062957530196012939576592121761516653701861356391458901614065620812338512010110722330055078096122279836480230925430639412990852162135594475476071087990074342182327768098623077370779597837893533281447744590602544989170199804293550086653644236153409940835601044253927499293275523118963201203572765097496889846741583208109852950880636947608356369104659797250874483285926230254542049047940437577791292251771248306619429879348116773600503245639354131681427717412244292046374090938249808000767338225461013417208981787094876004007152988564819887674975238982884815294107863343811300082173728812030833726584834863455411152211480230367834068238612866232864587583851610437540550613736221634417300612395534323869960512934524912763448996881652144936272133792543456314334298896206230838517902946953075116468800344768191643778297219310607087319590342308190541054551716309242276982672685085593974464570779317736864804254762082601415775048630758461403311959736988349048057825003173843376861752554666704360023654238559431248237707211424131814942220527202472894340758056040928358452747616918267228052927192188218935658951786088151162986803685640773304432374609743583764279470411289366654420565283275525484875214232342670737356545862523059235638057145283964010286902393038341467631656570857877660292904373830106982835551819570456510598410832508812406079979702749298325822439804210229150100819869053989822416071075680331420150070470643753398009182157045116254876540365255690549605911163856174802355911256195600548396855226460969854994561202811795725214959959294512661673258461001068969339870239314402860193083167452995525406849107573624645345826927750913067516251678837134122640002079229873654447341087046744268266946741797116543349671110236797890633229943007950732130709689425076093300458190369640105657054663129294768995401761791744733782934877581626839452263237962383865574882330636937920342903824801645242858055902899166628855499741610880531511135608265259030171874029671481487409372530648939755830449846131487551576817424076407878590661618532696444165678367966808108171509040425119254256538939778100247372026487159427569931157843040937259480803307457703818443431184612172081280870318448374276692006326165962304486732131556736436521322142427044213492217392360937469102860536603158145886858625811355964030750866326258463689467544104744607442528911155303303646966094400294142194884907771621748499050557012074851289307542742242120415340474244875706813820484822625900925012305881742923644270424174866423187508236828860076131643186738443576519529674282236892985285279665156594818333545854258724137497359667383032262613486020625812847194974783441582160230437963401989832215114897044715886791620563184357587900634449578531940825805435959918696404467645363759053749497973488213957536228542693141981715258936783727707809786055062376976211871936534255545414404645958528549348718198993711807819932899315786067706856742558015680312359391744003306144540114020041471498011063057692114629406866161431799625100862017861571418103287207292501193248827615345306467775245259869446033128578871247351658946603280764516028590481240746257243385137606673190027790562490408203854855938308100223392383453659192630763154491219034023731899326231371909432642486115375327932440006375763958937507709309529446476405154620680636544040514546303193178734383980561427441701266516778234101578537532309719407298188376600278648470650278477822492546857089644059522956839962096021393397302800450930235801733423040034519985358761224033046489991743573546802274636774643672509805192182387227695329923669566974357286140613976698747034912707294682212591917540845143967244894810093421029053796164414102289196394356124204465281588234099427822573048130576801994570847343018236585700946601829824400373697826549620069636081641499728658437026535280355260647975440994447157564881438647219255060379702831947221445069303285306090725423537837574490861033463089298101429309373014710932607155973612462624375623622884355581685190211755148533926937198278209559502670830586009752377963123078832334120965212996573472076104584239153394879929437140000064725749166238950706964174534071436987731417814171381633680215553809234548212354218392863191858528755582933330774017397389752546857608643245592230147540710880475390977309977131171501775667620751479003746794161493418543308372077495782896044592594753024868293552273025339193296959014733051411159417488209325175439482019632624036230335724715702693737813531953943897474257919057938891143942257230501000135932883479437264563882228657979962262048477194031811737939761257208244620823371233760466134851347014962182947266925639062260284092928809745313136648324697242243145115105932859073771919334110426749738697806091150159488755553794690368560893246822519983924143356499487085017260137144201646695923566243118791189558269985457334378336180875542015209184470489596768564543785086362649127416626977617031530134999872390629770452681779960187768225692001773871814462674580440399695329580832380252058140898541322105190821343784410034413593615534148787858487488704162059811484974386189866770211066738333882547139415169287411897326821858743613106018319688057228318214327107951539922462232410354780369861239430893530299075132733813900359068312309422044933460830106792057246196414690287887139058130984972764584379231590324680390640258593579228934886719419314948352306537064285742499778956625873198379830772182499325152368614502331237966128022494931766110089355780825282867573031927823923296572487341668359716335171905578606948411782591502040814586799610732036343784163637965588245630407823358921315191744568681536125283533115593684879212073289850622843861688457911506945205622340912572906581635718815726614791157124802857905819581328806975057071674423903415920283482687083463533217220032748830413755655929272448691598222734542541935836885562024714524378147421510159081093385867681347945825000591410455293222692275207055274302830541313068962177147586992549305187666675498599015002016381077413138914033243927741934148586385520130403468386513489859476872969795439757920554252105478454468297225097894194732428161620824466477038238896587890361152910520771653770202280974494979196166666749037749844934834545191927788089480946778670216476078253910257296841991008664628492110877077257021128749184068682129298532500628549680119220474175342831785998911124170009810757061210479812823994753782363532508028427885050138933998167474821482728508879746488759762883220041381878821660752567366114677097406091831156326559489857645596850176168012210821608049403921614028452642641013667980458167445333514756267305488945022140130332283431399908175835958589194736738755091793717198133758244516969497304799678668996155656725210525906108819996004365961358177770841091987820273266593107169028985196858601173047312079038090759685286906872038275349077778764927693728654843291675966227971630573078412190610188429383058515494070803971263520901022181309161753958195746609784417992515094211995368930165488067642924246116890125501093357531111344477902423851385917400306538032135797024960205015089010957439347294526492891560920782397566841804204722138239870412232937197452970250335285839399873117104907056451346626882562547838710242211881052318796000252268777669054973688817670164948924645105964802825627022112485181855124381479918347858405344399123760599953342518135236781307858850329386303401135056805606407057760051230219905396385127928811047078549927259486282283845927770314033092535366870639667633109620063443762565812436007295199376086528648172292074128605314363196946477685247690720513739227726559572303901679011566396658179964015316118608645092474394857093667830182992911586578408550964305673805554753784790465287013308227582163172363358015504301109212509913744940251991596467236581149674191507263262703296975912797257133703961688561285594337239896836236213935726692382139331206095653420239511362248906021380662574274073490531936077454963781159284829216140763512772799738070493585449112205167567553643360997238864843464542722465075084680344581541280270780763684941159754293129779843820114604727709064792382481397837653263602352810093182230135209489655512819221071625003505302579734807809054766548988452960827890522799416892040008073043159885436181438263091985266729335207796905638954461537211329581989698644799611647565730761982825932864921022974013158553614884011587256057552270887303694815082794889600608186821926699485581211199653148449748857653179933391238146116194773906981061799838077386599292718520149616051152875820587474051605671139118164455760961164133304506646550360090936003103747484253937823105898588410637342744441693593313468074035018551657356904545746608246004725587633268587558941548897160682251579993856906386248536803626092376017430466080711811030457478086484741689110594011697479302921923685641479079032305735175232701016567593308134476182184441280930155008946003451734837329814852945139183520644942450435181049140364246181934924168050349049201434100834807402531194274740547200049788363190945664939851981591027237019172204481380379472399908325933805513970134987141324987076372934624439399192245482222244148084312471810117088166179580238800619936446153090501279458031383797679766150508148797847440731364819378367104565875320793511548331086247714775569058622225521572028264690197013273935618376110372471948455611683856202158460965062536335777370781040137495965584094516620396710973326386107273781569089873255545916945769790449505686600443763056881706130163616544739647260204486686063416616484591258437678941509494432897408879665500618987671907167267745445124753538034432608854166003501021087401348493144300987124432376686781871226875363580406458906796522456049229486639643774032163202406775827366076845939710277979191211219865945991657949656043163779922609953668330251421704898275733210847502924679476407377508095800628704998910552317797658983609516813382807207691886440389352555347651627540684605164511194549369101804366549538336011828501680868805386249573881774471838777655145058074382165861151408818306773119368641948835760264726617962184197027374348881890607033869282710797067358327327664027097148921816992408446574868508394352065948151247888004428261629251543243061604866835484051489447573296803614630827075908302897559406795263976161797816756521399009295959375997574896649482646864185756462149121094445869043619829856855733771375211432058314313232205182718340558056963594127166019277970503801954034963365858134912132868688661050031201880537886207924729755836766615255584484479943591677529682377787102554392807102505309461117713949774138131812131924201611110011158485549648223543362091164707937881890702236451381050933479782789902975274181635021717604871218938989500703596747732175915909289187275510957935450787401014778744249217686584741385243800498456436612377378491091840897080633614151288782633165835085952845506350390091180418228860381234257144599994698226702031347196219369098915506061641266647152950480633890850749580286032198719271698177531324770765495717347192731068194690108956914335247810610706341659060925354212494979038779930553602505840732759663122962629572426871461106902742239800685729836186591945373071578385650020388358080065640313388765842681387099591518749063934508571725129985184718006477487963242176405125531555509055028508672947147018040517253036566131101732636507132761144657104755429452601008528130965237916320026644471850193137214242649727563931620672899316546999160679706177685122619967744962659754177585877433628239724254786527119993734788816555818221648308015305342580523309181682005020035443142733840945907381983708418526016953031472360009791261728140790069752355462304734811977839817382418315751761026834824045807529676646880778656838824922497314112144951402654793855683245714743928937713757864045888493895943891762152699007887004650370251222863768617144457744070359722498649460250346185967147700810173411579313988628100511973979418458231281946075804747227070196212275390644370281360401174152881057890016093519582257871806991563212275937537848156162111147288461003038665710291346210707239153402652318911194537935740424283683290099125963360682393170231048043067794319508638683080827161464985866398948044216064006453975030003738979376677502581870978273746449398210349960180668123143472063750503938941828273265681145362056140768210649386941041070574793747582086145497282135018770490205579974567646599853322029387417391721407158292738538487590105556083466859325590305140927829792803265552749851039652865155043364039353276816775604822220053392429327191031931704319317841897064706632313310294657138381726161202201294882705065221642139034922572711240401810514212410702573009247320050561941983920762543111438840971596450561530287921676307822455108027862581970815747571104945952461119949934992676114401255692610756644605195175444329426251422450030498929795069057078077060764734376369175004090421482691496538450185122456212279496775628605456863258266246966402542849607165746496531222350091260289462700017293179374490854864809111564945730385599454888036933017254473677365478483598171140043823073278724922587619989536122682879881742683016169135500061550181841141503931282064121860460112279774211369900306456051412112865592264752823664432612658330053288059295714714893429606104593082297629500209243208355004751299239090091372764359538240519018646099602356074912314068314016099646451994691830774895666197438075040672328104222217946842832069513861709379633065189120269355870167600705634112171014608673683272787468940802680439893087053094299569390273833909394517113140142867877329454102509093331548183103060434753259726009784782574085794483011686492430061086671739278307517708488252775781713764821203577626600842326803470492364767367884548009564260516360365208193813804601196328212416788459910179089095555686988461977727779765024498774626951675558932413286322628365112602707557530918549606584335982626950765356099298366924266753132838494488282520542725202296018024747974902146748014672099325050088555754029860706711619585010315444033939229700532686771576487110735486076594797604997828537380293215336909077741467810584260088710317571260966468632081999482391891457165761261359239156545889731433621786694873140107553063403434973316104850331130936405131091352061641671127034937447403164680653968479163063812363152612162230395674563973946872517986995805436552986451374006067316845496946389027897880321786232906987202229506970057552233511543154686438667767539144518491464180978374025392013925100288152688949981887664846704420144944950843516936256407884662280326710255069252848702543041088438627952878872874984325913942970027311445439029538186945431194771276193610728543830465320644499362647280907185990089775385347512001384308045054614050196347999738628248528838982474286531502737842746413427839405390676951897043486061244151680032721658172549684016791803133499421527381488568367291292069229063841870539793488723151198003663819141097716097392224421287576869149823053454346782133094364215426110366070668229301557322857743911750775526868796625265184184453616236574865921629638879727157132265632277834099206671032044052434895365159703361430594588760509586633491231101987513671939045098876017504389854227376280575639377539890352020174687838588443635345212068691247872733298442728390928096811118952585395745609600325388605601611287714580388346523288451530549806124645850385669178603830766452385945211245276540781685387345915564271640052627647592449625128817027245901538187448400270988160648354884848550696796750359462800578714871075507797479943424838707878324523527740220812140386826478134797280335841745886395335506442120595325365610916273570028227652494382169613310935388377119926225985544203617693378975889908391816631758288165404818066655896909360970226627725659996482923392071817168137699933325151695737765998446337717886142074206661984356112630094517534262451069973999832294788061712004188136504526504652626367565150536585645049149285913713724700896714704301093186102853426994358357095418868305604200268456872272617537155386881744520485704648926322759267416369638168477385964140574658654161333280182843999081521311645534602186845620279195087360986683738955704439393912518007880985843550265142840054980129598483375332564747745189928676364035339351775833175254600961817627300558416820990867317824197502740063288010694166388564859377817701040029670000105047495467217720727988786243286522202934446606100254865025116368113415037318561101868794911092556965203010167923155759245713284366233402958584698731841232833294531389412441644044208531449294555969385546810171083803861676745923340634380175483322260017355858296035264319189474236446803043305458656057188364709946206091395099815647496408301462421149604014664963055125348952611050320576484008240041807272176326041560943621688789475687851510555647541486974812086462688183211009006854308558571200840373959452138784785658180600402977416503082271590133176376242911682453060544353377089610338277970889670804036895239667996236213738998591886571208903158725027214737789485498775194931375653317808394569150296486105101565835403049939858659657082662244548566221625404383730087932411808204400226758497175171724160328015931666303377223194487463849304990753069382351466212597632047684765755349969015784723238873742890661451431208152660150315408787840334700898107448779437767188666086711391528173698244599334893332784551031231930762630063207903728291075955372748654605842760322096886802268676524756208807710320229503671248093729538306161790708204949721100694122789407504954896727757520000515535616734981696453444924143802142297810350512520018893501870412069548823216479853913597146166310489424979671157726675889511190813056255068567330377198667222668621072770117738899823331950293902008861450699954360574060331615391711603736611942650374055227065974741609505033932440402187929172787806578102401130553051702129117281657617425941295746719802692032783246327709893997186416145930229968827519178516540486006762527166964362395264239278022885184072430541858763878606335446325394057276934133907329137050792306668495289820544085400970269283063466479462030938494989860544525013552080655823217045538497155702782215664890680705642690306788285813391688891107020712833111934541490083705456297612746596192381040826560690775578671822707518784672002861866002686697622564780449783363024837341539056968784600630821875854934677753498607490411051132261755142544102140318711352960465275496073866622220493224639059744471129188192668917507804844655743320464250364034601577858190648680250104426069983566122757770473597519286307455833248308732655902815082820841771872044573987873986395360346506436737176384347455152537493290305380442621419201666660493176806626414426051003533440825680118997099620454293247533561674179201525613043213207858379665033181756125036294312513863353493668533125023965556078091698624503019161672180848927846469272581083872280701499006358411179691879852471537857200600906787238298347779062214447365422548298938299411748488499385528085673500162975642429885000707297931175811716847254191339115080522531432011818532285443755161688527569852600163383055049651381772670483559769171486377649773714234494220362501759767025368424413810050394147839605789279754989927091876142387796214573747887215997294797540720014138905227613877255347262067532605212919845407120673872503625256394726256666551263187007779605768503305779771829175825731138441747883814157513386692960496642343450519296030284732262695728469803886373594513316009695408507355518239165533191983060981675907441194622499941164857950526063278972607455304986220273010337462197603384111109029406151695453981643913079373405166535745090045590831064301823943043640842408881813727328694096486904660390344800390503713425487410716570690767590366365633757477364657989155013191654743408326897238364978554307984680585346726109988824726751358429826260440222868352758006659704009046045688596263097887218626754136888414952478491397659785569918984262248093427076096421394397048442010325628693438406425700668577046609827877975045469224330268949681099012456560953631736895796218897565028295217970079133620484653281117153668553558931520803825817523933779373352836629400838002258208160593441666716547709645081775768101432723602107975523738517517496607813141014562184883340249761413537325405295732191049160595499235424126575032167782702579043303472757367253761730329103237101705910662820776145688858201417142468318978610826028879766869500377452586234747928685439623616483396915280629551545119468222300015567166654054180241021205946755017124219584697868231313832159416074956300621188351184316618207918275738441844249087419232341934571125248258778445806848537371589987231895477873759318423427787442055475871733859121481734259576850423750139643624555901976271768757608322324964079184986117160088722328589951985715038820347055881295165455564356544368280584936583255357523429366734828191556510653413417751787491416602830951729525228810149952056965453198115644179282040368748205966597717276896842286915880448776475560275943130352495492476856071635589918319607299223024926118407965907304060863679080011241491519710755604751183859253018969022417141662163091042778113307454778423821234836282097319654796369662701427750582396530494276965682231615181779154308437549411668180735331909866537648199534964397607381627196427499743024913393734788072460322338687031402976925131474834740402671593503869138433965016396982007053631024351213325371421311555508027196378853560814323614155416290065902086004030192986943781801386893797153371865495226205095728690101787451800657916859256675050032538739631934740503512774583115341978315663871817415095451125837655398669410675280550479089763218604860987137294322369698828577026980822378745861075495024602052929396549589947988223243345974807365163150239712096347580162890306088715836139658855222787354921192190631599519069992174864340334716968599242372187707341348445671633529160110830968780267494869435055384686474583023718314071930479237409656500048190960185426766742175465006365264412585960353183616754400005051376016518818766514609102370422062425245745006666415814981954626283341360236143005302056686480965707279572589925504668764049968675573366939255571973709981283636484940564840662152554396214526406881588254501657146822959087607899841663058356438733506424543470494780503032417486071026692799283983064491484907025264883522463469484063567396503139653609060770074824892982059600128211727283260951323968894014458999151114830434466605339964511888788279392524742429024803146901690382747135611927005906015408888004193548492042636546663327865577327559469296582444291528725348373892369641636880047006867091807441295387163820345497673270260797037520321329428431291037558791473630462860419910456779696262181937214434054377022237548593124553718943134451094271762032252692325281888826810108271815356834661723546711555775496458680656360044209537084471490731771019697934123610883313916318365765692483970645422120087869625832865332199960229653500905367374233375928599928432725116440559947010124652252255895028711806409063262118671946595175209503411274183062910542619076212376745436568601448585602098561129840367221675937146275633188873785988366074315866672204786922950019600963693916721249057063977792884623352346887345067646011531640244059731768847357646716521842663070851379663743887010380232503277201869966208305207570832131216343015505722129179480882418343163924950964101435042688129784442584734192247117807970943182474365414785496393014099829615445230585937400847411435069174424047970236213729439865051517308906396973218105528611376740492293213749149391988084138738112212254602683022620112490271366146977777063581971956399184208702491169755424476128096268492062138081840954990462587879296674933116732078385427452253262429688985598645428497576593037485834526542848208431711268502935902862231400656633607050043373125756181387516907800177140235432361873801991162200307446773606054519244722101505764491199804372401161875837056479563090777207607254553448101999224006226517788890364653448859888738675651451327481598009924328540462063936811563479760020506272764825629892550151327796472592668107484606727733940583610730687452065428240428148535927178199827087572046686500523637639457994158078493188210108375900110033366116039192818909224273963399900351081863886725196874468891778019185925959452933438126698597326094671444832952977456982844273894661031729164621451005148631561107075122948830326747804345739519043740471314339079317107791280695350209125955284555609374602427593426806797054145864110403192406713160087223470219234050647663874988807497244849906598685384422405078629928058287396509646954339101413062264317042833917907351758024247233686999234748786116805379437573569712237842990911046779964187987423288839444300600288000149537752731417950730117321294099166425441500298682042344418502830848078185897183426197574537388118216422984566514733126520302732047395962454900445338671347991027336460798703093763952425966517333788241832587149987727507476801027664126569920582870686627363911427089767053233514478916744801049637618919380075828508857968742549822695803929845934083641092634796112352948144189680806220766769070505006440261836289179970247025118158819291941753845601827592026347034807671559318205946277667866601401627271896085779489257504135175862774901964070751776139524736100794610168905395380714527981375527234009948175461692797477505740087085324465090725934855386367924624412979247714335239248795954660381387372743994318747922056504238901691032085809084289362880774137014729977530474090609870493973499214294302482799053082422503820399122276838299312309340899829216241168821765298125463075887577521566903189481872375163897106809712658072267681121367309609388145508465635741590588818493166267086914482519318510761709381576696370993114851905699037359500422031896846544888872460816851359198067908749823235275137375147353730838682345957021057491605190389618940333170218428541046732680726528385564409210907262870578670653920116971107134497488357315416564771866463252102056860269589628854678108977327777866651015473639788359573787953541468991729522221937289790316288900195211204714469169492362354700291552042765155046616243713561254423387669596340703874693200637404670051822181158979669763009295846455447155423455919513725349319424070023963145031517661787336846453693659390904098050594464484838044374507747011057187154016085313633204741359834905948090556037302545751887776818749952352060539758788024974803778288138014217185519326218732556298648765675154436132740743948318828379085657982336357467604872665033187348984591154000470971530837594253720682764540411271943006895256915494058229372201763371226496619650854982261809471098706739825637447675161913094524653932495710612557980077057442266670970367385192652211218239810305922348834718461262964092603498628319399608829826022722074606838834024261817623358702359357032923315277506701623667111969061036165474519356742238825603237529885927196853922396976450732426843404859651249073961759996360161453945779281185482638494738344765366102369181841079469792604010980851021381216757554140515856392398311955871789592357484230885692957072073016457631504437675520710127404084906283859799054669171323257606555033013135214464182525647066163676181715734111525734690660683288149950883102640179713354810820410564979203743790384599021109346550904886864291785608524549367036817221617249084094251656163342479315195826603302857582011348590075985158595254065609664117112351158642986301617435617786399944375935891206999137915380962720321325609475587934926414525484811931152154759938862109783140512820046980748705647083701793511932727297730656363670327573435295484086036862929816906123698197798080245140514740248651473614567654591066290088721319097449801994450824012978998273779194959835642878997043300139013303292305419510826335030822756796086797701327657495929760389963785570469824638122129107573102452579716064916204019036315512826361898887468753216674049790413209145618980746604685065202805970984725444158902043638200542959060180925312355087649960429661066413536406742995891724173655041828518007339354676774663493993220769294096113380862615835285846458205471846259398310812183958221252447710607852159686290715876089698913982501209806221486118410369878898658309077558501013794944386916938883865923756861295033700222273312270052367584299985950419711067483245013788444538916789120082384723230965645179754644452182643351719352160674200459046475440509197432229446201955836410186108944527730441599895399126422631112002364746524776153599178958070207305583964842197230385437388487520459587699625724543082224193913868689342462970802101681264454720472820925404614266966049594835788013247809339852063309175196443713394909254209175864569570566004871588684705103505615049259164801855880588217882799965269575951815091916534304680761485545573961044934256696422387418872766949326339976055698907392681022123490805839187581896665770401940992674741428506575682721891393037097827540881955678993639123632700523942292894832983838415892558239178487054382734281193854896032189831822301360899942184391922659660895046980664409036540601027709360386372318827082843368700018133184688535897855457982104595533731694133548189138479643113665145325593358408796771277343005101252180232462838367467864856053153854703559605215811395122556891817262245897206985167468355492885381429618108483292748098411567480355946007773816994317004488619043274850430603311561786831008652267905060000232439688139410602656216877881807537740809740406305470681248352306547832910488053509307079705663065084211231669516394870388540340792720806351368117773442964074758967271959241243240487340328630331072338224895799234214239540351541927915810977002555684385093151551416496536112544212986095105707114334349849347702705886237277596536725313834933037501658127249194200669731329695952405144930460865918970489854163485848177085675362902054054306060127399236337499368300557745627868371498882348975025635856350707125146083479076007596916063275454603975216727265510277682553594749207909068188489457287862381759201053587916881600667390559860848160793323790616265521883634817135496255602813419124663339120781062151161082628952611513374838489915953320293285620690207088518854623301430900813485902655032854993868819421184440257096161850908654799672464586038171062049067575079694322248168156211477291974836705430734754559861581428535144624059658426488261430589385432205400041543529620723043554057542300995632386904194644214639889202831214493925360779522056152615451264242128947543194340578974528448019118285847844924782466271342263100195339303478158395379826415656125971354097206154188357225611520845290119389068965614959799517159529395548276046434344020646651256556427827446592777001206252210839428571795077278800290272627264283977497202749790503264690818300570847194006188883431051395266938119341924435399804040984684607343668162363956522522802729882158178040541175636452828101585750070814532103013520934257648522640113545507851287582224746574218127384760070216584821168812186257494099774934126667370901909218380935935658998190255796469670719436861112544048424424840217314470800777863559969857151990878265830300698505098715068627861907466795373129704876238289551367512816949987316928883514962752265436146542716090202666116234541224048170998261865201661315686444046613729920399779486033538848529131113148538844099934238742622433533668321806795914907176886709639962535391399006370563358181412537834408131116232418693806922632521631544394419187689070354388515618453842183274460569245031837673323438217195481732415637484853121637552285505914057268802602285031295801396790473635974948569855484058881080266439427982142633147673984926219852917320664884666592999013579867361618583193694287054459334857266893116831095824153639053214800881058087158780553320068295847395107906488805282768902838831736924279745600515876733831042443643497264815900869909662727443564337962998337968804176900183867727085404527975801841656661391898595947577789338375227619226827125310519096087117637219315739408962339431511524944281987301922749961900846256632850728088707331231565723523235626097257622670939219020226129587188807933259978053922083916914925676224458608064267099173641440750544459244143734822913509537856912413500301405393734160198433858292817318503139802913379443495827169096511990041898635689868471156003532972927808632670847640385194881830893752555660832210426080297570943760307944811052907455107813344859299920032300129349301335443750050941880812392578239176106187228228093634701902247906568136425962952059866429024674809553429499471552775595113356003113736083507521740325924036932779561012850336967513192867230245671099991652294543251702696561111815043144071796896086059454283772188463864283573016946422931770517998375856713843558569988699769612663951674861127092800231950766095409281804461254176846683573065078296457176275241521580036644865143967026617589338880866778104462861681825440216195928181908862291460227989143148321251512132622557756872799932915824102242247275837645200825643252901414441068477700660973381049185169468780161552752878787914798549017114140794655300103545940405510697020539301003989784179471277562376420598473676544290620669064570505536329617157384976922362594585140353928299522986021524657989519802130408341080140632476446263244462154058067195434338073854529370320579383139559248758108210753197429981084744903458387208315745749421553725426173659922710090493028923123343655189988828659510816533217653727469421879686773481492338390059362467102882510451505966543996118547032874436980877758593815310619883616621356310200196097998954076601005063935765090149169605931750330319597324236252540800833307617032908928073760843333553430109864154065489093898247658136286973321909408059509912420486059947513060437322513919221033677469888526591693539216531865956901238011983060517400967204749645825431698595106843474951198482488150106355794085313791979131930409784488381332981516874068695755414059862749533985717740076766776699051005790778111762852232397045903683136730578975580267098795875047864160071526789845715078801993145806896571842640638096240725354651172797653286158153258908745268240888320005041919580606039145561021984667724983399389780741478575410474093242619818130915531100128692304318072374643974206932603989164099902945652480650998895586443064397655412963507759949428190704910171429613430433502540165827046868851394519868373249670327467066943397809142356381743359850418870899685305570677400006485821123594034789302381639826293046115263110640106664722853940804800806031353512024423470288496887141314695786221613348620868158847205124696892638148495290416472284354641341136055728245801378913242302407034086181032211084727484605345293582271777585531177661077210954936029213405310871197065158095831168746676823552494160710838072916478875148878515450498903116908959126875781700790097635645654591317155946284298664116499604177648467332822248908784226339641698311417824752561381503399255743848278339987496280523340304283509727426860108213362698197456181369175091659969638906293435582658961651398181624007436744137408252039040053652384205146451732327199388263115049298847536784799661412430171003305943297636679062912311122330401591219694189925708466080382588912006447351141737748062905238296826284707206309482352971728377371613774871581494226394780134104762023347136722771819033406368007676503906181342488438702310082123405609318372528762125445771371329909260082782369408674610064328840930015500471096585017898923606837885172811199425929710216233218729213237666808097276169645244518230585998953792906815714975666087723817407723808591490121699383070139259404608711703518479271105966869025359920577179425377712273132170346502762028414987869247603601677298826465727217247899941443949812622876668437812078390783431857575342380049085419228988230764749451655587282450115672559272119706584994301894234672522981505836028478449353997249923040232039852443216030004697749539124708812202581228460520397718317726335357844857005973442079964043949724867367270900414001957588924258798811318062425077672724082027920519124254746651255808351432346262009148780323801190946960152688160417819882660427313714325999647394709696452678890823370658521764888988284427924804677983803367826871325184533451994353039922981004390896818428676185474453974124621665998770430624610595327440658832613772512113803378697945292262182349377992773780684406524455236481683342565402075798996142516882759226896197155532304693834175567424705087467560964732385997645758607247334982289487698522120863004713463338266685151634713951243214442261229448297570789730089678390470056913162195815664445506228247507792165428367637326465512133414543460498689279095401463534101062651362737021929339756474395432206899212071835128034705020575309690325043135339912804954927177390994708829169937762100186212421909707184650658866256276512831810360711085879148449586452682360673239014978608719279314162728109656107855116930500480352053446747679742823434240279719086372822483422351282547879235261321555029667481789053176753240058055859779455572937951423015464233677177501624475408753183719925124842771823999338099639706267924096821616800796710193031074864756375424846342105063679530991885345758805236349747787779501217564851654578276134687127935831798098564139158154173457289130436178218669111148122732953340601281674705111266978465612961365454583150475836789009489257317651576217937004546773214638983828228573746990154560263336217079951952753606506958761381988312556300558861889573613902212630132058787896938556557623567223148545006956135728587003148741937286217960718301632321086385383219274542802275121519111649733142315374217634704155213875611257069727734361067952792226654645528061944385413074318448154127436233841610147053264762237058737181480800007658774298040163981937016060288623402626360324424979365690880632785290431608883061220381527515742918505947761999030428741373529421797430601688056011189407801746950284568498244283689798268153336671558425261835074696807352163785596394647222484213120885853022608599516229376807576919661250654970654544383810473236105618773885330603064231101811011637368187848592976571416243251087335456813135181502505940629696962961987223455961677304214557024289439418160283118323379189469134216502599831478565366126465746251935495050948526981157450032693311878721933801133805158776671318047665166083805113595278926571374487221785527763573251750398413034816613505471968319692511716442462682636000607874499439373188016094842737555434803773610159850236329195453259088841170899002989325502201438115529033890284761150442899487418882066107371490225385970690013434669982487517048087511446151542688799239633352736857437048581594963796787702544363568947031062733794259815769457984547642365502082090912871238145018124433805162862240115535972464875783996876407733284256495077308353179589323735489464863464338816456550082533828694702226557944878488480583721971173336232549410329478530271896099091303695586092014678346517451182561632824501861692906400823830354421460402688898855581165004430880859218282398694324619279953374070054840076949073370833735942889440614010789492834817466107594956660774489138345860767098676767579917878222568432112155347328698946264596851163579914161522023143597680953323188244671771723883879570077999801638168686034319435198046914058211958651054378343294198388094028707291777803360959109414695765958921684816073614986002037525762089056199354350131835831637128716548747142681289108425479083820519755654724887493614239660919576998362017461357162519758232386987691610210033507560175545615425780149198911000851858519454931351428251428024902108331248479333094656014171338537392088915995144466450519823832722767755668799214012965687708345764551866540534831013828616395661807715382052180924020444658319695494556238864970372227288103236518619030821078854438387611782721467034062186602468312163887003863975186477361969371875149287127700534952956683772246532911261184675555409974127655572240808219175012852700148250310854714596849212250693848608974471246853534059088462735090487243687032242142214581066578389840970925125965902112134559066984575086649677822412389230834817611673196606523511935907463208743363797343729054459646766087941500232156121149088006689913181242564549945760106945871052434260318521352587044058582607613391505053921364813880537822804636632737129214047674058182106362269439932171659805186508487296963064359082726145607347115807567675723368373690489502064519150424901244808169084120460446729268848003781498592982551993539962156653643608006897986614662829625036321102585465251890795312514341595579110223247674722835548644816800875674726382608270032532690183198067245704531990871412391780498101967217026202166042632593137470731655698975056542867831576216787499258659593052373016686163068647396105232464339716223759606609183598082608335458899652246354004479794915310336664498038720506853718249275463221619650788915986497095259780645367982422328644340549093787364557513607759587690642926904372979276631525071425305618414640835887999441726065392208382097670861989047603828939841416967717867737756310908319491820642798669461206947067199281297086619867498179838473528697000463218669516531595131427096998050032064325296090157564716255934859497682342491091624620182834744719481816036006930353884908055102192503588574839873966158901515493154173679369331617550398172731909414710306623958100427110258563792412262595941887731363017063868463704644223483322166770048807633560767914341216588345679685349495347938927764628424598156151821436424173110122194993445676496583089223675827301538617598582300020045051682611338414207964206427787540757592837086153965994213678891009726597141197090406349633536949234941834906512465868632266631065390904088543160869964271192287695845996702445133062282980783767206294359002816840966935314231199496186435663192143937116514108041750117465563776790273592287908111667533290292945130386868655956695267126989737463060203983844781592950449676504180550013049318760335749838758367019194739884636307984143032049483443147765407858070419909180111734273309330104965016410976947633750208167834631579119271814244369420553628993670213014135203605834373706539291662615203083249666355056746534677434266936391006322294753084531211308761635861568899361854670770928991087701268148711505687593814859075815984121162963110552902359539325342782733931715220642057003240561809232434062883776830747640796182339073990700512560980773607280543995985786046876491533435771384624888998848482110036995090565333412747586600633526819578833754872076599953592064968377248118743372011994042685538035055564809103156551127006043331164769777169284574485060649373677799184766545244461025615652019508149430781061534310054648541109512249202349823237175053646614926624185111062364618542901191428155750504810862917585797585106680371528872205375950666144345168945612086130166158700272172611769854490772547207830852694271168533619518842331978941371709206136041520405083901961378699111257668363896240100729908026386828205053896190119755000750009733072483525892029513453910662236944869516044316581458090174885193855791118000543776053133754124216920992279873948281901162605800314545445379379827578726714004749707502231494874842120555906030480409179252608336927578636557545651858818102177180529492117647300048283592878901415860018746209551540294544784874321418244745655652676253656266094575854754396027677208550346898784984968081716291722419893071132422372476320374954431795392471724230031142953699324067713895630055436022154500062017489687530576625699751433683425679766823530909998931449097558440753253046454881388155059787465067319251968270351467933874931485474735370633544772264904049501151986169836922995567317588916722213847762722661190633435483145834535366990909376431724973320374369453801207842636353616880496910282458690712399688468857341428647825528983370121744170320736092775921408158395978159641245922189611160205958983605724067723260348898054844492780773549570881401193085216864958924341569611148803099558445555934215891613007390849485775741082926173485745679204245119998082993548519947766054012176887241242261016454140431434089753098388305304420763938772514543678923846778445980070325779630434728794288062599102786980265297788310956017135593101864588566096941200244253398068737014444240717446567795576098847335530713922221207431056874508916591875772118891456837817239841852285391159912475381265896474660666205473693086791457720709662543331927108917575093817804056179383700428649523525755055798232793775874113240024352449765953212231958134106544312604059090546305992185726826775559722801067968701840690369901017561985646131317992319534211131907317635928301649598515453279888510172799102831181253893895429678221180090449672829429491893747078158887438362190831365299458733921315880313185781129817371625780385216274270961922375440402062830701287201918025249336137114702162703096064207233838153465873281287424525612084255304252026186231163802839199218670577779446113071028986763624898182860961049623940330313470801165891461583499305932348441117714110400616830716051908677003778444823962707240673446786299403063202743529257375540016254833694844366886157119503583054579599338558340172961351337126595115274857624636058254988767339069798031914082387414270735637345183642844451824628699698964525072950320694806831754061900831116582211305334253469025302345430678304915635705175508635349465226339991044305615625721176522992423194028177068970231696428068237434399889811218317043908961085002281379086926187697857333658610893921876014140420764838030520794539283132174072483557846128839001288516736648887094317618272259400217991053537062915562980103571139187223177362351300998457308173130409940923147494860599817184194860846566666012914032613838900242283817174664198091837614337035423575274948042222643273554909349620628149155704228618784577118972131984503051173303459369773772770174545000627794407776603299557035666972511855643193124071802715845906986339083973238079389457889155834031729650471795792056644681543220473406417429930731458498878893877998584400093620411713239791068281524537558891788746793353877062538084324283862071881150758291702015966568142250717745237176595944444099555669543323940162412241223312306169156343455827346771786630904731284495971564065838127732916246205989729710057133259030006320317886767052205266618367750849044069605847468697867687892975771052791678118347585179965985042446608198918189859987473887079596317398621259520734460360637191272138859764608737581253536729716162822749156145167992792913650226521542506330153569842840666056191914703868088649062662025088362862568378288251473816354384470623463502161287579893865987752064343736693172770153755132298395038957161476581552005186948550448351332462144039975062097343816108413221265808490148650997199781644100026370456049537462880590856268845397321555933595591783782539037823099219219645850781704839065799280490707136152305920711511529722565443921426775934725619884079495790232299205546173031797679467208609732400652258826716865786678473001967805740200517254630556733222201040497377183532897612317397400685830577428376680417477160449929013740765409488026582155641963540596155909167314677505035282701114697335784706519040605160230694883847256684286719578436794044858527882809497891757261353595868035971562145581078042140017508532193288245890979898922961730193517427015506916306044180747486632461476730548780203868297272289146736919393033531475094824107079953663892112091565886420893784425347007833886010137080243528346950365673804018720252755650517392013605590241802800291620854252102128231024666619243175762951054231260798106297029597456667085584887570668548036570251089528937596111575207005592217193691759863128097838072708611358590772124579453017117416610391747284650480107061338996807531272177803679487349715860172384402796329813710036675830943911813160330194132574224891874678569990094593779952164869354728931578163387909292540145526843792770629821927356536926263595722735330412046971467458166121022775488324890163199796598982077840271660247330987942768215820913146212418979896756788564309687626779589144734347566959703408909906186079803969813645845211089396468971199365940994299358123984951956172668117163059684077929521525180747521824122015868153091998881086217356965843428487535628067643050705003123023213454360872269932356930446625239776008731492098761426370498542077432988687212033806013476993745580670094577503831428792359695971375463768274222725896672807017240586902922252020808692613900993130126712611711011035731409788953652915592800585292389827518357463907895350948549370127478257192708112694192414647857208522448892249347960407738482225061178782467212021439493955397720063313384283864265815151662218693136937132650786031705138713557814611382691108113402640993318328028160562068620599845943483185133930316808973337177251075521595644335834769485883084836367068809479550751476986576322093660673340721196947498883151454678472073230518357372214174452835407035835532760515170789509499989187019375358970139876707942104936432233935272274944338787381393412754382461278643107498675080149220298005167675769144394445751459576364243119120465237401337908814050982899270413700790854880767605038574447809380163330332804305576207790368136761237174400631616045081703150387830801272048476455034696475208135642604900605749125125684719519718460828505357379179612941732213965650355648968904335532861502880852305855318951528782855040279796370370840516721534951591037853432869845159440621711960740769491206044545220882888127723714467987722894333792398494532772620114535464712281536720516015190229693706211153404312401466147015206811387191209515396228408389917591972184493269617265494227110075427884769046443525157994994453317169677034901723570556595867671648409243869283939168179447872989766222358447238226202043162291127053279673983158950061705318283482519341527931072394858807725759837678892998303851635587045611277619452557023080221441301667465710446517875835016678849646902730425842637638856181441827501287710716388508606969588558266871366475491975843157597940688910160951503676531735142821378948282676177038440633728911569285060274478849995950440581833820315029968850127819756400925101609964713383478368586877401607952531502537576887897917150645654017289356920457144943895643359542497390947418858958847665039664203773640066355272155577199235566815707539206628428909838020813807322181306743723949282743083034437607575912416133565797000897921095466278760076365067674769001246575659494490249963306238435891454511507969552646583227829937911942267722629047797214064848407561066865885735302246001271239356712402502161067486744531633721288947298960928927032151398133803490194864173949416040408761735002594815277800982146393311412879370106827634664084506188909894979848517434038255488485768330454808694246774165381203765584035366244108641137211828114782208789749938923028965227209796255669421172633811891214437549519458884373125678997178340241312257067858410887099188083381505856264923944416035985745000923470718024773450529852870248141933538860449028722734151216909720463872205359578253956151668965534916312650296607775921225080365614968506877249488971693827316039990380641799226753561766820216270192338216128401429581438542034871449867940757921131602548776567628810803080405607157227158263220679994137770758346197338404865655631053979328535651205322282692399422293820554893706006560150523220968876473649038054668103690128596376964390086568809525568062010365352994612798578224213993644918861648998802229311205107786770284457160205093968290547094586491478763461163528387412309915174797180423807799512921322142731362808563855215695136996602936884936209601276845528170359279871912126558964317976153066987243190637874457353321797952017006146162082389888204640620971133025215614946781928626952500772205896009569575022958358901541485815972838579287894546901551757009938216981167118920478545244598482256271596748246795311559740494525113557442392354622630084046650414365062518483616004070655957388391333537310402095989552606136447016293937159712683695476467487945118412683547367937726405186553751858245405500000845593238706313814046177876820529291595934133609003853652981402221168047150480664131201551011031058813872480905750701142242872692240847076932807133786744964245719344220269745711873050329903168506362765503229499915446992975161899171387419196823656738411254660222568459454689085528782059735117950888132287272388790451297496280672150703876564444778905447165183660120401614479091122772028982497401525881306120765411512235919966064060740611129917532429517665043390651261781652788731843833192393982075274996056199215960357885182444889424917459936295981123675182647051659052274849230808738898449150692091051435860154115840327372809526146195373085019481593639703351611852945357329314807568134533577052590175148109133041357387164200380584978464322080524406106210266158210599519458823405371786018354140063200757130827305383243318761713714162275508494582835538174160999205252048042519462044433346369724304822924708363361718013454277739572423585558296449586895168348980530199950510432905181827661393611549387407604441169769064967703521081271253652794470139765131731982981016978889125863779962749876921326584563956494229986430151743993751473492445278953954607965374280948237995714404018911211610961182206132922669598842949149325219831260246205733274083167665834934990106717067224269710947419477792212226295886780410870530808946501350016944506127182288580068385981118054342091530400908795056592980917428292795782901128602987873465236830675750478588819988593949783407783125252753830329733141534029795675738847506950356558822237133044714581118661853184148684028369421651636449279415764842975194398829230046055819959977988984365929202159214837933112802773999583793789922822401567968222724005407576341684725164726860163747348354040349303513378465924688427475300472238540561680765103584692109355606053295213717563090674154063103260113106471660124900230373941058873982565076748595442987874516476507919850660942410076593217677684693258048231967438289560170956450178290878275524456866898903189312876336656744073862965210100000291176326539187334844370730894965522476967910329262669897744164177619503591974766204027604299418642914980635305059500371648454147698153672547879085362123714633619550600268497320329437359007521216474589794372303883945429265002489275190903451391528731326851995655333586480168945428025907935363313053968432571884550190745795463044497763997746308893080754065484914237091583860520014155642578000122622627494273881317269432990242661353944674040508468817909134139191096046592209574470179547467554859661789318952660341864021212361200789893901511728248466438117275760920463433956349556067956461207818188633951073650037036862690025782839030467966731953220775759950592523015420275436709465972749017767127098004917826704708746608367007513406634934882126739283449663289513308932702650501567046499524117073399662254610254536734192929701914863709694818659393912918274624937667327234662712925939173714804137897211801227250874358192564265768976607700877177898478967916492653294183466225958937844708957799407249941785399526782528313162652928726552041196851672803777473418940927926363005389089582103457049448880195043809786012709011770980778927689762067591900099242366563383084412479153318364894716704624014570825323894783618698038976654459937441982148042326840528897989048357574455801814510303879507284808473751288123651482415722317354908947533994227548962948528151520831922078181206064495958234070092379193710780966565425626086118601683427620430913685649147615124870896046983626211947134378139797061494621854351936620499868640143410204075029739168375634053419250229334571862152875130648014573025450292685572348651656499407068263467186585953601878598730642858848295496869973899525980867808518293065868882817622600035640382065591382836180651332553402614024532341798982308844769801025090481701050624233122777010743682120581048283973860033403438224926335370647545071228879751872174115624701244370727603990824435219633677910044815822379544825711927757236995461527972005914338337284728831747922097942090607187539716771587191732715300355298639519110437209299936394848463671462993817772831481001387075647213536351799453321065659889634275365851237707914065814834551209900378348411455765860077338860056143648650064703906867073389830851722214480021300954561353860087298167672927532284905488028922686420965017563021083461483604162350631188537354992266499383706936666475969273589091069678910366991970596215655836448274669126986673656131501263349769425235293817058261015229731056365064984905273873435511326749459717636990694404326107868697840263813554731884280399595081961755999942978130403768008856430278455027829069336381728458549032484972983347670020313362168129205479247363170403496048902657756321706551740116015160931550223838543643973783304669327428621150556664143568001351686273448664758546041331710042495044991858469490540306921923056056675146447671185323051194964180965402250850153934306201130595099261958279170469901976194554644326208723872171349460866642586051419982438755587196225589346210017228574264304296957202233624289796741808099215706032579785232846032516640265157686070644752686996172926755915747797545896105700635269888549497904285544615623798272734064980435290687000093219608149638878200379355170249760918242943014799328348681866033920619584682410755982265185051728650010617009278812899787439743962554409723207904539803965995416562997621646018593640357158112857814457992303840927836409336804291616926584389589071672191774583706026482801776041276703015031195110535523602371171180804099486026964161088922012769734305466348619655411135283822524568861519214312746293195593067372992570184790581704279212547438904485786721587023432924017285758571664863671014461035219982782617514990618991700051634340511011843056215696631424691061433515264121608312567646557244956854932767657542375944102064893286919545815057006728226855744079262626096634076471603833876031986092293823237014904662904242299467269257591237952511037783546022825826011809079735835479797315559391064173260023247148010118243854393130226623765580697888134066190217710894633512632321189484236940403101531753748368727035247083405795923574538788669881752669564467063380803967523900948812805138314492552740950441733760371481690973794066801248374718870196717091440370983083785693751618821935869420709857904729321391124766271851643582290612001579379232865172724755036239715386931388503554080598655164702000357811422300072728493320241543544030595727861811757125186533152148968531997869002967767933714838859364303606196162463229127081009742175254255561275140847366085740586539849388248204065237479690611585323027904972120212414582735505093469376951929968074993525771203025591015355011731513167295438740627093799293851564162606619382309749932004317112326419819650214821338964410302253267122262930001190078270711552093186507383079244426659117778650343613498566679291542279310836822151471265782087145776764881809327109665331342316771066294483885169294419526514375480415160960339013139292185421626152229167068178048374181239540564967569201759899629822045140487462130096823742890934800713662719697253077584474472173736116864648854108281713040197105987302051556153088154897318240764197702458878718634868458813431698809006160685911195817684652636731732950865511969745098271866799862741706175149692189165297141828206401539621772574723425411000349582661573043676473002336723589285328119829726052367439454328339023566964164865590435225504251992141584601200058487622587997480917167980415267187936580292253566759570652670177355173809938040966827290698509899158492351999985014723600564588852966633936253788905031936556170511904584892952270525541539852055508597904314427244569960128292167588783868245147268274561234292731815703359945728459794230449875759537591856843065241119990990777782769721499775425003184376696379569074737879623435510958397699767128706676465065735894491095127273399268526902614247854629463606967690442690770181232626822635355775878409706276586226588721068733360597728444579111983501580002661992202809471766640638368063985928701557404715569347518514144718051924373714084486067358406560013329588050247478275733115358537311640288379887300064380989512404155669910546065204451836319613333518610565239971632806105486344529994489290635453004898382586731440489420814808785006265502234551255561748907568353030079382427606452144823797687640431080585807142209549736636062240184432946950959701052084654458944885347670640422758544749659083069994134602803027613912648674304899228059581514248310654349887106103191870175606050062924014103869162096111251117892252872005063889189442659354862627764033154761729017972194836121903051130629527087688377627955409448373737720585380417126305023909360816744261491417959119563606514928716682186570923419250364187779266805230220630305807811463125414339873378825572099510726667085829026584904660818446969070531637467077057662514087990227355277894169608227566358807622933586367676510698550869278286085033494323065631114421685132425508255490152610190980827588670996008587121506469328091419535794754549342707419093217006150542788439208979412709011053502086095268268867052731602267649184761012972118126807061619376869046117135097223044664373736484942365001452226969364931997994974680285327193248583464721728919836696641692914631248897776797098607398582854621071757369742466924205959792824097929478263024403019256657494997655523564967188751123482067967389706416370030951900881112685064539399099328128523886595906772450752216943126632229109794615505354869361990660019906288135373680695260761759462837440494040143402333786309474346747653699113316309948509036553970186663961380004030855043875753929495567438288017762103643041959277936475385344859887404645293959561408206288722522920916127068309815231554937693213776847258351126542068303875971490846512133583951449914424609790265974528665704863937809624438565798938534070643444801203410303823392758191853062088325076644322299142834319115118999644007077761682549701211601739485944832922641314303818102732950196303694727767668950800070952945563769546941229136416551733500542682203728932479070769599113881630431225139127966149740642898484469146334677016946994358705569203308955616729578707497090973310411199578751182193866646492432191552081922185585671412657719621935781182332331918616535435951554360562144221839564004956690832520592905760990819050464985993502693165763519977909096696831287775381176252620431978859534907625603476932737872478035135505857235007345617131365568087869965539864380131203335690323550161264529334846850649852400132681810578075452603135371210909832872964416821710979710000323320226374697734840746594321439414999593420713474454609830850329952061883557109407647732594018560196113798241748407747614250628524778673315537665264206002708394801708193587267585615468545949707523833826359414389673481081905951420726582933127280962235962024917998989162900182440189246878926210064999665062577710944637062577996851738027046665282865323971668640786915627652569766070020276679772862348129655964509401276468992684316090675791015179124064435823201816042121279495362111601246083691795579070993424935446373733209520649913124631446470100988828362097258357417383432427461730694367098199106445757058515405570537013387779009800424051785524835974893170738185501558498326875983180224989188028657265095022425825140536742913244378357018297413607900349979806163840823814744266075227843903825526054811348279609125476413916944130763606764210813482840297941433189349581877135380273985160172341743664015574766203915313440999147035965085892968421507544930674458537077924764396275911644396975159640380834629908594171424258463160877233766617558576590729857083989444584332580940866019198370412343427943269178515989624640529665374550031440819671494860779597951705512784318857486227643264151430245574525517841798046336491353582021842977550234398750887622253251541746087752427250394502953354771232388691793902758597627321892664249706259479604362454410174794684279099779421123136005730452170382495083225469989403022847274911017604621146840382293777410266576003395724870888474061269658846311389495975635656270568461327509610808512119163876996477551177120695189651830304729660872154615619107293913426816016221560726056035747643195401211102717817064202732247166618570533527799573143808066095081528484430708011089998497841743857077631956231477986380502964312921374776722773419504724603300314071039093876088390025675223178335790045678241612374336835608844204368646572977728646157943298937030017178800349529871235290562897605940393256840367992549725422463271963367712850422841463925278516989231248373695743761190412024742820942816776823107538778452285364530994672593255490735665336492382043244705419833830482042997718946959388199503264559123806896649360483837991167059859953343055200865766035822044528239857182909245086400020271978783850593437684547198712086460042937226814991955315960083653626449487716243865440371533569012395455830156318762092744234651092374356271716385278655833080914181156884964003100233409352280779602153482613977745554267610202055960046987949891153337029849545113533653426156001301032193634613183775423773335919269952964997907234128339829930772936302801560042984799629590574194130368875054006348915510821038693617471934318520658300081300545460875533068524351188949962973341571463945245506138278077952514757752249830653846808297490338598899537178157785160187475167712856300763616968143852528235256211264895683630401394337488626082372176990732394830770950871920496597496603266420886536149610536890784259158884689305660283266687193891372832146487300279714215110227587489858515724541237367566358679728217267801491289352953526116310075039113575952369676022112288239085109933721049140930951297284738297719644196407345862327219431439950620175566574143115477034121590127609587975085778536499842930205394246993060923739881222140426879356486925584029070108964961710593169118005237745301283485375114089468442082424177156042441891737568366309182619008837137367558867227055216101480389013070156005934040773570626238376887547565236087328378172701182078735590024735935709457172092961688795184523635852651135940658959950397429461868262948023528442131356205718841272041591366615481336759572064324459979300804785839060305748397938848939527411738058609849468572909278314498805335003099198351258986124134489335172889474077226127417942705211888990268642656771581500833862310264308649537647386157004432903695845842197361808583927690171586281832025975864488843748763846712890810044609929704289123132843159629014384842368871253577421720332682452499603298203528789398884179588148967346175489223555543138476570081855825713052901026206114751111899286224472357192719046701814615222452474333365338662956532903680211155117672762223315411824048034924914859594720597774664441619307623931658260323995384402101073662259390205086165427664370710692989138653837160766214970575901710217986388750492200828483572160229987911820419192554198781361044203697697260368054476998437901312498032847242384094780951626184225576285837289273368406453905973814437379624033191361808230562047203834922127569153790482367019340574515182448579720788261364489370530032003134771836945551297180318593982538339004035030673001767145927284143803790893230223407176960130016017093125066075146302184056257864166934382603546780667068263303120297732830953000585970579517207552243764013398958528549120107712758408623542014915766204679886797488567053762383676504328730054860034939868198583060294808555375158599567182489137180540035920144427648348765096732323802414356567551817298582714186684407604594228560354623703492738729397700030645359641136391629824803524497137646567607352850801090189238063951647272930444757735364746572152964558654151442030716070494453979140964582301902249463598641270741587517659499721833179255253167959749789161191869501743101514278380468717287305959789739663292657811644288023901531107805514811592948837162272449694201411495518822415050088363159723770895747186551260903799401844582265032798390033960241913387034041057930593142675282164604833815838196772181533247519967711778360224357859628317540640080706386172655620058913112572864078266806417406949524724880441630591358133343387925122572344518797681489925682232950798004970770447680200786156816894005682162647875886570132636007978379394881132297034346737863201118881678478607903714207034451499061467452876835946992608639504812106996432287664336889620621271676436870051659212451065842461709176400301202970205824903531588437796587575586847986453939631208192622871731184088432367093575565217108517760743726225463518797181622349049792963496690262890540391635152973246747983822218008619434554664302750757760540581511882514004301431873238742024305236344433546552246593241980944750418926698979158514003648913732493704586998302098639350981057681844666670135763280714061359802901872868186794489560377569981377708227751570670265683095930920865375399013664436636483947467351474679607162031728291129338214701741108404224279057940623293855501707962778244319086369657111888026888083037757029650864748247621971393335146307084335776997978251804474674365026849975341980388869855001476284365181523967772429775795617964881527218139918442301043981805912289759324958488169095442076055621167853049889674784305118814905937574460340971375835204329046688424576442559464294375740327564010840048359814419716710354599818808948867859179817281980046168353808621402462011832227652906707057787589837094014707817893407274841842192549148966308957485710904576520908359066290327467156732360856876189410671546305626276624943521959601442223888709296059918671991098920525822927226069678933261790858515331986947305274854873902647639960891852541345361821175652894867671849627347021562974070052893461227499591538530441207137835847430411480853027345144661888121518260765343939198610903989414074696091233828336613208843481171062047913645752148122069406499773068248245570067729942487499158419623553100311547160211018990026243031368038728937195348897495612703246180613205920568909591956462819606653556897201434252345824469099966152500258059272811402594937597505578845708547195659001202655265761477376701955558576362578669192723557409470513572065842441317588258406270648746897173975469383466267509109849528886591175342129596936126475694334262620905202289636013087856881038287412056546089804063805566774309284410674216082988861697433280256265845640076071811830203816443318869889257206100117458550347100800912329457965835741245433652171907028319148269234002715542892626352109904625716083583737039271956774530715789872894519994931864158133518416817989603774942474038433465218271503040594611739871509924327649749476133860154639478775557158552363688683027584814361950045580642721546556375080262646092609385988604070912554687706592969150187985998915654294325176792388643852730573089924986814388234024362630421845820603534698487443984736382879004046448625283967550870693026805128684254274865211490642140665387812925918775787976655176907342312924362888950732316089858515162651193591113366506319869228328147232094994179716945229483575412197943900640585268128605001250751697994578926272104015888647117814900594630135620842493350058030468505470535966627981526274180416093561685604223646074607499098086020413321177794237032621094262566851637703293123475203800511550759796943259136885087765090872100261575596870736225621971929231881981730011085606350442879305676195914531318087631061554465966194038372388958539904898981590919921044197597003792057758140717513631256927777949756343263076200381271692370411576692706334929938224868333694979326675839136149298246012963289113874103839616294536496105311061007822027290387538623431442721193709097269287592725812586917647081838922583995651459539781008060586733805281617380511152007524074672281473754123119980559190852011482187450330563255280598785372296823602589736918248939272182252312785867991974492870336971814177089573196533649586072877294171539595387669141232035804197565734416114225982075477045821957546097154762534761552774125350489008956154271167675378169282266920127755133697465823472959887639598973413047259818187293811405199670124435851761706642925639339359733077426166487164412211235450850267695977372449585022357916423079081114730945681286064141072133527356767602543669280769690061598293773598866692293610674993796821556630422909730036688485620435974505166415102719343288186473137829603140718216643598177303748447113429299502875104647608890345693593222931877004242306977499155944398386830326096406271355225455800690411905869661676685797224215388465803953341262740453188143626820570896824795129061726128002666936637478516636450418883055061065697237727920436428915109029445031826382705267336148170404754038206193919509923593785135986578914995019001503776150725536785954192851815387476578467413054777853850559697197050032977099943062589669362797783447136531387024275775048581275284050645050285040532710347176782103140478132408034876065393974868564946717159268169942213482154823067538392252502103866026103901101254709475941226818191629854862833950420634554531576737318028442278323487204158655965249788702955965342117342800736896004949134162804750818907007658694643947995751721282991912038448935604374324114028366981336796933985337247324673969776084624486952332041952580860994006343433327428316091520647575051322076517405076659723921458405607330570195202221439379084663466662422809724635584439368282260350159633747244591569831317733494030144213345464074977440013697280718267131331808924272728624484833363315392356161459292086376752184933940050867749826287393700534320234179034419235655880412636012576801766681495653183243251893502801439493696658798151256548078631938514550843858140389993694580409739472075426289186401420452524836974372623018615540584512560374907255068210637334771655195835254329177871730770033009175256647922603650543817607754571121479870273566606767927201899310092423283623333756471099241565659566530562406351342155634418725046174797173017787847049610041586731528232795714906486556049590071678439205069188100813724699127080275864163693967663546261571080879219311091438044504900519188786903062888571112584523381164376025920867000074899607784792012331022759561445166655400785611107358864937974628758996170507903612100447553055475980734456504691938446627475586640647157621231906514969178080949734725525345675483826670258345817280981097138392843697225538368815653834983610103042877894498731540055205384686199644652011414306080099240301669674193035316387189963689976123676379114454947595156291455534362278369834750677581543902992332405742059533013582674372599967868250659243770218198387165487097188585744052267512321798135047216635028585367508517284615796945982992765717402780219208430781735707028999578375117648685246338155553985953827262463122591572837863465507485312763566591623332069504664095647895998975852120344746784279559883210760117462040955679078305494578401471344057034613724804016801091538745992809624007898083393130567639093112257673153459729022167404985093735313449558865767035286539895298338611180858652395098236174241311464826214294254130029675358870797790630621102159409818845466557106113592360407630620196317499290446187576164914444646086700525986543448742991289735264933242483026412640792787122054925110985077786773339767923486493356105076057355736234730856659714908661802126737225340708880597096492151566970891002565893741502750798844652259403723649629219339444128731049262412087500486171566504276197197199006917045690729654932919122165141276297323997563105770570681136923890843629648403853642637147619124504806567091438831827544902837772090161282109194931819515769802122522515637410209924881973113400147001844147458952390594032729411246342225182691584185685401547535965430575379382061293741992058208364516024163637179216578870311766955182986058940437218616151349675774967068565726060864149677207290497053307234702834687585352088319996280342370502115686144376112562963893078081458607655643676451720300357386256792196718176907386985099697775799759561594914036623424261363748925992115454480117342303982825799720845324971520157476667254360395453068024824305896662597916369243107436500058239282520320952416718018250391334141034152821872251293504049248409608939462675205170024446144212714852565090205818420750720869534467836442436014794833738453364540251072207976454025525319470986150273274714887651843332396465158875191678083832424834684472958507735775508394549154193317011276155772911638920460793730512214499069924001653458793932609497570266064434066337974408197575747010698943487222131359416356950771186863788492609896083561972106311140139527144147579406701441636351420053420492816670990285953582782906754768467644124167042061135536933243292279536561810705482094995366985497300230501233018520107420594248990876836317994168676417630685647870620605258464859600008451055673611740572819595550291103520448656505890904027998624464772601781966574669307093553088811993097211859942251616062656774161264061906682427727231567127791337075567961053031282052714458173793234386432264655646468021145994951795546692311751510282300704799490719428556498341641916759608045876071129388032033678638310913023717385773134254662599726343306131167235236366006732460090920391292634489700137723371877146426337197303592611852347551397281212562595540071566730139603651599507078378029980475003653261823703476018783192725092403440000202691710363137159696533488315583843234093273575520359299822550795615560966375298397869158203584094026071790175695925061751947459711696203454269165827708190877630773651398882052313842216476892634900431911615343180324824409482873828431858193014967723757185068021295881894716473779934471100333554100520754058836957231924974508534188023923434444027922545848062378877366362728617264967263994185245826991635656637360932637578359026360524791637501073115933207631095918519494208817731575241927528999286886732622570348513404132700957412639218956792932662998383312446015164495433747275105826627279200584836811804064661991690274250191712526861184573498796066923687336816241345188135950016085648711763371934383054905746795802404346310408396669979981793003260374276964793155081494049220680926238755547978114954034056242968864136200602170562075276778403776224649926470765162214393914069991007796734569754427448464303640638293216833932060696330081546866916615775697212053744013328819716709224470020625607341088250811275772250678570114104377350533164029321027146655268719985349685842185826047844721040870541001530172233358955897361399082000280247125938516895737446306626036659933292333796512968308041063981015511407614527994481281789363930013186611529132942798498705465700871424982268263536189958986919611357456934333845591891333528010400027098171195317499157599856396753131912097092733636192302976788997030680707154295626950325413486151184058924800891713029918820167891005619234530592219065182549242104684584746309518505003742970531451347888651568601749743681547951905085984144374265980780364517657956470076242944598701868302586425680068197865348585224392024004824734777136645790207299202405332098705204651901997751941710284407430883354802373323136295687264866505811057125589371711939366710758026449794134384345237923363431006459544257339520792048083337090047154677967276478841808154182609916036860564205917587611844323911119621180657365728362532267516078114094369800822451500918279955419044260764870150618731986789702575699586284554272662017778508109421446951271257870452071721568897137737109255862020614434671610394574978628592679702637367265482185268710941726237805707825893768068042746149884496099331837514013828664869064944518303646842289910115223413106254041063992485848286036970558993822061000082139755259358204523010131551874258136399904212300960925627318893608020954415396863341046756563190909338014013117399912807398568962582849089969863099096413168906756448248379987159942697129906438174667336041997915533847498664688268990079373472596982903160451253844064494990172501301219809188508053261178246414761146076671279179153774624598612370037668075382370893291260630675182223270311987585985820526984349541552414630237347334891444795597046507478909943799120616237226678325555389593164098601147621733088995882787513243663112005925433554312920279649438773061437393169076746856299475643373570990007662329040424000296937723971871147982256435152524637841310535036653265965165630108121319191981911402114804405117142284628177872525591249942194859958284988477503291872412852358294113599505713927533626588520801293489255678620840799242550496600904006069683484597855417132832556457409082457400291140844517444090915947655371699065772102815081967448863330356252124201038594237257113961705030931444025234053617630372789103219994950064041282246429366674686223938018536740252328973738045012716144538599210654670220275667302576039887874546503344189870060711574134244213341619876499725207738596296599450037502958113253120662958284932812456717764092876641495402453564714107341573694103085965640312436532356636999631916652160183835059567604315559581261451477134360836632646340331612035095340550634451340971737260588804781915487528761621423847419086460864156287247133643289236020486870520480136246714007538075060462888965739642023375491147223633227041340238286867327490384642938678966674829339029577328454730855660080947583674256845751355602648587701984051127914648379072623342581981438251001308619379769915434221664103374474155550019502257823165726528349380724468087147676176471863660365843829474251764233254630238888871939049005725762276137760843735830973902731209784262682902223393460772839741810069659132559291858013398286551027978573133847904642971454935856839808612205495443797568114342355613486228352841380190681809929027378042895477243202565101805843447998050911109519168236340975922972729010052268708522072947596878851622610929023274422067278070934197592681474836485448084178479097680050270295029760016907702036290307993244291349539401655225930030797562060507460114524849830692905009929239183422773690939848462227351753443789850691693289982213218494554305721194526167670237468088718703759271941075804331889483322639821689689977496038327883938596448673740142226411558736493242752004114560886120777888907164654816291676183196760221563437254260787300761724668207912966220851065149031243468425583820373642378347300234175983782807744768606245312050873807677322280711649697026320880003015802065077942049776746852558257165036050980284448540982879654282013726539647581329796367457473493932693252389913546086128270480599174150906838565519537671402884101701730493963725090389954399461860523249143683182072966413135036511592590736530676764319457962863566791643455496435776342473101650578050429883852106583287366223761380908975043517819793953373410570687083499621488267983105308284859311605813657522222852516006109726671560666431951147709188160949108425191292285367672078830297101595912939754690755962195033901432568340757337025941319145443973674909056766700896832827892681108981194629996272238088291999203760996422874363732475681402277703040049349631422212200414319797529593831785387310635168712374195384706699231495292097788291680887236684363668104937825136816255734966508385973219986677480381648707910968261681267086991846951522031292776108826467140711603926097124484960289560059555387076959483315385640763228891730500447068547491066608973432564259058278769460655166587900079457509382670994808918939419957096316746153938306619233438935400424212463849081007893951284768170421392579045430823105588073962472610923859235466710398660687309591248339120669608495657557363319324569812660379018000765297681482099613049158441664275850883617032545644172549181751410639791757693256176987948980018561052247424721854883056941296062021004367986720820981722699037929713378050562285948677439866718479231055295320073205857340441303803178913738637491064429402254504655930743529074603841304090908967630542875172067960725619907673645125471998404695594771198809840142601947383071122482828747103130052219948960152083309241469709473263263932510891822580808090675299061835881251199562130768730862939272902121457256065654449121271285486790733282444541592171591254678667422867809857151915964416211856410869454660131520842473750469539577506502879153231311803226554299956584729978817387532013203315678242902765655359151031710164239397623095946637409486327165348003602382167986923916861570729296607203282210363922298577953843821157615500298417747253943098544952969107529227228397572604685859651831547584791152753748382075191440315085658437572957145041879835011201310022515228916211241695202540398875022813603692359906440919966885206396656312076537891177089387575849746190255633672355323051513424928301045880617810129309830040053075343452860543148883916711121150663678481320268827591122045000627984573894507943335074827848151899477415325188469682157742870663589431511237790182609656845628966308724629969935737496717547451308492358821380292481983019720720577409850764727630920050324008021908031082290419459397455306308720698693174972686036806423984131986761024828618387095042766240045521720436272765580828629325144701054672739471012256046452786874163431796112749710750229735152123271284437731601228616990315858400026385839848182856843792341003493480239596234041330418915927854848865900641668431653174662106379966398128332097725819241417132799722183789111408663498994424009292366183373679654921513775792024776185854597234385797530406193962387937607447231903646669486564252472841887042810562412728579932582607374672097987274185169502328344075009503662330161683870601647238992083865776557698161468743704943077149882973765995858144630481231998656531129079392225279670888210727054351944761599791646122869950973831343686488133367185780265547382130210644976054626598735986856042065572766941781020105344488950277992266230715577313864634251345049784370351045447512693292418158292052794572423481658415043030035980515739620709193111679535602546279810455274106801736888655697815294610934256712566865334564319874565748866677164888581942566306298240137816765725714400359038018203301694751177413393808083061179863938617692985297442524828537713639008168795021454745403453783770108712061671266256873563904843318833871667106359186173704413245964207435891374210326029513504317112079047110719135538074977215734954101270236045321966961678442590287068971312909473731358061192741418250848400375735776253934769357903069791187772787164802194019386443672868980186900091223382197687444523682760465114711506643271675343026511533261668129000114502921174567909613270430881642195773194447322825538538838332251351302486991535239398566283722684910912201189882650011138087849385078869488941150859926140013902278935967975029775225924933408817461265452861260531619773861427211085622516857596004792427995753421991378171271336530314667655274785374039638579245571871552821347984769454030598784084968083875428664863919044903012023415094762942834007270960460364703651496954138802430298773305753055243364753993317024509923263108272843648206765823085921259784680865876080118544508633235375936172496483948612933410368306014581115762230773847580791306585036096379050203200284776934605806198337528655546882791612048777401131824380480249666364096589163106347903140285514106547166809721289479301807508844288951748637941255574858191873664799772809312260646890897452971920419394384249288668488752090063308297858230169437806568851711863255298574192332159712582807060321959430409558130968412651320644818102665112547817422173640074233049740208698875723407759052326617984482297373439505421464729517210404407977482044055541536159708155539903884163945506427243049934365412034353378086687420183620448603791808284192919100970275288651639649180688117957365412119998950617632562521600559363356592278847256284723379471219769627902941546773257639638504872002176615723712280176759639504611199919585680536228467211461829240272161906148398107244305516678473272078938385357374690614001457299616190512736579058946914930070490045710189142898978320237202653979306416219236501706087456806781076412942899770992393320409921989009382531370342789260978837905517116538625341727790028084211531929780975153083988822159365375214636055125551189987180838659806057595390313634280715860301249219080966029251363915022882473125420609490678743179918745800525556400719401850802787780275446943546857478023778468955541699992457838101265164677786529278688908587276459605179613507075383367746844113891429097734205962710470670413702813720738556528906488900947106966192441547187137458649142001637468013105639056128497982317325786194594616404867998571058777331885759011889823453857415096477721960411517959987079696083385043444451470384713350237237182194260454829611232264159112622785615170216907627242062620647120041586765440672877675985642749827427425857924811875538756143790051795070462477580064332939234617576334479464855503746639721469980842616926003978038440418568258081594721993416581150683203165675322941909438887837413673529376569916329509653707721815789580369335451422696155335100523603309851097480525157692881378384283714257493775457394968012353211149588074594212735027810629489835247761538478593986615761868333255832672076592881481269033726788432286892275851017439669642808619421716349411147452604034953529240870691511043349599297378286806990483740957535567899651474133994445771215522283046193019428344390170223334725531834420537073300798740430565883188928367616041654968350703152232801722775392759632617616043620536935483146249884175713619959374145747304295403569745591762840920723177757542285185832928373633362909362088064894401041144767112883634681273500552844203214221777362395726800636672607060966682155523460663792815393767544520604403176077285785569340888672962052718851950673859713534873903822161508070590361840378226044926892436341508859922128718086686253241448449561094041364608390087065035523205435465168525692429489647892598740968924207150561505835638409044166497858611957692755591648933992023431730785108739919412197911606429215905015148661172957841427383904108552163905073861048390376441579662158729771845283719443676168863807155053907790223200394331849451366333344675889274157642839331349520604521040728032307432695758906796916167889105487921210612887207082907420497000061865416103078567178970321507207913845135585353198507969410499699063416222034958988498931575711010999821359815665772554849168623829046609708538015404641413798785698840755109717018345250375790506453993874023196866020937764154109010499249313284440991595202582939548841077346779860622099385099634526607439526516559876430970583252325766992295642880820928135287349730497101177075389230133926075734281575570556683409112953352370027391459102623912288975526217276425566188326659759703413476639240908108240325725359715859309575188687934060290926712348917076009581240238705383470744553122463107877155072984290796290640026504528607577813937458780962039673632756007463865835380555614663855252365513232704081864161332543092225877137494882958080806450768872980462918577869650279426421003681856148601592778814184717468961644363977673651258456415361198521826537365298232778296540749541613707971545159925584997079772783573659276432971103699428196628712198242292156372337031672134677988469947955451240077286496102593284000934547890212345734297893909273701836326973223967089003870811922536614544022743891089322464666442914021169575267696271924386612384761717296997682114452144544018107476144820032337181485275244061445610972232130615371787480514409530878557543070591035918143612469725692486622575191140679970232656720047419920882048569941214514147494616351488472816431577190389230636451971234932393741677599091221527543233080804595230824412756854579504326464198275397476865368958150249057101907353402233050258430514365763808187585864115759010749453677861642212422426712065097791308421486146942044702913282425986261909993922705208076559243298560643584157546137356956427863880487648205194878337721158431794455678541525841722464803920642051910818175919659849002395695446944146666377842377573480023374020462491613229093193650076311969976079256906828605919457164311596691887136608588168489267518779739825186317162078116783501353450310861963921879561084668526063719118714190481362241826775095272659938923381817270960856757385846485211301399480584243818492017182730720172294215291428917423509059764232767595170417963190668293287660031365734027982251251029507047468470684813283806361378161783754159656902729708741037029057291570642988854389372659879289718895057700756493279461153902044960228508510481404870736215426243562446262601181385843796059090185605342644315841403355568167231257173450547592328598191986957314141565715090472322686404900300122377531226374359613912480341350207736672452638817502965388058175889272719734309498137689870587070180878332362168618303667665926518038706844627881372898385991416560552838299680030317586991690461011955273680720657602330040459921692291073683505264134374752449805836155075561290730586550573796583119742634810707439056271517852418294601981085378137242706911725105931550591152500699324015772798683139393516898015056169614511608715749412581802635982411305253898407827936033420249661913484728641805922848043611361758836490121467421098186210127175215887779020832532709729813855920500233656599772815482079210445593196562500814049687854341768309765842311587150195006493498507362230514592985532005327737652545490322562163175627002259072497800010781754753062848675302241772375541622003394324027029234507924580596697216967251413239148352032644656996166052945855930582777298642580834243321414578898238851880881273683395430887158447536789236107691578511610878724427057349567689265963466157667048968555846131276157952915245946625650256618751104864386446273972177723478086218710664885745932459830120483216982774082707810590373705105017269024435422563136556441562427263850416923606230847948581945887548930052412687361562192109428106219368032882852840838331565281725849618997813397461262472018050385913662054620434840725917857009313323453032010390048502764224395057801095776069080404738680123925224069300262323097478464660889372067512886426013689030801828950571383228019464048098889595635322336742777280692897399054901628241912518531546105306486947988006683011425585377350123963311311864139174700105914043760399920954377404190657493976967477598328023280344204815253654052605157045991706537140281976348044782983535500393299183111036960107160559053699306677793615599494629153275562767954624131788518529239924602363965653381712610440595616392208872536055228004579400909572929715360823589272191596454827727869562393992940381580992748964739320772036164488690436541978607850956921386323277704367196192410752707383841074199110261126528502417067276699200228488693226391710987550247347567107199041254735440876632738567483169554562691654362706229976965849825914038401629625988828208419694015663499456925806092943756693051834338845098072005513042320841207398466635495321292044514495459028699951484203795768850103730826997010032078646376585125726075367916112185638023623998554416758673256503259443229133292040817818314362690479854076741593894357499603444287449798961125035863476981739085411958228469461741892538669492388771878464869623143221045277938875389445479145015838265685833233701100513141168583588360090396174873172091243673919606945655869528930235294537438715063151973969697362071168095581220528378964504906482123531116284346680897620404083062638632853576172781336984176938097722390136220524301713837080425568731818256859809193645547970630560623159089529799633878341216081999001209714147497420780234473898733058073935798101225635765832613311745130226257875934062457366081619159086243093253939517020338828612064255913730415531453014525874230844120509823861950400693818316655024775468409496054177138461989639794318918854547381685967714383189782567428186216859074610952309019098760253206582690988100479083064521672661528376798010906092114658903911004936223886750149308107469526351553484226140788957440340653180970099557241989344783831158937738251103676814469274641350966352838075402511624788057891459392131597418872682899730605891511388030464052492316761581034901186706285691710619179965413575097944471623450798734275734788366516029157867314966960042065085015743124649940911008743813747511907206282492635022608537227148271214791634392218874666996350063912560241273156081144819704345095443393270596192040717190197313528256938744888052595302464358387147183788120710125214128490445969523914649402401882528399697718988562200746971236140629780311752059649348951556593498455853297673359399612607853231027705812386198022787730483919130248004793331108135891363299313634324439698515833072534939051884414512028444786872601166521937877866165990878425377421988509620165360997986313747507881996785920424464962819957040295308910163637006092791174904859341907877174500668751479024412587979489358793070419465141100817214411073352711089316062710433464708871892495217462738628537915609723871864444582488787801610677811545073204220102265432028962282765089050083084430122491202513688597508159189705800620049376283335943482062589611096453282640970059582845543334151448917585561888846200336310233232707346081502741299381645742761945193957794990537248379383226744487418380531759923763134818963442502435709110478529986712690177331435679212216533184338668835271498179503622131620811808623110967040266949929516400691783330890484060866351749846132918627928211308274168645697691427565977741137956813846458259976627787293465850725688089720997494641170016870838826512974004679697549369828213765513624393967147133518603188235971724461323586227351441604853273772600097503955856261585192648696779045184685865703875219514147787409872691391375712182517133667022611888837100360254643168647943971751523731897541603704042762868815645452866549970892003095238766198708055508226001132495724399040847632740584263903514912154070634266966845188088155808524997009080602126664510206325271399613136276853785526959150762368625269623429664265439304593529973266716959373870910499374626153907441822745025593161887527336558713303090914015782132890431353599073607009604719348805282980758415271538528352542146476953450108090735242518365603931819347748488829592778722876481489066721350657309020358702046249011492790145060347008392261744058595112286100135143736197704039675902624479436531178382597657301491466318154249415047881514278594030346674461298122169852861909515039267242923798591893241372720248286590120370300004905887586101199518389396946666453537445506367647386552740570251019052046712383203914341244711655448475165481923291090205432663827865050472857343140574843979643524624884909682683661112202774444371221881825341145939319997275401827807514129204825062761751732851658544167749037979374850920858967108661251147450958937403814551246878588556153525582498023691139199181966494754234332890452776436847233504401553169472901154289068181628445072358676583884881256145705684493570117635580519318140343289405840241773791939490527927270542477008663129411987435843814333552484493211214489311199989640288923329678148403891800128499120179089089025375675944300650134066205917634969510038809926102960441598476755558657143952813752952069325868570426193571327447719833400484400649415813155936784461796550446239967780625903393625839062038031697384833476611007459497561061187173331685657713623877212283207540262819828023847705528271368995046450508638044603909252552988205880587038818983654474116451802871217721999611444052983501742510275542667044332817256870904423410898298295622619894112368190765072173597002642518026322768664266469092852649263408048252142660460722328381899614419152689520798461180499860760132762760630635163922522031784826842576409227497260309419111887162837132223291949914756241543929905085067228073027744312631011270406922451857976130852384902715934950437433476417236867010397631799738095605593183449374741923837581469801086554127958533633623462466404028433194816211986349315559014096999081633650157683895212498469247852499693446733673374935440615538250006463804573209003225650557340745085511470108698322043925650953627819215348979247870784774303032775145410652663990414805854969368278850922897098175028014597726975982666448203242145415097935101334585831006043569191409959553750693384858800780385703344371788657411577874185921553375796801494215662248228254503945379782146856698191798921670114892992852463845657299648434874948931748903679991150862525046247787285937992585065370281401360019263545855426769247311064760075972744342418945629563779353177145287784508500146528207121283618801888440933000269725446755939601018225348013593855686363527734545715970228372057897754597573753558519301671839139391882495700970317962464862191067992319143903969873839674092568596381964396596849888101331658363696279608883482089968660329168922573730445059443828659962212001027116573918711042182809559233342606840392175242241225954509048259612026897982281745647668551879166237313711350831446967693629630436807871533768492134044963881787745450591921278958433570755916395429049762911142164788943007465341152175878594194697043289262786204424749794889137193242888335105647604053815206658807570428234623493296792928569849557224321901585859226195871805314400583469727745344119997729859926490500300623853477119989873604267327872919577655281530053417664299464476583063823738152043056222632018301646756310501441270320986278246599456578249596395081693021195641051324026436886291857298509871640931696280233184023784550967037037991422719635230879973900256450608612832051561382333816833513976224014539610885457944536080910570062403434320779307894538789159053502642171564550746877897398317595154793002090868889508050780521571802446338322266590228274673402368596970715427998664421633393518342793560588479745889354504639811301835430951630979399607317419503946272749302021008681620350750161926469584425550205267641113471941662503519313752911097432732475594699183233594661185167444057616793027644252805348785114718808586550044355453120700899885531147115217567042135092237001976123966827387145099957721248033444446739506777415885634160969247053991593835822123514441929948027990169125423762548289580021803901242418214136505529665919543959037416055352471622762017030640195029375391254557631968575769982196582809370841819630196741733861692986425720511524353421333402822505596965518033452288615597878289959625584335607322935480859844568425540323321300242553560054544155412879379973834130110664799805628110305629846045028906879741574992141510660272598772163020286826918837273500624859339840514277386589542203041878263702946235488285677386135825235949250166669596860731368888793513828520332015299513966868710538460778808686443388890060320715897182700562825994810800843620240713697237420328790050897408731178016748228492763026017528159118252996180964079908101233273646003847153602266945885676841035246064617265231772655202762275262009105230559833084501316789723653117486366618525879879297674164438322618111969961892650889805610610447956821804436137650500635159150279368842961885605305358722018178787414132854690823481932559676806574261732413875932407462301181451144086449915968755874709682724694872039043436644334173134930708631267611999629222116366803555767073709759726211581540429852166089225986312392309494722184981835426304383853474066120941734949404201325904415950702653655815429479250413465345397836845582894237541459682234600587276738094298379655819129853618587080956620013247969907453344776870395407417557825783733903839971723441554127268292446626893517488139754294085592208497562073302833759921049511597949145501281113256855674906655459526320522052806100707582007795980182097377294919386806422148828274720467744866587920852910259779375403671187333436979653824940798206649686926490556422004972816701838282493569501271575540618908221952681821996499962007601137463190662212915182126951960401715008868001475529065135784258321722433791710968113243327555376310817868575695421489608203225136720453271968372958433148936607241136220377434011738829644705666195452985194810452591550672979335354014246401412096567439947728655631853989211757307964460921325564424154267822736091891906970544994468500069926455277973632640666022643442300446446083713813332985372879479858117240527504358136872197978339992590615454492987348059024145746383260446483314414407766073869803369304598642179997319161332566754128179450790732524509044418633018736366540248305925231979761618983044507939393704950532486102563793567611348350430935621969171408024252125589908280456614313268881113854637709177607760526917845612288211849449770191361647340248014209362285259331374950052641335498268672706347785285679275552235936387344690045109632111104313013490910889928262751529928391674100092746226803697014978954426601002399135983255221780692071333180165974708664481451717573855602063022042679420887025567559505022800528553518604621860927028855436318886531907904392958770173753052058667739293353718356600358539751370665257988576133898695554833892958794372118246164875875245237767382972385600595887823384682399027938753840826430793066611688958029788613936433293947011140030978883518174203225686712983364776709974128607492065248667915549591234131608536507457519827304820300797114885846301314076630885643893309046692377106232104726201676678925926594053304342765494082835485814260766909743046563285631067059439929263301290787098851458302396767641150971139215899642115502856039457092869779744352838265745099910992254421389312434787134755522406200865594596313856481698455118339970915695784353718593828564339804312135294255414088364614140444586284479137406429800019022471516284423979198132207552894156714474809693812604894927001447836236388539932706857108494179080557608134449979410654704150283069776410745396868895833691411429130394493158253122270886686064673059580411946234221377633373105910450909716929214502137999638729538705813841430784404375588073760085419326907357540847084001452239513958563040389598982537254128031230805652018220023147028298388613761041053907077952921714251982699919702658910169292985616375259696919005766132904567944013024122406812941845173818713824456754469604959440842377988047185124137047893460262860903256078741713282931137229500079475791976492764393195390109101618235203998413693879229223399410836768381099694127704059123043700252140867701151412467995322701043934598174773677334072551149621477555972338606488395856468044062906786120472232508801877722524118016331090392779376512619876174124325322277263600902959847861686274891095705082251986165672489342658310560369442179685972361899377561501793039771129525793125513500025994746623762885816457137491052966521409313073198265326463012261435772751166451638317667309407945326817842959420934036608591270929050954505926472183118126713819550205234942617696398302268200849436406199627376170419238194967572116055541173461717905134942652142853747886889110986766398355345960663318824547741445948256421284204559237889140284811347938257986427476803227300231242433512137793266961440120115934345980479332071174271742669775607665522715828198903843247859410131720129683637431309647268880242188312200862544089953746687715740702916298409002251420471449888050742430316346647337302331635384817867439687173339775386545305936908780179087919024660591814554190242838587380574449490899727155557265228854712099313536429376158162396228759835715661352821505730785560761311562614757507174119247449363521796919139461751147640605687506041394207880464043221107337449209913510792935245277725961824092904159525591264669021155770285933722694474948874765945959386228595104261993316355446168456699369877105882034710644923159894782071825397511594225276086115293407405147558874215262248462564038394371783912916457290785484053071385010787789167685379166890539657152287570425840070411500650872512143766867747556982944496536837745311903524556924030414142448664609500072320258379737672559756230440637790045623221072226489135262369099731177283021779517173501576872560259243629345373802556710149635494791691001851426908708620244131842135929932660619169271535160695463640350527351992016404767768611176239675847411396605640045330798924954852884742837798897751348251687562780681222545928410361059051421531614170871814856175888898056170648008593801066013911764897155665275286955477790890672431790462325254986515032022244987116936471140695739936611449681532191707175178661967501853533735773213205501945867770207819045261385583524240302454843017502661103458418568334205368269329766916287996259053854411834958004495532826943108857407592964579383923142732961552436273130883852635996359058301470597652897801779405189734562889495347687681571048849641711105799572426306674754727585599724744428879028802956488549262063276604514054355759345842805239998426123524437775000952885583334955852463950765075993785940013700631468544583010702620057789362448213054325446994953461990685086696931985607094809042631782549823137116695490094534670707528611903095404572531644380313723994378205409686717746854435281907575822986739369651685790371949428450283497321929171205873528993258747513225394342020525234668496433814696352521850757298983405272427469577339734621532673971749531254155525937706708959643292875726880117483329910802166380925955571334223497573452026695702625532043673008426732330117654824760459191137272411508637965052548468186749776382961838420816373497374690276042784518283450247906415712047813834210557892132234900047099038716434520391476927908620285357277927004333891861688828432383205295374616332809914044140699783757063807851674837245167067735299822547381462748493446759382233025898109712350246669315879665513769344822476122633579822374392919094460640113518284603917842202653971550911698652261590011301107314683303813424890289194817353944727807350253058347823743569358793593949632096692850481557964179747430651721934872440783245412680600522462577260230412544727648076847839315662997022668941985479861269437496864005380424026131559353276957415878175280973268946778765665833688637417560339536475989188124242105991824461939075027371479970601247705387569749623037831531411421809909175963595223611149234386026405032569312146382773592344957498031838278676486032922315473121110624386385835241415244728841281654424864242021935562903268505246389884870746722168248462637058415825749103383913995212921007270537521940314445866770205562993555656285349773050779004648411703366319562305292902810602623482767685146738558108520663908114026765101094894900278419347158618260560359397803910930271981340316306229457278389699014185661839163866097804098914461063589400216317667045121615157828847658636971657629892340983387334606083048271838143730965334325968791235667473741434292848190326081064386886462598340255302243168203160614194205492240439138930064543109912890928917167925287178615992351654701680981972662498055835134839561156227967043958948665002478227914372833029955928231112100762766407353426846883866055876500904330023776948941477538646282481199103407974230061594052241890328988659376267014073319844259508099108620565748766042052627580573979654759411037022155526177724516391497402289305110257239770508928955237290029834578222160021058268128869583730871301724387575951235538421145183894815635221966514704302790294551170940417607764345228172185554742944939951700506638335634652373852746053685555028297360741747133807958439595114778185093416450755847263552148741471607474765226288433134023459038368301396419046588825304739354338618753368144084377743437406641651398787543867208721661364986204074936367710299506104330519439470921899378991123261150747465172457821916945236044996602100134158951100494139181746304723208603334487404982082194215537908327054004121051157278070537268716497944778920470716548574743631675791670999444327910646719785343055719524266026093648543986010406688172658190753813819752882811658735579995118680705688145159645295839158065134940466897712117635140622067811998548569817551296340692215715491805069105865590029205260290836202693626155211284249340341858533742593624212711971181616514117126694071586753854300179063851863442243348265370954026489364887958547075794208005730978686408126478532798492688152281032785044645705601167639216683251488867680851854874647014440157364229661698171280016970274217173933953831243937387761201604415680951527305337972635802970182333543137869640890643282396197427349804465034388565223817786381308079130049979999662037847759972845987609043385456942891276944325212669496132908258107273810380524372736086527033559845003473155207398344363408855654731225203938283927937585404362845287636648659619615055369090306134400773736720531260000551268871972167663775729876675809949655708073420107724124699282264276603580579889324028042505519341099224799622944870664050388269199773233421350857159192360781796973514334536252884955385139237902818529700703027796217297807342808487033451575490718892700867791161565314646905833020514948958054127721278840084118568179636566012231769405314290586128107424531207141671002201442881189339853711129653194137710615219949603492949767759250035274681939121480749000668569672635448196393934442526010497235884337626684067153766700649824138375347472905802680011610881660280330383881286865070616933438435405999138730149167561529918784481122453510944667504007976334153414221833831723413747913555967727667179584059818039880815445807795972003036305722691204814515267010788422638823071905308724611485227062612091901823153168362335738979519051524255353276834831408505142296847695805642539235470416249286986135767265896012904257885343362346264916252258633898258599775871208537973586452679585316820584486361568511716513415847551825346165835725139605707826082773947616712103410075200429020098339166013757731329758202929534165940678121225191103357836848060966206192530595886235929770053722625464603468531982621846597867130544812119039743778769530614294941459136961271741242613769095982124940961439635816873415568552703496131782224510837128134209317089315543752855914731549249244582848273643250467480204590021772462572909608211797021463596456660811920430819656775949987314671894949987393783943615146616634664940935262667552922865633470239301680086018147132675924983231214888202816281917231169571513265460401675020296011621773521718687605688037537485333421622243521354238260912734240940937220857402166168175979377828767271508070224531350036414987710036927570036687147326841798816361762698989117791852242733291440631104401769612716525791469768819877363398718279143177899202010867140761251637480780785688347361949724077016769251718154982233226428606496271606750722837157152259090158302474687166815862071442404802483656032094838648943643835807825942779129688255206828892025907782772136415167943325738857053162211572005642130475818698850552342373572597043840754028684193152673821035210017125577961290559446655973757014399990900125765960690880560695514772285177737549405277259245331204080854222484465029627821089486189091408159513366032264560662235115537527356707030572063634668356388593335545867962703624175950096986492061114302230357117952292111980423523718043103146969057236195584562309817669272715387937568141156546923129168063006834154645885188725308926373951487001432205218894955386796693472328323473461183489895720459604023378720755998655657873132200633448260099404655007966974201907421329518195122146936960345267693341049286124193759419201159526368858807312502197295481755392981264706806974488723429206821521797958164387793419984434408825734303189820228300131806845564919286479014902085094368928388529309859876780726470732924733775893113459758953796031258914504545766848933432403821585319638505467927034496621255856774112948711540336789976846936397485106512621550266532449072753946736796753057111285875411520397874722038473727818176612455517088704218045662297418649868264134510956472666680662403525764826884591869989612292099035177387148038442772391783833073974969329272745525992684119168980330693921264311318894398223837454305987347123434325196921084214051257013464092580948668123699199376783208951328528009218204924144098607251179254650506418400362415842819274464886770678513036352235892134472934911599506524946267538761520945378529220968901008019984040785155555845197417467175580985835940730078251402751553078293137658415684838452732496539105347692257440689873570347654742353349931826066346082310645750340431021504294298334241844996656917214267424899502063793055500244006652029357969182218163830800010513618956192467607170564202123286201598805315790267579897260833408902509230750602028794056591747037348369668971030255205320479425836948470841876698311238775290455533594012602729076462011470838425907278943899995763193029811024669912429482385503878669552830487898736834246050645980170396293402506869175910702011897920191931743981390673442291795871213725891032060377685643744155554699599029668659155659982180512956380430810030630799880211068661285084672251961848458641946887603808311009715941219624300689081303911697903627426670001966154589961400458590676674345704842049088111898583485655097617737573131540298827906266745936388479951268563769509811338381387158798654789060642690772502854877058598585875575889401901978483257676072458541832750974491099863154080182977485639232396387061270817976558622778925795109055713746395036136234140389892097206039282549219093685632938505394734287314933627428400208236753186727703735883061367733211055800904838526934530399619817066938691196371128322177469375542225723121605570021255309061373952543225386606401974611230799921201015343820398928402014927927882762205773839371993677471268326332653707259637447103214992078020287473597609724069430899986780537722147722031714751652840001628502721395624312570802126014579589109330047191570625726495244993852771341331699036135384385489639428228300538280498213334591501255716071909816786960566834849174570052995951305763057898590113808303777060973977065419618787740224276139041079788145679874359780595209969694296233567185780078338268939433362938831968536500824270908045311867059734769498619017713671248780429396019628420007513999284020066145671978289121205155207974595624748345885773199339557089526355781697473946690622375430331841577839540458631624092774925643982290728127541616843391603669105726582325880021396204305876519632398011294763956721462198178509108359010856776120179263976112016460407666714266707907891213138746685448664221069320604449507506287392906011049494255915013067153136231428206458578222395502531727135121207238833515962081678748232220509176816719707326950828686513968900831508003622329883697749417702152310204633257578758211201679003180215200150884579701845933062126420278889979011541526752020536454984762983422759266792372105986953446412585076880549985370953249125115424584963273826241862787469108522445547497712099324951556907830428650820492717569700705775503705417297999326120125441488387470723142242467162227630057912419619583685256607033676521176828337673120084938388668378617824738479770985019218816250931969989129258472017487625352693923567594830134665919855242443307774537798245974834836710036778340002819780947568913931548668181725534979921564109286809528416970290207632152305100587783226934370786648739178758322092748163914244835525811367165723021296078333060324984265832105424002840682384997064317737085833083825866986851358619076020121907635824132638198050439388576019699228781068226453141448759743750286214870350063307157533629919770137267376100804117428176812411537505643579697658096197756550846920017936669971972761956150963814481108785780441779133375161292318062007253071836598452236751978434578750663617850072486100871271885537395496261936109517203797124422625034674303732081057238128683687075957088308746793312003432807764558187489420891177919606166622729583071402422926953849552894165715137379166500924604603922615320382002787740599267255775422317725139851308027989917566976564874529695517896364693984588078319238991354002540058263612572368149892553933496972076834655144233748445724152662440326397072061811244757287257517313805551582473215366175719563186041538424470896079762660337188241423061829426127034689266114833264987808936422988693011200256004897903080076981132656463784738038997089643525124947267247725883355948731721598485540895034093913712840816492665341351995927649730681529896879127735718683434480289556943970651096172655446196743676716792301398908025158806941615933815023572927040146875917328874967044554823801411339699994866523122364076314073069128427062319399777266924032574553764670491486625288990896806539654044652029632269509442041994844613975423412341552238804198166364436933171556603264792637985570699824222484465511370355446365104969063504144624451346648161901022578196900166403658786806363340342865426247918553153716859827143753877411055635384902688744605162179982931747773507156287460596102049519449742136605567313658091704449286452335783749261405939957255523132711557708793595033829192999835815844741014482689927115974860667560071357711858233481434452285595123774862652716743556181062399050782772146364221832979329421141905937893795783749875093071574254377667389645833232844654204769018416309032239433658942564423229534128382937776268711374658257064525926732180759219615349122192869341131269828718489896039644742631655236620429685610810413808822158837694066181888129513637921743170856009355427308603598115795457981878455219537321545701541455771744536883992395663544119270694275837418501046066631302481199991798999019516120450210354104498005923775272231537712510801355603342622626607748493751877388169679384311064452298638255859254497226625832112381811855288968336757989526204562081971649390411867541707697985164847268459914438031209553000564285590240708117644707519346759545889576034907644318862299754598954386306920738458425652153810667420183530537817943110268648587157516224481327151676303275614456564605655362676908279140277428790096954533654330057461847423442847482926313808608201383031854374548039496517715569521819269853578857223356612703456904481642560610782152717765956793692673618373636933874040412255477088336309737327002721108242436700347485613087203568800053420477327129255116256617064704363430084895558702216837482378341360069929588086005666025848843922689484709605581571062525530399211130809523319641374637216146366143785153700262295576371814949413102094068812087300267594351745426950594890506247896734631940813782741913329606487527777063949145939510328023574500939548216768180628190705884769680825152247606126256992915073197238072956836856953055459258176304416131605864676955599495447102638113787275140060137073857266018704815630534249463509708291218586869334903543087530831676270856054500369321847558653249917255408153233165232570169176814150477924324949560651759587661286285905007141725043878802545638392149991127417534371869621466074980336634728217104744222835420604192156726979346478929829919635946310510448487370368702686853486376804286955087983428523547408738315311522703576682842395985791798166207217313816295505817501564917907879970042143429756903572848812170360259240453225868908167317101532542093225830777364820344385580650241988676650003231734486502972736710782217812497022149191075664345032609042106488570375111864752473647159861586777123910618736722321804795075172805304855319085536118669589276594215113487522812489878150782754352338767044995094171403420119309005075866901428409444942594746148454244631734927520193010168526395753819573798611930364627671164120364353611049019838462388797177832674215986413711365928836036131224079632278297420763305902991587821462883398734653521388642338293608085943902069836371081035719771065980862054769145646664597089987274177025791834208850276868185352687604915797908948714761311123354970737506074078733969274898409005088968691750595608732405402220615691865115477292891108837537823040797597823862309664656516992158458230822648805899806614593097545281811748546929525597603760629447911282274271194998884377048913999756756685664671656226163880063756895860717303120065964133807816614434243317492360415842844121729353550959093536070465376942497704885573827498080991469955129093266575344561995215116041034327587498074245199950757251358711048152394119574142170221450573424863674758167932088175078826673100697230328080465000797472254847793792677255503055029734844360075364611964300526256986274160401442632721736393575637011398497558234339112303032956679248719948691192044584399552077780426248426507653464385376895454323933763180477946715846424379457149391222466471415307154034674391830527211052780840949725169382092292781856165799277408755155624884982131378940768133318162525014869944214170883927648203993468344413061422307261772114027220429177742309780659599031694531417659862849441797494741113212666267078837027860863409636028475400165435394440883520653649413158064904690306915635835445883596331152422110993291556618869365679340802746034423018987927384393704058651408341968645134066572516432509221520477669521868853727007115227541455889228811133497002359206387091726160479359790927777726660237683809296310173685026521663943843191593732227484915182446507466067492382791869875691231616526253231596299842695949142286806958320985931759989135511276691351896276154513876853426449382581492905900687641768746270419042809148448311161307537201731536471257534238786165497742699797614361174605838053299006020047186072496812329413666887761719638619401494880427015117565483334420734090465965160852293421637164256123439665612471057529523381864991151150131523355865572831864594614203012420804051998149531240155477671901636637030358411593146968643833992629377920214564090930664010393148554979889713849315911771370676344218710596937403077266406900494486457284526935367739212289033293063970323168162775147288085210734016146076942664004218826688668776807871046336202498088646672896999178077170410336971740220636207824479277697150201767067907977011636472924938705181181462622927919275458772475518253796232641044820217629137842338317595708938393677200080860320961488713710339915220060270996200451100729696362042537516987290026018414662806924650240921300891420235771826828843030372381011908933724315481195125478736949114431910751397667511116974548388276443422608196482079701116686481559840008513350753907105152585697852377058082059614180175345702681063996782720819533799408566634241855813206809155465126552889808615126126981478237683641623396553110628696987046997768520877202263988228590307796649390368762941639941603476766407137469092289007478984517590310733208829163557579386060540792264842495423891936738500638609718504229045668610414726439637985409663809098765876597771218723518413670532508937338172656138362433927592381394459314004352264331341149074869348266467515918899183651516122050221944666111071124340440657446211930074204132734072260707574730079551858644329227033461608132555045408453119564540797159146002572983731809017856327529301139639117403274797824711303786869276372869384432220983159916849740709659945244499584000201653691015712400246492770534756826632983122948231238106349827137253065642556630845560695209691683960563446744175301063520699994911587464781896694099363191004545314991061107601112118866736075245000539006307119411129323811391183713520215183362121820922182229459564318325155852196057640997804710030815274621481526647977337434228900596254920010911287938808778537938533893512913870078190665422225318826336711669462361503526784757753365645365691585674409141743487950319376178235940724105183096434998826483654709407159783716442226501399528055754720968758590063398575472783915597214099298273253111699132148504667775681990225008721393672316013404920900902655308825450322693062225036732966112668684553727933477892681170139986514316836858285350527763185021133106096122549111763311400379529849371261764298307912497613730130917609432031626342011224137898016118588469505625386294477061844354839501540262090777155272570440094133964324386692405126404211555566031579083068439745383976140729352342266941437681928119679558126465715628949850242202817956996483710315228675146288705172961473104974253310523999438350175608755057433153750214269097330973319968551270376663998121403678746101795528424238209950714506553979669992992404311646794804451498462323421695058029127172636159026016067653999728515126547616879053445655941622256493140584586738893536849711634955170286493937642614869353393117942278870593328067630562553081438128670222721431711791475422914000410675701416866051819209047126140142704145638637721371028159133767720719659837920183919663867282436016870687105789363411940502254439118312715211431593616453905210944865070734247861177313946194197620575463962853867265426709820873965974518409011112761366604771235606736948837175166314038329300331245111992982414699129170766970902114939617806123572281335396931579051001593602756457015151649108824424837544632311117430445384394643775255737767070465424594170201778637509177807523724505410472156055671726085537724245738371636086744051993732226968415808745905671888722332369726607511049714096561907251466551027874869732050195653150313650196260056338882586714366493811435521728139597734289759794192703766432998926430654283738190008856492750615562692265277445695411190423540247944452212213400406952457490494735903581870405060846027926987571296582599986656509942919238216510736538329587155973035559443661679422271585526864721658077672028021958482995542204664738177930883996093384581953858463449912897233187724302100552801870844799414726068186522559863124501269473356196873543600915597441692040769559710396575592767159928665324694567704650417582609768604774199568796118232742758208900410554849053245501519474619454080684806713764379784279415431511760891280938277624152791662876265225685842789894987707747456071297572155835529325650489702306096573704015023247284798986302363502126831356370114246346099207308070135632804403381940828737887518870723016789567897950842817430937301810891784413706481188290395800819019662076746930124561687921498266888153282358945353021525107094605570145979093093869801606277694235617190143300232428038286352087147705826374446695191369462453635225054186023764750587247926682433212018465903951890875459032943914289785402503674765245322063370649575315833540806249958456924878444812765272071349339600745950329417517639944259000261082327604239185250422860337154114835626596346581711204793613058856289680027513415221140875963340311262792767448624124204750653275197498074405085065677349780989972258658868132707156261166780736514372745170136626375270842071588686172241275255318850688242417983797470127596861855020682192774557681657905875093399470588859408557334912463428666017136226374439687741438958789411862990849537790051007254328595227111824207877020006420839610923147017958726406431676029834899442953536915769753520715786010750583744492235605753840550418794902889507438891014799034861570360228519480087253929290328160363572968702195613466283575023669850309598265642635542161513454474898443915224296267596188588516143733259680138881433954641081468936299033058510612800624447388156477059055066229147261523121597601934294778180192389901905798621467092353758253363089587886839498134931345136115401770948214605772791941274510414400335541617201232972392553394685095118996892473770785220416044006987757558887571678588692353952945711210195670993531877488573746578372599684541993121095976504848518667361793518948245353108358827220680876715216533865154261941853170671681670222847785379716350008794913400464205674577132024067744158134685152351978953206666398611261738614242153981710663993255810186625303331721702724012608914276966196568982435579891083273544509444807740880806875571545769411160308981250178791695360376041833836385840759853111739305538901185637743796911835734944516042633028848228812196067054698825500516352315471751201972500026015839957231536216139064881404224419417724438708266801361003091797913698335203292619217486111225980636071776777526449007905756244693006782973443207064366690414478818564502021440088435246250536436876480703597548232763615097115743380207025228296779672460474930362580848851467419989201787932355228304643234408015714849647077274531118638920595189184398237043917288773209013277817837194704075565589142126785124721732251408003523057644879798155077911820621042573978048217813743306287667888728509526102123154224374945335251958809600929434305404629550457977902619963591640112531242798271818771156608893023124949283985063140065701074748768314351758411782911397343912415045612477632346991398657866145000044734696958805072768597366445097229121163724734503853203040484411318929686019773528208939286476685594216359646826802660416417451670760595629726022402781968771519669503164454676318640000099334572049436455004266101465713137896900723866854654657563175454201236381267911250960691531382364861306443977165887587367578559775988479520467020181562879212648585714578811418689649695586452774719965408597407145851533481556212085471086558698831442324761310805265802543879458336251028765877259666616607595535469542248325146185793223789450207005814837287342706417635177671754630202189061688839194046065137715509696272270046569381709817596336991910150631006413395709603016201390004519657199615547270922724694182993794510750293793691232423246039972863040713952606713728283026630138491023106369454352583363851728519460758797205966738502446664465780116469224724013048022342438996670092830001097826192636758169437859074156847563680030925246077914126368129645875893678140318748080440711477938340943097968925529487051938105352933713382147688756658636499756114559267200130074542425858438047255003820402862911237458104346223726338363475211238932080170230269116797074877457339013499208848926057076658969449699479973054996435452063381296510403421010346207064475240171517452900335016665020103773332340311831758793243945122840142098703713796635156253210341420132446290143616996170664037044155250691415558113228401465401317456854495484931907653086799339794289492964303699965384882065212002601660279150976927122359243384178227327957763802329063612784230411749572740350262532854646654534123508218929595897381107143585244024188416407952010412342752864406617691558528045531206912516214237438408299878692285919130098734902560269170310867482298306392715399650125767740498614906840202054804638786658933912452431659366428316447547292807981231426101165960045683755914619474052698729641919567895333947682097033069852801426073395832014097839925537931931171297628680604961266412220546680338642878623467282046920605004764129885270250729156558629327205962392733890712091982759588591867912352897215481796005949309669169519148857295783995867974942607408703676465596451189469403654789032824933829599544014082472202892715038446008874166285496569909343264593326861986236067656961069438702432328779081284316152475162658453573222506054292745275309666655631490556162056263819600180723963882674846203903368013387309145725316142076525330309673118881736788174350399093835770620346488040310418786805648340519868880709632208708008597771029876408543234317465815135241154283118090124684676648362177062439670803651481391477511666116154370272514459429975047440462502354104118862084153117740508870224552533088172924520879250165054257669149489440453401775079599459103100563015837900360717632458277733561486166826290375529521192354558932036699314475527946003077669287314227062886465831286265100074960135089410245966895208342035731536804812330147783003873172087132276359699975318808237732617632870361234052971353959057567652902348727561275605122449491802703985217809366878673829567705826899906498065513211156064458535303818235760279736559917462853565126423211019494506639566484590759341218892893885473338445003873125777643191134513991715821069155728058096121830758792106174889159920481212956125460132241157396191807835014615037157144468977549076501663206333792995374903544264162806620146818123649251424905406092805396834992087780196990012270521874715380981693491854159828097457355328420383103292679408284530184917177932617047854604389254179985825654104989475570327199919830339222641516473570094185972219630307554655970912448159882660429502660380776359166493825329614015212808154500865968455030738616797129493003197992125888690354725877678008994701335602775316387966120323812243887094391286433991326548530351076652938448013405706861010044437764849261837614541693246004402354515006016347352484897743002836520482209704713802752239788118574807028716284991051909211742795641715760102604222890014484486015402514554854816662879579969290483221535261066993785982815200588520629535980661890747478032353706421330971496060723951597166745284862293807131086926055759234981013520705590088996851180377949636491736801760578826528798989302894966879269011364264630219852698632139366977101907876099339941169521764271170322047649053322831116404312007815662223277098829696849468874227025676408761328596150268013237473756775920031791304431422146125058345478343250557997491832858452175005276109954491815924030006843924453078640992352791856987743851323787464638977177987321523441138837872163359034703873224474729854090896499068497058853379149139180015997863082223377593263385848037956965536296990422104118140376005653816435910305785224911439955490933528799397410176385192170795350198532209513990620562784001872303454191147205765065391066941308370297558460256626903824043016018224891451246782818505654386948391947826921698799823974168849194485362577069549042930595342980870558727967348196629549092899593071636246048539276334572824430860393369178124383403562224482663089295136584733486988312589788034487899901407719782654440081485361223912129191323428474417734026200396231578756640153712336429542654116563262437146816936599224113020493708926786743737974905395255322885262168533738916800063470244241433670796914727791479236373513136384289557109430842995472594332807520533192394103717872252560074374515518606526303573016032995301513673816545521169881437311485574922614394291847363655545721886931818744011893437672336155347052085719022953546133237733938325304152899428352223301312750897779201499557181011981207086624409590171062261019083190741874048218518768371413131380143033847903862862788629256785022145058934222289729985965895003075691258400005782535332146358571716071347028246296728172887833770821109827636485235829307229084618435441737387387185486500502019995754937803032986678267468744848987110116380028373427850087513906447806674392286411854111202131605303442746234427166161794504861754738959509789767378333773396464377271693241462697380264687223006893107337528916199490673304093616455091398515577309455992990249470302075221935742123939032177551533507771007882798838932895632068271430083572065737773403351368654505275707898399196833629689755720686261334001562852167440196965674201299585346371584453204870738921485325190223707977564414499187092954357849932130070921639220384966944801615297059647377471376411782356705535040885043438096557499377735596028170904398293873818121274367703084614329914494173966748510300269825876078948847851630797993398773653961082984561143025286426401893351116574353384727107758202246334856851373046032458663177501281279552274743357165685886802959798568273405442371054073437755185288871295785852762147293732114950351124017389727634904748178425444140564947418725616250111765191513768233994099643806316115977004830176322431388047178410265551847543520578504265295329658768826280696936516012871446653179818600041252195588824826525172460654840437412607234285294511041845588313873225345634684564424468899458643584931556412373352017837115001334818503896205975346534121817644627968745634403917885928976317656332014016084145454799595225266577899848660818067156858085629138622079830719150254627492010692080830155055938098141988478297136921928916962590422581963711499544209002147685999512176547389636967422717551596628466489169949413021282734337017555400443294303275894882574630398294502435712966162564176200774327928714810401975458478460713564097521225292592320779562029913964273412284251029558764815008529787456598141908395680156736627639362010101652849057759746766755430425041092162143178844560207738506205250313429197740181401013682498647526778501436792107129242336410155926365241804184076868468421685656611391236814315888226485681623359317709656912848675501583652385383987957843722010731166160901617932068440394396770673533027848649220876008932894037137103171279333350954085799686439529515044644583246452979603472854036590466248525441407715937421913947246626217585055568193767772969492150853610469878538544812056350741480978908353693328437688960262621935286544250391186177792824128112949676785580995013776501890703461396704782098628330946532947211631229424874169545974605895018054120127859044551029059555445887259958522920251437562716112621272714865246095504747545352086396695683108914947277953013401675168077809057285755761450389922349297889908257392550267588302701193594575496481790803709425366921615827498360603204088100322956544577351583735609686433487409558073098398611214301439460410002793294144530619935266847796303899578317011257700113401945596652641089721611809143106439954350603003530931881637920324306979506249634890037646470917233299763500330093418900807412355132323836612345829878966117311677997786723156067487651573804624579805861876685069994549467320849227252932433124806030981042661592198545825817817557548630623940582424610130477894489068354452831379678544093366198339967551180150728835090048555009538805444998810808597152827528604615985462922484835988362841495864835553340707517397119265421311716982801809020718918839137223764727599591775353834948722304180916628866419718528210610168885843316880254463980370243757882792120641717913241413931301878838353439237341656341371873550411621458274451742655598287266510576209609681580222115436460787344862049606462924362388938903649245828924994726282031871369263384957086463068259261563598747096035672212468602976894680302735351735943388035690359999213232901420932172834402940757628201297009260995896818593690314240376197423717005963856562245285679364441118311973515554913170087843429208301476970348401005581544478655644070121518110184450079183725710903290707189392824665593738673648010069291423945719204792693708950507720195508010726780201808427067613999450587558630811111777596118330227056184645502901132149944157975834514844708977885491878979664919745501117980902234969113758906184641958058701236118784583485092944579396485588610148514593774143000835881551079598364089460838494537240499387442828220011257520378808707202459709325182890799096936300259100214477132049708326428403329236475117287315240269657627200091349128313420286978598935761568665721960725914311002975778939441987228330861947316625680188312219291189350953898932206026350320227128267197597391205367505016869641371059271236209340367963216569431068249910286182330037324821941165892820086150140643930366088469511419703495617551714080124213316867325193010363188514876794629284014158900081397919415546129095918605697354393882925573827952452915302967226006137867548717582449696544330020370920055572364130223737202344401945479403538150841553470282335400742972153052360041592330718364784415720163481264431932480166955127818292356784841933506604338171258584218172306468653679347631179538641718432707128401933895021648365434614599834580921321168843611024464944978096144283922846163165145927034540221752286009994926891009412104056563927117462891045677553206864646337702015104367920359690329792718138230473286849011178394196683470682124637841707784696793019014685226533753775968434112928149791083977048236210742218051325927132075476734102995946348713922407485525825882466874445292862941656462505162962592320171877964265018283916812591235952179048354012010908144818601596459666982081104027464934101040400311931898391670195629216796514848862384099254503408667779267125320092020400086292504000093543589396256146349287026712855521939265841362207220082565646047530392127847612371654001501646142685456486534068182200396900385055329660565186614504505014279529669774508092338249997604308304503010177201929812091158007601708033929185008036792683684696322435245155649906647854448229554505364344266897422976415667557093847534705309204747525437388760006649859924264380669972235760379396571481236808515407311480917676245050763305225128706361637743127595709440382344846270354700883694886086697630375739264174489042265961488165186690441384405016329756673666483385308316462477195935547026344463351756229718358986805933634272092828331360628120400265054821566308313161029239632534778712664955599881839308573546289791516401784587333963324801330765141390097789917899315857902006563202956773941464110344548707358450274460150265232085009310567527297700606794035647680910404552892488870856699623840520479690552368352398568225159546384472421114429830000423445688185992683181582587751444793836349906894482019586996734489198103703193541489871493746308537175260118992943040114061636620262878263878440290324084163782352503226305698827030857548396198171683952862739978325703342742670688987046589459798680684685405496562070091026769687501338911528159851323251894279971426794450782946132354234692434249617702564836978676953424340076075298624809380726771695312477586863767431141622913069827086035849552605097925670609761119282253365172319182066352408915085356087583307733718679606776214849074194160423011916616763600678546560147834945097036033769460376416478821855323212410239955612890441580938296491089031113591470104241705720362353943159817682477371328130578373768680530160090584133207613428516293085326404408476732202889064601479464550606669322108329039619410910106331524935500815438644901025328808399226062149407721013183007394637364070748025168973898577367631125271858497248452445506412644759918032484189551152865921915703334344076831540557793707920322712658914970790610805471645813495731791539523167818453676700968992592878960032265835251326842719769703554856345080599499906331915231532867279571176730998999758206240212587762111655960363179549187189838627695550374117079793070903835310286760609480732120213241968584394175655915451297068149051951990862749646890600636106872745096090079012443575706945355893559734437302855553066426970226944745340959483833212855082460259462088281637235636372939161533872055497569559521192276374103682217332306567551339509214821355180101986078922098288972410602026890399835997199812677336520753062234011635403081515292882236780383458772694515261239330117101110776321009100279493650862437673664869635221365583995015584928709731165040362439621009005500586057689172624284959771378723315924420765593972396274749143975542602941909342309200097123649560086667234072789631787945531133364913124327746564382469499320058645397611839151580444824786426998772849398042108479337114095085840979068099462008682686638524668891160778052449658982810075831835314830959914112899624426643426276932287341879434564510842772112846163509733116091727681940997965075656473704649561882146683089783990067328297973396044260715017553216076937129201807260956284608800362500007033011534879967577007222790119447186092306136609605462485731672292802883249495251519824856991495006785346821142058920683465404383914469125488247798941859066121272018862103796539403732297632045599648283509238317080884778528510791960006416483332378380088574295130045081598054250167128558271455563759791981942613291034601623993621050322049037017363849667454333260802045893481046034194881262937906763718954364995723108483091354363163474340802574333926381527497645243814408854810993924072007637739893084277563083438260206015092145301747811806812944774537134482609981564213167620341056685667472955998341839039560483329229308529229867122768883692605675377612637858184147714655695935134570573061329258039571691343737278114246935198131159318528563860366855730511816766529158245328988832813716084392666383405366343027144897719925587733732225892307429768396747122569608233409852067919091949195245881745575255646804470222064896925692289160422987557332235266359615122002380603438741165291589218991248161906917976631893136176275002434881235670900901356610958073845407341068526806561574118925775744006943122737781362846767070634701753768760493082626430867539151168165801421637338000469913454851162345090997118951351868960847756868120648617658799507264383706005519817939474189658941267288024757860026101252760020025842016003269626488247063884199945890813036937844229691748228596697743458252345929357955411273176107603671392324491929465691646266616267779356451361137333861203939027353875456637814838567647307602426741969289680924923377702490365423404447748960370076292833070407318473726868430281001232064894890214418679207731517237364525249317966293543121267529387303507629623839490711748578004089272610846097866391417262661415494678577699768989231138327563322466466699799924009789489933553097415039568291690204275078182017522233562515490131001958808507604801401823709837673129479574905283212522883926052319236921073682614305503951435069731526938821074544496850700042524179518240854665963504971437966675688936733700321117907829976721080270035198483663868845712073589285507600969369393070016136000396302687316443103858679372479643729385268432281246023233901312698051810011283041537538775002024278961847716100521304500288333634149442092151972235473541451456476805500144688546807065795717475559274365104877434133812498423918706118990895220448769774143631180860860565745556331252370356276236170323509781191498264280150990283109595461420675221831666683328229987427968611161041001485570644812998546835116298245876702527280142904117383810272462552714083360747035858749292175080810907078917722837157027217231297196816783757052484491586836291623647654935273819920660837583558122216547111251370796130809772017854488127576448752289119758783190831178419101452915905926892520164271456180780932905120469326703890262401365257289752717526355485792092967956848721843718429621477156139196178998700842516266600679904258016548982619959166406877119986977875775225326686342881796137647573388465800113154857105316134939573316375431371717941814074750510787979232663039012783448524724504579039919552711979089610881547789755594200891406909387360243302911481017409921858460263585614919113878727195768133757643200477167144904446095954156089543496346855487941066079310754401389332738380094284204917721528746172456935249131209999625103255063434794781478306737651011386214263709541564718851519818528446981506160228120797153176051293458952161940770728546280618508759621095065090335008429266346417963175839535856787336504149183457438901468035587263828939903229599136348830607428825354033765734171822843156453045392429369247214899422927998308181042309352900005017122146943511210805770857758512999605377684508998586230163515184023317336046971168005913151085293629506449821693258982821265432380223981645828933552757908348098825869200097854267756461825706127468374051123864091508072183439780663849506709357064225794650023983785570212821939220172904373208649553599200863261890334808989313095111891399253863921043849957826562910220452884018430695653139604389532134006874121482409289395528320073184269385743052475598326087207094169420446465006234223195306670663836381108832078174902078767027209509798743619509584646451945643830462175113215204825969929240705295032299877054320130673282332058065838991128897168515703875586918125170820127525743799381741233277958890135233614505330952119549972649860357870062011618464733778314028144406522291450773009416463309408110337364236282077579200209388166996924230914575890196964566099686890680521716115262130065117225534389186976403645693669475038252817601304574603244448430127055977705263621127944393853551405651686487219466441841729328174739248781617557264448529124336466168006723032101459584281772391608055554805475639391960057688402964354129879592067722960450235126962053404033466997752122365247390224187695958884397061252746555022179474414111726968325504038553157876031451264371019039268840218975793198378986246454512773332350990819231561119525061528748757428819921951770078925349895980073082842831994720724874838937138169941889661649556180130414372516017018961511057663708754105151482365993943408308401362939526009759199161266286406663818724239092872466838130198994582611057651556320555596993015153292382966186271910895106150065846291539301177786101014748959325713682398663744518570284538050308455302608281952841154833023412982260067430510212301131092747047694738135135059663973856766879617592609104369187851504010891107061865753607802275926308408926296867032547994034305690569418056890061841500457453561593484589834373489459800503271285099510335727514864601220442850986966244363226619982095779797975352316223167707627137638843096935674868111214622423840360800471266075188372102651549103889131215711524745461904894050346305768697714581200155123411714897288347368645298274407567383488301601156470041599196359560394307199209563303627048261836191779856183637125335395015476401570339460917452599123018413127844087229484702674082692682374028112185936515382051307491902079119174077261075954800147877181820243334668331576820335529655506624126137267043023068914534871376875560311913001502427945459586858447485279911934839315080911132994542716885778384997220695799788047921461037906450406190908074179683504066461355240643865178513356870592449810963168576659422261256543644719461931842222635017823233404899885972508955607915881615421849987013772434363685136684149309989918516356350939531411686651739286153163535417536827586423967673713923103121344027301986047180654991189198854786387696258802573164813572653368266749980516368443785159729687618148204257005917157692028510757207116712261800989257299539528892796738349992489858038557690158101530884804744499492511781256774874085926460750901748568472284936020263072994878621878175196072330923894436267666241177432760260288976442638334260712782463719525950414500444182024048135276801005877904034532659736394764703631628252090612222242948895166368672392848821423351686271344652821905889228687609433799045247492219285698697043725183526338851824907190074515999706891786099141038080561674637865598703582640548325507863570868959897211004353761069700537377552859613572174109432955976596152452623259994878502626304647404102489334630191064388676129115059389853004775715662107509549977002764423752251330460814500510244097427964312666657697741475007607848422550779483156914650951122028014334631069740888188491781822354922720697005940536738615648725299865510055459055912576470620728712354788732313848952683282718875500523455036616227603478484544835285049260177411791447486152722876778073421852661064406897542408694324167470442803527529420588041306672979127980894421733049866972776709512816196607881762591412118543702001388461393430647614638679983934244297756615754681295487783263774707161169849670649699147852918622514411157988249020402682099052270066971768346422884817721392738215771926686067299397183134956347011006910098795016453922027871766820496408962169523534106038125671291472473003591231479555132507118719359167274145301894437140170439503042113976950331315499650650455693416355108550695473111141897515261335918879117012251537450882697140330037993754802183113835223249121932631508010969914240846836654253192017205646172679174452051901202150201156530637040637450765336508538957578066884733640500194177398908854541615732346710096860182813249947518521225472418946487265032981047139204185127365928448455885333454888297416489085150159306436807617863290722484930285791511023045141042442763860551465146622745148942720190122372934920419214803398043689226721359367544318606237851609237256457728642750572477710930789169496360312256455050754459404703598966103608970419293374934286023815783799069680877671202524547010219007839171369340181159592565750014275118112539676247575954240780922807387129099759388428415503376987876824485129094396904305647460889597246255788954695543825675406651820673556770016345725376442023657720977544369506590849877558713422695291123591578962382395333552752784827885797098952682494732539323995988782953561296307999018072998061302131363911336640013272716330375051612211366970053214344428520338722082495145156645114740817240155723589525914888007221179437033336386280414377956821534885617677065590684736007694378018806532993046249690250749903762368962272292636077148535692575304662271304813251830286749476667128840179972918709265216961051793819504197979046165614888219212532334541646190770634131041441519101890251194740425943076288432323543427281551373814637270182962041990109157142112596130789663717398583138078764839865418609401515203852154925182203791264993337112194545003690335393581943415218538157752512136350392598691509705416616344201227966179037188047838818397742245924201823402246873989905907230206586448711390414341345175891288243500940527316209413486631078596189485278564549567413070033110197981497397964121988531406677236580662324033056657645926631017069339764555837092672542060942280724819648977133510400840598458089650769037506017415988769187447932971623493076336730610087500934070043165105135125537326031285944659429049299245916603156055022251355696666792354798620774440201031391710213874884582664707141517868024325307902614833605512581275465011778185804390249932842772495266222367208023264767116256703804092030826955094887656906650986552155492021328335515825709543012791549830722861847907455897931720815863569074702910884848489597098588481500658127938992642749490612591821908912153126343849985811711051698533011841414642869234196961235201483246476544208252249890506820014722663737298529054427963073717029413784769207484913055143506832815850028843191079124065451472460081796906782876966960633598853833959296358257870009647921242705295505550556052767654271547676396354712759187672080145166012074623617105023333645150870244188566607069667821833184360669213841504813887056003249653992235424923451725166190937692274272741552890615455982106237044859490048308810911829990224615522709043372312419600196515135961113570489247474204975057679797113173266124289925015375773753491685096645399397034159505810928399734619700369489065630431184940515059848665872036805382418888009599265073378888336878845915034046675914200839992892154036442048580060760359739166496120753813412897691512488334237792368026172528061298870018135237968451005134188713536570165134985744731905412201023385846579537311473877396646288597098674969584218774578504627656563035974466541381858424862361839855462271600657445337522457432117623169433574427153410039735244354924446496129488030844205990354785028092768402618885479622362604629400845810862545196468833241041385823841731635039060541512220148615001774030156546328201768288225053910650222124029480046440809291531738809738891939704970510070101749536597205054017420565186902219693375047225803800892718720111729726702232789212018205380087002056097182028639030776355192731695487664943575909308146508870877729414294094849942982277204601207840745692163744608689630193238225168125072309408275581985936881982705075385653262364741447617349632581297921575179659913668053936219885485855327538871343278381535740453597503101425219627657904424557348983531261783652991595866241673823518176050854439438323823794021098920677300478441323869657411213793212839345632746875816464068920565558431365776042659504556895314146146987142771527320373011818944853123180218581646726925169627544784448697642295070742251159275192335181103499554375476882327821852009580482252360595343403196602000943958226556910814010457676625812596282962001207601773833841056735303870671705671705692046362078401133942477477135304042694997405262385483554370590517785700467450467101333120987044182498434122397998496372570290744971810152185614756281439679406007145727430318232433559351231062233523204466680211861895228925217510492424304560894897947862724703350962569672006417198294528882604683311086615338984754224960618784278477126335839193207797653279530224488022093805994904070611798459162701165948255868966132804601858903958943121353376352429064423181591884687331971220559386277736192460344361679093170932119980251928986030306250250794020236176321792749811804589900124343402321995827148987181506186919632161518546794262361122179589932708377684595436244605271344517439594890014586752086549672237813603495454140308385155852587114366784365356748898567242961240409531879334261097558350530804189927603602041967481886718576197788526129825079683629743742034218461816021492981147319572874339108103597098690493885153513392907436937739298981342393944395330661576762158009252857498040225709143957334013282705635340894029748872852674490755750753479246944231713445652340750156960053113340125713976528693896655564393284357061263084758749388785306365872398713917121755590848100334038895784389091524867491265525702171421918587814694144947225507611439103234155510339087090256522316429504280988122823871576429268587761315527264052485846392247654953240367509833915695283936511255468509043884531020037414371390598084839665167270116895579851691437732544960730765669186582820817033358628250609000388356360204431183553016547522846784567225482540247063498004523927225509905172050600484197526442110458998219773980458263587460866713744810392038576126545687402260445171152536684542805260256638148351515032525139894800825301630778135805834527219800485796523417564784840410427283815706964046792711757276408535004907054763822221559347204410258028494262065572630627073473606988253069524618383902466936796209461926330264959081369516368711215270344895561955624041222239509005513287706772379860745127102522503622265403405105247346292243998286841561718312705128530919860739956970487469070760222739369757949642211154282518641954484245097671472250229102898197636405035010258254561022506253351165481288099666506437679121298427577599539185156091291684526996571727844799997511405962018005692923147845018536230076070929903140592433565143115600045005001325750997972567903696031392929406722328906184721854660835662868511781492922534209318533063858626568263233034282907950443345997059027656877841971271304678921741497372633218155265222677886208881920100975720257958383847961315599294685549540134158860414812686369782465806070106525211874557157929841430066973229399478241925919972342871463449278877635998947460738276558324886199706144498198776596248718076139832419289149698387709609345650892322814464550645601009973133230736606927824950313764426331259319609544394332415629046668366700737218689544578412381055156449496885806279116045460542780641124277748606439953412694644171812700630192781385386855329502477389178034409548782399305678124517936444904868400008082264168338874301826847496435334145418037104286861945425392532868724274432342526341043459943936358273621102762261079871829195463167327171158767446145332386293137419001454094761117107977401003079305345595878098700711918737463416904529313422214542911011449124753177104277499645270196426122077605581639118980757461582601452121031363702721114857153538780398811662679892047557200978242281153644375483480724963859188498795118716832357387330797115461487194401592544428413697046929221440889468271538167030483424132893467993603340064991273003503419128740347111090262378805940902758197772160887827770855566654262298555761376163724471489345316999974453196600162216875626862718502229521478296755703873496172427243103166571242651007213044189040081281815349699891026400036833930117644495257022493321861071020317610419735399018581300815827539282534598281331223304387017527084469211936355358847102604522452248316686010724111558569044632414589825151022007469700863769666777955903909090365411594118019750933519083595372960973642690055349629635811144336590850950972246162240211430210883738172923964710774883115946780378197816955539298279669848864030858079426655443008850838209350906446328312441259481489235511468150602024390654453552087975242868727955754248372665308383024102288573085132838118021747364100266041971338649071414956054044149204440133925497200973148104052714225834865641157125739829053661010719633937646964851226307903333602444675683807199425057947861368549221604504527364015311467919014029441594449243892793668854347694335078057751152326967227236678193410263025375132200574953878605970828192265979581159002496632443825591542057841296274194669512318312661110079664728981943467132838112422878921634648205913699462908400455203697647002311414191435205076814285555034379559255567171234757613562741382618591278428303833677264079445882644562657008220147178480950916160178884591601298542787326590799251534790142557673226985664869270321906867378976054415116120796854252845119430463300430487883254182562665975054895034362632004069649996806038030794613248667910023267909569627010257792339529112561579666117369948151580278006194153597429471479061283325437044242322425360404687573826760813790535163249467925548700740954005619519174363064562661563760477772681445078924884137834568591537307567235952480276292107595280084376705908911080155969371793457382069137528017957862081185271566937296853172977027532412937643811896886747526009689618328171016691320285624172224178917853260021282821567902156084173262004901048652448820700939026260456918486047907788296295989305329196143944631958329534509243425613194179915972230313083828384109976718851660159974013895155260809098098427496317471308771688520359194693689294083914990397480097669816610162411495715527781937307578390702354169696053795887636695260146405513725230029505359320610251976307137379322676718097092781936145188750398978789121149712719662553680934250082591833974339823178966856577193254046939336638640443354581894542073948355785418720759132525535183225119181018935659205821076388099903332421140154881076427391193613871602161113656144525388632036502828400422233148370128972086526038534596579380163752155544386544929480824618798256784099851188732143283205374854096917666122377020426013051709620487888441755465001723354904402977702431501930479877092022640070545991611152607598063028845340045284357721863146221243960598681351053618429416258712262313208958193796785992261570673983469098379221236085516863337555774998568902445201098337257558414931662719501018396815009997816127170524167903396285511296632592617315224488925478000372259166143704956622805222736019633148288487880424455162973718307799737462720223520246937731049253794565193809126840391200788812005678787424295504674906324619402556686027251963103140301312209659297456799568006551059196695656138041580517755539694364688472960758752495933817503627498093036991670104389004068659967803057989398939796322562906389770849787338613979344034512706321210197574539793345763384736960199484664775497102153428769255095250528004135858363922714223986008211832558228038596998167562964757598746187424588879076628288899823765431943991638084915273081712848459601633815133358450592270735976121097404226623635831971601764168799980833214388230318284572014836949398687879336569640125237886998114629670020772481005744493514361046404154104877759574424791499934566255007635815879455812029579450742967472673336964820459872519815461739792956894292820654147459139918343626743494002453545912431184243018162860558574890309343064014500205245978447957382702081858419957701753698867199484790652229035631086635406494522215289314138964944034408910647778474318879668536110333914563906123118725574836726822596769905196783289321697632101122508682225046735955521265481467627146044954953176619213349655534957123179240800911013314687120498865368961219780547182317511128221644311404565706515521305776360752633681895739363518542856793842121115584332017762605830633120497636821642292345193321069112530720837788667739786409416041543025491483462138015062074360676992641869113607896039087452728214070186881698806907691383588531340832665423761009245588919090978277900903424550886053592772128081070843152633655500415570196259914350652655933844729740160963898579142655599342255839778706182989284669370871510206026829606964553576098745867137054299417422165146259684397300310650767068796292959323519442475915074741471340168213674354455017859946734227443970725996267238805423573616017702769140598341588874809604408505348557133289422496655174476956406586931425610883360673263897222907875564884025627121278627659434976644967960079082863348766487490916841997506383013000157661738050618937821526022445776793675624296451448523550636679476241192181950520661626092981706315660221128135591935996047111502072921047263111175745607745903579771645436684068389331640746677399492680199834078140597023613754149146232723310274152890042886553125566220532946762554368387806496018535159819181921264164579864943906650725126655059950714327439550363364532371375093646972725439314487186349490811105577567703138772641609233750634202356622180715458234772213223114845382608849771628791024550317243628746549841272360001628066263067370307662665750864993529849224636005498759658586528072355475670532636125281803963302846073390673819880419767074962231987458610181653608287669592256937740478375991475447637608438501932333879595792102109785070459411887940387103073094610183101655747618152254488873493754144568216058285458125530008012016450537820808104656329845117348473452007227672940628699448452501289638040616671013988319882457786266110197461024506165788274436714982737004383778154056500301792574180036606688692791706880274419141994182159609618082617213385395430814277674716420089231860651919291459278053764723324677334696342275694300516482684833460924925223545666250806170701871200506446236283359682455204461761848483646849071276184591415728378105569188610724003163089483947013422339968365862764946274376166402055665612033034698797527295480912688798824149755971702594049412705384477639933453953665529991836811285647826268259528601507376005663853806125949913242087913699980207459856838052535113109508050108961260355866103694916769443272230788111405480343518432947577451158328251033629271365019429334495597582564981542095550356175328082351014193205218949335942773472316824222179768062005741224337583570999069817890780836489855127027331446118813034454071727961780690038387823323414534120317207357722725562662477472772490272790126457808215856027181778693023499596502662274073940625491675222323058271568393829280285618965512360055945279037208048821645665250921775147285444431046604069568600200081005454119543375007864070497575355094501042290219473293006293814946301905637745799792827509481485625601160715045545291150556428426166864754789373206660746948170140505282335070501449644888024532098438914984114737067883445013990157009505643318929120706791771321271916195793112123178801891318693841867303073660862659771157196910253805329337292204654625020919348817050342208141435762052253679228585035336300855486247745507821172225343494440532337033618210342270905457884797239984595669790763000138644801614382592079361532828288392090621267835774117138558821317839395274784711022625336338588914849574255770890884811530867977263309501641264606497907557519022575047391775542607229866115058720313508062370309836324958804551081801750411582249106284425793242302336881197410075572585554918195607503247715503946241344378434229720807520636897429764304984380348428735589330208262863454818898580995815121837799718341036618086726910592170236771844289859907317204591464339088419246738746407394195928457861625120487357959052093554657747348207468958437491615055346110523464992540103059405622319256955165520169479624249427864642694845908926644245603528465934895202944479109405431641685345953900270818227735149581891326882760876316276357158024609341503539299160312599904674641512651095719806812877194704143422379939069119743995578191665535636870978159958169979501466496289191743656177167954546528119475210354011902918425076128724662236690115651918613298561514132668226177868566011507249974432993070927077617188686437056432747789231795452738737014463021049317551752894612423906056806460039635093695574448879753483710844460618294888377991544445596165885467515439258910116055892984289177589464791721249368023560043085544347811295240437807290744667735672702418635173567522015927807867292887058872064496735632352236295278486674801868661697048865875944931625140235895050855254025342791421268664728573252221130710656181772335221309206783888823356958634667915007894597516318327682963828343311691637210197858533466493028365246579881804273813663657882210591941041663108887034895725991712401274302309924571653252028706345331317357493048270446697034812946254840828692482833321897531325267613329930397998465275324644935281403553456119439288638335079255897931336051335046485341391647993544616486287592541950206908249348982339466746317778258015926263114247659581302564126492558241280817502937169264989745351062219087650936288006100053052038659933815920986011411527031418979579763647611379051205983560490619274970136116086793563576835780491431413905363161354756141187995658319570828686064196340400645979211426197409246101419052636955401197944777489512447022069399941595292975233877236947665507668063755319156414932149514209075521543540849981881469720825447767344723022860258839929781630986955363796307640905693365426577161622419762642430099283023721714107070145957263207054435971626279234275288258084760749638566305471884728064182625703102472390196627679983525996790387650401366420008620580904724681717088490994410990131044795434367290938839662422073426685804146177544597210037456585886862924470904000638721330842686597532251782100075047429935010808872037332220737781240540465614447902873867874764027814909172973083524581364346690178051592817101341139647281903964083901111260128764020757970814781443303463070589230590981119992908589431098932079156369652786111348631994556495166381167807595515985781209525215483468178036773599169912360814319007853004918485302810670845360443359061974218061707250360480770657841396769861539253364217742155258480300215531957183640346131714341968888802561898542794930853660748392594541536669504625029137602328231995095792396955076781795342677984314231730287283215484438883880246847314090735101413926059431752514747110329179870312952354506787420947194768476128545292308414510542291922624657357922393407032855484212588800258948525661296162424214455361615071393166691665342709435920153406148579552047361160350395037905588640081936945919764955593298914650936169749584201626768885472810981834232833040322001289393811933862612833277420512452006126609339445318396305259609732683308218662961750207753851224591831344196965061781049313515499592358340557739630815429400693782562821726385525228198749205883198187094951093750756271004308687064516852907661234570501918474076931586605177276966103601953646851624167708543697186882000141155414668059884966172238486444385863092462253988012435658818939374955101278541487350351665146822558667373834439540686277046600773008608064705939223002163041889372028980449783419259222978310486140688752912624128041700633497151794609072526385461247058210293174557516947499800602298181696052594028103561949879652762673002609574272465316233373133793636483647987900943972306852948034259092652427032890851418178886043523870126874386673292299570529577864908288271114753281075491815278153802581484112288968211326491643135803854730060617541869770561249920986681721227998032708226946015028543370413852284678924445442664568301783105193498610132167019871691093943450211115162478266073440703298029462548128133558477829861566192675931551998224868206309818815744615295227442604221671579113246082718649633771405252778627962570160399440754043839440060230827451429901048526453743166729668146470883081402210011385425088629547297718440650593337726363943635223455177509465800135109080443461773960400997927812989899373480865415463350733245369799050218333049304415423112693694136232997416041395618132989469628363852464658986858066829444737883603569726927130396482613246682712977137416497157896403942937150142468332519844724327037998205987850376869837071128841885208705948612936435685002578612926257908832889038475316875645968974024192037035710730696822711218249976791166568564336117643747737305352951734755529865459148745169760925221676464979440343192200939677447399512590795221861320367983534701953165884960513489660185353243161356749273040784054269065063295376294736650374408532799395069470780804676950316551226959238977963676117310818683804283087766850555920021388200591960509556411674390431550805130996368181781467251130866639525559039834945977765024338121442485799864879566946301723471969530845994398633516874132903339861458821554309738119729011495472723795222806191646617476237283694620892645511641047939354195582648930837072765268683591862624026094008215490147511689462753782633913175487004141608202454302357344015147359911390127761777001272584405943887447806321724991879219866299382061066579437022808634597547472564887236260248771677262984722352560628608378550621454204290912828254079308142151728207816724316650318526488435253959208349891411533103956243119046302060766472762575139221001001855271543175684586389485926276028931057451629462669048711703230382711722502405645156135906723128257858061530721186697383392936156819870320883364124711992967657090751787937414000809770569174433494779408839234802862563411856712823353994080526519538649340282856082188635522874661850539878951016994310242914147875092239962796229101617275861337110341361235212371853732452721254451604282250593103875604812873660832047061633336910411334571071939824738521070680950034018722015987261189963275080868353687404154303971076176032990016659499001251173371416607543824684521051729467748631888757982936410379770409210525053438878936478396506509906213874533014000180286918493539616932561061436882307639186849718929791304161742563862458234856529762634010235445306564568284733643347090772526181173924867070763749831848825090477701469037796912822619886815658367908794712227066168799299651251428277319588739853367129297991717344311977812784660969581662152109612685005512273390251509935115124792942828609093866765119860700138170282659023923834365215575989266909471075768110216984260119172208493623179217357387191904495617040419754066793088039934788432381128426300105944428822774683935383276803776740543261986024563235213028772606822703617687938467249561725106948953168791489333239000621661985745392064824969678654099582919041364890993727619716132459566619321532505814890605937087733500434263213872523681102922400247197843513921532988195656199842896631353986774333611871520549112455957902123558823437435407528774120569860885897479570982497999251453702186296165377253621144948665375269374824643567772597312961813035521897314125390303009932089393339677919613184721301013230277086391085362599700437453923628072133612784554608052570584663626913929857349311384837527490975413371277748406007766923409670036182217649581345175159183881944193055505705893707963181194033661978152634819199391058513865648556303521887850422006904824334620231554112279443742249411950671553657851040055897491487854553283810702367503249574443498921692161346211935787097170343018015922820043321582558166812093111499140126480182641134621695013126489421592342715339222972273000795681830712972150415265431923223124087984968648985353627948744913119583811796428523057088414338110202485983347629105507324254835415699391535590722077436738749287041764075206824612792542441090918727530979304653176944030773600611057872042281910057019253308666506588136275346612489339977492152165745678369760153265877477086015099070256618210034004714068702304313168207733702547380514812169382446612026937156527986227392738303070991982947353610333895535088656871857046266066008395230540674985841719002317442550214186402436889331631733536002847255308108074033618967033439310128989509364436791008785079132260943012847085145200316231495020489445135249087462264867314007088402886167989519157871775488428258757407305098606615019337969666186253308535089410337172685858596443350686058543537385384087858859920238281657326604898619419842259192665180417380551254093277672233416981431424162352195248532202510665309637946995896798323117682095914082080436025385836997573555283711818128553004772200698707954806618402067411112056362389479401931381144322799457329580279837217223887900419839602547767355068948428323048193502020512929737315349833214501578876398977029822566538309020798464673604155465124277926964782602734968028669678866913877378899056864106921189574016663214877092701107889622134278806575498112172408669457207698910849495499465119655979854096582490052266041869971560170385843822911773482598825542809331209163579649369741327694153621956729199018436680541246005488219642163442155278372112241157733411355156815722227448564918418551377662267144299833935825861974449525508746126729506192232009237918169485635740199192288909193244097032689868378721599196885550434081044280016090234078515906805110707051564666364821080280032285562521475611845101534979036365623603559062358861924915648267701062451301069464680377196156218331043097785451589392316181694444928451249448574521447604799132845934999369828403923215710679206211525160754313565567234400630661839462953871605991779124275087545648121853136920938912006103271149294399240157335270978191387522822866661487002142496521021900245249379235565586522664763192150870752493598289714158720127027415014456180468309673307854741644608173661618734895511730955125165686281804163357954367911286384270990305888758409417094649939610777496944941350588131708312958801396084667816006484741035321205187750058187746371861076143324704602996440451288378733888519043881937887746817199256848914399459371549845931365813936985738923886839219710377530388748072999034095856279168426651494973693773789884728009260828943332696448214998118360095564091388287367628407159914775804456699186489064926990777755737619830456555810920181894547138923424684044852413494048825890008418924503027568630063428090970018254041854128182729831047315222321394534548970630820088618043343501465033315792108962865119845386228958508382842913882602961122960149229576828323923538878474515077575881335393867140079633254351355110636301491625817096558747523350862759275188389012063347231052263149138796345291548681396182872027988672443510724814173046227488531641024102462379285647570727952019642614596288469187911571920501087154217499372648429356675507417356084659308795104286502827244069629016165586358484813691407140931998018024535974964106278543605650550927698917175312027687598431157331430066614384655053948872910517904048979121829783377156511502741678423797672684938250682153599826369965528986827357344832246540615110133263507845728233592213889410771539417591779458647291048900235640965364281346285169077118177983297179622483123840702619723431193935194297435810358129067761119733236739130383390369252575781395155866852583584802616248043703110582976620122347148352035884492527884055186826362617132411530026584026561029068854853743887559806603102538302337675695195563443563671479783947853494139692589423170119137118630295512624174241504652915155049909697158017127823095989344756784325883258255053047825273893493313314558657469649640814684134228709338530539701398964164370987874796210315308616807716003974193625279008146120497088686669518251784893556468642561762279806775173926412462945451693266638444656397172480942950907445072706602775217314848285301083197470749884455183673950295436345653133992905029767522531482041082268023634233198996836590353079266864408778145393189726947836050615923754667446254410219829394644946209191516786553077951457190731178528884792049500875172779894194784961282255423111318270669274553645921071750428807143322882608773088306563985657992926864870049884892777184379551919222422472290485074306105840751249577063817020395664637930004083736603304871418305486390829322866201735163430250314569572849533764047369273173881144247590492741233394210216205208379117357924779139722976743967691376774856504528667081004753988907267781886773306465434326885739824781306385324217357542933869267091479530477559926007931476937024472084291575040113013045526918720671929409488424058976630201981465886903556872921214604451459715122082561305039488456329011681867575094591493068372552018456281784417106515137111058894235491894046767548438254820234991172037102281739066303846776459363453277573908447335516965133253263936632773117748173505322849237861641080563422158124103303992355996375456732465058341443250377964730544595850396083821011723895211073150495775358543005909073188855096037992862223539906625391496880273378593572149948124018464903613258152529161514609434675786581168484058758163242289755910500229069732075582037422884228351311808981683621574791205661541994615807511099167455741693157782132461693546736204874193712027744591262363854178819275233199794714963222096642761867721716235776062991504149299644993072298963123843874477230957262921155514588093796449564740891922830363383390673061457335177442892236109503177142353721107311655472525701910959569772352256292411116256423821599593542438249757989367868695500779172971166608973404189354986466423062030589695112173049934798358787843372971359672263715116009978829120602543480264043037201396381160927821847050646318013661556740218312983818976538220404135875402132181549201827500714905979040465587460705388680418611308946341150368902631907884490186125611975565223121630219578851657503200935851174779430044406852930128983551266189016064876280469840797901214457598915632912430413613376962743758295116534262768286498759371199693063393709791978308170117957717629267802057364674435611298725435888757849179864727623902347785600036522483146961097513161735706946265577518371445428155212913925644564551140328901568591411131771394499835375727433229632032448710491672228671834032807925864630665846620926789902563932988523423965085338441570559230130793981573304708888666718030790076010197760887736145640549684404874424042284312214767954251054854043613713237432927995703272799438064578797253954913951317900153330444768081688620690697077834397021323218787391986572879897030978084349429499688611357120270288965922450436954676142698870435278571216277906057620083221240022915356736976282434599399720055016783540272743829365049075405109616411822405240471122146238242209470611544130613702812180746253260590943210213686306323634738849278320594336685622030207800114855056384327690100791487554042569923660628946896401225286245464986197771884445543573490205343857848348608579041121425999714874522707335008512460470121325401815419169520390360318276565965095151701829138219654405264071364011791110380852703418143772707762576106493406485537174680854284258092462661300952820048477356818501543349392748432630623014998725125195710662970655571184005038019927607929854386176772849768948183595686545855052600820602555504051467434289464245587816404772653272120639674772624670592092807018521701559071019854799517082679274635728717999891873048344568050496501618074241700028441775991115681651538782972425951096516302614921682445853684229452623199729515065843784366011686025623731008454781221592228003247784324083020598479208727522132264848442095892766434627616279458897504950638926957486210173174980843842354518978774350631646636150573579300978093790658078976723881974504918278856565226332860462221969358290456042116998934834251353432661873172153591626716911972713952790414001697330621869165510208281521366374624146968037718747484870520073412833052106601021546554252098112149903628605982559390009371040344421733695710512898796225871239789232331276950273977855875623068335920399503528329884090241960454339806018348529735296441386096037388881133927600886320169486588999322586647643716571629925803938022319084254800092806568837755436028484562425934094087342505194331021213473703963881770966322645015349892338056054950771537672853943090137675797308138281178537384688868300826421314455087720412418489970132678797545390072425038199697524955031935205236298967992518255382746820122004774013441271691317593702389014452829336178993988572638933057896268617626789974183270560851750782958788516657244604420142822697088413870110790419952674447580116084423142043525385928539217842983375355767965656296100491683323361914054010844359327652942084207315641618010338848959278284023496773987724029409859599751785471010436232532091953909022260091880925024861574296472851163180541572390831732442884488362372027187126066073220339254933745783650734207188360600874191232570319928328518646036916148021885020382093766319282591482840468575111952342295885293504318672454385083846969160598271280282948374892244349863793213500501366250964829462279277927634482984481859809612467589773013881720939995814746737101192429090240269868698660751109863204932682632189403632141484339226654992988788962523219283315346485628807895802674720474153309209614968828974648660574943811953209315512496423798847947426856728149407022664581384014946559508629442229202866944616347783454498292833212563933021600565120001875828212595406072558539336032852287625264090362826258292517578154885866041581860989366407474573327047410694072787292038594129795382954901136735050466955649456268667494561333840982801653014723714079061488787381312768019156336310459891942571746049173986951263411862260293353761945178770899960719698518807330476284749320903614039716214378066342073058958661967184895890149877830291885633105196981460006125198601203395673085898658273975682623889921066349781461934816131310266444968034138543950508390267449487058103880034593993532752552125266529390216170466852650380990187406356720197478095034183521437041114499973022769459970864730444222892466495999434242535061283031439390338998795555112130376854810711853452721529444035786501183250200497307114651819067350439513313997526183869079540092968440252329216633469399149065883322156823696131851356383591312935188383910437964965182095835601507607955673298458209139389308501172813479215893967093030541204544242661369693074127221578431068537038055425895717666413078453891482271054074529110606502914427470090686921427796037574085148384721257738641669036290236431075387742057391565977337102082786229181998767552970385719139613566878278324758580828668374316310043651682631210114228270290389690967795167577971062402203383181403242295261319217038088746046123256701883159351425664911960987818181053676409951018186863359194681239905300750664178900953155384665016774385676875956994446575178557747787535667313955298697424985371535868038634173927440844961535744844387884759907267800256187683478567887314421119148062474053507219801570947655704443491306514424774861492833752776254274278608812096920680096036969132183675331310295389797374853523289118286996283964127982395821355385788282409368803840820913597579825445834920241561828516675786605679312300554188058408301096524735931061824968858416777957866508321631749522968867888329049583701232568760424192514457380191807300916950716979975773168656732210948960050492088309044472380514492320756680456153134169680596649205508511222997005719418173078733758434495449603710945233049606084800251466657018918732765333516763997802493935148996673245343579075051862274515565543462942503702166564672503290955143203434052970504678557831441806208628966402896197947320637474458473284456734787655411717643691900952745331246871287509249782811483571513068160815973379705937259275985968711161391026103357912913335288617225415006153808685756474957350937626403373463275758283208603511076338101573174006307487385328896450143371559129512590219127583606235860774920957328640297858845651586585793894100441898829097591968443025366702781533972298764685775929616264297114500183875434063600520917236149920064026279708402781882503919236905200913683422161995248587521613269904369746890299695034544762250994873021345891317978966330039482325773165212536772335261377303719955397980215726157957365236278507078721679039191718482822765503104665383867400318026861370595658296580131911084973377507266143306761587437368605216418288839435345609261939873853614997484020506829048829663986106102128462094641258461016345981190329413711982680200959452041459781622423020519861116972248236805120797810942769171890180354871877750281080149368762629192290094719032143890147476260900238580287100659533734453203966874057079959557016867797400617115025253902141288197714292772977351647095707165625838186955168187675224742727119278119186965283396061214239140805031164658191295339148268615129923970229439929347124141778209677744686036606857046297124771691368314088285661248516861646921621596492526322496343864866378480354720265013036431739481316722952516744277316142899594340072341993962213410871407414496556318900476376129780876910385939923716260421334498677448169267093351634899186185143193674789774636331295684633176659281413935135506851200335051561591120461613495583262660949618835512658032552436529488292675463964436138490170808939705135808270436958247715197775040079955131170891635900911670302503076309310106274850072807082365907811128480657674611016751876545324676760756522264816353130146579938629108038211328180525155816435959245170136027820040519747684663249953586806405415699448460410810919374111178477013406408250956896488355698770525058192628795492235398301948788288859702325439929264142351643196326501135371188385174993753138242212393916218454647467306813570052527187761765199569046182079146109560523892603300314707977225124255077238134537098356568624847219123020898883817418883955572593910633194321071320691398985703200453546270465838467986059293887482216410082200450504952305190057163010535323074562934221941257932875591169265200612905158510521336622709442960608230639188297659226621483243005482288910569137068134016490626948439906716842054277622448638988845062934133247496214793724075190423078249093303217555118149096699614331593874287698207828742137592751570675913594863883377169607512907365610424830043979164394901347831801967316714110524973542371435342113918941519605979368503314160580426868717216330608894589498275155801972060941414440543843036428130021943647028308905168533415100666107898530133823187720214476480687079884136177215708616849954912552583658313754727352918160970418998819579084105630773832522266676748544883737978087781077984644450914580104953574677238624459021933465658897396999592523923743157868180991199607639802368408152907034327123768978810142657834295130009175985051997731026106448123619347458640448034631506739150965739889880952679477662232223749983650970257440948604631047940558997291554304096498065722880780686805147711637520220616787135871019147270905719367088839543807961850018339983819472697242681494544565928454460619844900051461183449935447309279994950200595446541361924467015107472311058937900912892355596806305179448965815549542768669954569410448875009393818641976025929546606305678332332829713614079622385702618288279441906809132545235797170916686831903857696349683371424990787085855305751306573830185489122589740366087247257119655625681750929322334792969982410966363784433757630971082237876602491874126518322785827737344615315803794696586455696973666671118710885081006484018082838631207266308393940753552019457020718050150978526573791078772034820587194925900689793804386590780517903058821051527599402199867041397093764372975320141684299314686831906092504095195582671307286233517054196051652436832607536419595844233086929546324177290210999509185208640040943977045447360931251883106492274214843920698290967705003266431083967003633405059150561816004080526253368677180058501221796794670105526984381776025940391599039235079208532591724831337855107614108865785355151302440781875847553403392613940265938480354056507636562317416776942801273153368651998849669222438325765777875441448317472144646800797915314922331093919841151582819421751329111567734408682815142965828597399499596149698919737897190536945165559716051281640743603591511857632601982573797636278492722667853120194300032455791341151595353767188982293658216796651587574176474664764217490852751362951064003026920953930340725302732168289376542620092060023314481580609774387499772251424932869171344049033493440787007475349809088397033769050872292412868760512419068957437931663595977816491784813460107646668477844195639326242884183194282202315812501371729251545953396492625752285185562113921996448096260578865328681600835237766520693609499813173555359956440175452101289537870170913215235679388251255654069207934767264917042777469132013372418020320751131348991482911658581454440534711261594827661428433781542307003444342575541364561390251695068276289723978604971865704188364752673410904832280830347792958487808472988924172033749055894408540339253647695137932539646290722230296190995747870566779269655292296214392005076709371488278631047927522144620189076302524371988863201074448268094059749926562647503510993372220859136802859945893310778188478508803599931468556835206808412124155089101013876045678281526352939048285940056406370866553302445202755239720815502123478342008231972503573196080649707231955703005210935644608312351124818547643287557763219336539272316796523937904562563374280615598820117012570099985316929726168164543379218014097919412461008280332836316916616998265784855220756619117066122659738855255785241802870619686061592641670307214169714394191360812724893538107359981345033655912691393748638192522905152694540490118462898264043169970610043025786700240712835685362364318933186341124438820962986113785498842575127546320519999490471012299808545588689760605656859653459230052718240691696980411969207415497172236550990512687467013702104869015453079603646608418437390464824892270472059205296869854946144300551947208460850557671434240995256972489837962918818185539457385574914447829541228201467037620654808615783084562998262556320400450304595321736900753084499363508171365418608325226657614174806856913353747993922803114058893081318275521679161264778149548724012115394166873840293241929279726771466165348894432581183045842947514441436345943286332623989473541951507723752259351000534617455956960034728561745137479184581709638253046312890404598554110195701340529142571921763060215824478755170835373876817641206322765458125879541639457547845322067371711528476333205322204144105459410394688146731323507375047696372408424994884007147019064812308389977050374977122762503220983232859388047736792571421466599246558552879171823473834306428126383266568467563485769279606345149679329938138794489927698038676524058861836006617402140141715695848153760777118787116281964299585807545673648320553108602441439925507870266322260117195279017274041055472462642097978596289647644116802835472382330222838404099509875366758441803173769674033475906882335777898666437973996771453146569759024428850015224535755436976472416812873043829915664908446913726032161553836629479925715623025877288445180820999134275599360751006881682488467819361214465256322867399324254135518982668707807553466620380300483068470451310634928501811958696159118495504408618924150373720504288229637181611141063116615757260345536938738838553552703390372054576047440205770445202547843135403350229718715921050621279458152956021019361480049976306198471214280806910317287397929884170743278255001681876646455012848844625630187165568633254811783425997276715085033482992500224337350363707695382840912304150560446992801526168187427308257174157056144258109937336527425512978074387891265771982385677230688785747589029378189727262166759783559841147663954420069766323043531309455657659611727437461197118352504382773880502166051113382926617549753735832050605592847043458806585526854141028361833696443106968740718538182581031375485665889830910415163560263658107998866821808929822930142695326387103753482146027674168785072772998775989644080954840960937925182418037040412530004048563121297403777770400047305633414133268166297068281347998922899549010986945540171704401450069096613018017298605280974184317765147715793569368214361445531328689385192769549751997624465204611748402421937826725903245437114781867950245833739411270191870236441583662901208944869690687015129878078019914693806832522282813739977859529417679297412903898745793377186164337049585679114389930495514532525822847029073115565669467384786891898935191477727036896095554017167203533648825037361343528567083449216661269836078638665947398068543805735810543465282876887138866741746707691092999867896662151930332039431391107790222466483426256251823871088565897250513406389098123547456258874543267412118146288869072188510497261750036862724980272129819659968320224105132739718397608628933589194277838138274449402447924935470184703536538620114263451645729550370197018654582423258550485701616838906910810859271828343548778294737415588805699889410752935944989731317501573356263907160815191821667541853616389663168054635763108742912302032967021208339007888443846199124513696993591643451598472607872729569862958329693459183894525843924932666151892675686926977553339890830411559554854728914108697033277881009083945327645879885797070234107485832789007718888405517978943372708625665801015693318571995322507758325237741521065108871900436680906610324496340871013364051414000501193923711871066805124644775083045022461170750644656324428630303728415994966742112497536647718882984405793743917753281466394864655303751979862908556371624701583518092955662828878737808789369679999459146529316858480564648677961196783105397072349996551356251959184232382011552716087819302612026428145069869214893986275600974453495138879161468096392565455583959575997207088019005278737452910997733373079592233784064466878000809459806504927872455921699534114310749438929479200484759577704299819209157379279178994175940563510230070184320808970526574727183555076495881381974969021184846358348086070196205664185247013414799801572930597642100612673250576809043197793261300210665079602232024823067158320486683424388379824641759405801276700539384087792823646296518212069359143816874073301223516891306570907597867979247412351046549508054315496850109311309577375545355729006241478428043052686846874413198911727595922268745273861690405526328231850717913596078922678441310666544891007149015415145992126519009720547953345913382086179429576034390857782293078343756543590316540376741158676759051790968499677363212334754111799463275281439168619177603252335059646174903308281973744543607482928648253537338823881684031108412236075975618143790670111011034289461727106773811112730542847573240698004811794925270842465780354728412150167315203454492334807439514973427061175776136915504153531994341192655426557349196360574931336907522211149231450861932784860905321020878937955316344598881831245157965339507009214169799879133970037389302858786420098354399222803175325106495964205637991798031383774585119302147295183063168097597977621099209322041920593561467217387103970300680043347876018793972341483437578399845611097099923650634326476831641462043463749579692167862455662280222475925984315684299715899503689585839779529441842297178731957688379035973085797746259374397932260318607738910060557366104280558054871037352967229145203346019641076566798590837990581017231852980759277502990769968683835009445444919312672813592461285770151941263154089920166965110963517122429974691073775041638931205903395628373958474239767479156993358194792006819010182894305092650387940665251589602054764512166029758666756572918229341307957745346862392395883341446285222051323520201054773552862420362601487696445758362124748808654657370148497088992219968882756976637007412769237732555522231338517915187050494542912907746250826114936364779319912347843731977012322811816299276187318366219482025644774176953854648717377210202321260663512026296574844576906600085206812511668676763944427681138656146637946440925468308543887333635120648674301357644765600580941368211322695348305044455201143835502023476903525522201142320542446161991637790623149112405017551283785979534423726087004621125386588126620624488566779698452386585448858497740086110195904145657462872517183515259947608940665739362925964731071366802975975603419722265690840285762629718370483173115863140311848382513953501796057792619563135296963493852264204762809574457146674428635326464344842856790240207707147130511701096987568420109092260004942425900667388317663763461521796905085170225365890326564468483335162481557166506339318119441200531693624003411155242733245268559006512105019594271225627081033511077493360382008836838295745931326964113645484951669759619380108504852325604702811617424130593687696207424710544892700675605427060615113066787780012535108880807007925028060842779245792251391220960858245347977043899757188907731457798761537265526269694406628594154459291345156431307429575693060083584990825928110833704955430474202516204724765192654344660127619763251816130098258703416537443276439933252416639703986420446656471710636074601457641442098405941357558868170388587935848875832316819903893976263208294908930827208751025039559097226725772829045820284528133359588587037873590190675000605571950108155477077393182492942928881542493248265710936248627421482921115129531050395152331398098468537809714988005496061926287926857625569529403681447817438964871103352541327903667575662048265706071559063508945417711254233004352240265643208772160262482970581101416266523633722287503390351066920294169834091266923529625349898944356814167906917661835278364365109789694955249621191141886323634716604414336711705646901761666851918105495352435961754206711569278321383784001931690515223441869638806705967378263393436025764562337601975113442216082089412066527437215272188337164000472199024152576955260007484470059279252859719854693445367590358054991289122994623554081645628306884008069326462722295564216832358610354717300781112341363591869523650750000157437980314881097489167402073699130291302119547124562572809609997498158518814711850247674200272190149239058904856182377426795540186475430514394026278992988186943621933203654933507903912539771604117475134848993817711363811939889524919228085496363910907898715423616378195329666742964024610213919123429694767230580978763204949263771617500823625164939429238553791801411278862259357022464607495123706217815548164208107422215967457374932471509292763839320120797105694263869216944576867798989801140431309290889570170439930208166044471822257850349971549134227435313864410613460157691570860320503373483349313638211187365195776635660694614988750732632378268210180980546923889567165225187157819545899702419599201336215087149507212257703536322628732542567359674411949240374608085429831376862958485284629114040581198219601558627122764162376214886678388410317168900750705125865645908498865462414776020318876354458683793568223651790541045571250900033808283003391185868137236582680489152068991551419683731610108424895649736244778540738121215608840167331706359823326496374316252932102937504695724331843657432854946944651886485910452273083304062552299992159605548039249645143327792079298602636700347304268325705531356762801672294010930896562136352034307586505621436731502939851184778259539668474617408277349914972744767000117727298041526058127835932044850489810616225578062372975706354508636745316766734165746913029793722674958573665982375657271543958764531239620261521593370744130846535613020453520745950836607201083435172172097089157050431191872839716719645721944567023750918295987171593628059406189417518279347021136871216790968036768134215061903886095184433536393355923069157804076288040449045361393217899640565651295873922984295666193555601731680964029201956045042343732507237809833864339749106239644097936704944611630594384493089783504772435150058293354592427698101265597685401388994754287899231662066233997570540094507468882339345500597302420786181983302188925345730827046627631851306148363168083970067348766854987184468635031501435561943237472883432816794349419635763493492174070989435739330338374024918778545731135462442744566024308217954651699102938255765407899419764924273434493410257558023635819185781615417497546771977950527441818120286933757373138483228057441607489944618150944154956725512971962944865412983960147834204481017435821047700256656722954193667360613341882059449572875523434087614645398040278413292567721402729060551831277608533433571810216018831855847371067548648836714985305801338012075022631327375341930871368539596383645971006563656200378197855621828054568895100624731065359456512962213905554342696198739100642852323866476114202106107634639459207326597672941489872599973691366434152305824453675445880733374916088834616899435434724547973478493659526697223506090372187878226759449779848281692818475748392845597129221394128199571107998819335534005179503785419957760637513063720847703122914098593956069073933655032635844968883101487707893316353813071269058321741510225331635080502735655410914353183985536701279389232788204661937611260540607126858551227996842154621612497872874399373526851256947840643627324586192750470347185923955941149178299014744761506839411727075273800865142470018867092647160480728954988464851735565712470175318365126718872895068510178077904758735111776363997406105390925264601029006770345790873701520719539133528642586701736606234028947779471378046058203222286707843791200104868369641673841713188535010219586874688701174861974422160045471994469181060001806076527567973904713664015800406631427416511428539047271308672853513686969398276308740005070008110165772981689306707176651471960448324215693421674021958987795303980667538246452510261099559424850814105316778653076006228471450161181202063638244629962802466326720086954027027560059029265877982300811955685167005709210374262667253713519198707415022207250522068876694834470568749122967782922145681650721418983032808775878553016314595033446121275311592710290583681937989489563155074722665901160770110386212999211823834124279572317939169001521385737393131497231198907695841974600716694902884752021003308500719115413882631389506582505690458534231581670754362936769030104006975298775000332208975303297469919649919480705058994805893943403585914469120450416879089216738509174378810460084169058137044063962562764001140788950349938617587968499269810165439441990707762124608144045302609560342225920562699205602891236506487430846122633161484653723922170307271613232156046016514136771480369434104623180400781107088117119269066592096981679702036635817927825133659319030398757473490630107101069869102765723149482738494574900661579212209425949646931804538052035337352876780708418278754021303946373450500298471784665221451383586377238815195534946275250945855530720571801637880144341454827332541486596733118462135564712258080148522689946911129027885617751131268076974647329268395889563435035982439082465299120437811651854282931867968298346675424728699371975107957388253761426225646765556459458105319135787305400557571182876406839028435235615634962252045783758178775287622093746864668641443006276016807212059481936077333914470982120936873372422064449146962977412651427256453458242315671983577763500641144079937555141522057109174267290631699082367993487467692327745279815751262161127040702819988576810180098600691995908024587222172235232066530808201685446464150152080797493656859925972027957687614113619024190065939462441772435138694195228015387315215325006479160303399392552181507947088410283607425196221310953379495612283412515782838800955054612330180299720511914381163720681159791647145308580818947288139898879492084794387171815626391328657622856114486869096740181460845460754477684314795164850459129937910427453008797084806431179014404380106239138226879045037346669602545497984365001250382769099710873649524722481476757543869470167320208535309270482316029482557324617243433648850274381105732669782365196882844306059066524030904678170727587474564892314230992096885356264918344828164226187818915616118051229276040867586502969580036800115535704219222618797461192459203173186721321034129818713663488878381969560992004634088880530914188740860193549636000827231289151455949266183249697803777492934959996801584319506936982960550488458047605484606686511058095330147472225950229487891618982767097925164614215239480978592269544875718199353577314091531957431092983590587073148163316273853343174114272250423344936395010033318317228736722422521355005008144185105126241121119450450630938905158725329569868601337549580761650911026936454269984682851132509129233012473233545274922415212064102585921754075266895841762778051349814009667016040232476957770153953015910514712236868224080783874853532632544841090810013122603622039289729691018283690721998454901366030510516943974454103098256084455801109639362433387633266181312809801452907403740660525352836310835651143817773604151823998647626883220348883153634146072167930075057689709911548102666319889403832545917848992230486128233831627583898860024196527007284388414061103459082020729223046658704843842700973348809295523623699744719519164308309141155138496432562001666595760739642253925507442963177536341483218642733087356858435813915636780361707268023181451047144653180260554332532887708536349519463804650123346766139945502556491778831108106604292483504602192724558462298115693784556286323011292308210999426636279117726662445135884804009863373070170777286982354404483901211594741172968440107002694173857185817887114150385181332364604275384898908357620655019123568039448817064544639362062814640870106482706721248915340315233788325324686206371222672848258606974588370618212357381730609201038982900788455109371148997036647081777477098242053693282164316987356295371804356302919118386653610255081450153605230689343015304258765858109383408137102229094699805535971378457094921426911461385760581965650045630912676042986910169147159698081918048221621105978896668628431136893233372191743976286980221946943336235749826623970128999423390362494266655007535138680364368424552548219106007446623593342198301617633922427198134649424424541776900261951013595383892716036335551962605674702395527945071316063217821301733467126093815157664671101205937804476200943295260554858931318556786977376943574965733246226491692806765299113180209803174753930586423811962673283446393468973647637385049895751888171241529116030826139798852467924359468968667534332182685549557045578600746068953715305958445355940963249664049391289643641885669911676779575071956219642671915020316178272228944440631751360951316481691352816285225624346088107424733036901877991945069230409005768258396716888222630294035199279366918564613976687758039773253312750528685401058683317778749332401603354905565837940428260654502299655045653177491619276271815339024799829089250845544383127104148142497208394987958895927966547368314043026735084002750254737338031933370291282894469574575655917562317552006107560294093421950627962386246775595019671841355710392041905364795612445131400312543350166645778744069074076101123232576516182443914007402778210567335441273158170815054688721061500107183285531509240376543040111889755997426612132643311865817583052806780072197631152236666144920307228845676811555900559508632621333894110438280835478060715221445112924905391778871990493901458796600604559819142113372065914171689836776773874505898348141197557428267807526367490089746717897837376149772585827318397601971544014106759822490828544768042790526353387384817502986296620681142026719356754232072796232880023539475095934500778858972839879457663462257935931530243021109474581362182554870121317068052484064927510193599949401618429876599450839239157260759279501489254409195575111085502584310453074218896316869298523824364222542603131368519223859564190294794256035416099491708140994997555987431937062301768547403005086867939628625001928496623728070275627944152687898495103790562794939367432507400790276402648403155262389088790090058894532381320297840388319458040675197729798397071909266883049816253856512932798887793261378210456310628776890933137625421927838209770798473092713073521685227992050427114978075067780724660619706078580175449025302020331324263571698127973506844354799586376431155686666381221262378259660530729436149986411696550579202039589565583699707430769162582380784324173870850122267281466887850605607840575996360147920375286527974682350272620811850724731873115461915005712768117066597500933015239260511226121772826054582287252039801344322676628191481110397828156302395980374439223905576844113094940495612000579645832642300125563210564640649716794979040542004065598696327085064398220771224616259493299584817422701809558502500757714408056945548048906577547862033397105917335493751598302138602031513981976398186775127149071722815675019444933238930630400811335160578083049385825609447883933157483331232136929225872262839541980784193111484046766510409168161578307593466431482416741997312157525160801321161306549667060639326573246307251354776322776969771938349875601403704713719064099939371096538253635723737909296474583161965661415678300087443273255325907252314272229536221721397625864010967786365833399265994415184192611400112148321828095785107951411473678716158494877130371930336207743339217639509051450495023433957708858632082203650102977095636263280776098078963914810180934866948030342993707836897910233950622976930944627167008854096661176971776625240656463007101061197478429639202182872525233143515781111500025039027218293107337393246662443612851947793587793311968438693569146610045202612768520827516333524998492998254597651018369066787353774802130807118053177077975064425643712688253847068919840982834670751790152172150010851307707922975348262110597342345547658624832017574450028547971251276404254988843776364600132876881160330205214392270146368691464158586572359930410254786514552843982590904840306163041149914825572902228766166081657994104114679129602051988582159517086144725084277354743903021292277320621205117795867377452430283106477799047254033741628132971584038040850315531167082144984577590429048415435179402352451642311412325649125405756075856651402751669635868788194092905693127185165991953003932624963012879607995141735951427034911722520273843515237531933108411535070424580189421129949843894290816405938999039059943142887107030000733383067151570353233189825854828722489817680226043111916508770682909740919627684279378042571183247216764294697433045922878773131440275017080034496937822173457469237579298138275929002967141316056780797031420317637793956342657909089825721423775786070752130186708306414743876547629398133223262131030227528026517340628648819670742075869267308274310173720401567046180949570723630341565238147626199056102938349432276376980733526536693855210443690082035783171241394245407010882779256361376322260452691472125862277959948913371670312506989361811836840495505995992680986660005247538448519734612273381886721447238102241976464558056177356857640964330561930681687031433783521013180248157860345014967225489869955091443765926794071345008212071736201688766292021549498626128188787682013435674279763680252213374148288300851291034175555219844134848097158186851139802217557678270199294813723695242897203604824505757472343799851144852995750509158279199116210669601891959522011830412540142891817086682919306990033200435620704442051733291330601517339621450222493212790246470890494742114020983543383450468740486037605348440306579786476794577628034689285731496882226059195685364510807909918492722525149198440124650057708192417619990358588529334246884210172950619871687265765396006288729229569142533055688267403213628859075593746592458549378968543229950044488381390166269761447835968800088649507799048028759767450268145860352203553339876979772608733835167744748432518114338033523659647103128123851221690320571033571621755330854884670888400793052662176398190827630934554990223117439483126620604347599617890849477299842837142377281289462439885034438979395480231004921248050643534695432833160750530254500773296131929782336795781481450946748296926691433834867315550727932301515261188051660030394985283760243484456581279402819031601351254627732727111323442922236107156532485066730416838394018879387212053900730917189774391396963505240185883197076224576216997980907594789261171336774685389895551049967572578331194438516345617568372251040691712993509132518123343818410465428302141024613364062075193842658795458474187465089178647474798556198472448371174720432680666528851853671267326447463177920482710633130622847590353980713500097679755185602498216089664441392380684046072652019911540246018977340895696195658247431323284906666001832978873539574619203680469404521457069838070670998503090990488540435366656094131533804742071563542357215368563251575321973455473340060695123235374248574878306476336061510375281432724586516469250396565405889703993034661173406653203352378328306035638314525968537277590295502882764736370047224165579306467052157567804627051138035785678229096903331338858531647978302657540821870695086863391610276130813461495970444056673361252657186139120042269628450454241545990886111524625804073064520810747293995356895450673724925881234918783427625058526084134678450236250871452407610603244541320566644207169679152511827109066028148911760950202947904996215213529240183007636306226865559609018806226482572798526280056567952442847828040905497046808366894097257339442490926571547277141153844750207359101527239115926943477013941976598375898966097282264989941060448853721851425368094669473691715222978772718837671039386785118606707414591262306273193203253673044811214922646623457598618090654319280193738962979410427525154794528078336301521135995860155988946025535644616327994425537508400994621740771810412943295923503209481691739046453543367322190329161788395355307490405748528516312457299374208679893028227345491765008202801135960242366696407852507919067406886434421965331631628337081737634492106009748251847068675885378446336875975627503624286705873659561429506305704099963801706673593737755814741472286812143422666677089679588779559530304163461015634532350132357421098700542142786911300808071706045941186428877151167897366166944531832951044139701935783064688472501628467877032439886070141058907907180826635761409516343307198579883098345094202991081974197231318050847409250592455201084396677715611163305228290040219792572934864294308721851453250838404538193769085282433382202166923093267029974274798784244134062351232242165079833890211574144448808738934563975852618953536426405014246203336847276465553749048619348926300649187975891962613273208250218947413955131126247019973885277609810675335780819899008772165336175700980498331554261111229716541651435143709849508505772637586340145315673803009901711676710339952622603674331775352484512193202291576527661017881911449130697882824527325888276389450438813808728231297896622284101572543055602084082545828079266546738065666108727238960638582549135387393456097597981279272883648559437766111077501261426003350494312038854447447893260963926504659251862541556536831007540616271709374025931416959010192639918517609751176820078089780293535653590896109415792359971340872319992147241127782579605401522184497100267576095750159822784827681028842263427821525692756401953228043843656235900361489573021086275188104394149672141864653843693063350795460674482253178136173225214585411224071028964799583578398273671293346652927509113078279214407256956891681852529632569106430066565229647189805629508984583647558028961171931502216949605039208118498163916118396897725634719746687275743117153339799818215777682682435902740371615063459360867304338855767742307074076120024209394706482110570342022105191138993297136823099769458497040853082772552557252101211874293351538149739077023784958652631545153950567612841128238217335506229071798025511988003419996845088966373852410740204864964978049667318569517992764049327790991777805802079698279625468621878546828547095186709224201642085007694905759237322562541079731435678357951593605179641631366914864528634668408002814511976229442972798665566419630149881261707236473148032113645001692882017800716156881853534932819894587153359580061094459781299209745392929711638952050209384362610657656101930600086567837349654113508240646966263676269296149890206302330094959666811320808890003578149551958692699781317079117453877015370862176609756242880383748935235263563773440547128135056379582344504479961878979922348746203617371321987041228735281507968661239426187907119642757531987536583121213824814583635755562704755563064272638473154083321959976932723603935658503877287934051028088050841164510713551738905046546065360300008564738182132260485090715554824710341834184160583423295470998438027159875627835011015059513281057612677394944678199168111143016221488943101072251257228190688208495064895825810161105360157630506224437869805572332539798353728232146674662950073533017270645496720541265632497083235642719528097619023526723924877703882040553526082299189619259638801792379433521587739480741584901427131589337582782825613164110439073457472713924025750740620637710580528556194882367472303784541659099921147582737262747184632056035248987963867522386842429462912730312561043359906281846613427460943914639255103777089599607427010946639469581967140425544279820883532401313023963615667934869345658321994225105197407067769829815073179868065907325539662660280725399558399949656065192552761068365036096125401050182739022188678841797880325368520784428810743805067467036953142849139278468020466143204443313102418571652904891147393913301687803685190210400249292893940540296878042175570118540863425807902304258647761910964747092547938910505528305680598106102011945671669723693871005809907192173988202021665735403119800222523607219291274012281052900556312069493097950864368740465416314652728620812476897936560495990064603442147690453955281603803014232320236323221157459163740315117563817010692188623187968577399001494144732410571833356626783038973340143378435443432372934840876605608303499285319125654819646248452028478774710219252910192626389041440669901109872036921617540060622866702857657089040903598711790203657917755810224243666281352467335256452277996940843550118554222102662991649466112137748498517061110960851946776995591305511034272435839326729389592437990342432649264966977041884348259312986758700553963533876728309207387938966675034073165852184620019017211684338846985996833397185751022445283017820560031247272474865512964972663450280243386869235347394812661366595840533581577403420608988016159668153893977533852042257821912295827450096358201086560939200590685918712778574765143929684850456344961734676724286535350816672932334681857663880583756805161496726348548907405902004641302902632456390657209821926213135363308330191252049001510983287004810601673101635709168546182739363193984687091558197463267627988074738690816012731138463283608286841352528337727368421441848624626979488719214651301552345564008878635378306937869307896627488551760967537222269766043079392981326533515735374786053837131737445403706684015404285242371195143740865173552472251628543858547384859421885943743978616804998437065232740978838197135458160182671101294845402188514653391885485414125262196546447554182750388994517703333039230539074345414897272644083903916604838068515737337400607097271827437327913993350359341430225101816501236400266342496531634805709514146345069084083591228150105438000818599517731272208921025212253901964127288902416014406333958655352500102660161946085720862902234901083516513230625180806496501258913561738923950906331021189233804227410737772544417716691231682281343319358294429175982105381507867649441595804981201703731459573116978637849584951325748816903526009331761429908396149902228069778320923502596239787858001850963761640367980793736895253605377431921554496165284577230910870673132393336880654537239910922554388174034358037098444141771021428179770974064694012439346154802258135835999218962362327089289966526507673227918201275133358403894395946982205076006299553117958374372823665087442824012840347605281264475586890863916012345532570582756931668747244381724387779088670667907064841055990239704303961254415475107872710007766886525196258395170746357863625224157040907276845257497828733947773402293381880671187416106855247638971265231911713382565173824187939821947215043525168581562553934171148199125741372979448310672303814955447574723285787999785543241298405470683736965546265373495536484382071682036179889598361176173475228558207344431148640435385787760515826400371091392118570156619110973302994054359377113803262872987392770997005383726604586589051087041520714609316951174984152552575833399245842029351951880759691479980724287396956954185507892084675163770200927233285344473355740900435704746545271924823722973396344354282036388336393191653676809427870926340873573814991408494012784182005439558012928312310704445891622862634436902159877008602022612261468478484054184410311246744579611848044741060825711385056639289935768554580778547408679038810366196909273303306069767427134881645296575709313389761875497448974351323999278409560256946925424769546786343129288723490049424043575113264782467463365617890665297284260633032434833779642762924244325863724002264411490826668256517872341229774304087835576991110142518796245007755388829354454504593168524976943044221376364410470173149813276418498899139684722820964169171185399106503907392091492519674465891318034948463331208404178834208426089024956487837923806519791949582355690479552023914199713686021813821659000998587861923439689068208004318976608037224122177899260679184926853186736208576408344492878689607778145365692818745778907579100571518963685079061143497175041584159491327134366577917849718026141305101238713581443724530874887960195109637261058639811588903293681566679947955449736525963386166036883947508378462888820013073940436177522435950573609169885659576479198185657445346893623395508879933694057482176408216902538315171849002474097160560485291313400400086633143384012703740453018579950618180468577066174558312489075472072731262458327882842322849788022954913919797521318867770819133427130794041264046771691625816320342332912166449761867703366222825103724522466121099826216109836780825735416281400734030696121751832638201252992469735049085175323655485461120816743551341856103803585128927725004766558619706162744410938188058647320130090919843715281434338169043721688277970385613928366030915214489571225249485106596415458041158959213996717819928275093436962165483093896746937640079392246235327035412715566511331849314841547928081574242025671639775296554730358228779408173810067625537261821251930154463008434166412597897607605405908260177362127502783785800438590090011969766735951970215515788526256756283541976590789977927351285047648085248393467945687793363101085720858215992930261268488402834831852997669030706077575063314746719929765211811893654709853645869460349574074699673474797787486872581611319160482595887664832331569132209912303978788953244524724194947951445497590878745497705852208503235473567657280831973087696564772281750583140129458646239594552926265440992138035041453685410705768136726512784399902445858535829188502000562842526438372710934382759630262720179060751162689261105619327031405826911604661430131136289668228213560559046374315147171087727775070073342862937850143563637565855143299933961031846129442621041331958965338002632835470177695492066170317203910844435320854624254554033241222840150157648969624171275516483545078895961073349467928218960128656990741312812635471590935525445003772335730063638127318086951358352284078442995494379623747681119618770367044179810005627482944646402857421469227514652026548209670996662757927196888551894216223804055615517833079022652354762465167886556273492985722320541855115773802497680292847087616552218065882827634763764088462869811075910736417656472013453072693959160462432856642271133261974504184037889181579763634162606099342751761094649594973113590101795249272558134663596138182289457835328707523681918450488804632396738048161259388465867055601072981236975544162834060000474494793377373212408838596669241913889494317003454499723503612458979190936431470813823343596730525304778192790230931862714358840237683499153563905882390755887202634678352287269732701808501391560811067679870834286897309656812838584008149927566811424186948346756486288551291209702897302438788856407758340296969330951261880469151836441977830115366643310428466250071207895086464312701253492924756433731226740560249778078807965864009017702111837197760270178840999888159527806169062531312050251031651072301095629032646762080773632885470342639499187255718783232863805851262838427513753762280532267823390852047779060442513940349855575458871503300278895852259901764782551449973278730450805881681639532176761640346412268952717851170164284596581208219715160800392406691555640552411182386460669258836898238086689786118034954617921633844679576676749527365520973452987924437031738182265944592765249354033607848574489540060706748677213838657313942583299166179495301260757578196959395744117692621623395169813196666582402902198697998854234657577816321385541615762656923163770198742926933672701126894923829957831886155886697777474293262431424106655414554503737468197474521746037969364540127598428472506144812937856992112723410806968951471945313507971136823249893866505262809123998818683419184985174372460367075250087281712329432866559526793325960353211713298853692512231896223276025258181473057982818135265095599434571685806267358960342528066779736299990580240560213686361355929760442171850370756988758470699514590403421828453111836646797677019114161938972501592585391491895387390856248339468689665280794587896060573314869872983325260595491911980420744743679902589226203232153544632548443079983734394449566493309964918205296157877790284945991558750805692152516144691289994323386212316790021497947898936957358223633578152343287529658787722314801325383345546068909579213628474639319019543789328283119814392027889325773052350837848341823980043142755970999734883514441187902275585219586512255622248021946890915660452001371225211642375700223805136329346573940436060546089547355061308434218167565039115725077802234731927584176045259036351773809259092694907302106337960244478843231300392743611746741432067262744548839609698527451661064548328218556448824793426380287102599263240199134362926790797420492527595319582600066440702073171072051555563246213803797434485816776129624746092047985371455533486323890219193901757207214732702292680687004941548695168341929205644589826889488283940652137212554037117417230035127313260209112514965252265387730355090993930584412784403608937651764857810234338058429709600308300853829910902290453175136620152062995740648616896769845275329359790129757621870575737869054823830837873892726526580907871124475967045735205174719488710826897394611504697082397810440912926292574157328525691656322350767840808124803372911122249752522592396918289130055346978518816572085687456033580327093139007623868689595932217467503647566117150619799165943105235558695395209325465742995668619526470176230696384311641599229590108538348344951459332281571145868776257417719745121889125380820603605093248142464425763475461403778958611475453822388703326557610261580437922765178930262469297728611957714291836422235706451214845314603105371328581832742974452235857089913591830724585077129547312571440753255810552665679945708333344174657056985425524462873774969988564661825682035253861574652335507847934828011738929888807760361085313875692190505787918038285178591449149344391646078134462970299225241939539357856988150376205649998008065667263153137441230770192826022399100781052762476405383202972906991116404543599418236807127407741523101021655797139767278054983073997228476384177583828864546856429304453724762820421846515549008712070169028789973006349594859627187302731358474124641844955554796237786359904697418628877365044812683302421978415624801353574656689742477996588842426578832593918953461145133204867949823178904448738119379962471830890830876455217003043096147004840009052205393702257982560086093998683437570240456488282769512940333676222853959786915240981362602092364286128485382896196078826115100197279864072530856205009861162789575788251233108262242647489891124314630773916799087524715257180948916184560382437876671717888530913708077812895729641531847051702634056170840739832206507139297893187767314852006703116078464463981727170810339735664317701848343713816967782710495162927086380584983302504328393367337333257534184092518090470892801221942820265764942006896601967163507471538856500578995351901444696970582495821561769075539562432689952783844440480039835094640009443281982805033426141195263375201214172205571745146635503944325304479848669793003339026606042088252057179559546970003465156530782430320199143615625259528050469114416713761384132619976223498470886022049902138795881711533050387505049893114227939312666057356291400889926851897233559726329817022808454499436950620277779202809896681172812317965621744120187655455296712587165994820024738315064307662084866807968573655552326067426184768872889893418908798429169665415496334582674624903652535080572557331999475372219942052918721443575456899347293226007833447348804494251353643534013844982102130376967355810286088406254756754478814980768871622858142465211820406162382841836947609318971787595485909805165398053135668174691798939494346666042729363282147610692290569071542090268955976504564084441753552776107105427073918942141206471048628298706293664860758710103220467253810355421213767490952172725097653085375267700231586083862986118087720839701118385249863931887729999168555230186666378720054809060114496125346957131766041725403893910954070272483862780367433157999099657775877544840483583343734420062126521116800686627661558132695274619140260969722449441457721052675238217877423166896210193464679281026447101658829816206237520291248565320774050846780623834093030898705136214733376677997360607465464070426469327619760615691512297505994526289855853856191145978035138546346399771833867027018811424064460788768384186745436669587718614839589155706224666091174702100264662625641118053516463177932283386623596098394870291246027689095701053120644811740217109794545235664200629264374888322184759829901306090424644913021710925229927404189281973708131212023356005136607856158726372067557724231356576822430100399722901684673734295591895451185093264079724412405484831566555183258530132850983555602849426051592212098110876714467638413418726124371404891365060794441017031665835201285141134022388789420813988358045240714114634252467867597373819833729708476926931389099582905450102394686091516564212337397480833666106215864174900705329705597050787634678288928452177672588187275262792523359058731934621667343000216559428439905313482208505087926682265749958884781162028366708200262566176369211131257164745161574767177054881323946409024566676226475546909697100960380700255487440635780594806037553919602802658369472625213202208379786402152878881772731205176350577368399957468469772095649598193851486684265384524438686916227307396458265365465593463738980704370511649348963471191320112299157130440524119087723399126709320360737777214165700683597147662852186686982823849256078545405837960043118045386615011776086930955553168354524381576531953933575967662566006730910408502581214270378196523378818064227291484063209691747768550491728670056252947617645289082092300605817965769203588578439075711672087712199675076287993702586443101094491171749373406981274679592846042868172250384859241240728669816562278757925437012914575670659204533863451489153697069242444453928635478039210770557414402687884289542633753793547262191788909210208814623520498914529118436781154318188517084726297171398001821114093754631712401972152323728643246664282361002431767722571764641463951614585417739854175507028273406129351857538498907844327300839263804466185104984627835960684197996721631651779182842435778893371677938946795209634246870706509176957717462403286017072638879898426325168585272887267468969430475961391319033865827844739897268233817266870756071458441768707934606375358200510723752462231930354784075383178638954061789647723700893265673106030178009291834054221874393192238508908309781141778524080164942991479347560435170842244248921806033342810445224128260308708809700268630243851749309747117167398130754040357734121078763721193612387579361215210203153856786819563883566979867614005499048507330968906084008307432877977044606083172030450054883069100920665781644296603363755854607218381702617952616481715654999990951513964637495329268052910832729088157277092700180520869229719575623872746822321827853408417191753738593902370582700419472517979972576671446172761555066718684952559986207245331511100594570170234556777622801614906267271523619355265581770147596429904420465048297679567210045004658631516894807529551011793377671687646122494244554604014087016794045208785174713935949638858523525879844749869606328041553596998265135994259252550553803265369785363328452421579343442825866301998281438331402227209706109947887047768915911603052622851244073784253363981053069496323244392758161272691022724201727781839811511796766089644523337615191468710800847382416138370537294934596440636674328389870528039461232146503237288814836197155409337485361011469300253859410270609596815542234502847045219138445148012277013971365300149182127300341196503092849015139064025205933242426289553233012028813283135731460415382526112369721035521923849959532131763892150168551965389725127877671800007550235702445993760520257928253113617487766370428848767178491915497200009351083123157652878669621547134472650389563912139367257263862432988963089805989510642805328256233189119058810796386285099989792562114201308546140596849862744832132587285788102542176963466691133711855328160284973012488269478798372432378747780021576914598307940149507143752104710167586127215630573158190023638306846890173392299051206614927184833438808247133655583361205298216176518892774744850060995286676266615947449805938884327520675462281874813880782307163129339389752070972921342075980611757827328676615749436570335761416290271422962802076496292224505234433224692156867192803777113997084452571861969164445511081199548918037980447589952502303799140338042068097084154756472622179172361544969092237420557297262268185201637095082784334140600804114597248603992918567247521485980883398079838970529372842927757719922149584198061332720206193013996412591138515028634186224126514701226769327962299427741772933254814746742639493814330596146763585575663386308114911483601879855272126832947890009171871916928560719111674686218212683934818658277555914386537118244909898929995171899611197327457920193864546767463656610996339971511730358324599917232891515671258561699306664888834721190466715367669802321501109755951028793996310654361968024407957694973427785713787302195182943652322074129678918552283154210654599244416559241264027790124710893377501396242036768324927931361367963319611780994876876746620125449704739596692851219769695523912036515910851230921658676056977847855849779502036629023435628327709688076226909015878437742005530274847176990391558286791595114920279874629040506103160106331362862687783346751104228197263446725536383523134255090607310915420250161623483543315866708942468270129797775132894959189468135602184829824574498610523809298546131911124319062816277120817771202146072197001039884393305115357522246885795575926750747163772443331479985043460576403691270419596569301722005270011772728679025820450998325176317860632975264382751326975752047985573460543241996037232068795380407322785795462901602160481249806738734502688793342648268546199588221948368405856757963732040040217718318186392529686777283500625262357930979841966740597875240529310717862436589691702649835825953623924465465076677462535792175803428847426369686412374988669434391169062160771982803559941650120975326466398578405638426345738085297236435051893918495524473812999939526284182338802623690155951620757378306673786908520509157546644851983607472946198410706475876988550350195113260677865453153038930331021502425203038568802405714320758489873757413594885196068782708287663636550965255137047579303069971002885035158278673822283376106518338626420434385290124991408188460755027201979841204877378725569965551096575876759836404174509322826574602004487209584638628206329479182299992564631528277386935169337931505170684215259246947335402670315794019520180004998441109679344905490999113288168774446751106247307954293121555360215926614377428752409965448538704275645809372180198926166225946704981537283145658180775574122082175677185347070610421481636600996508696761366190756472130262772715168957487169582091267692093203837910816999838475700350904581206177055939338734907053116965916571140110339343617995626984676257572994846598682085158473639772692935341868258936086228877834522760833225983994193426799420500264206610482375865556682593931427720758981213129758936716373257823149005859469636773783856762267077240168165658686618593349485169921206478232370835289061942813125567512719260321991127475348561220392105069436999917359079828163143081394099210485635493245240842499028160155168307416671665814613169101924401415929674301059654112638240831241865410745033394748396565549293845972145669941831851115399515302059945055440201040245577960736154981682008305386075810444969401612943649206370389490878695320840634596052613168898118639587796485909999318880100749532779935730251938844250141047306015378857412269455937194053263330808618437107321573512423410532725014966140478546063021909925267516966548682514587309400020089551805362334604311698834825310753695462307591405387369040769712790827349088019168755914367949402405579812096608095363355459706684224050043561664071218127108092040581566883227468942153602141879145417012570235155756963166764639650110526097415340572536362841730239542453102124221493183423726949865640846822496739459717452103576868812157111498290448430083783663103158334364613526724082756930848224465587570659965286283809026621340506681183462763171699285294466930881938300783924315933576491177964507274129528132735352299422127503014379053185146568879520207460646922968850944733753615738248064087423699550939363936901606708760646380146372757254369499083690419455646212254001568706561097304062518480830825137449867059330723527017076845648170550767466332226644011933626558608830149733260016259989605761522932540323627056288405680383174132146698639806714992486217983898950582988696019925579568424024075894031170710302057339235984306402624747831859375411312039490978377127117383774159114146452231491440242458918472546592332580280475119571244322302890942375689865136105350219172308847462152318820323769850900398452612275241297463533920888856978736366231611408242886188640684163791527888887672383454019970858892158494515768061180521193220395634472365708751292707883265432598090565690892629148845402650856755055192004072306291477763411821774700040782638991091329242211540579546034381334125423147447260819269461433417520142346312272824889425052736055948385033987306229222028201454629921020471680519766522743926826075688240678207724679823173863965667856407892380156335224244318331485385867366904369322549200907581688647957166707727036848135655089991864645311782178111245858018225982176262573448157675935343979553135206725898368214782636529573135753406646192103045912351515768077121943542010939182828494463877629852914262697458219819312901467857766049065969813801634444605249386597060631175881112976540329136732743008997681633756267000571759806503965639127164973078589171456128461854985714625880268693366236113061415472458364986485329748496543633647233292431376200963660971291687286188495414750983796107514566103377247503240249585166006045286724063312953211558488932822701502075319935189105739422742882611909347203514864275003113797528944837735252814335665773355916019485151324109935002728501312835206998317644590430982792819590659121603859304841367154151107600100629163373953457278625433841828999145528223377865360408183475636740254986902536071951563983581358807982519395344726721599021925347537255914192445630352007413983020963586111731258962759118974617072934308237257753909757781484896149416062784125621520777145214394720198393000362349451235502413749613750410196533535281127272247650083859796416382126578811651391239922468459896611473220711642914049960984177113289863353463642489685628011756784736097966248114851962338029923086052359668411846378441278972706845852264687743076489598790324038766413064351778566758615728968218834088528238030410775548157826746707346991184584940588669216063921553130725443342647281143815322095536611732758447559248993537584820018649637994681696789434055314542088233780664508243655830637829956699162442425493617152361826958191037789791107502380178912686772394865718373827481882091375771969746279159874182697013235780611730602572763022001483779699176343666875617326566588668645070149663764747525357550152410812431143314907825606747206331795565326713517958343384452422353686167343917166023405223432222689640244173921578612903676080074751045582112138930978258720051695544851418697044518928759600878653061175483575473412418814446661939899040236629760466924057785638897076738810645392991822165928407530181218087653831050971600034620841096104048729482270296929282746406831810567455509020016784483069541382761572700752343706937853988351317094093504088636179189653479363692972058317668390622922365658675715799170973895139806718962557200568883400968702960806688167972330416065845444239100288105226666923474188941755898823281686439011216128174332499956923400147153340071384343703186087528027674410262460820178230873176317995882312251086965954851459700082587509237547723136653469714346245623567093503518764216529337509309627415042703969949071290020086697758468572359195936350587885864291412368951610282252507370898503155754711196085696430775271886039618334547802938277165412983472840097174252996573247325546594957865352154498610744696164404758687071216672438616215914853846164802883320155490536350674782789820161984801718658285995820335611824809051198261468888166837117454278798080568928779302484600052519005804284195437927599311071883900085379814451368546183185306095808762203794551895799620700078088753155259926241168820704514524257902642253746600240786383054794051305189416444103964206840717681220868108577675881603604039602643740635864870011358776586360376676989307631236469471633197668544352495171563416522261451972431254086765492956353099055506848235973310594041473242323195689773051675992204948991519216692376485958695994597298690751676414013935798956332418962988584737745986966177018181730197850358029268581792095611370948499271124751761418767909225685418613607074980068239261175775653522421722576390110399525694381088595995571522884303197664890902173288147441991738779369959048442345413830477193524356389800396605272024919045127649086176719956617984445602502946700283094199536553754769513331128523531614757170031623944982988040587769069032753516598026594286524938100243717923724535251271238877034033125545351812635650122065412568559500358896926704298516922480769797012880678826604695081621186034269040848169939010278709805711196186525929470295523489352950745048351001821240700684628761011235848177989045228085645676853538226959247639356334996624354522268980704802068946715039016435111268621827785218966575558680160458223889786038696730356363555907611528635024947185110532018537788031463716389917054453431469725104069817507628278237823134312707892907502352296639133607971505243536956553463339832302577687275427768824157425191595886550020814306231888680861537189457389370537932906587880574927496754684751550292982091707986481333545151858358771629946223507087718092646794279646121161125319518362162063730711523576689009761804548518584141941101459171437792223512954838519373552458914062257084880681458127010721407268700656080161157635500897172009794179594869877534357780892221245478083301225851113406727486390574087231722038339698761760694620083773839693144295403276868156840356024020703910092646622187914368769328511692434889100033843939076625089935094879369507034570383175843567864214896261812335643713002197165523378246111037028726063937582410843531947181146831991160267588418823617903653849445114499500037673573950782553696444401390014016972233382932935056932897614350712392916221647476044101205236286601555242492147548555469500778023023737706513084631195057673215116935262993914188866992027171842677814568501658337648147479958261702699544418225290369041508678485506422284545451782824125833034078785717374956361876203578538381557032043991662328321449274838172919985116973916481388984363145049357150158855393816078601077237569074468536394470146249633036577363735531193943616496554744959815374011560844338645364027136090047715003331458614368767905700403944386456857922110641467662480010806487966736408501754582658682804543656638581903849542227295284879712018855498419877707651812595428428459212767002948872237198271156814268970801395308693663486616239066919254176204716552453281785105651460322693792057297345471827272926454354903711211546161033388238680071861170796358826726183906966322786437381204497233375350628385799740170355872154873586036885146468557113003490971291166656116594419598522006716378154674046237056811407581327955121472134202934573844673547185288516694715981061821464655310341782884741293809121074141774621735296467546367424757923145405464435050514430639817709926893213537315106949932589581559555551636170391245716160066140094103618311392570453913043826636974237081810809681967395236829063289396200594766230958053225902031280618218439922749609117954418486365159733705830117382886210405970576086678264966369077935757376829863469507088325484488815840740008286249133990362878692840443405794046422608392204050377817229234823579815233468502425201827695826722977709799291359182566440465639635378572598688608662619272400256794089009950966314202285757426252753168769833711934802834663219164071590650142255732246600758814200613521397055571323554073814812145250881474188514811158321187422126085044536232505262571624837689699925984177248334262925960754054037679935957205485048490462824097268297702604227116222204886374658081990201907808788732497546919995820207647031067265667091905393698119756393885099700232822211496591716054372845070591473177262886850775557773970141033544014401228106604154482189461631808440739984551334832065650459543826996716317531398815014448032047006685792229464808643349674480997619519748251251304469198366757778768975235241609614583042298286268642692038711143432402234992266325518124256114534389805949447088392925521691888757230578362053745176545677572658370817362271499790933621023178969831911351645838067190996376223195438680270338554800341372896541331858105809931824988126565746313674107570763999905224932009874960960484243989657145705337847172570869734606277613488466689732078751869323586292867948698065087355682363580325604178738873347115760087413427104771711421963112033328345224744324289349752183614398263099016222025865083356993383391512772755403138015851939108894836788682112016479529404048867216490495985429371614750612671690515127483980188808892608036671804525876300535650142657177965612914909972316488811704579950901731000342489359778556664332334894462411776134538083236916903758247547492203501664562103028187352289867112074665489647648142170939231978233565920400322210819164301366405573392673374216023797356023867384752186139269065202360919044306468204466748992319388775686723301127761049089192297083834838997569025540745031983485232855434051914179900225658740927984162271333599249405375349913300991510140126977296399891961966338789652475093456777365339060839145053219108584049407808225701963959130598897864108012730645455932283888471108453308622230565957967135965544836087056228974847274155915749038451785193710069969537840617779700941729645634036842509850381881696854580975806866920836570206826327185497358123864384631253922791822427558391440068959112158500889588488771061920798961921984824354602182557741617456282180457869758059374060522084663715634378437493709932170666857874453870451793099120760562624546889971996769457505568794165043737835863748269428252674543163504658847941163639580831974509964460424368124484347951009148511226835417898533319540953162648624633366767108122867143220833461778345435542436858684360978192937440053311726320957465539778190920822059595323251812088669988675340749832186242655592281207505897227899320262536498013514082694594561256465726803853608972077216643924212053344476468465510891253544884400701416393627418641955567107762959080317630431795657365721626395285399325473274716017022342793725732368425263395441182169549129181719928784198227239901570059695342631196293525727762146354365619107469681731221956716959604490437253314694813424105421628562684458549943096959628629691127956692258681471641686746521655309628644743898436374057301423674104019133681968409353407863972126066818708689839368627875042757788659864642997908242620818800770793453081270529506110912445602199810055398113323105554245865662016657328599823766355362037483397045790386197185691956536515636503035883879860762007590740714308047533487993808807982409269631826193955043844624930508757875016903276171028046025468637346201125323573108866546370073681320634276492496636568035881400563867460277745900026322694500140422718976887835598535495405518217324758900447192310621602058749344976073597941346074060489258894938114397161165910686569766521497766825390842193823849602658189237031373541648979762777522414921986642635978279281203499064586017367157049652886058868397175354686210168797126798519165646389294395908063173675342129614460263460044613103806205012711397187041257160265185701623465099059687692929972438058637069464265597336078138815863955140221015431366777016239113848878752853428257831719883856300168112121746946654461668436284760595099554939549618515708403090404371512708253838475485694261458385041888579209730648117647043141206356438278185816207404636599597432886534813267004983619952249651401429146649140541266768694900496259289705210452650358830004400795155414124028978026968786557213224708025221416491094434019646256434901012122428634240993917937618675621205327472434960088319492208921113020866166834516189489120389768094881779989871349791107055844886582930165277560081027527054410732361034949899727836166951835018137267682174017929026796730717492452897543771563876672420548208219770212217045314681659148527035013700051058666181637129539653113584716993098475907796217442002343372881201673326495652404507855935956732308557548668414236095823210780118721516156226374997725678291228172900278588741375771596837065188529731818974905501760224708850157471330604604850540720757629495707693551103744289396507172559148315510761602835059499633856252932043191767578595557697056474287429443349346813382529284936348784307868028266409437115155081039876147332004645288206819551133756833549295194103621097014968564866908994131100162758387165129829587982239380948642442759088450398850111313468593788726485609963978380824783392926317799329366805699807306829189514648936764403117265543977787634006692952076969402964041251877211756015716898127563053160375098397218482458361733657098564371368228284221319586509064091277666355628919381326423272468153076233814543211285724862108439220134604649150558513822206109337185021811098689554518842665412624752222745785630225201702301805279210877217931383048371931989992529670756277514016968097144303049018325475785982346387900764410854717150924875912757125597330416837932250882928064867166571544035214771123306055502666023807717124182857345674986666672673245293474400251061980744137447331841320489512847134490233552154996645085567150498829164300784362607049991832627747703784212164596101623997750860894891833987017639736422226698303954993444205940835308147485380484206373311261230689907718902414130419642911257157036945323208726162947738903658144764460015535794896998927775066491259345045022771007927139483514279310301456299211634500834392878908211144544639460859365140505217955007316454039249416774859017966317236518176801146485337431064414619330886710084094653489413092167034474784575293992068927123099320313488675910359044809502035057335072845003343437477774794533970316389953851218687191855761797477269697425354039343469654719192009826145493180149034518998466574610786964863860738634183935188844881047514332272805384879685906772865549554848466031460020750029625662183607132458112450105546088384880932837004135769009091341311853555635512897167076679922910506222560919310911863795980352112047388801841895845099992589456098528321764248140969356197138671414941758872985125936791588199422432295986842183613978540781820245511778523794140340614190883829030919913804865038602443884934053329747941556051762307042884173419170007287963187033792461793748876017698903883092153155331265855187764825111340485866739552503321679632296033496630069233520041626978073222174765983408743228861859886567846094811289978519650434606909555424987367542233350825887752471279416832819867631739667648010290012942515298519072262796943328125212082428065151876888873900252629372042918811388339656529727684069604954014164488008007040931080067040008865134618243113207299630028588490940918288826859271178601007049816770705620708103700929912607226534389401141283773481838810694041881621908889725835303874621200180057964470148328741645277260361630909245779427638998003592874336168355053756380257807055073253267497137994943178989101042670799717709796535154366478644648829903987142347502999599399973209441065725433492863804390368621687706731807185622035160579096761458785004712573452649875438399175906439147775567307499091020977157198934836956554499306286319665853644151480913551274528541520222757000878837215460804799382871170307029838234765272919071915978076883844375446204595213065060861749823496034849337211807881028463178655790390025576561576855240725984354053413742751247497704187674677509991898101255184129005508506729856516350689721785571490264838445406738972381044144305086153189412486234854336035216536704227398401682403427012292928590794571731054780601719126064079319165919620200152796629083543921863549978099496671917741339659330561853814811259529802545103875916874117967391625182095532964443137968772195721898558102562232282294668643827935157476172547904642876181982724464544041241801458369130188417514206244209078791961397945142416536739750020586250822235991285651733500583460080103840140441409366621350107146728978031427153960015110417456209664829654928544603632230437059025424728262535951482076759393672722757542416922270838040965029404860030284623233454005948497830274840036796181256660328575430410643905565055862409775248038222309906557784331112631452930788299685260586248381594480798087050274648741695125775890525020207685211623798982809992396171629523064403244584441008566576508503937589760741128910119092139955768895823698178423584628800983085830884688130451021882229844529191093191540476270501232532207700196476577421478472402172542401252530245095239181960374124698128715464051899401890660274352204160874759307931661057023914681737313601535288283526938918717091794841932067451411367926803668437448321655791212679706638526992551458659169854056152366285626294470558435407166734121596694442236743017763358707778569103703674679569697901650634563876089557576866517604120650921440620179563511488459143329285547543948830549251045491425408088383382954197792284346760024747941208665386440139626747421241004193996524180258190434375603859148949804132300515218523274706947713119581399968675719536735628864895715316314108109929122339631233572918053057502652853489644240402697467671131617369738404062964821327828125003960515105586598432137039134251801208325562772902591075385032338558416367879444282045088553182460617105954862718830723036622705683463527085894267181806828914194586580775043431354789715789077156873586861360824960875926583826409398147142539282642571704328211269219219102872171552769997806148383342806093470594512712291512165404732478836832276719219716635278962535489176795899156374915820988437481157904687215594809855084754926276768173748342837154340049857242419690602529338907378469541001484035491914648923581869998533049753678285164155386566786232107664763110517864883289833946528511308838750927552518444637660809371680365572337937991153257344341354886628302843816367560730450891104921595064572620030865332577127826346593153853877993823081725632835647810450547997164688633888571590148490518214208491777749506404238610386681570664781416158318422533128807375086797250559130605060047820757219974566177306675277420113123518900118664757125588526724051800682698338275485164163741784466313035556475555534303756717911205150234759320500540829720338754826202975943205451243737045094480251529347398480815401294284071572188285477742231508170439388416708479892799200457847291519665294815140228920530489656878103232726232479357837204330396562638919786523669529000588021102622893769671598544497916612370727405653617854005307150471557657039347819912581375404412768513388543264426237484600460741187060845846697313003743607382891832829806855946049720497529365119846191146714356745368008175008832103748781754723078484623408981596967243828471804910412756151678262674487937912621955684340189007090178606441321796166492161036385921195291944060504934398107527043717471588239502220172366100830023879731937823045116112520039256481418784347399745631385749692952211546717585670052579214527511544463625805367795270361879168682806555254137764187594179136438903474868697527066209451714529518430542647935596355765237222985090588810294344498890615555552358483544677419480853971579234068577006635802093330528674387252911658168589313371888008048200819707336374277500803662996162608167661793062380472178069545688666428348717030955574478058104460275028006358026953059915450102913571984899944591332986981544353822202273646690567878854867178030639661759590430377473993264521385026129963269954465385823890544559271075403855850223564142106756058254819553014560004185484012778531794109545508967458422621152641596809600983028445691040596706157814270421242124181516635535244427929457770586723049924303024463663697165821485039492217818737566790094316779956063257470782092967689022016903444042487417235108126539276472745342679316663926629132612957974647349859258516693217262683675908694634123037911420979984953292399397060805179137952627464295443492915223651382121933712413985732302114723813917148629359653966735861240404425900818326957277212813138121047439711478214398074478846049239616764502789126531010216973145728594865571054895863693831406740195133882495581827379323369380655120045278898735240579537573019400409230247916743504890991825479547258451477628005409450044745074799466015204582046764140247769963353130114646898793462088640966858004171339794826249425343266294444017833450600942245935213485024820667289687784588899220766041921040375030425449595579064072398878142247468914140411846394294249304647256979076773436651839100723208438512466623305145279635422564168509426204316224853027608149768233522164191444038097912435465046456795052458034369223045780767760474753728642378074110687267571112799882642372124237036136139210258395063389336985072729855655614475801985577384577192969820833542480205476442155461066893002501008771219209163105185058728283042250919648763989950681139000606194899449072830754069632086422819753449478440256338431934219360140705303804152402640117244073507087769776999509440259638456189276339794478926316618074477574239206419480867269137705977959357924652835387250282645473216101374942673595721982682783674007445618891164151627695661898817972347234230275063969569466275900713833950067872815618657792573492961344596792951974872268683522783896683144376380766514768547463559021660456847355954426140067815562599147037477547392478912288777183712752752120801753078995646380903050450262652592453034645287837016699517946848357466680425129247538521233697082924831150632804137335217787775988775841560914064381996421190742708548539692409055784634443995224634920887773426788961720470142699960961052453247298567029694981364791436701378582879802970981431188179592735140920460632902201045823304636577765598520202144284999908768121015666319419502350209932806465048631115329706992844189363588001513742960379646211556432895548584768450586025853612904434428318146195311814107907381727854439776292038972218434002567824657532598480328191830832837154625443251878255776344083505899235368994368460947644886538690256294860187748488344917988720411100612965320126707340432065371223219561270175478572439781916171692083239268044788039602207636044356923611086442457798615936979823893297553686282637783523135202772773425513118258647802770551414779736199655470960040335612747324389122330014800832086824426883641945254401236418443222606004380285452695407916972922620203859727778544569000993455174784360790916922705274968150410970363654389568390977925390509825500757278727698479853178809650128589988527813644041015768397794187007033511811933187889723605737523460101411617866652596466282326440735682724639785879094279475551021697892637388387505804097051224904679985628991893589772129217555972292758421850719304749676424700338140996291128829131506398965353194656274669129300537180953912092986702178045915347740688889763429179739072919610831369136383726349404213201339535646254074961037493169524307568741541352753193658746390009567924132003330079781260032219798007568063938125053911776489759732590924221140447022114422296346708702260992671929272171147625421939762181791691393969899609029430572000877577350166816925557952885510662865526539006978752455131670799024677264934889529401367849919248890501022106193138502832057593898777519680079443210256065645515831368600914066643115316631444210705913254366613654072768852916334936263083350448432361133769516356734432922141846983169961198284590471061943608390300084723691506521909797110051537129506568485691875110708359461306990797999069178497874873872967286361798037842289271833738515680212013354134317627514452695410042075642503477362252596492959783752244473489995974236265634465314778675968377968611110892307279579475111374028619655005250041956400131112968748097957102513659718824722125562167325286495219929926804796511755940013568322821736819433640057460144544184829868439609895411452927234789560612071683101906318038718267431763412755299252497037257529315712742487851653031859790776302308686076100026897844175827976229154633243432396919729518981822692386151378772662055931261403788842115877816308180284294774292226883339355297743789793508331221888633935356041828691080266586864271573247259367186201481904508757100571536678371787856993162708622947684428054729668907057224330763586480836622568798433969802495868554103502122687243886844289858944467079023067491178778597553933347973820891254739707249619871894117516334684756107839406323519287808503223796105308125368218987442299744659175238121162110829761778491614733950437925379653463681754722121386590770417185039941416201844799941233034863631605315998274012116282264732666535508928274640475378853973016314339868705251117811887615078592451048923783881142788644174467520404710190217223426694894717348441157737391721394037425944045486406059445168301534871709830897321228760250681041372145661578467743827385014710135362465943080155521728653135324345159531175201438466532305814910198119998774116373925097981037903712566861369851749095539936896590483802221836447129084520075111225468886850330897851041943718882323193213134901067079657254740602046933333863448540603321079830147560999546026256227008942721789525277576227226680975170631270430098832339089213740906858552498339953201512118818855774710007559532194051811399692190391880079379243578603530397441102483480546844900721845176781532312330670274275410774751927460675960028292570267397743582284355130900428203929244026232166417448820487763799809417788295740804738442741786820551426986498674604528236380874666406513381010156824074030617403892016034908220310377863428482927973636725692124946767813211936802468729152797815085304503603087113436477546634387742444079436267364478848668106058578062768457528687195631023934483019258136678166235783030185075613043508152459212307624465813673658358814072568588078506314925101731804462872300769917834930020455396260839342334188159069346542593064821480554930717900349734054474375462946776242888690025137276106986201335678384700485955737619307994211307666777191771310169861864103896386879703959161105473660185383607717686996014293758484310062082446718823986648075443265451586441431294252547639858489008817597261132104914731048782413603882269762883596955976035445238874754708973201487021959387975365846602348381790797178048955330027111610737659304554843853680700742331292363587499345622692469423583142770027290765647186237665165439701438041178256589759890729879513116606692872253764201391194808660255169625593594963679817562248687912654433178246540683208092756559488210390319616428238175293200405139413105502975642550601104964391750424589654445521688293481663197810813399644775122919896640209280219277662383096579075377771276259509914712056950584141761578143983475124074326900087273781180107864356948231957734761537350565745942602652590116713860827834727622322723233867474667606729453901572106533587110083110077218002868026555545477320573945128026502984940914864593091013557828728757862276011407716996138485225574225542190544768713733773598627563030665287152552238050187890566568137838815960932099421108498306391183837775960909360264315068018598243791052359618702849218573939440165872970776075220750320161802296842193297376997238982963630484224741191887925466448422225960228190327703011998194579981223176953786705516955414447905272708323026563828901573693245476204272280678955802264882581336043284240889156138811914437329222420171987961791387903630289770219451778990800769816029481283552125773183620835575658523891207275153845128550852905358044240396388187565050556403967582763857139826060403363265004894063824813989110727565033273270389696903505009873541366067314737551867759764256191526451906040921202096739791067385816023788670012897694794675733977667953713476435303980477972701454746265486202548984450643233374708658500626017101553676451546596332188621600943093322095525950214356978087511609108382899914419311414047202230695424716651034466228521437636244367799387438949093378567590207376651306431693261225462746052676160027899075234830545968448163093561605918653637994119327353228899695318565197525083731933425556318757547228353081491984412739594098617813974869138287439297402545476540930508708129809808389800418351373491507625230384224004090631376678670225404001804409104693833295714920171622210684543590921333446250597257775593247969739295218356119790929539811323875805468786534933570638525116841818053234958035275815493251219292590647863687621330132531496462353197146923564715123859330997860084251169832085820400568082592075213934722741322267763787356915754075532644761274282297911552731885718253909916599945649416010314937108119951120656174259752348543781261210795463719410045207401963978495334224091227325111173545212872591301089255036435122551546380736596354974485024850194191718742578389390180788083175563184696975948438436490126726659159859903948240040866596882334921893723301501978985733423740483712389832427544013944517102590626426653967639031577383426795080308034549250425010284503865610202498206436539703200009732729876496195734391088650874151112778950387543895791092145347267368836819123591537652916325925637967155513872550193823763080389432068510919444278418982199193273759376956826625222114831725097328699110673262602012249600232216335757175546480884597242532423310724005926908537023647478086999860687843594293350813320073967485164756573066410095395293565955456469088743642456487895175688176432073687676577267188504959937896384737457282004063771591258391168857904307307828800374972167673555015922283391502973151871349636126268794256999982208701061469702350701904352941576957893837048346905739861159231950739099194073768860544749395954327517206230336293891218605867166707631409668185092996854368737268472662532138176886250723114133294253640384182820848853207241197747500082238834081643633208857851476657412945285378056918662729506778864576057276923860574898844406452420556791829808111287196602513944279178937993158413357812563751901226177867195806415173324086992283584304493741012456097868363554501057119820846367135518341011701724195424610186990823457622197193340680075113459698076381745442039216616138111114144315397066592670402640651836558871957921007190900810776358794443664092162412266482428435101208181856944206087482264259639405251279441239617088310432183819711165922660099417260791641704306337793751980916677657655667501269955583639144753197808045937313702794334912093218137323287240616234415266404524900919421898264011811418193431716388200080169058126999534889994447810742417058794596893755043738475428286053443931742380454700752958949250320203761626717117686807259495096159098510432636506990374001039273905185717380045055974061650219593365420794623367789200155867267617974460430720789783541205679490568479519346144874260411555369575618275540435407392216640442231074040908918327742515128092547662753345852966876315218071551567246452200387610289894113405326895767899062079677140090988290870323800332373757595069082894317839435912115476595097633035955430908250152580621590949856598766964006050576682025639657031927824885219965304804643774475159892827706511432947909649858383478490722545820692752755534617372182971120650338509090224856299391452269619428785959772338791300314381204415088524535295557242582990385650017009053167892740977648861625617987625513934316595290736007165585572270680915185467944994925383611374691074931186419810559097871598903830616307855126245054197221855333767262492147389848902068524249317281332496703051792209222491028309283068226961356082424818232311835120351193661542623360397832435815265182547844490094393508522146724007722671785812723426741231524952482830630764419926849874583156141363247102242622796772058346934909066264297526976606551542372339545601620155092290314747780491954784562467408051740206150865115861774231558091979927194304070602155952813511749594878339723040348999740525002931915268158080133139768465612735685458342389188568494148744298766227735412801949604220468924551464626682257552248051303196179871984860650621061702195212607649739986225639365638866569859543622143405693455428819668646460583548076705105647438683236029734131761134220049150830897515873361203612201751137132899685126147763673675093196250951236389058077375873809722759141034264064942676440976264547600055555614676420271927692734683009182246097857191823976616375801381314350429917182928503081729808219538075375309847240665944207743184798527372583530216543017218232560946907740111493094554003610632292932957341738831396753094281906553588028216508176836324545576219918168809396538129304715869315437015798291280112656740439491934591663849070925142188400196619087179463972721613756529432206824747073964420484275986622098721966558747669740100072546239989442077224266286741001864433070704536499972135119522602604061521525111071058162628265678422726404196542955722384417390828308718183491348074325501447586967907363981096995514510282966674483278177141448779125919696907769284805645045316199995909382673498463753910401853251862147673718639208920039718771431409224137583656609391442569912048101760630722275171824165796899710226999053092149136906040802036537326116300098613174893660697819858849835310241372542628287396469362275242793919817646343062436160771282683268908790642659220509044623212796285518654102070290156438642938885816204797551206667043940339523339835546932665849749122908945025676962192521222278625543367178799627919391498248070173304034328662002735366418146904600434907222288762479871521320626369910662263074134439766055754667544617126043246977782875288367542968126585789796183257468067831144216890530849689860638856158203006197682524947325078713374661422825354055334693159829664736860495094778939516652916507005012491181990245612755603638078124012998468721820272335463892879752428682992997339932418909843589852869061836573744974222583594218372555540897943421629303468334749000152365844240869934356688022714806321197090265914064353162025448839600876217110311095703506212817035693110953510506851760933646607747613403807881861423696153318515556593418523827637000174166439925577638277384184559377861290153226696603725330496802843079795953400710289914460007136747716969120465535691944008855434860737092205382290612507786105895867026256641753617531816775472798224805783517673732206371281580751467464288868469612242533952350260482276072035203952209550378379466253260261650060100946833736741524890795982617771251328419220725520745594508753840567031411486944977266071992908152266438548867552607955146913301691962849699671898839182608713858607889577622395316551033207705290676325826828750474680675114525704910856137529151312199013184636163504326568510222006194343126247128951365527741715519415961759364071901571934065058023248428100718674759200819776349951991421339542895242582575118172998441829877239684006091626332324697251271430840927356419473917975793378673507795566352005854205970083963376027929266760681828694999421224693643700713589928225169151071982814594935929580012469676713122595718613234272269161129213724914567693632648740850457680111826767597166169031076483094202234680390876659994101026463043882189540984106068996427691263066711006990970159750137987490760222451289328881244974770410668091920538570765660392670551605059733318706502934198024285764989857263053674381977656748205934911441318077485772585670996142649107708321568393370544548088515340697739863591931235238961794323316961773044196601009872413903517876273300449630699088387246006129535069479066978995754450454625008801591483914637991515456770271091717451681026420597253496192231355698723564084342500295638410307019456497357458854445467478148674545561242467660977764948831340793118742350977046545865765054246594358063568687729215610527905628202596685359322243402775549253161226450238360033936911718231822186405600319304189200445322104214770543019084569862524688406760478921346466415463479693345055706810130271596705666599364426798863377694968114372317442891354224988206640557467593976812299904673986511611368240035331697321238008345856790117925156536664601893002786373024813575776502559385053863123898585904394771350806138505098911880008262921217571502994245979242558039691762211170540482488542722122151125860444333767712632900209698489765612989200804259144324359602394480733428127045553618200617246029515571379223844975275671996849191169355410893640048883840005794230479825484096864443644772067428167352686380125511341153186584105169020957484614030548559290513621069985416608396595289111666289451943268577041272974548410060468549762346832982848457157891688557361593390439740804775354731894165602808219931215852607240791425759409060308464125599342661907932971210879217764436072485846751224207555374066181057684360239948264522855183026793173572917530399906059725221579131861691098256029079133213111301691588849281908369306497034250214629743610775212070961939559778242691794992188288776781874835063221571610022678251221331532561930187024091515938003817473157486581042032214173332265132482227357384416187934972570694564607458056737201921746509739863915262555471744185525661039919666283771486408152154949550671723650159999993201397531561987503496717788449808327233734259205004677774141726283390659834163170322303348037697452304204901776502656604166056617670870576195686303937149467255726195279593540549131194163434325204144861125126023535195662557513523004349205956762569025673171320622651874089455380284320483681844789276769940885078048651813535525125997619217917659788873719612898364885717130820114996763702033456751746049079627572287879109509961374403082712349280323077667123334325618260694527298231176630200398875492391841361653508274380815555882110474514812028390189240793708813568932865095591354854783958096260841833149200049293622595735821757038403945771128959450970308000597071682766850794303070336610577377035435678998337419493146224960418627266891803023697687377390212938976730223169657833032653208856994780723674292680453860634091342243115273712921954512725933574014841208669375635015300915711915032267359954322830124738497715423759413715482785058421890701294345001400052781619487644067180638285123506608246296279991389905510734468338054545068879912787833837087513774420874282014229425795414941803598442611033976349609550419416004949541213455701257462135302825077449711290871580803940572958631358386087005202735870400769461040530079586785542398678710590723823321181709297404027236803050298705817091884161940870188932377032035464707406153365555655477729186841167790783588646094932859292379036045149319539178865209811841674465909948223386279375231260739374972591156741582695574551114109540726278526817090373377265252156383832659209640090084512233950925866144226314870771359089449581182861185151549316395907571729547844373581168598461186947385734756503324079379100681680020672088511064712274475745886479648465229755202181338205202626937369176356317498990377170099638166279226236355373230206436640926005726804218434102729950937363772428238851979660221024025481302904380026169959431410084262011955873317943819544157545948932201371214013246891152944354637002946728698458424577974300323927376884923137184925302801127168882749970850267816625339798292554206417434234463466166284586821225304181911261527352373268394861811134764041824254231528522644659180408765441956934430963157059684520387813897526564026159920916827546591789596222732509511952004227291355682951307759207374909675381525696181621528523590015256880575726316029159085268023333582662092859033848560439724954171742399512920638773119535825977509452233295765789774396698426797452705971764003483880669976994274859566299309492258444124031488826109288606614554190932933499163597345714875522460002988669815489215496824348135471900077130188149275327230686101196039672447454920467404912695780814578130597434526327239965887910135449006953191685562500083939788684585434499657044843994628086400365242090615810323614071194498180035235154890118370357409731285110240492684805373090562723875906224445934606001318643599068034347778639684892019604998198555631126834688485071777359973870847119883794419431001347842129580191308395449129612905272663596225059903700244436713992040271249746502957322308681410091689067824209687166994536491761304158615199263124917769940313808135090443873355920735102839274791125941858190533939319595132715751909275938334006926480635125797281152911427940839604688317869606928914125084898776431540142920255924207621068560025649583364776521783192835405305941021739505586536747191098511607005572773720249381472635107719848931348521001478050544865540110826561035599374836649363017495726113331271070829962322630423924680967134894572553165720151543792871153072629471000549654195458795176701152445389221343614837725416422531517262819549300295794486011643176947687793485966684270396756925380582840264459149227177690158505943347197201101152867495048837991680835368640590719700106419092208251207693567136405158344985592863750559184288173177024634487324164040572207343938424784983935591016846105256930821635620884435981249566817863962552184456809838028841300922318495679325121879136577865991105404139262958384214862755253297584842799348463796730607037573704940191761967615627730025673677276757279997569043109461091227347174427231637055965303011696385829335749158011187216020631886016498602663108830122977345436704234115037584720683956064334034115922219558761993424837264419242637539143421695872186689444842147934019628722991901313850401942548769103920740710772674008055242592832418922550224118711761354041810130162981530989084001275812725969393432325491407312952271120390111568249008994065012541080633059654438403830725682862701447701067223943330781848774413174866784993196530252187484517611893782361340906098288182628539392377270983995948078327592838347872272600818268000268199447820610804441014708299373661711944194183555893556152572241446147368153030689257236172792493600832088148515814997592432536916020200881899985238967469126647245934630342935755215572331866829195964727625767910535311783184275273831704306446338982017916390129167580668182016636984457491402742797159863102346559246778275509217525239740354749261093114362920397858049296161342779578851653903021023901796641530679385723746976256219896685558029905097576461095047477100206116676170927890542718108774976437875566156900624115176035086461576898188108187163224700560968916802761402472434759621132921474320798609087086813354532166734769696692604181092917424585308662244700236054303915372236113446371005299123006456402229777672859108322499681259095549466646063470081419326657332884711803145609922086342285883181342226617901229447501037835196801239408097883592650965682588703419074893522465094560255351537400051265321037809769059217382334843526709494013676294602775708536765919408846618759283892184780718527319892156196294165731941310547039781382984123310193541714564443796068621795015516521802441571789273997454050814394860209305968085346200995181171779459383583735255790478700477000900650483955171912396035358158691885929961289821189579128089452168556317359356009227340425488473644249538551802989797720125125051251362553725745982706105458662922241370860572302951863688596262037248554196822996314729631707801539317861802679381355582068707236881037781644806600867322551239769995021409653278430577730832954161384000041703912942963054290628104683551478195587854034919183370762074173626476947531159056955572900808273471516167800853758179111699860186673596281602229019568981742764252873874789473227755631606696954924161984281866312234135448734871749548163179743383111293262984924133855937823315181449742316004481826623389972727135602538876903276035519995594814907589622452372321616314567000107409537473157769109296411890805148403581805650278081952177734718117288530703941908825017328810260887403131344266525088999337560672597997905034027087405637112190838685949937122596937850043689048597031471821748750152911013749126818943536750985910919696258202248750287428676591366783840516329975749654403877662006800911965909561328194841997830946700265215243918592589117824137121168836169875229295564841926551586077216856989513717639687652045335112322201523025281514883565825083639049113812049172259860543711819489799474307233940855052349643666175038136336190652954870822825955557281264710160567307322768123583191239331760724855442043526804578567629506957257424950076419131243760233545883034311293384738233203982772760551778201199379221232731204466369605500407673727652606763751334849137937565914409252136784158550185435703028392233579079547831720176265910524684058007322749297141822698720546663622915099349641138395740049594726098953375607281669831848273520556221328939037524722349931105878090931463663543561406483212468478751797285091429954219581885690465788789676924670062593926998084569744891378443897803971133422552238531262830569029314479437230338398792524719198867595888688271232076948101083730019767280427552105898636776270385751505339226101411969246846667720303111090234259437733339132740099154937913977811332722182582617944170284894665861234313787306837023378113638491599560403083179992307455179629517691604093017167275516303844629588299352755726241015943140515055789330400713528584358480683615273631694566093586757534239625513709337832578830376688578954483482691552960808095476855448180723431755251058226317341080973985172770928561959404316916118500080407973119769059455845574233078766624555205672290360238477423421285985117586916835564603526760709567252388560568224899252908515505001137391200459510624965338679729596732802670926602613453450702914015538357521959495594198665230150814725599994692973296638951850207493223913032969980042160183370667146747900244789617569256836443109931638959971989565757201420842862417318052152754408832738454056610540742242628119804986785775964352305622975635562322729436984295853483277657984049260248095708540211567686827932292320968600382040920387670845291769308759600560371711858238603579098971519777734620504942455297230692376144517555059113676214891981898950874827461570019311964395206881962246664832725030997758205294321220693963471194881569506185952483770418522540582644691241646814140568446634843108371151659096640041596526651355972629004533901274387953714188886167631885457039753080604512644846346937776596591571747825110422704688441681896097041041817591306457894269786455928099102309705786380795455039154377050464300660786872259662557738126939068044575025347959734304648742643491313646336590682484899753493435208682228663526952259266589231835327745709945348446890909157548019592033679453678550084913713041349491405184508525171619940874357366408663384819474200807321474076500059203836312804920927160325424052308850347849055458731358510721517012120394560784487094656003030372171118542430234944788712218851866244950923212243520128270729558668935132628499038866390181354175594172164653529380117579231884984817187695160856469724336981961790932114133283294618124313202589019354113703454310160410113898708537721559008639118247483391186265736809622235714597967299103002279606986324565139453542552673930501332752726620639336242684387998195357288931537156362961055687799693266058501648461000047275912242996281502455628674290638044718009943145664980336374207301002859481669875520388956042340230125084887989401229408585403025780401557096871560438903264010103715197806715545208559641631088372677122882255099493077838425522365498466500237177409671530152915163403604143495593480249490508026705818084321936410125276185961770406943053138621714880457310966753614373868460490082599108907234528925715427790630677744216521610888379645132250609665221556694539826799737855109850744579933172882009762795724020840654225544242236006446648417250173545981836713106216101524132332606437624705708830788507147159059843100975201455259106227073461277353867013191143170069708093961771650577559906027356156455269412783135086673950128735413645549545343708677246678608977136820317596693986832210976536965201171248317472378409931828235204689304967270826170614811215115558752845629506062728460772565968740856968292405840104306775932585705016205907995669473715952780180881272082245012928291540975005662567541840605613947358268951721065810486463941325041641754766203691816234430930779627729582063529978803711902724269608493716606849744673874453337733640936882098408680204267994630671724024430566680671358219748650071421586102661521167368290767695908252904597280529665193716879793395436160625298730361497897391653741654380879892580443870848240420007409659369949303590715709315504102604835599851588713188701781252272318351972075141613370035881231768052603110423115972716836348952081785360836820224153177016546055837628221292203142686123313934307364317375389283711086152110543183465142057329374776324780380166932488561938290107216827094615210549087537153575735925679339987262809301440750329117189216280533683749691249138413162677931421749841942002561853051838692742865158229676640232682820471497004652969477417400650817044718278848889713414102429051224366045683360516956898036388758373028913349964909282226592061867150612665379299712072298286901018964461687068774711214371863188393083601701789440162057046392923329781024161726993058193903149920910588859781844698049534342361293913920206257481688261941400693587301591343834673698672004068082007629640337117209308605872203138671198381044783734663044653886657007024797453777687510834349145290223154515925038583693129499550262617629839706754312762636812284172508947708975659206766449532061963156844927386538125113298817707438502284953294859752407859111657659375539212942124658533009399365683533246092440669001504468557817821211834420003122874486758468558333440064142247677175624386537154809145605400001975702872438930209951708516134790363903730130072361022433789856518206310877965826133118293724472332059930477163402036797313248774178597919926155410871708450323535337358134540461390973265897793331471678133206677738845647311851494323583754615109108239967808715156242020616908158016874329610375991575365681508229235652571346920501287646020159865126412377773039973588822581570293312082336001248352470624232135778015779913163926890354904464777866148916379064924871250215792564467087491955401577891972673065514428722274820686713847423074043083684841215690342237712043945770397138076526042222085801232486093949859463756677792336496998227918470321427833804073317207823999155379741716161107364009024843255173292068652584710651376250376944974184789269611061406879436428477375504806563142044893605156295201779354545965919361072375788815044536475164519304532232391891768097273937464912411619699620465931229647792452159251411126939093096441046693473673363830650044731871478152862029213259215009833616241936607836388032044082642448874059651867278342461749530782024647329681324044820065897578334401046160863314609468314433418604082944140970895137654983241673651900753154740027928285964791409898840552582752448729691602362054446032704666939233916796371412262758627395365928967973725240937685502756249033345524236679781983553228369578487486764003918867078960964873364835768748715960301390891626343544040430054356362994027404262671498379842431814655869763946674265038330755809010961785612052135281218259623306551316483245669380703808237873584463322391651925785408013781945071014471696877730505376517260883303762033472287514804973669492108148850996328396397476413030452849012308371318107166053657014257950517667607264142698185870328985992930695588232983191026559334670334929354193023384211221118886754356562814780532872390933155081257203473581602105464887624507543027462339372187590456588141949053602988722909673300194340857828328526764712104569421129206929500554767601487811904354064368311450323040568148551326562450108461409931900108164863094831885579784374443837084558544826466215146410670689862476302035713875642507372525974216871802649058218400304734924434989014408444568047992816010780070091190477567901599553099433072746539040316768186082876513807664808514076372232482051130210771840987875851995534898342451647551624384528907605463665104939857798250327034129823292834623134601968214217552847722888501497783079104130828870052482649270870263107256124239684392889626676593669140913180392293787347266746057214506845753494372122067888811679978617711275329637375701805959789133737462066671121085963001210868373464902401088293554036535283537262245113314262313616116185368103589398606296685758572060512486715867062349712310989067307502242875586189669722423443973140754914601579783914813606513795024281562702180067317325218681108139995833296080591262540068652732317232602598021800018080807799450451862742921600165868180313448350025333786691115212064475350073725704759306500371655136959833065475991597865803094216290750261173222335176685771947087778354502873043680195305463151374791634884497124946349441870757353770934744498702519432692566995428026256034880617498131820927194843558688253660612609472044104420288611457768581963033810518098495396117931832486309955072503589032071824634251762753786510792470433650820268636504633204121751877786212741778184162989585466793666090897649379726940860873666562843652087045623933991146504735220743415592003459857317693628513501025298788746324149109954499943478555811579699689446224766732775296996940637126276838416081790099884195587137430115204191387418607355940642711644043909337684729592057566296874315026460396854263400070132103272353327088246321600028875777156338716264638134152723438290368182979301818594130563965141689956073196747726832838236682646796354247612489151293378436477987263347430739625583354860549091015488842884828617312655741578691281837601289791576835974453815098765832177055144262664492867544858931609166292003637281561385148937824094325172486776077018559873157715709839651198747084423172799744911473228594936349707917598529337709071216528100614068451057299923706713778298504610607857491469589677333299098901397693861830677408366448680113607164993923362457126201130842153602461394053125885207995379744372864591715051105318769005757945982264064152261434923646634695653832209194408712662463178443147612896631689939588047002090534599069137735165148250293899353989302153079583429792864110217315640067886267588284789489013935861515118245141907930097054111938366772159648435109956746704204033033386258081556792817562192151173356889003099601132272458061994342732434943788723442571030277381321144761660617035911493870246260785972535969790835376719741632537324361085805976754016403190016111890481264457667524718901661363247380134602541028891819245446461530792657001090533073780644356653667113975716492251709814296228835380879697944197340072114923632642949779962067785208402351455964227824749940322244678863412565516403165435455929115790496091324088756136240869703643219379246665540113918073044373651219268438906424573941000072258428695496177780855609949326086482947515626088863864357427339555494942623020760409917601227024045547600216579106310030768066492486163355784252256071141092436884720635098083519926644297686575468763490101937285996802747593452860116930352699966536327591585916623393798341732931345902178850482347540708290243472712435060454847979549145358466027183948044751917657633195316043073911696119709975772917527705046635779662923032049710737949001031517451171580629071613541185892231702350282294848620557242064498286847284931294254358212675544367717432800294581832178775895412413051558597917663163968787764858260958958055855668092326693706977205754061845322793670390018935841495540369697579120536219622189922554023336188010342659565300678053087685093852257724361092342329383505226681687948822122163841613583804690533683793449149093346885624273459589524577514813968245715462661363065605058082126278775886342378206019909299604163156055657999246519843415762498233643883206124992878015630275024315918194183274469024954743205058222470017499174336600814505598042503749717486248705020602038460318816770399656726841208270936307878853105424920563195505042333648106224989616874254945617538805872792123859745794531706203587439319967805086361073458832989020958302587126864908047142404869859029073957433289192711715603095074132923912467265167560209292855750551444993060897444829643948990196991929808308038611746951506446583873492530597086108404784941714567866598395730819007798916942798413227388751149098446562684597880355224384629548183164107581405865810300217257132429607517878379749198373630483990491077691460907578075118956719255370772236228364612581782521854941073572765889232891472674874736399697651372478322347972716521262968373468016706274297764891047008136018583038053600023774399346731044418917644611775869768335884976908417309570079856607629505990996742043348340879420168497299992605870487099814730309431754192887379056796919857429023274658040938150664784787545641815524414016825960012950638626720947792976155008313218776615222621968428374855085654834792478623063231668992606677870297909823652576286959207371910767914442689105595937113625990352202624743571499491156696604311709042575462124370502093765308192494184383939796009481461647269239694837756931155659708078801774696367846458893052486917825648754567369475294355022524677104580764652001171940250542246611697198613935192721272418650164869679858304877127846979357823207610112764165448710907473223688133986789941422603771706860504008818720750291592214113634099215419359434533748477069751864155009633987627569995739349537393867269912022337562621385381522086093412006996690515979371313219480760331905510128750246165288808646964092548100493940418423085534439587891804522294855979366133768131496292669998373683020639364976592797344387263551249359187915766643050578795164638111928163915820773318007760092908029733985247939400196741010823624214205254766008651491836086064160126871190954737277361707742206440841712751107575397840227046989443127228515166593090553723882344203939683940009249659802829116296354263972158624736737299140869216676334993668980876992226651543601899937622118526190451838001396780268423664675417285812713303195422498436243168017018133205949545098950311939771086145801777851381081227767682867053368698686635926754964509070218019633652048236385223110435755417140268844229601023447052591440565456173652055753258967830499344277030788711301267361616175421084042781142239912474445003335382200175286849540948543413287314217144745461754772369869930849027558118381849561098943717673989448140068024408807559306868074215204585958531968338837098435814668788862552190884081623431189598889409816211883298762116474494777134612548235745934109567111385834387945305583193404548094760740420943118858601675537586081233712649288166004284801353190166199059967376488946738217098934944809089420342664879944316250156077467728538540030791341859290813963940173712209297223180274165758612544067114853890481373503689581665618666619559273517717976250024857017360345941103884262043622485682464581226740171649776232965633584237459945529418334436062547173646714669855158000884897809124929368141101233214748327560840183198509968681934634801271023886590401774986276742021728717584672927824387925733354137201904655819018199084693235737137956016058241446738043002231843958196323237971810858916582211395761432927958049866561812311041846284416346386514912150956986768487923401294976306765610018448943144559570014741397886773252508641186399891037085830422891490449509889774816544401137237011393083290535375375644225554555225549007682892226224024639250486477955231586578593627167799791586473024779868019325506056716990862635723777476897799896668273956784621521145536456039141816471319183586699360349004635363463647782305951176731396078206544220666992532986594116767279085384058257764084573439495509018284462182017247577529485993212794478395124171182557903430940512497656662051453716697773786268211811891069445564401643458470478062365793601024741442909886132212623980829443106097405127395056148274401087600914912837207804086496359269327006994447169194407427600378545156161247269718382279837893641978713409529890758973242175662658336406285401810449228852409528344264506268431069610742977224905134318533141437871130397996196274425740446088014470660406242407539946736064367966961085591166802534284220707002734808458971439212720634664790497829098191861219877150331613767445304724702983828305879256247053264240099491813615785294854798003055898406665656542518935208787216085345738195394138938944346726305040599831560791892123018469559984756788054086592051246948527730564545864400107905927836851411710282560630438215353050085946945921420531902416809905316661589049841600979516354844164666010518345281386919405813346848579727267786834726356680236674287917012290911657911400483786697884101946333272481577421868727391872705557584345192288244570272174070289971804732724287323911100485113582795897425955123476887850069865133596139812930885244622564957034261044468610804878187590244154881858088961528313264732712526813116316928994850841347076882298011299098869567928364702295169393897239526883933397870768690017492629569818495262583137346451003873681308971239657980648342575307786975641305032002228941916905021943062815820370606335794464626237476649350206795930630262715671618110695737447727403279063163542202929760856575201783267170762261821027457093966864585684221118994185221007392493951067068651360944231555172501875329822859977801896694347084972274057548090398179311054185661208625887695215859706333101196954531436646102839541717303396345811898245116597593145610422590472895185418640717656616929718968698401984568668906418826645963426751371261576023266927653418460715018223385495767364843295137632058055877519032859303370302805646553752169290098364825415589215006933880709968874402813979712692918596831851309595777398798797190561199408827872168869862738894396417323642840989773597184916399929291354101327343386961904530606700495791902262171661680685697330158620955281504944588968493205115184977978889636717093003740378353661884388174713236168213296277557538270062853781830085866203458799102113725235105496568591386757695618458247650220946630279794891146620249575530280960554157829641629930646795393413825936827972559035763781201136568462020664694356654834246982645772751016138539402181869784463324564002207912386208846849351282083896573660171349262956906448943154832761351760357649455080885212233353430994788415030480988451471648625215974084149612820012957097523626237582188724181821066839967891704380930201550681305672398386650880337053414549598249008998026438850718915272199640754846561846183350039146087440386565584286459525254562649889950177290896181195597301236229294244339616149766089039961903500475454769910229044206341379186697175074419560954692975939184348180492576404788683838759843208910497605820003363621155393813259851153420120019470151646899279691622093065967837974405103455431620090457421423850896885813788872178618517198043988111308925267343776257212966839427685905260755744285904859215704139969074084336868160070459277014194049143933684463853690798480174854244065928304666222987933563384438430813612019664207578343196432960879554407254390547122179952584069368915907999391059569459314427817860622174324754888908830304783311051307809112437556178757920633588477212968956859150869648038305936513251289641341409800713350233874349834260338990981362012077316078370783671107781159896695605973046891311909501806590620959572453008478572070696613992918684430286670167569697298062315021763619311761390775037495943716981284369066834674716056613714184416220864828743043102383900058961875203660113033733812594564962961966788304585238489676636396581947746980024178588068605667041469385313158499972273106327560679260378112124138871257591790563146515097240007340624284869583703181849683844083336695203785724518097405148444818653435410146110724389713677600980448682086941343392843854991251658129314826438092785055876126707562619905050731153779968394246866250842060899679229403571996495008160690828180295790662159301298311712270012790198884466728288514935779356831005969154072650717922376046789433583734684795222079429322979302034144245267106190380901291533564601518153801876625496927276788843031107454449786877493050941773934828563008941657494637528167731506599595392592221460698669571132238666097991683121471804086331012959375014902173642290151312175095901481521095883754518802030190845123319652084129676947943746839249974351726410057726590594471077266802903677032348028551362371174864510867051187363745857679752680157961751183349398323694904218344795893599314172383863896968469563048343325505436535256992129566534908680986066442602140701163283250401007898382204957652502719624719043175954543914684493552455078465630336132625552206426636569655515789656234318716214038174961537239031941648836637714141840382176674638877009088618123082492126754095615244065472873205446087202783681695596123624273328528466163726010296138033107962997264867449457566838856204131079109565778161320749628553974344105918717714714676194478214513088361489058588331196924540468575385634057974949067908677127896610009982092104758307141021725403744190571743319203836510111276098335208475117709887938732190280286080516552500630706972236177083182301705750562814282174438630830825725066011187280340196771052301354238870885886669748535826035404257010981920250766628728288695905539114091638924751400545220445413932532241236016628503789102628815009713737710157019694494926443020980788369264602385631300696998726321974356933084715008053712122397555696727866727276893433799190135567727828050619312020341859952990162072626194273526544653215295262518703636363304388327434733354670353794438099526156563347900508493684628942341925754188713447093499858494372671952218014674596366821194694206290798691919597992036092656764129349244496294388137812123906418400150253988895468732810793051992864744102720386417667288400199947177620128366570771989996428109611861671699160469982359197327478925725027909678719529093395951581388776172521948201356303489240960446039484590527010641742065353908824859744822783435386668412991058967622568971191979386815823287812188792938910830618227860199345404463717677578031033791596311855794034546363790603631108495429375530583895904034873710792615701042738021935040304530727155055568157679144896026088253780838990389811947563448863529457126861934488781593596391564532816931058084627961977629162984957377089900704480032686095978763060446090310178371494404253185946592162764944777738721247033210020167051913036783657399360963835858178358149153594035024766487472165170450168845430456427814586470816303129307323764335564477784985613718232414290758649641406855293249846958868597444319332901808469332007257392348708538914778087101326646845586663817051090457959027183739727910594483184117892368835080266267648115842006726536593200316878950169480953484710670677637377319125485850397125310040379574853755273503307476338745999619444002046838370015973211012698528829770887369981045690477338380462560997037482813337073168115662268647541750016356171745309578861007521074977396713242167908013158655391042159116315465826583318116915035267712557120166209728736749889206392235396977463762199874339967502254129551093813662384360783795855976140221250593149199803597101782905033823939284517298864658173509375580547925435742970667912710684783134926904484679140083103322379673418574127543927316452633887546452666015439654170454535520787439232439598307125711381282788846771812008481872274320537669035056975493149359785272054090844700234188954863663770666647782183171913544461582856885919494854369706324164592534986345785791845922725002018959754111184240664186702936785475742675578590944699033810880291841157321201181875833236198535541808679976418683346925336653276441521662919661720425252642124834429064129162776955318488422980311782614822314124134138556500179491645681279950998486944146512100927633795207802632770390240400668795599085378197368686632728235708898438923699568218882983035190629073250419321264661201346775072886435082725407355351451892658463264413125644881275985813368791304437786804552010726675511624641243203592862428053447379038791520104455479134433454196494631712838401678721572752389673216695713306017056424928294999586217260557675349322322447214759745293488135278396218741655106074111577795934610271172560174830804770240800332561142734025685915576701293961629007012474687150792276073885581305121201981924233803059884331477275128450731022692000282097953121498392553333282012938282642867858348430263715841322246442036029057282526361831741431453509558048787029129476438249694474017120314953776171204249673459375311878023309125269465206686634373001524927320355358895005102601958196695760849833162351114388786658533313144482533715142752726355256844656237271113766170962940138968366146574973950253176763226338687835943746389160646922866997507041459257387652104791944817441467743028218204408603084038087787610946755688848540739553578629168432183967765295144616738526024968659907803194135667806819963074030824935093536061275032689074366388448255983776008417155028176214210764569844360910611725179358640122535297934790747861670712887537550865555987915631309533347625515870531913512773885864998459311645298281029697859991342335424160590139900448584061188632473757327263529520649435903899488820886421543276416025587490528284146770812450217055452314332901508471983372399760265777331528392380313500706451932682206411013207796105396294957914742252353548962146011537903188203245517978624268647785098241451399730814033258360261786786360800168996446826159120507531004100590709465886063901602822296048462243258681631701372697508175066057016554513491859524927862252733239411563383363389029112081032802842145135821507346570535473796808305392105998003936061413414972874867348945826530679853933035400446404872585212836157147422269173715250634542514130171969449911275139316711417769344326096403720414181242263086856056432663140476023421910456263599269185934405280750651311339044355123373352448185390498977126009581227013469983876643100579716438082351603247053821531275470516360252017794045465889385511568420165591740865622030478074376681441068314160043336096259307304371231807004755536645781845884965193596443404729282757813635182665659213360074407273519787840157035392627027098055964595787704390532493954762817190129480731228615494680770223282928744971317187727487896646203392036303565393722247695808465459243933874174022122349305369422520968343224520308205100715230979209806025572312847992575565532282625490098279012254733368297903646983595975381719482800193079900199033953337418590305732803765424516615875405003930966625123762641341828002634574333407669878186344937565837754504677021791453687635437511161220032610852817612598559770322224648644017975098399457890300579476204134628796549736299897687578604870512029408615731386832326502749312309423312840366472663100389027003660868948584373747211254565717541811895946360216017144241144335685770517801982732542044983220650537333152511131059901571700266819470756838042551399375876140569888738726409152761856754919437655355853760641621808863093407567955543448839913856219684276083162358190425074583206664785342637942058229293338670303908734372883092111059098137031463984330272945319679171175914736603402115415524760568368306711703304846963630144831472397362959080334831480963115552003878575858546809923376249633242812183217523210237537261653427026367275304819860641761051725719127241522639315060178291194903298494524141862283682143873034643915080372623295719248092724867002291778007975315477687969087876189923796918167837704924785966476440104732472701766476732792752039664871802039302105189895810987394003440386795190309376170059945397081071692700417890003713282466016451172773685173044728222325307046343511076342702164775952307085336885300508631902859856944245061734653042231981079404106719907055345571272731485169459109746304411234408509342395440070613800764126174266333366094772339664506975468631326905198441202053084997411549582129009645970993009461805251737290193626036634456011582575501546631920060951714247631870431623025262122083537196255560489379851776334370916423821140430324932662055871683830563829579665063396030858246013994614323590584545271976639096512962000272193478606346582193431493399225659860119926324796283056961502254934372244470198963331184368149234227597175495185123607645658429803180444174596477640861981011295754075210235518548653906585982479278680191444731554994541506308716298646309102345695550631244206615392233384938446384113884334769779376299236802252233887836690564260927539031276976643110435343394860618904316629582481206202929082521914687916566542952557069806706500020206346139456183329977188391544894210047772359620635035920345888143464317645871189909610712776627844840501910664519039577417841589237213928879834413818719764639507976224016138670216081659500921181580023720231787402645443664498035402669334593942837708237107305289074156659242748001995234560368905064390817807146652826376838984223682305927917602397525675440515305902521902849169756663886742381073330478035057946282353045017037884394007597235993849021582236128397719868295072448359705838321816815499127509227460845641062038717341817319152937450877630828991486278420709514464577167268351933379201234362883939430354578030679926485516557419849888320628440898506154903605130853434132787167248298622195889477248387376385996001583691323455580109821474706763606719632232280382821482694436925363703571595498785477311101011662657062225139535132170512186954332606039261967480046153616720701368720711786091312374889362042651328185268697964613138844877379581061477678673042491960109311649530627543264243966609876717840603375897429840707034697610262738297766466742220353709894283099059197074605573422329876895452582723176006439825065825562285213001534529281339735653403793857101791677074263637088633044183216495547345103910174464781946489764222137308309621799476618510121567041700195959827194465195332822985630605558853845552396684829983351695032139532634527178709128495449935471766660962548120114940604346547582845011607946840853213962407757933801558249524823235258832602525135433600641208544479278931307270465839037140260755297563171473701426520414591479382802886235070460359220758889948384757417009703726674378628854534398241662516772675192884383721683088387327110947018272841822283135291235974163234454881777531365223478128908272371737081626696094068345518078794412103924708193070200691441634196270205613787006085137436472233570879735332127254553371500155179051988496120439168330482865998147550947807529814798775111685401746133113180126531558155370094339546379207769294159158737823789010093662814440004640403285627451313083846774694826330269966919348083218429191856898056086953288379404136112764670246114372565296878242814715709247865631300564277715634969254211039379188035020307557991491913443314675575027666058927535700229109158584366102623805004021378487361343533028712908324140182597924627921003525421263932018457694822502075451470098864864500144439881870668003699312959805723368521921899173290087963078320186621051252740541492034623695135987545966617257184605174756687604387356700241782774083743818978407790927555514735602105914236115157845012822819367098038786165322366947641483657794149265378407427808208566565871081466435812238012833279775055844018110111339188807600201795426388944555570954833801518352205606405549268172230500305019995941086117859208261682939677014071568840903353376224946932000887786254290281748342219867046695498413380456776565071628459827291056088460973664044575531580586205808477675764502267350151255553111616548058687056222094683872379860396218093065618489563521850653619587485100117290735664146999824503609218967465764388975646602797311567613499263765319453481433824209831601808980931846111200110083933160821890747269840692137974673119510928378896341528628005644341787813098548335704611560667555858547964731791092462775788159710585928685081085626138886069159750358082488487901362779250396786265890417294577020447050843106257150079111911555925862006909448038593647200611434686471551185882852984622982598832124135320686999398773693012658713870436103050635418634733622568027511064074750505285697478024630098638985939421379136342216135362695980228588686253176344734576250874460803132055961454789442624165167971297426868721219007848367645729870345910082248682697821784973028858843953976549559010365174724259000528636846246383744547965115447133029783375404437657682392794793986268421879648677937053388664008255200528856732748374291299729430847063501096941927158045094586562826658409248963329725769250081658349345912967633392958822807597844904075586386889544026772753152132008624966565807962183426928545841712031172991638320214946119177641840012103466709667915086225140248938930519364564589543668152594944631206457039049704940513271206133035296334150665448052555129141509042611344392149348572710060703020131353838642235140515635151671940350273016675244981539900440508184265471803784077669545995482014940468970881321716277447303756648430838637027533565738141478544478112955673586820596818237066807917909059845515259236184423381673508390936907186982064567905616206412479661158350069883790793783883211169080381430783709520771634203241776369326516441303303807227130568195808762163095373064394095853844298380305492689178956030081754999306949139910040665910437084507831724543166389303194152491922019453991074689944747783683909579378465932467923893690992378250744041921890173384667703062099243533032154975514526828412157222985494682386513588262786557028182983658042771873465517820431617427292746476289693978998493741973340369207629907459001090406888363038380237390754791771958342562316282319698682221093985851666073770885406710312433595960520788598087904146616371052454937572566402947480864688984108770321063001199868774851169305428686080551908688007901179399274732069918175659028187307059208169576653702252097980943402359881962000403975640612873557193695632302263013314794146744395528667164098938347440706382307421050128187051538993433526704201946405387574676659002427742538315521639748185558360310564862734055406604068616864264505074308271178463846805692298879549915246005813245520069379738636575822361100956395187976092089862361086404257015813009760762404416287799548749627529743834368851768966477214049933082917750292082707596690121998179995849727849592148800591067697695237027428241060711747331043724021194129706789435938399879644900305555050996901625629120711097081318773360940392764998646968334965271437657400364736748143470499712240313239418460456683608844680740196489044705317177264033981077090595961360095091893816000229670585386422297868616497901898513769238311091753225711297517154303812958049111584265363473072579067794313865367016679287831834952317417423016219179659580789653917372397788269067076611324642068831949947834098012576437115922724259221949142007282233093315357256519384347767750903402547330210759017818586016248861392369845736390305188131358601480111251416979029354786442842466937578146593006547414301485957756446148507548793569001465077739623876335627057610883954910006979146681306181047210950800255397358835707968441401637759797152960088970536914182382429760086289757361653070373467774185045502951464311054396318480632674475718435191291581382562329169246230529100627409811102963889080830696328225225709751695103637297457557839738615716805140636169559747636117655288058029753396483193329232989970032675620712868709949057201023760667849153329534630773327868676404305764734228197834294479286414270409499388290111465413314316455906747171148001896411440640520321642723215377663671407037012390540662264426241048739978155652192806088598963448825720152785692992250832642788421132570076550891000306957118258401166408843507891356315454690029731104504662878079841085526906512206925206643722552941019932206197242326293755559772895975031976837153410271874539036910009423734554418232681244656296301839616380095557140722346732652075565430364800418373275202396150240703673439168614372104283785631819347805995786484106265981548490456057912857683127370281170783288029708115132376113470860461824444873434333187895093879027901469897210888614430025312603612939881208402325271747499907661181799897352742773769898789531460579621176113650734246512834856197945584861119780292524755649608170724248622392798586189890841192866284513631302270628776933976763014147632981054385723445125228215276701732200831386652277949026833399902293734059366074846092559411454327791581433933288459542026389958855098810947384603153177920129880390017438822426191708736504412282930805992215436303891556228239649441163731048125769140369273007599573518426572289859503599095795723741170509013278394866271395397984502959198134791878969879921669676595218643947571611386823643370539359463348393464434883899749382074641510267724267822806686565297775851834362047476255058777353598050567930827255832540311441881156232304724546539143885565635981039180918600519061085041815956262962093112429345676389907524388303903545314357711919623553275960499064323354110418986771898106138073293224000731684191654766033695418854916627227757707278108376014209676009821129822655721303990485995299864979232057940476599418744939345512597064993518965281308592880079867400780734046312212368990288946182807864684330756523903402439021763837467836168608375993028695465581877086151378520055438381364581653703770955064232567307695986860976382753767254935992843322402895055621060365326729730351219117579577741862280365917247903210213946477818636122871174337915012668603657808942717037236337570438879323769486908338389820268454894062043277693152114874825811072605416289066740276414595266314398502087607459259751836589097916399049597062102619997701803706085467482790811620528771087106478568674445683173449255241426828235103190255763392131212021769705105442802863656661351398573903330378420412948032832137447720851907120447486474822355705772505726187967182430786414983547750166667470520955142671928404690728457092675895224513943640195601283422964895248919168898540974579401425648747503440337048871046781879795674555755012127202951204890838925540452924582021095494606332660232627002105880043873021489931071189133169624995648873627866397234156736452582544051982612500813169464769713995069211337848063750425687467450965330467564082226552217061485416600228661628524397081238738235740581673224479405681732996684778613099593164851470444514314829725654637143190601280564229170556204499132125881873856758200610487958831897317821252830116407219620958427018781757183059447427286020332739555824642456570053431076597041209521614444877161215603342713530251210237330286351235562492647959687930459823595118625112443172044448431475153854873391465411155908855450447587178535469684006640587206026408747825509469917997577455854247723525123657643679002864918822156744194878228725126019790774547797788435128322823869039643688487446616525351726325168603024231898434567920147561103225316947763035884674218307427100634624180131555049612813784156146173685624815902887199907114263520215298315043746624771348449642566237370720439123788336192671519939516667376294450253465823283664923750598650404785798579985761600549860545773238832307274980474581435818704070334491473594125936861581509522439305588986625102884873510440595809736209691581686728060770254805818858437358203192765603563297587344154380170442067467624724249084383671877664195104852196447749687471437606667947549957158417986757965957654791605947531624948574185051894170164516647946922305692474613521868604337782870374338517481417312645103737049743406987478260937726604694236520894276187468088764560864528917371096323897888715260944142410829364603403513209738301415414526290182657932523357891934719678874457060944301214980109649976248131523604549458556529847933005088121085606837183039234292877148401806169513828877320603609836418949568505787933682193556245338713273327908669210509012440028730201743414298178687458842509554538588974787229694009525262703471894304503535578744100211245369645800205838771323218429084002434229707134844069302644823192780446773325106433451614260013989790036113313435288096386721001023813843155097006040186000906564172463210237893027823752432548200319818626895524843742899452589665716704124876901905659391190269326466868026806514324772810892439742463967261955359012645586127568312579355452345734010199906552513781358810861936068157521608186131220419023221904729424553479997562924898693351398783179894289415245798141033557421462647104228144983419109014290405542743005567096283488476651546070419379826337004498024530118955524051029950471526936222880506465168544058659965206905433684807529761345779190559639714020824988378402970266801103635090534380340195866977169803947419478449479863292849448023382313701114853370570877560264083635034520528284880239604182472746133396366298625254103395917250124609638580788329361265676313775791372450115229677380952569596977141573245477701331618661783819115398914574039702400388874776457928570593421742892752905704696893854870011512966904156832369453484907966810649363430918519188678219523946422977278884731234234273302165740180190262688224540772525143304203575294549567288548740994246142349125823607489620135998003232340657232071481488343939406521183452778971762996511132739829437271576141504906204872422784060870714907464898287244647140207960961812265983203346250743723853109698363064077232387013133475760844084542558566239947576866144476378301313670682324613912537806906430418552398705465131520869132044933081326355439370696983022761517667863846257993155389674567513480967766180377163526154092555622702419517453520670670374581172265327226006254098231533145295557829338874973802701916818708658444993224878814017104983412780253672076409706822849677356544985006467714063249671791172368735986519197892469482420261758394790231678470361545312256287164343752204599936819663558292794783731962904748188537142877776300110562311278308588755934423601348764162338298128885377530379932244328281044439392824948787284462946268277071919411489863702292562198620509043327519800990095759105432398479452823850044085705726005749500042234145289456382166846109785764985198730509111223060878780192129697602216276418658916826512602414270470302921386473322157367001996617941414784740615920158881747750204241010395541401411322465963511034765006438048301231464877144356313891878865932836848585229333864142637064864886638247762616323733628165660066896240788127496556719561955927201344998509953149568127488162574690019517801825909078936885927284745209860120156263012145421409563597812405865928838351287381744716546604593770654634318620576083842584810857686742521110086286177590534519868324523415682225718008573898083864065022393909303841039905181986375197994120628340469156290713658736039852493020414117594442194304933212055264429520346657784147622281391857344999075078447610543772609299933226320348046674188286805794159732607133082125841524126495584057613607196044513514906825977552141885308605307576767303354557900457150503008552179719117070359943214090885819216507527929814583005841514530944799021392734378109961103695158659148293860942341469503252718082240810718477494196667135559346336588341522276373203363176627411544598234058114112783389115721170548817424554715643260644340542070984515686307103664443502563908005706581906994496286408603764127698265700631726511652927966584684739758802980618759972523053095227377254741197240231873434632441887510309903579042322595226197446696357556383254202257684690051015912677959347334591872067117641379465925215997685263794403758985297749421912591735280125101522626262600319474763172504557052665723399063162223200633010080607986143104424065368240064264311629513080132943148312775057654820357239262940108217770884982820461950561998379947174086424299755525765719982260198839563021723154174575053482830052361979958183800863334782295000608645994051123549718211593648137091230764166961383831745806812851688232050047298210781495439912539576322280274965891555972046318977465012181135878738083800687900375410855895307386681574715126880524703445804502850218019479632205312076715559007399653478487985761220826614452029094545834958095415720301086708236191779155561219115452479678828581163207376989859188427044501579487771968798192652381205327405141991417021077777694567539482317279494135910768719104655195658693540895739638330207762455961430241346038281807068301222000345258483600424684637952065077895554171052902244196879962537825728008898283555391524387944021637484160074868580419252400877835623285240151594146035667551043298513175401001730786539447868300108344398512339207051990562117577956069454844572551943422223182568069811133822396472302279672664983333615129247654242482140384669510085666639771349964038838357638238069461533449223629035754647156640654688446112662693760612427353390601416500590406023520186364580595390945929796764901659786088382859554087293780585111553312800275570364862389597180521928271802375397779843991080074079365085149007780017831565607090539756005425648544056755498327896690918992595886002415794754939081871549694627557386719962662200586569520190594639522414797505879546956217677889317336435087205411576093064373213257191164204779791062503367189353333938169676866371941627910293210449705472865845118045489203999532505118339718784523849791284334869950888091194442267829955639790392352224882530420006525720294781304714166566755667845795308128650446047248504164427479041719090679155758581916845506489904895252680448828179499370256676603453226485021900919201421903971829728255322617981895452270653471153602639907577668395699686547654001347455215419679000288214399688340014371716076036683117283731005951582421532591406228788646214328414285477596114242210703151567820725655728673888323979549626756710180605412982122119425596347437228536039694879188140017485309859162533870946269994908004927743912244933808714729348729696665360705082329314599146599314954980224368618584996810642330529943058867020993884597898751068359757401746110034946829154365137635209631958593106390252509955969454748430879997664720972536094524830905194143232392167996965705429119436612810542068061293227555174717741158579328037245360810140087060248222007770732277707168411686743896636539102644773839949031825143801967349883557876408832471482811456079976229043888670504995432640058654278230215720016835648779693118957539967827483221845272862336919961950091585267273346977958189799798663496159712306944255201484613078591466055199695517565199910856212020819178959975216812462176559557656568309343997927382521478230017354912186420585719779553256606109230928963470909362912307326156985001341974786628586083961131987658630566335228193455517680719211491540833199584234781922025718094788726988326824215899517624442281361332021840256450299735312184341204118838366540688748231950322227574851850647449944071913408844730185410556871927719112199696479738879944166245518178042357716583659641059837601064218756836577718053023817136522059109270453070316258495488380172529396627765470797965212909772224109418840007526457096688242931232598586125254120301454915913277139770573149854124343579097902844892803700323976367287657115784821131584715645516016621984603345403325086352488012320511473325828787604856729427643239405260612036903271871026033031880428662338251378106528961043259689609881760695841533209813018089289964985309820214787993294662954864028644882566865050684542944882547976066078651366550317142082503494045939412419852269704939154975433771007004048058213110365216468977071736561103683923388445780657106039851785503350502800824782544441597936018224867601285866480486707061414941108895870202764174586835453504324698363390721492495502426133488619032306832649707124076595910081192664891835199190015440254734031593604054864876901826607033427311805606612735697532623417024812815266134351821299950201412281570406819534379495481329431299831141379648669176802919982041271875485923558934110619322672888591901847941190782628168771362426352654214004339212010746484173920833559997225724703237236523888267718355792048140047980286580649870277803642944100695814773656383915580162049338437256473984593979740134063234052208930372665840681057916821136647831621016685295934543755296964645946137904250099638356644328290904845249067553016785483534593196884905363707980027715092165411917963847064551648118690245557120653003531278843542739098892529281586167123877718557231986902767242831262216275582862963610548153599675736099539301155616086373728905238562716850220876527389632858666347435159150147827295214685275884765214887516214881988202603432659051623169416548980896642320807930720721572806308778837612257446868679373518834703388015160734283038492120924966116909818798451637982664515712762590984002477559540617566587740344184342048320672169959813431384286314369956657118376251616700305528460567133733810817827334085469232097718478692425023910263491958813001287744032961611015965048975537325338223413461574921886574831722616445499380868002314370094142855514392441336893981550819594144574999097225942755975593628226795000610855406657284288207303723176646014484213969300789737990263410457271408025586021552325883805575955430741566267357882606352311344813356133654249876385506493343782117414814614254962439770944941515044543710642020063231200302228887200179215630318586551419492597629309079714566256405159270664590121461244350787689557946041310510158965661575718857004476226672802327038662418226896283610643965935761307777663779590453882762733975278491528219839220694792048433172918421763132754797653418101366090728649699029245002161151142669852499099352015277477118235644448839265889452554851696219880187950003890684742656755961456476521946863300630180963847732444192583480429543896261391827597907508365490195369782002560362229557995925084916316704065405208856654747895892448677374348712357746275832838064438397599414705802410733460796555529886027500450180982114791953953645876885141063850898025472823462749311949002983688201483005238521931871634906534539848860581613060543199112989802607187089899334303950055906713284249771704733915671686037550652795449510251650771268959643395287553652946460255762563559026281131668603365449773599311480169571048814602741360793509560922241064851380448279061832052005786617059010688540084087814709910747307544048614463176533387968644813800021364927296967853727716853077858427397091788022125286604377379909520828610795364992401657820275702465722433227230782313913160400463838814764621725503950516793062922300778489649236974497733547740667152939347868669820373119986409129719152136583328203769957672706906961416232779198236772552288864892535383444087428220885307706262131245535023455445160956371159310526484877763743536010821270463236454594812716353416804199463460169975620724693858991023985156728584108296142041786026787423461225976711971787612232164881872484830701451918492052556885329901568237304293090347464577505252128646946603823556717179225951295806641557842412537392829240509884688711591855585417011456198461815781029680046113123893281042054434647571592556767354827987135390055617576397456367749267331841498358843043001626496774380685810664928241769752154805785371127602948875708510915150161477918094585931372924866426656032689599572113191857288822019076963587472679209573631142093895599054918783483155853220472571907028199600174634676305340882180066114583503031602555897402124836657529594087400361001072046882184883544881058274078354433329006580420648254475497622296697835346090351720254699856254670778808578261574157406660344478685392008357631661836267923045978045610099177567651421569518870496762333412676719769502051101561640328517078816900725373313257805523587232625055987222043840784405563713617745643888449423264723942807684213668895375830490011437540589845705575171764819152271427148192590885529859936834290139393199099629623861830935395477430461935512265877973231093819141195511134096620460133907872218445972566722582322452678571858769634321853557399981894205007632169788233346384820935613196001334530918744107771733100914030950718636782097380749116842432599988368758748175841094122409686578137363879616700923489326573704957878111287191601186670726909081472131281261006163462956645228843553707610956808000654172169335015183967031637894839874919442688598858013466147598048720931810793787435426043063019142673165718820854775381595962352873624399818801966145920978891991765587811133203471615085622545827161665937205444612644579543925860917200799337916536049885093795210917833269432323251373167378477096789388342192862385384233902598035041242907389753564804281261848446385527518578411071507453018416622543770415022011217373949075282342399747618118150386633015814182322315934814666320015333126889477897462725326007247677939157937529210827997466514622455830618717696939042520452983406548503384277780430967898490742199523485120355714718433906189271359307663640721686578317266425577178830311256499507566827065981219430102396479492191067553213435919840861246029392196932122396294053820661097575428803795094545903499903454654041847398394458085690666426907464188195032455324000548995917935917081353766899297330443157462661507245029724641264136364906740059003992253954145128738221856553156975095816581531056501201527258096843409309613295191625190046672755738975105857260192154718018610898261137226308205893739534159177600454637952512947520001772447312828889055470207096541018902042783380826118641185515578913784679582935386822172621631620691144371148716693870806906985748055805413467353038165128435163206664503928044122369261974957724056884133107123900950321823206416983757874057787943660583716732443603357198972711140289216156265619627140247791039496898171812109832029489641138653877429824162465486168462726096749666949139312052507029011699580504542069358168799882250169414549738091217854863645999119525576205250798902027712702051173919025139393603370531873467883114683233009016025243852468237726312950495266752332760416791193166912118989097060423544095361005598467661364434447748539158681804998871122055026677514636039769193121622866227358121436370231664013859351732793875579678836691081392175690300506511479134574151595451819418492169583489408596864391216336310317900966849585607442673957919416610094876779023872520641331451852726282851790643255604387528053931235965840389914161386243603454511223868266979477706821600174883040534706461613188762522613540139501701824851788038971960747570080620383104171898139140892004625621423414386912919178311720694267063172640013595343307400903703177054181379981033667145185420764418924072729637413429139072298015798818780637982395754069603701243668872936967242891156015287311579644581657571508086365621358182232875715336248757121694036599434761592412871661101445491197989679783578544143033096293958409709549618162361317814952056197124924236141556253084910176583142239750493375127508987160643305650973145485367501361227409184639664529093125061795583480349577180762763354832993350960839017495629539387661575596145271987951088685148524328800927449830933154461901079322487193832826519096061324747818756865408433173424471832613083708015272355672714879630727394376049838254241717982755285650927608583754285756785984996382902622089240965224014908296078003348812205663088600421701388806882349515826409517149429326327370886999668520442702415222673416203400239360460867858934509880148182706108120659919977780092781705722791558085605044025390439374336156289419704587213849315926308878585861524338023994879838103496349285208633372961838391099856096705232570957414771232606531966071203333840990966409581530855713872053697836892635984767444427706311371782604803369307623374087670140543284483843841869050374748577901073391645568837062936732470100541004297382031617764010748616621651383042328730756219960104376763084360166083006296596327450631872338720934672745870342072458849843192800063027803458672015574846014400784371152434133516642940636506336950812333789193259098876022833011157080762594917773379104629243988106394091870949224638107850944183592731309340907536525081009117059500567238873756688242339704539452306470273361134451792944707047035239625323622684794982745328027653937733859548252742718591316007761587715499857850301724350863211744188198673658713874374171922745833602183362433819855786896832145427087280123532236555537280109510463903054600361622864413672873757415423687244592213135713616833204369126107509901691633076733766933580882206811190131957653455484563817471300176740934410662041404612497895172208624288091053312445222439321661809026831767228445666667984502325798150410900015752881259834006434520674096590040282829923291106758007099842225969139965057316639248506699704723297309359692004419891054514383201045257566026431151559880282713983145391596253781311564803846315063370527349360610511653378864757414586469658569344994679664180592290456553546372376438503335630876246700636031888682798372576678725782499157039616317859324306172853939853898249786847691969810839986441055462359051697444999197631675465567403707435109988087026802397292785715422458436066667649180142810470037643670932531413493727234344313156803640715526198734786701738766552709754450025952795951498076075734144856939707032574039898706188223705026195254980585105335825705339047809796127164883332926975524950245979642788377515666060286626398098339903380064977752082431354111449059091423578130085118012004273725860786481767047409958543714203627998761702198680985937277299591846356250671888843483663737948091576293534879787384865654750738466901921930272406782515300025113286106951068454403178240620691432704927571660355349949204311395215804478864650851686355944525237148869679125570849417659771226893981687055894922957271611178424274200056341133479616798205918232544142770078971951862159250175776325030269379186768260864534137082843912037199969873691520522093089893636222612162853998298223633752053558428875145211818478523827923148632950582855056861597180809429535946607035034312865661589293314274390455469560455528296157941731182483165392740055642722633148730345079245701204243249366127306314730610631744168928477608437856867203451585719892958747227871350585993549789455206247305652432985079368401684158856965229482021952363044044214534630074336621119403582821025260169545140173521901592921028280323211847711006138274030475626122129006943911534502438797093475826369918703227974080108115387254811754179555190458932612846361169116333148438931124246538398169271017257393299929860545205700729674191693917974819969442582328990761644575510811968679464213831778065870071863831427220765783235209409098972843892314908964278065748443581099305057363419442949226383955336263216701902072016487968544540105032376029577387395228802224082651540042352089651448844373502684890495630950758860147476515716584844105938352032397015064754712986382446699864746209715704557978319075626284595704928523347094603826073506453582771762644206414709703777054324797421506183993234483901986396691192649302749329772848824556324524273105090951318592184415477089821445373283938376766605215666962014307982214653769481102648304172465422469317840936811979897147573338635009371642839916071060188823483883001597578061254254378528034306169676056423519545500974510360093409839692268003661928671504694200529796964914511867459344962506852230367078786596525299172802538636324853065751513353364689610107363232981164043710110999390984162318641486804702504607744919979726178829349491745419732273739931901865632226751454463056827913681182458846433097530265375590267005793608970929307095838556313268783362095796085084070802304241195432215251610277239500257401018173222098433426916737635610770379408951646096245375738927548538998392627697119058099015215819459066659264013349274807166254392445451604486744646626913056355591515746517503530767590152099300065576446263261867796881217599945503493710004352368728106115338258226551798490625642909666068412474736385943028983587808458301515233749853088548954707175954111796501020225538324386406138292841081086230551474786924149881654940718129819174367157680544904304052772337475305513215566608195259560647592781501653483255871128133291994728265432019465997698613367586971908337626027667731814002512906870985302781192581535431183468166151558710654507712633390185860286349173860766907641813228694241509862862165193034891325413343016093494722432324127986525205604563158281148722696808632737093817956098290323362447425317243367796165842543407864781187809028160257735212236942505471567785137579259967718017414676119611712482623859364585562288189990438816101340267338269361180580267497287406484195933693485538098134389487758298101178522985652709474641400941230755384445020147653626779981708791139370089748468901183018157511763584482513799015112099908926502476141884788787631989783551430578084526566246478833845508351668328332268237226329820687639194605912212047903440728375426826290713502464688414521112712905680203807426111028097821343753495775874068076789653701544366939597086925267247723729813943505668470168765540353049715837773825914305998933595412588235131876933718869724104809788217946440007616523770507532244822755838495572935297573589362460496862243472401837318218473771110377990308044950967674874746420686882582370398648106588611565990181687462387219805728354477732796832129090195537211812868366101692273885918128372826100601084285705872140137663974334663407489855906190863891478209530508478627430093922800434329351626784989892850281301817305906603765772988499424459943195455911614953543088982437606865112167981913699901952754036122370726599967312290484615449749456018686512074203835675924932161002410329960781625415400293652428485139998053892092831288661681800006924493309621137176612935199783984835863618176591985364718081050153697603375903952290203695849215434538247370115199006269712099255795052756205419448120417300389074258268015712164998060263744210703541667439474526323257846050371808935945630931032260339128069099846589076324694563351492125335541847466246807543354224724304776810302859663026406064900733736915319577058856964551204085434327412968791481190107400845248372421931316605436134660092676484627686516999836167568269571013646608755171539915581620917510060608649007328924745882464908226933675703223842246361250675756268179882683104615546275533541357443495097582108621253529318677899041007029500138476006773254586455732588490481979291899782958237585736825268250634340080333801115752301869322946241617944510080565971621757521377611322656064480361614402074408860074841857354754308674952241953530154142561973336795017183912460364457219956828904561742505674782503574867603059366837828051657122244905273036346794061907470881159439202904819072508822385811979557213315997294019624440470559551532075008205538532150308366726281193589787200804424183554596544541049910212297071554396542475306509573556825977455083994990571489808511928387024463860766188026468377377602247453812153965559513976033471269953900798440065395506541111819352784296320269967634677612097202451266378830369345655430010272638121446628563285459788383009439232362422534267776365409815167810714608618735334795511207954990730807869999309173881772133571387908011897292052958791782497897927647896653310009268248887911831788509351676935282105458774324550805411534088607639923695883831042864674956868118774392378001718437847129836589539250110605501609788794443786324653863425198848686051027305330087982998004079020189691117311719988138673134218189811344203428104442888654234314095282958590022422938615669680159760379810696689647015130318703949115057593448183954276886290549646041805828813517204074868420790821038478919482188225002496497090638966882001294092105112877076993113446240001741654124377811755808596081645044304791817751308918426708279126911162421334662334218706388149680149736771948237737193863255289452902065882391470107686020766747105318758601694986053121926669940455347479201821319260158295836042932271323127131157023464840505034508079702666301989150272663324816733969660076152422098177308573433707968646834231606644121556458534800890165685777516878071587657191198157446446125156830025134239670165514061456299783543760864049470967204997199920772895638266058487483631055312922220327342121136755124859429633749351046238903365774943073566578071773168675849414663932014097093026441727103027822581158746727708695115401919058931875187441473038467074683045045342155372551184370372979117764519873172223547338297968369030931800854774832710280199580294436588131890560425386479415774715851392464882693654460553569975205712712622445276341309247750226864201427872854589831777748027718730947216202569654928474608738601844739121954999166727029734212029585895863042333063989987180655702500094637635647301621467755743573109900071373249682624787345822031939741725218448517912273026943269929356850287370808843373096925901014436360582909250538322203294020404056686621641746730225348322513328829342654565200272251744522979324225297238220430383831028786584753944975532010679973814393985151445388293676091719522438023084454252069672681878546064635707337548032688462465028360659274278240816104795614220983265628152786311691098229041866901605341391894476553666360481809507020006997446530814232176756141952521917577878456916066679154847768237366423303596700958807432297134558020256171798526929326203600817600069347490166964148031421159359214106614883143394172757825477413527238285982901261336881653798700802891345011190081124449566129044408268439291759131246255132091913009929525006294954228271378612770241572948979067948106237297525399838896443098566908627446594997869339179714127020957319366463768985456478268411762336988300394361847946141380373442141854838448239659778393875313562087620826527400223473302698554386464364023733562465023018986238151175933978919431156032795411873153857438402817274643989112426962379821982032098202856606139132060001472470320571202406076643362522811200227893941942021041461115696560646610567534797765576253748381850349905645842149252470031745817561497523399732733454599310563416908147813838805140737580314266534248690083588125478060747434252303081109587341069507984355902816185482161850081264369313436682384201627076432095517164856913721756812920537012440981284975783459087210600429653543876381625802321690099481609642186479654057086605893025295388169003171909739228534220554897880676031771161077780226012322998080724141739395280732395655082250113299205549520857234650799661677201431175186968947974903910194710292243351256340915032571874627920904761859165101909070700158821624372580904943039052945834017137078330262412328008678322333846701605490048804179478223681079502148677231699717431679980441591244313560132568931152992797649307570970148667564886399339251608475951990829054212455935709372746340827703880865713654908692192073902415727044615796915511540058406702479757057289900421379746741953418427126644634210686318880246773603276815674175792667255557043199590767279677979240046513255658044500971137865572967988314432787391519493106059060148306211237376293489167568428772827389624668031948154356987950498347938917926091480265491517802397068926598634407541980738642537006900488989841735217715092207931149916737470909604048776555541604575501887371048916878638051087992552386628026077023950836163684393618948210784411101722791569314951767671042447194106118039091832234517388771069798904851203915178110053583846349881325777347073910552460336589867865329759861719506618034160192690239122788062030848530359781626731843828974048460449187634551968447119207618607247549342833990799329579849747066503834132565500849315942785892099250674856495376466282041780645784982002152205229627783485722823534793584942278861058046676330609360401840538316464572714551157106207599589234697858686543819421687389308699537195658341676703552858796116178151342299315021215626559660724256153287558589436939329300525627094688542734663841871304305780991246745075690776995370039258637154705695717206419432340030178918824719059682851582443286342608317979599994840729124084889952767916540151944892617646785617864526512503548500516512406590842640605446852542710347477144927034382652829252415057872706310116304573736239374088942465314148335687962637480084295568164923049961713936338155641477297753786479730111711073814082871701623969643534923645053427799507853839985444085252662504962485475487606470600492441492438449327475861850349966751525937259151582033406672315963764782097445078433321772211884505151700882932784476952895646307920156878365974054245894271901425512379852561080704438802570301552926009278507407124556748621470642295096824080767165941840534122334003294112323883993556568034179045418741824393501207074330607667574717582426767564246246365533589543868368604882866393091165081389223805592479392112582640377191283023496998603661150548926208998215341262344383231404861759487648464836073263191922858820435348447772400755845658436958036113995342525092789680966049309635461756877921530462760228931436166864630121721169841263423916819446721272368421071271598899472185612227954220668822077600241458802607259249586770511855875290667202146529467954125670122038892399899463961278553983208696924081817727702384304365899163016113577682382986479719187829475856706611993388731568142485920117405874677261998347540610358911146242344740395539087516906472777528643958272403658314974545699744865909326930038918167951478247713351401732035980121735401979425013397047468397266749687515986857960484710243624446500763287849051946691917434609649792088865910293882544591635258145887860896043433283336350700513311060386663751938631047044301026204231688412750352402937578121136718914128923858030733884128569020381252769769287251551715834229854907991208817397369194549711297966088404481492394206540965717297112990637679346837167287828444642039273926254604689774790211837174965101366985302222022169200174057499967285428190346308827103356307316501115920837624745528456939971231445457847048252083720741828679588481319588436384633602309157377431184366449843875111607656518110646213851179307481992938766795591746310932773474636827058561446360450255341245378273027166191078295587155152387673751914385561087130162594747610180267057264011490662264483089883710868125863556757115453597903815021382436922723530203099571136155108125663769046379898322019601228060924661076405611682912346130179120039375431991596925838318741148564115090066892006863919396086643634335883503203613657225048922448733719816636150501441566310548228200593635039718311501292508468271492683538206184913423993234028736495583652808400400279764061294726955567385249365797759125509312109923889141612931417136997267629252327386330927390502647455379081118960074102213068510023522155495196793032466152169478696908684697430498602978953446847907798671834437068178264561553515261527663160809529378901938827716073865755014529085118524497440836635835686362696096678496864589817050114094212496699368764734218456073512346745645543417614341170642346876397295080291638738837404313059375802002944200834191612161695272360146863337653295173159977337352486549513323152995194878324557696808754976562431597591882065435123213601006867110769981271829130645286595179615372807900310569905560387936727301649124658999815168412898481361046995582569910548724915444613774670137297028374079948189216657078903909692049567201956115521128048875114455941455012936284256572341183486162843682604392425004522985551705000115734251450219151171021462108108340882165839372027986279370811952733998043027101080231755570903786643505935780164713547492913989875690484534792677411376999923232070973146384085035378441239723266873354521966584594197607691027519775238825836536927185836819473352281311671968970000326454308111484630677457245035575601559532547665220683955707093645166964720020410560221198977694525771306125924291089855503778388650935699352805362231484331666203973579279830221269519944032870692052506676886434488695089101664777834845508100912882192953335140921448347118638117929085338003453343748501777003294696815339449679116335864905050338690021755255236634375441800608485084991983837615310020153406682321439970171618977660073784681996842434839696276799514192440281839555249992660916341769441896409394041043556840143405642939430143652149933062903589739640577706628516202114577830162068035457310991375276914001743412571397136263050229398115811320650541778011124950431327933745691713302354205754442509753189671718989396421210518328436619426798565881109669784970148341868549371613065269128911317447806370029097942549711253895788873795287257026657791388982729098679057357846023807832894649001890218033548197467927591136898849133889569621952337678906844938168640835906552170108436124279142137118855427112898581177790550444873981943857157430005506330617494468041203569685243313910790197365621446002371260019634409460417877474773024158319662614021310128756227705492594205942369351112434803291809085759645193884702764636611531023540333343589093717386680592591912687853483418543099623856376285889605458665509815382964977540833530425370375582919701241741210022179477330835770497038742600577628432798221344465265440643392227299684286769247188675456866264918294034091051605323161186950225317814747420859181724911292790902619813094131783352708095255840450260443809781418825358031850123679695955956274861164763051560048059544097602718393663352755553477578497591802378100171321670128347205166111306825754851528720742870918119084139433669651043401721487590417485396968146802740768001607303192750575873627302439999096951922307078229092703486174722318430074138458487362913845962105790799391693688781274715750223850738009677671863222204904128938248471417409777432401184593111994611351960257746482580640806933976938677150392184326505941662760943255411564979572725148671859484721263093565421226326431868607789236745096638901096693152242220070934460892365789082724557563144568821083623076545327196996168150406377487810422624862566658662993141847960123654215378776818193834902490989977705753874764011792732499205393037041185199907371928598312520961932264680342364362283767783965472224026469150790423203677092276623554389247458348806969405541282523517772955277329211680835598411770847962981244984772572995303377417323519282607011694824391242326928919849688221828473448959109961090675459734390974995618401539731904778182126960924537663695250380652599696686265174400163041158647128975055769286691105600770184821673046535852173041016732638780985452521745380402735172491041217945053699992570655713869845537863449396835106703814865054344229352234147059013444774686022655879074606774599650115387955398132510814032783709020502968647717809416034894006875490688041806166252101014896291269250128486583142071816971639288730483099760450273662976469403186084022966649722339286242529005275614257370345906517958691156426824050004868381985007390570695448728844050805812743067710813761486650520921129611587453418040384004865884002619694932828612272548534363926489674966911551859739374998496919585991817493575093345469063257406818403613169310241229269373234114985974016880304266058739620555541985879673202075002562659847528494517635611169293278448655319989097724038687839299500935275886236378515390447937088203298186974946745395160142166095304242625250492695712913745753471795624078139519201807548427993823037293408669866631180077344563751416496581783194664375697643376734992993192232976516801097025062372705371416885030041510337430678622587335101373146978018619047308762993704890458998869233375947076319332504628935503465059157106234453855095732882450620925035686341532095948353382038624725263957080981357987636709650073581959189613831704187344168532875516330818032187194886424511501957707283302647134476971191239369632688694764378997253984416921958098292303626427012164054327006981518664813965176231709184671135076409541968376199606187931928621394556058639501075003861068887171149569408980488249942317454738075072707617064375998964709730357184064139565142313964739813909004820177562322126360326052724862788750169956835922111927929728013187836311723245562577598594537055267784625157780217188884013016685658086052413080087712613940648227584828296605055096874633276472693531259240790971517272492520417892875906265497677835664519018681372020385492403546397576070475056631520601501895225691065558888774345610985333074207319416178166446596704185233134105257495290210065741411256584300261973824432056954542613588222328744138757658439327222630845214208921017438575336942084235083079898884050265209090671666242012713777494677261655540892710020199183334457699512682182240574750766556577079101211974967316522632589840916293258397661289648810964591924703266013560311592778244819509971641920729104167004585725031021472718542501996221670514311064153922510631686147596757482679555135098138062451330208389457373438266541415636239086770679620965016105802933103759610058228192663347719434987385980914123532352660144720730007613671870203754265488877452961744431638672353415176240270657346586263822069075329412397082163106046585966917425590025010470954321060183509702014709685417386262352646363192356186829551253308757754045979238927257891436367153343258699287499386298648021483097759115454008026214599449413325757530329085940005219272096683735406851693685665171842912272536301977756334990600360763034085725838563006031482490115720016022970269558380507841347916203721239243359875439011979722564819919568700545415553554993948961875586464803708661465811780660533823900113919336011870494466902754893017645861957625705271701487293330395155213528717262754007128568737554461694404477659403002626768175240814739952396531423384711633289472627689458808095431022320148006355508941106174821232239664752536958773201697347833825153306737302003808140569001288841253170549890630105489223596518576556735213738072843500325913836455694490247030264064911979763947865729372264966304100815831383636412073509218546303869444696040091093723464137465427345641560898651798040174153160721884131797268187952890014708906721953905787056868387442619816289410604297761178745256904800592843446252123352454949200051900408325818891679021141839676811935612802476372653351775675239166924207754710282156906875259298632950549460594981512778343081911416719734953081786056373836436213150099647296132025182523680178107954278139669801734264843054445963259336112633379409853892360293964551381802009937052999110201305038995207601996833466375152266900253410231176442139921477098566260671930490414109898516408619603969569054406900227942770846200164358555974300518768300937939526177500975165585705674902068713596937753333492615010127828402561272184554435793570590724979052248762585203344360832626948747901557221689800664319826158321724646692996953932603101109796321200511884933998153087970076844998722544612338822576960624366218978822040046283777481613234721724562249480240001401441985081194074314831934641231467024182980133988041036636563517077535352506733234193182234424715896741091479453441498442421850540834138970528965381983428779337992624481370863652493228663404509164170052237212655417921281229349773760039642673810450715197551331658016591082892182647872267515232989480034568004237964043816732711468340257577384608415833623664237440523456036951638433028960733901715777918054011349293889948078652753971722879637290924942527542873764181151270835443939114782796003060450215215112134750427456021157674110252171362418903505249712548967225602352658330330876237349374047885423942415389238138199579844262331532560648779131789419491960685844236610304738322712061745076284958353888602222905028333489910607090144938392652420571520005174568185200370731937206631470385861133732238317311754910680988259005316677847723337938820675387095942349612995073533324035137652136866919488358679669994479748287955326734900764718184307874938199561871798678740341734122921662520025643498169106532620766207623239335111417217762746826322190895986064314343758549588968887849858949317069810230501143373419459231767568702522566269003353312511659303983714572634199160276606898220376068324723265594001674866441978876189297054095669776957425084778511169917751142004776036742391700130487491031491817104969881082919691457012099883198176414590653944350919218341142716820136083568551307313657682153507846778926655645867372747841131334743728354344942414072596512466822645381322910348867377380469020971811160290493874847463455494692125481065107942672646910812986501559935331821772287312843495605073185244458536922623975051537443995532739863811450643191383697919332033218946291360341370274369525342647167577598713513376635976617901765409153621335513981591289247307133450825052882679133311854675726005501810714759704698757293615710845358480813849450633922420752987326720559351070837386941804795572199849374912674844320991466737826702212785492640297147998353993279127457567607478039780514395342798435999600252169609163866223864421168184222949576205622843467489779706070386471899319358298344139342947094362001438824351860778804423704239574514250978161069248762713744793443065240413296941716513123801659546915139144322268405603235349770610841023140412980995007951010444692230359725893840446539399093494588145046822182217026680451658314856517864283658606813287900812522218552249774751895529562146306130639437209269720877968061820175614536356552893956151290668904925502104251003102972428709428561748673463292510996133729693736007507895642738513146541899809392461624278984074125100210407435092078949802640014152267367318915552393521531655339878730806273284027862859695233070487666413973296507523542236167053482331696278173179763492201362608098791655685502781150337066855536739828844655077961433732154935399642250380255727983884960109364696852958949591394631415297301939489199004385400600513440375170156149229844319492391352583213110239663939781440677006430710689958897637911206330021779292904609418066374198098159470637976960031902828152850676745084586416157840054356902230545990964847753638184126736729690075104703235817579314678293214706343065033983410435083149217923933020238351632988353286040504275373067880267657466727369223176249598169972872029441362833503204496331764930759346061906812196514811057949068194712151786271102570080733233632160502583802621268206856807681110951699916419339386379069341249309435685368746880836823717569234742925289712773298266964945962665485591835631507086906519920989030856439999697615050010109439689553715849496077068516460845988420228471571720078610492788926557946210803460843605191738949557368266245268764324536660141794293760673047080811753405987355031287231106365500174304749154812541864651686739386750251403316372518359491965579508044394233310001486184434033534741388017740331453282267226525756142661126688075851496097780447966134608731213603656804373263765404841395102810682235754132277418547504679924094137109875132560330630160740807504447124745500813583679932113853051695306694351578484376314891059132851718423951390131463084085315069983443832136572958615810678955988446137627038934629471601432052032469413629398364229310609022683301964179009560474722469543527496443509640766379114061915389228987852587936961790803788138134055724715271407550735167307517563649368528955503882652701783966502975407904654918748639805846562103963629988563106376288985539773983123087750169851685193733841299026401435688887300142278695493195238355797872047923968469751917353628148004740384807924904354509779838476235587750097354422993219083975141913478938089651771032629871344082641518867270201515850251757387387002740798679036180949493815415732166656953758084569625451143129657659571692025877016570188340470474274124560370233367036200845570280073302669491397049265231621963246527077754482035046027003197279121529489895068312503497408057914637845442858264250239116444105659476693073426671941459971206518296021692345348846564553340416356362926633495310352633669061098582709565750145590654943337396473371709798934020099666805695022118217541267414295434930478374004843868931950234608130956700306705592410255812442007569459983494405397099070309758806724624254870956829848709708133921907611268198200456957177455527122570781876092225951624225288978878487669390036103461871157748236046264207278770688108526098088628681245313720541475384796695981938148645059478854249068880513434159364143714311487579952995236257083290533126472014487977509240269890264909985495163891609016116731322799168270029148298349912092463014600884555674430091401755519688697466490657427466201417025810152197693973882983658070399010422291632750175357557516114331651970928372410264781764972092791847749761008814078923464871900740063262043023501681804447059212751097794781408432625024354603630179189369802287613205456208899612025548067811590376392592310219976855201217030917160118270051293118094398224177496766365501415686159424226594932064995584335434565691976284391630665785678859827323892528351527234279575023555758735450359886302356655043933729538017966058963207515892325336463708904246767845482588079834340697822411986031387661137875403273295595929785082676085238961919810156682013571203242678995417758308964965034142208653413373506493662416183561654390822764707180465293432438300445782026499093966153750559625205964411049165018441069342255326003370355224338950173850374962323759551198818786584658978665550340399770234096101449755798154556169839047059200236829799499555396313532186245090952709215731572915973136369014206187313804547215078291799812351003264589351590794205022204906719531777014964439819160294127353180399999460837649944971120050259334536294802069836227855519634063048863808824805848035032435720981090954216629236580647617025956402842810891522154508388019497182136380403774430060420205238588916146320955868153442536757215694593195582807952327276632763524983700571901660401683013220136052367352179648653915163076463785105863525386607643440424372330718523174581005251690860722220968542752921675204822454420124927747667133922813271764176879005288217142474930272402028781113800888344235110715622113702635256418340971536001338102232854238119574082395583762272829647668066031409737388889664903799506658086802987289566439290500294046212624363581475749587972686597731183086566007040311686123841068208612116469421941128786744254857051505893858268391558186100685617515770210692331886564586628280784478023396285953141063622642659575614843877147980337225062083434023611085855709803637781345637363635443788048381399521807566263047333466313838565414294270798093389272514802826477764005289555950986770843950645140121772172699953452458348895812837915529669587665989520117163023866876180602809145673955279473575266617768020137826855114832174110978868155041977107251240776070388099399009113728591880123952591177883253560269093205705082558940681651010806141646098949414039698305363052431684210101067713426563766935118301257197360940888101245289631574193556896407607243167343559219181779998917078218127513167692382186142165019481379045760737106697698523910842414333512026759341164618156202642640371190340893279481694723061208597792599861020157289720936990678591478338890900972273624340251193400099632382744464926738179486129345792039945302376186332250615823173843394460476035441988177211068669088784930792731524132533387796539540808949681460242641586282955220474483427519942025117901047123210426746510193959171691108023612970483243206022643696574493170248899447865776959433348179016539104002888890379864934036668209579047164994835682273630523864108226369565558263838660312226285610645567785346734394952059803659643925744417596600242652660671762145869097270013228866561268370715968635220705620272194446490594740706928364674615707611683562639969905821840730762271746052880462403722828569626682628739938558228513187711010894407793435625694880929148074133718852034283337687769105134249811140529530928278460875653705797718499161936118314702820307045691104922595238220299904914129714674329652248384934974284256461191977388023343228282872268830892973387705997882875403486822419909473604586614262821229244439642022260573129234993218669427853701358052943997845816892126793864521082603820983610623469283742721898026539035462444973788043549547552410030796527056785893406325789746591653686587686896841785100760711072808367487728171769092864786545426476193437126894627048349039382618120460141855068543067128005429558783879939154042523248695363439509305802639301222912608484782839125209407659012256925484567512699042733190594141995140706860045097902921456294516958084659620113408865459243287424871895184382419335732699586961230456124801079649785680338625899636132570670361159439291371445568408004326475603346406011708757017169335234582721375096092971142392844658122839849822062004908903722865311978513356517865676762867196408180589824267570101114007848108290824026876578030881149627064702698693263059047367833807916688352019735921408555230369009700549867466028864778616561355245355591646411636105380416456685625968605786460482969611652219345677935951779178491924879081282465456821679393289867072294626687309366083548116391269701411410660702081556729377468397815941553494664891268316486602477664384231141477529927991265734891183528620850871485260620971278069286284297361583534825180991261516992945426139926304952997475438337999014499644027644996960401906403623851120280594151676984186103900209057466995715434657690837085449924959544458323076079739358296234039053386983554170206610572685977736755620908005089978816965203432984536663540459519304888148117708057656638671606435240481847295999416800063791454606867305577335003341703721383491571777677689075066365512380632961208592887565543829951349804148365295777934884297420408265967966114557375445956094936133773593697211017626732557121563328701172882349952189607802973989033764729321016110724320694155950960737715591565035563958691755800510767761312548915762275783003680548179242018958732724192983300644545341899536924986411263355074541807375773336322615792644628794587951671398906919211710981560284101775408160173486108971675632854204823790676222987285593264508724518153465532401306645844417401194805559040216125809137088116770565014842448428204600115572361629945375936950496031337365408140158417896147671216307312894293192720687942167570557812386740121027491038104969006750309514488548034408350583446066247422041495948737962974358218178857027634707869860045376837565823227659286538945135349595725083409211875946017241659668136539390344629930849493760495463406717512067334847916627392570509245403380330637323714567126904997933634039984802677017198679663539565806897280143755940653455829977115162200910461167231497502778232788108701005492452436528430369699096242845398603233890942925428521454997325770813069368503942565289995702025300416645359166332531247580258657408139801767856634070014774689381159560173149627519054244399723543288360907195380503105748305904189567407085331436477358741431220397717329332617261433217474283664936705365501128822076574245523312964024857526368485623985681476867278041933258972481709288343531110391748126983411013637323896594377067834010757039769337071153485368811133569324636159793836895850996244162588122520133662974099807828555566236137671273702760560269677646501565063053184249453521601013715111893760129387768470612716900308056240670557446365689323103848813434103375836845159005770134626809113096080370490008499519883758116093285994142506301508064371833065236039103676898721866494668298604001419173745739412772594243948157497315358177126968104391074839199819383497841430315411933996284134217341599161291840879632875009985113724229067961559491827704394310615376969348169769850493861525694822822881682949940721360089521704950298651690821722967343328763878269865594776904358857507527082746731977910657189426760775498031788020778591390758509184859772820383435731570613861430126294781540971236563920907313263510687605159262225217747639556948931503833674989966835629954183218338956815379555881309585720485328748024370105875124290557275448038198032388611236317687467029417377124880353062098208712187430882351566164088338475093814461059374443202746131480212527919452630959408402425317368881561046373889652982655068729107505562998749239867571664896155827611402545322313726892517973488735120197462221009468619137698613644690273873008637997096111974518662281096123280467861672831676154794530070080579163983010996919675108407795835762025318605923317455275191865309514185622336238031436509714716805483993121931628963613439784722454159472558229065841862790031168638928703056516179615836300200783621878007741185471131210009797933738568089943862918595203718649370250537089291377573532791875219804625171256370491252669249564097241718795530562048587451595350145773450851037151831725366136276022595888885338854369945145860308458295179725424017627346792047095812594273890655877447106807136843374451390303987916531286617366284349343635889259013975751714886927774367220606032671200185141660234988384118199586488538937393750182435159027880662692843522072498263422423006024262780288947837465562014965490916301135636552576958428074877128242980201650913655068384191872403409015011130885041480320664474128935388965739473778793241388605503413557487404076593480973285659032220774676736497654735750364605491795153222120689871652385688030395709719970060829371971782211164134680098265292120636743063440694275952485110597136402453965897047090126564954310726563103759787893227547631896036918134608345437927503104098553725149112169713911668522772818434470291364169367549026126009931753568271991870825847233650141614322953803006786442578936588594595427570142398103901003167854234458735573040480632816930605604502523858007590381075917487736268660931275046653463115483549398299116204768236475768325378235133486044905424487533130157518048304059719120509139746063838854029275368413422907558444997445363033847397872378127781279434399760713772949084899189534161918553223447111539016074205600639050630453486764336361362808783627756807626827607857300320115434382556697620362200532262057088908956711774415530804680495123438197664301058014528140589400425886285491656817042328075885829664664987951562826914998862034033898166293363997777417104948269809215632260071075147426258640612596428350675003674653661323587914017687874344870753653104761358390295405755715337809492981014056012126735763303380140938092123188284578949092629079020302475443557313343032492047345252020509409781983313713602223651846473369786383955469987852693042287734213307051180584932041560945352333491227148802754703329775066591679306341091814594975421233849354749662458332386764095293487701781480672177935972153372760145014410008038605264851450840832175527178431817673686246878221061823248437904236842800748927887795802927195456770882644697054261242812060039263296486430717502039763584885996351769514116677360448595097792721234036123583485361525194717792076712368675850588690165728461589754740214023168686689810651852647094378920308752767719612069314175409615353526931998872250151905945611294890413942625336929486020707233871898946928758848998388496285514290184230681876518288132129051959842170054313910370289298274149584637854814861489536945685259527850273283395075011120555668393793382671490956505029444973185731757569686274440837490288240500378980507359740307064923478910381780131077883086542018680655399918005524969490802524366179180975582566809150235762377012372722214571895318984078525480085800777076689479641630342563438173502956685762083769446630269942671713539501162248930750489959255707386075162193456842144884554400187568647276819227261140934206440103621914094135316696881721373545004035839313627245257703831047252321259529520041780291252993077673331445841115180151579604984498087642117471154933086086708946942322521802160187212169614196630747097655541087042406336777469645621414431282904189528640438743300706183556914506952668341455765417881141288928695541416241208464074018742287539764070971098372179461370416288817544670508111718306689604790076068856185632340945316633147330614167274656878321604775458222426757531031765166265599207796514352496899732839816855321721177192466505048573993307850269122631394063002531726753827872205236278241620532003705719007955664867257858456780681952556562867557911494727163283390145923737396422660225667712141779117091622566143706915773103706639845669126756163907976702877671716950939290621025522697772483016252258701593783320414769970572829872796539965513895263796740866008832549138191736546667965858582465685947353272501971539647073765770214089507779378372013440172295088428873055957152910232280007810884042457638274995116559019968239423433983083274142653189222785574571727554369585672384526958358727166956792745587280646472330090824106666405493536359302218908660647703480334366437221061067288462519801843719401111760544065662419006249215458860980706487777036325816894654859525276113559645599963556215884289009457444014945638556545837973159793925512262307189904006014876897142878595827402782421196395844110095411826004238968180744730185099722046343405434289588034201197434280484352949991831296324807449198518063294092566564149341894287945418277164621967007293669864177242321537312659579766850881172216195484804148233045778273491945408376134079960343979803777734932673988166987104167007865884574988100031743511984497086603397764887875181612278854145720767623405064807314991704070832831300962512659196978176913298076013883854578431750386917630119876795689302281386398891627045949404514875398986588151730475708857504384631519876868387854392091759429728486417086319136774998017701489761920976249962405896432241081508605593286756719134987408456264434318863760745798318279349027847860122375073624449808777004454674785879284749273933021394425127763645854121611583077091698842017574605875134368487814136629148050204753566071320277865410612677169228471896832383887143405402502720844669461639307925487356784918076585807832937008653030233997923011989792875855167449704048101760579623303028512835956068329015403571565221205464527248345858318194053349456028180813406915922952724307934563244670647937984616212137115605221249827764259471481490644639340253551602064201973482397937000572926053483751839040120857552756626084919850675462907066840334523927303140347762671191244910985520659465559344096798027730754847814982935786849361816292870419820024982130643590693042828877136717921592161419732071811010638355830361514743552468830133112991614715376585500958244620831155967631657088420998982753346236930986100424071701899677429306388889255823966400063211169592349678922299308377350489045129467632527294235402938328207107535297669469124109833405119622120595136046045110283913817343873470004645586793449002085349185847898222740117024006124162326434175480573550865497078743911275178180890688083291467436900964726874153274458915732114951631976894634324407740091939810785361185261813661533225236997773959903231222977648627606545301204119613584182515321902710160591683328969966482844367561565925041392777564286349268513698365051380034832791825644862463215625764095513225347152455178439301038124978991898072549639884914178896350651374061119399163848249830946985012585805689820375692673340025686847443807347764873569597879354319372125303423402042335036758127592011778485848242619618655702524324882763050279176255973607480526306181759097539343152279187406752967008253858666582152989504118146002467348106832188064290549592866598143936701108783367468542583293712717225019175988101744894959900378969150462766289471926086023784929629389788141260624049586590032130273274981457840855126735432542657982637726542587016186962699447936164535122107148304873170608390334618819084997495421801506808021502196962296934984862120194209014575980499195060309952769670066317192773660161149766258406278745402364703758461984586686460957884618274092740537867487547706757029742040379438891986042416811220387530669384918659826768872449709765731998787498088074329523563433121096532541971813833495921078984955042051469812240984113998432526088670002583732298703697162235405076352628513113072429889263594907078512042080621621998141301983291694931071437828462174964938881357942241880338196865299251434260779069031751562942305080086707029010197002470917995026929360544728914023057665044562283160409802562988396372918822968451866982671766148990926425969702741371986198868169289687924976632717010967052520886499588111698236822830935687265203679859659800835599026649051739139050980433830039424687523643177971654257919834155439260210828743364314200967694217586013219090531265006630522393581123850829005156383733257679893119861195211251258282367919111495665963931102295761905612200245285609607433714082036979555064476157393170858298025155778055872048127644328977462273583207391753112048856536259685048352593382731656423847534844451725268878922054022803750166626858670325529152314414978004004773993295442397260355966739295133273567196572988855150755674942601409469771077497132065513039860364795060696985439180566250940367307717257298572934462653711782811348263209024429242216715701691340774268361464003715647915178735097054069209659191680282303328510979252955966234114203156586596630976989514211516388729648802747200405064273304081047147762977257512224764106229887185775149924460736256311691741825502312938765408008845073608500824385243916761989352302642342854566004906198963158281608223134477250279218773219093037283475716309995360967795702087057176648124198900672027817170410472903792398077559020522326043551346214402467613686679728717383612294522131501189391825585307407141098838125632423883839626582463714597096329039348391509448776812641067164478614510030748261121301001684309995295572336756427644441630174398076828816990112602587497431672716285051617714322973148461010478767761585398395164464375118979314068109768476036106962754089785267898843440599295305843307107682426576399692285181892983157269304377787411863491831445471473840311641333858641744482360299177996919041213748850733534071176959760196354576476215738552801954713738392504530311168873138076330217938090392616489441619928412869798879561246477589979388694912290857919535696335221590975903519541878381840710741506594269297236596735029113789624310955006908181072601362984337364312867473628211680298573142194521865375543528657810227426688720233601984050418347053902173542788034951575621384165365429655750514730128464613087429487776153793352796060719841655691264405177780073523613429892872605784656599744076771138065689431746357511916372561489630653918840567594031079189913656427349914030345362406610913446666742686369995027955939002581782927876097257676524178876365225368690706711202260820539404672466463129503141980635932022663105827603412629434497014317676772588085432344403791428269916264082084766177228187413171224121483790484144269241800160773927082734571493186625051285424846668732101830175649343096968243216259774424842127774947689035927451162749632151229024419697017029754907289033882061473697712994173039207771667063438018128028519190437244485286273987532616017000370739986449029083705066840702519155526623092229204069419428957107626761159693274823286137983553526066202301290312665016618141358365276014577927220703602438139744567116441118097161503781719247608199624945918321817370754907635377413367434419965200108602696875830723845817224152473950408347196524466558471953005476363003917409019211097290636636569582957324257054417943165673339727227453987936494576898892801180064857668673918849482112702993893703079364415982843124645290935451540676601880396910304926370890094425944982146786251765694470755999625138602127861896239055449430138234827978545342543571183057595611149266208208677242168540844812117396643741112037718597104515623579042718715965160641770556266765701229101123656482867645985421168724176632165310715316462773370382653821696270616757125648394372741139945910500514028576618543279569937642591597498607953464253766940894289555876594761323999551273666788547574673731847078172647908934927533485159232451525295004151737809958833593255284182383222966440353755985843363127895660619258881940637358417420894738234296513542184979302713719354350349350819535437784693238282527939285776658881653226687441436788490990415517881590072600206639041733904009617506633878971283897733877516458649382926789749186263631922014487109744625434401717399664465526914427967359964692973562507955974545095398828552907451460750067158752051668428944074568036718931968122593231022813080683177919387650095931162174086073552687372973560375518171492473053803682550245205332813767516924290809974648902113878018677676900924256907000435480503522187285385601549725158064415882234918275362176779562676353895501853088021391001442359104514117675430170932774585904740208977536598004414024497210745026047992441346133358298266577097038032735705574755218059929120849495546593917588213316343001507642575902728027963699276257876941996442981992134190956732013245614529212388366582068714008572584976872159660224426784685396383100097788226755195820943249767263196170283107367215342851625182888385991519252243029697096310200927695995097013237842915981633839159869646040824371809793829270067407919950932493953725886327511432369211955421140101509224837824506493582708282046839114467850413076730702817350762941104604018716436967156992028878040442455724473871930759358777437229495835918255422412412463353433657910550157071179692388967193733927800146788941633438521846057066174131105783121963752666273909006763076663342386258015632715784206541632412376915111353816517479965166084409809407677647504735290279455474163002891488964467506542279873455560019552881342310122483144088900386346179180706007906062040861890362358949534679610989272171804916794509486411241591043695194981351336272177672898626220018752053584343076516907316326049719237724283673280021833123604406307305500991820625885566297920050139148667244355878701842053493990145388920947108310570994720558336961408740341971631568895450546717245368499683948859007478516307119189356296970231243635553444525486583835296209982490964723548194795384095241781701385889009974896968865385833638360682721892473383634077746841934318524578861540258508503422117431479546837321740954083155266120294146677479852425388405488203104549555499870857726840424029992977747322435119892538028560938870622550583335263459790242056663221842273591002577023223966820956298628250044626750916187710439963060157072390269373027662593936807027871437221195558958937508958755576289549193695609173366455474673552252914333414798598331663868258115324162502294949595901418408039626792964117940774144781728789746768488521379970281137419540788494677599391346286706751636675770134553077139462818907033737260731059845305905894473784518263298023286803671568184255708901439927759701776666662703304087341759811758865312471378188242665271121079194548831532680413964497088254396721327486124322664518721983070191724657223074039987636843176389605517905614657130376716448230154511942961842227574656704876060252330728128087440224305004208356853298280298397305846511211007270754378267235576237017677186971125883662976073909469673241494799514646227298526146103712676833661324419327756929889731680410882217516589241837114499509107974807650467056476435142219510149632714820429502689644618600228977936561864752763357193899544650174864907595778557266741461934666527184644401012577801711372757536433380811792941345905626897916104031134983648550406749630635619410803648497017754220421946224257502529214443843352601872641473651341243910434447365234630993194662027012851545238415955398081051553560115699870028973106605113770835008041615432828768000890151454444010563580619036950756117992134604433660112363448624196702997221303389357236135827971961078105000410948896277615584319328259621943275842729587618875222090640771185420367684384105167068126706967860778073110438277281764688871559297043807646113290385285040855383951569669380084197196244404201832896503109622742537765974856720322635253850420381179748893498147586105546969644165819593328654022668064731055120595811230912742942216225481762625196230085759068659842083844110736045582871356942483349250003330749516380214365054549705957862473409744539552747837930874703070304264030131411910128510262735140518268810731339637820477027159782588758276974609348303258671859190704294351306849030654637121203739291917390430901868929076401519510440247180710705379709695520157370869225508764025415963804747857647255484270541680092289930354542893717749718570030368734034718134780123747028564418014898816444039152365058989024764382530326627965295280226059428064752052105108051865614072798634461761911089028504472769759145365264829484685391338859591081531086927350595828927826782882571671045440858700794971699781684768911556054536416901589068838728422910652505507005027620678967882905900915983867390147372872680195654683350481045524774877244682806701935021013052197298601030489090784645694253267739819800660769389696117590128312774662383413500889602755698416605032719025697798450115096345522275011964323758386812505508498359406006200964977528490965052590795784531434147490857823337207945687282055910132195567972006260798727945464749991688224307044866848591490296669011955759467616429797163043624206762751120137112913566329098649939770634259243356395258442230178668677072504355294319851821501582484944139970883105736034403109345368713727675279862906717616912287022597865828651943645495286983647207004734820557072481969020772508366884475343651950694781097539075764632563515535016372656594851412151601511665263379463786976600507852900253503305945058772664529449773787660985087719984613623258611618147367477741940248465577326939737941422069506337433954322836300832977357292798517075273292579994788622576044390326308933978708965065820508110894370129516875820606662788423610992223219570253751460521066416539427763624721740623481551212791289951437763822209500009182219420612322638437629712209574812418928586759430660906792121076612870125400487485369540048342164878229980987964190320804139673704276901130854225071327247392193202490970722720040520354994880147975384677185241340401379415480265896470718990953916053096633877820280491732858826291681306271173097906080045465324618308599667421853781258007389071311761484371181073791244822281287395847194803140946200720337984193261377903668647598664093357529433790436730758711352418750505028831077046334533653418892603067396719875127327891259681793605561764965213862292589351502198626500086019426477006884745049922599246318895048517959416486569952221027709009291790848675521101724585263655654017367265222750979643257232466066758530616416507703769183920913782239395651313590504043090465758570968496936889463044323807960642456390379950265837196242911032366612299197102026976200397290480041667615806289783152337910783926188021424130612381385515908718675630387602949148518490007215863079058966450676153772207374944398649833654138375920148968547603549488146134201546830447703790618962924734601900227783238977272662377847496579542953113765626985726427471039446253343832198322178363624295663172978471835754366055606258906624491403100313714217303279653815395769898637232696466307029167331042421222985274020187135264458041165267788841777582632340387287937282611416045836810084715555441993001828335198939689023170105878417614793281282802813436209317786659051042515115976331668935603269763791119600515443116618963435528440668868567918894998719332503472185381831030286358167538821669258457651284495469153382400771849773252594498255931286738249512724582581624547964361884284688967773415149135545733901802962862714923959492973837759549267968860948297459017491206604450233414734510769270273599023346524725434810435389487066236795880731273455801170636480915711870888885986310153703921810861993984705794601552217311074382123482267880171422026670693744938505727508970033008872208992240812786766703582104016986282290884357413170881855447330340946096012624847606090909147571632882859285269432862611885557177878848665044372316293001379650347248253588433915721652796538530122267304816330645881925376622831889568844360020805013144421597889698838410813036793396590110660512496207979495885109260869265069036558049772972674426980591824199787381199931794823071878601334954741844369375465044257292376498888954010577789419393786067109131484249722352649759333552150424381809433763790289804862361160006410981938247668531582116416675116480031845484661825551875242938593377152166904617258973177693934759293582671359810615569350939133664180625564291219321849249561454271275271070900723182309099553941605218293215789415864647785327999994895379160793424979988972315627606357471445034017426878954517017643928624287245958372894946857453597792374823286594118582432123889023468094994223648137705184417283453097998437194041488558242251523813494207846150511843305930356464719999915217736830835538164670296695161835148942945502921733741377142033476540841436634182538815259733240464182539083672121706045229325639491185354787803162494281866985942254780125129621606420322567491161223603932957572506903322588357382851828680448542210688842031594012082659637345913919919388509519041216876583554231065544924875363880707548996773157620905723840870810516312088193500779335912388922261504188801715054525330334283713018751749854394152432972038245845634933821206676967644168885034293824674137460657792138180611473257548681648152858314119710890969031314710566253059203782853345585600043226507938682035936781228528907067543238442578695972055950408419563925204793728435503156922393882621408921945337591232448828188938197549256008953987497748157267400543480559922948434283975688004469050886884655843510864844509048579442011795011344521556908126744167077017914195512038742021164410949088291364017690600194209633018239989296832431539382564735688989573955459202319965702669549008674952853019455997350514794129242596884507910769298361563260652342028609489688410484909518707951249074620107771941793683842005210370384255972856544133227784467742164935036062063579776731300730391865233918894313599795063304553836179635184336464061035140223408693354727700653846340359545265551765594452113574245867431599286663290040312248477560839673434985359118014878110612307484740138281319722491340007535859736366783698366733813701455470198365690469572133967880921996932072842993263944578536682337578867780087276780004403721938580974586364186998984580993678391820650162994020016658507238177541465312980589851794536758577404621196227674517678274134308780957747587755208113632526641510821353915921674299552350505326393560383893020633614089730096785427869605485732077795440193243201637369440051544741148298725717358697864067180621372985107399341191328389489476857936526792182804864495896734900305869169507507763917166452313922974064821744779304130314942503786924331887955833460256461375792957503488505777903649970472288527952819832062276180282576373358531064626007128522393452823875940928372145913428896061587206628320396043350736174078805092508174893038775019867108350219856933846621463399021723351066959495028799046626512283162966096933013338233070544502986244759902313757220171450666985378906532813839069000378094782233915616265848859503191645373636288691240987908705434614755261515948099523271199011164825536121707007108892200014227774577085625321749792978048291311774778463560906184700694657121001419579102960426920811417511568209086384006387104109865234753916730280816156965041673830264472016897390157128198759905596731729724996629939486694346947108549486944548347387917448127092028289144165005935477609856440510894459499180335276625639180590026279266095535585516106956439990503949467890564243511314944222929051962991559555480043157192897320960123616951517118830246542299579171344647000468927185718490662841752018396441920073291783202274121947553435156375135313357825152421203390697354589063490948694276800515442280506191033520538154807874300983928538232285610647404337551224268337588018937642905798554802529289379715340658056115595836871611742042828356321727062098459169588674517143726121099499431742136296890085999071851094720753572746972276651729698382303372305615078989960327264133698432834662284780565853043221477133772943340871402526159337738478037697722325981464327359867219309371293403413957180602202315956960317436089967785187451011943101812880605850788722537103777933274144337804994735239248524186697628167759446287261837390923929615966003130547889152713606488737712418139805168224474412498601732451562280325198918887490947059587370650473198937124149312503085105529152049879182738271866380115308360236098475380082853711543626210306042650309585508440942836155545552206653795216216914154471873067170152439092623365997367868409782456582158250053168869182950074746587363167872143646911867290231486387533357458425300178832996376072049859885109062686757992580683319629931507845188882864564614919954016165792414403511949053338598707824224998136542086192102339139779434482704081675229629630956080711737302601791513179515274872394409657460974260024343114777711791343686184907762966356293911382501893551625945080199387926325724834846127182477420912689384607147731031533485823237652310016981901179757281829309426674153411477635600275255045483640402520315118512530589282616214858572627241603880712780424902904596857561593058459064957476804995300551042381499537884445183891638761035234522691416021100595050925075519193449526854176447980557548594242113249842490518628571226650038037879109714647573998800517858059837098739188342512432882824675114904109709094633375209404254504743098585708606363986121846164245762592326543153693769460154626146550000647587866176946253866411118458696727633753107196985693112835133723860011474959866323635523839834162518162913872398836559663272488581510441171820431477081738222554355090888358417363441360545599520472385841478603441631344200827898389949580781350975045662398032412397146501762269223873236664818471582066907114697200857315450527133501203334988783632324518849620243700971010694813139065243731938192984468507337967653143322230840542904758777264569074004192433107619072446563841759711470523650423678151991174051496813203164653837274694375793223414362566710729672357040459276679936509796637991460910667709576835652074619143938197986767318951832638354105353837336875573708775061738368502133484560692607400537779351912129364022432845957960958485639461194858331850051095483288022803933935417981162860413161642823543778343891750726625111816688035247802270499654484021184279740898706826314363996428594253881878841880487130043366585679413691060652465624193589120131411484005473907063314444367961628983148009624338634798394583916191378384399393026287010246129218035405494507954652176887191752289792249108063692134919035141632360881977576653286716522750500152525306147050362437126239081391773069045202851495615273000580162997715602074051223878008888831912589903297476431533289444518210688016389224586316577149196524585264656516539032513511635163119389960045774396295770150772062179331828773418524968022901601602513492336001671339658611410124855852533939435818678908998114894065397015529776957336836427342739856224508725280171882431512539776510317205350992609387911142946463179122815787929150339457555361443027592386884801311211787329587624549344148904296551998171402939996950728722843492052318861791034174234291010222243518272947802337109426168600496940711397041919532523488065741890398849916316997107308603427743615923329843403916889016225700964500017797567235464421067730199332040243083357157629044652754766642322142055259740942942617862454944338106108463931085198114450483687326460118395360712074877980658553606441626857795003714949584495914300907571896279925232873784231364802259721959883859997004787974238815014979720730017130399614060749830667246718042840931493241583906831293988798043192537105927644878436267225189945636429940510497610340665523667779128229825723431204037564200557368485303125414062269724925262502364650324396545217751688202462838238811068803308939175960577837569418587707317769618417290098318319477613338928761584417081167290509855042887922945259005561255877488030527357367086191505666206552417894368248535161273505295419074352165333933378353026385795419272183058090825192000903540588921013172146723502450115107749387293541620266208609192423387546418513493911246465980165445462662050076859946333309248779005403823003756487085873908714207340999797449275828319235311644006172148316907554388294181713710475781152981419959356573607269870627295620657347524323210646232915538443729755159881709876776794637713351553165009255532002515839530117620781754125815165469383175553348430428230123944137908676252183821211157378719391948737015809297853992643302524436245093888215491006262130106369762514754003484081128559775178042073204000833429915198834482627096841859538292930573694838782112605461457933466501132459178583987711689744883009590373392617076690127418740466682858503376064109305238367966757189645405520645333029440689871789046163656299016433871313309124589239522662460406576689026538852133090618316747250159695944302138914009538178451302597304098801982603701387053277786545323565521734197319119599560211841664406911354866714831889461017493528910303066707221783407263393045131801978580723448174112239733698596704391947700607500799884626747210334157583949769053260570199659810865073182165085519302276375351880532970721884356534912645497743122167761110210176981254630960506249947466720013439007238948754242914440261907784762127446145319651358816418777297384529655454325716642688230235122743842864266811307831643632834013449804293400809569759736117297370504365486284645355505746405989232502595743833580854338587643473372234440242342941557816813791563464438406489546585190183693949841059352727990265692972425481738923406726680385045396744782240646457627621294493076173148424213457310021805220992154427061597799102853754421013326116682164758100976214910499175426571234691564034146941614863165874045137706515907530321777808584531359309928303959838459830308393402042339343124719038164379340330997487736143890356253651600999229895769141971143255453230463205544463056821824697482498347038408176179600158744844498318496709796939083887855488790723428969001892333930431263101145730111317285965181916408331027395072343251154048216945277980752491539745104832558283488285850054149737645231648030307049283066841829018739091368531719284036019797659108326452489691062164824912544926743604727898375001216278064392218997234318110539037316265046251468693646290977078170185877846709066478148630928952488385080629340456564492470141839581512340293388470328708325395784042618264141182491699585906661109508120967509232569508911401264767852199087530728809103876554075053152306337035520998200165912525444742733677899343634287534276626703150770195316894373316377819168421842347598608002580225954178182770889497914460111296512953578124430954850231191055288703668552589269360184261336907469216186291235879594850169290405951028983953769596948199265821147071724804620645036344157989174728345384910481465324178478596703644100383336518052903281700409768437537208325972496728023953940769670152217651058718316122493723987369537759424385413398858829527420935930316785258461953702075015345226915540862269097441811811914592267241300312214504000836845913873144970725806765262950794720202878670252950148920228464734963463955409826631581291121474336090928041200213532340450190766325002023321378716445585865999861156720588989591446654420050387060027988663703855004212248748265541889182981049519791897099792818521878944154183126618442526564595627819460574215965435260923510491193280496930619330216453950416354087903568860020078037667393926220230306380903129237593396862001486199179975409947515089136408444545618293418866703050208142229685002718701575374211303334688543309463461062306168585681869156204747764714744406406991203360373805029015542682959151948655115304198332701166282492339861589961633786410627741521342993547663544283918726958808448127579273238772446297672862987672015798919130860611870957659638082459596555972485943938881226396011520873034606872723056075916870126151605632257755101575355456609766141114824247867740346329151063906253021073129172437810692168502432517551334590085514319148129339466705644406577033092092401389291009540117378999604098997829422416442200342821611164632408954875586381576080096432247376667811209461833771381986543985729189484097645187204305905313209645143790601635670386168553363915635159017414966295082961043048619051697117102524042002166142043002214669714602043390826831084627758431170314244621123217245550505576694569247026523517058212644766093308636908045591467331478977134091312801251421011628286592637800088498683195887560083096278099263000443793215320433405414931146857324220410939221769553169753861891447938846302989647324474473339442554378191403593412947056034317642346335113560891014925723316987412942836035733820295391452444810759043127637660311407208223233582271270808720573236294901833829509587737581817726272465955086536496212825651287304794148944968224315521962039954102782269188591375779850364028698443324453584806163167855803778872761952097326154135281183568628647862405292372647064484460127468264519142205636290930142914670244260941018417280998832983331146904038731718732918293366687566729333222059520739741502993498594893821152128990543281129812640146376354064507643606499049486345642151397989928766306983011481291427647444862690153883577338521255725905162279202745256455974561962652277561398732530381890169859038537437571541251879041045856053020633202878150600536097395238491241026482124194370926427340047705016970454802668149580901387191569304061784591468559703584593545467280872812782662102906524592262056246352355638190448275339966374138874024427437585825174140604991347633738862304377132027251782499709334597877179591506158431119971345860184781228800957068701651426779145829283614057302622246588155381862564217937505610140113316353948948292717597012383023783106312895732320323055845027794157974026027931413961275064204360664222346967889687455583033871509429957001974982588176384412219534685828800970307562468135355671291905188581583662360171640791642685323119294764036610204323551041807119176705798450980957518425682348950562896287138102108805456867353719452162323132325771817893511290318322150741010888223878784677869939766900826730504146805175334853710486795629062289373633056264180889281375904923942534650772259052515132892478391249095607217298085378268085510555558953294961315012947066390496340623649608477102465030460873319898139494776734517375955340551408171932164807027815153294103601130675195709323629933350527021530701353972274127459434389449702411225285326274768997214727313856299730976882628391054098295741286608056077959020718993910688547789943029964541775484630094936822837770972295700484496810182547070060389919585660767069266611570307613716881466386077569581186425394484699230762510840656416056308566451746980061987734052263804248513470239436079041510347468709652355802616408390734390605071226013426786054279873883307178442782896894198131457138922701671489213122877325235545506477377585794548933982539034104271116220516858311867455143491281489291108531296499854932875713213102872860783038188670819423059367587698731899787549613506017391431107501602740087810642121560345785228525702733474908087558496599106134112852789944915281803621776342553612913986123285963200332687842583620970129842410969884325213297518539474658266961699906850865557924843959081427752526114636904512571956417172497493801140946099725443811850638902288005527104026634458108013413804800160082439435487764130677285476827121589438425676821922754106156206502938134392179099784485718911239908992383975553598341243835464457358626056176794839637459004018933902911406555171214043081558724858510905088350722389335728826038269894020567297656523082027738534177166297674240943719877946160949535777348476004571601028205338981829345460428848204140190157430596407593691453669320847031088163352496737739882012611793440504719102193814366142551163474893300297744237550635084714741302305448213504735841680301992967224249316233054448573934353015279401268153869626810716339802407129561146370592073325798111977754742324033272086441418377367312598665895278817032863756715158760322949793221861622919497615163700842864005378077875631288500718754849059762658614172572311790699410660577909059111469988242020826192763196736450332675277798173744909588572791320860474884586631839314523284144524712721423664717649109784632266790053717399600087472805787587777279701376827258707144271813603592538921417244098971682331261638987576225251989915821037738618702053272245661414035978825828543214086451573028820647993116572602451284979367641962179786143264810733267307675133723213759290583950677319329778523612023826365444693273015414553313431412519134928908402030003642805767722710445625871278503799415208885490676386959419739218101681568890759144560247353501142998491808971092234990695013298048947562646744204198801694130123233385046858353041764922113757371716775538910160254624716467934703996731998231411792295161503699026905368586508607929250832650928214145121808790647293534143163701311489558649577516695570546370764878747703258472861186770941326395510994806425623816049792435118633418726482452867724962235235179399109592325884746076862196239845454676091546273377836085652204808292275606925537886708969921257179152332012208349706367991079370387439955957414685232989323909876059123388283209584131940024707055751936111870890151751908479001007625117698447549651751828888735266827458689544252755636539033387916045168735712236683761334555979134873581210500848057008481840982547840488514738010808862905582436561063628536287058912354648919990332204838784635645880752203420420290605512980749858430639303541450392990551383679118163422553320462789404891501113401175006200121927720117189763662932140840492964458366356136673648466160192982292681301218062353385781649338492777471941817678226303907953827866238564089980832192866624858741233129077266601247132999644138935392060973758748330178545188860460683601413347008891011553110376089742993833658204783546154599387545659402052544560028104063192118682224715990994671941021374306701964413331246844713515872978321964847727199435117229957128538362023319984566808395080648879164133541230161902825173879729751024142416463810622894809672769632731952447108279634880758231274629770243943729151106066758342644887582223124619878156294192884000851081800249204475755426725468754054995443025711168655930130000997349153590675316994909833827721647454195671481478474389832234649195232589246461913751649146478681241946091805014343549933552970532730786371470114813436762678591252222766459902845359889947310226041108119601156393700483238325819729407560162469635605046285711540860608208303041549677140138351497122636589682058571079528320215130732559052979764015523046581109233814770213793002017218322740131926026808721090066913380729173034669465342358224476008306873513551935114853064902884864881345069360348535877546204610895624507791476465490090969304219508573752383099848483447826377146682057051081388039106311888149605762058419837449604206347081043082609767983595647985096494602853498195885682466422109222325864660829882043948587681926030222974939304605512036782928215266932749781177965759485914239060855251993401166702453960758961780839527996843224382299323035304136262135843618735081786594111332846746245178758375964240188887564972608767190147379010029007427879089949491715388044739235723581480984370070124915789576380782229486860865127473333063856779601329251178313961608219289038752341223060771065565996229023820824158870090167042535463716778707825249216458175385405125349628893037136464732558036726382859621476080127034535215136754056624525579995861206483282802998906223033568566362013704765631894394424596703876218168837508076383239115729819798863043453580933688641461361506041395810522251704264901408736301921675934029683832514797522850193665964172721632293189131428717608719087395702797998536881472579498084724842241031887875413380373973094613858810295706723042627413922356284301214120102176774099087677425162634763563635077122772716544691911827422084341567901813381085151782942197917769815366448700841143401133891310001221817189605645315750258834732789772074217971755253550486892022460422459124832624168362461702579922794714260448299651872656703496307515710458111170181353227723588446626410627529765213448558267282148800933245109996448393159572088565299909488750453568671256105294605368728884961602732919566445700885658413527043823655426029239208871389054686934429592447822139792204668117787695593452723568464805167630916560101579096675986057713282820807475559710540647130613233261958970707930185638170839028284876123713883480048490786462172791747134537528607699543676562571115709542826873726360005751225020461581418130943941436305137583807285535626443377684027916513443814635231737220377251961929586069185789432203451390980821955312823805278183319655825828671973478706572626677019348031787447245316477044557147725953043731557137590254946826434149658459441630510178239873125634735743849296856909393934769264799917514422036952977348565420088092820509371658427678642891175830866894878686946152912231322721577589889790852103717466899853547964550701818936156621105741283054120366214859911181955076158221449347805569914599693191837705290374260449625519605548022960823815132952438821738349667096455071832780611909357580930255634381426717791332290283846574694420357524770218602146804824687344065919418805214763947450436206695369461942697052346831894024902204361620291301325427126203968935288195229133620692474358762801901299763536636823191510478865519683769149724442340937627414611119912331008713503397741500834372129281471402148174175479393072611064463243739972893955840665519522629175809924661316808065638167563109103035723073062139510231981575623570034078231024461292825367757013054966355653551576486521089332343788830900380512139643929252200753775052523301718956829165092277397973854538346158290546683150042495001840700151990309339430884256016671578873794064215534908123793136470677383171322304284853773734802409238019980124463601763703025707835612668048790694216011462827289819053245852556588841887635782964501737308134345356752235516955255007066616333490586950280014560313065031784087676133282868699576968687033399153669278209380803481066372107426062217946376518232954471154078888166844547346617638343083488477436948576859385780344061079592302102679269853604896701365080152133749984566149334777799128401520748571447254965847706773595554616590882636332031130471756063300839825927953196040669247045306067183365481213574255333337815973500160199540158360851072645691910406123615297418383233984982806767697521783246785458638576241845732059202825592562274379773699908310084733357335041789666430249789632988284848622345278516091624309652900779845947035565897336896704053185491949147699078630247208017607658567846984319889282215675226306473526982709225417698699738013878861586973783098187824671790760503795760880776034985559595005322321216672941898963392218884841260091250577586228304682436968698736741806433510365793788378443677898999613795976072589162973273495045475203811982018133626097919459037331331221777570655086574033921518183789533450239368556535207610595834971368935832359881218034964399980591297432857851342156507673622529873898602707163933184560535962937841489364063910034844814556606307314739539836971433837122115267978583598243725737158242709804287190850849124022051897621365129832217510377485698044830375865756257409656611836125234170006944669889258118754263914238514905104820681057644216159550743459925933588851373105860565111617366080600773434267003257934658224577786764387802769863754334218230740846097264635140871493280851022254594118213332443456208885927645258702121427576417460790334801788652034008339522831305310638688614397812937415984140762139360118857199983371182232696307439563807635210206597285622579906512283675053617557766443812932971115885755735468131924016912341923969616678611215179363943857611676064807277046095038061980006344291478593070999616478224265647850461184779104024126081278396471740895899098422627473514364926342278478547299813290800348762462314757993727501191754313591001330525983683283277051705620964475839672439052889456463245709677030257803384929313463084636494077653713022775321492618758571393337605926137540833836798667345745956847622343381770475024538219947859574634368966401164689047803203096335071888360482889747686253869335704932490777161848879048709015162159300059293620706631776736241841111024350529222663686935389076397182706501952953936289467586415261955862268462811602355144340406650353000932775218368920779082634689628253891693862422528334322907853958742642562599293547554189675996733875896271482736665009608225451262130588862000522794575550150944239069204531300281932780464493832020620779651349132500326057798578707095059548671412977494927367319949546989151934602355682238997107089702899400198104316590264387058400523002286730009090112684934633709854453937656911091737217838883305299915758415097881050372289318825682382846415658166034739019696635250490825822888460944727851573258439127475849118363166045959517780918370779260268100866154105751722569306891069843866710587617693115332553445713466158872037055321896067762760709109016274465461024293644468561546167447959481788035157417773913429674844255782689353882862434594017528360194122944026549901547907491752433600908757822671663287511320234852494354785755292679135265150793505787767376366729424531528311108764229293740739854145618365891760028788150946930344915579685008665790026757623559879215732843065611843449402904521960083758060286499814376087509524890840917463009271653528576023397981541584743707156866888472720515338843288659863402352834733321890551744520246161850906396474954631426250602111280862073689910782627869237195444751920131731506117254395690025141429614685745017886755223515860262936120433852858725979823113637633014398500670047871776556185652403350629807206860799793900393233610503884101239345905562318383088777687813228877924565229473140426238965332571025028643292953901352585325336294299319889875849824675279938468988515895324167040424583678981002895838830117700235087549440931528509953935479420263505374673978650737973322386867345514053966533768446291212249952452642672287105148843741120932495415759919221561436885884548008009497476712525013558253410418890034955336018225175387078322450222592819039540695518139700166661631038664231558386503688655953608468993223964619212473836577109983980015983904698988043483175218522589382094790052747646110702083419824047278859221137879987988872381378560460071952502518409506234748313401465130025113228615288473199146441696782393734038784077545543607688179271673429960843026337357182347520959648583106353717040885676681179198610673140102999554696813929447195847161994402957570812644693459921282934654761195243703188678824543121275854235284536841226132557984199167885692963713548541701333530719392029338461791219676091446163717707132830091121285608241055162825228896723599025374894005874499043669031659401445612522190780545324073774145602245823790569743837047857730660228732985456993626205129930984397001956387697155045971929747463108374116595735919273453806019498776150646301100595354803723504911308915149493700897584513697199285353571926914080194342659047863507449466831494287575958054631079844764570731956725635622612244577584696878015979804446990322325769714465568634250201030298274687184932610345724295362155248293264861698665861265846233107660363785668223935695295698311933487400205544278094871087086116558854211434787545752845580792613039315797549857746615392242457345232265334229024882552201937231388010511283533072368571082106558602763650706431290470120035182412111428320414216204977380147344202712634103497051411024341532102315045609469738528867830208551135550322593201193893966724869549053394185170002608702331630102672886087761802944187492038876329631486685487533520520598932216534101586255827444068215224675118603560740928970737063451181024224779765719475421354543516417861118555474038977845798424673038910984041136638082228570285031514830554682686252158205977063852248957316951044217546940589266102234974749675453919644559663585007274265572784471468363924268304720509048454505672531481693305740629830261709303963991371789674186338180499542745982038548974427037184949566005471002553608179213888000894521649983581392479008474992145472465416265539142827702179681169148194261398568510362278331529107373788768778592758016413901240447045347184870824567750660907834601963414838426657984269992846704802892048635330714195269065580300426789924693646791033721879309140564029909312884298168278674999042468123566807298402459357401161121935367377738938987003358883975812739343882744733717132786094643991635124349303822706976547069505838346856260983735568819311975219234895023392143065087540733168873198902463801413525805816647437680393088579787092486299626471936856504820727496529174678436940743979568223890209476231857005216961451503285589985365435141662311633648400277842872124735246992203535817363442396470368677405682345954261731021050462888442962946608605343442122427313977053336129662138064384272609344688120453715576381572898117795604706650112801856103004056717379077853397475852586462546012756806449316105772028954782339856778180539278297539860293609844771063723108588300162565389156529728040637722866426004153944427515515088552165799991836462360973486945317642854964609145670363931221325537897040174788258789139277111833608190775169229138687686785175996560678464565507737009245811045367202726207922831595069762401249589113437798670422921875313724915351266459413668911337453912699047186261279673411826850270691188051684378290012492167295026554326208066473757473494266849369722233204481508241159702661664239629034045455790261867210820580749074674897629000576521104610641192874817155441468571768576929458329492862595001025384022321782479153308675166903111348908728855255458864021498468555436924382450877016403614714579720736537889028389599664149157846572215327024329442193484295533605721816221346727340476137590042769373489152343615981646138084094317458376583706346506653276745354859395135468952358585998815052459837363659687546250228846052336009283510152933677032278771752152817538152196320316997700467835974662121881672555603636082178979462588689605821741132837207853016681444702027470131419269876748087605205163795155656018025380075045088390473723572754800856057876442376981533419504111975303959819121156124220840610214286214868432658577641441722919162132388271916578242245944652582690934174501503802640525033945000152462493071784731289375391220898660389095598892032848337574914501285301076957872001897785025691268540426181337869625915390697434231930867240394409962452657689440517022656980350392715147542914934955401487520328280936565149093905106272996719196384080589675923010002618501625925383517199255728562852924062689321484222833810291997037300447858551610848011270249534634909833649790149650033682454029607593976677123074659897476919643421731008874578189228089524838666204877397050140657168954824410749374500114442940282620625702909974596275207785771616739493530006727401565287538681673345657694216558726425326434519497473605098206736566818644324465704048972772993206101575645363804271962198171138585785957570199196080645121488354455766323112262254285354914535715587580275749419113286005780059228509367051135914979429688098173503287540061010389305399288752998001844924566210400114371198300025824212199265094063105569711030874531134674096644759814507900467453427555473343103195578489375877449377839652196376319053462065551240639529966361087212282393720038874042149398538360991224078544555575968873930862958302970444996954742578598257946785658891311046800308675911667474682448161226251033720273011876607487354815976603976504821522422508860609935292451485944909646878954762164447576090359706457547904297469589603536097710667582768025850694847301171620267585996597462143885860971587281363064591766484519810204037771869393543314206566776647889035341219394244535492843836179322745492171582325171777767251245370985398124315582084671112775593103977473210997720883103317897388054042944406814308486899735559411837917273586432948982830604649112257199946759750570749614420701235368025098548141241965196727006525237733135549082042135872122468101702837516543590733549868570427866630292498157165165258726297617543981107523031940954166100815510583176595777957544829285136756448887627036518154853186683109376600738975425308760545668849898750795758310320440570398056770053215509952172049604655591296842406041135412599456561276385017965921474973981127043216847128724164269232821092740862658483040377851176001109776741355384204637007147022172017432742910344330444540630669002570527302064083566437937789602706257165328231749002745068816314719795137931025872772484642315391709191213218752313512245906176279610405864745570540105072683974434212453626447720357669453466243162665088723106292814080032808191114068694894710775925082022936666293929930083600530272748655989064265601017518012005500846736833200524228617816721308936682868135773021087012279883724352932735909899832141408315348186486031966404770392589441999812937757396536084332826398201012749319261333365274536899561447320717968335737742304973724628805727184059240179503954918841892964293346937980130606922551792844842717731313816861118309652688712884443087496157039862672340404065991377458995049383257207819800159466926777979554614761814805545566175318500204208308887060791124912357000080442385628178789457087253562509767511679181592634972417265161374067368773967345254308303776287773205495117024935470308848349043942518293869793125119734610772083764780023818208806202635660064809316591380248466904586807258236429838301981456841740791127500599592253824474498663076344177930670766537120367792649193981513246993599110233273534570637702589847838713069184782252359708327546114578085325148610760930289282967190388803198940319362302328644461181242491321574809111687043959735665711815712366632705318619739023804798899172045195978145336070563332309592224498556278062757567369127991636530397104803305918250636789262657581976623346583986882174401869729578366726080700461786308220040502126539159675741626671975547960711157518531821006880346090762033142159894175306357566772033640139032160829031013846699582244838599148506894780767636551780849212479608398493199429242231020751814339848285278949911517351971614510605210839820812403923605623970367225513697139158189492929909151483720740990257988689447903559761502880899824828959975185876452057822543553859331012395274761560265157808142501220642008502874178159756616057520523997832574213238156719020026014721603942481419043382387934061080539113244506902270921188923614670579257283723862239119429763163903602538197085245825056518689778436744748493740191563723286137008732445768463891336642662179820640979540600112815725708552857976403178386745656011403806049962376733915147045475049478673334475859222787570087235191615866927501787809529486021622714435604951654386499947201508991894290280359912876521672461949635704028640834888024076619114122934021174904502110696454991334136916207685465638217442733486930025134464448256274928292363890044553450851146569192493166308757245170316459588536512951774563034238836734466754790185427080914821318054415043851668054868477576563053306421647697417791581157747352293062561751740425634182502343820819939020334062111586256713891289987961256944458773995234306046031643091248695084812478391469953641468039366023402979465264290709860001121703244964310399488201753851993046212233673416052679370624402812754402044639897665901032786654632642607748952919117157286706216376758184040764270336078037476317406489867036439029329682321860335030747565882681762108862891164497499425116097504453760465567181894642787517622059122178329442438634846427282823852741936066517810001126978544225770241178175409257620883182470146577982974659334126521570050526942103736526971103003290111756663308973495514042393830151776397555025578151235011629120605479922654261304898536140518592588746486058052888885001864613355603060048205599553394467423238760853415239485004757067863450877383545029681649921079805293166742300795882824545830989590507096036202054753893099413641645559025524707023805961804664331158895604812607435142431753698900577504209108903474666148423019703917422425604981474157254908056828912081973329272577139575544431959360249201052659320805833436284078704446110394243938439308121731636136011395303506994427110882720011064006865215680240493025737987828956390716401400160040470222252411704440439221237520979314883200971892476975432371518620118150105926199722006914128921737726870191773744009121174923797307691839423383986477536957884217884422396240094144496597787281265777010552773072232598661822662462159110733304495797018972458080295333362599962771830974245243677504956321724367856131054779753691120837759638194573314026841486686746534988138469847300676661504947058268345845650048233780592964427949592166966138115464615705715693418614885733852329095443954122342339993192026253984140565016670809659588590994807848941143389237882953961619729420478918898872559464778255213920024149298965285262776259709294655527682801513309842701726172712101760347100443675945503068425605349613265529005826863238653733090493033000354294470322344024022940967498201751722702426204486932764867000547990371944315743476792703455368923462575645037596722145227902666579207689586477701369198639840749429280687684092296619342507531245652623715742518576815415468187223619189208872232932802063655813177826441720922497719175281873881852680565872232778888797095436676018763952464958623444513654957276508727075369198577237953560486322819196390742843541534414226980397005210910894803990565781729288705219359280742411025009812821123220372370025033980526390760788121757870783976359999686311268341212558028405460526993235673641420968904941941254133714272735996464013227177330145041637598747746279757693862177715602405928151493634179520023078574813069793670696669258679974427453389389058295371751170659851959649557317353139770655188176979561838629691914178213688290123798761023563144295490228900308271599381251689498419493997593218597860992404988740197995066824484464671440930799509240632385246243790326420671933862942205217999684764744789917068040765819882764897989213141807537459394776628990051150229624517568688495876778594133293022573743808855411549539669599929866597692746068386579965766701756324550221963807299759400778360870224587619119294374225394243377771954808484509204658158899479565067356390256974693875157088430938219482726102054193115122673974589257127150566597552961333017342805891525265890952023486984189235653857313942441672180802466007609001329133843478130423412990012724170753060091930637783299760760165923338934175436306025491305082896186491880545374728802237878012230385178218855456051199439874416606897164238921879561176882828829685607550092800131867136586422406883197165768775622146644894466372395469073397807107634473580072045602387899332416520734101933601008470927199027494925354662937644257975803069577867875998845951846450905277719629353667248657822186115770241796667253092786171462096055745017417366746656958089806846930097925994727125736456047596636727252567103341352655053819102142019923464288871864142301422212529512522377254045328451846376616676005415352119337964102711790515017154455246901617965138191001191924893775172206629785358581684946538948184385069108454086201910307447014254196632903236920874758691248646743552460111601279640179451846079270605090686017182176695201299010347286540736832351648305849439568376958327240542810362174726632909343142325085901883431125506894755935340953817584800577133332745451557979471479689295603076582094107949240815953581673213981457899061076799343435132308162375573189979793961811568261939339730631466214611345163755981954771396260817549610832602540844291622708524645268401819543944042580294198747993457985100973912706804801475666309369292804293852457624528541655534927599425218756463995101860217889277645813374834249059050044761873532470541876958493231276444367381260193915001134039119420898915742474094170993019427117314257473208868667622514434707978225657698235027906257766985185676445258746482768499722168827337156084019965507614576968820347592484518787426927559855866289706399986880902423986671320015954625060805533281617356869303281972837187251178178316283880752712574933689361936885168244080794145183659195173475290809175537238031936610585419055424265593772211161325185768627534351756499108559361623254900268724173439966915225596961673314740071625866927266684464865311654117997136932930377966140481188158806156631699740185763826527454744970776037603366303249449289779243521155458737003006099385031121251396204826411154110979122235315698340030654913724856723559733281234231079332810631184339557298010152553057309089621685715185342036386480472912322161117455959085833739922108766476629949277035160756310914682764735777416659857913316722409909279096446734849360998225390083206459870390601496531075361805499124300557471262906414242942781332442987575406321149872626276456421905463994332131525431510729760267265054349076369276219178985219228810868578454630607346776497497758140996272481253840486616541590011359737878331868617273772272885516764028490217469054493357405337589974580932042771559621922283736394232407212371249777713012827934824051213239559146430633029459613306471566530517733374509897849223550073728897197286949023163788712909672823476258088317639800815008450901423201830245047939343427163099896059393886363036715593224905301260297940089357945755511443343047536514866133892172738761444749294722298629719422098648750040849970733888355438923742965187412957440899159198619591614506896911125553468658086689563190578954310459962206735038082406838581437107539350535256770038682141602382700832884407790221027171542584345550023223570275773272348730420214590943060089998736286392707874211813492063510664481353367207270840314737718250383355926847772222161698879940978617626299287470923502955690559534201815201772743948099004821523604675814084372665980588821464694024569978524609880246457644238015406498479606625779316871550962567630529389718455876392064431583276484438523886093043048656913823869128072024409372059135344118160658371445735060859786328395041872795632470228956515153582365313256004118774845573413614516742503483756826115323487184649013869379787071436242230030944311825639146693744045621261368007908008838192641667680397752644783964498654028849327452865395367197549906797195886643234031823425320936928930265444603625830668263965089894433664570771009687809168608770958176915841435789710174009724003665428183112507919964851725573352270342693055440743125078029935670737603522793523386670314781262928275103691155168846605857183430973571068174814508419619391333396803436247998180658039221878212864626347072826841078494932723966053377687805272299611850195345781584622147873843818720239462519949779919558683893269552608661652184444583672705391971844281222057920917478656657230009868618917653617279505866879836177231958287805718882998487210510606395241988655418482805628760238843327698872523110976751529103246343155767008515872504307178117019413066663854754371456717679296908065282034506619605491490690833785882839194997789673427645173832202435317144415301340903689958792751650195014744297486860043964067576024395083129603911778419436982830850488353567550258830661788041450274494003011870900441613143558125414769015980290238923925137682829777108434885557211624970916377211311555752272428316579179037445836341550438207121644895591584236719361693605153468798956979058594593178592147330208451270542145759004508846816075618807269287454637463876931969103364165880497768437131607927711929713407721784133743889916416132149226986248752748501929735790153107543809963376964358196824526990205042805917306780473800323584048764327356481843454769819236236552821008423718715504831813874025190045231500099200509108179072024253131890077294145297586342780160203077421598172263614994021201527337566349332729715286440079119709131762495246572524049276497926995289131399081305155154140043418123578004606617974609261831948853650611169063127341447088730715375980014138885284510997957627404725794278571186179716948439161307758215206166490513444549575946360908168221870396133045975860326872309232615099657873140602579814294582242356100965853450975913184876547040080896662149177167932169349761056332354012597589399673973837192263826530121413370386855468746235541147342186022373613425398445596673227747727438905189612169845234084461157804270580073496625298962698264134023244175077114564450194841428333843717251326578478389603652966260955691644331994969013355492761682970249047506899493468095085570437559832203353270657210660928122770650350730798681850232273557026573962364681784263809693849872167938360435269490393980079952213142489661280674534965088339226197681062346452466025124396715833050258693801399669963660917732438886369058889304561339027141662982105335042592857853984057578942198971802387916857018903525617307429529240442487597133337722685336994952009353419987719575133338278936987059137420647741219049256636049539617409787502125703139931677799272107226222895555371249681721287589469406663264962485167873886089288473377909956077497754907178648983332657764131847368383928669728850890601390901496744273085567963908238327556355649246038885613443882979162115564245909596701669206492671123788261094280083102265029527945223600889641827636584006226935524193480872551551762814048857518061287591202973862775564684761882945590933579703745415694784616471805216745344667548697479684701316705881221890510906300875805594254572282090998852736861872616743076609929775563608453828020338366322188031276409448357945547061383472612783924246128227822159461478015034583730450316005683537192169636344603897035195904320616115088833441755256624269764072738943600245649612929901307616540891044655784427718328664008966600204957847579756018759359795677456132968888858642054178576650363581797664909356316534105478033556171414716097748854184041570024053159709418927068144298367203766244735575359379352807986695962486768262660000700144465517927589638635818272139022471195283598264642599323237147485936297120116668663603002778775940607482640023847685917617301029941863893141140666802247253556695030588181455840962793666162572748036695900694792327023047525987831651654535637517568995763014111000550678622672259829273247997856903786285118242530274275087351149833176892398235060615309627325684799709697378354547821235429468320480906008627940062220971713025824686884494460942883378373857837605432202657855990150545254329370768642960156412263784359462229196998148970984672815326876603972846323185023180501186945440661318826936489216380357444050599306684874976413721801701507345182133854800866871705866714504215067525678873776051832255872486530836749730946050251886268476590799743379019130377275048596304785496878278874403305945553354758522448567149742416744894207599682290629316472808581210198756419244232161795290648398225850728321660487555317267898541616304195078751990945070125142414054161642566106477041353261591853172440947589098928071167151343305989746248104157595081659740048715623625792093813755514845990212086391956584062526583932211158722029678886269448674714632202713188985423766540274033140992843837486923814048203859668203043635530528412940886670325022535025913867673453212176047911964184523943665434456171343010389247696758705650207763120957398562488138681814489152241209843136032187844843015212127924390596346374609585258855138647357998494584349020466154625024497353051146185487215697154060588546916592644478299680585459220091460766348503206036063127782034506990899480311508924357625013293203616149290385730892892524054278878810651616496612892890885438899697128784255543692695651064550131872307555635714612144230576962271018339484466832742110507751262284061308487825374138257178238122411174707278973908525957867080356088502024776606403910513710975577997985827601667142791042335969195571485875157438733475996776869694564325496840059395617930421265761530064675924628064151119792026501304949832056800486806238993480344256896277931743857305695180527513874952605736171050385414481286373701319901683358465387351274775285588929985595534154755969828986540553323529569668980773459051736166702025781549678128992943847590634253037201133545048979625362836498797890731742423198277892239836824312460130045907560787644084116910405657688127789868497337507376634843402800990737683242857344225835968535494612819469450759399971020896925116138258231999371901985640316209225641249109551605269044475635953141133411930920272546671684814624519236905661741667285321757725982280565219965776459619799834643621990930461271954820486089565165639801883860676050328902894642137370981329145894681402261070541688585560889389497520212594484138502595248021085288505748289005520372127705481136418310977355947029788283898122390976700227030649562771730371699564216578948483936259708365551438840640134340442630008351928335869423666701125891154670724330954247587176189516647620292088699157609221922900673584746169948608383815605853965907618750743471505535730027377101523952536990820466474427745816003980336172326670037803929102098999276143381563238379827558226258091437043586123675491127872712643614518603552572602402601941632731125550298513920662784470710372403720019494453811129665273515602914127239897167137626869617187662842444946612861753510037981619224222068804568673378719830883199681388231157019967135412895763095837398048096454277652108760985324994678322701400446796631165198570308305523007272130032231255743700743663110784549195826997144370185710179405808753240889753546787217404035857491383175272535405966581080124764219426639856715284898883525938054851544552765890117283327204116319120756978652541440309453992080860954605663468705636618231861312816659324452225114547325088416394274010550869901912158895431421055756897892746269162182947244682765155720942516959422302038701468659311432585133378818818105869144509229371394722467873780690863292349754391079481676297717582699089454234440266327820914263820126063563725772074713069460551769321331996484233291661361753353818043058226596861432634527779920155046045274513155424149289413275379242006376901192393666379003023611396691996115191944249287731514767403103916654826774111126494218881760402141320045254311443274921717658842937865016592546863401026265687141054111772569067342639879107479041600505450542983635668968167417836384241336460109061324088340033158612151021619542028274527273409937042349513254401540364194037186307762767947476303444638117786534826823301783147159729967390585178997793331336134857594138102940151835257302676937263041023371524214828913225236381261291825651413445940706844674557738013011722157669825819979524945118576088901474917770753599579901122265128604950346710592414217097249253660467023081397589775154419666579725870466626114218398249265149240023289919349357156401284964319994779479729109315469046871939031178807210618853107316414119207056221544411616445490064918916407538891191556408369125661186282502889090641798445727410312190759872134912275587133384769555030855612449995757834941584708187563124085569836460224097018170839566526205969209083293118388453554844248991723159846527632957041347441405619133143623380065403001650626448796850527764951899681251495346325051994497114574358258433161072062997860463514028742402395556403955228329987463956290059486984295459712856555710392749047046056618055051610527879365219545996608695476243718985140295510684098287970781894175313668966814119423213577841248386011211853760182902167778473977783818695372355119578321672358111177946871199477516729209189199370554991108303779323336562395014866716398767453943299331949977469701958663617642272158740035056301280099615225420104145600450793304501120031667053832147849191976098732016793144562485551720486216941907944471276663504132222094521770999857175745528174979734949849239044117773536007867201975107141027344839537687003590876224127908778914441173714409712515544311906105777231626159007941732215386015475622299851009073159797402018473842025364726811083022107336135918228749044320223640499591455889900979737786638520566004425802245746240514630469371462834834562599483386711681505422150692068148156867650946133300694971075405238500389065712640387968357021515660003016334874323888225025026177185424225614034439583699335794955401081121958083067826795767237835971239119995063921327907093744458359289556512078684296293338225099541356821692709953569946968883783403085666655036901425067093984971487577837284591827167497750366602906079165770264110967270812637530526310972214574224013302549381790713459897268317186104800757225357205010347626772984206095766699082751768046782836832808350943464709838636788705227679377712827990128395113959782610901813788681678059338647607922531899505248480742597311035340186052355591971420121360874181654131702348512376928169942186915305563419451184720998292696938116905456524805802646003380421158593366819352738504776041152684963368814990809440732749913361791307879560021727330542697710657551094016130062739691857956056998857380876394870762119711896239029541044633434593872026484163752750819980358274171116460897172233871549596500072390284700115293947525613691084253581531436081809461185652271500403685356705236816789186381961548366887993049775063666961382733766331098845208294162546404066340830959139170964819021653028109431875902528650575905405400354234899051910360986592127512871680699470342809732228557741690115977175092737852199275803667482240706776299701255952566735219236188353727161708334037857864362980201686332229975548824525743341418165210248826121121287605144001913973841111230193976453847548938415999631397451179083815291980401575217045712573035338822565719484936044491535211390184517307625090867379387412540186282783275026144785460507520642584652658583951046778210927509541656838681863018146806265502245757602679437870309823102235281567144845033611001787985226950081889464698505588648580209504078795063460725017984474699076386620523306999974813716854802251121776371005840452881584201182146566455545911939987550640439405429416917104530565740951398287074608688827672013404601043419662570325853449706342495581271507881279150440971845080379678787689875285554660137464088047477637728801624802653851107320896328609374299006857085514506838267973094796361003493445724659462274404184394475118524614706918477166599042068894868080396239528647011455753926412567039416049909134512636369373337001513812291421237853121745426821276393538845445914792484680796005978438278960731983293495463669191562216126878206864031446265075830853649016914444304572899869479298285893358690946176476412742740259851266334528853021778908338225047128387827925152125245650786648027622138366003007575521050622283289956114787735364915019105726203374104603411410517892014538952799869856948167743691818596748542135383863200529226212574130682912325942918641762310246789436953935310148403219009840756722172065228947043376121489322050062746633161419065487579790114412660672979367486318055426953403865780172231044284431227614579928467173604473509372926937230900152005796370324631688460561778888066968226961866129609364348753674827286950167891085747742150532246222662662272753860349458673930682435276677878572072383862298935515096386735689588791255379080269677497666161230429280491370461810076209917963097611325641966648137862015634906327626443082328850828835559890156708077685384860246898936949353397875157035904346262638687197930437949128086599308117270927771311753677246595831895506016235392583925375220156098377044746723068055144420139674272230919444130938737853965410213973356396593453248345541114679406375472548830940729521182318245746952043531399598820227215881382805520877996397524143333366150341693849745950584395744143881978887504435450176593656492102998396503274479653747354467186076757236583657840761722803923337909091593983952814321445411883425747316455092146765582953214562937387369088116854365456132573855168893776426728320908168137060610110408785610534776434629965550538123003493903519689417080008669050306011265320437549485443465250241666204353785590364351814341721579068697988251208920953910793753043848304158639680607386184715048342315820079334218373429858140403628474037913407650895254996451820524528447004095855487600101621568495137429548478198063266124983781782072353620617984021397696401326003399956376014621721742313910907188588925719656545098854045151390168334993346309114325943504184464168744691280122440399372804532202793471410121778045128354955578644365238972876323463838605580903726988634981264419643529573992734507821110609638771911972526660703705652922717768619520986023685241882568096602395933949729193840681849570920453252098795590903473506832718870104027345690168314405169432198578965815258063428932546906790781844597591192764712981331054688034298107023876836763593090687337268105261074875356171407562639125257276356099563837447088460268362162074014950535893176660602742585696128065193503547080871428186270243390839768018560154691079919210146856889939561046638598908951451747396522357164348127191013663176095513851540620220889911052404833318735733386654361995042988874110470019588520122788828473724460166454324011695225958333311445934298851585717308788030954683572881048256160116626031392485861737850032524631952289858651978961159140404748616972841317797850340118024842908145626089025301915403011581908868624620652769313337006902053670583862793363047976263832578827844057542419300304089778206604596838315931119450505481413659329727769834078682615367496272122853184945054069904339435235707608579675372412374858095170202605747149469869616184674933488166263713848514162330286326717095042975582332817564419882830438113202481362099447934129246099040640614104185731711055792813163156915253975958759419931362716379968304996055595942779655477928955065128652557738987276741364783164314276746556259040249040908479824351288644312021493422610360487454737951071625145056493602619129069930597436331518270085058652415509064327620358931131961341193808818400861477045454761403418169595107898418889005687754860342119234336867911642329808158768386507122779746002475601343952400683428462734589106372429086101702815825433456150912848836740116167277895741495865917242354792865487584083644120054031681332324702845536275695645430924567204766875018634303498965072628883184235641060005587132058326872876592728683222816481792213672175796093464936066981900434116462166637417621579848059087606260886857542248510859082648000107152188118824850070502356130763081283463107376147296400102524468753986178820323121445061071663833740527072807488637562674376925480242176429896742649816717649920651683290667114109388843387816896102688505659808555111285571304499263507510743444834603828052766884643779741709124914548783254605206110804377055942738399005451300182505071071966192765081049008264199079502673607948099491867469951303784284528798346933188737730479510245986009385267113163962833045313658056583747862095714524159352951228249687146453884089672381559573051181789711447902573531590647548051516261076640468029002211405117569172473499049740016378473090718540537857563420590374735556072547697822069096156242254887654925788332792460949138996274905121826552548595673096918499557505176707080536364586475758476140018830130290863088769747240049606981815659651204834276512183709007966527937514063783731884926501485054068472708279400872646805472525981941793359929441511281111842797644942764436534487709623435644936558905451830589027941767507630875981767559641310872088692964592263304126819674406224035061206054335677041984817491444820342693005372868472471697466383056844635764868439201550734187671228867256438727588165755718711770187812723535736855989361927483415623081419681526426838919669716887544610041213726150302681687202100231672417595434115817238230149569554534447984763039170971064848749948590797885013792915143551579412765153790927592104485208242484276272397495314396354138415843267339917261128237500959914190844216635822693990642950966607032539811605341750059679094616845260056921202155951514042009818384300237188110202063672685746205429007267854333608278221052060567064886295734669832976530665485739635945411816774789976774822826354175811735896068708444153940669219177678740143017873403110820642076009603150757223045111724343008515077534989380970883680510207034340061230815591805344771742786375528148471645771638162002892700754071280611986293363775889134594102829614445588883679202945470426904139134768176550815335897975783331900361466637620284244595008859857375288771063608596392591162723811299369811526113471128687305680652167351902791490710411497252650494449734520013252055292758354992539922057219855215977147472352525668791798263054551774940323745498044542531756670299670121479346814123160836063608374997093504784040236321418685391516428466225389305729050689033295107450789971400795654162772927823701139146186424916206312974741447855490801668390309546119957572366598547894964638756396620039059133002114444447228163369068793198545086739502479451813265998616981646922489152265519846855993870234975969392052630827343463878925040871815629495215079749293368508141606394892021068842981573311356484573028859325409394726528583305245390900268302084097929427533273062486902399969750510932920002713723664967985612207578715122857356944352365047427801774408027396081587058022952294232969279376784085826514592653252622862009872646098018765842953259367866350648349582409342121343305938634668909619755316213734061388381096590561366291781923646461565971747642177865107026901296218904200022303946231956266478708415566907745996378515527604589427066257790088375086357438069201578076426080928309208192565351133791342188123253771980051633489778255027833160394824164679314994696790283189385578065827953282175359958626936514509529099400876828890955388782591486587371672586644932207770480970925430212370120582948056396202923709869531296736259799339607135406672123173182766312333570354639869186739010478547338727657180708319595685915076275326770565656044875967558931467815778092122279491585194873103931045281577606961293281800789563449957038267677323187378560088953283907141333323340619602562494762801202474299773926954088181809707724151369167284647451544149385367778381435724121461551485717977826441553472955673629633999519690150429080174689900191467522018831981899590371899458436534235466083752052016225014828547234736460729160803835430145574694151260796706510839240640036771398566585504770734168782980130900933063235210395614351052173805828846210114855791973975872800626633874957957579779290654536503696252505584785767438578310910010171353269472307431701642513352063813265762723731838387601218844058206053352432102661755554382703594237757867706606327700186617739493637737165075780364286480952955306027478952258153570983667146617991250701954419652950231196841216941985485486776554257815232144819786010795727736942614504734404291726697592034967819981951412101860265681773855775530357757413794050509176311551534097704235398370199677874579023207963805339397753987787444008874625428348873141517201450381109788905119655216563528117957115865069902811686216622853539348867358060994002337152206386446257088191922179498247297048058346287017463457649407722986806548813176497235487143836947688529648786340381557630975107504361775075977693383814343366038879019207665579072840664819511591913966527170143487693243158229083224810314998394199474933607932602240604018816831913429306253935177592351900628600741004812551584021368490052044860038904675181003851156657305410332332906850771144593673759731802277026093409678484842220121309133304264029969141435917297968946655064323884832719105976155611281594731053604059135273035293244586890222510355669300606736234259857450763577317586791643976053393340646014425443840500896610842929844566143184483374643014741304366313098436289991978899850586295075923514319874529042653077843808395172910002321157239703494588985432359343100734947254137811301824734559901050173484278105131207773873005929420044344044827517795100433127228426978484241131966606435470007952350173775768471240790679981693246160824227256067540832276316244582817569823428500600028225891333998596113901610803604504564008178606172146178507720758830763086645229119469182883888033373894869975274355835059671715897682515626664314347952325313224713979801758849686598754337273786716720276556030076159164551629291699055476591738577293748773680170785835102604646253278838918651407035585147813097377823147907104894834666366430716904987416594951773303113047053233484409716624570126903482869277888824109972460712591510271267744615381898027158889252326895500781390983040801404396856354920645848769136828207200021334162201294860758759666437687841511292980019712429860900750971318495416750662873069768105525272552608193699608659494846112170568178460112425141843751427249440169841877469709737440982483612832319739264662719445601117985832813909994631210239034904741713398868616325034132176141580510504187069976139523917208970295937673537529838762305311897897650759613864207961406764466456193822788973139548723914365494476782714743787556889775127120398297607284812876507889903464414670017583261638626454164837290926763730995387131637419526875369544027953673697232702388526817438611804259625895797036461294536687604506556605799813968991870237861029217812278877475207140360488596192359038074271209728244547566329305319355134642904682628855910831119647762109349378626073271695819139787715887357860513527887305669695310428062251326700621582377015002828392105338169220873258940166311702595506053150796096551220874108828863987499222680914078044290875617924216686622761841459390541093832637298931513678279505135133737420516961605313402306852660932902818700361711273808271498770134373428352730356352356339426673629255485638509399952367339371383721431061459361103855622844899558161742489092662838591114340724153889399451928973066210935596124816902680666092904994532139037272818267670925738177845236220223294437378759662107955992472454870940706070517720160807798338567849447737259879779379834257026323372095494835022325922991332430749224183156082838669047500958573323867472627903517522430485340534876728334878219319218591405422468064510401011373173634980570483093474745978989326847634081433558677446699874050178653067600328432450352245814797990518066427141094387475069425281435855488004119733640257137674392556062070798312420443127731702143677278746094727923989745807980077182439285943109992916440800826435468152594301095369089765766540615987464288397352810200529700744919823929764625330430258516363045339154402266293911526020237642805176669783546522719980891891820264480398400335893528650444675586713797837160950088206597025128060096373800851686946682045175695809226418107349148196772392864887092723330642906893515039158237327090040008675487376830049206988644307633480319055514491152490373645621091989024708959522376330964711767051750850555019768922968266901288920853845898025610186225208374301603332088136602234719568603581360169092621672225482070659602852431803967362510758108016934683646628266876236981956794243667677531300656728365273394244697473735714336016898694035299255905711840148724184351155500203417927090901573273489013761441646607409111378997391007835634128356651805451003107939520646633913731118191282700678301799436602456356192359440257839501144045523564164165551271953306332640750148384489460123318009083084067314036063322036805672130665282801963532615817721482902544433756509840437278989616375357808497340769712817821391747104618628451754823954452116574307556238662518146204347414417830553822792852051000581479482000624299547135534986247891298774606448559133889982966233226526036921134214153772857738048001781030195397289597363906143886725902015560935329075276318330384586912387057008465084050927900920394278409042631895548179925986045588448005942785801124140507936757504305453492618001059053017625120961779213815452687844503835946022551629897614202907510641114081244582608757976659152300138066466073599990670517199194322521858341764770639945294732404405701649071828076946036318663397144064225158927764146019474927377408921038766257342307397486674775648646443130140702206282673023054602820882594366064843368040984527634708954693472653533595968453833155984391802712896055716917425785127505928041578231753335293381917451013010637133222372372373431767257059394868443624753259162803900962132855796320628146283766501575906164150913147385318857535433868522208681090079248825614961872743224833738191913771438547428942761905467001553533113904497525806511595941008216796611183109926710577082985615352266036083962776334066835285073989840615200153985555494636285967361238620288127518318758315373393041553116099857897589418347874104298901458986322756074647790774495398274858178085363303394707090291518943093933033883897226475445146937752166140782134925045519534063373545799809748375976226010946113339101358840804929231740593110761183676879511473563071480417206521190257645228581899672978927531438340201537871159014604561339915492227861137113525197401175980213235809719731555417512509023516628316932417109288499947321262464093576490005728315020993211740794034747103961297415806767043601668356907313512585650291086576056290364774520573786972158631919648454300047081366106077666141253959778976477941070247954795283837644210053311460497674344586579771601886991654101828712903844435928967011546276160669196010557260647690032724946678135586144780279647881753554721705878194107911350310326451881738020474960308428978684277008225167255769409713455618310710479725269242244816513952755077719028848550133251448373233307809034532248219550355088231454155734842154362877051299317529536880067799445648544582055095994278286361543937238714958552049351287490282090160968722166323031689711449458307148193154512593759798935051647602306259518299484802895598686674693065087978219728482554932389697760212172683322138579761089653555474781892534706092956050527771011685257049078930448301642779046525203775888644406839071009314677130756669724146678394533988720613413900658202347710523125042555313640236266612523100246101833146564923927985293934146043183405385979604862536543328517776331910445846543633672086801988032687342953023843665596761581725483571553679770033357618546020925677838132371008965974569093020499587360690183693755568220419437267073981650589703766135113146559481281846651480073719006471951537298345080390760236616340372079735054209332670215504643347482330227391808393764255981463457659882697810130420759655332080673889603640015144629520744603156071540278942581683945384924982294219695319961239405740108495894369727059234388151208099610563288514817758541656185667562582173049059936903112053678152697252605225827403958632041193271378064821415620142602891303996351014008860205871431173203697026535125529071434519261745707976676126447853620167697266399412809419991498784795812779763851306196939137855680694242635382294221948689336025974611047565240625418680032237756991245880633534125517927694897594101958018203309344190795953116749546635358801449206287994573341346792762767064828086167295588706491456453216812280979174081847233512996826821562066945987598073366319724429358455403031483459441097839764071033058166804558137353030485176977882457948633072938138555345987177393917208719854239353114712501124698079814959555673959429036035873286221463732132728603464600794069460137343790453496934287782785934980891111198001717607482358444431503421363065590616467307958532731830894409530057261800776116109227195942600208749460951870820148886997180712203842360030596466784103114592198727493181121931763446982615800839584617455132403658469776343616494733361712635568253836373402820020750763753884582127295526777374190053231039139918368628424567059579643281730884624713940593126052067205443163860617313296476263633027441386616379937767472625757948297430998300289664589240398830330827067215297503911108772288544936685592784400753607622391784794908104948160561941013419594974459096198631064096251260230090834474663104372926080665518435288572776999516995625689961195829103795324048706343731410561377860964676155389792180299078817963171521185698598689306562192823581658340766615274085443219706889614433723568372596360437652409156647047401535865022581372828961489268498503408419530342264728146265393483909470706190939552556769467607813084307295194945226659701261734388256558752985052867472018024357082921311769753522246055225310794030590031333926399747416894452002437815575303645484573869228454508495507940403034964456606239787334531493727566840169926688443583896524068920745922713062911912224601443646354511277528298169778455757091142804922607483862713031836168361621858288668270669373931032044765835977528296029347132500215359242039046251498651269644249039199117146659083493405176068092356063702570626278199165954973628161477402898612133584211551798946159110054167802476382390781068663018288962346378248263791910504922309261224080954685518916709987676247354498691900105226387723370326720030718946343871348666136475054818759045963009170074547839729977008349797436450397075118279795924090654040617390990326890347904509338259739094631164693198599408662710942540097597269135353985164893062609380002749868975941883834861248224009367294253966173216975437333644396447846030470638803332763328641840673500013938170873925746366638140476915255350743867545464894137073169702862699403594759214743212888430937989398566497701573376408859645313730776690946784152096721060698905671917294203364348066607855137841619965306738303054439242667563886162160028067046327803573697149319862673394628518953642619222994077584637405433046633107779338919422217208208379882222356250285211607503998329046133776376219387000631030330526448738438235570641195191646491146288017755018523909704419574429538590647035961753022541477235615302848668059389843973797445762441904944417842351056611292670240848207919506562468149189299619508331804356969878857008086999207931308141002166374421589541157763302977678126621123106057880845278160216994982481466459940355547887855364836856159369850116957007964244479107539151947554769609307845854003662773211477670550218050056181415275096116257515845533036655102260601116613090242299432504854850714370035302323906422964865767714088332653992104623393010053729353653282655964067342791018016326151321201639695759892757212445339707341832035920323129466800312831678463394624617277525111886535686683491235292682424628266020145380657058748352103939145432157684377415518578884933845871685340485964725783353789709266858514876908007447261247455084913209508586148163696747523567786647686475817126636611818054889096796672168270124779440976068381872283079716745760690512922959354951982990053974182754941446935139343903186854482472105122164581941195232912158013424382556593428632503789172750743270590430911094807354159387532132778506678632914216252397565940851618817705379402296926645697383275812233507546806251407434264894900171599689662611508228686598780284337409544857396250030459819082590375338545494292553568984839074062791048924919011953167257950462915881528743938805234528162520810979181340398302199967597248285769911576778681806990619417419574952495983391319550139451614130605800681337777412075500861714706026896780376183516223844311638879079719671631181107611114253044578719824522335756756238758084247308020940747668400470466516269442233837516113180169175191753316651308833897825593334105294475078810768973664535945285379446435948117988592849497939226290037056789833010122035236435169420191067542065603400534511403653638495956674240032515790318280843725348691345656556455948614823745302245075179416515240829918306891315477704469947397970596556220475033035671186812156267937843411182914215592862553587366283582468597257356347580694891851855095254639481667320966585447259318609552579587543230966138727629662032081172323996879642226706701494255023988574092617581976634127239225277097158126084356588555634867366552207366976969778156363621544860003531928517385109495169019757566589216999613042978510571850924025639190455908429448385191952040036141734118664657833204135783238114644680627256561264583537564765213864948570819904471303167616850546330266895637174419202206538738839276028252969941769810741175635736646273367686152553800702964207883913376245352550673435464880530052864182198495662227955376391114996570875609886854987108528263814534556702761348471342994752200967399019445420403918863698883369653531604653421477949747090273636780859467089794194439558086654346440045507021342140988906017844691901608563072454882325434464178197413897910266051416408933570908548923523077151104173055579130951182165615855465283188574696332246784395527725038967289579222685224348453637499466200221085421651389571153157847761027316409233738883577554360346127342994013184433100553678638980437228742063402702479252544348252671020433016444986469545037759498825677392929367312062373397942251358417443228343430808161039690240856960041067282714785598954666170864111220142326953145040465754918842616280105572541879480800209243996704134114271766309011094090651008035098030645041814283557574150085593314311661054631500549086821669329242529443229303518207981617701382752557334936815883786493577352295594785701031500373843279144426064414410849262846399585843919359804506853573222980188762209139722185359900701147087759037466517187042789042990727401523628189860092696164650026328083611827762452024199683711328460878709112094007918240779033643131025265651783738259032718913006574360297353068699007285602571970727714070432199825198564117261983347874118249925289552856341225465518137326585643385140431092609153172332352364904399340213747161441549471691964252477495170801224932533116596397816074274826902388474043909835439784117714944008401961430041552206889997192929629406631112163686557130567094399639690547974457611984849666913125338450519027494648211230364757607272934206107185966833479336159193532346046239407904108007553787309808076598882414856569114138904202954535005091243832208480438836958416494814619836582595901469514510167423890708735477842294538786111628532585836574152097935320972905623063375378512313008862117919096887421382362749794083745221203096935301515597772036828633417338322290924018043355030265367514827616836963907471063856494590992674057756605029965249767432620162774766441881065032798738220458560617755886310240620889019328177954996906323719373709070171643648836021074163843991094610685712485177039634397995998205972688133580426905379932746809098245265476367802790448547580988118446599864634982450837029004703379998655365447341707404932834253347814531141943821561461443079508879982227112647388260612286309689710234501513905342049371971499566699681686671454470098514961034022719877450953919055022316141942176350717802779762607582341909564058365473779151145984059380229013160247836054095760397996098333919081518180248164179561495992392200684403159939660479718723493852439355037945955934928644392601316901388633459853777258940499140642667183151974947862839655598778866330655289230460467488575225337813774564073897009105420446629939128388496773668028917228862756283016186273815744107835141354330472403317869232332978784085380740660403054223631945378020668768209117273900788348541534154433044532869638898192069448836598864979232913122054214356976272346633672325184000656101712877733907580462601990381315555620538687643398676498440902835462430579893273074445525905526069081492558142389506454086770165677319916033203014890188947296917409833444109619419127678428524546756831220304037288246607917797820690184110340622747489189960432887751218726644075485261822616081877751371877904727723665008311363958140619102953658937481130931120675044615815938836813715333430248716237231539689711364223080959155094980550656341475062577246342242107320416467170888696684952412437453860586684240920264241593070021261375537454496408939577121609590470837622048021721952072579823707343452724533791210265533106398339063864082841176182635078885270064157754670269210169452834406741787008988963789033508839839545267117310719349073205606892441555517490805200162002362208312489982317616906780215693886647037706054418743663894260759254477006938057863575730307967275901624731815202179728052723537100601282101142843742714859386196787408235340784043049936127795542877342212506433131550030156335773817864323495381291128687789836523765987385246374956991885414507103378336259624186293673532571308312924144087006751700240799262222213251008165251010341311965434638820491461940487453308196898254362992139058757721947059135077785330742441447686220967160666808876505853720881062575001596391129472861128201214515626526102238068541298910531793699786559605407046852444841635763977107867773279643303341650556385792138892062668682751703792263311402243873553034483179826342835018796584191790107714192666941925054010197757633558780550864425552478135522318358914832143768501914534725191233277679127358813199915857693479815642724002531869432489597070495591190034286014248368345625857048293624679569215301377749827332127157499726394977285320720746533156732405070095478339772059579724550911148431978447849432052052941832175937643684169966397250006158236542208657986479150221240549653373443985576191840992667255793425849780822909633672028471615909510499324355434675082400172423427748421310105079168851556272694153315945262941794251589141982259550916516014971102412356502663018280241357768549366366640695527241065046933148540067883741157960352678819966464975953220311083967754145612353017491639645289876265394086084347824968679909438733730143558609204052460539432728058704188065862761660981279617547744888451536981045435368439249064386939786626371702545128225938158548579266557412499126452637211495219493395242307395489744614613312164585694155379960271606058491181032047113993188596983811373900501213682339205415180994069284174782244695589813299969811221800710489906117595408601699621436208528288324517874886270420487057484291198855194647358586031844542236155424228029429516348275532006010694972332410694413917911055064506271954493577359031511645802615707375250051021205433809526249236768866831845261359004310427202274575970556369744962355019355253706270887251685627540583353535328183914363994268572277686772754433620073325707569832899669556921529139090272016430081530124435345965681079098822394228652266115977833313092010734762007605706018341636961168542249019160832283957483412175889084439114225709868649838235210438917531067130583640686183018077692115156939818833001230434279638158424564192828056868701984702208430482339244963458503613927266599258295831444508242468273944321525570761003518746444074728933271910479474808337998015089906904208277128990911264004002882450341025283575513826251701984780968008226740931292178544774268423747609670489343861001935456362181988349657894933953623175573672447381486046144991040276738563371645154700841558691534821668922586359036518710706205219666996463888236700889806677634170292713091201254869534078606627643262826788588182280869527632122918617584902285399507672260257255349167744580010529625210490478020877786577814663549190812353424159652061246394736698707364555849430571563934130093389140817328945013236786500611085540773378224414783151661012676708420216207325734079536197886366810097390126391678661587030556598727997788774622256781727731489082580088636434567940784179691323146765183969722333466308260330607573168153683614636068367269586548586597219990947767246547003843661508547013288017836962964430502987417712622482814224413288384177254941122556138645231392667873010077344637412975922229783814007602490695441787929412591265196944575871956743464587895909709918106071884441076694448774918286441009309976258985009606812288062023543595913345001897085195140155705950420503577363504497336286268390272338409563795740315859042954987092376361365499759356935581927078919182214140018980024079838441348406664276267746163989558692015408402091587459066648638456797826592006633055599706033072894528041578192989105773681045234684594998355981041182840209406578911380022192423404221015620976178763729038315983378664774947271600793300876309714480649879683496425744295758469932365456942668969353563220169106568478781944653313164435808679521255732909107945736844063661700483792297219914966930053465287047584477675853662026101254503791539728726149672506466872003354799212314769921976820300510323728761398556237068769011707849464753853162149214810284868074460197179677937101433612769759832898505834409530726223495246190127649687179479277868602842267953499880611478894568327661339726527206175572978887642885165346221940262800627257665851071198275592824431580862864805509783273354081818275045017478532132193750693694369690079713116255779630686674452873206622463551097205710695679179818755141169629847754598347482944847632016167510202339702353458500853545594496958788104861743482503587416011151154745713540765415082151973166747891824821109801141998449902146628330571308803955164280839307402387942234580111023501090311110890058619747874290801287879113814576055464881200001975473944222263088990678458530750007312293233190597353473644885439694471028559515483052900073624279018519115597129947697156875937406172302884735998564067738071077062095599077269479270052206269087017357629769990131275208087858096945459567964547092216175633682040678673421663651441419067973460655202317322622602918439196685904531744500902702918539185676144225377944166557042420606710135095529273876808522907901898026412021294264663821694525806413965302214021389486622861580084410213972600415552252016620852924474219130441707000540066460903575843311268235738338325272216724002321605999130525296963204947705949880753878940982152738515632322017105289788431192287440582073957836153987852957531453086124610010811070486604123644366239575095074434118515642915963162540231418774567031022298230081909987170145703983938053524118500203517868918268979858483670279618877118798868959009400695006861262758744908072933337692821481578652532100842712580200000554912895021798077783319059162927005162638228014114642319176551747588429528811257257047008121428294644207535193573751896026816109577777051589567683458639791091502876240684531334135122324058395690434900981605435680134541900024442549459693110075879534716197983084948392790946569233645860556378422142310482153694799598339131960111556717672671346236496267776655696683301633498911984212629273115275349760584627040312418365018969706088413027493692454283411456246836735221018856145770350253746848999161932266981507210699022632146997021204247743702044269475052677760378982877504108402060023114487506969479817614852211357760141282646982261068909652349154612525947651470715649982490931322704587221490145237466307746758130358305233873197707750227358491237442361563131104418107563846464860490694746783037155257585258094910306493852722970331505149631137090904525930088006822427163022605537244332824433883058983171245194626792023331708613021580464969323479518582859593260551641526117820753651400344121567970823480129021073326244289992090985736430076781999570584491735933128246305599129416411656745922021162436695785473005108187863416059129879425621951122287465425459512846255901270706951904756409154818394875271304429709578607690303839243548280649237754722539185063739518424659168218323918005470113036908375701494883243199210192368332659264871600164105868382157732952586606215422054314552735819247746715856288281438514555870799487358939542805006737506374137081999346286937483255703073542853582557335587972692703307253692928751183370005261557933270253393456875650332748669611020079343915674929385227719622203634136205392767943499752724191878072226545971901446995236792530549465460053927198255742428420044861479201143906813822005067071077379921530431126494371816174489296274762124811650511033706844225933943739183019655453235267872561037878691671925943797651419350417420633154150046428930725857636811415514209794920723514256155585644540086476713389519757797911109945356204244848226805371033615864804961015834441327542342790846989653711792946745788699474158126613312351134150942120935599434401389166161858753982215061666412543660776176835185835408974678189497184348741449622317417974233172583410654840635314525527474366886345310039186328058871367268725522748680628263308240583216069007610103218631994656220145143920405299313099395462076975810756917019689790940192297852048259167554614239493114325551879173108155779081057541815954212671903653304332827647821915484016940605561748221777462116665247102390649464015936853278615246570986472604632430835725161262293984029836442412221698104240492310273522568460737686034424682850046373799283964391331258096712889940671568459060403448576793350654245293855725300497974328122832534178164074889760798426077922359765059107671450164873834671789717711575219360254890478168696036781856059275908899356715085837294720623001927142612198530581808654378765026488116509125367362021228892661365727173203768245323144478626371672732253600396798401748072575697781572287841345781546857671859677779339797646201197618996854618185151592437079104533363332329512082661550670327545501585786544469047816993711847601262078865398563528579985877427153148101785380050921678015721808944517150904629125827317993294513221324428759957713424881765065671569739275393032596002140639038957351170149631417244026059932936425126977628037484020102328633478499622762787100498765365457440419656908202562796309204153476454407515798877641069397013828365930124613722463542017278025466267722187201983472387983113940523460140710252587676949364790594689748144629931930356951367901861015821389725814020370151467241551184037810049009029520392180712448041677474594811799177689492694446875488536785530913094835847573788743598213925282100822858397310262121489781879791808939382089079210340673754153369859990871578015697730865525627747716152120664757319926491876130669583947849044308847814495009204833704372339076102410316036206554364974845725446420515220640299469473248876639089087495517782945967004840114044870089656272257286935418544103713054863497432821896789264850616388703191713197018506522289824928563548654616443033908221888979514339355512701489200336642733991044309519550363232414970514104049384545755268435801623868421118332575029540899597474468606843404178029231972582415350517697052739627553690333720281235434917385627348887572701705286480016992072773051037546339002744970059034709110662674382426090009953708988851744193261794546894784596167895382187005898768048335753619599130433289825015614377546569927599826707911090771508830402510592220212385068449096646110061739334864430630423510559915175243783227891806738464436928969969898732737904427996333184535685354638267919402487387315506007429967214804202849716689318512816141491234111750750256831347146320277500925757128593009180553837764861699932010535067061961557477127449285653905206817499399119952089270584618943139315183191346404838131842962746894812529400336125736541142748933532911912517098744293513950134667857141288587383325364116794614555957717443198019486209404121971514939152235026798905791758888700380590256606975151512649099220200568536638532247057821643621438135825509514689862278773033325179351200997665546327299958977387719959951678263689629388704874393265821804041598515142540817989684789410370659847766227827972928241853483007468578721364984226911153512795005745988807621794153581760668369151793534869879344402549227554415096799573699229187604993422492224872377359498046617589931812110454813182461724758967472344063634301990617606668368527966085794268682711424925503448013427861907691384800435882449263729379851660788843225239689180571057505936349580909320095396162775965153231901663358996746803798821854909207589564959507056688693243731559337361603336410708596143180011364328460954332473585933682781819059397042142732776321602554000171689899947872430794643116526726962563121855557811513338587762423411578482044488616494581394433031296833845541499370115704608998607576027694495309761916970100268884365116815021042024668620733326721647676287218336639390734589426332030111222393763160360745507760236170066179064548495996136960624500853479873723934901103558157903165892122107465189290912635779405581301826011268321752702835980908450193956311540253053824463591964167684245761369451107674851756945820852276355021131003895875197713169014165382255465013531410394750025749094848034771817046049920192101175542765218733619444129952935156433292466605224745215713248417293245430788649910744650559145999630205185403535240540123118200465339465440559492773544746825467212902100788889506262928892115949073870559004472308959773093649407294363688746207778652579131137916892210435565426189338765410507676037362740861397521303750907410548175636414703066741889428694117881136104728553118519235609615851499731324570360449723670359733167795234575854291638423178532679675503234355139406734735988780621909344559547913062665926351382092558389288570146877830866370393618785006029531800872071678245276337651678929151611503290746978015662319402063673608848509047482126443094021512356994776642386623042426260625528184222002084860065506581420586848387850237138431789116905850297053177207358433419611447651557641988562739254514717187313628272937792704864020154265436292000994886015840254886675753690698736287287823719599361591123483519010297784107553051992933184192378364731278743968194545127437358006809465303189215602889065551786392080100408754930867318017949026298176035084594912448407279877580879989935371219562541898016794181184500541264309208306641070405765559268697000771374807074330813389262361881308989712461310918355260633303688462331586472303744972574229088543568035279611620271733919366577552962755476427199036912816259400945607129500969166700988874197410806824413933329831326298532917168559686680993167943994474979375303928417259790130858265855892735233864345396075166208839110756620476376174320716612001323432519515023170914101872073429110378919741118970663035871054955551566035108703563031345047593026930941133408032344995491149264373380174148821437029073446865344471358863727029569378877601162064802569298846195165097993550429317003788173337960460648761710822868118205869957158777497106092509130797634402298628391085459438177369953372350692496229853957610514046380635467996666189390949762116138117599818893530211085409796910586470418325057699666685873504431588947437949636844548005858780621743321575195190907861649968829343188626789825770196323058466561225649009194585381867228070067023103906516831865692993325100097023174527832702573292216621580753478937486198312947847651622402238044523203823784323142320699306660290018297475389149695501331691757746223829530629106560390085504752370356958314078426739487527334323979001910486056972267951711319394292966044831396487779486947859670364207735712211534052772953234237486148658350269414048532944054580754443741927582223708757914882050331374455073215385989770196552345743663643436634016434974331257662046965403736649618082366836729460763344656891335291194869221761795775523449800150302684242401007624188707255152653835103517873609271679701776510803559902741184669134909661024415212399698302002044962794210282946769012943468980246421868643716646942473268027061939092857860566965468122897362154806908281092948012842235126271885519644560394659469747415599034572785935388920952524203868432206898145595315763466054908672052417847016456760857350398206663434418120553429085208353946724748434821790914423278385892343290814184335080302891491934659872600409461797934369848541036662585476229776997775038513627368808072946401158404765035553728232679222045091577159512305712438615929036836963667595098915523029087314936726393143636587278971122378328257854826542550809694545057710285243034011728541089991961323390747552664698874320264754277921525529711893966628336072907858943753762191569710481356973278047674806622189416469108239121628177381812499101760526827901371545167485366625388848717376474041287805153510570172080978978714103522412443582717761653308331771089805162464627339519430962871440430832404969779965395509503216196853151384470959775945428761573827198375987047843686886947996044476324332740068761606781826156208200268282851690957678569328611383174354206575156689492447541783242022831262462887185931594422151634483027174813709764768325528016726008959222543228440687833501956014145183514467296554897628159729250262168431684430130228132272650098317404752086749336823091222934275040749404106548106721782194991280618682702835582644653527613830053053592473565673491087979055026733207078398969491535874112940243756142873823315522965822946665001281751606083573149768237406254715523829070311624515622873847008147178379982929698875264516417627545100704121249714358530333124691712773169337743621625924826517450145786490803898767896943857244643393454844452317883633563872344282905423793960463958620743610748632405781755396864657494717412188956092477000094110204626987691939717701030235563043815336284793001542505179983192112100199850375635963829307306038226782171498032138683147743208814634604102248129058879371500851612188871248485259723166437682926729474635588217411269915209793770813327298857878917139904505664570717083156634317853100031740255314899463678628327719470275145007209448361530306027395051455553798544432285667497169856345233569848805689203717725158806740454977630350560303731239476258943316251477172930879704291738447019818567663074857529857513482428593002057558771165277000257784046697896526643127087188987022892733984095018157067677105940124654191010106116556551475202499778171984775497350342932956672432778308485526318917833295209772540412969501804549424653636443985439566333695087823362443869884951370825908934852678166499724128154224340675400288944607015552626918127036813588849250947472063022643134583037084210903197414828800542440116883983232241759544830747867889403570517598531209805959936896447753042729662845188777594341078283828286890081123877647501688983126226494388005975024510556029753176591832530246307283524876598572255355407418296031198086622859459136181183285295079318183699327142769224314919544757238476394143649661020088823548133549030205083565567382338574702610058339321420254393208685673597297047460219161988556583398798021305997677571229836383446293736001881438795562729398018259516461482604580321737031294577209599707136280768837239202501879149435125315282828574192008386415748110196925776744472739342859058721599885710906786929293755627315235254513621560568529119718957972527481950671246527465480818504944326497259096441150057490868243148255698956458923108907393778749521404554911668161904448004445158352722227499717778875405233959290755649247573059741529862731656402619784050030604750200775789792916718406840604389854934721676313471227242179900808359024924038958256961525741513443073720601384162461452052198179549022656742836773954024312325895336936482018013046378857047339849975936629275740808558268631838060217175183992686068428852409423889583688096244719343397702923482574524272625915347215904450517387374008132262690673333020585904593730580430279407389641287047160100606312050601085669935492431526000632357863236050714920151473003472178984239191813860217562461308406104596017496398798915314991041109697412523965490000846668397396976526165105360636124157159141140812337768796965818502796567323142519643283181918359526747588242301047086386209859925112688764279500483794240474770872560283529494487641049644260827766454561153342908965425616836086054302547283915186115652491292927426298687573125658254163964667407199462170440741704783813423364922877099729183320521737621795771566233863100437145454652845461898988286009307930269530291377480314516807355245840810256126091411202893128672276374825369058467430979469949856549424668612263744371795400700669948327351934758538827704706859673570418733239889779764476901727990268533213709307573916241672747062850258585319733020997670442075921524050604553029598738637931449248082478277424932544370272095001759132784735060838399668644527365773847260713811215136028295994796125724274148853300699701227458589503829355096843407337101748599654303706271291568198123370716834114555123344445148296789771029713643680397535549148348763592119214582396011073479800935589796346864661210077866482257158551347369475986769771138283445165713752955524869077910878330559013830618429937349179715348817940918466654364746330775054811666081416772745964211849886618351854927202936106289481442268587669396349168547504526714815380900423503804809925457256549134283234258534129459957316284753369373876834247944979329510225456492272489178318664850723897912049677887915167505268758058891939841704717325211145279676918559624764828331721536303043661614915626643854172976159887682279105482878018831726927326786319428970203447042111633535139218511062705030343309471303706274711500369998328373933204010969631995302124037609285789202615564740758073480573178200960342022658004944206034568320329941754883977476764270020374488261592819364166004369208695381591003830351681544957862582895867417301783073293131606746799111901366282767591326138085764323642602571761675879587543626334172514881451314576692412713380425471464307898463683010615477679979146571540073002285848681707907687598618379871741435661597527069497661763282865156636974074542718766272181982871695719566153723624948150451887542701683979945010113562284246173333452378395707146802945466064813385766347481227137608388657154206833117528613434336532073819493341074414031325062610185090990272693951585387976874534900736374965393634373298542701884506037619105125558423796978331996997837338808475018292769965594287083065791996206117089363443607471566641047453003106297725836948171582303520851975899600022560751156863588958139717750199636158772415437621105488538877928560638886092710142063581463854149548781407805452132139580949397159916617483320267978493805629631520676343154357903797553134375090284380956033735520102155122977669083210176013393732600532508693868318623472596365749063669948538963469285909585852478826036047361174663151653165894297494954036306537951149038630661011126170742911771352104004991133464265488165311459368338691267251816387663877235770385746915278176347803867236400624557161039020523419884827437849162155101339731469449996747879791727449016799799066150840150285707923375527355966419818272936173018566685449355009959162378673527512638349499620838148322816042833962583049911065529487792802130277491660048307760848942810523724206015682611501398469896623353137218732899277139285689129703447722972906240015646053602137651664705669536476578034819466255780074517378358439753694647480631519091145821925509367280560438237923137756238372103351548140944863993085870906803926306842766707159921394993881516400903118665252925255273855161228176765745051103969632346607549147216292105125386098273236110266356000498724273587191922450454146774873632495289099477326502129275190557953810285453363894613057757678088009953963119792006124271352006546466281737550348900112366941754041418754214915049172397258871186166806269429292278485195658383125982238323122919327213105357335395639666270221504644300216597149935113289358187531348113614240531924467380379112940157111051782507024869373761013673950187578766754686765320578842228170292656822483490197341753668774135964091028194444492533326315354968358958155595043529558421595085828970256884930446299024900480055301902889748869008099917843281973418270302198930651649158257441443946683029882429660254463095827725734693978240203738824454023564697384104101239317363886043463554950885652587133964837532037754866794303268482030039789893724272112295033318361605657441739588282976248513497983728514334716994932917032449434527156615261198708492621484043311428917496142865194555730005722507856905059348128635204032757224324870296061502357059205889556165404499556187738297267978848791810552574278109210015088624595731371305896630765861666696237323415493058508312748592448279846805813332155283824265130521626864648454194129190291372730447687582911989690378571865457806926528602378489013704782328385969514122115886364526253273755273250896738181345706239422154060838796876223441294489339823920875322112253074615019049301942457013333074881625057300076698548408817591821980234064898899424826005471655400126664080772741233181288148173228315113107721835397699259437008656851184749856989224065272584436271893631734096720371365963570311606811282041271011940902207737586670631405442466359925238972366582535227607901694483731490532402687693798276310413235233168414943564163557693623524775168826881088138629777295887916031854666491853619917065653266721835257911980225763933460268575943861751240025649622485483421192913479743350856147344445370591312980138449999027435316082746432221834465099823488768658576461459424369212669269188905301114900748056091544669271244374956505005683647678952268714562086499406791606907834601315030001750105292392976596745018834555998887530627101838989463097092397829512914315114028489368277972128024444253714397654216554613435809029052826998151965255965639523118090214306551657954150592200323061732608140669342974720473821100210411295321358040970451668218898964286506392978253542758540015988837542675241957543007362346580871315646804611321753304079174332951452441382313665795050311512535449309639359353092811107818824992723904941126438097793182047060767301842016659726877626111815421382730186337943250062866497853905864079513350366324660018657515942363954784415954429621028300032522927789566683969223963478989371799937552934556655458774897990481598413876998005355564968778477523517754929655511573954797283296149451910393937249841762329895298215709010304267212403063205874192404803985083021782211231508988999604419078221563112671458555916219902626177528695066545099857560476262838859946243422027372714511895891570482881563612865384051958997128929077504365182858128157096450081290004518891526933780871536803319574396687725694031939764824005763775616542952100879087610986222251747626567114450972523903637508407919077596054396934197702860951274026312136888158163259794599046390451649316579592809403234794273769742232888014459260838312029743965591572967875310575448592964850714907365353263655576065274420576471459486570379530964537294146227654176584403854258053736717864713816294584069887791783373028481081886699474677244468926766171970901616445708694226018484928859993211230895386264126061412224258649646020974350410265386867160661407381209349773566377739804491823115474053439413597387448151098071963224782676230650297707397007645273658660784384471162345565864148975565131635318535188664426193922781581611212012601486627816561785758399919150294437353226527196737335673820468658024800421446234397760588125769348154644715504834103786619741603231587316420831284404177140601076407056597272903997629977698758566907096194649805228992233634062329425372908804640703914846452206961966132768658237879729784964865827391519693088483319865481869931668724409177019822838845995037797264715167396268180796741602746881129097754676260777183581980836523896906719796165605009429471764179384185725695248010726270516746340960460843045177991679929748275423849244431706367700393991665074381972916814974464353542664142356947306595282448763568712185660687851347061580261845820746900785045648105534708319849591382521072399240460499768148047679656740117643187472975934718178208294118683292263757131279809873753554247168942557232217621894808769334669348553044307016656337664395982153836653518252046182428197155286083111860145442788835890751019472402300274384118374011179229635536108235289872392512673799693800722814601474953425828463399795974285182795341370456608812795949546428827885748289827668396236349514164793763321827411763942782587596242390577492474578329491497479235935332125985515733050050105172395190790774648257465178776058708299055608659195199593911160797208334853373630682425731286656729040900080838672428859807332561494400318177675137907110562787785959805160384074688749766549284766164387350971982484550304263243279046144929331169585389969450446037899638773624886816770027367454132645317751563385876522179307900355491484463766061433829025275744488666134671742640161621291803681291132071977632995194081448336608310139416820714142886992675631299952480140984020157555181168877731873290328927652536288715527709992887268760015820674277338422551270914928325907958194690656989629889321056176447035914155254610228468961037446113506674063671439499150437322193285253770222992955395150718205854812528165418563088011189456415562059072161872552906730407819524097604789737440419419539058656661999954143632969528108217502376082040336956665805377493805943262270285295884872459289034207593130403334594350322124878628388397531954120691574280316275036880541266998582635220586060394860504524688891258466272570662751827383259575593334765467583659415492731876912392917382952699041840642100476577778780464497211103735302084457571404216273238072830159649721104417603408513959902112996802971517337852435220599245128668855888533740301044144671529013936040480998663500818116192599353138233290858859752062002717797728979422611512356956335958736941997915359828291200053260554785758243990818028720020714011791032125085027849886420101529345391767557627900366184188276198349602567369400585128193622027681126048728066856930936887154681688910845834786615043885515646346681559915702561690987086065869506971408908156730676664843578583890334940227826637651642891499689412272739356066318283355879590590664515852519716672183474149332587274638935782764886268756264575739199207040554370160941093974876943913347122494313265130565499549810941556962559552574533678567733978225912809792212127605958868289503732935118062812609068694006519287029293950734709638347602390356736537447504039303672060326850384566414381180535887215839738508516902121478004495818442023439264130049061272350242726192760558376071889963539092789405197735583620973415326355168962121709617087610417029306086777058117924179238685657013111458359727763417036588713318423285600430016050965820025433852151119221522870955569024998864920711968935536501188443684531245120873865393982405828352945142635839873163224439522180087865381619963047581094137359492479275031198812852310490435120364240886477538408819484123767179816569171121905635002716830679317303039734830978927302806361721487670401171401733953735047654264927519950716448229236542580876284310788032961898620573893104085658881359320088770954611906199199810868674531250266214800364691817598474752636184685858993707149176477737184390078920163075704447483835395130051616763265644053999593136026368391935043426229712278369124258238268846521923251878880225998594760498560467772964612395384969661394765506024659280712459071283123978034013768124345144599307039300227611502078853379540823139439856671150776861928623752117890957173361818866386117436347662171006146850382886081899652898523692891442576963601283481725159695221002675119349874546281740981279995857957025476047031289367999310379698943994182384563231514990488992915757768725204278439681555548688418319962924628556803137601969165863153663320372633108151343855425255652737318845919015325453271146525063213219649817902736089053106252254892752841511557699918793969735114074020214984572879826378348435165509385127629115884044975526475264707482422227023318225808501666378557521254549069757850225745279403012353711396434644092704176587572039956264259819618176386739104243372348995137782506153146150886871449050056800383943768993309091740488681207582489496098055360485890379260127183022421933689173632228511055213620004190613087645108591027917674319089248356959959444217638158605734347101726141198854787106084813335449584747858621356607047761891953191625071596611315691014517802128481290162867285267944300995097760677545051527143188910848904311348359830461506682685227278203578724162507783015902336122968041368117608690826054097508209878874678967734098474425302786080556488519135048171439972786302088284552929169644209800843693363206589256409706013814462490038387599329118157316644453463694840342784231021997025649385124790804873807410395927706352297045295001674771334576989730754275590703174756900027860823106675555655410778739023783798255479126975665773593421602893835681813515582641280225708538546916152863471355407169789423227383180271854008688359816273331458404360368827452463847194291773419419872645312713843541264223463520237180774151497175455042119518226808700894632803252118559149092245734495112447357579486300299786423726119066755249408692078326240929766631098009503028297244778305672606381716626017398733566250922769002520207469564355140629935320628877895705775257496266086179506231494870179573239611056319422114050554903685522590327742892264493770863609268188114961822201277422422430314123832214150180267168136447234209094586809357873584811263557370575830709213688629085289149528184680078795497522449077404331290847498217868961616810891514661198894976858310140038621370044745590953971293099096717249025257943770116887818220566061676865089120874896445243218153300823750169808968264154143632551346982945069784940572174984282125162459208872722824310666483453238551152535627340861044743508198222469257241135565396554092747646141763590495075795029658801262928463179888583971754109137638713445511487922672190428728175637395190896883602345613252657439081150793477519405476307866156067982714450332713225607514092579015619701464618280106988545472091106116558274326752788777994405271502041631438829654855702356998513722132538932490340062048939450579991305326062223359186574071292073602284299018886050223935637074993886337600119877470197156007516988749865400824285603706511755106568123607125769953756756728952107422771328908830060949997935930039514808956587339136148141173008651984789320484064134588388620299048262559509822983892988057769611255855911215257172349046213907678295811759648692974238894550761193068922392832276906172078860945075978330727876677587285288322850109731876917199510255041921108268528173252534051336080590783293872287486000795814532204769784915538752467755252014733449987272508375778767546550435467315468321976540762307718425565028755323829183318342666869550188184797890653733682649186262784282860092191751078733056231007294204307647513636501518243396246765226394452892442515782080762295144193698010292436823162008695470757125161285564132407206369609656790353302561746136074318510229163465223606831332354427678487404641193301591784493158952054139091535152799190539324702014582721980783303706424929831069949509456667883195399568291581504482579615734235006123107916762778131602855324087360086432910710836705465763333812374071871750483783067436717070464629079211958194186292629342131656618999523206287024132256741674910414178648167404424280354644791272851454330505106499955434607258456758892377348114931981722099242432442042957605868972433175057348654874629983642012832855881287728549402256905841543430744231432836029161716828750438655804992398801984251543538230393383367704851521689150882379445452206134467942729344526329539845754327243875413614138470577647401796929919425459200969993115735900031312361832010324760088006215857152617419945848712568860267501296838344210617016393438383617587598981839932295541692637308012474497070264412488448379631139906579683218104338624925370852118148217200424430423783958479690448550539036777458756717262204818486177740113084096320018827405778694391859696121836666175591885876300064198514906932054277794009882618885136082434944175268894241723504448908441407113852933355424176013409166249633432980908535143267750683775607051499152317887729261344426916232265320580095740447724290369798028167453957927114424559909710378483762266577096210997683963047101092972185859061907419565858973269715043166797865652026746382840766418647150321148178231873215517966386711299990728205550133474888238518990602201276960447114096302773603451329735984101918479863691235354298528406606462091333749332775557674443848904348988534239591504475056279773852371620682859698845891417641022819144272556030305137231828109699746520309038096971016492807310647605495619808554063629533418800047814421817754197493190739967812733088460670030625824911693149624504775972892963782414932558171217703960239663386894255566215353519160972707942935598915183490989313527469503836747551876873976554817804316088753939375548160982682404252698915730646495779247877274275043202225196824192153797580841975472592590474941837446637233176544502585876535813008781800965156229870300287389495100774744119589579645230794165108934276293501301568741011360567277341552859825148450328867861510247703583090879116388746295411744391215084821327095083581149445910895907421659205631066581582430073192523947584578808173498828443836031513882624394435043653694428423033441552163680994137356588956040902087400182730459765084286124284257736263599093090127472615764235824100431585897952680484333048822572958155748160642505755401723958110705502296367386395975446301210244064812671471967535581816380539358124775346416458997186229214847428414854371207807558950522831165122432572768284443443287402627528506880010010483973836436958164127224461339334206271417180963989120898870171280144808725145386459089633232811214715662609318615872348750132712842542703830894212340068243661682118880680619871269236052179301379350307529228179554147599641147217557310873157613255400743296874619377642003298510764540757618795285515411190026570536436563915578089431691214418300174986751438256451880512752770602799141852302890881748139634798884001650270400738414895161232734188250628467438672304849721670338157984438564504711132084498226787041564095703015858006403601473654827636677235046600796486629586562462998162461054431515538915163116608520347826576168727880814215444114625698882485599697370630130400598405296882051042645616923051042795407282965031646499026817728549734598094954333248202465770170617837746761427976698889121853734382719523235564931539285078944023072327335003897156575232971317662396347347268996779510965086336978175710794949129028117940499740017282863561498104702031704840349608380870108227470571400855872355237815522276638081905200324905215189889894216848985058909034872793921850714583766984005536302574891696119160437009641949355645766962181918479090706432979344891420456457699026055657401999628463948178584270198363711129380579663200561156960176218983518264042012571425419625872647843662900370028296796714187632522944390517380417820393982488692950861034401258295470352127873048892146675761593446705004503430350568133354881216429581060765182717196553284883812062366948314008208775304579981733669998741748100204426184620080936899263226137781065608048292036699486696623588602052736681227051924975570666951566570191371651032185851909141088334639500461146891056093362612241557879862210282772812214111707171297528413952028050069368461566721760701682778831203657512900353999146713977692084668135466696754298558125428767420084336648533295549245740842440011217523767119465980272532241813933340980512757781878540276227462651893315912838224389123799799152588107701620662618914142164794628880011442893568776988393945132766471674897515507960277265453369497853855311412532512344409424915824637211298683676113615097304766407833798561654220266624768493879161323890656714753858289441405506656471773832030063480775526862351066338220796921286150007970208637440613094717126928283381084300199338605871433997994129491402689936988962187382857153086843663586025531345387068891581558738988928522627694733806760978207689117341589333992732794240904424171556913387630145193655399657641894633433733391010284057707579168302311857472576920905414262879327842663901247421412614232656974467932812447543320883968241254516896401801566878305258633955205959950431203941290035844830921227443427686158142055335380978767900626864383597943867093069145321285095751659048186570844343769947284224139891333820020828217048459497088133475274365915584312658119254509415542477671949840387385446584589633563909654501764699672721450106065549904408397465660229185840819197660371878923273313071815833286762673642475383992952033625858682240385705514992775427965361358891425814410816732427373513750998436863339815478879648772036618634731198155273818331104409566200195846454947546042604152063256600656498505172733904876724675398777581893335629756113336725719655325334817722176672503525373063121833169268497447195602549278115855345771521160115522418184706112297512508206405230076929404454990145629829633447238979634886027037554924377138146571187301818174340841603871410808843707136540198159133098662985609641378060537159746270734198789764636479838130012022298364581088433820860832519730697072544661240732434412445958093585565322562752950214508300292395165884921216466994980378672777087835169854955738708975829741810515735133302250872225106207178527859112147570993981926250907009957977911934098759750739402793738071245900766811571228832336745939338874088186972005799173632654117970840701017076988318920649574291472493059164866246531466477540350523948994054848710131350657887321481946011150101661389765364993184377271846881268075048982943384172094606140177102398917111133585974009421877050023756407503331332447919814249198113405329872380673124728550040257593868147142697999358036922699185258587137935109036445895459067982299430299602464558610142176106488815113740807823281608545905877309529810676877761712800119145259818439762719231070076712791740916426991490931321289152821746710271388592795006454840510720899364469197746554875147204631972107794060688620473155786206434354777855898773520312178445432024847181283959410291210955544298416815802735935916040760521323732087913300522900343489120221687553478803389625086677477902645837271730991192855792503280086649487269287115733313473573937060424924412170354049043477942113900419459276719917954411259586407818842411781015823916976531941685031889176952066471768574814005229996240759965294193587548199917948599860160651488354587515052142566631998519347331176062876692935369622211848548377142470646424527305190696362592867102378049991688458757787676218133726359228168143363430671069813565329907362134236446519270429127097676229175444033106362928046179533301763412740998985138713334854343209457185728946477783314984491121775410080318104381476138021885108004698248752865262562825848180308661471824581575694239352888291845330261511002030163744877643145402490962769884645414169818469689365507603424463478321547354542586287496120500363702059311003742538018480623393646757374192343533125784781073029761157593335010804715086924216429036524239118452510292443192100045106494714626337238537045415683190225063852116562289618091202024234586798492167717549427755850093282215481829123373855039614439748292889172189593475828531909628276182264584128638976176975843840598806257388161454512525644233818717149166604554062491995061874514093547938420862097175971767591975235555962248370858890622884274270207940047684749950155608391962473026286120862146836698401356532657291971663816488368735130380818408798685572528114603456114475147389284658625524179510681687440100255814693910422193372563551997591734714362756908012823070319185553183874026434181587852192061700209240286989771327535114686223497839782724473494964217049249098714378469070847530768325900786404020888463008309302503508737244095248757185539478508670373603416269139624511226402452584872735507444922598686675959547707833959681502968898125034955727851291100054454562402105451032672906131890080418405806877924365023732907263304506222513684421828534332420649492669251212905545752150433087216140744955507830944975637099822823519917972340894375181775635649744134697317209431532849075391155463761386640366479095771445742113712084314712890825413571131886588754839636106360671586670795215326739737259365448913915276458785997688808749000289472184581383075616556673049452310147340596916193990907444520845783110261914947136923241302753784982049584305910259090003982243254806441351875075570023260613245368939276997539582403447736947348446699452701182646760813391070642813549201337061586169235584778178885718687604272696121162060338716627122161794777158598011340555721774035734521008166893732239402288942232069235336438626127657111289850946340722235131749972910329735715750152860936183769015090546129854800462686596955400472600279429344945745020066103374904401746147331960058172847362352647626571828370169600195637480388766424959554965567458978080513920574164155766040180522901575789085505075282497446690651868641874947121957023709839268450916295135514283482613516886026939929692348425102925509637144988469110601572607290625490665197758915424960987701774050188378539583318878557926067505117715458720722365343401008735935246124365659518915785461017983380394407938976478456063103076978658715490808369291636381403791229539284469239776811027861250684208975881403827872099193239002208396281029807238504609818932408926609154674165646666980313319689229143388391094857020569837003955622007209644348645043530286741774472958434594427168514566308266911932874981238737874723928514867647748470959787745030549863237863456083996424357754061346674273700232807800963304333561438791416529081313383341869753985398721217637470566181609138201468696390763744438189833193922706980726180172728010906802142082268854793031361677556375955610366716623648001781989323934785436860063977761947806566812676338331341875470368696418075482536469324869939129002142311783099226233097237609315754222062214163001526002433916345465183785829965551629264318428121125111944908825280560446970729326178793045440470674072692791617351304401806525313561805383634294792805195821360285507371380059316985073628737760509858479949607458844360000926117682679139569110732295460795079001357431108973384378629584437703487981705764945796980748993508545486178099692577118207676687110602803872718371725998161159321470147904540330269985231138734297482240165488311236667174990843963954129763657152168908855998865627901261941112905876867596363617542077173966509843483671053072543597746938645402571551242702934248939674481898493887460081466999235634297269101849564807370181313095565364879303230348101262047111910774594553568359609012675922191912626087382997966097650698845487244032139921267675940600107950548342886184760972492832716821487091028041687592171816540431568488589799637148974505698126725441841448680292521788278669392227971016713775130371046648062160843302862050832480972412935403476725837131809126422532897105105649940515232912156687856437040774511757114411664124663184744508370427863847726534250360803942094217608110265234859662264814496354562552537442409686872840655497290120299141578836831202417314200180153026517752687079667764397203588961780991210833017679734967208667834225682297787153348997389269229395218801552237147673251602343434402012256753501788279571386911133347972363889234779338022421283946265844789297279116076801962653647189775665022994783418657470615002244858580363080049440969555056234581912376139309485758840658129740104538913932642018656396800480566158710222160201324086238803414208975241220567600835952914860345710888769941114551283389517747981588536216934213006319461040390650482450230898323030192499300692066172171549354437454743922918042269956915385496157678377856969381240650721100965039235710230621800283269338690200869031290912421072780501209493600458004329602711416983083824175798274244595861520090093039585829240085405022252491135187929494222608258566830258558691947804869649973058537342045634125723191893277028932585469972068538097189540979849131191749674628479638928484309067903287815867503087869367076934092410987993953612186643891057625033297464606352651414316679876032038866614915626550407778944366356925437084550909728580025704184366681287854303307521603741129129875660174272531794419601665630019633050298952553459460660529263106808966669142749449564823171027369386092368180887101703151857148228406049335023293059541551720004704907738762659084092272416397879253792124460395917118489401431430328196011909477032848171221758429231061698161760266630256479773294651144356542264257426360171181508385196035488680482594278716471106381950962635467088703675350624003892864783223182484409712781383606229191903537211007514606056464805983322695043073518200672475807743671542517367892685639423510273957879518733901699305039399099489117126649352215222239063081894456651592674498383950093528521341061974173908901628086015260890927713847490585419162312081793666945896908183320077568711086872128550734070206528852090908269351308564564665498678099673932257706796019213732621119356890096112881757871064509639463650924872971518653030489022204475782808186809955491272499433316728363511841953975104329043003571300737392865874272916025623796576528480424833941736298958752537599320370600687210331145153016737071528939001865868206241920049505031100814736866746122102674022225465976393897312687375973190537390045915738418927624571162933438212842533066459382535848125942537795345973280515576508735797894537358308867514121459653412643789869192458932259645089292162951183658283381325865064907149090815548911640805805016751308982340927747217909936339305792730959357870611882526560786331498643639219261217453949505419299880608516661249698420440900076013417133772857032460611953737502567692183313886961064686833436677659294662775743599778160420092215788388699145747402072696818851311305086707581896403723769174144655663902789450534464872089573931165020231729405844073240399530892129013983580867823132589002696306204441404883500861951143039844966897446540172364525645445881199313249420254430982581504783270814030340279106701618883247830719759596783479268300030596672423939310389469059555238093894129696520478447521647817562623741129911124267765374183666629378042318203024488115855985980003103083088924282237349310231326595743801851164393037427294342305102721247179146557820349057162917903598181291351870962584959268685742986044094354730217125209186315087546872621922745210872486607374234093094408355727488489903828196275393551221862187812876993940843505716415814835331083199389759090586351773448490883222201789407276213032882748288200990662971393077085211606081996767261727214762577232718500175832871184380191226396879541054287968153244405689658806368036172759370905547711216781743030283657962316697344137955953891606586138509165955880985292712268989371567338754552395413429710502491853367562881411763742826358011409978470321079168523652407353735690729821256325028416470601118262560916365774656106525605855512929739366012496104913562689197926805842436158259389132340590864349218859960867079707804748040285238323530506680798002719102830406703737512665897301789780465830041727939386644306517942174659232758295977510036736748979616947552278258824025142640829892529643947374412896925668360417511816279740127922172685221535607219260922485559682265592432556892865196638875146777013050036533928370902297835471117415872071198243801524386779175178339911339828847682221283289944093812631565838500698556156851493662425096532349401105572118955007582781885155936019644873888476405303194224212591460741449389717954690768502933767275122548161512205830063193785878585841303049765658191784803760197553492912821644466064699056429650845469898379235009663079994695216123590146914311905016443202175732428946140949288835975317644853588322412093529374946147156426663145532726683743919933899131631959846246797081444476834819203901613143757089046977749182859460091049212167966466970632769921164350329777017519931320390977836650853670449717950453387991226410124773042682894952254221803230773425780387695264263246714997030780689352297021073632438808741787896650785658101041278881151601325628845134087870007708861290031376047538228850272994546142348359355616082081659250908613752487735807806733960821065520363102056266820342982094415048794814329171743210264760135959896130768531795359160043750080679452655385317545623844720131855421029359857698605617263863459478632955180304173620270307924527369414403252928367026239441385553914902407192814400161075377068169285413542695346645014646590464832807912418236906707033947773409943337653892819179626965344078207477604889397514814403831049779216282630131388714665370633072376099842789861197379554673895416655843536906097302106142319711735481962019192481267977621586797019370909007186237694403230323596566743055788613396523641712953818182921670863916563025940660719670605605145612646365951852031847782487610102633777411607598240683763009215140342441170095756651848532089375745167726747820801413642730881134253157262412882535894420428036880342399673059234073650807469764052054279152243644101758010001452603384286694892360506600716816088039444262759431103046411112222851805132719017620482361481115653715459139592824318412843775842828716653829634364338526409907271000301055734254810912070155154139704397709743180175599811621634072082398906006056561443928058103302543546016375952049029642487538840177880221483966669631220442026477889893071903899796134880414079349875044755093552796415678873626000083579250039591775789601184820827759015437212098531097992756811374602135582404629252878877381205492916887582638267913162733999917328717649234200082762393452001048353716763250932046279780077050289745742184424943313957231236969820912856719277598759683136323688712684091960596253229443634038584309165390805712604245790174066477759456447301354908435226064007905570708633509005689594476009178308385608068886490053658236866012258066004407287493269178655925865277897812631502852231288936796999588426781808126351330514110785766935806269113320200095468867315489230231579651139628368151694801384702504840327028767040574312308844186800063927448070384284041642903577734917099726521897339234689224290451772259448004106572078617113410497173349320360366313555267724390516169964916014030280359085684101908259354654981489712072550590258582102019687750650611134097553838026952733805565199643349574341027477020368442366075920709377770603967335944005455338565528926137783597735700002969067754281442519388672564301958794441883396054904743964295476289207262512644668818065680721918087482708054532759501922126453198545587237300884968487422695213551682501296546039624654420932120585720671058468349284839062489299276023037977480296623276925496757039033361870819931453198990880194333768771661801262112255477120003543223422929545317224518941828931232649913961518918146557569445451911333841449866264879576229703197178047704573336042700318197846798219572915190326067754725857503451372022676869294168224420014880733977221605095702345549941029673506940570968427326959363964071597642679712587743521471213059027839550042989643071923342444963624433200215009276696182196098023538681287876522812091898255587031450063525617161973887801789126548000214068959123252274817957639163822575708156887584943479717504726013251427097084365883283930943269290591480423269016442264053303004642442955274986630417108664761787581423698935433857893288629138613083072642965139862461204779684625690734167647482025731636760963259336187579593180875047379488858160066698383791019715741942238786488107013476900018871520156628473256314400364808363685761098753564206099616220198570126024207038432045110461787143668086342449364399568861771148013694834566121247293420261491974806636813352826184113479332551796273845294230915042185703371188267657629539160553542472670422876320320823966678918850083929621556660025341532073714834106747359268043903080848683005294542980589155814417165271169242631756018072175878850530548812054138337181742764942615981266642092822587346166092898962770476720781862323228843059816076596071649452206199440193003728113888763734946544881900425563260863059567854250440464165617664985892502959756363899385622950087035609312465345305920469534655581375514547385545295942489013560606585712507455338168734572446568511144466934887123437922938788132707888394226492948090862000903017869402597881814122233591743426919698323051034182976674544269000491905494852784433383567234536853532454592812375734691583883393732336259892557426230015653807494801593056128113318352220980210640746526814738765800024009257786864670057280048024309044091883101807732197112161757623321917492152545805187098572897994002165161800814946596066206199353779359098031122189063296161285424840330726731891970720434421566944979903565599407989833948027978784471494860934618474996230514584331646000761523256767643929597849575727634286036818992866649002382742823559181649027107075386687057400945378682678856150059504118540423817621181811622844850253089355889506293090531197221366587980913409234287855297766909418135960365739392113488808533992858811172333117789251279956065292897800996841530738981550656064811877282730319699281614032391251083448319466260777756647805114055925328755217971316853475763951959837085619275654378405112906113665984685329318707410310722726563345444762983430131536325995347750785564047514570743217514527901612318336104656466562897686909309840141898677014643159942078023933857787041048210814408154118000043185201426756968878746582628032274993878849069667910138687107803790595208321704975243812682674994409267894711720052598902929255528912585786788093253914611206614599765353096541424392176400148482892496110707399276014947425782398237250421210732667449086560026577464648266180352393053741124047879598953951974712172288705595294100531531438604822067420365548490114196488568390649291943337722041312172517017523591402924926696533635720673191602718837500758369605536357209117129888483035589748704363526378569100189993966025664025929517140054902349508210454425667853130451971567110781250764038294292740782286716715902293707937622990186208296026250775544168418661397482357859619923175650195141742150969071139910157393878398220122366389125005288014861374431810473035725491979085897315115229301767252870176275071424777367063104313049360478213828871939127914319652282950046167137095266421912889674079669847210134169334947437870752335639503126716255277519031895366657539188347125794668457027473766431122368561406821133409036175998834869709439003583496910851075631419901178919542051473087584163224355147806267383341008258112884627408381000131979095197280736504455944624661664536588648846621335075419455008378958381488762651082815676751683223358599481910208797831904993459207698231427872453858187724732969376362206160798132273607368530235113265061367672807145630582387331428164072733166845641434970185825879768591491034001787847911084329727166399808843105615159895195100506447014770221832685468808361059806345657051023707729846031724836710706041896607220742087823083780937655033271093864298870334832157936955004401007306937438446978415878022992907519111171260641198196395925280760062511770859829204480335002594102543777614330103755392500814791641277090184563226704617570452263524867344763541696198299125033830948822002970779473828580384362956384260195807067350719798485352614895941286720217587669900521338462289918335218819402992673014111252569563182917479796444986768800576495153701872167760483541942477458947560400866283353660470018564948198823981472138168586388266698810770343336941971089521036429019273043439839433056073157767928140791230158044677606289987023880689655191742609657832515089268031035399335519754567211726264957586785411376323911656251926121674131710805520629094267096165096422855713317323279547905787194520717465581928977286917794545047370343735894871171232541425391050932480910751456312291780244369523152153037023209672257522597520320487112693957210980866363099858560015342554074548357111229812408168868357762062815676063268408697406769322627801030892530196466918114616705233587748042563359659018371006467866360336096203710410232387656319458364591127331380585626178266452441429829802468417104395704429761934503782200770744908851099511763607984792966218124946024189350922485743585736900188960123051357424283113727262060904543770504283763800525670807062723028971400396572037643060276164612603255703764262747248542169169977735679425878953995015971679365288739443180992455138700717165046040443102238192395417078846596181503316843394762138772496653735899666894890901412371337380944278027559462839163841314840555207706241465969180605141144405097184293493556271526128694799955062093135243113621177113659570628336658462449357992695124784206916888834763243714971590725565221612449318629793863614477563160734033081080167211976498847640763423768767553258479084968638861423528827337629131916728141517173053929865143787022061784190715458100151781190998375218989467308705123672198809995595934913414248344537994107856388434404323357902202416143548817440403726424491653910439633749401384875769158600212230437706929401512481205463590663675915231604252425013981988047092676060510411250506753224724325594973558034457559225142783549701469352452059547701583713321142636095853609504418536211785146193953577322265558385450742654801782445165135675437404410244094603900243980373391007656534421768920914811449262739269482691981016652059730484192710462618512759433978970054764979137210725894581062524529046503520296399946005339084630707047519817580757188111255215141629252290024980938244930614912874411413432530988389556302225842811775231727282197447080324622714571573606002939399773164396126293799579240330066402854963847491325995394012340544469258411094176692622149577806138702850896752122820121148136623369932836765292917092132980367870856506465611508703712608124249174811924215233337821909963459184337079855596219301887172435348947133819345072498229990930707110691755235074738234098904382071998186537451258744440164354953675375527827733511500285029616324013771791594866322459404801251202135153657443155061652089928696308363938929237788465744046405463931842461885007741015637829077952458224242197491687310385837026882608337040358638334288157502235466479960149547291514151116802075571303137611803825312640033186684985736114724886051236456980117098587888066046050751850647054796516036355302384771400697147826851990330225293465200872244669488175787745888637392576355931952876379867410526521007138248007282163146844937347947580819138498458969221644653117030040547134268817467816263582273359847048425089511433878037619118815770830094177453589794993173971748575313558974354564724222225016239436472785972457655423362994939357487755734912297916797956678682965669472692470872130198713260932129266570083740990802476213186385526998169836217415980485713667330337724947556517768157478199334447605257718144461121988469645412271487931263588839683396949489186794497925872101361020216311539662138088568102922336422759332542834630312667478627734923259844763257697714552613773384875663092473340808113572188614585913837817501355938210569864181657512671617450497920354868815646801694352844622868407974167483750295477589948786231324773561848134068586163085579891735810688585995709028088112425619263162835039804182113229637770993245928260109806710152693610110178414486275613336689432948154145558666406017206850341539376099610808316025101202656478599196417346379380990503269046811105994133554608810653311360961449982412136297900723644505324248884228893985095385595474190350163531203932392545478834256410333866965239089677595365042344778973383606986363173368629237211684672678355355238881642806894832048373545483695751687362939656194957086662779487557097492344001196389059664123495722307824403266152650692156791044976864403265525721451315586255553206657565726767625904475888522863851229315840144418792480444665199678278919821188457935278726025640313178857963164963579200481108439591894242928625623357793281188568913564802833733024616760633762509336435337364390160072777931171502683633844071180415097216177814759805789961866507489395271248653349113926419283764304147851708062052600311511586606264119838399734511054647910984711724221428384891930639468232979320357501377776071347291587512798265922517801976122381133991717636623627589131304835887217254238120285057983666276837891305612423435432193389045490584174784481578508585099178652348024458084951600312181273451749917510883959619432828420204839897407662080667156916118321156690598899507036463768052872321147745421281920715648735908130103688618507639265562697868233641573903413823880049913111126776266148496349505676365834470654515475574109896088205434368254279086825320494743919589048027287448048163854808897002515133855898956129989535275873740489543446865568248127103709109105287717296281920785839400250487938908817735804221905182405410384080398719690335242136995550905875951767172558684894939490935448547662595307636301741693762499094253555532278618312261029673569293610823866344330494295222108207653176963230699763607213390425387071445561680257665566747887400454846640095100461566676949157317927584988453520804032635448809900435158349333483782817786532144982858959520862652639704820863736510371369361549795960852274338206568733261746134319914873538465599669518108247272582355015097429674575961415342757129041489201781065170691731204292351832311815785279837850580411765378994324493592058428770369743734482189703963170328970506997373227729728391188689399378776304882729498530441829255061012480745806827566955762221696665018361557956006070058060780091464234130459538963508401565524414379942363792239476185998514625887400868779235182088853458326765265438231995512119505858679286744326044237368880994889879851444308793623997684857395182240142658593059621344843087189252575814446516855415664823746968158146124060860309459724424451163112416236576781198305838026509592694664354013657154188320464411430175261560715092186832230979112302425694662332934474254249865185594675328015462147296709851148204798865539869226454580971071585692929457162153259228468596792122682011779397510370463624196735817472868697421796397294493400190421951362528841494496286857470181574215102165808239858136036321314485639313148697996820352271046139079998714235716713866980497282362846168894756559955289196518475926957144525455024536240832272657316520883819538453920493076046618714521174139859010013433291124672794931966353616421138567318478247301857076711861534554017334072332953838858941109945926600963178681480923325191336822365517033565185629712383422375010358539026646230077281315092973204422860719303695215831731843566624029749069091573476621471665975325521489900858519833045028067360982707434483465603824070475111063332425381228021671058556861017771498086555297886787520371197364413098050219565708509302192079975182493070076938709464403566226978402748313548864437509393872774828711020492910675236802701536021848583109730918347370930142665700638061126198565200694799656211672674797288398727706247089473271658656254769616610876847232849127831092534222762067806782099000567784125633998703598782808679057402118647485250408595410579630681559905127560617998738293973386348640578354393609259518408444775696373281546642355118360149316775470544911085724398853864417274263014878299625647144512883427295149693232695511490133448666055209166131414367660561174648488389967911727227879174841209680407179064410002446430719500080293602454157656092436314742042505687322475021472648980990817255561152644282661510712544462708982658041348005378717216638605258572409199836948086549662490372954108651188251314453369718041189371579997536994774426811012712205427280509081391236365796464634787881935686447088832221829726525329827603220742651715324730241992158681106926031400080524879165152388007360211626039962516235942447801637302092632037832661236655220863184127292537008717696068580602825914458334664510101436138289875593427773455304645147584521257691871836487920941800502084051153595623536974213983462034493375700343087215341267573271632075312589227716593450490378012286766068391444004337804159923187564737065024913921770996224764608174725614258535196981714794282899851569002421587349422021128182479756313769335788968976874900047518552071592777384705345243761695521907866776022423539561883682659858561731606132876037958669654908093590533731959737211345583419623801291671427311168408905453443740753640284269951763637475539963665720642879626972442365546006768054173345582445971158467866435848361939628309348983163502872946328710370968657337454443621979578517892203848191843931669902438003458705481435642316965096245784831182532844621793522188410896850771383675003980887245378171031840825454710866411904046036157113962062633370634648157318155283740316093149625823956270930957031900324653030785053831138360652460927952427254418680323790746503121410589167092205819352099415314907705208036632598791960206515101764216250041885132172773856710460305844477881917124110688464230218941182938132409349445459668103727772637413422398355393206962918387488377402879751450582849388162721869942887608284070973184265795538283713117059089538593541779611215676608857954042086792973255655832785292999694177179356390002677086926507860927305996242438681181319923578802921814269365295897082819846708831265061608276795263846045982220033168075104636834986383566786210330831149117670689674428742884053849102876146797452604657885850458457427153074862207892479673893250485025023446898940573939967645699824112896159798386657786504159188464136229151839515404267625846048066619399746502508026952462859110815672263884381874588840722921972729508435891242434343515920696579835897127890663194059705156589882251995401370472762328716714447169580880910139561851029977014732069945638058665265669784221975753898574184221121614176137562191194738388224271976445724855877486236189413590367215741486673415925188041346764544067343818549598529049238678122991410812784335427339912465003222097806475042198817445903316954718684509910861919306922098591819023141000510496169035321092200457674312066749899746648882534511837023649626592579948649654885020481118240354697012134713772193790054899861919380127812998678958597602786668508508937962837372079640927717715350921774057286187542258435913679481338328193170937983668283905189968800227828127779273087855679476620558464908245557214115178283663512335431315625190379305081955179229847323964411542562228045158813324728786330140601093440262079098832951378702193708745592147368645656471240806365124261888783475080898536944339791683530951916701248377076573761372742685067766595394680415292930046874660934646289053046367818371971045051737855722375110533463924029722548675084662531325831640160909039612771760175311263174042003344308442213895379571106222822314073770145692517177015108707014835631530146388149672813137190225595396774173132883046690249158004925515433371394946719450669169679627123646496947177601075939513214316654908928028803297198135617067011497741296111257467089360640458985490077667517098589443051428121323197290840286273888888624480346895967823378198444764824953987232257396562098387838834847604710386977485575615066931101042419950025218877511096535631487072471347327959351185937731414851183141092254957180409789352637593873246143452163903861102749812755250309538705452839264855738968473799659694822888848715427065652782802951187551955888964783663748901567988044993185061009144127756369045919049019279198017273216407191742099652738946752880794735766371138300578878236337441621781650722650061774615788236358905587667213789333969401862980463032894466215327435624525224262184027357440701556921939065061657383553787503369564556090858182605637315828014002744463687586560164006643478118419344121435239662446815196788054791710777323510718930857050777764023702909997154045982135731378272844493159586012989053596285206124675634286196063750541008507454672252309301751835458085503117330196205145798459178861781373530074980870035606812859715341499529066609958183070209432162388922929406247526529003114916785185240910388176036714787298606027754875502595804700311773230360951473122459623584532590470935151549022807267445699892752222577837191382955727167833363408394123102070411390617679686583858827926823725716034352680860946795698397025536055639826541001644061497620534575645458658032230256458106370100781088894897038112198054803990821003209021916493454939631404236455185707370682355835475677974692047281550952439852525166012357244913938138515008609281391137711913936627971727522352129828546001214474177460536437882998483451539467847458320638348756086623725068328114113509664903107231277899651918062861538687336343348089621294900380372908215238913598119971306342175580964563903636831041105538047200194672898896893330287656102126818313591261619153608192901600364406933605092929576901219403246947941036061798675313081890324155709940118155092876782415755274646959310380255164345798304003088467251830392458497350558258682502882981589181615821790380134440617153040067725725655886803146082135712080293242658449201292535093561199789963715111603888377834824224169686980238331777163668576590820264240986367094885337735332216970401046781593203608486401250500526506109685140584805383074341686927544674528634281153611549847060196578540573816386126751745373085973222320974244478552813315191510726933934855375859753843893806025809193054945426336023438446424149641693013112544029958230572498836471678903027625886332989734314763784445126803699337709205587587313073297159343429309717078153434452630734166081282534808384196396733721998575807396689686872460390134348160490942330595631782488105633401504197127117641472214836581361845818395718838638279005102835306009177289243955114614652555153670481724299399273949814034187244953340335761035661505414086276345565893512531176350301442472921126948956543157710229211048112347002328086023206201721098342930996589529727891010255504946795105494693980464220077836292260358940028118372285001150417708426768685642046788576813757104214641374972927849946350490122056516594420430437466175957945275344259194221711625833264062471875654842502247226160144003783753638431538822504684831668477542187028734303647886441456467032239369920980615414072812640243160926528873237696771585464043579627303528763749571667972158924746903292908847284658426879358025319564945300262909102165809307654860241035351898935437846301311438270642062748567781730818569549869474417754804348105727667369076574067588166030322576083830102182216562515648138396752720936188907562175688626942545581949872985564944372679576692654021287190737694309871143479174355729910144356128034874880920752806775341404234590621572988979047981481866426893363808239378764837125358674447542631852174423138738355159205892989152286610893210345433870501137772076090578212554245921632913532281974071004227808779551320036866517558189393808336579116073393063331358398081413433754929544126371917491170898979952761787357666421820534772524364106407099733899820424381056254756174967557403255967498810676799173384352920126774180415301576316301240110148244111289762879033457544681996338425425429917871768811676910734487592135364275305489155369303162253571958363614685362335314170901493920191277812928766287443916168053481202106519057323889768756847475803165188241179215829016127015812428815558091106779801074920803130369991039943273639689123870607488423003405979501311017702698921588342560089782658880246739624128493134704508794407952004564550754380690787425398685164835248795406307642399417093295454707538211729142731688603971450006229826686848555352438780118100461450121987122178052867156641489898256990575554720874035253082227453067621066141486097215285132692475041615845502481293023444280571784189903450557830218776003953307146831961524143376423630414750057827150639313715451607655634164007329706639168578645803145546156906397088886638785446725912035304177070186240240807224510376562398878802121969101457355633125727134509628283838880702556272190503795273091471952274337003592086818516792514231332655485873166320082800569160602592866524986769158364281598396567234206025250135477013662060527665292430113591774401463984674768417221597822326896094833419149451022390970282135870235401173773956727675098749404307470909956737179704627301407704557220711277595713504416715073566579282292277256126287330050623855560579871674483999933791673913483426623565355683070949096643010857452983881430428321685486664288615414860601563685599058926466333590794104402969836822843428471911017355599043567634230699139913016909648098197618806445698845921332835335442508264496386507871022966280005028056434419743291506638676621407716185721155269439933930219714898820358055833440416309566771341222091477390039080160843985707267573150354711244142754071290367146601063532409146757356989752828943037397831811789297666368083567378477075291657263595209306412531868226670249075722686113188351789722438255526270750002533952547586838168169499724899896189090998862244115020015938846385536268919125449871550801795787278296336968028259621539623722866099433886954419738441283628823794678000619404570562979207920724498004182760445088465438462180148589829726026520360871694521708649051504770947340206425792491371054419895015310309929217227729024794778493233207724665208692851762719042350911486721588360737324266336281825326206987234720382936193117900378071988527955389655916613845880294353815813877972700240645128465653409585353782446642989912277885366396433545954451464574526869567431776176341787072059392870817789990681722595191493509943702696798731793622945846112156868596049266566919959981498620657766271043898554719004270108435216891632127220457920227506831857837032665906833896292378202111334256945230935890794474913814233355369397494780725769901351524138767563995208525229949703118368867966186899833930865196653441163102030871257259869879539610803471163680663564195860761354978296519638399330566125920517640465437870537314279188440508996895429847991912125094509933818753299619164080314718332249947059084764025856853802934785755276266649980278942939032500001132922045517131277118992442922867050938639520648631114541427422256582881864453441026778397658668964071518840633394222027079261698137235281209103771639624628901856424133158689468679459127623130232614776662170583050658019883137976665036407251863409978280151701006921455486785910436710204271568761982048627724063725704418265656701748063210394547087393858379342146078536654845594984928200939915636920648580794896006801049116657242564151840246529047973097987581150115001322005161289719506522494198502953805611313623349889648298061658222154444287407267151726789570748514599337466518373926304798815930482671922602645049744340356846267049821221063391126711629861412268941904901653303765445953920312650560079529043782312710274542091356786081220295181142362641763694208801089815030105875782443003933243430258293912190478202575405212133515620997162526964176993103926273003157988147203473852402240944016139745663998398050515673831014095981720119769562603806641924427055104278569921983085601437583448846671362098659669914510378993763201712324496022235025198591712843695068764377495770043608813121764561613696436067979687296175860690989278553722976389864112959091423058689838451313526998551244580806705638288023450011119916272063824356471359204072631387592541598213929516362343872011316296178084770304927504375130675877591587240185531521199046486325880468213393909017418194365950766821768272651723324268620590217632804714886172513317239878796346944882496019411676459985832189931706541868148090046742686372917009176190404702323320503435762104931981324493025276619295303042240104465902481174299627991767951628404075281440684709106204198666515622644155312755262423438404315655486837732265393458546354031434535414744508484455904896642123338683601729339236984869886422553533207200815292799609773414998372826843226001470266461410194560779207945643407383969545892039519165031252374067225721126937916002316191705685530247088129818656130397897882296650366068522624438695703202463125720001249722039974411280959442880440237580818924699346205817652344617679354874840046547399690748008517834315464194550551133600847273721472724961350653428192003746167751322963749274110585495353013653351923206819754977852079112190555760582551199342872070034947168512698981672190103398886559442595430911753514368481985518144343487680687237301368370891930117737664453768062566025863024999359476772525343034342682465525854866948220925836692740590499240945104271890534808097206966561286071166967554132844852345682428241551498452849817691792975350256735608537525971730887424160179586390473500019818412588104366950936106539507779381182458689155432698119974978532589809948249449454157579512410952130632805287318236581662667127815377174174933752670908287168237105725737612300806759514088222088982069352680388746032593216584915164887008543051485806025147176022033982283418436744766652356705308968635414920684747943333086114024400281727171682610805835672287770918050538330410932901721845795202760860036699679286042406245551100270394194919148642650210198827074894996125881394264034567792290529072297264310019453949217944815279182592804609750394127000340013928245773396715603783247387007173986360177900518821662219810278908833774094185290865493863443524278391922949276962711635812095030820201719914318542712521823351384789738460518527714805682193742488310190791703596248717289605091637645559381375568166567206586380962370269672857741709102612445338771938663308188318661459660865439308929153494362398391458535502424803189938463203856623427283804441861786534578899671088195927440111973851965485604238859433631816402903548211263267310300608378596654371654922372532338848311797645598669627681022080481305120952335776242634945021291148803676990713120210023756713072134337516884458279240619100324125797018397621212607842531027825104881256508478879594368397024302638331273529921299331908397284167580402809185225785646072758368277442274662210345335250730766418603847055432528114485063458132483913320360085528353567350017733236048857206939483613358274401655949089635159497452455542582347433746592659237021202766205216881359078664250122734696368245473860093608040534509755936182026013120499847053434020839671935499034661539490966034237097045275173070165184559686188870694746470956108738289007252934778027305893204997231213283457815125929724233932142478118956620338945536206194944379561261825607639929701187414350862909013130170461859068979005845689182580233033235768136742750182371365816333956355306500838127179155085272445524466988064504228555361534908387992305499917645871018303990228463534006930628247888594763056430627401408476449179102894821984835794737092628732954597992598406978659213072266951041922233899079841231043408946350191117141542622252709000427367653767567771090459261525211798787806853528811574505476332349139497345459054912484933696036119385839680189467369744478928799711379463416489908570870191906204390157842427474715883915007903369383045493010010340254053414038857964171354483675869795295751560464271644245463525537506003953666698909724519381899211691861268951131959315834643849401423465183896090455946130065880897133665330675734689909463830294804646135387019825237889130966589074527227114089718860715523825679564724360316521960237608849494572284255317842017188777692587473829143801642526238792380657321206155319786190791789268437253165117140385523149631952934513170030835941699736977101226695894931482564489867727319335386879793715501420323257169635889018580375965135188354251876764288507195782535531394671519431411103513005890650987087614147002774721792839111033451665385024209341825776096727197386278845835611912962130247182679911652178375088930662930560835246965073844483893867380128884957895030050280257076906268676938147652578888591080778844225703621635477718821088344513435778365987746093392394169480677498874953209964245335156846052552933266206048569511965420926090666374204322222467075393557998065567103506425257760461546101037543406688289976018422075273853608448859255434311865992157500902915664010657389823080997823276201332065840384003210837717245603455525520008447604693626195414091732833958301579990512321779790168274683867524230888761762903451007772754458075580249074938925033610076626982022359454521964119765793068299090867202551781711739118261210409485586736271920929796337945333341874792009437182109906498938764802734549109301884346511426316775526518716346196496711513177886247001678601943625917848147954133299527836337232016293314600613497814490322278282339466671354839770209355886046465445464615064769368998107038273686853252796640506166056540284391449688400034537925718409242152094175342023822960227581187312777672775610014033362989520432096506273728195948457867813597386926159113721220673846482488674853441686141483610556303701984211193790510236018677078083335551745407048432342254079278433625362018705822244594041983879250462479005755906341473663016004588868464885510958124815586214077808164090336000644993667240378944402308323833028488764788657683471089451187715203614622403186594803041209114518909833777802386782769792010933766653973417714617651344103786603817066730840129676368561107039642118872648296383312688028268256426492181427056037767982361295007743685594765388395046742949605911279094041282561033938173979910010421864687039217471311096007798838851103082096206708979858720801522786191464575336712575763017515819081921330541609383265293310412720435931733597901831368802645574189374506481594060943937824003445960517780802892034494649763446866368632297699495231212714595413882820549647150444014608940006968715287186293913228184004526543382205658132854879244376317613934074699914426589366717434000120439155420586474636123782881363419592460420246703787526502495922321249936270600410980074513343986017181037850460899026429141762009967407436471591114535537916204067726902929448004151987903227533400797161601221147078718733349134195002495716734388672242642443898984434789635234581658901382371636264344499568935480998452896601573747186060882262694426550261538436684757418083501444581532824484500603477051816271569123582429288716734023191690459010488049885625068608765632940103966950817249157943728452132967745462827197195481814188456154850780741171818344272545397325400992162530720655597070239185542627691753654653235680961693583369253315456252789604912956813680300791653919444879456709161412676022719796404204985525078936300314661936855600936921492815410866717196522806494463241595151207833278027915901030226629907705922664864835920682648857455989988773325767222233712914356663112224572678401836879732327370024991215888902849564044608415934198725189166720370523125403607228064095829405413247658574570654963532223502905437235985485244604384688553506928877371507476928576293849609275849855052411397478537916611320323890075358312212532062326787199110765944761698080569228606052111457434549896875990761212605363830755678323812675342867099468455823812247886015428895749204680905373657454146623854708714876791802952005739856474172604662907694665625776997720850115538517437088118846496481507055608363952429097307884701852566687462919448048639339588105919303404585662231571602909889364499911410823096769446925692395744635635126982818071913887039104844237686424394912351271711846166993183127086808182166587513332981071132371731157820865652984183615151763709520574570694749180466998539495492880524635560296023082864102755953555443994835517600173344613497057402114133339390807208198745201756342422659515374468487176794543072266588869869253082632628366571258149931108544461012894765023820845026274299183381285259529679139995345726813938907391116891608373977098443579696789879082306958560460066168549975478958222751453278915124496570962805472639452921379638376811835318352260460910196037155967888901889792203102920231750636435362206313985383515346464296261085127520150147029345245957411902977903219303255607896643915577000081065068750973265152153776910494271356753801058241039135358708804810099107675049294193035684983139252577106676663535507897158087731095373165008538355692725388010030317830307979382467559745929914213098449313452582441996106279255474230875584388072045587502570861911053529405641335648941509864989300446087262325230597733257367970689826045836959809802348895984994481821967168841054992465682909607753872354304183514523209758191215074219217602045754343479677832590109213342477869479172303596753243891216056302780232636886472125531577481885148123490820646999615128417121931194473068464975814756567585145122107390614472380310507627062601717793135497860970991350821192274756168293778666035437673539222079195697932764271016357771188822140880273407516819441976592430949956225175913448597553840512241367950228074981447177763488236601852791489177348255689404791387931902516455650310980582988366396162402162169743494600917925788204686813411364939815377548592927933493733407130754251132528036904652766811575685689455087357314139463275798379564958097296006152021781014420691340600401477115474019920759895417915403108934410605352277981508640810485112363515413655469255187930110169008863925915005608473590482028400115805687217734842560552404622881333046502805725547049153285005456276540487738804965168877389752247364213313308891999030135011513877349578737778093182157630177878666169570003518441514317927860511235311641804966439168605778222034392023739067195115641377365508473450782497968625142090666053273964544136884265577125645166121958875285942050830053426343602580872938524145909133192362710304143187090989682476159078079505986206229712577171512894141357348698752723002659001192751418537909761672288749218719453751818216709671441034602073013901458346107087369418849574853767069098084882277737722705641172900425460911159384263507157764919811534828728399648357438048780851503235281242492965196922887983780949814259915006614550226397625032281556323806673321559734709302240285959568032441018757906177988973116129391859329457681673265379946393374933843518252922623166555368826288761010298426821578461833604083878371614471813004720154925981452802011686830993959458051446542129691001830164698709927430789736357659646051655602398202808071589458442419645338269904832321540652631328380278355106028993543257757705010098949478002835980036597206889401425585347647032286331449358032803883665487526513345739380468406163341102591046120692024406372437427156271981408372016432362614552834195026907492448784404073832682153765351184577568626942619754020630943073534721638360220846415819118941394361200106966482651570739130243447963474378665194927477450531991158125849768393799195053929120780142696535897577546411339754216883413861999221640287258249296472266424220993669272535109848941056227258723625495162514617365881182288171480064095179123421899513438534293048422425896873413794442791125280266573874938427963644112954349535342004540633883973416255386506982794585691331696083061987661124196684369437281171237766980846640731578784001824819023933657513508197776596109202277156410541783665315699228962279647868983197984960676291855379384955399096167140722597803286749718891536972865298878442588997487849029584167344379562392882197891884793452982127838078741457392556195395356680143351710314900223672722721114291248758027900576250366546691279959562939451573531921194184357017481237372998208896980452070416077673248051705759416150841746056042254379096576972813293522664255157631869155578654463739822590931937061079342568765121706520460749697380824562407818521270688696661812843773296767607985027835813982621791857214050442975858034189177781764683284873766450826528936206929728851938947653793496609653473974862932381645987583130618166053731951265000248286529592506049006541038203190069119899485774216723778800367229015789279530298956948148081996864295750584837665836029088896378911604003195073268894230813526302536461823769587744082677594588444562209871212887660886114419038842778468025304040642210109762883825551251038845462128299282572330035360641909620291462262034398314191089290103427825538112139294577823485275262871655075499853134062138355781460032752012325024305877501894326917934807817047085848399168473425472074152049232772924099554442836998616801945611118209916869038544120836979311232804065486831916510271473128406287851392631403054528094904177739929478959186164687221922778841782842508860370360186954258888075917718754203245467983395899918098780915917964635359378577274287786326113188598120369270569089298479543314041592469791957851780067258347318159567901086365111262398613837252687818173220211922682762007003265412210061802364171187091939668980573266577736275123319100967538428665541250744033520087865032441491314802253758865062741709797131467345362781000115689694558367028528289145007406451718588344019426399471132406410974777097221892092600364383485107184596494745055637920809797110821404563053102942872173131434932286660177329769797005829914447298281288747298004272942763612777340444380866490312919205007426451474526865561258173694683624994817281936889534308196366018578679162043256018323325889338945911116266057463859306944731902725173514545462123211024300987715629116831204485488058157907126049237704808581910296653641003428069698920341532621944826073143927654538778376272181679903425158258311253194372761717355151005647857830001308261939485097177628621853997089087023356751156024391320713469197947269804744098677732921670319846082244767820035211436138956505704483448313023720325198426202656423156409359613840336648886585457689044349041752117151837487771543207426396560103937223756396621920793734462344502743397564291144602026761054542844997438703253020796281563771189542227283396305734323284622879161350231245662737625865101342130446238706698251063512809821041426197364974498909760799212084866941207748283757301335415800173380766086855645808280541207111606252651670503813220475793411149645984205679067211214493752190216487721832792989027334045697691867841056628122435814080129469921964078573401251508554671075009489961540554535387787827242307220471531795883174824434188055526957315545179497439606392101729005067101491047261927872441745116181712641165734601919895327755406767028595119849158944339393619244673634917252144093690770325790068382024503015925771293183819626256040887589777566982144316285485068568084556546532443787745066359539500986464973725535005736196986220989229110072946123969116336079533425774130946048392621210227373480832114247887085507927034028497746897385280117688699869479836830014919609281166873928460509914682458430911114494623150129262150699581072563644794849512641403463234084175293051819458798168732684835872304211225289418951472823287367944210847668281288624936916339549408381650174643829115838607920199198011628326212687587991590430976812187297320718147363663605133500145647843614884852813029998882882047904116557778036344798217799694420862448700235389957043398189236077363876492171435763231687231117151333927274167858660163259677864282679072930085414368362187232610002468425263520853596693966276554704723943272597759546159809137199806140701451296630476015236179539004186636027639355557626148215866075264404477689216871190817946503930622046936345198936796088261052934976730540083214336413128073740106270504578229778922537352954112986617477221397451550625682840415222193423451047017061784468435477204854053955887605022383701656361483541098091563967786322596769585668700875886518121737489984374646671651979090301736458032446260753857156384799290164298891862917751389919536758588657426556765734017927337205912379945667463518657023624873360248564086680163822449131429197441069089551526483794644288413978467167930527026297711828583405249405803850761163175092336015629589417086225522900220345532191305490384769401769869006152324045762975068903784270092606574880382463447440789657978510272203924666076058336293164584689695935563763975487563766902241964095170114990391825381076258297971292397136199506761485547376067424569294032148752971831547076957180084889056665361703706892448287688655250883316816443092645378450822362390465640405537406567008824092593167532445331106975030167443128430589195088580791670355827447326664253558777990237597575885012657185620416906471474927955676105062529481587502402523363812958959698498640666074643671876410027732075452376160173042867014701495368018789916485991713438828700705390476515189921302364283664213239131752476703695688565319162174662274850825507476280045468127430767739444147174767453660755323689248951746422308003999881277978322326077450607262384749670724267700815321909629451061930972810315924241836045572472732883632392039704704982194331074706926065318661350344229538788405038947673856047925915875633312705316385783353348509557296579100148175199822521101102384830774515631552337365281766254528292228914444360407069791771821786014275705341287662067380761523619810467995717659681427810633341239752205837984120130910308719657853416823180346186781854143605643515402597881385990426980742832941794016077013824105199640496253056200840216182970922740004640757538959150916787730819373912152960909411962060138475497646628928806034720192292092217196047888209408306624243680964152438063528933596300755803568449376738517658893645683398864171176657810595281294436144928469436885133968139239181899303232156253141012003144291160198286036158160196504512820077269997509386331561298873614632718658880684786332380108302707228044171285089606941136685919530210228875658579332387473305799649860105711156093843499239137485977582985800828288317359101292356822684941799811176737256680169345004461945755605791388677790375251529846044723206539555891270379711440490795888439378789564597730573183106188897970765795307738729669782723878019526615771040875618306204920971670491973934630006231002066010883755969755031261998930789341088783824857908586213000838110812568377731424268417109109839722144807619324481671095411307688033607857691941000252163032800971886620697552143609532406690254281266824777687276837071843895352288047174286459828742105817038493826224229170890580149220640070290150574534083802528355676310746754711659695615904385635670611043243197348664704426971446531577626877905294439660930570758986769960448684442417684319844966498260345687223358744090639308737658167390227914161416624822267580786506824658020705310273501624538115418426771234435046680155385678656847947429871099347531721097453112006894280793790612038148786684810326060640299333174109084090566748212259663106671502205675492913229491024019241767300935087216721827212978317207220494687982603759566080219658920388812009937588010225875736278834550027405841412798536884169692907135727492638606801538698770474420410700634094119085316167192520073343849716757123847742014219424342300852489286717909822184907501942017681013963676540058122987860508831396597044653042474981788563768571952737103068895258343988638330283447103911189751915131750152327299276566124318447329270745018949672201562142699584394468616672754349047984008480074275447353234046198377221296789307435972264112460167584266348951153095559806581936039387073950832833841085478757515171879277642688057291669155522815722601706577613432636019474870925487223000610598912376551026352128997691190674380310666244861281476447624574525582900913616950662640537454046236731710788542935928177276051201506053951490085620241011347661673703146594815553580929416478271853367269555372633794613548606995998180957046506749943523121244148390270552439093765090998772496037661196461322131047925464779479086220514668829527023751756012881299560186955670104006159847230958734526241139974673963969113575536991323723442419654055966738519870261961712238878132898868314085530382806387690361620818699454624115118198052905667967360685665323186601361142886138753808993820699460940930914312894990782131565048456998768134360847505370428694823755062109695411595216034982202948761550709870064568781979767435076799813455189933356077432278398582158904477657077848211771631163103226777079868015509054267346391962065032331550373907472384511368567004048113463625301242842900458973592695737122918214337346629378351073406119826360304382181618578268464319619344044172074883028773562103704138647992851474518924570472169543964636994393829278837451899557196735545703697644921096197280460440675117271697137363061951241583830071178133165958943931166647505747609342696384724353075719186428138320738592210199970000836035703167043142857104443107905680645162047289032473744185926991191317638394717297122354477012739484246760889617866278569527001403549744953034824719173031345710469862448012429610618330917906726460572535990315805425522392704948998917891754972094476854099211022675030196015800340190645869690136009609771802157976866374053168763138499813068352576485068890421688929822108482353803647932187598033543676322009762954760645814053625062412747262972751358627646036114209679767447526708651902641960568417026484949229954806796136509180510886149886294365433049094870638943330195714775421438026300513705585016811149856775699828584972977408571945883682962884830884073516380885589317910575291828754983296751043547090639516970658275623492312678397353631399672629623273861939493933913574386959504470169114428490359809429698546192451410113267126536703810750669777626642971204905033842318643997394158212869437890985840795749142656335302448962944974700031328628490995238370951417260104319785706368261223039952377298404861899805799467712160318214011693246193366266040320497569556563822992702117291590584376579457287888101142127413502712852650600521921395270633560812010854277857309974367700236615494522763628732207242021870835407170654875228901045582489238744061112188195873884501561447590213678478223703454389462087095190086684207118376965915716631520665219543524103639709675899154628543450131451719975811301937324942850026990690573207039253301269094482519175633771608637965741208586263478843683835620953584877101535315948816030135169557685446906069041602114260735823240879331897324235748365055199513032335782260463852600889438139367723040262140423918821094712129204739879680102282896365704026191117197968217621397591387599588646837136011226615536097013668994345120602058389283611327056842747469647740718084868246112867452800534901756060104807609292323546694411025827525124983750712038292093697373821847491184597021363099234100157214889785487188710052327733001452467482623163779919144425575830118075773927873812472907114296862782582828083189594741803049654823680904937668868482017561358190745554420459433706382651472585474888117243793854855408898288892335156531796640114470612596187255688815475861369105667607788132830520839224944726634373036406550817960872864272938353941914323440231839599287187241932629134120009062952684467752572305909426154745711498094278706517594456858546759869811894723584063085999982896921526691814713688687269327887304164527187467409085666055104718960608468246850674207475722647302624028557911972987106420826607987785178946530991996687319130673942336080654841604030569746598907099338777124960559325406204700678387704786530801677824011473185250529657829707607323688484977249924474828529196486954765303179983118848613911709979153601418095974429417915188047514277523937862298154384885751211628424451055222816040858859050821601668517825424903795577538815705248804623633075096121613854292252341328431289223519519263468955986574459694350139490776386505585216178498699268315565863866830971791598061479933471372784166770839833272216213296506943464657778086539407321963540303081089507501204155383760089060398138517350767470053258851897638848729309909632289425469975054023583394877569298493321720410976949638635919067627871950005484183433585776073035341909639661688723419126154028954733983971664988574624581585337468962025187121749095301025052145931133122390403064661355970044277245587047730081009577144438853043768070501665529699664104213428666803627229700752968539424797152023652752993700104270125520666086241638422771004038353717505964997221659185768712387583209097724642112238122594734965988117678754833186052559212803974522643910842041028300250241954396953680842816981169101927020018917508749644777379891336653555337046689102104157727519332876190964034622401823142161062608390570978363855440378588070482010394376382486189974840304005576529671019845795121878051182776074557263676158554627775156617749128448536998954435674875654096568889395704539945567564822088498191167917123722323342330184479704114417530832740617346590654226970420797672855466803330803238596548121066608504305473395591682507258309481364918403942646559357945220687022802723937065804516686422453882447889732106121091399576796370272501456137675272809552767525995069031500905312758692923035654575653730232220357808438088605572696080192765870569546961307041128983975824353241639437348766137641436747800341978110944324440628473880153261943730043987448933149219826675283259322663650591675586338126768882455661857930249721380639114412335824378096224282179002402844527324494098191746451763994733970848941906823887201569886908195822684971683632009223396078638429715155868885052288427174181313908518661660463611807539660933467085126551902168484623877022008766967378186958552563806547985349316139018316573789262708481279572893432985535296903104593528805705856027232749881791372998463403220042848462074328289684615649332771994176225269005587343067299005997829091227073563041346502497606951326717486637023479113409871552493159644180016395133220832608494367436689414517306943407257399908314308866686398443264710950596073886025186561852580162776505672059190793447591163891952405427836366734730940657612257094179843903046345220103290143524376596177789554066483303293907352892020910944432193304865903014985702970793014391959869385130457048225897550839266762024668615829963459226642779756754298388747890360943021451360099628055572113620150572721218192086620975574779782877921003527013405285582128552432615734706689386958315637789967631984594445492221621679813361167378788033444777557078651736034360763961214153354330824917273694891237285108265865903016345893098410574467288773360269606518678452872632338558559682387736271100408033435908649512782238706560942382886913444137440539448101790405318638578383451794017573859000862670489564285350789197183280310358047762176027369765896895915877021461057371111415314740145087274910549320774490817544093837635584961285990235450279314429358326454912861433613983295586084780918594740159126957298059746459187821421814315229793344933311545080324132531965589825220679155378506744942309765202796109672692170967837370862766673362080217116690661687366543949931106608722592088245549186827138199313752181008308815516477835153725180681236027075720427029168765204738772129194926719694892426173699810529325629578034053317520514438369502206506564913422346897670210369635579638985095042713584630676023834635335947372332724766758040856345673355951290970370027115641065034372879782715935183772584696949320886964204240396092793183857383303265519214833294228468522496266959333043617339757261823618004017244438183388760877698788214093476746221696481619869432026095640630141077729326422858371653246836386069369429525155620160221599007003786329646115146239311769581383160784997078748603551392542597280609464424665532065737978744732220235445438551600259391840776045064682261991899576114648024472876332966808314639401463370555084944923615399604539949956347263915028652714285294980945727551425047767249356095647388465973464002016870059265387185761691152706053347282616264574331858080998689752358434595524929953674357229034039611076989718934982963245504868689332659236167493050403585068115961653611598136275671436667669961895726009564990802596149040916050990534515298224250831328022133903273719755690499445716182377228245855453564096284872383693485716905342560227636797997700553116864330594250219778260637009360737576630677243014625094178883163187603856814073012157203052059888464020257393614296884052328018630992575883869213995887635612552326114221606394090428656622332445157509717011067037496633840390838233374717053454587869299611276626311516993820093159862259979604048837267394706258024552470523248487363100083680401702219187819696174564791154128175814372101504412202014893130616935619926021208798339540112164083272853318305610221464720559922332748824527624630133180785156343917204525722348031045422153948568768964065898469754379999146556229027664458687410023575174140907728459850403482461275677556281238911442130716902480829095372453331302409880350409239813370716236432499843160853599880788198273786714520818287998438238533179316627796659698773874819876094180652225986588452141922700689878483184568375209068934986775047241650010134098733922053405207801700014749749285019058391681658734603232820530578271566953145064756385376822100688195458763676668527867311563147300681273007395970063386665617430157831374325784784388461458255323660916468098792926916079528359097229590831317673161594573637207958381194852895166217687359680584458517651648558230682541079325365153178145535223501296147891177143162598723818632809332561887298801864026641858338795642084231098072587268119945445297697695855365164215377996461917833192724115514669207036632130535157294342264348766350385625550859468274194062138012954082950139491378317419632868901345412893204847663110903096204990702707007905719988298200101490591019205924238447888687344525314455025829315487154469309188846236098711575401844405651203673947332163366017775029170300653448477447522505913608721722756800798625252398642858395613857871197393976285031625442376866280527986955878380432492331398194520657995067091666307830386744334422260352750580628004126225547139171153551915436605998603660706634511183046896715124552882585908738633081724295034946987422014312856471151473203383104002910165987121416461204210726520902684370119258491016513974028877437532325998314227505251608505393090043009911252977635842890540514681114185509601885391455554081697405329648104224166864195058949259609567795058796797212175005798834637745154108519498189405525509712187239623148701929417094004791380207924574284508518025838299188727866798334125924499308143976864407563483169001323342763769001986607223091023999499592037671159650116375890688652741030859229774252391253648200251831171066525689088147454464083544255850708778561475243139071889257859481176207763914081478317422884739408888364058948637190876978966603255904924878422161735466946604599409333414729905718193227744240464095581318917317604350960870297009652622799232724114695281539223097796274326025662959564443250047914628831262267214589483474159182321317364545228393914071610780632903383706326229871769844433762752881243881599372971258200979852232775894933414763397918986004160780280890232951991930781316903843526218900607876305521180889924012675821724874348041874932917200901179025026393635409677037204278874453514768948989442763050600484945336804857915953329831123684129828628804878664988553405643953764111907486300364931425575731273170098743689477072253345144986666874861159005573653618857544686635190634614316633646199484550217889224558147143309747857298611081401338915196000178256438585125322455005670879536651874453699626255651814058741333995629538070702995181890076023466802623822309764185578896311809744102931041214151433613193428799550304221344083493416516858501803884060631928643049843959111823775294793087144443549061907877119761252999278610153910555755159248327757731166483510778546354944192147929965480814809298511274548796724483496675536225930997557608873981911287872936662005028963666688576832415969441206023375905408965747630875894911799359194814210490504313743104404844574544962278703506322514062033513610627070036060550811763384130731619515948535820646097374925475555706000523969482696976215686794377831778714530668553024505244150104304136553613181632847945544462903552604081223284283629590607957327960505444999148367036528035703589370355858030954147476407846801345500318637733296744706594250111446689287848449686313937822476679787066051554071179413405443617925699602581161473502931265297386171438382331917561139622199603967919946204075046432702058643540986349273130530296241444183458432625274767056372672748933561174845459937171044520111238039664075824691740112447110111467052776518261553583755125308427626534323465543587697114434860203485895022000922984447958359746083771872991723873520869736557463142604168730259266799886671717483851917292921107875651464141460265900162958059988696124102046332975918566989040344529602636507546059840980688884062090719978395452493745542900668253337989784472715073752878568269682659569249569699969362798349467012328403114550780191564722490174556766670339255166000393640278161408895251548939874471098327096316629114408906685849141038038835679554086024864488761601737736635889111640586942169762777795847546335850084881238197166811910692147813945743613487746009378115531544185333398173992944498290674427306227779769364493844637467400004190017299266456157483538685922456728497313172100268132742976232561661611996102425246146607451602843268048927896691680767374226273907098390251096742436189930085203040417216864491507137976976753807723498738079747103086759161745176949161956744720073307464180643809272512072706443461954080097528406710489728651452483902209921978100810006017290439680303600498400893879753319273216129422220483874947012834546831370570009557714213126633977270116851294862559472462619108956641402829243160028598560894669038424028608142934203659733346497484099350088362142182727480257373289269008771686944989836248972691847807781570970056958702505260829419144775452535012860926429206327449116366309159238366390037891618937712292315316431938694081650498382386372444012103569170624051193865158197627860319245109563246950052299248901699699655029408958056341632216908991782875257050674157359648370473853316739062998932562227190170746394616306526694661604942724367148969739624539795096281825867191912964832775753342264260727444011924688425103176679661138726207097695325205990699202431865282197500796203371059864478492338102851994525352093675451617675045879935267121370667772530644059659206328960381393913991463143167893023415312715649346489971522166615401881308747120021518557516380186355954250620612920640937435179855044648728746093399411741347471141126644037141398298425138450628563569870325371852186851495659247037880387135017808545810654302051146633605891005068901594214566009665452322370889223399015154714176586557181980237531611044579402679017228259571647841647339696987656792636404768874186972717006223412602997669092614850778633463206557229039874717239520486960367653120655156648584560992591256015435340913288512450945557602080136392042979228008239226010084990199563914084766875399331944960709065676196774357707908956176060513778774992612331822264450168573338646785511067419979228726749769814479088988442479902863335876597812791389855116262693315682918844630325099054715850568394395791940076854394004410163259058598730901280989470416460104434195692462145977660112487609364967360939862891125198050098341855392509756077107082407826256138091447057373270808946228795535324542997494198977211334546869459503390772912793410659547743136551235132251887381166881725784694024155085079161965079295165136507396739848199470163162235027994749060311787954051860711747339583576995461761811531094637408830487330729722771772872706485073242058014919456784689532751622980783922688684976573759872589506283247871309902909168956653226500527713302872830594183798175557425254720767291074153864287456762185905052667255394065608895255828293153152786292542165961704232546729539344429703866247879111676359650585187060891739110574860894046279330394152958991666205048027595611131847572173355686246293117167881457594211021987187465957214510468880267906457540989190687461974272261011608237677936764440056539997091952288570362419827504529628596219256074286191464644936085453504230355796592295570849473435104078383412047443919392793563232648925606070298061303864974863650857619871517396541323571688859204194827954601331028159083374107433475708047893781948656005598012658024368795984783213095182300593662006843397452361186073260092963217029423244278228660259665478271663542146221141550832234894211307512427755001432316139856661951396447232852343694310852216193589542987123277916241238104008915237831135428743120260391004453178456729259315965524435053140056202234467606352053230739199457885457727051641821053174507114014566744989986052268736614945437721494452251822898162605090145536678617139828922556667383871947101955504535801718106810868831834289364363535168444200845582690396243793304587236161953277921356769675288033397319375358648941529840583491440520281695980493903441581437306429376624459422532922937102135942989253526010899264653468230062686145374340138234034322871738837418979864614769457377668431893130644950177413086659250280648757393886498164554136748269307136222529015344431218504379211390663734363700650280135314242932712080567973854881666982380132616570263156744419169955195205130588843926811581417533035773130632758228551562586266288011310211784541152170046605230287243737691266953659645589872522000905956371952847700488866329677871344354492581024682743794228972334921291269344405990001708182622627159155131456191822829015566836748758738652033129283210934693901360880893260048666469200877036192033325713385891889257818696308304313398698954880533095242225633168779958829237694877803716945885669150493426891087952345489084675134913976198135547794649422487473154097913581317973704638100594333936411504199560844030534684370636303748230379497855716913951340177356323093014583985822848745552864743555136840534891851707297591027557314569534755935817760911719385945999696280357620512384800496525543230416182699393689355411762072717874737181964436635161190281551448562353731993688297952854037217762169047298064128585759482215343394239759167148087494458532345269122442612092095120300231848605475704537187479701148575405736707175609791598802653110972824496188471461942382307711277746564834056937323564865281162430820209694881919376170625484084951905155183983492618260794286743133591923817761824038024043816737562998082236187713895090385413293048787545582717773174924849083989967065243292412015797936266492732562768767165599431865911585517534305028007726839509546171619102850795160355551758900624968329706668347745722861386244541125714343125744484688878502397115674510742836756289054705073981496694536816158966483001640973555986722194702515650742311125434924902243560548139345223895089518381105418410197047320067423874885637726990866161444075325472969089391831792136848851154434242584411056592383516095346920033949990502050599975791294327129412858820715361488491231725421069366772774023713537843358466623744919396076757501430498202033510894401133189757543981304665070225597639910931749564285419244369327508371890619364826809444368339077078596685196660284036316213714872627443808897788379898465449545230039432225605573453166396915298688537279452275063872319576080519559401792537154989465053235638583565165662429006853883133215041581809459060738927825408354722860913234197520221106001895667681202177294628636618373016380272161494470580705487159074481075755059676366717304123919115626687219651972983678390956117557458245767830283580558961939090539866034766045238194354708409202432440305601345128257567393493478632496727374176297632091569435271255036962616848822204386249748550541648207927091087480582402222896553670367815912739872294713161574100271958105309043866985495165931087474804801265285455746342712329140362267273391642937424723046067555279063964888521078494509682241514290010915470493207065258610835869909740733893241933794574527561580430614134189946665825148191516759532983826123427858014786483952903047110933051216731255480298509058377371396461501595567028986681924993065142473140934094023661740834550164323320546138650116996229037966898880061525503773936632375683028948158784856618484222297826956573270769798975499616011972448800189779808973295613973570702800461527562020116919067764318788858810856427785766157903754333485749656654284411716365824255374092127742382565222348372610103425723112829351058541788542481078420440190661913054832058268522354130339907463239326144804315577666498512295467117296796999335667649590398919892257617588520612336318812640255190710520174559123275017377243858281980454587951663180604761182571657755496430894596810812936319929693553862748640319463889938395305573375597593382971357850888935877857056706170758994360811173626779985176470179172887963252638224223873122224386759365877958012292650619428749385467212989746950165163001260520954380930113893189267667386401744816842974740516457938055935763012132004123344098027905099412980019387710639351377047160975558807625761930769767542017409939986345545840402897184679236404752471981704541061658160578612840573847059064728499282460744234759114137535194967572354330970268597139238227446359861731930027077976328053368788747481432545725953371970958598219209005230831358287023298300996529869006302126189624497584530893472472342386211677770438622933390921565377702969079190201428694674103605772768319804727804031137813468073150775909721634760798773319570057500245901313291818581175433330242805812045697203275994849933728216943880305350618113408938926702165145584454499681319657549621514349098148812116584965574048150020395946599015422464726086283392808484761903591568649057485995746404185247869376251891247218762536711558633002587923325738566270225797642808734972884121534713478860167714309890656574661360691359026369801576998715798534977207806501116941267548395790641325048586083614742068244739641924039173899050762374392781464900029134970401394410028302316836489398119753337082709012518225065968856253720933754688757709047852756582133227889715284307861351734988656467973158457074194877787963027475622012451970040045637357754491583978655688443202462440438496963653413159074738972656019138740010817948801295207453118302533822616849632048533548330504717322831296153621520518941539946913665576735107098257282013933809330314453494699729152007462766716088585951184604385294421128965565529854296826809077493804628026899436855463930460413555396958252413051255754688936178987263357497072080236807734735757934689653155073814638905325601179992476452603821119330876845520716891625102788697043599940953969096420099342513292657090204207589571518994833623649962159630803223497103053934418401340500832724738581417507178438614178336625170347358216867914281976409026938364829713207792160738139325106616193063837534548794359788997096813429375564000440750128404232526889876977060249824202416558797373668517106199995866648296821408103155060298436319849127105366371235493165483719357172166228038357846080410490503111033659108149759516648835693477138258494736566342920033079861855728403619238901639273791047902828153351543418925589900912449031337596623476218616475372566941719741394330936632537880868390648870683227148988538520594938359599452018894341104699199490262536401506829666487248318592070043348179595705953438342466893235043546586609645274553227465657467463245308892484341847265179290442840860736638833590222617104642761127958427699638403580440529825793772111655861059431371055047427708887587269815238392316315464304221026061891961478911016132941035495777332196525669717606282846456976253751942846496630155731579965750153519496528513677650887402046114117328878545889766398078307800505159920499919206294912608598669106094937974000282294658821056703560153990856475241398778373957603672651454506701108892109029557592110849337227682005425852035713210409532126474193920135876265435999644385393309756111942212323218608900897645895461211572437053710518424840794846391743451065210949880244964693609455330799964359204759656600913328295035297111917099081982090619591194324705612837874772122549648951087713554087620342363613525053756835504307390721542634118494641840164882963720310305941086926797584058520279381004907695855585732737428387994565732969043581944451401177792425361617761825488274076362057938245188903270665258478207772289522810732197632187051499833162367316986374397218776772324000858577592853225020877353629150231643841975632738561267864310407883990983098006431657157882375207275353762506326475687851450181041290852379914780617464069721927658960366519378045131189540188757556287458509321824027866229097461625464204196395496141266011325203652920989519887024318511945781890703385990842371526296385767408563660963291508706986563489817088252450202759486783253633577279864264239063386434892465265957578931349226453719025127400581302106470695893985810627261969511109384001428681844292671532679930769222381791675207122174133613758322682631793186293743266479404738750987708484203393824779954823692837294308023878591873667988214961825350511648113738679961776577763389254534525652178039277679451597001803076483629017025039887736409956854456754554303797921466695057562446966318815855931333713771563961266248150633687126023314320608131011238072002180963599299574271612311160724486075365036313468244636523555946272331894073283884625496672803694849751973754991875879059045402312126409261674958485535119862894746219071416348474585885030625236859240521473608607077436872051116596620910391878336699104070392487521284477728406645526511949028167711947201424520080159623509998784071549102769428714277037668195110905576615570464527213186661058727573616801663906269341164787634611381340788833529002922555007835206656726929743546240127780188584816816470162206204919252639919843005757180202679939119709904945176575085617687465132230348738370629365463213787062718958159141512331487822914897378725647224056265556458045205471405016212690277357044201612987867672907370994695962821690105391063381106561377760580892036665644934865681128815177313960203281918306799533837862530308859524695791267779917377454590201888867734705113832609734795465683039105040752792969376513906320888533347117535818171139633450766480674626730552714993927834292711800193186866037328073799098507979786232019922296941692226407628530131519674701272226534475446533606295257921201806236417940669463936659618246585432813558662029319231756316915187883230143009375790317132104515832239042673894872680807158600189787512395813182136866291220886739245669965675725462742686653109687211107916178285969660508001540987360228572972816549650144331307250489271226638230431235069431971538183048070525898648000639523182496197022070769123448040970486182488046012483435212408946648443285274917123034639782890810612824668716194159158253899931109974239861445546761112154287535845539792906584910473703267141493326351415549886829703600390473308389658430586529053060198683319871958896841525185602322297218897617023188073844319395926962289743429417881009187942258402275814690481346248368104285356445625463113337252050620954698886386660281332115805415467224986065495188712837674342736109077219256031538140149210933014649208752275260541125397598228732710573593941935961171401139659278122144490136724423884722897691143905901319481782760650210255398721441107360515747312467541979188118530558443235830530760366110380652062843207606940934879376919582520139739603710273064702483281674445249693623865381224390901431508417354146153700694188946574456802593127514466135260941996739879202233321081465915782246589685695002325246850025990524612657783776305680875779676444896768235628561976893677087815446709873762447076446843479569112902701069918284804011387428511452294532886111198608141730722856227927889373470232751158461398991173026454445694013228093740754908445218251574676206935093099663962745234310566310074243152187243077978101581065963985219161103450671593434618265543653066206335418256577167775392211412705355274810074060431663137308192955702173994186070184840843823579767100895816035596043103677923765862291201724194067565449263119996182494378514324409944731204897773624398733100830125099672633395425600752538487676279705079543332605577610848064580093041132655474114832955008685814000636217001188652700056722666487382229117031282653510990277268521807566508274222800918799324911085830733328413578513339969565035769793640249001007178981519637283693132392469306042275913238507603433478462008794281363132466224157724381692075444249216193746552180105652500898762014748634533316719010898459351725566322248002173315660197306620533782345338124374288041446152753119677725310768352773362888860044669839133372576041350270787974202925641552336927063218329329108285228115021750487658788931188655292030732940070803652688470097940405769907939490449171108135073916532940411496893811365076892317023077672920526680451391297314024145217393670007466511958938307649505042249706105773970539584796293280545672171627534792609930877478685971192208895224467857484979167894214847886467568002740359180258357878114511576620388915153187002448713620313528691972638433870883570904254131882312935968763989513504144104158799929591669946258588930259463394635325104110829471042485944142039916081117454110668789967225803132944250280555391669327498335681703962287431785594532225189988064725657248775768117231715235823070954965509792552544781171023625310765244103699877312563289594462431650839612813462756349700389944465989313790449441494105610633071831974906595910601598853456862439734824008996436763167599403826608865349704133822412181261804814249638646242445867086212201783666505623947448118489736573790406630706728705842846124484529239148415497429168534078414109130640804264522641611307357750059435245138362790420645976145367044424172251264889308697780093871122416126973010643954528100886196800477580920879422607844413883374123153625157761078698972130601343795178751890602457206703678425438110329069630410660202253928585976821492059801028662537067442086327985549299550623853377476335199253644071568244633303506751385325750464669598235044353884908739499347158210186183094173159236946173018515713462431649265581345142149759881205942963882922930558351956236719171397836468739257905861385855371179109586510487699959560139534165945297981261070661052916819881527225256037738063285756155547153952325302289547559204328895019769883718135150016282947466775521413771320765736111567631826926634556808877730500197104333192284754257130053374672826399556981696631306766825826982206134169694497503835252798384768330083617530579566688919691749783735413264426563371834991951689261199211551653670281095063542946166298668937477586640580513442845940607123234449012728155796783235897098545097611544958802159530674134695714144301617999705180809606430198260639345852750616554804846981406321284345287080534491160363637011387083151692779922014004827864921530761471051876367168420923831720268972883643753688199979081697703191922387912950816713879652465266192911269114290879134087406458371149797522327817109989056719448948820664828843336262067025531251768589867403296202837435340391985811096195772944632278835419744044337840113548835537207733963919491677461997628413926651305288854756092898101701969159307129524040497041884893581781243814766079099085102821981313534005790589708695296100036966640993705769036042085205502893557516298573912350081730027376146088794781482794927545719097293776519370993244918286547041147513154302104790417096267412635616015077209141057193959362139421487790283286978048902932108151242223175770724683756415880628945632328143074481810077423101646782971355151980860625472805659244500953909251008658731596042612243155890952728376752481278325821369872529221260221994508637236701398386369483194017346094297774702676014864771304886718693863189560202268069233166743287552358626942934206912155882298521011526199835742807713623781819473369718560230021251659565128442878253404759266541620018803780001241870212217194871348849823406623129434338429728856696120540111128086804897753896256799321792634518522093560484751156522643467073564934330927859999473066087426141068575696422512251543729264740428970895324435694606132963112663639558358187786525201288989950626572647949800076538371278086451760248576527690413086033869107626654952783358601696881274253428090680220341157265947914378918065509429936427814283583717800287555790346217246647960107007871128126225823048785957845381250437653607423463093251406551255550462737690071793732286592157625458510433862767634146166862880603336358241927670456158757222676768379596042096859085966242054351484903215728566913275089531753633553906545048563183852506371339068989809473078225010000293006755994964269567386608350061494985810705972805920356965959459737648971848005431014627663915307291404617618697117219178738980402463929279300393866339720819729358353997540635764129019296550744498463090689122034719439253274680365803471902596353040900107233061077140165851863872269289263006381064898465037970044115627244641467157233236504874568646044099743609390770873210906102841250307687154612269924521343735355115038657410889905010080942598465511056157933229498476302217996167756236538569125476921084468639225591812991676696687339298732663922843594718876013276189489875216040744736613276373349584616019299306849432081916363759405385733652613597052148079304766247120044737205244055718226530287566041294658436110482200325101025903586753286493414219454007234768750586659399599408549177390375138741861175242873068304398183353042797978491691038499582233347314251856089798204802114950229838582288714701873886982215999522571744173655555475415647609229584401015897789004422684361039321289122687024297934298563430867335295340925614869374278849790071823564191323999496122731596866423984020436280907386963393543050895666524039439169843397970231867088892023944505651035843142313554076050505912782145068005109316745957300326746510595302523042839265496882862824315695216740048247295842748823926266112658454172139687867448555860861041971388226147976473785832589707694694829504023730736095338743123130356082343460459357829704134255257583513393050308760373634503904458613981490229151890284825834157632839056313941188229019306708466679182947252837753215013448512148037661589335821044738110355186086784951957636406638646142045897667916200582081088940452355981455763651717790029207439610756380438676149592091409672204010510639055137822175982669450703386099794652206088923287794327001150074301745211219083924367344981985791084921278561925350309232250537157862197053219357724332909595608862747411835648032415603481904571802940122974157508665968993500538745790421548011865743034930519376972439529336724495163495587238028285531879093899200077627724302736729426965419022895622098141746196844231689167045947844458774976192207378398729466800371980923464973105278749263880042440594655747548155608834040201029950374360377515699886674735573628352655596690955841468246163138550541187334043717194023699297619317184127341023931112905515684137111066212457862611986678953384872807050610539534801645640753225951048659764694788444636113678616700817781964266626928797352189626260093061139321561080284078314231160330400856438357173978698376763492716335439199896300005131066374700041356346341886860885225733420896048555622352547766806578426143539523230440181566103855562965843681297509387440277618971929254482963791228127578884796588667421350749941544670438222305191285172145120515128599090582217616360900936521316052296374389391876287867116255639814334056967585572629560426303537745586048663302156947537630331624081661896990831142941415455388831721403190861915091060685481031612744980752521277927368581430768767500827552408178966725272762845842280431163551469307169410370785511524735786256427330618197912620050185591411459759950529326544895271189164333942910661709309350396946708995429249361249519072103122422679141938480796816020824325691193519076970540455189874115093347007506782003215944789663031274710881108666274575101087843526396352473231592808105643781353664054212909215834717833955613830373579826121384866651462638814147061845941561123246068627239545335390836684822939248269820347267503188631941193771744582096887806584054458956742159075709861643298557404902396589678054082708668544766903252817386472897373223174306475517986538303582041178245202871090825072763349391736264869004150788312991991737210543495626818957842573856511050696465892957018431862419502034313161558344160353808344360146067402398112530729987211053405354047792242902317181442815989844231060335485493881314142798735652983924281947605790499691905710777404370070508133145565814992522201833148718524408812740240055801865871182748022757121900599957277231979135896209472198369957924193929415394058521842699205159390455502971424356259886162317138919038857555728713203373772399387143245570859139795613375632427659751107473147054712917510676142031397100366245406699769619842743510284603374982608090379880173524287832730142456483494713892451120180440596570596415094786986525931527692742026552656988949707319872288051171868712440852549054833244859377890741664135173149559676916856460549789177404319232199800824115942460495008147645148989296982932676837010462860535785655674732582126494092143428004758954973284385190732447988144799748404391123377634038471758587067122638214599082882508868575917505299116565145227074957673625390626735077074410073827027492811574723380929820778680648950465665963060212837648017846867156584055080158768726627311907262768630100474312730448989756334722432531095453506386254195256439845755907845474076843877414712912762538545797895861676316501542730719121631620690904099688640030294453126152203642825751069885367022682650621969839805457463316253589109723037010882641221351836331998482629380634470258820980147650895320484304476005902702252262049877806961521873475318322328225107827882773126232471669053570418678546690709289606778354385320097988400745148965478883554766021661578165726555320976534563436790182211091760986777120020046257589638754753806023934913206117218471619593181252720165984946647690647510329204859726812691090452092656581498345373744019005596163802595598243673753097623904746795458463004649121722383523891923951473772465868502078913582956391609617056876145577329770523230019868537168349680310255939806751419473658094460128795672263848343047425839122122599932417727375101089341975261258118244164698330256933308312591629808932666535962049612595984330319017877278590878864892532063799668922005888025655179486279081777790890631955278873288411488714571878778833988536838219658372981320144783553173477117926636114852165936784409418002113722193534163018579872938370888453371279147495060697994231039857618508307016456012762400872954265527053642773292527496344202856137893850598239200124497399109577835462425669935244221309100777119951614133652211689064431896723695418729259322051119532414368677728624991035241640995384574557375484785055867777311162727459299613670843660988353995045922147198710889924524751655801891364472838603825917544996993328790292418610208968022557754927149065078726524205932032417234117707230618710997788881736276893821473154559899017795191921023057652530650943834917643617674869133644841251735569302030915014174486076376757700350900156219325490583416796013511377867017287761097730083476956498117853886986087597508844211137663279419807564177887047505511468863416680195038036015426510008567213284402927607739302517999794295818668517980768240195183927316786360015985553828503541336279430588797179666946131193045172502354054043356212411081641556155192268559641711358804447023068197715144947204001460346585556744386795726490801816670838549804699685510929754953326512769322188040615064529422574180443116833925860779749759371210222949327850877840575837803134845283187189279996915322399462338231782473165778319585111549817416163064196929970533104478455954490917095462022346174164699620649626327875386904290439471098687870331238678054995579570828058861753860913145863197821372634159899952786155066230575573186660099462176968974179896170484682542739349497162646776988674424296110949319972003964573449533830697516369138298354255494138843430354750750267109161783838531397885352051327259509535797204798344278689041502739641978588054139972910252279808890430350703570425175093409206097515655120103714853471401388375467332367226697676880490055692689899461125892862906067444569178577955595853315013013906273861243556450383225098200196795343207989673043996150356012176213946807164996847293604469117216259647824755190032830642702089526723780325628171886102350966741830088839234510103089788092648564257851791287424144363714733619406433611920102365874874768366044511030307530237189444538246359808597555264335167335834647234915415059556330482677602390030597684306803798447090394643320155578429790111844565102912248491595064985499045112425947951040876752877666560304703153323979503551439884024984958192914987844254780963041433030381206741914485703505229943089518096935747691423431415868766929552453421908165768389611131021013845723899945496394425898414747330446813755401480508561979203724870671559919340852705267205774890416929609824241856262411699724413294097787230842470831648472030597137436453786461204315302509822269288719657003156638186299765807406777258388071032499965992314993623074470975243130323609089969447837803945049165064165189631486216661885760705139621928061579983964201062540074339483968529853731671853164751882416110038132486876338463247114878000226135926893333128265516635986508259608022347473654682144135869509034603646419944479451507301747806666249998215643946020326051204846553591155370270568899711781104181748664694809222496826880715775728784444443678395171956913299829140915463119855970753682653426405902273296806457949217818552355325837035986939072257436789798948970045247125636858927744499708765500911098317227798731252870560288111638049352099069527046364835220427434708669496272185703535704326353149840466812573140889073138760570791419012799371575065196975626048929660859262610757971496066053696107321902195471609436573754125685968157546093975554539080606908442109516249010828886320113340223488180063073448834075976670871633921390911132207978338546767967566105103415756888740256234857165508168547618862107783706506150474321435270275025308322650983158630325729691550642602333523511247464671049894159525315453883976074987907304335383350696766713828945921395273246828647057456082114819652641733084462639243389002888550051634442118990377812484408774865874462346482015985362334173051070336634597536768865723601514041248982379664464951468534546370369935977605728409906446617105742944788681825777693390408217745626461220440032697238145904154778270753620865052492680049610292329868384376347064920621490110400856770763943963806613002355433988731478477088859016495771374259404880281512968087667146921879978132123995884263287765559291333014073774734584351215134534483820872813587197196344775451048083621770228867117365624001278932669920681259440621660201191337506859033423542339413241616270443432124128093654582479463156121000612376703212536031044408737844818186474071043039681740409560496215754060214721577370184954435902353469239465340032866980735718338930067901343226898745213453673736592774403953066398087958063034052732462908796838034875854163172287238664264120436950698388798828297103027674449952965232050298098395528965797064060816003688824767323286701915723036792244994946846789218051793954035278195565484507204085287987523257568357723471908433529883518296650121413376682453163468571945277328018827269198628176062753706969231324493116946601223987854211898215842123299565866085369223159810300918421890711164549086673007708699200457087683033963572630759475608482456084031731782128679459936023383458540383342036953057581805776767106363132101604746531077646491863105085686623827547518676501461861282652194842092824990120128148211069035512111471625018491209756826650897387515034625580646969431682619498795497365475971839286874043271837099298522951166519666155388786916385762909642135743162299047222970658674727988733235734487600760554075734735310724887694225030588269556310069103588700951731508269693301782162283113239018684023335059638159587893822333912195482380804836875143001038757136869192259200192958205000116902423451886886301535338828817964064936408471711641235287500408484590640757643179473529192995943169330344296132136716602801814044842543646113739125577479955421999457131091328290075665177326044687034092246354424953763461208536128998727774273700735787302327997124687560336852480027967383168322190832594757620796392702176236286456075877990135644444614871932502894709574436804405435497652637593170667100262753033685645914372396091304008845339486217504705381361216468568043221853368601970275878832739645426043633500239859139404796220789641802206652350429804784137932074033860375773958426871671237663871530182824225620216456444011591968334783101892344493173302872282979527503655820120668084837054868566763816066487404834576636901095098532653246480438709085991940423864888781281223060284948297978151954379079662215880256077058716876625345450939320340094112899273689829122842317824817984897749757078894072037428502076071001472944049635511292730596434864684279910402888888157527117429808137851816442754657093936931523105003751520043063635667423435671466978113558609527406237189912962316827385466086486836422713580582809707944225696845297350803259985195534053426021281333954507723111586395752742164959507930614812279271321730461101794152989613321459830624354039781109864935211779985054236731179901481881761449444362001657447855063162364107637899038092573072992387091796305169877684793895426309534428985907686963351657798179317026725887757192728298438102454533952132793553143946127216955201163590056658759645700713711306758117553556507685640016432888020655725750222329933135497393871644522730045665336855866116355111003445997430727760015491084761538178736420464685832242957577286616502663170196168591624742313762504695705258591549003932379402520811598638577318526856349318282819020692027562992634819685013873175361141197539384057543625419019424736634687287700768263520621234083222244039138884515552212452159701333385283903370720617198123240482422772421455881532643366560542001933791412297620657082334004468485667407050657208352627444806477692900391221848827286951359408374977506181409830892480175177920797939675070535433179803111602951627363403335841562774382746131392207956946320972296145971756050176481219126687115025443137319682822935428730321979333371047748123781198670101911301822094191901142888440856237721288413992426878300878266309679012658830199844803701161493097942954213482758704244978033578480394406749879840688505299464310324617278060737920856391584979112178558038944545315459038753109879937949182458035208966119136716330207166392999715227054522949629224998751337480659592215724860364670341981004415206458520289966575619560300428607483466159760961808104252388795489870347160330128961678861280932427784115297440748410710767909804393938012644812915867898246164054599270702602485505530519514982175185402821199480076889660213436636873615995295819019670111862478625305147623476593020184078940028742287261235647847251711821512230605463310945207573387935738225938704900635477626087806416422329244482469475381404839782456747561247220261968387685125653578790906520973556787691576472879711792609499568023224141697436710791341260482570268339135918726133315957207063652056512927963631426862282056713816311543013174680453107904569948776879264725526207467920973173001182327391441967099622586369782937959922235874700678564049688766805831928934751762377456829293028807371393655892056822323108471537695644828806025774247838314116504649938070071552136460921520946742397980689235442975349925052482167546507514276042509313264162446721412926096896979629146652317148242614915593292799741894664805100295680215962873446561011442834278537811074461878655846575975671629730134441712273560648542162549696148860083666946854862867551138438327930297197264110935769583558358536450395106359631709117197992536254561665802684939723384842311664307477273346811377836077645264611711618414795660096106515069657126641910725748603079221694605699096201022057301619881609969699849531358909779911654577064724182991980205862347820325556016096650239530780811031050419009060348852380327015932511194511694582801653387904888305758578047021554492982494706167716233176328215862468856828167055428300981104705097739353383046672987021689468131833913285881393993062944478820751051076762778953297996162348017213374285775590744977815162417754788696061226211329813020099126259166344313724245471790165302420176512058304908093080767762571414457373815856293183063103351506703151774738284613132724881675773610174477825644144831027350914388673322996744131405427455104507440165034172102599946688859114128547270149251948982195999099243861611925111487441761016564702564008813943250365232135510866569343275631804990470811851237097818562341690132935818672292872394377258727289511292646147196751623403658370674930878916020670919491424761715685748288151048206182613967796610410078034831058944299165859259675182505171358491273084781435910953582382120597176138910147127165876993366318976288359903801110963054303304035806301446154079548886162244436197650158631291453480655735633747838144339782995348971963400112056777470928031066159188486598572552396209790605335937467044203929319345879471911049277000922239596912820103626809003396147176483806696882114992135765997557629756160116151238516977428672408063986980802328463356792933882306901429250949943247736236487406609759576436882722790308153100386245287662499827740333360035737772659825746464340295972405851437714511210912021238740110868089651516862458611384505684086452669546778509422780205323558713298986016435726556296672187110614314824980845040628293932838614717140502101134853801462177478340696697502958358960240063821071577087030502634357975288665984927378651890442831335973907111415910694581125837037328859523420800430244266905266350797020608954234585471299170909309747439379127253595470110633055568969270726264029631516284095731451052593865490703298621550449462918515606142728080138792620980506470084861522184046429572363247703762790233673646941744721557490030171532406682031731647977604980010281297487705665710600496851590427826540951825422340081934788757865312340597557196205967358909800770411479183243311484979612218908264429713472707265583209087155737110926860460228407770958754938998606036638666066511318190423414169171382591192024057643196230419132412038784830279748904460815348953147225878418697635467443993803627408342065021686254967718603293076024067218151649044727907016744933039113195770590005597496942726694847527883617818797833106306370751708941150321448650086534316462925848840725798738282290825684279313743059403572927776448388544796391783946543076416869518811216185612085595993364319434804527504652287618840835546757768249074463888599714610901871085513351301900584512871127787748863096361254623593097368259834254150432657825058553694736547285883638594755525182345376719219836877011706614947625540275123420664873617331199505251190512502667272708146015084202256950196814355041378434329706322564168326590217614420508725049848937214781499165935216632842727468878259804890441482707868183611575394957547299649502802427684586511359663007401133369957805282718342793165459649569767832209649880775958371456446826155072600990266304887900035232183085517920926112996080215176168872780707092468527837925512254526229501203364218741192492737687430236227939286053036011694579626363507018379441194487169664846248206544099577962566705654795457669629481931709198657051622825466341926450825149102907128352577350537287827573510094930669795431642736578012593804830418024287504500700943029395224052819801546109041010303922217440212611016667897882899980757438704823478871979139588322578409450531496733036588933942288975475119442625666349575516611158037856387761501554820963365538227095585800913710169126371432101374172750087365707032932261245625348836630230160606993225470280680381961186549331161405370905154717522435033029533055760790031290722581477161812485321527554685974742967654947932455945188092544279380779895092292304340720772916005439408859240066613799799289408849023743421989752941244365189053982961893405280022420143344297546718187006455769802592575187842768187120355952353342655641560444675828765830973624771351536349271790341318018795820890594035106366406369188148236538447408237370416681981209973434336983875952119474031120063393991545612455325385706522392244060255426349551074090857879303640285691695566617633873426879763507664975433301405307843171093020165803888337850138188914379521992587056007743041687862841680884197403379130598963672980477202729975590469462620523405655473419541129599029536873505031121100585290116511722680629352087754221725251614661434254479143122601939864431594931715182131983355699562911858124958376610099279381482213533596620460144992312625990898318811245396708162648189426346233055637083043669091082988536472410884782318403473535800457104626257996234724815102389369565764684792578996547806645676960934191443522208379216777276267814088484922864568704667844679858882070257508673559515196905984936476983249701579577576527439005931927772474764470641905043524235866160024147275997335432724029257716576501967234657410148991664841770142177277684732229676539250089574887405921530933633310021507293022786836163343757660082045965372755855806024223574079114137270817685094785530050925816060070265201247364030413481336650034873492586882931603283059497442340035901958391680702887466760037304254223255438288033555158179464765250144203587499084004821016962981418689977599558192895406024057031558615318488353373376258313080613889947204825106574483039238460633866342598415387162021086303733669374816956335544824799341392030479273231362867923845203121487540327024019842737331863832435508813766245373646997829716374987602317807847321220526428666549772880328218665433648858896996421433842455260290007929151290257923907371497746566689005175230785000533158951276154203599801732644241435336607901052374166284924688750047309317029557627482949155971432438075907908607863279171312438331841064393000404932556969345659525685287966435016681531982640043393110185142936979123057531013784529860593075385981440870509732135929678918420029254795464860154049660781920213173835202096789777207517568610254313992035451007535795816254505647013612766153583652195606536512446794088645015790630691979078430259419419324547369336246659147172945661937229868776027891720423574015184363166951313148719243614600579912169206603235817487229762825054353906578168847735199722528203330966246164905696820229607784320548305770539069879722502583459148694648759040436097801962100552409334619242600989079098280445084634759480039521231872193864245173489158037474193328319359817846929781884046924928116613180743557361793989373638023745671578932621502206966862596168641033903116023330638039622712113060042564506578933198004384881132767768156658437176575976630612392464828743845199389217016232201144337802049175309062266168724415059473652331257239447262439029109326323439551754643854197611073725097047731389083914265766997033219580919685219791312203674191185758362380015974805048747796917276692327998793337424471756107243341714652020464862389968505686491905327350499455049964665498761797512792239508960928320994072805535003092553838096803881713402344631851618612954120946060752618197086021681484061516199230395815337549672153468059660564731840386352124398874787269082868591204972817139438388157766808090079151503730619275191871640425912715020983312052125680167320149498425373996619734760953479048156314296920639540010370933849673185067671650292008784437038159192794297341489975484838317699667304912946415063888623587005543533474822825562224117965500515191707357713253123989011231020285027048549480630629625055128078599913964390379124973545251183629017397541759691686405599641143250866203891787512210039400440871382450520399748849299158729812652913165809438871729655230625750156106036654160465771066070171460349192535292579340983513848786373249603768063725425524994777904180384318846976656718413064938308337182052884256196692555537149907342132160736782257018675891375270739437679199643079716626021250763305486498147447315347560435536308571720053253510195156558805448386119337118961883648756492697676601782230233631213399309095445687523548870326366401703431398982213759355366362083887142986487440208941677532049828294238002358652079138332049186338429712845269030146894092156678704841612627308289157303890965053811655244026638144735523611069969001972916092676883141579947084056521294039220591335511783225591531241209417244570169221568606412404371025419237181461001700960970064063785043430056538324439683238727699768066698569205192792613988535469187616921855251406676971610020852391744171573983783019514923388326597304970898294914098244138424168339983067209980059974651178004844913907374530166990002702148664949545976741241733031187560769644296004345745118435005476143963649802834616183809703234479665750915226780345586974552209513122817980470452809710127943884325886524930121062734951940262021534739823673948107914407981219052132385764341111600115919904540856648110070396579781392953373166582119291777798509535296175960536364965716561122655433464063973817357680948106669828324049129354655162936213725112891031543333527481665691347777902326654055419673435346907673922552769076429326661445028224501087596119255842172435612564981218311826037506078727798699378050945910285552911553367881063227827316973679941756592684822421991172508398210764978554998794280213597993045343201266122608647077298729760091050101558005754302944899766600608830012435487911987042469018181451035697435444548630107509283105264193284981529007591194798052475853394483756562062261408114510875325946581479792861566683442756194106753776583163862476565072037228584439791167739854791467255173256689740589474593518136861317711055695901789387107835245936113295952609096234219668468756160572513420059068858144388621336067254637707064829703652512846642334358060443622339175885065094748401429008285622376897970127518551120115305081313749577624506712525743459368085612131543594792839610625897807470694846278247978960390790276022571211612917080963972383778788228088446787097265523921966068359341235146382565292181376114188420222753285026257907338700779750288765110656740796550333730593804093108499718595915669458971806161172244453406813294473166324737355245013052173899718582593033089168432303420565845633667202895728115647727080974491956720685020858591454226495273936165114187517032577360318507568807863609248243939901646306027015988511511524533498669670404793431092571561748139424374721128383034902278875844165849988746202985428655947361954629710347119218941440134549603903000429689783834581858540535578429067319017376722753275222939854159686576528363782051023119320807872564083072917390793780934151400854942110933200467889187543244868990403706907702299562338845234634467953571428178256932668345696770064720527132026341723962332521158853801845145432141489829161277300955582689051865099273574168872399996128389891104112407567350943968760710510673022876838737231192886660775032958675000900921792151171279403731002658448705303574103097670452277599631808457423177384959436488971529682663078070244687786808288294808723173616573410718460865569455576895899017761718413831970968208669270275380762713247943818167121382525590085803401336511325324600267415056629898144236125207312173699637897561009467726607642685767280960721162536829255449653267959795062467619068436517479797389497515769238622995653872268837872326614124933250173392433609427305936636838015505679387119385233251563924834479934627327107346460829775108773710579288299248724047162288525459560103923798867717587486560737588866904860044552694543252451010029906908034309960556559180847929320992110109054555709784302276197475762674705114833800805045219823824154265723290759204706037567411997840313226462357294967902929795564064973926321204571274476100001616034871067398110221614774178797274942282934077429952726735878846958022004167249564386887209037706323609077630791921129275741756869718717680975179738012897420250193116485744925310492350435303369682980313488072923902837705418033303322316015348265436199321071714602831843493117926630617766759201605352666460370829290386205109554612195354768444485113897156060315054278670721733018789321438160330656961767287068357459060025514545212334680770598486722976035344748922786138936434354575096103686542725934888285382407569884848513734258290140984048232907907927043966702359555204956236010403996190617813323099627891810803616304753417305283409659953128350416108133768488538444703005387319598315730339457274645174259565266129575774073843672473808545024524624622137364693275833723252020712512266814028560842180262096543020301761174674744621719284362058911989534718677020214335559745631261399336508770497518934701361748878826661757875943836176601072255208543910066012977280308731785451666628005486890709000386559238937476498551821320803779654678567567367772893035398137988548011171732510948110405953603006634717851868708626373597111065602777504592795532081293590900581554727131800719713467947773735387445643074247152879694470781060601880523971037566720826386903088857147863965565747164040132073720912851797215977332390987733322962038926151419352010669237531612752158825042804705959042780798638144793916367201602832585706688157515601324894692627874177672710273650825850204075591966882032782065912782346987813317788502937922227553494368359872997995214569002879852929871705911494653207059563754523449672454873066713469175848942363770837002550661170093509594922642308025459004445760326476412594086365866440615316231146963354600548899111047979541903998171190307188521239070479183536508367273648302815902100894594619083345559328508655183661719517287688507518124903985424841590319871663712509398284585344733264867143658150736199067210587898704921705518664222225888119585413860391353432694497684455405894782957461237805714226414931086625260662685924434825383911097737241586051267909980961436985334181054654700950539077110935786917085247555303643112065408249533187170170945372127852832117786736901027387128570974803948397795929232015943116133838765123708605756185902682130107771507143530473702303430592067580035467769625280343173054459805327411699874307363746337688052355837728431771896593071399748567132600316799114355258784884181521401379238922533606870439557022841158506304783406832917302485869793518912239765430973248939449619955940141666353723187776430114395074520428303431323098981702635012626971544086247345691186142192569935753952256625721071672101080977900712643549067895732619961154539111538081411809810153265051175130860012697356737931103604983680193747664473237327427295255789599912858269599061530198686952791009983622349769382329709051901135082630669860096038636819904400044291785129946822671678911820522253290152043239698316995199771278644332110010763182086732364716693602822411949872462388136700241402549711271812365962158605304018516630532839383998348152549682848971396080234070376485363275337750402550632796850189896562624497300574192519014568010208829425610046125966324252393205784232444729758411992053245426532738634823366472704878751566079269942787943791689154405756371908241030555767423223695528411345158171756999285217600929656429904095136514367550828796100735698371831341201936036237295475578300053827082681341149001712212130367926801391142252278509435471628354174948581985830556114818163675451703484933445456005575923281303904974635878150460080737420827826674360684707120306598663920125195054027942027967435500140245913768865005328844316992561439122601788348400445034200168878060908857010757876865576462322420818672748438509186699771295436919466670675076208603132821204361653386614113019332310247948947942742449020518183264477166218121524456209503929832486987368732018064607411481503153658996104501704828418954897684902459684192476996066776105728304173559497770992385596050295404962689935016779699934973912382420779286793243780642283338135785962304892466147439881850086080475327905667207686029453953755941272509722225127272484717814079923314058233687029775144922060025226399074145186769209628329568623273306905913244582132221355795153449252976181706005157229195809181740234830234455573084583583180023894312317630510010557241127481689135454987664714811125262174405923553278559790667215836546701921212280011575728355671632428862072481051007180617276161518467622241524686771876558412916327391305258268255594156535489756872235426916025763980135371761585325822204719237679354978071578240541275376618510517883556687799439228258351535807371630852008738846460220284377386632833106413372178949405337486379499189337975301816845314907156168931596814767167262528262339095785107698041215169536667551208497271127874662713010049558094588688016504944185720089790038240143080946116211193567042236727415248226132089671132788533833056666247102789157907855677543611958286717542158300871137540686416957675385799199628128462436221876386255671077706306913045689729823282949379412352664531662564246859216183726853917550933784663191664728618210391883807503890815877509160348560430489064100793697808178956126746539165420711808478755444158624729384778071638163009490576173330411091176592039594245109851649423788021332615832870685838727438678662687053017500205637135214973715017714289008230356234582382068003459175885068759295537496651360292486151019464761978491916040879529177168137455943709204727998573195067824220232986731898684223957687405352026912702523164321347482796163968490026353900600997556826555859495850867323639041471716964816281080837440875998041723986131556200692802334965297020445283860664438270954402478480188354598617916150734007285432748672738752689941818503982096760361782881795079028382368652838183497171482859366633961588775951271310336675509370135459125489708212523566792207209638631903589249046347092148606379548906891496609615484298744326281995255889319501737253010748249603429384883413366069159088570794764432327000158077745071037782636398447425349501240112200992162365751541746206496528929750748618968075868347198789334276739875811633486697621909418083601015243203855780128138382260858031553443816800427630197296089210051523964521532632784680113799633241289068209932543232123027495352094944741694901599221599348159603795257580774034459223803581745711427797093211548707404428506370503515345960911736323426258382205511264864515193859857050528969702904708433943191039576898630787852781241440275480621742098815559857235742919750977276341809371276992203432663592812059350511062854594845236902147511156458271570753434614697200444716120997821068257125327865632777036758404789062342306649997574087822806424302770798565226296719826118623656804516281413700143654684531382703560179450949069323030811126717840060776597111360557977096406716863852721492595992956478802486980220055798471834783000638175050442014541921143694756684711958665584497615270129763349467783181551940895967028855452285424460861515842493213040654527747389928773655100563650473073018838593701671745323159459325992496554809900913642014295793476699647263150837830015774434395459923091430505384272136806461188734155774194792326417110683813484228295386506973966792864108503124625824166949882997065191024645050481695109036336694002882789471347259569903628821906135173783265781374351818556091793971719834171802930693951744455400573798902477419936303116232954225811652996876586051690714757259260246180035575882903511096011770393435759329339568655410524113126992496570827869298138149222069698664372486851448945622893943702394435692265440551001630560560111596059954478470556407670374775707379385434631037155924823167144303362342072786654909006040108650805115638929854802239241942941115693396252135312958298708600790667594516087506953300214576087127280006660867988201228607320250726463617841477339058821077233684372539881779677357137907169115583960383851006607535774148216309284767814585381357034328433562451607657797038835645251477980808117025806617385356426156330190552587549892367867572192665215037202147743964820152181377086076255735925579871724574826763671217516495762482749382168029775700481671859453691945929598965463624718807469904968811377830582394833615829360323164257719572565622721363430573706528819522691006917777431029017063366017213615773102838495155606993483420889631954530595768225232342993813595713745275572976341091808111606502220818573281561540979528996978418488040588387428783857792955855896730596674051214258638207802029258277023818630865982505836631727141874424198782656095605164584053174857588399667904754647614484367645404879644494129763084949682600277828242219302396805050247886681408519846936784248158641902476501163222502513047284671248396462200030016431998550705676247165020315800994642203256533033240231813223862347920784455512667134591053482638006304720725767629928387398620335223626243788419453203846856722158770251627035035122074259082551106639618465319545829929589857241088611576766001217359676178451910188922195045815351568267930229909123340237369813094943115766105283223288574068106701751678933497644752781636078321658976225209230612569714294588575403234252613896027236964851699736394119838939796358037771768053221748630009965132900611580701573662940549867862380358884983080438919303302122510278713180334714015467812551245311991571855302376997581057689044467929844267939886601839492546012309878790614351504567281810209436056531005340232838711674226482611789218236431989077254578679589142828274655878791046988536767382849157919367820249576027642698010937480542883961010640783137824025560081794759050766955838273699348956125725523622251070720264685406379994694289643021601561528111569690965080861144825907563170931682340371401478871849284075611385324747423132862135926409317891339770931180960330309098004814944253089678279099403175365826828992281968700902619372216727970952879263111763269332333641273249253810497546245481917318067497898719354541289503511244946153379509434402166336045857295133968870789555830313808649263028440772234046458229202680317262158302294774782460110348738269111851013577784821138493847101738263558253500247243508959745785123182589106055910161509084438812445858340413654468406370797478939635722324285695268133970275371008553583423990776094985397591058752008113935717356685500282389413646502850814989263057038350501365582126983226822061466854045969226551282634951501931394488230736321866656423744141019161768488612301006327530628060200627504925777783469916465727464137487616213905143271595856728482077305819588982241801051523550607420634184281914256483187962139857934368672964812350196923722409097609080552852302833051383946695596895014554284042040084453979546665275544575498188461956885645697512762297346312657217715475525250723543634236095758445706742511629980982025618580067403657282015969170077405050023633873322652812154818751905724802032632681794391200213331496363967101183478171851473294157406181771163475333310389518602731440352263489816828305405400359873675987265976818580159494675012577777343304396217134658030723530878702892312162772770083154141788680073608839125660797361909251453827817272448197314446187911300866940158728121633132518721648929495087307168953856617748084407211597075324156881861136728739026191214574373840782709699874733200574057008981564322758077668990883389495130293262219614927775578122715974979826277103381882559142521946466978233782132507910496939498127795328781828275514085718042321698014815121123713865360991618306468897033426167867810848037287437517308264977790158275206632576854995370448718279477404590474479139292195515230005808644379941729936453296759741854722203567796976883771381440984999790593819330849247942291219085430435956202355616192538027701294498895469109251474630282167677831248086926198386313991005696529720000585162640823768722307713470695482537679833379869894127889487742799224605352213093184145844181332767904098226520635045016920381691134796325494150081358697532763216319958650673454261227576922341211046489498409514618829670441728301896876717587289005928090512857787072317640012490885031589234638296570067839922045482452475870541477471820639276329432486552583057616672776087872679702148486293817610368081448905578202850806530026791051202923332883860483573152744266011964589375294942112599688034221058602562296613347997798581342798813382027869959331618021165020789812366486366112076505217621303290184997176223129830065662299736102305171937659274605344547543344433322524910076107122631366690704427797912103125510870540734659339479300616703718604943398406636988355388258959587643498451477098757279834191513379035682795432929468987085219607650373777578550424177078919788759736474444510354228812025276920181110440079926457240241903231058169723331894154528614015339381844449530550481011813761393913554358946529748497185181251290575456146689828858820952618119537944958214165585786259346216001414180209063878642908615076067573401139243851249260965954779868085731630266569767682717100578626044341967457683861190007045931567218534093355203230051227867458518375181600079322281004201242254798712073508441773285414084152003930553196409003248746797397027732437055853856945916809905861941780364602529483793619800529203374583311492068249229152789515591944140043644921491254739164929130388435330620047683080613978026517891274723399706613809628025155216377335061688895645951095740553463114393110225213169104875168743180493693583912710035227192155395960208141096066361409045051171641299862745446876365551632544343551267490411000349206627851630307635074008186727613840065288569408031288237017947183373815344298859965570731644941001029568049222366883678680582238305920789129002893040957827171544618556794251156957357619492810891367719941225082652293259986675666366563321563168523308844595603005142084010980786248760976397402450594763415298166841485528432667151120068632178986416182244109952150864911404180684754194498238704340470360629516873329652104965518651610299452539902370309879789856504023950053969011529556210740535744022588609662486311341007199950516688568312074095820490343557682423877696444586998556934774202268826946406552391237258064668563704069301609320015980117893494130267643247421834792774388586905691429039115340552771538682544473347493428668987634761407125958978345472795665302443195078106222011254098385167280313623166713227426678031467928913180059678371115626961271441948951710613429491666859599186577851136099100287475386429072040480409730000224662293519769593761088703219894582060664568240904481242847745555120495052806847885871903846157123814470697301964865733659132167526387924563687840650251194992017053894966824011913419651722694888174363431042224307062603241658590079928451295089937206344380604855597325836781211874590381651768340504018385497301383899112644322533165410591497196718932314652577660053418168299493111316601309408995699969651195539009699529967844027915726164777646150607507248658845485426185264465919146100443190095735984060318144232809466013325559783864938579645374530636585650837405548676016846079055651473076257618552691832365327478224967941163851395508738689300198257268333608695630634309379868233365261328135783891465883836343401648182422513201012187446850728191845296108814796245623443590778451526986443893174893924690884124879819697518826728206541406129807250984003289860966928321926095354279947354227479127862275798697575548330354233560201474104140996842305639560959992765233622039396715913564812562983207078497922943466113477012393982745224511861089265001849356536012014961611210713171373964641096638302254177237140750041691372757947450348120292581959096501277883758736731837341767420314972481272238769595911298904589702886404927659447482061762870746697232602111051912489638032644613130210822219960335061862008798906594493918631650915424618356654191556056019131112414464981667869551953792924293295519396302434369639253600566227376197932995188178274148530013666547419589499566459855478411998087135476881046965067308617016345829069995882227800080961614030447216771427141636588356879862374915359486130337654983288194000964948566033070805025212426043962815423443905721771313796639039912760582964613951470968708078852505986206382208757583804340599229076031123996260223472143751960300504223712119338208526945498433459491906366139295340973641631468068174256707931473141426573383085185432925870310305121850790892397014789879479216248910214845584783059189678791014254941357400630583393945778787755120149270117297172740291745008506898587693223973494752551561393903376642140191939920173069917450013748795650709080675448330079978325598729577983787149230117422750511015426574553478243763717214052742445713381876505690419822113586229504139478801689479057026876275895362144612302743314752339634338583764524811506038770598848686454030239250820690431511055788781260204846379802272941283922461545204002752892666781396067830884020560176774469219190796998537939914888169118235379554726400741801126789924223367170704992644085526341747646537153413670365086538455686371673876982830117132371714305161073203942912730700117852358919315349516200911216369040799944043723285044275648499748682751996496525342883787427801775769016117255970392119638464909494189711410343982230559734207899570175668019101125732668046449745315736118696173130334434742491946039411925857457740890262142428858530653939213279681782467377001710753423541374897689453263390724694054678299636882094020597643226880821360765661840609395494647212089531819898151531974307319798647843264210252501561435523370040567835764737556743308274537887783756300721466444622095950796716373398057909993196782979945585130021028983608346072101893776850132563697172023323304341874826425406454573590017095074376166990930178884386929887138616886061585744614781532844222156348680117451668636853371653137135170197358822984618509908717393761175362353260468239046230847125776117257233903473125548755079835942503796602283947857406788333435151296572180374438942841965677160307618183443663694051563299309987083857918087592543356809473396933414318136081151275248643183392265061589444313516889630913724664585004371590880706791598004631716705162550935661690257767459124859832038950547550921652380755509550291590226773823110788489495035923105344162853570937428998004242714190786169180458091720384001210482302001653765905349381327781272742065392094843006749530361380921825911986312129774554377763993256604164409813828220617213757188075257346731477461783876464967976839617113434110410686085918227395144401339833705435744868799390104457881882089246539952548563964588047000118616598967760161763365554218043766489497345328299712638358718224644704648968782740053538264454400671989712373075106428078058212216062191707484455134129952240073464155876240069883430638801201286642401415270054705176594009219496785902270421346534329411638993681379627874302588081777888742812374115946238346223902681328334845155735976085073226379330997464430345110642491592912785725370084970009533326542465237233588072370836929186143157982365413140278346558826098169447077568676739290415901312933252329176880033693715121764924469551667928347854054828512214203675736308836119627773076138391746301658359203653751844211163457371773873059964811427362455530467513713084226525805697365442812582589426041022758483400078194727653271999149731067167550889121116408925606134129845632862569780223576261112060650310509258030073633464911963593466815568778254018916541135498860996597082918084219416464643419931423746733817559755135833171705601959489274145257320728076372703965629895282914214443364118743250958614747007580782576898770538044942017637229462248321410861451168036932642438555391939692606866754185361752076750416824671282438887158489941003651476579389824770507073297243935269565843730161894655429350369194785246678125675774691775835937695929987102925218208436299267471592089020094127759634055297553920198926034539119277154035879468187331564091324665226842144203444345215127869191358224128583656569022079671141191359696888545876945408237773769240841788724471207984699329204231882848581986367780527013283757497180219794486070889094471077246722670171797110416279597457735903570423688600913697534135010610900696784019513099697972189985195196176741715242421216792124958339903005498518737932123055914986809472251676298818518639005666461585214078803880180615375504417582754792794609353297269196632689430020975900010836284318279055774967104625695768187284508602690736983117016832711110033627361956613196158072641052881539103468322060795676407339604481951145887885491346869420425499264470958004792503668371170921653828642976395356243871683590003865516837587594189896611838371096201469093946208432574090694763718198570120814771237106274881439821194574688627136173112486315881461119505341181474328289162946988914292519747611908228623455570229297977537976417962918779219926541253126501090956175227658334085719237071447663929544532714590617832500446038528015358028283368930810065575129644752332183253951284313899531260799977908719303163030044311126579056748563576794465233209426602811256194488036336315119780577053705172114362307512382613626473225294783014511825102117298237620608839851906931616629128572725989110686564879660594752646409132380246894405668575172414748381303824453744403209091226398688338169526691793088975884009776983952996361426661760291497772064179515528230043118534994315551455983376598581559182896173628052395233731953254758895077370106877199833424531577873124011958624928167976197228551940394490028683060172508069838034389193467324353724135977311790597624913779238961081401253584891001819539935342019507036060367591033276941417797938568146548603430333236043343031381335202735840436964669949978786255959937831019539015925400172241259193964316282307512762254604561234858316887662092705201130019976911702924444869344233278034641911999949807679041147742139816644482920086377979676535147889130793362756889195564314420515228563819396389427373371412214314823616165373902691050829159045576737791222809042238636672953907605777849504622913819586539236432422695047381239023868694562169877661612261781147551937834164837275045606890870166689967384045658761755614344981698695995016681356049250796792344822133467403243858029881074998799912012541380694372824012465078976786320531733155324622817883184481638774258268921351764437498517238474426770659479434989340920764965983402401868421281640861122130614124934792946588188899785155774979800737277724228840210674394544657810817235465143186308535840795442086681446715846812737791956893961234945142907793504413755836490179555270501819506152999329904653767029195216251911711025389762537504600795665403082237152596640658247041937645258300593965624199677929066408744879409878151004859054658770974934622289609892562784048763450406558344827544986901488287252998153485339176847381650923010576488522585908840908456649988806810610301838410590788449495256796314655057688022061493225172105376356539241582735158097283542131037746219857524691020314237178964629855926798044581902905334971900151376916021787482145275860480298947049586988157529906920341956613574803779367777069074781143771902908309454129216849756673263193963918874720021007068362025267378286203594008123660478121773056169221532499225608272883656277776606354457499656546290397346714170297457061345552432152118402585354543593148311427733857349527422954634093591119913129976471638130818981576299738500427889293687238255884094784941127882905123134652285544982905228673313791659460554682373072673389737887284772302357023986859124820191451498855421646138654564470019176830700347186142629147921943178295681387339731422702401442014838447395344351022801624893183070806671900513789697888467464368040108893289315162485611404998401290953927200600176294996775216689214090125564494306784483223604916102636978604543442879277112208779871836735621925050356868615969178022880332072741241385861997808717364869379943838246159821178465918997177753491552429596282347813331624096814368968570150267245354103278845345767167393719630875565936961208415913925190334236693831666194076043398853418667760535625943836200714933745319569166224061386582119856693252077572594703641320717581137080093086806485217866174491547715741831829701842201208179806296044168542656023658276973582711371809899610820186380607448292820791527567378866197669589503098011894376345302519210532169251382187302300825271535017419441066506825693228499185714830771635746697847960149377107722017133170611269624755224285944044945084602435826763711796421717051646573625400150133355974949429595043677494772012433622450239623860622906780935735932067330112395783887597220251626355696500325930940031646205275956837013116563770719663874464119298586314738638661185728222575395068393754961673403327068468883586819244741037955246058240202837745128651571355621828153983143768344378381098603873322665267540612338783110664051367041880546757282569945871585913540213268525717965422160208292597405488128568159101852707568812337433738214515057820600519206150584962935459028727574161531038057437974246820002523126962535830580703010916692907385698878797383647166387919326686279669983304539096690256413847698755523245829540974079177449932753030837586412215846750565419774376389633034909378815726530894550188655121474258001819899672376014138618736872552748977721707766226520718628585931199902211417464522690949798135123121736469166601218070831233041216050035385215650935958051226648044774252667248446942110728426279072786510974261389151855295502791358142008983346388750641367624532080166038486325004077114617210647506986174643698808976234817604862010391295060158439621263355359301187421303790230574083907768906456602349294270187387308034685489051842987355984754173960272547943487106117723842407643904999761693317154942754382307074533346722359791432309820660046064336905529761500662133345772513890650347507210517865805965885694237534550725984940048178610672372629682382292748753009221259600570610365712586237578245643241610873311007799996911503771152437714884419869390598824256636766262137958872117894107379060993941477814469227379459107363558720950890110662022478221175592974015835790960525137545763804943683100248284802739569681372513064954709762682566405385488233515094233385916329425579834042142457854870754016574787750811115626204408252814148556110679156733144896689685093396367741295137355599625746827668573048425682824670005000588841203840082096473054968659933796299783810756062266994778355572675250359870604923140262754553410170706805930361475549464762660454889526012685280510757092067409469633375044597448282648451647207262969653533326842713983461589540543770776758435656018806559009869878450263582525391261348102390634432702774072219301510380348970557956977687520058589763137550170656066891714948662032116726082036765921832185008286925147244306492531117901601844081072767201196175819448447198195972013434170203516208714416510834542211005990432140772474570401326616869871311033620035052316743030587497899500429005184398276762936879014526035773033467182034891806728698205197531609231967525334688670888411582991981880043542332924820778628896599734144470641396737744185201695497791407325566870206534200819390722663213778664548207487549746667550054879980242381449235017080120321574864219089836666326264749880071294526664862746513544053766982154624982652264184883799155247896820637704536122630028817665582261929519516877427747112383667966862616479746704077659622334132173397388431940232164587263514233159308438507370364595181721282433803851169269229885719133348911239260940354908739772844712729753300322445332546279879056743749155938524213802439780065597284010281107981402829102424981568423309742383452827485332100083902585243181575561102820598260985441205505128408847693972733387215797767829183271828084380376220694423718789214927775080530049898687238941733888844601060697310933831805139724774724297858634887312927084723915239644471352809885782604802414537281257609120730921019615971612488531662329530438736796724785830972669572164298506784291797291979902102916079905131451036540239434488669109423565653875667677390068467594569176661774823972098657495193625262757852132159880970803013430938001497172812439606145143650117141581650853105843694675592152857454981515568586702992919621120382236435103423921692530789804587620634594848050320086204124554167254199379406763432215353432632195418659341286175786576200560629149757924693590796445699256832700711761685692231427900255261321896468815725844872177367115956313747558145071272167275566472904576425579231733257440744412918863101931655186064599936873260128885230920057359174457744374810866377507328911308163752215144635496382154055875345757293345313360888469731101563218563535814839150826926460980282563912128139558643534352853352170161082464514971474216150719361558002844858042003783431360088734248627484287065337364887381429836234223090238006840429487855268908572271053446122032677688455660300898285038678676673609600458753046573167865042499973156313009515711024695123965667030048466658664926612968117478615033628455950217254174492902537188020194443211734906499217657221161776791967351064138525595697949010925182993433664608606217407738754201795475604949326101570716995702953737663496634324750238686606306876429849619553020753368403858340189304119025759460305101768124578354987077208123769823679228118304513131290880427485185860642284623896152906085741480040378588926545275091572959405813875994301017576359401838353605136627539151169392742064823899463794591074077825456735769132069649331105725077872167602704601613539299533114975337338600684227906924202031445027752987842975161004321496909744578754185652707727164138096843795143488624772225541863741876892453715339237001006744470949400990726155457710720810310107003711821042020995612553688439699119412128344792105327656689909335103327748740183068214822950455184247470259743109087830135366653010589130633534285418604388960293770764290535286466467229128618396288227752633346079965675333861787983872777941775216585814263648488060652058876731405388379407566551516442952744203963879687539897794082439227626707329144881654987637872624425545068889556358175323458702690263334147989080145565271932749870108239271125181918949820686625082984865521679044326016468492793655372511738974092137075149354503163956505707161087270997798400800179286019286241891454782255653749805084654564316448778237146726348882843440827560574000200200105841779028489442267295894598439310971770525701782537406211071032686154091470505166080437301465369218299426391993750748337520082718632779834041042663644900683378104293069093167238151581140105462644700260594894312297143600601438668775401514873430111405625683835774102397376436183093594197520173885943834100952501557386671167385776751469848448227966160982332173076064218109248404858509596173312197041970854073910968222492767323001828513146834771259842065480405179029825486489645175933965095081830988067480751364929922274205908262121341096009276108459898531068322657763312225954975729290789311472742972262726531589267190782330646824190378074048273598117597014395145663228402782427579267744622112000999502641155526739169125118729271804516134274592150352613297650032657576459819217572156439686657494339918911741146809740349324475581357137876746652315163294072526993823303391261595215239198935523159020690711998854172826641536859654987318172276489144563274861508844042937540168312818243194343387440184806739104441205692447358895044980792340476137128380220317136753781810459279585381675292229705204974699784963555690930042644443071012689489579266286923292247904698447275694651195883287289489428622756849606931262457199821969479510993505343223053711729092515344464722452215368479281094371641667255168245383257078565773572358309737849423397484508667384994437842124776733147131659813841650860706399828264157049897448335241466449230242734057500530662065801474040514156085946760534939580423623976527179150268455812818578459115859403933616287579672577320529475631985938916916692488851631673554745833501863175234656641446948835040625722930105700970191763328429883922079707178477859171790727156667046719275536731055168789938228480298844109411348515390844309547745301843597236735901461385877045422533361118680351351711272924022691018640203993656239071616801570554925634888822089743129057689388620131387884370140524696788372439927037733538107231902580171118607750119632014706752539244662770965864526783040868340884334873271663297232152080362645490437741495983116460534185644150840314094632999171119789485207931155348180836600122295149480312356766847643154684341462141136602186138189182454881590613763799101301925379226332740299566790001903921507425812439693664076340623520632672342480313510680757690482471947425188414897484103321780407971489117352272762963868050499200723866559230785390660571468416765982538314945445657505382437312843593198538000960278662148328276384452466436136053976946802784334076613870660912505136929084891409070717673665629859682755918324270254914812721341570129183315165867535385903100117580228034766829856431067757141101148112538202831748266706419227656262450202484800567570749236321925009073654499762666069061458770466881636696937424642971597668573818026751887086397187393337598519000939381938173819218512446419836025494501563159248096794748311509480844582230794669740220909272218518479083169990598138082552195601141743421952370302434632537319012938708576631141748740660523522126491535574841217724953713212078371579409944061982746125718215077507325084580362374207861503716966918630878097264909852691463235816350983792272971357002770491859668664408071739605467926440616416071651269696029389105939658871973715128853797005325760314163328654898979982804102676128582036304467688723617560889011734573431358321242477335144799429255635984582058766933909925939955193400476101833266605058160419267109934466601692564909685842934378720496406564486343707996509248900536473801406959168540273788702142501767732591305683985612732560021555677225897652175793352971871407214487140365368955911111906518747473575442618124103500059304827794113456753144283785825112510806463684393909888517200698381238143250076432724893928173155831162815383722047459666367790026480433866154344474257241409410777570381634264775835891955863027777455014791854517163747731577741111267304750292686807160536469874154700179966342725913924612154124403506470520290967748706152398263603937843227462545209049890313225686060462653425820277422249150950641138854018333910061763898892480828043331857239843975765751471677389265722916773128882341260675278968732335568054682702119729461072544773147560327261388245149263520356680560289151083117221181910128040712961361666877894169102312031746003908886117740303796741521134054833015121629527555023159524595347930880609962935094473437803389316987880311945672220899436081022914648194609116891508281882623740907849731776188188779212005530467759908114266033275800988116892734304889140722767050020020334590841908960859155938899906846809019499199797056264621724628757555197393314327788541364849552074704023461122815934068362202333476556794195637691771348555558288197285160330385131424495127571643495794599672696863654898307556290053110194138356825997655817913805121667626911142399060424259456742425611764669009977933404230958688111157750675688584797433531979733227921039346671272364580421390310502988853095185388908457545035705591854575601490168425429002828020497610336652216017887172324795354305042364991967973430895695193870992641685956749525956407062757959504175643743625875723388193229052578174354839214380845163963480907679484153833820156548144335185544912137220215114693923180551281751085922083239067987722821524356847821323909195772112728477089187148044880813577901710807621455717188761750459029375580595774993292798637806023236844241943783981448116097152032015929496966897741142613111940933922259117663102303167087526314831982510464476703845351517385006268817417337295841951831583852677613593584644882320358911912757929600994533773486258709645473487257657974444686469847636062407222016318775889833413192976962156432869192513760110556213254567924445434313921887896393307462201018352979254109863383439795588359859158884953024203218710832489071633804756698645254216191636300539238854170075371775508694166093711565606504954758594155276341709219685448815621427846830293473775551611099209950705752827723965744582195228165992148377969859842045314194397536055246085089097818815004684386823040131132362059317010328636798106204114286701941269343910537147608733455887609197785843251727102837249832142322229101076309507000267243348602937712758635330558520897678597543964950412209474316458357839362856369952678779730645719994019479016950094838442285778675109395475280717505517662279205628292607589499050310585932388207652613625212880801099699869870882322763595215390240824259094823823914798375781954272937443760753392954166998941806833461925453608246229047655252214669438170941747130769324931512354148856769700449980197372546430168572881421788838657542015336039724405020312774850684805431352908262030807331842853362028620066459447644527908774473136574286327243431302598066757447100491306109702900356690824479194918709967150958754892250109047136951333569352665030475392064636907041433973493877936881287806915773852280204381927327451956680973755734053789464666511275013997768093269853823922952594944298773233235837845100960419423220618903968838541448919473039724868034387119464233298508976604273604944914822956202574017019198674856751748416865409962198820583264907025098596361115545936409000348389097805216928913598654292609795015790008632543754721274962873501811732781542370719608456807924913165009625852052306368783994292917255027246750492867063850831414112720465787553285618823103497198086969198400791268338839866542921162686957809707588702391117305020705985032059410127863093598541171483552819338400570388758395470355224347860361417018781893517927642409254858442755337381870500299519495697386028436888364644406193765374478390729089899386838764753107955798204765640635930875346516233517548709466561254131192205199796664413521318905829609175467990303942767762670123260316900031725793229729621228803119616793429275002054155291257935110323841342311786942702676502330850696927181667639085084283906453437496069700155939749136493436075350706931274632022141452444465834357343264268682200291853241873266024814032782430461767625085228516753758064959581117172905778439064741394265314634746306442082001978037860432714841262485714958688372533946633545571280504471629630590422070531753870490997034003056520491225337740841939054137623774601893592758670829304132599899957732692296835704820051445853679192256390882052295853883826978933792762399249166774527046876517988445012014119671170172310763121106054963104356076190110331290712813678775681134933762280473312949462603453692052841158784424805334471175553071533429871670802979093749216617467925286764098125127008753366446187085990213541741343532808927870747951823787616044494766937227676292742122253630349439068287670091789691259464149069818421009693058412746803739614448394245520597796634874982996097396761575906161603801313699918906994321363606677399858911405918042521364415553382953313720514019819171832812734362849921496895639423483455302209791519346140460369833580275598005214147299385320283368457541171674439176725050131138101447184371659519766624949742659279412755373215808997437001124420723456038530193700170599714265044362999372327116589738839979584375193959109439738120772528913143171342309520221381635649894705064517007757189920290222723673708207747340075092499004993699843626821432415613505419786159940650281649773711068159329166633991221887901161562184839626666187847127019745398600730377888242742453103508614282483583611630854429763412280542774542063274076193371656132765528566768780726172162091372886252679760628773981632672654546486952781530155469857867272948157993831306310842916223045424407279735854888887513740462415222350867540005626744457955434501337253036053025734636536843037949891555198201555255891817011720115301602047851670898748001039110266411516704274245314224031787723223277118612521319416435324153174122269167670101132585620494727777532286585285732643265440133480704623328207532262499555808198804958750634124510367937280340543600884787896075919174940382126321892706164202077486583263277190272672720894742173147743950456958560211773893881852829327887058091712276173733078133823990271164888156963352136518556434823189431871970590484396144810219123648978604129183732421947036462184337118003896528045475429424144143006974248077292985623106752245658269226339324742136326269891932134969646532463522432638789163424902633653934261410017029861016207314908502579383430958352012730277420430231683353558791335894656679611260332469022562245018173252574679870944438902733866860593241279451192401274687502966310330026457093729546065048386410338343975791406052755079044293852074865241910098769651709632148809251977427370455638931700778762917195345033803477609199934841566098413099054910324669603416943944400400072029228528558742674146258982512152278748264830843690726074947586793676402987774340278466151929950975860587318156854081360717612137923121912372656187148189003592979894520870685801594632044065836903495843112169842878445380008845031126099789553468687393520417331055239838568289272688893724874425620074984504041019706218032210693497982429024119500683613138018858520019247078786193351946982789028326081086761982899539691584885693658712964466037126725337108243952042153161227673054069637378887603910651951071532505815383335995344955117765203586728335104736775046785795609348610754299599682605016362360769048195205455819454913563274903826924363904784560875595273659273800117284813371426159108019571513150738845949272359183402348771428001372862979073113552018049157035245136448262582509767129360872471017890124968196671723333258477043940351877890455356212039651611835644186925216864716491570350371019878594172022309926061565478920529118261383566618299523134364926704330074982692564383301673409454257300585425242742881602632191751913681878058032788703566511427779506051941532897128863474747014575114482297770764539579263434725079927822129433641329662755105951008554631273952925955941327622248996136404581381786416687545013980864003210122391832524248349123226461976412167613971237340780402913604304734142036611454085824417046101249772161048905776904432603943979622311804159627818186163942205263141524104258480659815779115528680390253468772446495815842203625350475438857472059211663622667006462741279934410838697829067887156439368941690808560388158877108737265161111432401263540589872252631682643128009041008885562371065837208262614642268270405395078839679240855119850674141515276890849166263472984372520805434282674840409009368875765226335341388412092994403590553247146803301080306466357228863443354105994566724902147045764258808849827561424682834390060153565527687301891548970839931826903266321091109088680983417525415335395500092712942302555765032303596194510925701068498666995086020662796822201087072477276284524160292506165474545220159995314777979655892074468090759646845049710758334917859072155312394814981092776069373385141547891688069959129143245258277062942742221895511650750587218520628653196359305148482731621360232401414784684228945220138719573163283600535226591239466030272027036673561056578886741897646115076467369356160893092182186615662293324130193482511358588094425273269192987709037713063938486035441585474138233240402119019527607963254258432423768421610562644120474167812751006952734615004132554935498302274279210169128375424483028981488276051028667066511256537043043481276304138399000873327982114062653426075448812429297884580624745668993475423240872822475311688710057625281973818445820556067700248303467408094607741947339820979007466302492835864848920314133202976284934858165290436324508528423819743284441658403997995344736831097261591825004630348140634025668886700237857875999313041550046019656030093663254694383660909659937385384106205790168526698512644623391755551985809564815615749721867087442618031831847456991778870625863610553325174675654328890274985444638493704379895571581304223988548444945054050668202837558824295642963925860879015503145690354686334998657430596020793428873923277742309817204054722053420977073762651498286429980443292672896742728475123132704619539210378973353291811623148728552504029074764536271894939696382816000490248731969446335494645646745689381168533191987144900445513226881883731502671740228490841440218274496012856254593865951203671315938188987574532349233501256782245764354023011958890033897774226863082265201451910964498366521415238991769099886627824774476439408399972141847258118060892881321036905283092040648117203329022913343893568737882380843786235998869561272066580064004861658427175227544515169153111414439365257928913205243124983553709200656848737407478649460934757870320591094383116322548446142619506620626402732702665650203747476690248847789478622026873926400174915461236592226871525123741686788702103756703098777609671723015761721817336270150655342574381379857762328436196949796066235024539672669458037324728415435914789697598519840749988675410435417624124873054739928081018107250030067876640075212141657429489858585473465683398508374589223081338000894616509963238257577568637751449977489305777475203833718279529966629777327610476062191764055439572281750025347284672107275227357959237622363796117082476696776158760601509494785167443372427415482535054310789742638489992940358842783736055057534980219964927416030054877428066415287154684840892181738377456622354859081355059995581559051832941739008295091271951165840209663101695178019686440970099638234272101912094787899108208392759940115763637771812172047344213922793444766725909652638553708731973711651003634590203130763155939766530556891205239497531599064696022394910479767283233139098871542202311566961235026667184402851323967562994785274449752835023739625723250008644936767567427476776228232479493190069653879940256279670681417279312791676581458603152038707240312688245767481018223583459419456052666275539373582615463987360722877648741442658439205927530754753831250783426194728005034148027727734640215868038966936820341380627215295326880580592104577257028429989131309811133587971514404610552011571154668416785768839895024547581641304411166868706694639450238301535666196818694589484575508711529413031610191195923724779072725244784943378009547457906199176985417051347849471167371759155012203859168146545886793837902477979293528756444662534165893339611094805515906759145016860136357581749308773421872583748354653383105345978457845573995861558004840872830499292549779588173728136188482220468474643971369396521627518641779562708156246397190915954996584185198601119224193635934659061643354705478894609632204552584720137927117218417740180749711348177857169423482681698829894990329598215053533460731724810046338695798524472245709098847511022067070363445446358525072765549450971696601340122117453992797694117193521547081594731863114693917591906213982214276192762178139747620399180963175344371196293575505809098676089861598074490932782021695333802263085176865669374150049464856994296199361367852541272434264697545194857120848036862807777415143460801976693562389542878902666197953324955630904568985263372839425339340920488316879228903784765137628013516543823863385709981336250503142351595902949869625316877958613037365465350175856165749050757393035819968544730844859950546584593676114731594823286346883562032934192047213955393244456084538177110330155221932434455946884805623735356335600186910806568100156119614591159485028801864282671500460606403874377312247421222728353491360995011487635476092028863193480059243396731901118999091322576989753553338268010265733405708870058339964165125789257157866293551537010734025886943588423860684736299475981389832222830188516843123886494626795977211131522070055475855994728903765959563837643292938823900586395941914068624770947388381405726311745855051657367837151847396948627800523381881344935067730815591123528017427716417033114099293261389729472744377733180049180851582626796817742279940937763719738192651242523219551093708345780122767731058057486887362986218806635074224221308869502508179826207266556851273803217774234022392127971739681106040052745472937742358896295504747954788210765739534298031078309911261035295920449788467522881495054253382645219135257129485874348057233508732361731289875096327779504170458280889540411656205170773902799721599231887325210315266551049438124031441937870899160299611213441520435410011853743977401072886729774725006869244861054629407744558387431709085870962849449988986098202315752662393644362573114141130644586007111156280553169304655457355809392565223786300077773629372036589445353725094094671499810340440663531680992258347057411443113467527047334718688858268335097036358613937623329073059927443032961857674538789011894217288282282634217035924173860726078516222794306342892808781831491448257165392433171054138982269832152321135217991360243615403903586156742831041668835838507477013307750203950944827893056386456722502323370687611769613625056339290149723527144552827143974123853920185547208815634543511962505284043286922296583676153336102606319994334555266115848650376285392272726498693992441344043585984910693480509473644205512751144688421990756850161339285763233460727338227826244347793823557739754743236610697286845213341331391160616328583722729264370712429570491417957706507096770619595905548075998306849223542774827717664490630836583390336597584178195928102572305333400038600051389802778321498664726683683659207513698048834790396438616141200282273227514522360739664013998657792904564113043828282274479988341172542779981104744755233592331504011499745794743163721525909410993335884004585133087737947008019521458595781305113894693682283441087835897448615757371010622513578053812986164011797470997336556585666110333246050823436977725126568548778365854666699607855831354524848676659662135646344406678833580051654109017430572435145949643083019531832261643896514777186113394190858285199974564539192712328975386054377844507528657213295276453967969549671244910300932734850586268695791086453776072759888048646579597670582345180395400630977440816981335480975011708424372524496831624774237140707124429464403890762327376224485678028242073724530581196810110009563701840611689448771974117545701882831467753827792230371994402972856043741504684131220983093752568662845523086755015255078861311029318370497629699430188295685724633658886830780013033634302197823238981526465403269272463616985221181478669147337648370478913184309327879381690291911185606393317461681932078650197119972340101284227219670506121762035995101101152422736667587674129711828979477708045977669825405877865880836345037980267613483100255677073813972645119281205537522597234032187247877802937144046971099166150709090048802899654224811625925077713388284454345260422167196876248739633276057033127856746031434743898181131232427573566930197650902090193191428825926816008967747162859710993352507469309205672134702708539967653676237143704757515493678038123170058506683425113329952642451183891839676318692585149243659308627046334348047134670685842180601183318609698528953834911277058933948654114314224677610021515426253418546467636064830475643833527482025905820420268332200153145069909839698271891161222552280627910281768077261488717962763411876327712434530262697324680373986077050347960150269204840053264762556992923346665698455362820099445596564168250028110821439694303722756190987079739108624067605792176093173052978622925211832619851981052261054621356713076365640099598981679654475363379529253243849581211267386750664835371560797729422538256970997471869514777518942646335699767779336292800107353269915904045628167131671041214932034259795368569612007045386499807563479245016168697148812572586975875271137917834441640715789792455410330138490242517488189639213447296496210487731004736449034789151486066329538357286565873306009573550717575822792875502360080814921993475693805352835487030006317241704665861601581841436663705487335162525683739240462830747333011938716812629046203744093900195834926882843413076544235819596178508950528631110309354749073218605300130789416043197033137867317600574687478770896648562919083842733489805497569609393191473687970596881030266376083064237808739367138274951867013878409490579722520101104611966736139245708827367315112967886945268067988268792371509000346385316223215198744458599720756154021201835723196729084579782198168527055732232884244790971358086797528089587820508544979833578989673646458312872347661428217987867609039871305095874097387886230387552464697957288382572765254277203730427639749602097194401755664174394190491782546564833692902680042656331145597727857612555310494475052800888433128652110276816473067650835202542875839273298245538112566872123652015959485510128064923864326355122278223748105618387024320314366446900585151711850927303201668672904614876974577420643522925098450755743542292488203514353730580970797984579133476038727900383002881933672222652582055184235337054161518589010346972880798380249336371260280866595158308578675337316176601629068123015221872741068265826189757570183884700474680732191039168459100165806132047666364681194646121375223241660798472413107067343774934079265540721702762626896926204603372079117472258223225742873132173446222978345666211683887754397900302165076628074712916787062810651728644952355589600213387740307195635446866831108180119009093452634407670915122456592101018961826258387613183955010991206548012227515257583403843470685508104707728970048196115945403069430973387296682906005415801799833330994317200008953793734591894359052899081931213434334461812199031482855802446549936095919107157691398013915607641581140235776162109732513748229165410004565581971657780547010880007770089432408771622300361946002171669401806224724030712973161712520712199916946021152797425037365910325497150514120184932405156110806799022408226871798908874791056874595878140828585928522545434646390881115137420074664408690844174429514226269262252104648895997392799008675148569817881384546288842801862511807929428319941105633635250910692533610560181012224621946832697537818417816006297989197485821188857167064546111901780521585186497400057178608609008613507883054921663579781912959068536109081696189673380142702240727493921567940621917836580959740905876213892009992763294295037934223161752656455234844395662070841747127295901868367612637242418006104511487653161725395477087530432100521016528026247930855231443337343845444016204736936759059394691755269512223665189426326849432403127601738046225355668617853289005988761777239050507689376677621979053720450117461274836984728013089796142896227991350013365261425350202593534775681930585753665980777138205424781606451324110682710045193014320171750029457433784644061607658120282183530076568647962363446638595550880755492435473630144319422818366152200263813817287764695579556538915982657600156399196122264693067726079973989824036790284130326335240411916667684582343568031405980603942150717124099142976964194758657836746284018028047342236206524833901814519720499728196662880501147586994912644847470957622004108049683640972268240105189906788578772780848557717114158344512195310754852020660557417537760460633628948434549132066471011365279245757965744165550759356375283138559000890890747362232703759127373093208801965046283717264453758180274175444251969411011337421942997715281410674131793591344192222138370246399632904638599680325464812707369401490109570238607372942665515242617496204719539684144643728042890872965079276142502087228196373945414080977638438711781409538043472770555128804287190729824448153163209950568855859458241256861985221571049563029318320131366421310873024525415306474433372181303056308981141772323774976692254435235241413723211538384840487533345230600210026680391129762420177021166249539690894855708583673227957269716753402619883683934861587644355760544565211438551924909323140679712705096769472234024665432544924427478115763155313284304185030588546351065771609952063683351241588871358645726677021398320592778498463854816926751801824674061306356042530841293924247127801532536789241701402344344785594925960405468811431077726410303104459008680535756849792315930735215129703343352109145950590983516755296200113140043394453022617483453278393497787357383233002862507884403912887962310874776069538930361573764297965217352549700314001186071310357344339133559096988499321578477594171429426540637524954943246684067910246713833340277283641631634053033479216675870005318721913906944972727958218821408848652337158565982080062701985818492133538613047041174762584844902929802903497815439188680919764070897995007451754744416275615030419946947264520419534266206256609833011792690117982268520866091764722705918856403393067947128905630903955260916939913755022335721062160750563176652649641933526247326623303933262191954340011863402645909543737570015590074671488345781239847425058661657593383759670368568131234378716213815867625186031287172950801091206468204613538878394924467550271003150375028017289447690672083847080631356738146561872343434958765850789085803731294620569247926188327549587446810709809416983580419489748751555323594848466699859959783115716473768664513544979304252830441364583587284435891232580836062453080660371614713609467258986867899949326566843184051002245000200623627287834477248375618063599709302981605491955841557440218272477341630974200261480969592462389593526198937087847075660019257717370928119141038229567933346062572027244561880604927438560566419174113219883529510538529239574960404685254683410093408174064006790790748106312900820406621204395632032604136163088386492170189988832236269814826405380924990211605908951371791066196225356826738610525918670233539987296735404373930498885256644332813712607534228409079867013765049436154643183886353209093476370159349337686267881852024253162808965815706499036564647441112577326412675569991807267917470775597240718983372673977986018021446015498822426266810285824008351052746228986648673729319585218335894157031301719665457701929959239525271873717130205927297801621171851814404973333349105151242342621947632268735047724397401755237508537759482866365386136110226638149999989643704234580615031611878043785304216310243952801637081946319667449615444182350223540072783477200061843630863643898615495100993176121284916786512043848157258024761538813702049088480192261547296780121062022622480780425618875890312286850167790180071709824005665839375331733655645056573316437315145511050323382836833523338859399999272042056745228077493561790793336727729016102025308960268107921880323734330703054546428548571877467006611498603282891603423612102181993678640121506120433956938262414363497687088484752356490231085796667283466739940288087402293904832834809255162390678069114830450595734363334791983735608064845194135847803260705753120644765382862785797724844856528350445433091926908584829559720443909165159750536401512649321167656032010722412975396782849648704596057835223281678687434239920301223149517286493913927851882449526207884565373788975750056574986207838776889034511486247326508843676073112648336440135594536909950268689821614817751042879666368861441511534868283001560494532785637274636190063740076043971289487807284101864997300215113695539372597087592224073700270106454718516793005735596205326247788693070501390936001475473232248388162015283224982562013127196351364729656095885053995785073986098680240441241575207664477703493065702144517295288090745547432036654467158091887002940443017094015361838140788712301229954687372687897642455871496139283323826141153057179303535887478302125612210277691916935605523743227830259021192984077083879991797839461053210711414105669487465150197635001696044799289407232862976071474340387017683393270814148937234887563538728497392383770908126114782328571260659347433234896111790953131816504528060647397892065972478088036561678190458092322559041110249980809144603281701695766117546147862855901115001115360775069015880660779373871903134836814469821049108903724298796035779620324682371231474717390387879340939521522990838904469452263219552252176634979227793866962020815357196226328571759961256007083981972000022715771082355111701384517896777833187353646783530063579750253588006692607737354843597679224781258945844786492082029472592513900990360632535642175943254122090311939251986175567380846978785990347303149231792078823708304653050407468913248633120148353676876508264959698357074117088285253845843306047736470215119146332103341897736516491795562568973487832245243120042978087978903119182454770221449593458594978429968228253947615317411865160241946174615331504178375860491588641195689621254579311045862646068204289380793525862432183121881933240360471349006008097065275255413120837271682025771640224398555335868981169907313220982903453097108039373548150541535997694567471221541258779586856901174454728448792919147173887793336214636237602364021015981486985452412793350131136903615392471408648351576953045007814663604612372492348528008457614067302462132570089976050088000561758606809530216268533933818681148089565754639558493203891875075258531451301942209118510647270592307867264322097563452002297241838675620087029620225330053755526235511176948443168378113267571063543804087187946017614256186179092873752990785991369577715890936687042928971458310849818356356184103815495583692481836899520348421255527975574511194392653428591262799620674267062883860853714291493721117114398741893424495362819046729123182378455046032912055452691971255511912027860694983870542788840427175073277148056598172923616197742458953370142320500308396321657200041890636962194569293726180790564202148911824248864388939555244366704503193311280378745486605097019590378456107210148443067497227126272250381956047694178774675179055965670436447760554398544500266630303720126005832807893688376074240280629158985606834374691122465559038979060094188652095530254272935921556241734772826002449707972453053208188410530916344671672670363299644033635476739072826132093822837319401356644140840286097851395440375967065710220461524154040930955849078162611159945738955392714236431967638833440301110154873452333342986633610335750930563702146525517100213207598779037025802273825437082939826856834884839656616479997052405076753729671628986557754000062297157047573764027653651703871813431685646253998191918973934589068251524860849434832106806423106205895331596267734934834909556509894154526376087210129375267922527693186123683961583867113428185605132530380690896700429082296365466725878870501961111702311884334413161760822632129348946159956123603013960866938930481987349843866481360987670943883754468480298108587843341523829647112816504004071002110965871147573325717781087987485109241354203083890784791927574521007177101187853742716121089213561043999820721448403755801022276713317405272105656334844863003198066915501318072083596239753858378748227424340863872979828390729933932734170849966011015104580202588566084224490129051975740798760234901412284610533339781172739394233272149093562625954473772713627025690177531189414649356753321294886593350803373606643710140207437192848684651159215407594286748621213792055324895596390194500904461971018711052267216277854071747712962228842025788166780152018578018562117766825104828029898299078532403531489162565757551986369795493301466783697069200280521204237098796613058733085837710960862225177249166501827719599837129167324070964849256083068230544664052383904681144999847798751984612228198462233361731341927639053075095538213233480701529301349696886287864696928072037559266449772616463413865619765970646981132245360605317108664795315502961647652315023716923202007184593503725042108059286468933598772069108951567002048959679985036928651487876371812600382140103199780769156364037444897770192194571482064338731280108539557040926314568971380916672461809037935134663737751410699515267503979148341762392639199233451161011049719145554386190511498022075921229261520593761170617278695585878172562244871959226034036115741503047581064797310778482940247921383408649056536992770035649802387805817911365282875879144964262740945130926628722764152470643123073054563226834315656206972499521327323471194987171406527607377577950690474958995336774941113355040518686514792958400809713966917745733724357091250322933410642390357816391688519289582082441031299583800274634275874481208000870770621492098770442057489643613642893124817683203136823826388533423069131807633090241592391641491934326996718508536173071960853818606370790726909515164887643403621418624759988669130441679450669413255316152637633250261002636435193041889442996766494125696155796877437735788529396845611863213036573984355249712322589040568958265639665654722536675278140521272271790346921664320824600015246537688830762834948638213018897940501912462578247911251420843114033308085408188851894981467676333921354846807637001012413583384155438760958668484605137516938461768307607914098813035996403934122235365725238579447983317932890136286550228273857433183563532206737163891624125278764814848242826600955257597810382148600831688401384976720006375863704978414608990647767911570047686551847262997048599852756333836120359867516193902898151270421265611027953963518220979442039797610932362797617609363951212170565969425908442832460991622079666788897818829542888791825144998798407023450476738103316075736495880519666125240736820984945413354465795680715868036783658544623925954848577471984237047201001116031366524631807154429268405125719657988207685883753987871942820741342887724044074428807919955324304692735588796116531806136784228664691362245584294923730616121838110082573468851254619904448622515917579065391397577645753884451151448784989655034881884014020292938184917960255039936751644421348206657730845240677894437330630961681216183781093497420081355905291471400649166333863613518871829661337975224551060613367105979015359982076129570719062731145643699824386423233468933287462131699513092390682948130362249029833535679870766451916156733170445616760649286956175735170410411376153061680245905471477565333123655958502136542598136987400321254903291277159684142921095523743798069526051551526924707981205286683420235046305423652455105947487708447459710433475240722064287513305093258790760940564539384514655026709042819040447910066373996670378997628340368866940932454987885604236819284472587893507209883173816859284309202924500607961029485145790928447333267705389973078039808693476069006759767817509539926515485226969473476118137502362438265549857608888072300253422379952911149796222368402417433885849476225700799586980629745313301520101976046585060754388070669561739440091435365749763634480578586605854353957815669144334447445882064156123212444014336048978897124674423167951740200585125395632035645360998399791573996271327832197667859339910553763805983991964535145777985702121974046129649848136659515282477151980128123152770458620403923015939678588426934370313777440702681579169088934597869196819895777203833850461993738761331524418796446425305812043746406506069475103632132037374570991113213752773215846637112687444740701726932755139832832942945511167878515726757185415820118833849149569085693118455517256920438839928946498768655540617325256873205780423818255245771831923257644221749458506169349827472544569208273040921293058087101189400987829719387133794207042584289844677943972263791689209413525660330719040153348968897147464612127096830446277139254414051221169006896109748375611123488601587267876301762600729199176888999845133272199434432857832406638282918574949136080462777829459248574362965990330810191242091316181828833119327618113658139768321684092034877726525435313626822548873958948593658208209726441453926329918473248811579250180465724478752683330628865756863740258029150989935931714245176538915855300762753017887083920312964752767273186506344407419338221169888949040585744860984082277390920206805717043771145481983450593795827576774894244794227250719504114196103517921551288365850558085428018467231459188137751005382587483600631940070495127254809377512771345302970119582183130945390203716852871522967113072656823980533857215341921433614330537097750897711160338416582207087171171095621501804824360137664301276940886484053787976771429827418647592142283737361832278618799917375860609473853542958630577261228662202967568425067791684013930455545837171060328746437014964067680130716311352075184669623954308188041031923706383696615605120767823297168512026730816081223089809746988980858512073923894817650354368828922643259143235344291652311738505175466104823136842254481941961403776829481144431083362308614655340784508071870105298882139769726861309986961644153788678925209234564397707872497378952672969181860516483147726385539938582778939825534199176249421791976850194221216177213976305614503273151027268772422050094120307273444056359304860220861123743445690852463028887457146762408555042899805700411526305158735596448494608757887974932827211084770402121378153258570674984868696335760146521970831605274882334138521283722798033546498503094864012202205027042417762817164065497637029928782651534853946731124959095398270692748073473637618981195833485281207805235337124628568367503324508349391203040021465881937279355074169447025909577857718957134653574744427054518278760546179976923873537168883181085980001602169925722693641813487623331226752227378250484917863625558454859793133202540203189519536977304049838374790931291356873100434856438068282252491649206611638969103442745854730098067929444224706285820513063272954089409945632039044224737724809985855965832650182128316828298422538207407471049512072175004342159768924622600766125324508434016862921410974176914496154234906984131397315377233023552916822268919020184946861798809172269848400669427070597864162870490260006591613103251717801466965227432295860749271497045955019216143677872496380071663823759759420936482557635057087688563104840634336843657136970611311141267322182599053353241209817934682357705250574899133507948843273747053586686262070686912493787783143269918735395592797929845080861657046645053370337081393834096997198181228206124349002335463284279801525706714286857255272732040893318315501219704478274243948405447414900892059779013583362683049777622327435239093761410035915780553527950550838357450623279543474964018173929703023388620454939247961193120570206179648995637359677117670848375824393761375240019175474040448421323324340224746027316491973463299368058244380126230118600134270731710644744944730221521953632496395747974606221558185782163744726800066351283493836569852511445900091809390855121902605136559176877493168000445944269156109874304126346792422082748742870515952230968193933409498324507613578957953425811014300865235196315230904969517806430366486665012598495192012607230077215503360295835377082281322203233903607041789800717140934514415803139530493997024671804094262686922203374369950929843258413697600013224772323933597963020462797380141003927583292754232035282798743249963485131522338406669810157216657240366460835813148680255826146356268492387229931804088752290041302397692218488203753702984547564593582905671626828960191035676434971289250831711064913301840898117286341226256202098244055016667611947209601445254569362546722629492289001474121484632075099873116503112650063992090819678178499222329372604902319390395118207112388747243481895298389522391342337017685442044152234323338554276839502018000205756047462189295174403764259575621132694265580486363712402052670746684211095530950306365221451297337927846590083780082663563358551608690277761537608389086645946460781653460213851190968202441198289722070755647070663469755029124957618935512791624347760025104842399864659357318118052564827651268752763291222503666758609759493329160354949640991254639100911005922702046191821111194309457673177111437896685263583029229447385655692523808102731525463238179454692279318832357824268045249561535012248436605262963881044778200122773644115118635735186488179337654175598448248811066670040399047623603941304243139428430984556610002837843516697059276680343623894712804420325558986536517351166464946634075238457871621033449221799774891665464613695428379288212696125709672888229255402980336078718744319045520119118297746118252354767842779307435803167418363636668423287534564040007631857740788678485595553624674726087359318857744355522236647781408228243754416055463461130615675761686836717473510364245085514544624489207520604215889125547915193585085419368734910849591820119918422517297287114880000272785944560173827105053008820616030487033431490713391027533650006862848939794304780763505535690721425377376074830618609659227727128009383206756331223122886118665899124004244321410324106120515001039484555524983254579678075122800759064491323208630078798137755031615093289981609835910160743604189684567054479263384830155307821766742122650551260709347899655027737694932270500658812521679416196470692495113982315201550856336223456892185671630791009557924998015140438675855946338320378957429477793890049629634055024126534155625806327125268271113344521261408731812041280678788830966150925248040810208150843172938955751066709951640532357928055274585503361955454587884944842025694671685313571588960719693052507834795046702619151390498510561003186740909392323866098658343280585278013811876967707856295594019802313503137044656762862234837204289077650015458406694994238292898417159278751449252232736763419197183160843789183507542167585628814679588979426543912525371580113752995871565221927798930408447459312850820978763211930682268339365961441339569547046186454172608465292460456885434649127970698018049740195124301898530165047015146369934658892355529321665574110297715150529503923505937466842025025515979749151834243761763094937839284740737080872114790649252933412427739099732091195540298104492847147073325936330125867856235096702593375421370206785366926117038269842317596301413618756174295209408689316273763596009496841743722795856195782987335428208773204965424118836081297031696667360212695960474525095471716859346628991649351729889785648053050522808325098902534377191746169557479543625517714632514030909159864405551397300793908705756487821059295305675255977654672526053964258762760984990309530093736037543516914393863766528434937920236261599149227685327453236459332496108517362672271300154554945817007270596263622431270082413518514636018766417175961073292387188642977236559091378507980024285525882889679386970897146246083474244041533579401386019136712612648931537587224525716498543762504658846624176813192910979032231388825834005302548838016670291820199086433812160664830360706569941693126064910746986151571557814688666014037937253342566727907027771173941933944594531636053126361987980047468295554936566927150572239714117169078023208145567432463647924731837513042637929698371554899041625854445976851543645420891659768865372951893022105087636628565549519787540427115222793225686535634374969647534740721244070563771794334487917665434460024955558446965646216859393250606815306347741133191956350952413678144682093127131783615616499031606902819966125146461433255696192641552011448965252800980980012939890572722803844632168505277722433913083958874368729771448870462227445388391901910881143216574923386137092025690604233213625293299690147354566978250380153724765112956076799492772374942663707866813919325444937544157889882700979172190840110224553605995575237255302556669632773231617883965056018699920339154563143134840274402243337042991114829420202146672251780382072515876677372807438583298274727455503483791367840669764245196475911861193035312842818083757969190059535010123994164402827071541129612203534402955709808159749850046590117383451592592807884197796042062161211303126207501401427484012968638235211189013172981231957027578156727193899900660309034795746608493066650523736465492367042379045088725198509997437333352250276334530235022758594676088932590519254853928688048217456862235520966640933821799219654759176055267946359229814973450398695623827343926311520667327375905232214677130868165686452840142921284661548762162011141465834320455740700405925268611920782757254355993758675376645089262673291961260452459399315010580581310895453464136787611906520997889888204721925391739673054890596295264926281916412794397805672490719761464477086125728230115489515411142797775771026254678823900055008318705443278168751154585151308276909843001082742869300150290733737578572459187502623806207690888548376537440772969785811814793124514913310599401102505721219837600664666365355280199695704140956212311099893841254001728586337580016094330043321106214350338412258339290488767528436482775962707773216781184421114663171641899955230468519120667613107673840277403557343136266645973583309294293204912251227936449949528916926289470639742547590065272205597352456090260742485046682428166602017293517836933398441006466355260108517172132366702468676069741212072382060746406921071905772022823802362082921802865475864168625664915358618315394228888976637383293766736048761642585129546217615303753834048738115204863339038026374812775604784425772322042211278648036328135290663989356890268062203708467212320180768734666510282275531818735404916098030562433646345448494039759360958985681822834165043287241031909231736747869965518628277019292712557656665192869403539829384801704741107997383161411628474810460552314554694936443608898387001139130535358332104169401578086416703701613144419358905342183385758558418443083846536343564941379598894989836547739149884502380365269670297324691005355378758829202799301551378199733070437303674798034619113985245962610845323806089021417030917534012217931702253427639490654228525739682144394380205528701197795399014453623696111562454046126533481242521528467097128825975749338727153346981766803860360633889637787917834253354336345651450696457062287628216743754264601894523131522651481767622684617784281807228853099332011330244894722794890627371355038727482078809284122120394433497172143201084921994637972408630567516959028705278241451850069732147633063937137844946853291465285361076578847349319065033073815568395645043990206801472609526623843127091334328171349079678511773798763709910639677694721835256011360547658284214824535669487270223858806695637158079593260210090191923552483000687003817661912734722734912724785176520220136385021019752729393738165863374070783796633795494398517749290520508535973220586729222717378281787250130502411148315257613328106460300506154964909740613936551002959089548001056341872170151369266307028083897999225570385586621355477057657833791719375193463059442825343439576087874288841149485273597937203272181864703059319710084862214482879844906364119367604100166526616561726353439764386233478647415414157242741126447247386434998737182245296834051956597210059316838437916480204168835033247993458972544790071069230335682694485118316993690715804250593010663481705459134088126369670099064641236420612558983985261814488268417715484766439227702924945150507332135686209536886254391609799573407677313710411801184205589526553841043552107587652397415425007483258422797845584599088074116500224569137466891671071509301913380883295245658085822884927519824872023111301854497792998679259716187793217263391668569398191680683397475080053588274537174582591852126523742725939562224859787597654327316142180214511776161148360414051831819958687361007874470351772699942776837386638360072960668364330277637442286674658207940009055495531352088469121572048683502939216520076892846789960162007180331124695429008902462236310897368255917580318901941918587233842005084939785839361116132820597965071253216321199741950037374407115665315795130155855462497807155807841347950468292391806473909577763884044421847651294918730059021364781667287183869720565684428090563672144648962635970720405613880278158899562613183522929760873995051502021490271778224374110145148338682402643972990132379418740123073970669507542357526197465159161283854215209074318185568712972462935297610862070123921908039714919682356655825157365700069277079460183370660970388504808988484892551730556517975513710893422174206463295820800057440888972765740562371108006284590178345430621130775272440275103532452310079455931071570627916167618808254185559939132274421756755164861798976655103723000674539677389111859402062928745276401111538732150528727531223347688565317761768555493645939402126769540492679010961372597560882546464443986819301894184055770692129292227919762080603697479825255709895074986740588643916555792492523279308639847907097075232918700036488101629071267653793945421204720754522066261238594510868914780073125887384985932151811491496194408799759643555335847603135547471384687480263624016482474053346790320696324151203878117250322160129926982608040801929568214539526902441468762860543369536211338725030674757787009837707781365692111784547478139785173693611605542451194211148964540123359910119909596366188963040299358467693135727917693058349065003423283519344198101393398715737966030424497106826576640901824662069128068099734509120390355630717020451451334423632629534719579986156668837195821651938584247345689944751894033986130472389069596222792441061182118400932535943458993298066047389162708298335135586057184556976989757626659337910674792036050313580134535466972366111172918459478022767153484997345386424517544328303330142154865985319083115164757765351686647454474259536266537705618667612348293792935217513790122594060609011564587901328431321136572597180006877754651720548605165137369724204474208533400810871745001105172699582727862555283476154657525966841197600449225914948952446157561539635569853239576651183106170342709694017097503150776282761593057668161994483928164982954864025707265939275974890396184667245081896732440794841739787846822229821078084664168520636632650135013574856231761724673354040022112136362417544394472046528908066566598144545824003820850159826407483282390194681992426079898384107611221566818264488746333730804990190836161727702507553810069051637022340865873753338511054746787088530903273879424797771876872696370285503663239003486342707487417701301168718077387577689192209280649603397090075758360166302532775142999613017528630009484463084382648672595848949443288288520942357905768651297078035630226039843253152732979708589504060601979039316158094836042363610726560144253642869767942271073542204673199691995055409667349061549457136202416252176823445049086697349367017331677503223972787839701012559313176776526742005186102780309481282058576957878288801793830228939810157515780033203776391792269542327222312066498311112941937197401907755406908611218730682923032245589623888345600512987159133701680180680434638220150153679656948528987093343883757113901147403044539292788994343578750859562319851249622659563569715725774018020028701720784703933419295206616338909313638234184812094237283675032254867443216213381202323220506871042091746169359050869581973505572384847193690131390929641375268767205670047113883918265980090992108319605750007723692688605256814991345103445299042771389885621369232438960885200709964170692968558206420559387933828914146578087323672125841247226542911754198191118175985979852925531881142897201829412616897313655499747397255528804465610164495856324621521109515112838246201079432668271745624873263929318189334144454096003626924638232268204504818945368025230565892767621089398667621995032419702168477446236812344467962731005168646245523564852001689137064858549204374698315817435099494917816398033116143773183696779012187694597598886585571393146994561433268196104677904020076467615112920537676835168352887861476824792014284765561519254548894448514144961127034379214662472796304860568335977163083887920754460288694219790851990381968311212009706329092996749001980624677255088717387605718637833843991210928749568652585531293276314821321954586157862042397064619820646455661265060074632630762655426437643292002960426705538073007725549857585312258517391164294518526171746330933124664576771225728671145230089307138335533904505200444171236516375097690444715056689458725221968379952478622581632300528143108411460676726105849631668732725965949173968836030382827482942399237146591462292973404476836942120982731569140688808259955150064634557641136102543666954137344989057455153248083247352257868574219838488746203875126246072511790693500206656294489227737369793730772505136475278233691906863854069040608977630597371721710100460610399820792422820454061041800331765395746799478727984164599815915751145403793326856442699880508303560545503620800495454504636076076894131607102819089956398826223067468093639742187419508622442376997067042189272908049305681065392222036901337092593405475796905250540842012919959636900200586720012048233722852822058004607294698020190700631811894142646288450887159048283069290888216725741918688865665546541750169867693737902541635228338908580407414581954609128944992898277992430681210823616694183094108545131333152491564999724263954214070542493414996368503209043235051491167530779977652680185219881364321062006020057374215782250458810051808770446635583396490604516399474309228749975085396393309809126660123762670384593314897604075095486040838602731914177400623813247108534056563552348430890818074996861131581099134643534774339161966041901906506285912223755648761614296820912634977921148644613071722698443811530442289675259029881000388308976234585976771489980412854282163312703246264222210858120995147511156485795413292697026784371588638894188718007502142730320944527343003516213400806068009653414547442279506278173329592504131843802949115703556417384691310344650153803848874465782677640206131299044675254994530774915459802024734043239224544883632943596572821138876104491631837255021012576286616410964784593174363820701955606633559559847103712858583791527919674202431663707907342169179581271710697728633354232292012039221647264466266420584534730409862310885395106891011873264084272477527476475250539285959276664356617321163941620650937961135799748713430659340170673255647124446172516622821468799505029123518612309048257293091657872059934101645439971855059731575938884829600063847513576016136653479080564912515174768958932690915656526237876123207623374247118955047316193471253781927965392427615997417356728817689545954296106679930156797800869982674056760610110547715913650467749818737746263184486060607697421791919438088572487363792182406895464740015790416955934338963880383190645767843542202335814838012186119947495354404304992022445093304987162243922911670775552517596062468257426914274546061853525764449125328718952038470214071768345386397979938162234659783908753484386699507353671611734804656508040378961179599787023005357371225243029220386532775272127206697947905860493206321341482380418002429368853383125318809618236490756274179511074549696401993445178611045919565175706168875805091837224486850502862425478940455631757828855880225082184180705351727586788729931566929114020449733666758601513653857279819181550282119960736971569221333143436916638434820983191434331703477575495800284605275197856728295626611940577556654746080385712316257877605947513644687135494580885931740342875004372082626046473305669577429669661507024674916690576491619990259975843223690565486115209834059950467259244425415975220322259028424396702709191248187847029849277764495160900240272287249008859316383776363527645296286398998468180875945255282861124295975726416443675663827784909215355629391660996679751754413431797807467285063943640532062493528793397070855497548571961522703019253803113156785224786032480001657289065591481215046266395450044856812193001685333131548848292608774439082238701384974148403259376508531049880406306903360138030968431825231289286072889307845144539964654023971815016386277097729110072983837677967688699787902275803137729066978767065410237335217590788025441811181522363635403495744761778883649533952986207256801461110905974955830484352340251844527020002396811145123758428234654609765933705681281091898442161795942699951627334521089329010560916133116687846645120861077721792441705418117120368740845748522526864887716875814676637323229379811133169162419158738200919155176598771733408397840492074255516164755778551598855694886130655820291199834995565470510142260879695344777538142971188495287992198982986232537194743898554826303379706093735666672020514993595176960887221445905414313894740607620765161272349035567895408545925213119075891336925187107392002165925243655329003894059740381890611740622145694269322359126170738309445148856357046296406726159107195876132544402899596252205692835481044420437435949892809635043348871104060396982268725528194946539483837176244046887980520249420974572427098109615178546784229828862554724275353239102543219411068740926044771013298801680773349794135585771141596061319429525252503245714130569599857019430915749471401130816017412322062895149568689545110325108966228147114125340910065570142611405237020415881242489124675168765919409750488524403967602387813818096393438654404917258092064897056976074722194689050577436064055960523012705959837833572332076140162476623154245637789442826113904529873077291437344760740894401452973210339971261736052737776676072880054705045834314669747264771222195295284391227849806067241554510242399837550961231585467004969790152446461639029206482597428179759940844711170818383414114154323937838215174030984490527574569841897952716929579380720842032349042000662414329326408686630560710651510227335351108113597968889719863937734015948013553912622911052393044664620281462004127157344055226987209028407105976345962082602614271567310531926762601385371707697386441562718402540618137618787180125287711474100606924337173969024733697071199657607895994931568765597708621863486571295017833627274325618613310914230808659686341729989627277714721805959010049056972646645836430788550155149672268702361920760324462127623261320696680423867679650458538195929045141024071800930896488982210105438941243454180302142106021381983708440242518386826369746095031399344552169020337766196007973708341454764466354843850197533557592758275350206988525393933182844718364033241338693902895054546056599742768830100864988870011537730517032876499496180724343146609091230509722128030590960814736287685594367193896919846148658310365962263099078650109073819689359976114441154060516219339284825598506441390246653035561010506213069902136079190789604236896212942831358187899883068115243983141397505143179623688517001650990650593025663984209308511262471764820746953175304896147416828373078831097993969289969708145482939383884159798374394409717102050598407547143231283990477745866536237704490853254964553222688360564076070823104079658131703869783258925575040824725919618614790885701219997120850083180559413864841778587251458077536385229387694816953808259761265763897086010427301736139349320683698917986285807659180323194268028064788437610151959459001570984341263858391717587506921816234427452391289977359945723741562997428102741285636207719866803497123203758158359604527116624314587032634307376686783296304854122456049273446309853665333761721047739390832621530217189332321380101832090163537774769326361873014383973776870779039895083950256795052114778945116069608512089613947942251420182372619528936460990160145447896218455873086107524475410483220598441430317799088840400775191176000404024963878443548845465859371045014306841072457812983152033107410167238216147921198746561369721277563045137443807819043411992133775635459396609784591079865854510104444871628222355165779378759987998006983338083956031921521390198639599938424886316269243267912445319237516244600502780191008466869476814992220175075338100407435322212762433248156692019166418115229820067593593083143978836746725115560722846267756305613516224719752859806722920332510576749805855073189797909584417358375117929257341057880863575458701082208723471801526197662667216769065445056873186025299124925332884429369694456823348185833552466106000499082741276188604580678255984418405842399345318804708831219235191479608551198220734719379276106099108418514212453087638626109615901434199552983974639697697777648565136907361660203480052353609426598885592879407763139210056853610266429330605421270073113287074819404013738713653931498381185388429333883150819514172599023193699109187622076527330007017571354372830858160015059883649248870215101616899867698440472716267695932873959700476409276062393808651962055952761082758792253642857363444804859774637620771249396471555723202304919060610044846886109716088641690713931091969434947943719522956201986686144881244574362386442682191364376466392379861541520664076345102338246173737974960172559342247259084022609769567788878140912221819497439767748890199342010771125655071133973643552891072759841928742669219596191538398026754256728975615952540295043460890740177720085572993101643650718408504624654172937757635685352741155547694861547081627595936266380531145818860051567085680145929017315360584693063397593323382341661773079654851868626367407950709619330471125748122227972791948811315316411304173947080343015571158682669594413900254813086868903355696675433197986466018872090955607080853697610173586367951254395926287432016520330048532731394549627360501497220961208408953058034080713513138870558680851765744654687654705500428600421554654964447400224097290250740696089931827467661445948887683354044854218009655604319934856957756164619603511774036615372314002960653093178148459763010402785590479519093091486831701189289255654033338682525486619110032490480096394596832657968745607205530233364232212977211182625994642441372024455539370940427345610912836607094531446507216229572050359746192361931993174282797546590253864698344654735952829697880360023868554327214999592678704343194121224545797709111055440793584978902854155306591316460508494621062639875196402747999307959935917240749752937708853135006455615968446913250258620561074224107485148430663379335349950923266961498031891942117138772527392704792179031580160809588697530118996167939101563397726433357839437495159144075141748825683398231344454171758132474380528302448741240766573080210395353325923561491113727117271999781249858689367240341160477838745311213403942226931753064742475812102794343463945064986750570377916406052289927916002142720852638256182471067701353343807596678184850422748837539961594987763231989888039454458046545216703560025825446949334881010027228188844934624574414068511201841050355146274504456538200669103463810147810766243352052953920699112770282587937097032919807847775549511365888879381253721310951444598206385977755131350974549569399594742221821421228223044632347566630455111738153452967348085487016015451257165348174501434243160530523556729814865961512076124092964436761370596946048680217181166942107844290990566739722623325502720774848267432834162410709205667127864347387416672477333699789837841130050640388114365407019983321295104517211533039254007728579694137244123929308115944706017594374014455958272523245855783465259325429971627069473818617566606506477031356697882457880277537197280835929550918105324106796580626172092204539287847030848730556799404859363721091627817972433034115043278520502243122324111996105173632740942848584432340869110799135076429862251404184107012657449638601017434941385598337277850879249722072046336098238800599861626751898814567615413205945944603357806189723437312680935301198462028852369026559607670990134529887037149966704997687663905366238739507969505468321912674328905601393549332426687032871585351923559701556177068100466014492297870685573775721939102506925400400568421707079435596009329277839127076250995734349007271322616294097143216285328266732835153716018027829579161834223898991888069974428235275519832873430379427661994638342130200595081759853425078944895543771655500661210454000781958739664354438128571285337815075271764496297293967115768326199877962633688465731808687876562167934389190667497906333615437641480026053174796211123466289183158909636004991155990517235204464573212230357183020121498710482612371858272907111136735456235651771371860426177925327288606204506966277472695696899990363691026472845411194945903153727513033400280118138759029003425178814683217505574359958149317244871868585816489929715815698232562084314791330051046880644446491909889526407775613449388124048350518453160567365282282659296005825638569980221179495328160147853418551026634006563506524577753399400393489317776434476086987333734159236044624778350906548203217051146671105133585279224235546041267255698749838789514522217603519702826607296144356870720012071007362963338623837275526855500222161640581195841795776778618489323591245706935061651917889194501765305401783671650140055559256946151405482790404907836924938266351902626418902838826784265515181349946623535218442257976508174280448253242068989243408934051057061211825928189775900909307346325660142541784427743551228537491640550413969420608095704572902424263672361452275775777616734299928632193298917361022205891706610932576784952919863739258062086256987402172579874816668703956369224217464657784126214621105909706171371461778816844991474121442859245450191700711288491718491605466713424692438750501586217602508828028560997059869745134810053264072571773080802392783713253305572832473966301499720152939743130194519311577176535500428659246642838430968645831164828948205341451522363063272768619220507434035970024663287384260536411246475551883723034759481888352916962624172775043397659408181234514391092252282787455461641744318132210353957905748156288530942393390540682382264231185611167913585994677284194733862760589421670194084236398562936544925659461022254099306141455985588437155814619725237402662266394415813762415852729508816678659610163391729035220499041537718449826462928159191844518853804539252549715044164889830166564077626044007257520059268708913634149817790765521741965023593688883805038048954211174020434800048405443917029713002221036163611673998454725978168716117993758877438772304878428571997898995507766004217661302724553828378887799463913603323041715225582605694667497443074459761288995958440331635817179957257046634122374723882493944557027676127470318628034894333789686313713796869547694902009812527559760589278702843482489299449240462852414741159649451773310189591184393436365373330230553727448211994324462279413349202500226647793178910780467084013260663574477604915199151001058837756079558733298904601053434177295251106193433655393124703770727203046069688898774659522194944196852418603188149226254568369639616249304928795093627406965722990548940033710609377002904822732127918565234500357066774749870241501623782535526901598642842952773657979205834604155381448562585833687932241397839226525505002217464069098469485767305763904796115493544836473621300180631647428343419047519732561114146554869552073909250148568875169790005100655661088973305249891605859631596680918954846067369289545928148502076644388025656792613132648846448281625404983630441866613759907265145125684049504787992813869543586227761538766084258530368824176023477345357992345525763206400261836959273029304490771318579691573635825976700743244962169019916898590220009233791742456961742475406779658842869286535941881598515941723528333812880199455739577270342616271631826392379007525183452802926236603073829599237512150106475043374386993307111973872355126645119181309524557630218838002245177385081725846038149245087200202213148639238156869044667468740987025656509508008173752624900127761643937880719697711778607180643978992462019652379130648615142387142178717237394375201157988133461540716084200040926138135440423648659529516319703887954714441703842084380569665495555469656239373443422071893551788041648627170793584587419722731069045041650481246206112023383988326300530243720091111308822805181276689645525266373752133066066301980908023569245991167676449367450022969704753444006245787872968098906787647157863404063723869559112656822401030257014261409399766284636366879876669646539962239597337135215109866816491165068814569686915571598280450785984404545598249354676542531440821163629345595372339061247423902463738546161377844186011695253475504353320535552423709275764128515562944933713448385083917492251408859545295901589894819535396640022595623241768479687512093084135412036473708590808072808362273590440061233626569928857290151640101086094714099806682591035761848752412675325531299388855652169492203066995780555343090529176025500764647700785564459504290064785878678891010440134062957957291781211022734857366464705303897775126196632815414479884743123512962926360067007519417722537006243174733185668859614162524965871466318805475633612602830471007356264510774057160620044934556313652926939295909073784484196285164496176965581083505161782503852826688399771093377631470991649948195940103849926261405377430085498392988372138419512950855673820736456357509231033957047171406682781380246074369964806686191848216803216983659843223381899455302085184132436629102532580293969143955824547513343871232172889814105510953891139040827947569519670640582918115727592049006748913478623472952327132839741772830300049389827717668910291772010064425998000395245286253376653910858631118534132297013001062313419727159573861469016617341125768116529485954972547249578117039838039672611282109877472342502479139729470866650129691489379622735824806778976088974023749222896733578991831242700012138863865955653364426445776676214421327406976429049071515286062505766117519285878272589829902820967040468092130152832344035942498944044719810696517789460589311324987519278620592925381637190495648893880328984656182733085950674015385258658243715046499241165846874398291723935679436805971915759437127206855118222946534574050940878837055876530001860265754122040685796268597482950352094066943849129823112192503545235514489883947016791618145287007930746225658336906384074615377601099509952839676111910184665209725516781557219729927308606625765431077905319797230167955652656822469462847404228467608703266383255304516474031058123231601383187735401948160520353121583330497243578593371319871899133061751604281274239521110718613616534565149232043380255846815498743215151559321202348167619602395282099199271915842487249830457112851636761356805352238361345491879820311851069503279735924067761426111310472284109968578667192354561520712085981698065574372773199144467794796723066781092287290055822353740322541888822749855811232941688625301711869765223003159011713463880356104770242067177435480424124552929759697677969905499186947540589187696966918191310378477975544061088924185750108913906199927178378346695073240648095209370875843741476953234327841406001883504307815558449395440278853798923601257326756250894788941325202070238402650151770208347974605485901960384617617337218341454560106155108872895897625397828783035805320239670628271001433263432587721716834620107687300973761218837075972948129879674025304769620346356625130207990932561724921278495228428043606054177235942070380625393949122213504887550045840079169145517861036301207695920317039927189646495518836239075518108944572132846476976432786124793682446335320923500497222263597025858821092201998315499973029315092254251367404579849767116013725942742139930682340932654660544756794814422084365264956260181226823415749891678737725068764787892455381342684033445738787718886602865982518807455880098870156899078045023369109876153686780662538895980018163919754898333835725047671980332100676347489307007876679092793326115170182124574271380799266879325380736165480582575592732313508155659197100115456457432259935059742889025166000263718527362112486248614530771247806381156491101786285857602118289661092200143899792166400025806127324520998673234054914275557222097277876333779966071159680627383850867506103706780567379418426823589642754616655351200010182048232120403139597331001975342058919151292782206276384655779470787562353717431672409813642146010157241801245761468292209311205894487525781756905994443620236396449233260485395382719635687934372190488747540204993994483023488254085335387700676919923796165328412721236026295005806782897676891581574427990558400643433177992291085047362010920857979656569678015737683384923606057028996216624731363598961669205168605146258968229316346947405409682000538821703358038809321953310854561821475039852195793068847367181938865671893758731583613400751817880572670797581960933874198312495137447723061294251173374393653683629359468682961934261162843438671067727630347829952654972824348469862790955619320826618889131291785734428702426398775911174658787266099393207807939141379237409438789570272270699589486637934191265110144968257844515420992154945426881936707885743468167586770533839108124085079941254713603742865818937499757548425173485604024894254585268096296705547868707455776113260808372690220469571728058013643843384409360575394273317151514107709398303916422810585338464481631680578959778827394503743641565818455967607814944195443166285122114714454832113976772180757269665190752889227286116020613561248209947467355099388524657000668141562051020945605879268817816273253033440481361078891281959892042858946586928103055426694477850065564155177193634035265066215657461924493312920026898100730469851884878274623463789894810404334710746841934191788858926346812220186183931672791868716488938852663574334888179821496671451898173279397596607279009527296050277457454616156071193114113300634031740510916066837340444301481234876854210908887471554414407341641391533798982001405346534083879917224451273426334717901121561499040350935826632629408233376344487360030334966406320990270105159161563840812890128848926787391442967998357748279305074943364748286357668125201075446598156321868043559054647677069800925235351383065402810296555051061373921088803395590721733411809608858204673725791571404084157857065820015831045348993655696247724259709083880987650734665551616247054077733311976535207996957771886695317599468933160500015086515073771802871930795502673838205533697104398375626028767494593468546933754590937528230175742771633511577154947386377794247833299469728874114046076955082522652202967149040159456493248995232646313226054198387760714957975862405253389633792523571980022031329348424070322079360482926246639802451666950147708627958492909911327278203470214607888181113879309688024608872296659947256258298673923097033565837637475816086916415716389835429177090800256781415934721198947186736901676479406771591466842237162311067738589242463667391766769567847880030338212029666279319804368223895788316134431687671025155743077601896910749986119181847339467968136699799334811225044953278694066198343064739814109052007997819411585168837276774395416793041255456841526709219258334433957754167448168466476920605257121277134404559426926129172701274333328300186264622677419964842507536284065229692254806684975533789822522301379378430508013845002670586897540495668765728214240739359659922727626388990307274735682259552430370892194871496732125319872619434193814377349435205776484534058569429721275837532569557974081124896838435156382086604768898370417264495953461109661083032696876955515877029348785275758802386022924649630104896229200970850412256180864952160180359958186310585821649887717938033834810225236070171377922549629889739298152673085010409310505749682971967424737178854309420691138008488398754421649250384998704237328146897939739795669818892682261885992816198648274330380992465155892400131140164590626091545914268695452048424820217334475703389358140942995032201017686579076858092278001074281520089288616206997510039127808618970731397916873359376930240129302377190970196783620123098014653965922262255331547557441018547508231783067176975233317260715115956371596049612718829639079865725291461082200199297748638278776700011365606054525058451072047696191327084698678547297894400066602733985522314136208020224331799746746260583883663649690778847076321784326432877547311372234460741708391911120438255144209038944570200872052388252603778471769627722783668687041671288717716208582872584566045965698670912651997936207309920063426793218065163048983046958868133823854752445339071746816305108411234324542525995682040827781037095134684443761472466824017934173257284906734955025576369909278128618903285724373391943652836573587709731254454379305273818444425608494701862817588355261665150107143530399744302810452776190057319668981170612698481347857866792545869674802896977365900808288445805537607010801767830828881630280525885556078244206139816625890854289949943939791974624256386580986035582137351790442432747489553599560259465770474392608821198156231548745883167984080462815299403021977278349430022025839940044101068048576119805300105694886515284828855029702116735227551078569935784422525676026268619205848683488178529272425540308741822067615142559740014918047971024535868982660028859704156219593277927568591529695796144005007950174666844498430309498111928670188783945690325662516593819433840015894909557337732247550456087934299677085714572216138395596553554111870862148953578183975241694752337876273599580460883633701048831888578641030667284168083101877579516273392601260507716042573823981198086346120150887015140616180572876936177414857072435927691165386825764540853716314399690364221549031879041358341951289577626337579781769110932201250113106201214010161302129431712769474765386024342591017889056395872183889228014136165768846811684959931670290048773740938909099335761950184120471216768911202697926626045321839612296391186842594833420319033452217283934409458428369050281295182864318839140232553935929235233060059999649508745029693994710006548351374568541992149509392903094975456096491855991628999877759426595507489698840629629534550717226007141713590099638739496315772962333964501164025086887071433439884077500552140729016579268277032902428029154921331832740495849219662674440896747877243428274611904208317908394398423755443013424458597845700812284579550198281310801172588667218149646793171965821811194034451693450597712112578296128929948058519220834278270941280812821603310381771411173065469204341234229481106775108260552033609026402409967838112112774077629436736888243459399654311778871773389987094629020891351526159698297839087997849285762960500449419155682889081965933429020217151093206970069282994561302824876603354318761570545145435111478274582437744882714694469520951616447622860428713931176508735585965280956815227665284883926730319280528395394750308141274397983920928935349016033223794529842693177978326453402592401945714509734833394431563081774944485155862773699358463130821006234947990698502817282032914195999051119442852095763195843524129498517288674912858438510053890365115399351307188006653371569855898341414042461421587416075561859002537014843586540688887344520187220557417915067347605706202509185578990229562331907222932966059485227102654414609241006831348714335642283218113758983588285494139359667793202193741312012733753746700969985386874103417901657006942974112556883757683570749591258527412525310265727014756384291946509349940804545924624136434115438356743498679824321848517021748968193556386633985742056688009043146000862896391051226841591109113209019039434701551892501390608779332640844330631263675387725106544367504419115545441151125274052662879201545769353306758278644198972795251937662073877938148598484383175105336867000221026327552012652426769050750141164421994343748475518270973159652548187976473437279506746002626305432464585670976235723184711646496757309734906100159898252482576041520338012080409780725812843807521418529661396823335217599689924436180491733845771145343286754481677054022931135817873722635428594112396717965363943231032277795813838149426922726639140567141046047662437201172856619874170942342273441191053317109605977536134572749165289462861128053403616704451982517759241829439469509544461526393893807260844730943652392640068060794544774782657398651809568649331530622462460462744373385819696313865942695907536123116597357282414496998019843154002299106813444047930528915075072128997161280367593525842754339785181690328835559038728260194285922343586456463886789388655381658971203525318038111918582307657767959075386490274847001587289845471091336017001460431162621792061628940461780214102946876222518006918905114249861900644108033389416625141594693066899660901806705975458658111893483517301879556002004074810267680065222839920121011224307501725993074014339376776432409126687613307806757475028262451472054830749346348248697631964145535259691779280625970427232881710581893149161940467520430322152798451225249426007111181845017894655840702630186677109800231608606561471169103631454045268309933659332111121327363000472288583013049802331783514503892055387756653912787788055706806409651696893922618666301007101261201271438875461886633838203012933237744863800893077199598597370329874025838648661443718286870305439513207322784726203908336513343195588773401002192193221591765272739762953731130700434789799107548787282816370359007391052425908833628301330209586839740250687887243569451814414902091765901250249564055760780821245198814034475013027208810471350466646968678368942543257861801275713207870269464054685465113211010679998456344826920544342523534297718753029632588390372408070320958477272012683367185616189804644042704428263772604950420316184263361491571625781227787104930172038581212179015000266844788592580458329271849953149979943733275721327242755884828596136957461340110767559403029462094127845187902120556464531208336023964841968496003977923713874968945091937362781808623404081068747245223276055090538848971781545558495378127075392370110997629140721452729468057839520057076706919954847404331619734209261912148179741418041726828742472470610097645473077438045945513580110482965276186448978217391832096682508787727418490322590635866243119369576414954266129913664992721843850678534836071281847823712308087171216586441023843366692546705585375183155432419924931515703717609850119990372738619032902623398240080659813646811987421362969087259427920208545421697706613597680041176917610165857351677445488615904631546216748531255746288797108631618750906867564431888600705400474086556831420607820029545342552269970208938285620292100327749542994054113235988707797896520217638714403421009781687849938032710172046322956262577049607170870003298705258238365322731903163919434726783304488139616451791019151443800174609317007892689826190636742056386385165391583844818842570587581413870733137501148292674775463340255973120218631296774323598522179711564267154664061329903926946674868750224879688918883128244460982551975509504112018880140139903088288701869883241751016428903945955683683242226915158950630860247276147716744014244207868629185268782143965019226852730956856832476237741222874401459352242011238419484039177173705424548444859786243577204825248950014536339332444170498089681949633480958928504437248787940639133662143356179727525790540385801737833043420636724837840354499445886299617408533130063180942809929702821781965133426118258322239134651864471020101929091804239262809695417632285402257820932258134959775034791870462155509150341311316033950728759972964703272403890952973565158068351749632323785124386883345633813820828168435291269384397823756343462598022427332710881218972412690067953605834583116771331245857148935399470978837238211134149908608585955191263633855204187862390251985775028989311200697945755416758544539585655474349534166147521575209744902702414006052830456950822348584229715974880791049541105618065984404908193820023948274085601951763425258703588915120901411982291507386388393125920478880209305476361362830029141719281911732023970459350677879272013399962058457874451637573061261903073939160139938956046830420187917446160077231914085785448217657913837112933073323908589686718992367251325657596342692858230046654024747267342038886228120965298912574837369753436153893516980475691803910586847975065251611124183859773624125563120190085399423626767859590301577133491110944985304033404400505748160647142414207152132649326691342873588512463690280978963072832368097134880997600502582079597923210880006354530507661673066675772442247005084352386437720537590719910404487857898313068096458175471248293694116899933359605776379862392752383147810108801005862281872939670888694390922756335208354784888064174236555413180257422865768876099066465322361028413835086079178401334223649844468454007869620979035219162358893032013617395375493505464089708096390332174264160178211176965027589467010437889074728774527512872560899802049008945352887396762176254206796600033767396893159774654157539040985597449086487609966335065833127611312806917602041817677811815034657451091946607116759544242617014148789170574162609029618026943205615470091122147424107508625553403627772594713656736945316908191858027618591284110039174987545496022844241781297047281842394505982766217537511248152155815060767154695772892508126626115296638136478528747283045952512560903980218480616984603397685576186814405902061839407828594741833203671976309963030264292951306662990790774163255148678355280075599518242793435145106134829535206728051981739057305728565586287936658734438321496615079661399355174317789249577294050811497111735342141140170329255172906200165046946312780505080503965079238599034468488187432305385931420532438951583473943463758910638675894679846237402476265426002002921910213349791929208099677761047208131790869678660556881356429935432242029989454582099376668409342444454709403454072171370284864091322801696445907991285632526343517753578915771289713198695119553805528051197028880659420861753438274587768639928980922895689620307169808805708443863410451892729393618537841746391824304934288194925323609423847299095567028687840338318152840247399052702881981266536972491977811600302220127820934827614045433025737342627011615724133640558207318433892728873089294067961599982381052636048052227729069409865954176902487778268245671658298277745403417174472613130384432500148084044569623774609966280802743275062083626171826688525349270389348784673058246062126019052938399992455923926323469214762204806666257922775795061477259817746352934618995640520251778872498525367022652643744554847326787158086989002117435173017253516773377769285495042591459861602617242233732444580826387239579547600815584743067415983146798288423229625746033327510736263691129230839527554422295538463341102783752935416060924887213548775600246919617041791231337039187839777722178485771607869475056121956865160241494453652680999830060144564134936905371399878380095900134284034758463219371885938769947560331484628120171348780768938486471372816034665360853912958188698212115813712575137380333969758558600549202781013540889641735054153371109217398206975746122171672166283242531734547509579588413875260170815687833922344815916018116110115306262855656185520009492548893023512598041425104214368669977794978823848763718386140215001104027531693981489026957944229472009835526392092016033536981993757189791177819836436908413883464490482680471574223175762632262486496005476685974326811424452336105948322767829829958146189106912094425008149737762802328831787300826922845570137671300047644965466858958369923099885391422032722222101483378053991373401003247687217043410833405512736022522716665781213071118814352021248819403132475689894231501039803878906507746461401558528831274760480994596572190607638574328937877000129616907440544547259866641581746455492989492260634919966419629470057192662076851823068826266290381057887162523233551157525965438690751846424711419082101512295364609512125673685081000625348195264718713842142517311281146854998510832130547752203485574118888353958633507846943940051870327633899808547777618140523427435066435850520128987412700296539331700317299599549995571068813131325243749177966270838371890935148807562955788358154168173886107529779887766239701258349214552211898599249050194143816708356231807705843430922427395892507502373465187687239471838169115097913173766633945265416260795857726180802081126567837895826180022544891846757027669993409494139288684310226327665841843836076784636600411055114962303550412704077751243124452435895543026898393155978892635175299665738605497712824588026044430854433119426840495782890100438888815849762091190930424960149278610564147361578650355375381996601420556742167149509370107153578262026925921692913562014609627094055178503154315552727588755199612374867413155891495269849832924907815793423543496723033936307726787558474581267666356720705094059295003977198121625106721578608148028265682000121314874950458695688218015980634204637543244890128226346633135643808044052768354689119433920262636506137278828266648450788506052001523686290303516825802277526358974287188322779840854073942830302333637928764834987107235295147908688262847754678373676627110026820355002502311645061343495136011556239195244817107925544496122927112061333038211635668797026914508129463103086394867588268752500434350606372865203674138906829224138048248000970059147159110460906199787526864402254733534133592269587613311345304607425488769139860024647534402138614284040143482597934083416674225502305861636740739760073558589641344198513636596676444882051659132139952806957070847942933140448189192854947328801197609737711515616301165702408968762545574978706023099991715969239585816634199032584459055908710618833962814217341677731069349928211889417280723267581238544700034213700764310985819881094774243635617715615060685542435944875485582609598593634558163285477557438078075046325462375454347021111593352596012952319787708341872818722911636198748231709250194087081580786739925227854576111204545471938174417994982162343327183483958597578428768442790068732825125844013288254004173781930482564181988965673768118111721956972300762704186133155391880522035799641769437156656104598570288014904944618412460652200126740447278852093355556191108000478673541169063701558552855425587041727151820572930519669887723213708772117008308643434389640589866379697595996551983947354336789167417489139060053630831138005888613136840660551583905796662188278031100964192784925980384116463101645379136077250151904505835433216412386019491018557084081515876020897606551561991899117312113410749646444692951682468383086988606107339992973981631885535358662887550092710446484862793965015289507999536388717349019270417496146888178752263017942856433169627575123993329391055366161419949844481572354776239849874568490332918435948338526634071448199913097507563429585737198140696839148292369126570533444683701517307087028303615035845792772841024339950805752376447666965294747569404003610919572046161522369915596460524061888475835162988611374541005574339253317585039878219849999238924803833821831159450285118975132789566045587293634774743169018685440720831628683320192937172938217315948459517534307849063756244276322512550904820103191447313544161186548369846923464173950324100421275262948817186626976228041464306483925981285872685505799874649029568356926968471000517814860453067980440469840209837512388387519262148023213642886385524268015332529281717828476279094837925875444479826433618028059218330581055354233666782688070554271953826958208695053666948925134609464421606122884626371452640545157820421729004337051638323148038789563876276269029685222476736628260117967240638408323444067635440099849340746521490877173258160649507050387536127386963369047864862898099454256455338235558945211272897252962591246810507790718354713296365530069351423880364116354491972378559784749334283867370616754533129149660227646728236565179462680344371323385244366672089992678379466902334155870264219079870058369629512048283912987573361681876971751035139146934304693274603040991506365960280943907769651619001502537553992000189662683759236672317206279662135995301056926143234183348733564501781977015674789463569419529849572526425384515061594518923287105414199824338262117343812481056391273890933251315023719129847685313186831895396258377414076832524103395607072013203722004912365505344842422442287627910732425000023851365559129632355612219423267437960613143432922746473907837936886175886943220348608293856371429930611656198285730666816234238044548604777311639293287080846877974990048181326414550636466768396240079869912953403173897440569000808201273223532311900258373229075198561791823773970495233876847372083631162562304998462604014826008582253821299884822481698492404836629331487347847132467890901354921172247497369493758032220290216556930681343140167559314851858988083794701757238237118066823143254365855593092328990625916236064274896686708706301263200452844014132412367498947533483613914410312732814825021431644418611021388665243407611900711562562686956300985154360329955048812098532140281424869872178538201479554101344583777661940017482822240696998547967811278315529009160533527483694608290507724630522573332262392319851567760055669751323251429651181905973555264693601329962228815325216841758734064614715644185692113633303423142554976896177363913155179527670376607315311437121812656352225220997533709436189091376504458082698443457482431167823216176154244196781107522550316004783990955220867183791822755433728726858519065378723811024373520421207456155298298947503660650193729671797935243214064677044544130714017170353811125338111856389400288340593314489737686802366256127503824876076543533766453248925097835344783103675366878681378066739216991722301129549449006507103767564702824863384733002503968076362863369042081584075703664681770992746341129140857405942309418722437926607690878702931115760751472538249346654714315035394124370549260408721230365779959564042218013623351098517205700712931173592278687953956567545328758912665657027785719243809413117410029714309232519630171209284270893970738243840833190151930594642878818812405382528140830485655933166942771133892454551993683293927020767947074706824992888277229597645015275868002938216935147081964901992733657410036421747139456358992476659373001705320689251881616329133681637750975296042836076049379771447803373263095247655434012977504047024779525311155667421441072059025794030004654526058383832732315138736961380952103047906630444819795083603450460041324166669890927908156683297879585210164097672801792152872495129706112254439474588048520854344372390424583620258824378020641729015764291587526147601965244650702626955098904363714162379927232554416575165672720888536340561052260781845391491565635387913898443859414887646766143222229355624011251046681436143108463980019818886643586314730350852350770637750699997472120918556373801053169789834998531071860613680134049363577305140414136970086181303522676839157872036502179002492651374964067464685786401739686449953675818298956345100027284217461162530990686247405516438857236785879220795517614313706400252035360935341544722422962796192999939134491544445478089175102596335593757424111777145962841345595589846164784851956056955337869781926022221072400455515009179823729047616159469384431113908204359996338748412514776870389126967723088112232584616513585525081038743860414211118393922618503515100126150197217133493338141991513762973582676825258998969096427803940496110685885893389103948777429861810237010516450606565449638629592034663704189983866572642498294029057548214697465564025017141502278895666954632453690790119511282032225399596243108151367398756071121405550338886389142254331681197164560896996369817891910815005660515895059637956123395328166242383372771207772784124383306403314092380241490637081215966553099451922340582943670296642867040969475754269820380773840150898172579634058456206156434759496181162764613690509952554163883777023777202938898144372437966605818607135166735055221825426264531904889799718989170301583662031676009892659726852798423364345650695383441237676021989944985423854853033522358013075627530398988132580269105263437396078965817074377102276199939428637916648942605810505628325412201201764059599258508032216980387613526956536104088105802558293626243821613488834196637988587118233449969194543061245594507295841233778872516503319660812999336242543254369375890486180672874167491363197260847858743061432511497272748288264570794859414271661688890553331117685223215236192266762097510156786670055910210196803238779516489898807448456059772942813555265218535209021031965427152570965001515032436389892629338574011676956630361145674355994177202046621599978414043333253830485028977753604929467149885451208835596862694780087287500927604089607752106576516175783354946596647766974954234215252679713656350833772404013259554416813810644877019768541456051768020214582571475151030123273226847347984796586824122868721071276457282454095827799394682984332480524704301661748747950491625112965737462406465064473227512461883122771103873884569652604041795220174729299297444136462549734901462771410083727200610009424127547414398871294251639863541013532393637694833420253901284097843662445952270386097645552523124535850569863389704923096818462104382181097138263404320703245514771023103032082569492502219186751860476160340238319788652163640449592276254512767265203912922337347936943278888173293489749215741694365012643775964324204861740380575354654933345056038203970750089146015111803723739855936595567429349453533891104724778578251276703606897365938511551098190795944771069051148802938759177267029780363263793937232047402793163474495678610405505896713038526929175424075796712534558300372870330916437659391618162408455859749848311613523870584940486881078587484109357351195171421648022659127928979705802472882167595479725264182768501450594024529453508396192042527542155180821106164743576976167929765607268455891594667778014674830776002499492611272524382487660040550855720789509377361188660750706823867126701734884869873557769812973451193560608003250994693156067571262487331218425498689048642914087980701715322858897795950888803365402779086018298283001833060732431090706184549343568450849873913510354866002608608564658039003080894274819467291341668406454337350517222508815125250022010993361455547295318095369807390456613872792635556719865388641973778151434940829732672685850030002779001430938107636704854527331944599284511089020277039979332478306696089582392877402461016306293752684890629269868547497451035716540911360441488466768615806321252219144340329594887032306826541855947534145041269514077268850185205327593265671143934137873548618891676900772805219358219086334491469682604562903648503841809936694943399772134617345698396477428379224256719178819045685279405228020609109478942792129589899717945216591133129844473583904774788196240522097828759641598240253462518959882414409709291248739275553560027980722134282671571424684178086942747070947810590522804543454144831865934643884269676406296245791627611384858532978028481969530678175702419973371231892741710516839614742383886429836411328149523850119752077983259940360053794367714653303430146885981351017024915785372910796556637163265797572573480871621655664836604909313695842224355240018939563944399575380012072381398846888993765533126380141530679014970279740690358868396776616861931523638288142847432212236811586712202298545352671205160355009499063550397681802950962192471949809217141118540670645449905319731138818898064194277989287041097139374327267260373281694767983770203899630528018077674319222772669265581163606024315822306987988837759602123844206087802131167264128236055473467352442818988446261297561481817784279726078595043139362633178296558404325022982498371700642221589277095329260009680822227847244943421491048516338634283688077470662024495946460210313377753649437451025566319651587308931758969907610666246249235774396283621591591176026425990725187850090907066153002192744350901292468518147753621291195500275105170072402644857536662054400601781644204316225646205498382019884756804027930998253723652082162415512575946693002235962742124635074153979150292066369903649871919836880543091977983438790573916716231533134232565851740421791696684608866467201604854529404016352140357605624815397339978702601732279939753747763052562023999153727924861653825344767934163366321989861348824736392628294539175522918027054484280870629973770733965941850645890600999933604909120742656167150945655788695073776719718019189242026585057087646418260079860813435359395892061872170295678408401440329027394397761751104878567132428983384822508650817526897114276132970101545982345618572991428876484533214873698739158640289086594685430300924357212014421613843106844125612665585520179801349693307570873682692789014424057203117939647457586610556065662424612234476034343454476265911849338310569079234690277237890355992666930765201380398828246050373718393205062419766540396712211381807192717444867036602170068216771530166124327831847804591256079920273743639817313427539388319546304533350337923655895310200577434328459219075833646370966255144319696208800141438209573903255123375744354292933573082472288062672894007552727968249527465278912458920499736501174346583095908475712608220857225545664880128214505365587277066282430088446375986000900949898178608658596828086753926115628338555283300940312378504526926363776759634872278238743916490893098701818137619864029781578216587416111370145131320067279338376867320398532649344811667505358002135422599620094284629617807734029050717743760606202769292772166443928953011405586701394092076892650319095780938211032089182294681409828715664151311972637441980036425276998702440000998630537765452612545870519645243114469582395926665374200206330778874754924507237550134030160186621880050097009329007873314237646016384268732228473786508256483982094164785952256771386183730412680905764533237332967206416644344241990037382305808057663730670979951397815095733976248364679309421077984802496617650541355057354304640420999177155512965657755305253673145958462292654251523582835623565105184588431240708049914078700208629356921552225589246709383518954878824691838739690426469396342769868795761933538388886400778372388107251112367239002731484956657609915129138100620721969451297003446454436720712887350903207184815267632915626038407067043348344106306975184493966957902312653033119730566026604827136572335393313331550480543931502270567731436884132162008836401266595119827866207797538263921480338640448906612099982562489670539362955021301509665481323061830541653310057206489912033261180243861112187470141836650747258880077532648353807062877917680696300500992188351719138276346463167493601421625939677035811337790537758835216838495515065985605046299604167449277993942178153095912420719535760608530209396482236664599822456392491048180354258575008751367569469295425726745362928938705629373277544947289014101184180444913768244639741980536037881310440870564951585666328132642282143986193768248309068567624813170760527366185458817319069092150985303318389347384947591702291460081256149119587078794117783752528969931274312177205201833503939314359083589762607854809026068230565447569897939866881157411835991969228029058114107947058426525566835351393682545267131501077213638104100634395381127004832593053800525053216894270326686805205423496287443594011418620654629738090420006451482345842581307433338001660270162475757130713061846661689408473553583559992445216844322141034899544599158008211942213985535799122506696172367903537183094976980670926705947515133999457517427033685978452876924249563848045536383285434613416531409954325985165403474550892211722150860208995831625924779876349543733622924227720472143790442247262930817810119571260751292531965540605662924375816219153216797073541048592427474519847470905151809692389361753555367435220707672887683817702147892589531228238892304222591522396784116143469996316249726479071778250426170885795042683461739870167386602050267179819845763588775666340745192433189050961817724583486803116746127728657502713965538611397427817256828546658632758478051311604766433036756314069136297894501618631381435391814233167831733744691725425082338115491971797817432056437225427560242808273192835767917371382224688230356941343658420083791704916009473891181073488726063994406167949029616806444144690901054532131801378630189688472426629874569913163851796674293357297345087520373266645810873581574202789736751274339502000917827499751810701791787535287887037907482551432938040694143618238292162277529597159553813380647825698376901484212129174943838036211516277970345420531103524976578069303225270619150673708373601915461316513792126727696820953981359212546287485209454836737816295651072717265338681737517405814025724696160182710413156505257312777649914708698536530083574378319529534112513594188019475413275962894338946409057740023132664568664475692560245447656298665222429552873024540717714481592221089391750819754901585128394357175210604451616440486089722989304345444597780554329434328856393284032027251137020035764689454938524026150898251528098975229120285103852563227421699089035877666613826954787030236220006219954453674411000335953152091652128537979474748012718903166926382286695055612397066185443619117264660029266336370767743363773308987803263801945358045936715610476991240286158809810873174088939408894723577132017324109915283327402859423745615402049765608811795140934000940947959308954226803016382625539818461546080282385349100991038179814056216777986391547494628789717851602103747698379939421320776559320290576947341278250937611560278713468518848959757839017186268497847022469482253593809655391855535512198686107662361517439735067527216942319790564748347231557305255553553794787361034932917783650031250096877583942131903156297754958258277194435968322528765965857662956790847459102296215723104353229068896509098347267079229112388160116800626387499602567066047259318965130537143277685565955156352752483134262907654150137474357010806046341791120107786881539943548542373443433659771020926459121441477618158271272510659870984132132984654966669173983287790484096320153433971321351781328386379950549041142891337509712561216936852481739911024483596761937453175687725145538357693830439640136609486878256215720897002627505311530236933095910471747427002504287786122045836281506246250104390246837533501331921363843384292842435071953083072259846184278743686481731892673969893490079207233727274597393481133515621236900258639321148666915981785321137628227009572776604361540101172878943051067295462062284751399306803957477542876018937953451284548000184151377815535270830442032183968762376714700671038771125212155053938269995274795128834414360426436902041909238883063487697660339303933819537691381092344774837176222366596735290646817847916964013161360802333717190208944240569354507149262014136755284250173552385205785521314933755460001220920680337520368914955874009569320529924010849033105074024150070205263767527490887396479058844534592709223122141545435770750163862629826073563240772547924761400039981357061920198568017890390793085771642836304138188359198921610594974970371187344078475547493633081089136202655752247613112596850831129015617366064916734062706443671438795761665911825891590978182915708246689356637291228869392633343854603977871687307635922579258706067724733268611674991239887204814394434037465280353558325127674143600623914641474668766686818881819470759250694793170775206819486745050506560612241980736009034592675739544380384032897015754828090215258226897555271432261363740399199247124853228610043705629455023946620627307048037205647343534271690733633420557066051067658426548001948754601034153881454209346609791321417668301940214730231721264981111449266859881566923731226970505323326372803118293529763435201922475407173381894562831750124963391619847035251806036035873768462928144947561570180902114789206334335681646566457645456555031505827021905172429876575028489800485374527909198633623635514236216813946926804485656979244655172187830371393620669082218458859819269912216390193321541910617770763615254854772453040547571028277448555278947185155009159223733236718082978282830081796559814078941062379587884498541201746763936207671412290487882930648478188164808022429112842978695124302675064486881493067163571121709595816125370504086848419753180065453578786265723408343362060886136414269338338198907432824664438274283499561203849923455212983242459045565965930644660561604232542678415406130325726508318914722447644026547705143380611152517133565543832677342331515720389200746935921782670655430354119275561784509513027675893091327870134139574642949362291880095554983434826580777830988322797252242909405541597497167067095614631943331250206180788431583617918138765954793741279063894911490083219844875546593525108932494795078278149409258169847939851031592805143247322201113267257167422677659335360550865638336352882209304495459586910669735759649693174097094177049366981013129717146510555961704577261831040445567251181306980432985573503813949975616404518416390511007594360732121139983424470638704911733785424952673234691253099250459976355433071957611555452748437180009691447798986304871388657384931519401019190392534442005705569120982133039691241702414528288317377195552737020799474384981399331423554719123207612572017137430374404929717930074771754610868266510786227086209612507287811994244494548152596700651277358371360157919468067319637132254175621659916875730910324407280130728648305330374700724263261330787342191173257201201396851483362454075522443808562006260756871271374243981986750075218892965383423846824377895265246068166070184816981109120013619779159644407769030089121462097017550110035451716252430556686948351069911940868212495858068075329060585533989400236987908473457955838292936868482157401723753054878122612972661856124908567756040090781810877017004997777584821951687666166621024342006767143230538057914608920385639572939405055088915244323511690973034254888292675611543678552407118539430775158896399808266195846777996205138986824374558859204959555584453291010382769823224863905199975674591708687178209369053223039205540726105793740077006102826223349668889303470541651728431540558248340773392561455702842046328559933335942799901831567307155048493914748190892877537937638716377943055845577144622504097453187661665509218713187566931576581461927232940776767148755268214586596348172225898747081864169681205371673977664477473055173300510617013686411582422848772919000490254447116990628774728102078020158270321592238420675664724392048055137934140851731559895982161183361621599421520063317617901401324854858479025429010964534942396476816790372513716134337356543785351740412992566185248922396749193132696596489723525907183805460036556875187396263408993569529615715074041210676002486539943180388387435879898062183595991443155010050799178704569701470197593734621671292822016586924016791736355387318737855501930030038033593610039874314782722994652119934301815519290021077048908693193251848674438039141752035358235882418205633862915461523253232279509301447880835657091928889723110780745496292395498496968082686508040630913024645744631493427634843682161571793959095285487583803348416962837576786534869222185569726760158818503670599695648746260745402693649567224915201044104681726563186589444612254673489709353773361943051023415506518971426235302645535179927616371046187402792596394240326292913524930976083230058872686568253591591643958247114123453543287322309366712107151878129086898705424375559505345408286971050464688797909675900074268638280408614024240606550170869991960559395563761955173572744356048396335103681090756134903265260057268832032231596031924310835175734340474641330431027444115169765752438051225806295916495249241898194072449256315467050563098139069189378263370988898718397997411242665235386278962832709056610073439913613229111913503600956093192351267185728628264456528030039118676471175013738535814329767204680763923571705945224198622563053134535373537119865572122900737440737784116684555003727487271067822547646282505196795942525643984858621175257683779136551927762844656652101579619962580006823414158942110705038844316059525268898830732791067039265405718913767298339512060357022231291121843321512014746718509583327684661653909518372125196020612708980145986893084888567508556738739301029388456394928150181134408747746995016225846419647637520016735172850874004164937134528164406545995106310077007057671444048331281569580567916372483318930088509657506121362335739102327641991484053820529588855022079230412122308653750473939468440922931833420657913990140086712100529308900809618401556957041198061192849894023104277644606675817258417197613431494293185807877132045006828986538941390226619409120496780068709516788907661840430932047471948031540582766990666552962701432435748711310619865827827221644474273378366099922519391722270330430889318323861260276668375735653361619182339083022056991692372726019646401499138494214765782876729635705634884749156171062519237303963606132001210938121116421421306910533522498901909705894116902864579571296871119538586881808811194367823469285444616945578612120702398572310671207623826381224406283592182768949721221260878129750439465379758848466569978034499237046894901897280060392442268054398541619775247237898902235302903630115218732763415622939719116477663161002710522053260274893629215912083705904767546762716502205298244488990331593282023956077068316347487956887123246965433930570862641848154752976856466611424794173227881067874163688510282084831462155016481103685984822059633435214881808316449562327356191211776512262811925091109634223528580756143578743699320611475321389049934832421649910818193119172189607447604449164871826286483493157392664074780759849754106753497394548138736554601544148321121293285593973748883390337913577980824107328805178472657582479323228286130893631411265742888219103348756759690848011134966964702327478129637524464435848302031645748476850938662931011305750901911767101988522639006807356434809828596356196157774314529290853650641161962128536368531241789689222103215164378189912755054719309463637863922978122330745902850443425810128117889512240968445714701478685857313815966923309593514119084557545027517509970140659957379631318740978912679961935927887783369574364018523616903377474020447825075039689157885499973351254778850997058558902260288255202203366701862791879535722619439088442782044735814635768687127182289211327359593188071725421729448874038262496537553065074450837292153923184612639331611277160576712977375687330621919215423979069527431281409659165338304579145616242638913324885462357231786530080727377047501269553817974188986623163080311268819559921937297840006300874015653317442219254425469849066841644169524483909502750809515865246304389114324620958192696669801856179235835329904307783055869645638521196683040203922143481022105791327432372444086511525919450922748085917154658662094915350061791494245980490909517357381841135633484649559757554259868789888939524679558948561210232068979679234183078913700813426818849442788336383730002232976815403589561353958415821291880608691901333245666218569642232943049254994093967055821689927475913806666288574471712396478946411854985757173061621647543125639443840434247764396618192947824739893708461539575442481264161269356453495680212923607997664170805477803036633051464198919937625834325645544918818827328698970389975825270650222470413667603456003666759094788462391398275572981224693435155631233186929147110153378472852140096883055797666833264572404417375110818818189265832008799864326282663049863268129568422444873950855801987774765466205398864509628395682891184522049530407358817470468595561154695686475204360240381421931711218542121837857699259928610665541115412099260298275930629276493938465571525370211419026851847654602486414420578993392532440324850088212055577113971331278963005104761406819823820329413174528697518542081185154975938914478830211328211715277212117421070325400547662304909469547070907761522081814826390094025982660580625552824982254316591659613653361563572578279470093109124764805989933297260271908935847002947110239986797521452841336036843735324910116649681195100252326841529379697917999368433312853239972983480943284530096009715624249452721630310386384538939246112513940904437788500893694897187236267006228261531962907033711815781686409751845383378343166621660417257764319468986021171665299272213405500976579182478796169406499326012111442405904175194695015581151180018609167889574487411363572113284372174663673938904912535627369724898630595100551462758872569582586762306087887383353998928947048827889407196304250974514485016811598386495855794297802426846802662321246796371258782791924202701356093319936392619504116846499304093196401380571908535648404035425107560322416016761655603276731941803922728989097437049842792537041643416609177134153998778003983822742841752103329925057648977783410428322794703075175977955796412118358984897978046330484072243932709816072419009632894213355495617075267989735116123821968961315624687472214341753543144190629860529308528708329908095568383370523010088460003621329056487888276788024996075363330329748145113001656191233935751615352095966335270071814102733254581901963528347868556319129399013722975923686867877942632368992915376191373071628228815240401709473419196980785088670076443495207912864131963101456487508073688551482741201196748748543455500951983662504446342219596817301423727488359191446408354338112033682080399213158743493394617193079240731285939993338144650021090206625573446395226356868870220245985873215624649860937828649011591543007403389428905571478781330120454237541951725616460362266332852942148061225944561660237074201651251220013426827557046693587695544710115392447863376352784700028848010528052020837563848761341059018760026801846505920105165280958208700210916783666627994401067191435082356094228051850705688988944410731011374723372434549423540972790487565901302222774818641878076349757132266938063063476790707128961530474433405120677499491108894979514414919972426902122119325351606498711956558368213531194010586842122679740664457901505404742726033596956958878304009388412637890526251963863843218728146095955217995408663317627170953406976023325197529252330533860263515737398894628258496734814187540334662132476663432496695030407023693089897758813659174635913087566436086254959581967243427815980757086527900845261717353438945972924692313529274612453134879724560631844277736102086154727230611288838262290215097125826592642776133521369051152161602353170901969917900064161425634004151223776980170943545506214331933098496415093928267774365171841967040544858915790095921892235705875611670415984865242596206129301867452838444228589964435221283292220521393526935501295623776673570997360006343545771949782655652473308727943605145520371946730388190676521381634392180647700482476057033442348531393294931761395060153931412898677735331932724948917484955378333878157766655858966418044838607604970504735602390887460400286719155364162835568537862312383732411582745587780017563443290604151214172192811268465811761329625771168696629644578392582858597908271726731905295714007281658110412798504034540046734302977859359036151484006576169345771276969258176799205575180486366294419845147344371768026393655832258959691978551150931619478212830945698657869953420168633631632558408349749994437561358314831255467635186205462522782435160206451973798654710172102953026038933788803180727542309558204277277902685175743484606720504541751707690710310638473299026524690433114769273976455997694377847604932409316679103620200503494473927515378008273899955757924828777452536511170409184685387376018217523888274639122406165004816600726731287063918252520914297062310775170391709203150970713656129209962336520211007765291955280378947983220832520190344450453973294428163982808848878269220696273319861924956311090295753698743083366921514669736563081620739246514631758698170791901418309446799223465449126122983767671805452683768757860020184565302016496998148120178721230226882390146638793595994769257854121812930439818741535789316877703257701722308167591331271863733236434516682109471509571676029195319295782542720328675406420271784777866170452217722063954509683156188295926588239818118542362995805148419791956352457507184887872298688674236723041748858571995525547603998151618523772348769411080470703194175760013987295528135971464954884756455363378478784558946719187329978312494044151743801502089716780115088037328694012713114067261153798087215775961637721105933382728258424261234734010298466901120260056177276863222406505764893899525245611593164726517765215100114920715340113934431032834027476799534825514038232927042081631000849787650174295358188638025577227705124382123539902454328787422079017423228359757698950377887598320470052088577454794077320849711505346318891749789572564634972303512221121923224719460219249571036946193041648712219853368345090064528058620865675775938515341627392267847500250545005105096461585771231558826895686831576368697241040779732959156999331492580987343841724655566569586612593296355837180723136117768684165605753576424588286654254315830697540881065401722367265394255365316748937789039658371218211677172087352428149979598831646496738833910240095068760817780224487189994319645844680148947125307447026347213566966030487530396386884083400197155266676556814488012867915993173472792099002979847149737308434953954628861448756320728182574641985116122056033633749469447621209978841592297932843261383171410009576559792639313598288660276523582098571217306146815045838663015119239710072251922828528909423556667224772808319277690451955548204058410629209473394348721261076579317331337515987935157784168078467458876430714439667245475838986041121955319238184473522048466630426958026694786610779084738077164660434352834924999796860806429609278304042953603633020717541404669721512598322291106294640018474990634594389905143668992623858638118541148421319148647739280902674874905160477836528658543313907844560980556752264454370006018674130913167421283544038352238543306670921430932542125638209022819633425798572790727892736031161784281171136827481003799586279579516441132094823461459465316709568749572922010404697732891270552240799453339522305957861628137959172049095655616638543084837758403756109558386097962179572379761721732502663166779159052252565885511130769186739745807054377336134784415778732131808901543261729199865737153272332522396725116619661004814454317337950230964340006409932813676593912721218160254086863018369520244065855807494709788061583438661116267632956988386481031290839253918214282442123470491272084453796012939045493184375412456386048239502854831376103728048742110211406254590085196786210803331823332579919246263610234676113911873644999139306818191129729665710917201685553763931958032721872157474033500521360154473634107200512405004398058185834692314318185757911467943218655965012040924451211478766464845888416146466218415146959019290089370741218078842437255008437269216282016600056206767595170853996473089965672654902339833820282363023585362676559509952436054525067739017118813121652198180253182348744957740140041730622395033927387499333975092451005707126709407488440346713121032692283840677264441147981939765294254259686426172024867976191132835064039455913567982734652513989541683987157760120806000155358499508806549015754295367298435281104195878608415785906433768098267334237123832530128690002242881143309484416031778366137799139333765162756971799160444141760634965495472127470890439408392376639430460251823087377705507879499726221428743522209371046430728139312674376024829337326511638297760096837631965423167955015380527101752273715693252033871502838976359125106889613878451747233379217909284652443199398336508293255885714467179336355581664806092952185401824355457153545348341568333515847223432670104324566134037807485108937760983337118372325139410088097026575981184574791785405654425173282026052716108617893865164917761096448269316035450295296841005801058373320105711079086657172567698160692295995098367416099026229068904342597272929922902767600475237319294049411743476824281573431644881408089383934078468250048055969771240816595766301229500081989276844439036826146795427972727276815161035236332603913701486025015092787671970949269721061768269080081853370690057250018865202046916567560296996819517890667137721188835782105219798390797905844107741660445507333471943909807340860288238037563722356459828396476378068309229778943200421071632688996764757160887288101203371236482647195190854100671514038124438214498521752416424947169244917866656927250060581298604845245794532293798558980583957161610755577631866004419374493042451788984978123058102180435757497771363058156405404700096774426394798461602875454442819243490638019432535417677558415012381670472700855334638483731817553100400177573925762598835894005032936847184856400703388446431125037530132823798867384370885742800535054642733626488054975138321755197885055191532040417703577423158400616052541384667980063746177494211583494587134952916587038430838090139648830175607234606645583893046546853036619654196256454180231489476149047917716587225509742167304602397379248634310320604464903806834071954998712227164615276239090757848698644224087921377529219254496575436220692058152324938779377553477057455662444180698627468614061440953928725023496169651310848846346358569212561001653438845974715957772206335637572135752774714319037731450733431764676817573066888500411044426210740802676051020814428545379570047554723507654907296656271276103363984162449047016877112774578816892678036076825464469918683593196168535458571474890320120100628987933651460488744806897905997440678156019354925215194230924189423296168884371181347826666327147293464467448891230706483975290728812124951183842305113180632523792544902573925583712054923877352553339931011474057578980565948193426555151794083571469571444941832349966148308933364276152836053497558505731288997544803386940987737300658865274601839016550548950745761843479330331370592324753659662539423377458470343466773281343538233298581135200167729761798904998958754577606664105344929479738932752651543672208222495459350055436672119450330532798666926720934987389982807590473749827651272787068588167810776577480981648773528787899177956166525289834806896603519057283353194301030064808713968441008927625564623611314939612816308281972300340417239979363765020342138689299648121902715093674385491960104734913258938722439350546998131438866490697368802718550145325076048155568117498571859985465604023693205797794957039954992818299732339751018009653394840555574296270450072756008523702007241460537632989859257672975163919071066734651109323294152352867245244635977111472640943010977503779652714009810295311183941921734525476970424076375284578059851570059883127866088846489958715796180938688125162620664520044068676195890762757261113559336550398383047389054734648742877626223675427125277689535687561984832163833802089729925336144040893682356086441913278300425643964667533949297370919378518445784242969982690784906393295147745031853337787423488107953880673035879395924136046859526067271172112251739571186671475882933156744836498269957534031334729559289519408816550685780863960508517125236764567670924903468564342271700598828781258234028362822110092304360901315060839316709998298917288811654026334428200139220493744548560009127307042313493737258879378022694479979265147407911057147037275845556647360321043574697545423349333089870030143886587896646122761775116486589433515005855960977465695821509713824546403262884720706635623010395276256246633999657766735410494042308686231637136917373112813229916582707401737724994208840834497762899038241259012564793901229964782751383217531469948940410116475821021745496035448300718670425616703017083013578763079017527204034483161765675223492172091937489115642037890335223723918269774369125047584410693934969625382937107255519731551940874401139572611731844492217722166208856304185558218747949043234294130688757037738271066617354261778715720324616498991633167258041671301339859948433942473704017390759508288661866292795662965353809145681847371057561944009172986283031630545997768248919258668340429297638115145621046249626499151401602992671606380575194727816251779095684549759474527850725754705015116816988902989491748520999521211668781058650502969175900843213098070803730580423403986189646573911505659422199183047122432814530413841253846341580417844390213508929782421533805179269825304023998975757808287688613304053969429928698037488093616807028925947878417555295298077710834367429998203409779302180970574679024255147296191120688656077513269955108965492992966578330012276690941286883244394599033507765427757399210527503945957051698736233355763124198618217136350420766686392806815338168193176590692457865124782076832406587348936235302681056055269184622869701585821961096370327693801340962544728223344283614840175076124449619254064679780700932335752801225423978654505037955952392563793776090129114718433612333107478626073466410934572837902324919841702209029798464813371670380737753025159863613575500631345590794597161045757417707706138633266896794676900542939041983066968895241551432112715834627744808827895438905152140977624845990600902471299700197297991894363428342986778892945929263759806911792239248333328234753975194503751165939828940194749827750638713702190687725912952026713201189551403580458853436395684708732255958213635274528620812564282349212501303035646388757003243296128682852038801577840522945001220372653784891614567438860740755141166704888602044822508227609223029177231436489496048651659152000390127780838374665106731565880555806209784925061026926552176617498719673468240708108624444434927779205730450278676731176091522478791137108654971691941723281346435543953899323796678216526911863054368247162603548141425291813696444495592920917216870897439285545363347769022566916338197772072384156921171115010231699974210246196003676740053694495123444550958825708075834202648548183578132866469027008862757233569512127640031375402024026872120902450994045131815102252575061586263813501609393784795792638915469719738687968624184468879984660951843118585999731061203618424905171243529732945942883028148021021286948711715173447099043266933047899732297902947175070195832194719596585663727244355389684082783917668706065611765490198762320232359599610165704751532852291465126869758879413112349650599894210089443981234420886576804720403917875206360743482502865963519270809076312241846187795571108648502377998981096990051179221652523881515001972092094225764491527025060127567419507412904851759153969280066810858332225053858853186851414947629250841373013929774468988592983474026635896301803111073259517240973933245705412841905894918746041099773767311191439750438042648158245540087795203084638421359850501070445924682234362916843784380868909681177255540116139169519328674621794968140550874249928078939914920791854890522419198701875009656635700685451989092464565964931410876102061259877866756907855035041236861313903437878672643347949157591267615761841725519819397203275040221035745180103194750486562576412298212156801797220690029803855233319857081129850867585540558333627858540414996799020950058378995930408575667650206186263316505301841420607009544778636533257997452822928933604679601123706819214393891553767000143030607966572128792345522396968477196731217551366203380001714186049303484088155800906688014191805147289285128278281297461485652076865701503002630229267679304740089767233406511671743679396179824167192981570210935530125502079979534113798588939000078917353990743972824923338893234401008239342927849226789050104417837038378809008360443181882085437404632568650399288456966561324184735620367130949965457805258324466851623877340933846775701674975117799293064672551556829760165361026184256599823593766852777127955633028774374996727846596323888044107953436781981010422230683720835516494967158636463314607889912317821715616522304563412855565777923765625917560317689015456940883348671775919461750198211995242928695178083456895591227111571424534958999025277642439714959336960840890350615643912735654010862278653828737630515220996243057967268366887054112350847239870915390123865434507936917333191917458620837815000926620782371601296188201948504392197570625938958280033969817575257699822269444816172363763960751045414863766822292289491287130514507480634117665824222991468850540076269367540913116539852179008756731344557443206690790409403842466953653619490809252202321332691522418740239851992031328891507341434273594269632763502581247959616536869896156718723824504867567367860452702594065170647031136438284839789442718536192538412080148084833231254993216926163881034127006311269995006388643412769573317598108795592020426503256800921898925615005379378511667837595196414573505149696920214586865565648670733736063748229137930889726928123990548344248242495327225453014058269313452367058244214071805361332729201540922605236395000979594083443381132647075077150915302892788594272280846579968816138384721596928864359482178789574530410600424911419588593971683759241980808095959509698358035869122410611621895450085972198126404948159753227742739539423339336634685497487665401671437935880322511686136417176106232184453760666324762901558506434749941684938551445532971342416670671101882428839691164464401295644993778002592941497283417464352621017700402677745246811764934610677266369377306964542988862457394339155077502880188131102068415454011019735312994719113429063294313579495881197021100692641488969535984727564364584116059157260049281743880642317325711677084006488169104173909811259470796827116744535151680737402502937106484221207816405387684093918695644975024537708297939516784543121380406606200909729495872711098262705881091087578363567128696039673840171249350940159059640443191139144389597489722247959171404554618471213030179993116539557939696348365512366775474147627263599409828669051047037108136385404562394892553487685838427627052497239804154547876832516894557843304965758789391051777877080929818174086596515783097221555132255317063203488504050544064984729338375915432021634702882939410048492127274304569779543501495829565017851906742183898665581522298732935182587191248732118593296656146343468782871333078142742643025908165822601400553537519351430280821027141629555159401618295600919504847111191493180005320133923448366264999029375436246686928915755415595735471872710462035084466172818873045471383995668004948244862252052838835842106737093792598826210363535921372943377288974317033139754868730372924961889886413252351373775294109553901134054549567918791464443697740367483034804693026178838349510127069563479159492034248690756226014609684937509143486413798110323146342883455842754591638102456943707752479751296094718977371748338033621292279566794207667451697786103357908495174935848277291512243428523553773402606054843787509977380925240409067261278108925919021427373187379559784401283667748140946329757163038703465661595899394324121097998683027534522090711110246116731411177520012904311339788876857272789118705313475451707835016377964109118519223301599516768195084674811785095720582958805309250532152819774199594832477816366947314805287651894236686934692153333287730010780754788595551233320158441927907451750620426878652262101983035644404978531997029513169730701892132447527381905794465940194755722890305473285720270104203959029944509580688611224990532852926405553276665172829184531692050380624625781952768146049504297752951710085992294577629564549276449645440230145660244683133440857698484107423625971053999340349240803295316845763426982761369901849276042701008031290064156586477195770209294781389629591086953602590587115847582173625117719584969481212239626861969019502334620152237442817051150788775696870811914016921527992941376160771586078070769037851329773671906589107535270584903558411192995002303158732472121392654750563612828136813581853188762666997398273238810302237430428362892083713573214215562989218962769868717233996889734221724905100892861381247560434494599961006559797266670684752375420963227565538740376706226390826971174461402209372474693294264006949133306132938027902082111184668079334050507094762843117127293167229325529928392444310510068965237781416879384012627017408442550302917310066078732256468947817879036555175195097400138449347030722056592244150621122704357852376526274152522225944165172851573699078317026693247807997418503317902407578358447901394026007567474006329540210763594841223259720409399333597301477705062898658596135246016886288337343213460104868386039436991874987240707501950396647282499052642385094984558902741581519762997122266727594555672587409146337395878654450118028124837563544415301892363359351541043701628731545251841390394387971843099106552014414262026766390136642367873937912221449694488973598256011438340530945670395183969410066127899722276021867899973631181826266481032108621861621843736956472093582400717533436102307094371671091329244337450893406142587655579957882587947848620315436927945496628936201765920909198837276534630997606333879998447645777185473928513186298615831704786420284338420240571812108639398094091713449285212860147394268363615296108982461221537565422207488973975521601396815873455404868854297390890604930486277478793996261344297220413037721382656882371060719558830606542688772788778135060050002485704906419989115513136192165141280644325729717465121787693314047594079654206898492856227469618591489793767227579159759259505949703318145612550502056135243825215905928952450662570971243810846379787947280237710498106598973180836589926530981204338708823234167929885076099373764453799540217218076863809171012961764252847863371549412639746553253917247617077465957256229716714449400810211294046789602980863536967243853672563764120093418427637779321206291288351571541383108349977076876470613289653301442377200594865295146732857486304880109711210952606453392800668205600555048354353933251758844636227316455283184683883391968999997637479605602585291361333829573959047278947813590264735741820925868330096166117942682478554391909008555201945466905220451158466019154559080752778229054662783004959869847127622112309639783690313425073201411208266474859049837899198865755403912839756386136216278551362435175105022087371581012913886249864086932352188971864435847093016515285916019264650247345824996471414662826386870596963851903842739926410479419882163783401614349176432302964812182606041566852161343725742413739244214769439083714806767076333429231478345471747702324804624565136367058035355368992851590423896142696641529145516190233791451422650764234859690563163444731836928431872890417993424956028263551777502903993333586535056131891463046708685282204831963506460569350361468995998166821590653390573145587252098325864477787891509232158899786836715735975896065845358694049828472945773960587781348797927086225984305035937207513172737359557667294247134468913158970440514694773583338193629292105705394725524768768757654784411544914941486312298824184297390595950659888116798671706053052596765301233767233629518241902372496411882371364135783424772465977624005669629989960822201557910423538244205413390006068915316277567400906321801124480376237400169940607858900434318323321141851611245636642108939124055259210814073209527802875534785635830270548539373883643226574213851036059027444906404303736011312047994497462625129960609962878411645112268834922672459126390460822706242896632078448083325495996138999326954858194317950053484331245387095087334789409692410674076273982582389019257686134911956577676517304372035815945369605170975319893178772696887214621393065340911758671762570810404025483147814276672555363190466879117030422059129717144100166733848484232696840582918329964335188361214900342893685508738858436356877733024249303340803134257134932397182539884761052562169613700290667617237699415261615921999031985042446205699156188111703043810862031619082328604582853872728087328693985648110077605684184410072820075594565783613396361566685632483130959340762290829327979779566261178629682833935122121066125210401940630601430025094208925070759397996253778702353441269367577358028909263712520414018846584489306898195605186900915829655376703471637574385214235200493213228464630508079687184370418312088635496787519362777202963984196936028637320046588833785469790691366413816872887927898754548132793681521409910856982920739134007022421281846720618457721499812836228172164047393071200679128123364748622528358969162416837312847970487292500784077901717964492072511752789004139048475278153145719558309339747521108989606379814622642921848383529696771847490700948425850838882587772858530909060107202274084486035301319620736901947458227737949370543733835262114960452132053343219131945583746234570573948597314365996217086110455018842909354849468589100236915599843036804168110574738369092161905141122573463273647874511596613412613570125346521560112967302751085097316172245843289031066146410027894621686755648161805870939518998196013984422712230382827446861313504574045091780917032650271305009921429231569258821354890894040624743216941407859142138857927408935066034205171262323873631046327233114317182210168318212432874628817637350264815332473913568675577724459557414891447914395429776739163217514013157542057228927555028440825460904500273890058910024006469379856515189047350584398930959332796514672943480943225341584309867459443201272763365786526498193389584199772873519209293113983555847587078106105625195977071708010410113665236392294223731600200254732325807355450796028015385854868337867894163051839752519489988070138989652246724541309484723699245188914713077959765830376470678315883279686462002937803819490719805483113053180094238071809913386224131531043399839977160110633729422890914702746947252093938866311280640745378660081552228010021506548827998261542785826299911551619165919722384946188934586022927691481124242016359645252395475958892204812228142456186749991149759014099078458645656184358022880540673426784279697398147159400030078928873893370827328521131136174135377906793539213838232203206894838157010328750615023711180448556283612727649809308632463490415982080877013315823366221249227565904750087080289652205627307041833704105715320204842698254277650040273397934478394373742893721975451337739254529630774938257274088722750289790946098388219258954984651712906751699729811911525247748592286346717633943107811210343873048536009591209668992777640461995600831856813001895389430898617159142924007627593418056501532235509047301137922592153229834037527192171172017371286850011146525710695617809936850437703954287856801662953895546965979154282391911036051227098675661512704102742000694805097969786631683144048676440505490242906848320171915153592187690279079463988761251095564133821833512125829617934070512808901460337905043233396207690184413616900570282109370398176989001170401532905996927787331020762227679356784349523805590087792060852871900797092617164899303098450124658205567062245468158865437083499084505958374331307914729376682923179678338069769221021213018819555948703936856367604860685643955779607669167389236698971840463925159770710688226460703185564700840878006242232310417368296247214969855732438820466094149465785037504721970611344697925176593207257237644305121843566345438721117520952908613409319265131288484158610912283735232603679486485013987627075011027261822900476281205877648370313273169498871411850647273206588567878671914153020221717720867101179015231025617336212294577545829871210047310808821553131617812800226314160050307561056072276946353175543934881219636762521127920898766723253160910988763793743327593710455377735916169171649916004507742387013446368320273641585146108964022815925266989425277126907250536069438415565759468376965031613503465725199148049378062021960442255388723458648716419866532101907853201070882408323684257840611075952632536896965030624966152026726032647071248686384452325846603801700602363856478671299212773560646977226048086017281763017234053582210827320050572585967311539562812383258434144296753122531743743635999372946938519966318861449662316921932285389157120936201403111259174830159151111830630254541185763513029628413115264659120093149454754953617462927349189823880813242682869130512736839044215063365823527786825887429343404208345312969977918238619670568055319407565486403157002980389549824853337528151750269358430226614260453089186921382198676751262267844837349292609520752717676817340220679552532613471995555780275521483265700110750976455887400954841900695619016915999024519766223051098408962232251240379469312924931437550772388508127713425874993230721325383152248503735569688250527520008483176099489652144970007209788994527222603664754543263059554985649531207563319018759579184651245074812142899903681608382401818708750959111127875236449925498316954718387155458485805186741026038702039826452645483008677091968474789735245624292559283026241745772418332377519609288986329269466783722343605891804625940922769923619611403546065255071496655011793603109921539015371497654311625197950926583736417229603000663502297453119749941662189505369357550461687662638980003497218693584172077259187399706973853273991729945733939529805727817693340139474679056525099664920762824854732140808996151563455080450064030357727172519846920147248268618384291573914390935553663109223075663840696869502425068450805810273023856027960704079305159136801278340823934029133274721850627306511596120631061364703454969861513794014253574472143130723978102071851487860553275279302760786670268534823594893697373063237825248399228662982738141970997386959660668433916850415156314528784408745454448369440002300698428984875687032602572509468189335873625077933905867218817123732454192376457917827594497640437216800144214999391067688145224380973719473023140995630603619722321243588216557737180633879706433875398593896729110746364988269419020677600930351896307839878101088571533487670864628895340104666184139830001238428437953487505756335266029004628197733731080137787846748199537175498696710268647804572389511966854585153582253360310249215385778690311489095791097714065924131068265816333924603579267061208578507136234143657419833482230585847064949500017740167813450285216646256569482840090015681490524049181278452927395123215208274583958697111849574764758160290450611851237969541060090239337242556154763728354292439318938961103896552647675933724704541195727531875166502583077404728926283670106747748677724535943188892867556384271210363528620689867236275424817266116546120935536284017134066996688127831593495228566192599982621992840633467030725490113890907691645057394470427790841631617589601195596772066569473478338924215468812774740836030094139987871836454736512736781158462003191437720465331784841015767786155614658649266071371236643841110191512670332154734693546371331668506121540420047373287505713027682745866489390634524452027559246777114040137711619876918607923393995874568609378514013008567837770957031787565330795031505546556629763224979594979075501432100946633931313199293910432196964616471118582251207061006090156033158742603100328211494371977091177336986272537877577925140923903983651799939516605635947860009744340740571287391755119189709660423520920216595188508677716924983313292476043126477099099934072064931904139244958610402389036004521300892014031312865434748762285369070242448133826995341212493365598851181349481417701615519092298111900251081215751223207791397783797870661785264657853848847470282729181155612566088030375383099677608215926973424457801918064854496749528808145490599595485270203283267301042593137856092739235407859430723279629320951057175032190573352245352684988072529001394222313483744866126074817662165528846929837051943141691575967618089491797938315245900424236889277265996979736612471908923413388344053666750377352512954134968650753634700837656615041476526384161094233431546653455718916040977335080201864039366675487879414513714338693821040156537020439267544482385320540470566942243105389602140321555313791858762408712146350672164230376540511240444796984238009550971600274181012802841438879953159882155834086752306074233495226220890717505648956120496096936268474432589351329724223508372945746771662491689922636248025797364967559139673424475407192778920418794768396840280303030878615177621364524643787306717074310299156323665165775264147717469719310567264642976536361034544107339552322229408345034240678175271137441958726845429245887052070433971238520701694847400139276068273396993750303837431744480319233960791208856537391763318128946701278135263246007039835840093127831189083273244290627699960972534895153565881111148472111796541405565395323942457202249453513166033656589957419036177646902751175391813989681949135766240410340940421675658992692252518705760967223356428473674099160268263631328483256177942313674248836533368330641915691487768014182119433618176332715603209148744743474917873670942945996672734619160110726781321817148519163115704237768042402371720742808283591010625941902345385468992368934524919204142927364943443120943146118500805422624840340376410057177891812184147061718056800540780319866800172911403927503601935146775478588683102821501375912702092583676030830665107135523208220722428955786672772742280219246898821343799455587784585366858799918722186634230476572505350441905281624053260632882413667048650833847162463164163595220900974677832158546895385527103136624503812979230306435751757458206297439902631232888339143027409196885996970486733259224490005448041822068507866970139042717649901931579076360312613106903407128555829193436505511175821947047084026532931257284205616184502818260792011043677545801643473595636145418445164249890300546800493016045140951483248778059968008285988815744146858524453071025518840429959058301431189554661571022510849594726706715840824788698286844452377797837161329583403212143838340454442027397324213017832750139903068321742592987359665704455112815631564373577998303492814516471783387064081052896236716774298757487068864684121017106853768843631339941798300741563324828156330330978658065015448254845653684536876521828884642334744371277453525518588122420053383012904027710483267484814904416158885252351360432397586637237292090036154463298094089251840765978009291229333450653846223412202643757475783813042175434694026627998784219424441745146376613738429181575524275622600382920231376781226440314149772910335086437194312376680600269620826157090388564766267884003046890098963952876722064815557058659750065229449891057366981947745833143317186484824262138805498959256683081414631587254616549881644487040330271705413965350187397835038974940976159155266783721148611694992450879856312949766193388275308151475089732751590875669003315582731807150786095010932485421669611061445104666209911917650870834677225371989804504506949666887882228161530914561338142431003951480420370763362354150423468077923036389152622973356133056190242562034540645428319849851018854028244234156697179012034083718334543495369713321081270220318275113361871741034400464602739329927281996804897484287502330961008948623518262457550267562413582706877810097906646697342499888575004213776241164685678535427687604920963472121796090299252995106318193082670173196612786930062942734333746141953092787645078049020483898225849718515616979522300882917919338202380363247571235138270820898530881793311338750096673845324902894971334428716475388087855420919002701632323353448535424534477259525846984143575902464010232161469287082076993441514942203586337529096426326477347845845824907979944221881202692288495787300194343208004359727559980905852317356394307817812268431879305664518633045387973048035073588784303514874231456942838601582564908004601762797106401793195538871717452426099986710916756106556957389492332598556359215183640097022262562040048801248703397845328070233260169300951168839125626141777193751919759096640582743264152475476413030547153987923494031524795665634447090090431292185313153403940659570685297790004360787119718486653420007527633110637105309577847157099874383801835239589697032287399042834056146473318087450385875202620629877355354944861212531765472054767470294369147338681908351622582331470157833705048940932299027229408835916053139445873957551812960003111368692285184960322387894552302625457144590627909168233091499261877095965112173051171550980215808989847993154163834559048572855667186368310350089004327417153492329836175888075500005361400175242478070027479106840596419510703177147302076845376927812264377329285743060437372488455126228713775539534068463668668521180155405870604214497973454741663428115989268636231945653602443283034564284093760273697529002144932462558612179639100980024376583266743475874699816915941538477974261027404316549415120177906773222868733094891842499306674882989839562913707223561969007654155571781494757233045502039217886401256489163156824036648991588373578287306665060753368454063911696504741158407918004975351537769654693338074822026803971666450056451514566774659743883205627225469018716007106677686071859665024661720776357125054996549226168562209115572807001402193708784284660415159272971028913879559489315397359645336435892563903606912712545161712865351762223003567499117807493413490738816189523297550198686759876857167283368086126762057097911336301007971149090909413322041810406254041952732793084994088723784473658705019104932405422439973875116383563101052918131463220086480200846450182052608213136995798298543746394120748882359024207581584113807568773356998050127727400273967752546780744281501270755563507546040446547368657478681532506800152734689449629095892930117009262245382929689286798135219930546989401605914112421291481786584571694898750232243919364940144293421847321465471839140144886982262548798312086878899490648433154133444603793508831936461167388649689639738999780742660386035626760884191237601094910946789558367415505649386335841509143577298595758828173866910888965268734492360098897325667315429224257749866340955019309296810349415846987026150494397972092221409073638268681642410032272301544425605326044977830605563647769020783688699875971171790723066147848247433816494039578976941885922719448492300785954049856375448045646002014761314035736420646097894661676584663614410504890868567765017573000270460196623574943134444341548905523650617336123234893146127628035638262938861269881785256753669949550651110968570817897025719567718020147129041046722534750485852834113117661267065379111364970030773829577840289079378230303604134461186872889159203088125659447713565543507002228347317122417297887846349867353308053815962568896839083243399378317974470413072878129108935660533115235561561475872196356957158788943185974274010328891996399491983644812317616411821344356903183138781998029801525966272187388715307698915391585610883333059284708645170566256585988776984161951338806245686523718561556740110934620048124574885918660143228305070836514710315752553007789701448833926635124796982440805522049619804713636971830393281684619672304730788702498424076889699835753895656372339664462973245612775209729242155381465082785268617010919570426196926036808100320581165974055207194085011478165820345705263365318305693014691340934873903310085137880867233870232681474599966194319638694484470279764422317673636030962965139257813593725065824302459403712745643870902724487028543897964440033464934549032948060833363022005261540358291341139819403954443390763591072663475101221972235652022913034971350579038881591959433396987821307820122162289901382661928516945466088003759923641383221956223670212694181569758125947797465815541248840009143874916919564916780320623655752496182547524828021790162073175894924697907038933783908739904759989245279334233235406796427196901976914244079513939964341567017243127399838912284546677959878850255780078313278330286661002619863970369822609015420170993876842850597943702083519025067431690105834154656785173224134141714255826520090260274571113626405552535944703672899411487085400819275776519739630128527012977106723022449800290018075217160380261460754908208916362652685435685606772397103633525811291334476757057980203602873116862396562107485640519047144667537741413913311681705466756379932128796338427417878340195281434690805329317288673578362552716924667652782233428324700386030068081861353678130297126566435710662300484988804843860667473457368662645370592832038129095694022028551929561032997633775690591511665704470510947479424026485345268993044907427608554452981120516184229690995657199018179097216251630606396279612687690986756142526851526724711162423771353988078920808321864836371118550422153787201907850582834668200153240146959514298124125860252909634960657316534549929169670335375121601771330559668434669908009626964638051718497106863625560648658388379944142648049404305652323154928451911589719440852645323542718930247452323731712779655905630776194438618530783735253509474888132540063050214115712111384792043601100256701421686012405722637820297602061087396316281820756858987268784681682686972506620071030187095593131880481215176115022267623731984561802943320866496234242694933697885668705270993353805455542221416421200137149945947877357409270846806422201243633732636733442083389979213235313101963174864898315527120843983381302941456636565496344747993036587312688117170252734900884113157755406681073908200337055606576713537919369910949146201064129510351372356581375008649225287459397250436562467825861210359178409158232130688226724943755117741860681566760447492915981071678821749516073520113204454514455228909316770047129675812373491500534059208252900443824508070465170913611934852569338092799631646072434787511233993079380304715976433182001815891373351858435055565602622240417060705548349240974598460397352815384201191425736806129895670717535312006945904336528801869242291844620566946558539657023169623280019726417337839683991551913719416646599693607993219609481749283302263277750830561076720370436065114449300746349528114053375409585735324140298712973514215359089520096030868643620561956008710004528662073937408809969795994796525271832360398543861182539634445330408344232090759559698334276829252587723630106875167562195374104608087849712330629444383538103191529906637384491296286118896777679230106224180944008111502903578719737021902195220575133326598403620980478819274675921516520276838696749263825652251937157376855773709006685301410751570350217286001111428922384215103080617298053122236744750137907732459877411004328235874500807868790819106423341898920823608352210792819574147516220629253395743114506473987445713716646747657044839794068952515727819824915309925605585767772638436980972240203374376448411167766427122040908970321412695123575671651841292534310903671925555585825340546785037829477830883010188091010890107260991546127573779161534476198540345570518027073404131179725136312211730737511370114334277003616734827178445351330971504846590250333327699869405934767551845728927533526249700620179650203054869935540761368083969419677953261668738124415510007700295907929884083836825809665763002464310722522659260265592659745384998795384713715442636018393438869440427874082959049597820195718641660950609877312952015425539238508546946730756517475717657837196212290766392599500636360456622502456761545670504861894070470327510765235488167791625049310023881845389181625685397517851674800583640059378217010065964471267238470422859146450768197887465900024877314366865080679504730647887766319637249081952468461588269398149716351933219895814841386741056888890213593439298641755058200995733671407858941384060532281028916197446543979298866028094569317768120389537030751841415902829774912237420842689207042174674543091605088731620047870674628118565780650952120629137237056037779352210876191517379753137608017447201031365024255295830524717362217265149865237129754352534005305747166781700023578932165844931455763522037305282798601528721975630089709295774150198421813508922630447965056552741614988730871203074140245853287363622323063607579412402904108640600192297219612550309487399169174204720197050819996839103257252948584129681997911242624543483025429117789733010393546993519458818553614177350087546545373381688078743359615150205556786573315665010321523486171042216992422544574463668888219693139256531962013684192642616329357356524667729267421305723565291842725016495352820746954000399585494317303878548084419318159008746927452827514455937693071091656501303626906428272243273205930208904768974595050935460835936394471489485773094377655288987339346003295492302195108023249097266023367408971445731684352352230569086917753435575317163389550390596087345469074972567843567932672869826322688775037752702101157953107309774502759123449463992852139838291626468562436097591668205705744404190162588222924256632337063751972112176088135611381173674780891825800255549679581383315016509650440869310765261633792711936135089345269815293331499862274239083375178555215072211237479667649804882461301530198971886882249836309292020328635873448189762170886851946812142530470768139051236661305581349862558022695256017826609186225726068108957130250091772890167855036788420267218386706506165938415504248145721979417750265675002803349527315720079043761944149267013952045632047348688219553286794447672609002640501757890079438088295084600697791086884321627447093157874743289829523761659241102153922812497498117684895381539593705665512191486368687432773593541992228360469559840259960214624416702218039896738651478633052351404207787697642234236337354587804445180872154159183958088872609123781828027041413931897098725735917834894131630523271559043172020853763021637821512094242556467244231612369215906548887066051069947584575691712493732081755125497446511712514027502529554461782036519345098761151868655607039060430673289483101443102193769370668944083835500951394497674134781034976209999031166860284577100746075208263385486633883485206420720656313088360637388539614916752888833624225743607017393009307261086151915076518075883060369161296656947974492495873697743585410208564558923641774065223167018625901889297696402587469439889872454897014941601272337834183185485527238980017528016546743597267781258102806971717745263572400691922390954200059326797412316993215464459631803235976556816872631062368738221261043902282846610895733131665730039208011582500155092373307770802354884124342140078617919990493240490649700062251193552461112061281663367820319444084610762192868513238732280751780513876750902883712356528180906971271698028227115522669063845552854317345744419475342702149486457185178088133883788987003736919661469020812410064295498004970952595432895044390447499007653976585047574890568945435939861914638731582131694712904184193791324201554422255398821035806956046438754606092894828464047001020653951242942989974508842099119786619248498321921782448299909062957440303475256007724322746998052284744245313043347975061908541647540147197365946632875577111647434923228816871437185830927911702429569833487240531672061435641340327696482470166864316640353274617422844985698842092868347093359165359176892723719164652054183063164063140675724235188067361503631017431428612069904788476881482654324092081399338603664572711349267866338762018309372102885255008220830348284161072734208069328024707040501107894496785645898326563858139060216074227780288466281347364081078703556418580476047071547494864568580306979070967692829766677172235479385812538191479815701849663858445419850234288115919005803460776653518941523142034210363024172360461094458694158356488019790703958004499923656073904898451855784679341600728201422945014190386545322756095214756457554809127379365348358828250546677605806752178060867246842948999141816244882614757083787106234902685475807476890411741602436802967039404699744248010607571379016323864661550124519941276447809692669257174824062664605819448227735514318542601018205043796307132304438975835327330900481331329812804712489905282028581281669468997667939775112586564438437441479966360819098220769225600743916140840567569073853510169810603479296340307785839370311883995381175268488950250034241804170928400866629098474939705059346119469046224764578764106996748835219944071657174702608783405605339504431974447254137819082539119132052978708898719484329562618460349926533920785729674114977100951794348342540492418059956425810279504010487260458368208034958879407608484869809560317002838128450058727651264259277745189676657238546004631292611613929258670439678331715290224971977279300494090500352541707401209117505201368359579725223154607272402522794250785306321021562388460805669162449407980091753093107270759259973617649297820947611403686122328252949081937810995918225834929759436593157532077334047869302223357411806720900912986853513538245237538777728458943062958299122664353924736002742820679311020155724126411462282816261110185707064906084984557648672586920591679652755038793453399508936985864662774168558311409353187108556298480135101187349611090000226457297222444306387492263629759830656701885918601370427615544288455307826457380547939132848609861197545598633663243914673869011156858863943659947405001407596802031971776422177988627277990237415386785206593223723615003072153002769374883320556540025978966338968862019604216900805569763322284200683529666895923649360085215221712344783232601845306150540214141414048034637662053268383150227085805505459452507020898971523698118163722630737346022873586284082829980765586296160812232575854108043264167799891438597539540239883955587160625150859059166989752772709127739630411490797630559790505551434872411828367570564896742674292114988637408235131943221710435363223391100649034169071583404369850863149882456446451018610170518310962217425666818292297968529758103355937657037493151672512662258580508005429174117926732430128794693783554614137552058881683304486220202670869444648363444986124461606589963796801060242892786315864503435852188441706532585028215348848107013441390542848093033338821940159218534227845685632413622289435339392979584495639662909381782417170921533351723672105135924418280834432813506087986405823128742575829197632800812185566775782867164008917404768780208908659340283001434970724906637750106929064687765365854007012273177874824975441875036695471023799845571399894656416963372610179284119599156528595823555522082606953613074599031301614985797321450288627672383952850417000190171292864355064150990209450163305110199144464385716262244505471037498967166053744812788014499762039634058156738209221553818703393794281349798098130953101987863934066683977711186908979133259079674405531070938364186788293317590054381480584371517239534677360070180377634580369412661206124318945200363920959478237371870530580375924341884915747687242101282129799049409362102478537161039305736510923239567321122019085025110286673023311502135194223197115222796594324369836976019021062827570534181780347924914376777562591398363756176786841512673419044138758158589907356486762037378941851771851774573598302076991048994452674444812812160664049416164717781509662795609988615950257286502128482995221606211561126729649961691127429958830868440962553054439852130963518478064328434116673832561480802797570437440909864635636046116258634860446276295202001588282399638259647647216967794650977162465438050461018490178033395042797143366225616120449684698620680678721040830759012355764738203614410005062363373155477852665754404350919167431606092323708089008233373683586185846064641828584391675851672678454521680472790087308788020948353369043312862210321842054533596762039073157993957196642795768278230763116309231720192124929339172814974986730333250801487470933814356862746057447295403406237836953647541879880318826367973827935619216596313663866398141663307928582249513156264943679469126125427288994195835470936808638915216974402184363892273512737142471314884168832226472449372695908690048115806475309465479235195947723893078575173838593520458604353345075678601783792251687577821489373265820131966673742155015345564508953149297319269855969087380848952292093162419419579549635444067056703446608423145297865949517818181057408517221554476226340358941008864154707188552217366183893901463978036438340167214491936402406879797258727007684510219896928406944765450848792530347825335820854505189249827276858498446880197139904256669434478148606474879875669343343308669594559616437935096995771303165671451244687561905822118446684947428819997324586486306032695435619212696062281818328441717431573095927473338631402056053498285530016595807558586154039150465144679785251240771541739010199818220211666457220223650759816414825221199338509330807262780350931661330790261863640402001185205095713741971568926329870252295883797944288004199409938713979368349287879537629056309123751482959033160076001921187801017792177831249790189440836257896567989542049435207598239675604660976187844573085854584150353223432454943703269612143844959712448142263655814354246268750766667027869482511591627198269572126074125956323526319674198846875713399178684401263713752417304605116874619692315842521085768369661242850536598269728626026340133377328678870964467716517836518272632332592696013974299241110028562643948291615204036414311977634622246749787594898624071105910902659353485642571637844921543120686827028509106272695084904523628611620727788426563191932830030460467536816289022744080580267653211221825201142902930631319670520476891480958839289124379879233553770868265993163833819740831622463885404117809455258828886928847183837812876187756043045957776898382529517250617547541167828131035707731595587587172314915371256448557687674939627955303312811624641944037017650332572539355157848822618118666965055790546485949936485233535258283561419409808986527395457626275760387098305553522504998565757554781073652790082964473517435100359002316007616333983829702522943621597477975519127288333237658729277290806701493554433030498162419764515455114541865106859444724878111100592870769693703883407307977687363536854418590949468167697103390031128435203657882707956988379583493474199985523370569303978002548545926655776226181914090457727223775474976431287108319602500622962640890164092330670056516010643950971655411949718335116112283315703452686361007029474090896568253713042511505190459451249261475657609852188178730759036450134231455315425580965034472978708561161225665858199051162089865603929242391582434179546119328846357416368382217483769203200476401089902589970777386152027450533643909004609784138041697694467022059875562596463409706713228402420653934908304344036210394239510497785536604383063540600122947485755929552478704233137629379491961707213458635837292705363194690279548108919933321051097912089373444281812217155552017653989920943908391887050602735337674601787338944270655902788925476770978307542137428176345512020528737121824479413024823335720621069496488120962329142374410299441292446411667940763411228066239701473755641751313424296124312528323575785536494948059279828058354363077163702027788344838254767166215086811243832253829666429356934215871140480125662300098531581075884226534955890998506375522439929546834865815601768295066616928662376800366573375610893539945860005268672813272501647139162006927600679256296569482928180020142394635505444426460723542270315841746265810830646532596885124147688091980882331667768014666137608001871277023857635317234399765610666508581456532686474000263071401219486937755181404672938236124525984820011747367747169394989672258749235835980738650131354340923896271379500540010266198860052158042258403051739499012238121650345341508314808578389284511669781222460585268572628900481821581315375386853332386156323299549219254669104185579975255131439925446667321545066102687036048084310959903754258089961598811054751723465857375725904406688578037034509612570039337997012343496926148665494168037087941022083078437504379000843515128457217673729760501928681169910910177970877159026720810534037370825496701018435754140497759641825300314026510456759599482656310430021983415145746980376785150661015856232482398993995480881855734429864645490863334692192648285747104889259144337261898504005246350266839824546706348261857931432014177948004285473170181272278167851822359014853398830615982547580486709424881210147722760033523673312991940375626779432822007494822710359187917534157584065858424298819340454617589777434736681502681200826706314716339248679982128644198678681648392127515473260494653568078525557384695920817459612836888206416032658799827142811452209494115699311405277658746596239888364365667682419731889925674163282827869093792189458493646108049944241524913996560621149317101372347997469782752038093789777218217895841866362763221923849805342748638601300974631957856836132823309600244322325150572821211590854936657618170290717168491203455509602419076395141196403451636844094861244940603924899061974131183553263555823918560508515078134435671361485113005459137892561115718291390355431911207194347939765905629233388170561674057165095312339996802553082650304584249925718661455189905109220073824132146278759275537215496064184567230024342026845720060584996601153605639244290918318670884150472465100324171068765008620313757582197127190196937780756901705674177780655219170360595597508832253456668660420132819876143272593733541921140157912042210235442263655289280203672600625163699898483286493772757949650429972748496910913873886345350535469888966053517236908558871638980662053357949571851175077024560866389900506070037322331900809672461304440553359217886373704168692687345854311040907557918685540623116736041364216480703942050487473585223138234061391323636465769737608111851401325628574853137346591412860463153065673021490741357727212758095196883346391331326293200725575176543041125645049286431177856401783378836320185193094824014489281577920039576803910593634605267268240591986171057317906039878286465526636104464310994114616493718155883889419838242993332662374800234967185100057162112592396043681902516521082301686995944512872889067551480433337112284629801215511754963198674165203055756678441313598849680150543352960974974624475154871696461854363527475832156570110990695849203173000031190171641336898287689197068941304109586177849892252622743644215846567581953656554349028390703822269170891506938856540647404193120814135390329046613393956574504089317255330789750673420289520247402727822029267188821063134580657162338920405605987461636106439507342350608823241804610701690875164823001589729085358843779973264895849677595752000625264670440247611137174447115442812331669263035997832480935925932134630952398055093827672028703878145303135928126119880648117424847731556106231298063758791500838442012710528432522247615735481939726599354094308141287629447255143395173347641745938203950273096533352920774928475009488661573506301542218275259119091059413449580213374599774858864955696486530645855515654544618612039993932799852341595634441537353790090668571162601691402283992996412518388339840481121717513917871398388446009905007990772097700994332462966679798560807358365978616386986645980920064382132986327041511116714770061970468803096578125719970848344831579771642955740519827855357713493437621850963239799777022384126915424316913560142135131549558506518470293228763021348613022960986504514490555875669363512196043825802088519281886792424706154163627938795785221104500369398606524721653709175675131751962410138339403153781024211744953902323021846249366944715421470886999096181469579284035111400624366745287055223352277083723556539574677677922596852018678390168394484239716981388973018085124006607744962659987805314864513874668970327101992404791230444251648555165098092585519231813024245893008637108995516715742021516157806907391379752898403007505291347644822630377894681599673302522305430930641680765556476067307079248926517995667658981656342486201380490654533164132578797929751981573348650758299561000686520163835368465562883178231694078077645529351198739646662775690905112335802132266688132115988480900358591989694869698517681015453962476921948579125951974142374304036538226517729339778374156743099579231533872093941056397197715087431569903334008649535164503076463074424277994815162677254445542566239797556504166466136213621659678930036315361680380626879062670715812408296393783043385071915084707827772806828047810605125461797524103658182544617139575937547599697335890921396440308756095295501973538256148652772058742139461007801275111872825933897206593335995042263001357999230225032886832411771387847026747527815671028089855354904966219787083257709019763532500629790900398937577259974670558884304696834024669419827965908088428928336739131112610730945899048666922739500263273077938266150853340322143025481864615995731954676304871377221695307991651335967183218916789126052863662832894613127739398489038028827454967791578120533551632500874697534694673726691478063344104639794944183462126522935359059703111155172548104604284931102352436624945156982666375387673849353215230201240190084056516445656003156059260854570285325371696550818253001205481098486812433890363951973884059779671723434080207258108355045583799700893702544540024805599667792206616996662539656626921498344175993553552478801625141971274176809158810480516057619661739607152969280155614312682766274440608689096005808406998845757945824844339984537160069395772556288262034870448515917098338457269131215559532168159880003549699069450988244214122272603635119128712462725390549148282026782200864896129500617851456774838803857207907082187384089153856908572771296868598660993179630826421393496541791021683307480113618550084975263709288982960931524611231236970672911916919823993485407861296533911469836418077663390760154417157752563795756441355140859533910571291013286524483081300461345647714074864255279473366390721252260604621771872504444711479320345555710388415821809322214216901325491583774851822981336132093030676836323211331929660633790608754832549186263897389072583062168695005271688806380392527000086799087099658755355820836890954888662546004489029643772251691759953494216971720123007053674483921164418781030465086130761072065231609651657779628194407172149065951026069758892300211845181448348460148392668536897713839110447870857708940196011355441399313386412716499559840067071722089835589872994634922602755450876652139176725056984466557584042821236620986055221540918453162633727873349004724662124933409275932381853569476491999902901047215467315133057846686726295347544862907650978167288467694780919465482908135531258612729889082330585873999692215197633493953735989469123901348673646042516962820171923966436968763137046712397531754335099853644468393704151122874454362166252838368158435788310006385498379432690297531800227675402698513396551021073920153763805099609081892397066530042096814601124279705327453089115297835023160437277763628947451044445010949756514938432711207154367751524524409914857047780008705476810538504600116709350018427300985339186436780146176003132583321394047151799734590204131491292791136175134153503702307011906844552094174656305101300096994559249163923855669459196170083204791429894150378973875683944479280900395182409002876809966180558839659959185729245640322388408233228946556768337480021911256727850937548160997360351631810225995012756075875830334783072706225103714572618803262324505794326682446890928956101193518080947813220227325562305686477212347914983898421884375232561205099594638061034645239753381699176745066404749542933336126467383753298708385320356475658540972805762247382104130401047378354946032046915532934449861901836172310330412513596671038497944628561945981419060451300028911701650813168065193052859577826482374147173040286249356772624165339628048915610983165006585642067717345393855222767489421899578858228132690059550046628033953412736001618451777463919588479895109633959790447034331762903266301470821417171688973405192279794689445903562983904006846645995306265849665307088957191472332477191030820903153953662201215796807906813494988689478253514636745744998029386304187112113236618886176418363544088464363565277671973040823709259672035468302491251596460623820154170524946172436528257254994527920209031956550802571817149500940338891363468162646587676303224919605534475513085592232358357366498804331715329724673208586068080851163171465241442250730324863588891037332356298106169846274631413884211027300228603566950169264036266679694505616778651826012574315752674103580945890141504953930812670463485605455289922232011925354593967983949784110054008382098636649778610675446595058347528700198862765260523077954662619212740840144479517322604628034707399715285150568689326321215099121759316533386192626000978787785780541625755040491955941409158560767588289805393210537977237048626464661046651631550144471469587716868177950176875648483431442725853263902704379785050329110620727746674170280697466895560752842983594257691367741624954409778618627361252088164306631040148169577924929394233517441632165135552120605831809977195934507809702911786598423499227995416980851467498165378834848861149614131182668840247720982933694172396629400699921139399451790237224691495916676649410291293913184197008986340123789053172569194804451008729454360308899677550955451744916229409712733423776826000035721071892330552888372866029533183217347036362017864473600495824914275454797514121126685482841986421242971885773460327711503371909436017918408700045540611020464274631840004503861947619652212335994433775111315591448057598093448039998785711563760229089751496060588019669058037347896123345191898680268194632068899242107636955392936086252541172922018101762235430429839537688583653167083046955567978202859734831620810443095684017576936868181987705216077246600332691654951038016117726574261381762292826603278207730593062954886416167255134580048815596482880243196740929433809054379349911287445715024541485361157158249508977479137369053978313987723164223373640750913417530879037567007754862784843468921046692329622512718006272758226936651449441849595264957578644190702740954651111398292108671892028556467335278962646681869546842527684089862047123723010473074893332746082080006501082947773324947735956588670228108929621956680920395881647843389391808754040502762443088086800030317577181792744959355527840363704938462547184664630936077478204367421979029976741532617796044604305645698473616241302487203042736611140989640508057557947515930316507701705672878162834267456143306958256690449802124734506441276972453409485406403694510603219030310386934966666963209978085561647828452865065965606446363921623005090382030011130501811672887993631811446398550497761033375969692249188882357764600685589523833026799342825455564545730216326802377241149748442582607257208814444395388251789109413073626929411928539051367002179707413064122894167043946058325385290468688422191598209626603099988300122352506552100318033416544910747490528418360240143215722771121995233012197722251459956591635512686729751493941699883200533690267846256354098589163687140303598546882442226831613216127599981130896394777719714347846562868581101973848041141497866317688826011350086503400223153957975595896781283173370467604865249439552994713011702685296825618089133415129183334208714619388147394092998984535211540975470990609084339588036843739129310954444165873599836352602185583010573036017605960907103793125730532327288357775177176999130427710816308755105089718317429451569430647416138181274806102172489356355398294446655668700234131127749875377512550397206755431644650636087672563509244510280607198447566885479160663909483309715238124990896949222030843071049253543875293764852119204114513739415394676727223907442536204955171656762563634837485855219468947740618982570743139040757200288837375998807163027862091414342150690372933132009771607638024710216549357583206843808222428033923137290713627603489651299224623260235984238236174069351275487087702769143035012068854875328742494242668682706906109336282716103141885277226215252969992311527729855442213588398786561131209891980785580192556212210718362852281465169429497988964317362030404347576058876060099652862589633419022796769553239135215229345640520840960577894859148727875566588453600159078816863623817649605956244574280348364995316908394641059818211222877102240272732129440057855258172031846984235755560427331102623453884773391889338990013797917122981582573670227981751686921462728868649811745492348451414285932399524835812553562161103001664997101227896991935408825815303559949431982487268798002804807982007842544798481855159092329932512567483470692512641281530481887136080990212507859336094129661227576135316469583846477016184954022628940624709990747829921235807232539162871848047181952124406924808970725128937634110221609334891998009453061781955318035773697050843192787939993183356890627288659829832857242349129279594294256569644225883473932155870674409947961807580225342432886757974513119591152483501901835383876044839906895169904598556137256516670850018801857680718054851128973873876227457904854400866961395587882385905171738453823937229008485464127474925182421344435623178708358064365975637304391565146426804025736150783156579962176792892281252708741080108390492938895627015867324828433637066712401083094587910095757607137352010289105678525405743107157071133348093525524770645194155207684273749235120773779799917574827076748362824478827129639662376869194747992704590882470064761329822832559153573886702435430899527429625305282636678940144148162262355509534764426169342769023190871157556939793969003132899222540103899453445338967181045835336535002990639208060045820908557953534180772089149858220688643794372586674957756865705769087908674316345092336033159391309802522155501240336339088120474808185890178006489649101911657064086663847056226737025051928988404415919140912367169336507398539071424527548726303761418791535033978335163556070121476050425422237308638398970373495463418232630624262667072702288138351598017340188767836935431260322465452474085883167219087915584192906372187484406604756599835644662096449017900022013194661174925399672072130016841973256597967579104253559685103603311547267105279766343770934630318216902005957826245302725944822954390592849952239900728944887429694665369445706284921875393519665973833602533580232621133597477627253306181012730159499517866538862000843441927517259213479027683587181173724604799192449623542866245619396815077545250503534674934374120677020099267778624004548076019238761581134569417886816583291086698155984109437145934232181187071138510382601620479716134733060825329469970530192406482893345589233225089046899155731610935140160848823515320732453449170093251891409550195756675653647223564733612196629612635452280639078655509805739205022874693307013714871357013627502062275349686333176679125071977059410415032791304692862452608798723683291557911407943212246889022130128036072761449317799552597694884003883856538420072248988017866136241025908759328125586181000022456065037654066661661246955169313712007755593469900157861123317794471949356335757198729717931409554567148881848210141165335280795955027675453978127075478351537522222886734031038513719180424017635055688464479041670517001925880313240779099808018668849947741488792425130401285214491465511411895631385201777894611880437978900616721935637156078153751624748879236894207290871723810470253285456224151293965527638079244417237831688870631699367011788266388620259623555655021699876935843271647927184663707303747635324522226277997278671951500513173670579209369756250697617061070477969091200786778181213325124686249230590059045613177787537463653257757236274288392022447088855065984598509343109958592865229279322182746290093235194540233155864994609552365506276962459545496521395212052678826013399792833572319123784192890226071372728600712849428655940056322669033367358527116535384604117060656627309150897710749902051846799339537772112304227850956538426981281692534200369938592910972259320279022036724074080900093841552895919650169767998297198823231996124762469595529963753902977213260192740410353296480450962907377255812938327188472388319181153976395280654759800093845480815189895785391656803882411316936230843671413886011261325040349835702203089486492577791644262159554838224572986255590950947948620044719871992439592772864016418749950412667569412013871318083601337452321365204470241597773890729445183648952772493683589246033227452948090916842846386710825373309469500202712941608051513830560334517541170389707705842058558235576059929669409096161842941854586695326154904376655357825632466943280727828242071749897183933009252868824222684340560436529322845594813719750095234218832810600334929947956728402443944875317771122622311788280540410498602098522008299500211187356688088213088995811060611745944106659331060664935867564156421222507569871052137019425791314479575777630156281422426420228637058153409372090886227503075067380904385327943051540201572664316132867565790870970080378358159351885069338162352669303966246829712957131518100289184967362537201390660037665205522078168009275503530514243314155837459473205465693315960886742454769696382163985749450939331046577719207629659953151595844182115969475905104312576565612738730822590164198330178307599252974646603598818888417393316338121673971595997539215930982241333297283587886721932450322720339897009213109638778175991227168004083318479981608855621025540646142259085992032207556125028266188625820785436281725192506629761238508704102348415618837219252861903402215084206323623892036099130550105734228643098704138846625327639017417068550051292428367151503015909130143041143933657470961588514317062551316408456831654725684119868318733266151356953615564494919517175432864468926922820005579707130827713633709647849058893383856316623691738749819467046408262147927939752582437977857692258408160479765042521601082481812694130216875854972694346870539566516074432872176454882588063465835173632404367824364195774346316259147994703570391237231115693436964849350028595047403873320156000185817489891454514858347162923515417420700000520715939966948208376529859942555898146352925894655035251193004029806623117861259084796591573167481226089278994949521971358491688614882048696808193778559658804793430218459909698245027947012670042544328043718744307325343626128356775349415128734256516171048933288363120704791103762762415312606730691450559220629378415557458764781160391760951237462520121376437250355381622769730816538609973421043069670845947876281046749958217511108447801948579000851558386187632879321204043574621873791960993165603039065331224755209476691019997741506793901622959798669977443386961738508589799010675547718155989049881238393161535004458378703928163039114409882692646764271376192699000407661395799346012871103698646246577817187435885439885501576389662508536720321689897422427636219516671991585904321696539517092846203571003491860692213612834234322532461608663319252387906788955582643960531226203724626055295909023808632118576115947602338518557166330752598833481360455077021656697711296956393440979750676912917170761056961990280987233191103885086737784504900800337988410763678914403086011016516911664910481624284259592570646046518064114405543548296671083241397406646312992992204764879958701326583022808081183373128532025313120518575430518988116095162008316184882522339686875268606445954566199510351400904125543803746612142377646167270963953288648550743287178462651507371701850013513149368189018998696314834975162732151909185289486716185568302173193233537046252181110812241555915845234717929074943256773167847518386964336207923091825825655881155940642439685899675866407455857560629125685781292754337975483413038930785845736604256824394913021781224231588268146690012316961434338517200607535148462203480287225088649092809951020518452008058128317158519824094204161043773358743195968448627386495058733645746885772459193204555266613050448123439313205218431360957826343992382422488656756181338145758387029616455468502861755234484979090462680863103846815677581010891523921546624637223528029689670653373568266638752835730454103066745427971310533121671895534052216086912142848341805507535415742826447685771944028742668317140179288377064345886385162093570888578771081901859004658127820448565236407219206671210030723160438492901837879040576088834105771829071837879480178832277807532410773578510044526068313926737523276155685639088690821579998416378782938521070554636719998044214459549798231316682059302936175422135038950570347343824642111208328740485069398150426089405535622029989149425638637979155789350112130227676608561701182293700110587408879681115029186874521406559861450378367433838663355063148421342285958216328147530931866859226438390781772398786254817393303944271912312870959157410419658475694202676624199608855474107096619178664445205162051491855552176301578987619412018790908963665253503489553958209069409315550398611545717797289288401223527012267139301124987716805712382894198074294944305474603653461454356608768519076972537958415003062877348097721206447456693602940555502374035366043286928532103265444485081357146966767847586763920670312847199482036697083053995352140014509853996186615533079643815642721339125792867846051682577903740311367889679252789854121046322263154696897991396895811165205288676774739028998831883589611202377809162047766319681373662928858557716869954493774943773352220164141593651049309261955236395657021981089930272739185460422069446132750975243697253034433542174026879409579365350093501786269159594550769082901995884783639624547041913701553722125811254022746198832767679785195195073199972458190776670222169921018735956146202712391576959719680938906710137034491034865313985910816787613585894027536603913432233143844960729506182932216992695655936673778656232597311231490301223712989924444264462433059631651414694470127458440558055446964962610097924268997619431742488083047182784741028312232052819967913662308940583730793370945838159671180189380485483223145751196878923488960311611548013534930661757434538306775297071097197425023258539967929652476941048556107590758033002329443021169286112176180399144178959393532038512091028072397468776130860441686625236068114386753484383989141870406461826715767791702004156140057744733622096706811627022206046114711512718023615182849134397184865772234165622002043157531849900903815208258508197442739200934161016553385193403599957054701662369204003759770752137574683492020271696205105606060425036601190364897587538063817466786733141367605780957751671176147813265887243942331645312980709538640721131441796127840494857485866807701119495418361571130779350728227177403729250910434593366593319752628338539854613115800252832153720977251743140710193228364217277552348840906087364593758903181566745534680107372106475553896996567301023403511827107189623145360139245627647748058490560696447755421972864171997223232330246010443704087647504848525093482184520538731268651613481418010804378212416674617420358122793196358195848913003953379723367649118147483801715473265937297699561554176389755859209429139213731657306049120642849467359715919818656176844355604727311962483259470487435788200230459276840012215677032478782706367105878465639688419018503862338904183164842296387462335719744859163565272774728592441429179789661369194646448168559824561275810002207385098203563360427782376411872441653332345670458276990971769911318608928871928275849012903777365780068494118630848271424352311513969579222147269171088212017930995293435180877378000509314886035277076024850577503636559201785341112094754749483117218446080869633083473295972844288603899184596783477233017499064887865975492125573358912980108589744650171733658484643586185542268417886337945783176591960520217812120484281524912569972355154169856245576205369476766885808192691452070804520891012598579045833434147616211504146061536087666182866815615467661995565635867828945635966267243830289239112757627417064407767392830591014326602948326436387200603770607984570981993389906787759150784591095746015971732984608602505126897137489403519080297993055979446887293087535938567652942021011392869527516013743061349436861750251964748363719009383825292215595236491595753168850776408336267440548688974287226118543603109215680031749254280698387458231714311011767636828913523416127884173709856526233403544460714455335453890901981959574904245209767993391458671925877565463743432656234378614008147874218596163686057678257597930072249076773020612249350387963508133293425012173294920968231922306499256401728302430511462188605687855013589474644026269182145511541486812864608663139653096863571655516636398052988736725998202726600863832359602406860746634076479492614696229287114154857365105606259680556178506982000909305681122187159070648538278565648182264476792921517908314679625039406300132121496857722724950780003374758316068829787076478997916475607783581218469899402844288734941101227580919595809558935885787576269743793005995207862212125573663205652173750135608822055024722295382461711695955072369811396129191870951544660437677579677461052459546401275472117219232972078923322197582874060188206660250778282080485085919532174334383631866964539741282746407822087142364059349218881737894843612341077823754253051979946279952123304406535535083564550531075180783840726375550754300986286777457386945797185178474696020841037944159726172912336287909543689002870901652668874441440614159354431581481075037352425853829268792436850706408431886351503328982997711646302300550754246370808646311397608152116198930644116249984354239122134831601767344319599810639717871494292288410049534632523336209858409677924184257587732526999024266878777705162653790595443508078793653046255007172382712960127729429717910167258651627344583738069897721744076782643832907379061746515607484769859366321462543089359220044216043997960246036550376608793764949828603104161191062821676376330588690688165843525134456868658412261204762671489939297506264428984609626733658793957409406649557476825852322654784276618426717566553174979396059658767676296598448903721300163194875029016528943863062734191715158240744779434620636105131291424900520514662466482859763341054799131640770215014733019118732971308903654597460125953150993231938065736348655950512894453536358033325547659621390124421967406758663934086958272323711338923693258682203956392716777457947958096637799609919018639452074619859462850756407858150729572626007507977070168330992845492885273226455729485599235651283931995850091311149044425593430569452925111387414658592320435005945239851235923671101869579828080711612964733062017282345936807084711849099309452401234025137525961752913403814560524862307153295586229496772795133894921386531522916484593205973162167062270425859301253676964161283988352829619905007047043590032069162618384075779599830043123223835404617604719725513427284833150866663293611040342902861054787433793218662661106450468185903405081769109194565386112914303118671552568564125228635750988894127028430484196171027379958001733012837210927310761859652588645657083773685181272877214382905423454225175764858682325867062746528221969828416926757979542215723447132664299272193151644824350934166837344318236938237766863278185531516212939059912297085017397492039296461111756320038561732191193856490266551288103960147516594054043107378704856711652177213412432254373750647749324098431417336125092723132565498711133828941839702454230816281831256839405428035931685911496949356965208353214566426071058925850842005709945306170370737779348013376745107313407857605404396047822184643988238832404499184759558635116396396212270604312005356285359449606654319823295256293485297835014703396174138633097590463453109714476587087912047610346894988747379482357208760296215483874181081536710909175540177115954367635787417800419971862697866855710984211198299655124338443492007035810036440342251862894487614931148708649656494719514948494945455551073734320557096454348383515739019925809826774076883449289858681131962508010424583243928426081431284433889619352218666727493933481319483617389459002965152269225332132414465175976951382019636821478364556311666649778831588762565838779022894840195217389083572245739649929067867643520072910036861197487277893691659885539034682455549970859413552207332852874978312140215138769813471076087609053434297995365237033807737374709503463372382659941259288546291527475551988300426482179205624329310900075671083793074374482970858551386114652071191515849595065579806114601085500241705793149480662875862661600196540088822374237398050012897976733154295020908053071301495170132342450237966710705165498615917318532571349601595922296080709735895377139924141044515608024133681912241285322137149049585153503936221167718866192272865095733982548039460024687900747420962262736259624338031741502297401902964239133457605159075840057835886442657784462164998694187705864878435880205440771926870460447857474131523727929795022519974986939991189338049827581285428555803808577973932144737596453885998249470564559708036567169639646517905555155517603954418261832929561439068173841850661813601548515197137120189055387237458904524746113706142788804893619942068242752129347806200314951399965399204658919999547284516677195046151103981076817345963486660432273089665202916330808100507897817941707402051166268147358809715861129543787116489066693399035582899338678100607240790073309153892921333712165702580079195272050754603302963705945686609591846652769271953759682631345177600505685840633504133424519550355334949123292410033004058948269311270815869507851872569058895616908362973239477458433138181304107630505334300771465355265812362618998897444329858589574986675888783930551489594292254020752187310574330446705581372237187772974326330783342623279549755184393586546854806477227586405722074257273968574944453035811482821228656796565367534430869791327390693947926316860891343553510287421114188946095838926952097801667315259986578943166737445906208159883368706570419672273408064063196159542248885798379904419497863352502359242362059985569809888585616681894354303839779759654978938360136392806281541815869658559704775000015091754070118693449475878520769735689707978248528848201319522407826929704665147990120786446727055050436089348571305013388394261496616082681303516284797096266800557442183005866940844614079030876823979153259045602776475636563680835186468924775980352319234804254001218790818431647495240439070606576219159256987017488967936866033462525159647878255524143650637613197331470948410169717480887294505142303562478650867729898165139127064219617822138558009023069527841450702313859811801635955313526590551014522122421560520327048599178637087190119233364670758511980074661939938624505081416957048845591143093088259548303735058270669879221160190464138233152006739873884192841911100843670473685149896084812759795099373739069443780232237210915360544577690068469310775148230493606922859911118274725127716117830199978192867865519243661162626942817344055866282404742628437930929431460959368215758541089557161853318163767211615059800130941445702740417760012664957797449946041231845777399864513230156340525539761524446287926123672930587421053577097935637771963929912535440846827321693183371841415432365192926937442659468213867027723979802520361820270650714163067032626581455725869229143263147278345436241591790338544659783180290008347313716267550410380320862693012118569277757732304210402613468487809393216312868206772738548910279779481680272402784196660764598252838239842754782809081153564437724528561929536331217923106831518290983319855226339781090612949776468972797968810333044082105008893983550560645411820212558933272689509704647242426050232429560909254673746793435894955934514789572458297198947499458539775221346702439649462455830131783635700639233350613504274126411316115662899324307292952304904635691850416821368358963296870136077050626394035027014501201747924560986635342754027363799707456138536475189341121803677030997707192137136071823481398101417827709534309958294797659745251713441003623526834914079995806461884243845605725348666757294075653299854023020367576342893509860439426552782801725980447486599941952569129071483426048837297143534953142765561980662512586824910791230266076275089174407466644656270230944204202610942502431939348968460789010759035732641636943343415847871381390886921712443076115553027434411133495111586209395870274393731770823875453548412291634028018718011187940000578257115307480569675997940964546800244089847403108657706375933138320120657740314291003218848379486464157974610611035669062591982573035117953529433587569334424958885846425095180010095002829401194302441057088267445734080029806498415243561481214772605566408532226715525233379596003278158598995756412381882205540542005192129375055991195826893488808039552988602020633324057026258411985234111669532014385859909643365162161558619653529681284727192188093403402856597840022361307660844274613080891948314712889327739152798433463482611821521960929528470782557775894299995848850669257060796576214244307713392415779235228873680782109794928917304046058840239360226601424808103178177137428513755090221887171639908769041729275606268416941789146873256678064005208389539569949336833303842845470688058204921952782977605942429156528922545837663479295395360927360124431683118044835959939438846470747142170725912417877397180636078658405986312153831070552919115609960634531477708318238942793638655800309529063617294031531963745073703364246779319053678892547451316285597741551990820342950159479406175606145239831076897929277383702949232268385788154768404469208577120594447660877274188197126293194281509140499601159642111086315577672875618542208589884012490828541245271727604989159779306153607778947977249292796529123948202637182245888946428954700093184296147836266586350892871716688333658210389152330827496081847847455311713202242838013075614749523221268643366805766230062696659751820064336920728774746013251368275697617285958074476557721424085928497001292513572742548899249387388058011928598884070286648179490525036941194905165930844484489306666041591066853105182671558319692961668811949495938568184520450598452734455053168141335580025725231593211393445726513116675457938999775513989839366116927392353466815852003099217037459878956082465238950811827072646422649804885129351392011169210960066268152848380807230082996088369579438648232066698140505332024957266773259050202783311293567699976551398676966895023074102860308884888808027949532831410575306287214914027573885344236498372365985490562770183997696154407200847837028388669198458446573680117315662163840732236966495044735717016249517847123171226425836519819907399929569583327183269219187459214243073578488413605096040146206025156345562694836062088131838243080419002359347267078637002163220600055151108529203812915382540539068749916006081242383830078247880281041728544189642863120873553647963805175011142219054263533981613405335073507176636679145709461622684806469106741470410771581044457099398227077475004609573630194660499090523842351005265994259004646110319961543534538502571567304281081445953448878809739486717238695070220845693229831879507215773467879410913408793054812826133154426965282672791090976499471074482055139704422438579358297851527051072141325869054275529628315469748128009683211935697151283670301761508063753867530559818991935380568236233407233520684385030642199738754365827391586876302497929680100237267669330738839388441549219366610261414497747615210786728751677110193504126422719895870828239144419430401243567684985412013117992629612126156653375959758742605692619582479583739565660384297846903688224586803416586924451906936120499490930903448268413351826034978899468333172429999479525215580832362512694479539772363464058177702202649686685095632102973362451268364337512981659690309092086512036361326067467594196687210996940741572249016096877468228086285158578709459722625721420837130421206064154955522145294189150399142933957250119991497534710752434426068978805713486483208605848241902008772845118292724536672781862095707408397054214838248053254744936368449021057961806202171819311415146864288069691033944051179007879584123359805218591524543532012546137990091272323393391393663609547591693589208392039145554607772939232272911380706802979731912827471127481835868739888147461482243816569109328678435932525150329899915568908472693515763206900612921970185799022688403936058968723166531742658624092327301164453772564882159994148332125462583121962707785645728912448818993192022190990421137266662432512750117796565302689321495541589698863052057281978678886961742318167254121383109751600084257627088448969501462653216598574303013951024082572290641248909730441541083474248254745556423819062940324441241994109944894044347111670521710104565300212324058782640824377874085349464048416441564458782466514081167176232353764395468231555527078704320383818341489007886878221036590468833135548605646791163763369950804693249421246898667722691706787860981510449191045040293507465302716017570373435087397591337903915406626314280157694991342880065578637591866819169052133043237008833868947515171216697737498775471064043340450157644327239479028108585128358149134019846889354759518906659485368832323558179266918588149797821870258073526885605719179074820997605564028671343250727189546505979587291642285589171741112688679035095939923366243342100448474545392907147754970821556378350373588835855256171904913353540575171874962874398824091503565922350464405839408576951587433456828672301942554782900720329708608087878422484933566207717111314304783485611336170464705174870371311196886781812422019324344997642203049581920254061763516214801185512420661805914364692730195765046064679562544600817280169059528137628353873939775946795051860084622237074528421800971401200340784791277337864218843032527539562048085934847348474843330757525140735876355897468642779800664019823079638849131314043257725319632658207348360763508525679019488857228428923570574475718549129865669663800716707582325410646756132138231147495937451546868189284556171985625328526760998823005733557298626443953222395006287994639449462383212537846959835981035704110130841280211716564056723897068376556830706316057321111285205738372270309094274721965896092275399643511411284144061467466869432778758951590491516260881088747682924889426726758002847041344310633326169610761169956702744149862401423892838412555593585823617956668086683520207737738810528392813297208518159508707582435125184026833297806583716033303275444317992226035675182490639708618301456683045440634822902587113017502299444727256388271933080820424723760944477917748415396002896971772058949291571224548255784663126133879262349755577307504121061844451826310442403778216438814450153243903978084445051189496223429587328335043531412023301769360656398327425612306698711811845903734042431710104416415317410241948136878027561006114394336715171344465385431227083537448593384121493226971759075533664668198345613873049232150468166010639577417969981489784088931142002245316194716860718019779737211741832128617614439589850048131137992334682834038379081950031006703853547049612253298915854243343235928538261667033550388026540330601715832203791771951693879394700018787699936230351619057443943419834994437705656165637245757229692445550692072372609379423062496681515796397962272645518026854663689710926353078470526500840159600427666286555980349284312617745125680115223448984814072977608406825708962593556255474060123982632127425771435411448176962040846678648740691309251064154771711442252742861192673093744550684020312683194349062167038420516538434640804095606023458225864463231181336938218004801558552482726065729059327980576382311546481408915106639110862399216836165668237089888287357948240932529830529027732165634687319403848223396379084129449439004434973400773098032704674698726141565157243939006242926884601498579592926256414096101511299569632364427888744399041732593331402251069221998284837094710125465545086292853825384891416694869871717621543077144543245206895768625815373381744694996382420160197839631230913059112105600790168725575300794084822897121060386301007097038108300715293978824862498429746895526512215297349455363034151728142557584643397327721963462175745459571930926431648142175851131068126880803364936401244514728064306396621494645353808930301655447113255394083492009500791993099414450026402780054257932574854938465488237282424542373290594646224834779588665854310809853358410445664554608529528434615878421999260966451709388525792081640909344890654067597450972312039287015840110407958577063334045818341277058930655770165710197688588262033686766466564603282071198794843263186851311687471211906282184238119165510951943125429126070209452962393086089262561128145018896341611354284762003458379100411639695695726353506565079559068406443489518172144743000426841210402454735761782118209515483076187729391831242468518846045934981744281553558105416726635177978425321929887410704532377921919906131762795575174269751143526583317368555648279541816579623157163887654366915108797917148771067654951693368017872748129253388743716842589183521179403886928357616498113481312025025713097190418534097375261459010828344540067560806799914238508650705784211476625836998278409725894394834461880581598515979237136083000431027465939328533398817843525931372029996176950046183528773347819272589247838458423667403080703612988230405058354994108466144288202955518176245392356222473306282370562363769971959176708677940952108543631092102976079601980415375834744236097137149723050629008920187364018784961020894703632549367581736255364597352895688832200916482594479760179963121272791584535500641388991912230596096475622747522328591020060954258570597608449114123872757336151024624655077961631333502315050508442788558894485666873704209417518445345268398218241181502283527531569504844212971249024710059648262918987695534337791481865259900511876964019554625946148389947399194599381054511789743856121852460966448230636022263602600590407426362730033564429663518143504959015062037875256812395729489746079313394908063984731200508426093459280909661465815183840247408198286632282429823266741543190612647908889311449545411070749353809075783528182491559860742765628403986683045911968065054709804684452032282813307081315557609939849120651590455189488665901592550832457993066992868477980123804276011219065082844129240749075930178567074557116366881805224110303100488554866291199519455098064341314836062462212268234853634060204380383100926573568191168327318922431652769382481426057081538212797432419659005199958661893178288289357600895584101752784110972842243553379256915764885159377357324600028549795416600893397396454328150083299463504182049446887225175794617169486269120323535672664182208152622639113334863198455394601308081794686131234592924051925050034729104416407309477010177714978282928167809841851615190526399181601651705217476233972541664413673680626676265741959229058658394345862661503448204849742237047360687702195310605567662568385932510196330597271736008378305628318669597636974093225366634324718296743241152731169494836778946680529493099665713020370034223592293393549649571894589193792307174412257551599892561517126354896804861553630998503366903999160573397768845259683290107260871903532366433019825462614517145552867368390717406898629916411501407062927570674244735992780233785356182116133097547315634734682448083776370822442894266405936914803776882978120448252620620817511571985723822904862533594451547031205665720252561390575858474495179812249819159044931102105194707457500180170496005830528929597490444483644422035058147075716026377638527831999360895328350308816428153617967087173371167011847962910848720259617835610878066497097868247762778212678651056202653344583619580628880934050606359805405670930872825139306764662137496809849117969634037131171966692612659174009725182274198912220699439265381220590946906106791127797726439249218651923414595222324846653082653058040009972694925145214954857226436270046649451649200479686470013176800157507439484715512379078288798821540039819216981243045603746992266060759681604787242883509118011335272768769430437185616243954585720324584500893438694622450575165846990248968736524085947676452002763838275153669143229103884799113823156057052530186399081542698785064649381747007589890772763637113793053062629922250671157837620304026430535202923133762436849518557700780310610399179901123155142591588504774709413702156818204316316776587053364508823897717779341037843055319507128755747221204243087196475986817184521989255310658172854632094501641864999625377325788117933699255339742827001850108549101876827026796400758516216400203568349992231280344059614808136246689374200237068240929940332849428612905685440328880807665578375250366026712402881443380646348396634507940939337858846887517083616615323529924832886612598253578852869625536155612155156477968727372705879228946927652021930158918445976569561074642016735090883472622149387029084218500905380707164173530402267470342865803698503292774649810138037330634920992864762722628345484239752786990283960242839040685950810457425710775310697726066322964778299645353533683360206828970582916339161071112086073502842016305543416573365873661313930652531822386934297268528841473954912077059365939116109851687523050430668812935537516368167337122117893508671711094703420248438325710547277736055850169203968616132609263903852194135476351328354154927487324102971228130142082283199106719879155090215875007896354659431956307738624687621854880360766563059116838608312587318515002685622945096241059287393662067839707193535906694605859952080484318097839311428657087610683489545407598769342584522782913650035708405313217164354141812846336169934100944945129013092574474214797619585434686989263503464192161899848388033599186402857795993773761373136200538983656830544045506896816769390277634422798854824738752602635800179848148038856580114763488255191050284040932411234138389624925230339667464282605114262587786442947257421250360869427019229267273294469979552303348753736705934757577098925183078742729081364165506259300522801059224609706166702277491681444238661045076484198803297843750656638260024086846791280404419456949396700686889417010902093644625590373235139446379070610938419486329415780115899559113822062333279918451382017222667549281581807420645665640890368674184032727599437279609807603050768815068358295700163525556219845433532737918221902654820468162444438189787652336296653972050283598375366995924943372339616060374144026093052898767174133639779162041461660881818144713768373360565479289799293031266373655972090801424125307256197593341107473342458313958580804612514687302718341093911198410282922420754166837246483397974202320620565628818266873620518179699090509576990679396543248299883509935225454872641829665465702736779603528111712415688951739239963116990787133376505702443409239746778258458070732429896175491415347902076472436083402858092422732960614538758552715193639827403293164242180119124963348816729023628165790469649175333295381886223271757452265025921685194316883908976467848384046285292285798445602017258433792083973930865981553203403384454621193999335915074316221617692398900716589217482542282979675854642379948835084576964379318188779893673791252624039757467915907930907258398212934995618710099981032111154291227006596808981891094442267784224330926047963220693362340379272651808847215748385366530677317624231488880068724392276226737637971194056083807631860410163235053369683361596977001080971196040575994455957527491492263206418304832869228498341241057023693421830002050084296329850885101055972693187952153325586211345995502170766419060601061706184072192586708865631468217874570710776654161871765086839194649203135627888272076392550585624687807012455574681249084210082267718396636449306649849377006305251404113129645202563944743416141512531367406414698228196613684937654482487105601558649117184507573808593508284211454682049471344917622167589348606040076585614518840082131828265746853762368595378553706496846411420598066100478461632128645401065934442749748719416921312636867365111505804458254815189190005273630872577905355971467359503795816524116145738062031571935814242598637687320956088743641414691266853930842490312114140247134120957275274012530832015896856598040073955846758253249479994957129866782270220437071696121583510319755417777337221352916458657442502995664865607788708177709805934805122584705647286603390683736112545084725514117020027352747681867255923365484925315566073048899836295608119810619102897885691824086166725671523154133405105940123343134769424036469928376260852502287462534510853407408892859984475710957133152801106803583226816678705444413328449732644704802617613429272718290275292473237812512515218775461978676703862919096840770342994639282615903473495263058794244982214353526395014583306769917156124223766645520627342071260125144636150782293173714199468863418060943858691075139580311435395857201504962801176559489616957919692507937746132361440333036033172496000965074565288120068333383268458101345748889062159905485932991539093655314036615401221157114593826553048643308762082126831734824221573107267453186235782178682376608950966655293000600345227229273911257023729632172816695060188403868826681668290124851841618817955902667093359965318577768396397930191147482753662875793633145733597535632780304924798547281419996878248009199741131527164001094049907201505297982092084605477398568741884282204760546747487088967419737035076852107960655350258108390100320987804225330394750689822590096360997640988006942138738856702354526626919417582964801808036679550785945432739314852388113108476031353222952417154564040327044463593143287290807514806089698901139199135054640225991091830231000176287523181161735248446635151374841484082582667886736555141746250281868802571061789965748405604398639101664111989585359118775633700003418452386655779888874430003301859921669238527635601478434411392371234908355465228592945285974695238850813644331361500818404964095553051130645823168478347323309895618301400568036506164019156718241441687824571616076326145323745129464526190478237426147102760123293030642309799483264008784786429378464754451704297772123610854129497293288134998549439167430641566078839599148151837125625767134570061900500139169907103683382930881711423850808876395919059161470632897419110357602284529757951250330458502943927970164427970766434962417736147717461430270017184397384928925510766281402577956135034412151594998481743621207146424598271836808128148921146886636015177494975525075084002219209824548652563280589346307496053060730878954534852264309962746950709341264475525343791882462557678034955583088517195381925977739999277810461614850375325626254802535836867085233078099932992909038208417714986150830264968195445954656584286676049552121327639591064713072650622966081357695133908102083274960349344773964345238846981574687568367000759385792073524920500371485453727796494117313003691120519161527734522423845228829618025758262332939654015909213457956507282567482858918424009137817224132608271266331162982879359704900127849769004865291892315946627602171642499353627934247069321746424510053270785796502158727839237922851813342215081283024491374221783327597206972242923394313361796967810866458700467142965408946691886314445991047014361674860770082633058130385952788290343390348074410730626560798127989041238331330294363865846340412505653838636348753332085087208324755506821309831642422831465209091422151750999426514026107933381014996035859040185530384412492022721331936266808363205619113669285801624896476249510620995237927901889557073834570049431511273321499906024669452307196919016370697386114522723813169450685181823031060917390498324869372721239009382116758272666549864190578645700003863426459908023395431349094169550640675033810523552042038672633184646980479045878261903550420038048026059372030034529546170841352966918931582611832547691299913527045026521557356422504973365321289747493377346909193910250600725940789774650172016321551515654341941248250457526327580406563186749734266630518577195971483205881839508662846468417262590379169551017788548819916315750279566051552707710382472903421070446704069351790853810541740409187655765489438316773543087342715545549353139532421108933024681189882441174933567920095061944856272929744149024219191553323015777368189611550107276860727483425974116392773629714120511642065161333224190918008612514526948627336703225772932358978615563084286974420977725589009783866761080229561544069572532148265886335840330736744237099708220734516257394729166481108912641728757655671797304057129876571775620849166818709320261712666533379786410512220412871872585832100462007508828073113004295355231516115161812655807646847490046927824772341518606650359712628754311470064674862682186343713332024403167184429486118294760120570469995271288792536175864805442870399936299018432488663147942707712858773301265345556907894582747455237739980849994993951743913782606322841408282664656172795506443282024711124261851162405742305279827905592303281319476446621780804227049376149089748109721244443480465310824596127624217428777844577530816170606371727223434391016685913055012502180320276036592258287446411264019971670516175005823604496337553846236381106242170809305912453681818475175016037933566318052376212276309537577171976010892056817510699129871439027852088915908940093508813249059249708258903036907423204560992271034639454238465619185929977235760495989417830964450155084261002080223947646987367020674927401032785197698908309197835820097296548448500325821009126337895366986800545301045073796587766911940053072840121481616124397212036983677259068133969664334593561896512379151608354342248330273401716550560240052806292028848924061103390293752827430237911739854487531141627195064381135376498751703727968567144010769109202204069051533023142260897595893539733723434672734581507007385677121632692033370806461621563338111702848345235568674562171986751041052210875473185693175434879319397196154362099197067732839423049471583584941647995914851461241325206734670678093721070088297304906227290399675250107066892237658480945875041536364214292590903858794845318788889958351718764816573309624407788229935366068777028661466041171933061169524669643630074957392569532884661211646177205006607971984052382222631419304464115034056932311752903778369813109301386517656339262389292644030374624237565334678087287002101509670966451012487125901791743713666377476593703468464887371366930771009783677661322524154219485870233744536045357218887606490001910767129532500640005805676383949379914868533544164953158498489760734310225370135946817903265608241159802888732228852034918984218054416846731514417102384002072552014380280262499344202335941093622227889289130019753071251205218418767961788763029028973981470536033159047306663694262399583380395024074577911635729083734052513669184674233584707348770071577150280218652179327415111271870471982019306737601829224077260255470498758247011917388775653388919813229476933068782841413859017072848917593150476541708373591746626246764062532219788111547817346258504630906842857294520206498082478042606477265171682122553337044244859626077826036547534870274069197892301892850289110744722175767454057778152406484246217301924961915310877311108204460234269407543288305400800462373642230062939692106712973599233676186953888211999109086919177732226354930067999760755332119700477260554795981201403818190561252563647983776509402178660976527420815627701740250176369061456187699318944475976171622083089470128066350825367287874076467704658021006629098035397685541764905952570279461988823032365443560930671150763286624496294799123281779123072728856161067550309310400304216955447114207970664218914828155243442963665044463427821020572170822429384061095914303438318522772998312522962819546110611411805620232437873171497549089631257135671248646721264388173790839406255834676968292546297445105762986511607719087400334981975611624233761017176869503974900583779991857669235895399237514871776944194413940339529264643122043655217323838988176356243855952316651443676974020830122753822497358382182494188065725014175821539254063665077452778637388013560647572357364440423311159212946047459035489886614077998081986344115304399725296244424423615710336634177535824001309081967984480906961937589240566398367078484226622730910917558068100052107623502296317867743557806692147992222803414754996100226647639277081456413311322612487703793733498364222607089449414303950791194600456532016042596995779863620743420107235591732588456490910921867219805372116033018909917939754668287761905149985402739486234784476789324826144714261990520217066893288489178937491057108181846543574743128554272293486525113259602255422562977839898260269522143369761095384513185441153401785173875272867360287796695208669951553993069552707194166137992280327667471041947897656466918103098557023574936252831538018640828081026735890413531149586131005515860896076727750516409042221273794406596827222199167100512364005584709937486178327524535718306709089638740164509623747811351883650391389839922265161165240015577833038770915437624392731512415129888824816332814779432648492786303117168916847738599811917686147129506675963551407975549603485570908410448110995227443297754238186220814866995680873178180098086438865221171779092599211922711450349694575585420362007837333571737957574221866828110363290469799358187737585373955475523533560642098803775488491648105228555678460551306952099684099051618086783884909947568903650583299151676740674966633854107890310935445997092260527850320145412518042040540322252992429226321833699272158758861532493075224023055063552404371963374056195214504010800360805184137645836469622001260876784767936111886675815369960811049054873585735711807292860301730312594918079197317166664138241928133509496330295430172431695916684515047744086405565486882080255857768548367438914032570003552124839461774471561853150791976539852739397554838943658364928212081702842106150118613114555214655174149395733466709422932694244071834819400221246326813727374137533547723602645678750230085822979309335903716312816645236077838541233884118889318591472929399215168151883159839802825479036733662398341203708618928144818454924309638086573905072800260266366924858627157600512324324919843134195825056604490414461235595414589747911653245510351878219665557486605613939336229330896364665689154459600796486905361415285841796059758330668633369622501269228713083175926660905053316776244986210199847637882151435843012446050505492701268489391362902190321733770437020784836327029379533363104960224751256579633550265373929434458334655370832147837895699964460188124156809816361957257765320698535675297318328093785594198814764085515780754190611439436681441849542130160786384035866896654968402198198709279472610853269701140890557522500472284972545646721523143578670269141430302214120252724182371546642132227954452240539494590913876611498322626220706516861018217255563132195498361195068928305759471838738303170075675808538108546313679217964667895698516441990227419529636494500009430065460934698477355830939272008451953464588817289221394006459438448506130969851777576147334303453719391949725523073624513671959628748239539504106317265593706559810311215366950502847362679678598932493513106178170631279747976565090716208413303783228371987053778384671218304363734299549351582171774156340613014354417934477143814135230725004461497267636213880130311396937563366148883981649895251197261674414311361280403852971733445456940913340740624247731569762446281679047111544139373888549225978713171814791990150812595515928722145780109206691575007020275670859976025506941912652260479494578935677128860954466571364728486651079154439357829526856596494163974815190965839752486642677033825923358468694391068988929373552723593070593856985780184156079284902938979415245058075926254513497036760045053989351723408075964789130772565527566167191324558670920110650237590112635355127761009633742122865218671653872793552109796049039751069677178851103942470120088314587285714095406662849456258653686936145292135548136697609336622654955750281196420177204218422392262679499384531031362108096870763043841773794914623438649267125303757072801466517530964576559407555591358745788723311949697671500764688661665101464296529255967059493875949307472873790688144607755712087772392931874296783128170301314694539801994017155888805353872841016910987474858742212721475291943349811497498238755935874242152821664623536811797361814638063142735508938908659043362381327290134818476489746088939368163494737104676527422567601232235439627925295121109142127795710969794014112806856873504472678584749116844790830773445076700647326858748242650177749141269254373664199271104387862903957363058416712650198065155548034013789497463436668203912757742880035113441597144363580184389405985806823685620946499769974677973449130485529630485113535180392052572140095146198785471077570832524348610495045263937966340246189537796896622133433085605722697253079255136491763401605480562760135574702084516920655135151850526482573548356946153326787257760807407225686043677014566129957480032583297773572960367728997205829292386041318267629834051056251112740101686098463244489697770597764615956546877596545936826955434291075311141187386239472901228176499518430730214111691791859629388826077748372636793634311871223018928178660332751632613522219868232217275551842793050141388472061174565409480350082299919657202130288296015808212703700935510176831416931148795746884543082802344901261426145125727866500812313053156510721443396719056671996577139744501032122164549493412504403247002816157690896518797508397374494387191815250718535694706771261392170941546157823954975219189971829002810776204085026584245550554613887907760950869382154448142863529391302950228296131151949991838828287454987755141858661578364983764688523414185250149566580912397176100703686054663364396462685195365700234010889165433979126807679786624529011306084708592303192775002096184053555470271829226446468078144062989117385284862634464395347017914470563266715462484261230231497171581705159257842259862240609954616752225645205112978535016250957413157389512694691380388739661266131877460121161212014799992745416297729548099436708572333164286568693929793897122010341053552604317512317732699359663702003742115574949391120881558567670728287525516576134901104657923959526639206224306716024136614902131768287772382347105187942860289292196568038236127668841837376669167067919999280374547714264497583947642323717829555408540809766356547790829167023892873733633204428449064999290438387148112252464166890606803590511206545338328086822497831045831517407445301518713615310741668900546496388573161731520633170265937353334219830885821394884528004198131020479777755647705770399436050872476062700554886053825411571030629235600421567166735794774394162521372444446680666626595824737350716963251267990815105323720612473962362840426845004734965356672316193580661070502959857756469602616929007204143999955319850948057632490596661783629770333250533628414741979283488769577466137379255054108247596979898187876679467120254018222174023524827061111954067168210095854191174114601084973301482005545301386718814591881432563785504543866887843424587957692717094053613117525972144982591055424704219864713003300812261340261382539249018753888719316185407694771334216203848721652785093975830550794777856862413408427656649048616272274171186384920861477582397940635923628462387464790662720455252952364744167385356129488716451112635689848174106393822554370352621107600906286604442438134492147006142422532683262762942572781336327005682966613994739552179646753985845259636160315629062142278049736607888593551039821386776055760975088735795651764704343264441832285413812276540155612861589362037939183600346982208086567539726624323780466789106908114002063903084836215585814944353194461557551292325337582330998732001261477920261916074483850966395546763755983262683069228646686288290394207438778033961049608523709632572155425098331853105409997176644209220715412308847938370837398348701623088757229777456719025167627980238681275523261702812906885578405013641182604772300578769902021695139425788948504418768644379444215259498319516589392161478143602863059430746867905029668145506837645384072276024671662208049062162947453264774326440411033861496304380570568410102852443625117399770626180026536991332019438669777192669445801854456948728963277106493367068778383524278431184288149871216707755010758434642916888832425579583642092212531434567574342167571295339121628482557160107011520667219581444084039190304098932825131485126747577301637664787853931668575936514473076860729992650494669471417340577150490966071359003590017094868068829561155288558183341686468878722817375328778933367653552762937129968935362944387684901173180604066935716371320438288752357020013662006432926030525176516766171243088555551928003092125453051511747408268815948049643381768837971519591325489854443895767452224929616017650681629602746821050528718969560796557907364168215667226786096737184910482244961428979518076616051165476611694474220925239759145799545041842833818447014246039724546932485055331955669201036087628846955321685195253921116914164159614170773937751946877284014652617509457468347718870670350079077276130357113489917774156421770016797300562733074098691963503611333643437666508695242379561973413892477520204234254582659626249563619078663722469863272553193171240572382407961194933162004014067891122786494913168161346015804595357743805538029307549079060617588295211223201231997863146172570926710742008822639818527812009766408590534019797983017428141066796470211268736998689819444935467138211019526375893171623396649258711995592461143261415194822945447247013705238315756464266037268503121113612150674601797904179506649848611030430801284693416869891218010285699779376568146242406941170049010380218389222358617568654159062872197823744970221790766772854542559190916102956988654320702636220187615545880467385442940665113655303189960669001926635613422573043744237553834429506478685669998689176985072670880750064753697244801959937251756724028625842977518961358085991212465481423297285967018970447407552347774655747351942710546178913732659960774411536800903077064059448724451306069115739805753767807617715150801565352326794107325626923524774064881181014639054232574307974041299024472102374820407184422427116381776038725869939269614549385226578917905130999994123322892346966948926799585367482416646617289182153434899879178794077916992033808567003883961745795846308714173942571780031596204794430582044603740816295264762864582419270840966742350719831138464336264209957897150350346411651176717248325498761058066706300348077845684583190125755065846768866134281034497392477732926113909067530823277589019231699090407523168337799965354680403851568372953228964752586048587420928675618662811836828439554791383260870347372720657360777353814495138653666553810866059888074222960904291210218024818359671482415286831086796925764021211631737105309264244648994018679349683586191898501296637504522722236693148616365652987868323544776967915133290157390321960137758896720654332177304700183125075442918906875638023747543515319724270916554447463529135391121724047644903843787406978025935131378076047640361650829050709808977622686860567728393819158101177512399947544915497248720832410703194772450682527368472354744044370994230154042746736647721469947727689662185411914854640601863878054528640585729467400135537115684610483258066644708668419553204464691803372742950807794762579084695756083089203567068224077106244897460514126028684209239024638566650022115071820516619997188075484556371704647180670221289899012498011108491188336704735704237855280044762861676377138962580107102260866702205317857714743329929417026235758120368828414832511091863881454591369676490736824206745940611278927109576007738253897946711557465448579740981138753973301113439477731393274003150002487651245592942338363860432254069075689906659704766470466423977021028698341954482983285012783721765295193000186662152236865186179394091463602001673826012114713898855559054078421289336656257845099766188571809557187688016950029702412257254267879239121261210543929345870518180830619307753764713396676117423100865056884109039140634908866433674851111924576359563205178626272659734486546371644347065939782114662588267994137330179922743828224818533253477248846966539709581389572603757094032215796183942132664308368114481106207229482943479752785210185381045172390274949892358193861759682771386452663049014781077582792320727795601221578575312454653556494323193458775564454088742036954917214642387926413413511495867989666922384178210356970747239223537009790317168632653943197575884211126737152369123568188159660139697809805791644041259984241272052876178534218544975802397803652827610933521548886859312395232128136923692002043533106019846300159461487376031535565203555390209614547614520902879787811539062961967089269711540465985441134453067679896607059565613848545307731702185758257858117244663805998023852948610135253409014968210935191467773253901414202177465814047118283518908924164590608175000652577506401486766913357730699354077990084434581560823648701180800850870193756480525405724614720352022692800839929676370794865026361404880367603328034154652613757028483497053991129983919832727151304842541246549912987170689285382018709917400727939251481832229961911386248084385571528339744828904890301570405486584582377433967517131041764018984581627489503780156068024173755965533739671317875846991591883412400362845363647327541348009543883564107908189738761696576433499117019397418269656378665120636108948067936950183198735292567876299003840258461379911253875056127517761968749489309062906236777334967842782433048448054821282317084897672771758977558181268232256808880688390837863625467552366136936143686767057144873716103800919341443544127275218095869383257573472311026948282377672373799091373103457943962790871396467085372868320945420983914322871893979778242162446716321701911776310710887737926783170369608744727166412922272855576364345079287833360613158609032915637851032470189397295534711309498195567515673560137800836981985104045785040297620890085864726087073620450296356212505425447938897923089433202468920914517227314553633508525629232582755013345969248352066258705192724616860171640168638533263567496224827449472453095320350081577419639942874985822503732032674496963038850628247318389211801212161923847404767499524171804183064149329253195498602251253563415202428759264261589573881749631106919022730810974172555283300837809672208389624664457755194424780997701551091103030834349847325435046810518479017563663717408938992145919343334722061747397313105343099081428866600702756795991744286684088288149835106690732228085500173350068283110934330618665131277924547051630304217959919021158018440712483644837822809804656150859752197895401362550705713889447002473178579318061918184462346521413313923067199630852173861130941276961089642437228509281074875841495088726269183483138901849032835227292362993700468038919796491792012164986284019340988871610936478893895042875110376864059932305313911252461369303224252302749042370721506787437045418572755779050375235562075157103100567254600265563278636497134902514967047943268047474944543390439480858385136212594824773726811421385991156431397739660507138588753291873241973483755468462606034632305068430696257786718684627611957978173522201256458861412475514898655706867160778486618987148902025411433630955114116228160044715168964438579402650848886605180352336453202945752561474066571372694249072512538332938286573905072664512654822356829547557266943959869608288946930043914519297259804316477637821186689043785386006234815686500895076193551056226654479710436551071531357270754467654200436199626046470039747354884756260188678721246331495346232496837690804596217107997169478343095966891696306451845342734038208580476257251565795682249239822687081000785658604534990644415983549600751626286160335528303719878559777044768744665144683576683883069441801645986595483021674301739463089170551545690827962414419911664100827289045680065083625547146367585211857423779096791230998565226682261009683466414654189153972247955425025921757154086264980263259873322622133051442588963072789545377084546427463516289359469718366157256454824773298587816409925858710579301437889794328008089573728655153493850046151838236682855388656640517926619116230966621593286949078028199524899671601518803582616938178326081932321433019423230597224664431486743726552195095419889405596411309604739830692263974200605733163121308900278811248073543656930230290581476105443238533777133181117656553958377470211250209471848289813559217393174527626354753156878784065637843217915672165346419208739792938111158059370671633198233683838599001260607010679799571599142899656460638231578277516599780762419820769946757615213827602814074547221349956217163580418261643899265681423195323598495142251921283474737926516653408719469936638243149803421634274222329913141119659875615660532040443900864468252566981359978020563069051374590566334749015619389857771370557280584515944781947795600447490160863088693748160102660587617487159727591260969191722414281457797999899483250502627761374833768804244661857383681689530229493905855759873952110485533431440863817929071753770942401436827454925659091358594109995441790540236866168631982264013656343583300429663028981143188639466139526070541163179115416636676287603622694270263872444682357957311699898162222285111285228902743613175606834378650702344632260399746999756125826077148710195159491160394255535045487012493738191159209237492576171550232979981830145864368489434872431538537873113183997904167958874104260387512357207567039662663875878614989199958520253726936077336916516660112547744921762117912489131020181116980451341424267511557903713513384739739918903302011073222376158213040937108078724697648104167346058783598592774040899332087563016313107859673488304655140336971075838366681070311911906328198693596861751511111843498203938445256181269928757888004237288617020811452908170461075002027328063143940837218918366021049502905019597411963818087747443288254366715947402955549307439389188808210490842348125702808101510515669998983391413720594532981757407730789983958556747525662779814914540219550022988735534615010785166326202554482683351979892085606970665253269261497444040858195058850985815272442285833262529395760729760287333361410731105347541535915808766677518068022796983426352727935467873038595110705487364095516998376405337802028344099264621441546882396757170010076594296877517171767363089408357763605052719708798931754263339046066589074866452915465119829743203243329078880751002482342896235495942222911204473479577924961684070826075969894797876526775690238467573011693573684077626133192604529389611902386938867947417576976409378262765347345258211042420645548570727826457380185304997415614694440998978892135377849470900955245442645301789513215820460408885377477211825839338987689427563138609925726032512929595875356253531923141577056157822452733341539118086596760802693549641580751695382147731246952521039898123182615374150829814838044625068550856352880112867996698936580257307929593948579690137304750340408911610564084192232338785283045572612555457645611591392787178869755005641054814203526986922294850668023003754659549271040626656779996432246631695922326075786836852530092991256474269865851242179550055400768584757497799805265408345357627010380213271895304063804156340999734010852939394260324046977468048863923796846575672716343913866998421051579315555255686573986450463996866444207207348597628620365914502508090426776781624021692304911367019308907548999815322335048898945765085323823032511301947205104054205674815068515512409568109161880758137824871431526752389473174187303178197380448996762830010746468619493294381627883211748957016667327993745664106429165202637237416550438012862434229264160452756299778373800861465712936290809318160511822803376080055191055853471926322091825491624074186521026160671907097452367820625282769231544841740616473665735984613098933100144608216330620466660021707524819721641688199708367674296778874258449483860644488234875942285110254274903138191818849722459103761896846508232240086405340723865692830246589492339761272367197840111811307284052864277419914887787264312040126622377532862914333408039710284062832862061678034791492629809103445661009931458370966627191741279814153386150002747362725514636397584173582359918507695789470900914498492061203323907152670288801036303015144168890581241496487909985175403328740925655225680896022693780945678862214282223067763394644792883619885206149458604060242916253796350253473716820395181219678470539150110918844051042197118797430161840128009485612756531143335975023177252181114459661374569027599136479839637665592767861518412102848438409614376949013789826745130155014145267643497038624619713902540921395371662881266076792177470387502617684488645210694563845723572314580999933382412720985676583338425640884935513791520940155633735312927645076059807230795541978955182439074788624522045036687538976108743236297917411424940713794460795979867339791234875301478884826579387664685841682584860330420292697975799711252553170150822690580720622861859392969216984561121420916610117321965102442559187049278198689393852254373148830402244662887259335006109044187490254612607151311848405517917356192543050759068164182743358474670331415839324159834215620460784443901873414247725944363829054165291732329007969054604625046812791120739101381440174889436028388332678838194091448489029388807342217996705573414473702289964327679073287957801023481132537805629157144759723618908954158631781072955669469961111867347887207434012005894396437837880833434689849643858037055126995339102356137305659501916090745804561041381822539136449796357751573871964573855334544620548746555184449325660773869118129073937592140217110051695319104628025122634077168091061639188304196833238775677976177170614491463237234577725905811518197310511400242728259723532514677389510361189873687009143808204380161033509464616398334604177835328185962359013873919483135124970061970887862316762049836214899151071868857400057334285783513592143730400839930078819205767299343454739020618753677259311175785193433965767014507092714605629073482561495184021007001509857364101947226688160897149691007425441749087355004929917308826781542640540787101956269522202981356093422482593950480952831424758806234114128321277286502943129181788241021614658013174123095683754004321961087927247736687576433658315143438361715560440964443309547970119564929837876267515080671788030878074703184586285266722764769440459833535710411115014565104021921636792585464232141349017662573656701029500146677156814702973951635090085291814476353746970141947419833842209645077142972034264755076104666618694928573882964313149910946991476205911932691151434238621111392974977680220672485244518510952471708404714434458476965074079568946753296991707046825559013700035167008198591267511641305551632521280502000204698865591092167598740274200845532325710220106768800872096727052542391377985657305994606895399996898205655461395013542139228721072087806762101367878139599996985352804856868937937490759397333347111344552660696824431829996516977894276451510592673334331429040642260653701760455988435959583521045507638412734616073706516465292678481184293779943000838693732840726622751966756337498081340270096707471218299309522138979218845720248033118915016543260115406323628309323317592754692634144346688933309571241552733122591926084259873168660580016123466085347680263882532304478705322104686438184869256088560126455547129998345747854604673741519878854866143755068457275952071882412771105365502602799358943671031319652041263253169361061978852698862002719823448371263376256165620516296396134941597532327107967413037820716630901663742542527652555322108004032478112467641972371354045666631551877151151172229864773466051830012646450129940793816373525838589285436266735106081965227855366834995364800205657690345818476291735035899989293604320777854908860503009518897457671378912204796130349296503130174450632032844477932718968895996314271482477782619393314568966036928009953449223857502580458943261514957537657110430895688086491094166092859601623580444760264501852772506572095309935773236049392819188928607028525009394501280589710769538589453882826558873754656109523010043611750345442421386347721065234381116808282895445919466182852040187967205704537200528287389425370726978248477529632146265746414018556522188695291962820552963722478883065229761527832358108899843937973712662455471249459939850225050965963798677296570100146370333576871137571110785194655280777348212266608597760615790121710186318898023228273772334598755090932395092022762327070548643140080366698988737722333454246346550960973865646687580019873104521319118381451265852924194610383745012980584916625665604238439518278485514504517657280614886276054647261696499425276033876731579405630092485758054837794239483517861652166402781062508256009371456538953386015576139914044488263249114907137502202889673669988667323290527742939984720602129415419883292774682937567423546007526538625366243953007016777670496458526357302701137408937631265034702001404347090720537410625391349051282077221513498529265916071892997310886503061646068160768126630791391088475869547708691034594670266518860640683486477617494949942674484612703098708264084732079546997982119604442198441446547683506480101079395179651727240944389163142738222592933412459323550164116379138040764156910220252721208886867124142975362976572696509136960010667814188783837103575065134249045589059136254373520348820971726327638541132851488697868017555389174349761226480883765760872850846457610231350311355113280725700718103019097999179480825122405660341438746102150827712788517832004224132563414704143871371439047329567770548293146716769709973472023320798422691927576211278527036496546185333132683695555342975424066316046950057887384218375722369970446443809985712452203645299931874911181283433477879623701586737301219605602421659787566969413397205878731470053673955794005154644154141971055818387027491596698511946649732589744543266858086587952041529827254005590186945367928948195539562426364132371700279951306421840359083227214848088709765592315052495949808453433352385905094015645427337637309952037203840656774020343131189560145418377119713947032185929531132423020916747472197058687681863250359927279751237161409249858470715895241290560934796501093348924489667555328780656541556780419473449674515322607556579152112189276358570138595236045129056789077417066674380381960463783021328545693666966469355125447790978609878831194057110606411909180718651383354955303933014184449573229456409295456922213204443815290500458693707411088847448168587033106795154906973417685993056719737909679118556746145935794345855510094696611427268821630408291281535986719797368478953408755068802059257485922758804240785116486321466318259803917764759912426552036187338542534557101074913832299777969728648239438832176976441113148425989926344025453435024183461144529203024970018762654379318214535727951823166663706200012962402338399471293471933263395822044989723697771286594998636061356854152543280748963342623359825337777298349196707556560411856422033568710140944311790347696314205097974867347847530910933671648687100938234458238332273031228881935346491523363257417432007401577420875382571964768076150694580147728234890164960413281808295548747234827822318459148927039922965018947809454082069495944657136664331888080143413268953898785710017504782977791134006644896690089600142487210718109263911578662288726132986500595536889579493298212809994923601839314563763522894540236261360001690172069665950684839455622327595245060032756177973701902654005443875384306841390971603200157346885171994624938731741832678529278912490427352211033215080879085515265369766624311153089584944994590306546719970636032993731350405382986173131280811535744060697073045288173629915499908428508677150025484947685078021796921207301411959124646759203675365783387357495860758183776477077342546264643936139063970896326449094955557031907762033933941179742747316263248700150275511262519274076362387896525422006364961914079227764101046997995908635066281327291787770417691373063516852808688380640268837409043561041045713083204541845829503904514695243741757797410813135607560692342845979163244447052804026125744844765450273709215182566177394444373255270573956837041049884916814555678140361036880016156441950795341186195306563379417348515771481904694888767033126527500198929242284752898130478784725829205196855085605440539035894020801847697974474799863016552896412529743252812111234350541441847157170041235061828558666102491810425982035081139491345134746496540601684441843802000568849482109909580644832935495249118449136020956741936915923531723702065395011332519065200201916074704431880853748295891660055410805686133691463176778504198924793816131095982326980545709177332163092924554149292500594642694686277851901549281377612945265852377879352686534909200803763950008004135495444820701189029036095900791180598048999824343736921078299915627114914530527097116351098697526662307108461296747003302660949161154035112831640109423288468689706412361072694934072931888946167246381121258182877151454581544263213919089759701499288299843068330320474196212980879167583886299939603713760786084140140481940863901703683652369469978602333599495618895907702743205627184562352149315274329284288122875724335985402436113532769340934219602062588722134416083324315575016358212690071929670892293549457078128834927803746784893006946908983209646933275757329526022035672485495046470333778637247300241146925389054223717560579863363936554444778729175019475794086654687597008322054919873632512545394066570880119453491879896404990104303722492043144555280216105894566346135053383332559558318150896807792295909909348452562478887624949047143165580495811422954601520643130948919039911209084090132068231115531967188463581495126948097312642920222482230360620040664105751091408922584889545726599089585482596318120842681943485622574889524340264136450631841481949126255020540830877483670294008858615797530555412451619157440856081973787906532063817068596310185124214352886015336817966685794178510249449011964977304703219493579331710489677672630680964049318882274933308799582300797407427190378915861409861462025209981540203203898495650504776677741176913953897447921156556829926966784502266835740395488891536403295141405546651631976010948454812368635908070209956620594304533546824110022804613421294480488341579462640368102591254745904451904320950492771404590700197543959857413731056603000358250692440369476812194581530768463552833369968672451148043144453692213901080096713802591233744567670948905825834714967530509577846078391707353230082096133504081017306597239574658333434932079769366976829647225060044146496065891697157954958830789016395555965125769250327922698752891657669805042322628309275992186285847418157565900709363605320603808165362319634056836323593159679184097299488910076463875392444794290165981526801380217930609571782526511911584704532057244510344259804792033434359628275230908291042101507605490297771257376427886082617523716329725113961732434107908423705400186538081038519368713191091457539589217785535690804629883460519400508344043809220094790853147571580942922558476347699537695524234089338351226990813619638791510322891645678727975975255013927995479500025795726172059416087885792611545875033880041265911365219333458200382252418941764355146388701434540698855473739014325867137217088483952347656163261098570826269351649526905926662711393790436412469866092853030480202530901575905280295617482962924006232284990358207758799854941184572760530647464855326529090734424963597439405219611546541555089160902886510753089257085799054815090109694793789186252701336980114432839070200145153132047611949162990751979862339326243340760407873392053432913441402119393227176437463556720089676896767056759721190792803010110838107715113436514018752249958149535296139517926443830409830066898105214577363089718458877789631936095105263509803011426592118115600732267718443161766382727503513660945970241387420268445815374447189828267668194392860814735601675628870818615416038760079392923801404544125166833366947170627131084489155739814923659682151112352863056519941851010646936611494111559763701943433502774409644626958707762818536445832760099958198540696101516647289903636432624971584433700219282167729785959362792010404518395817033534028402185949976434592570734505132437180984469342329767775181792713055677390371374572933694140275103138243332025575014164445547451788660171722233749788683807943324617026472445817172977024616688613371896200755977861005259708785735500465018678692286049499047135273738899357320428116198194167575621039710509113803395901756069498934922341398760406572901553050428360075760394392197167435800136831152763660613625485595467519441594301261956262956208281904757931976746225024754037105412337446901174710482744736883794416111767398721708271063340679794045955100902660633057212811606245345506849697429921575781801283643733698941722870176177025342772857224429696560219196140091563742937374240684631307376523398293794512476126621568719406424815165942699036877093646473324413604002390977046395623629628360513034224921787665447478655538638710745461009595847606407917685364782292606266460601187243728991803054073763133891604415618854140369910421032433299588954277972092207651211305674784429913676938600349539672378497734571433752750133847872408724709125168656693128762013493889231834398650869755817426911108708870925856326944757961957894267414216800452831013912288417618422843097191945780009502688619129113687264846131792977827564258452951825182505699423179589047442880160759858167714647973505843618793637433822326590727614820701080825444212549188817445674478854251519995102899353597832688211569180888411748087855446287204568479754539413155381874300168141347686469183928738336611924830985359641115107440851423795861915456949373872756446685762521541307318743567928676988101846349640065611498373071381948305179181959837810255540846768290551945926936268575748329657150539206054252651027811356252553418814695323719046580399783678938756177167722902109749789979133375122361876003691056567394937998634378819611313245971273490490489106085730834931805496830929386034176438276359942959937076069469906449008225150026799683675744806170620509315390112533412777163247135912072128505236545539123681866372181102699790704855563580464892585517984466479867680050517684066941293985131328822832648882591924744584570113976558599589028492703661141356157815916175477185222314025803169370176641468511972983693144102685639149221628090078956847937657920270368337193355080523404637186989024377342121155517316288837259307453993557641105744765646507445581310733486782725530333002718909469956362210911888482781058324546401204814300697363051210948220997035634106594475754726950748266164693574942957834336188686033845125358190169925466361289527795367803931325672017004872283131794275391718831468025769805600318636128133832602905951414296981777624448955578368787527534813423916569499126539335503774339715941555935601947018682509428493507805378853060273165850450493932760484274915960123023422746943186730094143199426315269299781830877941607593133564149326388173536223751479726439179342547162615178253495213756082091684572962121831894453701653029039909585442160898595535733759775741357976734572276081522502776136487079263334547255530702316372580362583014233960915250538619747765291012323004316042657001208562901724891126644666791026916458309764100795232571667897165391262331273825552754617669344722810337916124485408356334560979310715220532638798109972246603475662060820623570893322900030369127261481909666774379830196516673969552276762344862965055637615541469604910310578610960438774010179115839432035500454745562386704243974096274614001788996709360453121474981921649500711407798069557012203512363553694536686301061930286296567451405783118563756367712493017624647365239563889937431321633297350126682983743517421205288121519624472482448354012613624238385183983774715023674095371380583730240215054819610861581003012379367967882069943368005831041233147388076576588656348228237565104915082940993029626736245156156296858957871276307882124123406905786030326745764876882627234923620889409395440891591134957483369714978714283198579899773927602548211433455798489944564486679141764657532146502963003260837725091058782460084966396223400166660481881549763739960450938588199119322271121834756766182943047395365356298387199150143547496634965354168308559165309683060438144199399938603523607506870086678807876853836521253393882591049432051052573382301529763094639955298103518432606537422663862250199685147499394097609924150891932113095153578103013585974279013815747433012225069935336905912749700281434262328981352383135670951748003668907898457225524052962002146302617624437232925928216243318118856401727843513495300176780271463867700782834687992727357847843564284966534557208849033524411918951409448542751757858303548412574657220104600951190249336006465418593391762152138360182218997848082457951649333546525728702623078494547299149122499757568103493142772583668305838762362135718364383312770119130525401046591437949386095363903791742758055646704044584777865667729759895464422788198929067721501419747740156749167298933584274110059605722794539165574505904430504961264206753449287248335108347026983251493612441651970835540157093137918455980581876526832855477905746968339557110144702559124583641819789791584284224215648932668942656834538161933747718149122675152460478832624944438575270572646701284219442399585515984241321919726157391297069243603204446328372071853569463594260922344411378496975927800506376852299364861719416859465005979962124631453269553429048743131225561000367846762599065587522234873119638767435722845748090190262896560917838362795828313025385126049957661728771629112015472017640509199193331074563802558286026113636741228100893200279549751051938000844973388359577261372585399534674014433413211179239399375712424178952962709315662442617897433272250359486962329789604081794179472121858995277437439067403604259915776093831179171707567286768175933081820831905035909722013070667908331705252145476985957570189441266674087397728217029927633307177875885162970814350087303675033551023131055954503527238548814256187876055591256395550974366538785418592631008004829562578415104378010423525522331609402788813641159131470004518587248008613832691553176249098191803049773384457437455129878265443763854527759521142817409872564883337038316056617699806492607255760444957181468985973379102863688309363014067734767806088781399258711869147176742939719373395596178184538614720475549498116142026100142374491840991998490145604652386675620928025190027122674526865515061006536630495286793161159558249266256677879861629156710473420921099347785882551803627636068184388388219412408424807533228159933838172713857580966799514431140439736153866829257988722471231110128888287904781599851870622079329545058469012323611576958950947945884533172417682482121989868903158842856409270037019655552103771818170409556944800751024422685744056106604066024295618610349006402144397735319745415620549263079751287985006687609190653807229456342479156457370496846944001018112799629001780927335956291576415902074378951901282116490051559188540755790001386638530400866471820669057436433801225535844287353396130112640803186980211293920516675829245507446409701646619730815407988424880819430072108087554583700658571780293183803248125048424443000361334773962490401501603710161415297699176597811416226559433779908107418870073874955501794466653275193371792399882268592586098287733646803208043476406999213890582858301080966737176531510480565636658518558271354185302120492745219172931411604245521887438546552895786132687987665256901997481035014987830915024494180751664239049928963245809714201780108467580341495541088329656535525130881288938953562384363496059637795576088450262893292013629479157153919132024072782801874711565138872441392029910686877421185579762283244251666325447022655997854570639152178308165905381784265216362984943392660768144756030944483944236793159178179369053548786102176470423615684006347351407616352469080136445326334137717166716844275220580197076472604279058092182255250366356117441867521901948782787967579786453488171741581709034795503230460676324365493710323233165680525458188499894192039032991306405235290686944544841456542241327502086906550465331448097984754614096615872857400294865283257976039515759443894461773731958777773930598039473620901590249506447563419086827192978721715515669495506637710860575703616701437594531137846901841400595714356903489847149612673590711693475403718141398494280188866415550652816045595237228365187461569088235514107566706868986890751656843965004522052630612791992271132028169059916827461375541763366700108604993616254792515283276771787705176951387451393444437306967977959517159052496801338466831946004223744447949097493516603913615298992140709141577458082950999685700245903824757048915454759903191434280956582062972432929411843298218609125398160742314638635078906009209209438009544396073845941553564509328740466174890706359765034909339573966499489962379767670718817222704689562015345842242107385550752427587022488843504377255048838467397758908559328390578287358825562338634268330525983032765918692408434445354210876642674998905043522054338414433006613026116193560276755791460930383933800794137343065244406484274892464129535697184335647947004571091916775029273898157356155659823854206308473697233848633443086717429731324943365828884024042526341552004479212476294984629249332506378098290967092827097692014374492550667888392213679025204178297988840548707061194591020315045805861016925475341724729852471982461490764241449804760709791059897929372948607004576241952350540217131884254224355240791146963495626933215210842885236973122469231341854716876045138253911951980237851402502261735884203806903879638107961537764144815757757469345394625320450273670667201201415583203255118310303864139281768712596853567499193011770285613692050389622707644575539351595004454498322319105426164974960336667134068065904090235898698126054345918363178121643119445572349273911416335608493579861833255020756269122109390055334670159043540786233067427488907636883988335491772025083140058739634804554077960854863089385321379142401414048748013285935294674839749008004425359161883555112334938781937200844516862452617412686458470007317386097154319049064471897214907570727731210040360092516577602181394059293447719435840345848862918612038743208358611509409994413785095356647446351652261729147179638010603560190674199064399827449446170779775924370354135421706263237032633358293257041838317272638608043916530450151955833820891686873188944672641160370027854115253766761111980600414658328683971946722276673043125000731453498751434330694564063551362054658003279357408656501216144956341893954704301814657516562209769484485802017353288363194283482317487885904084949289423986296417702444426944533415348408942932242828389936517120363963018925265149072614863265946301971877672864981526843324566385499673842479263486502092858992934214115495073571125976545186324602119261578929304002671811924306130885255078245312974165739880041124778007719855143623850025215408478361843603850998374974441415026464405120094755514818974474647017563959417290660703049370687318237355890050443326208674208023430120025292055777350313277818250273130421495431375139643591744893952560718507612115654852292801308568880208273799634603182476503633621637507759790788432438706786393156372929297513182434240703740846555529854014160379986796093507919736439830159173231303457344348412953576136726764755752803241389175449563874525359215923526000937813667477626965944690281572853567116131284027595744784686004792431452959322809999609336140671304098104491423741157671665774344380667808448638640193578437592294109071486624599046738521985450084826924517504541801801279701777750249036174686764509720779601649378944106492820883474905719258672411213708646249052798367190402663036059902966419838737732665475165674281368037337332974962381024860808438828513684797480647988904725360211750451212193093664771640091889424765565062866278455714878809271009578926593080852676601449342856203952873420192629655056076463832488883557772688521312608279435697476021029249901245350599252124080571002598530426265318447433508901915571112155102961363246723141897103320720802636449837813617468935293039189027728432884017617460890720414875820970609114560391575279322306740431628867265728127056523343138935933387333470923519023800748718759542639097753835747762009456458934774661735869462101164979260081763304653065522750381943453258689861884822666583146344945058230216062559338254814165678002739432079103009944898600592954344434266185943139114905051649380740742024365608846659414150754057574566896260987490589125426468823330502304292072648731359411659034473802664749638281492800589538633886923055822640841410216853345184008044444805229333889214743228621154495615318578270404778274201199156304932900119351361169951784307083840790146754051109909605730659513083292289384344383183227642506384852760749053632479462289937197386870943633762301879686028315015335662483511248089816564917575346921451112147398892432099864258357812030932968971530561706107833459872427369798988128936978167959564325513089422912879868689432171150104135897823402293460760549688259127781835720826901845646807329604000983109452628216984219798589052832432333630364868569522861626582441187882238042631651560484882822338700689257041644684064696817396487702295087486516216471217714727640158754027466842829766146842401386774936441217053770104525665236614554482849149013604768314333292619552728639048220602324864083341405895485833816978853548914432661016860355873072317169426041630731339992984360578379206568536412076537349208152414711113831270058351964462461483078394360253791753733071672670334846753580995608426050443813055710894703623858972970623177852389548191238460969472070677397786347348787147823372364584937316695450576746180787805231784292130693602387949381561791372723662978402154442394312276776269454534187354760837857702263611252502012648754978894048286323252429369547958460056869534325543469274158793956274057406796436667032179487593644737516668292605105431359619478321466050028267117711391051374975769561913411250552330155776117481045595889133421232650365448025383135896026823822735504358541082360205051547248498128249691926537344615482564109847005626908850287280454545688052922532820223996029894617083071021797281637667982015961415051092887317899292321904027970808885640606425422580950622050139823775541604042582731424701572873518279509898990641177545386642625702728535768114983003674910950501785666696037524193179137101423664084931124474888134237399661019978590917087239689961759624722610693528254734402270460830078769305993497548658990955329664088264181341571206377297482144558762597195171295836736693139415953403383326870621077323738430744322442436430300840233788856264286661757168195696520962488579636495425834321647735432229381641503038441443534304459981126190767249544385525406245271559875709083829033792817186775540717341010345045487943675284259308496325528250441785154649512362910224636576909682930435181035467580395434061937409773209609451886704463687294168345622787995659231843397045538725751082409417290903747043128758087614630787074064317551876267869510880877958883151369205803723935931906687129029306181956953548978325843649427705420791127267905396091765417352216800878915703596296379863415124498531219297886886060377313108160130087645972982456044773710920352410007005548845709306504391553015591926968270924232063362141723411849487620580186496231047487464334233984463566339082646426068816569753264557329703018890916332814793492124680214430040292094184696754299043780093167114370392357094922164681267283440423400814444622258458383878496096059100075305926290284914273881364453645749904423917534376115573496378667190661158900377201731108784199777826132866937767503540750691689640132556149274245677222528760496158605671667539213696286910743115595564973780494186671770480568599841177407101471252255697405762477697605624026358007406155152054987958235526353271510250102950272156421350154204520059230543949032621834538948617065834253583923057244499213090812109214833839740052247116915557275753446737292631603667591593371266931707205633091935796960362042001847474095910479163929535610194372891726815141633110073773661239845712887519825046895912526241022216135176742395477771085360603161945005746138190432607417223964857520841761788021518700263369219897816586976695363451067511436062366614651726143029618434648164698238893931567186439227543065010706091738871588536933843953296569026724789591303174943205790620257674396357994620920282201525915627281710367702556630877984524948142059946120294893394555808602829123785195040143776832270179379463523882632755139495491211784461504410670589925510633294917729218886726377539006680769672396046151723758047718593303559902718864042290053281211833870481261934111885848748415497119169637967624393115343699758791229198672599628194169986497500793733348634743666423314682697147776520348634031299425016986957933899722729279894052346861347622515488872917404798869521178424924645104367612090677832682145698271447671634765458465309552856754087586604008968570377205787166325969302897411654893145501390033037441873189216373069224222865841628509267577878200089310554926776081114228348602267460235726346918918422708220524596109220922144987006086690455443475718795654481545676025112936718810003231896892771437803499950414852293914199916559586827362403725275346143540534654935900509195298640784193219920039564509175837797546966332618855609981560619057260935865288766020931936730641446697870839342195647738088129006195012003482058093273161035539641756794404265015644058564114205829349181943080152807495810475578617785215203308343997210879979539050817043618286724428590051794894925709014802901595202171094933415676237330672238778522246601362777452630948007053616313508997324939722634339721540977155425564236205696703198551833692254258473055845346682807200614006154040246938799631323930870613886810426593359874345445023217615241444209870961722037026290425206895080349033860015418653751417880997994222525516116256173421325460492316575030946588187032260507303522572895682159660062417505795554148515244682610119269699754260313539484918472775711240081154714014094196861603713739297644879839160578560346871711755766480332585614013260037024657480671373616442614958241850420269529021612852866657205447853991098704386608563326737073277746414084374514007143707917555162659023538814803757217291851491117475882058847515525572808077748124927615395884026933908903332133479035870060645613356101807238907878029704105522507940289718006743251120961064146669933820905660825361610897973295532784104587163248708076076450227984898198868128754761626674605914278669587150517547925844116412758369205489978977485045454255852962803341674339390022204713754955733103023317826938517339673321518423719237733439503147167715654778819418891903047748926673035334848516645839944270331817894440304188096142395925084353051555897410879744126594514124980119130329762513993069263175051557758135276999772957026003968972582696286967664606445829582734067004894935951370589803899020674445887598198250042490362797330876594512531376518631605468452368563070982800468457586507899431145326543466460038708619770177013264448624974865105036759829465693680698988869984706189263979308877470451443181611513363555802416798703248338137956610093824946341152090267022392905198418318486564569019958975140624456810590495369274101266662754235715846801558545684657953472636028600316959004595400977387634519322153915976178930187545746740700302503635526235358014178155590018678926798795979031504798263745880619021388875819788392589438529783087210032166004712808252625728838322188498308427180797772213549338527609908793580780889229891947160875646168281906458644101527024840877671313203178851298524763349488540725255275185027107933749926179252614815404365606002980762510879425903174076287585591762236577488734578542305626998390755033173712382691031703052992828231748697352808379503521171761708547227029329446329628380891530365323835730371883329676126054616077528707441219251536726765933074753800327694570876734777846545268478583001122893377307919932085560442613036101142740317065418500810370501187764927792685032796514403169579338909629783929108239102641226198988522494704013577645833118083311162639636824501108099623391106346085346831945663054204760605325776383688692033479442719996227265679962771950176348548862790009407418415179497068662927311950843940438390038895881024900730083750691983642260083907801790846455600831513592789693743890233385589050057385196389751567405114944156865619129798237753798840568196216870918785673144595647174751016395796253258227425327796465547846890424028039663793123542483919777295752098471627273580090392522967857734709002258851697493345961846689230880604274901682184718821337099076941996312130116985926411405183027571678081152006174055349622543128033957643306628284839669911159543598659716278574080562245163448961879277031379426515393434011469987582647387786650524933795592641380307336735924101948690700595180622586026629294394260290678955082617432062502220043126412730732290662479146779167328753951466194188956473956219137789574702570346759886081022473234851786262005498664624016426105269916658682944636703736777644062027086646232753548662742909739999059983405771279246544138371635342954633501380899563736005841977293737671925282374383361722985353815826174522831793577588464367963066001424252655567286857832440930664542484906648655180507298612691661140837153020889564628762920198363751765045032822202012075610425586967498846945736145344591094023644597319512739372442114731636250234193449277125877686349905144870163247243867038696212736361854223451965973880661124212650601153795053580704587351417617104730683404164257858953488052536625888520538851084891338255048895129550848184833166496329667677804295039706205460981307094057762774403166676708460218697669513137709718819157840870447171139971898679031806892056368117721992394107986141548684408806201148543184590383300079227833622952842404364892390612257033976597919349688950810706311397846033460906459046754910309650623502489511235180708568281138381413010195256880490117930675622297779981540594174090523056521240380587790812067360249483008105912560654305978059548998330282701044403912038928715295118917799448346622307498929320209540674371728347196985423065040600814646151902425087039693933394675999733910712858908616441617595802639279422827258057644425482086607694737161111809638240163259203816951268239766333791056571222771466472337032668814205756912174396094549094592545201398175551583693150007987827935556240002062162831025160550539429616202169918065200072803665558897692617539920734550318862571452830304719020059648062206537350220524980528092573580854088141383833346451215883988115967810235921841759651984073148686222842922020207603186400262652765751296545464055339908946060602287539738032395635097403154555078461311545758038534737145964635999099327689339230675027799060445051198799154719540342493994165616092012879944178734029261839317743632376529172227103698209573855376880402840633827383927035099760520529929265285369938728088199345816193644750172743412147953748177511605908109514530933633285344496442203410840818859839480908571789564308157467278256769052910800822670045631997102892836086028842124723351777652397900249969321697321245849550318088532803623850155362761755018572345058797519925943769041706453567446443337098870602500044940518915542354964880156130298140508386885634464274630459182786529510473901700444501853540945974227657899808134547077194712447090015421229108778197040342154560798008923911131764440973449920319277883938044127968269110650419078974639570475057874692728157039367651400532624153881873160518573344890914624614604397207226344705495773432464664885272791236217015914282502245069991628344176420698324598151235177176750575215366037400572945483017486575870975862623845506580262823867370930626322798076052854520073452871357179345036090789619435026470839612392669347530687827647433279170248422438622202832025425116262124142633817516014920088955452215308037931534154059881233073469583982870545682935242749113267181512904141778301671852375443150404551094256635734717886026782354872813222365967056612496412834370876563751831091413449077188351748335934844951492041609400991462583186870696625583000202656886353869739099336639484776161394117423560040316894793848590642748495184143645829478956678154201608490104999054960414014274905899316590944635475826061502643891121949023932082008615191265391571480270699833865608060658122873500103003605263484563988445073178033353079128443959920623246988535443579614285587348976207283883014735605147189917698683322069741627261366799657203232877847622405030605238502324992875913477998220319188827777544789501233803944965222205206186453196332750840911051806815296963236666938436584094815749474197567011575128984199494930350719760340957548147587615061828803022669763278571836992355880258113729360751699691678227712175175533236449699248861059601365144446177637443242614355178271581913688580315979023155623681591494219115888602973533274692393213551299012953644561369420734532293472500482021913648271004879646898930445946578049863924239733674977163613664549163360421438902471148546224269833332609433613872362097176245402623326808820882342472556483703395085818408401841480334623519936903063232610732366655335960617426178208446534818674878932059310205290049529539495720463738158155668313113986968329852999436614269669074352931807176104017969216591201873394128212911107206499387654720124735245542182670640321824751169309417666770161655074516591152194186115607956147309167622286360109060368668510719080642743564970415261908275054894142727173705924822632401060522463850826382164491449588594477982639857409058321197113227317468005925313934356182190919688923531963339507048675286312813810183771321343746458770629251381900445752552465006384593028011326823827954529170281343337942019931827145233506612620000786678691977718952704815486906982571073149367122468236712011133944630306563106108658437738802287555936665254209721209463007481579026993781564724939972249847064290533076400591664849019515428077275817657260103310720854039221622078362560901431587352916823909563529828554867754006147269985871273171239014729122227758493987602007042645001805822957361378825484334537274642865002524126786636999933322154313145047218047750919811730341936830993041367031390585608700361364856339635592289613170489204501912970107277469273614183291770149191891444970132076525869075566317837626243387207954937215976247678713254118737369224357174143388112164731212653026638803015465967286087487906429275752680001660063633439141022642992911236804255839307050124760536192795737517857061593625537793846052554147464945946693659508677615010392362507247587787065405329529755260283914153801054976384622251693343222308387400779632228708016080546951851303006099946692289212687264948834078565269636462708194110359064212568758806592849374099100766694612337477307710862123807884668563620304185469623637554627610967777330025720609171742398226616180945090766330821045790617080610983541442831375699957224914169846607434695416097536582947694853833460112208577597876572679339661048379713154510564084045968137114430500310819510751396158261180186590824690337936059936241232432378436186769844303032623507003025034994608150483278602508617018045669102633849771358309455227153116782073294180187749798797696298161727506806562450735368703874352837117105759881611221656302242980619381117125669168069967015024105374397160129816358590735142638217533918938547242275165241990418158820965828954748695957885071626994909284060237092624991318687730679485327770632184517815769328585041536605066890619300518646424487055406663832176720638756429587465707890418027249779938979108514768923809581856761392851663426793802663162315329253485364124425116913506888429984582614946975057480159153564733235065169385352479602393408381915074813901977880742440636763909308450633893268961516933199728875162414582755558890697296059119968921782768560547110565642906071370352993874840330118558083275900279688534067804313900341748755950457105555324396123444924410951618252718369079011957235115461134141517915843557051211689430821368760223905663852954172883797380664713970072867714774696534697384879056230744665124695399468433574392293458396477046344605004579613165322614126298952585315778355893569038211433234618594633914077874146477374060115477189197536873307764935280510114501008182573736286807482216455074455526261024195287838058458954106673613611473663213973539241372161371783682759206905365116424408149157820505533317559514410524145870188287909842668141302434392527260303648747191417168573328525470656656477757281732892013792215805009851307391163065248381345892704575415086718636236595568230876165382099041970343439310618701763682568402738817993886005642599326999275908464346131350394251657350828014332353897795958825780418475323726009473194946154578566683897820261933531265030392915431871334573252633845477995623914556181688398072996748210575912760353491425426698610255184168010099633635878877222937242707510570441021559781796407920662690490328939043221802770079331753373870399954338260026848494620155195029367239436584036599522278113202019869795396434846093721172506638004237426421684865930645965870371908661320637603309291079934219815718594174719940846951724902953919265962655832909308688774468976669317796544125999427993294273102502746260373516344460122461098065691949035837264451908254495222644852339002825633467748760268733771290592449703885655864271057782107841435405741241734457413093079462754171281158624917782703540586965988915071621782231124391456207811265729963482441375435754547476014133775937549949466863517373490777044507416937301252942073008598116587659157457764582289417616051767230399007169763443610488832794692574280883409392594252668581027240613366215229653837474861478589099951260909359442174183727771658057016384978412176249135779439484140909993280510678866222252780081011450417526154194092037550389115770775056075410647440718876714811943367921153633120021002967900601406702494461642992489635100194008557065691066334161126441911676479047391449359477095714381438332671585748847422090335414035144320346367715187687065583487645943351787195534934831445132512567328084913119138069316009670138509716077367974120077563140129108121759601074588883069040634832643671839904221845593423823110763978275523814140395571047177247419844201663866662122911372868561199816116838122594536079126752716237763152978733522717847973763762558366376337504053204584446946089263153367525463035884651849470760300990396361671919486223411504185438272605450638539729228586060659556187976932551861617162824221994904584923899533207440935065618416594117137402032999594394729492264428018748436876752397229743990877106954534853868898329628924867504171959039552692900220409849932635392891748827955400846081729800265034202010716019533950838927983204827661524423848874547839809391096318846090625461896519623285202754212712236900899516410138662631481141515101666010494608981249078251633420287165461935183376944974429670264333600904944308923089607706551827766197729029177279170539295536048975206210615937581269356438065575319271541119457067350571060958100467648181856005128371925272979434342049868485623929795221071773744332478111047938492755548983626173614870636526885261650767116109068231999825909618526846704870334112756396688034351286289263176673626407498800123127367002462631260094810812186744835066720869588719364131392489073690884477907316913068932012013948735542367581932450876589813513407223887667309638141719162265783748190434968524891535151151592186182712313630361925926622882535998095252213521432843972219520278841117259677726226413922987937713333539790504669490423763167493577621328889010644167646236400947978361420919840913585852740138381701854776249348195657910452632894843458813463823313481489280650833384784131214032993776169480761270981847925476621119627031810221399341863167815297534723051909419215252436136550443350212215008158990462216300722089683195352686189542340031564727683590697696478586848100343874453092161133256139162850830607715865893198373251014565469015157414521283603695375887240865875509651776917092081055493441502209223591737948207717413154874252313127111788606255399928396787498107639223756373721115251923627062740631334823513615955617270860183236449301489913223482024797995529326527855714062972946673504521437043622374767948091228885508119098611429988536200157238932156724234164103404765874091364633264635580949991718965945415748305928485037618449796545617194677595717029837407213549604938396376670611404941985840011231762866956820055947462500205607205034074913463228153020758171184291143715544134435438512368035407187272209372763419492223469901685555426940198822945351118027819917439051324901688022006881356804954661349040483334213222716082922002986744434782606646623201176439471486862357253402249602104662809565529163159485924951424676490099817446901610809709585708619571312339958154552318447462514022387742899176328100356207880030514564539833754816866712574229391836811686629102826732350617174677039303542540179080616087170162230461707554095654974989353652488894316940571143409994670681665701614799121850663458558048865966445441107213190765567229128273604882201435438148514019682711261210440057549827216063921079239737486531380771241512204673739633338343283164316240556230115690288912223792464308584910500915494337250903512195532320444126657667162752666407549414744409041354803700099803214110734441458445770479412485571196986362730162237349909981155115797133447179735762410519146037368741638891828993647042015901239179060437807139205784016021048709226709613278685012524548750184470976954749137970590186489615672855507047053720736719212699179804981758974826448681048270931807131366950486015661375157354197219692079847828588413752483824307964765618786973643591276709618546205398268339456501464273967530038602735888804463940403141110454807154833772986320829505539047190345722449130360921399266404315293884847318954555935853124895081087870515458103080228904786110931002771896283417249301134603827206682387735012739112584287570947639285837713275595441346203644480084264096694277524992061230786332976561203223814259671354527313649442333357098455290684089435008900031722418787468560452418474773372560256755076418845874725014535136973995509015774335582483636671719825428752402298906780041720509779260627537738586753781347209603126464350253475462033602118267967741263902251725120018479586235085636602903426404821006424877288210388190506273942563155190161715873893680004976917339760661058869346548384141997916905383118058830336533798253399373523515327658301085086733439544913408152730554687682384855069368918249591045234275015342433905303080012730555102913289047077298149128126873795082256860792048141974824464245099876779167099471775695625593401818279355030132614435405587576281320671699325932885963612525141643166077514635716829633996912566262245140607072618130666916378985140933629203471275062713638114181285511072418684946290272216978778462000695862683940543071609958646018292163123042398904479843202253242804479003651135540413159050778266177068126238510800469019190847110665722421206953569694061149014788530650573663114346453030538756614107013052376679004917626084270898907429959202750170139193878813397223850673859927746575528368423161849390561554053432464613883795255806259528219095049855029674785430523256183913065094319128339655131550243969810506421264365100112725902557614543209721291065942298317615325037946304994247317360652733594320543992553636111841901974117803178339581757910695124632929124129895624014196568271850617907125414117390897673855138058424438881043705380630539146024909762530225547961175245176562924782817424196298866939830490178498032233808556361061555949601625326653432547818943234895700583408823958020293697888671992999243755256620708602647715264439132309851812646716339142541829129348214033282723355205347808567891054312857182563408522998664840102343900644700698380995780402947493139519765996751514616842249691984184329373297124375387508166374048633143839070667213132203090550923728000943840886021952061916207012205935650982782864488516118723620486532141767234653347889162101505421683640508083756387947258472163128861639251740606531244766167590364630855223838291542267567486620370793275373274423531488708470258162422147425902618838155161079487815503386765757006125470234445729792592318150470365851590857314043744145639429453028214542188790212531389649509259517705537809366723423917863312501918799623765430258958434795405581523675175352552926747555362209150098996369652401384479455518817747338463353867748116102782344826796975436527470510912622798623563235527480113682060801236570993078093406178522132524405962357644233615623962812643594787552265009879433009947816155853538978142191609582287951656244266417690509878339014752629864268837165917811315406393097074030442630547962574550729617280116206254916428302792113213451725031499659473815831491674807800293867079068407725017900681620560716107831424539258111711782445162625722576991659244268162444794269162105712923249098945196188695375276545057476520746720861411931007811160046536790601314785552944557020031726105311381924741951738118369152976114652395891063454970899569603347626406988363743170842780491000875055573677418938811183626798711871574254400952687958043266531742277992236095013430355286511711483828215177803808213516965734300151475188478034753297134741694095964879057320257064187787426717905997621759917624202622351633600618495771391738876902249524712133999359143719473857921531367101326205011427548595032320563385920262448955068644021311694462282772055126874816592160717653275142032356560921955866415822403884110696815058905688477813564835171303850011390339036835719744098956221707649339301695331258447909547395747510297405039608673237985252023794692240080317088024234052945059613520737044481318354162068807323404845283111586832056677461270376623390939009391560848479043027967957015676308146922750171305348975426511710778998850645640598785199642901191916162883170441914518764172369469556342709236180642755153751528601917793814152630739087261693301464879722084545950458571932456854564269823691973460202389124627747510520324155954373481210344867326181011147784615383982580763147639397518439520025070537034249935403615942230622478140984920509115440648484953023099943455208056209245264244565498301683182534335799704723987794358117770881110414225122434771381399268703576722647496735010679674252488532055300522743212773809604644196085816182568501511856803809806410943119351291301671549026917718658118996308657142059224911176927310488491007616337546205201699058508974663314922347920863790871134719469681718861955770528702283280076535075674545237516194718201774792600417970671346726810574278002665232974170170096439194162818110130854403577497813733880906508186620344557381411682799097698194658476448300766808881918437708471162553637343721491330516949397979750274859127949399453795463445049903639090352958857491210240302684938477542858439364503089689876797357088099628043277475523937377450291450480602284424772249180635160724741866465571006440024880272225932803897532883709770056563031614040360692839617090261324016628529998831682496612828453483105033696654934878458424159094806137828466766836776593802044730005157273500261200265688632884159880466367443432831549176472390499796081714751083159731051315006361407491309453637376331171461958532228432467928468943290711699210928775739822655471579095300321843689385024365825713619304651037350582772895780570329262615446434809305482383020624962967421415551904320334850388940189082662719594544497811175291840884046498411537699025185454914281733658936415450228555231895653908658280941106344376775069374172090259967233996528149565334834608390718590767448177355710726787118321876636070340411100572510751965053358891258658838330944433756052339395923291688017856379567506224936866377439173548149900693647122035360053368569360989255009709916623005032635141676932445878624900869327398362131662932206038613419649421137808568589607506147775042839468169980606627223917276535900761253518019406409006385439543150514520271766478739718335422974366973529617562338270156191609580215112455923827101765014194301941003226668237962509703102602517500849166170074879529940580994394485708647904177576266142402020587313211471414900763382371849934484553773484404398740123585958086164399104583992919699214806499186039009444537291710346189425679178887666865928358088859008246170869562316765632001452286845287392068543730224548543801259165279473701681866533566696830940643019266706397909173127852821313976125315333644893012067567827193566612412072091302887079539941161489208814799472287072536504258719611686202420564335676004012467135730770619846219766762127031528133655634883491189972451353896891857226459077240616758937666528761449485956393855289456417048390969887551491924078577288846745582530257700979831610777353840809525677821141669794818165882362461703919217613791586470080203496546042455688539711289904531646569463961414847502834872793637121154398110697836313730444589322131470864295930518437073628507266570429168832179581566677189983730846824050410106867995480292896575855153378212494077015498341778910396342872054545750761570518529552456971685821669046116866746805148228789282123182163197733039446887501447540503867583063170711458345940154455007678888362450556841780047882185907675507584439737475616060434922831941254258918378161740738620784210548951939224132260794948077870233692549018961829758143947499163427394640403404071589239621920392334820472301488105163204185322548117074390402316023529914329901624019877083675718857469819003819304645354873426406550467209919521819264486855252721006424233900116936744560147593859831249831611733461271579038646364431004260209115361814387423434469326808036636336700526113631683847882855975162325932044507165802729296984651129632060021221912957006405009282882731135404430554486166321020241828662161791312299712854673720349914548737565934338693964718430812367423010798014203690057561408023379034188192709087083984286507698804452425090296141303735501860606910771270170409073603617059786983449794103778866928937245695057983124058643246825866898658488915329938098545182835400957942780715366359082285331621769633307642118826777108464114879127698323054163664933689671837679449125669066870242431246119048818396704881872716800224829998918091312244624892058134720028243129798880090872911948750650365355642886569113113768633281206238885599155485887676515260949668914674609798702357541666430479102077051815236912676146680268428367334636548693112306370873342114440901746105769871168895271274027078428932777180707178358079426539022060624664978724204520413644514144536055578723576579501998587711356081036073450669473367933339982994069973180950914673094123050560063068678495753894476939352759454929062916538544014979666183433637683857518014033777987815327412028637031285644131588748369476489400663275556238021959964868398048833203071505585842850092706877667180237309431040388661869040660071542887670793293131356740720559060993850259454806831653955765162290964695252433744438551825406333346295979490211522988655530607277849117944042760784572355093843779747092767868632205861611996749210978834966205743433826348093555034911775822552752459970991087196190239414461951419317085670185987777956006774739904278178311326591862148037338981106735028102398032615241163220646676120089277874317632173331746862551842718635848004378413622363086858342166656156828420661380399073096910874513108657217909507640853721136833261535136860990914653905478308875872603981110386819285816543657693329548980911331342056118429281597156052120970197127156908014544927530449665725012794111665026844341057544236994929699669691720648165669942084622920392519197394367007057131059891606884503165196981587554068439391443577633734096860876510123185253049285944275701843899337369363747682616206319382213036684822310152935935237416941704970617920371843811601809060379775033083796682026552524596853839636527319745066047157029789936813814458794755012389055326149067202546022203818455374839815416872826106301045514451230431995653506660445692804310958657665222789167895700042545036857535999142554759441044934281339956402136646186352406238810634911031252274425715316521780575686575982108145656206032788397943690574259868625813026836408662277867925778922974727131291345843233782834377061884114946269740889281330109612113236568877152578382716187458327918329400049547688344174058134796603743732955950905090510411589077703968087144958485384359647079489823913697982178494254310572302087102490184709459897494219136759678321801350526658001783390997507149401355735971740683345779153938579497698256928350183668353452466433124479666820076758778849026910368780884354952013621973940684837493422640142670514124156782628098728363674012920957769485293482315877601495586535864195867201572409720365163012677617868404248563364116049682032519113078806596521440365363717863283368385032883907259910776991920400812422569977151619564203787337263766529494850662398585652833989185731494320063934634971927458481383292668756667578935479287838298146445659950218486381987553522351392579672052606544839916647414624065067901111757607253933865351771354486481231585635922476756879335975221598886969898555532895197242146010633687027656069401655145044138934475363798297628453876809708114788531036967703174120267076974816605190054234521052275926219437556603916179332715705494429977589720469921755243576149922995597181116009686011202352398765241067903614590477459031215541458032027021329512289853770869917878881033002951768033711340650487609000145080164545906937972757526690757039725534611735007866958348595262412084903728669444476522472903024328440253891107785499039892863270113478144117248434139568439333996859521443181486460376867150639592194957962187580685630334045524458131943815137120511277099843910258882434006910846031483650394510833691484655768738704603863222201844332302071765433980366696320076440853256342005108265687073414945663059418191197576626907243999408487448998719108254073782267056816503030870679745169552005169566243163870364802960891539470001319235404232569805973020183295248309612685346006924961785431133324192606928525193531426469167596221876008591482066742476179697424402884329267305119423124705697540369061822856493358750176358594139746243307133520309248528243551273858063658617535072507753007149516442621435330118462500443469977032931014190475648321444448228978545423177318037598705549952497649089030817721937953355819327184341160791576937492765862651603182069976146949061937897993418877020686071051278052575532961619625487584029835316860132639123647115375554783681977210587859841971618956624954958469544590880776467806456522331632366465495204182410024848688522869614251312601178459402153715743756903674615301938124849014727825360403947424992464988476893943562860883745467338027584021034562970241773253510413459946797297042642828181442307672525725253094149954540698626468781823227423234500136133482532965524087004524025134061647538870889081455104623156978535524003267033472709836747105061300712899673016174720179327543619737432717820443399170949165889091100865313663559898751026724379519375763125909916903997831602665127926132750983806138506255159942793922137000387780300949860129878818902259407750980003892756731276607574708410033058452168744844511021687589002005847909686276079688000779612766525530268236241896823056466390093825606327729575950892263883400877992939970634761992548462760182647849016202848116382802414525327865953579821257696568090134900827431803944516980754390951825993284341242775642761647665268422132870088095482663790186250920578802456484202713355994600234306222166782491530260175407697489556000145869256177271786752123790231410289978602861636405458964998928612664439508094870580168060978081380429108975292628130407858917593077874121689241910939829168764438661182383864564510951749981142226258158293485041850548405634393930924450921311194412637540399194969361733026161777086801064824095060388078647542085867991573553623016456660763584808473781148085647563945228617131739054711867501662468854903866274639014193208471238071975956145739886459874922227030731306127939372065101489742371368867219517205501874848127410877144276081416724959725412497700929300500898169776760319394891295351777336622888815809634582724916458158692626381447174850838323715229433218980947115785810935070760874423866533076795100537162484662195797691074420001105409305616259409336235242927627600848720571140740832364645320275186926203404456567835851721701735726720588377269709758136269915585863017759083341407828866265166366274956729839753452414258492017837958470665535112651332095079355720205662514492115065690925674325333694751630453911717269052138643574312600983174904180282076690465242436486557449955242848655394253548671839209967639175856910918789666609881523297195170115897743668841556646540740952316622965063133997336236100646192238940729660812734218402505785866695738212887672405986305327898908691984205919334973611591369849118065344938104276718427052506128134466910406253155564176545229074224575808191124402632424157995241196488098569523342707193017497741537157681776045615475613713912574841808008089506650106737095623833867557542599455998512903157481206169122953889819606547874749311978160338589515246811118267172889792483360100039287035518228860124773223262841885913484844226550129289452568691258164952550528272855782172215531242853552319281925514599063208759280810894934105867902863455817867430654699639216334031577681918573033295102774534024788221366375058248914113313050909494835989944920341350949689623924540898001607572238779986078124690225725994304494144559834575784212387728820530288121695908805510774686821027333676727822290056181873574366960218223513299865105888633333191148841631046703677782358082511813377125249618965980562368606091086641458686671958743552565118064067295685597618692220095456170232110957641525014660007328440055840540811882882886379137848996703724613512868103328666517278061193860528749084147233576656593875786461921313647463169679983825058327031367084489273680455371907821629648271236129683157248933661022766978551108163664635738969304528905738296206189149129423573775510141218525521541986477919666712377238097474677027626083712354904807928690878540734689033650294909579800681295909873392258246938434663433836960359351620384960006850732329723982049983326304683770302801810830448998281829600879150820328114147990160040081982902220680924775698714480595784697159768779317296561722536843094124353028248867464873646201473674046273989819638601492175596388385329101217508017043899188597946046990744224694522767738481912433985130503595035779765371673064814317482839299917064133941173794576182140857256581460047890897784374033292233730619110402460570455418690844307763953904989990824959089086414703638750777699312468734896095401912249761126833402451060113441737836383957944695065465441278332887563759858842715886186044664220906487058456502607357273326956043674974969060831309320302641444634174528493396851548574055374956467686383144711212493380791618054700832423631917856829354166442029414815258634486660897217042659509001043943325352495030412439529693519283440794650594328503582277754209869885112173778473317095134264157984805832615228717758700840544034424562243925224936804498253146101288981218826639093748113495068579462821531269782929477678082762491666721080776215757629653923262410528351896447194727755401278457509394860524210143278355807799575275022655847903282390229901221619795603674344461105832592689561007108108354892958050832191123055320524535863535994918259917800089523210495314694567631976670649613636037414063417963594284413723868606800517105806523936063486659979482178210068057732167885238423315528339951188569182223034979755894255272339647204216327333778859710403962168805389787602400968035255149266858940051766023958550668952408263723615592053614836946826477486806103160470526978969460192260700001590043969659546608093065056801649136706506410819856350928803790668375514877271221546955897075711834419367233571252908440874123657858583344648455995272611066882834312580763039506376375219895333806423827974339592017912246289166965301871177801783880384475346140030275136856214828486625511530092083943663060740429990136143077829644225541669841863388898711803520208490070455088014600061798900640610627174739009902607825547645058991453707968839587419234761116783008170331110718699221404584407067201796138732609671453016525835643474732132159883013462250267074132252558122031998745828647700731652590587286354401105002077179842168609887945108949846284811258954908446312022265821936065909498974886365301437053085646633081700725202362828969595172214768735420433055364999439322699537203311512123109830505757767309354519216111024237448147602131319787849777926571645604634642022591034941904493200960696825485149854112539005603639931328405317896411542933036637804330052045526551781349813058731783849082542447060894135045632110312404045688931663809263624686137844306463078266318320139818533407635835046019852886499510223502772221846382242156894040109967317547370461717228250516561602545730097855627033148027968465314328315785152876234749074817490267484016704180135788469227275437677714419330235211145057078473421675620135167942128595809046700279976766656474286475132892164043910636484446991771275984674029593774714958528351888105205971522279868043243629072873074998040631403360312632379716101043437556968685408950766104246305845229258620874739200333839510427596303412806307038801495611702035900103020905025479439319458964628120072821701218948603843557747387006433370939238559655626931537316018394530524902450599249109584854260879372921262562579944893277359491049982504313670365658935606565898813242225320732752380266388220862919697909065693612750380908984942031752269088758932166912672543467122553026546276227347242913505455401766249315149563426908325628666143427404774801663748378067802170352601608103506297295555747415898412223342466601999922509343440311892686582804324248126051681575844917611681965009565640271635233866863416923422339892174942113651359875951275681137713069678038203474540342654159916202697196772268921133685245330695752819111606151041483788257552504070872972332454624298415150442018714627404462349383619294347915542731761473120946562656619940045659083501115215593242332933490630191259046013323303239467276249074218594639544696478708248642308726617263249958011451594776900525766052369807357345495969134703388584250596367693596193835281193813278372957219984047522109420425208602198314217551474147202874065595899670921737464004706794573183642745674448541266688860741149134285193854254261915374626094423513497183598313563813149080683057572258518207261599530476893112534075642049841559606335310616974336709858257773461885787580048540323956961628789331171688923156739200777925976766972549859149541789632043271247576448059249928191183007415462883089586341060656917030230911014014594465199867441680337824445130688387947391840698429362360836982046783958381203121819015217233867952418587199865089270655078378017940051803079552291767946675640020150312734642912097325144231550955710957554873243072871442548818716096711981214829342834119112050774467634298522566399362047382160220370361934440626413858223675459162841063034450010010947215480189115446090780023966405592000256987049854191299596310515747043770711838028933360810826115855644210311153240291176379052247779438992952454651740508160404768517077116369464837848217300071808061557215672924904888227011433124046335162862720121345739260883921168998692434747311764645025207114653905490047505315033743536191364453746349384936074491570408517736741918746055056463739445560031444370343973885007608930302208107218661103040913628718066071665068204873853585112274468453167251766492510476571907124500482258144510997275514344185167347504005104074236630607628887678872202869607029974841139091609121885405928193653919320861528328471118582287628470451938862119746734453017029651720994639392458152464704491598985489376198992722514347675589069556689798410454693174783037604059413210981478241510628772191537354514284116422676100485604239932871115426119183866945342516266610778500143791835172282916765735336947940757379386587138933602775476852326225709362154114871901697544567646055032714663410640884215198692438101113091811091896620899335639968613597266737698042944484586449257150299793383408458059331789243879359084733617677147171415737853599151495394929042598248284741698356184036396344491916243265222417500566685980635972315516487809383146360562357614112051419390428406329114819367426815577897609713873250278478006821008715428719315358927306629506749564607815731707713836166720356831351020742986171366928956295308038682815245998728973570771179475095104995153226145604880497266096689243518865260878970135965422631292039997727757209560615850816788079406397867393549628505395084359985127501178853450174928069314912446543747451397529755200921465477410530369883185035379162422919573212113612218796944980193440348947500153871584345320645720494504561111464658969764721573027098077569942983750154282061034973611054599738716245286990885652462290863394838859127302258050257026506622451678562473704028728834297174129857712848122015991884914649339184194147411587469181534261142421577776497303336033605692952562557862138364280305613283441719768451074833356784358710578992802445725030801536338575301333836078464336557740400718055819410278888209988953980263353301121191579746095517520858277371944003498492338499886655580337504550276579059165222097835421357587950614046527296846095765292133591925961183818015572429507869808074402743397282089386117235211762760754951293946565136499437709602799579689450832395572686320178955369937754449158912284315464675997377899578138174310840031897248493665489759917459859478527986683442366723675654092115622780628859172624435073857843538323537909670644190058206114497155378410025193687785903105801895853333228831849172966289871392261970107105711934570723608046810292978758132212961031877103146912319705888532816737304715123634431036360423444115067478165889063066457187499944453875334415642274117008646722839421064447743317175324806906743564811892356429146521355780457283489168429371980259773150832834397156166560414944714770289253607476005407825509628476720750579620764055419442300096198161766304078696616993682315169396003849665863950050947137444174659346209294126023783162850235311443931815889577121244952024757119677667355821381963558049480504025250717444182477701299112939416301337041978420079137704816223346413136093102558560294164927065111626787261244317257094097452007216905946768941191434374379637529249184441411331575299277598612597887279330469704744382105033630285616664342009041926306975062356319099114255166235795129824230510338062468720086129849794783893518622323333359107248309325122942910577587513540529129103785638913534773783911884964576192861481772617317559872504330807756080855123862018842688978315898553979236982444210971729605720986334741596500837847274738671918066173934816803049886665073691086578805629263183670434968578823501584120674345202453738311089407361610313166481642723892019142745228275857469204120701452734059643259044380543810729295330236540175842049335447413355626068996099603178378924514014086839836091637470116867652313151009456892079767498869311589871729274283871521866139460142114223607603486037160422178939379495295374280331482004045734637505709461369091781798963714580703103292892346168222121992735893762419459240140937195355493948391489214153273600592663143758590282425009449829842735332158431542041898506280898924086864929879111798921301589315938118781303133986089244512286406036533507180572825955932361255311557143597644602488517250446231817274047280586085903126870454806237305787169862571745300469799012261385167633162202497795404484322987750900221975878804522319830959967375612250849640941928829890400352074441414231105691890482548174701060569587721339803860726868288185687211221526957664768379187274685560355473291283024334975992725532762262919688308715245454786905490610295661047944923606668870031868032495848499246220917899108479052401730045433474138505925170710006386137878335358853819211179756230572622682020085201155576908674101405975318392917094529989814680516169723685165873430063800597075007717712658204891758593623370989082005470885035580500853201230200445092710904371719566533316353107139389857265658115546640821472776482309570570188172078239136675136104837144395241324789620577290636992442012580484522748763466556820012715353895111455673091905834660028130333072121175538165125303661189509760175183032686767008414406951898186423191906809177970611909230107507526478947835701404815197175878669573916742988057418763165893164439241915431743009798796578864721110579730241531831012230758272148958022216047963795528384035460562810538448624123327554968409541233331977752298582835534845861202710910117704954635768640850649515253750630606907278255593729520007717780292507280800145988400212896582173717314923045969543269705511026753374005794829117971936912498518871300727425505225277134924126113524367808027445394347307578891621284044373396788256214432741309755748018921109990364207072446417118505535408425449295156602043064647091985244757902297377098988663478953327000988013753613235144642879866334956370629800267015588296343757397139156100434325552980944718322356697273301507704732210701632233704084961569635574777172890917416783469814604261879703042008547142255278154210423418634407756399049123784266415405825750212283442745391837902218817496045302251431692737359840668954048802980162502402071332464147033090722029566435283248621925900010282051972404778106591906105540071354214485273238186001309936716724772286788650477029236261153375939014528589815812572247638093497817653927008557178746298033490836138055026552819035734239155275625202343426883893515371530905211172099468381810182843911623291262211899774770414934380213234135748769939308011556316361731844868262300456558604734439834224190121035048127467314247161028703185906353944929072097453023427755129156080362874901899256809038926259498431568408812725316459155037231012044417501183853035758735073536781046798456594425890596114109273722752460368105637844745977268959954480973114214862413628328374855887394401352871310422205135917151587267278783794365347786462363244730854325055930053898166631912071716515675152106639350857945899636186754634348670968183906984027485045132601480640343991143513549096336903673499263270716020121074727623402222960540631251344229989399731580329323723814419094806967374350968891020937333269054724183370980221948012103955924228013830605247511951302848846513626227279778575732920680745926542478005548708174801469966057193412781282366561525410823772424886465971280236185099643327360778937446485472860141682675862158776968135105483208258359534548614821643317427033926194273018755426187394600863303660308674827595417692279826910556079694873240277312530829427572596553276530054787821627289061161074102494422638177786354548282378775306354171963472304372327593034393990709662636728238330278085848721145958480827429104633512615911834227423738715686150332225027730918444373520330414130285355693064884113800958320113416595445611909004231476848733389808468150055945003168989650180446113806368885610893522321062830265893440045031209963174938360338661953672603795203240784889062044375205733509916625643518013377217718150011182097152045420713928256848886439181304837223784536784686348431434945842298253554287502502958634775633895856873871957128708007576104995260905210667736541455922915868289057481458430889240298662959887324621268687535154297386588544485580064960574951268498176409137321348514120087901529417390901719777731234831646204193312568767206336707692425572766494959637509806979254410265695197153439749407881532975352572702005147500769360980396537623107762903751368261469099596373740231234683418225953540588283672103615482922538275135774513932462800470912940722722231467897895682842738322340578789706885202885909267864041485201957699782969866967731475398702938703981113320704573273447589663612150254229520296154416096812229714604270339519071851465461661472109284370093698866294689508542201073428720435311612650039528384285611171640573184541575573681357758329558560318402601422757937707828429836713676585552203929935775835724561592811447178330470606961068640152583495460935925281558016448016292124242234560673609591128294040425249950034127306306510953147786668846176543045593590493996324958920989974085377584205889870782739494178753859427322953259568917611886326786777552606063422974976977258177683677982889040862929620041171754281135649694905567636699825054491318761327265545263460901765543551797127224660408419959418858140882195422189510882580200465000967686646573310435161009024718088580326322230757205926100013449504384951103434984144333842101725090430139940071658003144947268632112653942757952198649086735420616586585498577728075136609536872826820428530239600498974009617259683970825910682098106870120432275141008977112802673793363871359464296034104030092996953274696188126614950477998976670231801181415553381402922099926674287806988499845818504165242493432155424995649608409597805654147046158991635826225004532896628898085075624994714819024074593164927949851502351648089851471698604298855930748766698654758188709689161781336131218944762646062546116179363654150532420258283259737309298821635835477501202330117038107499637688277034598432914404160586622227700305579492766771718405690246963930165955160919068100488098064870327047091691340102649376630760070874186714439660364804010943021346481733425783948528129258374461732985227962402868417830151546376830192058750670060941468704393515658338339522691828438274741658898482080608398928070862406586104391031586974829322893346069046133179909630457636401930325585579754260168886269002071493524489272254861520194075266218178232556136783698452119830250933913513407448643347375556462147394455834467399510520387430579108251094320638705312853333386130439064313333076171867187156511636933129128380355264652316890184360331385795033599534314338321023683949978014721445043359906113151477261697497665677020695987846476538954164754421999162692675162007002531995259059554705848212766847402349164811844356480728965994926118340772995064899148309042811339092786805114468527074159205927461672039265609414839557558902852755744667032452159319419069609001196468026555876127439360887942406052936741914022416868677030221264272490906678562921350760336862879475065543384070827645409946554780708464101587328759750006763795388037721079697179559349693620190803314112422639527552855170837806299606169925440508471550878586011787154778599385417719061602614903826956226609219497955870856987605224123578366701540965637698638889102537150738282931941762897718374158633594768138885257034359813722930580022101433605339733446686910596847748700328384550666740387344880558385582043873332712186214203047710435385249827260086396386788860563699876924227091219818502232576286615346194412676203411568818431450273408322733742718704142420160249189316873576832544525544257721777122276970675543454147651875909430561729597248473683716133701142252885207491068579030426446145346413004325863951078639130062641648003018869561376507571633176243948171438671054166672361638933367275892411795548741018256099877556083444413937184773378082579080884009019201949330454649915539037707728248894294084026893494135087438121118813800876966126565333530631040230004151470862089893268889863723659213719946631244483607609660589442840568539748488824348388653878212453045974337838790760269128773953512577121933260471730326409460558118086909805808425223210010385178411682280860037254269260133542386094452347394770566798428556782332699561594465306347966663198119617936546783199747657467041450441582086461697572590012968944495622946037203600894941764424855276063880706231645895380119985339672584233367837816886383734498047403193657881944299562469474869711975066324194425567298904326846671822650061973673685963302530931890390547955484647142287245923532216089958727135165100999876883175088553336147340452207553286021390557919239597563024469745325103837809213440755125778469771035305175091972905225916943593607242480878819559166750025738748932483197764416524410726882274805455484108643104756326899942140706232269783228217825378209072191041941367217194120843452585549312871152265682067491105474888844327609675218854469263274847691799553212786731125959673993649948652159876826796802206571146235730469336160017238745674099776531864402015039002180400067509451697857682692555726975876465719423300126451535834644511717077754312946145646024191212511499686836496255397091416787665282096996152395764176031444031884287068046775462944182602890782805986406520749213050442091221154391471073129155133878219496367589939344081669684248327480229246090858080843968272976740733711156073635920284345878665015241959311831118404609210638812040834882110996851208644109747321672906225751608334759878090380158256630649158329499770864698542172106362620281835386864623067856217099840428144205049382723890564359547053023767844177434855443568506473601386864708742414971167510401894064842795450005606090508585000104713048384326320763625110201207557274124973677799911594048287100878993119474379379567338384750737438919402956138679452821857211961714684759871620615214075108098462192482061232826254980267286143470401568405176318443307054130039614908558344554914505727157839608719661099063975294840068130405157080888992760970345825115308507335507685081231688313304996537228215842560412784084882860281073779798376456411577513788924963326614683624572667147648248205167011306544195000518919991870703551594282623527836664053661292696932485498956566132603057683719790865280221518936035596740446252485345587718316254588924013809802890906851460278712820973229560862117768203039096507166393319384998109718788448173066660420162654229544642112198568099186798757502556119225183377749422233379000213342189441557665205450277298154211265819343641372019391729241006633349911294743535629818716528609189782910467752570265193857142632939472040103356800108006908842163510456875379402586148321443953016081746789261025418524445033239210360425289137181458890240025305065146617565656908140473295713602585529981357828929449321914315002510338138634643234816944504842124161355030157245390743655435456791503960940060355518003531415745474594385734824138077005552079587662350625938416281044369850081891544624681192237672446710367358875465814531445333437203503158717822793787731403319444976396269934618015464844210318168552312133108268644723363569334948222692528244217435992067895194456176840026222778021224212659190394853389403089329133102893478212900805897295957796514785821103612788493161833653397836123067128345980085160148423915184910855031392457804179873927583893205689697729395729260769434470356916421381848629936124277856717902127398191703926725352607495725961079184253690997613002181421388011952526429494943981292214372940337038308301808242973054840346319523082596580945800971731741063495186930113164003845554088100480913911926100809302548839782788452421642402738443076391293900340983988326183035000409184503975823092154067000481419490009167973874606340447205918090714320323961853616623259795594217912001180540904500538318423666362374300949712615815144647785527902927964623397059760340896984725826973621095627572799999149417947896868610952569486229803874929290599189867223335157064099818798528157024817120412451335130167706085359775980551223038732757542839292297435757830811905843039348645687914744396802506522423565654419346453116150719282101522057236052476300301753846964302431560302068800366889892613339425334242805633812075086150211942095677764196770732385293642766846683789906195811444452521140353681560578745201573845392854273168227011089025913350463290825555336435979683656622420262834799358348652789757700919885425438337294376947356465341869677334759626814998842365698255409392559874747070817371322984473065188839281067300921775871763712898391987182390144998090601055421158319729067060313881645301038124699905974579263884322945509834464421771834588646449961038831419511076290530578543737201496643315615224805442976244019238097624417174921209723080813230893453688164621248412201672884460298671888207223044909490908530641274160192375603625166781090651045741144752647834790639977213538884571809226984461230100126873959356354429158267508797534219319333768108787648485517938901618086170022541397407241721920596643138716528390956093661846181507210366698222704093772057315571418247144252234193334908527537304798730645139872596722574253160025444359239095991751786126939049725262290351362354737297934201844458562976720051891465366171016207300538642456878674011593636836861953727838470610187384718294102480664100908653241768175304307289786275717087211145714352502587428857701514089875886178019242640411856455959477314805933095960597074787797368662279633339526227957512369308104284683859858634390344510921154861757024542060066667345129830520243461806849128164471249055325470163389992244793347584016695387682955601954982052793086307718936982636462042372334783250264450697675970761107083979181780861226572580942307896198936234841842390752463015674770429612769551633283043614243240620803988063710695698551576199809678616279166370612894433761974224343454791643654809452128639432437869531848116977115478666440937930815913023930905238619747902920524204830272841081904816725154163639793640027065148660828765683549610555919767687106422881217508588656903464175946377736675780173874370678317989056917777882463064510707649597775298845877596442212429586435137290258044747302665646519207227455234649886367127883240193826972455156878351273573984147365074596889792102848039465329745926477862232026688792981841039765554363617399889995682403206222266461388583017793984610046058549938402679875681109863883873552794852747377433942885491991327369420425176451760627578372814100125560566161980642831725438125030873389106061972104608199062652178823508030154169536439868505620725114664105645885804145647953029990584588467081508198454311969399831400161482731156139430276077500411484150100039381291028740734902156283807071847202432742051605442005227743848799521916295427498048979832172374709328376483680514725641698877512247878964788531879499649720814813165893348373424455651146431423524971918755010981726774329879191725896965923075834101976985609344595255320885071772856266511038148731695587842636306269281805795678716025200517167270214658124955945235550473498970431286577294907960355143627162641009374017194033567753940802710980556488799150601856127831937412901944381356664030334940245114919530488563717749230488573920318262288212841787474224315199324551777814312368013037615204448969337728710296352277798424257087648633909305005558529000805177273989295141781756854387113105779821955501844310214255876780049711794325277147842872065133333665407989232869504437614854204301350629952032315074586710462537256300355039338498443876370383665503668586734937579345714043786330642772632582539687815176372364261246799220591867635136723826987178804293172849928422759902739965018131280109588207123152613620220752215671500883031323714239889187303802546600750206407088139259301306660845877982131971619076751837381428842745264285982034962509485331461978432024941974575656619674983727559197933898396623080158237105324829573938822951968219526976502594026855639298869081386094668833805719342711551711397352541717069113814767584766925427023110184452036936114633706962590451673257614760403093009633236840059677030132958583943908780384784742210086034944694060891630168811772115770968589715648294613979502243336058534897506218789590425532517646733768237542294175955475687783072229796606498361513871779670770266196994696472785774119789157056407484180535206911658227359063531878566878878332786563726531610402757340614954745739355351425362269676322866146226161838447805563787047909357980791990417654161475719224002504206934628086856013785076344595012545619579253781564523884177036279724679987761254017546103266712314492763865464417690575769766664202312701892659841987885648364074998737731138643599736049190707276415803910210371555390685794940672200874018157280377008511241548412506201414622662805005164744705574202403199842290446106998582690101103940065871849029880370954785361547382936629030046342980574039994247120085819684183687871565122234586336108855714545906034997676992088249227101382254495521400541078277746147759354180613487605969949015359163153967354509835558958046572221976075808536933472592929325555774012173872559824386999220433933743937245163324005100182284789777440306690237932881394424440070648025049666388179831514536536016509163380202210810454089132240754477124754487394046356298830587036737275493764305538495975385817143936307934797702064752980053168193124267603017507497899430544652520064583894910966960629495155328543490995864554928229410143033116426181647576964571800390767428634378559883122166564200803213973386902963060866075540978509730201771360792639683880080485655805387381034907941601625085721687367581366069682131945750408578487823918776520697650063503832114712340020934954359847894893547102195898351013596859268772644145753881651682011887341027043771525218034755730096251087243664681149966523218503248956434922084427307296001642567920965089359975823017696513905916841543956635925136288693814729202850252443190438973318320039195922996428423977019825949786558807200048975175352519016562316943331811969704038524295595375117586120181160708987615581839792764635961684560873004538854795732661583189317476790204284113872068252722211596665802943601518885143380809590670442037710593500832875230397351378403902677303418154469900827264315730494083577436027243322264745021870080322652868289186172434554682452571419701844115208617783351409232975914361340949131881721425640539496925910523438823824106311079815653844819283298053410878929525108501639833049648640278728899661244417475453341670428741346264519515211949424735689628167862096582895666668847710436706734082694033095812967553959574743644341685184799532632065366649906924944985613443490668678280686404914909193850128902888140161678167376315988010336832560091996884832440990444504005008211626557950105743401792496673506136576222787681584922697297716164164007888555552344627000205033207940214605995587858728247525003213405426368508534049129346361735387176668357089741369081664084243188221825105672534604255578061307389691677523942998708224208473082697940076308751631156028072612840673343649689960880672100808536466330474176579061992706735222978392678643049116240221447856705267780380416068838393849784586172351953175033024683970713747481175444669499440423902848138584345880939514119653544260474497088288385631841851205258795172748463283733778218122979820299030397028049289084126370383444836576342668009816811897181287692471950754376709918023568670277268387132183817937143479659570568781927571559770125581146755140462521685151007505476201338614856538183855317926570243444505598389067751749542499126107986615321329790766492521126428290689052999446735585027032932020416053295491290996931939175497750549163115941675699147787387343615445952598095237353481227099568906435322957472288374215899787097183173410258617932224316493853850259816503200180556426761521619473044857933513345109786732537060395444655446640397942525049099189160420956960040802195764779025376281747918722303704995041391241852894410485360705309843982750077272017612786629664704550976730209614767868133694014470206747685353137692051106590563913311504044386151159326778778166600428078428114947496344569442136494185643947604425668927126747390364630480352261040323888278666387886339845972542496833381443828358133188721330753997739954582523403932929711310298408984646308592931914438222283768098291296734114063952902545599442385935501066190354363823034167797689655551860045177641065576294690815296288430193933385757589317778722106766927570575198324897793009354009059535636565050120335654213088790415064336406428805866377807723247913066062427144068013447997809340563657198834228690459480301093503947726822988580961621337638802306325901221157171796500762129481318912261347811942160200621543998882709495192727891728016953586178374150535857502391720035384421278142329449953266809492242479179925652764771357229773105277199484472278348289919378058619858178218883544243546433735055234872052587891694725315997554577350058325589701162538632698903112300603925966873005091941232074159645022975456876299718535092678829747848725716076404054767311871538706842936419626223337317768676633400385538772638110408159960376417713733580323468707660055254370570805549505977434359617043081909072208238626985901422422670741312172624473326857404736971496741820431116542279935069676035242122503571679761748876644604062850596386539365705574253294570155589478402063482258582465137516434891357672091774509202197107866889241570934833468551449251836132305477993215060678364230367193813465932559912869045709594882957992204493252866182891917637560402575544436684003440080837646893479202562490380441867199351134601392061002835480576113840621036170222743789932442391567606189274382440193444219924800559643954278790297389461307773208216704776186834419489064731880961448127731608949318459617188072525440236073174262240068458132309914549387370442260837116855576650244389810584504060043893740397079859602479402427145230031547073668699864180732740125842571522291537884234710450054266197063644849468687113780368146481542038898459979452218921161939266539374072672827104152023326863071742494929430535807564844292747011360176797134273546369390120636182812013802164235111836447916434752296270919115282488570220194322170077882436450019008106963105257272746814953736766092811375022859152479198972054629562261646397473505629829072505279260316386510472532492977006640991164814767518995043750055273954888185350150440015252185579511324169003888033205322098174746588485946346968842826422614470313925605939124435762988212906673504148182453272692290176644040653974474485263503799786539795523958568974989722321776482347147761727823992866289235733937935026702882027814527095151795218822599645284706164702175558883910545714132892444977470947561141441416610399379133878184906489052947187660194154995586226047098253471894779385900199253109805078613011606805683051115975206156320118189521798501093541532771385673344421678765441580913657442592480853552460932428557898547926660675426652659803264773941496935851317821180957620283068907601415843627784948625920247675525867017094542253504071932757307675137242974772957350515474670704389450115690237447961738057522074856358199065678189912471399300144563623666672645027942357415265107073891624397193034753055120715985233757072367178731498528896260598167862021603528979992749734252500567887868988207303872871771571478500062355354129500275741730998379068611629166222652105376666533422443029980807135177702390357207410101944101691193757210954835227993509411960533855086730126472187650989998087433134736728086637601374503349352529437867741738728791456992685658960314054537661090383299746254008227489839997702180215960186251471816892998156512733465156323488088365279938181043588476217121235469261534595369781495229582481834060196494693810317702831715625285585458197626061188815797723259853289877901686851875240086114421701791630025018300966105139510458655751116576527538354996628443952699420461624674267161112279807031292496470745813473449657664366560847162235255450406825227894601057713881799518893408880252183893871057734675102195227309744439462237814313531663364791437615723610467905514598870084344600617012866855436832730705694787114443916915482736344371330041400114355066006372862386889428129695179564746532617086925789287374221800133281014499415726023055125821755732406349240392148922262968933747890668930937755026914996221821316437111294981494289815886122585393237837267417087528890282958532063029339846395260863008950139244555860270643383345814343279044038196349731476501715017066236605486627697482240167492420611787187379105947724757058722333492263986007856510810164725862603791619979832878578292238349806097036317756518881586993321276686243706359972190846473346741879450635596780360426973645191795021398340447784365047423082410939469232180199760679270847911567679183494444557215344709032787431486999886687863193323268816410962931947221767253688607360382439775191422895254828299656783658124177563488676651896313801757419141633512570647051318518164309853921665196743158485523427738267802168561376778867461443233120437501048165950536235802993537043837513687703528473593528201067664949078316219057185828524105348343244230697238108881649175821974069873257190360464341308425312241163671503054495866121814353290540859089393151764849969351405572664697769766460939296775284253004329191602331198279918718043984586453562784147207380725457256404085013094822021531044705851556890826419823488034420581079002136958933331170967847296536400234909992315852842138741837322257834750996215923680408708386984926115393206932904409621774946725112868198345134756961126244784643172573974959474630625094622852551668390784503377200743496518193469308086804850910662924110402977977210197812514389472690985478072857867869591995301345077580230427107415171614849739400644952843688510365591202116681013483759496689884866515313832188691504796258354801497830377875016919158026627544641840533293253493707330023892005184822811276669571983154143722961387409881335563808252087282724282551778791869190236355670503002706324386787675553861489987717989349152752012942380270127009042472357974155902218832959531292250623635422351955716645986568133405422418429863841655281287714944375974376405080715938830979604138343998389825701207812934215731653753982945247691507980462596470162188365399041079316300117509761822214256965408921806074284592446840278129925847907154061549314684936565792634561599198798131792987006999901597626841645327262476096114696081460912949813356509404108516959004952975929253156580905286255827409269850953783948008630294289884564279674341603430793196124138323630261248950759480056163471865988875010170886487347375876660815165448199385799550192917499816711521040530900881304526405587693123161476981539540243500013463684788918977177663903853228329344130592146533277224018526175666889061025123434045770519915872679692252538337152690974910242269274569002624417905623812298815994643344200685958817072504170637712074345074005155245134078321545865641996169569318179113904491834108056964745306917489997885093159609673322892415550506629230491743326321371110913751232300428885407700680183891623902182493751119002013429267417016301729579827663756882305756727303798136071727816954263952663981840322595164893750578674067069548545010693413439682423177478882877128253324113786368886959952411039296576214345399407797217176525389493703529163563539200944086988978500308082268481169380389499441812013812214473902692322085397818917585011182572708475287137527133904294228056900437866783648291910903107701228984626604910427881783648208668375541196148980346392022420025705906937546117952915700983218716571742247949896971712578562700840397722675081181043444878453177500879960944847706281903941218835831464571388707974514954126043175959420295718411371502483876924058939034676545864689802194578798672695046270318720880688409879723265641388886517281808439783232013922961296223164549952608139914818695822035395969331633715646595365993360920812274719831190015264481221325552773856398951106199284426163142973787062761616411892971589898897635200976665898893871863737670264985965427993433381995281557060213540398905380209877867380330830430027636023920038445167146948307804739646551773169687371992611523012566447482890346822171514820067010411763901300128976421678604614219742660521159584339546558984251237054298613133459410606597820361208241676003721648639440321344497992954492589009812681825134550755601077456448201983759016737751425692227495388304669442460289323993101097573185686287717917559742544477889682067816137833629317747463453477900605233012142372466551840116195223593727154872590581399833981840502049824642117055256486179858662516509224050683878801237115723556425536022194024993501402967917585264019150889048523916401067414656345034913609562354921746998829323591941592555353341716480081030408716143970393271196105692093238923269351291302006317128677799000081775989909921305838365105269294569357488878081470884193144422744082585331112848446434817211420075312471370962832322769605344257600008344949657091476027824945718652681986322619043551315053736965642946841512540373913511361551196214387295699352592465497580227371632457679153762951774006204218386377491636115672798674836346950964635753541617009386748347023030144813576571610928090221768114118290074508739015991988034987408999647507522191260893644550924107134433938386879951385865725440848683516450557971285632400956970454738851235182878850305510133179949644696536929265711693985248581016834962192672370221216073002011189147926157422076587039361482061978082899200219094244903176847642682886239178298000635214040392523105172225500133453254813285829487547193481291187444166024649542091593210271820857555865900212480970796042762351767912906021029353584357192737545035476180415290612751965525287201292411972766319593150368970707855422933664491003617907758767325290052349094651469773299897219172355494263879421129265652443732816213010735714308598952961802461645657742196686994260946077837925383622888904649718468742845377524878664592548956946069919061309520392516926264274385582717172353892150389832761105343895986266342819849974599433393211551116756768345343358626759669415541897303913475272975608145623368566624350955701361819005316182929310006119290230152101100492670499700976631381476365281351563208826307446933753536432170071080836291676403126797547175759990602721503916180686666787938782636186266589865394172187576879297087438295542751489315388243067009660849943671466666394994362473696982680277686510139158176932724458449860213803511936045982537122197103920582119708576416306363912449507705583046285254205134403711329618498064608515706654797010201437109221299697461325957887752191445089937478065282157499024954655284240485738239239927714238978159920959157495667347619883531506744171943645244236446005534051727592452074631620191719934107483734253538653844107139647064833798724491127520876509266118087072178240296993984553244770371729531490655233980808408813606541864460284318052189214767791725304404804559635093967945789186111029390760370955557627765090060908743848467787545131245667746281546744617350430304962405886687920211202275196714795884816890789484734917749240343613932636181662935959823472032119771121480438280481473940512487340323519128532404611200026517088930501078492258092215028966164511138133231222701608426732611735598228684680634269536716851054794518808523826901683773283443818915316299365574016535250194926907051925121296701203734963511664619999736834427577357640607267119483735326244290351496396006682376347550796747066642715549268408523055387075957732399690512037193406692328534166411854363220037621964542192988789013255286403313528400991918095017718635848252338212209265404355065547698859109827895887458959936647053777151516336646655852890912151757556734070650426570152216856529715523247029560544932698923471386142538222312048691954228324345922275970778935502900543334053333972924700525049141342877777559778405914170022698919300539185899666080208852387568412432599663412297349947925615103579167278153898184913631710222635971658941070248414498879397871138071091115784593998209307041618893743682005401482293621124754324124366858325050657938792867616426988192695253657715412318333334906591966826853487590202689562824165638973667062190145533957194231706021745704028162826936416306459650073608562768360998991896768276403244685538004038525164444936196019214893268628894678412160786592591687819755688347218889386212654393740429027158351162699869020630525174456236618331674407850897781455262765776157734538278900662716943805861881276874580877397387744978783027567825962136681515775912635738063836306343609770975260739219963773418811093590866968933456095666903497905491940450689753189415630005313395508868275581888551913866660596304056673004035077422077509136360881678705703956001655044984218435360515843775141831515784150987530105765462308696219370565658650655840606702496320300742235603818724444853944704627254904999809592242966617583565068186252580241684261927843415145381611990659034769381195599650967762126451762563128187567361854630600589999617375740585836636733737622690200126592841190135180326276276282341173611194034097909562100597193639450521545420918254253440109868410775717829163031798489246672039595581481900919090490304010241079555182613182083883238209214754462131972686923493667755851198464888978136291530188505481794648661403847991500107330182291187664002087249454344690188984480478684860825477895848160485463690081739049912202418396220951133007486071572721947664889941813052839245982577091737500459259166714111740050688482326045899135925068352570346778808360600805379534957503539037960729009730870663004708245418927096908371808984099709447409145522884491952840372067144048154040907420146617785221292316973573997517025283960842658501302615665544500332458073424039705547190337287336115987270635554912917054744333822099628915669099152730983344814800213649382043757999401858783186938329196389480703522265126143592517313719160664778906977860171150083516040010064936733099168843154942344312623192822124682145768613148976201790903150507240413312310876612498952377997856788379666042978390508569871439131674307358671129420810787531103194860068392893424394162886985414024888780133607982091305632230999978569003792260479803405143297459454038360820756138618020890751606459319332611579920661243928811616908720600872578566251352857988756392382287638524572473206694305907997682560166526427362544504532911800083811025867669615554313081129546389965007043804025801733406714290787073292011131142712446725188509475634468432846016918136984196087304051288129882891867647710528702112589105409788301094306524733534686716600584446740502051409695981296848714611638804848063496544532910320751353583999319374257453945944609899432903206975150491582862725601023214799698986971826477328133124015913200359357950422502368238677078947928978152748481402706841489323392889999535133697967082323679248029517819290117982940559597224738390018335073481505125260808946012164799979737801712627937793971057623433297745598359351461113843918585732012691343453684778652160392661443867514395742213098425279334569226059401785542909473003103599460102815032095435355793659414288957246909734543995455036825976579245764049772651378478478906376175765471020760023164459706649752229435137003083382937330760249597977897789816512190476033589040630894012131952099982029142173441358829634529321835486774888911052953921239319218390388397439487018843971027522144630513407573086501038170730560406662398385906500260797458424456163279918771304284707236537690117943349936815819010457603373988052612341064233118813580700548749487926398863076319944745446421244487065829905799586900921174135076386422235139717729340720759270940066912262409477961014784220802135953780847088403596222316635898619002572308099920047746106340528058143902809591847283251323867976681336267831193603230417020612762938519748044614430141366454644761601888875929287785388946941455422476812016127767630727021719269419477918392001454475487593218688856289624478804956488432762766212858576617301489383556888591920463238910860986528499900545265326375321912812337056589794549777295908784980109791341930341131722636433148920186675987730380266874769332829262160787310560490669578625334648409836765326701321454982035893922132104860434163758191163556781063416736760343144258614744984950088479496381085003202852558940380562307009443850885856323486799743855201244286353179365283237841652325771661792389157710510792360232567034145491686794188749365547786917914847962541929387345341707973516729274957013703881593636874079063653538859613785078378180327661969346121874399815744481617301770643680207266278088190889831513279285969237456744522357302565206787456579188012165149799871784703862874279085870385102924789814543466079673188270215923479117286172804835159484915146132366477249629718194650595167890206866471654119208721625483145386405469584158189228325448816441916571018183611054233069642734468235119114974893353307622782172305279619131799949296077279865202057164558346612592935728764313205870138416014325303940951248981204536360986402062504883248188239576100915926209499981107939588840687662548376178642677699485552891276446531385934434224211667026338600428541822580585267074601924228194093331693004772538783961788806636385005909057110077507157741882991741691149075358533391199224893139588317903186037044709017402737143132197706724743648694680429439583933725891526038271331808264155377800703614986036875831473870602227094941263809868264263755845047609525200201684919668187906347061577148257101341599254478070026437459440651980962951347548018269676184409548630706129227256266052039146067630441933758379838198844166580665160052697035280484343644823133576555256413041744766165790808594710692285192289501969821054003513050194229366725738157947563525040426220271030596309669175914871450423247166830863385661202433397877080585300820068785237332563227061241100045368354640694554658791216634148491230767440783196858057464546609217892174909830076856115872044681654733878009597251217007261551574576586446401504521300846725460721833330950830356464082932133390892231237071952022517389140645288286088028262104763027502493158477354910181517112164163398363703011315889276203718619268023175182858245377662615136025043323204106333892823075839671139273231186812885966005758024795811786004863683278802041346691373507760412833419337906900795731915265988896644573616753929880745631057740110996718165207970761555417290538100570461162459087816018484165593403763860340193873425611575590388741987453130213603551133373303399412491749795254992127890896930966395390126073707361724773571233593118518110198379367759730933791164748817103516471406179195672197877439746115516297023417853707987305396044000477889166903418583687534209522781899200032656086479487751874206666083487299791248748004193574165501232475645148166128354152647958829901666318958924354771461088106670445394888494363084960333656631312619097966065531947032857007920663779197530002258295808273475051755711868926129501183387881271202362084402859283930513193640776997209763226548556283344851605536682756712276023031404825963020258026362083826644464291815188216538033449837706849287164263618304822941063152078790288937848312790807909342586537814918549908632966463535801654516788936270585245021950241320139269313756304393088498107754191909889647182076806945088322105254668052146457158737218903244962503240919607146122062449818561704970795899283375630827098024286796347985876782717533425718417455930273020339134996586705506206892817764850144637627561120447253288332161440500756890018540599658814640494569488410193518883591701671648979667329288591149411613613717726099233338150572854460040283905456320964248380256552277193519255518619055279853672939579397343879379592454784166482624375555343688286994399040007395076016734494001325287317273798910784589298132872568864024624914579180958527300455545490186228549309585715038339106467829780111490159931850297829648956123767430927752437697314207248790421886843257105304205570382996462562182804989082074962542200927595511728323943670756558096397113166883154530503257982909827699650736731722531098943232037187526973706315471739943326480071009036338469738719170121251901874647629528382569514128088736645146627639904834146499444671475193972701863137220215076104473384329814010014311827301002784203602363309618402857308290049323066007512230664624630758538481601041872376637877783054666063316971541685529252151310694537372312126368953554656948037867672000339247511790861538258588079583354464802867517667235232470724045449529583847095575482509046186952847074482171366569873026551961489265533335899231522158456289093133469682645018998193842349975273412358826064600341037323842111535945815939327716058002679116548056913524554703749330665047945508496297497453306935472499853942713957265939349250667981232790227243572580485187519932361864149193037149830644659446809625017249053675622523066742200410793273641444426841184996617643593492588495724829453126393682440639911880274240811818647556107151566052014383043857639232597242668799603857037127619561949456948939549389207004870744464104357212282240516525673493493840816401491540433049977831568364418149848728998181002850369128302488822682843355686508715146977842478640508953238343327326060368195931856432960616767427318601563678465766034686818929113783703557820174802944742154094663911932013266613492782100245405569549910924457400828768035240506135677403790669591320168304975801074043494033581194429273751298072453479593193538213783104216082536654009628410432902263350438801879101753265901130968417902028692578503995525920214762690689236997125903135038003950693904521570930234581981479448204558481495585759580304835171221438259037028081591793241570131075454620621609881118035662524698868867673133687505017619303040609068943296263448402529363515763073869326194273257915533038240915509129472655016959450878613397520628859030097559054604917274666186692687518929620981512999347637352385035045958059413872305419058891733097374165943411781990341416675606223938473439101240665146361837586877926251068458655658420242220460431593774642199027727922926984437676708758603973451786010728308357636630271667072146450158436773969658740243150220664454413141611043140883738357737457705026930415958231406637208845497544416944569167348741967816051747484999884922956959104415853746203568553732813361846940712630534956832443136714415854073934106600359769975498951800672309049538835410784205947402417077222754050741641262395831898108248644959147524257701478096675535384355820098899434061998673904973220402865593696842171736122597852588914205755725518073726697983423948723088965893024116457743374714320211081195238868067814122376120727279222789210513502550028159667125589837722040218023995163315541421557404843203510952410505771316913779398210677318881678424020235645255551880249321961200292121431463394350599022083220164133279107588531611821837370509044605997405563507790547556052416132581976428613249396029715931551929748878611327803408208426958957161159620907333015017299939119431325581434072624501340445689357743090535056726820568358160052106835910955644336458435573347261504647965096518435080100968036287947396587491751173361763011476993957871490465533164484342304544697383100985201184388509921948337900525784156578091596534639133019128025301805395245294716936773060188975793203338293128895474880662423452523032712164707979719969498745241815741565544128926551775195114307878611662107979540135240122838219170206733196182330319316482573623223599930247165755073374585895024278152522468723798078377622787808704368035538167967522239778208551269032406048444845667301366411198697649177433292801591814009311312627800871417048240544817976677489101915804041604159652206533028196823552282696884594899428208025474488105124156178359648078754459970366878655160939844146751493786486201411681231071831513310103444698754562801657097401073797783457667158911509003683209908633200370860166914122724426747392335071295909752123761373698947535343725293412188332684830275994895560312019030647078635058118106237287294114690958845495316503908679486007539847617979813991677243567789447378752002526412549321200370143555289228073386013515165245040877464360033909799787542141486699238524663807786736605307565940195028630461522881130217233775679246884690792843027797182054154959755780741861323664282195743197447215974784897862787895968186248524387548285173579961540498772189283390499648880455080413706712236047654529188847031794315215040963150371854332714511391895715597036613373059760825207523381545806008560369339229402698311743485245087037459766666941465830747221842641714851265676828113951438686709328278517447106879802223324024134595957686739776500865830267659302482721834237871854471698045497089835932424727844969021816132981924979917821872306440311373443634094363294194373403278997696740774040531361736499283043416247874569389254615614740112056581822227277614809379558564663596448045471784011279988738332549266781220827973156790698024829756721239304242144472057006462001122440386551366937544845996838517108151913098725796682930728398750836471440356010747045588213520585467775696472398405232378437949724140553469909341202474861224339043809036482077416258537887037529894159294771369110992770840479330405070122193844675621773173592755945511512193046715553443509090943385436113367185651723149578133576766449057935768101622467050153725318207732562836336967870100605282721182497450911296925523812201075124262817070478944361463508859962574174346389021472016665795798356649242033975135323741173581117296665502429422869661653848914034266581190666400540404570814666710396852611928725291354995399221194538275464320518177920251538179364690958597350090424310872455883199093441995879298039522794234822935527449548135255544155837823608631126118868577797705742234265075982108504233505162221101934060137899757330180079804501791782670178205072986366921606212510128632524613720743600924138542956797975240487989052562179410669019186267753235953756364858388435830547656783358531409207376039444010195609566259084858926387515967183397229293677946514290218118803692302969055554833879283840982661503140885722266252767650671688040541640577849534236341941907927918755096287153827328008478210793944405371653176725652610944147940874312822160549991148060753000230980765870233562438260049387593589790838803370532007275307401173081767602647805792962467214744438771342083473716948957669082164871965182815699931559603795052827324788433083066502611210977650097739160134930904320428563861325126757719076751204951813475356380574981536789304453620887254837794548655395534785454728808300464373122946016944732521822816309553819236278827555434317337782793761892418148960752437492923771547149170364954771763473400567219936607287214934192465878853159849879185976023404508759554743948567460690402166149081420535827351207301540578364536197393280620421220454066640892615027627022617811895540135658759613547722200742077530522412139612805257911068484454343849851948682634216796128240251338885542737742779632863989168926439853898007631537013475413616953620508306221465071663101335954390711432885372245355139178045034469667397902475007706048433471089576981386102919997662335704440351966869524782535336343700639566360998694750535492429928086495218224148997145791972873415845010350623983206602249010916364704238366903119805964779455147127934407308018613405749556741327900541394924285171646875576711857898222910366608982459093336916303470923290093563462477307447897270824418642976043297519314882204662551055964846300337301939493117658240429264797788314253971598421350920455166765277910957440098204472703921952979858359466043548413276706565435790629077992656683995432167814794532326128092936137552632878059584518624620664768666736708214861538066129739115076654006897370791356555709952940108739115810395638933663094269567756596179074936450873219745181224306523104672050520753389594478538583703205380588124512786383874091193781756415548101111013884604326734251775970392564800771278148563226621658343996116590981259096885803764578951828048213071559985223014777264113697313119770145781459700959955595002836605924746411156560687840013014294342437569622829921300698059179860137463895201084369736723489853139134741201613352759135582719330609220027333377651100968783820202570080554772361652584468520497719401947647098455919904560787936345225541920991173303866566794070098789987382969555525232475102487664927108054262226334822867200746626380940716259912000678763664564227230686319461305424779383375380847258976980060393217064182476545517727706358389033445430127715466098610462279670536271725636727873154510348997819625057279363573080327180613400608116331216821901155198572080791641723087037571879966407033795671404147452027108896757922038154278595217647150560087569371614448544107729555060841552868142685113003093422979492683626152040934574151862694785293304653154477862465475557788233620204814011210493776561571028770785339016316702221704149132335183915299423696866780744428385911445679518502451902108934495610565362217371265748800634197848963817845491790400715434919711367866876187614984613275259769451661235271246188602523202628380686387833753048060200767552309447019609820358996350054448304516078692367300381950720414416216292717358024203722618721136347011000531689791689241363919222368781930942637709277749383822500434122254267923008628954688823819995080483805886533355716127138805221154989279137619511038411132444993566663911785684275470827103846699136096245988770340588956551997646442525489627659153130481400645850223927182451311755889809346060239007865595607803858390975143813203921301330932433307505595005989579487050079679894432114216602274041768223047152351599013783400677678564840713307531454577112211816090301323086047996562350675646016219378500262807258214402093746415878001581112819072774494982099715755944077903068770458635435416295390701069486910820221948428695504799111690442086831296620802423819780259182028189181185244730350046278659409474190986464022487152589378305920344339097852454556577552115102884165248665083826508381150699655209673321766838040379987544721671484256216276489040550684353332166687437245889675637607975722121479988446867015850804200022703775558131195277000269666983962168877745115033049488253039942613947344654699215337059835523156934305214357547360370368173631621097610516352522263942582071960482454848352643302760214897349330180796272236916905480855685267454526570101547802867327909826722179869215784295446250810824321153021240640989832342548514811911126205198715271043498367916519195373428717094703554226875679533374152590987002953681110134491515535683040292219552091141407482996709293356620042851573156406708563179623227262626950287617706242996993579842725453287639875057727379941575919922726389631591176762077996474254500475219955031637259570831291189212144763027674400500839295704722818923525448865684093766314043622848360561541484938732977214883241008547067275066933876187146828076144246522232515952584772484502597393316693134017434683557268433171694988207500423497330253724969535857268785863711383688820154681772164039193840414056780252450995915404514295853244436681954478735948169029007681802748043300931363829671994199090816313623680589412164137183408632026224406183064549451377610134458997968470163116114428065698385154994465130798219637360955639078513992743472627626926811274319317867728972355055784748086761865244472568584784006336841599815674702554321269650787024069354773914958852123884662231853072829614150746952679673129158394120454003404541700705636825057019828266191434817932211790428356710608569306583558669047632577872803125205303101691804233231541355602823025324425444507668509043317742687405934146245054353126307646384813732262922720779896851291267991025889425030472011421050938947357051567186218965552557414815747336374107374999998473165419074431033482059778155625406873988884354100908127585135579926597509266200593415020142726023589004798291991976834319036301501147930190880957307930911722224929075967016129822864941038198272178120413963458380955272865639885563077603300690455061906136024508593578825427883357306053332940325011875022008772306795303014460092573485391813950874785423074545815637151177253311143046442759769606509721510962822886324623366747188985346268258057613929522867162667674492963183568672995778862286530893046047747984642980109310701768344621162753340488312847186501161412287190146459307145435641456505451086278043340099444399459388165271791024435100798082324905912684667234896061864761535559593373861112661144494583432766395653677787221675916268395312632846042395399619981703553035454878819965687491377663720153884589022480271726617150996136488252079931671589578970617502591478110835456176393743130879486895136175336458389936421531761615385070216183237021576892227953876162279273209598848559518592128913696303546963043543557825063741883741539496279611335135033635972601731695575881556543996676665550935816503117316681734013489677234143087489871256471446187184985119804783782540665148573794626715880842706465161755099606681594686183318535761586257865361664701870315866026107086728501292101090805483337617714293897701261987787689219297036533249967941671597097586736284802243873804065662355722089748516762021015863755989189376600561266814163015836425099710411304181023642335791960669478162937923921225643295361708777073187808486999552687163782129445789275844955942939085234685477662499889992427252157079615025239214371982842391527296550363969527968500668297447535687323320481688004787508859610779751236948015463310232295661006346648765562755121016911033617213254743850599473795547640466300099614883574957520750669444110965192876710795770548916749343337811152081075187305596328378594655230426795035550715675535969685589217591154211046901470242250194106580378733913324301955984060442932151324550753863136181509876731899157214466926166750149714104952132641264494245041951637531524633028672817597176971475960692431603428556759368524476521364924849719290172332475707439336163844906089816062938395586776298562997305944105972667507300297823391968575107207231964141585568653382024722793088786871245209869636652226684538795709917171275863911057672942217075959109754646775203726207518657116041068472486884024922486141909683981333513604619160501881533928679498594158560389753966916284176229284607830181708764066458333169557997209887493378972832975889684245919985240132831787435290349190194837501941007014003734440627860223999650648193325358808973306537822001095938524922842630643905206568423384720338273620122198301863841175818299871023013126096491631236258940168863331369281707719211971419287228707798024344566228863199384141362852207538889691618819807662842853732798769089688221513339115772851567840479433053120766999671640468225170530066563485062816418962274182963598855257852357383903129747836764709654007666708401381114850076706907258060638848680111316880515728820656747112033355780830089664340741573454438843269521439400078635542067033190785573597759594708592203253529655048487845557727191785539747802136942500249027063761599394776257908983423066470397134454780963664435087945215550258791636510888757857148564293768003900561498489160366596666822142815897558811606399580359405697895866219412322166971294793395548506591496400268109557758939643267348193868216476204545861737922958056379326682415440696807895071083978018636371784931012333102543882341905554055704873987048360760228684590886742278488775419225385523443511439997805414535647529559506668598954849309215523406787990992608442971155117920154979235837182555653948643736584352980105816147674323455704683819602961233936215505263797149873619229186426306402136072573093515926578933270958933365058602564173978464790929267854964297460651286289861998263140957856011748406755518741727218129134484784044192097331317439087850908301207924604176788816666963459828504328210921369525182918528699330179669408374734128343970382747500905540179448013709850554503814481088726069044577734402793888685415207544522381805952921819752654273360039971621786230550779810472448023421830019599254013624938038945161068530452001040392340379869210535490583761661511330702221693686336749042677479162918902129858716727183530638921719921451108061312161271287065130651615552144805669439097171637959328576518078709805737240655851271556646675727909158915365728699405725071977886418497414428955844104494497643539148180150413060972903532274684357267529621134525361133112884101996783077475940424699657181875855229107733233346649899850296168579729335954356453368812568549388139138601367243124813034519368054085986554038120386993257619984622334784506461984810333147276330854067808396610712908985933412990763903214750702292488272245456291980580302016509767155662283068237795667587093590409704956850183550834735897622619019862083524811696920690999476632309641883783207114660808820864433843676740736618976651592745082228632517654561040827920592395488125084512374749761150472394871967562444412371397609765269398639229099686613718363734392765545425423202432634286165382590688784125233662341557035745844684750092853148696106641389278415132930328941171379852752217784150951180091180627150794399792080755982980461974855436916839183380896613517543046909902348746147316891586570416876627299866793446973288540452292071220183426455658124002367406744854589909020357291056669666707830861652580503638432660288237627089489002236105275317288272678555457668846916034768236919226738754348359749674788066327067077923745445353859497820460027141559939459470185686339853710688852630095018613462701398052379760181161339270788698618319277899042327144963310427053538395055530729535555428606129132210559264587022752387830628248980132284870794417626413561243272381147240759110593183708200228895466764451208455866453719709503316015232067322965846557754547042055558104440436483249544620657138191658511079695453559396473755686290522692715573620847850692797469060791396241717914207543362276057478582582502442256966193679271220059320252413069241401745180877734854373122336358856280175330240531322956794921711409406913892223183816069458085856157216292365125036507453689281886618110939565243507745147753349440971456706879746731687643244639024477909024420312309531281053504981897969930242272034774323781614817020107526181848388145987372093862008369016222731149309779811034478171839297364164501054654955135909228532138579104769109096783551021325583873413542270125950602681210842514344272147609367166870621689079250131987506825919405843964741869596626721629318237706471244114691855751451985661966897725066168955256459375980193782015718429939968916962743898546611132365244006274762990275271638205891171081111362460953847673556633525683478252932931072600309595877341930089450663115755736530329763238636447175594711880092088952234061072173669095882047932553404183492997136336637702102741894250251796026435922957518794776886934808918007841325493343566901103177845303916746404644092663414205521298307329885460450017173273679811580112217399706868531387573250437404474404667692528995720559072560579222589899555079795594340286826333102175467214726343239072875883156003139663685008833544601339214364340664766327692073252109844026568146925549792489887245133331816553450883203323298405486996436218978403641433515332008758531004793750863421370868821413351964722092908886433716460616630974727299859448434628122347779166683359007479279974547887123795221740333387510765556259436899170370110795752794721748869784968742832149687132470550892740814366637950366697651914860680275163451528750491226293148061897686816619960365696646857190895532563113702293616106994472796242339338481496234011236423113335659080255452794860887919087506600377773126100008667769668832731813394698312854044512159547438857248602187419217143866859931764839755172118358902396729519740500827451743909820856384688330362538715840966834955857647571355113864743186717603572015081109623036979545650526978747359290589743611448963749680815046032012232491592610014012178589543144417489643039580609133212204258853387641782067378182546681710445311592141069552790647209735127422501462127335462588565949148120253853001112897527656436613536809726447676739881354215480334182212316163743075157513834591954987725484580752626313871131956449419137367960330690303479606160479245333098293436535514215106317183686157927395875170675496270412926269684497102202929968713625284387399531652490797234104439710861685428410683796533388737549267796736386097431151063120166367715245354445970490244555596101192835965565780703319855225050454831228409794382755562728711363145628486088577307021427092755735090832623130126541227225695819151160486030262976449861717034701403508525434191707373076811710746879735319437154225555927577929238151566389852412872888849037917004141667742323175115518680303941467069719718728415757337557771772271633983571853885102338439956577020770777516148177940987523172738487410626356494234196851011114208628856051340051927385005181816750822458517677179916852700550151911873640053309472991777233132557244371762688632410302228048696135870317528254851359362142991418243308756974706317121229966640336281370796886496842085215126736413625374534763215989481005013786290692277187891725689629677390906051209045316549473201594712348172954344962854601566029584068116513325448483273517476157025766867271041344751068558491530596731729639371250032196582458877244669179122402894787397974210105087725198160185290889795504651948951515254848397545079438725079746452281439532708095487349832307657667654489625057939153607439798690642587629601767370123496128527894966563326266631229740980100161616410395239974864856342570427314104670231564283009703616022664423331834049101657088809791502951165198642819264587024201136509357861865143241779021324636499364591140940775964597844523116278620636249776707552247539526075340709033261910547221077903044381330905591615285275317816857460154196209159305718831655822593227182487443621026793544679098117274279691485303406836546143955369614428249676686488194667082934423950131757577534119672327637524593295782982778578546787916740115762777535403017857751797107878820472253242536458265246667377698336318137845619150248249816829616927052360094405375425914398970896694164333264874294224525804098020761161479567577390559251396233020990026720873105247566790597595821539650035969411426848425479457704599375468113346232169929451734481998506839733667906435053682202929567175140565391096725012997095633393567751170613926720973167147621342342639739393904395124551645027609297864839593454377528314517201685946235396678168586572328019225653196570325439920155197045579652270218806633031637398987571424536590442508499892520577956385914384429301461957258703797477490960788707893020494895716135989029555008733018539040014175310432926354113398365125107319704830112962565301840802606626386668709994015645835302179975390673248410401259170645909174209625202743345481331918091922944120483577667355130395304226642958719253799130968445196477042440573763173064894539548722589241474234367737847313304237290927262863262694787352732539903889087069619543188116618238517109271619509455216169431283461500554941634606335165362313403447902715155049599536461012247747342581548693938458451162517817505578563943504367294661844990604067040207107912252592078252041187627600427610128502893646346067309947847754645520198394303635255333648125670115357790295815703853125753808592924030685043928395248962946726837815263380329051982347292779705441088374625284530052805771185376952579371578128158761059635685710527896656621073884973477108168925127879962624949962399225144641498356750836864437690721380538279055640423390133715692710151076394717230661291585589980849556731133499040053075174580638986592761676331725716810733505966415345058662343279489144797223701050369761838774687695400717963126040491224283649188637155069135451102542534852173276046493225184958784850451995489662944901023093699496606248106246384594186358558201582314774962965204558942863780161791521785724732772396739752876191072636052170523299650362179598166060529682734774073545265899116813207298057247459853058275092749485089395561710726700977323793374098553947938950248489319745119613447802912549956854095223941895468747532657073931660905456027782802068929002751807840765146319555169312535343744619662715424473913633109551875904584855364077579262877236839703432499416686201006439935255342275092553668016841072559357595043465117606214023142828572988517410833426007322174648290991916357424576668803379903930699638045901390448549451916280480829904239944815361694450223471670402249390107606092382097477102342332801215373800781253053369744098604999264007322399699616590488330311708495003674353188080301364728562903697732099481554251713909295716971835687944472231822503619017298708063256791279047295685131213717797669047847765294647679426898941132419717669272179316186586206403200641777480229354562768573701047248605794597175059832707309357839362886617148826157250402420903834408670866426708972646168458245781449843859231777257130447053069907600535791056988673614603575001473683033876676108004069981843305633829337157343873786355119434916407174223075059147302383163705811386599268590282443293014913788581046874295222114769360191233900366823756548955781439068241859727966979571484211037551026149600367122937356974641199923944822583424998049612873509270534398606637551197138036216801636121003031783719293841041573824491705927974971542366094750290631769772163805988536914822174444814385770667380727265732809071651083376010990732038494889123515820388389157361161400231815580576563528943798086057377681409362837962074251764162339701397650753545320569523038019680826889203106365588794200807176115421655866065856085246460888684644593175653215287120418326783106059247299296562004035251428179222832277280959607981278963838607645851545771142652108431896325856424168458646836538748335654283325009730533354873323826640326595167239333876042601175998853466678925284926322607680930383204327900602880687095565378638606819775042493422621659953127148385293115779341413355940394912154861098488871104214531602256059895824743158198838237458023643763419519948909809668060799879139401605369253788843058393172768467595906206774892396825659796504526207839241838719786409860513151279385730700106273673030341774417272293623690629913135931080736592188910961734548779479223016524975374325893066703538585210805096010405521503382567623861862531362846758724876298690042901277746891762355326527861794550839874051215733950100169487312341072106029286034346738715854175756202321481695499515940912445695104786756666435227199190227379242094278885628660989901818879752716781727413639541423374496970574614319887699141782623609367183151814821236029774625829838427175568542080359107964741668014249827931380542455026755181401368678639216350328622037249815568285532477701480248668222285932713251597216180210496325795826726222498594982310717997031213725361687814392075312088555585555702564060990793423560058838298314890040169245525782630120019728524827612334719981453389859964376711779027046544647753465594114708027635627137581884325342611888452984461021089160795429475573000984664971690820357471802736235497547447280452632931739233699643836830221211136528667300934955542631447711429559555048978167616257189993614773932229998911167110188939576298559388141475506118285467878633788226781363288676050372709030554927405971032826628866277569957083998522017805167538682108736324725080019186903144458868925017015545748518690638933236500345152381740594995332122324153934665638802221744748201663752990342429185089511096215928889223437702054251897952980752327396986848238132753132521735401950560677559901984820259512706373535097940328756250057447078525458112034371573073239304727669120207186420761682964267998689811126439902395116724894806361118325972674424491897779072144170724440481383322178240254306122565184352262708012320729169241980354645366517069868585181958707793965736364018131797002734666184133618057316335776645007234930154648125343498480919891874017385364617561875283009286252427241168827488709240420112464051018673717764618984435589685004387445588247744167223101560832774677456456171079709811644128263695302676496010358325487936543932465830882459350166091220391246395332282032562568116817435746946432703151296568319771528225573810453624615251436428235624531273607151915269888866193428700969768512387711709381007682285670006720489514682366097817699779602491926217712809636819554066441436685114158807027213715546880484945537559812198377042305899527973410504555164162544828452566683587209685918150174534006416966934815393009118885858850036193302401470189900733380929337303701397086414958566098038315822162559252060252463937605712045236686406560474075130055229112648747794982928721219691575984745820865365085068728398091680827058926162847058980179356462242254791091875070860633319656505417873102853912126337304577143331333486291636091190536842891600696254256041344395793169688932152186894216108928823140161917452258069400116828875704027634320564567614918981570304443224765068200901365501868995626873050346253469280172407277644936933242711725407294361289756212969356369187220525575021832197459619871497288485727820971523583471206416951751894529208985305138344158944171997012342338475698109422166897984274755591055486144370675749343650060241249761757230326166086240875206009329840073908406343781035755754322896881043523205958092190270295684963034095903403980683014493539588658769631858670178310135242240663782620341083545323156318716247245093787665364592426689615864102945967628795573595126142914557470603808223462057699084658317123056687277822566864038613864953880732628585790112903033559585481380114614175027749849679938276813259729454887154223055612110969774876723048882255495704495381644345957174721582941094689078553751373201112614553663032474874882486629990577563300931346537926176716783681078774117875644864872795813517459975076703790536542233911145619636234444388410276704304248497934141098930569439924580398818615178471395656228940221382919884735125956149100025913951858195829060327017292067060609244793840830526592468494198772827717392941423717855376091173030700248122614800837661530554220216163654286315901842170102741705168418659842481528420828628714763586198607899823651470165801088377401594295245318221167719151904714704320001376061815722826582143401844427146805030722368871647232570294166685583027186493072811442255373673759642107659904658969726370422711285318040049973962127893716784797844216445445801917406590070738847343902841332971973326846496198556777281413900613256521324587289474860217802500945194147020533539542132593144824155498985301451889799929852588891586355873097067174064709633600317187020099489177357823238267541969970042472867258831802416102200030444345801061848975745785457807043423875721024421630854844146252006965476828308851057365189845565279865374860284298522892047905313270527153494146249939845194050967702631465350987151840045362631123348584768414834097554562134841054047173797190510543425953284602794171563446315375141268919320113173566111055352143283001143781490598572221474799806016417462357699732617197286475271718276852269750703037871632373399515812450416752262256924677148614912367308850717477127526538243095369453548525236453372769481526740001126664465490198273773565712529766779327508624168034042892769598178505240353242826929489358924849524184888176191815590323064213220960329780586013313118254997717160204860220344872684706464548625609423233423389266361385664161489399224838616642667185377274246675512972214468548846966468151641083532826011596419094621147867343042820606112065036422353682866323905623621659541417403976130413690751812943057466268697178301367793294799341715064207379421447615917748202313794674058658282415677410742048791802387837020073778904558803852601556563645739481002766918270049387233063122984208739646813312172915948551676766814778818703527008143083138568486989663154203718143359432985503971223407969485511453650332772572899559830520021106112462321200425021591773214970633672365976660673675107158396850676845512747428808105083444163094763137208898315902773600652662234360619041460509519501654236947370115282354900480114748486739192842645008995380005119314951791919582052847855928330390764199652796519099226276117777610605999315171454430784032401266710923053337051250676539128443390563321311056497667116207194593719131631856553152532240812843963222670521476361964678576610822206490020146205918725219983719501759476525213110217574506321466826963109976943745139053886943506852746421725493923532103131714005928265860054099001171901347197873091737025958988861932850679789333249993478934282168237891295367403792542894476725706721034838147968657020187119905193680010746622700912995742887382440702932562534278448198573067360226753052149881715344003533443027090389202536926972956641825846352773582409636972727861516545600838833022055988079503761799326652794972104883393887881621225841933472412952199563536511634126242811803089670709896026808058643681925564933957611083582952151794622974236422296063271208384422844135435012357094872229444270959326921001349697824379588018784829834370827806970345735916235163976444967001060983743730932970511999652808718063503206982179898629171457310897280591573455763838868115636496873564666703494711438679942369341499722946724151035167316911228546987609352353693929236607365686541213907184458625230333582295969432846490092317944430236780820457383247947193278666788111557288243475819779799718775817984404174463019078149144195216966490042007664864953565206598899230423764814353977306121484305979204550067608804399460517108756275294414566990719544064856454227895886608857855920518746553401183475276480940092295209603449373232671877161190106880871996899890856885308362779862579903962078164804554373977870589627906471170290913390201136889680414073138313928670170250069138383063271160994528576280375771966243034778176345595975692077555682769717216499757483091998199470030718535425438935040209739377624960788867827645141816413382014622186930550642154740802771798904709933718775411161843709658874630377274805605167676057405411858345592962326358991196539592823657072253961874054577505487232661454727789892006800845358578468164774368741305887380958001344990428384965490686102700995820439797589946515045510442505654617452903993491349837453328040200590000578122651080554579609964389715672112200290547616723256601206615835417910185036058471297878215419388227552728483777203887957378888221997642359143184292615279830328490508005742689423310144024134520797119787951476316937081426680383891754498727187806500434203307882101823073134231053677255670616236777805272204766537142933729447171322382204066834710002060846166222699306007236223235994210670968947491259732331349674486300536217834455959542503734968589808103544791472233883880036012581582290281792304488970043850189928303182167556537833810176311939332620353471609617804948987805096805893287102503788188238671786789452562997601170635996723634639622553307814425245853040005282957502077846543045337871942168321038496607284435252432516286932827512169843415318363067493749009558073825890218745954903393880272689548498120604897038282653340888161163316700665858192651333463510828648553055243398337789872095774496194830652608491943529356951534724137360987881742008670712379622184749395215216667261357524475115991873581487103997835439749686414393018041579408400452980473388893665375043891855881046490170664851457554844306848575698804037211093654160282980214062548981116091925841699491526052632703429267995864126744131700312765622455906809403848965943911008351431719831523515767410726496840755901279344372888898645993828003860254690787130728681268957584375764219127891980900537860780622956709445924403996122319140683277563903333262936056778062397568271860167677482340618882691650990085604010121709836302449147261614992880553712076208993280132496676039869539832986716150907047191998247507564697737924386560467889819253269585199575439826697862955457229973230890718864873708825907045878670723064941358694236555079246390728261372268472738875054001469307514771047296121961408511754683778012926046774312859404263451362673394802311896644155966797219088764423192146409330986171881050234267144306410191532124684953813396014282743489015763014349656765443043381807773916156525779452788950949180510120565296578514789760349703808796625566218162019301953254608880320075071373488100542700239349307241982079100441461916000499874150663902764009254232837799834840810931284530254081180485523708065026797606380110206612064345223040007859566366915480898999986089802277947220458454410125440651835344399617417642301038900992598403099401393314064917737629121656269399849664940148422418459386239686295250381496902151880175397706916738089598564897737641098862772871242593973054123781729894224121942389615728091851629758223851998747934029797088515275235120742611501045969043451049349857806806899059552187904094788617162001176265674816300489710776752305857601137367097373300862344585775924720300296796811231432127263756428402416693502056030494283527893640845352565236193312597727528199915983629901153295488362092118145780244451213714518221039774883251899420131691946210455880643278777894207557949857483161173773414946725272773135258879001986373379431753659890585033301572621202348691871266866686888521622530450239066697789504204117625200484277816463901052901501380731127951337608959231663821152178924685563115620295541669991912936122815450799608818971322467036498415084888810420475261443378715968759752380618607063691187092424650767762235061058531418673333657269996055436447119769708399834468363206384361103862707488086349255136579416609790990931446087298785116368241965332447031260398181446774111524817125280249051721462283443591751312155492293372416712386737230065291318632242710192437269051926533704608837638935008991785903364418039083142107157640043971299044146449142687876529293332166215805159465306749669776482143872289410379209990562302870075119185162569744925242225551753070907764175022493050046137934274866552810250484555281299846675454375257556103564649452079899443934315790674144287548264588014593627678033247725571774593369097990757044754615506316915071165695791154734576117943701184354989308835873953117833543893145229344525734976739044258841492384121544642060847581540472579849226283999953355873191150682416187646126203736030699155338239527701801681500222213811878848638735170136171008070192021114778673163750907880987131580700064600768140299575976499701934267651841731773422260871031907854814073357724366011953820206707098820980457350967052836524639654710392275849496979119249283668951052596064405587224141383229469098090432589092574591845974530242824495427691192148475007803786399300006686347579150684809939797811659703335443266353042524088047750130762233165634327768936872409773294717620986500408718849638026837664166871459198631053182431080879405840988180585151547446143994266999011712450256460145346860589997262181807045923676039448447843786114648333639601454982890776401497526130692568644949980630749562500600736296012695584107820256615242734544876060147416108829425203800933494491049558563495480769516304509676594170723944351264798849141039995894349120328667548347963621486647489276718242199342078827069144451809272600111278453483463984153845089739379852155027779098762333928092795859159811459861176513468771237078562469018005463880298294821387055530981449041931028576796697555169496086525113654760784805835540560271277447585010893139153141575935458929972804086410874243246107320546156351405317742138984114239641829178317739859171505219299729524773037981386502577511658241475757068359896676954546203036693025859583747335419821988178115107864822628948738627180278559946224321867213209865015176768775300688063788318859645357458027045126725792926659632085875392227182771514080539744440964288652059237328060061169110696198407738753404718704174832016861340592487895474747021643630521009564731148766672638795369714559213591124068099581546710896682894455783654329937091304517219448125072208602227434891527298895696891716571512590739141490489891753556100979779401980999551496201139791043849812895978858487893045751056705038425500669591955565861015046340239008733747048218166336697715503178279269997873207214393228623719446169592092496209788007325251054919379206786990800457822849205386221723736274644767308955678820845663334530442848228107785736036906921288531223347456116030529566740571023995655265630641031494223320900617112130838100132846476903162242729551218051003422921790597268972413351371490575616664336853425493543407132452681660523257036850002878320843803704392416335522656584096668739186308722173126894339965902247815999042600084468776513154778974622174735239589998043945554247106745848897686889568405888207563529817991178887014377453640669255089408733764392008382985513176607951258785798657862210785988573352450488735683307854698156529590674604288002405845110920314229181789592356425915169689852542538860617338954728989882148765053650898618309167705204991687067142915580244791666586336533211247280063260243850533271989906227227387208343953956234070726749062431348737869118396493106606480978040641190390977602131905706615680191199866307438883685320860872130653930368672898927307852728956404966696524272419186111182850749425460557065191150553525823279253936438447110000071602555642104588534457935667073923206843031172121473444621321976057251541626014448934609067540070036308858487698405535179372661291449930718053182159522747615220490976542045075046762851353969875504531731257223672749981469954725787610707376797396381615214527171764999667519553682180823107536375854291456218321831097839665163719385862250037626079166997586622989235651777585560521567854319215164448485207828728586268397637880490667353127644620488278473696058847489665701535477843072062351320606702808979250715498412768386741158579624389238905850609863294074849133318908197108454246498497958236588729131597425810259276270070393944866346335673383608178294609378095002081688284822365065123616326125637409491251246337256470704471941043619437396320258700742528780115390732922177199067524264195592789266750622071178800866009280990138384054401906991464305886368080127872162581164547976732395289562386639781755829971291492071176648861367261305797380584636923081351319525633635681448672658881973198902008179198658896961505566489016721196048502651027658124550741804671375765824764802113237200681409007902739020879472491303381102426660667360833324493294086888035862051765264412945351351551809027736870552238201418522920834956295094903753681637502670377909394964918661963717393906172853937723317019623183337230222085221142353045967863899318370209904981890388356135547223487988089292289162664631418764722909774149353747254340856426570006949937601328095555728854053001912926032036387749267372541621288116293180339185636683904690926138214298947503509983330722046393637586971610306634666607389680964140942410492681820759730854485739679774138689965230390570844309085025905391650798342562315084787615670278937824652425117872488007208110256353897164616797631741544987373544010227228900647877706201431219981288952255266200223793582162973155786139317916946412451491358450712992238855482126065989780047048445696418012379273857450616648564868200107952771209633651494826964827637095038399005338527809485623182867530538082449024473740929028518281537643497268488771986946870184464363940596037283472122248940989187144338602945570813335145689905336581639153837460575263051429996850771264229306485475022788820673236609596359453661085324646576115372514724949385267059731188502193628313463233282587700951024012356034427346182667656652534742794571813855796675366698588338285214063476958673424899231476537826857528214633390356022960747723211444498355233442164601861963468805539500821781212380298710346275239843333222861130231908056587865561343454916413595251627904435118492100324887993800522298180917407160201992611510127705447207290138094077246756750928910511656284054625485947004236326923540807050188590188954956027098301659103223925456705116605222279839863773258097630433310565741276037703511042248132980282931128037471818138479964428003257006577021009600726449160129463914023876414655449073199460305681409890568407908815970912569146938599714739435997432359141918046397049245747593180181696935888221279846615051867938208159164458623400467724800717007270658009554413236260555485080079268760558190988816707018980738452639520432822947015247050188838045662819192275573889082995218447632143254051171723147219095208274804513291122621402536238124108927970369123247464292125517269840380638374565313288294377759102168636397011049860728147417317899640782341496535347198307272668102397859810895096853964028158904381338924386865863277112580006482732478880031284569981824640380819762636952849164227950583184210980602484546353173423180646689667887353876670641123253041495531967150786663829160205146626015412827663680705765151886951320797239610236761890329325913689708166253332736801193137310009301479053016137916406707411740749482453049188508315467677315257524612197635138343947658833388587102422875736028189778711056522447644900541354374032375947820476950477894600074108245292457421292137471786068537745602596250064250042721365235241173096984242370306165319234086861183140550136433448457558300277964933198951449497484214256231366225504773984087408487276773774314502509920684833170162328595296873416499876089837612280015117285758322032801801511552099628719159935582378440436539928198209737927154971556895334250757011357929043771111190545690482234882296568046978527078116151651870527588185236557985114128166140151746585301564170028714748481976042462362503851267836900871573564742153761390800483986593050935363669636029740450813631046336611336430858202187217366243667606984938264290692345734657263035325142038305475151014195301124853150273832369497464587834426588159806839769509983970515743901505089373371850700127088226386254815711979477722565009659799066205574890479112118176435403472954105466059104397902346490626160022429429905923064125578121162031750808679217001206020334237358864575099161999026228941786800926861731023913257820056432780374016437731656620413867673731910636009226128331620486107985654698539582542421398132121843122510015399151183305354611238951285929937414115359116001814001015922906793277773961282212874952009266448119108691015137270763623924481584029138125135644761422297498614898433238464011467250236573259515325873636175378591938555582249905360852205903432258437662819710655020165745050030266598888045428000430120946391762915529010434275667197638596723101578314098771385918859439575877117283625285858381188128857963385475179950029511838354531644591862116460339189195642871294051145829733872527858921530311962659773419140184065099040892889318344358728395082556922791494906268225803748816747754858934834001260131305915290755341752458649257182509820500744223293326908414703033448571658413456337367910570561252054185611921760919916920049045686292528633290354187679897022110681993055610839705830871856989122057312647733298786378546885439414867930390016939036374108441744576222875185246790284860521691480533803445182038488185779322667480793299723008969206089644695231367870446000143232362054875420875167074224590152924723065265218175396697486646436613725845380507193989398688233745771334704556151521092600940397620554319239161142838625119211692469630163804683170216404388804867105341930822926000387014902786375743756863074272100520428074036416380972500281004442576953409930414818248878203720584696131914629069706132725877883680742645052217590239352077484532531522125892974100027005313630630904620034244247710692102192468889371479577492094019177744759190025928716986548650454660925287557739899661428485487339803523293125750607376181670284806069739149794588618583351475327119656958461329510971593379102015931811965204258288403692173668646093886260162620219996497045992139698531479147958306199707180503142032939562946877337744168632659675360878616772321823456782378099499169011751049514369611516165826544315290804370248898699468531883759460249602500296797435230315392828702045933500746240313239628313659197995114317594263416103336652590148850848377044678677972705722696025152360136051268334168158742709376808965068391300213086363621267064924631632068598441822931267345287686416305092982985024507921341195705412652032475469646850979771455504423992969677208225834950307962454387750271572131033153630509850668854880269364427048125417362602326819521707335962088489729712198798980039804864470332678090975315547724572724209631592844479710386884126624871148072769901374734955923814114315788662477446239439027004161547028447845602875751488117646801312948519181705702733183330118033577647598784491466814220372822723619669458105473908041650453504259424537854556718788017311257586328154037188542542813505860032470849406073435805176874520544315823492727439198397942544788017825570185909671397761512890524472083972044157003153646698214004406732704881216257961557844204780668004215773381223310395782442512274834617344893957975449505016509654873910898145241377259290844465896399270826642190281148103949422147164931248997299543918135016344700261509723112652564647126026007661467095456174906542572418466830809053388772847205824787636246384412071680165442788706672459767994673389216064015877184680856611470186164062025402751788382173639152174116033711285188283295554034436502712684966242552627071853352179760721794264630581114208323347690583675577806473287774449106360707162889446534585002850276661933818018399089109256193231260875383868779461117533023857268320390572399709460163108910975387109615321190371330574665441221750881095223362136801177869525167106147383993204759409333301428487534000955294696190926523750592179414506840710237414355342771011031097893402238394856388314494426458337304181194944811422905224374241155241729196433713096560168019593195053710044632148847330442431122408212087422454291069125055568552738107505537499830713908602368173881713592397586632324883729029040861424015267400043076903332856814804864380623205719671872656259765226586217050235662521323335750832301132491724226756326680672092146944378348631840110537730374648377293561964379055312315240219478460786914055470460905521991349911980627513602147487380465405159822729016298053275916765171997454203712816879340183221901437675242805289929087988952301743894831940523781260709200295195292236254514648231692623555568313436009280566144304797172497678214598783387131731332538521555901700978813006388175326720755481030941101711101741551575078700977289364969759725188310007883475506700741003910352670883532187882898866393387614306501352775859477050650117835805802533169385737037107132582269873172833756008973057829815651065758512123103285836822471043255555969988767330047236537324195377841632873690368045693235070532346575549721696026091872782194533062700329268457948546056796204387459560942790520510798984915135777523172538439537473038035504485798057594368775480107596557457099916554764327439897788559590330253432391599954298064530256297835579048572179197986088456818643990655565785414455627763389700381364211691939958238049680396740244044538081371154632315695087131756290579052718169614240210855354668462220572231269142363092703549852946689504578658436270034744600791639938343906733794833974634068791001630195236020594174486283730409995180696110820744361082561212521865374706149770533119585038541796402073627213494926243052809788160773038508905833122312890057774100374839596478051728197540871347333725914088457330357669848632476745503351932150595593188426021301359087447399828236879398066085265005758943582265557958483326317966896513208502687960585464061867427897610937566170970605833340952115828336418333185039522544153728584847331064657264987159638637685103983328565839774931725156620934270411070236388696498794244093024078397065204135331041694588210026889959404370496481714488934912508092333297003479060516160086017673908492505525202225850876837096129475966323410096527573272725923838431856161108231330323158772100118196949034349583125518353104227394994736521490598642946874007570265406661305807537776236543482252288267292033216997915626566468334013198895554133660947199312557925000271159182091775374757785687890944065307445653208219522198439436528865637862358438866877216300511189072506783067707972003241970962340595048676079741139399126414468548761201702553575773085036274941173989516738795699716673959959374999709434680135760173688558644519062704559920094566046166579255488499807609264276208966772859375894404182455054407560194672183129601799237014545962554901832034815632295794828925509375546339423971709465862355784464665331978916633635957830426854598190446707603088876259987257947321400649980665673755461396690902690920857109648771502861093737095014953206943789440925144872837072671034120704211201579189337472026903656563059855367953696326527736784947008634372829828162213009622697063059886696459151583133441526288034420199043886182498261340961421105809847241375548071628830592784687595578933265126400749360684057592986297787868629574844062499421558114263319364813037104487150542982081525263932868595482014149477395474923106222193247875458757885573248174092284286535128864071628552292487772669661194301261773451333233235737351024716342702743217851043149399044961047325437798545780281602175786824471342310304779742106092671573044091924396228193074492462598915604719005874240463343723976246226542062021548343277659772686917031371870324346956485392471858233432875137121941035290940267172317843485245420173854300310820591862522190020026062916621826680879144830319327659521663089745603319872423760492198698955905433238476449523634844508740571143365745836189872508337903210834134152165852974575978863813303697917574573377682058879319498539474817222880714066260235343295634915096785241603200614057684737125571805559698496901142090406325117199277591074014797357612328733358537130710221857006060424617027259087169787608791428579556667632063623693956045235772760535806047228372958463605683392161526322676412670726242152579370775739864020043822879961364999255220297070904544073364446463524701809240912725313919789374323276754326749814008177264544262161331320767765218225707453701230850636178117516897014753663930824255897473446682165772193849179463833518913721441983039185482010895319171383239177309231739859174989273733476723840046710074207180687179375836956739641129997779744698727444438087864731551446735721761970514066021473914094574002066597760286250871719739930289437618509522801452992123312130048660942828574620414044696149094239295103959623335206547783992165878147651666701903956850363209838641474657028434053294694604527704261994999554425446836872401308266252854081583230283055114672264308262063628686282340751790280335781322231532689924586112527852451209052166515039264412777696711076111519527566467147748105026876840816639066775905011417286972595697660653276302373092254019518675718826911265375792514385535344416933513727958470354598474295738457030334928604182321774364952133118744053044906709114501702398761152709874761639274577721542083588711370279840600010877904056021768369194633393058597254540325966378348751359602804754521977253904512885294778905794980923048356025901084939177613848685794750599132728290643898719118589357313791042722901850638119995077360308604542204494519195975643326965601466873329942964538784561630630718435329275401485076953813705586951288008394853927819563124765664462725938451607766998182501159603992544378158161675088868186111173392017495736820320786407956398370297117690916533710863211586862640772675657232500031781434778641682519080363766158863703524199044340681923004996955141640128021615039872333967521940164665241001276722976410650279878406662146440236908745989220123018224038828019596576814751640610549421720427029784432529980753037063931543733856014342501163180664097574169813322328239890525884289328195576031855216084379180851508775085279717953214476247733390961571335909543509561237403997220593084406399432401672067713450105735815813110335617385204025241669767568121433573951411591488936808693297939363580844906876160896976440131648569357685006162906574435047740222142047146225340099909624336181093583628770230622934493832048312966326547932603459544799178062952975455936855812223707596028316016054975435827462405966448085505769990873326103521752516638559277064374285157538710235944120032841925757141533579767463175723273452817295498484029570081331820395275693160282719637090846557154397326259075405837912805546298077623846887635884101027573762322477385768707071571961768282568334197545131588968209851718839994691793697661878638678043524115130304373046225979466794375200227213785570328601492036926060350195336329604779894360865356834113418417010457361389516224689170142444257433461637570185179411364386292857803148966814929782013701555604771416815550908924523355931601812306720048553263475455751650238782667564921917351544919545427306756607017307770727469394058649552863089147670395246767446918700513162683297571447535349763822993753633726053667350877751010188873764076252287903783339216409346856178311218840738894434134943764023547330695370534537474437820458853679690574198345282594081972730866380215821809482865287266312359070543279770603768450569175895247909680899870708536455921921016558164980516076958196843423870312769934058749489085115492853150600705340526385549683818025459178651864222997190764770063144720320093723485689717658178106671762768018455288279999635883835546745726849700582460332952238226382551623558188966140805140017124012950725088048588908720306526247704335474440169112664674119567163861995982094418148561287238356284085766473831463461100537034262447005810812953347986418947452007875105629812067397859989440172923949989886413658226052883792431594700940393075009562520691638762786035875134509926644085577198984026748634438024770230299642324249071086107845316478345088083010810167369016833387327144239850941307330529826806663811318690236183081922259734170341624965189241026889475181307464922101473446215904907121076919470534368321187685073419223542495622968924060568185109955095420970476074905842227660533194024861776408935589845713081976383709445982763402347808647210412178254899939672431813735057833038254944365711899443430838907224744810397056553616764919329264626795124556381504617076427449837644346965131365756873794931659728741677747392160181841100257042787353897284398475879877145161572144655168699353775224993275630823084006096664402423831876139646762211620828200457222952148123409908283000329653680290469141132198282663922823421209207856642062612092214726230484980542190040940436937007389104273840816121695509511059461453815585690987638117268994254175106521943569263879562430819767642811189856994280007595411635091953485944577172204505339906073956268195422865661207961232937315762295804429655978785385383013328266832512312626221141005456408838978381118504605075918257019351373200679163419843513428419642407595552638467231809888280889597215430203272382265508590837127357120049307715956088665692036375062870274748680529411778806075621094036248903393866480640404076387617409314211444366439070173075590774620243617781127054591453406813823458419510180502380629871981890495513136882505581798855609800227634076816046549049936025802483867402713980403363415966211962066929644112542685382599754196663184556566291835626514367683203130602345455883232383661765075110378697386289715390992533990202764482733527252272479988869510585454241758360241833122411977629657211780450036132427467244786296304174929548060311810581095952857858946229965760753803284196074718992136430403194863486830089253411417517227955187946361813651013883306193442030755584272174385357776413836225834552705958851717301991376575652802689314422582053501079942680022387305146063238833907888306089556376207703168094644686561099097256080543899540002802589170586312221645324970030536302617022633168149870454533855759459407091723833628255187800785001833444967516067247865367440591044839163575873835430645590953363986530952408716091657727265142866594112026781406248184294293641769294963836722504669334714388296578906943401455210971127018230747982121022370148323647723781365155308323333657363862726772242649912818045507646164256348183854412625891733831780217749244238906800325772084548101902020423658949273200244185092076106445848425185458906492227104721216581156115255147153247327740809890859466517855935864850527826991282771052079350030515005122275695893339892747299489247651136025053106624837885382319345226506643395959354433837477380355592537350203585467905340561126504202152537427342122462933457644065971409710767399227468208880901352940704551574889747155179707931276268395223272277945128914555719260098478728447308754208490602790013675369692936120287766446919668723809564908257942521648246732109572865124056545655446223547755559374095227897031746705405223813445490932260863670901612720430128176273964781989843384825380634227625548843719854925006319997205865994180730344908972219629649458328383412143038011187898170308057425816763560397512352491740143059719316728825967706092271016206222784114471086865243803073575546298228890825033546205820055453498268349135662933123658396642211648790010877594302019223633400677404132005533825865035458122701114486956780015694566553568957117947030967344784253009310382452425870591262983626582983113473622074335915649111717837786702109557531293550680395712826770579146707073100511503679776326854518744018532831617642886954194993479875924291511307213820389793235768478264861580958210543779839909286235034030567223816446797972789371031215211109062317348554449798297344467218642953383492432075104828772422627837305266250071793216291303384451382269628173728278747581181054251794851653437909343047263171849292258634147444164686591035780045563790121697443837387885041774350680767593517102565845011161284472566715405157696699222510150191232948172377968482606419774094867473629604205119524069730711088306375762512452988952476593140893790343247347801656761085990966567556923195589004214277341270960827565301966003894524448395831970768986177686514214766810438100200093910253944525254699950907707144330347452280519039674467963907257310901793599733250429432441717605490138578243856036340360216523943391350821161286611666832980793198502376583497875158620839181037047051176956877332792774068834890203555659547366396384054274263436025080077461187972985476175731305309316627628606816234701994336509418018927523001964095176564593963943532897569398575640342191475658185951022773806436294748624823768457246864524831571684675953246134870147582328817149103726969342969972061177358945615104936516866562820692154422461678163973815430607258003867351832220489572474591207782296938744115708898544918922735666108028173516869991737345320092175729904670523681828992699254740783504523033110096555298050309128078134714331179889682921524532241470171924880835031346583254744998187278167107437760827752399095807366598847672625805896830693939017908782262863412099734188750414172386455182587551033294006885625591623554568840507360977695151007816004816958273082464650889386320809332768327443138610994408177608535687824239604810663135118357620115258934412812566196860799524259790846344608028858688345018951341498270871980140930968081625763494599271939682193101349830290022060243762659117870883330278367586844615686948466823438192972410783663526692750477586108871035089678761090189435979639225879323609337634193211533319634024881732545553246765499990828152177477625517451186211818457763048526487798222107197788754113898674419417879123722769716735471958464341289397589094126895756686642399002608607574886172372891436487353035469731356657309626713743094286331407593636904741408059080920298586154148220405585685930748618294696513756104645250877818388482408378700703294403317471974591084146910814798322129401490858420227118637771887679303924466695465266922597026564183073673791769566114121393041678088945212231751619734592776881445546520163700939699509616051596407366118004713373223305961577454191941886820390772978382830304052204755069382614455315744776863934166763045822212783995722742559668504880257602032110178563906500678667648735318692873681983051847157356445325566211906809651369412096017525706848235731703307188570919970627325859638751158564670128803919360707268045024539663021323176273118101784900656338058384983451359659008771964481415569145771610898867063041891597719426834494632700359097942740922367137580653038138709765516872432338355502846364854785714927177186124546218049373488549224489696825351807761361263035136387224542943075483820332940281600416681766698198837881612497749812459617653030812053005388732038394309835711367472922737885897250516541470111586689244500939833746724527934504430714163826381734618199333700814371369443459323509594483298926883791832357317214156110099449328689643912102070719708065437062346277551801013782290039569864653279796198878221837834912149389498253888337541579204608970610243462006979669852664206144944644579403573996112587950321600773975219122355947238533292710359843356832212717352733144272754433206055217699662617971668515477319916440622214499953743980313090619964563246323471479678468187611525887583509891017066926311384122936947725391291708431191021868667032176996475852545791758545236621000973542468946635509213185504052617727387112226879060487579603498257993062047087775637710419584949838317641874102176387282590961804981107332793612640970686144450123156778099329623491779939481205875481825090094424779795426572632004604404575506735238423924811922196034124479385879605930797455845681738511273414386941489188187848760653369898308313821569263129794211860926228276938873641786513916675808790706451877950495742796091523505262435384496072094524539022228771516708297548639447280898543173263885510971813454653753365051242427592716081169292339540577222172712156089110750274969834936504063058541103632178656518762794493954832430982214237336371422251411865100156405759469555998171768103339045183498396961781830677703932183073132826265745416130090409338175205148671921559445919065723183708413606357470710774917099279059397992182406891552580026819562487155623275584044407489969436503342758917757768395463480488659141760043496860339025668304546405460956907863560819169473097765000671299748032363625166299983045192646221781804868092535000770811772458822405736761032638108544852542877631209762895513630499511035203272491245379605223375990656860662877875490502775914618260626394714423206144949909138617550678221333731052941532182644038060528114982322845477097334457081254356786451346022322754559415065279435955562552016415072296714068142282239481052406942874320059183363753342140441431792425380301855243653941776628744013053352073208015785080494390691992823174724027307862162188474480310841090470108555681460028785719621084050303709614793904346439966984820118902334024479630922208279875877208003124412495047340790575486345892269511517167656910351020674243696664843419044289245512075658355547836630766190763644216798277312678949030497410272583636582131092993113697739199611215794230686289783477999127959540733034228347382070651544632363963738599165565366150581345891208567461249491467502899425138885742148675537328263093979472521221740640930007503111663033036623985695758908287574134904066483714695161900088781250756896678065828088880937523771399803575227084729691083770989743257296124811295434616010798964928640515789802505307770925294729255894569319137879828096667010935290289847600061237811065344053701171906638508441936138358214193481971081965967070450668090617239190446341653677018340921370474406072249788854062282949195400154593760805343379040437613168672307286400267586007992747022614066675760488717710772416843371926118147210731068182139567278396329371010191198727569763203714269281805666750198186675639040643185633640776767434068141238488018706050844772014033982248291556099689961419931167101373820439625815972717386613779433088759886021898767086809658332112278169279901180901957015944017121701563799869685492839219292740894560173081275701703369038217979597839218748621503656516645495069191457791357046923945422784257654847159655432266907841035112884623643417241185324694499521113582565942498449385781407571688772683525171215369143030420573385269856709843318593022389498494946708801203097657401066542914252370431530957541221083731319347698154480936745201402596530713031114642587135289616314548384623487650190180814314914348397378805053679373656993702657694344649173553540714152995830867109516003657335501790430038037663615258331780343458278336929027892640910154866036548602537887148307653839072315785636329462316235664781175703695953364792801896592256891259056801931494214026481086323420117943727380603298113948187652447257610841093485273828912994334582279655912314429165494978773664946498047174867497457035920413798880131659547126012594542913876415293421800115683783967025482063630027677321051752971270248680211937986416618689729055645080294488994665619664325677866754089163568753260513815201677399580309820066707455689592559941519036274912798457189194220351605958753304428290536613783223927074769268827532480142251725788146902811370777675841779994695288237553605777242578574986899494096868441420917670837705421229226307963277132421260379320200416864659131670194751209443586905381024714555823135403374511434737388527900165604298969193870712171061428389505271286590423646777732439899764428451172409037518586178373467394312821800128913492522703060827396325581566253483491405627014130369439162753591849701979647889401147673810120546771489156267401643183074987298347897105903782023928218921741003633271367103055637490425680870500483712459099778795824744465282346967540539968935852776645090041384738581813715213460101554717361072951291166061007694897354932095746731477608658710343175912046431266397032954302450546878970876674369010329128230416848332925123372141241096878055997113363210574452747212269915338722415310226498192125379796509725849549423052390003593422671236513065226339982433552011562311372132141038952702780144945775320204667353050148446542698404594470525616601004123661798286078607302566244155946191924330473475812085176898000090887721411135443546883851431829030733513656170562748019390526070309826960986515875102882308913139034842995825878605691293889703421346797888044337018426900325247533145385898880064133816661951862422771638411644706637080922953655547789048848063323302566705194597019120982797767280514593771190772515510328530607744517809972868308270274055012786886189887370696086648048683073302432258752472741345841492639482633945610401288866577880411085609282508164035166272631082546899215461859472902675624242508650174675320064344040206160319529077819577138670540965965694671887318211657979362593766496385885406667636098341942257930388812223494942513051091149656317072597530005524339419857312722819725734041491136299772085613076517760658445577005770408212371051718089736532606869670412323681487549471151159581582371403404943981070005813572517395990826889951797862355388892142295046503137538017378890391784149517581280462839859116709422798529743392950819455006729626104945376359970853050289614628748918422276558721454194582136337422116896275437275768476396852160503443961686437908296436512811170403609920579439625042467898301068696028626205576756396886264330893237840705669144838280891289798843686571223620017111199364287216063553580646603696481713237005807628704528741366772674295585377688206176963828458967485178366586974184133555088928958027210402537090265679006058923662571712500979401627750713910425696401991683239814193257876212630980710700902074312858510343611075755278955426661604184063321759185011402975446128016131325561709298242008749862313232874507599424517996877806125357011729949272545014787005778875999650442003811130346900475802166790919410685137897739842218516180554443494538195779436001220141904801807389968335082098127956618819516895547170189215238776119039267647773958438922409046039103138019756798047965952555547588471425612978243677929791837224881347421557039471987869305246036451773736452046334428561817345812086391065787622716617923540727434977551673567259970018089166891490624298080957439229796426025972325701150928223248178574753709754566560884926384774209595522106233898340220492794062829593638504260453057991957839591914097625116576702792500962938612298138324192715898883659238592285856684067362622452535742977376891073136889624616142826060404471796621076473279233924154267252642885502047026102549242525547609148343244152192017567034668727363244765817259424761604660382289817479125928904703116933161341416787688942865574775266828235449756087897992316033279584043697358835423532961796815053834857412532524025123860292247264906134031834908750706153160645768390075931647670674041026015665767396528492811748058379849368439883054639490601807747937857423066830584357187382329943661059188603159223470378660992484790358441928311520640579466798766524695878229165683550480356726020033703574871200713651674535081825590249740911312674789389283997069483804775012880919084691699909527754570562884368133045296418017660875762741515623849824884044227580158190392012270621288216683968666507950206235928713841692245243026437892985949689531472614764487740280049353356194573661246672705274412198386078086791293588532272592385148443665201602194850454349493697068638878692613759220037607091674909522877056717549720471069930919262689284524065925201525810700724237971727480105353110006543489117541191429546370365850496439077103036334868458867006798230447527562215788449191487013220454983871304178148263195146225672390008106291667924727402775075095458176491744239102276650344667340052401001461594850557044423920443044915030248128643282322433573660333972863719428588558894997749963319854358945023458873660581913157715700011493232378642612467984803175709607769442788863459512068754181578755131887854178901814480211515767254941016017476493856083573153110987251379018832474362137008648267036892063974735435685167080265313103289630518059139233184952135818571938824522421578584875747584116793228999085252314690774169426556613243725953734591526384585656510609007642956673879196620563483835093822176195279105627441171282332365196933562065786804281927198737502385220957566261830153486317449923125614630914985817211450952197728696207641723848256962653091580999056384195291908299291163595182267848315989460142568324618498519059875370758150496724949004883965093406365680419430362583702533608830367552996914516033059487410843897961438295325175187610955387427413033877450859005781881677335066614867652742669547949631903680255329429254935339738495311198817412706906941556076716670196345736890253788461708306079735227700462251912122666618667557029213862944768926887376168566246431057001304019853003202010274657279968475118272908801238994161891190316622721383235814111385776698488366210733343686205226015135647121799207138566502814151728010364324554111969445627123383335872378751035901318080460305759390584779792725287058782245275425038246727755812972470895400005326545360789025308947232092720273450477325196224376352795233654865651984950822893477459154698311023082160002923449380682220292843652598101909000333206895466621987352699254174512096036756997116400810588130775830737034128651431755966708388023189060348023041344875320869706313922245597535157523269907406793730547409058604459976825091151361520654145591702203350872865953083456971448185157380969559118707135191520621363624724922919370966891429774492933347082337565143962264429317102113515004483975028687540728196628939023364649760746194429868528501419387696468373696425399275774535303271755842612804760922543260415003776872424151441345965358494848586587199758192103435175400832221415145816333595951873785530426474317325724313635430571429645635203831217341079015499769385485652484483969202351508083223303643781055598751873440689242538773421352582521336931909419115750645323534804009162643057682172255571154679240482820812430247236424341845276088905663598190233072493801609037343296007522411655461024690254138453464524362392060617147107862686954957571542270248758286859509607024737276124440673083165133163524758962707173934427189029956401251356018991178455991574007087669193059678075961851395530134082111487504178184558514013736916140581029180731652681234269997369351218130105291318835354739091925967268218355554330869270337363184138422519355953722881054940766967003412114579482693770214402823802942805271405562605330637507149161425548135407465725968745743896342519974665431858829946535913540191781690635452425471137552272472920241832658080992725721636465764020058626470532759504309343127805693506164866845953758912323182476009545019392063178223786144759548734448641555858449509577731006425676083840787119725495346785824030538655754432341660719440584954498542087868469250405576856460997768372024851104795571159981939033490148947870191056682389385814323651332873021969081024411480726984453033236236057281189720712990416318627827724349643607051065978653988079584755665823891578472319483560501083416451058810014065150013418506322352040755846472532187251214776764778555932518476403003941229876164447620029156945724553037471384150444711567510814352117450318256393363453328644207527099343553946565643030667149259786627241084390812518780897865597221289357549552029505149345249508634299031053963001574239258438057811036890229786314072235801992903186874330791880383432849604750152423493078909507337087001048520728058633177562033894163045258977674715785742589814732401173081041476175116335883624617689347249033203709789931364142250370712873529098028597738996668687868369415996769200866039776143550606070851476465968662335270587203176864350766174218453973709909009586385244570543264950957519086562560156306298409879174122914640204544846251792973830467978278764038903403749174287479538603927034202455495962490330562840395455001423460232552494525862065898434433337598687673701253158460280808242525143219079971452561734505393850154689919635460197828653144746452240160980166793062583978601034806384892733053413780154576428937861040392210779385512949729460023604788746076299268137049785033129123158579594049886043869020758318541397374602196008118279398860505758754741973936781299893888582384548470650169475538905859624606695001253583087952497077074688236965415871408561246291293486397140438417967709559360255720679030642142905995301476891082011031957171757121338882411976709893249744324782888662545110386921090496321670554250253041483110610633834798289976896972636917769338101785248174009606951933285235331650307169386938617605661214326587008798418465731990717421693159999449907375125312421480452291442065479685889378672012041746396288192407139305374929475890061422429793205828615909227264793670815118600131378452067414329985027382963440201033636515160443075739579729087122947264199750854258279385818936163197757403820480215463860301032105714891211520396412711840997489071162675088696090969263474923287016140841781729508810825167645204735648847398446257639400978125604837859437304044047579015448801576162699414963984998767168320225410163694561807031702868632968542116651376970848496411310448835354482144034982828471167514549103892554560676206817609233897854714487375916337212440145204218016845946240510633876416878285780249351329375220606233208445363003775323932654743840653640870239226830703636890356644031809841680725470728478511283363848924300443232682065940266502629999211888224922001791962998575456728831103950219917608927141828411581926234767911398127830434720083494472263546450712463067584073396437985214758190377519642783574276726867105540893573738653410363342216664916613323571864231235314529223333888867792684506858395787350414999538861266130725246811641317914517621892130138512736069295735779091937988677954980025788378184505648068869036571082808144226869960693728386401233926684891738617954535044172998959557566100459247054132368828068271177521769671394917212997854376274028506064062272617749340992563158345466546900171258916518376785171405325089777222695538396250534147261795241067924216795577360557233936186398862800869300415418022384503411141400283138874194874323580542972687942727514801669531334090796225619708833189982161875440844193348992256203235107687753077007352866225388061642978949147512914275813554085614575518673815236171577149462500151872021728226993170381201794326150540534540731486319254664819680181729780697691726932587338733181963361297343314563322791441980186928403888948646602416156177877506342434856010104083356986880106136730807842518602899597294697860012120273248293015336926175329853771255919719242300813039816357162644749451828716449266039493803552727596144382071480984985428362936655853567900902603058461201367316691329301637224160922478036750456857561279465281951381063655899919184880461939405103529791641082805074174068445271665171912310912478479299078033229305996717815665056965918570435032880877732323771524695390663912123263943432177977386410711966786680959357051104597590080987816153445304460655607052332919536613966032208883278725783280710707523877864092293362371146042346278824182991553460510795443070987929109307015142877328031074763710659965396246391629051732062556440635776732227443326119577828362549811118564486053455940464291638849609624927285410043568061556737329278702254684743233816631576107796788394956607622473030535862262872592877654156008511212810915093609806019935047587625823083094586091460111765969578202477723158999012814587545751302253746386482889312327699745735019409166125063084999612111724813210008258288697173678730739714535219389187262650454609034108207790888167440963090354075230716244358051854344134788534241106584883366990041762936395775986084199825858940454552290511040804963049748346015913084939265334835750013600878711709330251298853958495581474352944408050775865945393684990595410863637430688886650202731027422579573958164269872074078710742722169612479096398070476208692074886402427033161394913599081312670366443032208926619341209502821155376803604428656227216556834196098956541195444430680455438947854382367538125955763350555503500590135361198969761511622586456562602862741187591943492380498942853316257981317883636563485768916047505288329777832885390956401832982635991095528245501818972975407287540357090199714203574685346276432295597119687651707769523360777217661637762192374177076662273219600372564833791262858916435495915254093100504672416941978740996765830663671373903641598709046876574825898876511876856864418840668489612987837798177147949625766309778715732614239206552835480723943953568999982122900157491148211482156737876587783104916408602010318089013247678649981049759952693436959308175210123462345803237213562090570390490325105251743573885905265457203064851229361058992735367139846948737613632756063716986667943476733110979321110414586566103619994338374146379805779742072003347888480294482673824313587580172460123021932554179370451134733019008393490108799958475003369793198747199746418025478805114955369501543657244562390198840238598972663158683400791872393235571135619060006836161326519564962690589548504829710360695893072539555013430591903271106923459511367619160091996985788354224171015730608416058789406268562708860901125828203441829809254318785076847862651469829560335445496266651664106975795747865673955048164275097581401561911635049009924190883955744501476344620109224227717795198856813514082362849804717277800377304236809490511169503889510673221627887679159023611962051477209054538265377877837808932679850718107633120957878696516145775719932654249566757100582937366824700531607665976809046037218349328506201744006065524508488067450859115647980971919481819959838712065458210718167720970148511892246822521772571900256826804598472161367404918198103888871467561724899728178898820331489530124243493567757445505806159710423070955199191447623861320270029842589929518131713569757424191177336582753532163389011102163759556761333186743745690261727959287521021802053973182976098470631250502682571834374522015456879442781051945367120153241220583768638127451550037320755480833330598698544162751688607341550124995697245090556780517111247079569228672106765915478892793178765235261914171741732886009447221077338239074285863492560373729785665238756642791244250282848972238298138700237570617226356366336949063812522613068058375792779223000483201921612361429250629928704233244189151029152270478183384837742851214334146465006608397209069531800454695516443135112326830353567891617211330898186941555723195862603778060782273106323196376528176519195904524895329070173184131957135245159970760839062563147720721644796664809643801249223532476583883179975477547632523078055855920495450881669552135848118289835929834368947733154650176139722887115150614130683223007281786994944634703200469948813063972087465650143598241853333220271362636547167525423174587648603215904215184999093049451980394703210886195119471275208610232739547004375170158474381844266548413145118174741280338426469349420785547199214712141396283729562048560996104235814969714409586492424658031738438678462824995813584959631208910068195292198833533736200224184164547438669837426725714509451554336732658035094907644234490702592715775759182080870380738274939377781391619329004508532148013403927805681475246572186646706078298723495831798794415194302808342169421275385914584877678915749012368230586647776067347560006026192630627620100118501900772673489033922869191527540940313322858703710008530751201698165974113916723888995169426749297608342035653341740180338830494979803690660121254690303174741368435646715445665525791332718018909189882520504058391573978496573678129239607146659703995178022886091552289790144498509569592100200271058375968331343568256840828908605997286127496584751954580355116497317786959908425957749333475671255669065768569801858670412190083375369018693387374171435467434111465992070042380191684564313546561182828821952324072048268384756580059415397699675715972243262741139905728399432610456871298567477461242430987385784012302718757445269521303172765296217193063687916027979841185428272725845132441709460511952255621942023378298119731976280851861783266368472566124743544145337861340023672388733791415230063080815982982303161997814124488873498691682980378539287589795831906519104019864316035912403029682281458192210798026891686766856092902180650539238290246635851382470862410559654359616568788158624110118143939334097269767735012237383988705481130159491155318431548739180033750165084327726892804338435229775173183883350367106671542445937025519828478230185595952596392621652142129165016264779004220570018454735265641555616048349685110446504756953270807576466673192973289615282710221493204677210466482539316669093873419336593214185752029838610982297775709862048930942750459853512197844706679055490505944774556562716315257866139801735005417773646712221302524146709720612853168998965217822157238157250059368723386527800692316603554828784586517744574623216854149784086025953066715665118360242652864466408006388187513661104752316021204338097837427189905270163871019950425648545768474568939302328897798039626217916080423744388650930917632054712308175161618562626073811517276458161104953537618907615051501580205466309533618610472894042912129702362548048697447407834565524656048903941611289473355176356540090845483881045113528574722865622856858052812700199000144609688422415568671419976932972988457072844810174920077619973460325953666927884315695325418840459059779715751496806380311314920443949598758125679353218189724349008277510533253308700418014949843217268009515993851887333634168442540999366332379014966652748949649448233987427564818513740889906015265690765173644080667099261898445617957787408919903569284513626589521966324326226678585005537878025644320281372967827564983370384624837698384173818801386565971034338885374045083525774392619437714711296318983409381539705005604419568517466438193733568481130326434158665391508635395864325533550719854414688413387665922931829373411114912073582203506534927307050632852362226915472071494251816280480932926957496903948468299094150588988651845360738382839608339098873438043863674545537628820063423463888642236425949589331428127643143228130805441714801842423090611882510717394348944540306918646107323963426240178304626181686220936934232196745277841215704575815813465855600978539013733437621952166650253416914737951410714580524018968184749767642151235380078619115286764634083881120205222536885363786586738258302180845571358981230106905781187036855400467103119376141921530144859214496969427630497742945584783268845589248549051795022196952643473705820525602891646183665849192056090725424418915014927306137856827112699722052587941108865079832472403396027551555414773978978418127043586306456110046088326081547131355458850098644412080570207021521482366595915192280782091887948722482100909368892313435258910092411735215107310751170733620735046291854350618281082585381358495097332478109080091704042517069265973187727831777670867535890544563219983436182271162775665139411219717968960141750694299583026156455369439014807447833690706283423773345814274522241068317329655116830994997262106716516618478330432750691074508310802448288620333115428765927561907633700125832330233387322790264067631466344831059367470451771390258262603148590730259131198190533681776419846366498475626455608606105300380669480967508263915076588656420995986052907470797801061746032629482934954831518115303229361276031424526147015687642823128276277973061923433049698480626267891050695362941048674186505722516586860797289942315154232876351377590227848469123167977188288281388151886947151328898446144693441687215302959577006976611706147663013697526433840323221859768265782348628110456971064709795423233132746117241743049882191335556896182216535870172511034916566467538572444886482352937522884189833313148415444330666305726740322112577098266851323806241870966672223490134642321172971587331903139803558222381140978806001428215244399263418560476375640653795092713547683066335381553910240512238151963165001428943204427970098338740169341609065126797520103787755862308166057954720797824994753495845357204104311122218987042759762267527795663321683772016181407872563615532226914156773207838532315930022086087443423914790418327074406617609563391769026458413895713806461503255699221222356750138348965996423870211591014592801826594624924397534017749734767149483283131421833766070073853980990114048185337859828050539362345938920929563383047855375884735189218232926352607405104453888008057089155655906039768446856960563661261885163333419660772756026918481799874464814155775158212861747906237774855985826947154541376810404869588140710923423565504051831132225759109868262401624404229437609367596338515741522664220099851160802653274790705501299499089902444900953437321763440836603078454257576161374718548192214529811060287209966273726095467972589798794798608129849131579620316097923780429300193439760414546993906363988684783159615592972110307885685854849955372253946592810168760062530448068683399523642068820128007559917140244619774334838636541383225891621925164728715973605548829548389569005091265236153428107172486041727049103590865307642005361562243088894615636555669262122130463808571847933070885646869417828052324016518713883829589675745453508774072269408841189824564672221715551647607462891369840052289112214600623438784579796272336991842657413733838771762281508919458504114664984197921318289553730631423348920742968098053199149297340992402890189540499913593753861037497321336246036606887201608148413744487664403597020724625404412957106575267167000090287877355522812859479840394329957464532181688788312254023691696281252437433008701416595292267586356977584267418032762751363596210830102008790997154144871085719565201496746526207070243017563070251901262022931634676102040634614129989292948110831166073063945831048934691578174253026363628087516694497400197491815976581769155013646277112889524953645108381429723880726269126606583176863063453920003414929511966113450464782369794832926778666160821837124450306847466451699444992412533910084200637215533600606421173557544398768642168676131902751069542331392641889007342913761732157648976557739752980929829879541176773901904869312217408936086720110107981900867455438458383386671468873558404491353219322556903816621426947120955959897078028003035251872500120928271185720721039844464404570355499730682531008495783114146154884811943915910590517202825745243128991365145171446637324342701966120000643318535012067054942669641057723754054993827981367197579406633169694241687910735898400451105251411686121203264908325584757502588375435300311215004326164156805589402755446449324187764475758629959949726108058007675617800257872302205213364575158989390890254786394951663710399746241875749974717132002353950312025631787364513086994133797623739979086305237792062113231987842661451864610638797575686255000442374012965445418545238201856103308974739317362054457376539796134222252763936419229399700575212945870155471146581998857819701226829110451422090847563336481890128994855194017704011175948689189691526032350084507219226240646566745071047681296122271792513813735628795592314216796598190808344870244295796742269003559216093066430760491029930621065529872988292637923333868158344412890153805466466411660149649272678915514717769115851252789771224865032930342762183430959656203364978632383484732315547222028055645005895527054798755155310699390982599316574386051673476883414678971021743837095267432701595551631506384150176300804346866798987158638413446564013431993847585377521318041144436275149629913975394554079410341587039880408499009448573344893798193128799867099994536452386576669513289404776651167357740911626174544366847500078803834393731802294050871580117970348088666248264850534289258719028696019143111054423834310153129734019449166982253060975963063225910465860920935657355178464350725396448518390670173109459851491584940837164267290149324948612119767486625033127368530011056336036551262800909467799482062768266592296621093756857199321948945960090953031931211913758018232415241186710570870017477534455508479076222854754228960139657094568437417000377716514070121914234021773228060600762581681360844189059816764147290538519168389893073746510750754515251475480360516557626000946328029460165187149712973420903491676041902562988006397422454207592516565888637435085682388428072866582913792304951700856284295657109163530678237124408133706205869509624058147000431478514802512901257517768491624988010681871856989926563554669646868346665741212150011315669291511129563532340537239755685294728633785120707182618533217658106723285690813731471782614793697029774939902930476357060141625121902894390995262328772858658735392745114442712420387110126098163434306274700310568346584301275674747323668051214949773065655621484475409746597854611863040401725988235707569666909499096514932323630002877239531443228460321789651856159044225942737987850559805877847556364759119808550910805764583235634667601936762205412163063410145222062220450327883335232088785348459578508220428731332292970689432047277890854876193243676966239339011742494616947150736388300638701283552442829983474027886892216561684754894208358499550111361657754714467196948673154697418581537355114626468090340978478214840080565983509930476301894047282326756696978658495336101342716036204324954351886224136133769517164992532370629317037037744096735047584174070921992771463688175523016811010755622418097940145575036892220400643230522424813232003452833241486482089363060117890159700933825508362452784075813023303168581410634198061384847814074503455643986163730499102171802746218280893610143932653053200950676644227870818650852881747300188063864658124768028344257847363561221064429456200028838038236136717977943712052590234477504351596607440626399467764690924802292419026212470616339937349563485376378122687976301014075841539275163462417585641427860390193723079186457101836799400593975637954138053313699593791552354954701642129950505811242351064038562670971632682830115210397821166580378176462426656640435294584389781798235323000395174115153852580639874653326529743407963633614082978323188011403989323563958982523952118529624499648243233547298241066951917073114675075522215866994105942010376496417688296848894192527130254252466199788774587320675024101342116300711746522880211174538690286001155260007919045387183510285000791341933951103493324821837713515681644247442405025003615310874851826952632103039555219349193776288191904344038886272966769354598560038442464269380070396423981131916894481869512812308718903745053839819427243009960953955266821970405484915308524467564827112879469020346402679345797173659913913094124549078900449480000710009643249067859278598753606843210624168613127017298393945593115902687751009789268029379592901652590997926490262660083032701091888988814392157986220720855522169200489662160707792074823757944747804049713132023458655789565507712436776729163495780078684726830970742283343679355758916066037868214909591627184874653564296263142762371560322065408140434073632061739431568960484882549350636696818730279106155679528186114193492208062163751630830033126731209723971542347200695403237158016296269497355608584592060157046958357136614630252617011705614719557065988049821072804056948759929401974796562701184337329936396861160993875457179395621399596159319574709860921300059960771874429223257849938719329818738107421166332741209115149674103320851781773596229880241145013735212195864340457536718614091761267603999207823691898370169777379546050780233170818354307020004013881044179733215183066908319914539579235659748814695684924633460268893909002745900884887342998407799805835890950009758684263683118037188774558743849537523873566215491679375508250593062526800548815261350201630359916163075579935600345604222560668889146945268320883853286258921291075034229084649737244364900028281182521642681107868462768990979618245970122604922535559516494236087438355074107309684029520315280465190466857197004197286344335110686268041438945674902486100654663698721921029295459316646969385901483412835500609511652120322016458118139802491145580994332785952982945782859449119263362590539496102228925749246249815913504623283400831751054545857952340748820557312116920814942042843108009349707548165346078485517652935797476982451876401525287339582254082757371629535723408744662360381936205889740996529278505752940417706667603362261406920363677678768271759355819627626632517586546010961004111877686129449137515014084658773367011393580871045156250404330845551939572482961117789472212918528520437243584826596666709117210814963973887284885256854301210095042527591494723418958823745667064247316765851194279456830105369072624157684576693788184511152477882762938953826516838254674855133593558304203548041097449852801079712494012098525404568329111312538885196639079067345735145629281132671602915969754815755092745485197869458363720845168889432264510398784188154926667772612753136033627964268984178837086406223944416167755675186995293727646026836895641882129642242982396717308957708386987013337079657149437887425937202155719069128428706758538531039979934053037806337181100767440785931277125035738598308287583953065840835161833314806925076594416303178126449764050829639096956221478377932661058949895447433916020197323606470001656599207520681453114264369800293329784335246464364458593558455779770743869999448863092849923587026969840705537162944872950212620612345049679895805085724886865486155774878219028917304830379095362401105080472916628343737022260184994185833291079865270034764867207048095394802521243913035773581395256713459237820962231754988453486401622850429704587693255547650972795835154953880187974044264718469336277058371428971919774904397121292302575172433617555318065740327808317441660383358691540375471198210740276478205455083581376316177800045971790632424272265781640718444761065058966847508414819940046862652486064682205605243114297554332394926381244579628198655998066905125993263562693644169948905756397355624622521283484570709638320502826114090295658662597785565474126478302540277670714194391962142607216604296541091120247224797072608701833196113721541831936939090312403183208163616373936207150983132734260649207782324655591909240594872873600574612844838246692464448886558648907107373245460080194140338916134733045754199966970172872605990656506977620077181821817924075270646097758554434471852654970795632857411587892726056659954080845447474642135420005438323163033962079481592255187543728216830127237749614130746640548933198209929877477630800889718420836675686139574532781162662030930514457276762270863877231981526062329162496191878645106928130530312330602822310904966977722399365968262965576046130433245048500071420762186645532205582440400258783651764648650679041206190226883020650436416183129504469094666335306643103384102950020082459870344521508372028021772869320642809648547889862407122418112428555399055275908758145283823974987250257142074284723837540598146512401346153003462252699302324030936885667586500613804820250020750268783638107292707291574786167405721533215635599931087480221804381457696717229435859992536213073206303311112863530706428361884064697709112228492767688453360004852503695518868880499761068453900941072358706183410238846574372428187873228256282014443770471794104332643275273286424175402334288014864487586179133616940435448636328482120088059227804187231287483880300033901661840016757796325309050374681505588734014831492306948480530977810244558573442273138857811468118171462378643275625476558723292239850945226702775129962742577707747021608613760332432662371600345974524902577840402251123390108340487886416016391912927447221124190187935580983529025093030725653913268394490435929438897387125996255474794781623377410870727858647936855854765817527626802893538558226026480932025920712200711564714661997507029030622729944485236492520593986046994303661797979913108646025319801201487573788795120435144343531836158899396246388466684568025118192065075201296780061321679890653287963550176953579028244956052301403216907308174146331412694430692478209137696982154451122116221568864662311882353493730846565840525167569327847434828890197675006497798723014156012079359223450703212558612682510189801923716949626692311427028558261087945478859873448166188421612993402287162459694550419675741122153867277174318985308848100574216495396218335383524373410669301979906035568182572898305773192496926494062710529940131993408568157279302800588854798302147902522235158278482249320183815122805277205067473290167332351800696725744198851774378220797534692459495095221580575297624363760639661759825691138846019361670405066053309652709773614112366839169084780943752670932436583763972583101581190923717321240363228853675502297007301484884586952892335872952820432822591928525327654121289117423750193888284157556645466062027167602214004033201248660371352593295943851681842108019956584579940909292043516377918000755597920984857241038029112138531139453424913406648629163231206792102469575140657075073878101502327111264325600416437378811680950669198003459861424076036917575370998466823186492126470116476168471629248742524201757892802763758230096081151499961286140412372828776226402212203985343796348337311098482030046856068152912285651456909578743586350452809159242967753898624154865696457001075076069558135364932301632340327843051438777119020341043932701566042883835931679925947716580981224777209316661729667369355715528030395163635444898076699477061624563336646965013218971889548616047077220197443506105115571281465942308481735108157965006832020383377083954832700987487701611855166547188157977687403559003761491219666473959950159767869681402183585720949332863086970778110761647880077124241441579393819500281031685091732871599712824620208876745393833980277528974073823766345076070062005077980715314895296090121601439579410687639625491879414789221481678813768100806229478773103317238903740079997584695732759875634950173905490524571875132159854119040433343646331437474208428696053923366131034556459960068899321812928723220873329274567521385237160834863344740934194077663299222494566541809799904707400746473816862808263130493509103125172661717098706813479926767318610388702932819894106101053763880410520478916797358483882785080465055986770681891656891025721760586593142363503757731494108879084807109356745333239520061527484438794594740208241962172989777416151543794838221683905414514485037985518456205527439566791025211456495736982958909250136751694439808113614006697173268844143767035867214394059105995244334903558099846798976523014847872413007663822652211902770791693713249716515830444330257222296094805755680392595355354623338594856696166390770250204525374367222674694042583428609259970268065030630982180638157721447738872103253744165148303033326256090053131328545757369527923519661585766308120497015703410488738563665098150322804511200051312523368092657872947939559325243564032730353847153007560873987808341296738933006041217268304115055074230284754447060120824238218245418581343417918113090144146892344895561945360065746418379836601852767131541723061686242417591406358790289961869672991246453196888755300765462555154197719818486533604672589381378187524245913403968643979457166108145311482819729345749110303685328840901689208448030718644556077016643559048959590191871006203740666504337978726200604339205530157363121004144801888395052372049797458507821703647229991845353080914736719167627280659514242578074713956076046739991394012228310070504797805923236521356894683935829758589722983655955903751370396493639233763845800874961134818559340470181861776369171370331046823817886299296383661191070519285329706298636200091467145183538755961330754012425760848857676580712566509019001433721174246386672651678499941143179784163708729991843151079881221383094266597990925885648830940433023885127778224342537859391808684894104962961108739547199257091813361632236434032358525469912029401679929291062119013003801117038360784429962476331752233690259094643229787037372866691491874220757713917940777953787661680284945284588861344424453382568889124762636027796392621036830845081257469889980219703997195824923443261236921821866992564986604487015810775514818599994106842875801384907193354944053668384921846292974176109604287957957286659796128327524842198898322007491972807077092295867802883024584622385572075850579687236993073595250620144606317143189338702768465663686772212821275867675271500309381578486968268878679806598955233284773352042165410865763798610822698471205339048527203881876357773715661612776179494188090422648300355488551030849175166428500620934032285770842495636371415059466643167930346707780223570354862880448183173372091815175345328359171058843797919246265201270227007990259720050521820058640245976739904769276998277326501579309144430104522271190016517735539095297134733075711831488938747650657089063175211752415744368098000112383880744222335003143386298230405756173151386390266712395587208122664176565578916917362297309082497956056274195032722020405368296238270247077723838304819953349185951999985171952981809778813142253737535399368499149127447270430265071583777860044679602364984423946001059973930141060081615752835950043281093391519497477747883436145477394839486594240524348779685274773546898616353717697940014748692950088109422997715893528275918091001263173456333532242086533246028400930830755531684047268410742312572674131092786652898621061123527623429906641177984682442530849585620001824211386829014779011651010595572114862162663541607874137275969486864706331452929784104564726415111743800403265102727735687768863250705672792309507160849547024704839935736846766215004485190188934103187133640308663160359615609321697651349445251067393013776140969619967593886989682946498058190585845748611671678054196307798751308556885805658838890383191573402888249890550925183026771313218170722922257536400934307296051601897622574884944362102968055919769610017088571387766117554794502772850431311392972157372980342220751754549247221815750209659216477357151022268972207501480513660591018496646951661724838460142735546805039965569999702254637543388556835072760711801183612350761151945957858142490109002625252789394844616851159798988042947517633602254225429404002949480259796699069363329903608790229327343784967658403060325680803338913830347910148614710067243091438447551896374801255829128590133523971906648954729850187509293510886443723611902440100724002530867852712684948098450291730039562269344129926134161011182204617986575042314641699978798390507734937194273188361856018412780456482921928014687040626872011881217561139415790861644389941922755681718121751773458993048778295898254283268136666082562991367323047401567002405766560445743800304560101887566530084392618609245007836056245839401393878992754817377156471966450831427406439065153514795949826313869744482413649595900703756281819998401227064251141630413771269417050790106744363776505529673929491025586907675576500721129354619441244453077655843542919034883706810056885336263591713350422135817352981945786431991415489528608735196460159438962948845925306212249023623035929171655329406230056325337145279255559506472047867658140533416061049536105733659626454705218363983129572968109459927254812070056394198197439280553355654103799922111425409886315221547377929218901926888020642887508803573376688657879257725985136265352897100386899886209396328106706801831695569543154292607843651869934352673894370644514355360932689491055761126782208643980677865384158802412168212291025805503648549883795554383513915203867027843333404192575813016232568192768038087066801888505453575883451766763003704334475051792742989275704590723610833537673388724028901699617571381779335478849172976752323061431375031113675080637175298663172153341400179726544784020424308466998511081200861098011289040737828819410124267625797909276831428122831011436065487995797316825540298131315026435254728220256136893278263944013852031078594831111599471133722065786997074774065811049413651826591802635719780943891141142110074139707801667334081638247451015165590408542564681061741391214365900178009445496962757657185210531035053224469130644390805536551480193318141530425020172649777968226237210236803006542307515704632638063072806623522101552140233096751571237277261419133631827365746350160849724975569201333060012446855797820575351681221354974531850209589608282514115207773761219893645133716724987270593619666661237453903235434648927450051878091289860039485158700894662446376892086988315186924308563625753551605108653290289108376537978045946989646657970773246328436957533536952397627164847912473240720935677516065973460111430084724081255312217788954745312712361251205703205364275161305355492120434127918305007353230156843024644023110846064585471015975601926112508359350576492950726777474231550344407047762209526591834908290485915166998282587326865726069960366577827211774389938591464380981806509045629386810536165935605963600985985928872606662484756300614086161171206241154457539283852759637545085980464235922184472306078068055902452440960416630903348802959473967881484054624749456184779236689812232821253768243936589045764394982818184482480904676754548178352253990463133668542519066504986525588003866906541511034407715132894238647552189698542010263635397066680273553072824112328254274653882785343152429998239385724044677274311628877270518356316043189370258204383781471864302222414418480165336471126829841638966820452398034415987858162803256838311704969226168302672418913608614094848727653411741588519219247595012570826096900263628905423111233433172318232272801619081385396248668831224142602405484711349196044097504552253087503457168330253331420630840266684402001177555422833226189428182075496423873515153651920359972967096269504630286227789804891522658928809444427147697748476327437278567516435155843109358026763773302971386410179948682730521589872654394098957746732565256610271576732771604158804620250711751311518169047761113963727492938217010081479113454609922652612712042555882942119173436377369400425239738381050584967018793327251451114115432001252330508170424679541275138215782756126142844277212765941493550449897783071917181141568923393350386702609477197876823840865694370673096652560641399967711236410828673419894354553533825001113828394519233814043651828340317015499847837411825516077178727706477533462772382742924695992114402572177298344400821165490747125221411450027007704198996688696872727776502444066570389360855593673915993855059251498856298875461461415475660371017254100738595566550209422365965177501382044521771513963289908849843474027687043733670239236771629365492033759184436166304085190221205097725227285408499011702069670156803202345106573045909112732720277388032480873515154814606958159332303009447470958160681654538837669772678243664564601618444404736466598783009761138918742952989080491347933987900589259023871958967320314918706282654872404718016249771145821792182309457098598658183479128595521614712863860466412993984892898932018499736593887756684282741342902879659395174558586762065437890662025221611622989775001518941085646698757333655822899514246009960227874952415790392814366473784901913652944305471202991513904505193025111834411619388906041488790139485857691186166252451314178527402408441220407870401277604714982000791019363822580865220210551035693002360670400845252092106317617520910227461433324362491905470771818013262330705280345334501349084221482049061567310394875595128998606922431117548841488975009672302186958363439019674317799636968351654585966846913009416993323913782319594743129108393493952602434423188948086851279301634328873004549278317446007974334604858076834283920954305572767837263651531549946800166335184395895376698454951051810492355065488798395613978061170027910212552883572385362056236618975236558056337849557175752958463177817588588245230172112988826184417080645178165477025077173393267011485164996635788800808967143311212775033965562359437373494875752166897136897194424905402229231260400710613326496375374455877089919655796107318037274950770614078353730098869904918619569138430622830351806879355169448228645086239754457982185579142148670316328326044389120235593053641377418690328356742863839010199275250340881816536345617353450944133782771572288255974847796359803944034061034268120926672179596892719842314641436902690102248150493484283455034580912219487214127259493065264932360940054711468818045211760833358015918995371477963151083068623392252785796603135040191092967339447600642682105680422529958870087194385462700102368460069545404767421301298662032968006318762176381496406719619380279339192625789466016404012476926238721004703372323604463998294529310301999871169657908386468258349335983887197052840992059274726791496502285936978441503219595124472528943287233355729821614212746383767394779798779993176946940059824472954684493613484143716269047115134207121849837433536577146368853507670285780828798181379455226854217637424032730646749831809638576852038341904194827114941460128442381777836641734694120169286478505627109350655086693783030575346574108370978746189707710695214938931763476574047049828094126790433528053863585924116364752787261217397941393547425968086547510261216433478228405704213817917332239764297693485630360821425947153046220453177461142152238637255458095777613759501902584535878238921737808974093958244948712507146797770740179245518180577681630696156411571316397554158333666235165722610271436423349061930047714499925138176214173288554882188045312879024231840050193996522655619408652000134435886384859248288913610203880490992670138728988300606595600237175167038767378197717231151777258220439884491113615779446303062110461996990906031516535236729312924242419033832056121618764579748148325382242477260200090782423706851084248141842740829991843864113611789195691877897928212620908583899379491570674931072172781417147329320339041772974217368898395623540906017594279987050772964747927182544827622234521885652341168265132564259581002740431087874427146139724029143202536221803611494208461244942570450203427241313628945968955637746209762537923812424365209170842780927290766896077881488220396023788983940681137457589579850405757180982105135760364262198207102011241621931108126356127089860276572674709987659681486087800838666731074159207419255999944215233989660334576995156975549404211374224501273848870983394597865373097075735731882329205324833000087120347602255390810035427716136682010406543460479284202380333398191240519882406252047241803348914918358251416973289607274453869341737414762408427572890152099307655990740566426069600327724279160181641752481583234021798314067211342085306097004099968295337633063106287891980104868551743749743025223385878809010801596493454815896311083284156209723215969440468487584771045538818564388220027444485659013265764093969333524038035253310553363935965908005805477704193084985779774006392470925087505997167459275328653579182200599022743669682546911805992689009455973013838017285249434754194270636860967577193125489032871182170696795767931704941586541595058851168065521706623388937911748612468737026429466079516951484145511941800448492470597524432051454955112744983458718870900668165341088666199699310403617893822404088835265973431709488118576679730021949342154402803142969490460416793185184042227779128216878200839865416642653543596072205468578044493322072308582774297109032742189389705883118854815623377653949189676418438954606390753252722040353272808388891978813656833877244142946665980820409138798755659482752051641841280483021491454175207194355930905285995207477023061415397279133825636036484335221242326040541645864949682028675106526200219707048473038725193662532403237027054727195065465958526738874824354564626191495389145813707815664382282086142249865269629998185651091153496815263715206108626298193618651298835889570349252898712352139583814050110142928338861379830076736116221030689456475615435624349827591810186872469435545855675096253535710549469370579941454101812508769479822900189301658308695043271946257135102204323974060681675304727089374102163190114618244465367824613109645879323831447503149438526137773529896142211817727385195714221138480165667632292578453603130704256594782578704983865469624972866030500776741041352731457437357563941923691564072393639328256289223474587009902461002851287971830170688186672194196627345165620235394750059092316359586859371090000347263833655100684354031137867542444929634216327551987722535721553337409246931326158524182535031676299980133044177123305732004406126041628618945987496159399930335747153157325803490558678354963620988246526995876812133624431926807274038385000300308544797514666949882674536691640291480070122865853535071459264486919919365666253597257647768746870704654739885313292216269584127462599888924069040697287953228632433254005208103935790295328451267546516669789002961304692820959180378143246754788004994263247605232052860239966741479557951213316892996495593700910964630833828746651124565642614858663594345372980812787049483943966317730267331368939299340137747677778021502156981100852529706096807410582900634599519426398317093289460231372757482910383116926991585614935192714403744966998277154436986747784470969795575165954550023923060832861801367595866149261092513687057040590312221814695321590689146676148710481969739609221864221981932895680393289814102998929210521350460650513407482408249892358201155094977021713318276552465110198679694206375134315273069027435091379355482115692728628387037808628830998259788668192954329447842983165497258976572831549496147571387650291083983265922012224635311131685903349638481807415880501325671802174896185629422672110969167688088512860563995319367128432062754753788974546177006588633033648618774774506456789639344704332178484196323573832138219645007944447761866331180502321473585334272718377953015695915139877282040635900268491607498933517563628447708954284222626163686100955030773938997067263472303246335128653885439735541952192562414284456408032383884902204501414612569623778157626859946711659643669385494632519700111815201976020997594280682305113207258774702287683291171649137772733722192021558440361752566812519637376703088106417482545348845032770312276869277870423740108743271620416996228708202386798382610942889473523302668748610784922304693078350963373963192619885150258031114804464207419524210104216468440545015360887102773542942984541325167956421929946906982015244713346276687172077005809992257722304766349597736570178877776133270071521747029940050721235200190967388261788700387217494310597228309549522228065860016266201021405540715664255454405849463167825366790647767036156031892236872254903577685966917495576896121152446783323190665688836227552677028011430943193855600532527679148988499827710747164486816761279022898881370386430375119083327123477793905954749103889361985439742226366814107254855990938498478722855287256438649338878582610896076033619767049040127561522655669675874076679299553123446252284837421708227059841831008116726168291561502981824432221230588205009474185944043024573227822405846592486197686416474730652273472334480220586083627769467814294375874064313522562804744248148614435424062485965368742370674181423814213138259114706982311019190982457055382865304148657514503872695343059603448985617278696759813369503333576115123723133600901920705089295763027096969527320859967871131471059048575322164574041650255837909984338487244637067583320677202141188981552046221180512820917044914537416849881298285758227741695441785827596557415050646281806290861726032093590664080270697559603264066591286977741731286789767948468095401663659670965516156647340761368022725837870924829321394942604936570952318230079037847274292922374938434806199647596282753205064011959078115591649621105978700280065648670413651851669157849964626385502151104200883225532428103715259682010964693331177729941829290430741383104884547560323468710415086375100682640118676701309232059647629506403298123972021076785209708851749730425920351797342537261383284596464610465297802950705502528394996260058878721558782309064079111018219282643045896064589638589453805124338836079223190664570189360127047973338483844830264500683743305823050301885665469348653065396165928274163525505099981772250354337051886674928235353677265459474075023878623109748122208983588762052393983507302703806043099418614547972130346037509992248388224640500729553128296434792057230308058953493796894166720865251868044012180477463551944013674285824891422616783436837974155690530822360114002058613258267283178767248261500834325152160531797227662335438874333215735574993579214260342831212546720226577209241514838857287438846497620181793175869168168365184717881108232891843652011613228164015312179344552695298383110171419593451479716411829156004040203999527225147498048493075909680579272546809961589323679946555587818935032858260650415449203456634001941910431921085585357237884625513575098539741776608930941803238507851691908733899715784669437336291886409541746072516480185516580760110209843968622051384860049802493836843984197347487964123471619374453701139143947058978057082980135795861041713559977407458534773215386027097618769051247291465919315793055897891763755538581547925874762612889246177694245372332309252290272140403477593751452939988074462504830814493097027530585518741855017158030261527781371273417655688940658350479951149828437168195755534223692329188681503277377402602686244967962372616108504033559141175319788659970852187123420857905589055252657963553598747274233890975300905814166062198007250479759111588877932912412683709743114341624112422765687106388378879466917734420715191568351978047696704478688729879863830610975337268973937228361889075885582907936951690940009242167088002654346747937340606041745053332970401419944721351737464553637490688777050748966201858629593473108086467621441696528871543073241942313231221197810872583063650307617050094261419121136166197011387905740815504590753968796244042202286415055359653856581081967935800729239302725148861946951514924596442277966390157401707412072095299748152645519658803304044701839780297781512633555037583828275951032454003172588675231623217643828165331967917292491590975236754992543060145469445823765055020866510943446085632013369972847224892826793373424383963748161805475961260282422715236619738946295245579091594482079477179165236240999028986213252270529567858427281754507265613793226643994993657807590311484109155081902076255315790449006369806348343434813655739355897542879909683393645843453776057241720932835267179556638150246148773003689203732892333052365426770096004588886347731794200247303062036497351376000171669699243377432712858991551892071177939278262588534369872219559802743768301940209393703383005265503465046745740021918423766642615480636891014068605294948130617059323381634970371296043363358727706944911983098110079038836190046070787872967837077493979768252279772071030085263755328674612496268390761064689941687522175789691623160203148985435421344058689819086093306318701345207077765359980795292537153047514448697883285328205132835380002869816855089667815380484905035688754433862031724348991299048978425932762008861051741282712689578243984795703661660158202711644150284860255311111767415383640822956483879898555841418987948828189064944756785175286677613454044058047401407283167120279542926518375879667374159684171814435173237385845466725120335454536707801563517437510653387840969888161479893487932553354615171018060970594641947258889041000741512383507012433986876119340913492547828547132913503077265969404716362584837234487979627185807746249566783580344890137710786250234088414032570725685715293452008300678661985519322174893476743760863305502230192203522185445574814751544821446583840544326070682076230022752018763647054491028951979449291524467080701228591362499656627893528937564012421923382853072370174552917573949203991410117947148975516427779154454252177904247597080367184084501542272296503229917686808164689155605455607433859177294986505514996766894710725244177869209579320312778286714209847499140748760478748796214532660488870030309501330373590762166825075132689168736969502083483138434406225211456472902194163892132604993633438514239551265044416097786968322376454323624517042621048600714375296994765113836217851812842027332514051246898495756675967673738798144520545990411161672576774055960761837454186941594166677638746587080717607260551011874208756414606582498237661038018332621376755972981545495732874887748586477944956922843152669340731068384771632160142166225607104827494903451398328979263954014345032799986409214121243213099191416481917449249837923612440776501140342932145682361265844066146118464220830141857865898615923729918881576291386190524618989837181286885330299017650611494431761834425200647096199848039546125475938258447591947004302095489964022825753006748879895016525862728057269533857421538240929423828131436762611479725324635895850753451286944049631771828136720952198914920345617092423712909635460477600346934841236827487282782404825251746971388627754564531896272903807446344556783602777314885671012274929418873124357299783360463446735243002702482804774374553060178425800811327395916521058199322602498275402219622342581866418224175463101226904862386364678152969086963409839061197209908686533839513587770674898084973086899650325411863990282857035584793714157911679329726532466485674460066857910854164559161550075383065346067159735083970158776380428500419741534192211770081568769676366656868711292002835439724197941011317223394018867506915573044835897830017217357878071670700565055019629314895552033547095198476799272692246258640585943655434357412720865727472687145397698236985408269400679213680458278870381038789122630197174575145874152841521937476451385001917920535817021257796281910089191117530282442800936417192767441155192049243581849575849473187790291761267679626426343614899306558248273756935804371054852899100349314095738726757720723324358226033332011288550489791428200782348400303278261565059523228135482295510252499920264877557902148056154701200880105735367235300658834077652650906167742616746993113575162426361893461591881294930752623878686744597521863605091992041865106437052330141472301404258271511265767164217875743945551593847116529518530027248822925850191370172800806438227914038147999403368653764138278116060300732378050192676037953799562087978603584706904209224016006061258372054107344679451910748621204189633979560767572708503433362553225264557724004789916913794356399351763600519208693753425365953938600558642675676031459272085378655711703910337871809816594762734371919751063850526584167123235829480679184616048271636734299470738252436046523872810342982619056838389216571880717416701460427872193267387386237989299179738006603851029844975038911353770611313949246712874853149741597252204378520967630632173771123899277337983343335246049058583852340504495420509861147982033651625556464765861640561316852082203294095588366956854100241715870040861523927518338486836464824202058218097730931365996110554909123394444832819161499502672483643496209502003599491726934329928010990131164366865263233938756139547519136261626353822474289442521521402104973957321138187632881118937357196763181324045757662647004102060816332308499611532089911171582436825990026942129466678986121451637418659750163029643527548691631294382267816606999001188735424077733129308011248280871946540903811076485592170218381593564341443411035925225324298462319746008062769680966752027363974979140005047954241198442841355106487990555330980813200674656459663509723821742271776792006054134578040945083178090171486613173514759807791176316742002313575494555919671092326654612140848994648666960834610855101843262392485325588213386716167333411199882159282541673956762373492890192475748824233445998432168256463956489671286252327659334028780230344900485586445210690259124683220549151920713703134171614617906359294918648764682932973320169238722737887103608106830977506311813684421394176176928576459162009493081329049795703465921042685679247282061368306875362025715314981829989255722229402797150040934127384064331802264259026833741887574764742449507343404003678993749362760741418473101524148648736488084643438196186298720390053412828731050407768506276001358026565790373717147881305487034376149580181118677384356336267509758652145525254966596060504910274671602130351292972294006154638857314196582862081723925147266927932640900627411465034465741828273670499375548345936027430354105280501469422578074404325665583601526305976562917321684737984085986217133501465454940628936500227436423556072239514910761075463950038462964933667594737901007733672179148186734831383555861604058367581484152099398643105795282975661608307532148112282169862846683378443517943144432755318011492796061355813449614798948855664032289982073524563261540315147851115916862761847389458506236502570307375484112483262528595390784282096996053609550708161969494657544750286757710317826163558751483192526640402880417037011422329873142997988486430842262504206204812815815784603593068924418806818286216902116902227746185436850114525193230936562087017581685652115022701730597379587508826481324918251654267897605365809688359794193834000093004450671758018262251164929673738231110159131557935127199059337700616926756040224777369797697469038276833243349930850294396275554677870675343665118469761365090433647992898193780066565697016867039212660802290175937034307787114973595522360878027631216736195671800236148681335312372289829567141632088953356462236317366698490067113044121100584512364286150530983251817256939348043079846519413947755314346761009847314230842729928693015630244381852249536141262239071996835246678564429530966271930140191087800558840745760639445412409229789106870636006205472494696370629203933353586461901099939831600080292853118330099172304636983358869213704646592891299898366730746515121085361117011055309651627800915659365641365119397060855781024089429446363343369761543114402696562173293672996720465816372928522191076737109967329609186383282617662795795510258855836700114289440788810706806293251041976457403841780250593123654745425977073985651263825238300116730753445290920796484106010975465202276345149884424506391938950190955919171853973420098737137117705764769052520975795764911263995221055766029417238454401561746657456791113900521471333751945433737689770862141296373731886057215065236600994041516135324874543718490694879073579979336870851818516977604429057044980566611386388753387849521113978783064399763170411813766855899815344462554345669172459317995436325773717671077287181509477452604651948561801562776002180189963433536085561024718753429247202211228851072877942036734909133001413796794119312366222498963287593819202162930037622192475552093687314611151357878129766077029487686926055853908895669792786682465919826556881322782591948353897788214403617226494195269121702340587841371208794123428242302435329268104316234533576956588183924770382060836638284571146665343441290051037130677373720539248587688698999630352212563966998644393098673397838128221642034156219738223173672150283160792631797301908149577595648847259317921332141320733918513427830131998192560761206714336775033456035748784238579725489908224174001069601132643880101528438557344046093057914585811514004181676083450727268927059851806536103133760952791002409341455561357659128696028141217010198917386835013157323273536474637404737260899000234602410044716975874949933623814651016008108472586065442741955916986677401627771205550583655315465993292957277085229417794674501017434979264348636671096526896214223572874194316009299998374915984623071183707107148299030692321052261524604885736490242084422274391096441488697535563069403554898836222641166483961598492367923969136445591538122742733575247233438518681814798952683540410375387654064794559533164421487773080132043119582905638312871034579234434228386433542400794992898063685207972436407166678390193110093480353808184151147823770346547725221177297983158401837921585904006325496919455487129683215745882268271744857731827667731743458502754686877843380429192588306139125037166927876412360951465639135436637286353516943906640827836958712904444050481312872066476184716621131707987525606122353592184906196082911918040777845278381459694772434867008556060344916709824383694411517236272759066221081213861411998293135573946117390059778966580632727384455463834163089907691721887126528283734447529840504031884719870280501937301281737812583338591253774545300756603133580709488073979713315632748662840176924500509521279028443888344680683506133594102176045176029985693863435227002347376580474412843535306347631126471670076770385543694772840040100188089826165124851814093035086504696149697178774554532856480686483485213010304506978733102798158269065354215356451742229801549794450331591525695876637494351723588416571985638780356509462670958932837373406110866438799017800201538725053876842784839355183957526082305183879050285516561247831928436598186829846592015528561576348625282256763055298059914074105012662492330990560454032729266998453515517530984860534620206541977627009738326603583370064832151796875201428111081395466429265420805213919997159774897702428656663669383607210941285756080779302372036176557926487467490105568047736011218695366595795434131879840496706061187363164309981392804429618981884498829709186299552108150978110602267668583806570859529992071035093058667009595590669249967982803538573263975359195645808718105043779830554385890741410252081886391610052947841268706718653982956621017408185634457814615778229716942634101982964689469914458793772212642119930018561850667614057424711179263534671556100422792674128190484079112475878376669466401754914855271471332748251642275199210421875301765146390269325746275256060934893949131744835468566053242143535712821361234035817987881559827058251844654971349697115997060144779998418212379962894289586539352448854808220710822321654145915084462118390289730823997313914489164790954357128646991785565681671912411101194699335696633087950687554798861209817180922788175702320216459749730108176429370283833273481578708066221053591897355245370542860540542673243007163711965392615552141068333012039690342754044413404542589098595911370209464937880608161812568338157757203239362475592213186513692038711465763185408065213162557742332104786375171875205318008218200214863971404360291219427717567490713572854576299691108029779686896882430623723541664041314992297127761340099959752822059588361063897659261122498605155955054520940054488450180358391958437244617373786281337135638958688638115890661192570674171245372230400329750205488516959782968479229829849134400519936509637774441581280984413758011397159305540601221683656284218883264797511966389431611296198240276537712179413808703956586915029269154439231724083480991257418064473783482434956811029002457602748516305823514074478737171351168757513816152259517906347752577572379937816942757023462588530352685566549741439395400515013362894241036343437509675453376652037597347735658696756127825944312068151561872946252502358021637544018092799551600448608807319358371201972415113000855159162692263953356882776221926316148717136028212190428201455569471319557391752967167391338198112838105623113312397933664656918325324190810405793763883649576712156790580312303655154485433850226879021785477374206115381161115270643901819932399748412277742461272033132386564933829453928268628042077878012033717614360699979820068755284820433791042799134446493539052491475319980843065006162427851161928502918340375820246071996272133352360927583611830550873765647144061997202939360496035922334666418063797691103131487218186349996792580615377817357161789598620872727789886728504436033057471380047444121574080940234512765315088269967604968139761932968716286692031037860783392359443945858105204501207209292384119992198475091850356280706465532260129786907016309958804880472816864483861919003506893024059103516211124576562086299484938967664308843659202711022458077104497689481254116032742443514025683393974145040597320035897341643869573912760658143868647782234686008838467414956957979060913370427852147467687657248305715960838200820613051793507252099023935293219478025701457251883250461461331161630567647368225771907416871571512312998589355422297147051592465962343690971235789563610357702190259793601720616534499662557469280180081048228967123955809641697236057377831165853576000375121150509926398559906857850973027696981033591682054866956863007106289582115919775937395453630208514282977338541629590471409670917626891017972934425988550035334446218920744388870044876081570896131572892280760116901950782048719089061981709612719331998840871351405130146729082360528367779473021724645354874702139286067992008234743540420152206228591784791211717868257415680378792586199013200211877756855265024695826118952293319812382386393730839902702087623812547249373216590606705698987377322748572166968402221553839610621892256494150012030379997348653071175548339244390995126281532076514047036249724089397927872132035326615457303584303516486226918265496369433435034311702237991072364437211165019042890553521399719599305277288738287685624030862192538617994886962694914223365289399926656609998045156504365080064108091166791163780391036662547192482843113753262548173879347781287756127100392229226775273022854131206242791402486833400825760472749985000044613125566651855289307052673608856449530856211101915124241703350795469234731870853780190996634770614934718227279220438569163685063345841357603775185239950421122209735388970297116058890956042290699183888148525500318412099793888576853058575254422853915008824381068278443996115875703439139309558886723874347397381332430013438797948014774232132312324002230450083879277176948614467855244633054917818028079917871445363867796451140543687233697165371279256330325825628521305095796073888125076981990646164749555095403494603593210283259588750015826608744115374810115620916662542307993470913544732093455793267815725359980927223580818524421707191258656531250127846889161930127563246856768208335732404561996619922976555653030388217623252252227088629737751762601901716773833827906214321583424384917022535643386398010362979634748723826924991756230706667493219679615088934134578027428564414161792071129727286152150163740438121759208169237779651701688749779488767018694724884356257577059669722456192805168517785587832317867600219791218456996004678453943606606991332928399584606764862091191211879316759858663015826374711761109211364192009604009859528616161714516034006445038982525670094443689453907714160649776332703525642714329511675737431054179672387749282309676898771063173095309916141202405392805379371055359611927873229218373093060022428368438121276934703252146543381021713008155084712196554345683217208027267422570625027328940009878530152614548453201679037121335727583785122726436848403894703779091573584038459687721386039893706172277496484645571925757290539354421457545923699441726366618403137730490407648317994460975402386212305156957556500164448260148323794830340511425288736680492773843774392371138061534118496819592220962846056718913461880565737693779991836957326340447735617106294147112435808859161704022441346205813063250531721825343277674521304073396597739375948838357609759698376420458006643460506579093518176793277702112217153678499248256661877597731904758754942968624169058324994550399460518911388238150849976140240428332841550771397841976520558762499478113265936199733497994147909923930297840468865067672153068461251916006285866677334036625145354121193792164765887234026435669746721165974183324767699428190224241858078104103672218804478932319316956252184164308687773092971449140345851154283697534080823016232401591411804379956880866916541319046116274954246226848771721803706936396007569506659603220551681313065280720133317270346577457550569597299781958322112206210453736030113923461580430135440974404535032188737205132192886919269273185145248072776736771357657830636389629347998660237451814822658965410398160302164307507674375041271403727235994490650199708396213380382222008011311669193319478163870353540247860693095496495836178014798314558992162271508068544477968077629601285384961330433050129427025569284061617750337589136486957798382295715652428342317069851904446825414156054761021209692272747793119883856333329755476022323507003672774061639033022131272251398145518913197067363972524953090549459623104385466870132461913513076303141185533531041804252157042084294308073024213837516591317923748518688889655500302505788301661934783063723054389228691905079194943521523784769123115497767353886543079915337308181448288194110331879154035672007759585187125882503280187263498575755330895061240339883133341387965483981337359628497402994508821867320743000037796385067024368323758844214671149628894514017100428736406019126378856119913997315425450859622066427725582938380729896926508009126687851660333353975909296223638089600832982984044866647180248624885863778549372589439210028148086713395323353645257889096971088334105274715528811959626327145036784379974296126050632252790708571563782387559550255753864979788085642430222749051717669212849438749557019554213551994542230382374280678276254403910084556295007047094470668471881459275161391157376179017557370390429568174743243550338500505223196970854595529117939882080991879253413889708970194314444157930544321195601555061416906713515842482580747743104642789355956024561785951516283319203815514485198846052304126671856621037703030041526074113625798581728491139500140446089437021470359084759007859972742901628591933398734062697832441188149259991503484808646275260653587755908395140675137026380001969779532237745167999898723257856982195238064048443707412835369343382645836582579296931142471773093110349431364596226995044199028916953705326504841318967715105039103692486444615849779626908462602985159381484566894029375056211240522625562502941345269599203865578528873410155042341617911599511428553764716041351882495892619184984299039131446558007248888186331289592974311767788915354894498868902545143328429928657933834746731249235514317284837969529094174801800318917769782576659635053572490769910354981400506957134268481451423059710660394881448203258530466705955952237490943464814571370602840912966895890236799852874877272446697553802467342273391921399047264655875012130761882310455874198509517561070977865557329881584386029426348612353389240155280336374295911580520087591279803503028448146187503720329748743186234313759490090184609944909320572953503760542952941700128824469909129930307176943737395222110550597046455950888569139346876303809389927052771743681886245163230429733874429039028579729560425825404225880452134045061060471878692247574844339489852885586926957093596144032222505762154804727737987053486140324044345246727247160270002720467205526942015877027030303261837064459265465845711908759484360416002595439447640773052601861697446551810295315668866343258744990303544879198462734212462798967713441670383955242046404840671422311282153407118043142214700979798857012688948930171378071385947369113440133691646196641076222177885884746608249409468524719925587603376357335058236078719497930539478988009545285563549622043662457091761233715447852282218270603436016636929390802040582008769833649042397677432072758189786386788235986538136476361342764895021517174269766058312913106437128375823871731383592954112310816841101089139434839649899511502158124447726716269830842017590454970426220356967693562725439446397469201586370053078435056468601945439299349545049027207545639237628694458968298674272387476181031674038682956845221390510773170479024206395102350089547517119503712362460549884224774542351392551111379041936486640416926159178991823764803553868739319808700547765120119266533831215168323352635707774821248159202570038941961824102063224750801442670055875844520858379992242587782775064812046486996888598379626970858877999257164511891768145209258275260022888655415388470071039603140363014336768260173316474667853909828979288521237030229517785294994385406201811348855751873100292023046014691902722996123722871009669992866620014244473393664028895717994204873890486541585567409610648753994215311822224482026450134941754943457306604637210679708564123559149200735501323721994216944672479348150868828812030616932796668476109698666624693857367540286974109036455822443597835340644195289063258772105108515865871681761690396862349618016136070658755360508396948732194230140881520256787630980944584628320192396576883692302485788138285156057858745131581449023510577712543777316275970100520397558354519162682894507158159997703839060265704987259747797060399680879720648193123646423692988868768710231169746225468619146582702040530743503232873997711496427570370086740167884911485328425884406714621575588876034578606545904981568878070416029655862575255976422929642558758128517248958868673137564954258811064861622354010480353291042156836497136931134436666562562559025426997857169396892747218861809008216285054093254403465599595260712757916125109943806747714301788753374650407235771186885271407213064438976812142114958549704208195004146671426353046050379172978353558535105632832629540852956520647179041939495256499091103014623944123307392208751854288551535238054357147340420746536089720789158233809142622972658789213258569258066455736072844511414486557973613996156401614472577420838453738608851156340196702659092815462139772143980508890285108214882791939490112684449955146816681777055955798815657850582283496428678275085832620304708204853418910214525508535414860511143889688355690738237484590351077262353623886459051057769925961876984137812017264455058137109597950449979967888816325525713560552362520027340733192124909617660670216148521668802653655124496937793750951468804025290133984547299120126970397604397891531236897482748735421139695582680038234735634250039266688486243556704637045960347791848235118381638354219641377153924289567852035043865224585524329252400194183876700169091516602881957326729458376692600530246459162582151083584644867884612148307689073843051228539121796828709587679242831260109824003067645776510935774485730712213746893160309279469707334637865877470581823815846874905949028549892568731101445607643972537698397819181539611726763788295870381174207760417859471457095934404066875326020187418975341346117610511077888110705452684453373123933191636673606589553721282212562720362263730716652840974427809765059264640462285443834811002605113829831533544063730784479051758403909215057181754630450604907831763865953225209935141246202204759509152079377274059004200849709398767458817235934096807880030205516406714212758326705404201346832195832400735699835891828340204095333726598471955923391945550223139071625899108333623932388147962894608856408205315260013818266278138122601158590610257358562869170218563288815364994896360193149643392082931267814872977446780343785089657398089196578055899010180024113004391212096600689353650123333949008065093075291247040170611443284782802889618418490946468043216761714110708593971053732401500752282684234984896316439004483561482287296717984488314784913995862413598093880675898473654747474124297465762324548598337852422408446700414233606884937093072707212180658283006470477225010745473036070554704213394709690228810304514440187275947711661244456939641402620391738308279013730270688331057696523327724275906087564825467378148844748882656583805888612157307729418023833556918934274867254677143159828545111563762370890634749888687158591080704923302353130744000936265004149424059765569799307633215753498421995339134859562408401963695618367266764925755610471789408050814615448094604225493223057821444786303012944363123309115067345878152285205506432631534508327909887867585334904898538393823251928771814120142248070967042178690524503180771271969979829972652047196116022318021726502587243902760311017729515952669393428823057452736107167318740584750745117966147894086713730655875961869711401700724270540709375335323182937957253460690137255143842247160442612617295449639791653782494919613815173613071631058451866481011623196707125916652066754550987260464107461690890433601561668766184100052926459998326355657794447399689288272997095386848447368364558900561282668267110758782765231319316893326597164064658955264620017689644528058119275368794505693726314807327192573204918817178713267314332822230235853787673901136330364626789201843013631257790473022136965104637941972886726566761449796957037698899940304124994324595626407807727677096155520823548822881957879346365721712735514804190324141382959258262787258033736430922932922766920891295584122645289992147900862696769515949828388350744745487927290372684226982701533570380120123906180912995993103104701928619355175708240642628468340713349003524805877304160505820239726966206903407158752244594240582790634578108786164491316886509835133966616959707862119916485658080106642644774438197061469587092957146179926257868487802461714634288572627363239936540806747863734146696973482988058506885988995914265158563187394539433318866483261387683164711109945879933835581225368596540643796272822123103098305081702616005288546892380752604526047640196493608126036341775010655709233368193983100443052334919546559644292575626061926072211702408384571669840366453745023492765366485115559318536427168013157358723592412695041178063811529445002407197837999038483307848838391889732785109405906330520225660632343937942500692808755308936953156173169338220615383162850242324064093667525343307162625909535473143148129740819511457704424344426934569672889603342729907892057453593724799538507621350075635328783667821151290368692578884312480907960882882469447139324374168835918807365813675249266194138607678459788830106436800742271358737394462189722671875774044960455873904049812084660347545603385968199281166679363909956330889814112731876577768172072221028087656692638072684640955910269891020280903209431964126302671405194412207916607602813794207309326226394505173052291621327330027916051260752953144746192936106846990141339606697869309789199557985849402396823715435684068175815304041911366824228395624209422229039093619225185030793718508946124705617308409168091801855155374642133478826572277306163130152877281208840269794237144735655482681282574494258859541586902833623870436530893332840554621952940827237252068344016557195279109914936333439866702882578395318770373936972155646139269871064224789418959980819863805355588598450003616978663043352480522875146261207834083556385976469933288071324162797703808419590305122767397621469448524764967052802021285603133591440907453157338081516731298906462041887785481093148509172599268299014951660556859210928772109087811224515030558819274123403198074405154752549532844468465256844693660147719620817295561845666712366037510887550581458485309340675258240552084432057524176510197207524568462456390707564545013561238420756378270551100753019709117926143140319155162958310054558983227290757470655174171189215869423782944201939408040090438072825332622303343846459362391674830918431026428589830706200100836938255494569464265548476364564458729635664465449509933432531477879216837374933803615710293239538143003886841879143921885538493613483050946977666071995240254424569439250924345227026254246745794831071187243191393023524499986835892952731880386661145312351957664531629642793319845533926657098598142507427676421930271518937133429264153564593263530703771662172925714355391286039154643052299529772283566566090617323217817664855637710421191291828148279551018142398458857892472771218330711750158958927056890431849326840748961186116422400886390458888896893122632857648110713246009221188924580342412571894940924913965461831961413331799855868695672256340678583620748377889459924573793324570170289370957098548801309352921248001877396149961688098371510929068311184879869647010604405947044380998045176872582522978221090880749336108801638099674542341460975370416529734498164989824332885091673820443337000929011105896357931610787903160563261449358511429880021766293228467066023086154823392540319031006407167669598886877245435418972710451501906428427113953567208714429802262549158453683840360724280369078812514730911114690492455948000727891347612486672073913343263559635065656732123282175627836255167888105909672653019297133663398286084408946728717884433405675166387263419992936227031817406787408872373465600665254303294801472673062266821890068433155562989368252262422729266042598254117150482175279010879686501562381464571326890110810202657464899786856346611857665044525779273172217604516976293890636611591628240494673373306577482142915354464299025235347975525605650897762425216263882987246795477029862430575619060349381187359603479994847024679664576163325660708465344081904361721474760790147186882136477731225159596344969506190402354738027267248600293781114280373759636709531834596956406184437587782679019476427624862694686532733638145158312412987408011733451169072417351651501838061351404567081647926361946378155239661012743538742122641295482610151217882059208966823982266630939471896030510636589842169469566104271390268828318717407677882693042943434734169984989532491478268318589273228743654426347804244336547849631706196260249543763515212060249067937136693787810298248976372111174453961572778238873245070641897377208324584264587153230138019389611594945922533664202948309116173571243156440073384356431968217590159677794353753462376059421827025002821762773029963884753128285990453084129253905580294176560702499113742332248855957059253209668165475821653760491922304249070563114545159949826396935971667929015397613345438489280828575032268556624358256621956517405337779940971496791841388554057694525810724005424642647607219817902448192746225466722194023595037540898122139075049844315348292230894320745885283787244334019328269106629004290332649289330958923860353013973597795741409625399219093212726373120512091029420964427373179202451497883078111977667558762242060756842785664671743441120532178909507275810875631925877262702493299595251244244948330151354073163447541986508786836249011042071902619189334624984944896480037453156382378558738071354957895401240536453152237244829220791569330206434208145279557782519208056769998306762074664577729738804349856315775515003407359695813886991314379445131889673854136666470057643532997652318240856875118970905446791904793803963215727039736040004299317749254262118830282268341412281606636140421201859231831982282495171772445913064935871461270511321596671858245781055758709332852296340856880382585818581003020055213419504451601470831157961281569206521353578241644587640204157775634454985844704328287179327175599126425694803534876986926402396931173515181323013627962212651755133037438467729524856763456219547463888428798790017920521279948520482631258459355707323107034281328529495177297384051913344632159470685810544687950755888971836992428675268107805641697476155343166315716720758055384558660861874070725910007963352632409720544981579873896284060554140584292928113516992444101367348758075940714874173303867494084909154844574118856839148683626759336171919371925816864699892503054353897748948848982312333912110389659709766615667385833692447066973041682404210606422341351917460979391936217897462259382259557114710288773446287339967317210037461173947705811786310732879103993696308950100689958672179888999097798551536569787497147398312541056136543555153202566429711211777232458626814192873997457534268407395556768020801258509533039718495340042450709410749597238514847205200459723232756218023073211231719104759393717527739469597366679466269046885724742670669066067606722794747864188631293449446098570280003431918530899514426674790048977144341281540220573382009182524730259641086814941219024952619284685365130557268027529070571208868845264392604599806548329044400324300226490903839372636258821438413207695464129349311966315658312791476347376862077628916239317992490827901218709381943676804051895667218922650701165160497071610070240070068858862049648674174746864485297477483791250577656691286001181018101714281221177881084854169293025512757527022625091217164006498670860806998017013125697465909529743560062925713656453652624868491731134016626931754248670493035957460379628909985630345983597164070542879421588712638082792522859825488923951069932460537595215207768432094901885561349523601944362369122601618553539998776765092974175940775751299171704753776299120040798197977853993512992772950297465079371613387451804904136168420530475659533008666483288013171388755029977815025554136474591778706570868336650867058253933866314773643565156127134997687859661161617254934556240539747903466837292598392822496197682011222146670796225231416325835178490493726583585471737405855616691842649338773815390803465627541839468661886603865461872724853925004408871966033948639775375412362863297888317235477841610057388837516798453936058913183173816431816669079808424410731940777800916413961698849955761500845936975074551584830994108691419372064804618103762526908117554470677496153488143113663208359585279679983566063327390775737946913490207364400372558293980257987456582381237173639894462013059678159143658589874700343968596073859559942153524458789766424392448756081627686294238952027841181735406424767579495930989761987884709805140287048835208640699661742027000628897125003945814018006351305198784998801352653345089191220068551929157578616989690387156213187019399110969576252162452706635003672341487561336471763247048211842800963190903339301180157849030531991584787176666409554854029697038118818497711412706886389570385600434189028096156456120641843136410414861177288639317488200763147213938267945771866883349504274598987494417874370777536387419168488718048783738876466610683678207360761948498760587780606447831637986530116065454744043838986833978524207464274163128870748543587613854244047126227183442310279434771735533915562580350882600195114549521949033814719846676314321015756465512110312077193212989646404989548213012337317219175454649642071899461325099060912954060880305084275556857273979561898901251371858865970481952932591192715273691083452011067055152765616432194744912944932497088224417805233440866302225633588575556602702177250062275245609752921083598424809102529453403486989500649642920588110591920604857730503076941964997960186417880889954135273887169809839389765869430318619526017885117678579338920445599878355131051774812513888856820262063689835305282240582546368255974804603303356780379359916210738588433027968365845490467684449681096785787097864281675167293378125754417745120134688437413147014184864768098297462207899546350276585115806351611922696875416702869225040681202863378899484956135132309206249250464376659239879838353419099803478802304298510482052315198111688113268590780949925693874030991704281075942902988051868091353450039929564706946528223758539506047594945143427673400474938704782119153504071340687930451666518007947824250014692124327490603005741403725841814277813405169932197433591866588808252877219831654231335072034194869128808281655966591987558625151964772039435270341638415051253502940876240620550085088840609543587924394577763732791362868433453207809888831388263290477211519146304988001844041621021611268120657717722348617012845440679988046961805021890085496940013793370598058909789654697842525793647447242568817326173730331063746601650118161245833033427322640928598403527091984713943581720360687199235271169483469917290615437494366641645953828713698035128558257718892089290886846007870079055334230022294566664675985022203190280680795611970045273115516355200103554966049938653050535241962125295262573386312451593128470035571440843914189773354313598471510608464943860610231095892130672266141711237267765577999909805804815982063612694750231929798235465498099614447279289991787360533665320769081498084150076644696136124964373939779041317026382586139258131353971477975937404615904548990974318119946116129683699637099422227528873311832014802499356115669966101323939917997520398610661475209630319160666612343773233961222833593149742363708088780027453866304873219953968011043101537615885069874329479815049715108488819901231872824109779866420266718330788106187637287978077044616822710166536904415878750569879784076160498101765599480681945676968640433558121021062769277893659694659718745103877604033604792993694217780391450100358913538734984887782666074493810083227159951702233374056507031206041772347962339639726799060452600009707515283052072784014454573112718899269106844286369730731833957660204534571827516439441439301990918063053221976887356039105927433874372256377647022923627662444118041485419231145855979978602682478015091314156191207031296043003852438580780982113914527980460371043274898664425481272492383752443096559248469376245229266023074294249354209951706756234429499216173010727965072948169028444034112503271564919531246362310757959652385053649167973827376203850249415908025678857179173625344872965902431836344719614227096464982528658831417772268234821385389102888881364338024384860005372024000280930075576481099500317169383641188484751900621389153400816791778108703644841219751065622465480638931635523337526863096587539701611370437496795190741231391848459800740271630037738818246430618111731431841299803260816917410193292978307048191528553667357532896250670406869802126762424111930315960217475786383905966947048524264998972035172866201400508065322549759213460495545902258024350737752538510945963768779798183116750241894118205549577122617442598287433165520970431971740664585190295087533644884303777095169771624452102924149998395770368227184398701768337522144865541256781828588450978177960768570546341810786643564763625876113747523339048044474714818721775670504546352458439608072157574376159100182134478021748942837550945277079680402437220836127579314530799286566002960862671837479624102978184419069692345223851784414958225944902673231940963848961360741050943295750308150185890897632694213809205864340286308684166065078942016262580847141818925592477967296134316471226298564818166232910934186324279266584513359909443736961993850798563761783365817745337678094928959193875803295282010153830944219331161991431143110995408416867077026421814976562258138489363219557455495174597075800454091597773458799624245092904129400427667480571847659286692319651646408505254769705179303384593842161748221747399191773116703713198593354234592592001679986999697141083653371040957528131144630448623590840050561262875112408562862180496879865123775085237752813054485611876505232949461197742405268915651499457405158737068746210196605171979390494991595319077704553667254742649266290886569996413536139069198800026505154320577721666396645868911849549348760034540417506024568198871842614230925421120942903530634505508506248280548967982365922307249494865938927539775461305897869860088861936717267561083986500011426957036499690124620971318464026508289598570070655112163964404636075185527423979454685912575871591053375806923831828970713578361850147867969081018527946063097495143797296543539239183446699939543849535327193540535750183520467897175772356961262499247120347994543362513576169637691436320361478465667755411478327719766910585566641841322818315762372403227185415449023616707674934113924176638956296805246521757850300011089709924985001014441794656422697749594927525324624035719064006935528640753594106147944269684460072648754475252541364543394346883968243683954364697550858235728136811609535236114976356341193490343661650855489266319614241522996272258656397232214209420348398727665993869500317051115631875637229599592641953988554481433621801736401833340330995675450382976049506943377810989411988603911035255053207016592764719112678383158742862120253554386533295219436075093506727232860250388575383651198316611385924959985050904451844376003494428225514486966864207025644188114468948321064020471514068329682950733713437509257461797834208547230913603786383776936625153519595629093544251009301374230351263698052904512095173591722881332103230038283939310357396606406011604668472979299209819701677612609392612801173584554600907451192360634829173243963248130148939897788702079572342946082726654577276129913286382538262362708597404494525635190045491436615190652746506373914226656429929615288915711695990951024706630316552226512333531302007263039019292970941608357837774934809113012537004126167258325035312536471088793968237815315513127509268152489509367376269240515905053521561763811596715608441967212301153101604860548118049070408528219601797245331295660253021728521701983623709069266286566910936024328313688695744669246569163958800630396443292170001562171899167438959016446749784307982793492363491412906791200615722825313558241140460049730635090845313674011267991987778459793749574402971333630954662913965504196297767704441467595468428157094721718860456659378007301642413812207293477990507332347565059664179547194759803882078782224397940972743647248429932390585118993361440621431666280874895869681555702565818216910487465657438197312243203268223127953152063347853384003257849579667193597421246250074434824906608131516016526481830126501066607435563840862858799199593634641775970282484467200025317468097122219035758602098108609520881828659417717074491225888836802647379970569053441090375384551235364854682180750256818838324713238987086109003660907644794317183050649995187686984160350874892710466190125416998320507328222395800790660828180249093364585020950450168316959846158363682224838393008939646658696383460364840496640290128897052613474751294080137560098241139745324597200768431250598334211643842260975244198369295456973432563342067126828994806086141985613924694341187194242185202185381303019224839789618559203864459664030833993397579574535788295068628717941719713420655845617534359755057590040184866579297932499817499692334666546173279701946439991778737751370633263005945534144618678991519358920854132615290383207168183730719857528807671993633167788896088765994684753214582763026477033664215207486072691490927587723000623428079683970759982675211001834894749003582676197240071633824670393506522810042896345039729964754834900884521607109305219940514760607427196906420306231791251401070073630226522036892389981301929958369426613238776159025508839012299816316925930029673693386463160444195528261312993666184469193959769109021325352854983507827599172917119847736266786636930598905394786816122014700805752207908708631257254926174308920049435479033852001107814364050855790222629577501045579584810110271538472880521386191433601340036881063309686115885039906088296843556134876341545732854451634561238481288143739713099282406563004603934054072460236420301272119289019114767856089607458470455978890355047440180661954196786826626953214063987266882916342384633281327470164347060633350843668557070581478292171565579255899338942138354120921348490098450010054923421750755151898220145340142867017942915082519600957522886874156621275453239753666784562629593045864153338591696320089755498332674396753638648443509467476087600436267708739233195967116131567168985052452802743288796873578086647280766775723414679659170478219395290993163459706977382058815714925735982840507290072851233162899938831058211468149388346044971183535054255350957617101428846497703536010641907128794331995218652699692929111543399712926294122877403031729638808345326620269197696552079544333456335555886896648224558809233124668040138236306091451905420292089539586062358379013225945233199802533861557813076054253643604361103006257987910578256852361676427588737717941893418139669258964395772951975953366465235499063828649545730113398891942939910593904492622860975994834161181807461419238214503202763228729489088120480015697252407099594803842226009695791441396605099014104573441159898169725937442279265790712742095116100936114782783904789574347778425690331815628827991301706638475182835756833239297188106332823739649487448957013087184149926815206163351248650179529088733920821883854571465578996615386761598579838697809565250631319720949630074692820230559933570922171934550288622186662401188246859725508246006180330477318611587723348606397433930604079851298130009141843238079402645927643401346708864676146662256948725453571394850932586339933328695401167763085681006750289734566553794817190528970950764045807061346977782048830944581327670528623861926235449446732382051761279672173259886268145605030632227970006032782531534348034124168842639608499071003399961237868770671067679961980748212631947800244190805635045176540351221902378993417208520465251547751742469332417874166495872516837702096970760464262689155837170235091374373170495292957209154671075569743525798191607044562860844001816963901682681512502765961992686398171448364373513448695042452899630546548946545270091234078636475184475699929587334915171148884028745066147008673032287102018646156840308367475421130893397879509798627449952832695790210768251627963585317731522325996371612311027053131116776276424260513522351638974543442512831813131525116199944109125798234821376963111046050823646207746550565578319017353277999313613889889710232764053575449524635225737206595446894373331424634422441519280281023213846861939026167609136101061534505784376825542909286432097168822782770010586326472281067770753438467888990670285353326733574199690535828632452142738053250990534478083450139118857534089243047984622336521071568676211277269618628744142326123272383053292796156663804179881735060277483326736409638724862412932452255542881631032752643215947659901030191412012842362320749224629055320884254635098133731583112904857943645352076112266318187081818223137794082108173154659134594675607782844946997238698731410652903223386254591154948337894689880622759896473309915178812752380729553644082257683876815820272558994975735856895416577972415193038797092137729394606297734359029745346019378862459442311859939955543656775911644555981516418150530943986396100770110422079254352809963494112066930447619471825919764625691793714549840174333145069328211860631354163502370197523137470095181798452762172108754399173148072850363789988109576828022791861954814631490367062771482235798449133489271663141901000963057025118849581173822531470890645795811770025656498580528702908298415991349689456182531435592072992694866629121494731345469662964148795078437581437534027318682195930145865143663191327014531560160313141955646365715217060253419490354494919224459398535227720259705689864740390657890622484740041300760166863207935143106324312755389221733815332469025118674393532183486345750522748787434304114099639902685999880805018676328269354699516101480509112468163500195717537060360507435808654164378255878733772696162743140704966990936498355849894893447127395126388814636465505764453893469823097463215799930539714022365024460679501051634608285845137171258259854676705352803380192610169035620627143858684524250606664533211138160121187646540598309991906163150297802378028380785262668166634964990669817321351413435373440951672168934009887009262655094138576575290688324067024303238858969405395928002091896832286519045812099716168698609621342412179765165239756598768102337062649923683446565729060692148824205301855720324161029137134888663865813566184997138429408390668173585545367038637709282370158606037656356557610929275123720498755995570284182778146573291290094746832902768684221978860969095609932008796305143595054940408470248439042291091471589788109040630215255253598441606087868519852099624940339941044102222217858095471207640633610147255460514104329474253446347356224206237772009129264121425942305197586115018211099931656185865295220508660205926544771255684778789470578574857390762831397438364592251345340488683164390261198901800850069999473430803666053997363229127497535590508199591819588351714642616409375586465162404128641722095434839850773013379752767974592628116337792630688309540174041359013094983113889408482353379129082646325164732200715228763324197036987907152008497870971720491733323904776628542928187937570759975895474067935021568733748291060970073398217950105707785708651014358587506189919593728520003355684271505596300420228369086206794338519309004677230706343806314753403162148040930904510210994473206683320076076536189494399114849103947495547510000796552058140156498112349452877059770159592594614094338010133069517442337519271129229607024271149110134277023071215926608511136085908476374885361783643679948298610027235771480698451639846579433919179729324276480375549610771791185899698408629438423830487448186037746251942973484112222901069421879208776249405875961938554864392051173789552409606128070196575820586021137851351375824728768786987112761197403634469629248664163256343895578361716759279524262380214079890280320170503868749404169298373829958234778710974443429933091965570273460407702898775428179322138833774147627020576377742667782313048187750555289636296538218764527304688667934997584173161372868452610464700533140592842073359113164116632505801747930094143440240035092700345013573619959217365592858224086151297673795493918677306129281764036716974131344714767700395650733289318861651843594948672892213157843486626790883806175609270715979456360332883577099419401635226968615068895681100395712980145734522641673956012790579330597989908335350103346734958378157028513788948773926129797029732996150294139394684151368973961830701246518942460047926460740804630915677460960860827059702435360534103981588442398065760796274600002489743668230532838995270802757705924403983656770820082720480652382919211353856208840585003534691693460463681035169972739909219861931706788530775119345623059086583142972938131027259921266986255829556713013500999386704754852788564997310129859403161547567280375203560871772750329079013041149363695839652308994310870990140308439235292935502597652751359386514057866270948163060441561448991002550160671490220467165971756296121549329248835448942799457588605513475967961441475084670089469037888924069902136398093150627192743519042538103785504606900052368674656784752698573840112735229604789271383483514618126622427985830740891748380171453013653066550986994608465213699322006522241160809769981640323041323975989708770675149934423493252278812647785591749180249151462256030600492289345100555873112261443401422150298146331077609045417331754028873599585940948858924276996764497407503666785538849417094014523446796965217263404082255253110536821905142866423142439608523631810688761919880081189023054229220311480494524368360764246281443946569688164566275238525517572563683506937344317818617522762622213297302308787544248138735078656206323385949403134415263873310522145365861216031018917269731661318218077248037334094670998426904075453050968748629151262355961800035788615621565954672485508022605677666704739947207139420630752545518500169559722116847142833541998163419960407727885506241656979445065179759460530825998511181318068699299692361892977412704730006596745506376090869885720535324846347123727440203522439624738423188738834917501541605542991891446315059422118625144501223649836168881995096480392799018881391620977915752050384001209952940069490655297072459565007087163998477029722908345854052852356869852998089508851364194708518383378668842828223093262069182283230186214897249067829373701989474652490356421475888607860565383371508567669280444082789041801281796780570814720341246797656998979938618548534404375661769845793733415078843494842074962858915173017090177577150819049899157129114496149641423338726639077478272527333968734215752146543515799096327574647522850524706708366818979001311965967043923333237722617009579693245371277184851886874231795772290862283534410232203062545636388733074699109237029771371468945295213416845352607772757874421549894290442989180174893367355758416305851566879289075807463040325178899348470988469319555427624740970876614984927243912755355008683647103403413895925807549096428752616766059896526957281083147595610756928700968779065551951121462020338667920466467419080001807439050770116810148536923680303227895699853168363499494786286588868846460154763774812730570202082454411239171874993457101119038080567121902642499917822304217380663357645894295518404922254068555125541182480422534617862197286525289699620583659104451480452812669717548491019922633228660615180606728210953687754283236172385563193655782527093835098084993229650209954322086793705558132229111068082933958721443126667708017422182711595502218703589314306209364248415231563504844526907496490767542206938607169295591071034686026149254751542755571192746029649834598084914002008204882523415622548771769724729447974758407322126670964498693251127462481683515258133495162646500578007983936624033251460785150856294183114724584675460683114839636430379241452501306999762501231614175752387945432655698389122657888453461320225594608402628005290281013485632306464393056901011075057169834629449712770286615026294408706018116629697623608458734231743733419058205311919703712388063360012940411441312375841489774973827850342625350284589787607936190694353027702101264860592694828015943614679344774457378624304342785597827207119047157064353718012857031907777536013155555209245895615081105498343053085523910709204388071773418748997134143832990357401965233692780411747064721310475563734380530256182378991258381118709710351514837541557603043639583102808526590528702420692682034369585212292996990261038978235351021280099015960544799125524724887774582927295279006896408603995968735075329517258818009077450110627706128025454463136366208618117423604001968199672315466325732153765777254212546423750245374566015179117704470770973239100037643040180255937708119186905691447464151963573933676914169206446422338354067835375985836669621644715432716839676167036758181713079829481817823108354424971186636840235908083036429491767688161384124484218524202834441408506263792332948440911855542607466216756450625097969202916886271012899678359420116927645218592819542162543912366448070304367903770356782760987195801627240372490901741326971704778478216953597892033418152865971395363904260862917661032338013711506617121592189114032007320191686716821263895648269327583207245590427942586700845362158789559841267200615002613728782731023174540493427714539228848371482096862470562584381397300947734179332775139970793189565272643042930407727800165273627109134259303328072136007098526728002416970992466376087949475562608613019550564752753129177846387956212671673144572961267476800939574554503203707637960102166674912552600153060270579628130338645968364636295342253067491861554184844924575110473263169241628276643462556359029464933126259293758346468282694383339217626504022584348232969141724827878994612774968972409400813077905859131521969705848005236619539853827682903493796831174267362858541804605928591710869813694880145531472909483620206987724008790760879587066299813648453883063696926995991965766398029090950198664664690552453341867976916829558361302355815351146856516051678117484664362024518874298809022172305020379273775475522467593545802159999474736985924396364598972987045677965103896071971235596487659457272986911458866550801373543521163366458998918014639401533857006529082267530489968928027331679246980579532959527106402001162351115112765631285299157509154423880514490007239688057362637114000348464879178545046988362354350354472529207896008872315004422981773432449491900559944885105287420728083581804733362417708781911922296003292358517672768665867153011816980811793914646592147922207798449258564573620198591167668067407811340419472790815191455117487249344145415607181851810498921784843099733187739019049070443329890830932521814930006019184520720120315893171794152002788151372546088732627641856719229031724899431460571024134574372556665278221596333078644711712467820148380414824474048826214608299608585100557324355562519558076368754852814203629778225261324576702370720849255090934737565232015783495056100607462137197719138227310968914659152266717370019063326421440914210499673203183522925653484120459834639341710660869653305854237700872437646158522423802409768908053916721741482161451280276850766921287706037067425565769780797890868479915559415287830949493550090996351241170021573566489589627827193704286834369075765237024861339567337469235480757539873320152414239420510209257356980259180009256573398165964038002119856961959004132325656476665612930776752824211726483688175875871872589637693124314598578314740914677936705064519894158079574364505694100932349518446760346290498947377161393467059074192716297221285728654428180251836131877105395357549327039012257432615063400027859952206089210637424032168943610536928369724313730904787963916167487426086328081410126361151690402207503229432409729910077803086483538413328172260474597394507062845527134906797467129848013828964932108015180838887651129830511223238571018417480078557777174503443010982271672969828892224129008066819334157016825729131384771721204103781706122022534754467084097801244974683393590879752160803563928265946120753901511269588614349569138108978126772079273014268501610311633547549905038565835231291255716904784465676560023518823580522678854380795765698199233264370970217146425006419870921747103790940218525155355374501757987239742571648433902526176797124003189671210791764765258353050970836273652102090603991028992545536497799239696087156247933291702408231915074211939465646540944854119631588955158833549650798534117870613053631439493850870680655202081862521241796569644816688195996766451717365229277805271932695874273546749600022063663575912768935497125532372163036370774139158991132831915786136247133695733412901176069845582627744015273541452451605182626338355494205762763193576815509453188264749927030206018098241232828858982442341459595221238537783393228839624830859172608318419102751938139573680077164886972877140672707796383214588846667723385415613977331050404175099633626650445799857802648962497160037348547500678454663943884858608501333017120632376308912004099499599716831344869098643478624582028557411527950993169153095470487758035436020684554265745334523664571921273464110576165113257480528973553729806609767232146048515128349335209210015619450843447106767454353477543097738203764416687816751158691976892381846353508289033488638596246864504678162931567080385991581143859838557290010610529121301640891074972365827863135599837078334691247088037964091047680919412551418751004580704723038579889273315018543250492951615427504245176930007378909622439170418887969525019108139870439955732998315191358947575834750139637700651616405465006224186454291198008268323549540591881190886412960250150325821205197359769459121988546611994951478791363165014031996355075161368514629729661536113629123782361031333355648152146518082036288469072497750552516121730754546876648260670062725162530777944452767214760603065574457295315293184243882706121174644067571693385099687691102341173553322696734195641651494307126485689835300623968497424868065760607331013940783668821937452910370702678229716502120408606760929589328855406579007131660949700969779221472654054443350603315798376167304280710230024712983560970162645742911863761215815357478593273517907043759795151054830620667705397026770362316230588414260847552868941998288784998167867877798739606303517908685968954606367608707602725265181288038449258007864769130459326207586517148926787028882300561169244209263061356875190800262037518207215877085218597810219876684235135602184755996191251792783929872987531274014080208898858804665855639575759685620918038141459304400428243124578807576640914419393336893672635279753248438588242530956174162261784709885909038574589556295182322043285172183323871453378434040158462364529332227189647771233431709611625260406396187963230538512832869624987626022531927199094626993934626971484845713282332074098774641694015880773240145422234080621031980622316787771372488471348723369517227575402422741977703720318135727019945066395031804070515821229964177248494895383222353748320595950689509555636252788786072064643251907519027489121303332085435226554695842487866016699407740471886113681130751184355761243477440253703191560003278285341310910311334462835755641205718837356681054945407907868562094743401295406290555766203481413051889131848867540976234458315063512830349766945154746327938309804593717453006115075200982007296501133719692224747564111649628005297172988407129224059502728211933389663556441655648159209010629379642778700759154334968690839860448600142120219665258849686740827763977243374642908491284509263764947424308796126749608281088861338178319573809443755636945609280535975672751978204359410544016071412617625501299461304071325335676347628139295135363361219695604864118132888545295272572862902030143090354671464723416597245309948206550472774603776038665761024092389827425076145612971989566383898254186551945203259503891920874587805812196792885548385983256708899408464919360850402065578080692538042750691673562795492194860762421843679854044939658909904356856509693238403710489460552542436794326155390901416966370886763370716042127501406363388313842163408048534918268469780321460303150990542536672698399838626919878699106343765111840577871206811799001663129772749839138258313583162494429269327503589695047780321264510705919589598007492337384637262435285368409069243303361044064860903509563916063617520220490254199733965882352933747133757839672792195234124494663424125638671682565319001216205703124353159566838663390704449875641646461745247292775791187253114502807334978155405690669837999972316561830909059860271453520692386825063542348548813194864790524612213559925668890879542359181264601560427998721499782801277266523430098585818488797350049459368489139079209104935612515765558136689699632537092914982216990386123431575233948961194741972567361563571459766790576713803129377247857559562415428803424779339589991697107833313443382098644855992961211780311353151064298294758492813720200590562350026261538459347754964850451484113223480677808855954705537286771385886621998833693483228353448788010700175722634299468989960974391029990144961193806060787929513795396690827194872010901429016812178667898463810496066249384131421202939466215380335198569982598587055935311593875742853291334112670983816803492123282618443519288025068616604740115453719261679011136406380185845797770620468020950432899579546908478342899297367281690303765857539915103387368324715877314725369772385659558598496575630021123038861511496403643466066779624819866901139551381884607914760493320084719732162996931786908264849595066484593209359502686101095918138883424133009351475517168493671555848400324079904118839744328358049171116739545199669740237164508443302134696483662468614785124014184669136177111834424105811606086270313783755253112875427121853272960192566061609912727065814321950470953228207018257724961983185212646878810690438923633878236890020361711468171542027233832509063765222830019061765119587434458804494788650645718238835863601685705689329276424393327232741786541848625467434719139528468614124431212959967664275467747610609538381379910657542590325808078914557253912106348818561194995595596408799550036436972311333250758123651836226642033503174990266418148233638806580002699456031099493584867995898043439477722246280979104323957834532444207045601099099982352234368372187166712099267033610417335213407115028886049293485881669654823572909501195393024877346894053613798780129898181267395267999457651082494776155401690869996307934619366746930627989652405032172047114901125382214443312518736690249709995063726440818965180020990728194118412603152217091018569346987207684026185450072938681250770367210067723093354118882210841514183626376593391011809020276972780669475116565103964337185250472740731631656982142716195388949273949333954117329132258843992839627829582348942296331817114923351023189897735584864856324091775052106999593532935788709239872334024225461057827776130656735565212009027648063819536960607090203223395545560008152556915382530815650834048091922349521638841906287049572527342595521404305557309142676789986617726459213463640145155127874586442959499893046089681453637473869238513163544587037697945751502792251280895337456242990533847884253138246095646684015511588109269747004149867920237448025450630326796148077129817262130189969071680208302901178892412201001113916317875032603043464077810351170625208179505296741556959506163996206699806192752127946815604689406287707532479163954297171021253475940427751252243287734803133945543062751126812668508120595435810224136732123347364610873591458233952318608359633551848774710120990315309431771924096197632253511657991681694670225838600055956889693135622956833102883510434053753701750834011920736899179342085336249051712983495823225804698239070546391277516529610635448959410133147146260750484136527632472272906222371594632423844049429921074604968880554802274963790824792803591661803301026288150004219428205709973806619793393608137988182829786631808046711072869249313384387331191716167865206348281322006673720553409981189633232414248158673662821379892522733871339196696562660745464061263868731372497568611498628302464999905834792409358929751104314228039044983921928516703876911349761827611091641736877712678053654099517312755244850728251951314053109755319657724533775312766971607125557107002455359715561326305635375510686092144364772562989417147839040592184296451684198302053811918828350180950594356520529552180561794656317646918880840859603224471823777049255571041074717220119703616379663625519209513743773762264457958908693258248142932302887829249322213050008093539909799564187259141416940368175811637386947327601747333269985961772769623198082640065938610499950709359487046433368847424915841373021674406478215295013467556375453236143167539631562726350819242164548851141601269214304277741803736722121849732473470052007569876416879481492982507101479899143116022069848513291481855105492481765791277167940665287015574753344761999997131346198735521649818669881108882273500866154652863454517705045889334469182432915745289670290107181184725166355098885541666202561557632480085369127299045625876146046818029312449912179019833877433295907555401691521319283203766837378663447162657980660049406046117141777882566927214479140921648442610275298301186628296130513284041779820261628180060429419860367355402167322774274731539621960664469145354847306282033400762183083509867640640518007955951511866201726613733435093518537615207512592596720945968590367323171275134637544672456107014417681715522421802581663806728278141435862718069507162091316547397993892321389679871959536000026364307973499619658228666563501510132421076838249028072824348204103741065329532955931246896215155337680136984307333102059150484831713111964289034019619994088481242908503287538755338567368471262964936230801811142599875587779600854171399271733573284298802993896184153433923972253796108936502563514722843303002908230937896859508980399502029613246942217552878966284723907895126871212170450347445663824619009325929662858871599383886387782977083644262364152776320032771287322074342796876018466230838571850695372343148501093329045032075132625362705972175107046834808183777546878573849321106550876833819076793618450016020275523441042064777705296462868450534630868495260088404081817345387327695431034908076464766876684068422020613242635428317759450534553030511063786677011731873788982680251166184383456241373518800224924667777601236072074932264299336222407836402470543017954285843016991016066614886437341796917932489191620404220667241785759509297398465021873200435379121704771179557433618948422041161474221717062974579626633450023475095953072906538263949880956611697386887984627600215227008034704090613843859692949334675512515632231907855100503551925434068631264271205960331402971467956777531651594459181356419227483101273627451469815482300324892263258182722313423815185573355244499337246689627564959934355561776241497237863665715114349814095579731479957007935385203573650870039663486443681754158039189836881260316087001948757747263056383283832259614525402183995189926220239640986755072054165164141557450377784048149858064712304464778501927894410355310392192392620235685339632137732127872233583318074308212425919815567229868220112193122851865534153242278174396468788656347438779252004232469452567952899829535526746149277278395483564438053255284573986753054339470834188591400234376741076959051962696529601437684623545065117835033252375051619273851369038812817473327102857457885492387489503398757288617734266312809731724907189009932124224001370431237106043395902001239318007610572152795380166758114431313244751674424585579252635463591085760419888342378319455859860581558238062705678529792561473377419594920332081235209018117261068892850598195304168618516772931657077974398926553752661908378925149070975481800020792010490641565202386133780165737373944931008811805590546861903992089556921533568448255970634506652687151283406752904741698416877791125408795292837971982979113906993244784556072165302272125950682361405056912379188407008428579226431851112244711660386613065065696257875321627093339304157288509594231953449672915845401811830601391582289688004147106826677169815722266609433043046738595556704267638832414311691840242734778204214436700379138687799998857748703117533124529244381295916099244105463710890420428008965955413794163175019971675166523937908538538700333595538731601988125420591533053387388726724683776212940911550562059042757873231650215931641238691769507760562803762038561224187801768991300135922901077174378924114140187720655329110980135018737058131818472654014271737092508574488036649724941848468736351370773960030682023358807517507155323408791501543046745547279528968291026530709427276606625727825541210008543318508954468552665058266819068619002088100811221684121587635045788140050417348909113371403141106048675612074383805376249599415732568877681543727378024187381527282995565121633164960932276999053677447177550087417255891513225906584323924536233730136578817385866458204026899107415143356553035291722490736468859189907032666774557186947939518446502293685840745815990922979555349627038409372068330733802417913707158470450583193568170209916108471194790104623486339298835409053290457818452483753775052186565070420964319865234703843970790255713073392233994946266147449016436792426307505327312822835325057909737419798720263647440473639997748236350846131432825447817351705668967727872548182786810659133610803620439162993548558274518273003475629955041047653826111802252963053616516488842841732894672841768647104225701168966964507808975940702772792946519175858763740966209933734335539907298748039134897687437974226920409841702701939063238418260385017299214787434069949370985418573701224827072199291370584503186466032374506255720383588516373540544842203929357271859062127864432593726802606500577219880691928604776614816709161975327913800442870004224707062928958149485357968592632001306187383454583851400828709894686670412916582605189155537294178642843620682722066237605323042855949787388773057314697343337840255644127619961671015227616927668472980527772960705140077152183523671334716588530137164438325835777349103040875632714222442552846306953649621859818356001581584837216844316096532908453901940576583535739153172522930519518442344155143107370697589286447110551594917885138437344416412244816569760449436226216531629494893037773451200646215837700957150552261115365088938452691882765876919873603883865073003464498667475069547646693439755465198542494416982531021443683426166483047822325889100919486882517715814859226970421261463982360128859231237231399877539085942411881027277283511256072026500440873263504486612195433584681573167867473378576910303702634982710731285107760326556497390555326456229902326227700290405845128507489489916596901703043033888724678910759718345937361493799102827859707389351228750583946297631824069553071197743907519951942053502186014336895974220166804526821229292527880686065057041008447616512411808952226831374832707036362102115186304276269153186798740113387082221520876812046321482179671897474065788732817487829253996360681092199371121533046618869862888609387222527006618363292904557992797671206851273812405866566640204561959085918970758657183474467737825228627339503609606004201781734777880311610837537922186601945749768214322476435562939215482911653150225021120879192817098038125398409785792828534562847949264471923347235111577907091348565493637929452364593371368915025332522268610529823153235565536715832268257036635407932698083116830096421233274504954016919938736084828732560544662955360763033187804365282989123095694963596793610426933347097661513673335587991458719035996673502067354993061175704612663388692871296563641987070326531595627135490634010409738642056308119132457276130785386795647415701706749909139673628032099244845047488648001146238338428926722827378550006308098027379042037379336112151141020962051885838037165412506898474011745153130626017100826634669745975170056339698944273541433622474521763386921825676512081573472371901412379072466374863362440944733176007469336719657354797069022337883956982118187857982031325914157280247346680308656416614029225819296949611476881949248350033399551437368367968276866897725653898812185769007756827496270838299989438807578032265959772293575000998951589673839489246566541772911423958217616813316070091809166020420948789070430714512371846533009196658186636589217885350386306004353539694080934757369875882733041051629491510279283101303433909648128621834934644506409640625432407638325151327224245859401852426119894577216020856985855002697680900303691861928895045457861746946764294565444160165306547218905464960591696656794805353255784624593534798451038814668806859514213095777284617153974562936856647257670146214846570788604521636296129013537012642435865019918255717949576805219391312976917326107827631146555155781204415112695332614733980666117777367170206427476861862480876945173818660102909776299453374245981192632355033155040049707510375326755250881326275527770105446184208232786020764683421063180008328420305042328405500189457849881571782312995210558547413586925468234462110848666232943343633673393670256856268597381968816778022940611607171041084171483054952920167913308411033240330128949714828985106619063598226372684010080359014185082441541586343298570319522150218773112233664884981802230568975748434440047619337087460938284566709014636504622471424786955153798898179883362358750605962383558530637291909358787113447817991645459693063221673976237679633293582771703052130420849366045202399240242820733647545564957760019993600606317923701044362655490313690364235179715409986766420216857929772413204956043922269271134861734723151400535812226345893577934848178145451249874846633942342509562965329806712704877954074229005284823098214239063672428070634156274207349749482642643039729764413964972713282593397824806963242245939775648060430264886755275455825151071470748695434624351110588416777278373671516193729159320126649288600511528967602119932081457615078940986652887709972971493991133421676005474274202206744491544010641484409378063635927652832899239702313926946297244351356635389285265889485156324269430295040433113048743394526376244093419012263980212728573286659650635748367160208312760664628051893484719264732468818940641273091589362283058291860967846741899596406867633339599574626697216777403119499769538409669538145674618486760260533989383348753746472133772791422066678109119869920646480206722071181245544748806629882723591323893176336673412930898950743912199372452530539025416726222047365875095842648729758928882775264736250932336393441224021312741096171496195000346829695325862163181437773251300906797284319968497766479673613886110255472230700070990674483525700894664217065872696297563972045277741395113388321036546810034224522833572244876607072725012215999561746943432096225190700404253039511177522037667028228443207003174921429039685079864811826964896466648883420105420774008528624616716718759440146080468342781802514734495595360576755456249043416529199224984464745019836842634775906148645405774369577336737694852950984151111719642813065248208939195539636776524144305470532823755693009597027131907579593520258772219626662831437465344452848952635640945715246734805287642707836103820407907988909001980816046842631161691089321168601528805265054010786117960290075036083435496314300647351625581446812972512226929828812438506917827277236133824238251755816896943882664671782229678403355035351853439746436410468879280719385752202292503646195930295870161482701425952801380758218479074723613004673847782300873628054828681890139875092949170409733750571686203241464037946206559773600036890100290192102431044039491337493432514456475865083348797154746423579292084831195494225288895178893857006053821444199844013610162822036245115230151340859042251806592681666961263184536112342342545499503143830805653087193353546706437477576564795620894497345344820363879234439064656146691133346785538833659597449388336627029932520815543097923891603921330894350606744673549128772178147868773344002661197976398229995517889147318671406413255341032222261053077174701918786066876011965463130188702904054662487406037713716921463872890286043897311388073517221965404392326019978890610395712211263558661464819125440008475607539285338799334741347637711428925931474001219839056754942571585327239773102175587618762097437802995756624715781947928844202406700132884791272433241288202569379556683524206616070915638825457080190393082794472014281108843888961973551846810694973171380322241710865866703911044770811724079077938373705626039982035393566234693048820606505410842120197498361431335593492645247274173208554490223593665989103373540800709004619000949323942312728978877162197591291376054917747593561954805964023716367323740525520724118961467065626303363796073751686255283035164526922970317572275981216820472038562686545507602965385954845032434816802931723109695786531886158994842096398196428255103910756590332366476877462580400286284952044904635912007863374590137547833081175318008330241780319911249837661103303725586029848932884972796679580560220820744729208648242464989364607389783117980575283816316777513236518878060720132233922894587562698293000696904868698880501898671385883309022150270395427190429972589638288611960482910809163736660530090450041821013245808671447649918536598069072878349366369477034154899477664475108271356539014970788103119006926195567058120592650196691691909960524342409817542125121941749732707722642678463467249021449287996546013890072633107964518000071218093282216091113393503909847359952233020028031437481883279507400032802611293459142800985798504856026184524087319704691804688271379542202183358926049079131069100756352513981242805772690103312666597106784018579122968737304749474461890091423168164437112132095936796383855411495167556987937859485016936206322617940781270480565927381570696039290859607951074455895268958357617104224920817845077939579303257153903101854151183308358217094787288361939298755671384312505190751442847603225749491257161326982625881823336907934076518987843324642260892829395014047982665038567673632191559593666129094744443339991866096481359102124027437978291703705956035197493554648696443097176824475961354418680433317078243714887208004739894035840912979662075445174552577711289706170321553264270799174721560184855542667283124958104574265288246922583417085065868774567097689784369138786249813991982848058021081229380551540120457889919560140263357235211340069466230136865807782097454305858648792762794930007518789071541620020847131028938400334909841987089569142466558679338583297247214278453125126958256185184212368375190842341007721186576599806225632000520326741231932514642655827453010655910751343652451035036661128829687627652027826132876959139179100416071614369421029797837067392584474954683858868267472094051040464950064064477797259526274049424794365699731666873527866572867699676439602950716723200259779886977169104883227348921956609661887553498388538728560635191733279905491788407910640906105441918505974976631076982864025179896430785328020729344153659260163777177774560873054737105111829389928078202064682570924692185094208778554796007391157028059830270834912675848648951783694570439246239356127025978140067690049801538008508073946626445488882285066801874619900762974657253815469434487672198331831867405845419019031124353563329284404176268021971086667359445438896386938098004252021904936271453617054369275165311733535640564194308933257851839952019740222578074706837578697124534289253113559034853651868413514944044506135728558834133902728645965510563940521577939083598705469914547739351385452549969359860346578101543344980859318757226231814895776032806578681472124159452955697846603790996537964873388298909653275807078422408151138836053726978136825774621085373915304019325394804182087948906678325677480607674943903629863293348556739953487805758032380922449002528611200054918219256607654160939206925295375806876472176190246178590809119696037401229025882825238148211417351810253748564796689628611701834998611418149010263254265742278511078993388252491371204208665340453649090261891760028450360080666551196572905909275333804092044388693858349768699998646821386231259247802077644812472267000651322912429282729432089946205679982299366325922259938261800989788152500962518899775268989373825936719362189514813310245957881845001067274236806730551723410421962081404613131560696399890393200490571894949047309671842822090439238237722578678293106778769770911111238860292865714803765953324247053834516735237664182712392114194351876584418045536131593936790612527462735978420850097265634290169423357331705379394135375181642579339252367552008805421182258291821399687560066959077158231174158984303453816982700952466208056114591297212200300604659975401663830520953540495213139144804523565850584792620325818003484887187572764198698295961032192239500856126014175370463226292722143337755476704757456507680909644820707512693944949458205500163720429844982995837305579852078345408785217935862118311348215510557805973789510668315267668210735999164761843811739726433799998017437732405193759245894024697499483016271306941500785081194596819443353379563007177017904863518753756004621736381460514123885300548389437234733204117660679578930378676816756721044047108058945889526576558228738331028258757438334551720228611349648206959554135172904487647600904067092737154359685474070913014161490883905978261180341983688895548193212807054748657550035584135024802939179558473645689332237627956142192408913799529929608976104941129516043354063946465422163545774270971531808326381245625584896080117711643101850426347588244621391609608511456769362293043767055496574112550587606125888265253527434800982664576794564258624176345794101758317266472560682154849074382650237839932382175796624276266042485727130660049948310810950300798061728682618511625394492332204334165829004600347288447098351969630975893575765257863590175688138057412492344094011293636590292147371830065335793756594802328730449162061604058588240886147250860976445716030949916866616850068766087540799126476117031403345083177742494114548140632180085031707105197057459226839283012671113148582075301088540360895675970356580702969923836949952307291735330949795629084361780806972280679441312185756918964291870511332088450357593302333512278858652236042543948338862421061393755680581454264597671495200032206132953681728020350288977505689864318542271738246346315514291064936301643754112150211632842126398839647290327619617570025276808131065557890485562741860065776126185175568760310926928673104170896396385752106702726569644898499556038641074693638020794923934120481910253924369092216005365675159366103258932364587507208451240178319076350138040015831478159504738712522664229121479529994777542832400828933223074299608147589396076652003273905681895240761518361138697448856948552883767225740259151631240386082371216075675102510664013230423761369871836125826485668384315823927894532645442898635652739534939470175021111886685123711851309277759602561601961563296794106445785225343388362718658214219388370104277629442612521436116080530982492529971422537668085600713899074947540204810512982396110491240512769082099606993453632106458130432810333053564434002059356811987509078438837547202990786315188933290506537739153699412037625663908753141277997212716657920491266889287323341878561995242733282616325681364514057760475100316906161224230611096163527056987024653375012064490553877815067750533755907102356516443875496842592475158448857071708473256797571880246866816551306820291799130934703904455255668532841909995270744153159297733462221549459020201738342065777338445341947893938972177626076062007451678136072247637827278069344199383519950728453936713299728606809370993996701012459833601362043411370022509858447450575330167203761118064156510149724220114628187117228890046066322887496154098954916957593009935150036919416242037725380015092392519414779330162194855254105634300764024761563097619138390812872131465196484304576074211111317919461951537424286958965738383264125014148481445692210522258873486728849685766031487947880883069272450141530060764942494618595870424034779540367049650346762996953349697189264861184347967840260983931058189073678569290071570602770290942568867493763588244256832393491485254498053434340034102390728225701705370602579457422978814779761456727899539375686202115094432656242574824887534010094445227946011877887000269114671953757347936365233230162143383506804044837315888134956299004501156599127975000769691929566905725357135511218411744737752312798416993894392710538167676502079976069221438511951852219029495066426335976283878561540633465572060979784114082841846167854818462278014741579944128940305010991158061418169190420036444920016797303418833725413179024721377917152759676586058046738896015808063947053295606256966258326418867202579073316261237902216660595598218381503450662693999704185517219130185163149683016502288272558411946345734545103100877185319086246302148417225631464967535670662501752608321554648552392808416185698561912568075252076644748644745866284123618093164790718973848872221866733731186721359117918755897005664746451686681580184438137227783673318768751792060474263620934399083548832072283054982681714985430418424842960377257808032384040758607944580122162190401846701145354079532261546720619415661055676408720314644274367408562156216237730605711280862108813035642607784469030912544671902408583914051993978832679414647373368614038103101529417679588775075311045356267202060086276505054263270869319472824187840085690514811742549731615377118295682763457229395563052489837485102177444275983121656671920840042479993583239547908278706343392572201807408082555423928408255735308486568064211510008780389222943494611045456904232207065889386734267483114367536045238204449005741806986467783412085742980111505782207957569369921731868051400796168305792920410388138394786304950793817638151951352811210439441405208986441723190415178223069799305476799634161622762475727960655461477469061825594222197050209117322627913932009725418879037171805301114956907373934212422211211206120304091742576153035676557650311123628139664925621515545137842877958883947397054776963720662061206928459971829774115640982361605293563699004876164855089088541572180240534340016142889984776959815103237020232874508869232625568684038320713937662621421616452859081011895673283168632608349304653537646115799702357436078181186548990887963036356975565223346270381067309964789765918323392248258026695548176999853748977261534479420298824742231376220720721134312467620478237137310548596822806948203186111373658775980149639163802755302678887467390683141254102204303682142636071520738627635679843868380389315716817392883371286797187886565584395549321873081481171637944055779048450122261034284820727923488374845340601295348085550727597582338432753698843507017740739877897717236370439840437093197936656010019487232639265721551322683028739622613997693773458036571299192888019230093756803135351483436521656767685775440663189438372055747358327619982157022625585401368277612744552552497832029917966179710963616152817562659019886079716654356191265737888514565270532833035350534039193637256950381137523782402869750008809685161727414054483712767136346399662095956368205198921461604018744439603687388649447701305065778567538662304156939587886965545516536821491028723379122121610308083927081701881461864254685318077828711930766456812315475596599413847542575754554697004093583323580203375993653421631970343785360596077207158357617369613217144597979771661737460494761165928971349845887524418123916461166491811777960314798066921073131296819860964573414749392140539686824575962487703825619154711805691480410129106092351567774836042228930704282670662352282436563472448361500695846831591714247213212904843694171307339702652394104155721554063086074208368796787221127874739959206073297365630294537147451925178333647091078951977758977455885652656773184209176949894325185524818823630314477374090896837656496746188719351732984661225122097204601349454925187017545869119986361046614741596862894564967639548961706838654309962337388822819644285366873697055864248681841310122730051998186536678868941598736399913442511776324689311446628098038026193744188303560307826911115904096671198838799965836674307766670624097466549932904327429191001640198918322501916206056997063556075797884940904454948910070460800113860037383317356458933275145812167933612453654271609908067097948521814234727770049902177744715944917048004357997655494494966746392694172686249277904426708693169259871580359630442379129712958806392211084550315067971349470836343257197046460785288688994865903778796091617106796334532801198873451883135665813067351926339297217191007665732603361040816045255767077048984420928716960718863664325807772049071345765422780519400064103298135942074708452526410685401923303284161584007025058073597996608846199942374237428598892464839279674056610385752124979412528561382161111722883341436818441492288978563432341206440569154819991017091058341125099568223329036404682739651205597628467775372265039031237887305604810840398210227979557509355554095425107506509853901448734372282561783195828347874186126642047093632579184903834081972030537845427139491289719320692832330831233844051482783921607142926587342044032022988409157088730984400793736025372780030715045044370356768554729925386464439882911363323528431177040182710751526619537100946235100216878108227787591919505999352692110530938910832475102127531800575545911529557381459990325082089788983657058592155465154774298435539999874576363204536584222461189985605823374766797920293113584248396946009213570170816169627398793771766862533590969166481550245366437995677875212831214702213072161497237294321214917123097910010925712206771747641756063528173853241257478258521557474159123764330129048986522201209363913736790877155190158589096875093619352214194255796690358723762918154114026922875197624749239548487723567444386701451426319997757742861663766408975583418984193050902830809920900789755923334470776786625235760756932833548569114074339523147078571592426897503297574909994060029584827853163921255864157137997500885333439221440129681093230740337278890571324604253362959950081570231049810650022138763639807002823342011614396470284862947403402409371440091592310447164595364711306166350788699348472594628931618213091833485592194214711547125103989832569862319771768523460779902853215439701086199409346713884166801280634671887975858800287513024782997508179682614383056707173321663679003245790708141277476515146715703881577091203351807935755170277687744443032852480643987180172792733786242594831998210191266229010618638424937735597259189022801648051498542048377008559558209251538293011931483239126781635565957679517729787796137401949179180403517223341519644725500517099245614468040447182356049153806373914698693231891074639579850136282395111172748529576876688765636342381905957544906711146099373782944871407124623043998217570744480582069871089530026769310650443110792482141640560500134697473386378813631583025544170543260798829862166718807844068978580356839913199925149748610614336652846697568133570164356818547521432740463090806555968005028439123832968300008359459224887327166745343337890501828291605872719182540748787269643390297483376771951312023909142200445387732225867947522178547904849513308992245037265391151348845144340725159326777697496861178568769045192420780178561749175836874202336493676539005640482133098950804354412788450956082091679020127656994431318798383855172133141032998328620475939260510110099995693113951625296644687950693233993619478626650177463308946858569538701916819516515025415934836272892648003430630259089349878634060013162841913881517773242270660335363212650849258430280070010761998157757590090529912574538152318940899800721067685796352794864374266868089243147682890137264673345146562632485379413550897127774521913700730175015218420218076056983572905525009077901281943077475142242750815446896474744828105066455166244879647711492020063982973532801601032410564842803469640929882759833494975327433493053541168015138878685148795691033963905520391308521779486881003924422127257457563601345193495601525586046605696304155565853340100017201141961298564748076287478411341060857345661262394025600991034283627580637364240610048098690548935040148111622834681078798962686563750170283331457434221944498921360828134762034415767024224225536767163739534672692281850783814410946996108209434253808708529785173801696352607341419814016541475281321748814947513963699933450756876547844229317990079258595561486458797028038636377108500314711956702480966827125689804183912929865330739354731508193279675163017448495006393062090667114933103629802341748410814864294634007491898167348778094479346675424325985791122475945875610335661552250268420855773406540941849099551447530677204805150606036672211715081798294310951135956936878157076704396794834650119524711155984349909484721778703424982674298134997875745961090808368848394800115292283538468140165244845541997843090929927745573821165893412341295510728278157057428729640185764186465504704356682588894513369444299293566620071803762457950515648573880482823718423937761556028407955801994448420286504874302975268677432552047979064837570859122706765453605182151937220014009734400612945457889761450176134554989587715880476748830810372377439291332424704559741795644160687746149168860075851214254139155113634427088193766020554011548950028371633282887215666263826809008845344801362527516530133440547117381991836134128392905729746139231716383678299351344292692499003147490831098541752285480416423204368327108417966572824088575078623032074460725107538649862028838947548983961320539439022964790664458102276419729224086806715180055327046536720072009286218576492433439347702481440237686312957051919902595273561371417499898734184512119042416099130115615563519081308134624813577232861314581466421262728823810585134925286128540086631810147805598361656463417363702644028902799306396011526858628845860388873836596833958375516897063028001124898049630802833344151234323086232071803495239046465594877243806785220002527945914040148654431093555959050969524329534251295066759156747666874799767647951891024773363515101694646992651153271023386218683212031118986027187042120061320010700347301840903478893637336804419208745290424666449634111171265715955545695482257924064987813430248428980599725219023297027847457844062154996792336129703378426307008311238005154518089986177295683240398425123521642448936717287012505875028183658179421514728577306837822160051658499157748388634323608135746989015201086746999638961910938403763733025723142069822170238555489664949039382343166096745897808206574469280033157347236090893221423893034530252067327927347076859535030969887857117078794052895627648711813582260425435145535233017137897781713672504136178422962326419482312826962846136404450310862402892285168708965736511780997042326022468079109261293976991822984228276424991214370939749392058753774963392579364637074780737239185957331025251064639958669362912543259321450157987860169600762263896218984489290358512455215119475143755350022845002316507718452989720596485988799802161399068957429024506342224228255714364339177356766502055031455311601330361001365875517811826528328950136964442925234071259388387040523410749084535093396058206130788552898115027751364441113302299439798343144828017650916989296357627247687482461048366028239749683479799047111069256056974553093775405495904493242657110178321690191321274255017440975254454362474371283116951277533995668096926439246714483679386060332003037568370592669320012451537270611129383653395886639908614891545842577277721052109834696986256835111795397763815410255781686731146073845048790209541908890002949434399212335963167248821928102006558545742342435443235946074155085163547779345184946040018771519678251354553299124799749620117893601915369673391412437289482418714805878202552237718064650474306226090916577453217030259168564672189163281546744313941983644716257999916528166923744311504735084635775919133276987012107586309203458936125850227606962987475008924346908198428302629369359663429356853348457907805829164370605559981005393326703885066430863630153423719085749957170300401527170377543375310289469396499882447001201965172829894112433003054749120271488538854045141371557946085235612833273650010193820772840142394057429958802046768260850757989245163900384894912795043322525039317028677996765797267004634906882602638791684960536784888257430533853394114916495905315536242301469503253986362062231468627254003923256415063073330466605129522976661808932225158422737781916956429820010389223921624901667720359019664300381371198121888066334271291272940890100479648718036982078317212535350087211480989193939702869401781756985790599223632058205507036410254710421637518450916428730235946747528189703907670541507985659448292946011103400996036567563626330416811080179271053034817399318904520663565387958023338422911440294678024492642096278287170980899019223703442954440438871502712742721554378157087963889702722648698026420687918962758341663083652093044143610059691981619243651803044094840349643541726525916422922410316428916802466854521284341754526633992365501516779975638947626009010188490775668261222289336940003069755826058521309255379372257978889755812660032604597159459520983245519529878366816687653631463562367317434346028734498442368502621213592275982502955100777624176089807533406701506491358706896846447201166121501585010060475505225862455002862838807123315467075224223807837106717931930248644396993721342363812512918335513245300173957753861736198845456919906329254224887682395725849824127872834647908385632506668371649353098031883797214583398205990818853641494213179665834288730585811340935226745684970228875216654748139777154382096287220300799817085727023605347464188868502810023179592549057635398970279805219303024929822593959122866610563562997080896511562113494807108120755828599472509845735927145385314296149295002238430238219494977137493780712351993378747026758950603382692970407922289734889067260615416855851858286815444256607019720845037800951108516669985532115270401772528603562489146611551401344349985385452703650853495742128554627914964669909863428498423662788395480072077381353804534262895040512819443763381516939946666629007704652071166967139074207236616741815937569975395123413892716006136315034633296337248580268557714526381215547303411020130520076128195342362280259368894268959126840940880189938069779001168306867752695709176484431617318632257059183116906616067955743118933252251170234964305192415910391774394234210347898737215625735173063936751672628192663445991359802371597354697577177526531298975957053363252122378747796634352308597969133465212524062282823496933937511412788266182574056941840083054004384346077071312640702549954453892146883832874952025366378053205012715515053552794771432604597541737083127254312763333798348025408839669305207711303047762858004935274006299251043962518609259669543519533587892031560965363345260707027240277878122482915039319249287345782509570499983234973131023088397105933060353695763766414954269913138358182199090283134220641982767439943495329344402681434314138369481242716469843088888103975254464440390309896867335778981298453601483667810403108847791612070180968489410955756606801025061791417523905513376623525440636326355073206781964776150562950940736344678235162224425605487018106169667063535083287347667203374653418113300291992312467984592856518179583192007602504721205724394362257154745257422865901326227820415697108716285589642178370121819833256601184153818130630881240685522714995994698412447768855390089857216127966556579206684420547311550256897747902620283361545061210801678941082349800647091877190185108407873080454298096481526742331554024102772574582416055151654118155782240575446319333879950779906651828074364352897637745502609985523749106308242346551127823129712951784391066431384999519397866971476198372812070361328998232944745325259632573701622324108163363958235490276144896394682559720172696797422560983527059863737112494578210111706625719263670627077170417456402121187860358136001177640977708110965367508728051219079175223988193013775442255405827809797771674048472040711809423631107055719853375081449077147055526299541877097649455056351467566906609380835299612074266560058347295202610031768725413919797395202123185533169437201055174459701006689551500425249588983991702956773297524345369391569376447039225770847238616236423222455778058916652311846376026551510100142453070752176994093472574685005748801833033802000869754074089361804728513825031358274334014380679115239963541732870184548853258386690401879355707178137242401452258388499053833909672044561482818488439325421186435188157634433915403907508672359107337451882969295541884543282012324505553684682765407973490003975038881862862785396449302756053968818958350104203898933768817589840361171766174153212543979163572800983812583136593739174026218742022511284750284689015571391684091246753046380467983097064064969395738608469184100596981075534086133240370135026238916063190905167398336079385697865576629895207135289430971116390582802582272541631983709253520484933869295292022957863788112092992494939312921527526441476335817990007236174120848012106072560644147175687557747978024113850702132704770741811173985832565461627110292364297729627943505424738471076055477825539211146044334507916767429421249728651307397391419041395648110367832673919637598737290854334859322931640843486633525611722106548337129471207072446338393162605080002968099494460573896011194415960900237411812612524988857626914459086535447796359358236822718056229373476657874348795382888325088105236418825157595322116668568839073324772892887290615585197226295083253938094774044155455962797578289481136364596765170929958471055610150972731338308110631838291843366026921506978947396090704679357063177818647579032603936711549029447083867335137750929694362105383835726865073928451659971318300748570090408964916943957003571902293696172172124188964118987411281492286632415723242790993896623428874926985076111713544074814847687930418994969361004562185365120477025986710008530800734508150125630977717639850732068026890859815758107984130441990886286965393842584013973847535355230097094830636508602055988060520695113759683479156465973923827172818100530280445715497232608015966287650568173175284003212265587655187084274149357309569653620427776545079830905520995717455308265201423313667805379741076121761075931340910460120634316438227988145204729044055870925789823678648595274290575051940280722100833121037062720671919333459087328439579756746224310313171228973236386801796995185834543503007868917389186167023411886275097249700134899159637022412776495389923723106390542655703758331547304251767447785959409785870241889343150042534661379392712962140302314701492717908821710041505770738240343870717081502425421883679311624775770044489724432744151046359203571763860586053211297047074213474313859376730475767171366614134343046664788704466874733327376173327373338693670835409618494233212744918024619722144306505821179123152596235265878266504027800757631616906360424984903903806497653053914291397424627688690572686925844190074510682204531702067621393555340048062454076203841428365223818115933039529171414718667289627799309855980717533966538880682471365679321538613732797911007769377788838467431587663096118998346306416365635419694123854304102658162515659890618745859476738772155886085588542904691829660369023109576912322988114853620753866802302139455414380874194088214923970685774299469700442062865652741026741890305462040247959446382385082989204125210337217161960352124463234458202835725191872541082833761535759845283368374408329789628458691453693862673457493285336355641172103032660925595334675564213833648074804724765404111903080194945054831032165281857323490893303628937475972341899335866809686081448192890881386923691784782224565102936308734550324886324572635275674507100508049736013055682549479087386690948637050684867441314769901379955484328790358933740077958376506618599903789511166191516313842097548114453762753283726177906791740413655993606782665489305831995932039759151790153843042328115467300568018658463905661565783816656857002036741732141800515856942878796609008534403997016406749973824186294216998637106644443721419421773318553581854474598202700393675785355794815091366915430084528504262391103014636322625259344103822404423872153292856509531237606050010125855557367747703461566746780365029559030235863160232484995683468139131404117457523174723446990356930453583186963185441303028274378141103288258523682637294780894269233667857198099077356300317037220925616289273482273493425225078601815426434763302947206601993793943398523548852417660543186923237955144744209652301739490672692244067875082977781670344311708559822252017010534630238097450987656313239906947098221481145605913804255877250715362603267606878097312517732533509846139740558309343249681744365358329110125772574044159607733068042249079786165361138276294240415329945164394802422255150045306685863341335005774429691250512579914146604912656240636452485859079284743203072435212340646913232214104569509804664933184865140086611161984856286405675300196009826211085236434947883190628622198180857281664395949788540568580056137884551519728804847453864965370466430931603707335381248332443068316147998221366946108084376236556324457397370240403641291945371824107310956791172058772885553169206795578177571591395901126808856455529067638756010368844604848702573533669109522135244825558512377286479504328466407619984180763394357707843057258862125191960099971564196955225919643523081560578308631151958582954980117008269600517037430964452188054859064926172503964810215419227194856309831681083584976271708999354454684229202060487003956218688509080036257884124046107280260202786860041117148700156199266330108006024173831792914905706028259098981486158427735750071158680278087042687218876964514517459030987693528185882714441152966369596775846923437282062163146680009187053539334537506650912689051950382720541581882351114377677269721506768587903118369179918327500964133360523694795046387273678097346486355457934020049017173336384508155078401982055100706479204843928859652231800693078633539411953681297521075863544339524468486723773698886818629344201146411856061877337968220875701455072864902706751061705104675232512364649620577274850861342809907288480586237164493698221265522705874495270798550921895872095713019409530119127593500417150334807824547405058355614029251072367568368551135363207570162337921431887859976539748387186295243924874957238015628587246590699939150068428728203690110327285289174574375830192160854271283521034053446943753528989008867043578059253635235307056080456197392845963603819107772607760363337538104973540647688655183037124839643241262899470096983933923858558571278743012285180586150502331185019107729679823314942032397750086911460087739293136096453974850577440940176995682112922461416257264373573196754773077626536552901427467596845765402781531274542723510697783193810785241107242254801607217379154494623284260464256877429402410488704960056805152947563145831277535086226141750610732548425215080590906755031944211910110513087389934177662180836904258342532302449578808924403921176491277376918410220939561167005189126814404691272167777906338521137687877901130775388897682792051395475994105787635552590191902884321917386514801280518616320967078931116203019621891490658353390180988532594284136151932560821726431363554589624118457352072407711048718976687081140699864004992141229497480663772063635367001766042157363101465798079551178886772485611029748850219027040204771241061621409209280018748043243445118121858031008894379178730199786457693820237197017715628828922039840352840365200711899923085171463200150958918653831688874342860869556763433080434799878545569983990912082349271607762428944748702022468744195200735714733376786519182694786323751250747783530474952712183993872949451223644945307941321481331204498716440003394124694287159992594380159869555997756390869752411897588119640045330172810802265139065536619662065315633493313786111590135783177373610221659336774915216735302285286137778680016786984324078312243225290037228402917822150073833198199315606825555135462646562737359510724243618653206430097062860959866086829549472773727101964151137365755923476302409999616133033756140664544101384111464239177150084191895318739332845561311927568764831748208493491119581571182749016714363093367490159861663723240364330944836111320719556041613694192319850728487939195753668181309609580746884372895942772513761594271280391309565564240865094027433533462727469945131363451761775843749323988581064997148983375860373006448674184407144146057170105818932128469780346192029046768774939762385253752791329480915558630652082261948026668626001356786739942036354639723870045111825619329109423949867077274554006631857774693510420373119294592833586047964231268954730660232794564921967062852764995166817338282290757973450822949925718821590217024245838600012207945753880476692755884817010551810860303014105505299246911063134041798330417190182553929511958485875229980313360279076222196059626902376961061905958393662542271428326277900232578573795140538106971231873653860235054708717444694267029664640926067873465139359555759759003843906138158506860661517611252168685928958389595356501068700705673816602390975855813057856102605271337515044243644689673433857045937919673500540778312238886425003261320641699095727593310126133509590665598925210348808248378242095066593972247459559132315271286792991496863534330395224380756543570132989468370673982735643187659218190548145991352215168252848082915023660917453785391475277522677355749054963249896450715100672520404613662174382203227645563865548204395843152622887384628930932469217685005857166232684032824832923239039377927281901877396421570441854910424657210789497566529008959154365272679051242542825898779447025254229180758064379766659385024684878070904459055204867925279386203384909770299034104582966020655098291550541041183704065820499123298808436206590985955468900077960724409890024762661537189553769402686320984229033177260314814807766547018168626207841826981051108725722864826711834713963293740612464883093896959120803056318852700727135566286656631123865067376443695322529912387823146483714200354090476073357659816057049641306349789804711778534703959373154918318529641605387689727780063386090435365000031213943816541898777353257706342982372844105153192896324314306786813896886765382320835022069530299759565827400382065806202834636605951093157001773273975834246604280722976107557729515742878052979389846307121414121210421787844196470474200964969773698534766769969573965859907127388824620142828558527775557253918185946224126877404801779261611121075354945209555810545325809596776195865510596397037487846340175601122521599210478068512196247085139422467877452826886716834583854102525144067911001978650861322294862844173166366087912107529715614847490539412731133046257971808784460177395850075616954031648786314774072407834390556369870329486284197739776693071288353230950261301766046107290801946300343342837489590561714754562326298762688337326062472599464801876074468315894095235659192789664202578155165455440187468771274614868289803898025179694274279449832527817760938085762204198195675724594065945426550448187584679173214047387092171492901753790952824898958721526762595551418456100818268886423310765595432585510890620035260639461052749414460918775321968823116113546230856672594425232707508237270881245035869702705046409151498733007085768455977145348826214634945064423299803940827385104570604286812774047948429489552188029774777477335266100811283965066022857392162530098850050572611544096371883221530134607786127977940241189351947071444723056091534067486621783495948071821482866197197217846982994875333390591017089496333916146528181757146776320632363390153231721843142603404384636128603903261187757885520784640576662593352374937363572926641079841836217156951742525991649298913518608698264871709793561252340091969935220512653296254252443575553182782624726472568778897479239853670111120023449656616180213462843778059398159737389955001793311585124521667261956215203099922459874520269831626881175609941748659454611024453897605438123827040636742443608188540964621153210233204706424206362126223030578593305356813085477539448780543671555554290926114452387996506162879415532510917430538579456736103613294271855120348362372855108417523178204246363368864516396687686356881235676274258632069325368081831645071683651596008198709098718465732659221884409381822647125152730373030225636242383967845116809498381551807142672023440875089269011071160013397807525680378038190157614251957625944598727139926795959236229361124594421834005617267750390250352847880530543210739335442979464453985807950373704925913220518544169245917157269224914728183090197168749188679160806019944682793344182069053800395221768614943727169626184581057991394647138552195651525249271239287973708004456823268845292273224848480923171694955445234104662788118416827014609212698026280952426818829478623193557604009614955007601438158021979551310506700227316373978354479229568343736691223028736007760878856439464034249868751579629776019456375277138514672811688513034661834845984567983556747415272270158528534750773104604645123669902280815072632363122262869423602603673262226619790202076765897826939393718057847130755072362342602937245061762282657467835466585896668875084268945578665902224671879491675811176110740932663463062182284110425350554859992475502292920241308203084107759022385565013904727946170368818104111897032765609050464338343191004999281155183497418756681682608574603680391041048283504191790788281721438951508810212160310609711380732905076536518540528689571978371691775825871833205623835330265951787632165711034469478193794192755973848610182864784458794904786477292779164298558285332687553962781474277577716620340581018275189562176526754935714242787105615148318112175586626749855364768580430426037252201855407511325128783710005507949983153763415283167729400788210094889544616228018919233771002784890666861159537324022890741287895532913603152946930355556052492198426591184042096968564067713026711314151241655869781304754526471304207523503417504572344538379051030471358984444462021727243070643550729863754509202512577188979014279311633509688323643675814684640254838849599952751137895143247046605295112314198547716999854029252151382777361766632261369592829849361989202997184067621518693486745646265285265607581111059857830213658533373581986792326392150944578339090821107988913601726291707833119293964761015393382781615126356037125208979690921601191507695170436656126506350875334986230080606826447226724281370485984195353024059902178970356494757870493046466049289722175068191372036067121958164662199877709643114980733095288840040483344070678700808136100903645520241884801523787680154615414544564241992600154719565575250635647435276889965612518669578595877045113377619276675477594087536069352521268459357765359168445857748535007306026342784704351334028174878211146740238050584703286561366719223848189885154777825353929247573797178254119396005370691271118581290054164948259021674796881056281093899044716815886767118198476809749920958917619054847333124962957377339775564376174016346098594647269790886269847449375018033036614308384662385562041785120864919121397763275053525852326130738378141593376659204377319861419179111196494680312154756504124112464989052190245720851825533946723638649426208101056925475212952705533693571347661580611056946825877405687643785804936302267772564230176907937242407810418411807085485093090728254789827830827365613744593311964418088884302060548559689987555982468574926503219868627460491338835250073177461849747473695753163480328256307799790970854839363214398488846531513886882194995589239800994372030216672474716110952352681820681506853260842164619395856409339337159568269105081475109915252789512629407375175568234159686007938148595357840048006701565298337829263600092384709261160334769959502935608180735665014675977450402903842709227712597577335652855486651157142259529594166070615488910997349502992966108982644802135130606267338275842122681367176643686623525125874139726878738541163673311297183887735239108386947333613454730152728535215203016790627500954460581846389368247312393257286943128696500279040264843386702600512641251960022315211738246975257704502879936696433352442694767165371157454499475290288073878807224268037902666933732757013921235319855226069849252770527603080972179639207600558730385277214117175204444606642409962457590673482148149320815218660567871669063282950430252519030109146893831356530007731624366648020984469561776287530495670246165377586180915210252420741406829057733884807279313658048207598445901732257692396918379759858784933058828877854055490190991700183343958104530928353365018215869120015477596048818476624311565234676002522750007282217801526477783086633611957963170721722555465722524567327439107240078333678911434047417469029755779874799943439928108460346940485524274449248324523726985075033525732007725334699326520803469170984317384563037596344314035303614025808475928007682960957871658083898962941417551621571088583283700700231575701978433734811880216187115859382703393882370092176379370156746698298740293562210214161243840108832663031772682111038451708601752112162008942766382096704955621015382988820828661788547894687075209255523514058287002170321953834047633451434826975162403173169057233151888843145816915301756066142054180951046565361693356335106399749945589788786401997290627608124218583953508796677465099134083806247577045787498508014432859129476071026576049236604500155533851804360823180098371952332713429791561167454337834073631887050670768042254503711701451348745079555405110170374867700218083438797140163346660871668609116619944888648878651762362156309823872086938120883893577364973539021671519984248453413696229506683758800228363796187542619148996984711341194712646446552498699912492870133608221173153968769855635172279279994041945673987792748760803230902186246719162276137371895984322090842931583713633923166953341661877002787831905359183213733231085789008093701107279222656140438923514392664474701310652081200238363495788981654846640819160960929250770356031417962197916273059714641397388463003771933492146547003865401579484482730276643592315463319285252458330529200922643626765697543608998266068998593106096269263068033365028790660340764046595901922242398076342042497501035322232788916421814470086679256809490468212107957349057785530884259436958885702291694422329962007346131206454335118300610953962599100201221483477533132472675220047486599597401405143891902042644206300787340802213661494969759933302813331629137107284888869568058414628886608822587210178361428575321178373740152526786647082587813460786942958060997126261301155109850351062326646205736179612979244820712765297650010415748367247313963045504487112239555741264803942236739344440643037952161840126549709208502295419865797457897573621082132795687441622185982477123541850362327560602246004569397849822515087115341109205531463706654163203630348979361886159209868084279247045572266924152513872444852265184970729022261972668451449038206098060615645777109812825416487048096145528535330911041267302209515517662702902424984329926406738174704795404686964526545940523136086287103354750660977581244464565095881292413924806603622181766125022382167068002773250934774676588293092524298611480962904277432404019381366588877103881135337886728321305466779495893398358649704670650859692776082112278973613334238395654763357948098574745299820237456796138487312019332487938379046865572478172228738399716480036415203388842071113143224138852753806001605191842239464961398785601491004135024773333747331880762275641979861163308007605294405860163535891757939889827036471041816251196023172505343529992403903056721890523384231564985247817101093785334129885009799461515807931753602550974717809395511999248174666069645422866281798408906143208604392268185247484860483906243164373218979885391972647727553980743482625909377104149640324624200347502818795352052060975372897505481164378848161432264252812092695466649073608928430103493213821883092801931414074347564606912163430625129189319790422591581002253177742542495800749382444266743905582173918312374149512433720310891766727157931065885959574279642366078177729335342082266913122660831339378081625036330109168366327094851520899366579496786267803403426160066403495770975775405460055721141592838841316642243318250827605476199574403259734870287493436078901823053134663004656539252692028616700032997410236314997514441358830420533317315065934281021442940830208670022044843802364963677220391811379706345403491828176072236222112579092905195587023851125785191278399981718010565955947029420726863003866893730825639231742949196755858167455680982772582195634658902958932535542186104090722802019835805453906776411309050893358172847092416470747231648730179708266232224667764333290301777695721682837105377869208179111979160991491771715630289616064326964496919648931907642596933648163253278858387688194824333668939467131764276105853732779848973058770978281935158327830323529751803180439658662983241813547630325647456433195121978479355146998995299695376562616928087994635583383803333040727901800089170122419437634742258202114659524919643225264586604930527219675930555228977198417300305396089700126329830662414978157338749575975346768659607971232538093014180827456591877326412047709040950349119451554210011372229915655300516170936985585747682782035543460531310404484555156902331569233368393037128090421918395426471392239033756658015009229271075413322921592841085233070132123443075876479840972286037787302633243965792262111352840584188660533422106272495337948131130921318983344190429834375574113653677311372792447265123504910203736699934500214219364647476378907988845746541438406541052889901017949212299014244251989140459480459585586848121356312232116176320527393936314617796713325016319923232388517105900881478338312739094297290757415838253440815035816713434206561214050017883782640516964289053188146083493024171551967014419418727854104458404104131544265132391006038562793972197158127076539713666148890869644618986236208199940255602855637793826147584010483783189880047217691780144222707044852891040249047969828211304559518663029579520959293447451313016692585976701029884377586559537104819255777800759284765121584090992177945564002774328181808902967192246374867348595696740192622605645415002990771997936328573193010609015940828445931257381004727077971264938601969560853929630600930942142502477645300707953939766507953044592939100668152179222323274469266705423176539808247303320128170530390107151149134453737393230533324897315344980628135450706769784305262475006653529058650078721253029761152631543261881611170337798484327858211479991663232930409743762625346096436009538627698571832194648040440137047259077677604752629707694445314496185538476124425801926604755475459018803494568611980618438438232873430773228981605453130795255551515717156510870872394554183715907457484603661351338143835158379454048408512096970344244681097667187852060989202234877024517175188333994109824802020693323890673789814294381792503086040587249875060052438331782162317171940247984765404375613073804389480697432496759012932015217843517179429139942271845085035471034228850264832571425591315920217930419026292913799114734127879650576208748872895951648434165656862999122560979897682454397946623394762981259961643355174593917383952867323937581641839693832708724177272130545046339529844342281802171771770557154377263545489215133806792996060745089986424475280290937931809787785318945147326683524044213818839524128697546229687657656103649100967176282002624352823627267555654188806134593295478053325615673843072905295006302715465260759404695026811213714281814031038355189467329222884600344410500631376843260812799461276566327110897446905234946584894392249999706811160634963724512438193320516325937233901821923826847757263508770016507331956796357749177210112686164336115473098851796647879800510911450528539898278884782252150787374321136043636482528777115792250880753318383889332427293209512813547695309245809560070901909223136510744335664718994049578560173913697254575555943526195268192325283533166864070982360194450863213700029599214512295757271835690650504671049182665195982276635178923382671513553029888854633982339211259924946516094407296687031498627657786163499862464357717970531729402099695936814737832815035690178934667033267504157412726973867343133386005347432102333410062754497116706923696171839923355286934797472424133939277879892237694580797534300984246258111600057944264396686041335516822744896293666546997323606827167645091138917207502012458633527636347863933657657851659747477811259683637809907383233282554381667986123770344986562497736583661776472329368238075885264999797251182739305517458776026355743419157667628191595566042713873032623745198537148778490549505567491209456022544048602546405616308752150854434321422075980011372812303278881267841912922292200615978594945743862000125846760649494143218520617307104477803868489731665452300184552656242657086776141081243009640736113638348674306329585092076564311951680582159864463618460299888387816406015958715723273061872081481527998362916290778797192724064246851410512888612156983810016056676839518236627519389060459634088413857458220155730399349495301352003725732314050821904154030048258840789000565495779236162988393410010587211494633374632277812098603283397263558053750192353204074552925888195481342314943579191865050050892347282427759469127329799071637614132532540009455036330625280528665122857373737088639953623085697209868043124148561357294548135019146321925625696005911804185363272472409361617503211844241101176483408785684914136551688720303610983920631717909766446395171767582830640160539093964648510109150109734525566698131449548228321074409686662184659894334275329296104354182068054021737072050593174176311512652859200246312265965413792918410043002728852937730070209334037261338409623304096805725356393725985490875179614723370694887690528188358330850903572340821013058449920686319066644285833991655844707158910446188954569136803425577094020112269160139418925450120104222510440232831376921130674535952036367940164024158048203492850464994942204458723284437960546278004037283068659764016272824529433057352044003554035237407383296360661041126095882395946646953036363059104237932572653588439233827396691397419110018824590291960798070858878176302520427532095801718665675850203604372241092722070411392055931793288180533646453599541500897285551360957095725535476125545656576146077125122679371783104322969668466404215945599095996200399686902792461154323973294992022982194548972606470970020742171728264633345209729956459120460792853371676223064404157372016482744630354736305004711262059824740800933590727815602112137816065624998806592899067065266861711700421490144987869892419706103248562852058715684264620327774393431164615620639845284079137146998151125220746291117487088279877309638160085137925031018142824430773676483162203435018110124501043147114383024430509651818920448161706286837343125896474351298734344842059605544311145945748647793688262381305183046386615444386527511090329541234635550433042947143972446511082393577828591939088413902623214104445431855338316701586375401955531980391657663292563349397625047981881624928513177056188596703871133423074884787283140801989424332136727180172240009212323006859513176008010824425944960199309603447489327858423953315548757734750259790709319317870331169790761700922806047236818894329388120785641278874914977717032437084687682896134489724629643614123202305537420301628706525301130245290741989172231295872941113611039430333339951569256903746216756713667902488846964870960830842432842975242116159011405704069383587349819017523482006961524841847763605333570041733351586224688981376199501000361628288395375893940980205615613106530573663545859814711367587490106183700645936101002376591967251363590535156472210350038861985389336815192354782522155218140328012103654306397219563634770651841531882886115051639038005228452730499054898151935892460044330389666667592436760154700756699618833172732669522895210738248854771536189311561512467930882982739734182140431494614254363297553406969748051461141187609640227214828987859295296513464506049826697973683866533596616571743961320154739452103901585031269638920699284112419218413486969718392011207140968273052916619815762716856857092372991059413604301847140394610651530061208492038347690044264749035906238034071170664040822334547547283659099736828287870287344184520522523911187029951332478190059698589062556514154708855686317224225747514044048717834891292130543567705200582892272983490842884839594618416205971599038469948146083149761878573100736051933821865801519345457416585521605284937552458493425263869009414812272508018388828760346371310870359067286791621287185242558515008120493148489112965080665433221153577741099343136240099937352584535764925129634095550286719356828263363477919515037373980411704788265963603099446907788116166862006401539434959571827953247368141532607829276409186967848642848051359742067329374923328291629386347496799061014439920935041076718291903664264250486470025700691317956818208128829958573237986989164254243066514845735011934122472696732757784197424778305008907550634759825926194571743056154144660525905765678861063649729798310251051587897485337494133309177036112807695045325913196834527026201227445896432324628981267766409056829085080677165436551688464206249495929759266649451717634759059561088014986344667462385243993488009149172752204130430204906171281298580891642900334229390934312792336205336827452628103039100256024412002469247656976798601567479361153640567617987172422449514392460557158599282320594156139695616352515376353961515454275560091478346909695206093767356865889209738657124105232562378487623023779706135826197882760630407416897914779654148541941321529472403903937885456735021781513854678802239797008285953421386407748382989197948527529442627322413758126053373960066991278893010628656942992360419604940480721239539063797783214946836922834493695550408414735463549152784223411580574953612725852984598219292843060592329901102620508882025080909617858166152150538698546662460747193192264545492568444840315343908583661429124853461939562228300798005916176806210250494373138311974316159877142768415068177257330545146853677058443692792666198757374570199530665470481505427797921416981568913552125709824940513103675264508524360675031105612041480971725196224568521322451053995432896499858312761317939684817745884015714989742503343329651872924230983509196929429659733390332942991134173947354831636599108190262250388870756925051376796389710354685580080097697035799822128248312341262390284807280925565883402882065714136747988671564768750122816146487985831237455735780194373262464505380345770135688133455090666226331252320667043269919177397936469902574495470553834846437631430359809097476564478190666741786828050475206302251899891416423822190642284745756295727046540642964407541167911861236218867059164422903395321983336899756361345806076234862604812629944673717275099783160733197377551583642220590882641339561755206950645367454470077514853077489830132598643924092709473140341663392816473471200283107467433206299954200486337838915437187332437036596249599782777205414197694151430785192433752538698353303296318512170971147186563141389712020691266791514599205214259956310230179572557284142322390305048728579625343730673244802199157378297789989664359753733932978441562958607973173879376989108775371821577992031672378628963842007471518670048397711003622266554300298347795692240575938993673395767242636620107084059934787227087598357706131065810268616871465827970539383986320239224699105459862537632628830851014036780538147250825903387050278125436947088956351667977129988882080642716323494078011009471956570430556041608435500092431497809151238020092335936445944972678909309012627810708593997125634540507782681875102274554371571515368754710213164821702263307496093576033162894154556877134942784890089941349647824246925531105308102454459892330332177330539771358914595620903533353914207522802809834934767939575459552095077967902244712424615252511162102994263989862514165417021809385820770276101900609176042382535443496600505739325548774748971903777092788737804386913070720809668663341098158432321853375562190256670422921812532414302687346419607916662864514644519538883245097088400329994342709987336743561272255325551415261943705279756741111971039601983787884600482046949567980746688806043216749542192774497526253094661350598436077717382577107940091595413079694065182568212478610810663985461871055348833484672763866100184039441399062215080655228083169555711998160500372225023965080635472996611798492410633942049654024154582879825106526622003332349188072103604880459069973339869679358887038940926513239792988828071202788196734669599223756897145800767564726551977135472903163977289154152209330249938023571832288981299968631537977978895217440004058383317953345102124422703552048966911942272686871049024243875846132630663655189262114298259383718929486126689658824064206545381656028013736820336907554965759212276992039231636900377427114630327783058778537060405027861652318027934338174372937148989546100765791453788016909518099932146658932781329160103721284709726987789365902841954174497984159953841553526183442791796140103365898148090493357094537816844524663067388829950634783634842799818188467742726684138248718491489687511119661343242914226428439663389282433874678866353059202681076559329614972429324878294750471114816602236884573066175845088672731865351501713264215866152192460809400905933077823544581304462074649548310970036863002336323516546825349530206626422726058805891390988878498966688239379115028789076573799899415424449477685047345538595376480126865942229217581575484444856146503750084388225420016966015039600047667378993762804344429020549769317530709925717814597604351899908020406603331257224455080527970963859702476774478226118506405873119614922728743836153505322725848895483680144384830228570598287049348625666360240811829402861017862946645409191326895619528711555668780918080804112089304632669518551762493142099498714199212113557469817071099216473757656307171541311389994098353081021700759037582921627274440116841399636430711343045298335607606726157634788447307222188285681752566269695901584745105131515260002169771848010926761400195391885407485625240354859416863249701530545945636922320334306515068631221035703408888358459071784329382418206610783367578925243638868050845354849790783672285887313954725104654038050873460663161756564094368705012207431929146454112986836577123989980055491798954884478427905818401333387617006237108914365789828995364480755003898277225994903042457383533598625175971026414107726150179735987249831695087991439437025061921342348520840817732423138629065459640119586412634463854321304846064361145888190701823726213649251935353823670591644823605466904477205415222863727302356348929942937833804172042742224253789215735346882195300178749952300826322064970164701725825816035837023949425477406958360191149279708027302040093522719134546935529456226689871221543617899305104381236808471322563439386415757736085400188312678184278712544168327197539236334691085692249634448964769007756404252359810799383496974836967940859851122448494740764587970350421253916245516715931697852820033571202613463231520937872353839411520873916163814024272636906476530499549686643599477414361309830338577164160003443188823504539350865424357389749363238672310472200156090615331538264776160091153006116847371736243177947196561941193641161606807537490404877434292009059128105202705957517937221610884878988573606365324081245114074950646717019558144625781333499915717301945889239719046157221387090829463612042712044703591194642992389668118102890211080470708133280830661988464280641604067213985389309309936885361370908353270276315560173342069092751619057822302009255854815586976744770252134991215989854860361367180869275053685088836740199174607678948973141541201373399390306931922263050445712217227979427268245289165275894912653942786725931569272798059992572116270194086942595935542203802261708104050029591888612873186672464375546297610128555133303583598188595111308248468836328787525939820143180978259729414402318973796177837142499596313599510767047900505997304957280195948896132739058579398526897030950569784925830567987212206320566129081209725278372763878663577675341936941717530676892206483857790439875172117285183098282464116091961268615482763371172708044262518526017087305532191684734588114536999757667632566580395618302376480884423581981863084750979396367507134518189063724165078114411442919969212262937170534716133600200317953446913670852772358520962994459158950462773654658138439182805820346000128345026373946185971970548355047087089209113292414960127417513444530855398293581390004647612237884947426645106392970187285053427610651859976719223407829958210962102205679903458151686560544972523370480699265751271227949867274672306871676795088318022450963605408461914210720544996937399310331196442683557586223736310952169107655915476918083183761730658820907431603955171576179148567730033875383703554174776255584508715613354714174201524850596665183808017103813425330570493154271938283752311983509074011223687961233501365898456177492401548407545725807988208923062276087685774852278732005092186645017702299097935357786704642835012712647242613012591569995585518808315191885485488330725852060217101691406524211170685994736658640430610330951764276220307878819480197369354433924257412460035575511250354637250966839042045608423844466840927530138391387255128536288997280050518033911036023338153099032146540397134871163352894923825965153127551589187948283601161058008673034704858235429598872005523981981126854401602574487538220363100833098475271893386012556984056259632232957915377670422598187999296275457065102558336798852482029448604498599875583997830550902181049235506860999016174946690427655575334062410591072585429601053778025681928360930513475702858783084471644420815304873141311499762050012767900756375190160717385919602533925517686106160515018554540391060611063065534555371964621988154606533348213279515593118558795528507086655705266323168810950360660865965912477293769819522676819267102818089529096292113690953156075619847483704158093665191185463386093673340104820527819577987455984250506814981403148969113137819763862965920389256862346842398112554715801230549488209088621312132359583736421881267118076821035387555121825018663451476710827053450172576601196134864266847474034729238642661775402726480033578367074683459467185334934908234305126159805414956257347886439141170179344696698049705482455629861963293477653205798426309897958813266541226657197922760201888929628544532255724744465537506867653113223161738059896391328528606005455802626505248213469693833264883435412755138831759390502277735889923390609928311261034122737123051764560691232689914071445873239695969068800191972366260178458388673353002895219975755307730506492624516850909477230234522348428000111446131652573404531923192343030231222134332441223697797976010700877990873354080783799558920384934263506222194818340972701908486520713451243642793513619538552919765808164877610832485561368416563442529123986597506359983354831610640450804784188123266236806607405599590612543564225238639434059245693430495715686373283569483816291686285104876071050805248859350543326477699713935848034104570359326383577448994591179414597725709503826933229270472189586587860196019803300445662366990888167387819054940781489274728036660323520244848412126603747827137302405099702027653841083203929562835782989250652472365675089511584908160709879675025639284721312423568320211013449870569805376418445390972565374952675854877747576281117867766218218345752692027864846390587193444963673602751627762231131762148526512211745920829402404762125465980646274661946316868274472691359892366397224698877266516237962571565597956785951112310790472950480966894443135388542990760605205311737128232592677349376360194878642131603900892825849673824000648032138103142054485482371524260873136187213417896940635897816308145530763949795801969651456529566700516039219128928547135468818990965236124880973175910056710315051039184156056810743287402204428812465839038500212383021636752235400297191712179053225049838743264850482159941032763282270049025451818321580814275994322516861665437690406406037903412159732250075961438298533594072327473385675364554091194491446090780864829716996759275827577559450813590083319668739186830854364691264538564711030454520018887763487536068915097017714484369927880323330413060823903091635797291900112455903393122604339862939009040604683308029302360148811410256099026631092819537698040491330061144301979566953674419854991344013511449202482309467998150096477503154318314921024052893279671953470295826786957139513891897868486226227819220069007874898715240928270384386837597115164865279583548404390467401275779973864958730824929148554610338327719801959690456033278818621514045970231657320208750984352182547117160716477948172523042689885046515917924185694998111591318587181504510023505706395445443413852597236498345180807773654413220896070327215254481799510062358152175694367401403010667508028013579569750904527248730482859462200315852151213531423524578820081825633190130317001610930545267654051592792398769735417845463928643620580850010628599266559027594484524261575943844178897524916189682725873784397287325833699337393288517751910236725139574069747470422526051074850803346930591679560832102018499036462733157472986133179580421667711973023792670217355467594126481143245081371615027085213349807542424929713691487455768456717459552409080976255461041767088847087494289504268114590084128217087895318608652702900323824540797343305498333912178905511119398722128898421825257836837443116097359757741841712026455871006498811365552345296142982426064762240889972602809629889793970524700641105450723698529970295785762391147867927802453134215947439197429583654820107230318028112408195754071221414220888422916725321345893538171423037982608858394353610990895439941512447464789035389076037589512886328789792162232595264494401244930879250180339426708958358136951301296781915190553263330992805949255644960135635362019613192926600491091380332637857791384205948844109899995930282713774318602517206243976780153637622794615610923229556555331585602177919199839151418723284263724906148481298099416155019694413789665377064853259607848316647381258786815257115916818826743190021903306906983594439028762004580458972355081505206126159975383224274334463656434113458977458805385515111883507319878995889730999009672863422422389143062846467156926311655062727923691594011788543173288433997442498501245295560425739115391881311377467012243560507872227999929071933557873703462726532501101918703954896904461175752938122246567440009029137938395159168212450215089549923891381467364957557075189995517250762840975937298104390840890460884183183981987454332704441770213640053420167033503567094057748018606277609158859097775600112119053027952957264496085191459594638205804111577244509517917573311417757249965404729021577932521830814254913544103698398738492428471759727369125499174027881224644058858890486650142559000185742137316474452892657201188612444731355129770389771268311382313947965005851671238309528016796989200374214698424438586799784527970557455596858485914539319028634082542660066836932967721955400129166157996725970880642275592493429910419521581375786797820558271198196616059936813252228522983891090015259851068718065079062419216402397792044034655987009787463911587505907679612160237464327827744250705255616865738874836833621790440583041839995139180336003623721149768151031756548691794356168155138626738082491221754535920210526084694510750354268920827874781839842086080639100714349956289492930188264464058835516638266303333949208982273906837206252441465275121091576492099607207981236817811128175816770072175610874938409920832908796170459758697492813835523267496766581823110988729631870425575666448347643734313515713088982597542303506733952588129395481675073348881168710151807276546735632841175637733784128648116250211908289855694085301534961499459273420138608366495977957789299827214069552538376855724525846010489132948764952496881639831379221106009992266828175321874437173010761544962731341903852251122131028454795533542397765919295211118364592707747259979293699968526042491842685985202530095891659699646744123911707263503810164217254893517860619083140208754816227308248562339072108676886635207379016810582595658971028474119951177555034088997470508364047914437016019942516436186969429553439817322916460134910091224751225285230617527959840706341728611557287101170646304631320729845451117506705775808740931936328614435886977376036497033273812455769440193616306838192151388261027345358043894598547933854661026265270819326212324440778942345614138257176807635264760874096510300024313586510434049054226275374790082893423324797743674400203816951473216121990656508077086535947112581888981934973438085230812905468762457868610271226533885663767548254291793347145558863121522919679581772671039514025531644293347657328852531357281318804163835812551171856223591229271756309493932186957057034815400889053679962070499410083156747339349748139301701424397900666492016291846415468940213474723702732231556589704163002768171910826405221643222677115392070052010456787681422749191279074677327727327435794654282011696779221020135616655771124655881557057060520224738553561409642575501355263712847159003385199557990434544532093330652911600183448765102447436302706107522929759042667222052617791140083585113070815557855344896970733499676176135049263886622930316251943454634717073481646308301390537862624641848224507154601251885111620589914638457917813026924214189040416477517626228189817514045636918679986236811324135533228769634635601902794172144950996631626917333537791564685717130691151556777102719790548859701869584251753999468342572942355589026815078326447180784317670291582203784284273566805253944034853947432655035757585835304266200056865434728112264224787017455147696385843903791710449982670674396136876668418135771919114817154189711468814959407278919128369270589921176778647338478916178322872738673946274045878857027566743836658342822920737180404354245911432362242830770555626120486211124975548580791832646311495816731249748176886255357146240238356955688275855774838226509246032191255590650973596555629837243079182268417421143958226012715765307925635681711891986317798530312017802724749789734687988303908542829356387923106933761229907379724299225775148668133020726223199951307471897173350707820780154249820036222846700735595116276054225980069937814019767457228449007615136701593653556620010641767918296758540735153157603906004601548606501902691538290424484013559293347042918975800491444974418946449692834978325839783547771488608381894312125714792947726613773061925730592420751147768853804398574414061462879353308078092320223224870436176542900428600865241908610464604615178818300704063876928564021063369587741065392130868592071048185394871742767772034704618757519179308091088026957782355365984121480620015957138182946864772481420562055505947536824466871497913347238380647576768622689834109812088725158361810905235073022000948674563272750227554627415247738943800926041929994352324590706704573628591691634650951329975864758287975279474188602508590291155485498583427833914878847273766952338723828317598744387001465489195000676066424758818990128143587508149789726921392055953114782707698591145510127145192600879270880076670941208599535602630902292947371352259440331671092683933763354462330133910728977436617470460120509249181756132856328201181946233087339184403325258945010145886416533934533824076513898903408950046515136431631563685067927928771852445249212739710117463892617382082785815528580687920126782757350026737917137567860603846647798136408777188183939029964255562012329413105406048510875718239174616250911994212496914706323822161581868963352838217985786606541045075289764241146561959425106873750377766452740206324683881310237418433149381096846946771846617507560997382280199330315552789004211696744279786146368021120753631088397399670187079146618729967210419504185373809888622001856577571718841263704975121087555562711434037670621472218917711399299793901938310541667953148491676946670433164759082057658102637802171811563437518436648294646202039100511583191139068591318141406979043820068034965334495584409264981310455824031321332720495033597393766240372810087458917032858506432381097490279111410055972161726197274042128636170728021768518287324549599423002865505935114363379814148731534931464875367208879314670380445132028675811926517324401277634248455677564101730010412929907816635624157273590839307565316355850385821251923144013421548293750087022728859420849788398634655163904440506465220402177406739079352130608132756912115888885631155031841609783830680488636723837078637570478000551498791571299509719898312409326428529592478007287884755809487316339807778695318025483384576602079597977521506240147219412272707778569796504756830117946469246362391494685715810449468843569170776959260716728687470472921382769924479197796732583758595140413313102241168259557494583101384447145432010441960889286126621558726343685725296179171570412868024887315044740396251881014135154332126424079779768439604505445823140291137210253670018376643471096242819255069373524827357503243026787245242015400190055360499195623058598798052883844290199386514130882662264964567033267061568551830961353475779842871834581804912611485392635680016553108563146199970406350492742246288613451431115995874403570825538871108897259928712208016535744390879984162592732914412104536187387572624036597639391053949949985101797404736923994129635622156914015926312680092715080504978754041139841340230537636854913459819948697630762852097828039908512296717288730652495739257910146496472737433605600361072429500473804014388938882726709040955864572603104052770927734376574795858559799820227188259083416807499235771914332430711899206193334234048977561177272593470047210437401874645664783866571750598558593039776640426838775771803123426050955728425000434322054785957053041933560292562647572696888650711525685341194135913682236795154250415361731421822532809627439277803316168016123879186082546704753198648609348567717365565289725133300362337586823440574110095763089254607693729872144330464664136541136638072244570945216418956311174824844081038001838980075277443791060679557865760895745583403840137487404539239789536308910463935057150974652565991997367076415249309497809629201726939316835190821271781918689303135493905581605271897014387912534370995504891745804515957018442134879361499247668575317901004916649165668655038921964861686222019156123860370234504682174168156941189995632182670091693324774515303361916712539854182399734925669942519158000865980533521397817012213221250849492534494843377406615158910148761854875567606682759467398696524737060576301460351827329000972045252171276259194359751099081081093895402739459741561672321783576551167440650103700726404175432920937802959205706882200354603292061825882901421282221473523625332346770290554691654244169398927105496608795912847146096085240317411984044579449961161487158850084281409687801507658039289487204271816866349011942863204772677279913527124798648225698323234918550293000979063882626666521620434409965239899974674448639480873931325982421319067809539459876021892020645502827082126918044007408020542179111878374381578362693760473514690157441568966035873335088572537194489496276921693846818311767932727920753386736432430318533996629553241394964856677569237290226013024713271000295271878470742614980576916751508391225466317608964073511166404538370394531537406425245115341336972518805590098813590199932589596658521918710626589345005874159636645001219036957033818893095522315721091168908853936129576198604998117424700045572551726013569316392696467909241710644589083777217768088901187100290746334750350103793714468575214707790568092262942487122490510436134096561887514554224448397901894010890760889508245992734337172378554985052990853569981318724373418953073025589496517347561898717119739546311217887419792647620992244009059546547187421966511978690840355774168520100186022187619959633106195025364842411576676412374463648349204302020546801696204021773316227109861515436207668404414648009852209290956331042045671383444947034162030562364719956605344435429656508751373781840274434558230378417253105454003389598442599454164991013736629373651550937395403019735507684745891541636875939327084446059099597123404470089156996097791383093938298461237398567448706262219523280305395429406177047999311403117939874801215868564272413695948434717854253471107960006667575025935635797753845800806880384627015113622066992916342367777695761870537081585577560315380530109879745339413926054086636448520785348551798821715202678067610389379805680035652194809435678152114022254018366140751503403007075620824282855728587179433980947531494668690589408645458382267972388270940494777592171876513940687913190264341400254378589383103507354981466181939268147082224025834760207277766386356602103745855924168466573405864362333394499808960023855488191802565042561599909083172509112893392435363652777288009807672694920983129222991784430577909778632077618268981653823928750851803139511612707913660096045918169031696555882304937310187148700934017785705853553802944067714855664942711075278026501001487604773265107629968282884679926548099146103831632989803197563920291110129988655774281851458187367075384205730480954301426952607336180416072692112451742884231975977090955921046052337934908068292034343480897171848002470317077168665711021830760626534121864623139213545073951538625766837478738477555793938308254921809238914620352778121667055821483034505802681815778975457878130161621685901251060491574523147230800466137593598738349843277026116992303871557302988749625756687698083553541648500029620992810136561043279452707727682140710256263170406297466298970012210674659881903661035011293354130836320350576716497291624469338260887952307837873018521645251378864711347816773695895263047710661413960784588051614660733695717361009496073805040928782283792422647037389589052882988555080204319439427225519387969927367566845040623309347233460137344638850446908118820523905585726890527420519852613403106598596484475518231379523067805922473963870493773369252117926638620542619691939116311378774045714047079539413093981677334839331255703547370812400743516882917292567071500523926999441825981780710388267759232872735850508136629301398063980921328954150424945109167765043000870287099912466980690042916935117008755885934248540794579405368012090097874301226266308190454135345519355781225863253118309180460201422137470378226310634037276497735960807496377395761904290885375758007506945669014555685227545617957139133389611636317650168917540922486880933485528357451162301867717540299617244722865316354324277804075467931415176390626692602771027127522144251203379543086327425909967694865282451971851126546317713363308158386055143967583438634462002141815255328105215145590832429911187291132521078891354729065110800136569851729570895720977006913539873097172485189384289706715542745699969567930830258197497934645494206776380933051200382231960102458552214562108496237160552493478939978701328178169189816818206367238190510646997582282985664546410126904384408610896910596213991046927886932252101606620898211630762339506085711488502763882707710141720972963516641806570874097266823965243450976301602880650133408876288813801173561978855223958347836748110032582487517498363596268779290662492685480932243755338362080875134050334584375682690371746366238312081512210340422839684964663770322640175320881736329759137538388453743141234682511582111815131711352954719150154721039702955656168471106011531929091555157074203516852557290813708421219674055872901298064482379312377509951875613234498759734432829591888748361610267945844053864360197799922680158175671722843021002459658942604361046913721623246696406289271270984093489880049078166468189411710479619489292439044415669277323465213723001609758184627029251389754293124974823612419649965661123377154445503322605896598298283385515671200253268284142323368837573839049129564226702656740156273841488426053946567495008035429100814072060075407632053274317713128829151800905410209950992307124783248378379997311174754121961559738129271466921037221825788768137445273842408621088901495398578536077158016467619091630108833753568410365031863534919449548305413293873533864907885500125812653710538072035292454210736844750834188131279284186793662641532220915375752050726532156476034957219119916107687434724060593556285579830006034665730261359484592830821932800157178724151476994741465566840167524437680352299701897155141379344447548378958717366883159387990593626124692832389687833866938939324394622975425658798191633227148831459294964157580145964755967295293461670079261343483920043338985522495560843786133119227158138085424194765571539363070474641137830423211092244312649517092384730107436911940841498716370822074394502257977776467410963147161703375315587394311942380237088324698408231319903823772353633658094917097102789066741129891324312897064387787639658930907598422047998834875651659360636219851693575139914210258790690926544859371624766638608325552406932249361184032106502489070963171724773530813585311845874938772163450454315220009029417905818741275192386232085503574308546807563188716531720730038423444266705430360658499104728480404986442551717996416094974408491735819450102658249706682843001455914672316033063675173109224928227600073204422956133692290601571425450375079038120466680215367301974713345804909504039341136557213895153832215606882343755030543994875445709706583800791609770027219251286283913270720859455869223450509990672314294161222826335896933508422392935043096470065609364800037203573318994357049879148658518516238362348309252684099359230266025231494530893145560764080534907553896959339615558198413151940063293575705964121417011664322266570919201671375549847154859000503594243724418146025261165921861053195662744299606596040805180555159751259117331291579649679430472119061716843221502002399687043172586180096700397420891814384410795181827125772163288820632451597010060116543083420747934414356200223443268297196873342014968775196534861804010640387195795215780295747841894846539786133997535331406229359455854017399993698610177570151401900669296322400897907763022828565656580291507207383667820046808500804004325140064967118543080476841964210020846231077712399156617181097430355785120126070192838747294925537859114361498048444366055458335840855739837235316212358618355936167292779139865182677285702483012110860504681583364146525100571565460613243403523542548365314745258938096834884685971227776419759451584555347431291379408250069128418351281385531512202011750891536008445979616719344454007186712029807316099948940305982645159434756892204729332541532713296606184242085600031675549606320591246435906345089758641684936014352495239492479888423892146973918226024668642180757547818375060214484658649769449390822017831597337447095238483742426256678248824118645040221815011067439881184264214589072739805292996852476486064487906509059600940338284041546505213480018308728707505125126319659212342558064260994051705772358645476272015919704123787987946090232824723429457320401349596582129457995098974337996890441013242068136472826545959265724421745832440566438629601926193914086359393611413087101163646894920417627347972633076760225158517450607995321476283636127737970537426481630912618047529160990297697669145070372205380100158372023035061360061009254468598899397267467033251196579062598694529974766144263732917132423267090137732893072778664162446343370869812521696028324039287730005731126932190500864913817625837656576999290300636367178684138232816735767295733266215078334873402490587476017018507878501168347226115751754405769774144611356520305415780908314864265949198387702119359178242893688047235260645377210846914186203009754933396747318325448294652108934626839712243265828585039386616478279886005146772237311678193631581406901363038441355279029780319124252029165785101229411278732455263555756633265098654646039814184499441081536123462132635561160277970900348375936760808670693068908172200655908949788601396665607867133624589587354839068440925225498614027077062503334950991822241410886090101573246206961651592937352173541465860518618706575343146915475817838043984880956044990544879548131056997204337334587898087888533718259411301434187781523063030824158283864316164219299436910227529317808762552207812573402492293785308137307148058989913398384526215859549723057096452335860376771588538415389461650781129106353118819199969037920936245583803054753071680783935377168116005347130916217101463548999532821031403329331767042977390217549815930669303916430351582988160235975451706147680327466219381291856257161851924683866950561107130904620268616081087655104906504535754651494551147209958926101342579727719682276745066334057237450837624692959055095177622406189306179222492649521197934298347561910719738772418395763408194256270313043704890475711841143633658890562804361842398494862200637999058892993709455575500489138308869861826692038072160524367587866605419859833220584313788732288902051917329004068069522211704429253248660968592031680580158038104076030347580237995843441498314034928160746755730830219419058976516052138544928189224689871217809137268991929762637807207814788567300266087478649653135301326283340780402102253708795298571863915197782325623505451454142678953005664468045167795145896284007445724789537525974640844138325389254714539796241406295123426419845491785807963357147295777500825818563406531410598880716022063567366771790052502619782317410775332403040912184275867430290485454710010321635042068055940499947160478600296999060387564852459697642426606269051848800390763729488108109813729002626462139677508775453301270493691471437037918849607195246650486352852539150051121512724777338859333079866532499439573677154822875632622647966667492030954015769768884156625606485635778168520149147613713077654669522592367717388589472354792264861994298423472559124546348773272272730560152935981445836132197277369373193025306598677130742753554082930240079090106969021027719667536680559835057222310570784575999894794504665437220854308238940316497291349748984313563677282480693896073684497997376662284305405185681168217878060678451320344213855463808689370988276814284046012083250053286248981187648050076570046705242814430663381695980925725662279704786039389139579660890778917251005028903336884153647462820640329884471161105430447284040394210391235499076783158156234621256208493606789382147849721184108969215021373463351469373694785721666983463181239598781326021887172763783683890801060067623834430321212560474661654726349889996468696091270709030245685495398061313448546064373250797118150132597055024217430688172788832118378110068428830841032665187358651306603556061743592854184115394930677639492746960532413104953743827364925167467766814996546410299655855382131083702627031230021390835622486522242125714046802611030210223426688845878127033323566673974441128898305808382643375765849896833434783621072203905767764794256640857399029823738485944970958672013285936279626897842808252771150744670699235558294438743042778897590709152997086096901376087823830462658351073920362069244271804357331395099291144836131959997799504862224335230820223634677631946563039683859881187263172443535914311903583687976315045283566592191071357663989319405349567334309580444196172527574163422058743994549527638319547511096842110008288624179227009822385501970545673646286339075477463382340532758089086345360884862806866624047962515719791925603140453159345204306224588957899854734442811135103532348370753734716333132541698349801706214663225833221514382887748615423992186430716099648473745062586957117909936408872227942613516553507951210380969674002025288654153450645344792794173745635282328255780679721080596027315303486691723759356294630226225197540970376997963153474265370550641403084982769784430665713623134917263805886779194883113310153341790024012193431199118455852033256661260179128014796179910173752708992922196682235325712669055034013773822917932292336222616936274080578056939979352873117602852783889180757792149958503874443497384876664607934887047797562812660701544811316169314823065407837292595332241503503621118661263987091737913723847240348851218991421318729648231827519044348197707551875941483191253743192779122329365361068252878285136285042568249223512695328787151913639417104117177972352346673095391972538794161124108425885356448132883191892901052477114560323447722581629461876560076247606800283659232172273737319421563096391960092728384176301366662742981858530706176829936999987644358546111199353575264919381927794375053185315453867618099599837668219428568895012458919270851804432440119142686146737521473780848485573870464631208578694077563742492876635634567002163992717175828178477565904848040757269874717820291563725440220425405521330501468785533783269861969040715352909797089114311614514930867012696341199245901719101405376188038580015015099408087831577901753728306805916814165692392526638040549926975237324123485877219632479543068964410463871760404973302983009268518923592174537859715526530319740049374689842464882225543495391787469198594092853481852695285558758812279116265757023356329199919463394078860057604703682040233095417739688058176758387469456370069030569169673388250388977330780446335214267808070604564984156567781363720541626090410580182661234287929195509516759076631175978733202842128662725845381527491722093873438043207545885988303810718896289627178952236523644948025073320023856728159452460697125547524343267991014847018030661922671564618762365676538973769276485078962635479525389874837834245822392663162743049248878014901364086022873349102126601474332783874373980550769622363116760400794253586287399107559051153610530844774917036304845637418590768851245855562399772253611689732236439710304249019846192740743698919410597595384561422953359675649147249803686323249009322365664206221606443780984010300443978430478333328586896504938187826245095216815737021708997782180145167691067388666532881679757257977007277532555295676423788472421533306488072157327297253313988452733579042199348602635747970375002167786949016983248169870312419633879684743279157542201617346771946614632743834302578495230830088616460855266474872551194576221839484794216444491846820564963900965776045101348041474314105493226640880102685345948278849284458510725124268792878339690509583232496253681595479692309393864909817994068355377907793020373047925192005490823819203976817806808350050795321702234262739437635254313227952152639997068095949980241940355448780026502063412710751452737046153930823922145929419040913422973477807673191090329819398395239130902739264848558332029374641375711768970429257352777379998713009914084986149405115070831744829951218918962875671750704305757759118171963150526142623095707424998919234024643415582867231626512319728201232703492741319312240590570839586738518102401480960674982360959888132859097357051756035582385976594638397095903882543538507818825258684534175588787907550048481981322716585583419789938954118037318458783758257655488527049963640681382040220298800052613040367350273338268543221897895809592413866623999209536710470326883258650474146564164697709364014110583586058677745807132770801246490886362302198799178815976446044117518555094009439298438706197154636824537615797805368839855652756136349988469132021236850577401897728533568115465178345683837300050324136819526716762932907948160541346681854582748907042264336693163069342674806825649471453937957594552213246813710836739465940029559567163567755422804674852312812283973103654672267051919681927973555558355833696768448106917943979988038614798823779496702300309882501756662346437756726541570640177442262450060872029793677565290810266744480963803119147271469164014919393277117934752431647020656745985996634810555441476247171517440407925213183678913260561853390692904251041099790204163177967188904870601474906848979139337627858193187023411455188714797010678333157521382620214608156014878741722568437157775976179243922303781412684312883676340425805227672247291531926039676793252003281609930919184705155455301186460030459003577287068651938086208502845229323504743709601278367798524543909298127862480769844652688144406706434591588843299930995848459894930143701643829994103243878730641107677664695242179521382223793991974813541483698078050132718718282248911083505647263317157081965122878730143563159169531592885589960201725163929420675077901391792301982151517475231642513588832401694254516170844115983407950623513470388709708938749459775363165586111212281140774889777101731506759420208369759350553684677292789857662236477716130878393969837151751277206516134197037693815954881380402078997367565178051494590185465776390407247427971964166869732377927162798448185363428037992744198029956012540605878380859548543778704130709555626532474207958616512052740285420751125209685234828019807223971175175495069865928810927084459792990728839733549893251316614448409930797904479770062520356249990059743311311726045335301042085892891452313551804862295402489202108547867082299235262222023189669854609882842658284196472459573463586693132487827709064521559739046946871789673974081041747845385830328010396548503177297520016656683495664717775278139093243844291994637937303038402634057983817012555907541620850583383513590088216026651509085024108088365107361934665676245068380068276764345834006926599992109091655312987131098125891475716288784182580981300928540452543644625568508652690916830168703673414481784994615994370792118930891934566661400427871641066928844290582501475756393844456745403075392422960997935961716338841217955382316869818783493306698983832756362601319086421228323958779782766189737284295081465405809042221351241549532045059405120731585724417980480473085034321410094532574224096744703794611111231481285795786158961299829111284937645668985776135099350785192086637638869238413454169252793255270360537934360743736951028595592845226816168390385397528320304906929832841371835736234379410345084072073769756021302839680385147657821023027193535028867061078935763774293191571928075624707247109333442303721357301506988600093825792688279900750907426364773235472619544724396986902253490654902799462153773581590200941402946712723742394786626063582701494880618775264825947733698606650086007503266602775026357541752550507712978080197251860010506684088261770994138400881587121464709174714491911539990856713274750490407929441860937312313851271009891835798501459160563233551136869314651316431724404014326339437727497707608779520064757577862606811915072682424950887046879483253609412405569115057604235345689049613412847763262072154573892753105003199567311865279824195105964001171265589670547962883398229079275704823112907196057335193395747929048493034521911117598524865521282801470978088353282281521637691079399655333282439680576215117500256981847635081302551900757589887618361347685425021570393397891713617879578877194132716323218334968697872659596238492814227860097752881021624615901073798341331315231409788658783511013418498765473525818384179069565208734680528589069977553101106121195292786368094454381514826035802534403748956475003021070881454230123336671737431116216516321916302493912438819066578659330447768582574027158787005752673088285379249166652916172608953224377538887951485428737787359256664772089036399166516345091074356045865830254697955949332982864900009795141982677271524882382391985901178836031555564365740504546133881203868100285414314860526453169886232148200423625416137390006166265008250706629655707069646043939526214772791620181910038937473646092345646125990103127932772083174162118043775438190013234116352055747839388835874186477767394201545479999920942362278256838811814382825457695964099101164736978858678070346221860624242675404717765657029064192773627764036373520928614267395841672463549267287647902277838984339305717993998232477930444916309254837587420102641552736826486002113032903206506229316348274187871278652339174255305740739198063129273864210804702007433295968880061804163594719356095618925241264820889092097240223633279117416508032900091867258564192191129380225087196501083120450294934339835772293601483967932247559348449388266946497450704285364811145136863113778722327164064803176625082849620131547119754488774843737644174149045706842960101178908810193272728353886432594649263513870909696881174342327932823705035484588863400033031521645414430205611485599787335962847402921907366237514399039540682529964240476904157957642916974762151334576939491912101301152646406115746706708932244476198766868663011906082607007497536189152560375076462863640049955583545407532283834719358472152180058372245967887343267207553328091287197816076719314855760454486315366574942935293492489933693441193767666252269295812070551715363989178118927059089446138728594508763356060412176147920831971331142304867796042248405183066005950874138409272423288631739464209847150490405964873930292617039218711939476672139438010283518625680905170672282250212673744983712087019618431555149140624616592558318336162797881067833472031432082621068793260661085068676890484482649751242486545957956358750143611011995294186129298288886574611164297002650830745163540564237115158625939719813932464347319774061986019696277859368817152477427112328779406628366346098366613785382855905268769158622329788380025124351569922737476257810396175068058741471807791280819982724112833210663577688397610483526005522335753802271908327159611422511531650390935379198921024070745775221258007199515275810024748125713537131926987777704794145672205117300593174003543401241878510605615894071445994778013324510231829923008899307027890035464156097412304777566533453201104237747598709027600444016226092932532457170894788166364953024358873625202187841813917804448077885803707208042733096078929981524728181657942363228663062549691176836004566759305426055367783179809466212773733023792025691473115621066925752523788323096625186780161234401661173728319284278854989945854744615490124048388653031898411570349048399750299420537230293359375480921076214935375249235858414809018131450671237636162246167913205626383256016687468482412724774936961849865181923025588245446723601748720664986904482430753821246905054900605831378767396354329300993564462054732171943018089669320992138721388420054539194884881684797748736917973182158987250676212606694532696469478171449588756334999345527240115342801353698236903349840051381437430532407580862544327878653702237807780584479404366448262921351246011269133070901431919591493363153476634176779152679172300665493909885409541117981334956580076104171625108736647053208815864976338721760445678815454562070985500773334151715628561830202973281023816890675951314548340568502416149838554847722729888936687890219708383347966540675158944640023176008307973153279874102807231715444234257768971515594853061696521160707110718728863798465574171912201435486284290752595335242899226475046854286540312911491726194868628290202637966696949889343619654990113989722183550911144976658986379109247448161280805727325887890235696459601784678235777227614912688344607288080065882293057612822398684473414878450198613239042931533138595546743361527203533583849007992537886770443939128427927352177037009086538223594913361727729388933730404062857559756813896437217881533722108882540294050139820425405001006116380388786054220136984698227022434388599247473434817963088249450362530183333534131430504781934632176235357075717857317782177010579877332529439978866111244633228997846855271900718628477223388534187397208790073280104534925402699197927357960290480202461054054065506686966590131189845414976609614402268543102959701468434368631826663642670698860961193841011466098573094192313327343713211489986136844067888941959728994688999382200333918239244388800489964114835721227758702277737190171228824856931556057461306845165685703279169694614605367306100604374123567778137220450943784336772367697980281648131542825858126307833842687443925120255949235112460675374488286033251276764363027049989775687479565520341299228910257808315704241453973777319652544651261162288204449065737822489909387527252759911661873602051785124977351031670144346939937624184311909811995216640140108611209321713369547473782803297611035980434099423120791574951875469513816307337183213491245182397501008104938508833368213315230798768779484506881407704742462566935116357712857381860812419050969669716153261172438438338714533139303440312413777261593833500418581689111386606513521399446471558813427070216663136847778608098762117245377920679941182609631478581203291242844408306678930305445449055712365065847536586162846076425662252181908284539998859235960727891663670574555949444703506728447153595846558139825102657937870117026045642784841701374153959409723468391773148084962264048218609919251604337734391583759560569368697283763973606147682189338772368687098832580161321524978976230439308132381540737508713119627475932722832110145217370410796329123506121768327694015283093542577128786448001240051960032445948553657820143730971694065392934405194044904827670407879854217740433337099696211351018790656406125139818512009187024830948887541682862880318662076209255656128001868394096274554942705398110846165834103009213414978869296063491947681995494555449695643235432485218362866552664255770301507551037065944251579007172816212265663209672919476908097974223127138840815073620778194507917781922510255999107205981711509641933269636345770818249915429513009100383060346389118958349873766544163727937327523277361016646722165767989460537255681035909960692520664556783999974892343180050312474389241872972639821582742875318168396523059006784866423774211832614895324386388603561299697342084031353038098905473289968600398990721564524950346530482804721323890369557047392993819233876027336949448491137214623578097680394547867186085548172734914933403723129170327537856635438036396066621080908927684098739810164147893914193813071037535580806571850218438824577352843940640682398885883162860205376489544273764074162722239912348933985385934261104989473548492449686040076428898540113855602793339029930514124505966173175442473845769456809451888541462308328981879562241213046438875876323412920197958617527940249789284707987052825705305532208629993107959448747458770355580422188588520838752230423092311063150073812273215377459771520717028843606883959345477432837313125038582245984527148252433692675160411535072543494124066593257434419969973356378008996158351900581410561879951981570731411689586383044144165649841152518743445006390627801120372869418794968563121081766755959311217162591462129536783132152200081569726869337739275542995321575243601172131892222464060648368364630116641833987655134920925436933766454584318776570005894052527798860915345109182194280040542446516558006901321738693604584133447002119949667068423115631780081220296666066147519338405777666385645860762524721316724665743366745434252265919219807261524227592656939661386644540711445136664902173699707305562629505583178907771644880611887842688919900183083327075291091674347693389471006112627488457731465429105946471044638088452664610139269177934957770276974246408687780041533646341933602694382291723650936736835189614689457852473592240161661632107372260031129263422176920277151802694932673039429804926877694336351807965909675971208686731587742265104323332561221391183934824845495608937423092349418915985160757910691425339516528609644224251018479839343442240087574697349614469454645396689901554817593641312975854769973672546799542734012373883317679424600790287283178549850818570760472872145051881821881474772889133021410426696946775055182927567213376025876181898942495377238779054412147070391947564463486377684682857476277585708643803949403286306290887020692830076484117560838814707149764628166386296111814867230184742831144813180069508243244014189827909454076821112391624236460366866413957834925974012909055730364289431429801467100453398994910202643238927523913419265463958400322106364956125950603068166677574256828283856914661692951811078127225033392187176905603778637876123903120134725831433984200869223225953779259740769983439140063089962792793412090681245688016177384317166460766695873966101891296347480479893380854112149999819801836465589199619697439183968785424376902115023690118710327942379154302442354599261297715690599288669816810261383177872371875511598442332392437858253018933839843087465741103966148653070374471404688912051607037486182866135165928218226093165330237161758383848482479330057640630623143674683678613640619697049051728460787322786908682204789524144587072511683000695105232844664825781836095154926182239738370332840377992158199460198424004119954003954883891155697496139242243872733048935641047656154624097574097395891596711255673259322677468536828181970156211001728157816589599738414255567461832592365323522049684445975158505875444813735754403217654751660113645836085328625774417831476594270564602116370777515213812457296665273056891827997278160865169789272498226060843728295559992641335068326622520779334825968695074332384641480001063806092763387515113459596271910125061845438632484528887615485539214280477644658715160195283055593281555800364473327199302850039965112592037174574596075210606005087689373358185735017681791463861369311813079209906574108434922612273294078455648965168214160505014464823113328063978353364982769522523694449352013050460800494748160105534845720796639802513909047238646492886527631996136115830266575612996945323280961528153231279570246325815761043621639323573376292839988207038518475829282706390788440065703065031165326969427616444729050404101079023294992244664881992517029785596833389900054423747984365519709394565992651007752887102246959267580270578957788313049643855907555709606974365491174372216405441221884437796207401237706871291716556670649746158102293405962269725063026719487412881199175326772231449517624737792282342444513201492465146666757294396467756574378766029594973340423733492714709743361028817078671919033970649737652497222558683332784630600456474451507941163244807535224676131819528117224015972892099529951764941265072194228350174440468358437809748758403612175538567225592268378677570506837132411056570569474916379758289610144301021104499990305197492800022469210254748417633555570114875929533090721855048788429374709628146189730214491312713146755098535303900984348141427971601589642736840454116739781609914681229915270283920985645121127791572730031183664704459794206452101360726769183936627662378171699323372181220996120170224923666511320813823391604641587428150427065245860328243283470355783589839632073155413023042385820256706221810578596515154392736426336745907671617541718596075914795890238049506112747128746887679106249080188878418997429807381226337199028922362274890540921244314735197827367602761602825150635115382624615373650170413261147276831923348034501626864922410415222279648047681284742157093318663754177583361502316882096696848476606780508887644914577751528593048770209587288948354356613331961460110170626550004813595756114152212859507147881306654898191252416485937658736702930896322515649408634877464255764733487790597337412693582738382557776215744048499667664248214212130541860821249852252548032618621439525294387276827006642961134823882096941088940470371169374545515772004948709366637122330475315293923667496440858908172576394051641286099416847246317921453045027544609088412784351071392659090152187841599047210108742296304794633432590643923345201154071998017371762875827513463620829306698463715934780411501058074453416234878060161931766150485374567227518358457485390016626300441936715781829402725045816962985554118951818311963790421419914789882775075823807192466803830172033041429879821999067786024867404812086651374017532555216310105321048662649383121083461179750288229604005102986167552523607785669244723239926065621997938477234614974622187497594115560557603769237616037094751179139482354370081306986184656289584522696711763323426756457936071786230073920031212315957390213209992551240810448707792273128427259275409886255274246895317947981217352339416954462594619781429558631656475767907957111045300237296703294089649257354810889063014306534422030399611686080041130624500742146138223725292635327560559575556409020340349039854414272636720117398278302094960131152527094871285014102309230563895980285109305433887101973668565863944912389544536906420643835687535009490481974527130547499617909404273552459655299438793059675175458035545813385355956956647504796149252513701618315820296081358544508038833417209788322335450474728381040501456991310207796006728433142947875530390033676915437721655631481523548126087146317107853656088524849062383909176852967272117843180406796447023459184747865260965319234639425045168881948078046752018078928249606403060893345263455522441925207678385353099205080390141094078841872463110542344798779178128720469555823600379441028984422608416571613087952045083721151791461886048776486842343756456931485389182196096409852115936388168791136583770546950011528784111385943221340944627897545823036736296880603784031461671414739754117869506839763133355623599096193389853369163581489533676876042057865455016871856756187749724164267298653252958205503374437579371120132993184133977668064045581084613074620216241464749947330942248374072256667565389846722742255705944317021703755351398250200304610989507708045744455776599943639545613068410595780717953139767233933845296701276852690374622612276735949496986759356428389843453125801262356636021656905824169035563660918310824367183309718331202513365332737974438838593237091049865799389892655381640822895024369855575807992031841691982663810870665580037195887944298076249876103761988865345245629538431072833440832364001978970010125459751391342550390153829063507483193932412950566737747750538310027134625519738886340535833454023115575337688209356972288516826784766320128442145630370594134726581394931683743224596559970248681155312039906797490780949176947333359163645918801501786742891535808891001064567057219633339385199354261904265109712461306990276169463939385146704349396888386261220811892021949435316278239962161821642218138740347654095239902360113212785042772784365591193423102699889280363400081917626498871052736607513814189971404551222321135561350979006925007275099312719725814776590229205324849942080653270794506470409038638770375276786931633669205836066227480118224638630281407502561856978633626960950631255044747546852041667077217380411405165767510758362345431125961786626758639288778198455162784549789755015513042881161181355400407344453008956411101047396667773681099648285356043808983464317456235679866041414145157471645528869407722532092116919679024063644592513536865390997583255253200699772852240439745945142290434300480205791329379468675744588003263050142801313710218390417768109768172076900674333255044306121038305167594243484476054044969927891164030862269275760188857299446910197758757248552659669876309670182292620747826321940607434346126063536865191101188106065981386459770932897889474213583729082906214206975210633064398762798355035183204708229576287859616075444528334050240110432575384173041256787480892663729262292482608154841006981818876324076338754848539739155029520476800432665220915036195048320626077060587180840359142556755384520326450586702256230144136086665523941960017081505922834218428715146904474255433072984256648522656451530368199230283439095522386595581552907182692125583920226954548469834319215787741405462651444996814850874598789975809207554080055832433468330043244235516856854372944931107573795445957608847516195364762679118872056852059613156341909024154670255614458908503857387588697941360754825244577022616908392864819892394217527032736419509464194787876896345326313755192233139649157782010530629479860436510376292895705646497779919663974527027925339923239238665012532757427019711653302870159160740002683108243764512693139431308938319968079006413506848332104800194703755886160124844194327985625563728289898701438478841727300563662035935769434475149729727586017681388096033472537092781151358273715381325518201650705448757668895426101832760050947317233716181533305634834182704712915851041020502490027661330529049176656473590057439072447660491841726963119758663799892924634035213050166423861900640488698680323891518242836475737549381941810267720120437524290798737246338436069597438428371075027011167325279312254851410069569669102086051463948296004732803474426813212279324764047271035204634069563652851415282001946951908591618512609747624136466621440494458352116371859812891084653976323902199121325359849323873046058188461827935204356428201140216313633867690227004729163353225204499653028043572627845188219338649918936851342319581965633528098576194954562833880473135443974217873322481708597249786724992625428040114743518832102251230859972680431410194457006671507891489854678422595371416828090764521674930229489371248307070523761274088791682731395867491116265976429716010126304381513828176965388836750206293632225031746494703415266649393776053039036582193024785504586541613571000051266351666893915719281595613427619737847399663727335796127007960329852828750003399514060991905068677889695663327062512474168181031875438756241050363930870965496531566121748762359822741733828085260718528001674191057392932385394801324759552636285079741708529345935077437202037926165656795320651142352348485323065426924239237115185357602567844652928247518590691039667307640820259434605998506206263745819192333886048771937277018052069604303103560552943977904788791276784553716316379834105619160805053178022947966633300654299069019327262242835304188346722755200972976954325151585378268629762490965921572433767761213750978089681314701216319888713694100467311400151004864528207636578792571733342091851857145082586487033392967705489438180060584383715637876092381551812795823348336495974578051500913723050504268782456984736574575651990900409178709538572321500884798315056781975642605537405442544200321303666773627866669240509694084047276192523289009810478988842910473261841488756529598166959294901182494218847164306521668156102319758392698155226741596366813507305701183723724613085071809591750308004064289421441121702301143525972274145905185868735586024809300789101090069308387271312189125529562402391271189808497363593268786910627376051934315227926115549974015100703129234532275351961024162406492039280773345161758872799013959256793856795397375615120228142274457764334708017058192989200241190338540238285231024444137383665040608332229360960506885606045144815989813362809426902366279438431478102747299978873515978284120093022437031436777537526811621208183947821397536599550238722906836455815116269136335646330989533199829121451475437308871338317732993714634574573569897587110193351466464431976933774298556204426300729629107367802700249600375783786971219891243608275755610288076151096191443133219243645860696391337687952065832883164098929603517612016222564081005944666571891127508782727839767219834213394477850769352663568852830950933063459018031703753945083934705503212319741111635909576842781853527495186216605172761201788373013656947935828641904916429112668622810671436638300100732239403914305365371587552157657600540186998109728295998167558481568824559144604715865337750920008502289692783476349092670789139194575005456481947467173969417616436315310714109298847830733934510663932212760101315483573446802092111879224698760589613122816082000903132260766304464499257918551235718596171312361140943186122157109191734620259956908763242249661497890889795992169424223256871116602882759988945854117040351161661044212088298927434390954479135819950985475376071196359156927021727577623390644113994601232099715888401294060441638700823534213704349019137701675694742965209901215043711453778134537976153991308003047745694494433411120213901795157889730140400380023356758037071391652923381675084449453403865815681924912311658384764916277625899060065228186229098445221910882889142218003541701669127862856719995018255157098966536562670935186556747632046649793270638874525530435405639228746468946283803294853508419140238995400024912438752371352611030745431863372556127504541224381624184026655654759220450876438135526365183371196533698418039147696207104238504410648861533960637038180118491702698002104729998704780937386797616390828853826264505210252734229474456350688644336751681467576111665386724638798363334810748773746179912416143245256203349547174349670583633866137045346361604545475364215535421235002872153693647404068102129183806007969544414145754472944227632130304272855147468977667990335022422455023486264502108115306744791434744823039225660409948357819606292929614072247279616555690256109874617458737856430835919016399660321941898376720452975666153937305484411318070330151666092027284100205131516836227316757938573343165401969050899509820556946356797707286263969743072065480723935296626631055549761021554871049626091721973283214924938235749567419228841322498332977656803792271935369540126322828757091635964454731385976888288364298838238307736584408363737828652076595034594737562752279688939500066761733330894201026991276298348822648890763075828722126770536381161568664864201389525217640366259411810553133621311264177494866334266560798551963988108247983433018273563595507068705616824012507884586875136573799816087713683014812119103748392856959685956950367316890598814236713205121555961699627650804165135519792202515271110144441669287784285881622123515527396299406158950686778368590832704091946211399965779464372719109578822320701558657992179940757715310527551548089502577653871084176323531296557265126354348797405729921330307865151331016470289751086552418792932059359188660826729691564324981558293737686149939816841772101277163178086659070193398737338943530514249117120143021684456928516270461037582280932582454352888849620619209702293068619449510638394244006189683258016653069996394609435151291973422908189985898218006208240284086140305124052514887201725866819285564976468934851300735234693389008780624385878286602879501670804615352717265103064047034362789239860060535270525958330719112343699609034585081247457491516852662145761956207335839707278720398592266771383554710997186350374653677339663900901691995795112125736956895996895096922017309564065469645814268046269236108060090332387042653023213793032558954254510396453301110376737939116578549422466119479908125702351747908713465021469843259396685151687187030899993065022287120374638112471736034256174398610116634115646931080537091851622173615558722809147939619302771514728130852540402898566611248451376446427884382541008363359344166057438451627675527481850471501846829006343232017207859096517541388626483389292008339011775453248696294192173656222986981089372017508944352198136324382695441841103563076110076843730768542289602981233653851195501338259525649656210567105449843809762662876926773208494908650512424420747993059988342004934283490948110203591303183376642921328010568818516214179854601375086323571611944712332339410586746870135009014046434784462467809738043936923085410126189003481330298156864131530680547816867218767094313787685657777786689327147442916037083584173419333016241958152003681447057942238215682105553581702272912554650437196858679284053335029024605837286213057348319438065771375466221238555277085307231156486996885517354616415691468289097250131775085255847790359398714522665639506546628254960929923964861373942816184024317175243983131017681719034313384472032153187354410688980327399451282484209222475291968153925344087920283396108343764920884981584186226691997863437089009119800691033234014127850345284497901751964087056934453921529244904742038240729084760606731219757256347860693348286421474385115198198265171891247677601296008384950683315447289719295511982206649447410636559655726848718348845166494654974734059701747906147053914197789187140466131954350156960032211631176912130701541739912553517866621553744049804566828445890170703432607064930854725744467809502509378905770213384286956220474680491228927381507634615756098977827532075424074746947223772303480675192758458669007153374359395838118666655304085295754686114508736419239382872005221425056229076310761387339823075705046118848612538910563821165863123636590874225893892116618115587945670341397593651626803618567133811287066912381964209864164412182555704426488661001004310204710790427744985724681048455452158112815641862107681078475625447932097070276740809703459079629773726402855795100573024473419356299797671048688281104965880090862713646015229686035713352281815676623315024159569466891689999368889406673588391142561820588361222349038031929466552744862606662358122368250117512912203015555583053186855751704019694759403486146472132577092479908768356312955931499736770034913577315883843083863056804957343292864830187199545556106428756926732007906532478765510299768529579692978073836779913167199954178186772904080843614533473504257136819773782069362751836164957168494599281243371513511992138894380391577139827565122612427472765974131074417548251410935207510767861332595249204998014963264465254768262134244321599180914109068412692092034360254079511404180779219749332507792235195526538777081258418738472462673722458237878815075239517423248486168239374048255049118917147938686711248386824318783606092961914084636577019740562813114348261796993111674714721710165301385323527386875704773164477758929353770584284683946894199072530544952271250302230334908069553664016934969840892858428109670554864510135790229307245415950645781655120335366442582202006857603317797412883783895682909509619919604303832070377956181563784054145607063308312887985082402023347594248693499124708533725136622293209314027855944704629846520537363796867673914249431060298337065512454773861450657961845041055826608416225863664307901907107792377805656099555297905469690738463092123625960905030242846212732027570034572455080520254599081456031225929898033589411275461909030998723112430087055414272292806500616417358887653743673016694878109455254790712534423548344864862432922117858517721114865596979584417503206405149517087566092366636762123151562306050097022867396669703284397221285031479213493588373462755709313219703902043854474252150203406324745257143415648875814296052751327383934024758308526475026027395730950230127628795964211815153777394340663148703922429221235782274392180574176720089120887349182027744971841632895085576837955716804091337373520173461751916829139949285859550127736599765886636211276458417860217987158248875373890570033578601483544742904649070073842717967897036674755443860990578999965715732884504899623467392637497671369185362451420335658833601978059318027000740027455390594286245259880283277110028575756276194142786438801552312017035206145714489991076434719343467257879497659857196316983772655308247500684292360315862844710666475862666272455847827046268875130501796176309646392243545174098904656193942501895768662557483378773964247796376605346803693354824669491439402538730003222182741981892464216966018166112691079789598991774332840019563522661971030664788638023005550550054297690049763037859749550573996996919793813278055863004088163924009610944591689174019040148196900081979206311932619982216341075285695043095945670360068855665598107831337575035637488250468802630537967603231028665695570569880671266435262071104402580196003333142157703864179727712822508387505298770213568671322213870347471318661073015227298769207722702013935097695409784043770220925370412035395966351228652082723496982931524460379623310791841023136428544463671038473381440121993783489152823793566944566288098656299465236250440128949036028257306017043095073070323897003220047188310373738313942934742630222445796791224685620552826684181561181047480445623400700159293584406176032896775836861224298258058343750245707844404355419999796772498515776629571230200452656230727860088358624181400650153065311590698635219219627936937414536150859028293795690417569537860415780961208036747469734974708674366195846407674104457327964837110782326530745852313945762401348903402753344347373530563978290200366015526569826104936490519052275906466132118164331741200330407587756774441768144854161565388970066093279436884421361006511301487985878925616104980247702085870066789907637633004234469067872283730909357932312469194617881173397288692465501152598931019691796535846565854755939474271923910640563239604539172566801562327596873130748054605525379606927813653216481375277435233629998913978903654765331240960684797670436146183686692413203281833368871547800643012981438218144461326242405983655741651922421849243201150005155648725753362677104817109669274019404984527998569490730991985101936984323141810354614654609373969591314517509914614203925893779262091821263126632418679727414353621299203995011920062712831794869586977958497283586284790326827782527205344399148428364520225563343132915634995353308922480805348178615668133750719440188781433486749853596395235596553077913753390889846912404647080433724775545553811012411921306199669771206539788405354983910952882334691457435420729837923496870852649872979405573447260390321252816981161534644756887667360535058393974406515733636235650095898169996460735794282493338460377625564636690990058753212422392537390551776055669396425412417039614401297534112256754261238995516986209741191447526189005990227791353043429506537220900739415929979057709195526841156435209096082358560528008672971701509281098788259833840836901385905597292721773548364437173023667395577717370688009800511537342237732276276908251082006622345350280521381164879302030002457544414792865250503271703948350853194424595452813197154701428021191651486075972019200194720137808498596163220497698065226877300966272881544601850308124410661349700043062931593616670504300683940299820808231689235096832535926125926301531994941409789244254491105857404295806268504577242285971351508094304333353079316045861745017074228270519440017294403535218016875725491222555971350168897834998984489431577516217883842583311531006562046939903995466239686001060118287912338969549385545640607318260958969618181017388115203472728597990972306534287226187194900235754067074617019672414249343630153870012804847350320236166051428963005024858608402158168474601864469626808717173964055863051584681380394561665935680059383985667207595877269933066239752704862918017339891642427093949081835666447064839551154646179528314017485232879342711655134009129972309405581925290401172931242718609872509888786387522921314721129118462587307135690566488318799334526351605495270833196265400253321314465857676155418535384023072855023370990715496187761224549317970373602062516664436791900637124124259265778051779287664001348105536433605547302036888493225958084650749652910590901007856887968375533862958399720076654589305675376246607113461680330042825197011880502099282594534825977679899407606010557488088252369653671632603928456765554344707208612766852749047490772771250213629353882152783139303582216627838200789578703115077062266838385419993695132918359407090410428992837563909581826269371543696125131995086893867685563605160312382759701523645870540495034935999208049223513834246195688156976731982396850895963293255828220600285983293794085065105420073112696017611598230701894804297330403877678761418254751951542364783233196333483023131836139017946659048327231685139657935894050309418980388216337449096527410876791871559590425829318575290131003000803503483045305604314795425429874256929084530018256410291296559112089864664983259714593326890863470434393466336893113308589005200192925045061844888988087926564859254330864584458295618991968978325814752924655191050744884502220697595668035635610407536275171449306801139939441081859908169796273545977279082474509702571071323598688995407929432344566363623168477120663778487837488288522006713240140955939750783347650883245226201909414738374477224490546043488623462520479342609193868403670005370876293969484518490675002687392513926595147535314841986245574596119431047809150354111744822992232106881552078726315373146484472406193117429232430649615371729759056862515870551914151524305040598564380593478427261192426488327083283626741891726737998674264899717741988526725132311148699359221356004795234802387846351764871578269002957006963066761519711373247786072141234120659566015111132709447508103471781529645027290372932654048441833200074216963582695382472668097696342785488746640569581878308917506085763678119080450531673218770860062504757561233973516581483963105125817955767219629510509405723291225893088286955285991429793590694126477929809010844289284272436384396596461367128865462464717034112464995822663781927681503533682298933801616936751276303634320182485854649137094469245484968929322759253783184584274425650453219793140488050018416421735035935342851754692172148549242324708142130439075378775818759540583307270895395775792911811574284652552084985814203803580590518860563824820490840029648397677614669293090556219183868562326719644540906575460551549429028816110178989958687412683763131450443177427052944405287244129377105921884620238826416853122931378781074588500375150288790793481242433222733329506697326730673548213535508956419188537038600710665327336128378248674021927194424835092179520788197902026025318830803897633226060439711377848163301201551976350131069934525211816265539505779747797938044154262053717523539434748602824313464754500368444831804274197530830296857257326664449788383595717795438349052267046651502832148190372658603924233728417686770768936981876138056974840437825930736722448537836186548454831168583731695990208229839791215256769680954810986785102000682044356544303874320632215264578342083352307001161585597568593929633383397577444369063749753807488439497338513103002619773026104109209273373969660690400823441958300953111331814789942797157369373719122779596567176650887359135223677243914545646739088322576893025439064694877441978149162015998270557752555463350383576136405797547096300681823554271310513409610642089233191360472490128929501957905460236673102775859475498286117114155249765405400967151660755778133155230348499363157271261449050421745179885554213752029134009809489498927222066705271240485084067686965517293894041012148009853624827398533438945184509573697833709525201425436889207406800528604664674161386451782681045889021103977236707145209827013614811292861353421469414380539144671831550344481883971573299105551118133212796949490288245439105727473024418325903275273511985945610953866443904629859776563151685756309114945858330656265053128558303026468331223072321111178137025259517159673151882029970748988174468245636498084694465952714757535077698741611140901422791227949641282763683225169530814698016615221361157633401892033036045917462404387011569233441119747913564386314003451846439767242449913063647997979185085756239712479404389598694384406734207201918333505985260153765893796690251021843393500054417821859078726816646864140782446743171668011496497127238871687050216565554206891054453253488374853994764257420816902710821328792880993843329125032053998399118652684313250534808175200465880415042599706359057427552640229169995227212621081875172284927223691347891492520907399311775975750397474770609576038168975080559292948058787130571880393522408836525491236670756681494689847851842228968947130958100079623427953545707621327322617081476754406064194860885435399842956453351772524031039298349400628609159700741820522231851301511759471411154146768719250996159304023790954705759586847423470211972931863902072601359469055861862875469933010537992701577688245264089227687309166329360856242457004662070025159051693911908694764262729410188188034101725284460133345117195672307689182622671335631863826338604277840850018005776699423277532169842644642420520963431241219671419342849392155527483675315462341072723672646735507037530795213106401140874247863373337284108878969524382112814547302981087823163268936665784831389932287040365122634089639943724832713285598730831407280355615349235957825503921094610355854969047666002969908037343587277185550162286972192225242554065460852045136117868402552978210052220914467558323378168725035359711454594049639123551332435906225877734053448816263936137621188238684036775964108768312117083599398976730728626856913634048848387809464137474461896614980741290207564820636293995544749822233741017025440670246818765246476030935131296769988979245499127258628385100217964055631354771310741904292970787298430458747454322146329045219851704732681388961690857981277122770331889393025510846827061882051600303547273497510194565463819214707499081961891943741982258423966003518463182415199191148812025803845580742540200186542745832095145299704038006750433213728048997157597980118003931382291822957992925868867590562458536460428698528923457345231372962907256302572518802295463523820687608766424525843272250014942182957050138724806085177445218539511574981565552933911655195351177674952627824835491732378745706675503891369799376218686983148734846324717749758375767849230433217553766806753820882055311681316919167385644092718873471661989231186192786298978178979317861699154966339041513149542388931034999022581454997818084691862367115408218090258579021809825922337618815383007974282660268422944461862936974998299505431746817396575364483465688265820390282144835751788355912525826209526729586671898218263201594768406572911977962176007185307478901914960546892091323633369484129625672267065076850522222309873750137873303209580894244754694793035560703674784607060674174323286628274504581525668589540093845200245617580646987826773120909370374657431200218511343862734444605484744776933926968327957136244687788849100322561646425368676286040951073875981470381074951916352842792603413923316724727502873682854489501549226081063549916819397452677386379303830735640766134058749967755024125124062921966474852346714642340148241662979952861584925657979793746081741432363634559366995407561419469144009303428884015499551843624573402637619274904398970176937574037658727599399375255251678582465188217823383797790864183927622714855320527160687529610672544345147822272071126912558341905326982514132146345670078770537564504745226723505019330596090259062783374588343515677819979151159576804312640132682034356786917492902790139476742977488718637004133864425848653084587484291705370512336078797875193429552871702189035845294997150245868897307823524685291056485053853428206335968731889492898570420253062516556072943543128050585175503450203313875735883065016349599563047969063900036223107246163131607644698751016413414237051150141183400528504998465043302107904606533937344584405351410277370748685478757128332778709800696635275847166281298168172657266921025736243994852762303284027306980753324530045764516034273612421141094014430000690795135438019471651833478809723364926626061919206448821393108282094169289949869822597079869083061517713329094299715828025628901534273759711300652560557495937205787352263475698985730750666324198031307521714767827890499265632189529306996108780992349377475227420677956859365307832793967835621453742958455368421397868296381921032534359483235115264125769003349236696970369450723181523261066311309119941379789784354118746120558921865140696343134497246848751515929533708730498703588424390864940365809120395503531998215810238802604852859184926417749218958255952576945674382005467797482906926692546439933924751026017580677316549904584071033448274004019408810554075956361284778498807666485540733670438811061613573735127274249936782203726996850941655089384966821729879462898342442932236705869422050332793190647083391723721894213593324942278574836292748319199457068554915462848766335196124567352142552535911717690492961781481077188157376696182740545240895139000973734368576539565350840425060624007503102403195809900249467870526962192476055409526672199227551499853890582173320178541199577702138619100787662242777183295699921012174836394957473347745992247711299411067904651110555862038601060997276731326293802439291461354896643884057740353750009565625514083785756135753673620197312140151155891690970324498251089815951812161771166709019052404090294603038144072380955185361865994436571540365966043242193045196452089919849937560696158441015562158378848399805349410198859433636196199200855353180950923861374487028924954461434050037301532821722489152904022827458894298756043511907354230724129277386588490773222435530258330600176887460021961897915990908831770667401218728220672757473191714645315377359794956897596661480613998771894926826072419404426343972738379709340816841324043698283144273128270690251541564121694217139684440774739883079886494517764092838244277748919468005120747365117143747056106375850186650350530595653104070147082436284685213187829321321665600791298483906679299471768593081975486017811612498056366812007864279672897262456827743912609552300563703717474299673111660565109321504652621130136687305756750037703389456540890710445016113560118149463097270285283829292667681634527566284400185894158077874321898052304528121790760944157406693609844038580217978708430856884002257651553254612233744086859417327709324314249966998446841987083616855976131648219677837071191220468582861339885610413696191785957137346263869085520431724631764373054729133152277918004360972771913679399931353262784496220311404121708488263148683072986738822323151618989412860427123282990324784671547007707686162344939741176613556580579805093932641912035235944990128770685453587374183139140481493049704402867016756404160130460995961000578064692180021275809586265507790942116798383561254063002347277699660843552361051807854437741175573861058842850814766104681058520457043114497743924619488205417453616545208055373114360433052648487493375363564584800482712666747034835507927433418849745492646541163198072691427389601675155939817097722410248911654239641416902806037920850096259342730415942011545548938282545596932136079804138238154483066542070690806286525923587502215124773795843236929635555587536704501619998840620765969234125393482429997776188714947665703375497742160709050539487727932779420893757614326448632494106276459678252655478305926424734415035914663540122749816372287534303418598704243781420230826347789717616997652870077367614283237353013469926331233870667572149200054207146776917615204840572244547959695196062784120351904590645389935506572043852944381254314651246967589917745506237826780114211345268417576111504821738637881262595352441071527761276993099738012369503277018515860371783647855147293588872215890113966742532285361070637400194496731294116824338403053444688244852670880930486018761077862706682793486984652194793538295814180724925211546446286895532513273110250183825478771025236030641896491506134904392521970958184521068732187891327504606264229578563605330677028890807510255082333198748630448181274007020151182493070777767575868528263712496597378897808582880718210644351017840108016996317751970875357422349925829344145450376530008744001994841822537752688214206288843585691083873556285545973282129126720969505226883745066355811003695594944130040311072820335467098287003896924948148155458455531029019620516884076654552347497606473590982003442768404746929053033114242621184020178789801528609234793110430940732736977078257089599006945811641689963751491399369100407669953382891269758553374915924607196187047338814489674091767543820429981407241724117241423447024420714690323813780093181156820232548305221290292077453356119364981534430232797042404176528144764090708859967335219564661798426806069319626684559598518053320451886127159136635368060286258628341261233073513410028730335776356529933469312081075706594774370169353867380498047090108457383071366884248532551488277952127823059300663261885558196302716294575971613859174233594215926230912430222745235149091982620979206318002705192397149667109629129045613685619850506220396001333157710829890185362374395440602017757653382350611072136917294403958300297546001345515724499556031076588535079718461274402349839281710013629599482182641255567414626113042162464344209828121715859685045126981558978407826720143778787827541845742099144652528441199484184004815688359831773055064130819597821977534150507559008699405696826655781426624331829801871806861318767375982813148900407169123866682727587512507509800747998133027453352622845162573896357687394001953682174221640331051269264773280090112191582331147920518985011633360553577168812092802451938874445191369409796464201718103261616744626918613858738905219873675273220634909531272359473039387709986487907607994054521395873176404614013898666775095718906476309193852917161583941333988970167742022919238583293805098182599328197882222442289447379914351890014184106671417896704876340773076281357108289161343277986932437238066706825683094729556077100902783683141372376832777162329858837342696820400621016112303117432693717296497516117800597717682554960782278763643047044927426252700729076606803403735332698912638535929004116176036081773222738002000891081914637915511544099016791766971640959194004536804015624295390534285899206059787220894156617913483992541487879278490072036314969916823561105772575393476928061658277597395203120588454990402559973627745269003954693042720323056396684377013982474320553037869919203480068790400716207646257486557613527428420800798830185228913153169977317155596674216436652553247234505465732427934914808751430211816221455665799058991193657114954411439814720251388505082465296377767227507793379062558970029462793268277052799242169400066265553005336370071492609215349511655726447922968782664447912141839831667770299141575118695606070577646873540256952017301910322410835418961886703011106865555291062070831305022495739299296409674533957371858917042376027835702340592368377407179141548605713749908288379809621827952314861841318960645305567110552486182618784964256881257681645151621423039465404632039586998405027996044592683238026650141612533868983324607900681309223165555519893411614096979806771740391033157832572203473120069552145800426939206886705216005288908212396623378365882364638287131024171222521506937640266552113060431500254078015734593737201323342579222244485818803911500026378159478126783724173121585107591912622081404363549072533743129086574500109238875041197288205129660862151368401831800947944631696540458383035558481430370856215305748660142275647438862549142014852386885306503997463778101616919884620758248537476211366243087148335482162716162215626503998082561488362395108999498530960801343557391686429637930612479245266347054208183944254773251581377324495945437307541591680084232355383877777204004183546919262276007474989650931951497592865373702768580909489344767595013166421643702956839643218672615143295789688767587708718548954824189630568046748021149563712642399540546599223980144487540466712987043801817505296965072774412105402912110173664640567008286830407480479247983985173833825381765608411277856215093572134899227674698189152912929955012169515199676396445258447708789532955908762439888285736003133506339593648673274200284897147079433250820948983662723670534238598551077957474220779590862106452504792177269117937978372941468418026887422496779938543073606435850994270685586836992182041871409891928713916596540104067469118241590722975011273700351762223835443457332128057335293304937893741474508098818076923963595427282738221902947345882319897978897252824010052559630890652141397968848317029466381969803990603861108797468162144548933015493919087838591922802695463383938404283357440780002094724057126058158877398761628103709080453528417486800999338456178416947328467092021429930078769396370198498742398850211256972775121396654242536447034622275926285913537283664044639902651147865576137078309736282404410111386022592850116863199043653082468279152649447746522328486427655163035132021119295451503864565343615210067056405794702842620106390436426905600618024756954767031440706939888565027481339675596752660935698905268747186669541756061059725417087649529264636522831741263007372805122045690022906822866791191285809311999445044784897681233973349513565596604824213873289702852007583679497136470643777948745734120140283359196460223352144512951776083696812897910036280085535956806258243299059165212374250399417431854889956519232910008986706914302942442073645148887874354710291249854629877833504776085154091915756513556690314989397755632337983462575620324002290611191958178533680328421551500882160001839907632646417591439398590061130178238510252295371263587897822943336798980489253498854661587337392508909825876914251570845676719296855602848870175766329542457450721926687230046834834738295164824496181273187054989745032217598890812138666126979117731674630608968186208105451063501553874221827901804233729085175709845153435242372516096899350789566711541582953470955368829186083467545644338159777103009991455442988828486052325302504228620552573218948928410269682589156451103908811896623862554662778412136798557402958391278185007194552853298912455140547901153037684652187290143723951223349829377355744674723102491283515947898800735970886273736971906782779182856834319207822462704218448794943251925870649158988293831663892049732928606403615188608749043655948778984096518757155720992578176996313828957023512824863565651575455218735175805449719290347638102700641178250097402438654388230186047319918079471405211192432776659187876448289363851521091073659054836703525216590980777268751896442221935795760899070961679584226547461973147129132370069322712109690491354541486098632184553348378267578987719753401337439730628432636643241822310043985926532072001513858796977157632439445408268031264612985096227645054669129393170757305093786758307787762268706387219348439197847998702596497897436884536950228112486076596683987553083482127372667934829311884802497140506583772826985101265367657149055411092408936080884158328800225483155693684081969297768595662865154978401195602236497930794982318737572072723943149690778772878210910997885159521776342238188755169255174342231475966584929526367888034679878240984923253933881402353149026063002179915997241038452421628329086311233932958363746154476267553442403544323714100276048145851251767617541625214176142101836393488941513990838903925510498250178837096098764452464054802943614272617444680533418730410114231703076218943991704964188254927979086879518366220231322318117113772589730109625962502868627490859152307304365653277197706930625117510866203254939048860423285265256983597621886224375571581826471616383393662950406935054924341637059062565520832338961024174055067596275350536138670033797065526135902818770563698521259553448308789672259118906923831251477085139189207968661795686284259854582270120977954446945345086313955313081125833435033438607274547096530781709145091848557134654387241986875554044135320868479487993411423570625774393216454832899093748149013852000988046452054593456865077143309321587733389795277183274843784302994503020970246479783425668361792573623321114446459582378807879740230030065317767393085183146201610906905703106183142210874538414667040974530832603892567211805477031136589374350167728376163993029587222057952877568997315251749195330782943550652302770711638407748261440674698353438121894684826179745108339800474531428855531017781356087780950762093746561529967294317489133115291079763708206497392851925937966760264502780182786445829782426266252998790820474165249918605308733239603263088519891532552806243324042404210321342150686109207303546536681565605375220698878421920255922479378283426857409586100867418898492124146564959235875783551719801744618746488276770114012861285592038822863968037613238842015515574150653806488204193111101006706520121676022570169077196512777494467709433582228366200092228464527238870321169107232173373966749285155671605494064636009699841557566789202994392671909528732139394527096455143146110273430703888113995345703625721724077099761793721150182632045131294850616285042273822647126941337809924259104414171983256173766017221846506641143636406962364304624970179474829948349672103311520770794754784199473831296078560155158063652897626602659132279746843266047063662980797462343052547704567156848759491958000033929786227978141626486032061365478891749174858891573774748060798822257718042531601433903269569055161175635749253218243052460129479988417367491156246114355745610556399524406377980439348397759539407088077890608928166993615549119297361946273285865717515008842973013909199158321123543801419286605704362060073169121165108532610342682261786546135203487992574361051306224708758059104648823232434376093819750187097620821837473392495041686858993125033101134458220774566190742156599130505314345186434403855101878937043984677042231927569963086228166451779260469970782391218264066742167244500228246383163684519553884827075219523959262538110133687794388653465169135787360489584749079602432964638648448102812303438100453028895675913514217160157330823903500259466748221849322437797426846613063217551549607776776960822610015198198353751709601594674615227146280709837476180954927139369023679065139343136597286087645398572166613932571309042789837871378608546246614324571341074846112710441705467043295295507021229410541983096823909503979190931084287656826658144649807543592020788094575030932314115584662772205754265558154735922540905437925101283575387501616304455450802435667823559276376479324691583765412681130586745823680438322128403981313463270190136447604615506895903499354688476314100335381990798186683423115604786798229530212949938746514508328383525110915911521581235147672178139654592295405633153563602729319770977576340883015397139505383284783799000878466820120138563423927424870905833829043514215561073407670322713527182700209650919972254575080191698015979803175014591908341606026304943799445858899698441747359775163503458309198278984328243302253885389474455140585292110881224377513186185980456726453951980989533010458307761781589597333366634530198505152520873691224951578878945192198892220525973680755204097879961809503368302789370861453973721727783573995848278466272490928400151294150763748275215108489414871993720015796173999237703013750243678902487297822013652804010607593164538787364993884994113895085960647718876870327684487293414815018661523404999828236162696422512380524607273200472424738925446027974160660470432905743706559461489880358515771182482275675351926817114258180890786198563322581183325804624942016667258876849378465501810696497778531919105191700781824545254047423564908760653293145181249384940167537548578138437911063767594603349775926930666153772152708507337886529581552226256906631353724264045305276413079658503880389944496760876230447549513261007281602460421865539014853116168744147516081032474805739555333277137496327705353243512458921599949873629001901730395769032249883449036680897252077645018063428298650176052241400724718399710624091437712533525655101591965699617427318778917405869886606778370031405290836203313544738523156574643579081830376949152970313458727536474351269973919383472063311625056204443873746857276597128140948592887346155421757108752555235509865116115570559429454966823843912938915124240843472775629237241542470802977557704462036576283350732876001461562195630167868538455887902239429206498263063311606247626952644406948052152132479714701015894424951719982629339499673540331174191242940345524167059924211542039250675609444363263341135987368072114701497416708640474702492784629332136075256982881425470029816196897920527475242624871378352922286993616796973986386372431471235134300728324125079462591672943413049383409022241756135464486233663982911304904654467696629003021827330869305663840964368883305092372527493324153908337839838414694101495104542899127122684602473404042807307462000104110779039362750206893263209945553576037505168124936234503855459698366612927597155731005924867416481473336220463288652949737960505605876299031430927859821256078500604058057078443131058837982060350371351946883413925053437263626559904218073581446428312822201184252174585259888345421897245731753031908984763275112599239670356357375624605828342084019072536261820769896776725518006827758158800455241546465428018771561387286173141866976516308057902622554319004219934755391804218842993783856897064697791989821799069970324396673908882249350466878983084734148245144663393667944373077543873616590016858784949502602605065445777080179923901827822682563550836242616530275537085403998259442940596308723455593307636361546257602475592127274748096224435504822883292958806793686285260871875902706004737437223667422549685148860546476807136701792260011280256998561978969241472929171704177726295124106706919425285320492026842589742448107725903845865487088070005251425109890049690361828899729061662555020979979296183763036636479488108255236965316148680186305133901069210620791760269439626279096255523577580588572222950986347969176223370333227307419896194987234070650224899991512735632244616132901407620657832984029834567332335021116841310429689084762123933952565396503466355120920569081244156772540945086395604864139581302774919432404892613779327201457493093418606725105872720293372538889872317201795673914206287515140375569397425812021893553312683103964735373065062864717583510619204220387899317350772126005070769815719327901528092813401712862923465357296198291235351370040573353976901773650808005573257334528470523060029857195257550431852417762047818267286234437361568760392034738342377438577809425619339505417661406227599713292757349117642548867205517365070422941231928097669257708616675284610285154471500479072487957064616072226984172911214540108937003538273365307369054729139517182604545734507180873441450997563489299327405884046327825247243235044393007493328511983868082279012535260989088963853641205698421830600296012126422600310071145806094491264539341066115176776715433140450561048530490730672819078942009128451039303056655817629097590758606286762784666259616001451377591581619850773526193019360188108311121475352364764671107355640677353712980985916722529077466305156690297608784238225248192882240936917901350485713326369176093773459520310581292296601248942565175757419566384545806642548275291300098908470900114835692565918291834830165432594891957295158872131256791494173490636051824050464775708279504605456914322590610456746054510700215238239959422261628892897643731974700253717941742145631733742682389437581554985172921900937325189241838259174689038513094246104387712180077199990565674556803914721316051907027948605642701735899745755539712919951467765605164158919308802376796041128291023315910872112625211322140768015587013302830886400808730685716596442513192940369713680993721951879676644358333299157123539244671806983508953330660167040812493756608208750131765671483686751581005665286627938416265139147576364650927969711228867373158125579120540771727370809771939009457894577384550676695706744011508636499795965600511970478663429451461967888459412678273457987164459257550470814895895324877388112597303812346144231822925537573882019432806817285250184240489206833072239930703205801402176640731448781011150886496176890794780697313033965629978107484666732664759002908545051947001357947982173073981256118511472404142531850750093807055244980331164893345171491963480665418312318838715143298444310857903345102278177918991819902359927555696083962469112281979611302253590733177022309267476143094662362764190806662071640823524752055537460733629739270391853154802902541639448155695141426359606839352274468989658744666560277134858831052251372348850490477887879124128892935684635280106155621349217910891546855302237517755682838409435571611180978242963674799698474284295039564973157101371185581415935567708465283358322251847955644837204951460992205148138296612402332859352136496499306687415324070276805003498511396786710845758608399632361338353313763390844007075188596056845959872780145535162827463934589295566176473187590987036789022916984353991428741645156543393668335782644235920462461069438949424647182208946792404928009655862972388940400034687415366209317096038943939668220638981669472935790827612519222130441253905366066689602785362971236040411180358552522751625233023338097890586734133484346443692191890913858114574429549637640803050674912983139689123225664409993018759156339140624143215788231098068777071486427612361461935368185066920354131315452567304873105786421580533955632438822717508198378973141887533662499179327662351730272425834195565700351603653655876372305431577524490152477524835317573792115961768435810174721486147640827215064275939587198173942753977730271911783167765301030826227344266085681898660164095643812538968778939498449165074301208000466510355371924625909344074243943826170607074171565129940903111612979065965283350135767797092853381207302185731248388876058147218198004837099700525032776514750510009246926581987031557667430816260859728071783886496506020158781489346947479857455308797255483392529120846411015159638323949027304290110130678929181633401576219946177610252302812591668344564738662031165937200741215735380158483289578908495801027095719406197163496841684411093428624496844528930485661207042603891050055621422305758181198034172459340261709112786676921438584552021218748823877137072583793070437424559534388188183532497308351008581274648649011171888917711440201939984769414605731296952381372392611411192433620526058468591779252900696553214917342782666867579285722761490853233221683715615406551332238066168875456463034673877204476146903932251033406524048942803642730507880417418387688023362098139835126512977193767045151451574707041272273328966441093716058274578187583802280679499387650441099168433039961914545186038077346009450159748795764627425704344881277936396247502177681498497356577504797046605908526061195727328038532804972747697777809001167497866974451124007373343630830706960242875166394288602336040428087900327107520870131971879586923791123096298925054173268689449009021095955965526548243825241135884404206904983699891002443101857473988873317992361148284629139567582417612603795536400279104537396515608850032447017682622669534402444783019289122424345974008456562744144294490050410169086939479952306528000684704252331969319969991740342305775377118353251931379073918663485716990652074611119118630617176848538468818445936435997654445110530841767793374265850107381613149564917681549708237753608096855311991194178043666009939506937684888259387739374544823413758973899814774388023604966649984894393522743835842664090430425777325325474388370172198289066146029952380167433242950644485196394320806464505652227350497301196385709188760324134225951466825739785916617918067324170815112667225518344910795752594020545369587713801309161775993772122760931422686088052026818341502272767329465686862595756179421466367019453695823091429735216723057883862822358176342779056143825340411238545428275061773853419163013098550459936749288344640070203273013485889433483666237523772337701609570859291676111273640612599231969348458716119736511176778893174120727415198680777324000838594595062226692729602050142848081056089869859885154162121998459186729474916002397593402294809602926697464057912657545404669643122460542088547854050843414018001731527698169229473946212123695307858843673854240655842620803797647210299298105679176048753504754470142573092353854500211510316229280358959618172769233298864301513921754215892361309646613029033219083541522028431521239058818904506972779353874567502138344642344653890777720460451779028735639296775585229812059771212139398587617758514687405144573764771790207608582384803043691365151462727030128428295144589583949967110953042965453127370072523079083397386426422124824685647551999516844156143005635655844480836537553254340218753742441340027211283411359476873123921144619504852221953966741814951489038632360791564288479409309870764399751343545571762727555631182416481012275682251080835870582140812581918553566193417484514650624005812643759249134127360502255431244169699383770871460907593451116904384818311087278613934789721379411258547817871314853629308248005783688398607054649900182013008133158334325036868130021986549968472005908356865497142893182245555682862080326543219612870945270493885226582171617385326956696716397647097048748580185188402397912294118014007979862188278954023451467117055507920944956282802431643566026904447158811012965384217705090090664968840833324385090158711739896832211149149617442753465231421133915553903562015915446597905401646089781536201332640393997581352379367357147612153077022044950163697216817501893709841175668260497943201171893728074048555234458917629577159551080739260166889273959426743059439510047464998414294258944972764758687684351426608976111743074018670047750132314550198691030597461749005819118153923553258972688736485302718155034718296510121285991585224923325678741641273935542337246870180699324387477213131191896362926892532599537065320892616281717104028812314544550202400440543057008341619935479838734739106954373196241547532008869912645161279203235607946003729138589057467537899817577941558402016879273846450440234101117721241663015528502429831629684036914543161785822202794968760180369121928778469768394862264695561988200895053476088400621897543245998661393495939144950139220840871113134701271870724945752389632242196553920921759368175750259706293921394601464131692245192847770290387362739329694177023136534046503394823315856704323485365430632074462642887342462357060209042974795037145710607880628546280336214159861286931405374033823240318582847447419009953193114654475435553372112832221187758049548674015875928952730791221032047470709190613863972989379296202715498266993296478460985803813482888228155583046874891099248123834134861054572176731278888016643429327616365100139094211964112153832577112770874666082741192186074263823754172484443281111158698501476098843546067699452072203049130605818748161386384017252598299346916706220594499042974893907864638835433090526735246596302017060394127083728037239996044545324309313289880158351073412681255876705635328867666353392019110710160187434665398377899639094337641905891648044791774349146910318687951297656824762565480905996513489111903109598337037162049673068189191111879066164913441025857491079503747103423845217855814061815626105563112225107900288816723757836992517686193010677289077740684298964254228668521473740971707225623293255699334049135350605139965017639762908820117905082683973189373925172927750596372054028616854428075039936136000475009418832946049156840939649712518624810815998136151142501999710960171024846633867465249158153523814135676129291605516945531069297291035738981977967959806500392471134853174390165048135473124140349602464073811580531079052397164166991149788082233374448266629378209237163946799197849515902072649616204724732646265827458677609009133765389784267421900721255273161469038879008277899392059831695388556748978314993111237586783856082443044295135615630756813867820100362968627936259749257519445341499122806363004787878892705248253044265585944100622378940378986556457356399975593767592774328585002769232480797871803588728090751263987308748179624881607773112008854443979013573345499417090246233221586188625676227574891980706781854203771132984173472870102325543220858787632054518660428308596465542074134452209911050067656975397615418253068348564728607417852166122594735737123445449275313124036896242997424334622351060745056157433323995441432622332056793103010240448934698093017272037438883512425546155517757872250154357102335622347014209655098959060632722675236705631811121025126439879493556222587056154730448100845926863019884699547273071440740183468649698459655307594682343579631091410380427457288426128016193315920896494395171628602976242230476431968398228011963921414143548571114614118216048459987063740266863077713997092606665364218500554323902116815468284556311979716488867555420418013620636659771687530855846528476308373705954609861495768225480958844138038066112759359544167180256846721291056627891731452101986102757468693183235071864817119434909052059962273317005907377548518978239007246304974647365565524516448149953984633839646846147222707193218943957043116764591711201331583523928494945552817106088565585752591643069026023583172562316563466403703232385821739469693480410354412492477821313574749995325769795328185435652276449558164975401293561537573206224036113079205621603898600778419796387075325463155243206305924626829368782575057352706537933164345983721511137157739984130916845064077378912573074292619785344489468708327423482194995910328259773219182962464142416156621000167746468032149812324408737528998939249694364730763069611654711117629419968115368904617871751997233234155998227124408530520797753115005351761572775404214246555112133820832133101495820956601528535679150320496090496564730506060046581286698064486544450896591297644062473480480914213672300194804045589115496570960607082254120193364517088434680503001754376907519452497906656335939472674260875494947964314557616008571584094919632206629678656419273163200120098511083227069284670317791098533705143389352727713616715595310657778097466853413014248315566862318928638439986001757477451243309817767281444947668148321310573538371500384807581535113311687149394464740922652417649188625880871656845609930668251797208887855476799776101015658669819456843418791815233305833920381702778504216608927728547458524133110033654043682047884891318133644309492694408344677698022804395190362340446232739439777430850077435824903096896106563078732489585036464846710379409901019852812929164820974037977495202462261087286653327628063467985536623419448717580161890555521269414831965918880364152317248766456528366416377090654770583566620848113334605513457971784807458020086117416025411049777003055976410227613905416392048911840570339593347975694700859931824754631453316259015495120961588865057735952947048072552538819052794512920735422377399972552111602027625525770101439595670888175510313962446605436942149751853594701109780094244445417857539351945233689239298475352020353177442999961482852610639637038978704691704134013898284362686656770572515204322405156447560570502526690446763946066462832790519822141782752178331410756494474271851471769482019234997749852046152689007738010071439843223585153201117348841112844340959473907902791625917281191155281899810718861837146764337983368073919132849038645482618805026958086419577832632989841639192493584312957511464203168938940318368144945307468984621072136931794216542817352542303330977591033930179733484674824196624690242485860273687105061475876547578617684273012962370933777015792896600441881569287480644148451942462962088052951338107353607667143917521701975775653059057711164570267336310562654512114420682837169645229297012372442144464818606463836731689524542584093467279367615145380149128846654024063379263249355378198601960564639896711874778598327732360999221012080772985765536202229602030871360604309179721080122726772531225485946500375688730250515771252228383364983400377828991863985432708266054087037041973765204664625053258362836036665829553866584819190084400455344591476194837588233803273108587288157372598490050401410275857627406682591260576264957205003444444410015016507662823854021408999749990756169730465843860093961624431759549992236906600355457020354331956916418739181883973609895029302928137519536162219252708922507905291526910844594397044307609059543681099579513269864467140538857555042100199931657055869717895975873764347333209729565866677271788755045934165685752748007740719291156806204040393911496793639606800472803396904520969078166662105418993206861565413662905325044295417076450682275681374909710665677168118581134919188620938575734882314542667180418378240454856968851423017786614916278305009009161940218544542038402382805081308496860611261619517843839089594746108499511269299064506483915799971612631887576393416969302310485093336697805410940494511588082391831582078668036747636805841224230789281329340708895180059554589127127281237738223648231263022056778074158481945420236982200537213995947863281484347229157824902460333271943872138098668161669170428558747781143807928251310698252417705849862285811165190294760550573746049148672895048287504237663353795164211104216989611481383613518538267428866196021515936005126369051634552636295421896768634688640052534220302186801326410868398770115358760333635264886674347603630610843005928921580093454619355544400914654017894814272735316546133308089159006511782424651632417219954110637870510503665651653353962821661541137979398490351588758351039496594235266130878397278897764617734868171731098187976494162896024399697807946653775802341687740067010340515515574198675599105506971785597423849755498431598366139607504714750995347506575923484184968075356875010532048985824398453668550966234911172371677069934851882479128912781501794153161271811417381364393400326057458273985035749236250181767714737198481155581808715401612936625078740240314202384721132855504870114158827961974890635406249351944782363519797038486419308300445704638123180209296850542027670765600382585567525545460000360321280453335549797805849992303878250013695515532603270088779841518180700698922249875256981663931591406613017861116095301252286461889973470073714643417093731618289989822762589677513707878111928134976067358589988717282920312143748838836345169257702008522161752268741668050326268146408591994347017282196096713487173808976323886791748406188554439067255163540895642286324939596014400999151339147723721465286958481092464413659672247062980096680049518867675691316309711754748926153431573383492974419325503175749363723093461681493961407183458842855384331129786004995775454694981321502393638443660686606071863634843116170024456838451587866016407286536479846895112732474965624090429905014999437169270541560135483089755886078842844044088481942814627940463194783125221186637581258800588504016053573232896931636197764983494898052840581217709119527531083748083960102951066837624543087202343555010936163566731816514541003847742731629161661012659937875857028676876267610597734512088811977743010571552341261361175538131672776777379926904542822257016718922568006989705926697765965406344920717480811211779224507507066136801357472389319579848240395052068303984546399726403371196473027819425882225846773119123473346107842426524509168636533024087844420196114228180409425527103786683690143221014127966364687160498958326450603437931999353511198535276817585775322475506623604111199819506559279452347989663601683829110897657792306171540876567307371412547281108959755033263775620054592448209484250011015960113264531118183077778389267716619748439979080077241721072207331994324335696759809625676532983912516119220686704846481218314194419416155551522572063889176666337339826335657363583951320309850620372690836165978323803833443919983600650690334373752733022500127461271290512173463070429338090911680838831580018108141090883347812709852240032404077029940770589123609905842784290906973767099030534723005132710212122469042767859068790874205404743027465253582732540929584370742394783887648268284053627586767806179191672363274298743872891266055439267267555355528222338812821202817666094593654723359637191697540113454267709704110871823403526778922608700199309785665312075065429619136424379203053441669778757551003613805124150208821031501089728569691408799633912381445396702049837322830924831683854668615958920910891134606830729290097250504166704891442236001918205795208078515495847901506765814240868134614330751170891024473270043042890145347590724522074993907358476109460339362368239737315430899538917579742451303478341069869974162359900845808861151539688945589738482719368955257002568486570727815543106874847520965164244917614932968740518412495621122883032503311062937634169916959515892126096040683820874829757743650110476324332632823747138061791024212062116126925052658611673160912492801657309465880668138536412260934894106143205802790561770735315940492635526256591556993603683925665843817943695080073542579208671826657580336855282303407257956655944133699139962032588079822960017875190125670949420299161028355190811540672120525889973231658357510935712845861900855735233428615101809625027831375131587654186494162829096805699114027481509916368912041107390885591681994897022142999576389108946647599111418778799603594299402603726920321129057192660087771131775631107454144311722309077834046323970961080245828802089507395024154910240555933806181853916329282416019580218193744572936194171928299530369771557060432294070828726902467687675946183865152818795198594318441085461659969909015317929415759760919107699712940060712897280437977485524744162870309654062407090400584459905635399745699069932872346639500218206216573487375892213112542257991773238372982885285348138104093372158752951134652649347736062137166384373751035991522822093438575123327702487539939562188191696354189110907636727492122296528020331637953709861118173993369664868819864863011476499268088267748935979062947094255220463664631325565024671247666051600053312534956433576755926582131953227893631811999475452917535011819327402725747175081678618470758883773806171484645540285595585516610993937457883123486283136031331256639547839423784577429672351805391519857705971853511615679612247333369542199277084678486036917910720967919597318704061385791226726300635177331804478841200669220183580886195043809037687272329841277318824695558126314305833871834355562395585618264702765524317035182964762261741627507171348902051241907306492654125493453087919704842023827965034370697120741975255660694927421878361468688166141967632208946389711480944893816271814946850848875021089857078084456272665545025294486084340923811818949186308828317936093714254507195378152707983429729435146839507024249139121902143753430421016256763630523546845979335346443340778807881935427718511869141025696215572362647340455751464620574104947519307922430136931464578139885747539436788302448015553782306221860487027060887608509288543428523531125271832664601598477176615665735116257771558759686171297034139602156763295945213408410868299637372251897841032009991713109928840635074850697931668253252973186023333990436817938002726418916850455197857281769274645933216839076641087546591352526595536103121035588230318259184145300834954359108620920754647696996758357018315949836593784751098084549916855733151925742847809765159842705411506144343497118901672885961249782160005196737189344372174773864942152648554542246770934933498703772215580808983290879265800754380411357778087650443865478075813417290969051575754870124898852097340523558802883696524614644060095883460312020866596811865366134553814529767571471943912178980402893391492259836318471101137124155952364295784226989021275740412004654492051085923371146654478911826005343625680844149870368084998618119146523431113598610327904721515875410157030423315681138674945606786364181583678806414042964616395483732857379242581486892822614678023356840452091431521688322692203656286847401378703932581227698631492607350428612252932603966122427768306588834511227793067483289217440433327054198731722125495919511808127696277559338241946498439776377827877331539386478916609600417048453184767138703510919182559554513478540082843171992327065724388048210715002833017295411155410101618876559216841751800662999477235059970099450411358877502661240812842604965356323499253065045962859436694233375647839841075155030181021545850417233570972753237215665686214333620182602370340932877327956949526146751652583508882086550008575529981021400626455213282279270182213449371363559919801030516514350408264757298879809909626976753502747492701360189001953150011826451517305767855987757825922252257370718842474780700224864806235093008448925858043332428637684712705441635935930599714913618151195087560513800957383476727732736304213691076057960869921103355214570812709051762083680773652958725343733716745699689888289758534361481167498840724937162613443546924246271322360812790487481177859867695058029545713887082033910092063669624501548720122960611009000131244678739218831551312990280254671713639829636186231014745030289631081018546241638871599977880724229259020439163370974080829562364869701267607108339739986891701435131215029699762287946257315636490620852586831447899955284903691275543455302723605757525262634988008919906294698260487642454791025483958513475964248551736984336076140351654236514528922485491159796244685866829211170757555296617277994852056259885939556149596067219290766862245037647502356331267328908068394957008471649731598711563081703498603398911473876573064068655327100843585419359369639913872126157645680717506075122666697486706793572646942142641742714105305472844538660725895965398985761765656458397010258350662467275432721760323899377556370212812900610470562097645253160809105740624973502143021135719835293591549151619112082417080935200682452932754459951636345569048338645797598455194320597518734716015028364120389102201126215339586815358637114813282637417478482936235331253514243315362673891057887031746485361257343626834363278895199600269521818436517542133209594198343443824521258803521968536524166132094443668880132659257810329417510168062919144144934153442285968733123978620288520542420333975182590448870809216793040352236020311105586646067414678354573139934318841689316655792049566882746725246712944150507178018271757063910899420112637896795525030375226201859209262807092012402392121895905003742631377627558993699445106439048284380673760014290282897185160363860650445346278266130142977544848453003061227512421999707937697912335079319277515131667560484549958705953708819730709670746735980009228355814848789348303857381621375478962684153571593791656586942348486867148811956184506328906313920046749577401646959821525175438077047508123587958882123495601070202997742113554358797749740857223641985636059256318663787336507115374605965737574189304362105666381101890257824313398515019822159378037648326758249770064752042250563913414671124093811172200427078417832308902196311382797740024906555093806369736130625564522833831040487917485776761894217389495471968979623675510160089085844482444152669370648663695854986141376321821317605034876369047712348478518918104312423884202075521791164755533770831708250199522718434667400117687833433077890815499660248977636996991179046940716219656233599424219732221991015324659846421039674561278662206583240438488294423059582197608421301793948579471421607486830252581705963465260725248321463364449066094255463774347055206461786098223640632388588072750641549686344728239786337524816227044053194215748165538890025620200865064127079143915648045343699681415686929872676321865370905042761940662126647447536101733828306446516060214324658167367848457146731700133449863450177420848326584091574580372339071066900324072630135455670476950540532959850131022110289090605585054950339204176361543160219932479904330443642584565939352232476137692632626667579006818506309976186415534169575335842684302911613646323719035927338752255154388596228718998251080169968816170266829767681071218346814285758353527597895697499536472894397422161557986311488931986773130215118067889428747807205907704331111375118759368317246417215305596383045100324547024531924666807341668363594824855314821658813649153830502117323512430467226850318297554504463460027163338176716786218999174938872668070493251129171176451459044343403687613124172920564763545226311124924014412698332095882534359352132468997408879088138722544378520780960052829589823365484607212743746101946658966697568194384689919106643562774216697551264955313729137232484605540629252006740589837508921281154093865330186572172465303502428453238921266490400091393145202497632989172284113371822973635690422224447051310694661112632014699457529228881826042839747268670013501027566194914360487800565601655944128005753004634608782641791668699666606342342455884989223532970388782876056328685741405675118944274645853649280769582526217917185124868889861908893902128953422953374863002184891829540730290277545857674582381547507066520089626795910060885595826764118470968830427298705420587811594036019644720985543895116384992131620206591536921206021754333814760084571829453706127790387550161964807703148017627102575770780819063667888839815061701675513427360086196676997220940832313578472328820022129013899992721090776276105582324226177420732402045407928447573334922960801978484790987216239907815205982055368681369733555488914909715551783830859057352123743784800565493877790355828036665323972034393800948362641869672946403778904035836610109115283447923610435814035740216932242828217506838941584252628813522755908925778453912081522174151867985785976984868452937277037471834902328031640336992834511481332345197873603596338541645732533780326637464159941067057071279922894278309432879632407938393244537501098574865853695192287678851015966025927021141403438046347992511107993399425206866085697978628735157967508655938647211989377338439951523139855032796250319495137064876559399909850361237416078757427401600546668523299777304442728418506402012564829805670646785254307776165635087648032804318063262539876433271291888218233431230567232098898533515457366101988359820218280248458208599676470977286628795493297778532604688663473128493796024132175687333731013603429882352388671689611333449961227843812005481282335848965850008119146606152362247279828871979756130689012397040178538422456355429667705290418685281243741487275068145766296328080718231144556523031973131298004690224747526852225011098951668644666412909968981132451577187938804427723005356748597833204762511971331407724985242472148040654742155004390667981151839695581149773432493846901199521191703295132509341465984422694755231205160760686760256297967229576721084308242513060565274711398262002702939397801930395571854602525463280242959638486453816625996592616649480716757850370910012334298867986614074469345107931768271982981089310957132001471456469898694957413169902003153738497647480385268943535194263120631226854902252976372726024486799558390303418569878067461172288280504257237065574820627010473532083224937140811276524312087625605579392527886164095711740303203453386094571269933976831726613239715390739268146322236310225428583053698581274823103156607925475422179638547721071814845631117709284597776819345531416911519231837705612792476843969888601533686860200091786607325475250047833784526493390593891558074440198135325612248622555054962646285660761397730647928688678969229063083543731035637841925509109442445516857418808181597119187418630649802515649284645267633304530893922502910538518520711982702710480983917445494868099139182535679577162974802146715102866842357610114699260763697367974051193305771554209474474667447500505424536334446930024130922064782292623226123508405867110007460231897515620492246780009353710880432513993728401705704886751692524439979585756943290272232798928616175173952122902021622497274476295224809811659911450806210127537204806510395293400561907701918291618976067673207285028995099405293305074917890513553001299826270115113306178993532418310294667398995597854806918054890927836806525792576490281368894370124332421486404860471349568519589379630589279029698335166974349339711442192532880612198089239486753731864976977287208029016926607937008376490221555618246820357250436850109028545066426261436828424071326651433035398454928913530945253140595103780332165762489753733638673337639923850734440411519631177849733027351920997023496101510346824315206801475388367417404807737723702641675511085768200870334835157567386465562416570862772815731887573679796440711793828064827973498662249013727048092432609816525035233705237546010272163143045677327036817267943070363940602206916747437146074324066253943099662824587371496479002787279287008057860921184106423663195279046398927434438756560025641321443088098060277189235547991084182247518222898259648678469040463286651360341936153614515117799953723992785750179442763579585292746095733874705341441866339944100847031588948685536939864226580732172836030717705409684690810196781133081786766430382049284714912305774100034091966548019718171651036809728038089112928939035757741626985576514758151100221413730879444604764286504013248328053249771105738359467301945830162746800201176750402490606078404815260724313310752903784786287158570614952575390144723924274517504934222269904076435597800730922601189203622880686944320952655492714866028818295124226713951798782132564573802184825566898694834337391037380834831565190557321503548317441357613907456621239150157795629583378731258460806696554428571378095733008908910809735335384852941522041966584808193691194235294305887430790295547901046258237507556081054568570806860666289886979100157115488954239421308409652958071958731078925600674996981486890851992348419662907787269144014095977527111133626491923387070830829847066037764615564198998310246186210959701652416517625463926222728451128429007918352330362601011290167276759395447614558479680245053863695594706425013934680710808015508847431189484246525646861755611606215225631740820027710907726236568213687677598430213232414829810266253414769784273857777224614583275385028915655871111802338397596975645484470136768597571441152498244300510224989313395685653479734855943116319736379063414009877445506758989094160859957561402489316298409166666699214752035641713224441421588872139603548752781542929745771788222281734117348755838877553741838917965513685440597556457963573964564175392719929362941664669856634543019986017142849930161040619681896827880170914657642938931726841412733222562072230853512714541883927544034670662949010275900937972282569863874633651932235499177461975753905243682129862378877484563177931490534061102177781401484907467711299030206773696064098675418294280547738806543984445268235828771382114498493039633497230751127968228155013126675015623661008182625486369952686909439326441523235125485379717846223934685081273830341285271932538537181592789401558409438541369484004785013790957723317908533355616724627584514420481860691967079731450280480728967991085856363304151001020920466408729437699692413066612580396496598339471866087667694909080554097792777154912626363128851978141721117949705745971806999841942067080450267248531684940445870073105956366790955309389983519240204581641203777475596418902127366643156425815556763952692625845206438186836708081290151359212226307849517993813746675065447616686703946704756500048310152270460445419139798678624532941368361922764679687640267692531079265960500180171766875384989367382128830330281062545361899004981199844229513517048454638930100088094238886357831273253725515855408210127903922438505737748901681154487079138177923249462639453711152879178387973308630782332660807770474646165711558312887534127770377805047233172819230739084733614918379771248034660533034384331355441056923887063867875407033233689968920068043347418610627429432424145021276995268684020715434708997381530986596805147353743571295215672955205547309796745249744797904952477769749924101333654200300900673613214986440052205581149339403176596545074543434029890999636465862919323386441344185842314226249202441940078753658002796032565879923328279018981620320815170986214409965129183630929501215673005516510445546821758582941784466782990419338248969102712983395407921618062332937592601108351207875150837969113053267280257472939044207527172305745475001359295514274540124238565691431145878488474594815954154724661938019615253924414843353461769367618706774172481259855368085844731496063992718356406115933071548758749870416035160604231582393290084308536103605940137360743665237702360600185741036166047548234219588101710209350966065884207127043371730995637931206272030356933468144476005712320782033295921870387033293084409018636800022448646995380572016657431932426381236015040734756318713507956309742499879076444203290238397098412462542773375750103902824648480731004464261871825979421911943686720398580852748523920468847862763898458379033831157120017090696169745523449329039914907572532662896054741073148725448154643820654331073580303338859570798176901677448544303724901627800599342226647453892748698111746789098120958192789220651848092903397270289688373940077127515172802386979446616598886687299716966996693149412939023821758212467063573143012120900119376200364697006290743416602949001686391096437872545758871811996624823924581591879624484452532202937874000044302558161800410436625775416657979325954509116242979930545477793584260835722266296509888481867821849821137005792989775642130798988409941326635053309778488896673700137508938448645556377813758907044863339848114866391216699257638852326257558181441969333056657490144309237029266966537345788906445537414857467160730916424952171992769446418861550086290428869416298735373338468049420456406146344030388551479312322453485065139318423506934407246092471988670675855243015287078928666953473966429071675466752383856416868180893601417996851771722392612958707436150681206209813316428030337010010813821418348363976126932887916618717203375017013704757055123005999770801809735347832427770290761285155535318876844239051870314944134712715508472291740257158924042597126120422408866658597557096188446271818670801387082690704420885969559731066496508094107424495675511080238216594929230062386010590476878863286058933491545162647897268868028033861215449616311241469216465875277330517547753397473698951191325796950884589981082554971158875275075369431099953659600851477503916194788361498084408017990352196757299361044396972248526286345870421250947042060350795559908197133243566707942565589539592542490536229598296349818993668367514207897407049942505560549300451121199420358514733176838335487051451187428061220000199779797650838919905058016735003388383873968214688069647731121272306794698009077198065352670298186260962894990976711174058853871404486924246680136078741268402787742112904513181681339005494388751816249985082759634021228795694005808802515035989905347430178425999275569691600065803287282297929154322062431590309572284566028001585310767424074329957456228001632315726148772577148655336549871356623791037364605832684298704999958145425822434963229590630024720036936822732758316529937403213013972878365253187788585927605501237785120072313312947003211891961064739427152921955214977948682094790527693642707146135015712731144995610645021075344392146697102200490377211558769166816006040489855403144940400041538186638862817686041798150128224570651521052384210781465249132740872216981566497496315600819815840094927252834708317280525799428370220353755704824320521258059491680011643682771967962488595024330524115656101093579708960827901659832816717558419082426246379310526274570442355239072929083688244563429092938910487542851250131589000365772847730246206868091364189493292644564630790941239024736205622012737692556473263532560158418391329333869449029824623152974928429739560646766606323033538894144574262330055383418861987597576400890603120635734648219522546715158393925348538121235075784892306595303542566373224507312325379069003639485435377771362769210101491414402717822530333654569065679903671727412333554946530112157751068344126889541654180399089525495906041725915755015605773431311605045598011613249502615957281729561144545238048351360033409949659144922448238763793211994746245332069373227129112832811284797250478293560911627678770329393821360997983286838166104447486320934864594282230520245568649186053828244452168516995658980958406788011278145546729747174448230070984126951918709603722808517840573232965991363645286019394362068856273472627342205366218208510524788184979495226368195322426624983318825530963682435665729420804515972824292097146104650256355155416134024694806354356168465447398861803676277622861139658797872941605590820218790436071850472905741257195751002460389947895846288881785400382678082674078238692263350571422511727585916961437159456455007161623308581445767964357308525779167150104415609156368879531406989370861454801726001246600768410137551326914086343597811113819841220223397977273991547182756096585786108979251062734602433270845404697631636463606386639972409305437828920800187621733347443306104602396676682622004177452258829583182621311905527375146051202780273043041425599875931012158131661142428127827113841834958373029215881401953406224384222020162318527324667632653751372630141836769542197391361519235355476847863379295210863356821179682233333153428353814644159284042182402991944090268333364618967010725217356180281975973670876413309745000869664778441818422194938644942186026472808131806642714102874213858279194860874361700732555750132021155023405006562524995736851088061029879258815517877153473151366323887133104204573034295320022249885903594523372717484673831251966079075235782606208709433873899402900562712918044219518511662078411274888546030483128835825591834518154883763145491625159615781217381358994311569839804474266272621320580397027172982944261586797988904484628075083790023278099399208371899054923799178892820127682962178110927977544196747349966313863165005546739673105431156542354374671935403615898762022938685265589278266531808764760842804296088316236576479752226536671799623566102539676416402197743427570191176316157422366603904225160029687264534739696726342727482176431117792698346955445628841005061893898181766238077263129131015833107785968558520993404117243589993216536196676811059660996558688759568153629781311397807005894697767311951902799008532083409841115411549501241275009082249610300894459496158223001959913684313907238884462177348626566463101350844716991856339868552270532703796237232887572499500033057312482515194485242755172076787405705893405928200168218973550202068039959017807213304746891570369686839681332845416396026585734628759746121874765025900397520932080026545528898582330296354375125123120116607494038456967901535539707807283992513682487037684488528917489932544853882444894536078847113123630533398597394408895798448454394662461264153173895723603459112534486086859896830544093829431751758971950838894340043574375477531093658467635537557992184912473082449421241742871995421519148825382831601041930516652065570931682502013009075626811175471156981254810184441529577650731588381067857674021069033809931672920592748767426626628229266750397349020993895543420872293935205645752684140126633504521464187853298714240528018142507783338242346074301421987943294112728748587151164305304091557369423458645259096760982485399571190631613610183588476652361143378964338437555804586861262275699959447473402967469817743472586241916607797038096777087953492194481350324393429674275011539457383625775953301732093145819213725435070605338469930398537783417955502226753614488550470906005137766574646177914905263925701040706776251658772809050050235622798223444191304108999859255267466501748684357924967834974390115632575198143678194773854787940741172354201155134205411086279639066257996500018516281250449596703854276553657199251276043248019293749605865976236502846052289664205199958301180114038369267917900641415450101683395342113259099682299173777161330215233419117751877758734317620504022573980650351939796615433073097435202289122216713479154479974492482592257863343540168679985076515273941796049357688655648080542174841578221371065906895761084448673245313114642968824904913539137518932792743603079774480074812313669922391904791433199382007865688454846975936665950095823499032643398795272447751300077157079816460559963851386945105110328929649715632355017757604523607342990399070434988122726935269929692332054793656473231315810727095865453882086714651939876784217964863186357679773542099528194467445796775289389456068125220858262779744886318506771161638077834579583216387847875493608085874946198245638724419815404122776747653720765120531896518697300433438984741796119605279364316573443334621976382745164312570109162820116977491003168572556441761994508175353837427442652383025776195567187509650383261853058898626312207869289821010524834617945444830550132601994470706330792888369509242906245538282129747915399374948730492612279229452481132929847726882245160798427403199722731764295952615061686847622553771682747785820312102517931728737222815064204479859080802598326983764449511429676349605055227311067054390165694511856784334362274103096553348782565622007038354301925010119427310960997345557647801659215063579109531262213184427494108006940833774179573877314834226396922823523487689385780848423463661375594293233931290288839969254677673762284367271663109159753051468693808473655210663411981125785361911082335000284687299354301209601364228209098469685491847794113196928186636925908667379355152808757660025947188882463616878524292002294158146606203946935434769119887004592443392819146738978775266300931673593417467038907711576363939800430647961235292955088665465308266839254214967741093968611553502373863827767794009006812339467468792807431251597335561637047790257158627422143647540530680823421573824315413380764460656262669635775267156479186747921778829984720420397917823156796028642945599062439686884399252551110573561999981945685304477557666375420876675637826317178448824016540893795027555478005788954414893319028040902480292324048535180348602109295342936888554230984359985198110809709437818140183618326348841634897778130238595288227392486833615522843599623409589880885606309466894037533196454305095411149368165823700612585439781580791061317157062315139946148775506937027908465161827180268661688909193817605099814433264104736106676906442822173407885149135032055135964972193179952397135575428680785560772620572877169605038038892844661760143988725949531956705972140249290783167562419614113224952244570767320832093078212203947157164899591911886200404380872899223609192496812798684116337526933538522808079985745480396676188447280243639703578668467587770477877411446219114565401714627898779558323210363477168678435387052372858708338622590746254694755358285250761477339861941735245280823453133261758680707427480246313053405488612589578235846605197844645254816360186027416555519226300005345507660840636566579815559090314771449215564323135037620458011460026099724614607931413136189638732153426621387668989872995815063041532794862668506800276896798851531704965446897082300787142834486011312187203954429472727376878140131748318549897575618892459003093153718817066789518938461613392439148350570225541152731924105311859372596510955977862094439044572865014562632455897679230577428392399268808778579246160695868360007622263394104145874990776859525628890327684315640027746455113191980203371297241423620396399099029389166671412972721743200906639218150899238042624412631068954313454548816194103798902930867964599121768102777297912262913379913333326362704478152844545949361433826452596294609472054724115918932626211477326324518224267159956838039513822554243907567216828004063028198192410223837050108566574587179082278688822855451591477003485924677345916874603102876808741427154800197211695821211276053377265027071860159019513873590773159283701073100708407211876304014770431282120324081691674721556999595949333763650485714948408166222868137062103815099706792723229407438084988648399655916293229530580565595082698110568646729418155656931686358063802803195264806221200030217714544546966379637439880365970182611023415114709703945237675612229348925623642051073336464088499041399229305874523734132438633205214922589222391830195190990725287125723076138724047734718300345278411420856310471958855236230410816632196227986676817513491916004489701296828024521053360969625880426131007892431373674368090865377788757538316504406821244275563587730966326893015638754696705266282434377481633419341550758319345875453749951771332089730910098105403336966559913382702615593207617745561449168810268862742354936224676807864647308130727584883173673342128574221659350820664248041134288933145343872519010681069776959938252190417257607490223520711965262887005304918798645351619629123536478537637248245665767959036221013895542962682488241957053774075144220401869115890556364053972729615992001540025103679074667085238399123171928275432094836345011369852332769159140464448646869791877223017749467584572190593283539638555465799480850665603798823451249544239179574491039413457655615799227407323624271291351533504317605276836944181982484282925430388335904494972050551919434556265084022130998607329981170954609116276770619115788142386161687203175972503430074326270919622360884790849936834890172659673821640186259171704135976061045314645939632874553508418067580836123802010473949123101379972955782594316116544829530089338453220858092849903122161925310337988742423731931613139220494201273266351902830731556079355289084207521562854986894939748746616092127754220502895551804730307014675867865546942702734011492721539353803342588081366427176559529191443346518529593562959548328305091421888661776212583946739967287977611581087488810253711547899784566787901316602827670417960149794423117391423246788441825536414310561165895020086733457158188390949531602988017523089508399544751167344271228384189168082776863599185521603252738131774684540035318335348771806704578638760380519690101037606631004154333657725597469028599434829668609290378109636711946053161092313396783597103010942249765469062963465541211359695309783238612803556146849107417007630636897171891341127498090613992693333155377433052855381632768040214439236449271105020064479191668835333164365109736580175061870983091038513814217309664824854960694421781517278976484119831255342553395496958234266952555404608409219084729518300880364282405657532814614817402122991776530334650004806461818398629684274111411353709909588883059044520718352952715010694157571922764584998790161065579946940359302076711013876412038159387339314401997908452996270638938406286010673826731330997171796066710808619548564066119537536613346540374656273347888039552248668547382286176002761693358240743220408389385599893839714107115993314050424167424085037172274745336393048151071021237012542306922668677868735315216783999602968590125981743586145243426767127895633659032131891925723149710910858054711426702051824311388259680979229237840748420972194109004807569500406394450737882149462173320195124572202642771845989612965420212172162308122709419473832134044097575520047285314937593241478796123517255444534670258081559605691470824104883020298319254177746188968965043789688133662409170104972111789429909992326981419077788054100437051565356945256627861301384860533371608371072167947237892828196892354797551335883581946753815273570703570300654090892431645035570031921563596262743338162219850243055266063378180550087960285962025685983162232575926860843946228468607462532197659350622260854394954473639588759535034761375144764679807356901311241997966084293547592153664865716488682018959203202778589336162681502729576800058221909562946322104740095059668554281200341052212885915959319870219308166400051839871650177566490860527964203658343487401349407604495251304367155727725294110022852191482030813258197756111842853892631394164578377876655882937738028924402994086281622090510060281090138701879276738415950167685116117016274368522423566970836103585946426662226963592567301601162532427845122840509503609811632856642111557544878384326658303870026970392438291971870083152271639115667532756541029675802231088321689906767349838602781016868123207255569827226026267220307011166365375110182673261320591252458034698148871599983252431384687922725958281577677702716966967424047907724371096947579171201762421978248840499376931303914407575526061655942790484804434183743485286300373978221605999429468776591656942274873930241172532585145184906807602335309679337711743145936130137088905751640351025164765045606293127786573449570747053145427237916404475578953520563945904059326413754353858495269359105547754644687606985593107975104727876222287466060484556182102310796821895207443066570907142497791936961608160052780795081958403625328898126204248520082254458110726237145490376598559199025687273859122027900356193061279855105286781627278600532214586631090507701922492058989618756164445663655895351566311559648698669395181136353805831216317535961692815093476151468491832655493698475127361929267403387668030606157947524941773039594558382407008192934265353270839728698643872086009942403500640878994433191876866496717519559515576796084667002732794067393152593637294850158818256839479351884071287462568102893975099898396506005103046145232232002861827486259765601438293576961488914001878872694564969787350340967124633844386521792929131439649729208521805008074554609290907250584042267459211981098122683211166723104637075113914438436831831800228077837081413707012591272294134984478838006009325845870569935259462110680759733349857726557268197464789774123075441296710034701255973591585531574612711869704057874450145551257583475913869258746852145620977876375574264832603789936132145837698099846136945852595218313093867310190056437920790794721372679440739934632068909671956272283978837081709873941669998874523105477272342973319480560098055081954499651101033212454594443403318604881585017569576059656935611276449577181701372376227130271453905851674154825284586863299855234304445877495203136590292161956419448930297667536937781363305973147419953752104270282791607369228530865996574077779292639217042551786268956048730054713926514017668052116592559953625306909338549954053504109615891298456233643152446850414744442641764035586923890158311319931236742029149647058931003098611414825525816349500217791306193597402208419850664850611156502148316482254629737553429253508723900188951039955939871338751106965551610138565010975250128944084520771294933431033588555581155905892340590302492353435068879077073458027095274869834253139509590946667559375382286977272556195856300265266549220440003186513374353091546690274714250804357130992998272846400272322265055019904309630839339432194250869708093018608773263702673564062078500235199856549283173090836591209191210118220543160144605714626491780552729791109245899935912789355014450806970033504252815251242564584091603348383417340709333475312551282654099747083923643750092602888507917256872596114814910342063745147560569687014830019218936382267655090809407912038194091099011497851727805977551338932984468927548779307814283621613984307542422342671136170278582377526701358903081655656029800405085931203130169441068844216610268608009692393582327152997986297522216991220651606667333955634226360006058506569838685216555684823034234085185267197009002784750964311716201898562723390289354512420251214011597182901588599799730556815504052712376433688203021261032359246937417539398739787120762164516426649092611974608854093225941803405935933099559897849728772155729972591743295712710524507779712133637519784698517478079503424413061186157909701229908535069510003065556064990320056013851681691651714872880772053547467202703711637448884868368025472171486466421500303186376067037276679084092692973572340052985285887545266349094316479921664274714358460465899448651138490605162964317530206094054460392117642871752768160267077582877518061452720557611379688700157627932858310425319711176753147030693231146424416563619528736676065484696614274186969014016237093648445668738575298785808590703165739269379960756290366867692386562701181102506348043974717489362558948384164209432697510967392584765135021190021946854707132467332662845149242029823615084726420507496790509576830726502823859480300942060671730098939749900542912693059775332967085688325564650574173292584986495369841863292709020504210158096853373137638667599055290033095598142804345689253563399627140106909113584683896571098635885880721884535020869380045698253076070401380048056010731491135418342138271700486048660835218226892242659323630292660721853967103060757878102135198900275214599806202617045919607965220954335205694224270890380595755645333869565011416731661533369689027199762369706757089702559266533181508254309306804519061807960004353314852285624875013845702505319676953061381700115157524835459437563624550924962253683320185381430385601274502562122299331950449872348765709628976707499574105082538900628323340534740125260903264210367322064325816344478098181074907736915326578646430946203999466939318377608892360987507404587771164558076329728765262181430585808110181784404424571070175064079993508503828707521809158549061698476768986937499091427146260302008298283884521050785541114016093934992182492425319198979264990298801313432577000497536540245259160602437681684364810378984271022223952292980720107801210879361928433695877307837067682883865244899884940649267523166959003390688779091215456013621799754706136770101379872240003883687538299521479618439150278595730353579719067487742311670817474826530206194597653782204830465353811639498549269050422777464384362161520250542557890933912722725606919412222385921140990166237061322798285070946177120245321361078831041119430503792860433001989965933526988010657183105942025192195061334262361604387255959175812658907883861900420186305915505316685031996313069194526086365183707918642856714049506590570908604935174742336886792203128573154334826784089717390988226958212083063327804002698515889681255865700233205090555327469897060132925464006289627297423405976302266957475475897043619712329644805756002285695995099040793242570299491307841901168383709332662281694761235137249395189835044131777040028006735363358637643743171940652099703661994718554132017141412571664201005225985591250832408995960653548606151817398070100718565316608084795095817408052342366197593622520072664765931906125351655145180033104636613764884528655984329191039659621639109211724897442389955591713708553109305963654200911429223431883767378929658643289143446296587868034031368597073169936132238465359722869795179377146523962671982820726423690887734330963446440441004495882274988597756644181213549628339881980862667778014001454012766874289885411795614724472684479584936194483375892894676319870126909732258845638792246704096088272707466467079685967616628831961835255087638808862916253689911836934986088659090675737294439058459442075119115459328150842810840656004153645030086148545076024523973267957592162211533820587598837975769689053215965149310671897744354957296847105337748781326944257914806952968102213424729402808012983558476407306347988039240839102189413711082734434711459289960621817193548734950414337630682967250154400287896013152908934555597679794095226554217819620658784532531045098603024269145472821071337568696204670498469552016854277052284455279419407857132931493531019206019338263576683448454570855495401475142513852139847528515004200106336634204236105842806764769144166545184766714738751966976441774918340747692835028657427385749424952597333756811766911650096507162488476882339515752364521066640783779145166655150900204711455036005730323888118000748279606336785130239045363943665344729677189758927666391881933186201571754054282672403244563295659374734294154973285624772608092532768967070939908639018623418089283849509680235867995835403741731930564435150273794084682500767129940955978153502652308469875998566433532659449180046084305782114018244547116579922824913464032522594145147027245198595185563745911367999635959629660132027311368455717049002160757489831645730070904254243010270535717500471477208911871357443466666788431231717690631009826735119786742831924243586906694373206051793502624932904636469641445012021097997753089243217432646758629577848666793935620336627020867924716405899810638642492916744916456048946019749267707875875194438427077475663933887354763723148255645127625722215369130628487877010469781581772055143576208038448606947065514617997879213878896598646724332769891041398731832803501900150418104870718626604733206628212001329133411622996175631752432061025959911934875457171284215623030737424147371815465610182468328614223719695223116886976049786293401459699106925441723010210269064317390799194146938226330472170494876692961094021634646897888078284351052847628522328677970707309764901187808767081980947508562299854643386214082863887662668088776798401810210944771874657758402133682403699544002630223683459299708705927574606716877929652198731368155513423446190178117729456097478426192975567944460135805801215868329434467820704522597830598274742261231677219030679905428856559727750730155779781256211477285471612454236969410317057409766769082817572872399162310959025458702999316495131721448781518536942825105247999369511152264623713656710016912259820365180563706399913072288962757016089593484634234378412900947423759340460560514818427284286293852205879085195074970414776240247022504619950208866707829686400893621329401733603627524319262733981111884210559848440465527890024904489685619012974788607845785466971467612916037919039739724867736345403378683253069918055867621041552327159056660935774940517388864866569316186650356620967614694433602558984494481994263281042765291756462718282383210983252255990121218112698565241017386792038800322567975371305032972214362684070049527590210044665544373097900363928511818592695929622037607664704080584756585848811272365943484340989680444105874047719641985446835316237477654947216063123864065169571342404519640968866302605879316023071262673000785957977361794496584015600216396239541865313051543326035923627876861036691847207998430151179182359992789242544155316824544976627584714874879541149560133168056862090986152356156492317494887493679959366208253416324836742699546557891231933997010782715546428727305638761960448802913366892360986412402716620092186970548401464668348714070847799545872914786964879759776328266203393095714643282089464949823638731226714357749550592804858879485176907626063412046873144502457278870428943796378540887660499647457281322639620213206162807216383652131814393290846164558268832101733200095553443030901519247423728290334652352810027500023423528432433641056195188052654285685111907314050838134719041621599258019447579639237966104522551494697524588155537030193060266658081129991971934726119126313813087263053519862215002931348614874513203929314867788273793043124005681844832685171432029104616091149990674020946286157590558060667676404220144510763054495168871870250538746408824179837326922074198409133131854610144877961065710207173897779299509715507118280364222198307738677783543189763947020830398123452509732476255535913139947639041821046975766607897521385367182805212770865243836203571568725547278526639404915687177864181363940227989166332754415065408688456716719605584410344316983445351893627747306559582963617988785025636645463540144645574592910240753372887388585166058316771000028362933166664817282663747996667958475704987128593090618360507204318361939029734442917577312556514757314999760697365769278111740746624555344087297668991519166260678316157345707372337158805022363881687037679053403765100834675277713734598023857571595716177151060214529242607109590374064819904046371776273107544279894868501404058071390381733525959892418290932856704285711550706264697760558498280127924406861589170156663691131229537469113689807811614305485363319692788828227929013157027210186209429039446500373802324732607071323367871144597819814351839158618033217584525215110977031453657600587965228982642250421482120060240666485435880476254353961436464862536414795083828917658834424053495204546889359077859341834755898558768430996515244153360917292611621918389297695261179336678388320266430005435417611881762312167087527586090066184670481231162337974597302345763891479403879133485428059130953896185640140861714174069670055412818403332393823743693413787845195166212686504630363978083342377097469268826863018785202783370904944890063286349158215449634444635371872930001908057253556722088592853352599290512707908757909964737600408830535037243313889319148415322047086259410516178547556743773668784533991308793121327033197160821985700702446981081844116752253993113137863346553251445597788191945879020066181368912479939843069076771748652613606039975651782670315155793143489321731769898875557624974527523218642934036725555241922644275445703204434952851011531685022741813053850616766139337688728293584040334775239706214676092026665306614334141153777729191162220777286775646971508057132432057497603062306944465455551577250564596519494469984218771677013855074919411733579197763766671460121982462073949272069618908134752342468532153344958547615216181111736905613140040780516716791470388692312459094314915415981856152230044951070206271239412732909198496276362180142536976832822964316273599261587016419093025743364861944700429852589189107076961916227715294139965101525334807041325989359349214341400832340984359362003518565349475286564309697788176716196714469373374044394602472224064944851884855632436404301326611507445675851984571042496486713867847753604641703510371362906493741802924291465329980853576381263590019566690583628290271067310821034350459318213654550613952145421994911598332574471801885317962515615966222862554103476803325573576987172919808536233727510895873332034987578885392486226405764945526861519468847100695748020360750697101544304481597619964123360207083982851352044337369072800990300301671606626993502132658145888466615083833448712944854729484604567777482575165952922605877854233694045811747929218272217821171008410803215130383007092916215023535223317184312864692423519890699246412723094044860775553706479640080163284257834757281836192014876963998903344635325863505916791714730965270834698624390689674909657283808984160310099840063246837654065623080509438844888306994840671114522433846877209932790318481762324752957923966862785762236338337377878726340790646359157159552159266658235952968429445059545475352124199694540077057477275168187031037386538566395827902062049979785802825482092770224676384604509092111222852519756429323715719327806532255277010422543906077377156649320608805497209276298178838888996607550336888814070514904971191233738579329524346584676641717229084800277162636289015879360958941217408500581554003588483974364200432439940774015813732138041015318213918801099370582243359471461552524821308296937724508655530390731906821792654972028136791699319667133800896544478637341200672572661373835944150779464843483616000837898576065786910539169473094061389581789241288140480444368134553545466784048138822690485472828117985071952888693476736600242022424735855242231317446980476653754300204854970734147606342499842923812974068680596640233744766892825845219115357704484915783560008148344927988653418688168136916227548802846089054531049869558747286220477995153397553733142434430837024170388684935851192555649322095347487007314506992909915858598319340806002263536180419253422403696998041729403975924168719935063911559242758324381134639752373537383390416680030856217788616721516268084443576364662829172012192248211547398101875003016343063005717831917634266943019342587177941792893167470792984891288410773315089103375699801098921490330148216280926182170370403195125053102634789211552053265699948542159922238556778840130475611026575195255305608495531511034555004818704709388828116597950364229965762306597024032225145160356304806408826723269843101851359879768711089784224462719635873316691293764789609831343617173829591080752546543036666729967255338610532479589757570182913082545096758979811241395416728532463981635959630320747421875569647498381693055411440371312248697685507336855503810571465929054922927510052499287735087650147474243801008125025835212855136851109775661159433487536835419788751963213565670232358108504255587410870142732348050247499974789616768832247768819599781225526645842172132236283429485271575940970557213258548081192513944154855576152658699258554035887407271792689887863912575535646712189883310222196471011742020188607222750140400771455646751228433470826211120814610594175524753839890990247803705867360590921836929384057376029653712445938411904632936057927462768378770257219302007340330406771580066168299924262571624225973439437014865929493334289868730463473345440582053281691561870149998724377004232466210634913765339361648485188999420191554589370480478468147184639477435616328115313213931715169268491973822247062416242092970446476221777232155801885838048597978534675526148987581985340816899572973955135212708159551483601350841603650551668117960749846276241032378045700528174465334335686544633278394212838772953298934750249149503667794759926013505407692477282171771109051319578997219782633971958329961375751304764122822777262292491092622028990214979019526729755576946788497524414065533109097047870121596110896369432899303015402384788552628229523833683714610489358477700613978770958792840075410094037456565695452527598506606950419285463324276698710752607612145288743440517506651589736319664101615701770498105373905654736363450638970268416413715401288454710523589078028096310742795287664640548402771306497088466908161749735393217509348260311335664615897516076141031980615980518411820267679113573206845584676400764899550569007464855088721604042118861418139138110277689753192905737140281266632177315273177762412273901923876533857648175694249918104663176521259223506370952733935094131469983851591909720492351156846465179339452692601520336975403366602488318495656740504462425057641102679172872317022579936762678286572038591902784857191731350286829748326802664866676764264939519344910558038308974746869671852533140515349679408783268003859727139491311016393935617470213435587523056224494306240909026577683746338255809214420934841215581898627134279950877890893258921417925204589624046225624458998574682172418465435077422072904369955213424284021727968362337308360866300388263033234087430465771949664575897766738102493628565845889450915564715988844974283782122989450997062747560492351293497196679294840150794419670575000489294655322556625940491398254971155806928495474003119619836386889752172537300217312765531814682618874005714777603368170667416343008322541713995967817032148208661017930076806194249443603811356673838326969877990519589464661721614875296031973068476897484843667676495584375402120747933143807197929778523932462508223413437416949418117963477281071667427507179341652403053296343087769773302792128117030235914261844445520744553990962409581459119206167265927492421982897206314170660451790293934779551357233345184555915239902227135054755981551046654465836805711288630545448448244202165105922146755064923028518370643756196332559833984218328953020390896237515122162880949056350518477698811145818019086763420956489669513099334237006892131542152223262410801212799144013659357928914444724265345613352017011433970134958262697226450264827287422599930731655219636624264401967635938557504182841361448650326054753332103510569400925888653501410436858863372389514226324308001421655937942845667132322202142694097865678549452492022768672503165253623615194753359864877376634864856665338086721849852314505082865489694322502067343341541307156676132896989981889416170869513393484255668778466565341171108818137623530801124169746182810976612051257821229144514681556088776729517476101147758114942676120067329438279651270724794983444870461383391665208404698469902306578295122798899743697079642879640551157275149129013913044256843747739900292415975709826425632835322289489675293768330399524607293437646102354683286392034638355214371073597567882153826537040291625722648321350916251876474379308565070606594929164447746713448949937574774427571961242266489790843111353563247827390945568067282974404539103585142204930056187676753719162919456899321028934830366376629130487647814127236293387872346165255057791971646259201793441459335879616575111203246622638650767001837858006601486733034691671295265674389392177704549882071161369733024564625874794263023558024283692685741991957161169873840299972716648361536091259916384274686495472837400626081731941989931338603670531187784112031010066070194025867566402457605929457156917912630533177614733596805492025021389878875860499332771137660286618468866230404483520141574886281672205996889669662184485582839581354481117948751853309304641168216209491517461416428330381223121473469244565974316109492715769002289770634684856486149750574648504668884646557816688472864496243462891115104892936686790163611200564336057394558117320791627302287957733926299688006283843792307292242564800538018408534427383023081017251879333652075548773455453105571559599090988278043752098512421742367373922816494748227379296574943076679776959798314812704233161561511038093356891033825324877689119163929176349885694123285226016666291567201146400169682429512121110007657800203858571538868334399290911286505704800586847864351949641714581406982947092630513166472012599122972899092402263519534518813526992776182681444925228607569117167024702252540226926128815464422666568501941512505914906636875765156904476221145280764784750861923576587226148407157459493344237170768303662860437942277980964343213722983500439487167271421536226570787355551332387276788541431048022404738194163555741932618228932197825639541958749687458237027260842113086692403260053266526959079937475473911240674497661412347967638867201330552885148516712947948114782785707634346885207379971397335616456708950948322193866288351903882947608893166668172345984705530429779473775142484401193864153593075024320816816728889884488207930028425296454357492009669644314138961121088262674169260078215682524997158808308903663853089852954780250891032447811108496563926653942447053832646024029261614425800729898717354721824434635039980408237776360200720379990059885607006618930178800185896288057582497024644709648801518103263120801625811921520406965448785040575912063117024090923655213871735796983641655203794109818808137094277827701465870133393668073879714268714205205023327774321374512570590344960240668500615256315673627954357509008547743613033650012679914573797437821378597615779048460651927016154545855114946671300854537247693092182544134533671446336146086345006251179457025737382049029317620226894556202965654325413329420995356287880422597648758043747433449725164139290091190817959213093972623537781034903456267601071688712096529100934757426452217685183786067066961647151510171982442105687750705966599570494080015131176011234511298248003823539650498644954016580039584180429639236189264201088349045133158693140099008557500202591188154705322416859682370777278681387948384646908685844629247384333211525460506387778591368011945970369393205597877235787214099869302086177193842474196909931234662473600610177453164666391412653006283407447544449325708155380779701994345680806447600917819277984446036257024965602988006903384117471515439503676478562512575473759941000881813560828503718680477441477195727611875522661849634178502084317049925311217282002804395634780961268721168450541661542560029929032392284622851049032805662670170723230203656187439541759524298911165371511600790143070144495201848441919748336393319909440036295149517468848703919049220413204575298231785058928205746319972383186613868748200052647356246950894972655112134085825496205900973577330504635585058821606450365654202965501946034855733716652380127150305095780622252513598816059285753388789513588293198726984173709467093683864294638618858116099465537180269304864913182816475472014601699432770980764385035795481703768522666898164158130661891495405763073210428249412194974822450699197116281989398113244021233462979413525250338430084228597514221553294953935485476572576673525175680495403656018753631087664819635376007584859671255401915988970958775676857705411854785598128608720462173349056653647927018669916637760942404009795460239643718726580480103072303139868854973846006681561891900019489783673230939831616017425688167480811432618992643982836464339565798717506816307203828409700954103086329344619756418501794571394114355354270056528230472070214725284915303749919761098417922759198878331304249369312359608426111855460204198492687023977389702994680131488198040842318184539491100956603013432242944388436356054305476219879968218779692753013919124022369202072996826612269164277019047049292245072326644649369918055257599514684803443033953993552475424541334439163058109817487682077919574333603966866766962542297203731447876057207979893248889462282322711055767654108049458369948767528228472941025874926073087284474363288191874757876425290749816815972160445108842198242830334921679883879254286965886680807177890808753662481105292352534518002434527787684832035558382954209407442011404748311593609078856928635655539631506985680542294079280757177980700670259324968788576082069554907989309680791116909281896347281497317146826325090961991469854647113987039915365581434989423937943316682388819632711882683485867002782841826464767996216331967028164664230770393106469308300098522062653799163359795134947027401753585851015133167992510249464698465384162413982374703454553322142966477768991992366155424993243312469850443134202168720604015150055426405427536004261239947792261033477287214134266663429642328908904100287011561423263145275241503900011744193634903603212419946725055030341208258597407587188284399369998365689054769956386358868758609092526707659218928780616189528194170900596640043904140927470216596223289992948859335245274460710221937659358330005115921212913837068736080301572073540438523452752071620498534155766777491724130298549679024213051477969979573621136684544072819828603878669139983719936277930638645284884699709545942002799427066752363510471757196974675504662251550271777070544371579826952329024467447611515372029883829618609879309517809497059596408345523877818587581218529735432740378251304718789054973939178134941568701566787822933417655684464541025085223646932130740849572260858055304351360233016142313840023528714425914906610964289718100594089517500973285050762840866899974232763324012945739116522638198065257192710079239789106295157197823631752701469682251337836224564025027670238077258890844447980009210671101494878599052591522081372910227318142072543519550179630000544877429124488069336522193097581410581911125502644832099688972616689900385365654141967384359573432138999349524669131217253323763062886163247345109039036643724561022587096980007366523145754194642395492459600840258665014553585046781949091747493165696343548727553127233615052047543535270766964702341410258365269941911109360066230378763141292142176569868884938285158818983305152672578158906772044109868368930279422253718126543630177756705363236847939358862959206554619502451273492647940913775078519977724638291630807237847666274299244371708719322496124882047436491057902690802783470076058859278525845346235218671612433189119613577564807452780648584255898771350825043724382201239926397128457626348868677139252000220201304189094012614882215147644623984385597739995351341139118798881241347201835802119939623193506588911310346373697154775999022246251707141022780496554371312072440194338042859830529734285274335881283766371259863746801946987331867255413257267107012319380790164665737241403576075472903413992069136959456069150114302298759614635043766493176191896654220602306860180468572444181058744195892401474653222672314914766339207595198907110992290098660973465840729986104951418751375513810449002211558082078935610822160591688634844356383687525199164137008592661815788941439171273068880008908296940237614653643664451398477194718583160382077610334012144004652428048200554408407087270259450655423496043257267973727107399319718614883706786934371001025644397434646333994545871610189094577199964280100084502361631827737836484883839378401409355650873737836479048615962915679914350520792347366152884934876557979163267125838520965224996384055548207721380649606655818626328232817928886677941051472876673643656692440368124006485785704368209575417776788834686034359413279694430138761292054133345567673222206399572423679396186086647968326751827144188681477712025479910317987905734940711396452764835520172825017609358333075554276934494109749507102340118719305597092973298536519834538463866105329754646788998851839277154858507543628109931506589344256300767114042122201535434908165712679807709582550972544816681627575296796126441105583394102510770608349412429320885845867481290972731652635703020698703070707180859563103949648881446084806596589998984433282582633853436818779369703844882202164306386239268829762162600338048838179906117032065591123635467033490835416491205435312824522130425917093516678501461506924177205791017715490580254123106623390121958240798345084495838195460228214091232175420319913205014011618651842304087147409861302850764667295728681185507120133223656031319524010652018927605601784121421224251655618453608092387635580515208175730021159653188569494336519449586144180252483999779703193454240992426845559389123142767157580493903046784386688123246744523845883812390477704551388638258530454166536967658611132906513431745375308384483749610857168885692301126229847413357275230067254279127715310597748562134770107203580821842888825363418458643269837657385112078144987758462430969512890932934142332568289264601425515635667220377263097158134675929977398324556839699822727375154156199772812257583298459044274678868778249869008543818900260047538279537742301648787086421709955678445817215721405776404860672959974118507798827550005945065105680307331263364124989906793954976153668811252870466706239754671100515171974210464586195597139437616692648748677908204053652665639843504728907008531237041737248930561866723692517983308313644886843937243980472179564221950923634245407505350727869567564526692172730443930017554279371771590299238687238977442573847043469730440972740992231934564288709194871638798102398941019314216588724885830620277115611864709843558131460683799117804030685292389417384194177051317727384106123931480708482835173066188799889311925771952456033903123992590284544277907216126686758922813443009686025154594607037574163669599216348505610256020785431316349993485462354579796980000219421487847549653515123411106706211857632950694311432433260822842526511660839042901322778349202503216704219189272088701907619128428498553490241702125146814610176012291671961029530600778786875655888480123680572307396403229531410139839197578616298175047484676798439030173437612420260730163495145943808235326628255997363324170834280346991600134217925657882603767560950109779989691699926905429445217091784817598819339392099442333542042234582893791751752174306641918379246236186357947428841975614938135640466360971524608011588937305966273877277272237073664006670264075538470380167879730630877619790222311540696424383248616412662470179821556810941963446355263935121308901571150740661049593197665514199709428686836798483677228237358625906070149959136318865174914931738366973025127227713361556560088232059090591784846438432314916753454197581500689622665070401835993141553675110040522120560607409623478964058722379998492993886002698384495470187227079994593936990508469227432223866529684996155418263823895625541780197584126301186078624553795049187391081595782324800449550167069802542382830106260557477091533348143076119798681426610128132536646757997148624457451051382486621673965204604220611705522776304917844235881532565062851424026454756181112458905273428646352000328289676290121375999299734620405552103101730825957973256984659619045056326032789379884823332005215394770773535746474219124330846555008241659743240767198340363574546984740017284717292075717057020034727302360113840226458751661352356130331847110317452724841615752915456831511535108715378685546360368057098179872933462388640312905174462961020987823192885849571211580995626137038227006052923014525722703973940498709562097717958418793508037996126708660941375219889773345709406007433075620633915186344501465850289067678987403963084248811035517813937416655898035422156474529816280935692318379599305112709338110797648336081968088666699654148423068918736173698949255031896615409321140871504756264707257669348976246804513761161783704950593377088793730204157767917611857261858214105670508602521741712690988217406858397446273333403879528290366074849080476711544792003593491483490265922825912314444079439543257405148404062625965886128865758547448029472412163261753624716399705138389567454844266665161797516658713179983189155549284945354314267163626330746445061091386363812089415700992179033472024407200989910371167994393248748563117845840093620590278635630553766901557997699614738987675129380389618601195987167560748735705438064449974651365856465378061683659078916496707066696836140036574386361328817567075091200584355210683366347408637369854455497751479249694050547276862314512288993268074413915950316382701270239551103918946684567421966595344044377546255212587996553761507808126624710298193878440547210386015022631700856424426439932515250978300561820533876022636667426146173838392328560463926726359197034874294598358066407402848501996119717465127585129405746239920598123537922772953876666263703389628160280068898929366343969868127443671602629527295741105002568775912440025562543457738014770866861880980593127134455752633719794335824349029334840548898719248094351896033565946452344269785417333301663442507611224806171009697901775755526009123685852891751287979240922214710895441264945176061311751082845391662798300257490269394584589270528004437528769386789152819016545009274439223002426133674743035606846254718232589710053662429879552348192375527098586138961321826114473863016128160883403076465349170798813728097801000325672565946160771536672860145092105483194418357988226938546934707186473811120212159169846299396061934461975009298628883543534150996771174232822153868244169549513275162002912076552434511401233221739409027610892925617924418234034529185377752036908976758074579238185468704308200808360233801198203183331359966971060174557559108608681322227481855698353631183642487052319869106735632991230468027238715040606007911570745178417992296663819669333715861416778198725639045532794604113078101666065027006653933141242014254333860492388085193134740359365748034011112092526689701272070508335293485180883788718248116741283643610488461381416325403069227575599382899385685940389111656377252618725765390084875401765481157114960229713831197862904549517565282005039690242357561808751806501562348019863165230788966627005198130442782674477528504562032858384681770363083945161423470706918820981933221295320132556487879395623411923476870704041526520958144033247694541582412600184503848793475876348538188153413568349387617380127185560596020087431742221971678413823980305194305258512485574129300926524246316608889931891718565010715783648842069088372192335327492684484039191390791543932874749097429832336087799840338450281577393933806763127265814307663169567629235632841999428583739431630589127822953444634082031356023220264423847336539549917210307969093386767659359755318217169260787606797079757064155766539700098669991348832549025641433196424075722335925669575390304397176264004061691685552177522987274139487868613077448939403207814211035272077342387501499009842864571224682607534702781532576159172376410650546996121895352378831689981413045928291739026532791365477486609744297836461805614939043308274851537294754245825217179459145297686415944624681078391033344174911970744674922145005346747903708196532393442354449359545307517150897381174181530789269471490070774852215809057968466569144679598145281078458042298807262570861778317633998432685292757951648182794264010188090536754002192095548270936246294331554689897355157363802960633327468714366216426995071393433259985265574423428919515506701493413925696574944152698499952231821741220503433588714479680601014142210727003139463313148840368450062075556600354307702205114416615148395429590759300388669274281586426712390273047232284837645307993693701864780563126161622688717505824708703051602502025654605731594848832673917578048615851426772197151618007448209401037698422857531089520322173358468618045223609011779328547453090296108048107400148713575980214269970623484991809986223425855779701773388374070023702965532722596434427924432998598241208515723914885583868140375145706273427749450617115830978565565420847663541170197289945501760740373190952236369770854443166234470713720580114058234953355004532523549352063437344610126197679293585623357489377243202561337087851203641190727409209671957967897044543872511703999974219960598306452055041725982140157866205490537519447378429388345119529532132131582465428161481346303706716323314806808948466485907457343443323018472212392396180822840647159445350587961979749536588433650937030734722851239068337480144451837402176346299028117946022192015117254320730960281861069700844996775977715390090592145432073319475663055568766521284147193407753490736138586211140449481278477991385415757425625043105011028938286585818761956678984212695180707761587612353277129109152480260884980998963989460030134095016836400796367357638042215909637792977675242537145582061739993550838042215581550597915199901398972816780636610238040499250275003454656813505701401419880483529604225476218320378669866859547381718541300327446368601811784429136921131284168991575182032522940357707734262803530005228860254420741609557532333069759268424354827237822664979528003438087541292350431047016934156158203529282168428203715937316384815905748971398130631701349115606488961488536955820310127344557722762950334679405514204215329870391552040693262636107457946953435177559209983126629402541940236308780645254572530907248059876051674067735735452824840985111687034750817635283520162265816534302285980195435151354842187595678991974252808301296511163436153890301762210314073406484046176854635877049067218857165242197273569995576100269981128214903505119537998191437062664431251209157324599570126081803485678745360589956396033677131742936035322897531221328542500430625899146837961420357234441488779533944178119093267253792945847341206951235061484259575243418660832328775576263969916826750111634459109799462131762869144763678393572869732946195878944083720500446684801045269784743639200281793008374629512546995477786003029201201636639627970561808785747464905807923977854911491219133269724244433789668822348740816537781356648805211873899815816625095756030645133128199512118836395384681733270510694271385712405657890470575943723804852817271711168412045319212659923866735073640795189954584998608532498985037311557777023084121055813630042143085376084363997525355300605771629122523052758366181732581590754595132232934672556069136730992170321036104577682409040088205571712227763096713416632460958211928067196473069835631377698509723871336405514903207998711633025604268836094894111896629059688501001351856258413526711010181125346389642734199321917068043978903108520986376390466529114193155755945218450727076980029894280310029341574014064818792291245304601349764970373145665492401319509996554972435777363341687688676761292060159948301521269087519706157432206829570405926952386401871806285223427703156676208167587968632111446720161646499726065370126091673619071002583112193642463931909642656766318401709423716347423680273471438944633123170771608862045371687511594774667004773610125137391911232582368363902555199525819974931140633957647421933945610392853945040653900280826411502879545454259718245701627666623802372642964662594484278003509215841245072230247310540034483404431738672326264397782501622827420724283193482885886346300290369993874289419677648826803522205706179575617897144269647461570132146812511224681036484228481391271597615414161465818417910262970545635625516927633349699182982458669434054332743068541228247671786820084158193340443015430727106970490261168163051773462771060170383883043096562118937627571048478944203162278986831278522863883807479981754480330472447833241964707458180206669297236030515488064880407116086338990087021492317712542334539264657021473982498824364793746055587859364873456238294785388194122493240228638085618153943231705707962971550476170039655389021408603707678742325503882628215755903767439762802673854720257421552636752149425753529807351576265921038339379652180293129708800651688866308594792731140246211117593179986233994040212543249057914134215654258043886000662954081918550321505814392707650487382051760374373683191637126447613296515872147968258869867187840041507118555760012540564375857409321240685127187577498943418486988765873235014742579090851483287957844564927806788300751397140897872540319590201503929711223466553832672419614731034045219179522768788899133934231624402159436856538247102378417704043682756095324820248210669527369106144636871664645629544563495968569716913440555773094924100365480904306368343296238994146514081122166130243822785522288449744043886949698403894957788739581189648268055027458424861647030442214156655557429971303983024502723050007193327788667579982688288762920005604046326625879272994648824117425552641604813265129330162560387611162542107526824465221152732686553212924096851286110406707696916951654041701955891202918375363386072865015660900233182803259433767431872636217242430112653280364270615168169283457902189826340812147011625511680816157033625468034645592793103448264919218951957291642156022934720855915239103484950497829146236770594873226045446963720280570468066396167422493791398998292279536973609344640695816359356600016199208209950654546751582364617448350479443693027441678379998792663811995834450761673270197068949881194376829916836211997614330044879477827572532427865616438105330102788245502966285403113973927698410715415853120572641440288530509503388913457826357047292374240405721370155617530307216318404862857289665228700462347641739849574411654433637065099670092538941076097953967651845520472839960355201552908871611412016869162684096491485689668837510614599874242148347518960495232458486370034108734948654732736305146986637577450420716140360565623374606459256963378812751630199829634889914740453142161000651808922570434717890308185237416925474554926489898261301501833259016223032376655428045149915746232913935835293201656405663759407821674295532626864670373386107249094099052645561230782891604837973438164440249904422603039512708226776639527680120214192124976706123995633979435657879351216523150650683839661155842701090758951227803068539798673478287019375889016326111257906279955246372133509607335984024625231385432748763222546828527089995778889080142849801912416375622589644706728327990017791569593148828254307236117733281248345519876024062818364924299089835498496353616854097022699286183819126154935568864772310474994304666406384327135167086529699509776550413378414107928159294818858153988885627523005184667381855778466730620406485232380972173822042319378306453402757266054937352296901944988582829911977368977769871733453009603815373996786051617674478108796788600235490850003371847063007685696827137503844769256185451929085244401425117583946868093541934368299368623056262246204592979414814849600327998511222357828271585892457072355690834097964472902827013868395492910374860855361917732758594011520183294446487674469052765149638044085652204183348466826207194997907913453390224049559986769208570313677752842371490762065487468233201674841438445768254987289743025109448948870852386808973831913630019155084768603553136218721571470022040429610586391291435489127055484063469923374328513625303268403174887975325727712254976571484845127093457871185331027435454431609005980505340308307132195790211102261456955016863931886376244755350962166830091061334709174154290927798848988280750653276931522087844158312648940456856191036540773826588601560002335496950067120355127002026453789519269276943909455095995075205265068260705837467105300673463000018166335023586578717524627124153089022226690552973090755728921276425537025677153145758677074614640926017905164859001482829216760646377129309110124241920411175440167846204860401337681554836071979124317847216034314433854808643485391655945180768984789638960975910457028058967656127110198952615664671914139947220909828033502200823218592684050154204967878524312571517431842194503684474266710166261803077216007790672111345512435989647522171278354944409274490367596827863000251929175439262359414171331190897953855199675880979544223740725405005886558254977628508854958515040811795868365443598387540669447464562130070142749995827260191467549047415236551312138037842476498819651157010545894954571944118796539273332662842368378672626241647329282187252262718620850404322425169565256838931763553798400487481519410672839306647112390636808439963200225633489901295113052246459240822625346005018179591566464082264068875517686087156954569624822864626249265494042481454268636906595513827704428955719018749538869396207240323036220979922113780647536996968072090832738942560841956119618856978742281114642498138441609507777160670913343085533965273583296018273516192955877017679874123576617181927572714772893539972974009479301463077670348973230983068764472048368657065059681741157960278506141134602339478740787911178926459779305204194103993853326617032069443105068797325414766805548252896195026795029113203676858169702899912153497628206972144338444298589680433477011960178507043102904578415383130649897542726281187766782927201425456601595928099921739661093562899624252684812109324186746650375932357675179566059377962070877027490667342091460797007186332808138269821566516177711575182433510976298247461898807349693389914616390807175593352187637257070256919798375174506858952641931311224200995366439601936581341284197444614081190739070080707229183319294723992346148748618630648252866487955985276742428006465120264967805840385229041874748588159663690129146952433530489328561787254052388956759711526252222048084829072838222877754890713476173853228961856159631512047520775411993689922263202165763582212966213975947728353060514278246410316113787703830464436030088905604023083151833336617831929388610923225534212154218019362844123969011024782444459820619124822805565859592386038293962096668641492227967524182973729165574533562241092007674175288166177316244362134989737273066768946378148730250786150317123451018223714453477931164909569443614905880098939298863288069010403044432408676535341849786714279164273822194863505962974618503338404036977565838268685650139115072009113726363277437167990126721645046435906130443487768613738837400794160141045636507310659356303757310325985909947252579268193293281393694282603275508679287322075744908077222800734639439650887492397654219012775977705941578005020421035922730591568056285332711284153094683401013920713556900291436234867746301848264643026163510413681369863363574687765891656196890530469930302122313461961179529913959468432661510309669562501862724713520112966348523883391891325792185081660811700340108024073470572837037506131512178110765519834585564398291656902777068744567449804663799821931038228095999584582434996789897948010332949829294177790066018389790981964100506612365660366642958553220728892344778188653830684465823026230297288806437480365022544204917191587949600526015842258965361637333347872036595011692158532437628755536780009036905228110573925774811567978486064486081760913155978096717494435395182527660996613752692098367073146252874134865268826483537711681819477829718363481367183671796972186040103720111131801940445157244969840611035223314508006249444204633691926643572145063477102978645129658046849447349550729933388502932056657367974988582110999763487380916590024303869276385364962676495197124590795042707231023305419362681276353735336709496307157230083648397189289137175867343136531301111443288776746593950814844251636187805593698428221553635771505547771081174983743156177138388380589426139549924485895089284468380217255905918815946694552369684364461738875937378212129072606169840426053422919260538583620028642883138173973985690936064414646987744717968150319891656837307142191508813974004507265604909114001861712350028550847027549478578879201111410808863132273965846516827476156889688059297462921702664653966226211954754553782736984616928404917525993170965426730201787090238828003108439621509874105867987239542837187173362314500630834548862951056997634384573169300228719127125018093667679449179572742991665443432886302739799240576293716913582451265045106583931699551302445466007845908265868290650067102599356264949831363031974874200480844712329360759657094366972198081623272793706965665610251666920395552936843142663290384898770772099743462597728238515716444948822875674227797394704333324682176598357605952820910064595498819598855069492138290704780684264844262055893595160657043409511750784220684046926075415313841403234266358017780274386952038237357504707771633376717819900162620761679445640180661224100085080099823216206224305197668629612229068785164394909216790880789955126986395087034584617913058886215035435095080463817482305806703923361407150024354246934548510685383705608282623222817556440536606211867891594337291610529233087462271224930751212417640085598727917067215106364931779580234577487543593739839029464997735634852301446532588298235475171259168342402775870048865915030513605059797919617297178007611646234338975032492857651636507389292460050310477893830655815848017893078677456096370248741222415846541789991158112513649340298186036002430397617243370346306732895109922605785834981919725700878999817878022804431482854869619215679934467717473816118330110867224260945089537711034578006604949263792535465958094882670492938935828495202239206925752418911258844841467015234711299613181632125339472623716726551370540573482678426362423255937369090141343952348018157314811875435574283474416480649760761383746948733121206766143760038970845965826591823510711379680192189084197837651158402194674945412022244172071262842629083323240668838611926466373421066125586461195020954922022321534255256596744317733893881518081470138779491661614404345439303667810574190263201646168952576247366806809110273266226085884818001624619240914564906227963585923105983715014291083073812303226174572292679206770135994082302678988242888220999175624746561158882315615422056455200674321035028458390805201648230116588959750798268933720064073779292664170788045924205317119332062759287488412320133844618485860689558403420941819245140098813339157514743561228358976740830249020452107501902687763549888853943041847698491876985810652698398747254679410260188627416345660448637090195902757407400320194857314173484920349555644658968174822976066004037441763928861467668207029159845754866754417725497891284521664140269719689260831231361306840132668853295929402691345706191503246560410412169156217492672050762536743679408247023531248725697842993281681154431917484629376311032343818633273303733905525485614008715219401470513523044263963282055558308196861004589142627495328296149315045545986464691000764724778802859286773261008156220019884817557082170398514545611436110699110294615226291197511347863053090911081308077017863986010912335159760620498161685585483265555788193412345801732234586987281322402139604714019287662389586301007729708422987298842226063463381968350906520253471336638262695302760708792359780591072989922855668958122116665992387586355181407372858600432228752059491361517103777711208321410533960412423268330421416932831891062457432655400069346773986826548862498515086629280211171681140833799495089814838957920490594790925578966167489716699126681278803699185711763431618203299955625282961000472698429014349414899621833922045038831150438003052895007067068429302121491214346889148477271768338995004263445783448351921213334367250707374787841348316919550465762222117843442713223319477131128445576844574461410510239242205271941301582232274797065863508419713608219483898816063881014773695787336456501165048704837986855284603999882316604103840516985028231028708853674875560319587089831696152833087321117822129004401888576201047264165080624544011540086536557771990455966992945647131670381806310581128649066603382086227730558178241126346967673255666461241919878487624093640385455143958055017675384987129256828438964678935958307242917556254321802379615280507605864351992515916946276915676912924950406973726909531852279623908008186394867240258966368904995176867284912957434992377956028924353801049050458887924900242362471546485245858707872865475858015037767191061631119409653238688454367024910798174021486761711547253944568087304506866140479714584666130665389338245158877139677992410999285493873898592638535319542883875631380743231431675117098480135866661743107365238489652333320097744543781682269257928228368504592785974041711767962263271917486407013064053540684054347097402231608826969422521554627226121886371607775312291582384429466187838059518687413612262413854242515814135354890459161543974570499037457210252541609844860853328533534116538609737004876600365213225340056453550580603097461331501423123729722386855812704880673526169889775212932753354468959421923639533769052550567920722965305046599996744911821968112393222186308827188752235163239531237752618191573156964643562910598269744898947699626644413091783605720737498639201746437142526993820181879488494603823390636007563747341477751600316840979169927546092456771446495681892045490929800002612791584113814077571507188309436936506689308491273843954211921056025090780392708993784445469058628430246193088858914626398341229168298595251995657513311148149965724577494422973179311654171945294430476611903288257258394948339282545675182851296943491959451689689666216027312533519160748727817453560962911729925725026518142084396774549999464285352501334568481933214346788145975824761310676222132919255643843091787041308886330404026155626106254597495677068206521192086385921405391499711639257858333579666247313447958629475666873397515562701604565120184117939579355826842815093258444222568342656158241923902615411783810124240902309757843863474683400878985628900836799850796547813719516087770353852831065866351244962808376354337796383948029400804249991963730378405242023427239661763171583470357184860756038078762874420505783912569598979555301172109050924244949310039104663067061757170185065246542741788737053637683660412081159193050091535949418726504540713383600185460072399268641548031717090640294784275082633421544583775220048421158780639407186364480718028161647931200948663170114113289288812771364927398043199067177666004437345364760026233221378051692104519293573230181713223202096845988344447334586380808035596825305888046633570699344752103897063867100725699366931283024414533304766546025220858453442097909524013296347323705460992788859548011154222830161266001668577697383148609843028627871323119644154950764439640505395806938960201196347202809163014294650774906263504504451621390686266558044609988843052062234167391915545670796311549979431237068038777444011973618057257520769666412473873646279814547006003194411932782058642235441595034053660339289116597587875106800728874714882386963610518399690561203952353291216169288124756042074757046288397656697506534717626707437836526321070896257878579574198543899077208074750125759177833893889816702408811856514315067328002877306997047659758871838098030700990186083412688634716030994570901820386932728643479291528236390919209067665881306075252646456001946799151079541540264383688881657658964771043994672680826434103403074230550850113886307202857389481464118540179847891812362051781134930432220670446504139320783307284317842964334354056844300197515059634940445356739769725325625201924040027454208005656293952502201025694765419780783481209643346854846381697878855970718134128388712342721793292746902498795464933829287720718984185503678097409497313961443438759859617759656991704861470973597708050063381715199631608445662652788921642287585957371434420449353749422720918374004495614096264379395192168955213585280117641647217932369532959171519283555785652547344578147187235837635506602746537922676477423010230038465082124827961488217927527532535336018452444617597028217037880574837311949828302710359490639496812898698349058000350840734117616738966425792145017347739981282546250903828583292187534605399626564486341149706359354716711250644500703995609661116307981655900953912759593686297431248280627360028100772758734515345885248125302049763396100621393102651687539274018325492847548874278002811171966923924961787188899807459503833726741523573948457177874596183275344127891892081582866695874256063608605198584832621069983998396716182025249871328939615751607823834085525140053285435705835227741872118656410171495933741618630197024801881288659999118737126241425344250371513676720628900105272397472198636933316917155565976105314970824470938833688503063966868051361681035070887435592388052568178017727252114994297131144127586083287039811677413596532826675289596300835104231103421148990026502208827656740153743630447458417285790948998392813390227454315737387195670498886533076991973214644174093493070179920356397233988641962975516583936730194639305396254348805239722137666004583142970674719306615018695851739984843208729351672180627765822186646589527411465476154094256819554157008018617733617304239568427764390136948630468268048036242092227686435051030257115695365569685046368094064086182909183251186501878577463036452629620387370367678453730384959433312305289468500975786653686914422251767961970543129566413732131678871176638193565401086758355613759543808850704509493960784880118877483750203735049763265733413364249774708728302717710676073028142834665458057666762435101481912203185391039516916852463982413005259238892605513786577220103164839928772342510843121856548801327730576495605693605366497759036704087746991532862478058544322662886600286046842251785310076226772913600169001059776862029549206832753589406117630997283009788078111772123814924783534267133766854585062436537939037533752484193172896703093557217241217942018673807821490551295190599769603232374767227989610127455523547887653113041453350263973385435831619982862842585392185131792061041755336041949217320664085450119360246294098773705997989643373691095667571137253457534452539189020239184250366179544420089455162776668834870312106835949140233802777203104538309087591989937044667028628060374079793108343558690381215309417678759143807655120970082851578645927506192592121120748008778545285454756872193757200771231375468446584970549527986807525474158102813379848686093698372362322764614716144923118682608690495084144016102392092349906455042627582298257092390993360990202549436800684089642261433192609220625561788568500543892126128269247745178254341376093369307513756259282205384260850660207810362956342049541031820907984813923611485193022847212070695057817304350166304600172000197337091241418840067185526621933705599020837297217207204298700170314688660675969661994413540714410976549790642410197898042077430698841358357660850169845274327382188115625109349755208546867941967127557944249062625849530452920899220333204945410083380242253034794665222267668725941785122042215008504231159997365680934268202729620586523178034236458106931639350900572334279227928781520743790546847852979122584409330494050961856267148374240106343847046758395506936131219009048464269112511821097005390308300506223970476987721516024261803895337636419909292719273305851290980977249554007275237568184324735993079324806228712779764987533188756160897367865695300415849693234638393638307697053202764730764226220097623854798922835992078736422589074441319511435577910860652451392222882157810482867469485842868441855465065650369292081433835464539698040228005820655736447851399292770022154894326193362862549446723265032456956764676307546791328666316789948754473243365722054241537621220302782443115604610147206655696858340021043093766435407286398173079260031404646021808852143207432738747587192411469793985696883972276475694854230679867897514429531527913672179734894482610896068267462168329544589531632191670562524923437445492863833276020305700989010026187548758139422577757604498220956190317727885941260194601427945856853286585404703715067359488441511371531499673420346685123780734811222520331424003185152402781001676761638271501652210901337103774803758178515575377088627094378098543825537202781216768542578996724553135445173077967189247694707184063916560735512160015327317982217478739411984375709545900994412050937295249696438184781058974325658254715988180814306182789474175894125199788760456239981894391229437712760025731564119817182456391169818935113452995485234345557628928647713190854241422675895415589675471837006720861206830608569522607367294709151177634095184215488754908026759702475197525797921217080484186511139469114509101504299739999513539321396484821569492301306537443113143778398301102026410082749648174970500483915349912728607110332358575796424440201369883419741233073777281469285565539726190262959216545286743105414849048683045971523312644216636868077617737228840314520474998867458488014995511139114570377088890293711739408317998049252968492334930852753019918049301697506605137082075402461109310651428212203392295864550620744889747258583231034112137041224147084807989756425544819609607893201846704803109199149434162633393676969163890965528672562644838338186371097709994846946284914753275489717042089106049243556671806893389709818574279082187098277829001076744052051303204117422984805106881370722081051090194365773205119578000172425706622586842783680549395450470053151520608403196037605724701646111769451505350519227027533101931530693693673623413764791928017688437974633265392770273732939643896559860033505777212690308753002242778724918235131769457440165014604492622829502683339831197281203894892786030287690697359653237689682469834344379473730137067069236932856400736869230051087421413002539172344792574732553060620318480637568356739233742032957296609802015348490734282327276874090000096179356252478429838877411353540078732239936739897708052457991469296054797863768035355864357712079864558388821414495072484929072794910573207766383754869725304550817878951802440969126731798731768701003699797851071442053183341386609192971878311964105002444679102788354596013367107832638133035470519475448205523776016453524495574740693095387176983161590668224690525971081471671219634451304886354418313906078381846578697100680272193168664453409639895384257196281036338676129060096740055277025076779703955600279204248421659884165402675793296891630687548303044124557882687254969605092412488003854653694838928164723371456288671341779140128456694699015271145978548660999523418848451759192937389365519813789881533147262396148509210051295962589599535593443051744968527353270802090557181743029763942214460999753977723166277774869546759525364746752051033597333440649062209599696885250545587518258185875605265981045579847395991925742428029971641375732963570077320198026681403353071146677245935279173923029240979851699007922955473087839022586251266556240128615111845351590741178290104264677181215143992246291213189240370837124370021008746446522602678666649895297514978329949384300107416745880692963413269166369551350878996227636350945078070346626121314030133674362051101329502842853802934273474917699077154225089861563357284496962316015501656100221637266520896656813008884724915424324265329963460454299626660907906639549369052746015310512034081889088878183059302326022884083782429029142324685737890412047809971778728594425514528947802236974547090714634046318650890817715433976769559472538022796658204993911443924187054338112911369061367519823910157838777045496133935845750152018380726944730214527477907750848448402985260675828554228012690766770492216642343053442852748409334177381294117223614799039572342652016476439809513667770148343692273549633231577285101841904911767321181842106412743366343956221501180700165738580025099602090726170781078097364498770312452936576289014280951329006162112509195839095098666700277852983776998346699218050569281819935235355159209708022310505363587748604884440880338662701298287825630890216607500698748608229114160616600189762803740580189646181921370748693204722990997598284210904023564999457818369343021847510312786659945678838009856619640116211284740478036082389169393113701007967007056571668365736061730921470996139182458622095123644764043526853632981036122155466249913910469568876425365356082985482820158269735515748169169146818280566359222467960766508009922358953371045207047757006394012501013475800382381048123469319935064470030012916515245783751980927698557005611996903718374941478818277015865232208180106640189009567661961584575727365025498010473210559445111451566491685271665860940696507087181744095527689490988219645400340921070157671702365930118878031604888326068718545935446629842463913599497627493816988171174719687973330584799874227139458342820660334232150593774095400313744936287603302431110018538180262908393026721852010956843155716345599210952201422755710743784300687427439072212052063233038190173910816412651896850113946562193469047604183489795977483579226350379346445967715474016046775970282821200027914833544521031585423359694813025050174530230775234893188635801050854864766426623889328893044784490729227166216764310983232022710526823097785624593772164735460136474842784005871746932790236313931129135714078104592012140846821098281508674360650267445202931125099120635266110197585513642275458921159502940012045107850156907850134482062585439841630198787720430751950908380703288695283720096327449724540292851846292246896895692682970250586169379537629395685024458482813112054509829896127615019814834484784071422424980290199978759416696888654632056653095356912463961656777961220703714396914249306204274184774362129512589222164872951774681669391269344576320457110991846283692431319654175256587201420457255474986440443248548963584392802683487353029171114262564191336116801574150952579661147560704261036592576073750049455747838578390216979149053620638328819294588137261703642767810166258739336528173944756501202142029170956515759696146150454902943029266028963585092810793779468344685076362732190444382061407554387087957089608703615458466495267962749603100422258002904696202565549463107485829973837218097389805038601432230541722802721885066678197614962749135615600195299605165464845505333318024923466373282983464943841457395414839702585064177337571050918017783063775091953312589677912951586748106670935825875898726833086722905670263926259628071665494918012885475307788846863566023452848123056352375779711290982348411272492946644983298833600863473517402952211271898384841939503927682040417437202783168839651316838789261092312957263317104248450915780032405309030148190935146947147946617026569884836626898885685581699506793861698363427226587583548416117718978051316713135221933362828005444088949894102010561115300267315156396307131863534233070130118522735632295540640588195849160045173154614005296905893593567151070944315388510261653266393604695591862992469832519537206327207511817329489195579612303375313462250719236573323460765599836129238186469544616136325829377199569485729851352556306749012519420834961448463192568060232004121167616762085189042325052297246719602647350826801789687646827659356466460096490664544558524081254002500309479992678932105409733989541510594196539362556882844828832493817770341910296297179148058617376266259342777977863774055566609240957208777908250443555517753530885578149848412455917173851605176378577429246836072906358912734215242556324300232271675350635608716496160914024686897124081772245050652924391886198524547126524077319047416705423750241728498462563550372849119747320223620373667873553224939179253423801125158453375211982491649505750230850413411550931524591157704088891860714923570264770665639402969942893003089894945420397566934892572259741664063981393693985735136155781555969339784341814562839039434465419350785613645097670464317571314050219866016213239534357674195920482256874763262039655477349415036646026859688000138134236022103006454484978011870340645862529750817144565793000236733311191640992312572668995589420703192888547566734889904811797360064831459623060840193655580754606675970324764923130847199168334492812271670816904004487898179048849956111414207495655719965529103619009530564963853496645371132048538827775293585049176273994450550229987769817461031251290016507919491972527416351122027731362530156529552006511960738798410855727454522261819846685842667659265288843149504982232941734278131111582129698169109929517020195885661170180161077395058709899898496230149484744086631336411975210702297414201641399646920987639498780609006117596662458370217133046560976164309791254121083676779107915679165598466553921507784564427917366751431969280483272489884227526793506193875727161511122962941961492908700218180691783635824896788150991111412634212936190413934941696155756703474771379569718014690995848649506786756617096954141151781685750149104511931750213078363901071996439520071082228985109868831748049083993439163448299297646089792777698725585852844016756665127301163643665159646920036171321575430507391337863314522738249083746574158754327390993510716234837070807894959307108629596340836880853072605396841616213340152088659208035932940642316522576778194548874058374927330327641110088557443469805324069225811497976059966054312593250823240853063302560299447334227485060402419443888026579373158285357197118422598613357813204917051199243953795096884588355070321737393302028229559727187785380422245590009636412079730271043812941862630283193183491811509818526242838561968689913484805019172964088374062475645424692478551814880099522135922738433900238680620918281048403985233226150424130199532758863046772871440303705674328593085169940133378678807543030776161269444150286405023145619563048135880857849233139854628853858663812531731532639594860756220761483398706936551077320093335622614551983055013853115023553382298051825536436833328343303096236983262313193830960401260676648305452093420576533297875729715923350321824474234440136977951173566459161117307190477758302681118827910520272317207790840391084150700794211745742151446881923566789488946012554553321612581418526661954376272025242619050159695642140261662680201188471911462686023829131827382320128977129866480303399034901895292370939644947653548379649106176700033079000936580891371648791116998115703611409577617560187751922129141213126840795660969956854603339751697093873102800782837732835457651149042298188372510773486621442659294677488395407501362485501525254265700744899940965862608202190867438401207753226083651584762960052639632876341559148161770132448774961120650666881068722187352155570454717661028388728360998018619283583252579339734991074583492540008469751037535827813907942469161088210443753651917069167360873261999907199548359892386380953649502094385301405851065006923887384546459273588591304504017007364171574599325213875522127917136367388340940343005736300530969863459964504730014132332225120883657816379350068397996661852892534050269530248792703433709254877278153809186721553960434769465209833418724004031175524251153859261357645155533687829114935526712872443160868273850016487768231422446074829724881576611874850167645703718845265164678631034180557155032254179888156560317432666797551584965533544822723057940581176478402261452496960707331793478144735353510566999136460125181331083447680664053801344151138906026159453396542987181576860779591194337775062021649698759861655705911041300727320985702332344026246767099786945882547814244984836518451047196135959926207239055664092269695584930767428937022727233104772629493043778892595636588188209101746230839026651191188299619772824492009922444955772582797327127018525888990854100466251776437289544342847562965865049789275860784571684479788213431898791932535051851431289641110510970020006504198736666469997776887290228774276673385626749422309077726967395468299262078657332694057300421790984355901797128390257739021548988310372181753284323265295341500098678550628993080567251959344102013906274799320589116143415307064284333604380082651498727192726811869734685873295140768159520689925328933503154418841282429612901587807179679840541327036278504812961080777225849910489402948795993288957070159334726710053081333641032641547220340900277123701450518005264049450671825948955890481388529580726054106850347847704051007996789654384546936060976834534467484490234556635886320511093861308813637830312313811635768051510999537680459980359351442808839436012774598780198820719844794881698699584257686968344285296983176452064431182370740571124933151986914447010725436432494728782029145758158628081131873033517608503376722375809372939291252261520059395770869761070244225348923037634381759729711478954193931019907165656656894129937795814986165991968521064890855445300101416302074292866259017036790375217634887693169284276099610558050912452130929348967615137546386611319053577621922072021034755318142110144078928090335128868738433907371901116659383750196285378606742298008353598782073802103157977407751273368215234651281592605822581370910490154209578071998470780656723963845025058694529282409608345857751973062088452949601081836236472851815741351510095159437661971223266350615485779535924452571473864510158539951632284928175776806203234902118935604348595452889376128887949363116654491349431645854634983444737964575926021079360822950920848806024100593454382164514282422048188125601109137763943407044828895077530749095137186885503486502104267844623173815278918109188685643804050524859446344131104754463799454023281611711179505524328535752594911447251867719640650402015983742951631549094403027861814242210141222960343922492232394342963283724044646303174244117631974305767750440123727477790983009717599015398855368150443695336593665219380080364536363565992071138982715049816743990225211772988970971310363431663852688863937385608430294307986807392349397125009804752757668180766927497712054695729048250062460946725183508586843233590464048541882472789863167939864239454910906205512537251213735394893934043017867558988645921046671500671015662304299420889888349127312233176954546999932072884602183305261835291659873733283001457795210354194848364197846855612652393709409675345387034999093190082486849758605007382945894809204490410062706443305406282266569788164391724045097896323201592519838334787515064306559977678701035079829645145222908381330606978632028396781594834419291370226232844158558737543483775813422225916478816185107553926855953555313865580817034578484002548845859889152741943426217468834571140231888013765781597414805109071609087106166087302813116435082873235882481304183680326497890899884897060893075245543266656320798822051502684419115890689466391914366900524629267799858620563226369136258693510063110703994977799868416408413760860298368479543120339408107908915724250465786124931939175431348135632509146036850262759576016707797473303297824732870839252106744579535958738612917979601059521663064402020864165783548856857968694104934933120218656040110407217105112116636363250587416760113732834486694666721730708833520942988138058406607184946070417403332627793495470638414657822458361824168678098115662114481665395836594396559419296028274158330269520284948360143872909895518410776705941230305721327850794503674987086171734813923313709313849190703094208951106174923110604816550062693496330141113774374944822833405810599124278155051752433746873489837623587892287955978313891692451571234274079313521008414954906057906579302890811310910316636531803859620224227078181801183577712410043763599861757595644106695190408166939235477966799963887211110688029198673085250961388435309321609773422000673897378802807069874363562344265877446192768572228704691633086641714717892366576846072520005174884032451519086798355256825703178792989410745242155899698962350186685113530628447379908366394559257083218395824646140625130445140186168218872337254437189260558546255454075696750646623919551566783396163827037023778163325609288184389277824320417391927128721657246227362152689964421719896257641183318951573244682033137305404800882143350401701389351827160240303202555837503173991402503128573541154018951924057666086723849072280868512417147298072446596599384875768913662563979078859768598750219988301904226575736762464735672624837599563488890648744696858297026267151258314264358644710671870837273468554348432804848548615676019477152874204793647832757678016965795564340931666355765077857848982173217378747209210241224728326028510354225117280840484724502301753065597605891352331326880685523135597388851519710076783806203236400244115082591514056821893690686390103939681240923276207678366059999057708762405298662223493829736697980996812443786934217838507386330608578206606420204479707911037172412197304099753418701835070955649662957531586433722866186661398610093130952423681533689508065449472603648289574174748354790047269733276325515565967051761785342978531601686331138833527562253359822183455059937485880960428443153999776820981681719015232954323537954674064027669192230552127208145539697774576677358844565971825268094845670735618041246507326076055270759352030482839270668094223249201371278122531051723922342887043098642505044196657626719295991969046999911905763840226477194875310935110828925491935016224879412407383438709861460040321856393287585388680653764846230776114222207223674382766276182795279337573672941654687363028366716389790648567742035537391516174963931073794898219384969988199680267131089673839921060872149891023075788661428622606109803339830110977422683908595095239423885646306484261435116631022152267807196655709076841532323373980313205359734828893483850132232445541904454662619776656345616027318327064197861557229612527565148527173037201302612912446261048029790357248615327494697936982924070270920253457407684282517734991434345956778194801988941203249314374819758048418735507773049501746570477518006084987793364392933499066451938608102377714887815919235228946297741922438873216632492477082617713529139457105113403945107536914440103343196508842178552759869673168661950448548635662103596383648069794062729780766281166990917384414198586003357578713499959559176408614420999608242128657054899494431627203929698636142901286368848878370939017271360412278643648875908328660081511056496709697706024873648276155713904567848661438571990365428525603089787915802205779875369968847117585195775286951873921287198286432022020123933412169381810476613349566570491876680027337319867727683685660314138818743444163408668159868737676957095811571336514433240484285501758631529398133827472723547368025988873385632628357247815324522927967615602576846432877145149140735269059908808936803855123317130906322344263113395238720549934510596338722946374658038194774597734036439663647677324947124554157877402456951969917502815635997998899601448932375031933503701659676091346862302821799997701586027513091551972413625586843190041862373657156867927958527852802967561333670638089926779906334385589533643044132622079390755809109964802788369053955183456196475066317686556616326654636743565467195956372801180362337712573356968749874606588058807457348601733780318892136287914526067798822519151760049417586999656586158061426822635892831364964825423881037827773880959977983029646972671745140391832106527369556461691154704758430377126956011549118078462441451510855319915392002987143342041350371026788605482975681746693206392975001312795642598716319667836382969485675115509577454596179156816727608497640714421324894791950788240513058221816330650082704456058132252270909201973875019143104497510313814053340686637680415403214747508328657779253459638104030823720309611647319227639076833306266240224128608740927361119213740952794331198571655328466014936402243766162072799288719720921180759365525527911593060507248137772429482271998602285897487952542389199126587244144491339878180540389675428331408495971222646569262542864713633255232736673976937773701470394960510694635762609976080877334151535840351474280426839922647577244872586486691822464950032605115826594740335338685828343175175219274132395491137609335558974580937165768366430342941449753699978554584535069789167082678312783170367330403824118143003803069703570819967982751741976099174176053689263837823098332648651101157030523198383656948907163896331501670283495656148332815700425999074186869868808185155509569735287498929659584898843920148379225732737258652630162502019707692153063958003312248479741680910146983663120295097166346637688333592476476228223421790121968776708706892558380825690272967179007958598707530764696934117609409423118150019376629524617229561881426940369570417020391063401693925175652250233665185491445398526537525936004147547804341195951827807648203746180505351786486830875164765143953431216180813089098354099173622391820224700578540001887946609785708420175092701055618183040617006205010862836321019604876052530410924060233411055331180313276947447161832417204920160478518367553771984207101107820032147741355634783149384310707434840706405665333809722237884762226885693425087015140553762522900283845532704963916336560018867633890513105069446688680446630119903518146213080867062439010575216059740338064195944594238645413951884368147444469977639377991847292507542647404481451092411926474784934590902933404260202968344082757246665577993505171628421516385888366476921450554920422359511408468530562316091123169498542220971972683194004806998785243278089039083892106198384270796397653635835158707713215532487501977297230117223630757536936602616805873468311689577496716024013333959414013950972308016048164179939972354406052394599463242043917195104172319998984131287796391446747345802278148940401359435802703414631059809051808604843512754279012719055181553949217671298872894095199405709883816045771502288429912262369378468363132705261574533341968275015327992802393437150920558203040648615982896955143249347666472835494736778065874514051285387537890541769362324621512810682756809086652358221897161656025304653732106200390062525664000542461373919809429229140907607730698207600214243777159171089387867472260048553904340877697051126434612843921200370767023762663285404955049702451677540885958767823015954643646308703302306791243306343016217920622639483738947695644945415335096632506599317588514215420998546540784857849339276602495663525336332094561174264093152574419623332955998982855206228066112082154722230718385858179549321497029396724814332358352330903886631514614873617526355870176050666358855765117649866981694718079013430375912640355521655349959780065480719234383301329304607285328780873251811703968124044170704296650339389964899055130105522755359496443867489592304474222858530055099040755075989556234595627622174827235427689531073040560777383879435200584609751503296550139890285054500313430059241414855790466849097558808447013708061119386310369838105488920880925791769506948626052670019935891041004344155994480326407605882511319877901263548419423236149880395220929918564504371544431201414176290868100430287836514437371327429550783495749389723620656328687832301354669634728901985860254776830904680226274251584121782309067720787620339168668199590225361614081290901329445624912047918758436459800126404116448206056750331929005095680290977685308119529531679480909785249164259086434616197419768754569287292823330850003635249261945298945801101806251580318386896171960156053887288207543745045958647180445625488799881141529085072740991010074156956262416455952018125337807089167063176381576463808323146735567883818860998141756207137851239412881896035435141162548857334836734720240157624349932463852587376388063051587917778269565960489862366021223510304895048211366378291685397970764915374043097276461806325760344004339798244184958397063322993453333644129565067186879164326430637311105541893104670884225967168787686704544615569256725637249361884135231325935824113284152272298635154654771363629866515272307128008531809248796788446792756932334371308822802049729856668596174725127944935183062777068647582485916536741887366849408286166148952948139249817610004043153728452843423766698048989126639480436802816006696010952117673595585999870133898897585297332930190056041462284591901691778457518049751711763653281415384639630123125200369481329636621621878904967077409018911027363104323859476348558753159486251989697332835750721070500978181418942480235839584575466649296632263419166151264317003443651040650932934387529577743448605945788746072217507022170485594024966845101037089803186171144159960499025894868368698829344481477352134091183844914051884788246377125898271004150671953241633991996394078293522892497861435667063346139572303999155923466007804822185829976690795549745093436245171967205437387599655580548278309190549972273282505490690284272135457631595670188380075895696572626165545363424594453473662707089805276761703863286373795030209431224294951462016098607622549181767377243003971972582881154544972596559722802027674210091346332857132893284230288046856598005414193257098861408327479536340130882258057996994005165640542263644545785747497373287558404015552509372778139991935593806741068196948337408500179099061004423397756287541076929713994143624921299465740169691194307229054590282085904522966164709068487633083426658701589596104183708403521858760979462618856383683940630454482528570298109113643893901607131131036317487050219779831608892363533497453053089872827637813521706006400065845219308762088052338496438749655569966695417944295126520862593185405003219992820980324155079633014551847737232518085878375152070226888962933521229480555824455300676044524709903535625005469571105094213831164337111824729516189341931950532485923440316940810369426925030484231320816533859907930217099141610906836677623383826178018449834168258598507724538714065105770025530222374322576335008873988232026539654658202338236879022341001381211164464177493815374085483343796745331340692201550896387942854903651268390963403043633868789274112846734025074062362136231238450258849775007502769674436969397916480218398261262029303906521799184760437045413593668325863738699277830958450825261792403880319547479615593443154630073083253618469586179934671676785997043484942260844203041032839870845430048834536730808869685864580094794732086294185994082562032426584605907806405623784387682119563534870329146154217474245124281272398911169090870051144676210940378581178100646210639635515200224923580319226164361983486039111453487990604158730154287996860515175227961440058950579533663497960828980279276342695616709271608722528685059425388692888542931061691278509432201140797612634585092502296980822902587555840006753722020544104694649835771337482506444111732887875580010713561949359916537858456841901168306211013787901007230588967698096110503739850959443192474967526337001786745259218140726105832089296594822525300760946643342031920831132955593491135448967775168521422233630944660260578604089076806486147064320316893180093492798888656264654047950382447642527198832556245870894864028412412336138431669307971560692422569264680511123720470977136009951350907841516427858892344672451896476456654396178093471766410938561085048909232019675100456973902365513200282599299419267401469988083582571588179219748004864665029361432673583830335559337485576249811653943714417147472978095202003699570499234414646892297747255277273350048499686139906520877353629658249368301535291208109759410848056513368316507021579772971552468073576726467467974496918653804182548360537036285547449145248826973007775856353184003340117696280340617997966777100405300570405729351838042031108698953122204740279672018723061779203511454717178982106156120282066064679628593096142867333356470706405617122204583770397012482679734333428452344901535160203158944612892577396109603582951208763764972243255805587014343399847780692705069738574171387520033585860151533400972059479111713085267387261603247269914437130993095763976158745324608386079414213394520492068579809362999887206050049367991698512594906032033286848796522397938930749172607027412075064758367895824777070383603783987352180411433070653377869758597538678768038273424290287061113587877769123176074406729359259880672081867653115062592568546869289531699378366748653740470162943386877134259870708755597527415693366523923902767692833963774842486896645613950596186480428567074709346905329386532681917747616913651450014564750435114417195424255045289272864415077147990312944376221418903698134700807607182415809451035286675683797500246189875592191350154395802442792371791587083765604930187975420877920208516233800104032614331987767701716655991234205783745512326399248190360839171984197705467075987465762961064791209310896303142156965942784960841796422910332525873399603144063552586681484111041083714054636075592867219711807714656053827126082823819456835338624446458295393231291434294156339288206610626110599168465342453270899391251288283174406838129771778117775974141870454905118989178219614764100663520803170360946376584319873204278792854368743995892772690437755636023840774952265461999808795821123899409670943933283878398593469345474726436088664934758663527843162781785543746149271778675859824431675501075133727995439998563876878989055917015253988383643799313388076442692336399263947238014579430323553238571632345782231736050197995223000264437882042721140412589881859859011253074172112898278510135195879166153355289651099791837747073416031985295703680666293837978378879439258327449146804165454223870668738561015130307834113337117363828405808421421864334558729300313257384522489806295864748077396371910334272385930654980655391773431306212200596327392598243056016287102823285449693786879600886821157088832932774882077608456583881966126833205606425922949381640178159295967847788118046177234249958145452824574767905824788643187231778118928101357498242514476355588468530462816092102227335531463655305815065643970880651740989201597593469025959322200442703385433657669445413643962968051788903069611962486154715528690607324924611691181525917836873272641685486780878241549013304181251501746609317495410492660922757823621231988109315372397885729574606946785649739554485343963089593864622720461969455681029825047971846254091551070326082714059721599397927188076076302395786232767273971576610144094935810268543290932560367566540830443835771441876013421865815759140191918640965330120133799261652418295583908160919334545676321821145562855706096437746384982058338738828629518124885391446617881724932586794676684729939354843110759442296643667863638321664813067526302049939570927046994704599028774511814025742965664414557130174181174836921637793897936150191516575140451287724013157659386308649832785139023091641196135059280483294204763624220019782077186518777075193819280026774917548566586898508524771090388439180776351081794170681191529904622351023485732455265945544202825603091951930177355127417301068500156537621372568040147410964809216124446976458527750755170672795506285984634343797458214675803267866505628611584174332941828799357074490744144465405165228096768269881029127293540564080797575176349454848834582227944024379957710735885291082777873472639452198600576939864241122611076363869862010243725511848708565584428013847118953155896497339843959794127779765170722671716937234311583095659644514233679870382921802022412247674266394926733401088949967037484362475031958965973752966028966063097571899758790436829253679125118043515568175340004387224928116240579752798167970504377163491181256114302993447693491275126382022861862578659449543129737683629066031603041964809884810498730650960575763300663793729124507339964305498327531497679424710531206652212626619874977751872232552099473304942084209146391785635445333970841800204204724745373042577043563268488082195182370108073987604086401295840567612359281954839088512085455447626361308456032273448927113466968297488418332791643064922401046759590410437498856446730425020956219934702471913314729839027162888472629219249660456294205881609684003533322232833276571753215557646314479903392104406347953239924140652427619630148052142478636899699172870680932645612966162125017984056620955599780283276119114624729652718893539532940230147142938828352410100300745240504259072270964097987809151004227375684805288457517665877348137056373541262750346504270523659594941036862592034105381096659756047297163179755743378734696370041104406858483285892699463803744591613633731923117272603403645384744958354846513312905437202857429614794392438248697907503048160473002917145962020448169665677589966656596774413528833699533306644629432524076862728732900266799809585144638297002110872629974013329313904200284306937478162641861220212668904197778440147923719193477655555077931133801273469516106760543237338836946454838363547740264105354133490328494223184145118407623006980435683017246526735050498523988413424074735009713411542175114714004408624393431405121378551773586142870949067281066811676152998128341225179808871282044729826133583929777208741277956787853936249810079265543387549702655626834872172851271479547103784920222889848759563962821480828492607821697301748212668390765426519294665823440615655155725559244926959505239929140674016195163993274228539751422473477676237206890339608908421558982216380884217447854788138561744401613433536668156397267315194897315805324517929120801322783953293059960782095294067303831577998585226750318944122293288135955806199011301206760131578285282346793979442849512543574762377439430309428308581673015302983989765613527913350802692127202719600501323211394667003443655048943326751851684790391808670587437665827676928101787550023661537340661519739699873063021028700166497658094814784243673627430327284609389956842566260690762627797322215401939622403161039913093888323046889216458095791535464190719577348224270998640538377966105555274260962137612867415756071685227685383485648570535690246224719470693639454611498084890491335193453625853875407153523525295915989019069777732785669608867746490737377365594281783730910089463842745170408083436216827090653019929994820354470111194604481322658486875684141597039876709447979595974589902759880251074465828637186664825397417765664007645755213130471336187565759663881321602066738915116934613628510550354042155157584818091796198493899550725661392928529563822805628283605010639746590012018313559392716178030679385118776216343807727562750852830050687609430574563411938643897986274840369033467712491226157265664754898272905309325468072310619941804446818870682332773616493612572189861514533950183380008684326098036742528938079597997773862532192913912656379090111643488028420430763755519452996101765842569111072448829030002584567267222334024761224716540112403103864378405738694094941299038143449510543789734683200939544932559196013189214778769235103380505068627266044338040411979668151056815359298032968589695116532094393185613746315891887511024283356371227321454013237441455080906481320143059015996597305585092518207902660169514017945116228372343280946116318298093180340398861465217615300973042114467018548754215928227429166941072089365446058217736491089058696778208010139507309256919256914876147589071508880878242449213076139807574435842726632407024453991660428578687626462157854983927461521287063167555709621028404329907094476581478229374417973108411829266873253210890819376386874150597677122000987619605764988504081664844929251026349113440614122629074771456254624937324180706085373676205532246976685971271774150644366531095222234737977925386287007789622759854345193700183146352629138394444543525099741395445866814987461304123897875103611643998967523954324069554380125562723913353359100430041645446758294991364207874613769095145293680966623701878548538895420862151714793429471361211250694726290171469745623467085859358967748294038120552715866203242482250704105041903502425912919932548944388519298498781864567766947763953843374053119083567822252542447819024435215702382833464547895704293860047405159383396454325941335708921333822560166820230747021637209861807453346937380257258059004832620330309545835243639954831868526667005343828982547117202175080273542435446568097628163002053907362484712614784528289414337507782076884494012667361054935034716866832125367051557178842448403841508286559872702734228257638074360636751119135834550702870877030111647122406733971300825897769915492082888709234779534662449770458067302289474254479606466979269939939880293084090403819068812012194822060926663527695359100625994120110703325978897057300769640762761169482888649455979402059045934833062826079649914432654537203640709825465352736016525239459086333588117253622756729950223005750993669751479758808632135811258632718498142535080079054198240935936506544291403259928483395791734394064798162995879113955042708574965262372909520680785220163336841070233176085856012559102511161060105541226200693107724892923687199485704251654023157686489618985261032961113419243026873251857042986624634397299543168301056744948080750196073866722163349474568266822098086322549445397339887014120822161041780183314461273658690372785769298991551839591307571670706054736201584174499408176784301136549886900588882661916532617800570313595259128392730776966054383043748908819830303588033774593280444779978020654621247619819212640850186171322009417312917604676704894740371717495856384803848457174937518513570058339787171385851553794614241046606191480487448466090746699327943342318752628934116620905530358501057636987868452713214149839407055683332482885231880346946589140808822332372748185310591587464777877814133005507769550051528807383489308613385835296952751908717924956711003859922516693732287917857942400171910100052841123491781010951007023273120822385875266598561018025120206950450312315448072461541626106105823197087543861591309462383939601327242245723611015062692653273276068903859219904998749534410458179654968189135776351717736077291067791746697910595556805934526253500482786141694265867441844645918648621135584671585457120765325758357684075165477478904599895024664610920090283422509209712691638152858889279938348614818682578255024286448421146829626734377722636956098211982280892119930648202519310613443496071857084587325318678886452950445048345922206533939502185644377356733290585445857623447390934590635969682035101680013806422875593322451299761336112914712540295703298753560621917080565985683020478047660563040196395103509157203170844734700357478208542615890058871433552784490981191329693981139887340353527024056015475514242228864051603844304399479403388158963589770915652157916948981729901945691836863674748039198266090235507806719659265876220990055627902001843542106193162856646636495950686203388800807181075941987886341254905816334727991958334948266419674912674048837011659133175682011492340726234853093028306841093592543394697152051338193690199692430851892214122693459169272359838299348913309344747891133890691099932780749845245932166834409895811298538073315044741263192748601099190339833679692382610600773019268842990752869675163598996341393330910678559944425774049020744447308202478094433397220839378625452189706223041043983647061543794266052884109362520925292531598903025667893692537241207197511021916658076691702344699901432530059337227833898704152542229142287015343813818937803921209429701830207692601898911923142696473916744436486314547785530247275062155982417775770757027610380695630863035153093179147834301443742094538183917601463975572022852338348210043193999719479784790033750904334151350482758317824473478643398824823389248911468757180386892954613507693189273085799459532890108432233601326661249553817233612137102998645657654617099822228195878117608490894772994002087618018576647636702029570810722963958101882247580319693409343710981579072275251248226200866347720339215648215918132391623091601539725999290388768168110351280483558339292454533693653936726281625032302584469341588308426020652773250386892213533675353275314704091383073854679190108153219913843989790163563473031645476493624308466059304621909428365739325579100032803015753362087443635555145216508971540140842469604052486769860644815345676804622943966533089948444921110144559234066281441546546131557903046269814530122074239069739744796855555988416942066004184512084727612057055294600248179905564683283190909622499757839485850400350604167088415558265477083930864243276442994938012714415922404280265588070356144432864808980379281811792909606154758237403524773609114443665134360089687938269823283800895858160838508892216844914583744580356060725327020349750626184768572204840309864200143685221454953765346326501761569583013018478445306048729711668588250635747522277568154150806226413383575723328224916214777141400189666958077348038680801971219460661650344983356224566626253529411875376933390656025567438837637909899433785113116364916107626218623466593059200438814387517861407664661554583746360054878276144569855464096252689754357331655042452277994718771354332607083579585297914321776360075723703854817139269675776059059855038311018727673003607773538796774730556927996751232677788392571841157265634939642215413973787370836425597755624335376341723869165029217869697875311945984622501552318838220184961633115671056922639811858002827056973651796918018477502858317338392843886089161241492030095725534044127928759063770241218446701579894639804392487664474721983880295368309920441671047882876317936173369555297247820289302871504662184753697730737560854770328799652206691998518380673149427138994600045779822555666643792968922620075294055686866689932960562914513854485917370320932339294279910201806844879101398972675864462003476138914020990772884529315453784486617568305435759496930542371125764632441540552407825190739748459910033587980064092347173876538118601807107564392469321565829733706893491387993929886295983768422160558613807914050611506423720706921721914894120663751337653429691896607746727822006621261999188190023242393507316755098539138559991677160138134875057061528217115306683630418302037282318584286319714789989737199074644516589232894137891395393716911170708288206067145793832066452756025307019427546334826146851827416620750278738407532774939462918750825280096565467408317247182569654665124446161668672010195481484553647793898950181150566997279058296801600986463727138088367828376685906397070927800473946264128284958181506162378504954997425985054160327893679615586015114613545160729826570078045656873573674092981356735326631073998154472991295537484324424496344959933864027539823806454813205707509266124653630386910624637604792091416208471935165077187776759300978329981064604331096091349755068626324404038581050263405500016432686854180487775258716299447236374472119440907862110035272346640242325606131342166383783581686735786234572362058950150651420719082068466733970427494424181089908749577881510675546673274653378703507723469888634184175107084045144746747775713388036543504878600969078283266899743187669137072774900330439328307842362207854029511170204993582569394126023755378689312380062110444972746036183973684394838895580828767943007438598580767063547113079038965916455497938439542932237443949726061620578167950701493987684259059440875967802094753752007166974727494387828194583676154620285784593738973022601229981451081932756602545764717703813093177798831653031303609834939001215436187023185449683391570609575306285518694009761047170557986512279090728234151513570443780961536865177755413759064722754726448042472835652353120031837461996201999396701551579071208133554302363442174221636926447739688286782802633363692031368248632002495644684589936901215922459086263814916599192564493455385174087380386725604432555751471863199983310718533667839749701570179325929239927922536971079547772858551435435053644232576488918618018333666301698038350545713642029104007219595369073743132053551124874474511436790558417286742271143268560976143441833073189879947550347771840655965543808292177129926306523164133962687994931779406978855461856055923461723359775980550150421188029204297324901021502153769587846927002442622584228317687281449426799322979996704133399272549341673836315415844529476466718172062971881693262684460399679734791780088533893006176332736553111476981210155380073224724763707922762370408795143348299421024522985796235110997917711306846238063255632361094731887956388803999371163192119684815633012484337457246226996931022782137811052017106681024791356086875154563308471254948466022326728339851603801919735469928682176538382084816503679634067675624390834366361671590687202909389309897535386159727386160898574365354433549496834473088373010980573446641786144830657213661097582223944340054562572953496734486805598682705762981908541825651981822306754992779649545283268999982000013366829865604384629469891506836581544318449206408657064028744786679627705181863489774505484688283113785791661807794614922054643710491551915319681189240916689243035777611359499754509026302422313148758036518815144926276534112524228631161652911424804617793438807667497294210037422498714458890362841871977140545834541230750756501264524988634853627208462155312670210338608249028610341262318728186005591593856108427355716905755300326268611306718908672438736524419508492393293801603924772028121326159802662884293207865332923043761816673484358839154533432139153189350777831752262206726750484868646272663642761243108209431306987205947128478253472696725139538360621447022662951433425195895370454352301582931917888427975823793315768300668285244346098483233553720470608113275386384970264730734528095338065794250094162162547031154357244378890679981482653358602639076430052907697689607909622433896546790615161477001633967545900371590977571219730127583969663468944491689778288224645476313734434628405663128060097681983779812820419520943346844419359210145428270634244849245165405626899859829402374235859660863589215436369921978037491163562084340421503438107467989726835051303637782942640286828598385887169382303468916288202352665504024832212250052092666967387419217265078450218003400996200166302501844303838214245772845372645536309219546473594949574666630436551891808135555913030792636185946973568968944626635321104596785379341089148980278871539496182127571327383355084098735502773137021083240340118762768644342044464994962327474013201707976881594791322234005876743479211032644472700103495831488849512567852794669404545058054296770842442391550876765488368666533098027079481613800658504408580854513376540192549052073686763197895844221716365758159966882422920098404113314749028689107308908356497314819139666931141255453983909193797996228801735634018177644180067770018248834558508003632421066526797866749586494387533189257387736296885742119442059271141383794451981619273706852792172120960941506524409207676625796859600812691611784707131734961676561344580736280889976225771685615118952723446306020810589741474267594590645620447407200780459207710404045451876569174309943275035600540614631576348042363031614503937069192880775601705405974710332200584020717364328515937966508611889082192985080673771472097650428772343895955750208853386112438243364431407201614696931729052785276963007637169711807922837254876433607197511287029270291455467118597825685242544876967159265943480400486811925216170083415401657375989572831279056621340707542383009205005436850791486224560469742302359440920773479523178807607278956207769078098630965181524038282374447683963508396515572906389858896762203971994840589182406543401577298450532064481103083639057554719513112065474243863012858075949547545032554258309971376313384756258801709855282716109194323453405277336220960686008844541509895237370716225285047509658566853678028960227572368494987058649308705452106850064577603049782215641705041274188652779556622148090066749939930830932552228341169309406684204140706519247212687147489985849474540542370263689128364307724850002475629034761602605021508012414492152699651918162814748800041032480609021521824458333551859055705378398071912206739306320272077505502107778613961796455502677882666602565010501296767394324627892278517243532156620036608287133171966304028901097000019133752144737524550423359556025369276284186164275748747825714116012941669948640783764011528621020730591055455740473742379632716385009128710910948991451124264539568798403059680313968809196999926468902754112281595973334472003514677217489923984786964687826145226259075291863995982001889620233146409874378901889890076259660433315747127617286846341084226128443815311461931950541100055439832046289979624064637518049274677331133118720416644197221575235151844346311670871755200708190701455570781588064524926619034136720527486209284326361762319419297916594608103789466822267960355043006094381277203684558718116000111289690059400871883938506558985493652243018650281252360957229455022274807347670828628153608143749182667413934925039662202520942409634302194298773129805966579467072529421736857030970073538002937694148961674103945143400674442114830606241424197623924323996389217637904769321010051848893572064513012680042641464893477032850082680700025682553899345813173445543106866490625352136810290979113597932949508337262062022556987798296984745785478765515917962916514798127637638599337665601356096760049816003078557481734916452585783311067912975440222522241615870482575174382004015050540499434612500309119953260915153604232736682880725797935207731995484391034742723721328886017916387129977924377996384802199126934784693136085453940176478688712966531815993566407952860761137134743267270935265281099377779981939367841304770905588518924729411469714694474820313781734907140561267634593848854842875418675595378756884482441793439958804107278763764794322920415624826613202460850534939630380816061133491017484895947870380176442032799969668522088648701964939724890821116793711652268208834825213324937684717529036648648839180136145831912460745677455995995952202209717461687322836635071649268928240054888546837795147196239450771229765959732906281325544773151035825265922605663282300399226640648060754382812876918005549258443482731587109070240963149193594978978035977402940286687485718133880545808058863920430712645743027382148692600856654662028432676131075374271467649786369703690997688346247700362704752449576393873588913491880496587321514681781723665368973490329807876776606931876482727712620450686059278034498539454963378202352278968264710497600794185577793579681764375985950250730112584703600726365836051509039338333378859841029738282371013587970135613504242835743367312871931049732473398516089185235360665396462149001667998080851874730715035219755271990796826605049868006566852043754885640412862156342073350553820612932030951709280684421723743518453133647436347985947643929979619087473750784495991932534031617194910096067896907910461067492132822652654748214623882076025103891669447214070144933692364534108992591346274422363941922634003673242328540969902803123316692143666440323053639993842818022680050141942425479070945212146919477083616779395617178605999227563124242443531872118723344017558106553597545041821576849730220381762626850963603365043690932787909387498712820354790215100947554362877289974233990608008055648656231367971528735381085969257672467082361205001914891288785314986967895813585717119352382149261339424250232194044921913247765052943279646165928168019792371300547990475935192625827966012547747376175756585686826262500883426954882011725733969031070640011000473013062934395720628978156732718094991077011806457374924448203863369295872312821148951183386583779591951100558827874085624378005835245114909965371061009053483954128811571631257970364257000001597014361526515223454717561460028085744514225904445004493689219579261779387241264122306101906634756119453582929302997315213443644526298090940094778581688161667407417729383967123613520060491807576633838449663530365844266970844908507650488562100660439919392549930945073902936693564406692361613466793248014311173784116348319065065744322195611833932476387596919073528809502167165183437951163669435677201578150286850589455639430773377889561485766746677790108794983164895615276681527213214484757208599163165920952846134783128387396241072572968186012834171782273562584458056666520333969009322247323724066183606163330551881275948230878145598134375289051665343647631345371775546014560057898558150535186121262802813355422307702577403152457023587590340723473167886688493203882259909885318693515469678617722170072873698892935317909700422838983492891216392235145863566989952843415318027703062295457729036466859354239540799974657193629596488945787560596889247770687503908162803161962537536553941096391102577375839684472836377823947191593959955975573168490598497478579659299765417263737208058734827457284897302701466550916156424335385317017595178492301581935738633466904787077262728235642054220518573294129198361702079386710198459701368788412014026790309006195980138153211357516188181055258856893871995731810328623224940401229161631156777571600350323026631921597177679098085548759218273521514820319983806937328507682250191700850288414757278793663209132546636208095525456146776495024029439830539687780535951341322636237633614355839572578145200783608635961642607037121792101105952873595809961943602974850660632470740404564702487755446757087458283567098366287142785537833501543195738860211467381897984407770516931462961338988563541799427715001081242026281007413701638227696006549057186704655474198937455962650995483435041578753696192817644464317385471196897864685826227078034426858261596463376459736927204534974399758319520150389978916763724367614218923719845661362297143269582037058097514303287869868775342876581892672359713207683367837438355311953031609551828448999630980052547520063434099494279571567250796903869138123199333179959315042681103813758893175453943504596935308985192197484543840640097508600383203894676892408110619803856443556600145350941577713233212053411754416453033676596667893179623917533590376409052733485143160174732825664139927925603086987680954066634456506308091678390081860543532057278711691670099402845476855097366119743060634611670514719188562310418608652896072879999043566440688113824782521027513184735810371836153489090399248461357283705807885719079265998770058193011564032512298357266019814024399288188173598833496175780331028441076598094354511298120972570105630763318848960381853879737666090748874841723244951239337260787745589026908665146863556261622969768997085059823846994481164068103944349437718392975957916580353486209273450348608053646447344397664340664618313409395878024990440207677470347525815645351923370469711042516278071422510439642633171064536630326979076403817381231055421345685327102219086225529742204348501025277250243535793935178696295175181401675190054593049646251791302173516481479613485515341603659339753823048173324098012773991055848067744978011141954021489374420436260036984141009859227188720426774037131272169022102785981973547753377036639773169410216355156901570663040480274311095927150275505012229529486300241816020480094658716821618687574430089994100325010937833595967439322701915084930911541565114144070850961995506757392585028949356952459207890027663550619281975174711374585937441261033937334422978949211850766423774479796374774591395561262623176235308322933725180643724541293896366425614223371044636723990707794077443809893379624733112607231755884559445787041518289665590260111568671889195955920818615882590957092236459245043790963090685354383243584672317363115898114952809249380929068744926498197618138743572626117438375555704785408296649281849661238809629154690942788883434867063586194369615901351170436281430526517806070081083460282716180411016462253777829598647338436197204344249370029226276497213440493238055474664612167962002241115570310554254053959652891743525045554092482171974176402264254785235970803829980664847278456588517898584109125220323399482730363823160483090194752198818575025208537922664204663086420177646751205503596449580786279576777286535183614231846564396053952549534773703087079122766105341003825858943039629741650158920048672604181137372216958469919266845559587073354734079503756789030968455018122388392128316321795668165030616722347384627299670851250276147312626622504147804817483386385436008237981906689157327499357040919472396121473013452889783790965875276079560092137389158913168291777823162863164594479537688926518321215263199795998587078268912928073649449151054940147270421827088874850305451837881694435160312426080780088604720136534283771886975465424093674601579171712920762920355228429359226820492218629269226419981620072513805694271976183975391753764427198195749297211789547794164154418125098796393817854325401604849921620152773972200385220184989750135098995525376084958051045637631656906134964047701406467577054125061462896568938008322093462199340496849100729976023400426248197585097325512318724378549852291598959713189680839327064529967838425622742096224760625325003494224588193373183439594573573167910031782504400437749890884119282547106847598399507386415726162032007532584426751149545948574622547339247089455907127484185453995978425697517380407932641816478489851168224629371433966728014078525746971484387320282433587566380958106856579399273433394473145105312924224598522395022293329059840134637676450082151244156490102273996411745041865768830295627159865036055032341115206563583207940525315278934086651496681205714667263200183307648999090852538622346269368832477989370219742435075440976664057256287048796053411733840336636915144214715995061190470167442902588771693535519630443230534130232531343999765982402163879054056781788522707717161740198845398922359328603383513908879219307888007512108319925380540484743566928392804964430292031126427365727502616173920509927211017502263968615733421449293770179319931667078821899730789714720526455099803210347640600921839069700821661865026836511890640863781816443293414650856625733435708765232480944561986014539977025219774098734035805603859926492919131987781859378378889278832186412149583085789597217985837239949003658129025115283848949518014710035546805076958422536254141541418841458576209762285346892417197529372376023333939034189374057338710312076985811195944884888534395241380626089746396034994719219549633964630634522968660996305855223911070612527493714577572681035276672466154065152883033833535525796492398730108465277839511191593240273077509403582656176224539245891864478206788059095665714701101918597266243207880254345889813693186468562868896868038725956042071561726673706500679452135939790770563497021774139158148392961444415426010133478547229497799666450094911560798525970932334897365162656660528156103775998790923265326976273879587036870971305115110611617016621295707651572289556833730404027812773919739107624656021369087489730305397452106566694848481658386316765403561604874313072036008099164252112987763225281808389810694635452827940735921130423345826428920370163873330219898383671967243852564647599901908913270045960977719217866470427028248588843003736596184442057909524492783900582590563596626240053373328577774810787387586436640475938623655249208342217597450931772639271583603994599734592164520734908038352985817968498220238593589547367849872270661080423342578616180335197834979954304935979997309180775985807240920400525026028315015239369709919952220480978603013634458289392243654601359130995852409743151286600878000258656038620473326737069603279828460309628371875837839702562506375278136376158260740786207585344558450508511645749109060269989677478525674061577453414121055196065981485928141713122068882360733856302281945553369688039229970153878452988438733561724240019182174041505587240620670826314301335328719202029170551455184357083952304101218189589737931551470747762027144761791671816730056493137308177689694453150407532548934483275688147028472422080249567738803758780253248330137077410161194602064526013064719724965854271229084626218446257346433742676275094702763161568725139492639323133150785958375832458091919967757393111419757197056726629320115064220992219143149802772479349344828682659271115354932537355072476925747564070962921521143607804037671938670809419007603204000615075507095262602676099828758100506211801469155235318184674434309938740583150182115160064060741481840979812910881977676501782988372319946733257074214412188164579617490948384756903427757845326439585390620561662141727355978504604521732568457173587615171291552182340928240710638230967663082385146761787116882952805815270335181243665808560919824682880749688073337381961029916785978062885465601306162228258225154456553209729097389820324404780859523548286732175753798558784926830968471548282986698170818918442172346912979333346821765469419391296030804929923633993004285841354890694144709292447961362029567622594373108642971787168438912512864644578014446237801377425531572676638315964952794907171265008220174536472455596684333622991565245396099660242243115804396996290436980607027381662279382147989074988170889693227913101702219253157595513281474531196753248592789295714906897981314653349561223644736559882378683116720654027920260586680667411367372190220893892862300895343630122173361495337978281252657763883827880577981793360779439105185551959971549106433204337425945226907947604023276357761020393448177261664985257992740177149197096631482609837367098643419913017028316016018861028046302334174258800763339229549714843089702034569595957032873401772457702974078469292334379663941604270306463472114280512419624202961741099166028662422424517705713290155717346923493274056226470174170825388244806697203729940505456095152319841754805158209417956844975469772490412060846936155563126959181580504564186257270922460195689719753498610436484903869600147536056670489937671188412966976790329650868085338612134172314725841413118963105166552633445265013293277576639833245180533611114560708316272685768936538480662792067302664207372801264310718944353718364547532775431072994485661302242386658126254225516755907356220464511783002983642916415374036505898318583889567912993786956170343375847145959499013589427573365904786347664981221779033162297625391754224652400806939068985346184393092945265066149479565015901896760110481494057547274560857161260884603208038992868086279804329545727564117521385026684049223194143842203539797836423939667950438354716464935548521352416891621410386567718372789422318213149535297608367120951800324833028567258726319066613758200718442051016100268959456219341095651957318262085954780388915808247528076109572902263633726727372082193195864471420517007435501999976473901383072330983448719779138139897030979272295644167299602993997350562628941890168827234217322934343029683341096067506637246767227958571664695380269700179406625317145730375678041356747352156812862266689038347106184254945966845662797394980171868561673905046040933354798867850767913442648898585328213341181920061305370310692909490428440627305539554898259800538697899971873366339490880182692577689264641266920317586557426278517080453258603382207196871415472960199572258750562542887118685454035225451315960876824703750416907522116830157793629262403336350929250422447223523667668617140103648840336950112874264113900979352738670441617793381539440184724588582450178863366524179349253355808239632237271364477559791973691718853999328090473458066595735141705382399634947845108590507842903290820249696809657777630904260682770116650690650102909639526900986522953959471457927431126635228269274710943733525796226940206523029711787482757277786384387822149702746131605045033426093044107277285576723004979220608427783108673354543577747790388331606757437515194424923289892607913696183214417438991938238549980078979778384126939511551048079178668754557517297570566564628375761566174187943096226707309633517793787788657243828402108188776881972374464355757802991149850633985944076146859607040621695015475342958068861838856768753196804604945544130938634896033910958673509195949051100076724214932178151990690932532090537312988326329719716694542993496964102688016038082342438618129778288063548083468744852174902151354554846081777742741188309850274021329151763148498132265970986023387042721901758168514813904742046124024028037869300739721556362028302236548398244445412582043970400590521293666907008246256993444080923822198958441872590612236893536119926922248224365481550614977112639919262156001312048248194012973856901998088180325301864308084396171220010308875618333303875814655625516649492646429761681473050084133688957199924111310688283551109246843571422379195731455051660997788175554884354368076151942219308475921513320228635452942714997732972636767218384154360161345794610982171169363604336061998561719390276117291963632527395928054407511082681908833551273932684844190859337341567620873834211902442227536282306116818346401119334204434628721964711260941543966510933358961997667399962719958714365985316566211333506020529697035075454476415430285174229773548956768418423272153773568346547959803146546327216680590778350619024201489542539327175465931961124445762454961213521903186793920839895255198881515454943343552215187643066875415052434040532392189971338192898715535758610345574691083082879576512619971931442518228643262265680828005428751864155120815106386216876419537718176336956296057436257291749486278278361402921238736700812135311335375561967322641093739304023257570666860090395108480492705242068751400307628857160015542365317932678512516324161552001290168994478501188965141339712187522702198045748639891845410913361400604712954437218974523648067390821125735428068424474124545295179620618425254421848463265726234514752817155321166212388191482133965890409687026243310723512872207498225274025822403643026445181639903197203132839186697350442558137402339495678440204956680912877133283222303158454242629102675953671474239008627925036089468582342819141146456628771584674192899926548975421429150525634803251444890095834862664447011609877446441358819828264508228582951950011842623359651733307666435216244637933972260391409383372956903601646473326358765450770378290017583785425285993770515609066821744437792176678402160643826124160587142627256607941330372875838600131264197565299412667561772940022836140307583210972507321654405238845681415919657495843898570168018082510815419390709520290612130229009044906006687206224606778020942699342053938455511760181877348552316271295373151915901488573772721740677900327890013775305655302506236582695775686024882797232626431093605167847554438435965507850643363614158375180540480564596950559794612772938063848983443510711577253065632223599777952710779527954807922434018401960410292053708223359754986282281955316448719077036788401063856091274524360479628352903608970282385640752409861935816623635616051546710199009823876889899707852021630005307930346440551362659019146927652915400148659120172376814898898666410822692683840109253785108648690493871747696366605011252376522509911731549335914219115142204440012058090024021162699828814867023612371680190997661845678614830734204980200071507425476864543543737211649946123898462726694556736327858128066061244569036447238976001894234157747908352120717041813446672209126167315679921621018074873769509645313433738132327292129722624815548626542847928509416579625700669281483014136516427976051380113967259161325514147812490613630031836041729127308561104867769751121019522116382778146983630615485956213154022225784858395468309971062011667633297500163749061003097556307106231775156389432024693231787495936590039583042288442137813122428064964961297882933574171001359326429396228703840141004754534271597420895631662672955138950562439316388902688256433470631489801908698776611730053710046802308544661568026446945919428474936796426500565643680362892398521200656876971149364063838737045104141573718238065128228935005659378362587919053013639437430609040514286675990002081492017297793668565837080884624551135685866064680194261608485725491689996027583526071074675519315051149257365442684979146034477561163298033657530609731917242790845843474343246854896010683675327240834208343922341534653437920840394716820609739932317549333336202144167737742867536658414406742632650696541665694531722816357696652678767059614257629107143510200751280616136231435969797180842490869728265141452924351829059615809742358865719464676272558047191902746065056620218772291454217630190687325371338443417671072770393719252466196686080258275782858686188966599652370979880561643706738319877632028074900166036083598118893707256377014901720818089406801331635127696728173607662502345173815718956105612369389012230085451144211801523392005894810666103785634081222320685212336541774640611914531815111240301768249349931767719165268146927115853739310590848959250065210836458876545750253901991680333819102619657135318262398774344493055367590114469327379733534695023049781276539674363365185111430736488418005430405545903938216261674222231667221406062897959279732751977698747319305404407989154481064399072156010312025935794731247095088778007023381656787615921008082239778571557031533838066984756993116490228547726237171099227628342194380181114761158016588704960001698737897354130562140997092405337211426503200332177124112025780422608976788511777392654751713771018531062731346174782459256725389810713957488327507075407527088602067901256833714661416013665972900435202939643536228073850381189636542632612853481568591450350327570653399321363287169649720143134022833210675979827581679071731550325242326593722805655524234235302395732329696174890929444584818837625490603758249523417680463705053543673218908971164177244118492134909108196158536629528579578422561254322275837973917879903369678389097398197348514497018625889088022150843400160158750823912198887139632375803360173211290191820344923041789924227937325330778572613858041307165991961682623688861483991548747600876247162299638810146783076569776967216694051630589688878895307504581732995783727086795720273182772574547895960210944055975446372977866207806361989648886836309969143936385349719785828171971946856131808444041536088022900575956854645961123693789088129033413261234584252276898592627672844617536931334736493244618672823714205154745766554510278362868781284041758809717454813580988037314880833114512507568114283815035351488466271395049930493854658513906909336670902497934176891673061145254553939698979516755668452704947935045046070953959154378337438312869927626479627677799972120046020615236620673182841351244426788974205984377711633437765344859647786778759256098229570602147191858080831892510704275704248904024006799870751775543358701713930221857503593137355766908460685951423688284080796463821414614793076479524730091266655106986979818611442846466647919605128760540445479006364945311756847835760420343568740949372401756630066129978523454309535441357629043040880843268096760605656185397779599996817256498212791273656322283431619892708152606951969868033943688865101703523586606064737985058756842743866421424911538042152077935067711915475642571128090900933892218115893189369839309490723442039397609530786028983514367347334213881230197857103868153862539443512564129743513459374285282750017800575628811043516434761716568326675252184293661408433215777836396203759896859551182882676856528783228654222945721790463412555092631871025325066903959155559624159890323819958147071874700327308284480923926210371474378315709029211006230157632032739308836319025496905767344384208972620427399607317732024653251138123028451223880344282689453549088940361727361610522882994864011789641905036157629142400691738090668529021981729243722521591614190230090249348109353519989062579774619661783062692118566396892191809213405436326964194980275014688311925496220539762858304191572451146135964608071313287772349386514474197961723973358068784260559829396765369272265506802175515997322203689380012869141486659820427085203382134655332504860482176404264177326587057712249979335088798332333886022795450839588428373831988674065083580816435194694476769643291286185117196338390301076108867129778493829759356894301240670589135876705825038522698474482170287676312927514994115867529284566611078045565041596884773678177050805939311126552905221366886133840386391991266536188553555524996160687644045291229840793392586431993538336863264828377037073500075642037667589904407212247073450000895206758052968189131447857452382559790525240202635510654349907434345383236656285606800740068138375997886116831347632117725466850473366704671252266946105962097169734220395173541776655122432968645395729435601822889331741186995930966735186228553257201677224802837909954484381075681160049875197647513030344101212064454628106582053044741050004429535978190235681807401835255213309490912754330297149593237286003170331798218546979118146193703925913140973265769542934384989397698243716336937660567013295639087343128462485731952919345326115909003267638996660599493837255769615474383418092504264183864721553455338177209686510664359046968545413540078709357302129805641342734262562887147519967102496671371369963825410799670884819249694260324775145240546208054741349144909913333376621291850061395209124308014266173909392662631519873771227569454912411687489295795113922962598403452207992494526259997598067268011004739572520797475116505184436102587592832405760939712494628103638895107656001869536013026570433382253132368249488962700803569811333143693276490542866787374596590826215944713060160695924974556895359688822276465247271246979573132961044613687726876733256125239154328787444716890320120544527944288100402835859782411769158694133118104838501589287905865486518927969479652847618653358522158839095440783258148293395228206362901297698628952485266346731327859292899769862792802080454331869409682421219931280401201471574127971034724202031284229036664987743421592859682939447184632879010668901909599876303187829010269781672621227492535564115301547375561064106152967158678476921888517104100372426348666457568894547114009748830977906846985174062728740601558875137344945706770618790097960270153928170400251237640857381362191531874698034832862590455115403284971711709255007692143315356939219165513773954807234891482935436795513393830441234188616853053886274256582152419479830019577990069250514111094391760308101323870984187392614088498254431685344488872672766051068719215427850425807895311952537435539104268073093487863331066305072501922053114820507932579959719874342636691415556514519495133471052840006590367692818009110430944454303352716045228978623181127869628637119862936237833695230380741374461476207024953988296815679043089800120457811956147042815791370819649193979186999486931263666220955161566487384768969073389300127484227505039917343299068076393575266661685363013349936790730589671609736189432799601276826015013061242528643953592714260025314411146216425840395852643353262333073560285033590546584528223774834386023665168611058940626878202334511645802803055187636825937114937914554504446966056370590313101648528018756385605379195117409035475300770163360543351301507979979729738985185035669458810244360757176629260196943135778068153683115619039584063630167068811570675351373801100827204418638829073366319684370263862458374781104407190254286214985243151003621064255299220406556363351327594082353585935159889293407620890885080146826726592412177054811481599283751293889675271434087801231812056088484109227113335822669118412332806611149953774602020855907411806965308026894691890942210463354723766643309874243368190713345804838289366358024236358046364978423323700252562806898251101723007814247142831635771165285597786008077027553260536165358267313773369435535830911740293356895973986523951046317945943164494440609324461607538661667433271676954188428842709738455238301684765590187000304304888155345817961594852412315157024356455505671819965201634753410351819363641695364638292729783701454834166334403857082663392457540625378826292204613882684014803781333041897785167675932146317082224171558210810927711971924819946078135731403455016790096212557980933668230193366332340935811526496222006960697618948540295511450611600035676421560227572004961069967094679985534529541122232920264469666322480530237072831582904694317075053987357254343563065808873672667090068649024421487595434774930722509011141807415500764205196977710435596314036120946560237844581748190523521030062001290673737114501522202117172606965654831528016160233299907724187672804602354107674891677683220202538636345389410854241350382003536002915726597487481545548785970734657906546133778310288344022558735606933429847865164060968691444518398122366249130154223975589770024277873524824530281180305762700048217793202395102998197725657299609854084506016545668647707968463836749010080082415404571735453682239427372879459161399198305911357359974947327542924775952793688694563915498664764801387974388542541503150598131650736487625780365316158704677800942413717946123861296076799514152437727670031905443152746076610689021020546826658996168398947241078403003117375322925076502236341489381548918302584282083010519635792885203871286836702315273684283998094552728525720137638226165431316334321170186602369221495315766965900313018716988966521230157951503459999075940643865319332622783994295195242047316132221289574428572258479138388380008614122619772868867065429264449650908795437988900406300160294381590044686440287419174956867859934126704542353191880124705775464826845463790923442294120893202049582811291810493038192123165622386303425107178764434926122734811386859792991301929227848021443085322578311550498925378937875874837300614096426906214005263991837765126562055454624626983120379281832981204080481576890395867696725220620476661387890059376452897859218080129331103224842439075883609463857410894985548394749887538229648346641000815460568777856296829091777105471936321919059306003360343920616886820071924501019251200754539668551558508622275467293018332499376344650898819204621908842598089203499785368056809328588291660647745276651564438059385805444528461029905260990528493968808906241200246559472356006141192050915010847983897626730017099614999262918147703811817978367019688020298277073781783052222518941378673230222826228599527439288376620380203179648433457224214256736883773904044498799880098858645196753276164877603759254725268694593644738822029842720511012682471398605487159538186500418194216014735945260320094465909441683323922279143955176002207826136726697079461608148345556509848799316525021624410303179711349118237144089487236338623173532709667095400496220605828668297334952167171106745889787093912423044590262901095253162117617690419455309709454156114812982078822607753104560091737638440426466549642304100516688723769415564781514327158583679895689014278449497620470270710607047427661145160282994235076346300046321751720085738592838456464226334639969313545188989376272125476687232588477273555469928656384128801684151580554065658678046790464064771539665565992761138204302723533314976922729828739344654913211184481867362946976146819356551485014521212211890660171603947838208845908602951498634341605855369887694643701370503062598801360336398056296769833646498377472157305660212949659672966002021914948549754174920786715453876663209430650390601117275223965500330075961251963813878970914691031327386374494616708793042157260709919346841576234650978129351421206288341232433442128198418080876854519123265982119475225058088231870061344226060427244821435715246441228796700801999282789492924019192087628222696514354652779458474657158265339812956850055539649718651171706673793685866303432040329045155689715157015986156122330938393329059510372448891555140231598365611087495127359227649782034556875644364633206962413150222829521528776042476868416067628287955598355584556898150759277079212825104632428248501506512575732670659917729207426974775259175419892570264583144757557787018012296045245418868766507572771512139664505499315409790144679809958651552403854879440045103731835884176866057942167695105224754055177040286747792887495290643412255069432538881994571946603829547252784641763501773978039317560116352776429794066545892533319593294609340602002412693616044234350257989578355410432227909675967019941941920688277209813136445359544260187709999606423075594628819762699392094187949125301150597886278493160136817557179191194820233716120713663353068561814109239779714737117336857456220349924845617307771639535352484871090741703684570157659694530616808438653357782342627850913571351862148890337114993811911815080287542671933027957086242482929283709923724859881619214979935944865386262011122499203363302603911954569380052889950399832926923910677250041937213321494912918737298902811658194235168517014190854984175620748238188146488039065070486156386312914541656740235434954014520043567283505888923860326618186766102249603725386183343432116485389125311334167372864640920377315541911797044204786726291814372174222202126422754251106459996247599958020220716908938876901049571536316986361648631100658336488261764771754844064007865067098081133450755412140898328746081874382506354329041047239840141435540922493293475357284682438542003346199394338438537639234579063563293652112550533361065479724109234659825380383494699581991516477885760747709147386337299851472585013020566873045221888951296989157340368744832563858338801969552869741636960991822631231299823561565914731067790442130814020294848851963425527053253940483031882662371071448059247182490360286637666228264791549755611760740539340965124163144666759107628258563075879515589588528600050682429218206282882533331542404179631412535209493078559903616676087340671994080642926543138448310917601916556806780382336374777377905915323441702024499718411528757724771322647645022008273896605002969358943332348770005103065839673527730928460834183175651662401915901987673307792514492002219499626585797464134242087502638876141851864398469681028019267102782530837295866591723100464591948910921874073613960101447346356933387653041418511134452992769081025838388878088413971616629654210585804429914061077531067871988027074746773007500109692472833081703940849780671176657482944361905717162193183830696430454460800671502389283220142181304920496942126519083442062667751815030898530510652788053763459824775489005331509498363113723675500052590984120516054578961192383794889002015800457868620217321233573151206202701611806431219621099587988623091104103340937139122393717476291535321814523951483957671077871759724210332985485598223543545690447506846300547504743873621110788941710153461033129792667262268726853573207041449477859429417847153208312450236929427017233068451591031174332594419619127071699559873905324039520843602858580196945823211002493793799086585303528253226305720316079833184764047922860092253687921085496864156029941489989770078820832178121573851586481020482675193552046780661890248528406036202340802371326547340386586638541814185890476760048229909485416448468589973007862373607724847809152462576867633125101740270015407608368168988700610617973896997248034955406537698642408077013950293020295262570194656529808978481309114151765887669914654176866595613536400040597580939564361109168627973746736724497137281135780039804457542688540554194890860324194645372769364764201132446842635577209048252962741898402195454533429932006047723028759253268283952596502371036397029130108946438248004397463641482102260942141946183643260795301550490297099087242683669951124255736612558849099795623841651300179408822898323074559766058196075477874043713645977953907023974717328457749724649318255247162976009802777788556243753301095829904246190961963918132149593154356822968816280898507436011691510717049138244520917873615182134823309249578332104683435081802941469108703274580784940265576154970587123770588925851376016083999207909435583136218907721554045783656392967128073603881687410435972879622965170855265373121155875397694170475385562689242621322360988602229544698567664130345091821169791783717906839950026146658130949350934186663141403358522953522803069354688710599097789555155400577412225690689020619804597372263199201539143477099923353316234997944603588352774745064892871820188748576506581216491853008611911858550069975808737650452356340139382986000507190751682107319783553505691240767236117243989068510950035305364014553532746754921543381599880007921871020042430628915895231994750281408138557279845504327379560299919646032780679019697156260529176544995155810275481606663603722207632341746869461431324864383260432790248652502068989003091775359046893737891045837749426976135895871704737451573531094319322807052792131517746542201786474175070988595740007534551307023498911745626973629896120668798862572402525209113938425005630200181214004772303566721747782925016816224643535521526706892887506041096275670238211978629862376127248343312688748323480774049071131645330151492633695343090102226219381038516315724663777912377738861790764787448712537658125130599119649244318573107424807334349916335787864390403046590277572509791135846141321815425538099369054956784519081751659814991130252332035346238868494916807192786350515041600966179629400507299138905147685715925867473046859974125599564000561842607737786934126592124158541866856342220617281816096632705798425562027062940455543613233750801562570030332191831792438489953037105204271566822903633945041327352131584133395002249087772871606555799553004020071363680763697049060072069340526598113445565807593018012080733193733543597760213797593768295035528754555175922671277465747642502520906005794137849748275128423488568708134738116008814605324991937455586530562884372297401928448909561818195594031836517353099303616945312050900884014903694475521569749581315699704254242707213212326709285019804730341560923968712444384084616239292966225355556906215670454282670583577236720537674423317827790053070027940840105283895573032083298622682502129760682175063750521986145003759431203985760313815604229174793474935129938756304883506364747457072904190335955976423707686834508627560679025076421914441490025799249709688006914473919583425113730180733955082975457145782599412995641283044113882155532552150507623083913443859197382353817624604724146119317843283674806479829173239346068015116645431531094193110401054053604483440623665852713424392425053370302938058388729749263288959630555138376529426165104092688185273157260301966980371792872173042152257941872901535402007924200712016467535569555526824956473790526236386914915102997999826666831305567104438634177515954233726043725290611908614360204075460484859381790017415892283483936038395165872229225054539761888984211004301617874299703162497173295444899199151029859700486559953947949430737429867252403943605595279747004074008106702001447217334293650139526862473526491928474806449995716715168525378515853372834380492970146459990426443159659417668783220572598218667324359377443929440662789113250158295377469255368088128968031226797749635671759373306259804917914931201470369334397897871708309078870190168978177528112433156656182550553541970797106072906276705848289709422873180187977792630283569967805480451266396304505353844528423871972702704841603768556460558964864810362467782807791165132616597648521802555462844770518607126115535603032078157573752460609352357185323049566843417552859123393528936624897667027560101670256265743999823554682586419597737528666839730427062465524705260333817366494337870701168377742297529473374931224451254416154997446307304775477101743937305238192651698147371113695989098543980363643309088296009825698049965934489240710268048359148971581139705143142221268681252034343708362748690437460506635698598107633163991552163983005569089046993561975422504334285062944931555410892603819219713199595744043481295214766776421805727627797681644765851888229143675522948465809713789719841124236574016978255671263609110439856466060528042806014979823139450272623340237097630073464327652373444709100918946187492555887232080417035328858819483228118741870445413969416519428034093592443511796118469711243368904530355888108209908995421301721347663646164429884284069517525475814033771056754680322360338991274543554524643790193720725355866386468289081526141761892653560054352650799557473759297902762729722824551208161723457034127911501045994100282492680726981399224082351501921332445757346086358958276500236167530409303963950089587251653059241276949068225883396842520631740905929562427004026072561849638007654815577938541994336000331980690709067294755210202850342855478077005577325013054444451229281594121058156231383275403193223705503807830063806567738207124233265226178565788899476391913081906957480785696841954365282137407598751823088005937790536270981751157961254741885999705300328046906853346987068970573944963354884392969650843632122218096699967549549230335191823811328097888037316494504205757687202127643234757195982418484241987409474641766133055617293674844043157694836763841461658325538735921582173991970694419784477897535511938953798393531294791272586651453475181297284356552959674997548815079413310387367343720949218621564754055958572082859471414089642452724836230634861434624589971089101508079991506454441732201873010681329624967215733834314563028142797533645612667917060735692448839647843259615399744173577502086402646821642658109755545417531740709591612973872970000215748553406239590798885330264134502267875282994181564888101429782345247626087255093041848959872217656096571868094058939548555671358654215525711109982686939727732889463878973298424171444803154770767132224351657935119245813529786074952931979713038865510772168596058622014083143335872156733119162421561005334099219037562519533841959339278862953178411115541005093597681867337934160693887356066988087797564063143206117926369353934174490871636730061236106955784609776588012544605078795671293698669779534798686217314300281805422507970931037544440574200648529651577735938001674409702150079052020453509723372171801055470349540206252892918082083637251669874307164599121751058054749351751269321655375363329051808901846367106961045070540086064653122129662435806489818251626266722724609540439963400377671035854194671321312247325300824611846296803372002230740507916184930943384382023121002847027216969845233639243137347940358414238437748294027939145475557591564863520258660601808182499874785855020757277896352590269087297280112550822485033696823092682226027957896336156081156752451221613621906372681782161975254347618723553130939017758257316183370358206747231161391530845794918029730930165242495934437795937171224237743938474213307597710010369079281290679776453659962218535893952743642015568446583260720273187181709796931473981209696062307163192878391039094251328103641862642538120797622581513635503610058639514581955869490338518794332685998968364046053419533737662411027809527186621099593018253674406754547770083395110832415006895915136312991207000636968461920310777087621765716476350002410102245126874070590184294572219306233824023707189943607840275583091491981967240182706710142566766106052422595385269572338758089545711020270077843918483914329509972089259256628980209272355724608279603420325014807225248434579263051535046773649202243586741987942031434871279145525636596952884453485791841555688071887359391205454013157567941760456397596981046765230944575212099511776271350780233085476000396553224503704987581534314171542464510440423665348325678040043054277301939417009560601548169384161386282863812812869847700675475655819940678715689404773176811816114537432341258218302920247318178091682262785678495288572141853170753893085509828454630318194113343698566643387350388628357462992821934129442239695551611665546811913883971754539286299814450093479211318793006343828477366954108396813131504413330864297698044230866989924886424080118279789504211737616270931895499853122022143386552768031883436448074615721527984998890796353718799341449025123370735667607487408665954169948448374296852001333408676440604680776480865454606248223364821196475717020332784833074603423965267874260293026456790862708821359548957087814344865048948404350521267710112245753433841778576912172445520438309747330119683398753211168692971615545664333839246224613513624644976895921008888229762529684568816638501242835146305674753413698393114206610359950990685854572151837463647536095324219954949654002721649081482129369249503731905930415122000150322094430044447138990072169971719860943648023231470724457763472674869502142851584239721773455507844365227282806824638997875555811642376944411571643941523171300675915241006608532655785503877119769696021589969986302484361485644768776008647486953217355640546236967371395098546701821106768488973935308428185214043269819724959809766584360357092526474830756060447678821688902602004560867852711235382980008982806376947902261913046654662119458248931867576252369423446326038563184703732956424675554569387273885979857557168240068406905146696098537171936096808500811999305791404809303141505167347706890456790829583435358635670884940883912115859710190982712496581893828386975998546980493118274547408017096863407036262253853278975691379934899550184298909917791951774021691338943854355154586530721818078170549596032104440296801518305264062338881076272650583107946499195771144346118763164746699407623608397699816090796564777955097754587483245015675995749514913219365283878427390849722149927359757102293436159649176642893239654647532381440881663720225326507116734689109699962808838656857411622028817887947392419468945287740627593826875724424607374893213456679241565628947666576176026672207850250356844938228840092603525565684736836943969517976691973197800284680671479704014232325306926775419817708541161571643281905543644341607669987174906729614483742099455831127729932892120288449310235761193014277032533053592129568547380211002748488619010919556676045118262800552757544894827648130900237184073814937896946042132441836298652647371515372890148994760203312168792232017792800462706484685093334767211471226088292066110727579536213263208260013799653118088877354112582019386519682252672255382261874868673361429688573380868700304526546781210197912215214107999823197641057409842648159521176749839883016897294370049543625193649169174232279924478685358437179990840399369783888392564437672341910734197021305844600795464772539372212699494353336722422746025330271781012625453707864545948915024361547951321380283660877086619920559834933752998405730299606257785989303263512499720179178325664670705035525672413355041223955817063049761210527966886397376605302480786134625924393944564715637791054095376502715461559357478238697504950126364596313469302004452410392338201298002673503606687710269263331119622599494414934900856090396170741718131027624402768597478230667101882907180683799038477062643219216643423585931381084379359800208953228924621021654272511603885164874722127718530406443976345736565062407354893112764960319367345343869345826436522558503694984381560269538688337207137303832081100322773161306277359826562021569944069850294498989930327409482713720144078621785757689800350644049169310506510597114141003529169118562107436437890925858114259465892255494232669951367329610827848024734274604859881968735012445485333848800044875642774592068979205741669280139608267635346185516008615799438335770863610270942231448007960771072233206808576193229666878225745031688053601454366119765616389004596317061863542643560659139716277093265263114612412781806125780728111057954197438828554134160601115940681062182357447818224282114015182303474454810239569415967086571004279471326023156070649936365438017116998074397379783024562805299100746891544211004168108645312014844890458268418271746477683250429237917442220318658018778093928968400935271755896332890940896051598500898412497180641593962960971311845916890883747913592582137347455252283175246801285449220721728761131839736833429133967028406543599351471021737058064145755622606326484966109585880251700174922262755775948652527244905785437489119505832948090529961739132839341143423709353525142499981630992828409854143347531194050600391601767542531678833184092851824306201776963174195598876742800597511028843713926827608812704964372461447098233269583014028443524183040492087644010756129730503809850990167993590803625295129292142335387485248870889571763460889180651235588649535464018617727700561176590415128159440676781167479863457271859928925174392179026902467941289341730483210302211135318151614314355833472699359461871056505937380652692206542382795721063646839005684394986580025000308538805119169332867565322653526032470388013847236315405633679784591177455008348159784896007771219346029366451147487457588362313667423127716389637610409803269677622092562189414590287306446484602749851321228296354929913179060733403298074141595974914079365219703829929282711961569475091566409213114143223493671347861264331733929908461264477573787771001985342792916800658001538837274905556323406389039784961826815802909631910561315797166578656667119078452111894737856625251466377951627070561006769782464258910447018600799560007489324278102735782559479245512220795765967781585246251169520245564578481980691320193618508905788895810439464522898035366779078919295271830748798015484321028414335022559131486903146908737448884650908243791779423618167969022001111961035338153282672558184589614867720224991198100953547726317035717662526153394596981709222518958446160562493080214682826930338393792217559676695545405388739399630617828490127675190615366331440289265153076091814963472512249531474202442124977231095743190480300300366643174781992672221367959651975845741041506725172699374079510504175961531982235230519781751270197171734303804783205056330712665000969805745414135873786112528249430200392358556286396567988915727929051774996652809356075720382763136919626097996426272359772661503405313222751417696958653657903576326817566436558016351633410923129300894955640833296624848605205540931688440557186858463456851596448151841777712448770489968809487544835836153420523352972619928355177131352912210612930424492956651489451439881940939437375901785942297687057829692587494732726090993327028234449596598707681060982962779350278742080492542190730101438753147388849423639407627079785000640745486107412773087569050799752401626353590502026630019894133049980864477656775389910953194107727203129727367936623708597032193987998613779360830532718573756848928707963799941411453554980664050564100764499208265360293557469558642317310477603150717500945374007084037703461677049096486313389509571833929212033942050478827057651410730902614724458431354668820313056620317373753030078861316867338754114034011142503377495534361948177839129237297924552880989767090582635710447174233650487468711449037911513637365274482055591814170730908694662415365702993155664357751240778136812383497607418327132619009747953213095410690034793011425173170078669262678118106354390470825884638077822668698245807009559692597324569355099103004572390793116496827684314431266067579616536957520590017360265727599283779252000526753968130383596125223318249435610112655870740406990088643164409929492109709058456196147126891102413398264771761544973686775017004216487617848662950392042609417418756198007319878039846745415262064371787639885323659919819375106245242721531883002106081442450231987215685965610666417605361639002848239575956029564714409916634439786739922188940897006739639667214687466642402693946322926912182218057689710539503479657960341052378516798680855699240250175996800007322883687075810986485775216410030824615158341982890598152648935756589687573598162598559715665612513550629933242286210889523725136615390113899236763748694907950392310806687086768944465460133948007633761241112648903325684865781904150113807518825068604556868784545907895382898279532349731544677150774592925055285911732418026337276240601738944124833884905359728028205963974718859795146531989548376074916062886163995069912829444887373649311605485322852751361556028928956144014882235879058906977238144936280051473671627386679409385262866337177302814212482863398660420735517170511755362437861348471945918809197160822259709851340677438874657993716185769104999982030784005819916474980316895264274265561116964926514007761029044738903783118624517407091722590656334289689799381365586032005185420956810536195531168917942479926182201595792426332957535110698846238402352660812770828556292706442165434709366239242333681737820779579326845469794018112233696681337927692346480492481645108548774358492513216440350485859900565204109933384024227848567301704359930895838360597497732777419513107420374104514706200080703614072592839254351221423528139120874630647248731638000719525720617611585345852689331449590271234810256668517531014900235274152883664291446368480289138114293110299122029146703786864044200075473023691966385448367054994329476537269435626234712784430802533199337869421292535695560042603107669657080873040953177064770497228818693026152647111557249177699589218611225466539723103433623676340013595520690408459893390022288184968717177058803334755754566598474076679146698511104049959532966964637082725450312907878359785996198344431790705276742104046908601342390879877358212149807560411691070408974457760030855831430201433500625535654569140874319173687464309645666485957614251050593092419349565829606524401703809147413510098251607795613108688905897534598404101829850285330909222459329290148434702596732574679724914417495414060758764275349914352361083657703101745147353218880698813382851818869038733559889159857485868172326693668992400058787882813195349164971663536913371781749448902736789961560754008351028732937824625446178575399017262533393681018748947316036456476986815058129526929217621623558815640965960789307744897260672589644886402011310131455403962727777915501918687292915203232297886124655012432953896367552111781558365975837662763295563285345031574309401719567887354747383874189671078572017152336682075979994233542604316604234686852136667255356769842426868052730562480053161351554314338198988998289718274334737275208970792941554132139868109015558202541307040816379538463478355638863110840872530897134414084702667418171236743129692171549830260042519013365686889616052030501598453180935861681058644985785947005980009899604573147656625206067615046396551621932747846518714618808643183065687331932755682675114254023058002652266977312979141277763488763962517372737035285030455956065711475422308240811613683592697875018375321202337983301096767328763178730063147225661236678138768279688686385406114910639157941512296554968216859202515397127316401199128727501514869949243969571835070238619188752873064164289749027169240055248284139727240239646682528465690896200553682952474125714331854116460726317036732020291214637366819162349386684061275897713176619851416820126029774743187017886445569919832846647290779030987845608248517797161196987677552506542497486091611956267616147247023022526731448412372430117733135539928333951072099958855326804753961707690218708403381563197824365815687355591496792978119611459049809193931643818417944023606627188781028916767763353006071828112564191446139811410952618503495189365163115250208772185218310760109584676597537066200723063406825009043143837847849740508104747663128518057844536889927681882235157498342500577885811458839761173481133761935975275682808424938020618506124842590645019444947135046163255493576754683810724830034948681457891487753595228284272093541413715882125931392141934765928754250027182936602418157462499458001589757656494759148991379660688634550637763011712743453198995557196099594745880429120916156291617112414949376418594724224549169366853032143605651563807403810359750398550756329244630204846290066311735864188931048938770013713830227510792020063626097835633720382182405028421162746287435521904757823487623323986743488808772563475649169787169363490209942671357716391523526589430069880052479747027350695435278398877782558206970637702048384131259954944584096075543784188682229452334597021094672261804122107179421720102179065547203005461266405591426458642304959862439396200077093027316254671630493219679721742364945038956740311536855869770924621099152017311688145665564130610578908855994212814281325156489585123763695225258958597838314677645709137839005641029611543486109751977613362564801828531203238943754078056623496689794515520834957408938769499717043551654209315367724594902993182265182782048407539644235529174632973815346514163006922171472431066475462038127290869139466845097414593911831090436139013192610955037135135775578990432312394438520680535073890709977430751873169743288139504555225633638655929911346130276486215318137941546648513315521360345696350666804282035391631142022348395189180195256521015617657533647108583885725774163451455062711641122954701033685897491727246990090729436142873437015649074619041435828333328706947906134711405329349442039199927885535124724261565669421214362984062861286381558128294762415575797160677894952564827376670504902301316512675662137987101312764646466497286601646821997855567319616330458445991638644936328366394102943915569409465767042302362027150886608966044182785898339387986542060005102022994210970332812876074027978347469671717424597431586378419931285476672179910118840775377414139187432496760457290395489945316566723088479424943817283084540566229987041689418780637319091048969630964205446920026723446196402025860833346201875720488755893697390838731014334455936085821915798808050200411127929474779651013731872961021553635423264116495892473565832366132323774520691613876886518123547756731668426621619814563512972424303872651256430991955409299821972296512711272887418186698001936312630985733151886977908399044377320691333815157121684312580435812568761771790876531061894310078569086693114854608052576001854861627365707801776825419161121734493722790924534204553501978980147658252417236244695061868126653956055843144804603853841892184563763999375409044323734488034261791243431533216821630500890700997196066462018089675457348663410019230140855974202272207985415511781069302802737059757245634706020441352903842513205346293110411166969750138538515818908703117338059175079788219679475659187637223207364187284712905372065848094668420824436499077066284221877350611052713308088468852402710904824858515546601529206305986623048139862379276093756924962772404666502328387713544770769571646941464360927863779860939674725192711166638220820925061014494702516872087362471066666880836380017057257535109311326049670342347958557526984558730817875975217354542161318883071281303679683024252497695572103487508845489989523145701665006161681445940116802277217788250226956430339921868343442266807455080706193109951159510708040993638568904913529037091198538227260831835754750288323515760930594099112092734315371809418331509668150719057038901179694245332474872402510571043775847718643397888901992068786722022644553963270273970521925304044890417041031977809092806641814000192911944120010405583845168887976625611011897481421855291590480645134783132977989189858957580984782261364438003375054265112279440751066062561272072310489488349694597463582540434999901346597045444247880191038967660634271344656829759586245088715906312870629331383311499904422296295621373226615396094296822632340801848289052030369314038953645397903646185684446886811685042730372614824064155691593220920321312214668529269899040658603062079140373287930417181124800889574862332009582015824526740392361025703080862519620207044332363221463477104739934589604769978460671200733663296571805416605055770794168797380805845324409834385355148841769053734984477509935072736875669412666312091232951917986151950258640482466927936575966335894819177695872740781680413742827944432265703642157462299691132294525895038160938857632793102372905387477444686568814400723761322818991232324828839363256811837271369381676184387138574860266678949041821411883923017085301409322785652916515944860901204622342554394059070217600912031367087372804204929055608967817885822019265988133954313257416727822053958873296690070897191775510087904851504288543759389238269249061186675087073697565969642482502999883399110642899395155466949734799746838125753728257730134356141221545397048166069705939123572268508153437482347270985283380835784616617437297349947326615944580523843426423117064066603167036054794598063245947245111169259008520339066075391618460808947436827577578702700746820355678302723954437431860272477408395648201410139135692295309741151341420185109557175411468546497608731337443551106944136562709692956703092476595003249200317470282703198478939773097823933140109925907818273724887630284238225810213527073965190713096059458525768078708083379291375840154237060810673015076127866144453616736772949269092266530748012067250961166134378574098467834415252448818850538656929402232528117279427272305572564328275432929769332502140573249872373531847720941198478397540346531526562027801782630244730078098040567232211929241187324816300001257101668438057017124594621606193025429954571220943668716566089698730416076996693061855603945290543288620947540014409944553028677688452417882815110621266521489358227237597310471106587832508496320785436921617056738481425021793298347397151603483582556726532450829518413470777394360265909723700146860840223880047537579117302623795840914186595283949774925631456304923571337113618264340701733289402017373184712301047462450952240043873889096599918794461457457253908044818308366617339268711234488505217667815176505556536089932693300416101543704044355233832991858380868683325138100088230191908283256553980511452813584093670767598391664971661882894631502043263139714056745091288918904482533579582705821966624477021012127673013876775737440131843504396326838797870823138939063008806092232929679082686286160152821029454288144875094118762069757414677748932320054555487423311304235627531780359743798664244459521985679378785695000833463102724048987278212811107584781136998275460009642186522514004203734242596784162244080825288315610737835011353812802969170821556862020672592561787394816839918708439449983777185963775943766299530413950248740072715067177358422521511392348382651214742827195382892187288600894967573660687212345154546348875205067060661047190959173904011141648939507399983246032992286192211963115910907739352298016224351674970416954824235981103900458893354721570138500020522780509209542088982844419321869253399778615787816824192346540773134719703466893924427740650501180153195770255616610283774629571849263700925110554525606874122274295295570144505643343327460828589247789205467250256972189237957658231582191005872142760164336459558662237425340556832224274844610870390901718840942895260729444743570463146953240308520142167366459307796490170607810433485355158736913439481291733294250668601752974091234330477996988047980326082667336293391889964953415379066599630350530853341963523114105940046423557140143786243526109971378244785175477804454145016667425203869811989338249250104641914661905779308386134981049193998744880169504140097683718488798463858989169937253652145467313858324606191859894296064175317263917194268457113889289981251250158606629973574650536036851755079572437155533699722168419256408380141930053886090633340935785909752026699721188740302903609136620653434451674706450148369904303292859025498380578834338239675430312010522524157279476369333681240430169122607689252093432308683701049909066525826977040584905832194201750809469789789682961447355895871599178721673915585820887388457098579273071949232245669229509578269221100994744473256787351241483959891288553974783764839719774684790809762157510197860264385226712895391879601548137770625264928437697650796149156019796684926392372950052258470674389294551484688754798147476706532854328398237877308269868712293294773563115044250854732416502786822402692671726911420926935537472604037790807974115958562682271680191592676874470669686839338806133490675720439337084692461317848625444552995460265114339631996222606045378234573497258267170978451138285005009025708589148894427633610557559223545061520852210415391749333821558668366003285730674975702349582233306726374981291647985470737134703702267897796946318163142867369326679919499743427457667429439781431214308289396063981266808383185208047564464182851809742032808632049795690406792997039084621598563168937976414472763184482698102028413377770616451166811685555752292841073371532664020026941634257730483612776504842910232472766139850348793102703536753949008204957893914394110593745097867013996331087412038374101947596881866456076376918814478618081065298611863121215985252819874463100515734487967742235519555938240713107684940415171843394919537118844336713243720108079607286588813029217869275750060034438007278803999331123120491915622468101539277125394851781206347205471085163945382584759889193455026913027666456501454215839664721806627845208956558134911129305670787462638214506974175280923312834046075225428836262745306955277954373334166416451496492153382751284743715139932554390420877384441416777658755029127902720728704376992569948539640951614810702011290214664468095642400691086654683329924869644517275862355340888909506098697100078896658863541078442923066848774101518595864015718786430501450610737319487741328536948532750399218762415381111741757420746672825591212194374763765264390881422666767400701852220902499295889598722071485591021718995194389197977866172462242576060438617149698646799902017558314787176388791321227517116488216513928519829879622233585538567845178883285884625579536363270931204103530490313110086469384600782871209087836699523361555246503696558003771392558927947597448610790910416146929150671597983376516542738005178540003323158957096637900302112812945817328122487723839834821763466145749474771070330291502236904086713768523372436297294127482384364019223125487213285378891617354940646918494733767446014294267988730215359968327907275482893167945293041221061577736922173502891793880691640720179713349132745205878390212108860564408752437054426679609766951225526624115103400134703863367476727257771484495988228648409483836990395449285138993519083647794576452945887251141570441883525440944008692707019396663171031492223379267407929270804600786114985343039500715668833483809632250225459154609045645487944747252007604718275024377300987445211471760296652129278272327906503100980486543479036464740627658444977382587500218140348493104079439711258719582642305100539843156111550673292423020108014709942991606248373028413338712260399584391584984251863162630194123393491774203960444019021741759340245834983602117107155615054937958533150967676899903068866600447207994654836905541607205921630515543973199300296297145875332935114783170678530600750555031249677936150916416850370277277526903433538312585373854858374766623932481481167041789502458346681749356093448949190582672439479740110173385313847655496635889586448559811034969817074243791683962017116795814761277884313041952754764891970957551514200987954916688151545363547426074818515378642643904620881847141938108650229035250808126037677989991802244160527657402926368207633550137755299018963740294210031104920487523589962918278101896636175910532329575595652148672630683296310035859100210109155080504660855911992750780456778979650073498539240170538576609569447245352724822259844203158869646992439316944037124411174535417513873418646598082375026731356274809419422208055666815230415081100190635353071695525706214801528400163173240434496600815383063325399462743650558592557612427766299572501876374690115456889681197320853325057697696942405694182188738359655310418784382508102149470632458427479929171074247811151555592057471501415808225080767020245532111847576851331021903837009759372257553892713850317699745037469261818985358530028767913657080300398529110877809521994443908209162591038721787496444971875348451848275136445299828267637942604443184409177566833959166453697323776665335501719769220955024376701385422712265394895067761928003272090632233393636933999027624099421400566608870521318135808498344466459840967880367004816291976292979177729951147833086442753646061531041783617792184094336666596125836125370291491648239818186164317197197692632918929040215132374985801616177605533966651697543865476522814227974926660732320254591237363143980319609668710404628854233868164351731679241461353514718583326920913532760185014174665194641087696474281438662747247751436186785836021101831393477186246000730379970846749769324439077569134779341165664787523904984154805713570805617921966073172768589978980645383975344765188926109708877795219677814131053029753308421966115290739018138000873847201406544409444461213511548441099381280427553164230343064374705467654383439262854467486960355523557675255287713399175654565905755462800028369509497531241630298754682169643564862689917047389450426729204210140248701529884373171404210503276894934562783135619845855104310072764206835704527876828468225439050377086643219289999100306244068979623948903384759831595810931554161631413655940736072252154835573821070637063047531972662048506406514158064784484538138881901654418625309017624565239605963451684704470317054999874529570012861837021682367523536394858086702767548605779856446103459499806540141168520606612827281767339993499108206157545805928527636108208545463255581470522376228392064142576753469503974626820509940382888322927678822545472470622210733370221158491950872257573891173465415927457756358005805870471928752418029803331596879240116289933107331264417633973360536195600858815205042538459495286893186762108497578468683553687054799167017488430895506776410056667052621594826216528287753223775009362850131382404647371251709278959043918314576774787671475683200172138451700253301119385185725671408116516234942742830996234966240424314614120922880726012629672310347092469941086792068829040531817843300401784640746517107315754326416302717531174810056391814397128809697890048482497297855705322670861819595396246351105463970989054012709580530786744023118914064749372288177530008783967008740851103932237674761612071919393637955227194572485834152142366727593290284527845201348414632878036021376601497628419131947379171018973496065350494881593522149514060618537696585299664442226120080406866737550634848200167730614596316184995105544492447016646375105928805276803003461321243928244936496123181870202692063661340405457195646301637331233145760057858747753922018950789931536365535276568054688262296495181759776056681253806049132298181888399612091330354467439359461141561589595942479164873186817203232566680032690957328185649649264679913033736365400215467971176676909495294166004269203224410501173322936546097578055097561210955817446341071473986211103783294569874504921094407269247314472307611206014384702423057526161045167083082076541638061043844983506251557389273759792869039831985075868058544564907258204603900458219138312682111167682422672864014776895417410909953997968991608471329487511670294196260002534580068504669087615001032033419216754427648949143841395154731133984727059992718898521178304656003117318413262270425059161085259953486492299697343186080717160070721442660165288017748729067784726347904234374754671880777429489145184529067640597271226144972502088176814473464660221868413770261774068046386852557450286680040808110228664838997436081757500670991960147153889038699237961250656600221183163536812013341315074637647914387742089764662274989482878955559900209584737518212093660221301193302129238851897549037532877611155308010131225878488008143473504353647619002343860051616661314145748451604519893455262612986909635175674015010913747963487167880861690214323435985253931404838944220494048652321302691743414190388250802134059146372043406970184495366051592868957307143379012188477453648822792118853236520990705694262512543389381809531451642242165652186355895246875500502488014033742181049976343755426768998982160931751641519536351419531768897585994578848050420645522457529442820916521596450982585928622599073444641893742227189381962666766768466514142587319733550304320100386213635584385708186816740958006918446783136782461379159026368092413349170589522935811823070093416613060365113021057714739354136742443317377961888659030662474658647829861307011653064959010726036610745312997355063001552530645490504139694290847466138921537681209446453892692364432520136724887830583276306900752008841384898145312873047883510264371369876920649787819882437431940941042166764542229841940411146472253343875426694631445054441061671380001662018127179528236948387991119971069926649237726485778249859365476310164293864280255116321538662309988159596875822550025791673430645337776706164142813625944326168512949009060064138506609345701742040349246815002895348518283897330024802713418726690855744830373356553089205758433498698984894736928571206964348669804192483805310834833385755158252171395531370960690607300573727890046168637433970057143843860858147404820028972367799754799727392560852683146166042179981508465178167637571912768611855936204530050577800789537334769066197498019211698511689848391109065517840821466668875866492179849733944793804229964314936661705389977083527775692429220519483321884186888623009847435398085114784734636957794704856311723518953950441784449313337009785041224527471142890226021712253457415032215366277904837862437693709700355700471666595756118726289586503098708141825955899781392477412796409562018681802936089431953816591983624684106575842475829062090806705755453393797894658736233667782055154218190163874083609670789749607894391214440300343838954835267096706664040158452309455971196798167388697120130680480738746761498347038985948898126705906755175187951137837273144029019867734849130194457729800784976834889387872958146666386524578690357832073905207693180317484436093524984991522795265985809676083679076500938322522115541458721508470483699801489285866362835939108374002968167498508051394242988481951105846571599555750453761191285116398918052079474514884504662496787357028211181896457311328598571339762606985327290764811393223753427494850006813487209525114839655920004932405917673462183264932850962968480402086225333182743667703436331731285763824588465657576577130967390326473895321615903200971683463555837749958315258597441150452703833621306925742276793076703888547535921654585982124510186798616078733195874231702074261580337731146701884682538893539427358189198787030885910135566119605604954316479407538231808212879775696684827681011205225498382743116142105819239312661719141913186132382109748147429173296508497642877160977249544750712275215016635203937462539479862107654361419188571314639438259751575659156893082340466741097229342502255576615715794425230653361415827019502153200051079998083386144722975270415449542421793194509500617278368545206984494003851660067542043114066232766216833221194953431091721253158887342519120474662168896409848952911310406625821133426881968952473341403089317971649947536861152639898866313590055555546507884338640538768040016544698251837283591657921803848258800373950407982777780090082252017155297209519304509345583020324869820121975078483030567154926453501214207065916132440551984199292378090011086935122355147241904408430283592655978304213038040496543708274241385860431042174601879851009956521328343368303931128425002813497314688194165412787082948522176409117532461045577766604701102695216185298957588998739035688388404343745232440827473217208439972790944205784665416983652086250396741857159034235703541195341767712657320772129516429085943436656187453833364393749806858065404249227105268862632101773867367974433445364825986247711446059049260863114419039723713215434515918967717608846186287438762741808927029730611959597038492583094607952978002665920454566429983037709813732095613905826449175120582329067081197205288416322881928910677586146796205262416241620734183001116778869914237037910529661638056564506878827104712293512680952872205948766795296823938129400604045579544633994398863448399171331531803428299211556113241660883161578079166656661457102607472643087845162977878592031586743787638287814989072608498675016199348160668522930089667391591363158715616821584169074132268220922353958522278909427291452450222169969912938868404919628614181880633169682809022531308506812854249222326424452477664726261131198958830443917971550118050979924505639443021800047924493544367820675652433267445119412352561919310392557973596191659517654762001096016191226653971096668444890988012352786975566465899150013591661101419983672017722475869071118203399131990113035092889020977882142166592706124680232506395503148786013413796490224952458034153448061928780041465721110733606090476835705681083870397317164201714594747228510505281811518823061673123494218927629494184231820529913123202411782628199295513497284491558465941045117594482061411402784024763689992618923507646493751658085805158251938553103621557581062906364397984541007141962456941655317393154256051299001149360902628753157645512386802273903447311916428177873485839442898985830285486491039920290266341028920231631803652430922695955179479779913684447751886686043340030452362530052591277375429795596962602181762988184134883430764237762850852246400342780153828422935379246554821075545310312047952335589418068461829324056133020417272764024080130280856963630328417077466938337073510251532157782335157832830241073380272982174544839700838950527865722334081245000973917103278543270358937781676300122549674974885464409875232643871801171675236513975091694004554188490315669209650537534349030261867839972872271365349224697846166351982237353762046215853460386446626459241302238002983161632120280662877449349643327314901869827365818318113434299996716938380240578909568347442638389899547117195210103267881078479656602562640482021913560873488637969226201922316262104472160015041096479774587790892849723841365366453753595754568037607765169675803845012998339459317124310329538557821486750729351855088578744042097055090429958487131766739126398092466926691497183672288631509073233020674931377659388915232480366737704505673850482771611273237574593148104706160632560922164024693589320178344541200508291593698096436815334237497834767676528330138858156144267508260247861325904551455240677922412297597749748482505102203271423342565667757086722310803756708062242832684234820857329574333610612161637879733685886329649867892051237147090495549432163710426580310243733417533520510136023815359877959829033133657430580484765215576108638679718906661701465627274341131092527367086812162793190179169733242808637786609884821706845597041633235070154430206150674367105631247234159582510898436206899289246132712582225221061210601393133847731943053646960533809997568513574479914324051624497816583771264190884766384731090782000198522344037456120249600129783931240014273362980483551743712993991215184400302371741614007453821569694362066841559471706323542982029225383457602701130426221553477714504581369389885482972220605602264313099668664707049533709677378755610716089545710523077791623267460212355889232988605273120895055004844860104172434892780898261665561700092207552199596254297892790664611687875273726256218553140215351832730610988973369610567766049963336152614786152401985725426705918667524277610144050606787948398030984638449174415331059243929587570948142519215937483213548070875720530266022909542355666333557998457838304303475757527577710540578361756391336853886356294834058552300996988620539015262440434328117677120106115319959891762198712554107833218903016658825715395620614889971558098185908062953975256426557311370912040506951608958747923589461379241713005056444472103822334378813197497821807449278242459060979282196312069512116423404235717197623384502904939667029351683552878424848763210310336545991750847881345426053284037820368235049982947096250737351480827101460571660702677705872043750526632185662079894913859912074660865836362000031322841593305776078547396828121482020077551999656486227813070297748462698461582031237450515909314196161468068160879682143718090940060079285058839022583850571773498015988218400778387722193732262506147300026150140120954382322266863747760822629934286154772017042494515153630358818273288950282162085853104000436209325222322891986645141042366767663129771652092347091870881206705834355810182718483568846584455085007655384917468689752283404360232601877975155669661213888562136530113312151521131628780027342706287788428176847167506303055805268930842587621382443277139372677449864292225219986499641214960620018668290095635360583942503409693567214421261296326180530793304559457159208365302524538921534279420482057114833625211890580350201049022140674161354370030218108041092520976294323688903766172798862622156443920004828462565433660329150894386786966380825033735077872799479345139907363142350447725123658842802309888347835111586149523327258564138892316770547655145115006796470268317614110044852944382578362381039349398177430031898378522983250768546837076287611633768620010480242055091313087663654386328869730902907513084067542676699833379995471410573300142409899425887312418279587187881725632542345114860694426864696128949226270861735616005862027154647332284089669985609924383495159805293272651599857547811223373788934689904557282850474725736181284221135834549503326535505086860092016291665184809540262108058575436800063144073172349464369821125517655220686148318865977967970913002884942050436387877302033719426092353536984283210440552480004336507728812574840873257201517316723010943796505931855660127177697280437597650042979675927931902345710849412920512883407866987413187720548916407411356013968535105743588771463390968114904276835013192795524774033094564336382122902909214189288826758109786714257631728874001718604290601591190204549961524928118705883012357994629335290412425955647575555842457817717347234647880107923439629738657092408950066724757472819797706418238713124181723467981394588787171656340001688933777531365282689147084610866768226322594097765043223056751451819873670175388413093463581491025013223981742177098536387891004577280202739319177887941424771154497183823017506084916579466642869007975799285456198885809571631245749389114680762868568359037586658245140784451219143372637246789798756677498809840286647011892421987096000184875384890490069630160951001849938748858130838587726854059266798245466569887468290253343700799307217524661722433851901013423124250613503635645098510288511901051488632933502366230186869985365338536085268677200707911990933560808116534655135917911393211015200907780228244836967941301904627855055578650898793525711170615424178300051417338893096156772031387419406908968894276613881825723129678206138783133163919452919691290643635481297690567334602458294739714084386217207667037761355413096151397921562457960255553165568138639171843587528329904611332050243246131058032273958335953100509010304903554932672399863489920688720310252894256599308809292788177653114074154390465753000939196205954271439251706040329236656977957243403185496652508018801948405582051981539612909445860839204681396804242500031275325397089708091945785852830352056411003043016988935065886632696216262996903478710154820995740125859075386200154185585851086976997425196950086162278943357955470822500188131413860978211114538752709865610090519720552380145493372615273521118936948182768403077734111132386894940050091266512730009350084828802268062181072099243414880359181712134114067596808365272741925912381275644302525084988507411817162515216401853160461137186591661857265983229021027798258409059643229097490170982580147123174377192188180667815622265058669515410468128409913257631692358948028133182413918597479577845640990581883768734326322634720906473400355629755117366556879148424526018993021947693028344471105062466291250470217342000609162008438945329630496980118596872950704253920242257404038815412268378524215132978798218723473308787289143813858896347312161573756772266798799102007262213550314548188500063963034349724994410959950303165342252957205565857459965323787777787023374220986992839653197619239768843814042676788592677631398989709576743215576083128477951593401008089838658255240015201957996955582552689292937933833523061798218352480922670646318758517048446436436337101340917538899972627522251831175310953609061806311917863644219592816963722833037850862499348680987001916745664383233609139226586325955975969429147744956427214409363726283409349165542420910691613981360167572992519349487102213225551817108274429156033962709416012161769706126906541380859244777139779766685367560275892650536561992442432386447641582710509689891476350791364748641715554969166659109523795484737485410464600231818455358123701082862237466602926953225074818278068267014901075289891032400544206350846136662719676673031861888414435150900132652735558343935335457310108154790792494942341335094809756280496504923013791266968203956036445614756605846644003797081420098863604731246887866174766080004479030526018936905333423017514805965631467049996373477076866513325373235101718131169996566576475562557261946039306705894471746629359211753257157348080667854592850563474020275055844933211706742706118334650060560472283840047916588154922964639025526056743007943866662438583049082863430209014098492707701701279806168626263274911420395188434000761145417209104163866659400408968408578724241480193259428716603410543402325300788360040062502315291627758495406374437387235497638152123733221714177093016893034586287930546424283194413418250816306106133787855231047978992206110587640119133245051939331062505817067388531986119302710803141331322252073401087751863100033372396637609153244140319943890115659848232421909136957270101740979029631365631992114572616091151598468348762980602511873715335285383929604360463241076082452051334975638395947809170672013561098590096045530020672313255735207645987433728785564744412818321794719898600073193757834830322058110094836722542382338560971065274704678696350551424680462694427294279553725281833854952343874539795670081497220797757158561840726134411181802274673675413039120951369428994335358821095693580881876362916444198889225785678902009523398835023947402730078983438743871379652662654721870307028020767092345483074510033550268554930837615402141209338150492949627155997037805999622923699996489117021963992369946431203810150603542948734947429842324902781970038924747806418588534092655401572094932660683517876408440582040025565117395117534178672446327082358491768357059485355762323112333812445768388725865732049168773579101558799324878502908800653511597867641070543827422721301520566888964158760487188072166882075231986909827785849845551865079339720457452330798176846439211066062333777239096198754365277343138447045862225849658827839304554849854030940632549384268622517513560410731228753062376222617978364892912275430832820264410473148304746641268398540389009643284693059893905010924783587986813189996128074133090057441370763070780176597660520594793752246134649245857176656218396107516389639207347058349171105250123515606966943633704947539545744105722655073720057323042678938895836777193674581169130480368833479144145192958978846262354683225024211247981762654321379063387281132785624077801751632179949047708059947220914821350395011146802140474456966564291851715815262727153522622974469322178496634351613034926481245055801619014249596549688876715493673874618038999950246975263919749032779975995047022737247494055274320249327504810895276799199819895278183928957856209203693416839466957657105619667644367722154479013009544506158191963957711405072852323260070981317099649082160978826784451597420758840629348504285592312921234082639744063755327888995968483644617113395017438477808253713912838210346792506710700027368624329210867397006595926997259004366977397725660507006493208176655844381948002492280338178160192766805348241959418833671225054695549075087773755323917269777493565330103622418262556025570411894657475025688466084813635041820764616483353045151288771570537632065073960471439537672711929096671382958657725419872565752611758133684719787726606200694469328457845723399100857404965905306362017175176784943985805319416673795970845944780958035543263725224680155558381193162503489755921073073396354754115926863841616875679169024070633951226706814395471844146060777090225101492574086262644997366220281121919924380196808827801401780240857719995670954347041429491397259784666989779689672071680494481498747488966057400079460765036379391633823847587544914299922202816514144199659280273911271684498095944452948069206194954741396814288079825923183735521477761663458835113518411170975511761120658464792081100163990236320235002976305341797469509030486942918144183090771619653735975449990450982798291178983632535560624773058273906932239727163100169602630081849452331480931066496866563666166188342497172588791421640136251159822141190568882134968102940939141622994210722555966997786769399200152719759252182039376565203807826793070163654375911034725134630618871875065882750463600611649141411650493253031671407297216378136789176963406747878355062255587937309352431556885636087364658777513100494493300515848275881955995359225661713538345135597458623878248365339056226236137985304341362881596132955946684993636481811122354819474943886668286023286367241592702728724810892608873641693096754202386611414966157698166063394300717351963243311657396878107906090363629012156526837582391167221441543612913800348702152614658891582852166504615467291565219282472729728751761811209502585624862885404628815180627726343196989984785938881941536612412874606537934892685274267313168269592498706043518270822653884380055835940939108230562918582902333989037303109187446364219309817864615783982758328555517270824392554602283220744584696506482081023762423204306237487837570520226064014270835245628256415081243827732622704765721395050144725990172815066982502685396180292417424942783708391839837710168156799304062536157558429837794497776595749194585470788441686760530057858962305108338402741892224886181603242454658983224254663578946068581201938581972554792511289176297106688981260959414254667458597232171064729935463928849797616936031497442919610861943719487851719720967388921766314441523429476320106041129953774067336475728974751608369081785338273129969094581839816248074414383313294441889364211270900492486438998536521200934520326969480039679152538387771402754673719782131700041840811075481220075446495849822586309192418260218835331697196790095323001359974027720636299599965988930600871493748880140894096452807320508996850760743309585566249274229023507878915813056312114460015186180492851036826996957208284639340309220505551806472779889988862552390167327743729487104169611185828715153315261151489687892749143114082745123876218750402888091304105937188444325010727161593402299162570836472455575093242376708548674784470227345144444451994557214271211437172431373036450470140830438815637649982445586640184189914556411131718069964911151335993711306793511408990023458323901524234313084855598318449937989320922490086264682264253833144981860674465151179212930991028354968662759773355050406701060202455968946040145810512795788938437928666409254691918486700662129195442714667349484381006703225984406573299349458782409886771745354244662720222441835053691745095685578344797964420491721583940086372546253218571061112148952899206450533562207190019813180660327622103047064748366385480955337791510969331098919028530718854182454253177186800891762538840183147869091952601154463116441893388668632893346344253070161701878073652248309182178443251126252208588707731769880481999585608525448760113998972472859682391967192105876817294250973296847026367970988145496267954904013391167379534287739491585122430533287723026622322269021754521545581443016033216085501339509766917549922930330874187057413086269881231672860945799768898811998516236665949728480287429708429648866582787581445253333201433275955212298624478124326677340393472980525895876769889825286214189008764208085093980947306869135634436000318404544525230861058399884267394306935251016799834548160505638251929778900355545199308221466335778271239153804732620261288762508168821601970841641947865495974144943397051768070995594277644978705637737797206516694007651563703941100506624622627230239616202584822311768092944635777501768956906402133361728052811234605491217309669334435853890956086597980437121049811920537406975520390941076177446429483682125014541997893566925840716109291295503283159389386462538219591385230123033914063648673696056818637306599265910625791671957613009333188233649382136914745931948081541897922351820595390862510503192757657407404844790908908096167923199953702926617902477874597663292656493689419891326123585002718066165134242517458222300371288109702692740937627356559708289081672961709827962325274622023447524335282186699773668714204739878842621776721332416072667696841963448362537170677284082048217322725760063138075944055358507241479115167838561659754927924498664555929284405625807789852052694631777755084319569920377701195766323797181297292609834788700090251413008804299723805293165618123054155647728880235721531201656048175234557260665830584119430801448793926300089968682493565506798261248062430831951465132049200653413204130125766902759299084565032734347016420797777659299292318928370984289279210194223032030556977155663980130967917569647120425842866302356753223763278894812505385445659413830662078010222671404389538651566928321258217769827791952997551002043638417183108526072325136096867605946713690865863452347319194060895180616903938467990031233417712313662151626358517396500321532066996641269872806819572781717166627712688228752916119770317859126093440839859374396769819967870638077289816894354601969125377096667906824856222892416628427591442563872679860074285385615625249955966930755153254065511106780120998797966895099299193458589123282566712304831531220368244300455306450731484123207204394027898696753556874512931459258533326349197836019457960297309850536937055661008779680890151907232713219054825522425390857532801994437056780954571178657774011566844736548109769490075450385845108632353165668027011233017963315193506276031350300095551834454687413088889704910790876500201395783128165273829861499485772476991464992799414588381150064957225083133676998542825184877261847498924142140835351971445786344549923858023963356451752278646369663697189149253745468345499829653048796747559579027649210978697821314795526737772349722683253796069831326628996121712512169276469169905392707079171755379920443346928659159530835906353192385162592305862144416991529675538831453138051209400294706330054100215003056155569379841856766852869529229674656776736605912534805268321446370438436202484889479696935416776858149084243372481167607681420750993021728829176162304068941830139853774511651507930416671248146312308161577402656287914846204113101818901013315730391946518112777229168211669654242283433551145679301247599071394304349993364344130294203833267663153215777512780750662544874517007291436560850540591349723470159092995772142341372508890846431645561655945411880521494251169729641349875074067609265600447391297579867648247269463174361412343443493043932469327706574153719876192405805308133436690784912478988667392953580152534195004492325949973172536258095661131609959120598038968229579780625777710883880149707847657719638445707917724372125159006357435124273767116856215219572390573474243122739295237578317386659856879837368897230673688769754785208146352625632181435843174074493193005710976735022478569433156834747225229283625098148292654565978382791784508333230603905829029396347970962350876151161321550553579537540769746719844095654104350463246167952098559038990675685433348600652069163592772523481409365712193015742588524120173768075133602782447801965349460317881795942694189062168734911598020648663644763375671364910662208635145285809717271322545057237158522815046763154663095358237550087150801914388362470631522168396442953715676823733773779997541497129633098904760397024798331479248449197804259611057659981837973956215944765443754339476327767429606669698005344653566019961598649462875879073404256238593302363163381964677897665219030516090709172609106780156447595886870590105216054652695711490023350398088860324752530716741312988949254286502263328199667247618516958418502748095235721032964513674656616280833579816639120217845281112331909594952063912899682262997990815430713993234210648427968448712404175235644704171661416368453126250606712441421370577990980896866743891425507869769231630109041968176828760869821782298574291150224827030345185534157349655942513974977519252117465413715279087269150504279264965706981523475647303595941129223039084011068559560799845526805773350920572881321528414547954345304548538478000092332457973362284611525265683312173929174814344156050783191684805505998072692037600364126221192536019768322974548071084231591131255864477727973654303648815583465106154528266316394786016539563237966494192992616020307500292672988670047129577958243595064746624457263290381647671795941245770470469505372407827482411361152276428919614252840776345813228034873372389044010526209669815460746766588322987124849806683374303870406528495569164120732098447344430554269221148841975208599826544114867060811041109469754972164112725323564894570017750476569491432955777345194017365853507947528822863031145173306853068696389180121645678233461899498306790790694351792566179091295308727089694858727795461486378756522651114623726115285127568342719371728144545378970008429368806447307507632236744316255158072570379833243761542788108743279689242254273119001978086541657143794533937844682911355081414333317329522563562725461948943195269142983224343856584737032032260396265115377209429927936351452227458108239652273585106311988872862536342117297585102910093537281500560505528174081650783834964716345814847143664568644000813199110699165511831451276559181938276610402465056381417982307607781481303174772733663966943996055838522844579021130272687129867222349481996204962211210216754486222949045847469740928055927370634313507672438560614105354689092657146414831803700681997594789933127007949116106093056086861253906255928302824568798070031916397553625042486027767515570339729541417588928381177925393690266188465238187004925938460285712570256092332217204880470886477417777567550085056628359221601709001664406936156556389965978508883071515851076210339990256895717491474916428308342445076138722534438871603015828302151084310051071742984949583396567518129899481340424462298210835497217681651473071228825337213675975897288519512614896676601487367795581634842534965751742140049615258412367621036923410644978070776963895723694177138300866581177766168950404184471653328202134562763859554437317578546321559450384457619980928875385875431561363330154722275375003162143439032616350594720097869671963518715123248348962964107887628755627187140286081666948133920004892167229364608905728595234594378220628571752536676691258456027184114477367266890863440660615521778147319693311136934801997511606789775472176484499574983615873080146917276574399010311171073167891539232976418278897549715888855842296789600301250051707821625156307728486623190830143846230155814817602429880532270238259452600227003672155073338657859168776688791458062651712647796717323817419364424296957355127986427665342187393909282735631047397733995878182460008594670221321276950781242905159825837071466865395276501184813839470938153432049556707923453174771130662318332438830207530734047116131880324983310288857945305495461721528751756013809104691635505763939021335577189549564955106050837880915332445565752104658582013250148860812536190557040669252781987285899458921156317652160916576881336166277511341477996419272616311720010591306036326922257767427999025660753777986226306671370141856958150578224102715412448646152305513948373353518742529422396726935383578810658307878153997382605034569849786572844722137692896226294290577121474001843211055858238561768754297060185306595598100744099831040406244108647765928734991322859044191528264501712500099530556644111887665535601831731543512291486545431500445544843153303995353024309845347183099777447464455710550950981903731165982919551044231727203812992238724346454017224745592469023268272216115751787331331913096361440971112085109900604647204720785384631598176872816906721015958557992420096517184334523214471393485217758737913370693231183481832416119585685631451935143230367806984819394361801788805624820279999092933287260257563849995996014149612389517031297855582487978227092886782843433410794701375427962438785411234438133447116152171066687719741707186136698514903877027823556063452294841873831351359427369414731211714621177935629309659777975733508236242243563667641418948134919521866903591205841901147014035564416805891097724886906687142306556820384469758028964115397872648427709201172336079359290595125477011537136534458488775225695484913679255928880632488492131597047985115160849889216939311989863967626490354874446844269435436130528907248967774396273661478422127323833015793338326554478777095143162560279849437536913166778220951879945754918564023416511513996989861459794260942246476512250214912340111826131619353518511905149839832749197764682774518007829456416900738761031435852932142876129175460012516136259808424272803472677979154123144322166328823909563804879855639360404701015728128159157648469614666152404779542060138190820157737142754925975349193170222424071587246427721967688325312058316688705315319786367805671841564731942704611033408183562166090283381189615622823290411741104627000983950245828476033089203309237437679618236017020766122770551482124914300684169541198168265766165548304855769776427600926439568913697577688637992885568518229179615736111559571316096213639529666475334799985685605904945808165839093427020687890265560139505864301611750848259248044579239486843477573166281094314676542902288447683033339216555126911321842082984501224586691357203036631557261247364585349090548016322685413101050274668307227199854806958256710853235616806588946164255865716473033859481730587443440143024624788015600342094824478622134927058432017297133387636531954757191789321493730681698211189072760034649689327794065882031667177502659842366648513952107065652729169888770429100284693512785260693453046362582281847333977126999939459722715073573357584313175747065554879403486249885063466058132869457926661279645796332175956628610891788539890788145315676945894009134248787693397210558946678838305730656459788700728861183907074343819118987497961403281840096020464772049526793184532182586423747082553601903788644934142521779493295784771230402886345814029903474276519796683286330666728129053657022791155345086051313871088868771457230597027949527380030272583339875989753463852659193168713439086353924727849692958196197343345803153051004238064500151372098078064776519017072151959176057184934399820443192044979059309209575336759410212832559885587215676835601184696114415239690970760254522262912829793891969488580385555994920308519414038228351203027146087243662472600522351435632875769642253663237092234800814356683360810098834853549795215622186368953939121157747181872850401595513298784905703474822348026593784716257664356415156322880839377983402762117405713327454083180727327353741718780002647267600843775592017327800261748357290693411783222159408498279234290014051820050877913793321428345975890910703889218159707414310963104645503482294274128443508236379187127710434487613149462024651239137761756270087945942274451799005015148704559238714157135647608984945514833176083781757222759813614827856728860084576664563166946960337854901062958399195165051108426726633884417779215737540847551739874802854701182778650199347720802563040946242013063881172983726659889471779237720112503173741234994201763961045767778973842352930296798854040194503974948258829111939496813429820792410722766542205096936803978564568423820273905673262009748634044841032280009486794714988268402425036289517813104115917581617538439843526720348913716303338955369319766158526010581806554509907992838840633875967255872867544921436046494196036580001750399063292513234996289873019888478033743777273709887085628688642710821336816829748287333783499648395250733740598196188185489632506362833722092538025429620227925510293915472095035489613492973610620359626023875336731772606675932372071651688321279370403053896892155921748550619120393979606638381532384464630026025277299685274972939731190124877562716487214420157797079141942791002127456251346825084909649161139111309416184376352742526117040533388788417361177303713201011806869574552272071780233496389038556746686567211245035458351425606696866797504795926478690015478921265528546543898381564993592893144235536929588415421770918851773115683910363219143012524284743150571815766622179856070252172748071946196369501868805503979908587729835711731245847233629063981794913510844194608527178839217991380052622295532774909320152419825570302891184081956800727096372506093472957418457288317786964572639199738394756967291755184390517400235732233923874306799372705384339016407886871723802084469679698951391716416125445140538251855785713430469536698838375682652546183360176794894436379647264604905241626476737380705673859386286757526357380493018048987905313276548503551087839638957994919495084204723911019472526161283303792681380687433561242094255727631249031725008164925760993133352740707955915786584512715890580279803568073293580592230955554184312849338680124881623957923251675780109746462280117708417398994245228607226824898225052117872032586519336495609359809723747618248700244547710371242008462305148392686792589900614221186901654886965865228866578348704098868706425970025914780550984288511523982121648187822190347385799037751813250242328249043679056031451010748119743741856813084506119215375542279695362294141120213501995893605255059919639731319432010350264021874908483371560324566549734580555823516566690174531067763016765990214386721839369158815458338097039085886700746534564031579324581938674481580682639806625919979106584862326133468761551115786237511801935091129468368123230881593319796233028492649658809480436463421577413355675584827942861215738014279530111435744527651692618844301999950412677046701183898668917511121174697173516963341750932762552746699585023430605007856894206305677600255330362440047389732811260949852090409701110494816029703015131978221635272845050186413961892048747494140282444279784875823352301139973338063375039997239726348075103126698226111093563828911762446516731630257468549982482244564359951962379897703283573600257235770890621902349358360763827040197818934263850770136630772011866785809570231555847875433671189849001918809493600598223893391658882353703029521331092976424170202981120566954535937489666574471194472589997323161774615590168808949150294696501262583939808908962688327417111217938333986147025268091639758062653441995549679023615426949122779114185123594869847706411782957634894756027787276214987492236609918572571110399163873699385463676738839600431617279226429612848216224892199493405735910254672738778146796738116189276417582212888871866557869973662237163437237464593911770397888715814387670386356072114803789393707379593436820737720564818044666792939291415837779179774853028344220499713165414138447299686614953313345734327607674028276267178547260839038079636732731262945453114376583044708885238109085061878510069500599057384909934367891135645222852967263845542310830522448932843967285227151673230900361182433465767222256862052711305209259108260365464293259231224097353116902884019185563558154882312542927715807688724028423203925320750267462079899989187985502992772175614526128643367988114161837304720207667555195720673670285438056246302201381737727630066319812639722068928014856766153610911468685171703229480413933099382987154316002331810166600590478166621290402695497527413367273497746982232016451586844276219446180594054897810978090204148562394603066893910156393495860109924779686655856302572707815239354543499231814088493589910033010545293977626487948805262837968987430434389417734903348603413665086233478397201986346965742006481398523610984301574220685448238467825108951725764994646615337663604016979088352252553449351255240635589955973446682613637267509289434679976505207418229783549062935097596866776967912432025394139927369700843091579592093482179252347368998943987530392616855428649247743183408179075515855063413518799146075024148433725871383006331095867634816465103290858858814379521495283922470733542396684628643040760644301703307280730338980605393569685628253325232645774768862150073445813745438105411658228114555291748272354704757134506841182761928819819143261412826257591520588763211373802362712996031013411333081374846812307927376686837067361897412189434524521293779164406838700993389907692786611268725891330593944449364937900802692844947436220596515039957405722141788638620751858186012807488971952572527220162762837460299152558228027524643232479217287155066966276280625685210029017173522014598614471136396502879268877555046206546536774765949854399071286008127663939472649471045528021006957425443933561401355567559439314326328030235328391917412519826683486348411231086027122812458912242225639241102082805081846244589659929179968308349778312905719786087889286768430636572270143813208631101134931542675204393023938141167444257726742886644049770208753053963848071476038682337828647044242341271599711300044341352039494076695719174656323053215360886361398322199956592376262774860179131352590410209826935479028331447954758279360614674482942288018754992806775555389377051678934264112252785977324812186175597498064728237680687553256681935118152181608016107925197294411925811585797709188512121244401510342525655140212776196234853150327403216276016262983702950294289043135407412591789463309433769775262773371626907438079739843508054384255955436083448375261533771376295943262305419678251845896371580750508962839595959672737040239526981739881031570896667253415965685878850291308346486272365602646795907663261792577051038766406371817343607213224514666237133191396952593266976093112051635898253365742355553426508001051353996798254993622818047832632574435526435925697941201165761596575646775864334913035832460336633128052463292653021303246907762784712009087977863373303880075408030193137636377419683754292136393115200513832883384953045950637575942506522530258768626439281988275155357977311316898615999464914964773003817108926975908738642532668742240424565680571987049270816781748436057871046102813650876324251210864675741478327144788762280054554180339080663896508425194327220769932361145162574653306810086547546583621349063654678793071183401201894775815884929507428533227337555092154637151164331898918099376416435463274091532406673463380721309396560474619488851264178074678236187621239584792344614604951495682596134779385527116831310072344048853606870465840119050278438332988652689854362416849962217104106055289395284718373530312044213847904550096642590305000131753388625696121092651008435220720643959468785826395822114527429811695090976597101264721628029016677164137271637564091496959176502470478161342027850140502433283501373955678131719744247921048525344525769553273604572111207166947353710620539217862373099448596051484326740277692153906767115544042605068217857505274682285979294404365623028732949826915278952148928589447163075094209312592903701636338852702740881183351021139202607847506860817037440238658450766552856666549130466898913329633770337853994250882981374191582555618224814636011227755000799082960673743229145976197512676407135743862631439233893629289228680095636060887890192668408873192244973852419701717286240781258598009185586400944226529391314534312022799316563910308838834728733184438165248791780382705931594427752366794439268331103336892307011465304599642176897627359963214453532186791780885341281268660262110295342469763759817762204573276805981675521858234801113653056989428651068033781508287781107431911388812197748664993051808802679058038518816765912953324284713259293443571862749609537505058169337607172020769002255206471149441143225447272490067689504253947978477885058380426839794705441216099922656658111045161171834560266326461021916816191618343430828816171387777562477452177974706979982851962168892505075508886886211444581753427904717277037336797621184844247048676188647927042772207995217238019624796336673777892213072363571982408780860512692905344851950266236049005499582649288461680024302095788754438207779023485819221246334845800486992283705179719824008254039723974989034474375446701101346969465881726629577225418202690766449797789098496892922318025260867303130392068837985795287519432002970790670625891189890978924134530637336601057685365658179030200012490466639466853616124017603826626791404456024414892943031204676976833508544402148277504185202535390582614431024325842981201796987381603133595735619318458888784134526170467648600383736514859665430556757475418281739801451633275156098370102197051974018472356313560547464951693734531353915545335550654644152809787417299737472478737370822124570181904230626001374763417520879577541010422563604798523073912363060570868136059890556782034321890577079500792958282543389259769249153471220071329165041205481270262488439745167769867915556785271970002696916284490739812745358806043197455818475106779265996840002721053150526242026692673412188548534838240479203403290208592937432163069455720450462383949092727363779678923291587558235261505406783965112065455641292654128394856436741926337260131140947956831227852657125571635989909195502544327893352958746572884244047457924856045224939669248805223049378423592704434831789470012442938602369142619433515620777861080363345134478345753434893893717820419130679223944245325824758669157112058550358579749912288883233420044384598917831568307586983793500341841562801373492892484609491317158292286257259128048023892689042863662107899013794322461326490294870236775862591865613577064596098771028000665872626379619112263113478102825305509925746878618264537611829328767206464668662348345275008752745872807820119849758976401158584912496009229441157576757999042556367869443877182836435614726645744016221703894163423818472730105348454906468775319877341615548710217076281535727840740318539829755209761221648533850554064841068527295299207303898774419870717670847225228677230128143296125083032863129776658630728496340435908096664632662289155934858375907636855565473750730637445053301417083632553404210143511221044750143171331077122585646483650113965106143946113606527906063826966225561257245013714766211303191213278570903164626424280350807999484554464170842385610456734392568608118949577456840611168525113007350478823854032892073742355735641210852312359147514707075517086327363072351794793977504675998471105884721674419328169476091424280171599955509504173897227115340747021033456403658568375590326908048263005917368296128866601297150288570879212470724267311743905591970024384991275710192152166215374786576389179187094267773763000673238370290898294560782290197068326221076308997234523849380014614123122583674099670865601686596269748573090360861938556725360438150637871953476511628712964871274189792510457148220489009640114253864208968868073004272213267923816439956151245712089916063010276608588631765206435719126313813743534202123460840205388765019826319878200878227712736988309988806266365613574832564973717704651786699443727783903165492478294958625856174088931456641028296450213256332927067980309214766969058013750941824608069828572674084895215321098905207587681278015342618561483100641960486918314300244173742419439293357802822319368586489502914464931100935984915993053353156389066032966969664803716469942713639393520014952614650611519620584645148320220536256649861021099369803845048270349024097663054636871579959565937428780472162875654539824387871415560968057564100907581848308950847782324506911441422415208621350016330007039547315548161877773236656630911609259852282878989236484208187730099236968945122458322693906534359692008972699549993318020709788164131264793847953789724948514941345960339723266579970502667130546793764019412498170203724293608776469527037042784520746777434707927741596115296624392558151660978399299802463984709349070392140814383784477811271171229120206048529281306442152693179792900575950877530959137981807999091268684377040932483371252371527825791175558543593503522111032206090965566173066731882027883063082781835509110047412817723879812328113048174889603528832367166642379631279845487061056486966684955075233354593025385065344386705657633759901259525747885665332054238229553074617004057336993244929525164733261850641787550338576279764801420284658186201749487492065066452681375099399414953915792377213324031787773263298779560123590375213949082029284695725462489881831684268767418708412008344647765428204641943592797870534425247688911077075332887449314186457202468891593224503569891437310199136372146367306924390366644641892844952147274024309219813650003380299014434534789401045981372002746121290405887033564070634305775061410938714471247696866335248898932129281300123132893169535997905833487157248136495986825167800713313909764157516062892252415462931053226423304951329676415654131340268351602893439468507128784843966398706865565553568766743846935627939027427968503761663120601604254230477726340270019782873178090092933485818374790549789621637123445441635843559256200408294266772880205494790573268715922423712378466982876281245079466078072431987929006103169740156984232416961176334692498976332430317220283524448029717976134527087799253148278439463109782432258332083303940192743246738013676425748483580411201872480105873074040744407342189235689339273572518701005140877300266221723589238626894029611554335260362987078597228357312889496927284373338995769011217555436192056368014159625483764095274705395361196390916575697688248429082921743600479921657010587663193750500775210874069813798487358566786981322074676559689243902841318930882876290920987816789225480382191059294441040959746786323000950403705976458323254010230473053313639274758473732019809215596330162279267746488985413444604850161804213472925520640811929495743211895288640786690790754537300816677610335065011801897946007851621830831788441849186093244136675389212045701332611389226900420908027295799340416733683423913997969945595689359805071591651308810791733072754769055138519421236833066980666002644237588283931611950645618538842819213559236863452847898413031060819136760822552393975908006881965181076765462709430527160676634998787773010654630402469085807570438156454165098160003943485557566505410885601462431236269629639692560960397980321295408018633883912333001852495741662956114379118535234349428449070186679965665845187033958424221787226262769981537409766972891040377230775120613444927029423943094039053103665090366749382781609639981833657855866222196620003908422970722692457315971225946044943177027081781470449135140880370397528116098761876802559416870811002905070004247699550306778775548424856300184158097136007936902462691266500435517580632735635697637131970399223870085687343924167370230935480381401766031720456884603820378789071822842126104646463112743925605644067090884720718975834443472238005518725834621612973391601799523879891842212159716760504608861037426009509567925647903190771555673268974887448663544461081639950513854821341468328956566143109348044945137730016121853745178524868424470360327510176025748905268385725917140798365957735032765708388887482702338620488453790034127778231488709074718999641736413203592920653210195049711517090450677249969536598743003042169945660896558822417952106792920817225902039654033546126277321562894672340608293574216027800908566414626788466935523058855431443395124227063212247353008245388275651009158077683148580444783651555860009729770671128608498107676910122873766197821498668887898784088984613119090739046501456013755213096396924329243151232529863591687324395224127066649221113164014922372692028751151306874998370491410812338713582939284704540883302477746698047025115513184031231368982232758984040140890357942752556878870418681749698184366365128199247001569655467113553904503577915616029716015747545464809764942136805455944350987086854797324014416132304511052524200080603404950055172020495813418394274676413349824941665527876658341668246976419424827943468619515298943344927554652939558385786298083713468468004084625971485794067977281141899394427353820911280377137091336619017068064079634120273009966018130842154040227491589176982245660369137462689394248702773100269032131705070340787293930407461486957095825192333970267113133722837700598135011929336224277819837130131984828420751426647030027458355087238582986770948176692589904144558822747559209874456944654120225798750169681886762416919508103441607733033170152731953802693628969456212743905723894920333045191868969775917666328810899955477993712477529836061492444042932910230593112770470470622844702906286388003833770921964338703444720101967490609953120541899065934356658413246023026441133432651086508367264158754048978008205002041051197187590998784195120529864461405192405952690212012364614076272810168337212422911382610398780750640580671938223751048451472607538608407159977544318750609114509864527485527464708621588316917353221332516937496448330911343488289419214607136302590406107678478676376878391927861542977796426852948961225840595844354656207341282435429292187758730746571043052266384506246914559875889731428408199030834741933728910306640151955951793692515872196465452180907403075774641730172136030124632491754312114536744030486624560337582391509854611619912342432950592665320716008095821492415340484582582731120516739862927811000352500391511661834331187234448307157779864166183682573040980091142238456244258689469007364824295958586886765870506251787097691630437896879353872810557353250712630432870035004819704020062075659417076850647237467796426420829930707026131524129775947301683705844763196900691155567896170590015854922188255448876088610739837782941743551828274691714807813084110166338781729667625954982848396972065596731435789684211355820534711148040375076726415258348219047944912126875303524044733165560926248346256888851496635121166087701385690631914241346894320559447675862178194258748938532320017547668220678422974736454287606048712115977972035590246862340896466965927008015165574535730844693395512035680385990837514470330379860649188678360293203045871002705616291616662828250501026727442043377617510730997322379059760591504209821679897201545155730600442922809886279479303083840686658923510353780077113053215507935946862134939116831317808024149324793864125554269883914755895393504323514766977067690700935021126356905935287414013540577165110027103087559809129741042940601165193229568018633612005451723353482821620862173958902024881015750020632700021882853848751759909217341094947314347453233644450504760521735436302987596838713072389342354684234417178078892077806785943085718363045600776420377362312428372817617738822492026621272509067328012001104911731703609190988666358633044200180028175864806193789019173260194251558142793007026522103005022919659903311818467709146441534714781334115832356418882747026258556205779549061968199483558430009667960353935769290223046496464939902196054613342828048612863008488550745827550140884694243583587688800552960978044314241358823016386497059294388767410563259107325301176215391807188887951196073472952263257302417047597117883319827148975911877749393037374005420532727447700157642023683453582041536481126766557459757755348424303885113953272835803760332611878960874827627567241996051131594489742674877731331686519379889766267614983077565558798872234746209900797166561149851189117716196130856045487323054134711984594590209122342444772045143365508664791429104960972749354426803913778672785121944589907120649115711831970907537147468107748024425185847626336666904834863615723659123177938741786794316577414078410169973081455478833314972682104284416848474923885892708890160457330640095134277924093968327882853930792279153903981867597723030493936293737037910904977370032101186159943858267001060925679011667321634985655782254007072717831979007189085086761365920287198189276397873783398475680442789074250047170955671680639221399296519017548754372428394279368188601698156764285578859472017040084524003202550147544654987042387256742331200851591177686720124844516068255847969221601549599435860389091506253725725906861383984761528973217628318668415035196798688709278030134120518917178495943454558236017392274858380345380228973617389240723840850570034359580754173594871166402073234171981260920541970813415079516600316246474035712580456540358402236740972309766738178789519276281558205383587461177347240444357950229500796259405463798441481651939071094513246551022363124357352031431418376915203955204706734590270899169230821880596334742131117753308579870573040556789684304563119457969688052910267497986939691195199786789110342967883419859673436409138172252081242437846004003631749746351075834319755717244348050307122018879174697739904722525227405075227029144315577981944428565578600287664369694738432065965255071293600823015990483144046889992488213654854709838117842480220156961316390263308855726099675755932245987309156351085462585415752948962086367840487104405445376028808573655493448946191422512696467400932234538263296807187154994590468345591791342258800126517786033579727814079608334832311561941388048337529012310295958811018980295758821405141422648099709775810779976026607086034090047269701118582683288616702281215336074858132272417542857160284397493663019255339397872960438207789247850796908267902376170158108405579357003417911937284366331705811858000135176287979066763113005260476731879521211443241404591004000810398075994942719237503399133012082384977252323179731864805632034741200120994046787375173697202669778766679113383064195090519399970789596021672463367042880490132814181337384640550130445719261513271697656153239768381455742516371320170396592264443806897490854627982428390856554566789371335141913748291588861617587770014474837850551177295101775850158296609251809366306419003530572733870590771025013559573022344678977377485606502607066355284427485318848643529206046172050500874765638258118261851951752876527272858881810439744331010656541005487404628037307129410184318546422234332262614006644813886155797250002981939080939064268782809762525458059020433821836659069025478430075815636267922030029825305166316047231780997105045678865107129499178898152906636784255218458573537536177196483297768773336360261747198279841543406121940721461454632033603948916276269275156189890286726830255048712072749640744767103458289756247105961651980141009575338961978694590647092026165209168953996974099786732077763571308444551626937928212434664412867529049093420087111609277215211975262273871273691706378160950968890940450054684789241372322408428490371180749183202320727135572096532531881027675880120831247001955895301685945647576819586117123301219504524719940039451868254946735614656360689676710758387557678454203650697728234839899934007629557961964799600228814214386458524408135914032151198410839346801833712474591122688463559830596430330729924494529061880029453406510612571952797852896582149746532094842802358975149140980270266947711386769563992877248176557607978743506436893085577972775116198928493186564660724685930034952882946176090950626147476179890210184312828344216045248337335335163384197440499505424238390023905560165654601734239678114307705493033032857268772653036863835244389130191216252238215465490669531288452467148842443432909275593585856036409767719147380145865572525266300860337494428380677796348982066333143832171563225411046496898874189722285179101559985437784119687279952253163211433443601519492474337301847940907735532268307740995061573269301279591211285949767571775445555280303666255731788250483003545973409708659928402827125250583051340183210604988929529150243114160278134071639942073146087715354942431783499210350113481778223487502628145749427918731286949170969742856843704389596049339447461091628885291662073499987438087580343997774901219872567705103115407983087218623551134390251258406413453428609445219455583263580762389468183729160906354331718979214025405211986789073169602408094343801969988159719783553434953913591274890484901427544781811099575294219203418288371403074126661504184238345763601127451621152832486317138265275288204546448112351268030085287315060148873109123558295717696756173713877186683500968075348929076109300283840122662961436247845579460427467831332762113031174350301917727571346736698483023389697368931607608289815355093422969466207969423503154220723413838662234271108542580329619262118093791073165731153767611395704888801325857559944200870832525815290923513169707158659646833084347868348604940354491984675112813128538184002137231760188540885095994103564569857253082623335777062722963379475042363587193382322664105532102109550232523667311741606107429684519614415006438650594712179073055216913259969955892824362390996389221328756975769688436512376608501262794084678085463905959044750505510501063827720885749587466596119746366346460922489236732024090379126265775607876611200371660841760464275579093681750950733230742951480571246125870243275317414212833782650720387077687707007681815209330995155141159995481079081109736538740361030508165641452227839171125849762580651887845378369388295785611693641234754590974319020644581339584956181873923842045678572030370807937537942380140573696176711186984595573906229626455380587054144488332585450091343090436997128528164964915207066075299843379414116748252654539430890843241655520057451845362686106759345392619027859427391777004683958183485045690819502728025721487364173761501108450874099613424114191178537829961443994372185600824430150671720608923083311018749862367902558698771986618960573602032030690696844552485536608173450734847323156492500379777965071960668082259844582586166941129948911625223288714600758051158428046672194069789058803407987846752841543589065461488713316474807965455701991959826181453221810575903650055227924154567258716791669393554945330791442859329751271392535701689020147552438521054366077850698201995394723659495207569683765697514658538623767310050814647277652001284692821220458707904727615660296677179756145515172818771348277831080390824778921148617787769609663056998048669546776220280440381507601192418323363488577237823613349397935251571095278894158570464526959213918879037062936134461326339066785567901790730944716855564084058860221401708238029340231957607220724769799238049002873895312035427490633642697033689198204730293726382615084080005645439313144818642224417730695029064095446976658076312276391329242271746034934613200183825279802464580482668528075578590531588968114773198759733002897727641461771913610534106888405913853113049907527205902328214660369329142868920537873450091946704882199596241557563391387154008952693647424109462059938325487604277555158292521162831591359796066105180258465436984179099360648675481254498400001707101193064023539666731781486888148631942092190409815498906494805499430135531757855469447645176604332913050057648967095439622962879304640835324419799088131215020598776177200748793873188680404507551032780325826701915031748258349323720938220031360506597500409142882273254065264086422181131800933678881658659255318714271734426169397354378338103617693949578735752811656196148872623257775538687545276246042760911789950654548425468625007690859942498588909798605216390614042073388341218522312077199587267435012548164650593598355938929555283103633609139417575445179304852301524616834451043642661812676428102062196218594357974002568569221846036436123025479808315818449496206680627617015234531453199105553484550573666001394461629080035411204094474953764878745971476002418516979909901493425353307376669683474212374730044809327829709564660889566901191641967053586685688321612847967301804418458245234493571919830404328152098244141651964081207947922957760199697893767626410983465789642907135455342122998484601945054137137011733662159388055971966467667986910703704877509177135665751025052849213510851729881086104455135587589951781350246864745421964463718171045980943706437465211132049024152556254855333560231526511651989880749918461304331216918310048927360688631357229368617859047078604977173235146861882750370479158939625871824674677111541989040539988885646424158666429150330001558337762542293063783392417047609787911017303952174801132652649304963063614693904432936937608012696652186654513373430210110535363650061349929743844550638982592034918969072420247573250182616388642103117642330447808536680265876268534536352528153889185594012852581779094753420023546866677709814846397264203754652868589216350191228218789044039657274219741591311928503011036892438561058712389384777795619099317738042820651410421014004506191257191332000862267302598914105266672630763926731229537071258036964731826687735935395214386562025960449674336064596073833480813644122513180455316817012853743508883463870066944045708872965967866096479813733351423853228870274015719771085930980468829838152483523366730036619529181880070944188678083270071267840400988489508795647300949363716920650218760868660007702577263943423705833159455010777174031534838826515474431215751403898691295298482494212111339749428300388063902786039036784408636691794425928956771198062962952559471669928708591667114132474542940662615337888505737556874511050470057176595099546208510495060249593102309297582734686648528790435954978336833799970590302061888908272482119945879217054385728893708618255401156753024612002324043470281809915121896282626172844129552764600453953714855251815532956648512932949027877486762891728533990726180552596733051402339925213685141866735151088637514047075397858499734910281444196769135912813101095417162897549900518717278084208157066087064257151143161323395322005829683733090074971269389670593367547077143303667099574653522396346874384072479113127075821755674470013886114698683456488355680752236854461742437573513831334161065917830402205412497804488475665047486578849126528831125724973566552203498336139423789603593189406494070422029864137633803546131050703077495789423479873410310585472856561302357812182986424411567587063484759917384425893459272265784363354752200380526031724830324472070231813019216914835447240483115446923467435867173873698480443126043004782981837400342326173590673668662065811279977728668520917360503094658796756773843716137698486891113656619449676348305156454402825752702352619051944245051802712617233772475974821988911996190600094841968172710782724313847355190928501005879804819316264345036148878365791332952840014023669203178946682486841030029912819784175998515010841065794761513869725838884019762132535701159650322902493335287802387949390903716405707803539019363528017688177785088469049070054195862526844240847372023687740711794231464543008542337462790020351458839245066829476409180818716129921818067942494718214012412680468595185093656178937358431061467802941291853961649122026309968726364212984379262522596367871461143735891052902862824490051599826985530700954501554222804430997770056154503762283846440391364253057885037399828248641817600659121924760219983701079595141274064873223498029714058745748997722605916194341694084917912060053754862840297573815097841840656991471545570141176606692721138640993203983810588470639444166148672011396229781515576153294003552933285443069005331742978705261574897470835940580775835819961948911049572962421756299017920229943022435138751518873816706142782662288675762931088148735587031421491346100579203436253505097684081629397018790153014204783030598795014453775871645238251897189684012389412514521467009068593037114602785061136457926755616774591176171942977672891486758964832583554758516572031155019193373551687411172839328901312603437966506280277996664159383117716671088620442229042009074353964907383621061575525855232577994663727676361534189251647512912010542973995851272983208885188767996263126591410353195294486844615562501840703524941640076347544164609073020591956006108661648653884559411902394311261461139157086338369222928021829856001354568077648225820080881269845460174258590885255377582562347623994642556021572487866986702637144671620557068154706473796820440408106517166856226398529105958751016100828441803731119956990586605260604129887213270112853040805530930790019329940686466843403599323087716936065351882077488937197073184041825134746193617177543241222837408121797464720276084970364800364720803006769118421468665262498713667711236058734428304366462164628869887280013888187490495486467715542681391800012373136771827396888556871107045874196872253816630955266699413008230288604721078277723957423438073405243239997119978644249112499923028102240539630324536419587231195748724613132315765420918058367503339834602141715842823578045513059833761606069085302811476937690534393578536989713077521732495838071406446478083097201331402589795144520013981453534884421041205169661208659442028778461940405006752358076078315108709815687150060409598160771421854394593611474358438512859633402242142123752814148950950350072598190758796926459152062311003611189594880581324161892843212678255960490560018826332139492434752231675954752838877330036399865934985584966967366539218362469754331759509846320689458943867302439202433223627946729765503242213183928555340619665465902377776677928713714583630872261734697732218999887373372679066551186221210877496373473084122331168996915205823236030721693043449403648775809626043230150635996583016233273459458510573369755776252088261895246902156314227523651171353184889975768232758914763134601647570127351384540306403856398906002099628706012758130213174032486548489952009993564583431650992219612289127923735346870665507565068608560891026078268296264178008383956739534736880628040534927465859896094204657411345537438401098371710462101758488014251866323580180579612214929921575302647254734963443144170261728798928333887790858212033088918598996773744447162126450180548747028586279904268366986847476605859128208975355124239783532626646494458095896396112989795108169388036015045428854297987309919805327596874677397910828357069812300491833127868540196158991388534922306155801377353485833179734398371777129133245526545107672593810750389458641752821043845018310528827674474943481863709620691487057659572123183105241445314656931353138312887321695022733929983249743109586758354450448441426729604462553648704032863146267375702443757173365773483285392488753141764549447338317348932745565406958141788195289149960096414512238109480311236459055586009915985891207550201941448764762032780564055916679607337430031145709231385718109096913102126867347553023256022193504905326119744706856135250288853156485249223808188707443915207444493667870737888960127684691191474812707413890467591765027993143471558901904479769814239507382826542298595203964054752269781166054086091004419474380414412263957314751925429641703747274510251314406031597595843943747223636348402736590089298874546567386032011890306880517521204968878413993011469022060675500361479706935657269774223230075087311609095652226399135302571602060009108206187239941854404563811292178002032523442419827677813561361476856487680651364303115461094161535408654703608673206709297153732782854724974498724071749452621391686346677230173782743172567069405071057231451248398063491119312111572832042800270213180004659367726693098791691101748635865069268975007539156310876959727381757185628663600777732123883436017034562812920932226591405508259642038791504066554613161594913460763256662551759365029674811481942875421333639777684428706790860014215345495445016557758752955039445570363008998152116330947496594426236305574885568157467397404554741122228651973612301428156489208982528329643324716945417800857609001490527466142436876808347593176735575018869206798942375141205852496356143460101356625243877595317723468308293230989437298128082512246400984852817916495876504334024977936260633075424612222252707542735212428062857374653625498880754632985613349599575808274116265475701134577870053208709758011181419361717764654356843422598251788049490344168820261647332445401750127753192667539619874744175099182873914356068497110366255228723789133800478181184928733671468053889100901721131575852958106563320195240768281501201074896740502827375124764554275284079171165995252947720538294888741030671606294016444446974260227628238400888851351366717406421761163128808459524153011608793130342521119713656230867777167552230062811483097773076138317065778516639653038844902579054672880146757206305720562722697528416784656598818217411653689828418240717344749366552228250723156345225164997637731358481391933474753117847141869662890504532701112639991711727014473335362332491973750975868848275564442300453794453491390256812587130974213592591061287841503184101212987918580923351862021465575610677359238521086408529645326540978674592287791434109650289666294617714411410488437270388619397974807976485681058644393228606617864993279557796965382290107897125609283128087659045762646398315660859176081377348780127110644571056523708780753039864098216341669896442393603991925516918028654256557672278315608259500418795627543131317296336315027165868514186006026803916147750403809273838611834598668093948758616404681198273904526192449581285209494492847075507567585432665563438898676999329581766960446461521054699062574897449562422263309947841218561016559927470929896183758838362602552634910769567465953637832653822142745013345941320462588670800258377146382033088083996298705612841224032883703454572508272557626255867441326636578317034404489815495330676696807747408592919091239955250287047773279183615675932432340651294556075350659628235489377518791968135550189924399004846429051444557528371434284418696394661130991021425606588108643512824985434002751769763638532921369279090767908866482127269315553344758761476063453845215893333703602594926942701694683340523041086365876373127989501099855282204391244073165164287762141638630469400037527555003353998211941725262431436759368701490159178881308716988675631155871429165672011833806694866508190637052122271498569661579753339866632981325567356372042488991919201384353415692882109032297079752471995378424948590665482655707642755563916630949863844367958444569064432279654686314203373003629511160096269712416542536055570065449048082597327893799813651866014186007867918571919128737153678092804824135923443846209228117797652116215506141278706924711623136368536796412942487456640542209947467234355162802464913408810038584202500735588304110466158109715802074900741414043533749869504050710862942704353322257082796773244738452687166350271795308818099302903965006807379860570311292048387748659529421670386280258061253876032792085719877412905035814114496724325232609536617239541589119554292847615643273644539390685399234374016957186075553772394300647748228095650008776815280517708951578447122933494039012830189565807532494146262387491655280066500781865406402383816410010869772026993142444869990682299094648902982953661579736815577173317796485082964199360374508462041698636706149737595248075588471550001499849237988071535067970060567567991245217544992713893729205247644216437654839260076078688452751387710857785988837888590177920929183493132991992703592483366138894528134799274767143270174570273650400559165574450089188744173472067656710030204032860215761122346104451166097930681913570215264117135097611568623270536472652929861229875407874633940242692842504850961209761676682716011795821335691835996867920507889215318895273826949630865161763320811911518281233586039354249566771052425578996104611178647754465585462091384430917749353331233968482223936239901480370557725761263934960504362071338376898993603267222073955071216376633796059144340833281410259118358525628965914853113544574292452702880353939099173662078786492487025226471246120062010261104327168786187373024391397837103920432833437858613449982213534677968645822163864780337872735587395216285199410417707740933410355022351567925943747730213304937254830453267854895685327821361673240449634532981951707514800057208842222984505284144497289247872204975795978864028595586682827352235115216787831539839097611972013356046912054918623063378551036641649134254329866664953248581695966876300699845531612476473099226335597145639993547985877232360722431706471098550778392476241991530458605288401349149804312634935185810443570607578244796346706300670776765330243146367066523800350249489879679839387105384364814512147649616394206346405305999217150449348319590610394026774616041828644763132454178482712497589482620486481668596877452207919694318405620070848744127576609300366602487463248778881444716564848751739434140176191151703946403109726207568279624354340253354603825470639836749392266885272513453560380866825936894481267903497364785422516561867618807963243801283809851066490284950958953967132398515557300474487903636204616294265325191279737855968729810759163477813915361756072414996897782417976740595662741344978915834961285858556576096279023841515582799690170087351981453613294870392277651647358940768491019397621258615661158769557310443422743664855016271456878295316002939732655922996342623325698933433062010739722240698642720864747761043199335023858616172722982790381844355542089159870473577349057644086098248401695240827122372066807899321165434587612801887113638831669181827819273855435762203957126328991343586333905268260294994645033521806319240956327242518784789235674348285044705765888029736357611960263596736025971584414217604783241013812843127845770547435883574583359877738713869406465012867320623309264648207712895694779745413555358245491025996638153203432985268434918300432453242931993126345609772086878847850606288064107266332177891721912149648292329892477936738308957281156246988581794978818171868543877221455351736080383145969481430339082097905948455103940455566095976116779616458205359174424640047846077057950154293818971582098335334823511837449874364859296957044364687298233863819190342568413187292789825959151709611948701666570289143642722965384621467979936579038047987366142591932640025102745701105297400778486063302284175337370489941796971712418604539649298455760016588265257461716426847736851879965790351599792597044741902884317003214044368719889347066327089732534032770532087176116191748975859966466761626069927632705068381875377740289125502621093758714584498397533172002039192361786600585680101560313206995321115748489565265029708718540537831612064197787398349222139688340779005805594752675905686323347566206131567797803340668936501525157431079146167313641611628780439018669364795128332086313792664760433573382902929050290047984046274131354769094404035204248053650782718683373958404261835152012327003786783124024511386742450165686172754684555274728310222224169824718078856934544223757971360511735411882615156354989068214638017164839923008526803983048995252848387720073092040248252788259968024739171779239444080585961246036628597121185879881897610328465045872051842062545190236179482771053513019596007135686656900365979161490361366295288292205976294142665262001357584669573070412881172314605122979273575387165348025793555737472250431671794616138129859003258914758557428871007405467823001675177623602065559164958193072194608458737601286746644164321562968819163069650722221783976881105929270179976085014976915439635245755636988748028401662115184260081185664853802220524129619883840130082659509315272704115410039036062657821415664318537511945555962378433081325607806124955558797000846061034820260377476225587415393643516838427082322745079576303122778726140799621540088579483483549287945198474752400686541519990904982063702635945098265337191470702128071165473283569550207685477285357526667832707629794413688485097680977607319772785467145385460545796562917868385591899079486585922726843262109868090227390566416235647460822178982900169218449882814652782159923677750382880800572166457305916921915495573510055639359235822817043245738831385475701467231016705204402737662006572160854593671333935220560710338800760988616968313571373276784535832109998600445419020273715857587051670539254135419862616321353769191141241878532643679143048718061815138988325858272301252858010855342868991391829425219939298336240429016917129722996434448168523315319701269775664453352208825365138722690720250764190877979235992930784797515591699083679807883229863348878423255042305755518596144684156872207177489516533454628099787904818798366854682961707460024011997641259721458432368771310798617176294547538327404950038609946744566826819804703324209933547839861034464133628697515485563874467497901102718158817019985244958185936397237777079473187485067558922316702761899388161153909183098438708955919839226248158400877438413261792662041147677474863691201783481129905120209748289441169359108931309455128367834183315053732141330647286637605775511079682981964324579314696266786239920187478251958100795306374743832223162041277655545703162153437785083700659839565699112995551030411585298113023723869327217439576036734954362647884748331277410866470246554306752366210639781107588709932398630304281816337819197144255560055600857719534629540540212910357961905619645121645860955256080177444258809194048521507514506859148677161512737393753688440930165454735672689999807596772067325019043771431069462236554120290355887563444237372830137627854983434245673189519569160264297037632644805522709315709057070238619073773738171397089681444141750837508147647302707379008751824968491404950102023054499555777546302408783811274167407041127279864180602354308542600981192456242969687462485789994675486708811147776974235222202590426502467501053282694646236948082632340609821949890132353393687690544379178538447832790214122222203602527720279285720212357801566563105088013717936230689264659513337047565831785257974443553083427330426252813188369837799217764490666393256710755213398124603311136696848552012743683425166042295335377463274572253996510723684769165900658578825024742470031954711241240512886467470263083939668102356666684354521673983931163671230314543764827924537467308601553572032893377168078765251343089322119771613348686806447704449505592038744149947319251042815794656407473665096744294009325935727410640528004557570661484528845717601065387301659812856161092435926057399368829249123914246775191158147663939790542789817367141278229215300921269663294098940134881424938734214122111191515453302174778291218196317169277904514390363490228356118653891082088879926965823146369283467260249831786004985314014043895364672665353789721323146552764388475240513469953313905259302709263554820233623111717056128307369178175427124315744139779706504742184808645664787600968674774717566713192370672730863027245669266245631098282076482095465653318960642567634092825077104147583654401267359477362381863463353174410172419035960404097792971301162265841286054800791883112499549286679605093938810436382484756686540487264427171400556387325935838211163046983618733519971972395364749144239965548804275484406149020935004657832430715990520595668200311344058629533374089654016175848193850870651863825400601803691302696149074472828094215713238998394874498665885384947045535850293369775805796567026481486863519460571825194802771501761238952555290668226068306660253813855103243135832481143806596721390877856111280820707869726090298799563949924586727673545313367538242348935885949184992359821912342903269438325892779576803819637111359838716756874492809976588171642875196965366023026584743606874525392336101240208135937629105336405216667933460726157252877344600738938218748447534956681274251623890645097914135734996568748189484559930598166816657912578861501224307079408233630040134154602152361540535209453331087522615464898592398195738813280321320136709562451661430548285564419811795779239878511631164980156202489084690035499558770848948431383929439989829790988783199096618019895908918926737884308540289143231515257359006046168278242304816995379828434146800245699282587464402072662310384213228769434259992760258586829215250774109547881274039237446077822911693609066449073054504315586395100877454666152486630572998634212788932877540307613675448630215974796509786592591362038394611457747483659833172285971641613985623545863588064206279927161078137337818230016190182483191496188726022062316747037257363339323522676230493357740657629479586809881453389631259361098761769164314452696253903246592897804314558735209890039054714075380315745761475766842658169047677457055247676939146381234095138457781494395877962099853601212806641600732209278745537104618694082545372218968819006946089074778505063302437235271676068705565504354167352220345038873409891606852155114231708056952457002556868077954931197472954073586639424573219342045981384775159604591662911705108028562043731022036099379421888283204904221101598636591072191010357540264300115716261230679912019854737550014660817076360640116924245006795760644610792335715602362468355761192558234871174300342339547552521011298031928725826054826227025556629875534490392838069020278304783235282658061840716344179007810736251958908822598204658268856698274039950883210966418372260711034964441225401413021585370942208244581163850609040179106936083304186772098466815640483046692424048627306169156722101057721366153425078130624741222986139608710685967587644985116290804845894636208456153453226702001476599276734482540697879912464682351000845651389830359043104220777315517166162416843847201604866725014314497057975474551937527537849071136711329918606868857111949187259701876253401297915343673011234139135782886361919603172265110359907796325718467618252890322158492097852335022777306930351626606381206369203216258435727798196783076068117765270692521148407925534845827265064429087341180799196416836597876454016470714565555967204355885086737514408745954096586108961379324765115296818423651986025164937923297212940672254247716282278448381204898369817208711820068618656396316399121880680427208444284574181205057483245849138170150748996862658824097651234336262662201867683783548412484081987161103641403873608077613112462706856436209574221125131777295299478446053592379961035537403867430820729743034657393039767911185583305801045310498255451704259825126778330078338329893429848953481436611297997627901443546202744781237032505187215244297854217928953482570398536061531184056768137135258201745289780679295573758260982785982987108909593896638294869179901782507359291154987905246051676640002723490477945064033288810994409105370988050468558213237987789397678798578839182490983414526931665319806701061885764655403044293065560341303522062455490831965285011000134135929315114304885818121308804851579668147624420234518460389643993770913872308709690691593108309309420838684357335799422251293255960451900298483398255398134006641604907175205335456742273430657607734663036146125031152552491777665899218825968037042933662243546319404894242409728549022028743003290131181480671155896915288092724663865087254503329425647143259852318557672814436649173608930597491420117628693322737520401686241912262944010718780809481357375938547033531305216960055504814887467709008526772497870230140140161313009607317863465260906319576854527916375939485141489409530972093545984759296491089497400640351739273494230837702044078733095327788784425933476810752225166953900862204585573752037877097147956159956827624466134365629398373422605124579270377709129959278055097349256585776890551187957402790999066321006596302529962870891203041949058977393294119810679136815561281764591554492174141980003230666717612374557146929812656080811900405345570412965920159164008117207930862423559312238214750435880946488978888631233273207819024519145882456058344331517195491624046401048601284255616172328673468264554860604558490143301601422803801904925001358739707760609745446408977707418830744986378237506423886162189907055607379781161717892308079930271180607797959410711112102502697258354060542307105286907189620054954066473935091762778414771918587532160173177794709713484538289619617772471779693566264358824942073249389589694083127609599150428389725234935760304715848883140290586229752485907295001494626848295682155537595349526181087167749500517701852697538690285359333769166465075745592053921852000474410649037957780639568822410062779410474565530586094115102933406080344722591415402253289176378636822015724772423381964658234945875754341455655794865940869858589305704041117626821830349145480885661920717606336166032895982545758639104063246883040533449476205195165910511955737553386775779653641413425899526283351650819392342383181554050151556213234411944335549040391703996892482197376269597475019808711975225865421213006843153041776241698695114637773701874540442149071138890400676396795988171374787290065865433508582493436697305995573718567819809421107287295889270333484184297902950811479724253832938901711901535567663993266891117869899433716980234163617346251714031471472619143396675778747193341202493550376799082599282559321398903991351039386419291353823231091167831829927214552207647741677080529186991799113802255135094957034362307917624018855530441976679925672229199817908581038568253678317507557452034262619956381601472861632033638161086373605258368477107928134906662204975967079492626318319258542642848112580344835575068126425521723105090566545421115113391584263669199919948705247580727407881667688475519815100206257377524625384325051013895524192264128951692502706153072874908972627293647220314924376298775496723981384265363568037904033910722119039757500037263440966209537053161314431795715170499092438599320406850186886052594363544786472338707982291578139019077804967348375856545948977992566448426810884857301454708348729966022881087255971095117050008777828957979673192321929841310978601438968233672113970733188254453697573687957082629317128535456908784350467849773237552065598265485520374144889872241921576580906309562887533083906132087142455463570847879699016893599878119136030715138873128401942668527378835722549788008940029006237560825972983087223052624368522523010657477378406667501522104790220449557694238304057234689246413764305109231045088594075502306473055789205895783884104635960785798527677169131525038005609162221425995806066808260675437864995505596845842231979233437782355608531081619373099736068582445719094441551203032105254150267469090601251001951771752665675869747384606409916564421911333831246686235527414084125666351874520122988847788074048306066620052020491723785763220106054706751659581931681391506242294221157420113553159159543430300354004662482847982839803369222435630725991243722984144706627496656744302056353307867056208968899782228764975221822335940959560028032374384432280899446953380926029544882846861580665183839576450501047190331768348478873991801017529210314631695589665375881622332583174466138098653092500193864657109447723714639444423824826017434815440642778571962354130790448982298075840807086160078541600899680489634430740488307587240297613395624085571510572297148453449466289391797995927054823266283588541979758423853244827915819399667746504104084688980667661518928571133751937003198274447404592665208297012733471141827964398933506786877158932004337400560771834643462240599128007712957295923764792918765084211665731055641627230721913190903619270443741430409839125499806036497454421156995263968113446708687323890120650770190510193265218635753864422891514786793507040690804072353170071813071997105419370791931806864608280279414208519352750093677485671439298896894687539794013236406348138318989823323338012110317865194936621796727843984358900269487646309651115998495822891950593660047113890712883842345186087803307637076528836848078314758307998312076869271784302127931779749863312571783733585515878635946102837679989407208425282854296573586251461455353054154382474472778564867760446574259858129598532126456347423953860480490524524592452193811728018449495362540519566433287740080341020951711637032632833317880875148522680884498608324899524441324736637044798759916783870583112466653361496819129425553796639223759921687860175379486765339636386227416645697637385838341419494341168711712658780447244394694492978676419407694752776307422088471203148268775340543302932604619789991293652431619188981689244755342196389892230517958598477433841833562173432260252011708012640853553774769877405942717311438431690054676967948300210284368916652898988404479954671967075280987392251032703800301614390377502716130594603547842432781442131834123535136191725211426532502460803919811174733900502463591284425168757449644849755738989867120516824349386819743399809008335861296725853731494208537660847007556824349441641219713438234994349991672188830500896820357918507608965696750808522347085716333665602390069350091430182880295423971542321954700792305599056917268414431742076497746553436260982614297855075604235171842903261812593499827871725874699657751900435711458092571906237691382113124968555418866948147911228136346509916092951408942271168264445119211803182544464040186979328056536923206821225529903211319722830847660073046249778095642121062504438771177236337638138052133131560855554418114164235527591060333198859872856750287153918111088753946285065163694039098124809500143322473012404962534646784147773821652486626136304007149011695326945770113656702190786446768504867621891654626674342485348549007700934877807250589642947332342302151907926451475004421991218989358579905226660511857586279938257225413300207621767604563706898365163359127223152221319858692834533167855488706327911602457477096292703573763181062065598348249486387494459152347902641478489350064350172457749486935320107669665477507035846583719403086929856000000919699544901644895957172409007650654776538218005983592912354706886638459853250346543814757771896917892918322612856535747448220248213716833364959404116746249458505517838781786036465846554547711939458820718422264579135830235824833942975292840829247840928470103009941121701579869426155519054149576223766663217066073866815922352761590654027692062885411280511750226011969715401594911848544135906874716525074739779880382804665222566543225573559161270341976741804456834329014421111195642635794171786969115930279835214570297351349719667969820201534111219225863682556465047263483398391545008190574233331465665881516652285276714273250001178404383248972754151041440739146778404320481017643523441655755075136102906841326285903285424264321890866133362415882816801936817315798987791760634576594258499047203816072766900097574117387904808149729183563710047679331365132104557868491284133579203412521945061527353041647669684236870628350799007324798740598688733868573936327229196548489629885527910604744295145478159320995119101380939504799236758195772996989361316795088579213495967605719736457892800682234654015849828890391185750482331001183945079141585895425264339012867346130497922886866475746243257616945649793915022690012407937898664742307403572208021460318458900633510160153395020320142659682026969392024494100190056888520741007818620892511584987972802261671905315698962979896454956336057871600239983239745336316704913545919523611442647219367850600004051163672034742733425173713232592514443544038913493532779625982809118414058501989033179018718394408600067372879633650424544486618117694048246277814537292178723231426187429532570168187371517178986415258223783648885718853462813882320636906750802034451825053336825554936496529572732991008411318226103015886855795772604074475359745101760857334589218284120900653414787318065236622415879005472618768676816357322639410831513728801470298265027098977332894415086071670193679575157283403383261964918032607813444136071384531910721556673464506958171886931985259638368016209078896456555690919668337029553955993146467913581163650336355554618136269826718416745755271828177596987630162052272073702017203829514331968130876934923877018546154198865957165709730336510944023340958617095506757580150790980396925431876036501702260341541430290595472700731094178725770510098836916341946255768474047189558643913665472385584848973462695095337063298370777447097151018622632795764634341284511617888982120800338380158848516498896755605042207917126029703347624861131932002570248361669077387513072111367717507264429850549728286086263491610434818915347432007155222031305110349285539581759075962738005613545283694349573468846786863823984168476525420391939088094745806379483501260298934161355515514693055101631967292069297032045468813620421208920255955552317951044147062059189219964832761085830214717485147410295398503611854176778209493707817122087909478285588949606530262367745374194206917582948542241423035093363203082222938077008132682253750198911281009908831321207990738288766257389448750990332511976695576858167752861901548613616296048641225468571425968365996000501889164979560141762073286043345227196179704224728852066990022780780655537290414244347582133378052177916196682017898337829941982053165068179080329669920005162277655252507804668437049071154427865958927240331878160109710307863807647776749673480096786801382083264833793556318154935088602729672528250629773968796691844016414393423307477996676832492462143368531802939648217401176438632114588027417469900971263536874830536963838662294629088053470531204244490285820811022753614392036419675722743698669544052632041256375639973457888831116424880320924642790558560354380122065833120271771262877501102749852405094871727815930257831813607744434473546319611753109082130221635292147854584499642750922895779926686724093703463564650255361192941153984768601325604885102557556952660066575543546694645317907516144940728734559589995591581786319428299910335456619656752548456201732086817356224736416511916477821252350311465852135760994316933864657372323708236411487588141143994491865605628340564036152242739553947484108193235987074419339460178190789772451701475915308994792110400771837055374938638019288442030460867500689292740974849895329084757342027075295156042882536619835078271331400033525393390793962468614395383105836743974613807731118125120065692332855248742769824805680307911554690922368913505531168828155135218791996002072488202394136946758989684782029572728539761408660577472091287094916160389783098226663273173066103633934878496694939047415024738986204046094729511039784968349738808332927239079590905774997965875200295414496561083808305004103495604088610951487977704270982871072461024303521187501159346893505902459916574669703764318537615438588786833079865259460531764431728046485475219251207032135440780807043778870435698151754081494746917512485674548869868741747943653023542049002175415457232876599334911527898709262641639082925115489470704934502307694591109691355859991303576898250416723403619572301169098941992095358430186822065719306116220228484326635269184122646847555223170160077915181893634077183432713779463383821300217135157125525187035852383887422298835730971211884229808046010422753828489672090540054626856165305445963568898692207484599935179321826116829308494994677875267582984126823497384132470422574255667993753220719232233536160927103244024810569828535164450973550651518032712170168522288053638924197840093768870705825594500996882816496648135215787299852170757298675468576104256019344599701471527723857920412464098366686190298783722678866494783600786988026058723035933696833301086269253144096291363480768255974886314281161150061018856591368509469599526556177658351530858455501836755891567291554204699272254378708146305027607846831797138528078063040866028100261668067950334323447087541585388653107565384341280974282963085866610119686081997034214960469407683402257137230154803298892019866740853077555095371818420450284812456673418950569614065538775191780437386080131417790735488658250233865240031990780050472566507421127377897184756953331983842395457021097910824667184828652265183794000082368954305216942433880620225032284703651774465638199947587662543413392888914477356872557426748067709961023613041466516345774287826284402133664518276091902893296105126652074448725581738581969883613007512554683806670041279766917002900906523983548240410717670896035905474236739523134651098278167512409212917891361891178016098661342407933499311040572377572987595511989322808761384951291135850364337013116419394558179451483573312445513911238411797820940168839724037358702308371085783613054817464061626236279772971302656110169862880368468733263633933904780708567085034602981694130554602950592001385523946470285345930780898663103837135126688352775966920998391027928244247288160144267433329856971698273799374563374984109379999689635841701782129525587488057279359855035571167569557611168670905897966642533783214120496414425087816581796779315432369281935912920340599095596156278547990208969123427280433462010861015781420977811716081213945386335550350065805126035096173548231580203686477236024702551584215027484779625041320388555628935931609465915728163128113470849169128953293826486392236655821141104079418424033148643013341360049490878475987717262530946461377442158581101618295485094408025234795032899985388560101966328440440081338721498066069292595833956287116620747347532653167457813751275799379295911240144249380523683518199991447690795529849973450504595072687973888629489175990871573667227850923985327658861725648006458613672735250103847875005925376882371574172032660265219266251647232589179860108372561314753865716568903846509412063111702414976342474998411846488971827362529387245284867200075764462746416187645535863519085175388243748884732090734433132600439493991984488120504814209234236275439254954954748233890990799768444246799611096923743217031116261665671369503466978197962172912237250283835332304639512082124118367866055614327220509224053544490976293666178619341418933497477575619194263449441563732553562345209942171422882163255544114607552464525246551437753232593741481606348908673519708620640794308464552351213563199401920157466704180444920756714494591991391020118527554370573406193600628142953557259191928434911619697848065052655051732668284418411947426936780357676176052222539761139075984983170077344697678706567820653090112948307013686424730527975065258200015332031700269456475919054637546090887557211112720601066879675262967751982630087324921321500890558015785959644789489509175690268411293112483265234914322579976061294417931560318457723329033249865259923618425799262791629863836176859253212526310197643567281316721282446591681067379252720933318898558521036487735204224983538893505850458721368144897284971959146906325253116124643068992206155255769520142550408440028972411834062757275731574682390105436984436852510164803160831160126275850957374782569426629757316042954541611797882389453417952884884630244742191128829744402377964817291319110708799673721995812083367767881229796471768374161937682984634380750977322791457952392499453505733300479129123117734226991690373528224698627876628667574968836005430697027809811005305744565577356764134837707548050763521111362337704808328974604827351653874427104317075468166969598672537611456168293440380674562187318050237717507580398080258025395454475422866661281052734690184423604223484241890006977675830376580351286244690311302811017592767022880241556878976929243570966982281889722381695848254442120773418314441037765367743393473220425213860593005205774735606112997926074252801906896288651820544497280413124365422162041324770106557988463456319637912659939611661810966805100459129283929841406994695810218524389986586603904149217526435712782672428007929958614474117574715516399454901098268523222568180531833770179263739252902737318683404029399282471340545130261008851230004536536486235056345942107205863147753202258215408878334731396480826919670607614046264657145127767464453348836832601627996112142648244221398239931573082792467932816521122368410490805741892891160101064725178889109395879380758557806599571704519463554602031013400227956261277478583323168957170886035689823723285872472075908695984667194701943687024812712506465135187254401791984598130861816348979419432189989541435396305092276254563774771491539104014617651371438351387433544239605134042509701324560694364048985993466794372900407373257010727127284512700228987956409474281481234801973049686326228668508235353933992554738679448161578108407024994044271299781657351766053188097810071470935837289578572156555021842650018836210422070327030344088881896874006784758190263924593513988676083896742478033231688585995782379911729393327617960178569193911720174042653780749668819750281017689581736084597275779856938302762262893585475755605251849480815741596467232923340264488000569793411617872298957551855686641977406930732905144026434806074884517901101055839665314882616241480724637495432792631848355434623411714082123531524847927424084402997414000559597807608730414112822871903175531563865284154860210898092646257954149103917426677689401833546591136465941382202352801941116021501829677962357445522114444311054869149055942427412556717350605327788873678165739074921912882650376592407048854577172658754818528018761245826318486547586379388624169076668871600406028589571221931727887528018107407897403995564700915890390259931622677287159432024919692831398831531825112291326341502558702492811853132714252961355848800702544247220378811483740154046781794581398099421463953079084707622851310384099797560898337524051102019886191830571937372372279992779104643729520267536073186307188774268683723592601471931148195819195783975881396705507417012950918550673481749763561729368986532832999037881825969483591045415827691148440898892833965612513761971979176113602871610730621550130495213892299646694974895217626366082061052651702942928758166724781761380576495692300902501299426870408847608474256575918814860784002116659178189425147076004449412772537571203605402313419603850042233511179826189623604430703835519752868130727396398086300903203677031398856268197255874749977763358363989592902488335786824725948600884407863980742319011913776877258630410494860189807291383623658779878698591112979613252300278635980353451870064516339160474556886884359377157532787234905549853722635163613639836454079267747431009139031101345286287564188550069066716938949727435048008281736720159497308120166654936268706099662007002494916024967277577487356905072602926555717290044031228030572264826252864288109688470720855693033304010285972442580842648387857533827103577322250163984280476285531901612084707650774695814064714935771819066887318024307322862840113243589467375120794717158318557139459993005183284012061372750227820291985835538125897822523647020453574360828437155656400978658832763173439146488416984765128073807206903730206586300279871946262012177608407879405916876726752529968263786652566753474882769224261038545100261641463658412963595226380899076438675453103498577033563801106240377323341541463647880018953998950842784896149059214640981098007621446426772342406235194940173554698377948897690393096500908572646521271773779498179427310501897684197622007720445694435837683128801288152716384604396462559798990858665472240180192366383610955496972978914335192016182931589740010795570285579580650932542367090429787213834242634965451959926811354163308611641136177726205294729543209641384589818657901087862120932393571330079418390742104459467279064243168540797960031612749689556568759732938547500717366045501259431659486770818147134213042662812577979605361925898368715132461675431191437445565815526610485797444059685013387518348269009277296210152794100355947163955306905086459896955422236880589484132565830596398403163147982560108365875061092412190925334252543883606084253626373670839832253885767530725164956571305902077878544133638507155350538941553710044464968432921545513263213753077422643599668072303625574979412331446601401011846750795185250765275560403256079998276560112357404167157535330491282886280588286097790332174269630581596287336850688186482091071614269888480474138249234192791942063400662446524464901710785233614787250056822112650337439867121664953287979288047602843339650425932118074220793154598397835915340921233227654333218219501675712706162585154936830705556569485705772740917658184804251885355514704423004420984312786552749340078037159812974247892976340750560726287482154398195230282140397529934779376603213619047281481023830567077095078160412832929767541222855462505587240147906714059002630934707789599488816954601521418992073021534084701229256442352935050072855570882488111011423484011131094851055320525054146761109194777359719218007914914569779739799215304171809701862203857243936806068784197684741225156357433574266397034097073182138865820458762616890636459611087389589446542048946823125768232277515777615957169373579663202456124370509106529650233021282877893237011686815361684579757357201939507179067271490849535207411369961229973956412304837125400585847221543987528906629595905429893513489549656003019053628644184398842957519295515728193684614854879503269942251552965550951233367193530423408161396572904344118192240297006158462898640986597067133561727933463149722258716159345446408916386375170146859540012332717628262554500026747938216624653494556343951732103824486007321089533962903275307218665718005895836554799246281994113293943879672708852788354225905639735434168537875746255263114723793052467255593728667997102059704289050077545916563606245266613487974298487681084445698466846006569596844611353436762369568113511431242383860800041738497726653143965620106054172418925783391412795470295465374533824477326435929699412301191886279661804902450903203587179692432509618041593047668442333502745541448805139302500494495926214672482334742799866209126483815405589971867995234270459776240453880953763525693726582583854097965385334355126114126883930440017211617361141913843112065570334491821140380163817633936968579137077047367089365742969429876907867074372754214641744073562843432461960363169301663808486738541706436567848969836316714677523887784594165424400593755748511317756019317647235426581206180549620801610062501295941513974704870148052386992926397816625567838180302939837294035077174554709381733887480579017083470926378259782588601230709133637503062357519544344050452959934810952387763899384818181018508830798778836568145867315239943063198893806868394252192528849462354874636904040469775397996429754691160858093009984761664970372233233610183529418083897963016895844735812123194004927753806831620840639672469063224875219805669797160182930101104165157162231994670818992792870493837978940284802869016906915787193778701563640863255962758074744355081037218870391397057026057157992354305003348076686952308413094217797153177500984080738113717898775937081846722088160385620262777438875040758440109514423053942375759983064562196531676022500078857350431121009406408270833241081444575628643061401498331731514027844626203440149332590152904584489611141161287616018808326119598836785169158079895955600113633185098705295974821454365427652132866211727648459931865776068989976715189401608469812517275670354425649120109810390431824832296602952975506240528708129405522108518522183560175681158619754225224874692392048714456531391588148244315278913811009877112072811798976191952853299222323812594596524600964460596935984632760711336421388428988068050983767285986339282472013317587342050642443779972468354250792955383188870477856704357007121132354552687464296816482634935073374861875935681296533523828256851664710111254285197686316544774374466175319599622309094550169123394222545786263188381882263685479861359484692503498559171909639008674933892980584589971341624199868881701490478538138995055449603772784518362256490130907007219398351830273982911592164348139380532362493422586131037493245671334719557620907111272682813779100981744716600438112500970103793232943908028134364432839024501244718693962487551182232905168394870571196284516822915912131030761713841979213270686740720591931572563246085493786561263137815858477433741625680421028295966592518955061941343881807457776183780206787741459379750577067458681201099153203958488159360136742931543229029591368630419265018405405210655546174741885779734775510288115979115846399520761554276387380925568263502522418562865808292936029703214860597122525776155667908683804877073273422122438381621793172429287399856775964786525914473871435855076704765480047382888674135950585453068543712375543107897142144083900417243362956311750590995767499101836643869619498605805617670263449300104545287008135830480765308432028958084409520827513966782351683791166992593855644736907626543970446958932828929300636613769499931061345412242628915998113850608425428267875005916045132453328838060295727911279502908210685146353420483402904694521558499804156544592695170177830860496284110276654542429707140172540507759254639992811157927816646387527707468398145439332108745173200083807478781907199846291017252139946823169682440244899759376059666925116198627193966798832819285794181396686382050109708137758409645876573984248711243616029005736775517786090694542877477113392048006097721631809104351818095656095090740091681083079026833292391517955905696923251545946529536856053188307191869672128412243180878660325181237638117007365875145071243110893776531871636332027966888978127623394311680618125351327539202961940765939790007955796384796226430127661151150666711933254856321124751368148318819061863830268163596128262576598769022548217853453723856046978691416625704329654716472296148570164187497913102482206529605308923177278757464559576956011375301786456644972002833091325823877364435925530305510458816376419370468351475856473573333446849444863735099353609034131729806144769502654412205751992231998025556732670311747500772240930352902596826804069280650775985427542835685083781426738520840120332471710050738334728385501115273875779296534454502379598884727506615302472865864212404380163578805891924448583364604131527670608886434322900800396641542272606106929020517057183293951610247221636920203365809906262714930853407172916239546477788389216668605153167318288629842669584553015685685399227694316514192518944237011633340733307485972436155840879767762961283136050634409481034663757852621335911847439492942712708736884223916575881305237580850261641067734468443726577620520594860775503871526515603989144903474765815669455512028193681705986167158071904272223101116891377995267808701480857585320506689557345756571062205557531207253553240140327528062550522365384006332264251488361193589007381626896340994461662487846670890121306643339967550307293588623819569613723720614085326166036649422902616624258056991794020735511527524580255210853588792952845040547095226001511238477003779773858476350897270627169041051323088316793144102308232267460011314116127791946204067675637657082568451050709097975199594232977065992813321654610580727982856871473786623140941227442652333333301803231073804473819596602907891526349659665681402503893917882349657747208350969984289137675048754616422171172456008168134986095933372416056720893760801235137403803666139031446793018897126732482953833930143058096136660676640905570267837291602735418654090196200450709850025139580533959123379961926695888796741522455273316790595138445155817887559880738661245842328163258909094324278270443938111006760383439903954478593688472182809654286410868498395173425774375771602529283688954455101053447287881456317826770544758326684447024293281589915690400889607455511011395398232006729214565637512324525835358023806160322683228350449191453042517839279809560788335439603882158299666245625550326616575785417916809179347651974707777369262371879490695286054251337069717248420876838905359711929012252787461985141497914242990306721743631265524406694402715698692206772394661606529748396137931642159068212240157839010514068020315876933919482824989881623706670203127522639240460047194627721364870760914514681357406138067953885455174356205958469548504129682813000583044454013570100107429748638371059370917461019050397534011633343837271323114345420072131157948760681457667596962528705189150276481772158705042554380227779797545106524155988429575980821223605680584203383724894515136439571442508986977655503019998452553378599372582236819939881619711189153313232329497957594074015741781611743137998166496556914675588494413018739827434541329947439451652455173062728527043511361631092803265760394979273739973812315595262227889367752936920954158850976045465093955722782682871763712559109184211368973521579271155521755430182844057318297339357411457218783042674956169054443045746434040017441292217490140183532651213481801792232600932105926969008923747048891668493645274385258616297581199252917613470743455679057665206075259241085689907504562724671777565801449040532279096744461877879899636678261245337353863947350640604425296642472603847876086462458927509403550116897418226007357546604877062881965432236920430854635013383717976450209625336243430193069410309946023139403838818462610866104553400383047832415491747526096963003721294272034811971458818973693558074382579517651821454314367383107287393639690339808796878620740450991676354758444709005013018208475364433727688668999240110957368015924943208487632647369057456592744444578267504832132883106281507536824966514271935904400207089248377889362860056534967409193182603343272380708442311128163273582381033758511127493714947459644965414418074015973979271329942745108863508582109076510442805553288458834903460274366741307759654174080970367348049844025502868743618672178335483232086541989996135140938529449763384514123743830367383622747212177627252499925408933517970569178793254920513662286391644060861220403586206994495380809075173996358053528953932939177869624627074654572215538151598012623547973951066737947935838855126527902765979115368981702895688553599091693158177801031328651250209260360996896624515397122979720785407115981086869659636220749147158161375667588787493718375949239082526651581734545337281520245535980928389731705456511581371617129016634290470613593103900320565685228642254396493327839326458803210308197693686596122352782011645064570299101121940024598524687048307336923472884303166647209834905663012074108417384134156996377548521753380856840335111825209127312882871753658857911488934328111007569870625921983641830403069117359892916271746287052133695460131351645307255124216396306975130288067557720983333355343832411520270139380426438942186166986734507754058110173078531002572918243180267413493701125252936778408214358115195992391327639289803912210311951326144345758919482028036137532176226856095029790552613766569775327776241250332214685987437962961809592520030551157542165504209264680158153790497250393197010808115257318053346814887346538946643644336557265187320409694722682624473945978702706597424896514714780978038038496813231478823149261841616374700709860511528484533009856600803409690553636070719434454419327681637114654249117407185449307609918007145927244865823931639184061283110132577981614240918762740891732308830017916172581995817591367925159451744474338065260303232275793180635097686648185106624894053729174248917090320765253477201670801002665354580490843654614455594914345210422250708117441529300985228548862521347708242109133247188613729878476008810841840815112682555187460095735723993598624886660513853721776085873624213123856070226421053650482798564071172246364150586962666229723953958587576205229259040160298732909183736327466586389039292630838977382094541959360495269578305123023487999331380692689820003779403000068062511941480830416245458853380696694554261962623456026913180487877160355183881732584655558971247882319594432348589901622712444186395652052185395420828551483789061685113080534237949693684096252278654616959437697208564653840298304044830024944593057279362171139369452239610485700219618281788346354291199899478744834684445301399119470520202024073581397168917719882678301484164253031871558715892460476407842066070965462024065680788005156327157993138647424035145974993487351427360841912461141004291721974108281162424880124317668703575919723102670027828087696535340082780391668885259929290694223978804928350968159989101299281557371679754404465315852981313201135805225252908512440572458312433842757977427299689898633859664966497414298714010590757377425109126041044977373830150973227163939003293981026879677122137681060894622338457865029695646358187013346230747674413037563769743133408223844903650505141799633031494205298616494803800515067438192429287927740859668985752187094072780500484899475921369109014829957308244072611125881903309623900708346318258023665147186148418418926264946841976409824779627717657726768098851264268181412496559628928934727965067911544852433207281284360419969512692830931852419309461346383081257817293088177492454971818457377358996667481337811229763292517854329749051139584217646216515084231391435659553659732898832266197697734909956706237970079023567612132669726534780947680233431270870230490520248242750049486478126892054589299278140469744547410534524738421472294305032376021333635500533239991865102769787441230181455189226224919871537672652634667262048065710996384497733364570499196243246161536776353220242723909688155134230012326045369577707645278044620487954035432040001696267407236949811268446209976636507375956236699155626523093682774381618522221356383011710261211229741447315705240732291830558221397282541286585388347467372431355769546489336749665830142867063654205793136586158220118170717248219715143914547106680443804025178090908554493554054131774352208171255237928030975651306804525029895365654537771800029013142532369732786041450936834191010073886240326281164786271018730197477387669359200730127252468757989994218283655925395436469114604725718156220947034369373656785468688072070740600936256473429917996934196008754939711287357263616735277987236580818925567354839075094030025889274718451875341622667766934327866612482794083897326892594095698199609122397855824857766554521306516212634766842099221125469888015062665402445265697871494044557774231515871840131155628848603825672590648358110964403707015365975343264776333276221438140672746981523456902638843099102718075084021541622004991699622843975801674133236726349926443371626193341959767684926724212966702870874065545269876132547545045872274793555251815049814846099611952101925833031274032452738285757586523764116985781406736766864108466506165996783617661221192379083978731399540688372418517998178544764190473594981651402788815068483494707675874716079896802535314724859617084918575838990720922930161942083704943025118432312461066832085395160505174210892077630759574809311242778716919671984870247565019155647171092859180161715650072779646286278393480482626135296889382223783492454737387192374487497500121982099659240149562950905641858785405588084034707310297133732113369317474652029446755960277114305370624945247556406280995671112740444465572317699274774573872072371719812089945432884006543026902676571653759479126553037529813167112179786138348677327705022231706211643177780334583845316766113583142822440442700397006538578641312771212844098596396372239216705524611431204800310836386235264399586999893922807836653943193923389990628033742697081284370288429566905704932924628074485093142468245494144969727973233191333176561667637735084212995276372550576471480835007206313894433371886504953648366389046987579289847282103249294312422497798151353920017338003896462545297509781078637856993483692937689088769435274178916709945662254629759017381971031506307952279792946320451787437333066833761633925945774134402493701155764818513752339477689939419063221345123762976590819823680832173882735748221486752050817369941749537502211500623125283153649296936213842879256327688694416645791100841556980955790605268119307306694434246162697351035601127095259322402359190659432343471173612135068773799326348603678040644860918599659920784092338796480503939454086594490543261529958736125789171964115142879148130279027390521107025946854296215287523310260378697938710908373737030710956985676794860603789352219066882251773627738052003164874601774122947805330548758632248073963459756976315040734387497374890789198988133639025523537130066923642389303074117997538623310887873971244151711523410619039745910653702784052865760782691540816148382991480319064587617984269693372693717998567450267365586516221735896369548759850013588177060728850688084810566668711381454446939335020641256801359908838105651477558233857937711091903738093266594209771437369110116103788070372193800750146199521324216433099616695174304286710554104099405438868687183802661407019985055652144755164601277579766036521986789939591424655387918421951062515368645284345072658618660913364730649803958135805026875824694012748620724310107388880046902517435587209567097872969663011805925540527187661565276241798670279398307172294466119191832794049819766340760667572713154939925242478298023934509258549405417760949738449156881076549403596997048669829287659518278930631573648853333465227262321635828670333216286091904602573144637406157354316166419304371535005991238747415940370357646787354085753169577200020573539879665714720501037531574685868082125147253281327433215300712938987416873462910350747997294582997872541401639646822723503687168655348221359249583786224229646997580014140005731061461407237193811092753780588271679590395529934728793337640673342728499983890197086944418888971070664957191899621501049605172984502201878497649333361467662184443861473931267678247138902052290764327155478639746429060590034468904134902118791490760261239298621636764268256228958139513708561564707541927807188159995476854429703071562765666805308297818901613732032662712366802613196751044969373616922958366625207345347093161440182308148777069830307248227514472956344159165331610611370358533405965859622172375607733403078133383905069024266205781845476245352344509705489660231955605589898959090515106359475913347845782556460793863016674897336509237526986206465958816881725777307323001440293349648655047445592188264874497618429011796336275704205331715224330652487309603796608562709096479605876822257071567447072261939801816538841218771631631714893219349321989153705332302884202523392936030576515613819422118339955960372572374825803554698471567696165647248065844776802505955476047128653431371447788360340511166871520228416344640031416558034965095214779486534247996044720254354837931077093941367462805980504856277529235334866787193715048125035472405637145088924354853358578247359374213723257794500877899900220376437538708570286190969430123118853386202572565208708098092185255204950793040934535610522674570883875737177109743962661371650970343310478511244474038793485664557046792464340380832358371934506914441348440973649788769257906545600749796584561933811435117884082858865158310968583685687354428572088047938223034248149113628495706829841443217652333857448594835759978055765730837940495688904491647084237325292724722560290204841195316464709325757752767859134673702775927118822949053314502746386829424203724079863374802095103557346287989351439899308138947581141413484128283581276012985865302945913031482295556487841316075087044461576460590239221918697718491721525328575589108840218084867583655772899403843105032806873931281613769374811949609293673636499322357215090977579979401411874778716284834676244157204796993133921726073603045480171773972049925857585132967137652901515065050044044105626753975022049789437798093533419534944902845470900428305303559567157157071817587408364639015207834931012462090199437293557532542113981411180652519913641104552739883751934975295257880560075886028280940309269550040099045199488742677662718689596346824948537140276389085676125684768674570690234996205602872089360062942032172504428798001730545692161929276187988318264163440095180303814895551435952363278180844153887284267754513018931230580699011582534735107961680962751729703360714106918547913729717638077225290547628659999447585630087235221152756223526343049633569016638098857280651853348725935924422047846334528924086658666447811883237181559009512820244639680835516010948241695994615776668627726134417947579414635932629348531812235759620100133625114971201677974003976823067356008841375914119474104358328605909812718343187169077145595332183415576080546821832600945275958735821480713093686453351943700137371236073152180703522418779780852322818043766359283860858602912370857580399141715360721184560105835963726286202006629769451491308054920923874491384155176597199232997802183078264979976818472285725877427856214655394394045822971788496742926461297860483772522275327503744645933773863555145886240670864959948073642109515801000113434572966568652241775067147806286078947188726344653827108791982016011184373453920816560514641884144381671741740492484670181575104825692022742897393281097643441101199042890539138269163875007731911803334764293853020430139706676690656289388617242889025267292425716962457040336669210286884131526040940312328361825289184599765011447660243164758958507185022278687808012836112317113027014265469804153824344730612243005459897458045988938357606851060704123814568517904617923720524037732679721524648037504536389053277729280081500389506841534416035372814814193218583374317026508730171916681701286139590173868780205312586908898335952481246355676315555339103763546740201111636638653145718519986663866306555687446069304154419571117035509563422419556826064361702705969314162396386422738638090773149721646127011508237454352031946644586424286087186063452165986842431648486735890561037391993893586356768815564822287058968801810150382080712660740512400671710385967547926699303828793371744761043816014062758988329291021545154801552794247622074974312355353300941120496678502630061282917982665000140607627398039471681106687359872541896199264718425031839415633789210800463239391326014835746944271095956143718235573321168349915563448232450556592420919970235460444188847976732457098116625631159175675843473286998285838366457024368551461584047104930635585811122776133455854948671315550548578006174836019042054088146796474644652353574442782280149953553712203244996540092136621644165794689321437947604950344422116514571968705425863615027302832245735654848840031730901760043892579159643204143533103422834941162709531507965623679225712784026229022598872645259200282426443628493271229372622899246980066931840808992382499247464485332513851190292937244273330214952424669072903667964172361354065832531899313472356474174211103223190521674131058364979717728783990114907345627242280380785365213190449904677642924050876728010260030962097273003301284593468330126255216576663578243103530682075109419093964116222748139589900526684245438025622918534314248115368616541886918591560060558214327726753367230052173016707153156432032932508307303456939073645422021626150679056219140468984916151918073187838974329351603040445617664579378148583988709631156674372343096607390010305612623503470057047493962804805373346960176164266498241202343413646404137853512064351719990234890050900731082197471627743512823514952193054178526464976602501789813418684118666869583959068016859446461118036207179305188022146682263701187630665698303018526561168618851942779828190479388702456285193141402847310905626608139442141442113891519148017550080128535018018622709036511528144382101323830406619213284595970982824381650925850441460735934055736670321349127132167479494424620427547733236081529918421179928093074322874195683468054210310429733099613981874734876405183098125350494937991404988927830272422004598090092740277522537267541904992572486731524646821250858080073613616392288355809130118056322985093911780643012851610120124915019086445847951736133044626735353619108108903615984301687270620895331057301783553912314823761440623817572257508959870651958974277604418438039389860099319822192002147143831711777042643568277099167377768728954565964840317657984875669972737266040692247352608121309486619764634889946225232170215269734125895704007509790714667147387168329380575246816349762995186573335173276195087528833566753435839150908148204816064136657518619075619183123127202283960209675109422240054784264608489719533446267964722878368054548770699953844652956125632607574037391985484608580508443161209484964011176298830132015298612832926316148347636341880719284641935157500814747757448908007229171483221477444677630779874393638434504837224902104541815249934274062307790918872443073748733348704078905868953332430511871248138961808192308967889828501968566386851591394836615204180033427300052062561616836301033243055417174066475148259351671698432167594083005596053972582175580090876371093739861116610734305220354660949564632401015479009931214538122166665456720285975223346719965190602164124269625082194650028929704987656544437290567933939353583734761089457824063515611306786449747317946951412401550408074576863783955608921274346215671499433313252078582105545619587101357190429252126982281238304185679031769873867199752558385990873866543951581079306177185770509778512045221364912338336530692295538979124440899563492668476735498323830364894556997010311874981882927395301278767346487783954691079429608555833469581379462282040494998806365292616109933200212211705276808781639889080361842740229161060582647226346804331198424896283900159262689553551146163497115475051653023326923394661184992058067998543063819839658893856268639177583873199761192959066258652194303549213114858124764037958483881570547876647431870836995352260868857521361842924766600118143582334313318655880055181265060219364630113223614524457323729486786554672956701470614880392208550937169011993584219422727826664432689864834981234523381052738982495168156729103952459263293073565075977462809998611911434461673234725112976270744194745862736492122655570781246787298623462203776686756301541714845735297862392151185499848964834051139715367517683020346813846340055211370606915655721215109701829820176832053374926382246900030805420761317269542895502394269774718768368931293751134200049085821428765431388962094681626072042527215004570575764342551850446737514732034738631370329293246388941286244346245443248447857478262501497473632804128440179848032255881587721429693688076897102820511553658292323282268507601902093275784552936011821065568194151025065463610895695655109791761721241813472246269875095830392046782414549927847183624636505424020348907925748511408515270930798960565555485024221943645652091746520879539579073027960888209970918977107167769301335769078809037584755354113598532531192383179453983136369347999410580969307197918731747301989080092092343087156607725225531353159602500170980036198163898470696878733684324931298154754167052549077537010157615101756619500303266771591146607449542502722621160788040892653389218720097826135880996151416808075534423383418065489279081418512439952437492912846427893925373437602643564956636714967422871510812755565214896331604448293042356032135736955762636851128922017166487463514061082203727652923014308390824491774872921786516231454431945715681004402008415366982408422333730535287445637690208901229921824337863237278291777925909166291348923380653063143457910380345825290129780435687547263773514115823112025799271327625629635769325822751225605879705036058029613116188589652971202674400680921670324668361291751234971000391193418150509011000376401957174780761893284634461202758727275538728120658962449614389407366398956367247458069525320028807589944798093044085005661164775118015841326988558281241832864796166249467632089181292010027743362759359296339301947150488089378257097957941380632883538020480679720800704523055221438557098097648557978090181147758844549975809722098176911823198635596851478041034166710441994176194123366521335750120169177662162851458049710613892637653840290351911073031381817236803366862314156390157222679146108804688521729048948202225596826985521809086492972943221746163596157891227979115297937884196839340504814340030769458529644713362765334255173393115248920976633850484614420874562893342580659468275248189570374053153061009214096688591517629375322630803365262684094084311333568697890780678579724201223965078308216806329589259737165428442736473316262537567498608302380507463424675122364363721367442893461906597664956914356386032869300153323860421035488638969455464754821734634645330108916596058685580863337553845804075634375742204480455942295426572011256686601637286784738952688665328706342984464119174764025268097148717748813577205393390125889324055730887260118476493731183803781945202310689694493775262835963873119061082308536825204384751305373973886949769394235428881373827457258581954670833254514196730789351224920438195869401524637212517845222110231371973397771754934659556978048245747673631411443032788660766776688027207919106607720598899562438904491967049229096319456307716716058730852762987535347107306228553608836417549745365251600470336780257907006239732810247138493787638968159081796543526798827910097922275253281290043747818098397106229306885234646103098822367217914134669113250017868872103227963305695280934508973526421083207374654389442702048799339207203058999803655502436112811107361975949335289188644991510576389122919654155648235423172778003307395830360379684281633532553420998283576880503523300117745169583360464939092182307476846182831146983095242473918746172142026798363913641637499815849410077349098564788467467676843304052661723081680801205731413253538738420066734852971428436760775253710733035965049050315822120485161319938910785260300590239394444341382266826252021508795704712071881241899208351048841218701285068513029500656966566990523851673975504301148201213601245851737829344491391696386562070208893795735960651024010747178626484606927234341156021960580163853954596820189190498223446756484554561194241749698324631699314737307006598104232834939182191713220473378721788612395053025815893832992900816633897623649356627862236207209157811548177469394488891604581499838824373712866089703024935884920106116137964279684435108057023820493029293868914255784908476317763960747763317556040831197953441806704157135218452775570438205035875393268725357886237806015840323294498403929798315499937700066713797463168005681361871689664519806620929490675181519590210256170181788527923899686318503827945693754819600454967240768811775634865047929658876356942805355261370613940277518060299873390137649937046068088645981908809894635763881731421916718491906746921000487876102183812679714020069472047141325135238059329467165173883968824915721703174058123179515830479944291129444247010266710284884848877261493572932346923139416280624654251901066204807205454006472899243704461679507198954016099229580175174464457263585158826699156681698845887327294433482414709862045409397086738685233664315513333591789326132718454071979996857725349684646864645658015581181047170401826188416263596983414393696465800397487403013471244855553918871447022105811275793745716676009073565814175556645092328494818078468264558191363025666304684266096020140238692018450349092910234685045677989000374179785443179744360215129736088448296117880553118018871492941879025513955260980181359960657660659175907725615760228914674197452479969761030250689998440996916314825545533343559682600282976818926387804875910777210293845399116218371443870809879694103334511127571246562738541140965001280482115587383437757965670886460689166201644947766474916434610366638752612130801709364339061311895818094385221279445226141270166364106467731214859221028590642370652815608763892080334706305964838837883211717844710591857908161580124734616496863132315375204815765108006759803705007080156825262534432580164058362770894664205908767585329062815654121706603904816371641822732779498206728577359428404960322740518357285215294964969977045318519966773458600736402535606356855330444110890991114055063217973325418485331728215684641661491948660504147250980420113939390962511423628406298704655137259118740790770596431396389710031460019017438492938491137323382825820556161931630631977338446028908134223010245097767021398703806857472758324377499012365386530769297915651633345838774898530119725027883198815233499248026191487545028124188680441511771393714549074411738140932334483871508775339050267377970365014461865320213000497186666523243532452314197513761668134916355401878575442596778701570508640455713631042779165777373477638401541666548881741842920367066582109328771840765486746153466263025737034779885427347190630707030810249547419531639545085254683913896591796533468394280920058153808512613060205810245421816484808048974133751735360722991140660533760583207173701251562793221008486938130080617137685686784074101874343315730611356630958205862327821416759451257977492473614206682603930989410763197115130771595678376089863829035119438227875375754002791733015632873338896191407260039956728710844424095325015079173488066203029444602757294123839790182778275521223698389298426389938805803972560707922882496120167852783044322648578151977968473180721690808107779222858002200805749146737353075574113641218623327307025736991458014457748382310801906032982010808309571977484157165296794447263431279933790057162647736609862528785563100816475237866471998896265946983750768518386058010117813314359370538368040034467058125123632407795219102516569838436085249261723326983631353889074364959944877192303661323414205566736183909542373301301869248070518196140178915976812219071981081992003319919277557235612389392331743529507024817638199626383405379307814319068519875616469517815770075745917782979482834887091677809588307827846559412633829783484289726286008069363303844477214392545172676959614775011577557965810027363450240415679461522636995071264481763953389755307770638492230859916421135472064902854943957669768441831494252148944524548326947890902939121710349162684401348883349051633002379078047196456974300210820988846167150359541461853195272318433902522651691814053221823276853638871494931055037950669646708151768281956104873423383416368098905398937932532018346034733222306766735541934085048062741459662703635210291718384501978906702830225352720197061044251459349937368496542046662056887752890606654349525205138175133214511826310705369185299278582160588486388967848842337727213188714312765525081813946906120913260205309108769264880929514451505005470525618217923554783657015753936051234752305229049990309344014970439234875621868020613202776138354318031199714718768887368075680810731780853696487600528309624257319532813163033680393435071650414521153239808709845904512770057304048883883669112719679116519218379008318244355875209167018624802088593613232386537357770764300727939434198032827286235258009252756284133005596378670046801869582844855259308094822749073229571192160540017146839552975111247832647670199105818825540300666338699983617821651337028866555832707518393497239774007470718050211528397644207906596486630944118315715184460843347562084818780261102140284713183342588806503315102256899555659052566823043180069964479760422057590181106462072772624619987277498798421251552152759830293755767500453151610360002277965465568393736982081141834081029040287752869838762966351719389224621291359670807484960491351147153577036643994715188048293600137982954407487388296753191880014758864570139091547376066303182560473132064348778143144907204825850251250696916944288004970093599367638923054899823125428507185942884388917773214437530124714002930263033443533314009655983109182031603037297841618535717086660081079252708938225780705661173427443257928738866054166513212542717889265914506881744925094626668371232589434112801055015753576951082227444520196423659837332715302161110063860495856080431578806410376631505194177398844891512998296807940959589631091756280705940584867628355239582037947986990664741367465415000868230573116988444987338985651152237029377758127727157658444807098119598621455791226333827200686324562546489704408362789543683066834021998597598902951361200119700299527887721852952380616191659313298820207495040108521651426355004938900872146953452958111231582572392239699190410186565963213831862843362758402101290907213689563712296893934921028137174261959349706453238980706251195606521959326307552603346298005603160956352043525617590072580076628443421847886771503313819330679980328932952219934654277171067581028350499956165781544720810160478446230068651959067182218167529322982994683376484559528044147980811393485449292846456324729044239764219733705294796352022564116355203554122782442460676837538292014719534072711800168118924519375988737964964548905264954727412202280239411782375697570285053739812565995304654006063939727381170477845958942349491076667493256664244885329954123121810680452680871683811511138783944704535351957205648425557078035861008243215183902270327092492734277230323412857570496557126714760262885800687030016787868174207660677664906011612397206304947492920559598330151228645523145973165508030683607955198491701892234514956248683025951423663617641914870723081119659180606939486257575373375005798934162181609577677055541905957015633287065972861049866291293912927041473446978938328019479402561772160832453981123504852740871202981783664433222068341361295847402716134626509206562083498624839155729971818218765791438611935588080004776945568731607850542397215129347528843528361694858093960121987770946125262769809850185980203811035386353066343426042904219055088713055032619161555660710005607859720076337475446518291065992518027102495722966873538415748446049634614017291394228214856798863202316334504607523322803829766805310153509247016404231693240020903283629403546667661617756958866998105608380355356713668730893416328459620357099234800614934409779514612319208265409799850592920241396060175246346061395454966940593168192249804493232493738091726224283573966395334727174129038118586792979921938358454023245191651703186803872658125715774807789773769063508945461569568115775876351567364676218751873043824831478141008363021562489753302484806291441934072278395402254557383756433499692824545765317802903859471395374970307867152578850183173683076307727344070133114572429005349678614610418433032063712317910561600878724013079951634411873033433079177817433971578964539531331377497050130266860729207047625617688344201241102565480981656870875447813701478630549949188684431190283865223991699587949784387938682516858913881961234666962431581543478140500928868968825540987887079719917298171685854113102608892410709886721393500442893351091101518311344225712357846200503355375556330258294814013641496911935929055880562770920466605983015080216451205868256878891171380337043256448458072151691638573838824789170589958826818313797380769923056208597918166588566190569976809407687522529581494192601533875350529714345527008088243007417210321060292578632149476300129039997482498051722367755640087870588764011865722179004911206942750527499800634787484958110029063772669311886725896032582644205986656221738718662633272818965050069690862767339572398461458093086210046822667142310193327681156356445445449933669875585577577267452397843310515913313587470615550157712575944523517484436568413779266221020835597853741665515678768520202377353573943139992526396336267909204327756250344051829743724697492710892515929989287376442454580058793594584915066231220146307915269756062417333725956068357951498293416777533496272536380353034624398301818803507703803596758437951916075940039464180935812467895717542444392949126920189383386734343818560931293126370259047012655697735573527902159455266266883009418417435710581555066459371149216807671245563565125149443044620795921828491008466728127205561264813952607872802170089665016982268680480926106662533111943955775171221187106685678008712466440253745770982371357463302101332486305970044341021866311848549473350584602082727122433650121400896824662864052346120483527274147366392732694899635945386030759153384548729482675277684041748295541092892293637797698245358573842488478702332718973537750668048599339334176617533067325310379188838845368414214470487290839064413032216421145228452742877097865983073070173843953683592069158268579575320097098413013016638403271342104505700248724072896970601682945593599966866111816887574323089769389011394618107257019778860401243955932774173274238704492664660724156477253414587888165079439954528178372734761385033080535901113712547673189746571822607740547536228714284213535889025638224905932296512972925849380592592628626025858887807089590240477783008131221487042861934776465921272115446457123634929271286891019687544172387777058371436322070680217085259975096421564846219670583397717062097790247598811891657526508957590672515376508064313674870404403966444913116128673680885017963011212278219709405169697705615773794932569314506894126487098495201751710644172611821089666579627173900472990806311507073239564136064731680487156270653532379031433253515747166542762631770463879024577072943323633358317534464129088213181729197010307646612839947845337861835222577212092168482894598840753276457187279950866402579307746456511645182180972604638300551118088878758107117256480485117494438049957529474202349064924123923784226395361426221755540722407129213334841017955303463369484850603155507330081363120463798256736019279826679044476779358944989711603536703672662129051537253902506478525290616521835016621927535549557617795994583696931525905418832388541123867501273609194896043155078847444250715242267462071769136003902402230247344895889579409151126335032572211334837262078886788017729032781435501347410795444613893021100280650380081687371718240749064768083396063688103288071030458608483240682353847171625693124407841838170761439229000177975781458221161029782250122215454579656321068596260966202952869799277345129981671375693541460361241870999770309023584136272721337229151169325505622967198754931390872897447041103102492343082476899073990084462099822100020959460844974601329194417592547957974510437688843439619967004776200498975176187756732041962311252245166891830264751618656408067894953926420470125703155437152504621912519618000666707386716622011451484950786256373475678467020326087846699284557472771080778589659933679191701362277774527102177259853035441366317466062858719600105266513637111988468759717071422205232212788851970989764530392513458463694357935856862499088630689719769606595314318587130497576504220703958639457100291779499077606447804011688601852117358144616528794269784621028425660291830336553871694123195896532253997785651287494179730590242300967488037623995401511568930908278844166593455610567696347917801520351063346704493740033202226955688617047040073753855491356527516229757971430012766147456610547229694591445363401957353540578668383301475212935648536497186948998642909570566255661843921980137678911590217130256209010310188201487523028633793254635533232643968733591731966513676368750993228427331831816858576637827124959935855824125081828790354630198713326325370479545668451866354461089084201861147574630712215082162131400087939973264405980651596791429233018951721428528095026965999070527879400832565529235965553829855798329056669780966349360250847204039228003621855972496303179141749658511298912299332867489223959305068774476739833536086621138747736309413977309516258510182280818636403694239483626569117795558414855156254229264046201541304558007934689972459633270406030191957546844281957997652987566758655223167513025383426388092867967289884330657742878266095568868041617863993758745571003417735612651272992274574846936788991765289225816507997132084635304400279835290228161298743250308892672851964753968808780777661038618881612127989522028998366605048253481572621506708790712687343496610753712237851317695775779965303892195170350144445415866625536032999159161659961158507199789645998884090154713560296259858770672114113064266474342966916954299450488522663712483704597449878120542191034493592361651490809820648794774264525371128918685669378672923365906599845180659773520405358295334353716970508261891176941382935815587745086347167284265219992524309346695225397521412931806579045708506188884498910152776326310315511687258447714305656751329244159322670331147812982750739390981413599752199759334380938269438706914712940746100047095341044001471357807970595094314544568561650770594617272692108355293338685428313677096571662484098025119907114297045773662733376192252746477404449962430268417631613864545484818063148202369161612635459062283619409098349005539750283853359813880152325040016685758574766955048045768687717637597631127213199140815078796340995212929671982649150893582397372435101446738471570950406012484414419963490634263465044948127482143400534295889967445110585858423204134930174503596718964343048994043028073214921875755680875337542828439686562742403697698624395828851652505587851448795065673252859157891515584656269545761493994474044108207076343261929013956810418785318006437140907625743665229228955727732199921081759329092133494750895422704326317961116033490038170018264171503837302866785251901630716840436684409584916020547881857271288687794600251279084368893271218641513317713983279051784365317937523123420387821821179796582074694217923586942551204836682762448825773573395602011620303124218235545870636253418009704844466757622845450138137385960535057507205050547257944477594554188452210847122287226414352381061160108434073374822220596624955719428659237231051644204135800450482197894956799270274656833645087315137759089051408460511242402968911569529677883543595696522605334649876143163773230265003197078846603883027375843266744157992763087954030924474107756508429698062711591450751538734479214465400234392877704235056196213687733032048707968062635073026282406509260395921948634439375592824804770370647015273065706444767702959189147743201649766612127371315940760524079098502870414647580213006439646629606447462693046907433988378910895514472789696228719907933066647369273437829918485756702248364577065043056529023331802898160018467475487106040147045382009344112330809859737462193934562967780226139385881905058149309956581244318765876661093419876650912884282622451593681461594235885024693136340795050466107340534856491350902625680263106118839358127745845723311318426089305049579109834510864907220220970420336618594951458407611754986423534932371840153813547965260876456256460452020837119527806213980543236601834648177726092742493312947931459371756991241228435775263425205458416628897146609017173295743413331156798191747627748266622588615447287327901493970103501032284288421667266991508798448834607205074378699398318379435877503020624314178849252962339956374916202302446273940857421820386470066013111691435652056071891477058010381554761983195285655008191200517469271463043223008455327798887272351286680272635502921733066404577447936005709101127144681853047386601143956817098664580713229716473500758500738049185385755836250351348224377204184260660271776377516543665815133385740615778280985158892291221993107712721532469249306524729279785642524800145001843534317676388109537569961936215043125832077687578595777935275800065125542685714316349323322483182551684826081718450928686554617047596484773167344347739711601781368228959884044644186308257059574691289746153209581083891291186664597493105521646006375620798498753628352405721209121499724693069197812829847243308963859914121338187620972966443262443609548835034984237539081480940236366461883403958288049800540023583844500126657422699660307539632738693814184928269586927553734544437037383560631817936721585061920357747755735657212360046306885875118841574408666556591641947550378401280178550061625821792575760571079553230615889216453853188413064977127591186351219699920091271567314065546128156660542613226430956750274449492133875351552567356761609056035168903091875308672095787678424098903702325049829011559118403442336372143231170720070543540539007844218523554402872931922802244775288439465372890399924149152880623556720233459776032535500305110726860729159463234727324726973326938562362343928408099530496412291843775021083970311827660312046763853798039643957186172782170708164764979285539552237093813429891766633555270473954466220655781497821839794206635707391360390732329715413192629381359036376920487297360298719241276351790587210399713468001225145027311392155571326669613497880354015063701692520230469401225990355949865482060061641191636164213123455558780299514912200807545138801009894951279286802702808040357415273364052139056570136014066045290528962099218791831190208748112740153200986164114259365363842160263847719202309954573624897914057033794199251958473756625253546111143831384896389765851907444876318064398466842627541730138560143510080748455267832651350655069017070870668025737802091896057250872924727994436111619167426721645728501235162201207056355207974399820846841932231164208089290088989259486005127088339857453215931354233247854663348871641428911169591551039840278538156329767073515998181713037769416905402785686860936464575400103702200748493579374382539817159330538020187262847572327499864644458263425648611545470820217359227722803989911303885380838037548815130276734360909166393836563299696545435125062493001949624837493175104939788741627470010660788836819750293839231360006067505822187368672093470953559929168048550050117935327523447118967634406523949659881668875292400103384887881835348658215801579255422568111628265781699939971507159247531487767917006801589875098949127184434221669447390491570063673209995980490454565934944495641966982313273199678239384962279089294500225440217443197312146912069154216162255748192349802075938105009581049314455743295355638361138364062073909919781457339674346257300521315174229702434251241466348760840338681070810726646300527324931750421160652405492604336647193822276829651715273390000458659794796212829414834593686135129512346433869022590757607863921430472809706681445507467263499901160038883053262611200983365359613434444885250333420762941002172330071902972093986378909604117548844229096953678189240918231461868631434339387559369560825370447530567043254867525222307607690177908692301356554085381018247814954011200359962672880032626294359040652567632255928271396462472079308200506694128254855505599583910539079397284779777692239157579990625242929510577637521902042251786744513440852514288310489122083776153649076118884489163240400233297111883816946142227740936253879238853547653452937177411564107592514663245870216215112313575399902833144013451848113663033103358281945479075712728514135394143278714196263081375992162892153764643449849645285206050063153477415608483784054222820339727019281480458817077323528056059651593416078611072571410555208022318836362951784836656008317672136347726307863286166113871164695935777883943153357419929765077095369675810416022734606551100795890209485552982651861889258076694259650316995271011090054487057231038066300233484954610256625233238806603751558167557850926295278000444616583927259678650398077661833984745176630842126027081568874278415109781027396300799642958135035594745039005310859942443789259312019015659092383305466689930793589681024642959683987277855470530765041997081877571165315975279407287744825312156619182048623170565868451355980777213319938466784443191708180778698908321534037847326218719608871967454601558007557418802127587924122464273531413076306117251769393233782648407194328284992535615981629747909214037972571713360831716593976279194083002415455668008346885260795708269592467461342783025564987234109893504237390656987637823836524230196070392081929655410861033077300194651344908269079290661678672200512936061408374639854157493812899118254191837372479589568422547221966816818678497283702168312723655562176324492057487871413147437457855003808511216492215289276473168209567072518934052164294750072135250803122835753645173249248349342043981096732719084812133559808168155661738874205609624675254832475274697561524680339674506834906701447690166846576424133182168477252729903378633549751172669072028119248574489915214643421527191658860065078043355728306549562703036933568232319695436215630314778502571153038271704848144408004264195798620660213783101625921666290269802829336206676833052887126143113623274240939175951798829613863207158203993221688998045338574784562378671566279419859935789593097894908798258853135466300972228199265250672957821260435726270522838007699136384584633135988773282407604549991721210763946848312015756307754319610016867725142500968651186350999012962408584979493829857554488429044593087569857599539222187749456064733819880560934362230590824708941632281715202755550907973343487428501672265868293784417624986038830300736330401550702705031266510256717243977006703313199252659490718683553027071696889469425000448013815856007135088275198907520908521947943070682027142125096274897883105863555649050617324290917540107281265219415562607321963545393307821655356571328892082485681642407087087502464150438432605602871866898328938358601858061939111857019484057659332368512701147840997523821910355721862837226325647606826726543984723572996555461195552226630484403594711087952325490734168865449124886564589791842679982400790888541235607117666654962431078067704164532074848874373367040538842479808846811538022945385156875519606858783805159461463551413090033371771322888650603296093866955864441788941613486997107616042470922654985825967288797631260352751888813378040307557362826600402038009547602757682125662121380870051025383264023285125476144255085571758798664311353149698431928258071590660148402276320472303358131219825860113809443392244662148895854377774982194760615045103632671665394846554887669927804623856911096205365055335263617010122897385206183043095881160691575716551608194529460558555107109534382109342346306805769845694352511407182112574937658450125642376412849903143779663988180835745241970075396128211625736090592411511216754122867774313706886178482716968764871842737387543032409173534403477168917142282114629870408571630421232286129835087780931402975711717264938676766957954596975736850729243221195256692963467824988447547821860271740214803385261972828939029124422881597782654572246290323341335245363417372187550542683414392835913384722891657272817400146100730883077126168647187791689412839796966673289687083252548461980427734703540782257898857395351435348327041435747025682614471505289066466709744008089679008355699290527688330164116309892064125265107763970577223888572631847514168329728235820160347743016582951423075260389723204733253769692270623498745375789074162563455309287905811035289345361509564277665188643662563004815256874833897179495664920040021510714636585090447663344586373278016872784477601927494862480308315665359764359806212240746901597625452453375688559855548988441620031600306695456452072935045225996894415964789530049760691359338015102544141206178243874207675670682718621463675285349678168948154943705912284267827239973863132003315528689472157832644322802841510834847474426697767884262331539849742401074680135273807249579172582301061250982525420731255660298532659328008424751643784380463264372421707147802577776152820948468137815284588992414956897317282567091912565289966663215426147876343317557800026054613289767251985608561142430397756270671761165309972903408751934090157208223119389560265156548216008496065701148680466969201144382623701895972067303350562832950231925106116864566572529181755993905723699099338185321889376086802523300417718067760472427044993059623902535029863991847762453692702257008206936967557004003765235250607528537621725798761393884325890151954983878266266944871982571019261030868415460328784821567006560705740324584540710203744870788589626586446209031830201263387311392849866984569678947527468943373362372019115374392901386657698335988636668614200274687222263469523645464161119237915394951465757947418253956088403584235028133440640780921835114384581831059349365942794763084047162914511483348299270518969920371462920656933787856029526601662853940623037322408559050596259947213343882500353846900272178948422139663396559282931478096990536908604130836014036555502184032450879483070205715592739825886373615589535834407997619552275885476548612692900881697750595234569544490521781964328385284902646476922517549453442141950494340269962411295332055210470058035568129699995302612029073840034772081446807025425235188129064109787113233274408062533639444122166193143295340770673061355412913048428068516951510729823396015227166885437060032455571780713764220933647847440933934292272907267233848552791331254502392949340388403329990026024991411966102805880574535566964811412438426560057310004672423780578091067845532865862599235470881127027846621986593797492549126823872849985825241019934224531954218123707811194511343925511693272511834902583058128609234468447488293908265876630827288575575369416879930190789043542062826659201468824935686316399191039068439720090578016737057152204809833109369629704297663838255957417122440110419772848081442030293139756133501563348800934408432689511403656873118340636168051170551472497901164103371766689766077836301522641441049130500689018859653703794684633343724528127515398424812671475830687485375029981549289577843491175943723626302993659594025778918381751392407060503921346670449831146250205588238729408221713986324437263295360220010159602448973239653917970548050809585981310149359122550059140357325139998542309001758397476524140104271282802003942782995728192745331123236026754699157170329784404933399884887075395682843238939216972418032797037510931497119146642220194873020296886658444358268278174078883037948822217507852206301526009695365893267855441798188357446738140860040284919772752933719200741447546515674116756282992101401267055109990076617986745442344128224237133130386592221441297888458815218745901904388297318989265125198648106232006351276883015598331852347122065112145443619220093932499552979538704435903306490047177942910236617505382948740583544389919982137748078378067136652005460939904120282482388326512901580590434856731762381614833463175607146269629030400427558932750523798429578340087375002968517213056905312590846945211321132811565799677444433028018681805621287155408858300613579169888748739468123888031532795255534158524121521951629833623686859692012850928629864150407351134485517328593000831394703394423282053427291022423888033888254302941333674315815629761974851047489636210690367891148625331852193443531610765269189335539214766950248049225255688465190936432886953581686888488077182144569884534987679811011527462077687863756352257573904763437502518900812394017213625852157673607076745402610341025021989403145743857033665266797426218568366474409200481523426387753596588639559792168662111372127928574752584388330000019507697850560810536722266558138340835204229910504806560701801863991946883989523201772480475287812821871989575106122541705943297504701787899333298710022932938187741664666016415515318824937109875599356525641827472644035860240583417988404181126596504732865660217458373961113258039651400874124531975417237508887979784472306017624820785426006473079068001806728759473559228032636162188962412939654246933273598755941903812396299408611880048747429265704467660629840086594983037058735139522530537337675982358379661830985572525974810345584874064202742017921450774891755235411289458158231616414767935313355548241631514063499795959417982387787819028524315292324570584111517873288466910175272114380914610763318849556644919177654023755042152876134652500337799568087075911711764706071281834630700091344206725912994821628988474395222429772473888383847891554704737637872341689233545521694562905246215850400800531265096125566424471142713654998512096321587413717831074660070493009791443458935394906859210172477304581921645802535190955848718226118048415193244893868438542527326303653400318216844538572356925014500548436144133027707484009058034586626087828139615333779011393017623286288597620144597567287199277551470211858270787588519180298415220864170970682767672701307142715025640150547261729433772766093828409105150747733209010864757355306518654463609372102141039277925779612121237225431417017336719553182356129334883521135795224155808959672169636563324488234388579636589654176804627958719282728190154937153213330696402398866863599056201829047463770960629715096168289114340473292216015821588334414374720931353560185707776241132402352387106450381166086322758599049337305448096260395865611390697000438387274552907160979223590484652752062257639661664134436779970295524107356099921915005080303250325088631837629745895463642642725449588215886616329278455395605496221724258560562075279981526419791254644812106234796540536639473539790483602169018798629545617504234189902215987279579039679603121933570626299909465502082917311928652105244908136810921220970101470299332784769004059016487403136792002484973823263499561729268852069053820967468867668388028961071621030234910351342271102090022263970876586299878952138846780853229365966882341427708341037482914184111960726653675100558048268074589444693868836939043686420948265389859036763840772383810321300285632080184062727923553837464001383721551248903937213298380528729397766276458972376640583402730573235857496713995742383102523439735266600350661126141766328209493463430926100582745421336690987323780436215398882002599137367015444794380456762778377682126123251119191622085182251594054095966846331672307958374958566355561398279163632188313690517967313504444992077878120903439258575230332658280163811002498467070979410003978733184698101571402334123224496602331432232389621595729700737509390270014725329785046492764335028029063313774992348168041851356083811192853581236087690116303735563221187780285719744093833673386998411558636058244514963885663760279268202941635980119553220417543540379427157281699669737663067920148329814020629702240742483086492171062015285039172459288662909545707516628158769726042002057675641911556976717861408405994805253086704891323786571505152101276866500473554401782004507497019651566297691719289904356574338283684999813514658323279852388975918180850038807050442037040713856400029909448072038142603196734305311481902573037325439869940179519649242621318391442986450849758071768697220641795517617598543074246352925687911145370388533833109018405171200614318715720791133064703409476904954853562885491456547845576755338324633702771930777401395421809562120573821969026171138525148648608314957773730685047866992876124492627540489281853077257520654063501568947715716388950594825394780348586709699058360563517379668138986064990324379953895836236620988617392694605161401366256246366118706749918435348952371881948834920116170613039961361304234784979411027568368038266754587424464741876980622804791524314293366182039140340139630189574344370391411115984880929812576210983160125706730738008494806738413924205246031473014582268439976161553293291083929141195605544974534998947513963710428572463438846537682935596919918813397598453941955524777233160924040449689683634360086286778075797205016640720475703020104482936129640185473178569359519450619360222331297205283990230481982933236130576175417961343894913311026462145028232138997177537062894001502264809243710808942758167009058970816834360995156167214476242775683293022650293704614518721427368346496947696714557248932153160430422194115046567339418461065688348101952996354861844690573987455026264332670398098276527979946249064893629121193490347610414324506874089734935668979362250480557154855359917572358725468452953829198606115218007065066035105975424978034449635325870061832737069433244093094012986867685658152243692818345669009750346295524489000588320889532398742600535724735168281767353464341343776414402977801380981813096068825786794593169062993485729392683104695450516524784330555113038364708549540277340756473690798918574430455952907464349848724929001470381610699650544190407957402850742865976236002455024600446279912239003189306404541675314260016695553118545500429381750036815931533503820718224657919355564148864318366923605731349996356200853027514362075251620532655985954125545119686283823754251117606964371225574253429830111323651743623050327538538518222596209771082833132244345998929886799231074508439729062035360543026679089989160105901053750656734864151667511752607914859603409607303032850435261461791651863629363798329357454998490187523678193653848848260277576237408800142814417908871774060177588694691396094961894039424355905489239836555245924511111080854562352203386212304277044282980782930473278445431329325437146028864509749084875956180758798312989434420424614698036963992237534807133692447977406362130104412688095802300577624307329954816862837228326132598926360375592532436539324698074247847243904787943814467977776969390419465859665207653198830680646021408696301971757422829492925814820016273309735538779153941760522915273395836491566313633241316943075242666353883809070088411165520115266768621081908831284283638959097849568505124522073460215903299044775059616674326261656006480984229618023875946841139282134244319952514142447242860286694891785573994756187343644789670236770532271000688408891970604578946661204004541209643933180603069871198995634774989411428585460375966577614352642720640524964587479945820092601052545995711908157608734201142794742056204211231981521850474978700191197262216449208400289939654220626799484797593055495126921866876778717556038916066767046566792693261972164399880121928509255571739047677482134737479368708607999947977845375705294863683888488464313831048624918061738353596227075691684738668470939858473716016125993678171854392541741563956678752752509757026032131912662982142649505458592716624053100662927334375125902213164845520321867421719812863370341089173885359344546978307061797096034143701225340696883356584418725966660147717070780098615355976046102553290266452990225243408318819854571000530939190040155561167396247431336130808476740354556505318574954268223715077875781917153804668381626501585040987449495892420614578464373320702093777575723482528624204590862077196492278671839202669156445827415651344049894768143568545116674604053591980942948352216800975963326327327891193756617293914468936400464488142840812660970247677959811206768922143464415060384734574705104729102568100573041035255344166156711205591289402432841378506547062971226578086822476797474694171192076691742703865003959877752679840483020141692776120884185493884208565028522066958006008989857969424812886947196103709634793133529404461300734015215438197768665040382243562331477533390014377859396837891869977675572066056275434329739195607156338375347902437112539048357060229173330338116058746065351723899284369489072651104019796676798643060711051824632434814282549559849132592574635128107719380948220888482608721657100571717668361344343094930716896469422207859877873085255659069555083705092648324623280949840734377948182749822226243351886976203380854689559479396687163653781656072679633277166955252435926148359479107678738328465661000216886792189995390226955103429034950725207330790183931848732851825125710624595470172887963843474873680838625300547182051763903453400184935227377254614311574765078028603324344655775907866349947868169261950361825671658271670665955282679297374482387556548576548059043303372076869993032875574071829205674757200987185013338408812791362742336923935104650046042532972342080638803164895638910635506192268029502766122001583617711161447614283965369271063275019244404601162291326796701009000855601576751006245242488180493234688502836287392904636555581592250480457928614429713703053772564685875603737087054176160631071840529409428927538337207526571622177137867003528566577216706362338527730902846375528773056456818025616114460486579448122819203313225160690993568356118402987289874902648801532715358455054971878914047849698017159543151914140304818583662219306506635058806496458019786335524366576863007724784969674171752600067896808372663588018569030268743219950403480122624714951921412320157733229926825298308294083971619505299508780574320632912799030984326968094306501942370980752864241079583429711840403371735988878387661948346909584482758723056967280940495567983619156660597309389279012655930596125601124152192951344049448062557338966303735911204265958805812629885263258889465826619387479353160947141458516649750473309387234026725619088467104090543870009347765174173766636938869148925346580710907843247012907873975736095132964719821331359775597709803781520099317369448709492241676675845062917892409723385754204527238149583304187701018444646349178835841567712244019508804596713705934136616280019038663292025690805266099162831161068553355912330038819622760949778287979595458748376762914979440593432910917252513280324979243567646917173148775802290614061906775906861057065815091046550226891505470053855079557490606518633482399570375746870778650432973680084721091349215660584172487105676700550361095665672611737801788617559898440542820818545440097291298927941033454925295826176331264668240003087369250352205846752301687772563940238189075494750175775211056489402704580350658363044469828944117927902204815889466566999341322338076657949542393142083375273679955371050532822836424894358508996663474863759344941114459163231178973192323129842260939397497665204370288814926014166629328624145376609898909332969620874398923561895632245454820960813764090523419102694282831099342341318883372659544830590220718096839526392802557699034055208619433374921608120708760819828130261577090662055172144007619786454053290576331062159962637040829277130695150108301850992196155520402872850000191526109042217506710610176525625946725890752890144910349648365671363358792096801390814406622011417290236519583617733613783499484571533705765707537001591891006871448095029664277152102854234072837118294475726410678085395267755079949376193527413225733524532243403988119123707197632884308386081217906671796431665365267364074298178974138729669353133115640180617426430366255182527973644404493165842708803445808275952805297262790678322191172057375922556661055192292090441009324396538506988888734793953217588871833632861870630112675900849626582805768526009416845074731759536522909467607070073033100148593577062982532787267913405653931093313134806118132591295456684550647284209981998943368036300035678046964344676792702461024393707243763355646918356708142814527157405146292185538918925052746519672789517729535067741215935529218469828955516630732868804061471495079672447739243424938505283373097895196555286700060217951986149089639406100027158917984806542991915835887022638400981987201416712828023026502291491215740837742482476392316606557374227510190554893102074870204965282949862452386225839407839875110832287952236770500633828610524631151646352244362101170837442565135583592695096584107485401696627394630030443961696846822604242897601878602174682735533080937966509411174981199786087477064585846231753645813174967296744410860942807528044188336067394825961261819432413922746486819394256467153014217172250951164562314709113887752631798014953096133780273805822542910387032638697756894827078827012778810553894274368501535989104411969802526323178313970892899803208756754000929281221960071328573376849976464594327182139164794200972248177545133226979443311489661550618473855678964846911583240011550402285240494844685725415322374299809652001139867190398913076855394705556991180854811731025869099749950067939076011839942219782935680607661489616327864972430809438780886923468003421300792345808328814565577823310881173390224975622133162931841568020417335401373022575612518365210958461801634740654218527316216874106536934348487366243626202632917126898431587442378237592965394887905183099723113234692048571523296123827270592309252922247188792542637355402846920190727197179278676256745409783963537605573493120783197676933721096548453131719569802874496062971302829404330775553279916471545044484822362544367548704044719124063078205516577653741749159140900543080695622444464788355429286150150599040349280700153975468955938642301566670088746675260234427812984453526640808392803987804821228921457640476909021022235292811381215388953535856452625753536506297163148336847120028499591114382923731416343271479808580899158768060570249780847006364262080576321020568638339667679138085882174303262751517564450500149028270969091560776369516998264443894230468214907370337272423673677451230435285555001093289677309826716379567567812836422523009871539592418790251514860046754390933843901577387373515399506138065892102512172785577606637225893969474601381607054400933404169855958876493897737713100237083601798609679820781372266990879780783929937381640980494446201200625860240234729459128236151386348132757068171793284698974255094454657132938376543180840046669671472473859436772956120209571631123517118639840811479622767949538158926964030379460042970942323563166950814334142248782797868201333692010660371412415555634266870326303198107543057820224472717539118825426740123082387292103137011399212707045685390988141229414925084708054873361085408063797365300245067251158567289705041187668928035024830996839676356228611680389891508007142393888317941156379544977020103857165501295502514758277341689465053265044420205597748785848047425572556595944920428904409846825287778663419164907491112091080200844693328876355954233685123824683024560863102975837490737455277159736324178138342993826965953887133708688551507295030528579305920381560918561923697170633061527911260065404138733556667863702038241697665761264057229546882327154528760288738122471565917938136579667564010791962749487823150805827770544258562922949604944574866072286605100091333435160959804742807580673960492345208826177698960484231062009097102329798485297579439695407896095601630607124308637905184491277272484406945469623169409971919321110734866419506291773720000255344856541074767060043475850794180658090790590470307725004559673591340705933670321312707732962445479643454739672361995226328229996811934092476000173126216101406950722463543403923991630987896914847263199175359606477662807798203395188622827937957217279966532550335298403491449142421759518088239301850202304054176749548051023078415097692649318678067900290025306220998691602437096744918821570961424641789357571892055134056304632466090499096728687134450841858879858759385012360793597871805662430929889225149570354157890417866227934470373867824723648416453962229871361829898465725134716551211669677917884527249546742175468507998559492722933297030353189183650335663954746948771387148551804494485319396142937839964691437499170171507563645885090639019412889410648056675702332387328400498123180001297231487491610426541402144963660137498591663719933788015447982991317689304228962000162944998736484543030458129304560710317220306120984121392757135241460865393084160849754996828709986571199171602451299762499191172412104227258408892794922941128555033840493014310963119625996098143582159292928905639080368519316107918374591704105234598279780835189224361927820086273961394372106589245405105306582414768136330489003393793757876902519741938794223526139479164729072196887523918160071101138974006218164937153041457431468443123073444606555682056777895402362662629432157522562815699671804344811490129596239023030230737584418661636570412415280527243019673367977568737182820499890165791666909515802519628784119698402247874889295788427427358073136848710241361866375322735074252927990686009075625876698410089428536782753660652923491014004973021531599658867415561380893929710343088099722640217582778074266721093093382227789710960676150333858264313275357709183069133306019003473007528375623124470011007047509597004308605945635409200113973753989992196984229058904748654196591399281664145214968450153551929670790722515861719235699200496919554592322008213866361573477165418976279055212911711437581749148360922123453261359036682429809181959806536687463999891269835876876111934259094932544673371378250511627782260728157549076594802991241033484291442832107038293298495995969202561324122408936638620217482477645695613833071226884146055553987350158370356114677733958802251217005507104485497284749925039887888045895687497932270768577950058523759085556494215991834435620593858694726780130557799309380938069373958301871942103887847939094755003166178682826561620779100563403846143481220633873647745390166342905856901820996667720362840706769585759034466941132427173746192685882846969351497016732887862115893182296672516378946402515957430449944250197557519839232528059767429357804944649284379001901885211618569029966006138531111571338725645985778155581515286282661467831451323640818695546403110424945757272017146499567755039334933351576984846040210792168479730913758462942184020102658904277476512034829854730161244426338030989233338193088736877605120012410645380132886781296724667114283795534107514470838340127975855624050908193169523258976808878074913097242814066574820191112899836248496587578199404280043385416553899501472117501306520275197476644071853925077926773817450805096031540361297455628760075500118103902092808731291475121086459763302507040093144926941712045064685925553140294082621412276922183275815196804789448638039973497962101768546120029319016835440633157018351523559510626029919403165121919906116571303689844571624198298019428506624755209740283521976889986344549746531319057104316694979456882947349597415667919731358561575845842174182259136676286326571236165867273737040835080905899613855737425454600845321077373015471309788225983792079280535074977825773371772795620209583972005756369741769078472771762580635641856858250796977826327378265846065845633256871432581358781711822637910351830369049018983467638942278473447330603125335904704442293862697659819343849897102472253963143197032037447044166603844409936754095652156501809409960981277809190099960637596909339155037667755441839945566205574398683357431828617850764737612366724279247757143570856961562205024639866210667609277793459507242243309935393936452660703531792737579274031680860281942372728316811144272464286428379236438175135116147595707281154731375103863963166438744193124968749440182746612416953495436481922318776329782137826245703693649345132273816911088136482467137452323415675903243559231490584262059014095076526166519062866730791277735378247622330167987155634906278009145447169193777878005623641718883289610863402506455849387510618849463191171940756151310446838262820874273214163805690185924990441057718212776190767240187003351163140396507975630303602675745823828965757997153186614060736589959012717302751651155139440291074230734600799187341156113914393080077850723612155135722700010841224528994360226986413923917300666689582033237151933763246188617635357789678834478724950774308157257772960986411911514635027077500944440988779429789017550780117683125367997649589807302604190764138719092841556368234297593380829148489743598484807758567351729387894734249932615260604276430631538496301024718370791239000382868350756027545448372502894351805955714599963819420105580433806185694793483275012547383608935572412857230385988824820747421115069484645322781864995650661616568194333425471721439745995042488708564988572994020284170034513762463052224743212480687105323952361352887788182271932784768893367609022356407217693477755827078698459102803447496109121755091260143809119987818584883237575600054718839449432547461483613573133707414996789961269530424190220113326449449031598373342274281332723148885496772549761475995309523340102515343517867923899432066392312809738755915450255244144560653221254276333305767837709009325322296706951410948380866741383509048547107973963911410155569356759892840335523538832733177584078994725304162560194015923000404537492186827433850996158833897822226557748937705261713933219757860258145866459281239698188369960298189557808301752550103492030407631083579754320171061121564151734569576808001752685042515143954691881514027141348948026285775899750346877285237482265175609988060727154200514015510512776835893872314934297403103992589709055236749516542669269638376818386656408734591966526828972073825088228668084206399671305305378265497645292232606584542224277098826730981632016780527759414104600975207730808742109675149941936849991702658774822000006921602245164887712731838649310551997595101393279856994599711698041802973702993967936282547485607228122471738322938639172083425532493941889018428529391470632028080396394145864848916010718654656459905516986248327929823634624239720283668843885939939542486305375395704325534000974242390739802915664248926921283620181995037825587086886037628899989940245561834443307125300593029463619195922026475516907539995594733389573222569003283037871483777740854393237147051673078922771748354798309300360682010040098131480712360588609770394194874293917935040776082946643674029195096840392899845277850917358935908753955022432592144534492476390929596543645665572640970439242498585206171555774325697041495685324108520171759650555995166138439634221948607124708068109668147466740596538589912171237278615572940980945632180352964553755939971729518176414695477267116199501925806949869075043881528044576516346853314997147916090832473165375565305543430038108920835191268117913029940962825454123636856463160693831983716477308861004816663527367668162851211580949102120295671166919669272486063661831706206666866139360695151912020166202199988137216130172359524651164054838081340209874940751439386762570592083421742133622421463079739723704019367102045751183495822732946087706837604409251935075103173038373758918489940326485071732668324182931304777094660847496777339059485127165927347210483337065640010705514671614432839336545376244824217838505891159497146453932260285892643150870024153402592383737136948931525650544260055899525220103528863859956666171909875906267102475105733051676974189776113183884701804556821760330163861308010236851988615388423771856067446677982887802076875319301918638044170293280277128395842239287817100018079972784876656652197410042636213992074964673960391775264784482555527703456100413132206782296946596363511423494794009198273112799861751024196793243451262176304777969863337126733839682265773978175949523967897893595723883569032060310736955319240000199166762396078534030872120731030138745215393659855133073403038776421188237975891751269604940113264970749735791117934771071218151220727675900882557434332949433283471056274988626762976001414819197235689591804172068480491007562383927614052924363401053354031855429773139251728988740391047967282690562206562891825225403346145384558659964358160037635146622558156226220669073196126176657267952921008046258831611823179363645440396910541270191212691688384169506924613568830751514160423242015791199521658553824294357033310348831273539713220478859381395712597589347940642141044851846755752033118566672967797528782926559447914536272547641514793279340783200769472652294775307978199372554724066926493960750059149331243080903148314859703941623772599069988145568555595053003549002832947331571561255344516443210492605060693884445199153525220276741461926935629555430671727845561900316673030096811401406355719423612845231648115916118528555439090811748649743255748187239447940810247264960458711927146903235771365560192951552201536709635882309203118174347654381681635397255099288727350156608903759108870239854736548061830053259957811799272234937646106546813417999758575155231469003565095621095014453136357053934700834700635696652592336130382131943696001818095142186821254673787407969068185438587113939222654351248704765974854368086231578299751174289680344128417294283502856885632573552963045292182660104037270178081928990132393721947990312131743099876803868935661462909763772640089514122651859707282566351047950210010949464672105179260853762052753590327623454789626615346028192073571205707783180896470285597523882172129071340798617284160598099828805257950461572706103906644646077341793607555486852541705370407678202888502517583188149711787419404148911496782549218860791825503298305040068475739093823263636562784104205024154169501920216786971392738160479775176949344659598631655363099882131640007672594076363723026671237989768510473481238398179182448411055875391370585692162713722920194029544000591998353230976832704424230005791139604847309412731786644460028176405848604271047158584351180853662729648383159141922417828551996646949760578005349092456851976078525132982263357303361591804370631760989420696886887299633712700619965656278513064044605507943369014934618250559406421460321858098521189433123429990337896250755877206252924941637539983795013478026593800627105625375504631601398768090543024699244452447494850416210003858387838955598984564209286751215629711028907335308463220608018939784768747271929744287579534431788405460456458613062853610431761931276410216298768513542004469860261815515254722435012614546635922998517234735889808467222424279008462930441533311793264357331763709606819269088298271131302498166045870839744038595249618188038572929048417423989778388709074390857279593309753280806479761561449477014312641214633266401552546032384954969873037155375971880367476769289947807518678055409196954572320126679425706084956662137114127410477602347632257226227570394426817422606016311499178369504826596231668543544702672578652974234077791959710472661745896504317962406554531664828367219120755323130029987641180804020982333166605208440756474482586184540615371934290026882977328705039872063205159064873046944160504964927718921934289656539712655327636656404748761151284560982812025070657960975941013483997391183058148142704055324173424040518901202404675611141743017268217588620128618479744574190128765783902746677439703551975457274991495384992507847590611466702323920917964274887708089441593955758144194116852269581049652820994990423877447631909576031259956982044148083670112357338448762124418500230129341446542478644005170308485607118863737024073395805973972108359671851330754907120117974787232478817563286709575879600467448094611707480873430190629102846119791398876934739672284731356702712273132884359194617394289493425784575258934541552230843040247135818588544100014269508097755885012873667952335128822318921940962428254334957482618104989095396646778319776615692026786817057079243797170271195139222594777142341785367847012862415122823495959699811574418425103663958850497211292938756713629133344429654484537334909044865276481268378528546515622667010001755875749083423850155951791902667356321453908427580237110246894665218818108739121475889957520891725875330869875061377635665945968167706175970035053953170978221543596503819371846024298687291628227291413869030274144611326021501104152006030206993716350161157005887164996785120442940052085775737044023749169696437280609253653204269507015528806652976178984365664211594571553532048909542990447928580437130100438025696129959136120680752149358782673988476319013966442307047990275766538216368098460203325009998478481789403710030795613184038387574574387665441412286700197198959971527788055532575285589212473742825809523428017280101587896231130486503204112160229858401402014474246369299662422175784538931979817274440119653804596197889029952683444731248197402987683373251501854010589102081736885359594198098265946658587118030097644845328973476359390261093969864539082417400311717458728678834912504971982430197499678708030974537944132600090481853836521892237493445787398120799767825021659956015346621258807020175963908925307060958304898466410255918975597270735633568677724886769303687641036310672253459387646484757879164424281819269230989311033677948989024988927735262938712419239297395444293267601766330817494691135187862365832015763810219420225656677626852306269264284037520454629499008582676579117848474262909095071985571294335541727359281201421352650527716404634358587599072773856432413014133629265673958850152453918798067461630777016621269354637381781077247155273802640613793876067460839703751384463348670926148779947310466819693802257080214871571109758628882329949402381729298823873317029405840374034828738130025597141052391188889464430252384217537464670406090767646826639644169814245069015091814590861880715366296870270150528790321235209098174912526376291162697754864016626930021747478840349491221067622440533187013527089517205656468592816873230396666784543763882138440716796239566652721691454982080580587193895451628406163696162971619029612318390416763948447433347834070329988656616423762972087149950642314503830180035356756570754266793199744930669285452505264318591749187718828894459417596086600005162585753135887995815023571225068358002847686497557747654438312714446998610584532205185352567757931949471663821531439322505215550315784874241760259270060343027373812727003120967171834701293495931662617400835713290762698821597161605110615779931561385565799429990965531273600744662469549737844624348432970994185821908499852030896124624325824988292614910365752587186879772093634396751547729731514920356444142936035778795508568072945994492823803720700951277182208003945985788104686042316276264390387929329138389639422283846987587759108641566624727662405629102548840492814326308326141784502557317699297039495774085017990130337262916516810628435381873502315085032924866884624288420366620983979866505710527470073461358069693782959932029025297097603953157939839469723183133821675122881956254327832082975990365890191605703493231709227024740876163987679737045260536265011692571566761836702572271828053998177447952865252886282469414704331489759504813610931211512205044471618634710220749381840303219110625577777198014899795800566194371299992933229384601102257673149980054751856981042607205547422454155897736329177537738442329908636145461809788067654173405762419802799823930410072134451088833994010382651341534579274859234073655741812869883688749654741043456033550311328507870058132271436228814108129288912159802821527835481413058941390471558036639741285380021609665525428119846573571616458792750026969558136955484649323597443757744389910077730496117095191558885594397155248343113639223487265272104535468920239138198058762915071206454307856367019061202117096671701914329288356244378794490894783375543719410856763884342179995020985683224220027408363564147925175150109453311723648566316093019611093592207150345087331078465838500828473406981875212996087381262514063533017714810602418955747855553901178310144355771899843503274352772403448570403455274007192410411176608269542707936961701633467744971385369983873553734406755324645887239223596708438620323170328439713449133040914513635771536081865763681968975916386911020622426142200658455919114817259195285804361503689198931035425800915022717877164642270985497941747053944926204001455065820622888626593530257591304764725928561062116441951268334801895376163971957295707858032280994428598346669788571477508692723557395511937094622805738866891361961781269200392900960025099705743103872344335569486469981063898103469242237725450251406467358398526980596021293213754465861422527580487471234930828072709071348756588629116189191709201456124522451000715512752295452417092244425093344657142347533240659266895514056130167179225573165684096769379407757885316454491991348951940196130313258109112080459376257399926440942166654255584344286332191461571557323592332436900503595312716126543802475093531247618109028807157754403214622900856934324628437319378534855940993354116008863904892756885872470093574756591424667673358759482713224716378661945922509695314107251862872839953212290457818570707610165282433477626388757789850748737971117984874812407484617674137798447905124117953575046730851778464919962052863582823591785221395402623882198321361861573420528536933800095429376698515106468623438057614144250521452594350675062876544960395509278785941347188706501719204994461368076264929326791898068141732838873222643172386276959995459019767645389996780321772921075907229285582411588375377220998998310280926438435350274197395394760234292412962111490905428563982824201853762086097825480981463282001914289592285848653702937089259111574338521446437689209723357268102419728039673697409719511274366113747212979919066030330565699188243066565791201610448220812846614441009456089073003968643049506017319725291626735556387101715582115986775965317845927583758327141579425227072690232695569766433290380811346987921456750343849687199064891698708174210275477773912111965601918900136228365319068633684144702879473263463284902505202372429619944934319579617975944630088212153439156358683775125252504068456398800163252404673687032889634485474327280209311942197452316165439607125188165628610140196822251463034863234316109469315900700618893445119352132732636978619093916960592809272071215998609918533933596589388817376572398823608634522306721361337162497296727803955421343702271645727861654851105786738877180454081803106960608716712590352329977304075257062269919248697737623940385713757565281891534881095416401823276765140865862594232880322889585100372966758788352038977027589453974457487302498269422672606700888345180400372245633268794261394235827212107645098768776291630224187977232935456392696673745817412689460965471693783545971080711005418085873026006617927601954367263093730744036338235135403443752569505093921057421956057492418197182475628959803022723302139390440326239387895125755684002010190656073223763847426640017653800865850557417191693184743942202575802167796757409938344984726502002895819872095690631735549105832577246816557470881263926175712255362881190009231263088092837037521006787266869259247545717894611226545996346177739962015375614355626740334225479075533946491632642305623743257352578990547549283659188399229947502956205069609085160891937472780714180993756108394062934531823858570741770835261523035240837383212568980131171881842375106813623737900075898241304505628408519489099832234660504374668934248568231602525129694328324914430293491924860667318592621703309556229035728027713471711467428258373956766741286834615918667657163664633360471950996106117825691872292533425066393157718682523764520523603576751306159229424342188010881951583810532647341962314558225202834007247855487524255052008300149253042342484581706068301950436931784484590133966364318735309117660046242086654639805492641105021816526901945247795747904729128504790243957113061732734811213101602959090795958219775476216588305768016608162801595597262532640807252248963923589645551987814031110278993674789961074729541597038566839442743152757154423965744000849756113618617825350254467757961199764327327926675182013766503113448810959780561673428715672066115571542074925203894475204869360563595683483850700889137305763252510335403683081945605984524257965772136142333381907004395724387641306617767827860325326763713378084132815016011713379383139455273560194118821241935480795981795243065620101487232808273269993106289580653651737117258602787281570849262207277092783190866000725817271049514778577427368135456176046525108465398102863968281063238276573604387186800928007162012915609701723350677996131459094325643219897456975577782226883351282601903672086536441552618487340043171798915654731146130866411319511866103626885638886537893901898543788388138883313475672376118739368303077281189059787347032400757390993496898448522901959727750062070536099946810646875703101958361733923956405564880594699337669391659332418055889104344365482475257571842082155695233429126750578152339860860003913950055452248889998869143859955652868273933698169663773925840023366121323667353018292855631519836068582166165811168212401490398026953417473702962643412049609118503830655985369474855382117329741849322571347572551989863304496440651252539108440208921951927472392560568244498277562612023353017830071729968705540889774950126837883111767134283004558465696098002682916616738722375280710077827947376553176955078075877017356493179452131783379077499859042387190870159813363277086413926369609851616747336167809173414326581413284395193081397643530397516945403819349150174943498991051208177063981640966016019412544683583726617951875168649478868906176535914224111278979530823834958501013269448498443904779439942225618395076229324692155794097470876462661475894346022606082360473533295914356660469208343077254239774001686380273258602472286383075401381999660844634553166038384156581999885940205826543370357734698825220675362400167782841727414064704738919005896606703569876101599792201026534122887243547560815990726504075998350945106439028582156064215722055658463074486612190100541851443426486760826275202294085193188649311977100514014615890355096611106893250267529826225941106989573505574540293431117778722631086127718628756104446867951115835304081635423736667394564834377248872495450494810374909728172025411691239550550696291668222257845205346372446445060240042688056130196002774381630047175035843823950731592367366565054553640408119094385638312292428871515011982774686204971286926834173145380369449318505255285105746540222007657972775504556948713509756592796792629685752583965711767622521401638771779370464789949667999302730992586552604044003543235832009449811722967730228109018932460524747369921119884894746003885012029983836943400301918416062435066015880906858664580972438400484195449814209013546609961269815826942256598550842162191146481427235316875540796036091969673618298856009958495214436414052825243195569262262679238225144144502034684040232819742168604680245202992507029918885859260600579088663117767519053205066075895042407148076798345183030752013104656911813711108032518553212609376155871817278876215261066865984797001601006978716775219068409289515179576698828381329427770127968208643843025428555038938964002182298254934646250507591579977328387404495069750168995133399548924045489151549259027272697351223467671112321011595736671520382482308502959853340024808183233641045704353997390119838851254035484168568037206230327491101964100061405687012122713965983685088101356912376176822715162011784670747159833731831688681817976661057452860990880979683615990051045362661277984374001814477173817531845845561059226328763465676739636657873133478645783651191277647466569792212451139642482560082776117511005268504393961519886819642917077375028791537852867025108647078212351513673945470313184318480794776401574109306675199984781768615178737218006840405928959703486418670090799888618128274306483770955211518218233102902859058982514223945583830234308839907860601018781344802632884014988382204566278842887116484859869343271378197029100320726077862316108877733656243922181300911588251449814372825926059354792488404845241735226201987566874257928723140654514853355152632998537696726159633215746589391051492014874679204471018388998294741378619376955533993225691321081298858623255556927581615144771338807011821285422064177905364279160726246363905918862483706659865386268441861841359871960955563511722144740861409441245085051068399880374474804061529772412847906871292835602660424574086292882136348616482775485485806966719119154397048746559147714578920480177886144330069840875068674362038408252648132473422000205926173749670466321859327722885406832092591097538150969684919309550735295428996520627049922169146350847111066076209756817385621474778386008399177115499857772310429754648684322282680072342033248114343759898383427289273187538861664952429494719866259323203228564426461951344921973081519538962182694346887411621356048589708223033569095058937368219280059346020379982305565912521288361049065469227740315561571614451275716524861967496255691274137879852332541688856222935555530474893135867540198763545468204937817510171592967385842230783428053439178976396251017624124946435296601312972321942540670807456293624527443103105129194587830920054043242307559670818889214538874991975149913187867350579563204262745570612392168499946542912329329670481503261171773448299090681517975439369683751621806512511945740959389669340780856255786006321282802171645116420078111007704222746435594602121888956844739542597706961400415457953858570801571976752133522361850494706828791729550312855290241002738951372112880984288360781322394506557716580284102307346350851274255382321435942474663441699047322050613699300935421766749134308790390773132141888351002836919132616930696988125132109140313080915013116881269432359466131003044962925940086865349553094979639581509548249721781327854053188173378887165213101055438553112076515173624145667257052318086342107690078624367420031142379017084747372408629527121540568345746494386676788785465977227638402295974263182373392875279738845048297316186805207853534627295044029744086547330834384966527393770846669242450870744081807706673193081527139882463896087280523447708741229407530092887829150606682151273507010942605623627359593963934039455360516993701394117693182901912297464262972788220696024274756746705978224517757390130289233237409789639525548744028259360751899108394560872981854005966471453988338159052440820717932688650000869653733672725535295722931802755986410690335892494313654575363554779340163329362587892745654464968755100655511221226494922238134332167680509389199683831958623261904143741624679653331115556771711509649571030703498320517972232337557152806757353853239505442016246597302459124026982855041180882166194513360179794672878732908836004844689753244910814403470931442880095104407418341303589848977387702419570561607056298000671359314644302627358655688142496631964514150580449350222330018659218409863299171375596945040099105304396858155705459153926820501959024863750391508020885622081876726413613213702510767838929934111567656821647804331124499211125167634637134262434242958867686780093496305627245197087153259770824894960164792773681854616269712731768220610436239920708809472050180230752283653193603970482827331427560290294770203410070672880954449663821671400846462434826166622323896894796612403193966323988385127516335179740570269530320792511251543310851897753365538575923094252675718940187864498614100752645002461045463208456802888332221805275371376496735056022047949900993098326222819277481486367589164211096118753536549474079146155539795743222053706116706533364422457549643617643432611823010333662488020712905883096707320456201087327358639390098527047523360333481091530709715324081924455971712329272278336605070114223162632335816458870650825834020591038100237127978729944088230550744524112963106967973495342984128880903381723751255453084591359917045236372118738346614903881772204878228782261162734074165650071884365040112159771948481777061349696964901648263050975826591585386594312932017419073194111313090615461156990295244860806635389100359576255264849923486476503153968665427625661170747090947466747128793961864200286940481414660060490568750360536287312582447532511205840246367806719203754236102570733147638111077936236226838243226021145939417854145987801180978646079500103859241656949138095477062072443326028605276512746916582444369716130119902028501510025147341391402168194530379825878134367755402964547636555669742011623673827220516567516571605169998284228553097446852317171026154267521221288701169559354644235044304009015380140218079197907877921767178607019404847998756111525829981118578239906258889577966388131018344412052240772931183422619687606727552987329758699459695546137297619295903432321155341724261652850962133045484169182885835956584891059500273842160357745499011939457667252499124858799630684300517086152820462238516878236754138406628618172694457268879140169431780613470739997750605352853151235009451801878078475521927867031938833827830012804824535835722044189945681562232842787087991721278830602302892439702574307809939066193599107713736855993572038980550810185633307802589877720413447137705908450408152775990483062750215359775503357378551695345395371160203789156940274849322615018554992195419192875973077190892282713829128517587558114968014225533607817419675735805634293737488993904573552538812922856286845633636188427288411592302107050708287588411457567023317514568393270483795156244164395055516826339642427699294337040266409952913469704853017450951512563967170964116019889729553267646637687757918888675409499779504359748446140709952695932427195566791864470293668795303914769251209145650973838682186951087293772632561533447779256809548766641003387969428502201138353996974278964551625503841307321869391617104861763449975597108973712606733976438417344873085827850672715774531977041020769320110101863674962063311936157222658783262685293495629986839061085433021741458289970260107783057824904222121459362802430134087793582373972465583589577352341397115797638226912714969235738960099862038385471419729819949671819393051468338587123512162075275202212602259338214765682687887965715029911289374687295703696196901947708838224829869472193351984450074987521696673474058296416231301109931936395527540673396423805491135033158948535253457276498033389525398563589377404792763862859061706244866142533531411359422391511441368235075221790398628625417328816837812624568023375084576749524191775949462152497640517572729751751883784220180069657019785929605038374768628781528894566851693018796790960760937436146481887754448475478498322908982539009293213426525472934999695065727750919318390861041656500590042470205827924135603687047538845925764445771465237848794757733858986177363869962270454273151760323346530780555122671244817958283140393361506660623225496156930075670083768861451992527338205854722960535280521353817661944064570693800356456699793131218432105181409988087386975385805412703689860745335412407632202320753999725132247963016153571579249370463694432693663252417975004517445888163568021109194753902047606585161823050710161433409425679870728509881481948356672307144157880118085833747750580934390500341143327259802573111089160606898880687897045878182486790476868032398588526232277433567101242998205257737252544892413841027475813349559717380168070108042641276236224320400279290837755459812349236416325938253678603700331523338224560248523175953538920992729436193780300474463838074945138821430035940638600308208118104728809866246907514580563934391409769063949631464756975096002294315262544313868970571338335383121091649623171474865076934900545779540003416803077265184889771028821250664884043118693313277741199263829108208460287311786442014416328514931656444209681084144479293997083928381582400662878542765503053115457975023214999029515861101316195344396227738398836451054639686220382211249092008322250520224515632331514090190486223870180806382237620095961388374359245857835000482465880113182483341948107735423682120910895623195206435693200327794651491608065984567109254040800884179773232820556898203266204457608866237840979363625201040604152652270168247011264742288173109167511349301431443632336560407971885933223763120560053148596319997443987178981115169549525511931650728540204906527446751944305844839193957848560072512031495904049093168496418536664755989975687673397309031576792490762539816836941872917822871423263992078731682694352629683880827418128902129359581541163205656553860624819471165525757387153801005380160503692070409190404274752257208003871576974496958400231749032737215839983276021730648723037540578306635716112549449456329109930643746933784173517905723672320203742804788061919644631920270782499440813191242721954880518029325499133430137861197941974784879374632819952755602565602718950398182686711245880932747258144582157925401690890742069408342722712500710434266375111410809528362695719165740744157148546755435653193728129601800284799945170197939472003165068375773825544402693086542589674114175876070558232126241572021792386068394927788959854917909520942075667198192733858349140700163103932025071405851764815753690407221805359106147236413229997444180062562998258149618136543402190220422297541273855976721078606139498724872517579210948565684160950129687295256535072559249388247768600111829260844400639893908045787275545028695777538021209109100514159419908008328823878466059130177997107128255045235298466736693266964698671347194770040538050310286285316156055357253025825229372030076003221171751258856167817497360332681838866827012182968154073071748881135289027598143808375920626885152541274702411143797856394220174478137837347997306626535482398073216136663583513032106122349156215998267859720658339390653322390424926533243720302168679006123028167529792800802105237764405317817602747971405775854113261290407925545699665056890618275121870937280560571483403260306503855596252234364576418582247406228553470067356953040442756428163836486515625857046011186080168247884899833820356979446984710824314525444563819938180242676367356021708824176572452698100909202736736993284895380981510755595169813707127181372888297845934130021790206011597771409647320010394445271990079397617241708339397939663744918003208202537607236066265154566408624134333673273840917534933672033638005809507567197002856207626546213563062884514762674355919771869072365333806551044613692148938030876000827205275461252952008937793847254322959430088763556562328063021885777750329527495913789152525946445815762683523568914012690813491730335933689808549466810740192749355241352768670188540524987957122492314593900110096005890582899952496200207975383350847119988801019367832548960518864294680793215470006709832296413799160686103725633798675788153621660434012787085195534344775205207409181694835976110075485357778604118851096174242253000495590418749429702573743023908769282319770047889516946876521319211770530403001086908723414091597919499647683161147029850618141704664912701795309358120085196373832644937888664408451424311478343458671228905361651379461217843709198957979008432592174144990047609594258813024184195223365362293430247327064610733823182284040619365751258307214508130982921014508989846268698669066198985239483004949169021797328651596458959351028499096095767663410335688273445758855433220006858446030595251199164471856335296783642717886659408594300404033292717229008848211097590484680247006827862526683809357396912150709721571398092615293149449094047111204958657234082719415883352333226689644562785897058695119304947509510556176809075934052181839563263917671791362834646807737388449678854613090949550166381632727898196382034106526362878375331660820639146755013593230578144451744357881364660323222038231027693670127761909442477144076536194898375513421611048587082959816332787702330802432848773339436730593367443752129435967048287506952500952829329649332770490699806730758598469936013711512557788713264930571515387163742303455613833603184580895328464246496802846782077724220453745953209283572244732102704146481956034293200974067773470645309378595945171466150969084038655847336954786709706378379542640370504936478388222728689538533414379699262753931270370077559537743695295151409286942915538493477274446315627211213219778786437514548457768881404606461804316371385623910731900374212842746511210015199756167650984677257543910784737143569559888041999193574280870714441137475045502609040410874179853341913027152767992261344705237053729780549405087363337492872170540026503025049493138403113402358869367875758975890504885468689281997249183415093745251881396496351775870204486941109932941524385207175594594482320242580536661940425650563561929166977142662988476907419022642787624299390240696069174515051594654943377694242466311944378580498104219722354740899229970642714630777659307446909068384598385832206980882990721585986722485154598247135697317096204433485503339811314620579931963111506133987282557251919831547227596688415099701284971465944842580755396844223818040391199787570198222177451263486008444390966293303071310373275133179299206656852146166639899777968491981000374341608067960398126924100995650416516586771328322771823249512955721503834602910243659954703614015955319968202469985192364718501048848513173871837904885378849210320226553179139982491673827781361883232850082263384298854500906171220253656242402877355150328898927990276850735263443871114238818077157062042782612598599305719553929452037957140414801243895384954711337106760297656221319476598623869730288532062395694608878241956529342730211118107354122454939240052446282913788500356003749086228331965609915760348767736368935564853961507711084729493881344006744837169735343860408987420732473940510375773699583899450872657271569088548042258868768662887797394134969576874550986719082584669129933437152285676953220296405694628774391655732234202961728014368705720713797278400934169708446073198800887818026739093800906023499202490486392288149612689841203202886926147813346948222730913986090723698886301877083389014518189895075050542789425738737120630475819090200316490344965637099303938897446703636219784022541624870619070259218550640395049794938348380684804445445244428802700477918110032282774420981259127549357857464252488329329269618023087810189853697282940051056906443127145950632158509353219482710561851937106407386519309590960824579419863672070058391192308847335907247104745186037570932619652730413846184508367493337479624611683430578866996538029417876116926485223261404715808552923083804322892929500024745066100882465699965757492039967080136098058356905991224603584451124457501397087060645503560550535123396834388002989176889381773560003059018415365874137422116363922293644966120730388612066346604359802875943997987700218041419277521144909755447652084596709613317623704335314174811150241184114744586419960319673268083845261776327040062774534658299621032261189041011974120943488993984670107777199185115003440779450555438993948743193433198241279089587774105896360055299817166836501101545208365554837089820573692755365412969715156439462186510675900685003381998959179010086718056519958990667787297001274318847077344072907469863157957480254285673727743523778520648157967263255142168586713903311143379141093393861437452218208656261222897618996791099203919782935602431186804186598747572080335392011232003565366435380646469087667162679985419395110029684513913146818913513152984346743276108314723979940319013737661536142677238605897961078525530492386453948853181514261267990919008783432781746198382468925378632783018077323526763233050713165284246895601425430181111722546396592503054243059074816228017147905455274930997828276989331812474284090579711105117349742959962985529382624520730464301173711561232568697267026028381566911751005426347730987253750692331328586221883710797717522304523052646793288617348973304930935033630652349950255214794504459387122266569024081167228892550382828508716412591344005360864425169260893893128784477411669901653326281924846642642149539873940409118202769808461938599772267922905847584290836919539864135149586980282421799224965541480266330778219711554438858325053674812580708713077485916209943488931418626189147281571640638159918592810961933907385829816060139904838252325089777889308456027539421855427474314754495291586906386434299754182746106132784572103115575376852594808245139371840156632265944801492428395151142750739226467743956859431779421671854714451146611014722558005239611042101806185205486263140834330523897645633967563547247014835224205743854568945769772048207355663061791522590005428322761528488331598837433916319603035592718406350875458782841756411770009547890794555151600441789197048374580443721022181155181399195158979686036346772356181463285823440350917105286885845248217652861125822622294703119075149667601029385769637861441079601629876703435594258070001671227872442117924939632118574882987055763670697359405484186767882228586345114586996511671371444597735189658188360341188545954312824421664972880880870123034914725247840605649802327309823186089853083292421490689844033512940299059443468094043240100434260893126945060257842104663231414026779701024629995914490103249642915574152621774971648976739636938799870317061275584138765149068337193051814967679163254171076060012037626546977865769956717783679259067958002489141278834259464670874537613658605533602002345807807052173739166983279285516066652649892032746375591170171437368565200737767785958425358417197796025071426769074753820649224386687527175717387374850089080485321263782400072311859192617955931703398604514393032159689491839558502381967838199756376666185450581992120121405043990421479310804629213390445337198085197476972652244672362149259512113405226473855232735876557403645929499646107063319268029105611600562337249926591190600164861376693633382253707968370169013168136683551865532343638204315174356742074730770747235848557432570352990924392081466998607281069791845755744832648629478809445664588628652819940276169436119994587167404417621131877425661958266496874077421722038862355556652226574257029786248350197528904148193055784079391843722869763650372611244909592081000610944528514579841545205209225348360631877236366439317658173316586122172764877299731478750403628443738269795077024390222081490909385476464443036110252306348431449657685071464710138996412700761450506681671104349020965789720484219790825254875444314220752843013393164738881440492544877783470795633182957799995326152577289855464748444665660197128910493682784730138686526407193794943323580047272417129755796008377495363791142824104611484350270577416152247499364652315893468675883468292043954847993348077550291937728155045012042067555221686214492564560878110009670082562383212758033858056862620137947872025738039010485938460519606590206082222500477139275141507973155897083446443541972620140685166194479185740581570050432531029246367509681068218472166267188910237417241595942230690764034185070482483948626792396531909803481952307635219144410634271788488929577056648629020519425859256756827806200351871604828604377944063631989854272301703289148557492784680298333212531386958284490458322681862018899712430019326561667662749887090964140481501923401096779001388992970131675649188731075402926317567365438980929065513978824964960648312715511034578337977518865373083136222719866595452927721247041439972791312166370434507572539878934253807942644641681338482999996091853276014836729330503129295479452050297357758856959551223015226811242791896214766541134826018555919492921845995621296119200502990056682674971099597642321485517736712684939152024269209948382363812307805863913631136416524769072956043874454282025305861025865806825416082359751531201301789181999032545150277859673859231425090775926424010763646677735614090852467034201367475627318228337797598601255476046174875552538564829290040414974857633151318760312219000426351377953217936590956254771332269941160190040270275222168577272666326547290793438737860960259968372189249746618685092161546416565264792626243387720657526426964143575557631318355719943089570086041316751387904268544302124650762405096925279446916620874625114640128134348727800885157561125647421758322573431476527922198861889356460865358607490561508879219600897747879483918991055663464801327020938790550131484741010090191543711068674452468262039731875951558427061004120208485015073842574630666036803521197230729415760818303817181818895984868398500869966358354738050589812226407140458014275719035628557013789071057691885401312368463492156630370735722160885292202603170896230190545977513100327944267050647059874922656059023129347475066609262381668855924125863061333035868222207662445154486927207623308802242087272786827529033638457568522567295699048859077488264312255253755834411910359926431121472215460068190304810492246653807960752721486678721765664984391909397936979572540918355971752873017318760329985445853834253098454326163399428381887013419174453216408166921056077257838188510053837982043409673347350404666864683441674427080413419661789831651243573368288436797004180681571421937255623512193882724851148746488116878840135249699067428565477157223024165108399758739783067232906914641814857910078987630378921337480846634512128044107279442471987253401885223135259071951559468507453259955187178297710919635653639197242414346346724973459405643386715455776358882892902962098089479736504062196982798863085682055039305239871696365262827980686789454505901217617341409038821769166116188102301232226934249494089915533607822091104806045733270254063109842568550668496290547651483103331096800481354297350101178762059705985494556263672512268610143956701105993741998674201637962793059422068295217668968925194301476922412262841112341672389995788751279333071050573864804975290706761848193535352482936607870053776717098970257997556831019895272694126182522914873094129448231367879172421117047114853468722820285805504425599834064650039150309562859728897949187496583064957352415904753754285226711196749187085003416642636852980673302186551521859866959766604632798993546694127594699680794882792850343857632526262009565269465033566565983771188948335063481277392022718286794385991126035818346822980981178678284544516497298057216182381307209314695239304613203459741255633724036815844362273488097104173806208766328921257284259343440835240127492876836293174284238423608493080362106465740789502457021219709703113281155723581590467089641173199035709004123074427129395029011969605155000163057520212153047264086473937920361909726540812167115267596875150364786672660402421445461389174547736555695167159529382470327342471528568657325881906426338206325381177437516721967467841191773247614056863079413278545776401643717851143991548688691134808951826901402783216774835959653361935516127563060540059831353421982429716847440405623981737695314425921191637295483186262595886987620759371984739851224263359963966636686293151172085158796306175849159264995197758053623284495637679658095301960316515427683985011795668732650787158820656392107014406214163615174738091486715865660699593115339584443634252149245347912570076199270249501234993901368279915277330341936525584959286539925022850998592821599049557261559132592027846958912655770419492510088240533992086242376924917833805548083292722266282100614712307333492499286964488586842320300229439911377601966601835558457003952879120851061058188678891292498654750083140291694472269734626603406192118159956571986805870787733592953631920818508700331375264905937522709666883711945416824124233678178505466690973532456525801695746523988254117578840759816025565703631649829344652273695339986365869326744026205568384738458959213425227386802328096553434978356478646442945536771613804646395604481028594988575649245547686741061340136200974544058348982442844249585241728880288595023163460616384141861920883275842022705515646293465083324224693608103629896390393963473540057080618537296090479314365561994644685170687590006282802847743997415739988259425282608101188940676640435854819711787017866813865437953674920903614269899199132576854252687794197867152567202049509118650690737079533156845024341242410784687373273222920173107529870885436469120473468974518196927658304089536394542022809170664791033575761950875961110572664869964190159343585970602425199176788070295544227558097703708610305740350499828916446227776219095007639271663905980277592544038913152641742094035062410840934961122893675754762768876896874983481205582346146338969944420389048951288668923461666717305326065367945567328686490250998445462089181347977688617217054698568313481729785233854820844293409740732645814551285112060308940672988733023146813020942463570579549144478689349956099162502344253680864032947823065678836443016496162172895164076691818964860555761539106242263341772181214402968590606403966444413853475441562484455431965924993081740807395078615514179183599449274434232436013480518693603770519775219636250690620461477204543909028942100242256263876503894801704418428537750900631305134044846286263513683470015377717745625870034277329624032769210132160326639103055678604270476490273563324346430995946812795691391002199640634497271090597860876090385366008511579262497886642626956677184417566571239458677102489335281176080917350638696573454797308177587781679137286686065271944929036667944604600145051410387281413134720696170911311035541271591033787126843198926004184351414613815487034782680754697404764683391457860178663244539042834407917862683487770330620458626393331270595640226550883273999265007350074339098002434319651394898286243897348183189313402409410021694367138561232384616095488150169105557017328426301508564313385145964021316664069912631547905463816087339812016278382909233593983009087204615498181191353003270221182045633160825827269812601366430048894361590414776773802992055214474162885647589697685252915373837386747075773497906164525796959123577884715029979912511226597304486850682154534217177781635787460086626580110496408466516648990843034541312387089396987404006217586845329540767437791187175279362325714803801713900465027854322359839807655196152113212295489416864817211031801064829955316259567315023391088224851212404987212790383000132215003330712177304156247589911031849646917282795933005259164724721946576028739446253730657972722760457805887343688592215756843311415785810880356949693260558994328400917224023927168255883135340921708849754892326503781670652023947965906055657050294945128789066185548263685792670661111496911956959096508624188054279876789071601970212933128987689409398013197623975007974407011977785572706220386363604287826972352066935028165297570768723142483662032692683430616516794128228230576278140454791419897692595811665870666280719336963605266222862317516527900732787966128814992139938671875754457868920910630736148536507668520685333206997482581250476225587983558103998751125909821048486237470719060472206104473711099019798508616098217054451012628957741201093365355199279017917517176476262576980588478023656435224524010919432240419062149003393422781007467151362365846074147459787003798996111252215045851670312494797427583946063353747589635468267448619609770675544666361505747937382481071145697515386516302474879465616279258937112050072329750329670057774782390958653808227032406159222340875718569067090203705785904845327775767638681232403357779533099877017886804034097253912000059325041482145763676028833683590387114100555628069494842079437908085060428920079790529827976271246422165339324353258853182119550138862017923179156306597435963209401797789176719670355712188960637864212647639953783057923747440666075269966871225954587087565238596900460404442873226973119698728035605049881541739966183797022167073183903205213180285524990522415740649126205459621658318223617713046023617861312824532081530693573505583662528573580767796667059120474176014351715321830175701553455905753989908983500987115910225578597210399677167413354031916821544892518522953401794800691965634086773363666693948635749971663683641559942192187567941167113635593448555677176895015088731573812755838784252780901962028980196980457285770202979481811490062028763561934951182940686913333288468508283246887865405514345807557944795182135354948353900406225392197096059393143467312362827113945020317123457652041885112835181849307612443283298997380439341863146902119282745504366872527472057508571422958066288075397256393029207023609848081432196845433047960950606000888985147731095994346895393451680581732542157451928433452493369775624264015181266940107950449292130449399411311584270565079617393382301569556331072173157556242731305553856066326726617537570048207582796006732161310691477396834490528113858787498432285628651280766874903173486817982118504858243607281357007297627052069071337539009727074141515343370196459974227138492423652942020958487533367532030759496719471858862618280026964319979136043828865083415619560415831142710105236022399079139356172790001121861833639560583077125474569832101633150608902889115836503597939203760001321115085078722712226530397589267667214277081970729381922302766646649981891352955628988063898872252320955827966387074697785537467574524819721138436149620739054068660573153037032230360627565692567414478942571337093165544128057808417575122818572777700741846291531547599460875993641071743230996741104338850594725610108833326955236293028237563548138643310575853959761308214857615568333392718800187639951822170073598282488130215597154316205413585443086229513649709380282335790911676852723243332827946721900993564275226962190078248941848475386616390857244206847475504127182869140581577231203935291364502770048187016297174778435872279118341180850492694228475165786850291978243629068144131539824387123505288272341090287005792199448934418025592522111131400299632560601563644779164842222682154730262553979590946158903236038918929294364268861032288233965391251321339545650052433181186585241684436581762808352901203038103395895817391335353909532122699617454682430193586890647260079396026786130583960278393460249379327150449011305185430511786963595831458009083537338942687573100333263324406372616644377469439817825593376775531310912073294203762304826004831103491620421202466065879972415505238220729671517749599131952282408525902027279523645434230690740033808399239031297983919684590939750205837993883738337280510027792549916343974948551931399109408659832253879894671703697996068413253256278182754881142264765636442168230739981718458399949073840343384759172722678404685814328044400706551329903575307210904766770859861395626596399072394030072682564787913554180147991999124163626474660204056414225302549789754772178232998480807984118413986150561950942196965458055795614635949517911859992372412891969292714019865149039401223277897407062320299053914155723718536596925313705002691883430745833973830736612887405652099622515901664492025336606439378587943704231558619030179328608502680945668572848767835792510099923138753609098096568988506474777966430490134059535316306538825967592486514157191035541808092424266322111386018543072806446635488457131618826440050209566489955104657873722758700799806930833882032494849520150287566369952487364222310749970166257563827233351648337149546049484134872236291954650634271056416698839019889274717855866666734288757063437062180442878434970312593623967068518704699080213976028060176503775111036328854527991052741994257952979412657642373708349077752740528105757432211930559149605689981146072678432281536246087252543764708804213998314057920703657203682313707666807090693536327428495591726318940953777280549967985856161978962271934183026851264779327445138643918825328157734450140897326227700857306661609053167451553886157026687704325409644460198676789756790536726808750946758410300891722072001208297274592457918225577895034107187974850248829704916485941572415060254877640318414857951755440967474363650516302486464544428574804898263713376700109578991482104218955229328917551636083248335312798342631752641867132198649692915589745553782742961905422312709919991662915879917860046148288281629007283985598035366465306828357087692775564086363141771750222245709336265680024439514656222877279857153090510531323208273366160731835358536219059295951471553641040361375179307765854186508110192739423143031904969010815072799025104650341769010278283703859475429977355495566789651679309205669270987805478884098714045269584417659342993245258042857684193547359605688940639897677144696086577722086957372144429958361469132619444345838075629743362718082058303595227516792599171234634762732426274329852565132080510539813804266890663822370458292299697796263050671358531871293950710900747052046388151696402654984543860824936648187681072457382723584911112349871640170908453627417193554308616190642581859859988480909481853015223921678487093576932895834436440804599349713063394568260607052709125023937214190447186444116329230143440116082254678079298946315407198605182689654434585066776468083699362479754272835239792865299448822649330307365239554987041896844768893713748538515059116497347101585048834403470154019249608738353371688953387546520432319929368220907346840022715069420317164170310005588578201021340342852682300373164688729125909412441663780729195236336972765698654536605040282260505136863235290950883775966968459881640838857333224957899087824751682139625271312428410876491261710410693347925901788520273325914108071209759678273264042894032473531525299786345015003997956895828639864373740114014927603985206447553125013482729274937631249030631348302991168152424413802559584912355334933309961649376260855046824372307812137438789899516911796377817045236645729580233028864251786501609366992836611762085054694849306826098179648738074168751214639327688333271058718059581674574474356259200100916942543649775725168444145936083674628782933834309385911222721499585072675388015011192507416901394855003467801103465231055058104061107035247230820989844490286660720450727260964782011741635739725745453705897431327368758073643209552842081807957340766436361407086113596719934692209820013207711870203104518981097962166004102600450969052006132116293609334538875910694022655740230282011178561060058654852000446734453075578849723076380099811596910628431478290725532387351428957798918998621204954828568989559932556105048611908021346478356150079376670548009821839971896706059480543016634322631466849467485825689436505749427875063671590132798748927285361119970838016967502774692888220190209016151893896341504601288416561757987529268503177591113615052714818212566834575809442965628806252840096014404590539960468703636620117814613034305746166055190303632560399479857576384529518341728139145662966359547723889753885857693509325708224567067633663621092747190927716950349481987419486263689661528603326890807048098788983171478581856669186624164238634759421642607450056881788523053400042544619558492715925952931354324171662282120027537193350190837120369497350881376966574526527515070400082981023700121621432109170495276150860767386248066976933416877228268350255231075324374940377978873269445395313540597233679241405106303965005055834090944207800450460999842411747809015199973721498860516289010920812510103370069238256864490119462455837106595903034506190334274828145700847292576000660409906706067534053603244835775323179725369412503701333013934772849983265226345435191303720801807975422723651478585481809609809722760771317333930800197547782115371184106845200801218053340108542868055273859457891499223079675727942533385116313182861503867745123803121638255099516859801076145484094476832854463299868977815606124940135699217698038856777526917331830379463023586765780368999262359513205904046291488731573259577932370644805111180358348922616061183041489526462612532476611174579964536545357308440770848100321446388336006640614688174583283103037587185738555558800281149257825070096064249904395610712701175082636992270403701139670537180220733751455339719702863930568786647799064719167598395626205449551728227946996529691802283600684663074403808490833583644134202391574722114613902770033480594437144802272004913838329281954509010932864300381485482989170885172126115591662153418782496242456821040434442136219050759067085942900788022972771518093610821576771174485697457471751371392332057280967585129888146347898586089156606435667702384737772372362361148879657930599661654491422036116731824341814380206548192178587998869921970846692522153789976219158110405075829122513231612425729268167445889024372171592864596500341158057263531899873475364266290989922023569047685246282388335491917211930268545018188491211400449149160972321487991973453837038384521591428777658009822302305135692175588273682430292044663073692595235611290960458740711710978224253710915310688728803034026695909153455520515851667646269367514980959205771792678697826073431397378502708698786667113736179451950884914378050164786646838490079146212470414171918736489346729300553349854552921737179862500353898066436104598511128331774758476972758373704087472152992743710076781244122058391489574417084331575968662144440007168104101848405704044331698482499464947562567581181278456960630650317520579270381140360208606073914859582491568981273691313974326031801269641791863392155931674990885977474067493342883265442691561431026939601395777266789197799839979865906668301927623118729871009046802192479326656215636074850502940308008903695276178397504967440525008064536098978987857853054607503033124630033538281167334094775061371110781999022936029454059754097896220535548291557925168184544967371533319199489671391287220817971818231558328158095236772346142982277377866454242664554128225449545448369769744320904567670682725032721385648703173242705331724027438763667725729066810922281506663427074245051497761661181898182583574821085719283713150564597388728161373074004690302568679361180656809780968380114593270946911712584902280549318462538586463613976628362523162808593825794686439404357210954138021691775284072174158974117354716046956778816167600983014367591677296279327246086007430838811070913627350386947468472071489058656661770235831026826549570133310777174766825758659291666333247882933311646444303496212511233598567287737596029150359741266701931953256595170395704243163840532656866926874030562266550018330059936443360949478342701663766421540081724146416254021776828158829644330807457324730991806388730522448138182211612060777129682944511502606408110468656803248556988472140472591674949088326188682555547345781565118420181034366302283745589071748526780961735651589712759719884081688530802463882262408205920040949439087571079629202519465820048656481283140598606605732273634063991879502574986492680324743201239345547692791527579696386558590783047016674083784406347565863395913020781261164472901863898741792829485033103730594344219019331984725105176951179852772380385705243257280062442100019731753666259730551875744770828490447210991272167981138153948278743747923011907345723824717918487474313624977142410575481356555261216261874875029520952239204720165167887550963098899287472548773107087707215611657345535794126450276779902639276458435388980902149102107619157668637488085375287255681643782158633213469766980532202009771393448083934903197379968819968175028873948274354374655705578399230875982722573587756323609212316734339437637552318953998859213709429092977279376125918702473180442377608342670937518192804541158668495903640451344636432930530856545536293923489867580908008459430820148910628469228027150678265715806897242366177827716628587712021865268136069956252727166699076271955378539594921125623922209160428726780043732151529418294552433896011704635435972110836915268863185098208199897527190159435741032624196355307046682873724720682071278112726337803655550403563307928524724090671731338593726132289719785774011551112637313873251150458921975350960729814481686069628439566443795081838368782952558022329710851959682251724959886624641512884068640960357794743185267350688185788879203300363430466013073407103894452168852414516457835942070191156260729041018892435797167731464834269427319776505307441838635895469874002713328752384990266118983972837172846218744303433625369676005871292261846831180176616324295910548046975116151568896923663568933715167637325544133354962741368065428870584326751122158162831270383717378481807314177564821943535962695394936606158778507548051650813908502688906465335514224547073425049188946725546185081844694064776022352441574864781452919377741997627751227188266169268870592746903958050791185226041894318827092217416976207586744433404711502778896878880982234928269605026248782585478062116057666147804613250445676904878238252485077040755080625204837992630511287891149141411577959169884251375467839428493485870805582251136499275449785608393444708515542526288635843143330066628131649512662699405329010516510851812091386717418374380320421221375564973375641640998890945679599307654524846052559858567781915675721683853241849246112002492310745055521735758666708478478885438445285223732589234747301721771868125068276144459864096868795414049384658270290951621504852770742390966684055796760505358337585208314938547799458661121954948519405756763777903068754309956455910690865572775022039393168176651909835734096786719065784998582856404504038595899671896917680738673001689309959325773791640304715223248651167825613500286111461262510787335756805788372721889568800224221371379355724569286608803693479900489805078145378379863132664998842811262206401104313733648740293279453907877666408149858861663356869116227831388005427127118304877913997423422401750222011316650410397829608171107035307330994373870706190759881129487994836448379874752494773297964368596123470438556068936007283690301664092613541870376107365866364327353454166424308677033622803427271058217039885620308415195961032531337615225808781533879365083919383477787212428159393113899542628015431697861694464378122181004191114387482127885945259500581336372282384084286889797956053812950180959547278896278762695079165252263297227613969565158664752736782283583023665996976912108776117658908921792976971342165642900799561034764703406454690376370885550297068781057371129626779944543180458534511136837460356012154139058032241181398233457745091274681984047230629256767816652261991919910323363779128657231826739654332598485085695180070036506347946705688302870400345764760437457663558789612142959474978670314767050361025262622539250853992500623319376842739949448767850299768587285612333289781998174064175167956580118128787285982313546215877327442374538587442191555217877865665170570996221153787828156952875962837377776547345020976164813062153691492579818731283095847729565461130649623105101952182238160636104392966472502246848149127440853947513608957422623850419954670324829548261477300345236699828059627964169565219795871862406831429450358768834729887919394084957057558538426135064776571770315675852372285862364287918695427714690156641532817867195661358216501309224959140990670054678220020752311299167936750310644030088781721264103767102637846689436161235307510672354613972069387940258030927738791819072484434792812754537301089860893409009646319826644694951048292137404485676244129148817812888316041940348421564170520029251620537518375511551394126953525077666352982476657391424128545130512767143572357962723348216355093247257251190926468254923724428605571222605326767755889885368578769646704440925974573053817295816189925623230133248540295647340259295657220367517789316384619008336247939847274004457176482572459125400393881296016317644238449925672806373549056677330145125335144697283774273667380459394886692687510050648670342078328201507026724306597854125265491931432093356908853825184127215220328427681827428487549001070802661089771245033856368465363529678315416714438418636559471231486472894920569664566265458253840370086729457468605014859531970098265127320797118165495604562145858105479365264251846320282904307883404638215397601813386417350001324077154095521359415005700743539442147375841887962883241432603090090985412474149700907440699304245711457719151604737111945144991227361259563285122603273283125028141244803643261116332323108758123515233280689307507686696697681475649116830571376836763357234126939932202812568021226747959336532064504060108610297365251808239996766297451627288023651496810560631609247597777986459704347259460908555747430097859577052447863805039882214222629207747011876062614845614923309676877561699988547169816077265059194830109486889675610031987769295305284224739111862129186303307450076461634072942978119896833473671364427438827670705105010462819553955133193067893934312035530715123661402560935731881624218510541998625291750490025948446629774881205161527538216366241279231039426316914764317216950365592645004684564077908986857508025135671330932750804530819702291944115367750813508004702212614746722304281019977193493435640043192521102455894868735303987146286849178189167954342234423631061373771972909358769357004319794592417351026657836180847748150535354807049002604873291222103883466919052187882209609073242044672996177353387053032526856640648323476029551937715446811366552553224618376046284574297727242612071086317563032793528687839081934185439217999312772866412629860821356709567384296632512515885939946295442007965120106238330068956473542453512582749220236928399651114485189610065708055749414694576994640174663340766215740477193324009388205833815578876639331998778701616566718112719678013867139695651906042797919138449319851028089987909974099974641675784103063109090763238481714603776049096992158996663543688192537093529778171406359156027571242156403377655354188558925204794744884441720140089300072037008362610967705307650724385115426572322509114788937131945383537319623020876950587568379051307929472895339461017808296965117358787260050732893753161976976560148849658344459502103279910365710754818193573735310012670151548763824345809404946196196961067373465144349104145584442398229907325632031139334017622431460116746213968517323988502377072132456410188627782867130227938578684195886879676309419010289097410420486383468462002638089968484935628186390117511966559176895136430433135602412607111972753620278433550865450160613725714016987074337606182168022158190364819346856534930639234512272483971716645910573430039184903761733552190191706308979813807621303230022335296816352601299111936505077440403326908801125528292152759082443826284265844916569144226031473082744714820822510956072637431092150801146325496888516595438096645366099555652974647857062129238670040771443575507448558723376777942419736444178750598653977665553961219162739644841404704408904061181131206162349031337997220783554958186245823214808941660694586559076751419440135400816024181764632278351946761751284383566571853183210476946994339405303219722409651196960483970997440366159109931873395998755712185490217191502941444896943666357528707304415121201576469009315658270106847548888485977537889631088069719053627104848588617234976831739232110321316750008049621544373271607079272004637255176882776010411942357238938445999778029899231209296218520385229164936668055025285112583983510767002765659451866356980796766973246319293328375998458351500162405045258167583061826043822931408085627217626222476695054450046711767649918931095938938094343598089651777021715454256906204473768740654312851207626920215621201101006686121836014489315722224298551201362839264603543570630501275665856342353480235289848274591046413421637613802073535637970826995480358336880471706913742376428205253667441677842104505435649146116814827550780225499183757329067780538055394242849985763814125042561189616276148779094990501777637398210995878334354160231924831573006325159842559231524482495658908132676405721337783850198736001254458284977173707359261194276204025548296085658620175808195258630963154967845424389996469605170323570340786984853267213597141096949455086241618262824063519688985331182991152491307004366287057111060054579473805350525442215959296852440274474261245818464890063386853808334995097527828324989866731357981021855420596989856434298157176670254824973908741258795880565752673572501156391342379521910284693112802933405611340798017561216190087921491857441199700708690857098017985734334243299320967841103652626604516574276431257531551179765070549753986215333292657253387902752647187870785166196157400930631144318785017301289758953083466701407157264019845492170155962778697053595519077406745512930169641347099789250358474904973850158612516571056385030513373038190870767709978470422283849079107398976026838750901861778101300266081707797173593658114826473043881103126709331459087126980230585057533066180118713079532915196019851042518705371346770925038782757082362848890159566827644138037705498184191695517805734694121687689453080600044966398919871827783887190418124638927386498948290166258606768043449475643707605082272905060833735030503259349967870836061567613854605856867872973825603692123967766897043723194717453180099952139890521194189545089085595557584248877745426274068596985629339166155393932444819778202992817326254294177568498681376339168884792673815731353125433849023564955253235651827993794332259397554358076948947029616885476255487279181534834178103857884860739933564252895583253024303965268829286678040744264163811105751490321171263552073783430230194664281032254864180294478664246968558737858558515295504005990216037960254286392980581349466501547428136066068353034504652903253701957414144201019381452143854277158414268212324859788297191696929609045029853245534404704616034795735970695337199235221484984039263963259205158232791012096600244958212797485408140561006664028104653398055761297657923345857534352779642404403963280663393060010381009819682716231691921201341225207291575613756483652482747622707773235445559354639611909411540968921360457027765121170334623566970530945763441921391927784969410863992658192815758589334097944785446985164303782647753643470372276532670379359632016009761754589730603858963543924155345899152745589987150437866008512454972984200987530346010775559290612418749095030246264497719747377035304723020044286738376351570100599134239968117502282809420012119702052960790421603982356174719850242161564876460332204113984167645757999454314631982929809997598456352536274328524111806842685322740767601422832290472357511263438435164935924054566702924678121337361450889185288061925891866266145309206099501950120165693022959487138947864295929138957312537197251089360491900289443451599996137905246633587589894241780541549029995940069870961444385341667610664719589372052999458884406883743813624282403781666858103234992286553889573220391732623274319549117127419490741708661622874956398079804325263667113846201873996065075419062176335646054590209302334429500747951093869387048907051291721195520079885652646046231882424648261265223781033478083829337522271675778288237009920368339470004176563541027902336720116473771772213558831320103890665892337304645400967526747093172951268482390532098110681912076005252427245892683462706298043809182802651629390558065299232564600174245101508340808315529797570105394579507292001043619496556228186694001971441072473984419766440615828178505335576437728644095662159197002842602940907101956719156566369098030177177387686370175259545815449474021773279759389828061409118606570202559265639166458261931536094653576819322296933897511838266144929153170792124051244286729084385820304450138624079391546320756812635150477890225737131284516287839310918704437848605958781600602191206535620001704398911154119957231837368841125753670313073046505104845623465107274432078399813892603305045645290391494823236136431421038813915944067796974834305155577565053605335103898386447760609897913248182162633061452245220809519384545858530839495438174881782740729572246432815730276947038676640676404471814920214587731924917317487831296356021407159025875416028469702591348679653552329796336814182187568063272932328755785237018994423192646619165125662238921567727049124163329684227236176785244951423188323568973675805945294641000383557425719701011321015451321396556270088648143565730302469457298987101478358706234717063204142210265566428766767840915460883488939786819252669773564035518673972663408090779773334155081961390785333471713958144241068837980345650056944262184690685224233032128306886179151145347979123719895030583541993680794640853209443529617071174497227652865780703662294628500765593697031996801897356721288337327736788143661620087390281463849277122345710819033487043096982885584196157352236059418109422609920519850491124378554008084134715147041242538683386247357596486009657295190003704168072415994598998216756372533481981264734634029099929326497742955890008324975912796529748571407126729553335747750843767855996307233230504269069988593654465867143478929651897736899916058773585297309728921473510528612942259356832432663842517189696645210722100635689941938131585078289210211576285500937731838848828310341526053242407946392446919066496917275748136464571401611424050142156378894509958891680433631983188729188877661128189431933691225443028593099256275235796533357845882429790015944282820320334506991725525141248424741301459092506269489702744714169224723028910261801305161151405307843254906176838033257395529810345089967869689026783584190933660268620269784729334736665710925365554969260178845325046552152260619501291684365357797662242235181919614462460546425026003908144011487536273668248669736998104249554733950141694414163109657401230547183886227346529034728305875454030943288469532180643235423538322749254629980404076241496905411739405093686475728317067814597038303850037981310570838101612943299924234479736950422187450971665191264709348241985854475983260960384756359753626546303962401645643730609090245394014886590229593663163318418974480600278527661935868623041589435510283405991467513389842771006005135339753854791860441676631265925066422760731801254574841041846536196845812442795652925174895361061542571221040891813974174849249221373923065020836947747331508498587358124803062301545238350016182774388951551350165040358620290193080566600492757120162869835422340179754152202090678234687725004821788125590123864583024218331111220081469813025586749825119505938016228953784705796481068701704001727788919450264880768604263702116313934570532439408746886299580706041936394459538728668667200155379471485562414681360534539799339148019479185250246853924059980714624363550395510280777513400964067336683764177890134345982527416707625352895707554836822130168906816858223092414228046505932524251880600020456968310181342080015998734275238235405203526687944220382325869521548937796729003412973775872152803378586442951808975982979910457577187017961959978344865238679370503786072874107934643720010826051330297688589012440859347915945108416370816798325036545424852072590365540719959898305202764485588012135172924096716890323745876081858087291570950346264897714143222859351536297156091497339779159070632936266729664347843322746490675079690091222828241232695239591696894603424162271488367070623913785779511393796213090592588020935349924167611953607203349343775742225736080289012310866108620046050258383705449720429293501213238671417593899486884399566867540058051373431861479046656691569599818973427567044721014815451282684949230107264851487429330567535224604369706888160781413311654859148023274927476231263027370227030409471949950045207316146183612862892752231481028863790507031184544543850619604739738700060797657271938461724568823010271547156526514321627341130030215768680517907443419992028399483586708799899155120179307553178031092601540786324028271258052844512970994471671937236190264162288874835465957624991570316871835526047378566473018425759673982108530863035803776455043383330748547956198532180366262729915421348367061840484894626019219476371152790219311258930351695376048609931829332884780335378937551699008643888625391933535960491915627157738638369355792066866781939371052679178793014652307862655490149944423593884473856749153387496753483758036011943365746256381293792563731821938539235019516130590885493746724261029716054042020595996511650306798235589282463407130296477540389940713409930562078921909009066851385265456651791976083183727971126103445001561828369010352587321877806399118871570227663710598081671487686140572436383266193935367031474555673549252179339795069662855276610236126535954861502187006393147279668169090390017762988102392890189376830295622787512934785921532717163144115276437403301259794519254519767401009993479915029144098200164456202238232581625257090228866318181256178297787569480024189907371788997871600121459165375872223737287087645114641118120039436337740239506460766198498728161721069231516853133342473711111677494695764258121529555241899001383769013121936376085621933375844019926086186973070297631884288046764372627714329460044724865978132431930467134680652533330152264431418267604216147856901640117796594873982343442942840065655881666629820253252438870111149738656438675916672736967860969078808235262224697870125075586285320833521857746051269703860198905285527959697165944765732593495502646612643841511740218836404281283647050930689374338344701076864231785968574852240767375316171399533924106216473130148644367860969439914191300993028779968832587844219816401423233701572982745679899231613337599698553268622062871950673233404350657446587662553776406079671738780544419434807846204559646415236419835071612319162613585387784508194273075474801864815914755482262490759974826152523687460933005752575362623848032882123062392485480218053367712254864562575773255515824625399881740666904329503868595156440734783433761986690818605105148168322958652324421435918073975781179182886685052803038324418566988484685411167742329212662270075522680744644464934220350456754018257906224602211048709264388609288921692729534710830908212962890804119534122760404654889285507254651522670160120714897495237042433993466307418348493653414489685092177845698470131010378681697419793980082050307243315931956681601118201943962983939128803052174334264303552534028920820014360125941452614900844887158696595246393700596105134812479300858940594275578855427120408535059664067605629456269370523939451380021050901177590423364688544463324318744164572753794062069735523223465382403193745333022346186623688627492650542189840183405937387805367318935558586911704257711715263558938038849098784004855688843169778865488098990575470966963955106189299703714751011448323018702361941746265166005041836966304469742892725387617102317729257858748008914975982145438803486708018559307606440366733694060239602541124877571920657485453999957547988324837348186573522948336693273815208122739241108528856241380447960751254958693753189424459876575231446944698659799466710652422599070096424644832229196713365417948208130334576530217095971165438947889065771085674388878079822369911054828478280382186953495638498801475761278660332664354025892379386038274916878488892451811034553145732154505004006287656842602305059797985174932333355678218847635576366803965053538123148174617786141071219330969662846265744636737586526689406847033263027126483764471430881118354843718609022821103203467324066525454513255781191703501452601000539879919928203380900990601595005903921835704054530181659372243490828627799144717856605237392201719436721363585659264907567683080772894077925066402540930362438650619360102861386400051435806138223073968632834083721889716620833748309573864059452623380790476315283744734829474405648801314517854589265829907542411738236771088920210808241989464140948113016990177377528287115501863558233207685834328368719503187721850466213686383874343520100958910443363812846085249888434187712463476136472269487269583939386532976493807310346598015578864512084216210506934075869751252528693388947257380554802287034353180719068287857044696888624224138007816693414244316833306051628734144979761143381639956081747871148709891122607477139709255415173891688456346879809425609009553785328591804086787578985192546018452760418710847561135296686574359491330148780685238804094597757586640103371564366211962330700825494751371008498070062994319924269983926943621075724524076216818555575260845528457778348266178486029020431033329821205153886605585224978264775452106325961056399715765916141508827818452957602062169465953751579992972431191286523112437789618226097990233660151486182430148801772384429822429743775453118292317521686574776526148735403140114732640343823339318139842851286108084472908408958370739269878000387326090647206049524459031635633494318171911807224173714468727058275414741848788159825691216021846473674222432452237892601743203860133336270362067959066937839880161185332575580937808392482523264308324642905584739913721197767667933322981566483945616961555275461508923588564302001629092755500005524899373082104613049599831181536405616154411875906440149036188214816156606791624705030377978690746407525296037090526839084902411774568719229377019696941820409138103879979574789346130051170901955647246348928906829334934642291861441806546314595168351236340613705275719847802568881846233101842426591088140692666300901342774578655335396170775495299672753222637785144760045702255283004884195257583096663521162751194740169459908021413198688144747641381361518249580845990659764673722082152760384103773240633676060433166941811123000286056611715251243599198788474602233914663454063474143212536280413035334443941788780484400228987444544674986362885949824572361252936464217387682934370694077440735469829881601760887618453306739830433516687284791262563789200687386301948318605486277830887136444445697096087441677676973883910494083257965423927993776735894682998717386151657180057472230205912134665654454420991684039185894869222907331519185715407239697638514410203054716756792152964068426029441131004602786476149185812049637393702472125330851847798341855372618837687748857781616075487871992710741092542174233157875156996175234388905581478800060694748179070337548234232538888377057350213078198105322813034623927988540254603570990936297064723393114113545100710244748369436099074885876863508108770395753891253246039779567896076431732747482726218990515874365116243531853942788465701577156095508338470096231289879284512830850958203864898073695453471993677912512340220528922038307597698883376358084622677524641268996888603119136459921801035711253569223780571039954565799560332139076312882595077862746513345168580360816582713581024557817839608559501879883468641527285538569213333981642117073953942739536649849364433875446451110991895842976367830967229625925140614914801768006876550279733208535357238569431335496735621939305288766543101998371683016446958862469362476332487312839742217171491957567817617767094247394946190541257332411893700165120588677124366082756647248409685500154687227455460578965312850601076299378656228044017136632131974100517151080167765197899882360400413117540082339130388467114342262423230639498792012685246727242947195443983201074301206033427238700184115039802988260502178881700978452064865706139486799348789760915459982617942137667345504167203427815337023489209749979375987354578859691590937199753502200265114941021445583916325011591614101358994235512142206291620548812822811085486892630779411989913300064774576365377473243774442113955693354510993334219706314219526742040208117848893114846858378277987072147860688828595648667299359038981751795276247680769071507696992599440224741978314521559128289592346078422130561524219227099856618692225260522588073161584454574758854586710875691999086969009121940374451894912124302269374844456338898506977599104918746056163901472751618671952903285295855259242604555025825695143810510678568683322166462647077181472996207936391269695096242534637576808908251161996445999202224072412883174179966224042592759443207418943776889069731468985526532986273564892049888394582390917630760821283116116658840236650421007696590104410322705478969644605333275094087090034513679452065098462621115592055535460407869044778822165664670233409495268428600593502976024977124567600778003805121134363976598853063691064922815000272083996878792667255901330237673430380621379541196280194560799056132570219369142215521178434887619361613872965633639330647790376687275156221508470777284767533153351530116903833804567365766793859101408494061916322446289297393522994061265706657403625585647250805663563045499747232246533788089524717369555864107538306798703238367306242472137386773590529625575366232267265166025276518142890656783469434677858369372118780571866969618901839093251285865605958372925597819630701952682545727972586349783290067119632109822446926137537616690010268014789464500049121750780039662307620072663156059030812350961810205682799416489526203277239332783696124864574129626564423910152233268099243451199196826861253804739276392036492238773885662989620382470845990907671945971311617676120130265071182137452171013095734951964045851658868855333571433565103427344363729379639792185385465915123857588272810656033267092785847329024767745994451311133418427515104160095810203512481114105285646451825180493499581476891941259020868462919778268805057970918718984503494698367389694273238566041195748339645424351137974011084985918579950869429061684365065973227279137566100142146345179040908534713417405251111599774698621801793130381771467754914776798955231805000194044313160914771289000269019963000776856214508161157787758105079971163065254854135255906951709675812045084289480546037978126374162728763961618347830298477335535753766754305422857773598347490903830639435053755322201728075270590163698304833319703699921160071371955651157021946410160170737122684796186049666209733891528839037214606994114623449584052965096927953511756015637023845768487588581209270545366814540969370772649327879549345185609686473435656079132346286962052685748046138016488891285486134696857114029534220255643617557636103431037512639903560006482774373930801278106943875146882561188781248527678694330260916729918667788239712507370285968478664731179382601801427101103699998130161338780164200660526797483402582451597826830322738074584714448088840559802842481381382552367188055003856222395265305232396148930123891025456609818897719392380434906345257500022003173363405305706293826723329329048223154933114773738752481624674708403354356179764865654134963811167369945971315778220739879785188937328968101002173828179034007420408800009934290801144935785491326354657989525151185726232945749604417261777273452075247130439380089506688877326756781342503454689661689346481471668533883401467123658446046248853849675658921310525659043206852538529647437864475849739196659408036150589528255198597417164080673500696984901283540202999961166473263471871778940360856379803446892335668072767614223542705934262001367900480723420661531532531411474780549077120906640471381925149727822004710464141959164665594642274428461602825381335485732381778288848915069949661731477641645109706668952971923739622026954551816443104357663031079809070420583141474175492425956882627079453422940270492521071846244327902957952985228127019239429694347827280779794900515873135165184929257850535393816366096128062041272271914540228235923036626402740066308274870090239167322686286856831312485357397130748334320739807168849242390606768367938684095219010841685238182875580928616625739506370123902897908765394809370745882874855390056218277074566492756991462765804303989392835940163002517403744435229240965263463024439623691555398353699961039750726653779217172329097643859829109151654980505971413172627754183097553147165751966302790262239471516417557053484309079838896161003277757504957581856338980073857452399906829945580181203023907839077596963867626987721724035191898759330176411583193182074946032422122869544471413879874354367138504560239219223931352993880285234359581488009115717690188477955226940434508181939307347248120035909043298543983534929073457256481928756811235655069892188186265240648583031932268059329599837939894010345684086604707660516829792216663934698093858436119663529109173444843944798745490345282379187490381083158691926745049505201870724906608418769902505382611906754061249408349713186572617805334924093454829383593264991988648424430142586112274687336920606212955943307210975039126641041645244996379067548030411636140104409073749393166393339686732179787138001861902000996665223535898261767931014848292104752098739662108123428539133602318423863983347481153044627031314979578052053692300450723825997369993006281935053276992488268563550214869681189396058842080589114586402776194405285639682296621366779007991105743120881184291400413235845286043164096062577869088134077859523292340473373557554355200345132401374168390970748022129743842870729152628276601978573798573286425852322492055187227326812836024933669121971678557412766403583488708103646368986708425127198853688785946784143183050838797349152016066341106656919204965069223232117739773655176280672311327058571072750181255596034067053910047514520544476174414390425242470981194523732091112547420071846023663070779018903155305637161555788571260170397746454871060587093644448014942975346029931961430417710785334131388486002837553375968680348574888812497945729252538936906455529162063758633384846596507558122119020213928917712962646205464325182640806933436350980293140168564920463213221906243229476639402109923182380573003091350132132320809051472919234230861728364665248251955009932951290694934053354415876944716624004958456101630884409873949066761837367395221741318402066234645808101864874016688495528550805789048941306104970320981227498444592938500117168931656279873059357901834938657476939485524865913718355604521356913782278999802841480177023503647539557011125899912082037596597042294504913872028368052841813825022048609674409256617140092548175865662171972223965829308046173659511839700938034059619722031189021867015694309630686308452423614179225889276200163099138629926203039243544016216032628466405223903574790340223654371121772578243746696236303218886709471257816678487409948950380497660335388688073268679912943327587119141649921775936772319275121520309881247244631729940432074697988390749676273104736882648976287208476150428850736422357673210714848027002286872095605947076481166556056932094653711987149266393910428194959929024651021667441440966112790667051901498937231427364508452007895924934686668032772336454532482692663868463629163707518523420750893926665727761438949888579180569514428961893146131546499975617636190857939333678193733737942194529383574345115134850272415475041772234922968744048722187149292160048288208037465810341164043325221217501028234102973289207106006648511997849748744413971572779111365573917457490400181024071807217614501937260006939094030937177506703883801838859228096154626435906899670917271249493874385184236979385889861487771784825815095304039211265989883841744622438984916219914081825972588035179137487710089605417041286433503021589000505002483483748713576131513439111381073307681388221621631808236911589089384521700355837737597510277268778175123811328992240544099570906891459827038384816548191713093959511635729423999571890397458759440541001962069145821797036187036295842215265332485498354921250558403513091512998188699162518220523782937748243366710614950357349130142575827957168603709930898818527651928614243662309640739296251183870870314915318474095552298782261959409017273773284300898824153284853725088975975083765872340307666497286806910148662299737020681976575340314490178976905911170230362808880343454286978363266006830196672308780225182333008359716587574473094559918428276064482759426826885722370194774252332652204544653069146677023156936217604191489701112361169718157546006457198632427420216431254455571964167162304336731255270014799733798546815544357136727028165481854137058043208544666678547450295817865038490052520763652511659611440979215509880580042098256089728776922736761148296059721919963768128472668625986392303499539881036364662874095651510899503033189327685712899681430267085275261005519749476627628864060156660263735331377261462203498827330857379645180839213300876582192328079706876057583503865527976168064969015515228744050941210481605595367894001649024807967026578505698542967083079702504867499435722596704886176511749773518668986991166910435277022437813724812325318045014214696607573049935665600121479327896491171464907371195500538921168995629336863356669740423407968191062037290265969896703278512297501865442508779945523582743011099996055722462060644503184372181112691097305730124254341591393236886907434684465941200005481627693496177556377650968699733079385929876917173459086917991068270646676874073964035677787237421083226694642911797055364397137524268942181444729294257764193215478573376753343750177341194851049362297160856281681485756790607835559166795299411880534683681482324506825384519679820622298507162230499380676016815041411594620903115748321367844258428111117991217107201343463314417717741085084325422436308980366980401010573208781907144860471355454773768550387648225698568826513733278558057524110218707039016865882585918942488099382485155139071744076279512961332306761614860183942781892217425728687762884893088809257971509417632017135082469808198983796007007175568882815146850495229567745271262365131104702926525046528080382844735435419282468421776948415545698430282895120946658383886853319972417429472894914300221632889336732788300172920139532236786272544633160061602738756328847523162833659271413541142834095864035888253223873698065443507121419350191227590722718027603525195552842869142877044200261792453100622838303071659687693906427343624882980753507715395430217272924219231876979332706524633427156605329491383208218315290291528826381813094580691220733569745298045597681106098080340289294942597490421212774463982058719316249675392541167860404360439600834625479095730778745017191590586157535338030412392453561284196593454456633611194480344621556107852016318056369759266265830712529148966383573053522335402858847662867532862855966470655569779161838254274473114916907481466556940832800867491179711026427972426063214599596975943051911556102099985832307757821574825468627107342282436636146279236760300092946733559459005521679538094379691869266612433611294233075090384042389991079714388402788555581821292954840945132175703088565064522756806699988365975208218775979360989731790425854380139092038121608219801733642979558979064162845989325870939308283025207218765033366874457125733458453920869987359286767791290455651609382374283578343953054473775516973021497321459148814947605238587020339354363673368330287469489201062291206103680806497692764860547132249305769447551221227382496720869500844697294208584928864267071410448652932525646212673622978988709875495594127797694902981224351124110892433305202387502129945676890873139209689918112359634429428053567723311912594995378161450145314908055320019397504973752478827960188124026942025011604701999328084358582380992038471480183506061636517092862057215445899180415727968345611511717367070810078675015047851014639265154366517668428994743647812314242288453317366780087846036531017187091120106400708631079559496387320766695234475605103742061751382170578966023789546860953903573408549930567571393665832321689522033751069867039712696290719438613723265886136384936560505110995708417468188996207762518457718771621364062024395636928582801149380072353371501447873299763517400736395188835288014813997923771458652943687850011216435053116210518464441431905545693040741081012832184358933913263380396256596357573565835709126073225409099571622143729518683069623599109331102540478698365990929514814701677456468256478901010812938284391424533512893080135848074389614717556680619095338125696748739667008082391197322061732953314154558648762543638391884380588300522326229560788006453920278610751466176802323324169230644041987110345036902445461753744090785582536876493361493426620842132087241867892129456675155443809849964651775145135828886772201952546254199766400855033424205232159381209301525398047320773957209917590173973711790526815951309024596249808314995414758212270373091491782968246888835815479769873316413130664924605098555459280670962475421667347162678217856112531639068857211119657312451040385133716738869971496106141490475304163985758703727525587170767085278167072118082022601970410965690195203962873919310781106046418947761733903794597006616822177612817131291223055748979079447994037239713116245376403424727249883988266519830205351545534778282334241996331293119799038219624675796153266325558900173521036122906488642711339050566006063447479122524175912495993088979287402426272399530625794469345776402318106060448183294137249482062895775672384563712396945345641113417018760236634243588310326824248886595330092391036661358716779125951941052658259187916747935432571206231702354159170496062522188403613975677730295217839580983792204649451905133301301580624272185679830933376908786534536589941695040300324342251329093630751589456157277170434065959052699546030598078591720339223431080151482453950115269711080283328185963306478313809100245742184487196027842878877467660318350557967625919377842839902086421357769905794017333925751632152005812736184464803301301364685332326268722176793885070852646512002364922912525707830512658847097758646685815615773213952511789967137772781772383096231674756398631169816354351280672455390007727294916455636528467452449199574496103015808548911352898646935905408425197164050901246690352921023188273892833735555525475593020641405439708601242915232366313237815210800176389942512501378622154657166658181692965585035341361733278481567163998905096069764987725378196735800586502170093431683303907349212856631414765853833372409087415194097645222507263607199191870428576140674022050911534542320857772256177029651619621840259645049629840786031265270934278319413563706181240211027560250887881872011062100203518868016070572494788157798724656060669060096786256372836173325245590164016187995025671497137636083969540801522442790534687704664604204987571747994137628685816186664499900156236642765192158669151870673584472572921510987344142090034261371470574994436443041449742611804282832560938845394417402238122557989942690485648593791687987389885539236775766114740644376598362968808638953532737377677027549945959710440270813638387689318929475222738041909566796037100517133494478683569712653708940759578413209269570175677972741095455653686042434519978913484561767205191576261480596002729698629224814285466413721776754013747770655038338333130378783378373730753094697614504250575010329822413652980726307755566875138621808904915728145464608366306396911024914265316876041343649251369468567412125841905591537780760968712519323382381517623698383111781132220371616713447784536170612410354620586744202624896860132871787356415764442759503351459910215305772924319844732841515975430753356207951701660106616172250875256828148114224994127777738488689941043919225333911989497091477203756309002111491097707179070119885227567181344147879602327786609772584118282064535082681260337342587948119199723852878928016155334574681424165594989432601621277821195410856935770616144835746982268226652627936383752918924904434815371272290558322315471566925751017188139126913714063936148399686656140682826090283468271392014778338312524235375174453855286598157059154048733211592511571084001172286884736394899022403054459908439917149980733217042151320017779119400796931189767091469833195400663718646362153231075524345803696734873956126293719989980066865427245216875037667366377405728923033945540579206776896618687536289402544814889967041317498789326397543128939578859702307981738082544107408642066164707833248148857798377280702041183413824550629105269243699959570503233626420210299985403654251904411403890748794070479426902830229369333146557796932107191996699540267372797236182515277212078224571716856711667705377589036872916399639122978472133796004939927129409766379642770533888244811036130168289558432897602037036609319923929283260191336620515794999376644443946396633710859796555811284801053316531859024745288244588466479731086731061800454926565722866105142377785824163632466912281503367727668115962008589563168681422346882012121440042754901702441849011908700085095111687589548749823695271666061539847162247662690606670582691892531980858888684476766449624747945015757310741587510829764924748441715249393060729523776821445515589639017805922535095596458420305706671482123525251145056578437848799076807895711765216067005498990578306745369850987978519196569920729223574651212932937325720178857592079900446347670698173217234499769193424720131438724729190495387264972708124633544990163252753498100095618494711787643605227002469426190901875321456106198215582052032670177145746402775881236210263489018162725107184296185440803390087584911703828927775341453585163093753084054006854068463324590515034714213358623487096955737683612706017659107647686475799412407145673807092704900308820747114456024776061302419749948284181648712713531881456455255436596843835685098863498345952050569458598688726841569751888867207986879970109501221579267001022576982240444914776665680522257578381171720815989306048481982143170281784299210099520509113474360827615764845805302835138753796008782808976951651627535618442027483260960370529097196071897237726733050192973320763961230701617627467665051630965172622965866251239010612425909425980756251802203328943633437757891246441577233455100450405950965998866107252654303849960650405188992475250366830752265535386455642194450434243805787241693629413021234359631270033606885531175243601091628135355560390023129909980213869816210762236097433028734611366884517144435431766666207878406856587841380415655772534364109762747175988813321931629626017978618797620874360853677441908915639355326662538279608242695852291868723827613345169987500422867759319790730929053947250608181871065543273139171859581716499955163314993855556242107584362762846840606094349523375496766604836508356344775494020839915129820143754636824378989910870364416978490099907608141937735882683941688065942083568292986850596016463376076342935911257161613920109615371668074488125310679664666932995950155713529476822117487672405395343721584164109362784808414611918440698682784837379492266766157062110451638993627209059796052725445604356845362288449417682556571076789893420386469531116204993458587680671740804152704538616691091267244446086460031595461913220862120419508419413600707797791481114850604697869300438166842357080288174217286628308594839111338496125851635287708555692957818562883596635262026198782546617014738114666333214740254042331850588289927767584728925035361772423312445371082236029761388818828099069582029561975385668487956077564294011750532227018856888670225102246560669531523053898099602242595822704152627096387947052718096491160657614112503977335419933458099231420138553960704179036389737491658263010771978129447867413506391922773944982210524520863362673852281676727751840250743040220489216130233334908933096109782719648927693960289442037487607017041110743736426537356933800507607128701063632738441669519304555356840443735332201527272323749313658803327786430761205509180438902129192026674930219993900094148362729177191243455188601143498821254439098535302932933943215085502444459369809039357107621169748833689083530196741602511784238263937906808694512587016242808493956167599133916020551486771867395424872420374421610036795999503909282803748779213587353781355431038289057813991933097297260257377345878923810146043148525620932784168117731139104951253172136424999263269438467464015318200989487905877525387821147811553993981401886728293060507225060881973254285041671636645915545776412184332082493414876453338407287059990038884344261404314548687567780811201310967966022910873947854880175271258758124958744394127787582268790594722374887774198740926569500219289122812718701867335483716325021080826859116121299188490919883176773719276587883098698551373950637060703139184155754453547906647238721466633991001740793130339306192027525870851274368359489375691649375686555349078769471163126906281405505235444588043279029099972685432721423735241527152662200380655631035809646394527520890839913163511696171954656959733838498188626187221636253016006075608301029998510019845463251331852942135864580885392883628530463195364106102790567054747787435250179925605111510447200728520386030811575908995590922382049099564093446377892888788880406732311863442578093946647108766837057120684412210910596136146278585762661370935626979759562133611185035433617602888695969286024973315876692788156927817870112064603728884036715474765605634231863407419997819636895661292328989743864199853653303645696323310393149728140203007422240469685566479474767150254103196979863309199526055631077575399664744151993103485601771739224837651971346440746809439009023460235350266148725109765385643632286907024540845602192595212046145397150366017230758827572921446300544997406213882416863916687819827476353343610003147420832836398572865768640475404329418106745810937024404328561365610434621133551461026847545738570862217623349381547888660617877524467669246251391717292479372686661190786670282010486226274338173783816118711969012237893508315297742440468093796885628744470426837424416632139029253665485352563894871512748180364342726802094625063314178359561771229521179117299585241812674860651760028120675791852472654810507943902831911722948332476170605017942377691801830018954177874012661906086030198748469571524448874330923538425377784545015201386923492431630589751156466412360755072521213860085992895571756655199948995967952971361524308095452727037090625569210154776813951624074409811612989207238640629907483804441514133191841812719459654154312613536571936536342854232422217596487579733110986096353912345999934725602431248001692262810827026511653002257123869068228778369316318267729041725490768091409392075120461753925545979442959476262954610698341599705804591251610725915594406482219888739374738934630903645393337265947438565721815618446909499029858765976541560127186544006510505424885174131527449722058000723239307670243734582194631874559591888012300769914029977563471966528481949064022745646886823697306154973674598464014069080461961179341298637091420450483886137274947064513835849166711256933239614249677535878585892057834639667760466929952713182705678699556800718458023174192931018876578873862822653898507251937874185337276701280465538632525321163572485558385386918115281373695350300370572828262825892946020576681497759709848695415520571613104487264241536866754801847724867716405240934731512339996264777589058923167258671643028183674533392156616882447977568561983710188004286172904693115434302031987306975533451265464921001653864758008631962311375009529614071093730785509820679945760764254814424449845397350291853528675006927450085822807622874602519053196751917040116350389979712056804298067820497776083592431674665148313552964851243672546052309965988011084452382930053465994756836505311632292890428601970447148792168212530478313969729915525903429539417207843125185921118720907552528349022659218753898293575496904647026547653247263454642699953625093806229702481362319014659402802439511625071052752754078857048109120328485696511935071538786395248652921535794603851062890769503267584991110085851955924385307724521406723929292408906624205603491008638765624946961907110664606068498429877404853420373362833778037409291579616870709058401622669103694438135916562868827760982387668656572574898078882081040456783738761421095399190825807681301740870946923844240806864932723342178513041145280497004078906789722909769395615990423845164526057456159475653065064006276084823794122477226215337479530510507385843443607570764262814935497640229987094701793284056939763752154616142136419757547649719234090180268037590975187483447220078946259598143968764875353464447476822995756012646163259309341857240132689133211274771828192331847802317762082937591812234702058133788195406616307105556675746066408155299947060614505336736811936366434416901583520037245280968978106884174913536594710197568950267122295887988461768544551804252929637941430928802695413549142993516536842993116575834389970343627256278913925737760993028792503075586558903219236491545112253125926861605918082848221463421742394051956274098898617572681237013100820722731251858126989219400161044987961729172617259772670237428163560726201021827645679098920822860568972828341090670899244923765969674229911765370742608706213343761454503553545461205561592300156600090046037203353138329424758677837187676896990660342523110011975039882727280620531671979382198633301682287427325899820927166499699886295330885028869475257764421927546546420169894456712077756485444688510054366195155661424407836404816046162612184215698656410717952516082584121673568478284044712791392264402308149741749511318354124904667184768815550141874602323488673943145168879814377816381540487673953794367781862742151111032834971053364257591275852671750611768240300327896101081594230966603836830562520455392748682590790864229779406537708703073962246341365591450416548383381241048254195966639799922452743513565766311960114680574033337202571923290629182743973475118829034832581781924435786416025125612433945315341729196765902407659293736265948959224737912449671253378745164704352905202178516628796439210103847367525563708750023458990456881486378116166057723120068190950115309716647473469173902788094417193741072723463130416115080833977433818834275773074590027890980324965562680319369155365981838752771258385341843326712997388152908323100729364841764633146635121904732535267925311110032470361824868493615944764143712798172113588100889243991925617814606930766510618140072276469131487238555097811418471199999725037826553231639387168535227639664924540856497325624126647527257964913103599519971048416017441537021739038410434311852663662256936263149840216719194839098889220591717402391206493756852462812719665723462951359038597784467129046653824817550381904480056660592555452716030396842264864177013715114411273448197831111322413703620925312141286947704028398522081858093120800872554210545059621463564643494824278821559379285304395721572396658311623130705660708573567133348075266618736782521529048164807144685932761354249183366702026594750464803238714645196829913269603997685438067585233251731045647829471278802343481785537110316567817393238278956563183183947773886835839854685740954376051011692499088214795963629650552514786038045537627908371819473730428549352445049097545320542918206751954950173303338808016938268580289935397938309082829613218244370796729792567998093887851740076853022675177546126884814299728271319392385896446010342960851873789526031725274898318607293156700513649961285008990542633221135355142068797113783073483466774873848607718868213029411924067252655316866828147121201384074984386198863479223160210959444345120252177739914926487552133477801695987978767998454272735637512086882724487049000001974841034150960781759244342815395566435301262835049630952107466660774167092717999098433932582770508234764952767576099307561020521028663565994643292176377468493327605230152873055059898695526615927314664840548535269568865754699601738149711082114695383404650407987117914115271062426259124449226269814408720161685207752428206595734890544182004815042047719714915534431150768571565053448460972158015792396112994468129515221694988212786360029040392643105101575041296265079232154830001990209652443429344812764738701497946914204697115355571817756693585130253998563859115580236551089480576312680948157703736438461218219142123902891505176543795032321573546623030723821430764265803633916726916864616421360912898491882322595471150478306903856321432659280188117177120752059435536593420568178129579323809054110726298633205426664081767118400226028825085023503573189256411338347371019897978185085526173218341743742378399370007274074355165265151037145335702012032227938826987922073456054401674051701167947990886214401741441339404745812840488453629067904339226620450740982893236045949529703507878780064701747025486753673764181777666750256729054611949826752430425086431695723522876082124445241732812902308609449281384127149190431783688347925830685856205385360524678531360663815022641447041680322891038741276417099909458924153924342719178162351884965727099288500762465011089675245213290341555765905151142062157430754256333809968619121701407350039399876426210976736347390213209863587751655233056516134671288459466866339882264968110074675665332303163445110866694718124713374880642133029448179871075841387395169861435409787823489533931530706433660928936138752695418363195554171673681354083988175331135361764629469887971452527368039987840274934932579544917022138884647223581547407271050472633260177515257255545829731714198011312472301923095783375504164735717004442657497431250541225031728424745041520717662553181692533389491207169630866776783392863564093973808736597762290617869414473841562441448231158258917826035091374048725481724969181601139840648577211949392698422873283095509432966516346572963257614670455571680955508919160612996802402185629768293183042050805638059633302369333472862133786765589978710412127286844375838316007612706094975365452288646794657329856179759855415245790615674880416311120787723238269327272369700934266741880017209716267103358734109476149881845558700781687560670750731567985768422124896228419240501441835411962174078060971599321963497579242552534770783109073612650888076407502132107391420618916245310920881132145981084086012756894841355530385311734829652654971516380774752106862955038184877235553729306070779334271163390268157349161216948116379465323983904019867835326767351767991917569570001938488675589196385674938442369862995783997768232493095964910345694468652682920747298449605839781841776455057398767935161619042373188222261552518611945224832864481185391632456111087385158572573631151282378776843619849211543254717186008838327448807998594536785892240720129415279748763157338087925870817251806534742218458623262690582698634966437697799992364283332134812861287346546605908149457900453471780792630137563072454436394348797062037114121856886068351472052204363208996566044810795355336074752744306925704810398351575295068529718340560448592515434269990610057127440236356475874063865997978337103466711489931287311484853845413359258106148304173526366043333815981068680632235261713224285002110127776993099523102725313314894274428254744778773393304483998043580898075849929617990429722543587248996770777933502000326393016671503313620737646720586924566146231831007660773563051455610859281063568147360399295567437597337968476808937582388756118408763978251827695555821950379749282136573384448659167107030943070070502192538234034930935118372326021635699803354785337931166785860659775265987064996361215257639361070729450202564837102685541005565455227516310460602353155277935606317289084356449691718274555709263945423710250972577126896765161345205730365116567265348543145660252672086346430294860000749419818737499205647150744597957974214048645862104745555814413763988520816501504851457589281556999483761713420290635606085079059403342000988894950833348485366220203942076678449387727514860663053725710312719923668042610557792556863178388709259360799513046530923137461234969783112204501773267134929421466621573564482788161614854789567101558791355985781496803445400974656390197354041786170689178493698988388979373352676327808148492311043335003582268943475747376228054432508931194903869726758233399997849936286656725292683434755653299675881467275228391520369442495212511946097353397679280491123574235921444124849233667309592232284325396399177291039077382742525110386450466850120140907957039337109865853752042978215649564223839002500056176205711525258364967449565416615110838145221351515279655407704812550859373377494526615083969931837543495570050217991007851863127708677612732553752478540554178765747414475817786835212739346315142963400869950296725090355245107818059077616667150083648644414395449400782592733516911763583871066202615497306836893729720926586301985357801985448637488082118289244743957438166997406310299495178177922354273280825050404153455786863877987682918619947417280906121463734772490035968778339094245673344607908258515620471371116687901344459946657355876398371385157315296188640196209710492573650245514593328362368786725704850470383687128109319464949568460873821049948631633688720918102030479069084962247023973209534196820205482308283751572550610798923615147083672688819719254617888034369563284787667982362335203633457452962239273562109216483003599322105941495062351388965981617822875590737042025550591812033126664842573294974340315865239964394567500042971366675981551223035985167922918278316739448471908916000797645025878905032408683779452366531984555771836658392676272445308240610567466087389095731365565564321342813159732795098739021944441301208947043104346640476235457502185794103211470106597347156289827277758226464067075776353827566256745586658843611830844770504519146886751017918744403850520318517995230928067416571083700906603868155548907699512544728878572086197509151460524879490183972262873199465279105563241282237724757680148270165474182333254177180751958330876694512493351492019852678105546632367649958624904439958868131409022503115773676357875067700716169179546462809837208116965797810898857285354368778777736092619851141220550546676837826778312461226242074108013160130118712493394119454719769409396473104389978062514925109746939499033515778278853230225505777953659734296679771842458622651950668412954202060949542549109297443401181241895184546172524225597989658251602919988515551300799681200074595413310117903540017682303402158828765127634082533834559485616900486937384047328347536364895675415940807433447986125148438065028440937618494515322619941027540376676203469982092750168214392758860297048026249953132938047387229970201284615804678150924911511174886362410850656792607587198057821606327405673241248016981824205673188268946201942252980758074841618636125547670730741648897355782461820993797807203373470280520662675661541886950388744819107859355936997837588153037479043040341429656352410548874279490886599349581421542722208815145653147566229803652458917470612026727171133539156756596228140026826771826565501081643968543065109490745845039714870337957021653490497378026266068951655204154399602689725582787890417096707727267111618410602828868678704833063270437776486959474687450274622779780304775396753873663861000127209807532343294376671524483849107932535134604396991685345466409221557326233944496334734964091968115262362349245412915552553745755831381147390243110846294998372472171679906320379223983783722733080076164980035346348444871273466927102944169637681198253068335341783446581765591863535301920028199588770780446931640798282805995102682917400758487417823910066184454165950660483881825362877682221262810074405534789213107342040202588262683691471470631392679170208347636658045583899327970220353956254675112097625750587457013740851262847183825236963457734776443192429050306558892091711081430910291255827803334396561860193417434307618136699188549510311504879674983709019594433849803018631758800024369999897545022477672918654833293577380361749256980386706754014945077093156897659148913888735456944155526145412721510820547256317007195885579648853333447044729029069533154703919122277282911054339197042480859441182127290600852503850254838898696905891529426163080427864017011911299877783838104510268159074508419812429541969299064630704139250515654203931646003755506842430161780465737133042699132226463878156634932055259070195606848732296831081790329397694938043438685903924700508550030182484824694106442676755645548394640280249173202861942270391995854530223465465538805470689021498261998092383768695801001490154244161380811165504597936653447335607719837527479737070365774021592303794891696950978954015430234156837477776803915093956209628407607095840346288600412445520051486584877931762571024196402255497852590644232375558407991897447220024916391571871850625142648342372128970249511547904056158888628000640547332457308966285065786354807057256006115267712530192063904304600169857052546047310688005550809169964632199285112298517036378469979064457752278391335075750674522236964205960386025736858778887767982291224895981130442803660833683114645762000824071246726086022812425296707569367095142800901274932768320299785120261242120407030417397800319263126384002685129046999942692644109338158759341403386954714779299160550091700819416613149892783146285679267933642948594725797667604790247962118651260182140277998857170084686101023902412549495128940096188850945346108872654868688734008596781075487031893327265540320826454296860026110579096731196546581284618508065473214496458328532672711292147469283237709595648998188613252627265122445080516204301957696192766023096353787455388506186387404476976944500106836587469123782671726213473716868686293748419751103655653111141719973293621253568047981694393802720623890912116040870992405888135240285570368667127849227348518019292891904808255555198953397028621093130363014836990818778047417827699647657643837695646102390902949225014751690670580233361637374866932755232913758781898916584109822475193415933957379993837168448068925187507662756507324004193907321677921458138945819644494633932052117248439988361941865661877612683424827703100999483017671966280081742225194127299150850474712371739284239940806924563494047255344756405995658435783424561827812967950088153370572199205353923760082357801924334619476252454490941059275768464440082287992679719410877062499207845531323591054271737848367289808739747191080119779779085462423374880614323867048427889200638261212599958806012630488795191242809846592934188926042461886583104563949994658726964517017675176841140514774972844403201143050777925065075927789388103567799926568955447304129754015785647488318231798216271903507611198950000111554794924111691780820758015189997438444130712580025009968365555391722904885073882504588480717818054380879665901987786427843588763533562749260450970970936721319654157222493390784910096322030906502718526238281779783490433951322811545040411004857272298715811444510386387025191504753010254189015015440456343243067336724134905364685071077691799624162226081559792092970023643689148334084195331760853998308755346424312109563342009101737501107680823479567999694277335127440047515808477055625300023521229118632468299295656913912942176768531252025655708827648068558206283183592845701851971809880588833736595176274157131031303184213958894093409893906240348397675943950633432784743398888552459515277760006765723125929464219455151942857303407153393527195586822548506986717329217005710603372297946264741132036473526651595877884093742782040534004600988788471350665725234818654887376186538467499737206786175024388940831836514122034950097392025835683086314915315757945514010388040457011586853745741190458094559666657600496838257825359278019032181019066000314334523113828366403918980033865237265948121480490177131358921749046760224084689937203282150697616105001026989699157097048326045803093651687454431311135898302650250015804310227314906655598910885392956458382035921424328705674764450706730302045510197243213512816670557112366398577421490014395222053986313670780274550701827714597430681452628739183147135261688322880547438154460695956785598694878884338573836120105927510984868356468902331620308358524621545161577359977522121012400113983739070065724741499217941154983797383173560974592621916164591989865864748385525742064141037410896922369958520734250433719019088508366575103945693317815217401733025668137154813843559162441976782909752667621081301310306252626955194928383045606526814719853949775740435204177694026555627433951908120501773079057116848741377304798087301888041891103797997556965261279174989616727653646464680055190484192665983574936816935882624587106302649956877891529832824738409131000135098939784623319260409076234791834096369588368810200883938234263691304868258255486022431215489661468966565978253683095951169015940413385895401030396341786691815363287289313719257339926240111785350225686442635904253382299021442243824975245628695948955162774810361103191508125118608177683530609161923762083104875929090829005930778690792539469090511654619068083418956118787714156298769353874226644675453806520767146128883269622776313887679894735089547060117379660140252769925135092183917480525304143028025670620397931296557327208449027376813404084676397812158383987982211394609366688017765557218491632333978690474700777524694795668001051925902140900434791897608849213471344056195605419750056725342623632492999400542131266671394844136805600350409246228215366358311727507947133090526641423673448215297891996870914855750744432823625049773689998320256627937694562256359863909361113756705335619105408485440699282917006989141306021996663370495126853758524105271031281509165287249962385856324489298726063841423986065310179685894281154470191732145035527907155597137206845783148592678781720138987103277496014818152433063356796912392595691597367931109891834258257896633370302586087982629792397206601644866856275808811252009003262140122784989095961283239684482739759236449332642588071156429281253969916758960049645502151319275712100266518533277589862770118992428505328338186505251828207981455490091408493382561748212963232038896679223444034096184863300941921424277681455646587175103753751553604389801269324911828686807710550004685950970516051013495067714992887844820009727500198545957417032797376601518465446792564804178985591924303865458356945866881129405796754284960883545724392531280669779892869069050694679197540701975931961249014441202896689053098019804756722946851847760283928373388473865487993148830191817143880431573220335377264686794833897831369659325177739726981835496476703010819952022182619803375787216621922597676673325782845759978709296156402188918513183763890691194866203878615933188340102675645272596813942452829719661595909392150221926447779572116005070695096405562059289497948483505009607112111934961676716247638148870074262479120651528334573826622777572213698254697995314802995633649667557518864969081694434243053718476432075703390997183215069966181519850526947773595514632193252431638440146829209645746986903234579601714912878078240856451443029306742194335671480591402898253160645602497839207906428135225330869263020596317648141496132855588371258154404804844066466065191015474586211303251844871646785860863245989955509609200377475821432737364844603199160852824483973773982956811247436740100209862611285029338019427333534151443600154072178754143334297761469190632691039017051840258947442891833422636066335482489212514678864030219087494227114468403093930508564868157485197677934010148842662401954139131170067325027871805687749491361197105069622945588317123798878253248703679753143246972011531251192523163699599140785411365352359481240847011729753588674301936477251779289029568927519889563411181936312056135490315845290311681610593015427694145134811004188264995237314864929563835158429895658943342873053382470431057353599253068688845885498230625524968892102193121428393538791371190717511680895650282603699117042338586536661223113583183208857042940994559706511851990830371958095165362092916443303072815007955344372891153137568140157993551383604146423427406288398030480781612861528900755430316990893108864931859557924425238778413654945816157244310380985888594035888224818829084825033340651737835539003127258256757236491207256377974242985024306200456962761630645850569359299884177442883635116849080304164618096710426573493631345251718258745664832641806599835770259615262417695179609939317226564977168847061759919871626464001610024698976121458571122564803723760709028111208263273702438098773894094986099385322654577490234914132632755924849272810478028668842263117911499752492400317756155426743452056838922119396935045697722742085542785572827161373354467570893595932921822405921893067934537457905041780922679992411703640297470186844365835126604812913179120995873029883085492438994769739668149880778332553757258308316242542049318990393238247004817007528049725867717351390332460691403787448608090536940934114965735599790545139147802450805727130214166678801457528004885852825323637668591451390962210967416696072242187885115394435228040305927999966282766934084846015953137155206970662689295005264142560328295608677636221812114497586188962898617789733251123188177581964953607797009693539185040380912995205564629621209522539576196600705690342314876468565261868550212776173194168422958825086659164513286771630531110141292452320387677795404792787654293427155613958529745787643899810161285265777821454101029305880185942812540109475103862237205016377209124688034160452961856880679659749922087982881217713063162829353750286786228758775229228412797144906334872854449597371399281380674358003960342237268357318199476342381394394654215844899318724103002820476763462954791731713169576589648582337125652919060264095698254427284812929227901994347919357678875117417325402080219477990647456992684564028689248909638843348248874226436354129607774713391651065416519843657954884010800383555519453423167225916965764846465984162478555305717137853917337764538092149197015748507382179363898080632907981074348373713837085320454237514158429121434209275421108073535391534352109345813700718542294273068359595183188974053831046998611084134870794116222049416273414404349278489079827998542852809563361437757050901950611697139388525031193372332721390414727352512306094728818292362461291771813195685375483485544964999044230807683556436848052205145374645638300657833026873513381485301049057596288426402106107989761951641478146061484627823155632565103513300018179702258738995290992087970241886452803286949567969049111464340604113060058237186521053046743160160150595968657050963745367960281994962677822766796480553487512613242112829906892290212883695332306416304799817757564828759045466244965049202124152032012674546848423327442999180881395730031795225472996025618274164377292002274502991534746143182690250597904213167212588139505169819098069466869554866817072245519906745480209353705827596389398951698565147816960734019236876012412175160313925499039513573490064766825267339005140928283999969935290238870760116285819579111255159932338159862718804572376623257613171457153293856733163804463100517695197074660927700281435391069619805209128760653361152069341948692476343302734570486050488988874335029449344935073310093894539100991311086831042635782181000067981789157165416631308403567341671995665875666755298176896435662462398040502769064186706930525293347649806247571967806036947454543773841192029185823562073083828062037581398000215486207321597669063454011694744830866495105468141985116188435030841282083811764004428599372059970714863566283614858105005758857722521737654389728136268408579467972836933253940773353268995893255172151740877916901533236256022341470365369352685689447970309380698355839457912704810419103987498808935786989365079204400493975995777855426422090475511221359531994987039963193486999275121436572752646322198000282463338218639708329001495383601456979752176312021672144259165744291177169995651862970019429537387053728014651767178749343112058884015345648756256174385342739974729381808899319627862542803370185527420245962042661015063194030370307936611549862120545056826483651217927130847219021095241674316334505770052476260260697534240456515415106888180534135279321596383968467009142995827589203631038776118558701697933086633514961188687290124705994607544395277118453483275243223075238935840939157472544645975567705968699117537279261711685638401500668591819358808087558459856192872941803424135435512078674004849589192452572099832960064317416661144957614554053808481471183130619888920220635148167236863074041207591570106046300388947683734368701782405373627695836594263430846993079738283111804310178166374229762446941537705215447689401870101058142018949479485155575190751402740237811283239993748174010244356907629602079755343966290084425429800839192215384112973583837576855913552433184400354838753270836522999424832161248837455825417734719000044807007234221297113250084588447966213174723209364381059269808922454880314585785236150740044241123780744922892220119529708795331268887316670324799476846530119763374186990464062821911605401639017185966094864268982191396626518565416071021400581241658211276152155185043330248477157527260412398824961992866700640839866232108566052541065904062955999693103045831436348232679147049176653697377712411576887724924460902505781183198157659430558772769381233495693151532809527092060649600732615820670856837546759353053156638019465258880187636449530582972818955526462910519440353640096462905483283809916425800916224835474488010926668461700530896848358573830351582980311523401855620490326730136180025409846135376223783683650248030741237335492155015800914668923724379655676760580265715709624873518535592658187035606085262656256662351791281438167513952734164450928183401786742847085926625614411761096704996913164793945687012932173242797783481346950756810101265797342765902386215433588832037258975995644941977572273997559465568275714588755690996125823920532318122032230669124868401176878407485053533259593896934699870373336495113666029409067873296748713891965712145284468223364214754881598820857318314163311494826169473573753410874220661161099037585347290498225752793232035489748904254609213534400837502478876302128910102917298332167263186577496861926226378505507246687081334576922765363692177750478831548597915223101109049740113492045095053513901446131087852372074811612010752935998207746159206059883390065535640917773324503180978676224199163870107298137100389127229248840399747471858383456641813527888588871038658142134247984730561566330642968397817477993894121290810634443244417916918966820748944818423264205786866167072669391552252430124662082815207877021875373657340297369269281826751135734517830338482630515373828520621922260963234243119549112179517915898593059094398070163395076002057786971755373848978930228813083178995256025469282166313549861370267402532725297636020460827562276802865375340317331535243518148933985534905707720300844340959264042128744425631151377263651409104464291999758720005509110303955479325483693063033924721921338760084048857312856083934052691247372285209385203676503146958399929583682068844013723117994679874702235513355507757470606962613763850492723878654907038785945036487781229122331953730393986221691651556588197782223858714419658910918238514835771712129870408919114677470481659323990174859514301782347925363807410196564361430391047918905895248843811805210195853164590984105962137417610077404940970002366613117650777486972716227895100631654338548680785758730609081126278188197721442501199773156131695023652865508162383986412135128503312383293861627589448803059994561373198296817242867638300116096974625868225896724064562473851543941349800055795467088774239680365378408748402585072852287524080612557779140493616324842289050174402986130517359967523465228922988050429100438880719409146853952031640189278782998567006934593316363096953597511760178438943616477366628955847239106801734053166961687830329734494018314072517362074960641959383388560833597488859558478364513683884951371225471624393336422879380597067250740800316048567525868791839148080248448844778628120341584204924424257873783085066418495545296457458750128730964753938739742583931175228687352803103559824399553665253009543720789344700630468942999946440978273943310808449343754768291769118175436146475753950872889430692600484039879939208629661534588128455943470974171711424055555412490829815953083200723958634443408780986399116687026469403109420450634243487943053240152514831897178205259364049139284640636800449378961292595383970993462749569443191484877726405877301072752768976537801178097171151887907129781932233690744942797656732451161089736386352438855269724560239155938601388008983682778659319174673424802829091716537262294845939012208233130008592597534168562241316252781332482783174752719246513980051885597297742355551198597062797993829640384154758831850046129770282908179492196958242105458847044807420821431506737467050086386385839312698841938926876731537071037920953909420756430012210614053520686397753268210483516709731951297433024388391628463056241733789044384887989730752233240745004461983705223061715961167674547719124312650310272050056724783278518737661029874834421852334862260043952199199993796858572311892183846407997112219401503057427706257119139239348637487505724346775582351404698459938998021744154887834742440655157854861353991179767260663049692172430636994461812686161729248089880752952224212937613524804639983228447495866394898389805245595420922643736159281857368949697947409654337117249438997787915177370073013331268926686855600281460296269074686708209021842781629490539243794705355394204834403448217978820588542598811078607842726369373657401211575367241032347167625731026541867161888647337503488696398422429197135153316179960256004631766945743791013599565772628298251956544682972733949757260591887338313176421495736729692376635357082537235510031177649978187810544101888961982728432217087653267357113459481651640925341331553683059018472357704828092735311873802134746589662389088417893316876504555187159061923154375344991783324241043788295683980016762316900263631020653480535841669925197409443909855623872251430752744041760319111262234823307937941211670057438436499473539016693987401188802426209625613719506431713474191222206576678479780481411248768767451775583577910012143968799859270598336530988599482611768862764642474149495111408146411545393373097806623580375501833056059969029110838819789985509649611399007029033320824549881586960575883572571859648098367760597965122374080082935849656796296268025543966094539025057763490173438999060115862582500783066786594006839151833954588774435567315317786739472950228327928571416639785038640082971233210719034744282382891365035860458140642236588425915499116101394591170601546262376255015227011346464292211343975981425713503897595479510422809637328037271436151931171728586657406682505381558340411163645136874041157638813898109993221625072410498615070033236089936970584575507640151921174778570032766571392742935352745500069518655894019953962240120033616265799635363196757240442172031786573141104281321501942653732783028284316220981297564016810788378195879536021406402842697270149432842200216448050821669894929578942335739719106194056958746311913537098479152426834995814396862688439200734246853424153880948258184609635064400890818882284857378178969677201584582732149897650992347043493665845072121657712603030727814403333855859987931840468428795643150380845820702299695449983879283236115831572706927606757977098160052555823580784071835750219537307916688898122231227726926955704625221343219510445735297933439632201322860719549371697482111428826576147980752250582822281447457494403502233599137181503180063265881210565687782131853981465420046059187874311059951568386236370525266287100312982357937090077473201699989222124762036061315830524111965958422744387999230041861154323777624532823170471312684245051936836330152572403057098907473931817985235738549587529036132532529099582034781670083248919243287165571621162731740305995703523891374889031015143141518842867440532254373905535912828171499821370420419173366643555813248970293351255405682317542013594372767502216667777654734105333524445276573154416819741168774870490935500136497748346950191720053984827485703245873184341135673133251891827976926464032558472616958061748965636490307999676441472935601886914748961162595214125393650091076859109381389147507705338289170652334236779234329428995942412660751867013632269835978334368364445548222676241096125248558278113275358799329005060938811734288324747509844241986272834557812025891259370733425438471921348995205214623322814503793500476867150538871356600998752934499957566115439534321711757924599858130776521895427433439148272966064377655056738515191018849037070143193034450249640091737613221683174769950577557846218603225128678514184861491527351042516700742147183621048979820701102834666210265813310340319747174025225916936094452342231320249502064713107570172704034850124881968175811409814327138800871052608117589370886187619529081724896937402047616865449920286972636072108649622189638963909970298863180471975974109865189858403890257027786703316846845474010938669367490345911194036532016548337738478986779857041910817109635471593305533674935413558824568314658458012159343783851642763914596317123406452504336510000383032264583393747317728076549300594879142766897135605802597414650505471242131138068992382120267259607282466913809483473414063257366388156222696086769912213247803076552640156731470956483113232337038246011111235170531741843712337535267667434750594622406504426327126143012286072050572865774711039797559364846247069309339096695325957800258811111354853336901494738416509966633584659537435433271401120780790343783912046741018938501746232695479185187825411171553797496569239556245354656569635448612212338446691585364971581515032308858072358072416951105296675388967493853879469639002535405034121481158110229001560215133512131128260592982608795824085686115622298712422355272378245294142228337124882079023416235647240077892553143319032839307272580000148270541835474492728386457437693911714203738316418290849588818124709695755634564273447559413341982283943786424947120431385360786282986405096934560131325119861380386715580998391110718305806760663182146133637840259342577033068222699232829346981324148295778191657940805971016043434910942039318242271699605250570748140668679609648386293647898872557576807647412957523242104965505124438141897785086557737875500357701215185837822500864891339796165082318658208271153742516472581313943437782637824510611581180375164717137106651993919522630774603716204852000673723531325289701419742705792301840259600957670487214853200388584786617946208506583431595289083632890121933479612710276551618904254717632805495799331873199111668970785479908332630709595227258094896292023402779873112120373521578979572738286776369171530059088637870346619852827709252731641810708555333630693186647770757567358184638194464327246550189507876701145868339922332218621061306736021368626130366436851464646140756691041917734334501091965702762870276918887460685091913533298570788926800738812269919731738376563169446417949914064572049668494318469362692079312050543620101406628443980273851366425936988058972547142718879601519684065846389462021792304710563435244799189545350973029639698558419514003519905512928044079929225510951946609913793206495283318758461751173356526041156788468490272437100080633169716421978140723055884746814513367732204054444772660073772973593824858927491644734786809067449276597103203316334509206709851652952868351524156629493047873511641224476042359749034774159143223537253779692082984485196391108938980352602856698381317851424586929420139251174276605930317947357173823120640672955169652104179320932265375191099331369591696538763107224916580492642412263792867792060457469786277698098187713467923576757835875449192866588701133339064171104368839704271331917419399160430717374356314005823181809550803674396518550244340624614254460570578067973438653091291199490862707709598842503423866290873841540348459809054103538776485212500197353851235741487367114405773842374046812417710976501264880464595522051620809163284730413462530414910803283072445523003304462846434849233262024921242526379285718493586040475386290028499830366159640708616642174493985714388133177139713308032733713548794847576434945399502016081096078857788636531011022117698874463659245920797463243246746344718276291458390738488567441672813537023042713487451772955693530121505535420133447266086903949714278761540134598908704174293220886194105426962924781855289887645178642138376021544464282936361137361696418004879462943293705704915003596501641594224310362097189216177374561304709707110623456496244085103451961059410464893311630738797926163336881597713983045411195149600984145193832436206126916830870327998990312969842739108064695691510029232343978214337864302450032113651321434877029601981998861894075024605174011668187251475366304474991213632033102859779247713763739355560917412822059131523952995418546877852288136820274217227837070379810182721537134114081192465616911904368094288926355940861034327571040617413409942993176712478941775669445456827280604797085090827272231451009399144222336324251373230171081663218864347777326326563023127090364125773145016038830038338614528907682647996458723665557257557489690001519211887584609741731799161920324846198820739280937942019933755113760068184117169513289163861212462750676811244817007271187221831376915460408378582052196792835176220448078419398627062029615162678973722573399373023818019524656821236914331987877539415718214339578786689081025358783439894195176715564984066352960437860329509085285858606523810905087472532883574338781588985200341639835077968821499329923246977480679848487980893559416051680018946406877514063455678082438634144876945027635089234370593868080088796927831775790886449192126613074044656875953596510075672060345144001845063222003982734834524632837670633745749679270163769239039439075195403498446089054025566499680405538625159733011155019409699539395126699588836966263189880920481374967920340188131056823284898712218142381082704785781461142632875103408539883031890286263160361654632293354926373031468367027958079388251864180498368808920068732831573683734403287063785020740641943008328403120807913325501491444841625147513341431303000187531238528236836041931985250752574759861806987822266516413829809540953479181491387860290840033035642868494980298771904091323199231324296116315079181233161947122449364977034182115652171007821323452865598200363413888567041389443565135425019480450613438380884952902676749606565673083883032708055629794686614209382460903388455776758094653005939954024694662624534918738145913605622744617870257879059483219484260161995523147060612431338684812071732617932182911982962332619094871967921956953036741269182673627470164246211720715571405040071235398010025042367129030685315150706692394944547730420322920854901464106154336598144868494126247643464355269561622908191050486477163736900577744982217372957834155329401626718562535820298589793314171118596915652393086324978542373305275751120355726645658844355419559811927689067913792809453571352721284010344028399071698691339742081803012259659804142408694534634377988297814709573541701752218364305312826440662617987444141594241079062883541489567652032164339203755531883168816368239916614984770143438849557400007497454890725440760176606308171328320133806699641063955975580257405004313679778272113876290592862985832282161352186158772736155271112287926359872183518280329972364980329283441085711445063085007845932638372915986513987099633232798070895073088031669284268756003506217196751300246695834261512362244767890487062185970482336633802140148484961759921792936006822581323773428457884424335680713292999396748410397671569226570316120290240840221536105053604991517880936531220208901967729409481408024064323178432729493385958174310647201668492925374273016630362876292798790967400530941068509825683741457483427402957679337513907611113695432905683700486413305858069210235905123982242175453770231087113996660239597453414598406659354450614430874698212010058176804972167883208000981111403307898166597491116669555816390000713051822252418396412007039026451662341018239986056906146310343315517992431050097209506316493717751300016555943349763276082853722909065580929656152075899101997707364031705005434953708895296637150116452486819859739811164640893089860446623673484561454928031260291366277859468353729504517323362944762933826027311368983353600764582809399746501871898898907101084652354421691392668361683718040880374338900083418027656302420462304995357404822029510601806084597729938680945204544232250838519139460632660147615931773763512922784838812137335992761593371308163809448892581419134564753143141160655213383119377212719291920455587406237944414867780711761408374027482158189626484898003237621506905598970131741131340040770803763992911722530012461977452817275302399060575032303227158257731604485568256560951291905064722797744124641957104417386076321636086659964523870553305100373219587536691175274508097958511514947776970530123589235979394868420471003123158264564232113948805395908831176016502957328497001003632048177355533485209962720485373059921395960735081805437049606591442427996561761828138714351351992441610047765454947820948526930128911264916535708792227143462683299748937173233630885698934260703841267228176340297617348989504453933847998157040251609030217222088791319262608803094924685144440814271745760783245401691044776632318867506256830262831393405304657025445574975045578384569063359830755824247000928898071631720246610156540786105110187235626335069498086628847402013228635082388608790952891847644813745104903921360421953415337261350836724613314607407078902557676266043281435631412161194311022124642950742830528939048442263287604202723572239145010517569972733684797618906524100395643760272017998753202488585846600733273810691377597202914349879987826679958670253770927940501818344782844474411875931481762536883380371699784925922918416239015097247254317581349960115594065351479903677944605204026908797725287333087078719770498281964114519042513431376969463505773701075287005284253856971333325125221959246331639215765284991533526361541833000528453540281561415795733332749266582152610029707483063912806666786595074642776784726422236259231113082761424950064528599163254243631251531617918446179849865865066905873052162206066682298588473936905596341754840165526415845076731472628898695511439635441785020079268116982643065521992115985334378757344697229015012860164752094806825321042130651076889302287334232014001499715453471606615698618063533833146884855404897074581359352662255049120610478677637458728514536312538330312670165014411884400980854143468176121829802382100512770520765005710134768568632136105511500229367157379638584155697507863952722412818492757210356938653064799689531140226297272024516933770344568618322702206594748631800938688925554075932855533922441073817424192559506023263546648500436735482152650321469152204106420481962544228619750181099095044743444775378126560037527157148766391886477602981787480623532361714891877931814064977542677058075056038821184068749803120221047490025792974565940120642656319407831846660604652324855569717327271354425417489019085239779883377644814866609788409324740760107030073325910419411803859378492096465594012956851171683112751951846685772334009776465040951497553625841305568476255257843503102840140209260297663318794275249542017773762181541688158163549079551349003043392125974563392371842306453407918821339167920209401624446109294217567055547997071902251525880271911107959876013645740504700071227576336725356490631709577764171391737945983150836219312139928994142437060714470063028170246274828345280771898518798179054433386758434734121204790718697328365017898448225623067940495760479395121816983763170527173708803989081198256576985791297426327506941914408979145261965678721460380217641622630431387308075850635004636865888139960361801381168531776519961275575109222099839899134139626659245250654099154822816310843148252037498027470635158334389054515386605817999668224468301654673782475446112648787947572592321286431272780148864465698699634914329882314224735336623237860768155238209644583150629207354465819656126734143900570205817397449210239586789749062010285470337358095122479629769578541960474667427274936142304206616179082983207507738457380717171212575419153851445173237857294266840157318245796621743194947647058452975637528857324220144594142553823532420259836152313106554999338085193544850606330920609739158060321475397390261786968485724657797016049004710503274113786757499451454994333385441977990000654618432800316054787482693464517218590013600663044468469288369053232132465106094084628267899144681272722004963795399942014049029121425269415303198644060760333130512409246165231568027019635275299041687423645919093666209457891308995603484708021158448608604898966747889842152148659066943374368996012928187536598511925815677906091548527391877747605956705418404880065301242333814867345299453352729170182001815358396574138060715865606241239906878254627512105142266286640272979061191035677533847532189234151163465633693900387759035320470490546627972356054682971187870202586209075396997689360917208747461307545568589167752245959533937412617888080700942970440155737922208887527120353704229087618853752124901750669743231539733041090551873458700299462149362599942622954824998330879852963254882296005538188937786027968463219899331837547605050106330760694096334766053938939411949646513920461545786019021400897256338971191030330484631516777175673361295427392967410386899561905647052925103934403570773821732001767934844228297465409156103682441865649740713314800449334915616953521538729171312794099471027163866028475251781537762557907926447148686222072692862248697662186947705707897205721253621722918070451274340844996780481532152890193852376271027519995331906339829681835422056356233255773391270112333808126500149006768988340315546217207917516274667469052801602203540518788190664412110203691984355212954260657405483826355719659795691066941585471590577911590526128311056155106020785402558594980068210479441421980707437071473136646085063640558661260243800541611849793085052939728143133493388696153142920740016955371346944764428030639427679280874287115117079149934098241850784123400512878590670280866450761894381979411387488423581303025957776994758803581745355297588037997672836412204517477602567220235423428789242192780996905671219882574058297181850614776413366833640885324373286996192593738239608559678825174208155480063931436893739833870666633302326063934417738995665182231694945180925415499064887036226056475352766400701865101024959250127103253533490672159751104356738343082049071131692098088793466122716233861359011215145880279958922563935126017261818878269697149737328825512240067561975830121513520285648225375773468409211022604180508056588466934264666545786987229969370300109441744320927493562994065283778332106597509544571904961430764134349262395450614561257935575644243733892351111034524694241221268209353335109062015874821140152476157299960136161727645786497781143791033712319596980885393666373872921386741904430132021387067113464941141045036271269638104008485920222415375505412161271639815734429938112033147801027059968899548712207622237696356291138401838815101180586154770356018177249480559711107922560787709324871302831710154322469661543513986437564698713455732843295784330676154747157672375543118007558451250533792483907949816299970151142699848446729481897219622836844109598152364180287331274157709290335626658587959421049319749975999376721333953049238599205994734771041714842807894672849892281239898975110772713104025704414253261786468335442200571975898748604733129041688893783992795212076704484171507541908452210730536446184282347207094169797125950550013093277582884023689059096320064422079940618262296804524727200700069069054507652545505428688699432789882699030439519548567013203624485484354956924286613594263159125366563411407958629710355081538166213213574828546034664930893713923687375375445292491539236407695953491401700788697395400505290417340172583682326544883872965558215687783915716766534592755653180455025220389183923426833195585841137832855774786318433209988045132164800227508173640866362445862498848564544282434375920889363951106995112336151956743841887600802602542491721475733879466238528934068606270165073311658800384241702866353345535096864994917772608240588516123583160767232216112300961031763026798394950058541729957838440758320083723005806852074931362086928725689349390508464755941884801322964882767993200619765701209349123365644156977749709606640508330029385430632401199419345018029223374282126016378217205163109789314586026532935625320510804929826437241778533359087196739401685865908559080529498652569145586995168897084086589929554972581668864424342850939964046236941672130143747917809466875784967373385202582694937881081162621132510166171039860689889867470097023556993198510341398305153728720508410069151051880214492232100109492713134851597469711689193862155259488926050274043002255577264038664007763300171718474961681395361472211283889096665178340680151439903890276881664921439549244207957849991486091434383340984958562087024385507525859098332365291864738935918821302927651973841739096699027510401439699599458934247964790992199371068383540213796041069487164118456975470812210601733693138013255183874273492926897528381026575423694002720328481959778538535408719169523329164171594689370370615786015047608907648530991790020287480050103270985166130213146836048768423204008644201371042271942091963527190402710920097309686762759900100876624203661942957532957104684356403760941976498256115302291505278435881410674064114526551973987429191254178174183965031286383076150768880132231973201337012443504485398845041687898314313105972891343702484801218094105143135612826581384318432366876912469139818478840027202828344195020871432215225524202228766893144774127316422093618144306123683774560486784517474872483533421001946357748877605912471740533905369138475232673368488137463655259702906898611954432804831074621128522178898095359743681807640267866973577349162719681687840972372365416578623719931136314767331233139283468460173276772518552472498134623003680415398081062246438097461692599902528074923761808793340167029433415350464555729908713338284165344830476824937243974124589522093139923668383569359306178493729136904423819163066796022260841141247296998046751679106594279339173865587146297771135480220710540068500924342795734519839606441442546117795613211555404961757273130811952720397488877956783378064989411542215507729461875296759088304356403081514641908862292053685047405935804174091247756837592667220917312708550604308732913321197918647995584480379353934878078105049319933260433619344769153730281113756193529187264491251741518574963378068283151259012050767113912169537756528684544754365205036746224530569298697097526821755482057602333254753269132176094387768442304626463575792103086681531137815720781620081935164963713809876747523767424437178399583348872288981086349784304874453532008184935737039530487737786767965138363257630149417640471010140064029207870653839034473052471235840903348387688320731711297190456677173401972487573387549130985062858037970365181752313080041693007597125238828230312429156305186162204189107113427155131978572692067256425243131770928685667469078048181184844997941595637888692869223972461888150068597982437854981546583333984855085142026262277963577227058139679572458884311871623495881160772541590218143883493126977263459491504900101173773125760362511328244646752556463723883897320973025449178292075649604675704801941072435827876221719156089671644170124534524080296867290886266575212574893472206586496364190455678745220297335023031554170683728931519426253777813158969438847274571029361535203408687870291189642842894213873799747095878138562095440024836910319514995409774385298932940623419349482367646664789818090326634329537853705724450026265598896437151111190259820810049692390045512042943413987105594177054254544041409945958534844688013649587975977109021917030661257826418226777755330718173752128350541293353505834615059969573274889088960058171561543145709030436140551247760113902200637504043372550427400995616053783617263063615400837715808288884709876305796927724333932084022414154684735307656317657070870752774496899619757588614412823744928248447625082796358488104417486905209994192887342241397099101039292006993463391160990388465417061840963769080130759737915153335370814369479930684610359330552833122841779206162532205882735838089003022460053829748374270657562382996543659563895516550231419320636416875874030518363764172040706030418926202767042107772738955019195760914291018394564464224131629724825276287980868717612052111869436042182389841178373439670704317904118373634896460555288612194838087385415373728129546395364691429824990693855412069039116157631747487202196028371583886707199745464873803208749339457912398719745692732774389674624017741123004972043028554454582540841361605328369895676924952617538086174992050196471646493116054228801423291147652351877545933874978857983782601536773327894987891027405653515345203389521711314611169672828886576797701103566186292177626592083708431347042293101960596042632968990164071979376095296153168227380476754292696400565442764330805753801441589063040685617367483828916207133496347120315580778599327381153261817945737903450929737982090578730295684050177888363502090095263528512788150361121231627107953465068755603440429740319509737875158869597429981728529107445536199063162445939345332923098893590757312241709323182949864081173714570344852561199227711327623540086466305619438148326117590771763981729365939962115287133193031871491341294654903757124005201575393230840951061210027071227991840583655156705735647194224891690942027532389233049430647022785734004235139415339156223155490845655646096320482195768654100347802030776107448696071848542379387420595540829626274413252245276554622557512550850645899298952000995244937054783471079778884449934618286970095027023623190161093646354258174319095704509623586438080667464958590237316344026708308595878697791094186635060019565164814395659405884247449291242295635910777474623229528947229043342899707938687752317347349746358533088226309516979574820472650925838602250994429507734564699323112671374403101616494976281649368670339329394773669107317988886534739339342022786340800845185767232603807227049075096236263177687981717992113036342368977497301155748404076272568014840787019217974284005940743095015995069003423345183984100772157309678669272532610619646706215296539470548376248616251346018452366465198348688398075363220086939403821154759741992766547780874329925562493993900935609795737799005714018460523082481347204941709254441767972954054296370745218272130312902262625302575442247769052858503187240831077622308200545359578179575218268907694822278292349899857739530153462931871609729182563261529087361554713321448122548733251346888685580495875691892011067241143222038487176151154157477250994790196083384461984080521172283903169639127981141464547285427157642552205603406852081434563631340739704064645698434770200715018518830472548721619022567072961989971051064278305486466910603975781795284647079088322004118528485468313456212530994684577740485559979131602599369591828027808772197601068779707862688007255846962044784923151284470109491756286294138447386199321345649952627343372069801140388442956426078862622584669993450035311920588115396843911995271744050377500151105198888889055076037800016115242484695381633079195558815000751925244429978421240756855639933246350715200415629552263801886511559599850616878297012590591692327661467928937973340375106084536065345023817821287777761421024548647131975155833404550266838546080094028209639250897797089574813337877589831241253489319364835156071845973191436432324844920667189991227247671765994347301368889366638800071485360353039018038583579587478890639924034819035594311981770113421365837032034008604904535831821139885991630704798371667123291246435280408830779701962598559340080852914971081746802944390385040376110652581956853187186694591340582776895283967238744324549849270620516779099330432158213806242878635014675364590612716840220548542156615473204446762681613680536810711100964490079732855504240933997629523502044110512493545426130812272672746228928000659854177967866095084202765672559767110609092215453508788487674702248181398427106156886927029657196448102378296618870377624579159540841593276024521609895046586668235269517291538544043659076230090664505124291098860424048048798412468087622482448767752566635172725969525574913974269780688587004487909519547978115656797288866227288687873653052712131759908873444326915153269034833958673474988847390538821557059362783794059031387810492572613486841376253940353973952316480494709299498061621750370896191957417587964408458659169938551565221821324133533758680335478147548238651303095084256754011819252644723391050546097764325412497638760488414324949135558879217966696560386674617357157480830845542276064212309980432364795060033584256156171117617649701095326639816478986618382017208275341045131453683655353651105420730379427512454211296680373310604214173848397990602828074181090375705592334487976939844894166779225766361488534942964663238682210187753789714655635312384737282074121221158895604459639147404848154145615421722192076002406133392773859681841487956009101322948373639929109858058729786830293997286368904623298417692528601685014390439535924509352954097923745641186185644276810242458864720150882537024102893049336252036037499673233744934219647946488663501330533561648826440291074047541380918269579910489664983732084329403130825416594302485020204147616599039395025170759425387854385711402875989299041360753800538082775198991381204943918543732429630407366266598591682276266954855727959569417073176088697571062976772269148469979137840734149830896783959771116024368544004017116413108140255254060720836894241682341678715707100740009023574263322733267806030844509855492153270501608480662945239908714463428651109643930456123945331514305853147128101173528824446128196128576837339848360701552230895683990039264325746826487253583937565697286667849002844297030108548134764322937975430542041132036816708069423540664614550770075185071106384115193776747917986157060392167294215755519262811710035013950873164714007043540326330743222274054223538822208937793375045918522519425915575228457691771736929327545232597187120423375968172132193126603925707459173755418824612402841001753540190889109838068227930629804403363294238238168100137810582394628331003229817759673720402295705629123176106676629255438579137372603320861496568720632036207250779830562762096733422349858635570239837269001407358839195446695005828116260678104263370926176532412920044689390501405013003224584842737694596308454801760546909301598965164412701701678956484431211754627175644049619356454030504650263191139137093858721998690200686639300838893853061817023730161746010538311773417077127964009669398569578986897080179135160495973793843083702410515876621718251920018868113046250458728396494170756587364355900062094662887444101376320203404827052278338241850809462966593289948396591457957950782675535752796908759812900157147008264115379338602953179430402685235516090039158192724502491566931301317009991065568053146137597249015333237472425316846316724976377419400532772534786749664364451363589966011278062538220831896995537321373744496494108745080076622235735859931332469439813551713191472673394306472685145855445763260774222703411841991715943002008036446588021537377953185014072463659539625878807280678482699934332498096491215460793721321641382056425546382156835179626454648659283780056798109415433731781562182886901576552948352336864523843217369263104453444382730528482735339900208909691167041680697122001131498782665644745000694057176165155864435779895603825140249811048932877389394720556726632581181593655981124129817902724896180364684369664649857802616473683349321704766931936980237936549512059843158921837973966816680845535358130315581160248144052947131465902015722004211266690145803341436449394372516949665666684371475910383731804141684580370610655081199755018647977185919398574550908874030297735377549968392584430627589673015617845898396559966459396402976827818370242120036364630732936032643641092044439061127594655456538283670439506373941011156559180955022112060151486794979225458719115091390203504900839905593359182790993794401675698096667361321238879364641738862436804421107189507164170116876626422979486770729612736269512919598763589873036953208898367554023051799110945320035946133997577550367958337253651404943915757372721762039645388775027859713602665154422424634371370414233897067740806698833345250055802127526574748380086626805466686905548674827061339608331588631393587442277343985612842942924361746963386888926567819341959946510219048440887168064292852030239600444232547876728821143560201680150361899681314472646639832014451309569680355611917373032079488181129792502692577189546247578861559555064168887931374504591267991766059953375518116048595492296744409896171937680660922548648296647977039795458347200919493979211395553357676634382072321907077238728575772327045881273261044198055323437361978208169058605909955245252063411143801492711137279302461039914233744390791644412002129736934615887363600466577276872083693629926834554114447684079850493070646470131539151532589487300109926915550257110635654679115456061996187147984795066261117591636415317038512966061090568672263954847608808021201758337093646724497968025397858693194184339672841994378382033012937863480320400452871562664545323310679678929284987771040839505030055852558410692254813338613133667195702267714587571531686659401619845654233245849995863046030683475694264702430491217538965865416650541776525051804345278114464666976449158943935665378652266050496115265221139295158043588102340979925193289513075527456704806957666099985357644630050829418163867442725043923204415979561405872567704606432402673468281043189975215462402447830100761405664661910562497448349879358788448010825096191018606366977172205081904648314841617968163886574196501646177940074103625736536585297291652181744499749927903741870865431688081020219973896496940895275814804914826114630071908492218399685906372257618475959237527436498606563553960076645458614883035238464927194436700744712379355595127797549718257210536670878440485594127885900820952623040983977515525181651827393281982795064620180474790275236379588424345572736873256640534948459713344250801590723174443820286540050171551692009391409838481223354007369181450366072832522351363935149227662867743895229603654131005748970120063720164934043817691726984456301712876264411658758304791646467511911004514015607246998466523899678001612414440682900109419164349376883350006263178332121048004350380537063112092645280090322602152865926303215745109233625262123562388976849408414065806535344609604845968582293028383035801188288757082251217934818607445290900911424855600895681043498229054838133702324099668708476651886617193035570443401439591064945793425909598708676515190477930811969555992571046813284621422589695123647294304825824408985090991314579642189074241321487488647459876485808898817021819545144193772232635313709380422675975958096527065072758313753936328540333399059929569479696392785408329728670825086254095201066900723512946813494196189222750608965084079873467374781982450691589409035115191020689828926189561814635362275339315536589177233942807017915807711408766940369506379699606188147316394254438526788438423959519193886797691717273631182118254315163519916014924554622126548456104866222658147039309748722792961446964675213184684676521383463307511031183502384073474476275598912072958737731706383059352196557290515970262624336634864209135761213940349885805697595981979922722882948380786028860848252143375953000361578624923212058906867852201905926268609811804087798254895934348972903240382421421448024462997536315220906884090439012773724485509463280475470508516797420918835941104724839402378763141523009218941812172090892416031593627137942642231569062843887830695121984686995195277542090458319051940698870092813568523867830323521801274569393189979479149497478352116684077319186772568039442070470906855521119114760888163635964853130273889784179619533520102892029855705408137735693029662488277262831838720662803212283866212166039322999091962784875337086172078841790531048987092719346617516727998037876128634550621282948979389407979170507889752251642977229546796152938725568577598462833039894675687337036613918014637984445030726678818295537756943441096856581138946995589888789335158381984390743237124668714921581862417693647525072227228358834074839623185096985835227167483152143603350269167649124110166638975906992813036686779809874382272036172308255213461569266287731662620310955204574262960090470117109610740587391756522563948802531635106316090271409435225315116149554350795355604957425923289658777204425625487019664664812118450221666150519982805388202460371632727609898065878212895796636529767584537452455070669600299067036242841692340460257167402804186108948296947334980910171887733933162885232170249130903915465683312318514923744653985123539360602152341962581486802131330199992330248501614680292737221114219389950933356856839531311141655080136797547738793617898121032176297794704709806659945484709685862413137621733831378228202692695605984227461581692599480879377435705005620285046795570339387508630089054557507857257805057820549921527870946498519376259756660569655279635833512305621516935433445949491619250967250562037874083609741824093651575136095799823789083194440970601855583003821028989105840709459443633049291978029096717570611653155176750521748023169158496360218968304768470158174119327947324906102099207874978938383093400882682277563090042153277171004161169810032418056491560474525596903958589437925336356455355134486707783834545092167941725483183844945951284080846938706051838075052675057658850072958765535158672715093232327481093528821053461317126385644908489934751852974499685805705988542697885448345885556571954494750935432920786958071031795062289248877294703792238922002499787333160778997475045241120782383479231597545021075659243511877475683274094393618692901489877832467424753522927752893899904674793365195661998795238990284175913538200441956227995078852486798539380471386978522689115771377371591776252770402709137560252590702210735877582999253308136741053667613318094561711972352536182417389703765533113509591961122980581935640252788763774795610022982555837283548228330229834325175190871355224233571898188161364109844419694476169483876510900054238219482224086869369837235390280697924358742672671459078112706351484348397553194531218972922516422734060678603609942513275413083388991429242805188620307036289602959469771941201844012955016226847899758809696358376888208366515463822278828961636482191095324044505149539926731848619693349313139370313201013096501206694853449675577294448341263998015097929533951426679835630142759491664505349610402152009619646143482861291891188065059223589660775870832364610802856027403332836094463068400508168673529342723074144716819760869618789703020743370863250863631977990904506960962009236710683755378157734437544219601672463976823989968275052566740115663904907809903172198113997185964818272977869218765440675741831888870041907200814680665418217883735164489518157733190362552515365336264364293202797289682483329928041623711111581376023766889026384231104603866929286022816625670376823246768358065067454231814581404571838317694971751054030313029517704283073642820126945451396272210339650959294139942921501968812486512432161425838663104529691303244773852977032705961500993916386505270326105800221753940942222038373555400251079163676391854551801482963528366284784067345013136232175110269011288729879638642186547525228515563585750446611460906923659753701895084441918109591646987366375225488232596512969730741747188644740026654919878446377297715961337411599146626823949452636617214241355994498249920198129354180866333212543861083582776375349189885978026256564510570659805412897530715769328561274929102399330971592249988245016954315478590381494267622169496433457609027235487590272674292389159162185508564028823316157055712920967461427025786807069904266563260058112055221899172134563860935992211973972621604048172362307485445026884532722785760331882199304180860809437337071367026565467688476603595106832176830674370780711729808009061755698713566374831006648922279197316091316683762847583767807343588835805310958127461538854652161102218150031818448745784223004640733545551083329360825705932911979581963863370491983500502394309567333655397589109086256321019419174996242674724577277483714530246522221440267017535385592575163975271421359061454367160417226079329488502746245908086086938409997331361470259605950052470288381214141086984492384106831408779915987264024639510348188979244984303599550121100061250158483197931625564410357327674100314981886778571441762762085158670111157687423058193079535615550323022584875137212579950332500753570709677332697419014946191967534217602826838054268682310669728707008263599196056983630668788730006594514528717209482674652873124018010793613664161097869636301677934567900484729476991433079837017442371766383285529268408314407534276731990619720747184266621410083361736365416843212516690329884111234455837326922286361553252271671023299225808996975873406660962493578767354663476256577237946486629930263618790315933358320210526897989204585999800708304645067446629439210095999292447066763959216388457766661183282715341056159450926966526685698021828070970718433650243176817806595949753139244635087049714712621044929204981328551397170796323744217309727704398072457549326289775052475361322137333280684334277882312220260416712726130559065452294827331408101168081803011182555816790142796681123789880665731611170053987937533921678020412544392192847844352561735940500665894562224587710609107877822200138563556867100546924428439170555528238614467939754583017013042351157869608786819910657113593889200239248723364427183221696144070559135173457474339831705069630566558441830258358929700250190352941845018991631888825896658786506140145073968609648790242225413314772415677570565667803361022868762758799762931685523650077010859529812654243199161608777832756165781972548925863662976113739361887113965947628053268962475371824322307498661461652166733256784897763152655190814706708644328682521655052566354015796137626957280132527121273858264157863068010634378932528979682227438122361598463545537955418323553726948404669064853865227886588396683420458671432319359494236343755038808290188377434647891466188254481670994171411713593909555313489995876996835610674802962619583981673837970834115166422200322501742991668623346791865917687050232001682327968805799903911685710427715754906772731181094296748930614753803258198846334161372302201932154915059350906202829834640543818969981401923878221027571815125428532100534810310891432411489375710576933305376584733554977374785844932247292548489163593218170702078796382999988096928541923674568955787354137381355723435102529547318184134673412222779144450648531842127745592595929540594600555486608056903164299113859985378178022912644708619178288177656693648825627966235462700680999935110014894598034996500980588989978422240485029261746700615775644616278995600479845547581010445824286657881448280363188061515405960647566104495773051562854411375439759851840323911939313453471832554069873911440685628297013016792849674526299890978406516122008200901797486725587755485737598978426979238756174996334552239635785423385837802374341632417886589771495852737508934744863976544052059656910441617920686678132751846661876438331372458161294759268781390020011034379962793057095227904816552151692276274179663931095861495003571866261077279730417945661619587319285855444391164676283716424470762898366632853912909448777526153830263203626906218260411897278829530451228498031640503215678360284695411292545935461031855378685603386390877672355322962654266992936128496946476671468091980630176247923477027574465814249509460199977503984888879878087922281861393695220487612976234032100240987041136469097844654976192347126075497730049550542847984911294173323875382369806713193472881404298841834265665375494402028189579453194018900326847781142444746428158453363381814672732675114081765057828449440200113543965312172375495624304026933095160947597136387943649381453532006395300611442487006365046693371888890539190459581877950392083173242351126967339736166512977225958345913986457120285724961026703747997750863450474096241471938231268203694973949526685102528221537727117200793015186209392874631514966403486882624580486579571576441863477658686360362645623400855167850187280299538205870654649597748888436285673072269353519955254770331639167236409413466653006702641571125455573519338253919536459035559792010034434826058581632717521722534268976221140671219217644190735601231767795448999112431550907552291958305217664486014305537350823974604705354044032165409192376880459636665080411847237692294396311153884504392060576194785778794762229839698086577179593516558844283430339355343626187585840437540416473108590314898109091033621013781226748128862241789668060378028983708912363770827068086797482204622951520538332632350036819944933935438817817020923832052392173070177352776028390102879656538806827125380857324260063306196984270363378850836931499333025901062537890226643678764189212042863255468076821526971949946327457699644575814199438338179604781486681690334115816822862770991442019363020096599265720546054773742924264251353553918415619534580182305236131111573552583064130145432198197857893135489675667246036583366110129580293122101865571507505334549978505432485361768039434560664438114689613976716677769221871690276513671961779673443931157670457560931054802549127185498518381657345218701199930897936770984414912152582317305951776595124184298734992660243353009528499056167425191602470160737754672865990469745537740598897374402506002604193963373010191115908877341677010198648112530731683200604420846203400583152345995456303892427322773361680168891760499531178588889059787609707628764240028762668547055755416064794683753248405785830065097512143143917612076931655075887927037017272395957036014568181564160794932198561371638553309377735740501225276761729914362545440375939565284668003559973419131519795472534832020679954611050955122101481209317355446578634560502141299931209013769632816379475889538957335057421391391494655144904747787944078185342895174849198473752498555309022509268820714539498279298135859777165871756138553032407005612709286032357982781843508128128891775400757946741403919267943319302667200906153633974961334172550167739714445642012663959564917745035934244819124540832176714414579684255248638193496513222670363814115403467088625639037953526270850185169346279770360990305545588866391583770974417109731011518110159511473445857780994486634833835263922532134546819065214120110127699857776023197274285294920982633242759700464171301042932080555085913687381071464708602275941172862458860962357633951471417245648756876294800132676606338384659356901863606690740683317563020423541378226300398565396650668555852199169754192148970461008715206720427304867937469111530905312710835507758790957021138831792280142378909305002766016925006376757607898327155495936029215698358005575868233146006974728944101148278083525139400492884243133612779464971327985372443662761183812559891346780207840608265440745708553168543253622842226504461318223836303130598964156123219485211605327769709115255473594772920573985366646817717890033896544704925824019901237912522497909510840685904461222306822983853185566130482193099925321136362765562394780666783357571499754077877576688611425083694035410963366809381453287898531293443706759560468659034572076952289230867949526369784744592475685141881694949373859467409886336878301106537857648212244401790578622808385895220596885981411560244643790577323570228237318763090324635090638285861917319494471210399657820925792724076972832791991003839470068597615183789417922415436931709974671908089797957432079797683550555393276723004860024569789976748868966585655223924004784203530085313654411134903873736931918567403220971023492674972133524600748346388777676761802810004376072980549142412573105518142618549110210688841058164267329023486269608464383923680913675858497860175225913361042329190724848737852652999242911904870925792201219458504291485202451501793569657219017222755143272455981761860136190937017410600795501188045411220535079355321545183601683168007324972341157430089654049183944039200428497939225634970412810925702321734100087725386735019936184472156043407129377791096409273543430876497175393736109841237404200670127844776510044416718278690718855697874515242966052231886183544592376548145394679105788251425789679637923027968350401533142194720244730251369515823030185595935982208419165426409459590113673110313987283466490152417822035472414181786657371207068349819593707361693159893328760319823913356603159161664657363623811500381683758123523772741635122719099190064303432866232134040534901604802699940606489394776223549785230361192410685760588516376537740097993298464731895830738047408202284819349880261168240026413982833635153107547627417872913723731729114216906089708097390100574488601236156283374550647907965812369168349372545415694726494461563184867845667387552917346145393540920247731626945015683875334461611500004915240726715507669029378255231088184822189111034138670893347533109092818650908329080907268133438343579745588610147337146273992352102094633578530101122415522870192304270544046178791695598145872372549124952375599614690939031847289859314989825284938901521124846151021808323591184491602707237418631238941674182157634013842827920932477095309108389998571277701130863447604943419962668497772588245165101065842313815488661483883844983221380019878310483746242230449498098783196820145948045995756665907869357301640522551331823424819519723358152220131422595117778909483449821459487123785842705263073836717727375826670462669117336706806159843965246106873376334454926374562135597364465384441625454041066566118388762904481269171465456428534292343776304721574687138971250697810891412640724070668808449412923844217100339738838691305555655274692219851318597748360288564859125088159107113669401522479568819454876431919100022858947835696201709426353150561926360331419400894744475556418758797984951094527480823373467453956120462252765252701820342876270970684332697910985942980385320009417738159849609839755583684982399060793472949959448056935488222112791676036837035792634643362239155194459417559248398583653418573143061098739418256827219805007523528217232353674071089038575993859690374982843501296007309839121531729616946911113866940715804744935024248989351123143198837324200310722876150662702844484157730559536860908285522268012866277664093138451410924686952270653495950605826809376595495315457940377291820394852457603912091510671281971299701342706709989966870322567468354735931115897709280771700025611123698595333090082498843731983464029646778562059209526522677109608497501740109536860319765760726077260008137980305395661636247105050455979234614913154258221882067286951391174300824576700563732687699307003175096285896271976210909732886250215026519498033188591756195736315520877421086595208498334623023781595394742438422200061688661176310614080078032882383278712502429937752638330947809458327356842123357004490097916167303786265466688376655336336476179373710397529934250118194390040732425822865426751638216220553213883472349740397352405624783179297503878659286551189908150198527798286211551880889922976182961682822784468566337770327226701751479943591364596419358287429408501330997102213503464245078320043217165121402051524894753738928613247140733812935552854236206891133268003243645381725376714188476515531816123350354844036163325243717324112870298561895810907773951169835462752026570313784500508940274955551210217908201955852609819788688921931336475115312216147094485198792573138800736108912721524447420648739651259299181142734034990601794693763534483164260278938122866798512435106812119252410155321331230777745692516936769022280133264750953815227885335224294598379128750788390212176885754845524402944009870785416132801180710471481114718962630619905955114452273414205333853570516218225093103285816321737353768901861099296932110841656586703646406497753982301342708985963059723451610679805450821202515393153492282078117207914086287613868977351788889069150009427638741196272647416156142143013202687677839907840808834782735895781824837375739226148781712983853999061786847524232473304623132776744471783707238033440778462660800712803172340952777750146482202658058304519435665960856592841683060781431192433776517059707857965480776345410510487248542959808222599031614025305978928210301504051299009513735466373316288454546474658575550226475868936768375362934112490359796367654304350264554198528589999254583926805337022692784226965944110316787788165882448714818881042389496705790517254606741058057344904662505220454117540104076752379606945052396095081320701765627552782248698742883731593194914010236671155453118584577321314920014310190167004189078307796983612909814743485899931578666587860763155873183271530761518609842959460497561655308406776358770909195882772898709614798408358015984349346771619503730355652029885460488102189796786921507501756029966577341522066934777265651977177715225877214447898208363491939995318160864545195411302241813112720745994064116516512965015385198794306414675595266362948608282483111804174794595656489093490319391962539272410950657085629369222147267750442454075356588800416520070597492873252792608620828635372367449547196916793271711785750310531622656723672809110998952590804688708304648986231530404914040143296002286724817452329132222442541626446212768549936192160110469641865310123902698020805700540156314989393762786256805702855132031481144137366886429692228566466187337718346902101199263803853896977528224123132121287313468461067835557820048207081844690257370050170339836106115779681365309462638949360356472223945090736190064500039614228810667444880148322058687353800541326273800343595540475230856480389300175448617321823525057809927130086873603964509151041314863155623777812782148967145440734205606113200458359691174363648474380905913465837774995441223191837472040225589072126196665001647320428124376874186942632838990642478069966679824556342105206259490168445122583189008985930723981028333460764243820559190683065178489635249968507939404765649456496691717318851572944044499124357961783961820569540529444851839557399977309207374585201595325866957212248943500474780114982946751419153382204689117150758603943428175856690182767769205108746531012960256080813295523713504770402834139012436837585719354610172198177352987689605665317577354733906938980738332373441900514087119166656505451113854531299415676927512898869956243790584349665870605469605567599494702666206043717220083244116124803183264495170400726698066783276835560369644545730582093847198214857530121903182161147354520121649509903858246544560002954323125824774547013411383812732660506054953164038187134651155809018851346091169064122766083455536621880195704606622954633661242715887555003262432508025387869336349494049014429266535247684232463997123530377366877913227271860486729107313736215755819646925826919571814360150951482955130224781821533586152946979975588742762690166547313149548995177531791103984703741963516063325584317847124086707738958280503698380498545444594594670106070963996333410228644750335092976691992988676458731763509353143549610419635445526942358097842369628197800391927949107261224732612679890706690219588775054562819462649488185777789454265573309699665486077125764551658413353270655848302874072085719078485448350766900842582034887772269494407458716115088356431634406215873900147835811395458213583829833083492906375223034776862589259420040117204468262521654615701824711837005014637264215248936840844241096659951988152283939441004457307590887493514769020008684954788193214794174847443903757147320108231561763027023248123258072431556721265153729089026177363793212406784097366686152224362423404164430694103012763904886619596678345897628998910169247922438257944847083459857098314390370554163726322332692004422517654634558290494362295347808296189203973679172200898524979755956809259837131155768465261057793440584292851961084051731222680807111539851421183473829946375702827212265513374129903242831181463085713458316914749992361524563354359240115855242793056260388181707251451637445146059767837267337669243860345842195230842576757048725396522282794749893646018446093923962088386393251182264644726214951464842163018519407806398815848225549731030302413834729874305173078289097515465125167306984867784174450928188494968260552734923982661923221478795721196090597225315033655083279772672738599117450134751713482256823164868429980287803804078959898220669521388424558075728615251971651595106530161545365187975118595170348815947089773378936227688282633585979426663122080395892107782705347986622187592247901792661444010546925244263088234874686466464602532323602848958136682297287185292070439928353698237928002373277812317708140705911275602704495030231092291442594678807921392343117747696467636454166873819872861866616645808340051610803913614588399037570118739033605736839770555985755120140413294456006864303306522231491781284446848549463311927436448603903548455488279590520127604290026590131655730034396511815969918859193884734117136322896278660929850421434570710505014093296331157517399889175665854671737769119304010192484984627483414565558749692952049942075527569985110590368201650519213056636458026334600284444485129506867684114905446153452543219726207897611513710599556800187720613217594269229350560671518395670101516429251938586255410544386676422014776163532324230013753332473976178091877729558701969909193629199961391959855887367594738822927044502949399574245508442966610070317243743368925727184436898579655487386673740187005822705174025525066789110109407719341775248240103301734598401102922163602927165338791216223498910777094526550917516038971075658023150189304622268268995055226368090327884292508623041425533291722836921561077180784788166108427632866946047878175605271345586086217702933179351360908103584517994185765445448109859628330246193355269413834078843055362690262407312865556779496940449667544603726493036499916199970117596557198175627197823335098188181297027705697267592533545825226287885570235717729893057288202417600849529215486604250838126430210347568640237237835571051418915163071930165993377546322634120645965837596142379620213838712855326749908181101770523531223393185581688498953752087540507289494078918544897410233841210920713896064576779661998740367138802888142004926759217518508218959583216364693313964966327793999871076851512734620638296295410747200954139061487331957523972955243476865670013954184349745685443128906881660230000251106381842465912437927028241065622015761081641487011226771269664762081605896303680726600873756993628283444031151270893265943692499299752990647506916144395921388315576976991594940096055753121076541819570260085229479015155865482500736678876746503886514068419539063823477439380310461964075582027497349669034909548904139538206586978913158204211701490197519983499661487439612130144818839152633398031884762879223581275804210319872050988698883180198442387264796183175839996486910135264586615672000251264507127015128953420306598917186632150962913555236021592996217674605207222418857238851388781267043829033744376670455564013721219027827911632418251608572531500798912185287162710345586134032312854727923627800492714476933853471697263762329544442021169420810199152185169853130984696795130594199264502285181204590731696779495733286864225470144473867108910935113785062411777949866279260561798764391739688804317980179384313669891249883188855681686686909823706622339458765230854516643447811682671858559865044520916661600081510300406776595876023153945143045841351523728875368346121926546874328589887719425602470286356810294246559037320207790340507998166871010660828305691821116507742785290506784073313217821161281234468308371706897137554082949140602070648971267656940606421058420061580436210262556037264612298523346266530837140020304468113818608909929534090222035441258617961028370309375958863896244504104276090195541602797331246009158546554029512491153323583253803551328402266883077901826158866813964891087819489413619759914834838957221869918561194744951953665166483124077648546716404225731685288578822269026753380697321799017784462427621268213024194857800135172137081966300984485237254091580817793559238280742005261628647528437019260716503882655833975104714901591948706540361666738648839318970211099552145404381581466865251845805475496913666901924724492870504625609221179079251110405212164828549203423567041828133088385998496766669427731754290678907454930738258590597729847434288471415302510724769545462764449215541403664177725953513783731370659250965778877307118609132805335207111929608420143284161927624673231815188800686489079645087639866325153740212185126682609747643313338614992641699976627267719675047652891507058472750385662575180942494174907731968207561402673493290994852594912096233735931005285044146191422925681030606127900547880114377737921688128294091047071783569679127982710469175113260553173356433456494376444063760253744572488914376048280726217847664168097786462465554845874956449334724691571643865052829293179793100953605802786753919846490601284970486380518931035573738951013766664456592043310289567739732218477441530064219263999593341972774669507304809566922417481271901157371516824489887837211422190778848403647268707536484220319007234014175505225717728026140791439301682249490080242112832383836059830744312519847802564698870881851495999116843979787222542578908513604982924930351666394243811814116575375092641638885017765108216512525201732055500332660890851506678316008177205589341619783698704596686936780685337442010506575240669328264066629865019837010172787061595046191330699078038075238335794942847379306336436788421220911419111231836090198430992630863413368078169119200463697647900352437228613577585711257719523925720696319824333550191671669515513998697513826677071930286021505301121823706651710209185441657271592218929165304867849691100749492200309069162209138969750036107681959092480204732920057175455829372109102909637460095230172533738871358526555694817995941262081633289925694009736699591477808905103264971432778616215147163370572115841548191810000844093701023728090294483916189967298195569760422870161632819567743633454473887847479583022289243468047735689354850026322265067473887779619173700242285438954000473472846734417880292448646039508166433644416480536771170903934487592553315782108716200184786794055330358467173088220161285735614853935352442355141970757395823647029048300876537749401035257399338788232164899095988461789955461322508323920285721333309695054072247264306564150979586807527783872122781604055012180877133793347388731923427445205363257048189131447873132931340398875413088951901369018859906575375801733284461510308932900591948758053084352363022052041174675969192388559927834674258672666339674866003498407785235540972518059305599525467798230477803987077258657174220632278834594952391859184684164675605599273445532629574634120302185432227741164067066798159742824480361044071765944505923496857823752882366146894246679017085422521506224852636043826390817543060075635834631098239238353609927756725834570028538168908103764697351614109945720894670797562061148565277675771469074503197324372517624473183572191430167702186007752428767383804816223009145478661164727175141612473058149278987928290017835669554511294068328023571752782178592006759971907508646298483638604080514553611751474817787908033977276375617102487575107216246696846207253045463563303472750111287589778951333894299432662031701317574503694217170086087729812019260039122106208892963119418991456804159946749364237109059111810732706706900324794074527542042512167174465324932973529084708063008443164542254632542472023559900291166598019555565743373035306067605519639183485943583133097866988523793045621578335835982603848670774365735221458846601278151697698282900724055518680811021711640642110110900399342783964164113316975603100419095474010530840899645715118015746913119289903989134066085797910680929297056495037017045826351559406939118590010306709916971395093129103624351131361641937469118520521212857878180788122573210485972938379899941108051194854092932092217696687271695279069959589096401593302065914131539427588391765285028079796995436983662957534977481392400217737138473905849952891442861314700736343071335243695397738096506580695428278337175155313954222314668993507979954098269339475787876524034437125951840787984246856895631826551420609311283408684644230652440454761618954802284610626301933865867305205417913106164569817104464005471341450996141837161789502812366712902771023242120355108289276559904118152759096041856551620767185390866659778871279071440447766675839347362825911624625619635486688705846174122008299719262839621105717699378596370936111649876628074355384196715570742467670443716430959495723193985243186960858920245665925214826931108957794878122130481568065468019976829025766855371415568317810120075820232450498154333540380215436566434250911513436579833775983374100501069967330595406247618217000463546975471546373974926849337042426706778494925938249454578908439661238846142585333426240671495832242505597602415111073897227447424210166292602866635648519713429354456886502754840055620928862999713969826521952400767934234273401597045175794450551733507958991677664308794516290120943985005464928467909526117779076028858240960177753947148794962744937432731927898122349666053010278919123525721297905392771531357722370137510702789059058833893206161361910426805559654823103622050760610390420414577249909802269666892303726209667669128228641502484718487832384314458694689950926658245792906241261712072091012995029007162562829705723697907949818674742031238525714872121932419020040425603121114768793816991053272736277264405106306856911525690109413804640936540040406037093357124817855567565863758337537637073008363045137582851601132400534448126749785434607516111691528516110071554150848749406314872338691867499667703166993674686393792904536783520369571479500775131303177736214315286308272682910731227288572487537674507448834209850594817651488480859711512566995146336833362118745098424213409751009777101287155873001910927071199034193516082781281290892895816997476177392828023047747374158320622040491351053382158003718818714217389085174817575523494022282403241506863647255432393188550187023901217912395494029257159557570041035185151077853046666298830463100220698021711713522779210247921337995465972770969278015035886581256681652245244255927330059987548287185185823480252575961363328075305167681400594912119136272032343155772522944028209436935706639071420875031763414524810675421817484196833624733403453971037229297669916557388677192198222324159512154223463116920805569998668133162694824826851545180093271170104308743515942331661525772584579352286613225469664981968798230875694191576354496051113545972897838740226364566576901076983267884764808034872327728459805624415507933331313708133851400201020084926597599215457622781301380889849141865186212582337991980727503119105901131226577685756065686276680613296524649593962787936354352489672916244370636628737642525066825604059996703408140395928196859259938026916083287627445142699793461449404980756791269222421619448859728001040202685044396674771758205540250960263335289107495143280717037083962468530382753698135568695540271074947710976340568911351841411634519989785725818812570805516829219429009872599447167411994813597851250006281141688890274506323651737730462323210900987140650802966041683835525169566482781671601997826414625601922962968621912981750348785319077662607141575065185897673814690447872954105092208368908939152102088116102078073164029001266888009869383440960841219841188927374026698328324800751896593992445613803832909455115923276629116206627909043138777379062701216959061188895203037516868274610134620828695443763767527244119466826632396371710536033383932473550836472902841911781644152581098421787066000033807700472941195705900908692939825317954017825746738768137754492478748178880766821792695590290378283252346633201000315520830076905959678984472901899695024166914439393417177524365863280807405405554410763991786205989903351554312882719708329198650505678421623835515991990956321296936652161701010157569521808908852001999069991570774585792919826509373260863603105362263523080539588881906012412907709964499219417241276953391134160357351025394468509597715259136136644345786859087584618143884547632862108389072506044520126799395272063888253779719972450366015900591706439735027887883242382942106838752255565600311185928874458797196985754580069444902380164630789751762377235435371347075921270017315700109501155445239853394810573884832521092242879841090529494147401183455425276175719032738149938982085626933625816237205396852658112586812009082552647755396569379303367534085345643343794680064731692202143598868261841654235691183320838941659056208775725776666749704110711362606043855746034490818410177933217490740114233686574472953001275853060179034521474172014909679057052341773272180530581687210190163493965714215017232710740437092595474801268490144778090371067532968181052918446316064449315327207603859447098909825417592082893515298554515606325147635131636680622743699452224668877065376111242517029078523907849744895574038708525727128593164975558242544876885802461988071584360973659083576708865834728859691896741944783348760133512895610089169503967608490010788244460908365649012656334532649242459446303854282428741980757174301683931133394522899609689649683294552771340286647959055800363168924712201592835490050996751690891739495304351385424632213732783755734479117587229094041520834267384379127971251067015434861065584037809111754334778778151641353080684434028367201175542770474161308652491285056201005135458843558626535991420912107501879631569186009433416109963529514415012409474561158469029035975458903678016713924420634859913622888070962255968948458527484754044920320943863491002658862721930556078873887831899381369924389249343249233781619324198100975817930651294295075481241359302956898911421290524552075309820797861140259905425931019197737233316687178749826850299760930255781383107548002832455788474651872844839042228623915231717041902631160863934060552861012253332287635017788116321454779188654051005376620650993679528038963201307466853064388549896683645314405074414095090836498946238232667670816897238237767238693840248848446522417374215061381751173393157084298019382281439454969128561757826939097583675792016292832880708199478949978269194305579519153823813032727379155591881437013621733359269076748419973471531243958123699300741988394730841811565887098615553156869679309463621959187343164194748575711088538358581037396499146372668839667854915028666340306638246465542422789979655876723885445442678201092282128845522460997887313249842376805250713237494866010525611558819036845798824585038330788231434844426387540123442010793121122171796295102129830801975352640460704193215080542511477223845027031560105520837250001589709279860331468056289489096515758521255982420607105554604857919666682404041283219065624778594164644593542388687098781077480771177531740432837817612604650440939248627998804618228674082883806920682186563397066118115440740550583521252728745191409361394684467790961858369269503670378170580246971938219448943272596257155356718778410525766109030684221897344831663207249859489231436668495716354025966996642862381432489429375975841842537562200204459581225163664922188271460355609120485418892681226229335194162870681445461931514268395001533701386580576982620424010298907079048600085486141454291484671519541709157060001175792700158358184134146779308272526820932145536497807932404671517583465478257300108732598024923034038037520220655848978461607914659628850929424735130971704977573247838943229556937424359175035167567140176870812603013891220457564422117167023048974910680832676232648047792073209866841749895496582541182100288876147459321407424251524010864577508495403665447596795124254626709357970089907100440167754896207529718197860381793473446263820375608377723087710667111691378878383785696206925997221684758253692063466197651439726645479759703523326509267293877881671290086731058181764397931483340497643270840591704217570114900962037428773360130748864688510150078065962165399895173104833462990242749867460738760858518671993779804048065960744013125952482675992310383501600153205995999327576831569788955758908792730537976887374574713825325753686596747982444021097129539848138420825142405577039446321111726115662341023647173378200728516483381733694274250857414163504816410697694847656755756513372066269836319493452334410489476866489060209746156537391211518090185691495378389794007486237047051246404241433797711941094541280043858777654245075498331449015019226957029637741737970360301291422586686366657278508099392697492173075062312595140858860786024706357083161336266426950457602211226710618222423400827573215238996203169704184703052520793367134253390531842068222213655875919745307009791302396335479420137990196594469685952557628875784668612755229376807841944619022847670680377826280944195966015911509255951655328325208890074418479044507297357211983495789332719464488360225346853523498618018676811727778802097540806920618707004857993737206984900248851834131019395182033725228945357085990097819674858374803071971766195160563337334843257218323707449283888210888499301901204981826602630605884321433300829678797897897675561298040001258279519201305572196271940074222751116215418402935549419781241515882522962841027953009484207390465353453419121935102927786337181282831970720605061760320667041073071038264698843076536238653721079081094280402818787137969607477219173008562495720405986966462761443492824853240304862409081354423701270244612390813613634712001403726165044236226568086153763864031199478880654845688655695298768848010096975053971629946123320819489697181449890528910853966074165177758418517485889561146239043170526816045934469749454439753119619916176981153067475908651908964196733744565206969796637749558597861197436549636205437083434150561480127297346109618473504874399175510399596528250222012248550179833487677948994090913636237796323821175147840190284142908001532920446020889463846086928279331976568656356936103836969430236062995604885633624323709863612411046937771243229584020542758658992313476379079777259138324898733253060534218007447657613880310072532164280945830239613673948609751078400292530889380970905605591871001851385333188283205393757778824347965112368443318099210927399543106141265968860010057453905326421353927177273532378313526452608513549006154759325107966648693212743740509478659209330724675260298676805169869871160105169769775186811702360204405207137624808063338671931872836057230153797105083231875680061454502289005257065046455125275150601095340165701884001532679173481979204370595559043705224014805831875450395829238098489834244076493772629687112944497734576892804044601203919384648804998337296915535876999737425711869488788861342032912247985579673874083281193999932299765931893490918068432142121782321358405133651786166141328091795324062147859689197956370148670795980643237967096206429712336998176167393829928614254517858278632511447086568085152235301669559072507320885086870691820809147538303808523004369582305876406991752185959131717596250683682440879642969452523079565866323823741585024411541665773438498557524507825257145246930079740598772590766719331383456831634371563002549186797778267098107308470310131310316280513965492679988413946107767060035634544647047338175878820208272676413824193958568840665723628825151681280915919630784937236110730149804162800624088494807597962216623393808617752225342584021591659964337234037072377404667457821296752534293891778077518249564867471446994954367207883026337122413911067454721687951363624884165085751535136401077238216678325799181143743802377262481171453272966075500521054272421223450162646290078997741155123300337630274814130408535456977000576202716368043797129564016609339823338498074631529738927640574001571282431364063465015106796018353691390460383695876350874366995314858495924127399214496786628058076157632420291054703323549139393096352718720081522999528266345791429383187220070385697945918816493011246416527093080194229481758110571756541834568047334166985377479450596711910683841782980094939576725738177468601200506606968154874157641014704669873867464339181903756054307398764152720094835873946486549728793188310988675613171473315272436501903234296394039910832767833478990999500014212897849518198016670469936957579170929973881507431275334263310731216894437305440421376290912278891853892336386389631311667854826368953508746900791958175134106668167543626122976677291558402052011766270955881589880024089994034773955376742615301121916654733981772773840340626078522588645938305630038115240892399512861519931311054099791049856262217951556939564896302275938002715703469878402130348905626155604545171306682392146380581192614820234956592251948071877353951537887765983335185664360213153281414786140846016329101419785019681101831197293990452915835104704883614604586756131462412704395186973098669742381698901101438261750293922018644916003016879948198438086864181042647474896740446116694570480737584016811935054779624794855587076265870513385628776278015874956873572787701275932223219790018479338690884182916453374152712754387801582748091698112933409037622454658905021940278018940346086980641846719856151894113922695577193657732307378818008938375390652445286283943932573600845757615255498129789610421399905347301891745823819501283370232093650474962084758674474382947870709200634815472302099743412056045116156255016095774301064869797472953863056917207893690501736133124523201781641792618149568600072625225494829502646309836670488480896717191007836351318164576960660328870983201351298289141575490907049480242781457021532757564035814958650872074729905926404638234405532611678845205938045309424528395019187208585436307447334806741365913502366795318153403113943853459064926918388961569925135439662974077339906033833511743451746312741366748294045594009793039277503594695687395032089581724849608023051655849840728748489979883300147610343950584840351577832043708486050198317568624462602757601983450952307728747324783321820067730048539703591477948069384955299329881107699943678052298795187404678433226459304269678697977432127489116535622243348458028189172976914382080983395013586401798993507121105978448583414714658392812944645378318348269167799114869372664373977685876571863200686548842439285822040957896001213405797918790400081447107879497924235027394741454883994027079160621790552981580268074976677573760581675636661613234085077944446594487605962865219084963465675139353721224651334237801455483643587564885034614286068682281835797951696626632840120729799171148828238475245547606209936166180422836559113749647459512148391150278278028224658727438890573802148631511710788105557580386134199519746431684185475471284404811516064660278309989694245661026049900790656310962864089070613111069106369842074001377133274509785535107239091964097428912224953105672285943437448440703270809510366831800632769585112123754249868948131242759761532986922236399153601641851008125265666631426003328057743066082831548490656616620964513888876746860991094722303519007404841807087454676309050265144240808988906202775993822209775224684590893481453923930240835451890076998091162079575188439507013135977741734443032691655217042930081293631529568802167717090127766493349434700610890763521930264708740416431501006897747824108580611704810931234022438776451738147137976595650587891639048046693309333153355737323085409523705147068924106465280895672839058832435350373697621529266309973221767222464188795611815923373604095883463000717793799406908338407279186185362493589432566664533669226414017549293421124547259552814029487601132353112128241703353865687570904152632777929150053633030602233402559244108995316996113639710758611954107483252953225319240239197250227760608874851182294978494462757419082610857118925055319151245231811452495366165102203602293716640053017793523495442690665913311016885205872905056114486240466740784730767532282737309079278155350499590027922946333936123015285832043087212712942873860436418233725330911442830951655949495676977693700110997235208624921564077202251180888059163597954980971932705403020506513284723517214872953899785159338075018394382447143563714570319711720831245446600280441921631825311041108078376654236991811593045668385095094833420017839136644923895913520834501807198975635726431671903402188063949699008198224999011718984327104486776382322482293229286356584128443559566909246863567304700450075853118118946864112753879685643508860195474245694089780029536011060441162731464448363005655465256669794501182228912610115992895073733823974700516606564903202668872246315074461844254219174731769460758711814608199192051946808191285898407344391603701971033677859002831745956234254148389127858607243245785544372265235694749516516673803391792840001264440293133469107092730540361728229751651713757156643394099782800888038545805665245703850806015666368579309136057385786602612629883941077946249382631484414490675976634062852178299260918404944492366078427006100148468775743432853570567156205459982563664339798946860092539110684193222721429852359901878622147201433674169961741496115744480865413667428740544012090157287367291594468183433256038793029108325851558026683475954172335187328277179897329071194890197786554541070228118436400665988805687720433368620892492854754009625681621366623813481387600891372814303283567214302678364226209748804694934813714051238942544859925669832354556501098486606278228324238811069579743977953054611491099109184589947134330435005782759580197891940597189814042526347219664290250651009706684856750624175402291767406154745510994209294803621398308379094700059678807792193546358668815802797403432991928761792850666308883460020044790459010830902757173830833836028997185643016969883564488506579771635216139431624843199622927287568752874687525054175055282463081884566495822438763709341226294628639516353057394593033298278130625539184700077819728657146158451736275311002914113176970528486522885839638068074750420561629103455401145015686765618820699524116002627355818881104451960114785466631476231820648806340732449302839855238157475676680804073825877473002414532953667079388601383427487018114063268427777177714944188427199659514198926523094378196581931872580004381680454898781450915800475167035757447058788497895050235942802210786443203472071556561746038442259816042494708149411801491625867770445844229557339696025691242215963152891953648913314592745210857630114257338596776275398737269690406921569338197769305186898743133744059348853354234761633212716147002665916063474452729118525479212034348659065429394348721700130675438654799531383083883268690344975335118862848089842679383891577507787692238073532585713292554898390534413278941595471394692069115213736719684202567352470236281866346086320320042710020887243702167616602366734764086650967401091109728671595427201992249581581506711331901536818327452828490487436149100623826717291662026129875674963959672715514685441268168515333784697846998797139971568094884803150621265224880535020711856167504031674849688403282931548906244854503459174260398537658465760300271375272402166628377702073329007688061686584990932602678928167460791816068933101646341280415917325785396651443228536544823023963070781147180472938362351543672966836642304641658457432449706025226205695835626811560405010112440034469001030790784799255437094160158504675715059594665158640688280496521261911880061434859980816486203914880959515886735604673732827225261506303886691264511898606515676594046702599436366236854901878085932434420824808034587709511737714085789237835080595296446442843395502559484429468336150477196903628928958906851676859621674373125058024834660976216190170650024418486259962277888137961686148562127156248131867645558521786954159107221003962811741900366230168505327012848339603311637553422559530218105079402719581882398274855482309626178920510970618994696296326731043951249974063750532093873914508870088340763791086586867095448086719964640282313025097944156969821608572896807811661355659475625346274627605701187302019323563901064843278012246499281023328046006317179952050799585293951841973504734806416746291453336904407989545740928737531964975702508363964041791938470847192728072952902073435432078048530439199531496867580268593019820884232201883971528042877589155604227060086996646865453910247515632360728132387014263095552136214919270252376570061316016439516653142450794914050993273402591422924584433284120456048210476242757286095592756673126987506974250235998239178394704011573235103046814246326855984095197320035384409599943974194574111466551180066099988062071512837069130962822822837978651514905863187182925723219723108935195492411624754904504963260133575466731762066372648578344706184976146428734540545396403265561214904411055394645212895463969991698543426670631932645962270380211976225334939803797243548109165719091515844835262680012919030098468847017899278462151390626447601521563656298242305245574906433832028617617658264012752196940999335722335875508556786704186700432346645305687858880575349633278560642609411327609865858546608965868489862887016870671539795526933894824124323607439006563621410019026073286236038881827410305865651950824257734223924330152677868327075037048276289887170268527593049831924708728893555066751943409699787206047945969860412454201116750918525810005648284726925003998055989134197878705968070336638689081987755240416861900669855670795138566263313436098121100646474385009125090441440390173697484451088523210061240601059846208841822799105572064051151366559457111147101269264818968200447331930468521735220721706145697957476110469601462908730416882420756704206552715846275948366773316245062451271798327277558338371556324543244692149410997417077850558337980568783825830514372485076131620778204822715703443717044509315091634130282431432054635978463601201178784625454352282190860865540718919794454768549375132187982167328960097138303214693241450906048793092481805675466241615732209630698045505388809542750185641174427273087147985663592893564730939970930944943459725228595842730116649994763911541842991811340494351238533373620317407114482422812408460978111280609629393208806381730820836163217447137424151845129061757521064466587238119569147205708609792219921029459451860204435427280223265694432159022860525669440891245758607336484821254822447536403448877379837986660975749480542653784739083820682799641302640032988391066142537536952599633251240893161749578929731689814004835520871172728652681953161323915407634916110444637842040634386263849565198774082546159711779104151479876447567952018509030839991484657542206060015675861994453914740598143058434138819913957609729402938153550698920002285245146491014914441753671088719091819769067295493140807022792021486869248257334538517839649689573970541689420372981894080097971542584997529895874153201402875764083457933034136883468633125730825212495355794230003961834838449682624131030385052247105988983863432742515672294555055876712831411801330216153683813288755254110698143442755149384521834954078094147061299635228097660550201779159763780398501262722903602293588641493426366017794412530600848440960301440733269422258202904577635481293402498685737247971152567430113826644834083005873912323999051395804126328145138852889720362016597702671103149442929525997872603686592650534462653011138435592861061572024703647626212459204435535743485831111133063910131704196137566312548434497987365193875799217939784302972742774807539554165092943834396058592078704655716456634511791975781635451565935375353030287040236775920263852984731608771989808409590770815565432245406609081670164339082579274075407503332563169912916072088831574000871798015453627948686658995585476533541689319538940821377741131210085866716076536558365575355050155338756397434377035995626902287556666829970862875570827997680501982428670200430551843286053960742923923702351410571490870179804858524944761868878596277408520122685137258511337158761927465060160978625149695702053967301312202501269884056607582799735872223754626675716675593825189678163567102258182968262529259617914047934578537034704778405926027798759842700748188077155218273960213905377721460314574693852242419180389586335246421108428121585598139384402542642577021385245075443686555384957270833853586211944188280974658317026534301440687090835542159394145221949501258329473785950046130988457033847694876655316723964051632380111708018563329390439746412567300806702433678044281886880689192483217921728060634695697702666268058715820783995283012727933965806700433355674022789137090048966644367923702528246446770467466266028964896309300409468865977876719490036536518753918931865742344081493280887493830759771367577674347552675231995824909767044805402888716678285618221656429496736878706238683585625897041146331682842585585199363555627474138575382997667950638572554306263430087913975333738337499541627067693218255686942026781007616342092458483766807245319738923458194518274957850475007008851013169709508277742160616654889147880936671591797163399190554797121806163465076239667799022915986240135994108082614905519072333279191405830050044796149790251581884789165955362116998365619953077519994096484513941012334453425188319117921904228294882937865770443850353501565391980721783922600746150942544725418374038480109678658631092954273481930494359753748860869693550749191818404139081548142131473310784065287204430592081841147116131024411713467314174211123696941660959599331031084223345991713663147793908247457170054019613788296833483258265905385982469897619515137521532269543106208297362362477387267645045640543053822793215817656599637926325858527887368357150998227806604961197480932790459978288344511195314652042331336573971378705021826743686366752263901301924204964383497785395523392025662360912941768005810821216679230210414302516769675614519129200301755413336556411817328670566255829894179341042675215022122051193675163059445852154725581674007010241900953704238226005547341732981550983816924434371355418878401962337656696428462079375269690686342777154490398938308126751430327209686805297306547143075071026025654955693749427049353605300936784319958440612546577078442432089432890240179514521226840558990410500135069793442469390704278457624948257106542237422897059094521643602903441481659399013705927945516190504896337465347817469432037311672011591768214999218356771906157261609384813974161068178966382334314196030968225854035100227691829809288637016339843814536737304995489826338262789303326447342799422705817329970520413141004166388721595611682525560468263449172626096819385692223397739559175900179066381818517201525577846747293939973675066451180058807037701576807372336410431294488612201317763934788910376406830755458967824164747111029853105606214976305448278507860995819574083729051202312205985141527858128110213155724302372398726690851758286009565857480506878365720567475740884349311212860246426994017132272310913735003401624278119604234617691341302272475638162848609765877283299918081943055731731941039835955672271501789340083439072501766111963007167282521534209417111150706300610405393769520517012536428350191619627661316165303950995525717985348048387012372806849343439173481978201224227414559509128463251014067498169409462071697508099150828278568299822754992038524465369367301820504545989765388250501973230816357253317027997533208988523289935189386300778250292505150966758279087087315081440600873162874074816650888116651896718335485084252876873065863016627996096744106865558517722873307113428935742608829754039766278184060357092615946457139176538942998807258317790079204448722050889885270514964131057245659342010264239061130797020128272461219087159112431613770183166446108852526018831401376902451060888241708879551515406448785602224458774030211298281917309910631934930590550865141847232937580668694594154539107782552132789629098655853039357222088365779382014172730769271858280539552645921115673619308632204166473813824753688682422811333726931377035483575369032046077794025986506182520674789175366674772512806268688073278900945795284258499980755172161541714867304300784677497084754454367588777858579480814659615512930680605991030920983234534549093632226192396612374887897428525643265749524943323536103086201943053037259157677253175058359463269421715785328776586070267357420525380895853364070563443506781676401322076112101916315016570141845475892292326958851805459433544361188831049546129606239708432906549490855127794696620272065256101432193718636672458115775160090733902329485616715663798134524729921990715973842800571473880937057379267028654982796958250445137274756217630396173575724015648593968910691518710463781147223420610850699524524115350044254131548317699532073732556258330435783433331484806246322743221733233927029827310554606272746954756957488960069578298843292203309882468827141068268540372019198039276188586428092603823139121005939837904914078296886368293012797313487736185605915229460000009940408045188618676238649467639963663462516768533158609244899666041978982549918111953617623218601909831749414559797900018234372242488426183628963608684090070422453137989741913865408207654465384809541369668208669918633394620323306661256821248096843758297302432439348600001998008333136448772786584472691140259600241493740461125542934145189839897701956140608064632992064326698350506732323506466999791501553449214215356131100682982543217159281127882008823722048667326372710290127017402026442861393680532510724607080287597201800762585025726647680040465098831002974727591360514107568414946675968581976049315482226754092893767530734606488853569905795179065567995183647073342412425391618816361099933930771506085808100166823639252519435475765146382763345339191180861463633498232267615261488226143498767358827499044550625326765118892507273345650257143730979436102445563937476337939557142198308976976920220072428775520554015353351771159920094617407342590648102001364034197952340022011362476608816126512461142120149497497176426894842887683598003085426234845495943392933661749656872112135832579040516996577612978990772201746283304438445614024598072955216033864515287429967136517140618968079377393203286534254495191377165202952567945304215789722903367063992939549017970006584846651683418091245600369854140661361161346579924596976742553353018795559401641723071578498063543206019867445728311749643083806828414002944180447294367257133978849896024097457478132889267023238667868448549473414687339619425066931241257161730697152330676733810986808238255352676276191629733716409601675456525320591427709488169651861726601081706391290457819291989517001986816554080474796960475453972243775608472056106474743734892931551207267350501594809301548256366215227018804624560333849191010276920092986448391906374823670657470272929899054516904752172377582868401478220942652663657975324188343996695873858190447180282171854637256085700288064241203139850817337595190057891901208620322813317247286654504515100582486198298057856142490422826318434804045051119975291396137721660707444254418684137729561839071723744107891786387703616763954228239832989212380038342842662782070947337632524387414763935122897558362011574473767161433972662490554521515481829339536243626517299842735896409961606990118444122393721881499021417618804380120950638644579335838939837824079240788021665543128987948528797135839471829227241226454196476243771356589367207440977492213144239168516431267805078175381746369890144275053188948837182677833345863060201718719037773484607153996076165926296502623170826935176510352465161717483202375471446811922059382912743599982400688427282509085331636593496039291367615919894566724965717540014567219983499036210717863066195620596134653733034405866217954161597640231297640831460234395614079093056496538874251827090717968188768561622543079045896129277032365478062273500473512556991533666576259889390530904149193686379942434841153927155076085156010819426330236334487127403378947691950590650513743545140448421340884739673407881527853486926597588871583171404018687593844092522201114995683017111982089891306632966563221901649761733586609769559368358079962459307732583100625731107152653055771881471621924597789436077974926542591667455068619346844018497692193080255786936657230120793334004984580788762617339789826252316943336921013322755706207821728669522814167591188901519440091460442210097895736208144243395233678319229782105694827598384589772725029201839495370922225323329469953631266665685317109633773234773914957060538789395919519561271294402948288427413180418606888877386645411019083825575604794087803304786531897584244427135260413707854788537450281794060790774243652402075119802288700571713709646545829768645202176339781079655551539172768292128737136622234634267731187369366711957709980085168253966170449213078812500059236830542176475089978954088222875061783727560963808297256481935561038707490976687176835124376213577201412789662196708743805518481096317156817800251811682517125043334949882707098335763365096108603195011394064373673525233544468379224683321759770745516310839439990476446489942174304566719984668899671926927577512320153002494585625189640001633043360966121938283086748083935253238360175401907750262510857843168997136462839273678400036213755365020833734314552047152816287686414044524065820457352703006554455856014248422012065395783280261978217933751852885106693539751367296380478064186428759409263747884044318958174381742637575012976840966957015220809474872033657248064076252623533201569129998415207224713769026022520712486285350252941319334619301447040444393745040318405338374880316855115847004242304761446709138355749375615796789107444605914105824122053178798951400646540009505463238854656038486974302361609278804217546776430287007780252566599156357594888569558023979031278629809519839714420983911955851177115912510580186988971147776675581727925003687114774476307689821898849144357789235384417575602390658681321896696847241521101542777565517757113006296395794162229931392064730251896193745188620785992743124158855268389134778369588773350617950272193673931338879289738319798459353722962759552308686362261554284289834859731872197937091397746889591699803403244660474029934456284487103845065820035343665705922829407326485604902119898719000250587019193569339878786227354951985605047673309864672478972871509372618821550500077124926379908481879276176656550081998608988246050629500754200122321885586438083539880513959214134569323075195466261179503284693764058154866867441072004078656763783860576241782368233651629216361906685171935114108205779224028067024879103521587665738332379240164403241833064295818162035269706384119622456606491115918067381189081828207718521572327224545097471284177386766741398045732108331469481498540339024672075709455037754935325349083030874502949494710875259882117425587359304947053270141115676968623005140506179985932325712671561656756285847555896707804736494286082861781361786504996327227951534658780276359783621487650347454025138203402690253739075532693430269577916498337626600240420466421156329058744053900997644942251125966709386265906892793885861719116630224258503085438645682194770576850474687959823411420039994260908291752385475061636707367007126687818653842869675090456972025191283446174134513451072671951210657124027301355045984820709683478488282557444598142175751494103569477470145095319564525048601800931593028698216584958204926493710543946888831910016445885291323199114931093267936085726682570360875245954816889185077003585561226759154880073731392998517543460072237070695684642048627783035659313954614027150698160373454920705611448073558701878725317589294179573019134824385939159668817611556108997778629247246384238897937169378496186612958583312946824859750873716371037746299780269065800199213114852397647912979374724725189868928907691614539140906515044417995271888482402885340576142621613305093413304455577252675676359938400198662447157364574091380243404075155226034976677822346102506394886291807315551355227285953381806841540403225508852083903482638203487079247416516255820149149918251689283796454248327643193855635751071026510646098177583059044644875689895575697974370824582321654632248913176907912150467596242738467697871827218402365030445947275274965445585516794440625299383406955724150585564226130242612799835557668474281682164840601415073338675453819079984746942338262433056404267948645139484116771913642395881356486752794274975320236802689802292626061657151066466381703646991652892829906655170608024195924180304086712984424102265566832298623462200524209346049806168783322614341037861339320567289013055009330513345994230502517563565361373428499302852052446644749289715896421491567710655609914954948482449007371914452498954426888252207370334403820391104041372197959753545203789096637831054058059739954989707495487539494180049395896481959902124549772442700413490962295148376716539159055810821073928286294440792281435552925333205410032643471697548631802253750839785628364314663552717629583451613765736273804176256982520231769128286454608456978719057707669918035515388760812244369429267063256829936352624585600019225011133407948353808767500641596636785818991461024210982204246094827671933368970781047124216924376617921875420966958381532732665948016248815960808431767837841117083190155534498274343322260413822521332572973316230761955899530304262543051625594668682542235151052796131084508345737870201883513365010737057199620851077039933746717779823864722797542250591063708825153001253749239510938714110205304041849213176298210280543491726464832923954570344400165903963179530809512915196100602859666865894623238271821339595751351087649935114074242949089105041261938267459712413556652879571599472080161836782534413361263748767763772350952840446808497927465268907087011902263518698509928765285074676625769102673343675537859502493607785969795256485799204175075693867825442867204317108535820431878621059580640790651521634706901094046283877003920297982288260603138519593557447987486384665018551832674039056612198003075214668309002534737718293961341189457134472793305637039181718598109088822155487223775075208644951875758400700272092209831102649656312468913159459446525826204918171848874779939629347089991034101857350420193958112237914078989842401633023822572083425136108036891305050638881959619648484717929103648691602565099000371231198631482955505328996649663505757310585980183935129737115849750666778175715322417190089848546473580245562246267929538460283181639437101168592257469268121236942140157496341721688136357236619349513442899559952637047565384855778294058436002696939139978447642178596669577528102886268677143546988038112213016121295824943036882444805883809933517986778101828060162365731248732887937367566540651638008534754139972889505493564968273619220865790258650977796485339089204350411804213318676504563213729715101092410767993247125239587709489328751770432479209097706416766815003456461108763858056611116220876576461484301625829330954952383028832019589239604293684916734028118798614953500881377873626655606532503210915051962206942701018072242474829705128457135166637555737810838404949241680032190459526326557904497599426139192700990981316605793525192330902686402356881801602474760521045195206760821073993732973687924129437836621899225224624821463152196718728446811988491335132889638498564049637294048572406302312393256393775461219354890247888420345995019538694657705721017191540846867024388455057904064368975911474590687099773191215061637655612689612027617267805199081998834758688451662789146223758023747589814606910925321272593341406037284111057988951258071808751919670064015708350018073996312933446236793774107057887546915412811737000922841454206576684101623322769779256116922265714997029442020753255432201196966603515221260971044079136261197342304339950313119959625079251323720366504396161521093946919215019307135069421472070275213721265060517558358583203599461738958061327187203801098867578913119036876205047830172309510386703848946727813804698750220560256418795466693265067444326093944022744082699691678864228983235494772104420846261796412173613628434591331338300964709763302779157384535712184031124018966986445361918355120676249681747571553765512807824165380812052127650184316629867264981654669249930651109739139743806132160177668831888565885706894088744334615385580922969906803127341831637546035833999736326965609562244760140883147665115526501020500031716537334914603822842206680235807075910959161864099598306296285912798831731135423084563059791302347681265894895929264643890848957823933251589693637290835905860464111843278525156670555381763996445722669712103868396312149427944250189754595198422149932446208867655909380977956598529429203229267179030461748785000140943734518140025696105898276603570668510409509178814002917539968758154435189366531929974479260796294743102844749558808005067731686426905382830615365757524327561365375099456449580643227158614444116723524704619720403073422425164882757329592418378493893882672864872080303203802776658666748063457644672280728559140701095284100458806209249849652931944763053035015128072310275934860504624829971235997112967410922259074036247237478588535103128089149343802961318109683163532643201668902032032849003328582943990201697644539372066427546436935139816519333643788965210375252774817589474836755258134176633350307822641948856393312089364721874629894184331155423302054730154548193363463135214464134816646229311477317216266111378777153635611113028597727092462705154854241790133872004570485585849016118473497268958234159029037918329857091852533712619176280221173933978065516893669552457984193800222237198288431014118937753899821837208805085368674854490232422153339538903775466557587456914029332184662279485881100249115546235016756323811457003880155454924759090194821336125115838170475804349428812242787221921905775827446385702247530749280525057513529900407533396280755388344173972622952727167887621181535080094535021491544164030201166360292020911715143408433230191624491148327839100246161923036652018505691736674788569731656024014960930711436891470019174298901819659948917609489270181945544738185805997685527420568943866311368119578155770254171927514297196595823085470257864543507763505467718601642496863414868025522499034921093458828346056812601940011223272716065321726360375884624601700240301655088627204968816953027940297392430177635203550715391575295530449736069504148723106443038701275528293971587002845422286012635679545441792016734801481828485284445629284149863499468093179646691891324798940186617859106793497980942334883282705999331158565097565386533066703802875039052002468397685382527635799351196929056574333996202808415421523984581714121295475890030486165639238301375353585364337073127940183417598260220973973611994720500523522764220600029928345987590791211966035337683580761257945584237275788986555879075988301609993830114972314451212307034727844463022229441008210434887812266556254909486373732558789958340963129509790217331896131973048900297012869828055823867754031477943526772142504147085820233729675377665403686336886535349364881270460298336833975870025460779567543253589538536398645404282417993413195969171316558538941505482447231214101700513628865714737950426269907043295376721682004033447840527184180784286934075872062294980188955256846341536325351352149471775993855236463993053943671044792946552144175292410971234602438913498070063739666925353925563989213733736064751969597625837077705962193037439246615376405531977707999422578550906610372621484282393474461715764324174538160736431750574794151180497643835810262807083618577133793585053961366245755602622373217882564065155101448445746017005971728977870770073483536832751761567611413534209622612433784121840493634609400886932610567881698372393972719806399941909476320141751682217469269373928757601162620630588229512198659704566324273778647794729677117812528140592111474064265461112374025007012765695750727385659865824069620858512382853779164680971045362997735818227742785868574586825604421813618922731770310242380782182192424899552246995587148416872850161534857293218109125825592208783500335685035279947845446643969482031051646049118910560303488880640784628984651958213145428987520799705867103217473932421056577331466527125215753579080656597541401246460391113420116028944206269489233843166718373111147453917120184270106926950229973597273553618603854086205171457953596013036315730841105850202725581545239606632181469625055378262077259625471035119464512388797585673122009002674409814374422770683471337269247624702158115791063120840776101619206530154808412937570796338175735295165148715373378899039547968161259821244623456134015647203632534454841418468610914381345823209947463301475221036997369819323730789498594124482157641008310178575308391537757804173201397796876007846797198858946912819551527984334913087225995150148664919328203678547972653550092886331992447141310216433490251775866450865755672363101844247029006444736662980917440895549974597072627549768562908166255950932148343281726174033259745817019164456264305393167885385527970187088456727061836357451672596913729863509980229006683637280932405884889009972897523817000614778810852961986933951559508071387934330078391774949211900005267752321566044318452161272724432627606074958671960366516986256050535587291113576059236687024708012532708083091231088878941921778792780813231064742451748075060557795507457511642587025918457813313784722307844459023791769284486633792425118525391880484096922293842301551360622199121274075327548594431050006499780373006163591600378102889686432031606219453439331511791476554490161681712522796745266878196096083001739831200250961687583861725614563640362083430494348441596128496118726085139545554186664198874273653437102181238718120051805019729685735181618781672184542586424870683862011320361733454978298797407627870849185390103013193692673944251389369384697135357249553884747858357528795003374568150575523348815739555807552272833807496626978797428032401943141456395809397198727538597379674443458429727457278871477388392503965316619257137021449469862807591201046180853084154411905963133442741824802098083223795233131817691258505275520876844928048328943484278412485690665397737835454311709265104212854946294818684489866716414949753440794781864439512356864759713652080871541723065225108905775611740958630128946175115239828489353563382102592749950100731892529372819825393564581258552410388120848409774044740283393855236946087156111591669191244397639744576544788044928658504607952775975196189683702204090705464290081709805845122350834037766978358806577539444688874187778471932848223833388565712219705350618205443742370666918645733097011978358419710623260910144904398370218354507880202762402896224010880970036928263173114683014932955087431088044969514162599225818977239150347449696087062737957573048936666760875773523178725882077999746713641067979519781925964770107248875956427950568867218015376799770278617128945615515858094503221485698171653615539569557826782697431469023688478353149169053518021221213399821337919841644169468930415256662831406146000344713646137314071081978176078935512038294477110376317597649785777075439035032819521574446386376632166456972491421848495782705073424779661299167432472280771381090537764327124087449334965388752053297131788600447690571157531977884919320877460989305910358280620364523286058896797610067705764397510922680372291247253905235334449824438290457387987858667494290579183988490390996993354315492945913442670796086977288202451065964878132426708053332307400672050145579123750744153453998289759178687597114074079630420839941185097232295501204472026343363246591723191764571312625183998992387044727601662806434721314637130206116626534510356192755924362868886524188425807502979325607325194896129543568356551032351338862017694818892579106106938081128151025208160104024710701631668183114910799020014740653006740595541010740092777497343181208493674086679749552283689509544778755902548439161793579787809858070580871133731159917826121682262942778421613884725907017810256530655663186162337771209229487558352558876927193258876255588378529485575421402811293951269035848939013095426486128721538374332070191345013943166493128176085476365090867372599768031004521530657032491483053445106767417533803315757703925071584114766041280198562185867666394292014478597393009919792596758391235164448509540325189817700091489051543527938938408771789989264175627937573844641829943210509178446084425413630613612804047608079434926436013381143424387631302922485673595650479077480426020183784145374058812515860846554072167841997532591440253344340610022071089638602605376340743392145182893192598844389417363336566637535778787062413822620202270217977525962487376282984831455322613092249698504677585076008043722183001240464540351358143436160952214495367500139128082387314057195508920794582055819935917771786372313109471529144419995186074297729047702162447256481270244950190157116548784101944003578231279137172923806295868769349135042738567639160846781577411893778944021771631851207416615482758578308788705786331709011698744474625343389200420974819408775257606382901842225971674671343842835991132025426983180673847141698517675681319795346398081649985343723887487544286385224827938936147321171307695432526068415388149934565590258135980788968292889931431846977374136584656783221589034608945020360245699651971072064888721880181420588333944028657345622387500094765173350624795429491017874324487797573126116065107997992728077199694866259664762115190571217944869054473698374967996056409137839449464354070119762333302393097957379971072777983623558889172673536846500609033529329708297330381358109994951927015054582737594615267239587130495746221395931255083490327217307060329426770638154368681695923877377232554521945081154426277854049575237528494566459135580362195228585130120359061460470123973399857165727817328729687910914376706019912426833793402316179134113013617407851066794764215630842096899135684487388644348987384506301680824968687018796410154084026432491819376880965474077604825717799512633838880011199028531621080245883706960763536534436575613447294586267177472330356640546600688601695645481119403741592628529918154303620447636736913149428441225180832953320605430628065080913371657052381795400479061129820812304648790399334511753171353570122872096438348305011533083074476255107846017626933249375206652896817188329391568362627347128751429290029797210704083869998753458610069878024325168268988315630686381245900109698988757887178910842649263046062143381369620028816538575448827516815261774449114824130188668135845205214953059632440408483010500887986237654117453603754512824421547131758626285244006039944175589626334925835885998654067882659778159055878495219737572732398044883508243226825808492607114037846984016062330346640465263003304854414916589275844158429296888235155946285437925226931031834493391979337111312206542411598467674869361605973915973883687715671115776804148025607531237744732803462676973187771203183628464050654535854314265578721199841912420384211576301517234083868866866872003807551628477639975150175103232667247857804505039926353653316393377314934164350728623522908660032944384129353786316867518769364640295099004463391283591809571521558089966981340497633331868649375939813870747392127098677698202742569123710997536281283864410517248786632772790329605177569111239025464159995037776958536550280499942539339949642006601524944762399271203999449722556649192314926808757732879782675436523418151054105019835359131203283061308983373681613702280153417957801420212242996989451711749104386317150354862477935959231997851484979962627100691276613508350402577939840290607343089383082107673809777969021401525020625726008869608209800165520833808514535730987726954886863159570223543597611032401408902751269035174299851009501819224902180289470696854695071341001853545838904876592586212267725110117238751582494203984456878161539728299810450363421717299425822216996158990273378666305559355979202710257880236375741250838639496631035503326092334197513392030057020225869255662106053621331630423842733867513759163727718935824120680873499211614595374680756418451211392756538833461733639564824206524562982870724707116455430935006648128524299662360124799449022333944765261135607425183213190818929009365146410178281041036968029559281331576273126974207008297753080631250210286235525353223853244566530400769862685832957925514190105055424932361976529984803108310270972864937201001802075850047807493738873961052433536038510920908447304389871112733688952659310028089409137604423188931469514395954546453034931667575148955038740624462032406967282939598648549532458819347380621929009417827530534297569502420448708973355928811029903016440468832141833319314006494651785768249046455032008777197715203895650015044320017033339299626520744647649715302024080443301480195787840068009712833238263995108293955373723015147541980280648948410984133189125707706990478232653497282618508714947387894358086361188670872010123203775490641812008589901808573370733502441251433910387096849863152553031367846298223441869685256702217395537133417661286955975415058116776861553536508719372344616192453836879020200244925874308533628663999152732413090159714357169032854706999305325394056247483208177084070387365849794177504968070965344989456162472586763247950230277838925635076855414294306065156766563212800808226347572818528244526090258783532342703201533666834833821329037123247443523247102586385639141636661202453959154221402539885234849756194139590052695354379896693674985220111216919803024955061866130536074214753395672553461390031599771745521424396785654581933571265667808748111980090974957260761000757604820979101297358120922298592234740875177236062894783164552302462628937295358388150195446697489031293109013309762535670573978754467165909317661986130456903289900671195325191738317642936194620386661563818323798896603384981750347600443684859369154514995842060052339816110066341755900405948762727835343576361639463464550838815572436957787592886602147966619994834826069416546652677470339083902735890273935226191545057881082465572825670183739641977681216520514391140183588416850480357196411737446328815184112539635019432090462305877120076495298212197564210036392696961601874029841149704245552760495442737309067483115018409516712313502825830872872111083249422705440450235927447348935990916986921043117590201416567231780697485156423295299034796386346581400477775458215203018683551329823765628243351067439558456522736816959022669766946054832398428724308833883140164982281187898350884499320982168724934517450227522797161034365768933372967006760431725368104015195840137653380156174212437957915300209089929738535320348694746644741813335225957939299339246236114356947602933089686732458991464576720189357148900239439956828649207385523097539744935983435859608586311949835562684839438974351768364807341342842666446784120845783596083227185681461400015456454148491544671699745060359176476341288192265855489413338520447177219881962345770254225026484619239919532106082136121464697451562891300862220779658101534405923478519612732249555694471324843205347213969735890511300799506420595272331992826373869644548722940084483818638196372715416659899579669479093045606147489222117634230515631141313442432445382016671752792697840259975028564700600377489326949146867423889063735012956768788064115067032490577620851371964044865347113336711655942145525981054863939171987176134273733638373142473571064147923719442576546930660732055665433443706008741606730432519650201837800848994706451192237733410071267227920491487644064635103111561474101526270455573553619443330227230260360151779794231770357331593633864873841088304498281398693076772389904382616538469299928951879664205961014121200361171856676602902709299650021222358175477393350653798785784758792464001134180825329979188495924431248134996699466784762952066931150668592147643118377825341077814431314844846256182968746543608847403419466141531230644549902792893255997399040599522554983079512637070999955857605132777065150890343190149770567615280040976803897853580436186876610098789591894821564709609944567438771409283324818162854376613225139261194299340779316486305215709097207515374982368134470327071808508754227087183240423713030713938841671290871346755870475595143119614347335020720877920672897150195253533589819778717307063451794941996887057141183386359083937721109457530679584175678465157417608558121376345891075424620848748302104019956121017652129333413501178890592187236990146441366249564802233485273787138430777886225188075258653497456433816721562913679037778148399550198018730350846376785150541905037548309330666358266906876651198422462642331356019586397043456965731092192403069113242601794182616828688507267062202706479800669239192603207972838792383326020077292949111983721153309698515434152637591710797584170412249333426694194035471147622119690340902071705760571113789147854591874664334963671379460416929227758505456428270490692598509548204032576813038362774811565622535248446507663267920047668761955008867312537191287917991990046895965922856224206023615600485055321064178559245446965746150888516017720002188959778823371073676548143684868553610977346852157746156477846013058076785877394283041156194027261126447964696490368715429475987735561658864573133570715441569324876683496296528785341458346327990314988027098649769265599363061595558968813736694070412712341729571859052261464470758590579149674398264663743387803341087699761272653496014119339789419176270355992947937712614049199005962444732229032704109416461769742318392003213832262308907602367703696464535358372242838007489219332597531067008966861538386761071037431687128211479909836287497550919947812975165419012930756533749097633038518454007720142084522184709217889257697362824816711457173825110073704601015926024474510166081301965367427185042727331011504119556664050316847172583261336569387399335949975919445503315420366047988716294047228922871329028500660574299322775947863144370216557979369914480336097009804145267456146769148928948931377535883971696214726517563865944447958949279355452817781197887347142145030244026839185683491903710989882859615654962791292106784708599973852774916558973559924743726645063449704187409991464014312234934481971633830999818521663889469724056405648743897983216217794576290531209429822090878100285517713113822675631290220805539216761921097899109722238324400185403153384780122687727025920867538924774194792300763787101251971469733707136459968253472589695432676927262403750949600553095891911580763296460801682844730295993016636271109162563246591921151398200473864814098634428519545982037906738100653493547184468366870885031323829594001377115800698202812592185533428504336079836175765409298370633297180685416864295059144979396681360539126092931875389186524750525215183927273324667327006419922760041950038684753357374932326955451707206117547437193814342698175832451119288195879462844096679734429930048475947895137733506548709182406058922484513052556621001691243655833672010939239451267276757147627568006582409480878432117874933417702328696308196845435893798303321587045797906959804735711170859032317672762129175277251247450450911996873346057737200838478042079304841495022826001525302608172244940972004528081612970652035593783502868595653131298492896207610969207711838562500605488742016768248754400037352212656641751283923813933035325032258043551387432142598817784161540923076103820791906936531341446708903290096522278402373909547760350229765999984492249862876795590943548746623574449374749674021074630428342205788142179144327985761407208453837523027619209428627144486443417708789135840505521862515619815786660110678136152344687274122709355889299735846019050410078621304554053380332986808757084741419296858313378528290278046510029300680197636626106294028725837380585795536295997274569441066369543067627367457646147062694345215529686404709060566807357263052291924684210724763241118562236529185566572358041925739899936993909947822507971040888885593582299917514308860304491829676050765851816172605564604294829184474036242130900200295985954231547203033281412760814961409772286795060707566549164620589645141956545378493293839837570897200961567279833775606619199768114025619599175695242210248421672872880841508681912618314776717048105892316237004724220355371408968372951328171232862152097558090227587859478312523657469807537611813388699225442613769106119508654198294402982237950124671008367076055956923317575152162519263760542616240608165004123979369872466428615077705351707465848450786926278747053329316154988015816276951455637741865703718917144555941984475040741558091173518769825818596440422469348372955213898119827079789102711976184585367779831973468647132775967341562436912354141737957397239161254525558942958699279646416363788536128661766220775559513157243211278014522179247784925738319882100198122823794264271941162072075860979906818880403944822708042539059818754219998440158928041960929518082964688845485841129131766103544754634252875531193728211408042637662722979471415487597700425106603428424302112397035761776213517366770397250623552207345682504299824621765713423433016763368403483892168630371791476010937269446981617583115388455675097183065907861953881655287953055601427137107006148246717828878199457915496700960916890043060944981880421682298180705463356413222743673799228808158749076734695357991370175429012349005669383872289144327945747907867062532212749243546919942950152866140898238002316460479674781351948224142082821408610071906160337209049648831869430007388415973741084894847330949669186749563512326771125569913326129288160679851915013594634505942179169472067065288610516212336660458439283595194651848206313564652064120290061157810416058727858158845610774020236992999367873112084610075505775578380359416641122308909041217385588860056274068651042132302185489899559516707123253336732400289808304556320484974338754079273704075386162750525375944759698539103485755484090334618762118081160706385342995648569896395928726948359664200627755248409126690572042920440534263596149570214204686552185468890082032285455762936648680107837474568827112574296821063975409584084121211296523969562296129760393281675855818536532484801620024622716035007969002532866896371193969395790279774156390533751953877073547191249277433513871101414932070814557776828569109457390743544564832111714703283052063341494703140359627377991098626687759689499405890421606323349536453191571728515318551194048609676760076291236653306899576935188225219043941195815705819294970342994103936887401637405824598455521068437037935940343665194310326366708545783044727397628928833764913520155106797488106427623216112161278168227177031587499460387202987945386637911435819594734594440826298917252289024510479410381877171778762135034268770152943947420284722523513560848441870670002249459986459475739108918978437938340366240284302859256200407258819734067501401202418235661159044285090697908770062278731411924446326299985044717681033675029611485026716487243549497565816676473938813584007712699955950711836299442715068974823567134906984952099761134831126116783367428757623172394074198998424565200955234171822178119782942402808991176502033666232542780345930436131098867669096583606484029552004489361339467774617116974785527653930000621890575765938344907228164988805140841193250888331205762506818773245750090447149731780236449169056062848158578144669960398532216212111797144779922416704673339660639929620132451963904088555012571790797704263740990484897204564187891100274825672393936144323468985763779465097898183328628244280334213852155347481404697206892619927975860388659899769588919081644672865433874027058723946657863910656481055929485915168811056503298737784490666429543576084587549260186809205658925677204400353864977767365157086409035349500027328656393863262461187409409523021585699836829110236948543339027027843524740420761912268213877100915585415798344928498393001085766878265865012147430943014234904389644733854863167277829647618797991749791604118948062964894918267643707783489636802193248848134834229041197615978214511930916802787988460539685758426711920229426290737669450613584280870505780592772448670151869206345068657402509627122091304513629695387599002936722370798395130287172443216261550187238363176804237989166521844661057165162493771696186514836222646108919023744616862749278222608405399854136583936338754750197404744138762648566392712006380832476894769394010715496111403371326214482338786400417321557967916863625307679010306133248931197564871114984961970463056256105219186361829698086557554667925598621691763902151785772379951722281783594166995923618227877490867768762688966790800515114404697973693292037921877889086718168027561520973069875151701771210292616843067334565008922352975572919404854280922539632785270620615400692376789501059647221435374987515105669847277750960142262414967440228190437227938683393094124793036947516410660688677018065165483075775146686995071287807336835391256858505450135881226435630775912474226333546310971825540691415211198040207060169829647072402001293989872726282020320522032582104414379572954657393480755474309340045650627247604779622016847196591214903061554574631439400443927688139781301575951441808074999128588881586920304579986007963088409578299233307423952242288508157382905274750945166300174084679745386006075509650436536630170735365937370082966712232835944061528312432901798347003115531224737634834570047937687802664707342363944723359967168892759407649089336422752986184375924774446084388474100065478423555949585531663513327233563562143435778710994156255099995842494151621530473251287812288919969219537027043146361341185740646519546562494324297886807316886789214788622643723059624265775334577574057007322110636718468344871204272365195816941185957352635064980479022977039912614386059183526199294543482270634764066906739856516111033304013163522309087114775878354722457487111839965596052222533405270997436867403460549846361207537267011111120893109814592172484054780608686236153314135191625449623913281689131010496053177531939034298833222121710259721671484139987496218863220123463146852335724982194006277064307187552487126134033843997560943318700765878355300028516086565202998083781470530675098686556834917061070315887437085378860149583667372928625535420444684496636017328067851448841468153559364770991675502034595065418793780214852996726065131967277369656391681853554422201324125211999352870332250088813652649703042293905466476786133548558994479322879263163568605857940016437537181184521219902559636823733134366197911448369628240153908665282782223157382907568141694253128209902715923358216286243403795363447159330863589837184167198129373243335601257064389098333422635301500230036616542230267796282619315772995611042979838130034980451066020723706546146861640934475093912439867079351438761282929699228524479431269293118752155760270028636325416604114280532123499345625290686286395686553146805488499212179049859082785098454567093489211133978856146773654886790734696294518098665625001228988717278455941239415811472166011869381958578352807310529165248578725714374788923253930063383281812100650193449064344386912253924466873246882197303425421997968254247713602456032525463631149012142350434483644882028464518159428596253296639261209348945585128042818755676534530450588972041980098583907484918300142629972375885384785078121196889180316455221029550990865913672934120300342520573900797822928504258932541759191074897744098463527637844763132820324818424866224528568637830577519024480413826253372034353830437568511074350855216268739502208909814397628835788128486766388568601440306522995020387228682457478251749305010054038447331799235460279654125168565031926588145563153080132931952888727840287329261208794966372721469512066632293386207702563314366105271349418488614043182538386570196973806203288203910257910637834941198200941773636827673906607777846831949564017148417853293958722992710703656578850117209935034098142096259859856765603518545891769065312507876062143953002371989779136662773857652121210503830234346020085632658485665233366672897319020697333849702935586276930969956168745237969131080677796284221781438921099191892909536803352047517555234696989683486840897366974092155230211757679938387852492134520906128430453436861966640985929411214135283691269209950266169124815131696461119257474859730364321108494027826955447629611676738906730835187368535981304420672041439770650547883190012475036654355214272615925222863061802195602633714499831271555006644785215576182373253032623153560695583154540392691402013214797010893594402859706236385018518099334331202684944947627943516824349834514196601816615609440890303897130369798501677401309990818078557411906526845104835427452987436671636753911514323274481526079730303834906692413894123869896974430094905920052703374930268629877295321709732981441665370616069720957028736709905591274042477884963945112009972655043846842399726414473237633390895096704842644420057035344621522517684361958030583385314687131053903355658670458462543432531648446864400203823864522525540639885910518275252517478147517116887679578617469413023245610205431239490390984754297668382208957323035264405414904309032363164490391963910666366497881369473192698909424544710587238024777942457828894078462321023217261979079399056741663134633925345025600705916697831977466318925448797028014357646498580956471244950285346221222282821394141926031255628332160313603646242626361500056626439745985091238240266249966481997855213737710963711586488197002127698842857765908731656814956818053477874893216785989847573187767861466872448012255017180496541673625593151798087712848029301892144049102563630059553532238077996773433335064615192444937463361186021416880890925009953043160625897120706504480923596069970084528187749737818111732604549074523020069065043199649166140408635436990881458398209471910759645748363982758965384832819545676192054797495531213052637701907721744447233721844159043900836688007271619411698372063536998792335013216558369068797386045111917652458487196038404561797887142191156777473591672755823140602410031723878093604791587803680238209944687670003636551312512583199982465458860310117626993302228612672686289129028553523014389784808032235458533716879054706435246680582105623471906917369135254183724264188938158780470224609963557720397305902705846547518904829006680508994937890844075053961061340771507650040798254872456175718510752200254701335105253818102787621733605627407137306406860053114619970858748405368391007324662676353108190997080278204715607841260798768986303800241259207162824166450787640188775866308065543422794962410572225812497383702772922533868691611507624615461942758624649833776030855222524691798317767944538603425235720703572245016007962816602034991574531529919394763865240162562987585926312589726580181826828099058949866891264185087784134829462814788755392056182059317607997104099895500369050252131799650859324003124815130477309730081181868807819776077651530732779160361254798001608479302283508144573871659576450001843797928777286054291357129169127888017872825588850245847528710710029951335327233433165539836655710094078255801405548365401860878272879058206417266098626445405154449790349828897666158482913588688679526732276059181241269302244142182807954660395614042328330289090600301280178771436916711506445049896799635180559029680057657634739903774634000294925776993763271079086253901629772934007679396068158600536971392681536748510074296941082646511856349879530693943423020297880311856318331586520571999431383228002770309947791109537814983656283608565653460274387502317205842680474537114253569425245787307032827178294607002578120146595074644771062313019597212119499000701168153023076726446191073773480814908745554054051060007873507030460961510835821260856014750552572374372907704112311038603061889851848331868971831959489404879822116538496754112323756229823053195916862761341864645698249670925584247599734433836017927232714412808297719654915330996248191628021588028276044947957811032243261273023871833904921641537100699272631544034118561504141252540992455016691364842818931001282876181075955641749078760561860324857016065322121460641072477168887891602797097675294302729829717820851698484951059240387920678065773596110423318953017686980337822969298136878060197867670546651928923568158076245654875487587937811465366360422379903966100251419584091760944644718991057772079172314957868709384751172365338187782774419430128551700290698299745758055976396406925207360000793327141429095175871396290245156161991246836999823822583099046577369384056050051593986077717945964035527478383961286945525676919044965231367677810978841427883610911409913096268204480454622236268909792136972834134625696433932757503806317743840201530896901859340055268927024183133301460417060148016735756763048960861455971647029779913372240320736076170690198528481144473643479896417119323397383628169889315577601837339064949867729876334065671610682791541856079073314729844735244095430585797596503296742132772685400799746123437802368218536495165634276215316410885554383733373672900814890822987340502862754471538071614841752924893340839578118625275006500851388476832026979823870512748131352131979342161637140194338962061761801446976102255515409889982724365930630061609442874169625794272683056094637710348991198224431299449185356529311742288247082724886796683087596611192113804137057154773397640176005168279978654424107787812699667607068904634686031585297788749926920001098584323324753066573419946466856982317393192573241888231896864120191289047729168376925843056881894660333173941200882544738193661882885777983777000035476272142023065689156905028770235952058943225650128077166381387292296118900407702005210438804035283149093042198729698308481960321716907611512531994444225484912144493122147151310439261127348341665276811716026209722633018353340533697119561073417252268875774070911255144246505323105368238315223435645107280372531471434095356820892701399448600941374632622708764242942546475803073331651144408913861016423572838947409814679215073701408884666965928588742259615992006616853436148468807541418685817117811698445962169802756685844060576671184110786491860207475339330780501631516156666017969921593387300601474709220175669820385648740790714118847796979701986428385662671622717404531784835492013485198942323349252708716467149583173270275552696097435579859821392159755976312052988244333716277691028341950871056198012365832088693028803166151745469948195425852576379843833280354291836168617232073185823995593904744136311170300083708668451468435212185666632577635249036544898546107495339439697341963070845795683540490095985164459039185805407986548664429022556545723237203380740193329796118559382517371532176675128947141372031309436795767380675564182775258791653614808983357169788936022339169601623586756169401974054225045153983647137861508660658530363408162273396343183140543170156684765859818914028665279121769928972035229301596648907575905107753075015909644329762231892868926464489617972047421029742563126472736551096348999532771708127491965825618992789397623362918127281488403469263793219083292652699423499969556338280671860474819980897169284033783108491715353041180490586670791774454722003335011072589211974138804421409653411957880624955848911086022731263379221838577416549662248246247115800485070969778696454585251067542938036521794314157797518284590654867495310298144793191162489254397180797199553013726467536072497497191874580774262993922400166461693199995965542605934931732774448841124244919213470286212750475160182293555978998260905182407083245576264130178964010006458347200984374605201025613068825911332703605825691827573284801515470878887349056129457038943350124043066793592955898738170659257449913364294635524395482672440593313898274335783769324989885057531579847509072522294294081769815017990241287242684256738775788356240738034053893917584891079909128835505662748773727509455164829909539631991405311144548176218783901181912507098505210117526116999844076241973383267062578195338687236097191116076655666150839750052803404071615926500990563063700450975174842973474949013373260069768947123535086568634692535513786358400079375878020476970646087187539489248278434259832517295019751359250107137870271123662901345239884307391707739963675885477305496260709743531505487340097423883499939264612708227201721134235792840016745376205299013690961999845768916316816280080196032241111234490891171697155371852434520415166364773539327930197485908179115845841138824995076259073491296843472166060201894634951575682398692555584734416568922368052532573710881931644436722412453928658559095582330378108590749604966118080953916726381548540063161101022831262989145742301641816935565014455912444626132128254015315722043699311907718610663296294903645158553451189279589228771433319325226581468309721008234399853593742697858652690302667645824443122132541068088527478538176681417518727159544220114347898863278313769469482829323071994614347806378630573977396556314216466633282607064148107460912763168823102288985607146477195664846473928216487703012774243087208027999366757920096745127419427919651059741505057760087798604045014147521739714014740384773016353672427269867429652680407042445675359225019726728926305170745174431431318149535729575386552259220046670549570269002094168752036930315823116944786480366967596458501980664434125799004551703768686810814846112365476508081870893668574533063347523019842061376236428805186491885952670855768463290020874475513902411016891499712559824020173082768761741034393060638413184208111629688131533431344819549783447519022946707798245665153487926358507233640295521443481471153186279807084513910114238201549503757386986051422804556590944928621975843369074063738184062160271123879803094407291767066480574078073759046361378091761014969539805588382227652424150511429090590446574386901531054245742375465936142526022661167172820021400275306127172389860066535181294838192381563588871455465949079141816502707703373227756320858214435798202897086711992021500519460299024930752738255270842207084707808375368195582611678499740276436996554045256484283161945411795250450129336691273049221064496271508258865642656413173752447220113386625126389355820436335152049865011029827238985438657528548923815414372847985624739951936427802692072079478272500399271685648095586072258455381895996706481215912877892345361027897983509564076052937463377217657316529294281003751420223292536386485995509719434341665624944187657139674608109644867218379741942947301591162837600702722065881711064766564616186668808600399148206775453446549401429315016409548466044516328377733460125544442033182867294080230698369905933758446583537490882395261863554965198651924052516515873283955442268573619853515983522634222136756850049153387288693934884141591654531051365676207198413492569962314126945249207300847995972954906175214522367025834110542477408591991240048867431268632595994059022787659380105974184566023320749747470610256248434367819390313882301130848593080665297651944157556406618790687064612227362061793386581606227611352916282928853062652830222339206654037720403980480264996397440704651409427421479038553827496217812193932715471611339009852541764694644188314931698242614825154235300669511252637240705868432450646683449113737293651843288819999364135032018338122692907926835328352307938846735339147345966902401824555062012045869050950914178445841585687224586876534235571036513429335185432589515685733222372803392488745671882675230959202753061209850679628374587898220707073835725953423851055833489166535208083299460888053881506503653686609012616916065907801524278488274253170277651391289136391720509412442354090725860666652406726219107911923372388883927189997658816838527886412850382458049505400875362380789079113971681147051553370049365034166212599364033640551050443950412690039468474570450076097031046760703235780223088718315039925524323747292015953491042996260443103324545817488323646471467422981844159102747406554413040225047742207379408105863562788029100713087969150328583891778180731398232869091429196063437876029165590815290035545634513911798745186416503151057460232323852101909259228882819659589043568311651917229685196641331169202520930334000216012852732115037356988282442486335408504784356242011812669301474537988139960353083126359932370032853299747146136181542358581073962522268427278040528495651536225306276736900377245408537441778677148361167407914113822685978505938545582985242623887495293637999521506646311726457835848556134884783375313033551913177478098575942498355896695067513563894165077022920089901218792891193589441698689764852203864342819420647124795636575668598849062082480222100754591559657154727341326775129161098972109444975979914303958823440439475464927361961211748735439707401761863517548424267365231805228086544556868438681405973397847994569868760008134030755318784584923520240443366190725126475684286538008367988199590578807963622593079013788492980539281709298817781270534443247024336459060794973170174860177290821326142369315292177371083406826870894261948240343492653457158341695614605405943658724314814548843700834014970515905060481697420266285819898323806631659816718423578056186391894572089884871837905358869517353257103020536207562523503193655925311829546361446324951630505539458436384705564408824230858886115411062372146313330347823047480744662480499706484783970917838357536978503924138207063529445956077804710936331911147339086713944776211161625452782040927279277808180866144594708315380762272076430836522086223014416271834175661953692462857532730719113220092458312769810686578765244049025701165943392948972657759828457526386088838792942507642487226132056441420950735263004044924456049176087177615084593488185868232261928633394346524771180210109343897591669304203211035033753694850231126605757899074998332925497500001500072223583514196696027490380104626373070637148523246815170441626307409864158685583755276714288223630347014202589806630729883066301522787799242914941056139212339585444848879876517455502477542484481157623956454876064134058750300441655578058610414466415413217519090148216904941715772773207504081672093907346699493237651893054325420421381538572844621851894386024594646119115050384736900611591177164068926741597169258262920346174370615727288348046016731879928378342257313978745181783071702385608640088216994427817686816053032909829233115742846179881390258781211029172777391002379531307182278777185845124590845209537980104414065704168736497112999113260610949764912012550112924914323850350218832001775293435481145420337829216393782232230857028746495283358871476830826221436555527010512743123346318310984733382180532670551014025001926576723234489710908099531542950116322518028490561978341340254539809013405590084336685759153055837879353523500514566637669994163613688554377541497575912264930701810036183233981573386397256320978833988570220281682481918367459081399192857471615862455103138588425473770567198611113656129323401380020316577532888455052065340628968023170128330155323110333850645296267108068605286508842297142739780381913071309405479410185734460468994451499512222782674627547169668358217946300732879762744661163077820062190697911388760583337528103818200236055288054835471424525613972694111812142194560550830153612591526485115531969271213182089201126228485357365590924167679113409745397842665056364359684998661089397751322625684123013599184401504492517053117585583866129362513043565664651600219337487352313298745342549823988961630324127409598399091195500924820988354455233009420286112721680902074230208583921068493471455606645123686213363825895691042489405376130002901376650100968966821066766600879752426723801400412173115177493859907914675653024569888535743140790154838580320545114375372025424248708939093811932510099198478527926934047643547504494900528762149637444017113628129237254724070960626218858083557537828316414173479296514798745612649091660008115745307080912627434898820307624766887679621038211666473979394477874130403406644458571860766882299201335134638742520928789070744439480468095440638120695304835530511627810109245474279207084966853305324967731054166059947170086173538469253539785251640299346767300383525381233065077373701157544543891408957831896348718229283424076112929280115371584382725907268500715922794281893574783523865581399882469008789070352845024717137533424372769502556890127366900430002015846485376079671770967912547501064884766602598480532729477640698230885626622507991165834672906424511521947157708737058838437021338068777483864525784321295710718956409181427510472064996535066808433628734060933187223380724167601362995375828435360036756955884501267036869155761587338524039640270973824913799670334304483517143045682783516194500218159631043967698481533379958518342445857785752323999448862806091377087048908092696933013518387043922350410765863694958457832901830861238369289202238274668846927228895715199458829520943711127366260967715811780710259079274216341546173475921294130873140350663339212888948645505853461740810760762746650260457736926948048054054690264506185528893109896641886603357512095269262768472118119761579774662017546457010873252707420325073071161330157797415844021486686674861248818097571185335869903485844752920721365672924113661011774879668373569850596249246629793963628369776836356881059711125967749594656589280108365153648278969616704585322674123818458450666449334904094150930580189687216247169189251634373196006657577837064112204837777094949657067690462483715489206780383241690913667406807208796018663898217909208881812541570510005118990506121166856912399384707238103116580047285432544133421514635254491004992250477921300823872213239906609542789624721288605419220115991448422240264875836994073358150045719533094539907278971324796181865527994220344459788861731399117204690090259735184851404617374371137967032015135753453289255601490896455218364815269980119800618907800720274136285696630127409490807004965665123128075962396740719402394763248539344647579052053388031661173084815583171460863234490104263325395752157202738485229488122548764432445267566400726111103683850442340361368875244715605781694792973817284197908130994554638306968410189550357608674798441291222787634176169845919185957297544980137035956166832333256953095476896667474523497474289074356120716751646240905298731964266614010785953733560651117382570709143489118224148150853962413873753118747071726168651912205027199732667346405793939060781904968153237494004079955733560157494996026832163469976587648196516228481126469992222492490358052996732197013801534702589594556236949916361231812685772777003391287927433441477215178277718702875581845151493283974956555150708226743267418258300911278001026550718402571959613542085793749343450713670911016599215242843471665577657582175075791864751914662317685787036832699764674698084728899241644637907979206536366524992314318713507104573456300566683096992267796355569405302377972778565817637720992346848934935460091657385884722697257282667519937126114780349839042529445949815037910815884048586195931550681518456280693159275004951721824268197091882278089409557018365599332663361037375631683087799817235927023557826380728336764674090155538529013015966470343102105907866394063801204988401424288927588988122525754544395779700306723181203461237151915285257320944455061863873249450152861762511840578112361609866847278518756562084148122969223750572673518754259441332322179653971448938930932187482382816490013382941701856657202735216875749706767855894931090881296264340216107415270291780084385351175545135847192898861763209742507089885827585378050537510923435237998215908473001252045221284623128386953383233365991083721988440913713927254961682736203569575044238010232770582331132792345694622977380907293933076251373598107578240386425969600886205891711345895013809150815246487557670136723112860144121154561122301619764342049685735810655069994741411491022011477272172939711786439811840198359126650839111744588938287879999200383622346648809538545682412865572568126150889541708797071907987912369966241010212116511397602625378604613224453799851560825869176565127452485992954880525456081108749837752326011807352937694596440824292366331125025141310901066804763091624637718289134224285855751483161471088306418116356211276723962795800010280462336433524215326246159954541290003803871357353106941848962259654219656989818899783193124693786912410327698680038425183719664479251126375048526397340474378469754968297790344771673924569454679008216280562551322315454549766395451282169951505392923119064632397613554852723514015242871321142218744182836134221557104482527133390008462282434091767120736039644143796667453567441548880489440947850473937330690502733396759394316856900700664315924823441718849285908846962474043562523765561620632418592042356252118482766018547024726772851849824466281324948062014218423692849138875786975280072341124944025375011394240907644174568017333930814111862713385648065089485780227473896506574283910585543925490557458066670771619657644300235637783882892514907116094398338517411995705342839788908190290133091565982961737583707825922574435698181182649610357755128886362070150290778313395425192178232510421603578247856396954671450655990778092548748105920853546713173184463342041891708836682537716215042164733524646702461390249649183117555521900748192878112384483528959637632398625397619715689909889717865072112536805127000370584921205523250421162144980458667843824310160229298626942373466290421177786470498874026173581348403252192121748641675533066540577821030248252894666306153652537302772915785326289979146372765094141401783945363951679186208638084193622805420607588512994688988671937075718230266484885947706372199904260610575389726830936516392890999725550039228400812965583853202411321739216699988035111251773390679342853644088998656656456141082374522207001300782332699269724833972202129960623447337142544348970523278965742654918748865652196059703107520221721667670273772782289903886288072312826889612018313818855764411789107770483260756573140476015544071452945539863028364313814071845808150072977730319898433894166471201519325620990557072154564139908843783506480295644775992520611385783944931911488852538165776816231247492598581838086372170001687857879888982512184764322338007082084984349997762153825294937642802422978315790993244690956299651621428561821894512817022990109866862407425057332317855474021225543426769300218074423558860055407147564771976750747766479864608942586725324995864864704877211857481655631322253191375716574872892830706733258671470322400511067590415539027382452536831754508435368242349519646225099550915767542632243007041341812323948245630507651041604397754411246516622002899615161550561940077307420407569984608001283977695298013449743470500827291461642326102390280722567120550891050978004115920519551192684125337909750058402307516863668711355993894539263416669837040655684153346668263055349720381153960899888558700119830677789492352351389333529896542711985573262091385004747959871207989074531518016753016604827775580562266532092041379032428092465172229026245656076073906886120948963121656294405880471727972234492033016117565665702287240027685807358974908894814371714761254255523964714274988771406026631084876537857762851397298290650065728084605894968263158987553109468025539046982205923399642855395648319578231457618742197264088198215130246532046479007496941609043330831962766460492547136975761375535828294277366542120052668568374533400029747092572300674344423749694441767179240482020646988163413897463422755990063360174435463716584823302582546405124319818383416883367388625291589116406761288242284145611164103732415689075293152474613940480965658803400473100931565775718485802177422302897762683509723869583617282269169423996168786521386386093499790306071430532406204653590806933872525158082750954851633191056606185078662887019311934724004513545342360782381150551375863998513423498845404204459195738194554055249530336128657966199369136259273009418079357397993624120700803841946791994606956480485038608076482502335994917231660238666173979446870136137192440352716614641105207860247272973633709958612418742503341998397705733428776621126410289199500955851798681486108594881932865075848786561859709130948064673066113735429630901585738903752318496993500479791302836015687376807120466217781690663134414071446030505326464282656832183979845742185589011269520719744174224029760794003781539218464487302208864586033449053127183174625047500286826155581412329715569926993545746993038414593855233301256999859575552441922076608533893310709350529294535411093229293398832216961712633697693637945735480655920536659587013500400461829089213353004151679189688589236855883404607184470548973316147457198222292436992441615969534833422495990927520966735880156946800394297521465243429664586104046434849406867770311979618815433543080609149205781385482007549278116761469115433289529324667007579844962070121604266299212429910449085457506818777988874917107585760841121585867393621712966561284895294831003900888998935021533080164494837250623949939885385384808142582449218279128742839275038988181397968664940183161721988602388279818371988120123230324413326649171426395863042255625376125422646022655254004303928776157984037367444467941178316528926722796943245700583049890228361259194602868423498153674631876037560876521732269541009663625769658999189652733625181699056220675686182077806300461264926396395900891753256190995721465485181081732631561218862648592642371468400600674938446177978158471253527932402966148444241575575109356395152708377091874066131546407466761572454314345774061923629888895995345950998276623807909249149129420330163430174874018174827444756017214016275224321713308944194234895954250916806469842791511071527375940230554743381669226591863480649149512227087965398375495268741759311250836937612277348524971372695179255606312815604114628028301709498533747487387553763053340442523975595702634781494364843220546101251346776403698875683568634420479393574928544805362465230781410621414979782169136584486131182885498808757979079702252427887717991800790794755352717808953034407415007191246733028270810172648051102787009641793194125205054851617070692698345092079234634947134370498839524282924846812234864915706456367713343977104632087540844977135875882104062681788565324522775309946403821980649667790615278670175909370331495546582780829001874547414626837470442448207582643809521944995460630460193335915559717655902734024692401994969214667401276019990045387138131429846646587464285584411944351473354613022915867608627290806084210737077438671719933474597041401870906624771569469848906612423680992499492265341920166913979833353527882166164686960918678298010174662399534801638244022243818642057621366028554586325291632738734741406022083322537712741364136015648486983383662464072917602428130216801651877387062110992123806041225444615708498943656756075990584652777608383246562288448068994984551777300453751874482996699923861954883079634607902741018992417084591940732316108192337579483108375921171387365635255233199160044034218500106414286921517462859051418107377238312880739442818777175550032935998264883819571620746987709683584556948775010226576054317306231168494255562704366608207320781256343145126056421702816955194969975622170740962656612254912476477440403650976837852385833582890514659079796272452373369536952101206522500080077764342734133923360919954611383008085052172449044240241559104761747331539373287059375069537718183333214509411142194581649930837425426011461692337381553435727406046292546103531145625529562726290228765767801680941762233714270222123498541003752628864291995924986970928684616148185714162248827171125569766669440410513582691139745325940456875389728073956065810620762798928732924705548769909180192772729590312208076373912956683033615594562906921554693453117925642385836235300385445153703460090581341624212888523700692248697641932878859812150596300760300662135283504347616309545454000367427160105173733433554196405264667084433422591486801936430515073580012728163330395332503584790709791963897405955650979569078777107664524990774577661886025237903236523621531465209789484065335313564631294912171068232062029943515531376583332159251162042359917440098454188924389414847029780271759745289369875930382297961760632721777765890434072243979864432201279070474603071617335911814467790681598092183507719295231823324109583959774293996295118042243810449240049209034579222920220295587728843177709314615300034577282287413871885354199040925121542206928933550894935645097882215458261057930374049824546694898149208704933932673345139193559019829067903513368280249410863336412077819338766719686704969056793750964846924885167226163625337481936662959447706639358094305073723637375154932468787574896339585812934921265761246831686626684359806244778085837005884723216519957400644459084499555698785488241217426998497971127782547958915947256712160867223808882863108425468869387655810227124155833069400816430193800774282461645529584154212597381508642155152237771931163867874522368380632920972681476045805306044338596072230742582620996191394168732353409145425058370317612181864102534258963052176877937531853671797475122597628078026701121312453853456536536214957593586030563622116501527737115161921951060559902880923121598758290538057323062802732731939973965040425637830590185777325942546994875896325561005208150048562859375011651064684058331619907290050228343684626688444674609615263905879486554793773653325220691797477478293857814277952428221155947882732630880328740291848200877069613450834924971189111483173874955110401082766196213972887078784660022105598514654085429042558796101213631275616810144588655890310043009534098028000381364729253956325914253118049281777875047448323059113879133088408832746945643249406760406951096321568907300242054006768847596748945638953658057264923012085813068738317635813374039382509627507824982048325359096337435159970924834971981308687657466584029097136792497419149130487452902460831760977176033688330657824791766324242393070973797363530944259251366432839827640970383361030225881230746658516366007266425454155176555427503532464353719342549650749887305326163314616479489952686021221539627031337771037847213502884915929941477132971057691405684118973562089748143749905305242402770161628356866060259718294041963814630793392004701329387617993122539017369119463571405672618317101134183717426642057067099922081283384046730443355476382538844919282892131543482232269229997393471359726203961271315881197771734063643809571973094703361436447301739097814713671766611101236697275067328586592326958785350514630955424451660793282481270039276579956061156999661310177957849287248596215759206710866339277767887861498420464969833300183091309106641661574324456638977604076533364414590966378925282854969163693046540021932235125039183653661760558034972448598315267146609026955461920746842527026726230984426543627051523553845288896049464311782492583922664404203227188731469208498625025223779055021130485311580044863550885429592822411241901395177625206267563991583832963657501545588804311259954870124430293882954382756421273323566208543268814112136425529272739677060639672489214755650175463271505950854037477843123911131612562361351329128832230658601583372215966895270725774253900362790015154256796325452163718784719399292523352235039145275076002070435763639016675014990743497405946725759505441214321301779599859073341660011994772749101689992027926323210016481669258853428898407990072678128867895088703758333245661558357393013041867715766280745386497653858574668155909786503450735401670350975368564045053696309877235099835681802541175969189864065093535982843339001551133663426404188253262136575107159273806448788754271505611423813078300554691534316847259738307456399323559033758377578471264394645289229835991142035069240130595425818812625801382983185712480828388487371749417006431783987822936816845183437438143432805128261610949714106470591092614053010558123580589963040837250333986764719313043506401529570543715678968076768553045082301797760492891724232000021872140450460273341508331343209430771844465701748254679302328528511572807254127955567846016437946090993937180683318862430679562285434792235772173176338284052799810389548856625723378029401305176516648156061228739392357174073006753749549637128740875424587342111131491661420807264612916488774475904615159360191424334258096550517327636647235224931296236329233974628726062071990181190313014727211220532707453613289200791787683591470586502571064349404921132351707663292755182687090914951174719859285766281329962113403471318638670176199491240413893417800142872575750034901907925106498244083937053236121920280591386507902109619488859173543254698832064988859121672994797243821138038383583851273065826131965123876575651557668809835252586905840809812183168079086772145641174206864546220342165414886663600767227686016773385813147852631373240590190873780728154335665530408679143440913187161840234265604603674943860112038790759971641903965943181193899989933865832977468193320287504102930080215761768992272310143265017699496214089496463170221130702768475506941607447467652392101834538143396715811771206286920832322082278841567441821518466882005474738525727083530653825668199080229544132208267358804749005736733336931003103211453058169252922468667676425439702286189952738960843616449357502436031104815664605175765052484823020272003621521995018838605943784044151313781398311613481829088915241001769558761264863416738382089909751054770708262250051459526643808537192604669999553425453959811082166450600443129615508306734558035906909908967138119276305898664268074643707389642399227008697898521935231880949946393519385937184024885566772744215848461970363722554909066575486933245792409476238451780267764887674052704254658162647753040525108424988116824771396077214339081375679937850268560759312797164164220348548980939128296712670743102424227003161175879402131403853685115016468375971779098188251460813361669490619556702796202460058962996975696682759373890119242482317195370683212985882616322607373767093334630229045430736480477613338001659154505540302005614451613322685502584776968584116204261459196644488642146342526979718581263493869628318828750406708437966376378181503822030151500996415235013439093216444795619155857755714065134633775651752406413727858933883011241931130205994566107977254551721891876398283193116574388799119052065813943795407140790912684813575881216734651637027923004092710352919439909382632306596772698071807156541561228119640428144401873606842269998705264372343946583583177060271993143507137185886425261172869460129837379314963883592044159543287603552763718667207523169075797038491738323081191984610651297082646659959244839947033786660715114807906586153722643900080523893001095665650379976250639953049287923569119599302732480508355519776624664748640459658929350426146879235322281307856845969686795203342478806410068656324332353660283698793298756222785150363709697655109693215914174156318705233472860821703103088942635670918307249040457642768189037065675524738430191019262645406948574275834846995600193725034938846119671597328232523629638334038208295903581074528303842852434165231666567344928716372372119062043464036708736320920610059571483628338464683105804801099462324622980799356325917093778781175507768092222010649280711863010062888423537119972752084701772070045965765522181340340791497205523722950841098114558585152335005954152229444872939402639525543684255115578657454914080075274110897612814314824346457189398130734411727719368899295343168377233391298076667629064504204007599056790993584522720731091015797685564686494158240949464470636883313169183157005637728946836025847018134051353910378763595263717223258789793847234167938273032813784040656548735488909084140675708103307351062969815822194550233385350628228250500272159057094159221338730912606675882964758755426510313399702574270380350859330079324873011557225547677937972070177315283955637859568725873189737949267204095901160281728226269595233475757494256837988753168906215573270849522582927279849757862510475892490172817899944784434984990186207164495153142654162265325064761797057534235032467775216776555582240743055653715887207405459619321676382298506106647070865730266556807040115624146318248295706930442475898660453753253343689868446579047520239558751468653407810636180063970597502857093486912060719767934260387292432935053152508745450822888335875044014566224238952175313444199311555736966876189529307766826830431624918473185146181672128725908866027262660580132704019639124841283547207412853070391745304288060075127578752000843236079680511453564676877235186322002501505054149250152231983122980936043879394537468210632146297500670957727588872591557528116576537792380540133665033629710617361289976825233289010899659266359678712170609426593322539342259775637032454553930058289188592054705603007980950552394914662139217019027349586097106963295728365754489460491871525419841688518689129101940669392885714195405965963888065428266097538149017679651342085277492788654953105446522220387065159250337685599708599791138273881786105646826621714615155842966308368726154968540383006337104749786176774223223850597538701801010077943069371929180208584069381887081308056262408115546817827166295900970127841443486964981704581829537984945010020741517191026060505594776490518444372969570199111826298747536042322812809697124546027260764698805332704601958418876852174293340203669917741462405313315574066961703141710213941861965852061875254879561059166638284420425942237460510074042648984572973674606760774690702563678428279497497206346828813054724192379231261243377786453978251054470338037478807230001115969050629562539988901104654529956701754169045195105838211760383610593383742053611173149730830627258095392359567479539524283027108984784502432755339506423505935658325025330099166260516777145554109416977078339286511813304569914166674212528819337690117390570051131022972174619738453228320042509024440076008099067075003487048750725142692802090909982157373744730825592319000736764685155914818430186285685500490199331492108717516693704984070746697184792388046512363145925135079870342480253821500049621482856537624178127587771995948871610609922659109950538041168074557984408705318197827318330936700042008503992679598200245910947695881408744871159722228299855921818141604605016601317219568587270432916560330181488543726734709532657589566697936512293447644063049610608921899888962216076933960601016219423559253059380210289882628871912776534082121148376172770406464630323338250418813508592850621690274592234700614665126399631007886944333503014773666758862893002837195576992161767085960239618521027583256610270303695446926672918842478841183943419592976758766069888046874945280601965226538396080165614543965195522676863788550298979394533815009699624555400770237520626861816788947259653886312461813342458267973829038415623052767705665523938933006040353786455274423433893742889238819484951530798291847505506836237859632446497133616551219039952689477475601374871788373680277548691338561561364675180790228387343921878402422979131279302220644793823888044856177539983386131752967353434401119659102980951710774671131777411209199483408966390969920634237630063335379388995300823671007300903506806732941936864490680970663154259977383515097768844035505987718602189560639257712737764171492988300057983818112480139568905445618291340104832748729777026664151197872099764570761702090226735066505379089766815874462716907515986052466379353587489185254458459984188755811800883353270056908796149052069698389576997825886725852873938310325508893854078880356456846349531367196395627553296284423263630982743511880010515286895151731443390937291326512772649739985772461046433628803014465235179400235523112797027932119329828071643317849084837854856779165463328094099701703892173719887594994283061893242874781761067542407940894457633823798501523394023103848327260627605034748926139980478730344177672203503920774372754716990774405799118218299290462772803268956268917728431727902231621237720665797264867479185713878070922441701415906224268385863861741451911943876837509615712274327485097985560819890692056348920080739108549137846716841877153996644423719446327625863038671269033847062859490257199406174171724985898966330449163459671717009671894883928112622844351939348755419528554916125890757767931049786565534802904720717163966538570127455758499159440512220734371947650193802591618492385036451872786060107852826883010600546411727681246807111787431110758490179312282303827527451911330411146662740709560297580101926386373858601976318792109217068722010504573435287083640136303949832883069717728232401090222262645125385731763996167247982362731435649186397886059416410907850408644535167281793176669578819648437660091099799224192240807249752008042491594304746387351265490551263301420662444648773069164431985135249159902480353765759744262373483783255177088883161244626746120942526127640897358538180536178332462476076632555545525190903639872953720826132166142834920763230845584713725106778620724813592823374649700848452770217815909300385290413388513786317233642808980691847970182991720424079140003614960839161938525358027227769106523042250540010240106350701488661437083615188794868861564191788352531284162992319358945759883760063072131353427417580730879392630163586764796934407947162331198680600439400681304285480492967817302800884168851616641796734870930376645757364182046831547234583196348352224285381743983373595101371433421363505314208015472464453554226360226991087034405914231845820476141043657028183700745622945306155853219601876264424360245296432256637586027921103117734936461493314157571331191443559003015547594507257162626163457818195728587438454619391315025913863347434477331333981676460725333038719234958901049340178225761029156994084960892024895887260279767331965774189944564195724824072532628646259228526998234509721758370847324597120071436411128549555212836807913622332059500585734639340214803763473349082938472158336084751067445625417477422031312587125017651971217446338909496126520775182254935100230538762426080437605670393879671847988179627227343040789310599768645793486772678120071307706550522029953585083400803664451664635409100192448932729824111318964283189490830428098405489776428718519449218444227123197009715461592960333006061878686349872468590487278762970053152174655181688981928771464285928174333479880509894145597222216372388805351384851698419637697847460394044776432805976409300129428579129529624420095119615369149299607336561387265017708709015174817447205355284846538656693062055505704198903039028911697108184109376738095937629911731893622276558053396364826202906744296218859488037231667795742832246124908946064336778366548948673591493670845990235368596180085068190072379557290738643866031004509095700512299856417018825628276354934379128888627113477959500514243183221614359696190820273407012789371061764813531055322508610111875297111644882290462853837778160517659757736774706044398514216365120392801649895936542016633296873964942856163905123614107618454816287857626812438393321100456516348979238437855247888650754351867662526742862553142241810063742456794638955091102135182224522770457808263625509534650214933753859419429699596894831159999507867346708566272065888179906295841244559446507295574966843858364932058035656720201470436551908975610154936933676927451202487365323897649241499471449077957402402226116147418180470362675387598284446310877162283782980391764453204179178758729262210018145893650634802347003972308556322701822914403748482335259473731626403474576365077689222679253560358203576087059671311389156024036816654930344139053503184736947302638879606810690506765996896431783957782533855709728426862021273269676481743637809318452336610215353893998596764858165549067085349897067770891524432313644845204605220456156112454412253109567753612116426335763914808411015776400331439312736274542056629216353096696246292578078127176866337642177530744474452795389769164231697962190944137191243497268650004800525618598370420684079527133642759495911456650199487914445706919190727985539762735426830478131116261561718520133486343989876351739241237396665008895031718701013460700229699649732157143253032942495181574626075086653591048915540493623014113719663556706442333950979198145134522660315969943115872638491355685411680341489945981406308773243845567992993295823813894375106673801055187979943259151101817645140917261568202538908112447015763892945162722964323054255112008810009703150141352716766319008056505233094595521072413784428405089554196993925187288178667068467643302864894719559813935189622739450095357653223611430200997154642870331569760888773636416827582389788528852541636092225565897958579115486634473153111736562453854436117666047692395413336349920844042270904120833673954685960521452664472660427272521714284089467398651305320922557796910440478224666157328690512807762891927618143767654266666855611585691171559387455197287937289972889232407452452337562178621157066725141895250841047191170979811478798819752121697190190041800314260610505728981341793278730120734129336868379958471673777372501621578517537157090769866459165388907984950878674643156483419128814766843254266171604060135922210573364026657759115598827698207499485056284099406833813691351747679180242481061397145530940580253802051381008019171728690541011888140424349420105461431005308918919924661752968540729663105174264112107419160572872278925022244687829230667454823257618895374387946771484045819046552331739102106625728533892195054984084931913553799629669675303845532099654011922425201303663578239318865075652274307200423166772802773506375828941211414757170277760826913079253901317264334634441207758681448366073592957609170907384021631443973310795432965128756078709134530325181053709738920479282352837383042146898836088369625455381783741568768876539202588786830204928135073397682232165782648400077419255898175788697456307923315917278361744753331051299309182551542736388904174157535621303055922771944741663325640687447733951630550999000833041493571253822357188176063007632941478115173057443376803240489325250933019786197559670927011450601330690316606467564768148670262504275718157046837052162676839163311622539623306495687930542646600014201932653715392547029168218778810460818686488304412131375716439527609487928284678945739492235013700466080539274992027847225837017900801458961369760796450210201212814842161922939813160834773642971650096310193606635042814135307544233562820806508905761162292588205395109411800876977069425506461077566377068409300241068843734593315759911021394255938116784606373257965682435737713626435745021019958234961086126545693214272741437846979434715818626174295914705146102852370926550154914606077111668976341562180245378841901953677958396347771497295956570670605732929746102014758612517024808463368304980673261974886872237800938280925120866830148941831349297390123958461699123675389118685744505427572766286492569838481210304494907310792720169977266875587429216264956526489468476215875704644179977210813024298941172638672822796590297871614680629099624797330328760490693744580068400651067888985008764959080384066445579857493338216666220753696757458563327682484555649640835601370756008506433853969481909727475956273918696479389714513754130160806079689328326858751893177793099862773600263126615058326421314881518794571866081635539606353902291572044234804697496975824765071676468545911414413673802114887866838306697475110639247674176406079660015207501570513397093393347186119881332976748531365183583794221788576325319105971675588810270075127374182431499417360644310860895031502250795535081304152962530262158745109855258774845360664802655750700760546238686561413730190796312168966042927381742168538794205408211276885015559850027559971873837149443085399226900437610183794251516124826108795692705881166985190580337729435424024212372081835349460681832613466862696371761788095006833164954663625048240632459311475523009620894244865928184010789701929147006323683260998620032079921675946666949205584669808456320481153371819901133767687772124187537842688710579304227901233297458959851216501162196376826649072142830472235354640121328411213403696356942900952638151154724162279055288230190239724869459984560269027682339106158124579497035422802359461659311837531706846285373630367445932767492023838764612771893600135545810370311473431537861869900999676628696771875016151850707562569886959336178101281476085101530509942410443985618291161325339336690464225687716375406930801941767307201325239252949657377594706458723601414748905936403180593117531958935126943429252568149187626380945543643029401045157242933795997104649238454573693138553263479378749153766642088953719019818479583246776361908741480664815043087682768109120373343499554345337856883899793596072391934851479964880185432368434214909566060567858496557099360152729956009789589128525992441032282538581137021723154833160544865979521672128359635410517293552459078044179021684833190116565444468996617401715938693180258844618216397150650006164841314991679389731922604467955399562864228968245461210474597324368591390885389285326437100761853198152663211065874274039291283290533126005111750951137584666696802311591371499990925128007497383667762502197047169557278309311803601493615119467729397466660485562713113270661341837372284515169762537970957472152375122040037991994343710315417845111490720565976159892045668054815163797376831718642831169649847571562060407570333545993754031826461237259058292122024166147355895195244610461810859094727128866815037506191558056717918022365172784374773691789522474739067048599924092602581696240199648754732248722904306209572021421740715306326345165891653575547457010416433833634854101395911974030018039366360444908369912819936823142939693725120338479209580088946806395336281803089528905245129163241711469823038089961377447906865377795526849135793742137746707702066133237984383818219274628840093256143331635005716169996626087409188519593555041064511412708666352811202284993676750207998065384804698654185541385471678371107522375910960915673785715648498471445432461568394355407551241042822376055183092885369873526633615085426622916626454565571938053264022317008933313251886714247114723697996628524044170138385788155776754737334531946091297789755076505509554569053100822002238234319560724300751928303993200558227624212581022933715871259717988789182253449272291150257991590690052445798172326649048975899561553379438237500930704899114717235307441282108257844624061051317430382734523484329213136116416147377659396817640938853594442288333492313452398387428436384229941448564798628627174947642697615173227440656647228310344767290105372642261835148928697051239226100669948381520092233471248712511116154642097402261500369271333881326156378419080735328266164954617576246901428817092956252633476352174189707452251027504585051545667743382335758107638914452165135007743252994174015233754891505820193868756670072081521015208490106158794328441991100108824093031868435047110041014956147650273564421708455747474090933877409685354004450797512352882082027463406126760388603762654073574169397451605647909111258555804456627320808270629557470206413970634711270665538543403933757305293053648272264618012739852995703737305151247919388189856915471764322245264424031268899075454049192411220997036606585749159084069363412807166027829387730953649704029460867164760334585626153809286347285138323552385759858217468141716772973627322509009447261518611288593368739579727930964440057395009957669353457459613629614267543140093609394796589423988689890014897483093272212983168067926343423375052613612488532116769842432815051995946751271815130943299955322712532191196558612350241996101741494580096925039907376481741289449321812635179652986362475782096039679035975060630702191096040227601457994800694002905516462887369201682485722134661139154856875718322414581162256227650503482882907493616074138833216159621825855661043766211098773789029390428592164017592233087479347945224680581018665891124482047330374587616217112971991021511662803792787934290718988176180383150912308464589404113923063278670065671423571542246188509261519085650811312285626857001997554320629933183420707334976231921229845709430827279095889419141687065454673023734801261101657440517274126817028823815805996409018865933486200676481491812725017611337328047975535170493044837469079108468402536704838748311140992135189870956709728695128447073693092929758232044832354985154085392559379275553855024850351901019179551082944501503300170712983212789336249453672973319127930205612895210708354873268781798243699992680458801233092869719264920235577556821356189931655178816595517834075813814936129387264064848921007317718443665318506322669397241331960888540123045698892366174862257518149139354837321854426678269751700617926915379428902330761265602318244545147315037068430068826890712155137704312319704785614118077967684190148991980798896050554724470991523040151500352883341559866300273022122771094908114276011769208884661878875468914309911277403750014766972556732229863540717467175607903250244127025878456819236488763853054103853394533431175332630988546698392726941381639249632568592999497720338034094260284648105281371757686419050575605185668122091639791184979103182591184155820982447522800042152231593508176506545086118778492197021303375318090108701228379558791042291631729772856956705034687820515849976607459214241586094590946806958374438165437942284833732195330714508007502776380812037117650429232919931010733540952069225437998545153662246684790067936699461074233844033687705676222648623690883297203783501143055707957296012306959774348040503297701400870723996004690863690819789459920693824451565369256713788826957799883939435439872038660122811816114009937322252830309670282365614245962005216547522394323552635929463081402522425758094121245030220089334391700224306972864399779141549072183717251237424532157148959343290784375025483704070504571090624669796640345206788580088109396893793238757756092466394044972478739421696852654241804105097234029807253167408324044405329968481095029851014040271112922796682741667776998230628747341738289335816265529128569087350842803133156049448014318435036954001622473914709239694404816038251849307888945433118722917851842094290178487103327042621781260624035993276004573191739431535222593201061266157952285305412827615716070213615417518309728844338685229981882457190720253294341706951737848197147045674564212490836394735882383269641149843642331600050723144534077883431740115564011842608625354079065063041785323413227781504931219411848467267577410370475379217744175181594431178899674195878460053513851920694589488889105784311141094530415251680301657981442599313313468682842302636360831796509370025871974069075746048184343158797976269821218814477458847695975565758854445861473734490218109332294834342197254900637379719040675793689301693312933945658872169594087488431358658878178274720263235940924460557628581289681251720836805651400701103837794270029128762008223500973163087660688161895606331625978021659308117761201374253018104857574799488398203960034267601303392353945454792678836544788791606065437734044750700498899029202149447097419763321138338489296372637034060912538007550995607439911701976361189851665933181941111479083936022369199942605760701053921782200047222343539869929703575901582095502211211950459846455341820933997420204569752044583473999689698206644596635587235074439096219267707438571001815929368560069184260565241723992292408551204538547463572990368103473330061693030922731306643817353593158941850226641421204487923478800203213585563924251580775412662608388690467996871958009975515552519917214960206175722508321356959742431729181990515891416787758174612767447130877675234477816704058408094679492185391721890169838177949105152957432870685243001821057012697679074649874395738422964809497578565011845738036190135596830376553455572981797031693399211317873091546176692676396334201715060669045240989999427167220644213848257338350162952647245527106645777367384948782843538657826541458962703476110515342200519942524390558835796404790446694546324871726894011341842064441554032167722110146327355296629429241931098598924784457495712539044439542085233741468235809757293810042821216388640539436979608572075524757180353720335536527779020856332129469110125753658986594904461705716582937600761415638944389471754349047282504613251927375898979588047638183934360771513172762966242610592206850099755084124811364943364161240198940168049873745778144773847591125029057644116240567511717249528156890544993033810164055012579785763352896889978056601037200168557422146637814605985286831406301061918365143819014831366187397119463959473943638117651913455305973468000847283180824781892857285530986419360663657279604322553035230616113505544570812071030234096797592776674871496537051218857119495999113699657441310102044366892427667091075114927107652515961902052815133720127552736774623251888619660884408993062199209868765457824179559411874281420559804781424248860027654783676515079542777337563717955565823655532400491104582218803978784569073300215710594226193473854751326238882483735326807007853256182469255267785332835734443384410772969441960257093872217312176910896120224494539275358915788861325568641795179088873704538163245887784670635282715328915276465602479217229727415931065328191252685430103793017765193885116040926334246978514661672058180829597624513289100100650598914648649585525941158844166842393759188456808745094548484723050846441501925213801880944793297036663365259506186602733217225345108392286407316269628179553425154979433009057484969871515585961765464510805225956566488250055011557481456005190814974323405385807631901942786454909795033980270761866934155385045460454889299112925200249501995379747633368800148649932060400596441186224368910966001752054562051853604702117901337762961239430438568839794659760418392932904841141226397024719157516901727798166792660929214417712749273907107639274774071581601375423269185050027669210826670197217868156757442555778390246221418495816727018044358599540651627751748297740509877140443854616033586892522695152077019584408755395841035766746349107270393014814856401711318742559710412356623297342040228122323594347079195116966559490798125095479087642148221447925857979099997244878324405803738353876087186488851499871684715428976324563348853207961907279214818373999421770335163784072434337681294533377516370908791153645315297540513142332529620421576063851030822693427602312474101018096700108043908197641302891123972849273989958717863097775077610419524677655734531217737113597032992324771376943729340716755001555464571616165140075696637567105593065003260958068594021249551678362001132610524609346939021038583984789556740965075855916212466778624737826135565304630382096353802662042692130705356417030652460508781836209363552694056291346114168436837057640168752883273016545816532306757416071085640933140221889875832635664040012939818022880643956696691832296395599346170695549936916717344565365200183831468530946277715126377571861581466083460213426996203401958386812888440988918971340197700805218381221584665492822977929527609832107188437143506768552420396280826162312902790410176908868403446112273961765236329380620226246655209739816008325046030485098282514026264643115612414590589977867183549950372158763149632603914978575487474001511285215376978042157535848264928587475106393243882226119009295552193007673134969084067563962470338750963876357702401967747814074658626066669504266949252925447269233086797251831047429093800271190037297220335856870056298610942961426955625170689396258472856026045097952728390166907296421239114614769856935144732310029978173216193839182162388874027569627872694714588945042651759100829129251055776175382901135822968428299043492011073870395300936659568461029293135073501385476254883551177645001951421550992892592777072035519246505745244789465234879088727798224537100184410101425693369928227587507667305484144901923575875651235013291513862607796501728551493024575710683202076028888938812342265650543278594943525713959893416495094703892532107477203184153265122425052463949660529747504758947770231651001308884132676960392989354222758418296262530475171561418719388365513236454685783607819121802757277206923960356633955441095509790975940515638956728804329811410718101675883435659259272159732994042796343015554324235206092124810112510255920839960599962347514450206104819163177395149421001366376765659684590606587902912309529829698951388308927114093054679337351464394473287288029659365640150937398593336344655414406759396254705825546136389713843262798738275937414618369248799216952427412472837673365895556188491401534833514703333993948832457043564376508967959570097218051201830412547491234393795636720474814601959976745756863591150660501324380490560375459264945648742765388491819576730602800245522082118257934952648656542344196272484494428954597477278243148600833277025109212393092257026857787920445072076340277497421033970610539668284423973356328713765490033972200296910895155980224794161972885848378258051555978779055459836857514684761769577922185652601889534200464012910063816839894957917984614900171951522074879295180443921233140994362061490268317206301950343862591504449776178038081910252605980597788671405975584567633004964855412291678166258711461351422412210401965717848426487987255847606567072205044352651430304335953596136815488166337369401264288538918110277283144644011680692593234936432508600893062027709213608150043726836705497091996863868733288707831411697388335308046602395138145926656537532380314420513359112074609607252874767409464436981445279915475983080633901797244673214623141863238052729132646836831056218202283474484868047308841700914751586014730765960823909678480079054228807645677260303044152365468678895799292627322532730383714062719078359410908834703261364378552179204135588110257233260236211272900896590274522025937084785162359500309582719639839812217620340996025821506638573365304787891399892676803057992686483651269975996645182278565322342310456153141226727386194952313762045281806682722450459475627743209277198080488803070982688393068294868916210644998521653304539401228428761906804570596345322676246103447902644485121561838591116732978041268610907203459718893407529113910188771065084932696680151379340734762295531881534526916485891184190966170064684740116797593566238848938855954917523820181865652002441007576901838474523454694733516554873815523825321680150574205383743416177463257563718867425718695971488848749658330534977358663642363083687065069013070836243135034225909337904726974850466689997627602149639019464793755917527577962271654133143828120747756851453139304756220492974807666431213302985069692183570809741066381132130059633796610428231994899578844902187428792011364477420754407695572425080115406118255966795047374799035151788936572164862915328246282349573606393603742039475668317424880666868137441381290475494419086202667985627191698281611067952432086397237705722719123766455279984290949177965863769192855007870008700550563736672223431369024781591059753750215883696339244887051062619952408603057463113813110099455300268492792408412691759964178465134728184811413372956714031444701883358559810999906477078585394170781656167650845096376598206564443698849847911192050140510839464986464507107259226715946893998207904108541005962986359285306445856592880209047412241606894873587785713794261518441979176008965520894699525354471468166578112168789118233412619626263648219605829256263404566986631891991746464182705405682869421434441243148407835269728399620213345900158038570665654848499392546409026242186155784304659148244938599558151828895441391552622522115192270172123304712346315622147516806129007596597884879486205250750083896609590119857370312182812693999611705896151247569435317033586245930171236181703105815312084428221415870434315450363989651647444981608284720951917184614610523637816395374579985215297802023365622131403938699983159689966618186957917218091386302848268639897345680003938131907793257631538306939090260012106659372721051798516504834362049662602269915539391832193829221423059561318439156489246584045992965377899805421518358019945043441977377972697806635130064141392023774119014936686232241703730490085720447137435055347930243727835718875255821947359101505579158073199531874770395860566744514461239724783325522001868503820218379323500152881249177696860283284242195962575611656133851394140844794947914304930963619493307170515572321922903427728519356232282800624761798440943559374365407599116526507192055134427468366228683149135487329833770968350454404622587451376243472045124290316192993941797989625052218295900264204281317429055926389379877767983148800863788698052009025178074161870667475118234175181217633036728300361590422999212755999408345509180818026248116464929930800576880221841339411307569267632142262685171854354871078758704789307250045807058090137096009816752539986528991848658569372935678321100443940527161242729793401708952522373053809204901050240553999401529501954557999163234965818445155811487026815959776944136524230807196200187261308692893728702302052955722771614038530242332640016493888572434279330571333455558709086660624397157554084470733664003795021711887487913776105943056450281523260796175840666835825199899133245729854828003852128341956530449187530200932808596561755939742421677957191848477218552320194037162257756403050770345063460000697665091853476531677615998603554499267469184376253497900275285489136114848624596610127135298378895533496509923298570817701474946106380691960594221590198529740501543748292428639538540552541331039653406030409846704113246139358650295819229276341552237841233076011434499996667292702704966989375861526995256563102796526229741660425335868906084543581734263616636909073167037702162298360869105875700017637291923123894142846262368347277936591871294235531177999272965778381199901217553933751358724970550926740969618851286385363512235677587222907566755936234485395123904077456370620119204921370311033423988043218938254073649296065708116014862956284959478521715094330386951630042301906341785197877209541183243792467775374591483141543864401125071659237507453985696538631904278666864259890127585752083673829920304994977550677913586407028357248050632540008390836052485139254807276375304561428763654430665790520784376346023604712093662500979922459091784482854208430658186439142280657333460040336951762696246467936218544236848398427082412373454215577402434727481360213892382606607599342644351447473650497732707323831923605871015092352365260543432348678223035487523814923772144020590174201980505311916024231364808260773263842174496919363346301523785795383709520924833524617230913154011020728013059027662245269528961113802766727249607915351459219017195322213220921042669733943643267979377003552041223117168095997524332305658285666475961613879486153645732863187596185736896398335405448674815430157232597923733175728812928897815054514339629588215653896295665545332963925810885828835432181812817330433084939210134754379590002966173431435452507178751376516029340005460411345304155819990977621626485624342008305166928452433305047588415374547915027072116791594803308630423123134470496659526059909753839573218205551348547283732612797693384703846497202841789182867414743192038693014105194761455557563148327073679959418072524091344780133174858550922947479796697076304804660557579931465822775344518676419416399751187254770600147915662710728708442365667595333142080140677911220948921707533975385841968904592116051009138370649294129073675648732588219766678208870916424396983810745758404044998082451969497137991250573542013352737873269742208849292887992123658604500700854377853792628988504740896385707957259408680696271624871772700099669502838734316843476843976143180816165651030606386136387414392142159646323941384059119491834529755203389715234063659773472448179784230195911865370300448256273587564317229075191488926162057189508085584729407650212353514529745964945662804707433550579536589363842955756809292161918716975101122059549002568477017713478979216550793682581023290238085629324763580830179973414896821239145181749727591469930735538944125467308072586374001964545744000823650822275249281062340330171719380369346755433644362735546710252254963241602566145626802448700848974164098480018161928189636051546016396096967051412658287772438560646607893273382409259662756829986210292874311301941753278066514449180569749644734169055498885009062443863487343622198899766843498830140480377032386971327841723042667528427105113539021168085042190026645880993058840306875874913376616526328504165044982680840231553549624295279729968598641394829805015072867440002789467302463090214452822575941855465510279312297284989268727547616433037435510921644844395507880885512148899650317273999778202962097577050251960517860647110089463609304003909968738571878435005625100563523354256705615540439787163665814945757550426533749157953729482940685677879508025996082910516260922818991433655654440640312460456305829179745252265776132786173536191136991743604395110446669266274139927638139807879331719192827738083910763453350688533419565479487376309174679350229027884235219908109212946103177433887142698094051147999441474880588127173921500063943894830495063483912454986825228906325756687481424043100979773326229536007810089439644126535789112484725634888132150030350304520544066565475649980749899170947648174286920011585217944724050437681830468315905247021481880212946260683954507782127211213516322212948691569865740192653939235338714089539923237491009972110804957432445430256167898119092467693785476598196829649245306903567648604532210229809064306649534760349195373664777502206359851526191702424098026644741989880717106734963869402227530655806710295501538543028456000567284269397394751765099837263575940089427864540045535926619112378646137620965159479580372442448730963304890883646181845699070478003940028315497528220878542654964633906754865257273493330463030083042821573043926546779444081714712283999249293044112324435595581830689100340117196016756882871819804459213388079613535311421341504722092800915200251205495560222304153883977766565710399601994152796190859373254084267646539746572799445703842983020299264646195689392449152232839916003036220403411001739469808559109019177117075487858338871669248419956834555575241303035190335701678455327979006245042000593562169335637758089175841366888043997113885932979289296523617281489359687102113557495955068207766267137112259407406830842021331139497774722052550963278306117553118829425340426889670910855421701220771520643834051679555060119224130785878940181884728325028414036254405352099970491548585970986854230898537235387259216548474542707723904902632391514509053009832916870189091869758597197655852898884883994447693165839627960793821213495626074864199071241833482237356607641797578917693334773404222654441359882939951188378990370825927912257525170206719260284779155670469817227379011532336474965794740294473342289757004195599863463396924127313585087239831374436006102158099278970142718352960114458137302694963328539505592481559281886431876944187244927437395784982314085647240968801999240350680287913696404552780475362007821100132096879794592343388724000913361718390485997551382562524449216120346602588492738029791463589967040759696453832874828231820729270880024849719400330363397706594670937752031251350808992151073763295051154309243044996302692784000329835145832353714353485741152930785489191329773038320870698154909446883224351781325178907353626607000159643108613854965177414738552601360483642315684423981973612475323454086135166512856925637597637131947150804595221879899315969454108184032009729828336386639348037231125448974152258800829447562828607529683647908829323265541743124238135902708826061146769123625696466905057995861285202537933843839924097143837039240776787760493510769020587717272058987077266008882825310679526137453644306090778364850971581648309143529231034796882143254359780649056509438628383100657270145019754878589411659198829758712082233341758034812131870096958819574745910314934700724777322537714389881747640850815011670972259515814044335548375175691732481325875353402498239102324688006479901207500562335831590729652755086617909206528240135179516430996932803743748857932576279282044657307772822620576362373948514773238414076242708325449170256487466421764855691798265595598198782480290352006383695939111138354993465639975205245528615799733838691587676391624938538549107530726068147988373446166254888558031935696475490218237688565153082972853038054012776899702175225465457409081709914215706708476048776500013116226993475034180710502839405227082828364012047566990353920450569944460561466933710454739090998206017789714477917828936988096268322645209444137182746402976848554524659719889143259960002336925622696400190901944185541653161596365497169827949880774204918574813308894276579814569463135432233459608887663767171966950678001071835418045697480040274880453504118381679393842096462610676943950734589915429243489899661463355657682406256375424790575280017213932595101522847203053976959374161805548654080749480815748238571165720648199097199390494033366647274259057814392322314788379970969084866181690209117654522840325856260121901197522277233560231909253837728183569579698799409514963788328302972297993284745760545436698942283500486760872609379238835597390785576237418936326964297449599415131549582350056051578189617105761356593780452670719318543985325167571318477743380804841533274540773275697457822917772307204169869720661551690006805668488076892242615794520198937963496451061133238608233563847635646153735035645281598963347397380620196685109505004064423036957501707331658364901281168818533801149115699508247407289668735416092968309891309203682722681791997540863836859476587784102934134092873196245339570123956152682805469414542988124852053773880093594710498070463414913257829620457217863598776295270628495114025202549599175314388845693036334003186118650871424738792075317642036463967580165231936495787223625662206865444887842456133693567649057693918370449962246538885482872762942789268510599003835944558817347784238589946450456252614908984255989812103153220046501948129367906431632219221357391328983148815339039856687295333813558950570701421896792330535509869484141365082883154897049040190013157288608620655633349518557156999987360867155385754423636927735505693600919414195066315177044284424104960096278679418879731748002943932232010686227375591533964636791589641005764360178731228905162065157450222367937417710402088394197211089943608705153426325237444271981842563357921779119188972442740566709587398719455550435280744360720544384850809301331749346726421841176645012092010990018105169534324111474497167695239019704881888839505856689390092265996950234348877952832798799092212863085606593744152841221559711367243217142962956371533852115953011881607665838172349823480904642989346750675664843665881329569794738759298740800936420019906516077375268293474827319096888900222485084617795652938432082549466267771218585009339293201070876201280613776508032041226507458155522752596107579043666446013090445667422021558991644846361546691797733340260869400488837483301000074116733643039764822111937646895952923081548322550064935047911992122270818261756443988179596691405785631316477608603606334770316711560483209533367694734607487350208927047076508260267848449061383795705385478365936816699768137759335193056224392450455700790019512890625782947916976131768033024225893273284738135210086854039994913316620205806341876877655419414661349908114388867832301148440282392189719780170773194232618645524038692706733183919005055314208281696275218389761147618206861962158767970695531271131836115368942654112968679472847555434591126987505685407599599335180201559317563698445639854680784964887280768139578509764607578999327320136134693311423527213349887331444650177126107138692251467821998015057156246855665885892489829790510558008320429454102285052447548178117568851969352030366622965736538189729875339651590711040271913782905063764469190123076930120557200088459494213085121286930404932829748292799237117437939032311251810387590213537003425629061256710178609679607941278132429057435284459975509497186579911574818874566232969952810975889475583355479283528922382421600946651834788465458418834377950642725030350780382190423666063967574522678554328831317072334894158727310355329545910947019768106034350383355171165996314231261973185475136098191761512210308201336612178349488455785110465391884912323008661412112012429030589067167406156580948734373427959820653938543149953216255051657094079961090179710767754349751768251399316088372120364293919477878391478299680177353029976151603544315432462476790399410345591657610150656755129754976886820997464183341261023761044160647016217833622240996042893121194386110404183707043903571222423737681015559472830511595128986404607864277434173060227189525353251108290379099760493323858337984227042427844191491629663841819137365908486729862716071804277645387091324244129913094492436912807265438277905272510924890723044296400963851108342470456801084834063379126536127178353754290584853705399148295146335717064185096735182513206760563933306543394174097230287513559793162994541532953689451644392810454077515151328873860013743332490875679739809506971489529881209372765602838853738690669683618245501064224381341682225687986031710758640448742575557614198147178493589203209898514001852372355537078743511980716670255382351291213738986573326501914940515580507237982959975556442644643810227129309916662494811432499381802910003003649402916789000081947726091137187682045755901589445604997689821949387749374157778476461991817432614425619240401468407351211624570856727216726564710558370858527381316484413017094691390563533439500390483238241606907751758585418223990084311309221981751034628814360529278258103832972784256101361840885454157985292082265181130777838608866902428018062162401781343379055470148009216616435553932469460782854194179504373983762738578037362173751294145987903743745997644576186033873876384216670683291004836751286927339172408219905179951272916224272502522056517448782240007739868047803195597552124018213496488770804967698140006821543247605552322664169737582933546090965709458204488019783954952811524483862810739640121776261291494175785011574494347408359799291647888230935448139500571820498309213614723536997211320802478133518016340458456323371061003342743788147162519682879433634292559671573895975259612158110138178408047676983749476008719333520751337434892455268504973903125953164358684030405668491836567898024554636019050972549066022960795935460104567928615041578687851939424452444222000536870783357721925176091617441437246884633893449217714867082778795808425510246922218928910764544070089065930536860401936251316430634829132769731525972801913451059718511418030793126909330310708710804866324567535930175475110181408308611026494737528393196933157314655577680741462865777737672810461802328445467976582414987874941374696006831996771049070339307840968450950858008304310187124336216668278590003896561864487575085782242345210667260935602705432366205476392889744031948996333626659512665529560708013151832650130495040492395829823103539753320311383469864353746123114861565484682899096730290187193816037089306674939344369341674172424894411352943716048620221003610589795042248460320529059337204993224756641803355879317487163191859661044160354479107611369296785613479857356662594511015099681370379515065634658882557189449555295376767198396866689125606918927771070880680803516876524743094874867385873793854298682053398206159945600064951697429649379936971873428772611583872512496332394543371459120891063853684904457967911704936498598089603008599348708216914804970020697397342823823148974254782043148939509499559994608640835400570194684770046885822249448085791348758403443362492624166784725307070725206215347144460508645589373899283520334864118555315068251720383137918965566926117892920785188649763323641260979249200600889908654747942236411904471039870266162636371242723682808612527720339379172655134951896099028671620286278545948663677902557727222509172276907670602373327988145132729177943675746900161633959500182787008632279809411821780367362700749405848452090907114134040453473410558412097451637664753014676923285141071105376670753011435052412623131790597420151699340234861210816222066153815984038969130810390342996966541385241270373468760930641359436878879541810976016179527845654637645990303271990934423788934213176013764800145087499582169666785913429941465915485978528958187561378842708679475786634277141258804041126682693921448486248662249871414758142207467761760875655593784701871598010824871159251969733870411755466614220522575794833001464517977059244219319867067631821695244847848516571147175936229898908679918896790965889389885676389024166772013314701584120653386903085825740162107776115796509562107345898324491542340472976163157137809832762341436834645642371438951706999724542725070832933697197265719083333762800566247773929290443570761937524930678676597700361176113991948939871427051730717347259946639671415045300959953504571701614586046744376346098704991726761248150593227982667308217548418711623211345331103006047908534663908129882095557032888912830407785267937033882836525686122210085002754735900512728444268579180065461534927440199405232685293641282648255068316222725792198794985840575206208785292209671929996217251348353631484696796627984914939705545124884203884921528092203748299504488985710247877322673622961366961546848740097548049461871826683013558559182728834527436309014904940332387335150867029604161706911214819371375584750056903870832345205505519347647315763094836530018994657615461082505100154161853453288854093302855493565014946665294726877429351901726025055286117311361876626924365482577188554610591758886251135211448305467893879635895276298342556752226514788588411769428467767042834607226692460458757945684271708732912340085111892480364937364048464899483305717317245120225988339017005106509627329980140916811784133022758281438087082941538289247946465039441677094258467564669100381456420125839812592839458841869524770966742862619714260370482157667316055168422903691936319762439798832332345327459656533103100310437815193205391175702174583682489738193203203613722126090983885824918487142155614920783828547808227961799288079070322737420803523215486199130741388030118478840580137793872270842116168876124913648172728827256446404811974500997899506745593721441682603030107998325284754593113090863276071362372544676380986379154459760640324538400348001602681988617843180357873901929968444540905543111451764807720289379397285354944213751034922576210987942186436306234059337625460812032656139012849968975488887450279566377437024933815513795730412181333135881936121249208188234244448354201668978592811859432774177155780560833253003808837907230716079185728531367951208227348678080244349334729190088216098881615256142646472655991453221290684957237833782563586512374435631831223771872941562924734382344168247994617749139067573146941099519382297473997539589294261022788771249385315951063093400087466989076822236281799396092760418118118769187278853355651691569726760421141050589006192268949368293284192392989939237903901164065284750868987035098219234277415171344166780751210799890742385451377463576128785534362909166920105221913068816367784176087742725451306672162000291448495274709561399904082972904611081461273656753310943961392609439058019542510121850766567288046113059351018738999175811445336354888691771425135549017564757663230279506305477962719668444738368301513371546379509856445098585817394065942767446530960750533642173615834928822664799275130221003831115713681223577769685092029422483689878101586208337902770857649943296971083079969176698760645178708837499559208150046687798613631960123954448740002624235404773075937803958284004549327479036765230429215366072083075921866596096231166271505995366682762961078367851660458609777496491712502379096347462399802330859387327958685289737557460107866481537914004403649486147119235699712507992995526547387538248622438503775968652860774959945347407231379928842972584664120951792904767341174680719739104655657470665023596524453000596347611781181341797906017018629012076516431397402919984225816333007274423247086187584259018359158911557520467949037712811275031580456664841616481070110038627828399941191896273225818099766689135957557013504495081697070878177861744908411144018266948090926324181706610412320077381311992557163003086391580717342913101343912308559695582596416214834129656435335840604029246450973841228156717550023771053069212243787770744043295836849111734367614998233292619205150480790614292524409006626305788820426996349987226640846491408789164058624407421329311582346432760064197956581838118984685340683149069687710335538201886009668841854529387578621491239006502906663594954479845386669804296616886111483398619918303901065391453364148668567966066148554032532722136490098151723946661875534308387446154784137324892962957487639346324354719433278248622008238704267572845449051961189561646655386557268498629729428681785176569231791635352307344039792363599751266419237822712607214965681486230536688892807981658133939378676959988017852415558640724847526801605536112154407908355088591043740632748432693120538813630329550922604477168675783845903761339943466619386170911467307281933675751654104595032496594111288649256497727873034205044706961284539822976955489048216831937068050752346688777490893485017324212239435867616891722409032396567019926684494673288144771122243444629026838168986582678954823876702422012658127939230464305092692613551254118554533429331279817310144795497046006851888395548005624125513324096037378011270023614993773153998702174642849622426231672236050983938325977088163298099439801562757752732668506167967318729889143036363336731800497944757869107019491423297253318825845293496739252452950809521563254709035296296288670627420948566726138586491479271951738345690123482765986714905969626541489206608624898954127495222657989081077146742054137578254776940076769931836515693326246826320486654004982824525075280487242097441945376924545058582111580740182997284575784756566295002133622000860156940246236796792757154444910842570108427144788867047226041033002592837959627015837251906200686137149512668282928619908498899709470135923915753838214145525689062456434952042609653664536477198321809338398419047800459137943267442038760922651048022309479160202469081503167363959102817783422200025424000347088308291143693061026530368988965616889919369491123889821759437715393561973934023105968320934773112922152252905343383048053517326994008378439611358525750913973902767621047397553168612991343752584956605500480472516201751284054925374605731452002235247424051868095447536287367979852135940644942918259815223867944315347007119642172167472274949103542086021173883292090768482820295474582107338682129455761264083404428877118602840542717253562190278832300880844338106282815131913999762858631543108264247826121349209648592400807779170584128079998769139920562528804239699007936039109809584483484992559270104842897592977248282089227081290058528381540703048700041232812445958731499090914221164679537667455899709097083479966060622619604752441366920852648704364103288893768895611523927110239907896936448044848345533543392585305451291928742452557796177417655994195854718047796605829024407113911537337774226189608966686787831738371513010821017574276666038649194107972698595234095861617505066566604886088021464929237293187477898913689599777323227371633965514620557255634064179282217763423473031699763054191735988176743373905618409218151625460365442334723094336875843351667017522022812679417805224639764428911460958350865149570733179865562816246591757397083853580709641520284951554897428610354328921391207957611789285402895523097828447591586990774153156602086074426795147745125062829073568844971790952752736205609482693446047309661600281288034414190702626985996878248084076378710842378291548414830138852698081155747943148724852881442523475789069077615712193994727231127359366970352980685260921060010216042388954534668019864103614822207693737033864660686580376800834897296903725018176549323785306690507569461035236588196504468359693092054575486430007475596729417155000413730732959966100349361969358109697535918035835830350579984936760185211468152406771687511756711939509662228805277488100847074944815568289518724747957642601288242019517925579233334224973806191923726855925899458097137680386923403570667408502346479844054138606100744801941929839657481335957311481830464743154055192311120506316011633329218162903578295153046249243246311226279823482454734694786537253404653996272303946455466214241187556658283913925151656019235840033789734065964657205767808447976314187514017815451610787472260227687684089063366663579536047147094551697493652276790049225870762699776367867222398145124458166325620860026446650417481890891111127057125326081954926590645348615517336138260753879135500771509216222405829811583154753626254898207940277291389122289568158156979121751233665889896778531784399037896659672377414700489742645496686000423514175212340793038177283386855650975886161549256897199009536014523009936288943270769651940798822643829260947403917525172128915603600367025407474204558709272367750495969211186068529010224171024225545150332724614403437655154145324400342618620800493875320150516259565877872048188617379049182268074734103711016688906570347727482701781777752495516791331140583393369681310667455011898609793166218790883299013315738468358035183438559559613121696571928486270546441810457816774983190709942138906420745444081733457992144125831664638666655548153700104703662442712694857919955516160139647765330486997234867788331675177119727058885685540494037987229828379248612032842157311934487341137040979253545780121265225505387997069327281011247642587630134030641615570283931271474152902718325542887756430319741085196342408771696540811468930995961779831188501270417425685692624430371511286896461994125529941963867055146382600452206130169927406409318916821825994683411748916165910334431729165018606754225196468362878780156771894408144162945484002017806264654291429768432820426540428781611739073040604507381069487505235671205188206953964108765960917576104886040445547307735116874029975929533305596510565007828793272671792489181768788018864271277368587238871890116852861780863964614028853489628101698632002630325717590699550242446531246993508893101767088905802627572077096309267121303195852627474634676082510336909404166752764730976171253927232322114722946978885447872562254181278671923925991527737306359369271123014687754312869111154242500248158957973662099614586825711199304513386235828201731061434974455443029486435796189435170240862240161013037084181757494142252222360587280500071462799670788494563643449257155410133655630927992513352184512885100231709860925417229165188763655508388639069434347524171364509165058102206486331161236831602411281764811017717638371581830940286281017188811205869742688797008106378020189376615776098578920449794539983180620531520345374640875146844049243401827399615845728897818837301129286973626475043462035929725685847852322727576889471797006168126513431612260990531713385978618327635518957246958046276221538088664184670714940914567290036398523503051849541489897170601241750897058156385197836838585752234232193709795080218056302387065495024655259979671541281559119169824998596410989222344013714941581988194421570153892078676395039493906986314784544227454232599166682541578456015506776320406932055257106837554862788157360117813507769422325987170490912684444149069299377989962790977439903288515264506002826893098501147678635873455131272794003398718761441129827445970046965762547855753797695549991604984458826731183057798709239996825302251281102625314742573928873408663760715822129587951527991213332780432216018911878475741181112563290581592311335910273637606211246889350852666160840020351271210281890447876954375289517196564518659762932778805644656262903492293162074406674848501731985282543696633576655255133204326076022562342878433231884437109514599371014339492281273678096701156680604471404889244551414848941544243616744062240570256399134114993388015746161232560119101533500688713367856277815627491956126549382048127579319454815628091330946472030662849076282173200579106716911376431573934678644775908827147015128534988158414358765402390508951738722814341068659670340196458865117738464227537937569799288641490115211807955550935928769954503856689955800849868856997060104126199488190395087370779797055745870049895246686297119767727125540521858734649855635043089480581279621376734307277862330481759953861686029808025334010389314111678066465466614617677299809394557642263462384813070835332220520085409633319686321127244731861223215958542595853629323623386844990104131367621763882350337314716638274921960794231670960352302981806842628917604378355538460871703005461423880418666122740190849650365303189217045993491293275525741723900300809839335212187091878205592890757939914100748261772183947743734899194055563417597705678619156764199962510287686000342914794900637569275798053832350579695591457674369139501333730668112108103894559952733645357243791089288413417055624318426643335599984271333012112505389727988266722562861350256112077911515814954659892844193798893890265673395384485287656568104278994068468832903779442251841682921536271069783809198636878393760642195893205210184005617351110921234468925448167111390003937287130595871683115866508669067155131725892012541166340572847528974541614316225408063122892143064268850801626646186538104696367304556744126088356276434665320079879121320167502493995957846632899508203761098934493787208318622713594521124741023322803131341134329556422665498361295986383988918669515470247791806725589972108050743650883593389195884319005684390838429869921672507190882114921809815151023099074668318294704257217692935190868943237095357383106418902483288718627639856146732497630722286357855555711808934504058465594458712866365526903735013256373559390738937024408197990900671903835743493809211788904771900691450097554180141261161061531443026894518528939178125132302710378996058613827311469243891809131261173241029190620847052956738724837909134907195358884798277889178583679485773270091765614838841211599013781610708094395682212015500144239117750335480664810574220524685272566553689230402846986435610489259053140345380354744018868077714414383515121012375967775995750792500946195985483644206987803705504151201102760387340049542598819908573222334577985696881919951305547117707977334241643917688366771076785847598279026498591918060970913659370428812967700692284071717815176427845574975199217608349149787565731388930847906683394794760837888258123992065852768710160394871091723884024930697418143592313961803670601114071072528407756022497951063706419345738497531265800326746252465159037344723276652542286859384428046196141600606677949972558251083671661257274388966589108692780374430059604475953309988778339451187505831370628175272733630351014188668041454238679965496553401404938968439184287245297373650046631671269565254024378354386322428981940364471783560221871173286919617310469762417014314014863475790522272270502120421995306058305298124077437069119287242709416706566187894450614334221036734228358205978439311935853782062887088679759978680824080503247377672467853437567009209951340576158609065635796287844618914262341271507056578308799287161323139777544366019470343987911119454100677563836582276184733733152688901530849482645086895532320041516320778979673412167921912556573063599878419890225741592965411369589165532703851203576340229650503484697263645696278137960135342183274397885152979767195960566264371109269790467467503711756614114930225261976006674338299006727129701702622499375471693141091398891541197522017910405042384002735169109436909766214568878062704536224219938400253225362689389734466463726019471576346672249098116543414593102122837135989877125442085140563778854590319435922932325259453550859774597576026142157040924018402767207831514185043400001079600139684808293166729972387462086241230714749378724747756140693472862731147882238635638514322490993689282543237135645536625758527403455138815604656015225069447552873743056603034521031386040444451766245948316188128031411742809351613653845419443628628138628806743073207852291669115961906484165747788108927551181458955745145821141481561628555954887083626857833806417685883274428308413337369207815247785957151198502899124783506405046036190069727599572774727757268034612796254369973162658696794349524625108735921695592250978067997242879171881630856290168769323117639777333123366424899778572350202771058561904063969906451447659215036712676871237662522107703025952338743939721318341719718954565033053491620608839910074351504095052995801137892897639779597933457163066736183944509371893113041463407811616683392427989583613546095181483092780319455371692697504314619028934102160044029226217377122988064780009647335328233915898992622886450197432141196293725176496671348965698637692571427988901351791405116218142663844230840356983215548789627704481500583548568176169045664837268232978639740337969450676018693817369371229790783632714018984538534231997786309241290819088766343490055593921180977532272696928262521101382732146344483342964584853973774300127519547042200393105969905607717183208263192829355308476528436829508232021189840898942195554499192672555850389236433239373240356012674806099574700014595139591911369969411758461381261987012575861121778351479980893132182314611068150402429571546263244650746433157619307871463714322526994254786585768686227926906335831988398294229659338634247451740179356551057302595284283637530520460427769729043455419510357831385482534340039129501774233538064029996873391665833350332206615453727794670771634288808310332095012723046534475032716146523612054111989992424199551066930597324777287767828076814461412180405098413743942031128399796705553670684856430969621530996268888275240379868035188158556828971554428820654161315498575343019983125581073681701728342539149413438640867644784535004089965060637310363561478858498702718758929456812264281675863706364679736693955433247903398908257657873566794574159931137687401875727336310482872165966134626529585171976305613916012606524328622669376166339094190322781042988089527689337359733108752885248629095755098468812041799968504871418622345020707025438564387404650892419783188950616455086742334220370277283231494881016625719897474262686635064168605824261809835611889354197660425588323563911689957886999777986220552194004395471439593450761277659972036592038800327262182100365994595389521851928320013906356083542035707347505237621942873848354056003899594758201448586259045994485399223925802657901814419988886426819288357536950492095932067699415845098526764121112916548005892208696178612488603110605046654443008278186468830536335490453520585141802040754840649130270949030789794818565225362265878205000155028717908618752030710334047860554192549180618586322007929203973688137941912928884772813583394553158702069668000598357014560072030025248451245796174968732954836847496491668780217742293360332629269109945252298281296534229622389602747022105459789455033909191674544088604522127499917685756715011446085744904839644197921839275819037953255367400178386056190094664389389075862742896045907228755014843292578957605372578575766354501604433094532823137404439995344190319236203243979227767489989845399386777728571744986775209991161777901070196351787758686674698172793165374128750047592143334216031819910744942158771868329535825222129553979503677356393015096059954759098504759422492732126857295093605551807099535905228536239106917032936561181844422281964271730938990169081478741130501274192046768663498444143807506542758370049343469492193079424097554645691240173544063526064693787647223457983610814082247278025979925732896843855765157930947153183954893090876383724329394755319194621078400414416424857440689330711656992902254723303613083549329732697942744935750461154578258377205872442506557186497518445190905374119962869239199936213250503437497558268744481986298989105161554762930359121164260104533535533030051436414292902834645410496242021231482498675771159816537618057268051039923965636483346847862216403446905987916492548818779948942505300146275927623690614758893159982174720625030727184995956125036075649514274804328040096875387557286989124823210277841408292100847450718351947823150033187642377108647310369611484360682812982004313497222333346399062831459032875428911569109759023430415526273601560990849493460738190086519575035789284538933675102776740236600944722388229511800276598631792801585784805520033661816413709538550152763901813309229517852645123606196547137539340012802733928018302021308193808627563346126257192305497573941052068304604639409882014818946234363302569990357257214142106809936175524359406148218197447016939451305993143527825390022483510400133609544272294812217565794906227690640382600887579609723216627293387789433954339277315428454730161180299559451548546221449758862364881225713806344876657039664776856045885265292021775496115639953000046185904675884027685716925569481400279689238129830860761969936642551198546659602332348549613642081254618938984758169895307648915840159433257074462981014374789220461806970384715170556099573079920973461427049198891839574831522294730541511291295246388741614743631267856561813335312192407776481225453539867553524089517330412788179340828571484713836924160046805812577613974741063237701448564354868841349849291187316516529364316621295998086493052101296718421047151246061709077875132986715705208981233044435489551163630508602964745461958687802153132506945066849345601963305728943314029628859737806140376315683338038894210043081454177385945919502294556318914111960538639615459970530723630140843389908411625396584222999188471288912702335422025172659164525292307395439446933382304220788933812157068117375483440181038730264476846796787706847411803066772915932356933655365103225188585319585821650579466668588646029775877470194713860033318773984770221031537363668275067132047784180076749081926436220544191939785050294564444641017038570618377200977866275462534363457831728700892320316537655079672935352307141423972750295817996840364669469585766910617563614147854430305267264707727326287223303379614563431606308842911746305690817603595167012233456635033406695305303737067239141170497990481581772005942705752320892027018006371322680306874118869556818992053440480695742612290501481184513584326159208549867346533288997033520794649461825028808360601575823618571991954193546815441541355489621803820176003364653050545807198045145827279742399344725933469923935776308716436487325080444096048033820336327909401705578148218877547957169536044706311661057678691421488000906338786980376214093536141094451292853167235735651193397224753761794748521140133266626853407795751071309048904776334481282637633923360275298167040970685124264807225233663216977124691856361114615936130390153495763058951632228170575180125839593393630586864076685681973904290750344240551865281834375246381273556510721321590988723365408499563056761828442079197255703380551367143964227944032127131156642735803887518718188055293810103678817802336731271422225885159461379207866199188863131116182850922772209216899176231095001566723137924659969688432615178956235092873726283533305511861702434969094583293840919909115089654914235766820867726844291042133072063445270263205714636504573428623468265198078987155908095508778775780552502823099477367679749185391866747935178100642715991557461198860370318037785928786297973678629522416538903927207439724967025877545969710687738541659018343145268556375159074102127209993982936935076561760926474556575742787992212370215945868740914468374898624378960243873241733228053433560201130986306548697773377965679992486238345805448112604549124478032175802993616859427400574251863165940994850271714699317210647774841167320334725357586938379009399354583254529606884466153366905595166297742649157786186407801230932744276568591049807640062765967876980573544896337940011197144972164344624590431039173617577398974833362299561618799493729839756600762859071062889937068772679417795071315481252557083739223528938645108456521361254826411409990370835632933551962739368016559005893655775237980687376538783995456929254344851084356837224508908036126828186468897871595315222749466743249329265377623969329112156935656770944468848330508365276038030374565464108505657583187982456330405055084064044237396629059513123809532139539339547339687611261483518114021998954941797112270331903654266303432356363168165423875725455820114903697169410593220185236587518821840953957253087289251034342034056356926625863079127349626194508377146086319111640643468873162227756092595152936820607191257298414442455369492290258442172565888568028203626780438089465494849633940649141916057508185789256338224539343547056975054717429091334262176787285655061536751438379895777866673659544257869057212599338834299888965516505101881549419887550940560585201663172476157322180422252662844569131150173741904651481267546483692609744058900443632128259006860133973993250773173809771860879119014478812995110572077741471065926158420935536966904400822319820718070999672829536091579983703125712458913849589741185658044715746626165822480637732344258372293017917382668359428954212387460724934619149795533016998460753570609738379104603922839180797604289301958847941628625738684059827805541370896806395014592256312037424595857973784724044372309130356759964520588550698176043452398924985883141254036210702155627367325225111603722171879000045836794898626510635077111757633881646977619269440343729234929642348196114531091075373405332819216702722208970473947081800240287981693758383056618437836288396838252935686587606498323792369318153425685121578632456804362899991313487413525580715388714181125331811926439870033924491080259782851954548973249100334357936136925824528217125814299767321396894086451007735345808871441895736204792842905067303938019721439393668534393897029045918354099912940537475240428058437560789625175841145812363247223663247412935260159316462436169779785350269471792428008306476917435229096537905383920265742041050002117539357458590946991423971843049988262745306058565550747777364683982178653105414300902245304211145501557625709373102604364430912810177892675986626850352892778850783128872938433090138361982637064839123099154539661874648661792754037514371237258938379425037367266567474427575521367364870102015564675816286286478991456936624605920057408034216751668735187124339792528675344013614534773331897970900723458353516581551818104643366887468302591382542778414688515853985504766710188240150121004288171604004552641636054752879800432193817699517059154911982793541529556084326417502074450837530251935569385718987297957716780525956998434179526281701828557744348394442542347423353306393070416918586961767181762472945058951324470553339633936517226042528387614522480619457668988486802950173742232945717089870250143715186173264030591551251865982432062629541250927245100683661485899383373447397427977982688841308232434072117709498712090206194067717071955993810120144151604727115663436658523668693276242382831692229108837083187530644595817142305176337134982711957770838478277858734931620473132614188274333294006834900177228762165451214016721802978928387745449470115375199817502811950885325652815984627136863979734584479456526028073025876652050256154095759149011946400823906712420376214602373065556875778804947117172607524597285094718578128610987939631606400336007909794949599101120672696655708074672658650139044814713220574482652409047207573807513081646893965641562983495138634411743560724642602783173930126081869303681475238449165570530291144537950692701515635585272697011750445226105793474349272215009843622123885861816312724184841513294567685671162815552177638133367724712681063630371721675894583319984880714173135051953458799883761628627133372827636692731018732057889847197448420702830913102820301052935211959515790390929975862737236722381991316663096107070969963162746633454533072196474251953828385194259902746117499134050754698653062219874827692828988675031751549271715221076981096491003058004083473268332849135171606897599649456122926181288305709063802986555920241815761130882840331597924987358687718219314336425268020797435086184052765338453568564903783724009825101529404885616733622225993284122617170047406467763514082607584608029811301408303096893225318040806582159692318195324834514056642987727568276324942318289890156749391477262127747239096393597594877115971175637360233272089912355562614635520658085467192108280107256595371608478605137995656665525407751078890986184952542847134886348827188417890388643039689577559589731486377436281849013502211059072276471786853737660718050916294908602239967573960855889859822032196708915767019431991747417799221046003482533211645458515897604096283791485314015991255221323123082598835620505475889117070257830928654498187594839838919470176781865223915249597026505820098538770824838169320034256078474307644241052972902838938078687009172695404544579629212121759510953666456076413011402715592734916471219066790470115371179149973565107329583469702759841873186481268737019428999944197040245630560187476768943258860146301932269016537213546917761637808567084298352438240034023540285371744516990304346600628832775841580890844191587288471380878002152792097869020933396329240561521610811446506104591281621367718226955540361623776692095312124405440372959563046278019180740718541350239726234711323286089578619469273255665335461261739223372957174402081008462594661376579539908603480636770373275184169412556287438013023258574147993709792129244599935413540375437997356502042832715869590105858989302616419202570822923235013331262143537260622318387760889604802239704621232215031259810132794748716423386851347501624737265840337070221300611131659237245953725778589804877313228743938310570866581061491590549360822514931920428657110005581412565138843622381680825309020012015427826122595538109166503656010951589798084849939793497969513161787067252605618297394440298377872990415893790978955631324008464405120351419274532671408172681160832557032551141512133914264615945467763241924545651201331793484686736706847339544717031855977515744122240462965334022221231083758666352231015140271548187174927590482309602191860590546632018104108258374417142810594689651964401235982915543218113648082380240714230556482008053765746488905458988862735865078484339573172699868985907766159591466809554506904362767309524520703609932820323794073031725714498912349528375458802830750236722336842153390604697777037946295371632609082632104575434798712625570969387195390811478267441950039948803819341583816718119112976798350260109201045067743098829035492019049805351323240172896715393707133138213811365151367761075161157087537664060474794790555854131580132396906508855530287103968456765126334986310228542485043817603697737707592557274497624547375456077211660842941189553186211756427363582457575959126479172222182826962855981182109933529352400579304924910382286044799008019202550234960854917790859669190584994307104976533659587729995739094483565945613415600013168442877438886559599145308489233354595231896191855861037264872827396174695616414982988598175542958216238850541969361256594258141272408900064028246187621664862605320574546142338116569040994127102767896291978031896194694910030451941513202384460420436206141380971936937710179160108196501068737146874438702810344329258564408346616208054309501575746448201826994205830300724681546994477674217759246189163649039566247521512247269805067994158516611656884878477746833898480827141001432669408050873321048921942020323207654419794194599278330309998946825994684650612707925913559033010421694108298865925240293191664256392620469312310997443808849406147770893528813583310683447905894513346928609308927129808742032268806717452300775324791818660187823603606865954220532568712610001744576427821005136923719051111027997551702037616355353863056434736173879834431976722215277401362886487703154315924763876407538715857737037565647791497828152361771285681828248606677604575874364154509777128018392330144053671494484562413611052968468447650419583561542448170953656803020037856365154071032228930636842171629038828242671749404559459091357949445878116277368962566476795872550828176094213770408245485960460177491916505684057813265820702559881778409115640829671532944957927708915585971269837910499135662029685419864042332344225835637061773431709748206570811964539098105479159236144945467999982021467187619383736302815707234616710350312362820619488382650346155831167043988526715072098654862860278244240383478106491581064569237869551501567909445248806641249857206087166677696753403771889984807350826221995701062256826226923676448396397745262814644527361493564456324837694723650995615123302337486116104754679895538423806911676432020928840641119055538628275879601377386658400653273584547092239488197737466031626883933725658444619635408440199527321489902558738070094087440111301510854620951375501283961643564668144291901707887525625265555721912690818606912039649512549879679377583556383988576189163378583457169042109016254641313030974684716257765986970166336607378927458699823109620626795155993222215861717069521370363448762715207194680424823182267252891749638495148570790902078764880465698666679634236292089367191694210350889570895049742863963972249371658446278682175213843351992788835103028011227131159715631575170961894637686039144110703050504847323799164253355154528053368025973874956275670660903586083879190558266464800294671659086841825461979496816435528016797660346118841429000781649964474302722776743576748685481405405046920142518989484542177237019094760584198955191178839630055031514610574932880515033350923509624175603403907100351843242054795758694729330650811876272641278972253652963907522529228750684847317204911828067023427868526306478655926701596395070725547259290410183067177063551680879776543261185222118050570350432986721758584788888489545031368612359193350387596388466948086329097055161836591002465678259592504521454806392018337478253258916878848913503923831731683016301387027613036007306395113043760921559205607828231591855355930373225804855244205306837428340401155721685130031245782179847015475806560656161878026966300636110259523784180453808121024691762072568730067735332882261233597797194778314654861319828888003991269560394880111998815034424736402573471097598053300889796723522984893061316015981337673666828210879715207479699723978433093915436445571264226902307372111292780827724032396387179073567283251743054012501133466785252527117950241689302907087499356935578517222113290561579283741330609251569294814153484650101313383898532785144824836300984822960041762888562562638314653861876944828508397650115602827829165593232774401275346511327441923370604980481833168359839426682947182132204668504508169857612191824146076485089247222157034947716881336802046076064955532328450014954871632623487572398446011682481772584098762851967916548011218564236719464598424927399711028624927702229620955969126473197312942488660218278554973284673515862555096719874748240178877067428875306358973896837332647711218377537149593977299286001975446927188559269162276639683373766000089948111431108291385112512939013203498876573593911135078393394743720490373770861881670879262748043023431427404166592425954534622382110064348002680917263772596907132464493818736789452492171965309203614309038793844607140086162673168163967076356026803421914864463426169683794309493047507728274321933729810487389586448736035134413301071291179001620638722351345134331422111021075794011260033749359364785708618352792374957767569557833421351554245532418127951857714679361271237927473586568558258227848765608208015756826754839929570967615430184026168247914852838071101969158772255799663368408743530205743007778157719383184063366196863839889725545208350877514842426261538309755738888729504319021321289843649789953336954432725768564360076876638016006818928828561877996411404867993079141964141487864136778888393084529581052716752639503078424056043958199112416491995076054506401247969355245119757810102909269600874978522267693030013961986460331732877093908225458153751584750876215059638790617225570211316973819589651719809917713596049087816799960688667811605051797433902859985728534480135968659287137397341036067892747826350425518830255123536108110533785515618895268405327654635677556445939407191319366489862732403700331417339188418073605384298861060610723388636691236128322453457467515245953128489267934694851293890765007933084435960007914742385410302427512854695600472691472542304106131513821894420648889845062824541570528367335397650805719641302474581118394812022940644374654073823831152246382009523620301546511291840782754653680932308865581555474149684481156227636873821133824630219589479152700499043591688443560762257789225762471750499405207865718613161727900819889775104078814171038047441594086527322212608574412903716972240836280540821824865422021874633360107817564126584140632857550222385242490814783850425209494996820154007229598184041952025080774433611341412828098522751541961335042893562390627323494067462308663074574332216890131767337957760972560721236530838134372705529425664088947087805612928448336031449022576851603694589322161898202212264236269446258223401385753737579174928027891339380879768643498655897840816711191358102118733208054673332388804646775817462509104843624512285990696155228436232013783226732985552630986300034902818769229090158137283726558307216795710262297096434672981680155029332606096724416131361029952714691303792994279839030297785670871190154113400356027306823286966235921133187021460621230489587940179794690978523950775747020285657831628303883040047595289330114907909313794870274678686638153065145863298731633742018841006488355792533667788691993548518633054963869748226151737211375179987860675431618890527806600403497256366095605467760586159624288116418581537400960618728827130022472988805150012613123313152347052337962199466441474922456176398598749065085913835760388663223503040232468376325813365619247897882553684863375588502656598038246315899043251791506387162382266761401589773623938993601022377613398528987588740560649243489293176801888401877018607195697513028736860744490294183720248670409468806876763062971043062078951129965455376076028148125734242316001818937844058155442903305123392084066509879360924168269432198411662311909390208721234221293398658316986474154467488690617124547990570214172910463682514641997125574063748758305383569742487848434341129268473321095401164880845108765269020762513155329783176494006644542220491003130904274446562506676341399278804582501683851570334335386406746915440483955252955106712637295486018326300885758817191586421829346078121222197696550522169404858328395746570839161404316316570978250933054907714602463760949691108010726485335800589205578385127730613200030150513215851080350131014265104457024867448169827294335350982604112033470599918099247188852573714858804136116763822184594181212353805097977586522215227492587863010465277283647724187352500929870528028550049602857060011088380198720258665856116727959907539498851609250302202513405437236803100283943944506614892804385322070516867904066717108985799266453327871542335148924302566506249924348046224559286794028274705581298713174923825206507658422449791058697204081081160944401455901343517393763022805239101745971135259834638431371535121821988529305411842496151717992713641764341680801056932676070185582991720066100244200312973421057029897188808245541982267169026268999210393631784324669694995288998124491002309621431152845314102671891302505826226765331311157436919016009986513044942596916006295113197979567441564968256915752861400771299650115604897509925983911222983047739160395656181462400902957738320378549122974729178164738645692013980669263278921734826322938612297392531344167725646761648560086023214762545419515284023223282318408143924855423110345641438437286010901228730595578514612054970620083830451986772679850282105950559053296921050011346136039954020797847365765854359044806224645798472325419663889056271273389095856865903908526158856986127803680065744816844852631252530662401292893689143352827987212165483019971527149567318886358311144676150377317943349975922735944784661292719327067059061823380339009036272158873426098351488513991865706911540236351626229356805361987784719631471860364458372686667909939239370494831680783690405277410127110959943340390486086223735878780046158168580906299479799214783091163741200534953128606387181869913254509604499049992387255939073700550509093638370843532718066049773479292185589441976413283223673198303302308000471463794471798966827828821795528885298224168009903837715259594779793903854088081228541946508326271511346864857733967191902761336683612401711997557855152135077060590989641968078780805540579221450153998685753334957621350571138082507527149885272869645382456338634622502614034085618275104329724542699101957251080198302241842297298917997144461110299032377170561471112145677628328753688214637547415773482075060847143869920361838573244027843840958879942269367418688931964165477910152369615053121815204372837499384894111175511666068742756541468684976572128842108509348634821289181218432629750225992112081059005849464788960522933744371608502039043374036294238462277526163036086215362450027532971932871849938355131443235647562665070223230911727585953886371804180263333186737457751495907738449328964421914321042485227330113692604494424260376232037115976363700622279749959454502709665067199733693104500269563573673152746123404430328635331194864978412085620408718377058486469620594376842561560501929718773111084561119508494636722342808320003356041897870919001624673846774364307231217420003876420690696725862148698158086840876124965664529295714815245026700210434662913445394042695132384593416279779174684858871990639132460285408017993311589031246603899894646394543363083022311633307862531983450072358169975497164526071507982325540250391618572885030600201748184169738401467708304186996468621703415411924799704948376651099903037673064191998900238680435106514322314749201492683881640075956745103824913196134883246586225834806152658701813619018876426210676383421977822510012117154710243296660778485658305355409538445553258474559427923188924751001769220305055622085156476128045919925692055156926137670242594690112064559557039764491697860692480881208521170797630588723563831210631819484554206787243452063873485812458151862419949956719107771905749331964276561005798496458640942440831192784969349233595387461711405548578417390230557290998384979030462785929986441805234864794454225647562228438398342253285813725245986783465286310479074057436642103029905445445951327287727856400955146891974740019558228681083172661194434905883144634527030765040186870055738482094082229885891706252009232196503047601052270812260143602705499699195543634129342184113946280126948567386423705704130040981270213536580197359239560501353772652407541322987924000878204455101782139919082384673120932681033783509082183908302499999093833522353784870930923732868680790940007148013681298855378629372978219679319961901599804198321630834608817877552584803931768683601090693951246112722568696666139782215230763487120838365957242546306224844244830551501642310335407593187915094556698161056150938761283308727343362373685931705113821065560997603066462030755227125065535835201768241624777727983228236608627660069819426437994321709723140468802115943001496994419907241497986714942992790533256941173796310588432458152840273844755867609403751922697973953471588301003935787134198414843669766414222767686179022489011357699460125102049848478734446750769175591867696848326605325259348862640606792464233738730132063300453128356110671347618922882500443623508279003651590378056991127134703888584225988113836607783946574085230335733304384705490659322293388892896455511592579081559383095502492385683110937038497371508912382656866812108148160815585975042518035074881215640009159930911452830866837228025486722894063085483730322770948936058260069542568063706501627419442038686430396689906538835025531492367385368595066606816805981120047614445425769275232923406463335985198269015825024533215539333419150558910417143904228244590142053100339954876748262053468331823400189952466403111999549519145507483098098087175936053515596474984285380946101701178942123994816589362806998888145062091611233594468915392656957423629823884286660795256377083462626499338070767058598274408799974160791131192031203394879418622150960074752142598991760279963679390472082913277472427074678386906030622323176477742048799270194083400580396961044791689393866318707942715825874005928694603509167125776975205251593573591722502689524890249704069622511855572544658466457566387029865615942854172880163751495194895418535922582489620549334671167156374235381994406343332556369820670663430804672180089922138461574660247398894379350111195954673047499619789043461239818306500417269263648255252717291669543625479217135189275507798868288459699096260976079878384505982784759767195916569610920843850415368567393121096564959524088097840407034115178883309069533465291001206090665321612131426807579541709686557384796145332971553696560558893463533758302420835212103158409969792572367983140280020459911405651854699144828501349905316901343868345523313571926993321129590476737611906184020409596818919264374372197083289747277997964467736735429888301062526008973048119001595859154225725668474235167265987750149555538170803611488320624339033874469610394454833521182426378032538504850899792041379527284756941967536586479439255925024064076172947947163376680596792045437640516014470251120008920189172614225010997259475327793810972456870313304426177074191359233776863329300470674015965045502379327024884555565583953534205750363243442933256249917508344530426265753857760893324043561813038990088735777115246987183769412988947793152097359998226870297086719950140696743807968541921603616743563397256460393114591210665898118065600173769699626813738785788017496308826581550383523831471465950153114829998632971783827345988312325806780903802757856466430589261944948227462015764004772001085166098108849844880754385296468729614373655902966021484134076666825474353231709838712050708424993752722819496434839579146223462148167939365327445282831190797807808521975840564462858652582331520288995150213329976507847288473545296512553932958901490297856932593454523776189067790645271871420213840962473322755045078021155933474981391768516527780905381134280940036292625159309273658708278826698781504562156832895387969609328671886641729030314268684019513775353740704923526268066745631724718663541351026404159836529541561606264436490012072809089244005564585362252930341831671370696242084791342276838568695686089519760341976551792745120068095921294342828757383539633863100263007161964296044817775546136559747923289339933893489275007132033479289624820330739107232987664000693427784959185122723572753373690028743235902538398131307924670259086777555376764989245889003347527432550112768558106514807224403234047164291793768409223091706633980723300938452831158820355555111986242873411445567643906518313212479546128559271564504138573398268896163511621971130326405535328411443066248241685289865052523037103976820044173170352534388248025122008892105841569113474388013234153978539575499187056099420003381235830923679768390734695121313768369201960041760821329291737083673606097086426240874846840386840261698845176280088068159782389636889785515068645797837114377690660944094145335153739326807151834232945335430822216954616618150907550032358019028474756665106583597396468322390587284482648158399998533087877097948628567272256517325115604005483430270486226171741372665935763027639930179894855880852740137882764979196837118176062130791644017185048134557337963910363854536685807137963000276924984356652759019601132076581314562276839423022481358465496466750431569812994215844838140103930841943821412688595941496533134641202623025458200773954604203760290974212952018611119126600576136096247454743535468920563938042725719986237446287824575734221363006129132637783731659727719265932421692801439938183166969679451890078827460860635014382541546532496271920968958690415458573130931684844945873052394244001402319825132989158640990189288512621488431071077562867330099762195961819649991867375773514660267739305244820378914711067728367176333295931932087947759960817469520817896487481725118439281940167465042892293082764714370503660937041427432687708197969430330593165190792590424801627526195910197337349882836423050503072115524483161191518927588053130138716750662797982297312273119475037409920029561016963733947941223174014054589074737340275441517010064835757985947377775930632565351955477248345502765873897979972854105899304397079461200133673296151914390098242621332365428941726094135388411096545330235119374104680089628436384129462214841696725149032059203690553727130399884327606862011839852046995895560910140221798986293586590128572470466105205555356177492216000492832181065683593486124924920960390998463026270337955776148064046782919593087819318270453183064995244994442889691902839912500185213643917401365206364305554336117042244762944755934277235808047512982292899248183969969693116543892831291001633887316308920532638197548310680949686983548312840347252081976497107147773302703245582049727406398215217115035242438612311074353550714215678950661142845555074005551325877677648410053899474547322078827707832329405630746725354619648427771055302335827184949867671519534014835318047805970663600148829015392380091194625162369991430982834206580826309233139430851144043398866396345936268333388353097589039400727895435125522759834677309667064738602097674190117140953330166071047669180001869511915963031427613849781593265037019050509390847400158784371267523116162810227317012818697064849822475476494282381862334433754790208778534478366499195994516049390473751717952678301855797610736396962319251775452922754643052090476220278582299467237256699272890053123342092972528301625698890215214948744370600763729215447030170456065483730585165531246203879730610971548422485220554557539083267326683480198633253601144243987393361108127232626631495148355118291204676377541329954478276632585774705327872265342171883592140493429902511281386172403926481089380728948461147356007122323750344643721332058197211543277887184206876860184836241833502063262322590477374592071569394237406318256300988420268942615086553964635161787844323644711000084751008600022198748284240212799587056835796952783558060791959424719931837144265476999394107934981225427267767163949175646590782263028304179466767970850054674082721909520246215651590277126574437753406461048616889376095864030336775666518579631926600401542994117446203237841476629149784936737033224206176284131252085261002663332806952879486478984545697318738125999534084919244140416037341722811099350497123491253063139769878865666983632276938912712662540279402819730974634232150215063063385161694288952300605436815733226453119122014302919790807175248176183085755984822439459589715694757416337875513354679496077833898041325359202285292852554752574162523475490851145054219924754831896741530743230374427861028439922178332480306460465637481138355064424013638064973791011726842689634695622612454568490691754324518056338296878210790087393555736278532023299190505654279161254343685107016452461586637240163267650748402081332753816288854196075638911443207611035505288823334491692504119835660660559144451458297889833323776736221236459360543692367441152153060573352295710455376450253784047331932520609303084708972682301048743748363997718238337613563530850290115143596566242881103648375599380775810504130758304409727903963723029834865060105617878689515216543057452605776707505709324232858975866284757328597397074228226087228652547620641444444609881157990441298304474782075910940126621310214123661817450443803105348388157123341552044764110515319940454156968530122363287674997981734543950279888411650033016822154197778340384495908529360340194116849630167291802119959171140037395784355860185215101194094788324273862518224069721741222328207313859092545401724795548348570874721060342704504015701163827271226229008604260184155730389515418645158714308202628675660214340884010079631384333771612660384984057888859480209296343662507277997898691667711076399843123697906020743907049726764797920530965031963942296592650183566682807863708055104631583669071734127344435508163898790027463559442633969070143060260657340718888766629046789215346249841204124766939736197534841105129974455470937122050418661366024937737212845145876542261061134527036913873731538402689359163253425746744109954549651680217229220351864947061442238589454608292927148891258136467300592505998288483967919066914303802923420430944884817836494942775838570989468165996060267848194699498360252116682062253275075260562219864313977166840150817024188941703058345438589106912853860684382170889430647205490748121462776446352533220891666286833343489362251844153653199547255370679849732072259942713474937786334759472064558766229572561588393015308711605548313423324866900846725238626525371264414090770294613330832667604787389542298816376941068390066530144957401502348547115317563590757084420380872267316994964718954980022496136323523732789661948573409109560005166102932340711343160465329189458788288185242194281254409370447081269990598664679609755533687285931690724899040123786898492124995684102816639179628835125377844017052259207608723647250551537321473680319806459219410829956286555034015949919725947048975269188260993109504182957513232499311449365048064700337090346990447989983306402261279732584712751722619367876525725846500071233115713015417148844757800910690543507065064691343197831148178741710098933405408307610096815896123946265503749965755706665576502349146985544562165882305062461284073516101927282125196633310853458495204013914833647161230994056175227623777471411762221867682749193608404679733663041327358893630619646100396212663694041777588309520168430080877923319987564243903848470134822993646297510812571994689631345678779780921614054377328256252510131202002165609909721522526058997374219640365741779128463277061566737027140607813743166922534047957542298327317990990323939089442204557310743308687209045532504009953816144931204402485681676397100157531750279973008296267399084961669951840570666879241152630717057403981589256816030126661681590744743054566776965934258842302006675932951938890954657295654421039886118302909210250271418082370901945941291091789088699086546006214685884169248592123501993897375365723009940429773572756684829009530364248625593204282650716624434876780882075549122324098423182852830044748418976292554628037702289016179641484492628843229519649908346193525190352945063388892564877747454286691570581074852197621315253111829160089018219245706497905313082157545715201722444640040360810336068280820844566163738078624220140710889962611442530513695471061651711524587148982345251466586181969307389172959702911833486839839729942609776239397176229776045286399371813271716748454926201748063504209629678214323692112648636744076000300695086038732872359089218372050105291830539687847073479944381720154535890566751549912912539983647437347559006487327501227163094624250947762696367617281703055512340424084528476518038937648894793830780563772242992343738759308517494148425565974337808824964171593778859356569588055013416139714010197943530639984806691144530554805142953865836660176891854031954083864574958197308240867916036942546732273778289036427859876883979807422839605365541530974366703400929419754928150001095190702538387016351230229580073812441396479579566945414111728227833699254620718673488901255841400010380792032086707585100128227567443647787603357276946504895794897361132836379790572751847591271544073012911237490347887106350728626119391119433312974874166439644487969128536042779278703140659937972520623618002179162699061994915471912181107334536875286686127095658779551543741141181433989085231167597013367837686353029936462678770333198279662835735069361212116497567409480806861851473884359048710212423057334249072706343359105137716896696740393360299616155613185535820763860551324278460797021190702886237163444776716832343183619327496041068130537649732279872942047588915572530428928966606249724754231634270463889027589282147952699022091080149443126846399310785470410896243191293308589672930110680437353078113474686727473367202931726137888983574694864631494718237347673159094608445202129454070632105682189317094273086548557100949999211339875481095689377801710250696773652330172031088791944183298141342435679501749823368717243155516133284648026113469414721507820340137577336139777140325567278582851263622505332177731657667867523274834485198840754579886891343097986947441399211814983353286853859783373647552470653708041396966135202589601066662197697593126434637561725090097204337025277657416861817868639155111641599287874262545850945553629599516533939613910152230477233375835670749176530434575808690570523799166402003541107274556526520360686925210028584719675044252490773006719465464903845403863642366379065821883874948922965395123137254489128456046519283003967299413832402697375501807250805705277077517441492302990504160771295634512636495572375813852972433322766977920622400460815822145929342687306451256933900052744281873181128931469829496578404263809688494155636482528078298467293852652453552618651662988644650995057089191905901659787811725935381704669487855841774729849391618044769104841349548263121227596177809746426662775281152476738040694113051669178611338057643158834748186948070042594165766659995513843385509839627287177251574137276081104081162431215675708834503885329461389723581698780994913979452720161448507937278765774641809907270933247163538217189043427616352331683444357669052367667596189859492271181873313417739634510066805858087083095299678074140208652981022193460886617491390964620236811433645395219617334511707943678006606344955437059462147755907855296831129946656812470496690394848969883346164666952312963200491769215135555246363025334311917119152069579200666400024036576927360698234069485147162002717158317246287682653857161326736999499278478514115963973071935662220164559130207931859848596075925898294584860147386451089213281197568068731439808143950419646226225928212510904626703191913524216357298127066157601740910144211595998962222006604925584070554000958809290728787881602782392848813873538314482067084438751765801077066322276272812048828699316374823819768849329066535690446227173281059593515587404693214852496665715753307638285855525635469838453882410412954469941283847613708876462997185540108294992852649841927845586572392320773798737814330391514451400248233271472922406790611550239448740057683696480670862219137756415776504842478020914112794125089602424082857402475027868212449488890628373848382184140190979643564271474448407149626370861441970391198980067861138997607607005851670598767671159505717671714433582879574374548366907180487806237712338892817350727837124136736895593874502376601017374505358971121369787366915807889527571547070686831036409669852592002065004814751408856484901094183059442460446561358688847417941177030707668768907458058574175147291435512835421544588915726216920215207682306737776112253879897116407926471134313832235606885520435644754430717562448050210303703981205282085834142519081912478245934555812861734965697557183982169294497941613781094941265119217848560811678308046178315273531756673365456488720120361532873910850932712121539643780904610781862911083978303297818344148123422230200892341192408498848959490740136920016816772649060662765264362920960872524562686042322712373814578733766107504085556595273590073643949064454653433136962749564335584909722913139513146372521169763191635774180106371822704661826579463888230511486102912032200772772699848425946652430058306235339760558036712194694130032456201306213368485352230279425606977624128460061023656289749568244411367526027157667519311417106730646472726703916487817153898584485547013082389768443156177060954223524527254360011184319932079403790861678379985018919391653588155965671754517860224815178923207018398324116242531574683983870021294923776113462705350352581897268140103863067395029710532458581894950101153379736753574688690905289493965586172852555902244072164695367804326892284891906982646402004796960839688623658848318911307759648143569317822331764698479865000041730226098224571344470760691003284195729418194726408028372605508998508961757540214062576626357489613816500679033366475871365648263329550819434120915054798970659702826481197009362727988810669249706032342996119703992257404316744306738774292770554283633713525723050317816509960750359055521918561310569535110975587965994716838751122019059488346697395950912504575746878659157660366333155236973946040192207520304613847749387458444037371036127675423059593272955006997494201426510619838683953410207014885998511094949617772506527723222838569802650274893373227029613885123539043859270543772299920594567567715051900882560473865531556484032441284068162078203564091745096934513681793969782557394540713085195489351076783683714589849306916489966647764730221096891276821507418777988053542009190286365551395259414710308737728687466752732934507979779485451325851753369094149401469552694511240442299849866044882153575715828456962699516389802576620905744964841808960286651590248233335473028583647309416499237920203441429413715693516790569734234289198234037253249814859809608166158450860534346093471139861861446047472548633230967214892629712959621313931143695435124502814348933377880153411544284050549446183875305612792851217108085550302104450405091699311237336758561633376278850620011049708279450520236403737241352530343074186016074121476880319110910487386418152395345336970526299358388485446426823018048176326731666642906148594844367369045218199736044489059500400601689783473256148255974487238268418506175915485902735023256489998479233263325896574741089788970932575257663661580653242712775435688700646158874430699879371093592527112478621295279211143921361419417743798826217991391185827378678293762793845838631800213621333201872748940719503242687248446448812576906499035052405050409469582112461507945676031714722856381525941320983274149398154596801091288456643252708985250661225571720509052993481063501929343143533611246286941025009827471901585746180259198694128692090625537768782765226993849846320413062620416086542850431692968897345272255379350548228430213754936805595271629726591924749459784333435891979448909526144988274830364896412615318019561461042340389781524487780913297128726070642443944005244416284424894348740107960304535930948427439017123798724040551504498805586664730858580688510572521053817054341555055835990801165450050412743798930162532649968854818791485362695567032064461982695698388073915874946030915602213020548313656439094728436910538952668817747896548706841496484323221239914126400426988158531238459609762073649115318731496054946007460824328418935541324855348627834216692199840747752248229060898366504036422836399655885424026192454259076365933634251481288850715242247929177773982337538483887417904698183094167418855306361350260012385924249064107495636625489838310686312761841357414446208278757967474284703762956947700500634890982012451785430810160978772154483085412800606543946714493912305022709137108643977213396488044564241894771172189352026886279215354749268638123521267439673777596669992317759739666304754402336633364042406538205683787668253308395493753287738684633636315358544255549516204916026574437761728109636494017495954109616173755764277214127820016028565041192488461562041055994103375117260527404070326709639453920812712559043299506728219311174884816774126720150367785488764280653094928642199674073785992148827545363450126225551562006252460846079266626809132679684559436293311109851718042359215151960096260078413398412932613460680738834760739031863418607785317286794292646405558736912504952045891305773427581094524391903767727553712925203175712785605548971533915391087206748749084929043711348499114495331211719863028194076921432093838914097915101553200421746005272606148434122752873208648287163534275889943290293994535804451935152927907917231674921505554168360992453590056569157592139635598064449799372216072849690524602858818593692327438983779786565990938363691192295685886687129530665144771828034562288732832945700504357091983083405068440312556354163318805147206080857068177574383380982997345991769676538512284872148336656374738435626799669052880026126206091455431646833177736875166747769369801686169229267244135305388547839467787764212751495764172829440760786710512490989978375460155967138075518277987957108100974314100054443872123739040849160514982757428184093365213678514606332034603239498879637286769923980113867746075955141402229004803440454530667259027333693304089800141917955832243404011348293709498452687062928366384358752066839758818325591481336865489288805328729492149306653828885952876242220773910718833668364633539253859027465407039721893181914520260168024140651455151344419777070952228674290166047242880976864439528652894778872158922471490036367567482073112173057337401077688981817625677294896195655750871190733200630041475509533991032524348303119153119120606059261772984857239939937985790927609470154515719927129579697475893725540955804790212069264898191920110774685168874446388517753762853049611773399156439287586010423029063176534673046667530750468286908213772469195320934354012837880096153381017905527031754540300395577178091420554058117505425747344009736171643433815675809485831240516880127197405844017854405765937941137851875008462287458730106287600294697134010789211761388975420282560906087358409710267680882297610869487246674359811011443693325399369426231812136350471686207176376624643423829370272343553184813308240853987630998651121484683406927883469348694293956791201452821753009909801815579240723453467776619795789158180584803981182521382739362674550380346373157838618179654806099992168612401161428978304523603961100914384707223559629812898715876326503074692800219375988713091050626638423634196749862735024860983789068298989073061313594389217428370670204981603632171471801098234352495534519064603888544970417563006683433394368539299500950082935036607365556851261449278153054830348949330948002837178595124336328164385286151739450263884745815482322257142885681972731807614492894243895842704989960675596810695040272810790966580919353612124093131997023392922997593409903801442941486437655397647715500191723096585270110866583473674969068565517197586382897401206025770537590458761489748671765526264337151575483338576630350485142436423153243146342717122992049516974450029210846100853528907549642128053178089528282772439128650111678683399774619918028891679735230079186047223824751092156223269978542722685866610974626803231033007380865921879446763245627077607345605298426303564839833862981974464238426162342998277344737531780621159458561964704056496882368660815262696447531587158688652778950978761866474512538281825947884536373641318355501590443881326581097949949808164887515638013138309110038746146748983370611550639681400440560401461734321913460380799547819550094120834343160283248532369368620651994690000306995789001205372355977185145536270549804780584713829870804666099852358984817446752009577800673020633863432257837796566463183151373811270847461079713341239113382723403153306492768575195168703601654372257943706710383381886853573983729402747979587887894172984692650737098775533797885331365964046666666736600946728670225721465852592812057095219721426524585996530850274646172941043403724912702985262542943844466766868472364363801414985098362144776447516856848479952315072284741731232564376206819302388829098006674893248527963729535602188298689983441005990723832019445432592088832358582644903050424227346626263601667121642415890428548668919184560325760112222152298747832349817205207658729891053355819433028359498322754118521339554123154182679728761377880759103063293887878847133217529413014455226414105053004281132713485899082404151774794438319374862499091370008355421767678829671469781919857715891734301190137292628443687235497200588599640797466461484562236354183424262074819321006396953521103428726532714994905695995877327538563601339210557967708252689050560324820248620176122088756727506377347441191831903011082041692514495848490265098890448457026229715046560963033430591835332254672771532740343606749607269954771599374252274841804471180455634699417140282789947674412432097784320435268807781115410547240419456601211111720827841517745905031081942506704835688512459398232695301728063326171680877551841459585543138148521404029543001908650412088379717185504525339135155345298206868642414336000963445238254867572214339777852848985337481478446016212955953070944155443425137089538791241300060796654255713093068782751719986971127107788423714843328388106278002850214673305640307318115327995549492958390430521015108854391809771185940776604557363180837552728178839834836183894117076474514784982788095094862800138107235943143020001532548289266186857359958764393538819109178595529620178191157213602701881283677155274629045721817896757200417077154074545739007579471697537750432253609607673486195426520992092699714627009289674944390999769881726963263325544202508261772545212028342334620633243399452664934309235762939842794776007783153659786432546621565972909347248852511833860940581258127548319296589726303562300347234960594747902279050088398278770207541388334601607122024549173583151535780964575567883750454786986953934566506354471890430014419452867936044965772125056975598240564968061204056286562723315156984435473974572575028703628443244051664941806715875940002742851675958928753376322367101509955241853042019447600606480716297192335491570762680912732385193877415523298217377470782929039285274469732089360468279438075884494526661735409611619615543586092103140271309521455565980129686179430689793890295870317403488087868182640984314634134158659373068840534928692235840071202968175507966906719082722943497691337409894406440845551397721029767266494927819912695000514015118729879618780242448779329891324958181978878609264965731977046474081246051040904028339079569339317366936360750785554840387489658909962380533701587743782287485405957938828596182391316252004085321470702554421002987897777275019832780544395584071184801934319516527416595328144924453955634778431484342604247765957144177423634597031036383967358844761461322719610321029854691883862758361676572338364760135432832416738313183413601092545896021322598445406801740019677027063566018212767827394136688638943951762798789598986496413423214556377026410392457124277379116250010037308613344822895278983536323508184520972987522631476001553558055712093190965113605257921638166188404581375093963750788810439964993196247967109658275594462239874138117763394700833676720658506928368383678438594392060321346807957657906780870151217897541058686006219683446866611391681606868042600532474611771438531158133656749427066413085563231483396461475328059558016624652037422941295674617072615091354436415936896813839888278388865494812952865659121817801749638149692844447507856239142821812663088939868834762336442445828783280035537496338228987589240351939431441661529444604741579006408765871353397705205384809800634293842101131100402783398374110838959907291953783951287861520331176648540651986794771917865729080298746174402052178895862117671141114715833468191420410195704765762955268428949990740353974671866318167414112008207000183388949503113677097350172635967457953830524288577218547428477618730625820431916330433767379636625107688089543464553121986553491249744158990585050986496828942394586743124998277063254976035811053008921417448440925752057559966901037574660589432472633050804803178737455185597590887837859307721650152640917236092992098663929559387927181121937884299796192540093013576650912073496190157199554155158569143404442414820193624403070089666042467857173924592279108645884125303651644172640013905477326826094875111712590298146382504418371013016660603489185800549870620851343136517393439611158852442232935908425467844272473686714718145569851602647055736794688133504500524598384380467350148629054939826612546071047593927374711358871297213019360127579002115204639638978008299935822857506539404553536419850658506663076651130209882366490297336571063867624897513459991070645786093477733594840137467218612427790519687294153088475319959156321312986902935193116707155782753864757131316338831425184661778954083792073061366673220567937149488882897162055203432769673117087191713185482899480120486344987355503013732217058571265459436296025419011116390744959324191780923090382330022535114257778000110536989243450270482248870529823731875700426509803851695104420376269457787565770454395741896569668336025272748370192206673305270029603856536848950264297447325051593588704515874356601357805388924754648226034703645484789846020894468427380256131031105247797083744153630428167452355247830167660090056593817424722728822605774397093532657519068328791608174727680543232607144317656565001196281835627623999174291374999222696594397929550158055162156696900986755735656164475654534539223154770510160017062079492082170074795252910308840350291091604800983927162120714509660444475348092579789288001914454504438151084838684922954592414817691596603891291041716329682146967086995258440124606192351084249409232824761380281132261099810761718855483234173781917632778358790963782704211986334809704935651344494291091007668164243748720992794346526671051653323648106208362349055901660968175394219580366771905509541446138020719752529557201018779075124609818130521447154372201464900666398458744788106227519111175359635984391228692964614500342147660279078210410440192230988422126473737693195769326145198906626173592050868124778014251885208766754510606375320570344261097381116908709347919446718436408798997640471323112402465923570339788437889734520408787359199506822775185683790591054561176832655757636896407121922636197950126393862032908608104870357704573496741011526370696973585191946828923067366990181324035664066940019924922272252187342073471304171810868008576855486953187544136402098214204122165336810159404350751296880669711440030600675573555878102271553715443418654242123836159889242939320496855987274383368016598288563179865373067578785987544533167253778966108857064402064264421576059064331841913905189947620335177249450851468353204076236164882728119618025516587145261016173066214609277595008137914136976992375806325166385386011664211771235900691112058868678490464170914486593667617778848891509632950162152205023987067676966245641473409256176879193632486301244365885691438335136077526493100271544334666941648148020606957595097989206047550244857937091080474987297061201565092530647801389659387417754788964011053648797067772568638337166068459735000438501420866130762248946409924713247082268263109799802668752621815034416719947622226754474326956809178567900058764122177740575476568386341783378638697186054610235730692535903376788412522091512886913500451666304750573001748738721678274900036305015158455959796577156150936387493959373173044208237357386381824480294770680794979308622456732913392869156410576192328405550336483162748932476944893428005958831502588390842566630718116951590236563535635391998966844767699781927671902428627819328646594199973837513777408164935553463905132005393402951582429778446957011390851447605415938359285718107278883421090311895472846798385090503721359776826915550794492755564397494985333139322885432959444669077727361323093015798087079875049409010142064060117902976678072216331608363099866309557375689746239284637013154038076996308094544956585572254711787707906448270920718338532856348585953626487448821393416669109094696360551927032720512945507179435872379215987005126951367632622404965255983379198524488207576486233041967315840215469025010581186648375632749163663495344046615411659340621054946581460541521837189554778632059528924388064215423689403670761197111425443387961796936460383114051630740647498688059899806915264913927901414064837354711117423758652435808628357510474747705960405322033020469297338009000694467297771154501524691364078960985977354694623851546672935492579086619350064441046782463248743169391639406217885660013708194284930819304265947706544670061887188182222734969193958641155946935028741636934568559752373231392078848995446928460797717720740754349827669624393054874979691287413604884792495112778014014791639563146243719664861271156695128121841446680994106199585128145776569578117992030080363677806338103587478945667657816548699430632899122343698635808065990000520332353904332254451433753749892806714580024483171363802720696648230297217412404557794768398819265375040150124176597315423659401966907990330296877249970773221056606251612651225464404281342907491069025614495694280261261843248894257533717330625177292158680156934060089240586335417610777670052089842789873507282619533846990998445682821058587975751186345778225961621916578382208839924973893141453884279342572796390235549168541354352672782602913647912118108681871529702587696168984051073880566509408355425636312001577170416901050353196675889278549276418546107074914170057323068168405145423666046595344246267676949197466818058616532381196467636772344140924786648179344288199206175573087985138757280182104741515340828609497504424922487750777357976586551894083839074925488960491928609317107944593173434207092935414383238859537316009916481942696741309785069225345582340611515696901917086672914555171137498231974307527976995750888526183243952834467711259469561326605911329748206158895699554748609483496630731868607650442637792973066538352752910830135721369747981989325520497397148022965440586685353067080858327011907259753007765808797575083960557311808442219701149116276882978725284222820541876708108609339526943599624527452163635272746503817064967399167474239106406323375526940986797473908164871681975511459023511245072503486547906263700019811506228698401860329178207179387230249174084303151405126437658788634756130050500613825686946760479167457817446746300602622029726397198699418003728075572406560040640727480896791736048544296339948916726460739073950636436277403759333326614975172379114817042901118030987527373576929684277046827014647560878292319116021544268871655709488033041704720829973829562215613402655972320191609866608213649917688359864241148443962238963055078653503824740758030252684017281982035250360989686532872551945541381145405086902493620908025311939113407383872969205995382425931308654680822275111078983085346524916727103537610239172764521876472024891579492686647542787271081427117847232428069765632588649733531631537800620242538512210559765270268882246400880222444835189602514673330568586348057750949673251919599174926538249359179753915562014335734343657933283459930139986917174768702890617659254091201144777565306861755783968044377924093645840799177619060146769781106193641415382674534660676842676028582879309111690241058337232170855084315570412342651295404811903264770747152532656962296423862687723182905464684761240066350886547302746080262425459403770641509077241923925880807850767798346567542881444609075990521593826954494545644253673400192210212204045097948324334760824471997929131082876600320676559061302086769136148821376594363289761305161223864727865174560419360161928909139342671202376596462084235357278163214932512449624709232694370009520339841978197365172842599993143191131604437928274268148875988002687834489277184526821149037344143195890332026333108054515818907800244680370781555920917891595745950638514865101753920394841128352467600738695336722976022562925779368434444815782253872602346310730702431102850241557037156497467566621318427144255798259078018418108734602990928714349848987948217683344824513373026835570044413297917202303993639795339895806320198853986599548568055418330251013527290599591829962275315532383916648557748767008194705738542890295516440565357139596028280229153477109952790526496754322345131380163034855350253065635177555713358781463776951641244524556726244635288848010011145772470812032986651422650701664788786917905327328839384601131021502871937741924716843568531585431427608098796424274908404090678305566106867110754539602661504987081825159580236635019815702169303047173202997248267911860874084149164868581104860000715394174037703126359528702185930250412992178356772560989493575777016872731038175274344439079368062209739501384592230941483691777145326654244325847867768781180455016878534568131350512713867388841238569932539740643165175709999203456127513732288173224849712072344788444573052747397582479869623352247620645600733428146125700547559434025138119253699395819612747536718613909261272245470270707656529027964595006194246385809819991365913655433200004986660382732857933770915226906328640731333905645330550206928862198688389304198830401749007948642715358861191631115047477631860151732382917981786320977692736041029926262718376125595598636518424845852401003121063824989092052105805972654111835731827860978005880498811477238694406637733440022438800645971157538176106071595089818436441771487692496393410668914272395371663515589725555247354466322231187044252475658700217674524868958616017624820531128043340892339031329231919578850851710547502765504307082810942873458133902115380703626271919563445927665094779040496970987829391854965337158995320008427784628488661035431546695265443804993025665223647892771582156732559422200146103297591532016383977774451092118710411130797636836691093020933842833174307318306656828224818242223287184341351882618942235663397072769874505297548821655587894093807087103787117908509079941200037303479758519260269584091210288738416014500122655808083204357654730054238947029627153694967247848840170241947080633949605505054312272327300890766630129960645449229801017430168294046319013357129834883479544819589324143762306489895059328535220654614868231812552912539456082181523742806534524157889099627813654964686324460107710520782819888838510433241506344244516314754287614632815056287502609988894619285519116196481686324003454153914827882183518501114845808633242011076463523986749142625866482516852287372048107575082335703145094279702339592689537159547222776237197587860452265567899029231757289093857011832033506935673529662498840249270398946524767933292202109505747731287100535981349882642643252353567581625312150775203177005355716563583913419710340840616545389916994618960079355497759721011698745611136769664387020817857738274908215317411145430287895056600597847003130701759931436672600151996773797486591678341289200779355440598829468750345306649601905489083936414114392779388599239085788878160810923061733442541048590968542582865120481692385997454502526223083620521935238660297735747488004421223030491422721151520397633210124538729947846186604390231930774755131672099465429096163875067398554796305864263947877323292477842190327782065087357888033594755227790313527982329069082748061869381558545060788691721198864003831903280513337544681334517341580807680200958212898944561046944802718295734009720262504142954146003176187044252371175698199939466269955625039663127131360870595773749708648630612177564294761843841757710876413922954040469556538404472894416779303430470945032078335128941241549442656237259262845577684999003967581734247298664533402309994427988657043761997784213327438593607932526553096385350424448321971274903528981728380961672785058647282056355980029647456061701225160146943693644448650646283139753707092189177800771585884686145829071452423177207876194820249518291434713142288038942945055868212337059881806734529300710355985189685303227927535985375186891180444682200092581356224108439428982781102550553636658272704736102436394696706830896904685426450579221826541895717381862141652710837022906090572916798713822032149828064317679572990795952770968511625593571485666825051920438190106886404394980516429306341423225893706780436067211836806301160257170101848202390974882639112486302882077952182477910015133736213861177690820862235194816301526646632205077932968897380809863932166866552528615479758421045469522459811291430360777540781060330386194000446356553918155914228594217228214643096595131513170886699230175707442599953167492586219946079545423216431298248065223018718540770681762111255298924425580568101833198497692968357153445378998936878221902804090497269450235888038591453147035577484306336600596188153984041790566258989729551440019122789592404288815578359590549340226536584114322089870575142218944266960419415820565583922616368756154368736105287275926376741820548858144882734662609212570550670950727497403740450259362644980612720408781581913890774955282803383490212785351408030223180002403837019946748733875521002824291785635411350420457660497012989356561660797665690371483595479009471433449704337131394458775138541324568429927654107527479350822112880849926772968586670343404856335415869439265416433686496909824989091454940955511220050768595898405460547291032430183827273946542068444724827288283115205693600049573447401148624619201548707844294315754389113208260304385333069053386711636993392891855354798090162207864225592764046316768649011869526408403466041932521548805342803630146751800317407117335020157339972636317601140163373434085791390720057096322613747815069517116344793134188305792702845672431362140114240580135070605440879288617339623554537810688008577357615360312209264197386947814725675209908614666166607934496051834573439937079486924494099508564877522164760916431775123944603633747968723180120537194668529460609986331770013622876766137802163650302364676760782049443925893265123220512537881425139978292833607591558053477471672443761250808303207079129740973816988735441636623555202533171197043791516923504843703050309479298450932618999632738176865395428670739526751654517072578849646132921463682942328441221825337502259614850887493990751732442110719565922109282453859110319662222258080572578519472047660166783569310128267827890821889988121991054155942902906129292300819072951939931088724947222525515893133953723530416808433438353638905304295547579158862389351542465519741847508011128257806192620751712304933295565227221771490283071737921712075790886506703554206732284591689649190030396017693151704191245934228909938637989056939819306814359007133533589362799666814699662233246565400267285380772614590894465507464707551127636992032571610823428075523125789506475279699883537849216869673822995115829524162588727744703175180138895474068678458658236532011457962830159279222850631459478974514182237128435099997742049158107012119093125724711336123403265236385118539410039196272026545578902963031591920317923062416056211711390876679249391394453370658581187337802880260027980357492695178490246921154688311167575526754297665723465727733795582860470874811141735392183289226747900539184098918956098333547745158012052557622466141099036152451505284909056064956743768440964404714146014569538878717936974316507852395332084273030413450569011516698074300373188268440734952702245505239202493112345383639062826490798034240164959835301070804506998283805137201768757191579845760853263728893394183126984742503705892605972959426020006943929272265424263991692843418831291316746610259540865900339657486437601713517645090133235706757558359901998429545962171352921622490620521325581318638451732225921483230649304593387365235982198796335711160067998246308599409533176519304181594699303230720698310084719048045469142623404144904013451742621451782470379135440077200733316468811187915066121916598621330739542884970923115520216104967884682098271582530157462076547753338684706277870983137414646702899625028147608498066648849884102734513654520264524207612026873211271597412831776402884911140535507141748571183705489333226837925133159058549841808969010693336057950738420374997389006288325009993105832670605100818484610275228877649296611119115317024661751105098624059831606557759288877277060201829793035978258123658744272820014788213650678972629329889945348399827373359841773524505987707853705893844221050659798047600197811823204260211615597350416429967535776279318231246679899951659979524837468519486834558611384018388276819689367848931746743317315722419687646889861977036307048424924218549387381723362331662237583796800710893829922039496566084400496327299922892316435393332268718621110192170512949413279974776341116595780751928069309150728054608307330025299365480596388577494400335285392242671671438515498266826211643059144647211555620671095830159275472299690500292941049915513677095532905549355091203905540800648598591475906380524257953539287555208861669895881351435899370450822068326890380309920186895910399560955582041035243655574300204137880212112523524469485871242585883730785204213350993041863280658578608491696827856454997935434873393555935711693082808491147929981636137951264271405884813047125300459682826288764786007133036113228301401221066606081855726105399080936453864862313461354717811511668680697478893588269394751105029899959657523371938108729614595953368573924208499525548867711835051119161675078689730374405092240629831033839391968139731249416015330613445424790760315416533117066549933612334047435892203858146715176266347954159910967327376623553948325512722238182936195852850279240075729097706977461128613602813269502161803378056156701086424695830517934749076056363320547331551425256301357053839529025559606081292444982884244042712076872780273414914585817479295690364887702717675437598510674610006797317626698101949440935713351084498063391814768179963487463428561706653049521518547735177154472541360811321003394772355901716775877777367727602358117529944820228710772465576439998006427585734305642929912776230780367120417097450046356935363062167575536746742401457053966786216483719217847698441454060447913612351739875925017338970822089303457927049361365816068933737019879056343605485100809973641790391993414588578460002630590076151339057351935363859330847116537810797851338733441684313676258847869078686919538819373507697612579611564818190833441503865436367723396896735792413055686310012520168668688353166044167070796019778808006465767629639886431403519891295143424900751531652532126442341420987857775113420358673990028619904662645495768410681570902979752321217231601523071063479252307760589956692821313955852137768332966077929075814375045440090591868312565388299215739468122304487635467996469761655819065329447702154829491706904235090676579447377056702304256729564744272639081989145315883302184278054052208668205275596527319081481397485372320227177192767306777956415922641952748659357131971450529192473556921229192929110454803501773162267003368748846953683362594477031151540715448436847597785123065853280406209760393217046237308105501933446586994104258538660492354460467151558184212821494873497822897834072392690555884616844014496466135734882793799452769973643595650689971343453546637730315668734424782659843111975227508105665582963895776947512309244126347344983492712292407829515163864034694496249803902040731749496881625882635515657831399830224244195009075682827858941089118372068293966271342118993145934660554390580334799795138839031538743672043964278281218825749121606245224341443504011407507542382759253973889895807706384252471772693307460976173693102914792399603626983015471893092784924413972620303209845374778458803195053901239197294675388948774206156351209205967513968557630623715840420104253917441779098422257920331402553720713556144062307363619176295654104717697690897187414954249207141843872363734991818560160234618992156206812573471932404963245900717274054312516444424875779555833132957282689847280063353205502474933000846492492541971538480254566693007358467586646696004725363954243347832937209433324562283227493035802383291769129094556967414417406499188559450385017892940557438230918771362480076006552601567897391076121102038246963122628417279867425537418170394807867513902556365255188623946233295448061756061317054244392980625420707363785635977481853751005766714561969750995162034164906171899740050765109153077933053481010648926760303207221577072888735356382257242677253719514570550438072353495634593788375242245764444854129387296111260968477556849063757624919032135062622373046014244857269063255270557167806204494389278871174624563575300742325241760982182551141657982138764797094156322071798912181078210944370187113997418398910702856115479229481657484230404583366491000370310472959307186525567185326133705546247395389183350730770263834683749448025938223117220399246728955025755416337444315034616423297448504677590693094039096829429324582382202836480869954303854069745529131352604684932267884848515817570153923300743686404605662976679386576071512869861010869232632179675983310837148207133119879121360439777287786029179447296953520011806758255430160565112068250762191562379015367221565925205454599461532379583802894404114498513342074993774292573465640557118040282631784166704803017420524052707052236425128484363106397549788411048804042466740470319225094897507111420005963341489493902057443859168019209585135058559334655055238953619532849037075041070248084811639366306717658878248469138260235041334327475150124186488441869019919171510142637307442715318219793823154342263219203021962295747809891607722265896993552780235054745603337440673213288413384461275126520752121915459091094777277966930215876312328821999651546838031371736154537376523787507031965555147895031401192976170292194924358551463172964276499779213334169518065725804326742904758923522867975767467430863544408789754555117678888823123966542874320033869109121683083665117902594002103884683673246553488512969740682624553900451194630291735390737295558108140181218309390380944044379566422638124905868552099132289938783009312624463003779384271711373159720219261762470010386486332254773047173202099681478177959681377945998500507815774198850076157775796786174658262545988369909690895320122028452330589797867873015360240411345196998042673779534808526495934397156712245723626752326446277070474467556683098807058545052505457222581348589360276129720660238274965319242311630438588355839130923570698201781137507954154652991299627407951810079326358019993101409358927008384459574557590215807932085283053554486300726566839924074624193164802469011223128765235118903716678546717747233591852769616852949241449770359537497769841253617146828408135010650826126103623145720488491917540057099401134052733630271804067522783701769191631198662241886873367241698435493910881483875325574150104882202672240709965054653251875664028556732721740680117799956039630198098238026449647332692499385700279544411637539731670118111616705235040502869057124908264669694454078438388577496209375181224885836734085332533622838066102900265894635938086993024667009418462015774067734925558349749987233685069263486188607055111958062328195694027956581530204339655586834786855094126079605164152912354661727427907373280367016416996645548097197314559519237089768336675422778255990830382891165337123541295675177121280762850120614321255420407023622405038245042151679921123440427036923430339040857420898665844477756001327348964569646955131645198926684106610141471065582431873482469214823387920007766408535241574550828343540154438906402346751774074015433187069410090063738970741665749161124622554591203400095303384641435653150605726992621472418760875679938360694042759064351762723709837929818497084354399301158260244104656972943338925688750120849716572054860884543531921741057564759037492913109475102956182841868677588644311866612185778534841308377353049304665941194466703693970687466939254770343371046433676976415610552886517313657539678621554190808581709311151568783263915397906056565853452889820569948922100573108999773770249739859153618304298728116143500029588675440432414189239065527052299040116905435517204942565239711648521579435744253940372732232611458744639794661710280454655326035368386004385381252531580743937751597374356613012938738133552315201121347933971993506579629655797651977863385200270444167238097659382686656236183201360046485730449469662625165097476148092836560263703012205512816975447807403260283427631181852811806423659870841835688259824046946084561147058704329833270637290614029024542596686799496888092434961945912611836816983031086580094262150413033588371221255599965552641954102350254646277149651117954998923711113372979478189887937879233846282663509687319273055022799809902922218175536425221288795366730738077285534900236501261951010573308260538761603696282060332727674757016711196586419989786210665401412102321619255239369684604195376948205625470132886678787755227510654521633288730160786192998086059563003892779160855082843829931117121658117714431917637200054690104914979830497333302097582542188927301821655184371189617152029226132545729596017929905196500188223161149568554957226573123153768123618473472737350700375794925604924777039783066190028992072553812320922636921234114316078485974086484799221666960604694085687793974566489842221739986652662576520063990180554738588053667406475263625408643273429706543129279723077781785094340280027383464646848295397646632472254297155168917852132014153274154648556009262462731526619372663988271263528282295543421123822933432745127535797121673290043334602309092077821052325375633697866335382956353891396630362816683789395171384150824186338997863245070389151771058456747047935143926861500497727497637923778673611484998868840330745856468370517031511941574882910076300410625479960836950705506068547381213543486474526429624976277298607704417897871572935008948970986086094444426906000496728368708614463170899757572288969880138311736789219047937397293149208642177098027577047620460370216133708306881534570809151736748160561416981751559388303592847137641572381298245356531138004543785633835183827663453401803125103067922582668970172047846695834070607488222623203264792124964693329323651825241853168142745592325233841117151727066577217060154019294104558679376726299290114082511126702272978810532933521013406907799324537883331945625671594126812710447723298509542919614549493610194190242588380881330503536841753734325025716437564031086549204197777918498751642654746676456216953867894770202828035404381483847732483725243414462111712553974750468831470989703050065877671742224932908940574512608484585315473923567678462179048211282761473880807624964672006773944496402082704618830345979641465446009316731728135291470682059244998239404269823558339144882150852751561473272566510380969667907615050321614394072550907555356139459428529984905097087821580042377751046966709338630260545813515979097895892576608924419634965907925360784255967654253462395571742230156413022390525373429456613053384207690028250508297190004633226647868684027249803919689577179340947799471233325309707014321487771370717658341391846260585772883289976710577086970559552642378020870221627572658468270251920038760390701578673332831378776727323717769681702676991847858227453779242011464073144787598596812208671846775362844116684872572319353814237379967747496937640745531980547026990355756412029964336226340290549986669388099560900602084956618882823277028116346497245700541782851785447788404011117418776630090499495985042677395482504549643247986757879076614267192550227248429738326298276242815589896940635654258908502505143577265609659396179631599564143243448544267811449963109212072844497430995274869582401332735489264885536093281084357028587221077414874635589318213607522088015013255595138842918207351008374252868408942774832049052831161990085850430611361932074341477572976184068820930359376169228544929143284767206478784053826962175747327642697670623703415589856166094213155704826544176063541986788429110787557848505701701018205520591647793026416528815382054558592753973173256039251750184350550665095461352365837639977530303709551014025494138080141587139755765158649225104634604681481497166560539731858454106869163460432017156826324351756307353660107564279462107758415239827711741419457632560257215393718624736964262175256909122125481956246010758136741458236001552301631677982527337803977793699300866444596144431702287051518480722171599641932419396749180084153264455464819286864489018144685922760933274132460037039181697557882409637255153568739979283399814440859108726825621527704253335665607140429748007379846863000654816431298842929075503881149984826228612814528661659044788797058424126093009417683261925438858384973814782041374216203329987227222673917898002218478159840723038373423292824727528188278369870831230591580225870643479427506502484855551267996543160804968498497742461340539422630455165194878536661582216426749689661030071364333579402116064057701705246839216158194305680385272054420301329003452097043238337113627006397042800062994780239468840748375184803679421913537680451616461749185045570144771782426621070297469705506591220843383631208732542511367011907315933895000966849499571186205477621523402330633313383456862647508873196821649248037203217029207997042458741633192126954405530916524702161168900381200515751414038688900369249018210845140088545219416243143375036950847932296561201519211259127858057314394647983072034943621952463603113838615910599456666709471898756456099358542070286738664846761633065534173936003234667941392559700085554632265080740259983436400030010915207817601036897939383606845758666732748689434716739303463096678021220544856331942715370883847884827000386012837195173463319216806096999587946207897233358609877465477553723596224615084889349039310151073668203305676886837963873743364542681015334676493450455864324784892194711808847909259180250405917782812448684514670537221581048421994611649534209900025840331872576545614509625912207329521954085869260627858642426550714953533877675205845735840468350419875588209890473879972493799852339308150187857338368394404289219697862650037803349366783625505326527336157958586731402972115830212315845292615751330358755836852855962368250726235694318474474170889693454518820192338291578732568310775608149777564248652528437016545703624755176399866060796110982039247916248665542527500002041656640561432452875653920981724103570438708165047085939812050850668647101409790741471918806053900851766351123272505435186227148032396781480934908654816203002219383866536460758327255699388883188189564925202103012950856682597118013181482929768645264905508587444356339706673744147581474456050709731550080015039918972619103072853410468268176848889884795569825155247569598371259316422549953236445337265473576231390850448291742454023134259777145154921027227172175386841844672163489404226671964749093011500846175129480794222949321963749972596711208226797316214561296195833086506939129245630094615772961870032919820972995917628697638855569590951925807708518537074528883709812171550263492306470378598186308879946888655740630678749317904299953151367182367209520147166272592089214172619718755401522330480669946088415692078739088878007612987916235584107076191091962583042177005703581546251014502040485818733389878634944089195180411536296194021825330467965156082220906527752274124067684206977384784862412091524042031988438514033381132349033480034281383623285986662461822244623661781208614419579172900338627689895461158454410698860146157188428560486267028988098684819142694727285342717456056219741741742787746874349097273742242606985765440447001134155593843466277194831630255421024910578445399044285138894311807311176666336334073468788479829005079908942230702224832154930362940036264918376305273856641916246067056329798820562387002163016123103082827097929559276918505402991350105716570053881130741406211225295623072504821864297783628167017190877864056944527796024664653510819896130102450688398864296872508007247563724727540739516318946733197313074968421944000659819444045140660381449652321312541333182753422758176260160980626691123381041422794308851086148195878101336140468915679680929065898828759393563257655387177008503747592504968558590313685581505174575464757386462129514897454656485089121674810913927099212310501292878660374066005771926848068600305996728140548018811589860485971224333026608884999902421183891931461798688384872064009742374709420204981617643226389107055029221218578712643788449101276758560800757127303646089287767723254511413705556548344628980917514172165447655667089891724505424010092605456928719797505977203220703102715507699937008687372750243997722060282329675470558197413135236805554752048075112335874936952224530907862320893126024656608876640523186214605929965778373322453529056756427845187231687769913216896775855961858892668405414652576493788247941866546687875548604658090111266010244349339824497587817932881616110317120607263270334987994221412392192595598723329586050353519251938830781438907610286149129400416363428580575794737112454826251979344785163661257097419542515367124442113886422773752166641069333189732515497063206859206056914906361240614638411648012137235038652199331264074568883264893246898443071040833429350009976429387486326151960662733731104455564325993602341578921154904530362561530409065858148714317872713658800523547758813914038053463347792332235006141272199814275982651272435873443514376499611509763017078999944838812536944739668509794909659092268637467140145680265897329027418388705263078584482982234136173935050147867461062559245766656714528529952363856550080638459519166135863581945703328923744582828567763303788970374147315044136006028127704675811827999966353751654110767995339468588847150240904226621063445209592404215463525510242795329442899166354908764201329793242385140927530201594260623639770477720655336662264299082131097860667563336189346511378292032945886375409922792885072850556893913372765535384978459743440427702776537283823481750068955567426767004941270699020366141808391605282655005730587475831167130577758346320074346658172050899845970914767606210760595233659408433962659625222777232388381356502854862090125641641104939005614984659933071811099992662130085848239777387865649071480480783053810603049939233484466172283167597026921315961418065081758676893232667215568648052743590858339974473450053372059159222167716265554044631939825595167377595877744607909493414154853022683976188924821281670744229569153289918207346857113911271460587080699050646954629775707542305004319598934726349671152701085645494711535215756843306133698646538229613645764559910228081173947558083046578054170322660540448848859670953187495221876242999201115188745326306028756662834125093626556122767691079552009323971752161716941597518110196471703918034962131383504666903866656536252520728360651652763320843434639538174316808315508011063296224963956222715487914065046776626575901175413781399066818534729373481944195152859154114635725350054028304425172617042101071306562323733649074393078544445742135698363991126608628893245320235654267619864659811483948704108745409864530728033938597307955688211677671651682619995904680852362687501470255922041839771777594876767241465110537009012522779028681357987498585157867625131911646379660893770881384316746949178241126112597160025210567750109357006218660163880422829279204981982194998105820541254969309163294621762113278491631423619293689795020748236547041896711257552241417507848650745876105037851344260279408992397097592482306571059014642654680268576466818595041652345582845899327214834405948783078982519488522860871908752881788375234995561113446641178386939619257584718007649224465659214076696056500643419955315857518309092579117502668189192980008563134634906542756662414898644727803014044899587467163357400914313914851587632732385223941215688366468129548223455351179984613553534531886428598852467428347357715026193350494529819781882311849411202580287009558846708080117529375566316596238445381731827632299567487344449979834807869721457665283685674423408511682177033790815045810763497443449435187879839580077934544131121889142608926611856838006516838062601638929007674945498317062453144189493451137339526287276922985174624368154597419434455118869816767069162364067410270692450441423246877354720272076849731629743183845669150900357559770934942861107925671159911465502774697670164335770039101739858273502410441619441755818818333572728828720011550902180387734390376800701176772089057297349000398595140699326051384983567644693093176946889337551426889113311139790334089156176899869005225348274880975012825593894333063002540107124803576845744569174063646300842675999324361620727977325948472194536920639239805460805905718678960040219294808949017968335813672412577255909989084429255685981618785936522946303396925231689071306169033751418331497802046482226470115952250236214445616710518752151913248886022707593519187084185365067414577554599532999028710507570992102051114552527142965378562023015786104251005651345145712149849921125158107368824273936542035368962474398294494967109941997894259049700202917729058620881261858083091771368349052290680846280348097865010755856706753736753115973730923884736871368902863936836917226144869780138829450346797544238215938297356750477468317150665074721360124029436675608048786814856210706132115715605352712592195471289096456260011041209121857052704516486344958708359490687554340587117009185067756357001082730142656333335859154615292500313294079225197472465777124184346587325779548004610966754508864410188105434585725252209073701375397224671724622557787266463974334933156625303744885077738427814088155999929787973862336378378377387669868867781772426396043213068787636990366641422093868637987504640721811887837711108541327551189298916912694125448897874224684173502820907397046275114021911202621165155557824933059153256527356835231249183711701037805049890744778819594644422492627096605446995383308474108795332242167666880709573633978830607578225155751577215910215119397135105003131580684232277196032860049248074096435401971304664480156453493887594971875408981329949855349965443784061869252713281863472178407555237674372277995493286501814727916873304916447060648111981848740952869372013442723981657914234365773281121963546714115680097343419815643971589341661759367773575546895629683894913959756311649184288393682701210289204924436569753350347009590479684260110604139281415576580477937801077646980082262839135559986671017192725595153240065356872028465062914031137360898941415034307361169345929903138447788138360589960034816517506098360363786764785273789232035341737661908698348433912136418479796097707724509600873423881360279573229643196931087711120886689587223848314801627544636395320628798760292878401094997333255950051730233435169394859081797998443357845290040989446961231760203549705418720867983774893586147022808079687967531867806533788119504180525658200107655413257289863707998040845108943657325803598097405328223032280801372772291080587562791890245200793220222399914261539911436734391969867968492167877597424333650010423098135427460200191295005957598017974493372012627545672364668361979569904688269275769044154788426473090206138888533139059179921294398461148930960313787809787612451460748199833485242265780929191979841514753676636564631209337201140922830255048671574332807087971015568649799237141539182954977435929161818569765352824386127713390710238212387594571635219998522309511932546274688604242169704332663240260563623689641394504955961949651020830071891524946072867121807681861069178634347639669589000174799016209227544790535078611600557228350695997839971065767382210989849341313405150448246858812850400348846543987845207266568059602061049627836555326362667845133347958791396614461156106941740949384640613226449228508613221607432716115684875657061681623951561067676900022898691974424254693195286128261498732572652584769803853554927395542705967669989973582554753803099917475581427695005178583555006000998780886734776730648077058822409370937244776759781417114685428360799442980963868522760591277881344742542868776494470190857920953421401034622324831266653320894861105338129074600343335803755030695559501702029605042267054526005661686181884689211710187982332637367008013514209019361148247977117611186983318131109590206709511658681363229583601949222327916543389551492555458363810467496152547565875850030273884787465274859511925882513883096946070882926468863764938965525202251119432251151706405928048490805562975170212371650897365861422961779314922450012445827703957817244588769743219333709736877327618728594828264942120483042666108745110404533711060509748541645940043009730353286945865315622350249113278314192709042008836684713054264696088458426399296992450395566013094826524721993197992771817959714980539093099479385243076936750120198348006240837612232587332587485720266273744420571799747581869024940130999330396318652839543620580805512961802519903652049483020627955585176481969688620421176374100488101317016041217904691081799185078408545337000410939431346563988557586625350038003451737993056723118930395843680964397198265117810063529415415670705455940595112471321326495143531212593961011307903906577930418488585203529827068322466861594925423024854764337697428279534261950325517094127339511391461203095662449491769456098153210711116656195312262975539878866736170493424203476204784335488700852011398818083717726235318480270995548336560291254243900703046152022507668812798335000953004136539690514091994429778213214916991656800162253730561124747595969138860394169861359624546144660590691127334524060533845230712889566941061749619324951116317586603925502900878715439907847777384315185411645837015311849249629511828502572849505166749694770066835342507313166982881512369973803621568679201620955210498822899375957377906711448828319774715956918593703539488575083272469522475472090114958394733594483370354657956495108683154396501843903715321044626620991305282467493066481652101239728420003047203793176502762778831556725996759183813339594004538389834672001092948622450339513797845429097476570339973542797048495785515874661410896999984844420458697942652905669504364184535787159124172095630125777918822009626952460382921927523476284291078870557337360740318718504849621457621874601289304507699706512069375547295214445118912924289714283816869061361013972602927613138020621461803686084273443858952038362520077733016561534455520394211611157476681837255721945037059415714266738316175999857123135770736599485276250960989546524096201048079839374318279567335037102793790671292410595657837709494215712055310839572223763872821133761119526185723678486400794051872924569911212165438843531950454346919895373778400510259098658611829176347047436171199262162266058370034968826100394689305363348890767565810111304802577345977223883107570195243078959880738404032534705834781391112667342871780854125142818234372944389253231908728326101299545564588605796245401987609062551758020034098795075749076068577827195158286685980343868757576524331854420361875182912950398880470473890635517897908527039373864469716269910796917941638169752800605516200110058212383531107297242550399165620786230896508825596417234845084808325037659310105058230567973884755804933094166247849138113932513898600036832469331677059172676740517200682852067978272063070518561750862343141934339662875925491841085563719497453606971936857641737177566571727459218220345923894187155698606768799896601594416898290937904092170018675007970536272958757943937248932018788400157881939462721956111396712769376256848531459636993806744187326730586059837112189142324459051697732345546084017916400121104990622527325199784022853704869042474993783679139115120911897255403515771616472806380578036688276789785774113402801997943533036737885258620332494618397480237222892457549226487613632385615797310293597409377596118786667448246048519058560224449461257257789595903189752202816879686195877874898423251411030994251599973919264614046423186433722424509805217567445798562265025460320098075105215441654514066939326981484387416573570124977147007274520391638957629414970423886516476946264621963491058817403961048415629288272634439189833249255980169098254494275334451117251886564497928121903159507364271674846968183733733992139389601341356343884081756462680445437818624202009915606405369386898683074322110690478853419638556609492177215787172466334473878300025231688935262284894041187270316243918531577544382853942745809601118628157726528883949290826584441452755292931158761027055037336305221884561074022837842177695934920030216111509824485998881144829484869031149172300530925961183494548483057641070808523634962209984653649722376631226692152607981636306842312072161724601558839688247146068424918139242944512378863930411378293285643069451043138890530165739006427883430642345550252758921204081248750809625938676990966104927499738730918666971444649881360956238489739653354256939241392559816212750047220766508569533085571776023914694589124369718574272182007537579698157112084394591934906575713182793469433834620123453587238876568139897559746871165557583463994924731459938933525019347686594116004210451782081786213461119631900313878446201361678325586696178724996545733731660908844141061401861892209635407975873648995249136236307346066666976603742485934708576360196714411722252233400352724222112254197154676064051652465437450546524147506892436816481549837801901747831712054558474642795140021139397699152923855646953555758612229105678905127080408420113419513228181701919902508999613581602754933124204436964421311138811766155632940393395852349504933997462543157423689395582987176875434111993437916956063055091478408939274561435276371073157010304169811708527034632956756773164232318103003511121603615357833349952344521043264869186813578971833074091317657826229037753049038621980993593292316860304405476978997257664570830610969766743666656299054548061516742243423869870908301207356456838360010511065697720636849731765870634083990891443517829071120877147460961699496221853614446839272594535856951007210125133833834763106358668835576780527320291988218232964483428281364239373646330253914196813915782891167311534776395304073938907072550744697568428859044769250758536928802226069020170729567311258027428659445083389104594291633200351651753025398668050355984214812813911641776365395316163890583298413859245847685076044925962157750448984453617966282333209800394774406464900948770933881859203867495388049934725789273914928303456436211646228904304507192172837575189325478754936531611774669114161000093262269850797293481331296317883300790894559109179669449690664111373639423754393013898722618305112695611802128533169941132415692903403569411078844754409137396922848860804477485705577800287537312498517432029810639324355374717023978643728525276797242574775754478501387271579909344616007068381759672751654431781814039584462945708064907833288868831811536627621153949782572815679011724810814494400887072727398488316131993989051883884635337668912979381260911564571453106045129186764435059730132430082984206289337664296083626591030682548301298602013489639818387809565729888289917618108856783327562945179561348462677740546541623414266376294618681373100113690187671897442391763787935489466255406488504660267902201320268682757395256108711946330241608940537559852822724678331742393471880767384284031076083547419796018446599485504133024399618263933659616323327321312122435741161898319745088834837333464310005515954284521327372425591618148076409230073945227452441638088820460543365800777049280579709488633604885860959703179064262502403721058345714096511486347327323511469295096131444302916728903497517814967470029916823413779772640374812088113386828641683808318816993697141370459337167551076672055974888521508804800612120935891529809641135344190906543860280642195437556669699880725087880107573243383224670301429687986663646993225345197153741785793733244217473983958681166717427262821418259670030250763428114252435811784250812811515656664545604930982861877901143412623269755553600027106896403664769583237618582650121483919475339740322381511478341592409432133222098372981731226414517974126700766795910999016706522452261711272791377809489149126705320569427826992243296924149497934739629288366158512631156839658495365499529207291552844429158268416938968013244905961768968543900367461565803402447826891703807488987877099117397788696045586442358249970007013781644864867442941498190892271415599355428053436865626497848667841196826167529592207632226682183108247276735808209512315646923960863700704371623196391897105879590306051498023008322304735686848665551771639671472904130609618796880009437602321817005861160950204169073249430873659908060941390931803240812823643965747096217339222577456025654407954236377269571793252161435331913491131713176069567027142571115652151467563814810854231656471757320338257737719719811067700751849569801357340395324446450626495605742058869636225991533291771152349515193982138120330697715345844138796898030330478823377126949880946835453461200629689524064551549254604344127803893338998433914112681524010538307145365557551280826924142442533818195752224290650202761309180059753605213828393051754353447611389310249391499778126722605054469612215866676037159246729934219704517644693713022604499121169393629662448528001835215961756425889043936697871160855250466846644624042750000174591847407811045197914705151539076853072847816176839956337324412536642652457848824141407849917213919891119344577403024487692166921089702060437010269582698913919108904997658133475632393618935531130265350870656540355316027258744843711962666322326800550345591359387653261213616778130120038603522668762379136501797405112001344334594843009069932124536292925773858329323674274301784120396756101074891364741214725735162642206642992676824532879241502602176262931667734624987916581145089036047485443375488430025879605345618600749944599982876268303918154975245710820504890669576036782398884300869453733354535696372758914871098605521803909685359481239570245570735553780402253101977808448181792336808836306966202434186063811590049779594283473444416919567244923123760387608209202050112437086988593679047681555982859876136285716642602645634554212053398220184282810150125278078622378287927885266132212849181299918834766613645186082297644729940969796977372840902284415573592167370388520093132023819810052303960134812757485169150821480814587260981586366564641020065154281253494202874804369646594114942030108154683334699441734261650572764409300163323651458273181605968436665865273116540235612841242500922601231804923976727689119486312299785245647463257754007648486003148641304258842746043478595746996709253413740323541379702686682992245091930153594932158902398927219413822713959903156392248249559230384885554193258081552023933299610859377289285943696770704696911073823835200707398353872277178488746811236346266058645325105213529112626554004309663242815233185873475549983621582141636789289611560039326124164795754636514103440706636611072635618014007352377431624615170135417413950241762826511779227347863817312141562744573496330307388321792672529083372387596959849982814965528668574374276454523473518254830228439151666630541360732863412431862004327875065969601510738622458407059519696460414582716657875785636843135693755677445969320557401728468760687120497653699399012920491374574522654685672846683797094192299778192169193713387420772937598843769960767195379176517523316803198751488162011512155791375181642725914579769780940521644615693631076843160370945218427925176815157090992562422834112122878136706770135510383133088408467341775334507289864160561190321176163516553862234284429978114195283768678925602269341243234164354431905706538580722762979323325555319038412168835137127548320363040815400369849240390107474936415900441385972558025877637419395475496309644458264660127886271719083364655671121894483818448693218779191706288767822174364265698945813867918847776764274606856054437696383523050222786657728760536584104631852894589878018407183993027562238531885670907839107273204631117545340414667306958532613759087047401242960387599620793966331256820037361414800975844883417089974687450471398978994144185451704471668274205937508253449202717964853454292057265560469525641126730172789314650583867219011522604426616438895060424869093934722012676805736569269766128021915567967341040750117722777770242960111942449967642599538336349831053663141753879043604067632791122495045088052536952371594361158611037526728940835353573859166881701571296371757850146612922439676885587403233458668242735344739240375955663782768707171192796034073746217883748063241220702156823435941917456141049720106203129721001169054685925213350726111177578457856987432604217079852152912180160723820472058868855920153956390709124748049508767968706928727818470777375605798402506732662653813522397546374810739192211079367237184116634193270155291019890045165061697107915116059652244680614855574463757328439629039566589217175488986474173155870377880042518710074867034579162652282870180788365377369136386995226460268921664739790187175241048401862883882547837991067848381044026882906929207405282481510065394649446142043113260834101858922209865085397668533942631015297729329052035799169096997742315046311269622676256692125160544997068767592987976026147514117997937424563617709933274132334967881869592513920563749628908508129825809956343620900780543941738773800087413808042773895977774837822382623132034367379251872461586945969403794968840551591589932180845242174694688449227605484962353753121766271517095670216605458852320090494775455697440540676052951944773713786172399421893156704199758941802120290307460407437639265620819472463703085473500419243933413380529781966959211913367544518261219677801311082688889469988357079581616964303342426109238451385962121594306543699760561687394588392914227749049142929126922609378145012777662686181171354532377855737471626053115060283868766173048392244139332407594223056900510812470511586890017407615575277540295830549677136107722897242723215240921585878370620902087432709572218311744258779548566969996965676160953912915661144034643258191524007956280562139071540339919472105519359630418173740576982037315173504814967039080129709673840846341265878135223222546011776365177392028043739226118943330749705862717491092894525536501242932649920233612153961623624611753290199177949537818033804561821622492126420291385498617344648588695841520237704183843442324376929987232961252038729307897487806814469564124250901092529350137689058693916188591999433925118398323490713398920225801960632446758103254963504672551699898097195513461641221220364161094303876224286149199869056465384114348369436821598473916663013639427860428513990063240395725876756496978533680922290544429128059181703405961018217586321384634300940378369338017323682493951472870510587020320406086842570908466768198731179539656424180031677526262318395759256912559584727886040671901632632709297263477364544514935745932331635247555257038616935558090196577784634776331990294276048075992668673723252871143613983548541323433871752534080192205425874822743333551658707903896788380100525659426374535138862862079891303823633534412254809048243719157933551223819805527995469288259910706536980845750583932761436752531762613760860115436898460031663402683098706669798551627272735060155344465108495659834295469860526889482332820661204860847113241903989245199532007290873050755281625932794783486319624973692926833997594539354906633924974509529394230769867360918823111652953984179755491611969619221705853465953959423506473514804834978570760245044810048680419853173275633749295387143513070527022975274535884593467802544476586262102029015671414197647850600525351225579852465397626963336194986347163924608865348933855901649315171739500501519640114447030428553291809750688879553635686258610358547229584449985850192508644939361763982127841492328479498870057125125746686627033364465712110322912451034381322642605872078196096504627913652046785363422925461243861889834660151089580197691775100402606523512679762079811042021618706598694135160097531598360697977576055084074382639261503149608155538069344952189966333852688064852682276839679351513642126441188649720947445684432382177068260790940172102549979492393542793619906244034245598650279475622242341250643667753626815442806607640079037338014105481785863262031693016311309433518692169161547986681077407849273351934644963363045027237431582832014494227432938141269073866965283172605329544212325019298416049597365882505431979553057871874302978029864736718733398930432237929482066998208181970639869979997388365098226857752780025689785426653545037080915518469065503927398649504015856891575786459182203896342386716826135462732723280373331431189456858549540064223469597483508568400689886895568858356473448880763516605677888766742031915940846814417929973344818698643027909138771879167078416949400632199555172064499740998622120096376788987730009448941133046473268178081097350362182495546569484697204755468326431052926626811151723152021567900229889666908243978744363914141837035978521203264339345466961996726076729733098256246437316952586565031196520746845808875358679657086985132868727471423881660288925847049717722177134108230655884109077459331040996301913697978228415687484102566514187510165510085456336301325487689478905860832376332523775318858732063238808706381882814269961998673038360477618544292271140826291475544248922751608386735875064624989933116594607936556821110379544198855777824504445942655256620606927720678349587748862195664713305504429155211207687320706408083190210516259657473473449382100128050164900016066625285924838814681368900454836326243184033082430649058535277549536738748342117613730270433701608647192386422604895174246418917517181384513028076599788623112478617904458474508593461761813969395882426067604696936553168113650616122444733698151498601978249263250051104719343103013835002729627870362758499983638080408255615829498346012424313783203231897202678411705229422415031161315749110571291882515981105643380756938053849488044893553239971973326849846880697550205667486356657001709884389045686367015161769854291371426012153746164156384177992503001485330191275871189518218441887291908498350533507007371084192640412168666389280585628815045950506483886924358320599805346661294613686590694260950912097203328708211949192651121762001656667992165127062323566796155298566142695329521049866805091980802601583808083011879627244640447361539334635170817008499833043008433956424394811756370109490659550640518629911580732406023594045966500198195675885097600854879498277985785071022481251857463159529006013966727597599503191371798167156532559529773309453581948317530249383445821109624422721320508759584747655185005591902441608927851797405994422588434252991298305562339612115516686074475235585077910306747428404116355769711179070874438345834463665550061435080159436563092384858980528753693059804781884712499702632166413074498833521186710590591728018984349951789942761162858876831972261111491677610948618511358810823287523031116494097224666560790979095056088586197559887755396589419269584959095447827159122146523453236613908163847496581759334229566494385836035612837191096849299960448018012598080502790285989123186581472842717913900363542750666295732311002181042502260339947305198547572721839195998740356714777108624155092749524872364361177080262782290100871947288406417922964949606650161010897112384125960398485828477794221489206671695110847964463047370270213509067879812754614013074613348371702871831805745592933341791592811380214874477976579081115896284449270346273130715874807779538522349193070365458310307722046895517345546216005179736290142652083003936482488602214152360343578775564938355112472090789255890819622045217347934859822206228801356628725219680812845551786548972540098530062893391100528518840313748585000969513304705415796422475608469313225490341832873296645242499541325983869590158652539971684531038884376680947093964864751548645053430516970475580391294117861828368781080792922337792655339536732717333823953755162472754989293758114619776246145865755906821515527250928566974731879595928674780322340557016838908433596456754365979249769801153944663893991091449762210695691019405613661404766044198381660873277678613460702961007702288461129779308752740909927943022765335074734819529317953786676014866415166749107786236363522838721066986448127927429715844371202256178373769149349320953209243978602334092320510197592863824490154550184883085179385318412866324678384457014610372294359571001021608578474163486747417893733789491634289633309941302080333313401360839745627189731100205497832684763399399682250958035353905937982338455681526198255123753467270209037617450469897552640860608800421296959507769933775240382257963521078269000341872428262682084513950472339703245134948446061661276255367247832951932921003702954449688669900395984104927674105331375996239807147306285710091413655351799172134706675214817392229602308323439140618398785294064272371270799503391190827929073880098577074628501822560327259642364320874544788969493616928884571189523607061030454558190650703392370929602206332744909551987299412186539638198118302972234103915570719296130852681391842001625112171211365728603956006296462824271132762345324739117806136123068605264873265413017611008369044273668551037017107106828283662630625757759333048873803406610764833694769908467783812225317036409853395665518927731180219652976576823009172549513362728688976310855996719089746323461805189821850194551983776676527323523949254637854769480841197767886454551158334237030327420633425028208382213842712283675095096312420184479749299576058398875009279651706055904920668276369478945554707685970439327773650244186936352568439008158434896555128658577088557273292068167104010375602377371271733040402550419778270436921654601250778262874616918313102791213493104636944564214247848088909799495625640579529669844594673606101154455244065959744338897574263397756688561321405980289970223235526850073318212431218822388146891182036639335177490527285994296795787801227532630569650220278258286183451338923109869694765121546828798920386599991860222776879146962911465779545679645967682946199606141931187215270706921917484168536881087204820154304508710219587698589351045237303615236625112413644319119595334266713856071905303829607948849300564756168913540408463833291652788321430947032849940974924897186095121916348049108860549587207740945573187835155836266319498718156643644228469131437317200736910687006455455247014781104438648810699503147801945750867590047966380604107681899285148532930461575759299777825952741214367314027858370119293827293918754115260323013599651055426814214026151354217290864273487903208955466969153181741207322186915955794570535642601444820530574331018221806983167707981838811636725217199083072773069491636821092722714594092848541334847437858089352796375845744262889341585147284243888691544485312697001878239113847254862754104272446500672901838346760341180983104855457914869373106725825384944279470481913486483504755701379896206963574038538229232737070834373289480172692436552176009451934882844720598961673003511805670621008118134165437234236543379630298184899577991852593257511402052736303038426189570456072234538544506087205363599461579776334646070413548695632109688688612744806333047782062040658666340985099432527030815785403842768840108559747858894989136394688860474478553098645883448236576045320722510958035494567283291074600925696379757740082594355141858646251678314574367184852797805062002148934269145611550212059040382341049211102785797573914447902028645620345713686047512558028714369065122450897282123852791280713842619244872802216741128401204406708920081934641132965155563428421868029892861329141035419879264558543686692191391044100547481536295802367414348245444378704735290982195277701946049574266185700094387171042975423757854252171238468989708995219733260163913167949311745759100838353433577568673624421587973369548337861813234942189952716805952155958934224927153811323361362288639456567746110088685569629436639357278466324244273928793772464634140607194993365652397152203933529940603280350385942293928923243251552395341945032012711978469944903591448821902354135500896292657758669545633786906263272115608794363312876231592852052896909167625962525156593199995509496452894803540648573278817763922166606010260039834147158325385647820675480895433815372919480705672872323107902196860393278996287098647101586696684406469702563231120280953599689813831772088777011429190044251895264021972849775345981064269244776988074541003565047379578135908551947752011000943180971074692116780094851266308478116173263469858867699296834851640518380623835401150285726667798618335356278364063217818980797143705847516658306167638538816508832159025249804034872447584298308030220944428489586974168943525828273843855622491623084553049516351090053411445510713960402088914044858422006569818256945555983470313107925836929098482579850090333875872489703226163113094033328030199561387054146179645056314910359358805680131927911053988510297439360350280783959664096872784891538153507103094896139037491149014193115632416455527855053797122655076160374326163971542595561642069448605040145487172943331676234387901460238735089146726656619668868329623325270665333599370993639558206855499368114457762885309398455461182756682652025329201768795971829984036603403181632060598506159599541842700214846926332628790458849600689501995329892181579398489755721620038973078737991440353678857020995890826555745321220613161722139184966630795133408602548432680775141234839826925638782696712200146681978539222027256824882827965404526642577544066999784717694845973824287111977463846133601463387557091528613277872929626199105245422252425754702326515387576314694137037477215861237515785718972734375734720433598281860086582073421433934134106924393600739643446133001996813730544145845913365286614566355318740318755976591436770681134284326109340422532607685747917689800545743039219744187040642996705954367095114950685051870981639506681937382965032205377376302455290819919413620440618262825281988579610038402009594655646901255298215285835194698449246599014403001196851322649626975229121417211097674424384309738366335634358042336394788544065361085186452274465201800286631458222642860450519896192729233842081281346198527348880647063683926907735760579266392078051990486907224067383884863665787832925113243008837479095803262901200059072663135246516241386492234673938953297389841340629447019596555795154165379779946134591265611513020532281441545945764556215930544407342378175964078884648416085884176255673497516691693851826383981305679369469316618267486640492274851212338893418657017141718792790677210841594307502605200248520402887657542536266717076169763771185602181660003657271315503699630889724142345115103164878045871894983153842436661703083808545568334797393048969691537414462964388488121393183559719494557918672135740328250428288158076069032276780934966329657038544396747325894348460915232233174764102818460865145279312934329354700554004779766048290022013521104044495461038873846158816240148386043869826554803427363041406966761992527040987483282625077348930918734409806796579116444914725469218809416649592142598832429122785855481909271388537901117830992856019790227972428580023657385717755551131760565784009249058806067296070641489957530232591604001473507087238411835480118473500842329509009617115299587411598442573631599304841166863075643688363332039700723682524784974925995074044019620788157769688242682976384202312816962908567174492541915252334785275940172611664525366178781363854385358439207647770459633543619535580724264541183391413668090251096116422249600824559136127949188177344451472313365188093071748572936364172482851022096809324812254521973514271602898609543810465645680607619713160426312378099794853114332180917936941544423323505018861006031128308911758699318921923465022282220809557952941753288778680993944311312702880799767625077357550281700246026766732354591208662538873482949404598590642737083112689482475377550998174503307625217151242536193319749802433679218163403878013937662351976749659404834350687870566397105597996119275263405430822651849578424997675068281669617668639286856409889049480976278774033837161995067292956272014233448253380364812673438864695397816160386711866622977245151094700438600711398888027899170871152055701170416773953376167723580100011253648082192117095768290314062670564002286681489064191044298792995559237854186705204473222691007234705894432499918483314509954871911197600373166825043369276385660590574070439320171255324439652611596783236748886983570144197465433953161139837450743362361451328613814584876974247285124682970328986245706965767073174178128677370940922170569996268605613880888875412702762161333771172596069221979959573934859459008420078878923913690245178222537786527732985663307624167083336385097557949902552918360771009249632183157979411931412609009770448543729275840018886701849424340242221867515463615840225400286175781263524790790480093265687012976133858204085910048540124528180551493752253560329096781471957831781874803326188234270145690976626965231406023690105569255784787620406069119841181709727765756387078308831893651433231898339742699869357104657549593260174590339760774913821201866105721843585009871780337495056210899686291782557019801061969762402032947486558883256275532331124278647000157415987864068767601436519729364246091321077889409341977212139027274557336998673702445753238833655906707281585839960279497856714441042955420127136686898195858721014368845344584999010416701670628459811573741579029248660674825829276558214169331146294144359334378615620680701042623849353870079347720158933975568624668735452316319927033258130531757419139052550152906484382982534578818427428841713887398738172257020916604978349209797623129440502413697923631060963601360143881927499426570595350961907970215782378701267483272680408195488426555409523899724738336166432347185271576441713166894617469071378662521804595783835878223460592168397694044390836549197477118461488181046324343230042633917937394983192789572733369067390215987850410151290662875097100959309474680061600682318551655983078547678858454920597975464102364322883464298482608759578526666534133374301719753556059853269624683865036603416613053946208147748709960763588637783677504077613936549808914806242696072560934960990752425387929111962630469162461149543238371663244727592142832670643499893458120539165246161639883919442071769316663421688846220617234274085785436470708681688750565663819965103108031899150652811031636451676968948729864564082694345325603188298600495009246227968562820814402271246267288940141746150093061811546715420686522374021239704751830801147313202023142487928635044303335541174325254760105807324594021443712337352773496908538586070575838230985166728191965041881556293162335319845423152505397288275060146380971108263313679411132152983290954382362507052665339560859976958981287302265948832865834407438004532946704502825100572743187453505046573356166819291976117478669231135741572591647639198491635327413046724843982204157174450007270404725229574258728011970675960449392668390038160499281352629285128876741527107488603771367389121843499168232778154353941228924213460430883476874232668630456269107357634702722758061858556803545707754674155336443686693537186731997575674995650995663911302219994940866635655866791430957852394435212154576404007765278511647425306902475867565220437399369155498269368843829132870759415720279954128986301023840826402197981776681778173729374278349692692137256046403680258820118629976764178320589308013258719411626335513033827196768666206166152207848572914464370928893406211451034855786204537606729923351179550497706499778878694223414972957109912944117355994861089108131854585055635466145898844173906788569215048135269876145301788236215655391558171243698634334505558594699341799636341230329894171598061164046666089615392820112249349239803915076416873003563839862386179665916936583047073775860134201404558629242471751308049187770948665497577087655830894472649321853336868236367840480766400797105657271656946010538107883888546449946425994644661859154434620322830143307043128739224922976066711330063254997035030132156831213055368413901710243431468779960078388396265533745943959581437861081003616186990278034965371653657798497334787691569168002970175462481670399440535896982850316397173719858511845794245103942310127952355436772652727182399929089501818694200302326034414604800137968756941615607899163353877407666173850685652013053191080951368932249390471680276763564106256038549205967863292640439631375807390596190556836061402630883467858825720645728659092635417126571988164571348816323267633158709659397510609737816380408526318205703489396506141205865745534755121151058136816562597753745247083196516449480354740232492957418585405535737763720887973774859424302550224026755337767769690265815080721960398219097104542271692949076754599637784671780812933460524320407600488834740428625665033811453711657231959020910487230750415062722292225000922874850975974870991005023243187375510497690841234927543990136129703615990378886701222972765880020486185950896717879376887133078987084315923218370140989140963346911055681356153317519054161588263570216041490579720133001665472516671994947615553729714282568523138024318431051844833927762418128907253294179143032392846344005352214394743164082735510886027450694474668141774054763851407323918703922787433982158512524971701582012814542988507507018204593370112398732700894248657214758132163348443343546971979563837290261892929248915199937159334951812639358718562063166437606965363715719013889146282901905831577500472488200083859729893262718598904810592510355529826112575029966148498124612741140639765086710208814627546879889607576846954626663105986045470386052311182028495877168285890724069316103152788123790811161463076879063471240280029617566728722153205761458633704081674580215639781071531344284770651519264536757515950374910640491773674645658715196086619630602547048639960664698864795392493603413306360180252524992901822141920452272879189511886755471541173419580639808178004378482851850174793463774734040035707032908318243822621393408478436872213335139681197409278968562679032603535816294854612979371882605334288601770464654101935465767835582782514636225355471106493977770261509459769533001669516336827398674561053384975675176306843934461523241019555041184924121877637283569625925979842460861456774130962998432821757086675727952307163915172140370005971038334954971992077530106654466576085935944745485458357562981353401110421422164782674982116558140146713503210928846787895189946856636857526909024138077417500214558103529023996117139578890489073740379370557192850043683877649320427838621410469325333726977776186448430167648097474061876693127252840120404741241264415187390002398533125371061004487424194599528959230739794702322263678108352167491542998320301115256698158438566167265080030786500003497405900315897574229465453128744999937031457177100457368987495364835600248074972642486304226221756873225998669733918605376548799426265432513311678004311114891487331227458418605602545602755317123154626018298019462970318646547882890808102326357209983241467145944015565620160180068859893583149949030396729060429282691262211344027209169512040701887832837255398428325158240686811224473139050309180680463244440000036553464221799198556344311128758617958427836390571959802403716022177043172637990922603448659418105415581851088564582943587663537728193810350486609747468158497047027299723319159784107193479426095223155648267378797808516619578281204359284919459096627211232470520333294483474398347299848733837684928545940163968212992163920197261669170449196877931529758072828834505866008003949685062468407682930838894786891370893581915097919182975999895108071439512913705256847366705062186250413830510679850607751070929645990339668089345522701451566236834042737325446240257449010354989058601213644845595406657345398470438981961873745711944791243364180551764121566078367148536243526159881637039490247255090124781150548774608471790028938173926075311364093785029374436811470989375839050324622423019509878546348356798288315623749087418139455170019667832792685040939778806414135032410392178785710921989480502066297899269236951341043053167638778468855139964037921909675653893469273557647305019860546539711702978391924226742529317888418256328163014879822100153893679591088972041470933807704493202893093003160999533285381882673978404540701264990216176129508951654162192160105445032833477066580483134926028465367162896788120576269040055633575994916338046116097444134024796309148165356598727340438685244762389513489514309184421092572098925219437549792369659887276032217365440807200676934340413211635735105013422544365667818796685035880811449219415474491228455969516175330888532916681085637239112858896230517351168369586643175896310831541965710809043380965565735338326298596693395997149010005429159533274292551318317178439836775337779878468305135979948721060093269258545271607830769953362552626088332220865978931406389391623408005852141669151062491630641199557867268468451559196060613583301907703861644907456383436000844023555185785605601589883132486653644710775433755459500271472801275646282701056374498319525090042690306799919081849944034280784561991286678738066222262433987159840555651498166730608500916331532988384176387928358489951252387778226446861949643712595476394646669580220147206046055175297389874731763206575631765880793414876564247654143617725237656737053069203948903756999029243999121300707195550646083956690922784474980847472128794166676732031642264925450379048084305014400113982512528509091129935833599541335671257313056586345755629016144567169745801566130262607988215524834227945735613262248707711997485488424193319025415311034955179062247727346156926933550555072562587492601777405144482129881222318742415037463087622354570787758561650940702070602652288748403779518433984465795280346160230068911114943368973378450929647516614470841166860374128290111736596683536114870614847534174242847413976878229083637424700571951848354682250511406931521544842714542534803778077249857537562690032512291784967541352123549221225041853139168208897630382916443555325638119511705952318911186794395049719001769118111172066789511877757998478120097561277605009850252868415447670441708465282328094702968705662189785449015927546654284987452198026812496200332166387410956027736651167040565731779970819395314922532083046499362449124266314385472308595227290655871196778073290396266174949978242121247717097250586652988727552848012455643624006512687789744020906844973262213591390510735667333684397319791175354589010843087436323432660500110011556204207435328461556376833263955563159681864680063850578218252085594216540019856995695337312464708541400517894278392630123243584728905936538035963625802202770137939367133970841637496569033861062480926543627849471608712067237285252021237452287985053895910007258612265491155719396332626099710172970024093227181253944038121335005074821608242474801971663366235121909280412269631283812069771102492614362095479090342851969397860397651673789176229499984651236907160732733718577265995577752293188271062678037400013558762843835361816832423492500923043677120342407551871845121752198778653507511716350798477743495412381459570087931888282001103009169966315079548361069926075002663420724211134670683860957385829320705040240536848247085196024644973261381102101994204923776991645811770976837971723746523638031713050914064577219546739914013226772779188469114631775680533122321185673242323797614304542276280796990194012114447449954176343381618657225163950451871969715300879688042592090839045339245071284187616104928722956288730502912217535397053464389321265457685352462437294657299211720511704446402914060650150707949949003533780486845451302163770508804220734621467633303114736765411288328019555859478119522785398289317253268477064159446304229045237597610901751460817660820503640234689410742906287147419900386447316376650843625033538656410318399262581708070174859417717141796300024285457906368293042338471152781200477150755071845524495890831994491404093795789955759329661064919567210690710796261284020054673117983405232519587168138035350564507178091889828983866571867654180730162942449954525796667565410350775802304275243707099611984854096367753750626394773298986817529771578054950344981736755860119467390431866436877163943184244371375764216035906294121841556709849424398372062194079859587184095182339368495805709747548949492537302100402237763987317518133624608949989713882868267415250709626037728642989706004441673258094539497754309974728231837064741406045707278372853013216937800938990077790224585943138280206073295636065605776657269216889700898468781259681703514630181358753989937153817443888392673301809885304967795894155206755273089506408477020071886209054318871071085784917168022702181650669160765402682803638979906397760304242656490890055074276529706686276134861707761234663626507619860853043512127161123272959811545646252202709192673010127334355600842015442267077721534148976531213393143434290415813722416965941759067866672312681025932721072959951247402766806933365642853725933550029375976228110019251781941224323550430118404248920471242437257916236984378585880482189553528251647440905204742528450156641256425189299192785506973088077322797808932824493168802680511997429552624352090467725061483260827422052171941343394438755357518203890110102593314542083012653206936271894918436221963490177477338436936047310240122217995450865744395047540083795111399522819520807848068523216712452122673269642119983338291625662912978459692774138840464916406155182436159550719687841337020046441608511032171625246751337400075541734196630761096425187022275845964675293545761804990720813850220030266480779876577744571504339597502050137663380192346990330959522759072607778638142964201641384317340983996155829245759929930889947072560328225785395925463408676014203329135288264786227489568704021429684992449943037871362952475464537948569467725965987816131491897083538894640617853295671346166667646957079751985150919374197146308082896609080301421054256962553696039766500868788005772363494618571296533687637311032309090197215915805857189494995197317733795883078070819526313181189594741872009770197317744678303099020689496106853909867004901463257508236040295133326664011022784951647685450869666789557014994396200038543153414486243156924824721170453868116734977369644637456175725167964139107728267842061543821952983058219906449907724326305756643796425256604753219267478048654903839191673406502307590422918374774323305635494793192487379196606484139961562237300607438398873786875334742217205108984522779775627380237752449086762932263910547450824318626460191058786059037404439632338050674681561615084709596511810342273956351596151696434680081120725602325222618764768868065707685357474283779684082160030870481641481232163465411697888463756384985474314330800623870233042345505963677779294143730120427337110461623286058713158108669259813087697039003708114193748331022790371230954824377825476179128752072739327922763919833556369431052593264344129945196248015592979204604154180226490198647324802651676776213090312370850632370755421780849470742089551830252728526229255696358811550017777956654847555133731260944729485713064104087923843177758772408359201094773531111007836327919225225278594680379121679338920146241230535346972246199109913068067313041060649753342822437118934580683259084309360539705304079198125185427818159360072880377051942585392855914038383150637768424038432406599445653040726642592081127455631844472505740052699349142325153962418402553854934878542693669078870353446613569153468271981989508056086463035153422524130901889823957213016078497116947388674588485933659506657144824435711024050664356103537939812444521007328090704014153900900373960392276760428089823666413098456661176339581358896896758859053856679696118215142023424579472452644722170119676231919825334670109056488631823779419884319927595126909478761035849807096397966844234178312381960447338512559989415744419228007358825940921004514770201186153757855098153880257806691510812243989708138421897065801146644864137060251203036955851219217802163074238822166328237950303164458174663928578772535329278635593485841903697552829687632218476490270741579129464953373084194568489640253098278834849792287727985675169206627949759829142084567357075306819329543263134915354923579773728968127999203779331111986181871973348382416501723496335025005275974642253857337138120472494980606921311636859551412008779118253176782328967009644879880555088376362000170387995291761922860111784235628470819756001446472619635018830840548682625626004175654344027888001941125392711454912041998427851579826139235739930348038284385346981924627588632360299796649833467829940540968163081912856347382194677003901188023726830402511792350252995254438062725144918827403761171652075595590913382613778308907264681801455437209162354822855607367009743396957014196758480980029361767223814165029772456678851993754738908845038184575857992711001258721876031624362847021387229481882653655175865191385167783181559510990699863590350829499800722020669437160749831694784035298614568719259983281108757823684692889517696153382160013738361916094851105120990933663966836224457160181610618104679591514252550502039874258791521188179598425267504794874938262341135340486540547737717184889342941821683334773126386910220924640376537619767281037336375306898974895213481428093179227935724639841569186647661927933177020920151413651303249043180804888938639585862808835976437743707463190937178574829999514228708569026970738767416069647855350483797349065000334944665937371902381605513647841440205455636338550647159745215588640271183481806080022515023538200539785050980337904089572019680490075327346989324042853605641683009233779582174416017637204280128010219803011065361142552331314190354075429073374966260841320524803301224695458732633447690688400939594428342693306448461732220965421147281474019041658492298053276260480292240687830372034514115727509350159908223884099878759303840473419236609115060898525022391644438863338295240216159025782232034750002486073172816302104704675382543897687909248287956543368871923055077122582014094375081403252523587001731129839359042150631478710157379263745927648140591777046604274406101553965003683146306766917122196064042352240632026083379514879276787249384482429199000683876403304441709768820142134107137282225558389851874351884964603572044390296602558556290235725129845016715873628695984332096973812160512167909823743500981000900091472258321543200170410346604928371472849746172067982343383797361866852851051599322280569763717936998525200190266227781933300497636147282529367892483072948929344072342583500569373581259579033386669594504560312106607766198293119617069980693155793554900874256884058135924599252826772817716067640236262419495269026177997546492882170302788661032800361832210215708984003115794725337583990615508579502908171229386957921567658540528477654014814699639558571348988094361043030218390443907604794045097924138885374466464182373739345266842141818400559354643403028152698261044954380653680694382261769083383095827038984239324565490880428087248821544218418589349267899874717582285309970770307318983854962836297765790052904090870427141081941335525785588682860806011514731781997304801838850895230033304618431096163425824275131243990760457061243043237589484026841784111935108402896701854666716820685586985868238048686158137160648777381680123542940951353133949628253279500772415509516886561138489050271666581176142409673528376072870871432376911185374234756866442251042447942439162948404742385333868914362975117326857832981875330527206552081758916661355849823669346384216696495950426454331936515662925354733513567348663535105796186848831166074152507164036612611499626333007032917058710658791297330282512168838244035724371123164661153905959349283251592513662147569319610982779012662129699048962345585491701502435821803988098981388188623989794691905224074482778649359050239038907350267818392541480642411475565021573095133218163576656131646012593132192009614946852475104284912668541167490539324306811668790794395876850512226999443582227796252497599502786090745339615181251787683485892131951711186449478837963367824287838152656805601469838518317525316792317434766426506945160625334693258076365887575897068029368654736246479210829701661682908753231310842064356640429355956943530246556469053544853020391426855196446803899121547036265588040940353720675123810278485242073916147723617517703791573507145565094108832735525768815751747950591173883181114922034831765569490247474325648859237315342308258723291680766482272702671891276073676088180053286934760418593406308077599232230865851846357666520873066725227684231133743528083416205797069529381477646150182604627606706883461680933882415017122938947494460433057182087946612811952128203738413570118278451108888569299467305991088683914582774067781620215759208777084062702358691971228463998134635329652939245288964683586766557407617506507742573503800420118755638788014564410240457700725986055693627979026566723345915304540615698115672686432548235331658245587636071457129002125815321495642494570217940451394573324927136026714697604037229253432581559281244267655215286607556996527884685047360527806614356830768582700888693531545939310947178902046413458374938079180503681865390041491706027013849717706642622451840691708621531644079952463907646438099834206136102690187227784909173854683614524053691455940701948122813069966777342806055368116610822874103526546327127561047434861053341224951088210151751578292643336627294523300254514818928986701497960022165798745044874552649962442039429802423537160045776075566419514726026957213716717723403784774558315168250290316313830455090932910742787755494372750926925145736690214877323967590028855862266265188025642575665541815115167310477766981223753938668299674599428944946859969376831914919242451898746358785816941298036034631200995558600107812945178645360203091291892044256848361511597006283818723730796738870266909693243097506417590224389888570110454138682148168108738495951011830779861682423083765506809607563929217282313375302228495616242892914902310528776141298530836115750854685600290363517063024655354189554514205904288467426026067536351326910736580323894919914500480097139842515417577494012286240916282476267046231866564260760078295899506540774161503100968482802264721707778686801962732435423576270803549355388645424372007892521306419644519255303836006664241193046464617229781287357457977020430070236845501086280207270761475092600663232527395120318439987421262350246542535602163019697199934464751409581147829122408046648746665626213830881669425261883353024711155801496734845529086001804667258134166787834854030063630003654487651454051645773062300489365388144329386126463144732521951027025363816933499111890179502847337947993789444614948990629042908409391485067217591158300253846497439079391923247110932471844628200231081021695592421664872405516703411891227105733003195865439164891201619662035751360641184150817418166270546445803509739709815557783052157253331563225193866596101088991501400788079262075235790266130765997114174220044504248298409782016146634482539771679838252659112352469101354651238974334963710203127344868001429765994404349396743688493070445600880766431022616011291556612253426787450003042862619766091832511681096946474405340327240779859229334152454957976305816939326716095744322052379661836844295582194556117684616687229449716944253331388366064738415189030189491932960099126920368296239057867106602768302672390443399723609019029949393844705311421207055226756029686846535063455970125210635538068089349899461312311224703825850301387481856037916384462415734029447311552277268487023365877061160735037514664520048521457545276316681734551288606585489933190126766524114888212955651697373297639982416340145845492829718225998986604608366058685257134325257463333050988710506050313625211347509374552481659949494651875785778070530235853952745915623915281745874321043624419380433023391689164265082543494370649090554000532152826882078293543807663758199448322195077898191295166938062789090212929116343820197620139598534304211335657323872275218418357718301513999759624344361156596233844314938425836598435631996863205000779877731434496457559730540726853442422684742761871654357823285249210480531874875374298003762552681273381689189094826993161228616131372772833544157858487604093672326833165274467787276666085114630887750054736735160516218674714163892237743630449314094939323856382788373848438142057376141556022328783069932255959404681511613497282554658823082090990258032781956170611186067609640275141119999968705692344200416858785021459799164807167523692363851034812366017432986180096188256420078939572220251587742286544245899900742626271734616187298776474449816079649725831396945799668762917470704117579492986347481317391682953594798336912994022969164965665678447795306920079360381645539287740899002194891788776971347675102949620716572622282123600137090355978572268569864266420895395238024902647683214742965107339959399444423807012908675848143009487423685711723009780579507848851216991878743642159867092268837441824334870964118126691569986366995324248350400973782524980567905418026040564996123051728352906406379800007868333583765508896253125956132920696062098939121063152103504436603312811521305380503972274596926436975922344936300548225448619834465060648956421918891994063764248890987393715357597976386236831645710043733735893254352263334304392857451893928260402734301017491940946155492107185947136542018768116254482701791521480231762071829422683111161879023951448623060266353918256681599978867971529096228370772483445501037000465488335547230955891213098553793906947964728639945095389530597515109190402773607583650787289245635476159936593247488243003591421860926157161916441554426771534043476643471650394573251670311974993028875015930270985986861581899514791104353713236214020073304048321217234320647229483326042240248368585306726662581593116180971372239916379700890212981309743978022786943984263134938488562709733839009010770281844779974209289234766109826952891096373490714662697705772260972979023323154084486050237674025213488398727401869138817412648239520223672913678162332169546776004616960991970739655771012353677234173146425538536852766183104614822182191122890836702766282687224651745964280305501927459269250357066520333940357003648259487967200796108410930027399930874840797828070458973311607182856141700738929724254223647000268665990998338068732437369084765099365134516857794155546386156052867492042471659737968483782400963769865535736199866805910269000665535561696537329342155269882749598453481790154376233312939129974486843988253476578983522615210991097882056088220860552621073255836182572296809845597729365160757704659508915500515221311433689762383519697545017581965163018124030060921826576346724514187411649627443657173902001293231871913026960852159150828380140577167628101289782873882637424279007722484812456589284453638228668749838017459245283843749491383734651200155414216674746912790327814431248497586701228422334434806146424754648004317485023702078698567915466419883480169100205396866697285190021087117632550172723566578662202445336297260915061305220114733532019630030377733631589845334057094474438946531364434765636706230938733764172318302787267317634233791547361393025068158321495232864113292038709301302845565738912356161082234937256654645942572244934054405683497370505524262400415661068183146274872429793316849127130778373139274221691000833306112153656348739376771327873499317170074552510478525157948650391029321387942795850334275715847239957382237935512171507648149948843178715393443491052619834245194649014805059806067259617866140562815489192052477998875527209934816192728121589462535062683678225451245785395897780023243114975727824344630754387359002483053927629241927037754269541140801719617951584939967819790967461600143526413029230664322718903219077919943779859588753549257213516615450012119842957715753315484202980643961833069309362216999920720984923335135331317559217053873857044522020654832975360432618828796129167949647501428895766825775527882195663281723559664309679523380054303309915077910926524143800662933371080802174663737339213457816430532986758385618772453497988190493085395105505413466035498314465318519601997444878844471656603340031116201573827468356820681941084714049590537363241833861633290187152797654903159615031786244771954669027194741674957852502462996687641359247223883377783491687207428254664118658268161811148307362204914017022436171161875103389968514818320917758431828304698817795418750716887036027809313361288684596584489278565976320797093664139621311978032436694567611658251308718439471283983375883318971943199629828769004131389557512440016162687976192413951860475092601548636550688573209403100196985805285966626103554161975141218516249686362432793296456958079512913111530072507522311086290907650802140382156613472720930380266969339084200394134369791163125073380668414137369089793152114755697955177287953155309173801419392553216860235050043778610039046341321409414838556911176309461271457043040528258310735477688132600209950672065232656402427415277618261230444753528807644998536811107067974390862321724768128479261393639730787266831879307791839070294201414902076734680685124972598862766715693466641345577675884719423828017060017171095256046077073272741000530181267929171528789887760798804688418413376952629714026594215346989891987746153586362858848816624267416117777925379876083608881996107248380389131450019525920431052106085186408838914229516378530592969454792218170757259317394271280240075669286831450343197466249735870652451147837958398178736779217706625758841723684058741034911290374358383846418956635117317987849334665718306813220227507798803148607322937700837396374578647116622701118395341990967474208317727391623586667680007896023344940766310480476272102832684527240173302083132304563068695937790953431498704486758471578460533553934673175079645411507385823048947525831471177998607533255684861746610304507210580094847602372076084444269035959307401435126943307829394311105182470634498321283981486270501074566667465680030381609177363087353984557060012906415500416110075964190389232705657195695709105654108959520028643863629817957942759126677018097208868922148630767230014003561820820964222869921872563046686487608600336148033465171049235736838716906148453437323998156453229219995529726351865795675372066044704201506654493200695135729604074366189834347593960735583287298768430631920752693424365380720863919138468866559111505739882012003248608210003005287222487909688118600554477945584644056959973055051946600759199928017552215881327437429993306515785518388443318936910463389008548494544142189941193111778998527271189257847573730359502732525135260540505527012759453877385491018808013324706201328016401520927017625094068093085121573787287184786687930039811843162882089806432021040901313887861173977797336513884410597258683248561909232903963752556985956850356319601930868172191516414929705204963860971092761676506653987033439499246404417416939500836638757683630851755458121022543851936783606368381407169574780246012407110833560009217709920859309968142108110875714235619843125806663622724034590445256624893096718611804524884352140233891378999812410108724452321392948769663660161417551142935795404861141874056676300582991905667963123074254361790719054243835160231379979069294096249873828365414878605342487772186114333328947825329541669187627485002308631339261525919740690564486860396012023036047289228269468693659784578515932473016507488798974722157419598146709796908534889065653438935847633996451922362897275684170929043669084505923179190091685342475986546748336260725761406888781859715009797548113889459104423987116378687191721258967406574813889426378188128629607430805894271840467024593349147258553403096792392583717474030721186910349750420811211196548532812606169941341894493958782596248679533854764144982485993519499892311068669745375970924300081322553484857439450692240368762638664669110880650946767736848817730631889098763809139831496827244437172816435615074056071654257048576063374177956453644616517164431318839153417331811146248015188316439459860613585643539533479514733677174187028479492425577277168021849705368744213851927363314064391352597425355331242829373247928277825788884445196607683132650085622339017986528950629706953920666871667213317414196869660029404047590098579693221185960577595438206589771511168363205185000154954113637039145853064334615186053955272724930052753348207761674268616509087818249226979369321989502462077246974623747712471101203603354795439601836397878806790505859971187886086761142117689067022940087639920144153182263930758062283583990393741731608323618804781521219472456372003354033821240074079140880682823014849744119472382382199781760565332976314202951542409439395925247993613747194947788007140302752758308120483443606576068949478302116347724834779472450360829086276992693630831286260989693406845948230240993141018135324682759511492768259947086314267870241101274228390019440748638495119853865099946991330090596138107278414376939904178895826098327307551385703213583455659717334901654928108344921148821728986296645344935860679551791713788606407558331294685665521503968966776017944411144917083568385197261915175518207538055493695675599974135071329382892936229570380875097867992826702967856487319093812112188634672766371945081497132179096219696607816330133263451679682403662885478025115020384598256693846104749145685121305896298797012959237309933984457371535731341417827590969684691252205784677129293020595357396526251775405629198620243043813921337097437282230432565337841483193689560036431264807095109098504382199120915546106578570861412987301285107265895829340245978686084520366103648614406419030280119435829774724648625572627597132127565648880782744143377545605064042172072326560406763353473598451579033640687570481184706417346579301325198099187731914624947409145354551229736798331195201615979046516346923171515386556909664288720260851012511890564659588620525813663021082811851995227220814282112578906909946580273873837512170382032104677272979136050332403776620340378531723075526645502581762926271824008841696447284823838099082179628514696751301675415637049677380259074548288306959883653837431021320944497070142491358507249222579051285902924484272962186295168269748224666482686233973155025120824170086363149081139536388969235529001864079710442847745389818618045292423793176259932205756453356738940091794439194769832705698203944508771046947149505474325700946997744981125438609523095979225217556261552267280591949661076006335546656123590409229850561893443292497838630076007675384864731704996727427708414528516005377580749656576939555180446717300000903722399599126577812620903732087214234106947053461940691634932198528280303882080138218328612059808732360471149585394469914847836734589612723983084888912881591922493611855332254084616499906902618638828741291740204654639284137141677785505181343685556403220899108642228436445413039852438359339822109324130543621343949197308315272060060519329282162139837745393801738247381683103053451647406267328720735809967892905434834359597450123036126456528551868666505444562955626973338992973411210056883834276021561401377746933706733075638174504232752847299058747736800508300034773804373305352044423179300847002039837417085336492812127206867021964738878617898655845810747914963085452058698132678663490633487756445872607009039405990848733610264379951638233177376448939596028442868576073490448730880184040666952105763481335562844339507337993488522533721144433791068117708500911599364440793002971594741496904289055969197227693804452009969584310017641771358896922058621961288247101940887763889085027495033031578788144874289496012166901706271892498698565458390428090834743882792256449060868078146695098231799882676325109797114891173666842878013451712663638116847756379209471704694889329488753766469704275624158219726581003142949335741641098508344303963057671997547562271333319611045282371358419064896619889923850925057925127311419758668361991975974935167943567451295598525092446097318996653552237880964495388292569654002318145030274047702064997993471926075552527642456976597517132548235154907107139497729270375898406506722001381020668193613585757760783528264695992778984786080005535912351662005998339108144649492782969188495270851797078917727542747371504443289909650039111719683475778557219714250921230821479926518004547874398732810712428058781459640585492152491288207302319866859477116807906480893636343512832291074905234168568123888035919544997893214301058180784539817464831171942677194234149147900115116661196744070823613294936506902250468699300976685455212185560785585450359859766534450094984817767809555904194516684455470946754480131600139224094608279860533655021917418191379668356158410772615766660685973104471836003608966598323046416004360978506158274879810989425532463431012294667843563769250577108826738042410249581629553973747703491303145561058012367690825324475724486210941660001202000342811391363191030324220610046836111617123193582419949968643088693197982906497274453374076983148500934441021040732697880886662963996438748782262452792669212157994583725096887484417366602549277803550191185642627414319165008140312640346450873234749729933139716971700972057488328361976661958239010879821297839146860669261501674297170892680004295375763199310258783015134074664235137717259582650995784650693848205782684145688246475277708528988961661293169256327854143226983306732669106089839084535758624927736198771016182352117811199687518661283703788135070167929712976993910930453965378042379245766215239847588769123967827378096313386554153402470414683252792135751273943511424919240250448046218720408122668788381622434598474734257729663645428695442421485315921011018381774873888397376421942771475596902677905633648480441557803374015381168433615052546939101949659337419037155028330911869356582750219762389265824486920639779142790132218004283434333509139449311212494606797285247576169445708166216117181455792961730890585190078888489764244407106436592455316036023291281646050208821742872589817348388401600880941767176739823066724809375675045947927439407266310143321994459942713808924897792199165543085783088889280169809711733690699894678639093984949121547017791819929627637088163428103242594982099097319406252191265743738563436089219900420334136908204667314579307551028793971100045523596183477598133445258291452449863058445351952827641004281613287358805098256569739638710493122770275685320596795768595752375122216004788760363015342916198651857736850768335142856320192752620323670170687774651036949831934450462744251070896125320923748542838419225384958926548127844563335441609196206122938863982751526747881792874512513675370458676489098755258303633456475527650777558846492816265049541707430955132887769716518824971092394673987365888574730671505476860417193607676564919532541193972467209265480985410164772038908520197060315961666901177089585584406608675304700088379655564325026484209641285424415355123227158043593658244660906611609824448000997925440970230644521167190951910748472818172555312599566087681905914864968663610999278422972520436888483266629889589937411482946719345046252761818006499858500949011600392941740933556805346924456899278129915992875654637666049752064750990573496778983944854263393615785938243024841127869705487152196332994228010333291269154400378498496486154155149511106847790860280454455517414342701701398260670269134479978622499612794376102959385357279063879895266683529146864834080874499734787706774572436458834969679735648445736725892868339970817282993871439809297701378876704700012629743563174413646686405704341880393774653858076941113305197104160817976739205220331447950664892716344470561694801360545191648639321929713676034062180675555152288133691390223684866542284645840382480552585838825312968335294717459983447236884571124827579709971014892078913500045152325398238637482152754933419791875022613302785039626633414653668733496457848794468502833384623487595145491613922391371433837876884605063340524231699819044936384601135030283660955042372630069870422622503128402967877926083095434132255624195733674157962773003503385620017027696193103338985230364435611226949442636234893426541762868448016919347762250836787804139846498468641347861599399931844802388768539334674811138275799670124319327914669140183515919017839581399092284637611161050476093339123744129321125593037654631597032341849330552356675222354064973452136093908594904395165468618590940784924933238429048399227808517169266887797440938182582708146029245950414808604096283955711626262829523346375175334484310324325627183898449263697098444979144128720761317296753695250042869313154899704712323287380525888240565460461754286217118936512228975737268253500225452830377839217025675134586389976527822333782808672276487461876940031997648147841189420303936738506127563801864956799570000303952729519505513803543445470581034516962571878006738807770559135598922074645871519459115874167249460479208438514235329464257180562309481440805696432514190051074909990126636531786707861640746941731274512612306700812298406369531605452135676720146705347019776714310918163023303565513328053500427453641640268981189619005369155803322657933811448600213105090506054320004948417319540360947478793516633412266424079569005809851302896305243365936861543713926811191036765228988250869872162890225872849868690039586627638738454623567209422645843268443539282855888559890853428006753930797548185960094680725734940339031737029850567746014878011017749316684131621453572704910622800736773001038803963450379733077399165341634350675403722027274115464389528100593230251507784842224904044946503340091955253648439530136592747466581669976944620107677626672123851059545069024304617656076108921826770017883920313860855909161458835089122669982221842477646081588726950248187565162607988761498264956831320794842078576885730872778228357066230573817697870217543786588999250306689994175705345720070612542112305457639896541320888932088650113557247137727298901125953882175121997780947258569200184801397515252819575538333041701534743648259385621292811303942830608468422049189736246366704602748628487645741547205056745312788407635501821755655585493192542766421858724525856784902396515393333098033914447767232245407401308441012177332407132259582674126865791194201137123751134001039398677260923222121700529344887626791681622162027538168540365502609031408777943927796327381528880426859533544916368615323534702214066768102796108828460226470064516111428755612287935315589388203471444472462991753261693679828733713399150366630457076329330923782143115044076004757781378338336445641202396973518134554577357696704390006032775344490776598998329811980167271821714948245440123156642790518487735010920033008180217454345462812825164454119099872630661155109687007142630227762390925394924666334213481405650960962023335625823468177648458988689539076829308584602445757022574380375615999100925772048320924350439532835536191442108281817215091907038490083605296498640740410331330562503139748453162622234280156311654785673930912673234583932109473191243684943461432764180862091172289286408242745478789619966565601806238980973739936981170437972530793643816240291018577596172520021508099483757977410766161569305656266950797740534974907098700385752914266137722208510536244634561831135818302940118671107290280538379447144932905005818252417326037478966073808819707385594216123113551820451382897102855170959692780750819201065292809399036796293419200643396961127120315074346020437221190266027688390920938457650141226895061566008733355796214136437645893152010271307185451540834796292617449591615072480246986855219280138341427085032911053166440003549138983014191740583342518039335572333926866823223973543741893087308544021989713941521935383670553939278712596847043396879207713978055492562986419570126737228151625585974803238352109434040897407702803640029319502947695670724143013089923863754399090636065144601103438871106454565725321913592829330406038667819828448284027986686490212091935016536965400771772651077233166238206477167033783565281818333926829993117160636402739970707750994706975009125664796504653685470129347998166968897903819250724538484098137021349376865009698282894589897363233988942818894154005718793592721766032746813724134720494277028606053889469776686956836265392255352128386171729916221174886263678389133182539386838101645787746538542402533581423444391559256279545062908360659781119836077835888612895076385777969692900622180922338224386564300283297232630612221901660437097477740964239627203672985926437631839347306372861326494540868627122347855755832693475328668922499702437918990947548185816965875739949603516157642679563454345092183136896536047432115769507874355106558145390303087293146791819514992192688973109535203589802663710575917697515206844330584965238192634082581128651983502884185229304496985572062370746156967077782734024779069473754726987673064608080874657596513842186048665937000914602709675023580801047696049597208437592194296058581568335638811442842244460079860055115673250744942897577311651829784482197374185228137812425587743246444810328357733580270807040828994370877313870549363951496680896733278944846596600027696683185705307310321523118538397178719384462492135330625730294246843358083140637192448648694002069751439845941320364874429080165016527340403039518866959811145789681441566754080966795393890433524254126677363875550236635530881312136153955135381833258849479725516731337512830006489946943295568017298433622339039965175041864784791070445151202939451597304161004318599234945682977287750018862500409633816114509730782322541881852404754386080857842932925574753188544663600314824180264906235131723490155746734451225336753066763718300473974677953825106157263826579736220134633544176807050057587081288367517922919080822546447418257814383691305145570399976585416861493227017751435970213366035919355689544310899141105020908322208416430827733314242209258648479299230281221463648552270564471878484839133374134681529756410887616983573605742080268331614108297641447386526599828160606309144509922680114756250853816959435453056134663732121633884769438920897974315804194646823115768548803919126692513775808279867850905748298665632223327817095197849144602177906357982192695774744611079055421891197312292774780016910551582105044641438825924030940947008322950896809670673115895330320768956215604860601511218395677686856797027264179748301579685891433522960211576672907363518261693252766045370979314395585363557775615846049458729261312341652075940479196404963322062512158892369355642007858627886684682276998155382575085843981171299509099710328754537262469291755879422206888576397675914303093091025572682706895865131774659837191060197951787142424863721957392139448177626896475137294177699454202755991629266184572211400274206022487295069356312549510181555224015969274091611712304836338857224576298414299089953094229631523012466147379905798657726056917464731393568805516782508338736703085117448773514188077814729222950524254726365019002911894597744638610572928113312159548723988878471819317937531592756631511244410115450790868293611564500580294907562964269076558592756801806538580778320832633111892142832490032513922245705244383768969642992081116946949898149479896253608491013142584871473378066701611435201143925829599855347800917124472890540931863344059895908565244147192779892052670156338639978635629185446825194698117974877177320482660904475257188946242861139118202239551468469829553965238496727084947378155913748001816784233126483134837325046969532014696807835383431734826284272046742575823419167898961519177158226730609517728576635769008093917831841785924336986388512743159532560372380242179590248496940427505233533189618387271903050915313764459870188914099262406783971996293491928341394252172114393836967478194368464152838605622336230257107982537258279304189900168114726510271005839139197877341739653856645440917441595959348763497344561831555375032688638281778006543785014252105921380219299838592772832049903701989572558248463233130545739458613130779864022363820054489090808064930425654504587964115830411314923388170064133753524801754542834457902301553512024429054575999821727027462432079480637156941859910567318007072588950435882347275082349476988133451637331709845785741191823795510257223878868249353996573558837771396461114658255731300865647723101295974052515097732428303206062199839595146862527910290713219426065959525945826833364119502385632896463228179460391508942267552337595128812045980358934840341694532371680298683574470042784974859020865208983302302345083806893755784034902162628945151461082316491226597724741745844780738984087130757498591990954890630841830875299135919388109309899719555540387791382401615882595531854925151191553981527339789104689798731439792987402756143719569177579097637667866824078448675240397937458140428161650935747355208580857657235015611250958201726200062361472669073533020466122922900109953056556821160303022473302763327795886240710236106007729110444708623022720275340158246910343150779382239814828625091691892488453095404431698044718504836083197208479451904525081732492673917569673357444588957413215536368770657547022471683375329604241820224958893987371588004848409907730667297251046844289627782485605442243305115035495838140761021251158014961835877324390541493491322980499845874545117917473935009637745956705464600457214683138031315245244289926441303687552124647509443156245927625790895973036696118402630727404962298621586150590381602606895652252782873777955440303753779107015451039114358598799428809644256094415239608473013550501694360705791631890840914091018471908252485178995091078424516243472354599908824201898458225476823650730989386240588494992960121489249100850518406644484693218699486089043778806129093370361048779565620593399381444213342575745983493262646729855666998943877561259174041539091658146149471531109950171651633184022794707026730223508391333713474700169913416379254119511710652607264754024634969801468823646361726997988509554754063982134743127920813594426890733282989846580480450706800245994573290412136980771154702465280919296642777052884373060287417224549924582042088715314828523499708713326131030254021123038238423440628499595436134356056605817332472934227601157255177753810165247284863272422783708922057311355701989526467651288774871395341274720334361032662060016998530359045252973363323963464740244475014763329194990438294601515160997232378296413413756325218182460798593824861784906860296829137532373987095957835117653971859226645131820906081937037753742984128824242624989116779206894865515581416281825163698872091546837251284620640997654635735127143282851430086874427933767449620495229145563397887787708013725617609763514380169868973091464563020861235854057349047732844656890560003909957452287804319832870704717592036715474244419606762926754946369293199867405467227069151411285468469004459840548421091564145028789220807917562685994275135811203062149500966615774152620492524859828422813029480765506397078909817433586942863102433595408687130028736233920521589465515492771745583680754379906027538810636396200200592475466108647019144238188883314612280286834247144000052492592983581265190648126563781521835000548968910236472874376998004422074348189440701474441805981777320133384001301883397525006341996796490962712690422931132876467236871766715166906212200815939177559383764051196030227377217167244180109076167087669062905956116578562521865190514978418345297129560838390385750579718012101134456116132548166726327701114679525950399777937364790328928469329159554407429039673875045596751399804583308034164917488585866585431140400427436926998507516587846006030760569364467154515627852076321156904429989395653908429066303323484663038183523122659687732137657539463059420646788768272874611481812920943940004672573013255171309583532053343427127599990475297748814865838985108087555307948486461573592995301357325594297397474584253295212389180324274427850160226852304699701908895501545436147271476245716134145563593275734822867202186207040140251101168653130214866435966384584906781841785103107182674125237212368952087894263233493788107209890259978897393149976092362130182177949314468026460332793440561833345381548449101715076447981980669532417951539758483489757386496339400584394127218611600060078198155651862983446321789276365350216153275625371207955112698136479646362449296448818852677356150112518877935540705821900648291633252976587175016033059488180139268817620430655721933226913381102810784403084815037364903180672394185733093335618894625499174355301896247994830773960046513264935174950956052519957661460061762444442142178623343970917059700412512678872816283599470095600574053684727213105079154611599980939357717029693593059832457060303587896550211791326191931295484230410416574018298075052950719524325896449960093482487928963854440134526697826647049454837104180524589882301156655012413020329399362864312472768984491388725457147168596003347320414638643775822753682921553122258561167295238002492855765727131279323482556094159205968387131863215340666375634249440298768461317565880545925697405184746051017717302130401600410450591574252865405208158019377838522597437448793574627502739347147142641691397490626246506853988031901170471151565923889980286605772233233431685685564807179145118295827422996090327227664078691589350741388248893207486585042482584454183468771484942555518071378212084676677200644513195404719492729787667920950265548773972419621152775230230998098934181614223896962554981813048768748930385787318093308399994865028059667483190720304361811659004927714021618518731196414540667076666102018758873454201553519494601596842736511764827226315632563719914546703002778295607056840846395396885913944955662508415499554025439854180317292722906533484732456568011205026366773823655975732555879573215848771280439547399870715999191909262796933538671371551693507372595473441671712578781083334540050153735449325541313988208217899955180944221929620844946689538805324311060534529161323605384457249850720686440055284659884436842722058797387924334939870942079941777229755697970402552201189705948135702732506454912512264507910952853294917300770018444844824446580660627668027803329921292973551611244204072019398697889913274052803707183045336567484782896554292778893431621813910654858926968313857161815647798919694148621332298160753665583325083781870402606243346735749422775285948916311998211683846253866094814774929379291684032742885942593871927683792497080370243961425766044682505735093171534494843503376429011613230699503148872141108239113926413458261401502145812718042874465319651174157347706964410741205670276072491564647522546055873771511717673963284155751830386944941603452381136381117533484702993213939508682835964472506250566167310824005600632036979884918291797370748409573769070686984426195933012127948920455861830812152276956275961005873490272864045087672267449123141597950845771096222836616917773224880203468605572707717308669859893647435267980790403663630410052727866170512674626307227062897738197337107731999643167378721447748464741923673112832260538983351005543259983634312219587987697923652938409632302909232082506164142782102011552106741333376080590560640768663691016503286304165108593486636140887585518466597122891199900082638318473339868978554497212680408632498647578163437890155872964992784750583576931656775304592790562678312396899322214919746623632245021009030802609016495626278290431719218278008750193069632008985957738396226042215499834260843177709999229041174206866622355074674480448629806251738944856160442180937172821446845197678252989406626028904677235880039673871166046355376462694006699518004349626403043176013789977328231380898876162770483892177152069144507853558232804576235660342256521521496807593053341355773014943146634305123274074588205776377972018104229317261642241637381587596474138534492559504679981076528355717096362529603289392904932369019616288093735887572694584631359198493362021947362550507067681426559108874315719387873570904657243203225767869131041687608128343876709626083733463187415942032860453081383249114513009443421413910946080936792263913458475256473948453307175938559743741960153251186284108730910566317115551805883224359964752386592954373072536600467016709582220781191359752716228234059681448131541106323330427708124573434293912689059283439131070491083579334429202953469018254431382822180696677429464471907916986420049520889269801213062671225962277086781394553947197184040067728709595730714500362876837163717105877714705236336733410458612083500303224974125522783685274130185627893401938386343972677626906043819453633490087009619836323384731939473098334679811596717056434835783644183232841091223688868417553589411387276339040831689466037840968166503027923653875301193932734164327041640085036654297931753407780031278690170918694558179749310601713940238290851869574092633977372255807598156790021177511055649017798965351335640168478317915641836917465665278553109190142904702508718600042632193935063309852811548166600757351372721417981032149030097215418001507515549556162008589210977061943908109107915385371089533851784668312949160107688596561892897116506753489912141081446417841262217861629259346682405996714439978717330545223798833490023474593997915829402054355952614552001919344055025639009710201431475256287575052009769876025443999988213327727965059989921778522229429587042124999156575592088824254271393800428485107659832631207462622995345946703700872189842998269686529478893672604308396862627976147750524362708008977821774349802274240076076539335220900939095399578428300619669817538873421553941555648793403420313060661813650738863654515161209967931472365730965123265786003068762962934127836006068285124343153146471654012765205961655380718709487539863105260457727915644567660962346248219936710480265256138121479144525673645701902703294024065660914918059965134683008733622783071780040517384472420327832467336911946564415446821894103795852582296203480280577211964159578759715381928581109635898176036495723833790572508334609532381731661419776326479702573099395849790394763024990495426907540592919407627519049531233227328725912194232126259623974903220786977156171302680055910360635700887297825796617386573560816238032664823635075587136667831724963923747318370190004297551295124611146752644534768465136869840475749337209443304825504805488286199789784831423629172565123158154722833026978696391586170978046411228221252892994157814556463840972958168993319690241692544495309773733670680464322881297414952892424144917491232909425533549679574938911047564748523660210868400951671618612128001232281414995471615700675263594804243634575580671883505275966851732599244522188132028425750701570100827470739682681328757421468589611422998246077767976559939564811377851702154871533994809703158534443486623519966078665618578899955737190807697156306162493956433903402036893775039778801355082792759034972789021960345610522405786860456424084152088502303907351783903202611484860740108147965638539757029660893264516600607880624528602795750538318989156645270179414675363416587739424019809660251647418609612609185599761914854254760146410070156776633280050836795602951577410775879633300403478659832634051420354030768288485813084773496877274181359494686528078968615725307273302639390365167029579149011951466644881796035566900812569067509878951183153683894979637873591802774262321630174924898246506008234237962721238338090879011842615250508872330463079551758044957868304770861380618658148785381185644701087341408647273721565092259715568780776744137650634247932688008535553090702134115331902066633325934975392003102788685075991558601755815490855825731722643858955876643290498375966201463058343312218638615663363403878679071945651936095233386684756204229770341465694856504322231423192936691056691673101044609801037132985860783814260750661345583093167569135479319693122912143322475456070181748189371987666174875356251784347394803981406666733961155460988874977860108994456465414578033820875731348372082934528781142341200899667560322219926712864453632828307497596022995437734701439913517754662751344832803938056746002939133992833404363194050853176378858925869581038921497505360772608258421046403013380330128073185076856440890794703175896175967626369406036609730398499228824945774965810279190393634673292610738601325132788331968177916380514134221853869223998296052434973442009799279796093788996172515934872995751274081792748099398460905272936934798338485256387475282468338713979955996152654885808849902397071935465746222941884493626590749508866944990345514185844403579092877307746624940703514554177097158972680792391269060266578344008464631031769622697085221298239212780747213413816999863680285289739158962691553882743701144697130870649573258074302940741919398377961765500254356381560755462019969200160684041337588884241469656840936181392864088728911741379394841565917336777592902319681429903271120539604518018440072324929302002897673224726133614602149594344925551138033490132269485518185424152078550801515685167089929802743518023988531045507255188868828909795321425905239776511992473142808916681179852798546869116986827881681547465466487914044603822684633976565254923454126919044209687212530195160857082871973317969508987627265153294672689003913394024897994517146316905293245239244690785401643085720872049905489797259344802981866807234325049973386719804697350738836013186345423769665404881467991905650119045018067718166946464048526235286144103871483113410049132489821590721653807706437579800374939631915108186855292840017252749220359901453138411267313637044651046924071504919440747616321277898673881198578457565161616230531123447484841394610724521281767676451126937854075063819916734995426985776608029009994405951591294857315763428152880418569013430794910202373584724388591044382208415162467900113155339169381488867705391723097913916238870442273098705200311318764302026021348847247887870834855751078490234461958084573092645160672025766390672538571703727018077083563307024106794278005616525874722349540307201801393437152307507105335671326079661905913290224135197860416921891660789718249912373255413591048926813660702612690269224089885703381301755192110238443278582720960581143523948074838409686435300309351450798763792845224904521534830196694396003821747354431219516643468226290397395887591003357150162132085924507026323138637210653882563694663651837105858618790314193020374710719736138266801545828618087356063108406684610938809988069136833135079106364756039732374948028468779936358130346960558337044299943710373464047967396351067621990437229727674510386428052195253951859957630665874696805979974359899209858329877043017309121641522403071519263396477389554343856116649180421105748344875862499238504022594506517380205175399607108869179948644822194759692872809533775148688062931650989371638320863782628960694025927031072420966033594625234143285569289234517158030013200577750262176461422992692011398983160525758613660220090054070051044902922915310993696297807152704053374063168443394637445970955135529434629538133253202977268568987242134346451304861132228457688725552032312637327673682372014434077106465608339029718412350448293929203225347796599372980786636002095110611311187765564435096129338724454625889164724140286647073504066210718690715232375164500087939701844511727077650444623133647940211331949127817658715321823371382423822426320123659846443723751687338678322051333013896491268764757060357336887634600906381566046343936853934872442540165727758866767928956021089183612301873751580461670821321041403003274038312746275874689728802675741553702398158878106447937391832434184325775818987103482364231927910767686973141817695065765950797010339364969257472715915550816036161431052836361797143180940039480539669706389495396323488062226198731344654175862283957680487226818357989314828311525209750173704126837857545142845446620381016318722338159832882310059790539683429590856801622304528513422824822078496101397811183734367802903498518113491296452082238800872812952028298715026543229640720937618593602698850585142553560207613040460077640381248234864485262931802142772340601046043840556108522381502267065779092681650408313004765632371256776287849226549800666893182553377335240164891444515760785196652503161167869855186053302644403500186286558589088043269486281242531416761997214293602534286463118230574009087771265833032285603525988898770714326034412887648437764478123533001300219411250708531403560019932637998929978392641997843591358343127252377220439376967095305714078668213858286425668836763837168358461048137058727398949624751227680473709423084049365962734479880783239358781004494796866751257694303111780158787312494783102576885469202084192167312009347744123520544306512341704037879599488590132204019721525736790518949134812324466862933552336347147227022502721990735384319067564720690100785873969869245009494615972439983375306225055145518686611218774737432009514255319396860077784095695100187203563408441459107292471757690119909023096608057205604966137549009017704817218373238162192760843709118986839103806274114743703000743696013246549104366763470030715462344256650135522523836067906519056843716123748719172760695897525264511665676110442230512315362494399945781836708533750439623182942225826446325615437123057915229281451919802575749424537230047325634570484702078107935936517979476731654188854318222456705387693119347962447777723433416551199621604165300317631287049832102859094454870787315042075945153533258123812239545491988795642179548625463954301211268664467452109728598142500386485358902488167203910312258226840894154336879392340325740571069805670965570643945774388509003695817493191317248975232134534791525754610619477374595162868399558092319592105144191252508350967758722025511962534811683035236884903956629065899600525109665361282725175380453703109765206720092147773322121735037543807004671811895330221339720722568959132408524858121331615073584924156126061534684337128247612723838929342324325326996347828155032913681369046666024679125612545250651348571585977370928305058731273401356321461296720662769795099553573721073072983932680127056548430196239797304414479282483539574747508063649424000624865758917528494017621952363653443939458626206399440688421736314782578848934013434645743295024775887868971163087418267086628921008848156801010689984863127368663645835491924412622429499682349446325395214005449688455273111979373822153787193151245468416125150273050498935731361799736634163207796977499422594004172650069922547988762705882180011969841616604881061483116849349185794555266824501680818778785222432857202621842596379507504824673967803097957569480677814841320552118213662363745868886080347125443411527266956324334369906641555930800554038242952456784359703728198140706336406910690789327760367510499595308447243919335663896579210197696957630709608510053629801111168449179831032711669258892264700426398512811340206283127381296744890911281407012466565813810472790512832466270727375840557264413722322323882038630510257416861639771164123433789215175383250622746568769008372093211049188639074897289225632989415441066036639667811560204418090074049325789456850064064860657863388117026452997586716061072637605329177135051811655042476419066757304946664835288527111290982827645831501661438221135952855746009903665080904956718179485240912329461505383756182235535121997568220720671126943298398414122091365015584269566533680367052594126351527029548285566635241695280289785734778845006645427297511821807262909044899032097672859043291374620498257049973204298382124534666131779150678079043917239456459551092434523552040737894821664003054993122887176660935247316342712619750115293006832809759778039420202984712376904315243735150464864638252316224226802550462139784416270979910682931986100915063301121749418229857348928535136297104787991171940533811576012956969065386090686612226110943369309918849060561612498887463990129868850790948355451022494961719915419390008609235445132839564955348041240665670908749944917467190041823196755654462591613959037804855148490082293511896681742366913450283760060973752243874734016733311854642146673288038248316098660005942665964327642781238630358820441068791776336966670083350795218744670753389877598966985055386557161213663849529733567794114568422012293113602049131107898971019222604881624050228522759303554018983620610149807284503975400993563403911018202348872149625108553332526293839695928176828107915338385831714281916834249592788349594778172255989680960215452188818672159658846958542900038891244566444259108067774107311781326695012112042200534044853052986753577040600219398071862441000585992268956487347091651016360464982023876484995083409180251650535660731781858984899953706625693746207128976366304238584196640979050966263214630638180133925573263427391795876300596707772849174210346729740184520401800148571611778131371380714746698453911822063444590991896556560285638138469896404461549526187371088878496908741517136310720654935423077455475488820780960092645069898299578589873469059052176880609594346291530863187661157986999797294510795641280451217489001513640891692237127059305903110929394905002857807473142593127813598925684720299565498956537634737044471675659968788629888974483365726425381598023940881171756154737274684137370655389694890044361684313868693396823730616156097941748096297801316661651794060347843880805362218384943787902930085294378323903465477488617973846578222753977324915004980272354393437205060746445269610013342003318144927953293928185927228198101842755847372413929699263962002536765211408362762106887398238851946886322295205507549174638374104361835614339720135890231332833631264323078973799765326406646592872523083196823175857642220764644585548085353942271953409576753746437421696977042649507710203971584130195824779464671608607018149304424164680513510668172919373272056727475203386098980275099224138893048118863540519822722265409440154427986083739381484005550165742742569829761549315306267384120471322714949251799440099378949972804084098044301220363017548714809015688221271410298240930484948940002834564041006965313721866438614122145732628055498961389896253827532464957947406771657788480730324070497361284028783152493965721503860463242067306982815014996080337826900078696882185760932656440264331766196960903554600118525459313242199860794043805931403751474901688570511556460879959296532485241865179514598347880805651720086544503593464823520035773630057432711768494064128146244300848646132614657672228756258074535128403470542048938281351472300849587642682512575643188529942623259434029365876768768800428450257545085122154987527134408265446126741112211405930628706816867789729261805236522406593358908288071241266866206218294090430548377555755868392214335693798526139930976018166586595859838770471631541308814278927024195660088368901025418901274996943849114360024049745824321419390460466722046739005950089992641763849022750415416510338351803942035886673984044814935570731111390997452907795507853516257638058228783414698171153916092113415583791965648040130375945550784624379501948309773512574002469840686366543691266190448473274965954300101303551289690572992894788540002001034925497470296099298238449579876793873359710205597160097945329206748714759914896412023595994172815602884866314757691081380424027943527186250477496074212597808171935399035878987296084158094522875654385229457449429170504132311140516344570190820367518166046783762316195970244889152723595330875652041594535237025385241271719372729159702499778179879914966225256785147150402759102134735670091198461910761539736131026484215608030711970569878572289668202553875520982143112300651114124636060983844924471225787077997452167345094185505555379144649549661029329188484890727226803173020859628999800749789056635245399394723238646110278572417653448658538674870860639941919035128868782012458795224938143915148121740626651819659926272782119854841374278383966777556386266265923038632170105236065376669466917527722715782907740871956672443859255429311575819741074023996762521074187999377688182004060285504235365568117554403687501107258953023601994451390277176275610919484072609545226205970559248963769520364654172816235026928842134827563266614094264005500743162751370189097665677574152890084853352967156675056386105113546050437889736791699971612999693930263581538769229962307708967060268977326534557841377482315504699719644828990366154237187413636031159210303116683007649485211719354004909152825304337895170596110559965071616466683478014754986794140300975405102675778823642508099808623223075416051382682240208080736367044970817128244692370453162507795572115035538935465902356746078978786489312092632492908793865994443693403664569627766722866378647882713384778989192844803924981316327959229129320251854509768545683686641823975329813562216868457064473161712317405519526862526406626726347095131056010105421458448889676405878840043504991882156587908444957006981132917823754589258702988454455137228859985550128841615145968661454531673362850412577260550805526852426983952869420134183544208848947525356601857198391187240126209989446760768500253930227333084439203795823393970601322981822075816553066290445154868457878058246400939088404213580481756965106938339043571333199022031339179411954052401662698811426581357515566330726754268644619464051970779293147304190723294400821052236531825258502175399573405596424083435246720470346532924122666264759484492956298250856980697923923941679806890836450167820520969068163296710335238350304798402463054433925597053646513213236622685035309947564494888144983895617469669833395680526866749450926578626750143582203794004869205098319439712323981198530019370457814342198317376484905051842921688731380790653612981297161726219514077972951353909880122525241137987493209225118695689419511645165710515498387759082116522568186129571124973426308111448192496722324506129313515986219827526664228705069072075750953474527585120519836220737457908357319620639012105547780072615885529533805341074243081095966132944287063172650535394783291873551593444249864848462443904061902473034003835598148157615505216541757095108540921268070495400330170544491059898848193864962070614684371288851235052665367476855900339601554259606293004628411027454948679818499626487362748908530368491168214157182469706668928422891334416296195467460842173270640919431996248326839078463646700733661649440663646717047455494808037501578499752552881588452728136409082843757563987210624200699680895279874896723390769800906355192265093241282047533359185204546989190682945416486811581489460060718195002230694038753368242025288346270616647918046741331384122578852878828798262851036668535585041648543811154748604975514979826850255405531149713492769658229063165462204252063269656868633443693773581553326558842342730492463377835368090790824646888688742004619048447164802710152441543748554806125114186890587414232505561414485543682711312143387212098994396713658827104329436494829589011814516153489947953927312685892867897342784830429353350553392230325844258160181183737134580228101058833900399645791985757155806835066205148340552337152626062630936534459177357426298063879043072275105933428033224689007716077934151572058122195718237856029306873619189337633989767998675960519822790737187640455759303969335727599421901461870520004252434741852609429790127972570490757347235935950047788450038087808253032956577546708378469400816340152700182223065941612286946553641679110465213382309521581380170169338669969189583674649029146485931062921157176494639583164357968270201102238084955856158323070320202816944453594172934162828550676643699280575084395565358780239674308224836272895161647191930559370744228736941974034022031103914076693898372466964914571988461602698932472966927790694713120778264043826091638973784159959458477311879389747650866397165925209245640678933419799017276507497968324242945387810414209922718169202468085104932940111994480442209853686725378620567168414949219507461877823798128042772852419008467238461302993641512039940701277984932768299777805383503350751448643552569926400292550564739763343782088445953550754378022413784622751590748971569895635513421309654032305073909050794131082246824539035167465516162915212105207639053305663769927649465475785624697071642459273383465969195513185910236679199786594032911265077961702472034313081159826971333081513610277828016662434216263351154117184979368940161042256022619525655155108122065570589088046475506241491312366915692874087054292287673705901218295787961668540474411404287694142384134602123754606457018965215114678688001093315856646709948318463222015598838780338834742303682927189734439521325434464345106906346323163830256926048240342318652173132484211055320002540204040208393478115290362260846614472096754892858524616361637428538916038746532406239147380761201787857770792241893343203985673895767857339287746451784404031130527245445533412879091505269623913855810632571042246916755614710736908339892253428074779944726202425642132993822114563779092998601360576081706973526231448247709752635178229260391407964932635077989211722918746800366858862567641129993934546332405265249849933856978981247426750857347514071386326090472017680893581406050863910553464693749166694947168264991156277084438813706334100438189928385242858522036538751241070008123964885822109875813412987927210873714235232977280607118272782487931949526541901876288645062970620966124869011483770582619822552082580042250213549968562755755276847262913297211409572577508632041049006926111524592761949371878719667368995033554450281631266715454597423939401716588701228492277787947749982388679952034438010932448393875793111489060065937606796393295937660703065914989778743053238188041486689525852799665928486483000791352072849622740963294066799448913192962175853894407580326059972779280078819331416528852212564384851471711495515214654791114342972180124695253128639520440061512055400877907527099429389510702759240411490135359796346524033663125128799888037494222488872058309341924405469404906874997686903411551443092442903502599329887284351133610438713007079714710521956716269788578477129620158983644189218089135912353650558323136016394375802921272463931196485342786676128454787779920722100830763445944426127473859747342342812720048293687802371444971265612168714489920992533926475299498734984990569125164336372553020822410183001826155591545206202691475654419571878144110176967903974692378877598561232560286550470649174882327582996867651389068108312541121154628229327460061994813498223469496920207907016774559712323497553813912541283806456925144562747129105891327102232690354086444976777753330503522622469645478919782418961684628915951334989816631532342066835364737203363905860622406253652319298522185476384075583589066274339777761108840430758557755676384550705951162337147981929892262708059638875188243218597137212004595239378048152169199022849331071339246863101644059918576808261451794286341349262991619361469255452384761239286246824203659798016614100591049395019063510992088711373855104224534504425873104954017470923784804361416229266318789593219284457519742105795779763290268558937896333130415400093486752205587508440657217484362186040504655319024721420554378387606702773633584227138060623986027449354587823044384166144150807464270033310416588632512420604567408743803099855256756614016243586565902756752185427544839722549578085049710120309551023135650852886996365795223750962418505127018886235634683210369067186521369486983608589741014905413475337346174995325214302254715060717970251727554421160483241934836741649693617796900417098287647390496180889008826894694191952810119097353767367186234825600459749640302295069132470247981027103933568343799497225173373141408918049158673725487226478638193139516778650434820764398119137254877515311448445803823020307096433917150226489033891097261282308439893275644947914588385305843787925966146590948204292253385454642939640163825563834665087219163893365032834866743488745931846050949325699145688822219386445936219811955813415717523227565253458003429765021978906517452135010818933041868032654752009710430176525524439645318455040963234397387514120962399433137618745064760534290392774483382018829783254080363250441237121751069196248465830448920433740605950627822313940787796196037925148159205218579244264064596148061970265474031416692997508841647069243043018778831279173259310578158513672556052091377295806656356622352081996062131181341606296491971351743490053550265692743079519212343882064899648301057661086961122078443967724369336391918092720597564134529646498151823812368784593473955169848913360269940916107272720968252726454106535952663407801879710130271796523922661197593131841397052206735862536841535192977328226207558586137077763386379025991069454144035984653606850175362151266420010303905535334763807865287595332623162648165804865370260449379392091947259552946811174133910032962651516286870597699067023038529120302704494462922621989589760512433211502137141798963142165452778997078314051501454533709965685867054947215157468951356386239018782703734801045528452584919349245098416432502906345310326250581510988294640189081549792361039760015487425811926065563922487960682560511588890550279156654837484346269420928948427124641022558790351523511900701713609471741865102679717541822685823441606908731392481071021672475048576642592212490707376387483179800844499571739230265422532369670906741110495181766036784998422330914952372177800876432427383672369772283952715299591918416172412455254703009068701357616191100846897877207122125823098727372605074854730543970699439736192520254614351926046004747229556139588656464000580119942105115044857280099144922951967415303683688049276769409571809919922073331366347275782571237386969114230731050187138954858807365658041410274188727379615403699169780306160984771144906404650148132057800894525635423745690444564993941077197854968955347920216956035233552915494469545940788841531782764521561366673142837027732032668478330740974658533362958962882456563280818514379055498088393243072068406988745424892670541267685201940049548491748830208158171229487849715836057707813265871032924238233320335887432183505323741398037144845431439149304843337539654704572215953850736338693016984607181693253187802381099013540695316047177672646324253577448576370637172732202424566090387825469637453248859289673061130034421659383646048726015512951745489029104017910101641927709531905631491632527720160420214913862561311261062883072768608358631314847285565781822470649566598864237872916723291163385107244276819019711204552524990121227104374219187476671486863172945325360840005093473813256723747813950171871264375663748869412395384570731570654844654251509955409949778517578970681374942343268595528100956181552213407193570612881693898807062007341283758336632854056913419816738842646910284061839572284038518043514913875681724413532036450711700128036733807341193411564485627716793287719076336105527757127602896171174239428273604691503469874848755164212256857835581643261669077600313066540822453918448868959811183231104589347860950529853135547885945689341956747794066602398436679148335051877661337719390035519082271360096421353300896746682024614269765579464676281782236197930154620099246440251960797132501480738563636435926292445195371470449592901084382691127632490662589852028988358508085725018184729622428004980232033613784228974324672603443703459135647364327382639245040184272642222995884882602829620957490768564565459618565481096783308692584672067962501349265006080477139874666808362636463096086589279752319132071778653871071047755584350862643858481217711846419310308103620530742436943691090354300021237705724190858045072259381146198698523833502264624171181519697437150700517034954400920989268220262204866612315038149238282721864241445787268003987280020945649866915328752883494111461311209531620201535556439018635677000202485248210830650209324157843707593196216683130480930272874543785096428100507893688574468751879842085299410322921900363452236668019334106163570678383131064105444347605290888447047705878251308127830360588461153647665687422555640120079847966657039956503331665826697282741212211128076470996635870973102984887320072729859400164642501985019757696463985731241639705521244835541282354329102791640946556081527307981634953983275062148217302123073964527298284159597959062399469073992726141831264856667724073721707012301432030417630018031017942926514504405960210274880803991526682258023402094912525756323901118776180443631665724081284130038242959211860729280866675692209200292879474473723014951533722580067590775267460920934924288965101187799210725130202810066652814335480934286316243626387379247469195372933368376242529875127782817700661169817462050627641154989565481521384485575854531282473326416805478598100882224951982210675947772845604209532804582529935507390428659428009956299987914056371113633491888544836985778163201410717025849330986186589796342577773019597287949010649704824109230305745827678554680181957441878269414651612045818380194284591205870902099664658462723057140495615504530542311659394440299114359937280559305661764925813735362722292463937581073844239929633914571183098823545448647651410270764011346179736997436049922998048356666392649622042745552370592056918291056151379410895435559255101087463744326737900968507119846417507306284871052019249751160584907309078494448758562823550100526827966440831324693135343937215944287510446182807083227078514677785821808765104835880487943765149208287844571831993435217479493769816544502663509151049425040768196492770164007271215134884290142052890976860522278999012914856407314184186683807197282004060180048486766143412337760035467987960641656069551132922098974862375176937433899107327333526764345634000543786539294949344311645893073259541992219968969685827763970562911095007765861602781002530637206809073342093514977993176157667349568080594227031448328117705671978703741082724547744361634674327256767973393971240580008593841114008600307401896581348694555079544287096091003650018232780426310612383199603291077017748553808607144830034762277391070563726278873751997227017738628100363796036057965748023478266439257547554767101712113630201250219274562820398269079786887244821802771483963078289057876726283282337886713321782939650663751714886866945024673578999991152084064237415010614970636851962251128471511361028756247978739336947075260953395965088053214290833322498884944240856892269374303227849859384139675241131208757307100956805910763427442724911026466913224849681961291341684899901781484978946629396676439180260893024924354272700439851448138621529349419193970742572171392341554336701194721647907682150267145782244425174306286661457658429821238958165623205483369242041232554746374619052501044951752341358910200634570187715212371319469804955375932917453399081443533415708348853318502768202642475427374368233612212646393295045345279710464630708209701720635167515470737450432065917356900646740524931171003151161611626391020645194523836999062555903064230917184063964007966184236040194494438700916944764204236246880055682165389201434753186500926549378925464911314973927133003405321798343972458764626442276458781369028362159085872676147878320182087638634303808831826798416009456474312459948243456524222031805249140533621572445999157780372568640541134426172684080075286534635818049333146328454035675891874800640307772982368978372941044548298703665830504875558115837285900486253570678732878582466964366823637199367630063919577552783333833086929474244743620138823724862452149226289648673092489702779930355786506926805071498284099493782581847686441303885774905460201048365921724074431503179410493652933229811308282707130432743655272614951625462528494483200725336285702347300540057552106122843288998812031880291308983591007570291508399539679308407196012512540926647234254273558401584955500288198961650413026337575269629897193438244959225599513801257265317592411891385510705749921857247748540043478255090489921175549752351286047028195083131912432525402086125745653932125369666174154205695675175078690097938861747448449325076622835227186837410111377431506829978871528337875935532250562441239919026505411350504201769298597320197869212043513965260523355739212852733786539776120209076082470014412985084528370996421801559891447326471636643042260056000136059209235609088637408122099080153183776065626558108070216789948158058990756070248466589215597656267083520207810437036749747437857333419021155232023417557386885219711775686077393151948233405278728257870310255133746363534157261147644421841807987925617974679366298084174640111565220644414976518870823452651801359788958294116382134643547087827942373769295942871138431212389508829826907058722134171875743506809775624333070452521590526139110704839105896223963105224300457630517732563736343745819462372248911905052723853637624202028481858486966722928181817833148520835988008763596823378446218370714812525451483639128341988925414840336341807823707004341129304357724548535008016179950449341420048736996408692931243885263793421462700521825539342783556254388380632236394652944613429424588606562920204931686230151303925004711398467727759791798008714284348567814330545521183658842595224246776941783069108938480097826373017874664573793972067799819684167665432513301783472626800196864872454286881944939529969948938122347687062350321630109182066586364131826601183182583841202402823994320773403894981924769378940152409926346979573370222244252494925271299010617887744958635327684369704860119840215008536176544266646221412882581168711466270049783659200148118339967675687151359098245315742755618179851875441456235838695512332353972046021080304562206867471192000424411464013265442573694623020617979001725451080761243261441459783234128860840912388676298141967391406361868332363379309944224604404096864431636705487667131560620433643548519465909463332507794488722366020635219827769961943691033633767285088339190384557307636645136317341267356460368070999453955464618937243709956208126401995903131829107442210088636330829893834749346539483803266394475147200783604467135721525619964730370787805173127036236957283423374693857985025907153892461743599212931996959348969715116008953155003691595459268857466736861717883118020230840202886969927145104930259322232948751607860985570260988146460047338257035515116536221565356870678838582816499167796779398524411808519296239612858806874106687006053368839708274284918791332288943753665325858253969807369185054084122403341507318203469938005371259460476455687612241087055861052448156070657595762542253456444788893411214375136389043395670192089762843866947163417563233662273632071889151376047309871297699887228491245491654067256098088956975962614551390113400038397929740131781988118433483564016600753861062685436644513358719207769148227043386940316291610232330450741033440288213322847418920526850503345406504653293742554297638810608785691199098949711076760457575447306398137386395741835912351755956929670754354762412426806060786531774867233987396636874508130885466097612668647416441356870350264426446596548284766905167384741977093503963746729384886414176435029050391345062466711210796403467751584229732636495663445586912468971101399305753042470196679174639357113552809545615122518101741421538419741426997159080458806876367625428361036208461392466481848072470894100952882719680766466653026967109749302868353435894044652467060762980462890280276155097085423653008466285791113185138369466517971963465588642690483684728970330503722613805209061484974012380921758814799809338794877993855413453128985184026926224564657441418467020024997147296966965188924616655882408164585804175970477829222136921006875835656638372383655662870871540210840796481181753025782597134927022052062755065172892151018583185389473770839255764973774293407684370737953449933444383460358975491992921839832906691293275472899865224158799189961821920623004569133748117422764324073901055746645959791105052307315814706982447375540138989204533010319553758690850533081492602768865464331903562294389299538382227601134508513146003841693490074471380357692479456357279366789131355351030930902198918882693031416962743199515896410943911395424935844174241291680938565201733060851230884577001268028709529613557190548134961557165242828695475637745710519027845776500153609329015950570740538260951151423495197793925942658868706858914673171878771866986094289238623095122770062373246527042314554703346622672479530032423601650702745987209045912997642683799363963621575835868963265297416315170051669783487529233992862827367708059607158600532621239661208021583810078947603633324009771925313687097316516420317135774355457717690198671630304489464505133647520545815562913084941189235414034102753780668823755312413985809126318820564939357700234976879561422143448285463804421047566380703080866557946725149396720800970776410876261642079524841914824876553724616466189044134343132002888288912679997273857541006412654544556752014213152651770439633530892693364761418115895427351049511995065688193309299735672760979639696704391863163973859216569200491425477385781874538721442032925799205525969037321290184367320738888305612557947589993651814557957175581749864748239156772828448169711213319258963385231150090285783090396871204753182738413028585156655588844377371364143580919057958778647781259795899851471369140922960198030709770403242081056014768847566996128548886066454786458683178124747751465230683859666725532685838571596499322977339384206856955380379534698992905098766529761918872194487229695253534685731604086760343888891897387635343145818502728073617885188706602267966678454941409066115897175727640828761774254102652877579908683065352221603552720020081911420096214412901759015792414589680123343452612432317146674513085820918007593812344276192384542215251315636779148834810968795549254320256434488343821798123272538505780880572099666480780052980571386642771158057945527501120333762131088292642582152394717550011354943148284844582110382557565939323542558840960027134358171875558076375376250235568373856267969831211575964934623778413587105544287487739249469715981251856528220269448945144782645199329050842791318413677271085600380620794417527581069556823998486910687886026460173987723221991400012779370469607000099358375193057062291262224506100766211766249489952105515238680810873020852233071834454354512966507785959258320666184655940734362622370579678332720524387166657215765220558430613593497825047019237320742343904713872834989062435336546358117952534664151690904751945958801664209871507334165302278108755565285072959027370700284561017191238166220475306386412875077915009054939474887598443405039498476086694220413851560858661682555269913380832482076254964617171343451899644065628744680900263411914770579636260331594230563546323509416549186110825867591252426600739133135940509921244627064160908779793070863274371420729377156265549900346162153820726334953069489951988790950362945255467118888530039901462128655859284021405745629014530271545516037389506203177500123474454641988818967464400032403135477278760929742042758766550767835287962594492147426653329054499236316918241417497240346596795782077501430979735227557835098159599316966165689858776981363248824155046400769843560931841439634704131410660558242990270190142836099000146077986360320720252161450174668826043017257376027261406308532760493472114074508753514849842859588344170296013305024568817718962465990911322539718984334739112513318916843280816132833248505716751323711765972532304962782482708165033766099922315825321026616799347761343327652547446167093934957419618984503268207640878993975671913871246354416397677982712885625642120147212915976463040083776814697561365802028590849005087116041795607510882623965665254573463356523270268891280223750912804455182500277299580420321446853313428058100041302686608102309568051712627515122787653705926236101792567605213452606633188378686003604490202801091358720542184659731617315505025745072456645608523515097825508457855637469799216744957329670802382596919288335493449524791001730957170061796008978049575549970727791062308679078608093751141457268148049950448017613426704750929868355407474551311501181755490110126323064510653778965993348557723477843930555488700904302822691412606529829466106482072590474666013409857222316852443899892148698565331406294249771968772135718077142089779132199890542388559558959489937910938668959917685223987993158305664428702002224289897697887989929634837969659250006953474846984769505334983354967091961851205402879535979234075963159574532731923573977135768912113822321128375783990066911645551862205358175074774391606930381036259683993972203873546672242760809914201249943903597269624855638691790230858249176535165259661201201223492225653280020436580282447298269425661432133424977741817875845410150469946001178466618010701789910463002946691756551877760228732425720107650767476633462641453496092212882081538832026620435042347008288501739754437336119165582833424264174296384451385564612769989222396971169072393063146630166722593277022010451274350345490830238752718185319042505241472051111530216301194656646210792372970882416883801874349216368220121493970054000480815718459669720249256988362756004525121235407992543052877703942020046419061755635290488217124709652276973792535474016137335146119010511382827568257564595392835522941890433518042604295930638451595898259513203192424217971257977697636979779775774301593636893024054410712082790715031256162655856429334721825689796519563735818160048890563908942987996894317759308313346850028272572700300620394461458818549607104363656877484581374120126742335018497234988846157207357061545425989893871551928683938287777285121229504279482025084496894174473964909162480693485346297998001373980995852126935836799243726079303561753019164956473879554490694417045809723220044458490712768625455217298643085253132676620569212984600787087211313438643926253114433596936980487098949991096150540815292225745476995657661869615911254376272512394828762366050927993085485148263760557559264536030763501293149045055771523322442271179964063811689461059408849939513011372212570075467264582900624909104637413949130125853048846269305757994483933717209959379557667724681982566725594925934684897642112384168489393773206999790387750591590180827323916661130826180883529494263760373096815921444644128405245042196864675735117411071473780460056073839680825211857256966072960078607956649249848150774382396081824962409759954595823607933008318550771481892745169909274186909550014009669836243477457954460629077876004495967216031895267511851533787713775213727272804360624310670781912384572419866134832519395026532973091056568456921883722601029708684699971892162295525089054319567009878741447306235392571739307394755822178561158758026033110058285817132549701062423022490046360884670381187317301248265525163012756805511349769273418488544060111349678980486331822552758952334987329205733867434693218001943013869513246432009949873983627990879580869206184168721439395725493000684664299241799380727183579456474330430344101496075360177875559918401472728539322155187990185941437547671758393486056162279926376931714686889428718306624850889781748771206679717443682184993934896453544214382193150214163258208784306675916002600300820757605754381644021141146536282911924809471182730404700306687179268880553699645552969061148427455790092102379831297955742996450683516855215593818046082486671894982903969001229785789084875426916066138552895742103083957994868401657905756738231191431851712699077359943945463476336876374879151935503530970833804020219446550835650516594061342826649088946049240380688492377898456972127848606495006166694291381839085588195805342432699560752246276880654363482727041464274400298567564142263641190531116402545435566916320971761055925618808874076915265608817206279707152733626023002332355380208886829264742102862018740895539980690211082197415590443777324334212111621845997934219537957185571766146739557972374434942841873558829848613702522738153578585630468731065427002636609192722939584637997794483138310679009808494992811611877106149678152021968987703322042117400443471822138861609732338343552193129550123330761512929341981601618548838684989730419385222288378899423216227802523153494464076844244578308509853911666604988666354297541632463143993098374109252423466479476940056257749846135492761226619324362924598161102873271353576433820709888588464446832471471646915306871135012164766947933851381610308174244948498289226712249949927059757638392468744586042941000455825583876633187958443288745389443121730813570828294873267378823351681690684186276717866066444101402193164269187007334064546225789309509639818332870786642511383809490138045256139592372999538102245673081042676052348341329355308223345620278880249183411331096559825538265452397361537254747377500042390018324879906349066235674135390441904183026632906764409164581589135033262057802176151892794820781186466166750058008841088647596322768901665483702376755908428831712191223748434194758059999948049458730066094123028436586760444017096184331209565359817518306820666891387627538580119582107751306712829219592284845498548590071631433542648381621423541824411748813484839432425561494627565221729490150366742896704899923456035664763608551702321744654089753129481088920928891114276486096407190691498336662565385143791603534047708418156982285764739681530615614489571043824451329963690536101287513669621867077890500820747021429711940604484238723149184482360638501997609444361514002461340412191377204786654833879679931806079384156762806490269276941589378620549246298168008639451062769931232185120072512663357201751844984362887194360721653279988899450449598796904557320082461470382960344033624740756373552409635317997935959207686608317310289062675757854018310115570706476562007118639698596754219439845905732968495308347364461516660967567619678954614575537748569302769713558451676071931561963279478662609541049843230683481499173710352179284605464866843769114712064912435517755293440641657694750631590967113520609621726963098266203453007980407662939415101553563446406573339883355179654599982963866647285503736442007466208500664780582463045443123579910079000185492540405750447183470763144371880042935246160971889710699138741314959230602128148480909347287396907855537181866311104345972364796102780039797164609287846910561804339236498115075990676920142855281736987946249110027405426056416196612184275104539839239045040128632093720951455403348580116045036241676098673603741665526546670243060285099775108591230489736006617243718242789811353682750948669506026136885199330572212700263949160345603022332556241214888626980339878185048771232443588313982689884169979770134288760911128249378599310886778352265736817411653764117711974292807116930785741972546976798037429038639567614920494307813851643236576912458748156256749360829336812539834466561008722929746626085463838267008708573694897103927067177880830598916169722277801521443324326983308258497577233517681835663449301551453099670613338424659548251523848241477044040847134376249108639533051147594725613662587333447723735786295090944804619297354157422047280681428436074164640317438517495324887541145387039261204111336084148853068046387992188698039803740444001779267645720494692833050497427160807141947108956837777140939425966289525430293769387143312797908233360036987238040890484461556879012613181505697105610500687677995092447197073446298101638342806301501343513539898774328589793715365398776115455790210265172964689509967674298371484509808375626480244941313363375633501885914465383675092382318310978643420448893202177117954118958241789869138461129201791500137611345337485024670249671116940955024382931976713297361585057359337146624054246939109863313617734921033905998158224776132093276081096732396128864536032988780987688420629383347579253819359031566701893866810007465347063504017010656814513906245421135219259446451731126524119028258993617634653825629302704141244078593937498126340449379841775551751915317953698957761384151516257338181151081768161473269045342197875693408203908044094609957569150369198172464218484418633121541802344227801839308906814807375920123567770648561322460377813081867264862830998287675842388597746673455946140454243915104122426856360295301545234072693906687559257602588374929154934390803649341060559726199135981421004209816673742345493568234647549992112766400230897442867966307549517859727727792727806978856632377194506315314868225082114303914086437830607750033877802210144089733446735886633354199860051220628999982432265466768352440680866569811211262429667322856862379602545818309417530481118091615814194951824917153005371883359566973766304896397080753431235985945667901349699127714397731087896201601317993592069154251291843669457300429822805543039541861907620243779565213139685997353877860837091242635546511623567980795182675813939388671086661313098894764843271465919861852375287377871050264496172081441620634106299001325030464480156561784124033379836248604418919317212782086421967743987664945222297485180322054073002269855392201012525934477466213482616027623048295001602706739237473880635103296057088649635779609986206274687848882505352382045518129730391014724984699254159397623401341823328300322262291422662236136110864960755649363947744238329362601277267636941381403815537859510021006638022133189302305470465496201168841619646841146140964294397093380420652411610283495822296448896825938628580571121861057249772872557178211612303257440046563634395737512185642919310943429722832757088707422567563272186757097991411608032079024471425218608456328709729397720684636134014460301403715019703097426386767498270622673793717847427076165483527810695894779050093193160496458343250900785468939399509878841995123266168431967448140074200589436203206915671897209852997675496970153164220220261035376951993439005856070940439523167429811453178888203487442777770562743900803143287402846958653339546268463829742511056308373931579963805027574568365225340838561723052741102567646446017318368906078325491122262191538641078507887415334251791252670742089758612541312846445032136500476139895268797276943535324653459116536983431916301923920714458401692548604272443651902982027887519304416466727813147669851107915711876350658085764177170714790813809587911642331436344015599603160787450413779833606837009776582006953026735756990985034662312810486566495344699647985327041513074857618482415688482942989888100448387840442496640961515262645934304339778342851794532727442646778389175437667790169057042569831548895102835065424645257452869490232749626494557932053060290610804448696359528796560146352430842275613264609397904457847895096346393282031995636759661278920326698456354097350641613126663169348155228747241892960350032983508164279054958832866044607769760774407678839463729550933194544606821771705526375222804933448279211007491517554342968979862891357239665093773496030444097302138726148880445333888840230923945491534861927413770472425659457922733883760432445074014875139897772734509434644575088317946277899337212297612454273683581260367852763789116005217350201219846359243032615581545494210559460200033738918588038232263205390373201920237252735296567031038943623148031761061043002788527319968275010562639272418488510860225729568833039839157635632500513547938694995469471166811597954231260466617139335214662799997056252381992437870655530046807946299345360016546320625872033976366501161579858627935818553701465438958545257034991545335008313349412749978443134089604705446060560847162698615395364423394193076105617840728944349220726986675439604169598690309115345221043217724282657088403916477118829259601606084553092712089863280614759211397832558515621132033786177605859241031561927345079945552254888372864649061519666636681891586069059465866874708906579482832582949070714155005809662471454673271306989219168997043726349264572071953406289559557741679560186793956293223525699310892167947228677568021922049711815673098056221399770857543470847569278169716430777395540833529799347224750281716166542042167603818116115910433114596250678842598473919510205307260884604699518102694803548822009026957199544471512189761192508460309123786934735504814109173593140928695899183827458776456179584710451880696196503572090376092711830382196628434413014597468032249987999654543684053612234075300270757303843871948921638443248257855288394970765824004816817933051531628499947178039153278324121360964606136110611927436149361105272887176573345234558935736834330566476933214838090924978357546850097454108831466061750798902133946407690017645062023476854612377126565215955099002213469693491515635964661026634118204939010291390016811285168628831033117423745855251275310507026034315701330225184308288473034205684956111260090963831050993490546570964274154339140792972278336141269417303241902953392565598340661415343754960636625431536198355002781343041558552063992689798641371442242007210539704067663304879429937161992968881454615147438523107769646358946370081201050430762120955649345651521598477744579131374379846199210562915810164527772168816659494224020937143069872466215185722564229598641233619558575403433463303560707068388944002255600833075595628771591425758049419167664952307902157437111593200928275684432846471639196464845313973133157392721172916450192175149915367837625672386385426877528861213106424280445902445061543281515807959807114728506701166797338233554219069440222650904529033537672810816874544783208631924387907835599763351794397475241092107133652682600040090864063219587849387833199671783694500836126396314202545820425959454815681764064276953453899416415372183371873262048277867846201555961520324542153515407487214196057410849420394078453054401516740126026500240834131057859895089217632792263729959854580923519513230389696680223548080900628913154489582034551456699132539618819985962035007126069715082352496415911747986076307990288547400513723032697930516284988523867534411690688891474987949934126401303282534407093730790254333734025034169661139975006133283444474396364337908093374827508297006774172566122733683184583195442370620880869140190756371112809645016456871496552809312170164684780297065389169900243376944249387400022128130976618552743331588191159284440652279402662106089056085127360712144373522425971727300252096295289737550735599590911691316040862119012253216433633840818490575492434077276394652265004847212000574514427362127695962025675287961370020352855670781598777998850999242253200024685925234925297698497940842159152587431205366932531332326470169081163768922775836807290105235722333345401702523102299494090486381622816076036990202463587031266592841701706851432929140683013190234070961862534706392619556330777956370799043899207501744426752315448366158499623114753975721193536861707959111870432819599584226950506721030179982004529560299179583584143909481529791986136880542789269546674945522889257062625541251567252568718383561963593381915851021084113014803089461792990238694071692352095390454029557829118026072526476149884600307930433760266572815215796235716515124807225519258180181865758571626076721695213456572959557054746665830190493703230019225857019629166355552820637130497647227417462563242150626864756723398145805186096049952374842925387446576485043248471099007050713608826550799637557664886895402690115450905471302759699701046876705824256322727955337638815704683517282376456866802606008058071622518093711406511843648556715359429683996993899129329283239028353205787031670187969666198529071900398761039797803710571815792553366662240240105398480391906353649672415652439553835859654260731257317916085282044774728165781556733506531474165692077719382702318086661052245075242640152674496599111513562129861011209045751212373159884454213845788025279527698489891262829283581901769522706252653578790366383337687015843446675200381779175627010086039129992610897806835785819108725654439846644930297654314109303811544264877160889793115753261727764622300245951055387324317950564058547247024739707300412116337000984852587708789443417938244213412951947502694785302546316749665055406125808633294848825370115114837558564539916857021303396875596731196686016043766914919356114981211438666069590083310718839366962751463035507573751692555259048679251371470238786749517463354049649420802081555697012131623765513116586428072089936618064118092457471984197621662139535027648505062336529572029001336730517823508520977116482966484505843210014029581152229760093969390337134894837048953907370264037270473647801029932883365355817417334177573651920585175351304695471973746843683229813124669531258722245979850696833375477390372041241434323402081427013148106448546309682457686699912197105957391426024576076402507456380852456710940625195816145112775060148029238867991450390843606090077358542037360329025444452728043972841812176052423431868278187808750400101822647004530529351941349550792396150226059826552511683940817924196433058742615730424435884752201550883132044412926635961843784830657327302431990443960602143580831735306351256969320990441375563729454096373627048979194804814561900018021419142671705901482471979864406662865845739025000704548120934932809045452677940340206359030895772173344485792273801518859867401886197872456507356425822325075787295288436480867543922862132898213370375921525627119141971719882689256074246100838939848670269327952291352173098459232472852020973448744846080013112109227853361260324528953834062432172792747911621628960929283192630632147716835894050809412439705547635461953571628029968851888904912581996085236090718080281107664269437113850987133432542110259892525905641122026272457648224509518838970464044454893375034129245738508015584179454011114990185003119971066728809691196878665435177881257392922804612712561033719606147202228644597432377262627411833011379570753181902553165159005149042688347864076397502344797794603385178736475813878899199486375891374734416749715196929693056095886123858318066945396814570595034697608363684438163994643978505817136696067340700576603255991259753950877595677400038584504272735717520284636084070365429082545693216148517001245967327395731082000165253095347605733360264991953465895285449080703832801651601709845250000388932294995687975782698617817405899893177336472021350998043497918376889760594284205057564935247291664889925684551527115887051577776961080013250382905302048536460957891515289063402609451675637713144653474766754262068164987186330599825648424171689660420777084180482244193724483176576405801092795871749809234623257949024200756571622737166746674738644754922358985160263836483613646802614069496172765953703346259053515365828331671052930231757313065831159811160216342089997640705386449500475861961041085474154549945388726024944260294405263332508337568108755462641247385302037149483350613324516349454141694002884294318333443129226294981462449707267039156824419459414906565037928121189038028652376170814771319733752812001003028012839673634638795730391595971858848081228976553379787971100916679894569647463160179845194133902830973410332485040972192843549649384358785767414887056695795082082207732059677253629467229231943455796543492042762181345102181760743630615495333033403134623531286067574570763313697976295141518965330532369861434540267687080923899078680455113052923685648851399207898705237807789930913001748484639978022578310371329566439575497664827053990032325157715412415063682892073611650526123664571666236815083692016583795952463956462531864322562409134092417544843809637531559043861527669613502828940049874927680491028351901291560522997258604232478094587846060388931024102147284621519610201450400221964140915363722978495998533116077277467582591889057060356197907050547608639259040676645550976445277642994051106933666368111390102422092868096043909671873649486207431389442086873107746012849251799316091125567161380157746392457662644217338360606729810384946952796663915534480398338187528251423507077912555935567654293758767502660634186993943630905353248150548394098877412615657178459709131188569802100862867071103866961518420817868385744309363510839298615819223052262149190823218482362012540144345261920157809233592982606532530631521915703840869626666728571368888936562329208861195347005716410040713989357261367804618672887374722781153648665230538773777727490524167121898747276653811089923882616500075999370461725940183310284906026471434433112597862852112612210964462441161481152892056974742368901528490732980609903056460427294251905108073290945810105060474632180948551480876873920547082185812083534533986846831587960821534601418047435702760247737818316819941748068724363800951473426447024652410891305937543190086257023450804312684369264322855588221387516295441390094864139089262488200992121387389297487170059655968169748935228510053770408701669392626325714325078994565421723632124964947027952529452150725382188678672542607198137224985717431787062773011198942861735193835043210981851860860669462150139495826470060474638733693290567458433882442427314614107043269954624277341791315295408622792342509888295496447217090398883146782600075366118321441263617956355337663298202978820080224227345026617010003091848614762508037891290251852437246302206534678875112644570187453445109962822374982731966682121762403612668331485924323778579657377427715191104180157091774601212484890696924100981790360572889705106668263026396240866651731755514279744047374446483796240665511008173862847512784323862030317972265472201287488121573090452500054008905034857279512524979487622731281232909926144778360868100776572705668857519952120788687016097260623461994127948156799135377952713469646461154672663064929898095379901877734492263267237505616022944733863546315055975483327636207819190051668920698909261597417517017777362403078516634398423709609044935533529293835626109988636581086773448122536551863219968217236365807854665397682214563486682838382562044671484437257151860396110278519628158491802515890862789013389280814372050255131200669419925337898635725270823642312204478119197602035089012320043353811375022305034117020528356240188812780206059172145993996057407685950477487895141519038729653293661877145046488828834959398895077872634538073900865650776450216848650779291292776007701920261554306320326542514272214412509236521463947218834804642701625911208426628333959198575604814036998535855276958286737999750605950501821074178164325402394985755450311472802615629825576440449310549655562879833678047755688330471372348274872113249419895119921271048341119010783168816969648002522193469618264272572965426795633940619164589200316746499553260939741764166749450256539173254061879464821774396070195505434196835962193322093387368930587695556841757526576173076151387042159064084006012973319059165551646252063468166364967502811253168794527338021557882554586287514669701053705983282018663050849530701928941079412979667246145913103062404085345443253460238167732132918788320966658846609527930333097562221274818261295068908878243555329734523884510516074626884963489436367267978849791727939219257893793080225357494561121309327887361666622098155588099256920165172212879622627542511470001585555030578353351282934467049925589034785299332050898023886237052568623387471035380759044674771218477513446372934306871314705473592185442997540833193143579685212454221739925033781654212831046247239057112676102079121653500572298799467006315578568048017001724483907358517396164893767589719218981941808300894830069192581409494322130195812345012504221256950186410417058173611925292103744770985182290862646625084789396074744679899979749669747395789431537889726932771722577908003614774932034287124332764948980380078569747840334567500523792142244868102157987782635235376700692237443745148182802928170301635671860503671254749225970951186612493453279808582746682404619060014005137148447620397897144884280371092022638482441161166570849964096177774652969234721576643242540411676832539357923927568105056001418020140423075056639377081009064067891545433413547629354747840835560506811918452613756872303511718482465863206374285328990338043778333012547011337377774500030753747300904213338460317835948375833737044215765632387234761181718698678394337165576133318575525144379705943879210653299342183659082657498713442417551115092063385601776031417552392173248523096279367023957384392233345215006700305003322242504677192640209953371704419693830769959384686676170975795413278643961926492619398501709517949371487514748047079608882535465639155611630647820377311048940986769344898606644743596325864457052633533729335966478736814728190369227908770549243621809398079293959545564081254491311182291293646928985206933898805517700910041619956156827644873494471792780190944046483601955387823711881313953850778330468750965482830275572928413602401711852333752807510572394590463121159706192225071873085621869097817569918380784372172383338481799292391612164800512418319206028073122775782816135702274384197007378591067985841289017425218699615787883337079287271755343159483337629571264067786907191188696456487168575876758649273051759799232527422078622765490241453484340527104241579374211907134571465482042091418555819024757811306750031873687859862596301588345889025247156840744663447692473426927226114742788148303996584810317670526689789674038586147007595260620736092480261423455637039003861759000171491855249772672311074567470360471745301874578958136613559718490941520668328597672605209790443394839986823222189966125921148428247236926863666435291898469419024910370314543869265185171355043703799686814218151168432329215127353348100252367202040490203470349314944488655824804774208374090186607566369868556007198007755495642385266151266018491458588046042719699301255313888730489007055683969110796465846572662772138906846178583782604671456376478483681596676100441291424583635101801376833500488418214306283782862997841303644355354553458019013832718364573734500266802090337649156503558647583996271809375670381717298844138967422078062747402980506546193617196646277906778543424161692233173684625904791464232139012937615552304727109089272217825357469120788032437766787718016892119589765942853226667687500194848087203736199521388223227176762106971947476490985319434151045487323479439014479586283941863607136749991044001724677628680409748060817834848556781993281981693412857960304511852181355402652619130209806747295735429382378628592614171654963230881683686899166253169123937456104466133054931165356170915869248043045491355888046269694478198063794751841115449892155407948566335564134015279936539107122129248520524374741071220938792124396408771346877338855683987771209140020572632118729053343256236793743404484911793756905743904571850600157696876790188597699148928362219009093444732161072706144107800328239708228969102843156056907621031195285315861366183890059727561841723030060139989645019985124001936057188269588033899477214783965824714450838276906895185635178691236284982558849358811532473695541127029832311484991935462154493534412478840772686326239455140043771817998436578027637425088840652756102317582707190041733403476483454450039533034158259528778133261270102199623246305405152707256924653224712486449475491005113497859773114411583382192677351112432314292913268313477043884527280772321674911518090537134980754198528070817279225101900538557428144868845675259503048880973152777233631479299437326481864777221333329828004836088628765469269072103954390455723635990417629340161543227427818790504181207617790635391874231852267868899019380316571033741020453837305218395140833655148537891496742199148316946162204509822509366246643327443268072287780167790865268900959751512166996227469621490935199940770816645847823549510818523795010867449604123519500924330804844015137314636357800488599794383592662266267676416076638157508177247874670220471540292825609307570323968339615149878285098011158592105338033260467047909618599381214017002118550217118538645271417941923441305311787458910158348868637264808368077167982180306978030000039420097829572908526179123044706478288141690350773132543833809601115059817324215201396340864674889387118336415687235792826541687992324940331126167732115175661311334057954186078217658865419566578877584826531494550907277839329123500883645439462247976757264502712113059673855567688694838219175943749280937684367071308253530843475140512820288050050131045386470870153257679447587205706247846631299136238227263290033311251210449785843250500780114939020748340137448420835893010038352114236241529791049336449782413479422495370627862514383913234807962074470082652362563123981860524402876916224910123148325132631617379198795337457510640947762621733476896247234568910443110225725668835945128313916388987639934799691217359261664499493876331398391540031331597716812544211965487183357509226953518656818805758063304227104088478178659453116002048558885504410166044323270616622596305774361435203646437470780114478109008573298340388644210152952394936404130481909932842702181994317244709656266085743926556966164043493955925083507223480650933892741836121925152331683446034397451185297859767914597657954649070069529350880783866590849487001315450051028280157490129651016291404017914712370805440124614131827003082973699563511274415424793752248103346464987853352742087608106596885849606294736217074181549824407547136777744414488742529146866637760447030055095706189830173785437325288689113215916662134487036490322918263587117468518223165922901978992743980090486928238702523717759171273052816108112520311359206085358242912392599072264144509920066832744564055938621329601079830905644461158451242555063640304299641452996091371652569066878195914841708267815129027105987128514768947065713749905097366472555225048248006269760560553411082482604351460044187735903315561729688085784265630929125075182745576415190405754566242872500738455049485867511257959197477680156111069935696950538553858342259934141033820858699111293831177535441520393454920338699834896892662317968664530097436893311209118859806140348680491439316530809921887084760850632087680462688767652070935844048054381314034901634085301263070978776039690640305207506326635369728419905640672133052902997048798880358011076820327452031629125042983876562646193473117480783441001793445196302893165609804025571082878347738280879054918843306542238235356915494081223728646815617324259115587140811087282280644184667778650103715057233023334791286964694894726069018520917330989196009693484082579892455589069016390464364432564542923527589679712689428339079855480944031159562565879154410083572647937826449019089101815929703637937390754349388474995153518656888007970297557783666431334767747281323368297463545756314908729599304509778683370132263632762321255952932234542360789754887958501766463695329394368763394606015243853047220249834822643572808853983725133736672531548855341636323595712693786789143014968897988739189732439458174639216606951207180504003113839276322362837755317522223606304062773285912507125270405571919521787890319035700462355208522234745739539141808190164197744077849728304082967743774564213531001568193305181129552464440128919510199433522975598129281254039309963067659899833406918358833593860168181080283549073088221029237388110349829771319239479412656621379564233384266100434249064762048255954035387238375014599206346162787635057162010381958683715958022749892305623061008077208775163634143436952235836608831797101871052932785966564122476127114123798197834170288334101780536369810843007750245587126273810591739716295667012148112078757713343467205596347308270842807666078073012584606234907120924070583916530465422245525367060658365629473337480369681233509067667433652876876490746951426722884011255323465671175550421606051586621462930539247478620223504250733139493856427041419886484212122767956449923786918585221152658094146555662992769495285203788443981494558006359657996222391268112341805404225182570460063191957478597337890333429836137404067954013837538673058245804774169077261425908652447248644101722892397991791976952298685641051886239560580135169771137965402035833933157773953841538433249424599945753330550678036748304494109476396171056033627224936421148630908607316281002128498865738039829070163419172534971801660570743380959999213793335678455129776967301484401552287181781553530739439452386229014466176171445795318425712973767559918262468161967268062660715061424109970718407516119175508381946767244187707401667993092634474530883092886992412475266810429993146297197155103270931770664640520423679026824352617032695311500234631684618429699230110281185270139489156743058485266499041983920170355982199236785405549231644363679220504847558798344782205785648723421156236775541826274697599314834845627493536563466777871220079593902417320808331778007715666394578546795668659768324770902083407736071876124106627590173359835973094240753356472665805803152102869396700508658044830579854528639679509228561190514362504473430031452775418191985314583030029785302703566660925118252529216253839763934190963440819657886320607292615196631758401636967080592489302636026226421357159760031299342235127824328549922814219751045636848288044173199110548395807573117346032969856845234424026456645477213597761992212005147912626188391694027179372728535592114058389579935997251657105820366009791970499075668655112628566630589058328519962249357095492222345591668379918954426592215704493646173288893576231866904112766220390526540048669629510667973723515053944094455808247753638341388006833881964831228544154018150832963951158618459657653253342946966860326491764601870032176001795786955912484010594672544849531978006481760829944311714476348531746278613902505669646128633327595332454188465538415032611737348740615638008278091956591570420456591753904746010267406679608937724444013071017512701892781076752021693967694055213062536685428160359172256251842398944447710060871676043138766259188549473271507880253755121653006967929081419159768017620732050037917390344883707357328038758546538516895480048638376363141324435042606968135570726131895788740648676078155103275388842329537363609488017366202722893067942331462954026997129149228972290762312889325850820036850476506286217870874803318593138873551847247782477294516247884047546858027216750136461664085100896808283507658950433689967965772662486712334822740570439899177505410894211042807219415908970966353320465442694199083890668500840861254700365138455792742548188110889201442849251393356797792816772733910818624350792413058733797054964186945316635740056477088594397078418099268484464877841659451865604290074011012213910989674361756989929395673423521808344039118529662687335420209534018157209543831419259439072944558998240137488924515081597473999998927317513773277678794334722011393530781141882274764257346837620330619874718895201008960721996509490063619633017774702855322313537174364397736593647236603113371235706747438779053992814850867815908619069216992344861140742502259924624258878071773650787710110482198147340014514761999963289704054799357203571417206741333034598557963016422800582285584936566732395161594138539054207689232169598100208193529213261992854765318839217211967374670647589155400513021755833602852040434590066524770710808701669283787104691085218881174741349787203772745545285103118837535309343351047750524624969830146003600389823131725186213191461312108745190624235082932168408706468340136756438598826964097658297514924952236624719218484520732286186516591000180393046242753400206214073815607980114234484837632346320252911003976574113394812273998152516359279958929933299675928442551843539569938871507475189492124753329342876765144352968148320695474641381569149717191837561681544065029146703755056624583356932325970034542398845099028113790793301739378390985212031475173099666903168383585977123413935098640771119583417312809231276276228351377367221429103187030658200847291204648021629323926103571499514732759013004221334807022882491741682705538550352650877467288014052097051175580635718826344871633588658000813880264566355298824203383869976654607086462972401376890481162503595035000850866720640126924010908132948538264265506970608062509691039982923838229535140125908921364138484882870455620469972195351125435825269946437917241672304622192484509754741057930401162045483002974618439984010511840800693660508558721564099779074454736217881610640603279005308661290976211572928674863384335543060890667970653044363612147877819346097510097874239273214807571716600161845001614777222192213548467576815241562783672181575243927039834937082785152116456543919618304100564858045344922961163335273840384916415285103016474329752868906484024121438823119846011153528264794225791099115114591274632111070009886698632548609847285259595910106357217750839338784390918704629277714914792493494160927312938761388092305448797674495961612655606605489506881988357628427587780897942123274973155854717440540954093812062120800875477840302484900347725663234876201225749085984168769491193808438343881570129570939298852794602994608570351975785852975045860272944073086644472368898668110210498136758829962838513104101883725677292615061899859246091597302229842954166431449045619941345654523992256201378014849223377078251296599496201313506147682335545797955131899140256915858981293748093294083723475899241680015509828495903841441394363146507278775126255659132570064158577329585973153065546235100548650979060644780106492402759600600410286591376119356464184113071564778614712787342535399553960220480654146824817446857497364451746293295144062837453895223947464411234194253287985602268736800838898849414835696579848808957476262878217082344566214970230142491891672083149858099639272576354240103509661303160825074281389919559803412922482214240239774911597458741397547189328576240971168672240941867769583170877921397523867725320907467311785118311668692033016457842663533439616606158137757618246250038390188415456300699896904349387104287040664092754222497748020370321716627828482408868792145163653676130073235885767165723022416002027787146993058892675695958054006238922824930300978895937389970464465593378013878974685004313226854015401254283799896374616860545062470838264991312561542547625930219298956521680721161860361547682269754355239521368942473996708321133064875948842990083344459116814580209844780986066667021570314202054236096803969968037244365033720834284422695686534497797611590658006450774160885462523120738068264719453386014846163545343244794096918683281554915422147355146237589885065172150565074756098795305327741095642482195766301402056353872654737879987773017004046910842872299347907337527866207552527232197398481290871115166963424315128566763101352689571931422121204929488216233710952599059898817598407771811903673826504637804662317068436592293278326364901563854402419587307690362034856775266210886304229823593692696591681374967410533063272717052744410175470078293203520583855029766255614980808409541525713718972684079309410320587741635767646584244427132753233944763065519999832546408294998675208389054625903482542581179221890264013156036828776192009824480558189458934293633382489876930694483355862602690991770962869267770306822964152012915373707273579976045274501826119523726215756517453457399050519366006256093458301929051839540290145372589325958142248430912586720679887406793443996861749058872284976017368431148659312181408994253896007504130466255444682267816055294427158127614622731299899506991490525723448493007918143270970267327823233827081935388706735722991603110415373998710964424319548266717238083071568284604621953653560927361262293815149872560608998078909167497210060506439479190303314644695586700484018570975797216818860165793091606159637625734908610238086366336889748365984932125458971549697191423311580309971463999839101569844920777627032318024876283626876631023931253192154499304639254170119120171486711377917252552767099340566899607239596589705869407339929558710956364976809771173524666851940802914171770584830036344882759805873460542971836974325297640561042031164243131105641807673933711274198007977800288262317903207815719392327387823677227461016770918208196896044051438296319002378880460303603004101332123309987362198852725351578878741907408130541259255112194587431482904648397513311638564228190807327370852114315548753912084376886231487651112237830771231840256556282147931444803790185299652852687684403851231944326554541819991937480033424643155075747427699680736779390434039409437917041238925983322311370168399797225541280405844896923557823419718288563616056746686310209096717095223490456385344498052677586550775977643312993734578187434200793908393176068107123079767816667973032031509900447627416258409126785266040138356969167718088396022172469924130441410702417246218436875962442519064692090078225894031412238270529308847392942092590143076864946282503620520123270753887999829230533906322598107145095099057773440404208438913234746357481239355753710727748454841399573251277235987803589053202502072705212080059721140403138730176681340852297768201318580867680866180334005068541074396521841050551185404568997196500862482842464967323618796300268875863854829973563910521185268825009763479329867222866706773002122180254426405211947223388373213802351038775583540399197320284591977216871158695842076250706308355435882116699057622053884923444140307321340066121261939645180152047792035904495885700537930901460051461363006753251653160635576412180494983435581791281384195560705955937002596723039779729080226021358118320791166105670886700349140375128250809834142237162691914726556623120827077717949875138462853073496403343952879473676758152303867845346254166077950651595235587544052434233542691012473434675937948993048040568300172482856543542090340927653494990185999339836981726722925792987113810477057918941815622631132550630682547126456846376879544747621435971096561657629025733215913907988628686735286027379846574044396513397189758322195663080167366940482012909548185249983418996343844841296385303518364671184635714139200972950828258281799047558363299300725410375079094659449569106789865232356745647478099563730085806311583082347211967317453116244307210217849842671698294099958400990745443180408486137910831033735041208162194525787854546619054115914331919632734223611364821633027521681983994340850852148907807125758029135956422518218628714672708029359702243918227852307606510551406261029383634764840229364333713703166339675727588995511799735703297358843333703342431039413860263045291234096272068910576260448715778217930180217197214442583118303150820256448308037686079505796875328926159758921646946515117323942387156966196772896980800728804041247017153468914399224319186178451717258343796055219745814344613840077793617110888240547802162950712819500363241187868872319284012462251545901461087824876729636977140309618627871440852585069381897793171397740842541884737660770391691192762951705434844375637660152422734171271518320273830883568338461591321209856443450238643544097863545920450901484538048368230546400388426539729311983944551399721770780578873159843173246695826486817090318056358105037010483186276503463062475052125696552299203359249713029743182967632251341842925320684315274858283015365501975401454953426677709552583624080167503792784332577434978976091074556366195607706895727119782558933419181575322252890975369373180752813022964479613609358671772500137890010203147473003560992465628056200099368357389182242099501649682121571822559039264007699945465318837475246160542803179118672642965190284901230383718576729859545709828213345108138674073112878424960994515520614468803094145007695023645452309275392782417896588145149062266050199332903795746601855167187804970558879503419310775065806750019802023122704667943007877971262854431378265392946095050472329235888715804269717045511059963236204592399982073640311026726447784188476129905800274893168719903878969065617816191287291036966780962364628795925855615912103207725923782411660130347036138117206785607435395908033370100972367369222131794815825958170625000120402435497180880437144222847169932332329095761427182915433100141953668446171095388235241064430562223604027312918566965479007988502348286230016167508799625631598798448667857198689606981640308046235054738946320316308245039303077430608732087117514652036822008250289011613526319110996089259780869623008355855323074922604123516335867901536495427380979953114640738361344504672281364642021887699827878923598732786871180680307353390610360031961652112101906399990167312268684872596764603058762025394260701281290218656792921795059624338583850411156668113144159252900325228675770617184990447014213688518781670362961625523270100239829687060259369460060737089949340333999757751536908290083098324839030795610982055979880896134814930731174750676121443694672904106010261219382219268474191122502521265250260283280834474484273229858886557682486879086706250889574547664430875753760798447596406639026898493499064477671874818600087709438066898355629113748752946044134815095214277529441152863419437680078498641277657148984924790418702534243570793989141689683537149856402236832807857417974842124490373674896309019366627345256318724765702959825187283691585046882896301511479071647513047109682822732641746834214880749491613051636101272530627390437360468607551942659810095109186164438443481968208529045849643947164235992521644868438682827746477701246674108807177485229526745899582340459158708707030396464049376045977169016325082835284780116775065963716067814964348880425958953134427787870111545693670866208842410733237715299645862881950624317502289311590765202110131308208036393833039977342272515401766287996189104951141288116895831349633942363284962273785366813811413132985915802725238732982857919452213544103565346131539968918377160529006028119688512674762095615823548616879549069879129298577050305706173639221360046084965150359202398310442690217349609700406026200267760809989022898037038020851594813259784319968264539329930151084850470452911038509422206493648243810197450416316809354774164553243995524525274079479340164874312969452461222815451565234009304669806438572500017081483579190139013340775977268843271535106753657483057469405389648549251199266013468380486479527390259825260138566219697403112199562352117125346243263170801449953458351594935185149001416207788709738456224971945278088762250354144944188082802355171840176088433187024223340282975783411674426034892090198258650563940962234710414709112822468211083667431102323063813350562815279396611509978717093344168397748662557458669884471202445973800633965594186831237094296932353457147087615129568920723975065383483739714228770233690161443795101642388002756989260019232505724914027769248383869026847376163739389364447863204049878350680593961173246162654415666966352024819084747379639515879259536667046537549303956661625340012143150280503443364625182546044397234485152236013656129283434834385964103793119542889344400803614712216136607917184247393183910278003557808202767943202604446701315169646769648210646465616806398783780276840542227460415500786320839978639468195866499867109879895577254388424555774464060397767952269576062090281659157387874232474830273238548977644868979614224739129428296377328478934986215031770052669154787732175325502515727885155554511440791875486890071204402977942343616903297111124818941938121131568113882020385130565814092867577807590208386705779971410484781965362173382971886356942656460207836447513664627676042962337765834420434065699854351019805155603431355744036269341912032588263278059218514960050356483622580474456553750636564786765827894460093972736207861061207510653293939124708267880584183290810498723823094638890021782675176733951284851631217156164492494287947671632250634211885947587794287228320244916844060143630707927355164472930526885329132134251730827542616561967259715831219306944588258636027181265141065980657071179071729869400846651882291953212786347531828305180206637216671090089636393185137982839602452082466638279630993531260392698609657733669881257921099083833791581544906413353501673674218480313838044068448017093259770403093032977041046643373442861429504323973257256606519933295894659478374593956743984557478931915379389802232788901042323053752530917394609799692902708616610501693547127790564607868374704175904748207419561410855682726729534392447550919189667741480339014116743205187506615642708876687023231350880642811849439716249592955145747959754743470360479240356518306414961556278462627321550471908699468590767753665227800648096224218751297270688864355436392285271995702345656621936045584786771289802016134936538937343611071735942282009341602644381639903155790925475020471155268852050416807592839975051285074166430413075885201180601658985826842157199615512626116481003925199612656933491188948820485691782904311903403980204711588808663041101797697290257881970299737446597136213963828919994955508665162635523368435695439102396917188321600602739478190001801994875078664247339456950044811750467068442904318999133492273489613508096565990588863320900993199631275412036328909652797549047384966841356788028554530494288397639676209285385019638024864096897070842708101354582675689284017134716418930258042986468970241516937641697830045901199234158591388337511565955141094975125684304744171723795754420880902909994105584768833298419469358020256349631064263255288887005013648047533483593191547238355715037272669622654562671407007466606785789065229378474051562762200125889020687150743955807154552394388072014787210940798473980514192046896491144828980667681187368666301132949880432707234692500703334541271280594313469504717771016042238839755099236570120319045477274347310462824292074714995292591931667844422499122429647323920974747319827832638186936946098405214030423865133743444312155372497066029144799245059178389236094606802801030626141339336270301898191456347539828929892011548194819319149076514106831153856679395725936262519588502854711441603528391059462985319764197091110627783024435159738425747586651219285599669105831631258961519523964689551834512069815609977066807602925777925111207220445847205866087574511450056228635360525777142986745370058505260777395839691822580466302217557004254806116149603097513982981263429663450202728766610420015713439589510202267977138317011691033999723185192384744637249568733747709640756200082270932307075812104229510342021086804961941871673023506824329420668051215425480301866292467440728115989688997973845146513839924195286679915838757385161838334496239468108033257309954872705304276023098839775945612074785230076860301539711782005387400685492068791693544727939227663769901208861833565723809512603061811402466000898359756128240849205139713767384113817210920842821550698670175364863984132068642494197653756181562421907590971739022124386710736075027472989756183603818151018528393215401210040049799490268365510432741333760137779368260442081780313457208446658011156155625252923081685506402032916349947486577678761699229267785704732278889083576582755765716128503414043112719279013565232669742286416321290856231859676089396984707722636587850476328636345511571920467229468481969356490666466494689261017352615757458955738900138083552005505970612936939835974715754619883719666704623327789358865557781349538407679811244646958802004424709255383053008957108915065088636845941453201491359202014669355308938421262161952891342856730217228427505715378211403863496849463329799160045094211755083830159178583219714546309115490767568668248044725384196617441233385771689443568934769468474422098835658367675690974561172621007924506219577479216884280798746032786706804156468932711873490430366101511701267953111722942359438268061307161188728413210136094747097196844606689939503526080593207322545986429010759255306605118223161033981018300089616584702324438028384478208914697058898733326091041689674243916308306652097317746545993599165828283832250227521885552703885559409672134792420986228489357690619885098919607434525239993856618766130754706686397891105476337106443443152253106247181923934258442960242408876753160671121896200088171388848238605138990873133373659444233581171610240503157801416761213249744239607771737879797313661030832619087768766054836486511638033967659207617239252256024822727853198596602008854949125648817686091605214289139084172058738382992074271392890916635347162295240334970979433735195794268491675364741904633985623921908796046140612091887542201041869968503589409292622297294843362300641520713706915572618969489838265731557381144542138808434609064751783370667981332545149660834968723029270884344657409290699181269800931985078172054822534029228985877768875610322925726374924207878588895351838791316552597998965611252075934431467011620410702657100727215753297459192602937010043691889192771314779503448760667011875506658706097015076162340843339485753353124217303162745632599582984371519091384300254295255643489872384647460225345984622088921557004215251380932231202976613543890313659315389517903728016074674140583439668651025730674132745964978392649274745543181096683913392464549963502541873840581312328571579439873414969500619989814127831022369159124302043818688496296032409325795099398037311291040025012896452139559675051115992642948674072203407053175271847709511942202250241548779990129740626606154346284139521125930702133726787119987819126852895711841451344108418047742840655831282606159658419418106441209010237776783210419652327039993371566782909380850110863933152205417037124415430675709571777024965864658883486012199934979632315080631744766933817340914056172455573240164848425890063922822798442347403650030548935108989719755632362289795122662626603519559977599190424479573948545481498838495583732924588896872510385339144445957096478901676566126143247406277136006095781163981688374558326805309612406249321834824912860090774045289572631320429658211313267912213218007948948730609672903529206384992962272047882801972434580699990008306985673363611708170448040020909491465829608654278313512875442503594758904835861519320248181790563209214264567234064054222113099071796459298182285206121637062763461685418386459405909590149297493399365810739425621432843670715847604898713726553277851847275631047467212991435276633284299916989458914044023425860190510838384173189084318199311797885883232895875330333684090887409045673777815482380438049698724226747617693042209535091946179667395107521793772937382211804795054811963981149063687098781891026629113256357837261175891870123996600188917142976270716244399784306689129721399512079056965901047034838120026202782018484309525518597541472088767742144092464183884810751621351402103845860418142132064585561943308057348554718101887658933620867972559959781812400203871869039651778949094341506296804106549653923672189591051838578081281133322060960816472547024376861055716772686956983688385803895613714743156465943404127852922126155834442906596209416380028943123152716270739106085512006009076629363371944004387853947518181647460279894700254267520650359112263969131842893470657663189809085100140855194531253751809553900136891727560539786533131584704566975818304946473852974978679290831044579503180464137409456702200637050975477804834406490496313853932933826078956254140697488846875199043515019177031073934404364965195659558730926407481779148206083680437642069040725027447291239039078436686480623535238623012016223624367789293400975816945493675530221945402938910431703560523081853560781255183611631362972725154940213798992990951408029814247752182197432468049010371518135250583398555378626928774586446380088686705622136843144036368073263242506242285844165380036883727899606136186342529303299130952602882005669674103040753635545590481574079224926589765346609718680827046991553836162083543583529824765753564475281965270436166627123678745586675088552727282901450554359323446914461335988404683530586058812261742917476831384740866374494934421100746712575398225155427808758302245038888827376792444254607984513284116680272845864347850397522020012376546414656860368824240938351764313055832516257750160763413849976362455614701641236116996476203756638045921786498520109752556341113942981791290873646054104320238253084741372515743576380221761018273029902282159455368391667799238304620207733355504558094452859610357057699436591978915141031419927842700007885189682865446965017492932380909317201061032185222592784837927229155132644369052661222644405146249155094397512179430169187270534148688579738078176311093015912882633757907237257606317263794233318923347182887405966197659492641469225413377013462340437325255221989474955082222973474807817136945282527154822995011018602239299097547758508455786933919791231200681026037247766490613099435488508160698565977952223697458602550388954107608535494133800442969101467765389086043543330393372518465290933394667612874674673984451468913685862007303057116401308447440289269642322704771729030493597413957570260770435942821460429235508858772623231955343766407011566632799218566185654005008521161865465768594082275446427782309165405848398077949898132729112142071205777636410417482169201010897795924225664106153222470112680064721117090076343932876117017108384233146700638126110796288441173294711539041829532529885408026753505112069079502535577938813232230002264990717916831307611275362268227235596738147348812550224186568100905127708726128199185950840457053600676111537406783290521051702951965682844849499679441454245932395556282944981592378589288605887998418418527106067262241012853284933637845177027214401089739286664996430821509748270070589928376103401954023356278870854888610297373395986416775245002285687326334657471490167394239704194393490634590317669472434199901216520190491494318901658278559677809735218290048908512861952425942717961653529037610441224364936638523776342348426746086868271747538871236368450927726378844106110090396689875780390558928069953096244744037274835163004172954824713210044430414353679272489692051533972934855337422598526808305695341964220025424535151011881882591808104284194825873669649468256335326330968727359527255456680299031801963767338983868659185744722955482134449089886522184831271759889644771662999634193949248463350136802942074515069379472852804324725839005942518369438478255092244234052530063220995413934998056049413551692290455036519872935021389952954551670889470837881345184109398859607650957107045805505188366276444900378828010430469470727802593168178307655120178889040179982456294273962034665556744990738261635926561025552165951537299530824923443513632502181598682478626776230801151869073251478974610104120559663954562605045461532042027995946243614081104238743404952261280337662700336422426485450930735216765218387246861322297878923588943956322534969021371778481315914128924881620904704508638547185205404928543267365793445392383427748367756786101497067769100657456923655720728898153724772710379881820187387581093922188163930429405089615439834669649020399324232735380135620938455779867818434919922950451986357724375167837981970997041218461907847630982108400955297390599470661602418313478665826137003813675735436373682157644521303263273591421865808520654457277268710898984685896364454664508683964571617421369783210517717165722542521255643537544773714833792528517015313206302638038590876801954260063532188320019637944151147519175917072295728413468701553915548066286170227493639640619815252991319402178580342386216885869519353224385486339350877769218764523660627246576063371709834590208846838392252100786889763010446798800463492193824458389088883209356552387465515378580422636647232770093823771187485167510421209622585015361900063984842386731921652680635043237607225072642519653289740699634186136220761699453619106404726682367108996898958973426910891620783945404368396523190601670838929317636856155593227808166748202583018488459760938064102319618922832190121677265296328264600297908843477407273474581317874817765558039007929289725458492521317263701817315686864535527883466402856123603896986783760785580615100274388503372539156631344346626332393815329011659944531895274205418884475060887099246167684643070755792615983855036026569159878651101760302542345758680075516501219307287246503909694826199907527332533939706849130051697929148615868995169505084874377692804905234607558768122845095884553753879845839715336821972673413147829963802092998602774516731067156212669059496696400272967762491905855259175888173360750537730360335690286884720245902149713840226825415510572470860141568617045219774548536066153836073056421728007694032847507559558503891681291537346528648864899706375727661262365019646010871849461914950864850014757494444562529418876212054522458546724219040622679570331932023416539660755297906586099633585553865092289248950612063869933098528137954122521525661569181873126342627448892348945234291410488711667161616584881083745211571681304372422978344437389557981267275040395494124532326707241892684662613674093016063291753003908625113674632517985509217123711330682019141898096850004605026579696110469579468730453940154066487884563836345365139412260741910081633242767694020958354917887041651848741669905349513527839379396943091225031154244193911739257883266359327718104663186932347085472686684780056063285236768956667945095063456163743854182158871660390378863059043906177391224143083658476005276446352154138039645607163342969294364247732986925541560071950564926642892212367522277400083122619044667155031163415757996256404992038663442328630384155274893539675355115601176256968942529214574071794998317428262369498201527298544032987893255914086114332586969036408538131270516908381799683744137253355256344363678910865668914483822366804499363675944118113235916285771676972268899494272191019231915500098379101610561854335924471164270726749286410056795994555941427268279870912011187039543381220808243948500728825706327216157066073305611327513785052988224848400668112875869146207814452345545789030454609397654978691419280570925897926960091178384064141627865220947659754217225944839155909989265565724719497966415843646387428756909270181580916266051222009344506925888260586529380085385360299602971070508067932030863479826824303098994741348382877398890166334203917868461217571882384746302933489783879055516962807677768005067741640947665240215621977395237116090534283432336196285434018338695621147501320154438371756708574719881807425136263253833099692774832736051374076455628521066721289330701328648475734889730512892091120820138414751052081246518291762514666836592387200241110470840613042498091043427066131156346809760596685631643050399158141573553000586594109348382528596575813866875043378255529721397812732882003278310904627921231118037939833464992829810480105916666733655767756255836258431838034085742641380332617871430630007010492895741023052636999162065737798458096086651740858034822278475865409313752717583795920276590541740875121431150030490917664172068844483850695999401683365881247216827313844906519979449607814982885045638758211305738626318980648720746063586754061064771315399871813650990291927988452062524044066728471414453416147155034497709273874203089583202758428279827978000221281447006445620781471483334683867960662739305369487763545607647035980291376221347809986719518522700188683499546463481942821736744022871975417392001993127312731646604866454322311630882415872371548674347898698137029481324261273503860331155757947306816361187845998482773794068237788729082146169434332729189560633079383030085087256446836389470388979835723380816994280447154570844987394016720612815226602212114887184073212479770997382156035802523573502964922239485729581182198954766288802656069182068190031427185082401103898678602083516341858807785224248042022050051052712310059275396734486209529439150274913214452480262762581448777881204596468799674390489487449041679898414316235100456210266796311360797232424040361248568351018284428975014475415515027221885647814849398186387570609181490130919109687538346859890102474656894084897571980256487409352738493322565462414008450281129778880107570103170488730935732945614687007030158950482254166963003971937205888742668401783793668960780913310115845291583642251172381894601963243258891351490708343738014175172966243397020558793460644541131727650329380740544535383397819324180387866536176287480205668476114633371334445963488031999998614296140576186811570961620226891315215441301697592388586335851370767481565159311557213933927093036952484708762614092863445964691831476093332347798183662922173235402835235518564210744907188326569169669397931928790680959006615387138590069357589925903170588949511950577848666531156131301513826058252059677718801952002016692205132805704696969274398470643550156210148003258938334941935074895292599044651452765538305283681172978682598949773593863382095302347744341999602223193290685919045601324394917969744128646010923721104902016740319956003226730319675802262784456989858524886315506906545194717715432285125002583319145751870131882462161234332645552498578020950388854269806720764368227001475144417329002682131034860578898337953850763680885604328271713951533515148486632878263059817658993031153169784472923110454234569053330442525667103801224378389059623019962938898265136989563106068981164456062679343871414731196911568578386160165453826947621236570198126583147439965098728985418286650457364360089949986796420506290980045743218946253210831791431102743745940457304774426428773671850222311908898052637510138677124904566690104742761906264151998083576727315221254206462987228821320101230730453870543117096539828998636016428239317867156910809867798596740086304079375554378982879576449114782272236483752428857063338697476525633058610606044388445998331219801150995905320855179240075981163837843984880831644846128031070695507712231197265209164526060069614524393428049724572771291690320343959281597454025087547515915157467623010177888348823711087634152815934491601187373444387581529988485591167779629139622211804817259676201692988923349756221376597521506911050931196344556880793651474922680923768949308712601828050963915257844555670359271901326971092156802710031881260771895508471541432033920262511580221927359145155522090169772701689557851710240783118038258390214411138322586157605482868159583362585715404966817036757092744463643159785552362220654154933671995335510937910000880131336915516276791561439334778333995344217609677292445063411934462583385318660818079204740846276232775924790219230194645627618227286442755806157447273752898375075409037157102512713539861943042469637952942963965416940751694029370516130402701636228472455346689210821545902180220678739161020602281320708186282412385431112221035729332931867746445732747867763932857255675103071251194630955434204838415860088832495721715010438747185991067015253992140500227176023887792812201527139330644689625488052467072154130644842161420964990905177435666951089795031286704777684572958192808969825300105195247288595992155004007397022400092970405388091768946623399621949564215864029428092351188162404845768903271371305220369769856758162684149218109664728125536146003150383869403860750500675166763462483989767928067246105457508796385528907581751497306160110856957028481262257144115407458993446588975425498140492977896459653926454132721663170362972692448386198825208161133991107127049910103147917375333441184113055349837149338746146814995817139836797125813059314255029830654911591028575558440141574969512851119791812014110934774343167076630254168202410943526078597638362548070014839232622501800241958337976808479946373005518361481800504157797483126387019860807984774591276558353412165487046236820184228438627330365612005767122270152423954973870967162373121089998960745900250352039469400636585206108006321084696825322236448501558369144835972924291944490939382609434720563545425257841481898615263844895680868151684886309164324409017047003018498696479827138400544874443466851731703743694423712154996459960424847872607665845034095181732131685699645877606311282635361442719402610938083574739118887398794124859196421664776827554256882413658730928948097440121528275850240557541757040924795635542845017066061470241133353255839900000799649336881087530349971501644908325475849280554898298468205182048779659567656363609416545276559132588822841399083577404458061930690368777856238831621179999181937428687109008774851015863559694531824135341107135699453078251587057021128984633643480723959449617842204227231807581089133057897098299280173592956426494371299416133677628962867338567736399014809638572649506578647911140772276175242713877215248420560603926887055536228279520596419070494160506663025546772270867006620564959900968438337040163218121398167099060754288473326981058779921660147513179191238379728217607053682376918230380120356608755992374146458122559809269892017365425795109555103501330579854600620228877866448376426598223407600050497030955256686426365480822468452456387542535002659631845780501261983415130230114196008170767256067292014105685371664425635712655907006211257021341523934444950151601528071857982448692785028361005690029558257406343916974736716984551536174024166602321574335947631408683315959972749017652356373906144785509892840028393448723485135391612182695029454607258540658896457884068236102704102316497120314259740761159232184965421668138086316171756916459940154702439124791626111178979296996319787219800832982556530905171055730202745491149410486085981987887339904556554609173639767197071294529963047059262810935819845895130206830601720493156330357171757877336055325653359751558819900025406198049612781611022826231210878932136252861107369307586317952121844632385445772977845273942293438150607094500537817913798311990140174431564789792405044334178647930368153917078175475102110595998215044923123923256902245297593190503934961607730824743418086727625924828751644259589959368906944439854926473560694547818080043397061920744569059829781011837785726477227474643025323236684482727966344328526815840311087131910890766693353082971032346746023178055657829512803686253143609382544402497953817704391774050839835896921893221501705752373321129162089053313171943484631599169789754377732384229078891568081587557014729084037807166707802578848849058772260632873656988976854672593503049698855063168344906569866052903141341735770715698825687035317127369718893002908915031426587943630044519571158774437558714520601145625595689210121561994439944398038586659169090517659442967514934597466744295485225302908754543768695889940672365216706719003336802975510985816261640092214529240017258171146648726327088114822851752061453924708419719763143080042120065688359214307239717200777364682191093595600571101241303396299307540383647488492272220885564688389162408481037517909370209520201252878421870548215448921156112248629448023059223915104178040723740065165668607079946681465553736199190027017129081970466406872304103642187374117887510618437806523798940917196640964613086160593080261899708125544963498607800532860475073748640081933985870641464264173980914602624853426721126399794419038102845340328783220329404364574539667826710882242102961396298219031074309271494402653559785495134613871611267347501190959560210261210166969243493628771483955993023494297178365458628386927625922038957970262461989346635729726441215311579592772320468151437889515196464689394064881799335917065185115683961652695246388857093438600531332971792907882534239994567148702378835949764660310735681594194496034002973854224986088901826738781405982178278142577962010045995329107011372894108267905399901842348826495554906018146230843177179722015271178111629602866567020552285874793659371924345014224610675989304798323669349966378862735579734577487866469003821962313204204849011398214915215805853812880343045571987082985844116992118570633394890650279262400709431890165554401731629329806237026727801838864384293984169688372559216233363842382939030125812374928308561865321567264186625950663530447092769980880211346686260190528930295320944051467964576912769837036891154375411358310444253151958729718495383289908756914408471480210194100797933464711224726464346772817084182930987132047461575110934469455902588077628973896886494862364102345860734709034447274456115108779298270411960719465371811253135392433784820951280570068838325154651892718198621728495893063566617824889054718754532764734523069790580182020921602698871939344831227770383483062162820121435814461304269588271560089978216989228762054596377888754139803710731004912278413593826847952999182138912528430095806688170777139832773653443471307495920856398155887556659004296750252785483419432728141789281556247327407725582482861319291776850657955928437972588097538616756775443873368150546008930063883062419502766769263303322436479648650720414288150360124597771219265326496097457116173390059467350238194816859565964544393769623968243655166815118731549711648960133094320733783251195808106615984464116272633782827701468467858562686620157333004871599069424107722333791473532079994727162644602040965047245244934355124720131792698126313834313355006863733493755063803102182607869315188365420439823501523466185878786072136803324094543742884544510023049585481701821248035569196770986817204946821572536394921913227112139746702712467432030642537897272284425908387927977575481227919790923004284587376253668510181217768742833631553306703969763185103238725377633015551385508625801638284523626351860451115711260938779425985652401162527617354634876894873847815884060623924257334541833734620691596035899926356916149378583073429756986713892059069477049118479837691778502641859540062371202243722382917673359990159439090318975167323184505864377358028214420747171092693504264971125696521154189096268238046761947029573551398011535271847457750393803407814362353583205824118054195175799295590437762640551069845735856178128916055636023576877167016644600647373763228041906206418100494436118349360350720545086105269125360866013607173991080432299956482531757220171828126308449329842762033688577240088832366876724423456087504034075761760661119370552695749502193621087982979233869411471994238758032964748880611733353992459453713254435844592806612174344283486962049979917445713239344564548421176169771919537991768441624008344799973476386305240002339825850779362283099376667196029165562525096873399619772485281037819977011298508771460939794466932749855088241247151107672975307304357808830164496034289550111699718076850896385827327158792117797766121685679954279750354936328259962519266554344945190117481218791471970647055444425295543328104063656364211856472736110233961439784850404083933600894587815941456076089374810846835419764917177950830022057915865485136704921641086888556327303258204351315870362157788905558758464864682369498602095054118532609631071813510346441284856806939022164837246388705102228032838650636099415196351264269037034076212491208523874970377495227173135112059734947445357929498073595059837308312332432471851653644934718532830665194441256838910909101570018780376179732964648470518598403580173329029229787043378546838096529802109099993284858828248354176486674662674702278256991895588788757637921775501930834536017048646583146881239008918317457701574544389782242862035413159607392546444385356908064834449881965847084665624832691149182896480788525404637588809109993860034820049332429415714966754579742622232867114420585014272480732599784193524846389819727743430480504191350922406843724116420188152036822041060407322747429021746578194791333175645148924538866320074659508580138814238950736578531117065281106361895241912029980302694332395250118083525143713254634336877504743257271585122543807891929804458272674464900491467353105864649993013602236101628683785712373164620798620470897016738711383925314036843755020875285838514544918115207469057343769988982974779095159066850677431178861602144690022550753620357729705393508313840966773991030501463510559311929332555091469014291553314041535193798730031061744555883714152348498274788787076777842936467903065468333328667805102822899544376138575786567222899193600722041255300218162982179774416667536216364972307542984731169910658200909309924511224960793408052642607787185518006307125934859645059546285165649755984098791214977740380838769840182584638647273010890582423409140426977866263743894570453401437700028836382751367920100643955364607273333438525520971475246115608394463557706517310199619239922379318978088951161984312763769424013825864483328780159602326815054086034798710312230050650336942135678065194071442170947335130697649319178236798382018310488967016354075672628077052760429021744869052741273755583008006980216924329944191981809345605938658989588261987597674356987728582247539059137767372217606275611358148823272270555202371230174882507001995936656304942065064996289345863061657002707023758275191606120725018972228764935644623604773961680357978620016606170159645181097573337372319388375107183715783432866506052883360689365568492194590280423177642204580526017245891322638368495331101679588099307175184278756315754217166758415762733075062977219912340852053884245979256525445965287355239483064715801278127360388268006334788724224107000201857827044527664906931395256559701640301889671666359324462173344155911448005044281201413969420271358807477076731359541671152640160703600117937172878132672180120524443789539261855572347151406962906433940258535961312734427778998228432388383092540912903469559637330442493807362453230886055484727977507012333976035750786966094152735359641413478934480834092315387619213335065840344617235507013039063651867322980229438463762932838512034000742451923877254260857377096740971445302947651497220616696105632664785507965856502672495096181015716387239845306879484318568141438859928285872832937062357131129463661529546623488836993258776599382364708631870251203760270512496952859608756029391385134759250844075170342015694803764691178442476282047727427993971433590173415949720915671835641711038383612327863942996138161588925182042181581474946703373864946999625276024521051384354045741192415981614282593137669786447679992410111918589184891763425617826310297221010469776245919827712328965702374808587647313392239627032007835948665469704737142981631384511215134017104762261286241040835026814498421182497462791575227824168573261483558760238222115715301157682620498127636799108699093609806238361107035932316480787299925879972539168046645257927192843813533234233334089111723493755164090596164342137964795623728473145263814699511184600205921214362843709745270483999190165621722358946748560583949171057194210776370235877484159283239299995668559923228159917045061574524913285505488680363842364381596223126093553544708229917177292306661033433202052529831638361378696322985258328320217383824198404939617713020670448549964188608673439494372558533351232179146673675239846068335063265212341005264587078754996009100286975919082052499861402457642008329377109675607597820235394603352818558915470289391493707465203737714429156935896406214366352161158921055733919918806379681289629966871179642362673785158507142606614199431116981715538419777191885490139846834538027949704912632541842793466328691861257986233231658359972955668613494949100878161229238253329182410131576238726391445124015955447491880856100966165960458309136925134683046945374162361473586505290809700469412053723449550844088023134021608192889467377474292109093441438106420348476451066013536332742109474131086575016020411719041108717254678732216315665094621293656482852821233540063419663259339097966538465085135029615524131240873132410329400057745684501693407871647372466285841808346006810439380395414380067575189886886680277830683722101151396993604962883886836680375832864214906602127965519870081181297003516949367406187059753405002241936558459032444401329287698949191056909364662562471896756952876597536053709303855775293960967265904766352358915886885573871506372971841385834118833376094443363367949381230519250093861024733991978900097622207116808843118197630250950180872253312789962722450612066153947685070733281918949791273837685293098808755215139765293959666818159461486304718651697212305743914607008152139212025624576090106772048346234498568990765354640996786471143601514940643042127878109532682306387515025255139019730339542681241479710579356853497284290810876527587181336451527078413347507398420923600721192484210824835644512181730197532680488112174876610774264538370878645942081630232335213082073162915109406449647702113188870174767081727104565219778065728622655604117757112269695355256913852976073787465985538132497812626716553854156942328930028735245543223352207469732761113046299383079176090301960770607484577495634977714971953743581503378073484947783017344208166768026875699062494571837664658646140074916738120018507198398291991311361919758602928603219175250710030715638371551263362611903729665539370455974792916359984032179693207103461082782945764844490181485740532019935411469488300643278504992063899025521690672687626564375760336058839671166507065935391124080322172654489137208762175471767149202457862371414312739741512418519218212983926331517145197612414458358130641897127988132742472255355006326354721312632420155531152069006393980101803685125129563741358441318081101625483805534466017204705677220100485865891138906560042820224794166266740404706663398332923056161534583850975120741949855596831441600237117814751478168544956638885473853877211803980115450243081168866708605253303959565933219257517380336126574060081452434021555479060267840032849662183592797777495022696347107433684163839492763684629936306895059390921046248697045350933250057598913959888503502818651066467055427634287345464081149505379266572073009361350034824648717858079156341536989236244121081813512360441942312512203167698615942720035432703722374370106051718840178194562003067766380242171608107237205194847517718544711819897599733533886667765948860203839298757571093063358320402690819171584614217081665534528377305847683606837206646466939898930199724085904089623928811595639621398861111323299853020226929111962815781666742630939512754058672080454422206289497437585162877946720181567271880087489259739955192790673508497127760375137355266533978369881255263648779333584447758371779837979625105378083149908659880530279008572262483705691799780781453540251088198759689755012084524328805669841794169805442724490075478655299094462248261084395753640219587395756023627270964711820139041569864294341551785497949202968088983053822677095640843801158308361467411332431986852615118202564100786470389545074114066389266640693588222497911936254999425621430847381992421084942455107630906859700976751350195442243822980740464893405660498323382155797392627151507164600912547643664736148741439319209861919994453578111135530241595985757415555119666939663999323576321127315885172613540860494600392225974839227328975849746681581542144135615239325201907930028901688566716381504468373291641569320006079603870310788060608519775218554455786848170828184086515502317228183583787349466489855604151016558709210013859284234697767568020221731988770376346734301826664885116387527817504989913459910715060230479204158403468687079195006698271127933506963406604501408855472440274486523106105057281562189125915321124765791199640764870355229209490844267900549354234735544812833491997890561648981015405850520718128418401213479708622816233798311328496180015466490664959920663002213691369899564688597688451097932007387086498188538799694058223567786511415629262865169314727414565392185453696156401246885419687975346330424102532089319279526355995390537978886618713777196494253639657035885950710113525129840074593488400737117785074785996259630200166329318123713269379606737473137989945649651590821715420331673586870952510830789306744686864016240237272408268765816467543225681854026289783636314702699987219264895941252931238204030692453990987832742634900702504726322642940494896234898016576452243734553783739735408955950428830816089143465970550132692253513768407171624129005408313109680585569984521045241434570996147993099362565063820084598524479870343649736580442067068015571113954769894264742594839141968898246097671089127850409013270545150360330771456023839860995486727449131137088634357906297255736817018663895141231406782557062792940251818781429784904899682440251127831112513357144119621782844532381428506552747441795575865033070385198196755578807972086628018168133676634655682390744052689407409298134179805736750355949600555283868450608412839793409300467346337038635429706875891314451386459116131371970957026175710362922512895225253973669552098423393062885182380530972049996939889793644802299519521167001375218056051136804333732112401046168534255355519983218015928061960789483924840480860791731413896002486806290614169940994640263601789505512484827905018776332320428949409753443192143206067930000989573806918193387071843438883317338326223405238254993834003010658244434990270062859722612516947340673150019033600833210479603458601756167023376842860364139298393014299717051900587013160890737038166869226359053084112544199720254104379579939432671448219107759418573657994476714226675670806023076738044023094207025430119683957349261422905775446686238097156560751907918996702687553449900930239952421645942639157772822158953393870288377470009376013275251030259465570757313470703273074133053027710971784418762558738912795953045697787145433511786776440571419085040538119372922029451777976205435079693460203591757180285585794968395245988980381850297510153958116193507524005640845771356244497034348832061842925777142302665798660244583906529946306926524556502353855342892130149863522647159962531473963021838120901351458116514611289808481171897941122642553992570580535190520191429578824035942436563839104237424867974284607590196577703297817974461735860802519098989853311063963752293887040127538386442700410813399671608734265422335887709282770705799692867552607576281548624362626268162997704665729933277074320162290045433425526487928384353943687239081648651542303033729156229007190910260304481084810605955623603699335407259823062456110180129634318410203952717272906036967583338756256177770154240444676473586898397772367965051968796773361077302625877363914821862677050470649533055650735783259138950652755951735222523767536427738440052156728183804797113120422632101001988806076475004174098910749144736096277102946434760503939210212545312618502753517842289942733397950527224476760128833276390091174640554203484871029031276119784887477795383941548737716853741971803240885294571219060294134680907497556342545263398663434331920517931715311471141808800870944341869597606061255920976936219646163682683585768784488888528401907930529110614855385223289614678036194070000096781708305434004183411564598405041619064337829879819996527264713729040916029071163205361110314282094073576538571960194004810571503827369285585650701019753727888678945173247061049053169089133881146984125477095848113897210888629440249809142543410182780000747733727735665523360731775621543459133563949284061727717808972815906025734824492985380262304724739662043450382687698009715524082279569057030719985701326254400589785061990915255744206380231388995381310480049916648472118872652457047996507358077293992030218230597571734623321336500389304306496410103116948304960603772867135801160568939329594102534472646948339889578645639623165572124308558275678714127740941662563513120892863249773760439898673618482533177689400044087593457225326023349255952160105759786890360840344896530143176190482813948184083828486938163861067497027837557666960108740599660775089532095445236102782815677029791609164048327414564367336775919607131171307207849407711115466605725403280328246947871295021087037434061606708798839231449862152986874566741355596505248066385296888759154175564878376182581008001841290033098886657496104854309411971495495361103007566938610404213034695360198515604224280370407627939209717925060216755005571382470224284614018987862638512883991603688502319829523535808097870645695189719120927475863090463152815827649449579141151935106025984734436091567916050396717240620542359572545605089954152074890869243736632352839983918731427313259806250842680018594345117074385427455532694182436032105997654364711561975005561876493092943354705067875353416727868918831549449728018308164363131219032150744660038249042606022925454986564896674419033546846241646479013977445550773179094495949365315982080012043419344982852892336241713323417479015413540175553801994562505319919093184127699330954658719461676420674519858953592084982056597427650457198916070229073840129956010849562277970019088286138953992467866503782003702684955004997891753949390511221144782990810229695747108117548694252430005626382966086049816222907030004499836166112023053194240605931442819095885915370038311942853260942854029213407848412138854682767051051616204003824296999575007395246921555098974606345112203540762900791742682088987362127704180169793713291297912031142433191814417878398632492086782032992543657736764405869854363671460380917061277638997263491218001055633781443295045270259728790891406387951562734132765051782673613758530501789098816163352386355945358916171405833878891094446954852114837261501717956926171329544108331050744017909763390782990483248195537176048046132117309261331335767982385067086398701495624043607213958985779956489491571185901357735396182890581229519390825416383334433944939606348726706752457690368778362494718914434290260605865972928433238246891426672042564408519023330249684834633885994097946008959638455250107469350347692419239565121295566668323004919140586275401960506043300785418212030033789148564234514219872344332214798401117185938915661396571391857173874787550950893837443545445523903334513022999012189569465668655491907073252247978343885066241727182621453097501558679477968201898550751749453980709170055000246973400483304178469823804319371510055123801017100288160090589649110917852450864315262776325605062921730232557627787765919544947793579953272150474461964550656603831834405096427015923221496266878569361260043683287278915474205563919926969461834055360624181320487755391730291506539742514803862990196658232935889845021153035913048151696420962410446521512196567398175912486384978475735020677895788159470462608393809437814446558647673590316716841163855094856617209583260178825088307144918796272857578484780634046753738726176880795846670305541992468337428871293600335641744205159860862062574755286771452196921224798327559899690511826908815295676006194902104125628851324358499823464516491000881163410090776691526711188464609359058726660464723805451197500184376671065997009734529863856371089897339159600988564787095291622146463025445294010099791990683150890927436527259519956131334180969440564230896654689533994651030355846556153004562624158473355553368745377332207862610667005154737286660572981981988214960584245303216235361067622248267865298559284817579605980559224538364790606202610059915468539897760921031640192987646038213712775978250057500016367528286105900280393312474872109008600654208747228696999697584249805482900464024594527473120987128496330985996137199330667443893818382643556550548087419887491739328363127311567967121319674949250612263664934484734401517598555162107635079314096482418716275147397162726742983365308165332243249870574849076732703342968539184110176005058947812886324985124420453100238097011412451629511379959314325943743394433360739755085080552224835669461787521799713769613882655383415441397703708880986849306934280262150836223083538572909935234273375093420537324563225322741384759985311081244215740647884941823328083907541074727096643022236844895966213145821782560061871652413792173599753616639794317276745676135783232513659495321007814585277580546639477048098385563780672898939478437612459876047565695888115014342153585736485208969757196617976512705499442980157323718068811875612807673898960813137208932671291140351448392472852497436172780432793771225368159466688325710685737074201477242329928763810249095212088266298460757473909018365613729439174389796619340274682650170186240401947853712401923581817098572949677738231727462315922667898976665380544314808900304009075700544739311259644274951997664168408285961199662007214785776743539064888435327916046388935820119652528542169414145520597768300628929530913411779165216658742500126652156920156458233081365629605058656645297678781882036726683190624357117927455219443798966703934255225076147554100232923267218506762478992729554070119809807260777245732116747011047278148359668302524568024026487606034971936161595424924291259496425194295608703989779872602130964664888190676567297445036835965907945762291880691195675453006340733993917365798792860829916529169430671142404635763654654641973088074375465242665588515873883390222280218140882284552539754917223969669875301434383855637208726514138015452551117968040401157965574675995620571446859336125369439797439919035282469771672607571518298229872448191639172321388105951620805788206628521913609874005352042118059423170314207735916264210251513044940259945455553164757042453613985346786052572248519923317951632951689842695019277107934880530048839352629479749729135024326181035844619998318454531747929841671360006459330708001705650203783783565933761162933774278425079444215740933545913355494205289116445890656108021207305267591462261879457076400438482738817311169167572943692394766855253644507991100684132367658181616998359062424513342768430934730340402750963502061476427000660589725996241323811320406638988221919144357214392847403140318939957023622360796874273349368396980720639165841952453496905576530492696713235587532462647157322136867707249123847260347027091487383536511183478099992375888248280373174632580916077603585806081662575648728141586974972525206508458475799799298451359480797013331743296013375668298954642507055082332532539895444731780969565570536699604517075634270806328168352729612403565317500533212568432365150078756409548674523557185821810454976929562960368148856249720541399068888385131262531144739244023134549901364782436455973271665063362614691817492359189214601075745170818915935420535250405195082615958631373439042505674867237655479606734939303390011165840020200089731695256632364823716658614366308932810204681610671447458612345006963588419411506451656927237978891760848544941073590008355905607431446477013732427501801136835271479764443977625396168570018775036757508916000340673838644354606077593845371429733886304273559056860928190794465155448784778828240741171417169802995653657583552352644235490032381977871665817442310493670389287989823188611823397867937068097612476684436174187016457634786835579306820048010411117954174445573738536008898579980611592957988194751278715823601040891557554876600387844051676971303068116658644614294978044641230544363735522022663154780591352409677486471875695919766894619408932132491860659405270717793181221608035061868421414999849031975295273306030187077538867111167373826227048055059383740062072438504206433892933462696545175112474731895111899474215510916547181504492168450171528006230400175392655027580219720737678834862586781419981853316136052786919563917215926416409535058934301866765713469106809512118677684545387552523219400768203367907154506984557564783555219418317271298809173877017864174944619609670859865724847281914013340927678037666697522301622859724715835909962957916774372697022884582135568252520115221648872210799321694220876237338276903190719942297961621999259676357445595233023638804294915268481461601037466126270301708511555883125711681902569293252156431575490744807059959106828371604963552454486018122880062065920910253997936868299604607262508334332766277609592267166770518186854855332768033889593311417738691445655211000317841781002430210328551285444587489336973602987450729746056547815250898665723643704391781675614975409446330054118601048213039475503152778402298902024892233619669391986501557246790081390194098815576248259714490716954379993152659872893503251926438632785694292371025143509744320329418730304976280542294130207325133413003419558515355697859507176806893135417103904129172441211086622051075321357737007319051118052101331975595440589705634776380525512093354594825410187221177905495969133470013965747787660424662249843161793725959004975995622647200864029957483441904606369339546892488070256956058834429756196823964843942379740592610206817304091018365234962638248776701918739271225346342891317536684388456070883221873904921662213855255353024673027659397363532645232751405040813376305204877832452584775862508322517231913974451225635073204790725732592859452454947895316374170137570206754846664876313387981993468131606772169562410098954690326646414537987299518891361389354031832534121225218926037074338528555421410983598895072279433153574349691616620896578599456108379954566121145800041778873535332204474583136583959889652105835205295765158797235619374137005608379297339604862813001684980764290102345444665566951314111122948145323270990668941876478082710924083844295665566258671685250256894130042612886227887496562356772681706251204640753003397278115096531118961683566343159484195212701542931761314877336125461190309905055603818205433935297058905955952728500282645499229376282447076932343205243228087123330057263286377308934263839464580817479939537261998950869373526482120204173879978249350523462301524930334167334844355503518704867898976841010018121148248186305955768563356328486500395269465904922269937114201263915042040146428807592248730694273574098428077884562512358549808935484086372064818121169901413620294589901213719722164644211318612733439061347378666015447252292846120254981547766497976671989500117499390608389869979317135670926590996950972895163339159073415697305195371444775458102802898365778183592507965802885358784533354770319264637605209699340619088376465072514279524107298871689456282946866816856954497090472647846109637177812799233527107827470246616260099982996622614193289058377708607437323376308105859960370245945757215934181508863617828100112261291398072498099660013010282311207285853531150140811859258457812304034333747574081574158848341800626170230043447709237109944791383527217650714853010247526632472321170654210887794540928960884523054553520439803125695433736481047105459261778424081755396364643411916722076104637732248628006405554311232463334084100511659037728302472350813861505977120474013829127914658787645492986128805906253465332446776872991601332759474012007696428371120932311051876302967505381170352550903871984749633902979105639052355168464232524292722053599471283540603415402128713752369050623556537584966771279375247607293838057105163998361987157036971293588460990508257470028205551453215768702508252897443994309956083947783866934492787475899165306009939978013793084824611711079163638464868442291798587276741417284872414511034281980217120033197346706652381701185756021872192168207506646477164393045672989143095541694281177391984184981842776013442924207374619701339482687580961770831478987326520474706086973327093995585303106816387000479062662385691400131848240305709170166037127149251475866558443441465607745539501291365877652569005105929071938865935268982831242272441285496400913884587121125741902377079196072800653525449472206252871754261732404104194191602294884936232228870278371376565584628478974855734334777984997435760456464628602061843257132068367860280347563638539131755985638169282301388711751343170275162041655779143336258249934483027800525414662267077169029277647632893900928316267025405857896396042687344707550010216052377869836123001403329384050642350091271985121713951780991506362652683578178925934005215895434535212340404335159964574033397006180538444679252160231754711232425417856217243286451765243774889130439934239402387205770383028975056108676694323204073004296956672826860142853789959561707476925340538824276907209658895125463859825007612623656579213773222611694774967648500361821712224920290135765053234118959644842681278574728887717299205544765264304461673717356448746324869079144856795789032270150007349932351944522816106595751859877166130751636532240785189465546540005751742104998172199406174968977082862884862884754841476360178639170439450772029655934806697597628448073957367840853917819816129370717405818174553618000635728132967119534333857997482938062978904102509960023731221713532450163217486673860342224296702469579816184903217849071949529029261689248094721751994498107695346520179692782029670127600289345966773311313037621204254578538940355227378793655670615340700075694629346238977085964168811313343675934742506622666525601539712031434039726675309949416506875873980807146240070404838179286334343533952366165067046619080966131818859410015065398628285113071156035603856377376330571116076667247594780254453679400462699149017725048985789793609883053388220015536028839389393325497707119206773532905580425819658685333169446552608891121185345110167229456641485433071618769536734703603783165550821349643336217423376045776940273380190606951804848283218747371467749425062385905284867449689916587395008049730418466261244221839188429570295461246117457977880608083335179271467846376852850590860963813734239448079635866443039633559644915163620635279111148196328622945625080317935477049872732539305259786211619770161647096323455114252551534632031785518113086781264421378815556608332943208662821133978003791504286653952906910547319729647400207042989423186682215054002891834220605033011515828313920601421614249659151194930653320088294453749336677252064330865608979642345097163002175238374273515587604959588090624225484720734809157465886635758548684416735327111644441173502147369359560906026323527545919113209113630799065529009182977386248600931142010444233980238525659823169130816174603291606676743185081808283177954701336942262902038686532868666255452269008434231734729862352824304260297943079705114820166063902332149748778682707348558198607919412749070075130222607954576141487662854726927969575274799802652273347389549794632167315188215281160178443564602127689642584076502181433704312866233620877280888587501850439323173999750577995534977294472295126714076205316580840757998759172231997812973294206415994724018167031522841488765057969479435524462890317208941391800991879270542957493282230674321413737776498095975647109714062406186024058694320670790333777702069250747446047820468273350574736470791145789914978233914088506950686388978845023514527538159920359070984891094385539123538129464914061266303490130286280210724116587899088677257302556727070163603270223575769203207394501799499894580847417212043928691131618239411858848464771730999678871594831795043183567469766501690691925889355256053157671722595180696494452999998863191502199123014471918802238678730313468708148816829816842324744512104320734836288867752128970408243306633473294537853767173801972378054161049622557025915217985293182035416173393703192084486627743566446548363308691411809769898136046894896728877326039515821251217572343982685122427571400262861700326447452527549988937527180397897243533178680627128594089392368703340326578109326310271434257523319829946492852612833834624975285499747670251376369364938039340137219006095284604399325573159546759307515668988089820045628107745277173241920792137448012870242959223516093439795922201056378007947257673336149372494471950831188935249817036317893871232109903811276278990536075879684298238169943410426187461679219669431378431939677179984805042548927801460007095744514350713353433941482523326056020340875138083318814441222244117390253530115358620581098496702518619669142598241159850506548142619404505241703504408189463559637485215047977514427689679598253668778938061118232714618930220307280840725037379023984758558062913608112117585515967942146527235363687824646872649973431358548829908549003140628073768418478576778566009823270211625435156081741616744696399513051889955837876654871382849235366749666073534553376755609781543609033711430112530683408519551625112662798287694111512379043025283308860094806408928657900138966640641182334023394027249181360339456155008971226163695325295280744266371691259782269207177194540076124433415817528503774114018938089545818929882804161380884819749922947035431984462758474030792408673065226952352277195860923928370948893942280365954411961722759533288490951729600112295770709271032200156269508526270778526441882621225368880869479468660710570502615725233301986694148847638681224061286657916220942340545947519981163690546979054515400119267287384285829508827045205074848177397131396257771887480318924651130047725932242541835025791258989809691752174524101023357920228533613401170685009042707143264605243000999451963668311623417227030716091185675433018726655928527950747203120125687067682924922381422771530431765091839503288837954578053122996649555904682851542246351123985120782189143520816964616586783759213833850222990736577208417272712224686125172671227407362441335296399988136926638668935127506131596688352468797866615190430888950989171241204733477331301441491073485237780515856458772117013010274645520701561745747919946548161688490187009512037640564021598858522784981087174287983883126524765478114739075024558203262078071161703329846770580852254842841312775777893827068523197423377199881023399042826331164489946124132893811666032113604986899830327989822125647050740066677888238377696631288700620342657666185279350691723137730222948795092630774855147992766866677470830295307608016661908735621409397596987760796389669379220423599226418740985859361148861534972992196544386707968111832544235290307118679736964241874390077263633751328533889354662792656288683433042185307100749108269293722854417427551184083893764888905874880051997925878085346465620417832221449219765901560530315609420333716066266072136285327908811576715374285720218906799819903629336473152299437073875808052569701608782646589551123288658447621847776537475791431700042466854605866249208661178370695520647417582225792651643764149840511800681702820828250919789825646580456441008209696345096153730671757549985143267765120949362929563410627981264253462337377264167361033036041144755331554311364100677049262612785649442274262000564489551229216288916473049691640427562934497665955538364182127031402709896238904666954394436624582809538002180488104352145477770477909602802658379451477502407422820455415650744649389382560894272898256329274807406090419800372543545719201429330097167423211278526323092825853156385805097537180919244043136570376569793332676703775806361449999609415705489630903577154155033526831962114034430789968776631035696728803585684792493439400806760842951663398764885213978211369244793831524433473130617399971724640395649005024582680637820031020704314084081419893622415356885562625551924196715464202338082859997290609058606935224428937791363478263771746048956152951374731800841621555959439532383331569803390707118604532766459055333475151826039689834315282589258846524741738763832325145326584177628471488479078236383423606356129407557724228184221226340562151112514087665624375535324090845942503041577101426402874848220248247793905272957953693274436800225705790151079380300600778696462111456584167144151785844901891487151631736900192946345300941546868050330961423141117284024423989377875412455369048771859361550783541193366567835370404796717080940490747482962528750838149028688889026796213374790734295066161171698508656336277573523411152983320596755945598882940394196801876561320291106753697190533866075279077112707777605655783436951491576158602529654818870121724187583599841379455609628868711027990464361057661462620886213392912206601035973155412173561128090910769104663540265531298547344551378683903611479545418145563883680612341989481081175339563216391798773857590582990362196162376620669278775203015568865556536965191327444527088525120320808739991798815899459628373265067309407559656065728337244146986672790010016051079952393219060149742175838715960093195180163020338589207551455717059636835844814267684985002734677549571430636992774435242168115565401338651992303031591040974389236270164647910102124188283558408339954001084638011616215040585724489293347951506114428923644673008350968606757971900116823224411037666639285976397724467950430214451756303221474643754673289929827045906268925411901953393145644128357976954743915402897119321117055901095354724248661414522661836401568947720789089948831777011683864178101770980818360221839486375592179540136693117117928980617597384357335429992793581245167775825624965312064187423828113436982155623547716724000283036899037350204398966627163795441739562309550136273453964542404742684607058420808845372314881925126549327019801391048184436233584060917816502897851169934553325090303282031934932977029879460171938663709224890671034649507417629787631280016181991238570473683716844031227280208075490268997051553590365310034641066091606232624608773808827834896542589712820634580480281222097675823028403974041227383512522100557947847782495338602353859386955448731177567478554718598222730384429124792944890144036633414145066168807756165160889042573506861653746181296055919482260950788715410322856115726639398372242935058691699028610699087864913287744600477823758421571571693230250492188626034356859250451565230258667367498939024819848688982440457103291889965680763802661507583428430697787221037040763963405697173002854640409276411105071129590847351058423354694492033202814080361683768492962674438359439883165442292898217876330092283426263828482849788692580207292781225580996614848206868320487766760837108585198096090826222125249075747331372629500578001901105571730272257785189840259037781261834396966127642596999835324742009717822810801081886577208007502854623805284000022131770186423728983436777482707210277251218081448971338947915188206786361449814570828834980731012694816946425421874453488230229755562190757493074791504528169533236560412170867404143205978209147531262390519713245010631725313165520145255773340892538981923477044934923497889848746374017629308739378650243914709963625673201175902507673280912123690137610263532225982032527434688620779478130564213102023740302123444587954853547995235017750799887879201084605826210942285349545558364537695529727143350837524799990588658137618967985198591918396226548603720123303554166020085063516899360842937761471391269357059309458513717753973881938466514626777132517214157940420704875383964311981091033662240135655367818478196821989814087253511228874389375730839741939481626820307132860727507779335673526059914184982500587201255640758903053474237324955457599035375369169300469795812846186069501734130388964149331530679907552487244522227563928467457558406640884005808479305033085269310087276841010098571338224256832511843383940210000679534253819386558187897377863779662225750941324116749615012038311375612471502423543579913809795994814115920892372990337706171004073594554054781999087634195023046767582719800515248187963846961601906755170852609066640862721005422527906957983617171343160055422902818362619138417074608844348120312422051804707138783434065811222197596427611528919748871969481481289979526773569235609648937188816799685694949324998666827084059780384880635438852330479952859556015941753735676571525776943201225224231209617475380256798348923970054927988515194634070366938332680677204124192437392227023750720336693934653432334753217017949706665988649143225507199181784775305267952657973070542345148310676549294289999721862638395268706728028824858301724160580861563494557452688723405408737252201391068069082890218814075175384434273012980660111037009163501541397647329682086056968484612514011106049759848738709690466453027324348035892461426192751609580786127408203934412545078312688422487102452428484365102367451653639245154628284400492246453858823780659943800039305757497563594787662308063238423368755568309805508013096557735316706157289656549748668703954035663102275874675562611091217954048344054960191424422947781828910213364980999382558294190418064083063211071887118896777701755065319626876377870298177944159744145240523810840485086163951402976611548754290683240236277037920410803151275051496004910602432049275923985098065024968958218140063018926070855324961007517282700865495748735378124884650800765526802471033134677149194000034710001494518888165882874792267499973675523645972660590982004247767499192371713828751097961233425237373710063789624618633809800675704757325007518525546416779700223618234113152922805688628115098468375851218527071708983860751396460765016347245227756642182168673047392563540806171054357390088279262645567321892252085952136678659866628499393536553780581409570499970284840526020108862545183689050179488408382168869436426049993245171674602884010503469072107965452013877037785688962398105558440251372737470150656692378237076411919136094820932327236595467745799773657869982127249795341044148549095405034799592487336644367317495328165018318521269274536725269717590992489410283990412087070746896936538268746861183163214879325944889651841025247351189211564890154786088174725775863321926169238950572590520353220991939091218185694858037161965218820707019300909073478411589344920955765439333475836088179624693056457540333945609749296782369078855248437790734699740429616572820319043748852035878314128158423119842108866345027363577934251781462863368578288806178347851663523155926314672199595056412229740422636664053482976476208976515504414681923454499527565142004865297806597965070729235919698968521217496596080793351059662917271573493554480357821161986374293832154123286700659062463602000989925966459905885805537446610813728593693206428045269261807722689659104861876153941080837070675424109654163935155058255381571086944009585946178216946992777130108772914126690936642819310993216650662179095885937371487061719648767232240198666650914752327223278473613550413869562855189621115002799760056052898991064793573329757473584213572387636569648337943884013189250513604565287523364103407354787582900450706900908070930318727253784641206652758623719606018569927927885342062456120149791873770450659589234899000085811086576323065567324554119117168259696471269566372828618267762242211005613442507407556664929981483504069458107562455886689298951425598712154009720560785437783877255777002439716073524927834900166763595580797579264573474429183489835020348373810807947424359294280837036839027415788831419625107296613248322636815470800542475306107279130359518996194906181276652464417712332373710692680088766978634140061790117400524192950047453745731062375520024662391656509858456391071189352562703638452890731709686153533546471568777864235189491646442974754493456328862825642747097615809389365683004355385189053589763906840246843623940329615616658809476721254937857990240689317549214604246952411188658426235005698054170625589780318455010001141061161224517372536060780092720292952098943079842695103818227485732986430297500689175293132435475391663056576129997678550681122071731984374912373737860448405863079115446472729853159262029416229961471409534290463148680696315644428897355677148093818490832686150824604452751772661661629013218376558454083750656077732475987955948585631000973584806264650205552271825673776524715950612977962033971884337775956046524565229679583919473657492155906008036211553884637658842287231367292500033832468368366231009115312532307139568587226807137716594829259574307248236804896393620925832283821740411088584722668803914710501485085384115693689662915037844310720951862381957042211924498556090609106017576163594602140840604930894428892429349134617949030211569989261436881538785624314825865498745076808416615360200052540479193646406191047158230066979607934093472198642063613979583098888507843975198157396764856673300579853335875101003279104987079476620838685395776767077524566564913342301049937490943210639268863810599573704850667210519526475882524459082872238490143137572182718577303816701644605466931047133167188528419378887111042449400306925860884162360570450266122492315547481751911280430761594010826320110730321265728730839591795009088445144751840300624348046200559624199098375870730395247225064909572799947435645126351451006962866827573756555128660268340071110692711946182250756486739013747557711072968610798073232543825290397803669911386535495956633937251864420032379788093234180957762331852359890882725474417243928325609972303094106066688351188439283924811810577067591063763115179451802452838517201550302557094384218370043245714334607785132250580949380400191992587533697453312408429596294204745363441639669999512911199811747087589525988211547136550492861791627631880556485259542420626986741847034780583912872783528767784773216344857013093185833325728717911631554670512211443915562348190862020523844311049549568590753567152880950565165423603989347205801492232468192181721786818132530240260205670797352202932346418892509191074420806913309760172711114083536026318963423479353177986821046778285701215970142665898400057591575519813953518340625992673324914224832241778903712281268031428745991222876791381191658875413893115209489975633110863539860435793217835049500392009016459609334672975927180274918957201032340922184298295509982071372411066668064203548020154598956691139736049009389323763965261661361647323545147955980670466350702548561760215732265603557898280720659494511375321627837023446025540570198126561497920964045237685807957106348835893359201934408304027163216982572790149326603196989053510561611867238988242478813579689536606092390357631734017577760647845808861338479567943492709609328015985065277836624061599731447292230758886546806507206330270904011899092497290903570621306603205016025357705229886886747730499252856286376885546453402062555515969471934307005967604661883745460044203283854780787996123351581574798266129904393217056442163635256699522213114035034560053729611523321392920262771142708230958551791507322183249923302517395320911385231507634905568021250414379823079256845497562847374092215456718972670445349322812119673747185363916832908940973878331631569241307540922729982220370550755430463321513658772424144225272237573673242917894503635808187097257995387088957830624155683714640080530021359317131207172596757635327838134813229472611835922256960556199425664774720343932654312692629057716099477732357812318869922727098933198466617363841542210493652261809098334417092417245285086820379201424787126558159840710055478718945307115172234377390674176916154422200774988837966211756743316450782917547267862006860737102984820413776405091207043001013788502846820987757474031852842052549479828090349005079630283006461431860098774366502829201232899963533709068970070696596348983984440425145431431387809759494329577366102656435828276199257191947304575695332250729461868403232900904135199575962464812430822825548189086350840169323311586321893884549250319376328031921432172523311739196490709013201046816324429863291791092234965027873480677586400121276855530014146140486618966427632848988014842424648848725418808656797786839183959325432605615781305120757617772707043827069830102126360816103024180085048616829906273786676094090000327568234579643683098511648424611116037295978356302533310949163037726637690996521320159846675567523242544414475513750871299677786559825945797995373888180548036474185053043257095539958967214625252940409688164972445641017483796140094329071644139560894076753561350656022208717318000708003539573004342435193232410670879201389231852290779389892776261264747487108189120706604712153453017026483402988170698087101838047048526026879123798647084820456330150022492861420752182296408994549254195825522482305462475509958367050003167818420313455856335790176134286747579100590241280880725720837326578543826029792239552284158546932548458957671160453443717430490001884432307334252118462023634133859660110616182993531764197823086302977105825609197068663542430267883505850654054275421808551439826809270285412599550886030427093701912859859909444339678725344042663220161931724578561721621792798536417002079174513802847735906694759753990665670408098259369952958039069415374332505261879264978113788400659956023465625511096287005330355997591129290957961524060946189444851824603270391415419755734255461211636641412145191092105126863089234285702190089584624889728800870050386890618348601890140658609687254840011648352273032179062407471391037798427316645300709241248722606465611714631975177194811688028658797626663420961078407793315407147459510225169070260225959352031412546882839764492281004136460573060849041238995512098408037866949514385290391088749429431888340764034710831055094110703351155089309894867054376160995990554695683054945424781995578840699934837847724345195802372074097504995303494639865417462345198034030463078445086676949822014776522864065342983611213747822454306245219035822822035681329535006147269949682518467584679422716672475735359803910928589896787472382451359725510281718261984359507314617580911845204761868935192907506053956992244538266280370792941195326589865530747060775352029357489355078137280944897786337482687608874282560664562213270432700227218502053961402298650779514515942960096088056405487246944709953751089031478785898556516146435980119900167350532319346571950757150664423053863879076592134935738111681421797892603446760530615447336651133967114861268560667682126096201682893992975613701833068316226607721660703325678106831505293725706739698465329553068722676504832903374443842835975706919591565084683022050607009261138218128752415855177777287056256159233720857165581545866580361422433041811272870169043859232349333195990346179434466050129839851287855697699707075488723390044325756495034359536491704806777483172024569381161219184169381332410807052362960433206993552205300127740861356487635580580886665380958386587349964562642797933351619478680828381799379512976347020402003737457787728744148675957328402204062274181289853704630761489346306502286453539039395821981680084994381387465262334564959913940452246627217663492552767651807546969350843019751109920118285228615176973860667080971616145192833210215114489667000015754773318221014469331459838910895313219127772302771223537182911664498637445702012862237801691663970904764528506296758155363720451104029248116864519703466700829026438061242143021260881867086828940561357353462154186700478894291218671685071557135391392289369806496152175459113944350993167848034162883930979683386847469853095006686261289365320979536531716271152862014470093275676717921358327459517446987042875600461189373820427859360103636920676321132131976656717670315150434888877649611648135107564819355510988384827096945290509106902511307009768887405027500543074951223210287653232409816996081840976847073531697855773071631650769888194195471474772732785584892571524838117991193285412438520811109999859748538362773366281865803761624581016734067569188272893081034478484494106633083439526065986572497829345800103675347084250873460170292799683457594614571402368724078389885990345806854457454767202855989051777878263099010542297012222435794482511051361551508136246273922472189570777726291297199152214893360100438648452173870784293278625201102249584321962189771228727481120155221322439713670234204796116275690836831365289686368749870616167550910721397774522892172226731294641236015280806318184206353817956064943248368287422310137093781475953931860317391932896296660471769869389052274155520249707812537964385515166400851242730293069317635491660568510730538378504766419169311324545626063240480084262019374154555406558831303685002469102118257983717736690743341064382694047014964043690641704940557319851322622539185610820892982356186400042504763792486929257908657546168738554973002947918549261703306588455543995222900303438925069315749998976588874356775105982885088014232883292793686846965765323818105907264702196707367724151867427663000237985985647507879177316735636997075991541894091794936078592410441921574363002657927220147942476482943590535903704772322842655747889798035435224690315235528440280956311817247590706824169827139801604168728717021120920015738781058073496440452759952527963492538259314076676116389717621277623006100706008170941342492685137223005581344568519084786613147616409501708210142273357016702667914514994412873257316269070949174826916411800693117786921521545725741915415886335051915046072227511265747408372343625497611094293917952402051828375881569077215199688267305617575495793769936580907142281539247192290826042327541459034640859238251147359914937155428918704983655529317481356804114866490588760776874259535026900498593475169994459536322327523772102833839984519605332606327226142324349366845580673120821782922784795408241969393984746254760888372804129547005391043135200545033061427592883977562519822935621581648501392633652342906134357582973274440031839436051620090432191547704914522030091038412293907929373217059802826852857922818462691182769460590073538662614848071247452631435476716482631026197662056133565944812176763925307315134257707410387620576097334704892122456545247769304488879489786350984595520502847294619637603757428026303067353492426679271966553228869520247657110434135788207222764991786895245556440824912801468175616252758011221308349896591555563412822360061112545861451699351899276046627983550095309504125045246229683117907532257975404476114006866673685460185811257142044708130194560421778409045109488306227458506682263127432308855974752071199954183424386348717532970480549163480022696490369249304340602955706115150227711679501157897691458436808677434584019081266198434948627230028186370055653912599637870105419799040453588872175332572695753428593943570233648769349384649172356917819409815425162729537992018867570724530185951137468929584730615275975433179065770894934938055223576029895570175406928700803758997214707585423174613248681423574601541008809331973444731145951893319204405616833232686592766281894473475678744141123230114655006076359487841925888296066432194982461496486161490936366037863007012127230979273242142438936031374965354869203441416545908411895898538767160019558441769080635999272109652187742613405282632374142133876813784199094397809621705371374234147717780959208572228340078097160291976029490585829929022914749047621829791337064701417166773864846714864058235282040250120967566900948285416625300597787822452633542155408921183319722069485465408472129526196708713327906216951575280224034748002641045233273500917050263267860474569474923509201792088842722022790551674096679333853619866448143732163428984806788042771945759837983393807940563710230014757662348894088924251664720434078023956395202707530729626376685888278665974718904411930694927827863276063254789462726002506155309026257146852005262466211774335339419675270072328487914434412719965781088330680837474899666968980441370543069398240823955976470382878822498673851521546592859074778210217254376002094510373283859496730309040500305286378494848344771155768054898987639946253548651994602388042590463459702609799217818810971080553959173710523938842998821383433013961605990673162307080102598364805872845567445412513777148699947116245693395999577649840433510490302532522810553599034687286070418277545549698400154944265725623449670455635362468997310366362774583649769867565840465013413588204797684721572557351726278762413073005492611952196080454052624600977161651136673988045705717001543280148721473128562238391149528713032656518145601207693391387252384365715674812297235921326641473272282137390631341203910025054625369969564078744956104635282947947965584408017311453335075577190755949164085193669672702498406039143546208964427988144002617710165026390528350233186367081882695044290774304153879213082487855620971971710569220484440582505627270415511079363115022980628240044290346263081455314878463263554208220857082826665449572429217266369570892528263989543361591852295441571765316388924902542160528193877567564211296714287503909025961643765960148801310649066768347971840096527556209135579980944853029649484241545123048438597924603909048998622165123048995932375396877978267341748339219389796707204573055591620536469186801899470385768010128066992630483886732367619052707711855927336741545785799617302300014985107079821205827610050393763366669493711573711050583565616409912510398503743982122244328922060935575992417759751348905919164033280091457858145042036015799324451002825803110991160566210942783540096028378819515828863324927333999168759389228640236211229469469247814792543293103437284891698349461895161484393156148861467578279617542044472712298875453010840819642598269431236197264487545800408231010509132146125868893571603125991638148339959172658393731374723551236378548148211815704584384916016305150453225582655966740829989849355121038690480742435197256019276941960199432886486498387095673760183608751974497370563872781985610982747904498842447505159196925265784698384619980064523902909519800800943717359319198053147992861597055794225033653217525072619196412661177117986044007285698477965751910661498117412302374456954442204381793349231356691508578103269294137647236721537395187729502974925235943699492847198985728261365494273186976073855680038856880571551003792524751564387538854813355608234688416649947447961682824597098209421801527824462658725739899670488848386154724685729094270678158898678511887944327470987967770400104129924508914353086942864707672712845814074992670403560316302854690264276829869324632307076071316969282586812277122097766933347936685126630115780288306434831492003323562540651938600940069094060177254598472396154133917210606637416110028626781943029149658328590677673578929369056933252344173304405407406287480093391137162252955591823535097910622983457096234702561828766749704735249272474132579383079863297762846310362373805010604258561795359515672912025641937098546241265896534478756123598438399155887097105076071374806495915319299148536986670526483553225691120319913681303806727015497833269159805255582335739390641770307542936931553119768348540911027942083070612441525919028528610665767251548785192361994182999786853195064821963322297157680377913157684577470007848211398134379802082874300791264265891137341178311396246472411855790315967302659547289477855436313689657570919466004749718380834899249179441098663184585556336837399678367785153545514680056060570865949294549677846391952243813030381154655669857924387456558908370258711121789283606174653135042781650449031550574084520393641771595034915655042840396334484210042479031428069583937000118613004909467912928706227802420969770033937184238071440366690277353058457375220613521723649568944400252125227253913672950231645377955705520673337944560468298323028784013384695916378477182130091989581043171086803555886408079203283222413472339472138843490193486103144834388514241508466234242338980269820785595189164720518250168967044433774592483031255993718423242519706975570679252767962058994877869525101839530094997076547486627991305993906143746518026810838937484587049038303537179632915101337889267002238622547911110433872467631232498839446962530458173209782707027386586676565801639694487498846764121423037152681764241910853620684530095963324418119619090606690280609841173421610911019559313504197465529454865152027840853955548728791035237917546720476212629406297014946895429508235035256936917946038350302083266823779452682721171240281442916993407512382275563101265133596481278294941072010717730485687865049012326485017878392272174656590650802328800399051460428091444568425782941728134664208988233625052870651676636665983239275824541033508685430706953264446775537361923299443758636960569916350357635669328806721282744359613154408287566188025905125797351544257196133284059603243298094479300323351735449201361311475277476780845056560218304253167687657265480481977465450560114391583065089910710816900686780835115383223762868369504629749624880666950390717545506786885541939905447589052069644105661962586589915244236132721642840609579629917454861692259669170445162015893294931397282028150803994448864649869563172963196674010115820585968329733618248361378950616071301971706695519361841259434883999497769673027003870201232958688079250353628281371782733696113507665371147653261262228239293920292523674619028609532538283222939201673999001720991059112588187604412973962136817328867719909392492875369738683531331741191689054693580822593994180385082486338695675276095860642291604693976077626878920373465549703717836852253998833268544503678988653104104374818598936256393078272569945357573201948896394203010462856130823536627988463419805998366477074398347483831900754709747182796342174041117847872867672189900273407710793522611671272855967275804026982762548613305453545952035411099127177471896334248087100873434137018443103393580803454361279691054745328586334753732751075938179973859360491251877128049844413657149704219968135327990932202192563097385493502955683255071136392353373044540714868371431328918015727231299835700433220408167303288279180828450819827435570402979715753856861795934958845361774467081775690468663326184319726030663329270618693838641093303953330962827290460016702970539434774596315795625965453912138388273243714018447291324329258670698199045853544371348756821788531585751480324432541185297618436911339312292767647816496108481569892314769533857329039369937252916618342537783463587440833989043241383645953069854839171612889618469780596660184607093845875933401330322718379246408624214040703125379120518087711955436965418656528278113733538822074882840516501571047012732047691678498405345834920945038410601364803818377668627792546180205702880377999285256606365287109230945212813282352606440169514931731562830369532038395410972552134614110270372989673230291779035611335898858850801590888906993925708604537747291911552537136490543176061121859730868405534798075568053395597264258111333677283379866429185796165479905629526345701940768269551493651945308676657911855366875194527799033898294624055054735012994907885304591541154863364227206610834592687678579737661323891893203874038627144521860175935570819069792550166211429228413026806722277457743995717408543004295908483345748199136548342777254465538926203616142955993516677502992354006693086527221080770033811398259509965456141762135422114105049555406453841240650449666123245201130942580417029952762552430139013131296487855914025335736017765998415213625669292670150837164586069509285818853852077633868278743832086317173598793685193044665535823687543535928644444085024951843200973583430608352918425429206208948705034030459446005338571078500864575957742417175267257801049948032411983407996061774137508517581607114219134771760551251298782059374389574138642754228891650847839614970606111691123041369327668252878242411660167605803025700737867080138805588464146931689335743617059844892324136543992137573745935946637540571082991161583315105030355395982361900437364447385267490241717544733066992235990924919701113058356557609181377151366637766842996255838286649739751335507669904295351848657281474186183080125104053755334544364685847820996664439017224838041101763870911112280151292810823869545088948729147261914003926190531673197719011286259256941652302546427758325734695091973329390096688280045280774835539815472653745619685353101650553637993592870160278686162827101212719607192066720314980381969227349957455531677194168665512351546250382136202466087941541421439699256395375073907174721370939764578675870735893929536170517889199768694230957400328967277927263061075539039195344607287439505706451629822626113268552704088557951260806769062933218200959386783318936978778438652513069624574640264093036431938987015353751383460714755608991950891444828479679515873077990672230186358503471699057494146928156441422043902614939938762486686972985140571735455152669656730575387290104079117200103616579303865028824999892599960051279765863995144603999293126422075708074242688621472479418575024424151817212384764971450895272442096884494525531641311874219501773438709888380169122097420054268017693330778052576036193751185858838974164997285042445601337155578147160198938340098554726656894508913543375541627193641600340359322233735315275985702538842899333746721466787308692718665256638283362288088652856856878798013492832169486838284531274515055410471898668761154023917375222960376016931740182301561061775048012390015591441226071338124513095604629819573739268709473991294341392743540805183200364051063611187204321358601470233046601112230799421736434272934848518165333617243245911832650046785942540167581817074255076659247819257486350077297252580433135013026824672884475949710223236261853980865264525376666562713866970263408581064247372362717196690059047421698710996923301471002531895531307348513350974905676099991239032013666777596390379071143564379349671875594375475941483673659438001405002064663061265229437916632560931875305827512638974163122659097382379897501772595959573637715817794901911099195950704198634485562265551910011472941763080040359356592813537420898101013559978583579335997134381624389060638631040004399545515214962027421474357122905718033926272771165276401415756580695663222703252421919826062046833834358680090234230980360540141914890612514677060084440966831160238900362939643898355597549941470553241251894953429596229871120903763892301018165364587381437997782366967637364868868433115223482490761446993834197787595290470794535545809365532712847515380906761292979066978534083514007778786303789936785515722601593022549296119360763352487242844911382367334910288443273031458223779609092081741692012437545879252710785499704352993110542865680158504317313429938954634411428435006035280023551489450814007454519732516410633163686994467737936728830769517101115795209664635042705858600367440420677407495350129379413995068489663534192747178315253951559336514831312497903496833027163227037316903050144821939124622624088767059896567273033552795156575578646557047575543034402632049554600107900053004971347768884958866891061091779153624772716333365705511048243483778905853214434126947180244172650368467817767442003023665059645385290354591136683817408581450667637873820429762992744802198015629614730518749585453262027012865013518160069918186739666082594958828081397301680018839490185722191113871523098003756805454902885216022830322791866793406864326704588166540461008328831705646557607284171214249818772662010371674571194711174625176799905349578830918821223390430440371170556241808615519863776854862385920071670758151708011325870420655214259862665217664274363563107662176253433413139017209621075137629021084031622005478819725321891918280600687655916927026149104647447916028501042883402970456582388289571972226829934089845847304407017772389281297780953421735518877274500236589365570024629821840787332024155490215459559305514579768684691224657006483880633049382930020881775756363458058684349230773328489455353643166140129146628101460512002285848208985117455299180670067090897252764465314967587477918283416447224590633397441078912684875296086878760684615421285449382827060570572604777561897087740620695624531004215415913339411186326035073991997279464952598002867411101469223937242532836260394234190743664078095395423133925995741888750790241379915907577654029126278477490195920901494545211493764703332820893433553857581394317005153545191966614723607517617240299375801512010524532713720794172061008645644067288105819797874944227179440619279996902459567793446509826899157724751607048152925050113227806864125485773121700325698963589863853769309146219972761568792876824686769528021318662415471809079653410508145897380720000217336261350105459566024409517834092568230293537635422798891676799575475780218873221598297908898577872251947633429175732591741580989033638162719702139401053578205416838394367770044752886491065581026082802674371067508930340425772850176928348721933692778044366819672278744166758783399264388195396960510210376968240096663590130647010548332888800653754055844483212486176045727889083346764116441476994409750819518728254363273392706317123737505851807657788148433225114413915337128353995884550247073735773941202290970758251553665530010863897035913225061530084498589969449648121324743012116108751392148651504452641491794244395918229131741005863483259957347229401777657694479123935221159054487606412675169386070533802706959116777128763411218084954503059559152498798159555053094712732701434415261955573924617548318424643787804102686298094920635590023268946457383259537853745472788270665557859751706420730831206711655294726364726794573698451965451426452622308657773748700735076859678707913507310050825849483497507143513056508649110402391445634652305959534274748231814763678702872898174197657611138228348633973014964668520165166342783526690590375084383745460744652405431005644918655189752121747635682879497256118499633021639489315794018562738277391361046478735533536415032635405216824460952251199680714006385912128363898643790178014876887599315945457740064472819127237774448465221567247670409382160774277840032610528216111652064774738552510487784977958408837620716723729957757682551182338144961715769227029973503296066799821961452200056432866502896766052322721350388570912822494780099935103898366367971921594431206903117451156923174274545465046870860646366935930540941569889697218907319239021462176975828965337950518596772359101666677646875174890148823557256789519214975203330592233506255077486457279886634428468065081305394464000437473287816176529123226484055057186798010303173788445033506497586048072234654133184675041456535084801015318388375041783877473092743363193475597988525318618893887305175261860636907653396318643287442717074818746947271613633998956733518710541957786492182556800620039887964193301286097896343839869876136298571313521688194965630150495172121971229864760370461956254535409540720867217935930531587350752671793199468875889084681054538356288724411161538679682717288700659827020906561489872083787171454145431782558756571783704884262631818366555959152336118099106909602866642653416130644283109417197116250920197787433190691020351777162556892494707040360403362934926658220675446455531495963076443609332104330855136554818050583001189146406212056538700511961612714984720070659466422238870735861251336661836760906809945963214664240383270579184539898140336934600754342614537470782660549744670077599745096747275254226439338817129764370244341439713653353229021566219486676058399239824872427489718163096028282435392267620655769749023096004584508454324633533570415373846043895141660086989440091924441351357945445169852348268303874615062197649596081207487164209067614351736585282537632149086577646044821331193349546858775470118088598013752479515607826121870049848087438680548191211129459014012215817624538633672057203424275244154335358063278765825039463719347896795288921083005754119435310888714363630552645452340290642275839137113979492295741021351891236721179779017035897928737177984126567872035335587983945906129695473969410991118426241089511036042456726358231910101578178247985401914773637451690199874147057889099465620976539895720101837810879406235933482162968492359186018672480122849982602256588109811835306163228356622025495065199418120972733284901636272179809388385802410114864602948073193038616313404088268091551715288954004175744541728827820865163480963002626479188340283095936738506311491944993277555213146660462249304184467422941399430877938926935647132187880742602566819689065179214192704510287936389345025189980591980191005982775189327322028843879332839498073377181027764916597107089540800265575641435271144963823884884727979133919855020879915267559896910363379786613240889985113071223996810308244916312605318953635348154705498683099123879755674428553110387928527967452609744748512816008915010210418967997701347827423290224842441533988690744382432361382560266835756922128918006649271157553192429088644115904091974919589896793565365036110120284873466912933824384527477725115985890215711718319610516434453569994758246604416631293588652660934131860261740669206955343187172781912294666421352436533034568861432104439818193839738468768704335812467231865988536733744248737922935632042478309552889508514552841891167220918174429824120547603760171268514145722060006043436614119400182952231684454675995192194298742167339574506984407086188571252089575681199984957309785849383401192242968548207659843288789663229581273091665198349079779917043124769677116209840570774441150737072330240817510483318249408507504934840377687169224229024839180700048036412676052006424219711932110068140129855015801264835534363391207988510782007677238614611762692936278487714098351236315396769429011912041595706798631153164963220001771866976323994378077737063260710776331273178321363025806336280473171424931234893600242198440162135518518275770212250177786433500670925140668027332789023667681996421066920702829844933018724192771785579681321816294736918214265629851412985986784968416350033259033421189243238992628627563443119233146019705011053246334499135650998085645409273585609613451115645444907034267406370270809296089043696981613879612795565428251264282236525753643265820699354569963077575803673804989875539206334582687459501578986204405616924620988431650725441110147140616968027946526820419234725714075245741513543904799911593497415774558776883955338813131761897947846246069964169188396299286875935168584341485407828242995853518316132991276401436863688673192334530116109009858612680492218487119840307268451010579813743222688335954076462087286799112452645217364141127593462117236278326693174108413470440979257929819218703575754367540595246187849878588983605651262687145092304717718450717346897887302159352004587473115824877804590623788433261774105889975579921391078676731520529846591617610136674244852753566739419973549491848580897213065124771112178198119298622313635322757393023685797246401178043901297987825420466661637828636463175813962104824983343159539003468503262099782814839344715417149193936797226075937840801546389834071834270363715686593134683185461537774135073640363881926888601566758152871655059060746398745331932804866842710401713420063846428884569602921105389286847009989321055947363459097968698416557693491382957505668782823260719022645414698998222850482507459039551993826297013757176008107508307102788038585382470419370808240110666492325893895323242084348418437920308928003138692992838228868948537418381011337088956688927003206920607391490425523260828161608646557664110036852630876846600046478582243106034236039235342654294430878577893524150690910333262380597950008294622060619623451083910973227766402600005675910706889819400071896374514238517754900887142938703040583738152132194120487637480796685745782870049746838780862402040437040139602287919734267572987174392350298613605288565684779476315451220993821738786500021510892147996564106453925038064059449679660793109299869392417679880723037654621289501823007349847031483721222242910510762815703386279991996646615929520395333275640847479761700437303556156180007266027045148453086314489775305980920415034855842076495644005513783075475445893792813666697125840118701695460864313534202253110826961903970788120978914998086855597035474279810991385698699139618741617173593370578103873025237301679260717978348168316212213166794297789655569510993210194149278066798217127901362695677244589285185137150377399184443131997713156478023868705236761997553473220789227367541358810434994880946339760821867114701244435083865509043479231385044984484386603690925164133327296774226799461154587446312832794778969461263065543459859125965295390004346697443101376150515823404838686754526135388777385545037263847070253307294316992877017411695961678823200012967991846034175729871089170299154007329054890717678889435355914229626713118479048643954916033427208481061577456842629277480993853781539844049922037081741870837093162265267362696316692837288195861845980640130731412850982668500422080937446335577793367798144768594713623531785778329566784726387124429950154164378855677129778450041755968345958572302339313714844306961858002163829452755654128418578006713985140738699208859662259258989742466484796211447636404042475064050320807220662899163223736765070941806989379433882461319628537304046480916768324144628289971875481795525623481853153495257670181574010931264897418362263674602848768901114971916822818132897058918364997965683551855223137984700969063754203070272316532691966129099649054577456846299175269766615618056285710237795241906254881518382586115514207536031908806528266331226549531216031427610505041510778724903887439563488992399331644094348435791097499336935673578793964109779782277112888671976061305583463955976928122005856769060564342795804713768422781451426376184571063301998993586513967997169394809826066574916976674778165418657509852697578785514615345969542219816730097216744821590953771263389530187071022362305153630510109945811899544394164744994215464846374890410096364142085378106495799426833723136533063059355734689972528422166334790270649285603009196291765553141579614070432775883767535872686016768504729156859712643323998285892588084238220071173188300954208983360198802782520395384508032667971264017949093620141159935369373599017464269129414973011026782729470871025416617515012930727640428712375575598265180298612680331689951730583774572079269084073972784167706273987970976917793477907885212575802337101319030423097882916846945449391810043633730029356490455140262486338008884153626914574921320792333396198038329754199541643246557996201152630438836719039141292608155311333381943841886991956755665929097714854233945928885703013650084132166800124321311530525664267645233535932525418276293868844550420613067266288066801300712213007787916868231358995080545296677993437491994424521355956990161030456339463056126737189552663463820018436353303605326257785687310950238822423680761077076687271386928981975970918746249745055468895073061420824365754467464927251593587912118778776484869894894232247421701770469526702059917981318372195193128191355248084440209218047212907182089727757387021683460661085353667497914282663553672659324235065095609506776703504823474831326887342002794503744866654868889374306068152073316976648131798321328498217063398216351224445586940312695187247359638536171078870480379636071348562382115508153725145006879582653262168901940667251383391235867238872325515139017940732171719434431427997740772435403869778018868428335802983544475943517378093015757685175589278377435369423927553331291339608891765762481326490772261197014548994295359940851597461131630926834450981473127989774518259135290103782882754666784213487427509492452812844137278016671031746056822959304846527352325457444945941583523334779312999405182786402183911937948200024415682070117671972007691653577800467660160905483173156914752865869383820921367140743898888325517654877613642173266421530154995239021399527635869563159076015163025079188178905476397565701209581783349525420682216315181560992163362395202842567973517850602915709767137544726674321695522324780616876596697223765850973177997117335023932057639579312100992062547812537863373401866270558466213980353432827575706317764693092322576307450934273144583532103516102739622279530581108961893076801712707363852166872119627493905879714205929484703274007964656057115435772078179976839385206010364118762980770584973818482816829847811135931982444076311932042675866478181568682523997153800530779424308562257191393767660594727593364368977433988792924799160132330432647942377032046311526070746117755526979119980335509868028586759063314910873257957788241437615408079493579590878595366526120254931658039847354816626887710599792282810310696264462706262830666277213536729203060077588107158197284165417164290859726916356853600901586487029238813131910451955819125300745907015957034518813273188591410027367499390526230127204570089617047069825971568282780832195142140796664875029905378122756102837358619474646779257001149994450664138197853668478576272924742053631017317159657158656443691484390317551577568968303831732598585871536855689304654706471104221070947142536737023747573891469526468990246264984185324913507057149694796401170438800896461655166749488036930652354044841762741923867382498316303894221393560433156348525063196718026332959509160818152384019788896148083532545582823647203515261853112814373011955162875887684322588663079074033265063487640515641297630039921509213931763545712190786842482796266792032839692674556754737875550614583056600174250299443307053289154083340160513303133138629048339527084424845179537955105845650508664888956071090845972407279555064197509579008257873829702379793940626307568310240687971558669276944062604195654754612517148640113773403311193155475956089560220595949003665082747986231799742413287091803263456579656346335050583191451595105458479270176838432654244581688240046403695966433277171039763958524678318787805839905237179498716712881489721806239732558747796977166758653809288359044988888769164943641992733041320205432021342817826654345253566986458107038623689943842981916572311906521689731153542227355464238946308658386710070645041317601356058010481303108078136662564532707318848026104552480919502160262551384264867661166253783597762296633083492443075044784345356278805963205097323751530957771877631180125621639537388695040611516525349159929485540713579865134667340221476242251727337397982780261903598598012272351524382534127034320969333446461922261927673568548973831936161543456492954517128382313027828183492006082610405901489470481364467591518709469422515923755526169352201141847753145842621014164197819061565065032247848588915232925205187534712677076277925687405252339236980843216155584273703738966046380373176902257642399923620698367726829875277332987439136207704659570503713416769207478847879028051297167857627488055792166600278034706924740783080362672708782329644476752684371461845697560700883095350604718700495869831323356903330378115128263337592132635002942751331933262452167676848743328303005809035196803769640158508596675287539634920928046608146662674525162633312102568188822592338461717802665328467708279794044022666327207500035143634747752247576964645941010878780324896201602967703972994053954095943834091284185517358085064711492686036931409318094392511501270591798403478173423396486073947003594219549788923078409005325288592968053561922554709810221156462358659868158556539327164107798866103509354910697083832863146156465582416679794865886459775981602489556576776741596175340751070884714594132445037055939394196257143463201199874480779845105179172027169064802434430378842347940080464742348077329946264597761297955083075932670618803998788566452777646179754857171689683825008584452399660201043655681659572371665517767705868552923143949821860562365409523201460032214332205260386007210872795841489653243154564142436324278967347348403204012785061477142324488070054910371085487660186853498178356186758497492913951278135516009021469754841928905068223323460980063666486051837105855993652136663421183001309371321240161227752869653030488071158081569840731769750896563214374008831313786252903239587838151441190252445357564898255813499781244125660209705563054044396071637369229625341861979992227276483162254272421398659995832435553831417146003161033962094499582153445781585276056715262203937520628073658512598324109777056701180588661332209653033744917277931666295687173001639290965067588911311829078622709145440193096223765399891102457296369040427281298666190161381833067167423173628905997999568388918136142199171631497989035606200223285822223579147619442970327752106026476071022507212349952169201089242802879379406318086634992612591034713962717938845683428063390714717524881301674925152532638008727607504204290243890919914652599371274261287008336074139962029859327181557160581884890966208842563343034945681808426541580284117990796393297273418144404432194626300247013740140776793598387688452440500675382099172692279396896085977519754138098986192025175311799083131032547020223625835839111310273462662010484494386372594669131419087909074625693592872299085933921215454702474184027461193034748539782659441783077048605110798482121068002536861230759820219937985710053476282644986276245750028164656544981146198192002514991445576197891639818165600985729466010271463599488537089711918049764295928320719297700612308242851179281710403119126976898580928767564315044728052537002800875824970196164613653802704429653031599634621868227363629702179171668432031157495083301302470491755916140276745564920885642302067856036377474344028574783769399729823555611004348913076122496149926441643064135762980224201528155899661871590837021632001660768166355252547075766789282317543497199978079670245491088798356724057062441202495918305012234035492913454487591895697165458798368416364917092152426958396861921318430095518091548773731898129802923412065100022698271610216513645342872052441708238830588369255367892544365723681364324416087630412031969325578199266335817814577671378213010819206562709764440275533633262889276378338645343503038177086505487770332051287403514464161897872161654798631775071024128264920044437518018609566857022135167372419178195296189674606302401425562629310824128575048165472549096885645488710408613619861232823071452065886129625099621283606841376095847482136847183486072803178236037987270307990460759723783196382178770034783930569962295179816688676275328821140198359805952923666707687225270775115433751758977795220996826350106041992122450752209153391790868712987646883684420044199616963418938140961477575855345787062671609632388815670360598001736853048530233819531359493944608969545820982817944088541950097038740292629487822120818622380047949901453020755589684691198929193190471827620771890175817396605853038977426863394877793897232519163258005091767712101358050429105643194575980180023637287846868791587184932018501632555536576541811863590829370681448876934434286904594345513408978064767453120444136966889667407954276879936406861654009239139743756880490070802107814517555479261639265548024170028072048472267792730198375683266146152125990369495413518529642782850862749485350093431222062170114339371873983609072903155313733258554706342059359120734643710398498134715471922552717166061939269139107268514860371485631552956040536896321383702811897585282953411128750321710566993153781528931871673804904407973493995394133221614644226689895386564855986946368349591338783487964950393148044311420170058124331743298505811628299819427461307692405592385109688853968068221375093674176224647380928245122160768556987161248054241471071799249756082985208572851271202751715456005048798982556243013968433821483329427490023749955837968197840253264881758211524188403650205903227801870449927389235546803428141499992123484845254535005119300863969347807408342005019456100910212713722652945656409489527163528885122658482938013142175479266621454093290509617187708884623032422571040632753181135945856397181034728468931445639019332273225999418990373715092000962928895561112408818703708665599859940137541727122997385800269299310193759447628782601713410198599389890827801993664457956615667729797090194306136822685822438108127251860368446120888246073403692057605515356846479481128070227811857729961154352818503365911308346439267497861274610289511610016691814712997706509517598796319817555598884656029872626464188206302519672041108429295900572218832424660535481468534616392124598507844748222152531012489961537651674184890013455240112445421595958219617479212238606343500450866622120574884901711055874848004002562399587192727169367439681809356474138895141003683877577654328268336786185802328534003502523791754917642819856964462155518291077952851001867097612383846564686722589906673006826390748698344793883389824500498573360146476526744949878937265373760890799808177772125806745827921022168953629375671089322351641395151479218730805929788634092890218633021938062678308004581960172306476199910220613124127889543607080219870745184654633470682009803824852297713251585060669283244959065148539742510684968621705056052922521555547876572504652148720369904095694182032614074011170322455240224592289147471006974954184394979907358296418265648332739112214175905305998048304633946605687376076537948332070764250506126862634373749413566423337658858007624090609754990407095081815081883621792488566806115366561894971917695363826229800222740456756424511279681917194694740303825643365753667515343621848176966854455674886891232895982654317195935723005022468863003678081218704034439998690714928640489843450027108832907045577365829129946738438711934579179536024914782125496880954087054855959993826742262170994974554354464306922013969817298823047376223581380512974906686234509976078448904097954329660263230203305447277605946072343727013672474158889994544350129403098476373094069561243092611390512961664972296942878555695678821433272903519643796318088078716474290284593499630196711492978118687635532171249151886605232192715238199336119411607262771354812389428791331787806993400530415622081987527711846190940729361067570330305313186929582320041081124064002857978964230365485340251218612710901566664419846411882283295982339393739147653745064337818815110400970661764855310524774262237345481942237472971417034295353645470616342260388864398010708317750733788488346666524722638671554272246771001248155786573191484749656450711475496557711343352796034423294313792458163404990280709105418442548816342745687659158570911639209879983842384114635402984101318646513183194382998468521912832743468428098309944085228810524543028778456900821956613276636155630793769431616213875502821408315738888091675188320711875704093517350004245351412541241584003885371524698577885372343720695938740720156059742697016257194441979040491382664880830572391163471268039434762329723560809084418424701657264785264176055388693680362102525938269252064171257775466078592535734764706539945042584315595777409725439807475192003423534052826904683230933822002449674419650387358818438409181189338162676902558752196622031475481590737066870253683232099357569924053097654576029741528703357814219621614908962238967888809727780978247208889969347764337224204290167807260739888981947032788763942561072998524265191119784078392595497196645565734999603648507647355189356182786301511003534965922576354299120247733167707129221298227016015477672031739620692540037627677043039782204716342878137629981310110849477576873019102507030439969297004555815500027354488392653336856526889673469718155642687548270943960547881905703181700024227162424728945329425133827853326802384675643304370430273976393588355495586656785555044411141619066176770431714195499680229811633075715748919113132462438712486466844681857632370978848126406898412932546411004264523512431986663283610640666323531372016641096389248234449512424200995887072507308454436889599014739214813436214441904286048126791503440857141172517521751277207696270406619987183955925030942508008067786030823986238570954678686500493308667206647402328701880804501118820048969465984191818956665490822294230408634809042385788921500051713544650612745335611371512401428506146347301077330419495348466545618658575446593516757530245577621396199893535690280312897711914622288961415326436623357607434185071464427072643527809095768574829462942962498737447117299940734363444801583567726770889631031077394252981062829464001324003158718331467084646692192381006741739311729625063575982557273455614416476779979429731852902888792824345070350883477243719137363146866672372683885160114500072452975002248413942964456782090447667350238019028894028511020384846147130332712794707941364173173235470726285770732262742312888092440813331539303235700387307633188222012416483074512449229417534049013897618180622955584969269216681187129109446302844528105006587650962770819337932563743425458912041325523791376242295464285204959506206083376350224804327168312609027181889939913537903779302801371600484814543786876303565270263451535783345477047355563853950719300405753554459405523560921276396630704072855131500842383342830501775722568329197040911132069734506189638171901592630361402670876234971360336129762984114387502107767332255294294871841280877385794239170678223424488770541513150728663852527113685230078459927140605850223423155500112931102708271427575091637288240450110526584549280061018993093954736340749379828134671099927082991978435988198168440199560837227255506924570514557764055659366486338484719226241231157861684702217496987972570357346410063928838422241152930524330037743024087080709211244310753292259933614208325072466677026181198956147991761511336030571128788881214768536333967215039359977021398898550242865975015385783197674369946144604470828350942228055141917385353278122934329869177026803635418475901487722262727989344453706440918867116954191411278108793630865259044522482499660699820997839887039246042361327407615627238031984608968190199808257217426766203775907862232961812289674286910529710831659221395667747201538912941112444909698860635422403980116547176540738444479775171673020079564755472838197330518035210480000205637861016797314204906966731986025642741975695016561577452739350985235318809947813018857921767817931573415059211774852614645467238520423359614054231324085286939745134189780645738344392241741310598796551728300101186826675208118776631399250708933435423294694780834065171097408412887403808281597944432413692169529559223987743345870644949282645729447758756202354440918212724708104524451979162789811848924368896108830496493042840582428813928844900299102702104454672177490344365812303440451527610753164191834708102440353331311124734363686577473032859198849430262589405178825885619552420187664469654522962765525789878778808533720533185129759710970415097953959012676626598734542615858367168945129256760572355531797633698681077128214902558161266402853271541347457522710825014799378963953475458141155279201032103256550889124221466524662158368746286074881827303516540468605020387509750346426163377080455395438882433146256818597910257540123502653011809177321565864878445813234517408753294519449003304597607434795383706602937606780788870024880594991616541316278778198940466908176277551394984913863948041276905068508651721648655774334364768895731045188277748674465308571336428102028862392283399479730872520478930341653807637621214637157905431597351715264210909450225977990719012154598741775340333735223101781030360450868922093307042646208640436000325490212498497654968370231617986398319247629981307617969241849519638160854824927056100124299013153177964470151553933105525993531896244384948798714201608024576845552205473210623623149398482328646881252436620161955462122213465887201214859865232286576429789990359992766715390236964070135443077110917300188186338263530106186322391921244766254973648273013256003983129421642258054335897497195857720894204670377201626183319777527107901477876620998460173209392522668181916847262920344967352346446613431454971288895561981930503571283315123484626918516557411793938317338830134268470451479573630934383335379349267450805905893969864279653292102889405318733801785078050372796780598945899905794516528592333877946720590778403379009844902823029242445177992252847964492182835026632409989157979982394849245527016593245760914260761935186735227485600691081645898800391218447974463057614233706515853471339856690193249201038473194161567674674038778858321667691788949329806803924957887864011678095263882845521529476755354631320424592612576976535766148778538208635755154527466798690661667335837959554733070066610299519571013371180705807312514822720849952713198229593632637426656230016785498801302942073466197771741652852265850017341345367224986983483442733533135978623004401734182831622734405857589812666374448369589062995322916728138929630846598266473018194238048251938237242659929294150775791872053581914769982602039284199227448157647370119853315339592607218680112471984517824384738522191328953531401723137664132575296162628103427387894614174246400594167999826145776723523181022019130849160069826073996631025460700969464882207274411094921447656816003584415921904945341501880150199539377375730319631707850425647104782062432301650433870458065054362525376532841097070221517907264512784375281782446991250917440081098357536361018552356658702820266769262180660063662519043829536760038856132472048820458750649613832475987626035580657552976882527479171903757386251266434082181841464528498002525619071196161428297359765838371201147037640038143703896972990350656702724712972277685320452237179863141093656185477661549947252876184664203068145910862665282535195605072973615633739309890428046404117903981818689148959268750992545437622512079206084279292985549089759365036031900790241219412806925858279050252511073658800622073441596620837368631175638649106586655401055780571917925114744654455828470081241361562718056961101854294921079110143296539883920412531423974692819296070525813789692899676297098491690744532075250513201530018628962199540200424369561646796782315032851325907005484284755189604476239077369665445880541066462897931741185553218966441356693292726970225029979979821547994492620882757831998181460683905780808744100386436863749073689947219649118807704947500205429667157464619552228825471243712204136081795496419514601427603339150842792411450658602333973468132975202548543327798906928611677719370058743270080926067464712790118827689190408553783778654498328501667240575074498229601109155512943278725369237561844460407920024629513255084084418852118982283780999569420039329286957746627310174640025138678774823731530929087878390155581583510047365286833245698541389247445825319494547475157017998689563653168890186857206560571877049257822508266368329351748864244008561323900193450304339898087322309359978270540240562937797842764399092759477120651864001386677781266162703675337040680985459534280453613785070191991808566107138634934955315509878707633956060516328580838163426086281079115701297190910148276938766076664525702822444633513405867452556237081854804842343404992343655267928888809748168046410942240678633566439356441239972427477502659031829319242726026816768786067821999010855909714715673505408278469713985124844366666325635381830399514003239743794034809999943102960412182782237046195930910943728174970389509830649146267628001093061464395039570917551908445025913357472103564240054484917436409541078236220871077203796373432115486810718211266256651807355621795343986215486264713503115023307930805157274764175379071882917372685396292772373931874760034252737434811484989552593206449501296202211735424304033145869018479626821417332949393416871513480851463554710221107711184174562513456204021426827863556282077207014862152053151834505413912743161543493946791906924027641883925921875022438397569971978480227007423644044470686810217642812366480387460940635620662304660459426801815158017940523248883286582887509290017065774531278879505192829311456009053076519414566771847019590014593628071167182454634201844928002529211411365639332252724680532091293402414131290053289700604537414160938502829421307648017165142939977659582154040622067987473284102936619945235208825750454202982947616899875592859411433794155356270066722977181953080120131205121388686189210698312348876389788136129587248278458877455533582379618838021105672021746052335361658339708135596743963945355440060478267710499041680923046463600447662851900793155514394474570544749106836500571891799467602724326996563837823360320181097078145844928457005013234036528371312301443655150068543340252806007824655662849218104472131480436508851605569361138495029046945057770873691156954549322792030422816162984996556477196711430700054242224580238264024924599087531781310029148032965186097989807029935220025057057438493782342603656909168813527628838490108379817844144107301663434778261432212986865290244173625333178869574140524266226029386778311622912217857493046998085924250982793384752512898128635512548734315039444935189494485822385001117161461191183279354461698140737798035532587203820656033868093385374925213989999441419208964020203588623082426009355534885250506546418894845511702930015730611086213993188378446912787200269808929622489340893911291877839389249507997321364238619279193995927685119373874660674160410639736586664785791391734193960807820935625688924397438104919590988357857766803993291890389856433534513221783276655395715059948310434517927673514702008294807689602395574333407849983585742814037164185438840443487880648102084663809820292762490990963079854583179516197094677329311704887006968750897288835126773410851583818860078029998339248599925422337318786165262115499897597530029386605106630100893743320524406015826912560257224459465028060960542769500774694366363592113577066916475936518083601949935652231945215551746329796604887870231287799554155661367776012480756120584001796587690512033670302653594994074181988324721938260310573510574880808623446552163883644614830333969825219107603302527706392334339491021027823451632342103986025778408666600076265071894579383800356225094302142667481939310085558169416339125305641462552733830456342903591043053300553263996387515496114919706921997831077985349001849449324774184701346571640063334626022753730740017826675368293938538092388807891619131689494794180142781576350879366580722959642709833539551594375685574989784537735485190034587255287126703097256070609675112200417588794592486474426722053443827378111166856260967371459921025996915840553688693428316745325453311913633043344489489458475898583908329507564700537529121014280763821495814498026064122755254771779699712041007117939969130733182044567245343166791312523029227876737912531745014200548922358368238953392075426140911288620893328917504577802762680755520282999924890336792091673974155101693118898559940339929353345546343371857520708980915377527968152476103441772194777563968958175030709681790696553595778837572614058802458636332856344537297915406057273695846425475999248060057796755832706711117509015930631770741029349778614826967496984005296552852137253394574132339528372388551744343847740322856283089083384064972150831601585153088980595044255182049017769871449468601277354678453793091347260330813820976678913543525800773625198999561780755665104500416013628953525008718216956010425737758771059358751724397282325956081477841756947154884202267853660065221708077940988740485237480036216818650622144374386996210729752205170615410996554126433087251316293768251957007208454741489632064477813828932429915130221219363239345266143359747488938512556182885686837108944540372616066456923290337830349086884694560966747786774830003208740911776904164257255460946455178118181312797486036384508621847317662009316806614859180002934779861009996219266331176851889358965997263057989952378667889277671394380877547284203795953842772326191472333826050751178613127120810686675284624139890342291761604430094312462204354115477141404048786339482643596460809903843284201959970233141891845428003714175488441217854077419488609366973481978905632503379486193331568971009517576239551646030111902493465165589047261659120221649323638907664956861995442532175308680468197136996323397468685704575069585327084765277861551481650603961501510790055238024429727456420282901527476776312239666728006218843566676925085991461543514518425427430917750158240013198785817222111659834714239100870896243257743297901962375155786699280371848033036622008467891783271780230362574839903889212355142983725734837551295217678595221294291282773207239770725951708739384213832531845711403475900571779671638754984110445873794021764587251728222090108183805375880372879820691809956692118524692061714476018550218060021535780480067713854783847106447704125860157874583771023686193311940299512901008124058429720518530807076993387968619345837721174314778352614573049940495191477487464673263748004909056474404260507795143924779944779768618846373578145253777502692209501136763614107485116200074915659326979897447675914930285237782328797001324896520111892377205222897215425664508648622799931379952902261469875849775606071585340946097600129713396943688987218857696034185111492118598744672196668584211296051870271785988376496662215092499467255609750159762429576875966485158188097014386868455619120586646005889872365301870770155550356726230236895263361253332716984454670387944367547035809946057238204164019545044790786667842895747421289053536160623988541489192579556531946547188408282210094791280797094752592855354389475096116007016986961841152927219729317465780663743010385074890357223717152229148452216197244978678215777532024718642262245384891426753591410186005882482968560873158763341280848866838609988394357860725034632678242084891484969669636068395085222749394914825149376401492679070982356140697787711321248586727351251657781125762658167086791020927160446562025106468376815359658820630863359091848365772309338529612141356627079632481167310257794195153598181816825534142765837040326927873286718625112399563292247327776379134679416675616665706964384962709574693628017441033644571555353623588532894305132970467190378548932490719171096436728062394855438853118391920569616510400668495858997872856121756222847143448738059161133872483642308179985581869460981071049337410400846386544503191407005397222358558665076074650394793495039773252176150085018011783880055889667582380458355263099313052166400952012412263315950435166415667461403719575311961053627547407544087502120181219124213009533597496504504953024769584480459304099309568241841135074101941969082245213124579029609005388981109646546383147810195641994144072433144479897766658965686258949853443756252138466965321017664009476113511288043355851155470136518605589144339986404343645436723421128295466290131776530110112139935709348314774447059328730610066596836596636400028036867130543123069934915618963910859417986847122205997431194248665386628019519914001336212467026158509140562036665446895193088184010846569102570980745849993697210847275085790742614080520276367193189063953596735615278826596418736462644724355949224732640736472715366459876851997757696322783053151005889250722179746317292431243347917394647294847608750371628667403520299086407674074537439914659671077245137320618265124069080638107012391413101553282444857043653549538738807589321285845353183204726927691830399836175213356047728934360735190220993493057268099516882899404605797441439697025129258577364324157237334950255746665516557943803199503287559298539656364388237774500323428467876161190499435595728509972827345736103624771366071410100120223454531667748841071654042570786852247751064889878338175117747627708208923247063466692372906946265111944079623740585355513256637343440550950930591815354017361700708066345060022870224689797717919852815619739353439891504514350261071436011869998097671658356658011401396978481664485258031632058599388340464019385004115133116373592097311117259074957838839212420570663013599282010037891604982100975811235038705012885657062066274511158955396689994826704688574118811596160964210156133748162861970797989760381561048400921372073602629253896597461743454414336541691530304829471798152880766654482671102212990734815990748971217320511718598221822142629521515652648157852807801837947371921863218858904765141919516756739375263222428860441724245286553728845650943685123931399228147240993295427730067224724709690794481591914740953181078530830794900348588756588354824667955554560560617151843121490414588960459674059369922891839467001989165836971079607929946108520587537382963502763336490558961517157413993121258688577622294605891496752356696506957496245642207523404077409850898896195352606877297878567617042439860030399165761160220664399050048012335383860219163204939752344296066338402019057219834940753198005846129006208371185855106289071717515700962734024264408955885764234065965749264967266313258150735641876540813168466363497730300853386886395033866223208924613385262332785035008345873085130296554971049856119926680884247627577693890826107516014189576881082667779853739116344690002752789450922386640138672859215198385136030035021452277476092718012594914015351101516699850945105041451241396200212578884226063432905314751223859526639667435693160570401587269558606273638332725263191324916406477315620457656734426216066311920165579354318462901114128527534736862633493875860159929284425337339444989458267163399523461375979463337238565514226086191691497029993180803734174080446674446985561432425878189553780587841563432932447537140713959988647407232971053400264623398030017076364981899379500136748289488381151097807731890728034850108050214532101348711758448758441397877560972653659572983485427293673286512782005205601676486116205822626531686572295849867427106677396805874546064478971115634822709992562458413696972924714566726153977626162697676200155350333372991484853313320291524818246903296566300693828103969245553438870403599373151696114397404111440621737453829922126151714487283982827532560539384158081064170362364069359542355666444747585291913350138555785030521085464447697502546020323332528130404887963196929972369148023937674944877920205351452959119471581070618921054093339038844296280700860540766517896316431083752160367545764942262493044880885025145149474807290540566310516193580186793621771158482506834378050799603137614075012519357985692463410727709714021482620239067029757683785661341187258525234023676892297567886567060986412786815323248299387364380377475545953661922771684280546343464848525013830804509999594548588914160177257739980560856176172346797252850275533885435557814031451070715012417628820871353746144238099324663990826911941597103799716915970975281414286938611078346384153696709175412471948579616573163908905458804101171130671941735475268519105626352701730727477208377752716358078774253481866599987806397463426682336809558722743265887480131093685607357707871154444190655805792883930678177358774973936258459617066250545463006980257429975673633934553655539175412909093771844796438972526088060741086908383412856374984065205303960369512568603969561548520559521632780005776938005734521805607955059100616133547289155935685716795094099275516198627465071609447839132876782963021342279724789834384494439640891313781945136261233304453151071457738247662133994566455394907550444599647748701222814997708345088499615274184458299403922907915950735986011379380234554440521281370639653320290576442491110443685746545369627023353757069164267088652930827467152310675777570272734027902441612316015308445882325911941458242914266094867074884498720833159558021359983174481308070546947817172667544521290109958938050266825534772516978953869941078621609874282813761527894086016749679336206432984718158489052359938472064601744977592009243298370232379532126249620614646221408306888892750652332530834690795641985585246918828473459688957040173416493424894451701766353307166957479281231861618066336667695112859547720432250977944099879277233701816743041306807840163309570834694485227796438441645829535231072125372500831394182681863175290927402760063097881931175650464432723612186665398664058635367239148552909278162066839271882445569928332889687832601533801774011836223886047792081232800824428911410656491644420304223640628568927658751201631647052261780995578372813051276754265239613307055161919660868440701971260967679322388535455310867416874264184053799212150247770143675791530459333205511001103667037477208809234104023506146374322377187025513829880465337930343929435996934549281798344485759384872181960080319352597301459163862728785885960949761501968220200289941194724263682488586165668220489932120279680145902258835962420099721674976116041846971315038513174455929649794744566108570195204167542315654436279894622102287468109448078088916903494230569775884222375371503314397101654359390012575053318415217210773177422010757908483427410290945578454481637844271967654749314928283436250529213311832844517212018651336679478613996834669020012579322011476384364308614592658370107759858870529783567488930912484992879068397196874907412103296618016386533272797625452741059193738546563380706670635593329515587472176033974522487544836557198955159439027951991419295165331510832535919619522778990306767301933386853980552970521953114745886466757950652246187389627498550749636380076714694987921469763837650533608822539907044196166457076092214893231062679326736604436100156722525220758302293801533937482748567854026811565360160106524812708177320824102422960581590979149811101504249994755686361115652641478094756382708959891041417693240703197716098439361705961869683784566480632888776139264080288322548611312810408168000940485954220838481195997354573874003146673208672609286482429484323810309991245351759604070412471071720753560735575727051816471019665413225265720325378263990001426057332946658337601777189243282573662722331797379510084030937035820889929200108959199890685327729169379555557697994675044634799782815439171539513172173720665288409384233540437510828195133711061554565012248173745075916534223424999493155575657685339678481259690115851733412692677305074131678780042075629375308764661072167976437106773120427305800638455819306103122525291077321703442211420784611001860424438326129009860418915672090725190017737616324805495482511897781104395744617988949355549991161612453717106880175826553581127438587880191029989912944364325932502735707442248674644694131376233925356203126471335821758571687426001440143494649343927016697781251503163650899689590931339625042786711640525396970762187668167753640494933464152577602780766732053402805700305752201831237972498777278725645613968121763254489188780210232556258250402832670730316179794942476436914338991932209340821931134000087262616084642006129851999315661811610903058195220587226459451256372905092816972735673791605952780987335067421189549205634144010113529203282778436684191778188496898662536265882077233328607384665766977201408138657522413254176150031581302269869134687175877598499605261958451618540645452561352084491073563984059336694003959181908482021234531571744662232018727019301330176922422348051758741640305983464283091570888512029775590373454797078919719473410363125949064909330114616603079308207995548366719801913079923298079980128244905384667359889157630105210489823535726877045979015698833782759645336357476963483367811741486369107465645105461885239221851378065691812919394285718156560856004142937644433306248843312658076137370548350767173339136392384171366733322952655927628270400209496620238340209266448945900139970434679468066150166846651309054637264435244076192076869750333334596673986294751757577479720265455595856011952596965591936375572325912873934862821406373899249531891812247786190202012963490836641062319414280650359664812667584652087971614200311083671696619933747850603480514476601561270889855634892311088077577118093599148286663579752400800141933962843856907655633249305989435743124189220282042185340254848918435428779618008939152188931867763530959578540799126645240576565822193229417040084841191921347404801369984729409811104369836708052075092210306329736443058056069535366172236636970557559804421466506122739031150520585933015333415424788397008467862525869616098461115270106224932355855349208745291154757095391010621989978780813292110311341918409353556759240649662058361982886834386695522021758592641168754079064906362245007151981001223207434980050848609960210707009841825188864544244791533996058447588464725203652467264293361031676992220682370017402894620441247994926978272872755458522930069830197235785660315125515471000361383251611365406367743596982198567202337836817810640920661014437698675657491617820435188820743291654850240845964717191933932943960308601737470150666427200674350929541648887283243948754664261087730233401935875149768923663482460506473662873876791345498719843538678017822691679372239789506250476197779081405269053651297379879873435630214708230621201018380833319020781597984219397356101234198996139702409547308985946500005594125999291369882931282208928703619393316114149826816965133564842254929926614105102027643781006526322000632183151100466929358792674184702968780746574026449118385863257217198849743683287123532080968043096291835166413612404550407530522790489735294302920721504021390399763159552023909713523583782856232537380703975976527985270585928854751220919339731043583691266865516563505284493762741347782700693216949321459500243086741047595229075983755656619786935341317309396898121870299002260024249560624577292435683794396165228617192592052218000669386964990803387273507229254751982871027279783521388220828947880932616020068917822909998415820510893392573049343424337916240117428645629846586258035101165464087863368121245361800474560596028444227978823758852936596587621025060625211502172029192438624487827404625678057423494678474724439086244970098934923612451670914547006830271679621103990557073473458175466114379660342535851476480371519123576675918307295095543448766461122678597168269834047787162636797732267817787683065237577384792493249103584977382237175196440825796626804547686976240146198883886920454661699548580475672508858523854166541184252242864884317625833201469202467227342802440388345283088525588760074603824118117647838569451293738049380576955106396846984545771638293837810376060444303738435518037685958572076712126309770645346198067115915641038969571316551239083507868181564873089756329923877559952378180129620388553109306821995954047214688148273987949801261842573897929915420779389130299658099013372930860653488625705248576383495243669497767343793847395262470230314442129468018037940663863568411228097658921903308661819159479758254973490567165195859279402394842158019783155449930449010173661564008628172241392364469991368614481116898610253926374811108335018228348773056301930533661544698078523096062798890975849564666107769724934208241206821753687520456415434969780574445968906200872952943844234967421829173935902026720124126499078078522298731200641895870203176285282806823843780291257359907887102118028497195057064459063348736398848961957630148652975495172753088457915642254342419866408359319362310171200926110538781445690075353660196847799006532301601855880815552868058945803111312652409506014212995855973615979701263992872935175184644163206152116691187876261258215582235484154255986666917174170982483166541694985050918872433693732325462540010496768843216438559810219073221927310565083396436963880760094448845496003683532771308377129913359433354279439447282356079775693188644598275056674892021303671147607619752735883039126403208585528084934284518134208986099302464992539202399822250841305824057682978504479251234824154094057870977462056285861198911817221777854554715296997504963028192864147442926281482448497441487434396588643251800898483224756090576706206317394955931021281818743857380908812025250841145385538386735046424341340071766432507317473932564973490386153220389178134720053864102060532920193716514702225800570803243128677854130502743375059217691828398624933138476673936674878640694968919567870893697760673319319076724044839578379925184895411565564862573377153257705884789365384380314247305816082903496129229612647244637320835740543119930547198313482298562978801906980176023700047918479333841321038937107816774140732372802522975772837277733621445889024131509123905268565007547632720990741368473212854302397891327098075525835156920870797454435498363263671581896173981856638039894992320619743751330813577751249782179049808050327881568643107131154665281223085110360971196280431245668155833794018768499264017168414631885625197768631694361779980908772111225488056122761229261283143575166969542212599048076736722152646789488272595870721405790827143175575288831856400541355282674154508707560414373194791193813406660912366456937017628042978980454394952019623500555391306191075147202771974625594752721023961913192454890106077432786488815638584202353884765777259841332757972470197294517115819532152838616658785704493022173387444157848905887151032419823545357750289693342387233844651447601727052449334418976153854855522857394304646422813295954995951194235734842536235242515316299233787241395131650015105492231383507188889196451182143328707374021203393568638772954022052351832335195833145840042393654566434384198244828199491513414527509605301949639179225059232180855132690685308818809727742611628338224243579850069095050921853750453773824974765179813734881203039484047237403050602985387003679588095893425659757972053038696858945375240054999688851628912349888714763336971460022627432873057761861841392150808821684626710729303546907538097393422719562496848132393780794593405823647924537484924461470691063604956219922649703375858877467192063343102787089659536246685099886293726583390201293428225308018311921283550043225525062392459493584778810494195220814254477568533527354179877865188164727847422146777357352248640081692663768676535369058211732003965640488723080505486179591566472411844669246064978177697174473987155244249903018841386128342251586972929657938141925405198155422207107469264657295393947463097895974549795013538096644934275091599728536133798274477092288904267412290993762223216206617221952504710568587092790502146701606669575201088521906691728520034423540095566648939666572078464899401537932301713411588549028931641828824037885408642662037886935723374229159070114870773687347914341862608965339344768008500813065866949586717847456569522270231637778790587038225871181470957631868441823901186002335486829732659781029437357233139885412285749862581272861641218566498290346767137899678042841552669931638564257164211317315925840347110006583300984894412154600881590881320926863737172545461275939438690278696131380145702958248794485100700693177100246589987548507096219175451911205284013200604152578118789396883892073798702667526769510628849196688551275616119440280579916647705795249701509617112759146641636675605398563972368362686332410415277949076755965448101147967383951767581911313935239409519769627306193453333903084707750063603023377296852787803166767942498834766173941696828475856169071617741867509856055008285611432923904740952779106347774306495482985783981864070400609749835735264428566050537540173426154364396797615322127544713595177615230667421137220820479397913977747684008240685357080716015108961429447944382650018571532057080144899024495046938890493971383538264165684916975069349587994617898020599385391870540925763340855871809400760471606291293693904122777378984385837324297288555794604595722406805819933482520941912825674149570028185657264412261498604914213792390208027644321969143840168753611201912355230383186661271331910120503130187642105252620154638458238092955174095474520040818549766936477477408956108207218518522411165543268329288535911717243727618476669409753114235970419941068589779217921239933707869148456275995837093528526528567241625009302044959078216728496032272574095994269148975608674931031791599764254370114515856837832040692698791092941465557917585604158180600934788882537402095675671447493419539750099881716776312878243427112245207514006700480841065464245897405564793451549690061704389055227472736339554208946028414313022765916340775887490275483944232886855123061981731389487942082411852270463849480100826424309905507642519928016391911696387815564662092561345513163183569305837613772436316959887015760451127132904540149349768512045896734270950527602555973235638711318247191507509322564918382159894035337568608340545883271702638031424280554912852850019120432461359436048477505204226049905689987791807727415194538776708760164010248562863326964139089476211605581126891151002329403517546677379902415529440266721194801272871266368873726637625897184186221329308863271289608434830173673194393158423725465364609481860193042952930142038713335519365027669846047713799457048072320507421523167464797051158041230980471662226030090201317276887266126155419090131973445331243523489352581666221383276643636334201695160808820013584493913023166604787562101643488097147770730179864814937199539973014411212532735359196127960492949485239357623211179606654638799179240510091681040476913856607192471865779937991731790220954192920888604722558074197739044883214654811273712526238772046407576258858957859037904137528916348710664352558934724356534537044904860991212034902790707071349634249123354330471795441472806014942544941857837452552132340004652439536790579463082234163055940407192283705489692924971402216722799368990931002705628550864847047440724245148002916416640499395727873977049035961618225487101319439126700245225225417375763864917025842834693289671143555773250093570868876374385071130045856367805687600425185344463523160354888229127575083606646099654959408266957337831806879556855351889083507929574919393372918520222016190261014034144198435522038816741081600090537738839951185773681360554496659362779193504378819451199798328717828913303232177065271675263147192603334547755621771327894295109643377855678245482386450562733592436282577624293092226227010870669996317271008724469202266377440658200393939964538568628365776394828606068792779945727673759516849172724409662647976452279003860817672897280876505685755936004973783567738382102667763700847588039384878595898946326704714890051328904915096076043124519991869355943997197840977525053780730841816572388862184377699090001464029849784282107738984283539449611474607638401991160755754754743091645560523891553471769807862897116615750673256819268054758003645426546523280134892568995867015239807315677047006557779493709348934397597403144010533388029106326672428977549478538394566204638378194439501991257747600246338655865716511685131404750199232017339781942915157474643036774523229744516113375576738382148597030116612854302852457038402902641099836344910625031984969760792368024408611186248677377251779130739062403380837972490753930158820325149284853089952156972460019077665727648755293344859067949562357772611209185210489525544313427057191724652170274617730795097391400221488726322285084710607310029886479838685858722530645742252174425074687884921524947140650194554607574655081837098509553169116871880569121592529012561322883196603411345811612646663122914040015542178549871077638669495106101359531937212576456607450264083430711432944022424039822698021122731981829284831500088357092383724298997187708671907597308400861844897905532207965280485540909627591527290828590165066791983182041750671208098986861878610115461648907938726498563260578009840283040371541827089984926043119279844683849332652807202076834362610272282177609567516388946565519140263820312606404470694935883106268160454630042124137172831514183168939443611625704865417840692160297652336897425701590156593072037492332156975610215035135933315237882235798897314140181821088179064062329394547358462821802511643723973919845228401536353399483561274615405715174309072733150533534265531203458843916572508817205020687780719555523190997372805325774098344244502664672579297359583047235125979882547432827610972816856674071609374802226454666966430981879259131911606949928806252699594697899660758728789625065089079758392400451223900298930500601312751141319172682950617400134326537670252764522355917994291031784330319445975409237734066605961118831263186009488203271504945017319192879996869207417533279817480100489474190192759480275933011512328553094114672418440210610518185037174595836116760272491610362115430725118256216387444576479681244388996401502056031091627392649053863685595215396955068506252213120262525301615600007579565496109652925111103754542048620406817579095410796070120784974164507155162557974883497956864925281424935766858974276708607491562368993524581335882128902727943385261634177735361260953722368525817565876134601708867904538999867433087048055125959954484781472834525546161898856499586745033097282041524558458246450457045931940434718941677077961109252533965290114991394842557924226049610133247806149441214803016431773722651946881492822680775816418216126044738491614381500921481001141002045668420884169506167173859732351491828027977099941094882621748488286254692036635642736590071785298920277452543884620732242724643439404280111547477028759612562492615063320523275722026449021205262400873820929825217851709166304408026906728596377929895167284467120224315743687720112668373876650671284678257427051989826830649025203659746885014338207290974421116203842473983911176555826894958359586870761264389302043777419638510495653165749747578929070311042135419800912114738289839114039097673276260838557497564162571753932616628940786777713068280613320260278022269169906674550241689204672743108112803156495429637209282457020458853918888400639510294968745166195397379441559234444652649228270994372911867018601590553917477154795033529065602923634621197777625071437955514959390290578759292524949995616671399520204750324358573327788847566975898843066202841282559012479330670383447511472399246086308580884196859036443450722330727575171255374418739337219092365745880175755972745143110289988308314036091431535508712652411500905250979560491381539805824812930471267386957516255674202211706825193755455958639152604106895101839130768187204455474234571804046428751397475658351405467736891869103832786624328741553862671644272852368541098430497476986960441489377831268312363438315316615422153695748109463133397679095413163454268969023454826402310797403336329195530688819161233408024334612591338366982376134006823395664511252358993848580674547930417244430457071306213711142446362486427000335221241272398658693203799314958494056427421598169085941279009807702795699155473980926252906624467313339560320880487405419383514665971947626351027416493360232171086688816717008692231269917712484284086494781234657292126201902782363253030067637432149911013447410274091928353630198753473462610137884948818348965762527934351081943800972468247082731728839510480980161352260899922581849676126014326635028656941994174901005461791707403322210508773436248037500179485909475883223385611234169984077655099688427468644518648013453964153045742790684776194291289157074976423858413002688184182792359933788908426186562590200429174419582301679585805798914968766820251639466427445849179491056257660707341788400401275019303257844445933755258141393729239894068754443090684171620194871235329146465746953465339197295915277177964492300237465647510398324783617421705125821993314397600053318535758731359741549275471238884623803105447463485384498950984410280433583931476232574512040632794076091559510548966365731274264472734967121842918240869851096310208079753812855248248987468732155809702707838261240182339500827927235488486665142357281971078529102808142339099519504244407856028273289562038022391352324932589227716609040043137371019454307773625837597872682923358372748204449000796532441585016640704844815223150751041934571100243213354024462932687216086239249489790725304718976302890842629669683237967397875428550165893394648422968747368563208591920406802271218573893141717574637451724476821350483205723675706353477185073877545190926543518342801431289363434437383823159816221027631597704420405143448713462899124643044865331487736744353735539129630404986777189952129477403303395766086527905240086421709757140728921569469866710407604285981798732405639030073286734913088839262046194321533318775615097562031543291716102808593691773613128065275947738651504277265382443750519706863944086316301335874380688034484003613919844625162687938449545448919725071223756363659674792699501262605428730008347664778393744057818474386132046583884828425549704012130181161704132972019765286478045584569357268497753047775884524504610258530992457461907148848763714552391719715465653455793506226752738599225744655200539964357076653687020198852177738878465891550535738664569536772295417122536647043138701849465080351650978701549034691351735001076116008253255600151958109027422208664887961350909777840059006391828257830096243379789381481614031154284971681500293721631376802533073451439143556867195803870771261282856385437996359207010510737997770759564023688313123534756199392486486803966286855222027965392566564123344826204644843422985545268398718662055656362911115628814568423997436755257628057274642644065154423088457188284031338060205878399960521335296728397776727275799291897045486116553230781105807718612797398489048642416133328590709408109643027412991208828751164999133137685262346273671921213502095729196901703424711778962143133052498721275071691884828168024428200177555084594948164985030711179055876335704517492724883079002577377461194940537428688525429024275188668938159031645793160436277515730359811579875812706267611201276042355072198291902710658774317691139212151141164182160326620568245511460549768052820924027058361982265912540480992986949859382614613938882239966779855562627831616099904726297500580076220562914355746722975635815813576075114692556112650446557257290244257045150577178655053729419909142643913305347289046444927744593980984523906843423266853103186280445989804248547065274869930535094500455675559227219645322418452604159008556664866747585733307687626969029266856591424812012167754782208505754741883358017715608526272177194068629395050407683612384216801590442428604964854928016174520354913891438239994305829034693292474286707873097308369677431670112977375943932094976141613297863453665276760051692961644246893736877752041378506213834999203204311242699142638319852546946807194557384969232618456791133129939116292098692006102557682751812499957850095292958406784194640928472466660719115851099089893261265657523890594284206172901621099498047999711647844945266467336638004584120132999281584422001201531303377982863365978431670990393581058446125024225675356479859647014237369038937035774533656620594795147009960681913588482042889287905532593685099582171436308919519042120565305938171214774356394422264453774073140464759155641276245162651404195679997660183184159946900665010556743942419536879565707394315774868302163617132408688595544046884838447997002422983493251379269373302650739215148977779609220120377809750998202161575144900855775216876123300823671650743137137429974501219712439954567583849445301866223412259620634118987237676867212232457473779993102352594355938208309442289471601079447018235230543481796330331255916425601127095025337770583679979967263000898816542281859576973817227897071088171677138309760368905928856612707653293946385509523503993944618236914448600667498211021997612783951024009145813815268463898156942974605571168916176251228292754028255408769878626673403473275842233957225074396717459331527183871140531645141955487016830561536331479450905014212215935500060685779310444948183477531744046252223636392316673445865144253403122489030024379545813652189241129543478257487906672052010485770171355344214100682342071246274480396173938207984996083878160636213085837606143494443049009226331682477066822748739158752527002982199170505937466625137563444218806401040024085624573054381826925290264211532557711420375986442063669436989687526978157024728619049122311183863822524234646460289635261460922650036311739964918472574429686533817918737859515872382908567270471519861956953219517840485606054089997737261922928589023923381196018765185331997251456733396825635542124960075490301909303294726464884596194689163003127655395026686839708412792797395223084381316060857321543320185120549987584478938381587008894348718465975258408679304643018880225850247585994383011247622967036319693927977850383321255782260246310612866888384736344461370098747480260688014518566103288450127456776321080993114278750873718208713995137168505161505130199572302920860208806727861724939756718807276886552552097583933248228985148074983323677698786933615321121108422334801372730239447151791705112553905682861891646547837038228128180818553992127709787932696347791225980324219420990235364343830092593608157286354243916171631334825092522606912420400578412289635356356328120764255962733117312047636830805030841869838580403011302780396924476856598673800780359924425012025466908898871087911409751902462253333047519962321251341515310377558111000198963980842626916744853597865431839629573120892988220394425592364096786934053373407125417767766652203822332481949233530485306473893942417189496405681685788887486552803128380429866490016214359084978609612715920240028645728893669326296377250483355936201534988795569950671901127732231029649194280470272683036064812954131522019121529614559567181406062382618085423882051187204054394793693465028607683217604707177595173594049144869407810561841844039627210362880638318730551226310469459439800418451503135001914273111340888923470529364222604564784691374549146222105852748157176935341926396707318813878897507554295348210992740002733701435316268431748122884166849619775903070607438781997652049568072838290873430681272626749374893716638253604306775060597101882329763380977696042982316369503489746170304723169581265175310742280465277263845400566423849181744674460190005218384548554307193926393189496825108670284377628876993522426789557016827002051388421912798369600578186790266944600473881722462939351980033755198713266069297838914255891080487804558792272457170052252139492474930594078594840922489917473833386866938167801618900745451885461439341183933893638656449596071656829153437692803203435899803348283072489781887980613694618033063201903187441910488768271921320441984242235142943186124520714874375707762521589638827325738412864257234935537541492231337589674606206294455196601507764444310257220486783807479179215467328661698330793758372032497918242596130063351146552826794237992673166404644181695167273255981589764885315205295783526691219917028441988515959130205939114137148811989675925577857054071282703809005958233681339037179748908887298890344234908395609137835005445345534817609758538616760033971870140714564243944683180218530085105547208939344523315369113609397174176622947805864415818485988904682531608389086557803541068059226797998119973938631146876203930559033339281296344123285642797395098235292559899106389140581946439175736350832592152733394359558874574355287846796802797916536884290523867739443305319395036311517215344930604947333752312789459576527260871197944834006528055248042411588939057574496668622333736922585323936746359991489987040291632921047306652540396924569746961446155669558849398096065899131174301122758632068290060145927345022698428891177657047625945381783605938706051521859092388119775979434128764241018465525391785674110755330265061570324490917868772575598274765697186060773397799632285528932459109859451656499651664931210828723185579139753885243732474483840014726430901250409401723969796607770771029384943869643251813768391514535537781061756363018075834684620223036041700021644459357264485087187467078803427102821684668884433817790333745547213204755905278521728227673894297205197755148319240840630148833512805935416637665752876439253909252636065397852231145410490541823907143178758116752700849957916778985090631154161425373179249914767837676627451944992909337218041202385608676914602733709074032532364138490873763755191704314633388776216763695195160764170169098149273426053399498219614222776334346862694459301262188688818480180244783717043922032993235386341002269090256694081320704913611892638040883197169754720488307324688390970382062556097730193073302599168300825618503805005184805217401582373149383764438987063345779966383611191471798888511356039986862361455598968635793777295676303119957707606146688097698770263834849969474929837889086388476177618795953011338526341964416534276547896030386640705311848542884141493832614489217558140320871682692432263332431774127181723540970621810515316295900676081296553368582090463847321647404862390490030450877367119160061508160525908002641107016393501386151545622431750859872073738041761316146928754423620911815102374664301741047523736333389419081563461872483137238617960689871898132107799686644395980310936853732670245294378345045533484943397162916286082397305668368154282143585335193447347907388412273161771553603667367954903022486796644980097032012544284308218052960871943133017947617791698435890475457962694026576264554218563161967774572965173315975214450744653429424368714005898598930577823915045553450577699348495414068915139061407651279573097536443487039204745326978140827713820904140277528466186797456963720367413400326172101249010911266132047077683896757547196021925505380790512442324656372063902859232807933381459176815332781659732617837851468888426678381379791182643467474800648016603297478259134933366200697068657048801765955645745983422942422586591027863984748241992566713472610651832172395143290382236831163953796209342779012925536523771455378707738160801100474846559457747071210514745561958894705045566890515042059493918719842186765102931105326338712851141860368337075667049925104166688206413140920317275484671649490292859165695945992449211760930058679813601734542520881078730805746887245618105292318222276594847424470863607969703121275330113791829781695449082339790358776717957526529490249075658792308009706746421476876212969148309334927602194571784034736305911335086852510385134280294324327339487734592687543525195047680490874667648936443387467092059348875223962976045416828357839426027002917150648420711510965357336862250673312567443944170917088823537978651983928614846314638905848850209469510782101115141470637992504873697869786116330718564455552619939763427098120660909656510561108659474196377303350244860539029547158928492956849332248562863019795929116389499408037655211345809273634215138514478754927424959570750171557896763532381196658064609067590782479555924440365964646027942607111376996019540493248871316068874052522958351558171997249529414789954237857000128515584262849069864574452709284205728769546550159513953084977213139498713480419700398462296713039223469505752555612528720574452332047069501713350803694938509062842525633356649162094972798456635321305054366405896007341062286930473887292359693283821440723823137130644032309148950330152243577186088189452183036093337282664310544507763815819669784213301588433383958377535575433511064733997667221670848375767366392867197346054898156539999018444648075680605187988627089238000431019143200417506189173855729338397698707728968271416234406065343043182909754812132196115732446277067369614324061379892180438480615825632096180834825665405287662720875283748321983094956717743674896709945650515700053635141044159976566165933939579797080876810681363660893616180043859055278118748852782331410851758370818091587868483143211388256365797340968687216576315063610991927159757891898280441611798808020769720281053497344728090316639631934912272008484336090991223829143382298570539097393921415929862797536845579035705646585073995109236793376873469766814303419936311696756342802787491991049771753774668093304955839410073983007123610896383357523377382858505107553468075702370618929407609679609377926040396003167516497570307945240823446296136417901178926695011010210253446811854748936892928561685619306614876183905327970877355388636892989121797936280720940953504276373115940040236412181486221682813434409477856769337596988059388971102687052207498455000493797976912790093581679069185167191924029435269382653634556465550983277269169129861439507426688630241037312751643638313437062833527374005742791259952253443960187255513773476344108651873522730338830269862384583861898982024115820983655046682723711767085229478579427134567862008937237173121911681655964233893708471763247402034810041770555721441258711710328975057475385924541422064379978924137697576305114750912502680298579810883457375053703347781908552240697193665672488273831528157287374413903948434030062520890810322186478565792280080835930976370690840479259471233308384498801072419442369810307586471046609710744563035646824342666628316585129406224936060711967023756021815940975857739670331058344703288996692653194202802058692106623339467055048679494027296494168189792782229714879802333334284622805747936976170615135347552087077196066028174717331966071550313170267532031512625202682921921508551939265246269423689796065763670374098507128692796705021327197810055474926117294232813438647317082254882562570238752973664285580967600672425366844175840274759246535362494591367945713865577716714427706025784000470156869193269967223492354462723818380772213114628619903468279348232581389066897487802083686822052950836793399316602140064311067043010664425580385136003873098946521437840137180956241145594025020706978744000046460912418323468258501896774985466595291606356020949748921434965329439584225562570550772924730725359505718743278948177362688483102030462891472057135633438532893530311182659596398459721014195433789447461265297291245914455406212855591938141899088656573723782707944663795988435479518651210357718216682961925797266612247506056755048412522759083516421757511460751220568896678084072746309601283725029585750582844465127023498595547498706359803010132865663493077631875445604168992375450386882376211367438115254483558655862264666938373543768704019432392506042554183244771318010222999445846547089358816856360567864065889154460013394898036947018616101999641187947779969654399471269789270253689779011289012126011238694338292429996452773710774424708285692946437789331104376398788253682875852727554767736373409848816885508562965688150330388366546246691170037842985664719407506750920214937817885036278878153980761652665672294140834379102367324072649853252877164533545742450094158083960132478282197375190335344333219768893116324971908984930747004112547197345860591822089189770038509513762385900067337085188587742900742733680175286920630478748573758280923592104176015268689549154727102109846046493486000477807734556734510293265260290613754223033151552904228328997085193100586142761851400256424029494050123390561956430156839603686718957635485149963045821776729938145065006560442906830351089783476916495694750384406068391822260179376469429724589528366249592146509313720100507634097650675960923117495109952352516363169924388371728603734076190708926776450222754517120597561408061145740657436153304587666577200198433204304883549780311460589547088131007874052071145064887684202559299128745057100334204729129270586742299933369893071929698785265772213123786767740628071877937942928689529337933028938911823334243544091846473061707286769680827428070134143043296936299035368735562190241068071246693845145510387418843914446771629156208053257019428791926937507759881762938514811197921761589753176817437905949404107603585227868360248530444211074075979279182184075020782932749599424643526993563619952894319636259009269597680559240316849755462110469820816293259078378812326282867690360793874663371238966679960650868861422878564754029180670153998231475217544706709164957413361999306112197041090463548495619984750860244662867024122562321423033252811592536559556258994952798787724552417018015051526186740314555862918283295514906386341924858000111229676106723990796209094472977141953720311116146202767959108963182619264963477698228049601435371495786477676586490353875678072988339342066638972253982929998807081138538878837988891642237882797004402739664503210093892758112109997998329596149459603082008216112416958839310653118789218926282657207562487184844998682805570529697971410819861227486434841128463565660873215702341994275555095494533833885613815683395306982275796150154731530195116981406844830285818178724135535171598079119510956589467677388626073070614505908364448606695827508117116096576020551324770613071822295438926997859802410275049664768943312800042145664245848873072793364647164615737265865657392780092758424783468478795116483731632122539804304130731493820713536429964254912283445045504544602226360154730548314328761386193017590557655072695756192035497404228855905942396791028355681510911219763655322386455144482843235994602469125905175192537524892533368976736392701519635888683749249234239965852909039167558952196075225487032450590475059372558208606297050202142432748067958169703174265196827139902066600405841747554944379302917513735760744521688803637738235898599556941439879853334503547059159019844675128011943676917672200756473583481263056200904934770536092662722636002681829399320432550946787819176862582114855302084326910113030323074720226529570871672832993434037444015256844100221936655516819009392830362094879613643319071784076156303419035995372625907382417583607275116972585025425884565694053669760425787306544347109441215564256567708917894499571297808748140843476310213549781402173317507015481464536008290833728044638409705055754568689884340589304678167726797858876205543509822243924981066091357732761362443686285548327645411780190039482270730144930684404690372673644417846240153051401962366754966535945462052475962041472838654543503737789804324198575951011066252716396242428330892705370102804557756591770517233963024918160089785210476348608327802847512282297634695833424742468438950568404786513430591023812326705947328612033834632745647233487755084615260014901659060830225094577840725942887169224321837860706724098978703081282449463922714544410541799181317056526959106724136727809823728357662252898358393560676313397464378206825049556572269299086685564463973109527812527540364977396567214489680672068606185659008706320183119146227420642447063443427618915357141337254565317753634416015710787158135529183915793970023607901694603390806344862228603202466318546368228106732797693328070132614585677120466838005158518534287390283419895405211734339575285287896404076883013580251027527420261979540070197366754654395695305481015801805592784171965455541943339893376152902413351800149904124126134845542426601971355056623809512045404436497662340768222222605124828570635303264185847910374703395931121203247673661716879344060349571262431706757657764031138543266142961657250903764080660236893083897504736378759448849786584992464807746205451272031964426711591946892091481643644900379755924460773833262394314949545714188388119848727430813609206176215078316826192637624801614975589427632244639988135310671964578590091867906204410014817671360617104211103345842082821194671807451757666529550249808135263906498582403186689851281412989386467797612545967174822074145097304695044317883683026451795631921807546370621723693861233578575261991936957793161939565164334000819528204024168378953296709771938554237079612548106904297288325905106463763586438189575674792317581657621607397347587610840200242170973469012225113120289798671653880366276370284157428110824036431456043606976395118296061090460412265882126025931954365449353938062590318064714650542132627817459460452758136028440956517924827506561454893429592942353039042468170803471743130940143135994245983856138963313269615203284696451630738773310619229609823067458351674402550118642501969191886736709120873248458989355678504035143877272363113919446647231121548791018279671086107836497881843109478713700918112956012689865942390398403628428846843317457668176244620081020034688621952714089433075121987786047142230857693322214420005630450353029461187700110498723670075203936902515182139810377094992581311538559690633031549614688824260279561201717369574204409797169828858731887123122883224815356498081083358081238460159685849833280308882294792349026285481506708585990322298024044314328054200096286573148084097400576741858251728394976619949419344442401049278035224635718181193696370390115299657538811669756093002520519257685992424458414503145678372979283527393428378543936029870966188228936908916502054887018069852963222167531785300113526940656013916128188055099617153607522750887274469683745794579006675930430583101902268014671847796073735146340975815967662329456846732884218803989989147108756303458264400751023321616411315999445309732093396879728735852760244089408560870912370957000788559569136307021673183938740969476034668432828398473745055234393300849179291566787837864805033412338350781643660214484173851524144534862416705162126837814791747509359532038276695728833472803473047156643227879127829663071159988356370090059522534739817800248385087222530112797875736181302415584660385056615964823230689094049795065965378003023477673449992057431390750894445585319339982161937058258824236458970611432163364288864381329846022172177142175564081914861075442270773677009499530187818630624820885225763805864530804410806489334475375539657747623231032815267809156062388399568114490263078943441225751649656352203440070209652437836989718904662641533324971293055998231933455741849344035018834442317832704275227368918508017285454337285071554092668131510075136551404898533037209992437233050259304731127380727569140061848591454833871070452786118238342982377933264044996574705376549131348688187693076558277651729920649041241920895837490266411454773772471125272793655996824240456168740458718170191914366744207477902811479050397870445741362143102724342508569065430795608329164976622105182919464143038886404816533943606381416039997795022216931711858762703678069845954185474557752770771160263338898170112858805324794335080262498762913402675927068246687623343622877817449587837283769839552483962722695784017005028128951054848287866053565745998489367704704485423458538668085820069620443981238276906142171290426069527320247823659631703153391048592635892604428659015419017980874827711242398387458643998343770556391053879152383448522454918328760383091545751356535391435030555752807284637528994165353851012549775501691095791589569293954767355019730243938422949803645397180725076404468060350660687916146905331471932506709806037989793250023442453044762934873749128718398171820562116247131771289897443854575740081411747581694347879066053032222539801283462468950773438835152878510738411327112237719910536367263272917559246600501078771775275622878974294702341565059068226526271279882706102395285114409626155343906649562438682742507385079550224379471176570892611513524964909811452188233719386354631285942201265789218324522223195856460013063358269179120070314776801282780511001140918057529819210852239832801533057213267644371139537148766844849551812357287324069228680540272619134041176698224232619155922577421649335406615096898393598484627156735079223697306453575701778691853078786548771168291749597506979098274724866326925087023773014618459093453604015952374075689327346337179539663277682429079896598654461278594255156309299790783913464503218730013077435522419947514982732959521042818183288835750208405746071241011574616907876109726733423699144327396167863703795416040873433307587279441708729473687891448591438168390564130882357817167264492107526604532218530876610635339660945782174683582770048765819819974127266863843840597017746145135170603493422309636912203543848174955400182988907112181186450793579777214552372557959821561213595746274901039848487907534287848456414360564717196660602386081490916592470768740739398916574245082536267562229002674510345793664923007223383949433796530470004271455100347376026273377447763003419047642257115086787789966867708588515025659041533029481369148240818939213451903754620432282021652591198031874907102926299118805868160854089398119940725322979740354586395388879165413506492560795188023611757375644592193282453946992989506428953076056899239695520395408375170707934555471228697028888958535992027777825191226257615074790540960035549088210422607146627136390877112573150880264977151460806757494541410916293135927538139388035626824124313142430530845920657935283462818737317625096755502973683685211661275897227493880130141340706381814675506989547947269149315622193415764428952306341086500818426066394169500406408568829082074410893737814510380288491999697022536576458516949433195497658535743183023510244509742373084228743470681245802089841622739961011801705899819829852560890006225112832129524996215861013320798396187378946372245743985978749855650456593414546749679333754745250729042377398617654363320467910433797993904762676323663407472677926444721262941195875123944667335105331894370583021284236872691165204836984677570882579584075244810050507479030590613600897653254648431963502793937981882333076501596593227581865039056006001648301215738873823734314735734499468929194024279752708106037157793943020401478591487084164129386902349717659812071014996329475348221965915134174758924186170585303824385359297849028215103241290464390822706696812368166872947710004224930824087653578007192005320903366742925206249938307999438335166806375936855857572991548065334555881684148391644979200804189786027546607093153363324441116427798266073458478209416211138030201009667090452705246864780356509198153891302433223219953496050776161484038206764168192446323342599972179372278109475805630306624041438240642136529526141239829403375515644354850199041878272957559991693714599022595172727351041744517150181508765452844242022677954991155804002554536438696931550178674322643654092025586098535737069168958824404289785893063087735553375158385038578719559221046278369157525194059469841373713690861098079119194525165365061848657614989205561914300021878034707507061114536289718706111697830085013735637440677297892432511855555210374394844470036398955880905860909659921510053823122657266848487143299964142781150114783135762175986749250125374857405690692945403056932406655160629513434426830074434521117415245556742837282013959698751182129033349746937911828093500324954710407361807972187608138632705471082541414094566657215952800383807673087983437935873999884099220014439218205071181116465864617069738722573906410495012826137428312835114490324488508959956655179765760589154129299341304378664796601375358854936982524164550340120294097660490955157071762515706124383608772578719110497494951032655944765137494711283304048695933192928882368908584053557448017899063735668866021732048061817717075931643244566551989001568024233617119984222262793872249974641012595721601565283829603948141301078376648349360721394837707389958678095641184212256647437671265980754236221586769340102446932159899415159812281757884615166496807537499325977679588084940011396413030164608328851337824905863513868141771801613876795723633961567404787875753592259616228106708109761766355254350646892229572993502767054117608088248210374133364077913152324739756452532400064348865433619576057884469016605546981970590450708821254270018879510730796381291889504923206306519794588167592944057213739362838150451051842961007112509141627849916173972062798675799299426602433801309709189384233571904147111534357103769981056032113008363430730966993648357495997959978792943943405423763867056770050004838782227629522572573544055873988297754517364857727604194232676830950156864148474996236042653438570845291575258488186352438576081594861542347887191055257446486294769070695957035504970374190866189558123816005472359289035262128266786387066399879368300506633098258641512437617074359670414803306729327760649037959326569029554546815437378137170756540011891196426100377766980046354745311160582155115140306004292847108912458456662329211238059272604622042659013243375459100925472932307527560771758285466391720551097395475458099258621974102243656318529730518049704329074310032154872552896566559526787250208975927432532163049845799862956148550142081434385801485455402769560507270355780119954777542352141682379924282231644099757025698038007096628223974524106810502174060578510207320363388737459135420643997836245514484073925204469353658079003434774084364920851109756406313985743862750872142168680017058566048338857446567646362780613041453813096155650387499371724659609716676770210337790063053040659871085374264603310661386260210970982139154266154866303002014042674563664224904610376412561111068407962513158106249259909828750748485185473136227342813712145863112029365669581410986233376717067363779799508601514789146704430857364481425438575293771008227804375969247141078797718050172802616430168367178049481669076746683367877406670474550355376812932631073156956034303808619502046406514064797738400603891438902928155279697681217803454703890600899643498196077996993023804779022135457278778943495857241733274245865342451593689000518867886543180903282190851382356077358371714186797493807881147867185697247037135000196306574275301556200344597797530254917407886880439217641189491395646840009051892747714708666511431227103896069891647546384036236918365117966669935522522930173362067032640258961831211610249052814944330900089962817346737197546374238888209639680857327208717019142737379814092720509676552527138687998747683448601544538606255632085433497801290128461467815071187157963935275490398350740397874398496516012136767021021539450908540095952321429013267470912507279040276349293570193897525171813555109801638484068759974639222502538304644470346812105110290625253276959643670350847719895414817272331679362332795606851551625366163937735115195685168565685563481056100129555056579016330226726579289691508939804419090543462389940772461303703111137527296198805154611984360577744692206000655630220295819774347969049739760450483818923044203694966255707602343917351948527329871854204450063916685007725355456108377662064174430792759139004988889427440550889245315172279494325298111621231501139104737164168426515834946116119392641655781653338334433743320986039683269411123655071589503397275403504503439928099393145277466199972829871740509517901763610335685769725436523737112348806966166717518072964328709772529649295642148625072280999714510989482489944813150283087410618006120913875548562752276945023071177265708012173024512759415452506787258893430655491675070160757024465106879476757724080882837207720624429229836931809672382523185545283335974956214514765755199357048585373260125829847441003763512443825171632378699336132931791435364817113131975218864902400651981425680793174118050667655342149686442093493137045196298211069679475332568989342366637125863573376451919479605545738065485290179165116523236709013954613194267426937272078128831426253299573216760061515125035325046787459536643984932611596124837401969732102193742285239178922785480076718766132665538678113256185334541154165582928858436451472853909973817467275451524996792777242358795697390614009857941746377100296680336961736474141734168707029387559866895469864576336659896667697648920224781979364691393003339192657819467095471957142752727552459041002374879110982138703147355561064471157646476633930856687355378369344162312393228917118134747586377853050054317103628137149716819606006689161919332017194880498781240213668012512712337122809918808994127556008404710799572599321386845749552078402428005157700794750147620583761828731030061872382373742407898222056890029280602595899282021995696898525720453155208754874984420645520950897749654795645886007923994624313197131141951787438516417249049791022838361789619359378397136091356446220016564112685214715749423050456864173421423584517363633839701043475927318551889326396380307708998166661298590330754602467172936982608610689155568365817287981699351867326227586636637263840845714987842146458032335013315648779514093653507187282792346378432973043860677548192727463451984548577453511139720966779182948305792742089262112838364673182577326471920814473984163006794895986805821062091527182193297930068481408505162810786393857026116981573815963887582985494456499315286670522830017578287541584591856392823297248230741417865152304266515506222620300143621079289042007556612454950585722460346889686115747697461005823522569192102730447687150549696958732780966703870867065471884609214368823664307345939135419527992547805433776499732291885158346681444464921016162936933051645668220345404719424893684883230722092974562470542782403647655278541796617142115022949195880640006856185339456078945935385779117619991131656941434607983545402223687225601582269006803166874940578049425781297658015845387195852572695782460205856853314069173869204603218501021461093618395083527212005863512335022616728698674612858672213612759763235722783489130279661847173240570880834115150443925724696266455063408386626042360416298033847905369336294034589757233812482135533220191331914579511869563256266513350069258097139940147482655741303391907643830949147426747633632009985438442508580283765528981204283143544968381413357294136633232510870643736446817655470649047883821562701998549285582860286503377635039194895169389848169581415299306153385264355349192404423403622118369853181360929090542889449034609569778193135671371295102581099968701575679842057010418511085361727118182192102983312667888368702515837076981648411568155276051489387833138824104659324385001747343576879124625365461959251620202460378309238953682902904905418677430222120814404465668765967722452304870301893696513288906217305714206757206381520249807836735310211769865371135349956360845117825845614131702780298904599526976553461629007832322787795796095497801329046740095000663030526033441613845231245997028667213068484747223661536042386129942445401170771024007226348950086990608471972457531552350038152090731103031206191266570280825767942217861315465695901977682691043596459122086912871742276640198971080127823982238093838169741974574464647499432520619469913095156283864981135778632385590652136798509698459868361342869183542043765130792626711357835694903810008420628304501623564217392684581789083057377029998975887778377976991317808470387041489254389422774591558196969937454269870171735284329304461897292164528826907775636170605327207116718799558056858509027159079962492020558293214761439773394303760071327796608237629045391214724982882612700619712862584935386926529360261089910871820273674872715907390784652835290299841678900177024409968853355986783103928202568750595243739894344769651666373812016968001365302493092447489371238030774815998720096806037210324968899817316794637077587855232776996909324310454575078136421041169963811041925838039268615965403674214542675783660519712139777919459565817613562315046561947499357764871306533349462288871383755024963327065926198221372597369389950169077792905515894050365692132167103205618965813800673513080005821335908738358849774015978604725577420477994097189148789053330853054142452258282658667465903750174092114515631737119535229870587317336802882959046786365844729684330411679098603129790056404693368077667640597935969399213042409995130078411707313256604017778301968640435299547038902752333238453976117877186829006099716476758693990850316688698437922727170754881944034612038015775250523016840498437551761002651170859325616290532770483439387423753308950533977431415715223035557607197038662853494452945061705805230027852184239805060858410880614798518581203745122744368405154418606897820942252757685504882088620778444611946703507000548237446233906110694500260052326674031928615280546165140597081898315185100580799423260428719222993057819453549513518962297651337439737716153604794915622657741502485368954332967114253903932531655693434689352073016466822268842417113012145667963235713152627650508749389951717064121459268141760292460898289983175137157711353684317781138152640316369399488845316816396668018579140803265683613265452907138969891265526770623380843004028054956399123330582245751712909012290954679803594829865925566229777615407687414711432709146394856710712387003790236518321524748041891434248019244970679761814846515892716432441219643950847445035759648565323460012360093667261720803984096009422985610256878852984195931922876034037268153265965994567166207902667713361562280812955868634860167537132530840668867377018042513918208285260999233963550004235592274166290622495618941046965394357809625665759754139243692239453157109254456734623634651473570035936100047197033507683328536069245524519208080297218295102388328309760239866745172719744152847854007867481555498357357713798473890331058314034648830488532764669665884673651956275551500694889381660624804729791731579783426094286601609887996152099624678507282470830234241420937769149242060508037628772626979628387974977256334094726426740379835616819857107073065086447279720411108059785652462844776477734660566689767518917787804945145198870624838149132741722794133414566706967995817060391859813474876344264391824670219409318882091951767610142222493102158246045834820569761914736240497363503450126955810986928966455114569496970462357275069742084263730398956252345563548663276715825156713698120924729518852791355752517989032454760353418757297639721269479074173708434988562914431706109590269408158008004174292039247180179183008930663404268926824460185394770721113009104752161673347915681293396923203469509454324661471179785067912548820490328574532574966634248655649967299073064812016052495744620730088580113752732603990639682820658718161178362584267320585083210251722530975388251483405667086887197630964828512518391547025780322182055842726862249873009919370381315583591071664878917374413632679399505523759461920880714110196338452741915268363705561271260379779861628969028195271400178609273368276600148684976591350266944454921352024641252039405722852714434000278305724286101285086531312820272148105234872714699511808435488903562076691723892186724258553080832108845006905700846791573054398333246134193621217230084619758807590018918978562660704444045475715738400258167517677905270063161692691133881793750630756209907346983245523233922962808163978657397848128516825077468906810358933043793803583350432759471521029396344534120987701078972017039277452667786492311024772366581056680764299429499404927326659451598458251863822099955976151007922777645956157381370244131655531563157701736068806040915360133442007836613275570488590630557690587854011200885299049573051760439133124780327067417706868524141922400373555085333914475845366538121765850555452963034008198505672230041802585655511312008931283633442301507502365909166666044203120617750878686321192841301162946359773900764122917681975050294540781144342766739041544407446324092528135572041912006791397139543929490010109908859287847311789876710209304427734633727397708636911947865716474326731765992312676124149462296022372936556102863311044631884520401849336770366774348737879227203708922540443002314706779045726974155182095878937916859043991741621292013837885970436429055863408641702746334755061914653220819468813085134241949310282233994273459485698523983263981594072831132034069032131038548124549010298371843497953959722313037463416983634180832720179992482658354482133092188392443211253957368924616358045606426286994398505631089891399625357357705109700543253443048051284587739501390127854479233438374354253124582233799423536055253957331236969348438272495468812054759621571976099623792442250177612356119757163313542568123479454015630370415767184831717466409739919437334878418292628113620869523968849792699335742643668292610144092319997616583737563016748574373347305517848677426101564404273328373449750891987953844445665629774806712804611291249728586893370916975169035882417793854853674160937532629642313681928078096113350571840944403988274460605272758472356083991511010885967403595461234913828833189360210034806371560479432776201439998744154926487199824643379529172890729231861309012350125770245032292262534359099349171844176167807081296449694714475004094619619833749648241263431929366628736433910100519455890096649227520132699244590536785898916039908643774604658475838370282382077407200926768354226636837983896638190978394360536610931870665493620065607466341255725389168540938970555367404109695978515596973036497037952114440442576691357966588184537349162831427327959375340143541354744181881912334553587163823330966587169890182700851573167985235187077993880667233479879636723576235223273444952885301845471374523333249907272602917105617166276868591076830938946141785572602666430224039016273835169799432269956513563274819245470816550137480030550953609800446089432960564430675003546573130180344804110657100940928566289457938717856594424005268431779562022480500872257228536299883447978029758352505730878533259995235913351818231202387140181682745764806624805248496415088617907572011247644813504492469567554599746931499630320059004408677991473012539706568288336330756315686802168187479387548867193883961690949467237719098378629972218251168708692157424371388829163198334908002768589302552652465963395172383761153176088641151047413963966009766820868184449131599017066621491378529511766222266614106035683692781759064332444993900769501937637495910385529074316422884521627339020817227657124493468508949584697124837457997354127395195235062286088001627642959112741347159914504727429077792243062460013969414392746153461803853452404928527046445191525280796416874004418154385699900589875540246121296123714607760024851511909496118436636925310647300839621224100163170834119166956041081156269325689034358320967662098420478255790472155529115278890216419429189046192569119355287108572430412761677670124413139163830403054614840814954941419013078820804259139860799479991972459706959869388043280470116474638349522270487174739758901486040795428279920031043471081379826858539606562011749861590590956632641561987794179403866465385868442408515246902639392138053945961369095164956929852564927431782619281603747010931168190537321110833751598227966772948736387176968220225461519320866681882475965053765137166132943056358985876993064754545746143237801069178735749268936225951414700151031751673776432755634803270021898472427039279059164435654311022240778126448122329444806736641036477455244243595751357165432306614278804182395729885073693012393725557491737228530857092608885254388524370732849572015320874720751333938822046437085150901260011482675061186922776375847696190637541500583224292480933104750678256939932625008757370842536510613153729492454240740401869397308946224764383859598482542508547569664320959314137435704120478369391930612192143800710447387064926418895467466271210027023550929400612539764272552750419200844948969953562782254009114061795608129025895175972084329859236761178389433225075974743903931034719836172475521180201865432564890387240873264469963588086361885935138795028895816547828908340380762860128344599910294327419318056014076040957050059720130156157498923603297627564320172581571129074448611097687382079308906174333133688554198249387592364799212983543529803888858094265774584099811327948471182380549021341849784105144626068235350811364433843250291832985883502055258811297357492568165323118381145900166518861052191676503785294108490671597323016287783582021251953110389589849910501192674566605735155212449527704233766369625796314744799320784935956709458305961846991414903726726620405540529034984978460441244024289694972897850150141093543453377979065736660960199256336312324340526313018221849695194996447041775189400872162668450019097682567498575643456348704556421267723460106584080031677697383850842649547628510515746324475359619026788990315468802443779552919136978905526830674505614720642561685641156869490433549094171037574162977466591551688452596486852382606212393001439860281895531262677528324266312894730565815803367295117286201549147257342778547111728173009879831686031424505436443914706621899604168899632325186068405180123066107227953542792932989458860396775059836920937310010232321614858015023408479233559677941051732839592640769794220167929578425770930904016222925737235661789751713947114439017567938211531054053185707169056155648336965333483830405833933345976027849362744131218350265210663993752329853323015034038154544280592677818228815207415412192918094829550322384110442839202042000684466452214592416743727976712628577980349536277833976003821726460642279705560231314200201639395909203642811261443153540594504332218098686703727337866263310014875961384929532679745898714150182309760175059221098110654871433732143967686714949341534575590662489727925675750892722313803066475021869408842207107372912856297123654984390765965946888761070219603365088760587783492174683754564196923300895548532984832445967035017571986257558768370948996018699503527216416307497404242453018190975788782376812987598681427659819120248082369874020196113489940685728583473811750242967004890373896241950058528278936746147374529205960071907853659697465756983715445196186473035425447979223108653809770271676914330879282279076691448251714142400190877223189029709108853663319759992327931327268322194588316565383930835172087947289167147006016699766919400110111594608180328704189350777169362554728519106814890831644779325711845978658376143204801353086933516047408451867117145828528822361557705652755827415143700562964170062830224824587477443342071593687841055757750322672999701173002955801149538298311876856804141537463074003861476603040459882512311277052976597725769741860436044010021956267068333423370035237606733004439912043569812553688466473695355842498700821681261200513077456376022326902630713542255708718476699581523475868810399848067911326552331970279839455916911517296986341575471743026097750083811560911350121272637400300280776000483334327001504061036600324290220029007837843708482596577667739125092313100521275804554525696556742217615664747409508341183864989843352306088004881667609474943785109416127228777513942208188186740278173298382099703401010407983773091642464613061982658691909260193422260491003954419598560551312964178381867533075952867685747654179602017061094712181057679884939597776934450236725921330067054200538300990790940271245293056465943839814722576520735611578829056575228226820234656832530364897039135758152968388914716950202352384143056291122824559748231282213105794285834074428199273375260477508473175226157723682382291206569482756720947865465915402977963615067926102835101081460656781923087827653622596686848380124629249910264259465826431178843970275661460346971436000043247354907692230021588218452608614859613234908332335217305927540819289371639903321640095253418414285842719903879906398768436034632271656052470917677251867096400934880096974197009543042885985819844562148622583790284415744652274955412252667484559068676523773138418924305229452391621173872346171441388975436560489845417283325078794262100903124986543231949232212700141812219434220889924121791583110445042918832054991648447090669964716412421575434645564197904947746708367162109496947420025682537194391727853266351015417111979023415311705156927528637119607264284430677982315886487201293721001933590767645597758014794701450606287029057449473869502712148639466585841950719083675488271847771011152634265339735212864730737813086241831154329888011913629266393018466559686474980921648838518775701089351342961536318295116094963516881380216757819140886407781629776409394354260549313067699606973233178693809927823368511989434848769226481683193596279903704958587487637019977029994346552562956337029512559292450880933865736381868411449852506415532664947162944844097672616826927363237450095224561857391664564703193878261411550064703671127974198441480046698723064742416254790256919892711762566486214780707814108028700131660583282698078256165992431385335709302838941393686995722138380787479137151284813111027219911494314583775851612432935765573810685671206884010708601306730771045404552824125760026969244951279135339425350193232303864883401667155516668056529676796474950233072321496896746519420093263566553351996336770596339725352059063844218637814412008598864922104656255091689018615798001173745970582664678553611801912093662445894413031086849505322703055711508428842903824333982050446879966660080991635959086048433269857550237748780420886160766798506965216840286363258627018261161364839232613841535372930848999624591250391408945085438563320266983344762219327523697393122800596982622380560717826583604242184491402439910475519704085770290147134479178258857090919939044988246710032271668746244415549660196038784130598905691312666641387023216034923178190761182263269788097650002371132610085854921612975409658559343217608937292259152798192641648918109052459454364751293092430866522463488506918989975215752085535387120678691341483578018239867037412429755494340541811287160779182609791480944544262616833167392022715265120729810744743593216045172855647800622053875597849252933060011863968632289635141700487669916507312545510702517499625971416647040125092854914150164645988795676183430925202625733668639767820656879964055257393957023538428123720240427809164151781451473706063528654239125844682883841088550946099819390886703425359305791885475552181345294026963816743675071885995745456849101988824227373860630739343664075236994895107291584738085067447271278438313623218783743490520818341582189900357347833113529382815785423717559468365189525736879890318410167213409112611044280477089914176686489548870520037322260795331783690798256624262796642224271807097011820944034193643957063358947177599701819341272927135863481008406058730598960211368411632078386194041156565189765784277656769749065175709292339998685487036772497317142002737719177357035122299353129033077668771888264726170519904043383481155284763321025937747038561715118585560305955714259981107537287925645081573525509346970111086161532217258056618449508316846391687991424925926897051855061823702845005118728448727324210524022990738671499300731204662554819044663069161434168463154146409987766491179448913030959232600970036939115974388943093874586186146561120030065241573259069836670122344752473049774690377298582630699432152560272359922902473189902921527828734738797947984276784337606524289879948376325822954394928592411854148603088425053504240639933838178643587740540963700840784828702118750923499180732391338055461076030423333711481722381304705437579567712294073618569313167221320860306937593683637248473994691096016642834612788140430395089879249062723324515740396101083713388951258643860251645914117032180535170299513522567779407721243083604916142247655530727436997610147779497349724946743292176943139336865336887834826686276670926985215150327216720723959920058449134351095221571021544805647648037527491110979075013386298761415870346836299165754034761788672105331890927058926030768782335068454302696323909947659050082647745513474904532139076389790264811181713174900694062541799869850787737292725559694016736369584167527756281280056881949191128064054237661657429199160582249768529980426409670805769267336849809719277614097680342752054567335304563501653705435911759406549934615302668443039438394078694511594065426863352782182483212373571930744216320627565859664104431535009787950140153210228576469977739745091337987990267766924700263601219288290842764265242879411404032257726550477219893114507436714256377328333570881909629672857250142199025528006091861908355183531167968882382586312058532079300178865554654138733653707229599173138492138635011344827171299159549072694106749707404800989679876926852031773981091256474836594943590066477174786150333147887100252829614880694083757548010273236518498415589396838035987196078965976485081425214968672989760376983060390985373171848629581012575349354365063235709132368624937478461141970132810850072152963498477606383263757033924707987959251447355516056545187843063639292949188501711373715963992299031552423898850152466638627843595550392793916685545640123853545502404463989835502984217582353872099778882133621844799424045015068980127125407521283727462289988431250436375921285354669336869829997940988980249748362513394113564647020008866586889338922502407637967887778045212302633178482146209945852477740746557199889982763688619710751702414597937733571641027451625113709258262939153420719155988046066078169260505171757450852783215412286623703497250575535234217489513554572214948985640227489269423137672412306146270113321703258448260965966365495329073688863374413734552453293464413638815920230715122186611693751019210299338643422015752541057469045459462248055185799320753434881029790476336874263548594269867981747773637089237525028209263325515987163509437710143280937646878212282550043943004933520940827684965032011062994913795026558854511901077719889717767092191557726319575056950226818700819655242660064551748116458083805482870984209311451649131362251116558569530279504954510686568734334030348748335543948084869889386290710883646704276241795272919667708496778868726981373608400816873685154146932235886591890150684884551010823665060015875646874778949778503149396905645585726675943168097188152243937026458312211220423210108811668628385537815842265175255346639924389418181600674109309151696289223636726656794010965404190975462417691068665835926305379659686992851864465463717765579310086653593187453598983712056569497501391142016885724185523972706655057772763987839114948856596617488244416971772863454319225573276226616314058137328494248193041727934472161314939032809955359416061715157068696872527537770340505652105445878931291945036919469828431947431857291956754829434245953098615368787963400179834620342948974172340478374769215091252503717249174792339468377589839791417226854475465261397949321379542321069051190116750100338047944667145403605081193847347003675544909371677128798563794314364648020709856011115260770360107189860808433269409563067197747610750340839576934320615165545088841347669120570039643418181581009348101947085476924037352995814291759326004817829837984263082970144958711052181925746323335735896139314865497117117812774653240510075924930663745074079965881498570864375201890275690502906631529116105247003119577100758623860801612369192068088767677684420145414652822795555033805588458918335383533119425260545021798540266590830358609455224963319232354388491124642600047175347578048285255691013385404616014166878420392601944119259551850173354119308776389804659462539821998855018307145376147806439584226401215902625973357941389356322150174718322096964904823550121777208621515707391517408767385703151279884613983038518840687728467254970588545829114910925727752742577404434756881156896010936991124722426474947549197988684802073176295554262958624318881854053622896875588768432557435257599223753351865464665207811557990938792403670003818287478617009254594213445425249181406830045878471151332621859650704394311962050962349683833319747592737177924745508112487856290167302149539999702095798643955135054665300703719827532464266199199106259834439974050259765168488564099842413680698066929836338775162065934900341715440757342992819595208394822144413831642055073879938512275271974795462979101675480031454022923715974618135577522903056855228174253059527717871438747078349231719219169232266286855882131832497728122760597914453350151271900751461095861935673013438061883568612694005044382156877851620601242836271960187031433090854436824895518645432807347163180051428391622725550374529881555889125293986038182890352466016699756189372307977594343234896014377712486058500194340471687035434263515055444229159084902855108376514019548470330413265678973175672457139732936915722714574708502729993929237355079738222798723220463705991300238356205017017374545042151101151144762860795427675209123751220717158848034410064666817701382602369231502913138033565757027043500361428326428170124524703707858567954917935101802727797816651184951058320512501115064996514708256494211044145104678758990957627006179960555476334456150294828375444776077303930084817645770943382303099997120242723775173810132430252614291417346724045573051095183896556636344945074033369422149489885284053650933322588488173674189279898837601882664610049652112609751228143875364558580745408655548640740687800961281975260802083617921933575408514681055922355318515181241610310510267358083292566058263935921561915857652131563788455111628175416327467161553935155308132072398488738265044676235541628080929310450430037325387590906219724640343094810295448118559761461220972230433110604290163419369205434706574399616158983905727207121170291190552257010160025221012946417238000639067775408411031816572113186048832604937357795022640798446274378553730480498730461295708742047502488665568854980353964800038084853714011463125078889493732294097854979491023754338480255866463313950563875567750858795089174172440193918755776862609717421232073294441605482971610974324436017629408521370439146287819021764602441245216342745401627794930767368127131726637600653182210437953946380052358914216193716500168069602020704131302164280870578152028997514550548750723863617471955206660134592078707140999199620929714141863047073418498920332963413337332129882233667163623616128099752761247866650889208494103824756479791680725697086698343373602295648940992646449917306251722281262541150939487080167237741199650141147970678270361590513975052163836900797430024912117921693837818365704987259506474139106880320307333605152357541180501032045219219280244174507658589897249574069715085824236199929187032690718571211851090186973359270233461036172859111211988479312688225692275387773866887114823520476098828342082765121551453317233237048086103371795897536244832440075630862171902687083955180683153179917969313573560027683510782197693206855057802314335178583641589098197654329973624236680990328447140408119625517426925383914866650013323553808801181136040354226660036226939966606848450237383789205607067367782881480133943486603238185943934105487472036465268934744997001049862574726911198563589677144700709378593838629099538841600110060325291941070914530139825685230818707677807798293805237933096220331589423207811330390603647155242061880487436690140766071816346273037391527877418409216723991214364556573164858227211381057724057911385478798075407474782712130391547823882436804925283638212505121427359075767678612543589711075985341796861080215552652796408988488579326607890384264556046501203706729957097423876324734974121656393204046572351696660531676684463048179112208270296943138321768069015451230075422852844253400526724874644642141915987673562016271233917836503330734638246939328528992423455283538893213030163518155331820460105402134465263103216958171879500247739872328313677280460395549782012958337882547356985916698450361235539345628379405437596701099814374658787363560653297639582874293206563664904063495201610895421481246164772188921747016981933305547685424151044442436142977709243149175025175448598632613771109558042944130488176887661418853361501020647507099498761806514192121062757935025305285859851057427252291513253264210309166829876643294280580071953618743213010160278218990212967594298649056042313372813451760285877316812598502297646697044128572730526394315228768595022535228698323253554178568891400764233638128495097623382635785405813681540364148528355216877752867416733442427499265227563332153667464095921191955488150541681790358361615269322090157460495571502580376585573019453702239305085174925531704497705433075126741373019188934797948641290706531993394949326334902428648307800244619133154618446620671664227917364701844939222371107336339197257660691223185045522279088492062246578904648390379875695409615273230745261635054930458761451697589950594380296867090452174818219514289104745984075562925672512016405396924113315818564687296379647680355678308490559148819380387650984479533337988552252269577029061219053352611391871188747010864739639365507539772890986046952662795668621250959060341054086217427920313970463626608088407948220187481885200957498627464845775638351259075008523211775466068887706117596606096732940783993227114207800391972780048991429963980514621766756043804736157123554421883917396133177509870735913026531416289867960477693669910831529226286178296508013800687974934743151389148947718148092211611643802308214517854292499825792012959335674193079048861789439117260433084581164559273971011355231392552475865264118117566800937618065450700728014682778609645738858513385443683945076922397210925271585448636978956946191619178301209729225839182938828951274029375142547196102662226890885151084020684973604253116970549549269030731059084417095867126847832472102017858020829815402489224938991716180906336008688522294706040779664732965851107261581575748787859469885907576019797765070531359167371542295645875715545263090250275911549402425704059443741544473979028957557810203096032830975973783349363337382977650079107543245383271448023309066347361202237461802865200337154950739070373919314169130532504617035378545323225373861252992613672081775715958820776408609795450720297024925383299939839884485734873199150832263971320059603013805051287983008451273246474623709728729997241126236582947184866516678020774349742042635976919060180096913076700684982041133246634243045628971598697590645535181238346384772844969871020371761414346529779345681860940765857858095310509501145499250908408280261513525964438384519113538717228646213903401212650853247348826477448573935096377005348357334734971309112384858143086428159533915826439050228089109943700348989496849302507609998234646229999230216977186936354755494890285121808590233826245110651057151390528160393017338074108593697222479842252587444683178799651843638159756032414104451782477014782570086757825786413535717380605079446105389801284725778772312879115969316320207558710196755984419881649146084143989892054399621544900151771379360592389343703261492860087626833292156328349377529932494535750836931311457971476311349821603692677035725435570417974461150508862654938549587432584987075630004374749646961691877720888641015790305450815409035832053563530984302083083366207256482768573738950142790791359863716419339160576362196543416329380911456365790062327966288530115892773768026821355244544489430056686702303761364898858635685044227718799041405143599153028705484922135975401961956862913777670857727334193818943883594223076010785529468761950732989570856535328107596881095261872302080125492456394593604952329133486421537948408977719188526652152445273987965092899283940227606859813527180388377188166758531642979533766625824609408160788755343676792549116142063324542168561407898332183497827004940475436385165015376731763165365271480871099763981942379837308965510096426442195792163725309202669509803299229768443602801644215214621068288165266082260805546946850650605776738906107431527646934634273177352607666490014581653476292944913042203389283149043197557580707900452662013239653250697987932251984185834702234601264552957301556354225906715071172624667212513369143998904909653543482108508466831063480416968454249814222912089366309767832106187124997241511507004124039970918299186748239936827559045037447617200872091592420618106103754086308918033964899629666680923621769971426024533286933589935740120736296812766906452130405261423291619930109351518507114363040179076989261037702406321583022860841495638142946718546894351208079292642986405446038432706174825117014597800373410873745568210137461135314691920144820567680078554465890457659083079040641610057996213767122147476760911777236439018255507692390465080182614124681385356646503095134337338957188282460889775478690436155892368849919269441407821697431445405886442974572114982969765958464582936944004712327607898197306709434519301887405876658624121525271556327653813650488769315221439863985810757342004136190304836907312354164414825257933130923809463646686140699897218325661139795414203064159661474475950823128079300472270315531405077989133646788211870401070474978887812425918732801012054260134970870159273644259992278837104641936053764130280087826036597557178657326129621743853808217986362509904218703729509710795147972218551263661219509147848169477201898251283629876146366053602994401794452175250449716348060329651351375970422371276823912403962892900517072888139930364733731719395970069033988819445484981784748220070604290472251075653864917996166716023608991324077296249652492246300085225455562975412568075137026550290052612951812670335135844941807926169393807184456839792959571767029101535914819470873319293205486299354949388605265096362811875095828977058515628694291423202907288805612741635324532427645488365545146433464274479431575073648813945690837192940158379343940491824877958436615309464838608464731902240860498016024939789277812622595578808885784398499102474868269072972877834026428385683933765241515076602526835175109982605543338659116920595734036708163226630410431993242788428014200611434914716660917753159875890941975076506645765132089455258337572697148157546910603636315123180553609893103474040460169787938984610537973491550344153603884302437564945516115815371697590769901202292434855681755273547176830776586119949827487615546194448977594714844342812755031152071708107316446361576781447508266017761994654845256450353395963910944139824901194037176502250199000541510528021807053843656509820372743358348363478795563631169973330218099769360563839730014864449009976463830875779874877310915153464317521695244592671601963022898721803739083812313656634678542256548500336343422818155893679419996995364129874960055416345661949005389176978753778226744441468207711085751521770607623083732194560797556283948037290137323868248972012703864064919375086469616108791050816496875511971618810310754395265148579854104557582209673781258687977387066203152230760819910278853536259833894247469535523147246588859515242127405517437824605677706873537426738490819525469704841912642570093149120616936557368646686196109563571538304407944161888488070769117643562992702235104312860014284945451150852966158619916759281256282361552096362829173851206185635380187767476206917293794772600756819885434300267446763220645755772604894302713146594250712296396438145187485143127991235685658046536599606801749972082056081405572077235261438742405237879800957208441407979309088964768836341862720174353610444064687792379225563326579599154360529415714295625934413221141306641050074795797880735963369982729712004403590584372725501000753868158186199158581358932412297402072096385413093492895379751300400266715396431339858631315473800960092110116741385018610508138176795405194448925392239164188195248757788657484465125139774467756793797399400312485769864174015627756600875098332935807798664694193954320559947455989225024423320496893215736615839266928992794537506956624870948084226488961693071876462826117717533393776247279543563712683162075455566623883395025048291335027048601535303037524984975298113472220711397415826154640433487452707733880310332544536719349050950454963017884314144902142545455003962907635957172189509662721097372680606398130975527843699632484442664564811432079123562807336017671460649138247752040164714898691930802026134929249316522999351181292891857419051576302262125334819454318650846553230269827238119817145645133102146180010336580294410246268707799539008293515206675002954643864271526662986132547202543007250189440677982350279185146520363698634990208752071749539479953444980662734677862252058648047764565562173589121936078481894678784031998071047411055636362823166778405368608696244489926010006554957522849261808859826273187631212192036554109972917592990197889187146006743050454411790043211421836142934962996045738029727800193855720264915492376381093844772924289061379595045957494342651322719652390926551494641305563324475006129148994311746707824029777068231179610716310261981334958321315234102910803828964992429052375701333437293991220864234370384471900999693581706287373211698402168606039352452187770451969162963836699382483045180994872454242738939514050185789324575948527474844182884426110159192399902402584469235913458725346973457887825158584291103640810575904477145245898023127722761893874020546225468823400650486137961781599439970489135063277579312645074725969029371929870622483883802321042393643771616116151536893581534928179307114957410944974506834361745162015497394213999697466906107420201002922353454423932201478084755323121824550048341185076592296880230341924730846582965750419185013069058326522608601486094328286937349324804813143306807175267544236850411977351851756829874822386420981258204116602722691462146208407310259259164532495212135523494490780441261635968329139438575247290664699517452081611665592360627226317394123481252148759582480516830623708774046670866864325355196734089786403011695076746143634562483723125638790818050455020249123210630065741335730119835405493287224874016506439338638662999212572720674109206121538197600760102400885939707485743996390582892707424671706872671007372889953312766053699940204892600574402366036053369558259228875088015633361266693136163146699129599247135401003407530347560024114812710502558322679596914443058981591623198742131382053405714644535799377807676146399585785165774650714944270431134418543109953273191754652568538404860337795860905247267066541082626292750208823236086268280518584288475910086216793381839070264547694143647945546402735945006965064763662180679738267424153725046289172207989969650057501655349392311931704426258048884442741312978672027992568815114478641137257679687397702729762826356195310738298401924610481025054060621118307910226521410602960253586796256646032932294578137471168287727655875899588609333687505300940468112423300392268735107505237436740207193764004155083018917613853611204330489457461453087041590152078818619599201168494286177496779720564477244318844494423767751102686566619181366433797041203920639608376543439281807889658808505505294658200987248673343791783257859047255081325145085873633041811344114847141708882821548255592160737088211613189046662292363749518479179443491350015476136532758333777008891815410502311088219554822759580988387571960941135187568812748815018246100602541510576107326514828521540758519064087238572170993208981470829228828131002151074408586834940206516174291287661740408178731124499786692927858805258857000049241120324971142249877451671408558156346852380418275684904054310750945567001058995696101545417629196170921950270667923472416672405502594855889500133287523798532801614893405280966401742481411698594043755384845210918538402852357428534871226528464574069328745113356488497483069535402955076733627510303516728509167833692599521339331593066931248368902738963190270813818610707657094844075770296119835791604117687738112804811249582775683794578969692451339922514900028137769297102321296880002407182346204873205774401140979964110379064191947693865894765545673308069383089021048922841327754566074789563197593803681278110121322522576879293769035023498305719902943402980515203828215241003708941808131370885387974529340018845090503171450561518896809152394520832035144650060843910139561678559502617470505153402584093434647157208445909614759383500014846897061491201318667719093955335463297109043114094320378906941550547341560016053492247751650074609954766604669030327758341978248266568030236062292719259212246681562363184380277673081152147448340239234560765267472699749269469243682118294102435794968899621825521660026539718627382165651262086660862981256887693925135297555805927648617225678578589765180263593079260873775838383445164754526152436923200337528518375999522070236214269954909207721946149032023425594900835245914300121796851004059056475118456923398581549616611512001511748989040523017580684440603686476084576626983752754925418709131746094061467277237694642562776018302386833399899820188249136958196142090779989285491733127341334115125525321823096840904421183909577923692239625907218362207053279289732271973309556857517361166710018354184340731573464628604761498225337466764310371165620800585661348990660128644671066037701347947857244234088212280038446368099456463967963342144251104131667493265574201144852316334141808480906117485426320637587624328377761605989956828601755919287098131188146501802998332506440183209224845122657435189654661520785567136139609302044313042045275283737124326152843406896648117425464997801491173906109102335705274436512420295965890117585096930793449607442496997014895633492694765921253358797078436971719362355353434659579611793864257250244498999074361200775034900154392476891020485554073919803214776107287446378513644572338933076782135898081943258464932069412308886146189178556794203125240893609534019493171944262452637300257488667173731782442232499074381841724818203901589359548833380015634414982536410702886487633917862283224862705000766123657053410127024206219148480909591802492166472769845194449931920337230463871300627865244912299352717213477822357001990237470085240375425074800765573891453179048533518677533622360432246860411751338677585812756723398407640292466426828377730149206103193087707719135958758027229542622757728859365457121652537493765140939489190648940236418877033488158672278752638911139339596057561804952315131452954375101411469961895984513491002418240228278401373610953045087035043583190799512887320419256737365362497225389840281767452927122121057590348856915299695663521109594284502232066379636261450657953690529751950539233186556449713340982378591372466844577349088354453968523112574612873537733736621569789447125326045421402720638908185880073138574109231697430724079630428393813342842549659264494194485102369013846770645661269433016735924955835345662890165856412937076583994778348485448851230484655471179656438273902923067884795594360278243306289494975544534682154938472108244250386498511971869982163504383900669155902152444907786225359328327465713631869413390757171948184707989820925266701409986404574993016884555293702450111980597456565155712345549947124157515636500592469526503991986237623541461620076654460758571850457163819071484120736061419239489052705459412418767501377598075760907950949097567835635251076415106270997396240017586748498229456292467392731579175866978575274024339183613396669944719210394871285212121176333667369341575058978340118610544541695153553985855203989089212429223812200164789867916934769899939763487187662662987817524486538134387309529273504791336945203928715810896580731517025066781639577359792542025411058984595977720693878620516375268721632041326400872121315906285652647520333912913954313897205440304459190266322924161363562684456985850306852495077966617877922375645425374842457339763415353365197850037009342714471491227277480999662291373101589915625547627621856852497175076923523889698344532238461509043441396972136089375375423131298481080810739186207367821285351854123092763290373904253369183836180919151777655713108014954507948389886106467988976438215470524081065152138520447489731306279190528915091538570243242102677825831734259260011574135420526800636756168104809494065905233875293744455526200316866358266152441399474625095744204288737662666732813326561891520670594870220197811715371298635687555434886618827206831635612605631156123965744324706725574985694402069009158332738880605720295752846345436604456583342782590451103721090224544810402857585416510454702632547771486188583439673896461486229426514651620009287387664618828803801372133932961192312185578470085867865559575379267977700952004935658723287598107954505013065605229116151791264805672393257432886501770770719348112339554693837586982152931721315805984870752035541651742673432286101516749061961128888618974475433994622753519771630897884895064160557054900932597491182668995073043686208250565216861613037515366572328413302296113711015250274891125384885665926383995297552457468325488039916416567758092726935052261491925536387384992302860991677404840630874063919461183680987154348510733288475888121776435739376914261475696100242738602765520315275860401551160305666937265424774566372256504235390143021202539355782287635682379995179656574032816052182112005622824354403652925657694277598484571733184942116497480395502157788739316411625348390650617476815496287576260964193577208171941432168285794380337136990751697896584961310145594307934053107033571077929782063297649196421811313011584880894202632390691114529323817975191796188301330389630571718893965098061852907291009923924114797996198621080448530945397548329065359905892758648390414220708917949807171939647399025706492132328015742211835050324008138061939552386311583828254465096770996686211862306250038795412263671014406866455848634648319317409825523802643975500904905642302091611676955873643004242156919121083551708725904801530474159628023527143149594588994326759024608722770570718579822150949839339789310235552473069406622356189167049464487178639274135550340930851778635864166684272149764108132690033953078178882167087316067862101717052594298615945339113616120140610939307265693987417651978496748820825391223807835612102726889855407436024145665209500953457676736675431982654871215561996962328631190444218824710094260896198429103437463661576527855175515313538583209255621177448850793695795465536879057539217518868905031234761466949773224500764433046440969913808177060762362899983550094966433712600185475343643497197922958059629495398974218228483407410226910556841462493319781750106008703369803922730365683253110677538148222454047341837028378917556625434080717326935196320308513304692662593774130231765048813054612841557975988794975472788353364047105827328945538371484189547572913016083693954949797204393609496352544658199087497926591163431783958972704970330260136013655379198342374342793226970043079274895675746624558371663624057735475725806504148237610054593193605043083119072464997086313546430718508847335296751919288689369298851704488419965443121764925183894109578547967747811564805463600347993018706047664974380559214246683139203028445776400889676277654787283250597925936821953561268218183005186482132727286104230399374910190488013556536324884051084234836992038487277499781103537743327966416662467101618302627971384187006043784262568454341687975560318453177349077459863484450080655091944145596886164015665714044029621932873779186767032763590384283530288620711260949379943699779723937402067650150824486236481182740133234453730200299153835346778519239000527354539220904540512034238071098076149890111344304043957662924118145763912800842801139627195995957969522448378018250153101690704354355249067001367369929257178592369950456196390255078200745754626434807094452503701762938854035181356061842160116559660415325041383198239053198390718364580482067940127803025351206101837017254598084587912133146045884837853735311893464018718507143577671470210583781710313429324325603576526580368996945118184051032829101512251694233271586020898389767665511917150095047749277863083645614459526984170108201306255189939508631280092444367620238803256073770589151141049934247969397827194462684507751205959891739687331872157199056797480974995721395596681228524500684138348077472053484623314780912957531991663986160301055060683283834713255788680213765638522668742337826529404923970326563529923506590367190364556112515342438216305526288547571052102844460216575196106784286303412175766616741270920471566479735351691653880980043191008087529714397025303304404551377065559834316781353533123600634773258151551300065151102004374669437506209868893232858029043625758084156504674951322174628701310028077144210602781832877606183477009184320948637265108842462839172459837526582147397649108371602564448599919055795220148759155275286458610509569510439509114662265772864909246245863141947580116175378099174602764164882055449115270506458705796862759043736574657163866276465671559053753806588442505820814611208259091349099928230155367639140781523961497446034562206195130130135171063029948460863828880497666800943840912451981949518546759193658512633151309507562206216407633492667696151336647992901285919689615305308981130473136301272121898554914012443991926389166114032391051440060249271513993541971556264708113236458951675087309358668815720187338371935257737444521487938246530162473128803313911361884040761093466452442848913562687368489359114117547223105493101386018509783238127289223472847869411967140592107484885780835397972391475375926846631717632871042017741535834896424907965016776912155263986221928211193397913576320193294429831649121798601579505805962199231435167049574151697018915185214274604657089851018896805746728717713097044741971409324213912715943575420634385079023634884960275175212508368383561065268883073932466177185867604563069062015008814950711929749266828256736066068227514840273975909794900100728017456565874603453137283711798545485056209171530108749424836495171644400149937486755588477858292785796208835064698434186028760022153397985072687421020939251250003172302627887673961756403871482080222655342713093446471091382576074151870338926504583443995348602691033549879157265687250054296698091221790338569475031316719975623270680889680433050590726231114789904922316542765742765215768129846658680777158972509432101108247220566230334749500816944876221789242734798963777652063264158774121410358365678654297301857910387235015553948509434535871690013387236483543108625047286654155431515628230913226665358673143917475013539176793990588765585770853471124324357841273598836178270450826656804489098301813633672394715111839732229374848597692646425771254575971100299594146765374903217045321093503654863653186360934348470075729564743057041697394925008140536774993158131353985332194151207309267926443964663086390937585983999136200794122849142218688676940443335206393877641773201871428745039495818581284265419088606122924048972559271173281508259186471060116346688065501965933138629644443348223831741266502044843097128859350645137522679059851884281114762020124286192541381339828803623850572084603963390756584278772275283430990949172817692265894608732190044531554739727937295284485533046339362552256398929119892673894461799174445416389358627423524097008826407723293030056002490249578019749637284543974267824206900934114892013228552897499047534447232437993624026367139445177263089759863029628135529404487926552525357059164228597774818845796170599188912919037255305748865409297783961037530077604738589028502166778277525012285660061242065276744855068410246223784568723309098840447935880240875549653627968442885254650538045736958323314446448063392567399643057495855490185988867572042821757535743045649014042269424066912687440317297916646418086299201295699763445299121871058102416457516723878969438393384943766964331118093832465702834601987463470394830355095774565064469174012470571321645152265495919773979028778603827629350089116650776974151970668505836529222524270942906926526555153883841903874515086687751960050746729877458685897805067966754162706786497391298346542792623101904265651682389729883435621023291021952994964492330578668948482069471334116255880267239482290952085559533747777618212624551386677758595717447587948474604809167761351158543684230692619951040789530764453864643879965696446648906696281595964019661281975547080105414184408394474000269541779074921619162599326449416457197180921104070221826127041440640407925898762357882939240423160338358266234605519916305105187817504177630532489976149929659123376420854571905333069240808377206134125474713056933506250782431064991930974279487856838328012487822558600556569036511200645966295443272681411206652768520726415493076410837497714585292791878087499332028774061312543265395300568742116332569998054285241785630603858092148449256962162515354611257731360400067890553398284466768462728117197987880829323507090879561452575508046325527582164527033859634892840668824405418430215863347641938098148053850546391601987743109048815556033532550224507831950807289681998427129236896780722793060827880143511976745075472772635939228493652005894769772001026908805770626202948306514263949240004465720124673831496460353341432091282374971551184083701877007198460841736757091703462528120489864769941385864129278280667920675292964601663578441920370737700814451172758314417377582051893954900955836984773988737257681543773818114504436379144554585218248604205758940972564574329226069675989577083667942443056575520373995365677265990811503232785394673047540114679902799948959037696837164390364147001028641624600431441119815383291844996604852513817727373242591692275600464687485991547846904367546607036091794588701165116266434747209163676860550456478723197783067410266618123796073261144705330881054269394251178676721117124469194451648977554540148469165283309919089617624346079838948131766532622542936368669003443398836574256008320850195942561396636009563092648201397736518084743309963966087915781654386417465199517647829741474113845455662579314412567074498779299703329542684391964540178066128804159418185589155622472773950931301306603719737616870945831073221887738847933498628551963102157682816401347694155488616679363260889535930601487265819037998402706911159890621239724844191666389295901714150856140012381077478939107177906231195765883943934503990032530111610253731164798083295516740558766496887807615651899855720346854885245198920980130165273810391823481550056563190381533257081293723857566122908690280109148575112087471521790693626094379883352720522782193224496939092399175516134199352110440077008409388217345986989020649830682586438000052495045211127421121082811969732425245030645256407435483510071622833835246943611202444302794436928904663407779828604520451080860193401457638684040974390115229320536481052280611208810849725586156006612453039204258944746220544691940698687667153966486685925334012059498730751409265568253714810893193735374645727174076323125774635176614916978845733563266746622027569607394676295213923908723912714544599252670166615926584715478147095329468321928983752291701547494192262407049688677447411552085297831141993987146500904030224844797617063336500350208759137256101517315304337839255841469099007039879033226246703461630564761445373846243142006569535915668254102868945589909997612120522996160474684384243842450351438853672278730221660411483519975028892404531310484350898265507896955399745978234340480328435695988736053577035712063985756503522377999098105356094489610308052541082344809174793054284104819812142322440584374771767972839659512542103697592011146330113565573419784422100189945626077399359754934687816363782830829113055450173390404966470095642196099345364711523219297182232482155944706970858219044779410324730608734404722969491563519086503750784194396820152940820808336456655167591183365707318079958104701893056515803539135989434414840495109618040918848224086024658591985158102400238905942958154168419351297142529294375793896505651233340858106477633786528092569212976505421789281711771778851416672609399756026781497440836319252107615594365897736717308332368294390702821191444090783990046879193176159392486458053875617470179426590578971960576828268690059167886395121266673166149116053124331895042662449742803116418919919460721711932823205928340749011516426123312182634754965739151563989608745343397739046303384365103737009064045866331404880921173417260376056471927936833980556156686026089595036056211698422051306942290214207643185344507828012276882084580113249166224146067813649859716907527770240621427744366187081323542704072172620833483471558395372323720057010805064407185260510703473440205557771373690295063410992110076942485515969821259391424694697961195124828895480778185599961600616854417891939539573881048052694449539911877312407044170120190091490340756948731030274468708152323044712078884655138537444578172064022195472333748730756814791996752729789154844193246425372575419026388737222057607415623085600823603707892307268727866511929438575508619268677209427353250977804801485477041103700458336881972655931217713565480269855829344137192812175521790908362933696236158680684962578404087446319249970466021979594743182797252250996562000529680573403867015418430528789657497802255661354818261218588420420266756659249218247498554216101912176033631383520924872623717683802438388452756342757364506131819392638182216036983150912020134387744053066897852593286275538210553636860175073085254015983594218025657688639072190315471009837649446090460388952445150271498807547972603376842620425338674578698733146090603040562685349087965857695225284694288476958913758144407649082519357792887937073299333636414610448025399252509568712898593854708147475506769737825980058821183005843682766893842020406552167864491881477010720445362240490750967498771196512835056676160492182580618208008311221857496092276825029661639323579688230937573340679967162551200661597454549314658356955736284564195483369460957933159600440462881263623700580165899447448301015163679893810618953207592845102205214541078360663512455469945805738707083282154355728049076150740903645319180058228131015684983563589753627463130029735549400363207305518781273132407995330609494999938267964537646291496417584090764132988581499562432700458539981184863895354161623818468223854531639541316319424036033903752663345474658859636058300835429215609896019531583312267987236527496178106893537244917350149105828759768696218127671766207947379749065019438934143352511548750137531477820284123695484020058108590698928774300735408107681664042963324568157301324457069135845547736248094117165890945589828448601311285871353285469892301255372281479504990987876032042220901418141949691755493799753825691414094747545503988547388126482641729963433413976964076594443331547756598499746282377116315878202852376637914939910581542053381955050014842463028808435269088241488875711831633079748923731491991876408154580849153213616948593810836666061885000118744299943600109084381761707631035169762409031288153910833935705087806945766441610743396271462381234756036088354563685375635210800342904999568862400642610305285481283460843582135118358488720424070187313878686570703950169017656409413479526020285024804315025584075525581429231242011256475263236668272879624917850815429552522500533615659941929677180219886351142686966870047559356761357728804975423836608166173345756802831248335454824311603915478813818330694674264920326410024630837502811644043932018560185220524789750510617701688721829373534490425885443241802990313397378311902956043988473032112071306188496731097527916130554706971765945462014649685448635371821809611188270828198483597464535513831811822286767014017102638874567695669533723966571431877453613670633071688040776561750850569198949959310393799939430188830116611055251539800673966851905071967861503839198526488637136592939689209751049783146191267778127452141024532598657988481772598092139064172052639909108761279701102811228131394844405122174480213138433796003178526477932678380893856094824917505207928342860740250015360473427637719322123224912555979406106224463482861985365734518715401967010999478478881490922756515955120735842990424461656916932132383649420380566655534726100332282016217562182404676150763769948880956283543204706577009018926773003060421714008888710377310267144393392554156648153955621671338706352952293161733047384226693410785756616587230639527503300299167158408759853417490981370301577027359110686347839793671862851255299410752863310645757763373616707535596134564921431347176301065685030800300057414586427809578076078881531357757173513854720042952836428919745211109652751254677951489303779422439186914929448544007617890730330125938903583085618955413538127163365770590948790429338914036673248559846567200026645119909067292899885615042040147029278354230722013451141381567692798075286214582043861706991448017235282070669843354384423523250725886924512777799759271848434388138790638860909916081147167104327426634639167905863392763359802460772104924136200362774686668801398728451445028270916085053157759053485116295813502660208669710922825195249340290656696524253986895389994870008366398770280634987338839026002859339398591328326580855993527156784161838005655341033649400454744735179304260213324980223681221910574950828942328714572595819862347030144515084725339986581359107769561386881149809088016998228595467798388520263151746725215570244727516193056054277761430683932594395137260294911590316676972172051553304239189237590167452342481263194871985935029616160666520655772597900805989630554730607874973347651888187998910379174374263241361377632972308851447207089566682804556580106682186243041426413351517869576940371266800124232954094134970303662662012813684784177252066868398165345996679427935780097561393985627168141606654793226529738734744222923387518713689857675989175112920314477256709808914417947437051860215614878751160216842535492327948243346914575990544651052194602935413550633139954633428025284288492434189240512678978548767566019770085314554554180936411483723773641392890534593890868861455310833826111643170375810350054158504747679442548275658314429443755899987245198469961205408698524882628530386585016464572270367424839658197547340607865775532640043842448034588485842500044939352917238739854444412601710225325323779620013877773624273208132049826381481281326465294062007422364480010556161297714199314378454372715312464024269003558373687158740645542763283656646379355193643911398315713870614392249941960240419301682434282108553695029712241910271813856307909723645085526982116832719066740866654524367970703238143367095887040468826135339618804213931628082483393975530122843543744206306745718578708211144746437783851046572386780116433645357305786552487824801958029502066861284652615165077370236552722370551258648220863283296886485023903835079100529608098102063183981139481303649766228891789813515673889419799700260453274755824932601386573316941278007745348128567985050386165503148699204065432808861648831923358275519078917814077116148259414886578705009804945903918663944304348339243761386715707519205342588111131996283424332349282907665511124723456373665957452730260646738769166945980327291358625969688073415990032632239979924364179443321273594906304965265474378376657806262946839180478214425955019708122672770038254802805820121737265460631953926879224424190149014843334057616016561899988238405498427357117914448101146105371150898319865959947579205508472104413747944204218664974170619261253245478798743582879067000881256829342752046083216898986072847275572947266632616490419985295584069695010265795740250137998131581350045440029465275217287799797066119730833379279750616385749434510237606780565151036389594690683770539459009908952229050003074184677218628640879512254980680012301074325617048487931169587675073011109960721188427328018803462186173393202207211359891035166054580863712506658986787232595589411374605125430438544009206539238546975227162518511704343460843381072890894463256188200090660870595403933513852899365919189460990209123940311800667277727704925473896075329628179745378468715677051091580448061380163857298860805124760964373309093081473878822292823509472804714676683123294603436196619913817442452956045022363680542236522214602866012035964331424275780589667813273609840312960963745124710659952455254854887487928972315131811979890725869312045522235684481731259601836583015334294992243473483361402432313313404515389519767506206218476987718283157632138336199395386381618171054461684832213467928662802216489981964097228193815285593089807495636971187400616181944165094043532125448433718946616243786895532125553447654745756852680575221255981984165529778288721736939607477094753344728132418164496425025475830683325878153575974974077029987606090649372327225818442080435001463223838798658739895727478245842697202143762531735742337943517198136631114828348331459809045138003698119771027517652865850642618063532478040520108781084239142228884185131227146287691563732764815931780874448243150395062873747571490983299915022035348429803953137695972222090058953800005537371245698494045802785999826504669350296932373474240076113665306256273151511069350837455701034994773889909856127968968252222191284139885595888838998072640634711863538988731106876117968058283859591920642708281504145830098820083142832094384406485085656348944929176564469396421154601469643936495089887425390353818185632658189340113402264292059477905522393022827869667241891861625867627073861954757155652221096459408492769182073168624379558253648630739612974645550898754568051781631488562697044054524740905915950435622878216990183400514502622299966902091974393923291105480392675896234803859224652734943958079588099373874154890600177546237897707693177227861495644538875030590693156190890688234977927214271860505484338692879422679143682432942740021628031147009232382182988561271401487720366883551867088888139414187254139802205198707357776597202896618297277894325914696089657195535929914692632606939994936613359408957632900294240354072533697346065515572251836927788369055099005208294678050372501344541268680799705512992097556658195192841227776517128025804844874412557328715072367605038647339442804003741190629047803806566883019152648430258345564766682103480215918193541188885413612085363991473046836767316115609556689536373970652142589005259041597617342601799370360497757107888480136131431653291510634633997125521729143167253242650736144227316021215040656758101198191605896797846059829341557700502942093693058254840507917985740558202128056557544678140269373407872015100313604582208838887938306321658900143465441077238630693392069128992392309513752273406724251088485403915615082297756902228352478077961742864602182720836337468958009740120465298960163795884370241471338043093346397455009414483484919953895606521051433847200620237984535375898986639483854867696663444811071126633527305544309537466685847990172172084531426098391347883681673180526052165107875440973206538199529004850540872138170778131765753719166334591291395969187414147482401047695043642186578106494600349316644764723549874359055797630516102768637046099585103743151432507033910990378783663903238371352946826859593982515604641729203714426258419904827830869670104235535744259630987499998436197758642298562887688760633498442981103019350318365710901055340116839481085314719242518193955334373726567730566549697078258495252375915691027177469766202522965628481893209201725513812072354020055404802987117513677732648921949734131421351176598104132131388909562083908716337778032815896188244034016578191900228719115018105584719430462510859865629918755064252372458282031774430214794830469235259700543256538445555892060208002377846775564612234471578769329508572957383851896950555685967229967509396442413632437926187454686689928084741876973208924741605450896130482927952096153459818546969243201859472578472728624647121732972802617646329900642047579048670132646887968574211203244568452925886590338326999391839143992877054979720434683013153459904362724501534633813374176431548471319962414844444246141717033313034369165400366315896370553165692711877370124986874130311740526523342502122778081300187420955820403170609521380713310386834129496748701370602406265813558642146254293320680985555318137126838530539681069444510702125534851258040382921393221003934538896726495727052611954057552232122707633998317619900490432379225327499766734334330647030348145085648589709063359620065692455190367325004365761290820969717080719601897556776642702109482464881729205581845837470184245818728939391141323767641901854904117843111206444295507052021835077538153668301343411332456327045538088708844753595832588160167042352946231844548117225658557448050902669993378939304747893741618879404667069777589234271052200605405180454118839156813090700724226732663857389036525224375946274849518379525945986199346157287104826171059390900384152481955968228401374876838170906077718992339039903858436117881093289553732393136058905042276363599857280675710085425291892831299869376573148544879129842852089940541387756866613010377107149380797456714243423735229578316170441062608201522584601373914508628006550729134870430999661217237711952650299121831658276307827193681474950521545202906206995953328195961055784240153104032164037474842429025493915894733572756947480923533622446884968366729027789390407422684896734480220988920540448347876328641165692158844796674431151341175043303979236505736141566394727643860778227658177333113310090212062542771207033215916059051442113007815069115771618250910795237304364691725420360662320293939082457130617496691429907577083607651513644737376136036465197103529594484895555729470223687284832826196273370075518248114320207882711858293842492520213141719645056985452977437862440310195955998023927040704482066725072038205808204501236677362882129286409684733360947091023500759674761833619671234367766117185846622115684742741465353445652931191567824285300006358053395397109105729990574650702485904924410780048141472708093196889493753034819948844842627329700068465032829625817803913846342071420604705288268646383626267565774173682200102346877615199173297850920407439238498540420090987677384696073249374011160048183486356370627345842881772609316546466967800638552862042718279093757998087858549294356840724946723831708694633027917607980278279574710618931996247394104311400605891104980605795780455871146310917703841317997466744267090944175874525066679161802207313392936671540794184369092615594164184156860636990769736447948199132025645897194312044476964615299179863072426449051669313950932168951269084554039178010021249084715657015710154482812591160854605497498925258088450395450920933445359456512541276436854585838010025054744612979100720784591940796240197099078870494904693331382001975626841985168831184491626381006360107851078852025117538337306141696271494519448796380196110597507191338131329205587698493433290471325522511715737429141133507382834661846692869425577892751078990562625835389774779748270928687534419942189953496280619567358295415933268120756924294411566433180123052387279177493127209852114735387770446254731513711351304071394269330215225688197085744459793188015320829247984515310580463893062693656077329873813478495853749388282535748006770450218765750176654584833377655404928124676162337771498257109017960976456300439117105104768964599306476375017854943938042329977239461106183085893618918690473635273548355951570155980991041223456585989652647530674433058264199633636730273947816509815324431568167654557116693111136793013415135615143456287009469974193233865211112863630766403493374256779267497653127004404366287946227137895873831184513564392441069150879492525466929266732737066491287532539313855694646414350985506618621447425611599724448463222048540301240500942557674500135819147473676365463217201659311990091726172781090652404825776231594840076567798925828628712946784402622766561595899071284728952553667879262515872895267803388793036446789166875969414098597416480808816573620963480522188281738791346320217505817184779007423603688597815931959934140755549716905858795949755173181419584472712479565530816250980092779574755115086840728949091639586609107933244667008329347116873999714163146945279342850380791360276412681144829225096664303983857669532514071173785355904328821606589462870591908180399339909656044992727768503072394444514630496679460489925477316666651987104241425794017891169507313869245892339917218664712711368559934755003853812243550820743616207911442490340760882008348342800500641764973732804301693458255533758035508939635926801662489074764189493760945638445791971939191505331221377961744026738004624520513429971354248243533346290982566039361121411610480990573866621873570413348242246201053413025905798463437426974007792835540987072346812524938159349199437430809791258511802518158205300817892933959084599884509980745320096938321232320775184842685332116168462082923811877426510410043858359926557777504366207518899255805089081890419256244877065464068025599933946335184187143923244303851197840271222111394826950489574322682471178160693247588456977560127709871534577206221365424239260626807492485205277440377790702525185101024156328303239729863406522018889080410507355416994807725050859501032601399590727495687636971533443709735508955893842033026806810779273687466873065513878026618311321982237003074700089767968661467535398621842924409069987553565183678054187805518192307309448020342267348396887411481746387032508293842909030258639099833967659873017285780457371745001953196432593749466826071514467551404082897968981690652129639101315908730648033821295077024562224539900594586563046228945311106280983189614114518380212168540137503104960505999095529339322944507010550669112131708676304501426607953160822822144852464533474760541725701629941673109824157484650032265718500459855599574671769138740284099369373055376834539147921576020260596564380609743535228774286717319221678114719569519715185535281045214955407553111043987571808289822234323331469713422088786411080539843078522173103143941947627254165707385910799730415438554509644399804772688053873701824462760464741860603247780013455278394596919886523303597995647020333491755394152995036675961890201145724875165931940024375792243450048087172864604962089380529730485053795515830814028792134859435594283317289565042754733042150135404934728316178396079456172950270246388224945872757772843730601947189168084444881934397986345672181084407470042570860216036336964477170493262830028400312194308082079277885961414208961101834133709913188433116263031173628402748271421561517465058469283690440744587850220864322782200734442116098746196929899213824443356618929143942229900398237569626646434197757155531502731924640288507719875228833184637171725363989101982386573497920151036219296853517509945110488732148477228290714002144173827201939962002879594394339356225821373940543301664419585476265130679263045401931833330140755415545587558652231263001757228925467889375251006410651193638956385887454605263646213938436283354018550571027612392945126895800714467612242876341162415542015652055743496222779914157197710096674667688331459992912667058810223978254198380835470323613266441457460581605456176572172709804935897619479500497846566012125874294700119341391747173969529899060075813264470383478044815045536285436568294225678697941939832320844312303318894858341040757921137173852064897043521913158766421105057705592826539443516125335260208105544784244899989729452048049924911474557833791556737005644424839369559650786982539455967592321570522149717915871194658584345522595061186112454401869761192132469650128310436232682289308064660840231340903879877498788070021438589285165132361084351015248204182544568589261114620068858797107936454812711741496384535401973408913531057006267841086684997838958823578426956211355320735257940982892700171408738632058332574656136368533055670776266546379854601382410306336082692228903904214266162169460904280826195123421485215568462097614170033543534289298216371184376025537816105680700209217293241982017847679670713618839053861906883081331603494627102910199359118764104601115609962851448751204086364791025794944907535621884383624670868925060735715724258444430400481329605801401518618883463190574845269529147425732658281756030256616958933288987987228209646254661332891617448973805489217365992554665959598292304907725683072523903684316063343172794468529101171885429744953424368584360560451262588739380833797745942952216435402198366280250098762505058386253760752142100251139853573061686437106222536734191584555425186633605329441696634723573494616848933933594264417158766692983927256207033442335369505408593824235315240607259650792968412868460904781999996806270456565343075169258308856527722216458791922926108265149582277460104606866429576666477291288879886781142659227648350664054140910724455341918264064999724479489323132732057410763558282057630417819870734788024089865411410046172545525903639668298397860565654225283266731391291222871970558674504571879055095142535059906828576872928700237864092311812325019048337369409835296619693621090376958068941949679164628198737979640303728314072256508461277845106793297706020446563783675892728862965411503464498145364978485375830974383317054126200216719496619208259082858989227809427907805676706485224428609593071126298100939751858456334527678659574320743055348753222397115910368497298646085394538991172984730947506992771582289022728509314990822553379835124566151395937813139441243347376925780868542318841360881290344213578846286965168982970172182055382236625505508197298370845876580395494492730845708352631084683860161947118741914476934476010946309808202731232906856872083222417717911853573013827520755196179623420742265012434032004579271127121156089659554439954905491796649590137977947096817331747742031673098845837373614886929377251520879807148378923341453834427459351469210661390004573450805204314108907633729376921843200510951855673951615913386001756569712340267595997113255171211459593599295149415046350680922775547479995135096766928978615334323364281175882112759067109431968744420394488290258496007662908764422943606059943968333305692490565006144331406530273431525258200181551708150184011178719653015183162099491373431298991219232940039730720044827868102782623062655807251696561343888125811395865927623698158230111559921298617787347300548048227619526960997786722839185380206929106116333916516048431159583531709073928607342920069192820016844198920431766093495404555140311597998257832280037934523909060703220671497104642451491033832534346710635495840459437925702485865924247160881415073851496453144454903819006081065706250344886603433604892678551532155566258179024752997235037909302266939039915518499133934726950896262473593544298693587896402858822503711102833915009095696992527909359588541687001299258419210043798363613116030810858298624200901911970062581188761564340451537771556718598907980544993105601870748187168895864800862566334089353278008543833410379889254749322862531125877798621589722967758985342167255060131856742308052173461012569626590012569736922807432108273595367768644581186919105917118141719526690664470627940880829028485906147761992172517348932749976673267285365519040116035205978887008689728504335591149247628970838309416033327870654405460186221175169544223210679078980068412249587587117252508191806284330404472293662588124576884083465259842393849025702990140413225980478500125365436914835386007047989236978185603493873448577525122113938256467295224304699967460502054033698546637960385314511376812770189266501980890327691583671677849781486096204075686071273919486791707463482629621300507617367985045807461957433654012067809468153314655497259728405121210663698644967620923677084891948263776256985855694791519348478375356669327763388877425072490906044927480803853874412185223473904755560656713814559645046968641633310898530033905399893763569098108780605246358307076468780601187531474838541377476938498953088723855541179181417846645420763973628923752411535158374507697692609500366202361697994864839694527706747232222593044508013867506833014770768864446172243620547437869802896126216480360923164296501993389711249601113518359132207032428651182151688388307657635363208244156777687154048040826731619095871734894940958688157067628385225299694901567725765839246725653358789251158067253972147167812363870941861749961157514446568062531600831852918902462935845830622992867773093719504578333838226888733686730117065574741923299741566146568316239618754658933624825524529681862418368619439792410928830421014150163290187161319427501626067293605886342531910289003379444153489228438399263863941641290567800316436875819641479535608883908089882541076720365667546855129331458243598227462828938051794170109043302440765023861161332859963181827132693016619084698199208509608843390441403460188125384138881623051051161311660580019576553794265642976323723384133007654198388174549865384351450568189444778292753213136819390008078327429588382769974300399358383997886939526064173177842046760394788930784547953175497537273197248467422568772336804562099992848114738991855789002067607459853227754226445069433991382382680932939112917782187644758686874564402946683369776061004744802664458330273533798195344109062546083402957546141088815371454160811797839778332631188627145853547512133771073571358840232237033529874589227520816623083906951679330532682954173156594852940197299378131866337805403853855251292190695666482710460870175339733192622460490608633605039441569966142361029636685794092553223090667605688466574122437914985972940146416001164673825309895639693781975096319961719497514465150210565237915059005763652636205170852457474765185461022538755796898948381509204984450934717839537992689196917879141152476974897161060392927248269828062542027575576250717133360596523698420882083771398673659528376471751978577118401422262906432023328802764980617133609870788707828518627823442089815528864130667502688472533211139699111389172159168841295387758879259093638719136624756689985605149109413583649738032529881119541151470057792918905521431697694954815140995205032685411487026720346170353368245092058780801789502364978774725197858195655907055862300946819250756378735587437481616465230911577110851022368863271433375084467328678913056562279166602585636010314216258680295378459165076940134658173664868640357092104287448677980789494192531186703034044191251909594584974964680920212303665826956877236260133411447729145434566891416061048753655143210123192209470509324447172333372720565261343069593842939095461154914054067782306847438988535577034215846741889862938393396930375917821898086886988770357252415310463282600291042329573598154520165306806081330974224035229414826863468197383620855612500221761593141339534740506167650477592749486069379425891803002034302182095233199188535523697351341354415722549350862044726052553809091110884925468050465332648921339841015388161823058636859934956107770470962584708390313495024680179946684301139105552290492751257496327285397106104370877426345382941754965953130532338418920131670837578039734310830575581616807576059296803476926249249236892991540203848400083474156915465038529528467266919280476834580895787945850034750833175662325665649371354093464177287583621169725459585951153003782522160703818568136037506307912428626317184465642859717780139100044147922983955471472911951524585469788681103526778707573789640858247524496435334156771652639358383463135523283932790847735421363032550628706267729266560781419208707558569998237478884975836331497180992575520772951444702374722641659641965875805801843496688497423670260157005799963789622458593493526923380619494304032777020246780555812636612039065687690734053376839118163838068783750991406434688998512288848914134800035705490406163697949979891054333333322847836700093562551209088647656729287980230857082020927185618857030516433030945516645686308111317595065146965480471976618611884339582828331909933973842850929244958510547476731871400431560810897101532634348673956954709420467433550210258451122056133776806220930242545327244755253018616353384194814930045423840074901035734854229309465499580326803382011809170513869845063040091671123799298749041927420300450092270960321759624112899341282969654486776345692131421402307527495085787030533504567480713901893774299786674880863303144256568740756229212681246433017297127104418785119402649835368464513474777457194876550488384425730553370799688514642055285341535325171880125293225939822208243752329792192828412054243215270820613764745897987708379748367422224483885672021343388340452895446897049175454802781658274870220432345664078749470220582067374746015756509792560400212577214822007293626028418685889346590444907271238104175766711576006154209820144909073392268459434050377394113621069930602546867864805085094001547945539153991598113169311350165378331696677743288350390495115764763093690197668332273540058159337420616842405423362318821323768680044734361325204093825970282456052266829761544741375061245255670614360228380524279971988097005000387314620680018708160902380914740056382168593746329061207065616320848566423812170914788317521455332097361690188831687205760005819952519990014065887975921583861880989059577803006690112259686726120764374875010269893533996404203170522435249781826272073706489604689905764045742278626645898401194363012995847844804412244187516835516389413098423495085393528997201978014128053475500791871193738156380411914743399928764657720028549389673458626197260852288928638174685996792681637610110584252089828243953481533477404200900551687448278839718893720032561908755976847867367445402181187591407392662518574289677549428241308605365646383691849635528552783898658682597908601639883144502081568075174304287510331562446746660793234350180709419140123939001720018297861167030357860558169301052430287198770284257449414323405975978087584657867044829161932015105764047095221032409884144091291372131412199277797632248265594132987663993905573348731580164145379441326786440894522069626539594560019321830520388330515735426751488282611430214424396411417432218846202869715204018978401682782372287687800592598686062648980166587994620801072292666590449655066209899127478268011508147046840040111684738237658204166120987637626485920119917053900462261002970080057248614408812111904312469199233898649847433448372128055489790749756052283964421641621569133944061006818350565989322244261918722739633342963795532745098630155164037720542377611340468586727204340008732946365037593667827052646858671921638776138471530485137420162884990905867477972019217861286508989096837008331899232079717341369999464260495618909353315077782952982000650414409500331322846641042545106804582433622882824935115962237135937440841275467411895859161737754740400390754364805855189389212872982264181422728784540889371698143456508403493085498134696612728402829787373872773991565067305110376926846228100110963114709184543257819086604183065591663312162899427172120773314845996229513747955221518408059037036797555711096517268058218423115861674051358234854954556106467363809300094905583646540874990779895667493347444179394950930391832582056352387272647720306625865838758026502626054466034993178738638975374877937024426071891609306348397980468820381128102810510029963350001075065092293452181699347870036630609204712031896858869720043770180544708153685496405731656840902633276667072023611456998600209466704695701247530880084792276884950557138266634203943221317510012366476994049290703270262831518164773611747048834843565484280482762821232578053740954315265401559960935135564131514055465650196425072020948295721156553545275964967790623947024734967290099356561546728997114408161478122211228581194224243642717836267798049108173734752046332908724857018912456486676564149641562830552954608136962197439468743202721418837141343586332474955293535068983313817192064633697504946942546762553549730658990635741742145149440378425829396849281358041553222448855429803568544355699929071960974342346560234950336576111883016805460352568917144580238959938144693188739332748221295518589663464171377649687584960275781654064063121585765740783759968538252691575078443195248799907016130375571485161467029617478076549705606249850866561890838827479366358444943115543659816478663160424630711431888926965627615136452187280942527650750823123213487479421043919039060544390607300880689397866644598239406331410246089691741649289580810745030981289459436783746922807915353621038330917397577539892664225715185519166580889697881971854093748043473851918037955424225764111391393593567209859633828477436619897538641214256537199512153647662781880110502910001959399439750374341811270949679503061058871676916291627178844582455964780169039545893279779188932506461409991819169139910319692954435114254760523527681397772085983001826053680230204224671052066402630669775887860331168678495003866008840180397597942993522419345380525994588767421642054628799972108382761297227489001141087930952475080403419287600928459145737159882392601093045886117692085437672021077027749900317053247732561650663061525938619125732370188010966873371246606296608305591863324381357515257628457204504380507615641351935624662799668684896171275304861422025250546289872800778735520139196462776569028327278736106359113524846210230665986214109843484610741564259467889462824879594847459380663850678378493611401365245449646932045219848141530530236706787757336625926764452911514220177153146373978373678158457674763941661488303573177008194373637602860343258181675298594177816889059457214608177270056489796324574804111056238007330983730024013391197867090409482783475379281557731003131377471254755880553496016882769520072849099472739652323038098718254844010104186938118489123657266514561985366041001835512059198759259025391265761504096180300755344740930593754900951010827395876853987359995560026007711276638175289519372863276013119942972850809814191288968758533649169326057357707718560897544157845878201537695054481153783175993805940966781911984786042562359146655638569201788957172114884310515868594058026671554175705681092549944291646513141436099238209000705621311678413698004172914359257982448472655578493390913623336353728734297536997449975448630149224164488527907697273728606293318599963208157159631757605489252705640183795682836863967960521072657475229162517319064116769564517769050174176385641876240700427021453544322224932510831476732349636797939870748271961077524464818599790412172113718089662825043490496258208257120811320977645011069027985686524728007061848526221537442194201172265273783842337070199861026721017701284589422882104376154889941909751116943381692791173640662650385899007004272656721185745019898084090884716242344183332636200220492165995547071720863864239793939961930997452304681756280637639282498717087456207006049572761931463080377632250752325223887513018101631444102201180407829651872695412427043895857170702340248309181532217527812799301406467787589617525151476347148242460476177175562230514444198640570381730656277842672236867055855739524786848165552894555930485139924365791993205030778882101410845804722327575111511060941306088905835082979909432510030659010177218529462283715041460226916846204320935094603433869007040108043030138648822038354507273703954379485155228464255558738252173662870599971361684563254152494175554061578251183156166473600958152210389970832931869830126903038087029565438449226650339022413285014920523028373896858462870561757791623713693532884315139568301722054031556656823968062601992105408900876335801549873517683092345685091125147025346301988648129241589960196169016827771314516410277156910325769360693704488398003669469097988513083150022260122282060586788846266986675078866280007475348531807129539680131928516270027682331429133080461953765826079529461959001192835607468978803199004682353833040396314511978614323032945236021418512038430005756765279502232322794937627047296908899274426081769014920242014421257364815118314819792374222236647686758252110825407006481505227086260685596019972467585610934825544973802826264924709911839664854712691303874935499954538680445051580887766468089581691156576076275392848494000337571190931371115801213022726955489583158238159068575297772495985983786446166162548415311729128263806640899947946495825862370641388752702050725397455333861854268502843393469079998709912691181643559476485364560011778160461703304355135215610787487123742358922045026693060515452466912592568154871936511891859759922334565434935476807607673022149186525388913028125085379248985932824490938833680147778839984289454888242636159511807239946435513208875152602589293484141034472704379819650211941523601061026007927114671107171164966814381311304888411511435449750305031250533796209718339460730907892380076824616065066706701115769301985405563441202502634891903825553627747521171712402324362551729120291925432801631652563665237694785605274672805661056396301373403864930208590170448089881271980441791868605956994529949631051624033158505082825573733237241943358479997420008957240151069009476699600666768759018052635543043745743616308059203888916503874903329122732089713010158427371203082273091830944820542918429255650291374502405038701618248055201225363932715558127842645271034168997795056154975082668715397649319568803439157762279086467055286045657660092238897521279214654632826559862039175429665120877614201663839068918939045780415299242750425038396793562121228571075373108501544223616500268561275063686444102148266364156863059650028052335093893781569113582365065194375599909168308131765206683669336206019013803509349470555801996876941588993814738077760554236272853669992496171822320677435730817591151705821795710580021630136572260364156764944424292636841509222353850993633959680154735199848361618290129128606663802899747939073213748540676921755137473484810103357987187264031523353029567901537300577015633323922727074031492432833043914174048879696898448500069068518948050219334900293695975011342727873158938057795606799624891298202058798612913386482509739152415250126575154807424604495933002507071089068196957615188129023448778229470188566796833205631996832661664246500325463871602646400937737226012341505335554151238119217231266133798865271189496763180305399098421204273928401385832664629187352628864489831076167631556790940362823185323285468372428778191375076888731943280438145355704448179581069617281136785218905703129414939200323549138178349971349548503694055028528070716204289365252742252971986680523273140863973798589066033931460198342493354097966996895456832349519088955692733855269570879370128807468487271658115773111231066288213944596827510099806003918131651618435309026835757531301561344069476749249992773502269960789026438444058396114810050844259519560930208917736075497833051805556790155120172472511053219648376462184223652470104144081188347446884130700272101807034047175785517254590798078081951002598872475492182334128338644558050697089927922378334938835793479028079740846645420590852242410688341970260058296645170156482883865774497084645703871331739635892413567212434583611001637901624475867825270497484994699887113227113185816338196203372378911733609027873009481663534218820556644121822803004170964054689784608662462984950109770092468688323521338365442896766602383925969413254159781058166619813004074094007575202707142415996797210852254808761374131968473383632052075570257580324105488567610676396323290263817291685359391591435988217068770709790359761196055537823737922315069988761105666437838672762132667632442826698894019651490725892007810062947236288323322361079767203689580626031758925910791145480383590465499585849105870717060347754254747929699278573113562892219554323233498645525676813608309227793949683468803261446261515376101586849451054050331699592473141968042984265909920963407090324925170639394322526688056848892642898346069726744909718014618794860104036997556467977600570603240693022984120239396782252158815169728179782322125777379877791700872452246392165413440631935927025828174305286083224619651534775031943871402246823492824414701230613131646564879121375556936495578453468196213073576317213562121435494896835965250648431382760458349143612575583395800116477937753402471262161179197467465587937062971043799823131730044115380973889722448775066461404078126681504454108655569863720629313673785239484643496469260680276962519651541038241804269841137074130679913091913412965523761041059458057194166955436968674947743741905362961601075484692557870973986572702100787144507834820612794720800052898766574745722302009166950450713259467075807473853801566481299255459680303733814780265394569671155426796022277089773319026836867690332675729177674500298142841679489924780387614759395786106757507555271925540451974123680375272331828707020185536957180230413942689174712920106499551340035256778089461059803091842619040984860812211641315816002672543074833901344486762181241183399643090225368187783065737495165884134564893892380258383460721695139025358790333705692948433015630493403450881297296116849481134403618601001820898898557090386531968438058527888276126647170562149242793250994498330276426166077106661671109593624131979705165716705910598215947047893773666903519624662547990661070621612573733915160212192187290823812434542015028511157760289464630136331516398843641899698906450654783714747137760960268894531323719978879608508458525358680314368758362004620930456479352187423720388134340283329264398498278433717166564838889130967597012798945001347682970769469640529406666857788556215784504149377280850047161308108905443318724224989724999908420274347846324703181936165828992550504821846680626618693791025023462147322542992672514858064142742541197919303965684523698819386468963777704586036352344960327947672611700209768219297799005397278330028530768720710282632178791374469690015889555197341135530484244898800371700849039978127313071210234382052371217595139011952887917743590903486161729437410145973125373656330311698125466696897776510007502758738043039609372196238295757639037209373839750095980533068621277216151452808194955750887977908691401914342507390858259645287329903963797668787594313957513773054208823606700140925360142060677590839322473663220860136779040091774190759507144392463881292796801880066907923198870965969325649119421626289321774237938219992072190472189523459081135340920772495043631063733892797467681422326654333088864538709923837595791334075470634659727371323467071082471422156783620378896425190054489296186270996605136435776267849867503173653881361628221068972618915571977678465490018377904180863760725654194771023193546789894711249646501425401093824133206313447738185912536619260063723975803171737719958270866740242034581024852241659589629616652334207584560986119555126533914069626575541773790727900887604018119483646039379257202790252997345663117863906650814950395031400338160092580961877115662201176698858776497132610080594380578743527623744071951379010413199553652635043623975821584770347658409108762234211356192997233822131114791372281181685325391420003078606311038287010017573490987134635181435756851828017163734054553046017939252926099974886273123281331695185018843465668056708360155015470082849455064038946779969247434399796577531383581619110168841842284267764887213032772936489368482886435659618341883828602276130246903765675598798025385677384763841961873265251541306430067042423481561552637786045018944150951514496147465649854111002739376270948210254005615946927823059018689282875093461109978482139942275886041232857695223463727927302887579348532361613505313863853910853610633867617575124719160796328692839526286780027408460838810145574158508931671500651421721271030758992866447746810802915627799192812655288476084666555448931265762326853471644875132440204327530789645262583553208700007559770335573849483253715436251555389256818470809543638738142929729125737417171736081218983769008597565218204865222773807895049360907969051295809401399805638065794316624480983411705016317824219922059767938438492453345454051296798445587066036512780163132007865127538275947207418491719006181207352211332990105362295715259020835791959555091307268971681180345569803628830699555536318368241533841023852826804803775580507778652670746379461067669212824616849472901911896543638067791346779739629433820362799480503417330927408456698187759320485916052656373733388985742929927089447412740438059381786642453000138673494492943914069985144036254686122811442604525173987598972299923794507840787498448128052820696130452710547556162230948809574404370493751192818886397258607533294321214018620548594955416542489693876399429622004612979924572841891782931785918140252135115150553363118197485677695608389488489043739696688789916733500972024037622258574839247565191247545335139494620416496404802971481163177697403753690295779938826049277254223653816035376459851873063412930831906115160335156684300398750299905072141182732397169489177715118685189897318285563668588919195234629354564244581812380629901731051881667660389161167975329334165216167580717767126516552447620451011876195271477059426608143159909560398187616585669077015942793985496319035169438703415596339949170182540300625460067290606292566497748955737047816424799610129479684919595453471625337002678096417768239255667734733766126365815802521125817244300852145494640136181290642842324288310898654420239599234325397818471955098669719358586854615212673791745193428118463265617769967912020242770723913460103129642930732917321460151270936573899360578997028967131099724356882635323814135274341774113496684232926272402658089284360218513970469292698021479311956546790123929725442584675007060599079409453472528109875027490585311626601937994048043082350709083126146086179840503055101735017574744858578187981623927831117962801498683360945396429411889914273696191895539468635786992816746404233050913197663116169793531040826672069085516543853925893817419629152209715454508803615965169422913841711260427073952090524948570519520116773144273678187287592134764363876274289513937085609450565840742163194788303782782059030098015023407280048058060320367003187415412157109409170285796602969913674013445588389068631804459829479921407300793506210443831401066305283436946590017559964316289981026113003860223071532089998861062243240430920766890937486505684471078770475776144343555989557765074528222781771995933084655408756470317021227786432756804278375885426104643517614772265420362603716586676706288701696522368173805918186836782083715335256740363619437339668967438016879030139944719407960831716378666915583776734074503979104616466725133916180846909962103419854173519829760795385883477374372763271797745306979861461744547257396989633209171025605335915334190876846403816128766421033641295593908472963541503244113336235219850700457081953089152753415677050110928430871926590395810422526102658359082461951133482632433917579750254435828547191471082809904014046768608061532265277873309660261130942235226406595369060116723684589011866863164971810063785182434539173822729999462900180717110863285761327672570014021567975317609019104859642509750309193597981245110185388507090661365192332399187951426771355542242477576473841367105939314314682351544745586695796325308372326224301211708854823997499363234526017132379840057284539649953691930246730340339713610314558355652357630783516757831479207741452669304607985129945723800839612277847425045423652705624806691813959302238051494459642604114647280369440114145741409518510188370978457429872743591587599284519857598651694359643412241288461265108103948141632790284088650881493463050957839560796877381462867136477483406193632972620907201821943757037918896658230788891258875584455985985524745872013019397300544600556705841431783676575719717854287696384014526989475372739485287438486477211689664342134703339924596875727729408602927907594686803802798085929407640445969856001623754192043945418890946741375974194629840837044547592114954101618961558206148677071161672931028639045962495945507244834218487141906961007418382564717452517823668585893798628442185189109225789724902575175603243711660855568742908714944497795978310391333628679453428979571570424782141949577057327882431677651967203507479413792945205077807241654409582705477938735996692348633621201825850901215455013604673499484212253304857647482570191131042368303917508546422851995662017513098332837550438103856625678304213792353134394208737831156525837278057855920053884871605731812754419619602568584810817025534649951693072088529898923281867061956051583240161187074698348074707643140682883335306328527673762265470654203931227933404808935490054755358548177768622465977501097012371212941959547020722288612043253143089191338388145501067657797108824048310290723299221970281649372316644086016406296443622953362193283416072012507005840015669024911707060653010934415968638837754818499447289458975278036267392559107414737404854414078687293012639506723564577689045049426257724764421933495336818729773236633647274899046939009378174011940969102615784512698605327005539387298913676167419263508070647419976268953404572032896465387367904204742725160048458878264280533219826828901599612026666808107304984129625831343339090862841351189876910638205601462888455499433735124541792644398174865555233187655478691021123409130363996029127041315470328122277132521027137491787253015643418067484146130324326272910366503130415922139162947701190090078629633862228944717033719256898902244550775457533438790599910977154014796519003593190895018620484198085907083725544912903891400928848921031856947498942717641217505814738984135002211257199761718426381964487568011169725663026330853381783603756790462118179948439300663147348390550457444254419439442050810946462314330118066741167079675977320680909643376721760660163288978297300016619191153356121831657152456269139728759628549332702402518299480298538184502145556595625522910890320386202152951273398112418155329811943471999159642241743138112914538241295334023322121722096415455591817287441502183262785797694342022031093733451609272759710984387878290610732242389381814764362695658116080291659305205762244358780377283211036196505691070586866089404416172125836404962644631856936322622489913513019724341082711306432339030465964007924184536672410666452994076812901961205608997486861485690485037553766557832286276396875804970765971768514779335213379204159756903977173772512976191065515010066281588152077779446673328099741660687915076286402142504604909995387648164541713316958530062758136377054335999615430386057379870821014330944174693293121371132121486702885103695682600660213885374414374120249777061103221728065563974938327807184620514844711656973380670370231851609946533221442530465807243290511754154705883198681344478808862139822735127210435493675476080239705336191393492480509215300103616983523222361042960154471752143287163756225589697914986487947297870922854263476201840588469573177170561030903032593679430839057267088122429277990233820676579723533379552289328652202342535216688554085827961207333582407892809978063395713285786219162819263652474985463128192382470735272369246200489324137970793437035936800751792864280026100093280488093324895768632368494398921111380534000740396301355263659383033159012245735608141831463396624258510355025606703516235217629798040899796532643866806094840967343167964259400567391175753580272884320122473784827856010930605866268391562771615418790548121962794997684417142947221840158422952691204438018855906835466010318022488204049629234417033950476334118277938572963143878695084668946529663421321426389255250830457310872369136322775662707341936599966130813582507688419109272072621952521574684843874634229665774146094323990958028085002091305043135369269852891332224078367921893969063139838590319405390952380856255897095343957153815830722552702573783229451855942832731137125642769072907465952996329971250490094354876195560959737959912746411822079139644687359428641702255777300532070510261338722083204364170102439078189741818107739861007551546969698766222880158637911466365464052035781276079797834347586170167962850086963008309077081250117826596523916801128085246349705649606564591918888219634432785169503033563420634589331791057247317370661695076620261358670164901092295139912661315615839768360919373155511142049934948952692497841162115539673379431192396203798331369529095162273982732971567090498303417789384676562691919849096609939341064306641462085128681044316705687961663791704198696003410573535313947182707806365902357518363978305807464271505780330607686785668065025366453569806916992277580185710991314195209564003729844107285345275899861237120293090524557109420643696770193536271436991240565102819388619298929092269254296295583493723934934845542249714102627850766541240697595987436167347794764776803599842000609656717020606779658119322054383321308751367322195105116521456468339832424372999921956877076795629689486450559566485926544285007521839561173129595305293413560699261361700956487361717992822882981412966877265541064991377170621422646878324375059920404344954549830841900783040704992896617377352522720603956822655969813727934239637081522326880810360817328249469611730655394001519360357257639162352514331140882159369598742847885641532543360016014609771263673337581139402627882886432694133248181675420626790248899835864267885927500348478118170582656263450121463381532302062058893727856737740688239946689881434960569946080858651795188079443553654596450442162601763196542687802971621234445748841164207419569351572684864091183502132264979117846510369524181176108919946399814434170791007626090394805981825213873025489497542128467840468899823550824349224675180764818627920091805149835920604807230589074306202239098541723439659523211064660042758022947611458237666494655121208679379735250804105528036602020809719728218143906886405966228974088477079268004795027452790606730488012605425266655263472373215701503544911394288369663430980381356841147228323569242389822686175377721029617164330804762294823314532307621678629863066432030872840130905643030240458315786250525096546376512684306922326835612801160643794519995329147773937538747892998328370656901850720451039948799759442169310366813254396842875901229132372959275076283326029262339753237377105070926059528054000996635013193675761084422464675268098783929811089149527204500472517474131708570091061146828151641816144441299820090000197321618065666984947245122093942392248939918346227488643754234341768110247219924882791594155751771566652274499145193334352144313589511840675539079741279855719317126196083446935231229057455103212839777038952452335836121440372722825748593273475138341844196152309644571675733248083503048367358545078666912130449352800546588313092063425680990778110261798201868409520519296405427958882396259316325242951756763919160670278123577756094682756864536350977542421933138986033034551167096321645443531829625983855018331006875272125955907965358515572752813257285027578352785087177177865751074585056161689701748319902758764214069710654956863302396537182871475090485141724026175949300594861494394094739762408981715085811054683131000492326986286703090808543529711469807008139237972828284743459476873465231743028735349712831149560073174022153997257694727527952896118397046834397197081760440549873432665648415945374207181415401692878557909739885579056453423398663757273388570539468660593533388714921461287437677330826443201920163954632444990791954929273652177606770914062214760562386985641907344766912784536081516873074623343174342856281816513290258272548368745798245127571893070279516748575762397375541185664420645850270752344617506875989603981471218419786655573037901432986133422733771279996339203494730091470340470604715184815607971283657179670908814718336238030386691343759514661516720826194063786673670251051461275809514112703070082764418038165573580504214611995291084569833929538572581394632584015902919451824441926696597886576102034040870247228273416674993162084847959489089292799394209196557632098804023875728157928756989809429600908146980804942356207663078927957753872846112246341052498928216093669156977531107220903961335517717085841688476507783293540663152043182039411557067158110115659163748598408180814417401609773748767597046550358095351857287314628025829765992393598424276884656547037135638155680597983869404368131782512707270431362843309450060940033357623387126498098416694022751475497743826188711528049936509272799621043810744529372175378500814096680095126938367234468111163604630392237361702287799278177211381171589530109324492463953337361583513512879123104856392142694544426029308238046879946334702282910719464327543954714246712681028435442492559518193380123687083012824943649949115679354851173644767505654878268847123085027484548008598376478939535453107814184436420097761062112913168570276069577828016432625137164994269077424278865939902274549451099332305861801079823832073849955048841797189630107796799449808219001019962944371299816973980248762653560103563733692502353356171273367943117220340599201323846040561436490334305593811545655310510131660239115383207231691929545436079238294969208337630654595629142803486193811193861031136332025690604955893598477144117997448330371364014407819514476160480945497104129110932205849626937126875929929203525332199441807430811768847663240694512349910140350312687425411209460435719136380124289563717064488622975930209986248138549388023781684135640183224300627070206570169857741433977830024392593506535225437554386393783945200165298576514876344169500031759577079098647089560949693114589518902156954927904066625808805074944847422513968156823057381307888053726838387638668227595323777141084234357863704168485457768006947940518335986352692288393955596505184782328499780780148608270611671487402751777300615981465183465253548466771330746384387577726756962777688733180310353557135969512337648640724399614112948190906468175957972360150101607543002602624092939677509348723073757968155841897900071107707907740473439098050212897029002036672606605208976456212672563800193640158597045871877349201992416924195774193975304283702117677157289108182625405216328073958550640125576657114359815427779959346125386210238183970415486225266022688526784436169452056093401792008967812599447140245173215185838920051720705361786336099319327560043929741893183253712993088298656226149065136579873521123819802409255185964426716816766664425214114575954509031620975291629058299625593269533335972964499535611252907637956728611832018248474677827050932761299834650714463729486831356899357129568228435486059271192970152993328217596000697697967154154057063981410289335892441819840915985959391603899864469073643793447358209559828592072333156255209908967336417071716079459952033652788778689685257323871677524386830089988084420784734662610222421945696764392810989685274824680075639814075766113124891805592956298423087717101899226686184342748147196497193760600330905158289095381861803555637265234532127141559818303377248308604625010739499565734472672255764775760448808556671623863318382851683425962758862033380575005826190247592952730710615789943846561494721701006814334007594088878544219858714564454657837523431246965934533649613547892467969642855158577061136729881805927583895735863254286012861143218871653827334949975208501580975015781029581317569400352451547042916124054826816049339865871069085745690123719329677896513176551693084310996374525085711529842772766141019831453804539167645700653530411271947597406375913050364528829599537744892731169178372863739571038328291103104326592820463009752801709808324392424745858742000696993102075154077774311093006917725415839196578071841858198298843032487574003865977673186577978977037946443564445159434553033135921050952796578233546343155467468854881710134520456995913185403698069092941095279557213537920524903062532138932173986761785399107128829311747952459113820414918806353565856830764680899545375686492376564997940595705461791990151722417361699363552525021168441442977803771828071734923521453446218617221761997833058379896142302540063616124172205399784343741496939955534096400667169975876812368788402167321585468857157486953754104437366691723570318575134602472236061960212397242305831395739606897204163872087097969616885976185274123469285997777637337595684673284667521793525348297714895130627109291251700872355535497416600708930901285548621488959175122886596959160079020481459499875781787646004556878940933715195476346752438954687282219635588718169062804029370117343483025150343597076306099696433665951687146801626603375197822863668663816896579802169444287202501201819191141338334093121540596650390089559175405535090090488635657031935283822301165594179309015952279200812698535650418775761760047772422568710001499298483020665431374271714205054616143568055266758186876264364025052712805614394635492456045771277872378865198852526591089150333931238749696973354649340199047357877469725051442526377326989036925095323151181478347217743429869709290372232019062623547372546209060675060120406057770656393768236471625296294709393275259688300383619150569538913563178107462490647024117859031870221844879005541058353626286002605977661729299146911709988639141630394731501755628724186645117317717106832750583802454795063399337785703067337944776685032739310841353489554819919335915333988384632880820028796906003857410618365422657560452659579326015927041174840883359932868923463101045752799758041428175478514013559111536497038514488178290695999576879345810756329126706933270006871377218013685261597899737714688958064617132022124814227947104688451939660869357135213058603311622975253119858275715610102921491423259896648910726057493379358537740212669303898765711191986499432630740452323766153939749650654356597725879191472419742855149481454829209098962035253259738960204400267478846213926356807200899576603454270671242422644077108672961916064007470522327017037059823106452942960543260978606921948664061121677608707960269523057066988450679164992610261125212531287750459919759728054236299453381295309909950832198241793721949174891581229274134681121615601265783153375616651907956408523313943164859918012376763306750087386435442777731596602144369625279290579775241479350238020540310660042480190457639217074917598909407837276532026922055503595982429720801041794565116232760875651627469166734535725815219218668535700018426419763435942192551909186225742704537627781573058845880090691605906992062025677071851057366833999923424677945640630264469963779764189560505001608436746887154493128625114702005652073267749959027187269965071389320649609418488685049753378051607074412354995794837588458526707424117350094121579925040574492781877182575261987445009167298317951421869616720464823077002188768119262753020436985015274188023304238393054896421056946890584650036128142156306141407006716216587701221234137297388671831101574743241622143417163199288387072390978834718630827385516620802218233995687869416645442865515333238348264956286006761654912570891769522734520817229275665367081106824751629692896198904577570867416320765465430329502762423815275262440212413581133629691622212283490985270662410405710560973117160094842628573227683237820395609301754946414848598807795615168381962226401919838996045359586467618036816116746981734925896449123693165436807469862856820893974046916974102780722013972955420916327849255526135626701047115720271812665740395729657544465920191389616792169589465950253455210392907671958476708859319411481941717835883404310714989014702887796324276173354806957548991573834481657076144334361454328929480224695754721418868533380445564468273406024430089776346433541125771193931192497644286108151033255839024880337627711208440825180656461838627781670836210808778829497537050843830252513443364251620909982014703126878767360317616386583842286745300484551470125163179417594051130855671577258291812488214810390033214990729277002062710209330224165148310481130487189189772958747160432025284267064902664207702763336728917581539533245373009449592511472438143416697023442355314811214488590819040246858856177710321875311623447567408728197128250550165026717170944835908770004529930517569103423783771121449304281609635635883247385719588167573903683315660567267289255621052006260670263136100968158180658765783175705411879987186224912181629486187677597038701782697274239370611981930344700588776100909556187727346901541436113530607773427881514841447367677265413917038432785235186289106685362921914727411602266943649855806870280456295006951468157643543624418434642134243595911661828623752588853058703505046383339007875020005128265841015150437913821501389242267476421011843536581221561764004505499343693522657932107534854971390480767735195238855219798878194798303153006153754519816287957789766787681074509327040374794098678689911680981681119365362566065104889418788960418189445335606827355089080637898783908137210442426800839106878009289786479821294465859788819653139126826880985103584020030268545364755192889305459949928978198768841039085222683933758533238560297108491927526602917275945849625036031654433353545312451412405544813490151828427999819828980862258905058454697140747581305076109283647427353548920994791826325130299619484798395068525835336635527342528945187520089802822251673972380119415576537939471306356679483848569986304958962725983592191774965101787624786820364462749154584001495859861193914012756791401281876184387286404132046139676320511329955617068736733473381096326715799005888675054364055303691133075088192884541550189620976135139160062802906423620258252533283871122739462996764866733074977123016926569532691470687750455211728784591501889337199578835541666159887307674554675399327148268866790637382732398536433566750898691591979769828430695439726700289554638638599319416480000112218878581441874925900811589265836736625648941461249708075437711747468194069989315332430272297741293385554566760251064965331493859533857144092141424974708717568977363215863420812188110050600008984624014858256581641280130937465525229578484100522926954052089490743386643241690307362008807689596417818313484433233663411878035357313275222999421493882683896050151409044640742863469133835123615601751693873259018966883956370881771925844972729558995294384900059985061102798106766494269495220282809782448012810148872168825601457612782050319774527426703983548032774912452863385824396662421129274724393465805850740148319134729989137836147881349586089323746407878776167406281112483686371748401051623416695418198442936048887910561068247547056833628041737326642991987228735115053162400285054438322215353464580940394192492204843311194578370778214760319160800236549552262654683328279039542377240219107885923110945031156513472162025819306586477149912796798179859204097348267386757884635286542542513660456528540951602362921613045609904730714420034842333613849041100883871992313912287209867164037438276726441342030964700807117151704782768553156151324223265148331204214952291931913423970086619063490222531122801430829699479686938919422092674275060135717647000861015655859916957433184054938994357968054140311762107650262350116831006903849688713134191723351302133132594797590863005514612706760257539296617101504026542783271111230277352301167558277359699715175012295163756705796732848084246895527996133295836407635462888879226690215541675460554962053324328247407048095656796378845721856212917394166373758696598893515900117551524702761266887375029136781431187063557455974936826896942970516001056457516108926960176022841284637210003935562561793038083761936400844443407839998272642025990291188392090889896306354970299685638120600638484620798397501830378426013786712983626894838847995593799881683861575342391029366706376550082533808184539924205913592848289323175023440774152356404770141924334139203575918294239712114765139340880462436638307107904162266633571817389823363121056476047429065373153078276711779448811672549218730942799049897569515596208229563863607410421514226910944448405574868047012964074943054991888210105909812600648556896995148268939211862849833619794954841627069118968041004450097260425071804484873220439024545343109890284492812299162272778269571970325916900944932819377405562770496799783618332785416192195101018145537979437563028437126402654643709595523954135666837592419648898362942153394827998725941046281229396723068816274979840366974460357809751247074453779756645933976736305194032303479163559379914086340969290254207357271790403853237640215958886611020914286795047080583930201282617865802861171969284224323945361403506893542086188774326352769469214554254166902592312620986992999651478759661542015583703826555145766129488673546159519690014357215684316084435000536534464063917569953113235764608784584695211780648102809591103378975468255644628863289900940800338337910820855264791657470696897348613848581539654261038604103909208515369068847302583461238504082068939629036354213019223198998621665419891360204810661968415839510589877609234712559701451139401511201413600877029089729965739104952692261104645163930341194658145442806075167587017675646567863400656246016060139009784219598481856613463768849142148717240817849173887415246182804570895961157720376043709316617101858425904675134121281249790177598979337997982707586721409149445009935896746271391571569475992414903347351293871537093155691808807035824191153224201823539746037169554755294457905063358445194273855665128820304667693355239193728828266413330219076323756603413600368474246093179376759258592107688978936975457618679604095946202063886295142448703391212943296497940162586240635821947376084260719393118315945153538397091659332432767029304776964348433379172292405780602116352040301898875617482756648890914389862221532409032930422906060567157910678797781747860759408271833186601262638966453435741687774309678136287607111549212472736874565313571768132600915843427894130130682278121736505266047429565977455230732164774276274293993439101200112561940139655594908643369819918241513086783576466999265376737445250073263874524585186432480795907839140786799664571068015482304376471035785146263417264768924712801301995338069582892745114840868871383979085190605838193537160125382338398268589485247178213154705100837300307075435817641930701797018579748940789979712057966527781516274923492846019281112677214179790460214610981628011272588154541462934391385630372070872994021912141692184381303132650739696204194031152336120563067568992725429511315005866764107636844149668909774771264025431178269141357967289691849926498123204811118683385514052439720512807278357898849638865639535618874732189312333610387503923473535330137637070173629117890494814872244362373723907186411981210153423779254422065896583297187713674499758690262019313865552604665919720607436228877188920606137192759725873215413935912053189997433001048748807273176752449385453411047170513598778087547297412573006646108448608082762935437403352101456503710859139363560459840820267144909270391738993373576658676123362269011665771485142651127944207348204867512327015157368816965367409251203131541925664847487554432251382732370607293609710058492394490827033573305254340520398037117809386393387482301789153521483901881803930059842506896927094554058516341930116273159171188637686904055347047808280938370544605743454395478349129090547169152400589670396328416445362801879539071526929674360926185011194033891034755921409635667617169525559864428639984011693986759862923955863084527306754512874021612888391938007244641978993906416304690941768580180520173818370416962639661524205375882433462351404606144620725952181253602913722818251585199854291971103226737091839102148028198833554949506312697513817269732096923218204269783149142390172014261621706185561121317449732167606634249368276170615777846911302757976378327596591385155769042071287315036454972809244353438297339462554501702909917847886961086755081070346118918222364592866689980101863863611240008172025838692911012273117874770332355647609858189622644712167452480405813573441043566980746772526485931008115153929987507258481289543628491444529488830133725834689122452934021116721048409872328233981999583260910449162519099975161749722407988854120138571928176592766707248465379617373042958255880470948716906898939213595032748301024454717337163578537331002557335870022985481594021291114630899777305352541486759338137508964628711548354502003451416375546032087245966003106894255295000029990887017154277548328652700129374046549691362901916604478759722514455178875613898603658424798498007464244526833098962844978082264311715137303205531819087811776662291242056186514680903160284948313764929804076869284818898670538791660955167380053861877484416651416905557746419294852081480158799298845253776707631477450818218792117118748299466443213744643538387419225370373576516371836695612330632853807287525133075393402700665509520795731878899385081975443931255132905765553762909351380316571977572442887835166766981746539758996502337348756164446170253869566164792984866829426203260406851087422884299873949796622158833250767366055269708218948246662665147950280507498756675785133227255215879198452488724944364269923721172326708810855991559163343259773669871429841597926636585416902545824224041711034997365394736330853885876813086138222012166300623654642983489586549685106197838385091831909150166510046130764616180026104715046962420150947436839385318898791348640873758753584720331087767746731587068873282414904825915641460256834695531736161134010044361142701869097293489209177881708246024432705104465803063326983899141002406071285540090621989473639745661745152608934336152070352865408506301464124548356645165283335442569673886684988060447889848999651020663954053419999188585522095313958395265469723128491558508908712857031309013639315634824787987164304445260402032066753723010987763193731593626090675782525796958033417222157216371123331826372487742271693270925142131901325611608070215953604747855662446378654387189156123627630631923005373457031309776479713550026748543706902432271912041632437966877262615786495024338405854731117458997261730981189981426053351257580806303916984227216208472632953465888683724598518581250957256535099538330723426293350714483348603124611943226087006839260913521626175900526941143790735315055105730597115218409024491371415312674078980150542484322789991220088354500546340814912659656659996753918573996242447376242762347325250869993749834124886130232179552012881672631103515666482625848073104283713484224817293825716753600783868225979421012720590665539414976117057371899397955877193964138315317962936008899904007044910427105117312035113354458755699063855309716689027061346930137513081019367531926053342093076508024996632833457499470294723736405158043403750685551823233620042035875960784181557379002356703805543523296567289761550624818174431733985945415023731534789694092746686078245986263454428155222500438532587692012481991707263382895249818974739530941546189648865915071804514551905039627052072337087177847229474039316219784126609291424819320806153952620786504623734080897413131668290478125834259013318695982865275716259854419049185648373954684618011442104891309835851552881352399979989926284006707510752300855416285575972860030327058185810275464713839075386294858998961198264741767759799774894370814818403695532515896310846411007144094897740464283641382311304833320318477441285454243105984106488443639829774944535096482435021592488929730138099973722192324214304866129408626231800614143321873731574754144702336701959001076130750207303885843425241221220023803192005643761064105496271459291021986301091126679081061599138731377694420395511005588822674063533992751005484941258930923232393609374736833547217566062097376143300025000204824941558692973827457342339853951115885986475014909983453764217836110256600385334142567207025273426256000819482607172285193147653417469898622340661116936072531562517384280237266227432928420436608566196627210462564631366028645846336446871320049493750391997795011690402317896908874855995635015611975747977177577967850299647555440809257076687452904291552528746607589524524496257566368569716098734781921578856308134281505514861470109538468107859218636570490834042483308679379212665023596639524841859673957597716737811839643478460566912396199687825753300214963287717464008153323893241401413713163341168628049935599433340129069756785564347365348940210079041977931433366797203807697865890042145767728873971196465219475584265800406839961969093263757163165508351779382789393191038373395064083176673851976195598959683405839765288460897293489859799528495531166500402993560307335214015664289674194297021824084983415359944582959030468213763938138106769753596922846206465855750759014116559892295430038259131091468782657265865726357608447778045013291790612596762717840237831163599203022914604861669578063200220302119735905553955657022310836680342663806555670052685367318548533547069067980387445084867133287980016764418097567229962236713432618784468595392505093035469639407711426329870814025306537066850254664794237615743339625059511428068096496106735966846233611473698203862728992791183325370588605574291033789030216274396731938933886775134629866592938186264146128416284805212409914839473296601688510890832964500830463467547363316161274800138769689455623344940961625555569757556808494554702318366929530883366142663382504706601864884850293188849425745903157946985273105446269596254399848317304458464219451145694762971519715787057753005652349753001382170940904813372668814465137403050372656442348953633848367178802707838737917337368852447192142830487690102671242018757030110694950742521549358805762527043115136293990655244761212218417900951096981666285830973322658587237879744402832226227891314531260703897039856487255633489082059036708633752645440244078726789624687419778209399254462738645095990741386880791041315298982943943851918100163119525775961880551771012799072630321395378229013479924579876571732822643055533452907497620310019813883317617622459947859298807494504566755915336047873821527339591476434620652099592169549504599211141034176472524335149244573747067687843325429546372283435654404087581382180768539835207304337468570852333426327113589873711666638582801782391833939920905116680814130226247664117568686190607060394490853005913602060268285162533187645785661051718576662420000413518935250884153018709836107354080113938137146401762444446124187400394736051136862363472474576772052394639884345807658939248154054067301369270615077297058943204294660911078362984168806352803011557742059640422926910448928677493483904226467903955122175536674335167076427473061118668094985024168524311670561838999753959620849079744307404199894219263184399919084280667267690876378714493994197107131692754906967606193271827698410374748179181646219300637671701444840524748327371372587801823608389725642239572767631912161225726392330031936099356510475885916918893017177476737192614805105547054837258724733181475609935339189144514170632740304912967914728824744067660003119743869439236957126960305390510809627701296432442795697078013630068138809151381546170055660074080445120580548702086008067632187698983791781079241243456770112945969331131518955276470467342675077030125958735496770377494978401516745240098959002593493981264504946963858184126647920524300544305697629572727553383273782424319708232931764145854178164210951068642371990808243849860433045061029359155432178987267974965942527230368308422174675159457464073276753681825132543516551434077917444721851625729896223409867142833902376984259762783342068161709666711587775998533584098039057274045547548558395582147698012427828476197284753261960134830558535762073240247796406077558022640214360361853364019360114773511941752588660134576975296318951391053315922368689796086222410540422139318561461060442190417295210782462187283993844912707652777367252251121618899032824353364216592840410963042606864245773751993817785002485016077792924942354200929534917339103104234705098130415526406302716600828712432610883117341174497991327079955700522315835277751671078712426620706783467737999533059283578294678655622368038780751300998915824779896199986111560917193789422608704764405930960357204520993470336676733426680145446709859000761619187146077169297127100554695546669944373825861147760869987739558489392319415445709838782211064228508363757593107966019167420827511530131782146362584309947115714451162183646403906528671054769072495896528894413945024863930027027160177473211444975658709922992436285236214010642900119794423723361433195453101245018275430984919533536453259715119031986616383094200560499638769805975611778984195080576076421860943405444887315418343862064753938172006453951292713825665580506884789957061359201657598828003954289039165150239645584759319081447319305682254439218487958103831076907480980992434793772197180187202089976402944361550455089909837161971645320693907096684666436563702203255922263445780574913653918043155733915266621471652813454863806647212540281146280775903373780015331245641283622274027619720228759117311880459711272410052524758459143890201051107114470389082409152832490175253319843708004874309573188985629269633679486243598601302189180402903955523425373731604914575521256646776622558673434376127459164749077954310540287226376844280576299143371247697784669859565393370044329050685990138698645961182528706772206729122156020608931608553177939170349050372382936740315927927071225378349400346143814730797054310664870386834028401326048127880899320018125277960688821303188650972024174055568405400832753091766396365117685794037577712262028726332661512695535639010276814854763427279914945199094198859178949710819732278492005192878847894197542643441824403067939594637839412285184068845200335643345152454568459567911050016197197064873212064541461805509312509655468221373304607763977097955950763278981611356591333046195324807282722834292833375525478575817861847569730371626907924064115959372878151329874140509866243091910637346200067721695496528381231061231068971211278517344864746145997880396744190201798580927823144868452473627267097947295702110654202710625059802121726910915408486307682457947473430900464743498054104254980991357458960906575654861809537467791472369781152004854970553493148920251552978029755907257416812907479621468785383238308776824455529476136860105214497219393049423815052589709919950037466951084863955979350053018512994307709829391603456120439798760225753390141763648578512953695522351460121832785694289718323744168814017384480927194213416292091557699366890769473693112922721383663951404793294046704811013984464949861448936288949081934998772091514014070293182391474296317033263553130113522620144648526503879095192186803334899304107378094534025506870107825267084397773992976219069969357661352863811552246307625526227671709221822069266651248733574518531103082225608878682098130833157570261456759327254486781824276687053238558363320256190410555466820074643241297567178108647041835620669349422858418317662862753399678313813852649092346669805511968965529690080026000123796739225203834174891442175194869902359773260190288246858723578856471070925809757216959296114969992359963932220615166401001962760216914433304200067595131999107185007153590247288836749761868963149893472866769372302867362791350540420688422988819047310112623155685308281855074079242742503097631321363952932187839876073699323258287355741071373822602471625615063698060534312433278557214331660851238653006772678932590985866372931159520991075808562450798033527912091698308126748605348313511247409310787902221329131895664940134145936605131570884296777772364013916016133100052197644281348877294079392515937615155869164888095764555765710992139269617284734242829321047280103251056993987722118495935662837952120238706080572462870401869347060331750399087295362529107378607662849498616636803269168224799176734210065745424196505581703774773597541651067513325129442337365341707627175518842904112278176995911700906061509355355604572920623534915254334728823718375357213514006369241065530097372101473585493031429888677896856223787458241428474279602890242507490812854237571885442289312065036230866341697060932214823072671581917608885245288234607462369321746308697473583333136810422804145527631538271102501230190079456610282064041661661668664866415956982305446303085710323342471849851012733519507666441478108500915920768286929770152927432000953304911880761280584242738188431043749187791610306359440316180942312097927743245208778255616542514918627861087643673068242237472957608519806185694720319386312164970278783587236064520075730785651020036821321663921102203468829131816163952719879272317375711135226950322597413473008838323299556632976307114525787664235081122584303121514197349569804784780113048742315792061537673963740711595446614280798147635306089258143784726433346648494433605972339177721113733483363332711141476445005234414043784016581452659462955915681962415662112591696392864840682883939344289476043471255543999913428113195195077765197109754375388155475469216700269526023238533298628450344018070270231301532912862053880715578205431312556460520714240472262041040981689848106340099584916206307884255368915897572291133793532350368915885579981380478271622428754877502413062964783427406680161043821890098448944894784554356323340493739763034191590573054394646653783016307521355862596447298910971561145268801070442869322592283773734270388886709444800863385677242143629054372604443634319042727160132661881608528588293749624046423106596313514958216513240765785920599681281666710170366454602719745643695525109497135373393607322850408805622870019403567311782495121178392194849615376252749455875337352937300197278441498547188364605022343427630965189878306683305373663459438803134107313044102542045894576119340304065596920942001835094149384359266479779603667467906879033487634285611555093414614964583951746302009676794481190451597531707462865582267242235362200955405526386673993625177893215971122203471376852738723144578671364627467394738734277205848841456917703941079936782053692323524913885485470252535916558496625726034770444167829015102876825879604406867945276357040613498557657248403522306343423161101343916150948604847405528500069279088139564266776690774801189195738248691346514652704484445596569846044198086561546451824337935088140083833005966528627479008747812568204001502748072510857323659660374453545478404667385079981822524003010895196660800339828164363900607103195589676446094079168709675853307668438980262846688442566613139205939410650294916279332097831731679676941329487840306240752714211265971222137728245884029220486539153313200294019564435693443284169702194135860796946150904587381502207046965628149935273496592341720862563939996041226379608576570851352980577466073117556142967524948809180522892561674010789547597491963153458128501564343856544682106696813680024302953793703276604937470931656402928919640495120052821215010782330971737448856898403656412460397835825308759758781050056429365852036877080378860337098252035684293500615617297761639777396640464594578300634593330549402441675103171482939773113150150266768874129636460232509353050915898772615607600932766691078280859922410614049321841811201650701561733789838936469300885073344161846699091000725975576511788628176420417677831809282037906156827444888895594179563471953928145725857910881336465940351949519876840267463474391946260587798353770754057158880872640615725577395183367728177243166257724270464409320240913452851359243460891536552246028829092675537277216528703076887918991674798250022365323728694189105770697456914672181988793640586847157768528958974569818776237360631003410985411840944424390523679801386904137770336739189862076943846714775095793763739229065947515450626503778057094119621530211829806760359490991831008384078164582121200177315474052606475306001709460767976149473628293376209755318134897315943826397424911721270576060688173513903032558493118926594374923412482955836101136157143417273173846815237515930825189501636139453042257260068294573252528374883331917201177561180121653020403847779647359733254883491423598280257939847279030237963830688452996369070868995088829418837288630625777288779476440085101769173511680850253698987903883851375674994305506962519309416953183500421170693632492390051988497238051737058078343697447669749946048576784509926095106160551060502783530974031801130346363654215857755624197196194006057707372753314092873076373203692707199236140136803479252487600665886128307451626587360758695202435754404388708200006671585412686700781229712022687673194484683725121231219145669772090008366930143280295394471950531517214970065886611838266713712010586775479231397437668261584616438557737990561305724160345124935638795013659117393366445943832508558794780460920972005519870413194248932186965810114741407024201336570797537144647721913133007631098190546578712163137081375668492453604251137656088106009086118442150985132862556051669302890757799944286816391159741830758785710232164558684767361851989837578488756898568800148117160543557355190536681894882098721159406593040901002286433911877796340065443725770343863692809084056775187225706250309452215432804995345095015377683637183875179302527077407062719115599322525620188687140443152580962094718502196886090992809731072701677226103542770612546602483431995121111073520512648611880540928673527801370605611168039305963269328457615866723521167991151980639916653052429084533581521795691755412918730744155533281789619095378208459100881937672548174181678339199007809487372323493216186343850285368889326770307438628843139953712673369220412441081782035707205042250244638822721172222607185562976416579288290370743100759214452446427186679590029880593814425834521207167374251565502596664108573257571301625286875915701630568416513940080169838745667781290293946333459967537511848016438109356855900104839603697913548585909096866647366557585265986862489687090901309882565729558902626883784471054159163080136180915831596330513592389977573243543001389674403123671858349050202006581275532052010130388336824373010790920952162214563793530996888689848527552548413779222387754620704953930671347647284360466585680503989657132634419597941742701060718538879899116723501249418745151680129953890908235750105908048453622089865143936969878417820743071653833444054229557314174835055141747122186699074758133817792053439335748081657264994787547426044560115151550404085626766236370089396527264604508741350389439289844312281312134521700996556367604604821708145220648519359343129030563202954944346918549942844069643704409642838949585136353171038679311902800503218087747037940722952571017722556441605635748450935616333772506292507148243584935030104546927781389394729272923519106345305886636270758802717639177375153469537379373193069294108549528378367990142517135930050146810947276921914396809892113273551143167027754786001345329930177918054855889503359277667315234262668807954000861888666439550078494689293116474232666627956612409102356119982582063032207232504780263997300905993805123466717572351175954923967241702105158803161509715890020958820346745905250719090011416734461141379538378496215916707455984736262623139285286725976852903210532010573991413437518538955949354915054757816001033694335037706299732197839523182987153284389635544611800434167100636570392415350851962600426580774891043731695239293446507409720471466297230772068570592868752553613871923773297698084984074289861543596176919509090089749172781759651013864915305332750168754721467523768967406022337286606528490589863983716787260314161496713112472375671590283126971464545937512077719218458962457697773118895405181265219000962210134521873384153248358969722273606979681399836156477066345886420544865787942265588828206144060642511981468738321019503725458643382834130861062855766053028904996067635451418320673328237939781036733182383251884033925819391677287893992003508381152852983505857954887520350093203873495410114828789974789655932822204132765083859799287502281632393037086937533528895778067205390232391995746857131825734798534652186759063643689429653867424898023467673283256544986598708365204542142588502377179221724946017872772344008630063570621390024411576331301974641976514619474285438053202143541935173640943470639793295660928705887444273322427411592418151636103062093298295178107583879475804991629304569242938080000794712630196874226517468666232250492338802625759245594344009993468157472849530866265018269062929628660441563464807214460690135290969875428788376450600977933278875164636140853924470200152102646728528578810749694036064386197986906798926079779413406256918211777487452153519191172958958450226909463252836487256710822843186736048104311407569797188701000142670439699669837055521428163083561730622207565630529877982283952531844263341858769087437745771259575199497309818327366434463726451762650007658969362698926663547267789789091000047945279597549090463697354322112271776673119617216224518021942948699869867872273914346658396673317923042633705559963300468580886007923514070218174142961499688046040974338755050298720775328536792824849041332446806794086824877402878640816109820537181597374023727619765680674486525898495573412807675720832366130099375201237140130787874031299173945617829526409796767424008373978902928191644064293550103904396144707887906943249970189730437708930633569655407719231481759458196423556408796246348601972896757319686527416833056600713093078308179002558775884254507522531055579151959933603900713509843468381835234820912147939775604836097836818302098215438657421811312525402618311241245601812278438833836025277535974748917918594730786083273315850714475475168892569486239082192812721776432216010108941464379119828034273879600441456873966282453155284215011439851282280443524465372250928010789395346607707137746357094940666172106751649974878328691664761812132077807998141537208090783457572759187362869991651261948585507973700165611120612700856040142439319008806667902789064559004449446927794641480419749281688020686819859874800646996029648441903554375311834292138593431628878306807690104289631262117918905168007821078209826417247422323583952044420305107071906098334919281792502387472898548970501948822958242391371015696287522531671542644856179999754065679515808052793221329731146056735464178374382088907773235147871329602561159732123124147628790555310935261031284872666251288554117023208891560536759666544159470723439951594053936610169614860588275180735800245169789994565340341331077777049916441533449560721325163467765906349912484203672588853054683000560583753651909449555821879468243436628553635589322790135487357591937426468932768656560755663138554867450544419834345972427614305167216469781561926616491999002123893187291776814419321891937343146381525808479705684260648398430855006542681207164615302937186009991564266969187936932058345085014426021232057408007215529708767027305826482732709129522726873036000599946528335279520086898774847804218390402102492748605177536844592275984010495689057611097470314396644417027825771079323321194789501146226288358885050935930003453797368562994529465310224050350995215175488697149571035592315330430880032369501044679240490900905657009663218026465412021719099982772124551399393355357249022879581099427288124121896296439651837126989637405631742954386765926761828507299122986176427447872873896067101968118156010994776780191538242491329351538520967085765173705158773395212737384929909086212448164175317115386728518519746578721474021121610157516857888944549689563176834182698148949891681535921601598884174657781371657846143192822737853535581261280137582302331146883326624207487238223870860265075040215516791486884334870655739358984607582609185312975213755063076906228748627972593956770831963489635640293260336948929448173923309262986203638769990408251689853975161059516941079538984299058451137069520473553581313962663300194542534214136901274715098487202723609875555920386142276173716615558354759509942790016068955914701171045271804016105735004427432680878708639503385607399446447202065738354432166854035794408462394865923383913505615328114397475258596286969524655884074737660432043305705644666204149173028049592320363167329865115585109846557946475524369432856874106568377441123085707217999545748503004902333926881040713019388871195125209539581613954194810170555785618771683906090630657546619345724993669932644740346173342591605759607291122259384630794562723440194678525481574380703092186936014213905856747157501443178889763598107950797210166435829802039247695603731421981523433141559260007117320527326345194480001477243444638337700918786945954493214113389050047454209248937341698016180798188321378634977514571941303814836621914577778991511502364152032627408876942597721071036727269560864721060184311978691069873772085290218348784484758040214045596506741577038077541517242668023820682019465884855592323595638768705188683721965857647928920740834433298741565052515883136782367577489771564950131701434823951896099788298316012450613517018700723446840077001769423420197891424269267238273680014943494365520898340246630715310551417565531695469075326121742868030216851955417203403596758324120245301766293959556646606084038964904006304511672501269184619390615350735748319959354870432604101412109380693090725280115526707159994651927171807117073418623785392232323559301401703046202136443815384450767155158696312765363435697648600694902036924473578321692515166511535788082008335151619900825818932858271483676625920725556535072009392261752526838352298014604507484035289986245562397160422887963294156606497267147393275203495508322971284936959208266831077474177103120307154585025368869133818205447515244430336066006894899171430523395044906575975015830895969328104490262856386260306447014127408893720755281827643750890526941026686243159828401962019910469456820984241261223511730241219086441575617663073414810916061401851283753097055266345403075771069636083421771287703567568051670550724127512206364871630012219948763947313760900774486055215964409217608073674980144855825250501573290873512325053748715101419585323319080902469236679076535081343957805409967371394457906257258786880456045546947335198293374618609716651884898026088938973436392036067878961475147840992045611114335197386897566669444000640810993108321871132488618275424807916493354215754539733695756026535906981666448125165165525716769757087767946486357461806830507588693598186783934111186060552512978090547292776564216634726463066774127971184554525459455005878002990101270755303416556580892786520337585652998628290353665744377486427565693986286293098839629330184296736139988847983850715757137782012239311913990858885345480603413778324527163189264793938582644911134959888050112084005974478848217128612446081978113026342388053620435327523149254649394451168498040038700733909913966146646960680975592159545851741681020873137400932342764866677599555402546088956683045662596550048012413257037325024441987619305626230425473642408440545313807554413758660821033977499083006141117806663056703392496684849155625476064656317275229526490353195340498290855057272515143695971537900837961175864730215582138461524083458172607998725073848222432160634283107230845285282528916688729292189156739324891687800162468436312973451207335824453790947794230923288341241997855495011925701870523645698911634591738546889305582978439049092549131134552657685113009231201564758359253819657125005265457321910225252489324155441588735309882463335439957358739291227824222023718465948380320542684709277274785210944429957274981626766663688819997365644088319800308472823644091534955362662862203877466869564490858406861167283851794824458478496602995664625562450728374447286725724014694498393002322919606507978767045458660765655235239092800556969289295981471130176453575818485784256807331421156745883675330118056057931784078261378823438174589143036815459974690819846003681613706464832636766347152441463859644940006066430271722476226694691130152443852452369621222194920062421575195829652826917264479612641003458597031557438282979121014429445329584580804225377717369087607177927846649400507567275247305727296897158895832786432932300582888310736426232159811289695786638679154404028532550964617212876270148953191312992980758907973802398771692713066150019833082991950178861108157699835090247134779164925972357273801492967222190197222229310055399634135467325560739468549769238793661311061880574816856918223876460226879459660739880317149717484101826960106265282630878503852224140956666672010270617672749738710847977172392139354762873564845955714796712238747581422489698075147642532102102777892381456013621484780035462469623308290105065690500591888945852034698288573695589111236804703409748230932276432147639144942315213426513557940426618448495195745799454782681794630083466469933500876516685816616657776548750686104003740050093467513720208610198042218741751080711941518095578978633906283336512476232953543915461347783417990569575408827169061380543891073371505375069829560713416550638344803739095324312791981223492941510782297740994106504015998108816073065632101493098883624054563230025805156043872054335098418739605756858364080153274172701897328670968236603667530651161966755988439171131783304823695377685464904232662686701684436949181926005600642894359422089132773047182451147450677583903894026351483370285074609685474958722227624204203085413373359057986349887438763639875498276124752354906046190480391332176204534679040502925839677243362033895892423671663595842420352133049104625007237178214662831714795662995879881712381447910887714686207085572968859492114861446295717034916571272907500259918533256128884894226012973817514991502999247622251702839993409960574965257951453700202208562778624021362314464968239678914791893437757097802697833249347371611908246094467992526967226589234971854626841247698929184874957211321740081100548668179064554473087058236770758890818776335695535887527676254341768921476013770201360954933242296342933366566005543216919384053849798590380054159183046025631720320718930851565713437874481908237629415710517769120815615061863026429879092333382234225648431853280720327776810989332144535767823336356703510591519052531010246691731104962460491355554523204492024316826333390846212751410581355120846205128743630305286037335973580294498692182651312928273832776657032468577136939141576260204680589252979638749349155953160508228776762639130255997111289971674369836945311303905004690452301798164046344946821211534078348378485578719479454181672053916360455455884841537619916331197996244347644107932424249848551139281769316713526475597173383632603053205416803251745367792699756281768410334279643952282873810020500803581823084273902606730443837143246966111807109818437670702256946181681535882056914329815869962673297118400081248373115933932591586093707484215261436458840951621043037928338952949864565975513920165462324161584391785328735634109618122603254102922450903694303561542441133618123546157930779390625082228974498322820050536177850573812310066113784860490640881354475972698953219069728924724603187391482062817527958083245014715824283997792264989748069858822291338573173096936478449280837313944210246679995536155640938895374325167300703292059806412627521155517371722065171077981754421064090681132681610587562217981753835830702593280157280638305155772387849540270129559496363653502837865816190681220832025669691719095440310403845795784419565854670338193658700013261446597115894959545233320752011401194804677098301441595101487516450657295493783221637595880049473181767449876864044433020066013714077217262676870001265048352094457015774739676352760873281129880432409596688661614793473775837510062799585732496438534145573688476994883107100811200998543365297607273510216964410058043369733578442201562665123277067937831435487561344687577649351650396038481506926448445472483627100463200550063575275497845327896193798880532503993947144214376650167866986221110659935087281265874990266353759907181598594511784265306064863532522677199953508453997165099411417373002428446657259229366706404076077939397878040456445885862127157608844404853188339567062164386820893846110975414775075673362350846045993650971017557934721222071649357326308999702177769366173556698685479023297228742777323279936016263320768467326722605830882207335314445534049754706880788861415057216141485769256825604244832599366270126977490793971425189328706196782525260684480373100875844111565149660602199535026048347905760160094765160110884159997848218741510750657031857591507522623675594383563659876679253792375057518733106101773045406360265672053708180931261982109946503537725492984079235417117950991529034052411534697143781751319160152729348216513640668713222902677216726069241357724207958755723966927896745725264394078465485226351514251593726710776184952629311008024280118520619357939781654042048327362669845182851444316968746251133106670665495865035693776118747148590733645166832340076063677617860976801523263563975096227826684172262234161213879101202804249759797410915344459783042217286227843177930307404332183687680486745480521428134650623901954516354466455209147402789830528903758699561023216254962298950433117398472458840833438451047662362753971199694919206014348398090718948925630790481543340086593133102784638801278742562654736019233297932622912705664779442010244224793474231962911449882269695999683440919252413512185014287073748789412294440469690790322707143466307408857957623738113535576922321980808712049739589932009157054116643924125220299227624369859661763612635666668607194973887483675859795285211651416228212963897451329323735845543299272504271893871303876964529185595774744794211268958669814295011287827273606485499635035232885161487943201816214790579612757516429368173630941285205380705916895024280561331945635870937831523375544306953396853300900821307138736373738628862192281039323452236928077486548302581488163792773494856215252642629574854321245821242060207389343554274860925906174493954159512559417881532365471622343266397001738747201564134220049247933446867878305286504534678577357182199368234223172211078638259582877762109788618966867986139923247035512562281729034926464565535333191955665444378727862138764626123765207247176023666525877278784230611260109511405292110545242772551597620594747542198319120909424534214127408163122396231831500433895654738293884691945079707215676057576411662108874582935617254119308838299630244732438628289546425284914807416957837543501615708548686097898860512602966893574214501662831494974333940891026909695006278694767528452866145074859424332760065164443772736859268291279724730024072596719578714617037015641584416817801644124846328097388535105338379780817301838875621093448490960763889916689333363727090052031962819374911883975187278275038074766276324864999248002354510258565105543395823340173707875733533249534572788951472145761283516766629140170934351144799841101091931798079839528171556104827380846573395463018300852414106616127315171587435172230146305565677653772173162486093040499744460466903432605674230484766398725231861485912583566994497800624950758908080837577899525388736707933441279844633209739177219523835491472349429298477895522596297517385733926823603207279339701231999744899948036402380386533710976303117483691927225620721391744871532508026316006186403753030198413039370713393464321517919894042980498713597019244904195709796312153681268795281526275347517912075834673712377824640009420501475691341641297290312536574858312832687203717704549290232933816603022489299047364711534988293113515218378452104533883277376905713570876284385955940739133234761806259586152116708136357602139258915197411736833409097376192072613253461972193555734592597316956807173985134752221409385121174148271187166910029128670519296427481624454063659733466367802619173867929694401983148504923446538059590219002839756983595695942505441051558248008022312385968266612052268296286482502627753575181514505369142470712856171666117246316504561696832381849244808926124560456525313063716723129252351598740512331811632176172186067448826404013012620521964725753597481595206000738141165481962711943645966246674288265592042656911299169168015071776431170722908185645863827749752330604101491833712301581038579223433923340398284822233208536264590829251680367446422900006206547127186244583592596381186769240206355179822500346308581728347774441768614552334815191046505712694035767753624197643388481784129397829264808084183849686336980579060178167491238018079656652092511920198400685993829570765610881577223653488406063758519560456778002203729152081386421702332898270128393237006848518635487449260763918750564826561453347116229061898649518313595212819949236252633425573836895064572227443583897929101256831816779958814624048693904469090132051108634139995492030815249198118126732772044550587406570580394243329619673840730417029418624615844278285027378645682261895031886194849376753442298357802901668931448718990855865798544644506062350310757899725010608661933551073933440061917945762752068079473352112174239904712978293365979510420643434430884384432029956375117732725443113665322694092395158708231987870897583985174614219944837168250374908731316278866655589740200918039930591966329835212459766740329719888257014278782894723941464340501800050583696992946884490640378942711708880047614726133807821984899624642454383199888154548418616170154763938797317439668672554470585482059115745565751041023819836866523762379739771121330918408762357162793227680644820049328143996165128511146270079366306816237127080153374297876529156284262520364689245738510185198951042415889522180989542058987405738157633856288856184309967095021579790739258421005925785456762447567136831644090147026924488479618663775341193424338162322205985163974477207015107384879476431483380978872546660922284235617898809683592744506543727188629012644057008040550321627305810501102622956643561815293506840506291833566340897226426592534389549116633742682459132146508777708722627596660623363518150440593198557004116764342914745233854266971322017009290485710265978593825694667839881898979324711763460160703975523062441612492935631628435301408894082900354252837689297045607881913681418063615258081395686442114643064331244263867594830346440202655996470313114453645056842465469899413060469966806172728555239864514672143501152138308761285504416213133010762104311149457739256420824524385538723881038691531629842051722247436194500145534137446081587239886140565408355935020762314711720276950727119740816253666883864736498191149280970350871324591361827736664611966857236659575676544516450115881939600371472293888078655553180584135670399014234465394698075891643562904597880703972209230393426090121559126033224878177923371228527940932386177210967216579886817256910055501799629980400922298402151165371267984220268106643372648529151851835403253084096378081223596256704214495138894555947916988387703662898662913102912571386855422763562315026500201595710761792238252839804804920292771404930460961595881679022879765618588909723449961969151885988597229209749457093494675809813604392945585381178910687338697643960652680914617641367346798167069168153145709566570412842520426987922137115136778562645338832185466841730929173665271055371435535297386968095122742976697047613639184148775553313276882383552170111010001211946098977184085630367169703563603299146130554292053350102418200406244121032053758458980350305813811711408213289769532433941373042917797923705259246523287043388656933881015924079450867094401694405536987279666511240797485762754548963254647284045284048114195607377242258439700551253890503783774143108929689552829643277739396857184117304114028309561842042211188990148170050133007030193807139969680489462822689160416215946315802378427611428127382019787070513746074800053721035603947361314139347333574126942277457161699552805917379106060623868773705835412915427536175708591484832282472521710446694464119553472203683685839110793298468043670246788280747891529727994053616203988841460420215817565679683396609277836254027824623791509447035929749240611886628817233304432033807925736184114032282666277269762712905369458129845389862043959438640073631477809659282488821495723571298262071073606889761711052177986938379758315725785192600734769105333837606478752885523084545965515217505607874841664863369060487568031523569477529541827662289332765080927940724901467800078491331961416223959220137453599657213729140486582656354198955176975324643637427920824116138046013878418639966334079211753599577830009857788911251082213410211077046773430034895643175369711648573050228415276704051433663151846511306907733284866723874601665119279131757828879723476466297767488268844596600691215592210434650496193575330790733548103722291598700361603042928277870606750145856096579315426743289194769618534846903080892770039888807181007372338325722141126683009846376153284043099472418173032804932284170199375627768477125083486779731579640392361036566323062203094825427831808380193270123358570720925887967932165295291457292619302380743564742865876748757394852186557744954371884758105431366066808523071678341863379591806882676649039877361044774079879358588700794546093527206730744435863826081407142173364085965453442317451992070069042625481516143362514321150726123777309257687707713447555249826727033344453014807882663196082244035720736320039847711551606226575137675473762970395625074742490160808177902650292504658680962609993700860618993780319757330995925772121422053672915117251569640364703301157283312825316997785998596578236364605073088370308294427552780219607546838132925777546076869419038492021163690115425656850293836724522623930138840585835110720715807271073299552333851933929820668269984482615701334813514077554772151589178266271199939357097786434419045779679824298960288872240039935858779619359007181535886768040018795872502386034313830276398249277345099290293300716208302569587095643066456774007512840129236150789356903445801102496251486947023372305696308561479752938734634879324627622763407042617471932141926145224189755105596477968736398040358819525008927601234986536662703693017709676670326915189840383211764233746355091894474915770213529681688625100926549621809203773209877630666686618960561520950102451600922111745999524622016942494388797231583246293220872989168832360253939485202204416646821995528407222933941091957067161722169094400195626946337658796307017074593835696228346222969144410542610501330336224817606272579105401984600616535593643093004950255214056157523511697123318270291930637852143980957691902429811628910563481568135570413912117641390798778700847380929523426991663208798407175821298113468706459639571802191537507435601333201258473044808615455873162263931007141672702007587551226417783378338350491220989818850806430951595599106708970433546628167844489827034640127727274169988401105248148352742765218499562519296591356115978217208672793006563799045098454005367546875071795567456331871229509645744079232076342691809597257034393514924388013550070045230992466016870818332176452346531798619558674904646964162160653933017001071754111732460362139831905888709853389153427489658950942326052384263522198520040761645511409664709167950368888207831007745729049186438493616584624719155501701909380559493892559216073870371485678165122819954078562705437571424349328916918130851361877038459239735830361647430502235194803957168150385941872181040285950865468947934626422516212040314486421874459097045772413291106350212026068889888977668083860209311437351147453193072035761987762709243533987701825427438234048731996806416458390235726407856986708278873761140999629062655913707095280260747812679111529702657684883646538142173028021416403227015184652925360253123970718542796479917417042433362158088456785609917713716420235208217038270821454751598966303682615592865992943124758246849027974944457419855883176975365860271537254839047434703065244232950853240992213418624927712905826055814021487067379578242996216841387745832856777565087802937918202282593142869007699782218460737457482468083502593624370777585844500141361087833224859456602093258509524688559228764735488545774970035105021132479884229787144462940728362123333959935777837283166892210030186490344430220676578807775721703979956496260536085471931916623298756751161758412507784503602127578912119597831997957317400294722567028339819172738204984173508949441762375419997933404805195917041659924936258336178918721791859972692078111606814893865041762301153815661717161235126626730415789190511332332048178115303809099076970999843434719187540419983469635740394124884494504351268123354150078193941130094929848072480537287981761188634184278142805153780981361590042980098244479614980183740847064318239341945286883042806817629969907171299067217309716289664882751399002447627626252902753561691514392424246084573996401902496936691146417923593598024547098310909117415292919728199119737147313924679192265114361034304615807465707175395020777195470747817381574078210737612901453851470079645018809030958887467186797952388439948263690660336594838770261660789083284574830928396985854299133392450374845578994310357476169393116416637135747633357621428200257566011100045153509771580774294028517441869931904059676400276473116298977704473393391049213767029558514385596311672649987407872744066576231647026010808201210435241954438888432145463542050810338587168473580033056936854895909311299863297485030693717764671132010005390772771718243485089610522834250477852858029715652158971743379769576161596176790972154898163197650074082158374704659302535858463255260359375986734849315363607265975153146164402384571989781428320865365652792589995493087406975372747594567118779741128208256819275137009184952606312453062326587458143874845862371931936185474957464069994904159831040626467062602466950293289274675208454160405317044663344479141548542556279725519032092229161074974266650682811283857026211285463620640763382995604135420922717560651665306809105965008727987020021267317994005229747530107234223324591393135379923366435849239185923351645771513589303362734715122101650757578428840911601754072334910821058949176640629486720974274434344631107840647054560175848461455945003727058925789551201996559722867924462151020423999286408113967023075152583943927650082269505917142908705391166694554932137503163592097792807396257680942625460155289799365555432719687677295376256732015125052421484503865433288076461917173118396143495378706091830030063535047851804505153135105459859665180178764549584341414865619266767669010620596400516259729795393392787535193875011151475980221405718268536193947046685273971488480460987807033395169334756508231289327719824359280803837263933878888301679676285496342869623182724451315883460661658242069258711669417363797774273628798954269338608470387035301779376879067361896760528627564012423491953411573664897417831944766093662508321995204935545610788436435774658902236815899008432853267519147465906618374815333096485218177404338154483115319122268201510330949538876151011522375765188816432124862116630491219568393274244872803166330603206991546996823674776020158176648140846978895412671931398161091756795388791460707748692121324814216930557058077472817951740455713197581957062691190065388544743977309845537572756137322886198484641649446835918505655126584691577884676720289012023495836048565750877604589806958792916299177003963736906350572358397090977572376078577464811278054357346100106248051936017340317242635947009894111140227899968330380958208366610572986105366136058605227690069758415599802417088131535675473814767493602369626588730984346464199517322286992597964299588174193754036473580403143093020556389710137817154389282719123610028742233617835564757254122752066230661385617646258397148630994366221616006290911882053433157609557811730559614681427849484712253108955929028571981568710463428345770329093320622511554930817694478917911125038301576136442832604393324820698782504405603727071384988888074904104207251518756867220831997150214549381007002715400850302873107781923988974113943768481593833535282721856708102383792999228852309854607255501277076067573493401787866224727591671176582108343897005818459821951962487938496300486341353536227159260340425125212669781546487679159098222726758136410674293109856650247771687832714849205602380324628189052210672493725676300240796156130248904566607470410829751110839360379740488010086552109313863152353211200709143778786399527563872599527600249598412361864380661060966506577796993724543266556390199785641321675604954974150152124706805068758891137960486753471297801522288796729567214378966389275388029699954981051812769603143343301318455946296220732611345614746271917583340457998633865970115908110819009931185869291848919958788929969055922404041068978412697596469004175386144097464560928162213338140493986791627316522232643307611673664223694520149012456846980558506871872070039154338049003846762241658955813570595655818510798926298450046834687339130511426965230211516578918167871427898507759626127555376875014207145273395424006347127806916336006265526911262513691488657335039472153921392650175415809494220504532709834154059679719117581402953578587536159750530531963516629137864960503841088478761190226761320462505689488074756656211763325773409481559952571680104278263590405581654147268966049356808804376731578393965612256222726837775017844963470996478735166185503597920602229361650702168012086262701580694855949338921596831196807983941703850834813372888706940706099936031226507932813375330851993293262753915641660252120247945619075102854035429421633507180674891061870117178948406226507051299861291436221910262320665257552919712799609795998691887818989252386088742812758869212216333459441441231880967998886067274824922765733877588061228445069426816094555656583687671463012970201884167090418786136695026938843068892529079012284450782493673059863902046243008967187685162814822057868559805779111782210816529094935314347113984071393968429507045588232258286831832782351404887030217611393493993378918006717967098081683188452224702319558391315285605118265075329951248877432200907446148105197789731491659478178034313948609142773355347429451584936222300573610456156690245391491599955776988892221842013123082983634041358022502774966655198897951346298832683973882219405502366870155143664618490440965009011861751535928915804074802926706346293739673829367536909362869063720696128278482552359009505950600852798039495923015490605620959640612836826418293244086697621605942981358574685381257492943897086372256709475357161450448771975817480520497519429818772821673623890951678957786073402881211008398646985265641891989617919142937077250262630836461756118015916419660489436062687787076094665848468855070593379852911924640681097203627687181300037357339507786914696321854736645877784067369330333927754361594779783677947187226495712142003272387048093853872642741972069627482882413718674842633619109184076884393824429731938179614015179502337080658523809791874501929597466503754476837764517340303078854156111942837133692976470421864581491908039387844857185136197300227363770612343713593661138861645037604812819518163352219777014175068299564659392883556871246038945224624938252807762789589686856027321713222918743593964806959458192363050722796851376279328820197163009508519156182647610568650315821375815564448472628486494711184066217291901523414114598423956260711930798815267812324453808477111759590644209372790861678335841762179645426606754779847496400287588562390459290433658239538497710741138936609042873347766383215567703981836236910796118549046790408562462155784263351029304177458108907156069695068794083304244969033875852066380363594861028760515107886341565880330277368966207857769005460660713706345647776789978487583603152580638669430205503131606265341743146808636532899969724171937799737111120829337657607324109604368678243907949009517184854447358743596890607814654270887352402517628593788199378416914250002363962562166993647928558001581997494159421497998743399566501611717027205361694166582236554626543198968087495042012490179786804847968322604940544802316511473399524465454472661696361640664595139659926646701760250869874324524192525320185040236188398488353706929350173374430928267939771395336716708994281461936841271689628730194254858997019547773538091625743790094177134611010197442397106051657971213649879389103594179867264279161232951724580007710885113215405882167620417553582108497016065840045187757369981751000452127557199508283447516293076680195776527083514221249005951467744425540264623594658838215282638301313383739589450115964071867712797239048944321026926391136513082485430457169658743169702658117864144585647071135960910581080163465093080772067016485554868327036370472347571405729210453316098087083072272314049814705041153219877461026777059668563687652979877467758158947239062897147409269302281645612538354316781348743247535473684248552436812130915889326719062922790392584938162747833162777022474470137063944791033431295968615928529168258231262351294093912792562421741041667982630479308066502885615622648944110600177416917190540002540520392929106301613374601324910973151788187828075374568617711794665296640200538820546417498469362174902532541446898774489757446953418627591852461839683617093965982421664455585569844054562986629526873736530043439843035415824988767716380237046013863536287939451541602775784096031759138923381965587406445531290688885208836061799623301621061264513275558349660471140441234691142152071012269064891701742304462945115729949286547114695854575238417321761896497069206941920931552045071856987127061495059375222010538385085273323802332225392560501273191806676243252121022449647826585614402078166973936401597593818426426873326627108143925071185014729886444209152597182359297599742005813540326465273837806162443176700824665262379928590730557862047818440404848830371296530295862560277678805863839534428492808340189911058550961522666543993883322047783297778325128298112861527236884798894127013792456608260323134177726484001624509153005821504283400305585186267729479628204035075040556436681203725538497903963480378037974054650416165025907953786967763386178163757105093606910578844703777997760794631342935170227709494558486021581844459026862633122183009218703635442700973012034973963641027246588672783054174921669859621105814783490085663609172249157146247684971332592406910162532622796278384994862981263031943551507099009905977360104194221455951565858692890532293933374010226722767350356372323256670050379698952412763146678598234611794128655110588962196052128836162632837879573738408761665548821657839046651209449552322433501900928362755858525483000086686828438257525501452334404593660916428060891402818291486264593944726629974569789275741173945712935586266011814856636128645293230494996454433882469897253978082927708182982485642311259859928185672380224902306978749798206649597694599543136018926854059299470174415175764841306376448694915351819019154349874183212234950833944991042025224540553976150169768471569473259839456960828614742843620946362848960873326702692921347385743869398756566997988192251239909974135374944715770646322368688435307484550663902230421642268494847073639835779770592968748358882322964879316605842457258192657725955442580992785879754921688176713865750516127867642322975196861039519039111130901644899488211167984903932670404966455554257162190183601455823407283391455192198721004326745894583497460679796302467444711508728268739725404549095961803952903259225975452349581034299176058939066753908103970150565182830417367627564095254007310901852547005105324234248192839799824135079771152796831651591087220394552988599293254009037644715442498450268769668459287568668731140843321752418290782133613892383009561490947731149981490125920580473616604132007815181423808326126744656658248847584014165490506218961387003495298154291239220145772411411077229984028918418695861354668160354330332042349220298189316394247323868673116546075382797120119340205475758845687818652050713776616268231054048852773300349914779268963868461970725987314893769200823878701829900735539847433788932454854990850416583645431778302056475533151668728779284155834468371229245774404042557647764713720183102618550874892591631059635870696214599250649008228794150346743301146964664522888199019169435120217719386021183147744365563296196922083756080758126956341665948724791766249368224599625018412866660035509158645643518457743138077350443824847572080455860377132454590378859857185047061341193375047623893184617006047371810182857567328650956272395542686447046706022568010593514071160438277587389520016591669821924656663251117418964372383301992787865350282858984238241241429100283131846631725402395037243591879599814325235389937613387800581852958865283997936544458624109308312855401602030793370797102456884823577919935888450754776417326849837603485928424163919483479840454690315319279957578321619628105615647592796578709065900679958361988257453260069308340077600073463767686588047155852127681790064223638352137082239716953555620891162505348236964947352854866688706881913659094468070890845278866671301374673169565654694161536589955863769440988586803401853927865857253165955017170057891204467528039747546361468824002879291571988089894460285981354775689863201472161737839784026665399250606462439369328598297080892533454394731368031132848395079770975516422821957324217924522719163106779784118132128260146401661417008431360343888846365090233802721742670444329741328260185086765392459143978040753757502724407587707148420799978346370072515314058972957209702359918585098471533522450916826644551970488113419683100863465651947020508442105531594085761521488907584647225838366428566792134879838282364684032405281723886309888432622689455628991964090274754276719468886661868600720899486372397096914815586713283181875356782940889810046176901396155888171166495449595524918839601223501594989212850596270453588623500856070462936915304868137445742523272969995328919570953497490388851237059539181647382629074209872521020185674406840743897561352922711490519337305853133402928315524466168557711441254581277143318829853913341255506943675745063047850736241166912010230573594269398398236108239893595145529199435985770466906425074280688450300835781977904425294587008919306147367174124508397929509549570929715516121457223561608126546215801462434049531064306270443198985232511025093731529114073947788149923145486684459018343778103779341502412201272059129098441320910488990030602397262688899433025472566932598706794928546946955872991943757397589457034669246217280701815209476942136741710214662134485375492633613876259723910522177194099352960536066707213007079500276173810665906506639005594235697341079048004243959271057819615120562664085825093172778006115501755678948865079235310025188658524613051836079839754392473334540941072871219749356460431893623208442420168038712758335309240905235575739002743899119430461036943147515961433579694685148336119167311196561193463551123442304732524250960918024871967498904897829756040552517401320677397488879001472917859426279262496394354578898038098599447995466180116858226202725057088355593505773591206978113209445337727181271290028808678070911441851412145732688805753344933142523665008351099924161259674932261972234832081152728179260014485918879971242144527156387356868970547654539693540816493235169422769248930568220466043286232170567378297574256072511135812067380997735720383596150536168966564825765978076559827727389880619115925971741043601682219264170073354746058735598038490083932770848218639874022943661673518098463670319534193470766317252928863123675571120078894290803934269851990871489635578941103954165924641893207823111991314727814679220390848096465557513697858544558979956758798752149146652752403460456400213137249874987262412232721051511673040212936636068745000958271093569037971589557430396835265451358238790150807470913643621706124036838365645428705317057506918154292368119323565181857017221921252291712448249384664334887050593114220840433524937489874802429730536620667240004608620846240438451874301392395928274360934519173787600430988929706199886742073283159385273103281652693224732385989390128512193310080538003020386918988011556418473210048530339112383805886390486596583471241564035124826722106376594029066892656227779900366609621359264561967472072123384531317895716487330092848063658405577950391016036496054859953014009194895685458111835212593128121261432186187485439798831928545709767747730150334921199771045514946123519185164538308153596943147982167311987977402383741899835208495443404362461853205415324744820945546250168240384216116163243722608287156304366871064184354673485509715501651824707902046231862389126286679215027791499477288408788500631359735809710623570777122242702522782425365765667225802417388068006150624081116931302162776051826670895403576881005740229586441671795365144433765828610225967277222964204010103908512082545204553111682428923326362859867670315481596000699405465536987668351292502456615018101882963464005516663008727201086987668763613688203310376830909098582211341032899821935380492711585492372854294013479546751002406099063539826655396276557936489422157340091906997420341307628187057920066845350268991435640061417180499383155647437629247831556087541056026651478571297691473547540106436584071498089320316021860558387015657187781653996234254409451603388784487283367026561126600132880006346810010135385213967308815671841548386354514066455423209108220171667206431940146781370698581925237151865980866515852798214183266638418032218974181212100297925439985315778275613239420361901102484287731242649491270548960365443265483497486267442124171190723768364936337697200062877541525717754251458986911620970866808467071276898955199747305821834351048499544711796742961899259451450094046727692267317494644379809117208165339536782377121125140763515154162938551514833279714589852813023394361078600835410826749592836519760651462029789722053480688240498543305692072615912775553569393929950354369145993034315419233531704256399138494872665399356224695282745197445702612337463254140131760564961334037179493605036833911145908068898689041886635014814935539870437418590633363295147389370438175980043378303241773248511961925252585768847473093640152790919750397982022495893772303737761387934629871080995886166025672225010533621437671510440481107235060408825955644615427143348230842133705051330901011955758983850321855348988824607175561610836841710029142083919674969551099158046451457282854111979482520774887327420311057112859988481531154080961154178918522189560395043425785782226008401556121665350292729658178398707575258040014755351060333080032240010692717133273712144474192183247010955687516160021985703907819636041884326150008237382912199719897151287762006769604931351198320700854316932729550497332392785789002791467603089940931549401877406408788227069292535168591862461186269461345532162480044692905761640692436870449852508535102018091637085352686098397038844130061844719007517874884580979839882738109936389886766532514377193895199461887113038671729477760483023505465736366846852952221326990521267199306344252697538942241708915456291146068383389919390652309330443217991795620283172409156700097826902435883077107563514455952628931963470941248512097796596729139680516245377144762883346161363350442719693333487598261274022022335197942836333164290277979159267350837432112739918922786596909586768875885195154021402934132228201167702666541689736164253634613779352904116226435218663091216859294764408585716985163043725431431616068920309487651914766055434782273927177418509920892937678037457601345526033734066395671398037800451047717214924526757461152633923624296310883437695192383788234477833865153182791995629185233844077167849621672603728552522010952696689145542904180653411627328852312955650360768749688505729018041307983818221598052337618761281382593519583031177404834831794094519577828923456553197263853890023478846900653957471122275381861954780652384689202424175672847647792234666273698153841304105905965123610705812855641702087183468940919510960302899190991569777018385602511054154863167738023190155235789801468374165904351599565495191500738739125651375676349081111426108790069148461451496848561321499000332315851861229843590628208698406740427116008125478402780008283031194355018059397595413846431466666289831990001949133446418553108274622163215123587370141135357105101184776210128187677192469482715709853048778080478320098878412245591413662492891804310635614418736169506306140017010128185373552519033609447679665821933493354677370892046842591112763626112934142517671343251408725894811059377327053621426283088127525354235805574927854887691667205581920961069320247762872770324817596953467893903900079004980698109530354108592510053784655481626812872593572468098847213179339093194593557438410365594956104006211060264095212409674812056412145301026542859358508838305955846295138096362211352573316053575008274660404157766808437020004470763749774295894065033075760274914055418852154543582306048743263739713058764139215858059690806528718270608607359222929891424032973741024464064446049851583617314391531008298424848349880766535448413722011453032940748497225268582892397416964613965449015038130399366613785279622027993861364537609651730852682875597236965434051958124232923396414393466122782850606395795795683484044122544019067529359741102223398102194824143876936508661222366020061250526757675900090198904999206159127183670068231543299300610699393375040945724780017520767577761018680258740089812440299193907517180841293362313403070702706528808871835305840784777431533527025321599032637767655287668659066771870662468108490732591781052561012893884749587425829293968884194148826951721237317688920305328599210263030485669864375022815990534218734245485141954790565482523349847357652110861995950103135399195501892687704513719202256961831432151860049695556135187173668263329632146568790659084788025469534557329094136250511016391247637926760517221457826061424842386943923297531650124677135019621215049277654989730683734106874004387628472616513908241326702299500716312841448629349094568219232909803276478024110881241052731738863038294475256269208902077675582705465492431653547454727717704206635250315557506916775869822595305125362177413387119921528996022034212693017087377212617909283172412820976835597912177141359667953019008138554401415444198962110685465615062408916816751469079445185136476623776497801673544995489440463772223158961651804251842213495580335684615966973986807035494193176657159853721562712518435368476986973487048591402103266970418308565467760482305106569669927330305346964542555185677199291848451191149971021107692519278163570463408580260082412716662471419870891889194477554120789859890650997267053139627337923602588930794797148745409272558089422953897801276162103302809416250945879167867399207578529588695652077538400804974695059492213641651731468590564011880968791731212407037996011405573403405757197603100111577890486623520991871374020550966714435500796466760621866474881546593228131141681786738097106727984132687934566278668165915106737132249064828200105411549803606223779607422406010236169349010159023459439975429877648166397273781676770407874935265950612563976103419521585400092653351987142901074283044905241547190723029090323103869687458059291506044524933354747835193250336409840763707560539947405416839269212441358565748154941542691405192708834562513420095998449090633092584712145437816983789817810397104762650418477992487002306011436473788860397108924924899773907596037033287474098053230373033229680492100883135082749111683259768868182892599865657052736361397370189406962310130912361175113001989109866727924979475358524687317918450922592043126595960941890991764254333345832450019056427993483854990713387359827643340502618948240996032294547221783561471030010970924979944286158362844439854400253980950200622856118792775732898531775410106352201490561921980613262520630264839970772567244404747828498724160283302284812615029343063375338830639435882548894287147642951903358524472022128088797978265085041583924231740521116995111557612264124978115239581220617537576109679515211959286138226186235498015819912341253457006430828641695497864749843044273916880853252904563193990078102609746879164804406957187972031205973031737587670233131857279053188014161557014082798618895197135127769569251548300896572520049303414800310283904967114932501038492953312131089959891666616648893070903649337287469291467736305524412673087554858015945892526823658426522554376658761014247843481668942329608379235168964348919679965342064521834661797708342755164624282761565453419456643685774773414266670848395193332358934530165696686981564274772621032099739390856695664949097631704378563378464145053454531832324908356846160056044245316053129812451733039450336794005545453974990618613994565459715027960179237886818588329790772245137630718977478260305449754520395733023950551163518324139272504660774261729413765515087666238784936944874505537877757752922440677185274221984569911633772177492858683703260320538713942542691158069047644064177290870258260132880968841386995420386581150695668749620446493650409699383134603121027005623494091297949784918653328330071408148894079777205529195182920954795986966558116790464390045642695049858669869711587836924664756854764526537467617718262242299178016499789616521366445959507714637687286885674851745769919315438258099081420897229487090791455527546109473223534171148810575899592617517232070724547081652295722815269188685782751075381075209118466851146674212880340392942271587726018745194684437805983624599904074163367887748695458804299020001499089735659079797454183228403492848051557786242260096409551234908943748242048175945155606753836895106615776007682333214621950296551867507704974038587540958854936128658319815001480702236191865780300019900165262670884399673320610845296295065126922499680313950342588711108159486526879362563445675701251849509757910355843652722751813356414221025984612586787877542318900616845135822318768318557406675639578040791130674351424714674765956365861687043200742506354406138178230874830325597642565501513113147156925753357651515286158494655485328250626859358499078604563695487259658832856067169227201654887531720946262618253180153254542298623171485270533320811534080702280766303816104080259588016261179533353902942997142029887583830647475026956431209882453250759900839450096920017764468081249718460254538010331200235455163934521810353956639006335596962896149363716622962615078286696557019195038532451489853088313743813449671241440202378049740821486588494871317803713313199761251994211786789164017474102087330645086640686063957735466760976583058311180315168167144020173921931136347726692034545759744202641760470532089121059765440405790929898951365952177191600766977266115137895543287037758181800769712173228101124412425301876139104941383712925624026064171270311589181488685403791762222886213049186530322562232555431046034870838878539639716472240116975454806890093247806597017226678783091746588926741033966972941885735590050371658836414954581825050134560497004579914353470968413527255881228305562335975336670982873224985742392204707108625950035997846318405477753712712240870633702320168249722657051684927848586431254077468078118095758218181333429606292919710115688397049910904890800093841545903804731273552508893797461008949065496206270655587722332320209249425064050254904932478707444725079211653609417113025065571374618792396168583968916090165338234836919611423464048887772275148556217835906907814149771042023787722238729154094382476190708249400494594939019242727929372116310485846223970883226080220422049667250231337068410558807114797346245639275755321645148909694601917182874202537945162537594940376205471869006394742809082546496389795992945735541737760102574251409819047203745088929355274366608858177731989909219951893080970847585581353662861750643004009346287222674884109174443935512359691774464392140583328635824525929477995351001621487833530777178436879309757441730630257765153457449872999922104797968977409848955906308135687699561596139359045208654221639978715944540185258548476117676508217106934307271924095128908327944774824202474595410233681312802719907947705524055644301054429169876546314324777463009257913844787800622746744694116114028542196938381185191269228471897336122764818029419196501213850265299146347527719917280719547652836092435443985514595979019835384125212569790469686139291316173810316693090029724456603377947830295223533645642967926649641122686002279669253356670553012670303007420238477514575452583802086285409564221479732736793169298278273355686736219906267294750097981325015665536843811499472283546654836986149586989419893687778736681910125958620970143441455920809469701700480849977981324656227152434234692242916238471680377661874134456207950322484762430224203101111184121385549677923395047589037268377084598186547054334916089948093670825869522686214682953076342544177569196580658450836944233102290872188093806466120130250413254339436953129460346614518579735370741786011932519166366538220568296220734440888669968936860126211596142531844320533769840841704265863036854042591617426370061040321311832051083858487672417636597156247347493918881319478065783047806710745298807693499916054835174355723862568156214691730154142433506232191239943859387422364261336448221536757145979527249454655266736692417698907747869813225597588380026817145093198603871159576469114789790586711868472179977374856708320321367828207922321126723927539591556393711126101734332564425150696529150088227689963274022825685626408592741904551706905548333285816113764956453821653691213176889211575746298811274015365218698875833961771819016313831561177801819696084630320725833644397579483870872534519258930881980400209116115399510091475721385120181427586529460362799125994473062990334526742569517166778810676472022871100132584084857168957113383853134782361188157578981471535547058280550554743168657476587710103516713966390620119447795072955136175283717899432170298423385666428305472018662236640187396739315907348656093892915321123833983290059299092714290739605009909751430606984311469267455610579720265262848396537894785629388304083044578206177268264754214498116868578426699792499847169202698243263669878648712963972995188838366331400156572892025361770994709062520619496222002997313280178048111255782391375986636748110341014988947202588608165012429825189065195527770272551585762100496334929951404761562336232323463871947478550138068702921245407273498714113029540538663409020887570480750042328835961779488332983705723101270197431526724528334530893693210552158601987671550437479200704399737723677439231350091664354635282380824180470077891617812473559952023716827780687250779564714454686654675399017759545588212016549993132344480999661101259836322066250596326086642387938585174129452513739528074915639494363306735405823732035498830376381236323700192496458141709247504068978386813592334543288586181244248591308399983677862363469986887262874544402318303016356240493197303089501420974786750640635832646817884242360389435673751761099624385421868548698637834781470252567530115381496845809197433399166239126122052601328569646667894664823382020120922765590716144308693198229891714118633381085617326812339119294491025622830108763757567858575257216201932220251410452633651362422153821634999258136282602994889823865216893967861082251243171678403530678071386003824942554429388712521682301120958132591737909728863233294391961607612421783184102926255872547116894655719532484552278003963203500612802930322179878782932980082076581161429311649312398313484004163066829679598253014744474090883184294007018551664306358873938186697613265792537237680480249601556928129101997542829525849132010776495644922095590128342806145507197025278643491181269083907028621558545634468665704674309450920749446743215924473304052399418286832578327934750527622467079641387766173809631230817554300936209050679000987978877851845256165143319545601958873107630012070915787920563782527171087700789472593955108347372183028622433538325568176180037673953743418405391888524877562929589620289282753886349347705412175076321917589244398008282633505134405616735518931595854096617553631718692346854534087332940546418208069162638592260518173935248784373481450236910600590331742884745506520214410570309983898602879246635795478862647848854950541523973024155420711822464058057623315961321671737413267522604738653865651477901266063000585757989246594103351717569239931917320800622004885864058394478868297728754895652851691514243011294178152543107130719371991741927859078120104668564198036194351221208495240264911692426165267796495292977111333099947893782072001337767126600699253157669149995385118850603975512880191641454266910044821457593588349371385384833636185717316749805078177277086432852759607523805378991311928881354702277372955471168776855082677491188105204068317830184559027303237381696709860558831045037303335893244265215268805277957552283520101794937389825561331685868312963862090361157220191110947614426166906524658544048655662064688215152916129094204805159613514229858884969392626936354668408254099500066414047803237618872716239034886632510888381219765279578951312479015064502966491603908025017123622837597615502823803597740357806930063989661144893976271218884966865915793044804693251959983776640110985747743724054160418221398004222201519679503962170711005884768354991802031459887608003690349144837803687980304252643751289472447228655449731981463912421161941960708378132576132580521789808879033210278954255565052662959835439742347110135942230955317797463067991927578016299749224549491888840642948782041432583945189929422040946298273875867170704798660251379604410351065148774988555789073488635681681319169709564080685695163456191375478293178426449138343173155227632175903228944761074485412526160833929486378275635474470692696230954539981064692356168920718674021098795014614295446016709843099073574326255783852246609032142161922075917667404352863422829928600444624011837223488914127856363527315748726577859150734284036118155761682932974088630579094052414019979458335167349907562998391458915788803741465512881596216097944515733930068538966678886770694430123458216920065214183908658241865752436318723161339116025784940296563431196660790849169933433681556444575051261279587833897953326173109479432428876183906737214833292068929524902393590973589552126050148726966814966719035657019253045152035091781495611003801288456554068971079169188217000892500061660390578749765400301951113853466646765833415039764048961656712092332671974090623471653563101245106442718587788898012535722146081714230378703587897925061875488097300951248440040562630596527515050976746637264860902051927785889834829187975814308026139447866295609465045033045709287742840697872879357582387601098668634343599122829092697193046124527271394333669866403786980317532976724427821780921892243508385683266810335474925578640772286732388108835836483326295186943132057167608767982533697392842381711509620074511362203894274598778702703105661155744486447043601651078555567663834799481627280151217198295401896719030930557650166162433047551457864875435139713778086389409511881339325518970236261772838500954715852296963816178844566234225898274845867565655868867491489922786416610560144867300372468778730878893674474246118730301781006353563548903781831010507168655014296378732348219750703942820999063029158666202789514736036184217331484007070795466480754103216313267012465325942673577188338386112857513160752253603309344000560023702238386686809585324100869415675554865267559763161967222523141946784646395652084843321536620276991154959294333321321855375794936368567576915642569057459448432314965734342013304737940412581769201767695191481132151418147990137928149526968458220686714868170795271724071560283417184598880513467885520768088647316872102227078568254773915842264853040339340148421206483011968434014201975374031588790515286970136351697597876952879505822500810824692740102764285529870156509389207251664443203110932809152843892938154676109371519769152072647858317786281824869425535255278245485011314541886432337457280265865631122982705491016491501189627563401982638616471319449427864446661225934736200968642647514058258101154126058713169839645798426606469769499049327876786500990626475695325238324516363082716935386166603149251621877877255206226514719361330367267813260884625630491561679390266751631513530907926069403649903171946698381695295015711465923063721641409333585545267337397420693143944280156052238668026807522128204224061546506686065949631320306196814625250470798605122061673373349073921645314331830294880972820225959579859560084280916967660545165995851900318963126726768044454305232628767238005519794596679955852690275707760292398154573367353309180636980276965950986639748786056001362993891717530456387502407730240173522737419655058147854818573476037502611467799973989379644411363317670015462093354179132751052853736404561309265987734464773905047099251067764212390264087324138342459945642738148332903088372622683161499866861339179186240278560528419286503626509931093330001914382339158212175047888961642790523073728986141235371548016552912685109108641541397578070246536970976484220292248163379189477225145811228366188458999686338998871587127496851494764258266942534412062471702190115058238695782872223905430597114591381483898585382274856110434498724827772501415712222957055177448586774510974705625612604503267695447758663721365065772946541075035249713648588640682026326317313768851790245378533114140747751446742997753348605061588074315612963887533033190547849812039338665556255434174509313618379066266284575254444954254232902830201875300193014352583709544918816593395756199572047614691690291766071615653720540129075776282787049486723414793923803103571009903673013299017013329108299282005544098598482643568079918809826166522758806020631261639710580916748691411411816283309303084482254628955087610016150144747035590905261901860348377993231046041955570045329448266134793077087599732308229628030223048353423829418298671976388385174509922978580530768991283671675191127551622620120991193865208723233367705400062299302390872889786748082967731838291949396936404887916777077043642237198322237812341681892390255971440266131907540163460554956994230519440614234203367129039635178420725587177046966954751126882825604135819839639815704512527790269723673272257668073824871965615329200233699950070744958603354818912909940628649110573869597209575645028276526558125906524453132301303629801231700680021433658865153991702405692790064767812689178237333464411758392726646730654894566348211431285244089306222898580668826921115219290586172609732673221518271922496369897828207602258876202586874307396546401689279657990839654935843955971249411592500127909208135065229310950921284460092826503488533610617428106205948488449295896096949564743221378584761234242383803037844133775052605730768683482378115038968408680370338004688105820542710434229003419232295685405038711479660056300467638565055733518554810610424722145378518729166436782167940443835582520996182468459915041215454362174592946635422088052384072441954095788247544651244593307295986137052994476611783427652944349516668307554482879459874026390896349312455655786053535841658747430908773436171559758401061373852663028693264472306817022945205530498697639259830230445319853411708581540178149331631603067223429765167262368617573693762241248663487820416955411368650088446914238612158211084399957902060835777437358826580481830379725247497013567085336338549264078905684620658717979164985753219685250429609616887331203469052287368553563414730948537230902931893891917320291860862186810526346854880297122233901783317427052969962382595283256094320832965702035281242222757068728113790672579518562578375074801161150321806588982201955202751748831816305774135803271322235364029758989005163083111424818459178150094636263071581493831216227324500913476672420941351709431910441688534468224414843884976243398227587518423727930868430313766679867265696474168423988506575321421122146382856690193229819491567259692413684630010292911246091638008777933687385152245412907228294470703611897555471916200173257014200604967220498078175638784837199343556013618047571439916637751099189725120163847425164707941471332375795085295540183134243290729987214348795263308328549353227265962159716636217832972161079947809545132111953441909074733458356327857545045987078954533504774615126483930773080415603063927049830897454650795922951802266878781773894251947807101132381910060312323673586839674627843342122459202135427357408476187975423193570185203817894429586268310422791729402561326092398025352302601037930534436331421131667965867678216256649594853737543484429544769317768252117960532005212686712063712941420602673685769292630969661338093073315720096715161623437628321670263158268886682097983974506274427971111268409261097039628525675556258890116181886980743889444317793011910906798413963696069425226507587052726300201193560103228358523429476754953554461656035251350597644671583784748171211695097413056575046153265995201241098288870615677937245829031251310162744590956080883622809531142055861830665612778647497524346159474718336204956448380579315668966255452013115038748499921738887971890481143510999706344599059183044253301039136714211654516255305133737424880440813019453105620773540065062530344875107541256036242841928773873146032364879742295732014404589528548896612307205456294924304637161326892398959990358817401222204858812485398399177329282841397611905077279749308365910621325386669448211828776904805117459020215035451761613792421632779282500910719368654365511496807813976408363491971113598786210392422316369044324635160781874597985836629148027825253730808565399183531994636621288772266171003081500824069283452719324717121072706171989468009792598850288956418248188638419678805376953796409206957840810351271409438112259583141250301177829079789092792234535089771142826916993937759046791158773697611560544887676065316228812207331845853235457606387286494893416232316377437643510038810788408971979618169826075414116970031277251323215231288928780817506562818867527781292276959452375878422103969440379711961958103905747198581579182600542992189698681318124073479601592049185195876116927171046509128190240418270903193363701912963278870446871160660529844156577165006505899193369331256647075534010184209166085088414249387126030772411679841821467041202832639104935126841169849342854162381722926358138322957190290055389925372059173149105446014049823637953233389380564091850416729239541293644543962888303333859250655726827646467711308714972193127955999949872304665766832720733238415285769578341287070652587749442554431665710731120062112084923205139390113699285304066625140274799175395259340040123544358700118919321049084093753681990390685416512923218363383245347893047441810822766281509112456709719834392610890776301834083204851919378473075761059654696808966714928270129509735244286781206761500617701755303036435531074356797836472417818598298184014474596811650919435264443694471324038315994569582734425580420207630368581569897315534793760227581550524100757591489109034578445198873846971962903628949104999577741454264280797021972096445492552580980571713658552116317283853388523898429833181801113700049121042922248612744466236133956802096457502950726053425216533106854205446678803803660292744994944450683826854505531091237350363071962574826126951659282427964873007003928975262152800610553509690851625114933625812018191278049671403710240175466151923946387308422316911459174402900500278062285112067448368240291088439121589290013525017823681373272593702892609304878735476996602170737360957311964035854037320041318319532254703553070292689096520475933511197349886297563301805358758168184664072112050770775702157840009193501503030995455170275871094539373849252641477212958360750893663468580670567019747492753683472382425512175280234711821040836405310223714506560331136968791273614318446657461469438155830798248903241823403140337212705850108501404130639812976269663861982213891293064331092815137301527411457893645297118918847694374262817887090437770126738859502655375535015914025356126476176321259171829448902420963572634015687003196869785548612699995138175968686853160652835108816957159829582575151145657235325885659539184994655521054661056371024371767610434372226599683294623531901561352028938312348407563436647360328878195094462169918803618879725538631318771923145108779384417046705544130591208946736207600758146346450120442058519298906134710261448396901984729572410201738704012756625638627022714362457626480843340490737157287542152523376404277022288812430748599960544043027252770428500646319478551874583861628505047274893032719046207465366995327671102254378989731807585125083807736037533174992849532798124303829515718120307017224702734210742623857366925768677287717791105737866375718297723476061447429798800041084234583055922156591103106928100443295993299851998481744769560141875661737912336389839202546263885966774015979143366148591239336052291888729619728493639322773626488546554993853994159673123275144836469671161231834397533615110464894134332981781192624859252261712790725839356320991647559102416861089874152240442913573720502341289759750046638500657573793863385498357182312476486742506934539763815997529000449485463275911475124982298856654269584638252742916390072958288856942837370203435612658399933606031725404202656905235369690031498795069117787832635410864442748551008085364302997843737998506646796223530118450095864398033281461526492938413269274916490546057652109742478531269789970847601283493260004989839026931968557965401475512371982864769421434153416804940239238400616704518761760990655930811848356672003593261419565586989941823171089234618250618106990884251712682390608941366792546383206058748004946960401878384805107083372598381193390026197395328605146020059538462384992424078268918452954899815102435596137690142561501752381818208252283196093069472964475160629584584283726373144672722906012900741482140145521637249743569834396596007304221348596518388453608789273462888597836432320075256213089646611691472364749560329083223461323793581331723932231181781363931568639069724070707282921470878520352501393287649145469250021512115941446078261719841513408895472221887718580697585693146404578785460727259356339740910701893063106161161663109375797552795637809072280424207386609086450478709948802011953895506733539609247814119339697381410527641629971286015195676306119921665472383362810272091369146201461686150033743056191706076040833451294859777401561836121222489648945397726866708422165482320416049449094994227429500679364537197060353738027479592421327443079393370353154454767943941096929099312186047181011552177329776519293991029106503580020817942449887200269532154781755873528258925487570324295698917155906012403193041705507042872796368872208716260899501733369673356594901044564684262120129647361906344765374931448846410913118937368748010075904049018238296932166517852935817653889000520019509070100519980555488248150887416511814184055711912089570493601891653812667926014190072377760721449922449204123070150152585200691045668737174497454691927903988818723042378040642728935269908127324394416033973439363228561645245717076966948435707377691446785096953218809629076104928153569073405492467428285898600776507691305905153797551598740247582223304987990418262745919249400563260440675087836778388550316556012290210313329341196344673997319408767803052606655541743871240818601532491181959754286578198749779773090180922117204337315350498251335982855521510033559265701933660795428191600899214640908930259262556219929080029809396442885517763524040095473416269745930734722057799496945693357694183748518250482728953194182800824878196670933148067059642960137655746435733968914310394478819622291009306038520015992269593298595999479793136484104079362819938521850673754190966249495179810283763238401805192919562189882436383962235042137862545633914576185394974619896358456026603149130726855528280251631701614927196685010510751407469409504486226922559531220501171807010282514423110765053776570971702906680184183492442460650520414500335549712328885456371072838565178581062394669647318407589463678587019826592675273551994241559370435626999968182036833689321396806691070301379174805955518856999107814776923101021173220106783848941528558745956975832350040537552536665027467638791510365408293046382456164902551704961146534643864620214953058370344072661172229767129545035930372997601827056879737204169358089019842526077713555747594307835445791958719340231633981945250964117152726577750390938411010693837334479597541842082592198394491348237739761125703886191286043062325011848870125444331226041962273654645321277779416683510477384272208163018543250370609992781137291685101551199163321107357286213307095253566500139933998900108438319805692634696927840753543440309993632041484651950593443175391591639854679606647750726038645935455895390364832753350952446838987904837179194284455001415815936243830877652924539411334498685683473265266606227712228813592265441870705257011074218683939542570656392942194248834699069927521448301936136161158384403583576134583793791643812872385714620287505185253119683326012086457565939808737291021303201869465559690237502903456891823902427906895322392569591226987575336203613897658048139053193182503877810510796594130146888003259928511510355657472673942219402020825073186767172232416994084771717410335486487755316513688773040802512473927398147864973126116836743660552384436339437312853684032143937211967983257899022597739366645700404125924994139728169396893473159689884767201768245012556699473585920355676966246111655238801847681422945798476997940225875860133064674926844388474944003177225617666896176344824903350996725017046261012104520175340171910554499432042941671026874749963155328786081108681111881665460592414248507612109550095867569898860586161560374433185093925031802005925282398750099409381518212101823178992854551873808867393729923397088812491664004252689032993920648418492710065782349147413704041493960861083688079953677549728185789846272366298424785460437728037061336329593361004573236141258330271033808986313447952807121445201998095504871527242123346669487769670349019867581398056548442713429664408724164465986627739228335629267417640454316069506666195460843924000827393666210255521552853217443837614226790035377525528990587404398752984301210128711594902640869617261643145004068512476441768907844511386712623491954683739709434299090758483298413618480912597590075481896239856329428058736063100943779278552779529053931963826528129992537382026485551145205404172244133612294849537501583589667409730832445960181633890047434442741523191724354182160590971121755073126530642372389954262839477731429073647887755515658714744751480885315122288456461753978222486737962466932398290254775597045509762390191862581673669272180900532672563775554682207320815438288268025411332456452955233875241790441808461071715948856263817362619811594234827802036417650300327502143870044993457009042320298040909435950189208510150154181542401647403149999402671612074729457116135198428990418669381142001353220802650654240889108890941396273263819864961509431935292957317389495039154798231544021082292989979724396060365070502686960801818836294495956512577110350514184114706141928211902021216234281471786440693802909667375715020278777910658546574030278002078115782138817288403181067512616578834481800344575187545403486665933200839799465749135200728481347427128161352104204499953933258853797759060532173130659841243096923813254262841880603299096211231126252062349711872422976010525020826973523913469585989602216819291475176754847891143250018010885241939720044046141049853948227050964429282085353665322101128436111706401531346357929271839062345509181269647385019090457930503908348638634028996659231615551384563962325108774669436197316258609715619999532492777904974187234141725483003530234344634047319782745091786011064153665044310734020037631636065798318180511232464085775682993652399936370504199299995532138287154141247322081740217942138337849349611128757603142849146821018435962371783973769749962212230067433260208936085578391550776175986757089823873729037108388304725500295544513984935172559095038191632051444938458632646373052250631045276207210037471715745054484260569253901066697098860715990222067997121354583832649307274991086675312063414061680737459397860777554853223996775155246969789887748596421657901006465291294377349927450824178711808379713689032758235840304473485456289918990574928279945075686474627660837539240748258284815630311847439985111781497004192640410428542361734237000211927424834756406627584270371914088288836907049776104744000566803817909379929099833402489419742494527188515651652268124600575271694710225677457381205613640138235382633895579179142400852598009548078344311192309533678067822731082752724695533067923902476389976815087183704044091980503642105744395703428813384291383593327610777368492171242335303662318758820425021937900467978508276481566778129652824319567112825778397872347617130311130116517826686258222672681855253574068704709498130877548909797981383540769532197682905865962180405606993093921037386774842093711253373023342110673059166351979605754822543556067554220436347563017597365834370099111682700519975632233220232659195263575341696098434815781725244984356301876038316306383387090919089135032939417774510156659816539577157203605082486497390634379663968403218104018951104111408849939883889244437813963095909614069635136554783285149566711080094260899679162227394946003376303371257337499276096368737276219204625826845474639440350736967834222043108276359270074762261876198037788308572657774698464595463854123816397921577759417939478054754321692935479252861842926146077819657290789931654390066761599863034195156959150778486460324256316743989739531645165418846119490718664106213697566654172506983996513780665651709495627496741654075921078905067833730077318639541279878606068452504425980610867211369834137700657878225151331981004376934037867921915986317343396005814120095501441891586800918808215021060348295156065054454601679948257711193895270260941755712026504755561575149259963599215679985089885314642955886232013430428085138755260765919184448258091781021693370423699585765216252638955069688295022339765445082633289136685389376337716416270766511982507510915464449666506584453211358078551705403640348591285413118285888134720180869773148796888136487977403584353812816306083125494394178300027405658432290475682266828215304509468908841998119735409368789917644647331190456955163529602247399585468930523953180840425709515724908619938482658734049702522014066157433609267983942335852518206626088228398098893883701771244245991645812247880987254710676706047986038897939449271661135487478635828997058506965169330414155061321226504443762896362900318416755791117342966457178501098946872974695967262552508316562830566068438422400629199952691409426803864142587227099976543832648352756265115240256237279635957565078772305447889714659363912961354088113698072967628113678976869655490517662158477389084860570560302950460796588430154079885507044249195803163098684651843836890804619682852390863101263438699099206711362192766343428300483460205146760844351965247245022101507617700383039144683698078862075385602749865539693674302506642537225412762705144046457335137611556420242158648755240053408414040998945965769617603323549108833510787981566769631482083202512671253336064490850300248142206347283142625033142455147735815718643378458476970496037279630068358557713931503750600211994224553808244247606390136109202313383325959202460310369539130620656601929727632774565967750129508946772748466323847777774479919408693372543873330683407977265686725617012186585156696034586047134992118869999419084528326905339786204227819224287151537782648655881179706621881088656646994531229052256160220243325602407005425509880107621982208579052579636127887355103654366226749630741568943796556696519600280754065751028952866843012129600798273354299152315739345025889235566610094639091388444876794570919416608985069694140953360176018727528283276759774549508056029497671219432908921478337613898422020086222607034180933876709898168560673624853960985535500812744359399755127370080364000442430029069236855612856145367664315916938172575001316662749117119268550765219559795124401062394556102928706855516223788475297444158065179872067130136023315193028987229515154238927012262222168868450476198593431490033266045350986773240873153299805163261793358251578191644734588585053407129759844993849088928386799055806245618707690449416230714603560617566231282855830186054307394735890377648129925212185942559988023047038270004745535733507300397366515491443589332899268174804816176419947718286178536296142642085760324744149863351379097264130794908142755245799842219758713319961367339606481808179432537986584609838099386898004419932242520970762458435222820201728304771033063794156003745781251194077307993159665839309473004535583567115643204658158139295579277468236374301131483368732302798381939610114509054649691825722519545283022525416259412578842720921596176614584737835204372449182158660355800189200133650660707935178080514700979527509767845254586845055920259927255622092063589927790754619567843755510191410666575892042151870652698468486523628207070907073723541971681080304290107637918519693165826236000440694182860641015769893537583926352407583942229882410531795368459719560653329661818876170257480714329693371226993940994223771053225949675217335107165599829044161297667505482181391665660189060299174166852891283533663580022452859736151914207604586971300232807641230679064559903095033630586879893969782492374605559843703081879580616475795251073897041961114765978481594308277663601229108418526526419417431239387338655936535817647162788143181614275714344503609454220531829009989729193550537511227063744646909237051499978770586509552059499763057842339092904569390230030596705593932375862003992100337595954533365456911236933696219530433426055989992435664741105492639505115826418633247404149202131438039094252204296970416623295702643563537284806900445629890014895718354627271638029193733518154412870797884128386587960412744306158888274410742978519224231702356735403688457858818151285895532531623097938593137970768740702397186213723464922953074193073202942745104311330152534427534757561753553604152900139794769948486619735725525723093392403651356726297262233221097573597850154332758326477706430507771778216394772762874527950625486731403639968847660687398512197606902451664097305011858412519990010992751456493719049319949121890285892002036010128675679325864668200374746965949705897209693848027211759371914133294571106728481175376999426427968065092670548913333022885080676974842715172603024900940685462877535551622837427980419454367524775334572494189272359180156806177549600679227408943985044609196551371052497178456783185928038457825905607316856846961629421070500867374102473561663516081976820025897028866982468449011550297570925242587730989377344232392011476671158417594374144231537671065128702085578700635690853018951859809216142742540491819375373037931998233578424225928565265624135010268813556968402157168474362081109222479876746580196526761385599304411167043802947481070297055893726383287444696985493151944293661560667904908669972356577900815091886807100571240953205144118562086621607264308166409239616956541744776322192467288775549630564566005292163347923048242008056583648982652885702505548774590077721183629331672959525976538222049641341168370844129003594155672624852398078249263527450671152882766833427007490488898913717208511641078689259071404623144219608722825226322320993126594111535147878144477838602260732821203675564341162182825384556448075226237686185676690180332273271721816603183903486633040504962978794899923182263885006544960644145604608736179127606620394349251593528245463979438750648988116454252469559341149051153455383815513818557163079331862090807557171251746674613215814928608232103921991542712028933897758126831288082296944255909534969257327247914037947641423171747168140544398556882960023068945115331534933539537400024677328801132905360200946641562810573565558157844255641076120593515256427571751390105412074009683179311697738744685205777008640725650832375106504553664352214482605031417108079217369045298960399881451289567504234196942263900067918932786548629185193608047472567062656882846891058104146410546984802842425683856036714229067245395210389663965940079715661493353985425817831035802644932080700410025580776397399139348218304949977499436571603993085607683029345323115986872821766516943866392352008204111622637001368631115960580246216747663015633832566044709417418208449912638578205891128047198246174526868967659216968906360056398716236946078916731385338814159375803225204976845240546022096145446875538716583922418775851172633731694086699174739456636457191786221662811967255995515854882079133519224421198500466059000180390811470740857122889764669558814001171352167174940913774377028445991686054166006626899568378486091519912749464321960150595405246298090003477757226804612063411122057617404818327659026344205317712207704310511710880102436623415691224479698544417969877115571292046306969481206160004866273843118534415549968711576327012482421531695527574640398014029552034982754489415148176575300376197395931893782099449176496305343324451544994376082850483677051700195565856583693215527795509716575406232432180161227915420819141094131782378757540206672495524548230704683132911962192648865387412921128802139805527052655715771886853005647808992419749671436328367936004019823712915638906774394036775984417304194908869437904267420073504641246534037362044035655654990882527287985514303010485271988715303364505415108795577007268509241004516578450191729499326786381844284201067163773538354150570549925469521547261729465363555964691433025126433912518363995110458009776283819099443710075774777497754945304011266817297198209966282663276941327760634824095411339295807449811639168117576327104659232957947848101030839185250964116248080942674346839180462112638932019224783270015505796872358847302708198522452220099879387445838751626630587386652700332405221662176316769035654378984554023259201344887943426435116525934179529994249803020099687780491304692312610648963322373300125263908052317297030613672068149061014740842447668108501271409754767309952987652629021479691353337704925608043041031574121762772243566382452003088279179649510004121548334064655691208511511174338783583521773403869616707771056082815522746987328434110530424004585908819586797307927607387648211463666020661657626209769634634200170325655704526015350439582953527487828135513475857483814324742805533268002081040813193741522255346525662298621858893006975214567242839174879363675464738308592554789529877671040489502339366247284576489646257166737283608769640642032690327506546277295617659596485418534331306609639048269904830977718466809731474743609480243755681427675027457360469013814853882713500388894025836605104840534115893785529912301838693208082028717657598340810638821117813372127612034610796184119952239944665528177464927585758881543477861599746600693636894322899252840059884204923985905951679186977368688885907297089402951303472150514937631833566325716456560950279437736584776822277929797001995416700961452973608792723154381098740983723930277220073605170497795861782639361133578076427199193026045673648153394362765545252992705321578402043586223660610960166572992771803999591383691176353273831098363921881515573672906980383883199449366292273588248238015656494795298243009412278148950956611345543555766227780280395699366867360891920594930728552290369899603026679523334929807067688581914781516068391385926012888648943003324608234160076532866952198502686952975176567629573488028246809890914113900574560623591248891880782628257793133345766640538260499417777602452043555517687697610324312276750349429306637955823929205060803672546625686284521715768737937669381930044300387745369119582002807797411622562418696074554238685815053029057386268881220359721741244728987926154336538069011315951374940320533892191481208364033352897151544743938453726059317009032383605196741616518772706339602018800558317655332224666811293119932044807354928131428273834529623510188486472686682623203341595542714439347815689000860691574894986869004958592187165280259369244132849439421708481023269040176517519285824574192235755957722889174052623977165052802524598193001481921860272942919529321838244012307852457505060119166189877403857477923802436851795966849081614146450499020400382693911036953673928831457435040256083015090454887738551361708468513104736720168952269571122026877164474797297349652679391909567838247722680776566207745509556163596017511794387552734912781081136520419791868133439413296533142065439941494607110832901619444115892087190270484501221003095342206070508821243948377744810876198009164644277049516021330656523906991882946502109347419655006667855353168091346871294684504118902917237469169149039279473606618126086346966165398467926359657321389746705280662630021831040591049533897045061944007294686186631230413320452213100000413807345932983776836659413637589638262774111877761628264151792676517781743675950010918768883267606187525078552781653388125860196681933461452965680091978197448924882090536211068976558627606789306116172533301473096506285429059875603040467140168623821650703460815704035018823835246511227413594231433814418255735285596117814131019354672726148415251002276931738650966416283405624805760514677655679203933072562176701226807098023267133901439413559971718361264478508657692231593217356478763542522102353459487379004805252745866671734830622019484952371095978613861539265395879760771483794943225520394177374128182342776802342328188947732656966870304847718929485691837250331734235223009427607854188547782492387878693015885254883755285051714203928864308797980166509173011156700007032818879151271689476811565351430887042488416229127540952180554465164534642911190359911978219511664898623586164517148866345350452970619515961946239832545918597139787963353204676569788828454703289362762077593355864046391952358324802457944113072923222065669860606270802662010357282991848245919616718262520390649188007910139538905022956728435659473359772873349092573162874882398434867583740768456588593317614862951532215907185542669587692164661393049749929674153466031950615277570118352477290816113478440523885109247151723329593831630297465034527120573781023661896703435484155796354970485250077604149301560760212453877765497130984153031220584409568161196760791744719335883045017150321667923049145586530491809225333044907584174330851479592804846724248424972230919855384308508644585154381720802860971752247134162105223463723966996411058603934258134031782662376997045465526926354918734833033520833656416457242387051479049760460629425142382146467417568340338786365636184470755784902020357564288446464659966470551432031067505306559364093544332512904873187813103195368404658309630260348749748313624534043128420495335840535260023923787365076757007165871958531539777504588400824929451148588117969679768877982606150875475992876065313089709656971571449094230099509168378796148615190987156110602861511478193863676127744524792627099389180542520074231564111385917932208796757184370046686363059780320372647543438143350813882482044804136958599292784388681191450605751144001873606518678799726441133443299127210060192518869734494873405885930364166802630773073008321324134284950505649714496609984812088167578336681093847160944045788858196116871250883997022527942618254302632541522822405801243032365288236026791966233531007321994610017711105693196629866552727950680819920960923134397746524563096214362875117481445372034298782245028236482718411290288279776772179477805135926724741969829014620925680511935157904190970516566009114727510960411579771239894282840912990406402158440043929783370249293051918603415127809027383129929413272019905366978118608323830614013941009761263580778911124989648185854254029232515958157415388561335877998617700299894245621556823716655479758614440418559959279237909002729403669388722268093906627936539984636221014965247104156175860351036518736677005912814326501156871086235552548349091499897757238698314833147122591827877181923734756895512663628216044708302178585775726961603890359789544526957154559328628439000709336097093987466752090404331989286900395377840268914928870336051349283025699093490845436566992820642243025187445512716724190287075948110761884382190110031506538469728396987757384216333502501748517536027910371897060910251766505665045734905505043050967059686323494914368193011073753748321925674561457428048014162485137725217887924753427702016899668275610716984785680263930806887912639557854290163128089037513409908278768725801078447509592671507561439308038285822222555971496957995011997807922645945400522264176646176894604063597473630277977422105841541923522852522339603138721517380825425492646137826271863728432401474917873263398401000282400666088072849156785139076014651642960310811367047280898582763019421897987388841923413908023372884261000464968562821573030125146295214037003258220912935344441349071532104643561581001136180390725976064568995251336453621641634765338361134565024687512868747839288235694897035117348213460731033717353244961042487678835384509170565997066020970886831879574727771271332589182250602692949141384956549868704125251581773572827357029659875407464639896839620102597124727165969413879616417698478404915972437830502928652717354720622037236590170395011790606695422466157905534367370112493820563560021199226263265457164449815578927384233314018621069710111614963023004622785407733177100952198152521225545422930018124762716829334611340876337669526450558432860368758591937830554039413776718584930604710817464861071158765005217302540102631922255906479568489960463260134807236446463820207325744079652594762569168453400690327566374887116294327177910259277902756688677039922227185223026021352609960804467816102244879228533811089845220611030622523507050237368496092355448749376385886537094366911608612604902034772711578886581625805435882172366368617202678597220965885433047035112478790511494006727997234059834872858202509932956324268617584525835610058929558816430443080331506699742010530889134911009432623588987468727903728913526797852410999328285655440633085167829212099347874017752058801843969126677588089553825287115573816592774056292464565605230732736558522689802384064886321444313103408634376024590961709648425666140836082572976853073082030893973709374864735829993561307435989348162477648888351153557450970383658687718608414070370877324538833999224243090992783243427927437720119749989618808292074120613890154962421857852401544666440917592947744366487628365166106486134471194629301299930325184958927723312483498233749741068877597818319220385935882430863455584585763880753237121898321508866497217877708477561523835029691621873956829959462505946815342251134726008409681635248552887062377168158158872257256506608607498757635085834577238961310165518751865137307490081230697297551565142223189678769755975962662780559589399940365293742061728724524747339036840679921854243837901275697459575237969907080011847465051171670807813700678150530652100705590854860829498054862097604233382496039669127957490134395405209591496773963287819740221802398547351950520052615122050307879751437687946228579688758812313725457015239547837689166434421963770243581170104510446886745545061345291132627412172820457737530259233899403685574439992241566297787920799591216916690388970887993381964001062102463323901281416139936944109494387564455227117386221614320338868799611113932779454595770905013314465223448857686740870572363673429683126273886224096013274264007213894127504690821234423364655898772282979444101383955529947215537323207799904313283375052587342716971196110372549014619012245173371827353677936813834261787587627360082740051890395227848533956702169448127999987984168627173301078780871312411644473858557469210867216311847123548686527275796403432845174377686914338156081801819666751552394755931099115807294669374734566451836200759684043031692694555541862319321387950528230521163683528698501635821307774214831932281892497580926093049101727734100220410443335650393991603904741274394868228784492433628717963307763170262735587249005473747295855223610455845895276847541171954959113687592449415926687832134307728656574412505995711035270422481629183617571100390146756328786026055497085755022867174678093239152225770738111119496611433246825275632813854092627189349695579305687186732070880812114465880135680041615337941732075534756463865652389131501166579189785210555310116826482944319408347819443568620676550544487831768367179153658198784941980543411717666355118305099048333872150163921245056553976694896792314813957755728636838013660584762848187503790421475720724758367896390812959689855780821920928115296877791044638544800810076365133265973795890175360729085167923016500650253848687346495760910665238192201679695992946320930699914950008661461502349827409480604511847737339436672149405419199712013450693118025010234327088323670741359245032230505507516570493172969647155582297650036479254192444355605158952507354110004407119120336502807698244059170070061766916206277489053422957865767453268530104036253034991238742423105612734288359350723025290323934509513507172311192315787968822839741474845724754705253575014749303889098039819691494380304656026608600064584122765610931132032245050552819338956808917850698184537777306641732285222428376033802882147786556130800334405931099703055352382460295946326197644839904735652168051282131390058846225172083727897282382369389237260253338525981243125989305910045934722254682404044545888967821678645342351383470544236128382617714793107880589780959418781386966171405630995873116418512319632894232343054441060214414205967277120105615133732586282243210283672846213760009064437018749036305315632126262611122111229315058043801910016567376277153429693205966298816090312610052493716326980424294889435211003277418213071274562262693422416075235601187193768793803836937317906665893374192194612569953280481058224685468295135596428955616735019249071723827705139347432472091639941984317049570402059708837820906615556581045888363828209858454388916342977712638336785752919103918220863417362067605023210241450168053587849247788285441200180130316659513552851368711584326498755893220384586749621737726963363989638848649704692462254375262895871401415404345445703209867369734417275109019456471270260691742318720598091824994509538855601452072562216695320518460539002590342489381480043912813674814141357595494678809038845986416291896231122516287714259828542882630284313057976916846995809169441807374831002960374736001398660262397866000833928222713793944019846111798528196253940220667153720439820335339813405721014123417107185110967123903919237351438389223368000641478222527818167766954708551264433033623628640761538590577603206191513544231983367568768149356685959036475735215626834363356889425777410757047832770955219269373157920201491553762895722497790510021689075048897355943736115823024239240013928498960523398848508393082421180199434083281243164515026524226283654011767219432966000646408857771886109314106569392990832447896803661369610352436537350494318683234868972684950927622206926552055847393654554884986169127159585184013807497414326436056841383298830863794594472870394477332500912899715363369696957583727458968294980081812468314729725664389741382473182412476192177103604410671725269502010848284268992573598346105529272777043229771855297341452332810315323023836816757466292205518549097068124623429224452574192247466798254458473261293772198237895304198537137718934600476712542551823146740227009855522444354990352304939108763881942056738790613220097996508829327535518494384591729114199980447193817741943882677588713981309484832876215939673420586605281798095185595553319066621189719744180843483590184673974718709480930284781157936984848389835159566556235272221610697474333151525238629053010689550023350727200462751603386633494318105544640498939603467684981894074223645363158148292491808595601106109881667057714258491039045249014407159805275897726546235050051109318417244568069419959678000385639943574698735406898747874060734440049501615888032019286618002859251040917472624418772332367890228920716302074556168123697864603874111182705214295970722469861848265619019464288589806037618552165835631736514219654818288016272014568018270846997723899693471636569384528183480697526447524278930902524276731072763083420327348804768907476037444317022720826103089911252445132651413110645556009462137076170674874138805976930991258688874011942387035499524056951121596816413722210059866175616974557524750489950913306469212422392819924119526354106738800507896138127882634641223701585344313730201317756754593447728346759796416765600967190039440539456896981334682134144919972321001741707066594119788312115943094578710021737717288436032073706933095781388127354741217800930163724196172346563605441350415856262396246256574562385527279415284857029910131958371995029904483714095913038944464356309087722374516941101849397161344949265060380183948022549762449533274751696922430853206812808177557381541199165906596576006528856848721156184411182517840131613706731043939963541154656615875558954027916577069007481379327848934034704376540777742549750232149286602490198835960681884077584670425614721945154685377277644718879491202350863559735242259786002351657892590792711352155622897910861894894526408370514518868735525755670280244426542391326606877911844022145140843413915278061649332662069214114689823628440673653437506128758015478209767001534521187909310991941269862296484880823473236709690256628820841526918764860521712892551333558298814607559840357915316735518003983762214121278962757131837349596567100198386588454890946431750769594640435974038881967896657974134293703211674211982616146341145517318449423052291048973975255056936173226352734121538154770561506094929934844599618410408906112300148141647825886674310468238486408818424423062489775521314153736174141977588771531309281175351878342223127108746326059116012970083670286247421674021154383930199191295076082280364156569734047273077197499446052515765675233417045674607654841969583041383995691132848741611819392397303569831221688704320119362251773231481198904958372178664953233001296487610073445312330129858629939781997097505332672329592996437905384341350884150750676556337607062863606786703380373034141487642486951695444965551498166320309668670579933533165212455057941483611229119991603731209183793976886054180034721086592979998908274807271803523703976749056785806650580206920217627344179965504019146096199579266821194151653857475482082766754816680903015937826928894135718210129413263105454518377838262220220888291854575020957203603812270854928011402519713677587770308039177221589555857459935686480706378890709918481543552424523530825601951898748629554854331038029226879454765281866509345781549285032874173409665549691663330321808980044064928879119226363923569410791859244754247549019566682323446911282072871498218307659560349718231787077356115756152506993002499253014234066710929562011549804370852836635574127224546025496442207098202037515378740089579343832786880140404848626942536250120381994526618306077418017132920973968080592951319588080940763273782375724558803159066062162327576042200346396941076025001378950497873932890560762274627356519929184974405750957430305243236817997791443339050391639708289863890195931374204369882715899238117595300229227537341365886567670821755050451532640297781159381818571004615580688776555292372468448060893390542426180739838159355750775286747909836626352516321166664936093736610974896648258290435764406030501689169748380525913633003444201384704512809164813179300069067169116531676076056705621376026275107186042014170828554427435610799433410783178357144636948244877763165813246660625015746733493774369655279801559599857099914924833224686325103765663109092891513221560988149506266880252538979452639701292818764929374049673564904745848507070009220560728772573956788992567279592189651732255296859594887603466923267317049256089171992281339738111482590136841642062161226001354003915520756499585826542045748168146828975254235866889220280486399339966327325335680048353192520755200969362481507346939835441129874674949768837205855892434465254629240437471828547346076736093146170353614438180541645170568332655412966394578463721745201265582805724590968081357349742978108325031706182153239370724186687916631208574321984852179738758040622600907323792195680902498930356256001750592417323705736675116704119548648967505569390681663457701861877751548572808155915243460647027288402219104663409491346088132309517049155083919484360766696638928865828315187171015430485027355147862306667885875572537477095082202651143787705914637511304369407946549725570224439954335586552170801471239144826097009371406570217881915190737073363806021923327741014777176706268654042282898181460870235606699191974318023781832846770556395205051326422909046079218876006468495855205555649153771832051734104766518077780358346124576378699898410454219464667842465804547992858552975647280123327604091297909893805832119031402277232130890511886019187064571769147998351300281961572305461718768478493262435245203021301121349305959179248288266552141250434411212656592406609179596009842937536563342461273678219877100722896494427857688818138649025125430655733363563099309588064493230575814287341982562517348767610463281510967097779987083561110903443544045481247886562220548882983134257623620215875041902234682105629368170430880645097299691717504408398957248738124045580588991281631968590822772241688733628359271862796775401301342241493019390904629959876815278570601957439203808456907847679548756996212410565974299036870734927400567253746463581258739964399602808267393180707474864057558137090463624015862853365513981194746483803517621056720899433430266311833794356940893714382938582219718163811010524146074912623840981142331105463226106656567696770858328486240866415666755396983568235832226969960179722536282065316785136569383143936862968132670315801517919515838668712519409822661799247140646674899944515999240104585723448924823497712780371845951483021990201474053458936951180867682468373390678957175509764556023979141215036105437168129822082823914965961107387419289418525595336850797789393149366138964500255920556346221059600499749729011805194540736817741523995803441680353855299792289273142118391164223403452416080613182649909816601169366022986424207801458680498036682533523470714074644721487047423849310302047395695182899724660103964729826696216343160878837807850848892614110903018405230074377596670072069607962191739440217796369713230740752121471745250441823983847414170217885555815958712488036599987241815046034285954817161637572773976159254582307848916751733848233413689823090921159156782042444073663466200434044646223810192283387169667162365028096927678558374095056557890161775471313161578381348125458646591764387871866181125830570921510444793840665175195701097898685497892168165594962259823389772737534372331551021349446127673998206386738774082453019831115147929265115598223560600821348680714970241515909598871497788343464070945354190661865748610371786735362029961766903053367426551057436528111580359280562423664897201903716399955042436897523247431433152784391424168676277952201445318704776812494561290709733924370822918563286537699875348050013170758144635954915742863579270117729993020932680320511804857038727264946175012251250623166613422953896467267344869836285978239188249961574398108404006869279709240569019758961998929793010447845888096241297850762174231630971678846564786183506387707332327065034200043528816227352881081292791729642674702471574007410865538472455124039071109424674708259312017078493593948807844775745465136180975026531084401993926805487487803337626104138324142695515660087357251546801314829155538626342934259385706986693386325420470099017776589185013752288872731890887318403227973569708286428754952886330544054965395952926024035735400279103431980937743528545478000395802428719401637521062498419835936721322286952452707656625164975863494720612648444629797090941891627392548540836402093440253759589487248320754209665422792288296460499811025402171861855001776202363962890729090659691859466177514249430527890688402978182980435074381995957326044620927054115041882724026050968893833269480831598436946150483665475973653823269479249303428114129023416970492716770626087992608486971211394254347863599975404659262414368415343374843884093088141249093313887267549688015889062165594812530159264674934739314446820121256114074954540019129471499440868211075091164079204992293166598593888360401436922244423937441168273863413079152213429818195486088342863854529089613173370392357693996197137376489806653428959645176424958021900021308616582283538275138804938195669799684103274676945883776455238869122794819663705757103859919510510417605472719014963750418099994785000165851632340730349637740056547068047587976826897103019574279974651447545178790449674461592006389259360905353961048986220785284245104980330266390933306370558357767535723536695777300866983234654564418994524596621273334484335858923033431908971616770176807772901963788601422567676269593943516348887251741125915086778396825505594987056511510904737257710715437821635312179417660442867859067461729668715147199011717623442971896263161587773781269770963537491402063868910463714277169428687575975863573795485302143929353636707718266022543177395608360818718000452589134238904347001170810061012967549964480776632770838904695797103004247147337876853279280379983177228057864914756685022120949534652680209728599777491276054124501874506726307651339107567789683726765596935968409526405250181575950039228227958327074009453177053685285510500190975806383438431365775428270100539563051106148207751335082592146615482580597621895060458224760802246182473462345303657072017117838020189858137899446079856004456698749773132255215641469686085065536103544092018744186471046818700928618443401231159009237850073079393180084489577202680900014046187130632088535604795889711826977703601473361487672441975262135106899957778560156119260805017204860961398018104183718581810203091660950432795495979558097450479886227707514263119896355818962484367315629108256034812129883967886739020806081032944466316402836975370867477618259799226159446014233720811258221475772214263871007024500465140234904544535367378480899609468025314788983425348111588777484242683807405520536095886951067738880618062593167657843793022533706785837984006013781759130888343913793502742937713986697468159113060886477113203167450358525697938146077589761956976357693491275909066817697155692811274661333348300760517906283204638469790997711811746502701648203812186810970583243477812034157397688551533362495646024946669458891644958978304805829914521618566193456539266922387921650611038430370561923385313537506136382851679181154308370703810024996654718047450563262071643970023023505368004899328874760344792060239123289087032818166938581024638454991173431998667691567998760557336061932723369791895862487812458285903932152942150144290747378901943910214056773574784093337697708804953994399805123065507331017360481739242113500311174009908493191670880360470368605910009164307388230561042289147787604565871686049601768411832217958007536891369898972841235915956747343123517845037393368766025826907356423097086263257460620637318312383095175655572227515532793005055662509248945893299860970954677856243172407610552194597243597233621815780295090166278676732623629082462171925551926613005660168302392360999225976026493603925970351669784801445638409845720472830031619403259621205328331470920435821592631537565596931610622933937182151110790164458903292829884829029108479401739716881328653546847999660177349240816945746178870733645195179533477364291206591023029123532448624721862481322859398234514398045026779849036633752299815390133967860344595840331700218758160134399113444637669201831745201295933790667056527226673368485192641634231017310024454789050482139935534865493162449889368704445806672912255821871754292687879628578686391666211989156901441008372056407022895224154397405854046785404874130044938736953268747034138145570993332147521513259794021860966113740699357958981693100510988755446779380975193988588190181274875242466506508964949345919725053362946334504503706869209009948887939813382910140971416909178304943008515006312923832779170089661500622304749074643483829604355857896336167201969100918883170253488686279980572198894364799054920763107433231980346357449032057194459998056985321426938081017543866441109821953545784284748682263906217596634108425129211745885150913318913746696660513255711324958918349648669661561901287716081448379791774047795531611863656799097442629783036552717124044812086144591059693513000854881104937620165981112427543133543845205578998702675047121255372484273869048623731397149945324419159557077773455448412294628748174068899212979787874048862107659200930417675866640539441905720658897916643844705722779613152652992369102220001761619873612367848811148444995289507568141577145149003960899361384699239460415991427966048578365401354358037525385237452176867167492198608984622180924369041328536606075994895105072125726625494445849210603383397691507321538447150424476523344901244978248932864544615815502054872699412413608683079740370860888354724566857266120658362384777512552703190600204641398169627007250866825192678427463423683409024686783094024906977839780822787726566152569869589074456071124388615775322257406324334314677720212531145802623815249470541644730881525365495426306449641720515213010224214797232285135331041568444952374007224318716104287322881208415624625193471030527240863709446973471381891506306261814088665374529520853287133719779118637066160460798992031509082052857957575324070205552314625949166417789555343355007835950172525128788879510969764616477318934327002906002958228314114742584771412874417020870636023045488487400489644861340513546022255322733884375460114897070384558756246067226376421617896905093676828075123997114347953258606612580737832405586551602393298578800427345904514906803418845595520750495533028993302468333283928681836777690767034338043598289157773895145448616431240888905651625696939309363452707018332131697094544065018495046130446928615123454983308002810214922062195187905464069316741474556528270912195374024222068058047728953787026837779006980647842494957296317551438718299977413829389318706204734936931373599341382211430606349875404272829461918887883027966304666901270664937914416205178476879756167222011195708745354681325035826998706875624994779594813053558993354186528295642977557694169337661725447796293452365944034488546939003192875201427537559257438821879122572691971257265780903444141585722832739569572526062062336271348436670253655166711254208105818433065589965961350560057327833543765280085711791274430835279733391697464230694740900599764303389631394049522990051604979903005439392762201118684935880666428869408139128932887937960759195844703847094577940691357538289011458188546622435144000585471880181861478874087969198853903750438008732317956253324314548991069407910913640065422545372705325201093149088211641662190300911516268003574481538282444409578999775403774223320092237138883946826165773339584814310826421476473857347163340110046535760679073492065686674383633585336660343784783187626293443919337010477965611554178533831425967885763775475463761376687437328671937747688254825129017223691150276412297483006558196985718294954304088159962178132880335064451972289147691490550361539267453154407142343486454645134373161076155441898211756712219133713294271715732054983714114873296567492870442852218339980117960333099068473358880905797141403212303911197822635674992903393818657847809390942163676678575166729754130194240461255606968028982630671193995217594924062060208464875419943682149511712971740094984829840670316213919492689220085260185679240304685969200956116422631476466625818265176756958105463800778031926639728149945147979829886829696250097464677572327004074372367037863535647742590500491645891785682442968984281945591287778331801449300213085203682540850274804632277174816966245628347767484997891389846947144570482721348609153509951644816702515590139433720651320120045154131490968206130436596870403697441320094294904790817789315944665553563660337179390035985606319823746772968857091652002014929017299059061567530135705723096570475911764599847105098365556747685047732116295353254549227587734683989353379037035917626659077937891937500335200517016262351227230076304958939258258102422696431393703798479934840105472945096413649242125941690964113942938504693685698062928719297545865956463473126449357200503256046366310519440086969325674883804901053278495106438221136639645748680052226534176869565093188773573767963892054863029535857285467116155712401663443212756466368729429591115716573638098801866977814440489049083226313434221775841790186314331776909542304123242921259501912619303790952020572111308921606179146895677851369567596692358143509309841222538384068533914152744015724534651641513723026494452459652863983551024218455911552393619031805589901491625080438668479408168918366886658603334547201034541667993902478431168772917402733881577158457407595573284281636697037915304399365583028874338926684515731021881083882644170590932117529947526900604368560725957168289473554330757301168560590989518602490380147225954424201196854129124973458292121934063401724870788216682865767259125147083705630287089262643190730417117576144154316829346294324649003542546854935845275348713412280827808717590295974199570850571845494767318061182716608817229597879574207929255312341857961258551387930862343432997817885590948427282095451939668120811382447209738229786172357436382741889327488136957571889923050354148540724665743949113845800911311226007921570030449436310029940623619270026219737968201080609125953199504868106154330338237706235443934471129964160553410046324795750870629591987254952381272539047697788821838471610173421289541455279766250990165599893159740789831070401893495878070610785773200948996134199216958530007346247032900982901584571140019287027056233452211652024530760334621682762503377252044244496064853242213706478845134829743448408593425862174410158324121044980023297042525826382334938693648505547478386085984199450685861567810261002325266961731954015981457012228774875623101747617371421905483824259180825052208054276282416266024303018483304918759509259939839352758384235405611636902098574250924672839524389704296958024996466051949057388109370571532516811077308516399736724831750309930108957973274749846817794753144867783660564222784214720242589431290511769173232005854604076034463782147919177434497313050256160764160184621336416664183810732983226806340433775377061501963952387695791265394301551553611780877788248413440817816170158116532692901246819198758598759987839656304262227137188877354844636474957185726004490868563039717139497266648550243745233689988658559307137221580378905952448742531401825824578839739158954721970748060042610895267449493711296877589836774282244963017683491432566308796923642032951438149026365900932408355052259930159616204390779115583052412626959198358872528926946596466009467603475948651298532674501509012336774918123922476601859758084824457254025403741481453275595790792105934019464679782182735073428172805096123849836832291107219702278419820999734948026710930054027407074718927967274490199643072816323597023322477958583308553074972175089906997440413332908392098130287794038032267520685333387186593992042675009868121302065393700399133561528863620190462019795150923297853943459772941979109933110216676436845141733381566050570913081601215906416210487826152208890771760098748370690893831220570319665482529188623275450193856068801246038948069434286454877717451523089393560104500769900923077784462179841851192247009466031458194402938054818326305154843547220953608128181512869822961628027986447460109801658819581156690498314903175611597304438042943568257036988085596262611451248166224737459151973972221980272988935001720743392969226902269963705241071417842627990177801556132273828249804965482682385455749776270169867523134071838222312653254318399465740723441395101846729458411379647276963214431502849034214744809018606403843126988489248854693613569834612793070148222522900025505123191110777807244456510070631790107424973232383074871354564172545171424857523270415689442592430311387731740431824613696460621139744190892268026802708915671885863090682974646357774946368810656677434355573679035107967507461124261657130306688613244805098689104171891730765837047591510303818372917494045958868904159293967946336546953908475013695018606411156742328359585594022531765753545083186473689115234417819371579835057382290201431909928684923355897105040297890601407720012492291817595073286264863824069161363821711048396208777466295880724875877917167052075328409289079004733615359261482018290521928426611842126011519492808198266707236070293687462156620033519173946882693988084829419928088227308911705316156642672801434534246339045072504796265217649066565407819371490560151586538711767496566686546860085973081511539151558781695526892098317976307200898612476269144595391002487146029437203204364550551779439423373833924386746424284306527346641168422329847193048701243317676919875264267067860431121972009762596470449906591560916340769418957103644949321042228727947702193432283706405628621639694342608428563152957872285299295960725611444095623423078817714489764401160127715779051667093098501861806360100694346475546327647508592998308730229621262520977308657616448483514579125581165919891413736892309679501640722247978721229523254879115674223749300138755960783325074467383841808389113980116010298025209824276790131254388763918116530704848749300214389962743611136057448772817851274406895082297497903995500421209451203443094910104148361554968765241942073443142551394843171335375346211864892427295370677970825202955913473668624423680878684869183829231144422081498677285125626455698118482295328311955077229336039771697880293621157901899760622287782027311856143550164957032962966256672728875083691512759767484376643040882971213113161553172722850977711053674771356431027945618468629383360620437426262459281836675900273110630460901775737375673501308294966382751829333494842218269567922906789082634433087293550706740179001767395519153847965162771970624860137979483593889453645141270318171641551998269352288612180137356939942300253508459024638350856971135533770289990066682085646739433769352980151068177565509470603147875687494272979102327283416478988526209879823264187482403602678484392553260637548947511946035604828750936299080833039942493093048167607100895544109987749624013158347021601382776347325865012884661486239105262321716698751599834187888869701181545527182315195807361468710232739077804980947308645850871744309287441952498436837068931255382585334364079170725304143400114149222016767729633539807249372637006180512324818424278368300679362608009855969359345898568042918586964788558100985900365589651901132770420713772836198995843068791620128298847803181759607422972167756815939675811590488385699140994857169317564425295838418698335318472932384316942515845370787306189617725120079691451395763113867553231164189038804740502662847078871326711558542762083239260610130698813544073545390166279684854958408207612880895916958447550387852219201877595690484385509699222069392334454637499244353769109825199270385758335370628589142399555602095053467934311043061841044061672797627364287443252181372830205468879535188737676174695969422862465219820956399483727959418297227942771243916730340563115505956351080254876764652118333389708542101246962611471438867774218559794027410158144592225896990941028758356164691183157741580604958634479056026031127820818224952204042195406231664235152585823086086959237152625957087497170409852727458395985735761958247982643320007126132958502784870550236531569296577260089681443453020624472424917854068043671431175466686719403815759822132713775448161775332267015668295671616072103744624147861631543548256569133328521757407438847712599052904490937450910802789898830842694559703913886649935410238669934084560405562725900365518405655707610031463975880974890304104936095473681785798949962599404580466170992959062838610159910523534321484337111745058857190614271482058128280537078743224025406110691511652495197023681577978282399270949879378338663772645853614892211128651345186416992897637562720019603023324314015178730744448438245413702163919596774968814961520369408641830470560047612845948900802447658557638776020025569769713340442086720805893518627994208298734295898339466950424954405358368207945803236067530524720014470522695657473722735112221994203974943070018246850494276948975088757450904580907264856756993393533376375871781319383284020944567898448579439919533819532941264504120486393795732734319469042100766981191487722688503927935743587490051062079064298286669271449673851873974856890769924002861596279073135274224842616526791235176716585619515783913224777853244067631305361941118229004118261703763618408454383433919465790280590811144348066741043356783100286417083584719776809987657906858659476582422956941443849232966991681149178979868851860272076805748452160198353551895952372379234550305696330283926370283477373710093262695363299942333064341264839562487866989231896622399327983824221249477026186564728196913194044446358031376604840166741648132609672072557607104998996209261991992732203959586537608807596899299648310601341840331232899208106374296646658651319189033612016029763077170976351425660469664609622162520581018687278999342953752122651408814494796954955400702015531568790337854616360029479463894878747344773908274373587431983942865512015367874047875547255954272561104751700996972352507773681287122925715744268808447872371806475814402688465572335046372202322069927704127259942701712913067519547119869968706354406897133037710717658676557989861750287104802423848184464094580077153670956958737671504896447943370043774316768846128322806445633839757520989744696942344451681377797751436252378477014030533734852450016711217423350187457145528187465772146029735708695868091109465653722926999783369167823864926851773602217144155791867591577158515638609085500303873928087098428967159089787427045029006148720318057943086318849491321819050451032473150066634802949294700006660342464470638094520213204175750723791415555742527348972616323944192268994738770319009352932496547899572370855575927451685911637011940536122283438702214931230304700148471479540064702198586835711507447797718156925573609885292904981298563825460329588924987701631108542420532043106769488457567206552512845249559137195794343425771636087371451799259182380517461426704318810101099291271715452355464398865169515101970590915650084432006417453403410853653893977238731064056382858355728748926591312756690279124260690002257794160924423842579125706211428783341316224227686878070029574907880721780670083067031819119999970507425731913798501778880622912190965804811586053084673241666740050351896322588395889543712781028079805723163825778221924443124566742841226094982449939669560163316006456178308299938992631464532698650375854851752327091799237583731662581281887196564209294583911794879394286284872484323229826668419378884386372971434472059622061825145913242781573457086529051652107519658304004981160182858974133304868973074664969618202889732518253105681227599491509703373308022327314758486403823582418183458510792783764285029625858149000403262780513333509565017337908287123283995456123303038653362768988349320344846169762605089032686031630743160288669893918541198855207351166451822543725250618522868239973083202297252072936890169635298631639650140305941847912779817403953936666240151168676767979649888152064814684466213795780357046204449833545063611277115654421633057598215680147455189140596631359418774879019714761175837103004668671841623024720726074533049965299197626798208365821011528042127949452058295951750609650843248808057632668324227694465481575204001066139764063642306368212752336922936292112974470646611620774763625028050661745110543276758496800375866804206540088297829923688320827673150088483767691429014309107481965708806073725269345027743976951892932378822141404938553251544811575064681150420341546638112395910751708500673264886083727174203635287207136100746614705628598097130735603132204041933228531071283824890380647638278747097139503912983387925921104137142768220501004900303791482521774260943451383795497469869521403767948826900652515139233643268381943767435576762412869334147236085140720753696868042644263425242963107409018980889755707814608776867554011006212797935616260204324580538768601812659166641752653541531307635893131164271767401209533528745970568774582867941535475164260162313839806839928439555747758151377501386543768184849331542122852387123939270855410546276915222482776482962519675645509515024958206911558091682081943179421484248489829342454000376154629779962036763692190823412693933544923431377118145716545840196048322458907278739734834460470504022494325017050718212735403260436589284548595541348407394410793043872302500184495259515415697553247019205655371770351707025902945346163952093335753520213225176091112239796492966428858422336311471153235349427154086093683884376748334904077968920520744046257844294294513367909550410602403058931150634452672433801360714898780264817995645114333680619760669790327353530340868777533623510479085294969598889188689244572081432600901965515241418598971007534344140518496293523570691503350628580680520279562198464124927691419887331722580607744806108376194895437805076969087913788282852253428713111240144617942525091653580999320573083222463331957723711400333512685579032720470266516769785296865726318898787611712445303216860493730372736087686383482811179060246667277719272315175307417318009063958238527598706212492721269895654923470345671934813629864864108361053362577720081290668910408745384177652376902282143104029870974452920358251050324957935454162862879545701910905837902803186356628980406870033041679994465799623816999433026337217374532882864773450307680082791973064845869559907910158144406626163087903521865117856882279943965568938859359854919996690439413365337526497628216876391949726346656291352569081050211318132402152923957703080206863330411767240348342346487455264500050427040797307982214304845277312404546288352509774733325396195472159909979784554885756629540129382877246449362441592167028523331097336848207197826706577232719372067525695202460525484563742979809135216459379409751734200818987158503661321711809555484611195364640224674555712021763297368457156774374660579737428976401405524779093473930713572934246127731807971814813882671060151180341470664323837365025427161236413932878703394548788771893667120637027645346139528933900315588853935998880746480413813183009855167073659190646035673437694142235673674155712336288689353197378749207548020720043008552672142635001443174923006852605287275255104923648426027260305589692815528634010485721436373802709824394683464664710992275994168059159965252805507699160042101010740271265327921622652587498789701169855720268323342535533442764712871859378987997515539657998391274442138951683545841314909399421332709968440709903166886321124727424783735152849766057015331393699631210885999619298829841546996099521002280090577958055542181486655656113023204890995729185588850719358174809942437322956113423487713099164444103279820707293212534337690662835434389471682103068151865190576985922833102301521014036304286368797597119797408474517790228629424991798288316913768373772887123093909451142483930748496330460387292141468764840643890549430854970481944331474855060997811796479815826246628808436966909168031965642412598357820581728856510750933979605526958605419531017514720439468910355257889275113958877155797565729682961075024395564704255553535179932471990106345714967294525903257378781946493775484285199162853708225199890668502851990108696165708416185304229421180158957964330541979531457594735894889647034675010410296432600547971121706326254709551892939564541827618224770641052979626353872276839405183184300524471392065896444389815639405729370371610930059662148001386840767667189117153674876939438313242063275933796976585476080605802395031052418774002936363060377089192866720896993744303799831360363903162280119144915763643710538367649551347688599593729560501130735056813374693820163500996963860067202114280437707972204159664246388287415155254369534031533302927499840827718344097955828141034982723970215377762543660626381389814371327661980250300814591737893241928390307168548193547944860456841258687750149004815807071719296774130449554810199056962163227165784093392650190174783530994249148969750433423156129039961484212750416269090524769362814331637203549592390583189780432631721428324060536673260565179044391144589221848424917512344121810633461831909737701032371169584721245029368125504564156850472441222480540476518820249719383758414224297026192760611359441113429781929765412582453472216546635507594119518569319096499183887941180974743877837089370146591901349662786714636897805441003940742855179584755991696079003181336066822916918505354620078315153107977302421394051158742307978518138253949625122209900648708784819114676446567447589731343969550981520624827753466467436066260405361685785752658355092956997790876798506040684886233828105093947513737905937583078419498502697295832138570407095481629543799669146246129957212685282724451061110022960525890645920051509071706875047228476235023171633081745565057262038838339746836504848314793348506721708840460091186345078396034594640845835607686475461024308683492848081549866405911482048706963106427309332713712154865343638042020950327228087835064973315863225807938081496737234399416735934816562910884607069761545031575532744291346712020970392067613485973296722424249789541653463491756384869571138137139296260761476446484612332617220935824700576902379883795851042805902453559383853059185188886682102113491227264585475311086643429959379851445596258929363101665279726945290240182012138585943708408799555956479713295016768176510317825824335031661719291720872425531344289731204183573548877772036791557027398310759203338638651619311316214482377594668918803057978348920345742395179560424514329424645218133740125066844306973236360421353995534323337656442799802509350102143883977568142517019096102437891859107172670694759011543516884147563043233919459046106221456299599813110462383315740692301919684173233663766914471026249013578507855258222842587421822604193280439143919873298422155682661930051044091098515117017351245626567424439040578936646274136233024354908449424869449695483349823179940261359271004278066841490611042090945158553344507875636360714829860376503891375852456269509993259056721564359190738512490676085026100683371302337289906936023137085275372007033274722723278292347238471490126452771859432362471350541413204678152960449570071819528215128408343812185733158285311387833482445798631958782152923679203227438511890340254566555761078801827786867807278179006292606938317888911645883500942566764534824965358362245666969919660529562217643146777423628688745169954207112848587668619225751658914382585914374188590406489019564102390243144179604791503856732963804149444555282783542445785077238209885596076120995073505923349132022807706357714121944105830724282803388081252586688471538020632783794782482224937517399443202790688459863142328043934374812237795972268161370649020802449696567229483437343800156425199490592254845127405115696986126534888031098393983015469442060206776130348570191911993242964815241485730293387146612890312095864862266761287630492545113696181388210093822690181997147864061634686445085906910550571345822445227602911436853134034010350212131044746997993688981152426931008159830185264392614397470745692326159667501201000271742808552344948128125857186541525324812155592281880297338075793491839813483129567519883678323823014126389478187006175823930507875979669979003993960333010837658658778065982247427498266263559576708110524358070095661861090714603279026667073167063805028167986033918576374782562013829432252489170422065840306780180477178042783895279611453330143984277025399396345535211487871824212434734257947803259176895289753717327034648242078843742997789350862468990931327639302694345739497607805735647279452601988727138917719243729475251320707693966182455459068329670326134409291720470796528649064546138221297433176114887810506127490469891625983334577207524949130386322518171648803640506069546871697502726466693477716936064119020614937953131613939603842772407709312541908608708215894856706526616590111911712672317998231649786772394573183450685164010873756830120867567670734431353858216529641348006056345310847993305795265303504560314453608208451802160722459012091604468737506978795927854223346622009874999778491084647266890286279979861578327865426252710334368582133096414152439213456807029340430928083274772012977017787494746255661493703655135410425169946448535424133137541128053706168697729890284345611212881973880896738938029164756077351333596771907765532891143368948419136919687889704822804315117903855031396006954049326768343188938692602172964363296697102466786058911867738331225249624518196280046743298046489781512709735880661684255517472261742482752211966966724534284199217279804987439896969683109082343894621255262643549775068884594502390617823847346456715296273197504432847652298569914868636390070146759840257889464304407837044311605921245200944371129330425190793039814367045234128002327037576235384659769629154712513709290469286244880191057396403447253064254454101211401763709737118146866559994544616258552754744936245197396095214732824385214163864651216961035921477315689529315150198588518382873696780487064203769833841382335580249121454940551523632090851563868717718599385587563473662978495115426309099119689868434232898252109761361159277474831793212271221621987194534389609168134851424076121079849905120439592395899300794688691442403487674828474894695501326234027790704674063636216739932935466135929693684374655810695523773047196734578527941596392013241703871044748262552397885966327657157928675053267433871160128710889118725810125293366911217535688077990685349265686581812558744434080653423563364846262387804407041681358113917364697473525697327693613939470959891969545837700579703486032911333527941331785227013264521463923822275585419207244175691589833694326437878436147475575717256177075685508623222650086723044175802343880977016535524001184701294650110518662928676950764003409892339423878475366303952372207292603257607811181844564715205241243651079296353030403154897542519920820085427368181649708712173222745222550803428833505985449735788192360396198009587474221829475279733012740546695504366278083586755326664111461754705620696786134979679080019800647867850130364447590798896759611906521832643138338294620982863442895268981787960612102535243291348329603300170277168893523004617341634687408520874513506690202913816015511432436762284170941560074223853695995025079730676209609380168439652407292888876558952494699584696327962491767583241344228518357597308375806088649998578060284090835193082566411420151133586489869128114518106403673692576046113318411012470228691023760108274192569882217100865929859071740375593662310288417202601577384034039838373465087536779132000436230464977095246328645527647632728645170003554477983910892741516415599257625525448574031531667792158353694510242987028637635878735554417191282867551830528199420020668540315924518996068381808045309105470305273892825931367977090496571552754382112915279157963958363216715470413736801966329310539745655971731585189001103056502791135912109445313879512745562451397115852190783515928133428107508169005886758913781025196004954561807621500765217718828139162428592684302878465239203955431792754594419180424170516904574014446046015408970989363790054082582439824629280309495278958116392546106321525021704107913644896746600051026365178308532557852530072311128044133737773655651259440396817677991781293429618813859355629092552650194705822237594937475069053955996310740397784184448080225474910357063433416974494352944012344614024142736473292519226302609939659127642038709823695526836564774591015520433997977334490208961364406693169700733174998352341259582337506806881806004868335230086043961164554227124593962280191463717659882081280886839749873658106636473492650109887433502736487071274782620303259477777437526160325420566821316571142152003012681349633880279430965620407812738272148098331337033513010491113638764926762224875918587026822650263660673175471494452553956630921674785076331247272983922340480869378403571069704013941021040458576725249537694348838738016983836992736650892885147728077069367358941762753866330027362127591117964771947888761717250066520712858913321196012019082372581307443711256789654722872860854338868091727788922732447491554735136959789291913686982199436837517916683841174347239181075664253460260988739867616694290892953299893551856474160721692859044568507301963142893669089179411366701609914226125345517528914850787708182684429932854989483418143565137736304789289190833437960625633376440432246074931925059901092694874836027809394844810803113969075134937541763822605161811296749969323011178149107610652987814666603318559677273145300873502376912703925399157629790994381973751109224356934787058761427371318672685445380993361472009183859614607518724526802728302633692580989409783783475617832391883121473558414302708590004374324917620119766630509099085127912692991064359306990994309645042135799811750942539033614646263895686012528154916328894648260747347573858509412636134247862375255310414531482457690770355972871655058608238421158202442466077535207601344522827582394522776389182297660212700610288098562550021385399506866678566960904053998914773390432750388958381424148117515711377183378298592605240738992354545463688365775984152846584310932346460609428003490359623047677586256310367117097838188942047169075461665957598659265279153638707443171738229979049570158755867614888885546332012665528289363910870410216321455913118019864948716038774926996619913215385932700236963432144336425359501435863504812525870766596505188265240004825152693424885091642673928448181238204053197504428595943192389854827560703949413128810361200877516700368743373852340425314091882817713145355961097253227758561661689643794776832398053852838850662041656194255177427742006798935340137094837221703110860364132847894572507443814597824493006886233855922575409656009157899889354849945070860839980554717516132738772175262517026060906173850630133078951698471509897672565158629676833348089790091377301415015753500649861389243133061389903056967638832070092694886079417933652672996067230127478544382423929574717010236685169255556747579534577201574372056780931251457091059489017104840600538914360039441655001517453652549754098227809029442323772969828719547049399497068149204821734533948024941762402071135693369184944636532027675916723828554011199857926113029928274646532765952583384067859215453871146656844714352359987830967373319910970460847008159315907283599818289376055409905221790485342886560510195250470541250210635839616894004027162029549852072040806822731995443661790275561030951347027434832375971759881781768263515162499642879553422920767615419625934723837599134757017777434747816219098560568698592520329879405985135660504911743101862146069277434740562700727107350878762706518925897728731204347795911146004317810395697752819358378843493873644551257287318999101805824097508105757967003753496117398130205768057738141871593213678137850703737951787610477230465059887211702015586227869267361239325187481507096156806280054294734864631532113948483291885306440401690691228340991484377460567313065684396485016056115627959090581580154649542705477850948918559099858647757361151218465225587399813229948643141965185020174047882334091099922761893533701662763695082313131553128573439453811872721080581431106787927389370333865192910161546099149234375615173450753828857236944486803183792205151292756616458752731766101530307840833467452389723192721893400356523861383818235735421290267510768787721087424432938333700797199428185199009416431906359028182226631611861102476795518937457064293843644945761054449025550582261525655927407282088807669222872200149769096589893261154370261901139944438702479527646594569320931048196760734199386825653427652787025851600945137013865592942169653752537897887780907346296368742852084865374542304607038540369693503491012122513683846574675208516234892271513731413659727624314806895447624177431024187561738274227319722491731763306488651509318432618409147611918587654822710764661644319054644019778552721844880036937213797162003370493941531576402797505126708995613782814447930381865722061409132743426789349641111599739596380382020933275499396413418183281002747897028348330136670310133515462267083933126628381908913622452329466429011710320312442514719489423927177546500203871702069721614514506180478393867131317113677121046999015775721473736924344396443201881902630754814947527053964920775285686214107839730114475728789549737985568065966892474539344744841941488161489327378744491852560556635007852937493995279624445549992594141061846640614361346717821198368262671744227625130537784395347793359753328099779350288055186586656264476294777876479956468967986722610285197833134693823890059367176066901652933783747687687142095101984737773021193574252614047435172655218072237137695287189611767637914593570435023239228641827802264257276596998174084511585667271742526361575827482552214946456420200785369973488346662872686743543597726816742583536227245199927759726496691130323313440879956724076520615521553901247251969241801368038545347033947377693390182071300572066674846090972001076409054329666389084368578483987708682458776232797465796386399517123815139187073452764538855963953062806486617124994948258716480977515306251704218506202877071177806141764838691171497771091847048931389695984340455606812925426907063949336710894997598003850356483716500553977987088066993110689544669658454392237323814177210988873512770147527472467258658343629859224185198257444840898680577739835256067085589181756046164156676044305079530436466518298295974979302291664520993342088244536409901090778311682724433688693488163073504595565360297766737066764676798860923837628786793364821750330767305598007023058862226289272053210535625541374828827969368042639437279234917698283887076241165020680985355201296453053493207912451636906782822896691341173197372331823202413497116146657044715228327008476458785851862527277232959650057025043131829981631503914649880030382235492309915567764571236567301295403567488578794390072137342490181676487089671847547056500417352142949434726732041899650793824601988764510310999430946326537297329687539500677113887167235202283312215516785574401228721493457029658111271857705776355989242261556821265048057804000681473804134631833712129405374737674469481898160097504777140161692993672369537957062007054366133684414885749374853480476230066133671206477458231720754392364974855672404216227637712771309439931824573850398621474314820498426278621841262304195453713524201449756971582650745972151310613284857959167116653129791325022323563406497273274222630357371954382986746593193609092040652998678510954789938966024128370044417587330102145600204925881971999648492807853637981692983964149402580373735255966033635079809317293694089470081706089362260595998104205525230490858985701549594577526779809566607526923167530535763453253380886851454974622358202122624277843091898514141026853020465041028645056111849841479586400667910964998043793849224883038563703196348943896927957636271942809463362660124025563864467574784732253747697914952486146967374027421860710221848805319921406591127649791710830111001151381885919457983648797131465850530782106312203715696238021798768657796006509249487573012161794753489529679648317763009288250686395991136703367216498209489142206029933519154161516989089588804681669767934688637272009217820845607932346359534148770226980359354049416804922012737501989232695711565994737847695815447132409215235250122975767097968335636768156928173436132945559460053898871699976535731081285158982875797650067529086727557856838192023878319350800434220738153996829224056373912552153360032819406403833159545363272481651301259985461802667481983133533183550454336496951868880065670056298884603321877892577485194687389229378868274712282977246435034202796471975153524582226343842335497061676130145744019122365454302211449536335570840551271540393989515275212626981503807400588300046816909835586794314937395296695106363218542288833150784018332033511893696485754815530034992582120032609595713102121879294567386860934082998941613723963253855992875900787972646875159988299891389799904407264910795637357360534652047444127838487046590976361625547123464278181769798461969817238022548240883523579395307463544201556687951705645068807264173607846601141117689270653783807628037828049321074363855274464136986704705238792898353404233569871859157586987067808695609227404834427798876122361795090683306160293265928515819134258574133307429855439634245457887510884408357555556498269707118523708826800407376284301490443290420654840264904902248027235918407267875647611076301438561431181506707950556577243178989051041243192579484312231227596239551804951903806022352825029124237117684836035097023227588038605774467364221525482125629249637025082436282815864541736697587959729399211956455192542645737253072786173936429495263116136438224079317564943918223270360483480788085831013311789531553220731017603201302015803335989064607120583553659387274843221001569595907635262133802025931832704348454419942932680243173551405466707495092015120289248736717191843914699694434586764449683544747798377104581148936007398999596717335053139317619043957983557521294048521457259538628763220938515130784622089027737832356143176933980378382111517898650346550586846139174090328006070870419581329280217514142585064225757037816787482771919392540057686580917419914302915018625279253031124607124575793628870013474783032657991607059149098652247571856269705067674265318645318864848634479003560472747722293804565156509669091154122330847276612691006038477469650854685696163123215175772588585752841472282551941877386769861260436552265392967618624374042255887719747743657970288197214836504745148965852199634809984468264685463761681720248335184388991461954924288988064883447599324994281522744100917698463291543810281793392174638550802296006404505009751929403828377021413769497056841739674784687668108113361975560345428066458461673041907555097214817187396271482690394199410309618573890177284556905411258678845793404359575171856526554412347233902246070875532488485203880776530217350731393290091800741388596997505073587322771966362053170347669689220793245395631636982308834604217725404934735994426440237758080692487727776919580019816232485483397637814594233927328009187197463414974712174622118683176969843638231702655963241708842965397102081993941504316740145044182067812839442545786726012672822848695926962673816699540679001984436349767434778086399284688410208004510486950052860168585305038844690019939584291451946530601494942727333246610944830060469608647049548015630274536920223905770067081804259237075188121105921214163494169151763120629650591575372762508448306565536412654389086384957735799887786895793420868071696229377064631363780741825574017456698368090599422391455699356406887416386985702563316702369448819596438998510868783748079795259414724707318903192051529075013057994686218116584439626502623862216962049152843402277011024167168586153186012150104680925857913577995760201086471673532177777277359509645620560938314264426053255387342836400492114117718471446178186038436127020562304034130805337625569766693156835611394723063580545114488757946731221364548389024105759318491584662536841247555355671864730663515254283792128601280958199586749880808261777743139691834165338479806348376225608442360713765387196490480261589531328095120533485255715657174867523054838259039224848887893775015171745196293327682634741562950208258804059571254034739942840278215504784303390010160138888219179236166109898811475921587055583230735871698906241931961991718917108245865019913305050310226512968834737588164383368151192141285007540431430925449085984595164831903565555584348665905161000157495717331645462010374825981977306797323245792564904353039620065467813873808557876054149480647320218945501235775052171659748148558920325535917926806645732939634686352252248424340380213558688877613784018120939561326765384180562266865955524299932684122186606131068897375198563600804785164446106637993708988271068136975643455013074766776821328604240793279088975111967834510675336721494770303595854565702282105092262358073996518828558500176942657623640675510225166840988974911301876243317242459550961389322087807801560904889696171747551635815757721620234259670030346591272669631401759050687605600299777019448830420731491590454502627780943492720843524597482437497407750192246923576684900544123323098983274409567106371984567836954559968923010039162876501767920888204519087034514528717257865545203303969064621881138884601554994388305671023970400094969251262875494142267770192237852857675544811645333095795623663006376661905963399998487916045364322829015504989742994240923479295649160109857093188482360744736588861394329930951329620453349652956573886036090986903491084751193376030675551242746096247439098937276368341676091750826447873440638862396841961795396517929437202311342350221281859393388135851327060032397906532486997073254481955065072011815596261231137333191777504067887349128878942217497220333951156037958248962691233607144079116619216453663068524771312174323969762163638195894185518797531269893796905803441724087311262685159053750359958460650919602762939464465716051737943072547244542364848564760879348981678086971345829606590929382095388093891213299403178989420446673295401551785689389494412138994303223653779466780047762251893990462638342270764795963005176874634234166387035085456270780337707720582656768666036542406285421801806091570716176496031033181129728766910339910549029527512302467127683582238000901727820012350863123090507339510370083683130811526498214494047273621206032734055125648944798236251847742757281590670648843443442458262277617605220150445498945086901666760644069173074065176959626726177527319948446972771478998336381128407873205058990504932371563122161631245130938873572022292989781674360979844595049661829936728817951231419971906166080562449207579030156882707308937133541109713522999684394179957930713435139236258283861580712651575834371343396985546985976761347999802514530190588296365721260612790887189901419519889267702673423038635346328990869516782719754762073677107736226049784522681968362952820757004309861512806158835873713888807958697308077956678703361556921672500180815475211775557518945201226817819291822002441586747206544963993879953795765758506015188650592524322634627270543419870286341392269999384467346550673561963963904160539895773511216808521464819423687661986553559183400360524060026617346758336930261149712005544611660367195173692807554014353698435189115352415416922046421731799782901741249357383781962792530490760065761659370590265034178889438913923672729895293203439802212899254549669606691665333939046610294400721187744663707224429194655046996184921148020243529168227072251685350381534107357368770361632573656091052204050973089233746842096020721073025173294160026189270781722154050249161825154519676858705348252886412371273308798186115195557873542811197653126542843701315525604015711151973356237337264323790182935169891519771191823286078531250460416532275393444832009947106251408721707014011896396213953669457734886373761500951343493284580971007170671885630811962657625175643445054646414421649252551625106954849045360085303776161792920435189816193959982817114292075371993225882212207593240493880021107563280746058501889115661653316087393503529440311043310701646416774389910999035463155334383365895788501255571241338722223532138071215833180531499033515704690207509174737880657779052107121116657938845869264775889164804556836637976886217738649517078786710903421539227399264536707601524790689723505554533339621487084406432004522804860167496670386423661688688064703465305612207343652938958583263993732525121923681902361694776694014796620176230506498831477359606783695095249438221516965876607859728515387613766319788428798773539923862454672196284298339945547713969025975355507801039967936331493612613082760278303772818688761593468391064647870992697464153816018325472331596509654594946161174940233923899945463642153889636419717480529297079059433788049908136170226027241480830214839760626967998728413665639010161852477616078095179086061641005170458238125496703050969926847956633050059237797316238831809087910796875500930652627964028245126618158068270631731657373986890707920618047017878091271231726866085562019603218523784087779166594650880727175110733387931261390480810175642698795257775550091059962118649393955827937980098335865830349634676522545340924873812327865057085497546542974204559120614922091258010794244171313720456453641782522273972730168591015689232944516754600995689408472556105449927572954818732569664122084321613898796647427187807424434882355471003193532039029071302599999238402365249796677619703505133321046833245772338666895028004019825524269164878790620298457111446669716322011343808617743854602446929939520275926074429923409560844245519594038098305871467965790626078384522154440044977047738917087504775910371506068508147473502340644274511111363871707723794850103028634787041103345301858518502472894157579115805109561318225894466650229954599823656593155055919999044136134602769668532895202657241221954752989218407995192756186827692341254942368320370286013336117088241457845344955026194367656871302262508513987060781142692213300397268144877060111864704017336793935627027685850472057048194800165992823111106802927510162633151167143567817212284562277766821982539779595246164713672974410216604193379313922072476592348411821252610838486939780360655781543691603207571089621382696776576990027261856948935673618440209559514707904334697727260309585860408147618785627907822189713241065360757754534254944381802890692464274280999599168847719959117233599803397823897124622051015467618936779563591991169798701316780686655966134323296741866376599553101320029458580382330424234998108529173163339190475172165345035727683037717253553572481467753085338287409713918667379807310235128888584233217071817889048975901115060415096570566918040675224063383097026243978173541029698810840787030840232014969420813803697974265397528707521077345753805912705233673643643648928615539098237163689646800249221138258641344461928625079877721459986998697320726742995733338893163380398509224054487032915487112800465677813109411930248914523393287285088894455694672523882850219177140542343822155221382187289171126372620248780179587216026364925652822395442097388904648708091392721942565549792625834743244217445044550184972093554710693358931304818691817803072144276224128738736759229286416604529078206494069232541580947413951806546958966844332727163729803139100620118889037987453630395122559979672483553168837852480267645888063969273012151062525010200474460628059762650869663844893772893175045425211649941643427234006403710503797756335442083060018379095822880912798138331304686084004674769200731627794525142889851121515313627060027553164267971400492448755285211407777071548692227871721603805911062184639664018618726300926517035519775501841577729955697895074966849481759789880204542406711392593344558503749784142346719755371626270020339425165563996620028778618752581915855567409207837349217636332460554777132407639674603626706012771382804697085432246194355971880161759582999914906098921213236694100205811236404125638384481212493288785548806271507598220250195885349281924688768845619232126118058801532067607213163039765239289572369537021826664909681872219290873916285543137457530581580569267209281193221888788482355271248153965120890208570920925843959321767041423042098387030440960461005321245296900975482558360776749260500653139743812629241257185551082754254015057685181293680305664277995325793177343358820582248234716559963163976108817159134508945331437825695409102706436258040244046521473437133541083726683187940014463285367397024929655367872370824946282872219970377837574378147025555230153035907972281723296495461297827746135654874822200936229094535828505131007294628000813401161417273588704143364487674540111549140099527568967346921641433957843346840725902549574141657409043951722482072761392255714318854137066440244007385221508976497296333070627961192805394354472273198736424697348722477051795387500547433815608626570434085659321392835147137974729931190531021605196860499893326134286489635003040534468740240384069865945233117912081217893104529755149152776724682512843014180619461696436454208150303438849934454971246113272937303451970955749784682392721042161339821486783661313149797920070857971686795664202437042183210495388249206896319859289968881585775380398668625865411639395223625436944302049514937828951252413362810315160665499735564489852879109112220918725958976479789900037732138896433090641370894786905436485400455857220134704619516344918733469439712226694491063657771586399699407062456286910652688243757321793820187162462335320203321361366117353778083881599618669242263575825130841304763478588679234485654974013745644313100919283847964719801727779672059559633930452750313287233197349764569527843075191133163978478057983527944249396015066012108891395533867087822036139797082895847584481061783102530142463090933569888944590084862709579186227013235576214543120432867896045857896153676579983435982205203140664362135738768670558764575150347409797175713080226005032253316435330044789725083659108721251831638908379420528772552406253664844987962635866249013778193058320874411181735478553273971108607107863754014870717966528257820085170715658172978411748443590654370259450828667005927884095458459520393740606446138757506840765116124596052600522649793040451640339291658321274126205510518297874268177933568416060961739536365947470380360431611538625899947317943235055339130412159454939686600159105005852739249641538389150757291525277245494993199414503145915634992398243838874271207002953546300477138441897248722144569269593569350670471388725060748315966624318783753593394910982141483701007835817825777162522577325653558918444693837207242972399236741070200467985986230369055443182384582399040878594153682059321276039388731347373018508101429750942049344225387680031213566693840229336611669670559428197492322758918938456111819527708558859210249355338012345588906012164021006973987442081164159811396892608154721022067550363056198274239908604510897145156535574376629033073034584181530994185107120122605914703881933423150354030062454469001310212566728268004041560878385600708399864038551959043387920161547515617144587625252892244512636459887083927647956632647624629470179158593657839713823179225928671440065333566254144149940138699423310682172141040216639143615706686658043149470401116051065129576857347237667360321512422334630253491607995274506140033449798875459947694071279931564027205730270719871385906352026658495225597823686835612109514973700767443185398587891126054258948986059445764996470447188177543334199098741756298740297404450314126453319193957287720758030393489092819384039305226109944865028543838587805531367336631596108111040401748641321853323194494801993065233900965514386746603831447255012114658360557999651275274799522934642597516802757082688366679035286247451888477545961564119839589008265531315303692535310606754129653790437795325281918179658400701369388036254903920156562067678821566039265397239545772824346713909336404624709040623800169403596481516655733107093940060873358775794161031237032104979474153775775439409563428557236061055372627202167780873607061465526097714226726711945425427424998956009535381703280257493472397495323733480913994151631830732574614406941969914091976821208366239790616584023089700321599861262457680975211730181451639118610339443559877234007808289188016211400429757272028745547561575646483780549438064780830874536641934749408363267495753882987959059708555180564731496287711812950132892951290129291310289816240372187959898587121766455101627615655110013581098759349779476783492788936056205153659571664017635342634190015110331795697583740001238335580606050550544300978918560584292830656992585608448737287697820974288099859729058741107617288746058932682820373293342974442355544408051892797336677649973611283029352360788449213326609339591081150394517165713099316639010507839935249550851418385989239243383916786939269643753931220109062051439488533244095499783524627419411180816037660905598892909800974883363555961780128770164727115866931214160483034302881260805885708515139327562442531089403525800149087193673498375158124336704388202690533255823802759760755408788648061628280644722871352731442117768987675358361702557064406155010561104385681510119564531173598287323718345401149316350766175635341498203628335892830929919351424196259160134863077929886367046152315735236210246931977569690926422430701040461253276069004021511910190989863960690856176821629542356637862415333289613373837135663948635674318488765571064064090583027057340672649818181743084084190532851041621653878304362110693287591798680901205559883307866209284144435228207930299359335370989534760618436025451495128809955699848831285952984928267522066591785181991501907352562370342980088840792467236994038867951639265552865571829658044286848144974257468015410597354488945061588081723960803943834929968793076897134755353892044623749226751953973008351263649804778129570627583230670495080713244774289971496676134644685282390715225645963199413963814175156660048660485948326499723331717729008963193542876164929579101227109519231719384861220369291346148160033018383054874018591412987645234047265923063563206838346952136699321876947920061014897572631484930058585860826674992192351713441319307876810971983142264061003920219646533915745390958022970988206445048998937892007949314046054987263059145608789491759801961987079812469544448726063290890406812008683869324992664493206241658763014345954074964939746877810670968443636534903213995483764406191350633664768128918844836626084154796877081487332412538904965749541513685845553905658004274908394940110802693018477134388474761423135761681436419415439573079161258236969485143757423415762672020738345826120951636330296133201900625255215978874195405099607234129801911429068285255791688221682143571198507277484516510173611250651732955707722061299664489129141455002105356678198502631862073548699474743015742091886568807412142834720774878390381496374967483669497160828742498806440362571204399220896401827564875986432709838961886046239094288340249195908827268720467713213943572341817387148806975502816449993977818045977279928384304399049805471123312326922418529481762602823148376944437092826917499535098709218832675234156693500354276955318634171099072649273368114518573067615617666712848661825025955828813889272360412272053287235915688115188471690283890203230377929077926274668280981801654834317222297456063974353794546167134259867395225298143385162565359654480526381804218132800963337929654884661852950097283722115949078633508073908876860433552252884426274782508542723384179551358099282294840486961858709904455348684062415689334309797835405553033841323204369744458956181053351145484349685108800197235635451556048866966613454617379778700065202424490203953696509892687782226790534611444372545736128237258172544047579431473073437146813484293973055526145935538184084278166125303748112409701223582717934703872974126428018199326833582193176996361137069164917498037318778001441638063738840281458509329040681143483891237337859716982420829455771738319806370859511405832825143446226039214527734805735683406407411528747564804155043560654276874376942523098433534532168311616658114046992087748813587869827281539788163242227483857722631881334873069422822182265470092329740177446627279823722401252108471598064924719081625653939905939724601036960514978653933777920750093983630539550548880111076240030769510327240790420120074755248390257640871820542746539786882821544259611991656257898564339215262961927841344207303491636551693330131235581520560545963233384424654721974140477438755219989735269163086121708009374688262107887394505729221993380775785954023764266627312898525122456290892117512014183682954895932030040834906368229078969573873044909736026556180390757867689741457832452839656950059067611678196466929628421507812113301102872627632455517557090020280825618856819094555940273788312340516789450546440532354585834083742499254057475975608117596770213348028203593757199991346319309376827037022708526581964051232637069054741418899208707901303666451277706876467137614164254902885277302380557378672044824922532244000198708280888404252502107888047170768260830197703808415458276560570502402558072343331518796284177584713749730404027142151749796982968194358152275261795658667592284453130688319839639907243361392407760698988175209125833128724495072599002140961166249698728525224845114344579124991861245943273132853823890088164520649024644965775475482854829688000427648393669797109062978942493619984507708749937844342642579215504387809051295573452869076061506264209017882510567503207268510610197349057510399299577037240973382786414024598442096089533815283169435870026815636485672195835866620057714612584310406267157048950785426875667966898116129769736174454535332302033592102094659187207254219864945075587191864550612594993242791988921610989718770387119768603139474181533404070158517190280339591178149225763839764903968546433822329835731400139075924905267782216930405817518775610402696692890039611541148882631480847167742949765132642174822955612702887573294585443865575683501451884802262870483872128238302108302337065373173217178465144025643646080037157851200608010268566755992314623846242974668389417499944021670559425035913510486811711091963128813399575887961604827241592239002002556253370833438060270480124354852972883944223124592616384946375017719250639634279864982441752454583291518471749694922611793253998236964863919033196232742988550302680872806549720380433259473366441014133408373297492238222162631504365837810890340278317377108817867395020865180492822576190888965942249422903080630055734513516420773044244516186933174725008810693035596380376759715330766923009412324366434271949280643016927583472256705011734413154264075796075318843005155161050425553174862362190884441377146217575235488928911442622051109758498207280265071203651428275864177564219031036233950165653702637278149184331302382275841322745679861665889728080905781447718955510922903416679228535323922340019548358269149608704094642438214259889854209200574227182947751566815925963024205719897606062833439751400941450758598662806406701678533967437266377738309781589130469031753021179412658053318695079161468981808104422642082866547581325533081973315059756433811175108174172884236722814408513196737611746054628373445475274954655843533211397135303700008796277620111802469593460228199696021157696412598453600988645554738159358274913085994557679189458661086172938954275930914706682190612923829239686232943753169371443405827007258597528892640174469699830824601606990159125230909912273423148383406898238914580900032653840889844039330654735552860523780509868802814919193763905127904216651963719266960914081659920037213937859070947312544706533710557382517599578938207677083887747622261793284142793726200483205121313474819103592259111611808909225012765905129285070289619286402246379334237538773688786341880724532439813196004235957272539035791405066856715684814480689123643046795493579992867468110738681897648291220286728734466551207619071646667471443514591663790592517260079720063490990931248965521999524447966778397907994115828220285939784945490111053591922885836039487448861406331770650328440850819459312469067645122968616473076123500123848097330144835133628515746563592101135296175669164257227317133235382910535058979608401405401545519580658123532005640867949788353802820076466029778994141910785580601142667201643420691341043632151490453054329654181712420517780365084557912826317990493709989287723603337496001796249186038803588250627435957571516451071728055115571446757252952814214726966737871722114625106776181351038282377510133049345629704894316041923741293217346050861496233961878026577979947651637329579916418915056839936310932991416942955142669859726821424770983933308868641442975122685485000105402880540677254897028713526898941607011106566068058163110240183686464454392251845982937952849432478513540732027714006449086118279112020738653247021750511962376233066894022876476691176857226770994416830186914771913625621941613883343776589674217113637077577165602974643633392783505488393841835667553973490901859895856802587385483662976869577282209965524948431597121153142565522100849475673429376984571681079770959399256961515897045319027463549821840137415597635124964631408885422735271877239678583393067585842046667861542105403931706542774599461175931241217106445896569701715289524531868329463426000051163446950877580490222281814883886338950759456808150586015648878510456277053468824255025218698525549863251455678535211646843770554478314126331838023802569022301886482398164256999087038357229516042935997449409107663443890681994032374650913843016379233720677514756990497989908026334627088442953580138585091379891938294386377932778120672384333358879566715019301438971201247830933509238013262033474678235974770453663824146762355545456251728691653894760927523338085936294149942323527016643540440563078579166691661809484168957853446190104952382125490421411576718260949280408905559149191495111049662189497424771792741186616010276674661513869239932754817432460201433405308633929569817609253527675126997173544578891152110003474507095484683192330623252881695450553463079670641858260861873414140364354924166571447930220099741798634643224544872371904416096501682697741049687950921545531028962207977342054582077514408157289087392473113635697200967760372827650804708021795894607875552157603733463759852026252925624240559113971378209869474073512269880727964110077506883460233221357338612660040311737895275094253033652916422264825552102848081390270649705979605244347405187439589436948187456194515582546741311275375793332246416503930158599300978948804606177724959972424008508150425142373174166802488311062083378695740604905938156182333431705600794072645096316973670920102298133599858078583662170567328432383393698531949967980300630800315727955502567854284701310755344551195700400002157373123523540610263872282517363707959378150875075758779594674582977770585730005415882951163310176150098074898727842950056315055748319695095672474597130219148407601016615415634277253708126838075829386786497749047678987455615358664549581336684894742090390209787022198158051014690645030482585912884642068760840310383644212346767556023552506603205217408367342418282043767889820772242751758447483822070478984304091492273613200620830510731507844966025669987625376458450318994212823729621825380904143709614017900934471801378726227300892497199371584413649146775932963415512965815045429094837950160362699707565310644453725965445373913588645074754874190261871082602000750209481805580304769544025294848336878728557394615235573988046095488780451449701598076231410461953496335522635101364938142791578086764266236158853293372577660188506825865634702355600304718136201117231408015519679612407111163747910754570106472883599511939354818192378274960313605516751133546553877346137904670162189387257804085952883595034247266452949794119163484743533654821559847823814905951428574593367930961970748216405656278250582680997273215951925671550720355708662149443592563438032975307990311843151962650695738768369437310786074977612604945258451717285134036072663269648850698315750008498917410805878508731221594460545544292256339953917062238716876228719014130172557642260657001584733031975438547943301695464622794758344501632749909914386573837633034737206188525538092056823903631254235222752878372345157632558426042019358717384266016897802411728974918795088602743752532980932013901168917734976414019330825375786828879764755013614085476159491964836493418906796625913206651021812405388151701301770821931330734856433377481930254816838570223176086084605410569397819860667832825543148095882121735280255036500479373294153944874751155128444652202904016401324078909940115288632174085770710718292263979877274223654984480000007733301812836566051812797357516723989481453472839135172270006224349990343846832290727957095702680504974566432428954674335267368218788476384602584121081297883001033933073594135144993166727929105034122497853365651568335786145931070709642132689909920121831397688559609545741371374330302426252742991074170211248826209077136317392424369431229846034056533650682260337616568736981552136184958052501314193874477704589493431234554090168015305578633829107807695296536677451755166487744042250650209213453662067503204863739056611515269069182484949585289291294476408459002646382251959403298740460401828386362451496537133878122460161270776279479313773355024067043494611024598281674694174388702941920988740453345199146239883566041512138095024922299236055652554730383011317821898533985822734660996782716103072676381127195674431935057048101956240108262360212400123920673417035266348274660587000803091926174236177840268710513974621902447816102519796591615517437538438051634401277370697545178213541099185792626787804207035747518053488758006923947800540985132338044178164411256470934713148859412438218770371255208405760089925014625818016856319814544177232296694570282882594252010934983482250262919839657513730868095811278690134200309166695887173355562550086463218699556231201207620489064992904094951069793703025723406525780849588876838347147310027132233818068242934416532802097058216255298505283964389082330721059229791750857924834773454495210223570841705513639457288771558802923354429789373903411367212113535916065637287187961296055765795333441781259984049163310610863092287492655930604359206181479518986673673702698290150423165611538406220563961902661497266170951805098036043362376225393831338646226943449425738521977454270555276772858735873822979803665644956272531198221200212821784961242232555684322903657574343615580308131611982750050909658861492165728314604094078851674101998626006681718692580394980768157517674531113562220130084933364822440493121350444538369619631503433792473738285878969084351000324729833520908369386563019729517426110823209545056136196165289536640911478621592813196583558402702987366814501596452933393783560654270608076148309708368205715354464302827704685363526849973403424236707805655706103235044950621540497305394732677922054431396701475132469087437155065263640858689196646042650810617798174405758406072868761560400260567180553939695969464456028844475197988136121576896741908000777574190614891770306832782688550907207684128780416105429799949166990963078428220715951030292722017396890051168449194168075558720885451136432914708402183894406688645410173221701725134177383331825611209631175222232905517067648035654474823327835462478624433554098407680646750826986978205093511948897875564456661752080465709742827157264343870627282882123666936685348573563770662880445955063133457956485041488314785104725128900154134662406012250568163266893628514396275045693786740814387998211802639349035696512666634952766366418537640392057906501713626753002802125281880969230091384891952883522752999807321278646585829977555520347046218033789621880150811265305518092437680003725994941255724435408152066455480925784195044766589586787146998832572554693340382665174615398980382112306998305607340953932953525189802069465111209799886642131107828679202764868471332166282017906904614835905042623117380751633290928297627455030601656834407894882053825412188059522590846806392675421940379126086868004027308217765672739947140380476084777917621011450186722771153969128683826929592784842808032773113795153942404747945820276983136739788235843261051161979246925491269404536091894729274783922881706177838828641570538193732779613999719773470058751265419873355264374111321643172460914827618758741410197734166555249155734588279724561601367631153250232840615245213143348593929645304314677134464625392336463104988607091947532583514199200951527529743658918494888724694644511289276555050756661360573668403051244973615320138539728176551205523848472238113302576378994051940906434500758384872075187433500089810082930101104094362715889675303048251827039987166773247279722739197343161314402591181740390415649249073594364696542727933702499197504199772037233585068257124230763561176084319306667260877492370548708876864899043221196180744593751045782032280885481156005835828035260615942808932238503059947929806844180857948936446331594212780662685972104930485508867059328583464034914387669878825646032203297726128896426611381222271585236013224949435717808984927148956733836557467097672710081585642737176202187125883099461896796732832653264985222460500031184082510199938732688539576059348334882566256628810255783703021673691142411772885129579106169853364320887660460227195117269002635901123718133647788455341031392165478589698662429741114774785146531050158257183632949725985751711568259566045364901531643859762645328466860846190617864534706058153023503166432408698400937163064307048039632733708888227489048953466317731151942172456068008425677729013462958930972959565676667498918220408078412085583575995353293453782252348037762686085719662471506899073657363392309589773867548825927459595503773185343069843632627951906243055887925168119310659197976364878891615081839546472197015808849213867164376664237358051252686590032316722656401963089718437249069475162722298341624871762785370012109877943658809782287905124198052016046096632056461672759508835423656292033466823560528707839235939899802268863282285888679162371890575318427607278624784110669856527806070983171747896990192301640586691789725168337839576583199740438127481682455899852172272909459059118538385040069262494570927608494686192545736668542055993581917745229707189928099225580829234511462749899047348277918591678683287187517334146808000305230079535562755446464156694566707498821773135961481344552090147878295656464473096869563124362866369501803645012577628971588867297677234216515426090813655657752162844290715523413968047750467739523781760028456307416360231145948931178553423086822866925273466502185388031199852748904848761178600571954818756748450866423166863416873626360095400955629437316436636554266210974461418110638810568232333102960081741965467529152963762874720107230113128177278529743800783587761426283752324591526002162032629795998893272953848419026530115521647301378067235728254717843398514235900032374634970503776822466974889125392860095270485370575571541772990638236316645176118643581812626597266027353693623557777721115387041580836611935098866581193304380072296471852750768996076858440419081407685203748557691770819414491064858628270222039993130967192908910603725622829772870693883862504266993862742891095817766487905060769747606356376982455557828592576259241041894854362846465452459338148175127569267618719585485428698008076884057750925370759979569762646209943208050894251639113932784557502900437226517678250148638369308338691845010786772982787747695414522450394062499776175973738959012129474961008910386153940738435869408430802516936168751067716531955831560374415642854275272424104674328480283776579766472432991923426365496504905927595830704571536649457565639625579112594610577551898394035719167200617867490209705656896255004241363523455910924765442701988786808019646212113632801977038295657279543800825344443238445672600399131735458078768232661017399173519212601705752728098528723165336307837455199275245108153305435204264305324509587104819085475285008891563870827975419535010203414217870409593711917447148990811635794972823111036625165886590307598537386249235725175070046384242349742448691641250215195120382429721780321871594894014271109070055673891352798053215855513117584016908994349675183372078807304810277608542168899778712810855865941095123344429133848834652050289659172326293334192082615692885392869129817948896070092090058467216048452684398052664784203841390389374943977159489685210175471827153463602768679965913461123008646837468118603824285602385912933015205775202008642969532220651489036416362423937334408593748450989762301148804573091979880079593308078967420068221618605248922435026370898684199042556258192780654033422960149278627908273526765049863640495573834158155168955786934249897104103863212664337413691653513975923612691492392664336554086847656641560576378164902586293069423999380722364542599351544824828931369401193798874159428559311476477899335481188253446049135819870395489379491252053332003487017962487566290416304445194755295955478121139913806604354913280880495685382151007323381637215785980922490440059635114901082182392344116380206221105676378891705375040144851329733923877982533897089215102517346650160800237702765269640414282329434543732263271164245938857948136455714562721518411197716266302986826638334763056489804463875060588897909599998621085565872454974720562273157942692229423105306685525482377344433526585651820949587525993731442808996908625165926399299578587185124137741222783981562244944384657881974657011408133245908138894819127022831209281515944594457457686475407887050321941875645025719416431946980387570737458755768976499150302396298127466092617785150802206428224932822120300855153900710621741391365274052846086336582676510193613536065165120948074837764105728774551075267739691922959417095630703170986035684457905403520770719291341004268267636254577143044185442808016423940022372362802381127944474113670778260078099347106959116932701991002135478153776777800141327512049330498728166735888898754420986984995446647696267999780194271938691020551674323374780760427729867721045933594258653603937557685107076143435313260931716714553019555473889540969671766142968581193763432351924155229274830451554091737261391026787625760470603459402651630482386322553765335984529705967688891675272866978976705180975751175441682589524913459978210314830045313912944662949156548608850025051796441525869706343237667216632463161485171065036571248660621724817486169781885194578307016155497943989141232029109596716405219901611246006973105833180561912043081534625208516966483966278615943495673115576257656182633843657463108551137037906308720388679029400058088176629645004140450654821790521592417347555177869966954212334017643834976113951202627577676638327557760882243922244860940475800399103035704617163666886416047552118844460094466518588446768324947674706549715189192520150166923478836076376485828175712580090261467603638726004767294243045517317047610982788074616190336380018667898950205770408827784899360251951990277466084561031733008477767731062194032771293736304430407886651028120072777402522955470311785208946658013741186678264884667368990538402742936837103354397179527631315413872947493886520309122477822795520755344422725608990117200320181749584605326239151912625670136925160782719244315884116986706486375068159285021830638208560442795341382151519159658854755000112408102983700179788766371397973369421404132743069338313665963200105697154621544737758596101547531176069050606720039253297048668308808547743724661668597903645553412641353325517607391918201632657226010951382274835520690232787627336751996001425051613063211046005265748034745334789557416841401337789418243429497656650038405981477140517016372905411597980909450546561263520287687095524583995525769399366700341583592361627513475121976915564616451462700340562517720486009787555544093596594354996503609177017952038360245017843013769477948542679885341632138018122896717219377148915639561621171776600788093542514913777951100467481030857712845672626420224429844677771883801002668166175274024572034003201010128197158206774165927388771098333196450264176534267610046228942783311800440855824337497899778893911166541502247133754172017991861120098964559608707927929472795705612010642669548098850324003098565553107956949640615043965594878441870871689460699319163273097764137247920613915253589482807609749369940828008209475102467586995940213251431306188120659437615296846120796444158031570806565147324387898528040204840413099842639772568652147977217286727411282166807322492512133199203059119857785928175146470058528152782412494094594379096195908205662919086390990499975525829196146161951221079149339391359147788755958583295741730391781632938433641495476217958680841913741253831561732835694471949174853179964802431597429878753451416556181188255100639898044691591431640266918822038805383296390777807529638304097131748877093696932896677833924215876800139366499189067916262595812750926615564015947227533208778536946546418848067223517357131549816986591921989765048174863622736054057213290810400794375692230151338567295997187758535042717093832502069233001052253694520660657718835999468521682492561803641615605904508191739629468567713402668321638107879269208468840774281485997998211853427653626873300931497959563158057785237440522623447955403577305451534655820599808078889237721002681788699457655785961468039829821959556515452655922198400135757147347103032835179419546249236956274945380929145134331824453725706128766216102373854157067535214898554412134596091682169821631861871295456878076185095643415248299077750421432465897164945027697114657602297103654543069973583541012741038017704000243433555758935301698599130741935800042516937955505991280848240350868444203654304284689702308177610465126493178336395901026958079313997763249125477986149644830801891611310629427279097794235477563308137553133605320814208140395593763379323206785399360971957447200543459331673936727323375213159029204187367823251595714344510989719476878026987451432757438549152590867049370847504931962019172684956061066368432819141643778482921859817728335717803901450051708948558337339922032092920369849825688804506700725871435682776234571304584011360260075711165540434252617883716408740750584914813172484115784118600612777861709631896547886684459522551897101350625133917491484219736441255099741903567373493549177782668383185080756198784726263067053236825293141196937234957118126915801813998314976681966481549267326803987017809995161485083460734565128534984076164737728795055475598109674368923473128540671653632392668662373397091697761775237406680627032085843657249840606689746927432200307872989382896613214002515539389573213490720330810829394260095241186346369617018528178264812627446751846036065117471916166030597081290922212763389969783742345118838114566903339601852920360308260960812863964366717745821702579453527354387487890515380464308273125307244633020627168790318605617808273853873514876321321907260734663753435319621645720896064574230949497622013555162591742465447089457865997539868803331739320620670797453946508129817830383528992045387913467427578600413436944345352269239025632198826418854139771692857246608333090847157532095680139810874175064301496394635326989722917285961960547299546492637542435930536103319080390688832207356400756457294742066647976450313453121501307321573097923474588824037421003118962533048422239721203013331882312311968432571843961200624006580243299614702308827671436742168570333913725662732482358170827980854403138120641333032400593787965696124177540010483575416851166386430856116368889700891086214807567599817824460309595344262978211227635365597909236806434540641358676432968956294263655632863563861605184280300528911116776152091220898210369857822387111580190522785409424598213071222194297324549234099871795471321918797031104121807024238105553182896825213125569445591980735360069593373518225021304425828778791301684713763383718686325666667894622197467715897865292047596939054735786707243939493625390284629777070217158090656275137727502380082300999322604002472019019051185443909057913613290126612878510329064835580483110918416010939749969096724834591878021448573822273756732122239634215562763218687769180398234920800788149007171274268549902755183178798470371352276810751237555290119235569645594997695374431636089860437960142067335509219116941066060352075388154829514849749274952741019887517996742347017228167778089371289456983215801657761607383690397952881764757960037563399339636759324314235473032608970850000096587721466963080646708683531347998248641788957930568820614099207487628543911858192285082369891100037157697594105709959168720878982320828311546029743712981272944787061356143199580513187897597504383873273197217561666704782060439012787573836323515543037838485917073510057530362971086580548514073399284879189897197123487296855302376939757404811881679315656347669765244183984884891185348469893661505611031651121491126765612939564260404299690947286234671729643284016168097293028297323661880308722156402696932452959894279202227166593354627334188420454793069875538117506379756207446163063902469526403016768393681466240515166150285019156524428308094546424059902069223215544864163498829312167325133132922428234425496244188226440609391148495546524970593340809186422360891069816527172738625417300336389444342227207767727857829188977407131482894648146941357152335648481389969493166405344928626187323354195862465786423261483124472305510325121489916901094863546024433062761080587829081674379290706449500134547311920815381858739223859407512117569039059202332695448642507410795718869889671686211026913904846664200318441003543032218629349192381024024850827253931047723193388058443735481217172892286386516653822340979098955590651646772187349700814706713485918707197109340361359507600680097365019474732661556939918792467122850972674982680289086402601668033802635594347249626701808032340751793793009989861346842480740016567621032698572078364915555301922228298548614788386787065259742037809366533293260850812185054970766845279986006479165955429977802852219252830320327053077432064381292027115076221274992774927826573847969391643174476808016854114929763226726612982136165489931821779788015124071556438013737126643993133384314058982743724718341279794404804601059489654868333990361230665437883415074884404209545248708454409188250197604609206781437101393922345158956883980006618573320750409309851214383170235012227706448041915917092583737166605509502351323674616020603728227589017845857446746703678869020766148314384719614134068257923118655249263482206062319614927410902736873151490920566190446243210039868247184654884366028409112130973038545374776919422072301991278996403729444804826698735179830410852128802150026181546278910363263724784175010941020079576397727684067387096034862862574275782251365285661477933549733765280221787985423961371774694857130454809383237946782994855194605868855014489538876721664046478552371508302448283680631371499538287259022548611751074819856931404245962642322743595586570682098260668486588292243757855315134092689998442177224716122889379973301406721566172540795885166243611855699998964601231590919011190326464875515012106047612396736907491441819344761592262182263764875270126631636704939996209043656228081541413571525515773651911818335935271561413065174808094020752586594313154702084011989202995507040909517887134066815772772343872056739631261346640120709236234013257199887303113366502198608907873744108149863764596617890247392457912551404097569227657032792653812360692897891398431512706931394770297331258473013958279059007394795493198008807808180913640388639124472007364087634937541473947742569188963264345117736335781776785999695306703551819536988632785635956395664819880951576335029098043405064426755524652848148718688858377499168847802123067547886759017973887874360679896096112938277128077611381196484106384628926680811605603886017701663348603205122857309310396987769257135269996968439778593220607860440186551702857990614380706214585664704159665766136801992193972731236848596517262261358032849211427834376861511479802883642763443729605568021640238392495577629306411432098502870096194087277128158593033097519930813470882051310575701668320819354839699739725352159025956069288895834168809465633301883039216963474990379557939358587138816405951042694637506290233924705681728247279729852133773603084213491900821352198146662877311861856743960781237783000027059931655450004308213102276927968763843820293794641684045629933448315750595346512227643899749402234890514211699339032737606928695170475607010486762815737579145631541716710721766327784702038636872699519455770809234245866113704295668910910383313163719467322840346439003609851081315771731727995462245254905969578068479494523650095900190462847859012819841751932668997897710117871501391221712929942966002795392649843123001583596888871484118413656226642011664498137938114630316676367608042910517476073077139408673706164186994702289034820397700032670984061373460958264801463224464436406391381364363050635450809575972940439374987727452361945314666751034919584613033218097767186380787340865668649073272866372804548446652278303229287696639202674363694918228224981740162743535792101963672800720642197783346142821805863796218105777593906820950266082247923590173283011072198885291878991405942564539473550516030182078055443834329453757866056313701518160182551453034579764743469440055019052161577119157001342311314324121663209371079567386807663032064176011785786028035820117847999458252726146836409558892781650136287127700150223546738807024197731662962904101452082486662907106208050062694026335422209710426277563255610781782298211080635244935146980674809506038231003656751311009117374221585653342212776702439285610606137950975064915870330714006039642786540548378246136845056476727271429560577260666155580309527350046837718126791880951843471190386377333610611434348475497031516761821944869211773012827879755776236947306002349584081085010286788887541807585170872182338424984342601443232243259199690859199894753932812941288514640692999693714089366410250738409649539837867716659092929565506721134841708411645770509826682074611736752932023243266525241445597984515885643174844615031592218326341291052779513025136044122407580375827222773647586834130502113890249897818923335299782225652521135802681975437795050331689414677666181046251296448514688097175314675057702609782294365564083055142512985403306638986352575027766197959006250453872484004682872513163804553771360715013312778186129582106888226070455302185427159634005659661167369117520921286809214058716872407157515330057823178851057391348192293669653130473560660870828356618842998221049784174311910218549461087631693016130159958715933632722313615896940680797114095134154016209963808371117178932804660157328936798387797632679080764385679832208945965812116097241496876740319656919487309271507792459477522356112422948264169687706385058008819983173297415561682038839433129682579235706278541228478264599309840052265976727404664869551891072859007867895931649954082872335618481601464903674677221743250377558843867009240523302728813851270733423083491432280296174837534764486856309586110469585315503541704255012820219049604884100293825137052666525740943409092250041465158168175686079570216644014508552467589974560666840337058301925566558306497992120293696779257410813932866181919743268982872658254724492058957891506029380899061046892051138645471545451281266064612815838628682618790944460259472408449492276943410742674596482279708200110199461673151599824285083392384108995961003276164401294507996888627294560989452998848623139901337084015415364137113600309669162589826208756726951016420826768862451398355360179084691521174949800123391813494385508908294034873082789662023395245283579006516816895845485749427404337797695054471749296310291713802486498879670913824504723398271996996824252372666148592359911043332959376035528077177031436702751235257234225289189949653871718064399795280802046367441587178777308928717695696377212090527454933299632994956579156310548615578686095193547082586767442630095683822490286863669817617567903443269751101136095949052490985159650201088872358442778202992875733958169661958654479856329495139283025047000138808727158567172869058190113188845585315822298300748476914372212060081949040887577538064290638450888307579519328007532162767389406382620514258984741431446226425342124675536799276224441805710085840802068912250996106785385008328469680187589211413925970205963152752416942239612646507063393963804892637998525204662069153251611139053602460786639355245924724473500847094858443071107979982725861895593520032868109600186059561665138436233598992609078607688659336206061891211238971702535372827583783627298809556925607167517773371481221173332394636643312978931642574163403256597508563901453746103689576747832316941949687993058919565600885995476976188924118243782814443945616899023634473793296304542597779000352669557956877035856427739882269946021208556115419646632279411555217661993654304770916980353140088451012485189046578279035606288028290611137719467119606932428848494471213914491521618879017434594052733731899631967588511074448623847274845206810535403462601233178269988810722289376625152665509580911977729984985963705542484104263716314989234419860340464157843460213755900777371689032900530992347610620508382595090928782892972777169772838340515957515062641331426556659743599795356955993136201603264745511891129895703728243042305068381481410249788606437226022134073758864932064438209371925887661506697742624680663510042677180613647613785793778709841714672429914999593520811462117077087306338244452422935667968773092807040759825594048032092891391606252308744309051532683844356886212567163191387241905469323236168525243321674532774327800361650501236544270635829015741175222053344090707764857736635457751218665212886769244256765718065139614514042705773559804893299661271568823491864182598328059796403459605651905633685102806072354660271322787396950457156809397842400331087699270228039185048736526238649849859332993588917859283156305997477086670934843573209298465800830951483308983616487131293775400064635648637413446669339741054323572330768446985359589085126696814404184281220972565267279366154550419641401558342548851351678835955671441588950643272361233791651619775386288121996699269312980398556232218201104156834823988250208501262239628445469940447123775821964430656672228835844846557026470828800100296411500527964573639505415937253012213541361302377792426690643480194280752718211645059300037537664543158290371378501390771085357451311625203503361019944496912534642810280380239766056725200479749143157198618590839974736336191803805963468522855953938457008874636484409072630958168048264025430688488045245114917802344195103991614863987523711658905125855754405164717634411951695898660687742467303538531020575313364732327566829003514624380398475032435706515991654691494603148331046183108458000600922126175552488055970548385879886676752432229548513982620929456482728934298758935893032838646464717727017623058259384155974644475529065947157328153716139086998091751380986532844193903033209587149010596986619691048673062742702665537746538113535366132384969393778242267276851567341824079592015312583039532857952376634471680681985901858474019138721796990601527484546335029045581890015063092002061974612498595117654484705752993184827206587244704245288271304484248887656963609365170090947908754195105885933224484386975171909183413258758361297318410783370837781162001662234050509971335154741317738499722330681128366631019543130196485661426913058992694021215107239955142705930539600441034300554235021847303071796852360494271570757156180544902973088656387597186305828122746324654811714705260841729206981592548903190325829847503111741487579082117157841458074869407206198919377767595144079911727232552316649486012216350487669376768892741047230878552521437981974940698441139521314187037709391913707926000809425136774190281460157621332059723304132013660061301180255105580461162556195584460439931036623096450931161992122211090528357706656606070231546171431499489075994318541379399151226583467516415561741250463622996416152068706047444253945200919561977534505027628637806911985302215109896243307066059849980717603312616028188368191629210648573827248753008024776867536919539643141757806513495510704206214174509977573114470597653950596586629810780301822765803858964978353721501832058991574010638898563842792781627033332220920567057116206426726838192417378082966311249381814429908889375768233006878273064998508550976075424566938007213839005142863728133759421730997714749942572614722792339666238179119801819369309946570727728459162159476300774318519376432443201913328999933716673185728425397890714697569636430000995071486958965273919611482535777179731082355239413990949998747772665633010300035924297831041049840344365869197171689680231893078882547713092552122763434834063204776253294731204444313490591333484069911106692056540359761452462499947080317865376895403517625727079204666272898203824281578786287978080632789322216283450931508114277740359289610857653930036729111436241290058860008514040198618911860519281391003428038891567184895040920810798485271316610844290437619059803294105217616984666056688169611560705797555789103163022502043541065701364747020809415719486253814838900425160414477318834248900332515401498303450074095930726193161482500182567391001010735668490685166572252021070974213404736620939749630006958623467270556563626003997909884011668124202676635254731640982024190676046815430099425701581308569290586559915679033291191766082764606911842411203281188055317929143422155702033457464216107292662590449359094734130969723176111053631929587189112156014238982091175288911330217620190109153447510803122031877146472015713617718695696005349620705800017406748796319398003172672524371326687728411235519125027100099729754075819505667144475575623807355765303483106779015852196437273933839579866489193139690747906401028138340954337178014222913824024616443795312146516670522858551336811114337947177616074508182396688533122933041351422140430197164366669158644192978748515189568193078322795807279390828667800337882026963049677541236279553880297236444205228124845561231466262185630084356166494245405551705592673105189215759863222740499560684618241768184818044867182413030189310749060292103332157991296108335259012555372867059929854078115572566045162256500670598647435139687405788759735689448391074270606288730785403386262238392258995763377615970288667249773959720601674741080475430822203857295359431523332108241788375547430044280009718670153751958850543478449518269038995243102657970257957083397781969435907400244893693355273273560013763580672994044287663724667616118940485957277759240758052633377318932010730866625132228117808673324023938340830457227966618360232279785385315235936656544163338463245781565312005437598207717797065970937449126970096391037440920996900317419800358691125477191357452522915712327865888580712956266865687480293734319535506315650122132454109986240316499089454594739383634716630344092733270283255478154393266079658864876882451007582316180394058931910539817421082702887891888792025436011615847265974835518945885468724110704741574269983861634941373822197632066654956378337619301578137688351510437743720809641024199328282844536553786474175970626051134287723591662626643838061241253713857258477072179591310575685244965887241574152421422043261916851282762731751151194453709958379006062711490588950778404987684191781182741291916212760044976404888805840762024606603685935042034097928585459648123812208880306531011699264642300122876168608804456695025730899501409556322588085971019396343384394812759312981158201922381440369738581804913818421550773115805662868121882016005650572343007361402851317610221532885045772427550300894875140130817089617141716217084052440257726116808406033161090520600989963583938258992215707608955815357020549336487940539428882140958789415273436376868676880551670336863698650027800489597287254103928873478218299653407121342994818481482382748681241675671018108627287473224978440362746692903162777087398354163834443832471394141146634260185859499779405351732228272518967922577475677372377440276050485366702246092254008664968530659146506900072169432825185193908692079429510655724471273153587979198643826720318481313551309572137473764885662563218314197338739484574160057059949514184138834554901739548216825207873453673161738342243469394311422886693123175871974881596776387725307231307539254104651795260089519988662221088404640873750312823671338989068852572724087748811137095357171050122084294436417786842642409994214231632886003751632687594434077486222646373669167435987783349016180339999337886113428773918553308978593421157278500332226598459124279677952519125189731007006436855333280777709719638804293767454819964270714404073691604319690492630717445722463108575303783361967764870886955906202864014674371391153414777700874318010543672089836571659797013464885289851022878501145953376670411755110849357124765117477485970474474162359250318168582189118930850638373441854241450760943832468259062449774570094982692444584692394196438585107383025546148683271994004440031599704248734160591082872422110416487654444747542465091364154845364624636717799724854794308263062196468638867463717514704381646549068224018209893209179184063497463561121560002917115594576531743606620049514870296789543102451236204098324475962500189137706589187255026984567076595661495208190539800725256638065717876514391094939456797228657697955566476298436067524528054673629791941328814409954099817295240669504296411215363401389367646367741130316179945448981202964565131719250480618637575077700404282127029735045208525812751738629756881415447184164429818392040397273195787963667541185461723816928792444583229924322731658958435076752635268545131614040201810518600734490981141130225878894648042392829862895434817709616304843501844709485932509332256419611096831065928818299263615908074449518758429672404924814309695967116005843968486432456507098730140147056829839304998836127939667935462951696203069877849611290448622527916553890248177768350686738905351676808347635386111269715903160008660394075609047144726000752483869788272208377761370708058930355517052177492197019630073349805703857272728528739892384597576096216821776361337376886890378249742589007875724887724881570608654435498162400296162583753088765480225651372656244730710700782527282881814577103177745420163197084099283959862499403182746063930999863023279796750170644771227040192675989161123477840323568459709308359127594778684947228519312783206166480922901925380802969163924938803218651210427685096705982231833330780513769487450721023436733204040961099953836612538754719014061328091466516432576643223567049522027952755643382237405943004275277911443995793920746676210588337812850063442690143977093840763116856207125806015240261751125467696187375159828907362824843843583695107388959380973684735657289283405048736089278350286468716579249260209620817376312992543182874264349912253176916652419931704502695482430637071536060101917773729666549876904082730690903254132740204814639745707219221503124031605094185669049549407533049058137916670852585160938415903715847660377620243333220994272814253492300714883472749559713620867551057273250825880633226500363836912269944705021542542079631735641154771913077351930999578678558285182325325843722910493917995340808745607874716250471270485274530333474062117331555962633799286508392405975230998882080593337926271882318880935791122629213874496571767240015319858708213469341659982041197978100837224359338627482644505939341424524029085038547288240298322924933267799420055261769309112595923607248222360287160448478566676302465402836123279899923601464803884165375923371332478381395246880176627106067985792251804674309384911284445575153862659362457472368699411973254069256466538506213872428480413482850288040390652965210593879893432288936210182564833131866320859695860366992062590144756170306788125409714256395194793213953043286756931920131411083041215610634672201946122572613701245640274183441926424410033115755294918814510156658865511134636974844978411127776394074057814714589292655808188988170294740037794039614443851463379798894150685569545810803093179752596099964951070315937370020301186147202343269748462777830033953983613717190995183866643679801204350462193972717913253257895837322776313204134934897431337008750534979234071564524099678624162267249837975233384012500903786829994882883197136820952587859231292127352784901931015617864625182534689366757548862675022527293280390064448108346142969740183773468624329889083778538632597883933712707297483465659999162605551831496277335697516171267782405496958114503938068787209886170941891954848314816814771426994847471569440238229864869931288782142078423436240078806639503030116960124724400468512775370254585367740324205671021089432318294498088351831708993305114547882126453880228652491133146921445851404322631149166408366924879169164531080417313695568822337805863366954250621317931805985041674298167005365257634228004159087173066879617601055409483664795130333298415977686132994137669056947466331305723090351994210101400762164226004803978540246952868362298263773268242939068211087698088337125946448328275924297100118037845542564188079320414756774732511041532300242221165716106265948847065007479739342946409507306155650615727224858239037501082851290354386825223834018907233649856084523214390955937607338398241445302383948568512252185818163165485218951985714972990753694597314534978014878086325468414406828998710918461887656805291178700462648416532753430474200861028841433982922929080769053796031233620133406851636557498748393633570928713270610199555200713985681792044236018930288020322530137967663874994061658203021020846029771466769575991747593197003318859200715913418092024123628046343291156276851202632858974304861041421713313364910812835546018994873609886673041869065472487452261965589441198587124173765597178539805347572634281026114706848593125813518709143672764447822069349413496549159715824013538647452594501726085584686536806583593774655920358865645209924504694871478009866428226223210271630701004247845484909325101547336417605765785183041329244005818296967360293080927159392956948705669695439089177592193931185452485734894560475937745394928210117235779311157462095264623276476464444556638979665168651749226279909558303866915633693149268445115010654915639620170618810688713154611650935144723177449628830475201823137585881500818120196066970753632006384109170874511791172623601235073097606653002089755517321873272872128208097676811392134123411184700772355901725176127046170593813430769553236831465944366026472895511259972617890701178434622595171565529639572919959835394851042695328982598337626293896194870009673552119025326320041564576098371366053524268930602672721235208079395399684353535668705626374732075800190540833793231556774208967321231879832068611256596053684818141978254240365766987461329439724015721733769550765435108904384188729548077917262146482320713493854732436018904039512334874281918778756060863247079294297722357399310444119510742548049740423552737921174270140550149020399171361971335330625935891183136272709080015929539374637745438812944491296009764923819744489213034968216334176606973695567630242493444500659135404214877549622199382714186034835333506048636987360093137475038196455558716998976723268568409479497127889438521172046849778536385415314297627412167810548680646927679153765069186631140137126487934056687114697016436904978652160372304535528489470410919947290608781718808568610865809272533117440309097985500737621632667874988283804980599061158806760244756531599584988505648966672030111732958214322185975079951386968997752807162784875318818635338950700053773042994784948847200819459974974291922388526856406341076664385583591821360061787759193528617422876157022632628461873071681966803547600784219790101573917319701393704765624493685952694548853526653163326681541261447006863266186749141763712572659039442531462202954965594169184662974765885528921553006250704447180314707238486121463463238083950967936938217997917500385311527140843023678160225135273164586393227617261366439802315596890054084594046723322200004801463467709864578485865854800275938815065696536131711677382122477192605201757280990395859971360025538974689578576977817414374130616114594635341810388900550406103830992030497115707639854976724200178791827513591146830808160387434274937856700512503303816353160502201154321945103481305797927748660382022998114691141314503926070489295062338072912332455703122499292240700715038106076057600108499582352146721742148803593499954323708734102689303120026561127264457614779519940701287021979394407916630274803507373305855035876524488327506978952510668225152766502099816786094274842578022576416982646239351819012814250673794590489039679237209647025856429084723827480047072014949951085324705455806342594872834264477584931398823614272954360021852572793950845700500849524452434859273369187868798425282224568353059762095819619115274414172983170611923938411136768991564500307981321783924489707375819983928497015117175932131481301778893679250641447231530394796271999115140388524514711191305123374960205477856081592785946453430748433275104382079234290602521479923107541857676769888866351209557858265679128093506730180493146087717581496845740382976076207498743851726013652087067246077006202593136728545411337568356421704714516488929147566618334933461337386332838437998823506383749634185868159081893511034612144636077913020096576232347112184686999362379775212180071601038361831621964750551125758664239788301300262715061716428151001457952258523871448035520228141194494348090899516800848022053670506602312521348137554884996009584498481358880099950487618954971817640595279350326802624414960725010217559129212657357398254102977074298273596361479935179857658191126460106779335165488756299874715726943892483919179487692604386923920640303798270802529283481315885300728844933730815813425790414868516195684645159951655483474189129169567790164554530417316168799008062135345541153515231511070149425194614982204795111154263776800460370279642628513669283286017033815257222064303075136486484388381162287490229390627335591516105112525266192067072142478393046542042599384550129623202586181245433839990157818190852096898400255679245374145140653497522600774839325270740353881333178567327776235962524187093957242398103671361526493514823504328569901209008498994489613260264433477750360447592480870045566192128689212110114998532348965478372571975667000317901473718680625386194434473027587481946506967780402419141565923084818813456343458452897707902069812351224645690000016952357539609635858871240237405084231775593166021775381515618902503254815091717594295844543056388831469576729109136268868520913783488676132303822334300931489669516889828142134073138018021542188254665910253083687277651890574722488188992630753362840500413692173112748787950430658336891555701749180882598064953903566241721518144247045394073008519544548989192924317888308112227918679734311123213359752760266882121332774691822828449164490771663808272400938449642097850900156938138535100079597698017104905234624224362477293216118300773214088636066753932480236856136331004969722413366853135064270351466131280364867668676398441355792835006693279283061209865262938760191572842561118612168797380159130855958839502598420266609167048628527878346991703007793567274504586087296232913906451969205936701891835994541933945385031870361771445344963541598069830333131749195899652127008707673045660919159325004863531233244456311919973982818246008679929899695745928776097376894162970680772433164522977412457724283476217963804195736699031022820452609090520949083892819431431117700137996419728805686011051601502907769439991669118170988339886983740281583850104684286462033163452258789583072432770862389980059506493225567738054471291073196512496398781400173617832209212162697507236671229513832677677775327284562034288353055746645329866727985174130210833254752203995381547175267312690717228949717815749875171846863163400259649512386651335847074433527622195599215632094740035449399881915181995843931397904733913552721319927093081501650225537328235167770821683052176358703769950705295984493400166453725437514516876145816784653057731845794358771138332257916765048524355990377880748598354357396237641164561252635980758514432954559989241317053767521636228814870753741457211740282437271076817564382648453758365321391795298134353504783885783863123620512702869882836037954575461365005258994875509273958078290986373692646846367224198047704521394126270271218038203763607215758987340471349556055803382050478758036837974542895268617542231014472559095129217135756025336748329791578886827995742832996213478501085175975748098547795628412387756814381442407325864331601167701563084424837657788400246283005392326015132815393580843379997900123931917644582196659043503698537338547069555438724624481191197566916414439217092850398322477372630330342655749710370190289029966223086344869930723746656016928333075169033336489223960298080468272216602273205288384215652376422808514296022882643988591170451630033576845557585059703157418750718504702724950478008258151383082687553536999613132509734044584931424706900808670059352259800209379308372037156764798394396843853122744821326500997998149104210981912467694982771839796765385207518018093594060562849411954493070457798696353181306684903387723711489454090422561338291568958467570079629439327293998852561351463418057270474074816629133336149394509783768287776667883507278051320217383916662570100935540824813613007702103978905965036276424827160984706302505289602444802269103474031311888930604784482683359282216083292211479647902469705620357209319017135748054860589820464323246956101080141870972896755768725850168317727889725922534267004221726845112053058279433271206741247313892327749167841585245245262561949051612369399548713370654269515769802277611578044303053567423158255931079664893630691802258994598411842521854017294052468315310817820816739973607608800767528736283755032043935330369833379091992257920117400261651347513468097516790602497466469179881466721687927947791991905890209845614292397012326649108955183101439820552907535734969545476483321405594667726173453057655904364483618916675343169046994829013458545980038565038658715058911746082015939668225627583333141280534740065008781023535959438596694811304389755626805673857825499826436706330670303869852215562495209504879049977954839360488851488040636415351219237128587046879255031804495051394798669770051270438408273422107621261188830445507371912146867286338376288357758345658001771080045566948028144247180462232381151680553411904532942363229926923065289372891024787605883522525463344491200312016812318696926476904268453817763657397109368658263149524793479522279157283186618255322423249196334055121463020970715016338618304722213393961756521935090867479004836389126109098463215570573447774804529805811867456635056618227453573799983322402807404747686389633504724021004623607049049890840615246145275962034280421905816109779390996487049869304924671861385718364345809481249445278897563952069253032479692755971457568541682869677230951434037647594726593534510472294867273257020359351177889626233791503893195122193068058344677656977626045607101086840751581544709261950133667837666427231069854096799104305297488280176144990575908691015859436800304734388073542151986914917414730151717192604403867118577424968979601805728351729334671459103540292281628875328365269025391033503983017896864752713627846774269237580668368583395683789369773352087674896960084865823773711275604236082985934254809846112056681148351713465631684786761286233067216813750141519899919431214892195842504316656104483854725892421172039368603662663494055060307818506088853357615983474921147212775257648771536710014407196531027639370321894595956530970601608482927316618184612321631001142374700446978222533327699664802920884499209569401940777061725536244756657307672463521975224876699637834136225849493685640038077311224218527687324174704076072099883692826005699041769757106513635199791233085029421175470957482039118921232300807618990510121052464831266431197698989643237119444832953902945185845569086918423717506486061146053406232001214030493984119055761677830079840516392435144228478651007479099576144323038141456603139565935977175399753926840673252830416923503031283867121446671180114315142684441596024579990105131410225751226744224622728831063303236053604099972895570821893759031108343598132496096764428407060670963128243127872253231952875005226395346288330819054321158957770050131121017697595683831755226418555150620757085018799620251273174078208270948273227148214166146892812650210565243825940189787825493234774955247488396121270246107920965971064875049538050193143664091485208471551033867232558632015128299356306049379495803848736914658517115917610822300576115517866341561348399147604206862342102454579260013233134537900068709250578727052030450463367839803358842247121222026185569394556521434058412178992027299320178218952127283124049809205120275293483912375530205643877415110537286585944377619387706412915219296334430530972707875943635830351857252168031993121636505736860860712732023540736599641092258765206507810360861400559533410605831836547993678651983014577013466889027007582740081236478363109874661683179634698185484576776048510750667816182667480096416599690674701779289263371883264536071030961454878536972371352765370613137133270895366373337520811905800311765601622679054017442719741296327684084076620453867583391582535176079320752375015561803001501646857738619676883486692912435751739142584369802725839599754547280984166157828539859426841326557690085460974624101269661119458980773775341074295424099596810981926211727967729900386106409084651858933074526130261608963778576325446685880566987529153651986144386525779584589938702960494326820683698780970272995732771117124258989418585605861519520414441845574312296844737169131675758474855331109364206701677748225378472651387536367895748821300989008810792408008526175993318214313568380218019879222538154525282708557690468197214985149003466242606626181861571984146308837985585451883067939718100121125911230662878883536858644008829761107030388794278963025900970907488765267181613257871160493332261682433718369852828180344310242458060038529627294967935898846598902535644300120197607017357971909683932122839266137462080877522790794418960968021134089076301449066010420708495909111937735261957447807384186182298045178121046261071747840809054590902740282743504548048529762403987703120187950371991602701971271576239066936894689557510253154867994077654194456485662364741898692553618145036481437878197372342756122125738793799249818873023753075485597445598972247515040273238643853113079657768704520519928728920967014690780964020823640023016596846670009249084340317258785407138009066970117973134653464737032239677695383614932348497736190522355476994001807219532871308227235461809419147956227809943703192999551169628625208614913719061211023562039859798543601777020009018952062273978645967082053152723489583102933980039269616281765335729273395349419705866767157466103818343669938840942016479569118639057280521674619549066931807276369969598932653973223056194195767806246268977492719226888222937200376892311105451680402877328884043015873789498270793805983964386019342504226262043141854386220224130390912765504347032397653539562867921447436917729728542329234192691637333506408853428027022793317492415865981735702045817450017525926070870807111033719611559406056303551282195004540089403167528761238167475083195940498388244435564086253788297027825920742413361675065885674681362493210828071941074378858786624575927331495117610650560562548606113626879133659896211722962769643807892621534355122679606389837429180504991059614384504778349505612488672756014528428884453263170779675997945266039167001944191181864489739453089872896068748503017227122698750468656521397003232726023637402671542989329499348757216050341275291340927432674471751237017513486135141003152195236156636963457456076044995818955395005688252123729976400033817223293317551948493111197757936464654895288761154047694296321671061086328580647666664554967263449363510661954435075424342739992011304532352065658835301249716262674839166725137643204831455634569739710144706469460919527901947956895343632052516274632169919169471713808778950859107643399981959663671928143709228737614604670907675543905198742050127346669330684813664019913393162082515830905230608526085912511369258758718863008131838544367098624712364246376157548065822564113620681113693048841787390762105349807220866243699578828987926433101407807593756777530927751310137667840817397663043617235531529891963128023028779552616209256767623115778075296377598306547346690128653076203975754393397905413012982982413718318720694782568342872906580759474827593936165641833709626346074626597885416997292907784530344562043391155048147597318196251787809629331555696946213035721366041188422563151034968902125458979561316217446161561701637914718445207212970761245607162387718464476415653220761998041173080196261050144936567147801634848792734926358847844732729886744313475820865761660793949392963869499653710857283534015125559617115441008460948136414265379039652692412676367094955856951274791969605947804084671927867234060691279517124884471165643021497893997586485297843857712301397190553529185339648092440510653284819530845411991426039827878707590056062530666038425505436164844397222861716973656768101559201062025152794602369144686109916577815942797752176227762093204040270234460409135302838997219030659115381242630493576629692609572615353387556652445457242759763117137304126468880188125121292971679833855429131815087009901320144859605704230454002426143384218485183849786660097942980986927830842981828158166022678662734358454640386810881768375834725262561139808247160508904939861298208087578362576166742976339814106937572954270043071364074216438922257987220857341169744127083816737111492211425075642147845512322161442119259998582018688153897443495025430145103441044655096081878925404685654106324240868657994623009661858308065050972299175636953356908267243862297700575297682249319530113552354103248599438565362976738626161156532620649028732089355225701068084955517150282663527000999172476334935499272295756758611931754449255536377466686718527217709069145618585689566535271673801814440645317822516688555438884139274559850643702567257041664953617187663975089043556527474534411747337451374127312061555198088821477353730571308412347592934864063281825917695255444395832198418075186871202545494226400450322079463943659356079904075331213953657081590521173499508871830952243346033094207903573825902406443564856123810592588783313634362176672049695997893552205759682385562044137625143268970031394886179006368662598861108906747232939786150621776675402988888371024871286398083722451610950751548402842121649968991903682861998391381144931628461952375703861453882340372287641877038325678567924148018407192339013767323480208622447857804595598034373326253711022034916857106390110037004941940808503783059556406806518325476764225258939349055992311089624100329155023209848513336069361970070990897047376720233835108060156922378247534583063984335219305586118176302005613354304710126608436887224519119339618164842491584536991227305672363573742812695239621072194299522937530306700169328764981485254333718911707162954836285273141449256354106016292561439158434119522141137964263092285235086622691486947608217444836939220779207627318842628457816771673128322138208624542486167855532212094620347598372652490553092088986198626110695533591615197719520472789638284615760042904964682485679001186515408193085418078696529040768033500073755529555544505385635050895226884542274183471724815029092493419684307215807835735521249744085482373652401003825582052121507360282985235717063493538798587914871221981715566206355603390110856959033548889141494339160040977049033636325597718804432716893425914202823642982630520563247632599335196444771827547974187925404771164091062288980224074716911766470111448735053759027279181754617776253595793885827239853438607626003822106651113242079973357405046272884733638706859956718258287230065485380623486957703104499371309677011476129952188561773854049002894634594784728404144729518489877226934263487380545532159364002495321024021356210456269022436947126958703524516119204162183781890524374223216809864864459957079785777072128779997972133535891425020425316537712590310302816913095929731962718210639938503170028463464126276296971026837806320435357315269605994173216109643095566644137870176128228711813136091709269937825905293298918793026432440409589013713606445973366012834522608777266031048745064259625174585251439455146338437949511063355739282504495274635600710629768716249634270116788813765967184785084097641669818424182920102171326620728066509481812769996410415897075286283933914372489243274581038343158302911098431018732717623322819775563624938894430161128149919564996534538320500211505734132021074010955475823843679600492853280326029191636104320004352311106252492364485645107101198324375877057391675717554700446346332869383212199183617735429736702029459244431066128565050267613156714718357912420702034881251290242001637898796619037845674645346133896269006130692405036773782809485107967547370990393106243638547899832389695736986661192128939043588228859443869973943593369137470936490548728371555574747122931207265417095825640951199054137209201205841865996009827255302799745923652973534822650435917853592420537504518443223409069343875592744995583092479010886569304376001074499169617798581859267591444820715605995405286689725262971647200250175730638102803134553931129238602445213790716236991584154010664757048248006769384380988736144038840876907116722809277393272211073834442145785098238018418527345245188723423369159397586981768626540608721883849662955957205277821615532599814294245929423469493281516146840979993935075449543778506570713837901569935138716689532177921775309519249999878835732570041432679868136710321910432188709856876538565376664788737194896361760027349200229280060476294242917753911402154118559512026138202888653031891026663971735273768408667528242750179232773801198300936139443020676188629800889160411096976973986467379615070017915904076989888223755928375176465580004678200821353388065654004064297555002225057933783115496705830000388901848663502060116542605925956560229170837544412408240150772246429067554803387392121486064614772284649318920103799417439086096597642555683194199045088576671656043702194803602880175878903930948055126946948120102687158915536516849836615383308610829755552617721303013690169184023753873851997417351318091591151764173147998640339870951177431160085355239875374988441325626511596118612101094278257539505490903352094873033592269535038338441547877565622557621979838206723607190724782834540777353397446621461524862784370984099029737706323869779478250205470790693779427637111965591056061135350488514310048132427258957792416034201629492719230061575607645691151243193068350103713581919481798462131470233600619200329572472991956630694075789920065910907543776566910330031482251502591117023194030272182055790027678696902427716226069476756210726858913697535167146906013023038932412646878005148267177668572200463393096888390218848362673182339231128968305406106063211670699258692345420669069821396734303831648064082846951601809803780008135661915323185453595360921152428762775945558530515443992743624988255436965381746662165462281162560173437509174049829214559949588742856532049723897269322129420388817455503796553004139615075889515659480011916476653369739741005397561404880871066547283507230193255193230953983867527922465584043902880896045661084014990308392283850423724531853577687907132861247106988870257725483560506553618031176355923527450984276818956886065091195657406582791376942818115783381635118383012486058407668855597274980261126362117425445578696495964517999927340214617436304514095617875666555684610297699545099634423235901777501923040934299229365169010976028322448046745472619370666339413958972518237837825827106114058602559446638670725131853536408838263192146579601279487898665077147157732010961881673437758793202842741079824665435674077318136809939163830691854739429709682074412772052189629906547317236781773650906841750720118475891209614614702314898827687939658049623978841898044221185208059855210265922334254847393004636603057130196737127584491832197548038655090181017286979281684143874761952966361650476251724760739414654239208634027277390072865840435169220792858204088427816952683906894534777102466899260676101209380232834805539039777503756974213441271870638686073533605998549635855246606555373840163083602041744294718034663736304526301007763391421359042983933359731060077805871380574461514703856989209875240046930138461585546229112987325996652777796825778013776427742840491999169492463950096489641570025935309867594376941962092322077024661177338733231958292128776311607325449389477203759490929029456520192258623918074156212995571962366143804985667827983666018079472983415575409701578105776346834229936209847905047469551066284927494520906934010302440575974156945803271973918513056168633177189295691051972981923069724107475619062017917447991809244860087175644807761590366756382620060335732185017850488168280999013068190973010223349974108260156489261519255508146362572319813162047669148243451916359795219415425537083155736490554949593750454111009120196186253705889882360743428303162020886865181551585328342227552339445688325831734565477845833544750751794933386195066484503154447724517411784174012649407970010321936682558171154565606218412332849683525623114089105184912733766014793822470554916878488944253215411438129254231960414584024668811680839814194586847667111186912970594391596291003989323290437825901699428321457176556489668718331741818650900946887636786834957865730199762820444728812544549031434317338521931655330590980212202963076880432723309645682166795083466099687022491945329348122490587454593041883722752592595011406369308498543028962307720525251733401825292124105775357948221482704573678578991553029806631772561790787280492500296483615097569132087629113820671777449309431026720848307699703846006444712922522657035231875479891731714644504755369982908473934612444081845529444232708569263935020226432304483201851110340898198779704638320263470834410288862498612158356226106257976254440117773935855419812313749214126731190887287787316060466015262778178348178647417493741737895709371485609286794485295193700931995860836844932286670427321190029005135100724414837930568688629537407166700445787437126081940004504828763966555019642380654663411147981362236506174317113870903584564657291575335849426465249365127584076445628064408862355071497350713960679964726683341644622667278536354012695938263644936315962852994138020350271402950816291799505439041322008629102718081860551758823263844219785391759262822901933180005040880352581802608549672388038811864578150406382976866117205130880574044082118544227213174864546482278504319872996942295263101730093793928598400157836894531129690761609624098509209027553892841274098170608814857175696123064276119109691672068504243439758726863312270976246170896106428178415639708118613552114063185041246667398264196478087067881734248156221688898245559095085704919745542249835169219428555339917586463497475412050555253356205858481560606935404527090804223386488600207892072961796268556226443212752953501553091619230761502687499885540398643762239086584001301784324187588860945102740617853109066308689669062815292693618584839581045668764704265620890526056384542733799543524060201446628740836641838837169917766461646679374000757061212266778112534879049135585104439249206983395070331720047117889005597538716731594156372482960111802407373905643669408334362390213709000182873341572453055472300544310275928233854057099575890477628545228022401825215226499923548507809890844230861425547006614764411193477760221330253626461174163898134340180543516638682833162435095708785614533102223799525678763988020730834100204127703833949509945349020630038375584094544020276281042224895094458133224289466240276483382648409162594486622940023773801630634268297154477854935666395544823096653567344639268688745699156696479061401127649056485363368788713187805496589920423643965353004532843866719790999769555867247606790112605882531001508770140837204069149571371804478629655601658388332903439195315599781192660221486040715258104204595732475805326870399440589457074994983717414849388606792457123245386742177180876416056982853901998253294401411925078319763993515519279607005738810502730959207513242428151072093865242135656874514221001553504841447092504343996723240592084042189150002862100881227334928135629310691402582463588839530205459146434028748416922047392738958122239360422040460678055734107743355650071722850179646126932751731964259789936242881261827504592566341282171417215120148862964360887115847147315892192688192811180806383865230114938490377372197564212831853857302250383425579145168310071482640113168181223463517526981559482875640237241597429505754927331386794230394133197864289103851664873361735378717568118129185895937166152756130091629352312650426972589490112469356782650464382932072953477202002493655111833205031949230472366479671706180211125941916084994599104945298273398516684978823516225307063814123645769724750721014673111947381409223840119158485192390607175900550207846327554722249644371636586861590954537149145676914027287975075662874357824600724185594614173284559318567529995633815118710594735103450823618680774307613932375351714953203197808639059914711152894927868558090258286189793527423530442406692659144606771598313917986579096697973199209050572268156453376660013109845255747788449245233369003709815603966693119004389703517341061850805807144359722656154722510653552662196777410180926523002130307849720584190202208025589832720554401940909032667701762297404809251049778925738061429936766100511158881445309199891091156387710285717082117842883366431173098515945296864179858769189806292628447433963886370244040446897325366535241472042139934207559611447139510773058116057843221073364883262682980626921053767839124629109843316899299585032974623547939687202345438445012614150964679930298675256555446475732500772455347075822710191229968027177302443851318934945295279745355891910287870089990638058148314329306105313636978346263255124603308257887376888286897609825257700679218186350383397248908507383821775107319639884518149189231322218571979402501864042381782058720869456504950288318124664280091787652800705998229437172333764777316861793525423796036237368651764598387196958038707344056625888564809031665120532409227921136912971190019971780272989529544417571892379460494027596980620065319015922074116533097254766557852632269034860257114181767293248097876176402520850143111569621752204964278031254617766586424748855720010237816080388783083858623827539281502506990598224574759620534864223161369485338734901294964657772458116172117438602165322840442811213279844691590230715456102473839412253135440447874949983087795667934857788231956864072171419772621031601301950093254517589243018752310308658596939806641757076001626004385553247317333323031135133407282152655551495653196555437374499228299487822500009233306148294275235057968822620435931932860922201088849081208068716442947972744043591256242053085827892173091159294762288338829520523622667239700890176109745112663531692643937873170318698096748477203153755390261864305156707836604932187286118595158870809407070518520245243226893796875621597718526115528111883568214984467764367415140223781443422917578382927082102190547420626635615914157151324251254285203144877674474548821074925414878123430581829770550678937446372094744414604332620112860915758037675090295793619002299183304521677783664914728120743417083841054124910577597293329990831861652637893521886791830507233583318541134136554812354553830803660477894223627451893541491868744432551972248290993491304793072239820834869500385753863767433348057250499640621015568588965452658567771819400608533552347718714692016315431961677000814884786734291065721085714044161381950013487298603036215845499701849313286896970374725301514481542424874093779759473328452531308029911515570690565585302191357845117183376318700638702587230499219982626762563593080606125554786017098708278017543567079378960324623422062178106650174996647893931678592136372824151434379552407315713740107484620465675999847658378233175588078189081760145992867863652675830243690228220088730001578531509052198416651375797628435766362359811206736303140679188699901253130792721716696056670247378156438831823335565528540405532141077483596612099485900279863432638620359066530818815912203714884317453261908792291342044699870650793902110620021389846257999506583071956205127694327310167222638526575476423118715225739971857585987296351622661853543631397076519278774446116524769737075548007619637117231590903395449233236721780917311019644131185711314759816857002988913296753024850899097019868162924197774870147130422434751529102216570387780330977369920736998499717889868825286933546934896674628547118912171164656938362314476107702323196085590956232759600685643003073337365337663970748150509148481666012544829462750425835326549391870518273867178226057415624289213213450821769438789145804003368537090391811134464717388550730261695707162613573566285469784924606200081792951425861610491681136235114675584591728372105742568318175728358870245270247926606784959724119541596003423810503737070649387835228797833825277909932656245915117496754933954738792656750414787903026128541128942392096005571519085479631546583709656092761348435499726644400011256437493701253902046579681550429007991419566463520367599896272042208509488709391997072111686121466684465976257811223068187276504222329930455970552810779299076799338868700939527144017492899843226179422438186409982251588522473811775198077103518281583146773321810148380180699359015724536798359531720537852666111117305616102637643939383820646147970421942398006475117392064625788360523649447429542647525938143831915477194771358878475871844765008734397271110008690897673363150486874176632165581587583863330114171125853738228782358011114112808109592406675712856698483785921868848439294315921228124155118707897802984487389715607683490378559360332742518926701770074785296769251852381808567187662813757718833976361427814717025568458995911217189010483548323427118736714470297550170418067376684015628041616800076459373966532568490629093904680180698902533920715192512210678214585290575471934651036340898109649062079032856933791530371992538602141923303023536637438029426043460151466820681568118605448550033720879518463882508493290734154842122559632406661817292352430941031815855010822214592936751866273082039805329952170915145905511292406196820229566935681702055920349123646370896855474502715606801191079908822774220039095222636944235281417355855573942776138686425557935878580863577732340609807459906325297685325454631295582713179804440582041256196852618359864082075519485753510715962058699560068200114989540272437541369379144780616898895572843303150524278936583817302834707789101418299917572996876992639531786514099465207838026965720001395388468773006881412388530862959933620656821393425209310287814292855204848986114719397483458189261645014822771362587683322480739193733009460553088462889403729959447182381531824897076205129229006319458046630644140203670325453555709906874281858161810507310794965569510200122207370241032694078118979920686741126268258874751618409038603062029586493244586904709085553928887035804902568065895565342682097419518806403217226814621667515631205339872243170374084604312711988279780121973467688575230957816104666212920627523255142392954218363066404513012886776974234704447979266007622061669378191712253601628197532752912251039559143689046848806517275543426710946617231841092666252021608359513599273227710996066937578812303484476358038549238740387066721757137555723014947921915196071148587468684137093240955023765597079858337470698932742303721589822348599267859570082437744641447206722786189605009500201337441030743591376798662503746024995663554707170160297134072443959802798059296555108093195373692247338533605987613566440957148301928607963271616516841867773065387118576464785352237765291897456184135149273435259073485422832482206073896717483991361890908540008587646430847028990170236989632261595664825277771104261231040010565713667573180070428262280524046444513085362944156213341664330878582031343946504522505864187643282234984619769970906425530109332602569749503368954622831012165405179132583158712429063334114743130498993172094235550055957757028908340573460592087502657273939614905050180194642825810983124910611111091672244900642678786069073307227023001793692716831070718300528291129160322315055619828836259966807598424263089728217491206939531417060894630296685042913897234736851563656635077400059383139796804118564413393002839732885011788331750643308318841833950501032201822880030912372624930495051005511816540586779197622643827709400256395568244625395403294131017995212822976956604458460660279708263470951351833819574183233180990848469368387156255197512438797479010385993685427441351899281286301954947296705165584325010440393852675327005937517140101429480535000415303624630605635557244889994760037744238155898673062027267897507226108074483112032015383968249362365446606757354832107225141014340910377385488255069893064169314051787321068094697155623479111729393544553544655560296716399530656580708915737758004686015850415521872071723929097862825949522686604966741682326951469827654152642597326460260045366681207498964644782721929429017469021511418394310289643345614737342832731015523449005141101997871882878596144150210643623153581237417613838188215724885389694745209549631975683005172627958103616286673574651259114903302755908061059151400152967215707859842656712076132648355425657550680090893952262232776328475015236190569301653145125086803060052232293780279503318431125538947804109794037444274961087050499188202340186661535296322168669027834020321680664677241554492719207690512076204283222971022948193660623503761905260917749516984810156078037551561339315032846016938539341038128393387968637836618295969140357583034551203733398291377287793418342649981143984938326244708984907383131621889721430963381065410675000498706893664508345229860743808468074986210432706169901604098919738895225796293253180183291379180368646941457882849734123744730535479268747362132173888866801912294944526570331976556184723706467501519412823007235093601093880364524646865652599520765767771184020005841358080294028923827289951007771393041412054263520405844484889250480400874720224646681841998633196091153900325054384122903602246891692342537942372131775152945131249973930556603464049212411441548343149292181527417605987266541112927470080448900401825677046176789910477606502934569411625416376068943004213297015517259119043651952245756785132989388553027224378212765609921250517261960922216130091307192261797954116284163646133032926844482692301617968627271715588937593486794760599444433179349498195918372490395586075555335358348723608217238968199469644993269860262071190874216030132990175450086164117536255199593691194953435231881748344829112793843388763529871231927975565571316580772474949161159463968796995222121237692672235869187279106291556874200297217475659431737344515082517706148263630512264989061440227797582293722164449024231253326827409191520782787716434270079372064954468094633608248267051861971243784552154083217576340283467148195938577926251603642890753250566705148358024116507133062755539831604980678780517652723022735305788089203542146922500530808473262598161184008792965743396886671179657918397647351383799528279435817562078892119860335010340646544446439304125670040524954979394701729156235037504419336841062800654545874262269908115880694087476481008779442358327711174629277565372358339277644158965337269674223637602612182449313438912070412847544713327702663123490665211840719988837847911673696959381735063599929427606437238936152626209735807140968249308318188466524683057984706868412672579803670201389405683956209145492124647470381353526560978058974549146425284552387334994910743697552094598600553476011442050554778105102452680528465524468734640805676806029232593991316637122077486125778218158987274997201932981313313264576067313019551780374994883750972047308293469480045709958340509979350157832883153462050970049702597170091621435817148330896436927802002664671372594085861291426499694065987680243929058408247718378678685224563587617475895321232082941313501034879326393122178720820093945000055668785897006027512092458058708435353274066724396645758750024321426335143531438528577759086809649944891049036259540673724733132033367760422559248383008805233026197891671038794956595588922870281198986045066209141846515026789202292935162364148572819510909207309085611434196900846326614987516960209698943244911301646765184861942252147378771292369311719685206649746570967037252112406531045218605125897642026732866771423783347156398322653202910530400044595262672897890557289907032096740945201874946820677972497679848529681361375979036631892783836566103839745807175657675204769468642460806475836360194843244450738833132776853550617948015776194346820833355360270478555118246525077790986033350303154207534009155448928707149218283282294243326541735989818620025225202329197408576618122884407168807741919595339110755492176084412446377808658931178873780466344511384167383453034995743745372516444801896200868783688172356662892064083116098737129756900635002781206499844350251482385273943081241535458968644800207368779680059565490023542752606004906636836911009262034961217874695773308407283567170528304071991098453293290043707095004145699391248273539257610187233267607093141785281967524297452187810201057965791735250295654637385049537445830732708917485603937866071545792129831677051049888063039097446230528666132680710613178276202295888878383100052406025224877300050874462351454465619503111562498509389928307783112034569914595119224130041512164581393029129240938028791879676547922036913391760300262702170327925951341076797532469077094495652471234623076280237490347276085435471060993092540766072274732258243868708824463297286667244412795267185781389972797111824819507675256848748730513416229765808703238249893538222632927498172050008579811637024082056086152166139213801096791329369527300995923455452690424364393660293763897081875863959650729734623418744251568536558625006301267624314108563125584477006883709541231138135659735898066676353933849084035115383453126373824826785869137741537788338505043514158795961611551284776457522422503454225940836193558456522033704167695708755227170436890976311714471096269831206108985080275394535526784704869613211385241632104000668555361204700112801634212284247432264331730457721576470522362677973402096018039038933862548246685216220167188449977678908750032639538779957453002111042973261101288994894651627945800870619742817612156829194163073398227152959125862060765687904594570563178123678948207240831350421044696516375368722682795828075287798979979390909261561585927457960539482760803835279719852852468813143100358364032050299706033509215756844474324997001458921429584094267452916445866129293468303582596673092778679943097665841889993833157844808494606459227143513373130777890824992402887579421531892674587268554614777192189795418595180976215839459885026450993322157474138764592275682550285800256575377328108316274395624682955518832412846172795627889956873294512192794060858711377122984164851417556287185580450356687290717336894527352166726915246121855760378677859489862508964163327626644117607582677195178532707441467221371352627965257131679039508180237539634175217264522858622786825986761757087416103406173328125105569817237704567059574900580865392103486998301721155001099645387986875740433933683108660929120794186332156879933332058561811949247582882739371299176582722473202248959992192211538469523833930821345724521320901595421753974042722679642288939115761292416365299919250403751008374316059092773787654905442409056770348894299191741361149492583395368520305651430754948160422286799295268400282015508495325603996278675405766095858859843470904577751370314749436378041787858069655488379895027646575099116601019363312803606951037655122005104261159369664206919164784859251547458641220904866572193239641708412654519466919812054384171882754045983625973911666424544159487964518211265129624881229753111047353933502909101686090012559036019156765379151140468626335491408866989956206113635255639495305753264738398523789899591518928225738875462067792645481865696140674956298361061748696082806024624491078969254910433900416400157340142816362819878070101704106946286775761737449935335340017261757484213639464123800192993890643850227299739929910377200417253360559164676714595718937481214204622510647843308020073931428301194378910844769350595325557679173644224041127617174835217103280257195124789332580856109535802790235910985225331459605436320955975464138888895785876344527451199078868011843503075361644357513984753000565149701102340903694965831259306120278112594134544304585938621225122894426371578861740370364242292437147166499957628353017723066817531470989021138320759610247982593948554883964370882395612922021187271412041129365523434153946392575244252586518669455755839683692708067046415564832048424270915506501193880561595983470551431206355492949294945915348872777387796948150133407695677894089296140290857520024123574494950652667336489984337187958425852172124398016580544445761947802013134617944799441584932664424539056063767321352131323295455416128430385585551653283467218394744173867909200128495919172254367436019310437394837342731856722761388157486244529685477011600886906912588097023742455650161974096445404756223095710719143132336418399617283829880149440650737216305348122602224132529950567334871935700925476318359885784832849551493166034068597336499837044121893071153691972044331682077866981372725877938188727383734432447265657964631435875189120887564429828469454574575397300993032952507091707034230289319532770520332544844433933472338668600875064968302269239794998665481069089651154262918882578789688722013663867694803172168813690460708678347213260845093494290616876342195089318600686373263502872963006439625008039455738760706185121553527395958040932680273840145776239664361834418263256905549554788086722638314942196158374715007713122651539534319474869469075500954779155397866030344159147654956703396920074869972157403871672132688844209066308288795185967296899620057005815506619324272844218939868407400200904005636857270729097780311872171141925795296752639391064290338768984129179314756065161507751880877001145424402509599390519196923986346033206099842931674679159979448947722006932140907165660519723513882133286618325425864478015072243525250140827941948225248218769478230537049567086586945896174456790513335343911211068924107839336283240617707804529119210853369423292174813502418908729384404757404267778349599600344572762730723648570310669836176680159529863931156316790960010427170101273925184162686378419096655255047782416070912827920222806746872826641889868128536326023553129352065118568399276675058266631853575207691153868452393678039950711135221745904477352174173723475032729958901456509108270294879905343275589775577924832185322825086315615566602060466831486479989372497078973493995647805458956484210802550422081357493277991705341342009212445490815486236437318185689095716855240891872371611761296516508454496658647909308178835989166916173501058674202521052020683389550089567185197831696816266556157153317128447024460726440771448938230035704056731733753569387193816903350350288163538942772610842502458913890939975897908764235816258975254215276704711092475843221079135502781080102950877664267747967510701264007590976705762213211588812522009036971802323583945628700583932214011776178931526906869364090682318994755635503235735337502559749624756897130176702571136638083746625082153127462076319721491748194204048420280737691688327156164716857499031982393624021215788907180543469678415171697531542597243953959585069257658746874268023129685512314244598618583602852384182599061537711034305524987890858685227173250300522993504065070409442291516890678995406240791228808787770561523960746832154578928926979726139598756442029215875171558961080780134605385289355530496967894449089255363384290016769193848957566725916665242406651055667419366905199328209139559449387938554944472439323686309635214102541707602136888221570219297859601566071499893371652360508581905723341892146973496121704289210258936201163471613568777560937843462824513342912785050399615110764674467363979113975283890325510908027968385509086438135021365831217940648303466966546806739979069611730064326049577927200892724402613079858751826169258372032775022444580883630434661531298565280617432092930017840586035517663016262066768658121754793996469283741322320843230269416747392363176065817591384175816430957349169664596849765425608214731775805053140736219900452624658683479742639094626176714966991546750814882732259726612137593697667617500863328164542836048848871499306484683431275082912038792613990651406374380817954664421256579258430751517946720713123351715955305000195087385681992907850838268252906736924546084164906802597532177218139424604630952895648080735895803723939505655357288347241669323077428302237501399453548801949900657066766786350247254183423099664732100401953689321693074853550637476398844539800229483360149183567227911324238637678923996856238443055580031220300577128663469020623273589692312355646058791240520721896039515789333834335659513032085521397733777361585521891804410294096498172683459392177258842077107720930092476342325082874079705462099768666135241497626266552027326378500964650307343761384940365553548164799806764408129206646964927213192777845183301156989004166968917753391989767951373667420251917323406214169540291149086326831437729350935582094312739994599572663517903681702609120600827436904971687124670836279775754071061853916745738088098468102711956185724415238381428642461047690285896482675556212643202370557771255614360246717840573122378815512022215261838264588913391978361148000799576223054020207432341522248841052186932057915553901114318520557750501403708512791323392418460211651599829318424891743144037088602171141520020541186005957565983195906083172621680072369463332629319881035563222517699433957515319674391690650880809456216466606494687933468447606728638953122617827560575096246982136302827335627796756521083154791154733780897134164341670650374847601666577706586270035530966197071759434487621898104528077789920533863113355442531720473517150631532161494027134060120108068268085624442407261361600241241299191736733163980641410008967782470493149726871482722596068394947783687506165074207570368644381645792583513009250182463068971181122868548440808318344626470388663573979256621176693666793975851784439171613653008203556457878897086234453471345951555118717853206051889834794750699263501700424480313736470709371465143118174135360269844905554157724943360485731435081366366142153227187872947501159445950041237534664819007210740185965299752745257856388676584840395880000060219147306890416822227176065005435605769988648626025676071736092519746332960525693942828420792545218467885367398838370927313543325805061013480772632159531631445971722298285194931120790299487515367368116940225156395838833544769595475446065786945927049808302296299211021687463089968086148064863561750599317283422493027279970531392081050690059871069658819750718234990780506748034309972577093465278386103217495572200374623932348135883768138387687146330016200370023684457809058138742584944151173963221592341091605876967636012224582288243597839928193463623898456603672318728419514169234296650888561574271809840842860117358304396594705372262345796578434464984091693313468472373862851001413118893092792641490376648623844671034390012901830965579381611387049866936731520077172537628533283235100706045639837066698957332824342438797687663791919813516085351727621336978345176131488554015068622582665518562833977034463398830164964972980838447698246256006180631137379689187710275964600670419325297636203120416121789568049399289158245288811536181121126283434266312141229699558643697428703980833200536462652283613626562792108155532829801194194092849606548607405412880241904622892687691593457653412173174655325552724186099195940463497669495468930262975052527113671761900160244089852822550501238741869065719676840451846568821676595887447807839163200353809729734188685035826393795517267142991434554171323057216171725539083078357295023665376286306677462167070594538894886552439362331964034269479446327470288363768245065455027028793109592572583882555653155120316869092653743043194746296574035716999766809626612751498992848178540034109207258684501831012870398941841885922187146664506698566601592641448406028348306013726435139044867883247442313220400783884223486058130998306458045164824871809921604217125231661441088057571120974818442649075208754688601023280450818265722894038507487536393626277069426214520756102584718525750108069270660006861198639578033350224645227469316111484878981730676303623940889407828735415262273620320121906265269108192707462957496881431015182529945664017461597091058971528333543965784226664450707972573459553002630596219643695920958617998098999844884088148238301758993046900711627523346394325599982950950764538674016318259708885365515909380315102923270998678701004197291097533958506249408964942797324337177353439753340037716638152603374545249075263821417093648274129813488339566734156509713980715329832396496944309837636141194754202020180882520423592061834604653734012075265582846156756388289813853047056605207906590505805401330138978381926674697445876322611180242667706839521585555811453285509885241456525320037955985420960420639226843594570637995508773811087678791821442744710304808627159709658810858222770933375776848576740237820054000884972349053204547793631684417192107570962074346219009778155525493611508272287611335649949204517261504197696733705058940878372168304620256207588308748798122636502192926780009187604413275102382950429929668031853480350398373522261763754785343050077674403756271727852063705111630461936158880211994488305576544334148543969969615614950008228415617037679921095645575700296642578177964738402205891755421706991913553295188911728009808101894555201012806593519485297764630791753011243775085622289089954463028076619655078855196418202518297617852940020588652724166441008360902505224111465973180928213149574169681882600621745759961032560183153051402214606587493185446370936604436646712130389353075588762235486938197409480683985661403861293987697300224945307519125586651256977279789913361595280185691408491757990940116552803323802680891199601003330040474353462104386365442422595343772170767141494351022589434462616476192733683389771087583229041247588669052520133879448485530529339592856937764041434295518616296896674419906274639134002067482169098723657613417608892043656836909840621222715600766587294931912655215694987913773301413426263438950454511705820564519945056329998127913329163711728357753146284504419509270142557735117847255818032283751270437567880301496087451565561003526994725335789970284516758429426958089335071045546616934568334822140026830926752468506625374149982878400251701291792431021764664609386156495664788841402179604686858041792476596383826174504905191511206726963132563760510734291734312274458207799580694889041013592194089159058334992211393947179346148045932647352954818440344947369351318124743378203845746784046541510122392691363207272609552534075756231170747554025232674240796123268453448265533975870619475815687402253895479211379624883300615073201742735404756461146725175858756350238219285674270949154992252806443407698825978276968768938284009823343615827436766181904228005622541521261146164950339138605784007764490474833955117967487910741262803320987979033539093421743851210025254732960682770769021584286559432032651110194779523845498279509337037171664128639361722177009888289767545728894227300716124832418567682529970290877634599623001530292649253904916196018079806881571112254454486397229914284482985592523447684428264129056170818528583334228153743702425670059567335024846669925216170779717609175274786105285944069681964088230678487657367786927011676989646385875215848219775929816477167525213919742152946323530869495364004210141841078440159991629608260232197153560267116135443961420257469930689992841664833525787733722809934266003884443797842198489018875115578063000594101726330573606646665686487527575000671383775338555465709192683458241463546643382587932051832764795852407609147669406150812476847394672170584162084911143494697108393564425885144390838496215820357783598614651175941329037654040602941096005745342040459436834998516510771768610064311470580047366700615954451376960511703330339295551567359690055786525270473685850994278258864916070022044399443904861349963497647972209428171278084690353736545209170304185961358500401261802897922280257333204067884511194865979982221418737626963981307645087486284492015950179133128295298581160640207846928148451772011034658329999177233611717654898143314832596917201793440616459776301820370870508298794288267581909386145227853735297872565344219001613375162799777543140281151900187784009971995108331927302263424016227521535341305019800140895431723242717382272160058371818577376696076891124747211786404063613256983281955990485034918015493563203407595606864637921547695525152134034706266771293711331093100776589799484615837452385588482251834440561179532051454675618576322237840102658743261284187406162939324075175423389738760567738219325137192066676570527190634859406275209181666866472245048860962959506773855282689375617011789466697410723718137969495152720415455896348702599746554362752835434512108756765918336031284366713614638901543497832608800656953513853546149459809393306218959557730874346030515813519430770212756454725720819110933951316163824567771470381960109120280829470947967887121286814958861150482221149256666668292904580887033666763285143774875012421962970350114973248235259265501966887163758624547446695340125296713582351453695185180320174148229253776694198232263130297842719753288801069445385159133783668780449853961686913028224229862500082507184647818019182690332269954051428736412393678095800874454184415823626071972209493535070392228961144367150125600189670972989869873240646575223930803655331793698370512572128424324874390605036613303341747680412111931465974614756341946647682440294386740360098476098863698218592797601128762356169524624886645967351431860636829113179866678026481228953540519968055714954511102109489771989419105549587892228351701106963173609248717212611936845007364108198401973131160416184929690691021097253293997601616824416219251420837953831001122680436534094144404857043213088443016653870196038382165148105625946522260754452388989775040754057501446819117607371472777403489158358152218887229611223319451656188135328653271320867781566476550343698889653922438427359188355292997349450804627097887667082128461639636763959583520347085617687014936396366221151183137221846444606967268603920315055642036523944521930099376789195154140941976599470464461683572841570539943822638319821395556193966104856229031622583639694485339759250370826762765425750665949006328030536378995164687730180025415778967109738871105806131484867927347410896015706474706669249072983603201413681157485786861464973195369771075009664504077805305202733937519426187809526612927879312860160513647923750531055111699530898334939920261305662285590103263963032648635443700694282157608762328451785261415833202417962678597972346512928691735998182998262491842082740777072870718722116067322336339405323280088488739963472509070630286394578329415081276195685356292289172643958459828550013882474090056491222952528674596479303184398991610578414554779681586786280633094436993009205970312111883868920362494394081958519578836370735070475632337816665736999407328077832045012277938751356674138482864881063013406451954371907807019356852954932279812549598242446009484026436702678732500654608337173439013209971998121395237422669589825859972116807305565465022589634825034450062200979656541877638537140798427911732945669890861957775104077486357643084923527911228700429048173077839254788554608453669033399046741529894189225928948565174290646559244716245458495161277024540754554073656027675056838008039140646006874918435238625591053125021547533142342571113190051001819411816434850891069954653469620009419947566759515656012946969241774370134209457421458869227304282588314821590516413734108047612102570486679389685300485745846292756792506078394432631207038192671742865615573227575595131759113428806676776887934790892780567486461148786508983080951908402689854746720372793636380756208238653024536023952900380345218146635731614885212941689596838372671524252705114922259143130305462792953813737027733258005659776691670484695933977261974975496037253505076790969958502362058647620635638384670718824910552951545725683216171522473348107450150275871489618579989218393624875988631871688120646857059802438208498418972196205951462293507749397579435020563075246035253235207394933291951845596395207415336560434448885700760584445885261449714105021401612771715479848772493933832503074210904166863892142019810250761115311650142940346503995948296828548747913566976805844792257712205765737909876722294994142722324717332234078634287175438686315850947595033918666715047911233731591063726467618769468535328024600450960176747060813556401188011564119396737660904978417091618702428713816796233124116178055821085471923102769080004071934310576151134990575095575585985321326114400935916601829034244263530723840579505641851406048720518713740613763374828121885120666779044241857919314021001181180721005912908079638597555695757732151586641349120107620487646469600530616511787321373920986095714779204800669316126983947125235322292393479354917588224618350473825787769014581549550492320169876257698314099821529122666298835954427522005069626582901014320777658965933645654051494778429650501214147619377053031936063915934988104098343109963656656611972914136927286092432047236812626653170407316571301584396982966605010208226017872920728390922370354192949324953358898750328699404142863857522577125140946806657859684492662774388086586509359788959032317013887405707757140983253210432161419771849424017751318276234869018319734569540058745587302368108661951834901631135508018980631041574365130780686803601323718341267179243519625953142131754136528223588919609333633424876351360234211066867875305045943136124708552821340314461864023437245419749841538290568283096837307835769079545732899769601199064003040087460817177963728481657894531206316337834790048388771705817852740098822371240614503372157360806860128345289461288421091195329854767967735285231748968005351100879644925598915429278347635343945034743097401247191992077638408664625768167940227347302735766451497027083958980132236864398170587024924308665271583559600381249293741127555548297415498791704745401514619614302079104410919970620380543776223947895806814515568248471696098989835448236151331431335393008551721834296306374596263694560461625303724087629667537446300790742205818442453081028164577601123961750404373944146110710338710284934264810175379856478943991587753471161390679482355104674882747593259900454340173736643972091059879312713035500911495914551608813536505591524865709154224831625238379917863675723116825008316224994869350778640677748915987544696665076070959458897539290810270588890155520048430919599600043422104567166039733023889453441165824514802548546677632219428763526379582638762586581461093831682633130888787825793759040346505206501119507681687938915270461979015615348516634309439499947604981520545377511882952432645197128995254791418638549277176627952740713045275365827758062658734331986325902505032337700705045027498552535878906818859542403886941444706114542974542819009258777261074033908016304583951571163069952035345237726124274388363901573726866955962959512878088211493440527485230263316267126558904424782191815352484343862067072753113688072702060174269700759462238695062924316579037423227978353036270425090940278155567975626060384134677020868786744533299676500635651089440649550219416337699192656467999574672340241330314229061189476780776856650055594988496541808773276203602262072440667994115971914526829683619290784531364934953457999615480797519437826286558317669594668219696975731748266117355145708361873492887732883800017340223186251169923807521836370977809885867588328024704345214934765820531658001648583947223858301958049920515074056625028999773230596234925490206254963634557189417582704690625810388091553728746245236834804904376035254915028353015115814648237658215972494626457689483644089408759177214342541461388164755896490708100555056939972936232716737003187154317611472201404088606209631456128869859955736743447228972081687346841808403929568936303352182509346036620234832816345648891160785394578973059232144293637856176911970082630472323691284746401104919462162763633620254899967939317041112157721427847915633909967288682309555265267289507061846267343323611997042140388168264949715837327193319881800864118702004120908248679094417080386975743876165449200096961771081817658179323847354769381140445534030167559930131269532295837915662636915086602453390195408686816843779305373701704884213927488029283903553735543366256267058098388851828716205128333733157935916498509209111154576343605785160978347105271083334539810662557623814185579594127288121202655692172867454768246171125542270243900109402174084814437583850274304384524075768693153653200978619768973339581948866085976420409757055701254438357304056634407982266596856456886104699082017409747002593752215564022515530984524224009806295461942862978778065584015081147250244832360684081705930630426200905679436975967955774679460567569179571036635350345733545005461140362865299226733966646853706171919749475963621787236771340180313455897818003231307529688757931758993438604758387558575442139009340139864165974209966276051597747546403455688275023995429159240031580144436744521150833058280059258915959696048963320711305236117749955662003977934546077783443417853675503039118176878276059744867363765713636870192640657180173690617326766891484663656158269743830816152290629700206817319936132103949884643110297775831404265386030546824775897544853662279552269910166717803034173772992695728434194979369198319456166496294060800588948488649137753970006708074690249635113914438873119765124039132955487263633268781644260941649242653236718427623954443065888646380006550243612550980847800113791768129931202607514283241364623768879256157252140649228186024243997661638247008403946234456033877796837046434386170207125356944148803899292974955643782659079813232335739834388648320790894991253866047754404610397544514001849960622180384747193368470494825540051992809109788194184106360440681945331966664582186601283221398891904859367668291556586715677535867937230132976686046121437996048822146626816997086163235903022055046828925430283201946068037244450223792817676341699576891944054136640328624281327665851512070893432852542380399301065604736858604972953542891234685594681751824653123003504084339778860959660822022224857321398181313063969465960145771858209070398165000999176417053790431573429281485791796541759788657224090830066126505150847322196510123327799357127439908762189290688996993186827486963463619146052931735518319108814330870937829508333415157589806723031926131568257297132059800227007887502510839750343113286094116225136906319531192799103235099912042446556355174601432245598267322959228431389565360853226536403239552266012119698412356826866198626621556206228880950525796887699777979266309706103067411473923691937018466856688047959577099289868011330935086302025492863423729031630635535233672091208871176976170190821042957084233014056326037085753412826881389667081891747956549662623878579378361984640855110301890564182591102523502443497806448125403447165280982947395430761237741714601259976987315328278281169655222971593256549907872302662794801062303667247596051792105593083703807120383409761213295163472483186021402812824032917525215549271808358855460654265028176691596660387988262334757218256535630522676772622496019647805532574809193723232028611488499972033643358002868948980994464496225477188404898765909689711398401755945827252748599372372347423682160845720128654406756911823042507434080525707096678137692644510177670308933465130085645670848410624714740810375549570564631552416874503880333100782302082436898222533326094990008051513404464239333658523988977913333253768120015793576720542565404728960513910767989100240174791000116397099469315308337079260327278351547409805084654732679061050842407753400732418778030219960135936871896750149716673947913633224819409068930427460200949145162360024849078329855883120531183512562912514761115017200211734926106740166465018953073895340495884892044425746789752919376010005057849301459346876113160258538769647875997462503564578309971602218944937603084819895679572484158823402892383081653335128398957343252699571196636159655896997267123361622810549834215247140817093388743769893927722821825379322109641196738861810966948355314155111747294773094247481985363497532766311953195091633684396056754983236716802530063020465563403931499154552860017702209705516082434242752608925042434763285826756575558829200952632740167772425113958000844336268012601340458757746741782384762371682252690635051621698720805883134914576806060040235437434229841787014105005436176521759667297439497657902215232230151730183137902738201131928372376919393464213008004014885575581490684822755345095113789893917741378412593215252473168179871418202315649561092862331258398445963140979982359367726774298289178755209436068054759176660271910830288765472909076027752152664220531773686827743997162841425046920529129280438100237862052008452248274827444400559693384386453195456999626093000576452691748425536940434623017421561448719636491606824011117245160964532544880818478037444879801600940471060119795680449043224114234793356932432829223204308390450836718057665750080371330267719525729106442995002370662391916578325834504205185288722069576946582583495783955369601171938171608553756776303950074280663559017487807438328959704313149439772697478493845666769951198794176591221673924184089848001873048901167213586279497050892873329855603055256203114684696225351333429111901595052406162122665398068856340948607952532611477848663338879372767601607576887580684244399053716147115796314402738650102525061838305014851505057100038168998506709237270703380971057515301076460060419181399397425320736449239172634988600938822342703285321176227889129174488151856453300541524690320547135276267013684763761289677800512098524684444799111718178869555432735277303170292707740761101043648392867036420287758281928924859826699285370720203535209806074081869166003638086725467591223468077095608190758114389339220788336806000225397061092604243529543832754066992381328889600030662701214102573471757766003414436286328455232073543365591311718002574042825180464434673165460037194568266293560300159181286169196055155789768150796462993291301143660802974230938938094994930075521663346150242821101489863995770995004862054403796064736609126432938965277811149157720242400887067861792411081415161789721384391329314615280390701696875846481337232899433559205732371404814880702092034340015819587858101492024784961499985532225218630780365621005242738551558102829084945284981881018734593015398146314169063692557131607958753135891993015486875204020217171809601435236314410434046143927919707408501190086304703387401454619129311606322501529363319277946029125121615988585679878652724066813632417580014494702354771930059726709152852528680540460771930186264970942747295081270328337246736740074761875422169922142281774898271295711331822022878859058875612655915328978112478817635301294334972593941429014284693560817774733981160582543984856096963000562216293234907406483884172587000379423087094834278393850721563487346063094579324974591976743695639933003999737549141636875370043896851581010529577160768365853354149789628048890048309478008378985171117722183231772105555313237253161564986800815139304203891567944858555991692187889629011728092833064039882711020653636429178355939644361690423656610637362421304383941822010849041234434745371418273048990334944577172124109329019721750196127829902276843987694590444323440697884247972364160048805519431552047920044864003553428362643605979870815247173098453000823451986925997599769415793851354900897322307987394392797801115656597717418431748553430214486947848630733143816660865664365870532777773068915559490691052325961596245924974528017783803460844234105440536536978417013034812317275598774883179161888504125044836960023130948437655810745848754111168228856198660589498764670311172563657024232181526140796543989295211828845514137834598111490499512771937418771482972848535955991712140400396193421420230507532395478284970854253620201609361574418529925526563850935434645325508593167653642808588079668460323405309036206451121704632126314387566266294366921342584800976470029896328880509597790414286250535380635492489377991135943601672672153110848690422570896347341871795057699573758145558894114288137834185974377152816969322755051095499690170572504681041738749185132415847603500265919488699722585074814843768020022528786105386623001705668131861340560392607215994050370406948575971425627102707522594572924508665301583594403151025834957325847494940390235840604965101586901791718899322583683680999367982566328259955900903888802132871960747750946047888632735724270356755601568771214856166904553180748593602742039193212325658357925859621752938879510518007487861323523572918735907758143330493866433823460082536973173594827779385449869031948682691928413283973120428529656812765703213305119035130073810845304405574928090004572466185786179996510977273725276952654680306930796253496514675831575492500362379577168312336914297203543378867496957523665128476755994709264381673433470451844121463095817416513055632561731793611963707992825681478950640360447052012634282525851824723846514680681082765405115411718065796528671262141984608049154061764253410813245502837623399364926739561092621325113623634712130981470860681122387703403448268083060158758608138866489551407358967149725199522074004007706736071468529644350144811446595421147736874726603398100185046098198933792865141806275861229285624132647655035029196755692826431269211966676656742773667154077360603364589358528699372159991864934270905676061719030423936336976571371215036667004895480844596342115658631677334244814304618012417618858747559069098513345653615301019813989288024608308101539607706042752190327138611515647659174321793601362978077034630970956669843629831106310508809535725162512402044261464838682086583749708983273177899169165963657528849367092057760298015678020307641690803676112348139927370687305643199371601253918829048032976275928321759492037553017853692338176615452854618887460434641301088637904190696516316151261864843853309097612469294356629364512839626536890837448381284657186001954748862089213920505792708414063387254600170665863030807276313009772347629005498310856920976362765840158093921941057619792613274729506097440193366239745891754326590066482245976635656914137030331669739673774082156538844695525948184099711701095280390327178788887528024828789643854316645047585074656879841292793139342583897491152739852497413914550994113104567126463904133342096362653286040683640096841822859675116201653734541703753756419231785858991566243659787662212015553887207508550101565489396685742875870321657444240398529203222754445018162809745292975108526794726912830353133819884545246630792660262738492831395920881038045741558547616754558636529660487961603499192234113346828644687766451311057267548457343676283799768153334963400558182529140595677187450390682834714071046441218817231751851711852501639278304520804342334551425185066941387437518847268019451310579830114335726408394265886469197249602388792641937334401589303133197767515240710228235849623120470391645255456424710413315896907603120725890811776116286810442562447391260054813937364289642574460952052930495511782268101303390548015535783379173361777400967884125535201024869372106322938109753708430373725713145484775358841305707762584686467403165677430443721327749436855996756777751020448427823107299286580079370932222400719577494168316372743806068778438467781526132322032159825263623298384802946701181658098673336062691936535778765395349563990603625770929463554203537070318866929344882470561582537757293025404997038067370614685451500678284376866689422984223425762280031448296223916784628065948261052231097976893452512300301800385142349281922778256475022925048990492253272426571459819947647412881222405240012161661930213893374128289595096118252690183119061009357788889890220783083115289063485126041601453358905051793778957388160938243426998068374727766016521826067317553897298584609532318234512465102175080794239453689422178346364402339763214375235454676572843604499435275926688409185647671862039115527901221111315984510883309458951998624878447230489327628621523274742941158117026467927111417075577980068736491510390254785192309478198034739771505684660378180770228764449777661594585917071676371564182794765146948423952856339659563542893597132653778315312301707222470099413549566440635427866858023677356192974687685295156213234536314936253593095713171825882119766030525398413071103425868337440050344339215964988932394867129936362743847232824078220010383083192050230998207912543418006269470153868365019057885699592559937506470533321590009472166623763386238604313711297698141170719484266563748233324616418166595108317751166463414987407811813222789559568280847565011294470402625125346723901246088490297709083694730235720952097581692840724901986523888941962711191200798236026531537814426299734436116399801680992843023906468527679707661572109488827971588516274319767043916749056777806588026007306922015597197665080931385859836037090105631017795831373234963716868094069241573699865778607711339766713386197157714545617758813637507826355083880943985410334920016354264142760848355238117026790472111728964703155230397169103126871009357243124873580442369198836554688286260492983334191188901896348476684551917848873033034694785978720482214714054633694959267806613792024218199354723052725737583188202042085609609594010096430592428009781210494745644295976248415626016563510398160036725993788598997092327802655594023662383191785990891740771848423824867663453228046572590706252996348325699653885381753695020298413489326909834196282040082136749942724667097714104133172460786867026301905043921670005027581574642917522832872893012114110194454450888906026275046922388555627710075997699180401673902597863873157414373983477657266399295019559029096825184926522243504006153005002274814504233735145666059677101147795480085958426722104130050432349129973333366624259853159770197166565668009338405899879074771316167779613238137955337531454398888738054300709179257550960345215770262139690585521905884653106735859311640170847627992532702274161278748966530135891317286833461409630777346540106485770452877208322300192401227626021950444294765799832636108226285508124513691652923176333032621613675134938656670493600063230252976751677878515489824276128948829980931085378386267627890411954767410808815586836461574915187138083685020621733040821344162924340679996105422456146319218492645911832991064887275419763528736648468468467340533965582470041025866525410234241150731145345291845337099001013948628044038759761737994582074099220023948633875514156246911888807509173720679156174375052619468833158705087804971256278470596741820767336343408597395336082747278896713812781014319779067344792360263854556836669608932368054362935955090320744050749559426467394737506089186976535840945551546600242876821390388385336097382543213833152517011868072215946935522040837161829190309350857069870410162924776310851627605562728329732311636391420810639192085460227821490349734879306194846902957721952991303847022957453257813102110954972635090238653939863803634335580758340103323207530859050493712803923600568451391578577388909944173203301664938410218766796325323256992270251983467930181459243555751189161531398920977729597945583024086345538162406568449713444992733172989313966131985398841000213383126027847054975294914473955293745073917121837494354056975468237379576579213507035059488097057562031449066583352477458827106868515416086881624913997957919285674451261497566924451691035731888400056543561784894432227218964692443201718171459374053388126574996152681760933248681574631807321870806594283832734227888690702644673071339204603717430276311985358246939511407542152868823196359527903438167378584047678196761538849221300568625498786439547249517608201990174331238088461523780417552347973682627168119909029704503925888327964971916402597658016074152124172369321076808482047333681526491710224361827361808263981491699032935985433675551860006181757124351282940929916916350451858739881453933595829164008260811859648030641964382668090491838010300377773836235535083026005834618951204353049754998537936254264838869934525819393757047216985378328499888150438624406099493831303240785872948728679253481964851056422583273112478433996330595327198045397648842335293395076831427030476636278083784733894549319395069192533887093904972227385566598663142630166385424339122455360323746784975263137346110074493069352268443916613008867639964184407167969622085674604767209019056868904331931400977819401558863270955995534572500675195702228964617811105471133096846967537147952763597481100687759131861291155592214475360264494148378123710588149351646319152929272464076344756393583929535000690097590687565512307892304268978172840471534275994653804622424894716612807979296541513496035647570006000551828289346553442611510205927464204560374249480025894949043227609416594337283141818298535608509104990014408695641579609321424377988686529334853508161422018807346910584551709538882164544462452033057909701112559555996241227622023193993867712866748527445632037433006976606725257263926303752634863471337293200713156400539488809083899830994611847860121734514920246697587144053529412946238325733843107615861796706879296999333294177543446907470153684841074298328091587705662729679290389102296418833946226429519627955709153286446710158710598340554793764746282302816088132484815004801161990773198166457891151984639100709766652942011076062789759383230464036050172443070839920239862879387177104058861651014691048257070257762273201362136978019681202869793545773610926580770281317789808637029639293478407519226331868911047834809933857984062488566280095090646684651320473234377965800388404967334902973886013968368055742678785426822454477559223018109494404821496775040325015546310911841945906098879993451771831928902569492250640809184332862137448610038310058826329477039561616106884008093752510272663372405617634510590146122599824911883966032104157918662608260071934241390350129265573791399766888230584034024189989162830405102278505676725398349322867500751530419033714909798119713643381377768497443207020126863320157700360610641256788135117699757164457160429788345865698422438711738901878350679342751184283764794926670865222738645514431736754947112768386392188397471372898722058992863998199047244250960660680343562033786144823529918907658835120152798320746425392198983637141748970434682529078379430767299710521057507121225506838825862465569140940041345963568814310529796340904568696611992325911871162717921972120008810014507391216256482488002129929898536092993736786684154581487125543917369626381338786154434818025480455461557774288651825103573826577262280066694980062974034333917171901408896285616438616839167985258576675596349148483495795621499571633646073172271552721678179686530909045263198856076195142402695558963948987715347607868085770483811890133408473160266103150952134312168520505680804061095487375188153064831179197182288708279682960838024802903762002657641300109831264675974856174641709387882077142466517884487002227062191419812034285355292380226363243792773319351541022387969271077556653318573853434084769508710257033647399537243863368854793779681908236305910543281806849743889261048691994547201980511711623188698839132870670167141002240644852302496810168656845229627720163892202178431116581754847692567183988780655730787009222978893456375608076576358456018436889424021838592884671736640105456556636006716857636296383131946266451646600309991537631872155845939962760647101315330891355978945333125473310433102459831698686838037543318960073071160150191195207386426328501039569777770338481495595644400597435688027664289088352917868952720208286400290640584386141205365892734509248737260735891525930117101244634822536579042551332684021826500759422863702220655177813064377143697907929130102746524233370592664476577599052692771053760092551805732590993179021332748289066730981688380040866278386420691766335237261830410606015923775046341564558361664800221924342477468902368678297468228149757458385683900766114515256178116327570832076537404176406655873879352753422234581090479074508025482745380936562122117504386092618715786846382145916842458256745598153230257199549485487942423263846235329883112027432120535269446580790243433518270061963589070543595452248675982495178839857286536008407277926345069192662847230545108555741390215241358047451357819777650095544184268601015181302890956858079441401910450315652397093355262184428610657080206778872691207808595586327219416757213781177581445747879815215660841801041114301014008222684127763576470654377850027791842869569594375750522490258231221662964775678329549014255098770099730017668058374702106397200073059611095757933445293220082695743253611827599094306960310010042777362225844591007838886333986859022375038956982251482242036246042285071852368168964754550961118890534218605277119113527452971843248390139160790081249729927703487142864219611809926816813919153690764207772134861986377653622681611783675068577230376837131995409051482081308242597011350660252969551036814065902285938782330467448366778868709071677172166298947790596860909134246768602532068522447182469021096296538064012649704022198429784311756063466678066383081428464583025762334971531605206645127530940209369076138957416590462388956920843123853561413297113054608166918670861585160597880448118143770496767902033903796351170845871595628938758061668313000274598340510004956442541396231774253023793841106803394389065137807156414075545435201396995950411349170020639118986885447360666055258839124312637654994534888831326574372877895993887812467426905856051204470758963195765891077344665584323100391333704806973420329359572299985839650303731220393969822970217878898082728815802988585809990327555549774554318573538206395511365712097507298326933226474564492408491488904699714143255331404166840216085854706037778606262878690576606091373968903979745688508485645479398717361626091731820355042597665986674012068383522394519843085746043474027549339088353678542333918477871674707918532851952202549181240957305014710410751548266055276219716159421755327874111762570319361571713824479893837211589108074778761756872688914439463548354122666513441857081931244057130757001175100302999918080963547273462762199766745238024409087920893205955192854369630213229587586317567807043902914665170632346359542756757860145169823811639224834850985393413631910603836626234366331747579463776675312383346005822796334422429797927779562470810380934185922658555154135728141521821509872646883498410031241180155606153583054391011718967682306037521741963891206251562333525538633167734500383648212846942523354622009769421898920999749855386421135847882872574921861064276808653830924240856652876542452443300645771226898407501649556105845531068824962015832156689852025336626711151914587158138523791532257651879363349598118991813583141180086501870101017102434833186977884595322829596236639082509339901439567146635310661426999089620913972629121670469117698653390660038568186098385408207810850254724858693444384999632011814867171044535507057832037452304322026892333861507022659109997297806464877409595076652928314633561994476815464970920097428558267645061686579958655702483438947749093317491969716667495666855264835869784448732363312077756230446864961940540443190439557018498124666284258130179279619601242479511720187043794949203729743966293044980170366974401500482264236896981699378120600743035222384746313499722402166328265325725857171913727948058548227000226881648487665089084180869007515388061769284303150616501843519948201655213360677675991083023113815391874436547889524611145325994302832345896169490760555591387323885210012781970208869747782275624960300029792720266915472945918250188128492430602711762670393941475528358213597941671392618183900196715878301555794358647643012538545181858271145571581289223098716108263350178719136514065634469141510402068963646695993133289924367119095281490861843644094594644245207732275920353295347191117962436037892468127601502376721832517713239034404540523109098139655896818376184422341914067553590494568415641083568172627975936162639704292037113781093588063384464792659015929378765848177336483459640540676545827672804891361285571239216002602640806865930471443553341888942428943527183108796891880613064401794085460915688348892441123828907015655093639070531529143478672062181854911207651946224436014825175466794896579331513190254131959784610185734117749076789710242975166244397289080975767652803204400332265504127193037696726572724762548746171744031066763038763598260878666570244343741951386140459726543252173597655559645531024714493645214962375763039668671621031045855235887676638018343110819266787634498173250959895002755313720574845126027026007871482984683537944928475641650659360524254317969540013054562182710138532113668498446840750617998531522262099854603246450902749047699229847222366894014406991203337850385879404928967854830241682742015195726923086290219805046039131879644332292587293314872034295836810301362693767929569666633077186858077890297848845771876781001633608929451609902764301755585393997317579785298943546314265153979908611147098604667111067918789732003811832833288926960073066235871708676166844621008759784437055313276399340133019479172914770835496935978918601512341668580283324765617426004597306548874255529083060007505841604223381238516272873858471512791938534276639450098794525180489323698569846990525844500752784507158138335740951214602501040210432278364723001998178100650964035321482806936400622577439957001031066424211989029488575546583733644050225773297277839049206212810212553188504461440984774415656287299385760439229450761333897564175731427237764151322704055827098014198440322369340919451557289939671423943957074071924620106459404277451638086027480407191102021239716134391666717877814417685441997315378683991344849224260409643980355831607710798375704596596720608638136383265573839057183867849740602222965819442244547466511089605466086790450445942295353031736080337234247294888825141157499288104934300517989878378751886544368021797942383036295164700201118790928431964464117315105426055488250673540473163792748231817737792183057533493989662225745623540290756290601219548951287627499929996099884137035158399945146633232705240227333683208983751895253884475864667438390176799966412050877080919047587204577205722356009881407450659561910579486198013603250614932261719470425952986534782703606338199545224540954724294183145453086200401229491250621884268532400411834065327871253813664532329854280487448963590340415922336726263792493992763734119639361138137292181121932321992163171414754437054505430957840490833351241161378708460043980463861662398818190015121422180972347107706046240491992383011275832828285296124653967354408042319613592740668905561202307655644778413982004589179078739643515137853612557916184089522018861107570674039847372028293978959473544148710653450928510657800679452903957156445739519417655643110703659916080792607484041271711427378645914275567800974156144255945962248155227191120448312627887217949246694091395358000066078575674815945970132769037407418297104696971218154660803934130181077430448311817077439579080982228414643144074177805489506052471274628922738984780500360547219833446596917586164430254552245840369064048047499687234032849335714926650532271006679566085299685380649856183088142540234155426268318980976814799323765815918547755158013908096876168046398116879375868157477483900361038796876468246638134630736391588050480217457086051443579471311828015946749711596628945535155053349326692550643243227080992226783115861463741467526279647218560724115394770378802149663140110787961782234061865248987054989218491842719175457249789926173602958722959403296422585275575034464845414693012362407023664003582996967481405878302497287269009801361369832973659892990289735086089286088894343745296670701294412964113523969298945623462616251633866600520426176187012888368858251351905525573515741106239582542408890345679298270597269564662786364657584772547156491235913623804876393619257507089231396510451397253611135515712340726666960540809078831906925473095417487780960491812185884127047116526305603714666314843652727833496613970160048187952303135483911272727456526001746486205567917735062515489718721979432767625624042165582813508450689459469295062346322232974073719783727052947378097124569817713100378931432622278112867945957599139298897893264579427947028383178009118335808176267642172342858434243064717110055774584026122313547921306180910851844630289234807883498297062218848172361721365207789281910498355766125843677034011949534276086502934129638525918346731750974795497968501385481435014278964057556305714842527624262432832795583000112036871357270576749843104122242469907098801059853390690178377594146382062794722679307119003510779804624427453200980647252582527256291700342462398993736751001404686169659678308126287897345993363414498224159195125500310425095499565770348429608750443306102379983425337653797945671369881641879624119824226570912377645308448915007095897854599096594253351716871737429435079017708663808880189551673676519837500485171274721116727221806703974177579744885750888997295492442009874276456117789351955555672027303908873016475787886464485786416010165687856335283019535022419848099241532030287428031402452435648185163683813837379329095095811516269694660391824220348532517105485329246414132639093950024261691488974113483003289062876415889221060992328819666433545015917983430873356791384423900757923253670972396854823101017868445649292226302756569744529943495170212638841258674474241360995218097748122519023039574844623033996975172327657938315606346609284306465082013042482814694351593424840227814708272839880167742373268154210477693610291133471956966673829615500417829683107462172622932663292472444300700652585979335774313223819345830725059489413753728531501386826500886084996141041353074798647775851952261113220574606931033268826059042115544796588011297789003077925825281349187733944145417144715507482474911940442069104724557863284045192685779900225289361267867551256039951508502502593060053373555502992727731858354681223648336864109451658503551984592987504130070837067490884458577138971202012313044079045912276715667261425363957495881276093873878965053759063207999939139750455593351043720579108898549336482507568021991596815256151247600870722984248567858860782201675330439711276336567366169367226237550637767840051360940502333164535423044587131665413132385321806981498957223633780749103533154373943698024946734037418233081504656278746698636384671887790265902702221118134337391423763071909343604735046113182373608265936520161874059393336157836828908139283738139200664424981485285660672580816804355087900411280840459021907136008692219223484720138434923349731626192271869061495831126721084027316572866890916904329224058386456910927651901673428571018273837659633882556999829499019699391052254610515957955906575777421380033757187264458068728676495537100065353010144319713545122889086397163733287253955159212431554096282710631897040519136399806258636669690526326053982674188055799678130693841709451623020758989689761421543849033234767433950687516118254113378174882060909786225163498407503396041884529284162122807392981936493227358037784295714538019133673829590523343715391425019301722198556629826589755723021959450879433415457527474811641907026866761216907774264463244756534333001101471045627764559246192057644559521498085803435264754434759829793212676171326668732715667643058754081197391626695783290457227770493960580238829329485331086994652865735575862979279821356534683257273332476022075906047289305089170064595796725382140177894728706420106665218776089957542589810041117450170206415903956959333740870136925173109440146820806666778773652353240032087094027982494018822011278579285274953682547502301616818456068011426361550044139228401654352880323406163550098812914181088359563693273953979429533990987790114801659986813692681616826257611493286854481239664848717661405779314475150402442093675876549926816790334303951148346736110583127626195868460997143016569436707634645528584605172137283691514951489219345220404205404460058896336663641432894693329813074791796389010359434281491459453443564098042656482769649820558063937299984768784729734557799674763097734557758767230725770367786043834494280495309676128954008208761008316709672425857549059313687334697088248700097348437784698726840892876082549317768710445880737645451354078204107596835039316593645757569405509840231101208423269783614200678422870740727916545746121511350905608942026666273947377754550486045542672052745651360645188261304365049365803117650263967924725206069973106825484390988523255561362408407569748789463831136258067533707068754508174293361286404099659608418976590875991718113378081641116917542189169444115777868796906189071538629467966386040739878207910701980887995311816889667703549748729624704587066486346728111061026874404426463556835905614958986280149884437301048172551622991404572773690399217204885613666224589886715746969627061392878398128588761238873073708269667372251445465683126961916112891517252027785413086484163012380895177274548717576056825070986007960421595727149890641073489757498505760424330769135236078522255862070837902833972596388473690735567271127896580594321522361479931323311592254521475040296492037198740423809054363583447095724393333063705869919850583807846047854118904216104330447660436166564725373037113456172059457791054027355212206173809306660283621058678158058901312835078150346121937030882779411730329229890303347362632976902237390146107319509174623163191126406728637553935134184729034404879192515482000939043472364409672607640003892620998137518285819233149483362117922721276281490869196302814972222970250985041728542622867879229785488657672628577287928394760393893038262465107590517133748989045852200844800366391468070582307635200043340796141925309254294704860808883667217722497611906519039064321387490324279899524148931995537594850599117280995253616046579781478234535416024144785612548995683085040363947728177238844310188783929994945214452060104548510556329582595840858749859707819900912734539768490737802592701107060234960197322945213542784429562715504368731316955871525737850519906725157148541722081197788475675097681348702732434609230657906049778239113163152145717948617885569437650873804235213714949697479875718366234398176636888035764436897456324036911723850321430788950113421188383425654292444292289329774398889805765613438989601602942220573998396091173024523174365956444846028791810599709780879732699795199286134359517959522747030441545892778526194288600977737871079110149420641813607808848147806386771225676379104232854497951582045501271183975562514295343491783029238433581717171886975552767989759459463756722634137811778480254541767589434068765232514448729714612742835612401860942444535484852182338732638593224521925375016183927260716269027425013907356213956778401746950264860944041690822740173989665021610384039708178310411121785762448272791246115111826666761576787960098298100273411057399025702314345488066163920353514743061465787042703670190695496410494691666837162386943246869875530345071729909419946149958013475215243884685268452904578409820913282632325077774288316774134477629396703992793360811429104610535142205306704241269521464400899452989491378962429175601033134340404443215651663115096719490874008801440550335684163976108692298260136520466449023190722742104300085587015688972727755476112018219368190400990000989266085787722266643241487369499903879905632603002329288242010066558279563729662795710100956875171779170880947713474202889674543888036876606873321523779873628010401111408790803582896707237857388738983910098691091409851938266221140349757071982051294711936907942039868757250070462874156609882913563517063186452968249836768694421257153819377372208630384766128846600358582944422655599163255686599863327427941198190073703556565028748883518290801259761774806411199894087088089408482091386048456841824680174361529642695158168183014405903527255404652196537979727849323247745686370042815781313683610668110981675615913082516751394100138756818297169262973667885310713004605132082728687218580193019707681056229272542757575207282359306719753936248291065048640644767225866716464677182176970365589537833416312577285763544807001690711528663847999034417076775805047350754439121705378883872084137919372747153964645346086505055552849755230213261128882744299252863419451543514716764231436732898992575208058928953584783577423771501477724565724513128862678990677082731692427434720317305076635251158122422798552388292623963880102404400447211285936235442983877352303957256809216244452235989612298350154775816171622879951861905724333102739442703948680117583162523696368119264138277376145776830529260564130118753398501575556936710640131249101247448975745239499869859678743656135080402554940452543215263507638869440594176929996768285995945474259155700296074963113084291582240301258248627366846559081466788756868197626273735228900048347063842704792524057077918012471164540693834294174675508523877093815543246222143517266694895843743750622167338489170962102608595771944512336599738008095934221481728914045267829810557568561757622018263805990520327497191298081588311460030648003277475520479511978575423347847305262149512378781288219016826842942052604433468139554969496178510803502930877868587925947541921841878255893010221052374438952488961133448166763188848208177915289439289502700344215641810760271458025541831659429618565543526833729510692282904847447293913743509073322646818024001775058402090495100088527351807296208597370367508808624621659192674040379218619986256352180209697779597685060814803758776693853712362507976940645812534885900362774434448834291480790719741314047739736679566403417303979884423906189194403257076776680738856239939822834658234612461442608146789109871914520425474932229466319116994285042333021757521666236916620368283490755412885325615592361190793920192717406468336144205082414117257880701038120979294920741934216174548131205870273412293371813390309963074938250818361098435888469257508138803024138596579206191114946733575188425813095146390126188160321801428984797124743672538728642097832891279092435594409043096788834906760464537704686984914416396547967231564541147630484070022509852202716847967309232464285021418971238193066341808329213230916229430107398394411601275825385477943590683081423654442270315944843506145520698657952900243879877950217854067834109876884499758588690125425400752675814843990547678181601760758582441122740037121871392925904082176384267196352901025175035972288926891124333986445941878107300354216171991463168005219870883112634852571029555001966722103927190491065027360212067938096185228134805447723222338728499090613481091707372714914928984562717769379369939166542333203463495900427133218855528731476409676452676860747997081538873238856081751547186275143656480770297995717056007779451544422780049778731432631768304442232209417826586795771204264786667716284426274739804135867706656645054790636359557455943928185897429154905090304262553260630899577663652199413170374050667946823498717436291707521926648488216713490047337214523488739626440850612860207047108880895183330779219062593326183819700874371676898331209675310234461984012009954380911936452363390215366355585923712994652501643855209188712193023456611235782119221589430257891718080097266741473213797777067399108796332688829232956882734996107492296062694599319032112030576517156633321657104894088981461141593042784933137585393688389830686449895836802567599842999301406872017392276854551127715326869586238438776623758016576702362470563583523877147876422716522636565187475715317982213251194347160051164063394139697463888455283247627515792517815411776568074070914992491023682454907655122935510912660438960106128231304379286758631973984910575782197716746186134173009475615473584332312568954023695790125191500823880365016948008750019868409045275686260157349250768680126767100353999997706911540940193821185147041082978542507595562968932948749750833865325468281497694486656356536796870772859014020080418619914467350844738207665974775968411817439499832455091192498196093020821945362006750317272884424294979437740763959038590766106134597549112786017419154714093838990009059387836923611667278672436250717383446823231785799877388090998331598553648613237995935080433812612620050329990273810984966194964880140018534694031640799759571245290740823998373252351670989034534870521568105386793215190552539117538007276356564214892055401814510169787792474333378064659437251781339474694123100924692414285775662058623998648843420432953426004890544498632039701709308173489931199376203947497426992564549437717710412851123839689089699462297299734416839632794657641431587131293788364145526717419234062926406830619415560876818124342058235672885028033802824812209253018786167137156621079542625805714464474863734635714191979921593559548925521373963386732846710297467592396382362022693954670710989748493000804486316170985337491523833463842470091083320033074342946701711315094405014736349418323158767407070969553392559069937324329267118069621315661663988785816709280639796900136688699458537649213999507845611619953696801856282845664834513844489455734990742591456043410055954976132544779113708872466804647632188725604160410568073708490610468904037459353572852945361633476600238822274957205629598346870585523977408338424463712036892005722995358605799260248727951388665654318522610685725602565284274566365062629140946257717824173668859667054860689422146149032295302876490829430008042848786280568547267425972284981169563814773883782892347673424357893853789849373378742777567752151137439337054935107369389756794321869152089214789646095969982609052336802259992748467709200520426128240796190071009086882127698745183341868465353220675217532350482721124390621679471488335493788040989685784975033489436594213436499221308579248498826862930418652352335733188238242616383248623318787857973016227833174640691090979599590244563074706464112423433670875841600312439329105160635999572264664423640456272334225002558624432611682234410767026962406973683046474022000611337462126736509979558780123059674516022764182404516545763877759990112706357859721733328003972103414414370053294743419565034871049694253332703139248532910490057563367772469813855534270868573020254230850063234253928936399898448972549811934421118772533537813320141943491902744261236779121154058456846403856011856694794388575663766970940796705826447060984182975192877412122716754822913881564444922419988570049074082544639393084548988242238510656330522769428355615372310420013420579913470759592167284270552318002911808622488797416940002911105376827366146227284127516773212052970355883343457596796448946346907797680202321538921804701494652441108600796188714239310159102263002828184578148616452677532700099324339504174867602403250272169711516993210620196513878114832297436783134232820914060644722114229227294651707048681052443816448125420321892689866770287014075544556585028470670959066515482304349600033017672565198786349388911412828527542756299671216554930244906446095342951305742861293916187599548228144577755079920483430222582745116033169482920405997130634567793922501389420055220659135735256524497795687466813005539164899593518544871301194729449051396502280945956431013529117618348927493196859828354229678043158484544796804530402126947316629481358599453253171274486965261988037037937071869774773588324860829147384933773188971913386235114070076045926581494586013933059327091328395577231631715130667402067567117987775361069837683370434742802177891848083587557091524547665200573735468632976592822235619249516847505884533923680943972584802960806925706305732858365052265402075765813455668136892024905802974505270115545681628564383039320429928531926164343472335877111565310098998913892405357489775508043649959406755202243269205130598968864066903224206856823287101636559772408762913083493087196490662697095570347497249829090895303649985028373741631101539573297714731245424187139789378204938495387495993323756141221449246989565481742540118968751924606997052404405831187314879422852064222338528563929289281418148686823149404879245974770703385570493670390409211259377512784838688603842113779858715664205531736552579709532551424736875856441514107522689927269219894319937757506343010625652818424849318981677270156940439428136301938502245587851440981551191748886448259393279798641728376032878871298872650910977961063634257558436244899412905927630887095161938884973668166343854968830884759718900529584190877613222273161148830937972221994206475521412814166634511278714581201437628439777809368824708128896283012384058636480424467222587712612403016541526752174357325479353813429125119883607329653654835911798711603160834027940022513532812143913719179461501489885161614597197344373131399038008420746018349435736992953664626392123742900178569887909714237159346554672439539130477080439560742635082744819521198652440100186520652444375214502868141341332741649208121086375692798118636784912935495521913908314775990184913266862010972310409295411059347728989976626928397986262618725625901475874868896762815995822737935881775791562071323742492901494049334829665214078442999715225245957469035943457570866661377354703281037180703177772590611523605317678541718598885369779093254904215239691571520031947329276260955593195486110910423024104747643888477871936762034732006836084774465369393725165317773003323874376646146614697300654829815228280639654291306151253665753019206936330336856479232376305980810841083759495488685841017428996277331222830308307714811479233955803213486330325432491358765610757070933167891824677772339952211875023976935270543607713288767868949767146606263014079807051222230008828244677012299446229505346722814856434468287262801077981131205046840051680053618389358533733202454461140560376702607062524630909692090606899020398082026440342119660418743345499858255954420171922525188330816455059854801366909983351142707780017026792871212313791397593143297029424586654290824107589377547345998367345784657511486122737285921278134309696183694949687501600433581360872922949337819902443447388367200838940586702989526717536167315520019580432567584912764915656657071744944223082651356965779428112640540564021116772402089558443844208708187845016749226817468182259067573695036647107883695818673649919165244046860373239811031626851404038777514433643478896615257867864109104743395661891102249547980112306651346370512448112502665609112098453448834673884002280707359125460326676143828441335037780951173399662718589689911482682740950566363011814092565190574715896438630532580981124334026542341377624713240313855288476254308794650442287290034676907416081011367964256616885629778922430591837721841995750877461817992350640633341979423678023231982695778151301537493524696055363704471291029009276569174853080901496226249516171209242985523941435334230664282915061777257609011240020048361028383199626750749829478047602355387195269840097202679373104640774092894839047289397559037849921716779902323735694990755068421188037614282871311082624457704351530961308135862280488709719203406114075670547709366313708716155655808583675204547572532974424940686942205837720466624759990406166037641345086169558488602976050506334911535425259824699102491845221896399607470656261299081054051726695864997905173345539847622447333140158487672424356627771772438840042207084522972691510779989343101248614352229996853817938625173244426931270501954556746874707404091125738553770640556284828466461996293705170004288016147089952737142058867491606853467489051313018096182277135808532679584050403510426015002750152329947773333386100486306969814329006888375943249769744208508234232502011749897384080848119414864499091889035741184682988609877159669494706079256978248363054881831968342246350914658650013900186836324322454039579570462237837953477083604943823680259810281490153980964729751549749751743125947123135593231977933840329591058175370548962053472055860316466198760618766324332209577482921869174644855323164284984788606439810531228868122173138350179075331014008565023892762328267272601375682924978393998629251034411034900895053514921614021118516377550393438006343226336696037050193298552884101902409589000527158562521840847671635919074378506724955773151769969102310885440559874429028784821175075121558926166990399214724822010945182593699719832228792132919655220125082921859225102952658375264736914646374659922795190457011486832783468928203271904219439808400595439370627414861159427172684680887062263363304490392070723296873693053067354201054185899386544769216107344469435542400371357350407166501622180120326288499636896853940452286083873475272895324561467223281246522131657688378793817098834706442794467745240426593737005208641192929338800839721147448881711047245358389614120859877902236621051046050242041811945261327438920335733605346452452971237148772641898756850588381865152920433432174596306155374744852168097069792363733539422747158254339613034076372024529044409123027295221273698421803414561721712559356553986306905033100044540238435938645966481559593567992603387565295090975744642083211557811217433210943078847818861211642001576838579463185857594660535549756902924467320339735386565032940314184642345631087225782880502195077350758138048973722020698972294579544433587845040021089050443535110437759102328193809997068560470669138164066422512698450845099260890290472832092591338240954340403521382844190038106904863195577393728350664016758086812116145314097555007789125837630631861032386722891987098286569480831325599939757829228982792815884245526536451067233082939040832963514920234122634056524984546240723015983985573179525404029335446031817090718322480265129782418775661066474524283891749462595072049894331843478912780078185516389123511399846555799283092598377316458884811434575972366399896049244883924014605349975946437377741680876281579168281913960539180629606957430931326027097661170013727741261439305672796806620660598306577315972035833278591330168038974795143482099768177409532375650747075933706998356491213418486066439418047078542754327271402281882998171075389597628127757200775745469971272633099788610481576966253200378117399415494719598379428229676677734839219457634706300691764408474610840762182606248324255337674759012959432428189996118733044551656400774238004039043348633327211632315856462749480973907920507932482750832055959859230264649574652823772462988904967237622797654008786601583803646258650227605684821514759424684777500870277621633899859365273215848374146810935425223744517681210898781951429637776008291143955290815189627624720803459838923070202216279629189441713104609644728452420818541743617909682206515185295670863268206832964932068695972457985398872210005169628596834318131846411890809984851404080850481425483298241656428034647695545134229907263698268862771138440814829800748783045940166742128549066146842309807907190181624907678302103261212614667627096337132272755737269790457976552256949102629276957655925590296522050648239625822846374532016666312578470933998805251992386956853055433626809907259630310180141801576973357584995442571021101493962675629596077994464054012115755816086024588295060960865011315863160421400812754795308155887503736496198434094759968797667367098423210890468380112501379282789597028831912838602314573189082078053349789357757401596457850520589594430729508698969257281123308976431857759321350390302230947292413373873213858017306139676779458037751207792088709524979110794617870173018167398166007685670653668950906220148050612218456274205429306851418887982163104982231261750172563066897598987260370296442728332582129230061112502629228973502371330513801699278824873556454923890266635291407418285891746959915625068028481296221177397913002289828631071951642543367088337194835223330951941731815281809802605012912223450526886589801723663684977537835172337263494795086712609526546726827398560305537027410320316406987258188536235981250260082198848630593780980409528457747293680516550201310237520808266031189569189777527296408678854627657962446132994955015990632928218533995659696644633103359972038034571508726586084737806633670375628085430972658158026076086349839379906615416163927439536206727271613895638682033814465969716336174008537023905191254651962591604898388583194110905567948633083672997945983137061431147230367911260285791681354153499817622625319276704776734311585264139751530025244011933868430519792672820100314711164610733836452981555332266042179220342186725802855818085189672324594137424545118629580381083292884642365835464673083112744654304812651693580065605996910958328180406525609929290974088296248921890483585666049214496989537644974694046556076945974312107303710296161035934694005548648484032507427024898186004769623002897507947632636973546508730202524856149056769464598167771013977389646310708453341449875846231364388474126452141602606934645296549647390401313505643414214695012446611579773818975166181896024838530315139419854572912073354175737735130566708795055874401165284885264672875189698825746002729751095802018119939353120384795151604386265598429388942035240408879222189003951091760509669597244875018572271800606755278753492695555666424000881795573993735054035437332251628025849166291591933403946811991989895431865129509505968362902498963339980378258576047701494168230676889337969862277748938166950188068951964074760802775253722904497656517234617485982505694140193100282108556918943913741599451541302857184482894550134593661583005761693927515309330766895277057441355860727480609325650166488674059408285302864314745028983353806431433935525178803415120771473074531112200622487555196276537461332519931526691785013596620986292130833517777063172923258296259557432351547912544540520139510009802205052069331553779811209224314267368681411358569715640638046414236698632664883851474874047984501549760677200743459595639130816969605133579531602892424715850528422773088705426583759282508806686492048717119314429395124548784737485613965882805262709441484510133963721072043980785957830510528627415364149421965269442797574888371368651745280478194556497664669893818540804150898204818041441766183191050281574426875474853606969262537034909657949869398782163731444464618125498224306217405071940608317664497619051598927802827922656721836791553155828898349563546560860222270388409700114091507233585232486253015980970436469429022516896791632084054933136210427848968462000719876240229107717713144109466804737102876451537103169958518772729903185077078410468195133578782445163921257589109401471885801426885490028909121914102038193325169637831729279828454753607358484431265311493054947833577050516920757278043213041827731764715350435112631094537658242577120996357720839589976063384610021382196477586087290760794531706768569771995118635512462165233597288599903816867886184806746166805616737292455491470464586736305964165995120790399524569050342028056906054611091596009225142330211371608676610326633712588334220183843358067680366492058244272982209986095728351407977733740742524342694554821025430122602941103737540110234307781091248717549755562924326427926002503291898259432542569464679265468933696094687502161382222598646396113991824097131774347349515341827702202825157643178003171226651719158773017821099186561413562716521835156250559794361032240826644396302511203818832378417202661161700314514534045848456474625122292740409999466551538524702331623655995649827476474760048263620279762998921146701570570752097777021565191369219419976291787585328449033873216723875009708287071406977213825560426999735535237105765610170097914090961063613692300770982451625276550774561978774244364975822918067980945094053194115970135227208800205471624763871697202685450593041460006034329937058157280810490942255206091900054860934560892872764945649457304273003441434855729348269429895675155715492938528729470820829358914814395317023483325692179612353390261795873889688355376335050662567734309426847535595031294837518553360137108909456191189990764031706809883858117755299739515825701437619449444995783412506690680857901983633710381460137136137970856596976730406158342630503096506339019941106830561035480881664699039784946806096454756724846573270765828624836922763177318495167312260000136405659124248550759295768626945603354841270387775585325368956391880205555338810167926736989661217849876297269017222249533264703688305630521273940458792607439670073070151164261428931736399065585173833610080864536421797788760105871834700481248538331727517513978145112118183839022279236643483138575002439975677000117418447268980369622204151843073774634680832813056870680729820366807580129755756024051523671168177291530416296111903851883694023140718413781990482899490776653369880858452833776115901396428207683344232555912768188565140700905832695504366356174823831564765681378830711776355636202442552230480657679386135504559381446308879453757728698754796317389488635277488785355051983433639430097739936881849905380755843571083168742607055510504264676702319379141257560611808068658690554097057605327625454168783488255890265097234344233002473882655089133639485562591419234759984601902937580773940745130125739101338445873501595889098853149878013151466077400019230238602280346015488639622361356003818274538363201290465565262563821630259384185008023028340076968856157136484240546497686031108914871830280734610154404404689308349492222364829735153731100942635290236305874775578536556189650839855490784650419802197723494396765870362036639089869819083564413728686329238105412803420205383581086038772771395766166371049385847160647218583873028979786271061909685389568275938228646010851540948320254375427616312163423861301920164169791931079257393007353578360881091690949235682911057053778093750474159269051906666408014825642982615991239848689476927187370873310314566378333288746010924203393608394996513532975528627748977332509086649279021989339343285820973215567703503876163522480633201596469981746867357606668905441126376006200271054389948518120242931948098791906810264344053145258491304618930867481179666603742910904878211985272179254721889438662419731743793529030774008996899272901288197953126062178648606958415390802149503669871630576197327141004966604853108399583749862969857365860756585138431384769758158451444726090057858274442046415458369927609072426886346352773616581044583708013025745297054414596096773963207834655513811919120862126052415779330648928054120744980616813923913634398942569719978942982067107492305396415181944014321454252078941442144884367799284853917006725646850225935017192029463872444701674663421502614118207052482038139737713204064079007968121518936549155496991247765698752991303452402380211809158066498159595742381519841574253349715483783987517446398886852050948218197379057155937404437432490895187614375164366922265897778609600782571642985383602582797229812850149230137568035108107454911164999085993294291402744665056993512288171941910785919522021869050146223781611784003698445560237070006451848242430244675817280326647332425341120918766130787964870214309642195499243093102174329246103602261655214837300223568356838034594626242899533547950398781332312965113891762866126951638838265694983779914613310062440401494803989506618577060986348990220435119481789236407272949573569217918972829127642352116476283186693927044314078708481348317496376715416810470614813692382169854657057511010521123714058054600027526530467427588088312282601757099732958532793088600577886026732206958198553459211575208022260775612211778397423115303286679996838687655320612831752353310517444139454831321849598641610991896066311177960177765080150620332352847674560642187421395842279403360506323255349763889657810955620326772389273368564304753356196869134556685878305233741932991899083293293481224411434269736955064010501215536749538106857760810988055383378699768937523838450823105215160495308274657459912999478543882454509935393868449777175765051625597021307462599958204310645086285276018919914330763538046361088827218161932559157521736187168167259565390046177427836094152013280613294761077243927458043363744714447622421584084788696310303921173561964802067868275766448104855224878735080228677837980384417802097871413980244164480451819939838112414090290801976940275853099481302261546921853757910426232596855740670005574752566312052386664142880141619886413788466868565160931325889987044300061855712791418981035482304322686686044100951870020796194141534176324413325671681977935188001513928868553201689515240673210080251536767760402541943737424362699048613253267017482883374963393065623443427089778182996851732276693838921605114151143374602437705750186191704627388001991317559869113294434121037923184039242358763738018697486907770625637930634444505710859232219117717296220769417079113677167569737603137343966473670211045292527680046938190136659072345603720681501771049678716092235247887706999098102045259872623753509747243925294103943310200089403587770471196379523572428436088640925722146084116550329962838773192057122385018468932088485057944979604152796892321217374964179267439343215743905656691870334832688987801936801058842104090270059198904338566884526456569071208252925409481136733079330290500983779504787045836808010367745874580286548138366878870393171228904077426850176946655234172213039062828372185472093760900296227528987057425465237562834375994812311386031006519778893289871827875540098541808597454854767699858827984012823991529958828021469630897393369196564172771481407567828019529113150542317709759038406021431448547411707993699736074029347509994135853292256924548956010194049057231196418599808235808827486441287974989982936856136693609978054473684105427913214419535440293612954763536709774906092106116589672119035447626107711624465579429310164504460317069098704725089782809876026465734161158120651000784286092422238995274105396183848203614112636405518535872806784873340098108372117061847557593359956960344086406590101146065989292877623704379952864937547902127690614830181527640277825867186566499114290292146213907412655369528814782575912346556370878237014677566283213492723911466315715659275163881861232643763117078337281615319705539222721872809263231769675473772288256344244900110905048430104032164635539602609897273634445567411645174441705909043737381427033512412912573611582837350984640247186495289119224042742522412908471951122676856218488446873551670216713255230749144621855832169093861514425895777226260043071490841965293069343460630578127082079609390432135695822580660330813012101174754287376178168538331907025785550335852622955503963107978880029037927994317595346174778775577273191194890037171895796696015372913637951844527325754519227634224438536990602302815415482028774176342999572745191758056283270738244083676975486764533532067770104966624793773287313815297894852793678293828233699491449596688665331029254633351064739352532943479690245958040987486511390187710019911738497398296775012656291352563386271095675206337008543034708615309852365846849056922364151059881804774384068796193927432904725228842995492224650008497060930004563046451566752694512964623182555835848572261132207998592311580191432274932456962760295886193754361722015184520283215802050715178016377270600257862769854284446191191529473812490920737157610207530428225038895199421534694317553605387477475535496419641393746056858013314632210100148166928028636671008420497470537699855349842627812872538346647309909978839840819177289416234708745609529594206100443541252715225202030311062053971602638602890695012727674450478784821684132086624539132437232235787832006499291592812683489197032887607921936592944399574589535139441544853516331329299868024065371402708070453466661603346345220034645331696504242388567729959701018355753929016754910532885480931689525548853471990192800458905256841717687598972225227953827196298348366522931818829298383665319465991801162721055531087852491401240817406137004637319516992333235246934641422225299510037540290770826260344755704063688066408797641596658342896680305035690516018658016140054051239922768972275786479778241861691006407594083092384607052105329069536038321624904123669868782508475327389773028750099176256794790043071530223951492479614518582957026260824250427940295184279228452640241916930799021007053597086749839424067544407069592970282452156680628070282989903874142119203808801864903512929323977149781199821290323527301620270432708790297298124157947339533312798302268987040152374227855538195408961433424818627170166535989775465325025787286542864529607262365843657209708266447888771110304824101608766370466933707320386772086503203407382779076141329339147723728278350908511041330097091342347314789800874061119363431809914918226875393949991880308864934437901655575004757657693990148633665812962575853779424263867055850676824230800022914837056740955462530232622451293779189591041643783307510405239390249642285647124090081510487661214916179604869126349544757158809446794954477425958121173751376811518423160880491065320156912054654944994314929424834139361900959026427614558728769607624904137465157242330436921197024753270002185926677376562169361654826990483213159019296434162716521552607623459228211193114316910793042515045142350856240575187733432631155524288742239772367429040074150792121580994361502138856011577086278983856630901983972079363611010708197577583692354514136624204067127818840055192779232406940399720857475498048807870283144617714359638179679327111328927108359825937803214634598460998146483765291162952099795182063767336012860712955582043510383088410213877486124236590148439119830679309546938109499041805801885867537196955148286567380717820095587970384603917217047968818222016944607098651421978268955590919424045976114324181835430921235238457310592294085813213496172027261259644315500545503695574831279797844585766610141131613495330424176504335728746180402390410571404316851258486898984145359991877317022276877837345762196583223413361859103994613131944605030374770328821276305825359614767936072456577559502200878037949317952518112931203623272870640521976683854464299581810164658304649473547257723968284977482640295368973719050752412281127970990084244843353848203925274156097744564784031778941201212058647629209050455127576408445266075358227857508392612371717616294089028629685441453859217622495595645154659830907403713845105775504454077432633320955620018662924979002947337986853128088760220555041248444107656825518194997720022667403726063773287985202664379157277751519784365769135921667900580578002137657686996901412113633259830833694633756666722218891865683647027420213290032883218302601190749072384953204350364091484687203446185258968968136208823901153581406583014894690093193270621787685619598144559703500686178379747781378662359869659822069468960361060948370166096610909575114429640462144920810588055144463420404269896082196511970091220729767178823911308418463311590117260959360945578248435029642077762923442086413578085625270048088422028857003803351994235326444547058029707396579800575608111981066001032228805429838267441906777163772947877488986600992208383871889022320669206175451114827655287409268284192430444499967448537705874273982314359655800992519576301196521679643104965346575196611843394597990848680464163929778046152843669473762959976162581598271962533755095959468342042693917949030216070332582731398424646334832298439046942154979973044231269221750582986136467021146600442254622090844517040872194793478658426599112042319893518703133814075886348745221537469965843967884815238630917365528004453739844788279974377632221839389659632375882686958181832933868054149786958245934128965307301809882024536294076465574307218735039816968964613870136183221796089493730258837779349631746637830094036769850670416886026001524327052762944350462822406165431755762294727867830853324181210251288739170946059611118390575310465482148087406816857757764184020354230131040134795489438867149151827274801979725433058213273838401663042709628887187997701820667515489184823777186728404939258189838439608710548475871590056596989165830794523389271780249837786091949236613862891386365919760555148421176423967811749285945691589677527673059552978859277898623987162137498128508001218873648173629638175389980667943679921181289636945441827569239763722815404777998207806656469596976767670600519918669395110660353607711981479055966249527835327241978426286273159224072728357637722725849292048110642808096786552042818024745236825899932530976838243447102956380955170874968170102745042150139071232838739578440749225419111790753301685921992021805592303472656382349248419794546956627903465359889779961561564992972404049444604859237426627005037915005023729180557463709842038919643730958404586094026480211075028945984543420032787716886593337756800085750058510745706190482342283032920521662639332953470566154685060647360662379101029907383386196912099972336366381119522520445741893895567843577870380867923326204766608099816586746762864298944779778106405299434088007664260275477669094125666445842033496226970369632947627289650771183674773036494312122064885477404013821949713635230287563481625676351201059115893579188169078020038216212754283042214520620555612152311810573951318053637896753707120274696718088653270553114114876255694200741464631262219045672482264153171081641030447048541419154971357558040942381641796351573105527571331606602167802243435358238822702099642541744873492164967018313726293461029371375609703039705134214900385155088596330451217168571467914767946212586090894464161973451082616144467652668724166185457438833947293997005873920100087043273990203052508238239262488764393588355262260764946632755583481815457192289133712318593084373631369244434962841983663591659959812670261183240813533436511801559597414695164479138248318881517981439803204709862442074892946272581521240180252104185427099109192905476598758180874307193877715887727463229412724971030203895513799802205342527324182164324814877985464485288954596427464971276475595143192417667601790117705365389096326116946257604934608586136178356995453968359890453567436065489792090821996033091961781206143896138367854920343336607814865939745517521364936089755621267131213433839380374673111283797736463626479160249088933722783039156460603170697531029023412870200036802725564800195808973530363982454980676207622230327352325844828659500954203781099603409042167011825438799930712874272539042775141442653982557229516651304011978729582535705552761821864760046953581895562759962002471945194644686333872675019125739846013536726926562454996729889410653590232058794510968458681371461348355222302626371041778185169243157123913833586384233444910371703379578761563470696700927734710571817409312239107370775805464488639484040354172174592116014986158476499807476192254649687008668835997395353168463158716850695170854691825838710138471277955631147809459544936259974800884761239127752554101792062122520079692458829989113534961299602566680709615515788778243249822673327159482577595773496838254106457639727793657282688726560179689701532535069762709203773234413745689743156332735823794454733447776096249029030884986059011326034761386428412977730819165459858729321339353727947776639996658505808492278355605935226312596889541342769643931050565744038408391181998856743506673031166181275870606142825904199134008724400851118918670582763780101952543157690686409235070474482525858888911696751909007012706393351201343371825722657854015122769374469042548703892837504956718963054515136420994163924566353602648004105232108906074860516535339244549951615783602538687331694956076205781810289277469366174014102684273528848258430003881315516179665698113168046089909717350850347225818530036282773063848419109143952637913944750001299101877329587283890447678709589545897781998618459766875203904644469698517186738208305776301670088504749054688609030468090812048169164258745335900893078825106566246429527412397516830834552431654081281160710138803890246171725053342709556984605013990450185916169956774492406812025689614776487573779106693073392711284632384227733285929505343431133643167277246783156447276965426192334412531803693941127929948032096120640751905329979066074671294787517695134827794099101962027495807686104344830798796264443296430791399032464572546879355990616037426519436878406914651040722588037074330853924351883138664319888662762958880099521747485137334724501815062690033996594814803869008881771196681535333535522225493440947895748203953886814009810368745887352530308212450358393644941873422583166562852164540598361250435287196234174791014548568914231448363593988594452664426068362965468272446196216259558255681694447637033336279882460837029044871654307908793122362948732719702767620004557903941116693296961832807151775976339512641158825479985210389489428532076006250561139602477501630919427596055976937814701273712636385862897628765684503945730164536804409227840634421744540723030419276661422856511714583227751220061639527025418798051878968005646762343218658756986698450447577505530401566320193794275731017992851219682075076702537814015993968901562744267280958715014642763200583713926219545848635539486317409505759935004669132814469311438691805486503720502701260094965092036844649269864934480994678824595855355446116038157491677629602858453122718452923441976852891874980168090866233355649640416595217395149483707342926293888081163477909117718415711133991188046374485989951104517570774999776401205011979506927551499425239766380610529061389191969508519084246650843520903931688793653779885833194422349450924488603232050656727375835454186339322796540880796821865862390242404296124627384344797339092828326034830562847602813355864783788375787810122698036851740491967655324238021346798670747452726887503384634161202602588683887450648063172086878574986487524942304876741416719894060529373936129263259990135800316917547379791234547181321613427183254896841110406352550347975090911825047473573134525345434022839881042765236394602319479482108687773460568042016857143414956469425009097220933326649889484689379766705709605077455874363587391900480511813897788017161931324290034328614881468029331379937624315097834566145515470905771579694647847480614047471143379430559525045627126306451923625120471261264809049699234793620064323587147445145393534882985523696072265509377338009345560555523633353818114323250718658750433574718554307693974754730257917813594141472113791014725532601978603844048503789182113831429745123000203491191344325608561652905489367396321784426545924156931048956791637678299371657209529770324188426153294241267665743780100823832583116517298667339698298865047888948320413680828926862212927822959362182007508334615782643736138106656045759621096162798690077826749002369840675762232193222889092685094021868472267333928875471032694032009896612401777834808090795117965575859951753051217665187054038313799424689089433142292489473265804001529068238883048746554618267293445369537483307329996636563749320423043436990082828496149543504069783573228566545124214960751165466964250191983319001660215097573827804152907505747554408087372568652689351715841991665126522981033846820097046737511304353008458696980227473831446355661383766829869496215137388399069502525185112415270787634951087226184341072443169126259337304964654807781220995909766007954403850289675392929105708227192640687559832601046948552489155343690394540626542064835943888784022793134245257569519381329612680283420849899275276013244367177427580480416297122177216220261905930831365952124221907289732609320800764700527308108341546885784469148188607439247417275740468142348848890224226253173057527776547497314588691003265661041204260787880303248212924963256735678107133225197002792453122461301553783468176837731058879748197813709262054643639363941615210918128338832994683894711123159237816118359194843505759189439040881840944244189757102166272892752205739303897597630977576120053883016281380945686242503505005259100003527094037822977489261978975091761100291556271309858828962528170595876061123890133764787218060975621456455840309024520867319421939758628535921909543029729306100389331547153172971758603537031715877095587163581067662034607454738398665596532614249670934269773956519900933304139873973093116700147894171823950508236678046899624245937009025442673958370067989436406257430784099771607046853431563610412088396670707970278306955235200056396312654578997239260831205260441791665865902136023894780635423659843533240977567654630359258916836300873966132148586508581382394912766343976948421186870495211460682134712103193609736823706321283381473455249646213556195164206329892427523559975130646125626807591984405711535530340290515769196245797375116829820000599597819231518874508590350784164462318226686517592512395728804607701619995345197784411054460282681363679126318398285653200943183565334328817087602918134382977900043517206298337779700119591302698517825883808831119492173819264359703547541368079041876011528231542676702392085954106043330297942009381974926184356326133436219665402948397987192358986158925028558580241921269948238502766611669251783692514316957056862795842451316433333690764045014654130645713783782758214865520364283785084163250807226786147743600354911730118792011488588746459296950178709754051845569707197578103291735101015888970862675750141140046545968898493652297710350018301631374097929236772598952358055163801503639060876157148802163987025103812605436438219732064406276785327053987270779701415143247840798254806526747112735972452732757024976255339995071208285342905812748291440013337305130526506453145287816291193699099368711283033890609741795640919940839911465930136029964982981599951205860435505486955389073932527530702543808581497835062701532098289181099258731846882963554621408290741490668224692149343419426535224485287413824039537153299612397567697376540760640791512737285410328841063100318292666208717968898188795524663787707146352482046560948875601246941409604631523620289653101107080680489094077474865801083365702911799111058348245897840896736179073322161187734269973099831227215674076619575196011578350430646950127790729478511854992707905828242134021992293049265193752991905365903860268804151082241533639064120823037178777505860991654054811726234465802129430943864581639943785565335621320695906311867128873970199677632905179974689895290511692509777842391652313406709980324156437196814995251944466258222250430552827158654496355333689441991370319596247751207284035986035862982576525823013886696948340789577571586650094833932092406875354873906778351875928669057997391812648228537943910293835329371766475966713633424855125992308148449576222261696641392144631515392789003104401144050037206018870280449858994224402718467811186098581538480631165493117823286848463130814543855598802215947943137626060900390165634340278509809103499555489792988310738663752468068794608187132497148405025509401082956156959094982155909649271413619196650287654799225515746569880167420595805463924039181432833433390575240931612466547241940945083135163070556124772613843540992359559242380908291534230162874823888724239003346513639005145429051742405469508526222804231300907559994965701344335575887390588818651475226649777913259439718641185107937519775610543682923141830377319729508890891088045647381865601552169955064851272819169257976318867064817963936995059527713097605862707487178391120883048135280709619411153380027580366484868698450901284414410756037276280143249992378679066115174368213076014253065881802080171942526213930090124961377067979916371258929387038020642303659737140951259604919894520270452195056985221984273175918397648037288943240246737105137722677367379836313533918534079705549219973125493151284941970598320198491580134046803553280031093580460718592735281387943471421804527332079267484010101882010937668473624053032458163326989594554023554236473208518135098303913121438750896376959267543545595439544810085100576552283653519712559770294944177680982230870269175442456428072418806395779778127360171087955287156278958783523031906254905312234843590666519895062257351197512994584335103944968341171826077909529851424976639390049023743308525290407344774498568910639655990340761652291631401318016165256855722921534967983437107357960911575029712891833043662013792765211319833780369698348521153752038957723130124175800941480032389188111859015903833868804919749925367054090330202672227629781407059583575678584875222108793916275592442075002676998910839596969491228831688681452400278624854049014705838081151991000440301652942391340758237996155484035025887439534859615826884922176966729838370130646233115609045741566362196155759046735046150735437013356930014974448669173008884217668706986147457981485867694906567618823557195606087976062018073448576786237223337462401642825467783742277810038136501578978895063138620008229097169652698116706421021681341882215827038696548292153728833926581607305098066458673668611285316443586904627878330660839721639891709350857824917380641419859288709846807509407513513016301800735910451570423260178172577913187945002931991154085092745463889558387802486233073504058065945733986957736906131036851161878688656625635050215676042543087169320004189725989440148183601782039250061422991799183238010131332689923250472556326696974200519800712898269013182635582651874014891455837782960303909151908952895097193100424395338337519201545355234295548013118162059832240035823432835786015360601213227577081647627368627283421457087747341667957141931693659630482286287278637105089041580426185762109803370141200984636860029083027804998182503545994139907573759699851051553444835680828394820392181291676362972945615734482480215745531580610166428076257525733583906219875941165332291441644531696597025709246245821415025078411536936192846376040823562496805821095168903734640561406517672815639687854603425390584034670164024627580753091024246268769771244788198046504392534887326381201087020897466985700539664835163541520809434972289270444951835333718158143314666754415759679157718202135258599531252996474542890895574412655569349599391543170429456606639459979143205873597966440555544151923391691504304980607699915503482296677623326815529642564416453997361692109810534842776282499946578707764335359526309531275425090584558087771240970717373439818577065256219149944879943708041615079249444730629004266230144898525813276360867892160955701067616759710863685349800080269868096524525406723163385756022062305191867608466423164375214138878795682573548061204684187015692322350362935405255194917504602706528074943931639516253369569813024967273537835879085999232799618478491667901398085543090673296429233792989494582158313316482571705495801731041677243208487931842389522297001255863679049455319714726486442725830826395949799362503609278042521741487681995276118301155047892248173193508469983314557669432275233230886627074767994813310470455698871033413109051292557265274912841919810282313503014155219093056726706535916089694253977332165585274528964243650466832234243001111539971495155820489225358689313148120392876617281810270547691590858904150937600888036478309549579771285794597179284332833464059932634130200191706828329672702821238602291470628357977563323060181501338401538176114998733779606765647323072327651002535531713337185229719824586340000080648896336103330359946860285051866920222428482075931494676962086165812122298983308886280885305506642425106874772590801019937811075470560356745811681480758815458384138605887195852370175695534487517309702085018117522179629289888895013870963527672896290815752461722855050731773002077363906540989446059703826568516842130414079795696493116156599032678219768438623132611003662141861487463954580134047871834747125937813008583208790976812876810105881672747302147608050370625877685561873287882227463933583260994402693000242899996410158227535083599148313674689980549599754856321856944101042928774394070000706131382709014927133823432911939029107835385969422254838152897684907710784760804116890736946472962134594248769008988629057451662071793463870905949414967204683307943511937010697951377690197496642537777539928682353189162779985816124686276528157689806041416712031158951307411125811369687280774111593412854938348020491130130855623781702772702099247146053030211251060771273585812070366423827941670362012262359888587863576959469270765888398301943409270029709309635346213882574134383452444495303309281281794744340838686895961089326165152092012629159044338029047830403741992401063675808839631035626947204807466462859676838809139358305426994293608530987290997552897099881054602913915593825097695452160416376069020652235293070721341406290762474014795614404938921606967991399168736734750978328146247198691049240594611848487756935750764524513698886260545967872933446550410573645761426713787001011204135623442604432795390511060167231557263973357440257046011501766951240814170153850758781966657478966882658683429648390677661103746836874235137209786469072561757942176936180639861478611008381591862106331441862336072706275270757179454325424723209543006583431880270306492698565812440743347386596579613539317603739929060114849054983639194868555935211815280523495663333230434997978045260050295020207152741747025130317135401337734528526928070528921281710637438167741936498110859455649003627099073877795702979747016340494329330124695918079560015934699431517593774444767646157874908501755611807303805363827616359529854168878946861748863604213479768607251357584482975368289160778813326576538711514226233550302253586354476485429285711498634768508344856777903192273771924037920127400897626767475178829758999438428748712400838877496865351038819416442182195641506147593004179768237456985258057284311021440930566419486320256156564696034581055003462960764599829005471883024856871172953563329881978205064177908357801775305981542503690928146544228103140676788800193687766073585291395958490594148676187590858946615664642042715825904468545232146194222276314238025929600009421849835122760559990404635424418658904644128840058423352760044808044920991825041150729062632892601030930798949122652383900945771683659087083914250880076731654745839186970554275423329440611113734293257232630508570772113181574446339161508759083739369404465319983637838898383466624631231299926586348375806807899584713102071089267489278461585196070480567780727932027738065841714185723905839734807074123600910318021708994516303694116274748924670123052983457620831818402445137779870398400478369658025112233670561568702890703174520299210449519885553894037700212586862723714467470013629070723195633904294379252857799731418075155134835320207515692943908127924888859047061000686882676179943675263939336363360574609744180648279195960895585936636027743961460279624902635987432681343255856873440669318896610892300568037591073252892727029261431145486189961308440592484746932729463837195813605525133588320983437388715461001681656529148429474601378739853509320324161325364722773025895472583913215063665011293747975864874274153163073416539886119173636716309585364017875516585240135697181421858364712923308417130367060594318732746166056602391071304801726619191942190079636360305151970085052276386145055100725667628938929843215925375400233655385189299177100710820458208358384504087310144292057422377324332007812508677917089011769136220884217605830787013882502234301227581115592651118038914457399763816652339630962949270799521189206766340611576652565565300415034265282057134785319650640629646025158920951024718079720709643886398904820853445072214570614560057072741509431893283984194632859463792229449824315651510968402398372397085313999345515993732046852646413309010328505161790823752590681843371034102497882240004925781891068382181596759353756452262036750758989656283806757775325617718653488306671046295630765899237488834504089783136410306002543206607493965046409181066892174475638369813094372968940281072263680591882105202552640296326838167930522173431424645801711535314214392743252737158222240053167221427174057001437671843191292391734048873627865982751679007118910577567390997061710713533698523191275394693221973899476110083877562869228227588933993635923783655075673004133933320867079459420721840488001442107241695605049125366100278020979769851752330734622454557332872178556529668317294321669542753984907100114941458699633124226090702276026909508288455980692338619597425707191898716251286879501340295401408600670471768236208649775135990189666691073989742990874760481595030001883348390946885763087956647592301697630027909314521138982199437166638813803594686145760327605994435175877743578325204337439954188107720480114028027024144361588824836587434653334093785086413097555193771413909237712193594913841959494455719043150806969567517240079039134122305818825153085492796931236320971846776050399468702985974922596001473399306093390615714364730113417726679926480917818258645190858439741362474419270310486747017161908302732247123871523970070637997946438272011277235203444566924491801490890811064415916324971902575951923464099355415758927997984651056469241172081747189849845141151003131589968726835938111944070459923066826677999537853590528171076075767014771010659059260003862861588240108349862869966247969641014409196744830792148399301272171755613088084041814619114965836309616860475958692327432990319442991195218656077635606759432827108957902959398630575055481857446896412912641764122985941824978558582065288665928682633623210352158921671136127580095351063869802118732128385180036229105039052133674433694996304442157086085820459508625606838999433898964631067659836091320554912019483761127337781847659561241499225723612995489590567125989311067745393069007152692286860440699808952343399870268522082382008346806889771003474699133822151799156932286739888142814104085852283828647567870671357405038492511232123282698820308362155351714403105775110135051448027008934191663137861510867110821149106352690431042972550408506031756505869548244778853290885876534823821397460160488765251420783180145067898165957490489175138345108473696769772468113518105478232917229595377602266335908981623429431111278353024112625567060831059563296624149952651667322018768897052411407597731053527722215374050965999536499304960466345417461915876303040555047121275779596182794393441174694552382417203795444643489887366124774732358588920406412946613821939694832572059034782305379046952259456649967318921432080075790844580834636516469132772807491988936826531236074470664760723181344517756058611602695151390968688205912976235123124496600488479376320928795065402551967873002963538510969426391950808437851892918590195569173627013027478317796909505863191528035323806440827693813139073147534298017659746567320039573352821983917518190754343974507868392457625818784704355652506443817497639446765584239465963744838807523690946013059555921282784213699271639045467254654847904537031521994906214310261795309428673169814553162602515284456296712356303009834428992313877474889500008901439244905663147679997192310383220462852703349478642102650838260507260035579317811819119597797845998811975733172711981311234595943418665882821513809963574813697835975308869803721700764824448657010781391467730191666628816677865922753086849383805332960380539235599672700742241064122540118645985477241011549757166768401737836875428014619922868894255174349759324434636033126281161181950130803450741845548183998585444636377217903545556350286885318331040466386745121175221108930094611795393654681036286039868681086125242830604542558756300374256966540227554641865783585003888540792358802323909123192295352068671937647150021569961827206834016373258790761238387210284620782951742202595193432745748870261001354060872536584446004525654329997102336571392046837544570245713951082413654657431300557526952132092847202860374228385162977017973432386716872914267323221875226518967893707404605405038182601416992758963122162815011180441456311432884199126476850130445276548623111020055795453547804482223011399261352417057519094221485267569710962709248313083287151476851583225819331547374509829565913377394042438607991649073002146758044434688612251160810185769866435089978685399202733793466865182725367773033089159373003529799496292113531773599475640507898332859535832123492021167826352580712142776955168404919938920284823339608663224998345979159828797873308578270994946698423408978715031341517634341656094824294947390927828492953955796420670518075974849195464300263274200543700314486030742835797451152439569597928256380239339492962049191449525703388695378716888739970720123499388210954851932069273856198381683158419389094798194116157749234070670575799463395877611799304422245708484199674061008121512274209596028525749753635743251790859942092697216305602228016357906683409298207843750030728614060623974854730340505416440166190426404705635171534229642671763677507024109330223143941194163156888547402447913068237937220543773087820365905018694941256527947066364881145166742602955370643553105955870224902532471277419427311674838163923068849530185382891764687809731832061525710229423916623616496082425644467148930301810479089642461543254716479527251911527302121911119919094022879600928662553890298617316966460580231459450822615075378431156196266948480298899065206388122204679842753870604798399548785482467603186358012432581453341561019940472535694677531353294640533952415702719036746142229314170679006796240074534436560707989240538904665637616609387228286569361036604890466318095025887416138663159758611707792271566883197005377896930746061489252460204851123854661168294064611019983912810870586129436662328919254896216153772442271010136460235194955019167893894324903610177840745044772035782940785467524352543781866301155455890770668221449292861479883191112184604065877065791879129613183799276737265059936164767831017160342829870192340539345034196361386034689349582334110858938927459358796441151398963222560430821896620236976631597932402738562393747234804032995491187403891685116673739559410690769568606235933409000132440352703888804389659874381965678375816765463688068868149171292021388487957454119186694028527295830717075254195268496140468969669905837610994491174845904100891800701849788617053152249030718822246205971245863158319193457544959834692217121911900781870940929393559972436910654188950624472216902595595381573719632868292310376628243208955697124458663779949370866076976582974948703283605473745869501626924281168130224309584910859485713299659658812204990430332588761828424046003393294172482557441681674721190020375457788775019349545346007696675810124351935278604282418365477310715762391165046511855178459468219488697772833710394714559799468158235239450236852417032162185317277360239230095267671682062347884216724403617760228473051563099701925487129963752759323222072983516754565489774668435447458739287089231433185939340967787942410571620421900426549531745710449148773678346489069604927793703904020100713077908036852532789633976312692995870891544898869323181075451855120629768102672049254088397310913916306033493737638975732135408080164197558231748438063672683763562967805548684801085791013168233174773485902538691623489317227018764563958419728001739743710520431895945584461066908404652475700881676294486884352439333699835209542257279303240743896799591936811287604235176304308992982957194921526374432723815587707888018744598648803241129508174189610862577514442446787420441121938991598841175146316493656961633492813712714429039712484662831647903817458951558609622191629123939422429528055361887953025875524127761651082691636985009113648141963049050446629990851641734961484597842856568142643078637029917347096340045544195511841048943951885816001237326180300090046181626200002729763077060218086636319869716497748146213190659857147400258816711530825144141656909741995701074385306757721577460544299327288205456547152848063038062394218291969636642877563901881956475731439956192788391314730628373888928163879821059097590346715785028693855285705363125749202505938149729925963840412362097226156106285451949212072295273033525678567168036226895257956898520281247163961720784745360650618962861813183738270390960656473656822747117437683021191004320099148625921146827178458045528450658335137110906696938513569833842198132405905756873629190592838386742191565075891788655763482916277527830721951986023290578471317568629321517559097762390542464369760890755453852514161375393018295435729902120122829598187303624515780965022047825155172914652183780350555872710568465354716756516321484074880250781794426304960860621963818854231188861905268309207721793748017714410626306350441459926636761343541725850987790617534179868177079915465294482357151424271359740480406982854856626849745828327497913240497320749463904215205101374480955589178494798852999536661584918145915495287352629802627465141784726791653041297884768717611584398838084618096896190421413424866957469471941824870036544980136925611408709780597839674139655311828117830412432947548475980311276812944957422390078997120988145560165884172170062964241915978954622356948371012682326680834930477494939310937839089490125072910046654301913845543779710433718098767837250162074104946453809858930207384172633966046438652890120105851517136784288748665586627309217704392861978043237557974232747507651813682652052598181548348225460960505180324784683714095235109227939137858992762114037710577465566923914925223249289892040084646730928144539269131057156879300776356963532200882041556045920104542729082543275747258400717464911222079817352323015259967700423866892966606930958771370079881181663622967469945735154328906587261886647455635064897246276171272430549618254126124549867698807556652427481313187890111207255758785963630086356150316646603131341856839383298546319021629808604909451544570750581816964427016931854458955485917901938915405229161818618348775747788926525476491099192423857876026973185582138918652643212426438631185437238485325146572037484104530226613134895489950730841642355108652395058101592293870920900277900355636129244497834078161209780241251587654114069773067979106927432587311601669251499754978116286627116591529999111496104611949220594994282642989539993314625938213098390604250645749158648030172812870623088020843902426035741831173776611885922972209889144093577908564357816972677207767337425848542096569162967681110382992350787193167638359311422674501357782940797941977893896281077853681470241034167048877182608600225197480630545728780050045253728215722693806940720916022708107468299587792858828516304753490609092856671716069098557484800380177600012421262982036016099290106668998854250921125745790186597967847922390482202737592903133248114920487953280112663128607811883684874869488164655545894514216961489093892067064560783400417082214180564088891940405850473330682763947676862919870596894960604312277518551738085240778797494882275740272274028627984875784626522458260379569892398508554859579530548212634908015113818372326110873044663861361106145866642909840351815231911024171267791048006355463175458816116758132792461997065557874879137985829150391935649492954283935293622037995829840348254487893927394941946461832817964562583989293048941466771760836333927883838331313826242591378912047441782001474760117133857959218988016054490296940522326336050832451070878728450118459044178235372830522789152537480743872218885977609330156311663368804930419417713932793667410785270939236664042551360805059414696168241530418893830324499416126242724485243105486042615969525827545393263853020777763559204700567294564960374710730865816031212743512666043278396168632875955525268472622551760920129040802386340572491040254744804730052818625620074189658651834119411047235002485034812401587977891928300507922192415362576090705544891919102494114730253710221122870060563106149417287189349111686173916555159968839641203956753222293017861149982585596798412508855984812237709429596656640301453527939231032305311003858180152789526774525520094250210101604542234108574084882633404114381406663665185519667956124053459719584135286942371269977798770225952854574042132610705165775478693740919099046432741334593378187865703065745386316334389628864422275733230932084636706370692699258690046719211266166301623995449172608266660612254620348812774661661930619890255900232884183474683675907557767304989773310661592053761421326066454336401827569807497994370083625762377362561216597960841027061169122389804839611455792047853423059779175294723501968367292510661895033004066927677742596979718334091925350594071994888680287172790989903530441406663487449728415187948620533383323087894786700867128586512289857464728923480284463950539928454171700982815874315518087235374556145861306508736606280681394723331965992911833158151762865623726478913471397716479988339224611659521361668666555447591955715696941258409743331652757856072394720388678591177720090180989132966682752135199483413124856900185758569088651537936964881626126200156892395596898355476073475431210056551714724397701388230826347121098492179353207872084935304321839070767967290393758788847569620238524467952194090658423589047173463162221572269926155143502971747284681384922987215187206650360570346290377531228131126302013321267987304719317179802292688190791505574280225701908465658791658642579630909851060705228733264965664779001526914353306162393886771842166612672861883698755031846781552112875832169808839124659666624849370610915577156242789354924858968490818061061660915680047497459073062510325983129893935876374699307143644631784659422014885385497536937894796565602986998441283351547318796158492728270239025086152077760553876108667748431327199370765289947417957859702091631148477552817572897393386186353986751256939756805294855699208872588789970256864135356613519639477436172356876778722904828142473381004943147850376721219627261734281015598635790731672332306848848757342679340255810642937941593403103407590455583464183733454725012512208141368124692573949939675293064705654325192334748019806613922585686480992042153377320027522250222667438907541726074676737532662638170674861236082805054406919992518185737161277490551167759635135250764501885859353902605921434764285248518970871742380738609748775901572279659225631380312135640566837566452475996424693034966024463862475940065980139198028810095579643499433412986446627843677599888998963904841025728436937548392837411360811739520072353800566376845463013766604647523419133587479584043739099331953894265650392154979846931444516460797660135143172219577501010958225780822098588731083048716485977165686358700558269544229044386614150645688374543590537669685648930928454457082670252806230259788145398841295141314148085948794068659323994368766938440196179167118396387325903213014417497944549648766461741633373741606596193412111163628364313850524127823515557001201519611868647383047225788664364932174845709791538894477710352950012700889825759770343077341771574181099315704296808616934785962540671155481051663795830068184344942959316433013143049532271286092047807460592613139933276318783239905959934718238849746492137653757535033645803696912578516462636014872362592817418909680525628704335361735043281861363619941214291586390394085530267841266384192404150735830633154551600521193708757486818095735567606327882686032386993132469583890227459261477654423084412283402481298606217601276210757840340476904596079271233135976870611192302982597276346371107240076473303375619240190722201988462560688041190152168792377649242918945496373919795976613332228842679504996248214576341675917955236558360191143904597904049526215467865807601220977384534126998769287074951517246122840249987534270677871837006956804476417819645854792918457141546404964361343221435347310931405074126442235907351806741982444957532061366032572619379803920524449662972847784886566126102408205883973452120512717527313105974733399412873316910037332397745785015072159763123491620379655843282724783513826700945543564274390082958630491720891788759287073390876019143038050649642037186364078605452319771924978586659830284694103980254841717394794697289617744495060484016045167060316198298937692294469569178627953716277458111287746526698803837995880000093307311259328096123153379540831215126661585129103269350181935417307272819649444186241055672808794381756376749121035519368989169249729860755822074204501235345275226948458557360498726212303539711071903076517601327289897397922092730614886100342646569595601616494780524074652690091836184008919548436929274215606736197841192305153333114714164432041343565545287836053700320219049196720681323911818768057759755395134464071376876622090321034276374184354477825464403394902983450764251422733009453385522111818721702181829502841108222715508051584155382107501615216691516779423127675257268619166040548077064733097520799900522195831416340587656066784938741631386442837291633478899962465838026531809922810410323679960236860333743327125866864261892498921319306772810745425881689587555564198726110801163006862611956952311352780548502739461697384901604006888494758507690813659453877385521675550663707240008820814879260173012400974661714317201735848488268197645112198657860494274640882099753680367816888837697922254937701822185784241324895345157370337008146999879440689960560989186498193870039895607693850771660835945728138524958274763569832374312548810567995819243715178167615521239752878776657233048488308855015453863391761803826877567537299904450526946556035386076056423344157632025150781068001265207816358086690062134456545050605023234028432039426037785756344337763489688640247681056450877774211803621371386006813813514155437710558279918705603978260596239052759545007968152559816644648397095166969051210029907305895997365425884894009618442167571995172703771129924168533114005091011988698410490429987444471182480531272036680285300736973216164616438660152264831544254268854788728970287817347261207266046353483907867939140831361785959306126349963064194673003386238092379753388235741499057458187017076098131954287109086161859391393138264962580610899659588351660543633014634961532588287259079187728716175299501262877762092513850173293987762721754822532148285889269056239725391107522704237941760024545885535526349001932782838919975654058392182604658347175393252961676748229704399779252077518690003201994485116355005091044848613514629053340579475541129070423601049112050735273890353531477993692627320088419382735287686019869943291814952036106002214748842057007394928658307672838588086871240408712104343890559897916940590582273002935522943118782831826589437208996315671559593237227108219138938135712834220782714402615254832569392896142209686585757058797565169712269509403529582081971169962568441661161057238145746057677739235287886312422318909822158704901076273234743858703977394901127129454897534462469664462366431657274704181518343596080224264551846694616992107231084201364291889554271734182882005859774254801204287820409776186451435936577149753884342020872338140773209793235643621477002601636950656559747494727860689634723847641012192845215020466962338117569687559817609449984060243352458011038653660639733941763911505364402906005190179951210603815497493750516873175148742543679765953144762207402186144238643828591812016655342533286922952068545501779393088713621143762864562213025036301270963640689850869288844960588074019570460689993028365069427232244319233632790163908966319448333113156003067684307539180544629352602587094187639805128449050714796907698091537873690627212879163686488186844896999218371027388627165811333715163574002364663977479343464788383414919389822110215812478953970298349726738205432668427839556030129255605518794098801406125619900887289925041252079353319371967736489760804714621144951416743090746211341499133860399171571871445437524423448786078410915954702011398708502919914280751628442390450298137992298683936799957105973658924051928688453618325299451625689511142525691426526005454820251974676979170165044961545684665895978437420086636628967149698498866521511373024435219986355705493516722490668536506351323964391134233095295360605226327995256863943147675803061253643506029030150478680543579321530142478920176906342355166244691519599544627925310522367725394431483793882576906384129157280735997965396313529886912971035646019890755204705151258371491164556901334724105319038665785059808376118358271830727011840752587038193502209982216495463272056577786175372122823607529951201697766720045501851214145335922589622059971312649105186716417293232995248129979135019995537819417476085576295137033899899859171947683580746056642853122776266623188247756802388535034144029975323529040277667313512717782493611275627019035611785102141302864209274710408476574377670656168183871765484891039190362761227212741538640940154280047578378870162691583884714056213398235095492416166182415739029486937361674564503627383558861877669055564952318683315188776673881497530053502632449617946922826375885425366594470864486487562948627628180671077464283377923908015247078463901013044299952079252355793718816920737400496736874892058605157644551491160599977636837297596413845564872676218097657271521028170214981825117834286093852514837916080906009277825928695450537883601082457353581277694398530229020251335057193624912681796067450606223563501456183787049583321650712347020634322068307172533023985067366501919347026452892214873997667801379258071757597937367483457767248960038314340586058411534814652485453386486523261508930973400714137186574417531271033062585451317869996276358957472739706577943394546789702737207438685676547854340857788279030184578095577510238333047379845900262397387474546462687696401444655597666896159558092943503146450499317220729697023123722034556931691871403188135023776895598529827063570947489666754259205832605586815450282167373947182492257084298020782400478374377542912098658023892434572956908589971669514145367742394357209031147158312928022838339555088195510466077142681800758995742876903134138743416258090993699023753181815548074577577606111944037993539603422763728412821990362044747985732136188238146060326967025160702233439746877372650639654917354459031425111552513951808313327784474352660120845185030603765809418824064688412298267883517146037611732465285490990373513903201652039953778608486565771953553264874539383420042926168813489461567414841152194486698203375499098471369267585939264871387033082965972060988343068591972460753772967005299874399379047068692788509158444716534918991898882824678376962665795368244401216052644044088086911908657595647081630711320233797465911014774849802402122194885776055532050748912117862658655382240057623938666465547381130051158566723724210851469149630414606777315474664520178663376445173128158770371690948973610028259076025713375433382040688237839683994273435235923861453884961300412765597243527575183868233611003753884726821430794664755878243973029799594549151933182255699317406833494383864582785443449736065363961430311049681034788573687610378438483040398072044581732521024041053852988292151355715792910976354639058174650991531890782378176388782031882724682816207014154775327410773558035415636900707555314135700112140690440925669697154055903695338746202700502303044616651014239808129958163171297366255847199495320847054254067148943030412156323880395648429919431259909923003054678031594492569070980192804082077343148770476067974772443679288585340265164608787966043753305282865806240589980732694914233417717969688169691704594132410111356413362816046023140177775009167486780163749256529329744538817774664478920581214022563106121203665357657125921793425625246840076167432679235561923965212954832166435830548113137435188929473583499935640591681308841302212996015394603217075541596880776926027123042171661368890082201235816881422794830916765153599247526650844736954013516792430383346255632500022923587978227068021623916111257519990004796746939634766029486918051340133434684869002171141044653575559160266210255293426855823740450950077688924557786812629689808711620213251403419498022306574061822534855415832928177761104696855632765991437137310803459570260490234886907091334605270480434249646570136145512228787314340175611693407349857979381110791057947109403120908427818240738555935302494213924350131501787810258451935086073204655228942262092837306006262602379188686861549795627139250086599846988578270423181686381201374539495945563163551476039381562524899181727082256374411828408500506695173486409134412850500644428078234832173149659383058199140822253703372308136385644922366168267904122377080909804745859069697174890156938823051670518797786693587792364016142666324332461428303464292758996345167045647731073986214352969104082028484649261051834574238003338825170792296357539253497926634624933877872097267383619044876245925254861873202570947309634134334450274955057018994210173778922970375816325520985654620156974065145659146791772308428895530194198022245004893847035905421340787839891402435335028589356284886969612317720688241220487695974529426554783700473293683720727882418817417399931626995603205970354627770442801312415893453564702073510622106464620470622584925946016895565973174122431506724194983649957406824981503083755352701019584803920550473682633894612567730667090758105442771593523114695991201829826152730632830058439087798210166874143072314026818783867795910631780449941618164957094229142770336925159643783387772730297321941430893649771265559711103177360235886181055397290397633211149635417883711526189735965316574540912933996491661909050272489773185883601848156673649924528952750282821438097632887402403934887906808721246205246397123898016607806093005391558064298554791255326777426876555409536194618870947494683215449238651521330953525523708531338365999570116844552113771145328283392705621306099080874428930624802589548735363654703710177135309483650898551233609859135783144731427797977152020901126085977495665337045676649860231379098730516464139867259470755882223056559784804645137022303834230522930488712556765884596534597611300062827851515210598910672156500339211253476208232532913063480001048213363922910546492816928085634965635928053455103333774816859136813377400181756936843724196655679878259102794425288521575323845106484953180313743826202477836702202787633843064586195384662139946896998548855320946865889108580667400294298910465117651202630952933457018886168426316764954922165049926173541859528766958888405942968421786110915414662474789705212871218330556630506394749619887728026985554274777955549135855222779607380385868409878296974659174734266463384836678448602228696587602195528222026090846606864778356506865762423185104690883353942432829126975184083811094110440175635104933728751050855468923980269755456464948198402312094813248570537123765599736543896394166392165565759925715288190517491264925261107508214972632078227578607912031677810156083379072324896644844330190961243959907225560680835266536770126779779663656436676172092601598135189160849558490513307921575492147856224197907454764313559226843763160621839681929000624078534319834710336920741020439446951790555489912537556768012991809954072924310724395098781377823169969595576984962933968539903330168350553949855094708619330916399173031044562822448072861340595608274348240134365019457510456167739505321090810108388854548263852020627045531378786725415890169035289778753870573994990867645039258853161974520916948588607913841456769290968646349316350598093711432120609417932757227914084856304276504148789443108060206165005381302999669626389011094109179415530783340714309308554139884053729730867939243918056198669836875201031200803575628133221475442198020694983503938813332386641708584975325743414840165926840056441850299205963902732170719198936421803433940038250292769099330590644560188374483835527263651105796296450867114235983954858407984820014764384802068731109733185577351499953989268673545890729804185195588033487736254301504376765758667998699954668115195349656658045101457028542246795281482530947976849106789169481798416259649538854103735511067537981351916996204817823242092922926040824164320658315776903579735191945663977548054998414301468666591752714751022679374209043476781754748533154750574004042891542173315572962835799745838935279434454578348027990783452958557014364176464676835413449469262325856671736650767908891016153887136361543798046088352032582234794959427167487339990494407695076124671700494831275636839563825046945991467552916409552018618731455405649417126200956097585905747097006256092743769833159310011413741277494738694631327045993802616262033418945583201080262262996625551108088771738868238108903241255649068015617130611668478392955101766732659573134494127275596634476108068668835718983549009076934556279832568368780291133387850820737287329714944956243498782804176891478374093190432350779519535600227513595813120593152832333636302100348973119479074505371224820454115576062441349280161478474412764809844752613454824433860941778420574181938384413917856743814489037472403810036281322209328176966766060087244259218127405860075139817871745733780407790581901156210881802068606918574621678639722035228228360105788832638122044483681548710498031774506286088938524116999341926443816823569541630392417395246532772942492344794168114799331982161148701523656257820563534464959930589287539042895005921524727017929346012432705309907458455891252869630681330633568066031028623526419030486062329221241138409343838842790788296693511616789651272249747503700377441361782299135036029064497705148277038412903578080957450746564158997422778914445508512842666479171722686321795116893594932072186657248761996412826456624557486651553520278366619221788751556417209530501236960263929578586436327729263537166948001712924904136275258864819270486461867734532388610478171085416011119727792101340039061933546634281148067308221855243804134118210614986622072022559574281323642972063324086359393343677629011617676037517337906894755043137418259841722932561491198129628465178037983912648308700552547324981382284731460524414721320827138017965696747815370302826004179733123603126679590851454884956197576452385280862177816853701749571468117287504971411938419889733617688179302478176437213125662640483881466697450658843315090480312050982192941864615745412000989573890578564945704520144524037151317869556128747371069111190700157941315337697314940963264017700275508204696029206022844024015532758208685814881586327767608042884998329999930146669807114888187468725615542084449756927429236820070986391692987339636711243678265229105993408906614262822729353846943157415777014255736456698113920549466067932800815304668219992027688055429453573511727460313330261139250471203933777977127533375901193017972592976901785029049411296660516145463975784501570598602841942608725647442562839675629411219677395417107256384686720012578562852792279326639047727241129016462717269602427049489367803005011771268236047763786617101717294876161573677099748676029126113026165280413968049011323869890752426190189184496231312397685748450771774117305862549063088718311845923401993514992872670082680240494291915256365989127813004042542502446213108596700132484874658144483893755130320963803965916923818322944727716026955525884518703583583907689930550256164279156823424869826973318592115049099446313454440271526221913045658089351568009466675531190646014021093908496580217183830539676955871234529314341045133288357162018266289049024412819999880278098906479393592607894673799322658405014501401427570373996879411560445949266144517942892737105762652649751073836390860202377767362826554018520959419650271430985817116967028334832547976238549638845059577851160353845675913363938614815529334400755185545288399158222931995195876886270187785765751000823941914330675050542719462468749286172657409533992997832901799678249612884871128371081295704616258631835947287184230543363394338646860318372440727421914265376891357623927116906430120677131137483728753659611593835443096384629715671357862145774447985157809455295279683481549079021262945192224791703239361124932235518741773760237193886710090439169335395875171392686467133203130932039319149910579271212011983189055790306329714874741609056866231983339135852997546899925712095868781111000005296972799085558631540264371592727588824338937483223768676530117949276664166629730429629853553339827156669677333014424242376505446921137401017113330643879585517273338447283431435358590137804666894439898377811216341697315114456251302802132726443806311564506635256083372838139833254033514514747847344074835960154854307982035225133595324459015882500793932626852914350489793173377103536130764955209586832638113683844655152735417940107534430089539335320133669650967451874787894533549051786674425938662517972617040178291474392139208494024159048594329348335478563220299588938873861695376589473584719995979647557367173586490571335204969590729189132440238859223282236231130652537511288592125346462812394412236633123769206787871476189320565162537064527022246271429189894471848357774059761123788832112866165392363919834143001648822301217040652148088492896295623086502810914715919505940681236364694488324454989241441695872486675446079418779565751469977146602597204583128333059261681408084124503687310950900114185598983582786513740746252480370022995286113874313609096916768427774338554526780562381960915794154271983508217329164662700884434983260366827316236040898725548300475697712697843255837501987609701375360504939994498943229502011112467452461676700014942838973922563438191846782978882288750568457945327429167009280197848531517648387275069304721640569859052281154164202595335740801286722122425716856927925148974500158040979844288693486129283540803425899018249504605991345874461357635880079178716440427481987876574593805636015297205528607021821246351610952036727948230939596483963148743655414987413518611421748906283027758038867216767662239760015620711688236927311350888998402318470433147691206602117831706056318624586558625183826204854807085570832374174051558002043017560322513710926231294314977405286922287833211679517282028100027061393280500815866406932701582241598735966547736940694235283046902414676146793178719079603928491211409193673035968040937065045639316151920017004271707241083109123738899923765410040061571813005087854787420663436520362461364071371284944641061556006511654288222543044355749557005136331848062905027450620979731622388613986018715961504016332853055647020966315049889153810047861294297309219744905548069979814354163086451043338479207606667502163581592647191716282044745177473064397020135645132958202732930729524861433554737399502067774217808318746909458409091310095887177834948884116447940437179639578159366044991141939001184184156509214080464149622148038279438951162607161958574707038063995627123141706003697495153213923167941739950690606265009499452578554421723705578525184974467521137859193572935812038469566830942847306402780793129636131015490574350938855763448279815814272282795991909464712236257210472714413118792507317949166559250136904960299724029106084012684201301132191215550749061487558056822372959232982720827949587025476997397484846192499402863814198630280947005527981478190601960052809615969845378299227658513422539997822038397169532091655891795509691954396429911024198173020380666514512488963452180863108274471779993421346864313300598143053216875755554232380193567582106080882347716046358964677378838268536470711407462901930085186094753395148877811155850394505773681953236622840378422402740557230165331280823311919710273012738436629833898552223894780444646496607220984331227300963136461343062481076123051540681500127053659200188846388929111209450867564338171846700536191039391142364782808952513122486252180005466208778390481616931235078388878901241872861163214574065927261281950486265664004555829630195062611616993462652087352244737825114283179276793999280249995988074829524350832263500698665834859745929628443050195179795628864218045761292840546075911742730106493865240837895241086388019924302205923669308372717292736142115592061295545153806417672672671269896669683948263785229513706696728744530397917938172678492996244543818775761507203684755501851909225293923248623385093385401882827109744645753089475544700077182352799082223850611264996785407333010544556327884816515861578292887838589929321736501031530613106409313466637238498808302577424579576723894962956639971598120200972358542488440996933131841411137997938332499392975658442570042440263267322346549191534231577284599466956451774519848147696136690769270343745185004934210363963592769614943872051523595919654874778596373136641614846992622660763994010420061315783173897889808210624255556568743604493898340914675372316954169142932335370313270475730972591607052164820787903032856288688329061503376144674469050541961172242638371859179411723436797307588254851042092046228740076737158017207025248169092160915320796032371492530737153048028951494190565226484697015981749407793958534308274777736458370357342775105097990724848990427161353046800786188168435311611985423431551326677042957134354518382936658056977719778989287735087173808288448843815121141037497926544262958077194866688024761168341020659288791027134220481460244110992581821822446995833705693787982437245797090479619618807655395185523599465655239638923952690032110413116579282633294456776514447730984246179162324769943697558519627211417854934796993317481691302115466113150803157658841905571790242297206258563143114592675339700027070224576743641005118041356273719505025251946203445334090219754011095479619673126311733441608892869285943011623228571905288692391157336870130599406439246678036461423731951362065109186403827257768001790530931789960015728820313933685113108979266730451329208204851364733171593690568690470303521848591899961785460695421991490385519277978276266968705982230917994275411366998559684145725595095901151078937803012944311475819623935851149940994899405580787199752331991934901754507437155905166093455835445941221203508428715337594174324982286474539287845193902428589249250295710307523554560169564886786216575374834859673434707133918521883753665772551729493588834743569927586423465802602077000087999318206766524278005095406444356977612600327092734005249258991337211349806543485888320941369076443299020126959926564713540904295809267711099992152667780215244715673828369977274005294094586197120277826965363697088366362070862000233540737315516418996311850625075386089835013845907837818875385417508769672666762829556936987750940557921293389883881294033637649100744899060465692180235242344289218225177812905687629523544378851281398847671237098877882087338961733862577460203400052121069455199302381012932120437622630144590639269147270240112428665959322085755551972948180653079963981170812793743636686396354989544208061428862845724696237846118044739321417755190986649772744168770243676140405354245206249289079605979584868202721093802286421130216683612605326649052024930966708753875064318687927059213352588821352938163364771887847213846817639187439400405126346124459364841491852421467987828949456057724081977461897313874383663493028342796008155821503682207138740784558803469776426409420900175967528830015861104661448716771767862775835089747698329763715824987146162044921442891322089201006523826744223268606875554898435074896495239672461183432932140351430018573333347535529974455050375328297374019993087212582694112299111493131863075727677773060952992230574313181437554881423150506994584294553989254585387977962218967270360096545856880914078569929653817603755813012316951316715716945680230103706663008260622926365859458654866176955773893597114787156836874321355008991910806321281832380978988853495905712755110913907795191502630980096551121934572803979414892001115175374479036121758201586118663262089334814136924512616036314426998610150321334031053111707193077855162769561508547466986367373035770392388618449504460558822885001878896862107416384346280989007973393243329388627328069376615491705031751775892441136372272740784059964983280200423733790081000337140941163847547526066150262855331812195696044765930307085953684108017262365243635056463439013176264532016950892913803720907291623267340073325725617781110463525127440328047846532372027243718039475105673616143214874287746815419922289479024180575549272835970827807841832629015794193818398133317902838375936626254913811438311537541951017640796492085811376537573197435714566917965781891336088832458377195752926164906395631446542817436812635602135024706028106204323564743231650325823146776843751630203349260471612537111722785787006522260758340617659803807941446628525850572101583092888748366556972374975054779299311170811750309584399487628419360840251061842225579521570994675117101539717715355955031922920158464178214565695222951188578178855281940492422726744114519002436944428194552905043672354397242816522973481656504508479489718780474463064392529749801253028953346043837235917510368452896874091585504722626550038460556338060041942630346136314046770654783401260496400983579108182114570736388882631116738457546272998308975210227265288126015977612599312033301136276149657317281927356278033132715640885534919086105595179866363498802773530151841700837460333114211688244223301573567109527007613509887911708456906444077821586327044429111543977199923534226449688183426216748816308361559826721269419751142576374812010854046944508146032247850368090149449856041352066723525453810297362971320617488735342298196204234034143098059710468868449695109965329154937583943747689891364988194737405977390328725170706589934156434175818259686449996133253556731810370405064879901828463523296805905075905182182265728384700935561684170648676862574476318639215264949251929455002373510372655998506048495793377017874289592857596587336666186639947047924935069083347707313292795548467088941981351807186139066753921479793865501992453642359875525894162939297797095658119842478901953252206390675096980470140694641383271955131376558424647660965084865148978963240739767360548537175125288689814083389185411281128985536210080754860684645070073459962342804490412097812315442623969032346857190866104547700866993400277621174655426649825917868946074984694971543758442256177069957999451794010922672086002239845048759556091795509045780477304112332166284539157661312425374843571413820433902119099568170756440753334636698845553149090827177974346800674554967624606264213330327744399904455033356676540096825730731069975102440943675275945087588543204922300802073403496266391148767926913700581832201600361686284159558402948859840732323560360534371092784669941462220656695468354718803796171741935099496111271254317902176123428672864413059938576443791164807970953525159322845480911550777606844127000294058333044507155252529133964260925062524963232839360980554395478438079311452535528252677446423593366730470390234795384558825106564526746812549115343541268633756922488225726132588635387155957513276343998937938641324673099146149183432001766158332478746232663048352370432714776215180950003183108555461047414487672273645632576197389963647929399566723462979396801082404929418941560819881445409518003584783456602762945773393112212075586268400095137025006046805387824017985087709357409944587629163244619569009291607171006184042785244550187109542701511723698965175857277661562686461594032924468499471972036940756810954366500380419988907313094835912525692754038236310184988434240351336293760524155244777255753991430782486690832100251925334097348498203451367532790445832617618113666152219760033525006380722033262412509945029254777727133381675576989724254236795870797736638626314926862120431713001963711627697312009296955255434355411292045940677963611813772028291452515477963526411155596502769049511445803864903886593471074852581054514810415489279734455920685463182815846811288918398398919495303665851701869748436638331263254056217141202233045426976122138286568083016174321021590646540617861344804934197623174430342458191827174485434014853236496383910605478241478603954909628356727106765686240026787064649159987451728670316865419635159882507990496628493179034711883322073251290864165885521227839357183348928483334204464890806287370505048687299934091345265779023800050666690031565076764741374626289577512955883370511707680079921275033341194019264622769893991618312935869775346460590712347909235382892610595638882885977985626241003851704210866644867496181696212937079400103795718858289684229621166162850060493266329894986801965996947953847535283217505923825713069050127796378479792687363719342847687535870566406839352485447676639002395259379429479954002066872475119449847786657340559723537901677618944699131471458959696988878799501608124223200401674269915035745057079912664382049747388492568376273563623040552897133509979893361689941817712979273454450825649078187424645869631290039325744158147214856994131279777233119234058995271387947728018756755865359454961657348861662657855120892915993097536972381651019405953924864086167539873928487428984463161532833115567795593098507712189454862528019333989190510524906392301956711779201326479746518132042082858662320666773684025948307907089599292154324009632271828594142886785987975494466608835500663107465655515023966108779198573784129063410036621198851012887698405697078447620056622480534347560636426536698772968390277731323303464273507147892844248197149872752858035603245576659556289231897188067912933113887342861132427216922674918156481187811227496473815675949449890048957172660522644909645799050566182062979917619330545811495996883954725655303250554000538009047999151306011132445335644065486764104522979086741660484041904459894889817648984566082730123544066218097792723051480738717456049757220232095586774076496927477349281984531614785073222931763290095408756586659694105143837170277049347416149935556415132000646871614807763479998266140976170694625206756088114978243626941836730882249908908464380535754558446655960660411086094848941267056118725414257835052545512880421742561554613141704454570782843757374437507474291742097104968935541012899995555043243711582845607256838475549582301621079716278502525566995818559318774698093922548955573122964419480945380062567400462997846392031170889965665496406314939306065996053436137903295050186645820710095872811677659504887967324223350985088711824498859909696348188637885335669168457031599738654902048568233749933305567878382079623948030593245854754952304106269264882237139878493916590682989700147462960642278129280179470121979085067936897382360757248609497704447436145144830002626054532317063326722071974615481977605165947221005245556471085672832203425771960682665404447903750589918051492723842820770836341092944619895311832285728825801999966969270600373747276254989948096042494278610473155682904970716946555041974657295266249056790273393791756962270363517618229037939373102616138600497279073326174605301473021817371843005439774937361245982213195464316657217151762255003852697391892026434774391796483007076815822355457845912857681740647213305055380326164311524174035197975352725004944248902682991365091643715146419086013272749486735550523702395495512683878375177146180436308175627360211522643181082365521936280544881158388904803720745548289732670327512088851966251500741604247718617020474332065683457860510380269770488673017482275257870782136887523301861220340120409700796544975158216894680707292064570216015831119131940577917718389436640959273293758936916100258520791927308265666330403835491076255257189511449156848098386123973484535948484146239810244469822731568274311469676449795361942258346314151412155672677832376085741693448652268850595300843391427308999634173277679529556232104859808204172892461486778126173789725746322205648036739638543995432772651137949209364964793347245187249469675762299174028891851242883950033822132551638245856546421529967338733708089444977479034470764100934329097113434988914085195517214105994109981438412313375394255692388123920567040425247933291770472786354849062147478079952809547399184749747489370759017553116728520786693968102301876714974084150277438244088399667546163189596694459295307666614766066771801961541616102771133351743470040820853530418539653572435017496985029810512777214735777083366909734692512103351204629864556628147890551756073513021685068095505561583181697069562970620520021894526654470488620622648627296819595323081393290083141033731731813430351757930954905802160515593443949436441937787678256707526793366990661506679566653922259874486533377066953740304126531931539271571121877217888931282329050822452732497397283761421072914798671439550212725782550033061988094894313668607443662523872733618064227383333493447327453435230182819878598736435897821715279244993590475491707012831251189905549759729323349913005362424470495501682175034445714788314302300984956086771895147428965649578183383069967060387686622777545001879841956888778176315483037812950115962486538492428865291959160719665888573325686245596075046154069163299334184640952967254187061673800722197327024719606917951809666216770045279961539665594435915927320307112823699084568752810637032569498538031104779350859503590730795662929895194467028537411462411941851758798584014762376846488654898878755921797164465673890394164230965389223578916055696966886135228631658761110836926898405910089667605378883190897069772957373979018027343815534239316700662956330008807545042597726032104431416795187040920093626465023268620573301312595791142696718080705978095256772949808508244164646689797405208723257170601806905987172908111034135947673149194586994353510648596048826532955046729627220043912397673798796487281830988862199346289644493636471580920552167706028559239875596836873043034901683882046435052077803080882563915662737438493308778317336146320640931214116504650980491625220206207240104882685413044282268279696258465087822172804587633772179334172584223585318277583282848454883165745030163218900133303853802467531650508785900952491398177659705129840090925724303349528625096232966407050344087628913040811857596272204160879830411761324286849153841959550139558174156136379044683709548702757836669624380375948670651085994672315592249654916479566437301111193813167009055648433515141627533837396712517117693081772884073446804350370287627532669106040707139501668040949338297817257307298081947044259369783693229484756055778477603780740258567190003109356379830147405468912651739327244367095436024945046399226879069100929636402372646087344926063784617182923699272925446246768142641357177950222313757918583072041059989487237480050196834613835979636159007079347571115030345868346436568212002017944186683227448012737773530132666332403055239244969440092719428858608224232596351144227038047876515565950742318078577471091586845177403736369232012611898993116658243163931449260825212546808291151311964965267897129165207443515636303209913003486229736998329312454678165492307226823306401192879628834369863614581120225730756771593373062091511232938402556319987750304103338188837161616830981398557793958358156817975508017908207241570320071321200139469055878539678954267795714017391605763274218979004806578941502179082625125535304858557145841639523760794198991444233202444132509295262737197600067754168936411256177305282504579816734281973231513062892335625458588618045595877503029784920050504456021837082935875992410930402877307970899343517614160309388783989760645653067916460671871973345190597313398655873559896899627347597823641077091967885684776561373191460774450263201602049665849430789019371928258571748700043950818207357058683967894047696206999359979333196974280110494535473465472980596430190619479801289658612596979345780841274070291430852536951345851185921714020550039302117786469138527408720061492854142406003161510892330936131937036790275620337668222838098749953515618269351163818546066218947721540698506977975528343708338492459368015418940944434995017002140282384837025048521962228536210431191059583538958173392548752953422142595015225061824837292885243256025997592008808088343978147867353038176028378782197038660968046411713399987651682740017763681456979514944487826896379021398151703092437099931581004193726178460680169600600324439735063523868859492678180252517742354244158280525410859018774470872530833611566578257802869454519879799195720649689237888064771763820870363413986475033009338352104906020394010764683206680703747817507409883290880888954737703529211039377580896069302401196608943092586004103309458216662397106181181062315381551963475097983578354795056639978621343759999067466768067645734264610608588730929435586622280068939905532926334500427816913309551577789818606762462527423604056883862638590664023161395176311245286930263916366282315714748058485969390991721640245041000816610586935971545261429156256724073735807991499220925987763075424487310033950910994371999806702162918310412457711317523045464498588418632670112332893446527877092705464168220471089483492720888210831961437943180586670392088637107833664999560436895624746121106845337614930989362691667262985873012147716813361177835140727347049154304215315780358743709110710076611820069809585617714737905295171953090866359646857076629713135500193470126743892630295255377708423535681371435295859032865418847941387556901837671103170996411120701868318137466979337207646277895310957305168853996027562957648185716359095403889988968957257206463297583032935176690039156702344126083952810271892736734629918834364825973417741979161544132748271271842736324867611299192841895760817858689538505466669448665288625052183027109835150582552490127466777542646989550668475651258028616210442061441654113580108778275621173520016997756554414361255774141550149098785368569988550523468493982861674901647217626020982026153712363999652627283567398548587730476979962190994314362035260174869194949513424727478070254406032823572343911197493874125256372307049069007981992605021541755043033007952020914975546835605277372659393988745142139693583903238806943580683181071788101113488612375127751407781044999454247447709321749092876416690988549761840229876447622014413831446583464160351704012572222873095088214563148951219480369684015632791827787200925654990876695594000634562467963837904061952966573150572006572709652028081040727589843811134770766915752021918001217755823229190515510239163839867064247018867426703442660891099242865239106728008775208437242294794797816599369216500577203295921642089241112710681832116661071323062478676768116652536841530923774443140923350100106826923707059400301617335178285332960969041616042065561400225401116972998129812717536040632801611355841749519477105614937501945154802057214653610302535736969442487380854957452872840844068467288640884720054219210768132167752517309693042983220590945720834851911000148355038527299343951258151735561920551619027870832071339063294865343908532210931286213743680232201704822586464756126710356694918512468571585240646047812492189695088120103040952047402138294077976709969396135513259541570754557717715675653318765390891673199421207715952293144836218416694192506254167126502365451559889632479217229158633758777912760202004028636806826673173447753675275871639678906074375427884754843199904924473575916478366860763826384889436768038817884256850189554514954862864703578546541382576219879958284533885808870095602630688775636213701966640700054187603698737411393633915791929332991685274842027316469098460811576823951186127422356437690498380451379658580100128486090065249677533583513502146474466697404529568070485881008324516091068581631377084277434254530459275695807614437515581362801898591660411982916755836980026250572729638322346354299656501807539607459738455890222770749753145290651119016223508831467582233406046600624168671839599139611005057067576117486671549597589848143318266125421228582133724805357130633247764696068620235976771680376855591781908639485917992068236646668833119727117192616072945557814323738369845172235806474906483464772702676118495329961127930392213709332719984209956146958866072612135203262123131268384562722811329021035546124993824617141753024514350657675752308480311407553336147339008720064982708390091448727205931882843163365821171544246760416748220289952366251966799536937323201459852090413189637755650814374881673353200681768138134007016385013562159599227580534016687188708676815602269309940879234999796984279148148858919803923304192187155697470464354123682036339843615031990126447060414507094828205995226422070431937726894892079655965152267299601821783500072736638788079889221754590794200239378001198318510729267645404036659507124866224544271922710537939002381589513334928956018493948096572910627296341197230681501244639486364066777333554224363839257282428517720308906376435804460756442697285024011577048703892178799592827561574351574200790664260601224583641335845253525467218107536996490157489162215829395942577526560338480073776988589388299076195844390190971909099148377812349706751507489532658384449647704126567837205882486663641908205782906777856133346461910481217973614192965773589759178731664614712309993733343126318158637709613523266732269841341989599776406236131637280414156295885754677441325840528354949260107349197886132616136098571874009364211767522306705479513384934303713765086829601863900219012705414943250700527381058409586217258964242361662507475616882708376531023327514623898004796072523867908065306993739376300908440215664109683871928082460969856975509955605402915803676441809655687316485161200009945853189455185821623046838103346133030592731549048759016283862780469180494521031563379298327825178961117534540871074462238948799042903247653339354110597657105483868707954260790675367382096293237245474104517478862214751696229020140483671945619154773550688813090367327781856105128797765111056962145202717407024524428174346559549076819507187843297774943872561787577387590293987541503813591515862399894467102735216445947256118688333026283268087411635094896203084573869209152229697972735596961217724402965796972578661698526642788784510216147833394238531301675828516541622969667327346221437221997197503777358212080560529997626023906953261697181144063592249186445581287892486927658791388765244529979554817416142715461902213399617416704796441723502904219095427299282762471842636499943925302018246473391780819302086441267105469493938166938208046915657077735280008984464943119719088152490091511047715782969549827423432549064889985753138157441162846838720715556617255627361881811105179294509130869972727260797599733476388939625943110678357343303951460699381189867658728858958845852177167842331220632186569219049883848117648748380144523819357550326321753068963349001078768201069187619760703390107145932023265170068856281946776322401459397069350634611376029420885930315299730149983919899049902269417203881238663705181898137098575004264428317960501239086123283461507537634760251663719702884638648289092415694681926766078363359849239752458692293231046869643069411201997080296910229459405227861678505754367733776170502063814274901718427912979286062867210012056989696798785736440660123871580693455066958714123182568946880582418057635166822715783717387201972471153702479642712236827695276024781487149168582489413499611013464250570484126666129702490684964951321738661861832858671636695206793805352862788834827735152124547238896386088344460264639543817098311528904877313966995379722713808534845370289208124399442520749826751090335823644436490234160547895435448719117768962601673054875003025819686376307571439691504643953667918601316324122377092080781109891416583147127982457670592435806910217880560217740693686136630976073548281944901292223386481077944911584222756771698654968776821457351274916044633781828072813438569027359330908829358237759718762723950279211315974115408091999045001830707211628620665646703473365702137177485389520665565637415506079252984099245505242981127156692072588661768259849625500437704711022771167264234380829160335089418182713860138928105790540923261660980853604993222600494331441125185971648944431254816815678567512844730314143856625709990184908894281324643211794165374791178808076310160040848098537352548981086033074955675540183352604348391483963983160535181194203663474922560621699385438134915328518369491776061961836993172802526571959192660575887595613824163286441581540686730471603332768820044994287417279203260297574873079486931801338744714713713453280665480771098966677454068300398700963140630268558716822939448656582182636780143747091384978761011038222470583028226167289519986061604910688690707125922684472576296999002442217385882253209043802111237147409905715010383416399493858710291547754779228419385266922252204077230475481752498495133718089410109004070465993577340473140905396841574203170363270386897638809690512708211101887091829390405943108764378324206416162277727571255226526009172400067240843076440247387148041362908472774500258598940612436868474955403950246234946244611423010831407339975031445971604770528600529795695094825348493170883048814555205816468194774821872213576580683554798995128605367934734583067131332276522754927451619391587184392444868178666793148077970737710337335240559651525826889238182513515682372250294794546309964894882108294077717937998982073794362245326772278652154044751394165213034438536555652433073350846222251827056579476342855642187463820653219886045483584049973410364999425776954675121417568709153571386063342912660218803212621831387340990603473493698784051331451475754703081623272888814013160816852203250048168244407795060063767496857362213820680790581960700300580021719617854357204611920845224394648005044368152782672065411718436730886351648512334773727523197167281181365487310924289426049386118236928468896801863914943936269328452814551568620417124329255420936089481118617948729968642731948691047367229549274766318442611515192403645192910023203575829312902701623651212437578545815075002876967540463710728952304919612358943225645322633504484285114241861875451676678286771704738665146549277399305475352669964494698110961721084816530661279608821705434091310749035690041269216167416173075516452590406696886624614853734705932852292015098504370750586067485017492728016289373267270990716788243720670237987173937864272572648182643663956043331269384419668151244628194136661479437392342308950504365380947565644948085103361427248791854963791414682396095427485964239006268968561296954711888937697338712911313026852887681981854140228848360889478363241736865835696313585839739641123503362556699892168220227698242418751601345752257934279902371893114621022533203697234801334912666229659577822952903931699565799072214837688064672951253392171412640464172348304370460866542266560732469819305692584008580483340479279300765050183454930291333358885706504892076639261328613195467298724251580495465375123014991949239389818062968862983758996774565156938535705305218251437898035973119195222033284465973746464769227833242904878640122904688578816117927283533121845401508350364903828440700900993611871878206456691133428376503179894802643241720482179342518216276375414497940612553709299364208867494385341031028764591419067074806584924370073209348017571226574938659893103934162357986261187923076404713383280090307557952107373515183149960886119610409266593432263086908070666397821033493240817683781901655487484685178685386359422465547732030123970395773249268229463195495926936018628484570849645591714999221846204968694464503719581844967364824109757023224616437608984684711290081655321835327562575665192370400494113404773626827146136153946831835083866528021118568545747681371141214240040246049025486595237063333922316073190389461739968921864975202491654415123770343462947638524741107840765751898321450735500915920996889588280105010481936106078846795104034048544143633367712202803382061245570421826213708167891979428292860610233653937585115483547349885570455611274420957054817996943239998097562248290979420698048347572481789804326916065327582208778455911683459743597399909316096935928012118978102189084288022707994418733858784782685246530031060062472737070125498616320319269080124633000810623103257406709498822295205168650341290743438941554900979139012822629584170299674413392525735795986485335635782482264538638485279121410057330396943353417666330069324278219861950827042637212162532325172034172553342904849963048907580358903770537871870136059900526636986274392938818490158131825367198529825408051435914271208448795583777592163352388362738957174636690391190211283783985747901835569277305164347102521385051490145651468405050944952182733330004894444176692497348720116906016866541527520024645155654981953282432924201930334166557850652626939642000257851565985447155938188131040966764013652809921189176101623593906547010258314635390682723843437176659091863527904916104126197199477027779465341132505439958704743764079043489203004532300510462393415063257362230960545363638707981199246445221843201697244778316308350783601388103225793213287060406610955727887510991705794826319449277758548659302710369636100195651534745746745478261571698305265921388377245256313681821410417917686582563382193780293590232154619115231393217641809797595551910743328208432543534810812957586871994666236662397119300065157702739040745647232120612027744576258199194430608868470283231543222235337520861559312663562314440058293856412708024186699491045549796533023311415802790347265785762125046988471336895621928191382073672961403740520901982439047056554560791083185376746315267063179802653477824472782350734632974675590189912560614618821715864795750293484060618546232465097307875617886648542649409142977488628490271842456082926114516390030594520130251738278668563753581363405176417395840480193318640943409829126709228047548741540562492782033833021989082012290935400373108901577969883778452394924042908541034059522163694615184250251165433775896896110361421890753566028385872118331800380987062599489998565239785845225859419369043217040993138222313316475974687178782329819325575284911832015499742069986032467737479670400693998819169507252874924858165184473686061787605032730955647101289273769881604759089564051409815332671430977806404098281277237617726690344398702281245728199029179680796766475339250029753628255656550029967933302704308363240102244700387688100038624414667961632587881246992325653456300171073475230485715076253413556805074818678877484274432748931178858470805064149577082965705504145027309404678930950895704354399541961740662912880725560500024313787621499448250820911262274668350724404387045809633645863339406077899223550085008669562639873084767631484092262783468577492502454665005858389253924567832550620337693277525126524257414689462944910767373068674847678590836434650675852133150108981825939998522003958549820354861042179654142454102288248426792287195845852742248117562120984435984255912656970791325735212215325052705492532513777043689271451199421330678535046667288524790303053905551850920584421328867403244588553917530612976976417764842833217312561680172444070941203430697723709016450921183109488734769206794282255457695114429864123903932894574539541042770685411891543274555456525522493176921466032149102989795683449903129920578036671337653823139974105064505666136945808206096172053140678054086620825100316633155819129474057607581020666443112485861093907569220072434104174358914870457079085687246913155280999585586478793961028862210204375522110053666537092344890642787608237891958381564607269978520399083836877444980928084327983712190285975285303836015859662046754706161059373449707537134370694454578606524277584345236902720077719698799702978483833575665278451889079922079614657723123406996019960821263627527072543790405042282682205428746200901933678003052135500819010812144342109073559521058470692007783238959782140918796885347178755712868657137366329538391705699057110880855375894424148075316033199585541758366356396624725649627752183442128768653412912317989070387695977086105939191877207664396346248165463748584832238913349868277660761501372699631308947101156622844084452709660702161389254867201841481003604066859473317569156162197857454080734624789869390170533008604022500029609574684379749983419003652476112526277917848868859012688010142539323874535035951123027761039232084063541930317434501217879502202482859069295235763323126603189620027363386963643732328770172267583193074578848783548209157070857849208138852641747532549516127414668432033670399936426476423846097513101578975187546335510923762868296449593575577827416621164012789772245198574940924295165141724295549460322586130147398368003752729267824620330884594309870540822503267647077408953007945482570716944010548107215419082988426256942669599127728363570609986631542525894268119797864270427855195764327648400192063267173846633995855416274834377548176408195626056202213792314426127739029659227200132184244138102541011659465301422827784047528726522047985600183837294260068293092548789906556497422223598923871577006963445960439269651665995060937479180642898476568553205259283247087180237082884981879034920830078512568732056276708483714817667405459262675721283892490811234405883211939172231446926786329180818806810818295612425426236044224167923276873966016129518502883349908119625824493828224876849472649441761453109985810438930649451734874508072241326561440845314359018934901563152012905229471262106782825916689941744856276300713998725642222322891308802165937969403430857608562928686015239279134017876000649019305489663255513816819654043837260791188636095909251409927234231138205694815190252524614141913154704047550107017077062555224333369933179379676386871872872116896747515624329586623674522237505834434735502391117297209805781072084598283987753010594018081258186500950611538162684393611983008384653969771287066836689870028730734184137194457345816940262581100268749866662391620385862261504513159803053565975883554051470723888935886450858996102796151229939761189415123100030529236474227884342947125303737373592754039360503194808883448482728552818660342191862217399325944909545424903197718553541342219772615741377342422077249852046649869587660021289826111530824203199062813881490648353465000592643625496184944341179800574829791138211761069079767587574641173812973485084870920220590718001981229596354384369667549498378700607096745326476209024892215206119809466085378539469237242868702457241426700978120757488854283893657541249787642466656132504722372653715094321540369131006557379776755242954533787486307971698588365954098314277807855676366583322522598565536291843231393385761852087076177346159773343102262442062801110068710276366914195148042637474411273776228970177825445731327420109664945265542869312560708094690581285310036959978646173743297113350846219036463153583756281985538600402837522749816497878300321108151394553151651514424952322439117582041534605397697491095468773156831821693768171088522420427309273328583021575392604112641156734967626916510016477061579380086649298199777806886742451825012938362574096170927006352665138918935392248883028890241893702484330889935858226074117913573471018318133302929038191995592196753415768998224054233099068940280309340216197902341661645427986036805766325968867388612367786919125824795074175775047545412555968150855781983750133489629636327244122819982897228168235023031776910228484778266421131684235034662485755610669957062770600903721306342719001502661015781352203934925475784831155688156204598328824060941794466090643254884652241884609379061007524393732071312609194367731170244505240714873795427174321929843055445843111420403811828380185000332405087449940061822356804651439706490281196386691479722277670242502810063116627917648524209575880629794502950566092736246094214621529583977794014922221658974950283444231301609569379449065054856426738109337544074891680379430216448741809485843260988520231564200050829275657314685811417539646953125681250424291122369375336478972143463844914283255572880444375790991286765247920477218753228067157701443597591517842346914035738035803283569544186804040381632745105016182901836027896352470666928909382201030926034730748552187339523726232445153692319247124698603885823316498406060367362940712862848106946747836131387382599951791164084793462966256229318195554321610403443491482876685765936918831587511684970183904987762787499884825413766608595026680816244179150392203268763574362198387937297717688844140077686723488668243595081098303620382094829182777050509605558837665224737031712083481501768366387172333487229990595925685079935503862667855921117772301196212554298499239399457512241526153545729440218604690480116329947311196354607968774222577371086789948718658835784722413962498091777836105719205203348086814969701426305005700470431528390002188751782713122138582127092243423916822659430601402992024361665398536966941962511045241854519614606169630466576168198508763635909102865972426805993327096297798729831091128298015280159987706810125807409394960707161218617703313843978884865585300012959265446946269736222349906516957460234904699524940513285476949558671051068610217984075049211867315454952397279924231611684910182423872986423673840486987905820969101736131673133357665777704992632669036841532046826439844539948625518992745458123690395800232403270463529916228998336408668555426564999821406973739521815157684976838381542986670458776151811554747777242239742321568759782107777537470814532590575765568788305706846400546938996557018354359559602038390996706577652725462644297569784846044208317316890408165697171369658777744785644147770073554925268349327466465733530597098674230951363585178432648799556081465792601306826984655740548322942535025382879758604887625009945432334543021720398490946371059222542966550498477691520510071036863049171754502864417588903126439909000905909522636567658073489316083762207666616062578129605314956835581148382269883393989989693925894794536398648820937483535454015101514851387690646093480467982884928395875225147694594675828109328862239742196830526072675760027714698435582714930226515459898046936069325450140345930596319264699205320688345948788063164028014611208405061414947238423014956083508432160308230530445532151850775318163227875717278907981117534248959222103204666268541750456205357323473117705516406124167079051272512714509468044761123824085378706797249207300476751734604198230567476419809038176165941843093450738007540457766059908512625524404524827062179064648765319995885426105747439343070526186103880402233813741576341277667865918253550490090941487506444449640582833991200890203189353171928239329888971380099736181127411121641937279756299428781131573210115842585370175552390734402563849836283577968994022558010824865805203846038034187777569672093793304016697601424464448584318057906394503468228389687769485989411162924915372349588544684995222186337687494944370546076781442636156057741513462618068958439438699297740557451193071872447790021879816138102380385308793633376323275002227196552206494793267986843239203441502458958665151264307904519519812350451887765024338096931669421779980700232260543452131199466778896328400473981797539482798950426131173344384066626820109357262242825003608093022660241037316310954450544328379076569314422706723495898609622564680102029941031825474741012992642032536114763371454432292482253200398343470312892255298187737123397912865457661716354576549387423594098842652686033485573567067091401240391546381332410938277488928644559670094396634153905720927808916538393895892884214750583155318321072765154049286879230086793122197922661000048856663622062482826094490780787303436523491921407424770111616629222740442880777463287106584595089002692443594861865146189858251604216792806402079474426667756879549399205316241851065955423793556466814585074272775562878201275782385387496650796201831990997148493847161481631920204737384277943879709595775299742997123702530573255004356369732496555340679976673653579097660381732792986178061396686095380862233872093384242127407526764092231340841365490572162615797074044809346062884402003121734129286839651023381521839712119097234146668534129049330423150714576427405003234148195685858157399250602180592103417354864131638215348315960064250223901810394909050546585064032323875636828915693614353558834180764259448880420884752655747081769220693866035423631950547985086166391896544942493995460485745246754069589396503913653467382190542437067608141630178437649777009099355505491745183904421976823719888105177386316910299013310959190093024728423317422799013078243178350920982234851779767638121643664461817080795600227165935466359007398098499258074824073093318801872269471838649616841682851584658013885309823240712411744965618692593173851040461561713038596978496935322407650315194586359755466821014628542666882986704382614712620993313569892374258170951047140394987572835047489875755974008277520853890100026726719339947133336881007127441869655421767238377355510952155406772659571858214940833029395631642764998333098720572692289938874729805365649521147252226213143592674595488890276442631634658117567599013626174261415357298845815264869403996633472478535122381564872861888098092979074349371831308297722709342116769286217996513255573155178557697388054459899999352815466563828906146636416620459785166203358342269421686419420274906614020693950339942620667439498887859825596810726205013687613252604808460311299595325817144678789149433037890849983103068244759397565192244585053316203904667362980204160627227915505606635386544251848332546389623121683938672953899753507520738380313030062509402822604915559898687520704181868777456790425230685243587833868633996690529334178238900117319939948995090724859133213570716168718210648634434715831278485434068782164103597755952378636255924307589154056329970806599131378714451087179659832124660963810249454516399505305813069964310922673006926332196438864142036510646323531531387864133036063759093232291771716867801404713420505841123186719277879909991033217020509864473848429400673216239150095370919964753411295756717767800027087092852885789369172624054907496428561935810279917267874221400298821150026658557154852352693843286492474159780642188496902384507476734687438804468217008672503068950731004086271850387646526027929893838702397781124768401276632819836679682604098398107768454067489368070164149660856727693713265102417103431731482200041948851227765485092022896834014068529042737127687725742412492797979390406889888881213269108095378091818754178883407930511225467101273851317824251231617304028672990846626223234047712563269422915746963746343334178212521513178992108925268596218932214905533238308622484768254049236736707707284552228699858004806185337715720906649370062490586518015085613020839463313628592767657131359364700987488121408615403095468947919616140750063543463496536966449859743596960891152702440337956727815481417753523227692535515043944621214335924997261013982562682402780223626301726114822900059229371126513302581138977641564088118354022550698059500491536981044907790330678048025697251069244034195419918720312620312724350180625394451808885043718183957866991143671605177149566407562014525037494219573776838694100528348487382205140487101124858782725581249698097977208232948678088249657603521185835189305767237182545278115686525655611365428804741295987854761902912663513170340955096803057183027280299604616703218345219437620284485123609303925231956171583430109368765862353640416058668021299642318579462179379523724282975427765960510290730180247073418303028607234074652053372868146772862230875831844764892149997409811505556780980367831017447421918906948513936025094184131011580314257020750728391082848638206650513111242013730783006389558173446460769754338284045097912266481733595960559159678031811305889281236468289803818851931035728793010730537459644721503461170010740749089389460028454063120901528173471439909464080740917039086990714949463155485898092319480751518747128993821562706069928311867702429535499849301326110707470362300571359795280571179445267178965658073065661515423466460019815555826844720772207718660932731299806948573984871108513680827451494017748668127073633250490225304184729011769127272312371531531012241338289344610056996260856998693746510840184985643931360485677113179850795913565346598667380921277633041059962835727528921365367923297657897961936854737857791369469311866085989117273054620023859530513940261675578017292288383166596034373210273511863633293344339830134544942283983719534168377335170567660176839927066791279564004502383371618894407227807632828083048025284157581078200472189406646547199782486409071994926744844049667639108875677749598553387085119320095826048014953444999632463129456819072543765364690748851622909347295350533925771207146610015692141227286800628630189579587691546696181583268229557334965802944575573242893743153130420416695674803762655083127482144691729029425824532107054361518533530495587113292815503376419872577539362026638313213838978284584969769285175994263210972458476634756660762647225280259358412743466303211073183380013226561297349609730352579134216756668122645741338881674147134810839834106190835102946955207405879424867295274907876983485527654496139648424609616807617697717922330482839935287338357529856445989501376191819681304764415798675068050813440624140321434700705521811302398412324376373767796112672876770194087452934421477300040026446743207104410637309888578964832756497250332633893625209581162576481680342049722212607570569719417467559314224746848930434316192812100775637771053854299481890993982562632520770460320942103802940571769363090530814836445971960675556158883080485499008046112097079558049265324864658208269671988119973646035491189945817563797663215537113832353708575139220363910982728611428101016712583691769482704718380451059145174185872555511139366015596350778036289723582630895038110729707077666650797708434969765051238751732021442865644308968610775358856223931819731140233040298741365967493590646700703486511717260785600043399863260976292522459816936480828282137296969350653416545522909842850282027138270525786684829077019833305440458998322278454284804178202003432463078509644973927191582457941835859572927426087713952034209583075636140421543531276527295471803120385288619797096086036951360470335818367189001450821676054244700864660422127382230641465508299199788228891089967909576132971445045902669709192618133004243626648939717367161495823536939164473673385489975743129478011120429075660336521916570325294009787120789220243257902251671123529496112191075696946655415856184230654226449385742777945974829734836307531282864173161025557929915848598374827837618477908476231004864617154011870430950445642752872920607836791596998210120536021514446162921242672615961143247443620200780310981832158634620685374814571410215071409712171376672297466242610508711457033072133581110858518785212554129053320451886619788625482430105052467789310127304839096397949344454179798913063096340139123306675087093146530724466252633450693831516362107117242133791891791609795648995687882773701526130620465284908658984241626953259081161006886123343308376619837046808402102056862479590650102693767924119161855629433440724177970577909320412630448934373576125842878599545900748572271282860585580562959918627502705170320025175634289083621190180246713349710529931405146467342377774488157424973252242874239254282523212210086281774615282048076563459903258837060297030712770851609328528042108636601118783399155129275065189998913306004819175286294674888243771830936423078624723310191045636375893327124354146359299044090963622336059501337863872212024280975408802313864014095321571054725120720335941812818449232208085180866626771255260868295579828554420881509107972810233533308936236750683105415870530726381050826868395940941998777661516464610117872500806894465810000725395207269375549415257614801368808265199530051680289793854839296233345921678689212162546948840226761128311633055176386546470975127255940295901355133410045610661725398066745111292696145057050778844962067498861443268358522976646270651757951020357708898091265033994728598868838190447983256722319988700462492464329629786570731086875235964263357555162203123693901319239614206990786617673400850468585178862020918993921697105634122933606027321403448764386920805373487614594791119804751405116518533100785196677785873415841585320719455807695324460437812995328117165990597918860053117818754500201196145741642441622805638045424106528412259861242053166663341017304844396532120033933331453801794622652171536769280228578071494175231536066471457717407719628421698726639461926784172011046599013536809913066331371767819473475762410137360036962794913765777304264219221495848285928275730430205254893129978933752338614739025487165709636878293885881349102509844457762510714874422311935360512735194159169268089836283185053332789532110870982832554541213943322186620739174009395885030204654519215328968409832351174612155894335290830190414146419947807303059827025553726629471721335377618216481331722010696533356753266605189106391095985138292773481625462878680517642648149500007642906912241141400436888997763248516982545389212072299861793484053649586028037751621378673719581566757886817844505360071358264702016909541811279521112518384632982742910615483880057145804931974710898021571097617381817884780710189641768482760068895627356895513819591511376494786663310322939028990941983190072807184557100176317126931306925905006979324336857834081259628484214670701993314912648684345925642485695166886007599749272047394641986165899902612286980592116727627512285043269308031544481381610002263567504302948221055736171049035560942159811467442595432359992455962283846902929279323437699049475504171764092966152666100681234712317976537302802648765985372121563928218886468612934769803917752098795488057818974277785858545911736087134463063528294178136856733981282446165009732564146136588907018685032584683721060404467070152228498954477242690689679210662025099488663728139452558724385318816675561118433483685152964279818440075607388003157627259451218309250718635401822372691591197991581800517429610166133583934817894796348739762343522982679767797042060536472698264168961882416176888765099204687043873398250540306224703246919282815361636813137406758127659764388372142137606959602289960452178748752734167723332396229401903113189316088139323464667286046017987389767360455553020717547161517126085160855595057431444723130371850193241684404019510875552965818793300787334320385779639425521041519159179044548406574842096109245279262444352401749584712523919874732210972521985370475418643270862246104198090874259843542546550913902929774943541518314790729520163426701457876969999729409556355573965627385072450083615494043010547567223610529962098831361017198971885302858821187135260434182515900297514433727230516709163616949730110764582097877020645040391719718308663595683029938683816097852285003419283138065484855306685222440300838452778931553783108392506663687539181319293563580039017285758342408606468989678323215988489122792077278842031264884582304959855691888389745070964671908599364416332950234067286510402888245046378973228156317831929768799444122043340112218233519438648962055635048045797294814959362808213216292461828129810224008020089308764561862825612314773760256782237337557969268037470172988425325228887765208349638901283910463125927579054394470586701170120644944034308175768289734345650697087691205743416074167681445917384671451415635318079752580940391173562083582986108183625805852995055694006981103388839480620667885289750000750287485281700962103568193342709179631276807515167947911482061547316604240968121008937971072357070209989264832266923318176780741108115545327620715569368183230774714702683910315996008249288801534067800471092615014366951987709735480572884597994681651590036929621394654807205072509292383145626955579408253732962542734492988754472181815309242637338034313727616442503348859955407312702664420148551496749431228152874962606362027310262955142742923956412140882657313716519074211008235394306384726051520522761020548201831672504984615746811515377683699907581971960601731660669097557807185598741937681223952133397868206164999301536135111723413403832769245568018573636575827674880402841239607772453514798756161576146333216427224430782210538210345133396327537403289738367246073984517098360459819905970006619041342658466380275523849593149201374795829773550537572532315569748140802029879971890342492841610714677139564437709917576310817933283595512166050295265655444569311859983197575431670454662103091939202176014659230099001067552020702099391851397323104399368729030498195508091735458667273407447793507217644030593325949034856774007268106188712891159961840656611760967959424720959097395768908438861356972777143076121915329081545513272238265741378569884520197051584542431363932486768402201970824749463064699973500956331237737199073795902191114849307619026032949134881150559258521990294466628003687719431557784051606938353944429441634480509143904438626069326039866469664804605621703669464645795100446024515565797630436766326833319346912968086383782176001420723916438546969521088676639424766101479755831846294788178873880824240974941771483573186105102145186484838703561188131714399744217468259138453853609335901126501789432833624087967649699373398146847999624519198538542873556746646881763042637363498464828256045939899293410913372525555054399690289159635406497900063848525417995896167984519112829322351827827418704012505368641552665962858642994121234430477981746503864616364784852263200181510989825020206000674510646636908406362322874173509131986168087183191548208208834365729472224410795827488652383140418744029138363095822315640515376215746815703292953811825223355692657436711189362065647475497481378076858947833762329907378349816749371274189229970495506965790691952718166356200656871628292251624380604764412077516999092878218360867402765887398691923047604341539363447550270437075934439877845201574692106052285295418421038155291443122544379643428785628151262626125149236293426274005916453221825815501087425930054561725893455681887141901340929970606759288795713823135379615925159456486044246718708334735770171732548261953750967039432721971489530451198091674640607694767324091242874698849513351075585657096872878108405101934537482544691399391914990304367692064382323866276809653225692779353187290660148302840204860574212307082281188831396290617758709044205911482479697516162499776616572039048316099996361452287150241735863024108202964838459881345436745193820639446348830488466491657897110179297863597135664290842333541393183211788487231729800161154451986214549531723731922039288786317686677052536659392867361859100334137909336427235385653813053658979651900689770629508719251851666080210224927943856924489566014961762819751438043509708593939749323468833672939943214224606452459409189805898479383369979839507331848042303182780665932338259891551952736080757395602695490461347983734039083161336677238910393632309208908830151247355423700908083550201241857907621984489390786267986426890953445236131998436250400683022530112272350936425737498629606443601829687600165939654814556755577683047703401861413055513386500664271951944230296531984049861703072749096428470540467520861502052028138601679184677929333652197688757078801069166899630506701015530109859369865233372146250172237349909788782324813964679232019297242205785372447802022743822368230687435653346866631858079899304498596249377759625613947969043183153540022484660856363453427489477289537568970944505671797399175256802271838047238605994665373891477733325257660854381326978115857678974670829927101210138475347767950229364842461820525830168256324440673577653121756364306593466244161517575328171980917293831866668060134579011054105114249821917559754239194272165234509458636106691197548650458633345447312807011626634614369001281761691774000361357857663494218037223508926489486966103565336479319539709774164717572058845549550768601523147304212946771895734085392636018885240116708545100633609739851174130128341735027156946690540295491829719351586260876733171563638482375259843507800489544079925415806257236161738661422474380005641076919454047021756673512862551030483896517285874631012048574278102584143477342252632948033699992059869157004550281630206843423125851021842952104276528116354555179017541819226488394255678260384075863906754975528904070722700452182636242233845691571076032749748427740802676162055523681301629895279194291157921366108959286798617678790539903996191755538389419118681907212807227546851276629587616419351316163929515542466628563734079630282665931496195568960733592294795593708225846283934391083724692258226667896274339296112600800147111659324234988999438097248992113571585772163405756968629352227331334410419240585146114764312922077069619553146575120371240223163004248370682542224924867224810446407652875906066400141599220473313433620806748081071189705515334746350231078241985126342625494414531591655475630001833234936566374007949908828035304707199093933910894825161185222557740439643838696225956524281831853412662708231971645098479812636064690860287177468600919976326304848958656044634946021425213797065486924578161368603575731370221520636216147326281271259566057345675425017286945520707667915235916947316316305416116185213607442130967117176946258683214336400379030533244748615807470202104930541681352900052370490045848897201424123845513211046349171076579894373601087471867386458529440113180414057269546311726785837306669326909826090738632185971973587535705364982159031646704870492634719414441495683234967424546292401882569764632803327264874375068608471309426854514029321442801813657197926323364240328338457159720482294379403827447422501156081655672456882205775328511971344906326646293198760699462416269961781867311916435698997449438487137017346936583114650363573077709652683524246457130933397032100247701787923780011294805740975816840061070167821517091185442958360803205449575518697586627880563577479337402084433193970973734740906342874814838037430273389395764014802381613250646944206350507506251112785224267699071759605633361261220538769551348692680392118400278029163337542537340293139714294591857609404538918442927322876630053796895992929724844814722517693124662623852541614920768260001656599286847166681157826237199305111078467420408977684827894178625341889327470975045860852554687225372998139842358019153599092820151917654329144261890413722855966456284929547670475884499114076557381975290062885605706694757997172808385393871690997994621681584941747700107077997893450689183507561788549360265565281936927081758755604294451957667890393795662157895640001494712013205227006218690200213561739897054889017870209240215264912654289445709237283965811805961750082953243914723982679710958785182777202873185618713308455318848615757027668633694049441618307767838132289892198187535344155535660384115844943422997951510191448355631108356849253509701341258252793345066834276814347531858902277578288375571303740602408303853343488222425288030980704463283724976923695068619696465092515296318232067874992305919306759009842425840664124095150760290706825050115984589312964266684992882872758310206430046713037411151897633597407967939587061629106419505461782664674178641808581070460555629014278489528513612427603965182979534147469179699758638362701132414505189495730142555207480570390121746625561557599880140107937300909427519591540142678438895509965451349998723499423239269674456934175684413413283659155788658265962895102396584319106061108627627866580265473753888329705972213226476713693070562476291147577649430504217642412070095664683905070519870609303114455412289999366127295772877282706278919206289059311228667484877211986312458275022166138400520406174361043882626991425566591886213475325448606466093962687581445493230151919012861018714851969700021579696788164862624273989100075248996426940011896266183958271802864399023947361789185013424545488560515322991060679046368679131639043836254283473638933529070601372846207703789774954136398529659066466526058603947505888980001621913288396646433117581417581734311591249508895268662554296641046156351108520147415642343153228896802288243823528337954522001584937141409690170273882626124602081269160728825203458430744386648850373630156302428934217383844675085244963685896886560753533493405365247227587072328272739464163617060360489566543711022437540735283324906204631408304111471131446470344626715366670168437859853164485441887363910436772527271978008951742843179902735349397145808128132631360122994092393140784263811785779564667222808440152404063129226576042973083864801078314223015926067722945837973808872182422226281560199709454297561852496020078055229847762167741327223393137772620254667882936349163265990617563993041788548988384127427963525022441706778254030272506474647566326114932148213186621136193468968191237714034003707158342254550686928847362293617531782471265777509199264258060706417266563993966209383848000323413743458202970922351548983721085543189021954697277574683340781954198717318931595773841519740790650836735766126348783763616019231462216865036631338866737871640760934968118671795994751851939947851877391460102676200068039310076977578937281367962765225847734068198396183430145924474328206634560614732749483495437804361707898327097022527004387454062884815862795068275999552367816442456907156474406225116410722684519475238519418920076840370880408975037965224350385297466591278737473369433864395978461506457516779343917964818537539879035565382406922857619922965755887954533423396144670110944326622304948279352519028496609028052176050850600101423353614531448520119922861359429698650405201622479687593371222489117024212283504698561211961955275105086611164736162824131259734586411727715322067864462826633527660597001436526491162818942606581846670129615208521420597107106609878071115850149619380937564887317772829658976456726474759669872253121116283854633931503815677567804666884886918979798457895819462035669741226675092484935369427018141229630283201217738227773283982461986804397424233610414146343214575889004726892675847112997868684699154971710530032844880614761945884409133702112247163298896564311646079244923718696902796835823493315686280129725646667301655593030513464530229538944146756257515485816650355427186687708497242732773119890601093339175662369065816478547931099302483110318094097611041820030442064829541235745510413568669825741615151898371714156213574549234998789650287967300072391513651720257053996021603302397800405100260450503853646967836278032042678893188726633461650619798600779317858654821875265821895484405011634141052110003150832284379756200027113356542762877919246121650518213463925567642793255325258349655660186838799276496980174583168346666615189337356925510068916062579784661710351687589479614049463654629108462154922036081055044461825840551448448927328807830390615733095413840111921120662921176335587729096522700053226994867674451343505820405968150025766784987798896763122467812338299826502316219941927672219719157338767615049620356871520779162805616064425942133220067345979644597117891888886912305640754686701475490973003288884239098527706089790072535335086489826690645913943512907142109699784386537576275159693165279400747238799142059866137050874844617410496938971152378995965191790108354189278771276116197315159684433357176097950721139233179517839141944551675102769334975668081687220672453440256903183459691629855350145693763635564250418423007870473819529818862626653983553443679369403074981969112437443870819854221619198198060192702381664042188655934254875984153210834995120968553114591168150289260826864092855076237128536306873789656048056444891908812638922500278025735333942737744930963233062803632006380299639073984184412345268762798838038721003843266894543625110825750384236997242834960482315647125581288981302861228571095790794480212573513651168098409897757580813380943645089723968034838311155456121018575204838257460795609509528050961415102432361793446501410795245111650144469448122393042286432924684540749524736591058134684149078570003335354316536874125502639764467549736355213690350834865229842958758545390576866751117511346333615051556629880443252514036427096494804490479910167993636649500880494020740360151798930760055915299431391202402453269006621119004717052283233255918688031807210240762465910357921429234093639556579461696843204398310968833961706702174259676429266500714562810288567779918443999254298547820616256541016222270042641023360142859945791207231632498930928722205169896978318358151296638039109072592820392829014699477052580880664912429098064746827226243618587198070142557971553408078839150358301482644145151512658150388799753940013980253861768674786563780495642339526005460002803641985185402705941007506739479654369162284194562210343805860852522269524589655116037778230722883195326411438094706571299501480896757947935709260971283398710548549612405928763363986480526374308791367635337953178399906032035027492899135891692720084941908557575832371698709437533662976924250082888885579488326741078933479177046204850069283534725236084795117786052213470230346598695634637823594411522069886845713447353942379186138602627792901258307874254773960101539972720566115615041146607238480018081207121819536040908679388581104032976096084798893400731174594430608355041585514350227456606116021239451049918877695124302555155046477415451324293835977885917910914389558402658011637349193815062507270594377791888185140963955194108410148890211005986853134146542053912558305989180889811500627279743448457235971001301599388951038172803820737766120694137817038660741586827828722368329696071366674293886148246172778758451684588936170212378323411759092819932840364164003304790361743287482349282724132178454382298460035486612440110320906388654195439416354815406860347471133733385716159360590460633579566007420988881808240644676726245290145287744545831608955648642710804399923736523793555429030609154525210177511398419743590808078321086582663687284900378246345737062743838833733856674469406506454398410449679928213165082922663660167857800384047519387247257956767906631540861131179440324086928560881176347929605234530195194262960074822141320559229777375551250831671178589518411199974529714897671812159932254381160393583600124431090971026279052302364218894295957287244284298336742639400571054110711812965467184630702668754025741863586124799328336882080175803530655658798398288699091165109490263974466955364608853057098792391749871166809741579486723456740207633511131586361482687363822789530602563435502177043848028576143551080216436587428935821527269412726389973085516562026275838526178936991334107922902097935897550945029773149825349410518089785726326460168598158651663366055782966553420649273879644897542623689692599642122768357746242565338460799077969647497381707099793769648829510833624795119421254500000154116196041775300396893675822116479839053882155155688974298622411633957202689072380031993074389213268494354949812729395157023922301082297577896878491679842839677889820073107808915658067475135746537272076367640098574935498500984063197011675568162022828673911039745002786033854354218458630500989157204784422638573469831303046805138410136184655150941994479863143102856401669924659330754200584139418522317604647609273932843727649807424804378288047340309868784279899981448022337558159813189334420211759998465078828649048863200766812674809085150141507820945836592787178860162217185976694522659467583166475698201779660130319975023274475497825183964119400999858036618897761295150924507745924229797433425605941330268727800275519279014726933865218714924867666399555277272380255648865244670256796626820160284793633460030194931356060292545554538032813963641680211758883391292261075357517309489330241044304772364603674058478269209931625142199767960211929696222577066612490492689638554936844083862858022502443619997200741721674369854981963969396543767303576928973980490000701333136348078378791651684870248937740821918222908255771942573354300672596698910063928238921106168706109528215616584581403716556417280772251816879184399940438453564273057527356907375152700434882129914167387918603589799231963378577455828989584376547321161999580341657342227059754011958038162626339370402673558395998803777732446700544785081404285501957705032882834374419273245690555847581672659990228752353322794316088353031181536432016542380579306752907696489415395887525386558616162440779519205595803569784044846577598469432257341615200772199672821564939928516575559928904364200207210421812023008474140963689181899273029637070923680483940047541653539278524765615870476598053581339712787182062713870814113942353109871979166119803960716986664586517299685169931270062188717064178870185873894662704389652038857300528138752267897566103732979547084281849303213800510171416661618898979125825610830656129647971520298190742931921382430746906235156403171292854172476836527198216488019001445762898380209817669313128443180753552379894877285211562140050435740357664936219809308386186603036713550428684846037502915983944878871573920357887258684310774646137181719565309924510807411094901082580024084165995658267949788782124047720388506538482885368668573594466961099993722532334558288403689002055879405862643189353672957159740549259996679064229940229899818769849200008889193828056454172343912522529779013272985683890201054382985320290852024939107380473280074730491667919762861655781537004699196041333918933726498883806439093363551108299878715062969329996543107834944589134349839376375567552349808270040410402835253351811459427257020253410744113352946919200146655574187640408760442561656040127686455299143148002579349988594092287459467410204576512624618141871707607592443371495840847842090203317914917508182027930113043303373097200772777616168142410127734671962074136491464692762240385915049077130511585947309364742293971147498564516254214135223076944230871028107167528934838567433314359091556959663985020501664078076812090330277409339114503127384480808774456158333269239453479763555935304988132926798979078413292270874437539191509649893386389227666164885274084598139984670232358493967656506604299623368203116689207047628918838462382490881037857562284210022763229741620742960176006783969769045502542665193601415313293566377493734126829927345909581848801788747798365307329811558918357119788444376791808336567643070134080530898083219775315922340615949347849975848113638693481004517892219165168144055463089251241600545279005971399922588631773191642543767014910401433217858048410229240605512845667293229231066876127894845872944751300877826929399545133393575285861808709782396902813065674767262400050495649543017543550244812356036663620126611272314527513006318755069739898222928434356152549900665725950028007030080944969491906350939908084744805341546984457061153326704016228325700762729473347331036048563660125036809669730565405090512067773088700190429695264759072537963099041197072660983225944278518467937947664466868586053694951138624934027178973315668928146311937583247176201341829323987539427157245450643233660889671408883364892352338116265848066225621468252583545874135205400236307728445314510301517101256030179905872945445836878264772256601325005895638163560559626239687690888795212187658692971816206274232515753663157278824418261995650128622960609031024287264608278949865572157691471119350727685478311224222838303260721651413226660878123951376634622279450059297792340302121194012607660828199709581201548004409739016671021604574096531536250009578892289515736656933371973123392264912677423205221480772115969792284170959786415211352360371445001176024830594498536791602252312441212419397049236073743150929981621559245781844520305887753619484339743148177894532461147505224817945801935769930976819170784141194617876239944933255619229320084851621363511916725778824677704273648517586362631885495727196977513170603848080173273035339210943433942049685250258266076527505778586286267620973342505722509689911236230046743058052933278069432957725334415079103222031987656940504542674009507660445900266291964748248038679937104444553111634920795050142259785310159141556844267640691144052168487305846083732508649108169918124759763014590651285866283295810721086928105062125177784275653530328368433705381323168230445341068238911352534221161050843575942798858121235730203180616115974854907353658756660508169736441320832309627625214685072579643570327048372951057427109671347707692829453303855986494190621885679628641841471850840686777283868759311680250267797208264765263540294313601263825795159997759683427976753885640391571143175986956236825319569106483063911783589985286265065990058506940434256402872179214729064931943805246622672342010295634186106972821955375616677245747843542698566616439100489975452972237848399074739257006926470070175219015049193508185115672805295698971950116455220742764241315892345376568950357159411761978500224645697643404879969014727386305772973575105000969274291304538397784903248054885453503585657878747357543666742945315022002610962661832456861463943651877652892655357910929845781291115753830859453102132002542133583150016980955472629180518002644293530449712200335109670097570268765605400444632638339420848570129234971640551608186543263620472241325239821016802948697007502930994860286519677604681812568470571420343500802646570944708936711700182853086119189537086451284774485294698048988698300683411759152787883583767815791088039625194760664900287156062388336454735893083610541349316978699274760787527578410079721566857566332726587229297168613318368880010190685569590297095382166081151947856675809548371545684061477295283137769115638255265403361052723516238339414898403384633908424340232327433151992469480476178253112733844781893153334087179408454836129622847698274110779829914492216250795471507469751057545104771286997794638763263242184678329075248582352572613310651922110939659872173783943908665387395281449199504261006900882081706538163491485972142407274926285404405070077768354340309431542837429848065464029915043885019867824583428189578310882643748440857740101002406717693501141701576946342246148822987507694660813283512048003366820767343414247229470236731345668056264414324573767675996088276612904305772546117433118486370663058527190137018961320543406543870149920622373411038115086481177585402087138605726844084388510443860907893515774520246634591749398980217343765191722437327298111636280752274929451499231222056720226635151337801044772739010318656685735645672846848442447653964832672522867573067571150786919784989186293261713811479536803181514323249285720790057516483480085134955648882080327197663197105218914519292462173117883182682495996677384580276258337430691291960357950644685812182495577491068130091234066507430729307297645132038163794955558945651657091024125928795296449798334836721569050191202342935123012815743205365950728964251562253499401025328801403311976921284558893607137862233471300513756444941645789587935064466797301589159001918360415568529817392147817842617421801966663167559518393714392349434532200361671210620895870005302732183369260173882211602598182860460641978995529243407900334113456768536996505318351388772762272076400028845233851245268487456873160169582522241896241276779768462198109361641536146453649298681448952625892282299649288561115839227364626650563790106258206824485855831523599464261833342314325692931017171105737299052068671010570015833780715494907937938157817500153638210679815658944998949526601193158325392928812927996305084943468632430735930358656159532659673554925068106463111130200766354190029051366500143775492428864560986057468801002734696484198735075030899655516746802878923707661589312925377558954132440773293643035206526096861974944301620024415030944655572327950848380943100891627814491297508958001947567428831433339116410276030784031482379163047384768394631638087059572820975567490909530480707015010569808593226257409163931761995095435887332542464249596961522256209496440545952145855446524660704850116286933630364417510435593618022534636266736288612114093694624440398839988578147542405378788156985222099596936035899855704781952467834043958720673318488832927509362628531607024400788238026269973530560410413759018622224103764914832108061934615446887167327090260370017845642101148741272991179454511738797233943516314276560905165724171196018691641307269130203409343791611341441648941510742752704364214033589864756082065093717343438532340891914347639303798214169645214309373893964314902468712783765366906871109532673018883215143858513437612554608547181326509381540972303549178988652463455412410692500842401845174885829801328710432066908949518612700886738636158315185612703595559792349023308399163876250862049063405971128879087549135230181233885060394908563848383705280621429779067988049646999491768208055159226455558059450394807877983048480319882149301752672189661664720752536765069875960695304249047481609207925764319301420601416202514343746510914162715844157514230936172538965912163619883895887898231127921895750210649851627278837762123678881655050191249825386841277647172077552449491485716256274707776097166651107668781603647875495928834436092413172779493904412990046277521301641834006548422341377582318172701364861933212822508348445479831695727903869846258662632497912237083735808323226433440506299061051237998962396411071578250588213569364262272566556602988807409851394480946882481171797363572644631702775377413881913511973834052605192013262352356789903941839952581911056549549604281964972923219592757672125796508949693306636004033486629855707784586771696649897969377359464995358740495163577437364418407357628432500274087383365504393107670394530061707744488124583633910906819217753804227139766793535955066764679514171295106690310973267204096974612189867455659684677586281404587806752512801229954310738445459601099138013136972126217524024854842750029823920515150948300655487678358240919921269062230848223859749201807178267175108592619163833005822975103945101193526939314782830372576663960338926331634541401212810627638909755215287189535535856900819625417257466020502430938810428448124456725573205115530575643266481851642306765801737832371796644321968205459655430718338492106120869510312336627898179108889179421104361857091348241251570837471525228629040828984693847626184970687620229703947808298506698370314962590117868159155648915240005932830087807019681881167746094054345577297306447618197091058614317157507287309778622707211972898588278217192989324384882530343983126475141883976541908663434088066860839954850301926914130670225904672304221590660377567565184001641045526870056506143692263270046091227636618461758864660083894225213924578497250430091140201576800541124187537432226899720889296441800671505991942018795030086369646057460416112706133200612221129257804085850280803299077691341273698953751042069102813754932745117430884968099998255799180240315337639110678642058505900378947180573432860825169769011075051401530576950861323247272772394116571913646865868732838063860591184581067552800337352313988610001715491455271080348793108033301301795682811913085558153196317152304385520028157442888362840883567284549833376213277362922346010731794300858616803170538398947643723470082404649050837835112521886054672121975245805961099858690328809356360258842023855094335125926985159612093180125810634313055577525045031918766194583923719017772385611280978863539202731099951595919195119375136265589010938736004681898620238616992350696124635437932814563866970919443335566189360349239545806506597229977968135533460654760159626075400948583406730945858555137562543891164344348137219681271836343163732610053190655523750285347499296745946244915993523887402765663650185540172325164918697063466044384160100472121202058406771323143938367929083679056340527360041560020902958255801694566153057092875845141562658955194575247533321581762027041929667503967615527519788466796499359920572151891976498200292620007583192830367663880065244179237110573232102655426896078099501169234119771808358924041784823525383143309252401925340703794436961455020023462190934975817948175233422380782067557668248069076096088720786725081130901430432386816867451196691743696961257875768290955304685136280804900041126015830891583153142165030361534396844673533056314436686282966161527182585437391352783977066673937944448275640186893315348222999379568032353235599795434029984822869093432103423951298367401227620977395628673253042493797373130358482579755061876764064878926635067885258123889399722129960170869173164610255668589972471419923944409794569840433554033534414402477606349198554726999609440482035056913509346176817846653539382959296864638628772818528604351900677725893507705585716060965409233677797555279669153288693266691285828396919614450063299655828028022280539212357688706344956744314511926003144038019449065832355786822072148958005997878011823245975918004071803143142580425816223086944373939565445062268716909901884453309137429176796074133061389337532844428586111606895851024631927655065267670666666659021129138256827741214916641637360875681780345403472074766361474182658237335172177513954442317559548798214551481046210770896025513750436821568136748819366332608717843657729538381268456430010745597753815712550736517725074837257718029510014096255416782997542573573842675501107119229334800592430190447256883874350104379612267427449841779840783252690401951097390191132659133149402296663604913061463713931583611532597426952628588529795987787130291453629356559074805603893080383913456606687960246604236802686384559653232027805137531494698983590543801030681987152368333758587483902475698834276373942041547190829475846516916119898700119851901082637061462641561919073166475167464254517596409965304405054358031254586681801983730730622606655367415389872023029645462852808365842728170240952559895539995757382329913325908028938172858949982986846711480934044851537567458522212523644126745730307460006809478412167461495727076070990312062471408755420726757877164090502591648727549145609010201807686738650103194104987869076949196557736515053487089675977612939776182075374973529813361269860569239438359917147759183333065537140053856532940712777102388802718842831049748414954147211394834779369386686912459166107208279098651393791526430459883927943185171097304710544094015983105759179889518656867654459553981233659547935932839336151336137923896216445934597084072258046003253014292911681954254896863517012974845588953163189837030502157710613187546152821944690044849109452483201477407880483716902122891512584274822557837872954150517312029935069926591786563279091384061340176249584704902472183497900213616783228858250350879698889900903819810484666902894655569560601373659209398811068257555600519954654203538730599805019922971166904266706771619928981953525493792857531275633729240708135634386768532869355036538356212441769534922546290144808110833093288139773409943841473169608448001103310580162539969302493170075590659178528245570799704486763531812734863096280876359769751173289220542403988771416449331126145779862274416151712999966754551189243349333920678395279462670520756764025330435633822998209983879160550739760273637069669347271544535241707590055544690367516586057934334394522822138505960402107453570410669763257051301023107352349674406777458546730152157335708898452310396289569974677598636930355977259683319603675091183176757845081754749675868257383925623189019835674214646058814402767939761311061292954344976366074708689669050249783625634465726487876161228172151255329037198129407166605529435083334885296098344878548459256999535834052012906332651131069347820234795593499742006453897727142383872659180759037334487017562386267513527498798886959244170259847323597733518456881669299591371114687506256195851222158703415102877224759969708542487217231010870014511558066985084257991057868774536233895201506136771607716010442404018346863142770235710718156797616340012271289268612076906778615535110676920154936323840702751406263077902077991062170417434528725609114047732374347877561363121496029052588628674416323396619852085401928996979080990779213657079369840111726243084100363498032959274505536278945261051979323248232123280997067471531273087843828833782374920657207083005108483067059268609715627768426750638533622401872010078810731809305939729717486760972690001805205858382872193178671560325304357070296053737322965065598832766405876604413350231669353668314472499694562960872445866322895997239133085857889101457479559563398361505895153415097957785473606506002509700400199606567865832940636776895656282764872221681626784176320140110569574728228478697607563664472978063089826402107328685863775015562735384261464500956028577104654420905328189749245335225002101218908963497300407053618964475174378096849081106148269023631850568890760809717285470527877796205873683654819575469610198640594509671889161794382279748931966189035572696408897531895660298613394001466316999621087789081061549200352512656129627311646659779904348992545475632424566982672545986868079028648420877839619829034835151499398747065123494138956340082657616512777522517721241394957829055703733047534435712350372951560707959126052499259080208739205825468090996894575738218930436086646119432644594051109877075569427077513865488402347627407905448613560220086259802805170125115879671884596457768577999280396111382275397867859729601892890838029345495559070381628409052700888527746340084398802994206905177794681701525692188626327594877103665929296126882925872123906628627157013325798488498945472672798825619312428690075385764942889025570322968990495183194794403932378795053428180422902139878882403317902387483162957137324891767858010843448448460503850057738941005660319733047226070765093912391106640798056358884584781803987678218875317024035386048336534275523466220944421916276595145701589548827535131220182270842317191255284137960650108712210082713956054627011035619246014334296741320922013105930588852046363110260330824086663727874057056233460439317499261704382818691443221186344646151557891898919817109535241936826682016415261867599616718471481852230828383140316391548474265107078142318974454725218631584584637337565547637118203019431533489370187092795842364409671748303918014770067883681817720124910045079792474531512921563225908164215073642549864171100471435336566962155907530158796464878622224957821243595915954663825793690106853411295732760916760693660800216261697710730544535624124082183236887058393233912526132648884156515852850970976731433448239133671539525377731682117890696129792688600062950261412849584813558279620835755712044448245342458488863915218660555323873953963250557690328460319684746284595278418158253433108941399588587663496864222991718657482329414491844883881765937612541239668425856812929964041121067773341720737207970691053483728897754783123477527504242481745323252500448465551709232573637411898522193439753719831368638937492826401009152811165172195521464678075398869445220525355079444589549434033593488113273158518537774809708295082978180872551701051674245745355561388678364930412696677177566443194031622276211809045093009790497869040074321576805157011109742440213693217374309736441779228314834163735075320765211170069614703134103517036528140887657003878518182950796639511703397091775650288656573275933579293896197187702402718574399442254202186805673868285071437350449811728322048048135945876822589045838651131800728389419903571141444235360648649864203366931288868312741538155404438845054749512603872388048366455071212786195516634924047109900646417335713193409524397103618044270162122265089364622289752257474941423255972244225653857635257682466577737585466765508035340855694870442641737455923546151127860913694203236374522362250399097562093980111959131518648626434072827277212857924238759262149550363597239210794042807977711570860007048620810613298852753083094512738683234032155319784001624283963267243617037833045791581673943937522923851370211795083685682507073616518264335222947497748189129262307434178773092935075497957842290838848226522139967209865229010168720767255180979432525768014375693989717714296114144296774004742495015309210742631104486127269952489753818115301662341586196771784453520158524078190152292619003730669456113469890409845551305403902841390778675778202248131149371343409535535344267850582453210615472718621001027236952655157182484022370026398261940140978962138922903684860292843167080563240762391224435964153462517296358362254955197348293318649242660169616673252676270028565092698078235858696616128343157709262550490211788565073302528945674567176864006826207266172098067121419313096001425163484577846475437367050342757205959778516145739516468726271419573092302205733571240917424653403666260025341058976503376523509465339604800709974911890436739744206507289776754134359364479865559672694652534170124980248188541899435973036426711792417517102893737009639714388331554246192469981194362010946708491472980776377510895262252013252239863848164051019367627486878132357709254688355508103925857191880214814789921144239939636659031836271624880397245442787808638970964401874720804704687878636539674753109175765424526155700034209955154162322146807687222756969876486550571316299235680880085559777959033914702511517378115644578140340922748138164277278632166394059717334447005911282318422785495718506541286759725465484665634510091007521650546051044705648358425503993127897407485266153858788391409664154098985011714388533490745921298278832357001983209867999398719271669618109610596756441344624757355200300089952210108588908004792784513176725241748135953252520153242160756055542757372683644133441317581342596265555292650879241252204974028247295976957392737278413118969396305639526138141370000683254461715581214237733375811888834050346391165637226062962890725732291858289155887919559922332708667780295453625465433183890804073691675716844395413209487193031395871718517195628796196274887388276694834235687116170163840289341099036815789055784027235816948874260557229277124989804903932066473449622521140823653835578189599917802083757526733686974411793636515956748939966907331505808442269411714779744793186439461403653621162356723158179418223806649097741037516229984964047618742247430442465221626028526271890280814840114059545160465694787474419418216932954465043845367503164099724623309696184960337053179507176460824728442124913414504594745113907881283087316419113054770968142092270099473435509582126332001939481086479140891301838257368723561787771553351836221925416679702948398634172749558145261993263685959227038973872069057646814194750583929775405985291679683725834506789916233297685269626892696529152629384181761511180435237567392241738988659655562692974847841584405753405865850298636845309564480395000457940750871748296482511023873601518273541193639539480239639136945805991256827330056574407710968879595203001689813184746406015284220558974109166855374745370467533034239639872245263506256461013546383654762587460319771491248752971666187318555213098167512720836467710441014996661295545098352632252943175440876549079412834755580789888188948300347120768585270765798739556159833403991095413559781210742154319820558535365089268865862119496616974215917778500191918707802137210830407961367877242924126832619193732709448328019124841019720548155498103886766723382669673675451252114710887588343768033790632672320749214445029672973859157098217458924152227207329854252072104139485903324783251978780638917863207346792263021010255071515294097039671971017299548809244143954308878720722965569833456844613296809390837330098220188935623316911524464158897280386826539225335700993847532955927743671241255101862239139285552049600117212640484338970961479639178953939454953464549478252008466491208546995590655343934366480349694231754411866086103395191857165293812353500866606775086004086421554759506032492549743566568809257323915106695384827094551399575566392242324398671070458752614778789516103479107462940257590815916502081202734820781776583847219407004089451063582528268091233468695591834005187707322841502265230442374069389897477391734148450804514004545005064740438161743270589273257779459195614337282787166354457061902815371009731939844693433105694120896960813847951576814782280612698467670795110728906276645891479947459088170678708578753729983764631762269736754247959632960632512453417189256560966613706735777470160063417738226976749915799565068897049813089667492608923020949968673709599712933025426521034887815241567362001988965590291298929005418594786403315742560058705911448496392421598521230527002896758339613889660494354092455481781649502070725478664156522306879956882870973124449686768099099030335011806462498470848217497397458220011381441906738560366039206404140617360071141997373980665920194475672841759262738511775427100253027755486576240926237342163863919164455958787173186963347517511675812432762412425170404595695553454887693694971945988111816050562149460349212491650449312498062987091405709659146700476746733036292469576401722430440851131075090968168048890708607582258308920784793216609215837517545539495353994326517628699025300365393324537189729043969016815186420130322874014402211218636136770930517932618550218273155220985939414602175629270889741283352417828175310530584552851169515754138565305359627083750129746941746896827764979538167642537111035625125785984891835667801213954681616324759957489151555515161437890902637283655310696757580993419911407342405507433184595422605291362950473098196549581687615304849971057468579263666285539918222791689125653801519596496651724650164957170235670363222537567712507696919332985800897787589256342139328442534618512427184246723175397280052401968680294217672569600653514290140040571021203815786169571505075347700319258301005003672171998415071818473069701030282509475657416805884648764746589486784668917513054729900511869105206495741401397540407810071012619952341271556928508963806563528892245438586720296595410184236394712159169180273410828667238112943107495499155636191414141522001502529136897860578624900397653504812982680826881136716060463245837986582561721691356659731968698677889370727918814354766649400144060795274088401018257076246489722745739581348491288324916017724231132259783621063835776014044743983395741340765077386181059141039223169437774161381903250572317699942276274043898271241869442350647627921149766973353811449246403687950290467946931275143890192146519176107251303898165661666099695426998232034474619666903218682716543770994940854956824054308716930139085325612470957446911950812076545471274031585316746014754413295518289845638850443734301677456809948761691568128514879885829175055591266089794264040593466773011368671917660161853084307713052688244812086929909880011694241537941135970250896838355163247310495539663386339677269988300241468833529768330713958834194413951664365614996458631451683905941352236696947904052130642164014460055869295928753814634325214722928530177822735360841657449923817011188507740513476041775677521136715782505490387880418053782946393118696237349955305210273099418134532166039287288861348717089554772714876419622111530797797067747004011284802398596280266105778947501824037498372333719504113826800005232794263897575909642480446179070512814555922404138169543146467900034664306956469853700214022565478987158207688909909122784383325262487810603917855115509278233433485356722557414897899076151642158587826381316561078489301420005346021374880246887568067343270362203516185564645890432809248075490649426817232236949154147948103541366190297493826113101460656066688811025035125571690596436676716748236054664969230756999165224341784054828915022758692621774115576738515553262467792657975054676659779406745960292333388002886588399069471027545552043716227646396427210846111164298001600941740242574212898562593104144393279046090541151111608695767549178401515880113766640491524730335498913756037425115876071272619884821960819654940156703322210528509722271130858161534114588975041822148976089138955098120956682984945476826268014441579492770511733923864246667361282351023990127372312686735902512556484730100745233968836428250334862070341885832637961336148297038736409063821892828762426325511025840687877199207859483444725157027936500584747658008536629936649979962298232618099732051532272965147583322740031549019879249930863809061367846080141358868768339375867149882675746778191638745386031261105098806867540059252813956701915501826388984547108639775626978802643717804140015434055680850982092737861904349697486825741215022318074384577209753458269082034258513427315163610606149664289368948429127790453040720895326305046466139316065084152150355591423844748265174377034805730519446970073854914553936156669104691519632697694558912103558203090747172316827346182066640410698731487908134891742265458559306502290808324041346277017491206429949623445736677497183319010147879045687989013796611154973934353093675023988674543733898253358734262460332486453027406213804684091532030037225284895876911528191912122428082917074308141308386688716815105459165465300782580002154048808440948429254943969520226652670241120461057547859541408017794737804008782999249908871794239294369779310507412328373781670974341315105693003834141885412321981472041967663856350434061708641823192489226463468979653962563458538339179017478037008824192144629433601278602834181319715789478507026597953943980115696528194798970839271038946009951327353859587879325065025779552612284354735277232105736974170144775949766959182696670786085113351266825210552382427106246618278007915402376250766747865405582247064524990510278906070350526958887541760691376165657447770295310120289709430365024769182733422484628781993935014213798397460806757016972540498979030690940687832743514449232203032416979694663470741051081693170281576355831153743218132096865716852699422056241553658900174906199698572655865071287839977356335513837147942321570292855232523272478890056358186910423389470062128457772920259963110595194017558590814494790699390226980549603212315280093602423745419694362294359334448293134262682453427222634384396676588375777844914153602786113317365770406055329692060934720721263768833891517056396279190493491633708761304667462820551602837807742475984190964280832687866915016257459187901722522343971774476841242237265747791087630653109531707097491764228357517933941765957286892527789853040624902955700853068310408276222373981315408403744771101253182434135950273192811232114498348489636593824470758880364250265404871030836970273815732198656276015941237046746082702736383059049274000467895282404397459086513680840291331841623690701135485678555629348136060735398211793072183945928346707204045722903223286412629136121900378793323845924456223392081133172876380146602746542740020086014259878085344151152518126173096822089029136392697803993501932986036606102757621859024899440305726277649575940734581333374343342217676338221632402966018648260600555569217417965198014167394836923259234910195989107966676262794694192612790442850568426971274779348109305093619258813721806281534811602186237566967721443190920863552314421999932921589039484594163354679979965069738294968782717750093481821136775280683347946573798108997312431502185194677022712771736697934986703988316538628775660995019293061834920257871506150115859280227511523746744699692072064732945322939143297905481386284193780950681261074120134605921090671038668436431193631765143600336690921180366005984932287495665951299277416871747406334939904945683441567734686465929547064842672582221762089165566064199071360055180870381289006273423140090633863207070728109166370160323591004489848841513128201218280099754719473759208814142721561654532757482123161463976725793707369009998430646027267515786967483778257319843926303895640579824862482002680647792928096597742294966969229234167563796431399171859195087620149993337653887910357070130848370711743715459493532217384843124012738897699653984280983850246623772418532961761782033320319249498392138324473103206048950818537753007422364609974275373527422079038948224510774531249106847294924913138491884704924659702685932518166179479459382569253268753708798343741320668466445712242723137404900309453761048584788899691669980281319853682491994104490194767893484126297168133189146810670491637289149292336541653020123902435536121343235647250337895700186576150779108145950251056814949445126874159298188682052506265444830805872346129492876911167051283752499016646822052240216256692504691827418059061566358984186994948962549687577571545353225102459526864866727289856542614996908635292800552759771316345249841321930071194796299795796586401036077245536008884952673142697022551447521695699535526762631800366651438154332648535472801314747724651618461386970895746466395681810288981220581836069182046489441035311576106545105107154341366497327241997921639497093194842526101852421627027901110798856478957373584589997391646163944610896200785515677028565509506599377256658236602267416984396725330231348189446332397338151526691354728669754111261000896239743342293858608665791971302599770857890146195166929316941555824620400984120470743242393865781675104769873274966509233986789696117371866631635731621114659600453871259421676867632434538330039110155167882500160573493301319515337643324898924376037746559965379198068698836399333246657122742101092732164221672431608139457399837299413832931745058719521475914354662303466626264042472721712863871605757968895020354496837843974273773355694625328329526674056214370691677149459571577929767996946363271637571821689370409223877816379227927881247000414840925956397226039514260889688017935512053426794094475075349226249159739312470473460986742699803302690400546980740374496264280859276592267690901496295995298495651725341430618094909463504314059163319846522699930505505865460085463751124294209276540614343937953980876841146609573735072953489744280879812234728351112051185042619998123599490811260192117158177554601381367602124567976572271107781831674398199539487229398413001463068918632878371003668759320542921183484601627895354905891361129879158062582501823596514197638148968587086194257081210908839412381024428523364782535759811268639452942376925953458082551827566101477025574814893923667072473093100331004668735195841886082902198007925291520145352005226981423203297286879260866683913956160461499431812532154061046658209848277297792192591550737833797163567497077599940884156991217287422999380636046997779371424912164124587524463049848578432237194081107465075165619358268112436173379531280480704450010542045992290791797895229966962973009556719793873001595570648561465338126497065577469583508360471509710745000265250765591305488918026012056783525898948948348099843623959113705952974189195855544425394372788583704309772370478437994360910682100203710604538013688777300983674241168374856138808789183333731162864329895537999866729836198664443409236785499714085519677939667471599327118603453347993828362505466225516204706989649177567016305062104573774818817625109813287280032239578747356443668047681411093963660844495071153589898029064706809711735568803473106157008169710009071836615991749191228947553008897120764357460992198619010530245027467854368486535349943729245924843840065773414520374838855391569506259893138118338788292300626017552783839666487974271228982098396055554105016946484616268902179273466622965923350234903295265744614335232451597622548066607407001659500668504398218087831960308372594279823887208367174566146694930440677692621489493949520228506205844379002090162744581790925713347136398910027739361231462522099521201150421478771915358173898424766049562520899975405820987938352945129241675188266147011930749452451607346079890860878856471112350002160668273806962424846893057525899510049207163519817485114524538803027566104421523283784974977171948362781442279554471779098899470425279006142244988958240243210268486327599598118915811007212653108471318359517280918059572201954603531299140286039869422841849848932197375628812146276736756447982937064892307333300758504276044788396756399512730722076564932672184196017321286095013551121938060827629331044176578378905183149825773831587650991187491960688372060455846069524402872514362964584319558382431070195029698490249244584103430754471183523754852958366674503121338269072525717639662961500327223356609712168663293454038309499670726993950888009605375115806238844467140882608803738599825226084625611567999587255409978490848497130494193163225792019819858139239417735708735880689785345494562784530164265097244511044645776956734282816223404755287976307932915511857499030191133816619142374960248539725837622688326495582425394110965011101354783758143761913099539252355405769201981310518047074845931288421400337042353995313686907384340058485522228666913723562336700771805679083575544923105003949587784557780047569710910197770160624249631683554352158367062524406586363461934803928743030355367036395921490518038790699810688508888886680320973635255681427502049052092203312302813728927507886038658523721237414336729893302292395291831094233161369013359468140965555933627819775220118965909018361138235123839790669125943127260045623182126234704792036395953124362714826697584160710601842865198305160794919401496136526447681904509785982640485838064445484894208143131738863224498239121094442073215048548314750462101069968388783831601014036040479526291035073355313673443240111474241213358732981973684672271425940094592427330915992608990509722215217932655761752548895322093958302291350944011454643333988071050146223664785022609826110230006822065429236209896042566815782926401821040098646811316972140558936527202416611679021723366965972087254469656808779027136205112105344996600155826795017610983653172262466890135295568949664167914535761468073016736792980459267990758382438749332767634510528869368589813162021841385153954636296507380877216909692450954605585116276356274189620082173144923803080266654040567490750482457059661889648183196042601929960341178881114808477067904650707409201284029683414846426152637457180880589709561949274880781307064070010788171321427983925466361024581402745797139515549626622548157866106524567341239012811986538866176024529933239462510576993034134027743094595693229742424629767580585070089013441697198422699071959310436572846151374313100952761409502323027021511403034293811586270361763891837664184010593887858926089644804008335633805999725701275514496987975676667034655991329738836978711244578926924090105832985498747276128063118493724712301240606976725040081406355036667728589529835349872060197218660178839270507001369478628321610359033906301155867132125589054965525681138964763776122281456314328123134060615944395879686855251728192180966626450489144126109953991490231724572694483190172272057686924554127505959216429449304753614901134168336799314009300979382797871068745493356586566742295037321986347282800885190878697344377083308219883691467395332548035075540796810446617522706162121611765078324729586278529093686529218586987231644279875063893000347489529094224689498154460148431741801642692090378929971369173484425948614877896096037817883552247034590777599341264888915993453238470129103137872928278787472265931128231874993808136261819436062409286005670205555036748223836082005181623972933714158225051964031251665759230590230615974309007042773058173968601754735943895481051622592363868258126476549947536466489774233996033733231984864447961628184876504276927231407040603894039008244326042809753512225099314860493928499149320657429302145926684454352196636406621058227523725865055910652025271662000178950345211568873661749090739292143794341956928857381676455196532651324403485639171066937820849881412280673264677502117793637221497070203646352053519123990757543317191511127961930716942545290095191801549955306265354088860082797699419085332754520460283065401297010234322726731870087600898217904863759141808941179762568544263871866352845503384944579063810057399338682894440144631028931052556171035862023708841040464917700486060942749691313256437765548765202299125622986445505065050337564240492543369792363608034804370069508383899014045956790193322937514950868839319400721701803610460483188785451393127183963823057585940164969350939224669581542520031231180929172162145527051503893080844011616606673725794329264034645900664058731023669535279750403685342607158464650645799840081665586111255657373961089556409408334696142906286302002144974800870701481345956823194532302496722108480640921770295021661910463172590360798542671705112373859463746876091187072759845532441930962734700097252954540701240636194932221475196740188834368866191597994825476133527564508100946259086986909774733665870504806774409252805097634457043861055662827732407936007472014081733932990058452306265794361800949149586187983615533138061407419170211417712179694705539508117614416833005821717184172229420975049109668751328657750957711041918544500823747575555523067466568638896450994044316408062817162995058623523805625892859598343913146328108499195406908737033522802563220840052519024570842957968979438374861467208402187521933561470065543128182407002179449652024333817547285044059656778318589053720715917602817495217726284180145193370554381219149055612176710976545082033644285765594073983823161709314622081440118508344768188329283561300547589677590171298762595536992643833068282334560707192902776177715283607864216182202891495696098993355149089529972363042652404510158921504616731889253082050460861187864594791601940685981653344187835406809141963507190429544295060739871281289753535034232999738096250317169752163980010931924172844540474000810141534119298998683527810563425131507061963485813574542724449759922772445649993908530526893988091284464855728569173652596033817154371312184065881627832947627474388373710356561420223561683840064715792437427225038974465439111769697073397630609604134677404545216042650966337702138099784657470572954106040669172977536662418246917039407071285774148134695179009734432905132596294840032836518896043556966414759283229376312366096204133311959341839040415041083835010046373268715308258366386005829713977434383719241080567045205980012424713689161485430556685890285411140527904599407395018699936760123332820315688304115786891956730909088152798693801070676895121112190828511273628669158411349401001620059648838650263911889037322539756631820321753985470531062537363981701998938351781822630652467282728258954580951318078473001398338509032052591088609562633332770316238951915590058980963674033062945834216624288615746231189098666942829577978011756135571316642018127983187917660495735008828787689883562391063682678880415054682050197255411029968909295211285115107891578531003042400391015982994335528613901980288837242659580969399228364299786527089395224133304090236284522795057682027658653355511900469068492082221045063646152795064580413056738640480577404012162433410599256441853226500929081269896839901620255095092327133321250037439791539160564076897782966615780188706338582368392739598237268348357113210341934381513971655513226819028264742408778175775472941474991510751413154846985200682345573476964311302349327827086182574470390516154154618116676675682422046320598370515975815635575287818296183676325874185773273325186524554088967487597915992051735079371402345818387170706973619763562886113294624617458011364219029770812408366153066702739398513282980285455094046443419370271043000176348593828423842705358626011789876750718918297381722567900179161153118533769018622502454826299783443321636324777508083712492003153003318844641019072322858384417719313006469114718154699677429955219885579584463771677884373259235025621337189626144500359054161655721668810042689413250601943047525703745923228802177669842534066724198906936766566294308863700043503296061394150412206332409741770664753873395934965229010491321615700980591728762571364443287286452245622385488075011917196696206914187044564200520366549952897797815908094066074133285771389754897861553429843955417125492796326872550207900295458137133484290623525951078997549059931010855933919625269586087012085988134051996814508891299833634241973334078622449362381149513586268275758851217124377692382622730194984582178499716657698606350368878291530707520885026765626245473002943088406211765874316572597249274863175615847786295850735083128531405534709622156524215932692442793964770908877034626059441583975273941783410572096499887497447891895812541448406440303018064184333508322010490176967954478044188956703094343557785382679602681064680497538469243874502616482140540988911675350186266782745303682445881547815031613764511118768879595854001180611805334498349526723274208125818731935798980085378592668065252402291159321485037694203231413744161613163640610655640224760242565990982258747567091820680196482746668375228223071723474214421410362903637835287190621320304419921576800919722677824393963819494350051063412089135865003088871159801995025045306452717562764438181403964110300031679627291076212848164024406207626484519118006787875925230697237754733105874699071699827747901073889153070185460964351174697190411388800311570269498912200972012320133450122177012350518381748303128931808458647387032239874300052008427169880166411697696869738559529215546552152967250261461389015451313221456505557959022929992977049604179298882492079660888394347726456693703934622200820994045277803567185377196349669193252555524395089695967968658348109143168303517779129203222314374983496569115522941308128758151659305511701735361376278415381809241019944308393183125403815225634569472004315754341900776399722596372099008524632999004976976463445694872215468619488636295614936850332040902766086490208092603160984639692262573234365653346405342901535797056217572885620932357522750243316092281325889814909995075440802024481943346822132477741977471349138240209264744093021448446768385864877148140128781651682684441638486107026327591786739449777602810386801428292148082750992748908001990876001551829531480057661287145826009526841684653057255365974764461588395046505379048920161271145031704156902185797582648380912891614594887676147892972646895538850794745760416194791305192545726856815779336339802164355398894869156119983216132268677077790758178914906586002967258113301790481417066615768925026471340834153086978695912514477542391314567276959333040586117004670094749680698904626266005893186846237679386653552638128027984174457945023145408694479729924370232687137131415805825609790469575134591926520544294221514478086474181141437950757577932854540780188615103746019466750705921404382033544704802807982454832614492076849790451824535519694255462142283496899262438458095270681572791560994194814717076964311296612173629309387494781329431400976027755286649828296412898511104806875022849020439250002494752196272223801760724260657004945052092247496360609295895070242342673863213214253403628994415726623011480448149061391408207991072197759852443112222313318356478768346578554792034758987692904490716819072068243217739105337411668762501572314959957989199641546536429354843184881680005009250602112266234068061228099313590091785195808410566815690452697429421752320901880270896344768524587266021612036971705379819535900871212612056602351310559882682236950202639831033920130577440594573661719479026351545301586668959989623271123526544456354649717175431204924763692243983974432357837601336189312406963138564708408830828707898301139395746737991337789199278548301392957652951126529398349706668622926561661128650786718665467881155179284509969143201898457913346783977150617476412880186385671478262905864224578939035813292449972971750155907593181848759778784568027948357243984871187547956889220515692265669657633267779281957927712333354428849942733061869296997402642462638400699911432899162246280510971177537837990377646835963062071560462371336478213182342100487803173767219004309681890205357734522237687961034748561860860647441974111749533886307228347866557457928938102455977726650182471394505680080566792585729534357373020718716091039025965308339095580823857694139674295433541874451269083509334413954554482941622358747842666377781560833303694519767400891347348118576390322760846378283078849879390591524106251580639787335205719538725517730139800880016690936318191665780209475283758919864704233938247111070495197757056902140948887900692736593888096038912793577390458907509696180377244622427296755766896959803291577165883510560712881872424462510703877493783124514620384672719023756554757302895375112074329799565461525250728947081251029474496502620881044588696110841678006310941782159713723984578678096807070229046785006536208906262585303509158040649772643928370227720928871696655521284775533822571834201498142130451114231304257662789544591615276177189701812044402812885522624642586508147891267520512616326250736362766330588096486516337933207516386363941628501138776777828266483109522766585957923457467030722357676283174168774046248101075737548728503930637571187635377168382148188737908040105764718338897361768556661260498026158820336135168526371015986079749133997110871610108184152291477607692012524579939530369625564105207377604936461425518634297591576901264901825674003665931571371418223258258056786094845437114194175054290457789242042169168289046539891067120546887557240233130201223041122651277521608593244442090943936032294492219344517792763869101939736426602231991475941864974903731951520523404301582754554294337481597401469130460836619558765683361665392204326041012832744606019086649778002624481182856483244445247048380725457701317111279213845617935280474558935535243936715659924272636781162941560608482518430010168457727028708580377646805262477744053776116501752077392485602307323260088710543431177428303168391076945406915311989248919477512759485733774829924555688216297968547067463120122893949775776751030786391253612227312381336814095676828992006750777146050352976232465300668498721470106413619010533847097370651074629826007802971085372619751988573061409978186847963396005467748628667305861137491724221272467913655568131453683456440035470170937676406420906970022566783335976280099375882006915848088216866379757918469342300798569571162623228625108100459655530418198371206421659857279629252178531292069885260539803550353433043294479651907625897195604971881869900049580310640517123971829600545442794271869091589729989996749765256393713915995058272986977320403158419719239076783769543171163325780498344435317665631914617828523057286690837251761242660581748529557681695470644492963351680988158934197650091793602000704326911548152250181500702820329563445371014473930270327647422147677066164335033733469127021231789655561888541564571763650153132349057921648029960170862067229102856952494322866378390817255097473145399799863300352218398513610139356248929889928248228934335963953395841803997580784748175792898619174473620716751870287684752476110627584938107196765395829257775715625533350257128687229954850631073687219711776824724721957782122904835044923261638845162538233365975051498268246173401921978788788118910269434482087901252653543988543787774087515355778949992809949043025624969490431518561595320002880727236498606843808446530698606376706415343821532118917015250269440799381278992047439105283782813802969936671282092497111607723579868912795211938593603818909455810609818899765464291804207601182642159425536069474881364671364417983488127879261516123459194710370276122140138103292204911593525676779811614988416175984173243985387028241842852385206983495495156500870489941843391717099973412849281549561686370290270091817806750646894691969430841321509210692954742368623430476109096678809508756426994335893251946521427122716465237615136027318859616885126083473616503656057698596766884347889555520638351447226242786215378608677086519846812831010960964573078810366780341194547091436999623949181092977580520665341223770854431032828984452088152919364377933608461019567366573954427164641795618853219309827767561245727929134502550161330626407354625277763802983103694133117716780369021722591898339603150443570402893303042727555332038672227500993319715720872925904037840752839262835955766397125615708967816007030262491249200326457444288985879684087616662892286459431015939757668356127091556214544895658010446045151878611310760596106749048337499252326858332475816247262433016229488647039091478827595907273106709680565422226739310981629754944502127838267137617722845373904176176105680039750198464616392381967555061733987344143546357412386845581865160673020640321139282944007080371026833129094911285639022516862566670857712694374344607939618156024380776920918494030786808976988332815041189113175961032364298106347757790101420418020560835683720456823721455137288756689142033356423791201969791502589800192326979557264255060890878706189624344526382006086343935683060169166654700528434202050691038153612198472524510427217053466572506860097435851751169029896882610355290440150383252675790117911424993731694323129387596859487751445180960124865437225546358189395412453689351104581006072632853481456764801306763000822259613033212328468198640639143630770708634327474613703315297707892601378699919601799935246475327448604444158062713587797032629596884471981201456873214717436360790026900927568918196505207716085408345709776011162228997391039450953317270924974192126798185824267065572288824943938593702453714930322679480982978979074748736388879331114706683173202631492357350848124623111452489467466539738315267607380051496446255684405884383619822783848508029402553892684839365664085614088368555745974354225050680933974897813771291552343071693214603720977161573411736537566725620203907751013334792735113522867650458912293175082002514651922349888904684674323066671898579873432412729748543473781479511611143751777563041565450624203173820108573934326767702682360681639099824925037355593478913351591310486849110732327352555688278168059660922829425952869465309332024520841556043930370087119148665257408000200081638502893366804497235185101357115063172532144043924589718971253079391589359585599025188372046654574046758797779368464187840964251300508433840516946947749067120041760153585026436659647143427558781489186615031777158661427812038520451482259889341174944685733947130563729574215479749700079518365643861311776818698043847531135927999813282685971496322695452082631935602695081351427189754664479617571534553066932231693503888358596597760028293411327905481788996513358265914143584131368720869197855000719164174042200255248140027336023411106351316242384562810077704865050530965392963233292059858439537989536842363785117843755654838932485838173935326529884235983395898087563147771344395781521454150159476360273447734150432407905679347183740335346405884705756872195955209349829851661545607438710048094655508750890067282309934361670666426971914193804859069701960972284266938368245909458933370281663648809853430660154393562691250835581055055851080440982388216036882690545172589243841936190220592158419997374618536451155650030284051603206661050435499217245049518380087510715914794787423376928552721025369210356489636848037164351137485622193946994702347879756770583975985757036441950935710989006903872467604120511641822973462584127890368815987715669745757045320387906912049340965302267409191351232915815082836500606540260277041674042114748619785018391254641633738546081026073459234930155529156299803796802153629088619687173639120864157317251080234340019741676077055180599665386517459549161234944757003438979635063050019412764965280160453900882877245477940943339775716000357030339643514779726203294245010923383268391834129022406250950066912167613085863890293417342925677629529302043436661233360697471056997812846615968089691628677211492320295786156145762011092560825576979125519612286833625311308190159991467858011615088332081302915562543868929748863433049653234518840880065143905610606838169978595342248382970725245722293218286156619318782758261093152982657385374939523322077894788867351087528718948153795877739205618215103882711961923322086834862085026711012372822041185909183757562397204041868975483166278641427031679565980095501525305103880489129769166059549693435284152967522151170314777538888128418974182626599870397700768945978390213790448366796950871166031986487833362414327851790584539369111486486939017696632992588703819310448015464866958650758549794193376375012859225161598385398078119903126512211247367089271268109381097533874549362686850824474948713127196763178769631588966708716535027696078418711901939880370844815446780502645825093023370139794749814837448347465711771566385783100197897538631075433762808187827520272198877128841713443362937508561980029067395678649298718870706774106104631104686658520047176164645036938124162275999507431017320637252350907157671084496212270675614798134001437809553685702713466509766315321447656663364440904158194514061701992694642193923719261627111733713729379785104581491247927814747386068114193198707804854899159682375673117273612346262956397947325836010706988300399426079523198478285693724431652207209551958718485584516030634470101123016583300576100684876235805144015972375270916345424586716345068897992756955572948510741929929381072314089947683650362290208988232848386336940765394335527495514603332317083158553582510534018250910946102188768949590756303583948502233931623471263230870448847529105708600983955812818027780685494584852770363894296795692876869248355772988795396579953315080151424785126877439907190873682826288929008345248984573322534877702194980096824052872837770540220894585128433143189256134501976157342233165886749630999182863203992244567021845353838992264875667051304156429566599071406523993548707535727242353517941518291052318427711119164543177893390828320391163689766333717589502472236379176602460521405538107514618554964529437073435570296009666520590399381742329168128375870250946696876264069865630973384542686744602382301318267292054509143038046138830936271591286627517700255266347744865054306004805865343893532196469315735968064927455757258882395100128704783833629563477248768042692179946703539737108804263761407708168500854669842658844170033481898672112972479404626930392214099685981342945845586635507594254937647933498407681036255613059722164776075950644678263094752897401640379998186547302448734737398716174481171167443068903184267428634039230636032409681169726886369130070364393434442662636515306872085419653248233755156200270354665743230246167736641101022061532828711640840302164677181389130467559594556330718533930403830291842651840407623133771409971644062216361591014642803862771485369838470650576679543963418464419349894236364735551470759109307546018505007978364256184609892422100642560477587805064965972745727347094465240944440865243218743562455130925604701988765001248053651524677458627953815252816088640047436434198840565188174573750329022682526019200825996114537949767060414816379449918382301761598327854254619264854573316666822979279371152837975408917746860082442693063569025301953185577169191197741399951840109432491998395049348307960326162848570148640327807539123842970329783933853778870167481457212786762645212734210464990289785979964077358516027863421358983761771501819884313871124230598242693276482201093176163813607622599866989371611520569189789836484950013924274299748871477349543486191944527107854999638393058011117475589774949824724683126556925113107206441237163173559826109769950343992417997168875991074311360169747219301995549340973309505738852712199927440384881769126143894591834841727965634065983004933760479804954335800982568108918182875996611978125926437674839334511146663381334453109008019634686243538074974986208425220124904844321816672324763582507642791057035884155126296983593907322821090491877901826606590281485005098613260649831065947312079707637065905471261500866556766089168464373471053464825656930300076988761330512011034293925626234957767558138797978136214891457491522552724552399217855169032989117971937864032563854172062397872861594661142352365618193672090073999776235808785112576622093729010350621066603283921357174695353022874650423592317489984990921036412335265407644453503133940210718804842096199518406032219462849403179666285099412852223229410077374101992176765016323183513044257439835399226820099413458944256028682683488611277168136248271324201131192000361526285296925115141607880822055155622174228424659074052638511349831489180996929973759899358707947151659774707005311095820030868003542012330243798216121482597936297349282553043423069740424820631877379829472075808078645145057622517221389153735972695772160968998341736541063313194133333537001235650428407915537951907477438915213813564046499279344579516667026754374952364184208986300502311727380399664744331777438481107498560357561705695867362893354594514994222125870921370206124233625774538359316586093426905354819625754695441309956561508900448334846595350919484313665355966474647056341728857073054469433806028523803881735939451970410301436792852610911623261712252565664378263327454547753189476063071302850693473518076437239741447801041447913506071856513870418716033963940071868261880121652513090964216919128457750163991510773440579875479334425104574197783781433901906683866780487905168265240509033140313565890926187090277897910766070653446608261793230784853395338084752210576228680440810627004005564038635678216807330263085214324262171153093453839744231017086518354450170764771313065344065839781512501668201271046633095939707177718311676125599753418231471229032059166137276098624715682782764513751976297321064387218981476578299412978164278512292874840635818058168802544183994435354195195602352418519213991626380023585917282576065485765611541493964073276693510726736907603726462556139813319961498338275354511230751520427385327155533408040078483692210584944796345040945481835965282681566196634860103704193268946259244761741666057410970670829495440319361796904338222133531767281593707064209073024375371804952736944746209154816878329397239312210239308509834021972838780958896144350588549714768621029968124711713516359016858797643820741050727784489590839186593574369351886031361456945025794686550884890794686158425956005160387859995278019553532554952431914333893794357616790705925143759178533784798856049753528599862846790221744379773385997830945733096530518715546752419432718526093578059212303877197698614344739417273602679229191752728189089012081377092295684252518973135682039157173751077267776697681523018465799972361811201909253688931200117340658146899303545989651487768784131282613641464913709589818813009434292564249419215156729783186793652645983681899305271976629937113968237940313366329607357697085209617972955134202427382823516794452259444348860087733096491653632004328403905485092093744553497580040733453837141220467078723965264970142351381800558482582485850924269955501575531574288412273955236448961342310051580554492767300361589502404017882128330066737358708255359405060336986067007512772395973069030610597078900521148450754131921867056488662222798690599111626830112110799214564146831640876827454616498423737196258369284155610533839132673941010522976537410200279964528766238852844936000351561172649357699774261060647025251551504136355706055799832224388202844985798261509761363620585467632327251765760222620813762100023096626592172520355752885817620178822777122231627375142690436908515334834686103135862438547123840302210560043913307876402291047139261908926435661814163561400797565614333712225223973634137247745540476960650850054276175653006415251663331973305034519674409482872935797820486499583335210655266024747512287813135241476572363243057699835111174145527069748316862842523924837335973936885696027130197209795003517188807171247764280040562410322023389263344526627025674798810839364635757016285446873357797488065644340028084571427120004093886160272671623277193890593198114534946068305901384374660220855801358858287645724848075559291596719191972490525310685431185218130770891505621242974577072167121235702019122453623053987093051890583941761233899269090788488308856834478842651302616198909486729020374356159931586097605213300005567609930330898826363188157797783435796729932759853957957288949583415888431429450349845995811971830543711738805515568314939218525078436829158539771632417629428890189670949538207003244139629179026579588998200868705528530734030937426330408799539572775188946883970093971859413316866923183692730175565416326397777929244337473176404708440384647687504785116764871535727258706286878802225444561639171784691424903094426882068977506531395769726351118313323493664303225078112763543707926146355980733733499330349592753798743339746988992640098902047330931124625432170082019747118818890456730131541729599523786120547060078072983889168399324382221700541641053259466201144925041162906630892026555746690000858225410649397725723370879655056799362406790037335009957829467278730462190164485413212761078396169339854793072351710772219611187607665710646007389121217817987601057101950437275588549587633772837303498875107377017838765410453185279786673084716529257904857264666171920763369601503358717799008795814973903186340620463649760983035003518452412285054685119947458880214779347941543223677866847555667550616869430658605408596083001584381688847328789240095848889551678576068319278575092164331309278054554855028377131991607966028122147687470781525831298307734542949209382587281426512759755003883550412303153742705368519879832169607176668071271786120261782128855203420564297282133626204458259891404954187573647808022921937243544332754085519924921504611668949830787271221264107453856386998473701576729432604159056172908716253435809735242182031441787160056101518115659988561067590487271595294001534867236180741312306818497146956057796168688809827319166408837309315762721689995055781159060364814752343584005079179035996986823584663350282920897292791429176896954550000183427661941561225103609982706560901458199811834338247816854062997216676178591774073045401357860415546267443148050211382274597054262036216476721459761305066874738658783242119983221977122389571134179938663659005887605156038343418869691644120856685061189570634926277024634294901498483087808864238390938071130848781645241775380981237272569405377964890996545834851537043886575150665564622593255606980360593467829780858791060046830312789194372242902084561941810536625197477524334185192822669765632543698517961284483381038457438836603220853462333007851057991082816353387578030170839651990056124892511074828252182919371444833373544117182257819586821310497334678499845531519950216311516598159103006244817598901366930938262664091580896594870350702811817498716620564952027099207289070462642754585473060287366245720417639457657700833725714536569660154723982208687468668360939344084224935207784333760634666809398826982552427242799317841854104067912406010038653210825038602671437701700955537728987399415646979219416048660639373541231562082553581061249118901483140776276326366187900388882008341761126907689058408046886622050493830063671356866134688369417674876097629637190698387232749400553778034321792284006346992796055663251250543308099749070728558605709318718795334035843900747211190536436440485325491146545538352257972327401306553596716773644199073578855044488065381189544034140917233757564695419537024839031023789118781270382242249758840818788526471829739499925624345284008681390515366151485084471762906129823582543827929423704096093946104090229111350705887408304392178884794299720149832558306869472527905977127747250646761788840928759073712282024924825517423107325406948294036115299918164429359115721944603195894175290152406801300526943414417268856569316761734716415158427066129725698484716687517558247051696018067398499364761623089100659073339884163206222302665626613355991994794873481656315109103326048996571134193916343312640595081729127875450441591914130752716758324395383372166614701280939069215271026735114163647001176214477716104095763417823315295128124034648683820825476107853792661615231102114753151386420072947592633956800237803836684200059302173020659442272145522552382302046658441082932583416395311545482311472292939491425178643662165700921777579492011769481166719140970427698024024360321541298131083971730656590908229930754186231160407011799905415348621523372056868052153016796196822796676888115709097832111934355159023791685119245988033055667448391944176058673405719731758927341004160377242124379464474691859308351899231802088142933089021517231838688094633732607933755266871622494167298125656198153601004170989282694986917561327257233587728840485880704703345368420396242787858820958555472745967703745485708622690295490565228647575328600135452810696121414698504772496452295726622311093695318156743716711053907879831604129525908613466341283321294641324418631503493835236227017580745853940274515692734532615489078164375428136297214483792558974596842734046705361927979682279571570742832453264207520278563616086107185261769835158312455781276058913043763890857423039973404771722474796203213759642195367313465557651258999596372676890540852004200657610486587759819806205987061778212307420563430308524662449218409406877421221148523734427950526948512431741876934428224798647182776806279186820185592569624059424187623415288704123925348213352850876168696968613080294183909615161321226103649304440308459712898783097042236255861269404428431776428478706885509199873555738358341903267184920803937539044935187997509036990068551504548761979304263595227834775787050489691766101714063258575624678011044191859897544574616092371651520277097889689973149284773361437215177360671665796689806235603470935053924469904785859530733206514368043885327468708616612083945837456998882687227597331082364421808925187600932437614173212006034983258405835603751810462766703184902500983658193827740256083149333215088852352678256403608802602160221805343436625760894228947516833966316763214174709073864517554473329286395981399966490733287323708637879999903165925887961749999786585567709802432146799839292368256815979828573830935661694039927912608857525773661412130936992356329597852870656783460533788665716941327874084308394008750533934134235946978688067310875463783638823912331094022749212050278494337256707751102486227884186949039676897023289351062026725184878960904023644650707905408700553865135907466869565644913624046532421445066643953063164215602927054359171061427459117515155064115797306490950107147338450866035492762486065009506232148806359047191632095599084195483284347517577090657829682893854190870705563996180503726296425517584397817616715153748665275912460639865847374580104800793435516713330023534761658439286577370999141318959509768471993360837829935939742099003118334578810593304212482184621173710305199727586373542282861733782666215193900646662501431993949621649485606120196595873408563309546568881650821232000892249074303009750870844410485686665864698306597322644079285017680908611491561369839261453087189932611678899736210571598925458556357322525336481440810137918776379578708932617472572962663219217263240495800656894674573577879986154065025713815025649826964593520471891709458179182570763650984868577069538658069308983319169893893438683174695896373408877237983716842178933679807054492463207540070593689346818710715082274910669824366075061679211736376421327418615408035740527954409885448381209326242875466180053933022001191741758136578928762620567125839154594493075641723409360612673184754959333128829446794890797219186994258080298051693761969983519739489194274439219054606929158044448366195189349348991375112125948465807143535231667800929334170961607134770460239221335356398055616585884334625731702002790318970691683875744006203753898438099127816808465847466194351759848447443636313159810826426227576041660314058616698515118229769191924912199895333460550758760041861520660298763826120642075227068256532920498102519394986564999136312833407697912198785108737125908476031431836006860674957823889044877504061195595978504249792061538665590994949731958535866885017758008512868451117271581336971603615331135960362366860579154269447340587284562443790255115024237598144250184874871558268533059704134875119580669969568762011600412819162620075645365966020328671829522221300908028000395743489493855467932345666638845046495427234047391337147589626466193480137228109859544571764119070409053384692990794065280532306149601719268112216171930686456099898119986027937040473080027241638629381740666055753600036354292194144465585603163734313254187809986115059493557531401313714133154724431562395945103793828192688510293731014204521585049313885107316729899154641947841549134106574873058014512727574738734434764691756069216392301021950773110967084384577022014183270785567379218103379431566040271542791346174908028322449296957755819853714971504696301191776739432676794657534761058804975443135427109309260958757186622996418212384999354026971623541001518513962846079307216640526330276345513957855324866758954218196128110264418040994453882845443490974435940415918337776971185240851142842447459920996938110641468747966078719612978435670117322355174552476570178342017746001700895211794142802348422426463360111306882657550716918964104850755264155838184590454579047512817886673570231657311703444160137454247536762365104952263131065557452501245344528262725333110200537227960732730066670698023905373178480086580806515814375609917961819297656230226900900312884380121230276847794948911282400353081659951024908791685595916774842483357167601901109424405017218593905601735098495035287462825420874644272395313572430010503723917429570847907660749315224637206254191786985630502782829988478988231340820660292317311004313908531755839511438367588662702749564980359636635520588231973595799276938954999242973916036169870416585142552861180735815794089057080118730988954889178121025745330000394602572007254494228633917232906754777330576978348956738342303543392970132620261086306642888701494126802546374991969186011185866767861005744333366037314637110852994536286653974432697128390155872988534338392979163679848559279860919433333199639442818071043013263869309637569148390968160827808827388964528497015827989097027940240700770166256091072120868284971719319970451645952661767408015421888488870147926875853612443330962503505929433086070527426873108238595958158002048523391702687528059434772006719213775041416825484660642683610919524904595988039298231365076678448453913993674995159252077349597229149696581583317640493203194967147306673936815899614391569509474484303465227421794709226419134724868574056645032836250586108448802244128364700331360644606828630703488049492956715945658033409897006403009660793810662765029517410134133749399803303294840355374973631066170923999515806463109520434328689784906644165778459883866294957306864662238414682099904419740091547846043724116164219097274358623935524674054339709652152802144056727475053040865390715056763566912698139583960914114890535204784167747905196730016093391363104750909735782884512162367256689796769733066571654497842172722498833360988552988696641682651530493565203374788121794745097926580769691689642533613842584008778949442095748843573742311491170222971227782652184759650787809872488939724544931897872255734589359476193092178244410871169185713571695864218989465429084905719398566643548317522434302813817879248363208045800092953162655383208445404132619960642118260530282364890453388189037152949296719160622638223631696263934570885462970825632579017172957389978755553371494354753924473352710983856009642153605187091075507266599753186566624489861596391745166120110908531739286667281175326128353118703482246130213772210387218124313239783805032396174729388435444833709111000454618497066311290677606854112143964580807833964709939689062644762871602533252054175253894118097346887240301577777610679061487653915760282559056698891246564538999969749723953286716455638135361201409303603413129580257487258434397104773284325485089642294903357843112244227997990996798204248065046701168236069656392866786295883161283878635070078156958011285225402091160645507275256299821532848322202078295632541314037872814565664356211186636574730301177191390788788655748711114412019357449583005735169045723541250559852596031903823089747562185358966207617968328329005012911081659875224184958395074000166019682079874696674738248933697616508266800410928487098220648202549401267144281899923265985713674446602802202163019022838963751610769113344781589352411289893296245306876529502341255269481484670469261012363416250640425573187528165243448343396177771483271627197814083024528672027221116410528646764920418802632077988866368135669445929761254541141648467215447547969749381026074999732513774922077668394100798815802518278202849140137149527430148029235719007720066392435648961443627397877891928604642038743880834950999030280702895611052940506399894311773276359836849658881222936760342150554040252875359076774679781752594412040974078362029484420056483486788461589724568908320268218160080346570968390376755697582412640436255771205658942454097204852921810447998701280015539952687056759471198961024840155975920914547500311070504312150523943256604759983875173284194431679368644003826730247330727331090388644514652931515344192137927229749147412778451218791548906980816445318454388208858880497484285641956925376750457920709441644104145212896609262599326970122145333653977700523500385934091918837744157792186538536834345473551156004130839468394703735233526857591080599094989386111011407026901973364433313162158428071831262283840515212924788725844603686985312297004538473577925515926474767809446860556026009258271642744825505048485977528755074086445162763421940563376086210110066555867476742618981089471789236995588356590209955937697154341640962007527893622190288066939736245616882971361504447922995438865477905746220703438318483921786572060159228711770259867597369070461432512975436183605401217603902772802049385611224210427571204316381430745095026630200582053809642815589804252124497380481272777681749778963551660015702236504852448448378479335134037880911116711829796176982876495476675539941224632955613423901557395806999764785837780251721233045537462336094025449445891720323251588355648837057166455220583643028592953493147161883545339544766233308619951965979260233839351475309047044097407036635047352561551161119122655529318769795820063391944827366745494328626625541000536912681974406928336682489393697380226909613959347863771209928697382250795351655718639218260112663619860031724581036381073955687719936449305983937949341037280529832324242414920121473878004251385820098395470303136100608112580458287463499443103715976210139724988965704023589371637178664422512062445528519410064007864937659662825298071445579694696442529403040116832214631624444941455484079019090808914581023460079364314442914766715527572725760449119171185386684939544081880184553373775344417566798043874426937240046280879471788300099658883937800054869673900021535953103558535830323170521486917096186294335707081212904543861536870487249041733133593853680052379020976068046002538814151675725851810998355695545246649798264809282003269380756814600065080802511912632639088494525459426317281000133967376312821961873302301411301195881485559730368112522204601914327546079019409665050307372041741194566935669017416872660320907017765754006237118330309032282963533194961209996984412970819014727724624836433265778003937683503708669299563070700788166124813318721591830599331074537447984498096292429397340663930939887059827859120223196738417412321188640397810292922045325373083678574715766181037136316498592644338895412513529932324963914557350500929337254848785858951513788401326861593892760796967719464236718368902255911615438746951172700742886504275976066155109423719239830679328802886653811384504784843466803018032251458009272427154221157585986442748688868871247356521161927911367318703998846834392226845120656557651274483481402773259134232699794884075872870122266624662396065919203171821785714418750730095792983953135013462865987461126275433645734640242139227424097880164488285483093530028352616224856024949065932636093695855128348518512428143149604232048344038284644406317391527891430501637503755644513848977130977527675004992535872617045637958623483279500586453650929364589648361829848037082234888018141953295962099278758091014121218203645717866450466892110357024835814570619099326638222992321707060485151457617576644448042779537587896987892137423579674729687671482076458284729976300862376361632659142397734805423271191962428315048258203597987593931799610820597729847840150236368442733852008229688515691053097321225004778210032323516872696167263948622749975012821086128113732861571651705803184930839911602437957560146629929556469644914838825842960747298565648793720369152091918128483375777492244634449402036818149389764631024022239951034964487591834947832158854738066076948588777160167496095391147133583099586954416358373340779887952902023732276843731246760505481364331172731709989512544985473420343945636304992847523414268841944622488371943019699029909889136820489438685939650175350611996970727204303175988527284496160016622566945018940323100055322586112806987956421420931604884243822100728140934249771158163654347634934420050722469254499147640956842289629913285937676937647338601482084905005007242772234915419854077044728282391740786915055461753146553507590487114543285423245989018201861984075979388561850642427441521588736606263603885303525400115609711378850926035870182465904560724016235094602036795902142528385426791534328049669858122673366870410140956501213798753944187525664335941534915365027241683561982103266459600339184913010744631221577277337860812884769651464051321290298576128699561015922391014018185499697034414777344896434823553076271900244890726029616268738103620793368835161694118430261363640096679742810373282459692282714745414599660322905930841272681603301680045248975126432934485816963313950126532402284967244924576454800361279535577884031772247951730716635722433646190976955936369610343097695259613060531613191512201808838141363040170236603539373639013769829548926525110495904101546961290595785903684214319063687884411405145641853340300118276624395773252004913878721364584073127684743401710579296546068025537832158638142676795453217712124272781191802539543826066919639198751690891664086755595373234280367979978412161976775334361628798270697816982729315402024409844109821071760798614057885164885550143491896595764137607237962177660882117903920872398185786792971950769480591403396014384325462323729296045703507881180608378523008712367810132333808393637383957192101306184682041990319334211742089719382317873656013306583568498095991327751118987119198036119488047998429771022895230901237253975676442924098546399443910983994542025857606701473658683152973432565760850017188524781233827775671356673208710851206460025187066537440484642750630969885592156068969996979140752940025422665820330908667201045594354439220912264266937459555996994939558152311228361568532218040191547987039853327395297811767638479647105266988567375559087962766282845475203784307424643586618362119109970385305231849660431711491159457377309179536279974598235251398786704940086922662851323961158527578077766168910194422857365202921890825776267648877041479039508962667721767659287509729967631268943567965699311719097247570808766214072409202782541455709981649042244460639077253479331208142154819311285735777051186044858771319313129590224811844997719010188080699972130339209113966655625692943301206011257377135376434709109822751811250260871691881122832019070922265412377533342254270304598042909415350049418779181361720039085053646848265513176491392796418051274700248955970770513128149641522314671569393517632210340455153676944384268962874067703699587208020226358364199548665305707091878353114702762444586019519546251481960397016788243929816258126137974946575009340177629951929596762341414803504102430767958408790032372649085294387850712595325903321970346493103034906996631134576352290367770986301283448104155724300956545083778246256932614557319172521572902673849033519509683319757183932391877456881255418376890284275215123358213171019612323737263715115505690000853005626268305941457138222641634084090511522729125780829954886480728086596252736687593095519818274052433876212448268293459811145519909160643910546655288618919874438641576741741319658628639918110021276303763299097566198937133881187853396263228506454401980255054579415695941615950548692952203489115433881652691341093650941814724423992245802770613159921070374144447532843495030007188467758257693836770119389233117406936641669252759061346376318577499296191929709179096139993989908070325629422952419437186295064639577486313505867129338534925025651321055964233249508758404791067544357301923255254733312581730840180993566076019821014943534634576333070986020612126308594202432010627030700256682397063671149568166883923043924483467046733258487971336542797236595541934693332420919316825930252519787424324379474527466550457331736360221473499807171931895153850531216311291773244802041180964766251059679799861995887043341608721974636090955678519590194350445731954082411081404678890121633275496600483570352177979385955588031829249664791750010735407002323815499651228627220923879843666785829970896935210650911587065323955121218605088796281186622401742935408917031346688771023344768262805245892165522281804235625862291518030331508041872538001391819127575864846137053155021284290578774554828799194884437034247752859259110979295822313492890256746984089063231366768990023572703036110318427288712676141604029460304418648858930534310808695444817006320257650840428264912051939447125405342641304145601616656418748954357998602991030090667992992246684905508653937592350148898549440469135064857799133704123733086897488214465756623709223708712249762296574111914824889524640494530474494858370966445416424727940689428985362760596736460939719569042303395572735407006390761329913293351667502301224596780330454649533716568563562335065532994010932304034021372982019413653680722880978607635995233930245908966575460778046398723630010919742223633851817306210872766707029568855407788915916462377637793119800989989526863012735596355699461642970205819303182179984559284893608217728630870654780036168008288346265600582276809335394555818439330385996149786501506498124496905669974898677155135567263539065225654528050332682562864279792105542029762139565045204613709732561256951424371105422206850511560536756362846078674072827542877109483498939332440613084742299476639465997150642399202614586285261533473273026957941795771694180786186748176554522017010827923876088840577484927380908319478060438322183707540489294842621691669221236110606832979986044849448301322352173538974489294344038051612355356643837620636648642771514908747612819049132979061377995816505989549373823447161899988310273515813957226668517880738751703834129168344846698055247554979947953390682438555565670911226174210165840887016201571754552707950051873884668527326873953314606516742100977992864375279875605392705846011188260857226988052036520490100449954363037217915765433457358846660549533887993519883172344972975709518645349517419535090412648352252640455468385732224508169739784849285525348854527945560096866402963413040705259450797144674267308767013468735894313345267431889574490631411368513460945439052191340661697379298443815371565858554475591763037726011028610243495251108109356763015266772447957896970976367210615322197416084508143574016721344812695501828812357103780035006587095141636878151759963548600273815895794944919540830159438031911940546352338044662691577278826192469105465148352051579801036131383980953486394709271211486246420035708803034908517856335070305897804126297331609639360027728743602066097055601249960158200789168462005255523900136206768878879476226800917383863791331077384404856680578106558682321823269927641466673000983644885410888303440563871174542020527956409370244824743251531578238453394927745366127875684486954850561831545303781213530501752019992764139639773201883096811073810875626183216999917483067949047394763360257742121193609912795344103378300674944734446733830411215296513330590244827002912705404442900367426053784552307581790576553699734084256832470356826976681393171358812809030077665393844837092248694754864219249268217248430685285103985428695945628986155775433172029773631957296908821730350339459230837073643555782622082837104672305685611577381297490365208556721247486354443215381465927071784689809148456202625641825384369603712137676233719007428065934368224297253477512683276005130735357974218121998725520712396998529652399684649017166218956146266803497671484653189674522461106677036152191490848490553378436529255623870925674183091733402194023241105783416212547265816224323526095112652986014428503265760452508397869855538804918822937825005808609670248628331140645532668909016180465550984150138166553646047991489192501164816414507463987836505030267883017903995079763259647272842051566313636453791759307735741011250692368093335544550640463342117270267591568285317161433357723915671438339484814105573832498992427653707474239565766813782140942643125857579073599898644460564532945224488229507353496255691054110506548637490777615269894156426849984595279818571061616047316428880600914844511073785285355904827098849786503736207606472355930123093309261560289704632795651393143306034482569174524572434530475949413434437699747905781452929228986280664949901052726051530888656691774089425352384656516672360586176762586797263152536550296298695097301417185476979734845374610868812444491754363831186599763002099415504766482618049517900022097901180458277068767932978396004816167795200741082098226543812690612170005334975136763018831883326509112177599157454534715973973414717638070711338682687976076007980667045029602005686137891785820792639280265308313127225558124506594994095094841726742301359946105028897635013264865278565681595657442870898482005162147003970135846985732803590750605493300580246967596674558360275071830312652391130880927455983266016141044664897857762755575239689302054446409168810373613694674121783563631725625069424027635760974800131437299678421667714605120437735645626667898297564785729592250528900036350844393253619744565958777505457676436670372564857943532359674567794276960686974102829250969332715638882493656066561023456648802075573905169689708302662836065229295158142016291683211358854917986202252338681871165667942345893009063274816845310754214264664776010720703057974485928143914154548470055135592428678701622228654762980616957679069602505786439038254553208337413077472496924242383333296271933612562312204295574212995283703114960977091581041662162655710162704044902782107838109466193816340020963149684111948955429115440300952446876102316743813649276099781776043565915360698897631585306219029974360823593752220865246010777215983682876731172052716471438019960404345166474187939513951180938202126448136360973236007903791893461203263633794999025347286888831539800044990650143003823926984302778404058655106984892720727089514798422661991020928851058533105000717729926306472846502606934513842758232691751381182083180985750693629892627199506743664073290517859118854285853219507911441599776953810232398465953900283453886072928603242933767374020336135326891989947364474025309057192571865159289455410633669567910051268742643745495698397718945107124818246256025926235815589976499800342766599979485684610812733025867293289689593394270955051329599708466506635490416615503820168812120078805183816190008036994823438312819213194454208456232480902659484773976869502739274051533068615222010923543935232333924595510480326580046096496618690360750308380750200230383228016996869884293115686256682308666179590632584265415764057607147340819312843045501410530563992948419733453385793268311069513002181401914150150986202502626084861451182908541650852880489904297018160519691762192775991417692899102067180426220397488319845526896790050573326473566884375650019205321269876170373510344886489102650903634575051208184563345364749869169950575691597747204123382603989265034750484626897595580555937947349510731077790700127497149803533852001665425158912129690568816715650692732872524763639400610079090609136237518886500368352661349036976562086000709043689339126688476026931137493936519327780843906933675278689581323158300319304069243501433964846616711227072145308037991787381183077336131824484865377973881982459388445351159715378605174405469700219780774974015397676036899656702315657355768793536840833324108131077907841115980551918591839574436365874419770432468948263797130560257252908025712224202063248934269295047144100555715261752798322867444573913065576226386140104940639987884245825800248491784798560237313243423266613997600021799547767728724178684252858072967641922815992685883639393888498671508122201645206646070228077631446334105401129613548195397338560457757414316540237814604136005908400804380607433391946983710214515758454969828666748273177403200961156223522878060420384497021689245424255766846734581329002356815680908691747311562731730806666307319495929283880951822024863153148622066039692343306927038844841740678668939991174296148914866234146492859803230757055670116855199490369602538509511095004186327101069519050668334320742655037594194857776659957606460235610649733830870944247167236810851382516586664062454690981699073313386901446369134425548533739992177759761808716461388878810048360550801415722925249831627759133597239840649170228254698390456200809677835947489145585522117599633689863397267100790099771636463986942780574314449785904355550397634594830152206492795638658035785925954972044336329979683367227983329366565016491978094479031421204303625235582192132668525827406194591684999768170473654531461537457844992905778171983273710589044703691769304208358692278678525259814507427574706870762750275628721606547698331005069776482382543725854117644090038623249605134402870774178809387922297661371992723191321441383088211365052748458274793522880347661731518573525551762521444562090093729138434962583640361411541775828179804853857762321777169442165791520912903475287825897554256605163098421459646336118980504883233917351930275716189613202206358493778756596592231966858963374081124622293901283236004427749758884004506117038004278183228631178408767768112813190501938063562702451912195208918043921940201224192127717977123781125893439453639796088335612927639127756520993673015633764799942261161820530253597882622670040005064109866828488880545365228143843596042285726902425424907846083806249938345748474210573504379037887293871392830932984764904895850604448968168213009295779581481856652699576023009861959889936064858909211967466656681805475427972659427841117770054946810879132522718018746024705327521861289489815066039003068335797642393274620036725371684179985129896324335946978548257567054558024527995963789900685790027390588036350433948943789863799548286435961249511960884419635436324743754120120259173241885841383080334066840551391620873557354159032438476091339728661743067825103693890932879208887008789596645493031498027866143154305743165961283339859830518038296385010680634473085847684977563967736288657245873421560567914039039688642356412527755585008715388541819711761918901531229061499380593939196778674669149444400889394805291283512692878807165649169101641263264480076151015686208080961116562975803948982521009037086416651171015868264865889629982649515421127327424224441029132974941411121390727959164878218497634918582443069264766910982570204919897093929514983767557643259795272811654591563922550121119599558688738428006221250794000306908709545881669851239616580099319890362670049713690895051542261967208853055652778848118834321633191320616561640174036924868702827130093087241604095186093143178384945924003490673443468138371047854084316845100374397849901586267996886173688550771451830847506549190588762336440400212636972594912275597372860643424598754436285817157702451009951054013234460216078508755281412489154679443533768506517770573004011131388556749234030575945631084867063605642940523750198709615018460637628880057433690482998806657919054898516742275735454273557786723101510124764855253132329734009606806401903405364994335131704149333171404875881566560230683739536015006146876499206222521313462630477798658781901373521842368136850128230902414841188425731406071827561758689841720800888673754779527379059593102800732043950000713152708154791550720949813037209648037750397760711368252163485710981943862319177916662044389739515316393231824323758385402020105736993722213525516904546874104638705005159421266572259980748939386929142461819702346687533813899594418683909566689127562133907961300433596512720226617614520037601632683498780165783724591783597435936453574452963033545480922257471742533602007634492743207479191521022009471801036505755574569533691718563350496100559780304156704889753602572596529751488951697491058361194781837973043492533163204467638758648527437215532835243559600512267908613969060351092886225741095400719579736966207548743649631474919826039543840883680602151379145864765114260419624369774040195857493545000626469972632298203629745804758413531523640082378350039760692204777389537154369923734161530241150943118502784418457396100150006947934183187143973947470250743514844933959052124780492581038364493869356108213211421701189535732006161984761973396921334423387694681396537392108334365166118807463814530347502018626733096126228302908227875501725871860150882303964948374129965881076435063267179033451421957179927101120143108279699802968478130081521983130389142005024778507437779800662650755682958367351242142704540004481154311831451908019780686957069667659892910591560504481330304181963553157567933600415665945482567155149017502385924731346738076462736441310363211670068273093518128440754521645117312070111188449194912015234973016356075322359094975465386030492895753002800018294238684326130399522236839205162891587229810638224706788509989227070638974699757502946847225778213782841331713482620336810193826378434621104875222957620582954912017789630170738296465728525358473672705328200276890236929291420843828034859415322115915982084892812160141226799197967768801239486966568465255099013138885175961486021372477064428436968438140140622165864107480984688895231322342141699768162869353907923186267094472744023964086146991714135136978745095261670421803175960392748951374010434119324325860495042039531978552914820303768167589933650269198941829233717919141283428041262987899296409897522465379898163207959253204270406893741513474085240787501159500925554943915358380995188713148681792786942615047695521405555234484463634260513395912224294399671869993493848152618287813070881287101635847938246256763578894547665879050192516705188180557244276398432830386181889671460937073812289559347993674283344238627840765314966439583893684641410504244689653236282588470500111648415922199710057996025816436021525932251363770333299376542763061072119984176819300222789827947446991992218990038753016639126483018632881024683763435377053757169502461138634962034833459367219797281700599021353704194373268462936941599105501617962494516362117120105739867076805782073458735124103901558881129171143125267422404799188640438361382847898885724341994388383568196925961197987063599956349509554251047908608401259357679720396304304464053340139616881862643067312921956499499906062902934181383558744730915997341541445244392140527523530069577240177357181223424830979333369638769976287245375821082417884505674782092887048106309010025414640779209499318085455117234084337575900814315995584039696313501476717353988091339186166073894022287127505599700235955569108169002243580692899171152427789584557431609676303581645361023435308806268541239780170816922551281119495693152983919557694815086796850683144108261198628180108339343595312124610757638507836601439095969118378748328964097534581536867658209390576670406663097762564103297979465458936180226195805622637812488104156439514293515683961727965366741875763357624287613154518286038034534506268822192175700607377797914802015821541480540981055522536774260006079873131597628270011164272943893119805071580959707717563558544533341836644299640166748104326229252897919553950110946427479035009961304461745567731148933137192260120014936655379660929097867766318579077414560460689084837040391342354290592525486165654226746817211679353838409355388623203208397804287771421824848392728479222491763302326599101934200197679992077025197543333177116415724054540805599519600696269061685559340310560530746560384260396178501495045149689451703258382230812533757484859312119413759980454621022883390732284087030532422467904646832440082728580932227300349929073024121854152103417084075090346332531242046830063208149121541917716565043121618442153294459392109951979152281039792807578388513561576102130597538632858974699964856594156381730143363421113017142256478125509420804303810788578468095367479862115600904222410142371195963297104284450342422873073417511015996382965656182464454234807774334090942931119847128535373247063159416490788199112404003372089023999844241000884074713986953688874401605213681196064663102400754847015336679247747931564574440104350715626495095615565247463211235302267780179929864829414719088500628635313278447454568480482699829282305962657180955094850735126187530397712045116448170000685803298105923882506200565100372648101605344173753886497642294192228721136315997644096035056501431058649981696123977705403159302460531009662223784609637090847842133930772158779861714662618851044806529106165544722279203813441965832592657970965553980078546437915134530916936013572914083783241388053329791650882964545019324649453806750450181101113353360975990042217671871013601301638029615778911708253805365543977059801221563025541052199458913915071645670412545621943282289369465396059656230943505998494346241596641830630381010374069242220401629736891621065315267379834926173394127033987481534358659357433434331987158767442177492606972977203837283495379862580403750594394153436516624391170210339504331613764283640574868201152037580897846051322565055049384222537619247034583502277521061904298929563479056682572956052282715555846277200794181935440082631241848594786485658898256679905754057397740630910471703438578604372102647617063462414634989101476216901678000282374236146685853052760570734539129662509601417239346304717222755834444433985832720784924425152416454084535943031831207204246436053096098811079583085582094464218971747722876075896680446137172791704556874616320471452892149356947201278523224037415084550577606345756329982268735645292121982177454862293391887423660644010692491894912599255264949102371423921314377037282542340473126487319157733752828023070201411987896383948056197831127369830052463082464798323444956214042900398234839620705467500234248704106515364663187609722315942141059739180227537872585666079731055617354966826567714006077513586595830093629628169306288692089139541677725389839623364003687390816847553821476075716111670886024164816164710400659608056639987605056302803846624021028014254906101358057541339632616530314495993846135246055695733095865585839865621851833048334636334425042444886448536939944418554585682709872831531175674594652304138591497521023695746384648530427726834116159369978241609005513852759753120302243836110566821652236621227780102946700491371111929445419895498751960628444904421464677974480853025691187212473562672809357992271251488541922036092511859501453703363133254622500528060944736281321352258184415131540626323166878161252115782289585989567743145735177229816413580312563647288592650471798998122463592016595982195577419926328290241964998698484093281362285649915392560176483501818099713397729844815747737755767140070194128554764276611032989746354702315903943989533147075511242211756980012695406473001390285626845180058589588363094608152606077205483907103087793425635276867536195546516907959219564491289675116139559120694350837896351652985305860890325065159239035956309735538892416501011114402887238627781391044709230271275776588129370446669025635068475369447098616897726226519487292187321134021328889315655998094145716119218474414503764856545089397495363539384024021277284231942699669983579591351918958393013518183042611480671904069183625706923316673522924147315178836170812767501452389371743779044747054344888087487345835595444729031536261567471848640928423520012082069858533011304135602216010639662558335354692374136966079482125143270840981919288854586664100172263511665740586134844960457953767521800983986116625112405722858561353854019377287045471576441409465634160509761170828759459201881709083457599426947633396701633549242799528124643456005887125601975400734318329349487462774803504001461734284310274435642737795168408118929240522693080962462471613969342367505502322805009648435647910176646007616336238865915017756777125644645608001109146928153705705909728191146701357660974695581116435635031370041313054857498559366340954665778063800309808926112751451954557320113228132408422121419837414159616321345095690613261532903573069796526223917160798397650094024022943035967363558011691408043229313467184797222880793048553528826537739141356849709842588079088831734920122916213464370540286439191433098353196050685270117683998298180287926717912275579382079241136515852108365263938872096474298153590867991844609183377785460162666728849803771810345656894043549870137136456462512156360599754777648605014108941851500742555690149138317310138771532119132763236221370407259071473672511671501093178905716900480068445626465339042357724658729754447136121331928722838531833955493034913260407166016251131424016419162259712822066019594986084520373833527487143824296663839261195330266825558722409080981128707617336799842952765408934116566929319549407755358585468668355651569670994013992883332610987424601697886505865859038131498876082631149732898374808245853755244727115193941511109766330102073976730832668994853602866189848080404950854791367111757109680939831117738973633541770552446260357111689719896358887424103685682693338276066555521989874694548078300484430540200396944505414957869204234995162391501458024327408789424277792081240401989935412997468066361738128940627246424572163218716455233069500946470935253658607337180901602983770397211250421806559870409692046146091544148767562958982883913232352601123266698890589461108383152545349587608887800762845348657793349673641245769195601226829809736195247506338010960648823870795771345881023089031009334520784463778060810577565302195282264568550311338042765176273978823073948628740196658798903279128556425165547843808842071905210261514708322434434731366224653846365375495122651244613855995411418609344621361238720127533538295520401037587987366634741263402109251242227182074588901771052297710416714508194780507463537946076663535485893750158546448326186449425430643143544262881540266964577596456985097846781519421372319100014857520524860125559640072300302236689969659924501362067156154090193679821671921082262760530111836422029506824055160029219110244920792745558348739490009707456568202456041720471788069218542371927333199728491355942689777785179429126293975914460190447556569155380957543287220701401316205055356726607234694751479997947563756239506502521138478427709689263045235733985440472254214436023551237173884379795509398505313528839520475364340878245215007212566296154886837310186611895095127331851121976306045134627670169156928917744314866293950255158005484987727770976820273704587508211262921869414160943597600070850484806949269654779255561554313060844969275407925454168867318615053670289953580430731553573131003473960046155129205322213380605224340828145254411244936332193212795001844470074682816995106157268615254695871192407261463890516708991205187539897485172067254484744501524361162290451434575372883546739097951951061525234408494590429362633844191669061658326939641064114422771511531766423814159593362916593999072891684285801050045251078743910273350869061890636423552008342748683125931638841167545711272641727395054038984372951285485308149979453440385437551253863516043503803815060617241646465504593279646556176549578841393808214474053873927119451380156508111857525141228823642216626757321874174861955172378604051286680506363451236376246876035460111759969462486994431267212496964309857985122418799606245795218130415539439853779083251975422094782206104600744299145581817490876855177320909866376781747866976137382710442396949963649821946338208157710775112837764534445710910328551222594828080933283505150467765261296871929031751716183996491185229347648050552664924861633123179953346926097506064369618411575242631092904256745464210320188695316206888403683865030328543220822525268762635567107711373591651444014352387218216392647445793026165683531891526942333404607053457034987651624926889786337069971111197582635279646692895451382435641460583126409734502763636487162636122681575727871643877419244203855387323190228819361444666484484478496313587829962686734075658761143126008706623680879523915428908068483895966643667531629997629735156821305558636617029574030748966383307026378483923129649014939990481226619523490021610761280906076560812800687101492298057312566426810665917988022356037176620096663516563555447526470184545384804537546666221617114639609840359778657237795097269252463757850643359346757126519340236640643945749830493652017282029916595886843534910743128135855339391619747314917704716265484905360677493952220174923610381198749080836593172009403029084582825697472637635768544094044191189739435281072255607294496991490832493021827461302083827733246418141192485128148916332807039460347137052676280023075473170193884140368408559372377850135972158727992572584464369669228038033326153259291503831662473004058423517262194945964138821501676509976639964914324055697609522618555428486108045153410207380804858082123839288344939005634135460948245420590171141559298153789445094765506827275479192340611539115708613103015361081601051922046346241026120055088913291496226528574847285583485183700840325968129684744080774587108422447633751166920416384659156262174427496427415105343882490772303758202438471504662866676033835860133731342401828909347329932991814011871279271049728770217616512461387649843111922767156041109983150484290984612000567132090463862436795480206461203310787172033917690849307601476185907167223653839949160708015881318857443524550709696983280405340061772773493967940927181998177524783435479398614306625942871054169354438321906578117000910109425380388640391292829907301033652828119372756337305200470387530285275196014869715942705987405729961687517045869672262496700346716921314709752387604016026112921417295648225804362267388083405698575916429269924746122871131755095499411182997619518586562794369529209647026764302573582933820065221917843942397482887605222508103795622295072680202979803685939537834879091984019025318552924322731044371646521085943151223214447012974654089588365044207599763938248738212534539779291470477176068952411298386122006619288513982814904067214723843516395261834748516957713445548928033270661629082985691620253752958564211750524663169418147846843138427484512873390930899125505330879065936883134517721639614798035464624708917843726288683495823605888856276228603475362562223940078977094763876689292312516706760507547144450393279188714633472310099888230588864293770255674761267613230669428922163471724063098108665985063295670292784435338129388553649068874484820292381070494620268323287006967819436129735769908911660519122235043820341181048211018603533934706917951033188328885292775393446596666293121505123877217581199222553871149692099875846823721645884241486328970817292706047593384834921609828942817958264648055936324681193347713528609934299253975168757676630606654168853799492081621494195966050524537432044897378364797647897287207759495016212409035381379459564367080396395818409244233109839226858097374811581811612174114183915382546756923889505881126401504808460897372499466898884424785932474484234064214736777577559887123759218554181645014461910456288803534861363304585830340456109254297569030240163499318610832760974332958777149330391263604660368114952966634625694576784251972830141079791631489431444941853310118776663974575627153719421081522771874817394785999444727988615186391499977651662868063170785245359512820886314075682753030141768213798628790350001155862939725389508709861678585049840896744531029868295410287565715993099162302274933176890145487965608262823127291622543370421404473674285464149151683975457788686914957046671720879384875611861040090469785210710690274787071643036226869186237401249635052073886905648534456665083560498288836617625240071089042888778828209803804408390321305864056128832619660340908651164697333439020400927462644296734223578766660432513820434441786338250695923842069557820867691934486880579929744968248386847908997377786238698330725455903563055462945415617116520935873562567503890208986216247069463242848806952576804941021307169237527204066302256942108781686591802043358755457893363440687413206452011875448247509170312033648725871818211225815527874816007591926290699086597235740517115088354282855912138649932668127377681765394327747124137638730034153020539586274951739338889356601976989496361964910203970911875587360433347272735965293647582757564237545496681760088812120544829608035261715248816502462355864911176448616514217015375920171693324611915106820057951547862894650266528316158027719286586434417813803422562756975374018189210529888007413000248890743103180651705730692311155819974796178853863542203925157980760063788149215215434682134081674073124147174379152002831108315666661160064218097932116059085408754665544979417362813217752202656930910785907650052256143112435357233238962742944316305201612879159936175035248035368232516600458110550419712209991918887644648021659110801708965451843162887321474830018659686522256493903091542085526162373665002502739075980343731866066137477015826724805106868385297712266379984757132488576591436999940805711267018963413793105409476735103968516824601020339493390706645285575405728920881736234395562324950014285984828030160294284179945750148356160810554929183352690960204278593847193921213129286856779499853806038271622312010355392069329213496419062770419132073307044830316469243808747399131008339798234917852504183505650038450983344910104354667863209629055323725258748051629590076438407130327921842232582343624238540868448621615335734623024843792273363696467503316891686214800887402792833957520279981723419796209959211524799378859820490965894764478944425904710017574560374039428280981441897802267844401136867244473360419572985230350818457409057462668289512021951010531021114520315877240935327580224822816259432291903304796175966360466857181508293326906787068295464475383484499012184365355876429645124083709395734435757798781492003605447176247232335209253409404653015426963855599537517884130515010910000189883949329039831076831321886825578976994759008619500956954003776847038186845484980786113084945967180903683077498291062579055255793495928853810092342330939384939485176729163548098401273447958688344724219705841480169531083857126915849429315329501594386436879923558787536237876673537125994366049021896803305695192049946110138536133663256283380183231029873886429463158341048321081249610141639746866121540675097087338978424895637631031310364192514509862430829667913289470145860118749562676141856581469913449783669509842974033779461814868896177408541299634860701525370095896417114668821194222793331608133134689831103655925941002273309417095300803681529863764108365388143209541679868771077873174143649274893565130552408722225699766921470446188376345221883768293693089919785718335217195894220734618642148680599084064466416814984475100684974184437536149679290958326785043545905009722827791942674774211381121822776338922254636588349433490082002668056853983687727526017777701262305172156519580918594587650502169133204987265303264907744304586641013456781469540757506277432660597760630517258023340309528561583947481384467710953851744273176093927279025698559267056508791215588821137101613667194895750024507583833483750497975397793941802379890507818923896110570449382248093332045978171403352525259268800015129044329997750815999378988518006246600348803396374075095855453372185782603365492638021271614998259696597867781269115760941289879192583573898053662291579407298740257529902059223344020606371527063674686317451131844972812432060553197787689618035663121563348136704244304949713151468147484325238409494902947644635170436768955621180608070789274608127697773247469162930038900845436790552931347578415978493585318122399138714191913778618448298106700446745856912589736258079436414555193118093815043573802717846041924468197976013537548501356649368125386712700274182292969627308549720247485436809741207370471498546171040788784417139258287995863222024908106116772539241133322236766781483383466744703085407338589278458518035271986051852531085196412801413717167606667079249245943213011305719267428418855526523080627124343402279780799725239195382961821520982177297260475141791185101688597321768890925494256905686436731036702277804336138043381103786795130196228640072419644447163556230999251831659816236960157886787034401962142814946326847975673710012801017359309297957071609581647132746848986734699024466699503657227918524047319638444888549911853204197740979867352414280827147034004302968307538846449758376991178619609905617334538786945070712007973516314529548693474530222905207931443425644727593712608534400810091886429877062800772044593749090727864966941021513215604843370749776082635253155449769478909087785072396063996147056856914923752713693099262608565167621493874721749782941010797703702415151279507958609876617904874709584952211972876423396044871491352229337290001912598665952951518492440915463959475588452083238449246308192681752481017669899161600332680241367818333238378877653204561700787080649861362814740033821533826908065347200763306522107809247629726420379555562300730982359578837033886244907717108875822280048638104400073278024478502630054331997064239547438067066980187288959598083668351318869324864551726567054214757141623261267883801461088207893480435688377264352506859673146747348654468052679814121248954793530675025475195015486496357275184545834546611832897760224688287625645062356035385748997526888813130045542842582558267817632512144383050880865389948169857907154742625647508016253435664703589342853368039269341239565133416378966057621164506931289898348158264055331080031102552276017271094012039333551691690129462886604521832669364010317949885652562668362999188158193345845747278916138630470819409923772347434943634570727451608372490514387366199509125964771421900029475866494864257573994576068699489676991686629761133407758041719019146752237764731537028442006336737790337287132062134848751505403080003820605457880042572680122145049575009418162592389304948383644591414272795545752377300607323294978017914303208701809314503539849029858534160366658816558491290131517524872230269842342669330572193806380206219398363797401412362764907551712074161049318252104362511302690517965099306291301864273803098859487960726506628764815690754090519675198269127211913938135555612687961255812322212958291234633832127639230535094160695498676374272299360134097590293518285184110255280372791597072816721800069967646581602884082928793417977749147607551154962855637560586377224451387142010645012721149083253501228143051598013171983204232381593001884871188437071502695068112883669611563352190046697062668209296391517400262479775153324490710445778288720643864414929273922103923594011867748344255923182604740778967892597473402436653187018112323801150586327691493721158721595783964576600023676776821539716254896491756940925498002804466687787863400850181205328646393398574262512119526930819512541067066795414802948103942899723973265088609897895603995258899899977199528418772587906473091399082528599271060092106929778504191984546353263956983561341081758884803007458583138674391143333495628449506857308348554884881239361883246119732164294500965212064106194347914959964038686086001041296372525921404498689236886944862243499423794832343748857955133207014770016903540045926790597653669995005460037589056526386746079066162649256671628433578173242151463182827649367195657346305896549470331891909440868500763783384629284836361821308663774961511653381412429143043585862849533679868463562190594286367622101788587426159175136079144381877712477520427832228138509026731764978775957528354157775848466024418821431350234219221670195201663602146072464733564477114886532414992856765503300843040395794097661679041172861533969017057662372557035255944770769795048765804627985147054161961458981340545112911705325323287858265740910986607421271809740220033259768717346173810772915121447090448610851932982671709020376021180955355626257979241982337667679387727593265432766202441898959905729467872120340725299746223545900023694128137631504091334729195727781102799500123629755330186527737735728030037588338219181870655226243848836058474322169576866791045733631977786968313867534877421464869428728156190831694323139638427767445649372124143106237096306121593110307689708373785084084707447149831429711113497138166590556843112577666568066034899390202282935403733976314714190500611857264369845363094311732112919339830889395210598001600552952959551247752475378255292541199248729644593841038288834977293224298966594431275922584061362399205449320737345698870046264490480115089702281133702685501864744628781473956595439418671889917511626379773632536264020479823875050821054542141492853084054951201751039074220869215146230551178738359695445863692054862922109980903057268356691599128804683329208417178216393963672696566203805816804458564455152428769978645294329721663139914680114460977536398088323864859634711756237076734053133526952187801358661960945554574994830412059883098633946818165974036528012024524247011111616133077943669893219424425895458103313153834707145020743810812390205083820571455996884672527670492614866778089639311851131619553010985122546028855246234391401539150062061348500255242803787704970020986481412808346531051998982248709588761853379685049403116532763517400729022419063347906790572179886130455327537965443433449622105934217431122196328451373698747651929615901540349165013417549116625516582628624721007955818460633681139564840315039505896219691278336488257325613082404270712272462446408703887115595252654094225210968637331363790390698723915112554650633148789227789409679647959568557677356199420572502336643546728834120370645000016590341360397667815431232322039690281670756278793902032906186352330586342097879434334750152082193324967306545053816075621647634229434726808358346686088437027103104163305570261345151128764365977501352753923277049685607274014695620665432277488879801082173763642341858833175174564405945263666886235958881657498611781334870930013113763654576416673900920435257412033300042688391511834125755927176984529228238940693384641322240395951539071474741891467833412015055309131732924076096301952115909314923777752652656230606584101503612687810681337658889171688707977683548216007503559628508651684448719533869659132695582764985679747762019476687263796047624713147186247906056379950311679943394302501991789819950007899221279534094621983176831755438092331753100380788356929291940662727149144251089706486990378482370696523805278406267795813812727638425531706228929025192442143769365883135264804815892660277159188865788625183635629454924290121077226825213082921630371614811190559699380570937711746289792703732338840918593266910003744448050675755799548058906635525932160999530172357645902826376247961055489178719925276389017238613374875574880318921000368776232802560213538363036327720227807144098155327968791480933901387746411431158527736215793182391542424754517153136643862372994785600194351676132272752648972124006636034303747768125974521565331701645564141683670775888950366444111968567607787801977673059836357444359535695760557752048468075495387710688206469254247422444710701309094401899056866741947000336028799004661490145316038943470698718245628081191752636590021035357719623552511201155288302411851677417728698048997978067917079815566699953807611877733294141281890431136243735173421968892566844315330868217682961082027419658005802129586354226844330630453081281129278781089706770769618517018720954734779544572797535491439682650853480102133557075942950367338339130301393861619258586422774913155713812660395939525392267939080469727893803493656366473757847941920411883657340101073833228539916020254958033156523016293162566611389786866465888647180273012433499344608021338408102638366825841022030400588593445631601919165130887585206354064858467863892361801025022197422205722530842996508591589258041692179248063593927710702028737030264612819376664653700980251823433067052598108544842783901210453344788353593599936251594391252604756939853544965370840727808230651242893087012086486646642742430979687962460136051818922921522985769321604504964015716020433167033533084443600462244391211461514858414456681499659677264246609290783665711285374236932645454028077749354320982272361616449784610449483598133720684244075759264836451893397482422055790208487865766650854048335097786323426440567814254294075500898202597370866734615756416719434939118103787183264477759780116918470432110340552207664564822920275189936026546001474848505416601316294066897972009621918607805951811571458174195250246148642900894913569562092688882018543824694706534616119855806807368960871909868867651208470811540812399114896156050782706133278901729005568755769175080750068236042220382596794300150205631406423575231595751375096801164976229484386357011533304099145345904390789220227397083032396322597694168465599281906297816007911041843404275992788765544220517896304191372096293676373281455329648914456684182710164373697250686405897442668531866365750383167450558075492460778132660276905469677135652219303873654271408038348060228245890589820022895886713482423568038516168917993428307942528221127588016744681607240282542231515833192061910876044841587361735370011722467285945260513108438714804439491215114030548349867677017659907923034881675515576737502034455639905201894145832441246712480094200029600735486272750083366324627251832005309208568724293340574384219052059941914643049155414741873978227411476844455434748090582079470655930267579773963541245305018972509314651693526742974120557697155486850762627455167107081121656745103897134319898816470877770880365221234626371320830249170325858742940205206264131384011214498218994804004872883293390043952741550999992710773132196807721154849721206869714354050632364025723096324845500391033638615392600053130689281462166523264325872175861302202223567900598480750695777040847890442686405593715525304445510660204470306929483907243271586089050001776275343994684573192981235034096654202059806746507791042710344511591899888759313625962322770266820658224910185996311873501242396644401093714267011755361156375537140186830157159781413269616428798383384759916965575701435989195024796837957348676276486177557831433242500308686562960418856115880124235764772302049419860511277709146060325255507477110303143642431984100258175924809297421673254688122502683375495354874934569131029714169586405788415000397247864094755430156473195278635936282366301510912528354645351480849016725923122575783612523934313717888534201654306951532078361920532244723672101170012791827063832067008742310915005343456751231074749351106170227211772245555745067574962534125802102996528476903941727162737723888644930459945409283057976974486717193235838946374480389283419889036949377907013944486794771181192107337058022322549956790986070968049459728609480444882011234531200578252793405901342195609489617230708233864550491615802721037767146300431477517052155850846874991689394095526266047704296614663887227568436273266590653021137649711857498688768463147610544578213438188083286319886235758916737072348210544354833665866660923235824021856644915573102829123350599276321010329202815420708256098718469970450000802291638713943718673615263025286728700160068048703357147097630013072872527521821535203619962552785288337140610928019769745099982017697716824501342198714845151931039230659242197128101354001878999191985633764097391901465509481365330775969434725812399310327283601188719991334589724013890219812029444575889893291896591414356499092615794594020975921938042851177300975213637519932812685958714151285815981672773521026965679948641677098189563498040209961888846898640800243033406560198268996315703950514322056372229087640283923470051592396440859329893482062305350069167307731705286744632089353702757677115028962700755443319271470280004071112098509112644868938689089747322288609941420759985626403746516080332459650277999426006174380382913654479076177183041205237196808632503424835702107328801377484597805192487382680238958444738676959103673584840137476465163011811994646597283804542859220176567050278525251820258020047110666230002826691684411684543161800501287961063411180532299236893749095585678820539642374268749399612094688549843367937055821804416488539144343185088003767685400432674901528577580478712486166486499612145131364279117635231230481259152225036079095054646717556779967580210943435388633879061759597890526061440285422299817408156458342440404623927173662322209425788913252812183062965729676876564201962172702622018946464076113521320617429946424519034509172649729220167744765795935687250280311543654623402798092177849910766930681483785030870733288323427966833940244926888466332649877416498057922253920627836010423242014053714817638112695605301090981723269315185686897263491761726625873587306422262817435048579861988050944478874160755827918570497861277881494863594548342700010782466210114660652972706672746034661103640336875645849001576517875302861841358999499974639500051723141410251770940298534517050617900882143573915186310489658029123864024039214510582912373972701707294106515636596652628306931374361556889711155926038130907766944192645492311320934230356562929880890720457400244429600602899043935022253705115098035824928846176089380924877054544365395003580980799386693968308783563559076654702627859928750547449331935390695962652699851596202700324036583027039260046397240755345189914822341456954354300267482603044165864736906481971311517964400219469621152321964385292202303518608093762388371975610337473919037723488139337244783380671815056076288941333292440622516213672498364262975318467770460446300567066330388750799332770658173424747905132248985711109394984406323726968274537362183441403989918678206784588442989943980512524187912618231428353734468645123701781448934714087771179818491386824400311233909951775693873353025457259529485590865646876469252362245210245266310271043336998436491805864180494684855533641519660298531887688887035925740699415686492644536113143247666753256335121491336521651774603942201990896147082292473495553090658259896012961368256833184649082730366058947434908895993737143092953375338981846434885550567972220839690698228329359035901905806624495797068650683931986319803170641390671705871967715741751865199172537102712094783562349794732545317005199986303203413129881819130156526606661876025792159190179608440157726246298158295676720090817467889696162920396568008875097350845374136514080727621125136665073407690642572873103534816449523213614278274534959666777164177384966193501996747625790952534392063198840191951016202682875697674800863367498460903410748135963386475934387799790850449333957778486928200600747016741491441700480640432239722986960643196462871298362875111445060346675348066576343983172872002446064435288169246553893381037939595033403435270766956913629023646232916133907312809624188801944444688146568143729624150887866760810303094427039360254760652017657567285180606488123648944739016465477632098503209042351467845986082690004368165352620282932436846687464881537144616555654381086035892108176140904664693275360070861275980740640307344048558767990469466569556378394902924480408551592610915129227914727491663277592304577120950756252806053116251950642216853981414426147694629051931535916713527184447002770188274743775791133456647648066262306761864917226197276951230791014627983089631259367546154259579762572459441922418603447528172227306431078977800376686164222575213023240122295563230207661251627045883723723085561136289655725018745018950403794509862538157829054289482644391574927122214391423572718195182389584266452771152080333782359277135854799290382033119196373489690691453607456887854585425123307848728278178088281860858074611726822119142463249554345740636337807599020655368432901085475408781078479479054459100079438231545538076237458002693249171487796768584647104331833350327195145979956870268135677716154407662209665218798139414867218175276151129075944431392444942810698733948999299182115868661906654597625272754016393185010251673953737215298873675227660310958872111565051445883961990844135174244635772630260140304879724791741247620003846444080796882224802320414061496509436907253576998791288046099121758496664198771247335865829805420859802233960097804047551239212665556609475776072487867841280682942065364765467907853198202427169494849847512376328495980709186399577291870082928327278357460926411485109531126060555167634122542680632873298573426941416520545047075784645868643051202271153098308602068361067755095593114936851998845811844082786424990338495371753207518308493550970240520297111658033311832747254832628210609594063899853431394819038530848981733333931090051239278062484965817086408182963191735938843497235427801528490138177865180707546167098758330395110693913693844806532917685368596631213085324812375848731106727386168106802958278123592231784759228128479946163169655854241885441944701608461872795087998171605919830111663455184920288631304297078127782244919799045391574418851044671471821934103513758131686716731049845180366818937045497540893259943896131549959388529834334410104358828153508050160986810167428996752260855525843828115344523507402377303589784882416082337309578609377302512738945212919844465719935284078048190913838485098666774425540943907293923451021135446266345737152875917559319885261831505926474498589298907543182912289122758382680230918747588390154661201893537242177482684232325683483528975134048387300261685195259057771931687326749729688151629401450048732545726826372224295390183197722531413776940695638727439102816906573741542678281517804351742801625741169118182938901060523978990542991951767860801621054208587977442375628766868530408111584071006972909244399054676943348292702418056102730706918846360026080529694101252981849670049696120900605348959374851853514672121079247520814229873936230958979297071728034013190535317349034586684075121768583348415835173259261659733197876614042995124427155523123328659517450009801383489511119952153685926756988475562820884805064663634637949625303744822936091608762111522019826000078759737395998261958049474296972835388052219528492287878968079545758595056952728819268232928851627181038532755883050354938272260704209633236927267740077189933499565519266721421996034378045885130829324423860130251671293575446397194637191871799770363059023998405185053516036082049381351478684379420511461119535619187401870219690982463963130698568603153288230354849431737609936199020270376058697092567602849556490040990940354030895101136087355562399204535988265306915906939794729568133606341394118722513554073574814615083832754115151331160040090415862359148649783885703502141587011846906534805126212432225715133128048327510777015058395572180482697384133615899861113894979430722799201587837149397700369351950861804702767025170694201025045914171497400772341334683046065157925226463780688312699542699230920670252403168925216870343538983059944700834210184563200407382481106065645238200599032699393650134367610835734368108549869058415528862535447838857197422476184306066834794021377424357487235078020552391890764837398750763409021590403679611536989398165250306655627332160555303794342291424061977855061910928775557421465959069208142587612116357230788275044781445430932352219874548472990929626631042179816213398385542949501998900224374528584587014215547974529048417120171860012161442503616467276773888770777748689701505647645361620681777940903294104549251839063149052203229911479717737414556905961268243003487092515767958748599298285969944503769220563647042866150674199800164939607972190164220591355542123578865220825041570138158179246114012726287167775332563877148670101584985209742446226112189142754019501072138009344650134085108057595428615642246872014554940348805097704135321081035021701310388817627520272640945753698375237021750481590109327007260335693154390310224700428775789568708389993136255146730795881141744481752483077718893760585622699346960702524346952404530852613233171536608197429048926807786170443963258785882291918545303237828120520818570736545802140685195623968987024103166288734768194169149919187527003560895999339878677744671491337803504390814989973731206215249153549424238602483623221607547954786729553356165354299322232473192345826216577696887320126783237169848290872070438984029400276784955663185710973624319242812549014646356912981701070794778572926009972644581874233316260796381630214962314970948680805776104955022896656164327156760691634283677567056952527975153989003340928099421562506376028374556148146922760173865259816965261100793120131478965754458682751333328448742474960373214953008036532546432848662207800364378605315804852695384370775551784806522233790448859604714729122514162570219223788667984613644295935434894778997422635867851612847185767631691710362970502902471719289403302092063146993591082379101162651811126580007789358388003319924485612313596334938254427832886896759690432071160938033421658843691019652125376408138421843550128978669811849053937335491376939251744342452504255751187615857630322695104192567719377104766201726787948915063093160475892356246110323560008124698162018072785283813022950063469986912444469885582577128010223938947829211308695274819075833212969055618362926415735614225394636561230437827787858126819768660058658338823338126239766367887074004980341539204487806896204583353515853292341249886264840592988799139122810638741771910454230838898962267951699175709037281360605772583791204350588112293149651497296911096331616514538997706974019595886814328726255448458023495876486551216549967841775730319395710325319780439540798152376208725855707413600768351800053668928834854714084470484505115977202450698649219810613495503940269354530310374785452995370883432348122495781688789927177450523968034258324994747714562972253762783312020271463247977666075301781033482573764666869748437321976305807768216717364534490638735620464682940977975736664605109046442725197515885829064496055277296443769603742113571311286782126723248055273281476778451274624010325857577294111050825772084635891584289488560845479560181800384342015315369386310301945669020124488372161863984515448959839676331021207822229798525679233204737368726521608856349671675525838959232999546375446262937811950693182403868094132889517668174219662811106509361697958865464663217539894292948629615716417246053835065585057255996086025841320144436509279237550284750090665898053925236250418153597783436264231916442514490547755055354469285874084232155839990387803917279904755716017302903983196898393230222565241587620615634288592006273422178249850853225205612754636785326209223000894269594072744235885335157011680197482079970995145164998778098555694489127753154458135525853705681257898810067905175034056050373804573513113778128873914864734440716191534159186979639988859916415758172068558796008826756109716304371173367520547043466583475419304885520710694051654875198141311080446964480933675245292694810847215789018715056280481394361050304540739808882207094741269453246302639354746994863044472755610140419758039725782273172276585445103700892355044612732851387433267538880579649792384464530010948070921694214333238167842808275605254682384850561576128387148244653061977831023127105330610045096737698193636344464273919462425941288029320935028224613271420559883041325265275856446581419710888390765274060582666594087498680304649752653082194650850580082988546170209814737011110239396596991187082443775066624040935052549592376458992658114075497370403614836908413609268816192399192281399233814626949016299252346103559238447587704350493748100200716063288383961733362500208182294570755036736781089934331646480198804274044334628496877696669311868930800020115746525152203998897575212280356915450015616951054931473173214632413245203051838443518648435198284200983530437182383703244351252431447666836566137276632908574333970772621709380566797790666027568548114819331674011815061273768012508326688987795510908548473267922646183277411922474252426988213846452817388998251818896009568938911203308214117214580149778339577713274480255171920876102648069909703613921868436152404955106535700583316908159862652445551481243874143658688643951614351584559914009704009637064683973079327675566258494656952033180249428060143324767038300005724607407909375961352179825737896490701026681077191864603856394641945782361536694068292079751198195620594779794267902508792669552363451035924271294286556436130289642344940799796364943251204262598070834387354156781048544067033945216294771366292089727345679059790148898948930108291461204575679996276562763065263264574641873939424890834962349648950992090651151399379407387654877884125854878557896559314003149362155344850811298701109342085764929531614665177787095551344062367640155084651889896838140267990316003234361566878259238632129066268171876195945892760812134025078779750084106684728160997335217929282660003873856507467841263280664251784675072183910436680721484758105147631612560990505917706269803279468029060854566593176705765806156755064131960620418903559996098184092713070818236630581823782960932736785128750342012979333608608735333123425768261039827840302269827568021643701800775509424157088658225751853378046964382773794909061263792499188836444083741181541243587173433867657340151585337927785672138214497600348051122527802798090133998258611161984938756271360262825607663409584128045950029187362678241619864730779357391448409800170761904667298258073874090929277799587310304675293147439081746897194953765677207763116048100628741490345470682899383854851999071621876409771468558776655803179511900263381619288622451079534845855448000849394793632235164647240310330169754696115028933583492998833604815042204894463229016664470165717813911405968512423731164200239856608470086684001132172714907588839123949109069221219469572943574005859379123577599745134699401075923689243523049837021134995789902834619987528716509872788719393107219702307150788359919562444953348527521844704896455036858155531605061515827141181104700205011414282877794094507764505645369337164951387466945661112350694658914480159462566933117866143800261408836346838753988239284642971216486085250823052373183403457286881170329441155712879721820334156676066661186429915667162039387954882565154081974915329223294897717010267439195355400268720101249277614753909413852337700045914377161631809952308197798115954069467929055268926320703834858899847580801816352795324456327987764297272612392130921512431332699550543287096412408610177501690178626309101006020812931029441729710680008921921181378183632264596612846013105108006751517968319679567935474721672559709211007399542803405173481634227493003627090182179983538860814899213135977842076230973908983537913868059032549829471185686590457133134153041298790438024968690226187819366411905000010146738376410223989967564226415594729840984220574744767777070671389065598838597475837842523255644294995659277253331547295079997427410395958544689004758724048197794638998112373664999335719178437174282296458891543937277083156272897953540710194862958745440787766185562206499244009443462941753862805064304055547657489043693722674577012050751821079387612848989724304103110989915293036333744469259531434290876724725525250726803444229103534862287567752457591421351889550717925354926504517651541924892486995897291232764566773726031845330117558319508219797858234450991883896485372869823139239797881094505173803639843299117853791923993932362918395854456451285847372973825549091182629536811368013982845253299567911115955813629744429713446648764317328846814883815843729230259183023484266038509145176642151297647624914275344933631365144350638548033982554841204025070552179179161960937216525531221443036953694558901129133181872590236944551091607871949886089527310011135227525829866692659944769787944072454953225092770609551297910889951999904730509212964225794111006739907643413528176313911280676815823876052081801646150995972076093323083303197096556368122617734610662500755974117494394379809953590638185933266988637475374477358117560820477950306872347281255723634344216024939169450574776461190438356315612854928668970295812311031536333509278779513499708054344544168050818292661101816660509245612779717781030993494696924050474245195966361276629342713435889143865835033361421034536713799121879821336286973349642357706918900318727880455938619544941263007265861293316740793433088337044252218668333293340997841586974572998574235329507495991596588270804775378264021864092335402476480620084731105642731230025554436410404838796468914748525780175541897272890174126353730374089066760346640070572829495830477275634858142208889190724856032302655590600050608820902648940254808803724560289573811421088334209637718998965886259972908452223155091802057037162823551502177986270144433895176974811787992812696813903189273572400820422633254892631724434434309429973579813538522654558533067519929009117136303272703355102571911130034378564968580094820111146362232181847524173381625216164193566388126066496703894918672950964886636578237412691553580217512283078993195885784641293093780620186315867228223083140710474080667265110065191565742772762110265189994023684211362459799322568917359620010294931711890105664181181236869843041853286656310644338978151892339006559540619354886385472893830147468592883747815840965557211436062224164077279236748225913334414473424741869886048868481447520740907018801517480763197685847258954050603457812372497899819317190604613659246462920819331393116718072044945706745845877474799109063366643959614957303271269110330673042940047936614044142747905118007386169996520443645958978323204065308166457759858824596555408816694491616889339855103665087232725656920439092704330863590557901316041000853103490309487846654498076406052359878607703082537852118066613818833599448250674322088980914801955773149865922751833400942141766245777238650650761649194454676712519947588540648741472501663690154635557627233738045780824430616657539241090988859427532007228919010650835668828255572707305644796683351734068744404193237359253850175653371016532095492598173446664328810788360298926564058563070229923152111652337116236301333599904783083374336830064907271516097932850954206283405643995719772859563191167230693118476435124887250897517452247132057872984216537462769468943590175093711672777742303884942740017384955623740913691506019960906857216160416129532626750301260597598073035945562772729804242620690243808181329622882786017237473326826205468780239387711495320766521709129079786010359704130596801727709000029609928187220668432860676625569533502152305122080211694907951126645922061508324227801602774435304122007636149420709176492104622213469435734010256713982026390208789372175077343570923566007863204399785771200539426221303341312028801197197002050640442860499556264800692775105800851734424736045691679768118760607317262304830228821560811450641324862796297184040493509034866144036970604532672153165552884941386838419374432528821610819880293727281236858790394308285203157510154290821843461170020355631967726989790418449748707705392625299625468637042836482849293773239326110906000063880563872766398836537312713425418617104303801583752738930615926972142394694995050039438325823239991669053641609297411867553441236317784213245501039598094092806139812081786898844385233807222120233647791377703682186476350589049192785638821633160486903839812529068874750407355141346340904364350180111813793621342758241619618335044902159933548928819347266418763753086807482047603581739331506705776029834060082467269351455283670334090377586631825565707819206259306195550734406550936349043638808690183562233611719179483204290437340009859560094304466222438673745867481099638590898155271427757140436630413127195687576978728473061259662554751246297089473117436235431902498395371614367606723369354556423606680449249833828293325577067779477984339896144634749384058231275140808080040073905953960161874030252165657749252391958788231525642602899706817675643085341647967243689967085033292533841220851783306242479183277846815092868789590330108142605609657156468225043621660153367108950999083887656483042610603912117216875286708483857302982991227727933554283077408248885990585198661723608912446079369542486012361601782701061094070298170941242017688914701210346942143160983866698819931641458495356817476434308365420247491554992360599788139923395048974425091572373222331866555744096545624592727766017271172532082989142092612290039139839850702661159850642717652153593219133434267820351574261555398279645614097736712302493830252017347133353535751551691724379420111287477939136087067128415934568325219133300967444766427108340222156433662863303378225922387726120002057707941261605226395373267437374764002609230845193863349004429433368143776816553353361754925621075631102048526192865524066273973307335028876778928545956905968222593897001566631260213696242559411936732302652596748488224892529935286955708299516407610834781875993520641462062352286004109514785238639960847504596862143601386206570808197912203145370352599954286929164712962862449454408656400642519303869588556419119435712552213953440412541968558967112991861661416060195526853576034970457279399317804193290024708459963468501772973034228880517865911081947336170616028488836887370216850753307302260657826855234980546706485611844292758320587801294905637480095979715679894324364851880239211648593136721301215470886473427457782496129399340244136136994292208662591975198063222805476162795540481158762642310109456095250719901135573498501991255309323237389186057895071999575679945097739587334092877525056204894232835459951480847255569651910400222717829835296762677630026486200668981996838864548484345908869432461301019592689787285273415349191441125982667339003141956294478608814965582468756897609640170267694585327054939713775011270124350449284687923857817214639577518591150517063167407659204822088574063422359498309856992647469793469457251192101293539836695388770010625557403493761082917442840624569283905210302951275079011744239400664107717060141766866927368307196795205232721810079048458763215196184928520859699681842830016142798856416237896200866083385646439847961762718363983205931306527907243457925648228530880570968360475793263718898927227074221126405498194303392441027161889361002939351396513898077219285023927089767257294039033117437831769357087627771256117213270610913966841643661906709621309506435959113509730214311822721090607052243005906269935325372453135102692106168071075336353322043922787106795810419160000992244906552922953634062237169839354209210546160669306785685637568966999708929654458164810723983966738971893348722978454961041391780943512856855874262999735170771385933117429662879380567599516610592862057127053925585367338155142207753940569373111907735891908166299455762498192929892451646878332415853573007453383311260862061984092729976500842773542295852974687278406547948818126246922181543628335496001076884624402956687833665942579932007769712095579589165751728610442714051005126266300055479949825857560743522014883698324635779735664731302830602653917202596239548704876607452321070042532477880000606819772320994490931625058655557201013065367252540761873460839115460888629267695758103487249351596235608713375100634529117955309366918278960209702015151958761906468891390356519932006152884230866358087814019929514217860012766432010259288734356479201555088354948780233358400614266500722996364284977640875070619185522295196064185709170022414599395065875860024547799395989171524355714304515699415711485187510268883349431596449195553168516298220722421211620754983542901708643525036173794875402546350477060325593085557263430543616448392986006070453381144781160822026830535681608796902228055587239470316984008100229205427829522060106746983640574160140744751785171410598836925265828293468800581862034680545535436073758228846561203619708388895809422584045733538923383865320239832333839601215708428834952897965831878144679462758609863407062208183835236296571360915288638251383399926017025868376891972478519766806123585673448297285028512829302890263813941470736016141797626184453816316230669105328406204625319587593325646423174009633106303879121565844778364018567132476175580305182984236734980851164681012191692335227953805025946953735139547902775337624755480001565259428188241272000579629932267222821807577767579857309844723718537410397117620780368276773391729169167595652500450941249036861172536584396048110749228822872043608522798350880704126664373738482676283839494520020649131621664644895151822008602539422793079808931611459774519820051079670806766741042843078433063239407038056522344600240734791840555879321699926523794171968944880403274516144472416519918266656101022225019769264158137033770196782446407952790021531967636365542221308215904338512968377145314808174813590702717841022261139908597101237537363438086827963774161380982973728524804906133565443074691282305636648239653856801008915324641809296370183955093202640305099814017451568421671925313454650176177048254054934301873956132851804204038838956372198982746254964869507858854814889639066354206729000366622817056963917688440560466824123610503963022509566321264826724728914852140565457952623135330986298937244558073962363078042790685260709070778529812816319846664983588599921926799777459992518972349251342641753015267502943693550007231587288507931934799974778320125507222732664391008516573534229714973314476089117422425131528626393286371354649327677762150506612424943833349816833311565512013689628110660664238131285942541258479577397696870701039797191053246850955218571647810590714334461505749131099204783347623639988893936277387857594270052544669456868753566048248785742654093654110415073766836409417776935350413449075889910867241064171121605482190293059846177447310804122008413275295334033483425110084149210789793538321166964860880298206854683486539411025135567930021835962719054556430826217074477935713853807403117804778405113022076640424449216295656580214080898370769000128347363783656207452169332183700901999946483504214422180822619068512026124859701418836839779767302948439770402908183791390723421553665778270607210468606768406142822526875256301665655238934311160469998767189173203083986896610507866805263644449880067370649877428484988565630719162657801289797353156571283742328755177800225663096189407874792268079776606343780655095299696450317742868536125575330183047377646095913859930163053209057984955619212864954164937847251406544996258778573703739181310912297715779855151405456275005058308962562096997521142440611455336667929603611925473054264833216753786122051381255733005761370480743286081359146051817468962298957982084537425467040408665405062032452940801734407095425217295676890008343092916157777937251566005016964935251233902733700997333462295095025204912361207273786352891980056416844700055271358442989454710142500188597085396439987738773700531086363499856610706378281878693114319420377567752400892746131764554440072545670444909617693383066512333335858305910153853769229726054674018445391487178728070673093522441456897745162611795595084925840077441754442729751150162233902935907863293923288905591049734310314692868226827169425009712637643891551658267105759799219315785416299448911156700271593613149703904410308002611152926984229789804696782135588280888439253337372813287442522906601411912912739621715848351046238328450858848746878306040177780286483632683701566834315771989816371956853915002168235974766150242642739000835918443679003034033748100093267866208013624941541829708602036231138361103877483650629821440000518917511207415057069508518177139444168136163847012119776444175617756115507790898736507982297532211697190865788346947152408397553851915714772254296438427393025802287798902447018994025375884057776447258331387006241108080979302294836498126336873454011424339117503785102127611205732254244821780421195223457951425550395513600468313547774311397760411681398392213329930307611140550702085365844398792853061088775263793422955620954060881661475617710904427107782015512854689170006836999388117979417527771436247855672896024522133925388661208436856338073103942384553145342092482068095470713707920012797200869033833492885667203446057976075172469529710890779172745386213737242910312884657532074271726911578005759332097521550548334956129272939786219868792163715488563718715846032919528600574596603489638278613339013060200923183979959836669940793010599291624027936941575806169366708934689338539766802867847497095998893536692069270429690742017166996545322484028909577917678911714528813251412755358189862667203093228151659157450282790572272510714231821960361549281972013243150424920633023354026051311682523786262075427918082217188545690786488783769543500778574322759928832446653694902824274586910599868016252088286446724831186949574751990880713360791078807337171767167631715149824575875384071264032059543627632524608137450072951946282471679204604579175627511550319578889423529796001048260076547672437913430894651819004114524921531314196715680738571207088794515450329388873167586601405198526596122216314672363220303486221543966352734131906588426415169802644548505237513654650653697799231135373632372531048787120470550258610582641639731339134343968615573109588239496765592597130892395959453676740371141567956967049106732887894499896209393369985017321168822601912214612695725409527532387533329182551233209234218708566724923760693909501312585337427000963999420995867404813926900517362180737950246800573044445579134303757611904968615324782510574935007727862181872121632221907105405146498839107842623198226017426930632420613780504318917536550443415617210682248797348351290799721567830787668368589530978508399065610066032499301021608457484247971058104766546688752211490904201871082341829772195156955419409093985021792469685185085257764243313665106063869665603742952070738768301248534498983841918444671100414964477516806205377645441217657308647370133793532211604282293755535896013925404661419056090463831465743394657114024494453825583574373346495482296467966779839259491050645532711087681036353474914951253278166652368523757857642329886053385695725997347336896588734669960934189770612055866053990382099310825805808240170743998932716984384560406412806252990152950915199715613467243279561655015658607005915509565088811489873684408928619342090201701024307068899571368630257463652744113133696029901151932490649883908583186608085131074531514921382630159926605184102714570550980296677997293021417896339460795076437312149904078511943258513729591174285088737816219261688256059381937830707666155218034702034131457734340462046826524651321801353740656450863498652128406993025170441619132797007959228383915213364963238529816600036960742602461453522207408361648416281236182541729556694557665296702907076381055250408997170471101670803976131797683679937350109119466983053348545803333156732787709405848223772587402376769726134708881807839161105158133393767830813677619189656559749790669409107201204803182543095570606893848777391753382115023035174168603963551022142364308746109255604145502171688047717718860082105829594317710698933663862904090746562066904662308721918413543380140944616367288749351067727538544999667984549822660722393242668994294694417277772994527480187393317564482784117761619758699847008238072416500462326198750776533082352624860666713601951712426045214705487544224888717108421702847062654495667894814364123667067283118107914281746196828572244258417565836860096734097402365197671938865305439654312568884282732757866241709723654122903035031173551566551463903951826553953202168447234967581835451994173172780874155350204502323906597245001219079503005510612558744446257753714304997199080325734412030619957528610676099090936592717716187616053901820838737340174699265837330185266902851854198732626689263334796372064599175601638205006978164052164813252094876840062115426977323941769018551813064987709199317511356496030346885864560228540917650495710619889956996964201537361810006476386189690732177022968093035369871395317587754342467032152561502898866826336283124562839835311102450462164185286173714000375403365019487932218459907109036355473063265190757335577170453323453730512380519503095299427736771503511252020677582998713526217974572149522426664894960677185978890926183373888118012695498584121670692811312148354633450296125014273303929949301429343607397240278227714085594960629703476049561720392962353553222865103161389181484485123991275638305989751725645181541099916041542932282902460153656454574265494784732845137025490651099320985694136622243318033424490174824314715233267204254918933535157689423398789831104094911484065523284554385874874444406584167609767222010533697638648732462003504048001847696884581580110879275030533507284526221235040779999026916369761061546820816278929215822000458975483660865789189182809965675749782512740965939651394559849607034655576732733718528362386823483556224179719095366935457233640888696086264632497936946788916636615989789088398702021479580958608928223699374250103275386317363365900802275861694074046019810901976312449720688074821341236751141302036703371132893961364305657001449381642504784043283287920386658059785291482769226989797939735290523795785739961061465617175965400426702804521443325160127983289963605660611884652853002412293712363627800653979755785596425293858746681557332810322890242871361773348304422496370556077158074801413685814616967862987093987452032779148131873620659670697052380609652964665169200669618920888027314903919935625679845085441437763054496399690579063685887034169321227524327971999595731855334810139178393622035779171307844063742174770669687646038022883081355767057880989109534240232593259992868663699497751131091849886659978108675818469802046082329251388009935787430412267979169933742623578019111829943572059124704208919338168550554998281251637079268348779331889932530858769622448600021795935341341364955827261199432760781846124370764218622582848635909726272299566659088492926239297681741245069758039141206229691047131268427515097065183946659804961210369272159773687534813422474010102174659110956270924275884082490558242854026197730273833475516291943790057202843094081500999807128527225963148194971159900559182541786282813404050630621639747642101300181030881432270384937358810069759683988978386709944134023478009102001152666774998607998548498631661560699374259937008875245490067919428005950126881889954304622633764268010799834019216947026129936925349976575214664165589606151192897616835703667056913036975521434017233285485708759173955121983522169267949372875063904461355818602788344120914478194104639576428852005797064694691797251882731137906888408975843047306799475094617046820597856099934608670769621631599985294248137109198600525186600565938783451047729980310877721107796922926204363094546535854958035424394520281012636879071693415417341024730391957910701212978356746068280369377852459948005306801164009779086620022996100019285274633355546455545914714418530398559593733421606626127864592260167361356320721610822582126249337065308687330740782003196210596979892305434459296145911108109759287423603284690403521556991552877881155210726058622958632859293140534965414619474472321550455811434358403278604546268293359999492764885771276633870202044796066327121763460619285306712404237222988683662668782243188406427623818915464346634167917251187225331110053443658024872635042212541152281899956196835212465478368334426730965898137646071182430902086364223234795927179010211030592413907931094002179445466721812339757849919403809888825146611327789783872377057369654004887734622862010898246849019866842348635948804005591157352636585182928519374408222995485730683319456783181271662426565961717009611110216808054138184151209272967094713823161335538218426226298349283251845601942328945216886608812357675532936338046190974816711184425721499681268396506578329538627375600951399147093455847836624036276594997740276609982831584416933881464235424034923474926521300982004114212927931083464899392481358070897359465661373186362469931781962590342688361486814078549892867465071373286443094349407461740793016208402061652866644926587482007449694552081673543228584373927896251899409849218377434503829931334883182954958200569938002403959784547483842956040424933455721149160061141995890930565363055537492382266202433719767752715702291692773629343951670810433102023113404961590544875942986724002343178430362853718903963076233088058477882876750623757675357489976681096650487321346229288134292242109997811653165320999834829938670766495834398344761052191364408943395341633285426426162049125212530254383295115182659069157923400881530137955397226314669435060331952660193688918634728011409717003290992701380693378334309237084017919237961227311216211088787002404794172980429274733300095704168392795532453817063137463893455643026978797721004452154761248656229728994675945522560578525718735905985959357659651939474205917773350175672927238038250163403889376192571977965604489498069618778735667916459872225298910611198892854469682381818831757689627759589642090091355282330405007316662707420310635117431130795597528763087978685834631671302070397913808496770110487376111678266428538330067702434956530048274028607872914790687249075166232846800706166417076192502038497210158693829257911947623370038571178386114331488054014375602317149039821533603698889149103816218830059251670097546113929882100688419842743313513714496657274006468860984080141610330653811457170630427656352625046838522394864317030606601322079252810713100169564856590346860408064678688555985826533958114448656689700141026925381903965002057332144475432417708460476059596702697083488049742159412934400342931583385116642761010197437377819190445691794026015658336581599114811296528996808912867254650414286224724423239506633759989689103269169957212029347927890649563660491849602037630123659464584924330994807129661765520045468822031240682864347876875935583969198604320552544501283938032224370046802445641572562263585653769026225703777509076858701945752147893284718289852572784597880556118397415031045350101255779704246303462806629744608218385472772850216137484999566141991690174382542772217110398686252428392219417533162528172960924150412273234313704127738074500519918680882345251018638673378074766125895034826451451461897293254871518413598201462406457177659184499664904340894777703628165350119493430227306151127137735103536583702476184885532798436595987226572217093642709126559929095792694959056826064775474853903135905142542934398030520886201060850242375226359207034308467792222990549775063825153897702706378225219119687598335622912343383327551554344509578626355435485732300265684586939099836290088364344676597417247916729617425126127126238394343095377096131236623391482466388150298981135930034666592832032091918241904245394115598668741452842750820415325676970492916243187172875493548599902864119240581941013195770515875192188291867687120895659694015981392087856534488270032681259426832087607756787953782721391381313459102461416728828227955237494739035804655221159690607845654083448604572592961902798337444491963504685189657593552321147844083594533107118509466707687882517369076232333527793384525266362952687687362649813726204577904658802506341541086492076337821965772861921093301756184467941844983258924703809101040968712626507547856497007510960632588265362270812887829790733950314997673142700524286249205933742480357180220047025767355864752267639972611375182548282063455201531649726592912781076329784811410076101251207843602678720273942358149943695426533513228298295998104288075138261546140317883165575163647790359424006782787489106002433560211423740783985595617867986699891819854685642585957092496114319331899685025340454782062864267022864792382075820657540351393571336293067755703100670379133070458087645738540079870869517976107539636473718522633421074067361366625532385837203008866957328869189916984921298384204790982903842861032472458323718780667264517512134768753178770541832806849827596917375567948684537259865654619296207559994595346218542941457407571590184124360973840164119562571621685592660130834108581632025706059748980889890188284583064797410580201500815672215741614967086551889688526695942167955549421447506090352273632587567559225076625550174610982119573167370979546371609757436356216498201847711005359184978902013583973530469794105281975040775246663199542445211013160149288351852289354555276863117940862801101049014314258638964941706112929559515798913049964012351344758242395089444788340494030046763356877324052143972283775013338147642486034756358822848883448230405154856230219568798203261279806831984149260814792170169666773753919125679435909915356540513390493562838321097361361899310911903810838142684960306187505914777264569880525680804874850853461818610027031246753410262140068805454989552323066503512749809498645360650498253839187025816477345487157356813441422565494720248733595390308137842578640569601249395843082215732293095655049875257403157809238656185748514916672452797037357849930026542004459906755218004819941701810365351030051911628390237424651727364784327185067281369084142022538771771036162100685237626124900011016297594546769683629330247260491466558747246937765646395915392165347164433373104722794292783761336970568001612656596610128789197991307650572501342123957709822506666057738650930130005992323564557596064953280653026286323249155984733058579176864174132502185919478496635511169898048568383579913479334747427179328182247399799600598051468420171488281981054337554853464982844129293689460977136025567813817456899586902556355762586964288318217603468848693024244503996089090910203232684416976272519854439839279832960818724582141627547927190069868155546425663561585484456344396886486713917754602351075127669681071326175220221564181925513228270112389842690508429182460057609979689956938303151787271599350343788799502377697945461687146877083111966484190737961458342354688869090067166403320253610157827807750885659356363482595734184108400242701713819171161247994945488586511374586810379088085130059136598041743736673195102943821503723036170825548717649769854725208962979666615922364203243808595369003505759291160548680824171928478692098679265062348288446003196876756184430310644070617897427393481273090036760116408849593006712811874780288648547697473709621049202997834436032029894709406082272499127128067725616600530156844105491066110423466712482877531334672592494254341834355326990927962155506398491015363632355176637951267741762790257316197381733779229182052131064318660207723882716348699487417511000125465739775614111463061798453965945936285314947471815948950021138175374451955205209940332729140311883560877720483258706707874365767141151844268137686149676073500313123602086626612524207689205912935932190480597820504204411154487935815870925712195859330410627813191213096773031986448982198051406846314838620904301659417914827855561617184974016589496990754285010894681250918762687798810125638453824618637521816522167289385710174100835063199745841673609971121016007928835583452199614787653276020672693334571283001751660337870082635874508437958356612182112494776234538103735794618017883635107058281691632595990961728333749256713674435447065941825054098157832002879302664154495656301424533817886943399272706415876413392784867722162147207183786381723470410411923291434291102590009090161818301555990163936735759711173912092516450140881091959647718301187621203816174799658458414961697020794439652747638879746360302027796135577012923473440452524678069134438271307875155296206810154294068432624226966744358122027302953086546264550784982713038537038527764998467213702296305902963388980475656025990435348898744533308506203387703770687734975605686629342794749211530241118966660768528570025467430598373821798814674325355015976544683680418777501898164826509050819886343391588373852438590286207713952847204862195650789241731190319469683196652033098696332293432394115020856972173947739501213728723174514151912874810765445211701430246556104445508720751582708992542255972785420075211047513803006957129547961257659247093377169869348128939942082068867104376503108502266782751279495213441468790562279970031140388515387787175036056468048738378016011682611207248266363603500978100449130521653468493162259373969560220263991048259377646075310330549782881034681391939796543409424309332703308585244162132049251574710634311991784492829295683936086269813416421157488449125275410967721588157947100843372357556283810548716294793605046447693245283893034540835298244020497020165366864116353332652032363853536847233575733592370454891095822306170931122880898990946377523148579928322719682148258776277947021299206232224161224515461715807706986670457072346084631865818778026098068897498645977298637812230286225715821606359072691392287689384252668285238414647579754906578830835316803445457212670611492748144684308525174970287407576364996091307390152810920040751561378407584683272949256180452597075141290068837075240512890665465662250695798896669973993529641809056484615289453072126540847376617505878508934066336794948105684947098991028984734081849518525826183530601048916588303562819486427614528836148653795946205492406388522020410944327441059824796979192901114207710900045017695442152959282256866663054907715980861185161584921839467118160813478958091809062981041233450641981358664115043186914740846888842595010884831001863546096160896473449251159974321031559911372323238796487155274946921773528444825136058729093568149241102828919934413592361748783809944855000058095887603035019973403980333547889241048633049295070550938450181052269228414467976770203812288478221244573190015253389871615801350120935983344463618683363484737843568082001608979137852713065903207718015032996285764660514376893694332569995848667377825466337459293420739729654396470252671152511249821216971803445807892740797293559309927163001423733893251760426725488501335339320197314723662790519076108365095352901840933707707775528469228926826589363563103109065319430987319967940948680992388732395506897846243535714606468266430973938077017912114609312453491967186443004210451045977524126395494615569919013952883533179694539143493355844103814189601642420143906916111654584028350670236887408042350677132784302693699550689434268794677050399577385597903142907613080287782363348212065912385270372266247299139079646364024563425780671653591753791270674833713359844518070854172558610936879550475491100580999765193152328863845794481072566614940734831086242947195421859774985189084983941502671497444773734212324731375472798799842849590525543612330382230307619406957385482576996519534073526498553792026857654254733696331304570203229163665224379698615214504615296999809392925293811903152698394265051041325145923602036139650278586020957183704339605450595144982064110155621149112903627008197962927876571362921084065261210144247004051467874548307354523848088758828838087214460844545204085061910133065077714411446684499066029149466415033321365503595781971706427270506223139064727719487754287704026809256937372060203049299410939046694145806774967959043113249471938382314717227561006645022089130025226013719561903806323798337245348996726255980758693202835659801078958161668999117935165849785511507822854979469592505272381021028015927970361253396084878641127365314309579417403088233438580912717673379546014322710058669381574824893255609511251469771414772452660799674061199278498810834102931327390326048154830844485683698305268749798470702210873605066100069283433902600480956170916602825489773750540649154580524124211024249352886854639551290376090829345097831237898347267482712994761431528615908343548154318367766683799097119852613080365063397234967149285088791078597255220974496728370284632079245255489036307833045161072059297063159300775934137401462171171188072931622562694636641700757601336753170046569011396660352532996257362146313781619179329177576844657124125220949718966769016230204648718321678304093635427650951642557153269828892780077830023717256461694651065976117732957894043622163718311464744685041379996114545838542158472669213229404153769241408885230450550898356961410122346667887203734070717778542251910037169153921972288013069703975988421634613632585508573562609659483484181769353540784654774515894642896085819982996612699850503421497647602576636452680145879875273346057686657169697489173836171982312474772942252917180618233987891815393802926613643952313045851578343736886800684224732908148489086979294108871195524318638131159911741776755436361609182995898083883057901659829848504592798114220307059085035330112626535835856915543900231921854786617678294922889022870562820312388233666653995650713631643583012402281629707766267465916303638729595959012622637790770925791597694080686968422006197504340779850073746877501989453356530585600976429311864717997983811560999328505869275570334551823451691498581070911753902861306984631951865927838767431722249859707706793829401831925408420532539360126730573003007574366573931353722374818950585349164885893236087008726770503395727373844090335132300535767031103572150188197272513939582218821190320238332702853505001933752700702428439946044970988556805155356663940940434429663036387151371972589741066962585815074780895084219967823015830535909591490412195313052306019326606331664597500036416815656228297526418937255336142891732465673560895300441120773898760572850372128312041707790940559266244496632420626558123895656738335747518107721392001042318660434351902218013650066748102903638752327031844838921163996637286817620631354114510618366422769168538117846686063056130509224950342710297617115910730332611651384841379306279054631944652463827810433515888916120010454067305593682300533588632735624985713668215824825937315767044637198245636936900157042840753963588391457586737074797012770618508148406480639097376378389736960984428826345947660614698486224547674592510865896103441660842972814711549744602204595717231887428877773247033317730809116748151514508657140145738766877082802940929160227445501412880349924217124567752216695377809999837599133261398786410537447847715458326825244875898354608958410510168531483109529092296872027431383958286182733820379249814117983797884556417578669943094007818213447302857584123554489288644359422216303457056353742014408273247548105026258427619344138913379967200440966093291787094278515378663826645105273338273331135704758296036468154762957721710117943602590219322082095911875246924616093596916448053387605990104829477450815339809192641455840132560245484209229958004946307345481443615488757867292398615596944779740878724045460226136391716138453272491074266420687524117004912548974998740732340085749147077126760724157260409400311139151806183383138107082425374218479923415575136078342377410911917230847466868460801585689746190792656529251192501238835956685468467873562665353778575098529706267731631632337504122167047377172237524411604269083779467893395876846656988487752318302727318038975750766981279518993497625103519826486726565197724033260299934534505899231726325183907452470231111602221221517461277216374068469750108573319627457523515199721966374332604282503973704425325151966786114227135059726894876980781839813947609441519324115122821253536487734740164236521431327584763475049166233143206308530848328823043900961361653501906673697864669687187851920437191993542175370113307915168705749775242857563557048714018552383432063057980250694811870848946705993352755567852025115434254557420846480474761601621830030577655707508953084370747356847287637181756835010551637341481279882793095614241790402251573767207125172466961055998715365909593171247854733788762399414840253454774764612849584891114626616569924795150208504894128905052282147560687987302735807438388841742513134206014008088769128994277140164665164705007415330763497936983754704948733890328395678226218569264053073497620930046398374602715701968909520341896997235089055031588500581277493512349024241347551889035839413783514083635904445587103724930634622421314186123562399341184909131000813301764002629278461076199058108320665339872000129116234189219458334956175567875232804239359486612003314019853923150273685018011959849195744212818987731476561986376527848364811092545061758765340728707970611346087827454135305770107910276106158470367154292477612813614991766558301377645033001638723650019588455382719775392020215474705244114358593552035378967160945748149739762573861776883807476256187774751897939035969185386088692353335221936961392859866939133469842241121565472988826414431856128739951500874420744971243294780527720149598329295180280467594630896583526982602520176916768123860084319022033394025178776965091353163592781346073065147464904061105005017950078885556548531527684486319586485116035023776534852708756520416343083066905198830939075148494959249657648401763260860806725483961718760543216850819148877270327035423724848237389071633168036429121493311909651841426812185837115730319866954765629988515560887031666621733964827967515417078343678164977669106500884610959757067446857149770918419178296976393261755150038378225208538329599261256095374254296358617056158726940038339320363944758277613584462427237043169303275158291318962899248239661028883466507016152006237118589063851578780789869358660143530414628424804961417258203277177274145911295577566279232401823888870203790110270577251468578132917118099073504135100267249909607509479199484940947910842086386988291510742259894645159923711727621428624674163208281051377594208120817208071985969384124263068083694953961519514447644620364739561792707788745417554605168346483141949250429330869580233156916105399760592511821371621062850716126233223340036752318076169130375486577117024217473358595258388490247931913158312787664225504108763230795844893846706543443197247516803189650961018123063748941016059689569207998413705623055347760576046031823201143240479099806687596536662468089391501437575451783814074411605265356805711437025901629921373105832233489561465395017420569808397654154491240565797408474271985465460800507187222608690748219334028847462231064482774346441395138925523179165539427550271833080118977181748684419814702273889392705988157627620453306902137110491088448841798123574241050413905492976249813942726106339706140764511305188934770326600459583687582670388306452661609412769899707324431470908611916720876073726385393926215911489959402971037449357085076348892727548396280101034706118657664244574496721041126115957466866557623725529205949636055682398765853204289626944260689493073848454333291841779459593854285110351027828467891260572818691942537413458302221241588960379227216110024536905128474320118370770073633155703519836066276437433681338496656627898074220296066326964284296006088915658907879460520586148944514615654983540423239654464096032482515014016253631305589407992544006817903917774670296103403555251296970914223606947553836072230874748491491273910725971645056129385801647399175099045644019135971378750096532464718014651058120349278720320418043104492206666717961255082505132173653191794329812236858487511763783636401029257856474577317516444410539842669742936902773373556558734644431145898101202562101618940491374997981968859547962774251347302885123794097544868821040647950961353170236574162785548284832038823502816912708601872725230345927844992014855806987345632647468511108014815358609144704513131163310766884050593323744864840259085038097046157222078535100714766622152587032431700651834027438669881290517625099736637129566857067794053665035478849237394377775302686831155927364389471800624448804676573796793637414246228311216343356501399606711571336494035897911673218080930728012375023620273304933852349523842709957126453425611015594715300006576458922894859569333995291811557121404435814680935408127375283669990045761685313662942707745856352503485145811564382644086044870824563680501313799992865620258122956796054568017969599266696305858985003073600251986808574837822172414696679417017022525164610947280978889476776232449121755336980583360680975720737705968921755315260621669405454900715905996735391795040002372709081125195479553901354381601895666171253496954932599456044399026494137286595910686029706145718323551659986949043077311490976415761938070273128237517600506652246849393610892287284809537374462711739033564133607344250140819284198498470172221715947165358949050103515640538430763482171638179660016698741122375732001845180043101626922931548136726681134495493241443607176607021709066211529057249675637091061860755286644398306999739470746738727475060091114802401998734130293908820862643006571375501759571771997421700224422843022289529929193787122168364256497895091903932299660777076665773029910237469383948221403866492946984469973402038880631027493290496694074352633156592642027827223272290534643293290248601190937969475931025922214656150280785674993466256004163114857488657823944024449041517225457120991046782158923783762749971262486826976589296411153216298761749396613802115185485895643965887155073956197870992315955674707192752880879277165389996938393491390952335266175484419488779287476937025647453735024652671075153110464823627766288780355445341025013479745979684647223256872460463224765864965012072661644244198264091899471808242258448217023718623149815603080780399659250520064139140696337018828233116913303977737718648405331671903433280919824559050702962048288201623111136581809217290085575417470252682496941418851579586233698652327626422800708635767657800209915170395502790173955327989182052040152878241804518868707989678531693105714642349219261472411723447585357051262068075594914897727648405300926202264241877080865356792060356605173802273595022289079763078690865874127867769823727776394718498383283925830353340707984315825772501899127449015786812414979221219326314970435011440027418177264304061151106646532663594468733244936457990451430454697990936284029677919095361182835114450794470323790238714600471735798916754805904512735429552101045190440586806752726267345898448012338492196408053851857785841284952733373034781566203907931076611130696456009484618258029332561871524266195925714915753300191930028238781884893873600434644247730867644820869732551576137061810512945769070450713603727404328874714263416894454251922950803380930784508225758195760047703949345728602760225026102107025374680128450757111217546599450807498138615186367773117025757410975918288165741448615251052781696928817747338948416952903769066511676941126683113736813946979867338640286565019757172119320653679933372887986288312871621553515812764303835763638521788187258281637484543637113703331806378554115054838203873042003398364552745244374868461539914430657113823561904381083849382004411586759545353698411452831507931993446172710769782033250544325996438818677787856184170727811957820049122748478188201160323094226329842663412417306841842704741073662740416374117540634621266677520275748600899526784295519988032132092291009137981478246547907521216479368729649380298227057889108694312101134853778185349234659647673294302786754764611649051185101558460656027574166514940147341575031498084577112984959315923018663885327563613767121598435545468601943726242515866059075907793064456229870695464113092533091346602112440523244929143196164640106237392307595061379844643646215010278625488561335636344181061911404013794980386697047598825134936765682607204499434204031392422511085295683918762457148746347286264789405311152394634420396167992228750211560143490823800730674643368441107599586206625893324002676294545758693188312432220593914005114104460910654798509096964576126051226708977962718030184651274474999133834104013668520458624767067516032021267603309092711323313146907439899814580692641611610951737412601718851062200684211958023888258041312821934248176777194735640548604034994069673183307832919011486193444511311263568314614634691427659256696883162916860361558750058754780419763479558375627477505834929357276546891710957305788020185642561353278350830448680643917627440850086183265379295144516303292152390857163401327559962547506580543921236431762427144488659818397562258857269335312712415940537930606087081221945172935626838772606428433816279244685163896303944148231847790506223921638860907687654384960062106790167599550405399248724932147418227684394907613808732748062574922676897012339205862990283387814380465431880290087613427408466641334471410845497274229744721660219084720538377821199716469297722978096470498459120681950123001322023291847298053732666214432882147642900590664474917878632778883699888751242737247404210971564983958481325161972381191861961933581759394207603872148642976063349834009204558673547726670588843737845688463107060080759306219153843814092743969411368977999249028305439824544498261681453911694375765934623829672042541249072742797637774936136805855084428375965601569736189803054290134602568711046597764168982806541537847518509331887162321628895170921091143844681074478664784564234664970444596816227863128148600723206898653703627825528206742907277376276446582527909161480504037990817790353260465960366273253135497822409499769467090885131798488098165788016041034310170488879621480260894125436605274662355079196490719335760027640626495022889164697051826762979380540153258874007217264684273868765476664454619980418311057982430568386435931630830034579623278265099277395056794404916286961514555692977034981839094181399656893904214861502675050237915785614340456980004947152504616489855982141450047445286145241083993877178928213021562555856788347335064065469185791537765003963418686198554136041737240816080607314450462274175597581438214127298817564133015161663016734144894594104942292904144545450946300843188953613400842784812014142210554754959696297081646146502863390771605183546230505732478554620574277715497918425455728068052764511101408422572487830332021190800030770898142650887656570883646172758711997532787680085037922816305627683716218491457472633021564978794366058016360333000346009101774851038372602650433225452133893106227320261552922656625427366160432940696373914312830481032305744612655364653984039488950830642361997372974905159176017934000872563792453755805497221625022691652724049365356756754647649230502210032683063882152417878126588580317312736250305663330641885651153839504611792472813731726224828884963289258576615877561155040613338117302553162137925702090086662506181580758149267062429295279419590071893020863742829749481530781609224253282000978624919116533567548907284898648369738198803959783042025474251485538689057451903227307546628786109992523153513420178953307977007002854531185597558007521508525661896224214841650434944798015938291649397505849074835764724551528097347029808582989586602049559578694025827575578473437525534650529136256068802150933169269373504049055025616317461407453491793743807995214234752628376576206696072075911196796562212999500518636585724873516272338874664177373919592927267859053949084215315237667962583549831207731338403333815587567502481536899512216745518343627067724997882367017386493124857334668429593822216579447089796946466528912965763689601720924598448676823483492217660586989586267622232028251477308136791467194675931526953174590125000122178636613357941455012207669854752777832061095535796107713764073749045690251285649767779040968481670820708949966582550678165348911084990594583935789595571047833922251753067702478825908408595318272447347405782963957068222368751783089825485897179566335959843253908767733075083310981091394024999116226702599889920271448682235749343705437988145519705289442963739940838475592305948171518581656288393300350655326474592519316152876331170572256806364018297094374020940961329239992476904283510687623848978108517753426762024437272250444880055749476632734991549179256604458338113561058408626561900834935130585206415419743765397981217158326400374400034654825679662666858162351099218476835497605667448538437032810164562704425658409610189520825104155093733156898314163302595463417835006755877655235532129629261836001908786684049325171069405173973315515266181847259148725827222369228914991048312573019503275478027264765177508747290135646106199491774047079760800117895272972736642313083574392359621542086640019582145641792876759838632471851615820763458341538099078879838630641370916829705833133501829348015921291831376780504972757582559602231445056914329390778784803329502621525921677320186520228018113273883723124225613698763529377662607552835567087551791779523023076860764532556566038321821413195838108698988062173582428430944409755716355719800616404920819490262367453595998523865289865221021467383253891377659917146392207720857824498818960789893829382358306179079344527733784381825993615641016865225381320382922888294607148513885735153094724619560190301930095855279054827445653756617908516250370849874997509491670992505148358828749776669814048908939023111906718849354867754161079223518298279061549320621074421847560475160998442699434855743287135741738157317484832928610369470453364925402233484691146233244946338301552088645639982760136394538389792060872958909851137031218656025427939073430868673828662784002845161318780127476972588401987508740977897214904955361251294378190527262508314831632115421986994309174264109706463729006698676880415052587898951613304171803176857375816155794518214709156726628627237656095082203642655670823778858816909027752178844721582585202180846777087040687331652021732542716936991538401654250570776485668846129000559965872434591479941013320776526708952444341470538616107837753680762019589677311158260055549094496730299736507268627302796760564506547255096002506725063655010945562909499059010581609802460315659363379306558671950706809335770873413999617527908233193418628776434372979301140379534613755957007848425497817941474373093802119116121872491380898190216728819162565750643883041582351046033816795726209253884203316816908720920316478477867183212218244603019953923906345767392499330303081595426482095053959901874184014399633772799610110758712776130496103731204627551786360331021931952924306870521416200080761137559163921959661082651923302801777924018934572275426439938685887213936652505890582189505925219050912185057131551894070338768953615104253588566067879848429082424948116682827577961907413309419816163234891008404835246674769084028547331442214921864058645054413742463201927061038584026672144472131637423147749074201848941633636557803758867427200414726830916784861948814337136749878756972924921472115192776330363435973056188848053482083498576539885699669631795542304957574830690740518512055025098865797652889947065098340106115566720840065583839840360877331389043771026772575451202666763555861333847204418170422176851609365359740408593372404731450703024910307061241929021373540844331425466913496447535438624592372108909153375879578422927221965103588793236258640804619256691534987686379310792760189669168988395792912373145153286308948088382943782098294483971116841265724350477166628752137018038110682237805752588151258721334224772766256647983455414210853973717871934365307777546657033228030668661998058080457438964157752057464012987840609277587681107931675938371182810499607548139937742761880426190886532387841431041304517805926311655547528289334262308903403179111977369113776506654898624416921811977882604179454534686115918024622331857229948300912341019846923216253431019685260264741936694835774894439458213489524654135893899112152940895765309183315232895601279748317179996833530478891464904177415457926522036806933991050600702952934905839211545298904887208428450607321184488311258474251187587871523508952696489832893885657454898858429612226348071518003957610766154251999625523944879284134160419256826119124651888966319686380913269713004231510789334951754720980216299459421238546424070612670844653055747256401455863354949832011560992112101761590473869861438489745556472371079866859949806493310104965213538950170962690505473265399473129229560854889622564634396685400674654347120165608291618503812789853601134674370020315223838857355435639440773050394640794306865207455703413206964878056435339120542375940636588293753775822090117309815552790528446440303642658002212897475087862546425433753062559095554666389719596263296632735451301353471569827494669252847352853825528885130372212065468110785921616384099239516068362060977289129642446679423413680094085240700670548917567859406174262268605225686350648634186444528757766519517497500351122241080200721798921200514476490305657214780845313676036247036117383308200466417331647857950541044018789840495062461324236848430665628403915741897256458322040427852887802767141554774550381649504361570358470751534447178957574294303681952913366221267072924378983989841114365284035102868303119850186629514015043901688174510763272001863262275358674936653175413142715622728991522115433194398729145015013165228608708654718042132426064922942612375638124622257911036231251589495327507763863430023138284334709291572393558872458899898574959636073963624557994351738108593052788966958058320675766928259970304156371404125382315488457913427696609742119555457630666015774446214935518570216198104521192721551661661327598348307495037029822405203761354105027252260062099550104642640768032831525085349776953650933413269830445808039155493952028454979626158651467189101988501080621465380596713857667600954118707566281641975837646891610189633840616627899998081244247065603067161523338366157059045935030438547907515818550586114989011039748510458111360368480758073003434133454517500057923313569020877194192700365471854656763676493501040208990962514986426013748622222386290137251435985623598052510699573783963533397846929049511425110856276890272102784567418740955168538545717264949809628937019564677088884724382158839748168629402123024703260679737982736268122960836516673595066397432705131199686515896199782039020621781907979075857295901344125617053864700715870455165027605988283598335243745758708271107523400294688501544758730552330390476108153991531680605789228688745727253808569324922694733558814282129448472615694299153820307230966226045752294346070049732250287539064947861812918795074436525152351945046054725245854528626495743704962179083218028922508347956466689303011352633752864809463241910294128621466715020590742001672107114557185925416995695318692944879583943336330484018622340579660308120184370014205524786112770655047410298834166530440066037477510923868213199073178809641378285874800483141439682956066822086309757287806375871912871603002612979404036234644844178647103943305221301237855221818946228509257736904323540901945068287175067649256664118539028750860406951464359405368256210278708385913384150975917088222595912903941960771319860134166687389043358492964156906569170994132256936954443062038002765767472214976550640739880105756740678202221929165631591413796736148021143351913293904071525393494438776466046598016824475488327681275350819484870409419786573574249420436602318895667569650041071384808689259149739821346177937663846340703983154807353128814301890256431137955075749945959817613372435075541669262849853678875750179098952455621491613306024133973680714814027336960384304407528409226692808799501127891525616362392833663642383870639365910948572043630803863165733623990465113205063839600021415103159296447245279150380155336165000633377328897666582190796366953658873865839171097187893486617244275499596486917790201040867082379974557982611304070591653602073341125722167851444138029719586636944334674588160962069497746009938855394559497437297670637084522187468436014260451996420369621361481316143641682748411460002524683357196046622158026063886217745580615891768910774251933442685555826888586720785929563278184756006415243195902035799688209832198430000868405361964334117758960715629539699690235194106662004520361257727169844865017971019661984857311013510794979764139115873678486668085467407647101071692151759005396829552411264021820884272101063579976932578674765722520402093677289705693444048405327435410243190140550849062934417006475009869181817735375159678310422431837610576622265263127393158327905727730267682969471464739932805204394585487448108192802695525469489167375554526122074724225625270434096444583858462149134384746637607283469119366367354226887791273678978752850849387150566472487104574592751998090696190660347882365297752399028377155457716376076320968173573426077308716995895153106660417336870152665045157748957255877088978308139768102890545612142084777927172523650852195188923549025905899129358308083740003129230084056319595823117617385121601369564413187294738181312612135862236466240913753566702443689496108225828227446345742556905981688026782313265085117580816414123667443706631633609759311099540539809877827085550763084957598940791952997019493056237043578206201773757086282189157457208179031733192740860070880441888564828138070945920393345697443105040198007987262183779911732549181596702149614311992368859305786540914009264679513665408203882216051421902796951234979886337027193273904199890404115981995086285174575073574434129387848276829653108281491404620970382857397185101609114854870058122293806077855147843178529103973812685037998274056565806300251578253517091700551369397309698442034598033540656086371702466842363687827717333577469045542198344938657041017247927347149279181614625745184894179027221643474230661652608816894976907990463581408560438222524843348194370016444551476029757966138718019854489484160512693321319014563645641045879868196245653253954551340577369082141388138947556955048471058250039419921301608230775953440150462712523180949560094880713961998941668502774615402249838573462008944452577427569454063824037209632776324200574149955943302169310671443261393266353340740664034872230196457331627524154736630187329704778049618495187949116909247454416084354075180761330135890782617436221750684954774767684008226967258220024651399562610244166352768705114606331418165484678456106735489287675613597047194054386390105343328979245743085889157199894873198232288940987628063171683405833508955498696680719242591296961755788244785821071929799877414054522960077597090809772082051646524544267495235785513368482958485277037301913291703122311053596806469432031009041708358957239214165819083712144622575091884754192540810234094063386914824865264061546215927463728063901355629309453537308977335367372118260539432164416456943514032355206167900254126159313232376209326109415325596036674812055513562281377259012819138589006370889531460978058565205003245925680865754791308108488243274227184204026809205332877949027436505645054658506926919857941801626885514402005376068760532672679833721893162952776348305435854305482079523003238739850618334991046336809407841661700469756597922216164157593021004991646817330313086186262274250202713572368860456255645803638984854022143666083278686958875149280825298037644515724596093812670714003115666602279019965249866735045445162765496320752930012536402808500393317282209120221209351984323391800548102611240240103904703918545523324629859789733309353185505786812359851892094912200168503252749787799389277698979573606030302428844141517529439720152630332987626817119071622465384316861133267673677737555988697044477524037612860993641047622174342656025542849660574985928747849402727105163984566857792498387147161814006330893229674483454401858810019498849587662614154091055604513952374006386502233404833904909571828972555760489896358153172553781048558441476318507448923644510359523274380432554561080665799969677156321125830922523589597930248431347027538606454115820324923895945801379077702613577455971444860690268233797702326451162350947833762255526111217729969792228492513568025661342877607881948657555978136199978557436882579417298751082768740635025563861451788106899005486087762505482971777836848699844766035167570652036291588189699839642021547402718412971915712203592110276411095712428472081781135025131163509918069406414512291763436320731731385855249129716163718746289950774696301794506146985056141339112067112219193925722099139638218557187994989734499332388164435584465166238459787576668175267483342958073903822847846648591487320511000089231180392469608906316005105207945421117249019190454380551797195444717359255665062294876429764577772175901784650121766278502833689363751041140247114631375410799617722572315204077085983562967296172421758285226896651650885892338437998495138875298675726855365537384959277692019636998880557095883232943313353425502951420729329534684950292419758795302254666344656033440191733665251270357112527165823001289963023582060203162361375758156425460110653008387951929861854127018447428812954698374961126310308553993382768905435418397684862549814798756991651966391554953892744758967003582970116469748735881815823171339955277152042712522006011506686284527613335713310697334483630279321786470925445101171067014248671774193821308751649588722881382604311722856500620084118658447383818621413429436434451610983054534323745461193252376120860127794836195957282237348474768942683612228369874609691111633091757251989429242155668459686122893459873519114445685235512278086621737402648219853522568298206830790355099745036673974060347360522604289835255304157028058757428099025203684644292868370789463582898152267142496293664033456277305177566542769630409440127953351384934404769799895833537638467379886814565459405604044219364542134356383986706004280721760264066633725654215866988560846124092941636012607848312415115664173316530789822605475767314392282152132382175928604875311799128191441933148774425488075581318559344239569110305211434861894570711432117799522647057525758079502501731441199194643771273713122317561576278426374966024855779596633479995107021952394523812459664829547060919639428823080995725119829573261820542498900588778067902613351505945885786336040796345081421913698969772051153335056182969437471271293617507680259565728069412494199999165136805062751390912019523518740167780727973573326754284366798530501245683421815382110836676462227279640607840387927388974609277631099311755011446415611951811332213652741957112090260821809519204154893986643583608669223515454667248083891345447792163482810554654138010943004863426282174554101876577191144532463110513973836270888155193459272863464678282374035416731012992262401330192112715815706490763136170954528564630108074849730274359604026875629450968253728919128938267007102762204806319161736056040954650922900956244216452546470982661102678768065246725500543660337266185041261838926790348309994110253482869375581355897307293385408950689037845587454381610971140693480082475032040429950312136614875901049195099414321680809987417602282805459808086317406348758669098483988757134991380732990847493064948613713224026660213821472205688978164077052405199251105070564836027032013358951936981047054577431310279674807879453984238603089684583308427260939347811443408165286004296893636110085607054598392898413342316852393306911289645012960126367285470356956496035862169470043532889110692549450042401750087987104226878837771711590564641036144696501874105235918001653708607052830413658276181337547177433597474668297777882963824072475732982596302051245379608932708707741573995695102313856539683838936668297985200752219119403268639291201163261600699187225938955766896430802366683472325942354632864034407076323669476378683646305856818626199686214507658627649875778876758745997911865646284930639456961586903917024031364633784520472994513602008746230358071299772959279498519828636001857965721812117246129421066694927618083396119819789733408313410960549746001561660606299471236795356894731512266182119006961305528450590468265735100395636746255547442657477975200123383551027134232079004181536528311849464258753982339745005362964955723512848955188301940439079153870298140622393074387032160029000991679997342341121730961458311189854514326220831120330533706696250452786047898383230151657594708834412833875456950112382179421509097365390927307302600042622626221645759463358375481108718244882338230838822226802249265855560544970315607463558297900530998870719382169674276900441466862446784530817669840222260333474806451300425203155452980593403477387512339197829433221063538500451160361895568821803168127582718673225993691349840385709777164039500385798275437399022779327391237007265107586904610969150265986506279821084864523958885167378659354160171915895754086249138923631917074290276072964627375502653727952483590143475255801844265505262749642845080677929005521789110306088723024278238104691878811862888206609017542923560399787134589029355328537112939520347785171204151630197731389377086226539164043219068594842231371592887929711037394420073645764538977309149757156790516686226922082071019503591634230844711627033690677377525821796003374640373296188974974932200449832628502932978570942954949613855845044924011298578763965567509264539755025571195869416594315971284828163550614981772435116136789603417792199127893166286470649182010590340912605682918688184852710680479662450028647688279938563617917912380269629978884398486405862190680142136546155985292295158682781719515493279214798509617030865246840376752695963432323815483632023297709826725011418408409940796565926969412967746157567710842721045524856082344121554885302610233792476115797518556308292081497861439803236904595968957650857930532343255311549532427615241297311709964073259353505268597652972253801914476059479908410648744137238244483102999669878289895475861263068526902964700963324159179062635457321205391618081464365617903378869088558886086815442848886683332591304584263570301240996744927771563172335900840998663575523138557692229476041940937621439200623270876116247893157095672422210058030455278048680641599953006342378002056603865110177747654143968329106837907649722979704376495897527284397468416458000824854822548619368429428186651506743174646700560948979411424138597284895370526490687914145578760053557517037167355149049192069158127726144605686572416570913263181980992765892719251688118545334013942672434270155246455421934586164318836894581904301937946266027840362092890129549015951225679347403299485072997972961441937052619285215675109612667677307561448369082624562745993942574785705109678482233620585136784757482442125877242570790200381317370498134867670435049416884589321428583618590337031861877140080822819981884317660561417453950107147068356564963429082270770895349647622917613977972557308491992347813423790962789266462622987809174841195826558606235179690063331157863399417887431565460661906482955067210892293344942736643665849713293253668129091760544031949009070515073361980922333634883949682883437351474299688387059053284292024682746161401758027008594465865646986862870861719713873169177479243022438998798609118567291624437805810978423929169694629613772693549929187943723652040039344233437873358775594024947655658384524763953397284148070334905624623873325628363339864535507270275030885181052485820395589947236999194378453629704573629307913534279846617594713931278208827480075399030935029424640596229809877719199524695953268802705201328258228683832965831815487831198654211063206693642061240253931553503692038742529570318923507150524937864598395230436978926692981692781066479802065641949119524022656470110903522253925638533105107596593691307455004189404067525645243893945989707376464390533257083648058885159814400733834869457212179318587482142602160140772702414401392968542432964207216047202706041819458530112926240590899585268617690092643793485249485022851158993474511529950651797004762575205339714756356651304616454841941934270396907114143043393220766672814236723191502945367398569679701751405030288101604609759829738921819453388972374137250926595072292224364234538304464096994291261270847754512681358438610362755723169547776847933701956689696106649220657497591164563913504469006808636037800061212426375224485534760411638098914749518551138248405793602601231379150451195044113159563696838090824284932494375558347791445102668493576218303842722505953796165237205796888730030565921821013143969925633426371885139090948649063755331100884500835144425354205389364007148416021019040257823996680693787351947114906291118656080014257722888042654242161941160252494447150834646213817896371053287542275751149157230134177618106936242864718462477848592067371530919145058437749920877021893196995535356724131081717893988804784379491626027864980414611517714406109296645061190565104408195031752102221158105700864320797427221677765805640465879434497930332192555278380733609702712771135457545521558046999320520626516936697660627177654795275296058782121002307033232476663194098543758039968010855561833520833029299949282869888936779305729692063665976756100325351237436730039774955385302042022571300029801899519647856441304453684766522206795025573204664955910901983966565120849344739337572649107772844105124757159493325385454404805744786973563216956619034312753503921646892404960219838301955211286007817948449917869088710243883014905197932858511495530293623467057453978225235183186480422981777894758313711043541850738994421977130832277089346575644142753194398854402704617304634312874182920313220871886868964826579936953472945253131239217908397205523265229850404032755288367291941784958922443354679312511086066049873499128023509386649402849189586292934453412564425033301715531914537786834839692973956042188560085047605540609215244506384195446825904064239252986368274600569933423135687590362442943927409383561229436870111702785866483225871749935782277463306793606154751840185109783246783169226593339547736996474183032872260791262866618045524365659609451422681577086866710257686645223061570489334446861845764603074262110355796858308650710840724140724391737860479899549314605391044593867233534377962911299246948880873809000901540875693486470198532155764184125010584053404925599864688099630583697807729224846041142825083907061023819996063885519429061461434323454698708667271899225571022041496993175546675722942318195997589230863107164201752706610701491363557592388264212062994203808012445838519336063614963603168183344382803631689835485911248224841357492609191417904138887082850479169154346698782064418635040296123483240529757116423059927583040583886236830657674432409703967087222631137515330002996304411071201045024826385161486629372863580578030019310506238875520993212890760798790174657800058524289777237355716333487983382672250134817778221960082449437022157590968217775168117389525279219188171297183606652663948267163648941077919745969604966040963506998395893925590745075242052913116444830565166461333405814686775779814475468540945215144847569415446070123658932583711395470875598125674452298251917879441593149915230887148284374397953338682100812241479459889519099649784059229195901053250966153093181529624945292976207931668347143296051966369387401702523743736360170853067247140376696455722986580600690400952051592874468939903851079743279610996015845623959062090094283208354902406884817203959884195118572712596264010008630676022965742059952694699814186693291613586449604521295409894790211784199618678592705169876200824273682625730901386830592079461757859314924131048248685015401258693451573323148159740520701755602859808398419155739175032234293611617581853746628414801221815487104406097633947445385920554734255561760806331703702148970110709914591203265658437364826676729589602031132457046816337707822773704963703954241262374895316551055009571285101474957499640973945686157122734768387347718237078333709047112125473548224963765814873910779395209271651116389643982371654385723892763083964838598963548435988155576353851280808927267849133357291083313791183921883991486686057924936998441094527888809561707301356886950058575493362417824487153753612213983928682399580117417076000396701315256241682327772328462334528242487878706733459701383984983854969252805604663666423531946810078874262861770800266897697897546164093298238098818395204951382321262109132505204778541566340287543996049195512051120336525316625786890112735557645401079844613514668069940434176480251500348013786878707168590000463124004210699628123020319959306918361627332524233559912452484649262244844976813941953948958581388627927356361317291663850125947108264319109252443315798207650803746934482740915714332974935127709919666210060578399553372016193563560758618185020305431268399184597719510500903124419551859494933793454789647986164220060236059597754749596182708955386232730318188458791086448702222557567800728600294315548055236885714952264153842978873903415979909567635062018897924661761682179769370218317030278175033238005841592886574418546452491773857161164450694515372860740429771142258031739654523680935441819119898132406880225929100801606088313816356103076842269080565315657229990883315166989547476703640485944100487388655152238153409276216180921095610558695125802832716881742586682340130305603264545853863676793187179311436506839238128958951729006822657723481488471275355439010976364029950914682753846431264779298422575924755632946600179846635234531668537827280986199903312349454851958694677781959054407026653286793448941091286935461753559368392892545592115355546531250907389572833465543507927963509991695123958755361183736474184720496189187742606288509190375070078057813453371522666080242104047117473507718743992228250101077659599875851727553725921818004612270264486110992390071352698864557708115139957190991324518896140087181708499741613355780357701807325441633527488507829350855177564105935743892010849800661917679067509129455846845039167544614695764321942997468598496055045070485676345072530375350426656589959378377540992682003643278822130571704788044121219081629816067697822093371341701470994021462773414730901278201009859354026658617978767576056993704127067818568008913121309446279675078176486280030055706290300666340242977908575185687991111009545335076654281814557290399266533630485688444935133858984006639172937305108237911175505158554157735088756058892848889325744832075555420986863606183133473952611433286263201929833019940332304447111107232942201835412045297878518952245937424616054551223713828804658613376176833057265623128128133248338431626215424772782779578156195292443161834236958752838873452074559399484386853707897187066028093003187659540832557131011871597082074542246645578336822520748925770675649306268282650356524118453741558425632767957936984816527650016630790919893269041424704798707921700974361790016338551417535335529205576047820113338648175686120907437707560559033452479438763317563116448601255734948992234821000009322197857284659821326354447280314168960220497112160081949287239491187265195488806209182548073870902928458738521141914168640983312191959525148367088379634402206219804293963089813705832170844569984318780145925274727004757466375125217079372197640426176317217892033301164521051497912663511741336788599747906002974535194309782832374884964409352754512127837956466095830836919961328629082203318658658322384428408136852070060001203987347579820965334706335287395036548844530970810043941176146245050177932193858076706712155669137606373439066995496379935514594760729434419707430481022946386200129199499358859113547625911470120872146686556645325763481516763841540383056981240181283634960589472242448609342324263487627945859027073040397773842940569433089092755014961350411724721964138333992685363293884990061442978402838126872674621815060401686177600036846770549474751349822273722728596587581748427325949127360872879980175825977814300083936888764219242755567303585192095506582504878975018082913102317307426363329852893954099224081578517461556551530922610598790979249239283587605319532258034286451383771430996412153317094503198114527114881105896599980687499757165180114091387918472124491944371123373556142582562873530721186028899629243307519593867835073858230053492933342898356251056664072514930274172410514427184680569761261566760114666032244418229325760834044342865333976683682182435341773601525756054375416764586890899505625191022995658499156207405278457644749072340323532392900093236792324082038243571547086720904856382633777891747150256711070289090112283407945386856920025287716847130149869577633516703962853577621427902051288520158785781038930441741048143554026317810185101560473270849509772225711149763669085742473487297393183754222187824881683584449190352401323167183619090933006104749076848371758526241198333105933049919030687938449207166137385801995023465196903543170534092100605191503722848102976519168084675936979958605435923963300469967368873643799135500838866332241732614950664867522124256132691647044778602657577307887392283981791491790296210891574094048484233987194401876825887188638559126813978709886058061112862392707025231360997439819026460298063142360124875255321753140439557882845124743159045644063449241560176465883468622642650429042636372451676836828799922581742690857655871826801961654083377368942335322568734034331481666881456881769565362013699154887630135527572746956897127707442620315753779470004075539969250381766768938822382051489287697110127513214884445128314130759528389054408921062614524932326758816057649624420808180075836728924247560715382375595550126314401463133072479137835755547963888009152006571489282415687398400126082354720000319320772179862994934217433859764493963610161878828465684983672989579260971606394296629148375665812828467032856270212330132179170526962196632299467837228762619882008524100734283464442620226205721386468203878166804080569895982383976695505158525267093135320316616383883665479195032982214542180112914267701134348919588862242215255723473442343736792181875830238061034895767544347631975169419759157604505623567343028044377200720496877006136153054130597657144345203966343592678443272161446267714906215274095750057101899402882119519674974561267013781615837778725808275961233220756543134223363265881097029468979169415509052405862996425707237121210841147867354390410449539003297904223813628667664352122048814310081478669285192517327390146077569440901454893739892737353980592146562059458900809241998538927441273307290474846178135203658691996287958350379347458560925508008070578035795394380990002113663358645014018628296949881488888883692399060053857934462629697114927646324008593816239969555641542121555203745853910038400748318823526271361264905868263704250387125108362601645714723667546041077895186249080271456985465742575161771955714728270635294068577262626258015750244187182063656976965054791967748869053257650422135418370696057918462855522237760616886044825274085059419637804045571097194774159008741834558659311711747070345671861618660886275822433740972570533674147567955554426858497644297812276990280462932350999620917571692883917896034930350559843104760499917218237704662426379207263396609069041266004246932471814583200703727555844365349097212980387824659105230842394611527651988533832311976617520391660540057477628918803453933655536283589613968333646474785042640029784044004569009611591674090261319583501993257818157726174086871060289494026426556815765727282581159843819790888590172499262572760083535869315261752688302801400381225545722725712043370877688124739641151974826479495539457700438944299552128569939379482641461783120972234088642575123032251381402274776460951550911056729816032057821808499933737656824308849428465920463113741419798817734508606177608132343284125712269851451028097312460595673019859115816034417009623247608431491873265544125972339417771688769483413877988775499453422716367362862164045334058977528809386136834668744208874716032260936536357896442091064500486419642675215756871814286391585365410384070014591836505833603464568668247117461872289628327017601246489642427867179614300106929260585605343941478930055209484344404754460557857030535645777068130883771124765858898442574122274975398903116472749601888464523134006430769544203687739729961091339440919653851749630906949731620577758336341051392460076790096573106860993184754261728468140037915107521200071462821345899218988701705079985344923971745899570523103464931036937478037837857440637993442022170297413899594046121368857289770862236347005178367202817556505735384421900696006833007692137741275405134008738136139513624232604457825593181595896703936583966251934093721433391048444343477991880982928629670973135344166189471527622930622996919603255807150608001009631968237894464695770954308838010322034396294988346212542351854820133727476096349547291088702373253920549372454946373374674833404190852557543782651270639027542072478729872096531433052784615054032749238731015375098651872042636704555385263645997870440111752669399722614602853649290071105990580170424821935673339069705710023366229888082636115962956872435692057668199284603851238266765590080989497932723268108560746058760921542402115440756373643600051683631178993394983680656645617434798607026871492824399792728161565617144530299051820812131538324023166667649682911531989859264044534842236713838799916086023925185011102453770583842161715772233121977452534147014953330483491766066524080304132849469217100316860529408185633179154768500009202985480729957081189737856749595906145298924459284639665153184553023813593962124118708335357028513182031925924192378320890937214663165762780299090789152717245592179014742452829889594508281907391511756435939700509354065490959752302857087334201648042400151306260157464017652466571297786156309490335542303067713757428453776794261413503735089671031046304778946194494716225586857692817523796744345172218703598553502620133692532110526065369386964735137787709123759463296290550245853041258082771600438216554605579830823355774043402946334392343764963112428225535550942240082565419686593761850277639500928308316017017343353643705464733115151431004571031921732320481783655263549933253682944252164140203186300912756030016291804045078534030209836471739362036640263483477653420464336169415084053098803088681351210726313831760805809750424686695611906917035579605481446055925026028660359686239515631750543137492564747433363152990554159497402706562939999369087039382677184842842853190620521117343756702664811940724184877551379471944739148448958009499541512477792023580674475995507347647908418976894835589877964107271517008183201278371492916630215978309121018585352762927703322907859194982223121377093323765717911617317496760219339747046600130657499368600782174963042290310586526816766798217396059870676821249379442373559520624477064268926172033722137568311650923595330807024977663782940262273597638354759690988486130918490664395588876744979536494652677769194271824647018355286059667552426064085538999961516112246163885195029718710034150257691216046900594870634163431229477055655021337863970497101881727777756312550597923030737560955803974786485028071683999356338066671221204626980141881647420638606474176818207178907294465186392174899636978928419779434787332882770291703309244980882372997842004829313059119661951208337237380569533262653332787636814502665328987802882168816730997542153874877452018334291057716520394045895521776563740507237143522602573433287098684017289647997127711366377958257330426554414197392866198036735392090140813448206922803516026226444465986863327407846041817332914618192421967448565148653677800881588896789701442636548164589901010143684759525960498387410254374802068085133584161734783286458180349368201794681701625897151016847596585761380042998195234070680293564921056759300873788952116464366585818759371211331101530488159500991779395224433423566464204890201029295858601663337954264543741039789650688281830113263369295607349865463565091197672978310840987886863027537983471610035809002585292099155081415790307866487188731721445466903679343258998569490309884881939378319841599945704116792468317534485283776159283026182661210675526516217623831839555355812943376052321281600565245100140668442551659232846816648298278390333872473377610652122711809990352645507578487554599503133822649094642563746400979025117509626519100573973225971119988543006132115595472839845278847723530392297892127517405339880149281167980487542850651085673709682437134623056160338773161178250382131340544546472912366683887931733258772632767780691736475024849755620177706595982624620655203986549311324017912163432445198215187871979510621151344766507467368630035106867474037972891362255611437111562712459185460929329804446462448350351191705535099016687328806955258751576127186183709211034414913772842859482303857151603655954473105703589708872596702900754310961210181773432002075353150984556211907683830062291394905712533446276776900998775576128920572103776277233289978474682814735729271642883099665487703746176049467199385735452223619868809434038211084143222997108700541954231851807626281662310929832934398029012993523750148150577735103732327835186698181496582369474072541828717413461077978521334460630956990378398353531277623142446671680604157090964020053424337634888860186557864911895418680697224208738111007031331290263614501571947663098174200528406554076228566653577925995059591225265287953950244441861295708514159161100292673054509219507354406163056389824229534493872633889944579520262635458471759786865984411255216533606992449422470530964763847381427149137741412291663335175786688110449444561596555744930066552015800869948937741761988989778788820520222051185318022765748526144024953889680924489358291233830611860071160134523400173443530292861563450392174834344600800763947176059295246709800384136512184128788168063009231949524593017075782814992706210580775744330992350891346676050433152814661918723971412937453485946215056173198357173722003055142334321698284042993880556354900930615640431436677826898265547907014232131109298942012801802817503347052747203734105922042602496245555306167735499424567877810663465074093513482087428647102213356738822463326767014244537894306832244734074629726901724684316161478100459075700978864605333290166209224465399613348082334792167427828724863541753297419816689439159029638973578276705177590617845311709767282631360328301521730312935688343772226245889076832722988597891084977372239474548292096237722547154537586143283066574292326955173952928804652316990307846420005178276998669126560392162116184079190033027725140650226717088167884794778383933480961857089481117217817739953022724709037398614885961713650169089916580267469623344464646649319056352503391588211411433947183632055603689653324896164461561928878721669600923825369873573337474345994963396837639069201602075385665778751176647905640355865436465557063357628150603541853448181925460518812873943000123300719968625429542988720268976802826389341972749072370570909723701232643924727225430213524947899442659796444123134045711704728431758830267092182693363690813886408825139211450966846191030973891064882437464168012466374542902440909194815766349861898310609681869202234817509551582277155761379765218089904369345831382960314075917758387056901058549693948766661389916044367961275177188830023474431603391729994365106069248522304426912493683950352260241772614285507444991544909512077779363634570616250718318823993843938730553077628709098848555948269798257347834365147055403449561391515566164608715626746193127390540017604927247114934599824317924859534450643689368389605551911852226061426995259761917131055446851902890882888877045048453017000043383060944218565069232561246528155572320010078867635795565191946895641266733607530021176231188101805580702714837210263613708979274593277072486682547491739252052850742703033213553253214987384447884081837397650514052151942792027630998337460854909956221701713192290416449430058201401764058240889912107590035856904802191093517472159919456458439611625787439098891568103863517647816697647459529005616307375315787506041527854593649525156601231985599905016839761900295625976453047895948752973306600714723952204734973627530735288003604926955476988359763605780860654848436766283425807107330016900577676818871334920740341325391356784026404719188077778984650414879589587007793981438907863402355173984898033587050650915494551968980619550657700918074055431216525210145617692364110465677578188265222769810918161241375411863546083483906027225853343161570648878326262341905390786114294359096158950951669096634504003167220773530659033089807172218379725364547845654707668341101328069631171584072957401265256753455860085742339636540648249990906615426970030760047058153393654147477151330817228071748936959448533013304395023629280264403108433261952636193101357819090524428963976774144756713088940902569706771119650195859574422683573105215076988183538095094546298219739676162710347243276214275885360858967255918933645230730543624898822207359275133037462032893922442361495553153463210025064693997768845952008921751563934358277296923602349997422960065510340990087752000575019403737802405405416369626730691829711582318214142383549983867086310976208687402693087492137885350395412629496778092233049172496427558820192785897666338923368301252035625029816765262827368158905578920629909813358420527673985097615590597311922363051576161202119855959441004412778557135761988643186678499414530269064206852954840027967609544878806779838077957696396706038127663558281374846468886298519389637869150393313235386494483834075835463618837005723926536995254302220124611239818778286579485461408272151216055131642011649465042245315012586956558382988290816327541337960301794884107611865606355765903591434260783306994125996281857949778143355557850232794123887858637010828400314354624317173618117924697927040033752135863451879181606095220876309020363825516266488132881020606455675577846100334383945418696227789743634508888603794575874488357966368448344600243778431910467114012378509349836060162479404128310179913182276489360753262379129118167439772646513005802748687963558133826546915521709332713654471143570051097506741530518833804902771676538285919196951333919352628098092147731643561315648073309677090951054894698225257294300944535904867661527879027463068561531618970362942138405564861359958734700524096059101264995462751486994574839981680265716715402406794309037066736411925188311147484024447503176123837487056432681419974605272296061842267871288620547765292366694127525896552365364842325150591323283000691614052977539018565812734402709836822339410834872917894078507902486968482820382988688507103651396962927880685630576867738168813648969610114329862651341993330867521000102055387244975744820511281107591937189803112092516004722742834536733516844569622310893727840393183880215557068892113667140512252003059394072452015767765495067422210135379222879854738764637140488620264612751148118969062898367573359112537092047722201643317847404201945774115768000277720314826582122989975014137237076514619649075495450562061383914530713778030100168279991708970702279955904790300147962042249714893529703524375696835110622144586188127854587232960192773267737316872826019660568726404584841972779785400299290750300412587516379515753191100228780493355901993368116967078239948752046991153232107631145934373730197239787376060365660461996670509094245626562307715491463445205360534720205824816069861616245857478682223488207872367007434829013266404925121582156628603065671364784498040725098715268351615493512337528606123643775197668426262603654839485692238444828084935121231999668608921451510603702012401032982236306137935695739234683158829547163820631892955019303104359727338460709599859843016424391455557846778226149926965827785328420931132768194252523780106314784092380026057457978935846203597460592315988649124549644873651386424861283490977765492789597644544173231292009958446908518167736336933185665705695125915977602058195501162094574030511835774983857159760125002195700096125414246690817259461518314996613861220290844322583142255219763441866509606587013830257381622867571824278022803403249801370857759028371856656822331773760840459736145863953988217552199993435689813778534440328995945630199940230922339811233047472103466290062842330657908009600798548021602092138593190500892144601636073740854733821235984552163797697106314607094747921841607322319746766387772346109579950015183931577005172927763364435791433863372183568100234969737500803134771849951094001273010556150489707814236461775279465141319732139821101626231022974389473735060825937820098695005614208877821724238927993132476095916255570613290087051538316123560498891329377013253802377995054329591972707172388246518589525391749134354160826994020534724117724424920109067342554691106010563909151152735016601509831122690870274595019339822060371241604401237439005430983287966733201768158122028503565163055220503495414562308769163118281137263761621327484959948355851625398491591849550652635986134361463884569492956463563726225346841715241118042297499398967163363566390543667045124125124126960249838621718389829013179323070885514355546130223725742357230353476921711938112357808266729148356981800685275801903355202087305714017556331323037988836111515439739952836595293050857954406467118230861636557073226038884321220534258536445740718844280401371836998981249538269928287010975626985118203672202784441973177872371893909046827439005550373591607828724390988288296284951318088090039946678921130541908490620884522808418310106252629857928219653037811294447936246238359643200353153541047810515931761643639587627107523054274115888582163491657603865416058024518212446231493553954639394697334618748999530644886291703373628516156446497031182243325221135162373145219861939298131493203412659081661180682652215837222305119868272535590713732225776688485378367049407331966049889348768821008472747329904703996217131295371733818184836207739018470640224464854945570768977003097596675782152031948697070732672525211529381923045842453936150972949292051116946623677053249056072617326711956517206326086571324320007236611501151331494677877312443873228756520577681313038531137403446708503678406409994124532295711022417353643224628226856455005175702731110555227353850560165229699613546113636095316373173040326229408930162964912510907022652805536096714261013237398446776590242055425455789688656300309823720234069030140056713481532520633858774700514081719158802726835475183457662822425934366623142004304975239219152719783118218112826194163064099302789035715234185284678537398151960455352717573613786681009599407408760524887481900715198889743942586317772837137970730129810692673186641691176916659734919667826695146454229346466509561508707291930061657836864045335116038800520056296525286291162979080265496357740903603475740823263429573489582780230910728030964888818178144559243638476919751983355702621958187714170448880553140790798515653728812903461077339519627863290880400407108276976956097443188956598560239834114334962141209788494080200197161987822868805699025199584317770172355206464921931343315227410865164843254845959075422795494145323396623194032475776838729559697908462411605122626342030415413929889949536666756713786757557350109041633351629437496368237060950763677067907116295317415656770099626494924303106357399483301516240591131161703570469701758552485194148639163473356650147642024657282717253885022470926726366091471169353953821723243652618496034893726470977220700472761521458053693491783014704434849955258247991637445154558703585184059864642036863536954052547527147063231998187242040083905173997290720835154112251427461244855177867635656139328541977122786495905958380957456239112065840271839042056330419241636270298919725724505506988587144602760106388882771314065205774950239549971719894638994559882183598063848651169860305549051749662524181489867296579476140024411215307291295541983670588701811291955998558900049152852187491670779577625064073263910938597175171573456077965750228357764982847074438026621899001661597992942265634085839356359774104280994908844794414703666494351708554204401385808841549573880944245859696367931872642795115304399527445386751085256719226814470032191584976493318870850601735103539531719568411275159740143311189543355207597250530752346040056695113107163367942447872768255801173229082163557466784802230503412115835343342766765265031442245498672416990856331412308819020401383321985394027758350201032756973686269707263445069615591300535118473847053297554254850638253427057190255912462708154210016565221585086815517800374995863381383827381555967648477344346802866128208469004326810124074384118455763025593624584642900926888349625174331479767928914743185578226895835324418102966593983951661704055227206804475898598911357856215746990994572557810866583666076061180643085871619665166372459453741784488612939678937302519391658902468548663608739919585802609169771604538579610577052215650782446297527146291222467691769292828081993329557738574754026445409883692441924275220977114771642967882248898190766189138597079112523248500245594786930820254050318062101889830837403876738178500451943850445126885908419084555851017306312177477285077405986094979125562030620725082254500082258058200570723992646168309347293408651554076121607045405069664457806019433705093336263283488674539683249438841013548783538181827289219666912560636856678978474855713106970918712343402738206917749716674911846893330644411055594991791279489514677088320616744701784052952863543101611713151213093038432245870496321154328975550097203693667734133000919465434037318781709159313139680866813908480901629833558139433039237234278936849350568894443575112529640809588889524895978528033701658420520408933280078350362571662692915484837792486613012831616781361588065171090429771303221638454248390341287962527348175253349999858012194137113379216396575169511864849758306842996391995258984151443035037509852636014237601059467430617620381355434273838316650071497145043890554634627442851955962378396694321659379371194133090884503678913063780230200133443718880798864039653417738222107094564643270118840763300266960156924355736435386544870760649917298878591566852182054693802131860718483098990530208376188356616840315596262616362209186587541300651183239327555957936072725350519547885235202239153943215170649580927544924135150359513737441824040902612436408308368905130691376619418522583808532941814329544828759011466445895885072433133623357858054359378306709092992008715893846717660597845313833413447726049845261308933387907406809892031884018599090477521612184194944210957622527178583101781363161521729769988127074963926716837218081743523583033256537120471403909392667239620602723315317552882164712829544818924041128538346726650440614976157443116404097957911560811015722192738836156225634853059419256605961198934980228200702234850614644012211126775797451764794053179286504027806444303641767578764304566898294392880546419838417641972016493973386037242581069187953859066272734993411446358869887883088371356575942400471188731580395809967396671795023289600501495517147092246936012759794504309393275771864778105327747290433658183220460904513824475621713500030211011762231383330120028472374565270601828538546999440138394045080007492219126146726808536574533976810753270056752747678267222162036168307375544902977125108033466844250163256967262075830864180278637716897820008377569176835209551326027363740458002559181925412803035072185210719371739806871760272941274877097518840872414999235805801865545790193253575125757468903530119313965985568784728982607763962831781768507011590137626457532014757567690541110181097061101406594197062889195574451924827136399855771758117983486800546489592077686910443564591947533654364392095922614742358848829800413077697001838551327081116638498204848638366135393530914599651729265609333735001594560484697100830033714939353961961644076717166343518066650587800225712724642385907537486621284349691059394290741600847567581047808590827307270112636086532484809808954766909330510721579034823727391805128971988724465146654413840982490004968738984152116360609805738045086749584055281948282734615801809420342315726350187616097322369503425849860208133803242932239327238448489606045022426860563441701220573417433583628294491610879752193654872925075373071541730204580016314396360589595381166033713769000491804947211258212494041085947629904811249866331809933332206964247148910547821560821262850775680551085065440382281731208745104990676551246356714224561569666636473228914477653367701169582081253710417089784250282852703579769781206959651691302782038945038622864917595892225176396286237543114142171908688863316787928997931251340816991614088483344157905087651365175101044343205378617457357142285205745325832567019994822933904730306036930384104194021006375741660208588793836915449785081959770320452930879356868967449515377758842962929504591567049571128250607262004367841806035055324827511711508383956610976864265127229693383172821285441307842090940640105277707500798418085191949602654334940483356584822198208310126712526654338840599752403738803446874706111253271475495467692210265962843999193670118975731259342055467284588905409792302016275212897882717131427858834348418249509957016610611735643986916243244689925868179739569456570467827112593029109412977845900460109170902510416401842406404502204764155334529917001861638781183039603709506981732480230694055215788691738231446305018916087201773165461843981290739546051726686539787664072091465807654911588610283775945520869391227921456220602974388212994763291399777719044708878382251623095232213905069614932271721793134199268189727948163156408465828131834612496110065481945501236643076104661818248190565732803198736942711769115946030120105948925441570332597366437475819736585732759820322741673839920750091334549596891127533012057824839986961473915223218124287152320723946715459118940380875206857463581652280475543000454622022167379683762046774922988203306909478505349072581661080832539103291376843335214320690994593520351697947764533933116459821095023755533762954493569357337875157027959784738999916416089654869535810565802007342044348544384512676680545729866185395697168354577055260950870837662396807425235249010968661335122469459370384682958818902978903068889360181968674547305431789627970715747173788397587961021526403545762655609699033634711406510751369106642763886933684887702146071455573758913664901489240384880863453604559010885502930317776329376734702510361933142264012448872257020692723658626904145442765994713027604714958114889433310040384971846085170913161793297056748035738126027943394610757196894512174130657761076741300444266112566474561132190069221196538162053449982314038276582067545579303785229837747158405469736668345666716677627545844354242296465914930835595416639568002503943579329897085028546928475661044533033715850246410120453845484069095510604921380078149386326363258035041657634296917182007202857258253144309955014512665174086161120697864193005250380295060461959197496881690690148105787931653068878182143066694702589391723140086087351181710281798710548463671012843230302613003501783653334169650712063043034146732817446933971426829003852232714369719711132495218626908144901933351976064232928253648469995260216195766334259101839022295859628453012453215597177921082347723383516897841254289467643261846280368904067248467724660241344783114683793386530101425764580207614961114677453420657307674184266440559230297206165161901137593902741035335199873944313339844266245670241773744660637502773184129977074419881153610038890352942599037962400397477479520127883064462630568867866132391804642957012959247814498222002088380899141994714978845419671132486367885157024273053372708005428492802814162514149995104339662075937808477069365636281505701042358462507434569832129882039084373630878534357063013784335177249849837448758521091220495459968164906294408711108304211347651983813531037620048036861384435241206769337321833761397977775423542172426860587418531082122478049492154299243837187734342346607737611323721901421504380108037689755752372426687104266708696549046344073364988811736143527780976550204066476456061468584631352540066986509858072698550158098108650083271787364880300705727039167971338385122126582051428805982829189161441338795337598213320151412091392664659158732777024785484706628361267538771513828299614380291805324320955769404050162983397324809236792681305932369547603204596033672195357843185625734341830744849790448384330303937137392302237529714022143409391936263180735227052171419455055419770104636479463195362781765759110512132892866629659704143348795477932513934771570364434137831486699762767451867031974975177785942154090938076832688453445458237414461027686134958226455215383176878707809641506742496175358437966315376552517438949736251632780110831376199244684501031551228508888205683623267662991834669512992659639424282041688551020548512685162893606835262432744146140070959259217940919594485830237743921749606958816154654726190599349916875742279239732996939760761136536312016184966292891792784670077609817613803487887998984075622000329881312431610057124695218430742826277555982065012600731004821688688783137346590022022712675608410777760321382557053874473139531127917999058162985061471686046000311634465700590036477035293177593803990928268523522137115250617054047940807235852147349464044059895538138838368625394947872932253821200996031360613480756986544039262662804897354106516726390198831799611555903161278989098804407559323703564169482429290598191465253104624500805994987440760709329817188661297580662442673840371611220887905179593171294476501268564410368457157564037249210652375887986938413142968417311542493457602347511020708732288453464289436003192754814921053790161681955156729897184780645569083060838662060879499257391710033609644854938013100861757554273175648242718664845389717331275230321157531699892976631819172430962243660388051983095758020844033763736223642259142792381960931774518916580684549540594333080534575702484875794423158837899386389377478341858832020443785847053186170709039633873129264604280794523136209475894918652869738825558778113870121877940144441787393540708229757725861226413208234504845038589180811076973637508148236650494820689576408046907965678722239661735376866678347417485417614973356476771352620146687274428802404477485701940957571257053667177140934209099187825347163916952960574498540283820056955535087158929225438560644250789932834378154156811034210025330543160489294249004437516296861302266063261758234877087155961222768092639807581416395047030151788117711646863213295714503806592543506506174014313734650909782303970220315655835906479058857887506572213369053113906388017780338449801644767688668075329911270072573244188187154314594965998446278110546016214002567868374089667755450215949999824225820611283994260562714187123999569820232000903373049740904060973189830563548331364301222590795567199337523345107672941516624765141992104943273039684983674911694484168653849683794478243215918025018860919676798831881314449470968481185681300544144303169888404002563927679216864267100019102499256391650435834595539936005410608200594261826614827549952827789858404957502257806203914570325735944253035400951941739015933906043411513454281994487989698561340963926479897767592258904505188977995547924272708833459020616308143039300702382518418353555473164211649334325935054461777814714068247315107838269675684692666332577776103511913388312741257302746756627854938011858132113037047470473051947482083249557500721823959894821624918305152357755131180639277770268778911845587669880480108734120683374946131824352071731367817786494920546898128730299333310670261260760350747714396153617361885656182779792164069334700041329825419946930327156437053607302023110956225046158636535476649862579806094381685484380330243181583547378609098438086312406406639466108582843226020701547705910975388118690816742324012285034450026521519903694706383881229162470120094538617352001281561056987381805605983271082070981579279976918379454801109137030134619273468713466153790416340359320834550358349126748632968486670130131217168317645234462035329148548661155156307467011807031475646096509486165840812473188456069110412635478893506279735441508304372049545329656195198828913944766220844502140899593962217011439043575216361714889069054660280155639080979183198353995610567462939328250412158467268554896121710149119447377461874939033360888243479066072193521248790005636331445749801097029983453160320871279822222013273831140138208250906200485766437258772598274302222501445967266788912613720787322758299014772014187801583371495191696016607541828852712252650058674545400293828869983335268824853634931951142178934136099220628791703958606457421967992454524030994630850174530902102147886319761253501898694275044880528709873102816131751185161426476557941503592742988042932275476039884781553270013078534860350819519279868109201128101175058149333166398954701198067995331451382676680030668371691534305112944567464289914287024687671912523974180621149185464350670878273423463418424473236406495923620946574725647153578504771524508024936668661600059308679468545915020134581545787503588055567556259792719629762793685787874332690850025321828947769209629686040460430998994662776836128685188893932654009275974546286618592679820928234370266368802814689800980074419584635382864258720885910823064488988250238184432415075267879774900098265002746627569396087227209362073512346384179322106206176226825943400010260010601992262891951813476194063415801831301838342737364914767626186466286755710603420219496511513950682684223819308730985846000952615536023105207166401191894262071620256051243629977137297827909191663539132278072718216778698832468347062025651590626767787445352636892250952114615546334645178942503103880043508606745964796250538150159983259181349199199464830377628618821060283422912426219349537109096420706053236119698676504489176088001935846549408813622021899667464058067952623173540597422010985660299680154843492140751840306674505599377324463561164703051492654894020577045250591286257339757097385091692909997553382661542781327206138485605931380178072904743053162743279847192067861924268307800073136767266582145340547663459726298433309430934545006721903123767205385526436567101519404960576385487831402786347916112657309341813905150744960398025372366615419878408442005448332492971787471501305147549822201313856580566106240589502768794166238725683887728361185894849818617081915773028558120864322839107518823834847067184055031859322411229178275043215355032935044628785438410511752405597094255024330572442501648037363695641163603865969185306104916837292615185072295831637078439276352652493172031084908937286207290969067856884516646721074243144123490640354161684952485390484564952435617033618527399915540424341978067326010156880255033567309363118033900621333671705717525252013157420522208901519237484838359717368680139094385926173234996020332973629018319185928183646585326359989301301413542424614477672111674161159758131074192328531772190412082871939204858763200803166967350040202831945183633025359559367756628062842571533028504125848298985594954740713498199618856318441318399139360954263400825804692422605943645627683788012499384460572980720768010839744677783847684879122282490491191599927746635628190590035747466148477225681792425052562096619282431261001275860393423439867516340099510903724794645067707646520413314701373132470404154484726383645417759959710058760640526716595202707452509337440596714991273221937268129687750900363428221730330115851835759311783093271788145376629328458458996196722062564254591936166909223444929070503583344648879072794670069005299999436641237548300969646633982090761786343070868097091561167214779909464758608797283734000273596842605018678017381661407779405835489142219877292460749568131398274486757006902528245798488758680219315360323148980362800048721268157856158856707298875074449193212712886508490618917487849272360520293629666873143298790690407220492327155999054537854435206537895342480572663721873593390272038637385668258479309293231820496973601286709689043084684214065850805914036027367533025821691509711255124441704307346441350856172184170840797422151910308126451533230209308880749440473597144811764179395182514127478702953873018922033012923210885663082808870579170363303458640960491464090711219563340337219515058709179864397080943533591580389437583110383721383703656006309528065552269084166098493251817397181236835106279075603383280687314097263105716674480868969865304378099364165842723651895234755474736190664398822198361972984633552984376097722403988486632599352317895933751406153063980833287242275740726617806702674979524056791844126949404754809697777467802556963629537192874496366252927310931139761835341996514800842257213093477707844254405241797979877524959666347007102055687419435132349682124232419007518554677514072662329714325563081416449832394249525442863463658483338280903752145491860168354139697477858306467557002618505139429419447539053711222197020753347107256600553556924238828254871853557904253285942538979026166201486074248429950044802604784134133682535531951147558354611772650692809590011314569780561418602283409672605201767411193157403959566102586122065172254578725139514865169124367377521903259458196306096417006806911396934878292725605484639057789242643522339652928918413078508032734162972429826887916545983888103698780848346864599268030712400220982231354375185233007838667803231551082630621320312558936217772417499183466560016579536678274292138354694121650617706587410594975593026184558441016738991972176715508451333411641500088637932284466710595870476237018280553851546754988400733921607823689681090980073490932094806582246341973357282925632893962658112835984506113998463070579047650835313054285860781993825896671810003256715443192191926152944156495397627004174996998135773767978046669156138522952737458646070986406906653224275357535641699574658241391188512585418606790157938306529062702654046149426592279342836102927245903299230388152836458447037606912307022900731013005176564194707979617724167389379014376890247331076749599528482939602099494411395182157707887430895246326058803209552306125720653180879423887602851279231489852907065875922657268355490878328986132175801722461429979121470029525738433733020279884933208898569745264354181800462162316662035551482153422537251087636165805976512712662536121582221285655196692469476178017530670410093492994731629818611307407687718715918954218946434908100321844147697709123561930775134951026081414692422638645732345623010335881141926939638306328046552949495474708376536321079582956140556468816295235759322089162410936690589938389540026602547139432528348239859606278630507961505101031662301622638734718733817554575343927524222492609938158193736718700282231079527656881550128907002668205495035310654126102862410256935490042060292073332610262876039265745783108505424665997124195699678964457244593051776193531420598406783191863171958201006830391868494553479811981020285830550119326398860411320299289021313207491143528708995985918139153120049887925444751011430473115039473995161403988454673242040408642167338476639992533843817352191503676840924841252595631751211059789580329956494319662993425885844498348968289214368844202933590036336955135749284222433006113793472802638624951620739063592538508923210061486663737469599021928020961478720437912918267802671998676881022855648733808391039200057396854654315086505068787086613120250162406265991844133784021411837621773656013897673790064440753795517478156103506013142169832365854051523480518103454154432817380785196388495616280685751455913595289881449048923629058485024013654568669317588528315904187452941585937677323112081626518805569071511614533651375640305403954102691380469288787342161112700940333501755709999138751064998151822174828832657257363821956051734710765393647979552110106423979480487111280006489994255283072023499025015384380607608429767198443684709300980194562417354403791057641090251391703409421978710188697863023538273368957239210220374833137162102713590307267979337545276280905317779927083260723517640480194676227934178881796230252124872029644628895112939066629709704370355960504387364213216610492512560491941857494148851992522138507547873165576605536590268307517645337858348309112011633977167756496630323711071872703594010448535099449283160014906804535336567251413162911761820206424655165918987621941121614147211968493518278002083325380262308886681518423863965878451231160365778491246459827804217044783962129149230033558148926768401217380987785462162675264027482524614328049961804029177083733443468288629259813249046678576088094578221987675288875005326320403173269876870547078967100283852001015912127808939562086059489920073928618659677346915346592616357470974523476120004554089180059882960198440226631620100023314998844532476866062019914101735981612579667040304985563419077036753498443557305691822354341593919432286377125019527841667736564635065960433927229142100533662428852555017236875124907895492454493927570260390476850762650765092759823874534727565659470400656092896767386940233608439503652857721282220621892758575182792087265166830574302006532852529220809803154091158866370142405265108213452670425277098468290276178387577919802722021065132328249653703782482171026362371108114110190242457825827548691339408480579889345612092848883687337873978292577297283992419956918271737094624231840017977337613242299140049516883585513548587411229340068392259408785059648999664789794444669268036368159001128381086533485074894593970729776194472055067271524411643937572069597233185113578288154415120042507819177506127296828541227961979582688210551706270370031452078679874403667526206733417525064803626051456440527327484775643473682445327811749713743636284442259976652807417305050143058225697297427664796329646281019083385949983384405472598870855716707236096348993902678927270941817917055460623934584876991157097716567575572257243890568628494506255135368154356035228526749220949101986678242144069269361498579129920497178310926892594059292769063271433532421047013371178045174982736810598686323810354238991276944665080631690154677024529292689466249768767714562260067803562182439226528560628739061037624533478513446859341741731879251662223153114400027034043753362816598629325155957395193925584387177893815487443334325134787608537717798769043472597135796886439427818444438224439202798329370069277026026934706150025963451788809102795546718578980928819072550698248431473932301307843830874988572245965440137512435719563604785970391055490274342353300536679093291019734385287566646682230799817872720455094848773043734490342918832085118377511587456310119635290527367307965907209267822081333022598477177024132756244828782727545429382532634093351229105720807984529530615972447812406746422863537378261452441367582897788106607248883149159071200513822090714819044321465869990692268757216897957875503273081274863490739102191004070057353525882623634108855258779079519126032998779862236952633459261436315137808831664824813418530625622775289370209732651835748255787969804739174895664236022737630086919481713810082503423713115496387523534246327848065201920182310116024326434065797184290120292792380604030046956012022798806653860291094745376057265924583939258512195640133238192095208393942740695033297411022396356386163838978353092689889471181614911858599100775415851309116404600889909118066792379352234504081705618824398547600107849205944491526567384573079899292492728983028753494896824031399896427661284710678330683206696581990827680144190240309730747421735791577252664276836745568447984775807238929384354924482275007646950451668151826408479057538918098605303337785480581469970739095635122469176519208213965031205958210697382277720485710780144076233330890305390732612958343532143463111250617229254627888377127340615830754490596430408640196746974578258199531241488573411602975876384623308811874368790883491631060544980895002326733315018374037003960232928395423584236150954917525510125361140759992834258236678540135151562848943655167329500313195616886672347349523939969745614402415598505372723090363501406879711853433027706316138683669967826876706567371701557207243109791776200443575284319618851275003195967516902465819444587423792041023423622338291069657078882244353445792739844802173625730480480388010785338645493861257176306260672136110660875503588124371476342938738446819528289650726702085962417774446950908295751996073779117245158462311528046377143595478247289155192006862516749340027864198958599601610619899494992689315799085639412411960184584569292494305054795049403596909784791152789539888710991124704815840043797727281378335076002893883472054048547548583257735142858625233973157310705276093405067893620828916989634998831708395098671850120282531706938368051734133586044587517568457867480463126032503985820680904652740941246118351991829539456765800795015255502669536539047456828459203389665584680251232282107605973741002435575627064106271395116193715575155606192356105265154769339619166924353596608389169610235757327471718808461400330249824571859382029811332955367205601020405149477524914278768661826296886733209715105560194668749286437207175820261333728300054158347860915225133962131642499332083703460832062102222761289481456043917251693820037116000279670932459847007738302799866813205138919147752491141723790833413297127284071698982545462893964637554910199016657134106817151864606253062537435171081575526160757451477204848089906696711663530703689921819767722147433290465758805809402016309833251946237288989891679865429541705844486422727179121416257394682814259558528805713871103247194989882244466393208448726324078024936545243026152575813774362854666591489931919235040800209569835669449055777834029485051291360598329615823120699261569449183606015752240075896202849734291129631819825855187476684068474858951465181496771192251629230876898462822444624629564896385596170537381996255680710184188553230796715242224134406055614080784202331778451022539126633537376743387739617548787041029831721579917903893978225620833759883154158311288244392092551702185399073851504556132111529244880895692766172924205427316894311132354442171628521437266181630816873321137427616957076801964785493439887883534502573321069085362779824425637665384473079745702170678557518536882351131530741586186371716844746657731423128873085529003205203010335303288075943203832748217989041036988640247525895889521915734052167932330256374090681568674905922839269985671368112939403262455910623757196949467403223572130424814938382586070635608061368342652426705356156898358026558317070001982227403309681581383224288466772234162016047751355745112739604028261819738461395060582265366375839452517218113631450117418860196455697704136469938200768412787063020397977367784095877084851144541892310680719562574978821723574833898281128786309595576940725242373780804605741131332042581393385583037990136996204438480230490435770901948703503586551268470508506086066085299239762353350229208609552529063881343348007868164597802057167040725331517933131203011935743255071960221161605319222725841245856534443283586482293204166665314328733486589614717081926311170503454287153313480884507071013982121933869048702781088696889702136443719760961482848784278439170309272956972109900309659004965639749228849047268830871024904915857850143644556879328814505308387513412978308228337656730933195522881031101497418004003624585345594794553962693518270146800352031865194324066343883469424937186907791834761196348596353560565395430544994647571455326684897592065677129866746624539121447055971563460162464165369187021988944404126333927532677909079792674574050968006689739350164142840366567612582744934382536834735035588501194852379702117802293331962463807937152453981042384376451491715972083727255367081945756515754418927635566835320037502331473050315510777630555221536357869902657939798899682371172496798567008349167900535234569867011966822197851322691471533824992073547342818385705360563312469679074531015171078227718048978923097771879953531038903374560058321488651338797449875794647798167849973174932526364162877369262993913838839796808576666610859010357995237727657584484935679641048587695540278261727867419006723176259566448300944911649773439251141025053498018472259120428346080701972674943958656077700579561037514410520118581096462875031879190009428227778002723633604003458665708377983381780870547746930168382708457383804259039986833724448501972092912380472586549360869299725596106575425550954745889161149469259335230149714471333711405417243176706656980518862840748859549864598597577852412852675646294600110081926599483014853559308990890934869930688989234691130378767865187891529789600940727416888564823661596509237978310741028992466482981422404428742584968421411913684602405876605476920865714349210001850752729457816221043521188414764640711191610216972439043195900130266145971239237627725802276289301862096726372755688417952047045787746551670231731811519909702314507957191455136622860305921432065406673446951386852642947818814406813533006937871889623302395865508201221016592398368147280561240223241228992372102534466940342342460277522471794042780422129627680094427799282358695012034914960664848114276889677955515431866184082168031593819234389296817932882028825494132909559504250805440822323934479474615045352867398350547609422126600732872551321225722694601323513095787568787489283936654996136816733346080472871646743622757106782106896110730390256088343182155503130784066298737346414963603295572873115054024312288480663436234295582345306835559713624218129888691758939246027234316551671052910125713877371292127845732960740441710322672748576798919316976075782863819905737002300949146877422400188860743530826241338463270818773005451660688561315955672382986764811291184116586887863001941164012103499002269349870909957571917834515197214900027283713749987280731471896638519011101865185157970108181915521321660698429325609893686920138157611423789583186016762552121257880557717745555911644569192208581899139848470892603437073515684804657707946704964514538286385874986057770914224167833020431664174129613534687794341624355557650307961229611248536700226041791651788568346415999395268139373818752882921541153056275197479591839239976910174172393167032242450954602958365082505302767838082152744473718164274321067666476774292331484282932805456578974131058052585109452410217822405413438139868648562072588277179571058393595699669453718891611451135166810706472237489435635154436842828684828445698454557037171991098607940313902711168529968793038930910529054179973236677366649239880198068029704782600384100829702173390369367094296222215442405334095725987305363594435167826027542217424292117697750413673813987308347400918245352553671151686278212487456273921247535666880239172861521704516271288318341783524660351680294322326581549077878741907487876182709572394537314798053181105326121474259577325436809934823939489015878528846296713840475734651288238464587543473434249705851260571747984530806712005648256659946704226728082854659674305486727578523885323194572000466389584293730637341960165689067128528330757106821956701108849112757114632486019267405727483820449064742246788163344797988819668987199861528150117629249586779986320394675142072783349615208901239047630301509617636323598240590552349962644753236273872027658271765391814588951080873127259743595157566716999235849222696369131334303301390856609429719272469883745450306888987706098956590920474702057910875610703285110642815610126575726530696717155789906135716006329131175392796740693748700482265399600496122366962934808652990600672514016892464156390689005090401357950286910202663942658531163301570195354282222172440945077899015495421406193482928312878058085583269652848305791963764298277685231341143166997730422610513963425353366909395995830665514521402112228599642626605303889996933239270525839178073018057022951866200959946759309230678694453988171770538687453761935981184719460887251504264760766196220772917680017858930080590124920117614922576347748534915447116040598645606550179701737663139334268163179286660762994298857384702376077472141267357351141120199184848644344506196496681071142275374163884618205317962478171367489439430427701481078954842935585992779613652044197860734086499645739917668717837462182560228428602722935484054391901161142030653317056653610750753931075096717210772191672876249790119999453604433697568765717344389207058798420598544363619171579068039804471390375439972674227278024486638355112105761118339100199770183964842502659762726312256059795427695456899534492897802028013078871219812868977137164230137028944760949932551048329879595888539438003945267573873649111094356228496492286827650389311818215586461789855746831340100011165806827659343564560589732855303771147165677100162181825090086899695364291598565335631289456473316978356981174122623444707199937279431368810126118479355060831346714057871304931910521291238741442512993056683261535157321078480075770558892369098388378438984712808444772997143309224641710784979578119087149047067378042368836549234997943249964680945384259434230356298545716795079390451042085054462352719485466255218264141875246290692962220232469320430893191378767639986417060908175366700730970635099034757705227867694087173377311454074368784336362108284625071964245669101652775444823018379474617035957202304501286312614461759903486271662120434113104320440512059189519361529566906302260573869882275353836077513547663274536449632981248426803405280368962316249016494116087897892111277768509636150638469354927161703789720855910275604095347211364969266995228757634003523694843599537840443232232841947991598797783367486218360266775515977942766530271591404813352775071875391019429408476231894013746642890034613099270318964684538953763535953871434890429007513850544889223366727029206438116266308164230341670914962841128173227572345771231825745316621860284480200383056231233804103124204417398191075520402548200424729449124516481272218753923531724414376373987614959932757753384952354417676431532623645267649357410021202199561731200146852941187678851683740775243240622654833053851574108079340080585975039771581621094834422267189228638291499944605757506821982005844821955129398589364792475753550104157214296887525209160177607255387713055209184114942104140734987011966871107700020343630694182807597127742308737825562183028317546741892322037100292733647156470918240533454765127618314958337171024261334936041723379847154198919357064505514609427470669534947594040591367913512671629041014125279108411245134307060286516679552032691137864544802631560043713685918821251524527302860770258261177559573389405899556903936015497599695251190279681740396519521692846342736661443641579084155814106375262672026716137820926287215749421838484767758175732335853714266827161594032725505126461947582837892593273987104700365445082240213485377375824990807567519660919797748831347621379680357207369012706654204423488513598900430613070033453068393313169977951606014850867700584675869888993037116984360322800007754485289016980528504207257826623065428521120848823558353973678822754269412593043089147140699029492210041939704693026885689209669006311667367156226045946031662103048660700407605045607881944755806784889886766017374856788485259720100550317028129982166055471115539653309961200448627433215774740592408870309535113185050910757912447379703395367462270868253996476868634174267608674886666087365100252777154252391435890751357570670256874694988249417910106486188046689767066432706414251731470815619849255799986845170902434815318354105211084676078355937147621226963787098525191959993450575258836325380944204464065067388455949231244652472405922423731640892980032608142310612669405097574220347320795230853121207497237216463406042527518654203415653705630562869638217985534286670582744150469718982787272988911281989226958385976130604563524336066061018035605123160833191373831003891790517088254133877060792979718608494040744595936378422471740084764531630957036842333769672973081763079965124302557003191524704973349188218733436164017017030073354479904878403162352909214616230468573332854325194688901717134376999129375990806710653344022551026895449567361393911690842659066738818223518505885935701001955743497322615153620256799748158614174354619668143051570498888908554971344497423685978645661488521073487248546576484053101185116365606254920041032011995245032951365385711379751457807647921931084726847970512755951963352081226212688547351321338062248735074272883453656320394793423234153162253621297940392268955882124661832049727490881180007745664296873094930866591656286702973763692060668585361981483349438503208367923354494417868077354748991719001696595377107852374601160718864992556038941175617796379448732830333309708296899924617112561638398200998371705709660184896005895209072630571043871674900184306161706898047567695268191587320141029257694688227628091240348642433823380108885922896996671573605627411563471256587384277739150551556788537195577146322609123768675938085550681894416268415166401551873736238124734308942192136264583620395878913587322970373286831334962158271503537347539309697139997011955519889923677573545167568709195007579042885091458858608080214905997300353543156034961753910229820487734576262030070081423690805339371627996950065456590316554688075220661253528035859651256316264147213642660250304820995939426163036127151864905915929824785950830278391675568137350950838819263524953011652272118594067395284413388828726060505359366006038338231975846013418778885810066504339171249898410177858338279073344348748971381527190141815810910599155607910977170706848304468990552949613514336597621388394263747425050648655253697440811660466794949561022353288949140823446181972741195175088132314388012364328402489390559466778803175933676553253438169476083353602247536187084991004104420792598267079473674428797331269845839430541311013826316191108143011054438012845782324220492238417446388069402621159657006064103711436309476490790392799531298682788219268569758820184628626693150306740240307895692306317284069219538628823138252940265020275931690741334656583311550323192367048917455927493987089955192170166152888039956135916721027345015847653676190937788080055690407006734849036866025136951381982011547286277634698292492530597722524329417984031400598929910336761878335776919557966433036353088424414083233373238958249528722216237860059426392289991828114261217585007270585403291281145114688458600552418326658829267072813077300392885003105017248172409197466146864973046855637049020728601470727460634403937651481128468161552403210510407522075895543083969757394377657181331697111406072762178117734665544854089746732532655164165123927418027324053012414337199359210073789736842535898668212850367681201184259591471743578011074270485279577121321593684389565602028066557052514145197530915445306640651666246464718561480244676968753604064783666792874587759218160292681323675010636105267776561078286437795541478626906446361486435118041679649880792111213805806457371757685193603407282838309497457247462399467115649911274486323573682720319192354422062547406196288948982887214890315495278406180440673848236360050269535023314295902331609127950313126744627052840383661952308951285432234171233956653452626606480369383643834982729949597795824595722731285481241684966856590164651323845085558761542260828749828839241794933598878965500595538701868190879831301564341726538564116676433879889663609996701084854665105381794557594614008052576982645243756848159463567911663531638352396179648750420548550927683756238693290916964659715996020468512932376340952021776913014132890708741153550723858357429928703774901589776800794508590153895750152778944946494154324697768200737296772623604795201021746877746811069465285054819443120516903640233555942144701271343377122271046553890513614952333753707846296966897585236185033621187155427810388416457391637337054075338554649204975307306473267609003186551737705177379583844074543531685797852387134392423978529966198321220011107793830703596511199348901367775439584241388643500866896612665321385782702001457254055482049819343154975423422494726264947011423309316967722676125886494090953557731244745571573700793013645250027083198115369278104284584376619870572300708623430173222744920602950612281508577207270712020838131812232607709337869577442297162801018893937345759469060552582596835521807629262011889552271925053740563169615763285625369073167779056588185075842252230566980782869551555789641247828392852891028211496586566300133542157012807633821450042102989751656485281438830668770592920091089283644716789581798360944914176032793229357470459690836965337439171454845399238768359392375079674767633038480657332215623978927460582707514636797707021634911557194327393029499913226678722389969777567292971035657706479245969220865752192198270336096786632391999339268850922574988578570880799772764596577041173603038968887750784208655907770473954341808666058226430318985496509170920807739546485276787929392520901116374922460757850794423144613804333593278178711921806450069471547533510058640290236364576075954492200960122262848011095791113128545461314880025013100086181750187536302593887463399018631057892228486016032727183537295293438173860422650338333768286843049712171661473782030864066097074344209127234699039145611459496212316502702136116108339243139203664802758373457642164594784465858295525696534620316908505767745770491838075678893596814537457257257540328984029058829481493332247338645135638025047091229408606344116188045856003142534952090629659445229972184712172673245242521457297197560145714139660804685596636908101088079715867205254202887327096499429293540746313648346483253766865617761988022440179344110286041031204790425741237355637869388528711941458011407736759325626371643689306783353020943187729544831763263112048862228568289422495980301351125835559109885671875836542534921844664640112607866689078296661122214207772390702261393431558960096379181337611002901914388562313193880819280680336727056813133533207172327143412685299709319012841243728749819300887771999280315242468227109835885101681239138321172982175513276623006570344240324090999858407756184704486984531238842267063558382004628727539982874403157630694482168421004720444003807415953938332638526615816930161601277794426455154172453579869662004489115605709129854942813484184086740253770562379090536546868606622401538724408347052052863882560220132866369796676150784189406879894920580748406893060212992812962855789584342611304715596593835428467419446196216148724604147013899353781775095714193713571030004886415980076720944100988137458668083880796806923692253893641336912403986722706683410171035954736956172444723837378205910430818046141969115996877755426564259923762962243446048829177681568564322142706578090964892806380110619271390282590017915667664741849206276025925483444231040735114890620982790279960112410192523174644250238914168775676357976495510674445051432845698389622900802258176614597560762089133927117032117805379667241105545231533275143353758629158570893594344552064573563332535963462427268289415907001861439594102624935978535759460396376446483657216383368795130901093408983876417550977738588857822301822531232887284452418364091233310309528235019463562380222038761256762909870938548442289465299985505353458450759467759797962315841164122329623652329377424207553085189965464754630812497613073541050926602976902641509355966814472379148280824812485979368684257352776062967953129263300449765480270724367574328895349009869439947845806028050897480495753110773939615715524441464593452788646053674063870683008613404759799745264346791583458696853428755618246512607909814215150428855897435536922962839529684886129938267674483270024149902969487185343564511697728268266655697885384486243203827400476290857540328581541030814600753707333378006665242235714343687027576261827069337206290831395370127432591528596807833251861174313829699730711797409597525122681430409191552215429338208621669925695976178934211704201439000550505572472252036095759651758214186870985559755807988701375130383924700866083061276763825062272876083937018225524313091560192527108505876169972241533394635751012923776577556477114589892348973730364631869787990485724028692548067884200602544969707197137492739259058659081044746735958526689671118763467676250109556557290949382656280668524770530185147045114536374476354529404777183437198451810907624548362350521084367516801326948563226035274030453302973795586156310858075742212032595194073881170424430314135219777859764454001049644500360440410300527541422600427494951458053456763651343761879999243920097828697793356483792026004906124301987672490637351782504111863400812264286707102872783473343248208641496505910598187427747174505208946386963957928857816459813099396080733517370038788235257355256528905217624161040800135871898735051834478303738038120660411303395638860349741854701007612453413936997018165055638260898105184163816869563306100794049935772120651385111425630388338593704242338980259416675499386339459029956972181382712848433009208906829043603035973980008758757948701788553441534901235344182895781872149640601906649354931650341722921044874059817138755275242868336069177869695288444486270851359497876094785953411168423194557876609871723421233762905262042615659134112222694180143048015216732967806218615975294642589615033144377674998405401554753095852576511973510107197730770777694180152479933783778692604378599005694158314663999290872689136882780974768820122184459055973351560661366076108709667778575537518017202036408632968266701867647122067584218858318596143568698799611741577494271878014654462912279618927978436304321694730555109939862885854338624863104437376226969902297260609144687354166646081163566298656737370869494826935152509594653979476200357485987963548703858279815704107094164189937820787305274510289739488877623430360701635543429459519884190990247660289881811048048512987731828487283681807545746154630997880919496759007858886815270671365539828649300102048328999242548146718943859402085582285456396591413542242504639767768273299457626071848777151643035351584440175031241706496302551212514138348042005612389635051628419318841519869606998554238300263867642731782056274029539034838304859217775821972829077701168390743757206441298574372356208321001126015106381128309652398516729127957028313673345157008260017087773626584482599269602982804546865298258527477420665520737687723424079998152402554010261390766324747553851989393301613977065267676212031046346212962175471088995117050462874062450566448145324149144872922499721607059739299737037570751485809113122913487848421622082119751699169400897059806165083671238232489114905444594058667878159660611387810033029192315225983864207315441517418143927577636420060344275564389075449550933455433904012523765442704885874148457566868858259799998844594857524775467174328661923085283130345567855160249516147209886195485959102737324697831771216359613039755387491365585732379649577363576671063956833722296362629786813051246872495785276556432845014988130242400166409606620177346241238432578035265791950583692684390515040928495455396489350664211890523971991932971288363057740766868786255653197357839544581143831737469361805795587283520732629030794901625920023295041611126315292073960035411583872324188286466943381977176105340938861621673005156918622937835792113992200752410631841199181381692392031716707872536081340346178095507137465545049281918633033698342899185045125060829886290591032162176315221969073236981078321676407545956052771220634028809418937685449831019523260072864614570912112525269817868454580137464160133198965502076238789523005656786468221098870407790689635014458192620309412672057474690482487949883121640848277111444356729546645189930994035311063163078557260556915158076953676901830889430907170904921634042828216912462651433192169816036302100251043511700306394984124260152384952221589574272930580780439967984805837026050665938110270806172827442743818476868604329074907397621828974047908933218870004457188953781452501091541908212388746876216335802742095968096770262973607254940910659141665111517643535720831418559595839451980450204468633527884539095730677537041823687518246957478635673923140696354147783985046799884206413797679944872865415668924652350630824833098203961677289463922214638870868620427198788855270744533882806601374977963154809766536440747328870506848938068996310237527834446738237269416715043983777830155253524729257667182430452567309989590738129694557973833875577699750146361377831225224683888746233204360588443920615426895314861999475748977418336468328879113068483391002785275556983033892214879820864925493157030047952562998859737568914295773763517227206900523266291215232491270987342349467701696360947909777363721933583306884454450767668429060940077283592717404895796065781823115326165759959545367112196963624662729109453751944144494552665481753361927350881137406554068675876436947705000784942470412529408705335560550145640583740739053248748144592073358335644217405119107141287503345246306785194685781872827370812384335138522981629851278604265150675137458126973222212396849863165649023461260328411149057933368995499042918676765345422699602602946001204366290048351304878298370570192551331237621599825974591387951977879554330493285596379400686300892374545531730078753275221745016450378378941602668595808414081706022031433366214748610893819580671921632560011041315065518308118906556550480606929289648966193696529934389549835211411730485808545699923711340690112721296935833422123047162626100081491395885959163032582561872795193099225123949873092831840759900200977277642528213266311400227729314411019407843979826995028704514608444407542442852567955491674379391970023650611953760286003827425965591281109386603073488919642047241160471145291223349440038488280598974144376872904785495486651342874929605666970277079680841954343159073439072381347606362305349056592276811097948474180945700739735264667852287892935004715002243330648319457502259088369329629978236308997515719833699837137374661936225930192057048456411846163164889697291276212199749915599894969956061063747256929713168713768838236839638764815775398046873620458936111476647313927746077618817604123762112813516421818432026048092502626568526393445007942799327115741664159221362980033401157061941534779403430370419924975325074757160977247407715387561459404942926359697336857511784358968299605474086478438618482551905181409336227816353350691700057147636353416463702483258614920538522322424424743739145856827850047416896483323993840362915309980137883292214510256176930942530943054512440463203437035260670898122836248683597624830809848959949539458424249444096059216067485898985831182892285008514854769053884665778030864311945764624847382030420843978602004382807002458612424316393890808918650956868735263459198249727605714313589682859612583176312151057060203789700645370726267049079485513584986841781657534565186716036163160788293683176177079244899048450495398923363480810712341992110150844512328901257668380371461657612259497218729750115568289414543103609089470855641285550708266502806057931550183368492011591532839993272430578646209148525664922094610440374159887005127280790024983004565939564988737986502918013539770102481936323637532117228818745978204945002283665846318572784423182206556851734365042648281745753377361125037873476979452619919044468006663665584899292207782249249529456026764327292446244151136213399163459837729081025725687915803674186497722407566970934223726377862288285511338650733237775256797874433535117606315480063833148383147657843889701452860304881650455238715758956231267770500409002114626289222862742172276719901740828420739389781906056821366333076261670462808933783049933659609008041238814859059355117653641743414139087710860470702650139542710128386424279078868061617201566497837177734704727757843876547365849320232547015211892641887637875108265156588746170702384470764776681716788513344547108953671103304104613563645605229751270620872669983820424223344365526258119661235457200424934557758976095130805251908327589774755542330027100609323559593125368238541231574431865965946801567841053603372450125760249721806572266668207936176777231349296485063957172386158234045627821666724678651556453031520960352726443322243967113414761602067997829987806537298534377373686870331194854465870397244514068724094940895309360525733637771256547948839397385575295491910185620287424850376691765123483017136562780980848649708268192267838352722991904202715913858171574898848352589326270380680943724824528160045357905686072136205937659244544450514432638563943596485093622194350346356661664332943884186794080020398090469452557130469652573847671959519903403477184137206272115797026521118495653482889840156500951479720725104914211288996761422528027753831576485647413849578260567515182915154185969497747342532650687483304490722664444018693037804317355610217597790462491335138319638494664915859681324513029088314392160906067821778765215995597728651300379165276643539619286645071638213758549058510046796534181620693041594311411258344284393329594043973351783902114370047246677476045039639913306596124536885543419056503721767835218109084993635286307918552850908117953925463657501732837271385056917009650041734320813737436817378059212522823126837605109423656094661287226771410113925319529212846297250678737303971624591213837409028768075129745913482624317427688078940131111557405980353257171673325352451531131360237177749149036182636599087833911144105255622246109046786224453624569074404800150574568367785287506867046587096648167904262602414408112630754663275675627892911906761636237129068288638773193717833890816115371621933421053267814943674805622144623898759002813626812171022482903282636129602244351564250089525968142883168507012305765266355055630250167375479267206849386321404181322018281308329351843376622546841954270780354894611814018209668244306332995188929651726548735873967326835054139220844074094324755861740467789769796857773263326816631114305690199966895788916758095516782174038826222571560903700826095490770340668923665768856525927404727061784545398972390889209824846920342195486175134588383547666175306135988443137428749740317214151037314815550266853532171477186535455566674521190940118638962325516224036153642267799730500249281305226486024957500277576797700487712827338067720485246837573880892185587052818994514137637547291518298095599153438359041217358581847417539202991949980644728650951780055086196283478554272206132087436480430524656446830135446343754184744102214336225558384280591804523689627281447553199350111833956546015514879166438545057508305535878330732938831591718529735474426553645710486509481905985607828638033327970130444113704778037173658783639239421740840799369310175824900331682956112696616402497267113174588713584693180989552008506735958072704460557338419862759834427192099260708974653033205543798222309931392621655268165715513702972286203716661140586471229127152154661236847665128382822132497128562548673104162808814169582698992718396891526757709617975983487209774897923072496527482889784824039826664229795845951875488622317184181846098139196394534138042250377266581908922293305673837962626489714261923862820852970427878563299179301482741986843949822139294786565496708612061971589176482818290481178700112431754406929885467759305271267951771933273316618567766551421920338464640891732905874536257041399324266927934149009832901086528156363282961549113282900359183627082608322867207878309459390855804928577600333685328506960687479243451868910840074007906087338446696248420862447393325779726048146819661293819873083513025070966905450855768832677975853469444431227964094373724779267966667825831198101427394493441232867625248266092441276771932839296958277889020482271782811685745437356844201573781064393563453333282706093232877871889391583776828372979183738725949331575798884931750012223120693478767971441520851728023310912276736582143295964608718138425540622466373585088260635952059941977456979092506510600402431670052431719006946504336894132741528752679356648354384850670343225530799964394307218216556432862495885161466409638494985887811891047146906833257691595338892144051456811669083452385092131873122337034474475009822440153007715562938286488154007328402534100560753855216694671656193856593156772919590304534462912415699929381462954459479080147086322082134750074217683092150079467486496946087589671266788345310350241008982857361641777581334107782527083912907748628591911032449452169026393149002644546812638701760060010175749573347987987695526957044503212523077862375222646395796822216233103634927522893393678721709879609780984512907870568460705825773279295055120487589056557995909200513185559424272005173283311699651505616105110502457352540494723922186290316705680935729823368147699162212825781216932783673392330347091661119588133195359060445433887965972971834756914044096849041430240876479065424027915496283258471303833500900380145149094266930868545631477359582439882952654627249079783850161354274803859118637502974315086378559270448467457391611164311732118929984954995390795462216574082020547112369904626938831570790867100100861748729401829678446327368413771975857167270182647733176313543800551090476661535774737391426832220239849887844229447960551033947591364607271524351313129195361566525923281503548465911405048875452247079922048100781130191892033973373012946381603136730124423097322310594226601865486942296821909916420039250476322127672044113019768540802223888636397133521561203132773318211157015473742727591121407315733248064770195474606399217993626252605686940094732914182912965023900595003700046934278033185600620606451612809008211754027906623689442386127029902577787745403439084397287514734151484867889311864506215099113365498010250763408700495326306766597584390969688067487992050821103081409442943062858675225233859371820502770674984310809801679255299433564292319465943804322055619038723112595916531197000446014598858969149137786240883245475327134472011952285344054503936927688070135599413025134426587613637215169991370358703194067889195247752011917776517298119548075732481114251614733816965437002969346217695034549016600827809537402006513964562179217222319126889501482957351777413007907552695137551099759666480530951879468356131831101118770313154618379854521543221326211547836368168709651740669235936892899953959281132790997406920578942035675459270383558657900120552442559635340981878118289796603927512408778124690677219378093693264068836121041006584168650299899148805882254018133586514000812456212751883100277945987528249667243688034622656465030530210121911378187800187050275252684972877539836285043394319841738469524051050405687028484576197029914828466130921373011088637579880788622588260369988997942018315981488850286345011444562811293369684667546832949171780187406694140829979687003598941039777437934292445569207296769628691687645711663128150948440662041616464076083305655655697203900786138165057280414803656298826311612628343585643976156365715702124985094121664100942591397364657142179375897125494251133566244677970667666208458334652911348521439931831272237474548313916572144282509380808634248015183902558406627707006016963057264302639340594918097683915393296254796346336528386300163059158831198269180503835888533766208234284880516861024533016550525096041290966593688779934853197998199330093106346371052072837746570168987653141611133077090222375982102506545180810120658430092477167955660336363904064213243969818675399282421155802978361177432451751016100603638748331321902567703476302839946801409855048836092574391396108376076915249629246133692072898901538605666858771809461652256539326320098770170536246338320660096206076873501448570325235132671030146445441357923620671164228656758856632545340706553156640415164388424336411056181711681414465876886040231437103987844742733522516655539560990982387931604611795948590276547989144431512477132311694602208063604922507379440565041903658071767747187177247233066347260082190105538904420755445473099476449658559844385940120345722883303555305119535590772937258269974349090458578220122248958449374744226869288437784185232734325453577995092295954581268527048961774300612748248764895430853485116326383275251239261996907817633775675739823600581269508172830897144507601694247792977527976329804256077261541912254736800173909390617086997117517257150097741443899608738470969938653257647319183319014009319156135367572789427852200667913650171068587425050774181141426449783770229976571982208507364849080307294478135385229474802112800607441002420426214023423304340642786037874928592526039461829536454497100959646876165134058614695633707732466242165219965948681580445687019757643895160769786758526528445124126249995515004465281646092893016373961985962486271165524696863816796798989261652141998514539271654610871466425799827875023943144669024524827883001435830699295155565194378002452231513034984501651352825341097581675080414571879068219509815688966940154057556043048954713178146479692058699611799897126388736531564345333853581593559913668626084862270298656682308563913220818592052433492234189846647982105263462296862876649515069626241605624275201300452308788083860012754008114751496913646624222976304434816051167918643343026623869212978502788523588894213372112340064272017375544817263248538990548569368292370090889371435442648824207842546280674007279492035532638843953101768435359026146347630723302996904546520619262621314324891948031868424091340888618503237670440877047193079665717842568490268974457016817388167898611897064304457206749368190385781502079346615664493135907300589134275878595072447895232808191116291055801380049338634527644173139336581176133278093919550342551971728283022970951540553329080485196925529733830955012841178668237974942171919707393556996299874582926024149077962259053981173052758216783287561387249273036534806757064724077667385739613244895824886482879777931793137271080271098994610741914468979461655202494503185708174888998967989149716377874890255902250999917010027929184065332447117349182770730568481852161414584300144125316169535653568436176085718535262346020338296362231999233488403078590977945448407011703009695358695756494153798640043672551729990582799703978447481697371876532874261917053582890617740171898116962982393539486059042870408801178881465636715203806128845836438315622355950447693380612238224370363938972688165482083358108333092383911363803991020672182463578618940204407988345935018864655136432984462097535722799266533683985534627909723299737314996171658045068227306297961417218475226788661670249250940548877455042212541149094828072754154750927133341563804045043674612954902498309793158792447246027209260746488322899151864785542685448635593063111142445803485515471028114634866156997479445273779943398219482250846720577871281993203878389271992399419661293849762711306460243991232072918710923908076637723325359308355565971963640812279761946132568968357155695091482241294282517984882310057297291772033766066228975727522614278800209412686282529406895517464977860813592698722882404715636951269831087114244436679893787056468116642689940088251095210809872773687032955476859686724735508251206813358270708138176160717219627291439332412485115019976598144244076557222224647874935587377820425279235779256572209546116180230770956658780975845971918429845364072745467929498494286419944378123372903976850479981717153186902494447184727903985483899583452969438312035689344298273614064340433603796913649700844383126786749121529688356403867221677225384097970666671903115856141291291575584827616517968600043732406683517519870297486342833028317586690287178620949590833112779081337536826219642588014927099947075554572073595939680470042889040003364808511296312752542888026438108815034550972628280450753535508650201298268707869168659807759423426236055524112292379772157550054477781436092111732700522648668771826495942634782294529613961092687660634562005504261064009634391870165472372949327440119769358366355862681314579093798945757325263079688244926695559454984686252900720936969543449674553548596426579743426597873097983668878103272343260664480138322003050324523359277711890663765904762728159458432105279258669409741336229008625298167039137684578253599153568908584654145034302898102322937254347611879992631319996097738202490476768774626552162017248332703089376807939353845572797388274485855963534220512795988308256578282567692183656218669543027882065417606673633034341186672039266898702620522860138945008226714209427009818507020823472334166759574693972023638113306435536360743678737212276075191809405930346338211261622536025174970504597159833141922001335293423395438788234297251278886646096151581200285071428897596350600588243686277568659602660437870058756545793860818459218020311462738039619292221271751862934791096260494580469378393125709527568980618724250452297695542094973530965727363698170644924253035760571403250948386677759274030442731629580402649544221750533500121094582948304610825563952019622143937522131184921867273448796330437583319553931593396466794781595817270337908754036774140611386281817749678910219153598239466316295353992641148160708482890630154425945092310071372502999870185405272502826748804489495932745974304213571484071120458764996229903917506692418197313656806582415401322628725010805688570104708385481472603907228341580755712240107819293991232877035180231194296169956971788896785537521026169417310660750381587861658221833730350685646371202432687205551511958298796355945894217741555377656773953461552089955016212374110776991228032599642583729058877512638006960451792237156357920218335276262349304073737934723929504574783764159243585280656821778489737016853520983500654764674696370835044088506203975987498810138631756878949169940160137465147227389752956464945520336211641652990827022560916235970312493169369717131953722812138517981668864492799850035850224497611292214840971760123662657154742584193049827548588508292318683792923957441152964693465932263635926119051945983270982933955112360290191010838930435266118967533008962031864651844987666222097280071000824322118642138589921860929214364714065554114115064959520064429853338070811032451395170034839589886992924067257925901804711145433082710958109724247137723464746462924719040801884529626554739411052022591756243860872292843299439842846942882103383248615146844185512448800171940442336710036210955928902478144240455422976339640357432130943430014894769178749459806314514178160491342577390492350968363138675281155373506957469897748079438863849247759320308633885415111832845593398770078002289699984400618387650680979078015818926724322075547460834127301513456647673631422151117471650249733164676331112668793330830432267514109216022876519685716343014385731601102214458535097760584368716961035761540713595922493806311149825916028568987632102503256610313864118861415645392966884699338228326163631564923872713313197542277552647892932591741547955906945149815218227590413909021175319937584272652759137878690994890549654331147796693816970500101991179869812508188084233169090440179309765662888922927096890239305205124928352777245673934556593481797772078065591748848197911425482596378070015478239413995318720600458448175134705747241594165946561991788316406296610710721344439998113494306953031255476828268717117712345994643970474852697220278208476977438552217118039040982688574316066516508719802593731332582287577801069029521465169612427999198459125252741174448549594831437603165181341495319083907813570019922880353307009359881585618870876925806945086285854303034324200183209110601098274645291687719154942547976358704995799364527340396555078099818025791769745352769853131625873422550621258010347935223093838330895652271502118981816165631254498907237066304215067085467595818633770412432544931860520857464850745741433404925877590299263347335272895703659043635053709996253790932985754346774998023653352368027357811697575434617706756272903799399490181781532838737932783926028609195759353839495227825872810492351511579485792528971548520810918929125028546256606453528909675359924839924375098364655305755538219130458087342095212074371372002633949179841234942549999443056856999601912999918929150235371228947526544683010113686728666144033606880309242774615651950941991808268989831492762129209855165153436781199405673178446329498153118511319941387144277099941438804754752759557434415171440811566431134292766618717588454896698692191709295403496954838907397805462571823609429084404933204187321836380466705984004804933189756444210968697748896757165388791407824010437936163767892601333641304500689762116083857672806892640021128436497019545128489667378949086215259480564899865444516727794899936658065391951723139210287719544540373967445701415071369383249329308543960265007256179181642916600424800180299574912231840809576672444293960684441850269357941583147353433669148471582858223342955712935131637477440598577108372205951171543136584754049829819505017841511658278401352877731195845840051406229838302578605255777181466195921957640548038310695092114165628081141462758520950597889617498312439699036998947181044688647115882960559748402849914442160379074814789341863972781611669452304118345675869953253331663006290435644049607242393540991213528474874276320171543676359670249646536299520345703932893035884841329095112192858730029170293581930503554397440074570956666743229858602791696778899534727206811551192026983366297928543991429394879151068625960725410500094679568027343150131184860289685645554672134104646918018473047651843230145623245618173661330234550501744408383496922554204753627356572399075463937193847031377985209989976467607878773153527856722641899486445394813515059750913195577173031200407061920103888269077188668711646889537227231326697467073073514271226745146805903761017930198337937184623053605622607021798624103121904083454278403268562378251162746385115146767901239482250623816309994595947621534903310586767950922890734180343053813111592331279644002795088766069830336014398691625825664707750665638549398079629336297955291529316309900757144801296233273103274808132114340304661421094434283112026702162707195237445044726551083299334877497657213328492174242043013887315420065522697857133921626348706628399289846569579011001760090194425077263355134044513870480470599587102323825787526232544893494220214216366378056095009065700801852024062276155329484168948834504122713081074409794426114731697303260457832533446338785597022553936651871706444540948420919813977248789196777736445821574222209739342462380641259750410769086810595010147105728229244105802292225148849332108609355403311671888437235831075841941460409879405203087861597886385860342127139692334871166295297048176731684052047126605304093517534603718679380575293415189470336226282178997103852918449249770727964502004426950421099754848902899441554415029448288864059694715612738908499473218190145937434505332962641953669957784757543984128967113506217396901213072148506645492689820889607461959652808147390344279292431762914228282360089534648401185579346322991653830963770731319321496516479540485776032159688988398807495554731261487158420803429540578259491025676137981782592290048748572799906221969853366404970314544926114731041193626429494393987216248285181825995302199338820570657040562611409230640249372044927174957149584274979226527534289064242345103687607862452782646668244578719372134992227981856057548429198394178609085113955753401964186534566891144277745795887315319694446278161189969612161199742923122200752210836675513644583023455066796628447795116489850718137783843402003835004906130282525708248543171937800877641919676393522528876309340504982204278996049940625827134246384389351949113994431297256745931776870160075983618465359714225137172006047778028787048380104922114157492697947383942866468759047152446681346893015098524847415270208340472613187411335718618456696561621256456932137303633439025138567792107444944741745921693619554255137967497631455355049894548417981274939600302940963268404530416355026927925822387411718661710467022286071531176435181368782130716515771312972481604760995651586492293943182982841776210480140803364647815521053775469377401262516349773513835682748324104884303275856053074438530073159766818629684194056972984485080797391571524254064966027897727674116267935724634661625436738059468337748800988503077937194884455288742550527901491537587994252733040615964535275162721057467154860050906666273252021173789833310225775108427700793320184270001537703444240293434817379853023238941942324301566185063094408929203746252927225996564938699946048781041716977150624459547317376676315167959764264116116691920226695702489488160443563718542515732054987034456504432324858689534265593999390360767801018281563073637664268013811248316748973924302162179647471271772566894553767130869109092007316738473860410019162033498274416612993247627565636628842582543762470986606796683018880165128895060310969829867678124311480637335779396168559292486932542620958269698520705408881605649842630464242366437415152058458943374610242387156392607969532348915359276888852565705355095966481920097218376409733650414089392981543184559553401959134318768629019578171504037281949107144606852293679517881740149393489268482213241800096081609192170802942300478371637071540479083813657783953641340114229649617771071883235956189261704372295139726435621162663517079754610081969286938573589181895327600184801108324072375211310087737865194064132383525849307679427093260101129034473577401955228612438541118091214609111811048224326529421563968987014243308318215277640084823951518444224666342689556815543871600592033650004415337623456648662453842792754485899009703439195984823643460769862867214111690018087440359654152335328184996740982596643911927526624241511084654118173870728639465363685603910040136330245910419537875169073864901355675982448602420114744945949454025565736612562437257701493110597563973525201240602466720821513674019192545894009977862292329401872941534738654760062100330456117084385141742119563827479121165586565380658649509517138112376697282275729400008419796320333189668054219953480850516622310566601101771789833608978563352086675790191198239370871552642400221554618574671759907085268120998874779250879518624728862802658004686347714334972153195256681222308470445719423611446122013525933920289497298895092092844485051907031450527973960295658670630733957597078235714717478322896945893055813873968901581102116545318052998611463308840241765991718927524515101593129860257521353666214102986866802796798728281991279344421938190518351207819911157993083527771034434460911276562174804670699731693595448929197464617321770464504488583332496011132660869394372049786382090686474133897985358872474532686915719737049976929867396846997175085975635853149527694451638263676370415050910820139725495371245690546963935964267180728834653404348215165235815528336757482352589268078459988611751526779504616895669851712023396595375901815972415595624668412786565570640070322834113620876875213613648412902037079815145840721530846536571051722343186926577286115204832831976009458635012805298993547876379804905864811315410010136698689617815131654426734981314506447763017284531668080275484418981389804124011558667701680373587890801658898978267629811245677065979405390055899089848018512277485218614156454212354983035021601824570116193271618929558152540330602082589656172632542101760929720329843036332444870203862715977431259606043885068454356184037499788133921350612583027573939292126639743757675108851393537836834258386575185793027764899667270923076683529494551056337919181168371289196952445253662841927996271353550786153448471418886169419297020066946949053911814534217816737655656240885946142498319480958831362707700309621171953413632001764973461047706359999531972345420066842843099449557250144478277780474247664224352769621235895422705194719860249312282666478341996285036821805154658546922242373127117192293684961346397147400642019102965764483792518527074257230608297434217107486835260256067535417285137910767395984537875829707723514813673029358067649042768385989118125301039937322152260443420926975490172655548275854741111389889835825117645934063923329309867493061723176802905095684649217450475184761977482461679060490483504349014408698259413204720920781136861815402437869488942763102693489891454511209132768734102055908088637359164702123011935025383411447609431252458347792543042706779454772408546290970045285661016515726729571383869947713398087732505187526243781783764112210411349458812392652052081518235678004021797548944026555156889727330147026859301272067011032517175704696374850571048003827645162949427950737463748971923861495878633657042226986355686550897910081617727122101176100596468409775424571470331696514729391872983561130455228972816319735579209914315031895295949279192086354280149270613209540283906731402122470228568584546453747155124452700962833400641919671658751727941502606387808701120351452366847034336482280623237856836631035580660252305922798253354781519420911944384981747738051975786586680005437101683694195685046503842120244626009974050879627728290958683398573551602539599081430063257033967308065522745773831687869530891941044273106643793280002837179812498313252234304642697100060174595540992398396793689349822510500646982728602128102696925228987425481086695543976612352838570476903871437878353470408911387031114326540188863121522955232314132505300660737064633104794662727591394964668176697811135598391105178229017714544087828204889408577902271719098300588802611597078784982712586653811944540884642114016804503740086755898060071246877515431925955277020310098745428097316796146940953725052408693586464250440757948307947437716913169533896091620484924426172706686811960964346191555589221730540393595110769636893362863069730453917563328235203156393194739195654033529020336804536610260498367333190476019028790721372451658782824077688848749405715961548882442399105128958389203572441539282110234275581862243030284358235624945715936587818125493479781664445853317567737074682286983480317450041174350995931636673182420197197693159253094881699423900195182331206834193271252342496002138578979403652992996129616376503656998122989395677956334810144870316806199750648853055758825124573553725125922396946340520980920289546021749128918759732481487836287125918587175655927996459087072865612805971839148325556963967243202946338525789599936915148307970703145780761509972158978166000977707019357115241515043339112474932939520029017302663326181493562243588172139163807279803588566840399022171596118324069407871583151457721390281376480657976025623439197023573671596495462476511879191535275482055433377777560882867980803807993594980476945795834701619445663166882157225473105985953888423539559619042407252942563953202629885118652001930118425541370928889128457842621688863454986125594448071167842836444179919586834124659491816658070598598652248040227321695424374178823454932161935844258903818619645338153336931107911134054321434185476395414166853136550800131199260327783187124774077984658913957767007601369929655674191050638237853529900073867856855939755752991562837169537574387618781918167533746681228760926771616730037687703235432510283177915660372897513245796276610988240348122251199093283977929701192191528134451018925857427838665232211594383439364708867169209354655623487293110499436175488886753206454031429757895181156980236095534383310374381607624540334675089901562797169137214534517910755361717320356490687743414032387620539989856123567114301350151110185129348701889753584070687073111914982387260834282104561034977186258552776228762305686476896977142050505186517588864892407502840720569561413812930856624260398585651055302312069390397649516246539974547495059052267112270265739842988736495651528655223151948637312896392966318897662538187974804272858770472388713835830484877619429485294784504567138794420698685187342851669901270253343294159356786098394866557941135326126712076297980988709380234040883589274845381369860062172486351658460887142443750704703989484146918427390952118319920589104764549923809757569785441741319284657961048652497829132825981589713465991151328139202001169198265570856473682361980827739075116584057679149450028718963966647690691712338288243828974720812668614006060299362499231076121864980718317923737558657487462388305829257375867191478248808366003843451603986442045583409248955300751829152567934211033487183608601751453926654427529774436156624648855120943076954295639718704846641674411568853387556724197731467887997358512697708175543787979255932198458757718660944714043335527544782453640306630382064258191311163007316099622864828741523367115833208784551323577536920353700284557945211593902234494125937932669383124052169585460975546991127119534348365069123028891189453947568626140276903000428791138104431544303969866149259589790089722357409535122660510327171964216084569992663808246604532700245188209906548709581550893170261761245038571675892297326822784983579490237958412289138829482426004863174905132078999012624528487828469258651620052177040726158724228788427749386035950020427876118382890296066996084924410404321471161014499647898593139864807059840193831818225944186422415898810565288906637747962710542910619416156304107951346661719044181189522831843978103099310332433421954133773868564224830295246146832732128367786119969203406856434650659780694531678554875191719229275933561907814915800868449150528289094529626028949664406883188106083080120335933422665247610390436109316325656946959637546452957775705415672756871785297851232777302504111562605610257889118683451369901049757776284199973940159740957734882932754444568962939187279620204404760745520841750813144996505708481622047345048632049212996122382437145429737565595723280498864813657478786501924633259049291599128969153427570843348664623735485246856002661383913786223632604801185103050882188704512641285755172457359022761289249864690233733882897501537846667432084856010954057432501861772796247452996393588646038245063047177416603519613779537381458708962486415561206448350164621383922585430616940640605098053991982697308689483973917813089189430953821241165362855552183553720596482892851844836225731457162075481234553646844031009872976822936156011507498302936356772909342834997731086329802587671019724950283317303094714847688257071502519319837508203243637920788543047040718370304611940716521542282074601161715905910873682316902544293039243234829918300093377538886053862767191481767231011931588626322916107336279208221915722645782528889298349289572868301353995834699993424379688235018204821278903524667067669908432437490655620853531096612262472597020125156786098432110350955214042064036901148703590597029242412978379473953353335659157967906168232372315523171931416949008900289024563876199576321026811059073894475322109845928949426252326510285062245798109717236748232360038405126105125508218086733210944442473037445808826180709480770508483119753284941061457545631315517434791597467973205221943246862988846015666868636929563061195338165543362093216760284760072330344996189977822768465990200200544004098484989952448139276558896921231965854434378171775190052662851636658820571572717648147435060662000658190116613004505548498022010202635066362457589820451163098609387866003754266524126491391409260890878445247713867511663438410079228953296553207847876699177215854584649475320288649311303068838084062505563904162717426918146687290518731594771567052348102090283993658411446583550739687212100866395248523630340280154092130714969554261441983324793409540588799987282202776039107067154067165213280619354912366740107290588864098944789878322353494623537464302561630447506777321899337943452716439862364429455330316356932892882945892110021029179274564540047543463157817629889708316736916274217834377450241547929716604026666636044900424469789557150408826483872130360303863351002858152020806795599240099090617494674926371775066657175401230180658153627736001820866160175348304429312023394233801416506901656611693323903954103802656704229685271049995133344350935876534781147442747313478669183719520998952705135079831859899537126394315690194173295718568793649243631721465779833635900100047587553671055632953289207342067181474242516757802881914532983173739755546554373973375546862653649162233562292447926282872440386143647070788023941772388299028207866340471865459670401279299046368114430941108358632094366476791428316434602605473987297718638656692351450450989315937650306404052951968799518993864889930711030530987371201081038389429741949174723610918468027534789318625706552956702232938990251815592763872912918070862987040669523831311752579452028109238963871870955070383256521011751195847065300095406313362564649722707148336833926449738121923335982743684744850192001059563631629967001983318559623994651071465869727708348094042240694603378245669332220927001697319014219731214261372921346099646676871255566058447509273486182560033258903470456667547500948804302012124980266481911296185585836842913939517027734281531212709388473939668675379844641968924019394834069172602885595012655791472677744185995970777737123839344946918074105759753238398730140952516966647186893441270077965231016603935077421898348596123159485054691601168076040732433119907078877919970895631096561560083655134779891580870531954169539317662920419790645241665524931917265112083129820855854935116407369524846585038508377924202285566267324587847192867524270209273208260471941682363783075845032338825666707223979142764494405098047255415060092982895768872056331338302769509168155356411126407429876025921606943593275313031592044646123035067898877436812789451485214659539463652528496062805564957003959337536672077422297852287345162261973273587752297676080436471956262920710967104558696849726526457659157025965918855991756112645387607782911906447313368895638508162625880771983684733610110059490279530261296960673986929877051441099623031376285071434340004663556007438751798018047466885695332797950268668245156614730652037177469144939536206098992580225709754060151121237633524532983191357239406601126947178803651797412712310119226479742545827514739474852118404936655690579074045464705962542221025421602073266636774041259381274542819538093809403166819771121517020021574564918307671761027461493579345525951671158631002167095575834606033335757303693705103297327279585518203136660001491138442482432752377177251634810347934838061292965526545398548323189865008621819729861445179370078388421334235188391391489815369177907801563602721281237197373732917034200738181360244747213560348259032689564621037761882324910679777600023280874803698570142840253577304051073415964122075752946777912490138881399169125534913178806285177601619603449417005204414768936224541222230471201733344398392397555498641851169321277586075881484743241907740408309249409704612147875308790265686063565398848825754339835893678179707536649480465436473941506384713798894216018435176332008819640297414439484070614901632391280524039492961565660419264071542107878452104632505642066245124153342916937956219029849973869187417440837243892014307878583105088630406337827690278832091055982185280740533109001503602802440679912507004852977464173292093900711374268234060551932798130512880470361214919060537486518286965688635066515739659519356252900041831305604274384974686058884867791094788388741277572950459023868105969623676409748640850611659418715675849943908641902186700624943482895770618918005955971376038158897575966265482279140430493767939767271453864399194211551449818434129728532976972394047517651229682071198448091083608831689041571088076969779560673829134972060714124835812130950460294220832918856306415626545908428698950151294917912428029962360416936602419421839488907930504098656319187353591047677945717811294185875760099635604833258950252866849724588233214203119004679411223931093771715615063165718993394623949567166877171874326919329002329749105772537056911378820887893867486184290862862847903240616328721135441219779070236861376312508670697249635644953693039463001005840123261855083264514882460549790181721058467192588409639983552416764421451999318328772986469485438162355226047475190641360485455551288173153648438886088981860094225608921063634209808524606959741837796577024853817028837112735086720988094545921725057110527399731672220606727989994502250304117431311130945757931944676207812377611534121939735703725914518060628614698100235022487232957317030379172575141596580876244973757157267922729423408999876379462510021277412324784807999226264793744319480079775627746242795083494647743206959233328533982994404516914701477454388486797568810485248982805303539746224150832494469832791233809600316304027145164590470032051558454710245766683835680962201089727123143575589037132408835130741384022122686229526990634999898211474040382412205614624512796106606394571578436917549150930510331578215857027399005909753369055593390491796987241247001356689188375009690752586240895844237047506412236840327750202473421681193633718184062011347092304211290575013296046106885129262305864275009886510182692616397408662969210578137883911864138908638323592880034536515875468278446112497047291205541399274955920202343859976042842243588864716534449514324376211604026004274446887763490511051636248876292301316011062406786893397206208132788015226041584721946203227124455294835923549085480635876916506241184230421079473960963631499087418403389264285841635121231114277515932605751350143233333919170002484114161310131410179971326816596095994574411313213306641965080086897452430317946139281094031943599090365477547229822643957057710690766715384530106137435073971955974886316191969171757276560273391361948616995689407885309614782992583290578963536052890482782803408940140842727385135066062477758115153021397774986646997376441041405778007800723392847655359050690313474315991642691304663095754729737584270041391830459415368569379417558677868033304888761255256390770699337035106761600931640945471483716462901115747047078387618212027187122987371505164155820927842862399789441650174482894067134395403812519535735057553023412554718842341925010638260790111142676635982459005142756484425135845326115725189390653555026062392900609106009907648204075019917925599814142204468318637167732989396216109512023783458674848524058552176221145300126424548230644271159371536132776076186572598594558668957521942245413566995684940746992793480839820595543248135829159485580987716330473709284811177441857987130267270290635905849802591816356039797647449701960142316848777310515710999665148044662662640652437662251381190825069065399896487437260999492874029042547390513016703594015325751383778247889426069234593703536118601145061423965790135677464876446631187382939800125958568072520059103507846427771303093283462542511398941251487970263921668159388165223056720262893975882123194785949075957700780753173398655363667569727874109745713630055014089951774605465105597020425119666520967103923023095302966131131414313250849198552118966744421480345541458364024225243850297513516160815497127693174460955774618055703848182887613553493239498267388938173073125431935341338416014189486206831906604735276922871523158771772214015840446098850683829089423481479507537343290627372880037899776770224919286397026254848144235941365746255434680254682984764125023390897600644185191957622805020051933691967197631908373762161294905424298638443337827423076164588514407680015903451559055243273127629955402172714004921233697399709966417536548052551539799041461642553602360569606469978046728577480254015740595938758895243967271066895121570854990144703179744042672260910202251032212460685613782391120836087837284750067228637246079789735393585414234880154581245172268100662700615756612183905136601420945681634502163260946305964665970157283293761064943684609502912576361861450813739677754014862855877458663251996791121973496770288241732934839506118924624161042638402228153121267657900844260218684527267025149607281841162835091410316435316027511464978129099239757116438064967070724491072588377181201296210938449535349796004105815773841967718925965436404838802364127704462641313957077519485990818633094166081572409665980711064309766092022571268015719269434417833673919230066864329721683323483115281179856815547597892542854917565085136132877964567589550667114046315770832975203813009946459311269782395712924815411232296700846664374862721367852042298078106187262526693045306334810215230387163078470969563550385859967872953848396189735115934098198666642348651291513811411970553666369212944897365941328584428886548605000986336036243278062453775179877765699451724312712424084386908810155522844376526868219181226925937656240145956224481934826398974778399302762976652720549227107461583750920962897005106086083535170046931722483079871671264303375463196578142955983537231285873569743795819314176406356469685976750534073449179776381623571937918655680813449347152064068027516354388860546513698657499610719781462623415501441096879877925811899636352106774387071640188854378561970723323311657715476046848197506732222034852765535299591371818476274125226756097979223893449933162450450475949752012109006102258266946414355585702192940415955352681657833173479208658741641266605413899658421591584811560214783497598884912081058439711696672212152912717579747399860700314216751170041856771318095060799317092308732503496462147002785307165931222041278838155511070389873956542506816866352845669066886333904165805654268560885277453924562706422222215552861301143297460613056772421935770550488845065613951585294558921036434907667836104157241644344859215069551127127651912012502558642121720664482310347384806505520945337776814777900556849446257688044984268661881748858393247118107320713706079683014950320161957691526852332245082678570361743722270783456652008487909189633493478064666328233276008809513718761892767550338162187906687975527878938231789477886973005627091813153617644001230314781729471030485154117886943445876156534333132992870530156082053000984993613204522018303984274952519231370269754113335286340833012654935597723927217808941032451226809367557084137328923274486583809635574629913933551562778323755567749920681859748908109557006333979374153863032911811193584159639125746962333670670544871645426313183768153968047872900162346503093725671211029315117935074369926928251932462170993755211430887170894593335576819299985294900359126600684293825474819724291839148083011849400125015255295758397038502308645425828050584455478713230433264185343858865066518310284321404550221828243561059270483858905922375398091068344212462053311639653232030590924709717871112235056689153185146474049970938894328342549097030264762949287601179009489928459068579395381633563516940290962848213306537346999056580054764150262595257659896417814116117275442103549682598058279805980024250997789104848486446631606132624990564509551022520676956387707917419738154258600975405581596581996117827223823399189664438774371720794021848907169271277483232210589497482294057096949997228456474612746597505708754354077529791028991249804015682450554245836436250187586641515264523576331905950684527582022741592457713430658220949010152479664975288953597285883679844852812680286065776636587520338028352603126480772470418954033462493472100432710911657467045495950032764684504698728097112246921795517625126984680784450488052863614361581999776892327934594161863886101274532688160487955492761185566470655685718153216234959167659860253835095182184164347813424415885987467546326570192078271423296783011273507810186124043579602215870937148652403796840752058563801429952160098898443252861050286584705206286695626980905696840095766923086171905621532090390019931702782378654324139469928845267022591880363967232544878289975798172321389688233761619309216820144036952387316263119367356841612256140982941911445518084731997986049005528475762255750134010379081684135552853993182438810511076350787367045850066027880358806564401280053107742644433332156455052664116612797951761013875817886690915669935452469322469787229462362594601732638639707871501086683355342615048238207683228652132787233373609390699346176041935485875763696845197630271602163501393298375460640233721146731020924180928423410401634291019284639510977626115457673285411310467817890492171315019459671995367041493475014797715524569416401452356573488446140172895997937242516694014298701015830119128998949175532411462345055174538327286209602130003497162904663297508367392693954515040070614023151520838968680085935224798814824872275357416816715442728321217744507350982983424841209830347709854934099805311071206189487741700345780895399219586913339425648754902669353503051127401173396837200612918104389724960367778880243346155494185352247294594748526868557585033504405930928106355777259996216334469580087498190842006920770805623433371211115792122265526991475127611316698647078928839171247986260489752909766885655434931655412442085315551140938123673219061619420863707249643364146166264498447305873159268002841780066306935766323945651304230956589129332805948141429777172695032176936269887213458103351364935545517368007939031894442312035360249965293343435623262083256363315064973175165516442858659187622579523770552347678555970927900400143476631022830363436890314167986608923083233376852182122800625054472191679402860418689757816647470302865564792378935087670983586217281530760519708132739640557666245942266253475852440411449584090394682909830697108590538362977856376946907395505525070305124377150658792054817689337218290277029238045953990498976666604331033268545711575154371660957508044671903998787913865973088231073525962047821842491064291799930767394209415652760613571276266282862631917451131544448552411740610928603478322301208227627092825007643351518294912674845442660826758938202524148560120016841123500198041556549386703368568177736573515271463869406285906929186221130657157511438130842778131992916246044946265109410143341916001542798934119223289618982698846139627399711628125641488293182500850349304145448845451960151176976066665901418412295794833664408336358911397677507170635618720872564353765333168916411431299626207073995855326876719476846750607538421310983471914461952199937681036001596930119559060746582889048067303968762033987899616338905928621620409074520846688830524536217685298857783140847455057569997264202924215782027652918499830626252845374818132026373209204068101116558578811971256664934329737270327859060341861140302383733474627228349887274562879580658372264513656351229169238716171415205199258114232073353296512930517244643600863251434503312207894858532456820960087022273440500314504768758359379007395756554988436700645544474835303971495474402613757647597154601395145109245647373981430981077712134063255157285876980382664506891053431029471677574881346208759319283348817384067813755670730698425504754956456543070195915588164251970311797798442566894162677502346119407106742876966473334377946470276084845561932032259238861153107848216998827622304408072489511150214192813238848328673221994345613052363438060461786341326548946180077905305379653390176820510500843625495698576278739868878770762886891519151375644739214715416831058246799899568926076838384131676561740952184770771944641813351386384732761223950338662983538674217853541519240045980860063947298241250755609212072775660661116371487788475570881696682850566437774417002003710420372102903187950020194665171988822550822100972851474916001847498625698675034333532945265643314378303147185316318209707431095945338228562113878966757084451647325958102384794361743715830636950989120260373689997073085700401707711720126138603493921825776962311929221535909555240357985583998939084395120005828320584090965628529957386011706756154932745725627932457765362424514865084399801132797372256799771289469958239868552787755308583485486604229134609905601148271402729079910058574941180946421142721738727717525971882329281446640663889038240347474113596040149720259843900247019515194130746237241722139061022608471568072929230414082604180822333356544974192857600684726898851625515885672165932429244680358948002880135771572528710946709049660064865705514446321401332407559418039746581019340767940055833464692735769569320671188512883993639282594134626311594408565555396302209063894590556556263461925614852427371909582267977494269796755755953025065036923086043541694830262542544875890693691608368185464799025580501462339777956954337008654982396537662210258333127739237427742199993876317804882823111210725759794257884370066659656633328597800113227840069005137880568400684172729935420613558812107357577589724151854505328789663622983358241911809057151184997630100021887548880713520320041203088715868412583511949780629871079093026859766459382860292055900096902407892611233797640524386836735724747013404185231674921677519585970950154602981475385689465648665416276743309175301698491584009799491909893708952284245660474717508045518245844487289975498321955749325026561225855425558474849342640784813044364237581221422085465978964648047110138629950662725437761491952927650226176220898049687062921043082504040994576847049650252595940422723766208330425468374104389941844368722696274814499081146703586158061578565629693091594011737407834556571788458718904703601292840987690707610827603956847918536566038848004657060665184668493209676943388999643113032880177648351124585269542605118528152091910186104844215991561653618362779742397776590776196707701916410238556045678937596415272357879311267448293539831128373316376893577126822802470502064615739677918481423281813137587644494811041987251260234812110330689639003065260402282751133730631230890485880990074740192291659320024201461150018500460340930806707396609710147164830522344533181869874392334506545937722624660696086164200567788772331259039078238643113813113563082388565057486377141983205504568812356255325632613539454910784747841888932406747119303094752795105944544554715902122635631681930423977272056485933119288239720448115134445188373218885333784487884641932512742832443828162344316129428686776701104342265271141981212176710711133751831049901776075041413937260851146280392334733047714144805294545520763498958568571695148491788646113452169239641104431065701569290480926787517244146264878280556419385601128066672650723487166479800249912963058470780416116680420637098768391854203926083018898124254543942645472186088859308384968760385073482945465558495761861609976497133276483986365726325915617743208638939222015452736852827101836435620096806388647977829862522187233977264626489874346081155971160427523924166241962245850839205936246074651573268570994902174834829016895958626174268199681815904252715308295584470215231600099804387062930929632045605805778338989199219141884310230278542940405187406645668058405788674528568300143703369686521111308013096385709982654972853997603107409807944726215431694749220396704885404565794561409012343279846070270795592926385704084520540383045330096133079668625386182548213946211696306191817033049445972161267786849728421784170861665791974893252364006106585945284555766920839628839141017833648111009709770327560138403676864480342909724241711610866974487494380837769097023013307289863753305232599869317641225295006911206559690595649824036501295128344560304992000166787724316462666594092550647269061927973397295944523126160806146546973679237861388349755626373165965526692294955063351846474253447869678100435331759568642711830985375124254814569647547161308718429950259428237132109564426644011292685802380113637338271217314624358949149514289741561004470254758650244406938822949856065797114243461533911659388874607387238523924047375374884211127090866664008533766805276156523350488265426149856165264544539693557448214024006349856432329774327644512643101056324485448629134774554105244272412918806352922499050428258207326464050979536547420858506597284816406355378279866354247048617314516247447228503790001458467237640197694507985885887811226108993931625069607623472798771937397560649408052951723610518936612465528263674090821271279520427923953752864291561982797904989858805748005738365672087374620164222522946868881249512074585058699296394466031148360723438381320022046378818706022672054902835924509130739340070788861247706813586287561841394994129282712594492292455713319266250257651530836498472378742276993367395508407554599852665642700380626100979713193669874468298731716632078510491343966579165324010725314877848497357587119432915260024023421319764749446584817548668192060692105158476495551469666682438079994845674757017187722749042680496057855387472972691106060004921851945236164228061561275226629323445305061527905442491819082912703429974366905688602489474506505252397572622017374674343580810358392690529112560306742747698026003894227916600264734075365725290024753193095342124058190632991510449778882892883106049901938465110086749443354926027804468945877518037113511421646727994218100078917956973188463371567990884325211458933995263430830109820549939701966838301326606189822599100060508153157959749018910407225603455296106349246773244485397415035862420467211081609123284088958633600545326737850038658380928060836687494742530572334403713266831625775886843111281697257333588618198840457406950776474467428287326949005046340131515847838154935584497398488623834695928923779723527826456421885591513510316357810437173638536577896558906109562113358924642549982366926175893214171813765480485982626575751379447083152764249647924617591366323814761191648322244374781961275029970084869961562482683543620105588944521268471852846573438228000970446127007727733910560913874722990748934633370339018567225418774356436237402536612016870259255725492524139204498421403309740583979059791797849541430240444277956578396040691139662775374262845135181485935096964847042666690884059798402379794556485222381216369558866299037251692322894783944227171854398916344879389445481004509104328312814862278634295516355798451237495377339653694508150306725134646343338396187812463179725134547490739628021670389540329218509165774192037452063488625650558439361216771374673545307470368803717257572218699555071909608739491844871359147143823371685003660326095916749482279237844661704898524492220514849807740548131658820972700640720695512004993417027351552178434983758864871431267975684780772521255194878373941996534164128044909559104070706084990149907033931683882138320304289959452260555943695995152466019444002021173861445591725558425155118089189480293139984576750583486654913287293702081583453359006266387426080446022726050966760539641570449060943936696920416006567509658054758100495123600483296858999510910034537281126443560607810126542794074136742151014818564200199429920084648581417963622100535035981287938860568639037413808937724675002169219413440946862677189176746864408528388007766916830276922636994636299352190320388124369448668280553125070781373234827976221277802153780991400405572687575928775437989851505632352141696326906028560619872297857263866714023047068643907573687870119689592685780867250141948969583363715974848310437212798062571801818491494174266489028075382804281294289735698195615649854067619656963385167478341799769928279333402133039354462212144976409368963918454315234340163571681125556660769674809279326002356079045866721772101066667278453541929048252910676941634125078514543373836326170509253275618332813834273461255951837154830463271085158623095819688165850729480740675327279757711190084158439514375253932111524032944355802256377487571983119573827718187147398242144766134693175509248824923516603223050103911446380781309670622743101328467043660572891428626961392075447967188179999137365679134962546679436665534030586611427861902203209751675015670885964452243722542531637315600762939346436080159621160893477242095855420242604531867971527962546011385790233033449880334072596806464340369444229435274364045480847298849405554992786323804711820978182651019974907903492314317953886828660239203735819950272431652433311011823987498715897209822293866236561425635488654524196347342718792621147161004592680514253353650790087564623611515493995758469275394135495001084359796987714616406941534728823991721342907654163499640698859999388793461979849268747864743114632361548126261185008003459412104157330064069792157822259338776512014481764485509503180809063087204060309294591981180128306637123426607960533172100584389635824857384020721301803399388359260095311336828298594071886475590371250223946230092309875884207687144927548981051371874203771902353724535008848906239612138257871654019775574641225538557195005497960524317426858818371773481618148770066682273088065951830291573897030540699018381939120678994601646697332608078740348918256775797743316963830238031375355902339764008049175514091018541452330734753543975125759446252310097594030540957256003482172084707060363418784531405203202235507477515654019984946044170286259615616899404839592671678588752433469527563924221369419617603191710112747459654152015789218264292998239187086984861269986013311448370288705647738765325543054273813264299174849884743134015963772772005080201667135079302948530235832803054250030729828484435045886832594626272879494934213823003331548957977453714537044429217023356608493913517042162798618410895685537976279549446193223070043529426501272221551160280722619300218943214573745057942614552842244012251097557685090078747655140141528248125934197009701714706430055695060675065197138480193029115703056321009096882571671967635592313456000836871732377848851249440963918579520159332290351651152173872001515288613864585215719772370873760259463984621377751414638144416281001310672225427139476296121257352101287945723647693270881285241484460995319393724510480348417849946864041325831098499505838852696828205059385400916337581151908969199155574864054722669850990464528668169122263091783718433633187416944669233692909676415724384741391919860049955102885495849397389655085229952004900380305019436944970670963594697223648462161843897244409649490158942966905726775187544958966140078890985005165196802829656275371541639442608898679939489038670312314394180491876561580596306736868473951921232169793119805982894621324743280205924264180621426324882711016712637676418622851991591311386323998418908102335735474108582776095788908783094894554291581890769877298830999574337581347602053519789692024761690663738053457020711131744203519076464043398183318773856705888260757186908329279672378790047184016100946192089314579762003792426044253103032026803264995268646837554004358088506597206449214578023713054562572989469037719668569827179840864281774809585982809451876688929349000977483042800759788414664476702766098629265217093287311028358092610661572424939531463812684479151825772177712252372869595564771225146017980585957702888751819455076197552729923127449700119775863967660361981696304322245796435736351354328219046795514116304975390194251052029946054959045304456449513250280371795925885670322831819391215830943038445255777072045580244044965252622851278122978693137760348047297034856649246427826628848316659319763697974144478868667474255001988158369089268773290634005348575136677926057038806429056063086238255449674564674278218192229740852873590646775303870263450218723061224160525667922259482164869331452177687248484863740098576830509793813787916367636899396703208807316649221835609201928304062389368036597764145066386139029757546206863335761030028720315518847265343999043937573605405826865551973323259208311596730898270157167355112659928774755721891525436484481688290006665161205741586650385812401405731895241323215867774421202426013624371765075747119001889773354919227070587657342103644371270468042606723280941182645334226346939044773738811902300787546162585262161507246159839328980391580446310767959167848114294047031904418596476131783514453815386016973506830349580063249745639217776957548410890841977494541154384336597989723492873611428883237737414926905407845005011190539330039274822432562661700066757278083611623173408862226738691162331590282498465815269355831923537383095618500135544807743957894837168509245139246101993493544003649130323745581848956652929497293195891413856331022806225057830592451627005193872261694964133623317587787445530823608135910486228991260699381374707555068356761030252068272313988580303605502960778719040276544162192355489531880371363395749799518402886325234763883504693585830007084017272179394525664262037304716213320056043770715819103604111154198020503211520481795638063633877031699987191648206304026970288235308822723365492428803025370071731642899256325923882869415050159085769800948594955102166680502305605685037480703250520348015346000610901025857161299218341417511258035358820604586539948416840885382454864947589273453186741625392080320138254147732194451372827976921414159147741691061236191502834619072397792096567161271391748592059125795229616180938481430329990060680585771399724811409653435101622047253779384188104411568899902384011428143133011614132831090778528240016310294026262922389236184335993535515927922250674155730249865388234214603588954409147148986462269094989830835551873886326081017540901129600560822560369736861364517530958585865033454423275077590181493249802152072906933927181237308055137557915918693673877945101282226631663306410144881356701532408517036933992000864597731595988451726422657900819155490412732639654088898656371028710026448240546957355276155717881487701001015477557393929874010565860719148261290389117839952866136519555506076924051227566277168862475445547696639556886628665647365584031529952310089834840644980081584428924892093968726681333022591149836850944596698151552080279117179338767140134868436352149165147694316288291796988277905878233181483035742208756322890764382198024539546136874376090247295522466142943113466763331030164668404208877759220086984057210977260051844321613253740576932977985199968167464935146995609429617956318204525096432329493658723700661936596674729054417042073490483430030950643360112506741139506083577034419251798191877637556431839761820819277109672363948869863302739979173180814663590854304512294303003396099906458704970110351989614427385942114491093611852108961025608649410037350888797419268443295916715176950885682892927306444484702369145920336256689652863305743460174305984413625838285342344121558133504418052487996739703348947500567445679832963573109583081526139353967154066667076355479429245548345809181446863135064612988801942771940552310637664504125370278615414219002703848250592573859311163676685131080866626243109198201685359431498745214763271635910485684683329540730523349580799093544040513493198873749386625882481050320374338697229651627870018576196817262242024877658792065509585474606072959607065169596650879167794202595999493126208557632353261282212980610634946365462641086453553656418921974922451875278628943026049830719887872693947737927044341327063254259624843518695893881998529480670671016775896413398139021534693800090275656557234737879009406242185607231230635296904326837030330622739522406773517260436988225640842520932177605473583527970110020303665099278126841062265010554052519841974497328712531878681952077587249903608823760318519430337918653188727675607617854092154598072048452863518356329609644241364582978007567376257018731031158691881422978596489283045930840420948368910498246468907651036328846504747553559578682077065606088219779189611923839180574501636623580277243581694896567798224443144517473522549513469547075441049560333859390047663506343543989307694738830522439187001858901809635224815948647222780365906513126532639562185924081367904202263915117863917962979880113528791609838120385931101168685940695686197663522906524615929621606660271522461132440487597369021064715717702327020556609865083164461554600836084766002321063783833764590945077753529821869366044805279342887044034211523321065098774447195263543256000001983595092254527046054955995868511118466650189930529189578093445352728437532732661981288448657935912647952076572732761959130832219895904371327289452391418857752012359021313764303589593574360693468518580406807836877721859746383288979545378888991484599830889970224904295550072769716887469328288516410881471587789564801289220402013785857477145033865404981620781706313338955800790308338796006760254345457946639324888276439507213322463756155082656594653076172570070657182083664650691097743028867455516778780497798892278612164336640694736993677103753531422872922104682928049710116802962573434205780995083182391046551025117988690109498669153732752386388472615802805743224197585222273214596266171918692675638407469941728388084943127492480944157912783055252686998945245010250125176671305845622831546689391901084133281088039042084085492031768609444041356195490073149813953063590421928222775340224198370742988403963227230477497176583910503165818915288636523574237561484451124605570250042483991530666822574500789747652193290265557150770816389889082803576760726013026566774635736542384847141826717822212493177192837189478748899060913811141911902277967934976674032498667607648291982256499129298895463366054276178802716459003944697421957744285910973083826630431009230783607720477009591433384172227900328343286239499399051555684324057950407273379960841026441116784588016053103890326943058539285688264224167348287718468842513502652266439798125874613478573983048704710126861512024531729308947096749938140741170998539625871022824817138995102850326920898044657228105607401465822752029018080525455095031708618882091444188741075197879778989906168876482030861846293228929004468942448337876955296947101168979288844759182656515644291856272698339607883364427833200555958271285113068427169063252445639432020172488598022712271423461744112103427032738996638201368398728493551031902585775530984197275379661982455176978871768035410652092403134514185887950225344869633416236597093352433147106635956883659175189472804804439259660841664056871427614241360791077712145656261750927952540333874157758987335509552658717829878873395592277321582457820179314093375322430201386307241699081557309698029626101108818487418565171502371040026217066891577829763402479905332293072467177854589040300782717698485198903584222549070877155429632590889718866603340690568819884691569514395205442888862656556668718424000068988763915815668488342740175198852210295490994327019981701641790478324932739778882539172529551584389378660506137592258869601024117248121469452631878383639859408496833419395109971295007846513872200333685721998703909669085423863331819723666562685784685436030588057964611674976349675524534413100594242729574337262534164747717981591621945073803326634653429478457584247094165520329434858047064762459431804595582747841422909026667197849988666399123015514176035674321931997235055221226059220671155452928202308003796018960456870629841972227775770155477324308198737676823616282360648029549486753247732550643725334119431850099925164574603961471782906340631235556898758501583962514178132245376652713167580595366557214382588896665481717772179137124287516234411617907103551411829529472380418869267979401932149692603541588712176764157070737672091171851371025234781402497853249709933808460066407323936235055396481199790684610464522070088530903817826319393931261375561101039723527403274329779986361886155045716145931792966274297317846863114476523074442834437236585476037202445084884222584275893651801323376193340871784533046905158882830368145409953038799599670247314529919527376878880764213011443768447608866632237715540668036768777481136974244661745234687313008123792823126314684268014982548540271640122346368906032396013470622315135466091962734875210207083152462196806586618888061417655618506698351199522186993869195728672771306700786412459193649070743899863865138990940356646128893445095464718331382624907539363159005343883931759838958867743061740011044652070160953908766185001510234394744221924431290314285573812363076776095452355914526504403030940294663387741873450427602894973064867542749752648326074821525654107514360119807921237102324866689709738447413910801998674510709382787731090736140153290632646238396573376219848891001418157098410913918653185716992253395940250362069113230234097727403373724695140223840930990572343718387759894246844831415609393793277980743019759421389318585803850180664016817766759119478311535517608720611093299235016633558404506708926788807786115080864555896093643522494909544447625643430532831207492601141832592851308397471017571029504945316750044337678466304784631923875534764907965078068528130211038155133440300742912827156503826632731610910866894731531740912249166309002502437360166988470069190761637213326815067971507868260277738749120706333000788110839867355485033823728851318837600302176625849555964556089655049362414878112846676332306056357629548816187309741331368506008708603187570223270790125320331957590801391070659149784799528544855178587289997300297080057261471022973357855284013288757508444697196777303458786273531705740522622707439025868221670825858694559267466157218476028518306233907723990323550000956202633656560897604270775287323381484162652551492900806270207242645015327224284110492122629170635558384966218810132948786603203715982742176497899529966040455745112207239371804687027291886096784459717638587773579665671233662256558727484403203630446577038270835384169483167777933070868380115033394174124515022125234190727462992132520635204800048601033918176705004655673017910863797602639230440858130421600482349285433326538719653840241808864307263635201563002744645395978027241698970472374559736120254049879381759193516953986872079567720564988134851864343684204165103863927293738174497462291210879475040947286265839887988027524916290257904333740159117039878115373071014737302745594921493831415581769456586689805035184790656108944169882411344245985909290545943102486130072263070617589585224631035795930106877616093244804988546481374789757118335153441889652847547666140873450172500915265720204457938507876915414579087676612034612795825103614755716789907371743341864022869010629533763222472914597099556079102232676664451695843951482310647467806915720780692418037956807252040614815463806215110683043146273423848973228562734616970205749383158295415269142039587673592602493208036462436700198351097165159759238122763128214563368884032390310595157561598097047635672394608618041780226982435275434297121043638513419753381667510166613557210964079800311428069288449169528046669623858092565388615988559846652230158231750961165691214926788663310373755357168958476934202216208294195450309926711427338593853650369399335790554002918197653231265387293001890914252771285898516590083275518645602012702475050462996927111286810307592187399503288844347066195936508817933786426004452966039767800178191589167412132251250158091516168841252763971159555485497082490814113415965258723061991275790839350709980366315829310565289312512566626690984010614375806110391984035819329605460944562512924501322107425539596581741512919137056127166940575546018709409116507719751226463278400338555712484650139301394647605334824283216308593393576285080160280710970140005777668607988683382850417430604594150555534085311237566411687480974311272563898281196588454380466689074473234998434087599905209987426301471947349440643382917174136409182310091014739449005786671034529370459547054784198829633435835766121836994948864620305925611856060326951690663320181263245822308008046785838943880389298860342616962421762198441628031144210210217725453123021684499308803444812666619692744835105283315555487274297848269569855992125487361734810787854940331842722652208826172719582497791028319606176419695760157917556560830367411758159687739195657483415271228492045628821023538835431178966456429263446682083226847777073418895915469479174874048502506286737565648368375584356756793118336140627644144797874160325981151760096325578259297807943339574569275371649807030493111483097068622074979451282210542467046397091916728497879480625531368720237938976064893824432935075555489983493302866815674969625165629655274609728841934988866639961217957861029476737003187123087809640322575308864613551232306190192802308914447124731577671264075133519676067171185719841729857506713295931805533615955710519583625188548701672368420711413979872231736892564054969293514713611863999856309993229576330106298267433692315238316547109626695469335785483435790289157931506080826178152544541855354151578067720380109297698682546079413612776061026043087094392556164230830899786593285102050409675420897815147225784913268357315250010967481487095159651445596982883766508734921931372642172940036123848918570966867483404294360525954209370347594523351730267972506250760898735258598490932124187135686232371945692626982669862312623194146975045568602451519391402186432472862518464309716409044644885759453748933534309061557609668436818596049837248941916397573028674010632418045309369141777391358180575809429362127111215817172217943553523235586615529161941020645074665414628353503166178868974280957360459427840245981835842727953326033179759787915732213409715206317038885553968937087599817418826685125002625365946085563064783936187383606025004529959478718353824765735054235628040464731128640722795168650989968750678926203031014045200901363590693975191076232655617179899950990335902025830963123095303828688443355060853729035642826597199584766072014920058454978847693309732739556018497947742419165379716271889270300183243027764889612570527973932597485989062740384291106808048794851209879888401616774370093920567448847406424658775236630599248567594005184923603344595165592724145111944616825911755618690578524747487614631624379731988396997487149588003528892859407210366451180821588355711776943993431619765159532663107234809403627052831992892448467349855079906486436305438829414851036021354239562737115860778098292858104465190479421060175103991327509050805658496644822965289370526170973144254924449587319872022693000939004322224170045167909358229347923098188286874988808214749818974744594205158536872298987839930803426154502871175209045114824278729034105496524825570399652495268915435843804694717440788218845357187378842223011128451622001064256386495709030920354117230304883781980826363498754969464866129733843704013947989746574101489312894703965948327791477620400770057446958392023375952970274412394174706144589776021584972828893526408602156157305578799596222685806579280515718297578139736070154581044436316718117513616920220993153130623225136239037667148091084502204800481948473232266997792708088503261677592404920765768155335382729560026505011894808966058053584491349022068468153614244968851400561226321441747474812783300130409057835963150999886777244342934785031322403010857766870309342219911662658502557439242285473047954981115579333983701687408616394369927883779551188201029037428739790683913643867501794988047931590878063393764963742784999594622990549297079590783295874398247660196268584005092356981865914760956895381994569228982894375818630030634967893481466699329062914341940933617494772561056666513754226954196370955515204295748241167257236643569235051326238361683553773126782288424151558513954022301215597787556345459290914901563008895219769640853319312358343152694825416150923686179112505195136615767534702078509315450182656167305020087700440064557608665798768020762217052304104419781236756263176541600792801757146941809539756026136705810217278921334552648923653587246310967754357194022061512860714601805496526855413698606329467725504306324252875818895777776188787096867988147546897853673439331026433200770553510082267141059606667374028855577562607076594898906754887475203351148106851759913206543084501561750926955129572514290849293407667461178852583316618053882781791947151732409549568938533215084324642258250705716055173289121399041256996635558927058605365736438190825500880203046570014646319484066763286126032535678295184276216988728180313757422614047206271781033996517555901829223635359476188020752962916761493502780155990696513033478029123099740535354771283303037170539960000418349565712024890158487606336392882273015904508136008443289647849375379176277923791695007719658542450384983991291571277075683227358582292063136624975282259638943414423510829521535480205268781334225358680549982726338898384873120855060710364660103269233825037438551168762349989845154626129997510351276167269141899530270232324650222974574485565948522162299762663875743778908907884997012034882604273309770433622817402382115139179814218604401990072190262244791412604046100081685807999363829645704469480399852855492302086939295300382929521299472158287981115955572744559339860479997339096658020698641361944428665550171324835949608045929456306283793847895806328704458691126209065891374075989935908317811098185744385372719173015901816317973109141778260261885038253854449248095555168322181836993802892707661675919821715477845894566405632094697130488051833367590229763317695812037355269458562268490056405840756301058916277712909459216684155697316655540673549768434429386270587548869457573863107586778472472574045861517203346994852230368083403969070701290449128912186350162621809456269927146358403764142913869055203775598060875062082222211693652582744675318904340171657106901943730623398406109946252368800022645924569932347069544337790167334526630690124651815862428274647821095850374353545572788853167140985058298613102811655375523082423407459625301659547103041203647363359012919848566049945333487389796507976967916243543445121911437865356082247337794576061023832833136581689054878252952045157521002373945174498651590524121762365501822699274941180940824753255121684256476755986730571781264238554516978861437105663553406990729955367580043246604718523798527257923441128989664015023379551013239527344444571858211294334889033436130500256854450829513646635474565486066351691758917420962761986117617440438487824568735686216062094163534816062766671150332845659806077525653188544428860617925963614764640881512417879528354530338221299147800858268487995707157644054539633527202855830170861978940376906819116179357757723439165811951416039564255234908279727548042036096187498793220608918957248264126527245142009679687530293490490627367850742753393687632495384401661220816904637868417576141237923763943839968988660798115104236758313972929534537529990419731506892130288877281182023680591561318027100107763956141096778159429149048710919618157097584533547500942231840716956187095827498008855972498321825431226275335168118349668897890769579033777079121406238480580901470405937022132330641122330213465927472931359907517441423605392048037852753126442603268009152378171030006916810764615545518575876135992286280628928864963375718822107854943189449486188676075030020357661068807596183898716928432042642525689300301382421320045171852924760906986596083629042902864670387075309394751829293353190976607224710208096696550334394578722741668206591708344533757887881517424481309221150863895065422031757836623684885382334680164634828664624034496530741839984999666914745885235917288487002606082288587770501013624140528820768556823766993209100308489386022081226368061764267751590520632001579359070235696125731592280531191371207836199836520502333156093042774834580108219411070158129227441927415411435699964858279554420849603067061588417255065655642354125499209663175440560840851957077411538819382936264384029710625581085181514359095609883206061123863024829705125851797732710934915291281547066481997550317550408957853341417385430308966434813653682074755155372561957257415071432091653152418438694016169089044491073179507823399750343998930191703857154237330611851657036458845954316679823094712349056545205238398219000420771857583019347724856381970941885412983645350731195817348650772210163455918120716453826028327109909685560590340536089878996720999876941560093444544899938205090268276333376334427592401046143993979095872867894258984135534911741900765249158840053596703417394901590124743223593022270545431599159226451906235960648807062139583673162713013119855582491242600765047399544719070470271462418574667210467851876571846287823176266487312406376580671253134866183539365586853710942160188501849944828663829708477069830394844598534074948956333691619338936843799795713886568885498612669450766586129467039514492465089048104332073141670764172163835846819616873768517298778121259503843046581163894540050812466046105030302183729760130941053973309384712220664739946369089110317306919286458440947144861712577657173243981512881313039568245061878468548592775709507726074922992951353796019817771210172891679584132731430322777952624367754616732439788225261076000004922485711600588756538610305215720916468713376959923696888209425744236694630129573876362165079616001938406640995285158233058438185809684128700990174295414355633318695142267330360728970071246972027794147810608514688038428380317365976909066877439844284857669204800492605808613747339017312079417862100435779104865549502658289246657994922419070104634002160482498274051124606965075112119194573764820906314330116876060301487960653844047828533511555413046907170564443190956392502478239027409253634814229593336807208089011315588820069794904618348950095204373941882664132031109453033205624752563070525448571340206658089599966357944338681122580587345880456899298714158228111581920880773979380687305698326406862796776791253642738837010177748496731590586932370663113120252849894206867105981625709627753416052491007886093535320749433064787320242119613320372717837073467934474848912322779867940725077029253295990351324429008541607794669032723809156217218659487840999436547481783940974179082538673785010879663285935423126655737328226087821998956060154985400659461617273284487093329498687145213956393904174220505585829865976877186470302654572786120901731694278016675132956435649410165429926303612381205201899002687840315057907324600787496229862536654067084695602321495606492218150214610668449235368674736656986258677572481885753554136518901287262947077234496570608256398105406914734925190542445912747756267242457980875583487852979361069263872343450292459513969870959721534037729086025849134007358761977410667461545525022327700425686993639317615439037448989381293960678803832157941561702528995420136102221585148396139035353547244244744497201882658227272099449624504369715267332586138360710642568668905850900814670955089604649540727686267448404492052022749246384847633648370538214302411292026635738658055890254605888364247459386134353139977645194999435201994782522737607115905078096080632617592945195634308374597838087133607523002026075768205051264548799105129665080628816454719574176479957365495588678898913900617094380562557782989701139860696826696181633082591721903497200190183965108284042572113977309180825893959325688408969884060237232933905918581404029501873786260115036612778569144385035021570243901936657572446863801856385765153910308701192109625688752230127951664370864268856321796053753416477893530381672687877011022330614026906485443958129044201809323985218143693717720278505458454331511665025043135776266672029196850011649617628833861360637436200076123330246255193266060899580244594293969334571673518920327836276551663305933650816240254343905770382355470152141602830108264809049205727489997884065348049413162051996096338798705607737698007334622768187884202646902228690629600382595596879776863990860206448461031274043230952554551231418761889256521269131423826505955648349544825897036777989966101008389818585025244315796554143274437665583008138397696758532397471855026631657994914088050611444063823901233511864423117679693612050752961209095690542125337003471242267851362043806881661199880507569056594712909181826059614845884035206492854662523253677320344782475031638538810561499728236446295756350368110494720733802260010588673195498484529841510236585295193447197917944166050316333376606978058455596814646794867981395315538177439818898083833016042825475759498436066567139067051267034727941577128523384500194679166488663412664347633091246769162608703165610218642014875568288909685142938713230467820126114406472275126799576795718639316506985279308355184989907783959731994783234078578803096303230607686795569411627554100065120972093634402719021746013448602556524627948625010172293893476073005522752297413536149218694803599283163369275491023814701051253320334077272439027052489604668444387396761568223259227776969842232336680982903845905048581941147716931772828552050725756360834725212182943809723284047362803899448347836786517350866131331655597040482350658100574449609092618145696055910297667257747978955196320460343948475630357098948440123091463593293538384883617167393355503151423379146177449517828172251044507609447596487313679476642264078372413111448994377540881839695220540340250661952101222421172946079630492718358807703354843217306961288568701937368062131909225443279966964957542826317743475993541157803832038102174715659823902481770345078280849054002217841875956747106584963274956549129699634555540477773562206344664560195643267244003365882272917706864997497170780648316520396498802574151173929595247316229707674244869942237463943051881914550633258671156506829449600289425985785699922132067674292964291629251699871741085207423358066141336868145783417813246050363765008710083811316617300063773213279766668671088347208356409295898088196143713896958395930060262506657313421385495953999444255455614375275972463383444886898909227171169720600425386211087662155846953986687140377363840101625790013069246945424175413367031031709179587733030402434388872221864174840541744476705156593180531951749092618412234760292322929080725945559018720870516709995890738641805984147365022848204868415428093545768642857502999539262284347188773575722452917665075283198634240897181419275834589354366185045136923589048297807664255062313914916673784094589595846847932292990309069251602344323285577650432856508028640311887885327362841730592657943965929616170949360597679936886921838780777385194441175511052517827139043248294232611783708780071016801954870321798089222534202718212549130573835037031539553604956726474463294799834634927564492545059416274413900009114796383866540208598422594730983614831512069847894524829248781658496077643929906138790982476526192815810090620601004073545464175549297460550776960390207784222877252134880474894627188022852441382140976415747376784878024893145146003271805080207524065651716407510079753507990828846851878437682426928625569068045626643627467038926827772612217697064970608863889939484052449493318659310000527084212746781075812636067045611164201392154983602469406255887347568120515215075860373655794116994824071627830852627492626703626834855920969679925951383198140069391424021387625791108375142076710015409781273107726404670351630225994200242019143708577795489699129621089706148721698009772580482151595394719695159613714130831596041590550451649217435408262151594392469976086852672522723469823677697384990430891809206536493164379309506594376059628127062943375760214816104918752460220365423567220559618323125905871839321959227492787991873071370005886575222251051595391629825647870249404818300304823101899416336695320843664450798205267870966654440957484214565372282008895109791300112884377621486516806414044246173121853510537898251080827985876932633530163091048003242600572748168956485823470643094693213595823780717293065696606059256565070549813656933423365331926057094798674153026675669804953653755460929809562687314087677368720295236306899517631636751541855137793571219843105289057147542197361111548275741747471063423328121849425385711023166430609982294181809054333658601371459706941434069959877997370233442441981382368280654731885753915283249697283778408518027123912332912110916924266637046597813674731075207061755202885908221318683975424659161414141703736196583095267542661370345070901017926160820884914572235729102367858336112299881149526784246923285017908769545097294342902103100267508296270053039757865988226016279251514042659759234257438323955029269312639731928677926641063269718373262115368296008955790034953485012398473293664180182263352049225888415525856247156293675091126717598277635900929418786425521012844967587913426766462291915866515218779092514890291683886609482680427749679663886189865731867831591974699305597632338672878005139523941771509896212023124861899969169758329258211798583285651009720849014199803615256128233739943263581946595794375073633967632115043093860164475015890827727040472140803992749197333634147722080105266039518749613691984105515416351444085261684023137901538556675941631966144036188034233170401672362854823388064486236703817808517741058104805868620156094891946567422808963046913318057900512601978538572301898519190220768224895656548036172208884526052517479170743589959971490214523985649734052187581744987016770751469637925712810655371402767894659144123914119659831640105016064489276036573544296844496263439348286012610017751421212888691649837963653837710875694682937101259306044545347024777958955547962240237744762439679295844971296580826263573154733637984241186357924282234357630111177449166644159641282662278038937812125997141693149268376480113231193843843810003710258734569722962661879100601254237154281255690787642382769532099260822879197381565361451153738255454087781938554178933802673619953891432373193345005974667211181462604646917634890614940866501674560523506494341755537677795535114374687840703081448346336509086821045081007601542702004956417547234790383000781339239214292340631635467010145606573785061277022920170736736738754228061121314705538653477953024491390209937692108500963113999304439269940877211101005000133172836557184468828467617855905527778580478584318510605910355185017848291177870436113551556804187413924982607345676496760483912713662802300014879808546790499968822236166180385887444862194590659529311754592490794064219504545895781009557055853988964236949347214942997404966314751335852185427068907860807690696584360612278450341681003136287876073541389300914736542047103642619132323881857150232204466490021525259893691469252559014517430147244721366597934080352733946946020360201017460366495843014182931354162100420201489587181140176108438810264798689156644492136678832733706885660372117204731429195989285501215654985706097895520755423507333041897586016198415310932566703551844118545686268023371594058363622868092530159547929549923268578677763701118543039301453660543030410167748558832756713879947116786649874652297120861297550882750375934629682997133766099435548533115416376567713008576888268152216467899577984583906934028533863259802382455168897862824334636677400294007842433597265847570246912009923604890916545291754515547493608275673830085682318559249197714368171559970760617712620595600129087480725273104204229149874900678228995861912871426309265865017754289711491267896201068831530805247997691209679420045300709334129864359550272362565748162549771243651873215465611012092108998636004714045804241322542226184794176651388594576942743990757581784420249819080190387388076875113880447251369644841561258022977287363562034206250763500927574638772624086534403855985242260274119119405566142977480086193170312436622845250407672191174541144937571555570477323178075185954384570070706544102188850219641085430618287230050283261732576708136392951816074546745143572625585122518684668097199005761483268304316224229801192429491595837361128864973356152733073156681675691818540278469910025546480445517637706967457173325916199096577325384290941729976907411121228516359307212424636162840801726193028296623398035416470894352828381856760325916427879269219270027949746921788821842373963496683752040059405339244553047756979153732261220017650092183963127991483425255184660088705999495478368203787585746724683493442359692697420097626788354212711142695903639380922795848668657610376700909640312458761358192842325269568217423299427907513369127339755658367161065662774789842939814936319460734070518747129044029538684109614301387588003639757515244043940201548803690438308392873346754355350861751358776722853424730950157562416935469509635561283679619845187998354150295170251849491166695480025762964824481756568808585444263428789752463756613338504951871140364231202758784993640167109346710527202447748217602601538234663270576821500649562984050399566163701788303499838738282486442718607519045602781105663665654331792640932357045630453900163015248794964843144109219691523327567441804026772463077233270171534401228706956001946335926868504417604870237984403100363687656507251205355085602415589771605178891100858135225855947911769148970515481655197322965146648160060241305677009431453224006604171315312664361098904368876050653007707612047474910614074774315462386557292819166162674876181293243924188981421135583997911625931719142239438727794930893301409677182042026181236061475185871763694260099093330028370714828448079392209170238399893962510302649445460360325496392930623315809748823074775254692489123188589801629823667242961672499916304289857535539733531841119704063024631029282013524440446228900032659536189362831174554140020867267435490771950133260016239786363985725051660028410027251935339114656396027817235615518207824825746248384055522453522957602716188254825677389685667832651458152679495470946383702387062595655247385254717988751615052313062923830259959534952659758464218337824919001264751145198625514347710921236390376956394181014054283135946570805649423034930498605035662607298980794331451763596719513666673719474449805369029569846926492569759869059290407553409610679470758616125561246161270421152329496370570241363697687671366079827236723822154062344534095087599567699021377827163994057058881993116873969469506958741517966835151104614221744295873538766506766458217352961133447999603433354969677111209414301366917233264021457032576994868820990585607996537930859175071778644783948859567225082621666563704743317886893301387946367977666371137711618513094786601889537643952618317834174783964381948358518086918788652450204634147231921475720320161369895395337283823186476449419296652887542003615533802656147771988782695308493570101167394869097348910554495910241334945976877081810979955376049280180648361796106076323842211182001500954195659382389121282899466103518411511885981701494257867174254413083429879612966780069078684180485690761005822572877018691078407055038399060419997901277789312288521148859558810653853046671702805690897948306610570929159545295287146628766105148033139433341979055203145680559291708134769020954878005262044209324464701753653034097210163994292650315238453539952095485095752064501027437764523448501213319701960936762329416561500997354566788553149487770376572536480615879552792188300808953904203640216807387120474504541291564930857786558013436231930172667709598014415102408559191513473252869669451108068403533896012734661763770141185256346959958733102719778631075769217972871642141804213767040049043421385435025788685392544058873096033227607757436480611031562658603334579766653482933189216571158807088280165615543905236331775524094027909900742295298380801162407920998000201480035414236760004753219932883233971351945515264327372315469706212191688618534304203762458306836037143356435838133452040937205767375868189172478983462489073621359265297168191176604469327355086449896951064513255939320583591223227982477862211622388281417945780708665426190920877125559921338976758841437011103044076448690128571046999159880397914445779886351344667266001332660196249142213325129659624118357929367179790220232657537412765530252066165835588201795516839460282701825281071109036123339633482011864586061060962098455723999467131843465185701243505517206805424695595859487360891745089496077219838733991586515696865907403885825760858034358563072819542944747269532919745710852022634618814677859218269604907147552786245309202131631679020584659563051528569743730408503339152875396935991239704701994251251832032400261125585730443019444310570094393457786954939261417434430087672757751894083315086006555191224379938961901329166586707802244973589861556416817785881458120505777324778390461758836074450609280024938121268911081327431440727539005540352053969603953620643906642992163175932193078599695352459514411933424210098529039500375192674760366035331434137449017036004561188227595516969799685113838259656601177722651694102007897365584407178859118087408546135572133231546572152504700597932747619335634901414565446458014715594868634663526822638772202439991598520407926661349407655578855660316742295964658602907411014275204044251839631968309566965162265779526174796387574658268338226567760510912958712899498161583466336017589868134133435610653369597966703273798104383545471894560221464489206873798030141297706506747168675565070279362116303099488305456386859652855783423575331879153244459902647551829262220802731554315859254786420291874652158297755241106658085143005984241771390998055861570719160924586945932858131284817651747273198177744801333417711381775028091338604237108918799320000091918812735308077121636959502134749842168722593622289147578848895047504340289460917905687101520703302804310806595138100891572712850962269616698787768078942838253417960164460188052222338550463866797237717941818945669507124886938175455962039239182491878419050091565452366766601669703190810448352305302987282065123582148760431694590428783849177731435655140078018391328906491132674763413990151110688573704710166893053443676333525890784692430412099378434785263197347433171209706059359547540418119397054973341486326592373221652315975625686552831603401004082843335833600042417434670560629116816546709019143068377556596652604519158966017068583974577968314324270098755767281091884261245959622029050686264392970203696558977614090278834625631394475690133442693848186834264568055633475923259239740397092719813284530664929910612771154377230500526189014323421951854565907266253203333663388324176077204584007529630110040089812607797238917120481900954382793797114846884079446416637160933886125402742199632594721589236389587261334799417421057398043716102025668297629950131080265143425843441949255898158183871772008997382572081976477479588387407012127398999420839410211873577073660545915499495618628085524876164175122008431484329586552217483218377864839259345627187448278603112061918398846523801532228504315884052106776476624556745378231107591948120458326397455154791355447625326339885133849689272055513622034911095567643871253497623224246914640272138362937859532812470621580753703625736642174088427272118538284246989644711151444491294377783707172194977292825438912329364406059705785883881719511762230174984268953477289297674868758153394859551103393215288495813676930813647167934121328077173258696033646155929892136244097757402840851004040713384823281019042316594635439406474289494203093524987553947477240246865423059576981243030400815334621660372320988619973827056636742510027372428441276691520559187804256179069548114317707932832706957182636007173026241603115520296141838262701785164501747479592657177498366150828618468036492254984280791030774271502765419513154402533634573058354487866799964347463638027933115791865352095364950725300771194674979825696419073603572569191726310566552426055549449674156520725098459044625502100400078707388522705950007245216611104635733987360211879891428857171527943192101413605776489658005695820500310205228058967457505911735239135760880805447368444569493443401549316878180246451976561132530090087777962435954039042061541901103805290385220851011211164487967583399409422392177752505402304458082093441679450799060906920804177677108468558467139822439606072727805836268435772546804833254314601087445694255327642590363203454848490213349184092268777667506771918923637703682421376172861112757017866063021014583182372853704015112183727490778746200159860161724010170104043854762533609978944239030921615836627138607179852945093375063336859300507059773227615978623552287767554647507085940043062983294676106082526391328532836837798433948283392775325764253689960233194386165146042484660415568221563059153020478115028872936874838754057308991157675339518719988948578399096423396294643729615481403451261457099013609678278986257370906911997738894786917932299675008594107642716439099227406757396874039080254150658087817761996686083153322588851026074777962413807746210610843010646914170009872173315744232456561969168479551698130273842976184781608697579335037268709022429514450282802874177408798430590547379434216542724131630605713584271589700799750060151732920417125452369003356886633426415446931286416746168160169175585079363277613853169003241389298759112089583860952711695985513854024717234733373004092766402989160783517139775760508576355375394889174860430354126859775714746919575531860913967696519691840630185398677746891749754335699976783912932577388556772354519503271758158617502669926710744325913714998296684804401310844900388191210935577580984924175834287962357674734166493576737250916546361661912877000384203952373505882462824643344731445838276573030391886026978770079574350465073494925746575424180222006974998369949764017418637186651336182859703412676715596783748362282723423630314278209577540835277791519413731073588513610538784711193804507479159628849782596751182205225583806282333977581263788217027382527811982043118878311550547458156922170208016735240325774971513949941456099408390633849628254290812366457904788439277205971640327068314619013167446294581877536394906327352302040387254606204759449993078850681152611111446804191084954239627341050072264825232922363363874523523768831555892770747581523752209343852757161086566776778385044821475903377267937835708834307823067195013261029276406564248513425001817814507274529692142376263543293542044810455572796241353960923068679221590132723013729385231643627188458982426095294081553170086922287459856833936008371205593639916275074976604334418868662959618094690564819497550763182166968253070495766684724088101249134863754859977186300107950777151056950374980756430589775260214658916693984550636062008942522450329602639236370255837383704209990972561087103951357811839680323563407087923067306810252044205004529859284392433723909091787811748733447986799381453083239162984653672810385020986997701769401506343112466115138836186284994883701538163599194022539690698783642992991982152559616449042309840834115930599075481983737743422956683818796832298723088453102923013180666279806346192631430057599863519580166423925462305053017823941609951381483914922073802020572751351407409588129210066525477491659100065508027992325746915466206341608892428322987523539736809941157463427602800248728175002047474426742320899376430567571914539399627804455531282885175295259609500564927593452912228166945114130578299444848314469778960104514435275294078363116438193234351549451079914501285775493940273655833205211016472876095757424675397433660741335757126253625812171009344221361871391678025406046100654804184240033607265525165894086487505859926288384614925087964359222916457914850662904103748988460885384094741418009960705331540029538308373921487609803031508306670168684235150053232345525925810444897355744487038070930800370179285004476704797222414237715756538538249032080130459908322084215885267075751681275305900752748362044786258889470034999622023568454631282870345634784150637157979850358623563799498250730064234366828361008310237664187884333032901490419135148472911160954331133000016716528856869391283161647427213582089420355361795871607093971891102780708060207511355533070893456853394452466352801377579475792210198810125762248593001447488315948619768639701893803165743609824927870549710328607439012156611621251919890254145306096157711901199627678689246297241607315784851641227925415266999769283546752803879648607746956223834058995654017490702832338225565125497111192642596010568844353259329198077906109115339751153338332064051784384669693611419339297467678425549977034647854788452477441834671524340866303402739912689544773801227486105298699043125995688971218261681727019922995794616577214288366746133485584988027432791574631305388499086316908616000683446845086261221103217974677971967520689780970297941196316818814323678338730635137700670700080748046757728987225081210924923528405417027981948990339991327089232514249403810647296268447389585811587900869049540582802058424368952732015702264102110286356665205109243913388224924813005859091482428664531639987548057556538877875033835658836433472391605783409162353170398286164835336245367633114897155816120357121190984607809071165815751254396494194943957089392913895540195948570717994549928482761515276301180050992777377872481529776481783821538702674490428223817431094255141342921866271336810355921395800748384987551151647498226737674772557348300907584996396998386630492173317980946273933201264654618650331350513386808174253220692669502666148962275065156988691844235092031788932492346952158008937303291643843850383759045003264696822135658037439283088110682629344942621161059710362219381498413358042483356883703863061870434722539684485958295974757884640913759063309914033827051385077991970699874435103147801856964794244635351319812696074199555966322528407406745015917159925298255576747365591777053556055657683195971651504901246190653189299989579910838426369178291994864848850586090462304008426140827044879797194345224749616849113119540789679278637106337217810707508223402856612814977133015672573792622781406118384352921007659454167731792598479733801323970165317626489791341868694695974028155730505022627126906322480893879145328159008874341354154094263410255756135887515452508459950891194410904053402801508543953087764691362916175159428551488763410106478300572899246838963230568094211295351074797916681979697297404585666540223880452158685325794860157689760869206797649103368626875877705117403835829146919181639414666314343178287682846051840252576225936348872771869528720810527845370173904062284030915682090220842422516774106382871238933298451100418318249979389668255204625917550315778514811451785457816663365700689501394565187388048825141472392070029542894842139195250203062560401857453094254073536818670666354543061319897543328065057050459539050422106198308261316398392485463773367348514348078378987479790820263407698138309694384858658441487057829422185823987146153808179271462308258793064920374103084126247217043890348402069265693071871618855131359607774873844136413224552658140718101610868150382190320837868196101575796062558092640717068043854217838560369409177341815241850401817750850719869648144985656319119356246159086251363878023016098258791791952926029367534828378327499513519699992250538264496284718644763886014364530685780319032543081200188082447993469829180887248289517592153921551305962738948717771615964249840370825709781845352370525180015565106067732715510273956527025816544516632034504038748298850525819316795771063208229500132895381250942876736692561438471422476838366145459650934091369367279294221657182188282107761522314227490631839107203653860032270213269285848918081932754815951481021425513043452530699682404890227563154461237584510761174247358882573538622070047093585995916318239379532181229780547370412253041235185910163513210195249392388025520478940781811637575429281063976711103531176607111457168198234453248387393246217113779016884574158568160831176475965418942228437401011896270565795882188716336520209087970362908842359337884217753391106878601888213503353510576686885722672950578573737766003043134584205168137898061503530438493155309001540817102119786449737309594715458338751932438266954477623788699396215198043070497447536628641946212619978168756612037230922062885051991050578071468780555971179169339362094096042017410738515538983802572447018111035605821246031604656390596037093086301513379937423517164843376650905987133432325511414692169967276626442828020968215658623752126751075487981819112360723381788109061083614963357014169580306139922321040842644523159335495580650270753846467825979221538712839093690528988601600745836451116932651483819932696654515157289531960611726250476381737802129757314828886038364341561480259012312473484728546230252991063112432120166560563281659252867267941830565660593336547222270401117380421323397693666756100989611770273548508203432619393881872698121377478259817219438621067887413235667379291478366733397201783642300793365146101032615292304968784335090900281770031683147732276297320128595864307886072625828859026043725079534552668880008832843372194022136914662162898026593262614888129057396893600489340749844517807198353113204458923413722796656695538488002934241358336511426684551945890121514171654717133466036271542706687470598297996169872461584188916031188082423148443289581636539886954878412658926608080678303638277893465838707154607741951669606454126290241031160928573439984488041242865985565463134917607788720003236083264580163888371301912654556028419302155011386265748252730912908425498416819605996642744871163309775784876201219290890321937856396059048172222247314597856272931555002078988407076705582477385345656398269360726075999048368114545206200983308177897738349883691540094690714178522553475563986574314973952437616432799710562682921664324979607797455040027092624108319606821945974600448013596789773755642372370453350231263054009787455951602486206809520667224004955312225791764669447514229015813719331353468715867473925303381630261052053764897883949977409750583641257713843017488289716721203497779633648235683295448288037716378145080637625795286429713993013966595341440720891494139855089977077775277953963270923301294324803750940797043419350698674634270571119558884156091062647329036582548366217983535202784415472836101755233221238111321958025064166319763749035775075071387971203270935910319307262649678523130277776152658420012770987352085107117597934483618414427204832894125927299385207047312469761542014696185708971248125511466526782088633638633976719213136760198786768181166052342564021697397523494828388580341419700839680436186996105091694283753268881904945552991548381282041484067650056470319225458285152227993302730371138773239055248755637867429866161664584932080390727439103748095194710783867141924534752446855459400435585477281677081733885494027807703684259905428181870329894884085921182938922570616005706872208903702263241051047286277359525193621880725310547378332239730508316090919257587110055829127837056386840429223791598413045641112906749008131981923186363998140150039490106771139612205422105059913331943815556762994192043482492516817872945451026886574264953740662827191863553219974033689243091138591798763687574064503295570294765258403020335482374307184352102688657305380651944438884708586632265085763978561962776311048041290969145717273599579697152578845077384164061225828710256476458135809731049822846943146625471641250969923294340182567576443506404010084936884327955471612616975698074643394383211021221726884754744462297587070946442223967652313548451289725359365444471839275915154457832228630881017455305706517918233638844303408106510366369144399616320484103233315008400983959166595319839228950317885655185296180065910912078050183816157155390664024253497655813606483060478192683860079202408419630186590056552086710622462961057173628748001340357954209039994626581840055513661249038536519768787655507553148701130866495740133086913390011713526719490214073966346276352117459833099208948619773993229498636923671560593987910277621481822386243816251740350511698409105558620393535656706442529481562768543030389490955656113927260117214317147931832531985973261815983680059350378009195096317204884808198926515440716702678388587880818152134785974218874732269825659205129272635105057261789026092421957676580627218535144937083453255889810375915476442422086581696225411719032985500020927152501219742679991784695056275006178167096141706924737032919842776219642116959453938649683015854792349876906628224455589157085314277249820742166229383635771719830668343044312116108805801870230755595542748749928979375806821274933881280620660109519240387724940198601711967111793244380267037120168441050535190749182837600945124170140039265026027198209275993997900474061143906823062706398627663582271900014294793555214584258567004349668651743675463730159905999535938711012026179512190487129271471388508076885092348524131685592746430130652175449597516552580485847027086056093795586831859694931639907702280880721776348231789935268594136011346702862009232228537574194164257910481445086521197882400310056726234593411811243346458827134214352559698990709775227715742650746543650190947488430911076613006782813577327247234932628790904107437626280274903676112186423564882029802686186046175216516137091159724535561880204578745852246443349823885633462472014188761995755036624851724106891366034971185467626026558992608587626153473005877873698424305739871913474120488253386174101648368105318394732108945849213379376644346001089759278578567788136619265458578856273260907720262736431186398715807605245471209558381602944153585732409380433369077452883756459305252698952280465787805197510776881882036496848702953373893387441007817568853401994202840070046133528597714448556396741274038742954640213694028653854820080354774254744223738311603621793120050296436342321922472618207686956927418872717111882671190078955691644736913976324599120189598331082710699403091412195052236425392049995739697315337021155188576755343258823740281981983491902761676067173554492525592849167464798227559454301842844653663142339418579575426036137500918450198379928457738893617874921257733446573517077132483541871376687860278613806004780242866395571176208322269568220106040457322003085225696753766629832284014724539070285441737537770585161878061437212143931936190524927731006026501887505941835426725844513335339203923531241393626999853244057520453210452251894516810578133875978191678948032666480279229302758379118990410763206185776707315776347544301886489001289788262793708012943786119992538941646520130928742143168503894572451232326781614856774505592387530269034362995241420213902868656971378973769599245747966913210762956441993786503476255622716628826463334084197786489272180034166013186928211150623310061109662012994955167527304438951436267922459546685006424484127614276838052344958334421026449132349751120978725533723676862693332328814900074982141971297034510995219524874853785940668084558300972849463320158409998202884995538717012652231682119059117594787076744696130592833995003176180946766654682645061135915570796685746307871610507270690236832752373543102091511085199542333465057152149565374331748896195924547622516957846745207902626436200805095426140506383442656602822551655403508559763221381809174945390858437721135139362834172824893912917229474739409670315405629737526555639259456627441617855968264536107308959594183813286085762386164763467657245494385773786278497260985932711527731961884565484910248449244200745909457348758324605602091244429098042845727352961215812554380727350991068316366209945507108012425346417214650887385087133094080753119933261289989903486523996227380956697184580588655738941528658665347902449550863878460043134718966619560795754799228132349634928023914707868861988849714902616202479629967986625244413873263320814398533409266528255121135931083959665512415522226250734909924172744037520789370195761862933001749698063568191285213171471039139950812962733351178456672598756306371663607091836029382324981587869537853733142723795195900427875400310058062684167519942886445498242419815790297622177809494722670454540553194849824946544744764729594155412630048423605515104162970513026943512655962501176454672081293236470056127939790416631334542711823672663970581052845984263806695346952290205767383407064894213839124388866578010055018611723082038739706954602113100450861337318625208343751408178665554363851374610210324344373036475959442328375642305206518820099601088848646207615804203349639788973103799589486561193534444589475713085799257274706045556737937038910307260965500428465386920456077130112708375908984126701258629488305375925778881563662620151255462498574829843792176491276225021208750665127194323737203222434358907266983750076286286802599163007845193575518943448984798864036797242141876067953670787449987651395915738914736557501998346217599382714275327854473677182707314660682286150026398319585951219603077519754930071377248688998415727198487738190657858575958343097232045936539716781681850375768104183115033322582518989118954052444517417568483357355776075192977785848494768006754416498936972147520389503770340943181529295190611581663719081341876738988391205440983354375850553004605257840899463060818503992960340353713955203177317197094346123574105573900552152997577338916956660659044897468399961028261830722261802454137829068749417486485504324025218342607225537300312957404526913738113612515249409318917161243579650446824881461049522050969917714744481199744402444575144908026008205888037597026089573372370693467657806414584550162863452499914143947939771346959021334147620867061559276009954972004335013835115441388862000390589552858744826709002280485113410436933046082658943165703031038818503090855460003753430864218987020924958659033047133538097536752818758145943240070388899066963668903815491662742050469859835440910028318636192840243481416390052576468191770739790662515194679342027707707271260088660494180833228118765793322817398052998249225201988939038094383321223486216169296183549686115641303817289416023802453531010026245881865838228263868829168808184933880196229202604903260825221191633418929760842182818362869398321835525922187066060419367460203497978397902899861581540375547098190780828806580457592537808654480795838804070203265096889451362737139040781733629542856656316235198766311396371586478678833390760949492165840337022655064157852822873312189903120279028894421808790430122158174479340584901169188884393793136002165193739470761580823547386525391122812605575004902725569696244141584407183259129591586707859925101339755029847725398700769354840232047405385684532165845795555057957674105251492405064355090078381182041232096523165618846891736263089670434873776994678207555766169790753464075264203669671940787585706652791355526909821741269639402994277224413860453435130967415701820919862627662705652959492741617861436396271166029314702439469304111375985302649605834446473519209020434839992324424466797185693483904272141408484857755324311278526216795436436390166350332477767808450706745409393814365491582621278254262172071456522511823128629295586244448646570764915664942121242330689396368809802117426606701885294630581526445048050959572556693860033003516233661675550413474518366867060501727365131603462444039062573250129125724466588805753545435196503778621075934927094257709371226069882877576883764943891514701936571228062374469840196441916399361808758126548447339160890724534383687869527890912157251168683379358184458626045214958860859022526794393502718191745404800768819707366244390297672654068964068370939732153338783675161547095618287115266861945775143991671309543436330864900693991155182827565804523339113452546490020160635622197974513444665643649170341615072025593138752476238857060044692253233674338903485082806608132857186937044431617575245694437223505192183783338867685230880029223610848144686145343993369931283850416445199849387210217909577268758790936275864295853064341813968443193742236186310689357056163159011643080236311704271958519411427554631466511546383069487555001092627270365181786826754790713181426294877964298744076821825053552275394020980023170670942364933020403696222343792601850897590530510087858679746695022838013175574477195660157653245126188309913182991175998375667422870082671961566680439741847437326771531313379400077577435941458623726702222721717295874004312946083438445484512145580448215680127703545870200872007482952848830962497294197867613805708975491708425515049209725332930457267686447977125584154942334993052320565737790405766109706943740471252017781658891632477116682397292016138878377107660625498678701290551944141708335991851319617601846012946691029727335104269382572779557197859868159107487392411427892840214761499473042497955946192436067615253277111740417207066741735338737923623016484276249496877551084074261764497127405647995161545810710718769287623346671924201244264437831260113867270043040760282657418541284372789129994487029233836314206667581291489555229609567446113390130517499159980710329366227519897944239965054604306034451496785631648354794805784283542936701656923444355549918584840309038761363321751665049091235437312843135684375300651689804158967229062288382605504003751534479507473181978571733608932218857168329122738629490794011483779384560288783591385792357609649878460562450036839389348031154671554246637638909542625429819189107376738480696474404626893198672479099387362447386421570768857132969415709623358297736345347267480872592843089035291732603878977971718026404082194521015296488441592594797702329588138236564308868503764115145049945661359597222068496832479623650071560507849073377474602633938984150617016679968213071461186945255791224341956135750410844226412228468368016852007065609382950086620184839271260918699886145739735068079022756329085058197858350118422026468133713742948157609161172787984134753705851885079212420504295185101035169455172925635412036262118013843079658276828591984725739664085205967773186499331729405652536986951140044253687841311703894228314486502887775482748040012420257079580875005600396130892126498518793260241448644838316149223996309010602045831748215092523404627639806736587612315615913694906566053256391858064681053907399274683478139781065430889815890365589717005188099225444899272852313702888575956566213602507581530702129713414615780577239245542566997919328915146568999022300545566591058221616128405512919243924027320751615489675272449411584097988006306576773210239207058471674165831541434679026535026480307833302557656663170146376138188887375654242720285974820117347381423402174617709473446224633648923738859612966641548112540623017898732104382612674013512547013623620361985959746386505799503127819033500367589230764498421769347780593629628762210722935174017286275019164639093134934704508701066255134015815221700338086271880458373874386835064693046061884316704602872472010955209717777573542411466334170757213440329896337428056439624055100565130300235484538851664601484361628230288943919153863165141344869305602421269655551993460671708060696952893282152859927650628798207041513178079929254234434995768987285314935564310214415364169050585836429974516525724211028397411247321863440343318696125426730951282041019970264917800695738102266571954263352753168502784028160047261826736455011846631965733443599679593153188042364900821626314070932709409650944174205755962347132860891004067300920630327473043067947899970441751232828455154655118887970769818776933411986933263514716983076538886198229784818579210238965412919881894388568219657853649408516728715799467120663442103821895449590452617711470716704472151640913732788194108882808983119082690602206307579463434604832882541391639963915561740540398922389940423082383854148760263882401220603288251144546625247145569806353887180586634716100852239284249427215784294927233188397251017712844878064459374741560488220877995189367934136547774567248463083485645831396433925817197263346003049371522745011898793278552589357897723397144686557294389389062335839861444691363548235621945727004481443137733122581640886698485996922057148640306419209187733385493819982928666446084760646604917658611270149619084981348656992980699157531254922875292145553608625711596541480396631949315168971373694503475677971740390165953646049111796550468362651916110733690678902045522174339414206740005897256451715835477412572202574396967473272046840156646730232902646550981133721901961007169597917567585448590037628039145856613243806814478166586618134336985130230970368710056384348596132419718281673608403281111178963143331075667711682328093146923246969552483379980383464468853880651158220210636568390358433067745087145301586247816923689273076384450847403839101023859800194799072710895398279884246655357803225690423182101420776228074131486974662669725816564363062988442121716887940872987107959822910445447311503670845229539063566903341278848401165349975543227602727658906399500167589562886162212970500498843034440622668683553273674002229487524184200726248153388996367462729998826591290530728805809552810426700030496152785909610106446284053660754967613928305638466188702725509284810089699956815975033701921220731617297955619355902058239942537549379293989299506187386957096767308682764053892581702017862598923769736531722578616139003802472586054420455766095932918200088139569340331174867000166931758209915123327844962458745379543542195970859718004428394760866034119024949939952993968188141746920330131700335792409457905046104514180873719052471704540807433977081590409115938071560759701057650996616759309937986490281159191321688115311484139001746189365448250028528454959819891480089960192042418782647469774551375697167954738499922907831257117377632201214401457004942972670836282352597569737683184249469576770412964752132390569744018588354915024318373191907082987295497638637051175790671115619807723436821233830661513924936104591088524174610631249435805263224871971360967169116696427287231871506901730729856344444789362081997645423693871938867128834212863131834150897582714623735531067968631042644307009364465845388785565661219206781741952685687440250580945558034407455368325507719920583914215438126804085520703984009113135499195235301030616439375567285214733067029002953483563364053168639976555974151103302223194994223057648239182740999915386668761188522801503159471012893570669923452307867543525527656149948954893071121692929924638820682556035929089387673282693512270434453042101359569387610817194660347408204333276118854469931103553555224483025733227592172625003772657721773901217961838456259305533670376908670101254775699551023914502423282737657848557861325815780877429909607943886332555296097119137245638771532884809417242450054513910180936136840018013073145624287151019164466328681646776356154836491601969822813298254256522526649536486973871942165747567260553028464654788055297192469556325828134484851016181582551035594641444587800600899645882124275359410898600069083952211678256283288376758780989358657755984416355784546715763224413458732591168151085048732464902157697551406322959766977982065461304314152063753659006878739182152449311466595884054280299827806775776704404367064458397404348393939863172645527348355076033813613955079132301654610345912065332899129227523863189772825190890880003144581367406881997194101315368015497781224785673572944707453718295995526650436361465185541267772634052838041885661103198823780423286612692829169587266946634668080587027397326782643794822542719003757347760291747038954217274202687454703744129994656076738238850257776198541646234144174273977475410530182291429277416454490433156167236321239912932229468124151069210296313367285203611237758041252884906927589513695455904589548568390617657892564394711536391534343951812134013971362593458494838915075427424031927192792056950926161922492894488453795350441858701661684895025732083148515356907507612336290391740651064916043311160833205318394633257217799803736330376539952731305050151778178809322950509802749192358313985016465487259102077477736965262291894308796780912459064548196496611631881097309106353960791148301145923785474056669626623627726827649929334087841489374944930267378772521850886307846899169056602526598376016947370579984388353694389638122698335066379872959418734536443352888429223959779053448017759321538785370971906684484994757673151277746150147129735091226313124576188622510441398515505556850920571455854116684817172720344273717816230401874524500540194440024611697118142356264202435674156085096164112015455200770991139677004186504303941576252222325623391506365333044348166037770111247342327060184939251445345370888659890698353974224429216879800857968468521892638229163373611861895091463351863483502240223992513306240983891618859786356832810647958176566339165846927443900712128844992090659849691371654636051939397225341891156507401533097414797153456074874731196208627436077988320887003401703145623436914040856543415882655290814406960086501504096091428996473506900761516062191650736166401685571228407723371840842698440449559664682734692841217481407997283218434759843460100645754705053460081191229755891597182992409146560160139954585109836442043812796418574377395137778773097586890823980388900653650132773776344129497554890629036083011468537991984897143727435867885637542893316758522975233673643196846283368912446146371020878144517269576956307668218135746914447669248845795479908045510094754816290241670714494103883757372017416679000106167703165287804925647658537222246161024442775519004881403558593434837481158953547261279215794068718312635974602352834424600480673021641493994617393125492742552590788286062987512063876355666366317699401859611986839644693686042123048601193859077214538451593590395036228233183422437705736013723127007081268948060575541702434823345429400664426139218863663925785994639054140925155263463031207467933598392407541820739764643220218893529406273880242816751271857556510954928887217626413728691562047539477110518055496887275872824587249595964609918853051563839218891301045485359911950403242964714555092608251821562370451347035894264758274121900003210717948039738336328783251629102279284818530790677192676124374029907469833419828140963763727202151352834510708119969942365387937350876637176336272741139728569976902615950710934403585547086481965146408883300127875016028894666528456927811630754661193676046144716751251996919005802205149634659669113487948619553326808380532973834550030094310294390068601658661565108538504844471052622757848560961074098487134815787496568444496601577749466460495795494654752710399627393876954369721225499641375379992046825993582156749665019700503648728968029927104505754311915241907586121648720444172960587120014747741643160473257871805729606310483737037804851042573447445110990617540973157551857891937173240254019266023322083555904708965506391717210402889552313277503744373171606649265622953498416638653922114285230606901068377265210755597752502875865929331511347041448631675249698418324879044273732045459145821467998802310428983827578489119520555879300290445179235874584810214020860418554291659335376948158363673529372002393092918266136714684017526349794111305907957956418084180111900222151680483389549743806186472002401919785105433592946101277701119682439632774340569470261570659735153146665213284264540350365481270626533023309778031469133174985021304803380740839241589540970357877923410922658998001146715237611739205042959534933990490057415557107875026530723219008841269262955269462131183143514558169841244473067241362572333432780559341842682171438956042729031170199103537347321660593200062768632648783057430404507849954537182170123811696352183283984137293788679959651048851087139189756287133876671060810297166238897998396652694406214405657761727656893964092480284163732745773091659110747612141284745995439206211138818832332910741077997904870869570415361109229114068235081106815519827649773051669928429074136101878079243840616722174016085520924022234020269940533011675811166038485383393210168588930092648961514357196414496884346531065717975794903351287384308409255056561436814779000897145769614507007680529789469470188151983998177070155068130371969296257171233849738561654762780064699225193545714281218959551246225051130613389223947591369528096933134140564519803410496420065697126526975605926813241671473060694859409380391485578446551653963863118842747521263750262029964782247462667652081060950342998988803217423738507754879072915335178067376685875643446279651672101274568962647267423097655710793097265485090029985006998002469733596246710665858480995139880473204016763578723309744043346038345192799243873483598897791082745439992877208433564744289738101155661931093054821469211488486279392010519114069039088286800217765538470459352297673128948811446041046230735519321755257047477445218521945826024797449924520900124333097400569554940049736113014662962019707150073216208254312008750375527738545680778859834712024827960988092635602427586950690115698059562325731513032919992862380089348360913855182397746611181976720498851872108041870480833970015084931950702807398828706486271734132170155383838795855195690027668211008108819801551744611553077792457969080385663712579215523105844715306722009584554153965913486440840169537290876873637449780453792448434710459853427514306386829957171641178121116010900951076415204582952108485425764428744524550513538282583616752333018688107147931680001940802465829593418405409300448473952682993164645383901990461863388904908276345848780345583169730746198997729365663505839738467397693952973285945519190489266909828243366868427422231928767275642274121345838926387571047780835794005194785494324072537947390732487852738584876880152930613716373400975135154759097477187198851362805380962864572058908485608817565911430547814401347708221997520049090421475821993723094660662137641107431409582732827193894375486861008514417593708338539167912697701590609063706857541228658584233312510093713267788188964942944194784382370717784090566418048223678370906731235040856854218090028176533511802687812122676731531156794234494172607292231504574028268453067178901838183588354041540174771867791357671210897292714599807240747836851192080052209596992657899131231791826367555448208375046811506043681495520533225023630950155725882977715147274167305346331028828910335749485703772713512363369569424773286523596501064797083026876072663147414858314184127334659388686284675698153497377161951528133859254173819265374642506857169342718545959245314290147209106459246933109306669613231327414987035259812635850279554817582077064897821893730751438938493233732674526418698174539960527434243388340327995027939834217387164081478288945681558690849387866792524020527161153864961681460803433303857072453755379178289948287167248113221142667890236633128200593119687594058624250547927807672726613666975443010764607668214123262642983906206259038298677273112174879394673523077510894055788032231884902705450128799628159560540997427969121481345484249877883621371641489818235951183428879546393718278655258031446479117102151156756142311497265906156821442893257208608032326197266706342919068218548208144107707939853386453912736160216047693809810227430310714519648442739509443504197587568859399532248627902269745101438454274973517570963557196249236028690401092865912104334269336886259851549898463980827817778185972880821544448242041947341638735170079016916170696318819809310214418745261200203664602712689445695299011825846225240797809178312428467001326893663034719842780081918235016547726926926233925805028309971143558680357990479549093672929665230301179059126205691207458191072878180283978244263412164560187236054690703409405284595238806771090723261055115238294371580270076698125131469937695398358509967848526641970607498411200880238974542073141331066720556339578134459837980598520998903056938005553594843130467143154691905651672954697592639455610936740082531143622968134309661277478924891236984509901536328560705943334021003901453951009336500346014755901132752282041803560136636706222000038562706989324841059534897407240585962559067885769433267219973720102866226783170652465637842192450362316086724876251799891070601295895060974560394050900004879214534048656150019483017277348985073748416682390270004301481294162429964674254060726444569892407373148792188265885524815224251583977340454901096132057690648244770109341826190305205732184057538955353520144199447779192925664063217941057375194202587550881658065725951969542006678570659916376328486267730570877591308741357580708804297394553452716913007864927269297372830192086307944303104592246422880091463268570622991160958544863725880457364707757611141963323801313713108316225738672891641649072902238117890687557788205421990057425741605150430431556195365532964549118167686202723091428980597588556190801532820793454450890353527123639626401003846771064680174844313498303366230683865565586494746473104599689396338502845246541963215806359545618876659634200581581934331091957952628161790222040407437006548745191835455424191314502076068480375233507588724470509136867144340962713411604886155633153169100352866506959264524795226086279284717699461457185068652228771602342518335078219206718481258480488403013892880599286432036339111163231160048526548688943348039527229850415115810650744582965982069568555621599172482387342213593255405611264476170053321467650347883225589430481206890712592995633428205342742238836038392088179820673743628347284678784762798920118887722370532371340640075253752127820522914221607602171093062367670525348537369413059576415353724608934519425695338188352238361482037454557319320541160336050827664229768579936178845768885464923459164032026230780002518824067389476061187911329133711460320549884149316621490183073285888664848232755646494478854626527998300585307507523912906116362526005930516246397969466234058929210135928524177223977204772364570323872985495406932035358407829293111706093054899454454408505281600282752425681232745656932864979494672183849369133117393849458698914818460853485597841170396099037034138392221276896306761133594109877162321088847208268271237785389374703032495195136909821530760469273725322936562066054794658769708878299049200276019270951320932409950601508176160130974878612637816621513527142120419861719811875644928171905038694277632475225198287845663568336323215364292558192922367711058824393185412682725426251383779535067721668083981446449505193994552599515643310708119498983930209229573077387194832952865680785363487791393533163524640341005700194312727723588549300340443485421794959395928175991464901963525409997616341898187143104832766196581678820125609458369495667600537117984118549343581713660878346424512298854271871823200306889958492761738694246386661354186238819874225224385424050230878282607101868673005374443489433084021433565666962456970360695722241832180749697500210032259806895542143748085285819203154964516387356635643516589714093317554562752392267879733815543373624879563363171430506122116019614115091000997830099713681957989770020182735475382626141806627969453551838438824413506971156250922165383425649966237944609882081308959150071821711987608117974050722127478397601009650951783547276781900331367629297071310809915755741049266877020356822043840180239490474454840442163299540791162889013203466754046054886030608612662304760256989920062868089943169109065244451051956766193704315482880395836226587231502911981956029636081013429428869650357151757485654628924384656173064573118379697698151659897787051947881763057893176241191250163035207741591375734569635138662261018771664940351452243588027139452606412821143166455084790100984503030513664441440453027837831516637983848705881694652267604356892010311688388438469577979080420177656801661298807240781843355571540166853070897452179214565986628862257454280990696786757873575502801165924586987201034250757282623891622397962591488767007268717434840363036476415920379460123862450896887436208682274615000586879170567917626867822106249665844541140418832583707511771568867908491782971389297304079557343606025407606148939557532693966531566647339771528906032701025121377081593787998856075359544135689103282920787949955678934159206654625703619745682515523173219893818743800282877536504092561341507999326113975979451845016049144887918145075037601620409822900859621437428447883353576605646824865265915254074339741915978182176758664595418346413327523956299294943767119649222242833996748528047843734525257525602911355861989776774362050109627611277625662312654680929291887446440316943869176897540219493649898343859186541475295444185417288900037110394153004001235376122483565335215485565927569395751764313234725285591810570431448894176999839856999883468408043941920336865821710636551166057377277314756649300475323508167180689993898718541244613609110033136203486604914368874346238758224257853580996156300828965293274916367487528555469850829607342322885127766796334074595050432171927125474121086617407257963184972684146771531208500116073882911689322992300347376541880130832795869636227251047946182760521736630705785811412910863136517641808059968547330920117276491904022218855458589340469851573411995658671545506234030543566758978891336923380338826254353915434582761214271493744796515461725265519676441725264318598982786364926302522889819566178554927721594504008524807707929636860612781880082893068782580917331699641391273952621593296076936468064932519085590061167103068811772017286636601566303338990737240695059004706776236201125453735260451484639200891109601710008137673144712924093692381720079885054170596750395436180029241450439179916091168007776920393662017092677540666597375360527324873348235715632746704473845347397501179996588658014462386242091712416585121345974659807536098452315463545378578973591618875988651299104190940332952192905239208279708366683244661605311435946505141999159454377261256307254051645980720195432093014038814541823489288014337292136368945097250753680235151871611959088552126023610176201996900458270180233953011705706031061032877489020806233023236401861995123313081394695429103459609197374965497674981848302167516927564761066623339383135903940599282872687053698271348875121473984133550971375333773725513250066451700232181276890489047768712889397773974640406676420729314283914969773960755815707649403795885005576550857470164423656012852547695885527803273398418171123877208106538064036815123531124655284692128119445183051150214284589983621736206331047251882287252102149686159668358334820944220419020707128946011050974279891200223482970052298778610562945993729832599213400355120146519877086598913544910447149444770034839249540450033630179099571872004814085367923357750560341453884045970066019088273188492709455318826341953100414781596461116086723173711776967585242460338640597218481998018853015965527769532442377502059241922480017311351743000652682966111783152200021558017331288399267480951632239192963782589878870812599818677802677219352048177100703725685920990684429308463369660675721281785570883939299169706401653990840867669093213280100307439852454498884938265161830544542942012813586658799505384633791077397151945514607419172062307941525163386387455256285678640431873102677078805514728459679278813464321106116663589440486228599441483862873262862306388829553525326417029669762952716158688460788226805670051917960751759862345549482903743428553869188293108097039667774545034260206842577899095733062151194657788685370724830248325110747144012490633717407315538462099760235276663142810612896554094749389497206805888824649675210578265148646067352892179234242279220946395993448508956766924828721102533248559608933892088763058170053696583867145821473576846196606028729635146108915138468910941273885699140150946515108864863172009735800520243890819189828916352281630656499194153156272126469400661300331284340178870946632413983619073235853815213077191688182561093310778467861149959968674431557904545627801988497968467242304229580623189746580277204056402034913690554475149511139660493435253146513518447225112424051268625333737501933169334850026154063750397042061234348482244234694949862563030965186172707768164068161059380324977061121157125474925644481966472777623650068740396504728578303812803847572071376955674371878100146109532152881270121833531489944417096987528858169827547318921203884393699494031953199611923429228290968354462847161931300162057484379536282142728452973363606207335471665602023642590238667016947705825104894113340330431762390000807993365134598469660307855516423767841357492142980032140723158763578570256326520340419206294707068729256981600478622012032543161130573583149569929112112868052729313333418700935527586692916420577466713445403004185185073960272571932784115371836928267506809295854593994155229164493904208273481031809866771049502391622673251573718429428639960424362905685072018263150953678362163628415971680658818808622749478702627412840323507849942354569416009177250671920480845817177790081244141225692425478756748773862907106880406854814383072575308914558888579905031653861619988980360022259150803221131279879319900224183977528066768542882203403331875805274178063943470326336816653406633281954032191053704740356901027339806154508493268354091554063356746245223918570244844659868273133924617629611712392006934090326382461349598741812815855765210918140180924442254473108771094725916681157320109667201436627679136168081403706279449104299671038945978160667342164883678552328878496587845745890291837671095463072290404121352489899001169565975131402730332597181501256762153169065971857459304844241221678484160441467997385698763312393535457608162745341942825617975265584426073992170740139235029033784175658433694960074814745572792352440498121946180317180911947743934810421211585989496498835396774594938266340764872193886509633206168735595120287588609350525379767955460189198711331953771067372243399981769999581276221375648602672467181341012940926178469596072997832909447995535426192611868816523939072001057531499311094207223311085183733176482713433056680579780355058913977993967567377738629308962345528675332313824510909675397126356729390997566870103318135840713296516571798198488358153416849123072413690197516679511182164021896995236369470655159824107796952366279440723665479071891837606130569613405775809467986225793089917388670056952927882324438327079756798762906063375911811912760855665860079005566037526698304900417758235112263751031286488047604961014362034959837469869054456049112381932931245740305811306511902633764155129817246190034824391814653563272458525928768962650444078560755749190073975216824454349315454962791352703463154619398385742956392391314448562790812769327680678762535029258895888297716739788840159445244950873919794943935148362069087530148035585994536824262738943632727284027660196733080312246794219520557699975778978854730441036090776848306517717880632598323756710107934706426521161035147921755817308358865465934591929379946937302780010271573721798001460357193426386002080575734834835528641049345029573309237268728325987459327303711661286216672956605993135987349337484980658452102782796409310776775502931210112001535327849145024193244364566320216268608697842981841797491675278498826550853817345132253520395721194135215459692308095564865416721831233071709684494882707196679813956716051059278172778114893693976630795982400494421909600458643961011994491662131227863743729017404811433693744151774463192576428050379463769474842851342335639755184021405726982547708249441943588489542236100771352610444713240433650403178621753052954284759553832119944880585362561761380941484233125944269547957047039432106790763554968005999889054051063803724789041427101414169934345642391800956103229665655136377721662915619408429115942469127099952396778741173781507542735339490203893373301167526113941243268345896379186808202664072025219070630369471938612364501203518128065764819096930888693056008214890367966910356918345288395162412550636940560819220500461371767133644673547849015268190034334642013333568880201530800771664564126421809874457188436277455606477040914201739522425055854517022387753167244844756520857207263061769448030520897665026142476660397156152613525365032297220159864888188714729232673436967181536006322606243723735643995314882881961410052851176858811961480641631232955900297875147667556463772694414266289414340022949913234778082355549672076222140866497052975852384845366190817235099370133319168423228120982105502738524220287973458386165847698501152795150979829284381231142519849757077509001228353087220438827573478758414464973411676279492524079583242463501366817696638948120712985749259457468461434832805985934412618254517471364798909530643095652483640203016668237615081482016474981923037783768836538815030401554033020043694058785231073292218974039124415758846685036588654637517197142212732878758975871780486184976537329295448861718614758790028603076751355587462000676300981257190430681506195307998702099168679253781220152906111755518829849859460271052883455030814269644006003313237206637234717993326937397076089979585501827943457175962305541797432208636139896300107909065863125764244076195888743424595329375712060420087215959130665680329879298234115806295529732151211557071306203395896261187267996035542021186877726333122319667686271155747797469752457991540919659980791420150464035321784032491575104199564575967602847567825176248004005906456023526338643079318085307581876989737351344449501403972720880145672940716073913317884575499194017722345600753333550502501747411772824830043959914888602439359693293426350763635419367908741701085864272416858539085601454598737623812183192616542701764200867227967527182878990979798138145874233184812602046030458356232487588893649293622420829181581042730151248790783637750839188770294158152644309287735689787489879665111994318421515278029105123197437412314358839270412256160480935307337262575278567109868511330639024252587235943104217007294051543820530339408431579782286650588577752085338196494878056898797847534869819817819070506684291665903539835650865289022730001267213253564100484310963340508878772167953190552698182118555766389023210094751179086849734751499442149472252489606946331115924683982946769726249385897106420416291409510707337283817340760758929999854685636862963688825207211588714084057288465240492498922932763545853618197814363047896815940000384650687154199774404488498664986888005272899553389756594181534255295859711848488623210487062813858243414993781866024805822606009575859793871976316568431055097688765547700204431697157203977182763730282812800261249958256383140170454975852008462944557435505696059289334154415532813002099845913172080568309789064092715942321878625720001716966101324759986079114155909319208480976861231524229092635780456191139524924454845957412431704278763990626478247558147962883745974290268887724421919490026124226357507108895976425689474868067844771043326023451323472131450621870876955744991922945704642635257377365691700232132765045324046699061186949343544578580883132331127958115789013870198161599860685727095397915951903450943118621824758976313439339905725882899701579842548620203474849092946107229278343254466384647969006325251033628220861325774006897674233759838462554804440270410711480563098506507592220775068440611930791519080664439609486574898738471639590463436900956067761298468984049629406023982930107004285796581353057244156694539147045249194121274261679457735840325064097528337278342026174665577935897734335404274587636100822157825618695226317120779201821844606020306690277686487090973180255670116660730089854062945009962403399102148734356212459376025003116161934259322107534135644365408008878034010163109693708291473112753895821451353325558019995610177843383624471963940890215753861987446973056432280988099004627444227133896822741191781798825516518917911816182223016636059475695643154785113456232918080388260548212268975575059910747566157726095012825204665293389060489419784726111274977394877029458886728671950671404363307514893487956904391232227348946433358246078185174540198683366443785896345547657826661580447564518242371779197974944117696059325381956787434013000674610868154978181708514247562310432653585911154193047556741210786418602160078049593678119856472869078945885851367548174515701940230891347726108315614985496869146466781533869709752415428542859266541394174402361290114896097858623520223863676602345473744024988640959370189282911060454532807569498698723600600484208262284661470786960190044829678880928421484448319934594578582286968763037249357298654061708037044106292538410272612638262258971612854664908097912963504140695859680070699817987667097544909811395758819797209521910655631367984210458780189592058047507316718836345548534904531933903938646095618262467547171124562974544408773254535597717855704635799919777474950464882728048169348333574085590859282557923505980423782658207075080713619409399406238461266938378038882932179792474357758875140282732962035450521001801491513801418390352634905117807532970634630883023607622154168662769989202339699682310319379788919780056735307296982405845903256412384682383902195315265359644515532980970305076184950381529286378623725025290522249019622621049866037078624218509946477792079362682405477041650443771803532733515394815917628086362766379058953995484024133945816009770493525267009299046408017317547383354883876707430899061561962936443140966698277765851890214110738490414648425901315464086397817165870508341873534460991604606273890334686200551522776954691802969006975181467398386946829725508372013778042179802969256567540717684000884550887895179718953245393240654825169471920829787525510167636465915260595241914229520518366603953764377832432023370799996129068729244865914157330258082182282958027130682236874594651959238815768449250722609867599713728428636510076053129395669289996810656585115274021179180728323938815823396241897342398505144995692087426737267105655438004654042504984114056541413942567490641458672342659954764073880860936133862849398227136960050102477768891033073424940982027622708945871219947458621719531528488946533033469279441240990347020100759025300281278871527906638097727529198338241428102886810874378235846367522815939919771036012447561783480995667369611850312328120241942006139280647367126301763113533472084853053276982395324755346821887874111163626729942605085949271778522421537447002261236419909690633596947554332694629525273471376970379358078097687219601549548800081760367130367228461577291376876771732414564941913318946106146964845398816803482847467557314441954848407592034669775233522571218698448816678225739423232344679028664994060881652280666289034434251423580989188873859192738568507935191884947680344529469661050707515526736521423194134653344353792706896072613351786332069670987039200852401089468543343198700308809898010519792142311620710718967834640691112801738517100420618262002598541426445127664990431464728712946515459769787108497626702136487388131251920002975366831067635273823639278936438140154988273473712672605605292251784639227383576138164141385983585080585064078726462193185387187247734890912968684708848574951627751175538556087313339766129940952930122354192654266384176158999135907981113524271124404927714138128104766873389608504807594241006832702316248366731608831662602037430069534752061494279288002525296918178222166729583939681643783137081435748521691643490481878464106891684663360736096187641246807487099362745023706555098479581544698763075521428579383284232795860882569593549434276531831146708950004769056729075131112424305457252187064940251507354971543820067202950435983136287205703541986729060983115846583292813637684029004822584913687277758824955254014242436862944066383900802099687754276677974127834364769020200977207020344414674764433329182376907487430339538027216037788964720171620026033636525240627409036706982351595585779769609770014455975576355997209350881288906630626641771947183911598155789929934478291124940188344659793456450966576755058634014642985561544036722919931677941818056809347667495460635121880280714190408398285733026037321784497564528395336116815517721161983858027398295900847108082328432004224948813195763475475254646969918000485894436278716574135880122174567091356464864372232093329027321942462365504689093086925920938687874211085454084138418630146604862649254747665131469076893391388567333504033551670329790793447597193382322364854597573323951084184290107701815127017620183273465206432201774219963792487976005459322535011927640920644911270800069226502039884798184076113324626315165641276517638430661227292787506206411580668022522100743123174593029783782724201078839287792178720372840739119837614273916803681206673327066410530643158180986374473507553447889384147845056862184504528090546758082673656257905144084417772234728222218174127294337338090807858506297945834235522413090256493546680264943347579474330951278224826488933199773736212393545708142353269460889555327664771776960086018271580611877753460508683488505234828291933420362021835297206221585847729866496943950722853237900521344548368317064055050068583822594393388125870231242744874872634111934597995156618803993427269361068429943241583463180292918597549474877088641498859629228085793121485118178745880130432708143778443225338544463115011305648700762207140718392121636187285877018686868366522393810982294501190883670628111264232618390160649464171569915199619301772277317038887638609879978147139098116711129166912774139441476527004238277931312024941817368017263981375098992684041624456283517499884850343962127205886816027079170348709217667175132877193810791555712788976798065584717919502983087792264465975287619098886362609086653567253446734244815549885571931034682904973380236760638529461069264648226964830150913210726126018949989870395985258301372746220919498244898710488968359714661737228267529220831273447034577295832060418188855281912358193907515585821644009849708862366836133029423369130630630610413408074750235078293834023080495239061334709912341878262616737546456725354239885461035147227131262884698965372669037339365750327328845367635067259631688763810332876145468685049818393085281114062206440068701726727601333754379543958575901998577868848501470636124473293112743697491953704466714308250407144878560732651866971143760843858029090327233271495127202359378409669594013826582592346756481229088968540020808648489636751254971203584671840688370878845597283232886237465391752142760351377277676537886304436328216427581272618753716151089883341253600177930519882742325745094325799392927036549400008394126811062588367804430633151731009150536230587890303293260408725793376232785301291306932580251769626130762365364519747264284864792400836690911031250776576945547220821829313862831728651680432277252798827523555141823260919897076587989565525082975155203577299991303344904099650070812750723274041381743305743768168562824151846297266588844137233328852578598624674062036528020185386504903749835645248850002861243140247634432207574364760214273391135901763610208606348174013129359959818890187671967206035342306988526653225400763333715317120157200924553674366846061456918909654795307616513479955537824276890353442789866659382799726085164756589623216179348164983098690584374416848100790160585649279798351166580500820604368915741208324888799792246096990690652697547165671812299821172881550738182156730541035559221580350212553411164230095994542508589461843333454156188517176210318868972347333469250732634972698233423007651618269573850313211252916145790627169587725238772428139900342643269927650083163413833049955121401202040008034361132494108634379217240320185701069970981670675156127544154284468268203511171132064548389588678913068980905334016225319611648892598434056222611104328857357628519434196564473051029462957906786313462963760492706515090437911984465270297543833411687156743238417914926481101022285002508394791140563681289988808946423179314392730544282678920228101577718196597544191495942912245808756118971202381361352554643063250581730857583119324269884229181816343106797861560085287309364725696931057370757765393671113216809057740890969183996096241719419908698388766556556087198138922199901907926444157036177109462216851742239303988375883962943432018401481464924883978005678205651223296511004807592446630559300088043951277539929802142302202861993067415857031579782372437234450955322573373852519653132899038720889329883968877589465351751793734885492570012020757430731055528132969563180686769443886069963991485650636708348906739246903510197316292576422950993243536321371898379258190476090035062758297511292348462345083210039043693647132999444297773279420343345298163326932003051007802408473641797277453082941558241407031540734664315864226044210630016199378592017680163339403617531590641722044748909249312226041378620865907175017147348781715350318521723780574172015855165396216054590590573775517492761715591117559277015690449772959602666210365598058139923399917041232211210954226992012310124409775808081220322924316799205175486235973614579431881184318257724555613565536147124571419050887720271072177214917244290895944969920309178310169187192895852586592182796328299214382924677620999913550608646208846690610164153520346322740583798177734364074163043586107647617527703529172012375787469554337389658990877546022445748105227008255429587722408544969120128219269914469809090875382765264806932293817088485181520286466118866678681941538828521094665513848039940409571044932257955478969343421564514167882774355774803143013590600938446159717698464941454564667375291355913412236609249076072934178625258085100508513302965147874576727380485517989282323964200078882843227804868197008435425535515639520902910552437637009362993932598011093916885785699891670970830908892128321312325520040763160636728555921160974204641985046627951002415885494457253037686112312634816260247491510947164752439405809275109315822772829101297707591999736632342849053469836292309748817433080521344627303907086444796681727736630458407361543475188201134625228832220792421311785153298012741068550688157880203063788322806037086537637977184552335362145953921080557038383684459563238917397446158230279739117468868841754537424102362696639387598366969219523036530238944133083120651562146522771443220987038818362677393220672998328145649238883248734133411704354777816353287955346748676321193906807885130778492690225523734010244416563605941626196458974273651508933054157544261821101911271523485801609173006285451697453193231251879694559576663566266379015107340206753211538246619088076859531278696178246841191191182272376001744050355261390150373061229274207174416595169013724275401155421951772635950640808994458736985808406713550466155913750815278520855970340640073056922581448469553708248081569922635967123075020967017263328611222597694338555454771672025875689661097849739276246381015942422984559749952307966125245306783797245064009012988474906436224727477054544231427347350058315688076661803859653763509453908185792914762013512978540027910284304632966361357897155801897543484582488506857600161108796929996191548503246335923471612171368969382938749342347035100305469154592458595737051200472458903922346735842278610519346781996114614655997415030264831877603378475283113745613601741733600872666654018771267608276257391264753615754400271468777519333014454477114698828651674244645451198364968223104828950172759940735685035789887308538400895931240758240067988204376912022653260794577473729001617176230318049721088201834542413667961333967271746847726937254431295521707485455731017388474651663070554284103930922526553395394267502599330832349066473620789713440736735748729447302601604592388501719572733810274912358595348624096352621582500744638057845007092632262598963102764453801013517718395148506001713339955466704878034930578837399466344771702318239379250652371124876643069286618976177816721884356570125255430074668917340306279801277789151929721619076758143013939178982054037209290740692085677282261557465772795392834263771378771367434859013591091277335263807294561415011234161970537413724197120329690318038203717770769011110990525300099092301682642441638510656192106951271727059414578698309604597808406550716273767195522366036384737664240403155738578894925211833293162360520998939012847891975641912859845262411473817851681542263015480260640925391829964584977229576283930986804635998911586247826998463230388793766897731197905486884777906513819156717103319343160850225756199870502140411311425112783145597873064010871345713725850634966263283022243197803023671183243363743217948603533976249714475584223527634617305271470691022565126856048647112509164259605780262359596511555462367036558424376396907096472903255913703928006369311752038379177894057567921515440957952006533735611489095883498381351743416017003201152983587611616871201336931379432707131939245638821591988477929466690031264597710956674019462754964406529102438451478259979751491270329336991946850467333065276742859260794670243316660132962867028046504559874901966909610279465307111811633603574253046400390207240919186205545215489628125542864587101124597167880845858988278465725262943751655472283088009354892068932047900058455931599144655015407040642316607524478376517742971057704010845399812437081756495836533421886310362988111461337777594056384905346971428249971495764587304091297015358882904178840545034807571703494145524784544744132282824598560569270746210274678902577131841053181789218977493017771886214365029397357545072912613048252109770032986308550976841893531706935581070287832336079915479200534420418771987293830618166572202842082328812189055980468451401226453306807921910460389407732947528782847870682196988601304080140165918948909117511584586225380022162637939959989547240028335223471535889021951293024288694602346865616537099504162106156966775767281277991923523857423691451758676752924224033103649384811120134358124190092764459809138291074961973744098003929377628515882395813856577675014700817319225059723146582509241457945324615745474185808443470212986779099954588941364242887643291456161211569765782038295695705715961989140597918700922430185249734981924303193037775461666951131830123519051827429385416786928091606607419471390310942540092209334143625526730396700368870588358404534770714331946259938726292533983741180986014969921960896249165840936522968295849567293960426995942024549451027997818594236159905995208662385684825053811636637627615661480983772060128868145755946065720589435110806828696382738013965340102450534145988923636915629874393323637317412187402197589004504151231430688263765908009334034765740542757033127770428520067835640010367138673071672250268533090022666430076250960294935376692114394444121335862077219222084394445720519880923731383103139238394060906686092417149993082170899504590560856933530788487344003764918564307116206587602293562840434011804066043407962560739390076017909969094111490922223462984237619049472582813064566645833324709264257556801615554768933488443917109695088676929423916917253763431139984217619787860556576460596402452405356400392934110935959892279718873750629116444677693485379353935011673621102102621416140900857962819590567944350662897976503114424494565875136657111344079340607343238909427914085025478423051683551369518353829470378323044334532198512209221265417734270295905323955120464734715704977163028782358266515664425792249142645449312999543202516757617140518002218345861490313924474461284438985352226522312063440821518124167538199908764023717413157889118349638271005550878247045803120261264914822456341515925999656026137464383614824484435051701317252466990506505212485821351422570191285157471107230360872306287108908166033194825026317981482594673890676463809166447296819810169286888998512052795440127462971225277739834579709846988133787201665628393185831755359410314300209375717194118751775647130325168799633006171400056729259363358301293522954118257081145047976275131591541860616237246108811437881575524050784088070148392731042868832656635888737415039519489611444861710876468225719008500798194153018552582486242915738723957801071384151111861253180080626866389590546960741711489049883626184116030404697206294479629715965801288637485016791006366474612229165419240163160374979227671749464778502522896051027968994528361647873185410173613164632699579031580561918054266876890777785948570146968592502103508186294304635206613884909872306519221080953610380309966139857817117523301130819321206860227133928717754331626359528571903102761817414492411363083043648674410148058015117161312021070941207511695152312372886833620708792801267545615067794456004728298947442569602122259307813549821103953435033989080386176597114795894064033942994252705641444447800206065824816782147995983112211154003410310834784308832260435836701458526516006298871555126450037709655528256369420739370380840258254489031220358172766489008559163722616678406468230870543465028829436366475744625558566415500020426797727583375590909826184120624146500715670660612191971258128459123203474473889321953733469269558954763583672154528271302049261060426750256899244274291831905111530477497282539314210670986981411426567666544551800308188935590066129203922727817087952093212237503244987475443337165675959029359538521194796629168190690421929261348100306101165673502846373457239791299212729374833060657080407825565453125303140471538079316741421432782922368330684891586154735971723526619102785344346533264411283883740728637757255057983130429408111366197609578541892636337055264585583719391610070795353666316418985411301547806758302024821219404506448884269756956298349330850835161638994127421084277475400016140450417765822532662083439041271615532867722825338613814124214180977324011592863123913526641199758605379854048042681480251109326976970682733131463016184582205588931651873046931391417516621963315237788403867524982201869769393747465746742466750469680000094463182241493273967830014480657497508670701909009354462445402994738282789976046083581123624360527680959678633307730435505778038736761338403696225661803431217359447900206394798818558435678209464779789499277558198779104270721554525737590298117595536004044349596244338753267238690165499161040101229278713888321993918264242167243946928655829638005662178827396590928138117914370668320870128646213497268315398045393393008743181944508078067917200298280111712506811659064082985090934427025954303550158231588819180494381571304072795987683742872193374085242573158036641644938790283064294819247431812805984677445101815502393545194340169107841469292262060750947383984219633674905811855278739576765657442746532588846106475107071540688721205452363346997041406291891084178844859814707719442177149028239124724752129601705879077335276084641513096498843470438964814794421352451373195557290262576160281850679991326194641855207162215451669448618888911283188904737763841710951035360277319180435453728917072068616202921673236092041887677899139574294633802009546331635052612087041111932579409185607631213650910883797892103506601904501713709369539366369285602236493020530044444927191974587727346913607328869791881981532156690267894600072840298266095933284141752209357768818774492008852963023771975777874511648984556852645368222776640394527020272589712597777488502467873285877208821157408659457906543969913569833993484801917712676652219147828908492560862738117005563636403584982469722820828084467565612081335077938603782120765313000413461933437157398067041906862564402832698621312685325810632762785022013555486884735151320651418304556816162978793029759384383580442577136134247684761675354275277520507777997346554511706025775450148741988894964916539302197967908362159669780346833317900686426657922725087744838975135095917642219025003952513111214131029660232796186378828497989311441176168109798367677586566130294303566553809974434722854121456598134614394006267141869567484842531252315004212371028141353138369407508717133018203221315234792902527666313797232181096241241967011673209523558220747781502726854702021830924754967087617177306533324948129896303305295918730382018671060977868738343170518794230931233239712693629469163974848511080397469192215240058616880656115590054767964949978602233032968619440036047445705416736468042313092335914627734204609688520300143772660127209998617559641475144294097379111634082140089101684194411712645243289213941664054803023534353991152295131132170153307345889203454622191896346273040734026899195709402324532572563732388632866943821326590975517041079645560832079531942264368984876800040008257006160570793588207624197184751176124560173866513909543305342616466996834701337034529907136766796944852177785854957695268252804580228936987485933565570936410115339788598757687680116827030907500769386644038518210498731544336686504837274700427628267879005764420667560772588001796944367378063047221496301107474643018005912082412330533774981262391951854082333905675770744198127235720165380216189622816903025019567121969793912793010305677062889262309326168516822927974048659175122370516748649174425253538286898373522033963897968337410142566359672937203210396059834455132782012936299764887343903426565095012732201023459683187438641611918050681045124422723795881520724398996328490400464279975648701663288271285684409086157662836519897239787477878961577900240780236079602128648435066236841612686783378513504416250208906151359877404776994227242623325240359938331249415527336446490650078832547113984602694771755244229098139339320817358265524866398913254927886094805819918301479991188575461040345539086158932162612423998909819284485031784969395546681171734994396433681701609093203370595245831458979265632882497687684418566995615144756471583711084948077011614215996547634221226643922447506029985795108837927867385107964734283845791697253066673641893080105006611519458838927016444255646491210773537421226734848327223241937803991139288687397670538313456909936276000596814928082995532562202920618760806593081090518861725690163571716964802114008581753591812138597032120951201400102100612803915225037535473529461881054078472743769974196797060643669044452686262272727681132922885422827356035810457738825307338325640367216608369375259739392600276472401935463733377257702129245665770471345492415605078024265506241737802363229121114726497814737181587230080778608541259682030568119952865049280920063749433395146015020961467119682254523821372254869221019794652622760381693943156877000540165733296219576118308797055157426419990055917610128086290443065800670887855201444753784137206138144313672266533297029864828278364130120061887505377417243188773604035455381496697695051571049316689215668340662830022195855882267725959850265375491519890963816754550594958942687433494303623810456420347912878267123089618006589454521067141260826372350534362549044757172810544593235765201695699337866738993695172890399875115547216402220527837998985856937403613980273324150502879988924921605930560741363831079768074310979698958371349054914895055279898190000977168689372984677800931959999114916546911767920187018697548747109725869165258545724316108493870632585585444981040224094899867854679709842448051019861141571827940686785151288318380139475903725674298206366305119268021651832899940065479726479557003641387514697424721184957142515383275412576123595444016959659358500730946829211872926570452846324547713518593500063049721502837233398224349431452839479428025763177700541868190899785645700402388710243215604025872409794731628261954428145906174903230458912539935944043817781573698905702743123711257649841886015163515553435331515693736078422577113418613680406997624414214892153049107881475911550874233819822430345771244848916862806562087896861917377649420382931360422900631309764624918839251459204804457770100261116848452946691951406733443926451354220853197691710307346455585426636232783137041559230402658846150259914062100896312882947891386807321896384048786825693548208422878290041231333505393692752845157542334506512326918397902959297589745855711209371041703131453968694976288546203293848101045296021977529554541075108597481214124149564013954163028113876200635897032157922408985666987602541729501542362972397571990174950418907763484964465956615633390065997135400720413870566978375424331333883923830382526130677089726303938420312051023823532184541894698637399736481752489875833366858390873258862247406581972194117500632850961860275851395115356668923774756854760802822365008823819984014075629736790636889507064757632795125774885758083463812476542213136100558600991569001301262874846069061869070663731192118504074167819329165836659919660252984467275716997706765331906601163135099324389683765659755338591982293905464430979438658641434353319545637345323534416995976301344006780981890685340110525113321298273506146492517367147262382456873633003839086476497356498133702451923546890764339527744999897278129167669214452539021035985227578068288972871099029714701227086627983178255784758674833689783165432115175266363528602125754347316749194697219400776463692510052470922066890614163139751013653203210025620659609021322255627467996036979427882774323004301713707909497639343770397430866272894337259816153003467724827992296128709592955320369910146197869078656475071154303376550716414004844303203477786258071044162145425268267143063950907846827588194971553200495145359454406495026325237275684020315277224881954232685853257753373200253505320263459703942247817267073364994350864799607911712646240821725656445146984497611380840474382624988790698959834198139292906249932158782411059266383431483607791140542930030169165967181051035748386986013956565986980761550045943717262357176187595134785169526102624130068167232197871402427589312222438066961190315019049352326244005664132238443111240297575375075784357196189108398020556605453918714335415326918500824059506271916522097331774627221427702148965278134790433281227372781066080353921306133664654662340811229129751683416235354216549309882191673545809873606203108510021198905470324127905244148027322832704833798819837576888655835026130891557300810797109292757422110743515432131437843518411373128312062498142320723266915695363569441413792073757139820880444373785036541038357342659402801976252960666562862233093745141918976903388747353894994979491210090007147386904950950719980573790835659477398354787432788097359404341745864752803486989431463003377087906310465761983663817014291102941117973813289119190000124512766950660406583563955179669926020946147871189261293409879990501521373212346064286543361044415136900585269365968353035196620165347584517415630316184930186175045911326805687325748882155517210179424677280750419186087647926269125914473200391126440506620649938615298303126786737600223325979185306940201133721753757527124395692817047206022271596852387997486286377047403003241972752157289127431019607192842456770603414251484986712156258868053562955884669303161650370865988509941936941847040382038135003906471065339564632085877956265041043089083380707485810817616709663731563243763688023061547795089758067718138924843453934278457203317811797734031320127947539665612941064703167200464088491738558601779208624356792822386002617330717157941880960663351104251818423901553312342934187571787016550453011599049205878428673702536706699640528015521083803664047375905588974623459279761387182133939690029826658244038629353739109804176262027997352400766801054351419792876427041684540145055493914015442524220817406568472282206112584820592345329643476386686320456839733193726512596215058836850727571384299868453392524205256397936395008302509307691722033133052788482595811030515616093227470758348376838897423837376965758796283816099984987527884424861931169482471221011008536940578764948984574557219886795123860398403509592721671761740710121537022261637781382803774380931313560211100129818523463927856733487538781256957129490357039975012943532476739848619125928876351207671411181286008648963446739765134558909999366123707311273195644582806207717327730490847831430861717173999446408952175770278900249226029028524390743525098650278602110379393011206123347885730695119729454644136743550051386528074427789028371019162939240369163008050676246708835039581475005102291539401614138125589815657068191995415129545506933869161482246544277092255279972366947481529406601822264303800491829438383338917314464598174026311849183508892006968468604165397669575203420269036743584959911244361605664035086813033609765787607250363180019657712033244520356052327768015884138227123886533354382984122183367550901833452052489176768205811501734790938462131956644196591634365173348664708647546279322850008881271888328592458486181733576547869224494574235103605918844644896994864965494014565726556549680137382253369247151455034261457724177168987475731587114598868741009922293602224507883231252011340027123870742757347579648224764621955924875315660050212072807950417231362652701186550218360763958948097321087583089591410279140390023339074816940802579805525989212005573868225515229107017200636768136642206369400762699881510579643450788301146828991334588885734179290779257820963929691722438250441030670521208931802776974036621829415423243085520533682728158792568744315056946394185046313461779863383643880838968893880791512476726323776842520226292595911130224786533998846440725126319171150433648884419304533167030386990228120683503569644434606652815098147220971324381367327290756112021521834012386987478776609454855157754052346335205177244872482609486723440614708886199382012955682113555871903764172250708819169393633848258039975351366305948495492802764766572710190767555613364832337066740384775839283861945647540028378821990453016162292173470118609443982219122657345621004138126480687775956668005949636845695255813786464947357305247623072439567704957669766670947875993815652992519822872750427582547624426577558264815115966405438000434474809335573381164314073265609457150228718103317914006747549030470548784110350409531269099990854054416900522147838131726755059502788492187087507710117224558653582819950634727340413355158159579717457780392291224320585973124634776505754863078047133054641899954779604706534674879806927467346777463501420422360041648025794978234568081439332192283255269870710178847185179426397220266160034542779792626113327342308914439565595123462775259943585610187324934179377214713894210511738460777903577367570704039818120772696284062468442852923460735356325194019393380665188824479093908734013122099223632415539330703107354860080575642036492874424625598026357417956300086991308185826852328735912049538018212012452656915518248100335545683644622668547302211182860399421241814892543916257754416310758681752137000729767294433639704742839717320904262518385229740564095412215075277925258084542802038207537006989262132678068426346198264296444140610624251310814702537687454189608032568486689652994149890960782692204970253402732114820399422737489625999920587921083011411417790059684341364382329211495786238826709989274725985562883119395781050968342687950496000859846110584028207295643470983919430401877410375737772902727539330096618419790143132816228390042861140156455899141080911282798728005414803926041794904318524133080545737404834252324464989316340264134857481734449791319768437067924825091669380938870257974334451296511966382236028218310359026096288205879146935088727408935145619701970014307270876659575387451010709495274406105137216760651192186941665874900152727871156147808596884223669733033739701893145914441674272758516343228547287841195102831296660325479715718787721199295070760612331955325873310374932400326801480681035378461933033574130711899515717548819822573176577390831518708698084422584812982933933776821189665781933063463007989706508890470169390852215876231842885076048427424156740926986127688055769302582401822308628781795173823356320201470399358990948555493984681183421303703626597744093881656631581121015357255779058153270957299320673213592953324776248970983004839000189736922367497411304078610353944354000407902188679810210700865899393031683845016203523719318433030056867347110530047460141923374068084774102598967637377007443157573020385855274915636957955575368372739744708015642448577687426350144733440544195652236110438523369942765848546911479306192946992716163407736600604609465420796746629595635336008982273701799947675591625991200223988602314373546553933537344680391474758685678916037888560050589049848184968662462271141986809709801353368420963809287539663204854206382675952581489112878232928777370991834481511432251894379614060295288903042097692916698187479584537560074319578935742234068206280263277477815099732593577893179829367491875275022885309364563784781012810780778010860471290065701776015783942428801806022214880735447477966037492815501380008832746155546526450522389908552727583630498128863200174171560606895213946777853302433742034029239227264043640230215802320380653742139979557012938871111042921879744035903973769629486675619479307173814660592389062790549654917017658958564248899124435689047286831195238091838701004398552662248194555298872025824247865955668994820243454622051766918488428489684223131867772379559480196097731086475793450788477005566469981387971071317781534993039563631901416035072323413505999113674052281244937406732892422719229209943946591970164118730870122129842900917154183506599135902401010845258236359794300251569693275805161374966740867607735315457045713414142840734556423902690945860893668594293588494008714071409383961471309100053325047855015662706772790069026519035728659556431352312831136395226631920810610865255041147892321206262352947206022024154760476924181411620463746606668963012482728982663399462002209814715871674628136541314680169116687579303429809593450313646204998666391379656569068408192369473210557938952422802763526266936878488401079286022104355976044647421280195169254304239898568831446509698504636986545575919540777262220849454780438907892699794458231913362195551339848460110377381448353698403644564933431518314554838587227827611783093809642176896659329961186010782735526643037434300866129574504967926981904526340598222312203813410738032336531440713780594446017828459640016200172735632926547312775044017348340713716530554671082722033037706458670497956367216789870393154124052928315017825592095589750954798848026572056169936821289178636453688923464408695429924798844663234119618743970997969101587689635890482038656040437853655002554429763924978295168615555665600476856051710974602148897741796288837640325168992360978122568017972892302852345222379845013633473503310300523334378299134573851166757545776416409791297132260662061956088785137827168743911355087584559436273431435150705084183160493569303483651303197534221774004452984788695353629518841620225522642626065254796418527299392366717735334517060494087424386331023478874478956795991658944489285605444627121727662093846655537504484224785081380445405023673127626045473182762632055219493343926376595917122205403279770751519683814236899150915231860629536801542545307952270171688781054704334525782479850373611378011026541882375788677102201017242391086564679216398226824010033454037687727235207062654729708150186859869191226309370906950043966695545836561940663921016200089874393736199022091097675414701867881373266432950720295530911876607909718398090866204791088996315972177785143285035943689892512082191678019185334314770592056595008868796189280521850387552642919101801722865424563826229253784215146737780898097695158932765993041277260928908706719211044334773140162656790899540776590099571123658018057357427697122138273862214132036710381452835184329479050159795285848406119595341757971442436808311437145633264484065352734911833037973550123769175244175481979511280024783235791519129986125945296832666992098916545596113529476319090334098179822897394684551136949089355813316355473888192681222397800257406473975131257821463997474829957621242570953636986632052420517455862189943642932110717235220643851933675020041143895809437679917579076106765917994219388147161209801373171032960526322995070180275120994058503666887136152750103791888384089876126677384624151444124972580438748995972867932827468251337189496693373906839564352683877156167087314635985391996273763239728492526767794551326959864007732685301099099587104022573429848281347925526512127847378902728545597973507045998592150830388151478269664338859904665688751304828564515653668439822352969841819002986840943277976831929964456190806276510741457276855231052298743914018754791407877144682870190980323637509227383252801337017022907115369001305133587881337296965569911548929824545640291009912754431611601997871565692560643339436009482404780749072329158447291778295774157841180333879357628921030648159119978239629536297399808437106724902203846280443106746310052917643848611801269652213016271688473078800124018276560191759756393430214878565390658697713549699211763222170819213196535432360865251963291937280533247982856254527107442027360394067676053255626485251391545045273001769483079954159932838425444515695834826882262193126888981183973198687156818105930618036256789567672930927575790958854064616149432859176451204615008655242291948632082753219201646112223761964497821877009793031464857625784218510640466653200157177282257978808177685699032882935883208658764483497784920189787184231896578204538126530174036865029168400709811002744973192670821448062444496739390407187588257117122931403082527253818831280940165572329719911202022700035576186903046721113224582890357169893398333637712171632225901562794333127432032612882108407316726266045749890615864417867889566954051321771395818998429826963603012852865390274717719634453080493021416389103304244846808666501822589835894480816861523260402613757845055708294161458381805846994308671033969392510429648088247780973937743877307447814771838787437837542251317846837442374752126507022267737933357585668320858915950171496396544365077900443600489030507600178707751510214434711432889143281854717383106297825530275868147124371909334102277023362931750646816333985098949567393629550486367559907274485758030696892333360109733465999341332602390418949315480195269499497226272681679803405946190500902849722613984855478852726166486389098884566891074792069658900627567416993181796585393917051330482875949425535533050776963986262523782831067356771077522647123866034030552439035604976232811314591805767297067634769739557282585974589084636203095860011548210266203568421744028716050443264413050461305446673496749605091454700865954758503899498063566032932147323701590498830099710756953499445106249409053899382277770294363355810521699613950652939444702682968101773730554720348082705153026702081255783505377629519991386116912140731296298763911247958325237439744125872724799013424875843371741412226367611339419154947380641261615867552631937232967934981075910749794623031145857921510349963410685025264627497970662926540467049948510253037790151117009813510612517080722679494661191322738900342367366408043337948469285844086449838348991572279993520745795569595785982948819181957070395198621176450168859705598950407308813444125196135494610685731828984290281466913904349038112792469967708965977169149829584097524897721342602099961934118038959434384175657668991650922161603061017786419449586022605267990878548087046029442935198401307968160561137902182610101875695672633353538787520863171925375856877212732465787910882767766521052558435950449816002414774507043110883448786091055912870114302094207014159070324356531619540142807980109914102466729805801512360701679210001287141036163193284829551501767975936991871497958185774139278379933511957893807922292352095496504384445026814286442559305915313799719303222791689139123186072752382306405533812317810066234743478570491501443857366522384937724759478186328103835904433685721284490494937190054780146321628717319276252471915348843489603062167847357291784692945479762463302227942818332485584521941874476616625409832541619128081122860396371350583868710357422093341707250235048181987715162217796243044527499685102787663008610682659302621905504725852947279556160794782828757645782322832879476115646521587362390995409566976646563679017200456601798652608839144741984662789988249962359882292905769387761154111749897371748699394119652862986890789292197544635038599866934875574189424633315754324302599985003756901902577337554511432289105345446540471976772523413379093150677969856018765614661152119625271246232004455251482847288386216488768034282242889277849282167560990941765839051419643392366332647017235867028919864278188481233550057043500341608394956724114733217295087331805333063264197634834878906809248315491458435265182897022563954373035061788819749881516544924402787558137586239770100979190218525248088989936477922886378978062135764451279223004800594474475885375427977180667167689323365200189256105572736936017489088855747782146734488562117730388388037148706249954026828759387938599163971656972466099713490753500218507463515923692399037502550261131898343666833885681859358574616972169670797768511459518668841878460035781170550841348407798696594343425908004577523447932741549241242139752203092551211018643397527770086384524238899366235442973792326146048554205051693487551266559495624069055532683702616083693837396478949350083366270015633347724977405362105067859708250106500271105484079133952084616500501399082014597040241854610245205265409050177691420699051529857241721204053383757243837899748062784043554529246591940560658676212333733951637881015631037385073086780392175376375839424726786382551796906903672280633144108348776805634667610220162370289561567130974952173005768107469359497433992895093530637919273073037040515824502835120943498236009685182553470648564183501891044171593606407524018531129768233557340045874271475779860848683207827033153215298013861011351761018729160864010094804900295740272732418350402873256162454024152406059635153845872300842351129468065843880835922452957782152273156704473397655902074363562299159193459300471882245356684783468112056394574632582658616170630592799268572082097785637403845171903062756221597275350958720673553860212914113664645012940881895278772788860940891046076172336696563239265300569850710258169495317548722269465167143421746652274613317587725970051317986567707801740690609429947404025712922452203898296853394254070492859731644555439035738857780157162688723197883378404108775356349687050439142809607738082162160785834019733100531322625634609058860936983508023234661397019575200696198966359399109921460526963322402545917664285094223211971927738142334303634579334147282201740383796886536310143107275502092450983828666475836712775529625167948757760068163587085638844244377587395649827410805721719976051541983531344341575319435499303042054320235687838207956735056289825142243696675095174201432670989569687555824010046053065291258642460585473006166745724251525361759976051361939252791779737053013497438221184689910007450357763407204881212188168489705246488868145292637817233925196924569373432514003532558186780160117825436303325202853323171346375865691443204167864642522821987317856371202782051247809160368718725262589175590441206109843517478451281620520720278689566679908650592145899273626347023837240129636796421300630202022005466844057241353820353057238597449152824369910839183147415971218076411388496829141872517796311900467652479736696795173576112495987630364737100924715642481347699561724260260668476265465961444698261805634495622898713770023577697855691982645250606436379775192603565730927138988645108069229390184439255678768753598477004287845853627735121434651446608765459742206373900086717500231838637701625683968096941977117638371814948377087623071490015068796936023890598334221458853171360418601812930762324566089154298090119794691114177956356758858409847284119475419377925563442785469660003399654743096294707677781862855115454179611026878257492050183296699993695327328091875879274555687637852677124910374829699675474750091361833138471553340745121046340124311304151124546729972072402888734847639009831400129882835323859927805623126554003668334642868417735383816082498148830427300761458721688776779689105538596593858911020547977450280188745525872220846836188762504390394226647384195759647859396480983405533969772712147433423844208324843993604424018157889549407437973614666876990274856873800131155703346660928129275705778864832701455726979573854246904229793078871587703915699447688345532871035766943883952726360319169593572902740742465975185842241368565774668210244242686318991787642383997927688257910324214948384560792356732041637327949892236037487788106756853177429216058210102604996857334638983719122131616425009743652895760471939875600833394507998517245220915020590660085853248467645926874463323611344021661870581004637108451401418851243114044431888495286005386874249956590667551528217414928291155177738813829748534219980319663156523584170872037718575982783342703559227549350413585286923416877303847469535846027216688877197662942771803137543303096926320676771630238044160003510965505029959619182270995532591910480746957519743971315047998523637533282785011040410804220598992527690479960522578788033331994324258709632969427270445845210295506410067665168794510184529867011531074915275000748346334295352184768294888508141213827355963776466444287863031740781967692163008239482102796086925792995951926612493383345306220032706073546774349079155082890042256558745460641323773900350554735197316189079719789931794009914704422021097932823873368495921507796778193919286232987894719898358993890496395177447112781434990435015898219149473936460435272315892485988728895574651100431684075244936502477891709734217295620842533458441737253523475320873872429986891899188223041764215994039804037569896703160349651724217677713153582972561122509468827606487426608604161870930416681842203030858031473943538579200007945966724274188500401732118010063153296639371499376008124360622588504357420933465917552987887149076278312676506810127314215800935354796624454090567650839448604000596522504588006304313424013219913845164617617642079595159848703701682639755192846989568529922214966738117989574268057526212010339853069808176927721667951203848155815718048447157833145433684091900230089077068740962262426892926465768201388223551703123141854208933051577258700814376029182311083564768567252609469766654877442362716526678744417022963838309120175574394266274006588673982961783620176938153202035186678593153101689097175666573182325839460158100778974022283258426803858091485525181864361853555953760849110969973846953011574448020662086336669559874351103240316053993093051854418960301946983752066346438736511606695829074945508774751431425166447405797050643673400606757914870697544233854912785430737637528057250258479033317618426726053058564911280764369170914338854239925085756656764044438266935342480115664037888486439009597944716901599719513143962920419801535827099483836717898390148245304386065104964079479965252104827373304168353050673943823765340369128576789288891838384789978634843439324806016858713757421728659185385915600299110492230536291136448793714158717200547956440709806490076356381603320554876023082370738973965853209295977527492638991327860884463809693107346612163172529320803491251159326222871752927373339927667318913673710798866192324603409656799672341349496702522140075434713975173785907517111308931001847066040333866204065791475250870541919590082746332734348398172801652074913929885883653891901109925915816780963361869238083082296017958351573230329450508502011818096985239930384373445019391854614107815693613263558789129418788023015548221929514931600003821376575029517358453471412948742766361192217964719906891155488397380155272158885377374564913358752699167163022077858192853034364311282849922229508942447249620808775720334580966619231536307061215927442735247901162508376026496519970208627008510530431393409782186618093232965220070085020687574278162797273355601887097819642495525513580335803485983774878935272663553758922381365591340489089359562925756149112855593146557038142583767190222956897816196428244723465766463628810578415072228473023211505306159524980750792067038820917078256602081431735191062346006354155443443821179562764882281995996327693050610505528418377676121240959156807449414646525237687074547665519599109074814034903056271429910861241119610040975295065705795538046469516695115478596309138088288269106288528215384084213864590593113249749111963606718683566618157167767189708841945753082583702829480889111033820266352262333323001231886130419138818124461174609179220721870680128466165073152451929567198261008285812946663180147767297143797742079985335969085315925444407840038982108840473231357834858911629273750675529183287903437361451031766857908985830292582761249148890215985902820130433055202514808310728324848183642856212112097694504856487530177105927934726831004239019808495004802586784564019529970433027010151729855890387558678241664256757002404515645051473364195982981001325925494382639958549421851080793021197781718154040985160986529543705839227493761228683673997196237794027435006173297920525129449167449804042676439227482832355812614333432490892223877778193577449261942644995526365349517085192170122820051111281770407823835367264761607480908634942391628273315027309148222793326879544492215532778723694707648126417833231884119301858562008843408131240890286628484686773170739827649577196207136149759677288238183900206346387639270540927072979096210200431964000628483512824331799061774306088933734302624232894131999584895955547018134427261719582848849777905675399059641237307875911432326760771533968513317958935080954102794634659696209067018315317022363797642367848702284073686751459814554335932509649675823794922320570943608459858749762275336164960229059738498007592692069351647338898105789686364409298837463505223243920260984280925543200858107389615185047729057021176876323791169072755763735758956428557139920321788636806237633276132461306640509932397267865595269178580474722373294540628862991793956445747812736252042014871796452422111865427028220292119092810636903216755661147075609295208311350978930932718833664879766059635799523518500983290130052656180336116802874730424300916603739514830049990563214323505792229497964968203185143689993540071358096216701449728259830861279019139547883599946331153330058844267843465834061343689273496416101845172203354496191054230286866591651215307138408260858982791543802552743409101453622938485064409994314181593857960487209799720436944959465442070535060670692479856194524952226393952864459610918848061347766815187340823588867249429057481462069648583191614775535862224488973911016498981218359979517641064093573965675528969401522197512142471319080248358117745441504545378453481262705823763586488080936914339719991835612815742693547265541500065366696184438930067949779746477562115284090168077986299665520909178852527352226996737007049213320567100432031415988316182899791226495641985816160758370443452479026897058120230123306113361991028411727792308118422041265167613222691286768161580670914540576733756368793642333589241323505037928295455274194353738474477929922082421805321214342251306863916999787348623914554349603605257654849854532484058837638569599949327826538886438636555862190207535722193737841013440827945644575149811754392289113406432623372955686366586756827413468016783300677484048776256919345200571571368381050139112144440734560468260827350615361984863966760108104699382515244372311576141441342159013760459621160445904489674624394186218542292039764320910847847845314290164949799991904463852333965029363895476683820267595606400132879014636096929496396542154816925948568999523014971543641350549408984717491753803284157628787454578777577403510066057266991013470226640698415994323268783702473692426279438510075283636632393291731329547467148320917650738461461667417598142515119183005114545988205522481498515081878017056760926624111136946935018067774773829913201317679279099007960363130964463789537796767585002668449188041862315207637537945404692695883838226727064361419023570788721410243776058141586252333095636468871459130334112202909213837303114550835793298486213075054020691066178899001783256576525829747206605676340681230965367111958484054743857510659653605060815575331309005364957970014541106042534926916010834619378195829199556864750568022105494319984421412371543318065735059630855432286270438948797313800009846863249068177610569006543735093110152079992643861896415431000073702281679433023615943702595999605128968682397063875628513466676568326730594488382888126404055909894734620285256590944703539522240091339004333826403509524415811020793014974816020348495498160652357416991387641745943155044872402249455577837942677695562564346142125714947565422040477911899046021264487006043864134725817854417543216445803558576696579527927132370958584992009749514376586012185446638926467520762444324350462406151182589454533792142438298039328414488308132253547218066292270794192449535709390484018707272678171171487388810035089253233843455732036578225208935575613382548005900538248806302878234853367579774112546761413016342199605322356290147766449324622742380596043891984815636434367368527327765046928411043228192750879696077501080321910077129028647748056874571997753421933383936115440225453892116571710436244240264906699440660289871562799151564944119855662706086637651421635748769187963482975153016221948539328945234566016803717493291802053374049808827845644052607483367082065814562570747323248119259156070276364821021701716459839186510375726460726882541978883794756792507764129106427169614037646792225786275095330344101648649308213316623419572715208914334026275176807323482186336827770960968998422324269057972854280142035443777831219202967407755063126261461450808476335970004818667502396573328437510477805803060326622670058487629221251291445122377611727801147131307255990483671964616151619764562305195303895016430003184725763247394075109241968439841248890978661126256867058620392200253877882186985643240487717194510273103221467119419878631463751434782295161824612219282183290093889670915646619354877270819111976806621801416364801367038746937297092492402445218360437782639403091162839653875676809155210085385433928499960957689168464033206099184813475482267123052777468729705766919480476932664120819086975165747097558659363733079606060083166508990496159100470123922899001801998070610875740301856638772962005885798637335125791023761094292586765148848340937399389911352574039345406031013979940244785438861376750980348240485541977546610897259156886605793306911717400829225269811896226066130334604015555283036510761915227863487637772140932078395175014251786507608919571000610276415777919811528850964671808043995215536748308594203658873990655264494703601281931210461529750266260542657540547682833460886604733639022000670876847023345012355403489494535236370565729691063884847724361272160576474453882227055207759096101332920795759981151694527271559975187240783360831508679618422520624435027042360468820818922981252182503543433107398442040891144705678432958542788267594525650888980441000434765036265622906891822030822630937794760998729203931088249197506380841269227794607690217259214219908271716232642929991425884007556405577111970536729110294326016108854007927306665591686993111556120732230471374781979599902240578686710726847404484845922547735782780711792731229549500869006003746837091601282490922705021859830859273867471314551019207417178089335716058027341150199075096280646314896307376371427448351571578859789892281869857792437776975280986655064665316387863912830051384794518847365218207346793811408747621900514775405493100235052430588138199518813395718103498437569106203662666441698468467642613045708567718957606906543317149812495415517591706462237524786819111536978738023081017786684658758572415905706322657574684088576999458082540000935763595254661491260806011304775627854332184671851710413073557760325007390122390907609058216032887156680346471029538070974360946236839056644609941970100653507034139465432727512310098507734418239436540237123810285607296205701881605118815192351062629613100537723913906944124558694944675821089602318227590854672277152216538696198478411745207970810727279623538130963198358133300736484143563818475984322123773739220774047217189901678849093921345804266112921152264834228979676573650853403049746261342614138760667148561430479965399821544593499949257426524973267026364668996128138023141017098226051240913856859208825032030706360288375816587116723507978188076653454403423701289924125122191749582643154407590170358137934473204551830425110915028112847863663628313540576211739568780401221768201466269606897587612968850806941546273104190123006353904436770877191390031752618583552164958556770265420982375804885390296540136486524791315278889732210131780495327450583471851909268166349982148435770908407528053113636493980696298714772719124916206794498762747966063206294775351688262027889184817866409134876977581929045402565112631343166457353694476163078022707098411129933674033769488959337702875034648415908309398644364735437629365475554402742318081684486023031479346834699912696872352064340746074094959849288877840146071932551653315950831868142747083566297239201859237031228813223044036338590305653245128980415543325642533013523763692887406387282703852339290080899615238317294295474317713061787661849383899548413084964769582177405384460990660168728739039839713097885373435894226398709113025107541226639259036641368831567550155563306156389817370686078339456881208812370915615704346470476499580333829433836318702554821107215107452336447891894921199356660785120323319938316813898370779320065168438489522844400678542829453402112930520820356005582890801115621301441511454968673940279185878085088679882547876865349935339734615174687653106476190417794299106406599970953406620500436223457219969589955015341766889303071106255856934940837810421059516686216255279849742283110240205525112036588464969444108942398636047617019070415763307189543160312958012335242271274621140481184435007164170249825511599952324048505958146809517698010331427176646133776524748475602873355385675392355231252799243815988209713403620938551783610940143120037560348831397122465598401205940588363838127869979946848815567716844502044174968166259952424310651675650352846916202723680643673168859962689099631061236397224851782542080816193935665790854720419081299560610630511189960534308994233098166104437828190022195458332551084775503260808436761399800845109561923994918879225126498147499508818832115034629901713714248438631830903346756254364722341675108359693754665168753455616322529859669683740880983972795091209615626237728263001617500918712142389313552047269987773524113481074226418048119906461366469568605802950550332714424549438945944292026653000317686330203241391126513894703555135843396607222691505774957025351601725559126761143525846232764244639633872739328020648806848415303311805446758928933162325313813048101251255093191983018059965106191214407495880282164526858308606323402606381172809428811817876791122949930841552724101196862490724390838165223480690673452676697763017539491328637775129360308467922210320011232865777416937867028568875498454270159049232902783762797935519293785690985545677599431611194076518425080575273781994954117015123878516385489238082717897496255516707595847153222673949825377206330771634215912913067094479437483139035416477093684638557212670225842743868313769509256755623102762787578195732331397666829430211164499994097512224657836388989332292853035497010247317371529358008154344727399182481813897872342932218066135692630151713383226226112994388950280103104943443164654212591463214569562647060356933554761443017501392373008331658408761201735727201795480886359712122784321855391984614893278380960182728844738166138063756694642315045934869314184536929220177968302796428194202805249659386784913796412645857696121984723553006249654249326347093326451179801737019844150609757758293888290095444284742712610285054173575858297734663289560327116253636732108333749161961061562699845948886515865409316748279317788817857497814533941160172467217071613823870605089565092213834483114429082177336960705337107359418648189348030876989070158452432994216094908592679789551187433112118298893393747619086756331008776291907845104636708630863927946627446731772326205677970962663789888419721647135645311230809867433440772685927463448644370872986382487400469324125717141745292785411268716275081287179819088045926934511576578763260452590521103252125437739808509122810661845166514835816170615762235419431491489689931675070231299445363787074953228493340546987846280069318156568486798506873856564356804770688085244671355480263779137835624152333406415194387972804033896939287244186591738002418175601927739573828545397191310332031405003594493803806672629904753384098655766522649166906187611414775685705492114078238047084108259035639081017836558571439849885136457750679635228209417558003724733655158829269097019340427544434915939351262858748007019882865826247495715070638657977833288839076356371255150963334471720184807334651567912061105669844061344434338311701228804263430747396225877373728747633255909897634882456347378113891241960357894493202511987533502967698504542167684863185515756099468543566126023720392021849819773618282816105748259309157056428305049846455424983946024572083111220500008042898345310558863474218584814970638654451178348400020822914585150938964015440391669050979686134396061135308872250206107383994193115459498916505946055401599969058403044796282594335284460198023401894031401685247745378879830219842642409624483054426560126549328108534702223545313518336094878290867468662989281027710126835498448755536576413247470269605976550694297088738792839091693922018875702844814737517668978112754116353400469789401078299713958128882762272949108788036725817538361966649766836872047320349274701244689532995875337627941324901908668878993562459464137850910605630633529802800824783530197123257455379571916602580752659249279977267293563150175107437428589829635960325471095097798131520458301550807472189507705335225384782083013918591474282748273037692512149991736505377555313933025674270038295748658353054154982136249476666033028165863011496413574201224497451569954699086103955871059087119982127463131127213622575296995542506712654513130814665744362200927923497747654436713469575400278663052054162203144383376739684936683881334687078924268622812764477992053794479455991943700798192651196040870308628066525002452957328692376977578566491424577961590421273079243210129244130540153573575895053334096911609757930328347053997796719454691532451088516848981855863544214900452901162935593717809029350912668198070417240096290502184371504995457464508238847119025750337262304626768497167481965810571523828750516403475942042927607497998403661205957899942934970971529004027397832019736178125418827961811111689459171159124899608545281221702762695596493509663160856267911354440608628780984539519243321015967877568330246926271935326948412282325702198400477659477280475910600776951594059985239387458718461332793508002196026832478365494397257654806676701920946608511702093505790813803749441643823926408430540190965674925178425513486834675681171027575251236669926394332210006063215757924287153174475527255610820428542592647125117649214412480618648323253829761486530548656831752971580836965247461333376548899119967452354725741601602474271248207488924347325971785309605535892810457880341833119938496854298836082420213425678447132557401910417032126162023491641349198124326908413728531900156066946751943318620142071486457524960571912645331070781465177765949558464333811335235251688049776021799398217703121052170808626890460048484852668317371812741269819328323466774416616887615906717022065638314041367500141479074795762392323512438480468937606609769667642484683670565653388344880303004388965476153631096714266648935321419966710986688092407356206243538633145798969985358493738414566274543813956401521894124444503255462438548368176696985396624455052838829347320567430451845879705660653928224484553621058842390035575807252776480218418768134960458568541199999996370863959436906120215185858764006483077443189529193708997007497565443697497218669630352025862340808801500646449763422976284291202999891873609224849322942950513025340271866999924719518142024796739606123048450692606213012547035547746390861162535454470216087073203016113192609407743481944591864036318874470986419471479811801606266135009393331670845650327933108985927222864755861724235891092161258193859261303858677357621619440614371978408164864759670811930074967797690618340140724917940796444439742746581208406133410264267082168941995709245051186159369472289360398906878928341527828307651742027240075112745752890113860627085661609874534420095747760269226355900269073561002654632967529948484035479888146099716360844657082596350805589986282787392032987797861198522243676487254199729299961074864819235753918038356288519053062222444452347105341725030494939777045017319079733975849592714792991725204800519551988937088877239709884133071836066909926176673020463241711233729220655015043545270658733483649569300366459733018137762516837119550767968962667101618253446882870280011124311531264608868454515147455968596738161695236976177744840136684049784297631782610069906647418650423941081667925967840133461927924766119937554957231516899681942092707717325356145996617135986490997901782518295161565740084040059189637336066737332760091422498698214713128194669285555028246630669321473270818540058601656864970526456679117157841251758381053546151725976704079466037634502953926849993264272032584575654544390775951469182426175559373798932892889328983519926969395148348838835387674661288065196354496929951661067792086532532098246659600425295431573509540587975161156585570593265753045254390822084152913207547726293222758789073054150412236748156104182912833889154434516929403512999746231981243397214353610494984965780907943213424647853965308193530415424939866141941577930712739051882978433136484893445222406952816379679168381777271873247995729418370117592005798608709068793246230475937531627003500218604580380507004373323054145612218635458900163887919560415647047345609802977669766649532658738489249258233956569409844657414608739855414341114686144482651909775570123722580987530630887353657188736498288060859598607012375972494234576971485174829025503932488758194014188678604012853873452101452757943709213505806970279449999823070006972204587207625096782188500762699835440830460489676538059169628049629685419343084143477249840409299029003405246844777742336739088523998199299374567055080976573192114826301178048903449606502641873299187244971663181785161029376915154062764643222441890035182124617729125374589729151426901948500586427153819565031366462531240082327581261203958233198267190943859863268208888865533129940739473385443841937052494855778248640972148632134580732141096975552362694030616953358564618156509630045059927915053488915452715651983466336883087110742003967415338374597910929136515319446386703700542759838597830980842895087272295972951796725256397700004733742516928593241246980594169966174540397163416286034755212900994342978391386256438179713424008139358571845168091532521518745062536024559030112302267078571713751013810058102014115013849544346919006035856704712560714925655419213766491669228871924717853352170169984787252571396055350844467210171127922581164107028656954054875348412214027737966174832630388721828980331395412302896110987061820575525701062553484299261586211708564121195767919020384365320415257461811637660119528222703836152103167642594675199778451970170927977381384877221567462892066480270352613206239076695706344742336023228852856499966541373555673991839589649197500047356033091513795885562256434599627387772188159941096842799324342631882220406835363356081159965272766502979963439270690064795251953333225325711021878412167917279610179820712621011026157085724094642701123456924070511255056670891701889452651898210661042743922907050040876631567032052294991901287902394138007188681372102241172416389891951217711386160397405993673335787037714242021483889753335536277885149240423578768689583410995102149059627548212649561132178567157475411067750316787464511604729734188433094704186865088937455479902627559749286480484261708686416523584687304889758351828473892819993091949987680316786906298964446401171166798257783741135785743279213545450194119911520044995863642306852595723760373532851205260876421932547551168550842276189976139056251662074138601642211104408987984206751275350095516772461327151167765205244332419985301872263578927091696124952005154914197277073323191213461898631028657749618662583202308512605338060624637791763698843261612758010511665799367653270033283777628965955787539805830608410435545203360766729237818493268562146246890368601739028356583663887465331651801379428587700107391842438001333243451223724856777884276753580294384130890491646741990540946508154912541693311521654471674844685392025451513002951162534868570953736551517362121170552211701579349973325461098597910325537979202888139764146444374349710853067072910567523525580689857136461941278859762534013824852211242597576049398481570464615712637440019559111220760125166501143658915739917784205323433307266461958272415755120781126265362055024910284596100614322895400450220219953860895399430843028489496597206804410739104398240908745171579614492106042826518121449240565060621718908182641616204817922789419736123100752080913947999763008523573248354536229815631547634323545390998851716701270772110746493813403085364902532592358999826709486989155778961985561945271381345515814712703218792640445987187281502455783405625659640099852003148436530046801152374021771235462876049276307467923385469223629306139454104535648276525958544450388078358701102931601907224709175700052656590745436017455128352540152678504830853545741914892024636645158962682858514840948177518465175819892066166314679622909434531244019171184473099346230553488260221604036756101168637134961275859039415301606520049091626334559096730252019865135663821887435868308352371015114963576829106848221644514480103355742070345992981661751199380127976744396004371446469954876554813053205330102766708478209446383222391884142637812431761437496441304953917027805754287046003984593678129031937608005932196084440704638765623392888845857894271119903977747157210047799127799730453281107149533140153418593645762751201129108115256952318591852996609164987374058616349342589715891038254742579239254935645459667412301919367765871425929985092876673207505738998167001060413396892680844809074808205528244627281160246188895509672876059339000252496593490940485487117608513164961833493809039891717639036437758607150219522359104369881385705890865704106505709793976280689420923142612907998274784518575983492067619353140030525940175461121889642861926587389946904629518653022002843484313744115152177719676702620759395740511722842826238859184417134804943394216817098980690120801596698840255846074874044575334124532047973718172621338577940619750787909641402919716776637312432744829035535030133164491553364084689122122881203203698877370592951770415968634135558971096567524861309707682241745237144659935207095995252323204830938473637075650901368261432609269891931127216078341312287138873038891904584753493125426202145482849163751590897728860993324263661196385993486514749778485965746424865182613216918473321376549380001113631290987334707757208152987992396807554662357138031735034689447173432814294062573811352448258827612028168698943728742716403268837377244659533340146831917555658231440545206299351871007463883757856455269521033099828916970426417146402488784639668899972333521600600381512426648871424843645101817251058292211242256633531309330261730616406286281484265483355147357693291250088571102499377848429306052734645143399632256533974797379341362046782412570092320598569240844162693911386282637128875974343611070869318977303559245018012873412435703043751115489148047863756605632914465120201560542849129028582323854703395956945711269836283324421693462550317739179335243432753148174355232892862680981949655395822091891386353947938484024997639272352992142547135769141284456161000747013201592268294915878907026485175383597216454265312830360274493240743243023408900837748821178578906619778945834747142748759054389574878837700435151766061308135568848879841269548858989813049710102957501240582785217940431133770694158477127212970803047444009490078408747302422503181320911918735982132003468287838324885878558238239856579979192025571976883712346126134562949398952340257992168146791445534086860543667239196241750075075761865391706520293557266016790445962509217105099659162098828428828319546618015650366371507007138229724205253254415260089952869682335340980869590886282424448510486649902552221293500684063755474918157396455270487387813659412252673759877286702265483357810396650700026645712357846945716202328794959568026319440257383904401682043036188166456092970629685782159798577034556485920710100066461993706694288554881012844991448100678455355608884027942814009488233643629213375108093157456119899384547481832591793369078577646924415388717916089860514544017761264007793151880143278378395279612375802546443302645146219812821095271340093085793779773518133721628589573722629840622053332070925968088477788787423823424291382627247348053008751657475750920876464100787081615697181103805140766641934321022882520134912119276133154082255218713319143300048872085083344848575672211505645618857396927146673898431473913591071024509657469048871868499927504535666801262180393857854175334919449882775181612791353204762990040500688302439305099468248519507152266336383311102600257067824947307100826149138930684481909527227227675047335841137178811284118434987409550543407653240303594867722682887944111973676702102314893090584676260576533660544720770350492748509919239674591694805744446627864576122976161362303524981064244378595282336057546217401244208086597424599456481083024099342056812909831376808549903888865791306009679896641799264834121960817422583218902905713794044427170361590427597341556085175368956343343800352952792444231346631302154824590325888997803383291277021451695694875558232304925160972402398735944226304798086300200516589271292030950517762039417418184067699775577473769189637210945057565544771116718829709195267165863078870726662687073140001814742124232297627501220549926650233354712635898101877890698898426232754732442341226571237536032416179467758407291693034147078091600442522009742142873094470366868880784486021768494181071577039611019927236346303609477934612337142498271915847515223020000743535251353103351697329519946671985153742966824703813233305706567090371851895197691934205081749011406154467083583998846469112401228664543311356268550278298695735483358507891073113337842467841022636607334414431017308595893653285431869970581994007552450528730823216679741740076923000582424424095812330850364565358173337904487485318919112276821327442678427379657573070444274436861821899991475215552482761926393544226808135015019815424198735767415938490435659230766509152749966083610784449222641286690610281439910220809354008545258729907961858064467169690181535751962410446533671258059721073748022146146318035383302040819479809924850909330205730116918701909182080783382482892630843946134785004724293953423777615384667077002084986983012533951002361706155406195760214644527090991165278840392956482026961702267187432995386146216077969339056714810234295307068476851265457830816563581591080318672455347076656161217187875116975580753348312639952610169830056698465808491753033845950538641837978014679991453600231067370762051651563284566190985400103841168933516402142435162066281001969106190743456896842863579956747952278509728562382952322505859489078742124808116525247776840021674527220339992980875870539767624289003373500740691277501918671895932389175647416103108280365964017035948290272658063115510796167045319692970044465041224120260949995770513425762528991058148902992523836371915011328398864369311554223176935164283871122846874536707881668124066874100334714190875174068168481724634221775187923761989735349285790188598598271833558741964349865377764970402250826023437923475690775336297688380582317884308355798564810075850753874039492437717622613447803378695970942901715016556580445450453525348440141538496198598411492940884060904114366777583845559672626955346262273999497368756603229686029918789490527130867761862642958570727327763234381505683447344963274239111799839490437296444507091435195146061739147862015455616762394827912677834538136353134133962822110472994332847909860389611532538433194496554364680915220621875849020107033859813084239408073348657350806994508358964926342498086411106530051373688907037482364153696656622933213399404123054922157599603082305755727646048413449018139007122079525496021737173701818303035457211426112196394049254958597108002904142019168428625606536276771857323173622516700163678084887832715662546250325543715560541502018890796583708526484769468327316333960873592421160044999570081173588578257889917878715973757009179580701177607979798238396808423427524129001772630451712441220447936739904467992335551604817313437415363060353388943360920789008011134487187064249677466041996353886456127029983964392388025352737536984194889560389491813100612988906139701715932436479825140000762373029131375826067041415966908816981000270477422988916373108473447699133525633473766697065451600586008349397424540654163921224209284456878270621884198005140200485977002436264088509682156165364329273027726032643759104867265773313452105973137504873661924983404781598818710396135833762160822576894282277326939808587934872255428087879563427511426601054815604666749078617183672229096737329856409596890791273233617461352366847357634106075772268876071957271616007266295258587078745033194779666780278627783357748680397258275369028246552754523647162898121930652478023950188397611795135701971576642975197589249569288573660292218273623898504397562408755731735363594730872453962745302632169540967641348611383878323785723571858589473269429246413599849612087979064520916713120170525975082062520837834349137750361600345754334484468435386926769446453189818199872400492678981234575402905396208519647429609932765932467448422229332528110053036450712547948396458219298128778532834431600929682436983927474322204817528580572086965733934931914699896983891480783391839833043591357234958686892903743378619662261844684949388449629779678180252845296404909430079977342880851335960045046684275436959196282187024891017722999619574404590206239889674212962503731296934452288115690444994662262312880593849517452799284820726510322810651597406398244473894197862735799334910742271159025541849785634767935301679454234430681307348537929772454815194104765860972059704605275334372938449831488622444969073545192839223699407554304201740366518521254657619341023554196612247215508554091645618138492856679714504001612648124368699353296298385895004859334918610482130468410079037843480614248662212978056383374623285316181749074621962773523372793527007979476490516935443703517648681424655622890066002405801026242660432403212954176226528086765344547012480168527833959546099459308098831238660357314992476983381930529066483021630514985427686299415692912058143841362630952646516896244184148920052758975696703182460163297538517483816741028790208735418057389235173625728931564763229191264554285485119088615322075323565620365960877810365524829826485626809252915911415678666374410101192413036656585389209338469348316078569487955968109957498879303583638735537740325824892610725757076609587270481546263219550432085979389577917521333412778601961878818994655772198607952763878538958508663115590429451909069218907898560654665423949290631646044008248636162524943133890491649579673519553893457222988608505195614674894385983541165119604651817353763612195658279849987359390637181441306166971611635632553631546484168571922114149766955938543366935857186899236934754287389544649479781809609484821870290324708086168402854910976309108881227405156011856827919434869331495332514809276847544306358573178467109260616639890227428692826088394056784614653344582378605735687810992941555255281330476325084151558659292320230977297461970381984714707560709937299512574441139038036262259714261080646845395376848162789507293572588762555831598907688138776506336109701984978559548767108662524456049846771307195718413170601201826836193087896526467620336287814982793238883883551464543063012944661317276414885606013745797288993473801054775530606589583391029128064312270641537973863863382042261244779464934090958686060718696901361666963856233936925063279271128245389698248630741804476977311320015028565057161974532585942419103370405279476805650811257483588879958328069957749314159163297836720622035696469440165184475976551943462619387109938060439461907851761134061306005747555666546451769533452807344302792140796465769747553073666138438046059512303803264357843625005459263938991448834770217220957955914503993778146984302637967493300430090488839853027204624857044650175136418301177849114538794979242648058116008933765419393146121956694596336931315453727366118414330481957185240652235526507441007936067741503999976269136992060168156439110342542757631915909015094285645890661133093958599808595103654806089054470999251046072434737186771378808332170233011746706665910289139009505208458827127442483714029352845189860060251988381988962238753806611221511585776763042326972881285562672738453381324935716920367011807001329468612047300930564039467057239711705086684498519572939739755522196255800182449451835342469888254799994648170261694783499188830334322004150248467822303082099783422673927225933432163189396254402109017445083412391053815712527398991021206590664638723749918347160326221616024191138175576199748725439988167342233349545548064506165676861690794074133474013912820775654931219650819455048247892462693202402341731261086231814706720344364012936477181296099335769227244182775608614661717399767049401082999480616153314705526475170919720693805894179600727437231702802674310168802463813525387539493651224958903077594122487693605990747803069754301127067371202335308558225500820613347291117901166277063239933523684801241945243942256477557617851101083899859594684441268728676282642788470480662380366894752383891890640464473413570156610479470937636218133512953688917264782185068785910938452529517331513309530700733978971888761577266057853992117818106515019073456296162256091282712172726348254670201300557260803693452541017256356759099583655580105475091492159779345669395121573671948263043167838861180995090886213522066985207144968531173713895357483587165840609492936917687166143167224755478807854634815576716255265840823972745443261385712894840590306227130837616668752481336238504190631988450005959444363689404242249315382438566307259875144246521457686807745031080859724259152783784931332299837752319171360059434875074123393782563477427954181319387123302489490800049259002103360395123784909818848157768469923480436490431873256941620146238730037983733594345348862408935760385304411904583490837900096307255991647597306628310008512573680576946482024166256834407156374611514546687380883158894435784894239537043740269129347271934463045699073190422445319709253533319026395379507300949031498758201661917069308325837229255541079946544604335872273565832393787634406395614975353038803380772380832497121877478603219482757264339302307847074732202881249062187446198893234145164502100684646088883974803982137941235930488421985873050614743766621872568620535853672246771505265798716538955644019245869199883387621763072666377614577499875238892675500841968206478521847471866529472900511600171757796213067562564765629286496815714317847060081951874963865968248096339220381090765079349507119735595374761882145707000382373086964470889989812562254932111863614369810684551863080506158231602632949967568974376415807565762263945100543409012323522851056539080770680885317026151677410790333844017530317545159731528088533086475264024514895073789160362816745828307101577510501527168330478880508857237068121910794885840086006859235896646608591977229390199540168746832418980938781092491941647927357499525480724824865504261365118166720777189354213882059227239005483504288684178165412051779972220830469493752771878012382177811393444418414745074344801201131150730712831024555722736256594562242649800926093699172667512711660003735686211880158930930049209632175865425249000602171961439105119655007218018114878357729597027208119223038431581596546881836616017060588821977303649375263341776999544019470505196661618866418546943959836219415152068762146887607492854966857561067657250716091499716274390339752451822246790064416951189868309570125338001171336610885640359911158402259987446627987360144644645175626848010397655660821828173723405701742937017142140035938384163283518043655202779487089509508613236908783127393874952590493349431066599837390540003961631336712880922656501104300634775291835173702869123065840831091109970713630708998015660618943536942655623062546633929196590555132082114171240515020170441284046520075987655533673187709794978307542076570440134852553555195462182310797430800224304006349890604173694800233998226678094132045359565484509046189772082947192639895052034934739204344284527905914198863743229199034770236034745522657619670486738840435158327838228071741770742738591609400132050297421652458132797989640640121059333245294920788911326274335252891269510846740079839386107043120942755262626603046087845603829833345346192920925541426202320790423310484129787660837396695486503588905706760540078136957412520538002172965606181026636167330503719941420988297966698441493644811402455144890296217167513345119976149558992072841343926524295220778938019785646839860906249971649027238670072156866673343697164718358762081674092325026167406085039066758714390982613685537223496537721986936568953497473084800288451688045302217975762565709696334734422280186791704920103834543852471220970981170435615786798639837352452421168432803461938065681062208833207177170576675461097340902604508346131722927787338864823358610453353258928276343808632602116643555700725981904568397330559169081724981971398692318011340895956392281531586384285257625888085022783778885115081476767008831132993317181074772641450300263179047142013235951258800991211706405855290014335133617551938561932645224987021827763205764863030048843926819917761015723746247063421063873006908016906482286975903126929330139797233715907499449073034603810697772461708158965426930828268303811333718189830240402099752739469980792922938971686430364980936164232477655470991070893162603065613624350505388507907615364312360284596340869846574364918307150576448023219592065187357104329484063851103634137502535409459864630020079243664347095741253743926015921269292715490171960209029612485001464653315582958604482102972433303956189230210225886841068846365241766125874594434933516042261710804943207130783207847165022020305821717635791203360730052104320463629757174066356807134535846711336205052413155342397533154528993351819654801690473034246439318662789896977165797148052783603579528316542443019725057448896066515637195108460095149101569809107785771129150299534923065373944931189405867924781329945259566277013003438242741586135884352718964702357131422804111431607734918551246592480331502821140200983573751496934545981950870244017981075210632466871167682214810945744542653412853614046224494849448157991657298192221171700917056508753594510040831710964635810947571684583570110252774293087664862537061731276135203323182749405039922955775726299961750356318138390890284204685097474840629908921067228264444029592895807662632301495873307645038164896677814230752264947055940404691936703759546518790275560899972531877116513854540312817439710695256175027888437257656528580091280732159250917248288137214288259176797828149609947302691329707945534727498576775231999214830746028792584210755313706711030581927601443241280848482682952003338246981042938452894029847352515497532088708014795183722357828865898137522413045273525655161016926899906756948790600648466362513951930755522447181986203948116030759708327292153429699952050106787855356015794067317961138626943984250116117131323165459811792165254460382358435217957421974248024562008608319861671191531140680354971438909737000287552086167351712830806756589961715656663075130364067258334794983990905917297684501707225412561961075918162734613305931228460828099342400185842644150881505725064606957445428785997107185528981708562810429981886979466117977379419287522935735991799953049590380978577380134295846520645786412498876782825810565162905607203585347793819021572032784463976356923592405175821653443044201491330703759973283730019804124183055854370170793887306110105432696773827372161419584789786274914630840016000189112087514652323883977672542670899809596785409383390619983110055280016931416717903353977142489496287972206984509537539363422408339065220306432190272186121079433395015899050277963977679027459898879239010721935959865873809556230613877839030135173305203463848651916641865035300664886499109749268641453541070121280208834935082328826397691095494218537420936500957763840684372058746912781754915466410323838893510114337292545134146448439703859694590805945949158537584390185953133078371436235451632883258575186085282856442253402396949623646649536308292946166300590142128281601065702290482785515337802675794447711444373613961642559823819531208903010472814132694108094938153237788294481578245840038950465560423323471944696535070927570470972993002281142262696812290445450140255489284722957072272445043984376912853615336460984921827074608105185642086172221850641100327763833007283377133363503543612717973613223383773064576817345912230497682374166363798023486443130510463172442025286510731784927634974810526693131689291785228168421760928406466331580841085592736680779323378349864072693710746604809905022340909059200015951994447890442171109508500890345724321861903433612289471322978837041410222876846685827261418422881981200139461397544804428819021673536877167173119993552119631412079373490918122509256366682962317442741719312522027168996899268727349261909971844120131320058004465049945550093696975813038123871127447311133970278435198319869746996669872251910593459969846185383159419558990925507007311550506842457369637109703735137199743729657794569298779510204964808360229008817543621816986126481706086092274586524633517098866117067927206486044516897550421848459591989160938797887753228230587049229153749086117228459832085720176564182134058864999814379562481560055889247070700742260841906272445579960942923411006563811792362148217118095325873186860807386791747446929248277742036261409306884826988963513722082084024213729687348328752662018841284859993435676603642115251350113876598946270990407688084784533936913718778087531782111221168948779749032532676496996106239160035528033703761235762878764208781442557306306908324200276990989102995020807304306850382118767283205139725387427629762547366477450136723318581237213347965897829334009095940240954156753428471668841292103755177576761020075575682987846523355098399015613458441145671303416327895779425273219164077827899222129830527797187344779980059427760934384765956972603373027149178488541265888954147666439037837560111131906225306214309260056288092330629984785002458879295521344195644095859544759527753754939037018169116439804862944459274521895319111971336057149666866071511254271922127941283893473829653691301535704716299445180420614181844249795441846475516592185243894037832937558564957712417272691649367459495400370310481309691621257686262368349966486780118515002915549822834469418912880595867382640655690896618425836039429417203030835667691233728146595133806003095675467985315796481918939317726770826836841270133784977777813796010484931814268506330418307369998995648926782799007919056535000269119267636536710935623189871629206383456116474661294642293659012295609776526481924982471705942620695716840984931725840390630428774243878432748218053053780669339298451851367727576549890691948025442450766454788904804231922996615434743076561660678364241690589398368972885865338668552725470818826460745170203348800177105207038760618407270193987971479368409954201541956883590434548229756103483694716573095997924875855943864671837388063252586575430611599193541329693089529489438766622364330635754711087500726870229038021584937511681294641740481900062568234297143455299549078945770750827861700566141388523527036589318884030436812846216799457294412778470858151743902591575549435139104968801278158153305135585299475028180765173684489915742491281870849842466399097760014583952595892032508469358710437036077868843914555053605383328479987781461378494534686243065009075374002510788347149256172922016155855540402786652375259427725808930384585968097476997134280525859962922064636420510886482514302650690361962306649390131384884677313473403962487864741673172922351661151048454527764373421728963578353504102917377874087094519369556868920117125107797277554500056452251908511099888315803721759699408302895190222505842723828986754946363120768065293947785370097419225118179905436957583849697373227154209768777448624129722421343945736976987999179282424238832596350144501850114442556655315713978408514805409114800058921365581963877165056335771807884698397944894593598679848648418063679922031409803220201802526326753858914618925909218383471306112273008968491617583665911931342338294060439137707513719195701623651411303466748258609220089825016079140165506336627550240002523853316592016265409420757721316297248300860379828202374357041991029271231512674164219059639706248726752642376500131073402360355691830534570201631877870933053777812384189525084455863013137291463021087731193304251638079893640014033640139119520218732419544532631922795784140631138043129127474239776899702696859301367143366161712790647093909004397980001521711943396438259704466899078662599623908538564301463868907427539372323486826644925753894387023839846354073611051596838972692151060268093232894849377259852635794761932258875064604314872522170533774017804062573224261084362020598729190946890683288584281898060224627896337535288093562031406767541431534570195822810471648889284827392564055475844297595303712198119848008797081429563846362655264417664443066594684874633426921987503359810880984140661355700873109429007280762902426538914777829501453547552686340555845081872770884685953040099856308735191087712924597347297730128091618615949528460806305157393806000951735607010322070033773961624696503970767948113532710301465717271887869517181431327686659890254900314226800093803808613978954078006890373850985512296679755434681033803731698767489464213025092663517342245396841141584045932626314997797100890288463655545936158252749226833190697553726558795649698413171420151199720218786385676678328177740777546630189548319792127421256697470568767154140305625545006150313039894322764987280859653037938310471316993230467586515373052603654276792338907786385362089581093492468403585452903585905149025537041652313771069744601586204530614584024137340947936823416104116819622629319058207263077081756873966163955093132708085579080434442379137970862127189711763215296230548912587156475135238209475530139655447799425913532267376212910931751607827251673137088098141006113226935493517176422242327026560118209032382813862933545074472540971257038108976427681409175972333812067933039596790013611323525611333566178634749277029497576348014790805742360946785829538541385701441314244719468495388494192266817765380058999077353117377651847837144438259040281273237222840489169177392692914071652513292992033493243092165805102865493303552705490922129904012532215046437349151306283546628242155758142167190434777001253662924093506900301228695241929883784728548615620628194805913034426169436724064685006133689306149683528442173269079951119283931128468263858656570107743861004166732418445404575265233261884167400290165596315935142037789956934933971871446184153481673016186266099934081292630096123672291786425064623984420720285604585443577843055205237964350949483373307092833746709314218563517471522137728516541361972922384021604070633979990412977450618588313667155876308937884851910335749047871781924491788096040492859290798167433564120840514693592068607867765262356176090545827935373154256081716590729228031166083369578534468633890856425392389647751848692205292949430303422118151695033906988808414023251625417977098493471000152188554818035954854108277782279892967123265421379245551126057658393263461827503567653283731370931983128274932403178360802498523581319460412829478513870649634044708182338826917647181500665584327091746955680101385535351987579462448361175995695042493539934480758543115681665922757400320175572997474384662966105437906391014966544235923835294510083144867851536281127034331402660096544473237005265774952278299380277335843702503400013225549357898017701064048671535464003199456955027161092835410253221334830468804659805443321725234039434242806098563351628824928605007734023859288203113855846540863918977909789280269661216405410625599031913774301271322330102803292523590370445679780356223431170041827352139506248005147553275279382794759979666769897471143841338961915677046890511010883902776165987966361854297658939202170129111897033160974563413142291779267746263636401545993899242107401639518533921824785736001062908915548721974730818509664624295548683340439749440114359187897196226059670719533018503484874377444416525820270078427153542267642852614240348504783389371238215826790259295154671711410005045020810959545180170005615120787627671556083202542036808244774237901644387575726372728316123319812129152277292574540141774362279058212697109591283305547195619837368739607535511375429104166939513094522045396812695949141932218727278209792235616299900655404204195276411585483481128071815333576405202150669688226562613240101818793538047347180960520585720525627310760577525434520935944438368778344497165389438649380557890309288603076787159818979597784258139459410574682368811444344340602535815560992399036290962924377228310710223701569353264037482363709674426157881024439818985514013458548632332805519498607635951966233944823672286097320783004757650118422699869767254045271953154757705983977579697382343944139899723993321361146218740531074051504163696051362465456079038068122520683124379249832636396762619041257898108585893109238200409180196357460330764407788654159005207934654800355547536304097001210195239663322002421106317024371862143116072393638435871710128344584791286326663800566945915100266861267573249894064891545239515841496765537284385024936293989225697991591661844443797200424158002503689767317941490422022667877806294004085882578034623497583256498592702284188050836618594272046111244305102700993903612618051333364691937899734968226514382512757545732594944133464485978547583946304352588079906870837323488883904987535090581372389417686254254248477284515795696665785865337067255534522610891903237595170250664554025313448193708137145044843301962612119506450691791677238254461412496923346932846242878906501496424219924689391960664972246888062667671304503905946391450512971930362306538745335194956798113543442900178574619062942403413252861271925503256031234641560001562236109744430988241551038021253796139321977864173465227139511246471996434592399029098401911932103922056476438348352111190900893360463151424500180794817718389542991274245219509389554638586597014598190816959036943888574515680743442500371950022510854218721098846875478723236792491625090312852525585949695713639048685023378524615915297378258941371229733259761039849364788029121149608073056799305300012504604150743386377945671041962813701650859211464434558010556133156695333346101172687275513935922172589585137950582109074494375539282354925096950547080716654768977163013571736952127715539410848621511528235290354061786067863225845087753955317572055940824913156576520953270670535939933415222440167366401423791504688167180557635173972429836658821561006525430080775797385045771117162313139012485732509900069110438934343257043402613659143598435398919316584542735811668314770738779573909855503384628887272215712359979659707818626520294847395767243496192716508666819737429956308881367718800758045057029782943628825220084103073605586312734301874119796739062924697751480594073261144513715104755987570575276230894100928422272288430610494718689361813656407886176861375534425625868489968588395210636891836126538364001718992053749461986648753020045869617578680279117982126887328316334125762024342043372991228238926732144040492849869140402704994356187152723503240690735591611295244322661618338472752175074142858199091729953807278446673162441862491956492934713060341662915619320601914705482950088258941688582858179777492820968247296408397726258585605707966410011470744155805749041972534776829467622666783576659969496815874719283651467720844028456504984972730815803313726067892489042900319408036715047466916700837614813279292981043357811135547338206353401760704615443338565500860500565445429642581009158096021443763273894845385428166815945895609708358331159343120040614710254720870037880196526579019603419515424178473329009800564536456201812415496044417430764464499750361371567026419670227209207755345920733557743157140981011948007883682200297199260352132195818124421519743835469665736629656896534395019450178527695318489566173052509224555908612565418067260019761220328157245727455605811008111101502168303280648144284246924503316130590278949114460663457475916082957088470546328583216773111022279743820705694985298867918598936327497558420992509121540198668628223260848012484737854677586310143475519522027397430706681997202537134648245209068323877437096625518496123299205660169972636114548678190410039695782723225788632366701487740918663593006383421501252284709335128636755085448429196068962576672493527291974551531075286584412528100888126287707486495873561085615806650011105089985451613600827793298941112052424466624464903135737349073185413284525949335949455055227151747113655443821137146170050996901992767776262181738580935159133104974538180228981217244461638060255267129573249682987951565520123213952914237230949873121749800589108534770119158584395221709763637039869208655912118228387761231741625765306564808825023747185649102003129149948518297198442133041344627470652374694306076029995748674789430491879035534999872355496075976321603087046947338631375578981064510166887827680294357016241375785991582274423211311517269024199931890357197979435145210555874870719880019818316978918293920391439694576167922927686915202056440784984984008578700506248461665915377259163248984740442603826955596523116424932852397748679323216250417032623446959783364601371317712917166314178471816863107848690472211890666938842512056101280338673657359327647422093540721218581171757587991310210388318054262469757885543293332129176540827856646205342916281341203474721534967833032137442392025588636007062847975834622390402444560863602743005872446064193252835302347486345633738858509601792803139671458727409204538585023290092006897296389634015388134723314080946382950154905215065574527598657314991731130001457119880927738820707364189806706175490214922282115243043062793709386184667554647386271181488781103774790747626400314792785298794677984187008553776826884788005718284769041187303787102282590922545642558883151488694708499922394826933307293075246264730174531330073658164601194104113711855883995757306410428842342897374457202767883911606112133230892364763444547726998956409403914975135999381913894683405768411901822816330636427235013972698638131017022206469518116208246108562787665825328454172805691806519178172507728420381364891507395801237040781645160956352057966630020828383137577736525856023467474093350912692567239480284302283443341093344537124701312565178687189889026064398596101744116429183264418648000460385677899632753354745542939038924373133811166449568135637868777420244407550141202784989314880170276806191957014401214079777553176764886931347625689232480969789225880725304509296380997792664185608708410720173462557849745521572876313581744575066796566331199154659625721542695932903074257264589250922355296081912544190350192149037773650458305598776164274946130849352746957966533521718849914775085905739037611539864664929904346908532506767134087778595589780795445463639745560018175755442218296716669473971019013539821616667128586521164773136845014349204281576421576737727794202754434034852215733454024542226852812529160398616979678696088226892442400350610989760718477998946924606062755042335746301571144095843252280630639923358290354721882996498062999170735336296427077627357766699638864584044889570598483119169219951106483335919927212738101774025575486557563743984009554332746129533072327581305158328076517072421924008996909077701976518407794225648774338331944215332161334021888614848898957362477227699456445013426356570099741030425617031745492111759440250320588629270111496531295821923546508475490430743542448372201210600575206029679800009412163668156442559687301118619058295668056096414329145947689757246145575502034328792281118055638133108396659360161831522101974673224197606333437689140259023532816996949243064638853287668746735057898846142164077408764136092718358354142100160188579009952983054465631501666660039873414428013351942174148776201068263593805070881928975369171412653875424550064552332492668365249147660510714491148331260308328331945424309092348546099984073794481836560349475057211153011638827467257279583675121150785505276386182190218005392029453878549566948609847484983363724966489879761003338769401946634505547465939530968760856081436173462091626342322348925600323562665464245397059279099469103767878628648255634287551036637937188868377859746885939881627136963743441993841075696566258372072718011582387731868124404043693912088385622302827118180411093647531370385873401537921946565531857290697925898829506698626970115004714287245466710856684519879601085056063877988350582212756505273371773390731553917836304760366494758554143917215244132429897036857626066610874026020789633277253515976742468744749729043700744453313863645801127756594482634366203396359803051863836748563719481307602735656015460627460850910742357873132806617357969184476694031733761898547611446565400370538430021300392102984856469055855703508750778743833423128783442182771239022219486988009436453093828704900895547761811466047514951416867464574831297604554355751430307551718365877248257749110069484113228448808514530157246812499826124211439294535348733113851016040273681394233761608037773410503556876832473293732026042364010172691606230887412301882801144523855086795122231371414689038804651729510392733485329001412265195284249769240135193844374630221856228527315353875589939145138516205057475172010841866613824753799870486289554076355607681510844614201823088544087068105866408458217630519730014368167422262454225768731959692331771769092628165204693806119692155222383111671665472086278090120862911841913481081321367164724538984982154628016136591617481870437837540110120289102418559570855744230965937799855262089412189277264645173637730055764670608625181271446339568731807737926574654615614658958008338015746424904243856810740324001285323536616115642689569017335697391196920188783505541874839158696154395546224848311659367367891645725807343906266234155782971734820031243738206968288758192478234761559263544048906037470976748100021510935761410152028287633480422411239936968507584991112808087828837463172121812546740261842461950332337245517783061105917752823778674675231094043326365020702771253076213765624914170735622915817864436601056404603473730986829741639846378868499850179348104211448711666049984284545832732163918040474283244496164192764635792317434301246586345761706224080637017825444978506386111153302598745823700626936911228255845775933695864222336895864796948808507315679592171016383537747788715122910518575415923686201951668939190051275378635285178369470963035478561558755447148455563593624873180773947679341880692372970032490374226431090950502607435511676547149774559315398531254771525367184057155035952126916431960380331159763017003532326795026335716419009753428353718170965321432046706854860511741651924157457699012360681635545936272683951551260440570366937830162152022542657691713926846501649682804948229059529130924664945631760398842213154208514673680635414482159150065072846427236217193125951030930438801129570531246397731859390223381165781960985120079736425606709508624810017658802584628230430323566146690415543746710119958382127925570264835871128852002445949501888467400434412456429007565766336896994176110435749248980821566274775200334250577194861900977638909944132605630015783767584156652723768324312163747915900681707358924161347672957888187902726072136575448592717559236071474965672308430132921735676610233184004700033730697644891273095633017582464917870298046223442318736463352240560636844265261527357863666150764504788998966640172255953174410334194121002649424462316684640283436991228430792396333149659901149400753700601952462023636176291182779079365141702000379114512973541628205808923759780714549759827596247078308006289474071322312360642027407656267681595831156598760999943403978938606030174874838027675888438265759060664328005283578931094320693781562178301464643954814181712901162632439411914173990753510210154081956241683821067267869773477839511568078583691359939657144093268000467917668960920564341371344353241040356294446094873966957638999309589209938309819052630947265799908440261945533068659506679916535456963461036384400196567275069815780234788522912731768583161004602453075241021469941779102873654963773408233495242672259042666719947989125877725300211278076934490306814598912361935227697809919558535466232252548246847351507486321698451371255795799613152621658848915531666932571149337109905028798621038190272987196761263792935669949743507840154300227411732549819342329231943619076516430454318113142970892268934054773027670932261045314778455440257340433371942084903964621235342984845947292005976924007593552596562712878953070259619990961512934726122726599231560258257426063753868905359400522106976196082848366220088124111554743932435950636076543456508982089359649307424137986935313186832721774989124517124070859037137979651013460342023609046453095190348315218863024966580222971626928779902770877617887063448786453769299325070807462017288170301349034431996446216733621641608858714446438691199171926480069002482354902224660030894399654296560164510751529883933312396832942476825921373453464174822348067327087987321036867094456202829669086216672990080182381855353188777879175209154436942417914341061828418902417957938584500713419183871544303074877835385362083372419378395540683734975610369655781048230620216378974631331753983442094018469657088391921710743742492279903020619256608782887881850385139168168631175502661889272540525458852116758430095093244286236367134005950229254271634741338213832777373641796528152518640707866295105002558571599978428713456998285417149710557209846406257282473173861095352475487046597934630057769667100859070600580759399284373730006665492973316796965141103159141580379943510556717518284201695319234740043481313390487447090475154983618987268960386831129976658870380073292601333673476732118173646257438140346964343424343341978639009168700972611838674341075455139599199879182414030993553567208297588490621057083382021497643630677878864652744787955922190191243192441195003389439806069980420546375912054552889032097600234002684860754305654171376675380339769144070817788154485449687184847220977341385736143088477794171106775229802670430204143379304575667741271525006865879585806052774853664194400870826020253596189693168602446346640276649860528589328216791865793119849145578195526626737409554486305069307244668827910994163406883574546929656145204709175318212530422588269388567930677455175622626537674079670649628855997027517494935733556381947308876936921960963912006037697149925202405636855735592921549506703018130546728206268005946897732596960309589840942439795423013282846728659335467678062452675986774839680735412794473012532765818391869318720054708997896481874575249374089581569338909098668437172531329773074375850759520695180825462304020135976237083268257600206979223784103749625972834211379409673242207157305811669229697474340685154561370208855026508128140226959628311976199028931434787325132386419951616933292329745818344746082649248069601163189348790432526614203676467523824971682171625988464679693636442190287878726698006179605674669905785117128766428692991367248813216076274890546766432681939819796497366910459392711835695179968100023323482800963520530930115386928477089222660475630372520850237324040402981431797641708281018604451285087709770090698869052645583663689112552196382378128774264364838452606231712217308937925987522203314944196262384817843271079843781563579287560192299282855817466245079468059907334278845438918087697200217053140249288269011848143366329361116712988789417799891342646179266095209565436820080267017559458561048588708373739354618362949901122215438658362020100945308938845279984946224416920024391823337045627726282021121748012196868238274778129677473171709587999675020278831323708644915287057393422822669724890943714602777482364701342004504674405598846395455157441530799528782626555064131606512133288360148205014320163193192464661917276971570471537363920556165739900370525430212465958219051464881991732480920336076969381444248794536273431528773548606879537765541634835445950176658945586356472421532344584271447256043948240516088014016571558773511540365307146691845304760654474163693159641606841986186987226142603442488993007710805608744875132705817991470063372293870912840601127667076401769447934902944451291625216270805448621845771936234504532086890420092142999454863964751093982252851588995083962679864646736499425634531749607580680782166192831550523334413889777570580864060919859949215432084908689864943481942164187166331290352555974583562530050316721314931091325640434894571611451647845601288901192076842722041022688521081941838884471011104788302049529143555370374334580885076282416223367783240221936024661429123928135842573119159946844994128247377646620586033663651570030670739663641659845341537005409741079128963379926701294620657493440126520808776902596929893703620086943634169955746844175886110704975938389734883587948258623420738521806909316341930473091611223055415280090005291397107074747108143902469671712795093674336768354409037120727742720627060511717031414342004875866337271453489100595634709275581063655697154574490193021039315758898687965932614650504492071727023022734665597219489965039092776525187266377252280985561582166807767063889233039294004938058238547102813855463959364702624282247684744789780755712395539105861944731130343155559080904878099774162845517592307969414788671613992382321361740219145755697467430328522332400755585791359478008706824503637997745830281725203157681390732615290044336470682040518554714485372209638348204424439674964652700087643298812725722921471953361687930866864878114577021958836136103793192446029070252577635192198330850923554950401094714178204582653498005184060511140051977836275728471753203238014043488042891858102044001019505154656548893671076987966946768891685856864582008304145030105300241220563021768602176607143103446835850130061077086510318807035482574680343150078308922144478666635668138744820592268828148794926318613672976719180806934902070010924429938755458964935438081492518986392241574627010604945789226971063588172478137064221280666579688382600746038622238964179228634122564018108900762436666704918263149487589829917297007910312067239852489009739947658334201841231179965481434245951196250319612756746731305494329308271146388194743676950809749398397518551719463075041635094990930107272630911841573485507629208155235139002936536228529454895823291721635930109812983996793266666503799944182751678029561353601195130606131777027952061541637071413002763998222881151370951325501633648254100681957305867545176514367115592173332666487501907039685119755286674742345586149644922533906432989624608748655787435281546815778967697661592832489496962935313471580532650954247069838600680836305515403554154780157384861170736898658445977625457942594193281313536685902772756094664413399910523165948373062851269468931435772749660520575096812323959331169866254111365285894658030001634127582967203255556566437215735100998331848093359115936166522661673966053807550809049503113346174261072846609365479747152731809236694513951020598628777225814379847643987151015170291067468262685937989107239769069398125167570360690121134844903721476353160878950710018689777493892604106789406234188576651442537167207318323979233525804195305839978488762578220514360702815034505602992140467958084927424882133237310099880274452165680689154374583442824351164085777748571101965089441498859413111214175301583131538916176326594094122854572395725692142464319445117442884201125801393001062875806574520270301242420435602246849464632383185422084431271802964430641659506408988951423055429539285540874238982248196664485576641803114527994026508848286692792665025832114523451596935464741142592533041412530747619191348566409257495435077242324026244121274066385427766319597748962893786769566508866997975897046984278391064045215219516394452629114860603653729252639948518299030394262227317504499758418564660614742978615853211212540355351629415523163428149602887716297762255917121908306836209332181898283407426147718916103688364814447954750620740264435781980433980506653161826845988963206480536661640202533750178951760925572831888582486116255628895325386688011961790551629661357965682778680899689588732155198849166136859137365519356501719589379321025555110109949793721920384054772491853421231170011250578202818088552500367537242387176459001172647174262327211014468702630455184498933281577734256079617753696416247020020180533335748910725891297239976764002231767686157264600071326552437226830059410020811816793677577033341086199536341339827747288280690679883606403447473959370995249793994812839346180901799009836603512789843162216407551706127327129791472444199403865805797375149337447787967942323641996467204931864587905255969107997424200079340762202854704496590095283297911935784821154959116225436038934878413075684900031412288748742599533094533651250717307083021989476202983704725963410773266794693905082197363990620458553515679334835055993395959161734618333519212311063827501969074602864229409596398708942046966033143569153317402233885675313775199436338298409783060706407249326779111695996402645157259154558695903540208132031919471618000144622621228641949727164265220362750628460243087390875776214406596530717323953979202342078210677829659503158152301169434991975690834634021113780785874296292099636270183173271928348799411557635044920318373505388406470373795084741617320765918555232904463180721620991165937294884005959355106814717677734352011871122488590356000313013191603484086961181512976381167069868260103654593162609453619480122860430208088714046850986534061769223390527421748693385152412983543365363476927144027585747407429412951813853628043028471736552482260387565957148219457513639555802134393018182502859203395521328871053692857042556068422690771906891319760612842955652267940819110337633543213371394761967513732921596449014313007106308226256341268715313836902526071812676091943313083356742421106360601966774494405539909478384474532940747002281144422321477964678577752835909819595574460734706349929037685132304368293514031237104862533162999260299309280441655838607350640139043513385282086337635337891602751894038860643490089796462257438956803322033868132091953897214953040207768370835403925512373021032741399657833240264477705177413595953226758454515106534296876180711359442513656091663538512815617120233677227479816480319181426203992083599830529905245647615605230907891245406599456196065312187927388851865299519284686418163650896398339793577730011886483263043710089326000155111246367932004756289000989756938435291091180674706689015046319061233191271415497375255383894822130510256159004179163322292449549872069690108546266372711860604281775013520890541236356761059107203892242875383299436252149769564680107889785506005716232498810667331883886450410003246980118075788775181737527391799393487529548050433556368065396447789893799737439677315676209467533650201931433919317990573130059030845382670786091612321612246075803122486026839644886252698904023032066931615171575790161633169089752283205142669750745274652938350633859307198738950260368572431218009898259489229256201081280048493977967692489155910715679948903666320588266202848957650464051639086558508739083382903267997308951951561675565471644306948812047132836807060101060675242279895219043236112796181228828594977023949995119304565273784192415886692168366762835039139695833640802051612260597751735181608230613381994746587308213706659073226562353246329073872269813862373886216741399209425033362700706726290379241159336549311596660412523845021190846568780904497564017944907889448050973675005201285382375884087131704956244452500925504098558123143009117669768191540919993477943214175420910047560523141603303535368451176399453319402238496270049782662881539414121200256929981688311117364443188499633926284217414685683148857631838118430761195563177598574429276286382792373424066754534879021424667252964114684090738619316396592059243890116961567659614257628314089855126777810901348391681714602973317871241116466335807022792833949412428048832742237752822271391798051176526686701663484556689522529873779332314995890084202345473083038839516335594455506279015836296811452244644001726455762111081207403171212850747739834786059265810739668953495171680573582951173638425344645198157558183869229251143186055473788567167516543263867884466630368935385405451446132735575831514058611196416998631908950933686698925113511752285305672046039216575320146536352598003782433708688226408087952988719000991714752140830807180081598858900361352035999018483367545974769096201049598844470750348992237315879989686965989302523463781872069834635977727653511726160495575796356844254458201784373326441714688646584605665115979133788970925680183029410382898481458778147702812377519552608308044024825509798101676482103606366832989848735441993817188064593454213716135319399192298040678796796499833216306453232713626092844305068261424271403360188515236945736584855969573217001789211680284424284427696524252430488817508751839673700351392062278048815269510765302929553742233362452209097769812167819894519748761593029945693481914434720207815668517265925083759440548319357913455664419720330876570074730626643947074040086938720302445704278696165174476591357015063417343968609088762139545796148737909382738807546656046037218007041651993976571710847576917906107339580482497305395811722292911578396032546403746413607896581089228635810575792925642001574825931867941255226582959206623676840410857455647419499035066665216278991244003859956343391974512272347799136776611149234410249262295528751162554572337781745596496395009383676532478445282749934565811478519360686733430897428888279016718360237940599421823231466062163577478308416669318430574138890670831474666766449321815067729852363066689900530422997575923527082308604119819913223992753375553615791450169774426605788461665159211544882108840237295994886161061462906459177844182283858753100054134597925492642411026467654467368570034352162945819820043347310179298522139723237770277687760546938778897304902498679705191130062067965764164783221352155429622966616014169138873463221185918417782063840982547793372300686738923031400382476583324538669216331520699091278428489172232213939712083028545704752147031979902976145334829361846548018981004822125672914878084382786591537038449851142264588031277477158132246603132783116903580018756698529258121628104165857229772565889982675787127422457310062663695428788096473501806327714722009695383836795565192350635410259931997510120542459412570563176491209779137109867776892764225382667612588294261136149074573802974302928817566748908969250242317024120474962404849135993832490910505974404058352851109728625572252300766366258049497229213191883562557068739867801373069219203691208141789441981234434613854051887024403990665587237055455301772124276195704891454344673337466941344016858739207809475901912547750610555882251257651906293195254414205613524334024180273776992177895100173944920774362246607699715643041839933873891293268641177953808850609228730698778456598039846598237467872369058778085303332408948730674467433497305552497716351306635504470267201859871356668086828617175236635920495543895660866076236040943871167334989806864710677948033267796436951242113346908028227121281311837964144838364728395965856435952620995904323430116579615662171239081725945045517507577337734864959326926258648913766526862917867456397940129371938871631079147297722573424905792761714299810079820136526194743719722986539203137551711235133544473035334104829052387422925020919517659457240524506400356799819984793375422417485150124309813617344846426350321890373010759096016557317803466999982357526886118142481205650836303420445930651542317481666018161478827139724748784470587104156756481864889270045960859566829159694462371580200096234212120408427751416725828484936523088009432697606358402184401085461111588793538154659201529272300385043854884563250974789736411934454222891393919103912367838672441378789017548298038492075489237073087366880599724600790953676144541416669586503304898208750136078930380830483316291392910258109561342484303442309121127445787006576834433322243854646620116573716031393114445131232972830253139367658172904484728291064036188677016777909835776660744087589154950859223936654544952821358525304583805605801969604929322803678779021486238480635776950891958114864848802054457316066696170100624253798536746317556514366803189251442565780593514274587523868395814051855687065763853442478867590984825163765194050057450656268974390117583001992864652696141443131882639314397149468755751974672850949371591022122227521229951786594213871388299924354286833422473269732450365992188446531806723654356846717505236875510330233804087576183977201893992814727641687698817331993837956578213951290653143765151783256962815485526605995551151976775916672609133433908275708177773913199313666559373789673176868501425180312911569261165888500786770745279754602099409091915700272652679746410057591066895869386723324345118462045780833463466618593509889851459520012235422280516602622383338264651128595811586587437457595136615064394533440712205187583700475167858062249587657339705416868665308386283957129713164868501759465349971755654949215178530258972238622768005737400403234530975741656502920588860141531635006094176150436208634491331245483613167078892940412190883839448021032103087086158844700583803573125678321890765984751940851322992999989933380808973944369245080878279783697719484042912962931303997110850279194616728717452722480538780316671546453128624628729481148949193074785815560343890448718443545068241999596001471448033185245187152648539507784388111084156337016301663359559291623870515614162456362471673360843210910417735552399961915581895736534888111915906955472833997628580032448295670315854264185831720628091484003162461062915206254417853048064570907217078614466628782999112492455732292264961509175530111951340450296431052475710084380303454754131068239478613430022698003555704739640144413217523602320981306697632784785849024344850762038703010235344270159567312479601307348451562329409036996666927232327983804843186401789113476225863709023026101831694499431333636316231945975795488100162953328537448941142391152970687589525517280169948875022669553870487046029977623499603083625705085564462771654422302179346682013735020255481329216299610731539223340638763188342768637133848493388274663939038548054493023193206794440373908391079122282138234197830089189347037629662778031081330290174908963018416968694568832115280394061471999788534574867495539249005390464647716948054137235292029562427571237559215242278306088453288778579509052349527146211082504179819287691849255815063448120991385708034784644253843736872531526119527983259476581481750902531068829342357170641911169107186304422208262807020512060924426227235337736466876876123034012965151454049776665516824606141405594263990786817034751885063916797609189308530420420996128791442030670131884592171142257159715673265578048189744703370572311472129134388971784626336300525947018646928840904342514125402606045083263513713757474851878027311767410296990032337419185459324343237859132644836481861780242903609561110858398942884322970057914559641014880354263343935499483401157098757800274302593132117456627109847302971787789761765584235514476601258478101638781283437635086035445305673656388027253851306189135286027698122778457568616299598425237728948495063436301328756834705625186003387983340190047731459869673859925202007208171679330510991702277075700116594527603882443862999488441005197592364699322095038069119660256859405610082498768345587377939650663489971156251129299109041678913279870231225221152062487087682048370607584803171208043428483914971953197163150008784210892920941205012935945025160195062307816822731457735175719513988752439777229963057978284553026456397371912655993695702889633229671057487419947747153210565340961242682888576413749716335496658846787561416047303578161164661227000907218553006133993487326662069160392884600008448738864331490106723277141425192878637734338589627808740285912748216293198249516150590507706130857247054522604450588657976365396433298816364939791553810441505769535529556204413153402119508869116041621516022145858872504473209291263771219587117652093657341986836903133728575506386332937632612814267702303463535100419962679596307730057163349327977261712203755370586491565199815870441746499337322692063204939181156524594853299357241035009194517535986267503412258195903734190781128477751704771710224216572711990258674412648723338378268081861097848630874574044923040517465693860643861469541325051884254786403976354359227417338890897418057195992927122455215362555336677336020356554112792837911287129344800879780146767953571687840702086927681692015672049291567760936966893648656842370113231493519145642368572752252510094102891554819479051031219232238106626457448148582318408732661376746109032226766324796122727437993667886691169446071065586645148314264832792148884539292205558078713077352779528972862935469609638354458804249892632388108166785484856529163509431169373279374011796609929638618920561868411123273562832666354635706845598895176525253731843217593661471967522945626263486584365199240657163682397038618434991913773788726702992635866617021431319442679497143743219424609191834100003568318616155721115540385173774046626473850067943966106431839177465669820736757327472540355199315199616764960131098052634856910140198528680068370066182522883133462348336440796071916886134273599117737537441277325026646521346518014792517506628967919658356191172557351365831682523251771435951292412107484643009068525731329492026463280679032941788420440766850422697830892374279502235785482807570174889654907907177708695554489935783389839020988366666737983432612636601360449994790030642894616356767660048803761884403668151553564380954721418216904904733191427884393717767110738078452401910377758077727711071940689305602195281949393222567551631800909490457927399323771762076667163390632362946247115675974411008910135410982809324687708368006021309830882464902757967566563190424305575831464202000355936303314980874113971445192958851252940885694357826070367793238008424552404825768152328568768462895115632098603955004454721543906138726349500074437047111158969505832447762995212823392439302702584002853381350340589972849778085387269081027236673645819914047298163281658618160315776223703950866647053250601508697762797968110303575568526445024936731850819000645819750943698233250463141175436884141881474274055317412303594042998496544022539926571554011208255660635361455946390990778913493293293478208460102668549315297718166159681415207069298928594597502409054036318932469685497946345104346675363426236676595028316613560013434416564395127460887069600748096026798971257067096240259767247299503331603538827249512858819472999256862353777674606283047208108216124295050605008123309575984522122778290973611720577166074726712900900554814893964902938208833157774560941792150382448166990274214455300892168431855760742710552180784793091111047384258005121450867716117274669413909178774960636437608196670752691667287772406340568434180850866394405436957369273384982242085421374000037059681289073435215450602903982735603692749945165953707725032912251882922918510744548424315966837471981175675778647347151231543792540100782205373273101465294756038427844810436633305076631090512603777956309358291006055063378525858741432676396410914442345217836545578193386189260103492290481766401668525605783889127826322247208700474002974137633772668441071959770734053697791922510575462144437107245588573736794249113811441689268010199935344239089775334229313170379628857127628640903127844878874648232461467406947924128804340381384191494615502315785520360502979607140885924435463162848836260047031097431123368816850223562988208979343039833911567038830279954338242652818228113486343810724916899139135057597553139597999685376212079379551830092954586822135388699545826848958442310720010912802353354645898844741168987391660097558955791421411866762579440512706759763373006466018080537750118718548999470501375511388600954480514647311104606001284081919461170869339846830406599038788892437783520487867778193055097874434165647284126527994557760825379464479295657489364277570107973618991378482867796727669535521202592958648358016863368745979673613804495064036134032262856482688631067067256987050511363656128769687199086280867229359544243754629690300036639636112652014995785341668228508705574117704105572674929536277776010657958755446967848698305620082176645300894331762639383921881081635374855916887225886654118817211318633987719438883188160773793784647578031325139368048649068616377895336083127437553998629116088329588132559468062349685211569997522254031110877780444863990230801166726969271639767690092747118497812778721521063172358961719380706515280795267572352092876454028706464110540779555840574336756014281688319687742786947545109685815958915185514276544240160248924818998273609871011090027432591123875580640231591553896301828683240706566567719137041310872966008967179623075119845237618223967714110728223956975172114621251510498281629341610971453276297517807916243124430983167660649726378526350068207137427555183033503319733401512401292977436109085333169159605067418212762970853807042812679685642565854760344568196122779423101147634616190593566385150639550885415127717704173365080117912700604018171023096738791902459618888838199609818587161576539424031458941799807067695137670068705408396364971916266748199427662890430808852126035736085237476765225728428757102924404551199888715747131814939501894704591542782793240032254595880542632771743046633994657936934460589826436568622011909314570723123552994818926546764927150310665969952839857386587572860194370357124557914178176703572385369076441036763813233183272343170152205587604964485658887797309225863355486870081100514727909000755519257809712134748207130722528018683872249621821914548600869771859538796883894787486903194147278778297775889562056916728020181536334310050193006469668721418199201075454543221996820755577476789185036057747432928146322697989692175043768231792544198072290442579024489785364834679859344944986412547462891537139783978114281253361465129622493915243582063425706817001999767100283417121791393256763641019758194483951083614492366006867377393277282022403676914137901481305617559547185201552409863545586881385502574122158857092676775945797537576869798793646806056131067795271693459285998425620636050411412230823081904668171364924299580771810375589306708156659823745532591003795034913519038759479551995800136220436937868137205612502993623165704038628966015367643184467850376746456700112019060755056223934409564626872644235342299837969757882544585077701626604886133466565158081532959274068701631046819311675671668411533814798802721936732442181339763522691023197739728416857123353883375266529834253567475283837547250088596682773641476296448624941466560770948654577110666089547391293372941987684331236305913081202180282468611098691092838920698914544595623462240290145839319881395948429039177735561422466665244395989129465200438693187293814605919990092676096576597325287639490369099426657333123016299818498941067928217629990226824336830335464516171946530810830677704915594171400020690094689115359019092158673179204302398061521244698628983342996542430343350589252721970719837786493357600870862115338558730418296363763749363310394313469038804023355053282497846058833876223790273056488088405962782503192616679384820013282003674129540595859357403916785131155122426479452524178568438833133478805289428554854214086447750980882523236064904902529042337744805667026402382734287933508721103555888876534001238324422992348938092008811065840920887994576433912353080372608098362983494129059220206718233537075695174173265264203070353729873449089078670444338474206992118369199763833676950951026917785109416777806334898273576236412416376617253691008645494202114615675596137203424872334636133769183266863524038891120227377185516325134958740342090448042806684154099126298290691042078127360831234549772915766585052936979011835319989539813125080183481562860291118579892857759255892786848846778240041436434250393559976248134621493024703489130169506511574785725544694467147274815513453821858097006640060803947465049805535447986244930054889416605052802576458385365907830187492829183512320732067495948141212157924610046724317348532816284908496089787018216882327829476343157392045109592014583141460323234477555792094528031162941553927043406364148631901192562063478380314821428609990268891390633235701392461529558368794043147710188160288444440844464050600969269467706024063926081007549182482666168488287469380444740907232300386650917559770868520692230023006863176014907509966926050147942324371668714900440994732386598977424468552774905142117961988970724802091481825790031328072054335366709005949887413325542971131611544010993393870049262502312434193775243270828557642702149067125879654694331096510412339950542148998086590665815107479141298687475017938321384048273362018386878257604069264359991532302067698411775599941806653308212745209235842523404434601971759628733990672522536038342592943687878689387503898442327894606880219243909233219697282675751656207708353214885534555762808032041657422988757651213035085387143553358991574971040656607436186578634807116819015563373181758135713482617839446231771296985374767636721375520603448892611681334679462540285451789264729836097320678240038751432049632952149891796589735319985618849949226690814910003347978021602789519561600873061227397228024824903110923271190983474277220854592081493756774239688703931397000061075148697456652900281195879936418247850662284593906939403954044778468668695631146197776422563284315495823697460308578128361348708385243862671630644666628491447935735723262819557114278680847970664822130129548148390290812508726635538563154676963168260572295332350526434774305796469492208536574771359585579299726811045689221519893942559996785102382074755199282327023294578722935510987267960411637786802327621260675022684203172936319259264352519034744507567694532880476250734403944932791340471325341148305207153166830195355683475968874292488235554570340250059121492772637950784406645584597697230719814329683640805425225535322159877380501197817702349108680308191876697148200492190462961366778417426059287792046768577326729403040841110165419921452585798797015026065850244877287128472138640049296262918896848796519409686849083719049311370140729173632442212047527672332981079805827972373029348272715057855156499089866894452649398709295664622853492179983818425418429053917481541753599069286473706705415317084623545959851601322608666809052461333234411573909357664754787641671967759633529090678161084863224746046349420421511809557310898036732864571500080530357985149902310028116377652273452121087798894750497483332429579129497361400813259980737605453997236916146121673999239981851050480248416109067949763036817579185991006584507948871410098553448784792366905003717944356968526188696215112798634055422417859772252071977500753606125808749173734218590591093572253483596400269720037273171173658648449114383134863295380457619996948568203408351346745542481590391170083061839409241662857218707672627552025870284586410892549207346444024771545674341946643120375339265344289370994336284427085363062640089738154189164850087897032528218290838959841942901598310542840204486901494755369874523696927455454703870505824231958004346440867542576766903342836183716771216329894152007549394207262106029375918744909259114626943830676041911344694521839881063994814336800324012965626056111201506774277058999355928076539623631779648698236965503252173527823806233511309948893368388922011361428841902101702088205180411239543329111885329598058752960131550140641037844730499855829464660949998901212421311363153223746117444288539367897108408783300229362195715822794889853754527962974045826045222879871640324290191192278811197871870746796327102093217699262347164228966093757717855799953043917968059798772766202915624597804957090899010908687362610782283394098257067597866879845363829333362173628414598338141553866830300968990584218231987516949076029017042145077003262915085184263227942521305047257189417201127663470257278006160389583119642434897050406633863000204734770938278534964319876686045229101895190439961297944038882488293305247338782935131892021149555206848364274196393971456343304850636158995638016915747957485516761102730863730872379091006371232568086312707116545805293616350868753690146849538509510363625233396680172161192629847116322828752508504061490359572133830216138744643176535619232819621126712777368556117329743224598045689277601451723180482534702520557516716369169130688495719567324307107087862770928230073796706974411235241194520676999042347819713900643319712532431594176753685516140102359221650104833454137740525781399595246446235881995892010348857546531202353324557414355306887414006297169184601950769380205700119993572424616417060928530100185497394494133868136601810048364289121852095902757859760797219084293328908200862104682470973747702524355254422834717186392027178269517062811150564064838867443359058015662785699759887043311683847599546690618786290840696374593797230669165604841262876494676022593947618005974505565780370131636796826747216687335308890207369540376893246832164964680623422866140996697024322140743282416068881313120498555439451281944139450179826253904615659261186807585741638790135504943599280846300381822285964269071001743646207182739051555274308930518317365149318400097215642426004446041827422387254751188914712385249608526747772688948829610160913543158388202622403202227237949049108249569054326227950210163028050254610398180489156456047380925739176304414994760212799141024269240017753508529145038394479968331103998250357618407817635884553234444119906850237116387179001139064376381597887214976810120590517435012665735913812168806689038647970294270529968579157911879411986499141771533341040583722229454181170410465448333999452001407981183396732340201207305737524887529208640791250729953667136763604112895437415393010700060151779477144006564355142757764796617655629648665595888584748564592628648643168058700953079116680151856582628066478578944183603344929335938733087006388349116671458949257999131671731857009046011851098580662681836012436589680936360255259609243134880887259058869736355547160180321083081906604362046076854220283901738862763953232154018846621346185853457914472218587886854249727265715875301165625514322231724859708319403886141140886915766768363665675625474479131938915494960428677679246861004048118088399486963695688258815662843536104519513079811642458386377432798476763054867024348779058109325203023274141672221745638841387309540629474667665109039163373382564826623984583738454633762098732919017018292315029511557883900428204725229200806729178699882834975644258106503290681493038969067868936344827441878753507175505712928411485985622358369939558765518876061016685258891463496561471955256379875444562849219340880852322327780068854100836632669319236154178095790428535939388135557088449180156550633846556468672383654511650339746958606912817388501887959192603846893528022081472582034058032417792954534069689103034202891602108298368981776460909396140184187566998284672499863824145522204093439596716062104614403273949119710739185282626017419115335932266456351447247496120954398311033228191960094011024211258121335854191131016528803974707351518585135376811955531613814410736530097667467054455850819297019760432824783702500998154907324354381254032916681221952564361661039491858114951069879743524890876560241828177212287184513107446762010488925554349120458411102519098026087915971523841140595012182840500682736919111529846614856675488729794858317340932761935804163327785044140874205972251891271906331171420692959580455604175154040965620417854064334142742839812000463647462783831887291526936393028063223915536765151935405660738454575188778724009910157985909494154460794983669845353673482523270517686829466742205446425946821583154086717530294298498876348844799498159213554955896523661077439399224224293099305381171391661856685884122413756684170968974471781633878669435139751306028916672571181910565839814548175366128275441287761655189593587306823598030565564178843528509991351780572016107892443717088719097446222997731553129378274187577533693801742513442374078593887265041998055781739076416489383628648270712270341558544300096181920152414395307335198264766325810054265072897205466377858693676165749541433399882068378553031919508045804435558535503932429951521747868200871908800965827099610063175053919785905107987477481015325187221100853040431113514383429260389319390823133812071344408978608180562359830207958776852701432068159124192291767254996783901368817983544260692811461408865682996927037031038350512980218653145644922300140430213429138208275106964209321218358102963176087096620989351650268380841036917083835078275561996154056383200759577707834480360349859165753239341841051815715087737838025335002080803412232599243374836346245100600764410763119313327646757903547256610660465945203993069959276424657624915067379717164442882980958977188290806115698463721894136911358916129355827280188515092739467495232401772169811126760387532926433729349980023456332527264590376796046843276201849115647108932966852956092798668971106507837447627349593358420108187152557038194530514263351132182553874778484459280308452945854755027973521313892092618154383452334004338437677066361477117118971781884510005972724374115043286906477441250841582712570474524635879290639234640833832247346324490851850201971388292285761650749798262424003075859789914737744970643659539641828976446359371093271595847109867106125685819079160650546216215580507747588582351246785897908477642409450627674173383533137358526027181624571885638586423363735499065663577065686481887196596535410963117571569865384394553734593276646136966865829318580863062987871690455705391810314097816781027149294202358026593565180790780133664592343451842671460733770349472832309719563242576619585021488432653601794460668443424680930637761563711287234082690915920445529819477734712371975898503163679886305364338688735116386640887956347651564200313133113210907594936521747220208798331674082021577107711637933471253944851614798965270738075447176582390438894718338301844376746182319862865273356455118264191942567702363383420470363095582647957517351324287524216066858748624160025489944678098056841193750219373188201393900357241360268629487477858039921892120199517845696858059385344252952514398427243121431765286716866118760977833824543687288488148672524083844193858525177960692957718589291935753604278251265880778837187848415551433695429115497904362462836616603934593536738458351262442474647729561389220876568642028018662220722297513629786151268234302616081124904806850494574410716486373235934548205109940137618080549613715818946297242166689065505042577723239286052101075520880883291046737862015851633307472062597448982361956595258586146785320343428052222274795396042585127864883131082677600551909928634438682324563107957680221563772563043043826870479115401831999059378743235116543410421442588332321131238668401661530624238519300015958638224142323005732015643887531138326294829189875591899751545257475225036156597632120052777427830203652155265411922048301934404075693157105651841575571019254413188988681063359547498475683567857397997766907850921766102236150081066530820393212669575781389656282904196287473166956644345677714075234517927191637064715927937275354202944872036516525185546021489715881506331160319178887930290658086560706407763650796128892751692464238464837846433274402573705205395672533711227683513671935407692995384157646137504053450828173458804463312815084702246191973532816227447724951322084057784123378999217674104237753688813371121286391918950377625168350699321949840044146217539470004017696328255092833531379806229551459197869804353324895964624902372295797315393407616590983964875709294008030316076992878579555833659909587240593324958750713075584761142674120857361395412131466467680177526874155984597112707936623760137102754946983487813383194711933625131776409699764780644062548082789104104748069335944101064037246855577619000730343468399518887086726230284745264453052624012726986856427320269676073164161001476180123031330189928553218385667807534265234620651040681429543731429965808230523858456644710943940561207120415332181559654463881011070889100344641455410766744395982555163479121834570575274732444089892770643709948026389374770877467517667257651263688339341589412130601100951398301610223110763435376676939051478170178483875179479076960770618796452294399963163459933729977634938901493309724190855001028492747576311772848214055088019468041963112479489824886115620224858938128405431476714730317521550424774263512859001936928939855800679626632802319736135801766151101719707483422291011039923819290594838199660876887782582328615980114673524931638097603668041066595562652152044775521230780481818247553139293804693073574337557056106698143981180744724199709189591929818645809412321271589327246492334769131003318172685529658838098826508064355998226271056943088763940469183541777750205458587003804471484114929891650319184710782510758773425001973978861811799773499935942505679980695249536782068370516081611631774759224406663417253551100372005311885308473331599834189956543507500360875921331228670162539383057106157217042786783329497512131316565126488763914802595789194495633205250761800562793528151185890681189493009698376830081988855167658698628204305217492469602973306974008298900793406958710770070894847147069533523790239802366562690744351962751003323492069150792951551707657971527004391525951690927207044679427916138401342477537538066681138652316548669301128097588412380285573726359080070517057771881632592141943667264830016686490216700617296834599277589321935314571022365872795793757329657075206685114938389167612627015973686504378839741256370504189270208186049539996747565936010874017665399541617120844707750532678591860738693636067310286866697093256666394716992750839918743764024032279900264800008849739306039204326443079917480543292212553979650938127113837657283810414000888593709897417957162010227851550683904396859148768926579646033232050774370610229896554116975393033314995843261687974684363569508058937269426644164820339600492651415667837566839019880965485246967115654778541090727917510323427418667342036979626113426256113814192658997929753612324674710425784834574367278496185129145481218384459201854826505533009199513787232006433983758544482591144760386466755064684385289754344894938717417636310632858435305221284723047580380208452727648681000155331355385755845878189503753873796050613141146647311399755712929743575829040757260598099742595036012188267067056605879514610900453522632533281182694380480356944559547807054464874344330642543242806303152823026594267389211410027867497494090633180102588663042021361006973638502723017861602479394934907709666162499175589835288180947008186793446741599068946604970860882500318721342835380699128376146768396124253125721298136548853690514197937990028901751976659697433868809733473955539470611535247567734723760307617447085690598603490487577367805700864296814959092364704897418475470196729043576296673282546421737102530613278271075240052337411178578727328754255099858003010861538082034153906255147269462495362458592261715333989402157051608821908743255950791660185841340765945169759209254255000262050261504239432437594806737067697110699165041622058563034066776386313737092200257369287809408549140016786165629682775678905133095937177453643605048205966253504810201386804253305938300614316411567485780161654137806721937394245187953685731709484422335744022618847426412622504223056990327702142558797991830007027649822589924870994157814334775230708057610438589150080086693371746196270146989809645690577153749322115422839699785111077774725841976143079601545402048670936572693994296579581493229215668473788693897019400868270762125314673337888081507132536143767554620642829469356426743813614831591573781173162613225901184492924308900553795708170100581187792202003763662284959478671552826600551957938293198085118567081570597633038896966733695110175887998550945646018663809447453845735051648135917444831713087294011488315049652686229763552613218784917395132626828756468836454851836267425832412176203212292324533624592290988190519586899787989765819930230425961335187059384692847788527023149294592010524861203961433645562147118416878443807674361405098686309645545622035724243314453735496645167311902041828249434000867709758771159142137522985300614147797793910076606611291536729496961826192260380530020515354676041250390843508708585143480771743558373193348180764803017443118238870812984547828859037432285670372554342259908196884104013499666335423730540099760778061976553521960367244135255930059676363410335771322583596830146652915949374725487781221134138485972946523076019714601361757634057549024189512446762824917122215791943723054726452145341254158085900894583196025640567456265400581592535658979445189968742181906690427975814844576498629233951750015389568768664656074870273001326855294227121120492333257898353437774430522570198943541834343846796974164011692343918504646798604893002115631424093693681364875121191528328032002582469344494775924476940481211119321177176515858250707330055836165609529056048052802650253655088907936829671331554429176455773139529482212838773674244636903806776748255435084809540736218558597669513467188307389435674192142673230975167746272634907451251901279335357664345256987428792865190134499693248933835932247265156903642184782874412760296515703183932686714480969171982500521821378602232851325514456872495480924794669173937940743807371057503190089265250819501732174974294165811094649865138481244625859876034088776105156940415046701731349686355754143895112458330334592654936685179084297961228062714318487611882720328556171403483699470193531302666057131776881360404354773336688600025571986713227523469770951196780882601424696881537632894582332328393613606235464644222769293484105568656888240940085494250473298588637163105654812151366719124198381755772623890523544557531380065209630340125637570293637377467317871974295378867268635400643975567454709397099632576692775046174213535926184110220336883552854041765698561926949687723823520940038894247369481009457374092189666490938197440192318571407230213081836520206495956644027309070253187830175540494749576356550319982148763841752798712771082648594370478020190023236483030657826602003963115028532675279389300897777139335434185197033854148425344515374651364113041954974229005018257005032860591038479649338709898967137831037787015706658892410542059571456205364589741954769209383795654084814899344793959232659669403809508358441818195003903352566068402732492343318228644744258585323801085017038155993375935096680060808228293640454315179274724539713950972782876592120949004002908086777551172148611134317447819348524600360607081871116812510311436011159863398921797822985329334361103351041838758796222290703528869515091436127866653066242611855141709646240734919503466162092134394322215255389760689055904959909021361641971564059501638923569344164967823588123261153942892632035296600076491078344692698588516181126530115856494083803504876584256037252271719751608623589545656869853685731708706447418501127486050334266269040903430169190142269053007748397359035402981296628258814675889512394322752288497628092502406457522158847755367733681522324393345454444081532859900096881755139498961116754053812135633561566211769179188965087515951018666580473612446758179328356415642298729673177500637490467680724690281704621365634679281714240733048354690945419690192168469876747303176938205848701364249939478464710239278558422855535462540226389839784532435892267910892784581933248153657799937697713685908108979647964597793662280586213061264986975022175178810859474573144766624367089639468816610003743011887363239726723990167326426701524017921451267523189246047213419548097851042585917548141789713078559470559451572909843247874826964563384635782761716968699389665077419613781629143293688016948166856302563996820878934613175460482479875395239455759386107787273971932815477590773433225199527261621267314976575802650163004967881224923599619951094453609919690718788253052094277101778445807504418805798658886467773565177949634836859991643273234190301477613577156643672269029306011399322847426634904211584458434161926273515715902475979706511466314141950883124590887901969020135640370369411901504385003652366182769638810638637551007648278763239201724690708840820125244046246240723747083384924375736833648972338991672316334253058122349483703477329653294722000731853361499049516778854759473808705339759910461457328066962723040501592049556537157358697597552662164191280193693611450140195730153250282105159392150053814252593776685050564231075397595535265296865675287858905430381861099939288311235018921650254106639068737095518269683418083006793046443018709582935750383036929744407928681124179038452538150023954225143681366283909013768873259352852894584165226143845290094278566838468003033483799175652520945961258499569331011591425794483438620365287990186267710621121562711889857095577513465815362808892720785798312539172163596003607465910419082146896758538449719083050379870269219008126633092687778150994984744257546112497973865358186231148573635961671224305290007646077117319122699835355523355436099617317758086244942651772272918224213146034591305390066311998820687214931828205330081248678515251382448920720760279964960902206801384992556482859786958058348178256655090533697671447810706851650599647746998612873125988688777318457556436972791346247613382836283297174980614835419462381540719899274142480267415506013340623380390800137944814734213646483022695755765400335257296077842761592008237996207527810721803664999724757618076117109582962866528585494413173951534418599670214257965108898238359160309123181618779689558967630819956897881789398510896114188733562660549287819495468408610388645191391416056196327094759711792334489200737259404008857380006373449931486009259554702911793428058757134960736761489980400513957515172264380729465383812672120944264618916852083515647575660379721271858574161238515059246142707986418270583382127393491928711871433102948614358162989315961158536979936403798326469200104263055615861800164774702741343173538645632603113790809206462172884289607383571377818037848633616566838492571897940693891056040031155160483183636575388247309456413249691968196226972407214146437202450173436917396559451101450592500680781682723101245380440300335470991366775880955189051911105080794769273446157272892268830686363187012988778754517069630654796406490490206818155077457661161950107360604646432165446154393449058530863457396713569558458369354247053050104467072177470002660058850479283603688182069845626818819239248850761222974883046481285216554786682107968307186111260854516096675169397824610489096527420515751843975789194714715824016136031629317505266106587398205472202670823142986708774177450249290837111586418315285597978318902424466065539632729241719317102713425085442263384094364292370661909232183249815778213111012124181438684280093650549858683917894013224573594490282962318705874554368976157932341978278637987398502526278765382223958233967906282168480559601631576181733609978793480868093702385032852003296592565892200966852730791096736912357768672937301881200110494422778411477521113396813871578485399147056537008871681797888284609829289171875239842677118932925682489495823967986862489248817548439059540996044276617150760433679952910830923737734657174924308719583734511345755523548616274659340022863926486494650700176108857373060912909460274695282898797457141933348537155460472214538614676632783834322682043709665551515295772123123173547745983461953178934022709628392140250269966886813618139922040232219882376866476190712639486068270945724530890727963026817980122233135904954280127120743672887784571311825823562992065643354199464624065543423579800660060523729213578734208811758334600322055439688057725199281512764065575989128351376642094804016452848307037011031271763882082444259732296559504674100839016141717052092387421236602143422272549445979760610054660898559531479317015307831320337562934624629912155138787265886161436148230595293219034832740778123461108316655472210643600319927215702416238187155075304616525595266319876914500935608528020983231048575894173550969314283467078277612343599153627410430799322436626519885388606764684755452716151225105104844205782947402429685480083326251949331435299146767924794000891789295726452538371093441237835363387844330211593684431637080976664443874872837953182622586638276843127757913409753823308086421886944620398084068498593338824398676002399874399760463095638135750500054509426212329804750733622748070548679378724028173863333112310503951546516588471804498129987111924408263054361792638929208610195000419770928996370419543869098275728651861916557895776876414480942661792393923594749221559427361535292772953667206689581467560321356099448006363276489018724870420986067013012670520155207822039781441966326119011456625079502187631938449324473922851836868470176990681784059391704676690370844184475701022193975862471724944144450535178730976455636959117463604357243611748413919595018707526926004359404287892703463958763381911634076276262864394198954526657340937082123565345378838778519632340110907120609250555473231954186411313481142898990681247993629511865820425481864688868114596511142717575493624982948940781693353402979212509938006716291735848792512720694925016935401584138409473604510104178924116065856871732572960019833598743673247940169987300762631468468085565462170223754517171805894827821802563385105540128647270119103862467982433569896059031563723413923295900953691108031768254413243534860646068084968789377621875025243339874758327001529568661289889114550043401339222361911059245848126817372576582007373556804583638934605691857170411665998314460465860736138795490279088261477897406536962259218568530454867292378338803245589739222605433629790033615277972449490579653898992101077043354909819689574816648569510534302299199323786330058617561638283439829179666530324477852805286000538773299814765875590589529907293459926729572393558236277280806053415577328097052655400931793910142062800304490262293075971073576555189819520764138200689624596004376168602011532389572090248388684872453322173920152588213069896735348512622562730284285012193101432316877323261228151698463349410110375762647812571840604142889599780875721729199238184634596406480401460150955233096429543253445837970256945447006670581120310019572148277799336656241061952913508969018441792208158961645993247585723409929916182182986689954820448046436166675271558119854419912177907808630059225060818249117609144375958559239770980155871693695439892548050666600616035037200707998921514395011824658743914918936581243572949203759399413634673338700513646119601886034323939789635930842461728926994056618618294571492949112448539830262477814512091861814041609560721899317745681920198515473422567693567583674011537002264387037754394569610733144625931001160732733100971710131147320830516482492146102205964687128315193291628012775957854887379097023207983237997591853823649635230932232102109137970459151488664596240813541364330684264161638206851356212916501170483256697846913111007414690126674160140717486334689119238519802249306625393154045372099539970352317717183338926358305890310830969744259940938299430149291063817902943762190363224373558119172648483982894476908676893525684924792595424293096709450858206602594468466137473255130608793186398074836437150361189884146511056678510825300387398900425443017556013391508342054476618850989715647421770409765093586125087872892265420903705982836884561486240577999180125528906878725340884994987011365165973605294270538200917607028723348608937319725887320998119796896290704018896956255494801855465627236603796778573786563649367384835041230354769361662404771283968424397478587538533411391986231921959246818720562837356401995544310421773700730470574057083231126494501267789680928472946684291504654772713390773668417015612148171871083069399244881186991675019800064339168159722026671407165535552808761677530858562707005319776176177918418131180402610376364119407150412680183100183324624216635155256370494312002090122576452612747059067826765256795500482110347743990625545013561653480427617129643588823396954074617977797582380443732235686371227951747126656358076748218606371517333366565927575378091830321914251898868504787152229343779829958880440342766353481623454805776499077999517162275095399457907427113398554969163339371123713910678560828710677392983601832539535322259469383280906927013811447097610998309998721014526662869096205747256904013809494711304948914098983033409699627379594832301296367260672271461926384652481726080192944580627933831897674096771480546713008053254302908042218747714014796968692153571573919057792324337276259031096134396033458400737900130245613667766537713472948164767450622690431264944372639414484172280741076751672389754962107266159215589202021677806534335542458862524490168530332561045001306653481372051773872272361077406459457409776740485455194727687350966971013685637711808738925431078030358327574554407410784662122692539368541978324346302762056364659418954729357989304593332025656291953565896897040778494768650116153640308653408143925642604238287627797879478740684136088470219615526096580353525615589753603544408702311950229442034051319169964488175787898558828720620815005773160160976363909632018201253276155792847569313762770239600569546157051481728211278381071307419012228475576378622394804921119916470968010657858651599618771406743865045526023520937678198620920704882652325208541623935440182104459315234865255495244433884740523952371625345176219080485462262275583145520954283189873828875030513448829010703434425956300870793039702349698355665031307844061434310591396154249384298312274475724145811629177035619856835724837270391505183588633381964241126171961657445594440640825635660131611280154823359338030087984145199391737747051564220376709123511404198048166740445546556924801441006839740957151416886512015747854575514918412825869494805593054551490785032897217220935338913908479756650155685113982229693066751204305899330628234075262146226220917778570999250958338749758738100788270702056375723541391900590898551305699467939098137863871841484781628448597516137506097648955474628038494880346060335101978674045407200580115200161479608119374850461575489107297001828075415947786652592412276977664025265984334355352814762053038094286054442089768762645707494077557310110017592795407884730227135679273398814945866001969119965116307499140889344321368930611554988814861549586842275551696960089624903256592377343111194552160976132422369922445730654141910068050901003114230941418283145372215832695707146793882268000610705501348076261208676192804926674684367946965945425996508292989246564024164753565067747228338408354018835086576878450007188662815495631727451888608963702064396690034991620019275161800913584228977410804785980787982383047318985744471608170051903199366595587391145003285750598728489354075033620623220610140378146739909653492489377441324347801742138942423430697245188216597832699246971662816722633044893704404029425900792829020689611952836162686888715608736460919017165751345680829609668601955774938563407919867549531144059820647459001094892837143950295897824304015296522183601207514690465832622920342825590024247341532103252722050486141360173388294979589169693969354887082163893360902494013744714411968343224208311258193920493634388332464094690939477397920663828357471881866283975673719934581617909720968103154168354780512712753103004283004590816099640273416929398169848715076823865755530944699974517397691344383208593418164981807531076276127901063534187538224255703888018444321401641205453051395740967076490321716853617351246722361189847782048845276404409127825822366858665378832305062450785680165537041151066605036955066791207840864781740169531092614547276691340528116636556909340916306951804163731016219243106031823437969037114015214587302807681580525647807117211981041714472659453592621679457623086697975558500600026965574324945510783611127127431443305952546184462618507173291906502231297828002423115457587833339338829993693417095179285852338494292561703843973308487615321524320180211283959147246832277040591700254935181806213117366159190412716868022561413026322865510194486600451026487994062675228458146066194328031877304369751276362688204745788873653669055643143223497621605135063394561725197454618697644265111235979693052491845953758324260398573377130800918513550141591041674743109837789395670807739523544497346115149052685611507903364440738027363093495263555975320611415291782060241536436243988455268017618076849790314058588583535101617172386342843564055023059834677888076253539756232882323462053361986534900976001632613264621780873222019691186392242444048462148107351287173759636151787516783862680068614248243175580167160272338906047888311845043803214528664255805685706830693174556227320911185529194658585616459841957211933264455268120948427486514822483101690912911677518728257911362088913113838211900584653508711562085089863330758643895764426963874747598182732268612921079785900462849133853871967401922223509873739331035856742032248634037950050078659350341261159857198840989126566871638470121486672206559062900819928342894284183349928263388237443570567919061102338759014215229748729736389637761842605992700830831561141135439695639302249012657468044991188705317573695872909079408776044731086816111617148711660396958443871259106251758947517416907108525550575385607925151503236062555682022004822309539283176990923872495779807786201372045483025494173067419036969272363478212370573750937166146230305684143240126133602663989660026591542467101285023954500812790147081431933226141778668380335249015088768011262372054887815798904555581977610899472426860420549113468088898445094629844257198833121404452324000028151247790102016232169127034212152990032770586785906857963464047591600116864990661772855235098476883249291193561032771751937190423974375968697683563407459970046900395696464879461994622355901431571776242822818720272334778983111920294221722430159763247830586570265741143967569609180397797710797870091681446545031122332114088589319572297404038602508636963740009621135958334217101672079173895696885769628355409763376447519969180797295374422628154878392755174553725134184610434965020405886695725569188922303288619850828979299068729802735361999267515220855216061652056783524986025548954482160228494166068121630690728583843316544064315623119411315021846230836055256997933593719275623711557168417342996427319733609225473217649931756321868944166214329453368933000388967384619972597843047865353758887747803364039231658348481434009037917644686055620829301821396610154981241482054533209701692750626423947482790833043644478174815167798172011654951338606730926028903939443058589359171327321764836346608354087690605927402314340112408700033423715055009577079449190012866087880083001377043049323427938127288945126184906487728920919188005384345954154996016653944688504373463280111243783608104718949744392832231143949531565855553808086997938618663110881067682274807462435875877176482403873601214863126671902493469459026239461055782988857560330573610512969886093431913925361350953255884514705882967177511447475502102313455956545255616122847151742563108322923676743526188432138652036737963380763632377849692574162092627638661970400347127581271159095594943570221552675778583409196606695857982001065815992314063513689633068777443705457436128523065223011314427649572362763451153224317149649154168147042519397955941660773762976601935588933590647741730929158880895027087657397544166620652855408683481415817913826493073808271625580217413811777481784064502844269826687464336095150244736938313894482975820213787293663729139785278710706232947364933550612099878739004711963663936963820219110860517734008185665895625868336277095388037616359368724848794653756963941284092053810336521447058608181394363379086612298655783168645141434625345409910306997325559572424556238600693981964327624747992903238045441511961478157737887981795484918319562970419550600586484831628991842525556306957195996255334409784563122724471514874133946389692922510110324111440194685936049243831763292143813397495130955396165847796882835732472883460423870184064073221380025242122843541441817059818723149371132985998840019428565369388546542076402107926354565452247110742286433184606984529522020168166154958501475449929143069283815064341225070252583251657304123865325699398496083991728823017388524074026672799679227742483414746816941472882157628499469254201378669885599662832534389581992840122306719211827722844907249034617372738950074989661336995194703811016374544838641324974947946178715578631666483576377002669815897081923640792395254555032253556931773072672000407228882973147272073136293066022710192859567181464191242047719468246212250925912315758527058303628759922611635952860634853247620622327414486124720617558309915523517466155741430344705462899548061635178557116774744169668503455044916392001894954554830434231025967110676765965594561432335000237330838234463121347432707125446680259605899747427300251723594393642523260256599804383393758848557740626774023458759073641189096605578725627681352573613821323892384393124490429624045857802952930273301562826503314728476721863934664149612939460540177171071581238440899707740515418691591410047585932237169297460349932877583307066131181761339552212713072404508096248478230758190564483771496808446529914228983239470878231209260109256446589539712831114650515362308020562744446954079487766776672060557876923182917340018557500401368803275198603200779482931971043595257749650889758477619020962992168709192094672482536551855333094858213745236701142268788071131082081695526417176995912189760748139581454632775799896784018849221245162445506469628794765538755271587404638461954917426321804797618366855473820382668531514692438739105193247894292586130641268584583555370279555590393716542308059471581009937095391069088050623635271424112723940065557376968098597942333101902179868581100356073734174970941596919237429294270708866143241166309850046209460056608524191162350062139506863560699555166407685049505459687564094919416238120198894366094663192345693537180586836629826111971303951391415774528666254835380761026653885495377521496709736720122305621901030616256665892810008463169498929977536110187764995661395027802416365015830873341508726382896538998992851861954366378965914982551174879597631813092799830177556152326691856142621285010152419845039510432484879975682895373055575779251541044166945303118261229578307940231691083291342503084180613270608336503830363951937017510586315338132752248579427662837338262652240688738513941154713232462634359619371318041271297075308692850340217928337165665185282326988874926774427425736469510882781705067629060271289531276895592359061338343039977612058978394882764253267168599873859600318259014544600806075039437805528198018245739582163448799564921265855136838294766978031262645041872976614194119366067156027425413466070994708025652215317853637489561891939934071987700780704736400450808835210647773127307032337786038040099063264139864293347462231697025351869644490812148060772061161642183053767197947225998738812586589958364885540138123389511008714361019458566244321482546852731934390022842371618071153301052369505027706937508285368754663364096198782619797942201048421155048315377332365494325993321509984959273689994617103768880711503604027836922906714379023779751917794895679820859040959133302200331169192605035120966284950541111551817752022051260679173089661816915928763480396240761917253284932515649215695481990057473414073443906942147065742842646335373984234055324695798713478398698094386706808984329978866420773322115502732653997511889333048991455354877845142449724426463797977276895998779374792257405900168946025160381384504059975713299686137571092529065362167568500256379399496098646999855568746552442477801895258471325371681985593100805504759213187554414552792561330756340475238706402887002389705484773399321236399811779957511269157118643221385349778546456938387813717050687766289182682259635925709627432404929610356232723715292460279878195964224066643780202310107747179068731742048086077110043615954720979663280137244653339179636468020003749157604391241615312017067762357590400826671200641898037094694839799987686651531742627842233890731933271754086291623139205653673729473290599028267422053222897200840760516942918529264004694206110082416047987313297873570857408981228850083327960086759750969926605519238371751647969481954187967377890242751959408719948332685877328141406670929791653763798626886347485292213712551822252170481462461712606316910073000752535939478410721557708818285032455055521727891962424896142976838036234975080210147227283258708595773882219383272044050279686487584461480998070200986977293902710828877286632622779659187183057630177844676235197316867555328190432196638071676010661586381534877186487225287321040204183794133557496452993426365789875230101536677652480894524613407616925186613074714897597396138451765828664953743479809646930509833269317335483205280375403517149134374870450354606805164865033572593179628117850109197366546736884794279855658775016960749091119495316515987670825672728809988377685218412264518465500893334468648904870777188570869680101805787844366184116742348739788652397097967424735921504502869283875726237713421740896091373582609217717187602089590313978567827768718297753780662292094361234455531970640934520708560162980999420531126394101609477197696377441864084861804088830555113876048175049070158256252850615705396340268328509938358513885944796239491142139052922138532216063398665033438448859946463692887076656588153996629776204184173490393846675137041362900157157418606896594055317260446939939852548440805487477908376211294540821754134926999879240282209036170645196617067086681111117133111098469751868070546511002832748322705833490134951310033696681544396484680565210413331526732984247395576949939348049585937242367155078544793654372141331660647652279132508611468897245667608973183120437415726129375399558373035172922520276250337244165716266397829347060865882164541362183492529247975393492957063348559543389616029183014346871741989979761010425900873140284632530382081294463213764370494815396810990155888410260957218581107825638831686931051783476674547974983044727512982374486789397361582092140118643484900816394271349538611797794371085559356520047360714894675939693420142779496476536900995337149624402089398189570658032434046469150410468818866561155553723665346068028410872358548158214893018897280992380867264137684797476433084851186286785756364600253435027772756749136735100748882252746762228298573282050385958690930155299822309689709777844211526929734503435730748783629820389870925726171480134895942084788490494756218803380046344121080183555031929016790710458614325156713949959783421111031878136399600615840964432750159126571951448711844699105589120607818527416448984427432649232338977286088909764319904926653242336771510989512596550568680512763095228047287751182313402358149205474675414531666255476988008738656744921452356544061158233901235540917731208686904898245892451445844002804238846352905010282838775813686614203566427827203874441006759469348261138857746921853220686746425642135273459589624982817532759277735590220068643347171004678206000045332678874709238211011913768312434566514007489067215478276057159935513698753014020419665417031138579212673211691040422535082978753502707025267582110576036607256945033253061012636019293141683699991174218042649668539538480932969116490755763415731110740444030039023854142256377053060751971912885683855057472299868059063357577391570445031904018913065815120855253514982061373189822515921869856103631683297012885773328541224207048680126004986999576144404924213903075201820402835030340867347896537910465682593112426717247274128910114026050685968247535537828448755819915715789930014238586621058069357300249181723402689398331801125799504274395069565139375622484835550092341941195175846510133752310804286615231462295334833581709954707733543841104261586253658298138180597093824388004769992972067021998239921536122743037046926585480680996237462020146441176358866220996465382343372983258811238816298612335090164190662364332408818080749358736497485840814105852672479102346345638848531411594664713671484618506525993873254952510047738424095442736183629448084890425768402956397051478888386522056585932860014400157293875997840642409027252554584230727624660105268721997651696823904708261571441535411866199641248179145772240466951860450234915239640021670903378757553261107371002427663752955509126876389074878912948246999335634537900339109267669655997706296223057278584371747338456127342565183938709676436508049423753492739387924585106660056046829006641351643786100961623883663066338883228257541739823197703817719694484464389404054320553205746027179240237569431687529523799071757493169253455734886932765088622289717279411894347739144485928793302936695312011076740825059840506324129111021857998422027853438240811331354451339615834565359290486404801468585975640278564360718375307019313436187440028862448335649805902264157514565874710655424783247135880578924928644670784552772897189202823958874070823973807151297226394896478919323561215060999819934191633591418703074973011816060667132077128175336019444926808506233579009963256782726015369718521884109852707550956328736346402628061704261767812941773216815602452792957168332994450265393846441569694644232646882313558397291874704086628063963829244893213190406617494314082698704442438660992384582719420035170915273083956763447859400349448317285102292890033760634180956471188981427157442336298171656370436082512506053082991707277665001165314460127983612344849200903458512466017905548375792344156484260860901289891669976535441506398937454024961595743663977434768877075869872923980437971332408381697421218335571194098414419233049198567010555134925866500409424425650747605986364306825499695217832499773217191801761150820532800652463576830761322572295133271423498689222232380183966333510577641815457370885001481209172467852270625773435742656728983016798135887576634718690172487243167630031873341446222417295602977957206898316149787280995483472581621605181577276720133587698823492520189673339704767976190104594804019535933680459191112588502297332709885157235854688794088650217464067852954526964419414342324082617617755104130058266702403930389203615117648252416521764861444812741095808427361443767866982804171352140307878918650268065799773605429200856756242237343578191159542314847739985569371101804985884692818017051059343072348550016090504394854862200724216649615916902288260037433327469731078613508031509311857615928646065720245882885088603175219295403896354534260200654800604959642893585913002245241196669672340430683076467073962437204300702001470615349353426537085050637027082846452944663573158852776510022957744811730203505618944518892383828588330152928261400235355291441167658335095934048176963257923367321305739412038366714670887024355389543649773886655862957861781000154809964302256631898259912938136654391923663901146953319335136938535731833586221326679998634522565512962890513029034421624460995212312851745171419683232495141568594656990216649187196813564318061824842968045020534924483491832211318686891047171624927166337374283496220371243987484944905263585678558947880155820333192498886497676314732271167437630192433576517867490149204509217277782610790826448171233567923603138655190587501114729081671852319327921541867720838003245476221817048677413996753290139190236301044479788274476058580857790696589395194049597860260638691021468197927998523902148331641084896004628287754446524820830596438523882833555232289923987837303870653144351515018232762071160361562620697931567220544972600875835134255931155776615850329823358900659654676021424552650497511010004185772326032319222217698565976853526279550942045709341804538183732275800128861134636549455609948539819797929695150966108055137589725748169100561054982779191548727918823903744168918722776574619930138416363324679548149589900416458038132217812223100132316756246749404720943937092746919371445052678754185687622713512593696331424306120893214294190021883969490320924073768727119073678039432064097854268116310108366646584622220546272758114023036560676014652092256279919183091628688907462922702233407263612481042315607272318816712648291040995573448910151679086005582002382907859365057236369236496582911953756951932904153435320264175916198227118128552670143595391629343875924230164864404515033932133094476008837774721609128774825278783200110043363577603064971234082190839511940531250756569155725676094047826498603177648497478114752973824140278588923909549642303746456344502888351061871387620021913151825460877598311956254721142159719067945932626236717484193596160615317293092696505727388377656975405192512237883926795294659342555416417278448245307261241896872252476916112289140959583848914200933099094626540742221857266479439384348845786504328187468885288921614750640237732672200889701409452384202161886637270110896268339171632690780202893991013670394075591990823589786271510671436370414262171217727422683954614804650297261429571489651283775712440158526283067595806422898891664103869515814848704523032988274700587242651699897196068982712256261676856059705231520978330145047119633377281333139128404233183019326970010661403271235892849408842739887255392076889417037516726556306703592160289985110055491640695373194050176749507009657516490582141749545168634498647565533202215943722052445198660226804824246086234511386975040217997136322226013782470546917478750964212420411733779529493385092515334509104942859412499252515869014769703059696036476560738844917760362788657270078999849351600149027304769568683450491647284546486677290790896853350690601138233659694981144212273634666840963241729045037387250714505863078981731253968398069165085820150451527108824716813560490223592391340091777914101194129025221927819567146445828952988717434457809409911584821367581639115209896936494496499015344953241493446029290720776866436781354404751636181766398643144812046942769659080460238165356134823520788812044591768104927131706934424402819519267206448430337925340227149458619399785005573003562296503742864741659086774296054314873904434045615051143946729295526713253521213315980988147119990034305222959745228911523706843320031149416206790725244050176688065488569949796906458682709660271583666861892641626392721630183092141165184368808403497343958430890759456718417520489067908090836085578150056849696288443989479848662618029572448569806238537780083532421747195787431302887062934993297170160698677943875514814157469587965395395773610048674995890218698452495926318483108394458315177926254100889878936795247955237147630770032737116160305616463433779611549382504775505310336234729775204285097511551742729287044320348451790044969590877196371714215571907530184384694845422138363554484079019036470162659004256612399360308932148749940117243374779927082029224741392749794692045653733066836857901671324536750070221873919853631465698822719171699670236915564263190588296149786695391488900784900392340501722395164491372496904416302801286414690322623226680623699987548089839104890709698100113989236546239472938369252887431946326505781309241150990393269914506270255727497441000976673303386761042393985467514559703756573560267264746484292462777550501902554644511476289023947020626005969002833382825988340043511345520130190623860801079498835929512218257380020992555743127743750747734891883604019578873112418400777146966524187204143127665839537605197295650728450585346149088736638164684596709044677737356786600865632296279352900428063740496543280176578119042643063827703463944955098848819479316628146018592240153791708129331751015718329270403829891427657980793500565826955970768092459434489395530896325681928038822620801108126107085733359850654203514762032838346566775769036645674899858383506655978748999497209720059156877736240791222632928198641194917455206086408009761486251761672941795092375630478022302622246079909569666592724054905627257229603188753221170409348374014911662923169533993299178108700347860267867551193749141086730855409671643214532266771112546550454233680554000297159578974234510815331331126262666480223552364905116263055938406665147338511233014322451155318990997176001800902321353531854087505111233932037539459713685164532345147960542511576505629728396477053780949885586633233549388409599883885182710231711562163992357033678419600619027745156977246377592486511734348573820564898716430883636948498146357814536979018117342400444524191862037564292735834347927115223053468353473262046643737147396642355574136574437153270869239626623844143931183337620731261067662010056126895416912186441091279555522370305953693598765781900526716083840184096218457938713247488146465165086609547205448483471156011501496844815627477157128530264230981196628887302707846094455051714253936949816217485384462851678938040238904149066391432980857809718061321966664931605241307832797776222771466267039506232548597083559718830462105537141241597207349819698995886081445261790128175275283235119851366617090086608114911824253001131723109731131164720643836590081968991832319066084621205228244105964529991231712541768755195305075869933483690718068226808485612722858247301972213555785040335510946949594996858713128856976184635319920294920238628269660056672226385873427137727049059949674300856660416431184324014405098770620365269784192556208568440494436061054380979500911152654562761056834647590540260042150101317344482702322856482618051809309689425187590588477238213801611666580891104848447651010853776408387401536896743104981458678690291198146692106212916020257955948435573344021493531388762406811059015517516404743231182364896465350020393427508666795133287307398049367517818407621641433025304337755983443199135495275902443746203966920584256818005249990428962846270779472683320052515898151104979383346149015767741136269756144043903902136935172579796906670926457046976762076125893759627281023116914546423720223272987320274788776733909419260725967806763316780199187073778979298715446487834217131968552750194589655162036740425535002353909754232803093034715781907991478555237740278397855673665940911746448968741767178919777382700833781884102056810774702278356568129354811229113197392934896618619138796011710864943204781597355920992472828965156278113936021751144592178472397667055777671250004341271024551856207945186508296542050055741861641664485156015575828822820195360008305971478121927780918460945318771736349232882423901428418089783909289511313106751883082919482389491948803437706091444142583543163849663383714245434957872860935354339490294275744013942052023718602505865823593058408522443380242813281614649432020211903532582353140632846950493055429830048457131054063537625098148618539687413874821719507792374307654438449266085262484924030986213786348535158344614240753748483871372852047890890647307595337751165333091310484513459527025140904964941030659773397855490582061035781320726231134380846395028600203300888405832312842984197382208702250136982310510572789801228745137882990885890497824305042453725823213337648030535191523164784762144712805307797353677835203365677811453556134691586263227064353969051590295398963522818830808926102367903447720764615129255951863868646410788554965399826972746602857323684607883601952673098041502404129578840255876414617382283103240413641911839043473128160324110913459947935827940555068969753718930869020864125909665947506487512320609216581833925318272553811821915876613415505746025822717863299245805500258334982082302440965607125900945205989224519497082000322586755693110005464587303226872013141826932471285250678529479126413042208549253270683328804665693476658673125675596413819415004791114206413016018754645288665078003015909670611548853279689846101704157865568039065554984103378932470682924631280530226049288146135634776093697390613194874200253534103916360341491984672081919986863979359667648794983928892252550002776998683150069387521102992541453477515341284853252815958715176018932512831148488693934180993359022394710376595806178536215878025573534974809659004176764600636151300385853426510446208577121727350292354849378532847448729405914472730775596669042649162161088999953270281065463606598899846618546322090133137313122634394685695889219867285035953530082674623359873956875479527324576468129923488382495890338321708627696454701288474335859430669370104804307747899887047946220424633166404448042757266009275771066100825589354033219200574460547160716359362471275587838681941634305638106141937125883898706227202311939373898327982460132949030996278274083172177538760644345474765149687416901351553739333921171057991871720144320114844642474049626425365741741431266727155197486629515056710044232502612372921998664004033376429553121834178595881144600287165838389364579469469907419318731803864044549895795683602943588580065235588114600155413332238314343746522248035948355018050914578958000881482497437236255706857094080152854106561953496141340612037991325292253635607390769168580960926107131685269478686336361035720249048485937945246461653021815563195283726083451362430615878619640427473298296403319766540141784133893535647820607274614814481677653107857530816608994061790623541650940672267775716256403200629854805006693529819643792362737252509665415789150690750673463885273255095459211977517321690446273553044403775260880948575060520478013819646744774852282435749733278268806996547533545458209744870396206064493617917744186194145899568403227025741616186653400290000578307665028993149324926275683576291831434167189218160945399242725054590317075019022561247424098209392639344310939185923642405225305061237357944307549554972945133975536323427451084843939873399827380070905290061307081346095883629861610601749012725637436488197182517145054496843454150452617532178244857161965135320402552507611436929957694088929548708436816092860788857705612756049699067737167721158613923230772525377919894749311156632290322976604818978080354027654135779439741916996830793297404545092198898385900598704385339297999944412119214480261956499704873143559716441117609328348432889913185217399119926295002144977269858598694952809518643060477657816355115101737027276529493139410509944748801397107159428584687328272952461925114585767496783947425012859147848441665382987960196941284515794038497873219508849477194393365911045615765556419732469715759887677524191821303755629662585677298731960831624627216038961326635466664805851910144631054826560089798050178888580208656984321108732384900594543160322677590246865160230537051435628179938578849525287452307164821160046830522940474938975348997159924691978698551843747065671827472855865227370360491932238121056197750450244193133912297287231239943696725933372177501903355699890624389617867651531503372474586473190630344087319436451703986171699305149863902569507710258986762157522007831635295603725476955338976543522298994101113417621115979884072895590696686170398758762591173942877496557103334020445976089810837256107733404037320265468189362650698487848209224435223869502279409523182716079810858113787443923206365006776612165654778517232660464977797899973471815721145737895393349130178884449102941239367554816287392964273971121262589972372761550797247195094472440569696392057585507371761373901238160024683462946895097240366642418626224244881072329854019749357694813791262825959722280881782201559526604613010483632942221344805993935790908635990938441271753449732668019941628389411767545562058183983177276024733437628325342724790745146105123462089387977322811555466059433219342739969191398060714342659910808395162654627169930829428042047260122304033903311383603682995600396070367652586103180026630537059450544306952499660513647523930255264200925258155834164128533770092781048457850099206665114944845967840336728883554450513887502291856370709640157549957388420616912921061165017699220150213134032956141703604133045304545852370116370045271632893352353719570998935565516320727744648256354186676997898717767291987408829935084889057199776502550773275768066253612796618883467579236836501777374399188919068434703607816831217744482467056563340298917158540135250686905968241968796988384604107366907500486442175686215634559135842416265478640666342569790689214987481327554124384175271455257013953508761745804107215353149240160598005258482858316266731962828785085884430562204706163404575071616798647019690831015358105516070133870623980950840661153581046969550437607016563064301450871054058354106842798324400420315405600538632915318647568984826144701120386297778413806461829204483298522662722120668645372985799099838818230252248523832562621130523347171176934345512159101549222693655477689887000869972589484723658395006299813528390712805321580283742889681069642871780279632902204342168764563752815062119829954511275167366315186566304661297683367938274969537151393544146112945947501827150617723789132885784325168806943094945624344808807085007604688534841130582250472039331928103088627029986321017131474629874322997245881918690782838650316381538991521389340935130146193000924651581925541839255341474267959589406358925200477450718543037926697806744202082756023400135644786062475186535332031058125413898277466343219335447242986481325165464019335261691161109080640000445908491393953866289662934070888424502091604481069103278112615188344318193955984130508189773290632690760170801771224086941127241128198555007810790233408602178567505680169172323171204295708537267260992158531966994951802944150628969872617846703903757689198953650838445057131600358994434747468647686887184720431771616443689000193298245568463538030418952464333113609421903075631807144166571049852646084865018591172333451886271057072381448017107343799113776821004950979146701592678859555260618672937898624965039323383180855225849037733554726994498736857971690896559884542767929082416726369196689147530779778266847580454813004456259096755978376789255123032819963723706563724887574141846095919686551479458572710125221764801456509832028107437040736332486579824153355227995642328790614994724889285270827006316229995204488527748508411636635413819996633686976677366751474191083951555421013004373930590983933796019363881345198212823451225972358007373178059404067121383590693195349573716384360803073733656324604897514282569822988398802120022008493980488417767665617952640391712788428137747242776671148627834050326495629939586750498411532719560009525049000753205855573180790026084540433503582185295816507203370942679707270265037981001548063663695352047236662695882415255624389092555124003552832661983056020927812710813200238227877499904147639152353670488084470929870325247191910515886407866384767260761128110015258115912167260218360890171886842915219904419885049179616378731108849557583006584496536274526694719405031019147010039444825540987566081957986320727585316750694239425456845841947139864489268206620044991359127993420641035333208161838486154994215248643413105095852427961188786196013543647540623149207291190645840543789221566268700278776503502117688077149310772801087922915869519375301796437605606277506522837382451963307518657239859736813523557800472896634423483682748810446560212732616745243200711002583129565483709236634608106519897688252895124878026468511032290597626097922602478728528827285324957130811949820350042727393560150854994177789715317071609971091021230306121990869859640920443691245293125024225471406062043543964954201517409183986545419170204533908649286394528392398654122536763135950354737997652756894411395275862351180485903192455154930226367939738131547094765593744377347177340394497093819288749115977130416435625844449258477197318661809177091669150867353119708502337145066069882874979074134503222968986094220631319437352594473155833226773638394416915509576800231803612656074199619741759377240594774594043311213186050780182525081390172036795857124426607359316269062532870606965642658265099881741313721005606175312841092432758211728514618349462672717604113956126669510363356936324874852440044675831676018473232365961731129926765966311420894475259292470593922703674265962249446668008186953577052362405765327617045574042483976597500393806216493890242113900874366508757336221599269503481103493192583144720040838766393764899941878647584945275823621587591170136445591188613890002127644246682963496972189119058541041394579225271345104324092354928036141528022332950391771122026472367375252139169560576779654150748717142233251313984803653785608150606844191862669586975871674068294932793743671950911116245545808087107196422500911832083799419212061686536802472965993758656813145484599212075914327803093204650923743932576849031043285484248366959255415443399893805990622752245154722035018562323543705188125226792284001465534775647484077356482794872603675009084708743442098592705775909651191018921024163079585048538961652403504862829952399887494957158095166458903336138658951889272207659298085086773380102267863345864327163560727139404746560284536556186675201006504839132574484765783595801152512410059719038990495410650616103242823225330733066504551051944584066024067190793383357270117918338369274722807046382961857385684223349617275878619675238048860539025453297981712780134892889019086589350577699094939017118410178099770526139979764150033385500082015196521466959627582557460535780717696625402574411612434791934810934028015983416939833146688116391436485469963081613364040695347047584244947516189304154350554641655018106445133557560299776429027872602679257353016050186186472103344851539427334649082381050471053413012261373389047696964607758104948493952413311517648466001926164887793479020766477984123541693231159035511280447114150082108458729731369916862246796832086175505549860496124984303223347167611225323893753564272868530627312968072255856330370061913307699167304379523500082588059993847316750628656323466054886406146920885972823410995914817333774840045813569103798421926591058725373364582037456669242489888313415566712548749115711516573064589314630745603786601737629713007224040411005746507442579303707523516873630462683374350583175728734052896554768868338772331396940662526352911840890442006670926553733846444321299535629035465973674041608537257819411333012333984247301737893247312469336949324459224251712773312792775250225546225613963180586531251788262521379989583595946594709132193081110754160495753843884818649798985766447769335076499319869483125849181483906572065075706654136770188346212576927247272664530188426346832357846840964929018072470310175041767817557489672688118242279174824896153176798021698217700111407837000641073459800302633873539146385737779816001614846931001791465534693750622632200576032143719615551218399451423313255618461697940479547629698444409420081377546037070326262113513364465841602851508928231651079322932506468411605442333269297767474401496073695903172197821937452324362723111429194708380653286092584904115555685983903260472869569400422246976663883386545226502389362276204081225398418723062079605875407518104073265073525002456120807218707445945271643178996613719120298776579292183829323364973572179766454929174511955623922091814058972990243351464148139569065798679376511377242145498258657597608843329978296530710114750580834878745062957485813504636766555623394302031771605619266107307310620354546532617437367850063373164424118433190532981727440568478912368173008780233787542821830340314769428194013318857820011031903371822029705454412465267518605676451375954274562196381431692820452165077247541152097971539345387500521315516229635089313859704600344450759639537061853598355477355260181344073004635734587228437050476399741858980350225678991015161180323956048081239454142088427473863755702474975802862803283413356815667439693678878264371687958979649514276758016420870046083740795829342253678753713167195756675736135318184366390820143536466060155530091107763441573095205445271914546696893801344529932309000874253880005399581355871456657655432098573010257885353872292915360887102218717209288959749860548402173362426540704885345479900437082967710682143358955180323333442318495907709314968249412679578094650721115709141120016832749459306849586571541556296595946968762363174720037796364195596278251082388696716219269641123022007313042997645689951441599461791509307996993141756069574618342991351435620675985860162024941343134437146232348634832572313629222823442644894749775060735011480311753026782726812988450441840988161747922877233576219846114396132540129028638826968931832160939254095600647024027353839234279249317024869245986632940277001548109953130797924700683280137526808280812508468352258989936310649830356794643342159541072769430157692749873519412346371227759475187124085461682291808709830476601046474576171130438372412404893792005790107719288172308313424739426168626913860660997384635005074222944549906416959053629271806025201479979832007641970083395708646001891133151285641603575253875121933013069434733516283464397121495596868163766892868383435708852751269671769012495161805602929194417118538116813244732521870302436322824235665703345748691011260586047798584532793727387735206470188291076353668920387483175665616476908984803677100249788932928438433068542364703356688208210143557874941048490108820389211518167621843413907957315104527139098887253046361067209352545206833818324222702237151583368348013080122200416537418928995667965248394964719088818204062301535050674191515558015079290435011099991043187959234804330963818921835626575446469471435018996336049792171426932715647523922748795008941494515496436603106490046514564661788290276648111538967735289150032644196525844976346660836669296925776431196862104046633469485481907491071850669109023545911832820438219770168857177762095245423400954013952124568799990068948161265725009113142334350868625174434984359134326715695043345338074144510828988551595790435955156613818181717927778390360463711360962245662733822985399482354273226563323851934616634114490626686402781671966018624580111438286448555549690589129276559189281645686893453676630972474090407828358629021068779695958199890971142067157785451425789248337685761381801416263988432590468213345720342525165035343385709261357481132794234976704856289855241451843353231826092503026870369474344520244070601638829988332721893012495325282103566311917010763945713887294391908707512004648680925179040271194022192079539653726736617357146932578006732523414915749993564101939576122782877057528085375040058484010797273175306194852280211181823440414680541723012579279648043055615784268415075671197051202225351123499530406321372493437005803917934955179554359172117721719771699832035506472848750690300482808338321728130837867843402653640825435450032584130881993895454623533120944845352319977536030045492774029834053791860518917769259946156067672048132215730779126875435491365661100706560512007792078130886373891876491974666739163341707211341492452661783066529935628277097025869125489832332690814650367029525452662293307088780771241225934024338596590989671166907203578989066426863894806950640922977837142429915707352701757227598001081346353784963394399141223313263569190681992153004471401968853258210614163893505016943219577711236144970793699700537306004799637987774477013740195313135236790653378834825230620900275625565250370171696560668458808271646554028711126284053897072302556902514708983386961764081791583015390970098595380497130073859521239541048949667421272423549965738194996519296302965255609302518586323291822474125441093784289044762383757675596789870171835619393851283447155557400858811712840525837897874911816443741752807602144786876502062724675172091642629208805627571565445689763953778917227638007444617827287620297028096769820093317155872009029503969928419470585375733381564437560563917439394451128231321076086531442001771140233590244273441183328657851430712469491112680737306496188718875049413133429882279821631585758638151790270132900464078076174351772488503104327245915396254333367817469979903353852549586769623008614307018860998907163295275135210408825068313619383978604997806013335548728705726273590631377384250446278252975445737517871314048735811502489664024841958010811534338291585412659712227424085670819814193427378097951536360842694440838400070484495055334377529399136781374012014356484709124345647511950384562980718124001693973721857145864730650128098170425700517174283031612130028743644669135584932698409356392754244359641065183360940805120871882931046717233998855387028348044513087035189825546148300950459424030815596725025700301620799837619829322068122346966223307948265968872690151380519582836547936805143513743121049572896227955530020975300278543432544237991489490847068752076883211532825450447415858198115418976762761344681631077213867086768980347255526316632974525819437263294752669745172578414194960150137420993358362535812347911220151684737048917717364335641301507470355148635506983590739620358999762883571414133096521899497023114872349117834064724789874123511353702111941801603877209407807317486577697508780999653313024343193288429807388791611541482769545846377881107580550827921274898479155631632896498103082026732089599794659425687289357833581284517642785066018832468802531788011645004487845701489971392349198747937497906452991393765627222330835024189012668547582382656431880302975452840902467030011843187347714504717899122174599370683422589933525233363390879008393057875886427640487507609439804459711488324788758372481632454013396698739434705710264998375863558950661963157562549942668790604879258215161628412029287442211823554379591989112114472678646413729752257396193575659050281576368256579878028664817276540774036323546531017287295029879782566701904750679565418125853482630046475983207188448882313572106507372807663907073220971934102477261022950614848704775171645514417991137945984029126316161795434248984295125862319471462338422139121379409378501021654000563918758690257883137375356474947256963346538274568854892612790757029806492272793809014079162025960670074925273726310061419722470645994200612018471746134450529639236237067524805338764773468144546307042053213993249119263455170350187990495314654658311918206706698778662260501181007059564369690931083753128747324020615663446902925390835236789673495770973188251370197377304708724841474655689078409963357930413690741523348859259109519395270143947507399205902822753886537238514401073945369690478437196626356392476172058885374726391353020134911598951156372365008576821472640216630608702788173072425363734697941022923341997054060655698255277227525353677285044306150261038979158027690687766721195547319106032967086119935457575397234465685035783374401257518767655270172540216198475280085462215282223601267580407690340531094397076121018690063317232032081818539467173321402254744905274244965295305581500553374049190908479511007904230850062490339650553205352504098287975511163154288459609139979567353163409884902107636294993080804872377096327307631723145146233332667408112277246467931357451432090652230718828642107946514963982644852333048353845009619746659249826603694106696320534821705882929637673287967599500079804227246838506901335340376925283531503158184832439285768210659400210270117779413743660291363780368737715430752178053990756821560425662772786746118693994788526661158974511577755070865833135519042432170339096623948382410650048687327426126865872682209971472234528362215740913470887939596248055287770571902455278852670609509976402378691590999653178866658208568965224277650887522572945935422842883502037487151586747838595190401007809250842546430746532691857463729510296854371317079947923959373836934079438762568628971693159542675838005142082885451473817963049636750208275032103301314354930277653361690436507823625282575225916373484259755827945836440143641866373825601424562621777777829116910851964583885416981021625132141387291716232018455887250961493257847960668941912741829830071249307455918132997123877261641950524190097403545406170254260569132487472546317108988598050619195956913301893084940634111833734884711793931124592332938432114859427532005460294677401663483442966292457544755981928562547598793262530582730739432358031309205079324092995339716459165267185799386456209844020443651258749177747536595321862679740202589035671851049971965169188615572670039822161809807061482774086874238803947728267783985031343992117384524763153685333250328502873001383563895545427021786757935225401001764267933727613586991626153101603546184531688748271390977357544042379024101204087684269506084620798833948553704581222939512871062945014754623362873009676859304414808274258243743274714337180993831502259732270513449341156526054774701824563078033325316818627811777998821653861248565345266978420392700479901049228850257397068004539814758520475707120997268348098976024896631746455963460726818697178502993813627606223505323735257854365287831814959348897710936704979712909988471955361696980227251049345455863635166306496716482860851903844784901807798002679505830707262365787154819237207206038661841031939998335682510351829978047132435069989069861788965658649195421948422839382263452869566661476651671599129905674078124584195431163173544962868168411872701744600772325895842014655726989189387846050582100396273406619526873986677051247509497802092191158594815488634266878845726287381452040478184463526665238331736684350351362205171422413841500672591839413748481759865440880696760877727057056627919365981010924751494276850562983019517000555470059025394057923671717402067278094601477888773779784020916029561020099810076268725425555424044955418547498267387603192581059571237435577320363812766799164504981406298102147917095659363082267410983535045771807434803931129468136536077564842205874268771401027683482039543066515947105031907661261909344576793548278474570345417580291655604956166710637312331716510280179328928215199495939613401252948720042154047767829415484816864255240496803409419360827002898767946134460427000699801060313175314947127090273970268416153096064109277055802349655593301010456263552445913306317652379714960826535679720157859372573993968307713736589750443241979399997816297061736904623736891895890101770882677106833135842124453123268237304045471358918345425065719612124420348199415263580873033468073968674728059652493165031922896276035394740735587585479262759813934581129268544780113398416555090348897907485205616010845684232427869250367232663785291270867587950044773583500931302490461796267102630689931900868474352846484888217855517708882349176294670457491375563259389300575368126565061839013822714110732632686996580160370489860281957806305819277250740205645380386311266107110550377681309566527499476546375057068005823525468733404925546827608004357257298141251567915858707745865451718602274485100545320367571723497513148016646557371521125507199842157153478355439058022719826169239838225789168932927796916484248589236335370710587042078820944911707594173516785262288601312909565211035768686413245287077489375119631264308889555240229465348341842641197170114070413928134121202138484348347338524983704802430242802361488363495343624499812853023554595216501067646248523702555372986147380603493540519592789513664331899091152378073670315404214722482139610124861260989785588149610406287718183960006346316097199623394861563201094257556749674610003975589455700540604055838205727111814596963363888357293177989243337573052229258770800445511711309357742719717871949335528306346960579403900013500011486421649638865868185266637033703195025875938974258740164317242131897364577590331103219780999242317659388442704286334547986596458332566185191052143969096176816671148471262051993011727374397632357498789714909233792383906281323753236562033417280956671275423010606635969343462770829607194916522923140763293178204316789095566545287761424731075966489664226083726144775485681630490514744720879394044484061655808474293822329264127445487593318650300745703800117927942577882051885715320847071343595073379027928566653043934594824762244304895268236259715176151359570842400441875318221572978193132762826361757571620010913366233295884051052782894463578870983874671503085271274363644757083966375391641376111284527227853585918211510303551727957732950840910150298275395702513126539381332762794640004164436892720407775169952887743958876766055609964406183311286111032051625449739703720058352980564206516005723975799947085777694290475273784830197568260432145838610749440691767764272635317028655626523033290685661486112313694846453682785215976693594585787621423684505135467361066390344774676398982978821590611484896744960161508741059646548729125886819304500347450704844452399952806703768888996074826291756349692017887649320984078435646505834711450280582393350284742489089288678573598291561631991973144254291933975514215757888165316631848418150520874829765620056595510743179874626161757889890744412650795359297087354461513255338545014279247542805560670921447359205572885050226746435565850926382649075625887257570689010865204864392649145299400479216398224630112965902606356806758707957649594680678811057706160869245130868794831317896793539847872867191623846559333226715519870823281014086588983415443389498482967747048196230211989975259865242167388416965651256130246804884863881398119780762271536318300893301646069210876151082767355614204505442564361158232411945052502025540971694989832883411196151125494855347587924570374148400557474557063303779023662856500478246008573006918510083597198303006614089840283566523356585798925114635873072111767845166707098748624945143214644983949097483600169864412577392040317722391125230828291156718615157116562109224436920411336495712313486318896572878001038958091874855876925804750175598359841563066226583523928809467515014917274899792193851528773294334353240367945759850490510751199799310650223456526001813701656795393510617657207168196796474725539628490598181686477180309981233621307603850294878209150601084409967519063422440541271756980646402345947954491647409519902436406541607919508987682705340438744843159462520208299614402450552611440657707093277251196108072888689817778259792064347682546143051802848382938490037999322136837442560981398064100909912227145153314343880546212120451600507774055526043406024741854448510375610149868427832534463150599829758416455280358660923588988819279706496669345346128189960448084961729627101458573839805790218093282523944738596973656408837498249740779866398036702763285566727886228322521226277137301575985543363427586413093954637637961754213875541221166806140527252114054105134882043784827311998706295136792099440992946472305431761330831123691889126941188185804969725734998756760717542073370078788652636230091297794718989370800365888302314955641144608701721253416098402291866231049910211413395307489128606682888660625335441228298491207596857820622702627698154221443728990932030242363990835726359323917267643029819801370816939642882932999346201033411558956955291029298737945004418761318983877568099264210865802680863592712892500555235585352805535950960163843897087218329323436213775566511411261488654221316199501749159603661355154342544220967817244423088397261101376945457488795189148129585177785674913899338860778675658584075773695062561835895201012303224165244326483509132462838303673160674928339067036382803853939888987901207312951556178742083042413141871682416350764957649401014100398824901248945983116758182392320881592910947409911189212371470529925942033936587874129797986676447375656311409102052577809094619715687027160998429422687965079503276170249019134141459920460279878680994654151225598589173896779868156189445217505826382604397235047792778353790564452253632396852265894014561131597786748661802771616111244857888830682739663478276420611800192887974730948778673939984684706350302422422435311416411346032520798401458717122821678536325315174685882305767385886026364771895070294577999065259989707816940081898278860055744669321079046276619803620622655313459417582441876499827181141850211969254783000527689469632189120083537163011667639681479947757937437933416055126917737442913756643868927738661718866191358247931624874192153299614401868023027344436363820302902553254263539351289733203261578700102677344130729637551049661569381695761289468513208887148149051985664174369238724700665563510465465757832061145659964472945055409788182403037621758309613853010016979245239255823598346960943165317159316631474488112815371317071775346700458755295047557232845128239157189354684360856670933614994112030116743634796393754160692931195137596243812011316164819208881869175023329913146505092524422862484631826497523113484541603153912303956314365845415391883829467571143354919067417178480177683180572568259183608062991945542877727521787630920168744797947616796249627158231668378240805483648891680188838432340266831681016392271207353778031346050963948805160296110854518786592164489802354957949625241508708100185905167856175326757884834351458355081558453623404831655559434076750970623374230116468743258823720646336533181854789206880779389366454567635891196888277716469861979501087333359136647308452458623640503802662740715914228843906307331460973501318131436894216403603241707021477005064533691428227107129311777169101092188931841539508656250796515804817620968660503807754455298233572089341972838876401231794547545155722128176762053324030473848848974346854226820826188599106635984790458922735843595368990467499496624244697439044135857233343034554891749056901306514315812083126057186608304177628381172554078396301784563318668206998797389210463972094931755538176947985421774923713130800542411774844354006420223667431901682811177022243635779014158814583476240599607821786691200553413654006257144536676793850697297599448522275540114771926112018477186119199999181635290878903341647181340738747705940368158112654478203054257288269382689587243103760544113485315804201032369490699057128035352543977892086723238941673522838345873189445586627132223387911784103510908833286589841984216187039853802193172622948456475320078404958181511231231193918553127652422286739721711928391963180256776551843182085665131486174176257602603963718333748310609404079875486262088264774651550352780059883515528989807623959271336089382203171707983344042951121673999886797321097335803836149694547054390740137244344243441447760900798076559570941874448759514863715114900011964460604278432543014430982321630612577994381036366011510436219853614403966345943397315675091517535199990794863405964593972465075443527669196279721850106332281229401804230098056134654301538256784333672388566941428535705373027762013227122113778233664107527518841360240686191698643365097450791956312288519392105180454476308308211649707219364569239834688277101233183778807404674706945390415508110974798387942433408186092962701720450370994310341949189603452017745221924105003688927926176464427391576519072062947386623695951447708942664188892011463229114779771730566020045607156357764218380465063499770819677892048508715169168053568668291558545725584725857853206752415449138027785569899542793910911087024800227686317656164996430094864884504878527268503248809112985446293121064987791275885158635685211517438641682670655016031063958191895448398028716498575142141136003559715545268249932295612803384755903602429923989383245486118398070854754042985759531656338470984289829175995855580115754586527438066665235925616405717656780392147342167618090666396575209314105738203646500958896708341358454694184076873363408471515439900959877508385419568079163369753886554213169174190162291787134383097262853370958128757819132170027085010273810827267578358255350941832198484615343383722049704611326243890790534712925408696206472065978332651306259896327849716715442061102881792983549518913971617302347576859287312413094294564726466834074747392063960222341694069817681251758944237051563693209279852777310546248819659183676294409511852259816088480558538171717266903957266033437450734932059692104122712524585280516760299734884896023377676383153662857557524985058788264512729622041794314861357613958846713513524752101818859709905353160865033249409748301434530423656544176163159867730186647146715975944769299535517229327719906533168507831409508793277135404884678914408383834676510263186410760760295920240736637414098811333172051713911933067769662829405454396692926622114175066062431053703191640812076207833638569215355504232325094364118033547053527201008171277918315114648225208796817747651299090342721889807766290398824856390456672667479638807926849409005073830687849355740440764316369010612759862238789420378555564737157368920172174078832040783892762865504343671760576800579539432365854948588416258206288131626232522029070064159073184635385576013365131273614935230417366251759769129329931052876402742627852707117875000672071033929206900863932872148958665495543947491351547925796341605275085492505672595376358155351013627105845013498785293691680526348088096448086513364786658316739244335859497739139022385610245821944081139686721051218627121371518673094612145402415659181458887906173164769767101109305224006724786605771220684968074132912424149208260280187638232012976617151365375305712431831456590021243706545902430279438555845699814527101768969428382222226052775705631073334533982539447446442148394725637857429451181761110509608164727286081768041134802440785735359481619896794898072541127404580750877014762558978238824823229965561028292781317079217777774221876332604269119816822377978682595370335292906190422514003328539214829851375089530782095107139767030315819234202666633726003674372997257247646128127637452392083063370895174347232306597195248967151702808172414047838211357382803798583479712598653675401317191281300786126725434434206351837824104406244466885270009916601757372100625771399228192764443425112694973315778755030498261464538916478847623135285539089738933926211740573005877875708223118387352337159589480407032039442835695567599717992008331096503942703753990563316351305542419908599274354133106516373372777998171109623960657440596109819161708494746666672647673091431555297300382104794614212412112892989359032261164257252610500178095473956811076023338713377917892952223337927803270304021323359161728479261041532611799341684723650510420051832026387124335546360105497956032076422260318410182332998251236218412188329664547102490702679384615695818560157506983329608255634971502355465975067360859809348242595550933188589771637580601658024115070257131213282141889857729526477596392411334648689370772682279057961410487396648057728023370644247836341310112865125113036481200312218624167257489136550831896941922999339787060321133610927500834959320123453346730517114409540695914460660064894645027431765337046228069456958028270621499839580589438579066135486493375741664276705005230963128728817027161358655495728167461869297307363234242749397525460394008437425820402957512778767483177383625175920312963290854069828625609730485776736126397072425661272804093272905890114148820788108397980376131041647575012286300509434445684763259717603997497164209130225728887967922108567288772483726545416776783439681865686591987052143088498211852880838441171088878764021525738290728982926061685238954445097979926146236141286739359282858613294232333788576368378204952002582397742202389647490790358457940263760040040008090436517145123647980284380952848193913374324170985794208414349595267235233463507034766064690106968326574596364707958079851294679846934754789158660267845147681367687205727833787784371315910132182850709805049455503365121622801624332745954901319610511482895914932346848116162310344266998751364850371272101758898506259073002086429624548749770091483777957987678452513304458981926470586866096545307574836930848301449856700752355902720072597353727442007021021021037625646207378863677745390026826252913822229812301356537886771220094878028188685349486286219782828554414961579760103853869539295214809912138842073774622341352907138078647463363816611415503717736890772361415767781233370848955835405948308462955616214916352968659047738437370997217979200569581235217127036407208739562171840227550798850334791699700019018447537997061618664916928977472542222585246841670027280218638971452857404458803004607307163743590393572930313418088973944405259065161090693701504384408126056071286579731104052809311417932933372165633472551130873223984047905294187495025133607471038909194842437721576264560046319888283899901877406907498192395533360609247154842990094797206793829026381333364978329185956380290541016885168501567092515360833075658177265607776029373228618986204661126295641574075085445542227570852946304299128294377735345348124546404638433351047247295433135802114913721007814109436915805335590947746615143315466505650687248641581182853877653176061264887097038103265914444101375634395260605637953262900786951003895553748773748263002466101629236663525707553965980802564559748446689467916382888751639724940081505098719181873658020397017846054824627351798703106080943050901411051822687029853224876924215145381885636589426063947057985862478663423439497287677939812978946603129753187524243386328402069878094258575448493700344816064762869157185892111186261062781798964614664304806830698486717485689300820721522000434769036565628721742214007978983586842486932986521402268136538173875207070042135032238101390812184788501857990195966571446064070857333580534638780806126959901156274473128359134651094880126527095051947035084898358251893713466485754963680412848837045000361448182034556759284888568322287693715822847661325853221445245195506028660722922824101190974546713578635928862205013704041295268873295164006385368828687423515194986010686767689484324999450744895423876611220153789119544879993236003265107993409412895359396850050311651820455391401550060359294304938301283118823169838018741654134336593414878490162375954198201054696500043608564177171426184567678523209255178676693496914338882555824077894322909263646643517928117068143887321938150435858932881973396830078815551264070900760461954379945827743923291616735418912852301836242284462190750866748854351410371198757100529706758456772025596435061821989888223117487336652371298663712976136695222801252340749456823601402443416110726749379825372298807930163232368991475289400892476842101817942855373870930580235946653367056019496070974375917922657097791085657975765807028333249487530903440408286057150533248386857719825956007695062967532650749656653408697106170332266748379742061630211588846121313697959501207954668369544302885393712079913159731909694382973947177060700702058609512937758211883018293509622429024599701757115869563593785726240200877305326188931543931441258386770104369797849884660506058424182518328873360118186949047904504681783962546908403843952441930446342468953587612614789273627229241956271934829135453213906380720282465873533534069300660632194201256598606503881822618207252470529202999415940975739568517502878960774870339092321628357495728460600912012602385374672158005456461354524116258697313399295822865620262865841128420863748667315426396885044219739619061892182722494423961114504632871473148232773162577120913513847383080228831132811258664414094638818957489183460721538294109379818329909849395898686631425556458988882937554839595049289188609068178826977122345990638912741571770431830542382169118062727560596105553785663586610806064824712760966541919339054278575798673158756695300979572725823861409564924583990396020560563110433288188228479817431704285603409040975826607132998568901310153813945546423414894197198448807192383973522718424065782937927189765028518070620285829651122981881649743046527348248107121264376133829954468945357260139426878264981964292948376932211872221698032168930539325106853886309626041742020966074216130325121560812699270055177080338002821974724504049302223361465994225282561293354588112135126002442333394187060959018221186433748959371494760980030214219097739823959023896161756706877047691379346834084541078783115495893037688552070152787496232796119452172144104522468449004357128019033689688522326838291416879352492229872854449888615252410658217423578277172250746211033599361610641392104286942065595625727162166011232267028324738829376845029965163939784804977273159668350770989910729136509058704880386512244661303427964907363984838408998444044354368313168132788243932666447231988011566657331361314820716524291049654844744524944116979324529672113198847144814513589282957072069747161305796756612679397707561939285169972091969349441989894264421468320019442444113836802030223462485847887611513801732446199037156286962661384584897058864817797357277573640555939164737677048923049410188568786512215653607714499030014739678673649476298955967090096256347024136398776164104705227480305571126625178558457881570950527136275176346655333823073963462848016396582833910518168233912767674821962602076789305547474844813697907201013420312624239223705363495984441654931072165231639779757932588595098958241291778735578567120835805898343236101850490558909724008083816905969655761081383599386958357659541715673585039081345259800175478186488094586596005070900066917962524022887440160809889097169717830231532968522848688421159292594068638216754934199177737926056843322839006095588381128552075329101575967481023698440891330395913383300402237876303555209845946012936353895239251406392209409737642721243639280839542108785761586757878894237365601485262886504587691871470230109683306626560409905101896419991111435051305232278407702575724944439333090505623056838331631361122335278411250575828531214427505920981296416670735303290254247421896000736030943133005563637230970102973545763171974858644238575723707579878019408840414754152987806837899423012753106448837201511354656294563240768971096116304699927675485113668371104672622150759702484539765529401950140511300359633280306872003954709548176991896532517546765547846114817307096577708327753105833550295284268750884130766719585446591554023316273849578250295488430477351507074520460730045570003447481971507109075766888343467803375350750644554087492829660571291158911440844552833205002550173446257982926417307645344267701708518804759480299822600832426924991869693479933123313434132671705886649163984637471102048413558053642928359032736485995948708042764494970480750032990596892078824400914105941948373771813689940689690039742965864026794089821493166554806192400677561800518155066100465327848149886941701585311368106114365008095219934540051290248972308279752443931632338381739754994272161999958067367441873940218650179581414898231022588304564071138069498478669481539382734961558332671695204687621532406269559997703720715807233041967512780747403512958030585674053794080535921754147725073708680573246240917764480004242978578788008065143548530121761304558195819681029002159014793639702285107008576852538941316647926911039568774374286473022106220491006909223361348281428632286223195265538432519879149890161662999620025081845036671553330224608568216394197139854417760123840295004152514413847166069499323058582015457959877244325737527408681147308255301166004876245133273142730152671296627156908812303097019347808978608036914615809852624343172572366129302720622145588702962962420356342587472652597359074648111882409003022528041118800155483313891785777090031098901432791149904959683205275664785470194416751360068290664080948698344533509966241306035910726893293042223462221291528216807978408087881626233410918530479271312015908842840331503902190007163750622505639153182841274733657875277067376636104255387696420027677300290505210363246101295481674694540522431930012567367560079479579670497936876707091389181757276934085874688992108874498544913299628059140473898696554374755586223877676426540855008982302075845828710807511240995595897334186269050800963427569182591470178830744874470362555440557864740389537291979369670227807832207973865839883684746812486704043762686016218054534433879494978625916486948945990054725698247144990628435196876554082113193037638394369958224695402498240845802116367454876605010323016428046529987926387306878602393054894920612917139002268937583200246863540267253801964613825910351572640459078571243327778048991007208852161173888506848379546838193315751368235908253295625427790467488532422360606022607537620347906213548961498003803737492399841203175302964009783449197947585297745871340666805143384577824570613359794934509161862449980750518256589995200141774697528617030338232267042497802708627382277462765146958723522736886437394212003532242188318236641704683783439299368276535335966376714121077130549240968696949637332437394099868773636375876630062279711173089756851627191528658221262824969624544733088018267785558497406891471728670961304476733211408880902562148230479491281756871834231213054589188859853162993499493856343970246557816890650353393346530176018171308553184386366349538514888180055260100326670306968513617008224171807007196400505248495248041775403993639894248550085923236878207706717732677375452939389964646563401044295170352646552752748354834710179686981618541042443425773306259202092385655776875149358155308712969963967752669530898132294154192811392095749957804299483342251916033400086469629498360504694804940729498891761770670535077584343329043886620002363542611863848865113751313969115663297967870883617484894501679064943181038946109374247199195988587964197890769014902385999010520404481731086790745583066386688608591174159480651430508547029886468911698147309434240109145208676971327796519616888025088640496424631470188077333086600896432779980240713657526786667202217982659545749248546943247932447650258588112110127252697900338772195502407945914142535832516950303533289313379546367113206925080250710841710347124901085989049280466709190641908517517259825346890297206850864904265953076526989964469512214239591364783651523927032930465250899899690393134775192979714067204552229810011289832017458968272314419662185385057411019004522645079543222835565847391412226319708492107917408680785607351953030748822916594603324574191633290132057538900876897403197978055876524188742107116577906494017129444456472431297189805197946316096220433450752412601056405681647456575279043924384180081524242924659464093275336630342503296595296651793239121304639367870057841377457748975429285314804398791627775500831394539514215480467153071099679038022508879602754326774423487639613630060605303879518852425209800060228514305202797285929822126042252348930160064578102051767989685379531656115821053305722931357287087400940547112078756757985607994416996651237661377231858446969023922520294820923645868577100802576379065538082183820053642550550297502107378841352449807947515940893783063818849886371692062473488416769408008150894777938817797066193736821067538448888614433135569961396603689220233179415455747118205409586265456145873917358317400493247437463132678044628311606570009288590700478541270015764648892602399730018901667293845438675475575603521925009391655930312913057438281081032484815342404925592913517380292428256172965995127383202982577820271855083597220965250280286444512195637225476606225119237064850829369255629257749573049717019382773169056653960789519410956803403792400982295833158209781526954595459318968197002365009888864854264353923131230355005871718652186084490104258525243504951010323255130079131923989046958635158748388511155515060165454964405961521610502918259735886162742975440050849914870599063718264711461019134975841961720383008366701076144201333765285047917438494665672705159441277828376247995912366345636999057712509362391426249418447408508956288019140728035759035903990190856708287218853427061422207092145251049182909032727225626948547308136485443099325483120725556693408934054902056829268806911714175247154597734411353553392481800435816689318687397917384957412182643987206389803777018212790273190606781939656209315384328590044352255120201863062872768695781051095223487229602067814471388003517045113858201444628392685155248425696849031845240893475654590418067233286300236631853393955679198869622787868208489318284312059566306024379317154376908074021033821424168677988109603374054247451013836175576962789242158409443844723200558060211425268170417519130780900057763360031638694243772330469263698264732355140450949021733101574284803297090356568007018998394331831773910737573225745094294610297615187931501963312561494496676238662565801054565633462837088345820705103447465002022861908701876229807188752426118014520843494798208215658676113039242039434755073551561540833897335902648213182384952021877357891570064196304619484815677746783068176199011169450139676341801177973329421448858025214032410147960275289505369169756396969550727579787637876216299837506875524697782274875748043021638931598306881851093545049922025266854212699224330430731806414966583925826877381236153202576413042111261970817264528711970516760409155562102782288362047474434738514227734472225145540012464801088367034812731716298427656528414495128317159953816019228386205261274239671482987631632004512090074216471217976945514100635511912518164615032469696955172814633091289101110948227925473305000598922856495528227748186146530700317562587099808254364379146308308005686234992756816928635612197405715139937389026527177526109864248500274647635159209518891160735225684387844645277549404782197331234823322678166156591572751232865615131905101696527024511258377705635334366344338373327614868645775887398979977384757177193053513102343194592098843730480291766381834490917225623470404813754140750573598473946450467250557912318918615954196295797718036654971091375308283836786216005679068857694323078567137898768441024110017978775910350764639329478324588770250767693322422652923999575159319097686129827060601169866107480422091274687948249555287219030257282519815167491639026525867480205600390111255677881539465738920552308957431666109827939750126161449984235187905805038994046587441291303432593413213135468111300585032562220990518259300062298436854675930794547834963824459539103360308830922866377204112107619857772470166396401767093793421032225852994112375688998801317052370223483652455738630695615541947319915822285802413514152650958568123300638475442379611248496092340530365154230616446257401886181821087989715655767257400675159846497242750176459941103420088679762231724120095182055356295619967189927906752934039360657413400722368032395387120946738842756367951329805633730399766600828792464306821284489231664885111606964606611988811969464293884509777672699589647951996484115670017161885795945214205679034140823902593399145072727589117218198784157906328642261433939861078349650751054654559897211238093513808128694043487871877925966786000002010323191817111000301717502331126818265030516794364545311896957070319704383915368035621593113542659468365185057246120738552400358579073950658102494568058005766024873128650122345520596179344141595538827912695829332626019722984206810138293360361610897482306414284292127669308552948473873005306666994011760992949310096308133525323738956561110475763192306863112099301675762053673369375466503544285449734867983379276322235292985179870074716379811967898499256320603840266527829340027703629119855330190937675932438290187361634477807318040117611802440880822695619609249675645454159802521538475255831353693469899777910076142584847540352036555623017693489491127284860044794970764967747473151606903599834329985654448933249334893905170104317989976702994034522715506891957171556671824221061147940231410588104025348936764758116222367273638988252331016449747202045326410731996105847478141941172075144515161520881805223805331475281484429986655786025955720355897331907789621619643258571002247940200049957195578000828329964731644138750490864646685818858803626688014327178371781107751220638656177152225442566546529503344945602922485699656627687668200978494029556783756435162452275627970225284137534967673257534830854206881498874631796746883475337457350149587899004256184026000759686161826309631916930585162658869288421869489558062817049658783362544644357773979322893261967686826845447415717142756855312511155899037163224339656865899086566367802405782662525341723653502795428152642899446743179846749933483375185813899091486310237758922801921463267088649371711435171731642888971512705540448596407153692660269803199175685446803241516176764730416273905374013132455682154609600791261788465387193931255215381771029043870004552094074838425093902028798295155175879002787092476539424128084319136146336950139327867138251334503094252826852534117984185516644177165940260931112316374205682075542827949669535294024148407259154916573211889322637851687211480667058117065128705033018606372433917751475743685244993501260076270805035498509250907634314406606355539776970622278250085131194962350691693277202474776417968681214909562179367952756872074350113252977361786648871153083077488449639653508782826047758210766314699992383758913730998480880998323195529109327359443156546136443395438453639385518972087039483496978735373958105058752532239047585706758875980392623243624511782990483360948061191917798849238554173771018381209689806506984948097556568258762312983475250104662577925697420063690081123832325028566061737039565080955622370140411804225233294769345783266570704990103116116318259106105653527268126659275137142754198085313904249446745148988672213671642405835198939400426727663751388366566138254728973082850038068556059089434195910999024307672468624830266887036201384706431891439660405682251096839385379082571857203808488475831885681853868183158620244626754033575441708949329157257696131525449866317354472065665579214820660454999244872318590763405735425040107668758278958488667469980954967855555902778520704791982182714683420381316749868674442148951601814837412649664845421774692002333616169093262020608865221222349331774209926475571104033940108453802178561696323645529270077688871263472053395182812624046558394486038752051758068324887057141865573443401042868180965787285252059499395755447465284221535028087617883669461362859999525787570610468376125468788808184015086133814294197146850414283450502725705451351278917860013831383684222862351894334531727214874005478018018467597931867638465255373098520474765167320662406097186817745495330752976708127487008177967136963927771088231221223281929987366586190806437969922827475276486722608512308810454863979831185103611162630879162750838611213863469411936452791253771487071610274578557494333656639956330438567514392981347823266983531115355486596148420002553755570218738303281037127658755945161021956886877119140434199990892026545822054469704222750287299266599059661492053642907733565835346471640660931786679230794288779720298628822927380096683867539708797341323485383631681446853778640619138355197016601813336376087591159253831912970962148954525283335939340022843893742642874221077452712420566315159805391411268244692085735479110579328485717295533599047305814056887075909632016623292997648788113081960820527900911871571745826181059962131195601353237956331548056493690972776143752507543330347914213219733843751027773695131030412116223575478930357802160012256729550715919967210681466119724552713300305265306354763500974047855700349657620637689822858868706073580025844793443145432517244861439640477858503449307529737603509599287759142846097944189279802702448614992010691429863833282142972639432642011148810354431142585349317127466357391906369585958326459050502346648358528844277640485840384126375069232028438590988417401688815888080901632566419680062780017948714417235910681417167541814092053643148678367210225508017824718994700811873771558040247484861245021632264778685232464160611314224815993677176993395528627506637636362640483442009470296736714505690819015002921112123248340075186985826295318959577559303637907784297194376720133599083008571989436251997834214442501161467863590296637432657518117290710380674159947403961059467592385158775817827599134253865782802533764285711553311350508789837793094185901053498727204081237960793520550990691047487070393453456549987343095938494483440097584017879375112741996985892333042204212217458324111752378758860212789388391228637476803531929281288948568988315532406250992148940269236508545672037392075917122948200402768663895784469758080835822624634092129368665753035299233765435772466646946931004355673597315591425062263499144447935387713611490819242128970954416109440962747482699043756528935421008095397682720541324769539054419048313205374689195181917892294120090182174313538192107690055867553281640763370095719575481031141199430397858225815443424055219476817525231655882797235446946254946029381647405315626055832100426071297646104514941585976610473432886410893365416710786073571714131876255539203160098649805913055402387439734933681968115335168514293098840949815570415380420067950644473584142685955293997610703710268647765616296110678876780614839483827784922471863735100537369531133102304846375175844818082056575059375998072916997930904908679163425788725722000393395595099462116312868709115102703549332504521290294074619331440121311281777851996467232247594795595064757848569285563330064024555504557468246639790692725750099352007149209436689320810357698408938606018145092179424879092336271580482912261908678182385079156191920482358165779898920307873788023931553291267864234357619132597461588066202838343702739872898903274257404876913089558844136800476326498491934329621246964218009987898436409348184742884426207048694881927037443155948972618636625237852538821114304916658421531537973509080332478502147869675547028666851071293933644349327184158701978643413787750128516178822245604926548191309248174109243361392696419495848061501411530008998351206941457485666585625618070969706558701946506959581796222400770463700672235684270314703716383239300845322000357999248256807113279922057946861204042964812954723655143782261468646156584486804772437499121143394202415897567190395708712563017542007058384278226359283771266050386361239657015113213398169827643720058705009878061721563649615050894978177115730947561527417746005463439255986794471322159989535943099074112738614224361757453254444361449118063547923583839621951277497576741025999777605192976384239043015385797161256362866767194908326663981586991774934211969337145579205703374337371753190783384990373820644462716111318400666303760486711129915512583776379727744240987638770736617298467853393390815921786286403227447074040477234231126445512579912334222015966097162350245542160580196537943228252356817764375334320484369088076828636292972509976614000374673128377662025738803027733485522616687197550973074127813453706008164029433279027979636329125986097242127111127265205827465576652379872954787368741308176623425172549538903530414730928919553724047699735201295661238571979709813866960780389945041911969442188635882605060275192587721666530366126285348398406334563165316809698643609448576405897160663224207601655458990619535628242953142098476803473102212538520291230282584108688431467201575987648361789833688805653693474316645804447370802270545856974469710063335805562757422655635664807099794454215805190961490188029091273884358277948300072245973769351790554903727187959901631967859956030674903210513200755766676641857367366472929988039139734902396488918614760295515874971399411515496594048952443786762405418499925084316415938142293331547017601212067203775417091013375634272716498459331849007979173516681956957982069545199261773028099271609005105485317962402995140471244303420079283111592615390136038452047004998699055103876789551155463736801652009001131214806824712085426252122353050160445085787621638034886948219193545979921254864397332277997065299389331635681826347036280193812075009825113974830635146352847817352901307450990611926672209533861816011086872425302016268261402922915405976033305058192782144133247055119456115240852939443032903683169744319271301154655580518391314877974906462884804512712433961556073561839911099897066975852085583110342446341270950310143620981084431850069579846801459338513559534747619426798914472276229273844540793106623922038117715638463888857985635014853584116681650760447231247405957976798229315367204307186505963276745735476049322830769324375517561943621096848227302418436589172851661501140800619817840724646924888879599441861802713812676808482663588245171405460982439597594080072929878752927056406180975540145535447314389926564593862717443129034532105545124908410479303272452184240887994203383302834716408758949189160405751220167812977815814413729373147072700873528860499444212770592720081433598941879090321185030433372640227388105331992929966613606467153771382393811334074393354680423399623890620701981249244531775982191741262974586727187557781869091282799884875112325595229859109949355924402951340846044502065766695021404237278004233166144646573854486246751569359815970948545915945634660630990142527724882111454938400972375615000223045476892318377923680936807688250155234830699234614187381348471272023226809070070661240034469230220358858493789708699053962595685466804386281028324499620459277340098793314977490504480396152134149931290021182902070424330791320656731603998972660391918359952476296013139731509744003918428727639172980570776753805507321226287155933999757346892110060904742967859345932362569616353209264762428600684265713591334451881277571824869539707933509234122726603101092992196070181076110027674236138042854971360926880351594703922836374501231366652883480258387281296402686604068234437288807556933351723059039188283469102725768432946055842313003907447152193828773369118343943163192240479036069007470627261443693019224784890101946915438497644210379539048890717149033220110203563057983862017188568437230983063515075673473040690575875775545881306675651632962087786596296264391598747798162268573854529412615014486113166387907612393754857100650968233850085302224156118183029449655578818653222132692007974134607861013955290433320773215960689604807480870513812363339949791736578477113492664952531601730723250743769533896664740906557418233501018213441141197240307407045225495097096508329889298963871868523009860458341299550190365795131243400847754726122541199490469363148640245711020667098897407865498487216289473200481073349168292401997248017669355658977943723789439669776677593088692433154421833924946494190171469663825155473757853382556571784439171352135217264392154240371502408524915792044541207562758249290963414224836496027802813596943434897265554846296159812439835755849201674293933818671391701458703517561114489803520003672986109781914793652532476524895094335185186724526701035023118255477472839933313732703823260903981795587551371266444745604698484079245257783325318571451145931147848038578456124863686772061401367206105354868536367974346710291079997078318045964913540808545038278493474483309439755359979590116664643015680346581133936701265036011411385582461160371567690040458196608780710002298212891061126055368929989900439071614192410652472711248094967375365635570211310830476078314987487502379053411741039401684824777056795617599615915030930405539934725477013156184783145936535534444791530357702453063047361757844817342370164536070234710355705437402273955302605195432550816333431384384949132157804642215399419436727784202695422878122666459811165641007003392387108374106377920398950841004348114320405734159658474839125175940694803242960705003189771323738521050743154117171179336291870670673104998044790982949211161116150687120144736861771245610289406113280190024715422381345717870134010962751245918736511599209686860756921421053018649310076797079228419026288858345310388639460818519432584026860996719602281019654643072059474042928262494238397544019091007101397416696361435774361558176056743951384624000871322568184546700535545167664283216269789027672897035939683633399828386241127964923598218540014450932308850967139796263531929843601755334140362316933424374107541459396462710807207184220978762329089236838191152910612982920891378971780395453633526213833671848329936479324853371440345182271074512504114385376525502520203324572543086285759383789907225250605496236802887617929393476927165920801064864032998921154503594799309408913599762623694508300150981067798313212465972986431400322955579768405409627465032958992676954200124895558983827925289417871485368718586757985673643860066851069362287697974822426249210292327392018277279741593723589673445759812017529443239070136203108240823090164350709258827785678496096841800448820306267797034455945333787644344697899306186772812433206757055033474800442874206698174440834423339123473159753000996407216013930827901073303063888747371589288786907452576428191753977296874381899622175082511642637425452706425407485864733375025370160706449584123569763686830539698648942830855975415160525400740221997831833535968853379256855672137454646054567534986026961790670949471462349422447352149080727785227888154875991638305387056443692539751591651125930484981527867692875607908603546876092195915716260909585163908713542632518017795153718909223651941713301524686434371110895210623955459659013379822832432358590505923095248732734960972535854315435658583067237692275484291799163611878587435365356830248847150106927222910753320331272988091109736272394418405282713073373127612261865840455458023713136131785722458323794262316402866170623928319544642528921148626617597834397987556879259573225432770803671915008201189851055509703197978557766373031668298794904083723534212980557375477414747423796849675509125945231054487377027083411146636690014154252476051497191000056722686351481331311787155342074292947802366430949222623884486411614883484210253018140609316104220565648385270873181526927831629194809050310422700831768919244208024597262561551962570345624285612603602898651033985725812100449424886353206170935230655936647591415851391541018465057468316168801472375036873664836272219805791828175498881552228760476040660829053864672683448948254232357364565475902402260987645152669423038319264002278325755976793219835383401896176208612962663230961758444559734793241032283939301126931703220662825502137338451795822484903809591037029015846867233392672374693923893303702346004262068824712788239000066254742360208140147603382697809279058422834929084820575500626141469243073084608850420405401522525503470631412480505455289649768194078007464483375121031692145331599291752986861560691280010741825545412025751327276440854753289200648602707789724817661989562924417104206315952128628197204175747082254871999101650721540344679465452231873611783186501419843727353339947803448397471836941035133217157203855622886764999920521292362991070212838354832125597372145388953543098487088553177967697841701857424943635145796447033653424405554458894118048997233130620396609566374861319405434670585103085298287420401353997399701110002828838465955181091648789398614938801298141290327513889595650407654744389742557776602991677818953155246815595542725119264773857736708362836604925457550031533508602571357568015893557687551052544406846370245717757812801635715047011952289248289807217684565025419513977165469656582711551679371216912463016114976346672420871090235819071757582251135437767659461158168951579704866388946680335780457982572610546706994486850058056235373187488481953139999659525071937789757164853128882258217517878997554698078406998258401175592906940906729902173433665033521214595377551118961033033873155832686177206934342605117580146825944406413688323580391441682510200064981004544742394721193198979809226227836776339079093933814153270965476279329422153062696416795840935837480069872681503526640214419427329616578289264216819609276144887393336969171692169300734359363722912248969438731560143872450975935022753056094371707354032915977323430876630728417614651661814684560348314243487388918900362506053724985348267590965403023760381847457859936715640247218680505805972189890925489530300317085203671618055014083041088401025019189718920131909824026466396914547244038616399315225229105680866396224006304396088440323060099474805642797921410877405670483018911919023588881576648448502236100075710094245293152882043216131309273699715458148755647094555386058055658563446924211530783190561739222233067821801406674189424155039545934172653024633765731771351765018662551583683416604205702345674766281090854375764540959876454325637222609881896133259780021258389233333083914087458236481969917408911204134688877459915835611098596230567171947338094236867525306959497688919179303652091974781683578407534056922745426415541984955887825595134425472926817003513914985714051977563522679470393030445572310008663493252606857415070459205098720464464093865462159326501151992043254495025860211509677604307395868016411769948336722168241177458188788373563129458139991986196433979059762026445707097511926305960909391971289077427769316027565904905597768465646748718037973589558505276788481826563043316118881087220895974015965518167737693112856536990742272333353648135058104986841586302307547437477442620552436038176292434026857422369844705579509482734494179511683792283686974427007116022667807109084346640077603458963744027944690167977947779428324563281185723838340326133755735734313479669898659403782152915565035704144240327231238991860267410653650355201341993175252509715303811852196785458039521697687873371413591642517378982429459859727309987340481099572814071765510739160395748221439901879418383664230255879130330154940003230789567132149440364804910628779118184219614068805664686436070566393924775622330909182827477328978563557276609849855874054356569336251151231174118424945021671767024772145642061223159423048484067142222229246643224399004004135000847091050952624408232771024871405667126950716377956833966593327921716166066509815222900935763398769405242863346593285517554534763983353470246301756370658237055573847445800899026708667678177906607583486093058918882711610048714820760677240441457993517762007204717131827583379966046027995787548258240089121517416212113808832673740590665894907560534391768130027819623566940917744754723046860281282802838229473072247423532981307877540518906942916027411915726966641750256393987511255592160167925914911561438131797859932529988031474624638908518686885054617138795082224979414517435399627654901854178298914709253932057534459128094192853024167885533183311278927254138409741665150232422435887819245050793195863206710059679626306098743203341928527355459322407311553851511655063487276101740621692959983155439405968590130294565051399823090849117414892224007342153336266175293854342358039949901559350884303468722154129949313183449861326876205718799077239329451106430358376698041494311397203270614023661371062661305690812832251350993546348884647804807080402591456975429038857119387075905978157838503587705541659782467800241882203672405241526475921533120748454103340715160359667961370242293465568824898329664800410556362752085166311072417280268211109206943852095354937961040040361703327645150827872390814509491689464091438302974210024302844833178236820573382357061060483378204953873201919155764387829653699989742088807257026696333203178990331224255303259253344278221080223547278921604986677665273156254431070990664570409752742612199906375167298141268512075156103925917503082839409359055944709387585530766051750272306176890123430436105245787354512101201572754009025170121957707418918584487143631076939413754973737805289807617249177482721629286323167284909821305154481486691422801239752029874025331262517126921374451209011702858133743808498766182351316496744878257373243784875886258488274459369742459221626756282772963452857664036992415702477816205679933529649319796718039439432474417157448049499148713597695085198778327690404781786560089360302059765059484207064059377542959013837836215598164827023854492999494089914180198999843717155008549985827230082738002374446230469141580793360075067713098746484830415612700502345994111029772886924800543621757393773181859759522738577090605693716769568262210062747432360593557241516493837694578486690195224944397853708310060529110228717459044388169030998493587225911147521449347512048685530757377888773098322601860736285428786712074625109732705076115055836796872993130767777308627218143165631857230591191710395817075536679963180022468860705482770043663168174560271994612173468245089802314258725450673951042553161345657095605745523537022739321439082735072723775271264063289825238514508388292844674849693738874815106154521622424059820534646349910182532615067994062100944860681278287582117521605117985118127580784659042668115203645872612057083909529308883235335483091960287066326318074492970529586312237573526300329121308124232087134790759560399060933802825243603062035877735541729915924918159109131327189056541620009986163248053873278325662594077653482762615504954778114565129374164146058144561912122141323289498316233486394728281283033958146238103079431966248896183126667624416017432989258521495352072264732377255949116109737166881223176961752164903162103397091408673639204819855460895865325473115903656248260162074843439207007309013200553662404334441812318370043640336016373121322923604352691038607647641016828577816190049969614697491535103891669451876829233670737558592200444803332865846981745187690631457447879830709385074153429831000446419358657076740589020598954603703665264922751346403800238594596876481028882820948358744679273366967444968677462977844632524022833584449194301528815176280836608537025733013829551440851735870273929232908430592952334944188076799704548082672512330484501766157123040327050236331933527792288737339389475486549666565537199772378243113111425468351147374981935695205823144951413244966007039198836596185890485541923956986395594367890633169576706896395933648963084048141703244067242100359893699714315288622198681533525659009643305566866452777108366060210629053392774121631913478309687110434542685365089879073767730808032344749368821667040331509969261582950919402107466270140807993877421669312097761865021121150531690504346145876920878328937951770195588913093328193261172511593309667831068778352469081652364763640847755152466867627465181797607243242745809953858262528423508724830396230404668369871622904460274969420634869271702866270355890458796053783828122615984015511081422589771673205336497320229886029407767393929157031538899833767737649435260521497124527855004150925849955246642428964763081088150783369166829645449083397692843222161417275012417270322596298697101526469211644473404112319085340510659312916592393682977112345828376068096559496116865497736431157964200109189813156344573959332436813663041828073114995646049752847309739895312884563144861540584232864195898058515103370212653530722327929808092470533265282217865732788846870080700886011656946722247447040292713565760713409317977757108959063474927286516831249487355319794586377571007236273013806866566470192758871499959475675158143514772394441488723426726602689308087821024740338248627115921745481898784732409815019140726449486616045800228889788417873259801611396504891684953894397228903646880899649039196290694082626004611120240089850158575048599028893758829571623982779432584750931757472847075514865006768646768787100491102478030057423162764402617874569094195100460722275127424176535813851349232527979941378570013742037262710380767540406014213110699321739674117518797071004780444109170922240051934964102582431440674615380438263763084640121156428057507576504429164375207784842432530354903681147419645141464345391956427399069291359675024908627805050601877634996884432626899048891261583341072751188950075103921027879061545127429772220768450814898221480084885658355617146016477400998411247444758223139684595161444886664554044503691995881393739367866767356689683241250120965706816154745838359177763314660821339693346246460059311365327847571056850071814716075238639591374235481747556717831216839992548659276073241773657994372861652459526790401417399718932606467097441205690005998661297838876938684640069522811547303457546239252149490206139125998343303698884094450443783151117136338532562727486455802490461935202897128841398171800927071128165866279529939680467962983228633439322847143310017665417205468954573665801327282707525238630024742678361658067557414485590742983266981538967960114057298129914232797531207839190750284388106811092556398758572830283883005391753178895747240785418721994261149197860133633529168462797415455645326260664017926589573910437157856609961027230795405692314970416076197651915769355526886546495551457324971577421893202803805734589899310139851864337859562740971833281860410604125428991965603257869574525322338109073881629653151044884933200379157300022099291677287678252491968059561654352196992840412679449333946385846877394193197512481911669256392193558524127763686495706119881363008487128308434445430658112225751583861529444685916442545885280605639176017597784531484885254613374794321980528792923175518692493857551092065556414881065681872943021558608844194529476685321656229227350102235862466671306981290730324272954081523171621227435392227527196667229965272981119155573235299018641438916183519226861972633567948165757125673413515398187013238281631246818614528772930600613916075502109913002316047925392574594483921084483364016118517113541659777296224692865378893860236597662918986549067331116339577948528740215781692045829832931445468186859041496463746043676640197055767413894721257183930705059859984854463195955538989078350180632111058910756059381338986258894186151143855291676918977049766942659629531464427619258502656581567254247292531475453094915664305907414154382268400594594337486633544767454617463497270387466116526477258659517091033704106272570316196031366822175116234242190254016710507984727313778709692489738192568532350979710948221505266293655133662368861057725663053664648273734136206909973486605410167742043676229435366859982154421614791008229329180674414214045329576981464650169505039234088852452813694567792174443019094399988589835007938391002473669041573965532889575629060322318028659642972113051923450592350436904725612080274643954385406067709726257066079068657358431509852592177821326464965454138576666881850093263727730965793822753969729529707873772471872829577086111787815821136171677728368903455335105314564624183943419870519668260645072940603224416023604405558654173235963390599221072404953673223998367691613565207063400472645125048110835716817621590010806326335345215260964472717580410293915399133345159820209725249816748231689689289618158826280428431737073367429313752095166929536221356173117304246853094027110297159824319207199443694153981860429990809811256657763077470401181783682529475561009551705276272818466498111050266379808106234616633238035621585091725881811883214982288173897563165890681667183512563528902687323315669021381861800135736386725813010837663178826043241057439187343360097514928982273650154460000435341000514912347990606021865674319221338419908510500656821396691705465305458592995290399293408857296520939110826355863415961466385641447264594559971554653961188545011888327480768358203034900698341515899507364318203219694662335741336718098230353822613171165411091452116269461498344477429577398954825868231814816213258251135994751785889554653693333675529849838503097534711349810104781951445838056163241682891267709460740036830796161763069420536965028405820841490056793085547212938192049210497353495962802035586244097643941853724057436635628802929172133076553220605443265988293388926598963488707066054253898189562065135177937824489500971822833284946641649964931263128338421920618640935386262440257339705547080592404538303024979273686191507731687825253808364335053992704076280887625691699090768890684943010445371624473172670550065658988318862066998528355075963558162909031649995033328303240748022300756167677577376109274938250881468638665455800545488499740534870443820637267045496390475397524459113114240163352919373764438448684718653122138613150734021935839460407402614819123586463886134581873078851750485699844023133815254013682750602606505384680061959053861140615885245785182270708112309857389276441622821083390458054505737819128859951445197059473885482072017594762592693170716412246966921526839334233683017795375857286528460463928350281841083360090212615691223713741696295441760271138850150424742478779827564832316177409770732522295656585619950342492150513001482782815352646103012298406158098027099009607180411188199055626765975196528966029767885506580262137551834492092121304714049848772643429192669405166886956034517679595462670429243905932283133221853997467931610444702896024860417069082260609096636258700035434229741614815346660246636095429237472343109352918079389914214506613030535221604628522726722762466213785156584937611908601204674215837580059692175237148009489014523659561444926509150949371115696832648021509614248377311839734658975045706087685735039091794900566210222185211590181238448331369512817569481761627197077795689785135008732542882060443218566253860653216966789671746047896508632222971039009862810533239984794073447225570479724626212197553892338674186417716674795955306826884082687808371984435729008773671139830013745855757560810051607256398909793999218669956283015345424824437293753224518288968682111373536789113445986904107660930049912069569132400657878650358814377452819997278920816289479437576322988423219881679662153437648137066136008198962342069208542420364896691804612516110752290024848451942846392161672829849222757593210342609211184209386131674385505553013865016716580313410323324123831009190220153081983635329934925516132333635768471275416699117861474477941999941549225645270514453779381497453840361855204016346651759043506305419009547384912646108588683874843104070286026346125148787518188820910612044072299022480574713782450838186021705645274910846182474305836060598815994786593737899960502778360347668651717440651575280685794086168294489947042363547303261520177105498055743787476621465479688144499705919116834865299866917728099969087716828627165811849171725953481926272054540076114891554813069890152096358392831694092516207827719304272860362738548836320881174099138751045310803679910073836241633143397750274143120225545889033221523683545935141563109022513384781189349512748403927555097757611567023283296812185556535221954020654683877611629958733887034918947185877985986847993741504671733842172920811999626140412239799432381394144128728333285657726771905472390228700366167982652042630778406633503134160448692106958258824527482269135820668642852902196362877790757222268526831914823897261084611473448242474740970099017295658969415707952478664597438379130345559165187556814364774632572694261115581691064653409757254279623593763779194257757847477209926358603462699563018383625570124301029100998328932523691758183326187613661346868429517270177520892571885035994810055261562234620575953153417389529778203153771943288443523721640382622599083052269186784565996551960374111050840866417505775828442214045633969494970620814980395262949250096546016149397953479354123279626281458757376870224157938936779173847926876409175793290379899976604133617760278270003812532160406704548951880259101281764454145312184950408291483493879986742976486463933852357522511003818043941344399100069374976453681074022216310552843007181105590869013981141245376796248397306487226605899079106558535869037796044762037449100423525038753221002418785890877856759556718420582947754596648577046613655896910217994960769297287304942874323585646142270532287994826982737345165071766917225480657270175327945981102150702066666468171008690723706348078481904754977437352318777611607043951141207205319781329981994183604897208773272147783087395761212956940713859180719819586848167612963674465923299944651677332900564265077346810895104691417501160365287180801545776294525245702640980849126625111455665624328176879161439563396362319866645011740056848493986945703227316744344921173973290493160975033843829119181556516472760100538516311517328611706036298866519516040850392813577230176289959849169646529977901436646522809696583629394652212614479683034439959498806972743301710343101958775399557282407661502247634577933279027877179267547414910675105575953651498132544540094596103018089366482806645644926380039976643118478200861782160019764946446208230024263124357403619730257250470346453246281042470426332146768307909885780709901887120914555546097556841103620136791253801652149685028196268573426672436651096628298890993276257340176996423643418323284937881664735653498078918873250429689411211390274704125212155024032330279366951776939321213050255286303639458190448737283919713140984736284166406726371005058785383871579510478878165690510590260280600623295219022381071439301196518844422726404409402798389491540203676360193886483614829076666977693263255772468276481195160711933737165652401136341669958317853466238895613835483315231813790256596615079859281756559377290933988781993250720598030859071399298890410357136598039713662553353530716935704249735016708850947325448727323177891761688420662530434953812865518477569681758499622655912706732587489283964640504826357143672676519430330259003634270417706751616161415663834928495369412706720551519875989547566173874181707184646561484973825526377128649372266896601488110309846349066039797517084098350782174877941260638887316195661926858352320891436873179521623921444140180833435713944196969607525095783483940970740792567331116272101327516884988555601750673369611220173069455405402265383335497307539989996574556357474288149579893704672133553402068685006125543065788076664923073270499133565506881927447638179848252923612000981682376388244883744784744942132924685376210221984907328688630802826628556391912400076882181939224682697250938747282737420602159008778895611630844104346336994061432146660336401746135683947243759638315142810393299651695679248882239361134196189864307175615284755712169303451807175744816180035940222032410139083729794745688901401456936747910732636996133608658146078214096888619547534979375946205252164784919468484851737062129979945417252851295212714123007874004753687119654209744603545964960754319997339144651602809515267721425226548184835646456626034021672125857495630957904894438940945040383616480017761389245089643747040287447601485590975450026188742700933525454586273689661805746051832561726803698277244555264502506083764222005630780670314352022058155291542827514971996552210645124300374598386913391413841158690322944412187630531046623997446623721834732719010671770155720532448070217904844022438479493031775711429192769534331331821000394337058488837948272819199411474082156852778129945445480959846625294726680758087158779010055318679762934502543097545866355357438904749636171761656872241860470320270606312778047648314131241357989938737978295798288576593293236623527229797633333462449036800649819972559764491618348843718484251865543636797896199420484137911114096556810143267870734715307271247410801502996783228834599252620508310582109636231756443577031672260239440710903538549138953286804964302607557513219035351590367011063921718190431725704446123580113627108294723956604341707307568636252793074916513900533438846997943452132468695416913899410656442981371273061426739693752200779282937587232311724006424542798357156678101406205175664992506546420154135102927538891118026711161706605329203882016182892031382306088548260296149072171290061039503041052967619396815892406518242594948500525015732728746638054476826981715467237649779689781737026601289681750473006934264596053609707401297741464541717691710212140139407500649951645698051369938123644006096511735150362912291282550594585835900759955646972228622994758235966654089247677086699120319521316651754361156196095170655227922245872910594555037471143732901076896078532684769186989222969044669149709932974781357971536608280964578170352580457530675856646322068856280770729489477647148080905389066172889266742958825003264644927384282594559157936475461841846540065209772265641938178003894261571344394351459821653119236742375578697643903312432008117159164542388471889432895760510514098520157200971309837349801541525979364071288865578758564312159933624493615684240022035261911932405977462496199676676065302041183331833796304283950495730783223249844808505665142477683317957067810505052586246145701928806404397382466638254459167413610097477104148685693535670206226729902844184090695088291481605003936695668537696769890652365107227921331598795315005310106696396142140828531247224831810062481038225784422473291028646910174354850105977074249115445802685615877650467304849239558158391117333900246719889568704533808556251380585841504014916002850703546368701182400354104999127492023768679734406408592801635871555494928677543793922112014930373155472383836489335117775806854240317372598283199499543132324221925359851715303715647934820517629921186855825001697989723808365186464544801398120029271183480480593743464262804446198319331896789606357160491206825093958711955149156735496069330361294837471227819500364693522252644030902386136739254009744297234993123407068114697705346762622403504012715206658263428128736310927883487365728768725468102607423985371386040003812596051100232133578590561992465438722473456382469059237259009401565108000778467063725133541900136946976182958215993402440481567602002066763336497157608011675679470579117393393331183902852191766894199019653113339373754658304700222806385185733223048359317643865961759589255385702940194778647696107159724743402259630041444373335161687811026310917343800705298946528803741804876776760580229508137264990718938892138243577968505613700677670582882637234007044385971813851932427672130018547266079358065076412449536280506738462594429155644453869686486214949699273284462310664439195333345502420248650475040763372480108119751580091663919657683024315287989927276621183278937352404745369895237525220983634422257460596759722468842177358341740862034373940484064223544692662135176752898062299750127066977626581758935717414149151432060327902917836855461522218204386696303170938439857714889778156963984692263659252214745428114381200203773715810872509876364673606164739696058493632037583689138261402587504855001515557875331631432182974594336170006581781300442361295635028129485287912082669080754057001603480714917569247739419606091673171900793826975125497647370332777524963812053135189983717700772267767239620448530449123540635405315707929068460115776729674582333624175858144699776944935000317454772608854561177648662140942808110251191246967718778245218751176632033703443173144015184318197594363211884870625375509831280165907622888186900454729258215261302575972846471806978703346238843680730115790114884274361978070076525677716096025293525601478489337737773625224895265077967957648050110837266937460835856098436304742994213061583597330724762388857533979764931051652796702031351173774115289310572210948304077001553260216095041460867751353412636981166024546885659685831552336465382375764476257698633952154361873142197282367344607432228818856047359093591784868262652733730276138891133174462511276303015199225105991430715998039082156895740026479247265989696231630520473301599066396531570492618177245182362188493088392633028336114084702831092004291832831456521018503278691710714704283539353923833591436576927769938446230497933833255489052473695616741782721255910766724057851430372849642068979608779822260231012249409911125292057051909551418486803245243514670346793080171316635699006360227168001305306882086730181102124462453383968946379447616066822883955347831849158999488361543659850101914159760138211968290973005025699391428843299022862373663269154669895537591982643611637469029577580389428565557871712262036855176384639299205254937059042767954495716173367247980384095209000449818127132378348831174792441430526250653978217525453009403795626205830355225979860180029709944820700678941335692887497792810656409616916653378222851269983147096465683772277322094046714901928759495461191717177824920149776190854402578415374329352214121827367814828995165655375987895409978051981971498243461075334774375732380263245395992426446623370812364763405670376733449901423454105826194739640113464737961581370465656525664942956792233970712094597315974566528573844917192686628091455176939934996953508441854547862949305708436103486327328988410376219455913665552385536565530828383712126897870983193200602270680370475074466639701180490369998349582986057902916661488024818594265452972356160271632001280586601473952656237276356421447229110037996881560880412670597198990691343680616025811928724226098468932315818983345096816188306085474817140164964372612241623952770882024292111930789588147603877301581884589885530132132510347206949662309913120020528844375506121261630414555990878253351813102524706632787642310312619960642389302489544825209434796248562553363912001399838964254395966804307236000842171239304811730905662203766004677932034638812014931897139597407726378167126166611774276991358614982669787150640117951166874793787653755368363218881006413996294325907831053072825716795257892916835511469003510450113665058309018982760944660015457122797401685639851094143948960260621794776447181000715990423333100904761609267790933201984848864347744201608419695628449310270361816098797885531170101433584050656340256279747400082236789367601963346297193348261576686577039357496635523291758175881190602995796368451096771172753663190436568222879003485683744662011248715092184240747089249779894258159702045582058184849532826496526084354887001495968179892667066239628419784153014937714102724507546497064761033919422590841154792350455559667299676805623997923113533562019006235055205251117167525152861617885567339166435303227913697391655594179865637888500201951655492592233202026277020186044436164791825398521368543239933539457217064624744627262392382500578341725553693048690209316844430756533239225518419217502093173240948966537747893223082050363354928261016878689071255104534406489852531074076097761640481330102697587970778338893518221524203455958132815227299899570486174557752487140501170233605249099946624816518911563106700860314227731578442901720374974328231613814184707540965416068209624216103695754018380644462596764630335759688637701178864525615393490820401266185785638532669483535134757173155221498261336720056695221131434569769550129535660926004967254344355359595440479407055354139801303222547138001801766582262339855704946975214155991123838579711339969537292261182967795678125165178416661751763714997878807368239749688563304523701439232765766431994543296033660759727461494543435612368641155776016194944289652083744776344003277907595906043917170230217047859301804891076131441637263513924328473689709441936885208724215562191685419836153038584385456451448245234362434032528537275355497566802124353762156915018098931298289350871948768862655924167585596759889072739730027356945571922175995537952176182484557673151338633411242470820116964929965188801899339656075476798837693102977529730123085947696765514390658979459321841628671945135064341050349675676261109988307298092201657381251325976679489204701914624371817872723125716144902350952852767678530613499193368929578439130104502780518812902078143840960504624213910119657662870194127001629001049321523075061450148172545009496492245046888653372351162812905714717867542830387223710460667491971631066737112092611427109339865747973565913203303327977105578082349968814755085171733769939192219909998942422744999675594995615251612638850119455473611507619608022766040762864695296181558248103171189434312383928236256164119572686447338026489410922491892414912105258608876489605270939020423593136534997564896262454046490141623619646198376965091960886675285885879279100231708232853871193249205044990161583593321607996108533589394558134556247421397380783186331520632029957415715536218755027507927807480468370871267664552243513895242901530672610453623308810985991285245582804949649695011744666387728892953340357101166413865314344138418776109713840651523374994553320098134344567646793467387864378893701607873765342111473221031982856188668788044479098036746743134833230301145142365747423062303664215768101816730854905455191443933749901009939699189373562856010000649250604112012689832133974782970832889770713951762343766631719228900331141324669155760515026491633567963813424261398315486570530176068696841746177564201299756487008644881655318974878768620763545656695182096582539363587250840276709157558564206549679431281261172741398515286298775259038438352765530349407944437413359751536906212494516104992934169515686770772670471018125656707914712432671152786497009704678192944360658449694010301464691145345777715519542628284283653457020212661477763260800821336297214878536994266781104485522573578634388863147831154521751752276598962265833474471395056329469744593730032499940986190605988049679210418743529022530867113674651687520931650832164228611622683035288199191152606457485733380736266514113516991377699876346241503511458535673247426759213565200013916521485345029851288579561795092589417699119380286097091111318782597999802935330781473303029121146324692527207614127391590256605612096675896720481288197597832781951760973561118233742398152555821998147502408131271609112669655050723006806128953492277257541611610348298173582895776750805574240284311149437359433569327962019775844273787729723090519410485152609878990359934946207295789166565562145593700570370309203425619012989110301973472453171345925780168938722029474331269138890978184744846261224849331358437380825087573674226334549967988474063178723073984383259622241859470037860376876360288595117747952893093978344713283503939528311729883707569849225313226803734599017251636270956183036986091369633491480747817513553694867447610709194925835347605089924532487117883420997720636356888703495799429662744777573088204684522033494380716832427679567731094659950714693525384914992046040634777811690150848299417994716147022218901147714432696370058666459887758285638948125432443431306820872574283409593088796024700314209407013964416263837384379164955755554438556039597663319255582024028365773566931652106379808298945809793917402490308454137404697979679437993182250584886128400967435305292012475170305559465834394127075806198848851627885450618131987836417168292614244516016179274670514950520372811844813197289832250410072209240416497431676713303841330975639319325236411043762063629738141970519853650743996215592413462701842281816703006539542175456645897772223287737795107690891232671434991044901856815711931063150512014241760694147393685196578287565268743642466975921856586689830591747644303380508988678762831729248846130071147570293698110092837076049017922042720765601420646137118855391856662276708362212947140527894476050743162157518489480663281604660042892701388319649391402223146380394736615209926563436045699886252044954143815623097876969562007547093720712399544820758817625247789159259965428372388264103347149889653945150436982406199601950718928049267950193630937884988754607999067401681337709416514239284386439043881534006088384871803305571219411428596049038736167382699539198406017629689908199956778640136561956321917414971710999360369040721224785084757738722403060055214666772828792527770279070383952619979103132177276912340053423170584098362789326350354275415840957678058408981332921773726003186122874640742159127201503325327467001663452852869176933807570065683364041203722955247260066691074692275483621154669649770201519881309293907017181373390490543477452335017070705889685556597653250487480172668094388362879184319814667398070239611476246384904335187473043719982475643211195716978156784025740711486179092347227982722117771591925361387755930445374623094656196398278160068995549012130171263142426095767968128051449881369411934789211961769105188599059485201689960274852744763849621398610531196452217119286277973684126557773920381084409014809788694390378556938831629434093623165546284290121915048057606600464917377576566611435350412229918738159022332238886565895582610640866895470469825464788864917414983195389303672070839809276910986458137529130351591119010547215646593469957453646284725104319809110822759581597153935828515902840101577932464833662901277676062013415823904383694026904906486676899202166967566211763172952420212146954839176169534011795307758453141214189756752912009586548739446349693412198817805280634422877321218386530603333833780773976853441634789699236870679145910574537945158363198644807896901044436933464915098795702511080544350447250417774616052412604259103873030008080416227127811525570144553659983701160284809808738961122672115492276892803120821541870560419282640245997495400324841942964693878143757853088500246274966909412221178942873872819749288641904923173117971792135988015440531321189241589512311952951333517115523343104852666072440331313284472515627206363158211550138423231230258021632095759911302566751002434616807678313129748296890011193085691111270310165735317692884259247949237416437019004948435419887118668850013220723694572922053729371871423812279501224263037170297010224408458201726546126108280138667965200348904635711240777127531490702204815171872561855524099968535148517178936401927830944075308486693328270037687536638621567389706606544677730618491208166097608342309471316140348300356012725046409623572812486095974276239459193493162678273182483890459520956048128884429440743871677993523123464644510233679080378148151304817379915766699952123838850088438204911388222605157308818009465636653212655437125447886376732193079274890346168126082797962227131047443000542182282564253444249812773664116472377686188298237748849752145834567572476665149659974904976635803478822117491559149165133296638397181698661565711880234618343140861406964501232341686322930087437705084770118653297663209121922042840423110932733418071485082759084528339720862523708243763873997886205832395055265802861143648613272414194776476351686409967207039360919069252145030352445502406658242390595374431029030641622511077255236021748270204684317846391151178213898612088921252071417786303068222418061925940571815676156233367366421893418336780836177938346718621591100569806003189410806487532971235963738195127966873820526421372134095478045498000265922112310352974174514859995947463306738756879494589214349951851038733098848033338460790686972638128149350617824733484295157709827472555446262840545957320601262541603735139764225333607894798783741536333960338685309020904265586761782624268034800859586821897913753261419409578358709419196554045379137994535625291500107020443129960918342995725359506339220636893386131679967688318703440569387788634699477550117907554016035247809033972271898528646165179178509444806410730831372113208208597446944522395881558655963355294447156642378890500880774416854096707384177003481007132033489716145593707226762406860003514255861512335397606254343997676492029378196117903106352072590254336852187132603202308224647877593696861855583427704451977029411354657670404198949726796418835983496615156210729886415874449864538995323568585461408960137441225079982244749321075418885462133867947422072114328490659630312819553244776250847820742769906575661597801075303013271801563159370528018728516833003944203494581046511137174589373187514478586858510271068859408637500127120728574777054763498908482528303595261185421996578149396957928767765823121587538604686997470897343316616102082671958535706639110283777828061263357338132564508686115538370512145359905227645583189344738997688460036335798505252923051585006544995986996175463878040492291870334179306693563735629009895893812325445192312687624107983457460165294789937789383011120387851949052616658788047337340585546747463135523701605016000416979202087535961862710020309848584366355479904818421663690582407684965984939701364208289479837293674267802580116600739827394998250016856228743136050796790236984084557655359817497574035598166290289923207972975732102569494924626834389968692933299134804998418183646608115024481596888566461747137025082667857233929106615746958861511515731415949102025675346598378136210354846275785704785859021685248104656796525692205879330228794506791015630054273926874672797336497606874257053057044055472898536987636130822914887282533771270575066215530043946124095823516406398272205741509819903920527047138820118744579340002074438979963738303510930415926595530156609905180228073379147652810186722794422188370413465777108958334163441733710070928780337771440310182399395906555904552810865701590843579285714698313404735194039869808274170233136644673706289716291683891096089938774817958879215319291716556811309345587486890401436989374700311326418254167453589560780918263115295918120638038740814885127988802032235285626101679789136815595040986742128819453128854841967793817403896253739482447677828066652122397583139081174900764581853478392291472587156819075669728811252203444760940865886305161358670516419051989139303457817595625628331908215930636940819936085697385817873390682913562962881841088740518047554791085789055185441755795978174623535206580365378052970835082081492605514502721179024871676490858019776420904330360393282134371751586012174267088810659200490600011016341455078084596950993304387313553270622867813861968813928080987291763126835445414506482123790592059123382016851399026647358508845689521939018585239031457710794841792337153975538023882930336512308978236787561946580391194185732187075203197771523465340202528334901110160272126429544968418613192799946167137823421709694977243770320391565075423686358349648793898703532036417017316489603118677843646157565315421942195830237990767836330827022855349836028211253952976939787256477090353608145322023319114966342064454753789378327238691287997180559241729039394270067343487074979699571587169168728516696724072785009502374455758681382202600459358400825624132196312062236509948100803098315304684362310996627165331418342067837373763600277563403988755670445957616717320565577903662341575640690488419959030898657986149971023722529604173463737937942559685974369023018085634550134928660897739175269494284248049675960286979110279625979970243788306071031490859608523582468856749331880851810238576268230125500490258405980919033601695385518486159790972116494029272463123459096714345814140386949328475956549371939516497856540171334136093706977245197328157911184187103942777749901342245192326624995087726507395955883079579818047920406441044759607549414715925796000471366184101476765625886958758997640984419914176457975520873035743746914440950148830153205387499716064718491964662722069982907420135196077179185964138182143321711762561189152599900182680800578662742261274073772757112194271610511311049712888418996168877662417018120758250801603839668603576838549782616422312255686576996928749617997238578569348611200425151899427396926829823448843255500636798652259233246258674545043390592605101099414725387977839606821938482592265436480132574531172387746344808927025110049908739523828633139149972017099273164769863506948724918917347715549629636703599345199317890143587008145879246132637944629378209472225561529730904901369858377449976788447548938469732604337378598527030430289301318427550633335479047357251616992544140357340774440412453425225332304096881164471134481280382641367827114071844423604805120590897226929835411362246318165643431570882371692085692051720209984698827210791725143147178610368796116128941800879039380548026208135496971955326993085556795555165972172186451052759260019610358670866358341271932507227511570455461942213144338464954671892929009294265542096481618646192076873185993649880417695101626981304063611818618274336918236947449719112706178070531595532124405682802016325232262252986489847701931170253807692219961793313957871943346039843613284588829271491333244163593279043128476740420199321752666173761562938330896738531088380847883665074718566501248616079683133623789402216193135287606591409824108326460654394323454861072343993631514153967287262985384505352855387191180117414727668482168693709947502607929860745045128231399344771756374081374217125648336658898680615856834609162305143497408952868342690039268198506466973627723978246856584940676998052470770495432625877546534655148017700337068454258416132426194798116566703273022116909477281498452982194255958485786029457799485968540852660814150049079667964607174097462557626647352345789947421400974273862765202469480285663028026373118283098422386068487719175681791886236646967374312784368478193828811982946907954060857353196365972685831210353111617041877586125404422174599220016476520286742752263391512161263441892871371642178775360880775407612118924930149082250587760622133704139903187009057031548120774645348658859847369205552317003430636878693590537694297755642714759470334390923527255013297874534598569722242970788926126853652992152275452914066705683222844351449100053956617935139200428937470528290101334371346301400818674627922394984993375125982155219764252657400405579343132860240239636584128950253486866463025251780082218101949950603822933139321957741359282876503083878316249756353142464910062090854607647492345201551736405583269192981183648189683371870663048622842983525571959771698257111045129687090915176843988058692786676643304732178990723862354675235173824080228126216591957314110850687937042807082880800901615342637387206872569233610599322630686001750295711608687666406372626643125001346713421071613244255339980623565856311269551187412881421476266316186925823350558289240056301988845238235660964956678320507702384609499737619914248918819158674661078852093847664517983287434251638846645304683119867352610967451024180430591037248204200712117290753788859671078200317394197137444825630815401172039996837025503219924413783892132113556949230835234245347446405574076197123407648869578791444924334490608253210286442484274123523803569601984251751428907861125003983857872167113592190359256600431122273702912826560193342226894023996950399715441239924309591860597273276898753914596661212872961651130196087985020446792083865607680028075696922828202147394689466520870385216766321132134007618767267389029183262501003259934294272477201244257670584185182921343961619288704532061752160265580085481178073832440667822584296211678589632892863346012537254657312791579475393404003946483093205234864600677979857618690337583418159404478987676256951868385351954187962411070446162457913118504901452581572780246160765836177824071749819208121831147401636464612109973339649445865922776801894561661823767197977624214360903266099083717331740762343305628752734544365477321733295941027711430694543427996535526978631301177480773654285564399579719680269499037700516815292928397593842858328288416516474788434445562886492563097718957526453071211344945299347382578364483997130295877065108529261462831598270320906021531975498514968170249035468310591627215055605322414175293514626011943357129832125037482227766343785066403981884703404960782935344070167815877492471474331826590844645990592730968110645387439445600780134438183880332362320109158030512793867876081921994861621190385314442313108969007050542218816116480440000102695662615666697182167909816262315949155691543609071587397437562357440152613761701136847945038906613379306675595591564218018648805713936552764796180963829740165425051708264997149660895548791198979557504710118436585157273546055662667413784892152512158824097486538237882703094361140228120379181467641333742499225157968846915148816629045022758300435949734179663640419860132407749726073111846414432595850593511756802518149908807003822580732044210421871954329827929257270506947223954523081608238368685677267839677025756158928081706191273290053880112267735681751705098466380153232776526520410403176033088035699473668757542401753719228298056100233455840797898547109984255434265463599558955725660865484976747349507003511895637071617124153301612027260448248982546366018407655539646465007322197924794050704524192056179307616838057368384525736121262581455236440071579031542942205954421019870302647793529960434987363467205590327893481032827320762930318537851600856144122754142725995094654851216772135650509036363082885162160256432565459042517833653255776782286707828477597495163935532404185200008166886554262530010611822253860561788797424406194129370761816350903317653687676877533792542208877583240622709074751419488795477698389468438616660948988354230563430627951435519366905046516883767455097967264858615542933237947626577997098317393276495761244321293594946849892406262985507614974267848475415604538245033158689581782402920632067126859117531484636693965524674773532195873195243221067355610722590004559275238535580009816544317517184119156903057373213439307000559433972632547849071550359619853221423538147284510225522336827234387916782511460864384928519508966742974775227545055856797241335675443310324845178193170399159422370167104154452712117679008863288952814037004335979118371467132237150429830809816825903907028123817599810689353965232466107322054776461196580531997188690232429729806701999307182595810005018322203491953760780187831524379171339997295992819858547403979205419412867887912721335904408811153122860493937201229623825028973055773796802210900268919441904897696598254327011028970095565933179674589329574001492609995298300317943958886372866578688813903759463575696940592622773810447514153209438275715486212820003842801036713099451235234946772005219958743458120798139239818799727042217116054701614024218315680984317900486317268309615804351367029606924301020158914438748989154352403781780825711393314109974487827605558271320203103179350414922426079771265101948828043623051304212579522968985730308672163841561594643637845748682896445353365370829024230720416714778922583574006803063662257564317716557494578788264979984016842703095922654208229023941931121737576916450467517623927858823239836205814838158269205598377294553516209781391336338919891161295445869119022888694919539023296029379911117446236725239047005909396138335345826374484113590411225236112492726942159503420304570181086609149417093531858564297030294518293621374399440913500142987125435201932826092714535214972418162091578010375748116238899390614824411482833364756602136436908345131923414630508870510210042299581409542307536696989760201120202661121169697807759358654930527925576087033961569302715143814590501303100644302572771200826493939693895007077301842501046505313535258393572789197432360164346437277610193007897536840904962658079391070554099187834040745216542227922325607392570972092798494202771874442271289529482341388284901759344940533326540293507921890595906951632391894180175594078515158232969982495131261085561996276971499928511804535893378075917624600235339106074031088547215148533921249952964630708822459443362405558331489873850779269284615418072458054343848925775277842055516589977788001776118738572552882135520619948415971839741596107791852854519519362795344911333975360618513694865691435976617200571538784529451522950653701275040289773656502663188129068550759021279266027552276238366160498962146711698224252414090919446744186372114113762623043231959755247312285874035241635492660076844286334388292137617228720008153859254486083248530848483435702134007475409436121960177568279543851924514199554437831824802951221936625868161817774550386048469300552497753763791210888178593758485757983221418828309023266783354963716016669210483120599532801053272411383766392080358650845986510059635179570437777383076965656158408174723868854501162846509068470354039224153767664061456865890954144127139530407930766648789046088060154234054192959477961699484659596044300000442382051096314057996932795929424514238788728907379863478408337647890639671685591020646926909886362717137138136522816083242814653198010289861504505624737195282814128142975539427240618941485688128285617163454506351879703171625066769831193440471446223554806269840224516831601711699562578434623984464370412157291419658053904945242175825941521610078666184813240256105860343497406604759776926842351906802472333494689076268837013110500913458377250168723299785389858916951207503067067604897889370267988876897295973353409969227537860489674379189979565219980639864420921420994721715411058932852780081575673234009091753908843645825166501667237379796478743415942873459092700735762225686023737388241789478830486606887440035325638214067640416696196139407594909018458047888055055280681337152672442978954402257701557603952947545831606276544567465622044501770907577866154273771122264917099661183308756994085138086433397717284652970210411995789299001038054445756405155186574482521962212500072434258919496451328439466275340429588954722281091629848630657009377316003264916730258972454840159104598699630774950294494700308881147516155091856795977301471825710429672777089997958896233501419142400525057359051688371549687353599495493801102865201247920354167678031152104198235189631089399446962960002900208259905305208398667534515691211362981880575093501386422837592441069613064047924333141749385481553136843174806028991724057817360694209129279540696629334136374757637568468306235315711908523740274136154721171638127967885317234772518063665214143570068089856398197478899115151652056632519206875715108576314435379189486302141528779808999709672555898975530899723094816825428119304434295141311634819806349196744096573631455438591370065001568405046241065479632550473359457983897139222027915701008528739161459662693741686805807710491893797070215997962243148727714437655871167071916412141683374206814374270077558149262169352117441669338986813429488378678069409393862979761003695676950991565031543995639265020096642902959961051965117691536558741923133417602172389132602663616167138538721192262710747583898875089862367504853631900565774803254110095768060942911336748102511704195290690921567208498452673470018765902893414909017161842298955289882477524437587895729474304184381914448989387287519909830247105002500886835489992847888382649545057014961369477486228358635562746045942681343114803716989472482335252191146719808863152005248693924709109833584665669548612359649382822631674943413388240120319202174869192430763652291553783493835565263332888947371869002188485316577937592403506624864676570960588717705920292323016400841665416491052872220114702724999387881109214184358601318193310061933700521156216527535918847908724267418736926879875554780646184610730557074207390467894866480198144364653618152981921806341700136917770988730464320600715537051418552761898116548093308413595834276299459657204971672653564346418677908203682124716969296679353277685688621309921967142541651591330871893883056020086226077619051237582092439511321752015412312081249953951985131278302177983267422198232095921248514380243525945633467988576358733391814170858620127587999394775216873731754588984364502386630912903761989020571977467803555084610969548208406407469862491113555075092093567152421087455780538639654812969310333574112900873138096215937796903204363715337381822968593352041269486390410796729229975583334439722105304055788724805087689703947751408584502832983341489349378909862741571348123206772487335227326801681467657712971105815135659351159618393170380278441654822415305190321236534372124081334417189539617636927416458047868111139964053443189467944361743436889342311253434018127056908110730422145218820764624842903242406440152746724852537033438681725997261825412144927729372633279349742700671301675958600129205821719044013158927173976570525832151092603420292490349725500039475062897951170804851906729550191330301020757465909309718303046249222396926379761941624665807889521560082833546472798375960162217289825615455130481834437736091228351154359494614410255355807584102516582013109106476855001996742796821756390669272896067632417449549509425980051858895956179708999971597751260333550166322661180156833805302913984119893365394122241445418247681154383606416077791287437405443377544254035492037811387396470926960491288414059487947725595157992806904541642087276260449908177122124499657440904058235361437651602069910246515253793462881228740531398639882603203525792065622901565871457188031945120332217438350195852774309003511129024340646362791830337974490541096875904096276697540916251918626600004808144678340561667048612191969297869220259090839350077463619361186670400026192067232037165297962453462532943218524052546719468245127351482802873614957716838909594476494387684464978242610592986107740091911549539047125388631791097252750258653110248925393005286840520615839495852647706308960739343173867004213660969795491995155542951641646188371084829209542561305064441913220068140831506158344782526709873236979944198968001714525444060925786864171103039066479297608378740246241248112736190682248769104685122906819269131914817600644129026657973992754314685802636186053075257780619331091323187539137352442786657030535960829076060606755827868193137720053089672007558793635350189309519496392278839067686723937047509194324966850913822971264429480674772039798962013926794153851489962753847319226179331015394672549038724917533839378091562057454638310239071096466317393664218253301672433672321553493123259995983920208832077245734676417804928634164128201213264003658447215233094520984861219684780186940833137264785458657823292549993189892977492401976242109144102723781214432022944392801133698926804073754151305386895184513149832039973195708613432969609464908444807761286955688917508657672393952044411342755905804663500180770998708607967237973958397664520146806343517687816791524347273616248225339814066075447181613673840997715220892600140508875200423217314766428291097382797196747900205760383249294717607596478511895092652211662887945782007948143453302562809761980221058570234791158165860546740988598855442074803630435832304683415340540092497080772766715411354660269618183817770573095081875731920041701575135029560861610739598216905145788462601737485667062346452159554075372367282874381448794612674660808710406216465936152041222043390723910574571812713509327966920405388837331728098513578827905860608043086030569674905587170340726762634736241684563389729555409156035378292935574561137440110440103131936837302747152488402214133072791646651680888509898268604130861407103254897948589038502408016903831058723352279456764797858632555440727134625677175109964953137863422535149594244021888042044998330314975436055557777110637764962599297325256475460530849218393691402998106774394575161353071472365128744882616438055423102292768842328163744461389372831639093770945800799413968040286622137819620777792738361911621613276594241147446840055623090741410789316581842077577306663106131219155980443904389728761960874123382746318723249461158918094025759026349653765850978758050241782775693726109901245965440059306160557086091020861436533294669502325386386624540266718448920648783791356841597037728781044787127044928404123322288857341857794171647674554830592942444389250370729386245910836395033362505469952780097354879937072500812560555060867183002628674651532338695214473074491216278156146948362947685218316310684116815846981449383494097050164129296188775367191790221426167988254136022523981563401288307367238129798985544722846467457848767683785622128075331808218211784413081077399770795800138972703493562428174565894365020210302621008876862828337914653258104059080769543421672728489918265403067191396478374542614500726339478169076890053035896105045997038168590453474223873353395097111660423637789538017276211388597890403785515007760546880770678833975648200555514172385925547657169620063664595658692298596153945242844525769838885570954134246976840548775914109008509063661035054082216899334437908700370205998695305797017633209649292772407868167434802265323302659012740987239124249606050414823162052748219192082157851335337752014844390758518718921856193812498730725000248431696520724146905674292059896964677099690043984651561674258752330836171340044936881264473688694550042382225883512924742748312519521601654901968439852252310264703771862174388485627096871211245478211639210797837984354800632478979326949471708597453607030191179192877395621521457888719360046953108952659711308933536325350631810277696310538816647299546039721380441015455580654771064312087205471688295841634597572149977037635556704436036316852255394337576823931298392449329340454005837085503748433930162172568147403137557395323374064248158942654543249723778543911308178532857025463686020140057135995859543300277527462731142406169008405739278507872147037821820219568319118929922760110032344947639221873699731956609357438558668549051957935965448059691827584041781265826227684937717016720977596224231677829881457810869185266933805947443896759950201695175129806920979436859773630112534492021480661433518989916543255511052110543302709731104935895719712374712042854799387018147749457288526402901030825477003129710562599134167226448633779470821630285151233749059795706682053137576711795655863695060517857240429274781361887638620030174744017930087578120541965045948159515868161500913775188991445784712367755114064918476477457759701667124962497758070105852034058996277207874695586564433716997870932977013546665769821922086888467657112584495735764792233497468515264391232363249300006192697011594887267668008399757628192077725605600967592412834137140971855413593649066573055126107888121467871001491807354271798309530205594554797281383816485249150544964003059061981048417817292620633636074183760616381059523061978017839266120954651034868715483043212496410120329552809706008742192525993234143021920412689703988333072322234645923870079318974248322480472485593150060777063646476818843220441692887895106486799709463590436568377816196483907960397152452619135295113864114674738533403549692314560685542881453707465367745113758791339832179178222160991296576090961315566108706252931702342733385689546446915466154882584033588202046772522773688990549631080158431566599881691927388178675512065921665855137988861686273176997052861610339216923474186102806165132095271565763206763108595606391014757054358208647100636306892278980688808864731245953590306395240948371879155381688385690329539080400238712538323700544875723986171035647919557609803530325104782717537810533829455935119591672818628868610998613303058319919889065177467721227590102535045254265688368265671206799623565985558776531232618047897461079487382008054452731299403032167563492440827422513140856224444906897338184832415477554363828226818534340527242356755701443036929444348765053159868138955273552461836697887647438229268134969495162438842133187935903515583207100668243551352586089023476190121617668785756746765939299913368512470674596871815572846804446648360731066107905143969104999486159482287058396166455191881056738735390605912220552513344956371611943328114317739102474101252660006340866008392008918767633577013959326758523214142982303764705285729154847957190582701970438810273341536973286672394088962114457982215112927265511912917829949072173780636573864563172184142760373381712576015523933020772940401076448322318168481253404962823384260373653805424396224574644658813038619720107931797128490908636190536864128200055934841081661302374142738494406065199537920173336219107530901093026895179142232533673311366009232133781620227577517865758636517329227141870824313242340665326484579522523425751744978163776408224870851485987505582526935474098353403127536177676249766430955474383490015485668457064685931751077440850458477148128978084386749653452960822126998061416381706128170081967912045543009641284113988003992458177751828852305138382106613142384731682215734172553414818546523983632493697920811275870972247579913599312518446630194894936376721442311858549134068662123684228004618807555617222782017644396139993304709090407008003656666891369600737693789008704273166800424209710288058236251454842013909632365033520317325932132445510522213821287995270700194330150422759520771446606178458367221844614443683541019441840977220158795090095036661638417223435259422134743123759261535474166481649219925533408298853432389345472190469177871392227360224285981374121832302071891734141431894612516673144894317495067594566639035878368449540994509668139902867928289496661188604076693505810195699563569485350188846296639755616309196718588473853790058440149211586124444848113525288199181517399888950815140602406716854579520141689586217426061960818272392605127166016449377643420694371009318771650618780246394050851711512472577290921688112106849226068034432741854024112895360689191435416134115210658870814252613561809568300318821177413871379356648593209142520117306163226225721858924341970613776994214765517696199370993506505412347592507557255513138345656841109631166740695168968011848371079611704932237496449933343061995577801752865734773779207986577966717246617573065888243641621573280585435771936269125530966889984453518893693855531884000290077476193062144417389159916406380714683880595126381669130016192513763232597861209476133723077173180928409400103116186585746245316184307666594645692263812727964628561318014269233982286253951788942247034461300100937213770064961619317600251680385870444047772590545121890416405994049461702895316255252053011727321820759641745794201576559598101629603495616091274815589939110849108519032179985580976803385254943148214047717175795823322815836401666968171253959031426678468366168264008853017194369412706391124193489867752093046943236505840219712697794575471390831090034370209631118102791578764333985145297763336796982080254723443060974910590159604538627760529364526709238937572604019136823526894487425224357671100479760894650871944220736311189593218557884455561290428145584636658595980220739352023374496944393343209826293133932952624002337989874630408620294661146986983549183289222607800707747261304700948403980848179644074544869065130419748232326673854663051785859387321994073748823894138234382622801850935906273092814135191418447358625557257107578551004471616051747137219687036851470098565992081888810761750974170481217040730630763947828204074801281603821052108362546933035935056430667036520547310904596898239204284388589888063635097132010613964400959821916089519545351786285886308070780869278163135750465669764287175440514917175346899151124339874223321137548013061744987092650986539523429444281147988608142612601735290486196063355680170224549263445267374510236709396277059087294890925524232364236871323966658937441397531315663582744223662913911268058869338424672783604662079945996982248736918313115343965650364351149720840828139069766018551442809444491914236563547495185611364119677271388053552313127943725616571027000105720922168339365159585167476638253851976308987752021860102601760582164752368524585806615550333548089271527099304003022015971211450142078518558623992164857901489599760021051701864643074239965292064003801633878698897104709940661377494184725855350167337837051515916042069474413692355957747565581144332861370014923036764545620846058911440482880945201073827793044124125495774061060720165344105047562016831099953805376343004373906605468988253265340924495613287957843660995630279644055999070868125363967972991859721627741772929529797346888096507655639250606225863342572897316192360312977615073867270571303982502947046404929449169234814176416631461560863562009929127100044722061572813767611349655165277706416567980295960996147861145418777134623953182714566528478948633938950684560754336857379072126283343825003059449775280544934095793001620806328281921655653592161912667330454284696146767070423564168809447620228763282205072183596289021745109471765173351661102889063134933747286389373963684630497533118339109112682609241527362152548518086551840055761547839670483231874183270853117702216019486901327786534902424341242481609516112286837731368404660868400600020075448584997064729673416122673040099837835261134921673877333690051459847108959441604810611416404014589598022600246055134138362837662946324027137717994069737710770320583592507436315303634424664878130951975235889917412060929143181249756117446951595363673591417721918375534478106620267619610790464015926531859043951309648543052172243452253741145292502727733269242843105173886590055339857853594795168398072708196177381309518449604954416228299564929416659674618659601861795444419699021135389680820866009323238397826684337215558648795331014423590525813665437095051149810911098790858726624899860557989647232455175472393096248217878762767844918240028344290085197824401548689256238035577322702418483268184765204153360190243289075386719133305902641233734761904549626188312737770290888270688575228942102483143202305024248313913637808879392632049321320851234488196231064569811388446024061287989990052025932683188794433717324336904268125849889135633357244613603706397114272818246795724268851195775610389830433476923392583309758843062315392386682551787014343019775989288610121697801901955722374852461837280253046969357344779533220152893401429747971131290878165422372173541050162505050451903707815994678305849129944753581060614872684540380837544049473951743844614226296120044950381551739364319368726578543702745393608874826273760759486461834867303293987387415128703151624663692539235007141501717997203458370231848921494103946573218006328423990874273809267233912487853919176404018911274480025651049039975865781554503934984723149345896784995867932263449668398148762170416843260532628393785970566652046000389093046589722594702342687874731401947278615228451779935758939817750627460701484908495668801807868570461877203833814440924509156858276790952697355984212960691725297656498537548981366903397707103446793412142934717159725790314667343464699670830077922225049044281443531474472287858376114235267213777745586976036129484512324303482110110250638117303705015623104165882578666255704115428185092931991684437888208677550752681901395553190989414868627775691195095477037303608142124816444353084086867504819889032302627309801282221182934024922297485857624199429093681985698065143487826649038001216686382959348045982393446291007507051383915049676775445003834278415467406108691828452202744869797416188760502798660542026167996768947616963596663667306728520593950299978333930264030247148413843947711443723464434618374822799962517100342031294993673654799521451897150689975556171190368653081544208656013234209583136054055499363598539235508984861607558572187726183742280162163713287266275498202924984570000526710154005059340475489120149348475839121482779053157318423198568332195146375400036170034813690179007911514601420429956586091555582568593202504175387477952272722813529596432747509356906047597785380381189947355611981701629912852177425876656914807045721072168976841239444160347253049923315727971990840058429359197671318383981505670643326748326531383584218267201573023523635123088256711857422462905893973696137751967350961639206980669528639104771209394287342563715753498998752998487549560818796221957083053010609762525966917345904386413612697873038691095170781601374718054485474670686281343512621371268943210691596882094856628931628811376181731081937005869583750801329144429870744299958331477977869864093267928242036975308568809752613052319606443927383466790967169362753571831579759556400255161615618731351322799877315889168235256899121425521908310158170016145736855523929114714363097702446010981704928154128692497134453882565635951196051846535713388578016581565390025557109741237050073912609117375091592869762975191558891787485477811856778965620674043965531432905864169527250392640926312181751767469666790685094959471899289549160463949971949552747400805828114639728005824513995583491603202747673878320234986555264729835592229267924326945782395260356053177591455157790094242860438715993795048852420759891821612906955322970968761105102374670295567727556972388084752970354936206718750576540481039139897530582254315973181259709625037467330793607352383095632770896868157479071122136335185555138538730540155524009224971447505969938937573776762853196787208247097309195787668331427317913313519250001315381861630221940721604583894904849027409473852916293899960381425959978277952318369824338096729924010161863666328612849667710816249275965911924195879608641464169287643529756725948871906557726726112425205693408055886813126410642174010084082137278718832055543168026210699639129674860205682531421737789962694923690503094164141854326640946883750220719806921580302953524940934806157289258772519350640533188099160718980411151434532506049801553629132354937414797173823930595939238870684333494975240793241418970622053752553591885426042415475649020724202036926797997171244455698438143284022494439918895144929746598565939230259472982249578060093617050550493814986962684193142047963093135555409107637010674749905032517217601725435667055502658789457474605146275271939797590503753980021096868884649737062300611276663123983417448130509520187863287587179243985979172187455195165827796927040616185413283973013354861949182471661928197223890562399677252477928095117892290781824645347465216188257405498561049638790007825836707167913970536424241120713272780757828817294001712908500892277963842770135553972749881333129216319474243223129466141169556453807831757953723607202141084043606629420226148083178790555375547750264687702752159580569651595416920084659031219056395277666891926762132321796909955635733849654330862596372200753665323984543803159267086773165982707598584326194722073909299363384511661223687614751041525294998289587817101757954350635247910082824620931246381184759168788079901096047225972548176770967981655912415936405292222974816179973116725412840813524381997835636006096994619504403472448084792409569485796101991530143440484352722683541762819706363158388635763644165628813657222880363565237567461019530582251127320174688535368647999316852423182149067256638367598759768340481963769899659233370322217061567913770465833846467559556763056849896055805247415339941816241807415108478572227473195705316774493935298635193002137314062815027552946944061816669809906947243094059363782865429932308764783456072781877956012819850219744711093069853344904971069095892365028368507115566647143507988569885454447054593048315494307550429764047735000600782895198739626663176522374563282875781070504705305860727910872713304776291170731204231646343533593187096982509156843288440836068560842322282756857864545672879593090753313583101174080396587546822673642518727406583139180017160258715538463918329073025195072777577618751892244914551257965513057106353164608183616583766353933136719219719141376904475637128052107278507061422674359396891373119650540512431682014978467391262080608687552537047232830931917317096069531337414043450009061960580814474708913964048200920407623816595423745928061376397361319290952792024951648526092023653007478363337249450201733292926396760554943529438315466588769109267031087599372907486875496487311425076202334645284924799533198253585167797736797301172321070059170031841979026427520918935247297397473497582472492213977739379139418013390366705604972448486963317511612481632969480364989854158012815798851792787531987946717340192490659390884896830938926610638902744994682504802902166906567969043411834815643077420905862594084595298013356229555376606226417095710087443119042033811321371074119547962344946931331732703209495299357463803994900796282782189848316422073994209683910125210453312378203379068758828346723438780588616738020103282150213563599732991971718011564066756121578159498401045667417467076625468280914566982186360986685257018531347230184381166040981597096873541126531399592497223831400772058210163524696484857042440752017289822554026530203896875324231539441842390681933257189051872318213006695489965034773840192677838606839110762407483397367958734991239086545285061066484469132213889607914616600104662597445442252790637635679264084433157029159705179148107056588242075653783461493031733800324145976864545232699663297352645444315491953713537057730003097477784106003670583505831337101436244260323939454728411179317760051426319117236443078477462029444666542707052924323559600278531329527542039391957068409175041978512600686641541490821339860813304231586436420480779406538730082417482954018276537413960667237558978469220225277103195970644730048866883846726964054674921636979386123561878389270864327687432312727954737515222940057108591943473984738577430029740850884177538963943930395809519692761170647833884787403005218427633426607473227966247679243370921548765653630686433794040150620780314181457963728203769349366618727036167380045352112235173338379770046707817785268987633183172455525769175384327178884689225628136604797419016164239673765161656602725716227326127393863586777692528767606255453245547353495965086609288390344276587767456313640293114711766954301667354219460277554805394756363384631758931085105115201028374338649460690949239266504269262378461580158556076394193881304449976744280597121757580550059056677057406447388761334792929735156898945799787051110750025680421416862409485115036831910890655599185338857205530670202873235806959660606170048504080150390269141544663131563651309870916707491049873937723128492521714184012293038466902702965785197524554417508201577893911672352482925302808700656666832698776352195175520970426443369504705959147909957299844284770947015160656337191083317542414450080785010782429554251674361110627872628943218896707115618204527137706253089384080360905451997053007836429834008927924619598428622440326608775639162639722092357885755272295072838309867398953600744949484338203681235146785490630323594161467261125062901755368686428388932738989738459813947472034476192392193265586363135845308478348766428762473605570104880358626980856135294865049322567485544887405372038196199474966707219697932384938789551733392792005366984533335655273613295833860022487630819585942031195017882954686853019240160933899337166643979548596587049694690940486911533111129008355210716391201575005430515728720943876653657361166698368115103183209969165324970806948040381976587205246952925283219114714435564151516306369177322200580696777610911518457670177335397354983306867677156164233410678052860924731932486160309425367580531270171514044300822191597683893901831281354814832003563840533555883027585369685853042874690358747270088968760915654877755315215932849232839652367408733137628066718506868539392228397512539755204044018289993295681377798429805362768693226366594747897897853712784885862467718932300100217938962254597616227582709434484874433065042383979622382354853183813512646882040609100177570716695384126173236520769353800992448702492753318206553490221909875054598392463672852798059044492254238046999113297749675212265812651323169054975197414662301530029385916847242685903103296172529004293865564152645759685527519238849340999572116829989881441008839337609288047063029723979062110384780901866366212137663457960881090998357610749070191630097464787195432542177515685773928466468860639313409560967504607568733377457424563157429806231934244630898568969200953975988162052930236471570652707726423537613388811077127199063532735800547623985072481604203644878641539302980223122685260175479247316411167156638296282825347306098232170131724422805723426804172706056257814530072997152715428212879706926503894360065879164007097813970346645681070760002079947691698320434908593029615914328500088042300659429747191986195760719206507970629798273808133036250787039123866498018648425382794781865006630171300856989897637463416201167940770153054568824213787670866787190000526180921205876382322233602170647527606014139649967496567364163011610368553152608810255946014952734901024988252028531336305894883099483612158493522516270137200673484996845720290216072498709443452488031702200648633181745331913700610091965351221891276360971726347542418048618319996221184079727400362255141112448458615519834680002473902229949266345511875194877253574414453211649476227396860945723637046142734896625583237271758168176895134583028550832222931015582710118798381860950694059879000418596766613091971138608669121564136570835120608605339844677517171664512712172766339337466745921919141970531362294861638953582497245182258832936817516604200260348454457525028068707472842670153591758151016597569710204686977817995939369433744227894232922156828654110848052347519054935110710111893568163100681222858104764804129426802964593366807016835057033380460882636081643431609180643236911840508153763727308167992267624336733213955244841193183027650372422566585802646384509161169263181924002426145291993503185776117916235826135375619711835989379669442582481449857577946162252827555132254524728865139494933832448988773721876125723875931661682900424670115556977525063555711832584465175134209324183921407742914234728199205450103933470921396176688227204991179943627412836643230635053419466719722798520357862120508284077284664644539239175299254277433485637769201734258766484209412258380271993992321627396779588298762655602767672065885723464697388295690972535540269089130197159618937988284786329112821568623994023484718175211689366605922317777614214874859397275684160915290723778927534864920512599400560987246741326118269022584687438342052649311781335420717503634178957987274673407687964879660595140788459263309233492746114664417589389556914636353118156327311232735169655120869324565072294808332847120098363903574821189186571754884909751098247775601912257927247878923727959493951981831777408946593804428322850339332029282590935865320659231060901196909988410622325311884563468005804548603001798277872725434828086463102704127049734835338522357389890879966289980482265606211003000055210252214896103261420472422083634047199627797642526684110428449939036088149924238842183435187218486191307822669974657338248946255052822154154624822152497584492027056299377230720003401191630138200223812267365975087733963056542601723159810909289737433481248663460271052444432403557298218884760896453285793561537037769515518324028253972603385455998106691141996950947378200013798535039768352147219808660236965254573903345316151209225074631918614029706149843809726298689697921813357998756948593373434444921816307623999627716765552948708036553116918382000759264605660031506640213872584097522258756829076517297623507834775327707655390817430377691314296890569453406676518292790399151349798395997026932950561739042280469339813489276110969543236724497078966575686125578621624447169901553881183447589805419363638483790577625241686077992933335613709669986811557494071778981517351724889224554829765129255225457886570984583438208735501225623219429267339015748658192561113857589458533499620365883483088395741070631227031552692005436794218604319613469005412721813593855832489427976590841142418796797496147546737963557775187909631745753027269160419927547436571466237726043418594375047826267169688757301843994240204567765355988040929085436108999606077611874398421777394477992540768173117078341875580385588312036176625963328984329562473121136088438322512454639581406636189325601264583703366403403881426728517201901074931387957029632137660266123598545607492212975263523029856762934388456810254750104951235353043037264266874594209149089687420416570386872298167872815728044994945628271972315866360111614832612962607731895190934789234506566712544711044605115532946059772840514877083257094469004140614195568264427040395137736131370208048432538868562372054929113782497312449438212993742110638697866216247199949088027746520933945943713849395097133425560125132116417253553614528425758146170565748360152883907019280096876348979921892217686317425442328862533883580744425112690781694032277485188770263735904389679513331374936260947346206663287718283531778358623896458256485204392708349702042792085417351658392055155822866209277356662723184614947949056276946326375928535177331596055344041622427830014293539194710592737388792256747373359714482981734534466184062734089309757247148019678915452890985789398201919094932912293545214037064140144474836152168803546379313799180896587072480738291164889230318827579033569434851830932815191778111883067689271636160328199924555155009022136763838727310002877490699354546577582686910232307272486499264128924765127348413280765085435313055349221454084024352666969143721617264299153715682621206390846413344667612848854074376473339500926821463654230924701437909624533227526672949923473516510083127605897417389790486261590073139962947168787461939363073213088234305122189557689519161925354697426190864035548929711633322690426072809278892882288554656366647973053826500100473431789724089982244139507435129403946154204710522287598422705606164307719666230562483266065372746993596063736478916610248728046365788884329982086424414977397894122696872377062913765676958382129627302378799642303890660723913487614696073242825138882992759200752201858771245634159135036035694621904494821583997784062174090948809771602383252945069469812075976672843697200739988282985130136693668971921714423607033624785353589613352966765997932639220001222238958686612943388237034245275890952766668060396250538296151858676800401838661756509325890528382390335080228952333610884598500620011512874922359044757788715395976180935207097577552824034759546736791155279758403223507460663178713160027802015891798401542651970567521136438352441777926749429980413783730608949727917070470924567782335751127414094242835410554185540622858500608626390494039090337318673331127354507435653139920105136212418299203238912947519039531156007791012850372534284315123366659521983374295060706624450440345078028543056836547664212631267263266971750794481143383042336708979172646191092043904964785390475269465362016184228624134186407951108061160721578234871971757149429592934270682202139988918191963556645701905575223438122135421375840705420857375921127594648727341311505865766422485797549084065013274404566787794321559797868178558022896772502050234384513906258008318554259738525213952626092202025250548054422810742007423170671547422213437134536658871346809968330831807077410841628772856364946304171271286361608116248545910563079855715456921589692764270317908012992206355704591716656956679513442235592128531214080196652332722173296120179921713002007702984830318292439841832335219554045786774043274956856245068693958969054752451177243314734357965171583641851660624146116372197858640331997476688298074134241282494546502781320755809403040468386743415542704329776857388806700873907054907460972544279471923681947153233724572857520727073381750356040190448066150791170700879567299603678763390386903599075423023420029498381507283167654621003767528021053025098210594811471463727707708057242490126274954164480120258064832811428023242786972655248764754188800092105159515722265619294838293849182309636292972523264908296741272566225393174284880941133350033478531460643162504579116601447803767450307480652698558332036389515392182208518834896312428533806165018885187314139640668340997602063317550835228096581172488667286419831875028447222877412135513452341021197689548333769277441884524413208711298600225091009618499477710332363062680039237269475536543142747827723235951851012664508519877472819030785795956192188900736655283352712425035839715962100428719896415676793181624781188520465132204101919694658236174432423002052409006974297215455137915901976473995846364778721712104721791695384034985444537845272469223991033541298709471678522969734471657904908080501408937687454568663513145544365346947049519181362971527373376032137493239179375226208133021514481086442383314946068933306454642749540425620577945408102671680528944955443353117853474477480536394181124157545654640296344780836513294638495114484633656968676725021078129160508742426407335326115391188033547407458586816090833180679933741497780667491544885204279193493007093871581068565786940763353270621267078525935834990762115861845136380896837018201841905407922975021085608257593111779125492089746361573374341331014583836354425526297840822455212890615073326043464183156604217136106972868212968483057703810418747533497874474752901370780661197886284407119359511906809917767103648167721427441396427576325986276949864480328746445067769336159655032289151944008347210059177355567623392915217254109448451763723319839719912815750268496262786952682708875922966807370891173671230303327711903699040269183816137812168898270094317827454999578660343097947714322413562148891269868070861698735263370290742281420252517491919035747594503885726413326050579785157090811759294989069439423561273906385451185357628662125845356510751093758027581698400297591339022858911699257616072301905456194428217216592993344866425280070975998091946312322138038898358356635742306248259941414693473601821677160369970469859154146311310439223015284263802176322224375965544523588331784745970627232052569823280450406357136320317377959383960737837532126727723392245437065343777850099577967700443340790528087006145142308269790794598937051407811126500957277590439098573934701495253237083287754048143052430992862082079946504458447774809445313653186272925357252025139623481468311212965854135713228999861428935932801388646691949049559418930248099613351254220099720163936607075842313064667381591054297161696421879472396487026370490257799025424928013895065223639519468492281110044415252616760150585280735601442104582154326103954170739573022824835879877506021483348000963394244068286011847815365484012222545410971168917271332201447868905586794284172382369086580155881327078217753394459666596138741503557183515924433374273582864291884091216046231190335315914857023332900843277281251563070230567034163056536081306760783686285245251180092231765161442664456511815311275060747566411262589220039206818383156653017792084580024176699507538750154806968849021475250632310811173007540108646544055633684391264871310947613144551482218775034205833904700135521243177668048797055953354944364055602133902507176972250499156037142394869901141075493060752662821039351685319617063636031271043809863691756595253688036465316814023173258052546578641778924246484673974339042202633467704006495608831871796491328042817873170156480563717558067558549002201640152952008525326884011444142860890840967804752961890076816360402965428213718465301172568828734745781045404041511269294187771479228962221666423561522077828330506993092123333721454182463226063337229495306485628274806906015198417299276531312619719176451050368177786775089673762032226417409568594424144789908501597628939355459248935181941863623649429046630334338761196006472094966608207148794189223578378374507829307463144056097200766162082686265255304156740830229192225563434583636633073467290875243937797314262011123003828608638737166782882744102893150380986738285790936216569710348671766755295947682228990865450295544373589019539322976028882660939557392049341900993265134083428042773838006054798611892250457521384736260295579617868991591369263862696315364055600964204019131647636133960031038811715377132262882608715283074777190373801500647429040339331134121712421226391833945644142108341697818193162991126084985952116400351059610998452188152983533800952858469795263163118202948882160180880242824441897099900431603841239208896713133620465313694006186763885917633182138651258218944984497358225616620152523148599293849501207779859393573226173405160077127341952934145283798740695377400262999764561477938481305397598868644882251489469412653485455652556429756662756098416309719324525961183836377617054614563098630064075997668491689911625650060909447705896748389507647962047517512469950700051737190898883089888566982467981537315871959819157681244670329102937680739205446938774374364425247100609972933174817914885249679134803576065292163959270694840703236152206801477394197393661561108377815470311881755150025250674995113241019912509786935461649696913375328352708716533457919314630188327091447116808781891301397118487332605877238663485974923427514377865943397351083668729368239429573589100285375157006177483738509385948886594612763308807161759701563701569779981242753196144565336664263607233562910547115036293750108505447945200108704976351043816232952171240629216433789509480779442361190333634420683726794929402642241426788690665907342044465439187178046963234274753749512587829037006785983591572497781815091743190849876160898518248988808475023971085604457148499985691183814444243848782745244134797967013597945992047270013258800242668377467046667956101668968410143545328124849154378211601900742582520785721539631130053026881980863637531920699955783108667459372054115574303184647659117430561398136126775043900521188021625211496234780191516433110282492338699847791583059560151593245687191861952594686884021332912521804392575613890753936099487932317667750977522445284381497624211844214410013264454592483718673203945826366280618989415772438063576691674523845709436030141008732177523761638966184079325363145598190702221818886919050392107295753817926697653002499704007157692031124292477026460131615857663445197222243202302718982810221037509250134232910613145886497929335947383705903621717966158959080947311338578925855522119700169351452796940825459390829765105198491805320502145003686456183383780446626832112185272151673372526634797693378547650238913667365822903716489340904267050787035964574885022555666402144023833292919797492484524168900242894016673228646513008092442141509904141224269838682084065139030032667702775136979184343815027532656327165027883268987482961844947207788283910547645389837578555220417600255003481468393767475548993831060745185352770289899578657281818151484737411793899342807786088857059467719388896455772608655440568274993950880987487559889562835420576577998470030031713515444635694192150155243477931877264389897983368060772428451956653112093752911441618961307947443120221003188408325171418970387895735300008569900216374374544025564524674485118194105470042401206394875954914757358918787276821439986536473348632602019904748527724233028768435613017437346491021825869543061781722094702129974867579399476880700048752083695306910273783682215002215320217021604159825148892245047906513002517613192405541663268029704555686275124858523849241425666591740612593359686568389988538903485279119252412328825433728052832995618753542137082846565034544182041990463507913197614844350060701955754420693420005260208328484365389544140420221257420640234751889096994206460603698242430717499953802444699969758786478564931819153956025152890341868659650739110856664785026772438740262326633891527657601146801568508595621745178476903664478599249436246494085135686776099855489680003910634810575319261156199946349775347061714609381100709460953660654363209967798301996834969156060310053139840060438240069640880482934110210705964968598722470480003044395887882042730137876499584695018178027032948817017057097741569852776486076303642517366467359783354123037715244471626981066841202412746108039573574504081688326558366644568257827080006106080619439674129515014166897221483758295839016660993849643035966683461792273964696568376553180526768710923251213010643468259430538008669973989217188315669924446872357398491526746463198635822934509338919589690165765714842352947256825797330340036958413376199320526287919261944845076544090686872127845711035375014131892985216339922581206954143589506456646889151622882976199865190435626506729990405185208627903614431645055835012862314876503443148887728543599909179930619659068985669910619210348178313774553187696466412447666609975059861985909937867707233292720638614820359388611665812639928185620756451187980429779603682011162475369038197992481079692682106084000861766373170508596127384357616180441707791155941906715716284472185631225966497589951378716251213498647727581960833707837167999876591384380163772994511169645446255356563374033363060982269487878602715301672065120248227307452937650415177911205785274770663269036664099326062115323712444674943103860764237469958932507467237822578071871441441238996853621654029955512294934663121557707705536786681381674631739750909095816558822940633107041736011175606208782322128005559367342760419411859375614577239828929034786485445726850286705755509999463941282156929595267976166086740247027126999743887461228337289119974713502039369652366429930915316050084832677150207784729409139408165905936223143500961598916777542449670719641618360381994238814308994852734583656104018902034490685913353348850032602057907802200153054533583028991427101423542169398510083448982053310789680158324319501610662528887044216392936826655266578873614794907470661087436773248159564950348830621960574397413438322489858954178836038410645068380106309086001221790246233243228438366353443932892528904921203392385519864768243615035843769545964569577796150043443999292528672530223762810084724739076967664824429559444306337169988996594587955023159993326271342982915569683994537814810815267118858251675695072160133257136157832918995796354262892721498781344979979101823124905121562832935582771687576815270545824840784485689538314775607479444499504268857236118095276949016211494073879243325363332335000554840302311005869660336067685914691089005446880630287798113448670894996549835239803591292979002445539014368368879015012674283023142403224713296135557528613374191562119606556822051430842155634638624574394692773769463828045116204838305505810655271755597449001191486595487877320895359329785807941582699160529797264050343547243178012762640258884088874241352409962729647826879042662433243533476141308707379906249669461036049244686142020814390989481315710458120255604190364613514836912251468017822384125254276440894436562154539768174432833847615771262838125208646929437823557896199643265011091483850393542162312514323944344887852899767291544815709003028599952287447445484853086403102751733862105773928029968821209524118467647884568934033930951534655600192130090743182204796413130888282781857995734040608678968061764014368810713205848275152974465760626562552303316030935792491604258493533697325595234424734961578637989184054143744700763187256964620227009455789041461014959878647154400834299282743716061467847455453047415166081408364746977226281749682830526915107074662946546382899956511210414892183385969515791476848258346839694873193596121287763278611003260735376947988828044739080183342702109529207116533718092458587680003362694850096893747795883414322727022743462353315020328284327916941335027665747555344510056835175794582843221472107133237093571517160846291790517546796325141035221642133971199842623661402203540766476733933903160712127761958974973785279031509766609297933133247105367290283433188570297292611853001186153735316985943486421474632400424777850890661031008357867541074916553253850230257430805050445262165587911950215189027617447466088409770650328114060194052262723984654591784149061644224687086527394180609105208964582029121808415732516651496026621844088797391028960942248800130737856720655298112759367743203229030457508614495493285232999376339228348128683591209767639919930014286622415673004683290091272914612438745920771567662695119240500911428564986617688182311608755497249598471405056524148133535980722219477259614426744980799148065860982835537888248443361140764240982538025463892379942498304183336562211432089840505675739795498839536223631691999017285398049410381676637192439332647675086073907777179528621421442276737712999981780398561337464011173605553265442676595805710657464120487710042837179324272936210509942284304471261807549624090735854552567800242101318444774346426056144205468289349203122990460214531321499174834753487449860130984812090300832750588755455566312912919136751496210837537259001246183115125131865470053145231861296476743777690306214866265371809044775590136686841479439720172695890201570150143958146748578794135114459845182877522906450256244545430127898790777066666763044866915320644603342524900651989095037970663775958026347276423940505346464970044951610011658362061255593319588758612575436143975749959440092375741172858344303016472811985527906018953221735921854622485238513941458064686378021611797119561051010661319429270955110444087472117057818842076099514505257315823682267147259258678992068445847130009769238118837673383642385976109685025980316053849920888645011905526547884747121362530724275785246659525162405372804199537202145810718526779797304149166604259217544006405790630374831519489759878183027729776368558571327479003592298313375925031431343600073473423346435245520767438901480789613121667694113521237731671764148947411627094410545365273752651250031291823169925526459077689703027050484222939708469313963997973708679503170968113059154119331682580548669385389326188005541419927242995447805731752203669566686138717324562121354550683567394842221448358885697990604176888645378929097137786173635673824456342038068335494860814162332984711392643786437806601073257580380672129607126406401643191932500417868355363007419038700628401482518042996166359889013091942404894410910348592621514664294115576692436590715906780280047981555847565622492773160547633968274858458601887193842207973295799966839409987374981925769694273589287476952453607819270495519095914195829554743290014798474291659224870088231078584636959007826147213305857645999752863644522430021400536851019940124191420673006324599948239249621699145667436842064065106187334018793673913067923593956748064222899222271264472982350124270361232704287110749375835732083486674389006605569497319101123514229773077320469237584956170527827325501190099129175816500282882620421558418342565880624225954982792843565053110117469295885607836749506922519751704735379259773841752343965016356639672485702935796330043828422733414280580800495498199376792379925775956138543439108230837410341346786518418135752125275317680506962101683491493366255603067398765301935760390724624157430150224242610050598561458912457714418436361751325104931724595314024506090544903335611431974603979261412668124302159832697067780399757246522827884629187449203075271596038000777900400426155606074732376448483459810870755463656407042241296390843775330823921134904716217164651651713175642298148335002296070634866264889994611386473244833483440274927374734596123769683244393921440267134263686056275826678240563111293775488051967113502593946879996927367510136984697718523538050010657578166256628776392873449596025723276892152449837073501804070675581769096254328429193692915137875124660468662651662331658066911771158770335012655587781987661810750086440138410335068267954980064725347656755539641069570638642533861848900834472757099858952131512930848224067562045823036338192782442557805000997654830257156209120811348425637000406504447904389328455488623277751910377968146441775985845389215492159026447709147808755625257505016935722261876956249031195526261758564681452268711668995732237100098998289491105718612111715602706462268462904715712379916666343164727731041326563298809389167639360902681021977329910802700881059489918828281958801181823060074679035361527026479695420621228061968858490687226335769803798571407819027575703542497463989669183552871287807541064822908719268485038966923702345803138973640303610936055684858313937645084605744952923898680493772827983347264917022752865075819017821948894558519687343672882688656892396277983210138661417883892103390628497766587952138045693029651899627316218668836189183960130028981298186087751515886242779886777121718235382592906314580880722174801853390361369118513697146779624722899287658720762827914496952117721338093927262641013362143106850111284783443164230790768605992772338157717345409765528428627600796165592853507443814104311193222119720859094563489945119820437996966935239694890568006667105577960098066041884338812342403473823296723718419387559755770428796466121355274421606336340509214475970499735130304861885405411692533110228217141252070667890510688739340549891767326215817255494060563468986627480894028822268210825571630161989423880656763256407077592987235389400591182060261777061247781085659757930231445432665613003365032869876346209134466696276362328724959851290044856187315580659377841565033814499376420296416279831247342377308380104708357264668445056839497136000874608646141964650908489581105798935068237742804306829178868971703072856282938900269374271053436559512556306748033017279393009048039918655893540924585162463302583941798984441343503641146223336495107360119418589517422127497941436547422289923667966202773570150958629073380906663843240173023798078897648447332741584267455130503347980513776080282772836247583164346003434823743031088304327144727195562300662229066433441347743077128099166523224850665299986025272256947976320160275593399846205476561372753340921648495582684936138188418716457158994503088569841576383008490393811335547558178630774782622089820470913371798935417369658323989489697841019032485744912598294781606726662470346174155391493550069897443206345243481410727258215055805563400838766256578341172299197133984864522901537239756367256373764889298727710373334275267325035552368259391032637364686075094460419587415482779016771225586458895778605074748426252896405879013999069820848433367017969933684062456528744865777643776731237653714659698532746617304843225479221359346260049474417108932148700143913888864166172598898335579871186151064378930659062545890428704539227399191787518907176104525502677111702810317240365011140267820154849471656897752536019293772367376456358268879542772913947398831912396990862389515413799044540238873757056517713862541528806125870978694593793402347144287874663469449397250479531384985877060723583684584369404623154186318205084359509020528471427552758875579911119981271123599520374510435154050207811690640232374471592121836886852425126065858248402216916678393318280182385474240387950878285359123956988048773651803534429623353774696311707883679547907619901210679154854586609417276614785014479509980362962051693353315163580117582607046891124576860685711646237835733002192068960427435032030001071664561017251651250710922669154932203641274135284427145331970910235665110730525804396119007056376994352952544139000725717108479550186890844226860212442273453999897891154668753910406825782856762706704543072009071404356702856296806437569059854748717679538057537786962698602189711547978314794324334446556100949647882909166869161840362341236035257314414928749936293345952659138611728415776576175904135177733390490521796429481745126661170076558996275493997519501199361768993397126108000729057546685093801515960083625478710358869287475765316465230832762710712768165193827311439921409447471240100221611145356635085540606744004142421644294378897431851497108210202022584174975614449446751121998888490997310937426296870796776285695834921674056405827271579358065923345505995805808778104496635387062966002728790342915036119134546816149079312340072170387026516307573516809576369748221139411836367383715532348908447332310563904947850531658869892890902830912493487966714914275178556323819306330276065105974009397460408758686908775306139365405093616361321492561333319691122557192207731647858641653783767655796421016837557952381684733606764414021291672430285160041226631958233931971506981386893109143267292994209940353363337092596365446047367344845848157324065739991280742942048167779963468667282305320116959884441436063736762804932593855053079525151260246060921048406494808041229817273656570513435970069434279721151423958747248356046196271691831704338138187089189304721592213018767374318890123232329825668531515207006726749861385892479651758719218136324656424443972392654413969709096542775355928482053679538705224929350204378507829763317455929886746359409372797580457641173374412356851593336530298939996741719926665456361558312643202423696939569127103255182302718890346931138583281215807792332528111612345152056710893029133603023832330685171025551739803850403855453674698120035167956712129182546067263819124780402804916734935733864731027193877949687805095897428179203873073014226329302211257138706510448943497814146379647521088191058137425488133171880417457931246492350006735094690767261905151704598023967537565399721229435620809781874765317359993746394640925449734620655486001695981170904425803912151021949434381333544912787769675627473338929890238061075605659817671623325487676672959659979070029195145600807728780017519288125390186139497893828618956512553038195011202936034282411181957567648209797265123934569543283341394003554926106159391540228518284202026828088506109036583498554206764878829068355350104580501610114116185156089532111526003754475634313581343824731910346939684423482375775418300238145280049913525380536873520905932151216969832200025328139482499616399296417391585353882933728066939964353734885505418978738659251299874182630463634594750285476335289582600536602339149390061591058576625224213041780582988664868046401381617964568444922306707489572373001529146843110449832275676906892747128991739952757854925473754039384360921193335764262665882778134905406638464354044430912078866091677809201195463223306450042471277610249880242177111421522904639900791808511200256693559524455981768018128769782395782253329313839337015219353733545669837798118138044171884701864772197260079490352865379100173651828438108987230220865204189372260543916194200733061665207882139108798474231421993767637790116722865021056786673852822583855111892954546164897544894569643915827295624399733140124673909872815120701869646847985573291204428097765623003485907599763481234114481223623970753540668078748080239262087507230560569353177137270483685596550642715083923468937203554692298665853316029268980112131944904442207510814744134501451186957202265177872206586911829915086319413289454717420944131379529370265109973668221041918748819561611738458252864387952465126960302073679124140777269226085661547432369291580453517878012836321917147152932756005964172878760438272516980054316713788369826602085466878485469815770666755179088819459146923833448935632065771775180245739881596380643820696594069111977670379302573109622198779652707348291085089375411152181717534668030272272505236907287292897441299810538109913623715625565545756010670961747406785846603530078027504930484149003027287043443215952278879926688872108365672759921273153704604842863293524369433083727184360501500726328360641403696766576144943119814077546334309261631448410979313472307845241974498921267961713229856834052701414913493090152227350824985475455863625381100400397231861104354260376149420542051700205972127033851081451556117467188896487226155553735871227202052184111332048159002654953513793701796893083800775666504722720973361932588307111643686618616366764808243436663942680723260149161110279583459393495656979891213012432757903289142797894043315945919852351167850395249986069916832061945198584422237216404506217453907390255154051221172746808981608607482595140436951158560215568378617796670779843627921703000374286062474747185263321712512103770644481152231176998635267873815410223357219993186445222391148802302123236831293934932754805178450569560136521524153469829793474486950626139798914181229451604060770480339414491021301137497384988115891750097487573595570299689037053746617967778760877531934847551478162697560082584017817661412916049893722503085702150151946066238785290263644254891006343012416190655323055288182015511917236789738067895520092987503588447277978377415899390572196209941718176672937324062578747961266520185747144146826416778541025655749845546109989006670122789859722019088975839963172786253245239760009398320465006964698125180730248493225342526831050019459920265893898664083082399830230642138851274207030919486338947756920015992412057176790279901112943870756557303685299081686495987197694254191745551063794537763264936731530182149179527825503132717553978971664362689241829213812563945640139742332365024875140676724136009671033370567926703437450099742146750114864621946238373109454609739647459357873738592186233477109965714246187488811284992065675167543208117140686569152470335424910504486685320929772238566447122764243578481734530108077246783225346121630162781565745132887357752359719311249315101119833416537245247600313582523975407659088078217265149878782641717925289046056536195603737504104908769308561319677056203673750776534028533294931526284038714754311530564174263463202894104390227458995834972390018251468521145667143987757599491414103655988772280123897719128704207933804600261422864449562277416882268175460924484492949310629713266421386828880622720071305113364088067407817128254992719673783541504249199877957519594122728712556648787820276532468959966979200043879835880975632839747631689369477532248985381410804877425406695184243830049945758964977482844536696917442954036875441737120415875004123826888630282119131569175619383070288299689789319601311227916040858779952488371700073412217311624471242608085268938672016560459582193328723888004337250455685072666854976451330955780287713717830359391733899255666415012885094184644651592639138033589849997448518654760722748054328791711802587764761588731124667573080159591357421492933761266059993156366581276914926528675774260637291342222018076029073651692390884719453710560594437333186999829406503416084728154120068094549785938782864322848796942605318930984296926976709263019766861894381634104167064834020466629498665955319674884065470253326853147358941087936338524217017554619127332755565837628714364391571244188041230641378764710661992371539236549159403752392527628911052234156071222964030246838789927543439600207319857233793748775489527217470532176871077909992982277316832539191586344165414425252042790499697190810555172784839112706283910693759792296895265551752409065464162509974028120538006973269017045718919961004937236227079128954462124329582375872388502395904718744096853108277280497596522922608199537664857562882031385757906105512621086221608268823169387378617900357383556561170254578389554227573108698980634078345485557560534113162126234566043976402200039096877782901907120060083971799388170944621986065667249913100235382697398091014163847039020009009785652263331234297348117450787008551057509037335600543827303375783836748769449678874303120262067781119658048676745171114268889643268179187096719883040234375769003605192240682492702991277406723660735312178641136325223577961695288199624473443661321309502434911790167280438379255996092011825168454457259215324500468333302053652928576868924695543239164817675284557550081692681500815223439515881620318792280181813558012881967409403688301841925400899788159266768628986274805893389102758392363660916545208293830967867316841649814974710650295177558206586017129865309226648968386058620498747378191145413483795181003084220255613589828138184297014378565809826467045743568506893229521452142554675531573174730496618622723227743025927933968220200327137263254622295303250992006842456117288342983785681799359770877385690627913924580256097049564094853536771487382243323663637906916230614596131854801456619262771158902847188035700634046487671292622813973645247853696153634496940000580342269965254800274281179118985081572134679348908359644883084063799205461305456944689988907859987112590365085619868920605759148245030341591587722399404990207658693937134631945428756457668368022786248285004579226428270317442498192673345906245106784321545411930724471241663113065970544540288886751562610103739460363193348824276473878810234776782856279915256318323865913456487464615718749515018517710355531759330105323991388673853842401530426685788626533410821457935694555335904336554009476466218054635793656039566765551392958084129674692338236142907829927320417545479151848618307336321881105930937960831926458708458943072059238864841688049669619159664268308526638699191334483450476792331018082047781659797557540255190412099200546902708982238364511236791386024331025857559412290207970167516033052968234328933760248124967564101044292675874199954230946789192322644618623379674064972847563555030062012343396299563695371441571560940490562938848302588729170864939950087787619884418357516976456513374862532483710405661773312726970045167516132413970985224257031778245164029192133540367736572913534550531680175848128417027261870504107641122338899747474801101722176109767262037414122106087880923889055405059279120008558459244563804776070609980815777115505968473217868071725232349349169201396750246418829459426156643747318146366273891627551136466904828817755868799446320604391731003297748291995899080843671312865490717117265477123691998028481438911381639249475078438147350282421690219371120801846392500760208031788441921752758722073937974446857107315685550919008155553047520921176242023093788680638248594476997133912822836148159352490334172390520507232066923917521627931534704919331601121911459633857736006911787450237197306156354910860720501923648304112691750528941194889697382314157955900032440334215567366063092881252488218056872357721631059525933982545416072040709159083725864638781437851812836029665760876645246491524084501694217802559479434237208215635774871763139584628426599025914052264219853585265367579531300290446428311300993290449924725637788087680745150208278224655991190584796885126338161428905847898993184144925841696121684768540161359587689287625559602855668399791908739209714607339205676162012130855345915672256793465309836464649961733659137069726153258288365256454384177666043446857045210646524969250787363777235749019936151176100745680120713135104933578527558889297149802739723019570115530822929386544722016538993150075032253568696089866156993135627424451959561462796731444694843124157155836614935339583736635339898811141856291882011523024839927755413768363886326099054863785471488221538814178776887639445196651716823243795301100610259742549268038824070955553912428908570178795232300072101620218996544668252412494115237266818236838715353737501005335299532106118557698463914091623335114037612468262042727103185218025684031215289369964879941203256114853579568925249104527771495496551039147218169914607920047734800047746674730378809084818727629484727767574853405766847083612314500828067939391743608425557578136659643324074422152312720568133015534068891827790239976625829031568525135942904661337856097407293604475332808889290251949419156054664547162980997891186093369161210603400233199337154521038142301575418002700667577248649081745743238821610241603524682066121068735573464990232681521518056984650559811675572991867439567030375123350272198993606299091982060081298724162919086152720487995762461637343965463756593105706946955145484657266934171581331722080739968115014737544820541035771913498760770412072618123731233201397993927902893986164673919587627989137412425619228253810213564337937825105037025757188457225063835766750751764584219798182950760951140076665894039820460753269554185589889513451204500315355833401810758349534204135805061433369210357359980646324065992615286797059792540470671417930715873889117642768185228945454193625874446293872870108462614866980147815642986328066615598209313640483315608750786961074549837932326246430251671353495624874132622286054146528479301424977043007462106489950484872546612980640110704194886271412573127301544956365277976130807162331965795044839105084610986573137428211453890863401224662466264635923199490368197219801691647127401822193278095695774446863103520348220013182783202952043102744731080650776546541485148981521870034284394262129333298757635663693625222058060989818230047508830707843544196319678118095565052204344263643129249464860309236789313160243812582262667800954251925978688243149985091671863930567693377096029542656861246408954077862288499455391213709645067802011717263342516764321033588585379307298880911547206671235375249611582896450963974687723989288514716867824334418875918222264714554677246583687682966243477414838685395830694004935207614183710447345803281900196387531631516500360254644859465517948131729913491378544830595848843140435365732785574208941968066884763630138135187203828045563250213752123934367261593185789270824630834835888541299797771385417220837091014474117095266778704504366123655158408746180207362309093993053451712243317772496099823826582407266815678096582849952532290901205843003521360731486670401855446435589913474901191505422883081540039681229744721679056300800162258272177511629244484360370256743084994039231119058327032207207563317933027814278749336748020689091341206614698356877303919269760629307779574812597598966058827230863293223830861470334316865871828723891477332375762398734829793994896169868002727753248159234701742132628402388230282469937886131950096881530893028869450903486796095554916568165125705372768250709531839504170214186287928066154272395812513409686586193029220298442503582181564959700839884904874628907429516317125498285258399468930043040077598106824815046478090501213385741316002373526090695798302805808112732198395576091299586896537038428917481555269517543201364488670889046412452954220111490195541030595668491046082380521561087373150540854762929897661416527033521609036102263621219836006803719561428437989989292851599277466610382362018596426248605585766813828220917928884268224993085369168334773905249997536217325579096940714381694358273552819630788723601359395622949508585069490514372003206444293894329977262455413291374670178052492999283109146832511736367520490570554218133260255583526737645853316657019304359567115487952584676102552519056066681232482447366739367881609415139065358871085753533441134311814276967387229233764078460187523232582873859239272724938970546349686281663695372721254970570572093193904386639038624066553252269745116215624662663849833693011847649116207605493789528217098419334932073844442219177954335452676222032290588123351401903845765736722084559862538404706060431796951749988756857693668087092810211546991768756748926628557012810175528387681744303246026408460586587886650362067926181769503795027890623178175490577836558591556996319333040130844853402191849471370345954080503237166500456547431116139915423067589940955402894085694669349401848952734180775014627881678300611770621158484492493644198382678053204828176840413539413824176200689808128433308392931214147604782979904285965671772350075108587843270281783091848504997561813278082698547171611863151972745435928766385547199725684451628462136457071857274718765170818136030821652379534382415693455372301867891680555086416959710439856888432668334272860670462575999667589723882001506319327384195889419409631979311474288003922698143576931626464505649619702498787389037940964687290121699073814840872050679760659694389559379930201489145774351081138250212098159696435325516888359973858832528278646570882692651750655278546397735220786438212040526661318583209104964990817080906257473958329513367645541397751183499678552067940569666301094188131220106540789159205470119890656739095957736855875182746148671638600639559599169570384090214717803217771091724567313006672087451650984272970539387475315670737607297005342165986723324415264760101319699005146828070662542341327396056772216508358319447391453045811561547519646760247799128631368919803195292652046513179212544025194569684546291134692249720027189910791858738402316622200182401453514682734188538506901020378798185357051713736624787331818628214945967904728546832727875980903446248143877802983051465192142748226285715485467034731309096139542403611146178678002572730266939212933475090142453549916164908150766236389386795154083739652448538607568989618658743225560174482431112660455538947655487734883508889101778739727001194267289837231382358923628712434331648294147195432027897382865792043846661791790819956736946169569678726383604976135879493842753811167417135174190682889454928690724338624464131128032892838126780473464571631956268807237290088346441561450178611898044745040150743616555906370877927859200295292066678314060174148092127107829034224548769372007658025076441920264931977835346500195234428275160211328524663449051996645665951459838172498106438240451845350398642044530223366192368167411489519617778948575493680834874168954075093367059455048954173178781910455209916275386177701556338370000343385170741483289982041408254583496793226601832055241912605120889374996863237651717711795795574963033537897880325144555748572792689211913973177957389811653636526622526553449319678615053854603943929943224672198550895476704632373521731374865842789450267834994096739934732886367473507043578252797339579617119759886028246457110200154080560617709862010746811001954937738707738070385926114559567890561789782703080845920800852840078730980981431753562074852923877026082315973298074019721990176418151095436527815629197839728026738149749542907603266509212149781012402037393609630578351780891155896149397415404512334131582685898709653827492423170858571031394189355159211817479221095522123113346857997767342589557527847814419565614349919666294061957876248183216303429578953622173933192854648499087910626908251063992614510317802265789025145630248843077002196603628078971046379616400190936599309384537470055546917004577229090298772473691843246903152472841390560697810549697613113788691363076306638575207161903950642461232002472209364093884155986920631526779750213130888215923433978959447394169827413565218136568652439678331261964279621741541453358407391004199352745453613897104700745513411252664695252915739195655833850453932293892787818039265558954272278213155805420969937073439544067700439981050662451776677468794431539394966234349438479306872013841942795830773455614409925568556040619784290413857347104178832849476605282961945741063128265947170939805897962520740238579603665146163630805866567384433832286243485400045712596031037111314793572270105535089319547126271760097515950539989422172110099682004907949223820424870517401745873802974129719676350224655033325641941322464202125105998561700870717210568985447971732433664563514339187271279010852024746058959749193142438762269339254194237712439933215400269179352740548569210170302990948809938274845162863089834402569364845478676355558480854574409556377742937502255790652256978718221014684843378460193092937065629272422390665500906328952314404745458047028522996337558606172915345387873444956160063465724011315623253536692715058319894355173000274326460120025842564766680034051034524012666521194890831017665305951538396365823578155566246283909959241610887486133461747959858523823790782488160005175258719898896422591831176125312524000282898238408809312119783476544974653046163337703698978566237281400533888619847974922946140355929359907764598343668655172071648205238474132371419357117774852772204680272758529800817649929569414822131985990133348337286886738222303675552330786318120293365071366382017686513774602937409859221676259180027179907572124878282448863145668162807342993172266071869510350420537828275798154790761194174994197495612331057847581947128413428741269823386171155792416239027433418005820028217313822939949682248880069850476305099663262706069787516392456861237422175133793709297947501973206548506120966370455293591845124091165869172349254160457763046629168254930848945106317019777972065518776108250421787324201590739945895308493045558514807001710278443644046903197100898000822575398362764218973488837489982733787551525472249833590645841656515403692374494146211666825855846444799878625371812182417018849651336346089365791316636797370034264306990236912211023002677027192874853561391288009644756374364218076023913283595108521919387400727624683515945803444976538113374732134347852362031927927020650757881515838046076716784935766275766102597501846720392714169613577629153786498192197646767243844717021345923376134098357250678829436036126466287725146234926687389445386398547953494169258670955255750420966789325473672789264524669560041881903736893317990932281779528904298894937691965557082841799441608374621693843193813479755228967811251446451539803756933324672524478346781887150686682742182824205340257553261357720364782103891135844064492509599913159722886799856157487758545772339998791149029535210314700374331939543295978588196351238794087812320506895613570551594299914213778011257497283917136376231454099925863217963008073153443133158502370150914783998760342821312239566092157533191596424004971199232630060731874636793277610068683340864155457382476097320478867686096850369473177437462145378314220067644458152647977133431602412160490828934433493186557159606382902183503114628627506994504845892596947609356908372227851615889265500951324507268253298700119223059560929262455116333274518364452889903166431278966618069065515206876783550079700520216080240139337549364251688626568117332162182453578299319934263914782250828507962172364065906549779176533348057390855716100748394154805146186776462756730748440435253443111949874926853843139838894549556853638178169724633089830890852253890835729064991449945493724690720102397393475961151745852713945559092558179860691247699633175309157912338028418580086436058491090843071924037362266709037556789943168990921166644681419776604274471662506287931579762803951025300486848439408936550678442737313110095626849019282826073740893314869335713124629080417306105638005960490899870156802865942400488280999563733159756095691445703057220085241316716708807660090741078007872075708767106192442044183803085718575693366070183218302322315863791994462898919138424524699699146017450379757890884109384745676129664467354920228452246293990418191019765759736727134591952800673216559462098099407219249263853791794221544325258838676402167999736895840267096344180352615706849690131528584761962463944945186169325306300228502574248275328886576157818942115305234715588650438242620272898352108303525284901232942812285876773536690330815889401975252019015723682689920453146280190491701579122232836285874222598252563591783056941011496601709387400241858431031152066857779099786787540686390808504319001338235658454318665294138293705125535530395442144593695896927979293308459783713265873845745602415036222355388953071624871993224785978902625950340063640249098996489034200922695697429747696486338937487800746374546317907808952968945032478072566887123518035663456430330370038980694730002630468677621107379773675084181399717948668919517561077502632419929863698971095088036315753651275322720872119371946376161180082768196165668846586815588190059705759403096661108342902460655702848927586081060972402982604641003317038995056937629473160051602948654696134893479765769766511429315276686353631949906854707621009014801925697589700943505613143994420800053144249205399147565807284266561479574292411510731791004676896596020476188497283542449493724817927440667315734050306053050386606598041159537314516725271845642575217572364217195492439201574355003788602605376269447919717014661474805922753773793736084733927312196834615618513904627806659068536392539757091596826757513730171138766177942670686213640970658618101895537943456507530597576609342725761128389362538959041881750370885816210798368792225397921538831314530685195846734183575749618601677598900680944863751492078905671266642917348550406613445565795224569628398599272629631237494135138352101124575965161776428919705602738540795397251765246324072587066643897641057024222956212347197951808004202541678938830290992688456455024037624967923335276797011517013470161261809631875978387280777872503981481142049923334102088197398347941065859441681388007966050492113999764693632548259970249993624643156488023850557770500844271315036723662584057436782726106197962474976130223388633338557459570212523297520130337798760800161558568072235302290100663497043035117105554158459857299671324173377561676568028110678226201720352733248606402581054414128920748712626851984262529521330266797843109713564930039164682321272963483650791322264729790965575618394983377973447771780914290411092908915725212712052201473513754735402789856318794872706559626648002341557645950454656290524674663273082383867895131085753091386616470853384105342361766721622430329863105339743988883200753081172988746823056544910241793128334373581696742090090472009755220553225395359537424899296779579507096113878534091944446064074203981598210318639461247195066232410950650168088233760677773383581055234283677601614623370131483382721363230866435353984583901814191171805562971852478148616231075318472430828560395813778503785226116917890633346945903439578540491359037875757222419584301851673493300907071845287594799611837279012833502605538336050485356682778902718185286424969695227506233426037272129932472982791290042231928739054282451303748415505262508296127693095618828528217409068050799018967505474091330563656876877493624999188586664201472589250939043785560768722767501711282937984284579570974870737648332877715399970477901653811327942338571352556684739679446747262203603250313065648849734759549538777394687089064540702401174176187320414537794676549376400036691664114124376715003086616903284829060351642637930590543373433078918230881954370380843901385625812816113289350130927884619059966520350881243729455618519594520140852524648284122658832786266946137284962252615173174639212493644609856319497994468036640558268551731725028866825709458034922030533103754022658200623184994441874449898520115899301209482279175984913390986691637839988911375134151368998251131968631944911341206688067987844339326595759867572085827107893356711542149381627247229159736221550990906630505911555548226914093940313819505922270310732343452748927938915952793505408414226643365955982637622640681633359752577461210879131764288743984756418284323479274101145873695377286116530797633098374527310739508140539271895425561514573345529399347357839832902252672897254421261373714185049199181742074410406846420291683509989228999359941172184267843244455621711071987384474920143922658588598225922233484921486053383618386787142575760116244640655597353584184094874190817834840878399205744937134412317680622179238636648489545441917582292601040843658265887884290434058448780911793069655187454973517976244838673637987381140761814616875211317536084314277915687630142863573783834295589536331976761266059376456790249435172537575937662744480814826263276251380691879862951556436038405372847857684026608147135460168386621896197940970963396187227014489981854838256173150420346832669941568574788029414961698070496362839197565242695320591425507217579698426203183142635659782996268401795024350559205557951754338053060333584944951955516500735671817148783257658284711766643072356213752474241512677917490106861192985266322335226115995565287818408172280604103850110933416458766894070514929397605266935417048901579682828796990035232132117453699201759182826622942692986018959641488825809289319235736489833486657476069374885774246151931644171339871619240221219572241358194374322198004066681903022847345302776566304653566337335170594424099703867519098967770407294170530636900491315548324653790384351604063791989353821764437825426224488456566392709577169352371617543509192007434560537410363197024354580555639641812768444830837804993739338646429020136259041665245722629892208062134726808149678956637166086324127902997255585843383042911208076731105961329646651622830828540043505941165877841973117338630731673069103287383123306932001150761012585078417989919306379031300418071203081929636177085016348019060090996031603031356062708031676438550001360470817252906010749306732989032048447080768735561557452353004057273462130062050023047769651993933704248858867284708474168371954912909102271405140338680164555275237826308012028891984699193827375285776797494386924630523476282114954749881356191145110937180208788295173425253349889377030085807518609153437404611828695349646014458355911567095123803436809294788703073218783231730769913677726249659777623349184097159611326845326217193953932351181558648926480998231477803296159836210392028519716094744631193152316990816438805703764494213996436400055982989320563622711881455116402736669682986073399858380622865548796691858511029755109910618656561815586272646422241300724318869188482572104409796197236014352392543678687101012029794609814032417384467386256789816245498685120312769651457455108101750177570916261527706692629983346673945227024922330468592855830504158037646909181734026274512069531380530001446761030491622108114428574524190268030777769087765658009166547362986022296816621269146355222359078014915214529801152886819369973015967600162962595551001420929049728693860693543769091500261916313713684733943916027745606164070858841114190284719753916352283081142275384678389274559528600135309366193659267170097403331126080488611168295121573345603762276079489131102553387841864512798886203590874528301843328863471519584205845261195915301325908963225879358776366407179149566393487552656106134025391436194042161577963394537475215044086854290285719709570622816665227979081445731726267999937179189072361415212989825176137219987893662179240133058745351805759501799851146928016871308725017636766985518626943043023031106608813381889882494652501165956799047521434802669069681495723630346354792017619715120392203157771121068363207642941047689064846974316531290009072249532150516104195676868447718112168430088098865122060422600696854502484070926151178010244951380982676262637274638806935357310412035802468641150772167175053953318086986888302066471809130391994966355107077120714253194393193082977641669885554631837777315491776205006819555590637378890805198734851029838878297835605399525267207736464643155220414850882425376225908385730657577578606453820006047150296764808533068965538742996219584900361200747478943495514576508338025519586803228745545460641822028318963060940884649810679085084029094278885534403908579178993600067947801313201788130634021356286034133811102908176243240948821553231696877389343854985729474757945062380406147464250374782989190922759951911062463755390159078606890394806884568693295497346132611051645503904791436004011345247004641954063469300637370241387710093810261691216299263497860892616912041813597747421211812888566119763221747027851773508450336320217811973406896031265174561408061094867287490216896076053711272455727782419189339928443419360872559601348392508761352606451323783582980935515537513553089734408838875816869688872845962781693411875086938822907167037443654322882595840123866165637135622384571773095429644018221778631460886600962414554935731105211461076529512775189478202869045041333832714682829404650813737429716557209772873832876795652984626348939591344513027528363799043772097149058599771726514220099135491713441579112721373738543396265498901883096909314121949012274256541445426326352282481602124849284652935624927945065174860476050670721101065263283596317785747085568335773953406313572264279505448244394627263250451913935465510606070036429473131609133140250161901426603798140399549132563464808173567651061202619544021931878491356947307430696234830780440888608133633951810198808417975393400788563874927105338810482404505779420251987968852779108522432216023707131368794489772822103449007203634806335430740369013161838624484504772659190764097222907744869324138206188729075288310075013437130418570361926860532611557557174123931679371947033890036429501987238435485496089480904870514014698760013124664695344053414699194263669163232283974826119664520006102813617211906263397178677588633001107080119413168276184603351191686505687887387590641178699375779751001805732246914752214946866478537474251996916938476565965363247550700409796433425696129379428604851373226744122277305878656177235009191214054714579900620038930745165928116699347202234849686379097331370980473016566664277563393011694768772790009752952038921207122541111337931329317027798598115329198990627721529519613905446325139555288545940368225179153289840995175598710907029228477106827995170066808108546572411861008945490256142511196910848238684579023684637290412386907201216065656651548618662214724676318404210931910222139898351059849570032566821026594350202933305730401656361256692483634094294830950052296976694963695198447677482137047035506241757478633633478630362696541555494568293774243980447933466767081223899289620759471189415644134112705762701807332101903993726924662074191062079193223725927398157866646516488905155256764190305707814824900545994879685360558410739802825981729305461547841770358505574140759702088040266436915195126748265365597348519744811569323652220620121231469182731059335500048312149784680121368663561264036110852800080089822901915551969520685235954281554292881405252714479863747965067832696794038902382664613298043767572440476998722811629538811241145584135679800593142582742116501020671570156244524544924185886168366865430736664584723387636386805315215804556705787323679503284667431672311072232359311462372689766957912687559285477879505563288933847914661528749551393458949203415834143159019102280690818443517839016228028719813000484219769920892553534506026996352009247068488077891307010493749902126666003324136015783165500202226227748205969489276798030069448117085134337960011503962773310925281046638440777741118639726300029265964537544116564273493752391144244343557953982301561782243549355429644719432080199008488726752666522697963419798036121030946705378197074832044126278704972190283228511678108346137417664409907954339490760271050518216713862661947691515724624098949884677428272572602539559006189628740162109521773724907079255864669608295734497828012424595842048660182275388801948907019867059747400141640054429784214608848854990606492760633926383713666258147552326660897291707614604897715950471319840833972012215307969537703319451048539809456727522542437735996435997883808697125235448230213563094374888357458890970902024637852830175451948684184205972595949457717894811076175248630909682915445064445156808568987280817996535654770959999244524059025615562972053637984242087626716479309581988852756729546440534138900052954978767681698112144304686857884289275955582076913912365339350092122642975192190014985058360566832527470785579788681788342950020856024864142731372290028932064239864884183595186077699254651120732206942563431766181621181134379624857381414374194115438268598813748477658504636757752922968339728675769313012585682254148071959011376882186856302931547429822339042964387272037999552847030765082737169165872727332018349364026934473784102308328336258363972944727640870428121656252117087245049723887332007502571382611188848064673986529895448287328243041185029969413540010444175027953771874418001984244423837475894185476810754428971571740079437355205465590766695923017762417944225618896860987489815944539974468050463639504058316040865864254001743520027850768983130242833016071517790626162942238086772011824869602474749403406796866488479517703473929935176357385492648004652878624800533606111319597755064974331452628024930490780364614353350264855320574113810497931968057639169568720705489300221351667718709967571645993534401391579898695011414641539586068938356182141706192360046034122573996957503888300556312501874055173526733278151336432962864270803360945106984080692196587279599697517925332323476183750746997477023117820406073574910848159560746826924457627660502060480276477511640410996290685135261297345722657702411656945632460320435854286721430071222565891677216130885460560308716503183522964700689360088691548004270770545772280872232799582117210378576734508244359035916426475293106504885509681839823987405810705091802206634967997956417626158644083746017250142694072432618086049090993818861040678588598336527519537521782222794662849536644746903533498534031088583817265356529590184805842272986773579540283043171916256430278594788229559918014709569891967989040437948874664353515850886555379719606877469804598636829689043560304196631868343126309118102792828387013065265981483348140910057603893748186546599245502835613474389990715045160329397623266228907275487195298089307837189356818144996685313691255183886828315710212058611977588101693208333092434136238937542109902186931523570058606973912853030221673555028620088344976269109331053738442616495715640088126736029408205728544104279389863227500825467157222370532778034941916150463081169494959158398241867847534596576001615727259659977445718967952915247725596852374827660232571522456602052667184406815039360967814162952275324795191760170596602251899948976321848245979669997580117768033284172751614161001710725732307722479211520715260211253572537463928619684460324440749649543199022990601907964885160238685795437845257567702028403188016658497031351187190022700716240316634352089401376436469655703898709952385541287347883661905258478774458035419904319269603854135976487366088382777779480397373761950198434578961603680293774017219826608184932782823851979233654213703617834973725682874555856320006412132674597615568589419071647398074963322988400061535647881264431206289383957611516078670270875172822409141673823198427320050050394278472536123458580451634461272311702659222069516215484345666188764154564786398335128054880252873747559635132346426853787320155843934569126267811584822264931434944815616831843035510939002208743391716748292648435846880909719037646650001972431289656277639118610712163675669224259142427482697918712758406187540625446817545570379050518392810970992389158764259973565608821771278804003360131478019394271132383938779754861953571849371166415180123657884240338242774443044580159412502583896475772827359417058003158290580933079913556922323675089216062710010917664050930872696813440341538432152324697740646734904077421292252506719705572694862876433989555710514968928196716646215533078871015896544781327585278522696303146648330451252891627022945614246640337507137303058475286651141762767864282523331819980753902385716008601807285294614844001480710940545116415943005489269430425069204088779329908706922797862415349469055645214138433238475984261865331481029212485326296442171642642514363868133396304311643888978456523406964218626615494865971555774167066004672037346511943196783071100440056135595385796985351433418846529859522973550983972926081917964792846944036039135143984117189721361284296838090744549926332170540855669095806089496282876458424222335143293259723932411870303576089705555785353311709813636484173586864960361386149087815789214126971725748410642259186466553301562046038083284724605207293282798750208937143296406743625408108267762367230902502138501377251247919104368870553538645818603354229057974869072577326579290359478435515347507866000535060707182843991083699618490024308066636824024127224477157440295946492284645394713667293339730185421872065578447128859363061744804389428052743786555589458768281449704394888242011436536650383945133047649832097766404421586609618203392322244162088845056929828089008628315814948098550625434455840358142010334296472041934825845487058316757533210615653886298387076151949680763869762385608956148312570012652750745872975799850456027101367993053797770265843014185504944764409307862607720299606340849774424046144926881719499556337778006029009892761749789864239214476801334952515922078142632164048480366026475350976392642931095509887091467067803533663364929987067623979192653160060139657401395826547948792196132790734829403110401040844911512043719963031883614199958080706979513894759273927368329660072118927284186630380659962269247068966719721228074243836116556384207638100229102079538540326884362792379773625613186063851518179521370902062036470954243437174119009124037037338610619201538982673713407421241189493828803844901847776283944038833173961072175183422390050113104542248987017771789772590599072282003964552507875559355691784331906997373603047431469993097682127530163547789245305995709863186827862537637775437776201511798577724175546931216568386037146512114201352530034479849450068216377456926798770565144063443897715991591358511793880968062996055845920539275537976925321795210864045972083884819132521509845679916723999871375259108002680227312071609533673416985963791452146464662534731328214836279048586525688259067830436074164675396534485967021740770948295014398789365391097735713561602489268656204565153989623541276100371600901690523871432840943480212362028795020520190419827054146646993029492955063004090030702720752051458365620300839985683475337377462798199573028357010485710208513571832344776618796017886887659921973355898611918363658296870217827018359163906621839267927955148844957625957665864921994392966925289997552120536058219794674673520507777036752448465510096498820466174822423011899667691837265444695000442637293936182664775538595668043096058486164908931765181388797148037046676135288759331500134753076017689350678658885253048223231338034078816576206132603931248408247446210544245723763756162804671078717160118633968751531122138175287149813347960294596458336199618072439379815709790666174568322070188566302333439469462544826555981351820787967651241426608428323064735708260801043119141489206074609789919145390517997432834340489364866829194431195936493912757421558001611728212970904509229161036651361099081408419522072454312492096096343693160908012365503233980695176693923676670027594098823257272526777788600702294380233999161979519893525450846578153121768125240348859764356693451074750740695976275851114973858785873533391613859807910401226014776116100900476478636022475124363277207967593902623696703571637903992472401332560031021024672172300108827082269033245323652885503600988306260502818037654029458565127182228280777212605437801577520510743119816720897554129602642260343881262798582670500248376990741739770765350513563749762759092033758028686171158902140032763469289403120982685072452705255053025218970023248997185139117559661018860165452218315201690772866893039524867627514486141751902793306589390454331831281355019207619101399600638344550002353904122592770179723749760037321163626483801454832825878566035532441966065996315996654755372787769779094256981584747430134688425445669864697095795936232432644543899028772174508882219109033132082647348478000927406675423905879130742937459115740617393779830444122417712289368016822224918150933245411827286330551470437292015694131538730917270703721842688512635077803840420845835823134602411338508878178044302195831308439519445341669494666963627769749910813221374357428669620016496732468791981552285057246515840250984243856433108003395575571736343001154761976388324074508678517192806147764278514256301877247422422220330765301468672396652902128372365178841235223525484861594161297511582455164726536711457669804191811291022138275903628370572834260313512126816051083704754806812417127302164450085548721566385410585744994902527975888745719365376625892894649862344735953805809747494286045315187914259814121020084847185023444771156511054958345607884309064590624665760464059188076985466703282057726516248062848571410839032897533262365437850282850305198544474864681779746281199298143706690167195330838952108356868299600135242210050598369695656548722221039623364722049906456969943611040048311934830014642584784800268112095808464011416112764471059177743603403035768209026638165193537284443801566644819722274918934951929926327500354177110909542332719169766478804657588696528777037753176914483808005092711012932052615931599234910137754739437197248762131955158893963923469940230274115211563981050402063726087703130308309024873992768922375903258448104553456190806009837491350330746899541866058941409247565320902600525151869729749512583312569045354897354763831956857299901057065269207424474447569017984490361450124297270141278493206206513991209997423388832673611699508878014273950114959599750942503114396838668913183309557805156834087743738476925432288329658230004727131905989412902613163962246300218453297624353057055865905397069805635835864631926189146506515129784415147959765440984329528513053498112381856615008680097596995032798349392559930570651398315371978296188571883738212362425560380492455333298312883286492295429275607996739734419381916709909331778587073514692799441059154753420227918998462627913307137701552696561029247551685213472928375377914476919994339417609357153588171470044868550615946460166571752572861674621125047489418312603310504743628061189076216600528391377243309650999185740712479769222376385316409385564247057441229868063395810657714522476008795175671652623300698270041867571890799064614882338653967702260939717637979253480213192962407697978358429193273305414440279299200297694004848600308448413514376277111668428082566556984684829556445823558165535414944315286600519489602102263615603505041058736357224949549466194717340298011894059423086001549235227483690787185932190241248413592661591308707536948956047160596377636029877322456459773681142477911158632334913438653149239689478454597442373296659135613758390746990622642344009153850856104127589412775697190414447892674864735402372905399991385408659725067416975927488684902853460195973037679459994705304872401254632218111037443595842623000665622709708884884313898817537832576666676941595457435255531856465793654082727132426293250911519856393350330496811277780466310972116462685374300392385617116127819282968832562476890991554582485941549063064413274513209614298466499722076303973579484309455639382324755887729974333338271205951480190747158210920914467872080703754615145670878334644319868350275421761977032533407006734124738371112526642616221975525893698784649485312301941285342106754637515473744317978761992719080578471083872856118503367126190038606285143014061748677017817212371725530424067212003966897345512063028898779908415042167966360244255962081113874586154531036943871483467714251037903466785124157468651494833777236815822735113504060790983590641627019733705072450993178015742231858397541176538322637087701662426719753316621161253243331538382866621377458124763367426237163714701032529662003483609829234271144363287617549630424628054194798786112112094700355990013290240691564097554246082220405607364816586164750942666363801000159711474871818585447219131486215249349880756041635792482541259374694309537557929418131498900558694022319449753749180431247743055441261413505986327655574491092897437643705648036724192645346643110696330093909059191777019128449822004598802197499143505920495464690647709119173608841762780640191869741319062010481114288401743555366953289523095632876294815824503362267854053455426406467875000304655978380788969852640703654562301023314171532897352357620816001374227849001880860825166425973508012113358191118970612566293772763109798032116949395721550808734657046952458701611692055429815297371313651457603378839133329151170020356823357711323799615443876729706506538473825804385924187755849841753047854801076588121991865209580697600268153641126730799566713059350611472552874445692356058475408184254474062771500432076674342042240179473262954340755580654416542264364073092984967747731696838623177961640200333291593925973297910300541293144052539696450519061484547418373030661329284506358134968168023965735074200572127591168944415626222880354977522273134341801556028898830486455648811954658827246395897384006587602642768089446983563278308728848830092578247307400716768311285560872061147084012862944900180569608598856526315227093835811323861242567026551950941645042133677022264772646957521901505699224194820566407935187074053622699647781205644584687524354111128784651612304451248157520915190369172789843284576602593997289287385000885565236264858244975172568688920811102242710711191470231819106538172382846211844754919364078014519062484126712564087287683685898086062337477444231130160377224376739425284928571520221502044926362503212864510015582018670440235942314606664715473978428778707016050494727915502606616093077733524150317747658804384629692954133183345264964385659572397544943362238986839948489777443952610658612420574271722993864835184556249801248107712006049061840902900760623543318113499153495132231401146874013063496947943884530765610980236877556284821489144058746886086941771871700944706635517282526763331093986199670421410070608798725386809885308156164346324744850709403060065507198198163177340562130428270115424686491967553327389768640571063847748362691961493552721890345436907400591455779955949484741361350878409193872995052782532044476775778370710387035333434806017116314052435188886741294549964661444400349276042318851304633672967050319592959277437114737493388705708296907717557894056155651948089515406575056708463252020383148771121203369903599713556750621656496689988750030650854731508765875246291039796678607590996154258877039411492142484711893535559855045036254083712408165103794341835977803361625003657002073172014204630002305231800740324305581702785535070361721103644981575653993706119426395185142635698844640568807548124369271407449910451491948189885488183863338500652449991439344894266535000617902135051935566487147258681095341900730117117615490091291053320579459839295102057430925001205404551063956160788146725858238335529430659806493324691492261771088706174363109959700414129413273449624324292370586906112719697611332492921517847240784412987346185815162064794314491155407468154995529407090037830430811113678338173474401211672342497651107720289613392400441645818425912045563443040733875824297525045756381405588639700673978133555916398723971466574872437967760659671642906439212170094240151462419446654349485422504867639487547925578106396046616736959029684754308166150936620054127789404800787662959592953226999573695066770196464385200034757814991924221399651531870917106126930180099168959994565726729120201956908056164046876685759621935481178591698442365630514936263267198236123652209060568896168194579751939022861592841280312762705758381788656819244907980137464807485445300487178632986348254356971502296652599537162438050686004442449922183015171199335454066671891877249397791991084235299702250518055911083496839828400190334787876815231452621907176100421098495462562165294511657400046321512082136535583826273821255924890076992423552091539415773438774342983713275350829425328348692093373354537314414786452995654122713464417766799567142118526755623567905239778066045043612473665127485386897640499503828909177940947599008683361171767799811625987276117889812569747120671970580516441833823772477623541549555533320707874064112397629064122078802966938861432126092608737603117778804230094122336322775510604042775171397535604852220483931413080730616510978865259977175829039005097043389661802540906908770013921958057457706698130849902924934091827615554739599101948027205137337081324801007073378103257569659710680529095404782878227088939228230588792865302541843564440593394593436946197251006633434004113480954818843994817666025818061160238153692024939238805982309983857468422937016652222704068994130862022617382869582767020092379874010557072597638222360399527914666538743427750564909959000496615343202741517437412114211472064146716718602765856954726022230008115277934106622298072854037952010095702216789414900605904985139913797269500296767075076240881498782190899922243676249350441158781878467775307241697158493250689824559370619431926304695822036499813606334306746128370479470488113015677076369544551110458653950991679381787952923722239289994545047985396653823501829593651363147445747695071664399831086572097492232034447557614837315581755312754550443677226091210342052346770215688601286470573877258300514158640895399595148907479484451645362640015383561016047915352125846167217788442656443242466889734784775146205443835161648990327420548588464057498607959627353385582940261564365310025062752751035889284301400893012475838148212248786142958193279482531799201948620115962844014173722975069413851800927803407426884053062206689328030082546302931334264152005814201218056166850076324116607302122638502701360190548895025636710238143228261033481923961802704529025240221620514973682344728062246513170561195939846867004171478793651437867586501467440773635670786128365787814962937168988776321979697100570384410038460347253703415877241359552354774926922215482645140784847872679473371154463736904153726309082463300206158678507469496248425355742157031846539039654693622800891004347188866563428406007607413898414297113418909956279609928528435202217083901078695498508539402206361924291774422897457041390224208410800466231164181279586557589500093720821007484700781108872677388137282718745248044277074214890403049682656057086904777954304971356050108850519283006367118778035378960030617969390286410671860507320974152146970562907329865080503563417837830834299125742654209922243466087543461757295540993365055832162294670679309555348271623953263683288999067775059011820082228257786649846197206534126765179918575369199227064658197110785910068274618215411110051272989877498090199237223166047172466140330559893012320967154754377456623267406274182327860395305919441536892698409351317337253069347645627135079789075227918359134876521786152361460903395945415560848502141266157694604652892821133316284194513482632511182097577596268111271762569619089485086653488612225897146009840440825636833493782138018568072194931522724515114082717697067695054935388764165642447209107655739557469019300324356693691686373865130847594154589750438532273788646698176841997152786392502129156313140295276442658165664196917134181232737803688360870740468070731375220162137335120395521816384778851456785428849477528358381559742725501927903148000535490246106157590114196363530431934032953240721372751181505224848778775668891896858966179398862174145706452062335230512594798230662205621489814925290656617244177677160212333744724970647933877604015759407180856645864584675315564952016014954944428794846973890325492582343416195712674997869883751422495638851486553569215575020316148689095517575587880383131905802230516548422006182344861904003453723677142818567667317853941502758750967528178924089873142554453023201111431747837142528221784310541134526135743638664815728624862810477978696561795001948466198168368442670833354174520760371874877494086067557046425192156407097048391134475428964228132993158264561424294093827884365448851379304658341937997210509452168148410835760666342753896378272603697473896009496719805256558152591810846114171965118774250340981774784623218400764563018474630369003523566971046831593808983326748072903859684966448565825396027287431039211414909662373127678551436380104988729096397572714272188874839346718615057362182940199095223657810676955925482393587607376238678886124336133272412640835113900851349284780650899460862710206278626883797427575775895870306541598879074330112816705982212623423512423009852230963785371177328577833600928349855230509957677747623719048310632884389077945824949055668890312796938577562458199764679116110438624444145949567511252022838887081474902356884897360579018643947777298495652536231523770952495566673022338654779708249654288118600337777988615921222797249713362655283996848582293480002175745288829287363775136275097598169944922254699695192639911906770148436848192057653122171240203068547461378574221269169776120170756973319837964423928484354809756374941812667985885862858503601589200726395268937516170834529811580326725284787698569489085604304863508481718868004574245141588084419605131493501272149529563468644677020747678972375167426967177757049573259067208614631137363317423804909058766908757652682994244388919841294826885929178492579771629959623771310640588200122533783799440162892842965436485058083286252410147549145203210838164184193627119365409479469149942051109024911010032222153485761947512052813348004001200760767692242434836753586436978746193415104184243288249756510089887554690240827094176163905356975104982248665094943518326419217972162461254682415215329466936437406436590479046323565144259711368148123918507186958919552876520357961588420731569894762378813589796916701212235803803657649167658662761736966479873533553831936476968753402392100879846660857899021458493825031880288202422344559966699887438845663697340195672326407951303469428776063516905985191810696192001518193025751088084283848326057260985202610325492168903222496426913678981747418216969234590803714307279438915174163230563660544698804806791505110827437173433198188820424739257269540437263139480180595854207023483682922863370837288139853250052488127148660369880670702931076028009705632517806975281130234682760478260879797489875306053901167412533152636474568580381804408400935592129156515391834370097756348143051032905407169720211275014140847369160227215411068438197899478799216460934315081395910544030553552987056495512276460946300362781848699137080914544988108119727068328165616519038423348653786844318938030942697534440214620746156216327858300195191591701668702699437645015546905801395069750028334998718193472223472123142109442377889648064501914660258618957616193738516918860278899568423947467634371196294264076136811186110144419847344496149116678319163965195426445864904528339174249220250477429893481418810522912142302066391943521939156339467333622413829046355501046736575392118802964650243190781146741292128727774187662696759417550607698244771616457560816205867488861321161946685786940220308135738382886944142233811086087513456155272638327735139493483680885424656336384493775389429117893520611316241471047601894773721996273018190761264640384761338956081478678976000901684067170989095104996665135393332943574914194551188130209513922381664205656723664733468015985792068143571191369747869986814058594011476080547193728668608842186677874636924685097168611480881000316216298079515877911773429131393594869482995471322078764980038567195940817394984636192417367043406074493295945365828307566641124255855449626747655713572276016395578553889176079347163399655342041933330709475614972081399873717341849629915493478577918613931572469591851306603540633750034749116016933510793405266635260788100561618881910588352403288852838650391412716457168221148151662795375026707718855215856479856016496675087039289549774630360548661336547635886314561457287601402748215698616464641858087763526471626421774943834666994291655451524942999757993354812971020099372388523940556876835200745115341738144190978798822669869280454962700102950278709699333636966475688072479623305114067136068686391780614797425532588337277368695325116744964778209174469006864991249209638586445451925084810095045690609160865848447681016227952428367423680199562344879839170569317905704547873191927536363882299443408100084794652646128904116398319928288637832943240310734929246771092270170184199547684874316672228581421005791239925232286917464515061982846782062725203003581952975255464160089727922278573110613398651627305121144802777706911957292353355291078046470519721457645566420884292082437521287652930765304680192228229904591086700680700652385949726666843016810305232657728921261631112459850292067918059257146652511271660570589135137894507149930835968638950095942251384206533873062204260019890572534732224178108640692245587760651340150581701389286229752312627838511470930095129875679909582915493487791530521281758155166396121569968109168824417459194798987248159797010012409791652590235936743293661891848334770706953382435739404749011076067842298161822413774283432841811871866070983971504023726206258998716649043364288125523516374292517350266181981978182556289696418726227355598063527810828733266680150477101211789478011031361654805499753164622248725741624216845848492584898320484276312621295035865821068633531731366519990584540213679917947978477636560612045133487061509560148758450279911003558975529080282978434966203599579758514479275643197490547315104047795709576613796011622167050071223371193745096509517944724769771578876892936552844953908967833921374095075661883882630643828677021691684279067710404905074020019662565998928135849040738839026190614457015315739738330492574300463798959352388514868404789015441868305136872812288029315033830144908260428068459489039998473347339526932533515072965631832833580917635234472820942743679697610384261594178955846332184314150437123294592834507765725596420146859112221866262005935470013776142275876647087194789682186204489394589433097221086241261768945101578122419033487141413006740393927804387710904064245514613500579382276911032889275647161011403421812106520893483704493895877129187743677962112544825413762498387384583324586444394122440647491597442587226579821347767672090758606552992683768627459231385287496126177864397389749920520181028388609416900790262250754368009563455983846292549517177821186347629439350088476322477005713882833264271482719246805890259660475958059407870656956377831425848680329092031737874413617399429824799642677164279374197953658703318623825941957847651175093950408797667107450926024950090012408640898702073986861670038824081392585625813024008634176807591299116872111040642021051836554276698596934186777983430461362025328069772467350855615212720440951659559109651311278859271530553069227762832909710195362715967104693705210114850947568196888822992599862544864607633928125343437846182104511091477200416624671171234530755323901595384862888259454814450168925514079811862890736757500082873170471238908791779926060547373814399649253367323625921906133520241790148164449373293680039575351725535241920126245044639698380897529439175567901198249628526592490986324304417743987554120487133254236853028815671204999702249960381523626416807906602067723386468884618416885186341190389887808949636577292485766093348745602475654294091857952495479546950949945028342025904830600915213928572057229967415044911223748987282804208041644888926620404098393126093267998132190519515057536734007039657657452780957935700171822560809626381848875177098333770838416102601726913903755971942435003949086612622290434413773208898049762897999838063230675865804441822335197053038503586115079873791965569862129635626492139138223672677454863471751710550433475956684884155176005450032449313645936164981626376367834309369691465037855319141210276349771125351308823251667297313028713024500779606442329233429982160970125775907977557584662109322009749018934962845511128865756617638221241144216649744005594357654367912898621771702374823329740272743423478973335671237515880975607479091687938252201119632709511455766293112944867255612334942101008453076033970725966586931455022642682823266025599566619055201319081252526711855960115632007976760663918770263274844892241482752056558098973446583537303236724120985445579689088176948804787838438045688730676955031791325740902585741379694277512265080751758680664636257152489321912982051534248988810671006838685479104089706786795985590283795633706549773842073044630261197251590894278533227052708631065796117649845976313736889214262337503952027644287064797863721451300597801682624631593221552975648753412343977479116374462018633939890471928348161055072987508586404144678175970548627508454850725410108779842968849977344540733837905665174682613339700814273878373097047345087327669515316732006776052847937634625661420558130470268560130571251390088132601198469930299865900037363414876835008823146141208318199933510531922915253615021036493639078569895671435163795102418562999458747394316513108387065912340633795797274673172999744559211198181309314313400129861873785277002809458033679531552304917272464630883395277752915421219885499726987899516148386212166263970391208866875041855506957188125709276775060995099946154052269303368179901415420214602083733441956085800881589215656069732843893652340366051066060373060150440759642016009527507015263590909199509139138894842370100022639611840508719350348989606387501970609278514193570456582369975064129229083004913230384805055559840322370420037702935213119823883312536371651492544332366749908785400217146556026534587859324226588450894411869387166937926887284353512291795984607553772458923034426072940814972091331598203137681541357830066290326153732432260827588758720219380084542298557960816873121161787729518960396246966438910418764062075744756971795055426829681115837052236358676616865633073033480783675568296221106300150058524963839259205906908517021077622911797968997285872787079930999133914677281211453799080110765063067267539340492559300817373495105459141733140107936677857011420402246116785391124336761163335907198806052263145795907474339667717343536730878175761083661530103581984364388162064051531697743420352153290533554246393090464699999019674941248373270366593696486061492469531393587604782356379150410546763772929884029325638813218345178153843278540588676396166240820811659819862532897160135723372871785737448652677580066189848903396757933018862684876999882506416387945003785058170413998078204960455837661658889927211336999809551986426786947488698453485915308767824718467461934615454402396588840786171097516578039823916581832976500463710641917548557903832007872666686319056034819268533921089194914415345313969759758190739585761555468347279285228369491165640007079790984651520624451256071564053444556052669784589099833185662707954817441058090990093280843799114040518753225571729984255834310840151807069344878685003769774387885847771981578568949183651544567265594004733030019229985744530439643516704525563706890339116028107289165719290238305260825764177335775964989758055586008117294300969631480161450715953155225977876027809674312032520220422221714331429489290053997065332630398677159395360565420377357357871675814717424791188634565742997235842431916318105955213433389675329335727627271810550466338767393812876722540558049261990543826320716556883180556237219790810618349944642486312942172034445444584243917349201177487998781608415675658832439123161354456779659035028594033734023633431425137788749458100112404577195882632843681543834600827600220642308498149476541893441378279309636629502820961609697990209279277929377478288569973177883363310449714060991304200150652570446549404043541872869807658520140811840926065453260029723902697920787061593216681502759255296272965152174977195579912104653186367011402053324527236806267950427509762887948438414471507447279807110950408806622253342192614557376576186199626843387432691654723515259843115842708126870764977295780832298897739568832114026133777442045663720970789904559869020356995298710537904335155340179431273282786943982633949591497412080706292901434179752738854169342863602594353015912073410647272722757569958992492040936180250042394759031923803327980813029153458941760421535237877607811111354330954504345848705760658846981755240892385854703218120153582971462686669818712563269433861824149423143388407752978123570080506621990098851812499949433461190332247534559504409889417226104066934620511852793682965694812012135187557287863667508525149015773286426729107347081980755840689273932076812701704846321109099130917833548961089359295936820606664639434620934338288225657803817060650896118093058947785643397594770178410083755101846571209195030548081902048315004960053725422619366220533788857807266036430626962888391883807191486590970525154446897133792619545185144533765908445499213933093876735822865477478522537763549631292608384757219985384144673921306870370758248782290943021233132792874590330108390602452481336467031284214817609065936560470795706967307363618386123588902563880527757546258412465925416490428550895063872121954105888883455183315883046901458929962941397160377143277321620392670760592883901432672743797622864951414724394846885221922402507348941016178520350151697214362829499116509068976716880478376199811739889799519273851637974688637364832623502894888147910891497448444429804531829878425352161765088145104256016217669986176058347118476720122450913416043724274557876643394896286414010713614467749082034235525661261116024235801246457315480401395843843272224982596438530708615049368163865040931733370414207349199748462368356628455245464271806809406131439349870674800831105341753028838087762223972594547648744237235904057475709480202280552901655171012375127396288540146405433023178116836199391643285786599762352442752243776316403142150528072568035970918371120990757600089325445178662198530704040304774169036549088936278607570567682776336903530134441088047953805347120210915215626218483762057616500790239144092799042755681302290977416958341711990705153364552252629516528975685984455245942608072998582336267404871771155337853773114811608988752468791303876085362305808023860572235099424684399880531061983479779581285216053076160514598680940695020006345635750909819226527169452425988291562715021636918787644176352447185714354523178028130185641199275223267493649021820134346784978578283185007298090595208047519876941966847961461353471255021736530559043096142570801143416583668949098817008121826253057967553745709183830072467836597314703199628589245404202585779712296062586189388536888011523213024673649973450649591785491383377263735385444635155587942008618470561912332089871614033408213934051939603878181448461665389553562796851234367983343515000096720389655101361263510623866380978274987383071792466613117379546031992243684409114097515418889504255129456262390813483584380366000979496078135981888881502780145829161173485493212842983117572820631663255075885976813531974682013650358599153003871756430290574154010568057451465840745669290553934863123882924859742137736593806474634064196869528099384621792939473855011451707317043572832436218733263029881285894910940422129847186771242126831588434730278038274241713724058549230648568886528771982321739418205768708242626836290525519193788685346400296180353542979542455853811314378536332554746340162694167846271745658004226958109627499905080309741770352983069890526903663402532121421252236810750946779018081993560388936628762658575997868976481923578791477971041006108432378984744362298465861691440104075707605843004586657429819863270971353766719286728723988683915128915909415772390968280175974008613249463615267731138706345167478283994824044228199616730482230296547075466770217444841068847389478049079690757694531551378909799009062073804551796276733265237835683826917229920701799910014907632461580001941635090678701764061368786123626139887226395385157305683265251063777338492676571296656817527970167587051443666476209611146425859855033123343691638957266785953101195626670447755265484259769199738032485257166536233014730335841872938163630790394984047177952290485002687568554002677323897237628689272162063909974652751719993990846620254873963464424192569604124503380749398912287986596356864284708736533560114463331209112405324671193260655882727292111819038201167764192393225731416485375574989973802865834691338658037181073416035101230162375773119567242249507813485064397110305893632542576204825213506646619969052119506265718270519548773605750523101990222992469209705499312868786670913946807684646405043943022599236629468129830259522542600487297088360859444317900908201799375237878713533174063217079247219035905598988141846913925658067887210807706320795781617272041195824063889216284223810918288803964215499943789999657640318682614596376745593462277888294209314496409495543729335942178267894412210289350608157037008571972757644008238665555873943161312204353382796014727008754151981294084394386071958701154439774195918427166506582444813516944174066197089472641621162285920091048190554567912076705258355752098569517645159784123190742337048433474054067479275330184365126100488880933412975405989795651889779725607768623334794863998100831246227117296537137034325877681212099928167231282149176150915480542278808454493879720819669353656316573567201795967442682909321037859074927149506111364602324116172573085404705889237624879984972026872627985500613080143861234272845526846543999930935042619446185117294695852023632036700352590643808688986961672117197218384304803644602210130451909438456899701839207503040942235668542223917822476797819477896144512357873994870095036757803711871540503240220662510258680073706463508058903939702567150206122814911670557307256151370704051767365293873916271591941056341429275511787993288546354915247561140803150163206134944516413766098201361858436612425498226672668371995738558032340637112873357478432544735049120460652846977638332290662178554706493011588551514205334098170044473268540963686628467971227939609100448541336837431307605570994220623030126891017432235887561075490430568415538524845155501981962373691736527637671346083081117705920193709887411319874009208767415959990803002229584748193894007863428340389054588825679163858147060891527752704742456443175923004010564323329574226686189882867112989201528064856530943858063512784491099013806110131560215659765504955325890665692965782474185275850500223032568098823997363926685509603286301392349372385004694736022340888515650014179914273469138913636379035287504663553302309530674767585612317017991264594384473743414818719896466226271574416088302994398237489281896929804762355853838474594129589423710031040752764298280300467957734042936700815787533232930612993019261294876536802762923376040928520480230367586774833404603262039921617463913981725511501745637342688626585396055155988286733408037349836137363250255140321398515176470166264254151648457353511090519130372252323344570492281981448869269425283869472094790424361445810606378348593514726622318320514922275965814746199148038100436016677630429691025163715015473657852532076897307119675577562284644027643300887889996196017164530946700281296499288353507558426496537831273710149291215284160157112575614124150119252437144446956416693327009537045562930482479885186357946195377851700483028813044440430670391739448064151977986030981483176897702417035334261839772358001639033437269920515890270836380786895566849401616905368992886253105157435994557086135385682700647865085788263148871756333490318071705630517199994952327946541572294041017553709402003782022498573998977018818767739214262434220781783481940364668625281936710615834596419674093628261605728756693801896561044185571689456528484250618560547136920188737329724318813168014100978046779541994702591004116312750571325441203756990593488805102565531483161043391636508537063739468660493078099751151498500014831687455215269784850382829797121302436484892337615928592324052704953648079877008326520618806308946246135120011938118362515596813567441778482799998814130314226355845680048770041761571720329549174905348084505346399946828712206285912545489049032019577757983522577624071667133497645593896416659729855651844175734263258970531508536604538867028941965118071111477265411359242643603368849275629108717977656081214141629620429149224479398395520309079634636647898059467742427050392461212200216349386668352960338523604741924261427761942746384095499831615165399665801540907642461441054164851168277889745768815451343960970272455476603199748496508133010253378070637012852385651581290958101659039618684581208148327362584258188508106500785900159405718119786286687689111104469669122285590899081800685500734962687374418544894271545371256873338215652324535046045434127674119326135690210290118458796682106197679581707848149895018662849560332226771898203109793232238352117357561236829395380811565593628203117879873936370204063281590359812491087203917807060428369422123441070997123361759076281944364742248708375294851356643976726339636325365800919088094361625496270944938181691739956871526685670457532180876815307667391267569044594578481864088068102577989692820261830486480093805002525037168699106322694841259758331866309348252926648850668111180574064368403081045692923570601834663544266566543386040760883712066386086652589277933006409878900296587423697507366639711374231698635048495034639846892153673326968014368119111616993445106530054084708090339735208490696715755270696833494088650971942837706583821280194174804170332442673394879574804483301711701940142151956964603113300869462219814030753742126719411294053547676569688636888522818746342378043672764336484396042276161152133583495154048614089765734735831980620607838886903101048411250702051462486020106005185208244296929025065836846024880338675909805523838565486955703648309749595790407518853283844037781876169993075733154591522698371895262218062831184268216497886409019994881786088618286136324719729569020465758645542798176565391602767958554408484072380048330623682125508936725913733107339438457614567547009448096019728455403802107179771816005630131353194276867815763021386766136789936436088284662572771235922098059408373386998924970987571516444140758195476489156533999956905873976044461977405525897009448684444098790758209922808577507542710907405392039993330427977496695287945414164892965350582756891709625330388391531975745066925334931401475384349787086595185156490281925201381474655041256609355591261225068729107437025913339914208014668865798679763371077687144606741747962049348970015735692670778647686685369339144062858579903517017085358796436106150518025844101342571551875288681786421908256912993474159446132750613381321999701387454571719600872660943720367815297979451100087866218843381543289513660846194050008400641349006912411772281646021457038700890696233477627515463291375467720448974928805702849106964010075263725673233098207007333826161876478465917235230679545356000171767882314818464744567093785004492907542700162933594649713155954585498978544643592948134607937181110695461686351856857235176524846518610733108063320111309226987891336236716623087656181782941848400767734376510543616273700386212614556942171791466717196342498223260448444795291782495184504476676369819337346162096428641914764236323642731477551140677127091814979674130768145744502643536409645380965026655813757799793143048123174069544140967548515673568981760406382308014308750325952195303601645969133241574539749628605843854266120665650868441784912168410235706677203525609941507680422666451641305191564192668426643412344380069434170601301252742740824915626446068173180059999469500195786778428814313699967782605606414541039174264890228086019133512978186398750485342272338444033144349637223761683572434155627575419539568465951826989451517014013668481782747447404561981914329050931033258974712410936584805225761984703381490440335577617609994247643070029454230558115460424169001989372627380751435164504294819298648086879787817621177467513650409665631342605220194596566730469650204378903829485108773405352889767964624064228558134365422557878974775373792594037070996076646079431865145877871431506808251551728575277657667886132907075359672122351120746973568593160024386464014423589493838679954583741229567487813774302507471601193023525787722295382247017135511432763509243888759653636541326035438410193816599039659109413355733375485052214286383489799775116624102443205056131272120606029128731957169100893696728233441035498495542452074090907218822663830642576519134818398052022212155490179885651404614741610379874542246858605124327273085371383111324947206107181087691470362946953918561593544612595177039492545505582243944327823973421894231180866352719629186568317128719443789335465110077982812861450684721501423657199004860464827474817086313853874068216551474161245692463571204056281933576183835135234234607122981277167629567787203936246356231755564174944282828423135863621176117763279123348887307525644631101336448931066328124974051298160467581207336719911555493686484908915828777996452171977743828244403432596234637120294445127276212487390399254556909100465340523498257002252366426459640802617449532849084362425666580821721277004333854952817004656079688237776087372091538855235029425078569974943152832389229684407463840515247992427901243080717903176412068519004127732234286681796967393180444269501109271172429579859746799436405003399515272345314906982154599528924895795898118533103769355808965306868966374304826246692800616171954866555406268031092974614634030114892428710977688637994411197234624712312284653572111449471949809798885567024897039710813656513683042391585405132110987783947951397014792675325854672545310103712273999509704387510646291891018411728452850576693311110595413799832817517420805271572467781858589316426746428813406398537161168743653830705167576482449092926137540571012990126075990005568575732303348741790815475686722132807795622860384938748076113435168533881678453385520728306799177099585955513183065172422919647089641061470252473928458415827582945541073775029815578087817382415511436887267812706792603200658790210235791602325332677378512617319835298303881439707678812852045826486688505341134809791028514368085851209104860966891756499039078046718557805125788833293848858926830517684842633286817535208789558347760854858405113705699038446778265577886759942913717859328287481929115880719796697211652449386125419858832949785430554371412004941983536092221033415234531754501009013248731655234658505702457478326098311658951298035974191797113023767997897721247325175971147917649841790187669675359404516698496942476902938995065949195874656486742120982420879509843407798069828154267919534830217688188771262156726986541788064616928107860559350558428365452794552689010310539745155612964316900582669457439881983750398781077531263875370214216955937026922505438122392523389162301155262318416951968273356121946537003924913812759021075691524224243796941992715970382472283755403261538166815193661085822511473092218387057668241467751639676367813338516747442454556084049656663187091354394726590422495483264091867744532727231606355738407259154255667498783529009826906492578417629452970922272672393472457731465063178309393898940098598289273024188253997539120526440510413565550477174770208073326952322137581410129343926430469159664512336246448809575781764995481485126368781872162781289133079975076882368974500294243125610676317088512072531839635192214752893018365382634938551314707268833918531294253393189512935203410860678522531129101376983274280993103411437194256467870742030952483605015399574410274436103516462698213939270044577430817630062984613141030776492055535781113768817405425009005345520698334904614527848733732440950186743833443106060788938578095917884749603103765255089120295701701083387163395842712877801745016002317114293512825673348142435158828888726079628917192572365547283756425068405694443377763022058950783376376247477219169570722046405282109573519802674728729022782983188493127999274196272681826038033281516500751440510854057276183655578479315663354956275733390418759116073971427976170541032147072395334893895030006697338272295845346409061449355663001584542801937022082905122373769466353364638651198924546430615091334216721611510521570088043217817387803447426609658454917603438862705748447649113274068608821428497462892702856850520441871171184447153020250008926236698502649430882537069631604379582920696813040486035610766886172208507533643624107966569714103127974998890718581970633267042038659558668826527935138586341735304751407853069923171584062418900433219079229912347461442421550375946974624653173500168697669208990306741149158798109785625861424732661352599326268536843592268631991730210588409597103883605711375768561689587905078825013716514248145737518558857264679387631023883858928948734276706078453956315085552936947477121776610550052078237947066791616872368044598196901763061130275540190339834070053003486497277021707787884210537971155330750991559099846769778700742822893013787867362795939244937883254205018117623903110808739253086155067086009311152559033208206521710707602685860041529076726712552815100586803683851447671426788089521440287956551730140747045359150717709533671069245427069009287606335275928805799056372368129013327783457058666117297904638650883975750151074249983474657974060245116206929776963507395348403032114754767584694431238678269091974913937562379623669350605833841714561490143013488586040292301509557874211249120725839741802008983870469877571936010414274185567323608774987340472589459377777055458490915311413136919824958529379273349239893056306295583032108959304289092165020149400638556139798041108843063907416989926571394669612415753032857157998255746318626336196394362848033454685745007905134225169356102949719992367847997900013092672297657994692577969248920702008599977224446307340905290439209684907191722942484340513481482589830627327314434568164257890464086330209444456304354383021362986629986130766952289528853163458742931238316270764684353761767610318832494884895572828014044670802959138782381383753915859483366137025787302151303244842148248286237398250616234736460241236266344400057648007435559376520279683462125660118619583086783672692831747880830200953782798827215920958291980416810464291187093013616345555047082607271373451485656877200383069506525590268636406232014627446913933849854946863672395820148643879298203930444101577676855773725992632753878641133047916038521483222268011824806477561205708360420524850833607161300504729565063770308921538763060688734710587397454996825679434602182569041048658195824713926654827156128030262955907766359279536975558513334809975387215504186395963203795139903195886643506156053567473601768355320831230106766996678241138653942151063534358033592651977967386412312576470333277133973826868528824037358583248199972757574909619858471935842359373769763617480899240372463020118495705258370266370010663592458172289955480453270006837843499672333617820515224889912623933361711396538540298901335430117716259564501280907503123946769842385375139192978349564062097442752524652685800623882985688210274412073729551179695986979393603842019535587464749760969157212084674317655081410425881849598363973945554030380425226508338908545253217127109261055009941000971374889172784740596629499138499528562805928340186989092484770741242357889944745822365576827250297352006149658535169155996387471405375090126413787156662843624241585962951287147443628755542805151407138805843963335099692943134571626029063534613575960685850965256938764925906688357444251949982926986351550361088520419661130105871605457983674885145468217106092998381251064779393084607173973279283646058690940846414641902308279379193635433869151279415640751551125946514684461553354455310260008360976061132010705980680317016421370962509904810129668810714662975861975606254974898215523932260755541166160348935599779050586916953635296338849865698117656781405926665966353031889561285424132302675251027600734851243258549143426845721595092157447669360498909636656239546026154109441809712778667472936226115055833469130358126492094281937549388519993519881295006406965595984973976696769204327284076767766821638351979152708050355864133932061752160046349928966302618750486201237622988980465713354933439739430698759339001982460037447299232239022230141541891614558388300813521495020472082745241382698114273935994475868086296628074709982698792152019935439540381065988650677331856973073992293830086330434237260088726412087423389736464099479015967225482647075884954043127488886110034763399144554951152299951213201690359980933169394946782282348312927143517188945655277961853381090225634994215849963482751475726276585184581188119347965868508901507017785234922232465120339267933197549086067082114505339042513644140184028182585454223952704175394966927282113696147115703856626468603929604561986784857463079230019625972053670323703094513556571026648155815364591278559004796535240211740984223956793578605249810135037593081223891064418329850535071996656346267419271434657324831139918037461121575155489463220589905103123648953281396230990915350837220909869127395620207133093295934805781078572985075614425393118670523096897132179186482817014411303347683210145854488624920037282825156981894879878810777868529961340961939342567061594352248873824840889428681933332198182727530709298735421045318728604115974437371410736223663051495604080659880961970329775321002022335315490994508489183656242954815089884176411392331173424470035228506097920491346892156518503021049776916351463381079660584704092433436238401449841657460091596817255409867426947148238921364282941067109914792690868612738415626308857956566626678151069952505482341724862160265472590201725001292931960547147278130584037108660746223943063633896009025078517406140465219902618274843587344189998411855889259282193280944014525693762048309106790593491772767853443624112343307824322306717730754828758056332014625840367568057278531155164456339575291354021570138503640485242660835611851576426534728506813703756576797732144805218204404870662271090874127736676858103757974628760733027354861952008762615482252750530866791671885998152387449477360963124105032913388101948301884307405388997703020923001041885689853122870509919898088284876125828341545163810227088033854017317628557853418718414140761662989661568543423916712488016973303117377709801081398494479746282442198141937918380016624691902356441090407171207928881196886362732061898741220744704815904669958749554256049697258416094367961061934832765178732859285396216670215672516062156264830541200846641273431923171852747456644021238820437374890302361521384760619640870999682240843155209148825844745987126321570520376281566465034267311387402680643709239154891799979279990813364819889189060866612691152886320753993340597908346524473177835927764458806595130978276200766625155457750662242705040659504067979779337431343773958527533986961138217084032834109086582969241009887114416275954006768132666641436167816504461409453833713414848059249342486147552890770083721931584491071164741363369943926941084836534095038031007374251153189288444623384166244413814530519805451880850119526385767460755446062343140820276468168409868372981019360778809726418171888803242446873016168346328138805951919412769151481685292330342219165474835646551146513532805318420633743232561818877270573258431788329280088370507794593965552984142612564408546362731036671408632583621899365837843934473933972785191635708266121918249419032904102550244179868987030773111794859092183352078763972448249764184331332746097783855244819601691676600273875695958861453799810408934709310421102270829313052055334809359260778037107017543574797558812958952768504801036312932681158937257834639391236479666837311905780509477253537359382710239325627416468180024917808575575616810404024428405325114205808149832731769524575813895198106761619148599491426084214667063093544755504985560615636593245787353075358222645353709394108078465324659238052907823323326318050107811230207361576906995364681254532710021429350084159726497761006466427897271925494235928971958932791623598554379314374690639937857106232132240196495900800353270993891596993271711136183797597070268841252473950016900881508436688272424559093478379264533548568722333367210212206317732469825017346603123453911839464129937124219457063378702239704420924029348495287516770537403317217219538846676945352609436838763566717773799922131847998071131526230939069353470904420462130027384141104205599331507650340067483979004687996922680799149985657414044508478563494727178315242089572436427047013087637731647167087521305738458981851111737423957563262397843771341421688560621161012112600106788062385331229766496707656005582124410467747936403545136680860737835240148339423177282931789670729814284812574498249256962089976773651102209477224367195471405376280201606377739577321719172388708253054341679679597258909054592391078606153260500269437073824955573358301230297725006927147059722158977472637438643490371661513734005463390275540145056782954468011063706626378947944310321990378612631087588629155836809914580159168814461078285357982472695352323192381377425234675507001525767415951598298708220833950166276293900511685663883321092141373726332133405347578577157623493302438429738736584474284868824994458246911718301238691706912781674540638492270685680341931216884253787271495736757522099474545932031748035755708601851652230194853362421429075415911043672779414943696205483791818567877030435222761179345837043425477335189483508927675020041891246164373634931864729336579478995932530478349516441930419852235348746048361567178850321678899366819662684066231772367693847667388436038542561196595556932670427233089406624029676617758570327306466611096826544968941300334604810456083101073194259538937174119603008831293653215381641113418627991232638744452947699405678125146579749082942563923959017761347739108160151690182410367157051335723250224447132725730334095834864812229327214383057958592674028149361984210461690543816476102365407820820047286628039414035964566531443589683959892816858536823389125206068790892872707254462424283968919821669453167038005372085088308746176140505013841829642492400536791446629629995028144157992099598576419390898216163434449726365027599606074129335741104682207654036198613524925887476101912545206858161030475000738655234921820660030586475025803893163960241542125006060970145502562621291899162802004153300740313686517106431004641376472246359592911121637675329066797094681143375976071483754046355849570550791700908905190300933294396035435323374437857209539782096917538793740545955693569352500461006053836258850048228314722027808970573759944744302904014603117129169245218684581977917862612827675063064820545224644347363716903285648507741490310910418127967248515220682096011115025129747029763745108101135642160867198675729350942060185813476801247535605179196582198459811215935922656574270834803675793805632554561381164281864514856460718067070524863896769915011868733884515944846368530488687983429061362811360552574155879371879743832860573877937393774414226524679624891450263985668691353408019753765837399843272755778019722045851396490501862731059354812501479899355199569659296258546787459328202015069794006789724388023293655586298000615487687490899141491966661895806358028971030920360375724016012557944405359574546206648822651356543459124945915660038800169311157215413619196527692367361346700141103330484008373259561345426071296683788050840052838785280803109067477197691505432642324277503420183162145065915805668375892409268747424960465803292211527070235587138451759677657455960229888672969596171408156329127665885227057861549285863113768358998724066186463101810748873981613230501773871931364774805804058570053236232439927181253480464433770832984004646466022613685965959984053469949527379998302266656086590284778154403314478259690020944692081157704517371615328347248921717752323233801606768042108577965502112930323930990534584513408978208249287516734584823031687836689010494709563253343336662254770378655903915317956603922251931044499713342740338448249188195030689482636792475466577662787154768980448474975551686520818782420069680393542534196673574205310125090411096440242783669146445791317370471736913484062107750748549408505394199185785150700302505658445177320912936488090813967612042144958404089028615725589720629981069866139312293398112258143681336445378741701251657041061466225875493858576537549193411154272722704467365476702300558005496266851990170542101987685379451603368672492581501235168001927696066245583550463275243634832259197512823170333549748919623808522762119868726806674508529221038000221965264964551907554857254914397994243428520259990318803023555391745356806671802504808281481280047691869515271490655701412962211562503785739333180380877340134855286775254027444186901429552860526311708930019703753849809479590535475046272563999894408003993297259639459931932053155003828434629088432470936248204212331799606968240056050115142032739792312022245656549339228306950726727961212858804056682303519332492383151017929147749542087501892532976176247706479733153204727915159284045843067885796760542914199214808762599984202600580643417353809150187296128092124943996660833278085523241756650442889065899356362070086272310029195227375874733029782376526980272340213859129820717963332700789385731434696856167996337604994255841579978531802523012064229650346067838300088853156602268634170308466269487228543971638560575131322070206736584007096461217771463516626321235578066258257196195734607454844415608663442526675141507238607616119337968844837155831484500579337270584430400637415628772512345025303283372855480769930128542861868695269010619578803824353674250643535134416130017010812330436209067841984578444087801118204447274496725511909785079432326475976606423847185631013043185028335985015016768463759128157869222216601345782523408117696214191609402878691884965122710962188315301538558948925490633182671262565549834667727311557521149783896691677061989896810531859505315515772639853995345418834900605340479092267412389706979294136087363505468277566648651380101597931670104680015818738933377309938028297584079716851429507831176296519657688733795532740902459363575672212293693107284636174473224966553772530360642388201855503986174629387524739170030562287568983493708508865143622763519952086176694515196582274908557034688600834907132282766836035562868556226140138658138232640874823485683673325616094507346560470234387632520529139107532944606451267048822095918110069563088394155217352519384028730856802446929365351124387858033557859131397679709266817830814091013597753693341160744296819905276422929946347405338348325850715351801526947655645076433083265000476973540085885812024157044746911032601207312357564192158941830291152697489358861222541076629396506921239570526752969800907723728529139229169500723536270735921161194724182007052925695824870454571470526883094798746985786296458444306947502227013460317182559196148898659960271116561523966670132910712433997956982822832649178181951540624400215842392131671385731046109334705823036526243529642886440791726592677371342386987964797980120572843972331221460129879882449897066489153661816370472901157107557896607462297689843970461379576382119537263747770041719083274727122205304264283074141464821196362539778701788204850976313470898486158362433095784738333822322369437262046886143596592572926543321006149896579996457508685664056553987101813210124701566001072919372893441455186778525124951624800049329972405370125046231836152949833864445224039029660727202379689500986544177503604717788377987766961639476441360511080480416896001570205040954358774350182653930457240110742530920227786022814439411151802163855278005223772778413351826381208687522952767140692656949846314144914904560769481234223730036228117384644423640449441825626682938582202547156651701476587467502888038083634649934842994022423437162490790856767868933897685768799998632635796229851400208461490757318513018966709769445396466773160912938326608919661965217877220226576101016741162619793713491203637806998494152120325963929383557794144822323437916599265342562530333418283849828413850752435819725812908014713988109332756110475276618357314943777062093674726388871033860515023584962319046483029568777146216661968556614228813363646239219992984743171891384780650281722428128932533545374145680552270383135299204603074327202201910073131785217797378265679705277215631774817765763819133567766253351820471363158550182552178745959797995930984022549343652103115880363405797904110947599058167877525932506818560526332646659776069937990449808189366898926362520150953437399009506500595136742897429434358280740214134100040590639323784719304718953643963145578795549592132620371075263532812978708905749476634465179275268175736906650339108704325325011361812558706652761923828324158191550426785155916659585554432764152975594856604229685930384734485957828048942767985734406853661734475053300054811701831664563778761605632860127979909599366014687324057514159112197611921283485490979180473459972216054785862801452616743794608742793340329261528922202442956730707319982205299712888694372728112204002336937535981957863229920664440528552811539866212451941963671500106139556274465027094047485193755666250963211083045933617570184289645000991772394388637252291208535995498830634266550666097978243585857366536084758187544480160374337518920039194453331274045396002076857145612580782664362353123342933053933258124960816349473462424346649153825704907090846920142009623484290562817133537302742607453027204056872435965755470644934480597950027099883251337155495974243151002044619903616440424473702667269825374669306168223925563456119186416621056033125124657500105086769342124968397894209965728699442103387803235988354652457346446731399957511435752971641936507684088049978326702092996846073495453924856702634062840843221655719540640000539215457702730235683494708493476264308863461744052441009517150494051917095159588440200535176003701712028101170779436720268532759331073341695740034109261518976253098946314866530154085445676957034498388587094654848816961472265997876676800712734493889018106726106049429255213915563904045532303654362978580362434911693813979996276119940211944921228388995137775649793327899965178118197788863271366978208330831829751758039178615116976536763569718865847999661853137353408853317411570688395495757389078033063441230729715899494372311027630554625796510981546105926611042811236325837032028623639714973962014308194272182707109277057013475588444092811973377156894742489376456124883540693940743550380204540831617800712149791233971031417996810019811460472696362605634328690603852063507340739806749567873023160430787113058343848835780833044696072530585271453942515989354671111360974645464243335934150086810635496966534147751103502245391246609600553481576557201846653557542939960840907097947250372786009280763135115714639655409461923143847130739506919448120593468549097495283848261298721523116227750997730554018758175219813652626645364656671094859606438823557834576427070539718708670471270423765774473431574282354543489507397896196951859194899433950236143561608145063407377034695010235791681406734038678064014443150660376273920659748150393716055421635555191824563436599509693451707157731719006056120995303157314136922760296642685956817873643749766524438014801705009895855050680017386860082996729708466674896242770388252259040258819494288055547729754422682133619776513039258730867179157470433459529493391113023787519641719543852876032997384343983782289183767854882372442698099747334077194837191699024489288607217424437017781179319672869404416287392535827659604720448659840008944155143047590582405451611314517539366235044811903496292990362517792530896737794393072703709440665278405099700241867625040774644420981294688273316061803822569864229893685034368407331973412155903631458076406143871991930364514863836585791329803952888231729836814213585600503987540548025477102353289109224372633863963981431334242832050645006278102194925294827494820202282648407351578057918120124022295840401492926979735127150213562653924605404426547611566773758795887009057662248190009870950421465385634568678710450851325317557354782695222547800853494318567229400076422703723236505290346479031246446968738068912261630191315399312767972568722094563426257530950460181297302447637285060134745131623276942255413989404140574833633751423803924744053072208914455981053303974554436315627489801814184933831183394389234728704901093520592159630548480728596432438257650568917179964503182817782641840767477686724157209327328013989633836768334676314988708052861680677457773958173855097078653608249579863911219421129707933091802041951430886257843541528429856820850612912175056156996082196392778030130539381469349397385424105286701392838294523040870817040461621439275912155908785576069446779648979054175983255408970373748292767689680754068037624096461568343953349391529098212256826785559331265748973356569646930284343358134997631953045703650060359894228565159505562047712298022965674191942447860015417455087155123573011264475542851466791039292742388176199385895980873212100824000044434397695764702544564950269423601668190277063327829406602503579933091346761174367607016186310402839074209097078143375270480864649639576646424548176658670814159636333565684308789287863573956924777531606928646177061608439216748660588680646107573026505535193536608588236652176777048858628502613185616738552593584948670352622621199580347109885439852250948446192916980527295754544295797493340310559429979464397487733876771228297884319051751823111405478167099031422097129631231802782293836798163705095277963995685903294925471010770240376738981665728174676090238261356912624266209846946581344419301427031497317854335137404991800563989195059043585332083867070040117415306418147498955276253880945712077339692330884495478061121993240645093306227265215470267842467905245565307700770505704853869940985148820501885725083037481286364598643839234710968343887707507202181753057650599593731549300462092532111168281898640647872782879576051687824596057342588637160523170541437513035202530562897202458900218408010131698227759638396522624283273751823394473177032935066348167909327511045402644465899982234113489825110482287080516066746945451641004515874116604567677684955753319333622100748809100341717592245726727263482363225308256025285987245048197519513185078685935566096367968318023606584916890002474858425480388892341522013212019762201533544030586914272301865488831032017200110333693403499989404124322840623652922550252001570082171340408995094665334913959269185533882361039755643363375015394238034334799406318248255842448577139205957415901154267649425466242482425526696759478220103474443127117621562129605761136765995726860561872499396163767895715314556510912679969979349954683932992023689709449269871895324061627851349703342953511959108005591026391307933199580995261521510988303522609839781782244623781066808558488708705410264836347766188844560215345039444584351164016257053699326416102802569453827506993670220590507663339427462372315440896714348055263920722040011394452427107040805285833016262377751802240367164385013636894143210540394198759484370846051147260567609943549465961242397343404746948715441802631020598869704493696765934283749294521823264569274526072291808012959197974830970430875319615964061237555396845351432112478104006458585049584626367003846743548487892266363274436855757464398872012954537493730904143677000324947227891903207633698753513035128998923987759392535062728481331401390023397496356645145799602903974649240996389237270775495907967776610298741668053584535400587832141430263388909962809346874052878585913416910443324986747761093108566360503878786076747859252146880733030986815824512180276613715920234608488154136544179437562755469309729944254054730386128812723810337489525861035611590215006279742958797552359259930884569644788905358583812527062373058481098766355446112569007036835999750814509026467017571079832587665721779373857882392128978647653768710250514204539072292474277764947288401883443289174256862152456770166522869779815358800689889791355971629367236707274160916009768062811980218342994848748868254624208060217974857208118228547959117849859289455150490219733064826862870070882585156412588122155674878536523532858518123900213930181379203529192309255496814191536849966988612192393665753300168194929384526949672727855714442841308031748345246861268775747808881520408349606155501114322237707354519532407971397350516282751786200056325844963552335220080028192338410974201036099603697222854156092886997609435652992437854167666962639772644456250465485660633356811469300335813140171103138417751938109215663769229729524936971416139097166455457296535118556314719098142295033262044648466979563740009527457399257397483107852387369134815334838876243553790087057033437203758159978312810505945057532516839725122742065886188456900121709411171664101228483098818343647112136985301842437676006920982086964177150268326107411149207921092635802832846657107054946852420202296267445460778777598554629804488253682931806847829939155736211370655035680742280047303434553279184607130466817684307264505366981740581665478228002353690738803985592833492705036377838474842421273755850960088861030740343756117965540904920759762004388797917549257754800193339378660149202238084970233417681037707411971382583465844369183480768049693402971627062101250233101715755204899086741897505074986147502685765658713738496013897218119877004194706702730311766353548439938911196843996307372083960900070688621614494074676366461018698527838760817292769015406434838822465084645366916668150108009464492731590073812453475275007760086156508545609900670408633070924472308091195383264603340554670632939496711374202826172179538794312683867766791136723108251757209142911065966105610255495116057043063999267997345352774701501104281737207256496411299779621755445270560633826208919188982379162828711180145172225239390655772186157942641946407496385387527332913756194190561724937286481029182431321862637973628712637152911300153192718083485594847906601608777245822070098434969690981193956041489840209574129565087861056827090338165897056425798883049582384515826368476357314649940031235061343725012146204392085148898037809721216994384963161835121760299928748114802634248119572166743911993459830058779434259223309893866182018511891207748508735088211251638685727158197981692574708235533829510106672224760979004698706395003243987642653241822570570576882916828443406813118598267785916135774148415467427271313315577887179266533915362400408726615592542444507162903410343850255740960707748114679836826517975342495726367561010202627240892426953473207252765281334211822413638879727173551679088444970197795783734531142072280242440137300466740269862844382603551916879536295664290671246525622287866315918181407586479472984015359341015694941662688306498835935323897292786816121808844033795994074146156377220624568635412657579713034423336781445203771701898560453102865190642399896400130551410126623239988379174126827324851595507314175070119048269336228626181189848630910008967181724116984217868631637310622805819413012621010157994997433105621059654484961698593327186847401170356405467073066070277533438446873558595091412067425467313124275767680288502479851550747695787257594403360106145507143848679493542802997518523659300853105533974230614016549201285764520968256024459777938698761449548004602625878752388677891947997085367571224495528312169862537109221571365121698717186818268326058182418578495538266491069604160990698249422323445641297267018876087832030761727579549531014117045768521896220573845532398382037681584517938240351007888681269372113789997136502710565323469386915082799426175159532139466530934152208311378301938049166823368931324726155594329389977569427909151174313526634080519640493556831258813781303354272209351008644213520848682851484718858269626012876042210077172402590431319054586366550911267324135416578176481981205771836605450084439062378154279141307894577823496149225037856070277402725065506443546928754503506533509877975794630632763371932972137831786945925633896795911249843123940465476541977838051728878942386015991538381799046773413631626173036602040219265923881966100733212334881407003332442543044836294665149154878159238532891505398455311251728295886863709838222600761121575439353594671676872063669177412512485187076922739979000043529208601650729668465458895466215068086580566361622320731849009258749787433804913728162997286606933973091946198780159776457803150312486223019961256821681754701933234199443295982814875833946707064466788469107778527412835829683250119177348640659964924442968244422809169421065075901870523095922846239092147988289665087652664554565999281958444651785048590342271635269524605513956982047274436142087277254501503041048158282827829302749367764338572963982975729614111434807501284962823269879029140840415073247068772947869685479938708565924250458481282998413547974668662091174202934174533269717703272877343706851834170502267430235775070556011899360019481420768550977590648804284352594819217374501698347054401227007352658969161654338400515540326864313106908661722145689265184086554190173109109133426796719866103829633112393725783804772326674432970914224600553044782213646357302769446198314043440048840129862003074567285413750615529340380201963757055113806165773531164044258806431447598235032346222078375049210214038125946794657323704065482374513040123579823511651820560167134376580438655719978158125110573229740557250805402778804413220741536772740509847768069667986009834037583436218905662036754879608013633074186884197845499584923132552372032090875471955105519691284691686000038936065457938922003988641645722960485461007939181949138898360748054828736438030157777756058603360505199611593452178120370465520879564143741977778955248529956183451078213441500656200458951284967679204597517399454674116369091093047231858394205228274457526466302420012253727027319182351990266674186885806281462620329976858156778393885454578987003729925822932233113143172573835312098079441712154555164874374973750046815827207360699022199435724826485849482663058936543178253264237298991186792554542733501403681812097248473498209932102640581870707573401047358855067658583817805277894361974771586765905371555140671354232225213362722907388791035982416159407949561466600192301126525285532400621562497868978551969086877262396077392761772870066954848188012690534001696901477176235504685008392959685039019144173679913903822279929431945431508948630864228193026171600819122192148522128087747565376638633558301405790999677111691286159034593262489375337708231367285387707009485075875898665150674620857990739144257053100748945860032686432865874459374583784063002638221026114696473146079867612196740885053422768655605697771914356985575189573911600803628850633055751945237102901273757101913293774896535021266878014578986786338061166282617293134889208417952432447531401030757999492194525310082212305184771140776348058248274534686032284259983763257972453080821075902372450405351240867455889218762277855808687221486837362409232980919839229604312069196784974656673809623140905896304556690926784484394169888434153016992543702165858829266358201164428701770540841337232402816857452073331205363598731891949164242483834728861821054252850793994208819163574422977341785781075812650558036569567631108531082634740560303473724202853910159462672703383313578286737506902611457200559488009642414337429807549546790922605404990767316946946970634606963531567665479028387318292709668775946976649459196399301714273389434661807464179849796968362962013861367093885993658185933103000379902612578842291556927853968474327520117653733984432849029872381243338313079310200966779508042940463363471922591242727025108235008833072289714965646852162395889141477054654287289128908029374329930715341236674646736352637719377029664007181982714053012574154775924878447897902758975600601897992849995714707489959450801423034516179040559633716031371952372214666089978890677728590767694634561257270002379149629866423112260251404799520109214637950873843069008002661381827756626025216421266280156382425254843397935136507776505351217105674922015857018826239707667857543755582145943115933914365299337351205329180835576091446346002158538706352906174153040662389432886560235235745872020749652690822974917209198037316334709294517694390325161473503658028724422076994229575818774875979088979510370534025003769946330959563218420323786423437999361491796256709271111735366122255443535640445958302580897545927604729453508671801645505016250437814240884692007357791675546895492997565043517414906370886517063166951528741460899148020355879934495228328565813738533823961862598907807718204595000433145318981763036230749456951501106606795124900804694469131745550228945539415553712878828965288239852928198582990249933741146128286690368295337663211420214407491320842072113528294310048993746025103696910323303851331735429107556724272748830907756185537637888469135438691484391090868748299347975165140533040365938304570052009531921946035127912416837189088108079238573411025268305542590778919356481975565359937969191371509275501268616985571037393856805655107027798110410140810388522818741491857885751040313400083179553712303218801845647933482164937389446582773892411680611755585190263749695992451902559183265763134958082892331696898778362938374360318354016835497623039819423679047891600265995316224113506432667831572577621832084412095014445856504480850109962319292859950281253906251004554597102502859868567862943532563739051565864920873251959784919171188946042992753886543273607903445929099678275897769413648567945611984009274188214947160603105361842197980497798716081896437489404175449213612202730127296269893613226396156380483871364499911287832571672090478285630829130671403870006601397705693273544813827467293083278228904230000344575235067018034313705200596130446457155865550538410827836621810619695681511198495185078595860286501013626264715862407765343373943883586005250220596240660609198680018253302964377602175929587954125944092572769753334745937900507424507276596166755590952762245905775893362029844521246058497420531734992732207043285876784211425738067505492081056363407415296134573964702202157377192880430394802798544253386550768016012952686288670033675173115117284958090496379308613553886227789339674006661247808154233360122540034328882319416879643574670961212322227845210280130995095170921574895040564691933035890228216293972463842850020144171110668540954648072705929047161198499275063342660152426421145955256869291737238226486805491344336031248886719263887209402178345242650194097262256875252815673900066254698009194963884578860402768286773040813356725460593036309075959498248689364245921748585818912329846954088010600822129375825895129184433373974063559277344290684136931628185488531220001346336750481218668529149546125975329047290098172540756549986321694581825549018649773276127094235594262793230944455132848803257360692940231386715482054279820951489027929903128250967697323585062405162624352161671069041121841103475246518473588291641742673656348737946646779170813532433316650154197363562277637157643978769794986376848727638170516626664639554854786432817311045517182227259609568745428989845502513655328807291912724822851970394212719187944707392032872639510706741715640776943828047408420185234909859819525579792221614531577106162654558583504088160800940624773859112056387804569942941559613720186545792611874477851365584753065535284676161523324281051096836187523405934466064172843051015708349730613680883545773227203275808773422408980530238586218650743256892576126065899456793213157295208040116299559437858144898729247728523922170856553003444866605778466829555907419733577138960971194243697601728640496986136927872936090661756650735792959339875609576088036787441806007472993397645263088836883609194391299299817780603830249618027878999471649205637382173516944863988980819168919253759740497684611564893171767398287967562040139529672575344864778297776943212971542719605266311694230127826318910060534655831015322045630637767295138016563532812236285813898024409458784743042150568517884851767059921566400484377905530108200467266604220288904977642031638328475419175633073959201905067416388143612467947476758230532629617676309470460100771639134709490178081288356138441409320897722520443997097451809725999213573012692986481255241120632089473056048975409650736403214050454000171218176303956719769196704721990855089158148806069978467212647505961521785453800552312451794851008971943598724761785687866111671530418854672096165651572450606091589699899590510343848536425880902551876185172271715872740820643215471634102018143010629970458950137749170805328920484973555497236115112918897077972316776668410247079634940581003421688631946203483138241530429649681356336149312718014874522447680834652770242011210042865866560057648481885499971940812653266156611380214026756323006118633670373927093992882209514473257572385600080522886331242475875089959596476935572902885844497639058555312693334750649672811952261932274678646902011844000372602154110430912746510703057543382641693161244357171663972363052910756268407365905240951756230549733911881841827664003468026776365487907054012151831033314534840287825875618495923466680381333278015926620752784543064525252109086434705339472719084863702177735827620787396044480870414146728601073414962253297378135352175993728488580162968642686055172182721429986019461859262455361415187107725626943881171853701469317409660302904276270120204200142161417649940693072827790831956719443581651518716289574810430214285184014649934003737775029363590001061996075629346968091546661405283727337067922710422280736158903156879500247291244464027321163600694870184517820927461935280872517345171108072808546118903265639919512253852462865982563277910794646722506431522736765434983079470033929360769268536898500808677021821736851010901362994223784688179588272066983930078805696363232445665197617256534888508055365723831680627837017059970923770378148932090415790681370286663454725565889005509662053514906772324686137445349688355129994388732683036320011699713494310192712663898785215602442457378395847240387122106334148821016323873630043629983033180592210554622771156858884197818791787032796072313272085567457560154341876942469154937942807321035807949233650578774007577594785195396095445903304468205275465303764887192017275426834554383546322692514428110819705184173805667037280696634600821359395796952919533863972811961681955746552733001701751926681405972794775548347532723088319020270949566929815915576966467574363617668251472369299310389890562261378449592391695129700493507927933859940475943749186429570600838176735708831182947332836776976900188220942156310785227346889372857172338973475480593156071216722113058401148286324738977896243908887020566106412287723462732077712727525032009994563020124501387821453031789579557779358308049291348450916671169258743809371834422344219727551479053039387637959196062101177077460787698027998883219515259446868384231688875545879986058091746836078939453774457531237227466286496708162761173327534177124936823476857215969298630947071357818783982914974898586772660113242715477380164048544473410075362575810569084241267079916647625853480591725681093312765765000385077641765735204496711787294951516275768004789781052731975500105590272897332589905921009035755161313238570682946223321439669885392279126574675848394217684976705925544117117407385683335793966433075648615429543812120704768695733269399985688763707251115133379220716964550856979643010149853890436948488046141858434530702665447318138783400546494232438107840907122061611142951633808090585684316692433668108012926620895067230516819017187576762957083991962486662349279316677137483379150051093496697720857159156212821274731656868678646534846540555470330296111545272095503145372290258077207411762630654517995858482101903795190940116603826646953229727105188662897289042310088187575214212147943283341860179106859950883538893554539498507355761232423631956067159824581361743541616676350341028344399773157544777162418019422086155737505741449452140563539010283667474398052076767181556136419135184629950604913407446694411774120285341172734867866662461369749043063385108603843518500208891404646556933963419999120975761303741369345805273170927255371229420008138507380724877499866668665076006351880861064560240867754103039626579827743630771172489069285617020951770120371257464596851398876639258903316355719024061707762272211705776804962939621749215417786026387544742069950469656068521726433726472060994192761292206286446936371947815997850423611341139054086984157392514204277164394411164038963218222091634322020165347961312665335561946273709556047937352984108504150458701928255497846731637412129831080925375804192491949425229037567164664198790192667532886708208054470367410526715138698690639530062350901580570346103633526563434753052683174026143990266555132728294538717008429616128859227462918002946266330177716702046086600785561720608979069087255355868128895439628159247413965565368564682169422214716804812236934669377781484141691334825527339318370968754013315293181399113355688988446369939860323449680147020158750516819404741849092664194337547906826957499383712435308403614409010848112763101435614676617492314959777037034468754344188254147882734008437441011482236185699178187564663767644775473831745434882084775371148935083989554748480529588453298040811439025865257291153803614719873493188177224977342251377597912536303506342537712912679355238242733430815088604171066065358626359564708338568155026721469315869080962242300839003406469450656572927565751885275754002143836956749853462558786830813769699999644331575974507530694153901788238289083150083641452085980027374714484957575308924134159496013917602131235628351847308478341527352713800762819476059114922836267968796076373812006775950553093933318200869086457807831260179087033381509267457248735797990638146537623101395609971476956504428517149398306100552185536964135303007074534285167916990015555071978485836776290100122692193880859238322274061377837659638637640586067395206168409482960445841219541114440667100557344273477295777789307136462687864358333874054009064695251961367903983870767415898450944127212426743587564882428352790633411649022890126101900226059454956954674970543849106767013236235444019380051792146276645432442584940824724431341164363506997787484420105178504993631258551220549877067802014923683293158481802764810820742184642770218294095640083112568525688509547389904914198105722159415159069759903998142373212756170913285147973870686457485015295514322953161181065421708343199616422091330483304245067193107925001328054653604728197068579931344816044005163910262899116705422535095663874301174648162753898575865504685928248784841307388862443400096129728529060073489929861382453164177902519890462588339557863574178631278218131717685890936451673447038641899899169872842084165114702589499575451959629033614333065919646706356296065729892990540611736240708691298065082593372803383122516993708355078378568418447448942226053040457237311444574129231391036651973766352673309752873771521073470510127498329425354201420637549210628675440117278875730734735102334666346668998106111835916397544648041236155441389912575726514357320607244324403584904209898626251313098822693092990181309721765175064599054793444290710773678393614754982130169742343284515920002350164838405927947807362164567832420022796450513676409841715794033349242972359236813400771162748093426064672364248329484436491667158555198451981233762060347947824091142328514746007989794592373228175737773455920312145284318976627813517435852393015925040454263429076478282050326240681196346699345446854576564249876295934110179711178781612853176616471186107920535814519091387209471793072858063077464666340992535882001204404086138587743636632551389013601776208629450933742873480404373922288808382660003172073562822614371147527900933614719086145654757222934640731948989868784920005166961919031586592187784588876722999395141660877963530753071978527887644855135202389283110660578678084087481312761679753502872297888086595967626917846458525985755873268138246821529320500372571796404887091298565880932240364233694691544750484627009824875571908928511129347641120967343909737126198001437396742794340480635928258873906591872507070690323288016501097045721177613742045152548150191328401085893967875665102061471849062899784274685250922323293192245933442394768469718592067225398272725476066856751755653042557634630217225547047668443770580132763211626069222596484011887693176631556283487086065557846853997110643567314470563723494516390174978289100990401230166540763976650672654328583904897266222173569502806536976668848796885199163634807031087506364505018599903118190614826859892346270413295911887122610000557813498426639093616518755531190969368656159394294292251983328361406256096357413905267846879139577396580395807576193541195526020199981721183510033942504638167382772601500365720556462976142718175898290129385750512536782317394925229185187733877432456745669747053418196130929412076742525486754884509277791180061786597966245074050923363809596888879498615755386790442452895406241189371370087205240657577382141074669547438260314335946133190528378710886105327630019491084963786937514837230700897863517958153046362668902894762278079426141649002156269873186332045173948772062751211781956145939542482444744565474118019389223415788439548602453801481003562091652885591322335114807696466481514909550157753758024867535742075547697690924138687767402355472118421991105319001096700661989132486153830736226232067518135150729342039585009271292959144131008061777278541831979766820850387932716207404134379710541728745407379121870268469116558725358969864230867662462181142362150816282382334721838001031447343416674388769088177069551421018346256175952336307759745538602550087700653947845416003655458230605060854507873566800530973090297100084102530933297031761459925054809406471874559189297941827708690658756092948571807114394298917486084516435889762373991497321205987332099264353086438734547707486786669295646222035490825015348132461714583798662860027544528053685964790418724854750921104088336687684410663624417581886482635455447444484008928292412406404401640089105223523599032913878327026890336902142383994769489343839279976273020052438010589725334166981928830643342834465111849062378444122072330986095001463656698107412010997863147705412441477519662359495682119784665666634974085235316621712507090283273205913280241731532949055369054998751503921995205563916996048954521972618118239567162767994492572730215195030427777153529795435939063331894461197017736432316698812215651671957152447420388648528997524158729778650392566842969530482576937966787910563374039028576658371688958085806923499959106050827495923361005028968109803745207189866000015192781437164400893500603469126644025016877783130685419692339498159421055892140327738956367073577163255357148615599821476439644051595304610294447679843553785899511210936815219529651961697469874567069236601140610161832926638855089103027559635714466731068655624122428848588780068325283340368886646385812635465378677975053415432439951555809718814991810959222937156922141495862350014683579500094742782073123262509605330920793141083642994690317175117444955815550576366877086935405400413750337030136569829794801357946444700487758541205857982271441496108252343615976504153488155531351749430709225138587647229071572986294885792820429678806938761093455913122518886561434827429632531165124286391374467146984311538039997977070513161613604187604129968919169752579959822170598323724046273792241134762642389256120847344306548145497460038412652777038976741516191192808169104766753945646256081891417549034980536032508809032158064983096133578084524886106704396662973843997503583561964299989276887018615349819951214961524725597385021366230890329729672574816103868792256217646076878096727738716859421431456327045795396493341700416866449604408650723604631511550932604285145227224252885305529784786368282522841173761766223573646573780368771562529362137541509261285059332705494596823247496985982698267941146391616109029972222056957559328223609543544221417490959601454337840153419401829294176520938308558878286785207810335373575482150009187007636022209082606437583463709087235866532636515329361674158189687926119935052829179823887646242838939921438149921364166702939993510332719623693942465084286581828212658984680586634520558184123802759908993905351435368665584496595698166675869511350842993529545785369898323831228749442248653279420173668839756629562256244176104815108746991821981119631954248481028505251853586631126253630250975740922915761804490545928147804251283740759373226729714105900513911535919047548549308223998594954369084227301090609521474701592677331801761658527906804036382626268917904859919208216412882014963936005645388828056294622345523786428253537493610439654024867756144546440506247561178560054701401246383216891490221452305891607171824804997721655828008780682319834428094975313666473911400458057235854756974550273601496186712796724248580573609512029765515196469524343582566157213779563718706817982552476201088354299796266149640111717411485639561383183473742755653130661170714785270927133055912090508921081304124072130717660017657592528197807474143280651765619222227044802959812174268186937547759164105951161560611111226969258668439819509561014380006090090335338370845596660456320866332163301093881374932578752201295929042298497776895576019976754371535845454307447107056789752853033930115986897121873098221869685601166442303673673616912977308219050548578605317904648248013330506928643597248183220136526999919572166479849330174544303262604103922072540834487408742653684366793162783241794400043371731012757670620058666506183519920839910396911655509373035604369970285557506225733752319552456352733650873640053971467620959076449898117721363459097779564451510750401530775005984717236157395048525600221495729167976988603614220038902889570524907395396647443018918754786174642696089925527107873214006016303602857053751619629428809443562688067564910810374428015053293748181032777057801854788056968336828897340688024431150994529075083206189068058849382756583803139925059090753387029165653614044119139846057203743397495242345652808026538373091726208921458417731395767836927298892058898512945022105706247413108116774844601632782829831788761014642455530916360161888369414309331381608916847030654118720021785229006154063458040913490803278482718550122939442200931583499183230720225696464057531168031799985615038267992896956839795727581641782515351669185621651130262934506824067630034142395523900928952885206185847987139482323268109457986199535540326653439213961068808788971131977338871527057523190421119951707816579286095325540566854070968594809384665057847001483183168006968645478843588118822266872973288940200076619733030068627685770136493623367378560569360030424624775793576521423798698351941916150639789512009105108943492104296065166110907488618392502642831156879244473305475578871394661458220268782152077623861318392196363570259420803159571544208626145672668181909050881021764208202827610726388026604320863845892500700439553855628720425634630333434968376547091193006610326153956287090210756066045059698012221120751018675569512395766329245654794076335059293016654594698673878913430215826184919620233770355837963425648610831308682720589026447339893281175541950096932174402218342462736220595701055585181949081101321329804477970613456148452741628175978991911348068480964594534022864036272600846899274970376548981519351022451928244170016537790862174338380585761285802048774089708077769723749991629125622783420590989749887817545881727907276709426382020302999797154417053053043975755227067509402367839562110981479208997721271834927491321443796984947541858160513006234481448918011983379940799808703580398532689910305480964345635184097380075460550713426434252658389495783918988791968481518046699373761538819207643925452338324833746440320649921259812680651086254290864735389631855245199941998161711220322977134742895837216445118250890991954055996662219879073244612902896026054300647992742308316251686514054686764601601796988993653984057484461255485066018001962155871199262760224552022591116910294048622892123312993199203623822554369113745639951648764366127896988361330982288052751301461684282446912893395330213455323140556839012204893902230088281160378355197450816498263517387538378887961135465842407723291949627406039527445236894336358976947347434992477622382343332342749985863626241522199449773285097627039905240831774077791281400254038567085868732970801341635217734469482354925259998652195365457492768359155394506942970544803626207338754005433572137979445400098735741559114862690739756441317405970494109682675564743962919883013750408636077115686164359144607708763176523098773476728630056080318130455983179059811948415072726649188231124135526381177701349282980799416609972375033276608967117538607758866432666183468734937649184950428305838749059809781950310729592584751666127094403075642325364467326314982197100641571850450269260576518888814124997977096722735712399302687031938781619662270181284483102978413380886184693271997788533957485532792879217844252883273728784866324468945809383747194403198058704299059199799881814653853204858326064860267050655417142281400434424730115964481311215466960201688974332460583633306830468690060108673837202275513591681873322898099354911910934843395531820372131927839221904479778632710224030648078360026421330191925773476030858470264473501526081305016926035117044824283707238202648423968668957101069348544542509866052432677573320308827414850879992972397577736133170158588723102110736817274940333999422156035258554615979441769157891669832673454530089497698844361608273351931613918604717171679400025252076326593302009847000634418932668106080642971147977385558207856885928984662808059670619798073606937716492130118296698803483612191470675114376791160035162705515509742418488882471943146122071478450061851428239036225840844879629667392182601128897070589131916666620223434652782325510657717257621856709907066169128868946760254539169873004330401121133077517425283390012572648299048954880780556048910999607986065341762302876714642068045377913645600061714866627916064025607906887702744687992461308577275262796011258263903355910323718696145189000409122352760373237394809192144629344923682658580707922959047756522148271341675150995816568448675106574420160142467425403502799480444401915813830191390164082525987452638888760580094614459890210592393007266778434199753481713650957903863685473387990215475310025884105591031387561124315472975432252988713203907718984452712662091387471341255981512847636951851436026073486961851699181338610317588160077698636600859550986643279207134330122914665242232390815182344976508248865226532701345792307634541116527393262942694933756887655654791379634425483965559141809212364261645537609024291762850034073622331857279131433091768025977431411454894060041495840963189647537390511586617902144421089571131616393054293277236508693326422898329818576317355406735843353762694293777912212243239771384260847165277025982858967748789941900768721817141134728075267136630085528377985901830529305628945167311641267104381377166048246670943556446736559764210180614829346726440413703148974302080545680713455237867824017395230662971905353617413754882576391555444448333610795281164138486454947567794893590985915613063501305130084908536750585831466196586515902346682349742468854818592340788283783985554232755546811732827099919187400857743837715480263668983827822731748770824723547616427799676442214539117434742411657545190078006683667312141578131970699585375788769861406955709062448804670109125678157544266293903932068540352991687630178100569041239700021539735818677419043487239039526521689635041348307828199662310162227290661554190343701438897962018824221079789683316599386021042601076737575189332437890740914777100441816576551155108838058763592499869645131484822562484520675397252631331148664393918729933528220401875919637066990372544674076514770091547783433646681937906840355492983804434557835386732584127546434424242803944196678934516667305341519219659135828905511844761534525698174771270796458282718990977591182378587225257671389495082012313466380401203286228880151745159911618645722131296504683306642538805590810393133369573485242093805821124038581742000172337145662759130228299682725402516478273597912596758496457905268360467457388847784137840334831656374911379699803737770290899519762684927329539569840890820808079347643264510323715380448126255733761309563473016575300400717370599625476074648858999040779211820748786884338210730115705620687027321078586737521973330721032114544800757649182769451943094375751771410492344273819166887447756344620505538527645904916779083840168592545545371318090592856327910179276474215919357908375430032157429088421870083451172732146959150194550684568593840852968788182543830330548612808732450558415387714195427729492147248580416766743477251211450897755689065361306811349869345689403747624097448917663345230819471464785642998547894171515299337964371443419232213122064844820870828005483991551676485656331569672043104679027340952709718880210276275805359607506603227139095922666433611289819536466183682627955814498100656221158355440272807614693749869121622382062399275702118589721247884389986425292871797462034566540189381759460430205483034801003724748483524845709977358305183620396454236932807424643290992087621683144631514214032938371953103438912895617840830428243113201603555970156260881406397582622784544741039983959077928377070440682359706021158995660242181853383887517591008722183927077471431993825904453533524044742779641487354256188282816169595068578336762363359296668475908770101945882333411869014494148358781347974834794996410238049709242509283317462221760445982116341101693768944727328816001196649868482209146953660048685192825790886661054641847824844906643160505896803314724404001135178826775007003153555820262779658003906442977565861272129136113264923217637510125667302074736280562826315725188659428363815021205716320881052306481789109769969179746302618152704878704383328425877469079132369362783456850733515903273344428299738421518912131501339328183925334173727209430431021971925022380604673620447831145182206051130942150251275685561979455936296567529992890231353871042536715040952874318972005921166388702337033630663102036422369907931987331292448131708243271532355040224165688787939986958811930563362037245403196931345047989372236055341332711881730805538520012561483840733698324348606734532326684173592046075383846202827741958138342619487606749174626069717567663524864028609838057106851860406672354983365039325376903511916477355626121882613717241327543466925211244389256531768948695532040899384468283922714585520407884192716824038619915654179741635199025759839246895928492819452694225724285738117218021778814176395979227435454991468793981742889618525966282786519451017028148341576672666308562677680163765082327781686361355803818459370740219133194332970781507186818725619789325671282393752492828830402040155040390396120571608801173940429788277933736269479958747071226634444718185051756499788506944979062169840038649925509635454862479486506636832215840918536759204896160680976481765644664069964651223616975422521302831938855604458217337930436282471075931100768209413069947594151936458500394508565351984896759540727088041745489534501413637590304013057648521148809746386252916506161839121433478556391396657652217155783508558609254094759426157908466294571473601314335760161237255562206879757206021436001331505968986326755487626673164473795099718951086764086596863604671761759646653487184097752720333774559648585018393458961488707986041845433499896462652768050688391412018044522133477078359027838063593617257029226775769026263971325275214551078967198241052240419265697443392271027936350485285343411506913220756696284132776076321724658303769245987961449411584978619972438981144301406064971674543402427224055028323412312110543396713863743681995880870221770668543446846072881787714073647259227470315831194676687765211650792015923169918528745250097445426311640075534163323096895057855169741164617465634939705347728898396510502197147304736993432570682965153173988249117643499567848862319263901043565402541011813054660849585778592782305862683954075262813783306015939202660388199214884469388499885870910013005391883025962058565472185622720499962897436859211072760710204254021849365533884927547001805756893964552021127900630941444973817009402808829932765461452051697179998987914169175844632119395300733092644141847908047853551091528774604748382639151760289265871601865922376953143031889253995899524565805097882845800941305078868845763483093309910488741531935836785069557284542033823012434693912925397903230890166099192038482336827832756676866827608624568333198847875530037937502197167076197303260997511827263915276601870144020391069603186427037399306269922061080706065347234404765296070479998299989428033792676349311158334301579243908193912966057741018612451093907148393307156832441089797451733626272021513163128009260489560039506255504116225122563261198790218924313036787582243253302042376066776690409774415257300576280027017835489381828707206870954449431082429036462727742334694588419441341322021120049258624096411267712834449080530122360700838806114626223816608603194664683426452247029816025534649114689753383886269068689889108449370933326920495462707818325071856904592835096659463174873549281823003610646942036099379514494296544853479021004639306490800609199216957101789372130744423681370697589821455074837782557846471872025557543742440522207197667296889110041921074094525126443034205046996130545497012402554246049256219628492094983857452048443528077254456409877142223235418541244331778203461207494942722819706219912420720467530356060014482979307453864429447591380842072041298688650301568609780662082702174485381014960959115354395974142746289570589867940596091457393338887748504383357798009935383383630551484630453959153863382400140856118751991495480618914161868666239467185476480339392872355709281133356582513160199972854922080841313516875221213642527988199300197357849853958314803003821625114644858785784623330314067580950365427806049563250815014983334109130604356727400475706255801702793794237222860273250140654540006336941289746192367848356187059534488858744205507000817273191458847681858229601705044799180605626144133120359769382321435835699066246540872279567035908950115794413352629436165278343149962678644577794181249445551714049901913232804298470218745927445558354919673413617413738668923957835286417401097972948229178293644077137942374494922797599641400435867298603076262129349993096056221529319952181283218780405084677958339778942542676279070726035688775745883936003915103962774138281498259479570687961529699174446262334616278611522474238122853154943686560292659777834509168853236672150603369141379403249345625868966153127071819540095606262529554554969198047207179330705710313412328558867845044015475467562566177341802782590848009132683383237749689920681262319671455131749607852888621260323138049401359010889721145178339992498427234777038751201107567474382471412701484477815512903481533579582587595067038051781627842274124908960732015751091009466015306309498694348566001388008030394739211876003657367074891070904990491734767508057386574444515006144883374127759248030144994736395016730620380499384862427946137817309855805942941346796086094243002239715587679982122697139898261542746325455268642462407706616747395512590035723503415336390306250594953395202808032876992206906095449645914669531462290753879117252460489014080430506759054559685135555848356738835793081296053471485630441006526051466249394649137300127052193372477364602615114323037752743611777499283053979392932927729636191024714407278513304555157363561153405739120753607069397304404963958144750636306290084198780961886952966188798947279179818684299626988976761025235103602616365145713416046234686177494009019808701338420709909909822137652018891693784127354317269498264246788784185161171359359719863051349941896930550677997937469915925654710947570364053374666878837280651922593415202867500364693617840070126047584938412544306181404370371839499738757796216955733974928718753193312556663208292784707474364937129703762498779547052609863914105214089646871068013371099996516407300670008037242089142988704650308931621023130398664828177248823415013878263523802447258095828437886735357872281450501295340242412269508713748451858038826417986635007938789482616803171967532731702854628977044926954356947673482403504951768346106042848015757472955642333174324440563855241984219752986248998881863960481052131273254004941853644717181032042779826193256132174626567765842395464354768094731165252779457721893305236664781429790575853393709235682046399939332643292360456148057324776846078769937480986323195369893863736706972045487658556220916239718906765263172918029876299937887303034382035408165199942132204209434804473568728164072380570173067389418589688939165299037755454724762814214977865835473794484318694627294473658485252734629784286207393449531707606607703846212877120166919210716616768583678792540705283150468135950412150790141418919424948018097289317994808989743825661386474802476424517584952757186743250186331261571653683999955014740292594969452494515568624359826881359850453083413387012625275854681691481598502717199462867523210816094077377581972880429856380556322552305291616281101175231554060675287056187590434641365388056121380921869282036973535613189202088153339609216156995876797421380336305277871535378591885591530161846735403434630843786196181288098506325886582974140361540407010322963004851051046597326497177800794036945458450875775201778726061423790852157014702787413655689826430043043158406041568287597085979450251099226004624368297661553334551424014661876520535178990192524359883686860912934913349933369872747257971029809299511627696070408936100083254495265324628321887120215178301305367763508899806951850677750504761065631268803287578240635618099988118846340076005872068475192155746744033510182260146416711336871467857118770514828376408577002737189461128618589582385672880912032177286814940082371996384761328222959272984537088819339218849320898411250407057458734040713011626710233247491199228048437524809999205684668215108370317934095623413043364373726952361598653811974757882381659835487262446560406986184107198283855641560599744799221979487060935245716986166145827763248338172724848318286844208548362687468470361014622560286608377899468791038602520495898981723504056819872752068119123719720617751787101295851444310696547337483105888067951055223608714068824638107549755425076818857764275990623412451126484109139823376583588784292642190990833530336509638936285392090900812305685844136373740757431072220360473062142424998664821785643215642469122835068027304459294977899841470543762359287544933179263633125267695363310508269929401521248023539210807890790528885813721110640718817245998175992941354336406814736601245732206134341232564319255609711955538648610417420634933546598463009741031909775895757505180312698640063313772040134867287189132783814435492042291087973199626367608391536374717485414761583455158927073622918301933460583358661567276326085742986589482750869019657586150925860360286857215798351957805873823001825807441456531670316601305006690869536733759714522174490152100232512117490268591866567178129696462733991401794740382108855377532531042665952460510196071928316854706180030054862426117801770745612679451759292363338936357712341934825705807978047983017516236703288611901257536196853141159889676662507306536404268822673188170553484179408558532387589870129779444607598843452943910530714949443166655398341233078319295269355749473016853223389103561991869952701289234937773661591834370699523905927815016715157184192141934870142527034935180990183035536803402159432878701739155844972949984461738250350517922290097729626158235625859876836188126708231012003103787918261465453814049691163270581491941022759080271839292344510849125278338253772513823787731993359575253932606233877621742293072171085408967347316325330067973098833715714804507854627595331635242885130967907508833415087229542475604790708555247032054002927191193023324981125666544319038208307153427917771846272771373815874993706008874343547726745811914843638068300309449142875924223622429328106394666365664025486308364729306103421008095862148445454709111219798578218771039437285009221181308838635051295654367960068241278419281493074392141881258526631437798044927428782979343199559137786234904359932928144612018941916701986399314432808346613726630026556893379454472452072331725391093412472743641304844841218606566473572384030431741043342137247580974185055833370771889836621600170926827947430078919737243481481907609205766250044084602448817883707533534108497301766736710111165678338072083037596920987921454440559906973456073901062082449494610787527866634928523799563421202785355483001048235814598322354301287069141437552101054925963420950072241402241682252691260209553120436100169890855916924511514769216884035541004032098082534346373592471975257073444315634118635216394981484343244578737044200583055006519351104794342588045607249590463842899046975082193908967233527058900521450920729284563610347220340898616198663159918190189650859597408431670965795457547561599774970908886281812728076253850455966807388994112263158899060142159226859093281561648492862059171081578861441046325615278041136819363467694086942411949009785136144798297550582438377997946782902013848846768056643797166282493415473797845970502410750224717942696718620334251803967403000591851059723732914977529154225676839246320641981593922817995245606738412698900084510364536891055737153015192744030371020143060112765511233876375017254143663372687690406053029196515106574477081221699642106060201412714211577911091317391343721448945904506244777752960464042346747543312261997131186338777066629518709592057330938822071942141743928231419702015299301279014463790557551590487933431281823961917272204888081930896801492160280826473026206748396496982469053509137509514480055816730673344276248179739176395623069426512566265572334348584676788573741797405225353955893620398566680965906303989965446785095657691861073163399673458227537211740824422135590224834044900508772961618812697099010104685565188211247896887627008339976204507235034459189314455728857575810227295313012368681224272277573600387296872025211305712683323864769181565847443607571136332496380736737518799100397518933988747065811633749300057830134466765720899674522546353631916583045989606017151380167347603648107584590924950463105209990022327604569374220601611894834543934882294506132566945541785323234186992975263796828950242696878885542395808466016999786918812712615546523689385256048562243450399094270473620076586601040779559352475468596776467905198122652775496579820126486539018139020064403138275199528323376310549260644098284751343466287860794599283457208810097268335424389512093996207068146485538509941465343184672542982622681780559360443870139021976239198837089596256676993405319121868981886694425260895562113140025652838029821673818321528199301079267023628087334531443288172351178928348204908783749596390300685178260673698958445260118967061652620615988298999480386611024355371304843059178173373003209839400581469704860539193492652150288724881865079284188395191235236101139148789671541320819643645581164049571264375902826899891847803966887809196090475777335404092287549103598591145183294503162970352458427604382876373045543365403984041197737519699493844149014792822938165718260589408652695192397569439532867573657519021737834786441348629104009204861431015051979434535793056534917586761269271685019127400552193359641832266327471684733779429024497380105717967441955941086899998069579203494754789755756052398187672472648692753834060521537985700787638771054287650866750696504065736173009077900624539574747264765535055677724433747307239272411665331431258220575199305613771254244367319144483714386417323422159409647556465862952131835620734631911589271606269085011806287256669862196000121747581767803223528470379549631976492506258255578319747544189610636043546796115558037473151503972413497100474489480711823093488119835835440155715444389842854178660449787244564851425317138704747001150297085015302494403164583382917691689939021757630133733672189856596974467251196780304132216761356720115489968842605526204915695286990540130781407239476042670425636299975050591017130597163316428477343347575796312080502766154296926863158606952663399654406211513630853530839403213138472466545442206565645265852193198272676220336336867128223782990672077581172007837079727092701335060275789783953531846688176081183615595774650445887796248532921258549231891509267348242668454920754951609195249477601279823274536222088070545295181173116001788240153839604393121979263817515282421632782994205070376169138726509261601787594885877920647080622110927198838699267267668673608319338122514393716742196031507628530500303090166961851945913201226857464696700019030232943453343551017434568516748308783264329164634337279114960956181517269573987369588964010445460049939077636728121546855375148251148423831744463089205567718928168640270114358992340489656437917899979341895938122014437100849452944519531740285047441969299832654504743557261071485503069980640061912784436702885955159238589803290798567852817219160859124391375505727132812506285581757530901858497374925377222701416932718623853458266094614743728119637653912552162525542303587836652929059460749517401137104708782492237582471914209401790605934682898615827368786117876529255745629515712111418639390264632792752194955303332611588043293779728130353229191136782275646031430327379160284384460855054146977943203609051611980037528070229785595684872408050456654216666233178620171269303164279573487417258586568829839026994416735557385426700622876628237057297708321213603005735507539790313830118138744235512973482799481863338636115716593445385493873694808784828771439542730005179501375394261956205580986392090355619547551182041783129600129481164167630274767819771497468470593177298576344089267626600123173579524661652369393875360264883047469528464337244648130012711550441400359646201784842344175644977408534545652413749429738191363509005676856456723637394520855973608304387663062650876802521731352972271658314736752001021572943210386679910623009124161174975262977448416333583822071837226999399276468297192152547645618455766940246336758603887167755767240076358250640817517027943546497166027429359145408267221138394587167695328244734528183086073706690141581886304736184177614555209207785695487582715965811702647558477487280701520304641359683861236949820361025680694668151708234094041312053323225861412431238598701318517903891391045089695512178329578231912928241954096267062391480448512550845845954118197677826013519414380270689044420800598504628961586961934156231040610650111196806110789594286869607189356153882969015374237755959533009736488975352282075385517590786711813976286762969889040538027994778667096963233254480013061268810080840164884710720853723310799657903165835241417238165690973650018071233348082630828922763781494417344627963237443295205091177230268705748757403125988594507760433576022505579294723323598696038318554165068309373478044100744383152750495154061613765941883503173411248609172355727105163740698673646631043396428374278381452731782875902697164904102430495838649462893835842179909373395083075265768969721197591772524869256566135613134506842208661687525971035921620607398168021285252882369824482448025367391278370957595020191701613925851727319846575701828174160095210657589734525139965528352689253403130981401515574097261636531034890145294641011921753709559209654435003675423643268310999365830669455830500185081272231660945553926636589398352604230871790306628808613960687050066459734643842129873108149759698384366713855657062262944285869820054727765511484840510791088141852637472008777270506545426202941443075273375177609376740748678392836120015945992786478337597046678157207208542112330495887705346431203146905953067209567847802248452105828532211349221008715875754829119140626630124792814325902960834963852730382336492880947851910222705463285954900058303050732824564157131678133031208380322555925975772807443171989649924786683793546628096250411537726350098931523755523966165794779528060459444015400632491706668734850552680013124030064454818304660320058397490811886817792006405433244599870912150849156384175535495395372026923959506948058826554202191011488208415702291414582269307371340545776353147615623988178638283609903923502586482982750570923131354585836576268112332864451880272785067714215282065845504606196115760977085345683908494940972942729011841536088940238558896356341793673187273091453704835646743189987265032457642139123357380664359011538860302628414018813791388191161449340547673140315837452930581923687864665432738306718900604889595177261857965873508369097104432493007447169444721830492552077114562850183377337761644686601653279654777631720726037015089045791942380218771630024272087733100320187140863588012461372682176174619874828364682158907701055500151691953511212834333247161847758207113367262503827437564455685679628801578958090834018442810641843884227695965708936624618444069495684538909131724784359921376775375109382763227785089255979448637373816544307810979587467751826339029774479369940951701764879844193522735167835957708496348501872772140767425216627392127036536967022370566138051342584732593315538511633119594799182948141651661592507151164317514924869594635969702965209362408339616806720953858883124703346434084662375849802709419914419250820270586351691274789606507251754339001817826076967870807126296228012580912301648021273746151504058586430100634403013179027747736942849930159056565436156991691091880973926592781791079953886694743098541972430665278875473803593765641344927606104764624150510130062539968671547602983928517605367455498553016278108035530653344045648651446632745275994236029165917585223641235220726479797940478805115073310150569806932849416904972574790137794711589962488501224118582511408824952777765862401651953125033567122655100975840237978847272120515696452104411725650464139330795810341486021982861378692861881331451003638723229254717282866489248914884542632185965545752429992381086843857899360401816709799103628373503051289928673818059235523753303745954972792146362266208354176980193869824011829983962290901417837468173611903481189495646232224951171616464564022367587792813169066108976423064733524361107681562737834763573977581188414551154029469182713863601334424561520532236714657734168601975478538765824568945535521554280854222963139110943358611722318440565104626991574790110191020406015002892662936541218924448789166610521758958693406742111797308272238890764762110683887417470580959954809142510892328533791555496957442845707161445087610560424474795940427640402778373492062783459819196682011135330940598742600319582935498926899010403593653903252797951552490835906622606230384849888209979578791813673460968114090423392368873972226249375309341543196730961956281643340346835564420176473174526067711376825387883872309450995879061360319990072525048463741340438339227330864532523687814069137520924580270391782722318090119391717244738466901667778831019074203291795474162897075050011612931917789685282696619321825448825207190232510605643174825886219444504291455457952753285156306519674034213626958172150552830347489036784794611284665157964737011603944192354761427460673059483275498635088281737846387778388352322196578005077050188420714404869205046645049969308847152606374427909037013394634000491605674893852092877850253044876811270173018720417804596498212926942509202796504821880328447178911739547525996737668332997825169947175925680636356803387140723368990721913059594710038170672669508808689023838970814427169440774701595715151415982626956151958345419363546126400599111871971899889366231019904860198672830262256636013818568502158663386936005724997520242171486714723875246212055447028202379285251471485183047351044307989878801635628371539240281564880556408969861084101393784526159248608734698811408317223049591244052993860804400725728670883838664410341189453575570424710003650854236287918299903415623161922277392301405953709817520829076557665741506352354838117599507235422586876980117735283755622393682606553142786968190772031475735715712457765441563335943997973598188319884496308781677901151477249142124092090910406905679088080923374974587787583161458372632203573893771411296036979636005194922148732324912196748156681747130422833038555101860524328961857418120452379839408528464875018051703774603925478301274072361278800388492164447367552578589554166053848275865941449798036374543361929709804723627475509314727335728502031764884961914127584675206400048889684739986083962684545310446635954289321628428967388572837594992278739594737872695829093657476769378268791067521700995584282128075850170850895287174821966652948995806208942022335453796495326362568718243962438788591756269785344558576719100889935901756032454165413085493851711844157487415803824519764241391930521690918713500295591333926662012249474624843162403376159980566801039265670820715740548576174266414184776065513873666389956763742021933786613133169646585765197781005530205357269128934264101846394305274452077990433292948486712029354549433510725839091141965154665630862721385138163375167569501632314909639989144146370189719405016887375731355153323583879112667056727505248520033336227266599895054199930570106653312413586674981564372423673920859035168180516161790796518732723965307289535520286545974723609646006239925743583312533289475953678710640403238333500220984282307852074504939094486775537649294088509233673379561713356643946702093876494563094877050017004167432200658166702036148619177981497052896545198758158242092176685628631501590502243187955818547222273827997036439904832390433888208979277867404477283115786282902837091734204245245866498254984978291810719755595713911118070531871011718978485321611808755735293715954229165352430909196467209445170111641090255405973462232776843924905814791260110435264607069233542808751041104104282364761972005880645454475724945511409785205360801221328582807391552559559276440537224581219138768370776023707038346054813425821722488041758638311414676466748330627590852048618538719871779738533525553651076576218936441053612743208908690916996911681242834214092603857529806858485285065347422150159604832298358791637103788487193774184791935782959857855425624985574457868796976520099257899027676016914782144398274936440578132374979888664912872744698006736833187422762697760099825387395371908722448302881081158971704062462195970657720516025426283340390822858039681893106447421821801894887875393016433261013376890669557169907205243394581475777555682058245065173564674543664866538129966669981042673700005884955140375235634457271714526655464588159506489926737914368606257288940868754994991571690294846622708575699637416409777418839355690079225341156080546109215710433928955003409885167348095795873423277747643557611072582097820622331529840332804233022225731759082903990686177275802146025274826638778982616931210519826597735117218222666695036378794053396355394237903008034315537936101942267613777137285942693071165325255698383696784379955214504051969270545511122064615904497120487752962405597107117565900590083011625351133102395562315819022014905138173626999580545495409497726495650437715743393197571377345062512207310581639809557168892280562500076505448355959367121857801701080250420130465287839562852474290046600653270521679155360002344773721116525910272603392924171273254097988187538701714431267161155736600184661532526423349480985927647796346792053699355157983569815354867411230467018547644324743830377823765387262215142493242101094321103854892281577736466375325924303403919805256733047467726889054678833963842277728249441780256774040166560107385753684511942291261274891186879562745329829785997257716398165286192740983470120579235231816767449938034620431792235971338000627901186012967107301893219597492701987627873663444939583450636664023807873676753712875042030146692501722277910674215176082889732337480813299003963918234914366927127443468613456961630846548503007388681313259516552319413197824177007003468658891100736083515385015916945991525087652181509771933190034214176703685260518656860449812221299395216903742978824745315932453295195469064912623017038261950813770201889346743768026981769321000653098105675897530477197474287616554254073296857958945765962742333743208685446187127907651252959199054341908083614717160047349451095636361967216108503163209354484549398237340067908454798149949064559808087499410527475366403046888279012150722986059763395761789725504398076939096307470673005276751039162118592640384405508750805630415364964049724544549777846042969707988883249773284300119039367107461359920724391427486197681248515227510027277687803132457716660053709338915830002324487797101930777506160705010308680440869263850610675534453334097422286122430998456358579604271283041060894483027685609674955276344818100934448632616552823085742557103254795298261457994153778762459363656052882500520934298083844934841501954558348622235011492523474068337995881815869541825123533973590758443790647780582715481307797750010447352687774195264875276328018533295318728965827762627587561974040367740195911230969642979341891930515132003012668590460302108152550326175674528573038469676693605400638652852771999223145279276913663881409465838274389865349281017626039011218625668207068742140564052261241752045074834354810916937727663328826553865222976526941757844395031672267755939562818334693267762616376604520487506893843537304780906494949008255177023467446449054684788443856278464022679287805712538458695496408471930489401086413141371097507524392133386011429642229607953533685973160350624833363650757059690372689167814463030065467883155724163265550926828361834206131734940782679125731630824119627944006917067798709912833748112064574586014029906804558522616326521368716134911255273572051824504688273672163156583220000580395740205666951072751521529259711218473864146423455374866152621890962444284367745444873611865496722997434043403636860582604552085613208423081570704439265487105089556563947558960188047923163487102402091595110413258696167559636012320428909420105590693191734559967998310691650832274662355723286356836927289119955868678888382983754954766480757626211232953818810209672190293736988712088520914075886751711790830517218002140134551004672614624007460111695417339490124383485953582304819958936573806574079529879835753809495408321835418290717438122310180374408137259734773766242755955329623398285738138935214316975934154622142721366401573020145314075251299338088251643684434784944220399852013860777063930219146967822615280829782872576953290572418075984836476679205117797025501791040208565778926704495617543559658283432177835663193664267542036912198165579196056601870759117114096509977696927928637588391050332627569041954867411138169894774782533581195811180147605024143407011378091224118276713845732896338284433882809564197752777332279624947628115298595671710176151136259771518137750500969568049942304502205375807394993065342347290060713314242686126482280240396599177395589934575616527706041915571372238986331561169070355846037227420805362173167146257698450564695095316221552614792063434233837939607623452078884577478707599634074518580960606549280289559773751075731511661548745524205675189846425970886102229288374393631120446547689154043112963234392946959124422538659825295249473190169351958030447036467156288848812836269489844437516216380580456024710207907612777270599339927000445910833187649799433300205832791745386002678347859692120324878038806041290696251613635530300383238829682203003384076800023378810453121313478976887030933283404797935418118531201627666448864081000747105357158879635791457203232703800656481845730027992659913970865328077891344033252682696383750540253450761838282303839671958348852968271378303281028531405665357166797417662689023650283933643635869249573006031530849578241519133944469334044076923895389074203385196442157680691620691208148494174564167914913739308825051388660153947239333951162639969000239056282378917329363661913237713923836990733619254387753251690725630056184632268711361087362704654471197770892947946906012237340400586133350334773522119379493941651337760573903687474652690810857280953052738006224689101913749091296702367738444447864155820680631606706797832988031593313513838421777013536896576126164174934149144753145659865598391953565143976799560356765889232665541586747232381158831722348740974472534580805273475617608623617853676669127085659358849555159544244289005409598670900400179753826761817300991293453690662145268158099088312524749638779122384073737272368899626384085733819645754190359707322393062465575146097398486890264023054674830750012974125611286175997776346967290583692951226740443558892339191144502355126040330496849081610908375516835781341851061871089931147870616659808909362014225848217237910548505433861893821088569611254993518324320047844056660095081820750326783957229580941162132876055089714166809637548086197770630851083440752847780794509610071770446379469092653602874857173953275348380378666661478961627352200317076005932115368994049581735804436689823131319022199680597325649748865397855257202750100792546645249737427693578959388035335675053146189214459498052941477960497097432886203130955446340604434313191561793240943974942966595787864848396551296888455879712351830214910881039684438229696711399079776486317918157965882541108437309825913061253035463414791324374289070244788227351947685971914503788368458585217224873994901092110994723918991087425574933218254205818261113373251931664731166962595010216160049862324282323580424546692101008043425567747413771962605184513803132578998648015726145185063886301875898351786137788119295610717251364987676310235823726489912063398499957340475138357266941596084240794126777423504439443013751976545184984908747431759508982861349959924431225649138126515465028340400769893722277701849122202550177465665972939911218511668629460257753207059707695329661872310878663818705185055836659016640339027607655026988081987616881668297677398020248802954983395499210173886066046639708759932789265097225769598903309844907084675356818926532845679777145803577655454362048566716143298908905114821379198659454722767234639009946788732962130876677668138052131832202239110828770723324611394807148640543049179187032055588415282215586770428933589837916327248460840657168099490496278645792358010619637951798030758433552297111472817348789546021853933406443397475409334677801733223252569227019321256580581528489353858754856556025131738376182332152911871024513991762482011958992996270451318725316060422078637373520897766215704206020371954531830920432751387872624898235808457976312491406070471697425959880196427292211977537297616902776045334635905335595032457846297222171296823141255617576381640420009622533486659706136942957072006392628298849745898916270538729174655783945018686540881277164947449456040984935577900017941026731610513341492605700048181114124708906856630590465958057359486767976923065650821330563909478505735000367131546798233790966271452908476785425421371558693421168508248203903126676385265299213046434351909660158769379465503547206657103089949133941057155799772966238133230927225558686361055088394065112841765932174692000247184210843965907629625040928436706379143634283362372465529951890856006637308507379210256197018763792527611540440308027939539547190529591111741670640336150321298612323374207337118198368762373684534635485706204348359052323430063435532157257460493595367686390053376350736896335299701905818707267100217688990164096632393372283521822035455907673148167095545095277278458218211980610650648884516069067951044204935004070289478330466643241500730525979058866527892802967606512051333532273353353198042281116108863612915730719646337919610704078229574928930968010328191658283850969173006078045793822762671577042198227570848374525269075471261307665883517023870056366386427279773878573574694456192316699536166653668310351490579447218767666402155224649442840528187438485954729931444724303932937009420358594160612784456366150615475887294752529934543884088190800739192658784087477198862703263950249267969525750177442879843987237574152134404008023724273976814536935133266834421453515888941888853325223554478847971660127048285378235255070497918202742598587684835873996720317381152047235905774062701088554404494357339450932403972055297251420712792298255594110024775200540482484820429412697337990935731462746283492604220970984249137777427462394685558495396337769518466496691802246150095968646842866601467501896658222117138810050657446563197647290463005967682163946013283244730419631115991352578285964929388034909199451679734119355827139223783214564598011420460326121534887667516695825544515199552933073665189137256976412583586277352998322634768253085581676364484946079944939357522638671960947946770558962910283963398004731148887224250500256583780842790197375092346433300252346990499296016208905436041654857927570719025172407745925478287177380390236403974667049692612121845629078295292082741454932756582192012318207668773535966184208095577051020327176089425781066117969931844730643464344011855802961597842235269052814014107890719564902444172589073847293552776038644766809268814713842108614928780395837931485272163466219338617696706968387404234847770693796239370220406997088632713607161789280828849046777192672495355043308194316714253122443811920333790535875799530764992870784361494598388760664923466132082190591077640003341211967795258464982334689539092587451719393741269371593872432972677945771206456064988355539899174274564183617864123978162697533259086585284617120554075940150358506172699002423321672353870530703601994060636949528772339006629300754866820712155159184768425899672468963136753891062461502861080573569996919780320566836646535567599924479009893497537895149727332079228352345908466435214331537776341844128958137395629269500510104564200714513549293180544495425166552667580399009053522147340059714716634732597939201635448658281830717467836275970100445815277546258245857477854811423604229849180356729369312995196884702964650089651184249838920160582761354187226513323432683702830576339172179734571446599244990230011136817618208060566716659103207108316107279542768219831236618567816484195757253022637620020689493424693897760729787062275164172795817936772889876284616233828811072422756297916162006599695951570477377081247073574900314283427029055922876352968603011333782017162408541507074072945433769129016562087728072828836664474284981545971894163285534497318774193898800278239160603058863684178675089674503575895604949968993185939323430070585255070647331293573124013255262975666792718973417080510853264121335206171877820740462991542506582812111711705749240893928091261980881791711668381871821014495424499559992973256947821926131808711754693242091853933723096313021970026835516261519878966341075111096621576193240019540481720366800394313312919261778066967445616827868436811151860223923185144950713710076625597281932656019847097301388938795244098987091021088889713904373741161808916236377772137243852452491568514349635437069707825289538486424910467795644748583475336670382239557265420646926770916271204272345393904558420458061592238103320528799315600763957018950418291386125790728938781346506981142548378485627185254624990531991271930105286390533495777546479288067616698221771059393547866504611560455884702134397932699102964973359507242932048300662194436907943474505563488489025526371944521770652307241911205033064068081755151562251324042549871529207232374367347305626458423576337413837833484179677531131221534161615252411846368466503316544834600996331090850768343547995278551430724094764306734475859719237368879074027562193328919080570095700287968860786374073611308015201110575640835738295427735168988936007771227553181192873161593494078231741980544053631007594379679325864618551607304298359091227010820049495002714395413290964496947384148340411538888348785481085007152552137284771167972518816423010553984937505396311363428087510819312558268253956997302005133837830366884000357955529272995568048637962112955373655536742070561139977710147951169670526474610524956780215610067589687561688479171951845839850755365115658749735098256913714633718274536270415613576142369631025234842181243187569667623617675202678399681618121452945218542974490288468554115159958126518406622955823472621318327488605789447164484560505684674505469493049180475074459588021043988048916348941271970215484164847341860956122727318510607922594426981682284718113009385509928501863733649196191985359516658034565531213649451295099361347797817844326457907757938581731334086583224978235113375390355363107659186764539608589490691979265901652932107156980391000174197239270930105938030292995147588097643668216135888293878294145414022444521506052602113752917760279086704372629646530123344911392612119651605529701811793106218836773875231175953274734577825866281828527679107940507569349332318450831960706558202372544028093699619931834872047591275975803816014527722149272680731180288514595387221644813272573560533817566273421806173216057230216109429127948085640092925496756806219676023590694904349525898717257417023560842831426270475374757812839258433091350937588775696420771008584721005402677924278595606903992707495548545589036069348015452907520630847916795889992828229228144838647420281585213750102081910870195467349747937549320872106608761698103243940782980019568824099408217119706581585209090658013522214468624929846703325294513404313840627250077752983616055242328163918431499142144186367298043321962644816437223810518646552200335257452027105240118980521947919418590941463168201706297304268785731896859304966587090782744662429166659815933548762111298433841132071390422708552880481660518905898230332964605845686643079543108372078124207803801730031447736537261717815314786725009999986388924596389135979232090652914346996536356529154718057007112324463478209748298198844352505170034237344768267652362542522970084618878568191984461228567253051829630268549262706943108416038188827629985341412472185444071719994301747694844033607723539353188101116331650608473454508805676414888770422783149722446070478176468624100742543785743062310738952793971416416406314427012951593076965971139414721548200658919535070163888048705151649723180889948195789148175969249421681090418894785586110683354850011554732580048983905043280428247214401007711719796462363888340612336136730483483965457373195701120258724458806848981368906558152107365485353892631520193286699477294053095974296473304156495125014927569504128283445188479022106615054898231987210373412026134552457242966328615778308572628502700712188528034337149790469259593346557684042312517909586663368291441713311692027091648938084690939177641723914775875953729366204869805552722671730088970413960606850302741586649956542114893541511446625313122264487469804767119633774958446356543965825723740147120481102971243059161056444285688134490825332956338497868978157699016511374209321682673009216919610850632479590241261816231695440926348532380659529498625036197494986544702635691290466040452550475159329256204276821095877559301042313572545862830567055179575989092171363540927672349642737421749342115961988046579549041548379758889581454497274796190710614342811118766497946508604601919647969651734763376232177688352010806854347509327255045446682192444739073956777075816335629629851938637358244378395102936613224069042071287213472666331076919548385988628655151367804002291529374249945594989312709874317470915208926614497120835596633996479356267493693099685121937225433502681730063829501912379218682759796434992466242551561058938645993127474511203828836913721961632094167928485380212711476370448509014636258994174110083111339119735029528063441528914694605392809166127166969739724965317633978818458953231659635522365106901463386755551259160539658086727439653588278342198951906472214703805919441283059170562962722783403863315618090488107167934306359257566372571790815941098139750283073251631153134252662545857636714899969202969715455488858736873950323776127939356583311201771669844426983122430379877036323600264407990085057170648342473739457999169246330102287388725074731562920527282200366999244111303232175586880368339956060424111034898409464205364295566140758607196676844424508727553629186145666040447623192830622780423209162145509654328580699347689010084734461174926539246068079890526528969713112340967326604907710912568674503025395252542529064767912143979878793355664546875949066197254769371994606643878576554393365694344565803888414676949455844591518650417923830749506180360732032268865664131932560615531159844560819058791275683312021747570399322343203768127751440759952308691891895049229815452957683319722319676104539882161156274536512194833554058758279088955683739843417700867958513527016982520311113000422777805061864998049355201020027858031535172086289154368651187709416532067230503239798518557657771162547688036948747756504283280690389371760013161726653423174233733660651191684710089805249000156280572826933663375137617867429682419041182411289573193141575238565286058742971719046648712671699190477491361675799519166386489810001202515541873565952041899964245434418798541341658505524456558044837554117779538579392910220813497906323219066701176875795682748266908311228279721263067662900587618121865630497494461200250981707399737165121686385841582535765773318827819723044052837781625264015335663687967743572956866268068231788720044728333872151307809008951259457648906452395287166760883411476602207941806277799017938997411217263839112856716802273290256679255329313442255090776555873696148934831782260583319586733713842011007745604823027427100455885401482956982736079299017778890873602344774705257524427199780472656085520541817753220024383374198410107817684058386379423542916248984238358357431239511434038725404517778113245435114474369474785318024501505356381334934226338794211983994389388494443750762378830023608043581986036413548074540542766008076513638897789919150740217966538129202772330238622973704815661915569583508219877508718852308156784505629519661259520624144843326371631766861788604983404142487160370786047605563398834157927833920854932667199927629832440352351519159308427625149348955222171056298161877003052807430626276768842515324250830818249501686726327767750140353464657880936368510232217381336469821180284911459871549574939848175622003104442457777872594626139155208277042086374829229989955152621554385321759079899148900346851282677307598092910098978717193043438247739740028679329471960603713251279339768316844538613187765847128195600577600911461796481835082822608804990973280278440793168327767653717683863584835165118173324549682288934978866679634961964508176788875016175358153981619711167205405959883193705981962197084061851674304607948046201955289863215628349923180893675829612373503137622565680308438722783135820912199207276644779561791070009671288830289369470496983844438250438942928808079384351248782105365635226589390515288695214335692326492939676387106557474696518126054061227531579296558399257379293204619703372036898993761217774713572030789005565483659933817540107044271021650858358872914060687508333754513457425806486733262715822466453369968073136533475747131664535128677074537574442832943400673977341644407796529521546100671802272514943291564803507629629756708654943234787864623002666643270394456352651350839448568350687559676935435231399993088694605981726646980641881073172102443678228663642171567195659070281357737880486654219084847345572015789756126177142766544703174038273932349810254572360510666620897922405076212997556046245789626861975544182664722962159365496095999436376414120152992653420071593375510381543895898558553446845692086132206075582203436080784657714077983169841428289756876507142882047451829593470615647856483143343762574466460237500553195399408239713869651434852618436482998007854836558937000172163119526962328808355643703154242476021206790725298960015532973591035498820178164930023301344616666490310651621645797699705653486623812189108970854830145278378442224486915443807768141049485568784256106108025779593372560037507042682611854145941485263895910116137704289506090357189205663863482105907265825571948499684085846028949244629399245164555537780369939057900447356211534663677520337550400075117298810137243796210567393203164487330360719392175052921429971816582828356297475679812595120705634240532887277787677046902866160255161379410784859413197179481818223030161903963656801549868657413938362225478360666889433894452812767929313009952155380996739668698326266093967357971553530362290812747349181536476474351013485987332839384802279179348954740308369019909385472762611139103377305326156731277845789308214519882045538074802323908250592920818617337144597359659323945035569048652349288679376647430503520243910016437462410790907992715166101394811459529292598390539608540963845248333479457836279210611655590202441632283063765094792539352859501294903909478173653285591744969482474712839583690158177759041308318006176106567494772361501445270825847535714060239522413815021914871058820546044935642582913110681759905963252426689265933036573895593603361044706913315362091138787868864022127866205592423302576359514295451717710009268907020751458537586753851261178003583446198347264537091939677909631766814458786495227848312804751314658330851843862343114846248858341196624567468259523911912734371136046655054134484832326551824260619162772781084079026247897005291821859958049528262668434343115746456978011566665223520384548175721263444931501771705347222672292377275924756657052288483298057947025898425945102604027318892286304429186115516936131648949940320730961108950079856782308573408787394055380431820708478972691620390211654853898738978986718513957864559885617253271960937504152642126701621336843376272974081351289902626856420133869166907047118592199650283715359018757879275878120792931795590176798812199116030335385974587196859698034682529646213343787195460087277289025261484993736479005017052091477691578489355580416937328192417236558226856503085235349932348782254671178624376927438508139406697537182962800489936192197804120923919589001314573985610550222183954228292708937531960587740080679606999361257798960815013525641780001116068244311080735146077871574067917964106584505416969371903945719886921313898296467360476413273965299624809648029634316745687212358339321800751793815064286088123457157830764802807051569353834511634432833902687628384931880615426380612699418534911000503076357371327631267924247152136705442426776343151999191283128030615608435692792625147182081687633599186736796949369867656476775993678374319612449398418276481226350879021857868658510608727710941896415611924836620463758913225323273242915839842481494343686442230784322101861536996981963915914852033757644954626746373723499642372477519983995038168908965743931241722841355115564208865142445971239065935526354928419483067080269444469475509812346261888165016158360668939716649730766076342194324567501346801227319860222589035070624634719195692872929552043133920579425189026451390735643338972714873482376708848855769692240322776161380662632823606808216992348667257603594900027882754916983613942168590887890318478363795245205237009321645679797349780293112685234262727242950779253915520982141958433478951129018774831720470044788306078620832555826905883965236051068911514267582023301774155434710440591091609248305479033766208603103964281586159502943615170620140453554029324765737267441731954027815799373339290716297011789819621968160538124252362510427488286420553095027639772028692582013146951810540888653842257211206210737498544958866481503880300554304172126445416314148487775190545929920155751688333370066922477825028460065367281155529697283046829062735642320813146337603952721025033609497422553436271153941835931908613408366981759678061195500481559241540247337953436239260606227663334699529193436407254769533699246577763414067614122205606984806418828402322952031374803392142441481951398983684713117393825294535644555113131093952022158206013300330130615804324835300737685962855473610193894948183069021412775303770535052418183991220493539326779131382539621895520205904984220476406681858283379550217472508828069134614418592426797353928294327080255171818189680971224471736837404049585702123487967690039510521702694917577397801170278156100296473018366702671265218500390370867690588581875201972605775278590922210029616079279556076743278219768813842657497557072859026831959821115012751707945087402346169354527951103713286776770172380554548135467853760877127065078410922811163229803010771681587024173085330270367310400437193334452730095073123289600526409279845906696202213941351755865078573463244286576106369324836303933390622296600405693000979389154891936266668999915397834979262553707088258919873270814168275667015146952195484036045808171960897676191136601585928998644226039876167937550483386778006152149580607131496951738160584614549512646817771088097571467876770350129874289372585563742551143045171360135239146421277097706699103247331234400953250899262039966912020435663748719190621601612785388556968030464190221323418280408823645083694847651771063813940952395596112887404076686144268088373348587628375696854563736852970285536494093734500865329539192485176208679738221618938987146072189356281114536036165131329749872660264837315870872513741892147136524675645821424175578715610187763931803239497978169854087993693641031879722931823549984818109245889950908681074307772257571496252950149149610491917274580681963428050921496842232148108072104736797008556893820017311377850970214979239348788617010515789535723486056582311753703136163489565846329181402601006898227087966850433339373162057537577775963120767562090200695899328704342050501870287252328654072336373494863976914714420223511281948769144735063882930465853156234813462054593866804865722050650111992219496659376341315542827189267994625806726814854883124149421895654281482561207329948751063785227321385032139557729394465057218027119659330644028762751441109951448621549871856494857922048614736880121189820422999992251170651863567149618123658022729498720435930809223574835648979677061353068572409531027039108635425292580828132656930963403420796315411609799717423513070960282216757615262588976336140613316874603965798529064652253739193106765798116372294175683559417480398239911661226161121459002522765665110908018452428282101632294221073824096014053947355337330583700170995112600689669308526131640282518027102242402050660038430021152400130898039451694172511052148488570695378021480671599637051398582877526649061547839930557441513273220249966866461352559988899489442118811409659331486643384689671196788338440054866184569399481663533421894847655902108894930897110649770305934955909254281240722924189326862630015918129719487250046122035212165835658943300275609512297236077650324394510004090791582799746994860156286280304819269038711550933750736850045187832250967746065434233425012571539865775095582623557672594796731752362260291458668619194350581599890904431606335016064722380045545833096511284645756527595360522971025358340439776877337368712814672783230858829997423920161876341588912336720295473034846017006195499724951393770567326102391700385417484745271857222125636615740994409447306918901971236598904570056427943262992800592077292944595288445329579279406956479934000940160268059642798454990842955562745113804108796775638711784880075266993535764162007298569942666009098229492602676481832595257390778546460203749864977830409474609639188258068994296597867912310788623061983908269219610058024710961487387061827147413087254049680248339528620768532538206288464663708582702559792552479063884431899798157031688803004181251586932111025409828239055665516472106520853813716685099508779387660985870713984525299634446508538648006932896314538113447247840706227424029537682321429833916946232194064871290140780730167051842127743988075798958904393069794749374998538112268651486111152544704396980995755788993674239667548935400900588005069704605900392597434391541230567194848058409506079030912121571943969919253275630714982308705142603839318914660935238965148609531157362374496117907380105155805149150959988960496156389036254211000048289452230191511254501640493593845330987893380615034951351035757210572409990195137617922898496616084086221545303963642873262441389222920939942771318293505921124102811348259714784684462347929464587920673570418998585126071662909077880404447511260555879874219531026799999312561476161062905135142955041776812367304393969690500094049397137217310107399527567349757353641200193519602253046506013078676166969923220222827667798805957464134433255054973703226679392199498149608130260968005994092973369504144283818254838943435502874494445813482464032710407988656837983931042537041002988927430925219617684931461383930825727989952082560346108065921946432783681016716857067287930062602391162080853139800618763589097038384953887084595810968346344569194792606074780555198398524843251306500361279045589109541762468703067695484414403054245125697128824772685776698385860345370964561795787594400961116875899762559843146452751614633314825606856275331347351113196192991455714880405359995259249733750640259478993400270410301883224182612418697592115463941936623853889520860596543605925711919089549128292538914962817556592981910399157731306828081038039868035145570155282187628833088078273155556081410570291225104658985174177402615085435026060129453664194410631967155117240304908188215277688902607094496026524581103584706250944790446898247204787595628468637639906214981326903399866629622798831357882727666099866697555165620128410705622252170790115422952793095882423967756067351557337377134846777885329352156923595648177023561168883916270018028624087965125727549402034067481516335844386200029440421622424155371431904824252219278342435584896134781641931975399336944278176891129387655823677016161151697019348095877872736179000903490019024498014981663531218067115071219578291592090033770985021553571213167050053158292810820850433823132230659530395090011170169257593707118807349333933239739975609652202144044947172531345339210471108510951142651989049660192466483566147388729216697896513196971333266055541991729631744399944718043337555178737482176077478564197941555319366175737197971258740786886670655957301865890007792016614673677981391379776629569044288607142562929108384166959905000916430741339301572743292719701793008959617100473517491836580622884608224646367434938243003550668121058356609788230384773044750875310491989889671688432890107661537776042770953711489448084005710888382399102262900353977994642963058829564006861595330472884008181492550646515277971674009177107423772365261607287047913833647322183535120595232285053105795156763801113292723044147925015657287632589141746490907055802065215073483740352285414132468180458250062790092879074133225237366315950749090499367143457962626858662858532240415070588213266106666622672082242094383340715342834665952500996406194821546819721959149708316485001658609092378919633760662866018639462543703767595046293140026183957772597635195425311859238997593251027311141790499767230105743040159478646692753687467373214875981680646892392285589513119596628787824432618964851020142892682391738931249136719238363575011071897225706330420455595140982775757728306082883262929968236847430491412062419646281556330721850440436108417137614727346964493183407190304684926755371190823436016761997148248202141510245138786512534375479614107166144911490418784106676345657700889440176540765082715244871610149076485064298205707699244724199590895083276519939311933164039232309284509405915556139271857142986982662115434766019457677822441109118426731075382758968563134798434502501429489550404154717337862876288321979415627626826366180590582338124082773027262438803357298791066373985455922786559985582919678328391582077721327922592997136762543338393751573064159846972476915693566277088648083820853074092195634551144507220590174336663110733685596426294021092138855820377589357662224656295125561927771668427474372262358895716691457380056935837279257386821768437630994835126118971260665553730816234719120417045256322616081925649457856445638352583421383708953755060854710310386153494562990910761370033543949307130759177336264286773283348754753678080484963841463558713301097716228898976324145185360494665244532262916221201934968011557497799493145570848523781852469486099491834548139539190942520844663442985562905698896588996175730532880475067131968892021717523767335938005611360497622202005287378069827060086961076545965056631869021635733434931983421171506394519799623839482796050913784586857631628213330238902283156419821850242737373186058453071410631879732898756908042930374612110888022374428760059943439610286190849788808663857812648145693830584860906800475364154340945787506625808934370213722394134235007715495006187388549014684418127156113843461600460861667176985649984287154219721967390862339334102873208575538638105889614663738875516373095942186116957816149408740258653872667781618031720724289441295830665630150700912754655344057919283348333057183066260140649093713117715915352198852482357193532115124378276160812554848798994030611845770716113860255830056137536526105097056889887140612642442164169461497076097937613546235050357253750192254120937945332475585815819864502609825138658871196205236552371818587201209356210502587262806573888230861804156650677394845553871674274281224431108338375821106278090838739955534998960626671902429614120711830519879570904885753417698142990635814379223417477066566426716427010978718951984998722642994292384753368669653299664223006387608499342816341337446626811764305938043742909764662588729884236853242237674132127580100227005976827516829243329323742270729922430279621061608911526200049919223920298171608021632279445720800342439378076610656864428379388081979058105613114241030063206058765319550204014909993341507317112929402214391982757859926767997459108415271178926092745364790438293942130917146210143331617698230961884053038623976516669673588399520773921854673368148189504197253106128102991401191768697889671103268738139636213426863770318739082618186105962424916234841498655815435945926781459570815584327411838481026102924663269140148318164815581131518475626689831274345735938422481623280458914562989627059319566190673207001919011304914130312211355109188363391344481744112839430212681200260095019114971025624428583408856213447909793221846974398009775760036780303829160502778669634925845919812237039888711076261218693418459345298490778372458000093190151915256549299030567471872417348901341610819543720078195669678319797462690934346840712546154182285956842181053132408221135166550845908463903741232708410566999433078595084341957591712704197460495237102725539285791816695994256718903606222498753425560896476002725355017051098573315258638847678533327052328334204963073553835859584054834148025724837556397276478283631654754689393847230124919420689242712778744300245051474078677483370193342074434730190115116083457226257590492974315959023008188383460411886350330800696915399869292080339320863340989789414491993269139038062330203369408497244561496589744438008426887962657035463211434304392415006024353127211123831870997375936589412923374698357463365731375543273664117930305479638226011474438804951749396600384022054280378941893089537410952466102829826335907761674068223699846260422015674732767075884264190876855533846396368251947691544384232954821557677622182850913050206416329190963533077571176808739640982362454196116923930031112102310404329940402640534872770951610986829595009462201299646466013297641427478674802689636268472996613302737765161456991908321660056236990901827157784906544846854743633759623826508840109231695501586418846566950142368130370255351795705682912139404505280151387437756884887270056439011849859413444211290348733993844234053163950603508700378694799397170745589192968539132074447429326650147902756385827862867636880339961084282132644724399729382765808820368903299174072587165192657957598596469437614762013088900413674678490567694000210936422207647611469156377884866868940512395065292487141639109568936146170940288887604833495483301903582072840711710523804575770136186171534100052007214394834349086261151863504753629300436452312929174934668686532484887297582009605650447955355224277245954671259161354848794248840154120091568725209724894276092372997114772527818639627338004109715225823833963988882237037042495026665762252549016122839593092301774452168578479313262704589462452361876604077198285818989585466001057243372139890211877764445573404261083563341698208567342322610602494445907080991289444162663322054137905076981754154987178635535028990921513472252186127303453299404827500420845829884904171773636728081659862742693942636789639058180151739822127388621295259497845393506135123669176521688311652906244277900571081886233495562843136822133732570037019775297097624030632661949342772504941594666221751848138797682056337073667299803437449900372816253077810481635153724321513269874305350199219036525862042891558469598027799660170472009108406152013603400740610578813509011737981936152386431172686789510109596277129922109852205324894208213540960487628369685410830583710465172243074690171875959665013200370419580328923647248994825708875109004069972583893760541052896775041335747928196037855783008581663165555451985949081264864427137874186667314458696237974761632112342583791905736882857867949647490730699591845835306470158244946250452718960528216088800886844870275367512426024969602711070501596193508904656671943008765489514487943187295775976456313758214636872936186073233674421648788688255798293656536480631222296400767288144237021684196064746336447542340958714508523196746899945622816823204685640087730098259107366081567763003975777730405527876714191032676394340938923504263384516336804453493296792068170371989281664758890444406076746229456871301402349079848181061515772616678294341867427827555105105275011368798922329670427117323216751228055696908569701350305140856658541845083421566056091242301920766034282139816753647438393080741209191161192148468195753327283221754440544024237860776803305429167566118978022727022897766953997728854926443682003093834021834034492684889692144856512572838957291725669199163217967474449307613741227249899640790237413907539651783198928330128129120655815742647680871486130178444893566635201029230219743345683395108945170088351137248481129742709722611197319406800334236590728471427648479496469245608351439468210501259753180135356020825214040483504225830006540942452365965468999760601918427525396959348901579998696755367165129423128981034473591905991929049791435168980914879243739867837042694462515611733352048278569512308964690959295222870482711792100630535812583766822037930050706394434945729803516126676072209842896378024368030342654426884841255142677634285951261877637130039383638372749069149508068970355411565031200108775468468166459363333208762762605121672586559481776371186014688232733644433383170870970811740757595361830356420086545024313031116538976705537134756303632357839389859517214236307125763966329447992834693520085575731998009957417648923668227279552457401069919318635082315265735740198340712486594452631797463393858553525522469561024371230126542338402607617302520837109315017793009968050973289722415160391326847434046891116745444866234999973433473522632765404011915426737613469009063639234482170667720332476663837880596499443669143179476385879546389194775468344914725594082427250766487386376673931610406553898821118561742910239118972881921619731209137364102761078459899757351923434960825591398543526784841865623201163638323279321153392761877736505319477002751869841189367843955169665183272886882650351885892961222075284131550690269876564024320920285865215918425997196242507024947450747882718826237719232808166599371634415111176693617013231987310665107955206912798071040659546960064704073898404010753640180111152756032081455943064498457533669340260193995730034313690531474976564593075217047550850700730647263243543060876742839176145473047220764177703230899563828967310016580716800864525131042908893510863782061372377122819320579970589138142791122527359057501988988066352047366731694620997831759642008467577285914228530050551661667314809990466513943422553560149186209835590427588229950507208709132440214568623341578828257168537299466518065631903899824414062965855511600748849815523429682132530294561294859413625125585529788215482080557072201906357083360554627529956767445597664233026110895794860969061270342993178539825489891829461409192107436161647202141894018621357553363497919107728849843623564846191837761441595132374562817616489584687548347056234064468721830054381224204418235672255599730960441732238366581986756978637987012726141228679763727691003549963942082794636263290218526468914895384812549385716622964458743047292773541127301905994534733294837642465682615662326672127990121005002814382584289130134599353924087617572935157004809682633999508294853310944189204758419875950885004515459025056852908198852726543999281419075459472960130872508730654485181763153490277026839834678216152004178875152990901705874219071273356878888496209052913766093564597131249164188957352536372642377253589263642618663641545025326534738866311768525582624363594960518041843488456325051249073990974605587712979376013046164421554097107886480200516080111341461540290067667200738775289075689567656813282247125251415706786676599382564860989235168279262939350628461898934074585962630758689147165640178151085331421195179110979264367294665485552483012084978204637434135062831786705607669137940303034602372513990227497467608541171970019541098271487458346383895370980487679048106263777577061527420255709064375245154293010366595275470191438255867076870588452923285304379457643904592044805257991839176433287063762724115450045367304056500696499903978838175624410200388988992883668963262107792955427971021696971133069708669326484893636502105850718494361727999597118689679068222662260175878073051263036547602636466559271300660015199244483570719480177567255030517260512813610657642107261537770394137854011390832155826506653023465122422838405294051623813659967998330115779397584803236329448041527869105077479546960758279883927546368106403719044913243634512227041583267967271801079862891640243897837516929607122900972758356321085560063880549131985398474652843925574458360798690920318504467789445804980397552344674897221466408327708896224945389840593846170203632382089695563393551057780175549827360899917161820542758560747920581433006914779475092487865863034562108788275408320257990510671159586744253844009154693156209863320135979992434283166220720557836407353314216913022376949186568033540816979433231732244831996874590271533632839965048284689666416220738475201261065613906441714640952950703276414361706027300947368524543193662107459994596157074219065139040548414526155580695430518556114049723048893799824799312363212324321089451150609009234278296297909381734596814433625166828012860167586158047739255308806923711803861788556096993183158165855430748810675346841869030853253331865258610748422022886462975623212040490417755244584049607892940238109837584641923846196803628886566822029236431859947935963752455886828886605056126701172317426725528869775793320634276823552154061287080921275925296571257088592014137736703972443354928716332237078263161980504254266417604330796741049713708655964395436590084769953857461686760447381988665811249835747343021279802765600835259329115231719614147193806554133047161577248281414019562352048075527912591466694024649216726586809179370349124061084701374446641321238765127262681466921402562737225397237341951576743075719711561684858858311785312196906613393453223142895505732436799275323815455798355590410511300109920382022447683051286913812646890037333851261078209364782721314517253431147002402832950115569174867503482158586230817615454503122437993160084817798534337743397516091146061999764959175691864567650238249938359462453894016509948217986719696781772137846344235205902944976858981792814738716470686974978015183989957090749462857823523049974553033830520271692992195887428765103453306568272467464560504902616088165771100778765964207547137899503253798955529230333352846996974538267633047140230817918978375784352667586738392793684563612720203449625597991213752150390548028182049516764742543766613196071600007082504788299600284536181916473208752300794351460642868029980374330604752613573441028071563484335053213079943267847433643597834348850996236813020900743101652313701381295887602259011667671589199489343698063459499797468690056647632300018175392965347359076148110672946116584710155207049480885695936844156081752963749383047950950095316078729316383759867143927448418498041338452429135466435789599437465973443804578317048634245908625410486113319246007257323429908907624231978484120770872811560482105841433646572221781387417193422112390906713037290147356260981309925724522309441253503783320767061793746433005166559998710963395790964892153186704826620634559343788874265420487686969786595049384124021021574832008068131314493616620137434040823794878637351062076653790755970751471691959098177503697214181485348111761642101737009236174515714182958718771072127453570915137658367520981413123017226744958139810313571876222639744832652795541027834663712208466872379495943082192271033498944684609201903566968815783527483983735270335093277463458478470589184283056560746056948569690928609880181227242552831897951515104434875811757226583746396345618212702826028557657249100958484354823974710595530527767584762722170620164002106349025690165938325073905640478442267044232836099527227332976324382669109890624683540800642583828284131376519417230194187933433274271494033513960066084788553141574606601357452646898208388473521085024430554362196982494516205678449251165971025057849791899079047391650481828957156882787325204718759539326518755651202614494923838687400314450879209412433683483800842439539170528988297026967489088802234518306819201910009981693830252600285964875022917745501490142950466125742904934101102836664510091388169549952346229385552169320197935446109971124647235268120741763488388217059081696012538506528945773909706170093241416118933553355919510576258764803237138464309254967598327813268975294034248617029509959301252200087344311949613032953210775529347311805418187214293071452778362636313246265559268467265655000509181567309460709741877594926140690027920362178522345902425438341134981673862065917780436106719605019646318734523303007781639565489087627536950649177162045757124930895902120226736535450313184825757522949380798792922262619737852007024752144649043465441168621885263563212260698208101090281600195893643790823393608016793578569089827441441412246934350798989384145194165016382472950613110304759038997382929723290315157246080824572351853189675610682385866780724869705864121889713582784560972438766013306940313370835304417638870697510853673950685655843863942797270157704424004958823087713937794797264597143320647975183420610154831342320078888022172672161570145868435365923231996949833768483875424244120929563629055802926806837219434927847191018246629055024341789747912176120052782622172760672508956633311407023178004515915262261980713734195500953379744481313648238399748432607121981825545215518118748156724746162390844104391757302999083197530728369641131222155258452780131480585536997756252641149016932201580654362635490335737534398194177968823348051875478443352234680917173906947312271042127456940778683547725729664558910300586062979196635162430658541647860732357457045614088506683242603240822149435634370735679421656599274265128845157529736688884588329735665023656214216343397185286421722151963014089506481593689894337472553196251422796886881041917669780766829520748931860664319239053726850872278146176110055143176528262860562937269540416809910511517562727341284881542604709325180947724407677790769547218706647071813059588891867634351216433409349979805814537775724587702953974079745648530477393176229753101272441160505711696337193037523066715011235421318575477813319999670035524611711510390743946399368965015359349624453122745469458201507015680949815590255826847218044714180828875919583223152277387278836578854624459495615347939590811291128695801377901264016990785463660006709463877235029756030289153734701530867246093935657764984603396606912631803726503457571323874663279407672253751115911791074481765897827920884254086573988017884909912903290616033280151998867760149909387947191036741449238291765177837295927314135261615144060482603130630893578428058463287691376937451153010003568075380341974188589750740050588358488036140086004267200046804929729719697391877072199007276722592639376864828580921030077121223459749604998256842384646031663912275492662808067476088109795576170129227767437008010857198986144388842917934798239206467492261936900574056725301280109663264276995248388645472203687319949409514607176792950304649571352868426415952686147441450890762376384896066348947603821230444820195622530823272916345349550654728110186858805130350706100574703580828871975461677565362110617039231976263067744405156769797957267990460494169091621892250145115420809372375115859708040140073438140793071299403611826981891477636829418425985615892517026125126880420800020841055768218630242340894265149639521856783774823661596755492131794509277971917626494255629679237900486524189220159248466567011640931976104507067522931014179122988851347408894419721012340007828276059377170619812554625601299960357368333571173154890959599582225351522135299736365517292259974591389595753580433933079431053390913586658336475032097899015113827408735314081152385574150226084615363765844583156249609156448058721717474594593627188819493739487049731355812993468673861576661548180513817292422795714234198389938154113711950400560172131195019863296141259460996390337441206651499067489139784154068199959758490470135878863323298192011281792413226335046598119323143822505118011619841282969731976892890646446406368473522143099920472592675992009487286979743013783297409830529027050316395077654942120990388659940452819566247145709650690224969623058364788360458961656375876950566414354893734078031458561267075145607615650847765079734832527621844064989265268681365333341160257354315708776676369010072623875383259508119481430339836183229274224450199808275026471783513917497594798784774120776748001606881364078825212945127353921585169111289198393371960885646922103417846175917592706225639272401278802731822013355944386521075633330881452397979489713030530056462212154573587003118994859140542033844525366889531391593517638319088170985947161888899347322931676912153094742052220990304698702361929525441159692597618408062199255858802053082681148347663122550529208711498085754778423014687456753400970681020365685848253873867236147280050831429630105472739526301857154694812669149775882240191867526284363340402614579025708050354512775673739892555709195415020093110741524061144712483919397068897443197523105540028750420467896521339830896655497879651326023028058048425970578588387211547288077528192494629333410655492610276590216084159892071923656130572781273393074198919213417161912458723011126513735144284004057646327195894945733964042883241490767093898185887694522200816652886248410734462086385132873625462472414806210952590182052092931479825315070592681964057719682139875605010234162616201078918177038656732111339810206879611650790676263148182644183862066925048590603809032793473679860668702991516492979101454637587472136180545253609463025140377737399071812099882230455151920016965025718887282526759481859184432919503787183013746269891173500763608814293819201624538806209770711158444166079243768366690909147316111607459424878506628051354118861941601753014814569254415298677543371321982606593870799859416654243243068128083256748627467627577365262949076657942892984597961322111118144931075307256148251728287260545111628675721507218650730318257199244197152372322222313144511879529840346359312478104960138559071237465010974274914030569874051467308970204030450610068863840687329644368908849466541178958094844845227848983252800803048739684468317049994648982900540481050956144375346010214517044307721718199708448056983377554176550177380000399354274040936516811176665071401875353588914805099821841323287537165206232696917187926825414718524658813586120716835864807542209885203753459117955172089756631640963018968135349497043027220480038805855569813036050547337159987033596186761711645147586106119034181807143995238035636196394040499306582091758282256805038094446949410291695091817539089836184839168609509645111446124456291056329348957877280800844366212854492332129526528176391978277986371942961519877477240265085942243279172140017670497686981964671761850838566072160190114590215053334740542649253816152248144479540249725393967412964378933065851730656850878703115837200761010765186236527342040251481388522527817546225242722973537283005136374591994370940892735189901370849505952981073234583133620990574921220768373675712843796205414751805705677402578533392563429209458218362827413297934283751805634058177591683097486959982846162822446701647941121577450176123874591218141875322384249345790918578860768120419785608497384523748808197228075870970742414840638140854280869738783911157504434626614919834315317693633430891991049363028589837046800822826944410940899254852789678684166228614659606845463792175561122386398077399495228830809122727683185569046945150310339153011717412550584357532282467059492855052945725415549639526159370421243807966629728327616404271766085974229527977351965463903395369601832365757258257766227811314030053934191523846095137706593519901512289058123817433086097266952232489176541395319266138671533885527525417286897490020655732317580438353970994783717502397506312664333400006256101653094032418129726537628824134149800559155646377008231540515129540706562800351133061242736477862356379330031444504630883840262389980459599101244204711366850102225930923483146414528103811935596614591855978266463099369890378126129210918200557249656528014379466731769635434574984788663559941636956457921213892195720599403653839303767118093864974324020819514213835773568981957366788188379820325563581034294608251889518629274447327055343803237805324572693516206296075096300336195865843095651678680126380641461711798396220281992306526854565527178177995729336929017534512300648026255165690920388548839164050767309112902472546463557570293494923857921378099850622166285658194000580381802273954998275243864735352587287185390939098109181356908404120289314255676413402761495095157312600783149868034570325646538740424844435452034649627253381797425222803427188524979120498650959277537990259693722405882107433297190994551448739762481765100205319203948869521213272462541225523337126921040070359227594126880028023742794948782897557393412284333178522797290991135350871343765252226872925038147948092453626370924341403774289534066691821456581824097894175560310595114188435727929208402043834654377560879740308369837027007741138667615772341645079786093297737803344806715712420228748737897710881395978975153267944677203545004938295181534250690246652993396146350514754142644884911669281009957011688471862770640329286636789189177027234381620008831745410582430103884100360457790303947532647753387483714778167663616680825348729177250467547967008929137402371808334891290180886932283908288198488053016777874033224706878216181937918005783037676526009447913799785495775071685668673319148946055262449007210054509924472130642968060088157609391894651234463282670506611686980308213609117359049620377218545000471764184974632022203607490705542358663070242062108546420666712276082967399837088083001490190026985665547258128272420947277434748637970279174066642525097315582728602556617787610148210176709904076263176801164262717001321585414583597134286653573582579934579632004783913621626420381333129818626179240197191842878826718456239901124774014287952874768821775710917968015806736699247857751043974497537535426483172234027462816798056306258164726217021719370967567076273042407667771028007353156170276899478793436376226975076913389558091153191716507173853544932446967500957468832721750624665133289580451380185656712504348849455796269936431578560399680564673662016504531326637401833153626884504193153662931303662083362580930509901322128155655685604267919947265965219761377809448295157587960068859708793261436459004691879431212060943429021353643006840801660974477847544372552267825165835934029632903606711185871574303830974619115563838716106053003124488358113725389476470548418980618747270568450966677707251490866860311654994656170490755819287445361881093978022387920885537994813585475305087761094750700802965186435388589684450543691538973348716162567388488601199160628267773173398559130041521467083785047841473614639962871945533194281221809484819113113380525933186014730176268955854419130646419508335755679469877215114781466016781176567816567121586359382298248578543965466146087521677213465796797785421044028895558611207563705874465748474041120485487547408739618899124535598766663400799613590621680554932493838076882577012594327151489599840173765342374411379614776529054228787659015355924142723326918328366147885760506987636587246169686022235903805389329285041277402175117203154151136818405042467736390775371906254235853622844237755451545813130212681615460787853110865156208130466930968477208143360379615078095159510704418971588367821766397643312992088666006415542469353344495860548795364697349118228976608933521369413089815536462727448140368029738364314538727945398829604995194844305776203248498122116319140971325818242567777120952198846125840837650152545488141818299827720131333940551626399316187895543798920747169129071489220589370621612805537176150781148651212089259524708915329374958182974085195032368356951853997794639219211186917791757539965635420835008526868191687618609963830026153974121131516824180374010844087763649995227128354434213185426165749587812255546709823736116809788730108944409157772434936920519544147292996392520602745732618355551078491605056972225947007457351860600108857540399818855386524305352909408336664812953841025878863291815860716128252171633554122417659509822287675425995349473658115359608294606244211023180144748853509740165971198123312942062426061186260740929334043690051005932236755035022213710765234273687073680843733449849068686390379999668943277670220158240187720645751140743936113904305985802166848700510215581947244800453407410860399872808662578304116255033245748896333485249161132158491166622816333581648775373886463291500185739783055602048945448368834842577971425563288112460897500366675858037669019910256583274936305494565874486021799270014329732862357772668614448955063959135978265779220797129250448229574920329919131840136995817888783369611345377207693900692384491218167831381344077697049797580795261533621040472419698837262967905853999800893976293339743222912611528029761492286149577122042846017076524752999561996247106564232089404572254501233096392183396602343020467634559868457100153606540159498165982167368371973127086887226970172215074287834362209833644238899518814879837590591781245464910647000264714352618144906737378656750972701191820600963632564413878266916319062499581536714594306359720673378208451082930559019096975924726332257558290709955475721630221213775600020729380316356478664427028319708348667051772231364562311390491642291891212490275127726200492783930014345814035053842493444475565954059515254352391403750293601997631362061490294065587345089289073535844757682075640402273790767871654976505547164981712620320420031679958790937647607642291911823832453774380464942974268451429396234412535937250467283873912828082817908922071384816794650154830174916443514359569073677165599698392383189927005830131472031413947820301531763340864517838837589632687927177118873878827808989015608509081329455095534065139537473342602266885661323005973087211817326450486493929854831510042228590657548308196664144059414674733138986559366786521626078727225510568451113315639195971430856688981992782518320691779865461491547961296118784085715607676820465369139820967926320403571705947756392836944379107580978680117265927629151753650667462630263709924726955886948678659227054280585412934307966773724335057485472107883986506223176438296435214080007888467281889130944976189218339712649485489976119577483282003174268040085641835970632038679443926697553684787984186393298928410262437791052381801761885976854862914606472312723573798126380812498503386753433557931344335099575459136015066545322653595926319132988213725621002797520207724247410229125514680016975281149624018870494792153204793986148865590781964928156266458994974567477004863450133041195517628955320348496982933444348871208777783167846337261145722284359938005927563951987824147789986773115639464945703785989816266140088528081991657753155324598993571410141096978023033415270404213564622408336472447797729317443204750782547720230911509987494278564986525029115533438296123189521581542323552709498922337503126345490370457510497914641056650930166951496460853997488728146792725682787951166605924956067753165399817633397593593861019691681330297503015134420141959387471416257406799895975709807974231470620206618004416754094958192946450473923071195525397842189547218325399313144702955052902204377830011277754175272969954094073760475197925331495787879011564513139404727305734163175363415309670954347630588872506433877437727250724641154601740709682418849684360281455058993252000870733825993030289132084494763443266775205418203975454566394010282263390158321154782121572277674213031531292240859419168561228845861055840429811060898534996370746068072520927759014997054948119721133957103735760207084856597396655841405752837591491551969980893339044366586453904231023361496585592084797644278347715849885780415261199795536013713800312054645167388183230090345442633155728811371615695433845462911738366801155269286124044186264965284525405966519074111116177598258957625337192286679851100377478486726169604344125641387413262498033012728697429343694109710576664291930986212405396229020506593457411806154425650882162914041747600920330566129722720094622561657146484825693519247939973326226564615535526809801359295472896830357914507637305587371398873992609596424739477830500788247169403223156605330272792766970688586035968375672709096224663203080440667908217102457731466019595723568928703147709630009510559618579085737408952599457227108977782611730072266384376398068577312596486049496498063903920520558930823252312195458462273687539253601323238200767467594483904917065406143579610400680853834200511124342203339581243621458151894656302931843796146082816189030742084298135973207775266297683818274222045772412799892114465079878396818054866685855398798387446224405389966485598028527749841775487782867479986907373837117284990455908241757464883251850558585843265480090307618375330556867613138504038551470108408851184749455087737348351717639988884324260013583115870040384361274102012167382885510364071058402412262265771014497190314602525463172638033581798693658991029196095357812285994078043094379226638393107726276303383152515459397169538911806734145610550144344133105038526462115457752361013259038158901165966354253416940547381017837235340671351004818383903678221014607283725884894518397109546770886342517010873000314538265834718594563945510913553997637302970362133826653115707219185380947830791755481045540410409276840053978440415873620170322249844511976957809018899332541281197916309536625166649785066704443431083957218547596185208674041649439290628004001902124112803190760473398884447355502396309707470229810136096170290171102779745714705094583952228099343153506625100294869070371023564542869098525504259562598133066634335340790549934913383111344345577235935932646837546761859735332485694093544348159229655161310742257327683399499424887571012390915275953671389993629456421186911168073067669134102179546587162488170316473362243021089391046861249740809394137379355460733864138139148854626475635677608802076455565754176850661389589787528632806943166506093350093950775566474603006743221959736142178187140664445337055053259191369812601660504608569472801842586135532921933413492666169513031361504206210094709703463456092112931844224979005191056459473128500910665788992680432389964631552597016381830523551321288133069488979350254500679138772189002160491572625120369923272631949827627428422573848367655393865143436600710085284255360728583968024260832110460786838765203951476456627631148617303651626122033611505595825681855038741184303571932780522126071771338906190610182770109323652581825887818197995697527766166203428099760905368607840765280486405821893685549078840856874274706759516564071508426211834157765248067760995318221389903114500573371031679311394636083499461475827141300417718425209309212491289964755243071414301983427819435900274362361869386306853404262896275403216892281103695518238406607014604311047584177377556555232147362660170486674691537152321649728274380333387001457546206588415330635189629722682672464083205007333976684613231222197715489811968897964858328767213261793285031089475872684399547210664616926471664127105032164325017224517268943090708648257864837225339906866516712621298854988313336073383486500694682671803466658450498879946518128054503515446291293011864008271086010434332506609626415784027536482719320870182716014883200006929612855260449121917237132367517160445057193288652206385200123643216821994825021056667690787873575386201407848110992223872133003365255162427895626256620527442781970622954632339818310097387022467462112108164047086699232154905632479930955501196818958770671912950646539483727866989438068011209644325033866716675491534757308904632253331773005663638413874981212013056079963483975046685976159935455827379170617293761102074491978938112851245364346533576109047387623392186599178055215988772325774918206992089520229878721284003730506965414181047990418345326467467988809864189601725645141295276680477378059521830044107822332418910770740038674478212523393567759937797123061979076803667441132971648195157828947401694050821629144220569304012568068653147987234875901043874102831761408869894490086388058161544737227684817446438647905575464860539648925611095910204302835555562949486112509628186692860837317339937131653261365706284201898374431071506771158660776410585113433120370871322612563641814695099330484890355711019723022818052112954646841384102578377699993965026713383313863807174346659965461265207461020673354061759745490166734332812103711975647524031137536642197977019784937491007520637737494114139790661799560947606166727733431591538982278866809398458485167569203632206259177072099605877619086034090654484325546312028032720586855513595775139944939424177679559908547807120970829736104474454446325743784405967160739610142260183525685124098512658924070380137502852813021428902978264592264612991160890883526638411090224787086118152301150448632148992270529282962639407669967794396668643318402642908500058531086165190186167456605536668978666142111033853250522649883482959020214308034080306355163678170602833370229331768642664720620303353681606465618079045308712519003413341172756265107209693235079356490888417526793404228151809333318540145061866553031427643218866661944655084645576962677889041242536142471886786815166570446579070349587439735885784499701515575824243511316839118973741903270124383880353098578650265584133031529039018612359212232072409784907624573484693522210820610374368644795205171444633283542034304715676031611742384094009033078009212093337279343740073983577221498372852068094592748846620116704201448295418008497000787580600348369659755915099636544668237215054442917565916039999649084946169639715198776512501803117603980297406340958467272867651361786669664221295014065509668867402244513433394872733493917141147529080407033978597270987047135400141830137721660872236512980135295473196285610906075674643158631331518520083441131632352862767124654762951051524037237581056472775583494004135713004755696561360736264692615774361718221028468002379059995111042048921198891668738737561582096884650466764478719547920599783355856871607691334309048499944135072403118123171810162222539246373359413670656902469056060640407006930171596790393420603474634847872341356375139351521273492421091782409309190239261537945787899775627543853387802133232131153246176337332417733921253051991751854634326907919808981402974254162106011026177623487126862137934873474533360702437946958673718324287736010319519733859122299355683301498427548461888832765925827145395780574274765599414249438385687412279905773901232831035399762689458782300218463572981858892089253068067716559475509039627378989313282057248162535588777577496916405760759239364917559478824498232614847217780460831642834195354383333007843709475307535621413777349423639792096803851452398511592268112796365864579193060763242878571978633221849775443510153336509470788582092828108524824115438372287407478393311790922917335263434697894946423235450717852126955729214523541068048737336564314050365241236599861783897224627176635097297410863125285316056378176348542533801602825340694021867087161190826699960646482973112161234681303564376205492764014330901482094479626873515620603177591516759473543821390368073746041143151566796221330993352846122480928975856257349272719285457615997058913546855497695222169562520152379234117393467918632329954939907630255606325204559068810611002506963296477425094215082334944962522467966688966005935853236629754004846784111429011104315871405692795840038586640216420182616164487062208665796914017876606476668692222841388849092192289625532379643091207724001347925272746803556997689994702246600559404228940018504899778401065413566885314583745345831725216057885763313389593372262733456647842185149062452561642912162011743170885490791631189899017813275580934824918781584461077988504938621758000101605251168090459252979588474031992543587719792028393762575095153327305989246370263210974012679751530644844701706705407381391000488664911775053593844835062837630989872590794714808629890038946691335783894289963915317526987885960763201775228926605983667618764739145572652947902472008488753396279652229556961225245838946167589651366391189938577831547047485626576341331410375433627336998714266138442023978148140058805472719587908841749734301481667068761863998050680292742714371008018703482841291342373718022774427347066555158860325334870965712543179090429888820192007488878846447496343878681817994428266984379607959346452230871408907488908025179529485955890173915998539499803188726646272352380489879708782356365287840551328070839048794608775282960649459277849801886948762980333589449502471547634374953489856944362952369831677516945697162384877539267850875077480109898046461924873041278848285396633231619495384500288830208447712333659124791672014480421960160469788261181986951383128512949663660116525551392696698557109313218045238146034626542919823262210806848091777543762181706548234430834497690011942184886354776784948997345813011278500704698162770485598674462692106017647165241014458582765671962916228158439995733313515165621688436731862303370412543017510396358109813939975750600052930923781828865429931122494175525278502641949938940229545281153686260233447517243423633431575570323235453201884659567080252619478415132717167804489701694343309341480510215094940359730723999712448282386851504166473058312744500145128264417264879481147486420232172201786867655896317709758425812714612285465985313177031126524481513020096412744999515963899886285138525166838264515638128058580455796068930345905450102085420600440266050481953808777317952262346207615891221115501598506581876131216091282175509186104680693890841793930702222223165798211811976970492815499653928467662808941953353970403217340418032864300076191163427940618218402175975552139058690674500339685970541275427196891672759673699474625725116863374288722891751295562884309342035740032579492336307601441441166564834563368286331371500529459416471594920879495159534970074543410204485948545198886740049394977344748658431503030218706866762996844217050248773351682175806243693681580220708028107474307420734257819196645849663975161632557839649106466996987849300797325926000009823077924211870447667033133159282155118305146481780408029709022567050024862437822227335778341149932729865344228549821959599026853577037583954610342344431513087946870851427626501060466353768269939309774933488097239034898873984842981711777232937351991234964170817193229256161465042071874911529469459594433665623742511051145721782649034429071077733962872245855454393592738528437162179322038212190579308610701354107084811675857888350551180897472807678316320971348366767272269391161350037321022421713981357998566550726310131162492684439356297068975081077465981904943205338359020643025639728018937555577650544110873258772342942487471433675265007927899294161112850320638569180538020418583773818750858945033475507804375784645936297487361137524805959890607456996275622664539850120589054168825499944558907935026690312331241712701946317069645353477760226229030045854603053665726087269000282685785181082686349800856027716413405265523465162486088900088050004391783181981722253986719040430490416406499222603336937819135321387469611786370951411384360631653695693801727294608619113352384548303632874486993481728827365160863458452951300272341239121450341969949429489414960817222080355183010074581685083002795642774597902660455376154273305193546709488296433120682952010951514134992858001739937861226826890183624939221422542841076915277096158947405993924215359341310923392887072141404074041636825438667572035151570409768628196228681236460315804712226129800134394162728373670735050728460031969294682832627163769709469963719892940234854449639004893609710800950743030559092303806731770578559493799593246025315929032125827042397168829909154272915088222907784556661609811393596080530147201055380224194731147842685822934275775251868715779528047650178606025834937258910683756374770658257828793819144299456843891591369329704369803141100513427486025733765966381754806278017523555965248300766011792509262120410122559985777300832615234523762646646019339196701686449084926341164982702469777365254505704781184853420089919958037181197614854644655429522413798153001185207414058424453158434511881342349568465359773454729331168206915732804938345318924188477316508184242122105992181791569712431228333490778575538726338368112197841478681053902871602551679125450151048418043696812216829545442636592637204451995299536039697840691036889736290680782462116519407185944839228005528665541236986844854449698847983447997589026233714232008161262872722650287882425894153153601618950475492203717267283731004057004903685669410469522957479511669267856718872486793334524184900098642463536653077412739260417418524417295541234885463850880896067779425080893565066729635404006688209450775512201753480814880756559880601831995442290201772805032362314911317697722758210683088754263787335096623748774162338555539349460141257639621187183927747453623232063764489339196085937080281450779642204534735798926002325304456202858318196777799791742955968069800968856914655136061150041511645574333761988224632564260173321392397454754683443132697154800041825319440255931064960240409706174099324166838025690291828266635082686004384971950970472739932811070143094527179342642839894834195846064485837851867914155000860997894786772740855399391153619163273452107560191823190854000730963445323088386943188584577900204827187785525080832716471120253555655730752913051964887988912869087499582967885100139430496366228031151812127080410203580969359391310983905310265170644137150233010553850353691833273110215223514296550645378344716355761399292371104830696368321657188398825335469683296491988781129891850528532626511337284888018178811625947244540113069310810911388722206516022589942147345780020525435888441451331927208543813970422468105822051765360038018378946311948889090532634311436533826790566372323642502794654107358470658489911532464273884629555376899241839917375971990098018092394396368070982068163486226826931431259790588147140120020292235293289414876550516274516876050198523929940869872554901166672657815609522239746119288115422306376795412308323111217081500346187973698976463529115412224386239810921984865258277869871221618999104712092571497052550945817964152995606105617519757653938599440277470812864641264348457784995627578111818786806943415864290605430169108133233871886263378848253234729793085728205799425308825096287021888939729974371759003948697869625224665988218303288835806227227178370890384993659255039106250780700750019795402789973060473974434631730730741428821295579850442061190092843562017334823300350146648636662536687646338905313857102047511013097339609821189479689109691826919531208768040497591177560909014465528172509252677666147564007105541449736056111117506656396521614985454379630160166180660151976985722226530369761545571946406491990621813033409417123323967559266166686185544691877363129592496201650041041808923170029073811238356820764331333526065879470334611780377267978840874417388614584543306539045116445658958468409206722676941883576940538322848522894896701330331643503184939834194489162635960791002591366389778827901028372193142817254329172349465606746991825320100075882857960390924327351258160830158626834427123820681953110008795716158386010283275574667992886985934415912673461534975185588883856100602081302661914405184374706013001027241439030409814697783229496208856920489555423434048697513326230375370709365638731384434400533493666918637659857518877414323242455356892564844226516866259096747447511592896052675878762952202017596273294939305237990492688747987746267842300859649386976539536356152143578232806655638295799006604173580684443909886834626175952123849758316751373501689405850903355009149281331532259326104743634389735777254761140420503153825072597134684612762002971307372361394878438502171275263316301926510238980425452051692258588415489767505890218148726293851510958075321960679949942032023534796785497083071602237038082806864310769456916252490493577051621256093940767286124612838675451537493985852056992765847989728986698642112999633090334942609163195768377974192031101237352684919414125649170255903658261477128532212288465116893810075030057605586364913169593655509852704023393369716957816504660554098130093169203573709260324779392245494677515726085980517481268997745820085313934108767870826348158463263176258069078777093975342779628902946456830448933917608393874991381237486323245032816248132397966723907714479266657672874554910427007340451354187502205739314996638812760326241104377641394777906724978044755445027465618495223391055515338924793823425324033584594720625132033881682841498871114174736621474773080375339409390477722742152982887817487772776161131712467222800060883570311744817123009201657200785680353206535745555322642691703636434298789323382557004166243400085485539161738419487630843989316083085589930538637041698883506267446045412601378610149874745253677996062222710010229350850151302123466528663801831903240027544734472733464141328981086586530314445532470648900949023357983091478088397401268394813235161104522310811349051861368950793639227876678560540007835491316055958192613375685010845311552452731113250525221291443922427989981271895398661155740435323241514512466341821879775654747372284819158941651898727910088652455382077380966851542077862435930054173089501116676447521189889104717444779775605901221815553781316945372416256502819612782461942517020546291170762603335413882749491811050196282771321533903904711622451698173959725956641744334459584381400481107223372420986005101831897092283723317005135314392927606458270480759004463110999165141130122882713161478178110344417717014229497485271235882218778813069336820274924412125088956499646771376921296931624005361427930354835371473353859316640014791087208867777042959656542999410062959398015336179255805767523262177119324731675231703289145587521788388285740139080355473130525191978891618174531272972134428230955851396389462381138685025136393675653472836265897535429463802028082918147137802850523930797326570481587569583407824991331240931953565684776398886273281081315232338744716804542259459611752782952777665238944737163090607351898188312515139365828626008241484161255611949289287954348693819372730638312809744145743444889688053742459639904625493969667658505044794084390259091254110551863971992172443861072044114582614300246529792460391037890083649789718321756849953801673600736043315459598558454043352818330791221742503148133565039591110296926916894272585960198346241633755218091565248772721131450061895587810131891505430580590816804364042580862101679013048160200703430186746192561022624141164984607627378696081587459802180429657943933614696596619973286276127473057806241508487288399666089524035718076069483168787369960269878642909865595986549740165184640873999785707147886230553359100592202002320225176513819767601741753455542319654437237161395194648621669846038601614991248640865690497482352995656763116687598609127502066267859307037168047734345004151260037312537666951105212201254507197842784759083419863451576838137756276881090277462494619892096523470202967989663549846778623040488423762055930592992241499458660900154380464068567945822032229527797539514848430702870593420361659171754740072318545733293512463196723522724247129967103149799671946719084202837598240625779834426874088006983487364406631247357400335195041199866720610197138118509282826583832209674510501576312562219721995564745749483691300678830605353338400426968101046637867405167300768545214059342155101669080376979598947152148350996567553359385780861639785952398454293681563484560381915118777616201757966087020705721108956138458930220599687093823654912199635686529771735534007666863652891524006648482068693572867469501569418971043559213488776536628773598099178899462802929496356584083383088875778782543416703640302621320345740481004923501632984071503549863080660998672159793106892377764056683914310035477398861917577020775864532324625780011595863789018565363094489221307152570019242777189809885716738637501938579328834670807236371731337819496003499838571901804355656175657884722045076791912864543937987385603363702473242424693154196937449710177842986715330911704807991365632995446753527444483463580813142140206255633718069656347256705703873699244989116493436617306002106989826698555504579557513608391283870707352703623269804632795194790308115750785991581814357432305546490939966659476021986712393094530217024933317058458304780313618225321126244744311938104361538699353661363477046510015480152238339269018090297422579079724538167149388135968669272165871617584239562098347342007977056683215666062664915493315822757312275762618926370148828760384916348612661772166838271030110207671731319595344801387424221294160807977867057470612690062047597620409226168499793771560308908237620699466764746848829827092418140025294178346029808646870999610483251641687233380058422108424330739408608728502269881895418496838155797317932429121045081868712397839016399319245701776867053298222819661905980574660731239126469293132829229954885271587107026886981499516696237118366708593954711401107856480852457380762092809253415662015743467239159697566955152957018526004382462555012235303982233487171519380846966297752675134581579574078479086966407520038933572292475281269013660112186281473447445327587183823777372771633792269644318870013825377413128418528457032169936831399992295985799312852127081048096415217427255609575094449822493960628513101509373241723651664073052327407780289153694034890197015154172172169587071871534649598698643005531761075802175716950101246063922989507875147755197513721453492424714595281248426336025230532844326063125380907489835503900122762086502370651981893611830279971598337028660899477744927900464723226234039613822040576953180289012890435368555434038752890593148143488230711415460154557977480612320740814808146787912045434354315923606225812461889242699648673020012402972757907715859564964018442168385718914197584502054145952981566713215892527574147449898258782695659980678239475423157057217537496172881249210743957309792041433329225155947585797498676658383414311674921609008025085227674224181371873261808660661930416398545292648270902941230225022506191382489660156703694345919940029118763636347952221784228461481479808943769606754408997692013238827857033381919357516667271780490573121529518394904675244472086989552097439897925835982130888076306654409563357129310522437633875979157008178715208240186665946128189974623108622026104888167685056102759930087480864745514275537259127006218646393818881705918150815236148085434843914316320472486184898703235388524639162249302757591456416865682721213146008061170094375976553092925803323549157470798071954357229604525035879077556614518071615885819259975829630442757584866978331317143043387595330879156896830688281144764084709600297819610041661029888113435055229865053404890843246233659504870879190092904386131830259175669176566943965244119761217722336953182582588105316248794398399732987710123673956769445586692479521399544352930438375454520477106205634022062191210885741546863899901248239185032927964750031044262828154011046031427129349329772126835720463704845429089051355957423115689765626438450412805082732850180980295577725936147394468782821055754330245747385324963732032435595057820594711480964134164228938111215305220041596724088800240575858063345079479472067781246481800979135585037227382870027476766637492098624221853744768672686919285111466520847365048714199207375135680292889408185583857957686161871371351917741412843778342634553328012856075579341287478530435319363575220255063300696385099993069616260492387098961555523093741014722092126877167175107248770565035699723769141063740920728738155829807040498431001347030432219156503664977949964309983146396776242238780393578434116217713670215887825178384738869259487475392704280499643428170224453106504811235166924769314542273784718151687382862759553989483195099260846463355396652123409652417895068373571006841193084072872120741294764323398968702254312245933035925008874557678058665705064332308943977061174595048828163501372258168394873469824202239909312618758859149688965955199065113290007301196594210716281269558368427762460755582678867936706161426387243923047235584412227368098632876994901226626111649017293090244888097954097843269055870212248073708257267597677118365169453990319291631905174750924428356232253661384615878087932320150348209292245602028841132578633568872834321077040948500622166190317158461510181163927776654735412579283129506802861340752679569907193192467925736716522503366475039553789517658551013811312308988973428712820642455274361886920408043662163134385133679744245916859012699442564886002545064334755556963517397883244953542312020391641639362971460335648773428497859329945016845160035257676931764300066644854947691658813090606156312787529497418425904185644746028062973518435327699092766127353862022681173384171979075510874215813410861088641125621133526705072625091559363479153365521190738062555805887562754962648754865388613568441480051628642989306591593302593103192594578825890015461100659331330248394426744999695927068574284411135939591075742231656538088393894176943668349865839443889004110429066774839850590117048566019569353006329663598381597396047620882305488649459384979945772496726838053045109667575374058967813755200898641800318115867756016008466520357211744045454685998314410371726568133684630652571038428416897310225544111183414083197914389026599770781816537274725977651961815810384898871992389826046355623850796203288302894038738319105031677131073805937126920598354173168388474471930875515146687518176096059126838006145920820796375315233185136869215564225113149283414878355750013542734557100675961453163852034896819784125256422679419666096902787822425277302485888301593392041537014910326482313869771989187436561178217254263968999837666634892051538267876691615356182811758937713575489468433177314061265525004565597255731317714938189989892961437932825087399596862504162693425349466210037670838399581110590380657115704620549505943161024131237367715665136620301513393935315186370616319392532883268977305232683702118428117050551054380448050146224061311663191588557465800401918211788364376399653477248249770635179196025449074648992742157887645252288359246118848823588361543197694252696784713941468470142625622460312559646402464019549522450560833539152110434231889326490396530534845029136880386183993726593810461625484800669143502681379826289214392945533351749546628042344993802877786135382660406972043799458789498510498775666114051454092779116025879906066495122116352514316705416495138517445532431767675802689829073530856803500144690122620253211928878653287672505840508727831330062938962316687666432326986945745312981736149956794539804030316026916437858911066311856526214970210767600928977561834451331418343005327111065942905269401781378676063764347174677525229036509398123393743013399577538190581733167280669093219943183006810172617349840109865106729343110242221644732558289287683782338086826417574244653188369580821114753195327854984667621334089584333451598551313859460724373657926621341610734361544429826421182623313561786749871419208115225776571827536546706630661003000306295999777117792071373707887812720831789245631336849781180522191532164816605733061494014060778325935240200767285713815887238864032313045595688878204357706801519557214291624619049662123042614118156942397750747392184934134083820251627687106731211991904449804355707531568242058293808825822148476710149867511716864510421190243161415082548349342885790304923459376632896219508319261668159885148196231254402380764263407117806677575919079620035054621707997323422865391159791346389846175297712840280567629200809076216727429821386544432327505066029745106322450406766934280569325971096067614046750382181652801475350685545361288630199511358258353497326759483623949798646082747143529331859736822638895511843252173718489490178793857794825206807217841385688071564307693320532044566486835370480275175800457268766564207133004394049013616290953720564979891520777735068604776990983532966072489474936088601839351513991763598971196703102518966973957235365225123631328114344354230931520963236356896007100720726636814552772903578822797239906560758568769899570632127059892818225903526175514435051020692696863826316237788574158764879893613312459247386679340642368760418856101376319395317310595720772104947679715991964758220315338512540692128925142567179715580486520718573312574669669922537272985088298552186110331463754310028978168377059250365338273300432230727019919275050806630441154591250267921496548131298079834204749776008278622338734183705921894295508118028106524333129761695579316060615057046925362910511247818968696124620238929036094872635229294782041044415706372730267043266273155348259394993370419809744703253731997073619076697647818305600927328803060381129340003386758639546460865010401078034882510993245484650537333115834517014253571174334174069653566430759407551616036738707984756665378032649000076280264239999922822976871844703137282693375918039682063480783044223544092677877376756552632981335051194025756785566823265786547198567676126906308869320805579657272080160011780953012980584983399964075562622732083954153825593991229374348342556628476501001826008788632596399956927022865788918844810584943752664551431293927573139294474961113875395500101192612413238474509116958152934526377415526859271344577021096819194023393111909527411707170438728421671489611194463882503021267582725406521748563002441055348113880862662951149667968312367884185158222588083059888862461038490772976265333261110374751008394864290820556397389401305515353388481372247709313791511665213267536537526858490363885320670065113505428425356091516822460698993956042797507587913349501676068248161825584828969910496254739497084816832068743278023276423800688463947071204349150632546141183846139332026889929596193691136235066486819150551039751760243027615767952272370838167792455381981490083571625846511305721442125009433477576608761795271327527396736553862892394657439069037970949652118693405420255305968722492314776157502807307374706316112863789025894711281785468548798399801197079575740262672660105218909938151904180848568496755941830458914432907417763348374827639064979439818408763653174846162820064582558099516597579634444306445673863570557845168470512198943528923903564414885283219467485230090889643564501942852114130770176932275586840589508711674032027155637294948950171073069580525877069905098517243856019312704600668166861327182184174296711729871961116749481845136395217297789227367968509192707700814935056480468376423781815943900938624963157501459792832756608438748431049275665135735841776924512456454283423442892652881297574660139777400067907683941023921648848725147056689997002044940865984835387187740157264275910736813000655067629441518508797698541656351725161459223006412686191434957957092508495232250009897507824714509803521907087505800475071822463873498251756976680724555927429047086955088788354484297698686945703973785657904351750209083708410644514608260878565926900582940707629717500762974868520616782353189305422700686622161790795418204034026186055746880311789590581761361397478755204099746983555591023362705928772469457158491793120366422932420764394563080684857287362035177877375329617377114194892713722335247886640566543374150838567619243254378236027889878091576351761881563635079092939682920952965767696216485708415198059815611371639256801867834752118425258426651404089408985618173098720243835853307611184002012893011520174729751882588073723722900386056697230875257859033868342730589866993224208685680606872414527700789777857405111184646759128975955296370708072046852178675398172141390611913176782781674199179234521761460588340655531837265239595490045350258574351727170185781316408713952922378731731397335069463971752511091009117627683287031860021539616116994426046421532541213705022969077388168795447311391664077544580150168383952031834938994900646790931069139274317104870465683519840892607145113244508002813971024807912498204681066512092620447490703354294126286989181986564815402163401705377550385875011184064195146310903717767754663997766648280040256906927815713509409437915322938780096340827856277601457048646752366583166596999262623553167949525854482453276655150025107224280832507560294025962308478451153866806794284615055064059344811265644338290238999265839704135716000728069529037148199591983843957704932942415848338291628021169768709900279947611354699717964974131341168218737868859079042647206801996773663843362763723977196011285198045354977232885074149271925393702580052538172021856024985710513997239944619117010020443706225431779630128002173911407287975758456242466345470427356254461011529218018574254377003039275009346342372810482269115119777850532085041364177592118427760387709167659133591870948298598205146731138879006323991939508400117597014395348983074790031805206540089033878077873507558327218756321219635088742029812245326914970620982222990489060373231891817579293791694346853912298381314058696107758878051133698497105468514859486885599551845718442163399420173385928281635428192157900565150944353743812420215058485556929714565190172161537400903534985518488997249384677106614596492683319387271718990780809695726730191505588562887602918626827554832450730963518025979628955027775842341841279657046747069013023278600231114002842848952636618918196785718434329261435916594805330432838497831554443193912444939176674802754813415064291177752421014158428335748789219165462269045029686201383292349179625858139585909805040007736505491771477591220818676039312304552583622905586976369135797361030230283767587472798590852666811334383598247183187625540408200815290798318250008827885950175980820972751573562787662897427911348860364942971357848877021715087412314787169152599275114791965275204043646403919697749898763251266866293521612891157692774185061457920767307978061352135210623657143238774795808379009098564947244645827952751565074469352247044671337799984748969069016863956296906074071823856385965550417206740162149114461312079187747167893556949032852060837776962216460031502991135895389343435544707477961202922411035790059163051267707807518648946700182717468950177412902654845367816679434144956481581472706796768427256786288180598215574448850407689421036015106805171650139711917337600643534747138430314976317942052978431546948170177127495458196260753115710865110776828608520694731004100686496018796689893535672737719134529410283261649997395135401158446248043680527592259189435943247783970602394054293222834032525843692292294640542423717590602295605943659057317840702424483556862500288442141163358081223921303289794352117351053294383814205172225760072366470074680117366117705455569972864558362108424150232059563978939087277901937342595888682146547390374617100931812108512899626333345009202808236313676620107521556290134134988279317055475571604489218998960775800671216061579120573885168409021805817324126425091642876699161519617525471963711261516308148265706054973429411024880467826345279805252612968971877582989010644260099107030758580959232699846750849825492096758186177779953287125874516721929736984949663972001200519484878332650384680854072301569296396305921497837049486234366264638623965131514445963950130333957612916155005814172043475200497371455148408432767390376305604408848536848602424236016176438100077295642973841341372739529857513700347947223705480250111071394248231132333278520812418479850119930893045016251941411249737654315191428296244691367873498239095326035738778251422799466247635885635957052940071508422167753076503382911399028565085587913177676633707236762536146222248360420466938240642052273276377796557522130955284196120430666666209355543647427079611536538564866397764726868723869164159448910048635503111887691066266760753526190767206044076601033344355452347870777372902152838267047395461808883181429643422378569228825748088767152899557769861622665859160924855780675293655916006160229374703686753400232095169977609305511429986732438475218587208693888659406624900908433226706509150496438788328284879644780970961635882613351091255523063692903736334578941714261888553434289839872771337579709211819540988978898112581360921095863476641595127255939587281391193503571532378492617761525863202082982140729126476315855539828646579441097260282992299295604536428364801447012956920138047333466183805978742596406369668637350807487855843403474489087074934616608817217028423141340752923739549599015639150666275824450108897019373887179464174997483503777951353072469982258810282543841123895539068821751829738692038201786611454712291453770270922632787340538908701537042211888166262061759659569598846864248829431083793272929516659530063982664269883733150969352284273585862501029065134456229017076232369441192749802966294768969907331037914815805685616286818659641820905392152679743216331022237254699635373544664157443263335533142374529526153510867615035773638744423497229802399605382211667959938972096850551064842659482886098370041706604786817745488217543814339537378305559348729633669869662458652482828777329455972026335922437054187607538235604335686162487576426810124891175927732380102200664252047343234985439933468798059955324261784971060286681319621943134133237054729168742105098905934423273162092863653548568187794789444848896399154695288113834686867383327207764820859923974561713531519937025746004675123426952423593755579615176975438028380907476115736646301267187546887612424681150053525861067812184507129313475229535661319743424342894111461677245157581740161449932311179840407559339123123314225388477184800349972925239582281188186187603358556977080584362800938439748000736043121785331805682606950497295102986372597654162812626084169461866340094922335370785071422231954476318572921919907573152866700978459498931539198146471460156175241542394536967608907883724397988565513154425751601185969474447123302164728142434050350095350131560128560779134734304350333710947464630754488272378684624894095964291676213677481735057222380162158192543955346375173380593392343102272702927379232538699779316928217687968116150060986101768739601851431277441016148024612227673209507396331756464917005124535305151388658253469535378649413215990916183995410813919172723014510203796096886812199886827197084963460970911346913164521584863425157954335410456245253862584066581633588155892900697352845178305612499334666934418151707545414304874708761195580047459214890980762435098374986508842507556795320908842786940466203465826480846960527655160896173092695121941472488684053961616687949996842356658627630685492843063717458854642297510746237472547517576638298074625902811859190209574852848902106405422857136138179357171977749977661224951993927579763512698717825134124876206633815407381988166452634882391429134353972918509342888699955386964707930103163262858801647723640732745674538145848351467209248675158423367640009801116967418947872643249962427310667570894529846221614178788047947538938263275114439631587383651328341874954185250446196105903201069854179156942495025530177875453502883029384106009404917777462034816807398724652813907631493629342337650316209422981055944129231165361931210176994778754572686522143268688683441974983707581130735409892759671047181263928285018221210293036747242277585412978145867107000341161947345368250963460766658026355873283265221774610825109661221615130486740889605326872871086868584834602296710554816157693614408525371085317727476598434710535746410613097833477519804749056857684809909721308686701163442163246309087748701862024719286129311582301279730137021569426285415405163871421720614223927438335821609178142646582928211873474198901395470147111754205807160241708832441022640056844131249777097427479607724330338323315225355559804591284876933585282228769124765959695178581756774246410494295655071267309582318211068165198384742874937362955145427345396905878262497333139368912092880657540065275631211690897924494543147387510090351280549307910785414605731401951713081526240984626804042570144390563451024388783591588293979795636245241329638280655192462318894168613652197572417578717463268616925642011359341978926292780119666524654191539565312455437810049432965657098215109259804915091806017933161780922007621462686688457796459416913020288112352808386097329329357842611446401376449195340183325314227084146655989426836240350473705235375837762739244611261698230913283955964643536401801335733443412546751084251244136514604218117133057550345209874165095504653587705930918263281231291279444953604910419905795156151686591740639110241087240601972075797410480000800884796639427082931417346067435645692026868514775374729731551966528366795822413670765662778384160669114617086050190057924840375661560371492758094440627505447624419713532072004970538457602301042341075134630768489273521984095772982797778241853829597097505917401598285266605568606229479734225368195050041715140491792175525565817366014918177688045402848887131230280455755242169724438354911385760243073047781005875527342449564280674289726041248523497261404702932653113950752360888700966510034216940449099047574222889799540593166584947880646719806052789763531093065455208506765200079397975795957551298432633123151617040507440475646887055922858745833909047378856392379320711270142305767972493445831768342401457996748336178084549500657577003781371036538705708590209682278396575275505815088284614810359508798495808559117714204339794356694413825196131717997320903189543926688788844747732625674032054391488838081183830356727333034571041323858508920200029467963104368198488457045558274128852785578979386295271463055559462480808361002217301566396611399827756992669555686713604075315657489418571500480761577172658724262902668095922803688230062578888313457491824492474820864349846093852231675320566311511659726868513463121311543288345093805534300192069971384145802283117992007319417405335917083781167603215505186024366595454691566638376233624857766226712452005052724238108472905990688590483322462285186053723950448294953085429960790973514240264431244246575315077469706859924452675159498223845602757102980296497945856584287515703911901741662049314414774019070586315199938960956998448552547124257417193732114306237108450190582404776879879489673107894648461097143822103677890738922145611976835120130257389814904510618688026960597579435794726176214829556098304773526525281221852019979162287070461964559826753763189613865762517542779068937273294962345865013513169543622971064409825238269431110733852909871373515947733202725181192272089617371915263789062787269369494272064331076137264156482679526012268192810002626542366229333750913848905763775747602094033611728483055529751465865751401329879702578298977372049718901101333483195333004155874912095852469535102113053667802974088250041979156909344407195429157679394199854418392758240976611626236682650927428348902665794079526071140389914044221908061759602897757451071755344029592387294336888209362687897691541272873533194274901648151924975819432612169421312384494930047694625182403469553796652227178780948120290584335644317275419720612751349742167820165458430800887754047734652693557892539370468581822281034139917689408739934721018557728682076200116650748068997618996044370227067841567469210330992644849762324261690580450180772759953186942479123626602771369780515858175365696260585152651134304832318019144675813056029718267162682161372638995500660622097606111422731732749052911040195125757496953388404104297529968645090460156702582588703562474915957938905709796174038978403797200318779449610775944914253113449576185599648327383896356831714587705528704063851437175951450885562545978825174374629971575945344272623536775742974941988898786433006062295620245148191227958783191744694642057910754098206420577050887692036998497143999441885700920741828666359152243934243711516841203877327961122299752886920572834238610294348143093812320749571124646048377132417351831927220776706058403710955806867248825314997434463454021926754610118723704333797847401469164774420305757508329082919505695578963601024663186823251951650800636467537693639223349372070325587605669194455271927157457835825847457356431924083641081932699653708328621786110604379531227443957124791011682483515833080476118607012536312907790764133149669796248979924676790976308530119806191160738005643538844946969064374926939974344759770838514407997832300289431722820769417594638695794503911479319427086388068364385837171440866788194683110975037103636314454593238724439115458193601590803656797420346616876015543828512865949393394710922878394709455802279809872926496241280054985487263091314969922232025946591124376724983682302435663775664911650065558938200903626011026743527789065498687626164986249663861421011978040685271173921780881278068067517137361601023819133002438207664383160766430726366355282854743468129258755459524010128333857881575041026922710540210996671294858770409660195830633037611828296193445700802111374629636766329832560615176444085871482415858530649551586829581291253712590307049089817395867400903073757218790306811357388568922613563266983386956887019085658462356322235632704682770933081121913649929284368490089393922344418826778598174132844506948818473259781294318009838937858975544775461385657661708828407610058362740447612659188611519894228206032462411119723355435362657114127867113677810748044832926860035400159714194145005283575538780482696251553475430121683807572043100437909696297686234745053565458352103444973323196663800083648868709852771951911423327121758242470958353363721956491251253972833083237094521868034611746138327635248506189579253142712555120702645753612735396891113750131286467495281223179809507593557824339083895758891277634228801986127107633547733446242877785659587342313029795801144281608080551925316943016102913076897281664043466473594240559307258176826425316544242371421148940605477399180858570145663266660537902245122380797503895944535258041406019729528824747546483321789467273602928365063646356975781611672387172940631831902216622165281601188481534532196354733589551570839922680902522535908712545033884370460364108306495517573489214226078471358950383646734466357271628748494277933103880939835149646148983816777989213573681411296841548350558766047341719369964599874893224477842585777758785336022924359459306511890014778486356233188089196567818314739585116083510609951444906754377633030508166718848403291097309583118546455095517025441973353682274769220500082733812261901758504644953106899634020426492370322214022185031444904722114015866056899657510270311577144714189457273224888355302651202478816581663687781337342562542224367469319494551249475926166122313267846149532476978228820028870688083699265669846302036959536780193760659281833803185996730083209515995297743126017867211993864865291121680672920192303516446230548864003953545269605394505714524906990850271659613432164730399881296137030988792418157365542254066278884261553460478114479495904666762315694439028594951964896812427537790637162346918606533169147859852723197083072308979126784024111919750170017914164135353082770816939213114658868045519281793921469938999414012680624686943600188322548559812904821030928869089682633616670879019582005909400696485451322659062819942499813717810736931246851585375365319373232380314134335842924758879718962121309518382849250680439606282638776523743022282758678854474541134530175443461095677558126450810353952509577365995742879507559253176642787685048652030652694989363918739839372821982001272225925947198287156696003031582229616325386528355360349172165587236294969596402810182340688198727133884963027946821575052643288370165607366045461258209059459273109492605340348769107974763946785745415704048048225938298381922923671598089026608615400759072950129071511290828147206647606766854758015813103700358102824899723270431243800557977293401796597681223289634632929553547325368577594981182224256787266503225372485628318868152983069006629978973733190250971851509540883336513903223038749927961881438993222035226727156858165342135718448867619972967269750463300354417507576146771889196094787461433041764056721735143125908836401481900585879614103444551697373133608988992561842810909140513274625336183387721640449310016906654565965252338570418707958459422425683449438535663921173928230752112117390566809409525433302294333711805723713389204272502333388255022296156347613505804026488868479952456203172026097456481254246322547406629268522545215762169380377121975352468525356286683823085503502240550129669289942025131629200082163253397087903370946978656783023351662842625663114511243986245967290050409015597142100035093698263635198204876013886613988492571780942649355306386525101798524602896237043789532191772643004292779821814264632520311891978522166913901140719546887851498336625332158993487217646186759158115757483839684990962540752260839121727143057350118154307328542152768417805067007637280138459774912908121628578048752184551935549221118005056507882291142719300321390882839800502672757734172851067699188226999158299700296196941871954525930982435109621695830603929536840182773539173754978450865297498805708863875243632196861073603701973923922390296417992538985233991806305789674166762013852152633496668238426086091393856742167824172720546095264635860261413442135012043722720764666100469687440702464358363669801210792374941973792953402411559386746043851139962714234933635959188193383221960649042428671079365668154526374000463078930368300870122638668370310836640130058786153909314833014222508866292987561770579795995221718333665546506103200111380490365113463496072163328180123451368092047896600639461325233503977937460593080830772158851922317380405730848818894953035231749816432647679403833643555514067992271308547294270784304011585462373082104151203124055693293836194699899607059509898004662385199471226555437549944852133325158992507325444172331257130898981055270170357515593635183825908398525804217698762960896970277496061375322041360288672776913730692775773116261121118288659365652599984138083925703543986508403888545050800482214719456341779895830809558522917932945854064293940076216300771505189018140769240015271372891693164127540472662300255016653205236613257418277379341675125261835974285409209523341695154207135664018530392956725918524809522903240006961467258182003751628523862233183768600915162398579933410133422251195180294411438005551486361663163721879637681562829144966493075017223729431904025716842733752262380773345773285010750802768745894475455844651058382964862553571358938182763809514655967820903868772272491097439695146915632338858929495612202022041235584750044736094149149381238405203861328863453352870874621048284325309880858764225219504923376656974755384191788498181559615543099515405810544464745285546823316564479931305162299780347504810218593050571577033790141656135675644901375937892295893564911774850630464416906673409346657876881284261220357406483008671350543231725583229661315714042301189387020282429146081230191124611977543851830659697624862930803702576344360035188321445688415474797742841527398277670670233717815221142613085133379595544097873705493092099317418097190159407693090891038779070244792956316261557940466442056785821101890306300485283944206218715060839212481371609346993945555478485294510923858366803780996635309693564841175326423890889443152181014054092239432436425569921383327914626221365121137112077558092243268988251374128499170773021792441472623765244601807178601911791505523388889312874551867432319484366809406807224470099482186382812221663530960045102889161947886073974013550947442999056354335092736916244594413440184368690730525572627170495806766999236581815335200931416786214952033866704416225598546570390371128718288352829538631932810141501006014923017749857275798033692727929978450163151228695945034921597783308328430235536884206392830024371620988526646055773276733950220165718639057613796287507890435914619111151443985371504038421260002306901706924454984133681275791785884548047467695969696818799973446763767842328682014771049822130655745123372659587382246652072176802803876185831238251879931719271769217832274730890428227205995696621514214734463516397561800441068131199929032573100057262023693475586259893881372937512815546868044246075774372482302271459734024197556456930294237934616270808606539209012738546670673198851767825331207009315694619767468494461354969380239277358580042440728537029630618091419152966066223013058266675682607291726722851528608938684543861238998574351315059088338487462051948670396265240157070708667269091567326338297676437170148179520842582219596868208807363233294326788503056383241931909823134536518350648306569141212097944289396400965533404392372103567302790452541606845312183965716025692063558469863762480938799410658721326678568336674282905495582559501583797249944643537952598252173884204864338692387216054884014813877080155440076070798370514502079473459587261867559659494431743169605559402409899225891316361627018379755300156499893644098879440114134506695019901558681020786048276195439628286557621065036974544218456503222549312207381257816330811743880700217400416198999264090091739782590458813379992868671654108392328224001178517937311704807310723244663523848646210668787071861277906182903390464677600470915942156308121195350428403484927767213001253250871220832018945769031626970886351825011143072424227918006623591751087663260269924723832284863080447755070768705743527083853633825147707792564030410318242896241627429632131207723452470447298554637897168950340984478819895164671988245786688130589900059638967968402095127137673124651600155792628133149444721738634265920851864937110375662869496544220784522881042049499361162667925970324251649577966659545330963099765237898362502771383652308265698929004933040062923301133842324540583132208019053349047784275390210916852629510995646989929257541744492651327365143612353753941966110261251715239424182003607925754461931182920099972470371003302788600152202253516365351940264877999532955486740570441470205206281159086022213188913486136173894105998318308277867397332909111275808326448707741487274259979689468655190015820514469675947469679591551506302442085561678702477223356418093222327457516819092866053938058934742162946808880533310169270447851717977160227956727045643471870258090690938417141885396734380107842402889812644889635923146283917053043096688091498066586429563290359743896575269895345618930965551732059830811896368458313480354993154181987532914942338613384097918964750045399161815310843399058270992688219355563782904644123961370738534524475249077490480400465520339063390102694473744488045396124159071935812570542305576887882910874170598087366438638446316610044450072679433721112239267161522896986648777114370603264771241571764105928122276821020369112485977056111718610857077151573327975378916135865557478750914691644716840996868438985962884570462712299112745409732537009886234190001116308186442656375838550842252969135509975089521032130436273746670293583182234832736803709836503662366467083448098976454316341039750861859030533857606633005399565579389894021401659374922902182502524137901993791490297850750112888513944254782802536447844783762700351102515344593269421068167406927212172634390172263340759595789918947284708493479031490411645371282436863593719220520374748328199130355907883084652452449209703411144868647652256887380886891516687138789637204614409978653078232888668206067993027980084569233814766242299062159399601493058432933193967601282387606818189375513643460388540414053523467245076557391973969428661744125510792573661689066421522188811368482973657544549938663334019869294746720433980779262053006774038507705814312767340572925379714354130554012476065407316201412321016429919480357998007601784962062478764966616397874011589186007101501129667635195513779779359692968092857403189308086910439844193321075281584950773377831926987978005393972490085818377573709841740590228904944998352047415910506328468397697028856568783585116092184259893511672909561220929911713397825901942091925787517187999315469650030577198143440816756582359605796290564959540039696135901474564381735403483670778335975621201750704048827402695746621114819602785343663773192815362038706962319221182128149480506597542574837682452401009434658377380926454125000176520732225860886933446026637983682648072823776411101246567538457388915213219638687749513619085542270129119708173509810937050001447009296923777993823434062853660692858016528031809348769844561799554331034380952661578725262445130928015411530948564931004550533780963523100575567126303135760451854350664980181877501714923893097430209932319100467983864502057828324215270883851394299361554687164464686586672772871609457610102974633166040540601796557667727039594238523589731444753316426546786587488400848363289791954438440955979740872494463455075533165205978842856869043170461296949778279766484758981148730867324379421693723631738979818832860091828324706565073522549191802431748111847793475538008644971949656553035651519779767230327960235280437336009722996260068802956621413558582981607129706603358872900010468029364833926831860910356264219041344254342287606813397552616697573225094793902603326003760851036542257516628684099908267164475366317615533097513050616757168962259494869770940262772765148273239963264792333200045350423586544155271999192135955548509378856387432608385007173911974438689274021618872282898084126579255991511788226122994013968536578434636792032748119623221235324783625731482127841323075488986818619996603633645654574557619271540621280039544568163010880534908203658393698770417238979686318919106505565588236588790930869156910156167803802039459168641686645260375867703198110059451704651934473595713411817973360192756799047072861729497302198985762021060707575750324706917060581104476495504832211574380056042839088202777357222014053371386210108724888021029389272763356807081213525869953559680654767006666646747789833193343508245731821637990072334894035089563966177677083620622414157498726775518065524187641572497259298214931648275507026780296849288851581067021741300109763939398869247251908112858619723664801038990447314438556636970456370561149578930362612714343799276786089147932590568281510462069884436820352140234737507592468110453419997716004546589274070655785991413262207902741907504754304618645820683737328499153669407907693437473685021094545579433214953174333795213435441620486127811002291536645880482287893148069456877455693870057992193427720045752657406155555468802173598569591679595447556805377522592075430497675190370894394831923343943909049008981745659228662080744407885051546462372893007463628555435897034190693235386893418253625508579034151716784322516795207787756449609783728585017850302107901392120163391628409200587340889603726278824072274484110449694381807117951675848512010317927607838256793983478129872067240332281491560848872603618315410293924778444002331881251861629401021526987874244461778105083149739203797455531310376416366716832359195808945492283028702849552358681532110329239024365487884528294131031845617822463153723049709321068674251935067116430557965931786328744373766461234826051836990373448621221317085558356436966957162533008342177983589540448340272410486985360349111546470028412648133413857867123226846441418597560936864679317859391243624069992041239483618062785142165053413034773604071869609105012462425368321512156796320130873763915965874544831953340707542899103522266707970639140247357869526476567280080762916896398797590215644955477749599350329372196356272406235978772975630574120307184683499351770183485788140489507463331834043919584252932305175791010617517481909030156546208271520646328684278502831422308158917346685041804757488276762785579327493524857804151895508180427561169997461970754941683534850260336299972154978939932223667542473039008340802367096988375164604001273893009370952478756073217993455840073017799932303282893960864880584094496922212051162539664119764264854306568447958379284222010109541833154590773975679599151300926058626557127827565005981608007980776786039312176805277127241701400547253936008037555682077015213438353707306090453251543704908153502329409602047541545839568449681677357237388758437086053626474776244775934758500559773653215598932777921331494281307172601393959726428910131604881441527165603121796009427101296812929642851364052049841007494104598273929344086798993882374631291450853996317116871958405061643276191958046805681300955108541136039695464337650737938550378827710794155938939532902376667279846572883313679448052338220033003757713738228618525395857117624841882246762308977858021946227168861780242741708472082108185381588243752780476381347743549922542370843339689825991285529815032280640543674548262627968366527491084685351770166492681278038040966612554890862842661220859981860878493287406308380873044503911582863495349008479556660730264725655346118493257811559629372603379477778753388313793979832313501775289935221972137971101806201807683038038355421246085468856536893588139496891108859732416490550060026349296518353536374834826679384276382195103955846366261208234880671459970469400662330574104313843819752391064141356684482482685375227539879676752522629428751862232127487131565632344984616373404506620425575682566979223432488608840451562826658713514681521991042650642334247637935597703011434141153761564464367993237572203393220209926488618512215243699037593322238068240248622762836840714945751356796853504399674585923243153272623759237837797685385889651657233137310940910380300762382205145900684926976323294370901307803688550443376627882200177242131086475408044426957596439900702163318495575614888917870256678850410326743840875268274336116014378419070527060029397242054037981402727705989721137862588700723872195540367704675721130276626671033332710690784686225753220295636783342363976336540635814244113172551414038888439413197995685339207363078905454913401437817695689942136063738932976840861189425527752245734910661570712206810549814476917229528030859102583063220400700282348463775185723606186874328025661864564683319403002443185477545223023782766355402623546154923797743222639837186772324269427865716456859499089781886640732184022194322613346929806357100495112488425423885921584920234432029221177552597847999157658975053483130308747190381520723293632343700072635641405150246824985908586354026856200570015350923101248750353915407466902951100273725490236805310349967112154818297894362689333162884915713898310790602284010190489521558258828047753600698778667606818964060989456543312510047215819180769546056000191197595680475526080351281081890160999275375958636407169314002527491825428645417457353953998870638822870575454102879964370333766291090420146572357524514204856180864765705047476471963807340733651905773928573368957112073966417088459584560339881527263044248326412665595029571126478694150758393043355405122519634682143880418428608554190880385458365200963812113505685609004861116355582938639266366270532852488526790133442922464528376634994657037695681846139496755909787058944569160270124535897778809775042683674380400750737183148655435560915670241253111730975275612591567166001701425284855922853569445810607689154128161087291092320232974711605654091068471170671486024404040163658824447850446053222657458774725525142046718349016449636170720583964896402151462620547180206261341593196050041517520841238695959567114365010064567042666115123225015443367441038368958954896776265640959858204876438671949982003401356993385573210325967444236907709705178945924478598411931211636577199280412300887291763851940364035511174964096544718215907164008237960435761262980748016920339248266270062340765215134634576322445411877368531174074080229844241516483710750334929136685654663456902751906668992689002843738693057430879464758423653210713579345892231560922348892680525012393020471226362585614512547618848005327990260934198149327248626058414660375569131564285338452547152949246798006630254857142801137755389041222903649446288696639464009695263068566745816860443919448562635051212504676473724170451693614629175838182291854023119777202586647734095132872155376185979003605633545370455998066465801005675774602411593116662427145538843380600296094567881038055840903453348805437098901256903354195120352280323284581841300041825482614072743330158424004220495734413110826865523998468887762362662727110279923546972631437980841444075073876144342238684341664858950148279719605425435633314960260838698454493723510609205629443178667999604608943766228929483125873757743154829060855821568074212224789201449232844671139079569483626495454947745848746436288241575267603030985330190859866917178293931660966408577699903234760817161861465385820776695924062387226209294216213213079474375999514572742197191357811880101779299608452357391343325904625655809348216019610324140926622808976764428933803544105533073077937726525544450812849159925924434838680044276450430741056970858985924003036535390406771721405369235450207159201382264848019466470791408217319381065277743125897931869890723490181825255694210166142754932150701753092586699759125202619930955590253765380177126481383999075289849197093852949311164314608579709240615365612081558421947440000649934274840248508446183635055775718071408430589006174373504743264752025844581919344507771868440382639717163151398456472637418762142150152734037416011943121854784214611880913347164081895069883590741883750717748425158197934740690392636508230418378764753299973397505026843133079438341306559277548085566705251174424328318196776027617620086764987726638575982531423089546000316089081632848883478103986381241799358263360615301324409322264007712685147276823440753379928162765613391209856812927004502280606440582675370970030899576801169430348528769772613680471698229917238875378617504277544060235704289841004412942114954423703776838342557970222647128906074688326432429265556912239209248465100207760889531085221162783527664441649029171000189107388151812914026303122282688311741117544664800308996426004175582936892821242207239522632736430325647202136988222071500028082930565505216076253430008368452027906044822680207503372952838036258804841835602710694067221465180036257307216354753229737879559786539764109685170240548962684762104803036087550096309398680414115237409322101252722288884871474878491818864340573586747714135203549790942869166210492065964439823925208660482237254312966936322277236239468289573940547103399392317106902307520207559475939791138389282692262262100345006848203502707039465580043874891394643094738144743688225080307185021275201001155224575662427203357615574263042866089700431188908660387270537734204006336539549030058462619808526993238550247924945044717011400759086561910993237709033775615588907508931158586258914599785663237893455739287875825685391466689230009034140209230272056851793022344124678507197825390836987658342828660849511126361144667267217481421015347996143032408428271970462241202368541891240417430349933358674372515420525773865936876903281633710546296863274094760741752887691264680102975617013637033700311249415895799044579944544411152087379737717001562328203726547258490026655823647579006073510284791290045025792745253770848492099903632387351091760822028618103777607113550964487953602496835820365028975069061375714513668092088649759822578258171232244322617481784937983357703048179022391935842888817763295130965796056584636533442596910248563402659303343466044618725695018300303733380644047657585853079431434087222284910992204775857236059635326629636868400590833177288916427920922045537730941663749140846864326518666644379796265136272762796887717016006308804231501190389187648294362982935738869407748748218774785497999536430346110089043237585485156914669148630398358822483088465102287183209549747977303818337244073121961664373587715389240600507262995031916094841220421504203280572387340610144956344310592361800771000432185218646274110646763812146150637120385797435288588650403843420111029135552389301100837220159483614443745456256304730809518451359515848357842919402524748954971111716605472918298320143146666008569727260938427222307075247878929478846215440099102314413329050979737749354018049188626635730194705392342922225091192866410274565987518134180309790534290410302120620559416901641091580718457058822527328545792620145760876823026772060079701514709618603571644877741561749342251212601520230821595684481481102813447852774401377623193014615857848818047033078431149011202065609504110542060172983345658355794957732769007307593904863719550912519169122899849703118773264224194383532069969871158295745889585155229472727834825542854205422401955446033898278945417272844226915084841695454177544200462906530879633189760288314775875813614298737397708013316221515791822772740520907384238299390548121762198327921829579539570265074347575579299549700282459541640994897246620094111724920236804402401864711876449043993410040469507079282055257974704407112018713644308749418292552556883684719946895371870051993222086338980892932644054969928060857708464871764594068099785849659311191765183491308842865643348275373149349487831478902083073905991822658574532470289690648043025898997091057222106764157014784780240057552503306629523413466281888293301577104105697819392903679975089198354587793828569024514476778424631313715673001656635959232196116945258082279347669659503579352565227264784304249545569324326450332286812377640815321990345687602388999554512000548843315268766221869786418843899994390454786724763933775671858576819945149365227386482549109569614076326088491584603267302205891710060596583013948507859337368718835182931410870138624317772906377243740989783536001801710995147978814618755000439575892478987792411511966129558368339799330632553292884624387151008695121530833756382103159056611598088352516386650746573332023600409945925150150567647681992719193504059788451269283697717127983529044627325298794729112579403025221617582373514443667726299338718480092251188915730372586885272263526122280454102576180491601812601477080362417760234993958222499684340590595642256922294465694278677960102091761093577650655163289731294096869614077043969903254683387214682276325932248036149704246580014232278370945301729199371968292272274226805837754041182149164374228477506870816436068198389529833727267077295274388763003522606385632091656539198898183853307169283448194502549786508694641748457324299020829211235136834880784701347316465521871987353391224909009641324065356462335339742674916795951960182352175107149414176710131067164442795580791313250864427983386108287382014356460237055870960141188384162062237969110668237407039602487406073364276950778033123402804445870964861239585148154097867469827189344779279449885975013462872150298385641274080686871343294294061579741176342554797506674243975330627271199590922929200409735040037698740404755644653398863019785155596009699261436211208925776932306717042464397853351862879754399489176671020835980307369808857266254593160263091742076446471863708865816516926816883948054579234367894052970566063773060908840134794073286435921023458025339300285122602819884264199887845428207238737059497426358677969419578861226311025162886252399527173698081263693820176881344386674587593780578818303773995381824425329528913616769527420906576096792046509977594056591297271218344029695119308203369955808112416395877751042172990588747585277082511594922355853584454980024604549837135672304801250779874837049733965745801889599329207982030600219255142210951332882710326334309382258048499104337991777433626377700017032460138503383175640192601647453825818721381343128714519812548995450861019982969109283092822011331895735125393077473145813469685934650970646708697967635204296972187123622000932922748317516697993298728277051151401894816464181996007639039031293921526626617333291373440040812492451038690077489580948699324363284754437425636052971465656614207933025443351754939676649644168315882872557845516475980624952234481956919879894749758742941933206449292030152403480466848538762857992761812200781046557333659613778740239930150742247455439588159236400760145576830925300089288706110391739535906737274612230597270535472384133709910420436020024048048796724704553502307545428219846906785770650738463361931558383163226467120245709125521158424405256459949718663848383711399568061521499713604803579540280043546274307535032925409814452583096799305590939584332156145949003898312391143874794551810641988095286950134556963915334637580281247797823739059614851392377920750306742248068847627417814263887646362367770371631720405647411140138064256198064902717812188533758045384616807264644016144098350417884797281941824147252463521815418211930625723062001845620239290214957504122979164533528274855197164938965678456078410431764962220884081070124121398147563527622257738340679519051283405853642435460488877216401486671993464383231863567521381783954944483302116963467467691725503489038680094359226204011320157901318814875485513855595798673087368343871751740364327144683551240606764035661328381510162595312883485794601320063667591507394742392851222649208367214882291825438179944509035496878232196643070919950456983795126379738512058730849499497727807655636572379356237469954900871296991703083787949650347332482782594882195871989468608475064675663711582606743793167830285457771046579722928025988258380328935195278866995465560519157444582465390476567368546259095912363027421892391557317940743278218929658733444711217310082644356729379476752801276304319414683806627715317010271058552241626949441142457714168654753343387999052003815559657990832898867428619476599605893321612381827625684028642909600453091896344325586153942553620710659700995803221056500498595563545334082051853871567556290029461028302525600798841246798494517963811080116675854771857293544206890525592755347968693843598444918641583790252518525322389166434820925101883084520500635684787988930146328202249809541299882460396817902575652716741826559574700119385194587940018633388619152106998091997245687200778185037201563889817083081510855841641244064176235612253110336168378430330286990410655258309307929642260026916916937271457138948390560397344030289552022151206183366932985633292909503259173185699487122867303398995156069787656248899467857598517213053263552087368780829156549274218569213171175371964401025698283926816245832053802639797702675434176517629110875742912668269470339617760248092079100680488679378296810925774488795251069773069198665219401108343535918745131775922102874934297180447514107041995892693093922455831745476932876355677941488743391867548571744010057587073276056479417251828180478796140483587332221793063976053778393447908898296808650074557279588564214192429332963112849452099556866564304680297201398255446028106986580507449269466565049400726739545771446732047127570814678714304173182005730541114126725688011966828284526108251043739250512439459842877326169594914068186776149843185377401223462580109079873230501610639390269450138240060681535582891801422576816247910916968960733404044114091343175926806705611459409692811791256698738143193059837534158643256529046628546809913055831101540422340387983692485014032534196815090251050814321265664789721262013834742140101435238462180021996970813291943192817851097972834805480876457775718852155208503807088151516241891362952405418525567925746885356783369250236401626869649559375788190834043285694911430397359862525401385321769800237381334776822165204960103737117788895900775713869478666937539338282846068628505552951371057688031153011171051420282688613161284508189184492471477737621541465539118059541849491257478031568246534635775129177487396973464596256844354165678353045283977878770269670750866381264151387948688301417587890852452180071856477810561322946457512927023182893060352369563044726761392922319086154266280017317008941269986890752168080861709473140490629416420743477410446721544317319604312197188024665799334067501797188346460354165469547365064479577625195377618204247428113349748149185217439627565030339184505511806682688178612863667235961814170850985298689311617593148469701193274541705569372432314029395656831591654847291319489684856569772006215668141401618617616289117835132562037335584081298205699406194702210858333856744514209304060685798053416223944041143418777090050867954957825107741890316201713772026872350250445389909462079014375969749061371982047836015597850719743938253255784513983115011396549665224306744348181389602174169368680090786737093257464293154941324114543398882280850390524357339422479137630219694288287921569353518267560014252394890779929800095788254864424894232108683745560019476907166168365559407912508754227426932187354396602127324959156769235489326707677236799000139600997614510888455714736446179215160729930743078727841049082068849368035346792255700416207902806102415273386180664159925536172004580714272726334795643870369704867366330604380380871917446981851522518514149719161868386380271849091862870307869068282945978440017080435770699433653833474284277096624414555860978650626046531537853508735161812834888643357093517997031485412295290361128893049637987456473166849549006761052842547644453482205975702193669988863189900432081575218878103021994581902402632628285913168306778288694187550487632822687940094197386293857877284979762808673874632769950452547989770231566150471717653653505812147925042863869430029254073945463638949153506352991288765044647413045240483507143166581638721608808562541518548215609132019038407397450597421326476271525464705549141707782337794668280296326383394773365788567307578806981830578485132822718667067624557594511866797715892571156591890765706323002075302745330324516403889565940787388740541668290379684068299681029823074164797460999642689156267367426115993370673387937829232302601984913725473647837086282244430897513578152072449925373213008632547106021014671255644742585806897970314221579381503244089814933861295385037255940052446838751487808087379350917053792858211427473383052587477501823782643121596297916746276501431926518372478387013755584089844530786498837167414580967623595106078037935551548481362990920109971380015888140599952534348042300117407103502726279555084699262146494656059961906516042661790451811308938850030364642389120019490982356680164483598478786455500141283098668615812068773897297141730094690843676034527141596403944937998487256404540807260525549235820052220674864352978460120361368455551383408251780397665197515173503468626275199647610786010606950535846604343529258644733424793341515706410012758682368421943542916331733385849301692750979767888281571466416341973927135553473965893102536091479257157506482307309278329041542826212967592690194668615380769761347989768509307448958268665770828150950487817114126790960340725727997285165993559180719521339942213858669157157404728901741116610130781814182430953134030699321677392791783629659850295823970534309915557749099656825265939737991329832517042026038209996642148657768608931207806821531266606152536598327411144887759632643517207522828140817828325734041642335218816525272607300797209196114682955840384996349802185478237500710230877484041160945788819775599542436566044818034890975579050440051708690903713319389442993847075648218509716836648010276073215386699408620725817719611920058157269895346086023835525235653579545600164271855002461586218834306539809748621217546082262120304717043104044718124291594353605832843864892570385992548548942398219863658340663796857899517241312172412722579063186218487171059474433666841596846883806026933244776707861716184125905584275401825171339859425181598945554613855895223511099892651108245062622617179740525705353491644911076136202107554951936812041346535586753073954341960273811450251197090080107561537403253528415556878419414497975061180568524645847549961984629736815001126260186867871379485161285772874725055094138243121959826413086420476945670379170979694071630245434030513123372776851322938540810171115872579075287310791757028675638724075988189441647821095737173003219885514627175695562319770578888307974739808915014570551136927614610255308324518877101135472208435495684749976989675203109904624354559685844675461876820603090676469959556479012110676187279288174600346691595644654146343728546026875507055528462178431734245283697005372910449998625838463281246599052570096881356603714472746446574885131305958572101323683202881567025129838714661920599945926586375295651775921726151469998736870448221088849285362248437789002339917399632185425502523931768805276719061512971635442328017087178345971373057126385091305075320642013286830268140230780338342032794231050833912455783373777005547911535561460824936248887566849021388379315856528268391756197595336547836385917037318220155842724935938879359439863584249556871223210480451113272972850310020181070516102516526955033147437716245245893901981179431880896009145787671586929557774506219968684234688486554655961510990494452314237223664577022293657500232607863921602973448578468287648676195636160488045469895868506179507089117950845993865801633304365627062989509070779209804178368086785589561235879019685648982764184662353297774667354276862450337454688868757456711661444439711651748046729325385726250150115960755160226442703139182514322924180137604340389239903140697126845373051637327633732872336785222028715017234264778981676318986763199775946609176243129351350394288937271950986120381847534709610164052293706973114801964826799052574150995429319920287240566170859748881482921351861897728691468146807527196684248387462021453779304799853185917215754012446123736726712063583281932182591522843146832081193303228157532958197371191004383590512232050244784552662800284646097804910542890674663639153029864589470695220983025172716484427679396201746955402515923932046479317194771229057178237774680401934044800728450392453046393147026043831355204118479759998698367089043571710264724357901757356541641898880504586086969542354035117931999612046049665971230637125144939959779559703406929270241727326607305999490015689878223929234855283598791324181718044721439231703265646084212337740189996986360032159358165935375074720417128068357857714921656801860021781257078853333436234089825946189481298538930928994867889118850896942364683049757351978336665700978598316809243616299667807191291327779399595364060399144382017345745477844220801994874337373116487819391381297457848419565228362708443941131711390159504326668778268281059391852458236066311410189351887554272980480389427017825590741171832830920986551417630932351537215732465975776425485283795861184748583419231275541696707421746759245249608428933320198558884617894997445638843519194290585606582293932889109284471949099733711188381233372827032767132411822831759133395610970230487970190426553434472596496196222014822947600961571086266398388043737619274874594879776023508571950575510063467305813847322516966423618041973895619211785108381856947413913413314688208298922372047634637718327504916883809836140392084697810756084240091845775031878074542407217829642562866440291150962243499454346722064735144285063988807126325512125285875193617168746509337344702369763843237321149401300309642021920156477177412990992097448051646577500554490768186804793504151760065731036250026314368795069719143825878915715002247676882900879282759334229392861060086395374555580607472325845151915422680208835602041039126442375251998076961148120823562424958596097747699351074983861267051252185129484554940994670396527220139864180725050179821991357169475979760881937106487391523810128161040313618826940382590898119100359127664182005019544400515350455442347361124123228467732747701961096696773188565127359962688993613810802585192209182078152196548281206156635776447369239124449567549871097202242906834764221554039018922845282314682397085017829898585846188004600308257008917566175230061721431744556955199586956971011059868504450808000403064546873666027181671711487969278555235051627413128084922328535177679948851365548977942092818856624530865245172617894086703207476582420453791285060921467754102566367535983967918546099651061083052737176090644139450106590856640862641374693478635677426496626047491890991940937066708628821972329142929394018618110832609351310674650469721762421993242565253622255524301536157007089139578308517291443629174652392363113235613021477889020014866890057385135043915771399111112473419119034515705842899416691655435043205758710667330231601470729572989197633133151317379515282520646969680615521778448730522812147852958048322894959016053158342026509433828813422731514367204167020128976025442211033377978614064378211834326069814303894283040967123701586452298162959110950931188040780689956757352935508176243911667566514561244730706181304041244055193494882284138544743824780634365707140880015158926993767736153074677988312781929958993733824143616268203258193730546496397643870744349375043473311524751901013562707796559756767013937655181088819814631236770678716991068501211227494913998062255988437185536051365936226244579266454849006140586712613867438689910235940178648674744422078313204372389761915505658954056870036330172626151755522771512586773215930521841403230064432576393440313410692395184537371955117987782196106712257723419369650742749850265977909417657679125800718918397109137491735179396073246863484387398767373753422238975428432106310090930082972554437189745263617766326275157057451039210122736764321848556927941859083438707058960245712753708641470298594149649530732188338305426893619282605075714181966213064024258611879595919960442009707553440760215093687174974282828172628001823549397040519779585392537881573462200582181297091942074250984815346032223433023846279829976248399449052042278820905045279183642305289345792153014071308543943878850990225354818956801150598008980146636479327041381171225711188594451610899862766699360439541751683555493451192356900500925531727232965862070524145757959948144068380825535207538410165337906457814897434851193513106452080872042168150197584678584399754159039838225977206592002538355444080726917183535841162139939419956922466559442325542043752047240827342792243482138543932456233043893091376495978497061047441349337484441581603158571292969438725893758927188503483311766052643579568778134996027846983583990681045527206595692067218628130533000319688169018071258357474359093671037642165223328481681261141424728792240894192020983637235639852447284290224519922410324348250743562817372859706360967685290692585137144592976221376375444336918159107661495099000911019650370110711322997591475064970505097194689859115106890838261620712470503747408194497845576328238571177201389733053675347051780082235648483931525096308567100863632894572129494429077785375824979892797297269454366398415333403913274946849217223015421613467486747246629907448563152146243259628137605105743182298036642762811159688754415707586204024269684829362808546203158589479862964888622723671846526845652596060155969978347822408943625925200129028127542436504903681975089848695938639460644479665158068937951822530961106029830235586979349005251237658796757052565038342862695230429332649321129736345302601277034094520012315317713078752894653040041673099822625504928956096027358793216556684658904085377038830697337742524374806276087415259053087712083838372441437076853056904750638977402201857335893905658689082105844992861516527432269318883546082960555750939241904654463728659322098006528314829744294083643264437745886014735936875548189403965672688486235432133600039061858461354880796787363952488676246043338467384744384610275564648561231184302678577823081802018451242835559018366590351714331826180696616933502834558192313566872621914043955906316223341484577420972533632492889998607870376210522540425758922576176115250026093428841746133717472580259864795712195039131113432941037803490354252226167338733781524069772468317589526957601159335544480579035571250747689093251805277788084576299776437633225411011681086256420480584224360026278941071659719634265269322920234112484427355243361941471166330236930642685958349309064346580441405916105476345057053286082941301457906537524639232363500886682068919039137481910167075331181016212686460465624879156985230279580291151645388579715842573286954122318862357264235885992359671976981500042381119915033312554518515931844764641853931949566836201228097623482175965226264491850726909610472302552915177123215117497364026580332534364158815487143235459460658608978374090979421123746014257708118251837337157841931426205763927602450607361488761521186670087865633933539801465197141785742034859140512096597107531216991406065067401809702277628741398164348578013742870491325408007100642099667002013226102017850179659258421197315179643576131660690139738704927727453581734181731979648617374139236824747931632318348289579252078677478773246467586395985866549603940879274428868748653430039982489606985394619479937614625322059442359782731034409289947563992711158481360675855452697330214319515597455977718500792585716081193978523011225152460368680693537579161047883746134477384132478516718697428765298542719434496823587211155879401442812943994021325322006621753267125107263155458983970405674308465400080238372953974401753788458426298558369555012316338581578488549139617854517535805853956576046821787371328060812516448781043855395202472998672844306538352281781008584566144416831596363155308957811965514253704573533303625297511697571419840063020989900476782223143813646368961798087208838410491162229924858922223694466510903058248902632663105580667509375006153142610672575884823048113620961953846079393201272391307558033174927572498685901078318057953153550436437885383310747280469173577964380007644235149162223257764397428425869703918929911249521927560334417541402525149087764883141144822406070543500238245453686399775044990149637610832784354533077737053624568052198063804137017907818874169340980115164505804830421493902630527162501583983095952140236237044212145147202079520435729632344729478715184964011144429939670256432015110584910269981325603511118440798077110091111845548408733569509653337948630230015797280611447818219595671219667448401237947167647079515577867077296132339471782338162144216498331173711426725879793024386186987866547009391491035788993670131779549512834405231438785508732321718949427545394106766893954792403012056647205105846867424932113792332543549343539934606423660703818056540915920937207146591111245030797330717744519414527634794629100877022738788526901231059247941699902162882545577137619300409790154607660511714828653887980103908289711958659175725944016345630143796277024610483952950443983940464220628598849631571227080922272534365044429991160738501206077038190708522726475393033209677388157574311580866002776187463083382018529432390979936325444798484860422122893897458263912144790692271876386787608780514839611544428865782113441712918017099597253793186137388183655177678276901290729902552898651854395324456588473176019427710480872097144918973095758339016938580959614872536054387945108618452554769812956006518898723308560167112731073685286775055966772727688686691814685327333917894598616144594052108609897556798286753147437520504775505818281440693233710721868459468198752498076560045647314884128028520488737379604005890097253455409833390017813880710252649755161931473757828068055869235688552775758765802803333010727071866476275848226653905141322138039449536762175380836961835426319606454317446391430778623001843788770301046352160044859173529873760657626636598823525572815989278138508538691593717802966915116373554117659135833277675700596920233292177049532187214924116852953193598213345559194708945385672311887802930574859077935313984866258756501899409875800901147525126580952797618898141248919721921134676915015505020332759880003264191134119067532681912246590576016723405501318726204355786598538962713071972264301372290045668892857904298702066287272481841305413579396478571155496945227485746969478466394704623864796244472519574059264762667070887308897620039339166728541337929909376260639632027583502604342704034187320965319698321162125932152546063086455423123953684898694668022292230551182055814772022483152751331832636404800789113710060521068663118684394816150711051318820833435907245681126160859432580305795604273771332521397926902325946829107441662116854318005116026638035038098369338458520977160967247282018656598992106402147067548946706771664035382443124630885833190027660872733924051323598010754624838413999141234725003752929570288414674909829180542353302598747510965995132186551338554428043490462312553854055841387883907383724397693796672102228190061050131697649675452692888401841491671409453620722885440613341243018650118163824310836946706063045551663313631577630099178643490383584137289831910470391459449102870821909766531730481894508027826849185224031726291868975640189134294454840420805493369204183372824039447543909170325408540096804444606915610252781390142014836015965267192575288972092986577654901927811546823542582098060125530904040357877799738429583083334905150642131834902316576212911266089286055738380562003934212129366577191227937135790450585356911857659632795573390747881121522014677039050708412015620432339656762581697364204934166298503669296736471123847299065376764573344094444520425313383950337223796271229827981270774176835694971934719963090176266521723067354051182508286254093168044473788284707166659547971083594986154964320427372734514524197758874854332285686313685055334886864950144838907395651139793918663640313106276943565503570228220566600446422007674742973745201159112228220455592209724940204759682267631278765120102794150666949423428535732900869783796100713160371999353627287237257265776675573242270647214778979730459728303528226249217117357596221328611885060889985713892887936637316753796965043332852591709943146383864846257772037043570790806086098625492162210437320379008535729209996142904660597619168899568514147831241622181444467785010809807373233141973070496529739265087007215779518027244518397624400126125573121802794522682751927753822855114442098227458535692758730944512190929800222800960704345918455377703814851402381658009142277625432328014411143163904222969307337395164598467942555544933655794393734608558095760615514079430255636909583945851310913531920288726261237993616085640793799544365722899268472662761347350560272309573478415083217679159285725585499873044833819724773588520087420268568264107699927056468003158295910953869591768142769211112465291880505715327536025778726467472787626138565258512293179229339470438680885515433965136312557097966442999206246748044656568743233291743806131623696953819129020372205553734217688755003142846295219234448772320282402551517798275778044033238528943854717875995387889193280197132992712608922288248911249847451870403590383938608813351440473305807306938563978469822292430403088928165386776297433275560077717516193630295457380122192857773123722575122423740139437012305705046472663544784326317128861366496770532048709250839312319522381440179997909957231452944453407025316785218162446786036143305710725051295843651107352033006320637807099069825767746404413900696748672472482424467838753305940617574451384185884495008471938100529908123517297681715272569979168256117784147055238545552427788839516166210519075924471476388931679235875671915048773551792443715176308111925789707227164104033400568136776333881432748028271778760848778500379105668614547225772371126641760559868870998236485804424061293484093904322186308978952308380810657108262451519050411257989022182390739332142460743661921173334876731354544101257884151006698774939045008870449308477469098138300567863705159740313114868187585005688713138719847000628142908777020596681757184697140196634567648403241133044113173152138151078093553314593189956000049130548215694952076763129247076399300603657944550288963641944497808040522186999318108711989043650892669558538769767270829290459755561519736331502854824120335797557591092556556844793181259996444544959496186770820580697874923727722375491187313627638478435915607136600444413534554434920790635952870892422155332311489038316086998690528671689284417975885964072967093866320194164774083012776479086133372244548955027941076970853631929904364800869852202439280585777973891481031150395948302670449713656588194367125568844312663730302247448012355841889118166587568361032061744199753905560254843321704638653221934239773819554829712714764002184030503018540751315321773069076486525483106067762085738405977986407582202715438544696583031343717982791488371293069674119513785552820145384073036901348099802156305283282830834684134861742035822773470467056946257871411392535941732495576708758482785420270300099827283287094107945924506208638507676184833467018049231379246679021965358576951254156210163801013654000294191687781407428411055512641170341858709057689695564738708985829548834325899876202748347643379262401174281822355989207047857747106710540475422389904997937505349530580025603198990032543134401397705010648243933137913559866798679405807523822653347056594584931430333475613969504354268089610327678651513460217110918344903789184670952045253521110854111839935234524642123381913406543890120190986625628006090724340518826816501487806248074931712244794130416064666713644056945107400214833721169020763340664965925499960881780743577100532060050372283209233575095579516561636849842294048538541814829062184177041568610042732697991828136398280424748341666313281236996303462070558088847472030089073456459272256185742082894519763002925141186723938694385411363350602292236099985444085059830189088481947044579691649021359459373032482223297065844108092225375665281071084433674590383066497778485357357463216583245791943061695196948629366371046925588066383436909144261296966048968986066253900651554159899044329096487436150513090832963420819442888396641648034232953186529679535815524569005935323534888728313409469865752736522028613151551018837050951310695764524885653777578254562950925748631560492689753101182424488324248670241962673289631631371268669613333615800485700766258031770939513962448675099681139696133472055560702070128422782858614580324440679140746011329769438043597366352665344947335741849237099249269099672518474474584497831912864978878825702253869442482501485060653689765951910968033455527403427909476504872067864261484259009189435389366955993046430065446169200746699433339507158709350074132186883227347613668623207866354012104687867971912175969975378208557163638892783890627286068101096748586703774790400936104363366264131844555067271798393701261820517973946076453304390027041086009180866079448762571024847000211699704087891419807305919964059639535416287759744481379286666730928394460709372312505731744939357417345923371400915751841622101506001780070480692624807085338355576383424121169582471979221452202814461025346647995965956616346742441571061472974620589063716343961351428778543767069831537022310759871710937026459673165846587908850919614173957189134733734400526717966816267798656032562268725922399465580159343550281005176512752674155491404165826116134074068242063437307121521765607259818128171971660230148250992745249138959265199025680953240621394785417854066323149822494915240645107341952240058998894638419650384499537818601275808949145869309862426060179764615428437511376473592224184558020871494880801330726628629236370479049449746463518393792837517127888583723388559970326335175389619653532536457788615070173548448820324039703447465290701090691678299163395954687742178165669789943175305886557871443055028610711244778383718621844099566692669090430337367159766547974347838147104459152985324190854334276389912627477271200946012371306832110876371954875458117974439391928292438238507314581090290351786175153056427394458076883089578568220847934725308857999837087965176621052909414586061824627752707166189972401911567371220141671474844618071316235625695536307225646590181358641699888707280263875310119135136587697495558805684309375493269648574395210375400981337700954526889554754690067635546924877273995530663889111487473331782371877892257031357230730471383642692470857547418722865124356285714775545185970618717296241758245837232188709466368859466297799491267065001596714765927716884125280293207229122352237505590889754279634729304283500692185695384508668033736615291903041987770610774293093717758311312210796511717867760095843024036566866335535205562719297253894552101725190785416661611239196277058703048789529727261555337417819137046316939377805392026057682132253323962485544391048935428170766314713825958103166399964393410776966743094078248900648003951558745354399396600557691253042169758300228058226678262220514460221135563899485612315046903663907279371128141624293426562419147003663181230510903826927714268652727151307293769834034065403124000859143632553883455038682993362734663782563251432749205139229730516752036665428405322762476044124791870425446952507679979748956436914308891402003572108806431764613436756270466215527239702083315389889381740228319687896943315940152002291241324569538104015076153460942615225957117445338215556198553847397704930588996361016724178427156100254860849450343165084479193944386075057812049493800538104314664964816735840938587718176991354069634247610724941649191482408039384195672710875877339992205157067248305941935259335765581167243972562556780158142640503012595059057062667654044746222005618742829045378778663731054188927879497380625345676205176804744135053512084074271953352689479535177558091198151274663588828094171487591273401168716360608336497342172000049564524424348314679102108912994806663715865800216417884340898204109881289444678991567564492085486944863110860436177764916371953784985346044006466398444666115394430335116466079366031928776899811892465791245137359818941732685641951884521613969093844065532861461454701377599047851835455072334603712108889394840482688697160014091481664810009857820987676215738726946666561020759916133294120992238246843235257682795123208863281620705018046609015518410345898744174985736431951515782432184216642484116962393894866621727126194690288283607578896466487762124926793268364305232278856726036569228771581402043932222464048919089802926902105110774022703779725939099143503021057153697806649127610808014296005167978839939812983513209202384315099953353124774372793138649600728462867423927777495520105361844987446060562784032583994267094339406049246243359375249938874373544032662439172150706107754918408977623324648469219311502491184573478145522907966290901574687863553412325518668127471713968673624889978557100690354424737515921019172725569658050642103572103444516413798228972615769576861816313729814266454059947305644533705608756451369953983580530031520988020711081295994655584660865681772862632912750161422717289194003244795139947599133062410770974528996048116857343179511218410305757862208102455006633131795873690282568866619848257013645834989179149638176994633202839780087070011073388260778432949645267309736425258188155625695288793860919110961017935778622932421064130430615316038348955146085831948289914839786021185394046651072469829236211188593590259690301716969229629751361850237690424083095781043996445408860694088458551102723454550889921117336465331746630566555701037801038720370155655741164064392922464117710156841671856592911540954141873294667386145903876375291500948044138445553269929897708051241516664698821147062884071371953188149764250388265622426981604587899172727266065624521797872338982787187088070827528989895683878510666970230941530572766587262415566295462521653984416660392308432224891420499413094834623513633867269178182156001918043639465940501402800828296349924239207065977513550055441449153908785129793934262092033720422911095216604542992933154374467852908011533810902781730990807907789398446989809945122232476452981625518321009843113693822666257922279167954920851969018208868246009334505965539242167823895482049987824850679697648379522250343656976284562079677671359984646395555293105022475638562160945500347369328944759595647354064356175058825664334414964601084589848831180730620990471671415748168689901374364177263427247877031906535079474378066544607904865825290185886235582136003216736756487987804846824830572631425593773877838950817413946414088185376733534506974738562097239706862027661277765698481316392434405637076836741460519313584851494448210291657973614375046427441004734135409141818933981204323113735295282200906681850705795172104149825882712102984450053531520947045672740633818537359298717074640294999737554915415849845098062285299053708848081472844119243675471174581993007517642807744349126626676959615541765758957997242078757661423774750519294159757935465131933314261205848315474334849158229587774625964776482175927670889415538422137559633023789340001093359863125662712981336299649532119486477329648446200633202965024163860252628024427557073359203182444192422464936765362492541624596103875900815141743778167945528113263382632992205697592299197408253623741891261681030673048024206766373377727414526438068480892999862138282780996058613020211912241680381753333170181577097593293664242894397810275454095443868412650416640474959606528840649090952649848446648834952196049871479545587896290538395947722678389845041644244827551198637348992508567330417281483386380089956633595291374182177561610803120693941165408956661825980283702045529722616042711883932489584934189131977471466244643650412027332187525774064743571457489758553778419477509108946170617470516231119380977127403995313369191470415742812696522959624804261332850938741359835339728987788756253848929629667796137588879562947410791989172962141847635084914480019256503182323207274794820849281225307848597722370119817791679764538083425513415268213138479430490072115412372568199028616748467212698525639804415190871728714139529556359966857227815226760908401851262873670384740618234061187198887466639205911576422866987927296992242056170660050553947993295122185978527033619947895151465754237189229487500539561476556933679506050987418730489705110417473915674145154192110975458536676227711397464750938598676286506305382675609390133506480954116414246027020276005150912493631354236639498992930385414005240823089139358372305528778432309367921994768988666220831551336288863245744879733334329629463761342604173329544771767529575469379453354942322798586890857420125295590633220191605044249413731843705944058545304061099727134100140517635672565145236042879554461044835330525346611036358201205931074289184576813957240114995281214050521314556537445641779216136655287237779638739430417759276278219622081629612015187472148254712596391872887077791886245752303271906419054727790254146783184534009183175464870693326076767329381967993783513868856498122451044598480834798934468599028119399897330343099286367640336211397853841853300974076042397521422845657888779790066547950608820238353197143439792201090605141734440087679867919321314570456881008934369793383750384512373513020172997468173665283530810059605534319578307329641829672523318046800646158901347074342808379758845105539884152214500684424785102145846522448556273790234640558581922161721091764548222292016773530168742410708327880784562381082265645150697985567013121817393665993132914405906893347646738264459818203714009785579717383500025778037098906035900105347625502910375215327251732951624474369906740030751797255507985546675281354065741729379632969996206847008268616291654170693899126607734975298160515190122658922285456809751064978462435953117446658753228608340735639568493682216283537093576390926431116820532622508743749609031657177269110696951799073431024914482019387186895940163881954570286354812702244830342250061443908466948441170299256671787298060503693179055680200781314148576763224638597108224839153089223232278698479762684503515493301669770742277338532749627540024281316936224572738964761461871117945293603480827310240687340267117608761620981713255401138011391799322273346798807470055215549769304691776866842755797376455837787851830688914013943346032863429851125540456966227493739516928955516223081408175175582184608262337449478121268419299589082318638746884369024905976059045437985584597478423190541599097280120380934329016594793261259805485302004926047891643865462494776500742815461132956873594896781469490460743259413276392825548576392963786760732552592946764402031370916495753120008508697085823428385414735940271561583586877861170428826840000830964208455661798291699118869665597812439422536774488608970916194111750845474502371203099350707993563578525388252678891727807702563602117183244154970503377552369878802600771407335046304504694931288552045231150130745240076917342177599991428393779045677060627768037772255880895980646942047045006498920469223900812810934656723243424488409338858655639669160444755426649377350492388823030402032496614647689489797916044791259604131574807792778609945920434626556790247131010723313675022404929990357903490759759175994364917743756121708652906767236534330650264682902200801134203859563950003431172995283671033628561114258811942569503133355111625449698257222108463411029431380212172577920459607431554236403610773335005054458169367840230726233226043950720507864646212876436962474053265632547212899896748810731189901228971625128404940559411688311313286130055205034233009986538784185238283020566301677668410608077583272068640850828466939176091844452412769894082591629151904445117133387390812284256758030944496731290917413009294096998200030598794490398281651924009026075251280977363832915610496536014202390389107620992004960645865513565289612008563308916794744185662068654025589594540797394450238492644210548347483400834104524207178735135743477208013936064375041629487848324365556433150805074407329631943228860404354488008760971114532367095061621754584394407115942988327437457550932909616480372898992370485694925659090075376487215029158348326007734539334085905711849025726963222099929638636622044518358369670812303597089614981710974283118631161656374852326696531615687840526379217414377713645880257283631623589596188773744813962720339468457514211798320333685587584315196842462931863539337537415752369226552236003506640969839664671259240863465693998581383437234920495984659625268342551834893623032199605993885731007608410877683058159476197239282951342916491210456804253314137971186634370320859164590143046820033801112118960589080152369215487163129158715119632704665394630131738970511283277107329065363780593291865279158207069265636842467829548936443020956410991353561839273187256431324466622755806256766336152911322958318470095843031230740353312791884889973016818946836374771719195383206228441483035692160963655132876238606802616938128553840322401658865113938820325995343740572438686394577136129362902921177342615779038221929622959309828924281839337370209390342143701934688081702851726605453886650881023478098483796195847009206659186945609217982732333444811264282479309388679285239700481736897237032398710942110952109505943978479198714796740980952442502160565464175748774387577756704420863755743044707983855946669986226876552141117765995604780169756671694465537363512611785680495693808349948891458786451694703213042459626165664005016662846564530669766477727997431897881888854629062000675283297045756950445889582875431354244928201133488012625056536819247271760921711428217042411565402840142311246609680821007929680213773931554963462285539042872878874152374254009192360534785250935852913908371517518168033449426349327020228883726791568793444917586444656964926366869335337432573111351256117102823568371752834022991124841200824252033567406939010206896100578473637861909130057294379936132030841895791308875023038371861365932579998334344962722315093317691356812246892352549447371612838336463134812960908295498501354740876560512899815190071060794904732281731529024613826160850289475360668398240322127318565346829249918107696722427079159738200988956322671801364241666232163219227300915388492009540101858033025420701836020207358693003862106453714288952464923916404810852773691762424942222059707736814769686261302340421534845606902001335526574070944134842512799453881469234268623197068439599908598554835311009966157085541328889318164189544667211453344004356934177354197631755610836208455959855324570769887343051322302983712064035700301378554315340550370484437765302831216436259188934645548190950371748185438354616205170896541452855002421034765475631410966587232277801424231094077545281695748506131663866564226761469414310377347911426222295441871282599359603130890211943645457786483602741663224266383637081243509924392681155574464715088229814976533362833484593148244962630788109306769643567655571575166782492184838587245945543891307889506461067975476567461832623846934299731190656723949111625106499735912421369496026039241392602649992379052380120034409938006427986929128598862584466186477374282962388541135417183874455628480170996547616471090878345611632739084859710015843894820126775128028498181958511112452883856384889269867125757590532929225846436636982757211638616039905234433994093781949561339932065962925847113224964564341644130175286565105616625705825052630880331290794805579878625578508784599710046672025042978297044306506860891629306302712811000192719898543119776217159439315715459784737958403316440990104472451370632925402500115183859403913204234296165219785705208216117756296578473144962038320795149797803718172155088940937380147378130134480880422644389848784404988036559591577021108617913005229361021896629824316819955275599968896304460062006645123844916424040950947702999998263957554302589615173672867729253493758573305137515426780724890473818561767645041702364226801232346250863114827113670765906126363732213305020325094214388953605980082895296418345893924786901697450898020871909745564191251628980093835420355012794902314165750795140296279629665192831812685758163150909390118647622377131013045581949190101830849235693208663898850543637573715417688933655328001748627501061919181591226335324542734475418794062018764023482651600042132366159340242568519926135063115378489795376565202507906832799728868239174492204733769266036424749500895687548776924244595814198351101156838372669849096067110406999726160089553948492592048038660281574552324243131972663763666669197513816142222864981588770783404053727093045956662641821699350283327063705179814387581772412018985845562006934334092269507058171727769292429570627045288567613329511275816798575294774881205554419346723188470415216741164121914466901898146894682995126239918253563245606546437123742138043865304142813080649194005186143919820791302491659333888629651388767001499538086400242291705053242686845551984516302360183690097613411688739805190919300370836178390232837374308169380878669211685722409343375620708206495796009401716359452219855809408423251226359117351125846188641178037670506907221815989001389513335777099699912769483544919402624174410752394208701748311336995477758707705647261675930634136065240422458466467754792724755435522072414984771194218261440224680733951484486832100271404272872393028563299359659527802223300483803460468941212623769561467924362235652377906167403971528807232302073645949400168711077381886094810194197065257225316228946728357466471206678554432696054534349728288647464827704345389232350961855743045324957339625552636685998058965427148871752996208013037362579090608098225370906977114553243849400955723905478012206697791942769552084137165364625128779966788210638595809872232628769059643037661674347111483752430755962550656362006326207969351271670394179243736717246852066146722869786480870399678636055274327876453314092949366849238793039258945893990517609786566945892763147595141727410318509818818579275641634273426711898332912416298635845373658988453735171310263681566456510759040355630124033126966282375029576834587184164436901433336234601098939302751574993720693268926142989786457647047552935557478110358679771410376266542636005234565559774951118574581914421902298364486501160350187018158149515258421293569316408136356340979994123484778848523549912623047645672095011240645741998925703032264197440789205980571392531636213881567697053888001984409596899947101065540777448684938063993057188578884636383090846098032128275655905861794253620556817592332044541022416190131218274091212508621505943912992278883339694150834468966432987875990779900966016925113608870536462286366025361278913516149718267896779262459958308088711190395924530141202662626137201397489218126014063006187751656977482249800907979186911430377768597729094149106912955690473303083642383597314001728874473386187518951374013880592618043285145228768746284942480798772146428306286846210598625186246137547619745752843794398110362612998326000258253739284318673046946287351114308975318616129118451471926575266047320389133335482609334764324286775157544471771728557075633205525673992169957386758802205965830748316349312011837650941013126700650352498503747021554599240560285522416428329327787219771437920511210362611916697401198167036472710324843277208373477428478063653681668692644525763056458649109160348905734090956243407191331199545191368905761163019259349912622991021593841633759311988000642203638649286482694029396760750330248735527286505250925423476089503390908863452777214316748440966880150284044275989739177630016807009824554173485512215826753547570341792787171162072850577800424560811899804378400837394149291369801589139530394063506403620166741483868508237587720706185992316705586092995613991860697935919784660444969334707802895971090396761192446892787741871708960105574806174925151164720272298259348074528638328646956581688486185707798347551021204305096432715867482773508842757297858457355533062365993306628204932238095652001584234078381616550273250536056399251306064339840472258923964989692197887956388436640782682182527156666497246205264502758089873157108452160995067214025776730175731850276497393385361140753118025308430211978956026804087361379843086553733902173592878800877164703820588282460124660005434645350921864861080532349058463968211445843977467399826422921131670720054854685784361047315486980742892355393101038308195121076312486129112888113069286849472513239711319376291077246403728846256012362964553917439241537675859771298765630891054601124870648921592788778917586879314409222671771816595796034016074714722043124105922679350567269399499370726885779725246620037693981562712112983306879836619498311528449394454679026660805937978020514235448490031548123582799013341211483969573141272532035816218967618577265045566007037291553329423007300415317015722969242190717520664369729271671855844789610157338397257807559282604372942047704840821407472766928296916931086307981506751070422034882298944760028030635429881700738448183143652565778208168063791417480762582088760748874852744594907935273261061544412670267935961626049840956299787987803450586903122391559727329359332862524027972529904773876503544775190786395856104084275863698869401534835482117139657531075722049858773646312034623333714559420604782239968908522910056652716210896481693956989433610256950733438680861363975452028860661803003078344523989166838667889043458561351291298720048023188003715489456050254670903604050248630348137591996193942549470796834782818645558171025468996629446859185565010722523433456499710850515308403856350268745535421046312886176429535763775007497855824830649306562441294314303036136041689693060335878533728749015118928647139197374605046005999328472668070288996063753645278707991052332586221633347925819385943775861032597447322967475594835181770004213237914410119181222192571056281394334114468223518780780484192762940108982972971774250779043064467420196862530296968556189446030400252389592658729890868514947807517571849913466009648311935653042718279981390212667526203429772167403794440402359113295758800282339098892107418269129467117349179325740073918144892005116681841310340997680556549946538888508244318410854668515200598146394840718832056619368587906116419770652550735603398957992076235971113433623236145733448363079808837973915114384342533147395347556376799881693167403559999368821466610803730126681844310555924968850011358689657027556634228552876909629291099596376346949298770553262027937830849462185734392497940234294038161905927605116591252433543417664007948765128816608503728096052080359421907896574082864321760924380578078211717364793113706782962335043039731938590340915740996482395801124167762373813119865334231073308313990616681215284263684632601560201282605849191435553558944854352185423755739195708808748595284058714021941624038862978332107495597807942307447289911717814107521758531011666943365478056868683156031621195253037756283529111168390722012099734471216745353689670575823805240402311125474304567709440732325612630693968274036379218824928084630778719569186529531930750651902517933546072008015631401791873811624306439533605873229641237222429008329571185016811790502667245395635034279479697128916434677159629573683647845501572285759548036265320660979042388841497028647718140027978989244109307031777572264127142099019821095790383782088553360802926816494062733825627529539878397651699551002493613357465726570483843522513610080244435863750154716793992268169939344396262564206804181652211196464995566652024227593749796922837226667156022675320121125843422111633196151260213827807415532854803704320862656713305353282240885558252931185234097745541269739247400526082371781668758461437421978390782774168879275742434189770174281197093625863258399278934938450587033479341696382201349355859605083744635811237060615444231970435468979715792607044190888377928978275751908269351860544343202322985800237253570840419094331406492490862535449846812778831103228707604066305344476371934617867044156683385522393427235034821468995654604630558609258776081358350869947370277525365791658809557677921160507766302790650496423379955146851447494954217374202714047208447878534126668795198375996915271400612787582105014374481384297396775217480508717613510602124548542157667550938394264685128000922423197010763766732981057739208064885484140463683958918069988785726226346675512602681367900304877784774400949861753621287964168905033042960288873883904915509226536534422422713116367572384079462817748946536474923573121305515453990464914705345962703501698812902396941763577487330295610288608450652271474216100636301034026953922054769665486241455245211607729789192265086953192570364967100353204302153865346358956299944502584962712181421539787999061455466611955540916233035638833455092764751755447989508544873521088771662292442498199916720789737045673563779411125071631649762956179066699466415613239818223932241764317453524507327989613159444701949904710704786212666427315346298187999609444659345807488448553958277041180334730960780990218517471830338226242721416132930805244793763885177203715551134460982334395883485778503916057150465042081873128132249898180702086855695836469064166944808957863500974885401928776608364964218945079304205735672829877949070974957280214341458610009851631716073524063627532773758920502042427300571939909028449144692747372918292912112522862360522055683630646165946532544090990543685484931328828950462873909897801936737197703144797926926982078988477334772101862888611399013313951167505980864486400608329807744983160909127668052112844092700486965241504152856635090181663240298959256796956821426720694311878418721936536242864781569688529324087100960541053834576335026589668267716674729766011606872896368859218282651073161711567047207455400215571812266542351702355923564252043455428982164248403320626984924302873458750696322263935437732207235274062239831411443213085044685483469095059679655176474388730749806814049005607977551672956392313071750729224257759410751078737891838017737071031219094326916227900815577507241101531919512746873890262107069714583707667074879500843827769695219679900399800258425058800908058850222719886310247090478928220355622159247048836967246039018683221517447147052708039842535096146240172359009223181071699625478599530903413544595434190287671964617114330417537026652565939202013238103373251250907200781028343679044257879346836241113312355170797650677883239707009248199300828151775455498301675712812002910136155908640496050074064184464966134421533750674378284176211325389126654095165699015029013261882410389872708697906847419407825028894085372866105233381329132534572748461082428814911677884607372175595605529620995263969016564384088276773661900822578654153608996804728839775063140706459606161450710683635449447156983926535243836707959031393642509714300446182093367960920608520752097060120320796372991804427740658085381145442793746808317688312065746133425204029822036192892999051787844258578601777649481782794054786385081886677923668394959055018200302237232312381308023279081590169602535906871367099709244385342444044972573318710376975050760722864157227880557608938634228239204318356650060393072931299357202330191384838387423499084215614322683684868192830264860800149386482795738225900040374029891924226801564869591102878532079202874606603962171591451159581217400852846663106023845200816475106169586134567479381455208033843488875096896678326761193134328629078030862510147361874413648682152235343688463099671958997904272506408165734946361585554948945995136704939786626869529600460120294007250304626836935989114094388441523565380253828029564468066878433157136499834872645078747455870679940344552234186182978245322239372868878346912482376001185862783439192642064642596341035823640663060373957941778329514602980444302743864427780515402141023747533067946486551223322651148200553473431168215003154723047215085136126182543051190832395164972552768867808739677231947877075316481636708431974118007204845348152129076615413009427832295961707624252516784288204634186180067428466441846298631728361233850812346719290301724752457664443103032493089192050069104359997632985010858678955145700769291700787004818404866306930296087553581216853178629948106828090817717306377432592825321242524652699413255162175194946094024362153202155670740781747383385604453865240918490024380276383660618715392305927840328014334710063770074499105025101268429423002111914247854442424342109500120165592329311292033537627616535702840873180239420885194727433058821998442552414882612303358178607937356385585056263066701376935192850381497345524402900337094949143273341361159362314937489805225373839303007042200898644715894975060574102794447293250291285413921295859692725319591681297849691046888576781562290639007784690716351597185624981247526671852189427223939077322189533048752439667828252306493291866650386056801497477309084117385536411470486198679962288494083055681995772900116379892690592111156133898871894033846668949848471626819300922452688887661225949163757209443395675377965234509024987791362889734478709041985546312241332217422417625322461008798739810810184429814739450809260127124286894072296367037712269903111378236886002061822803023188146548770801308355203703158012237976454003434741877683594010906258402755706860346637206665755804951964461313390975288748273608508178272534948391578413153973836136581499995387217907798742980261384676650514360906726540882219273418623317481378012954546528637441022708720333366534318952485695390771596801936426969208963520837016792684973942131057945492440284591525792585212731739182476430529184318037875239585389521783217966917004798109976903598100111507111345921520536223251972175180582056804844810996031442646295589244582732375917423567155625309038307819783430154804981680070826026368168058897268393906239276075544653146446657108538623998347064222224250292473255924651828811814373046177605899026085689407760362974419340365386522324280264690076384549014799815359516147371773049929171387920057967627254768886346232947331651567973564793118737133667875136537196581192860526454297476122760231320044804605472294119277927099983270700839010812772156189357520167031392211809197720377241376166480431558860821895799635369746502730439180747438474800762076745847431032622416692049236763516302049985289379584206593677786477491436475992721550405573903594136913835333360551160226691214228986954276158119677146385174830329360019041076878348865810508001361891332259108196276023701889594799545244423990248208066364947461620170712652866141530757759850399511460976268244859382257745247906709911735936231138060805134404666418136963784518314283187440902797873097695654464748390004463582865296310949416778944239991530731642998213828824318003847381801353758800689229082305206601626352538031823030134090878489755294598049205639031789841684647139856743071723550239954401823228495789015458722717135836793108438314841474658090467118393453572481506817154083172436857040257900508465053258758863666413262475325890463230769596183803310442784708936809207810943086177925517154721708918363143723310383167433886990631600741977845979428481787156439392998663031315017892818567495489459978439163550405171360164845692476555304889347303076867119306234882152883091407968283687803544268732540467401361717372907841947690100180856423017767575503457763859890477068124615774433241061140252515990071585690235849132224239895523782513975877900572373174976536625688565490660109034573986557094448173055356792359484511096218876510230678898733077017706694761914617745457730497843577174886631052485427212448689128620403079027759284747863571576754404084576135831871329120966962547595383755125758460708467699288509218864503399573288734059562146583198676791899296668667221537068578414620689207919954142361590423922099601997693125360531831828155848449474393657406525108312397068876209211485850339320008893101490201141798561280710338103742669820177860653405894793172693754586468535549132950877849157743888489233425845062400912812970822385840558110668059820575406099212835181160927724738762920023616914385534836139628136182967598285836853745769455555367043962718436877018288769558510487974713577947539444674956024526989211315889933710412271476533524562594140351945723626838168235637904607508818566197741541924496312332033814377015959180387874539515184709045490712565597056199452613809995742764427024977611781486601345223768434831292001001673270269285696544945818822528371379037312217321150117042224503533317605180033842109176367504150642299998278916814891750778203852838618831015216847481054838501180316966097643224187506413793319195686446332500301996861454996682605530336448728740163218777526677719557977927482093773492903426161090420383048875576969858433459006132684124629850439104316763898634618535020396696415130181762964428935540136984621026719244888314766072707387157308163101210517261555284183514988111166306091963376869002860163417135374364871436439169174798524772872752672516480782513914116338697624715029771089287598436871647297811570429536284818103287435056649810073952804450957341390874229147059927244206005178681249448054507673419478566628589829648926247767899059297587069381556154775072101580076111249654565707152564732535498676129155910625321371168740479917892242387252108769173485771175229939010394170154444539510584364160332151429072399468003869242397470114219146621422455445913673769453670174862617876095683528387218787619355406163188149762936071773179128072661542023200584249475419080653279804666875762189542036181069436852410203236901733819574784261045560578691411242796557746260608453873962849679799543613117774768476524690682940471647592056676598177737916248921318417583156394014802244597071186225117588879927443926462934258394915342936099932470673288662346795191261860863224882947383474858942555191517442031362766962475196891298378582213743581951518192753809914358735628040542014840553145187109491726374034002706664816979411865738075623208388826003977510848717338394748348801258213532911563461538604246125075358825165958047966289280196147606244326759533192130711309918536378710161518341498094719068607201666758181491229208970684235382010244689098083809467694329094296095419091917553964023485374099251853137100091100462806958760013420690332493122808943006128945058354331859743837602490172070701322179137028681261156280893820690058313572046980794386793781055902809081032360295462585240210749425786528458791526385228257149854520541722962942597222364857804378558438339177568033551406539165915657958859438099234902130569626244820704844368969756932971368844512564674256468451374234020885882203315759777618282914388196448297151513883486829402963828167409343531459827854556416037256053132943532502259986932412275417165463497023625539902050647916421620163780475673248056585568593000575137860860199599005653520994058500009307894226411534304693691176065750874131817644998260546456640372204855872877621905008929116858141498058516334594693321219745453621277473915642046080410902523779757385414642012079573061604211243995514905264759391372932047543696206123268316336448993688240935309354608101712862568605591967715279757960033962936124680175912280404323617013245265307190490412926259324034111063396803611353687023215970774213540019001924779611324597443110069413079081158443537507838372735198364704957353901215531881988571775850412238238825957294314243059765140639377890074408998557673447787175131491274036093301826586855417367921169203657176711294650802658331015282831186112162041596158512779901437688461569607072657839556921166016466841570290604685809512331304976174909731020992780002053913417296939316234574403528374868536961064070019300406455113532049595211642739153735431591340018164609518015696252392894848835694066916482198388062729671486878511282749249981149686601742628927005748286429927566481060840134458969260739050869208568967798443711619437142211877767132515761345580143931850272112422343001304066190425876752464510176441545648678036701987489694981707732124584324055181710579147091300778024453052760828959375707062653245867601551228860732281518439391806606852684999656868170952684210907991580715149214739957698019844123226076681603569238731849327804419096138840400966606647304988521235516525566638145369208577768583138046381754118958339984261488513354108877254684757827692511492746107394102175797321062649085472001316382696219858992341561086301953280944677460831800004298280585599054907736915666973088539570032229481770146774904642157152743827960385294538590325561241849313740802641911704222512268462754127649590306121218285163135188576839045100476108259721731286297451790071881440804991377552087054415793401998050393679383416174114739038402930180422465308695050880665450987151812547115251517246640827580388202489537962698154739681307239824211694724458261477524732836910435778383504023415189576461110799138092827668157802989624119388810581780095304003437005824790425642359791237051016184358269653548696791367592289704071933005016589468881500320588355490789407471372619679158533389241129215326896970532424986750494780322036389330325593329166528113580158635680427578263476091076002855967984460744407735943520189538326707788052978288084109264380687787830199095541292495263240881881990725497363263255257116679923276277502291085881452236243803645223029064483275864675518652908789246215430013066375495797699730479766842068142753458001764952810252090439243947483855207667113658179843393829761852543578990096491453593965998656558778437032249859312769847122660184396897372902614567355558512804784167806328915702106779952966915693787793493585425180306250529592674869932209798053151878478872016039947276427995828401767750621911921883897073118011841151356639943361763992681180819562698391783494271813998302028152669305822751001644720045990306825822051049985265545061311978074885051069971047111196752401195165011168356827093824116494611879951983459404234658907122221364831131579860968320192948431054335547545715079558195683695255765559984105193263234501160273601174810021746302232504496270564408181722520127383051277580318269979180477683853201506897043356142384007919419424564237879498734058837007774281279834779477520737244513511616972328868151887171304068957999391638081400306905829164899951842652963342572495826721375158064169515890791809218096077617284500730905785632061539114938509164045614609797639429979991957102400000211440526753479693099144837526726312537262339086637815643892485760538993481052109077297003224890638025717423896875901645875695611430921060275364335950501337452726540943020251906478391489215902885451931645300955422016751142219772922989190093993779592914676346976347923498320440247750019030043285173002058486061739561848721982720553936567680352010457946686650109649261969261130640222425543228212348262586619889503603696063736450843037307143606565367587543172745255352051809944954295084192660494561035020134236534365121176772631740551628399543605693490543254501826285639188526742484929450406106473762913912512168569432712785574642255463677854579984601435512236743765731183002267409043010632266211562247979568880768541698942245858523888611386826570150201224695086155251887347796998331438343370448010440157770814167740225741947047857056938280572636216530137339236070442571529484089594875484221228368188681757028999446480644461450357661425858280058517574201940665670012270830785266481508728054284487559058193516653358304988995718349623938845419259677264405449286596259476887981486213966272389457925106185847279330828235599351501706866131962398670711703529659560213790922871788940196902983993570948983186439262426746516069888741856258594110559074935803567770176933545502349177858842539765639934609520981322656034011595278681905380490879024427195451802654042828008992267548921858840834130890822732790672458776680693923670239092020489684318230677886939837258783269501410510102435364865607295666315325257513667330602805729606737533700675342442207315417478573291447940663564402831999212994937760010369932595085290235376768120272375467735722588147643073354385540941516502296371691548567567081786531771731514998944284031904929741071043375350823330280444776829937876297763129064560695624764787018203808644612142721751333033604347398698150523904209121515761117586067173325019851703359568511995581887588778189859719288227137720477161938517349785782163554369307766638777303951604997144580270449135040905643582041954287502079754662892922791378412151654395133628034634436124748710772072889472924540310168949898004477987024042809446360759231607953272583685591603583026141580442741881972213169925602794736512346293060713927565545592831062554296499447339823060252302744228039239172033287985385886909386257518503930247778537144100198868047350669190277938735331650963622194485714655118482483466356590511425555202299481094196736129045727539155592560294677727054555959384471363449028258595937696313093489316268431761728716092516766963880880963935939952234449980150980398951870284125382558376422049970332316263809735961789568354514486813369878686013313581336941907301164158665770987207368774983385592800209202602763546578133721118624041928178906336883558734004928304182770380210683437275572479779264149036153739360091754224761080736196522307273186068304987596532555147599905782969349232065466845443171205253044024638218788376545605577435072730304816787859352096166233530639001365946450446308221708069677017953917166252837482645506103849315510233140046959364984177416368567804076643086898357432859577143798433362656659692940037607224984256110757019825055557240190210773562432086323294532208024272452138690746286678623697249826298907850856846666060976922213667749706516642947234831201512508732299707908159651309914685762839067538800399263877712904698696535256232324993757684486126424339107560471463535802888238748172175050227054439229375473404342641124264549272896766643664572384023377750658526214449859950549550226070281593437352192698888360504514670169669524551601997444550524439707695461548018140308005120809973933914013108076639980877590147693252745188807319555077989293716982859560253324582434480769294633691755943684852105686826538763841995555949583357701217734531801066621750471567951816016412134325084548207724035093220394552550122581373038736739346290155354607644184042764433030058455818935061605208788655691016370601141327998456911290108719377810892591584793904016660732430010324224970500568152417464437286278211121393187253899873348103045389726669576538993449830593503387319557944771839707408241222399802660026924959044722025961396628763824590860134958456387647953586342666230700173556853851760743742179971934002296929939247722025101476570539546641484669132194626104711759240936282999490020607452804561154954123957460444366005656638722326077063156012812083640854599722578442428382501731397770689483480084595426903299076952651735628304101216807708004439604245753391477174888099949639093298591147354671493002198275495050525837618569172899697878821893466021888391649691722317341024072380649485142584325040352062432162519369259155412773161350006106821134741697158914793794896639767181598810052881577730197786089212247013554543903577018658481078288653489086224814483501481896544465811557577264792439341013910738232689325253669517455503846992349658384376771224525453195654911280067663663638092861266008485872734770245444513631314603652625084996195512443176685493379406666261998352117914519191293274813786420838195673730403188196460441883751004849281349753976796316626344173013726850862589186191322416065771215894479312523416223535782348517419841454661262234930837450209985435163591274951127781515941303491856866730082426565335710212220932407885684733357187845135499242287716031674767891323125156658518861288128648377316952504379807312679795149858645176672115419279526457757088717757639425672520616766000804839565276556158651670863449353724554005313878875257782776451360741167305791755018828641321739508422587903211666668498730974352902710394007449364053382080408253359878581920885666832504266904454874280286948349091577324415753288029643345251249384263659463547405947120989505446972411619963670440114687191837439848218354247114002860896270261950858265931201599214770365489395198320803692415074421698372463480735634783228505242946504245801859490451677350699776170040238017105443571333256909906060019001852944388730033461570710522139534190147051065408747353436503814893079412068588670789650729644951319529412400186718259368495842165713281746097739777740734439007319438103413598762978528465040590991209858667406264353013530033461227139278548167975916809009549644406589596885213313430081182176337736360789179070268777636177705673485817363092061278901853551095436499526995315280188698894777845373829729825982204064637547616266045181466506357298599685320243232517918675532298314479979238984141760706431082738635014687832872222911322872940072169358782732002557995663577959352989187035954459552182164323524240668698600053710433126193035906268079434322285437716811627737298247908735580330744673696151855846134623166524713558697099479228009732626613065902971859793754725740601901132689165823567815730094486098411068712362665149430400686380491842355442345464378291108986472058097772754330440239639842666703437609838649208114295718253983488187690105212348018368657944792188812434568361094204600258639251687292953838844437278819483165268618425688459987038649336431782101484441717838249918705772173677997774273496355118259838369283828668368930866893500367236308140389165639168090459534905766238174422500566812156311352056188936772827565215601966896537110910943569410678575020586547678375589856508690863671155482065184404399759201172545323864635150338682151408334860703394280947484296463025969413714062773512892093633293212462045130014260958195583205417972659098697647356344046925590797517736877955836687299574917790498477537860240530789847750388190630246510731540340396739842005882308234299818100062618689513731689685909847428382630368619324993570485602361585838951282477449324530371287891716751476892366046413802777174543170601398783675936442877855462196029506469086227410994446854352489325682350452715810200424025484870879300032205226524315113466775266773142573506773051445489337387713888222145417005710939100241476133060381501081978203798030567885781851135133360438620134494112183933505411100297074329101087195721835858717938533182467936929444512680327924854478655984003571962632398665138559670322185185195205541732463483985050289054926183290561729338633194427120927576281890077843187119588795613630739915351878780493524395910191328098965570173387704412082635140122007435090990624105107258084620430128430483400355031019395653200017667992485622030838937838574757460840659042118861674633486279327195009893579406140033772859880778410656105557523756875789564271713882819552050990634695176796667289461198192241061932167938598688707055117235507086539848333951905076446958386221730431394609047797485642632959052676390093339023338968140509697821673782054181835429365833070373177920636021587094833525382336116104446413718491694564797962979281766699547375014282153716168455076510723591309779749295854728878016955295973822672581426187352499748602465973508857554424731361151258942629224211035999018116791555722102436559535012164273892809586146683624135640933865525246854366678442986790928993669680324287781779438921660626832011486246475316001425897499904322764337951582146977652974000815777016342982493032135629609123711791152760602147539877092936729235191138562518864812674323534194500055531028059585264537529216046874578660450790273014919843670077664017291102108524670467190470306798104715585506537865842620053877371413410619607349462699497831654571529984115547867873493773953532388650011622642424967797815206502595229806699809868240377229086721990714217114857366151732669642038530276229880258890676033075572729356841089073549839001625949772279914326848995871165729689302419171762919487512230289092650465885670060298455464245583284875178713938106504282536612928615780282698670162207788682638853453585944175186569241536602778314187785414167677982414051027742324735798738109087929126326909538200206078395338014760691552537170311552277591189729079821664134309198351854013528470203129218157837199787439764396285841040039000126449450300747034522805380895279667671729603970324153878313037044046642868934535621763131829119416518846786559379137479065532845692963346176306750237704039751191472886925521406423946540994888797823880012634553640256340192164087711102349142980798607301568901344615247623987659220605271004245640774639475128439096425248234131591352251442518019719837054497810591984186908454082142865851060454796547514472026122350892341090957617488690795453034049883595538921063241765051123952825007322590386436277735935508979396889550155848120024494353558973234483677374431583018544152823678896320795745223791069998387627451953945027265897861585684790162870024144793042204053850654644476173562705580140860874059284334024510850294198751557675374314061783489641118310271787825467426472963751121021085843571169132358515351411568351727904530258312133926205828404085303032862529329861625040877445713494307912252875947212420997026604760339193619547520000823359107191467242530934414087128558359005342747014961467215193107330141820846106110458903198090722363947906370685711178356130336170286517772781327498620649680416832983815506468238071207336895272560869041498681681036781003873994506037885235058047177249064108962035338915589554822935725409964855202498932785181811056243662169842597747121321076268761309077155032478995957642611558706236914130373681607670561895349852415174431584978115602134419848132186856838530476704528182704502778143192841711024546654585578147009639984163798242227283928980259552988991637726574486870157182817752095200770496913043179262670124243038716987428655642242559455960000542918207116230127949256995278430420010693032523914908889043221381835136337280311444366406482393333345813670417915507805885989976275902784807847922417729254467668596669504386905182219730227089720665429668748625149414582440258712801637708361626031074872319037931937788874088566915104986966071730873786560930872311270188506495830128298529909426986612881993879233739822213594720113554752342461191076932206728285057545963407071531055480589409717759119519752100988931332265476769146505758540243126985321675228710849814960649735212976452564870510279947621585962853457494843327512817541278014202048149251155498923325032589909843891100360504685170488102317966135232290017401574484258637215062334457826756566225844980944340398693990526670390922560080089340572712412746408538272687582704630639368961296631101030749088329486099590408205304674833346735719446727919342112400347588037391949718710438762192435156767134733242478475363850638953464016608616073705040934665846144208555094128035233457346964034445405582267717747338190261465875908616185800047611061632858969973889550089397063255763940241721456795851519712929073142310519595370027637449649686468784127046192063727548344878291881488239944214466872037973020901076721590051290734472901755790943255508633961651644108861291652706724471155710435745034581069397079133139171181231310954943594857749253730180937726930334484664790320980682177898057643910868534751925031500841298238655735416096263784763140893317540844065421263791352757139147292541058096786062532364762559669805567268953407575057563722659223246719768092407044009177752701538555402571907321590831283000650646389324073319779451641853522524372408924353169174725397437423881511840524539064273443265003450721908181247833276639664529728448269628703232631674484723917783044550260960311650215560429757587904972947189760152426967750229446653108476339749623784849473649587130291371367852491076892081592046778836459476177576178198812132750049436296451388856624601010196564596030652414069548277504141056405591300691757081001922604922355015255122468503338630708524491405334999489807854239655153121392819417217164531765104723788672666562405622175553054321454308978118622303856500866118728793327701890167355876293106449260795022970454363167207068658536875245410746745665634163227999706432708714699742176815115300871632544877113298004829079338774759278983814397471780281383825982067885257928788288423073286594641552445290366168287696287181677093046042655491449168355524531973055993547598318604301009616317346856991107099193629606647100899148500865510564613732732402840567946112417206913321737241376852049408433359056824452036796186566029353300484231347601632207460363976326297266885168373092001050974925162079227126990954612347436124068459856743716554871549162542883374631852412684941656779289058611044737539020117160348965226774141413420964621249660819712805797462620894825901627483585361361182916947611303657441989620004073923658049151432912054561870310272996999359120838817265505922773608479918978442414120738556998212888760966518281690725150836494598981169057897932531159572957796411220909805263528045961260758349553834034399852466202828188929714317562840560203471456242525849617625227940248357435608958167173026470477151634119420630092926176803713207706446956122697290624051649522397652593784978153142554866187612220618864074054022858687299088541375443562381621927401860662180419701017541911430991046799341333092998579915580688617699462453738285004183454591740004760105798447329766390222692125625165963619658753594674996373458986239226990100779453882896543516454599281433088397010937339854210919277287236228430470273574624874892148552546631160346215409912538615720378021207884204295257703704030400441726377948845220942517604352633170035419327879802725750296507759656141808401088154149575133873098492168830631699048371889893668394165029801394498390883666902139640530118871771193445302393497233875739382750060314826794576912414682665851786498989202307366028305924594322721079914086306183498530859579516848794075203844354107866940919556454090653821527184321770656187033565383659591216188565381732571854064397768241996796473080027114021622957496239740242783276334676827587679687369950183558053161015003134792366210310589376278496566215038514653133217389419391795814738757605593996538592639276715949257806879070547255298475814456346975499929343919118491458783398045588569654867698800426102308365981862286434567645120037582058005975877445411900905046866146716603373144419971219757347320590017978211346187052769961075460896812669303637650529852906353798508059386603440295660568444917725693167727446173942333213373520280031239636211640380302914752264164976932959845098818066985944428753622016364440650086423346390722080109465087129284041582926689681231503194843211544416749753963694782160414479571611551016091637705276589053309233652348139807913069959235447393052717832102581315240089190816295753391284248928902016594411095479580593136960500958751570166107708343504488427834565847047232433353690910557500704011385844324996778346429795405431990589824085799052519975383497946835600681899595176939985680364780642540450123338061047173830560702538573579838208970660346932240654616215790032482491522809064699202348648559382983281330490740768852636748278774781245996044570657614620242599124239711839219458319623691424406169425034841206307853905848412129819395214725309971537993107071386692068863817858555533274164986241991491178467079222788329972037160224822704784688079800176658273528566849698729166577614705576863468681421469252939574260493353778045197013594240475211313781884193970623805259406443232835669678593673176733828261233460836517541699502322775537224305842856344628289724709589779034539906714622797374124578393261117725773497628327936235714222761938513818529126538920048603152879376627006332587234001895400081023507899654252159994404200329825800735213698753262133796930002538077162309651956706233239410808303172661364937285778133225204824320674031988599414615337089354289939549720375187115650483459892800035220956483625441306894790602469647586323455766242080739741307875435341683010103697891449632337576198457165370605057934473818939053985126869818615687884660088787051472999867591767416926057121534257349019992887792177107929016870867188330045706572079353060945620528646018978910316322985954172005648925307352376243016325958605379393584844739725174461959930966486706165311963774722945021365445790038503847674202332470443347355113844467391459314322391885840223247465804088948256307181733455625964581599517772420017359599653079531951786563165491074013515884229424318707134982777739004384822780379590478822329693797795967752202623669382338662974135623106868647945568192067936018920784227883256556903307686280016492820278677167077870438461705703184807203515135524079392304843644562193077466550314081798849413915250225280760019343515934121016345579983256565274548566454850674614852928720193979435339860658213993264820107072326117249332525345561211657365756025870373510386485811377005984088160585059197175728287460364189771177517271765856528035637353079172624039711419182249695368349863512469464107709217591673353378560626789121985295927160518822569507372943848699396438013381602100449428259484335457183663348761203486215904451712163450625420406052588593840730592190054505720547420487033396015049979937875440538173522508657351778726443025192796619415404650481997789189677211372235806181289841601089761684836324431638212016363689870561788322514007358191687400575327413606847498268418447583589478215164080465338817224415545335795620265719845195348617059721673811479260293652741530953034852258110519101781725394311858476224093318028948524554137540033859663905163412527572233902716374011606266295935034430621092291818908164659994260706409359059312851005923955635118315786357805596229821309953388966323376963561984788541277670244887539561376420347866108725036320203735512078605679403659923034790827488733972777947509758229033044922192776572544623100810566268704324149976717657523053836029412225640658982587634950783991892658571422657041181541267498733989329311133160812988534613132365961572740474700846900122971850756347507361152614555065541545076257763411813261584953669867442503950186046608319750702951981215284675230235216353937193091942604105319411835545528506133794812120741990757481143641218330558189888427168575306326524300522280932338776682682039318820543935935423134337687218489044406179074727882497407059844509414844659198981264668021980138189169246998889947492264236079515926790665705604080765989821903105979410044065437786708599117829825127388973741010986976729950238336372153601116283758974400075880762229419882800411242975282033620968778848550109596102079983361575020311873005190386410797646746080344107912038907383336727183111403109184786387077770871803662844534722992880707812719320697115118348106927439324120015535463521498699903175620108676254992431787644697587866267884815078814857485186135836012290819393343788592877093229924728418232165113566702592162831818334952742609404181667727752421725480205296315105872059459450884114449643121988818775260151912303636446472554835249843532752261354191834043247199199706389838825648156480660272925128683276379769853332492986042133600561062514996784452874670136359067859014275258154807116540909389048209703755295088145714238441340964608844469454812298719093512053735754463285541917252583531280835440250349753044335362608927982114342730735071240895770952022398694934154906246040519537936161555929499612624708441674434645280907281998991700487748429586835522012846872437724836338144375046247685950295913806554851447385800940828466378359220880413657138337606452221101515236582008145284104451051509160564129569356441624587579891113958637692643441643648544392318059723269037057285201629824071744239110599031560470757006590256358834489448835010342181459525324415830834893776436767613075432939833378699121374930594509042563363919280374121708771350344549769922477232484051657173388007335005491179412297381125329043532103703601587641669689726908792488659123159489735833014306037764763239517279247267497483831743962734720511782892841377545690113944027287005501616141195911393933582628516164899286798733157299346134337016834469689479240698537636333929311517622563099937430218482594949935402893648450857963914439252988648283824273685349898850495731915699162726546612767182855259989935949527081062281366596041604263315274496057890967167866338872573994783513989167914063887851420592692714254423230378000425583033429160781528256535557404716997104196753566745396276435747885426063199197852249932943645061282253656923586537076394991298065832954239178187112300363188939591512715729200901147819502173274375543333016697974894193750814187111230198948452654133352175650435446105311439438349620757591861845710408793173619684596519352543203983682845499292909024726866740675939743996047047900036983205258110672606961399613235127823090983720725005830066170860521294896466351581836201731584496973833552180242388419308687622710403225267632715364654160899656279659452938901858419311553921500725750627997644597817320869555548766659437556464237231724387959841035405011368015329240266143128788483808851763847199104667004473716256657152413506265795423254894802663319304198010212147730626595234517839028898329784893973973836855170393938168378150191455777804659186766649472519705910556264837115185646167910273725357218179844555975634356981715276453855160989891999771795712549678518593144736783801820223239244570327138829987492218436016350863137210698691794321056896808216230586023597315421840448613005046273291573426061446603812839837138326623597618746979919037162113578590387634482116929592001957611643453222179892608013903991604152365894382754518049675543881201966481791704659685404729848708809399919529083463313266984221008636575831706934752674038536205437472552275515025765182068362535257615153344244384495568695035106355331952111802495028572187078031325547121801507298032920824137022044015782369104539198853070258753309964223280285757698768101173035798408857816328607982441054709104462896294240215966713723274993051494590720199475135797511464794847459606182048552745357298392883744110741991535043496216707652026775236427318683136455274265973828018468986164035918103099864875365922874686665389219082430178297952471770877850352023619030854587197840064939778498873250376830839734934885064460358991093170843723534503245723850077587361439254396520654295945553394842092542111954263207828022673530940258486796092863579024795185946627438604615308442848316397046823768712553342970304033367922884177598309334834055413277463127054157576985514018660194552375151962732891972812916674983578781717838951878261012924304933692762953628309339678382297837958670645984426617437871328090371891025862543450967720364987439029228014194122153468682306681558194302011031875412463536370399965669731841352136224299129117324417895128435174772702414440466419612315591943804647299303545040696960427142933317124060080771865308777902495205050095569321680961224547101917306261961604429837619984758925342503311959789571449290267576129791551688441261851286940547272769941094551497028019656206406904066720083183731888747435343991607083710351087318439699796643167522233045623669287428059286912481032656457976432234459594107016348451414209533627388895141596660827604989065261199984604337390975299156960133920056227867006853020691808287985543320554771092435659891532482503316501873433040757537437667894927699982807897915878479871372430786294185649335316200009196037464323804964094996400961137957281717077222091472378825423627413743641779374096017234866294460877103612017258103196051332752633017716174261583906345583571766841944022476309738700579021602049350404660249274961246679557316607020924195937062661815709898678903095630613102633995385333852730818791012466748983376824059262281492469197695049595124171372722809573266304396462584701743053250809958570597240234789863119341534183450976593524311787611271212438000410811675117940165703698728746516283876792705322653390563248558321174842090394862054384371790657606720345691381991642114129171308098241392342845351718022595218759773359529578411612971119737241926973706389476546809343137607851693137498570097510544606607419146756101304486255675325551051708699803509063983365508271973184560111029087305084323546303332769361102302285181261170029426682529118968632055085268331371760379233379257607267025030590835557357426073768240796843576877609310490474891203766924088684150028343301321056703838751103772936079026500575269853882896163127428841738893897841514670612177166653344664790522136820361570948501126596358779329246982666100071265912764413824073987478645072665614993237903555209865099597094726082234274306469846875032852638416721686735678451431655566178691962440765795011501151694206300247890342721252348401627634916532359273576317673088481801946812392588035534244054004095376627446441662722257479534419213168204495492085629021779751174836041912995672874329992869687728692047902183261942262469135744835768025106236586856914192367789708968733544067516833891866975377731412086260994129953493551001686164188107541336841158253145813640827269825958463812749673493319875502823966910014402372573492750817192186834892882077542921503484846866719436837657698317359985580206283452327744202577466142031439063084518055747154222522271523786423370393966817225963024924668706835926804773522010583891859308209260623138746420621771121028396406930026575939678415001396960082666120949653817721925123617301896171162705348831202030914022451910230618411023718616034823524749665987490785555560950615408524822312843961735359268411236453802297991136581433182259417345092523846201013906560509670609374365153097019266134112316569870580173727844906823261890553406980301259402756536948670730752329080216066135878443239768108891471303817631172055733509006667339322961412581831737315995523140499910352304885088495608575907024583203416043835260884039324649212508988070563272889343222640413261518716754538869661383852440252255403333706169602491255599439204210890438231773257858111268617703326748382145922693704013974164007935019536036980445472431151243980139979847932743429325202712461946194476645740150195687901239850251831105200063773388565047493829613031832452512937747715369884174607527085953794716786342130632771465216185036488516551779759045518474335942030436236068595636987844344889635895093843824504537272341418728085989021828702467218965188934875093551521540904044088425276813712752833132145656920334455796419067700144601504148096597551655913149944280465154213606805006034982898458954741114552466124972270082026217754425231796800091090565760407884072466359745933161284766302933778686708950319152985127186321826845793767080905025193839393726015199318265196666574265166992871359744367405633091719204334945348405849245234946928901987194065569489036333164360267878704124662973654932258292622555311915493386650332959550586436120774438515598102113099734413013501310819955433989204524714443298966952217314801515945461226627221485602688189304268786410742588954859414527719293404844440141469349832784415193468263132965590431072323144768285409650213854954294329021626991249961519021707452197601660520014922608320338782410472951960001233646197144449753540373112839094268367151655354686301496396460925379526686711710220610292595172151919756513382223480231707356150779280577948534146341403371911778682640629359885733566410067147153148046571099872244094302977761707624155306772775093149281778407445596679354648761372435571690818259577652214923665988334090846571761991125087627790430286038486355527232614609538825869536294076080678908755266819895232827960744387879166611086722423484883791491377169208460359821934348282471459545900741293656395279482845176980285897869409036709692288791807028003466554945265821013591053693826970254360688596071855099909002149379566407460695968702257771808683904387674981387966359214129797631468663774309163033615089916356343257846168618926243218040223453674389735273025949755728985007198622295754969895616197691239861921664878325349042358331197578275138864812874980597069243815978217008878419505120845292737389399351410163270079417508703449488234985829705863175327384407964394950670210740874835639085166005337473499588096895192880599351903915639970839527857803255401731075995202239528963808835089536168188824896719341661390237172662682517377786122998482055383687108658501797043686425691608646495111750739237097469126417840594512104109257837184682230885753874716194015100673231802373122927168446004774639268212590595305187530937226214002933134654880500223683849760517238383508181982664440346962401015915123802432081227132185085749428542643743072063789045136377486783667714757960726010153689444277155650380478493778397064215312250962623081713928570709265230980536383833744499579840536195406045979480786105034383274512933980291015286675087915648091071786668479468157346711321427026130455775373793433746738436464707731968851644411293213889134932249968991339165943813688147688654452188330841682554102484462250665264793781406533048503633747715222756745011956876622615737684980899080866210294212661915335142058556486941931151427183391200536234583757067638894614928666200895402931603283617066287932005898578695172865535120789659934988899123408030013177908133593616678514443652978113645979467438780229021956495379334146628872553643038965296295435199647083137806575138814590395759113079412900827334874957141233641613537538884709024102747870678206632142695411989011000410830659105727978527249286890614338049801452942971058678901940643813140618310008291684309257502758006126576631364076529932958838767709112526126317937451805095173563616252253101820393140092309684065557600952471379191915532599203643507878556098634450995784846341500094698542643946563522308321932585372999127749543832679549553355849836568357779217310068177881132657348903138980693214352082636032642293661213303594936396394944513938539267554243873023987686650087700763369295852911846883912701702130646420998315911645957128414596555262370820847165471325740058561576091058845576088230698535752916707991164229956747593066731518852516564044502455171753704664351991684568792620242170991702922195609642659280595923817291839695894970129327481913147091971845129213814158821549993995335821110986211484458702269843530164252495952921406577444999079797747016015394054937278979848059276692066541356059031118904062718924386620495659645272465403016668740934474813075900233208489467595539550908708010836188566436544166619402054942279144262131844604491047037121115861523603658578057931178589965774258412672784883306431919396413553526782714207359555328485686123347963575905418785261195477399020232027713632971463068633657090874117969018467229747331951537806656165205696677525354564174195912799540827300026565995325375602042704131928097138072619472323269032835209415461749756172733760579944588429812769750550789231745735121066738344440861125074097109487748301604383563223077311030142970987826597268106165441581781408762567257304296814569884258463291873130398810465326057170496490939637624270677950428656650646284676185042446990930135917538377124068563565286564737864151782984903673831089621913496168198991686639702536777669178754409701733826868470412083907552222490607403281446916989967345077412482857391316534391776992189197856781584958995060087743670692478225836775391516417742534916534608323323924528982720075304365463742963744592613624865431684767077608044563586245804095323287634497513817246784933672591521864431768923829643557743010537975680178968636610553207888979831916205354675270467912023893757677395663406824242003960332783612936556678522841016939905089359851388005535818465027905576323661066705977289269502756322615449058217152103326027157749039851869517236276301812421770133145265519027814588392560456964061219371386495902951152762525195441151017488776734723663380904316271594094604547769334367097905123460764610206032516468869177297496867519683559194186718987151779545680573427422522840411821625463802644971318097064400073946228484169610474255162513116904752684855448628269748187102519209695251193913306681366106318123829756777043662728077135621077163198854829780043756425440506217933427660766360988531444258387554600919110059978813545394451620707394345772268408744014563699363168146042301367808242848328757006087910053361916499523349141696963297185160780368442004210740865304428395719490551656751757660039139338184384711173986165574301101465376219244917436933272694078331315372753344211172387148984307751083210956107399968796244396993354979370607034588980093207860971707943475796345188356870984754570930367748884953409361216889118280440392641946233974371069647021505974005673120202702329920630698657080383917289192646149422204803271535800812216862048968272379157982300259427928252795290286384647869161848136704100505249829051694848919253832184950524061174491860965902362392740980843422508348540806461581792056407564284280933950554280786983134461765866017437176873488719518753682459723289050408709038717093233121126069230337379290829145903543859253716853845125549404043001397118688188008941068510304168770389145918369010605621823682262461872033338278306650408163564839202229782100012732024552184470473194495331671454351537401495941445303598061522989150681827357728133186062408191545523843822451294379587149494388834809064378582456523455749014749470239317136876177955806665811274071717267451126731394112393454052641080919185150064134961986584468803953687962003646054773299155697747173986380124970043084507056286144857182639685848729264037858409951381952367411270540736858819934771857801947438965955986663488775607969380949597320984126960239963871812433505280904915617147357178779582990671157979562403035671013028882600959380497443589190114918712647373479110209644882211686447207610412184912689248935456052923350630152462431670962570422096653678456953762597129413487311472204205016204123918616659764661243413419039187447108942040882323030395156937006761195660330190745963510211970318565985448700445081527081898487654012813082740587347334205373535605959981637141528026748471698698224340216431809821388982021278210672146977139448126178757009404846669010295974618744893305470430171781783025041877481778971693622532249867423931134486289306777792708518241641217595347141048738595097254324735179585029310040274137304211215589263361360210060606006844182120217848294425738817561483904426693355720668111333995512151068670581412732722159797187979489728704595613133295886123693839874431559692340263664276571629284574006496141784493761056143893321831718582695207279089829497345154112385788327003738344706213539882874584425891050419189415216846928800688532155260071781384559005166996338955098699833182585596122439472025544179346356038447200694101137143362529852825927320164645713640360345382237859283131574605212130942398495175011337473369476232718927909171786806960359092812763306539776647020940027193916980537738167441048791350957589822797348620584284709477733956865719669381827764953295144056774619330661064137592511224197019725502281255700733821477660785062570746058667356151130934314307177736365138976844760273766287453199646498178161271307346746691368144392858122837761390480283311085115107467960806674304191789133994866922040908543015576961441902773207146175416148161628521329367597624152217991131675344823477495128874405296053548546115904272651459835992306233710460850094942204486179365343577926483180312097623698446447036829602747161082702042718745320988526765443807418706450795336464824508858974515951236843887964476489149419080791140272740245681495267408033629219313674264534220283049799230656007039063902311180106749186730201677087598254142140079127407882448751194925500715389783417463690363961045641092379771331296529310620258958812916306413278077591350628502307027701055948654876543892898542776033482981487380893957508627194371411947628651968587756328479991716779708442711213895096097009618293126552003405519240129114537547329913173771300092660546645541929254724693489808250177201984544105209158007790011164290747190028964318827037865754819030175974022588184587377291035759272394036317621084716755296448128448435049752808355671651486066455954170276697681784399647304588665660268036919846437514518676074381145336093082333086504525702606763836022653284806785080554280036261095586161722250241519132635443671760123512893286767627407847677361093197083019946917483928307885963368182623713472559728591486831446036871549234313365934367736093624477172162305683757484538756789110262846617936855887698244264499497345805550702094663914838317443093995106179416636818584954624948117414484389796505548180721043698334334698038063755232348269789432771125340565681497105765774418650684913081285524076300763698947940328378133130450545679832243696011709303047525039783417114947498172401206046932712714614257370843878242734913717888386825123879487734827040313853213739512451547068134132154718386696068034465704135257336821069856892275645802097490084768669390913291257696351494337593964301766400439486660403241546870853777181197822916782281729453906143519347165556781045583116974954021371600976831869942515382500981694196540381828121597472778419293436927013514848918623145159149149908761673318141222905491557353974444658997600235724986313766677808423049867322657880846218807452714185401206437365801694496744041468474803842876180424375211906739980387141325712944895184248982014841052171126628693532360742086746418495967953823790016205536118250494318324282016534213536852458862054853869885488826232828141910619555629656774897678494278783724039471252826014465540162757293501199494186145903027521479285932346015254181903216954268381147234807377876891179672076466655419669262348718772780062146432338806562743277185112761256938761417473455304383201817134681890694052875478923108579384550831468801516685595504202175788090904900742444122003264293266807684925014840993291450804530598268118216427283513668682786097318786107282933338589792646108250243522491009605265461513646307998904465637464787588766897265999043002282446832948558383912375921768089139049642837611175513316992913926858068941225316878667748442966775322722176524229263625540287650264380253021160421761380543116637192998097126816521222889769702065979072302888261899336879776131741777681161581074425313436901184930517293811687237958010047081586638870081245642952210532281667380077948400923721735005437708854893955446408781968353758355265349667991309508680116652547442607553462496768784042212231704294971999349618075726362470881792853056561522808019360470174720831715941024153649494896280450935461761000143422250934367117814312592324271131283790405702472920251868318349155810716429282078760330686869895216075047669275012446386307391786945793188363768418457623855340310508039214405577866542692997860667544542450069332305559855831888988367906016130563305602614465990341115668678081434395348820324976709731908042646106332065524000232019719260426201066995171246154661283650673515224892587211610559552020637823651952518179115072580555261542286204922085732622580671307930214750562832945114335007879605432841791087467598174643902757724027074515252315313596245449214998933514953484060494345285999757949197509243112307174149710398998571951801607698136483739079040495703024810949329767737137296417690455784779609276106741129603916171606123760387942881423663631027495894544484896432236764852060548880366356205168515040294795074003076004886255063740477949491836634476283974310846916809216453540048022401297743227651968788061932406392183937083947619165135148416095676846944772702559565077459496804860467880975464668209237768720830372196505473831695546887584745957204144243870988323528418947869559988665231922147732119672268066762394804298476195351388219974395082083907897035951021730017164897118682770194859960283210785789148768401906400614881776139481435126254507777702176410475570826892104689133874679120461165598699597069568977634791794921396353699695382495362755874110458152150178376233340863476668437018167115052429033223887664567326978239475113270726439788322382190009099947236446073263261445645916186554391665629021235692303949957795491047494965420421266700146568095501458572940644398334683573868223842728816846307358717464271238529845286689253996040589602153820599671591740090911611741787803656370134772762732981937168076192022396563976618073994759957709474827802963330936463169494779023068054742690806137336778761830139372700631289192008777262102070397256365243422712651419315245787271200263389479665596037956550579128313194551332909033449700166376304491668842979948293163423008244922047183197651814956823670545935519217183323857114937409122169437607430642804471447804992620925270866638500753527306845088162507992655478838074243860890988085915963648487821253842311455399142015291206604541201986907867931601236120108979925455491727500765503624273454182255046445100646451794918984620217851611177274535725104392897057626504041260413728985480194964112859200317772573734175312720001102739375868108012975867175493790567919719729520404373860383768174138738268678252269953529760545000667503071100782751590799313852144852036596831933643603228093474103645341025357788890296293056360165185703925911371248888673109764330091907872927074463998674021135518624498896256062103461563617683534343609962021774374221511421295379117070642636822905966636032523377099342903399220501228694865124540628710174543776860136163085663325527749244172329819226419004063196509420134321069525984535471962995983939255685298978073263287075619549251127894047912491227646928295031022622625539429638248991931320919738639527146710550425538898222107422049133008268656916686421544647383316970214411146398486817388464624282430051428857738208480676570899511355171150011398780267285371354275336375925900913024846002951289429021424272496739271559489817119908473025538818761154221351779697625465342759762647454550557026896501556123338159703764635442552881514171862832154117509748220305174533289093466720644663692547753117427750693830946575735592474531816711180743375241783449623369238738442783809454765943740490153318064976739238578543612276158808887726169476997883722089635365047306955876010438300688022672894874629092337714050450811440952138662127840128247727350314696208234177395019744887017128729130520379891342541156447307478962202962533314339116873803318240347611275845947175458686990336643758972385786168220302639274333087730955241803563686068302481057321106866406401662214430775624300069628799866105246797156648663333654241185018877675579245278339898397674763875042552553422757237036064367454853529709439320676095708469539124394640181724574191291988866408409357438314167575522657483088953110883794137813054501358371898439501498386695987847173187607685958275649680447682196366161321688199181143450635704763350971322481484638311567079990024479344880187190376743198669705287453031196143896022850241258706092730404102196035832865438081476099619309644920999964461770162223042374973990687314538089453792465091704604626077359017726547121704460917106228838819075575625776597769721533181635867872736512637594598744409757395843760141104660812203595571518372528649000521972205253223462799412305704180694986214785532417029024863262997424557752610370448029754123900556235949249030220734481568318847120970989010608763620082836262727155929488818421601748195987772678414574367727263924354338295597994142712757031780620534495053488992359043609109738216231844951454364771934462253182501566424883975883054946137188348147654792455757539017583048229395156612164391205202130059905052829760124359042646033353757854529150732388674901114286603792608958514235359700532919867812333495358606271859333074543155261645173529378536987570161654511858140527739336170218753530267520900754126970087113255815603550463879698569346481509299788844329777959833305178357467637640519320988631368926512803717302863100681696152672335941173501428532863538999490095417863162002331597137414905799295875230647250012325611542165959699005515665460550249029748303091943774316483087234094382372053535954216466935663748323684502792549381420475086941359427608727753043783998939573733861361481789535212915938145199635181005116686186666918278964611882070274364619042654207543025518196243809501868756807718504549514427646667694435965548309913179878977601356152604540091180486447453424998801783820420625741002762577531948458372798343127548683257703410986700082220475263072841237581289939410720538880745569628413526591956205466522652656571955529693288538621499747710462293872694992035582103102287800044630798699507729411959620080675034123125110796521751890530705940420168116001480363532258637397021924227277672403683178547397409027055000192404415569450306341126030811743150994068631325394864163654873625363918058120625300899854105678828972972274898259652023907611256051777364184060665018184540027513761353063978190884765969131902481440373516325206474495101430284983376582141450081653497426635098171000963939810294769578513040849669190989252180700087853767817580652487693529496134078652043440396524203783245037767376701569262602240804278063173587263363313310184226454525803565841568039100364142915596694924002628837518767577145719788844793799170159281296668216721909913840563618672171495568510356516162086079212785153023454531875380220362235681254912400764576777142405555361754608189843355613214353606076015996369208649195046056276834463982344665451371279216662533301553807132545167244961901505033578380390985132822685237403862335574807844606639960400522476340965017687148504707513160939298238935584992331014189096297202330573951632188054393292923055653330814486985017382520984519902321652306586644227231235577332387040792144301778474239421377034173401601332988357261110538356334658407561729635311345857563867657696418216868869340458635302857831671606820334559391310749547372158916744396040727161175309310920133386197787935538157136231147739689394440022196483008766339766046010330560584821862353025691144445298458289695989243638254722300620966847054705026231443066926171732683152119837043894690234623457175099365908039581858125729482879545416500056691666905604817273178273652633151797400444219278656520811563263678793755454887647633569106748994506526078930367175568687946783593701866422489531302516570309431101874162480977285439765284216180829832014263484556676831382489037979872437685653893614467423264010975611028403066597564983532578130409808603410518597548493719747033754294642301254713387944552740673422472887106064056210876950629954153712756142975063908313258633489301806126492169492205486844291688065946512859228322780887873556101225852628492915624999596990644397051704517183382772616170755052342661624178021126475445093759651052565526820500081138627461384134663907714323603030663788669741520779329522120687865387967864341410375180169391966040577424216926235090865269858158039169600089447206298759842325161808186663063440933956436342942270519434187055859465223715978981382914395804738672152063430243475431065590759562144070644741755382878399256668678189361924701410025623958783188275358859296316423120059734747905763095979077206905735637553238677839482934549421810242780869694047359369203141213229304257705914085283054083116770333391019713050658291226687971403505785717441613065877526287426261292531672905643768256920516756921276631573089016253927301955740865726315081420691069251261982653970755555995586868715775179726829556356254816939398036677428529954271306826618243136324434496818039166686608860624311597454966398991427055010435449689491998324450704446676627904250774967546744359776361237274727945301296170713272055986670451925390896741994973487022131333462943091271772549487583385571799266340055313040693267712979967850575879829598095280745347825515644948795768548460070103587226381260216204748706038784117518157750042468297963388214916450727311658079367111415740705929082782743414991272508132200357062759940361832756535469145286491042937077258091753779444039977542776221717780507295388624475181363383132505545496467782307459323063282105792397823682860983015411104803596011229188513097497840744780741633668469965873223080760191938060865435480428757593836427734775387713626542301415104450838004637620951346440274641535270198526099044495086153030277310904511245417418349958902688523728031909441090728175849025170596239253902512747086216483652200886162844132685212212782588234248852576746675498921762757865130058784834264741165177194205812266316666602247508684562832838117298139803783590211107239606168148061481577989280104932692712940305262431828214552472168694069693066670393433320401512464257600908454072093428725376008839751288496476266374632128018627364996099287218819598045405868144571741050470767328974552655569983070585555939868555713639517911785741714529448557604267477441577438483753268692106959607752024045826693721179748073881572118388447723122109398977984439524708160688369872871357587833037282979040842205250590115643214413509506753762518273197110653424688213620213290392537968333451251698781175608494568891724206411727557538528454009850291758339635144768617504871074700625249514558051811688906932838044541795966983023500134379720987073167152775423769681763852387604764086740419035396631170616951790130519242236594670755269553864629461623973856868088709869434618913417042644280983454075959708665964041410335057368387450685059386644451127887841457350114451696072905431941577364215063446733605214654225124998323868162476735727348846106798965546160953092043936476041200278762083459211380401120561557244929544665001710992769968965946114864864544885512405369004085398580034279426211376942794160849820964881295259262576102574955360407537551869351035843697865025064589084439007127343092795361894483857475056785020088761560149078747661498691723131495489936526002881632470045624634014397009230049846183979175282082112376817721946727034003559808761335953845632183680097771481963174700926556542734594345766373901040355553404170935793929235726201781299042317721365889911173842444199357050426442704591122267301550216787881842062669104823465048182110469423148746693064995724849559943688869414151626116856713036408937725272741593817845317090889408888047101366722734663336986960202797941335684758057183877088114227613003531364958501017348257783633041101409031542237705480136336984979973019728435801649906188881269749600659474706934588378735741376601614137251549005626214709868208106928699462958778927363768214154088011449665605398432517067804136708137415000640180831731209311784446509733826390795937682198521749725212124931020241142489937668899221819048191320944146118417908040448090923776912969964295108033932956876303143068239134678990495450279389282069267659744213502574597549636695916855313186146782947743991538142635773035973638120480104295273166754555782875166188787326256713845140462197182989227120654749795689522575670059504720356198541970829837361526713244121780122549818096028720643811827804126505194287922068815453001143910871017670743215905749684030990787794686025464169518286754562800629486415651436946127615506232806925119952867653136696666586255193543805595246808758890526017796217628316813735386306776143552970272822379647458157970561660939965576323339499677122752283879277084990668512237326638656530733350147279333810389525455072658642688288526616267338514830510062706844815876400120351975437559166177451931666863507079956694441852565015658751188249934462624476507997412669312749709342223921870720522426396425111044771131051075878619260722308549008295800260381506145696557396295908987657880387397035810295850719213402029996853487590347782186526772313696250952967305122119123432769764780071676633037562132938374129206644114612646343249168491993844554926476354537711141458628603128470371118292643356244878069929188585003355903598390014978621254021179514706225518827223112890215962497919150390404700809546162255218911153657001806953304270460052354389153530153007120379645595797834126334686030280995212072662131911087367925563870179640142834030613733062077830578572227498996947199080461480998420479287491896960004652207265352176089457983926089431676201508522377350543995791824925810891386921050631061285948788639719064214490715227812111046893800795550387170734261501257612070031696935798996958153146290142200958782974702959550058444037255371905233781706172978054340851104316661129114056939660905382325300485127618395610767557610061188780948335684287277264672856212457328140572830163243569772101630665917429253957024121036233033812020360522505211570777079857235984676396927760338906398614671974527670254913285084133064738146570880989825962271091168810775023214760675547132707829249711232331834415733829460711676976247388998834085286914594943201017795335257315292374092716119119245998235996073592662862651312308586068998802003111266018969436271749430077699017740898156481661650232585007985070922604363009685180420629527964473948286079022879357371981850652371162946972146743024027083912918746782670951653568887185532578186195989420256240966880441119177350871711796061499644466511851221227676890444631606241787708871818451085877686437348576672732395903832996601052581266798198963395972503920356779234912701852434650311956445656371356716027029428255041006434912516850629047594837758642531061620228924966998597236305104249813565102461724309669153564518699196609464128598967769972760234634585441459063635613791834469940232494835881895926286642964956642398549391367509170103438856870078862270789080262135849965028739317789527843811711432703224495691901307739568920611632734855299897173540866327680667322579530360154870869505530658618884134792283379530611402311546621094010494460364335836552858849834771637786431489542565327722724891947495535252447830289640655907894770899659938876285697305636917396770081885491347827251574771898492830098141705242138843029653990796565189702170725715516364717857216516542465928381093208570350468010931565663464584919838378496145555971541494648520344792983578682053305983550225724995363359773735080500731087951006254273826942288431388000095379923565856373249299596846950308079125292260956453746803260203769714849419709630645072691961798909594210661728680791501930177676390617889266054636975519963812832042203493788655630538578077000325442862314026690077459059818517755643754872408609832898910228030411680776544553516128161278471567332961381438759693744125701848358904256723687565796129091676320194729814144107654573774097289089297477837471731583602586606443809895942893317463483443235013438446763127915114905502557517977229577526335198435359123710070974257806795011113483180228973698168411363818389740514867099065429593272602194256823971369712639393261887364028665163537006415476964763117135786347687281648552601525054978123175384717386411428792933103645745887785693826670166085321130289720060071288732298581144906612037427716674732268735372499524948903015734784535035942067557194409542353941324872018390621416605470599033947513922196144503973858302663180485885639295971394061201959526634052197611724724784634567295195989750686412327991375247202619129695275024003349508203674412821601111345848295151309639308801719489900814582515723989311785218822542474183201786825643663241054686108107001244706249952117834314264028290471955710901659139745716932743684061451255503060300458236671822347070201463889114215607010376375983287557811365885944588543780035395554638037272549520694814504896012078747729696659975352088642445872431695456652584509616897628318969904595805923861195572539821176359805865232609652839922345911122487898129684639060449542638641873824156949315142942275857104521594257577373633917620029861866402093220430236623248857487048172516407288376599788475448912998119416010888539584842674405556201147913386395529268089456768629480138695266156349639811237508881111230813220413975039351236911566720196585004562853106075049632697037550423736571850510312471686022538556328263222382388019723747213372882360644134128584990111108620481087941545657365816615266486935274057423579387892506518440527780846327567794968745814691069615164810758625023227415867169496678228629222297199756202006964465403096959408296254644469260151234999571957701053068028316565533034797125392440314636804151765004698481514684343612523752118512835591959184950465076886591775409582831345809504467186629325903077872018713486534046046615321570102189841823378772239258645103149280753352957631209821276511030104188057026570922912362766233157503086858975545626472045618414825649491397411483705210858361473582887834451542051689567074970885860942519165677290539433353923090069647898455030450525992085855459800719446645634606890482677317823070294239924555742441537269982988408151010702654369134616350244315439341486148955677759572254593560184844107176653174059022783056497116751312675042115634736141384795515881573371666758366438015648435248992040493724294761948798990167311589906747446221292744203439943509984225124978788218776392337784049764699016089107075006860764602172206980669214959762383021284466610848651021217952095369243304506637899303804777710822291187274846651604939517838415512253992069666306435827199519282424142901736878540785980203849494763471451512779618459326550467411327256252306768966565875326100938893290242887006122162357636300931333041303240879149177176629727193695020994132456767093380679725587482561340415499627159782867412948001587153770170485488731195113667719404925572179625773804735222252081980285779032489487385761011775418982296737277199437693343684276039059326972478616107032254436972612966348056060693055506590608307090282784183617781976369782397530013598996315170925974665869451837135875071023698411941862941689481677138318360284320192581959817127619563793586982178495125643118341828620497523292010081339397855185069302777027856450247900182328049754471368696716889454590369334814553597516973892213329132685695237046098512849003638836666183529139474069563695003797693465650075427160130734944002093557145600177765774082400511385788285970205463995143547732639033156321220331925487870412753631450920167889640403818137064138250474824753357837577037361369527319045405354553888164120213316833593631228865999554891548644733358886917451384481129063602370972121820256741835249179310251377012643101309679099480385156460126421142622984127898311406239333855787820433240124311612045635296512848138939289998864419845662218704596521441929895126072046317714442102713833108178316058874982971799638993090797253915222619244771790188556186430784035160359032453243397577815398953517932581476127583422049926594919759034267224711430805855357509619624473773629262839595659094054961677955641272584115595670142678525991427974590549817074130524277691471535529767946125819812935422928622287953124725444898808448907349142278004855203558030968823653916166001403848450694585888866267255959935839500459274041310995999836960858168734602122021974812817977753917316673516053429782601370281738436217945444684963904938360037481623143478933102382029349466220964926516939734926091821831755344284964794861170367005816033948899625272832253152376733362917031039047912836409277945650424253543586558546611898167831253810170649743323647931714715239287707681571204668089541997429443800552571910215446427006560962145146302700415245966260695021303422985387333041227741906977506088314927329959669443359988348040577622951386815940791153410328012745837473436574215245730743411892536530609789868685833138508647599854728456716481513170115990794685720968273097021189174126909677774929523741831883856248619963027318063516162043400599548041647453791420218364949131219202321008686986229197623620618971889664085898081045437800547268655699630821770666389976916812560220159507024982683559556706843527257766307774183899558178378961902964694368019993809418019002476633293091914983996542787894199151951009738866609515243496361743023866387320021968666654487138396232171131843003586327765690811083645589245206456159707353030115067042380388067746410193976410929044382330667973445290276105524324046798049916822481944300628685627009216143519074590964145983915278917996744932190150323528472931952320488436804288086638912954515714384216640753312997740470898324996892482824980044618461605908903212627347287668454135576527858038278217428421280034779538412919069208835455860729331172858416628219686873448136305892011760675962487464466738491404440618327474122255897129493714428646544541976128898906917331475531201814995103536555743074143882456885591112159392206218821548188835334636163167451053623823660157316276264616570002490261294745862795213471603726412663478179840374166527059917406593972986991086876974585545227604872334581048858459115665520338377629231363453875240807246587653342672255916897561574180094268928805735558929271070795056808009510879467583355666583023897411556621289416020001185602148671710267168465112863860552737319428572300259184439449382444302753298529556197512680488488402237464398972790272050440757205450679888816527589158216706738134792952322609176262141934326216769557821183440586829467895128288076950360374087103440218131055838052149321297387695262399000391628893855998381194842455023450891154747953135391461992031282681792650098902237891197691381522979564010114165279811120956606797024698085626472058165195532147227802140606557123594571827132973985521637846063157578423600015414347971451636796297128518221536061490547382524931539899465362106279417383839417946283571850401461851230716816178893526522823612439452725426407858691405508436209597414619234509980559584176698379817269799829619519866481620996569404567037795424334019079757291446995671307765691170357796072872105479525545819691438954274905225132838663220592916527343092046869440384300790715251970782049898968319963184271051053167208426406113968593722568467784275175144068191263922392947681472145737276527786007981606851402493669262299562113158317944384308992113243819678504149051490502937163069601381348375404692892359726830856685803612867887391396556418200889138339592865239231609750584909186604164669846596465484065142273145009587014117193534862467136024595629266327115452159137445656806521558820924104948090930222843796373872731136123556138864334067797224540779647842114841070574590453741875944620571815808492407051557882829552389157171025122156087340314613604623751405088783420225921123271328117737317817434108719881893854015324857715393195146298650165526586471797236138899063996191125989728747102093093684763623197652865250581710543068698608105108217208924546285118625865510019428923957074005318586964413560907638783694341557049975115604403482260348377641043172448352497735279644756882273429331592524961207819240229241388363256776644988982810531691124323633796184267465502009937979377468115196261009038813668978801000348521899192501007056929281878533962619209774783249052839377567644880044280105149889224145535986064172811550081917317275163681982363972408379097763266701931705384190420485189803727544851699106598141600847877562913641660018171146393835426236758072199455165970238996295041815244221673895263084631443543017473937485907020583516201388211107868084701489270897116885879757423685718771716764540624223185365160132489329252528715831886968902929973639166376829958403441687951200059341621653452757239816279842186372490499328137581517980236844508835850305138483333108344089418743232569670004089869094993972273955074880024636967221302940745506575434007780224661614395884548497896728650714488087810152382584681635197776835760891521203700274652180320502704657068760887762095936873862988234643991532739151960143045037489453849129616985357981135331568521796942223594149108945896188273253647159822431366451513028905102242337311516852976402028610086434958916039623092919493504969001384560470981841954898802690532671988793772805672154136908980131829740949253845962903356531165239606950207658439507198767298466007839700328016270472294287442552040206489935252283941298853909417338539428862468829309359886197434550977426738907667234933138949910114815222548939874677094341671931179240000716948021122533662437871368173818017647740692148467086666373092199811988890452731574811466929746163495505057187675725953993614283729981538882915645287982999129964242779613897874702088448465617004726485095907890282100082063140587949891366709276387732953299769490425095458451810995717157788337391748051002549687860219130492347143045246724879955327660794154270849565633333613511061497004125489313729865409008303157904326481262759673091977915829318139978150579547424369538265768701405250187188805829859628364338454079199688603213553725599067710415963460877057008716694374205761074715829071766262481993054274038847981462436329282304649504997595349301431219792709185364435432909852754151005223814059086507334990110353303009032438469621807184655040030472665982295588446590912877322450569112998306291932246527135209904213047249666777389205630870710267877966029506914850294531522374646555518737550001449973135531984378885923350315582877378824715040309483473657232476863662883925988490486065547817980606017725262262428721640356601822147769712035574462555168920631292497388089007369736699293410599583491049265557736797134788643301589673870726957633951788442503421189400342027934100099110451935571916901349052213755071770831525988118067065825704934103256374215614686034149075167232431342088535203419571740393432306701557125835847566887813335085408861656233945003786298203954404397941565685343131862218120375345915553858808589443247452151866665687281322738066464220232087748172838076658688835943289711724776191093127801059355681011786733162642916291196324938014805746309144598159659929630466247850295383882321217838658710417396876259346796570445263697193101068636782246272823473529483203213529110452505593114895137905803460996737726826525148084386632181712306766362907915414392275681745230096209311156187918621908752172070554532912004362144152322843699021609731857720665834247480685742654401740469879076597028970823141605876666264342148415303632465792136600197350569573922985053860908575648840986875725743389462485311470980468974938295769441086318419717339185245196170573263712619421063136605583554279135459886997220008997231267016959875260656084471351484296708475041328541735799272141337907767970244476010432919282252991843780325046921240547724608684128601529234744375310976191881073613096215698216321495891670804498925956524003712513555007877895204925379876141685537177706874339493952171797692956356288126979946476549979384908201397649677666381448542100250013232514758044126051772488213754346123550842255201470548233905896761877624655763255919750061354450393031525861602029732265357251331552244158966221769511902836155990594120735173869619527118479639169833056567238018261307435653647281388084826708572448834874307018523595640762925342467076603028799425024912024995366522821643731888392232990265297873049720831134428032368042183406873876509604105484718305276698837126028554263433181498060311214321125364178790530553624346297704597473245460704018794682930227221043888984620160731699900657714323355116773927293992161361365350078523361327201241719868442653870906280347995823330827633392662283986658004788457773495716110432872329555815315147722202050349593048296506612350300588790419875733183263069407365761193098733660334187910006869224277802145971068997353877914651840958325207422212887844093007633829986517214327453982777370768501379499705667930172505868684234240785757739071738711854589395018330308759565606406687423648307773024561727815341949673309134712459673832327566475351809831887898379796096901981464573871868044177773694097608277364100743204283883755766244796188587199107716949112359286602379772429820828184372305821787964336983428657336050593832412689505827981248874329893797250036123973171424997885354376840997621636818296295109364513305142294362024868699251099446514483459008784752439828589171738489200832025510560550562580198010388588266754047179455933381660586915504227248372464033161992346906040029912108622422751714918195649578305103752524419116333274442657103683012703030527657366309054415784409441216222112936979069561855435907261929431411247126336841120787055163712560962667827154599196009319741904157913971979746042548199490836184429488573306729253601479617589431848735912770581565717865646107797555813623079853125631523198230162497032927287038408503847172351981825487551934217778718506256303635225824777503146779386349343555290554174249659378935115588809851969416890560748100498285273023244992206464573423061062707933724476808253095903530623567342425924168612907993816006576358955411158205110606023191283611634530507728854943213458913692987464592687966245614233145895850629563916364035298325900426935004930982477400861369589376912334199851097056065825605828770823104200634258619643423679687309950943552493434873677379083038506873460755798464752980387458923333170046348666659382638525740314721783413223852231960426701022565330084380574674660711834482919021482785738840610832239041871506050216096968384429923257908248091433357427873595322490902399730625018581852793423507169378537404395417741279863995953622780079732274338879952441427818335152582008640202366947614298172475355380918622540192568140242631911428642322563556835917868290936572437467473894210701856274340401160788858164870630960990396614370551309115717677657268057984873153134413736989021906144925449861956989753443869765398182963740790076901004908881373570805467566545939714238585761125358930288770716350674442405410814599858723444641715962158396808495276170323658288291767175155665762712594227338180059375430708801272557055679143179077710786805562446356214720907062051827677479110161707215845851073832727226034898622171327845876835904387436107323103226250703281920199180057981289196830265779382680847520449140485446013904810983429637397628525020418739804055073625265510016757668341929953844617960147655902707978859483140234965616114730052454258789116859585217879855374089465319494399566753589176905342104930536005413210492343782461167252599927060370796027380821773311333370791498689555023510918084708319525030119152174463332290121119018065297324684720776759435610425232723566730060904759390438296041949063959229434851991389573655620806446013963742507742052136766753824991411788058398120596246921083910428333371945747571403312009858822728083349591014555269129222998703100473947097556316168497200845851139868721415014818493566606983575154941429127005176568505856157090350675717689751189234098527311838489083264225235777181793287045067048289151837329301750925984483375675255031837228754916744171109141940838381965319830232325195447338330367994220906734806279726904511720314439886533244325387819492645249976090424329572872366283721475202578552894260181963581818306600641824649641636700728048977152261781153269912872792831505359893893008539370776983990243357659312297871256824960398079058174556414705178422296405380504166083976268176129199043847358897258103453624693835957162919023975902385859853124435424607724159759949863126600261891584968510634440297254395010370258294931731313562304063854481188418938284892065210882631291262236383929240348636756996019675731498196447189918994367742370333016103098367418558364279881593984232643870327671413380570430102024473327464467435786467850660360332309926712656892634096207552544341917939112805019121345407092553246199244535115934403546695177746749509888979556343775784981715623291435851268537684396631501660994810832936848055368788299291921095966655611168876279616028052708782568932746105422687646599759381697378870485698936451267798822337857658033395367574432746455062020148966764372363344052008686704614456881070860585958208835762823546245020557249609476696475110040694521484156347926211874989427242036913410608824380924493195245869631709333032916588224836053782489904993538228824523468006421753909012081084880902084489751065373933929741100990093699638957421392003451818426932034935503873562084872201708617213758366691694586727922319852455753957878620214089623438161000144908275290123885643469482194868633677358928200934957273510255142616970582612837194088619879710061284498679268162680525328662919473849739809051363024973909065313283192773725905860909377377267870231393832560159301305195213789371621889534843426730831008806938897650391341796867546316268223082610311397322348271237967696843188338152074994977400608408359116512696284931233769440686926875265676015833796279120520904406660885666040361288085248202855230347767112958793506591597879335624886519931532567706831998896600045404921375729970995738568595274370635721440857876124504489898693208320034946368602757253710679757807900326223596574214484507800070273562641637283242200542253096389253361234575037459074493540105552515169744025340806627362984864679321798465740446727912671701890672130507355766892435245207432399214197083690309808176952361147682864823497937187412823822190432452481382726752891418469631641739823902535824987219043578444963842499612415614641005201399823628962735615028456524845051293098741126530104629722901586708801649873661611790723282433541516605182933825483881104645652159191216978354180289405558181482565482308752689598996766135730976509736180006136107056146858363500446862275468874412125259151326718903210727855375463766244669387512000333366831789398397784201628753098312676844322892451950371044135026504137033811032052519364696958034674594839866921476566145296926060296517957874952158875896434967099005968191386213923068432739588771923860590758461711841796103189962423214763987704769976611651298590914421659756664922149722377494942485991551385876341740963044892442525409084761765665262864076579739607339982022536371696729302973132425246144702225645195629746031365237968886330018889759435362659096767070214933606718126563906052210439632100644310986462094166397664746219841792658687939792062735127354046782572169975662933910878513735729167027541697995073767935817304938687995473033893635185856687763898518223079950182623251819126835206355817941864364282981961793165112641413916384540033046248199058937081537213006187860800722282227527929661404445684081608227389894709343509294223365252126212770538318349538709079620486250438700397085006468357845261454891564558698290898544701824077027337030727101872043327558627206071615302085406412272793001595771072560726471316884487619552901241028974680964159561857509290551295538887379137026785057249416107350788563397142805897689430974504643264929713538151989200938934763280019760264327669693664941802434530200762303783017212524962656055093575259662244091447030298671615065012177202096029761214099431609483155545480063812975659390136964399693869013599757587268756647126661631310604911546296559476432921788456484990563537975582661715033088517567953429765245316807300849147133283876681599620973308332604781392333066755015546238329484530903474043692935852452120162912953861922756537614023799791223450508593333748010878361272588035058594912960072230704429157320681423284012819262740477310325582197162817873404746700707294617069236585835604266215717805869469967869529075970062109173065748336011852309270034275041252087859818294508406817266979233315066734451628320360158390069538493275903426744315685540444701539997180852407510755077199537268027371326256650609831811690465279416452438159976040956988326529959310697886386445052402905098650587384456214196509790690110248246522595894835359042367433968772196368755933686017617765830885472003454608882340584808392125049834692406946878105708014911036572505600536792855060877711453881153865212126112868537845358122576318507768948918694179328700103526545454293361635598770228692414173322690126966245283947013965815280610174661862527588995705211126656148002966958249164621924013403060410513097634732541260671592068221057345491477087831932070599394225735201469488736782839609789662091281087229743428509094950318061418972438717409878802290503802861231821868722170311077436783143296366622389523130762470960944433965355174156064984006476202929421321252960505594924404022484992313940804066811641592796956484992296026993401133634134145955950141036561527105354583290221900368433418252434333473795779604453289812488284388591137654378738633671927775986386697594403871972765887860566137534996295518684523585139673558354162963178947746304802132736406940597669850305305066126473411661802823508755887075285310946862351953423784076310218151396436656048257241972710408194514747917825562596772800578646566909933777261181395717671091854409448824545078408492319610440506021876201377534781844785641668069890154989523944331058186337853543364517319932068274940716230945038201276602196119947560582401280925776657072218476266812946439881884410999889411069157099218273387298994593417577098479297147363656119485248530852173775819044059693344200556933073798341967656748566599570582687154244001934155444849099379540789032298796634623622444216406798813435227944894013537224005794614405028577627756241641029503731476794788611579942299270189207880739490682559806693361060467187094783909855719129631324628782387831829506064236161177524589938783825962004997026169277841428059481103781236573408644356997614837655260636531944863824960902992891200001269448818968371358124629624948210289495814286141239561329673672638139421545666592707036421485091006007855564577157209645206420841823186772570492351270193132146869461543253039262394776332056900810488045707980178991440747970059798337810672616895003168011654462961479300520432251057647865040824976612850347022226391550656289926583979319244558464821956998757476294354046618216547827106116515913019776315793948996417621567978411143957355370375375765277623060646595797649137103105520129267708495551941597024815751875785196301919232676988910382913680004157214478779457241320346725854017517149662691376660997596629127406435655789409098377092631171434109836492935094361333797017493699757033541030918776173946877581932934609291668479432898253728615160929035641638055638657490626161768902383719875140896700774260272425619969107694638740661782659699799102245593776141154640394592766486184116762447668710306922483056818821912306549856584904723567101589795756935019076500968593580702314097828208662214580161245103662165742104680260162586392384526750958096320931600323351186307395346876142937165812152666933786532094387515287475805907539243443397089929235444594314257930527809514178486406911484143115214967788567055823558105598438326111750784639865238443286263637169798611632987494703231688342510712570437765791521229231070194749365368119608745592559512403449253894986713069588931634664247969733127402814521613726220319450052070667594963700175052835701200384533379070707903299823543412722151654955828971009783761544931232343909130751986198726841839283427721327704967944211166175945296250638766605007723568980512216940496157912958448035330797990408320590043541478219411157960098841789022392609838008875365328504561526902474283927806220698024710028790957545883248527148698574330980458223757416351328889577782228381426875825464873553457893419017458295605774068552152304168137541126820358043080831478289244951581482757276316664231198440004686559776159596855371221812691631339111795452587679467257027730424496907375515725707322817089805515905270030487290356933863306876703161782149839566605795908527510363133027706536774139546248802454874472903604164706537804495632276199317250651668089154012973599164817741384293232445308137376787247141915518363127103443578355151625069365116580639656410436058479547323504616316589323697245455561084227449643458711901355376487842860908021681319731754470106663521548371087997933722709484675646686438182129939878077211773367589437135564777065278560590969902430648017059688957802738137842635050534766922100772683368847918413609744593965069441083002567292555057986016196406909180399484854940235446149234021608536711140702048175501387095048355830135230997119073069133227188622434414032824708206730052763144171313600658652230427487802334235775494096898645030984513680751042757409101262457205070643074615399235321945372719533729763418589005683947485025938544104796091659763712487055432795740569673062010276913825498951500465762773244222145578260394802802265276691357289363277487571075810140933136612450643165010206808785720000774569898266365528879799504001274200499106114775158392722179602540700895545596534279633309072219715189596058626315946671696193945329951642900050215686779364210376023163813786786510840388830589585864221703021746291568164869074887966392474244968812480070318822021933216414341563257794513937140877640281494798387309868045250262931326609549863506663420901849787138846387723971327416719193097176082411090179792136229487463544392350454050510267166816773877214832076709596896907723996341595499661911248893294794523658924303042280656865302540037993176973243178556490807435263811037801320290023345140362967366215897474478864111491644816698119343333079899605805983200319310935263004005097820701471017505066149672173803875544056140915194832056446423747084384918321876504132540405562562050831684936951347272854330676992762733512174183617511662655918192396508375825854671712975626842297256381266735469120913349280811217896111608060945998016949378571297721001743441213983394249609077430088252447726451739550790920799781546067708631707317843355058591012442838093834443410462385216875254933667972501213612716312107021170280130506418051573106440910655848408107948211840489180574140912665332985368061595605085252568964157409720990705697861686296488706994477410126775831257502642039002875237492063081128285602466782170894509869479559124890792949567425485447951336857831874752695114536736532839298681271709567452171348020763835005637476721477858281751457836616395426701805973062529431429701029893360679131211013908054217788055827123617123207480358471986011185970272913567681797717825298569475632438280927165832591253989076563337456295598824023802585842364943698981481013774437934703717122840972341922400384207691695931994997088732633371680160505754378483726625916440870181309765794570799024560660655297548424967458949043500435076489698819686386816893135556941028174179427834890576327500367722522503319695411486785965255503398293537248975627152447179683337570593626286582630199287782419230667631388832352270802417011199788988826361308859737397078441604543939304494232581666628478462795292338303912987069091585774496845868251471057885203400343836646839734801174639735054415262120037327554668887002377349965968848326431322586451746379541876879015404038909293555944346318330791217417086766760771711551845759833117774498301948903553304155908369850289191563501609563803259933285007245101124879714828380905160514691159949019084142458630623666763277405877130373273388131637647491808572121973777084287114304828052962755140636802428644360124445395779773185223113678742657640127404672382569978236738547650976962684213946239139833692225981045019502646120630203476766084556933616103346634388319598817565748831297214658190271948327287432487848036213339927451834063393349254496684863222410014202848016002800024348960937715582054454331355299717112682911434377078675402261739011383869023698233770919922553401352386934109271875011661625666405473290330725689965605374995711622034857909816647245138440588369924671205543295382094192359616215561847757598587935537845932456419508655992963043538241326563167499533345354613159852846028081310460065089240311065213483718978507909603173774637473263394082735015911130157509016989676012184842483405935077558947419166342725079566008884300799364367406931368914348007590733710080695034054074499362862125343558101483876117156846882213522711345213405110662702773140351609288561677280070291855367657888673212728381791142880038159527875927380920263195866369180906640069704808092544682988293313851106144180552499851189134568165009785091152919728201163277357293644689514678343722674896166534628871350274770560302647792414115056664748779783161899865976042335622081769475373246550299064730741986797414936764385021418342559024576207516834900783891315956651702378973472337808675992114625216150350278876091663098818758410482358462571407618376346178007984234875246307787211559763460597406626281632381569366303761216869569217439134286685572147846737493632150876045688278405791263744114458714264192962841712181163189806522073044323490292954037824237714104513939077133266916165603731994971887851607467564388572483437262406499926208297570426724977495520566371549933526416307486435596508185518806160985058112469067536224256365652265333409298751809051489393888530520414719037250209461953060592701492459655567851670093897543356532462044281459653224932150469980897688098696227185503471703314313794449270648242608872430780812596851945963696131625125395266607673549687049425764972527587618617242351051525219939435363138368645212897564833521444044905753533593485831071513252915082595533645669205636999640633188768187700074910921890366852497627143401441563909993810961546648807766447924704112347441241614327072143040768591143947864730894828307912638721721354838290410167672372490736526798298840405869710496645271881803911974980850216309661150036117891519719409459843337832218028093101932745972302165523262677565118497627674061203126794060505113408848362011569043375003184941635227701754651594609316258476193088446310060882313802953929119847967272071350354630610068006777351182679494715278746586012275835050981292905130868944389885298132947094364912650455556192860996707034584374436539155867023647082913826108084054613928639261450095056804092889630916049806231026774042602249369888385296396651462434756195718459404451588203942484278339710151913430334917661461840067358861074956460397651163416330719405172831400244495818859634008808363507208987267932584902740464251967034146181080846542945397964475339343678426675065187026137074411727344357202436681315962879678303534449488052415369377168381086616385977970035224819173795137323004345941100781887472187002834710109501677340436521790122294873392327814691947065519509437053260609675523604952935563214404890889212800478717437433598023788705302811641658106304230927185254171038241342031832060476661373020493285883849577019437581768613543978376652245269779143871520705626747436754452342962206873377067795288004365788912142326396103915942886309050101871499934060449817996729516897778355272122896612562907304924305394160895961706321123114358820326872124384885096609627817166123006679366924954601226436026164500257362802565468354284185069001317647515437613556296612794387838870966017928038915967606334068469289004477233295321356236329794744642086345788083015423402323279948152597766345304211967239460674451029527016487218977196128754064783726275817598668105613318367955778800554101441436140431070351447220464029698120030748253506985177920824727634571111927581480825305426745179154327884561602921027728741515260465520187055495440723113991889268245731174803946913360093745446267495288400050379159853260430393123079624172395960314543709442906728788063142181320775174785804609386068405773741703899299324632780870852559487044170581660159654122240747710800508969307754833111359668064106860723517971640501252212181010623086855260108697758962181143158613398674443671318992106323867009630327578659037315363864258496708341465274486468402811141114751280852391392248132182308067931880516610377279002454043369985703199142935000618363393651268388173493594732429048674877968929744664783680372754830805163256437407249520372989391586008224238207162336786431394684104096741125460738580345906153309751474252796660836393484553079655635471466631152590055599552457597198572617683307860558170395947764628227299117244360025461185409741284378012374971566444253924562567711526608833076201190141013640027024183871864688085839315529643394530144393737391400993533437468422515483565491846988901763220656251159946865415619822140043197869067576272244154004062304448219514149783128121421081534915900565637476691555673941097828828820743585872112915364273815933549722509308604829052393503878921988581018710727823662530364386702908907525208450530851638255519261427400154895091888795191892459240026861624739203464740990269055130421190195945326224865910991725176820704984277661089504827676278591857403041103906195870134122365171085722679184623565097095176416415809477146614499724499189519837531453925865096798214082647516443954608083180883931794490102663909941615041599772785668243588703680140432514618110996807385627581574330647727243263755848801588092261213593301842202752803456526273985228528577672764419074877819684146984584288083159759956120234735652664438939271310249288361319598307682935095247041513665925819998171144442309359014989555324673977352590667846077172499839569097586597932900850030996395938534650831710161272420277145666905345729989035824620672328748992870974532346421117664619152856262706083161685161251786330954233484849860395852171185077600608326244072773393179293607152907577826857483329335610903591861140631254998238562521499703741953289620205719448269375062456745410971451923611244376483312772288890929064509299176547566948814487810057863204807947323631720067721094316362314559005456333956489461384259338857275635398732465859254652122682494566278154015560911423923036316852283195780041503142147941728625430400302369292230055681694042281151593296073161438429843719326927605509277727454410207165414167328367292626200837533112881444284573648214710851685446159262696349872606261468797182782965795962731213568124788155195765420186311953520439230006389666845051844327801510800192412817513950878957837428252082236684872812452878120670418471367975949966531115529371304290848212209164450526651351910691839355646662582639044134149016014088601158213067496968450854020878408058543221477985337122993478667387980204052471385621334869193937900393243950004648051005722139686558892437410189669566171313497126353094500122269322634073478461108047812332738500417293771019768259921142673487901299774766937422116336326242842619022793981215241037066925007512389771132330511855046677371779447611115599697171599695333921726879572241067988699024071060381884391856190878390875747603634047924981160020188594030868486317390001413765205391898566648429049223075669894277327030447991151347181718104507248668147971656324865643743043510238212726578052652442176576395670179996933374275224395698735588959273681541412079072637154269783479151868970160232303175883897730895366608648671813482306959165308582328156716409728080498578629374202517770157413132789087896218794510897171105087681176819315774606318780752855554970651977502440759489609796104990112069653184213297143473659590889967777861260661387359150025157573382693319580703635341013156300805051369141506821541706143227134555082239200158578514134073013597006354600475448865204597536016297165732124788192966677039276646798272379430483369903536342392344162279810893040969716851962719867058831945831301662153809779066375528711527508094698266912276383507888491830057654817037896695273900354612625859749337855383556675841319394568015930899336575713218184957117366733744125344991206348419955041010685336775409160101918257209983600382353860655223936625284194120843615655263631208693368474482115557045667483826717281438065302645062583520038226723250257416190617007510080107340020917659562248513690912067297495215012594761681175171888358894324315014525335356721444753485704881090403982356642435711939861304865174633661197365979806627277456797051714497110311260847075003762000269436295721218355786167313274432186168369774400565213334696186385940717328204520133546682690376963157793476027078333706103387994984744539850004983925927451703810802725375150585723029882725687794239789422284572365222633851446248197807919835825523434995843739446243692823006065178476093209731383232859685416759269076135315345494262082956072277894709026660009686524990744783062602511350889732770102065022956642935037761852672672154739579861450403375867285810710745609542493164656147762485673355925474087242165614710128562143660170553722082452277738047875800963151295450730605342180824439981098456266509509802441034441001085527223182630305529279054882326663617372881217261156891133142352343520541004082865094909128668479274502842007980363292285335048144310702618166501297691641103178560729607654673469744483491889766406690691463952719364298461428575690434538767042181009177060609709018533350954375385512849027823775115741665979420516148543276081237658152606235148497647240861374724173175151358644779659670487587781372259401991665515935224120142254901423230910716699153163137958755104304115838145552967788805757814159498896967919382504092789447189105712945778647731696445697500834463332503964271758476957808032488794325975971428740988928238614189418986053361973196157898321764102166835468207261018937099277701783946501936928580700627886491225798244363620798958129340382770646133802435110234018517058620355422220232263346729652624490467241903325994611141121962453129809926857164307565728721132851880827814732308861507865388380823418405520923253709134073417890686922634177166727861466690869366247675917370012098949412868835581148409716829033613428993322742117587750242463295471902436896665973241364473948176578126993981565342306238373617358223563806951564891188271661375702532192902483564165251318373739950687563629093288095334825806679284826212467628085279799496906076353411859703665350415849180007372002928353199989553733610833700854634604005729553569641195790282908333657079888166238117006269226410875868680263353793348248521939975250843727236238762116932457173987063144258485525192251233941028194390619335046227298835897546437504114082301601699677262449957167391280880240359117174980171123658666309657826264551515744535458083498405647614252608896262546853166841522629191505322652781026396692788309672946833161587268536357593682395973305134001779522816352530018138664231849445332288550699609981432928726229314352393618888628014053649151956945333605704333126376119202532125765158193777003583516957770937229756540702644616638112469382115150102968838550623872057475756156549581015208334854720046686123467948403700514514503215236275915634349810565246885833127032330838068052722802315502476312946853235155859464120966638278565036500694363396861893158123608419449578873054371913018945967640873841167164770563256482970856748720230368479243960555994229721572833784322957352833834550112224521143605854900159628977632724049279268737429889665656078942676688077269605340519835617062752737523992684205596288177747696840629288883248006490495296696178561290326917400556211017477132859748062232190866450489058345635202509046409333804148803666617980159773049305806273709332413750985019660928647936048327516223757466795724818858289018342827477410619608000353794857780752003978487991943243749443525846363710258766779727829931366928891434802308702128220419701648585391884723444515835466622292558192524163426220358448388035246295578872135042293660180746113762371140467660873610222254997960103840540428633090420608828406990623300256482442588143819710950665149291888501318838700157113054100907090656951082004624716016160744641883356264330716469583038092403031179780088590614815715257937080798513716675253422600092331742114154297394998206078903205001778456127712698079298221548867057023884839890255437242480313544530069460160529588675565250991909362900194886240920248390541514252178302076719840626243541004137983742507299840903304990709435474493696054073298059909198679074773117710031090250628501546932015919317853389097190373010751866786551250504878104566773212314423200172054364184649312871761595686297109179396544990163355846183578582476358065713769585434578114251307032830400469929485441057786276747431008060394019222899462368610285073200554780106988208662315922799569333049587913062880339256564113201568516960790817298540506448310619297361832117515635637700788416435845189250728227126298896657858113054346635274561397271216601038354153624003640389353483187286168189192497980587939815549169519623441948653845820298228128408324635222341306431568766878769722087400830610277530102695062005334667920211691279211609697453627922794107046549751056940184732746423669861698048708756999847726694748964869666574039120853630240829890676064349159433298504715118430834423619029881610399589214998162186357133148664323525973957196007531937291156710546469028688003798087990010791134285042704771270295502735437145948966668578069037322223960391072328756244411659911779373763982436199893589471665623711816356334557836204519843120633084734219350466912280695726311254636770979984682169221269446681266792557802044454060325883499128394990312133320815660189029728463489818219828387315552552015990195298470649136722484987870051962218479184395208669951986590603884767498899545636446782382969192424015564559535515605169207310607786012305578249602803503375545140635731233826134333102178417208318137277125931735890620951440533250081160536032380013983618957149092829808758075732202837462412675219686288613331077030625914230198159547105735731339746073782705220597686739088059742932528714065946087636046048582815027494352243375892648157349980880495228387891349306697323221361126001808534680323710790679724881649749973745007372832223177372223813332534899637738506663422216937842761633132427228864194050117447047632365251747624357951408795077786454916317537007727169307574992437124837452381937640918235794552118208126681331331913884379489103412631642008094665609321329468722757020086305019943201069809070592485987510949834600994861952698446958121458294676142616738553561149382934793570128498241802756607197668829418771902343736126052279089462721725108177645776094298131961551732489501679804651875145073633521368632515867145527008110191663246870022633426527952379776962858046604242495057572367856569565796433940812583444384612150992538724573060779264820923719011629971162371246470587977762035655934103496749847591706323525308722229762496980020783700401342306333563951542284272220243613057526615394776283899474354672111673079592562106890954268788597493665748970728493106550749530895079146458790589344854093755211069921835544042521813165551315831897412842710972304029735617996694887139632155767777507919127530681262038955527269224498102556568399068351829808254096525079932842087813442889243557322562078189708652553680225912138317903747943579193062352575674182602808364619887091469770340435783865979636278276217481483568779452006263043993036848393943915324777040490938876278588177882181118563078945205529487835568983426122543176819821664850465069995243936091251820588788117703973894006213157701743407054521701430411988740999094243519679344767368875314737155268082940081934232675998094087298718264923768014220829360256001428270839361227167078984595861963115765298355617808194576889962807849430783056861002316515525637565151461319950284485620937130504844134055878812808356421660711076100563874720823171736648140203878318186696679404597747563315367340787093666965891306597597731204985806554405188431462759141632658501027368544963119430679802706889990774990254113735202525023531542020482755201177567585191358434028981561526012355797073568498897077173717139998966953335356641590320812183064257563276298011077490910951817092432637224503337187863271884747730577337990632875894899068447309085383461093428129277644401704654299637213977025702633305426322270549645342217789720640858014912097558434582142634913152955279746153941364467425363521685399778710215868031593194099558611588456986229662675719855334036745751881239226359469542463795817671046634903174442704649286924193740288441804602289632851573108103223537836282070190395805576435223743951052130244109280654953227310953067766749456238053336666876669008566096580143395075887453229135453781788318423921899856576995400619726624770701132383677069119873486828958169410853531613370330492919468974088215628657059170885042134335420735641770840601257571693401740284952632988583205704248719857898152466858681206219172065095319622408318957570590309888784220902593948219245500706820059079643111945722583275864008270198380775382105201330260498460208004157074608322854358674107383153421034959151929215792389325843271450029622418454955902046336480008149613611340659422030581738264923123334171812087142228100224443879352497942670766422117697684545724388691373852846992595909109268238922842544750529130977643244635150037746300737208889139217723305886725758154325030793732709031471847867627041995101506666692338370056927677363618625866800504081448005028441590815718158782263696860127712589324752922224344033331955026087575667706814851519624769092101138373596761471037743127232113297175764042037910123455421414044737682583069582944978072220148234899148535841858695010497570640498235137027471395287722555464862415101716250177986386261321947184070874639151620948704234235096566372333462390133925656746531039018073389671178625884959265647667865946416168943591883434082820510648953469719261627375987965510713177004822276003678578681524876896502048912896241173477315221298675015277896820386133351754860627629548442162744158826421847561519139937371108530592022390818849287387389284421642685706603913907388728480815762619247562301818671799886011195484906676567612292582062596536132424860049964240442126111785864275458218103052740788172244486622940927951784988574886280565983263988995820146365198524098499385675761660223643526072836808983225203772578404941522783430177088037199035207197429473462147432439232586969582924758617805669677144077012925998319433201756006539020047719183376049462912914035211275344177157206149084915197163182569085479079287096441757291319090749500883471877565300733519297731158167871750697529256855100312019391800409839616508953919908098302690123085987517691966118885250032609965661714470857615009688478984424575275237639348406862810360009813105520476653641555993008368425398683714474295065729888807311746640104499953553488359170779900867028476146250553720474312069693922397945950811509935458305232517723313992546044069428083915352031647550727980717447914227149564034448172173750276533736142664449031076788020442641040273301476472025575698410263743464017237823582863395669560207383789982936221713715237199445890504523508710344829102659867422014108628846004927435898476036330552764458775045216690191297708136426040776237662065619870277979587039222506145192129688366431649901830046406910707169165248814429795218348707958370225889363401294115640218490982030669178461545814348827551234300876831211837259369380358179442822293046541193143065394220881014957867872642167513384001960529871631901997618341874002302470628433620592681909307089140095852389696613988878312925840593996865362220761320725228703746950506096370779355144326658913974622235125843718546664892459466578353920538609898009450737617281210388152716779132963280273750590298238338372821476541697933111651091777676600849697179327076396631846287559865994001557060641013008605319810771270235366715521149975821862061174247620845141000597132243859587838855995661978342213775308036659578714302637301197753322188214368124771548400080546511259420671823141761674355003763106877162399590535241434599341160405163656309414634871186590055386728979535985310478910991130928009061185293693914954882614372526816600088197090079028711597306297902861032807424004055415781604951336026766416564656334309457706836989301537450253783686288798741702976389525409853815949488636314897119790996565752506297951483227382100799071340635826020033461672200754666088023247849497033318217667316996373527410432975000784796296137094482255164833748955291306445437459350125674678865005768749510970942983223395368421817620254197872493573696888381844081697488363690971951356496043447968808621168521802891028014768456688300374809942878186057904692744752537546495813147553592155784047211179812924482333960232463057957801680242075885872111425261597767009944717162958481265821324460395723401127473336066893393840149836732797127724535152148990286829224188867244060882225167257586303733491123255760128052207235222083179487671989358445242624972330578337728813363791438154882469646231319379040900950447674121827141233873094801673673262542833424444396582625163133184424385660831696706468120918524163121652831363496989094432684728082367655714694970227618650077573116090158931587311384346991051185378753567746546981158159769241269160651170471465781240527698399976232138487568108131943594242660659924401971643593231803638581321941327521227950158209059368361015501068350383909452678533030784350630573181872855506825265231042398848534529099410163142479599935025514179563760454524600391715196293890259315858658447665945586518228771081692318745948297224715636121660872556336078760106340053981154226954284068316427713828259136661469497150489702802103090600236013287814571553401948734243238266937291249856334052597836553110984105936030530437691036370570084515138044339221164085267135330837320520301648160326696366923160060043816974316101195587649585071324178433995983351651441302178176054560815838903518550803531247872893867998385094550335088553239287924233224991418608055807390698195748817075686711574759489233506204719737827151355671571875027989328960930349686519415673497378348789518452210922682350213433867329645534492362934625853200399602250394325857466419346890746166227263808967795796844406717148120537098064993072788615506722698705494343167997102855785354878502623085614582507440881946959483439674928489514151622136045491234522274771480670573590554500699563771766255310083886853162628426872331112089687871392205001426740100710526893250421572981615682816074079818850198226946644009746536593178020200750471432936273950516786981614902565323541360252904689455372973177239393055763148533378578552562853353749275188264798517076047632740995248461822965660253680476174234028843944442522884319552023023226696072527192380441551618108817893017769092320873843524421106100936572016231304077133507804391092402473483358031405155594952147550329306286894577413621972502450387562382478853445028462307662148345813994658508665976467582712774868530297071284260892246014343799833166649701978405534582218692800330775681850811854517184298310344855002253958828023662609735634514365787628953829563901257925834788223430932106300893256608362556292421281790118276600059350213419896180616434267465823056881996569231236755928188774743237947949042985580842327666912213487245906704182713121472615870618421213931403178860485627655124706421234429667970356999284981290063232752356559335130825498168959091684916228615273801902352288341684520759170598918967884840026791600994322146734182667884876288494002469262846979829857073739580191927211902219838046733288609425184961862200911135021976384809076462693483372521463420285975746718459011596896638945703448458913948794799170314915038377776312713930583721797048546367987904783482012170959449251280860561089875869834619484597621076453657347683029437111179213927359445867265200976484504086021498503789257142454005673999467062966765298064186648154132353498828412009363703335434096480000287893397425732409788769633162175293559151652833261120146852485728994579656973514425237175320448583965613222897466741694690944649627729518014900616777235204483130543401070779947318050655464136398052797448799948031295691606935980873045503931637538457405760207918678080146560065483123937549479437103345174439091219383978576648654189390583724734435245385978224988363726640695814078203920422808676019841439037036570581494912055331358303363411612275334712113020397248188244698171209354115377262467045888791253162042148127879766608964419099741190559243631890744045558247924244316322196365184211584418654335103161188777118219115186022426138873507182744073899211568048258282830444991577629495731192779671770341445622534122225918450582885923230510949262514139140193947796299033726361936361673753882780386015039976265283542398005267181047516262727973571132460411696176467330372053300161542223857616608751010047867142700426856331555622569839863239218674832914989617148094474017515292956058965450851603918902948704832890490537527348623787191922582575628400096401403843138282185874027352256058481678493789462546707479993068375378664432942770183488097461050495572879599238427427622496849086794868917048783126082462788348896208236650826298918120114257729522347557463811352276950394503589479628004784259738553301239978644440982817387785487658373377593317813254487088934969349410413592280783235407724291240810526742895126414483458061389157055042538129352121662502480985644103585000640100476642843503270223841641775329390930023069930869698413654084198036631023076867226591217393080149179541344244416038205727869624210918982136321641427274565379727330367221652306789473228434579865007965137051606469295209047803915106582841507125012808566493354621499623678527770655932227111103280867900041851594614253692851377932636231310073326697637301896104873212969335431074449978190697029757675862437794415134121995796859558228389776875384261352317202322275189317741203065250285088030989400313921730422575922309566558104536964629343049698350734757135966120122494865720891867521109117876553994612400854976422608637033222991997572608657095336066504397906624278195290711132343259694849788537954410870233012644132408815429728505388704940506438651645640248821979434058319804224944609715939632559528131046598690038684963024101277667877492525565088149306988236149587895002369712998143304965285299334077709820204442215484323379391940349053664350954945802221676741516310227522498804172024101885284440964277612459869029230975508441586035333281758145003977012861460130976635861300197587990534681418735865972606340179647402859772764355095135379530691690629548612439476882953045435326533053189791026231933538040706914354316942720715193174514942861224435457390461850455248936259847123855301609961254781136113721893055665424823739713014794674642308905372806219934356656332021791401698531307096422015983561862874965050053749622106389712180534931817467983296461241100811843196069010662531509936690959415677768543930290196559155253044009190399721211019195391407162074439931162956232038369297820628648167849643998059209009946632691027404263480027016230376324551243846367874666760526991745606679524560637940390779163695316449692016833110368233658593401305992458103924256401725193750228577991950975933397228230455881167666875779250823567754004111299463910085478104841778451711201006532387833915864528720660097554039253397786219936273688884318057815291270661523484136126144995150386999203211704294571235138310149027779922586947636740206472337657507539411111529468695577082870522913475309616983651189811691537655441587720090363687521075324861965869544935832540439969045966401767770128971127364362975835412298182775640258533222241778232472981573487111399719164151420019086548749217089610913713256303120022680811616165790302740273055007257459298949926865657640574654754830329416554127754258316757079149713967033156629443579333030767350040195348192189143203665329762328964474917521672560403341258298342705702718815156450299407356442303904258557792379998196684831518697009408876320769372842004352333664974042780214304116276817670493558821278396134946943123957196967607371722400989203538345290539413720556480744534494707631971744441830044501106929047504445410394485583974524079324256441415021700651796308431588105604874509774039656658465936919502156861385514279768027141957684360397808854673932033231131442011810219702486255217008634529160548604214000829165868291722236142100089444600052353841284874384704796120385119896041354028166980994610944992886260973502480944211154062724333324532532370052633435274888318289956902210704655430266094261363535093642149742677262556619807227272459951590999486493034174417767287832006460682254415582525838117892044239254972164433720417271886433475943052129792301327277604335387309230381704205639511734082785739700466091474017250822607298846746124320768329395781239536542432901831844658642289895257059675742942221146832811587314898501747261498612353816886865189273310191936767788612099404154677214131498819291075199356954622524170865759515074357404897436215711734412360471674873907827439760854431203475928231807578699940737844892804797502814121401892816184772953669664509252137644171182812355066481629790908985466990196211511664826834255340794030795801509080477611189140051603130358537356794410698707130107520663881083849757029481749688939391953174972620838912752306271740280344127062904457494406979456695044415975303388771072727398432156738010492077625781484864535211697570704176975037979884942900992348304444990370025456100965256214417845780833064181569756144577516281265738406910146994212548794631493118061666485869788538622665534586706913890678571074851666048122261263539571184845401126940297206074440626914823646572409757423709272852781062621974889613637236683429987030080007479523542051092178358424064393645342752691963002408310381848697399662356450258058893012414185916690436641119141367714872149922588774052819849816615475277411258929264159641154044031280947703750106374170799453375490493893739017634652954106646461989101987621394897879026474799052258904911170204603734309924205945049053459657890778215983266809798999088641982141514697760074962833475475873454371398270041993234491912951031961149578589499783644173687021654766768542950525518566435303111177045312424244801114323671010223977331574028778677812680084702632243093262116594360835266773364393905542872967021876618578593479656013774920286663711048906899928142645695017421270601549613670824810119580933022721706328323600610925531929081704770564694496591682151227414324271934970017005168076820154981209821760213457438407042056648909264139896630818115305466571267197146562481408819750618088913739139526807953125342218308636460370183290545492962209191654350246911165272758416731264235689965497104212559536701448041485072381780694710109438420156747795944083344246743726560373935632837168876975151069826028440385263627072396384319059293330602848259810698857355070758980759645150171577960723381806884930732802938248253567630560029116821304941649444410847030624432844489862138743744230078545269615732874613405498764425250879660683117334338857279518417354312565274108141279880835653475107719797463708437519911749347100208816066373410095133147281552534663092516807524004735076744748169145435971685565908375266752063821247943876219164734131292641782064923382650447308997753127013310323030727660009410403524359347051579666904781219126917378608849960397842911696747314529374149912950707818270897378399852659831454926799640239868499735124908645044390589066835485434898378164464137495291464722599411540164441474058021519224126252273706964586522822068364648663938953644414535155372946524741157544578283165249722013225245777838353185375592810766257880045897384237683302485665486913954310711460836924058728485259715039668408070117276041242110543535835279778362337268287429558887915101254634491398845124913842918939392546937981433016512550242973058402644624482191938608065290240521507349000379225081200938612565080733465907339616294436294073367858726717228663999491539376581643511867538380378099096618155567106137269665517735154203960730232601410641109947942556540279070764004551893257014785231808822931606993372251893795622358282615138680877093047837149599913587427873463501541119396734240606865475016123531534680099429401827342702822025342579296139038130783682888824563953275778467527185194964037498355869865789544571636849861183194737139445678013702567728788872587814980469938638109115853848955373252024625980886530596365138732534380392744507709735963506581987504931753409364851886918856976923569135788212502653615527769847716802594381012627878430719081593537046127333481147143484279039686451010978921533694974403956773407808618679966473363360662422972640190060060462352897100702711834726426507204289264006038299273998384300337049063634249044948240412704213508389669438528973361870410352808875379904156584300066927463843751178944137555532891910716547731263530497473554172452090031966250864034806960444911503240020254228729276782682039241924419942037641647404982923907363281033668889692663414572455093697228543490329011048328489296766774688864562166468989386220916161138433079309470437614312415466819798542192857544873641986780567873626866795524806327955941026186641003322299686689993682098351359533137134625440501313903926753566597972401357719163624321001694971255877338823635743655510597760669191130051882885771817099098485621353701008284497295280222615421911575966245363312257525137166265976893343334253827433833400850416804624816368740497112367696036140612366742799108710348671881723997958988119937261518854934275385687949275703348721280998489703582276482469338681915860161750256315429922503294394990174994116521093566073912639684151958024604811859923292268790530785222156015193118554971147303357000429372634600225776658370487070448823860874481819524451447748229140312413730270217597530822573726541411956508154323896174147505694382322518127861045713369912501556879244896833847022014456639841805776450247864306574210889560030980771492073622746973263831125907468234613426777486835465648890393320798804738645942333253095337288804162817308681780256755750631625728242138501437379406998346392385274289115533978285378396718932075085777785771263636105121419053509862717596576956736374949481565055709042421317954604943890544416549681357771778532222951408647772406371722540000433548725500458209199283429329875368763115210373592285049495311914472266159263313881654315610317671966489960990876634997482385916839036646679454640641404681680284216121635768033662184144886255510335188261278881661348283406895630569120585349387327218148188318980556289080548754308897453624405788039482911631188353933091353607746405294808843321910217443777437185752604011821924497646174915071930393917427468061601786977718595254040366216830704863907195796288875506493493303792534284352249552191416647411387526447224618596647222289832047307141940316412644211414810215242706744326233988651363674825808993185928109385787722205081074230831240674064708868929521853499794550784388264628985368921093707835606286775905278055707770011136558369866301683444348725330552219671332953517213117204196674525195325779304002873155391928332398932683430751979557487766975409805308337015877920471447593727150171203673071897321994134321808361749061735605054476267529799990827728324546819779606624748786377957973377528424602516859206721293832441471838956336798807128060736544773780065636924307596179856186805686894797195299852537001203255106825772634869876639250444033012055067094956699752318183220834098666718020585715211934714258670466076543200502623778773627124492340295545217626440292584913038671541224017066053296768082576661062773452684229914942057745290903676431234188440272279825460719972855880852542491286170611812804702273068246092895098081344698067515010409855504929582484019428972475503724957246204584454340050667563744149000488269111104344834105253261861003264472110662132222610864943495709968637194959926122249448672476588005560278588116126406951308905748646678218727992401438107843238769797744345870926163670236739137337040930320197579163526896822028787769426823569638104439686842954754856989416720017680272967687524015389801868415261886965987453360112064596738265184284161351027923524118373753562591220663352868409183654168636167025647920078967194194175682856790408695022890928623120546518424421075127224986760455878594793487201574709476815990727556575039332789986155593334502959790865098707050267130554641127573372091923361512846207911473710249877117804467128466417021812333055320329748475719823391192467980112264781832024966781986211061533149329189845453251513492085453409544268569379168310600390019697385730381364734821955510076727934223471396543132859392339838152454576578458640450707839456373234992938489454122549516639596629633507884136959481819204528983062857439438489521129965569419165949493272022188449769708674157789016533083362927933437111652403047813048388901461634642754786893074496395641790471826952650828291667458497776369858303509043579194244874120902960077806409863417395341162619393157616191066785239988911673540978752137682135399191772032188853110016739080655619715174017654853901082934097347202378519386646019098575027088860739030396612904852948957385140675709683867526895567671797339907191886316792312385562684938105546937483610705671737194791426305908317767379914691500141223149907699188159942671114316005804651487145232065116842514043327699401427267603169358140929480957630934548702663410182465279515085081813936990414597731852588901296644088367304196701207723457993976568398709907456434381634036306274935066035994009449671224048274574965564372217022578481198406984780422171320497420316013584136106105933811272320685681072767922806958994570137127261191613315613326735153365428593896918851702227036169755819084499384868539184787502946964019050260641949841018450131586502664515986863522472962150112256945731595966215006160948214247774096979984589413487917380817304423817071400226438929317479016131049452410677927178199252989759681179578460121322383413485722127779296794935141721081418318667145496377765130301411546868324848533238643389780055931809671732989724829052881531370549052536864065332159243301500169797694355528677777733249172727307790406482043291128494253206991687841706378531818867758231670934075378275893555781558829490609060133313467083986674919230327228198726228040763629508116719707801710423225677550250775095152067516758416942952299664088867021611850926027600766765939645347669668453282536599381360250999118097777188378247566347145113230467051589378146716701053357624725688646585001289307294055146852761048202425117268038733223332497116780497899907435260531246816862822125661582732785331333027181976133017320466774492043495692563315962168217057532854954605777987265403062781164212325613445512811238498732963838228839623456952793380436884826870442005550496425017354324289937835126287826526823714685748831835587044045711306513475169808022723899400468886407999922916749296810053892363766277742200514819641888415275532000433981219950570557401491664453993374714082959851333745089298516632129687559276767327685307041082826616887681335402244951018632248290239302999099015594258824267261082365687902519920928912536263339797034763315666765280883325901492691063907181824203718975405630110707206606577247767636521571624293823953809751106819376993627507337764435520971671789267561759694429026674243686797616320390066288056632960157472627998591568814537830412748602518774049722914578089922494212208506808584395728994152425956351597278578989335839163843676982706906535113439754821291030604539822190886388921531417154222473862650827385172799294461740160269451884158466375289466468478626200258423233258189959033443228741321766420194642313286830439071715329045002986650776827780835030969645694744114425721143627524249945078212093297316929774883902430548383573957235765350462384056550534377648957800829326270503812306223197261197480033844688115727163553278651382880062975043935339177428178096615037010218420008255808081957092965501082960698378615098851643942016729797500818202875216290029672050718244818798647744742634995995478193957931445210896360869797805282391273726007506472738033094881800897028436622442329508697924369440067053496224823807973164189374505130732378310404263470436490085559314421640024308120060458128430844800186895364225791393972378122957461969133810383782556923856645357129077879981825547609446457677361832175967733524550114107748169650415138064981081682488268526341928194374532162215285124620560562366983554633404406146284038212621647252282701599879894040102530837061067282390788391005566726316928579413747156345269787512649034697193223300540413850898107502527381930954968319979510246216983343320784737131937471376480351050633871450298384550077003264242593334800812162464116578690057353218523377906029923500058625461864419938392040398988639722577904077719010446652628040652406132907907257750878950836372498459662281046400708330385705951259694723868671068633298983515768618667432035716534614211612513560477905038555310956044040904801356420307872459846041305495910129823023393585152508856868028027465785964075315343372733024778823036955702334393485924151647711121717394692127382230142561497615125736874923253494168248584174034287340669543452118644760248310953727737000519397246549411404821416045897144651798803592147877114190358787807308394069374729067044005905970763045392767230734445438652662126651968454012360697698333371504340495696046042034822885193890545321986359244631257866862434092093441218133945140686939904215554462471534739148567426378802183909202176165376678505941989331717775291412553457891953088684887288106992292490386528172256373871963906554919778440886134185602674520533615061789689956677256332103658831055805765520052718586844857079057195448605725636143872575170264443389887825473027426703273699582576265522771072703038195359400917787284322146218844056056293415054881341478892772471778900993038517013747494114145314184266116191730989930982966190710767354838162280625466476981491381979424742586311722533494073213876881179521908346486865287230290862415425264760446089820151838966346374114950507130689417489456954974903402107608817774292486513071133887396904301030669370422891611531253197621139816339140515507645907014856265255487320240395183662674741136639697857764093411596152554592608010651635700316926328959317565650177181792833893727663313906380070513762734613978203031701349317872625204999568528618744384519302356886481540858985720638538722626423013687891490166717939872786897792911220792552366244144294524827120010219780028121172822129387334280798844734186008124972703687696864699118703494924705992398785767772149765684094101626297100864385238232694578466402968658049254619119322842293040631633454513936637633688647310960198326760986034820101797184262567957096949972572603797928689851838283985084670071285818456300186080117841237277044663958542229251078637657018242004698619640067020140749083622292180940078096900145697110394811960017445858551506775659239454229717939870190139503083394067358530305769582809743402720260083761297000459501421066810273713952836087058046384159419445662183815513910441992207790174048236556379849243293378937256262087561547350039271611414694034613764207910489091754333874891835973786554436195962683757016019525702441540275370273431918147382205804364193118248645438400061374634604257114227415669888981022629139681903665196171714854580195026969762145569395149791020433335892898708893364274596032697639870082876246396410912789112128245350973466348575783038380458563039323240231982606205401377659646551021068484371575789111424969024191151753498085172484720694785925906242972660225477313807113958244472502704950326367324723471026956436446585502858145974664810479132667274327988257383257297544465073767454912938651009050434158597121382017232659367691894419693650010091355660044237611933429456554715625082008487270246047227413862853948147026616332772055764122436647944996421591012861687932478505251721613081896743366914562085599657646464818784637052701931603445692971195238300151768901975940984923955353207830658537686153757981946887627809191045216136047503277972230366917926088235601147892487461906213588373491075263254530281204068821042156886921010234640068054090118421438787480834117666378347182338313187410834101033765833940841802335054685431576447014998545886165816144541915718117909096480795927052834594353219459009895573981461131127774156521283140307910817965618826656700280605773757776186199155356090235951549649477057375399453646586220100868135422839656489201718736042402123418017534605589328001717978397095369342342629285065603150694753124431539629593311883085298883166975022129091922169119542981525537605383466343309483969827386398674523809881248513485989448563516859465927598732621313557199977397646628170059950905476909331966857237813533429235182309062110918958380204648535263598725335633551413953005596129142023632322177711525407021191792686820007611294426326790033082329771065959480765787677773158368533453246716438354129930533157382012374255099537533464570745535886564970609811788210497294199925478654209297264833473119620443944860556487915179236677088208141795227652841033917884503989667320949693636523726237942166246483026246043568538714207808101000918762048397217971767346985488102961483321260472808151397883679500521362858704345217875691972571885951829603317269410989662147056271653098400628662243927635922224239290851418624021218525493267001405592694221355593300173138027230234069698753809830534635316895191182694551689279997778905050997800748542334675795188276910299509148602157448286119140516040134538206510070806686483977764523977699165307232975513672287024721197711816237060654879937912236736801286724600239859653924067558425759056428110356011403592286565695750977468505914028460074593838481463309508722848501659562614655241973956357522595333969348170271848647359964970596540750198669285083909936669143465364543568416036632213848836399305082840222002138307617394098898001721930507242255006757730377733795011995282196694222692303849238465481148798808948220017367974454176505428247020106228723795164252603671213853862861136382829545466534465534221891163625319816820802493831471070379989777841486164237879358620298251393329347941792508337196771145709839333139478761297879653870699533149863476581284584416737511756351547959316012262446885916635758614969729679846739947810485392938685380672596023542274216739787028481688602586808877801612688287417619547238857211844497807684956452400393092591955500211147943301540709587183510702963925289515970981966613591842931702138985041512555770371179539157247300337102122015449796420950514714667092172234073345063574309076219328768722596213329058140381346564775343402202121400121987743873579230128195295358685040964897668192548470503211610980061595052084005016217760350876786102367489225056568929888991520591194150938585498338760410731670297050646606961570739650996391649898246980539835857883956871563661895928300767776202496979055846588642029884119421158854294131110555613710671674904138353665733163121337753300805828974421458804929471475362252433337295009723352013334634606359504974477167781390094198090700823123513358029601399855818107031130787348973033284182320676402700781511189567289731480327479401713934193043828682476383575582526132262051518185299091879638385470944017703560746467331390927684186134856662160757405409733667803082196240998622138418185251037555373747786690562393786466496865803635263475373519980600476603804425340252527789278062744311628976867795239688429597345677581318250136393836491049211365162964607794695405709125337653313127292344855007959790754743295686799533971973501447625966305254782073888532874843056619518534419225977496529306219288740783242459735186087637397071483658531938162760413109096528434721920949815279431678681873048639861193541348587006179618405263030377940353848560497346863245955195761992792294123224565305711119020750587877339954881906163936617259991680298079008363627919192328655126402773282603906478864168759322647203212292505192272699742693988158671407697424582828846725007690998176293974461347795070851825228772428956604584420440037014114675918419519668360089757042403874241842854880072812594399244363949759591189238837856082795160980763355026241461078820996430019792388014466050244590725141151085799535836876463787135629859142222430283916658802512979872342135581573424661961883927094853781618082962748204181137334933376191886393525849584614812503510376331063240141890391092124605234587847955578129365548152928060855712036528529292982884054713819879797887104048757361095625416988126996347017684352707824802043391717323310025997033812008601941989998470266512256384183880856362261110361188336503100953727081588232638320521058676492135307504962430663771122170448976864596147920939692228273621843266148503365340000562910293544485698478821950525931132489593568338362163889315393582658480936369016898395323769686595354132393806115004493274973271002158298162869963385582396851304274277250000015873193599739583285520793364620847511187771197777629144104472985149275853362276436273356206978216578213482067855936633011517071237205468674713248494675276005181788110994826950462593517018757704528939373522824839808819117072709387539962303324575604009412089263694989746765352640021371119803607304567923944801891880432478092603100555851032407376700196025910096683264355401692157648910517021211191675712482727083209598608670188953597067451425096917846224313975665406649709363704533073501324109304778771806015516044853321389202824558178381561622823021712833931193069841280720466475462648926599815674638088976745038244252589061491085538029771982163479218968673953897618921653457324667580809692557463462618964640898177141511557346002481433735772335325178221489445841696845564529060025254664671575522154176795736280077260695679263442895846160572014579336545894915938266117945418098084505484340433426532458134709256179758616202982408000430517248396626045711000387587895454469230687517227874886494323083067440964984738979675196494084275756741972044066488827989257989354061937512019584153077440755854309997418652588900769792535666463159857015022560209562027767136329127480457327204980844136626512256646947425458052474082125263344872982723490443661025977135975520297499484745629923198028549549093560977844973914870347547613445506435425851951625322309004155068860721690305048463022498224637042663568257008265186841691202923520305042884725211338425591813098207785024156322834223141249082294559181417854517658535045822744237452097583903968139420123977538553095898561016260388171868391437881409332983864411977783482864596888801681814013411391995528534334924727676001490208235741743948421259548978860371543123403327697330263407034617718005593376568185885761495318843492941852862944283821575176298276581516269287077971347621313176642475633276537678508215637687219240412003340760035245050330233430345003297359807685780768031100437066748076061956239462074951775270196745771373126589401055360291926103168923844455571312656921429125222028226157557105348205385638195800454039354684375164442891560870765533275353094803593509613616035261567737713085162480742234951973700073437240965834031308568741877332976131813551184877749596934641803111455525144044767878789611520318104047177152657019796021453182819116904484156468067770326294169380430145809444236064194796799461775749781327222463455511640258109126842545889605920003068834006601217542647912771335933063558827126142536670223684370436710004217286854590538914030211738507549346104314103244330624276679362859403775041191475583069245794971974995012774675947929449280195732871005816947722866908452600840707023189350643414666429522032100462154188561884442126950528315133700280619939902080916776456165326219706496114939507100398454911595465143191660004472709121610323757163895097924585790726234102980071717954926904055067225928653626250819389097358575711663086441394767853636299595965471491045503732656556276569413894841564907489778099277142827089276347721167230216806526485485803154629095649284344205730509236084578298972355011011657529480053788555314022569362572960899253889763457812076427948494792815976731464138437293078584546770339223139190414519024104202194194089340284677744639068948120023490293701566514322210055318862517251790924364510150688684868786818739398828377357473854258904584648340544650452683363302054989558362740796181940255998164910918478323342072265223337897777714196227081022867984173635502029942624629146445938964830516394178206788051996820730235229827157998018075589458392167309584379242501258027257419817482382847741154282650136269399835347884951317142445263191858746673325094952015269750662105707521119490448686295794841006672666539746600781769660946985066176553189797503742403243231822976124961128329196178923130090515605636473237258634569193937843585051054688352478892566074778581405210428438869547684940227832929947963780867680718429780497357666324288256484257540150647602397781669171147638215524591856960277905342523256547368725294947029507548352097350050412421256845925967929495016694304698452759278299354444544254419987335128032543896948495416320465063164256262407163214809890668367801054701519959121269740303293570026433666480645403805015764264026784826053309434540738157061842172341933604078304360771719076425004529905635671052915562082928496857712003249369247197301522264152336729831648256697727779652249616893234244300828497040956795451340366067208114013355193867440513299970343698685998679636349282027685225694217857828475782365407820012565008198054094905787390183141469553141090051158128652753902454755714470040537477480878131114842618478779333972054538340643834457623998100972767326254036570960086994458104372965821158787977796729944910599716816059829098792512598739949980882900902130852273920744035246834335790002324242104835385513745105762949722334336891681625946392743626488385416943650461277804210207310717327868323629787964774911277439967256684237243013391161894228532838883421246872559532195451750935759773029939875154730585301831577987522953397512689766564769213221229865272430557307586812879326509689329258879024835766742858423671117928115671393466804358811882916162072120297717461039701652825830622624676941872417214577179775457274183341294180789610841966017057317682665962077926235832785306703553320535060615719029435290111941753086567413465125725385768590732160102133226321121097350692556855616580159522995142798055146702899403718696269311239249977007769002874270235044310938100464410610366307378133577366719687164242421925526607445161465622048908631252197832117778628591888238789332309019839029610976086120867884673632070198959553773712333727858083164099255670233272260985403519230564832446892720471923233900717445134729748650157753727242982213073779285831847393542569246546442229693667050695086142961294976684216449469005712280967090196948616454231027753666005569845904550304780716603918433568903239607312918252697833292610868182719575080953858689516528037474245446078386708094300716474774256395418119358465763649716290572292885489842344660541502510786021269504992070926817821616613022866737587976463954586519781945529889703433498524284858854846856938983061557883937140634133144844575018300731197990471874215214482654431309507460940579979365897719124218942059721209483429995121853449269984288967950335685288630585620224005177915209529172656593593388813962013992531433203524256786951542003256969354122035415368029169590566945414606895664137032215509343752097707491343327359730363240694295822954533299820128434101930308027407760117916989181003831900362005442458385727417191736887590757951225309356050987012780686924213323974126656975022790607762141725207298458139897334423978949532288469472720771463588107778580258033106676420474175684114866590304914929160257502014803219844210411455724453459113886259682251483820662947188207584370154572948711916464419173851198002446253827120086996831139976587920111681935012249667233527957273968608312631618323639136434040198718036910798403742455724550459456801007957174212191486435679541541301090381086259210911467588688327502389045351300284481355848860493289842900703240597812516646541716432797592339000168222653312671392240740381792165197355562282155813319050768359638349819420549580734704171881264701302311586273648681583047593978442590652432284384026956305357065467722877153613915834911794959968754629282391033601821264624047395346598206104471130719963213877405168572162077061560514153411728700784762904172570258460801297817054547377722279729309248745408815398439584431086338398563404714613053976911832466625120638144257863452502971302654349392826389815617836766668482723037295146871358160265239163888661358148899595778674481141892324946248926368148602912903683395265600887795820281696227337837912741904252351101373042885493189385254747912660635940140778468522353155883141604819121516998201243515547073854758994763827194043148677194971959638558183748431014712243192680410365253541338260501966379952703323459529976596445032438523181675593773839734277905220748602866131224053515886113707383030252265358582505356709331532708520951176622317545818428251050572623212003529968430616702174106959421344704727722107318675171036293876048733475180139422128365814900899572534894812628694026210482544758186815390834933062012129110660705571126072545413783295035313270949586957863763559067274606233603819379658040548879437076181984669954414844690994641799277572865211398515609989835668253898093622288352016625621832938110349740604496279901326546726042603553938029650350084027581450967646202589541072726853988898207516901733057957141250855473758868827133089899472053557422129919444801164358551528828298381932759405985003441474488038110439653459591001426278439262800026568332612139080117129972269560902388385780080525633144579882767442343319094958104555187696632677445481790060053731059750461571992863911706929797485621365580711169626738839806615982783094579119449086320046327520570625736526085260418897885300682803489594192513195366560992736007999849107854642655464387823681421249074863900167530585094610114774022136122579240605422393513599434123372001121064117442041372924228495594260617568824713332075141246842837563048194864887123269808163409408197922400520625348093607174803054365597216082761781932992484515362901898172546218642147191753664278856043096729650214381106670020390239706650322225907168287551384927592284504787160151886446853864349579654981492855831064370677766289305559363998991586110636695474214009719600337014809397022752032294605208512825719746888323308235422042842506088806112048522768028970876047207550557591762901885378990832286106041464512958108305011958261337266030385279065086434097986652055679640679048976104430036556326027653329247164358952384858174676852166382187467234153169594231713464749879389061399241683350876105207359724485093305729425073587130976367359218363295462955977257076517455535836240329433993857740681837216036291271933910184557365255856507557948907107022786219240161676756878051425081940599365470797815935781212354296803426204889235029311098875561379180189851703154631293822243863120625999539567065317181658775688922400817703567478427335267692188202047102148460138414095057065217580916244610791361947857127864422754680669556915999840231722679657171079663391108608741449920646880590600906119610716275150976715195388636603814386404070909544062458039309523030622324708846767266299932925788354667522425961888940968597062603248463400389169976205357982324588928716996452621960748750580538258972899442715444044191705384064769553089880629709751173633376516404813873307143128209660484306646698084303906970533729683737852858117656577013676411109391681065468621044701193911579285946220061697530908591090257955284278608307879560639768799769313891949215629802747081026599231175381021443843377136070376363948435005630941607067276146721181970750974810230016680733193700706581402604297261037361616145527854652372724924494712154578462157606953446364235231976397031701978744214948428091509627892721846230466563675043155319643195836616463683563207969713812124423997464911050103148049702283213859284743295055725556279697261765371618636976392065333628055924877510775291944331287114981803114550053780298668134250974390490556213369427426007574723868436199549692902220649839668319248570659428378583652385938827171700939646657687271788877980002343001378563586929430230553008461105709988480999145702053588932003915941467124904533814489391576492126601482226413368879177621911518371003809980821943390573792705081176093839066404057694182591593515149448771731500205720326671236370157201049081196071808340055837690712075502673312153731331189489308299624972770120311220743903559860105863691731210893258835094638699878411281513405003204910486032107184505426087324266700823960609087164907301551900595901744635668927495084491039976973973862346850428653805061562630392888768780226541932786294598375314759330525162574985852306449174958914482287027576674362809673967892968478091960854441578351548256083041611232377911272372385337753860380332053316590725839686819936356659005918442530733908011559801695081953509321053190590439123373140050908663977741068137315093944223539858624286264017424023938665926799837732152237296271363735332306579115855567551484995143892390042846518338671522044637199346053244184993159282086375495800747932143959579465053891869107785677030743161005665512881161091709652569173722763696927603575178376210276025995046684471787411248759689245025416165251464960985450875354897085938087695293040439195261699490788255560629784767056957870206899150773598788262722281336097147693963270511394456706267042496014024588060766691613802586949872610349673645262554308150456758367800301437956807161447587753937861754374511660224302217216213188492483177647714375733616679307046241034333528661397787740000677585532248355289836859401141144296979186744235102848214578557597870268632419783001386907658358615314235400628744970135116494687471843305307967455784659535943894757416097002287823536820386166446023134451315249562028994136136254435313143707754510948809378952635977714551282809031521959760665036029848465810271251281325086384759842247821699520299886142694520883383739923251878355975836072679366932714396841091340794516374290034211722537101853990838917730028077039112745743096539165769189068253206423028512390096755917385608566372291656715809287101985244827215776855328911147078508427196059398397727077415245472160566113851573183490093472738337120012604763066771866571999314137033443482533661179199240301438425003957524723725925786957708657057964775551603404340872938350087890104423204899448561513127257026445310473590958498051908590309882115150515820123781915231523370785718295272712834608081423630591837907662057729642044332012883217254400618971898215507275305679421847182114431251582139766837418417851861711715405743928511198918438494487362498023020266010685909847363461508336399119443369220800724878412571449654365144447439209135402840222110483304753082250391824616233828195618787790428841424578435747535347911143337408717819922677457626767466340145407450736710201012901264094253380812348144732741029615503586164044932507803984316579783172679620994130078270702827985879469854442389830696131901068914801327808687017412487064075143015228020023776217555255027942961080922964635109469814482392753454372438443965093137087580430718749545147154851884557492137372248520286982308175501483432407145373946269815561640298585710570589694717686726461061341029577791565139652234862562315120741543044603443459805761718580758784542212483967188973941854569820434028328580672358755268995774121298697303510517762172624319901213343762773543015430997103936297143709824566971431023913284024926106283341041519247632331386394174666332742027381416433113705853274840796191570033977716356051419173646333016854893170624187246606684053983334620649061893035825912195503303543350536860558982786281830874481311137781705543139999289034176223901875417403833309330398603328700276082151810741120385595997296404589073513927920292272122789844986612955041339595008977782377715233981542771229314781217997216622001327764257469109887864930162044445567620526488262800773744148013244238190074544478928190315710496839643709342100759762060284044572918349769894759653890746949913218984970941127308468313368881836233055705538025039240040578406290110993772562736639852770851451268383054618955648312848872052668359707715087525821030778562783612834387832503477764146818004069351179752129963968994144556645371114927805598263900799924865932401553572824067610275774620101376932194717927136493001385244393847196430854987739196344019854691072754441312198071622433207940910445609439758719213033076185651173713162017750614524656616618107735493172128877017418506983635660496905580273324546993591412214214817687672318372617301328778652091333638935821085131889874662834300308284971074308677669077705174105453431167650371834042085384191727354022051195456134975519567245021965081852829437939275468746040409778262175178661536111762579931451709905707233066236424656847071213809681731918826398585508711346747537343212803526903308822836587786916752150356258545134941995329291251448066617438746094710896745107848129173746342395636290508056585828052234246331586860391791466716322830404846733024375774754694014696800146097274576190962397605098748801279987008448560741169227358920265139553599107387576267445580209762900259452356138922882869196321385018093551321655331866299809707397975921558933207840947884707515509530508589520186163535024536957245754132332126330713400686925036446204536530890547355040781399308350964038314979032281318320420701013762004643911418362875970738845996367273070617774381825374096866564436159121498036821305427379522156081640068568610594496375113834904300529919739662488095336016521766278011754468796850668502545767828944208251979921853224052188475979757648500028888486498352153637442106202828232249476655784487037920854867881452898487531476976692550891369162640891361534448439438007269473321924940770025633356173997307210927907662740336846382923480823152059266918524671295773504877588562721952193186358768455813558118613856209098636777087286081284939203989381836172719116485033456131149738774817673103633419553261040438959309264612661926563148772012662948544314222861505762567476098471984543243861597430356587417265408557091848098573441979176672492828778790452024731859173419234339343367688043973244651208225529231032406254323836446752483196160914532674684899627339306961175048375717745455234419628395481528296262771642970349100730193476807775785634237093194855711490900304383339514000779823928503615193392107457453426809823562027597340190113724955047198049308026553115299815281531711481742114891931695896470718458328797396263986896670269108528903135863219792175870539685904895468872047002787771424271658396869776842520245619572286650996288137413666368588745323942194027640263807027234515948566403857726198458823456540199730111027625302739491000651580234209417195272713118106752795994931534949368317815486744603243182754513761281636436595524372398658386524189692987435237959951778506879947162111464334079025272136442602261270066988839002809537736211479878712445617250828880460140728378568957228791261817678597511672135192417539579165403522899044105760089386594392850239154384269616830163827492154358347686569325564461222041844305532040085595233542693463600140173976212925034172787898065535200115950893842591946132109717559490180651864777124674459353698564354496154528693321790315103466669580900735852865645219621620567936604805240268905268305841414261006285304326247528860880185809346151073790133631865755635963298256528241656553898592253740735238474108644443698610496000431833797407587565296506743932872018895353690065403339127367529358246007528892686131620351878669892392080000535197705828823226532834988205497781357207403678345551638986668486101846714102557337627148737008911701610433196461892587952948320103101921057945393512673234403154814925722726162829331660270856261147754077746889979662256478786820778960804408749162072022535896129029520503480645699546128869427827856973657968140003181869991959191567906054456364858870384998612661241193165399915555547768169617114932365229549909319011023463576741642053745018438142964883968883134241586288782757508286045444809003357586173573181257013114973243307822922398073349483649065324906949608686179870194542332816226188650802700596534176843360330740364337808946873100289691500411170790538123173385188558109655085249224750059027783349998517311678562503976356692159868610933596315303036243569924912720060664543662956273151844497937134211115836267852804071795914527735052829173099371443779379678501357388160029409129468859431715215028466894821419170510136047681899199106011505571999468017154824146688585539699968625778562276350686325934733823934723817438917641418895319107319573463047005272017861811490153039018731507042869645611732907666857163622393194310860775182341957547519861520047329929612852839736827752889435589426828033054027931889848142652364227710525513955271345838771645316725714079606698077144831051535453260743868767206141892605278629961504242812720200253096643090969826403883026325150540507678313624221442676247245061425501519840933628473992975596601913231624332239922386660530467721997578096047364888810067380977655468615562639711844160566587444835422376517594161433331371786902732360617681986505724987754057885104767957339739023333894470307141735278295564791760729859846383924458811439387469360823346614760301895982595163850509644138588772353628884069711139727764039987250635470678248577189979873635557513945558407037682245558348114189712576477415612166345175013310314222256575573067698005318814664755399527677110169650756999325892661877690284163168468349944497661296815006808411727946050736980031178137223729063815491680010679722959518046651651777568032509244567550827200976739424766853324270355578627065116037860671920417193423648257771003262871387727669958945528659386414187450053684952034787926182973657707017217918561551523563083999925489269385305012143530597237686052557986614638680742156329818356411414284163477240308410580005317624659493189099528194911028823402171111441503548662479137964199317689281042622896947536352111545293775016026210513869652901787989652540800932254975115935443316820057633180189925842707093522795477658478041127130436514727965761876981251781477686981482891842041861951962733680079490841270929083311703756347441614983387459739059772609029739853006222243504652367779074780039834457766819741960988581661174554290326706127072332437677439436944472173511482424965260376687031490075207944968683405232798611191498722042067061075278607797130333989647460862086165242068720315825460919597074828923053162598875656948073705300051993335584412384490305379351840091846303548461397067162454876657461586113147365660595028675496389078862951864246378797698251461114395954969123029643338831417985658290819745887155406076919902082025741309886202405405640201212537703176106978646303030590957366676110707690091774697603160754882877858782349496344094031102401073080909642501844072384965456718994827737172096162004596499620333723620930175687916883775957171147745880790815272346703437432715086323001304010097128272915642510125659801159622997553454896704393848721737758967458601145884275757251335475784629421791869225439574421719282919041861104140500901580393104848715303210687274612144784478238294235396375940228472286887932185629858818129057038999565025081269015337674218998023773155239884859096996220562900711744123203054827889121997238594093310017901888675390951494337486086117450920202276998404172014796600734510759982768291590222184583496569630437431575722316175504582931772019541046471477469861360675741752184547288258019681099671812295453479423768858098484457532211920333906740369371038702192691227605981495711389211256341759258850767892664355949671910462185779836578149599633952681238968150429097334077160856806107277945443525101218692766379838559912293437925364696176916743410421511482570855515789003821635989992110649934802257354837878591745644804950867527884210230190264180173762006410554881265142648361653066442967114932022858098638340522027646959912996150295869933917066199527627252807420771956515618876894492573485144948135346307259345877472146811195678187125569724158791475978242809848079703341153321695789168224717561468399182967633841159176343141272379030903706554996239825781714858523355340976480853803886056754387404444299865802589631608429008206146566182693693924912903531217867510177833658641434019818268627446767557909617726114877972590594494066999676398071706261547307015372347575145230640622281285287913844996759946955935271703452863917642474760744696657457881747044198947525423717423904809935086031310750679273019619459574691044384120865728825438542959134822074089841109470225716254159422825646169654251776960172907351443543310696035238280267016616163027022236125896582069661094761651526873628614986306693440545253119687359801649668771184480732271538229481977201750267424652801052503620250407443541659160746279399154077617069403808569744808906006015944190859627787131297431010719179041435616580497623392993330075290417293981911406694570494733437297703756462816271277892799970861463352307832735340432692372712427789953054531467324239198685497444345036539435718837579975285251675106568611940906604921727490773679580610369731702320900056520689785440866946331227811901811089239418779685102433914280506698767096332534023759901356059592524019525090264018611300178895737060175955734736428567048471004489533804115369242801374162444577848714187394297925525587648626403235005260666927174818989493222754350687810953241454609121551742586412415249017620997870197578769605356109163148278785754326823415301275426952781102241658552567663936157612044602535761286895678486881170027213432174932192682514215302033734313194618396291436039941336718156890404418488431925775321451019583077197967787238692428221231115065622175468658441014806734625047828344908471087753565121390168188411144417760710782725381252302116753948273120589765087135069140905787803378914640600902400755573985538875644252098440158654379725408749878227631419743424971525812111195911979434869936117551728162065139599832707156113383768035801029981080977437741530144345907296127140317181065949174201351810508322548958736734297704044492460667580980516179889060572887302858826757176694497896137723356339429399673988639225460245507867354946226241162623723950553232458537427009295068797820439774642421516759217583619395951366701028062554239876991613558201153835402742287493777046450436644663013357044967832537776287363419820729910579456105460415858101495482144450287450086898847434843833190880156541619165686283726196051506067062871399210867911253699348866225843348370021438221259773831092532545715974720287524367622981700870712636200986899656679850858852742846318993121923323773467019255867637918711275627453200707914411268008675710025474021553993711341397811317390464202083200094217756355174772520354852623347487739922051228375558014449968682139651540480032410311432998917521894102759265443042998508722361882152144120221949873447043344941278022764271639486295300052902010704721761210945376339076385215300945323161033433224248484300407368613150139815013012165404381246506230109718169303880203178685403512011026893822998273620823634977191244204982954886229799697324545156495003199348402336108956307765406804949036192491242621803816300889014237946735093429627496921366845297292939307615679076648448921233522752802411216275151453529490697085709259103409720641379524163645968547384993118137170344511820873122199706720825596985262311241325445037019489406352317654871562671688516323346749704520552934441997129741868033331505096340512886643918887958373503195407719239930119115261170864931084814207712748244414229914512466859933273157740403491166939823561402185661016291203445579806713807258154776101929304209094077242737852636865196110861724730353892618129363833284689273087539539943958521872544878185161112096402452618794320706324375249580932233879722911758451193061648682480121385188827656551603343035029869467258212045686532388762553882430845365919741639787352413883905844110897798266023145434106574926443406290973981107024528937737144960172168880593119957150616847758774492266960156005427917913697907778070639919581953955020602374915020437736343850364608072317806564140032280787052363974484664449912729707153090645699284019945073654435853584774814322003488963647253752959400482173460011116988184756994687459152648153163227159251306923535443193932526814333226013453736008477574353879571138476876158436602791135898634059904357597245269233923080096788482205299092826201933944339564425427230655498800460821190522119580353960598092477758640818033085116159133486134793176556958205159941837563780656725799005887992660466201846786025736005762426552538147211139576992888478358655157174444203876576848722738059924081488561328132326453805900442877361936327493893198897311790519105848731123879735045941519959938017282224208115303722172403176914029010889356425310547092738663896822437757410969621902629055643920123958967388557289898822344851532982386837429239618681728801299003822007075210234769668033433967176765262878438124391351215737510595256780645038156379169443045835367515887707173655182443915214278216099748506857670247756593803134572544741103544271315667667901674254356064836559315821502686662768582025588309701845585943350359694066511263221484822556532194162057301633907407272631521138066650597785149997694900421718786186764100839458705142997786364752317857941781565598173734900377551448401633024558655402805536496842527596455493820518479822320640224091415946077344995510380918683619617231651124541658855599437221944298084471962828064769978775905570949736712239278257252557004009735299589940800290667771290565128323988157731307990690683917573096488650540008987340004315087213361167350240978113342124778145788291178434102233624519304183589088313586533287808691677300470545010765881162076589690695842580249414903058478390332974845620133667217120324837188585891329776747557456688325604565065048840650616796511488479060214565778328724458857304248947374459032822742127928096465548172902685564038324155880981270700083079485978816789050199064711916724382794688611902375518317963911499732867714552964722664011032677160769442959868265971601917674240223759718279058620810975479040203081053894462441238254856551910553155263220222985051120761316105478713426946178073586793013694014138135965394110133237919016265582287219547968563743773852234074612146114194594322776397175516309368461145064726731772538148677016759383334484686277190632978875459395829675077979403950229410728264188603383288907581294493864911697411171306888598113251763371064540594405780218530804427104990163261741279999311539993394482682711167612285954495021325491279865467336725775855843935844668069911199769303413276487848277174968368527579890885111752438888220995119095974862141602413853232645088795396629955858189687752613971114657356281999910125477666428083634527101404554176539624552200979697977589540476632250230771130638207125205615359418554028550982561042334021309645533856050369310495024788259094534253966806819722102772078576823984090161618551861378625322303373642988542401694495821682745107926201764076486987109169275153116589921640401543061602282399489989712967319948984491326159936251588157054834844427847860906163889997127446825644678088256882361543803962170611165799097065958072855017887241203178616439802314820417533232450908762966262116098483326159430583334842464971851642140622582206508642822463012910313833001986538044929710640508356426215590444278606246065789014433642432801259198391125063653117461019087746817588272048351420318425963419793489510113360059997833089452062395244853995288328922322068152351981490942881670631704280935918011652400471661176158946491745568420417811451377046930918609366721551435658479818060707983030382441510543149259374558976387911228367858607780953274765032122430355577171865421053902404502653495873099546874038800313399327846171061242346779227947844024872286387703313521108567133488915475873265869385930904172670782251314735345062319074627605036384033384620565180373744539327917721705578013318511910480044590625176492290630920356670279700064592981200741446276313552311533554876542210791250388089290606870923681311251552854340069964892374962546502761162590161139028555298919579180744954414815026370817081594334324391849977151481712972468176723950284784523517377327028766429885446427843946991504750705727403006079510116019038853693126345366456909640459481754444366335912244709560768403905099475156828812942992099103720350003509847167860310365526144153553836235747772323309116485204914827378912506155981067287197851671032955446218534024366725809976614973802869955638781453530333430674780551282691923499224057166728695037023642856427347785235850978388521113921189040329120019994232004238792339662031381295518628333233816966447498507502155704692513886179821650087524394950728005985538944010523961138182611984596667594689735919966597482779071399276798700044275433929003077125155827376159428674107845751865717960480560399217805470948442287336732093522247728022018077348374493922299010002374944986465744960749522437581014811701475451875575123253199592419103242265961497512042785936088904830509093936616389477509178802938404998214194667398667418921891827101920263648704312696799515181210613430175743750736876784539024708734687813642863106218143061838670198919429614445256758443736920124532945310916220071937933365231972720066159470216423205348080773375543840719923074633156293234190250262191901462828770011867599848714824567769036707201133224134864583263967856179064543580065755090293211387416426120105063174802059359824761675617207428492693214639691180933056478579337422883789156258314339716739686250065713000047814132414423359622810783051202625879240244618826837681371115724452651321974490973896749788910551780926779123827571102689026944202355562160483408639630575120467313030776195436124164353476859028579866081581812285746958721054224345708835279081404597882586737606814419241564040137074439187742684747802980003418981845102566629825732886571819061387852303685785021317671113303310819620154685912301498066050760846853110170533816163742617487028610224737118296349938880688067524327041650633304091664624915465954590320710653382078203660399038745823688264469417409266489210925460817303968341812877353032408461307611411319997494523150577118218796599794957834149010685998007302221664301955468836989879488319471822858915802318954822056683070381857505688960956309344742323016786527121481112926228671661835167013521024304206949162482835019603147156561503218559792965057423543332438809301923406671917482555907977591102846608619963966414700114201910939926478793664769899424886842364536236930642151277252106823796215750028817164558565809148313192687465559464629261241106855040879461399975280426556257282794695897977371668783258450840544093832126897795516595350151928866313893452772700004875172042885213865934029331115508200609439300807192753129846356869360027627362495616968737788521980198991395934192172777551985131570130046283747931161412543930564071914580098067723038486637574369386426361999687077762074265623263496309367043398351744858495778591228940144302464671131609728845567693396874294206146383365155090836390894490988090300250145110187794666453577219937192009014999173862519006029748820394906007821026755424660726275440354312081434830454224081223964099798740327761897128494330676420440513043484055596006985755143956675593413957545564920007138306701625353992461089913427776868122608404978658186541178073345903647461849357235040410737866203109537461922347906249031408665508610427346330025716292619716296234914389164582131246143269858276376547480253593998145511119689336189501703504157467295002842733384333036454528119420658607640695269878885279074405867929389536388450838958589496998593264726196222060589988462501536794526918974008355394122828440198808398195979854354379780367202001042431967256753450501712582188242493216076846051852203142462637460175274565923229415621887451262797758710260357065810298143775424576054348018895895404055836070231569772595470337378779177346436345484849266242565864975106992473502965788581995574570821377180571139209166245595296287331592526641085089536679833288207653269943554798364567311343241407811299980746607050120368690934061964490464156642590939588407988523021043628536694693215299995404885166679495243247356467861608894621907244164834994100264053954343801390038265874781890142822553265595892457192523122501269278926865580906500881120565575377745843874069165953407937677071159452762374503938018289134764692758366653773209375082610807000690608069205685333990429542448925850346479909057088864963752595358620147411232400323535491472608335893530474318035169520552484202314398470985085426598643290679125468948243669457305909163433609922701449445531303583181758025768523211523408307222339031629258202393763172604407132299155447468174128865125695623620245904283450311402294801672635645193691905308188075984584986792639855527257141427308414782225835464863742304799062902317722693346734174080898218093981922186711572134990978704846294718432070664009331322267580890895093268196758858063747779045382438552954462160097197895973516432693010687244590927823410666598012447788388727771244621975817752336877222862559596792548204837857139618338310773244733614500679948972181048572652198718164543830991184461107948923566998946940923535891142672484672709071630879139704053057293958581670464798502648611397471486108714551056175798481970978278702933806053347674423466047143216077412594500992167076194037896658970711008862546900132181171965748192512102926278685501375543336765839722988381316557276727629530437762141912848324464300928068799386264707953097902408390459604705945418682883994862976414963528986856489461408260642761627366021444795524417227376580939186662430042684508607150998064999050735204850072896032458988624470910382698111879507615173749435216331835359681888989581453006333908545943073755901802228787983562451760192491547698604973563251675542748931372523099774166907699793286996419972890531312429116761926656564452851272137436037602935566036387785119608618192431539688999024287222144579299175916313124246151545394875452068294973953028153218335576998039782099605696819338386474740113894474605748973650080886326004518035716791961499251266280342827442488398456955257678942317019380064112125530996599122493345818849334027369925870666675423512164748066655878504883930522178093925444202871569544838622966214578284123296473890128326138837749392546776315250068248916651044599554391398771178632398500952488849865297351743664667519885824360723231654941703797445296383755684488339975182017329402637273082415994972998931801938851817756346549856083193883139680687699437327035125021014740462237166788055767123568260991216245710573570990118678455848306086792287123383133790467969315938095880525298116439075978347537810992945209949936098877881733966957066946717816355554762879832886043413966554533012857923758519733432376596230083687901093699204164831967202781493800396212896805816695004403688395603754684996589309102185013602562827382465516933423459987285102834806437208539156851850903822839404629878293759955785664845053468214876680091381839812750277994463504997155950178603246123458255656911071029477581908447710843513191963467588738764361900049616288264573216328008224970460665296363224657816715850387402900688687910157889644685053275645379407865250454262531616417517452547746284629630200701292819840649914779678074397429677315053360221242497346786827052037406794343110524249048167642348542101627763139863667016685686812147440011402745025382250432956604581929245488697994926353201618082977629864062940915929624917912925460039807994749726470586394247147069551474813877241818571098370826750742507709370699722421567173366386216321994395765277273953746598378082373215070548017079128981850543186137871956967498143283424004056638785516383952447755649529083771496725340871307040957340268522026450534183784171516900764854617786132231641456848714740202931764046655446134319237659788537207082673274863011276427417940985366958199887187448242980202321522470658461641658136808524685323290508735276190213730483617181761829459645315002115941506241111105355464615415312198571195070602992461019867831995087105417055236441995561244551114435947628427003841142792344724951347371742898385228699629984863185852616062862103329795494269634576221698938924273067427820688053358394880910964554892079512737961696942217251581487725168682705088047440817283934591283032625219835161787803353486933203815643994530697392221785505236261974117527978635119163693729235192999617559267686730137229183001243112961230292791522950159805951127914767482470748271962131113708972931880276229790799259125915028929006805121009873711221888242247554181885411881123608981040682578996723660680401150280554021425487059265521211927361741556285663860097140194361275453003368717910177012336526144049802385953994621405289753301939331473796364565099073344712924245342163251690013553654685888602675916673642305445644734283862384286416856120577782787169969082246848786790045964245284149594663364221122361044068010496551997884661790157094887916940045756625216141896436537967725163079070947357506495120078028713359440131899289297106305516536461406186899903195590577772431328769063316355289252934753955685819343765538211460341228754911440340310212375838056880317655783921049155539018059798586491193915274281650974871586257576686652920645523125984175303249910544481196465420065803180690834769184848580292815506213174496797332250275587929142782760473265422038042902291777162655558636905553136804074238638973592604250185292398813458145638912813765883000340038061423980907517867597267616631825062610131488670025481410045524849788386981085457360988308658477841328487793490615673105428195431784737899806657254141497214411283784182869939438615502472020166286615106905356258698222598179777984461231043903304554245959709860890130393496358046429340191632072927656118605741550662462905163008902902861907139002073466775693553566022322025008309943637660932979660231083346010155518016389731281552542902913088582170355530706509097393810009738090968063752802893243947925490637102415919837166028551014829821115584484771991175290770703106331928230228243429726894461490601286819959706444089400861780812960214512997511360133305672711405100180513920032908394783147719457402604550708700891283653910485627902132371817899459664628209678934973544269600487994669372384210951765887055552314051077101633061510145627361151729118677035746898632613318781347205815542804133219839917540503831032592581084566734818684281539126492412719470018265042726333396130156510192001382038626617624554174304284467921547489232971538843427520075372195150078616555325797026174319909775631884233264376905041853574707103800004611109115840871932039084201279713971133255026209270272266111673562231522375659845532111406111651454995546191881794738657055266995651505956324083097569340607574516780325420918140874951605499524132642680519562937625653960629645240401731934562880015854058692036299687670872883909749278323976305081009069485528783628948703000302911176778532181607319304639173071241897400305879288549557737584436192453691147066779409528732442544570338278567674820059889276774486585929491987427571229655559928077734044757712337890276613818787091596235881834172276314954665366211017314857570676689520160621286052889494348442916625324023970816280156450805072826698568400715737712137124953314836359634648182801438619263410539847972168732267886890864739500338552424196033174546854781773165041857986542648331960652773840633390853941225823931346359844936045503954666700854478787398287856511329347672599547296481778260748544160716811727198239656052913260939306992520157392653570576253515768822105259247965646755453733270884102037617955492784908622577765490085768025929222714723855361242807326945648814836276312805301794073262056105201721197450729684694031305495192788354200496249159972825879646446536169793176566241086587225070971447222095271411399325961816010583008941563048542702797104020066596047442194581886428338347560292190973068782317512107455452806423120842019301464937789683326103855044342832927097081160744257338523092672415325939915859018318005310831298303569358718296599501757992524966402760925852618688548119650622116679848726477889650676140901765330242160307291557514837511199588925993587873389062612831982627623455393462986824881923109729225539724320106995849485611677971938723366889775688226891213659713055469925943307222235899955300793956032932859665555104316075596124179388411149533803397036552056494354103814938039298086502279778735515116592560320423950124192299004949877961061364055241385935739476022968062414293628052658085658109959216394275250743741601581263091700279137378768450973348654383403486402890425040351842032914000120558020738959568213809116150642361765203366293188057618145448663083731888584455972816639098148285464758362847351454821293080260145287109475617165631584142668929845766769315871280894778989093451960828046241549506763233588736665671392751463327257642594702887156429515478177625685280005331168823764023444090735064615481321123517265783338605263937604738319935361141407819219835292689566590893970898390205314792830266687491327526438359726993123665748144543894597602229837129716251656579256450305575807849870675960226754196600292679071816283548533338672785865844544493216213701825840792063266882987367830103425143269340890106791590760618621802711605622051132104640556747165295751954579257037473706837177843620018457963657409205209640512701602078172623311410031294149901888600214597698100363358180867483699139523986932087833044795937014976736915077620627753550128348153752752469945833946397322714204597919200322702591922723387453889573668698847429781393337899800851930446370197697244241242452785051931566531673554573958716957942583398140815014381214853921904936244695457808505881131285620631231232027633666930208785936114713480363436647033843914522484802818726686931920440987098031553379644632121595694609504136901080305145350086301701714641275967335444802869708438487323436479839917358793145359564246545580154132574775854013526085027225020222702188629627922478670372349090791614547647320217322420857677995041830199007522188740221136758012993413920462736734337033011784567451069636631620867331269478960155670699253657066404435593164840692820564486293131274371301360748254025198351481494425328955021201733702883091720726013183872590788164775845769937116128411942207513488885396455066918426821639246973854236875469368834740802702220803859263020403821093673645589804210679831801176383758162110039887799965644687023577586575328215440071481888232146321011054492082221549169776262833462854200893941898709898073534505380565046439693332672286724728508359204046083839467813800895825127616161661912639730663956928106103000865836939104547469451679707704637497761599937392027185581171900313504906505390871333272446249407775232290123540605550328100622031794493499487270782202734237081390588617682285533885236833191608336455140435604486044838038286928878115877707989468336085446017454057374841373389960552393547135676888564984925799974973448669498904817928368823565278884431342269347817827970266309356933258061062865214972124046221904259773515632877167610329937375560210139485255748111796208321559454535611508601389739764135599853144991792132704664831363814319442348894358745931328438851475593970501026585940370060755442290972743303294594661198479807084556894973207478759942566125205616818574068737159141766569694018665756000939375257345188664139437656000111584050613056300325420171303949228745033375975872014128164654533628679646183858874427282347745767913472901553647150726283685296234994922359164141420911353135303956932845222963042204219217561834807513195670360122435393080498004396094652917701734793473668898120105310924422252430985178135521186860407074147779419788948350251639262014575827324321357974046242083451204257315641743867243335962852638247086335831270810887453116129192194500262500590011392342373275633014545963848292499752756754869641718562815356561013170909570941863888808907864341420608342009097250702255922806132571788891010428305697549476614126612346073897570019538589014166405354979273569666856437079873721651451105673269511041606599050850840735972428766515440031857219153736838131090300131448331688538326964391572281648363785935026935527321704501505497237354946356431387503428913353826454726368834808747364560480225890724863192146262520332139936877801934682419976634987383943999693578350059452407430779757610266506021652252400663574747683478500763193431977318092338797778442125275871359650295676124743736459525201963827686624119701144040471714439833272783857057990624370005321521518542154621502586853769291921703343446821268107777796581169945951714499954907925186111645207764924818912736819109668195223879119940068236385691590850039246415507224164127700967412607787136554489190643704321925620152730946578576208003651703333242386753097742652686848810585866283845610173513840634852348396483296997508809462286420722428291725152675121523515030293794954099666560664712669954471875134512162274681657790005304603760438768894091735298337663760265027168499958388845094635933968495604884799637795762177222793597310776152669399032863681555477636581715191999906917198985221754819535363519204958181807084358655103849782908443064432976740080131836426290647129929234000028805919707977851530418553769366716849814400203165300599404911200624296676940195875652796288458373934671060479353821211734801157791903532440370441118652436187692646808405679846816093882986041654084700214885843036316251208577409327058496591847809709226755281453878610382821448136754047382347918316629975119697866660128481758109169732481859163091617843619950568501524012251720537849131215516094818722410185513180622824108309767954167433857546461425054910705783262148093813175004229339706730774832108356107865704955491975267690806282805178395601100049328176386237267015338864788278674521956668832925959769925410258442319753600813500003595714423917567935290561676341861484522445949884603723394566211045629900025803637848745528922578224332212517264204715287978346160583531895260636685722698495868181263781797184963464286476662830558995636973663823261648636280499340840454188693689904319149158422930777240003952410456112455207525711905820437234759743667806987571593406928737872200778642680799115333427429846079402522820042367438915693352234320364535837438684596850031323905215535381272774166653402587507303667977440798279401287255502882563365142718283186941376030912699498782523549204457219990357928912463003906955466173693117829428553347686772480674420503581934184508675175731108058343438285647057319203734644806812402039875196776453612894902082063712335976739829086468590060108838169492114610921702030758473852394830883433496275828519622211307653824304784180199906884602219102578295433342463737649256220438689915656769449130745714389841945381467137136686816859436924723053742740959908452277212870136939406464968497257897806349659697846131375726030049523191723972486720883849074992945024119587226636952537911883772061432117886490403564524396762200924758119621956545585757826549627374456514154088933678166242117777433780631465066563220965014062273028160342426479886589302890715723463112500977488125005603027411514363493438357813525347948871213435568262878087707685099574830404362246553603010307713351083505989093032856975318638810262131476214417552992813957158962700996548299011595256272567148177165976628156225108439981325517806634478575421520456134041744387527541868888637404947970865910544649820232771295190675990481413096866261630437234288043706102023716179510061121073183486276187947472468045659728614363046759748498294059500471090518394729849696368050033360202722291220889950355917050809943438278062995307458954492715527064180328427925407823322270446645408037228552513393846184933381338731277261276659171506861530493858973069179169163410325403261180766371290952892671401914180612252061938543311851821164118326347469696495548305120803582023432426715532123225012173952003461257213666904165230862787386883928529607845816449870011437411359931775860181962179422121732935692980392878135003304662744578593822649384486643598868465881210810868710702824219554916974331490471036747406124447217019311963170474166962456430876067010211044656112897099024560300379931155974233233080161985812457814835150914359170956555075244644248980250754536461606390186483529021273333160387722289017238344897684801068181055930299495170647682407822817872424271070238552922297163747646649512412558493665789932516133211649949281605747946257905922155383463851946952926087008427559141235357518161498492249258380956754584667518047401589727838175886580877916243242194841621272234783362395748769478879865200937427462424405005097061528147377423355525277846701875465325569034567324341849096445906767595845994736826701316064251669431799766427540718017492531238825600454383526484545189915602970427348295164738879709298962047184904727715948488798456426977297908855458209482806708211292998350959316634595996269124503049701517219354462468675916078281080809011900584449100930878248843758675923024262374789661084738522483329248171371491252242281870470334197564175111665375647118019769710990481840054241676878511886842795020581279825898756700093387759758435727150111890589878028583547919558160165020385883257176516976274527855708631822818811087652245212204235137883472846590316347983738726104772095530105011340902369565062408714880647003570539104617542725423059611655189044542819928050024824681119144122332860836465058969849785582404115219478352470391078852542731656615459622464116999107311673173459900275567852166394606043050404688240262603251668100867773503098393203011089814045516551229580260599121767863841268811807297913269675122246940753215993226865009521561468245865624303836252504429433986748661693748227207665511203040340110966845587160792164141224216983332356175340126963985600444118850374921447106801338914505291254747075678569807180827441006151196379101005102158320185633844294984649023082274640564329472871816979124645740709374601938075864391368740422233916220015274303269950044011378113096944054732706535262384351397221244766370879376066787475106154320954437159829065937056634907699193674180218060499780685233989345688567659239509835643563693032892995010973654722613318446149698227112708505579018582754821625117906656179115536832573502693667926110397656008507441810708930131054460826067578823587125374614386299286561636213715582607027969755502788066754104755881528555113257803435798032930781541012523646356300772288958864780781834846034717803847374797914541736600581347715901363761081478561372607614160240443263165094800486301337972664375275756621444405327423088333001900450652034113313832552096117195668427159215151947157186052582735767130799818499346094320349208975209237381720950706181401909221229993077448707554652918475517891247083522281087090283126920087294728491480553266954791713480335913618616518241422538070676070274731452843528675167753293646508672866841286065339461904935613849139011248393842595583073417522916929107399420862572769193943468672376802640166281804147778342056169009850081293905416941120712372079406465858746978254007375780159241432922442954051550659997460474688268179322524838351453308110039260964735682668048100147688633054018165047712520379011786707849524413081058976863718131611660457481771611611661006697939981608350191447442167083560611696226816397477459495520468418646695038914175432384168934451902643346586916732699175075422910059630872513207554402609366129240737550410253304189382635550549574810905017792004803738171131825690881489416908475057324053652831202052203908943283413020491958156798920334652145472325360804417204416908841477526958669639930064349794540728761449109696925006784785156512029588775378388779845349638871205426520397771079474040512419402702167743319043643842490809603444150034035923127199850177226554829446916376686245048918847440400120649766931695156024783259730252762472455080844402084049076027750875174751808977017589268747287297431709799679879405052185187559913222009945679284643639167767718211518048935400879981952732399949146302480156716271659270470093831450090561140916270958580695329960275883560331547671068209746514350428726969535003618731867040265716035519795358842709670587187641483493961971814860545361793577924225015367723276183254290915440506886067451144396172029856222255237398104727826812100593957220964922637575927942728898593902757457818193042077064022897742099947019214655855265918547386144145753185808819087576863980035062428263952175273599949694622682907703195799684850016712759900374791124389883291470105248659950009285229657443103187942964687953137873978390687313273354029854782506231976467925894561723625299912386742569708519738740432948540426381321788957608265442643745755888253692452004852833390627765933066952240731899494522416690399861625676705198487147520699460069586981277039217845887437730769922597539393610133316909647659237556370617507904478298616706438268284471540373043008287527730991185093422294629974233012950777297375757411732071098157113840725316460031413682048532621271769091702901435859816183345204205492385378322022175448083151058206904443984692981491952902892523277347011759688433824411386100808028287629635928760309785093273476741001559498464784617706770150230074536321178531762148161467215252080334439807913135405572028492542273148456103522780402522153857056236139414912955983844162592728154114970887214968023280056008178489968058281571510235287783126236549400885428004930788673373883138766402845514449154697388713712851022889169249728157530537923649751965550911479857217441590979142412392383896268153338037535311249694331372234812511367866660740482143492005121635592982979799310685285198504263861509855762930614131191413637441324817705415354670665816799357247482039936545506742212570963505266082477702115335473509369751311649516542701777968048767118997578846206229013903103301239899033299858104677730678485191402991181079099492472802632579831206788356551149544514800561667219998318143251790269640951968623785441832528108281640160891897648257989903015373283652735324624479976571681220515349431170449097678808978348022994697478013600154061192001692424300126726532673230655780932412391904375486107708600817063451800338912234310220154643451438844436570310993450095239152491175033448252320519005693528221855929496549665870704788009291600647431370078887093047363750350433831145012826043352923231612529444994019496519155569851748912092721178633892558212268322985149938342617369595885045592393550167034706632303050176134800658930075899769234775584984392085615290813340881460640451817483711544531107970834428493390215449984798491814177976633896437365206045418260773087600907538807690582832830302639294929183974271238270591067704165283380390783140618131038203329303557451448612467751211625828953047709712457151712978151063712519871309774877864556279405014430074950351004359862276591472980948045216336685157153452564156329837209016987301971505011801509222603899712913243018390317418170770536986617945560814082864140780552976523753660631077165791901982431134721656232566415704526663790556531226248332281168437601602488220654274590352351062506561462974018615933658365194236275490126616609746064167847769440728100776251473260775832103793916377373931156108591705978472281904904265657057263432631284363355813172996244745737201341299271405923150272847674678835419825851135989977695031937266064045615005238043244340618906094898106692304244420624998823255164036235558122213085375363962366372363309815762982184757031246273171621603013854382907006954652702199900591817956946685590171889449724933631616896725255650663970979374652674704777581942232097516208065176552985405817452947586465496089537976569700961166229405184801736854638089665680394890188136238372271748507225028396404204441046430483021287946340268549998272305838896142597719676495791240873279829348684870308569469918914803579057345052250474710788461235096361163066271601481034139756968843154479030629257187174066077606093931605064916770000467211738788100416018676110383836972377375047043015091154649153209919404111391343762530840358227486365618497137072682355814725187968082561373514567815406364622096678001250387031321145265572532263878184830200229520670747032319107440330923136625548629789305264941065726436373690093102922120843021316995206219894064599061841406944715592844210227703067475772025625120093741702481192281874849984210539713175880824771282959268914224985097731538723414709202352750751422243112533357908550788055804115203271276759876712620235514215090186978216187333314737235033695321379861889961803342366418541443181661452880349156893769993822848337209814761581942784400203400048567947108427662897073931542123716005416443749680870389107377876928865510545064171118593889319552858205905382614299960006055042338962160211660306927379367618277117494743594273275498058224697191136723690777947262830576430033727749812890288784423126115281353188095357015630662959703793843242580142273642456064112106178623354306156666164887901893431258528995536845197300262736543706628047642795005622026158130091330606252819836823165995896836459509543301591893875731153946876459525548291732530668960859266270907503499485338464963498179618828044960476629224382374997003881186848895236807176268773365330964505895533673080078460255218314301569601396859038544936858440934947724424198105318392453045456259817408808179898458658188661995291751482194858601367197403810655332455222676899105337518156682039433429225744312615791363814971225020458713720948506285669996529510448613575756873204116174540148196739432429345861763842210214963330080873694164897778382903784980993941331549362047322350474411396780578487032014136069898035554842004124573831690315089626972158791673073714910696540713283862855725072778165952768473251135280819992493677928117636709533548000023212243956155022100205834514598091928827829869277858589600579056300042764229487463958212504556038746532446876546528160365747051552076661939778429141973482538816163525895830957207000095122146792405139702278760923828547136742059151664355866717474254841955937653128884955411154999561731257507286421542022743332310441696439399538941476900703112868899649021438243119203753880668343739287378602110556249423823541482246959382883877390994510612394836101737814438521407767023040086484678769593612021693324236184615479793488827712358101783779245800488767692013762034633005938515897129885200117684727431016848928521145692955826975825673564888399113709376563203062621213405920177766425685449615094320095057112608262242655486385927383977500805044057579857602988858294159232491675040098633756325640839686785420082991184669448242174358792124242241159918338181748843037747178234473464003789461815579783769260865412944561135595932607752231121305079884830980600495941897845462573667420935323662131107476906967040111998592783831880240338504754221633113463470707312532370528788668409115464898511035667157980478504923514608040337425910906109786591233404809704456395388145708955272807007629841172821838221508028517848831596646844604538549677150698601534161886217249837514432150980540576053452361410105369332256062675558299307801416635411696155387272153666413705331574293505457847775610655238324830030351033044402959362543641534276290709888329884199355436941624569921242703529710136748588875603021562520739573006157106493666314480617561311171042621972338248424168468871237115126729839490574387050541166613226343130994263193361341593592004358314232420020830914902350468868220649201932807400963212636911498884151310684268560789795511452345179971065899668540388694441524637614840890062314870951428705011259902811197975610636682918600552300891298130157265265196814204737571063509860234187020256026862587073433958496180976451524827775999397673345047249150718880359207157660684300240370682142110866861636098146215782503366078969171312011854196748830583846488593285833482739652242668242931895712920226633148231832863486008460003723128085193098399519555619590819483686279813663781515286943907428885540602113184633126188012490911494319058380543808816186681897449365817500347051340071132541835800986250128102756396377941590988260144815504631237211764110059679817309679328605725259828364470818960228557535917265148304177841702213949134209713166081701825192110255304291783473720834295646475825106462256808196031431447042792874890524730473328179807657757853759463256505684238676754892743682352948900590229170378723471161778564166388857530909557355798880442844183868206736249871528266457229556142480062915009963745680158708121782077117512260786916991382511675230873767799438527536782485101927579524477945223599556455360008690300130429744861522917198912550388641088387753947881070981696679047657624071868222308703144560134577173941148293472534216772201245823037227868950802818216072187160905575488899918154076789926725438076098664541302847377936381571695792318371746121745349906881025374003871958028457678274850334614995120401508214711554785712369519281011830169213326690555692254838118322401981187225908540787622012105006228842756453542614180269390847537229520493222517010609725932996526582777149043817806714894293128519608496445237284452149592736689397005600823464437975818993859786488639143871681115791288792678955649366200339833460381805665220287221962705893966460230171354828165224732456215189141729690733696396910435593874931776474294976171745660494656985678873296729566838722817411066579947394597841549946082570677832680187928457180717116324703734924332192342632728249231809029117698650097889942674808487855056223548930181947403576741310412387563748615648629092003715801280906638798036550967458734076310435976141723082175761009448153727039775645464097558640340419730921922306424528093218737909586013869144954792135442995494704036372872730521694462905973453415647604782559835167774902514566944135475100375789882794396954009198849971105304563621846915074758210026059999145947835857489150989105223951983646520677368614623856703808181829488452554735236860844752838181797442699191977359346275511480214498396102390646601187797133545129831395233552665944017893706852696466919239648527001132318962564506436951031577872193854057121578286559381849450373254574237401750359160850200862410379473693061825695143475359814224731528526684107336099706994749098047168611803787293386422979392501746788674567936137350987938730241396613702715175296444198205063001753304618723243623239065118369295590415933546334934768485042017523902238299779365832343196471376055509757587915822052020517634429133650790624956651511661439059000374015843604180870065066833104724197401725949178183623981908002765850531011113065985314511566322422481704864647277624775735973022396699741205939353960894043055885436266912344066651651261903044761773691481018118696684518470355089647912043403050489019425599452828427052348176832959713579758820069077137396125054901584207987065858626501176888663248889966855893296313479102586043255624886444493271450807090010760075492089920530455312402205527396899275432069468441532615361467505265914778477253725908975558243642782572687122619931877221552085735226564857587309127550019939965726321459926887707555764817635147115775638021691608497565738819889387939184324258326926664370090806173694317916364560821069927938832493854769453138135169187025457085922307233869680870642264820915923314681730271786107807323945846758816847451183672028412105681746539328181491008295801476445194604583118783229921136066737546510801994590400696587565566071916434711088217496929923362224958333009590240738579139119279482117754981896599507595083226266182560260201859648816410660472255575981341126287404048737079167465863211416962715732600443340559094004355242086265109035599978412662880026278436236190393744086894062309952900351269920236303884217849746673979124745461110167888365618055939473180724951910764180765122628931866341364527564751779922664495915707318207635790765478923141522664479612252745283610475226349580736652712213989727772581859417412568339211415426629601167204745057043271906391344058451976380976430353353021796568235666615024910206700852880374864076719634461809980885176027383831552537134751029025218678500073067075530447524027413958320184591109813263862585358078855112348773697880567472355500623036401489723036158713268675617301463041831468449185506577400087329939620569858729902671217134531096729783154672668112683228253376334063712947750010848708030239315422043909784483924639486058614944533515520707809480581924779178510940135142181935898409001538887217473244466763990914641678844523714691226171942515227689693544382475672631782045308360007222530991251362523672986955466312457446774770762158458741465458249784713942087339648616736374403098082210012918582915151790656585905418060856965405704921253736052882389729198381539107557259704932395811764393392985931042837277250445809702100963037113236037383827847750868841721947887475942719097521988097688806836646956367985802075623957518355093727472051425518052525540429958412810202555706293496397098476243151103942751308300366467810644735997835390356224223052861777454065869593919198127546976118748699721091425450095959700490849173996096763156532680767256746081412353099851135729016647809633269495599072836999654894112189194083528345618051427664879384705006872778810499539773763348879770953982127010930460616271851064324968989630616505387387220330364791403930723683190370723264347716667398071360109461961616068709424122457834140958437793440479026866481599634109670497033218423010506733957150024502181741372711428918243752719005162621275252915109499932886968988338231422889940110622004399910720345290277008239172914346088351726064494222070118927735114619804858131421673948061489928041065103186610130760572888249035324729051064623329905376160590618537582411092729093493743894493530902566958489274589597287233205310576597027072637898762451480419090025808371333412431560785057340856241060813019522882574432616480669609565013166970113907749280445935491173881060767184492738172533388997093808049791000421165069811508955971904978213588687071256356133968219479087825500998832584846387530273302829499899435866148787756502472753213963092133692121807033995362998462394967385003783530594645282675884497909872985028346059487412209439865474367235223183085545057813894889112358583727874505603045926264992223060826620449630845870448094767606317187430876212052260243346740113938435540084825096149075916483008979660200705634374203325716309388213198403030148146903978813563610943072888446812966378978166840690586732397657224887542508990647893337483331574254711306571393832959775539495220590411375821420596065418087705554784381344274005314814509509346406092083957962015420720327832916746451337789199742205869345728761453874495271355762661158495254839401944847250122881553715868752151358028481636894293241950818965626803778698903399258571270299191706074404826508815082822359392673993379134896092059801304106947363758922626866680821274157085512422052733429041454186650816355595183259911476617534764364743345479264054119942142991938269608524588195173174840178154517921097307221814630797399310145265197698624313580871795034643513758771338137683970846879759077125563398577371726423282761209439149095885881347079784264560997180707967396100129960883008989173273794710831605875099605342889321327990797944501097889126445217647670788145019266606669120658899729668526512598758453258722361368924415584473806292128928709629637798620807579916725189315630102853217013840019285790679823508667673572037411431671824833765330945044424687295490569479483560536790973669009674571990497891269331855749005556385045221653115509242635876719089055142305138174813462851908603200418328590039270157608513982060456400039155029607678818737488962908983425130562640981329534927101382592600078766306213496421833818536853795393139518364640969183881754948695960018084652702053672474766017200244437845456032860921303530696117497920264005470571514631847430596141642413649718222319122875886560556593524586951417889929214672395371178419242717987728726473016608996818740812309991505237514875111991505567619721013599212271178693086155133590889531988226577997096994271563552428623095791939222385139463967527112931895646409166520507938733970426837302218619067777761655707183256675237730056691524585936033945144479116784312968741634957361852929407027103970842134285895470888224248434341171731548404922600606892169969206593901337130655547408231456766421564122073488478018290522133429435372045385635253848214833949184432918240214905230092520771399738970990581241339651208676651615160270159931941887319946564029827778039825401114294536054777263986673693966605604669708283047827336682872435869212624644429909176711485708813077723838066928870107295243268423820897855478251081031483682067528733358366498804767931333058118185811115152067211317337528126988506817452303845820091280818947573587403748541904486872364064506958298443530829921330528639099233289587742450222186770661588218882419266272594206491853189803946741928893626070839058772324299671932773821285298068001539260438450292332310386243755201664890190646214623734466556425158158476418452235156828101169972136211823006840901215725592711645994914293035828834980334375677896163326084119052554663897223112907673873511487781483275334933557536268376089276668790803056660171471744052436216485411429291185111537062470428932331239324023880344491283227291874869958918502434054315063034476464292914421888179546170070228003364313687277075702862459861966619277889618571449383527094941262825831962164450432098240349841209976571155905781854979990362199508299588759184784369455893100053736511709384554359871897415568947722067939253268406236605822701431130102898860300177370496771205142324738761800647898224167183164073533811583782380669981035082269515431681169408898868171700607391824975368655183680706719972661062786995067131407372229883991396725152624226388719561844094994644371187963627843567536655069643215952684951699755812481174544540493270717696005988067744400236301655770548298215268418138286763133630784316615301701976887371595118564644828794983781123192732780713963040110380869766177455467413447998843993646223847798721953168837527740544515612769326184736708856989907335695526278312876477332018938681442538966626768992399260441853546515889753824102740645764841240813030194226069081935618857531988036684169449583121285836145439249050872390117239729317097767880601515161116837298334473440887230837065269150632173123273379624434674678922555572146420167295799601409011587310306596960531599897898533994061803059312614368101257817347037056808842143638389181065264276433819620300698674738100107617317300756563607736604888178607436012365934918068230027872482810583807769592476846382659727958076221365347732971809757505609371895970473025969150283459729090255245193203608819078915357171794983227315826751324000183572821581517176932812405021181078751207273107614890156611112538080961499620845878880700052327316203773653743187320480865317728427838503136714691046971386991075675348046839528023535725400928868225841704734336030495552739784595821558764546444024844261032235938117868432665508519209132060380622549906619967413041152104830125602007139370420554248571282030401755936401382826079537263603067132536413650671977290493619652753647830179035000629526962239179403449829657726381510742813416127971467981750988860813914450072556928873587275937584860044939352873732544426686572022841178817617280955808608251693826383543520241443588763527313938886777275754627414507875523259677493011614063847648302867504233150390834630140652831001764212085357111237420646299822655251610690148062766765931526330107848778059081745418246198071778029040766429067537716823929171481554840540677813383878443072520972545572334298225502202523778978453814168595944370923860748250269700450783000574675181359107600121365943022481859610987799749870961734507733724349854609802698024628763301081375542878581886510551616053633599436443207139721850024225208516167876971717607649473653931302411945642373998372487606730914604272051666619858264651605212854838376182327150115221174143161145140081800209698788863727264665082822906583340196844765097600208539841599641329584329400342552659804121123071048158090584927238264270046568697359067208908110873059331145816701875113402586915296399418744381975089803478507313531034385287494507636199179761202863458969911087503624753203521639246509635084152246844630429303868336359530312714343901706986251406954616108881311678552187098986624282673573736044391022058502247428271805622950689138391832454529865308105626111571800839805283002785722720829259608317242640727144812331684489682084701341199615389783343732186539207041873515053604410548000459234123400663100318179494150175337080200339994190658224024600406922151657371341191572270404575724122117514109276877172471166360274942448618967967360120910461172590722687064652173332635773073630343643948585560646288564591790214819618053085386740569211488337094039322000328139717412366603358542985098692372066201091121167609123282123630717288117457031601862196852847786249164536750169813648733518973640434051706867758947839078016800906532943474013708053109435063959204137483732759305144442487082949247765346671704497640204675730138019081648007453436947876107851312176296610568558092130127079566484562189486083627539484678554262533801771875007208522486713003401203518406351369978363373357880955914987874518741865171579931047076115720504282164584297353003372706564346956504887767333251863506761173197782855052984702893163981199501043884989690778154857255085462391951956421178070231639292043956306498615944552938415981490172035112210424549683947103519340142873419416952800882798167994634013840005454251875490411861687175387842224329025807884969463786220224680004418829142014035666025685797083545364842139190693749367741278419237216907243940059134438209619015104074434241940634012488201955699212241472930563928334278482182868530968631390453426845118547121564396740754545475424697382466977533472881132394072360862369574226456388343949647109582712260891928516077662155228882661089665675246052167041646371176315873261583956045748146490719533554741143497556784035523322618637912312774772795266695602817441643675049968160649194848520269793230970577767440050297552264691087967308723710040214319196489610637044850898562124871698211922692453469573713092958403242168255010063930956011544902650440018671484868986821648939678477673830424853958874249656010879361027774118569876888906722132290554013118383364927423223526228935799123300565934635696760603548001292087151426424008452086410917847841886660597558279142306761787274239896447430303293015866048050890167479154497243396616331822636407336812734889655546904664232917503339258861856662225359237580528623771791909979803104726009546053435142933896736473364634909984559698975682008950670452641027282886998730498314573008911220173343451254762533542512751167084040283776671592786591358265984880266319176838499744126759226736997083805583316537534422383359871035301116885411250619512247548454554349738792356985540313658980476192323155061564494518428476126710887824920968799007645492895155723423829378333123649676046616686121048615632721421843908839786625786534342877052636261516071480124420662027316036066333326827255376991793784483846465719958217724132092556940961105043808391879037168607770800075826688718107638532098480609340569145516089827606949270520391749768098078821719099426442360139811494555439911994456952815613733141102136974249999271927578237065906762904454217744929914913522000024764001760481563229625822430771143332473705266991401494196686843465238368879052389136660670217922899389092407170174555114898973252718691823300947202356969107594638662049530777348589274538158968870953237901611895058035804294752475933822577587728907308935619551919529819867692685143307339806405394862806953430659297083611077227702239096155797266135112933118944226077255370301946092789238119559377737700137545762887262153190356419839061825373464834184653337233163244648453062519673350772036286014782157604688371809830812357901817261393947059411835406022037753142456161920023912695915876175706751754528344279584438130678149805468038704683200551848503953835394167654735630842398161565379694603470587843113479369620039347475583967185293808476697599564172456137117788279663938804543781473910366522317859521236107737995823131716995695048013537068862829574564762642474253173293256367307387965068777876523575711370283580014702962735616877124600827177002817574497475013655463528952271197093570107888878281261791056870559385306547252941707610314045682202447271445788684488833743376679363698280845800467698009028291915869439538612735303851928752523622931029045273747321481007651278498968524202500509020033976835815381798520267544110882249527662812596453010544104263831978521327216387497006557591122686020946105293050767310077056630436886036377268983923378745232431200881064000695250116694107379694441711060623461976837015314047451034938686846610600338215297699124692968725113223457349948813144753921476895960137745457781342450181299760601475003805476738698213088170630578704753888012858242185890857323766955939400221475618231379016943229745858421117855849430631970559738155480289583798339974187897461316380068898054589229961257475492231929361365994115785605735035697176778529564741916664980222472240924133156085287563537167760560958846689727915022954637905067533524925662806394721102716806440379263882681594251565789046876592290749521847438575221134812424923033546463145393742073744440961180039575993692835972788290348900379626291975401058513309092559995889114864705617382939543428244724575588655412942533705198848037228260758190715203656720379962615916644222670768299235906629205357684148582445597654790844068914855454639322266409829942473513851559658058698263513975655187245999870983075339074492314571662017474058482207319753571995882808809164517250512137084137269797483424135551354991029358023208859251618671383240798812209414314162802861867676611380250521135215657801389434374442472571132482815560587108908126155799706043177226837313424538561592902208206490904712268820067769280957069831316521477476128639555975232756168510740065162908966243631017435369662382936915073369033329857102275059506901371868458631254436824335445927030331646297490045228188434477407841970582348882175961154825584557500541475935100996527557710422859869912329830599764976831382575607673611289015289055656380687319070962134693254289630728885665569493959344622371156749288443188156846211697806816618036840951071583536543348217328712438465450140447107621587861870714397218015131489659786238189020228164349867279773733273499929280940102639043393383310305418880325831772790534104208625459858031050818615029816035833715370708827664519697726586329129346584841711465850801727609031553729090367042895225978694669213136981148552587949399576323785781219535540684597501625917209846505823305714541644739192940751566284191185050116000790775496082586116327442087519602584699309239809162228536975239729933740237504475216576846511751025435814247160957552261041550223607377396477534884879133527360472164637893198352798961344007155860033497308999377011161705098912961006525073964154793577998503416862247310348412630932151446798533979242970175436736562439634374053203961625226653418036032595688641866852877213551707701253361472556101943838303083218118540725827656672468610829457611159907010266884165908671398118883653869899070374027777260331670484973916974255763488005164420519937762135833932466073709157645193585557341185773215349088555350957857946177689842025168438601761411060710717863452075259025913594667761261014308674029388190687110742081114634905216218022225063142222597820880038223031680600787238153115955726825652077151979499049976858908168404100913076617919384781539772242174128312086352408114452939347517605638075011443443094746508539543432454569602423507257407355532307207259071901585210262602551410391248361711998590127307124950461427871415551585211124693477580797389335159363805453704767869974156141423294831271141938638512939308401658327492907792382769899498769694496610562074940745267239436755954972148824780514959323645814099814527598677081426857286035456908521492118741768400473735058226792885265829667892011102232356146968782554059470713375392316946939947572239262017096220176341803043484847324212518003704786928538338975414068334505947866290748730037558141169354169634865440515600371522151856015402178204704989611287803598256258210788597755477600052150325119868597882344391862970046391640293166172234644591300231076669323723192985503916993940389157029208688121627596474462163038996213027767147965171544203421876392558895824257668270499999030088326565917032135373783391458514592389733691959219385497996727761867151246434604754248585106341171261718898539231448294472170460849062904220359329299592082889315311503477377703438782591016985363726601249223464694011750198184091980610842354492540077128796259154104819896086303804730884644797336305137293055014124512509196242948283461752972377401665585856027315762723174397715019029627893527579584189024762585017315862271991788485842326491319012483106937975266882546584108660095412348481430159709571683534707903317014682084308713500036653427406039542625156684084836121432923839844400912434487515309200818234019970640157509097706792810821638535711499810724376312740408677135755716232648574943217096323439208906549263666270540658391545035401311295248408875156659468911402321924599982944969398805407177437751735434025626290722387080119800612197103217969148880314019361558076545132008603911105579274309211875288030465022089434319768381745223911940902673724990595417077745988156283230033980883171465585123970794530316858003190721278877268851351644113609158227947041563262032190847782522301744128285316039384807592087268026584772838110972032195029198479907453856183484859056956622262286547865018611488169635262491222738474063533250679381193990271608196535462038378331466009388253145897656687807702501131182037294720487547720843604954877007587848547223316770630209429366966481731844461013840290959924143368782955366786550788397084335181267984991791188327618693875134475521151880957520117382328212088549040935138500000342324936828377507924420458991040572412090079057796863831684161629986554178486447174504913486051189077881899339244828369804742228117534351445048782963151947144989037868712283289988769462430622726802152557219628075517663053863667612555462571118568061133690635209697021146621516127738896287927676506339324603387153563893249928979978400011148548013459560239603229759032819726607288311697806014234745792622300409534594583837369462364330191805144914735526098546929349155492226373083921041869267081977781077274775027228372041226886497771064175863235478472668820906036663280793113588980461414900087977635515254870737007796996331837760885342806292352951446722691128755638937359176919870178379959840631580603232793693344659869673652959546959985110785404221139841669162061896867268939521497086799716312701523601397096513581102935924032768307019655761886606989434055537820264287103495408744740271640468712980349905331860155948137769163820733784255997844333486269438275945964713491049232124307440243651723228238781044378892461569109214454703036667299758970022791155198729354330708744993145876259210900072033991436998143042557557695440776870141757231307459424246411574755042544879554286356749483532322841860393592237448676513996362598959300654477084298772240203825810707558028983001273895460053818902976902112778333637138765195948351075307347363736954871964062269822140820405264395829201907232863144319624534378948110435631089244095850953853084788115583883602343274137716746234113821467585055713248216904861065728902184934517242959033164028653692304097384199825423296243556560049238008677094689076978797264795685070127290021811536974419100974034290076184041825398108117988169942434124208504165177696985373973728068069189158260378488888494931249468676665503829182594960202898764456379103367620751658317578107095481107939463905169428920993887059625774758561535339158745539823276474499018612693836797777726796142914007991813300301850794665448118792378025696272510478688899030124984243071091733078093379342957537168793035952171165598259925125107708908153965215910069019802293548578684633055987956584470299970993670827390281009055555173252089008361800960403392070668686737574342257357558442824075999516336077860067736599898345418356297994667971457681226362107459512721615958792492490831308247967886466819596552838948939947094812260361452960189343537072594370436396728367052971240105230765430762676337222605674491539871620783292545103061790234173650514731280897390643737095672239320301815947234166171862562195447299676301068538965951908089831902799464716352186257526515667864216653802422503656543281013648932431769093765270003131204755605751052868771356564542721937940296800245771501920389232321963220576632529031991961606090834869682879946241345178115719454892224652313538468534872076115822219119057718461963042645455943633792142283412550220086858985890607942683662784324233289489200100921604028902077172961855730671853522002785794937936006071659052288168722634621122502691958154480479256106039016980980969633684049285411794262036813908766791587198343615869802202238004154019120372474854531306555195273128221604841061602427800004417149544330640209862365135327195472028749702183653033541726996036272613605796615223792665062054033778737170040372835719966300041183364194841993191700391710343776710012962243138282016559250210037844305614593362301850893240014556594911405139233433404587291134705443098123985058176680810065442788007835705711703611882413396306368370104222125576848922088984224649053704336303134151078237312896218456791762263688987790756129894619871337476378840632089904023977829047860929154933324699577122989708546986619449661330450546413792001304427786784085632872460955991303794698363984737846199424321500967540233818733092788362458112847485411244862682975393888370199203876595120570335858506984502861425209447198872799821361137406100227051729574617891929053747840236040945246411418508913251917488109951848558540602738316182461571271447261626740278519476218357832000829146018304055808978845001823450586565459791281622453650681030165883707490001993118997412774797347717698942514889764947210941721212490398397494169359954258861881334580911880788791769056056688319863982778081210391772002701188876328551682853931253090762583621544396608796124535567684535740918973355700398376768361877021605920499357270425509579734159524104160520204722077313281994085920943995470733956433129228158078574990996778181198659361548480233039609816824660349337384391167899841398887520286338691156526574840450688205322295464358013101516788857429082667560283859854010574356146206019133542239872829803343755014693910779464438368401250707800524617477223529500499934412777493890847076016561706649370884232277263594292529024528869295718610861077754389479748551469979365059356617348882375256587411835149049051752902568613573663600744406005470974784532878664216814023818301660475288021728237693426618336028154890038558275418692473088985050813416319555475524340930153181261699423187227777869602087065165060960391967189740582484523784629592160675452867748722651822393070282062933346680589430845503521113433174508589253112070580948533129156779881197484200923561144993569913167888791177948735450517163576286442151557209558726128357329173356911341725783376857331017487241701768531092455659893918125220968408132854783639909169264355830327485090786740796784851099452439066846329361812036631166452842318758258713238521374539011004008609160214892117507926662840277158455359741073579575163441046763876393001135445752716688548511209218269302465270785808810397612967341304974022195125593325640184926974587098316747907988957482897649028008218838994575705071524047345400634553374028605636115638651434514836403726072253296068115190822967724577315807194194104058399098417720066396731558715492247454129904884685040223692506868122220894477488851326785668633282258701575639479468175150623443503939555914525698001447021915641990527725690886446478270441222300399886552899194514326092994897863444442221893287016451835619836213311131288550458921074852805728602239139224979039675890240152015384319196739107421497454515329536771611019146638592706176922253955222991458924957990130225272388328720134688260280716771555736333716456428873896308040505288748849078703112719763130786821621570124979837878013008786581283282796808408966363265943339992815416712219312857705351110180106740566472341224083202527349463324542026846518562879462473468596833765982918783452124376436866420096385397078123634918727615083769880552464204713895028505382273996385459144401776423547740184876679810284137732801799353481319209757663839014535322716382868648199497950249824618788049196103070779339256085840049632947586047626398829749568788373541080538005088232925303849804028744612018961993224609939616387622473477274466173817257994811194269699327832399910032191743803442191922906073772127065617887493511637096295884899136688019680817734785464892444843877933818324621261732712385481516780772024417902397108829271096513491512643345633552062377559330908601882004368054690050834816014028202795421971180910060009500184971642311437298922367027435817981357404377875411375218977292330192640055466085557538218736283796270867597613238154287035660678364888422471961078878352202399105518387043660490346247565706677205354670100990350869009481459924521738212545392208595991295802991718644511388040230485810570767466347911314399703173865842857837812127220653274156448183013036634356722833277340010240964494318925669942849824683861423582537404517758040580384064264608970393316862504753037578736682839673914733859776149476192641292853593847459358431221857754199629991131628530232191785260083119242298759709486451320221152538602604955347879542437197781414922406089180917498208944572980630772027637315966144390475028221465831835567168320046384668908683196373687819146598219287270534047695724840401023438529088022690726881215218518496245487122530484213491439238701934311784159926648912837165853139648079826106690486022020658853383323442769610468282149672605276764623900687560578266629469193868614191062465747715556362076065174294027048644246178387803853702810126386753103409913198190278457030374235397158037639884544993468144340416234877233736060163529313392668631227999189754706177119211895651095240509780388462475936240036845757847821623611582928873600892510650008111550157047924079610070402366134480339010570911934297189562263914620291012948068715262895021316227969291325006914694872589112524171004327541592798022103171098859651168849928655294097782709867168850948743324795807319184059620532379187702243005054106325321201252490024453327654157927448302059081870458428887537772820173257366063184842920747520239714061274408608757366624570419543715397044448199625413724499675747486124213618837739039303785207480493405652865033419801926482200098112382280658676717432195135388484969607062625075956373006452192199753822269404573232481063613326088149268133624292610867566769028891576414050820908523799304773932625096829320927831796179639868803453918130572280527125924980521474834925257553936637626517487910172107436701330534563502711524986231101164706049237503768329663350264677033118716552456119192765163962287457306233191686199924467484317395675484433161575661933246088498406551723018899042324360403958217313295761670173796012843497347162447288765255193346314313216262245234865199625723795076352425905995253681328365599890646386277512092066098394523840051243151540775029280457808382635936614398311315053123051930098599549809635674995576244279055171385752305937928674676431912777646940593388475108213747110007020903852296827989899743353267269776782398206790460775816154345158880429168743614438078472434068257349824573205838538373290446145957103029399610341281307390471832003828266828858555640127407472891622224060122465015536068282129472844619037939880096637444046839786237073101925994117380788531726496244565852679303701063545180153878955217630381068785374019680774213553741785411388585353741900846049829831759014250765684961475032470655273736864013391486101249375663452032725864956010057267133830564724585262003423864617426214317551912608767275982413947608477061361708420434616637463751499199968260566388283095266631490081582318276127342333025425614870634385141019190901093895718320485084264704186358339778365529740357606837295336333974053106465942614080620462594237117562862753950413421664653307397663061207769841011829826266612698723893910347419741249555904121718049374210887873051270097880523499937725577939996874936042325586588525865350397039019289184806182976072409011003288661181803030559472005819281366040448053506402605305621778732044325231327942114457055759452401715144551326557918360506272190965350154438374500645980245513505941870236439756761921764586737084417482076532949478395050412491747516027076583679011476202537800882084555791483694357076554972216042536925245451252285641869014374177431740825452943740225911676848588454468073228925152826683069343033278976952421376575087279084311847206497167750937751453549973543298564347288813657542939502647011328545532615223361073194704180327655121895567580606039601335690122619993967198767706582604353450015588277565767602028994897368710961792385076789617726307592316250560389316089655439216681068401353860568576337113029867221384529209449812992568953677685083152806051872342131196617834468137817120455136223281952362708571038474287741860711335406976654535563245958863482534975040407290549129360569846637142034503030501249923491641271853599740687866810693975501493021128843247623393148112296695668325545778425449259950655443093580970157046234698973002252344388075358621084521665005982822279838277498620633743752865150873560838350493274584078750443723240059731995589638966405786215349681382945744947840661240064468809705879221398438474591712186584421143350924556325578745275682576801731645383397857889656923589973403219317424866830419900481177949545974407958414224900177188123504654977833535716022575777916249011054582007511539664990084667597056105389090365374680136123062250849575815522555598884295056895373072886113100950834506594073292605870014181525206783991901701606629870357247373366156855478676719947557720651517131613490101782486818164232417873172653365449057306273073556982226021915230100025286787974743238871537328412235382639299182319135373790818601124985190272889450062691621528797874958268186346933399455637755394698146277836397618413277887923744857173246457757238469797250370732320148590797946701909217190267107374531592022107858102811031718712140118371123348604361753351580771396532781464734205335363950168205979105402471400883741885160186287634214946823808050742678284996595896637588786961210054753270758112190864151395779318194544130738630960373439237903069701865163531555858673460271959931837558270488665602265654927835986881824781351045742778718771573204948363990491400956643627458833969143659106293887030443270531703682355652191424402997273181581999412746810616442562838110649585569441930235363203587454909362504034753319800154539022527182109818249784340993714005030110253703684575029707532502217015528909362838799978903242131057174119877066850142534430053231745204408256244625832407271789909326600536818423161891422925612072342648047909493373688067318307609566692883055976900991908378834069032523653107879213793181609451800164246731800439510841042704769898002230274957166225609051448262158313658761106559562485618266009705298633037896514945992909029366445948697425540464003654530983207932799624954574994075303514184324346758858733891339121286959837116525807370227905440159183829913619979561471202459859928320413592841879407456575022471173651133119557846115558620060660609946006904825510154310765993899458115617412958019177424791134803506332564319022467913236819482906936422577337771641783294115940220171229095545730783825988505549574576638226771702399751941226548067224812464925824588370665115654580865418195737123146596645253192870754468628194469298958223181384563923621164692173771632246018762797317660709843320711404507241966491465344047327310837021251935379413536134684374049770004318641876227303212889455090931496536249535697180969553332198010082446937533778770035446094318355568519184961575270232664644692833037762265534585992993972540162127155315448332368408313101850016153195340730898519525937160215617272969906955977404541995566013330791396017032781285702322929305425228334913881327668627985493252574012055681684409841104155806944637403338701359155986355624592786066795919022528263474535804254327127946508988388197764041012782295662059558226285259505683464531456108064848584506850521591011480829459231188792714719560632092057585798496678705550363788371021508180453645440083094621845850313238945020604707969942284654785176208127637211419751663349548882251695171672351257949508773226584140196001001350313775293227447916873717396247080169892951978235886632722984389750848032262561007926602678574211424289383153155183114453545841291389197204525762744325531451591265035752807049911841227233450892972910930934770561336519931218910543633124983202363869234042485067876580103431958918177824247144803647329234723347849786715527225797422511057430794528788089556852514719656510659735334638386549962444451880088797003382470702339882832594837167549261982846042566821664682200602147934576880297377973616427326671645100686389206228039049084701882744938764942605176783239742450885180617628062222542009255643045745011239581666978831655112872035716717598919001414367976762487196451061665598111225962581764122184176894123496081051231667448086238477902386909735350138248391200814047016313855239298298381836574385066499440688051289790748106757975791233737203820829317026538000857797427582830077354686809771525838382413933583190602367652924394682368971593967823700393040178523239041467310320608392293356220252048911022954158456710492589394524415618725197492983139709385916819410246278675643568366815035623499276483058800272265310635819068534643761296782751877927440202719393949398369267927912789599977951610808510958759303290335369286383906402780370758508665988309416893293491907402777709648643761360271315184919124237601097820223181477079417310943533325453450713670033765902097809489480758927125890255380149729827924132906788441944957187793715647624764095638177648371845559577469844859673672908530418085180533231809357426567141527277850757634910683063146423802389123173460687939416004397929220825692180614443069292564165181358936144865466297703812740513837676101449137136082576420624329495897814560341608786775795891994210326742445559145256893773051143183861446237441734105625405558300387219583944216211552764581565628923322772288961254524208371849900059597790270605808430625969753781277304241502637483673751102522380281047575167954027866047479063207604285382564392914936970026814101019773444888734100488319877289841437684860471402014960453434948735669517418707088160700583505860280707720879652675408590184085168109118782148755303728655507286358847976806014553590251368811107760666729433405051030324222130202524985273583482449356790769462863240785542992383297324722225570866106923899860182885641134487302794532491909752488248124892075586501966343923938335635254437470309439572503952128679236002224863404103260466588475169429577178221406667629720179742136736829391974205681877321315308881478928655547592396435080496470964990035170687795196566171362731033581334022999304657912786991492522057145695682728043492993846514789693935146473873824167519442986317338666239746604517959077921471779947436763241799059851188898427525897271135812724071861613086901860696485918247766260555382779325752100792181538216196927033999399920893255931756111129617049019967069729118354687606612913195526960700831315421439696279476587592767459007277662895904445527328410315644869589243733049120114941883268332997003041978184709677421072336050894093698351412107427573947948069234813960356398432888620443927318267494734515828762288939032325044322431359090532539481681920146478768903353310568767530075298088182506254609642022502363110771040708202134319779027924966840384888596415487304519256714924455802303150921645207250583753242839574561382105253919162441053606055389860571531673229586408715347353815000585686421248296538832914378610798401691548613397696110238014349591296170700629850769875323896752906104950583915324288857127541156845629573958813782203640818105181353151795005778995553110768334819057825642678232457666797627719705883115827244207610380542876467978783164251435850147944620753249252297836071472879171088323459449480331992280736469633676122503260257120155585963332901414985934082285021981572759475442913936424037752851750096215681514261341922827527310523589469300864324478791289098385106491594049794299301869124966429370213950293432800757795675696899195484626832982198895838590470368120803114036983274910339759330098217292267130813584356190673594425340978945049203300635366635440736433616450853882116243554923138887779721609829129940454764595678918329813587207434285871207637758875434719335076183966255208592892774019003818566641800468528982610662577113675429627553399998088109651668633895658414530067521568681722373034344882573899681731975315150643024792266767111502599655982172363037763111235962183913989258603261506364380975254130045598760112328681869965859371625133435063126547065536185777420994694495106009079103515899306123960307359113249647395996116317677539101491600215948660280591852730124576750984897680670512306327613016753278639772835454246786905543925963682789315057243819018402446129994670213833539547280228349568102869279130610552454073169257531106751775871306993022449215769758981342384948408801537210252374821498839361336845965158470024352414082745967725395780403821778224157024103882629804239207258910255772762399905778700143083647588723891334116387084928014588406128744342567377578672401691996924012680630711207141800743275972635021340647949720516771774997562024192177626136465974576151587633549504985419800534760146013416913038568462348320154201943863050191068964593594002810924639997280439039185381322321579477151932278888409686151544640389531881623983983108362743230772600078877133756374541563417312978041475181095833754060167118121440160888649679854896391718224233086738244794973875004589340846075607333299611048633235553813637280490479153541403757760558131646983568596484635498598658358079217486994127601812692441912994267389885610744761409933192435377033176017131323644655184615328519719304747156434378161031651019928407138013106404669966983427240427527694376341095173106175008956167564257387115363370718433762769336628188324689563064912209199459200288328126624602169213054814492695611169596868247774480842115842073848299561719695231334366758417318865917166158495032310196084142630927368598292776963447186048537738591166577315366632918525699847511772784279102606544349402510010899964523010799688870887796146486901064473631044941439767309648060876715392742960245354639174073289173987999202765287666365470208641786469759211720687928856181612354620518176017935464624823447051751268784991872726159008661903423777628106591839752668924327615117316563006973170090667070748491259908670640739392493570895894465936078632796330019622568478236161158965846225812943946954451961608206347355975240567703855464295975878237883004505215835477198761650277154075864558015839583501252869851865704825928888846128498254413598053375162225958073476187783252394993450145123438979911472880790287350924775736953302344457664677600157955820331922766415351231924968999107451248794543823027677353599414440859432891425077076864303287702611082912652280463630185516512861892534631714256983534989060618673164592671589912542953650823779740293316356392228300524040949355233000495367635592274863024144981481649993805093776485445668311393585344730550929528458660673675307027426129584453860831208623904622694267216276823769891193321253324780839100857535611868465165239671960647250441225602139296349443642852396082725595169897379804810158416011582151836441498543818052302409130101010052411153448941915254045244195203744827253438177871657390595987259126601138218464949215213605886014508032572612593907502726055401978410104706923592510047283701101818866259915274200769107171650901563061722531073702751628809917644458881534211895851700279851257204970679317833699493134218222340464327617853527788013758996898991334501940276152346389122000692147241342523159834065350966364680403682851571215117931284714615240053156379906036865956805212157470911061195668040976154186088552514023931742304961276818114580059571108305484283281253746518690224506992463102220885333853061610605744602354688378689196323501133558800357082753600943631787962336073040272989867893699266706979474008064702521967875196707540418613231794673956212952552396245027343274542276600819891027847298909586360069825019657855020415234846396109692428618441263582997940892345177538763693302856780085166656297270702734666633264516067836241069406934562573857542161739117903838946144240653659141609305459679552595330555059918283099438344511079991404169466810773965899211964406540782052707543486030629134566523707465015407224009890442610348467750750102597950386255726604575557214465909102492178422981363991668306433202072490121236692531113166939468786578784601413479117050836266923722409380787761711055013473324793477378301699543539901469456329035546547196850049344903085933838325218550947058529639014966543601053659715772692536602452950937478253630654976985671513609916653009677872703592479302604697428587151311967930841384765072570522937586712274182258911738228868182112388396211733897287296613365199719056402192189921262960745771182111028133653929751606697616025821896389979678178169983922006646682174160268203913571821679161064627715790571122489416210710031831644332862086944249285597631861487629988338838433894014955457683904457447994733228991977406746361562353874487963628093751240628288866493219428347095426147508053713457251749114190968065338984637712809866240888626474917876417208056848589258953668973073018081219972413376751045614210281840641022578632086331788775809692967944779282773121238553991125018317040715908588335968726434379774963194126479107172177888969732740948930715518416407497149733110828387596442779478723899838511831369554006035860138179831635409754863706224025421255980674393920133319584748666699530493643068819040242157958313069110827015733083160373437815266292120558213297961247664074028953231612150767499580487165228975586389017248309296455327702691259585033673156560483096160814408983339310036449111203836942351586617735045179507837383896610246868947823180658132496742068070645447699145878954749699217364326561737803788429954466955689492532660388707337723526693365525664756947427821171588987652754010593515113361463198468135025112619515459948108511004418128080043556791597666575220639683171391916663016497322066965626647059087976209914490712625068854042514062804916126012140264437823324912182894159040238584663904320360004943708034250399606386109883100248555848792851472066775463331086990388734464313747059643707385980352411084024168736398720288891540555064183883396711377581893625437068695589101721589201238409320428749735487846389147297536500652487947386647374681592369778305281877165450066996063723711451216980917827888371502958468287079142803465249999858642537559639491427394769780030485974128586715575905904941440972330540174739865020138436082959920213560363766364173455811848525288968370279062588421623134030110365236716277670153204905675593179436306013561045815955618735508651725799751771595876371529423712500970097129222617646228891626843187770593745398662657562439998650516053660304351442837324722691533975955899761135870479582647816837894884601987444779780109311415246078185747306081607906398544125445025533470919660672726439758989102090362434182708584351803805434560277626744121987776403697872199450791407539758817516381798688107159369228795632979403277751678931870875902546901230906240751955386964395359195756010297376945159387798175159164159282358985315440525190984029266895129087887301103559395823363875823033066354405743244271379003060015906388849804048957123625899307000188996810345918738557065305040305543664531654601588432125381995543346351598666906494085599537626482161456133156633656564361475254280936930993479644280342336932065394986888373593045696039084502640710074227196732617184565115016451765673405925810574841731208694050857690530306219451686911767263149552819823200797132550616689645625151053968013966317441116187950344715577336989800468761856282535416827502977440487178078644797781350618803296144340954972020904113577148668233660386565472924957212851783528495809337798608998629359865237434285067095682120383465001817776780002349096067112828240972076229575952794800014378774557110995371819463045989960172231219339417350040240012046106936653707087807268696488767365542558565126374304252075430914591020355171669069911572829576944870118254461986996403810502916629955130547286144518994435438887584981789413919899152278738178651549748740589323127325615953379226793936304174880343961451946647274752464192532526849003589728952661927133470209992764354098634856392412053038153571090047484742400672180872615685364717862941516971733497592011803821352564526424613221085071554227404621656935757578010539335779650876857829548978306435719332354172789577068576555243655480574850904786700344708760572360315833378784454306443856961633714701730010830959712027731458781477980741610039964927698722354154463203407677578941981593715475191919060156258387627707430667487723912626833703358487625026011240820949876900587054173909375492707763460864498264891685790007404427059337497917288920366148361777385685179672126910808307193722210083816284432742464513277595546967304549287432531548619084793376156043097201104218443902389258199280413571229986950742760189193909927961804212587334202894089759893105035692641157026633121091349961958745831034637060894917073968235570595283725965974515089540375011942893162786696388022162063998333130353060977352409821295544634154101261737131657966340608852966603383781756185902924076191293042930015527669818745493710475743420669883575361039998594871274654837405864298522177241729150389784980056286280937056360486837601244549007054610584872085962254718255164946628110287180930203023379800618337624671632027006541719764942409558164064324907357910074492375808042049820774799863525140454040433298987946249559475070632962332234782513108287419389203856687767044121045234647533119050510986420738629803757639525860242841715741931193027111842790694982533035256527618289440880095324185766527353005695301651097639896151330846971611651197876811712748780470325932160245068134022042844526060711122322874635520473415805047822932067344859503573248342482229951622403418841537413628983144319233393391600552538842830012535237405765445775501079463281683464762754342693711861286543152464115767071861460114095661158368465156520020732665462590274468082377253940203167334026882018147410692752562613863439614834143635115563365703090137212217423174386492450580681673155476178470180261924600506541155916051550304126483758298495048199337477182557994118268490829212383378488384953128206908527968803198540170501166170383487412979712211508440144121782601904019682087982103882961055153583445581798118055694709337930233349755525307423755722773512309610290182922546364315030694751911640705979589360086036362159690917543508066983491805712832735505684201434932325286653089857440276554382398709083896725297678669073082992637921004181886479221413518303589865252428961699050700811827039218445164415426957598969245647427522460349819498391605534553231638956997579326229058533066980426866066953187890837763253087635244864480422098696852192472928147274432037453755516033833297248898565243999052798300096989505614042929689688491427075462289302892503071330617058643606490571936263862014661949315105696874870960011431935862139645885858193417224946364196953834758186622908965384772432897194551131064874436115391589389471796687847354218100525201177248625203588307285574785963043556922836336799182002037046377539283783357252400842173773111668004800387012174801241063563827766050764078430492250849228326156503236702490383132931784498035602809273319474791370314483925317985865112207053694987756109348050722771851339347433909473419025843542351272332347502606595379455737950187231526203840112242301316153240710731846153173147596260132741828800622029613180230445284010418660348289907500370607594683180018700121967788903527623299452382927527794948967827138638410457178964972195962981156585662474897794609783152456868020153308420913448419369668238860373683048446587044003720928441330452076922484657656137062659093568796965999166953435892042782184718703115339026249433752257727243625437800815869570609516142176062922459758431085875546353500569106165594081346697025843218635837446913093972669555192744836010610193234851530440588148560900970440387080176734673896419054376371590783025431826150866949288045229810414510072627355738484800345522982309372252924427922247319939681630194981979355189454820894746414815210885401897192111452126991481048087360564442831635296846966781369168230959410500214889668774558397231522485578565051086738810846900037403326289112166425290257979995906523428122281437225650676889250153993709928814867337268592205438491344345439503225710315355663522833498348963046372607009909222575311333990794468685874671078570360772946947107976241973427244643266532438846236160078405495250928835645953813289140696199525117223185081543260524442889823618234028000781140029232121181395476308399966181104121637537784478720601946014197763098806982957689490575812453855019533748107847405382333251431679787273748345144609727191855463980618707562956616443064600699819335646446672482420344818245258646734244263270756681521065127285218435929063751382771947445706993774837022965627059134521759205143968935931095149652819817280117502361268101479444597358503955171561686490477937250288782583885985758676500665443036482919612564228860982473202129153526433081283023566876567224111440345208333070152387529081561464478028470309165826981401765331130080529471631557446504883524258666953262943697980215006068744667557335907782286458625951615847575115703800641865296775686276180804723520228284960017099511957712671591990171222662982157974289432349255947706617226258774864757436252833052717917223429323711878875876911309333963869191306591322949045630654462049922161249144111878279428166048102123821724343461072563474260034767819756347068308987336902734966338932693636378480237204070781025768744392190735671779506143357847944266715472172407313413825788615451849681022557318492624791209209494519225761743922521606646732376429626034927748662240241515146298696427505521681090777162325606414545831522691838617632803026862180737874774524794523604871037979390848831711941583091703830310288569839114608519034412442620825141243995532360530783391121702292036016269697379722514018101525568542631796842722582598370436194869220811765023274641438765471193891702765078353427238640966515319048304069673708859515431152126227198311005840827313140264368845212827819138527296173192877196652151129723912605467848645215112807539224412167764415307132348475102456187283797793622062578466863579161915766925587750620635948828442348430924159816740725638672921797783179640433735542573698138525533648964726230054993596259357660541437411320888598468921118343757026830729618597149109738354471750088057051594836785401895070158245434558167095015764007829085729384660954753344104086284367019958352560840346611506801645759158304432101655378942103882817737784862354961639140711677553807514687063453920976245998093195652468494173082594370640617340175097722330152484505227080471196144853783119943374973867170635448964198763870983718215020138858367238071255071898345088007740532648873412537973121266070022025437842868216752430848928438840408499766907401865174309891663441804154974345840144358747768847733014871218071344797303239239325538430425594539280128969572795357847673224125258600846316069038599079150004523999968177958752625426094419965641575848109009300200869859026070777570412301383915143220026131754993793920804219572125399287995465970349790653075485705686129332762348700580707081412055145587270387248429440399801548582876117050652548003090085966624825794826156194815649050995767857921359862510947522868743983253481399478584070445803380776589768738300950074952379716401758768221481840536584002528960988275447521215958392260831023349594636374359983783410099814403181731432414928149210921207583896288059756968654599021165950170622293539934816852969316638048996365699766036558935400388559592617018862631762599885074399259515136986283642701576868235359077889179820355306872942598702573840169133524390047485281451195207333244405194341265044536598824768500638275128160962951070846288880377106120989947750251686594171369937182797430839646072874872297854831864886552069962749131146448561433616891855772327512136033926574421592233284790290039216800802078646524029259208178234324170666901774807907852696900507375470886639333346318131325883655190932216624482378217228601044977780465296372516901341459974500974471380134851990234411964428237877478259302013431622294870186738306351635208074899562962566609505368511009437588841656090709463292365756545372752666541257128565748332402584320221276386084392221588165522700676561505971057091865812308389535212171832182151621932076276419155290394396349838110989736844325893538899352523720785135997985098691707726268223515169573528030983991707447521969290233073703515416401118603036362893217677942134338340423677494364540493671712144190951178005694332403580321500363387403031224051618925299253289419994962478175741949900376056958716234043002000456651252826192182589241755415526968141384962619620684962803859834977783037226212399307457035470964989062953269871998049088902769155538342846434772004693390475281998911631476314035681535627581361078848356624414104008607298813706360821492708433202688499263478888601856276307576927840478251574176304842016307005809327121845199977292523434464534093858319683836128147299368894995946326510850061242485797008266071302441686358633909786093619905368381576464454508526598709819387238794335291396060306178951065041357356844866739119591937634711470776390609332176036172171917421772722120349053838947226923178960840185337206798735451613259068538294826560782151744514643029157890866853109943942234232314519968490007984125737602686183883097342890937851061919994315237122057144740501497900501989041708444818764415269591682279865381638341523035511082341657237363161680960972759688973447217909020804187061065093623567799921168378369335788903361078569411191677565326973029636709660602996562947152597070151487456830424229457895479900629899421065566148665604822748327921467729581119144507401006316559180464102011667278826641952089809774999025076775776690979454307929746988421738998136112944686560685809060094237644140137031993426217765211681311602134393346313158780237725788521932039445534397305640716120871762944139714616237177183348530508469299213474009243530420385870806490069245340383499662829083262971622224840086245393133430189089405602949811399320776144748823359596980960781881609674010830325278865293074926684468033234483506184313208368871850816549104987047899383720127843916889549296852649968261207076573126371927072128119590467085984376586135515165064750502152763653313559518493721359036283543993269761240295115763080624502178580447987958572966687473030594760273654303117197406053353373287121524405619097638680811209591597270423032682847479019963084824483166060409249911700494671778984402265297339407367721575036737320919037553554451935325961247751040928566135696000852900784618321749793065080886174607947723595893010857937047741475803500934188890773130205992482795712177390607245042372428762633338790250159910420187304932956896867748127768553052247574647178005393680777974763768500756515037019495183089983274170302809253736920027881670652470295974978951249393011688886982837570438086357514607592970756766916205698518936702477206710495034264139036732603050691305690381424113915812955113255319793147347037817694594010712670631962471253532749536747078062072687616992251189620942811228704985732403344702225039980298217122445368502323577357825338639370684304515120536132563134134734571698884859333332734030069451670250611463848540472711365707212908508362609647530008396018140888098910268801778575943463217633097974564726526714545531455031712452762654005221786000723352972126470728925238882302389575881682250576671395442229981425454038447454115039910495232982841965810496168181704057272870789344577553318977391430071215897845322122798454450900398871413727773644028139808976566324223161038101055816966818756979267509760786359958828037792542576199075268318579850803682250858579870917570257352369491815398709911231151018945602225714709913552540289189521459754680076863125663668818781935025853284570757582983987406825525434341295721989839709640629154871528887728623680896733200350647769737733498945558876544882116590401976397846468145213747055234977152323165426363272207400035183553090945933130736024693814027279534606753407859715193002087945114870301695093996063264159310674813384169259483079289807090566433531340518069454668010653089602257104576939721428669460603382897305172143328890871614389379744858873813736863180836746381722223524542780674487093086130895704373144971774155192201665620550014533835287683153723267986754214768185936012307385615942070525025856877396752411870487887190162071051033551340683658814994345958854903900832985899031270238856149841903919457068459598051434201254662704025912087838739081740115788483041055675937527252297703991194150955374859100976618284271996761667261692418563269594400850127903331604275065587218890126799642389024169604085846459177576643446790131250569189026237232511942938249246996398128873444817042029950168169682197118356063729268672058564307255464654337554502324283935292180912388580464830482318337316759980208423796726708010777243356589967472583263458062075063673125874751123149993627844396847799174181292513725612045987806804317271395908764417972284558540090148843404416205248108096443293045702451438120111372509457285304575691303711235928621325462793995237153157006048905530369424011646622333992894355927969562580852003216635645894960110293097306033909688986584712414081515174057066758391849190040576913317862635196183173438330788026279262170059782420176366393722446891310730408994025160123039625923992479994631709548733128738888403091268546417162155755158868590641883250837974054988210283605075566939064830859954567309096288974929029104148838953715132602464432864930006293540034382402145987307302764187366492161771557959674715139293976893564215491568380189540251743661302480791502702555290279017716072729074057912538556737720190716826510821693432917444051126064819744238054826051014120924002659845753984977679704241983578796572848383279973642642984215827285724359857647687242448276884898781351683883853633244567554865953070591279344145979724723641577856240856839394464364467489498025332335899267191085504898465581490688528100265571560535526770362343967319801535293692878844393205722643076904583000238681988543090932915303454053804085143790151387753474587330814361446124371742087045468504011435600589694537388778418350726882458574590508141100502025654946735085824244121872439791869954880980420794839156568692433820099247423867167359540394269585220214694954611965447150515419431320959255969891831759328502765433857808257301325637436932130832925053100322711600110027184997572731772369043360528234381167690077748205108521244312476723764944844343903513353408430123879311547753461735170161803392476005749420782490495417829003478780728148655309816405978892125900146268116287853406034982755390474342814024359351673027105450278988284998463700194102926053400576434317039794381478948722005219167666301738811844938125951046764410447985498761767054035519599819326482442000378593950637639919974508727677166457460240056229319548932616903128944709261185322376957081487321268443947323530791755402700258655761548774686043818534387409796726761600204975818330270142886565692106175162913645685825128121473713604811266467337330580014454117809361132736557255615186676533149231404249123331939337053068339800061814263119254902414751428984134122588350059223318799923723767785229456311332521987474159065834167195735683750924958494962767002856439015447106468339608707870635094682709925409826084943730270814455219472689377897702782567674496128425900220742281812167694997200214569381026055785171675048310956313536177010938200735774222729977296427169199374147024998225407846675617075306728287566846346113539598001768260649573386335314427477469987014935767971561600361461044167819966882402462792405731020811696998343386696797133161025942702909644964765409601046141508815962278910617372690859183132134982169191465313845366728347910607046946075957304528234385669573630519385935895645970187721028298850396139854371192144708090345885332614106881424592220569227825654240365859910555247904605201520088192157541468427055341127742899169829532340913958163308355130648964199780488806037506510104078321238781329377643905773066541659999450938475936054023605858128633863901391894582728302421569052954604383470002205447088072613029529439855498246894002678514281221724082493634366872617712980532589395772679164026502082513353406743849306187596161364988222205897106778138950971409291451529871094827009453416216498485039600977408563801199321165124124173476618915910535395706594740552773250021653467108621248478955984308365041492883857428633212931674117330710790192879112958198172249448920590226601639186019326317898680364295762820780633290185807832215519985628624675003265407977824468664772092275547198119305043328425471950145389919900519967877017763268525212748026945036872771250452269251457806422722507649919506241966732824441511261673212796219967467539151161692627052554012544787107989102922855549965250014612467850613356486004034009058534638323223550887465356244785916070107036254640232254800231850647322496519736237960706354067760462685818649205327371672374955008935255637212895055103610472232890435904968222769069263818446247863152302912662552971322235486558201721328041063097366540104288879782681379083949795329424971532723908918437718397246338153353063066485535999785659583405942469038032502658057011430843762782325578101108096466170638533701686608242393008634790448538408499909529816732713512768510132982097886187988043063060546054163782252649793701935387988457812787752799811641487937467046447296135097092896874723395767340462343945940827549724344904277448083018403919224122914920913395198026301013880666203064590291394868020615285014309134538710049902984471480040791394327332055899545234792361318382555271166558304608946146395944109770350004458460720416135988253637896405412283998288066271584146232251274021347173195655505234658369773688537734702229650945950366031322313955275293238133542299727489889251247353266216051471050265126059608639181813933151534293434997978486157299010745011513677639937908158349549143199166547926839268230228788002005563538418410036913333998755005270991483080719108970221378918527161127951294287691936343702491922986298500775302831417592735098413241480065935588565236342972366370589485521294767233669826376096705555367663116138204971821633741606512435990658264936275180360598938704020530500736723236178578610041164943278614983998130428941161728705949856301573018273416916118775520647830010152792023534888445136191539976004712245932273686552439107395443030031375536171805544712615975761200813388379643270499593080053648934117271869059219457814385339976350083488439723134975595574601063173987165870052699274858770603768792302634798135202068245319707653062102934628358358939902072487972867165304567037052456138628283358239781830679451969831942826129118416984212342326524100252464085932490752188855427593012395715855182867421574599147537462681377854660073565766056824820708575315233490681799421820221020888528413575253904313876981427371421441135028372762524786439832616025404293248678776940560424987684084734443545116334704769745890407288405759535817696550083819965878100857997916778556468892087372886988948783867930197985172830155186316104851337473573610099562855256284872817397667971126843654321419423680994648328358484572718776246289647426933135576884095993101119610722464229789724117611356034370029633155175994108704770259431594459573237117213856235869761871598267834187809134402699249582896164079995929799619629197539453485854839725377521498736344329064797862188880435484913942150134819622132960167005131471542863631111505294620719422516724437925924847555338789872836181130190364035621784925372854007404922021597879105396641063407357754115747441749316585250584384787816397106213138500061463493187722051937966566466035622848846428042290349285843624933812958149508867733147353912496462520729477567924262773046945064630023727126557358000117772059421530214508310335337436260854927827282075073331421865323072907336120691718221916845923530947197952112108452641985068147830774104460596499542690008831313512457489551584387488654312189130038928677674385845809680362664876343029402435664592966699719147203305216654478248741313266676525575499603709716614252988926194178596512080606973071646006437734181467385525809705341140351998604739865021040625797685005073850018087863602534476562916302646220010433132155031631052887937067421872434932805305453401932849861720954899584847409206352545506235181557401849910146336434126399175357977642270750752923653043433232565255357191842590398098977146130984526924700553475152574177839579613252493798794543365396991421097135359941436562819809200183609535217746778850996995193840627985215063348824038211559201517643622619685346893537124100642349462940666210102772156073312017823681842992377632039735867752607017875862108020416684614166132608569464968233442394171229030858375780093383644647309667001889072268932214554918526217405461165509165800924618791254798785135901227356157801902763204738206458749882337761181918220263355111357699594455636612765877993694180529035733313458665699154568978944074426228053080538272724212918258894747858194135339030174657518570688596455634656146557585874709071598646542430070705728629034656028133975153675727143474334218056880424871135044040296450197268569789517973595269907827260381989832545682752047958387841878119003478137813109344152146476310562361995456390614418693331754414311659543851608550223861335720732538116756409110817844818051710469006089404026653781029213626847571329846161837054455074532204564648998831754564087565855536217592992916634713983484275718941116368364561504830196079339962533537445133830117797965658380421483175173473242306926290868557270708764291913951943951286484887713478183151271469633866250412507828316210048220151058221541542286551320526791986257389720768387525022290043611572539655058378522739665540905950912587529867701525561693950964356835547706711320565435040374571939806441984672901858271104474959315738108969629834922402012711600161226673419864193394176276223242216866217534293461174816028543750316498502754598326936077408994408411940840186060531736214702318388448384806580968406599784459133319554897031626960332665709525983958410821379488308694090444195110583590087331286288054774772210101525839633886707747671425665466331542774234259070835023701686655380623026081476767818284668326268203727802777493541174233532202937744104130993122754392610266715548777348704859621266302547416128868666560628493414462405611512672459686999114716323192221403696178948172642386581913088968415909907839185458316200728082653540217465767017149722925169184591084230036666127692827048866823106255201993324618063769990663915389500014630130167928791589972677489665872712945657561143212868970054943371282564157637496408085111061308482154495129860930764885078548926413284783911920444905198553438202228629833479333370255705487645507138578901212074236701015948318891324450661497187609128938841995818806423396276396943975792871236039627631053695282121087900015049981405077110128703943761378672981807258181691976673695148923013616584673862931658980617734232347424841468335653045336373070723594832367481221347851327346882943438809471516794943524375718005860678541513228586009390646912872931277402952906216298734227141493991417253924098497002510379980042959676831322476264185918240164729054046123265973233658920061919315517915098081597624436994234159040149389187827399266906386705620219355842099840537292008219149090830399759737003610285885424117659721452232353738987531961484349212592237807022635028167028831254607200234641173152491139229117647592569298606923275027818050444919675443030480716025519191987665762059244783854462100311246782027994816788055888550709888203468742354035429101751711463650539803597713011327004129730619221983931906766979930801045495529412517455457778397030859838550570678336009235068692232734046245857232009531851730954461029799301729649797502517531934203325967826660622049827951159236975454705774998804158139845058494644899449712491917024590754546959766345989716951815493419789013911090129308189732013770774562608602562981856133701698485545046550548155086793444116315063128716908801587739528701103841419042635268117991342168746893022367861614138829778300701656106840366227682902745012541161110357679546288782165666214941256210514916171665844126767062954805467442978708921814467604995438499189221545412747367827933202364992611671216225676022145827220690540715536194906721932263925515818185443047032500599814939087358341359128091631998757598920952564905809018152679669629122178000245660966479412830548050070903014598594639511446132773309499774230660510310632498435801651228980252810005793531589598569130078434011453646489612050303897952256204379057486179100195745654548671011117080626334350725665213179712199552899802885184965661485048130570726882114231664611003288659263403731069930298366125977626010896834722523781908983989419867811747449163355997113090991078323501374364183329297304426186485143189748141333384854204741773611865755223704257899570319400940734796760077545922229825789763407415351842556536843750331186264624777303243127480632369519487356742050055964975004861305335458778374851140086278691558644412751820185819567147123846658656828268014824295139443193843243854793011760348055355381650701820219274619563829650386098509775838494082289527001699226592010922372498420614962512153442260757950362132748520941786927522802877501900696671623338651172500789582681563221880348238952114119401357258561012097524106104139246209839604059376443003210252909099196401276895653035860697442738882278817704223458176585473558010782982755239986513069734739283357846364797747611576573472046393836254595438937952852820400671621315278018738465839061639757851728110842142871358257923475476876093955819860904924594479314972187726195750537573732988375505937411071441048689255379585819325893931143330286080086180464185110037555387860632521731218343861044933392304860169885449644372735651938826863933711302574394711447617739574050876979788836811044568701228559899415805558460005933509890347907258765741192500071378836644466244975822825669731104027498364327373097813509000506175935864526496847939366431564355710004095811902689306701702307033876384042499568754436433215776805034395544843001538423915604947101771353801773135758016632863167358771089146194566795157215272586068427828886638964731605985508932291637150346557392776392509202843443453509601063312639732848271107412509112888779870814126289021391770184701749152451519899771261591514634153430390928235021712060896381135612620486016197640682061418635460876534480536394272229074645675078555528675969328139842983013460304543248499013984131281417940130652927285177025633694091455144914062515511609130947018141434906702443932384809537395167510941482915240464003793796332691066682357643533056505843306021946661872491230671171613385688759795631959276528390577103735795933841975713177869682715450002704918688840428038306136134132762543351315838636702045837266825871316732813369277957286947076056184363585784246426803394848735930951993986768706519975569936108954185089408060278546573577506460923374158234017734531390759300343659299779533506359529082466138985363190547516434739351998389139781561137668733996338492373294477850343666265185281093179349401417373557149614567379990882829710543463031827670998431034346208221810206216887222228478827153553422885063761725592590280545790595284699699464780509798035903615048373475996268836001290562379201684203158833127172782698816661178948806713683109016683314852355170149351026048764433352302512631493096214898278968257998353179206872591843007027624561594387289856912386770788989249955888913353338445773423801474701365727603854756935191678038696208284611524886826711792447649599619019646567749157032035449691496156768292093205709207477070202472474192664673192841971342273476608622941600562293473370716552939797679637757552568381742202696153863809818699449085124603572871432295298870231941580750924081151715886215775530614550593185814718244252220053835766835608160269703422559865375976010114140178635072033743633375530256004145028728691704084597348617118014843866980517129789648320107300620763975305193354294095861311159783057813781355661595054261732386747836812260646465672161267368353703949218361190709382055823434124190421226501881311882279358993391498464000649167925104430107321497686509322820682502870844652023371950980069823358286335064136178565695201484921295170089729231759613074148847831262948372105929569167254727076287139606672845631262670731238998317699510765543694338592346843394329474944554707357901175149008678584413619192160168589070160411195374168841328579556458099057449108277746701696913716093082107116923774128951537172891525582729170811652650951775175622569041503061697681383570036256498999102241542088848685092998657097349332856954788084874492139763019771521755506118401167537919229920170074046875481547677907675335309790096478766403104414569610874616466837248468455461695411602748430217109260207736823840201848484437461585774330038981209148337888706197404942206888684343128340315971417228336935106353077586640836433671893818639621342579854973124568738847661076878895176590909678151957964045471032189389380072570022399780008702613466355427604848056639769310050021485099992744616500674548730153301152935198030097351206670524068915116629839013103821065114178195561069692897945603584549238748202635791447747781466308103294223758583005604126409059974292889373946057039086405432344622604270256825881743478482981555417295330824996623208058005180628756760636150811457180297785878758214188376354966381338369544477538515598540732848195810328456449716205692859947039797367867467972471179859413169038690948163081739355942393500653865585443195883259283326904944516746653169695445838140778831111516123795348190836602725433412716768131120343584070783551849354133280074993871331152232955177938171462114034452361221132174867754786487320976503017263680627800669747671694244483077259776543260884020711235721840802467983543037717480727702012814552039634458846203021681618009048766489541030035840545117175679252048043775562002759923147322222449167177474660158540858835263467187061918455061860089598651302042131114956851817008300485623085070773245330496001743975014866035989760114082566416368807544112492595745694419200377165297854947862078042737422933045555404365326661127456956158324845027875344292084925611639432171908282463607447397128661195820114902414830983353079881767748533252204731912159581470058429982013983614069031270279587605792119071760955359707746652014717631918003049629761561959583822916352933378427740451968584513866457184768184255459670576701335784504477045576871214515806878652819712857322538028722948449877761656957797963240501438222631192378307446736929237688293706932470605534689623850097311301854362772047345115846562470540257082476081744575633922332218764757864941740825923978962463273827554959136864813295978304216278359004060856959802397733784067291903805100216965296137788034768940873186613115463139875348584972631450698460644225610133015380122767213494806853268148540709129610318776444092728579059196524681985742837092720742198044530034655822362256433193429170727711533657834550265325449658253264663795424078407984251048888695189404110190882081616134645842106447116544463776311668207026952629242371900742192821861631982390857410702165593482515935896418926790305401957684729592587744181872262276551879924345574581536695835944219335147722563498774457193555152240822964027234464347973986497779243801862716363775284218281144007511534764759781831306480341962348888638302710171771006359906853677981822083542014115685645482925213416406365346212954093240957631028682525818943965054064163655044850550357139284049547201135688561473489823022647404492978327374591285229405749944482295247567243399566928285623502202655923496645579302881141220529745383568955430483049584447079702797643368807331774695946020873995696194589752319316765638040052599404962110449906290286062534284309859957398090034282881268390958958277694909659084636800015838961297169369923831272839745875878938945527990144773155095205916572991442231321467838732808595095774642267727308200548746279790368455064939450963333283873116920297665920709348407043823749224582510177618432528349885688064569846129920673898186794494392220011988901461086549644143404310448982200374330233994846313097972232711402758522552004300387058526360520923429915042738911674431082379884425901897963158052638096791709201492515349843752620509677559492457526985752845821577447402259373096959949094359679585997057250172881655438826539232257997640358554969285327441611330108652369534036912449906902924346852754257887986101990121202099813876455372337831344614746527490376528057702514703493118687712418759044120057847365265050773008889908667846566883761239247701370654136916056654349547072108374116221174366879783016776352624662331961941701576351136677221419060470868954566864287469242274573666119871541730666268320932888183854651997936955471727904463532043658576005657175423067427282046293757753789971835756857318033859099683480601310205045985533908904838171935702655136441099166948174713566920580353414870202443709016683951658112813825053953578842467394157736145385807857350767084206888451882355845334424380183932781155926781489000691709194232654531530219149069317946411648075800394455895078954620779895206502689384132726506934582166425642251367574326776056542849693855899324471750740399649754440313467093793673003833660194237291006867756123104504989634623935561594570833621786647066748964437076915396537398030652779676242517667201741992300600961546865919474590043323909177688087643511732261927858378736768238914070235461982391679115772377734947561824823955434161138264133759347114964703340345966966719284246159803404774228989230745056918898081890197190813766723818215471252669255732625384752233673066379044996070183856823290750512969156014716571668596948681990450370639639477079765427976094565698102610550032186228124225371695511738493844164051454308133628888484198427087781045125789676784375007242837635985105892852250280144721106341636013806895832106460026863562618034690581621563609214214731992655340996522634265524530353832087205114856087170178392310554414498048807307026124265280995956275520263246659807714731040659063943867408366646097685090065628984547899811850931209744285126539127957020440409284217544909997554413985694639937042922531498838573782720962273126902012863975535960784839712556323628726226901037949535144786217849671436797697766738545441198090715636083377524879073462700176336334114672269323188683940187528314697948249050515269071529739859999727682781367837462650648736658798333652482732955482081038137053317728604280098788160946338192076769774184394152509101443298019595686371083093147880670371477827381392858344373226160002187118201410645469688789206255900119331912565949845653425626251501615192342355553629358868813639826519591064620778925189167541841122955474512827285214026117817368477536122220208976245708903698405594850417976856766665875897049731947074858517040306121321286468730289322270170945535910078578940982988649968502738659146115925318363495899039958747102580338880074257008357611746578089251323418018538747730716452550388724076746730996294162150417933106360320330551254345986659890849395918617472465742816456975517939799900043756220953619409078935932057792431931848060069866630993941037442072713157105441583870897727410781785768375694071809263959905531242056197838870551068110528072346963974889238749620671746114297258467890575002476864214889827024970067695565955427061746463252831428559878978629676824516481849124517213300042847012377388170880282623373574227538074893112818382578347797554107087798860049634061776272953678387419184055837192661870550208037947684771256445030065608468717695537379703993060057852416433780719138997123518159680239533344271372965142529243089368776623194782025583464704787217949170680262733458261988910818303759143174579933630052190520200147574608650053920504819574609125360149020616897127359013661080125516182190823634391496077613628922521342772997108069632686362623196279155972880688890012788869183021753216248030359612718580744769980770293938143438028045446086653461350053635016348290140112337465690196343716466197616381461970074886025043529373472198138204554655398784586623201426304503711473438664820185679365877243482342049022350831000210799248782514090148740933150454149853972402182975754637421106762195286281817880237702652949487107741996453953716275637344669832122680427392527014030927745454862467615281555925086317381137239147927762032467711077439767285735514269077241953128182894834074992426051739976133178017028689500446967298495705478310321799162146142887578388726458410947951030858869052444696548638306093391002700009599099989900236125284064892365555898572167439680534404408776544410988779676075188036845438528169898741387926532467714477613347182015650596502575566025327779602387449261643016351983767016907223850695408995958314914780345841259908358843851957627730562938070417450977241761981664763362875173516682377697960180633916059319184223587347905447981271423833011872318995043429648927767530028048474541821629048423009326811966948748958739994885471615653733555145192642893003270334212313497081828190476463537741003534635123427633667382904706970449510880517451605061886703052155636098133794619858648392637313464095476289883415475944618167768198530341298439108674967559472510807811714942930053261517527361647920942378792888604659853460357214019679921535509813153783228971015193312519599081262162786001447690917127304901005270774484015623536131006749225762630251827290814441660842057280646473745908159630670146215132558336749240615826051801405366213907208619677214371566410566138031003171239076870315611640499750248515196543966074076668591619981642897386150456032022486956243038193984587895506308244400608689090905060473051245861255144168316398485901222809465586680979689442779311564425078130362843658792409657155400957069706038957636727944750941124358222215251414427867587590520978047184975739751768720637957062436513598204267167526214686269161128821757418026692026988945382401495635390299179145334037203663453238798749917226326636430108611791697067438324359809591016697808883025499119483882572995195319959546260114354164247795194376886673601457728017016335725907596241098485236084622913684189535005902385716396251718011676097733501280759642490933055422605494876835114733239778178256934110767735429953119463285139802248036261238343935900831644280833501439881547003634613210738573688881489006404161838265280569505714388272896555783940977687748583751287273633836150888973479080201144392013998145345551097046467961340029244946887424956819109198341199966519210882753746052813064128697082259593473498628717956529001513643729815804641919743810519248533332722548261159804542098361705479943536980537361229114630889756167293107613515320056824455313649374487084707075365944683136356764977499140868687369266104581588037438065924077955619291479280861686688363427231047772767159057964809512544077619933040588011155672597952940736078067121450054853550500492622356351673197196430945753585943968978859092121836017675793358984645037492718553829762077003109300056466119861679698068831788969140329138814416534502549917693886275332492021856104423922927099736278641550825308264130133274967474416453189654414398242317508872029852527716472107941103738328546697311363747650997480311908895337549884314447744611424657982828663749193297912904275086039758832782277281891368187679885812133526011877300661687328657715232217611620543782511765588692164980178480528432794558555527738451221279322662821012122958251963700646835000498264743475437690211799122359609192471924835078696360399434963139026464299606871108764546199838734123840636395956313122087721493429351562570239308550811645738993899555495383940436930461307255894569023726389675388075761759095001870267623561601894795496747298108253385132368255126423065437892783607088202655288862310551031239737774176245795129693137016399575307741864366016121328700042519635315002719497856974091354812512287815230007352366038704002537040845203077088529663327622584539796154524242297323091745954648814477012567321887194036362404700867825409781715301848662421834598196745445471447281159190985770532895362207557364519345388092829350978056410872030157364504903352309628377347289313948405350557264758740621538160239667065904738417877536731806412454849456601313572664457212279621177984971432723652907403832681234172084895391812634089764010361944605551216253794211058516656879684840191331708049053049422307156826886370825616289420989113846716854108670320141907502684727720835561549717232891468305372915971228224907897039197659759915681518467122663842387310223979832794919795000503348433621534820196843268542229631803587882987486242644220969691607091958616275984926733289183860284557690664487949845234989712966695584879918760916146958772173341366768584434700060604315903783693167182079440097233432028400685166650693460365366239594970423524071570803409852409701643299004875851831870940800384261013730838343900619283585563180102870646820483999231374248114775140204664809185494928430387924704539188709838781659275903146348448996251980791775246651686125945611637446333362051930469784768839236119170262940951110533279101060789427353216718148048927662109733208637099558397418201719679797981553878881697568354024115356336627175567074333464036611773597793139594766431453960623504585464619273192955908095330117127466749510301002502869923227250963665874763006013001334624532053697632944997426713387109704498033599036603881342878975051132816867784702212106055612406877035481022556662388230474236636748648095108460075853442179805663945039001541529810686369300771282699682683036008511346704379922776405545222804977864907068030177838178966590028469277456415903742892049437540910997110173808021455699596513802153700553676209148403933336375291473568344598149820865473529812429703279694024418771520322519926349265893134590270612969511696347361683224936431490801255318738120841315841488824475423943527598943967820998494162255587062539921584107038088748955794910666691476038267774930615745224120290976537179933409922321307334014956497603169904059084654445570503650552527128185221069803909873416312396890219703495641491873756482637202915823204558976480396758662013423370678341349912870706127435954320239450765286671629407741245176113984020826831965845075699820254511263035075453109916882789963964014425063571854773691744458296913573072398833233282324502022788784204781682065171156170978892918687079310850112068855626929518014822584252401532846030334415612354975453096847578764885017590379737489484566297740527151097018830059480192604053460849064216038666666870516362508019083095279967362077855721715892920083820148196033112001506276826929417299074193237818533269707808806555486387860163433623159592741287139009468799219767124092159217968020851371397121497443974167321357120304074272339134355271399913604078332599361140592516687676501845841358014919379170880169732636116484168524444619432197755867798149146531839674371060654878322707416568095486170810695985307907648726884327592490386839281564950714743592846019580952003126828491635403564164725726362699991069546606288980420442194502532585251261747684483626179522437878545041832996784927262642202374649027398314111479116972753117164794393433917639158001228263383184997641400114453333124924851524841692565940065045835285718145566961860176544209857731933470460287411339106370874642851269211467121572390106138271461443274452310931814790144221952579012708421107118079285440321435029546585634131628253616528077469177407244558848114818589588279164334314705793181590430769161126683290290696133522261630281908517489347835416792059890438341858930984327836551510188026441505393314080182902505985633863961523533579103622434284474304807998900929170818227632214931421804632539903979852870655263058528542251475470933074862753680837749962120691810661295758581092857640029966702159634338746538049033964214009487282179491601657968177685426866095670769836160484283229988911881853048198567911980211597485303919889561234127943370823318232779002501201582889294690982870436553390261606353007007971731329948160561585523009943775772539140713111505356327136286436992734512317804177273052563554858271701846497227840730594314533993165844218983136394785261756524954268914119449643489961020110988388638293234152566784994420716414903848871746505394730819303998649314083320035541329526627353006662135212257424372099121172672598690571793021779209377841178956095942123409677968400372139343600057372187365187885036599505273406857866192138321229850866385182234425253374336679256413678613622166681935419885472224659410113854923570130983583428959935247148649851595768963935209882208689995821645755884283874218469252393662553978209278625697445068783911504967460535162864083692238299724399596657204156578302908189200182608493050219521161562049959381913025254269476839216631778962736629003523172645064290066365861206356910243760851747522166462911187714013446675796450939521449832020151159357415348118595661181011764496240360667819371807736798092367184425111595924164188150989212346670226135131373405865193823287894356584781646263204298047618024632097121148490596669980327952386316278118727709992440757873560425878111660259806672736107456611098510016924418899000780428367372967861753074172939572363288911120025830986370044185785029672115466369579015657581168178187543169563918246722426388061409323028240323569912857168133589439289514301549898008016058533157681442340120090957364250351496597902858710854418849394906168425752874355868999621981400454340686142573790909736905322414746940165848963037658657799512655735373514790184240797644819634303650860703025340404261927459844841397613299390979065618201390703875256894426134823900698245258919629173114728694629948555674775003207121533635325691315977458248885592542430085130650513570715408704217752398603446534629521325979101859804756869100734195881917164587828137678822367824860484559359847171625227521968834073961437745060263945253418685480929680130131665871351026765716731575906933393418697373905333479192398177644921110503228297043886415881835700996424808614349748918804443493740419384233942896277740642063376843553696074969638953793470492701291445432405766133508550391409182334843943428232983107830188665971741749513015329589205115617296398813263823236203884082222847741759849307317822542864746658233477959499297156345651490847464715986692259748441936336384880162740264286135541397011610522215504195789442418206092163072424301490784513717962098677456402372782207099548664314666872241770933438137830713127007325286277062646987086196883230433410496011129164810164511737069586084560800536020891516154345024953516639439301952055292080014850066398675043876323425184282790694399515902617837285494182570205780192952964642849305072539733881190976478444708753754555569948728092019189494709726672662973221524557311062903946695404983969495903072010322768937126626932807552452767349839870541401882446287079514206321098549012001549056330081382852250808941913930274504935153730118983261792604156421843412246410316104155986939930998129706099658780720267040394707423650695660335646510404913216241153403420929563082055691516973188832535856030438611698905131607099587549181743067429777139993385046140888013366179808847914248114054341501949403481865326344367232598431939320858163538702703049878280571802791685424658294807124543766829877181561369638859591170674611889230497700396741286489747133625557078991778996533134296808431839283696043378591715585568127417714740956613888257155033505567059072644628394898303442876671932516097733480664998731307975705983919328438679781681180374086628738742756503175382964420745460177509281792783770609140685182657268679749352904489574055915244446680482298464717270121645398148889091122901696406331091082876625389793123706775821336510406977769546675670973823205909599158410576702850228768524322849766866204239161154517486363460439628058429999169789177857366094240627416342311574669815473171552395764618023146895024926987230745325293828047042347314065281530890252526505564947748242591116875204114400941094453803589318057004973023906123454475744242051806457858011657319649946306461562828598354472210706989003828580882977833968657465514332111773808113265056741550728484074094497640979732193564684596091708781389581971939068704345643113834016671553386378584782505273972791518522885551379221989835979569187202906930519123565650888334102181310760946036364161916445417602032998984866838979023236255989549003893544403115333775183177459304529826116818270928535050826275039939310120183263835761553802415886217083022549220652254810855656327422428931281526867813492955611788755966424616407270098352198927988049972663268953003835767974526555552539568270641176627828828087234360186090705567458660364791174022767970825984072469956638198622862947175209765959234936694950542804715823400964272492503270867092183888473277340559858927638518615853303362013283663961297684701775295253442795011266144650605801585204114970187179856693024793844320488600874881461418455229901961668481405167956874865612655642107593465663789887394055657780934120223346139247640274566346888373202238240712454937713744442257024789537630396384098846777825842582139556864933636547174619291336696407872584996595307447955474524491827527898801021654163972241790577271048773910878893521966678893299297366514973723056900319816404524170778093980661243940998432956281845265095417803355279048615200673695740957201935218807474720876545422607468627392274557807821009578186226532515830080022323804233575264505034419409322150115550075650602155174464992609743617709660862613082937044455373128076825910148895202685143442517162016639366248014918666758316540926827625924371906678886859511724175576040340197462616024037590696812782062475956074284619268285305302149904604116994480462954224616066664505776605850832501465242419279245261110143837837381802065873772377260592362863914196776524923726309568688539483333182363986703267339665104285609958756526591725839436465263290014332714983095004600219018415514611572251965159972353425990781205951515122583676659794383845644317797166498736837268221982928384014722136677779139211213701084937020835763863625847864094107871878810177912420122450570915580457487605290664296290550754282933587150545908051318156582505208693124945704371549699349431001874645944788661608896760639747325688504448244587935487189037042385458455210167041600632213603589797016128393905009230878358213141743229322610914680026212960654532030461289357510563323138959058420656981335150118441439685895138508458952225584961252657104482315981098919944293882888256426564294759102674763720044230914631134810540360325171220886997073043478068696809424121368151190708190449463504377837526556092058698349043047203716057024301570737915609514480451336092713483868657385459244274483823331461540616733029498072556487192751021051371962862065444025464874252335664679573990376465679925834815517709115144685449742590447655789695039907486466823878861270782393377653399941188095589608021948612130960817013769878751887219937994524760582204250344822691095508660692378115131020939587648065107981605296645724832020532664047064084939409957852491484354300218704629231463308564636346682372236946679974361028521580751510877584276842738988919942173933797304725327755635040331768261587955195263661825646594253777791965234950566148362749639336713647319496409379469984263033639276741200340808813416575002100828959212172004945274448647577391533086995948190237792328770491096653251433427279297155704956279277840970310372706866586385836439114576942682558438766418393387454093423604174605769833432591757109550934880314250003422256014954340741576121719116827171995292500567859070026853180135798365833013881006911903902287278589065074032988488984916897992958953729106955635593115351929974539517832268524825247410075958222480765816244431540701663513262951964645223792270745059065839907195959973668663086742040094118377373596866074343185095250522012821356935592476807503520861180534157824573420392250371460668568660106201347719109071931252871129156965514224389425054555162260233635165989540845643133692839387261357232477292018120646500226176603074278470997920776863757490614120115483794994487613268890926079854066456103835346553352709003327365150900776939605791558605947052586410407268460832037935274321368712772875917526426684261810121524300921599712181649378891709509603967784879318560565331342574143902006140442992942343681750809870590062558543408445091378661492552784378099368934648081996746474557871533163460623362393123323653935025327507312301874728692179707282625332249615324601667279796607732694681618300817299523517418877106211213359924844611849580187426036689158156419428165217081111257159874794116514146498560514961281452372638542142933889540039275235170925012029939820357984009263415075515719714231432831055489191204602362230332213076065524710214476485014470011940103502996728277030071286216920215693260120013048840168232895907353503538306895265333074040332957581039358134751896961487029754936351196810462245391146021888698541463759299979314767498919352405226576521881173020479195478944998996619767242877957909014469461736945913913367370112913370920652340807439495921976526365445463788165128148724675897696349661387682015517857048396322268013513687394697340003074680723351919190925749227370375035141862529699237657271059273423558507646102355480334532439705571056788800287939836930988875611722309792762402670093233956797383362177454672447965861161809520418132504015025837383113280064284403300220038076471551598171423417439239410913859641025984347381682699881085386166958871961234979149102284149152222046312307322374345324152994457617883044117919106710324661017976921078103392262721164868981207589724516188631051393271562740753728543606542738330935454759085721683299158022004981618667179876263242943069001404902833400668073320292221732774283845300674490053615259951942692270336165390051821420120443278381382446545125642924888041313968838435425943919490821596131120687725427870206348247148759114488431948578395645331212277697023374400231843599865523352522467759273725493817228097693181897368276635122761053127559122127304207826259717668219473167298883527407598857946633033457922411101943147167891073140500765023019564369999662478421681667278926136650208807814290206854748831387388283680753734077603401851894465555100370870766891459166964412683417682073117987639438613158636396849628862678791492858196578078018245737379967744306805205328842804913804237491451941029286459366625936068915002519685101534317957941338263883910168541815144818108412483149331324742629022123352491189529446031171869251910921301734276142871007555819356103535296739331887850225296481539918439662869452896088595576155158714455260484481962360020104251148703107823719945092222309112696357521210048251785375217297230023670223841813792143318191584727746693962231471572279814884943480341501036381864591244375500043017720578076065004280055206768638493288873726636718110984547407921966358789408372575034921983139039037147671367269652069630997120360546901241604214620748981232857306197812732369622694876655864826799987696038099998172179349742739846907704157890583788684299128012682738293231984904231251518634697499805853606868734768792341527071674325740194882149819480737602135935600762445789421343829298981578750306187225590428316131986724966752867620722961390345356513250314031664667857627039459271650339432163243205274308149271544302376261492700146826862866674776505731794542370278967182053061888925419238632514575085623162475276341476461917411727178763105846490668046526583285654685572723330219332524372987059744416920352165068442778331897080507837781986316869572541800716620908598965313503536723788919390541815669483455423450207655817697383527512433768364039656292568361595570066844101365944431732190961315088668710747781009939861312992689827246503362717739426634004624019955698398586339246222675349073050105038979154391347897072757883884544677778152784564457844032162846892882037465565732978883349428621590609296090213753419049675670362527641289908935672100669146282491346761725404465199020977201725886499645708366236726175937916117888021430361777868796621362394559160793515040783997336347485445516891671396664762334791598153056392044803118422766702488059646710799755069046832050198907405496291331443270474899403009902397196735601376543741879334787396429490654410093653665983563585033040539192488989442782154039890960254118751563972209867370147481381141415618075339390794588532000281281159127556598005994019373273575514309836997958210561587911237768574494227486065797948704711905880972280057503174656044829478500079507371252364409276883291082109679334978762653746649914875199020034862820232551583866411638866707166848794754844461858488994309028223372623482357949910814922445536961309310294868792896734181710174656460166920464973584770167043866591761907604603419018380952506273263082572982256266379150755381041169046146512259193083678995371792143128857737211662959748586371656730193731361519549154104992792922085809452065339343935182734033868066113608491355078682462219250932987384340124416626626723239078254044798046119766946755160054882257389876182731146489596234205100411165315266322112227834065232122065128727974374390546173731432922777846675349691985269768008324914431852413572403151100476852373504608608242765328915514412202710605755155157555656620276999805729366693662221895204461968296953612042072139643931369322143756332407245271568519938885824196023485801844142585437459633729839875288640102094513443054954653120334008774199744118041833753299055236313124524620426506192281361978901049886485222280907178857229670992546374038299428436770025389376635176026070643186643383914459968811006976563388414091959702793388278304614951164930810176217469737980890737424199385888593928398629528324183153914828046779563945045352891666224094591487263817691554005551849725623500296597308479312882140744034055904865821227209342183134620852325000717321135825050810337433743522984099373734207387478549077396802870137805776600363662220697923426493061820674669806789746968327297548293956407481637666299418242412191721555467709989580811318928751182394294901785659140466124412110665768980423619444448943291265911304291989966881238034088504962100308721555965239124591578389352751344631470436864931484932320751220238167055858132163009233236654999407203615391847428825609981346168205485243236376923062250378197401003745927384199344224279361445878350981648275177613730987054574359262388535064440628798238471505282739173082510902765581085220051162203285735185686415295626938775599991505505331766971934000534741526331413649252546867731906654803415139800445360098597572444527499787438651976522026123598907313800067875618107474392127338507659773079104717299107161866290845908653472207713070110691387351091276902422405698237758787440610129566763803302153139498946714269203100996876079757501096613084432578241715996165253562705623848776658989110929654697536068762727212407488105461103449864358101199962884942392141123893595663885378316731798082419985805388796429198134840174942818199686773124472649705407562612726049867390215822432537926470255637653589870565511966696122000840353004261475093020616358564499110006897774867691483964167723914358131578060649502589484719776792796498048746681467721314169215583282497759629232784536712760660631652498580840669917519828799328631229887576077849536082529670695022303379832361806239469775146008416611305949858116261637447757858862956912880366959891193148849903109012539467930739170812393411859137438945188646932335440342091420541734485792855415432265305784097361468564726067398545273316869746104112780260899650438194327654961083723635424864277625780220408241195449060605288153993444529131045972284562041902984079163664237058595936428145671641848264798806357621410888269437327009540079352873123364319388002498065323329627075659868636278992806909831186169785147788713125223227525661850477866278094411797692378490733888435371286805324465774652615303974354222414176305281114527325298192956684785445138296686769377134970569553505628269861153171831871781237938518796784401494320673912920975094413966857288206198602197850914444344804190702257111931657222954491480624269113539736616719272184464572623234107724082799307712502141920994449782643811875238728850717891610366876311577809864916085957238103076285391206564951777191944128417570191861230132965217924003174154656743501066025213030937103249319978151112978409726838242070485259900179070737634673206571867314388351954662710587821796770087412256379388404891180901545319367668407879983518647734852885646890218670545870113164205906778332357358309397102100415911998285001047113221276816845477888693344263818366757477868125160293242808706919169480110756316400428039955306645058426309743777950545822790556042497376065367451383092039585572650265019708760253395271531854956318681041980255614235376525273419253719015415731109052847529003907132400295014809405989546974862385004984910336203988215975000392524034590755916323859286837327379089533791617302019531708889309713812695083617507999543910584005667933581283835918671170019961188015538282735442674945000291453694466934438648253032025456061574266844802474034715603325898695613572623906035480536811722452002649604668001858922727123723151299236406241201741887741126038567706536952103116917612301267360891293980175413187201214939230399273099635724327549335313913906364829631126422585074973848910713713889254063451076940766196357406063482851765530425831946608321958122719479127587548706526245128945189517133523222736052115770751506488861725714850524318835847301629320340094481874886853641247721717457678809007710672996783319252489619044618758047229642107956840476003840317078159979250405360427798375807892786312370236186340400755221890164590424040874953104842444741602613160883194241475472318470471291630470230748450252076660990298593662163593959532646742572685905628675847960154396724404259062221310519448023981670305358277297858627189346458495128022133155260402579262336492257546791261232325092737920003438050274966450587755727349557951990578534042015292852776888305241868129933637445099982262961378671978267579938413274742527803299313712348446351407954611089593463255753524982863661322912538643214124542356606514549820882776942695914769267076736171546356128012547341293020999855181972202443689013382246924535720505816326310511547907066501847020095525870542597248185326164039083835784533701308179086492685372762028168975014678438559916255230164068758895784558967534262825023685127516479559568180257109938795199615416635460271689591108369348653484989225782578785417911053268055271130757289249711389399497854268187886918834196743909749090219105963771262205433862578317544946788421348170918035108234720652096920834058378231047913436511438653593981633786672982633899132261717258411441716206091556554338985175141320446170516444430165937170987421270580403525230609946634414388588698765201152780138797677270307036397382908319011921644903022954599603695270073616532248555517528352775490835707612485898352426982498484381381339504510341860341723674814880712349741457005809201804853142779327591952325842572892918439071845508105236565977651870873028808612337728779165451990898665235554585731542867866453692340665921080854669463030600245878901352288778846135144185783190922197176685132732705386752261413818814871672583009637575184691098882221920996574265797565855865931596245475676817365337202723279524746779448926963027736624807111488649428001901111788746409722589375286707832253332683953340700375852600457699023242706336651990142563784118659866081868995569350951141934430712434597487367009297371087142123484803995725195668531508348986240741461129401489715167951823628911481054763461034168582321870883015064303296074734442588629095960240265180071230933919253091804594106483794543651425546575456002687874260966236988063763892857564733646880423650574545163923720685284069666343305245231275288837918840804479333895069612238775350489004928442668056520954663675170639829378003823432637165193077105865841813429283189714711975481956195471831074515648849907322928605135194915496893390180591187528882138830769615333077753346704657823737188361071773434642207988526539961841446472086971654685574225336626401019729654014329710678185272048207763171538186610339913059641225372744269236237242976810626262619317919399162423795807020976575431629555483783449477702087387431597485844066847008790460681201704078926230762279237411410819783105244976197865455390281635234928565283716232064041523189427972130855522182388441104634401280621001543449949016834093628461821556978835357158527243422378801092308822634369162422432255568239254265383090588353362260841607135040523508647811506444973386461388253832199054512947364868616756749036718866718552957638179483965353620867779717099737986174355667255236194290941759248149374996373019481563714001996180874860689062501167752397271335850348154610723599401357580059021680896234183962331713674906386773092283083958798448948897937489697054756600017503544964907653789732407793453770081166141507630998731240015074968770953946381977748727201341605716823640901553946765039174104555972077242547224572813302361539023955139179087613081259060157046976858031440285672205667005819741073290578008087771685257436488308855001309689177287768554420780989164166213357521919902225006949264754849458520194906231544607076712930717877847481909906844524064596095346642558044680527967337588820706183987099261890080717975600982483816498342965449710044427452427375681681478656897975574454209545884012128743578274146914150164871777182550666877388348406122204195975960995943141516354254608201624007495323007498467529693712077588232179203593573177657562474269176602421502678566622085300832880282576003667252675406708561639511826577209240102837929058873553682331518192780265069621016957717061450084689486498608116696126860284589586517980523906870725569819957599767508119208500465206783042148853630370024352371805284553685539704782032800319698269641677784262558721294808534839711512495390380996699834856170756628460388660238424730904535556815496918545895472385711540087972188253857750495412839299861796401144304338185394671174069167648459196016918815318030860378917434595154269422055239737229713632587745963663009869544894294001936515465490495616436779449746235088677659367841017079313183871400367644020415033015373545331922332569222223967743992699340522394326797104917949431546439250202861360309333985346993220704996172003506259262511939821258341262518207758510764811157981338924286337007733519655885481850651099810018157993703863074469782095492697166406939825020947721431250728184455569209990407640975980480636877318897395028834988099664280579520350883862220252928962127885445649949751290308784475882687264311340522392035245456302789486852791922710860547387846876877829924592743808948225419277250744416559020439843649595983233499369691014002663490656628342189547277540116999525121258002387849594105511827964530342524245615321971074177779039323212567181058913744663186117297886895618028031494869589365337421291083623384108675077619749063311612625978382523734724668192766491630550989502834887225573816998576668135023017805420971083219936449823755887707785823962225253949534307868657184177021475955885772463971577026271310942791994836511066492083423623392117230333958312680826702354641994609444668943826712351316565303496007242865432599785150050395790812474513051592752864655234622408071797358508804191340195852380223479420260042715798197007903237377173524238933463314383291784428811042250726746066014117787474949419267069786905179793387314125905865410964214695933668809708491000038047712188497996392528903915645138662828080259037639151311952039430068686261010769168569633480264241658825893915669966505625936704668919444986454382209493689180764334843976665929725454690126435055675810446864487302840042867447400005628608703632539858083946419097851589040814197536310101148628811069854166040737145081803041839104646481765603832105339893233024367969480365071938567380645101686558478995099584297163697513650027352642163709794959132583585350880454840668736289712240024372804648379203944239693726439358691620937937317111957719236915706852509030017835500299442061342888859203813461432266614627696099740761877839551129259995156120305589713919390959970898315312210406947346894394228784056927315016343899645790473605356750802525148138935452200808763232200083690609794062753008373957131338674838756836886110760195283132941139851473201208436217405444336884336343999423483023824790944057895622140168316842564076972576681385467593230428289688259165920018524160983762359243268049181307094069455543248907114544489158677703246814211575962604753836151650119632440924673156668099960641593892448827992409559702797330642018509005536891567414377044054196138566489585175525138002809960813960146936428762504764456275800025032148461211736615634616069564927877155850663886522855065252703895258407821798750329473660822965670848378125133424552102810802318532927955019900470835001795378603804509383527334615020720205585902674594830958345930432212162555041384225445657262733241871809350557657563921650427416035521557060640876760577910803850339756024439023592993472349186398758054962146519863510792568682396663929783703287383344059508343128774996210620715192518313245095588776481658700484171374846736617722274392909063349481749544062086741616628448204904712601349054045590997781977346183070938777493822343825221670217105474219826804872585070936776280770051337779184668832850515491207314598214427379467355975945648780207777274214416019587566934732244825871977181403048887305531237419237855106880458536079694045095597908152095291836712185483256263278726595079185783556879805157083889547881321395638775052745977548604178637515694705283591971450040679358403809689689027099445389484679258944732359332333283543501972256026912028631108892535011951788149645282357085901116296563849782354320136711641735104308563004253634883971059554525773672568582374626567396421592996147812809076684660368566995333155352091445873743228075749830947786706483022088850975624535372008811181498184573438332651378307361795196498044037334344520097337456316304676638658906121056874788418351907158253838330161149623724277873831770460699643613780447126301149803867078393007419837830219858230170032644447073178310322284194471407831315633279259570519660988365043935319912895032450778338183100923934325374436503225204236578798247109994148915082056116072322206956069395966250711560472957049697233344261081252255617475360796919936241819108788222230465131953027884009886421282579839911821917940658810206857975501261630409168390481240928811492756682016840420501298340139886854766371980900448295704475035242738911821851047197495615589049783624324391467350454078807060999570853878840299253284710511891567556405819279681212122850120933960881285615494780064263252808849598410828469118231577345819240033598898605040507835711324539166927362661297278921334012256665144925952222709424252287564937419426501449463080292297961923413031722380899891729776451727815862796122223776541268740664967511933362125631840339502059650923903133837417340191020816089639482852231654682379965020436211326676312272067158377593518996512817380348679256380088292297259265653580736006887894656115480482404615927898741478520401305782157316373101148856623192616479030624687612183353510974477869163370707362849325263245068463352147101079888537821306457642192059285681082455659977420145773175026637482847136855477678845382031569548969401377876389073195540541823921909649304172119178267131435479545431724462017514170398463504915171289587702818423216233822826953129255921099048708459244027836180415345824713171695766613671861508886830215509977878943669194846063913732006549765825940571018644165797265928519375032654134643030697707262414871531075673783033745777714697418360361351916647620292568313917877703002643762717220125982002227573825393543114821929750506152671365400552554895495233932941595450268161735515253773206021332896932987279989945455296072405656926082700512446627714467453563088640611808162609236516466645701058586119704291026084342332245761419022536329857118257298126071146606693223241645973449693973992388702621836639521660610776249909119201365644114213563396220458675836544969212730711933363836104164684207757655943003191527638397079138599952845864574555051813508159731169345898491850548737618182101530805409337102588442319264497476975076095317115461804793703203960117547394537097387010207475549180458264811349526778902230736056368295328520183536751228871436301836128474719542943748957192937316539842232209390769829609928263090432164333194379282718294813501047918654378550190405903156204635206004114564534673995873588883141408881879858097209126164485819652999229525569715621336372131086907749104981443931696828050059713113481668562811625453008690649401155828939442684345814444929237118387008478287233634483317485674483917818954679714291748765585028747026954362384409262011578175633283941501648008489450899812390910497356390582059796306717338826069653630297025456940359822529140223328700514737105140834744640919066223281355109759033098661859218210979618747983867863906019289787979820334936890222437273332287905368370593856210895557785635696431259615348114167141304683091123136213446636714081201615022794676507108886825249409128528901441825114056408432946784352418712846763552242790215506450977945219681368799527948686958881945525706666566586055140675220472850617256126700606302268192287677298873342698570478083079188019277734539790553974650601877976896285890407045650902434101482947773058600517703676301698453015098429960784971789607160535601875037752771213176283485511277913562242735597003963945473007004749554823256728488015530549771284646271356376018358438675855712456973400361578042574312657693456271834520831569681516848512272655495329869322285540705344446483963930709432257230293650511099812074775929459062170576876752012081803268600065222360651027308035078283107828450411518827172991771994959734091962366428399735142299662991074326163264595066670584267699916316716918634939867530519585059249217570654307692840692982945314293963926109702357056487685757497023759203861044762250686697092552694502309807318735416942235938540287371748573403874269576385635288805610552482652504195153416071472446580370885720527524730027326798775075406103014182207536875499865302716847562471743758053120685582001529280886516978578159579821432177194320292910084033890814676723790565900734584294157995774537007928923854711504823257035679974269717391706600384694444096029431867166220444397082941194784320193176167100119736483288494346780004975736923208195021015110661870273577402102501146679851603299056252439969028791073152987155156871880962846159551739447012160735079213277513589464925378046087184023037245706154628749933257160925031881341800703998838389188965833436085011692885819078457574573730700587160239972315246785085169264245270771749060037259781469304883900933834123346806984612020257221220746816300343207934574189069985245529926009520956704639484925063423210423010612348464893341286895438266506800310341683606277026351466030102334736933406097149288360720155508826978417091723124169902899759782822932715321418988635019555779533670212616591565857735596636283252739065586517827181131374028508748360259269882368504035250160821855768927083000233863831085745755276077856798830147405895843061222310231871432477762615722798545102492991186476422799236121141785178425383710696529677294008979844359256639993915351978257604364637226859910904638636202488921860373985024363245097413389712788068718856945737258236168801476223957074723624375763250531396511848865653418673600364825597693113604398552295691455090006780435527189040957971796877114474428884952797189600653738346111953074182985954518092523744135978696989748461623588729303711659485718320563054503508766437484065166339442875689554336262418629783557137576895616833503147573193729806737842447245634293602482200800932369306021036352603675451281046649095976614424255877532715367041840093323524778175322564406738306082123524809229193601886579883687293399653184494208008468110601874235909165734601431921179643010229539749786878224907784661535730904877674352595719570047885996069742571450143731700863627442344203079909350952641789570538263777294348329992435080363627709226399480117447730360347023436929764503780499999361468464243883020431431933050137894675336645157975629578259026952610127624008893194199706598393319371020831606854062556824365259949428069255004919431849759719636979029594344568144586867075058774196991724839712737135087324120578921670824624325777872533697915659938767363930751602515027998675555947437851022474262523177061467672889242622160268099629996872225721038498723662950663765075136787490363099205395915848250701569558167626960452556734494262115939300748557683801052196240449530493339969049434950766728931492485227950760246890386651768941249006831768835972599869985275999958958286579571006661676071986735983170925384449748650596944901156818507968698025833618267427485294451934360121536949491468722818897768084637398119571706891377761193626151697394859822060705729687411115778085749974960281245876717637135501799116336512217647350506957632386193953920122973103865213109430687899345657955467899172835389641226997220513896035942835227382242859321401955822421529615121613029206038041676273397457955270412480372599008078860975912066609851280340798820906777454406252514317019536244131132301227907562026843028292935193674813572894844187619393556728823309496661506448959321215872050098705339434366558509539354087597841184661622712728530352416048283209227573717416755883774235954315958148979516433506366727476216586558223524807911595924662978603015238968493842936140525316686132459405437752687938668967960688947367841693089312734994102806610951153259751833769570542125317234637273815257575607430690752912012792883665007198314883255416730364376393037726780249203110750273273110058472532032919948685582833413590818986809787317294212991616635086059443197543690185091743596687825574609589142489051837365721539297850840524019894045578976216807607911524749414411458763267601642506723670677384839544376861002694144787547223885433243432594667445697406570911196444656369276230902554402606328880776018959637092105534153547863659941627490852264702316507056078923783125057707708980323866506575237153287105383273112082169158267592968178277067422391679465908853758520826749088937479249712215163809181392383488416242639323602346183493983764523225608874113663544321016392641838363653497721767797797994866982828714139183342410616825021983325887190986101575758869499770518722186575279298820780138838321271694630574021476745226550560970581906182093207111467389690613726922809243431389333773755925585771701853262874564953619746377947357945141843848146694320122714791940305080360838168565177783277967500524179742459313279512074679672388439903496744752059839851934347991061758662417697844072055476903320993716404228218428995081437435879158186614518336817457643825637883349697840246096224686477845067054590086676918926937605467375676738758458249984689381307987517231742367187610870596524144430539670974622860284540388615599995459159437571970297639655227642164041796288417074354737674973338752111574401930380925127960768180814832535308112880435708663682781723950958988924288572749194092260965607150131679956701816501580831412968720300464782892897728826304648049646799694154778633198172058502723550584660096329488167115888387591841733855499793209658274754543948084319787958749165598801339559552382631508441329948369126792973992776524814308688825657908973751501899754213055053569646568636694452895087243948021742707968609586418860909614784938660187538975309392655525980320225262614713674889162796027001305996622731609033125040997563116433895028309330993207908183715635963227615024127704532088786924639675584205080384386507984874957381957767574442842483766912475875390819740208682309397635665126169067164757179214113878813067269743270188134561552572229205607840386611438066372261102401992618169883454592581458093257623384344455692157848657843177656680659728342319432256639795105120265375750700947437375684700929533434455376661796821680334139026856883451283336981151011369608107498527422574982768818148140342599292859430916289278736036390134605830167866779398520568376411622742779664326058312707366871326791334396293413160628633250087139173657703339624927443956314087059159808333653979421588176650553363953344884939743028001885812715168347363320754177524212339821686752109113025556012262803120035200793970000310634726391004639647203075172599311035588891478633539360921100297584655978222448309287355539530577402017247949856302707134996973810575182469377844844951542390289933201083522030136228445856161432790838044875863057422774868705788782479295778331370732658985851641689333073419912625583652132397241949398945365519748761855508181834349368936075383758150173777239307188403316370002756487248188350612363859972073319421598751349816606290075737108478053148191337061233607289693109475838283612739537279673657828504942983587093371095285980934059295087305892087307502519325953863249938709860130932140449463057487873947696305300056503119111497339109764666539872985168353715409817133290121180817857986565868071277866308996117674777147087393537469642014190402212747413235025822605681060649292651899426528569988372686655699095069345789672106127789321940868494542536037741007065065429181932293212967796614632066481811457754921651110727307655921388635006106853499122017547748241840729728136954420279137128468815907891172435949320660052678086594467632305487419123092625911676078589327002892389552390968584888587088951396452049393781892141371428651085615810800446699758082068911444191083258233639042604687655265297831655055718134009942373913017232823854386484248515750368685971085824426561726372763737444244892587433289063353443737747715930023623327282573188738444283120026889728340688560619645064884820512693066013108023840987425571515659959728194739870131949125777486717683431812996810309814468003332631330548856525944872357075240737736891408182308908541867994037622140713581599597794524567256784466976651204561841392218231326929961766936215288074727132958109573200517081534520544452041194768409022675320314036903302898561519209238982169711882922611987300297351383511109476000568045694253864449211326726814038564313127105811724389467306440139827657414453090680216340843836891461878525397513501552963054250645496430070965111228540146661414447358572827298859889398123544947231734301123253992885881466333613366021546086948773879088622825047532965208958821144866120037931890340503953523562390209028814360382154909194246552280095548173562636941568802536192690234983456146414177225150411795450525919342736790763118868217021460547041853148150739867499292954428478588583890806578213989675639020203831648369978503403445972464750210768102654239110302007399557931643265989815523350330133868843389436720724838456473539166979097948897996376884239766443397602994825649226749602247118313682668621022173493243734498102186076476171781236955144146618354971887012989761820605420225122818214793607078097214972002336362364048282201010810411793673929864625863717091920308690563146960079686424001421034267892052137416784515203090249074059777805008748839837628526156243263256745847535417569919682853473310603659866067132918111790926213343827523366160625885105084014350824777232630356885299547303631079243989148449343306218427211466789951331994545966596751024159619971171300553262643871529069933439518816760322449414547567358383236139044361233216927977565579959545257991558651991912350061240894446368349691681797172202758158964973194624846876666727085740663381845851186256606507791953760831930771913175368826675554302176393296321679962833000290043658434643912263502976304906827969996782582133879221914119390914065857581359156474943464786281100848408018193241677318815348393025449362084604701689798948189048353243809115666920833375631027735965559785520878126758902123025960327241194387759313934578942585357902498049261063658545667791580562495154961132200963577888785047707259187599136019814714404403725512173235725413721462461266344350955502170820126280685207321533457356305266483578867085208049669214858628523145142940900194868700376539790661875483863431416867737446219692512308301752852121725021633387376340061251587165251709630334235346631723074090410543318076894024965935967298462768573180475208241430319320197998726203369375224747187086550768632750451667970777990717149100044044371965141475020837326441553247427105659913466662584711301596448270852666434874466133824682975907644587343252218303038619587978004188600157795328678369612557194133672983421782240144039155785197135991818928451550405666732060538206555510947370985388230521903354265693262209292531408600720163331323431738440148512646903407730196957284408302541989543051533948964866109299166927835215445417512234458607588466374305325170144656861237106670038055573791723643902072454283255642818348315854339495452345168416605297350681010676833425881770269708940066944249849533201320118251298147136598557078237926075020452590107066117881644649974979099312137924070940569459951071734288698098721762581200608513350203944676281993927543285645622003649154706010818948141598503293909411442079652730041131314075777494677927556631681867503490547917748953239862594143390837723516811654093496638672597095882955228881609396852288608024573193098420568277344247278385232482745689203204198438740324481798626519264522984108169139664919590567683687411405865049270596461683463253288424697748842106111974855796985391622154010080351564309230105750372846363324880272045080469764015732912546934537129219204445532317189550093622351968076868207604961295821018930214543280342078393608426014568137011486520653409967690959196016259989921610878426485662844446650639677912823506888290334725113484429209756566833725957994856573539540483236520649344528658875896414216007238851484754457178235736991501423361224320145176320377682724336577818855254978933183443657803997032785651631949089475868270843999082053322458235112438762360334813810272711046909304366329208919430992846733863546917695355238617851730406956554400597423589833729367240089644655050726020197313862355286867656098908979760936677774118750434163709941865302205508815176992382869973524587423638799296742372463457221474353928112481033514897998604970161547169496213595699982355108378419863061908264184201307120123999489925175844904806319153506416553836620455574467068465939368696729324664611366364754248687416700815764125382906426495961295594949212827820624879127913250217246887822612385632336973145443562178343493570539877847593163709620624506651337924388673351059092604045837553481982744471714545651840435479484845691243663123746274599990890423335949403594997461353310185955851055892896442158739922799166812363350073692775657170721712816751047043333004586334595208361677041440870818430659450437619871907762864906302951037437625414129023681830192629247712377391349675010452152304500462800133418366056697314522249959170215320369284343979916458934705546537412449933218695773657269970419586443419853414356332248587020613554215224660823733378001191084365355911716894618078599069562572144316067304169210365145628371549339169996094766130418325128252493830252802409071541218985089532501698648122907895540859171296268573963959481612708915743740354371651430600903491970779995004743592780991683077973147148276831018189446029377531704239721818180326770220691773550533827574652770015400053021974155443162055649491840550789251521853257900485566788509179480384943763832827825532348765690751509375272337530823855883389737042431062406326438630864667914497515715881030701304265313830268302401533352954652356900613954300038290716766416763723033546133355591999286737808569724867226610207069554845046764694256100980761526253770680151568916787151034673075273362982567384266871911094093992031323313480164405082012373556953847175547029480459551870393986124617662316538910641902426183734250080086472797898773698067698542507138463860144002960409853673595268337439603553480760229093072098609953568979277096061403501486826992224498986795928216183198671037542793696195131768362337238546000262025807978201651048750821971270461518342278000766330892740747470130155272268437462201519481545440503458273760322607195379962650533663040070271353898239555409740618661665242197744111633281622015069778404367549698317271708214953381960675629774318282639696879513604280966949123579763259062419366052775361281088034367211085458179471314313189556248501121688858530343033514931859956605413080589777605498797706336582150827222289011297339458431600576872873270997788606341734733525848090938932228450990149769575988112253245035977707036214126767833703234515090765751162066170402115869028405773248056049186563506361057799757053920980904920013122111157346250225846925979349931793454591433851071196974283648068824828722261381005923033446097738947067934001802212299204920306341613653402623128254083802028087700171323382197815138707216805951414687583415493101678894056647357750730481433639422985116725554677320112038909068444799789805630575263628811347588156560686047465278355733446535918073691266775841529257311109526504350644091278455101592936187393337569408948214269945556019381186164612141975172493500118203235614821082703122876148680840850211461894128099709163011543024959352526260645573758254911616934809636057747260033856713350933905171629339347241898217545075603319214955719346177575843073772963721245179338898801938902183928292903490487795030861355989141747593001056626365733065000344889051846205075484659923548281881968956654665559986605433996186510452971623564421822236386945350236639473059487742925640524586782052148323461858900247121451138559516994545862748926458408099432278293604675733604052298803129041416069404818166175082393914458683684910999548927983111254861734903973409864977311398828255082457820886155934146237524897738285996566569600762190639860715736491562870589677532256146097725406394063578116361900596334153971051816078877690423561540903325754022127187854822758428542707423831513286482705039982454773696226999482178377998614886590586654005182940172387519555899153715191375796570022910714367576509804098647845571431596878733126323899351462820137312869284077927263810538792513283837415961625584629864511463177762758322236352098324012843179776694164358618629976305302806363872402376048396422804608329554539808734342428081867940193658749320768765169336519082059344809960761010429948080826975733051043256958672505786432026868111208677086935875972939312305943204520568314525662212140243977240347693568727662877252061019921508581135402915394400264817644133934312076990937353437518097568208656577768331504824603676462029559679243447287608156872308045055394198570208321520015178641784761389594180188826159891209902545461268300070963978856348173308745194093495019620358260110960884982041508724984868106209562977796912200440379916304261438469996783520141383845542212095847742448422975939990336406870143602714380465092669751118531044982274386072597312764260961684205793493959473173615330198586416019244982021064677720429630362958059299284795819034997758967008141261673073898274868020872087079916898976540379768154398522792313533358092235510339621105482551547026940301581669189162457610157356936037810988401455305529515824344245266885635269174556353487280865405698223639139055589878588909308146104844787111832518410562016415799454885065104509927079640989516683047084505024915942463641977743385970431892523231206326709075197694386493094864547653530788327443345541912996901641454696436012301296233113605639492082928288617214117718286123257977980330411561232874576320512986233008823105579566896013842141071219059846888176446226160279314848230630497277407941534234195607360459194943786781933488827876984759070033458179634826201533845002682040277278409394794306634806217354041757714555883261443238695731300384084124273515870224282132912894496564034413984864018067689434676322028338418798192456708689008513812559227190683865662094806786557284012252698563431392801398676492213658513658760797019634539109002757085296268170348355929130454202148342878453636283050556601717976088520549617060874772371851855741162036230743644911750166209642666606202771423384967328371300637268135182792567108447267729392727240249511620530241309500461517229150025343312039951714287082909123750332806887067784471376579488653142005055804298081263115022784984126985265815804177279633110517001083218336452805218503029332421520150912524709575348945462884158167706916705845422832122659780189001449154994161310778579880087962718022183923007346548840269691142369402443601383075858348457252695915005076919325288642049843447568476046315988462914996287836698588925422965303437790654551798527667020770856707272814965051593631601983770454262810079453095891436809226397502562950393499284183120825268799446290065835402065779895515637959568724323473783485710485635858372653268521150583566777420940806584878157437868289909267277512267614510626471723255403857884053404232729917592153126272164772000312940097601592574284625047340813322639992473233125713940909630101046569098083494261022931144424934527212019790433081970735861356361476228066206181544585276214016263203646549698453560435337251129042661998291020406072278501984794519791362295392734543925053517694869861155426706704285537746500656022972834651072190524662545246027429749841848582168841979658195695644012421589633815005678849853139589226018415108914984134208141723566769994982974568368976882963915066639625120100553686492359869401729218130361672356453876703407438529333649614308942009322502479593675498078886079350331021090281226190600686954840631983622585583309989227192466304371804052798621260849614433680479855583499297817892427979516531674555934870645582373174241572913853862154794528872185454444231890556244111493129875030572341113959403086443810864107038343003333525978628033859121772387771272800453950658801182015383889582633758291934804646136813428774216570456311798026071288797121625195458367600643216609203677399414209073430373050663765246424230900122568405081290281201039301790731012362536673180135343994282810351816003017466957917664415649857233012957792714213826357997376759572692642771088347724975227092552547691005160587354085063388444633669269294507597533622360304152582201282468684652704420282422856259103091154712453755972153711893340134551182922513201369139884883742896545483262106517076237654973099958557015365569128754586500556086177522188111187279182613624075552919531774630197640117924904964137165987247716319840949002214127322492616004906782845890334936353398412688691940440384942145670725887096675202271891188932753533474354161039920325495580405734827969223382364095256643971804653969931499568922719301311864402069359885499487650340578839556885871171733729204790825492926348793920031294785145823556344666986618408834120514085662940909825887812420630157850848647207154100546225617303352152388544311398033458046638376570973943047911135074861646599175146934736141140860141790881802286212832460233713687627752343968612442540598155148691854527980971559093712005909030727727867781705979357584629026777267097596911405679885436769064221597618410332114036267762869250405693476713214431289589291857851846208967664339007431708899699285405374244676198128858797623315249095920631516827137605891633876247787564914573911404065473996872236177094798415984668455139991333971013789937551445122308054325207423636182831293773997850787280377547631192513685309466836279673672811650196233660564449384583333786903192099280771626082206440471018972793004345349667885181551564312223764608010362627283673570693273183224316500517306103319872059291950726888770925989252999923950297506605195812000402916351898559008533761647577892464025547865342109063383669309647929029180390257645832775739152390133815612922470200061275506464192491463049481250412313218540390706002573607013625719684978632691394361116326020038082768994617401001927844592833858680325417624970555168033775983176085144435575703469589190875632249218369078846081087967258323833614327435055562890749629362127559282479381135501825515484294227232868505184756288131046174372390535983501486763759911407491906349558419437702472280384869715488702448133496201675870581031144482453662800504028458723450260667192593817575761823218850337167338052096637459526708341578628381757977118727502939172561931264545709803748409541834537871642040429800423492907643459231657562461084950771768988339723449286320285172371910620033658892346296576726136892231444072070882337942297230208828322777745901363970139186021784840725693194849221915393535896092419151396091673049073007149809437750721715502609867961376177823337835618578033202316657319793351042739609370690569218588846494438465240207015895670699573334821385632829764750678233051403982228919780686440981916541931197422278392230421244735841902474676839623601771531345063419646125746523133183070791279863396657915703317038700972188695075061206900237482163707818458170098573980133990892212291085426363823751099104192066697088732415036923035838380388655426032679527040696252792173360863393784670537135230628153018065705900568043506148543715589574766327097559306074732924498885820880231277151696667849460938194063702062553750960760488211584525277469017877394718420389608610849424204154358233272190440337780504675759842137773110700422459159805758562658129588898103295993065431915781147804145112109006021954689145086993458848459496892758396445641636660938102965312728592494816730165899868364045117078820764139719132126301353455873894728151461993030099802538011513504973896317343440409660968110403161854939590646093806230277934418894935517846961006231328131286974286313516878944742826580001556755175255730225452578233639287496983481899202724887539922105677021291603899843050733029689273316198962468079063838794142764246846913871921523218009690025156105650237255731509377380993602744825674178231933871055323021855042847384561235130930014857698430485370708170641750558388508956240927758310452311523278673033264244273593168808910932786010554859507825535768488764724780265311220334880204243025692749777951723032848672959621617051684514373035682915786602907827630166056928388853516993861709543778518467106584774677969727865833448004290486208681498645978348576626236290800410399370721031472386534540886706736822754829466893308582580942110481804904098421216723689544365513911934002298728697153478183607064195013321362456928229872238904212517617287984592085285553661223131959103250134958883769138579658298384999334535823400196398368512710830115789130322471376918361909523435049462099690462012634888009005526270874503413392321507004377570055618153359585335990239609160072335990303647976544856511759796227972607286023755538353436752173271545017831732125475432022745368672347124485282333347484135866081889952892248199208524494019148103874659074603726088596808297658419334873406422710530703000868800229619379590021583903613751122422034345194659293204941834652152263301067501257550479933141565348420253123821535320437192596441125962933329821206293643301142431036071154389379871420393540701802239050356701139318801209106121643364395519789675809471012055286866614968454677350058618591942912763356963869317840096949656450031363275741590563479077096084436569053804191671089540984960168748761759291568888161031920540860970288644633642251287636087843008801340247672786502507911546124668772660376756112118087066521457447808674899051439292658725199308005462191239879815977542108029337763898901735239380921232079124510093531301188802206044689604661442597098533371729150058885972898290556712193609850743848455760711099628785109366714885474141900956076153313748362308785775581880317940459983025693101954474957562529440158662660052480352326168540370107610401588408526870044110510375980407459298914862957629410100091122576725321678956926868593874797880164649230571719664283787123478821843437822610668039461073067304841644064918560756676003119621606327038617666306636221906001605332284033403155145300515722850722725075078185891580384233106013844907817546041809831867958532687790909560406104024415257675396255850904535394771392660548365974526739576675316461914110113573295154083374037924782381429284914155392592812246588614709648563030413599249599620758296818654114980073599187716887112813995756444637706947765615345923104104072493350715468295873848550297093142540891652288885172738263189329597794098602851014064993249078074966717540183865503058883458451499475728789617875003240046614258702953551121420652607185728047767104430846139266370977105868375293825755987906089726358504379967774346212045515994667188551878815339174687720703144083686270387920097242026875362402402857148729662602109312615841048283840531425726039274313784000520906531468170434265038243146402599265112879887039678866954488879292401078610006143191661144426524221150041048377155425648187494667244690489349206037033346579448121839110651173139026879639713819762384549380690705399713565617996916065729242178155669823110522110345810370543442747917710000343222956895769016171701381604440063649335867757695655667168144622695117612046566488385230172511882470093196651143731852645692846126218683663059870665075977305251501235439288164193733006918385180600002564534713787333302924366220381807760247368950561193723462025148953193383343933152711803679627144186740876559220902907843407960726749204356962680577914564310346930475186809525600598409945396655112946633417905896903142653208447506546217851846399646551827134307046345942545703715852226757961070159731309350254115077875201238566323444110514731710100669319809135098395777065416351873308246115137503190671216550997955718601457887229176530931188053958739870414039727764817857157316081294087346277656329438853868317685300257224751784925572190619707576168295349677729690838034312145587046965282420416120680325852182484796762919520406458367428288318758330192532457787143875919024847270884163360907548650523501818191540479646034541409385706107414633453869252085944217707911215539354825824622377733932193544049413548246804966100866113267075614702993052811620570477879370627237241391215882355461032773074024079466036148521375237921628615216818192090084990976526637286870606120057491240855992573066036106086353518247047543744298499962076761259696874148606937538659599743811810629949847011430568016401686264165962069525867243505955377778428562886956405439458798853032622555543579247019153465007293262525639747037009168051917625379325750707362841480825585804754318095516821620178501082128184083952382620237135183911770336709003710298927336374874256491598974304508141755787029614434176402689352330654563051169695257524285102122585463552231913268391506107007646056687683327540292534850920760347410550711870109181970877614524055244290755424324175145989917013812362072976331503745036710843760072024961247205299690033891770883430243284304786138457595539666391335549057272781135056484700984717012845958027262324469873920845894048868285313190426577240584794051936925607274605603394002671620086529747821774698629015482711774252360223547324246583471696536129301926860245862692710520979963089411276099485233510875569578825941718630620139301268135081304687378217589061188318241641852043150248664804575851133636216941899067043976085312191034101907775986697725827865089579279404953953321449654348392616344258754563570241070044792714618624880117725634134678715160253482992360984066532141578995478595169440763593945447432988501217943218964833062195069803831941827605600135902890527388990397391892055640728109693116240526196700123079873794054994568153501971300107728822962002358647984996619659587510808378333263989454909891166405123904191410654862732736407177616045502155906604272063191304822709946481920141638233161592706300656902564021262738395630132387227023113757052771995967382824842762556986389668596551375600889098228803348627294710883958140092467246897682023850562130192045064982483390079984140288424579049879320101953901046611807367742551159679175849564150358412114518736239510544247147155170657874420035440464906227502424403693915656480976116356910759602021998786922539091389977934386502430992471809165855488673507713083053564355474101216520949041145662368468221614930549079612003752519925449910968503803377023401087347924472596625678567396724632410784960878033320402403435006247541023579834122596221871018235656789886938009381343868735443220677365181240171714286116703141548076027842647529562694847591746731264326141666721415876937342046793995786553730905821333846984136358304192470091669569960037041166940863345956896339352418102507079959483968265392784841769674348494652202254338685290301002447075197977411754139483590781291118318548078739452298343719240417125900046548607102829004568005253935731791782175703768677411504660803793228053562233789677279141355206205037237510596186346698893327909387402461414776675389069125873204972940393795117107307460123892116101622822810577676528074476256410974281859272882870337771487709259649197125779216391287508695318855483449233517810098398571878721033561776636257440634362466334679352991036258908474002565969545916481644806819021011619526567562912550042595421363869259061038058326648508782886324725619029567096672443023845997915346715498686977039379046715559768231846558398567778065020388154198135975813992812107333913166531627677207164902600207681088333707406527147879876024975755712110578014949825932279398139188489711315745451125659898426597548354113966452970535742708061629276378172579961353815937461556329069462753750205628355706969162927715656123011578535497533303238704039197622800094938396125240549763772859233294869903782828594889581876354460099238439688951993855216638743050997650707493696527975074905288712637052265255850996302913447778804791129966128438066132203089030718920450590289529328682045762865466463987293099130780863758590679848180504578528244003103937465926185090829230684369101595244505570051031216153571796857410554546354854890016850743410167673943551781463243084736428590684582475334542170407980195986333076792916038424378549110125826242306034461090009599585348220449347216271752520383506550706381757354190924722477810990622710032245571659857504185221163959489191393431413761958916393021635898181355775706441805420559076711590003491786026410594853419830436149900950377439906603617819351105915672023621382974318403932989946396873717859416410948226788792526220792076924914186964589567219184324967046865978238228486309275336797942009885785529567551362421248681677650742646847507690568116800411931326991125132949130497180831196793853695376852555253504700096755865017703028963043348814917323892358026277570363846203432410013260642108521152296158069055455367825543162376635010450418554639345537024059080665090708769418986346010557193682966650089510860949784940990215525648020168232243151847417805926233239827644395096471801730634804786470466030961814026822936802042120175271168316264191480296073146607968784400619341659841733455584830390824033635715403425395927364108512798810725889051322306490709058337038928470717187608023273099270394579725296781789229720555947816925472911883180521132541269434583839815303300693831960573849843347535645210112054205403048934429027080826228554208569177501229395461489362781069103045680828290663158346282865187936472804485071836812617649892595467327013238035741351202082731889785351188232346144919655319720480360092109656557381470351632785495979627420384272250996080665821770614941832328891752923966447065303558618313210264192274210464899277877076876608753037643985742845331701390722834596820564457404044046474021618165935526797314719604671408583951697924300671672419352642555459169448463259341643501222943012335986435788161740578693818404968312931238665772982755994674736653538212117280261768378358985464000170143302249248399954822462621731845137300866291233789842335723559646444348326877578990780445707403722243467569649687120664273923160297789289107210912906273085952521821367914748831250395275361979180879908444384388457666967759541242496356310593656689924715491481075436155865330395399086730961026554779771302701310455627990782077065451125631872741093059774257177179048533479009588773409933150777436164800135010483604055871284112755462662672914246945892962294026000319378783547816633316079943291429525313133582092377493771145423944944738784845718756289517827781500714895570733736524814031673937169774764460744025591740976046272427231739173557719613658757351763826333744402892630862244078955742978026181449278561601200229614688524929441621748757464628372932448787572423096856967614953852261266961602608305529238843605362176532448571137352893598029302104040019124634334293233514853710485172777266037756998563466051531946343919153660106862746366388507269268789920076756250315800996349100316065124408484802524859803000947685020206421487937141268384326372395986943033937647248944193808465690301663382231951098238863897737022873985058875457927295712230144955671055404647681101233606544435597710849028089009097103221587091086189455207879507208801644108488021757375535351709375937608238054258329097668877804211531900225297481887915140376539991097322728044244135507892967254082209190990392017338881302199117961456965241571455677981924753211689618374165231949293450218725261234041527433950840837748429155025433256319153859610492896925909409589063455702223594713678018230953573176457523215454031421903327578369573072197315469725527544265352206081734463125951551639382133754110265563432073209047725455301367676719520789219598129584429186816624465284796906079662266233331971332465217812605259823412732796817768598807231266706002362071710766377902925373388602428926080916073888893348027950217136041263256426097316155043374129433354292894754571100111091884794130289985198263108293707152637243832464136989791668213924065846225069194782851116696277780162222328126607669688683281409818597415870329530406018841121903359920033636653348081752757875602629603215117086621167678046368539494143971477586035166525938182459663693233373435753507963351013685149092168510629198298754051350748567250774025291622500558682320512503241714124340784495974935135397312798080063194593964389663515111080096422818263846177021455691633058983176058940073609367643472536843370475529720430242870468520948666042373346713999131913588673964812283078989576993584759193080316154906445159331260802183869543087539688510961813544080652914087675020235616594199754047115152906311617632078462461922922248840434130122919355604753177228407619059107143495519542171078356943394737067772377082496927782581401680370196385751513656127665574439552648770230051165884221664888262556169982494716321369288668572142927175487695326887187954963132036583999284720804677246437897912397904136998362645501186096148933278316108462265474985532154446922411444708256223781168561331093756464717990384255281856644929167752299870765906246220470594075125242691144547164511700429791366284640852876994700359410139096402307522048340897832049756447086854255163306437754170321826287114679872162577253254156905920729358070802731398136473567778546883908689020790026483053632444736132314920200152151995962758465781677350873538073956684231644012257635194094372329800997540766046249325856720829923641508791005662410391147709955315058087465198171187216618676762281747640662647521683564332280041474218026969660921783571929992502828013372257097755586778199897853355865387228117644773966774939610070895012292036719445491504513135693535812461453108929590855077021817530974783068947996845862059300561074018462486634936037429661800114709224218811712053938551996789464201327726703286280581692606421047142259691134414507383198914251339408983704255998550451301308737376509982337033374881012226536078757634136568689296588445624481345587283389087754597552366887023379493505661446754558397155495003962980013206320896046549845990046052728679101628589683299310481375343860298348182221710725976053841830600153439643461889283579101198669808552774064051026260125974750921656878825910384010399980418916851506728080471415408401492274169344402912695325924686685583350926116801772793751885604431869701527931583642073124249675375886474441293850947699785646833269065600308833365102189938750835197734713860143613181840522524117770211110115915939807584343188682358806408608445770068032238941708909402071393468127933780113469430221356894327285797313622449434789282335545630887775188761104314862145794942062585500897340656987463743264328131125689158606943100853719278995135897708344161814753887309407919479568046124819717522904884396416675336838713309514141765721079175234573264132351264646673717443367674268563071176954204283656167037312754639911383917935680992716037341137308441499879330525917297037133763325498364756163605335202722666989292412974659253725888764422593694647033016244050440580308239830560332111999028072338926778921039768873727347343654631106612919262957904430351987146419942876470905708053447124530962784085132104808926398458246977713970238944692527848608118650236518159149330982868838661327037827593211310893649600317790589337289157970047535257240223136473772664632490148663883227800421526132145091699934066517849283492783184340269178205563777712283504128548455793632646736690589030146817758575073945407219710506271466286306877119733553558089507304849010760706169108651823712721465894686486181375858639838553732264981661858983802306724312512921286715002293554327003935663537898995553518931558403722180524239174573353160668607708939736034674942551179421339253414027670901857786982625745789364809426552399989838506987324279866939200917348164358087650856270823713841788214171330129507858393790604792965815210550462757355110982420241672364516300382957635641092815640510698612510190893793019103060225088513525366745426230626098790332918400181343175390984898220955151261525678382149476800940823882055926335326909225262827455349862166016677253391112672334040005595325443048773678588609817301436929066931940856415073992765118729343250105536163900651090234399682004689973082738255393753741581723774345633464571855439980298362323040308335717856867050568833636955646816122394616293111975043265644050168132416800160859746486408175105618962367430263003229819070612327690530097416867394704579058678290703847832870298977444519584551059904639499169345292328306815934237165904295793755264372218225913938005647845408657370088842414945056737463291265860081317106454378296757900021992530227373932743860004201646520153043524680383260931179323832088334261074042087091410552599787946106358291923634408749459812839080902616019435049777889554781247118141195713128795028508031334585978840970180790038049160688216332628017376806343998258865176432736945027463112042582157905523686661776663644256475948709886875692018790026523338352915345451507418597762167057794327662032136908915967445023745080168447580592291962339612168152221045730606711526828164180952362164687518951320749484269543152672570022892606679465319821632071945156108793856675314520295447974921993837571546139431440350611039278513376207839984813738146767324587574088472708934598549041746019514366572556375705979981115332893388356584461949494614240444907994032433987692251283247709310121605029792015757154193066225163034102067883113272721357924111851764360972385349627740507119641471325375001767286124960118975643464231164960109935054809553539080104427908069625167829350422318934192508552421123065029302458556645815848593365284254798116913821731601593995032634052047644663722951432386292567497125770866889908183814756325068491495643378613120160039675455363107887391902420314340279272136288399673559375961246490467696352138063447785580711521898030463541313557823460894076562802703270044162975088301152015307917737503294126758193329176030562185056344607813833411518567915370423356898401802653775693056561315198210169966355598963364124745501557667268407318182012885970736583994661535131435500041604903583350252906569953086367975614709773526152371253472946183032380920305594414161937678370530954925446432245546248210134607053880739613853692510536887617746414252116735678656208171040191855496450839681187114184883722926953721305295916608922818760673632877118143085243422447538874752242819841741967906452402228283680496588069724406527183175953413205967528609806284896798550751001759233427236851591595049613511668382298462128884200563558966240314740707968992927990118001819818480478744912953251467969389697329295582363446956210319453383555090388097097642280917506451628840988175683805386572811332492978623143685604050364567923494149684799437307365579665139339264244346341679738208216864527568272340707625361523022291900313780975630481873425780519401262692336500994162516579797008279851759895288680793751665786541161901093032831916828485846134531359202491981465118731767035625548539163736243857749699299547194349682834140131283358358431163558109836556937559268402422403172663572968536846107166951380684643835079402830489217491833069905104936362371934449679776909997540570237071417314106134741091040340804177146496788920699469263949925875937125217248140503422779284929009745458486027103849026453036713872719260546472669343076216234659877768572437336212288538564687062108838705486575493639756556566827078269457610469284509714913935112070682925633553413292880388435075477355865355194680244908543618066333396962888969122179414877199039319346284599984238702558978959910756131463412901623948170669682421044381272283866619044398397222953661551089551722018583038769475925491112965646844186682392601908353491945158530791536452223185378489875944052594372258501186831986464175611467886526227467298714971130856424135663449041325712206878482905314636148461000940769401071684647952928559150724517792445316790711397354057247299810854378982286072140250126158823207829529635642967234552597255426210304638343011071705679730467188624929865062349425045320827049233494146419174698006066692470999854659467398016053959178888150715855190037802069226678727306919985268370493570879512765666761685313255260166378761200337504186380946074615881129084300306701455813300036969477422892453314014531026862723294043711482197998364686649924227501514340875754387532144934718597627019202680762427809299449369630230707097436891096913540896113735328215047110986951907529171296882437176797988574778880230812590827253272810093959976843195124945019792611534422030136498242311180196310597806320656802537250580889026400643467256237934053612007934884209324642489641721285127951574530881685135612926130418971977120490081896982112886066225094204484396799138190628867942553081118516983219102395425017011529584324473026157061406435140857801732565257547996981236270695162261982480462725525823697606819844483817402379897680565480293885234923608483367831137924583860517886943554252788325955830307394892630703803182288814999919065170565155414858761460675693357223295438184903246191773985476280515420900910706534309344306685501250467702725663737534173620238983016504894969870828581729012513672297822421181884738823694569242343075702642607833848284619274006080776413070788497974793352857830147443033317909804675288180838314592222292730277356349009761767370580338817530263737442246513201723976666040957421787772514747545668481119562314411258443771717981660397933969534192338798684484371303810255221092249093192017583903909253458321985797150236452178342094013085663950005177756465312327006264188665378981305993186618657507537197621122406672782720503888901383767210727475763069233166361851654297690291193922240974861534391882992395708536863883470050125321869283274347315503144286578249282284182855058800645178398462657809769264282935407394431419654312498781176803797015487874622737253660189105591257265711369312904992276576027277610574839746597771838989244080545252668894939509500654937226006127473485084173044207939272835549748973543508420225891642967890663103027683682614686590111313134334967263902514407418823923876367947103522708647687560392090135124824800250973568491957298275408839510123363998970082595923358512158925565854930096830951422112021143268268717258161323307009348988106173554696672060924369983576583375393521598315242768026405429189867514399531763176531087549156427133508162055487184892987600432750135602489583115896560878931295260393558924231488375286021156694949212372491598194397147618165681679511261454677102804807532440804851819307819754729131875564921565789119063687739893349593466364090337645040673174769403326820954204797925866966996498796595222931803366546020248019470965917740190635474222651006041327602628746926643302677423322857059979285692195875694450917108188011545398459981866758028557442948769045925436657928574857693346825847771032189355623570531995450555810596778218348923351988615066627303433841122247356874599408981386968864754625905135217011869874300713730002369260007272409790616580276414911830406268258506905622876867011022339758739482572431294369018606982191680621862986530894985337450559397233237395896522611149057662683166532855811801087364339957661374476094417179729709418246128622821894344771232472302428081460316713901804042011723445214752986502385659614397904241818247209183489174932638383542105347566891434810762690571159839572360085101051835825855029991751938015352471850722694613115874891491348299555010517422508838733102879289782315591724564750540938728978067504955588020675910258524903256050157660194866035403325451470519677947025461878516846462583945769715582787159941343512446436907305648463314952011053476504265886964421425388248116391826988170960946727345273997360156330785603914066909531581456702347669052754393276471892489273064460738323635664328643239959752372967567173182874128546515227925541338611670001304340850323113037641926260771326592491695782857821423118734950276465681183094767638531163606261104367771988301052392871179968744474802714336248338920827114153529424803881390757388474727574091508847308182593510103137764089743955131878789624767360298276892087744729746387206365169520139113146135109155447296978341456271267500496991611702367306199264546828304180326645372601112764773586956651184355940207192298637771506125035510337719820618842213757694301363688584615244765386891916313681307457636324557580886210448614028336045394535049378675852484993852304855305415344980683136078786753872464277904843741178540691156745167221189081183402826970521921503389018603993094127850146986320134219595468114997128866401806978948024464469595957546474238660188048520404222137026315627576676017069592440352991891330424782266069576903951250238845482106523334418414451577883043819096577679466138432158435017389542637958613825355380913004677359862180784373415657671099681212435158145536343592895808696661796480384071748606114191157962286694550591138189206511629285136686792694660861174381445698025086060316993464634495664024805739970103853555146979611142672045471409501555532798714104289870244297765393753824141011113958996925319803698267501450132140963254707200996553112019108524050215275039141347991811535381668093008159400405138908120492216964392315079170449634616373105295465052202421407231586402043762805249773036628183665058188583953814437784681779784359134264988439559014014650550448526065437638762771316698391893594266982476197325896572412782374129890840034771035608803754720833182566630462278064692183192923306611904128834495036950511897284475464225533839939545710237959436513731792201937521984055230350702246903053605017566877529995008595478307508182037865108778031704096597175702463263301548550394661177777307265830414926025026277623996811835580394409901177177756751826281614324884987985761392002304404248001625209186762763872317754532315684288245939880335008286317777072068957976654056887535316171068929996728914546602986495062238678963475812644072531464832666215747639310628560271931680896396019751809692123487957844946026249457063853701454951084122952814257994964242148125799829691940094387105347099779277481575781157440649005874904323048380350513977459411217532039072015203083433503882961283538971489534686132742547973776731777882276447053863225300077492793006854718579899778947342103443063582883286530950619747331575967571153389751982139781650339302361713528059569391995879933098545183462326533034731031599429284624537953707498521293905387500959991422884023519118688442434065410926968787922013723072951450844014496744514973587474560949427354831541043340398272870458442353533126730247838134436397293370806421202020644881311373216917996405066451933013818037942861998072094579008692919994923562400842860256162038640896454782776912716085672440844654871293983995964480121137946796579425962242674180580453218693285672214082999933688349995447336218508317389712122928023494380067660591505758288729004650072147230364691083695991577377667777417180018549775651754573811120281640451187531332553283005755142919983946183377574097875496204872346391163286229198455321485272965700904483319980090788788275145386632504833149812540919422000427866432300806336272744606582231661496027231519792880423257301254036484809857295432543170428935746466657680832167941215722403615748176112892082628730957946483378877178324666658937471851805781207829295980345941426780645721003838652366152209841668012435546759833718628410448064200504940195348376188525437268490357676633357229727091943828690666006434389382331683963227047616240267507994559515427100927518707924314369130412956650067119380967347433285643377736772166559053317138141639744114068117627879907754251630527462199778841233945929330689736852003692912372471488201323736797182489161546481578936185049175771725201107626955462664962554460365469183948968462638579994753198647314506738274040846899846425421936686759105316747316855405351634814239058630562768415192884445300765854055862790235435195291898125119105366845864624643221306449986604901986165269665709144367079978567283710860109957783399397051866029725616654531028934209603263220616984534594800784135228957396570629499113981918749737342894588229362738050193875921360165744919048057153881586156468197149842055015837449877413463312329718984346434414477820509873038899642850068990682038780179203026339696928836229187203388858537036038817425780311403814755022455392453320238108279532747539656374180810785188750275147928024820405810709421536832634416909479609828200822532428059286964958493313211249617606402860476633750246733680532025258732785996175839696257740666987813967475108685223895600080642725859660670668151007548572292182540636326845575023126630071546382601378000186212415798394239295061165936148265802140956052321097208152623819487419670644649113419027822893866092980732296909434963487749744606181977365252303864613378970543442353731730114876495451122831087685017131782025347359063684625122668525492606624448203347514144813863663055147600951193538820753592393895238209961855668863262213182826896761002443545526809255755628426970483656987355050031121094409423553302530268594404962696542329211358499258297400627777003240505783792256136282338709815722211347315748325899913666716032683019379846185544864430941671377137439730546144076981418589602053093739118971950379429966983726487587058300673811143381275939168076820189084506767551750963094456924730242223172707825008076701086645893520341527116729538156680915072813942499812388599914631643561258811805228832910716817361446557524791337736604403932430950568726385375608326041557570977457693524747623113491378384441586752953262457071857707488431067677295890256043541561988109404965742473867898152433442415887090991889997567835119663694817776090277848756233045798827889660083094922304471073310841641974817455057761645694182027059127616952263450749215891189702164752105783408924445013229445799703690907598021117316270539633094069213578938845469772381226942751865258615886726724644083937220162386870234146770252628609649398463203610126981714880531621027971890050164407392565024578885590267210170038087798553161533827466059977428275176873175042436229464345580420807398036872597478817393699188456577595856557525731446904951815294686840387508180848310315887405430301704021861774949819888861301137616433428369875209164655370875802132573090029118145202692071618643975317378606019184653725315097976238145413335994011542239856136249502780404581496647852383526608326036699297826091375926035642026867806670128310839236443878872522162130287971098174142492808268513686200059886999517563864643076448766216437132175869897622394760819343445745233065360763501140231679551245529903543918675718177277133178621336252581168301123120417542993294614079526418123137198237340170651030341637562432453133607517739839938639130734754827693537970960216401910714958450346672293155634410537929487790272507807168001654313154654525390550930553584423187152890059983138182730552180866636858126724053073228799391385866005899034778418373428532949192833215642784062423099865430300803314524778679754644016332039329570265220570850263397112936563376786464310909888169868648337771812364984165436041460556359404678101510484019483489987678912893501106836006291550873817208502394947701927759752663090537887605523920524254076779675251281713084164460534746809673366904007141052881876331023521168590265795249907766581476982940296381716379502964343658438411051677948015194003758623460203346116799894362278173590355538663861204738929290562461351178663272745287295141959840924762690612989275764638558076651401808267495378966696546047206570907639451365405024952086227681184949392911432601378169522117360805994047267820747400885088890170535975251714351333190666155826710487895293126233429380001950594958410283614721778650493367857026091739502624164429183896285237776893254584420440615675847898024877693123988574444249883852939460127495991836230409623665213427612233206022664089937357496787778912589596065747341522174247388022006284113955937637954567322740663392313485499373806551518395528828883886502850061510554254190584075396808543539052257980402951378811893643533534131631277642244858195222971889864580387301946316059863333996099399021930031060094734451435226298750389074652270304835331772953644382442982624123727699731680131598777889656206808005699538625556890221744719543972608578026235959270415030070566486130536274729080837073946955665036888576032541560024046459592194443776344950235708459081286818825261819587481458305695307302639219925100115672468280026800697164330247720055407005352518970999030889786879833079639399625137812392394454143302697616047440250845562784017660632526142427188634607794281464792002609725091831881023094803085986761079639234738139758369313625618360224430209099955908187794526206057215898699339235622338526953210404089923922016089996216124331915177699484397319057375773706481558125054644504674962655024496167375843311655909044621007169050460607755781240501228794854261074657610290323920480944374516901017280037562233346049483502977420031487811512240212636994463000002640140470041006193391086656112978993106984026285832182646058896703806216526574692049548463016970764454762356770501057908365225508745363334096068702862249629565562686264092186121589612386964643089825582369508774467891884425545130427213851916898446115840348955146989754992210718059163381561047401558301763215699894286000608956842135316569161278755471992542901214543936516258123418195150384948274088257752823396461226347486093853206988658503645877213674986655069179368164851296491814793467562299572034246328862734868852093448820419795614270867667772537209310407327688738515792464320032368670490315833314146028750674092667190550181778357499412357693132245007157157486757392232471204782511836534817888327146874477445765160487589182874816528663447630436221043832584346763102707142706542582304219806176802128479555062760995160619425017208926540674340081448708857242384845053124816908373704161784448562515887159232750106984473696284970284822804240293473053825181278479943360430617275051648646608238822319559721588903030048718837097460123708202149035995986963472184295086737492649755069912168455426854297390907379976868627219648464672309047490852543827035259727189743494385045018057242984347264957401917052292989049194030286700794445849499424395674536890014624592867985284971433488421527246892130586973560284044286703003250597612004675906670624119341020499906209849106628117256558232263291496948993215925348333729548145761099218041071476996030354681847030400085561164265826377601092700286633472114198239420117629836200308794938379530797014086148269964313839355212810797685018418789485895531055274229327263657668043901677754342894261327294715392860874894480794479270204570677561979340737749939767940517013639206385612778728207413451692900898083803235205140622800297066403748516586342171185334979117376268532071239223071848287364783996738146445681567768211307235131951830163642337117112021845179595644830717489788757307838290564114713900451135768753856957464137385983914257886586233909611652334624707883780874483711919053636446551209070601576228658321177847244043851121412529665165444348251840834106583366903533487095366376313366514689325636023394835084459692333356467738728625742548679865274640571649202144812500729531181062710863894805671017228631325016168693810985221092350651562170521288997441025425694390644395687110134249870628643645221791346552776642071250276068368141182375683738692333859760089412617611565008554946727415317065117968106931270977029447330460216599076043028054970195357006877802995594705429631068356535363440561774826846089310690246119952894751382033045190968720950281570373483894540393261513815093840977632063433416583487081476835055891223283383783875831885395252681555531961982419988292759654402856278454796523875523774863653333789837374909237199818888574648651827378074464993457815384855454460384911377193480510537520665792021324273311137916330195472844144656819249183033988284757921364565808274589559850254527424114413563853333542709133896574906467336095141368438027529721202312879961785282989625794320066084306702552178327064671788804904543027443911485664228003562882314681758648056189647515125616835212245240806380930350728704367020785645142475900196026422112813465918448683730892752754445321820651554151648148976881134995950098470674245139426005222342339082105410975590878551953512377540788480259047631551763141932999062023969736343881778030474488871713241332443658155815568813227278520823551757951119941541908870304502183500654920445247901280443446985998657775178256135394353755069112302760921025778448079196219630752136370368343595783254484497159715776053196424828494677292924694171100996546024073132028549737677257341480507412425316429179046858108254179645538530927014480644849901949033932618759582678093811588187000421618932718310447679157446857338572567931392632270487585503095467279691356161920797423706523439661421995880885231551318185528526568605509568008631991417530344127287658641303992244973180498428312190030969381223075139336698984530427412816175699203053904402910661067896625996482731007460585814076456331312372526526830950806400669727553963568230598440983099981197060247109899863459834375092205132216518937092339584045262951474560895545654095844004851993535971414262896253820417669833791530124940775410946885793765364526727866523088462410533734179554568326656123692128605413366386633539429853812985573631077752485238951876821203345883838929190970867586375910624747189323326477676663288208634442899435170103496294975111440672044998268832963789310393370570457881180549092836210837386565830196573763583867524877876120926430989228463892785609884541165379477610683274200756613367624822785157268869159266643753831137938258320887871601372759926604078576346657724134521697857540667121446973449135806388085062952421786360881532553401929503327448336387683247691554765586313156380147216042859223729735653043446099975552619134986581715952733008728796024274261087676091356737825941755482819400282313134705567537204991280492599606241410548277951750564144834487525593534148145884975172857924119192144175539173361222302700782324702427535248278372809802948586384210634236096730684132305866156595949707126271735943319005060241624079973361762663794125932519050264707462237187370651865832397357737581802621545786126853174105121321104127998867144729286968527653131049956801165306485604309999180573367653221756610232003096920671364077468760763722659662120867491330115111282002136576062153665876156334872174316922174728166200106635893307586743986463223959428451020163481120745613833976146643226608195871961350776232383546138814976462701995838068689341147301754580547216055317281326544796461828862380098155085616740827377728371383272576115351797844811059539462872369508925919348841624817740792756637551917418080375369383504079906498893577508883994531973662395127505910752696320291706487342288088553156258463118825616929082177195182967672676102986203356506628940960064309813814523959674961239945682429305690486510033781184343071500814469532323995062773140663520160369275233286555260840041158700500789482605342579879033643780999380896603905526615329834953707718593254402307779416343820780120800616182977486615893374202623145831226247218511475116371716058635663956781965713109295789871137419665583382717491546025723579006594690499550055382829686880792912154917731894068274720449247754673701187413801306458929006490891672883578806094591953225828368445760501669052336806417765620093984969402595312390625680062997560689427619100096407383131692704711963373826442206533234562439647066901166281929979013965188692702421049309388612958970363125760384127406614463901757858147495243840504348847265358671890025375167835091300449028130010018139959319191246329148388319459607906661871808823515885252604448659851916284067431983910215051588621503160492561167018522759461916007423245926784854770692888759908059453640042505751754611426077819406266379731198812729221975173077863983448647435653777788734829653016703194157444132551873106295693556258738553917777419937411376364274069558916724556051402752531434548553049298275013388351200394975314476131795119882063539374940225442769894511330652302212716531177019306416993935306306275430650919108443131994905205576857721643744451591867612231892581700362730889753056095160137901856343270773170077108123223647221812738513521198258384627806001411133934626704482889127837423063080633025991312871590293764891244981851864940114069276040812033565704368382588701137874433704675764042980387794670946708811802625994237512275477750720405506181676869493275837698070847350322017937068173604001562335762449929940262122662159234297887437689738757015326282969137840489163368544741673388387140929153448862528021756884422543580001694678897537033659480519292250975866221925179669308695458474463832780979091535395211065945456167622525668228078603197308274305592052972786103980715911469484921395895142405725670660887925621565804553906512833110963750693908759032599553632102870639489277477499448375723982919414086185056175858379591078141486371342554058363879024869940931299496414461826272994707110586323782361466063891560176120849188847382423593823477488246433479144072483204133301562172566317040410326182985380954988304652371982922077894509416983335874992826956268622660462307133672745621740307991397843404932750721187676950328511271282535503120474226441532491995441781419890759367788027871864482497419029635669606458312694894689146056145599223194574170580827952621830249436307399517277384697262852065042124693883518703975228700658548701507465864046855242249792466306855773305544053180943939261630898327207453253499450594204623252925317079909619782464653904718381299423988782230169495569636033173014543968953962136945550114923515798577300101386197827197385356557900950672139047924364026230599817211118402655353765163726310856569503073228512071726386130113990118659815508542718799054933977117515475492426646832467845221132729590884139784305276760898497396401600735311902189581865697187790209518422130598614661626861342829060854339437875923216386778583408739738599708669727245521212686696125368811358868833254385293540926228282789945923613382301940387134376014081283602748267986325557820214856703843005898156747641787539811535453521443721115780064178079710387145799868183739287429231080504453224962924463563272178883469851906124677791840982202997639701492190451409880932796198052007132179380200144075322144959115956179178680586688008178522331765895117751942252170494380751872844566572247787445071527145795700817257732408978771908659428663762023468937491966988089471006343611005632468293626468988663635509377969482382614998693630064288072176582730558148741450046220293570395740572261468820034405927045222700996493909614374947007143429891144491560320354952570921486412543371241299406531959323881921589172548392412162024362714058540591031847898564395031605771948413641499308182287382948389670469521263043899114301029094383555595391329326721573283424813961132693388798496741870095178332456234959391223968291952677187883073256080627730545855162235816433503349165540316279024055701034069244664326626646753898104573741499316517976004274503910966444340224372118780071218637061458792992790249733669620862809777788339368055591224462071037148434821796454466721928810859299011760935932656174731292675722050813758293058891776757248022035429736521440438629606247202090478139849933765580896933541557829581232193457813844913505079172755568930853111084433721747250188271133209826927944132409405617543073009251190827538860255927511145680006190016774400114531412085129773703150472079720319331970016965306125238570337754795412007661538495454250570697094387669637590628203930219332651310349731829178698048930705418859222496293183352385629820803559173230244532951245786116148570704048878159745603427398591325878753503181181122220613801765872531332272809918264769685668719314079510442152686096626725457528737368125073417026791503198258616952069729474311003239892200578483901347564779557285903618796223815548707041544013130931485103666441529340624435901994661642889791865508182173947387142441286819944194210836047626175807861960666164141313510859815730194012279465733001691660312703355668536192376646230327752442238096295636099506979628234510877197497695952732502602962108759899154998056702358583591780386952578279840221406719225562340249915381081356638475422968541967373035012163292760435593465585989797756666904997166799981152672658230336201944872128769450180813040165129805400250590387358342239714640768968520339014052222712859656434861679553592601157500969226962508585852505964432222203858590345231654000566490654769421566950217364083523764358585627931721644382696132210873267766029082302264124372047404380726587596624790681745092597564997077623238737542276373745083041676340637677543081037998935864797500851565505068829108448979895990589691287138324481181407908863243067055779362395909809526880234892028783217637009927892705096551941883947239800998368871737033948706829665083450572363703454302305913013396732982647484516005590276554316452423124209286077353341500610557321291863023220062462904552033870199937348629061037088128819917251755540354011651202230142240292129684528679021581858853576208488057690191428651231227247429042905711717711564101254927991704909019653282324555631522398195407814316036326542930959542394434248033856671697651340658016843477712077544775476070606466114594640338838536586754250526114065010773846199710144297743246392733010363051125642567769638262764169972684639806732105337883721775901710667479698014049962398949473583943625480288387653749875402945884375678281381549049258511742582611270688788711057989388485625245934734270034861071341312769066180107122725398848447539049605068467369667299542565921572493289101314550239138036968170313395976588214550946846507969244859895109511765566810246965959814169731441046775300152331346447731234935512373746048779677006272762567891805375211536881756085580442876928078348422265854171583422839035070379279453194258237255891062062648202238864662574292948785965450618258141941862312349698454156171964251123282331834957025402223752273404370194296290385123270874577222473275524802609528565156247796074652292338179922357217281976674301591500697650436092752550990675134230422554797753798872844809265489550720101363197112190128545623168897644334696336936596198037347528321804142181431915833903637329384145275827106172400114225232663616265457146288305133534799324148308061123954905571146065441232870029490793394874748130076288234132681230302487348125246237389086083603359761347041476037515617198527042289246708039544564322054354655002581672809755889329176662851390538193700500426796622293756852016320722428296975180114082159179666167912094631353937102739867102200951673670800202498653935514447506197915266182235797454106069403970846497509829827678768958955431904965639248449304966173083171833691173742277679753528937465893021210293301274522628719099916000015794434347372596415891044514863194774294009652945619332475030650549807955776898108710942017863541126015534147878719580911110231084365364251961970846015525951416350954490488253805450390990996728041773474203274406165988933086923387633116434228949180009100476626179001286584491080303043910603957200208292127428483313484266617878012041592271307633647384382687069248486453465641379607900453848888963586105665807868461150405626226826137557898578021596138059955027587034243178292438028872037724815682745331825301306732767521892722808196513503467861616924959615705096309027639382927122870646425199445509114787823654825941906644355343396356297554910322092146497988030929842772125787034586232014675331400844576699736975310355608590737713049462208968839298238499733822293453123044864089359497633243271698608457291906764187311228901318933567756097423303824190834124684550185414805516191594907551533034422121510829962587500412860624793278608502457611141322055614243360877286232861248434596126464880962555118595354110389886648166286915116453875027132822626903110910128075351969934111462647246740977769181674034790118011055854513664603212273687801637043416898786535550827065296379074632876769613599788162215584497594044894114337541643937311277810248444876425046843423321846561181365586007668019599699418523318189279072731811556906726417220777125472838292807549736062242102714795541427979854798071750244704573047148136167096724927871554503950532246214183719994679266027888068991447968241625023131113547897368673012255981475979906853712253534901617417410100161139958378280235448099769621743677030450515837066082648038905957504008489763763407357340748625002557447575932713840602302138642495803428059301711991315788375629925184681247265141810657926839333165404662168746289719926774048112760677653317259463578601474204673172976284797742846891556550516365327648645012392501673958343841795871600668313575472253083265542430728916268583214285006853872684181384053124663038583736836512592599411774087374496059234651782926171717249285745717436212080609976259649472766102007539535934742260680917175275534801425423133776120141036532802113183352424557157144114444949009399393165170514535382745524751636991423800598962199057523286681161363709827351755315877973859354033832176735768363636731309641960516957102731768483296132082598870891465297996147534991204380423010426342634853591973271435866040716301509818242250415817781585398797362212770888816352780958232165860003481145884546234799370792430616596175335350872492457900860556662069317853286774968086708594554523018157059357131180047286162400439122342707183027472628559350978497929080667767888578589984925079522087949877994598409231610226546851031429038127078941904838075142270478290882968341442222465630879091865932111390675723968554665269469680781492699414530750761167809279995791492711199309195196581556187433904026070031015610996010827213273523801813830021310941270598438106536335526492653302065812337447217982197967036272038894450110218488186980712853283928510027527463471729264236241758675058332398416668476403180136871898952522481421880585334386826404849794675688494330257070458421697183771460480116067917726011295901605542766188913025475021004364094387309891388715105418089828140834535407362269424322846851125234431936835775739450733314395731692292985162019044430593038722203683583262991246951154141713583096759658852663189337631708143802780927859651852176236722166899140708658002967952059901701559675054074116812592825673376385484684574610248464140121129353889071952838759152490130310350653305078937940623560842906116231327193153907565995294531332761844983925887723137839695672419470215111355261497359463336244839714268335896862779208062186886650420911844024116733462442343684673648023855918281970568327430032105337014482185072982677721569842545537165354275605853732590248762816113292445323799912373609815782411557198098547073334599383408192284491438900536680326977537470092658855403094203849102391161355361791226882452707042572324291554189809842505604459721336071616624428764320499135928789071544472181102247377948331249104913105694274889185379497004452569427584461182216288292331766423409138073470293692724475441806697896459370183275463800810647891823966201766485489372522141077859353741438573742216272406453734494840883863973321388720478553678148416839606989417438731660178267080222003651895988868710763507356107977608409519666016614001660501108440174483315360354047226415594192164419220765846691511900622488150519255437068147296734606404654344889294738092356934630019856103678233658185940873655707078383407889832006393083721572350991776577093567889882119545319719151186755401725222054100155275360936299518266125273380519755695987857061278619268642814028830473692399419146569534840907767282678185880242203376333308391215757959688822963399400288079089421493485729198390995137711946954573059589196874840364043256836854073306095413590002362584504418287324039438915394074016155169214690335011679577916768242140934711955147965091198366176840504550762101937670740872413136956203904312982599423774863820897256748319489151438983432158892889198727368067112735182246790439068293801460566386212143523636425086685301653507123010469707181663075607574006679051324637050036025873525927556775877909714971933121083101655209009104684370701802307407680356381248745043173849275174481977299833039173856961847551578114164480560974475986885528670110146845295918498281899820690865729001107798588517296886053936375079279089546455809689364041458686678845625442392282856057283749004014050468732418005527605323920440430318316181242902621049168534234699308063492465243682195379092435315458106806667411604193331867594113273614198259299051175071434109923571768945530359000402264704223943196730772720527626931721144469674520177287107411800826974910511396820155445577791302984281685096433164058085894396388938727385417612201602169303707401418795760757192167376750818439372180560255696494631013665958393689470722240543088526737184661241896546420336713825416839085924842251525799678696503299381457967699636555319793286974203595370780208062183946140035403120243151851362526494771447397055241935615129255393097985083572252519449617835926405378508023480327292181539139352808925228400765625878500080535330568651999860195483225092157451730278211267457236718039734935049841271420589404720642577006254330615931865711154740856716329542120288576533607658776212235732683457887982051138980431153182163360300171202329186694475839403922113262284476119569041405931027671532549119747446458521883723313878821274406543173286044375998439304826247391332860436715579492174563047151116621673477601163641887860391154079160343935337344525850090657085021998667760099784386865397688997207714227198025926115744618834873096435024196396532134831680768806953530733637829304535427386890409765318628156954077755639982943078769634373773590232963290659908640659770578168609881936491302364567945463970906400356240491047540984732345788371986836742669478669488034328596346148178151583129060071390455503842537160207449347446526937859293687820969467836413122800464230350213507166170569442581218619063864273427616253981781286105187609714863713505615612084816792601664574463453299901127697208472592862458587527513402896778335245783840476199863818124835617689120335362424543107751185915612451271537813563156088707768189137609650648551553096038718636497684029138506040489596137229243749034779624173632147482764106204065426986200327244771065234386079983294647129766251146369568136709012065534200678422826721619899891733579891199155260356504030775167525907579323040544057024397759112623913763650762128378320768646527656911273991814084213853765577434144449968993351914053074728916286137294332521816486869479484066373804887414909344614395029179678859862265582996114066984842352075596644785210674952799642626040290231494557929132901410277651038930543718347503768946387326073741461903308079056228148137450059431038085497730313460223357738154538320565602152876352469290948231802407739368806049840499022902822143152721309877179431479148361636834636788562175622913127254996188248841256791312346403057037187143325394414884487431852388231932349275804895332585790141489123391380031731843427937336918869759628232285812447283200230967066676254735306342509645135263381270179606614918193213852670354415276462044884262400337685888052781001232684603800194073678724734956148760799536741395928171063003562080781888940423257628254926298839072009136809213327904394539843239370240721938582379165351640817881759833761895600777181262736489825988121801467392639504427761938217578540657925370863679360753110512901177605147165945653612814448174518924729724316520259394189739206564191476310336134503456236240472447043255490832499282467351520923747585357661981142596071718364564146053701161159555060968278054195577272323966344928614780390443381836888107707022597602706438248226202048569829139647898817566283826999743290761910699692680998732742882075095684342142377230776995849685647425359299193531590063591057616669192131899487128319318823370838233587991395034158933621141623993694923391893159673935272754220298120631548579118216171106335100823163096550858560198464793072472821196221021462678190474799118610087618523631549461814149792489367741615291679742966691076574555406813942100040768204710830071503632883821036260111744044736107833072353598663524044513231006545952702848165105567211479351982499132799159068913509593634398247637176241909091669566501767122272474492317404668277595448916389963470921991514300396238038369729500306767538731261068774949990793773706283395814919469321416316501881747519033314266563129369411659780876972784112340062799814471103747113900392339696619229086418685223032361144943716555258104227031126219359850380256245851975889416165680710481273162480448934836938084539975605416418618555344055786168394790705905644481784571555840015460803583235053382229654446221172178432387930344134943008547348583936994140325494470188627571764912923109228780900787133199784554334172233601213784200453443173709087679492078553240686173459032826933275156388266221450280702239082647045468234037958998059696826290003653729081146571918815497733272686035529016901126698241195071097093214259640907602662465417658310192247107557263827904299676780345748874051180557987573452968441864109786513931292918627943561600394617902007805407133662674395906533097825605762033933333483072351380662460438429526820180070608558949663018279105087147807771284868463545614509535243479403576257045152919458141634887029182364758945506507332066383644870565546708245962308608965269581631879884966089284563112955325336609438705069713309481253515461679549928087816244044592848969843979079769091905052842669628218219090896533198745512513061044843371361892109105128596123428612548984996620558453219743123944696090278534950154183858751612784414540276251474534672932064131416351576480790080096157961285721412045993406156811226733054117646551218111060394997908697726821635954204106227426458739090138628380746316830915964321975142702779965905600709246097508644759504519925407754183597749616975075500799763036671917105739314387907166123004165887340922101125594529599724200001998877562469693289820524183298088000049878193351491588128227751361757819019935213033087875645124669298789825482957202773302406771530496612655497122814153564437266176985239325690606416150664221665898657269743623528110548735437181915940544292718672346967307215575814113788983553635491903740283930781370040844999629711896161815818069472129223640075058163603687936578222558937570089392349552732683601886513718391406850281529928962954145653434032632825116873939264109642788493771333852108238318744710127947909082895931393233470242060616968412391033677993933363432859917972072955576157284042820132621488011028964368336134397017010723642248733643299754106843997808635875936541947829363913133432587702078727515472386388617858164566173196894148121622118670418700046599326240734127700778932981936817746999048535774922013041273068208357003798340931098090410420168953146974000070229518732127666637002796844787283847418994770747530854542984692404792276027244232525217778268581289510635415204654953613655788975952232115970189850045149725309715645537485520346814021059232172647951985851108991603704431365838767167373366553564628075118475786307192618509938611560049910965576366694845440909801115303909154212128058391237374236050174085991779470423395295053720910801468908878233074365063265024036293981571084016331938795826911915878895336984574347073378402213245171904954000711408354285685186517340791995548644115515196694274289745408215119669224447312948592064663275322929957464520977172901152568477679558466170640644279829412706217179485949077907034284184696517800425955173473704885810668981800968776395627233200148416599256718892492688189239000168996841917519377163209975094566113605036294540533258932842327538068738735554749226167019245803394865967585761852722641196162968048523881688904706415875066407669401636191965977462270137986949133348318305855028829844953303640850984472545919735917882390118999033396683291119611515111107006420182037997723767601923583771798465480251372772755459501203613315129383043096265424807587069847614205872652730312743185972718731875436534496717580611798153730091706703485733836898053921904469816600654646710166612529054393665880803556871460913560000946691740102579454091405881803512055218945542345567017671577599059891841508269928370603381546778046732598150539047524004722451531337289257274765284925278771581222983216863665852883923991208171210757116635164641127789832906638731114728451157651130381878972921582023454489175619910043239733352803506894951977550927229496604165754347590430082902944621676230580680687716844650369499597585448036055311834087281359498759539013873273039643357597901041194175926262428949338614611707579762395629373946486357332188460363638185797791709612280046117239348844770696460698199200037359875131423560956849268370625744890201184105173075404824140073258160726690161187725358665070773920876963544312732247176857097638115812181243160847377662996365202731468527115830582845159758239636241066528015848759941200877443879825032050825718930626488833668133120882485941670315570944139501735751036462401356203045876305373586337419128129865562261847693744714318735489999524890142633700047837365804139391979909014757648049277685819288170089410352820652274230498671029118516796815107766706514060054452725620633627873754589505066170841735264267985795163882871378428048523778420994182831744642304453271756731595101319723359697843605390203132465728848724031849758989552705109238350136656889514648532753858860367332699706620485077708015321955029448954288499998286481067740746113343764978302702413368638962108683678821639706884527517952212897162891447494005352029780838311122166660627791045195742455173270388771942513750344835263831634170377610108916283793408033802152198114272643065467082452609778876922677441200805433866791300050927977203632900076784896505201498609922652250710642030289036734821020081465598935670791082676355204778839152796939892447451577170720642674261558294872613263670030216277660417751929578148703460140305321770839144983015811406742974710482413729252360045062387091886503792481473394904166204743894459357737388941805846441838328847756346861220671604616403902570781138039117179392928521738013870292741136367016565034918913751739933728755437462121242159525073439726998530070103277439943304362023623084838577121245527229186153262717530985202523867428964913260899237345442249652748499600534687473504086756235006283314481546091348105122040435804070922974298592951860615766686696331930160551701825895267739308817542563837929832276999069707715951718847886192347031765402211253258143515286142976831906929949348325022083310682527113716092239300165870772417999026506925200484704796273971096043604298702963329179554474980947280716052777300496803614846635172096542294008208022449836792302735576872141558951984802042334687080199642732835568526240507304815627176517174761971290768347521503723208733594745872109406062696032496557079146918167839899033530644396556250784114130968700805371502525950028114523913443021513473028473570470590244511226612317652295613350418440597773121193993839495900009317967899985858328430155102936536261066214228068675711186305410158976226170263048092377512902406476352853488320658906075735913456160159615168286418373564654893832517886363832458850388785819943129132138027257781343291896500746005950374363487804059380206630700055265983922743628992837266634359923613022442066189623166962912609729962259862940821884453304202451663317711055277899626209209295240582996054281768687222540373620455417791544216684032791383256014047873366802152217110537957132065133195021830567393466803067274419924795890801446361298336062852719867082356442625027070138749184553930645550256019452262815112620158577052403719196882603477551941562879030090762538446092309574706288485831688549503351180123239197907200903871686844420023489453796032092612180478674897319620764585087552356999636457540832359027875315154908506596286233168360445792318437551189731250045562539318405192480105548914494191078037240313704838898097756764801048338631921921433374923970583574591211357158378968587342665857520067549482408538223311157335620043851596953153699047794256411420750313290535803736147654236204023531138737149218464019725145900835200541169194698831518130042357082567087948849212989545734605037249284905372988274946764007863354926483809653683312875138378647224593405881772528064257344672323756712686400059628702668550114980691307806062045433038058885288199895798426380082215466629136639612014277903615430114893377832423811978478079137950316882036385672885547204201819286796956838578930667231978544937527414324443456976224534090330372431931758500446683084199050133650840304727664524048850612624504577255479749455239693893344758534925003166761972475341015865099869493625449597293692994831346812143937683146441972798798428928329997562632722585732024809646934484645934274435258449754711701352008105723493912128260816304309779300363528740156102637555250970472785777367211782270332057019378953374112912407503921569332894447805549690361443625764727711512312857315732458279977588127637189600493269815069638415199558409573439510282771816242776648518459995859018464721875867089535981949072225780834325224354836813924391665281088256336944924704426307143729742208970729048613891186183651227846462869763528068061084733674508517139754183193186132765903529465886818349523567571628742686140814109930037383186558567407190284316605726832770841066405061097722803580714843994572033845279781172434222886103162414735035415106800138597165765203593384479128485086773610193900677067589883115560001367123036026242130225946313080249364250281484084414968027823869802272338838487607885557412219467011007237628318007715869553008819544192572219573159441120757065906213601017282428824352318972167567346411211549184137379307267112938287520352069394324987811879825503346079253610389451213293824156911201254538895036834184001377358532420747469064089143548731477044093364333215433220586731991158021152033020947595797263745989042140536396134707384990202546602140682474720302667520966631789998079246302774509723615684836409990679186380347920600352302144836782857958384298971523921072909850717469785624194079671885339281981083745619915401839595762619200665095919061034788842854472748800334593680611196348185542909887572223444533757121914440599147430613609995240274871369352918480965570371880681429651977027425706082757506170777219661156360947988529526480639050276597749592000479190896384802573787171706852790773679511252748860392391575690183503500821910377384357923172186004228536166071906756095963875774098053457108600662026292584550220813521699976149031263210920369337554296932139329061973655791062386951511860236389633273524122001146503295494506089508997556333653727202678412563602631050251599969535311880235089393117556648904643443689276957338021647694657441107911493710356975718513736687893085685695152431064874084621995045287648116036173163350776818125037054910569068337651219574278837400920844735870887171728318635405376175721739672636017574635810254690107950184448751654069844853002029340239988517303302577856034474932085105556293258759711366582041105004596268530436816945898369124502065604301195349162151880538514351569046043467266032598641848908528487681985284932018487921930328409202572087146673997242343056520826139284722074981165994450845249018395252283156338098234339387585042647668968282857458879413844029400866559305963733096801227589331243305555454779515409279704194087359450714964421391584722099223370607394182997487688529111840118461166216661934770941286366724404249412189557219676114075120723260289350989082840125312208594866778869529692876121311146472446493094846634862174750948787982854076926787037464062668394107960223750647026096368305807739516445102295171722837749228460216172910333091082197490413858638359940827574433133022935514179545847790110587965584297505978143267578657083895920232057679107609334653444587936361566782507279992689009354050852684473768987748365370194546999825867114328487036083641385596675849301781745025904963881818709926433460504988367680880267916719364877082762290382310616323216288739521192070273834216439081816864064390733035810499684024891292514969114779670410895384072446248363452401289388610103857337346113223143156497219967211519839579178782444683241252651123197676700359363602532755878621575908459697400486687957489852331274856516370334829495068609941641216231961323655598593541192435149998738667053398341117369338545884000310648958072026392206227300223584460082876972919223499313418105805739165907099245704160268731519066627048830194629166295634275509051751440506641577570079559434008404572042119563193681816233916489505453503227514768544664336016366679062029662522847914203898071187004145254789103802228017528982049829184945797320598472973517614267295989618616247425191143591105895003948658318056808218254840782298621340794963149183928850499913020828730572417873890402226916583552177144899605296977375311652011176263887702859707940101479829017709026289014527717505089206937806417446479490158973558287537279431134009707318585596126592409301229919546830386125097798556537514749008536996296794250324784470948100191740936951377863689575888924994922806691993807088107540829922967813848056809526574106995467071170594201304824542896568230076371688496729820739598374546052539483362265712533026885663894017665164031527597893430912915957360268031729543866207602301675729294152391044003375058114154381510410565808927143895683493659654457186963403824926861646721646802424213643998268122904831351241684981264391784276550172991514812381366410022520041323058113288875774450611354621705383985599815501455815351023074514482843287422170394396133636820066334021825489859044324821516187680231472944176211535065635225221925467797356231197925297006484504702549644358991241253273846009127412441995332085025684393576789786277972369622451925410001671270690931107086893510957869517472213550076834239947437213353171271960210757488021328148824522239762995492004015193722720874984949183895395995327689510739381614756349069080213302123487899721227929184560204676294065407808539146508266912570920977546439089485922247712130251931712844905709881720793473099297594414735717249556900224192648200592403685733803170949094022436302923624291593611703250492288481726129298250638810482029725513912927253868874961353422266267395545859115596741124900244989248232253905829400511726066678026543587541177930125146328555867238366576276516397874630956738938617388954635198636477344835950174887696697588162762560864607415432726785607284000329686947317037613720435866937020973463862455206819838984537022496967860294519217312213207508223903732712493051901984358082187691558456546580282545792894542363691390463293160405592151114465044786325507236369396948717495951417202238458397538774007206974526999725711580766086859624753244401677122188291419132689061507758933252580300301219847209727448599945269833384347578985897101489164553083336101146419909430276267061471600422762823492980886101400909256635868952207492093987058025904988436896545503716122876692213194193455175331758609036069358240232683709258826251547660251878060600128962785167650357141362598072295670922628356781647190861823677803117756002539745054766027525879096028611578305308922279997447821538961599319284798212623086035412855403086274774072483352219299188355138264791581410258705069638346820891813761077713355690266342064854431547295485906729843423462306682514954770977916461103111979943571240254674423197671200736508994267942007095650398536652311123523069544771144311878124035016374677478743073663371322750933186441614930276230800857928492707672982931940235271518374195793849607223270257091288245043580127840289462664291427831850861060414905804416190000508809998404381904656415988793369035843250857744374579591099152932408330949603284437171244802845841486661999253958825346413870382915692654134479950075153619994866511790748442972990096250375404674019367128071908234114716235651639257694495054096517084582010828088505043823949462910236684067878422673472657950065852903262531492185163201968491783030385871556952702233138610723859134942896663828203075091235551808155710651707363827756129670128757588377136345682194437312921142071101101855624954043896100692691959313324575180731795348650700319034083037657995444087137964639323057946373415481887555902129663568302148527371421563789413931985679893721804335904606414294656565523147233634919547582041570354066520109180485757469851055313472474243798587755347691407119878833294246978145123521095890421185820552072636481908075728033259690615075137236230582122157982782161970879070570026469879883145930743935072275210224826176521646374580533372255812427057850991100029141598945010647465275777734077480869956959710004536896820597886242855017040007598330731267314896174719890987846590491008686537305214069375113178950363009320000188170428978525784595568363454853416184657248380448916465942005604888912741458076525864860001191670792610667535237665691853527302899117186623980941935358925846170942304879046670490756930763171459540726475908946946989102197350028759140836676644600799978229149319503036793533517662672350577959409244316267077388115879676247385116919053845970437466434996214815552798496063272303341591690650971783656945634654844235811394100361699289107803781022424506340510997685584563502744078497227695519196887761838197023826664972002073705915090083646144417871856854553065091461856113567532816271994553980367615290356627047357002175167587987263127036808335014122456041377213771315303691982445201333172424845748257791433555957454742075370609610680195053556581772677146979316421608654406026992932953051053496513497915295021751356479441480685348456726524478926699019318760923042089259472411611754855093384777317680982737145239808793700958077004298503787389456400141853275850969281874477476246764760683150826011845121235187901797502733473039886836441273628636722583677979008232503136100763962931153736481088360778824238639735588352799031236878327694607294225436505314564586437605365007165969742295795766986308919984394351196089055437844226057112216615615516861179147409479395565540434793337604519619763792757843035567141628766868351487152373689470358098554723764645487119485628987451611475131377348438627976017310665749543954275531219085854781691936306011725367030316157111529017884972519793323236561475017906132305463422415272845155257583292139343721870925169893737259334908209923726494145873390193138577979875261978055983312663413929924661702794966290513283763485019129941547112888498197745039271197686441851866563771063365953882720116936629946214272506697577847897568488344512310005786888594772517905021945270360977176640044823091853150139190163826930166516420749578577028154279638069346987390582201002514114881463763347660213646759314201877781657880041124909822670112113509881669417571423871617657433455544608757736713718849237603604663116114089105112371076154250372550568283088673036515498404644876219473997757913140179033089790853326669516187732827050163714869076678654030614854474887415862182738091845877474762200229544341434498430135616130528344956472739184240471482943345718142937124916155237951236492464758985658981147459200794337776142872725551026063480063292145918695157354031923885899139704046073982325592515904660418074582034111264194755525015943822419981958113287834587567846457755250864542865661058053819927577253442428510782778898583629452926408398046818478276210201981240001399801827540701608721016833401691850725561212209933059745427885921887669419024411023191618592077175482313379254829790282312567103536909793139751065730031316228433153627980429718916188928636991727928556136616746610377871544563230389463099055418603166235609645139186529965879095040384723330471129030151926246181246665255690390809126359513958577030228385043996858429817244751020338565999594156374216432814518511740893961168526044010790667242543752246063919690268839491210664216755937721254327034762800283988261676739695437400875560454255400205555773391314032965923552032192145856054315385560201115734899920134107173360457379489753052712581706529652015656569319411076904760760425005636894570104768289835558455253478295403210552064958870762263530050786268834229039620788398540157712034720916141950209056253654134942728142714010308057493807142674938870366732564802341511910058878394809439888919505900385655239752268713229939164668254988106695534694434250368679488607037862183492035025635240863603212318457172098459699787080436775377034307503670119789700703071876476878106486413809607647439952542792689274200025030005161735016512563737694021908800984010745227747893795778388092266909143590631411075841861908752480176865030882559026498311668758691911599282843262181755969268440724597745500286141769981622502979685014318077768675320191720152868060861344660294654366780763094709875500524986151566999257452669895122396185195346216795013192959251028095380167462021813577219993769422146558812971904990690308461696068732444927366547976043373866420150752655895837002811222058406766799796362446188974041343514596710577699020702388962134671132148314326396208807197081589846283960639454137778085648183544237456586691845882389703364866687989615570373877726293870402374708296581425506553196207571317490016405058666381405129261650373638140159198664229106350100193759376602730759012509225144674186554222079252961941783472982776496243635084154630028173061085391890543693392410877512835013161842921641621552724500362768404425530289947465580042292633230457257523189076881144951972466737571491802686019802406558250067525578766480069976177536430377930038154082838540993016893691860017100228341995341415290667551578045935378089914461002349493371881917568533900817376533094966677375376522719344519007231967606066656398591630984637630699551513513095772717440711664075234223521567815505138221262651986069409926212774797780489521289291126439823669773296105506500644808407268011899345441756919181330127769649186531609181589951445063850789916781860389612926912134603411500049742558127660477789862397683899499993460828982457461311841302967613179388515608964818032742413884995034372697318251213015816039067583159888821036331700949381802345696006455321623533008248704025145206682410656019879152401983712277850242714540062665472681126206211844129419883219648585697640184261388583051353607212004126266661881462486729974108477821437920185009985001481452773073903333282927130178607312515881726021563917594655892683885065142780219744050858507295152865046368009459504300634859028114943314193586039437086428302169461256400142876271781012411157438240014978371161763308819873646622255296601289835313581806430631083976227434089810429527537631407664190140571858361806548672660838568651226201543969627429401159009605470352869659979817349816892360526122099018667958942243859259339127908501040346627673683057805238935985458888377083450722836997892435679248004834409222528902857798967441753399469190965030624810428032750380946779744741722784121168209161938022433391347918538590987573832780970057507371141572011982712300766264786764795097243308472119409168276707454354723869301345310697057494913357823434678536786584796776216705416167802357134879573270939351255152754842125585557523061242412543997568375279117743557421555772531589150321203416543908808233584111641917604317324033216591401512396837358868323063693158545073361497121555075614849036759678299304961826731232530999620313090475049025062829016571166198268294997256177474079474857028498585032982416841358651405495892434808890934267209882531632848242934590691705007347979811660912595005310992050212598164664456485031595162361593585609038538320774686029566610588414921338833377983554584800829733030768321582654469781194778690984419245148289196695342958388478264599443010439648808207460254380382717621336048625692563650857026436817606799611045002125694297043974065537917124587955909597960207726866759830942633018512394891469992270009676439929597120285792838314166844282084509283563162562968754980335766632214390108569149636859088654524177883527335530869969665409098105822078441061911149927480303528765167302339559980008680330792538988011346454229123277932989580651328207336918365394098116551604845940495147362282675644459890391611555512557865753867485959634748089200464675005575046867414478947742237664788108089164659110272399107226871575974353853287392292064264323847720882615443613773852240729363843234518353198770488489871268243615083644439966240201036129642036872942699983623749119499892459414073326721159509030976412995501205772444380514973797990781404131836780078535982887214265124775294493637132800383991287980482289603795708634628746825910899649736333387357429888111212992034960326526843110011043606535727474349922716453395440506767728375639625302988234518261327881384740892569675576905984708608293001477804479502963355077316654995474431838342779589763932265883624497292155083627602028899577203600756368774044463576681312535539404021449892451846457655352167038105931724346731866872254606125179088722987325522462092677283706788411538296714373886524757325257413406082751668866710273815071037332363241042552870417776385444489015869869079551962509308212751009687621378289304318337790091503954399016031664073563794906866831253260423156270632214432882498219655670709223056701174234174004056964204751794640579635243033019964451428357021429921212306418099808593316803581634412380103234187783836664790106168168164740160477362390756950557088634767095421937793617731338135343845287695791571560771258967316972169227267058720014596407772416171402055282767386017113894444175873209940569494746555579972715536972978666094912936953204191796117590218095460537670791773370593429485635505179305949875531173830779834406904811935629463238519505596991731199876412813322791928044673560384022168071224887061389232249322462254152808342005549488570698427822563081010618097595076501633677165507780067631713320015931816050098832549570975213896972986455423917885858842290648022917442203258265084816287930492706990286274673842267415723095676082419142154568763843380295562412242101352207622730986045823613374343990118203145400758511773789121757397713166492811689003212339505438016292180217939911631194779868270147272616170803204133052152269579417219547613394920513577911047635601404062300640069972088729864762705776218726665220106164852407436352273443022270427125458731602648432776071298160754266399068028746272901045994459821482325896787007137517884035161394006437984841248028392207817243228197624335976569154021429552630368271960779528851418238010696277499344365692507838585574905553077878130812789327785738568513311003078093817284989062924194635492460201382700617539371042395325183141164425342942980687311141809347649915655582187054918319512019646429874775879980515911480182585235981695698301336603594868266348427729652553267425583938902597342186481562968184240237639340998812125593992901978521352679480097103286025924015761105344542911297249755350509852546982006823035642737143674392532196888708595770487388794834570574068652991757764903544225983733535912863515287733072403782986925467009321602652732387830529839747539243211626182446515339894103904346951165131655555920277072724028724419311553041868036510706687641407486181885401245536786128994472732464536642526904183451502573100161681454065937824071140935398434785765459641992636336943722834999992911407791234610006872665852788466605219169132951324103516301279748162503370301423554716526892517645285520176966577754292014252934458622328068140446371520621636953149220702633917639436199334451271365687933160045697512548540093089265664467990813011755253571518393577247969072300059650553107978205864535142001670969982418856052330302160118253990036009601555697555506757883050365960499034566483884263115003295603728514676019272883072661376445311570004960544662209247855969658543618469440997437509759817744281381763225304353604227543677846446743626537161570937015547514957617214388567217223832069137459669821720762635470299497044165596567698876456894051682670878219713117633479607618775902369773928153262336022127950711424492583568066367782743280262103630926540110387323448456356522566884209339704301084132734623027637309472294208861485117629312152101486280290078404108281437343134857100029409421488416709992645642319829596697668918985460119573342456440997309138157829862052725142307498898466911557702196663733147546075746398313552873061609685102605022160211984793458334340460832120569745873519711513169984008602578535687289130103472727013417323096499225583076437308109635818236727417053069018963688245028001498908191361908053146061634097409669678111657198103729949640464140477022644803024889040140603382834255756417830765285259543524895759336794734611951603275265831655997955838089469116643512166190082064075953702726744670245558451360934951047011538498992839259649300144872640910658171014936345420231260800948560185766177909904942803305723134430387264127821377611381142070802352444926564066626861876306667321431485537552380822030903486768905611938196318788197568459822834958310600388869963554428213588845510268213793834307210404127643720729596456703664199303703395954367946539092693118642144511441546682706835692627377272486523026460094480198911860413217979198975831780474225348192396707592228867360269302228863249758364522039675130120722635260510499165818687025686382213861815422155130646609160742942155352193522745304667820319422149691424329986679063286374236568373462448964758209710930558107964120686836527658221218636405808040453971000422461702988765495451997140084286193667638005872960393931723288049840173718067145902341374266995681546673675290375790824564551152259224222170826274034599406558528466497025856533362235604316400389412030614536709924927422113750361176248306254619136931369679713613273475599196601303480099572326065564257095008484912702665758950132396500477332955578565037968742677192068256285164563828526428319083194318845465722417145964119017056161040221482591645855913790118298577768927213302960179541762671519499617256634782008390200088200134815731680574574392739933343433083251679920352252024026657683040096112684895324007173907949622571274392545096296398840249795410615575556519372617780048608761481804371528893672778619339492218873232111611660628632435003493332489805142690987065329749247390221466987190895645614012733257900895687101130272353039900540713953376375865923628451842200730630465882088856944521954432528011676640355256628331884713510529906527188169269194377538469136562476510693616334731946522788586711597704541777256313206163178555457397633162900656441485524328719873354054886952072407305749586394676818732239299619893380321055674705461939869531958460772784023558749575708439140761676904157459118960230254427864971039800756693764518179382559783330627700899037973943376189642340822782187952434039373459621623494428659613847303375824276271805727240762731764853080781775395876897698996437820981363838375185885644624318439618513406376716129463130886473949420745779160645597997268584459090748154728559201123953794176822669668699637082197354949313371599763820542843206024646402399364882750357998213986113812326313228721358611787392526617026381789474904187277962111316104083107097822275931742355110413569636357599476242916163401620750542088549444121728963000122195187075364399888191784446094617731047299058126838080214004284707417989219378929910598600855643805594143055732619000925896018001595797699133266905808452136846125558106081214327344507685125022866997773993933371640102080830660358151877047756882281377354148633531682867042240441202326273681527816243156145155963444947267351960168519281660607304355653558830276960952097610049765545020980625753074855370425976813060427579906817376192268796441388837273541697529795217505886888445880148335354104110562637822187661812496001095802428215301615735524070643129689526912302491265807072896199148460592340141415058658957343947579344374197479705537699891008726293889449464942824128853694396446043375405457743416190308321875376337098830516622591935129518224536423124119505294623373781862625372162892845313010822902091435189965050927261208830754635798834428177408922956078325706585649349855111318085913539457602789417454302081665132831336335217545577315141036140853602905714602280282022435198187569711913794484055755934954144740226923869463074248726472657853310355374185108620427711580617624108416612762429115162536231643228719641502987244127223929945161899428916809201072364484314213504784346832099399043135817457112999906490854122186733954620786814838269823558356782750580338601192359268141838315108564118643549935503262739656642997605520381309368249064478623739230123396662410329835420562710920957912129061856703985854980382708629181473830116115554481815417436960074962639348951151814037050926852253516766867756226578423439843751031647489084812048681346174607587502094728601446418875269355854655856474062291443328141603047929743099523691494563117656991422246475448510849459887460323680636178742130466934652012297864927392675388919541214578360354106952027698264456867216551414427362334076996866189270085795502130958369870301720379782880263547615249376704816421519280927970025817598811403455043195456367955340638710582002004825846337051292841384017801043460372989563268573848399361682263994661800536572863951928561573467417399436667812803789761813538749160638704980357097475678711293476794930322040909122628993948148256755819981622442503828218895624660695842296105814018560244780489506403552734017398209587301621128948981853010753293837475000816512359143557023253709889778612711815622481999385856711131718093418586943746372180083508916722517619470785970490122107568931670228602046772312674691490692244255523244449414152777833770887748963445367808229544652163369883331809439605620239935990119506961171637697335846406136977539224976886402755721009595754157498804068273065785188979914146130772704683130565153811340011478424898082311548454095172080988691016070095221980034007295800164741696029227503474440530084553382949608776263929093318644752639024208047498227115893752489549426232552511293387734950417864287137771140645891079046610398776727940218280222103439532313943753122618903951409662652948527877070144274687570406305065149546536736555841058864543999660781286152736668409226116526056841007036816507445673655257421193482516891235465762319088198941639002291972733463302196529071023656039119639294163652173503349881338974450027189659723721005391445320221839769081589508191381273534007443095536287389480507771231891424618785479107613683417208159174584109186765395591482451161662006533793883372449299990197641937667828940050846357458104823062076415926725567535235755387691214074503380574589422029607046103074775585039946263121330433668520339757746212855157861686260670939800632553051237829597172875331446684304475469840967100273339808857249220458667238534374151571740188899367317835024402504972683066968496275099050385801489197090996753377566304811416850761158082095817383081138961073293475753321229856862428760257262228890296964217750574456891977887412857556219256256846610004148591902074080980427609460218117022421877462655557767417390794211677651807301116043027786044247204668603623277220823992889163647359469160018962519686950429925025055479187158082607870505727762471619875361596143317405307762242535166672630015556902774377745284155265903071202889995444447723835638655278282963456736995562673400018184295828312091858757277566322562204189290785147651228747946077895322706282350379478191130044137284448253652721027528973432627259661962793095199769248117950318217177886589239767110650546191779659731386046678506013767135987112443336032796992059713717979660602262041670245394945318490046206979723846254190405161464660033512331002910638468079183755490263555699929434234234818583939737336514129196999483354779773181770186602746678746301508161572933677768495005414225861054426724508282706453843347597611453196770520254903753492662995503685769975504763075348481801113960826901680735268935626605679556721497743688767173360326430067071203812403983985304480541757508137543025926942162845956978839080425639244565794437547193100797887295091672820125015120649711443239126344863686253659097687787509386704596000008334112983712860867909998356141946600944082943765783286727154396614456972447945861500076650386682284691234379499007587949784137843368397665008222561772015040036196523403842904819821901222767624247773885025448522228498507377882301856490029071092805127753057915063842028829791005597891471531225332934312354119248737823782353220709122441577539439309004803206129270413219517904923395574467000221441069156794264204174817113622561917337217983495133373419077729004499437635295106743948165699004599232512470766750512700825236987120886401509327574107052416495303925167736754086149895712903869916141624064850777130660902998865969804930135887441762918075259822016166117564753798232555357801551596258819889374919506906724436409217670127490159805590264971539724801947547161765705526744461225299247473975809636519457496106938142721060927165578091280778436858683172887855937017138078648779734534869684190717611473655442158072326407083088842011902747633269443132923789810358572151392911281781864805030212097389772053758910518148169258611086264787410197006570074117957470781147976582453692622327068159313569835086391806883450856705828679589964813760641814757074774084275910016693214666398444068620619289710081466145051902616563647867578366583761940317578676977867016089284624413503454383018025129803712763649888417921849256862989932127217620137344853932799859003035537058671507034148590586546503117653785615012729950873189692590861846195356797982856591800642086244067268218520718571661111780856693596730480905949036440474349431261213393744178806749518751477180002398164972685366212630989123901974661709646728331254721629120200964289130794693131320937412985229204719127905938786875698686855236692531104771937751825632087858863980381461745122059257308415186427125617417102432369216777994619941180005501303859927202503740337836474409979542253049436410890109341647494984778408375289427425874430894436253297049523270219046718514777423664278676865201578309289478203615845432720729228698890969552426473197596414200020605783692204091549190395764739197071047301142071299148640034903923383006733416991999892403054845799032148323377456033844011549519375517988227977160255356976817245406827138852829957471560622605565220884644838974523306927602217871114934841317223275729304646139716341325789253902050199650398551651557660820264305051149261069283000467895543237611236070936277279022736845617289627190952770105555457041979708557678063079268850024801527004964738680724049018113282004527825293793552131697449807525730393630835804435594244091819803988023325266555963257884163569212693854799965982034783013083215685810230601640548514497495572204207031227386365411519984183801028702729297401986318629244546042876123599073815908382646467009175575817578433152723342497154084134990174254265130611661060763141893555254600180030205149132710580042206965634204898062489034601275527788020631213783141544463959509887706129577588132848547197450256767878018353829699966578438662478281060813571652856452162943819257460996883005846151122240671710148303364279388959022573187182232433938519613254608102942772097015441512042437722146847404454993220556076475047178005059196660504816222843808289906167393678959511941131346758447273955652656550400612541474885661706801211977800796541253725646474534943781857324791666001744643850191660927536803536173099229117207541207154646847863647077308452757850805192964593566138506099313682410458680023881687093161281136545663396204558683900841464245205161542890015684287103401971906899815747050388495819630745094696773775621849636487396074606312944150661529308225858274786140665952911994977942688291406536657848529011797729815585033306532549896738843763318163375533710337965450198896559994195714052310806735248420364281722009533539851544502813467806846806620883234618446126063840041263326826053432112194843290495430507552028933804439238286230713073144644271693929617353418903609003065791733542884612760859621052596669060308248616134499864455300925759254697750802656851049409716256704085369303871652441626863946878276469340415563551068386336040223667114811049828788637488208389027326546574905431200609360831383470199051007670701687505457818464374477858501712303795214291507297217264480761106341036394402143395333271536325681011971749799506145171669405531880543526761849674462536157379288651032404011507763460066266234137705911823809209279182709603664734755785886264897630387894416511579803465556053896619421280418876985609972775228901783772199330794758155237928614909815654244460306111907260808715386198751070130816150312946374869050537365121805366368061994338220903800174758774386480136637759978082977373489153124510802231618302298604493620871830631458219162538127533426480848989393146765538035401203585731000644921182272876364036675829635733792523323814346834315260470054221722316032729018317175321372772162151728193718191127274857868573419136851070130269775679842219748957053013122336720961362609627191560390362289700349947419751948657485015285208343532032193063077185341940143444645824394405285337408613394536488285899429154470249742967786508158912788177818184386730967358201036369693644634480270798673378224577594320019451224851351425094097442743636451745715236134530288251862450747745949159944257878150485882433474804417729331898284479794204763333008376245725738025175827863736001916258286824236935539194084901684414604152074207959233334009820430703276712250714539941206699501162825077104221863511324453147286251024450331146684695646676978367439948423478205728138140860005032196842843696539302514046490656267274445736502100987519167928334880400473336308166385533683976485215079612773243421351549113675167292478352756072721786015071905555983173625475996884752450409062332173230537284949840526643250535451666547507928428436191132344458438396881419910696419876261016387444473591891256996681889689517395067405799815368871436154100111159799758863641013779882870770052563019470591361905143607587150531545052509326030617401703574334996433837221999824483879165741601182191574743159949999567647854604550929896472020682293981091258562534110652300649773105296107581627786466747065165391609199075337133717138258438878983754306128748181877790537833203806881230494673541225371809281471344920068212467674874154981916823077706868842867906281969896882637845844098004478353870463900344036261720702629480130085248140140246067842640594276767246502624659003612604633106358337730358236484426131322277626205828588614213886383945123584609990689191939417842972354342617642537662406953516495578606557076278151134764516442974061430901813088734226313945107738863471078888575544403157960293987770951013292455945493771009499027277434164535343920181406030137762538467295083160174531781321848745686233656607442433160671165373757675377606476513539316504464121772411558120392370259160717270008336244644334010623484150949215271335346463540840075396234579824886729931500747226378381511104687750448617480579668283802016346586960022673094193323904764871128479111875662315998151694797222713120082861736817125026958149901711633055679480576821193560730988287300274912819719326977033677009086945433834143415313200578078025644327017977699292176567817576970101035969606058504615003639537206624490207883518795561272264230245663037080671970712731726438863739558887491760110227929756524341524568404859608326026722264994081139844804606562002236341894055808214965512530556719910915918967087860717816627860977165260731791995542634009558875799977795898711096719642780833826537183749361077703107757187073762209195014160789631823933474199538046233519363360801407382385490665711332042733401250046616058533222944375964783713617538353719691578225555893938723032895662268063130741449361801129335918446979429064754283570954019760203771386072556505568204035418836561210231359408995720340852358360208298747542753525987578521905802390416536835597941508880219490440823948787480014416338965432084411193733158751832871862720533832275671911187186597838793755583382580014195433638804957384659282461222073529647248244851238099290096709376044816244451644969126393612599264026969343629582132794800114243908542003938659588654082007093648346282686432795098122771461014466933689877230280309756782931815838497951602160288136473359398993283170573744928397354219317319388528612520203407460545003178184935014247912726863699933880142543382385132959398616365817993659154225226772363142758987440966497173755018086796113379823328703994188194755838342964639389366412534992498167368402356690928308979376354325866092538630254922345472476987571160787560588252829009154177826119345037175334809037240224759983956628482069231761591808666224840189165927569622922582648122443617431978702246033402663101245106171627616077027775056194563631685957416166169994888702730897740881838031491352507336118386079897162005378254743150214609111465632191958129679661540863006016255480738637805126800974308583577187017188065213623549427367353665896436970430501387603478483545244404437406976724573288449626818394946185307965650184592961831382766488806636902598777691123623545987441735296386994726799038189589038558539476038470620315627143850926415460649253945076411291591736853541121668155915747082063641745321744277893259041769863924320836345463898905354425144749163363573675649177484443018169834342736225918570194929627865995225604915854330727244741509211455568597475171765706278971491680009624021998840262262614584018221406378764367362503690745985241922949199631035873283352697646810312405004336525820438498574455363898685882501831382937214632382996558470628001043612314680083436404290921089144965504101389160215213864318706041878526703014011275849001491193241016553682381109439609389361760649519345554162488775986862600792815896382840375945710157210494444026950328637530766133039857726678952173377690105283284300440048740970640245154371695057094290776628626612777421881914535072020636408283073326740101413030545709949675139459755613455143775220095204117888611959154521654457127626238669821469481662158448467469141221834419581889519249660586123046357563799874512814999705301755073701795603865126250446802747436300849455501136455652570377428777243713905571557873534164661024310104981134828352130105577951268009844649535207382627747604990755802071833035314568117583906645113577413331103248292841021583016362778457318004020910992727953177812962834008330732285856260715021945691730828105236687971486358359019510435508075908112753025765881265042127652910761562028987786139772088080556631872724648954462236151786099918509427046101700610733153751517501541650196376123807769510135022620819100769593154491670095303404641255494853728943036731049517353962103982156078529128526091031739004954286834738618500371382454744544429860564880938203804032678722672157754902779211247176667656022063344502652436115358063801187415557018133336553497665107333410195337367308959530145311529347960560432780245476326098195997615327756117776886510861012483223609440124445210707594393726936728306508364889293319078458605950170764591477768805771981144720985968121793672730258069696373568507537076880560463186768847859251214806581007591571038510121453304376856810380293251397920870980716659186303511968304542951005797405626441341316404787327453764625560170407432760534357322198857762774336065897284168255230625595169279954443667738436762977955720010640701623942502165357010959307008624737772157100383308665668912936949407796605466453885274253914520935735904679360379014434177961452996107103610553391526266916902541220074946661063710063819850094401418282021147712153302413964323011748889455710594297573961189736411071845669576681175787239407885979953793943596532277797474126579250761306838671650408922114479832536234245362081997859252215052300358315508076229680744887551350443078924951174023516102983558606406036482509159537742615801654909640525228640271527754043886128626057136230605760209922147423128427533795097226067469156789029824727879244243752904453558295709280383516718686840266557304963343217199038254466442073157886906009197099732650336255464160784740375445077727677122089224770672753299831415380333176405893034329971780610492421559248308520711278927514025364355673740656018435376293055169657601982453804672778977159720929240964854998174797395958296094559922481261441942181031619817464481249667473474386731811660434161615000665937720616824642743748821907363393802938853610992236135543029128069431764339103367226481345551019601867299974249349590836053755852324217687278070063576931119725046675402468412879522175944574474532292455634148930973658641634486516127659031851130061977046565749974829281809432442758030804091373754044915541542145744879338185921918356648328395213256014825201038319556702480322213352307513119502624183955905070341431218710896474695835729520683213923877464708164772198278998873171688504384001517457146145427705424746209631662746079417440644349212916155923903728562105249586712067295299656026518708941304578882725548172224219847004019360020241068373901826822839956954574816893153523615803638539813506806747756670632129416372893012161637861995932428599049736446743408473028629360564042142682641663207363925797515672700661305718630731223615744101608116690848241444494755164329655379697407796054554703373840063989721413559497369177994731010280073370362026307463575560582626345200112507502797431144635239271327834428697800142054611699388564012447441841457231562352599733454931445676041152636174041124871273494301104344750186531081163483053331497909331395459813880083537127532306577388872146850067401175708947051928079180212943021368733978686039901437250727778946048266793530690764064817560981043574627934145916993320989180823824029118963469448541442565551789576972419504564186864639021138696170458650140267705359069467131809477542065782567020759570077331538332708383688567822610311570594304244501582905536492714860859407815214600473462038121655693147616723117718434250870983553456737664226687030853286757203653275892132491576157356684268093958462194727963441555135645751173926059704890371286309681625409713085034996032514104026713374647915059901478663344303754249301603875611187105551087547406510652206306557502354342194380562605224276036854095835874791769488531504589562395297999151366781952453358892837070404268977570628945442808592128098685671223532162668120807894878772414854680715678151141239097611245203048239086374766655269661782024285795176861315283853518046840587117341294065778177925519096096554132264820864422816959153617051516743101577037532336054257401348063298216999610831081467761500847700610596920130113972134298572209777441815768199925425281773695026639846550241783221927107963314784550735068491516572351379242691523718621625062189921100898724894671266074568775098401470839878261012023621462436416152766352844357739775004479505064369896917252544880679506300699249588369543347466946308191402097254667482931567814711044471825953326545122916045022251530137231236930371467156113011165787675568412486222656264318878070535537358703245613070435629988727707543114220388434060214043439777230919903899044171389953010271175658251714719949781498876767664321586171774303314634714952351095301918932909976396411672980054252944623951033066002138493937001216666946795060273632070332465500403871212960039595686868041142441751306236234876379273821136413781112842867948357961272674849531186777698736010768367931125815561713057860169598643155612269241082787741727805041944163648994765889580594932439714570424909385953202922828079798889347674893817122519763554147196577196894854577726344624768567884134231101536957915264791326064388316940596099687876270493440541884628444608483716660023441372483339894028806002873935567640966345905540303998068538083958287783532594509334774352209245127644714318637674135323408679759814139306489104391049445308004733599895506387866399950187814118405378732483210154382063816354138888208151827262822247252003440846949190737689386890320501110533112668337784510907747412827078935799598025568215354941243632120848815790113394483000865217631531011746351578747338506078740457710376907094480338265998518651245726169033166846028533534598157286312484209152743192473124254433001391814875941693069753462813566377063102684627313474963704437530157162164925709689358273222002179184535751901426724100312897210864684048055248990733678030333745725674622739824741617091678290746661962541115220633768481189256624390331118426325175414418788488007445103450505417348211948742697403200338546279864555451878708584874448089797964004765190433477111723440633646355076107974479300330524871727230295652541841317509779460812958680115355831610746161371715338379865829278842051603718066121644939648778730647698778791171405544447433524575817255405151844964361665289086245027152347370538251188018270530562334768818299275759624135599467202895348286257070694448771722880816423314700127725033061485885801935594619682004034469388563443118459115419814961312897748627405451315918433514112897989810804762086014344500821482775356922371342532130189913556637787325517423566029877791348072105403073726964001198682525312091487584934689205760504759823584697120039059034756159344704558500550008334047498645654554200116233101717989856922358973970579158477201856175312158801130843427175668494498468015624234724192057211994562698235514667223912410372966061824769484446511714354011151400803590920892588942848529750495840993591625658329113033443087144324118632120353212861177021445424753134586347107822965214777452684238242616560201031234777884592723664954865908141149174147269311051368544097889808805973814274366744666697664862210695808735661087335293578689481782847221646912226086613616755215749775977621383741242819365176666040285017955548228820654879927756599759406816226936126843627360857607945653110643488713069324146724272627244831995207948386376710472510916155507387939601640723187469792073808866876644175172493030925358920809870955308718659041886721099980644767181076291126230442145618570367759232629103085071475878986746992225323654080883273553758239913798920519996240540843609116605337008375939127945532198746900415176815759848055745131984178913514375875857459107749648343070972608842553093511228850236893647684840281468068969492569250659699164622464984876888214261548850755214592707037109324802350445960929500919414342947706985822491600409793124135894935589068750421204420511701579363138162047175594361212272389518312870871817220160839037350697766044449601434072189856914104606237244607183044612496473153358864692702686153335674694295909921496901863649169498887716283961345887955711383408473457356136627152846074434110814105217678215852026356612540751189480201187446069112725045125721775741451962492614362425784526106118601237425854001974200594633190482462820488782992385664915731749911729054894836664415287989898418620159605811130826603461624038136052660940001356792837639184481121871814653626932114547220620147613914254370033179498933172757202648171462125973701281499606682883402810096649579065355366725352273475417594059452273496384091727755097473305768958354383374365498724217539997557215383760548477122462502346949058665807469392205626969934063961762333119751515532638459281833600925824866941501342503626077058777589240966063803632332296263502044168869120425171929483986409015682861561652764632139044583812104508397613930296183371802921418272605035930875134236921545348122645110137823745032157189116154591945529580802327111597581087151873338031038936952857056722766095921907176738522032238322761216629539158610146565215804451709424122823736657591333342387878585871007125879454913345964968989545508528308246018424170900840295387817120712241761452014193022585401338670995667948962417344476451490782345394935043681049981075629412350217475533212639984526274396963285624284343890420580042778814883176005440757024257073016347164873588068109973026392875132570695107467230551335585096550163531944051612902538333677549293481321007399549852396462519288503127700454349603980412937026411916600504317116978294834103356400525899811764445153511089123565359291986096402215936569142312575976359705909174918282579974957663942326448247005750733598340831279125940648011811669418679837108989285847312267806588792111859508252250890557312193151126281770979228943179673540857975360199451597564886419422591881268820270698949694923896020381104617008517972872683226357197062400912752557712279196021982841088596033152545483100828887486721134593518150558373945236523185430597980867853994888008297022776346324156392966632026010935064702400320788290850307243888173806080190976496584319267503532794600352588097566204633199709813690473411527351276219845201666439015540205508545696567837234129642646556606524330706605387237221927743268683044365582398533348175259369751845482692050736655036071428771122959804712756624009811293986330278788345479276819728397016760598256715945569294115848571992124585850767834659464777877057549279751959026729562734440591559987714044377770822518867710214802045832391331984332038597202533753828097867568825741994776543621048230006723379213915622131748153381911154315326798110326706169314080057311660670414291270075017172360707173846593176309025224459674464520705100380036523814004348063802731345854456715078989960495386069483930929469443928502654429622506645848164819768353551539778168180622345970903651669913698657521188538507071302123446119276618610353866221641198432137687239375374230929917954649244288350584194628633412386105029437488515253621969030773064681918747755334269641020543164476208413924556633477203628501427467044831085790941101618779694098077925137144180613269489690774784100823968220082876318205815092740829022554805633033081952058847896554454690813086268841120787760759573618917816378998420666978557412715637411002824196949597127565213684290146531300419173935319065276272787576511483829370165555535458896518154589948883855799991257560276128433148065240406169144681093515494749085020303135416735293952653564261083201511755626011278825160372198003191170399688354648687620926263885060478850097175526745673343608278510764370530114092278156208910716752829097289067102873216229628691967536868561956494118521022901653857783413931612683977052865154346359426030380412706865866727284224068390093593509212069696793272863131019887369198516582539192649013587978491846814828726993613814198017883299287349849959953810897416284557283249143547494257717953987888186554489162995148931609987343124208125258632717796621950346335409751174062385896032739590747400798435457530798420513446539800450512277525805210753539176912232186943100383402491875763365306639311106370388740882711243560275205114731634116286893715460540148570609756313586125288479613689203550840685840189376435576193195910274036599395269182417748235337504911717764370903314747949510059448261740584135945039338842584505969671469967264374291426425476643963712360057686377662595813246857458709179711743437014762063431830840077084702416774448665364317862141975764476998871893598582684709075489636641932663166720053724345653530459123232077113392438838272345275908679443716547856061711119198097326473927760412246038216904150789724196749484125903390903603779781355852991148546102765299683496233627585383182435019467476117877839954210726820807106287819127401921689646571644856942479577165461783148084506792019520627727880052559415278501944497143699425565344824807367585926988388888704187864053795651398263309236329189483808255126270629928051136351919819701358146233988880551639971056391891576825325736220439412475697381596858793931016847054495949901320234570735563082911540203413686667720929310428526215896669983728604227262201002662257841190815091304695847189249984988475026481759922535109416154369256338201842752526205199750648314265370231314363006828962607982031942609089339043739286641357475329790948236679367305667581803427591306851878101730623211355797311009620555815790331375182770020085218853508235242661779027468767211887029923512468561425570178998621659577829227837862529387329738821675326840237483224388405556274434398979670475729915159134644272259657203793325655230175925604296475896523068408317151582115118085923542401560250612021914345546321964489355799933547885776817605292453632451497847442997447867281530363442014667766729998856979828652091698438709094522236269242120379943854281516431287902963145250940039337871712567174948514261640441156866479530849442425584627535347237508304791193290011061671763657588815441457554324475978029771824698216753859637485235794725120748104521260460334990221583443900590561534853340813194668630983356421722258749660770721461517222084265400150494626660104313962966529139399148850370981179071367992486676684740133396913200317112403666852694340767529351850329844763505703048439625556362878111507949029424164579694256966534127691242959301556087653083472555644440231713582150341808551715408083408773431284596472269703683944626516547611892083500357052205487604269750855479375574699594501471992614576156252391662050827685282438359608935170639398567582090788981383880402028908483219472263085643363458946032074476468851967370982491224312331586956327578015858704932015416944074546930880587683190662788645228287998797315977527666674433536380735143201787458893316628034640469061480535954439788505383919137422269173407240428659465878951733060927598054523033540052086985828151365661555068170509930752578053966008836095997923895359932177057627476210240469131847939979833697182139603644871815639233687715301157827075325430811275512409871071623958987969042062555305891138698772663254713949203206914340231285227043137448929057014198963535082216248771579330347089826188180177102498869654695443415080795770120498285033097838700478918792155009987610902611681311144338571839909150777916175721037150958696407742982733165885961244609242769469363201870333972980323635371694312686939989890807496985409987559637001152727247840100290364218185360143827318431584484204852146778795972710953544050156730029574013855064204813643140034014784330836253490801040880763763612446922952095025685644692685199967878122525826742328511698757042735306740127193094592796628898201923999497797677478873869081105145194524460972446905047672602983914436854745150022656341093221677296979471164293134477697310395112916679175034719929774837182122383404436012732440659475093524787373296471610283791105461259725095627883590252352869660123512019501863527690488079574214680271968973292437175295990000219951038004745030762985307275652242881070483140483900209670951575007452048635397161712514875822084376076637068430432512935904324528178459843577599779233932797024086062834106845834017863085484235690666260426437976113946587390429311344495258107921704800048299938409445917101120426788646493184110448414892666615776353281646693646392795588532191678559768479621305741347850997226691295096329136623449370864679657777583484029804326021394018490690421525427228109069691089024877614434925760547716821391620117014570589224337282875181658015615554109549238736529234541855347255526803316282210624478048629924553500042367044966004939616659102422084090424516127037242135076663743554997748005618538267289555643268267137695984821000537340029240172166449119961821685277222577278843125429296928159593169108244878312694665743728886365679407476532205278404793510486618454297710240146723676710575455281113063340463552718750785903052754117864264923787897162654145509579018254299203862357491042443364754322537827253800726537094396133042351163719265900687045129978542146293275648748591027442445064281136556604712703849188850802136573771079511651409341552558012810231432539937344689466744779004596565058200391752880011821812436713999414431195300060535541044251558001153584958576374894616193370142896252843712720741961165030284527146947393337335088014966692454482712476735207108067941383393663581907888906099800496042225303037485213757611310332272068318437923117341618572885863527527476944312044539054829693151699974565264278581734345150680608821069855877843288703593559912441846750729833438397140459607375478757486704146262393685214865310573061485407715712117091961066909317066698528805698232939698137369233302742774942351385076408153872106373221020031574351812140860682126472319388184036853205928522995664331616142740640476396170607533681637516596658031405706314812552571193049881771714932409214009043766223533916394054846677750634260900200749769498853869517014047801013606491464331593337198495588470778001980705813695861961054774546440624611406893967960069370053590287377723670909590369638944631046748748361187678544644078833084687737974187203742483038237865378564521784083617228236339886680203113852602841565564522552249931939689192291859811049141780470360129473324621836869682105236282721089682460735684831788692365389921141427897173262776544179261641348584398127670645795777067042296652541735071795590402310628665678915413789650145438449090002838233090850262353636063517177014861080128185872775490439965559830510388465511175836327718750828607498020091108176271261027436366022736654128699965705453324920222986943536957526699501719739875377151618083597268281775222950660040504000917842482906883278981796384203701010602781490130578366633322120585317861567519536529228141123793502061055735042394963881490647539571616590922570240126537704272565661708779607971295710644870608396590184144986402593743830729887459492758469611242467985172786636297200418991799379229169882868946169484839409974769473064844507263070976740993220092522402039083562174896698356482080710655097492391633964864093299428875603846435855360602770527491478071474827492811117411592426918007179109763488306791723978323365538775338359941015648296841868963871785194732289023086862439674620187939886097148990080689890167664083861831991750755361367640000668476325468949777410725647730741668424089355663446110659765758507723621232157184082082040671889624243055642719513744070509488509044466810214071889915164579612382594020011906782282483638822032063899940697961892037672479716564411690698855436365913536375176387594781469587151373820409918806117673126927259461210555232658482653332913476691717626645981344531313832795653953668178138698733528539655470248546421330032587754828226105623238065226738807610090990075735193070805479703231265351431010190167651672356027379768911987808223983722627375079887584554912503270012965597813399553919436613837947128673037410239705574315796296012816366660475438233802601506498991533324849503362422483225566097018801953200980139436875316825722944410257552314079501107651697224839644176293248951569844103136458947799480676696236900874525146882739058824548906305453237961795073095211689447033049784214540361091621427922408049109116519360645305832386914256193519876483495059873898564067000228346507057255116047469970455943585725431524518508535654782039595899065787397555285512106947919097415434699561211094941054831722740725997421681990474804684703211829980464168976500975662429152244362049095512829483923325618272422160023320101808256620291510945213024078600966571931422596939264285718916886120312512058342298479044159897807426783123270516424960624391142436303433125007748179132906731295104459863496328514421763823215793103542154542612594470980946917162806022057544019571422535646516714080006413321708261016678331210896540895707670557438045357285154553111305686505630126028128195982618204182503187088513215889494189564369075755945304248179129427958153708953142198943922418250019383553258314648870751296917395704861129363804153955930876552548699609350575459499944822238238682054777263761944845022085787718736853224287325619290383030847485871421939114655765328442536544848316656703611386760927241510019964588160951714547747408734728046484477457729504844021626847740030665687712458013941857095760175104395312130208519588606398423117484397434916268448119794405347309127925039907116527531384874576922490149990528199693990255196201992717540760776265492103098280423747558462321194736956384188866818084076062475307651436176958411911744677652072973515416247818619313807579959339820652450991194302529205243681330287675686813236434041412691776906067550057660971694009867331292580111243965904700859090001452480762146916947108515744980431404747941574030559291103623119781924643340326879958851121940490422193142348582321948659898564387320695651337843982360469633290118412002787907471175104989216214484916637181496891226259990057485584126443368787984863341396917570700008593523671471198837472374603157498102271596832408311427594864834226645978010885982348979936388718397552037183542060194800757479864222247484398708576302354715364221288088655961752177547051156930003724518188164254607249878152577246390985251809819089025698426079559714138790615044743807437210665056419747308984681663603333555969575212477975490159288960596604093954570960790028447220953122743465841207605070420862837435732135077130144498768106075107364996411943299284240352278529117514399251257530620686631222980787308176569627261892688532077385658545817245327681642097468477300712465191886282828123758094049350951279583633703019064724639456613330116206991457667083735520110602901741086728528746998374047738480648041248260621929976333296427391260665729929013171378559752935326675655164607056093591266261382760739368588332056860979667045633116138541504987476167802449437299431282013343153049194809782350311891050513947259101970927122332877831436203884825154347611999354536133716485754107218008901913293997410503748701656832355279305714031934654747356862824374753432258230877972981825949094540385593562949623162087022695605861441765491725532837360860038952324223602361606709570045862445211607696620341250917034696554894193732750464900305894901430050958656188620768577878473907253524738516310631266863334102148227543910838097596930911990957227453754636777263271998593236689821780919657491961184369686521168576863245996887141239870253726089979263060053336640528133635330600192279068647022450822815993885047324396777377456629895203354902046276520615677937655347088701541508585661911311091434939359060844301102426366549325909503845750137524614000116732599872429370479825156755575970086868804220372630809734787533321096548445776461674509643016443210250481629725925746237001215697906399587523782832095954045154677503876975642604865558216625137671409244995298910329414483142325968561109543653172452832163717140132483123233751052769640780649337827481988270951852669848099468818864270150855122074459259748521903396856814281522767179339975074489824879691810223162578810362296960501664795806062970417837599828499833619367896541730209456336229505360569700708069987346137737215873003245035095643370603388528985343773252154091438530680898562607355729282139396402772365296564738193122525520985783039701393163483958045386305247141815392888049852913079648887463618217545895395964367921923621517613129595475694915369245244837068538309925467123553960513330655496022133674701559241987203375043278317922439839141306812351874580776163232295065681289889526757156461273229024455705071274696284827619532037693570387940814204797358845576624915633298284939946650733252460159966997547851580663261992664370030732100566347585480546129556428175197373857732343540868097094214275510443700430679641339673935404888143390340758328345056264832218365204556429955477755568509352983430877214450828992785968495839003764548898630127018282565441131846436958220372283766741864178279629040966375689683206306990125878286809653594901324060844033438629055539114561728118711514381372960673592316038793972269378298148202491126833088962287946554243193731913184163432148729890374795545725298031036669743155021384988500472761019799256849053638514612142198748409961119106393811531984312258695742946579312246286853921479257084900869029051307614509924335301217518678452549280604419408000081682973360094329832174074696970240800629759581516429135557034317350508731543093393086255911129231584466993318612428288449725278026646447299966463536735982941673077653872641752926544609811215671131119348563460297729353261815325820786460188748332403232813591005184465493065854715979587066493514977414212025635789409389710439715273404844973494000724287351055319204192620437012596631309129181363484628381119248642331422672564743707905616456426886947796409279620460159895944536279859135478007651331371154343926501112654653843745163930806461846287427318564969005349398074630107050929933563342434675096612660339562361036010157932428758890852070792660682683765846278626214988875760612273626188170518195443821218778774111725553941651870879107979808940850017873315523534734954158498759417417122433531902603851863286322506748480160324220297278475819451011474031546936140718851839155318937769698060219903622340832288632517712262777206354176638096972120517604072132915502108929069362876605239172160126835101301607965328601906928004950003189459091182949936635412143700589312835526601822864228388764443156672028198239266709473411870412300725080282493692541228043751918282016428512473643764574088575825800063882984104494452418847869667813511631851631595219600838503292295096570012254501967168002015374198887847476176384031614858849138686137481813306064934509977885314337349969879071444624525506390094421564322086434633119551484918755229328765734010936790316048335510692075031404192585661948185433752654908330990301507185546129580909358407603960650628693645508408313124940573812673901670942959908045335039892424050977298794701130924937078603382418511028274926266969463648956321779591479785624844469689346989612946574873492792872884285934584753365610684690571871740847078724386086629395039251357523399126365017683534422264164655649116911673813114628548146114861892861930783123728790647037758456292642399921950963549952299817108404014208160589385996314645012997642513232302356465309112064735970689965843349279525014656669920843516640159197741618488517153424058863771880722721187050157490601582487304934366271280993492811338000040503335865074396925667030093534202779132963310233471239118659382907021168684084397234123812105308942553633818253184225603818801402144351671714828514843098090851606081489504492536461548398418448711152452139805779169529435772139007836542933440602650290098618563625231580644621849287972234541261657504696688461693352059032651963727447991748460535187861137722384581655384216192027657348995794494709314282320854653660507885292588371758564084361734318134860593140857874602047403084714298484055068954984138531848419860941843132809066697457977910041543490846270489600869208942875282472764654717281506264479663162289768195248447195594580186881760308973962469607001209319447277231944644099653940059424503707293712381176031496569024519298626837579162431485651938182880592368576535230405389360823338828919997408137932908299345918203310659891592893669393877755154060001473443668830453048293001130361303067742116083751401697819860194125722379409999553740572923156726549264637523472289491522515913164571860935032385491283798718136407850263946171736164400812603464450137663130833667191931180035664989793005059091433026305277691104672803783154220961258362811041849316348858502504569507847748360235727494718930130586507275460665227696802231806419083290395413558885772067585118363249957378247132807929555402991565739285033986128015525783597420330817737097369392222766391570259843869410120103748542813862426869928633095248380568496256035658292846356885609781564329012446002854102195786515767797523918709151115652387632575894484786292573808167865738794772452928900315287501805700637815152438518191946987210875744763745461688645365547745726556624770698967878482970904394050153805904087209310607699426986435070088003190691724501366742778346486953868766613244961249915308245290607855783272419534154832638940832868515351471631146105469409813042093650027109190784268213067959317291891861371568351748264968009774642022392033329513184302279475868690946688097476488206241673692465631672379299180621357832778585901886923371167687527765542432622038461433270914877373804791276921455192078765852628251651548602253255686078586288935229638955092684823833558958724435519812817945440165576602957629717396013785617683122721567760177978258397173978977001591332595882812857131669264698564212375600108916551651674102804264053244436613999592369770853950407462459461680689299889763594041316335250613666932568566874975572173969302058251583349587620148698428757461282733283845312053199163333676478307994801247614353019595688024990585324848488854880231792601585430429525661828527049633057461457987268818999372593492018020614365958581486694603490424050890340051668072746301656224204047795528438034979837678126263648832628690180425009789015333989767936854166319192618671834095848040115153256531186885976032837541884532837096441089272469075032511618994975778718643525243982563464052374145367393344461601037386421534550484726249783529851765299726444505174253904691351807360928770599745574463651647324434806784074315843725705244285532872704485867573821187888894037006851740463821800390430552952493065909416890853773710160827305966892092779181091136916390770197803303300035688707702314563557907159590007326393414686057950029791822690964958242597210678512147170663198079176335586857995637074492311141289154417719072894180114282169697771267623964731963874121154942749628758250385205911497275338372581579016830597472752638420273911476338535829767872276290567477391022045660071911607973303925587289723629753076216477093183757884300108839704505315472865846734082777176004557982230578465472188922617813558419401903871765951591302281691244662829825896969478772131450995793162582939090139183493609681192828373296849945065587576573333924607313763640561807752853472781674204402920706694452402834659128799799774000096246278860766339799429642390406815096401188164028942063302381424018335827501377256919302748312964855025258591823266022844999996696272380723798398230499815762006238721525089655842177644256374226321904095760852360123260777260801261611172392206601271573848689526102085360336487035911935409491141951212466531447278739807012289700686579953865161692680860520218974684880055766711257870853679225305114614369659312242980962048388595394249618091724258307723352947855335798499919191119714203362660348335227850399229721110054633446959782368753983672804413885147095316785919070003443073414835749784872652429282019896413298439256379960876096726993919717779605344926482232578472155856645871526393150466723362460773716891675996089594705311965807088472207980818737387722827049109309702525367219820373278683348628884855259980075342702309775817379535682365602934148465804196788522692169574692774881395086039859172648209579180888839863551646217054511071820076314545156294283321645873684534003565396796003615159547438557770270361460368016288186092364035655971637779766585861105489910976184443841687850996889468146397944000733832001492220468660011561814103125810485382868314951145695003828789521493165597865454607039334444107857938787366308074685650662834027169908111403477860563716373198138811567886957425297512077231022149770911870880089817449519057945638105559094028458633359395878854781993215974862942419111677272683640749716602750048981159573716703763201167347274843030747788962199583190826950985428944147365106544633109956471787373576717735622887187994426404750800449195984296526852607658122887449181127099616406310885283612351963222556259051705692928873222111902053640899512746920957117772790726485503428470627596329044284543992481628829663489003518499610637207257009264749067831747068996222616396228977074428184348370415608866599057340272701572953484685163420856774412069567603322463774524486054254754900821481049245486619480762278649946750807477933298872987303392220955452224345172747519613946247151349560901366020473285813304955550401560440224540748941086110922692262002937711338921162897138112424326004466380880937576243030915894509371346570903004451573807661337486495417231934714201096737820231627262932739471693325523309512342765681201295825426037540172180722405353390812542518010497538191016300913473880245689601097431769341828260509028403720667832949024935072865458888144995393404973866169111085073817032966471221484071517850454262657542985725872995457849269296837717643773459817352393810266982010503007601247543001708404997530054619743581418212012370053629380548513718829924016431285925711421604130746470393755439762122240416875132785389640958467360605857830025757233516231385486311737532829152854420933357269293696451598905368704655222115052188802280088070114396772811719832932316941782460195533405226788073345712143928856899011576674099729303048424565672560144666065386574085763029358275234478491292102107813421766709776020839458596222057934715456214206026755900961505766571096287622204521919768011773408943412160647187631751560424617591211039507793409266635250161132456828706027820852052981057778294815118156526588300082306816903839605532036095135051286857259857526337615317765776240517039648082479014502412231456721907006977898569286538024284735453774364995676097955106675083173934792644672683500349228296707388219939863164562546606604090847421719751488002385802016790087923872900025093956851706729918402500405853562711366715343619528599498648274106277014716379355714193696711377124882162827240738634724412875169610688016392445690897580608408564393871004600413268975123477648660695802101805509638953497809422017377779969455388290072274639401811195025730047907116970149850560305810926096076869513744592839712372578058629796258358805739736219086847283153158299066942635636750565886322062871287839214763963885126642411737367264466720849700564584238139086358548758237720789044033150744901569420992861821283442870124841171170670548401575999155147412933971385012954983749709575080059786724534606290524230826730367654979717911055018565324741765870122079946948028343954998296087493163809022831983546115391174597009146542322467600527394681915942647016252703306597342675984104936126844503960916577813292244211782564011323038251874042310985500418990513894855744039052102291620722251007651740129320456191977578758578778337674208735806261257973259170132683834213554902886593082798108012326334137628177406301651286099317642483310422863730891002590187768166474424795613131965340525314220863608347936599196566885549603195502900668876745336782053930739518980079968253687693503847054946900045597068179286825681674895374115484338068628759342943698139861038946767254063539088307970420514029316581535165096292034858680272635236933737602228317376039920374916339560314402939272880891474203272162382506184618174819529408116542394771806994320168674219376621705473821962752934195498062970099152272154711707882941629856944015990604099412670098032773050662942638960264076965284340343635740356196203510594757865321457609663033703406441947723009448765958849854427796222621267491725500410811808134273175350522191419311622236806037342047250725215749849048717252765059450429277469773488093631408466730568063732504803434090207848481337611530017418778844840363673622416653489298224780028219304834936670468550979421936721955506440575791825428485976785230690536941379976882745794222143015696779022589635729534912359760754277136085148678878739919982951783983824628242291870726260876554178821686398329283734001261656515777372294180221811693095321404453495467672518324200962412336832803074955183683459064340782898471231114577846819560288734364944624531392779156667671775881293019384010211469887798784844617914972534255082250980004110884572462785624016129599840737472154137486531788027295335919700757460812892928698092874091451166106610277000267126476068151726708977935568948411820269917066738577393805017022574383726431165286417114540460903978987775743434936244151232131428994120572571097560742721611152195532283148573525161050168417683488524284734680607817556753956854243051716384110905335314419345240216077815420145130676172205107761606085020166286660538222646751509683643082442863104365128099258400940378454424065460839880355649674063895352035121696911708466226308483235170746670416721729692739199090312939467596581718979147850328137117315671885087316709655782880586461164450198601407255782929597663732857938559658607486066613706948213421422888242506121426694810966140236597104170462205587351536742484149925882136779120553148539855143217942214556627369091759763263483425283066790600103069984673314247466991437477463354439496184696944995816132972322785891831215040754540773001118583623069358331145162545276819895947543057003426861654718263022250641048239463008993785916577871000773497483948782804994298461186422405970731067705329724718656981316613695356263880982127712499368087695975114396076532984140854456506114421094991711583039736991965020139665609812435940677538241666398358727530141169319345848936505833366297768448589290087224940253838090453587429859661392787790738648643658840826597321262421221391767826126365556317758171762278693355240345815475944525354304949842329469976340643730385412755977319263837252975893215882326860396470437293408138926207543823283263846863351113986194143448288841653415150816234979195143408205174299390110245319978314087848809504604708574246997141078253887057981263882666110226076456172512168946457109390531490080026361245637613614329078227437564028892693240969889983109262583129934613048431730388476398385872458796527301564429661471553106464037413687017583491727375210596892535710941399653027059019467845050336669752124669213549701284249280987521066408172737698784348595506287961568931440472353238709682404297725969244878106237391527912228404787684865177234171277721056273457244943539694004199172659315302239032755950037110740045771933759305648391904317500862892621085856593612708107362331437186959671690357243931185732901034924866460195015129938548040913269360495315827575839838580226985343556779772864654253503628521874559518666205780352404400415500581927481624477908646149440221883269177263255268445202425018052086167553382470518412052403718340383560695586173111496045490109248489078542499550659028329331850426518793258947724317100847107360187069176988101229286735452615678162434403732528542794877795189198628644225442078513753590896847697902651310254117505240949186604447345995911616898739379797498830001758419868513689301691903335856343928119298610261330119379676006064457431736163382141558512795291827341620915703382094381205757928046883002998007603426642533442703912496280642266921840376783539617046434465176700071805210273387429671955981624961053257397823461968155883360596914392513920249202241976683104928143709740380062708305316625646709438604459861885330242210863030062228085848975029536835917764737140519755489521651160716618396612286851484373618077325472357625079066576563992010104696102979455184295218623471054748858928376795097331711090008401211741001558078671503781058800365265928290507106574235367983641588212777915234575363841153351735352859028550470983264499710657868793588254813491411881817601640347335645531028597649002639879121136385258484677788421325765313284385141977205323154099246484636771620187180288367011598433315037770667952636571720176043152896919081253393730285677330355816063833775837644925331665324179018445339783244134807886034239731555285558543225618490781257180903575576669444803768942816614090746273637932921044985679673247695154277872624321837733290846723097501069249222940701513526070895142072640519548089881360374564131464439191339614861706918285274343743227602671659412419860078590486516494333644640674287505052248700481000610370998674093407645107654851373809666985511265666929928939122074874220476321169577318804905889274276392825304541010692304046595867883688351368691595389344359052050402737038074051550415298147807964366351178181358201334840729703839433853407380280279659278526895526796589532466860523199634001184447561836172585144925059435320874923715406948010051101468941097964727419939331353451202123511994246375140697796026273832899087837752298878301939235425635270393869734853291328766154931786095747567264198566707108327659525534617469072678206460280409027692989874104474175599370814722453826591386747168028838257302777934957165516874607526000183069633929741691498490880501780976447585460396495519452241632059251278302373827730083535382914000290698924727307825494646663457384950633761920204902082402635782999129661930432146651235883521541638513558177319144637858980752674137906947614983036695495572210852515205682016477405278204727948440460035308943360136411920985220142829297385561389290885913242645241281949423855715884460399442412376780721801090947911886630590053647894729672833260804669514337242737021818419408133423159270399852138520056843211622625268398004904581709965757072490812287079836658004080050849077209287585120137838368053397917120964172883371611148115450321883911909477588255014102966186798326877381390047402572144910258085842475670127945459381767053888307092620756690625383765067628108305329798716086862975537175981559607656301666195837780497909669199186682046776215571958769359936276088571026116059401450444258272637795862611860193771252818567696965984175179269556097900423275375842888349405684454696187053267915296040694453479921670028816404115404063392422333280911324280932465471708306795056754125999678659438219053736760389525933073018159210965551845834499533447291242836286270613353632294137912744481796695831263037904364614498501937795648105158981246262551038175668579108333390668271374372257609710360909196759165483398100500951640526936738216810676634882637550092764057091706104901071668685367003799257571325039102695132971442518410252323824688820417458350704799312128409596529280133224041176561460879081655541436599010701512570764675873247885960055122174527163025463545878771548307659915796432304712375812601320447096515838388129590835696459560272186335790961573834379167638258914265004792466313288124067356073589302734723019890595154805022632357475466318961671441026283229711535978825346251926803882368488795801937716685010953272264344217338695096501209908473852610290247189306832921395646907820276671481111593309198231777264454891410387066396037660228249982639339900078632521019434614592436472966235321750925226637646010100902245443533600262085380873229562573566918557456536172566594488603967695918325499764462243736893298697595788877592115358227211146788425898331907161287774839800863070095640292664731650558728845227600309075715636178904585360203538519161107494222917716392751278466009135034706118014992301108257252772796756437997244928644611267496653339104152797885688811350332276433571622769715895796399398606464174757942044089955022938717748780647917846804888023641917571247223388919542811545499722566404664781895421803938064514322789577953002864453929224349102103147894603496339513962194977925605902416696508015846794915850559085127131305427297498350148032373435832377810428155547997221963559202216511518272913810913137259873229070846898701162295952329965444654771356853944361319854179454055103046394242279967593376372827949658571187936556776110787243659253588429513787588471997034294607381368452697985060273781906599406886790733072713933070868178491156824651248967612939807317583470033817328982337051378232733029261750386227712873882293675283133465315287100995050025097992615318448573913430518811616687031646289445791094726943813189704101124975687551231198713413430465162986360162616181464975939116517002381090133117715060074171088567491093561931841221821207866270222416715432519916666087600913797527621503645240814512503060641247657301129143349689284702940587469198638152597133903972531694231245720257538498227403375120596970886710171066772537675653290347471164865888293502737122380710733921141143470021478165121550787393325775964874160755249710361416570987714411082993201381565587674161206359400705196104801994280918043071178873529454009868824383963152182370591558509242632330643431053249767184914757904767435654412981026127492979410593827044500852387538004568407184893183772704765760313958603604785456508866636638959286919575334250041946780670480280744029418623149944203324562740193966372101421223127432568657252450796215285449938696205851146620907017002252325702408431283999894328042985123680425556889513559419982234184696439585943357343931327881370745609653676320532751771697954634238881976383228859905999407996223884312120643119580511885868524019630857924689946576733440381002413955322216956021604682329213569665439384683089102074551836329384263584067250670318394508963837904747537499508277301209032852666398624892305587583172012641905843646166736487300766888361275013638922719310665365590136146145500265852727952337162372415821349040690008449680828628386890864255505679925438968622877241401834934649754412010457973724366615397225186105644657127746218776281852281692430792920733918961186982889530539315603931017320136153421023558627320552090565699306182364063601148830793936411996063758977697438967331808501760668997087456568567859839082874141095936052515183166612169300465804684272527406881693095651082300052698217386971375957636553623266014554928131894446034427238992780652776642493184354171318918084736185801495531856905772324016283574265603036496321764336343246947907645129957822854848105157982677748103081517741076327792893775004693858341015772876518049510697227492246479827766405141608990124013921078127740523909445209647372841858812896037303499712928084506998627848499210659626363340819676034506008982672092334889437685961383674732741384790953281123634314957136644307236929024211237912368428130344261265777386902011477803019219747428466445089486606031804928772189557747229219555533380046711989389682963474709935558267895197320496632333355871440069182945134998671274583711663883894495238594812877108542081284726301788733082837331127847538737451859598653741173797735702561185427745569953454165332955030153699793294173914238199987729574211729231036962792279385236007146105506307083980249538409566093383072839724668849202526968428401708727658910046146556332575427684791670734577829118730614969273634988394008042655789710396804715034284535302271074823514426998389724981447341336364665527048963185372258697724943765003767837960343400383041902468513437087824107209793290950049414087182604258762560228597139704936659289853519690477641161946115101825353544461279337018401048517829209736821095228737741677638216843333663388423041629533729108114749753895989266935543817100953252146931298666115593755302342857629746437580058406974940638354169425521350624576338985474112236345846612937593809754569552245081137567633197004002339604354535041759929245637054129344170372205634397630950185053657681719830301220018194646143475793007172108166014712097426063252017583691959205201378871857192990061806037174633549779311500789095281352842987088507966066725900200735304322039358763396105298679098022259271752671748751662181275344115264980679517828160460395095693296130755805530822648499156749366658287209580928218897536049514275155669653433993260803323380585885786157271261809388217550248664464346385248990027101971668468978197131808902987716768329024825232062113019810026063195522915003322529822680771449437516878509877313368639926090870918435934868607233472182666520785182804844214362928706025472581566100588015241496638401477007581820890419024465139931042271704182007177414594174047207348049738295940308307316136124111783930140716631246324565172620815168085874131129996991644862076361723919907557864660715870259958090459008038632671720201588245101728938093104840626113264249947154685342422932227353790785687974571201896605031483997981974912609451677328059749112259229191366124110305099889667456649401475562407016715400025333638131087308654244737503796737402125822126262397571758627805981867095803158414752420666022938831228980233181913465917816731440134904569225857790451321691335655914326398087118912473351645873511105303886757074026662544769519483195066650525411630505476104915638316670053427375234727961063922303651887902520403162045625908053838059073898342403988955785815443510390594881220777877042167301664501693709477159289087740300245170603595012377699353444053249217059667604592553328674841592446567077549166804711942738407636898184345611305995096997538791756979710907795979604866442518708049067284324453585938728618598310895452784533350015357644118451234626793454893761314368693417861724321686178546964777876603935460139075569271969618207285422304747249662234979153507976113703129536879027949064034842986290584470624736846834912126726449087594772510871190859160764117608186242291569103330400914918655696570271630498003072720987858914731611842557127610309536417351626032557381854664530764854186819886652224297160728552553602136542874389105643783521604110428405016049784104658661276852273501093431847650544174309429476025926633984812611533018851823968343572826686152820501406490241583689060115805156699078841669963156749613031625501922999471917710913894215111623397545949479573464215303659492220918027273893892999862822930743635826438591266974767362492315081268439160557396857593149682106435554784910994149712503901956441547180763778085333671472866768597762280376015039442521344344944105536055368302411784181105882523417914564208053735682657406464606582565777066667945719545694141314012560735368880314674636672856919993162321333990218410688588333838408483645846092237419767099759513942869931707412773573752610825623497306986749002946300741529658160913605992322021775499612874380143430757728096572793531363088452312893177864922807859558310365793489458540575320120635107846090946847624859386629298227204023466601198220920048201040516922725511534160310072979924212566168135640394489543918824930063376589415240504486839214034589426203895000668417182366598635546264644932028934292263875114254390909903433361860568385251755356947531165292718494088502658099853264922409255376710916964414033319878804719592645845203827387917603303918845901299662744546884350024012082619801485640141825976882444364818107331458405635011174194399005010495934394693401622135720497284403806322367188213637568678261882141768691533022894875872197138075465732920892179956378557975338596921052998470752813413032765523808861578140456764031289263759526907698294420605061451892001229468199683821966134948936538558291211545681378239816724252476327209891340929355678453425761601354040065774231577090253691314735942056886186836875228954279031750752222103896642017988307867225689800265575449261644192346623657266003057271961658304281304875114220670204245340510365022999121915480451040044062912970968652741969121976245516236847494667676498355406754923052173472993473864188063720608873650507425866435350635554538508180576691486162075593387095303506682951258114021749676430108816904354963159124084211237014856871328273135001190176134737408031307685339778901731435610710599378252111642355149622754746578904669181338209657689927837922379950002792343896329719780332731655538117126218775506778825740443146339171916079430844707711191067061587211834048973525024780080623794071078824800938927260557005300437637917498587528260155318161850824753610395232523030731446216420838489194271653724249679300799844219575151121739514707297278159340685991826279642516243492916077633307930305428333735456411069342890485164000029980570037718452185384281065907308036398180936730608041192104321803925492673726521370822244556244759727909240173132012112539725437182578290767654752281795547014864394477777666211690133385739578509818086065897836339930215468578549598139283488856962590808597448806949022578160326669884562735623285259534152720374288111898138566411925884403711305281978856622392789922892310706488896846709286704498655666873504590502924739787160041546636311537905778518036946027186817797829851010737463600211107196618371796517887348850236295545097397271218956625372299848341815243518399914473387458880728883328192163822240153351299513452231277976422816504575662977889369780740739166332691086100846222912685375161404728971264034435634306109529271582516267697042722620271982608217187677760463751740894807403713413555690350055866068612824312099706044089017465671802426556239811165282387974851123779016087351658179261548902637709004363120762775132100227402980917301846906108736321611952667777297207190347999734007848558303455200305241264619306173945029882387983756376874403723960713672312030963250568834983865248112177578470735941991392176548452126301791801040226640891729272773653183676808967992077705993857976948607297271384143010411177759399154058286787726504456323828085470453341649305169190770130858641853236590027498414792026994769471767646741396947389879786299546058460921791755456090068450987302004715750599695605302208761578572522553103874046304897631366323234108044800879462735254089461441700521024353594697363489114644949654306126796627465898137390376896268261225818208709295536827585908464968091747399841622883874921801961842575560462251001363582138319281678434188748420625819294135845539698441115994704478000624746186012039409963178607853205740130016242554470372611135082449422417349361798585378889389059167188444329983808918078896258240542633782927551754433648080244080734232988057440316186953551878352548789970239987847217016509366560050521341853917352863237876272771070797780659276722077031490667706197495266194628637548975638939805505251629274166490662330468331814434580737323284703742737548261408465604984800301363483986981454576404157826306797335364437562111844223784271012018716319639835070440965108663135997674774774365916547155682639794485559214880605698032657471348223030350651201477425550243724577689082574412176891034862711176956606795075239496035955095896309712160704029050012119822309121258616345839965863598542842779837817535755088761848853856372254156790904987163458002856666284067182782659768249815658891490360807832945061801327342901263035608546967419633252814729876541160203671617591352766911044549798171515803492453768587445631239165826727774885766600149521040995311604117109780317899040433033033848473391669068705637480170518838968608492898131058783352517848662638269792301218457902423209587575722340954292119223445244194012640008235748833342385663674375066042909370535996985084358081008543748226902982070283126933860856554524667071104645777645899639195003915053329705073630967357624118248837690501606491895982879282927413617556667293776488888346823519806447440657664451827754755030000934577359343531297225962176540250657518010598415740734455019287175777391570905120296532629425515552827986360833186339153728581694124359278621511827696458183409212530225683214981284826858020770978582933103620344476781842685592932022158563818281356549016758592169299972580292821173375997237642920931212713975589985490214442875628752194852837028358707186145089621148163348155602383644379371794682578928078102003933741282851466361634588055569171097666040135553676890487025259777746054417139532616470953486744271499577077780672963177169321394506325880059702001627489759701514782032326057738928360611962970727647914926862145493720958571025862042316354139895195435258344075913667587526683390440200976292451962412154982922911688182207053476705947155455250451078212744398633144129493774348401231130957633663987037299974426153303508497073322255464377181612029799600617173933828111126067842261179698713873321129527874943884693727383608228208707946346901487081394241747764757937461264115443221124272252053265635696202473495312986973814377643953237386244952502498637731509340019897994164688678175178850402130066381333500403976110002492055335797852808006701262867347117347026039833066906416899411803523154337177538997673707927980181495521951044222381528516869374945245363701548900324688409931232409500416760715269524543518634131159215642522326978500402073453264442195286240798181244191125516868628902953151299431708786432811823278450244369790393464752565957329181823318531898729801463787536226124240981823031182889090846647226407961055551479022960781806452400002531512638265260888136911757796610576868624220057647408621682617401396256204873310933694615975994926990147261957754325581456000138353371580085862221468211399192069452153748019925524965629068702369831230204078318300315562175775207880114162581756428450663115238289517208136253703035532808015577956509719187657280589062069641255025279926475304221913215746228490268923056319128184546657257297515219363182507223988658578430491190189916529140866440049512874715096091567713911687809657538131926479855418473697205266967994180281853039498204378822572819401921996603084662183852490640782069443301225341476900831869080592809212179070863755738029585863240921438833848375315006898372609854910644592935295214094275972092019196785198242913297900909891226324143311545282426927177717909835893945428927488093064464066120273461257315922418613022066283468219041618458107143821905123397289065560296924774086466505267055369797274724555780669271083418010158852775531523815978064414982841511515127801167100841353997266285636908012698702620034672488549966035248279403391755436546468474604063144686723744697045317203125005808067320526543671544889435574845702394161938259873913172956869358168648660439280650263676141166286367853057300960499368070532259665561222592919536619952838904299794217574496709018933029206452272626325071805632179479578755144410761936885369803706783828097516646810272627190681105015384216721978938556974793120617472972896108194649431555198931320996072145589174426837114047986842573781087307402755563377140276790217364456133993840944736531582219372392513548391851977699520366614284418107855058309150705161610883938885695623152167957941091582235999054390367448689955485952237723445034223971185572573300025642141898898923475174907722412690783032577150039332966901990763404166984659518285897370984729066342964176115195684103202569938990488480035686964328953343066869340510825430630027582526437972887630304941741424140535709612539285082932962458512353437971099916107839707566905682057132559012743672051687215168732303641213843253721377511570598497913389055856016870451561965327453766124053571464952711674564179370393477420670332363390164931628857994693735598643789451519315085085907467190737379916378807510385892382402038551160466311822633384722047822639471622205524761984814968456543505380581534180821519044122948001827545571814035732707318685629377032491806894565992955175965020326002063874559480563987617951544346496988172854201437776534483444098644002882496995311384624325186772096841789860674519543421441031056516208048358125919308181735354685730731031909295928863628013974582488911037327838101461509386868885192146544903791355869359915588093058113411716290705215004962679033726346235406730641743957231125546314824509161823840234638136409857727684915433343492136451900194703318118940971867070779134494616243182477872340748935909573370501059261461067919656860506474928441359712787137078253787322090704988798235672826816040900054553535804014090103791595139258617047426771710052028379264461961457714963642526189651541195387249518714740024054221015005614770112844593409912569137456976102245369291980794371651393787070628176400549232167513515277495905765960375852398526835089366223573549376828129313343013834626843396269126589937574216987569034596419631992472880923754432383960971149123990230277004293516557531831328994813853944749515678942005667909385476980685173181024964975373078116939861943571623791201940912179099064152407164937160081417299261973164221850766259714958338740859996787515818619488996725744229825995986804820284413572087932200579070645497166799782847402487974573380187802985421463002915463560323781462768472993774315499320514137017297478973895865867316112719999537927492220959661067235213614294991874329934383764320291688836647099577155855113141409402125775373908921710275478062355335022296218440076349259937500453302222074182743210754753136845360498985943181907819054980969076108848074899673855636429564148589562572399211666463630715612452368643839197811876819495856104064288581849706761816635640531060483480841381776195643137732517107068157461346041878731946747519170426519188080107609988592347185533526010475014370508637540773270957696558319975933098623255859401248936551829941938789050770495954010484797839693673263204077818413087465309391547251147697340493569080982510071647458394852330365678520480199352954164965395155477883453877592381236102546379861388235422710189034577867626926881420960887645255966775043970816689453521476451957287762725652271927841033065340453841262532912420624308954710248055972303696929672375914959963010952179614733691579974028662395149230859350096602831214734960395562197062675962084444853243819119046607838241372295350904859360560417467718331459939602345246900950009544437068974780523117989368159843183919630810178115302120561084923936093198625589467090935026841416794497503184569931957762691251182050798759155815853952439968281975915041789866151719341198383935261180401383047226960018569283586486229580168521237265407492489771449364050202609483174754170220156628393440871258083839458824110272271031904158396982623311297706051142982625054613868563444502019201070963075884387737028288163046599233815027136981973942931414692219288861670749341191337109541460952860863378422869966888730505702857640200026937146026415539313979917906360563975304394045079466632703750233045099376741344746606126387895669198477902223046047856996704086849645767813094386734291069682657146752802356316637214053668757580553562774301880926836364655564345705383435505174061818790802627520662196991194609995852182038485193977275628602531127607217626392591586980395472346955348808256806064434399246606135980375193036394254956659323735854539316748251367846740620947664078439082334851111466372967559097158929678825694024908358267365101498785504348699897735789360418800304364826492486620505727828903884184337197463527153236705374261124119904798107351875805399144966010088083801380423519977941620049914874581148767798293727911111643174192282812755695063272576271488070333031352231219327269893839458673362969535478073196153528887287987999836619093612510709545743608901466149372996130836055860669222979997033591739922598940290186787652124103217450498621744066561422794182566758120911689922456682411708657378811628172875578491125802462667928379010633827583270600650694681747371037282496684106737920396076239649827255637732991806924194475573301850948711826832357459572294252136598956750271870744243710421383242436244480413322823282531414536977076500156086999073690733315317102931112653381560303116194726311652613946712834912397370643357895504828075487097656503917216953352121026937335320660714448765409911744798882442577560214712741132041116617135727987134809400375814668322585751986649431030144441169320231087647955402693401116353301050304341391517520494910183291763548856177307564504482911138086535779783423432006447125588685418188307481344588575766481398972491854504707225687899572605237559591005826401827868017046276495218402353172151814378929097419309215372242525007887157635974295166064548847237355445197502021114753260567069374270586351342812750872032150969228155557027438637067589116882800389540643800888112070770154361288083457377749872269834974165283027162948742393566544375474040330182913036001519513326731630307278669115954954826827559339503437117352193535691797810891014938327431435405606410265340129286204173888775394785301560242741981694566116028349724991878198455857018011050699692530863664176632609005455459874673367381249405967652512507898423867376010015647830386309481318384614096219380209020403332330018173296386245430955586797436567192384351876370004065300023293700427734646583717750379983065641124477458165565760162955088139485484574399079861544822902361084192317923368988152486447612092167674861639848732932489355505573236676022660938120223693416730633967080417255823641223994774478153046651775504517128387612775197142333983427523585351008765913771047738194794777339010473564953370199004973407083915337996898500061305939608257255525962959876242514584382634966174641287774419770460054763683783578961013029142150592430070253964071132078027849856130932670357620523136367533233434270997502626875032831418343220052062613643716692191938256611160482474096096157240832921998461233790392906035148159838518883240596920027282614293904067437799880754079692517236967179111936988120300511082133160753971402856076332258622620167642725953526145247000498808536122167701926426370445486632601850071501809094180750528574452338683718792299035179439607662893775693344511568770082817930547675602025705431683042947187763996422613559996264105286810660292221521995857799149421994385357248620357898774870099344302152754600636279886867900450483192990718040387318140424183870001728402257948226470745296376462126299742793834762130178050469455120064490350649693500417771759117211680643344318166303483588599591568351748042913642733924112829159672190071687596497709012344953979773572419434024796295468052619971938828328606955731304224226084708873845910988355180186345323654125496146885855918307332656805498502551924007816229364702388002399949854186414042873102112753574828974840263730341645428594221298818201108626090173717492471442567122338820521245256240474493778623860382268587887137240994685354378177114535763219740519839416532820181284441018842998030704901453712874058847408200860335034603778877563762695125685877750612504772775784163880242566411890339712326406417101765708637030035858817139344366199641600664677230807342998366988656268248277476465928142520353613838806719260028160602402014480793411951801626188625024778164729273397395907796542822847630972791315604478405729759694896753935882267490215728552198481823612220228839585187279866196196608671858922403782985312279936595517286056642242290053467565739936147899375951150403895642066024768065107739022738299612243923932196270233724467785133591650826659870922604875132979598600117811422213342407278158222472511381897515818000939723999487110939242097623203024214678305496433987600982113938773040452737942954029247474664757769750667920074070001178197834600850854415212684698899844098037316552550650637688381886619581037380529250391720735227021648676114477109574531534780174683313572368764541658972038476791689495534281299396706649905613904352079206139606618399974506503090648852578427560397962258932883283224761103942277788685660389662515533822990403811625683571320499209494810307468336174231192911356581724048744017800257142691565152631151225352459737187464754814080791995484071121382592068324496415401698951268300564720653066293720232378085495667373846607634986270844493778381692312773670520720377544529787253995308126335097873786065278449038171369123973958102997797291813581694997289230366034158271433049544061431304229173822159175758004194876433664705166040225379301992710540645469827756156284362438512556783068872043693293079879064800155673644065886938116622813615036295688239349688575351197157650436510734337575967088598501627081947967932120172785465095173445391751633092172443597078458578539770444861487358274243844475281583536980948610455763636680288442189716665562275941634212451427522940955113127357345655387629741166436667851905399181103799253142148197993093855273695234675591828497793059164713123275608123036794101092455114466033639646237878207527201681814713018930546274035688906934088816587470950963483453311662273613449755700386501023941210850966729227410090936058700881778057730090836428866921344264107659258822082365519523646652293109591159426993649394474506171400587630811609704007902732204199150952373612482930375318915003171038002027451139313222267857041693083157622484243749559939133649857160180831167801202563381538180994593158872419060659605471121126018292755712656889563253366417890198608167099982772669261057264733812696401160660292631446833875458326681308090107190721592789856687814537533554614956431583766040695485165002312077788110049573565734730624999601004274744926990669289978608134123672131994610781461486649149003354007082207796689841577403511806568554913097628135703093120419603100031073834712273210726981640593348831824597506289864700452266200868239185053871080743606311874064794108693501393341429620495920504643076596445223691416475159181626751488149355459141057608742682281252998127786981803496403495159061954609370858301250175896313689597844207646757328207265112428377708790421984943131293166209293688699006243199165726382775099191183223135736755539523736127778991296681724069147175739433126080905711393708554430291908230876121581521729097490405531322428698492410542644330804203389279351304146362728359791064288173882536358322224589932618439574901230265917078632046065848003158007688383134131521274442255691262657804483452901896051795959520591328969802687157683489186813944649782546656523493807580469771025008028547670097489303658118979728141197995781444117777998131538524567278776793010856445085934597258064950549842111644094349043698395953764454341982367597823657219839011860636094865419602570463288320956144957697881975466455666313303669065274959653110792890941367345386367264901836931008529241301190158514108719436569484411354701734277093189830423251017908632908883271143854545796729490480875036967740474397435330487504800924605183218044035551182970379282933381620755379285313252169634496171814020764251143845439992557382748379483616380028510715028154058154717776180328780724374943027382941437580084549716495717010299760722954293093896081058718890231396623628388433463968879299004316821236437490214305866469876858450588676449102699365142373328989846045020944801993188785691853121793213966018484601603987868727281306069251522867081815792682689078636275608956985304388986119321897265303873451217332210370589858726699190391660658846041091572713194268090407233038198871569336770514380524613984520840531761281025551527833165871666007132940827264109930324222363207229911988702547003566970370289800498014491106517506996578716945096269831074921860040435561650075190614425698188720217460134817991943116061040183951147225326866049679213530719590679386679730848785984190286199142113275892306224667302684947092090126344549828573845082057366965819639095440045070289465819388690627218395584858030533972331843723657907698339843046158969515392085200539654905369375688384511924712895202626752402194128896909369262275657194889306544691321367207160012136645579908667151201983083020118609524987787185517141877230354521395655426074963290119449829362524166446088404449146742362232970297146722563752144167385507165342696315564843033699432931238172669572330897986658409847314473558671062044590366318549632988465190972655393899410727455886654345191171901789459375695819949622833679390757468260467870427788106864621737589992193721277220058190165166706916623699457426512169690062166430290333594610250484267565876770129384062493842852746219127154418121512866661719795776062057761396848773480580047689788814288157001846924815944828440492993518955355730978559965485337308331126683081441789859644989161458228813285157354254324103229567585739414638941773700525745581404282387099990317762059470723670492022393519583578611465407524609887424336395805410261306460401504819929985896699877444097148653274545629392102453914461920037090228967485381194344899980192587024626951611452351598723051827457138866498967981794304507508663076339561638841647496835177100117133468944296050479184456343028365854517928188948177202421554551550868615902066365896586085827485978415415307793473224614775668275398726481932102942263555940261439520545326956511718799025149932177715898214337409403991996784322850747798138090203176347966028677902213997221492913477703864105722358604489523206228574843375018470936918753164533777221937939414502772889257969555918534595111654298266184804848586361906281000687274253505228688861772386338758070101902767958350791891285393314373602845034770026704311069966936192459524960437224944209796642795450271508514035871323176921527130800675466911671177280782696672212021833628053204052351367279956618311285406772515146891055495392781412823734339648068526156598155210943796725181119292855111528607664951954007518550723275919692288099444391613363355736590470015769304294920069972681686469196409070275024037668617235886751721998746180720015562331044215477119313238782971063477721153058578591342073133290434807581964773789418909933495215377179597932264918181399929480576368771522144402604220440056011028205759833378914722521299898013204451399144238794071128509021011492604271330212251677436783365371119310099482817886163118474202341738202655012363984621056171267191442770321799054435473371705809022524314943888245363114959186955335976446353168666436637637499814361164412311436644520175287653067515427960804453296893144909319027609835016987816919804907235378069313459222894259770821873866705518171724823796893498113949705406109178653116303957181826944586040413277217414207456626953089792857171688670348587399053754490116841442646963875048023549993559111208317510193379066400198248957671732972627895259756419744110640576291892051231974707819795569423952482765190496384502466083626924995740690215483835290050787853485748601401712754768412699496854414222957826361885751409914258344557945291195790757531386849200549685893215751039365173520730249517945747917979863414738680078993676582723133218352949991287339558968482135553627948775517998002062849277914574596649313861960340308499840844828807141158665293359924336632411670947775094380168944062529210558536981422788118934560595533958565858008648744802926315411608375627166258951451068331717679460143463624423117770222529364105663796338335008123091345619510619122294111427372826747764641574096664269943076389206620573689504679461012771887201054119965062231493651239132614499044554011417497142034499324120360896718115178313806995039740772690432112242680249730241866580754292408223031879013745374737126444899168820038235867849767491460932084125882280005963629987672030187684353577340177153393010251572494611888935273699689008560806770556808362191060485205431555049759767027702557162790685927715157157562807209246629955614281138594176292818123963442306819809158211803160713744961740267165230474911395083538329761370396144987375127060405168604500901297020724083162600521185555112945553461862483416281597025938602878747081598320245089521704999938155099964900834660962468274325918757728117494118246051447237444364483592996339189917508488273248722742977832382417987327751633606662997458827017532188265136457250531594318205906550281107051924195774332315288551613293382053514286548674449751470800412711143682994695674671910841633708852047639170392906201201168072099795268805497935716308984827368063773312387418045202220466447278106039798929272628126253331850051208391313187574988010080142427797119262247464718707646073068035286476087032099261090423205819634072811806209503604205934765426912567288143103129991085157928381699837722698382880738239256715962958377304325335885150852645830196601385469905055298070910616552022670542444638085911649550491498561052597827618396005685634537702151562465879500167664525223938642010967464880457696082122740082531131146561549941055700373707771845139688999139199858697980439180093629674129443158857691634547859877289714531922363407879055663680669592833462738188221204738310917471405347835275768207830517720666654872515524677651819082573753945605013034448181671167113063873644464581439612318453851353935924359836462886245476766252825860153900478137391301819489530638757992557156980991852622788024911946624805623384268614784003233854132487921653380409207300931779144822839841664912125509390416963012001907978021176293894677229050517291686355499263353380390966300483785328398130410792692226138363386484058287281212247268289038690711488925301493405248161832307181004128197857346324739355970598018059411590142252988952161127366511613304059098986941275801959072048262135759310807289651362761509737625519087854539792510133554133927147403496779580765974314582911440551328251324821101834153361240125054775169658156860387022281669504632868145598787734083499613809391222880235265576649892721208404480273777543994539026220300176129501110703940820725387682266518565872909055436148922269494682429518686846298925955741424854115186659398330343598903479095903629186649127759107081352387309640044488577866118356062500679232798109480642142177781860819817953592696074758542225173234643529782025509153235161792200984536801285202890595382781048802149185437607160505346190096274706499594806556327978160180174937955817895393518835476651333186046974709366606764999804577814972568960737572778949868639332136338047983432892090917804749945348526050375956706292813257648206961552472091993810387756651511871939418753239050590812763598149481090573209424127007265412856124606134242472501191651626347563776565125463884528079414081843078422691451110163477530154275072332869013752793656221044609202537941737894043501126909762090498174135963149821797561787512730230771923750710218127882367245725645749719360301227754429370534443012861089136712068310343141960786103763877093322873338609122638729266115185416312913221840724900009623607377125862141360866337568199927805493588119033912713211242585406700630453523718067925476366247661956377831426782517792405242965101351652462046330626193985445445876961920885762202518072461192509649441867132667654299374590977362718676517666247974897220293196269384187976897727903192376565460517043286612108232797534533748051115892025397366818664068783728471395860686051924162364926855750674481958210087782299573405300006049812957184424351526015991217217943814405228356940527203401614860224219436781085725367932903039552507287917425059927880419827713859475131940589126433837127731223400328081096296304378275309725280088572891489472809524264991754786457777590097935980946201843442290498324950837346622150814973190254817416205085163420640004465767125793652783349828156014349234083454689974140367663114436882016460894307168591074332725245154241953933047467032899628249282896202236189259731903185638859824756174040866027332083908474746487013172355456136958141124398745371618359794805395666825772705495137953016234966030881204943306503629155470950090874079669290105953279956522217488436404018211283638680638665286514196637617447121768503360996903862024872487528340897554181088233331897746977450592678025415558231984471016646219457542832744125304611506031393072574624210655917449483794698884662215947749529548267778750495895449694859674814739037200441508991705971504827629142807517342143190381913580453743125066297875308445637860620064061062986478184257284375238698560826020887799447296901507190217876235022603841928960310346387167099437280286931441359410496675328762896800940430572419176086270190501020487691201008797647427176832606564459203396008628550042626575861760781073335946581444689072552503253688033670190570342331187875772096204180050993816672107905546943436022223884713601711906197937186544805549619266320627298919766215730920970449023631259059714987604078580932961921206765809073034714638578201591234262192693433914126168049991219458757705080032684356342092156565649347311237608975725224921369741731501187487778729286673061499652890090960206022878548671348178039162380102227670351866639150299304703647997920745085705718380059658058869240783603589305238350818814017541599778845128755947715910900563283170585441654706075886476239083187443541534720120800205179454245789466644513915400045888097540447809528334794050119270333999764245137046537406674389129345729582291148807597743466920312219371121716401879996047939872331268494687999666792769050259703834961362156076032533860522623726760756502329086360613036003019762426686797678965098474592189863170948769322815790082864962440365790401528471613305201705997857456558615413913960775311011562629441727053575647792250362359828755722629743196435347457914581599619135852772304399779172058655372374352481275502145646114036446375763006064854192027369786095957811314537577490844968349699659270092598644973892126661715840612293672515849684988483707779990914168377246157249643179690849068412654202550338537129762155781488857027944657415962727791381612259650223748387472361577751777292509526768842785187259384055218146446011691571636659452715112596205023692521345592405171485010700342890007898312491319142511639240239840501855500741262108950720128669420524045551048864680720308158338386626055472166649833500689579878384528900842070787523722056614370056722042879952661045016308445620356849833474069277030689477264442906629701909673414778741147806003285396727858577744499109068431932096707178577382017252187444970249092477411549081232692432298927620123253834623210197145020932633469710321479378532131361148709150844233583039569393216796419365171841896871206870108329895627296913321449240578807930917708995104675848598508214298122987008889048946501749042087766943895301371750707189038515025158612093472004368447479618282803745220636714253496026730834939182778720842456053092994748850917999286290589296255536510594218542931896638504026413431183851731504593364268433222502439493333430780272038557968846976590245265821284728900513245215132326705912838017105892054029424526798690773830442011892411833368598691559495797485167907622894479495864472529997543894259185794803721890369622573911881554999996219686476261407426022590214536940361633460659729756713510560949626536169734921248185622800657798771584293572596132680319222775327221754862301643678689322700391542381209858397135639098602487800574961253059139773339738430042490614383138003189721636376758913947810142490704236698255578276318219910766453156451034356028401769449597607747671401421578842003986918425138920002857518824765129501711026464111419504007880287291286632664034784125185823637457082911335864309520626868445522875510235398314842451779018722834761110485487601262452587593975342734432038110346942501562896602988031518533946689991145915540199340734942182342216220806194124159100147113322886988509569506203606220618847418430015161976891487696982966426104174080710050215699579908123969824241356223693041502788045129981261550532522236017686323149075086281114395009671939073128221366663400589404620980743111151126449249821762499012929205670751452661820806499015770275828846178544295471089738341623858392133058467750421403305644661019915132687997269724389828826506715139413283311324896178959705756689789088526982964581129910857625504835334873945507372813102444054303970288162960091579157037189775637412402837340044891421048433643104024447974756098079796422389164017874056138957555546000209346301828382184924158484384987779297261069354072132421829681333089803863265593594194724689727866382050061014145855685913023306843612640057041820532445666214869605258591043078499950352790464550178489608320108457752939506666630861106779371559703318303619648877045573508194626790576800810200182046215760840076735613900067205198013496563098381523555952560621796710546140167427099899738521468894163106410759953503818229148912487834876721961415793172234851189580612216449059050203203523201842047917788757234288674092216077219786325558054198193102547583820114918188103669208257474730635720849364867552604448362851175426914815045843060859371481850918410387261323240707010594075011597302058051207714244995240818405367163674056715409336945657561590230547500791138782074631993272870374724773275993025491839707140821278116105477596584323084445606167372966278437142717569602156534026853732571787946457252716155275169059771259594944994000174459384448975643348158011225329712958061212126549239050258781620500379955330248511834546191028468489030693021838556926239899122256427374028044653159507703309294101663253957109630919677856775112677969354042488171793284588570607041857723556983955832751326431652204057426186551790586313016359360776636579991760862505290283119798229510021469465588159814565918551351424947100520869580013200745125324144207061528089272747663132222351128843856486273171370348200061117994528960848481140731566265296973212163785862815499095063662560900125987670694528582024053775959659345023787576458822130753603904785744588928643926259750239472677265694299274938150597230296523688275988643636635353524979613376235253008554594321046835978178121296614105530391470087716002000577964170751211420499984300259010449691617131578833297486461013300188237886690499001391511874700631109624056731868330294113857124914548585919105719803222941068920031398221575224602678370547879042461263075551654187261539779562469488873247942227251005127351842223636791329716335260236846471259278918482950519806738897217500638549497880516383165778764032282579362825261246493619578357795467519628031007517869421300448402624212637860521583862379138536024933464084521064757213738458843428096076219212713232357381049242962302314551764420195279291222687402634932637652917340725854580522386783705500841835641091408727398248906610686770382806312782832683344504230454823264003554115857407992218329293881728405526058434258867982579942644086768310999614950685991234642400574139532595836409486537647869310948861382162187491869131435224642410554791012344729552228865932189773718071110088670259405123233146547109375710153310194595095572554374560258482442459962006878612468930890356714490668895314013230657029011819608885380449164374423408594909928904967021568736290032334009937712933387035728611209798914724391550700827338550040741374324396098109539700479781658305702539254091791132265312996361607039914214455139201382980101833972545165489175488319666353729769667465344972505327136236390337015675397036830540836734737835706594312377294470861360533912638445120995320938818878612253113263508784947466970489075504615467408079603937307229446745787939362512782269775367404027455838399895611203572689864953355029165152780467277040125402410319484323054703055921172374896121413163029927415391981351673027772946742865982316085736700737410565482027097982190879304827398302875572861947350740021682829548958448401842649896083014879004079798033951161304785286087853405803347803195862699017047735919342519169216482346230589267311698916491643190667851866486307170155814875144509138134456916795398746067052558516109590402027497798263151471483081094452784640597930539617697835396360425972381015582529006296530275939028101372104434650324755812099026797950982651763437915165957539898835648972561577851458963561870437845572341909479814258660744494650960050403792135469745036729949032380709648919054122012967646122423254721872894829538746467368391525686256594627194433656353387004319671682890086117916926590719576813989881379186284260318175351752458801593147513578571138219196231801608893393541583835124073991317052448112706881384762024646696461228383010848741060413648000356857953993852902695856687796855226430645823266744867788230323712057383763372883172569150052150085517324186640680418124303142666958018925397244218360361336534638896576697871751105256167236428579069595801416952899442777438702719944757278897244633757509310297265715817071159471812870791309670404481474956025476669937748293593567116532366880055979779626884078036145503002655156560974539436763602433288488984448362245377423818747121567764968452043614441085335430320208365571187372047535419133629228835424568875615410292421199359936236637936369780684952957989324213391597993005069282231180617225555104673116625116581321319305135838815429924919404061678453188043394046965569124599457449210189422607917107949333824819267375127829814971589424366527942669665805415149454418326404675048640923428267677474007827792606299000010339716236543160641264476971473613450342601548689690955030224315929170896158131301129249225225729902411766185866423961880446570731181322703242314919362406623192273558942674175265884284470170797771200363794107472180344903571834459094172853517774560468581086882545840781513015685157341347310850689309547022499460142278734622375043964558022217500140357765078964910042210875278282853133415486071444241563037702625858316320235711700229404236020227109949260775131516083656815371672876628119629280347057422390576033647699843692123577447101259161990018228326667203001512050193788161115029298111077745006349233136856316253146671569048858349202783674250672671175382613699378827778872876574810130673996819770647912013527759190261674017810779751939678634854823179383799315577600830017775431600488305280929277829474783740423839855087568646480823864562644918022286410098273858600877139255903756020762082287786852613362057885237153321695291154541971476614205851331962126682339209720477852019914191992378038198732116728521390756280422239621232743858207795683142642914267290295071155382354338245901996787635870949543187831460564176437083071465512563132412414657091647263613980603865037218449549076789542520479171253943040670697012439136310437545125576520012068718261878651697340806147565296347729936124246445376342363737580534070065162457869993742797687337137005414914621331848825357004619294452100287266549888473694110893067837215554200410419926862183529531310536700084883004528604353676137006335384530783843580496703647788670170378250529787801817321328192648636992118561574938793955023243503554652536971441235357396997527808874621446455989479381636850146851894722746913293605503676704570993488268969155176131549412284936200023292154146333516342034659615916874242555467383510195951091804972756230817397178478304026210501217772122243070267317596913180967138728674810877001427344207529119415297463981872610833346732547641749089705711932687401529700244262789654419092529458547189522008897335673550285557579020973076460556491924363390822826907211067992460568225484634308707802700107483254935421642296989920095517810113944208013880793562371805731935143530789098508835339353625688271961781475082626843173028458078319110004470559900670537665731955562836763714089686233557345872378779794500999250071647015938283732634304941959305863382815873462352541704725505169455477805151694246945751543275373840998908509324850339315041845165571515589016737670855753126093643523905061111807528356269833908285557213664127371314685729667548799403538355472755038543090071612747926989123542560082989619721223409872588440102107237815048159656191907808374187069402940186475652453459830716613559976211325820568936446344811764915021706887811492549501849304523205652478724175103156550752416023253219038767996467036562483953852329115570465542350205299168123115986110254004988868534605890968965429511762485756938705396300618887125956086949759853146851522464969062433196309752797671263461716471514971275347242007962560984572579363181604472152001133350329703181926932024697530120525856025411327389591415615117637233580235029260289093093529399600950828900821525877437802551423833450772709782728254995083590019221307819056683778432398697222511093154951436198535864972525787705994248397152928008738909433806461611824347133422102132935004245937744601331742748718665107650509816530223775867972627506510389045443553431586250125999751171992918848709959960860605545753831343103074785312250581729672502222744477238375380203040011940128604006665551125813829311004163950996648642054548364914067113937909911708093774474842883048901638576093790696977924031883125546340782934484949684181284741638024298429417590618446311798914738408867497776067329805578746963089764140237293316787205895655738594049497308175331899838163838449793934865601834138785859405731088007823159361680687538446187821581655914118315967969283516372787316741348639035153300143114673223751118265202983408655780725355694555771757588403142304538332668136549329513133646667548504449367331125994416369749983918387851625394301085805119656180180904224111895677367296417175713145065360276926726063630064041390716720728496872831122875807148802401892152065893271262320746452151328570796893938179383340591306039851129088711669838007464932464107698032913273382286373507324663485986968125170987464686218943660083297576135065638012695099736114739051027602547978525216114541852186778885893617617023001167581971425784660433243695730783209063203790742785378692082740179098878873420615673035931401968292520183028700321438925663392838549314487233500107530396151298094781757413701723311815192071979662497314215484899294508465382877983607782303837680226423914736795267909412407636867402535229326581599546172758931859452422526582355724482417982600791133886547914053756572601682905201474568473109653763416813973955398363539266951343225563975917873103634675450614341407084227597778087627160823581771447802751583601200791919735732773780322601834609854117569207017649439160439821971089529840291091568902615915123885141193170699541529030544640297747942197996063362473046840174087341207479598224537989687213767694535095920591325466241424247547656752678684777241505021295372704767774930903160856790311125784878550765291393620278540589353225693096014955880037829528617505879896585439519041964242169397149243893441986195145032544580225855245819652705258083144610941871365817428564885587873184023267354590898453544918164664616084880554072520906079343367499644426031264086627633112883366866340292291929580853091827240772387786343491784120689426778136927771817455531617817123568202653958549246580863170949026849895638768372913268496737478237235452853344283902580066749352435116865920694566728872579480131884202909756281228287311349847314239093766006245580842275475991843067468788864209197465284162679709269095502581650100987521055225131150207794943564921854930697660396720753316819427199971305361172528491446959894357936927224787356855057024085207718775054881764398228180150235567696074211892462407763124241596355391127645503239124477614071736066327943919781428049849004788305550507817680058072732510275760852649803825513730142166594396166569687341961778143037649201355386301135341010944765823488440435366809985191228563830433114224164246337479742107183051417568291676462381663554092966410565303471077225076328957588633751241650601951491283718737459240171610518812610441267943470805842807948290037264646845818069858292929348505092960239225694244385437977885302885247618300187594723867543559998349377050975682972093143882902228442590862328959430238556921360952572151681289045824072716406922404738468407119401743045040975942028230749725274985165896252900085786324521487545454577320429088290047094821939579992032999633492188524250001566005003640927750760484042169693105503319508991560185952786874744638065632034682960724543145004951924761325806947808934424496096791015502970058073128249286478651938011419959490095169556522768958615972560417625438423392317117532202026313299399353550261354867158530750085596219499577020791790638118575762015890730036106288937236866959707369496855845462559421102448315064288529599904425074126404013611177980414246652403918036586214806748743276674313478340036312455599669377864455521024313511708147660965846195155267244297850509159284569045666103944306276601712848780709586072206431708353170896436142308196823728738014962546546952802701061288894456307681425793831773323432684308768840273148601773898742478875371653114076856756116292247406976269485685839283703994903776715392571387892450426490023622564013941258670720550292073790123407472317147651342398871215314346351643943842478256242371110493268090133083297325422225771552768585438848034862737610583902045026334599128165382981073251184841846312159220905503134695143190375493830380450333614969275275739019339132945170476066888465524346422384483201656969488637498076559961237854539478954511136345938418387804312516325022684357722471018761473178601816759562967104492500349968589406955182224271352693760350756496062686669823696287925065263694120737934894817833643800841771904242986392025163992248276386108633598027027820885358396697233424355419433873310336511846730940111971663467799034962714063769778507608899309586354422261304625177574255121113269301234872380584251448542915239168511560959698882230295250287521725164376396541080922411354188811966022822029669373299476107448455177291416196892713259855182560377038528281888278826933391213502496242683978128579139049236062406612209898616012889434679244530050004859114410901462729593918014779110430091763049899024844007260808349106386423538488879012285242158336083590329140462271142121100961640229639708565124653512424344566169540303581961049163034111959501952058555754934937450120154231325440481291068393912819036282997064546362654636216822644091710217370640819830687336931447318343559956986658393143015279561920996162451104047144722561764013957671435233498356190881839755241161576711579659430970786952287106013456598414230500386038345925925191006430079489460993994450143163031621293817697301116841631767034819277815531412745005805062153191873888402062153585310591388950928999132874275774961436524656964944608215652602765075651906933254273595238662703175451401518997477756740779524804301872189886118874982782657001162985120729758383072583976148257295029920517721700813627948549211194228904182428943966857612781494167455483696014228919053679424689390791099921720390731044338691735984096730600925442599484167508833065699571667243078199051171745182788202783378626587261464319952553382463891489429911727697375924343947408057472950231155932863949197087433903912568163575027563878869861789989315180892319995147146966413398599824961805906325381197732437433043701567478797925680981394210221129781291922374581039361777414654205867982404365857835310996662801076661217164385763803654658872719287715807403032892271658575335515465997172831605172070546661917166719842555408440994422817917938681711475403846415569473194857241817862814135368172210329776378884914004427513655826523431799152621684666985800495145679451451626069378020689888247947175875808432573711928606554424101027301893674853430611807229036222838851035656035331389692410428623607593653507392036083236847534920225118332516286432964423770099879731303398211471326412561134781961901598898732905396954998449325964422799719297672806344803117595818397425829480432665684281624270025475052822568732426290735211253038521400784343093281828165093239976823574931311429566513451009892932294041624670264947409902078451254442805441980735474163668057082384190413750648479247917001406633949744133947171753694463779709634873000762765078079916862637241044554895915679291909138775303477630470459731870856182758242832321298401263465896628606666903852305292933873955717400792729397784562629744805007559121275342513066040569842183337589371252637124529543396458152531888154467880577220781545663766838775391509691800477019952399639937680303577181759070943384711022836501234873822282237881351461399996591056868582693527730851062490982143183026118114959694683960552697750148759915053531654610942233052335853856075264038870659250126156704862321102970941463117243901849590738894902604720346141869763424565761204198445730847544553886562901103705578803697526687888023233717381072812637254519063181545243197043982053695523099092695704423940361801985025849277612940595076823215906439606154689138926622535466697617829621012581634282808650083400719374269784992550383838744002280767466447794579130326666636887480548264799583198734196061760213472550595592259456384064720693416631725590158020732652159460929905700600614560776448942711812495734664322702727750079935291494474724418663686438237966935051392609439036410666850011136641154539173974214165178045537676201915783723662254194475130367643503875559668101256948285521804892083939342519706093450760490666917037260754212834772924288526503550751905583372496482904366066707951544440019388006320163559055643607273929452463167963545466603894165896361482013643296290288219264660026572072484621815763596824775133629412443206871353499622504470477132403464913502210995413924922210295692998005458003757553168868947959070774003883984138952943291758392003725671234172826326604114984213201326735242564596391997872488540474633251691343793297660423032909491335103294944842953471812209490396665708924676862633341565728925915450277114756654509907348351517476727309345525966349338549606868722762778950836911429464816255185655010378414745599174369921953033269374898520984066937603016620416362542675159861703227916308644986723030443510396336738591685835686231287541406358354615726830189754531191786850053853398582683088187087821524949579798646974916308112998177710421430810231834876868638734481354043083996001662413463797796763997867078952980471516850819667211583328817598662810309414909430628200170995654538564748975121920263353555599613361360178551850287545852982471652603565158165610245374329408311633361463386194952399238968390670893785113063569825499745786457553112527374845162886837985075396349304197656853253370292532362433832919578666239309954646674512183556754504219114738795250809437196299804804809024723243987853853218705948370451964741129144909544909153589954923319402581127307573419248083394542282801009825518619318248877195427840482623390430249640660593470866081092408851440851866989792255895417783883579115454241383914668258246157998295753119693758189137595235950365921214447302600079252240453744874980548133744004538487850178716929026112303873679190947678015457944129552324156486193380985026430804591283185546628441993241207792861990950941433365040006836516041493262348692205674361798593222046920043736667157849602178286346213586906931516749851976528320841559869473776641877794275282134532575866568559012991650386718470710141142334755051413830317772125155505892846592296779875930760738329353747339451099966838009969965864403636782904718468559535067372862257420697841093619311326594927531484777331155847664698123536740093149930019062274330836428667352545481454218816597588563839991173121048395134107294414008877435684641728675531481936099626467916983642513242832060622524760821237287337117886553943281919156294235331260462789683268705046896897114872300623510566103202115253011632189131885503272411564111461163987552782266125643686967149587615999821652311196777722819275271004139277362743071624337161779449993468158886274545304098573720137043087187355372915926035163046589701556703314492931618531690414532121268090473872672765318658685818964278166833936339511329032787585878665950345458010676712859455659157486142187609621796532016710575429326417498321985830419485351746086803729250398439741632679416642578535528969511940432938980988209229291018510234650182438226155292255865351908861814950258765620354428399199138453916236600576766064703738806025511985473578288869463620328337298134200263816604117827156493678277994776484405082645349997587979574773612323975459293437300819638777095850973642384239646801447550952291289290016941566839050401248575667982448898026306070510924000222159938159879801227381867671994569190802172744210707838078270191671130780502572329270821164329784566475453788738081155062882880008141860350687210414446026832554484679006289438539398329296015768422147449981642730528363414405458006496589901727052670971065547068655476456096189273158314118903584979028277003618351491744820409853511353124337178546539271872314266236505037181994309096047339183270667936596273873028701781707808008881660015507082140297827888631172090184917641977707488176404142463258476597098711438835184009585894518884332887380055847684528719808865847200163142219596136151611696575886866686870329651203400323518874820240836203315560753924745819016411548279999643360859294205491004961800480243220472134194555684948381560099228638840962721227449392038790001227628879814457759155704128302078695030204070621472875627996580452906629894681876614964367731133662158009465450490150201871906630523764908753826297231742859291659011457818080007079947926486152593830181556153170597965265047064254306502686399259759250866455162935712402355313559870896296575743057458804213262855817016237302562574395219613356275064765735177260067856928308257020916447426538855311564525406713600620667545800250191559615381445206298456868138479943397569764628657501632017759555362357632963096501924876802822920531273222270176677155921433569860042342046790418900048666643658676898841644862745124428980276953625918131879378297184768529915947771765841240706767403329950724183582791776791859570342083188858340476739414708576335090548195304303882682932554350317584039674494247052563933022912809580763696131490600419800211218849132854260309508312686474464885440379892556036800822182689504892857553141471705249691095043843180122264623043761426615738811411320499767470252070207577631728578868043194608866343915146818953420273465327649919123380215406728181838812122005592309444309021444922207549089196229116192590385746312821846116675341086110269000111920539051940683710613431417736420351755101243338198524372504989066644397378652288311893917948473407925094152346137860161685869846751878797409062556283507797801868642087557494205538784715184225478768238110816969110623815742207314116813460027669045537025808733367643331507685286277355238460843446747327100002705000835620251405373276189525730037985468334759809460053041230729474715013545589118861989487824137345734128749231339348352725721102363179226052962538500029679975883810204519855557378902316172719181624471971459790977245612052467459249783532749508527014711088262165664024853397695172128041045022676104816703716327392715471649221741885309283815037321996169718769610186834341814609286662590694498207768818212141504118255076237394259711489332504619910525734195754088179294352757068806742081302404787989359031486878936084758460839810425380690450938036901328054006634298213834908999595051958080107263854622047434773372830498207297201445755175632621971777112873446952321116393306060790377428817804719371645262709394710476909998602129721985284768043068882632526717106724635264509426376412314566093630792107646066897196749643860122617805525489747289901705562539771758393730641493759924129553812765460293352010249548834403490320611210179089947664022080596874321389216644989095240110008511820576488430116127392680556378385534368037972503435751309456728431368860541169760540677325445603316903619657595584405146094119379162108630023859106960574487414576604279671631263911092680357365933266080898925141954739312030271858331518584278444562028861129956586483334906484624394888799012579277939062981189277891699306329483076506231188578439038750592102051860697511414205649766561537847128952042343956501689962531958372955747470107068069442540139329678251050987424951297429458274334745821831938397924740539244569360344326143014345744500261846341275515924553816867654114306927962382629904672179923148534100833849675754650653952941297576010506408708980364491452603265509110083839025793121007824047001342527051563626336293434914256980867282973115155921449962069459082978133706569791502280933280869991500975218067701905477136773630118643842090246851593896866875226360354484051697625017903137501611107476669935167973722094304300554940641571874886390779718753595840038343242304059985948776475491795651950964086376940480078400712198440637935637509099432800485089002764001499075943957556774915918342534851105799622931862787136850081666962671606649445770781627871572111893424086630778130026069593262345358960884591398465941158390188112771303279421213268571509566809605683900578168654734098179070332204292288415831805294035355204439972384992808776921688473901198287201044404273389290391854746462244723162673787753922481165025419033054282321940524915538940916617487320812837228490827241002171048048865751640340711261013861670728914860028672266103963116329880261670171470921035246940973775684161157164910435521865591078895483246274010887740116881144335517406064810696859421753282742872722479800713014629432821674756295636390883900723276547309250358893524435826933378837584208135197873626561794009665633104927572140507678037016003879714125942240381279474153989991061435151896091863328868272475103403923797754696154397490789920046121540363432720236588253844066536793397250869170191708507372585874246357263583254013730446506173538512842359847946800924441222896087432535764021200872044156764773314230068769030288822390665425735047072224431670408557272509702892911737689206237274313124226942118687171508628900864865464454431335094945578660252634419474443087217235106405264676781774343708341980964497340658549131071012486705167571599174942169267673097512227867024453336049227975745565302014899440748843278282522118933233478835312888424622226488711461882131860183444594332830195836681740504132083622677466259547840199565485359408767093786939025171807379256160353266395925625357550637858460855380599154182967970903939469095938840959183219076730563625490224385345930045488631320596969393730176317988279175451234612275175841666539583354576107288714059190152332025326248615379856342657788723455311011607382599185875502469356811556107077843787149665196997662992674545432802646087186920813086916759733544306243841682084753291000514983970100332413619064221553204977662860943634874454707929787273297912703630677343078699191392476458428491969299449408485873636268862744397040794204427265309944740577786754562243532505437778688255876860031295945929452396422541178938827503187592485510718811569465042889210060652961591792919675425181153158571893808561775049600431827786738484233796680651879386964520854151307011439990001334660228470789741746734024899782068598568598019944029543569776955871782774047622911125092319928054766029241997796919692405289024320411142666139146902125762933878170298423868484003953522207881854120214127145869700555221428983669684112776985033293444669924760795803082459777270920992604038617997030246342789997942612997695924164296562260326113506252618382710082884633039787188054915407426075560743851874621300441490115650727014898768637574222621393911400474431299568355167979927144308279978736374267328116737858889095344973853893969356712512256695219974723187547931586262844288588128371121944468450942478799426822720988615255589620091639230179641413525933394716402333688109801222531955075104530934026279681351054490708575918984430547148996965796156467260936820789394446754985554191102833616884163131246629305543533688623707900490567016003587274257004783515113521346442858442671497051052721601194992310717693242661257345041908678830359048595894475251718353761193971065828713973762721734520834242056143743641485076657077409668755947365137191462474267716013892509786489302628894381295775900285483765822267497862372628739558891967145874933998097017173091985194469036484891201860327104603045028755933237168973317495849747322286777503285323008809031538490843791752715115535856145305494430020155215558204476051528858778322308610021586659040469138669367823846843044279101047679572335507748757916885620771248684091064230576626555159357764263898935873226128815447010744634803012771906009333882402675148005867853549713966226646669564313726210319278771829963012227195132638140254765542992169722619076340710538515713311082287371274419387603501622805753881131737221126280053305277718631530295503135842361612687023572918082378505821261181264496270111231915885376035491899095721950464475617180259856535540163999785601974757446126604213417618390684981895386380594053137950416155179931992943146285409946683109234541802470712235068848962236512362206220421575788986049028441785599963171409334932794221815469875547370618490496247935438485875767342504326709858121804740541028348999085588246521814187704598111793801220579948595290331415436488027614857150236915757218837076434811050023756003845500095782078301849928118144085397970144145010380423595454479554683684921704420714554085752896646441153841587732128224359776027110983356459718201537696851885509333206346285220929674322996201204537652606598781949807044921192295481034528202551660549979623508954622435231921888841733723596480794797889479385740604579176880361451260653132960790429188959689128379832776369732905761703545386987183086995589213681617086376651163112093134136518288850878887897967740302172987074714664171064933435720979583049052082076549667978989767420059742602593682632188528223943567639729373270003058463743593263709225423679102956111556822608669481077034056643652298268081731590276483570191314389694934905836906707596287558320999387657298649212898075041284379483094872514127444073005188041312011569526448724375265149620228585671165945224313530569646727004564106289666550758247737608183716778510420586315770445316617084557797532394658334895547514197475954596947237665494349137935663072412691661623322246389555738963311397564635741301138586475890407241923295393194215189988913583766490476500080386943513488406824874503950333234505526975007245422877465834099246693316275662776146818964236907715671394362344794439632300664203549613982440604483946759314706430127799303454407406063622321336625658327513064523066170400829304190228659139985556900099714429513962555515184242875618366534851430147706563619416254063022126365333165663068699544848364132118686853642918822716049568895022129928585055103404199349677811184776905407994194077355697879144994932759005145317078958449325170574930968744811085937769318388416238146384395042525806526591862727002895277187987017696896996733977598870719000380901124766799614396925960370008259329880447476505960713527716295691334188615529022478983426980177127554347661430387686123105513056719794433496918855688984632459851561405653616884543268614456392307849713828240449128702618662566029156227043531779602850328352884093318109740376569922765398291402312853846201490784824489740608542362155637694359161669538645594489765960924949281723838797757857699710897108697308296548877850851191608687951933675719908343078806331315294420908675987470282017892286333897802765422360441094798598079348767200491706418361717479045066426059123108097014652424037119315068334697668758989151284649790848057633549400586014007394161402102123766957131559797567985476513768358260300886689424189601453512670280074932631296317960375901680685978797654150362875292651331472798079679269885213828987858530788181076286668573380648077131326453993418395327417256767016041085797279432711666832728768044586422507367319478991330205285094333478724184360278559545531052577365032419867806592118175591761899390071371587878534570512748371530634082288504471324639592382153459795038022764523654090832266723634610748844493790168321348462498435601568459894191611378225616358294595919684466143768667375534318853477085743533485830082503103186315297391304615265041957631987835431762658583067019151044842523696111586336161309249880612788397842051091442331761362677611227312915081396175782386997032333132869848733757604326675045621343417502126336529664619179206666237907015861221590733210435483713342123044742073533873829070105945009074673250962894390706760643593541095810205199530506857713884878698169652066728286928242387154847905832138745905445312528088851921008560766202690508509903446767912482095234821917737156047935859561043489362340038843335201512266182656300473352257531477439856419645316843877645130515286916297076334666833793389655337800628520337202565471862968105718323291191910642541541297432949597370437968509275216710568406487108597906880574134934735757243471540796454064815461706502605948257288463045630555234121673648035689019348870755028019731961906450604956697446472458869873672267339357427496377266746954694308212506420737407179946492731265822898639780226042613736422716854834820032959117939240537674768807176453827540951153083871980098931629767384222873501721450775609020564651294784161028266196752844789953618882112639015890884547045047985901176707291188153897697726587898805491452349256116998913614686981949460602565555021250659816029677357685114239096229493204343863578977088158392259229739833005850687141514314680139127093427579532087611188686467185674756819119518080670732742388268969800746452080337025178983849490079891979597133745192729117408715441543942791529632370794264532484212921491669968211152197324324904790018097224391381853898632744337476627092222927219016634803819095130146560868357888689533800722436862641913043741807599953712860682475453997886290380919031629964571662167541002115778804921198156308223838382502195787183037379009472379372089575237507451897209895571124560748568028796995487564719661388580364181249583961293563422928199099522134433158716197739289441812891106953370609207267053229810058011594692496515361151291896638463033408004548665926015454541068891142929556928215371948439329729930822085121685253298740366414988485375262147334043582597281180743950814192915822171054457166584451123097109919841619618197488484658997073712498048753428596850326259527093184872818559586238480233538111589023059721168321165797844495911101284875765278623869019622095325943056070038170278757668079523196892846418668812610399850518169869087311336165034323303911660117649296634912497600735437987652907924075372082568579770248894758626745676531505450678829966386291705933735108583684072648765311710000838647881933936997136954492160430670801206752230956746230073224039823662445573831811492965165820933260658238037823844573913075746643358752610531356180306573356272533113244406970958204012035507981902319271042528998185923141126559207404525976351190124434545298078442583183206401028247732998140783276837738617811081773496908787167961356267114670562004225324052008521427888072155156308879551823222490787915566982532655418439685985227924935824132818616229136857843083417473612892812469825193892609663702867234761721095253798548151981376044976154134365462456912158009104625868382183295268460401822646925471018681849799992981662963390057298832909540731804973407728437958070636813916369033839163231649779879764300036731795190281263657753171887251805260636294630110361787914814031364807474527737921530319219690852791367139790435688119413159004346062946308339707079737348204182676711483799441054073492658200169591301712984251674763435194685151178997256056907042569831771934758012584162948742996863706310922715647082004466075752916723894462500557875487784809994812747110728194663285749585197752622652504684388839184197528933330413138451681405563854950340617228032058739175358597692923985020797907173551261550603700009017723758591313335266227414945098544053431162529987104603655019055478989065806854255084361682545333428031574971517244186873574205643380493814046929312632344106595635796563309449729335400658427884374477295588746860596670897031976411732728394021806806558514575626742165166289831860371459126220376130754160017274488907901145566586682008261814984536635773963648740863891012506414744092590022193830945236200327546021629872692281136685407601837709883980118837878170654342658775043326346671591504116668068454533921232348010908143276458680226560697336686638042558711827799360709598527126252578233052911937239181384920986315638763671841000219344932770241938147241076485031314834723841315420447588509293377219421181203782770879398946682424652144584176749536260611727544302806551132267802617817380042806124505678428057041573120089381265689074610938808450449935321219922948766739263355365771745571368176703124376017632651863306821686648713558242758601715668964126546922597626597694701007458743242582907811523962786377798267246174979986583857050575929826810885939255532678475160146904031523976738295009108550005293625908897878711006472329578801875573020982619188831383778820415224476488265910125470969941139080288512370431930153790602781325817659416860627075111718760706678068735805493664534895212183306330299167173383936189256703107608935413413006285768069615623424246772756657024911437179450955804810376683336178410807519162139321336280129355844126990510709684570343955902339998082619667356483426233008718445038659092942659223697332923145743995786462283122066359893934446652994668404628781997154953500872825040069544654705985837016963663115636676567884937586584389978429688525375185708838857539759848351839223973425331053308196924964840984081819287825997411112080293187652438547644032829516875198389922524667121525580837937088540502620726758384987449360802109103687419285333105871412344192022534703689646625124515306228938267706710712867803806570297987613476590813459986356216671796366128801874994826211197331517760503681359031389554220338883395171382223873657197291082171539211684553709714885320462051605439357790333468493411803502388142095507058968301883485293424511735900646996111695571211194942198026935189870255092046468560573934338393665042265545630177968951003183186742374115853133952149978116852409744653373720252289754554236545654864618980670964868080370470707608351267683494461964687274401723723864896884144381072717030810135742491325507042800941775140212893684510447218790613177914983277945793340241928589549310738342583633281858578852143971704883635338934419490549785344442389469719472974482716896368500580767050012332350458585666091032833344968055231984074208972090881572028390667670464412363532583203861128544775393622023020417326408584005506114048695771693513311233120299125082361298021592141256971111262109219101784505580640303105487990978636821451542634452169986105479109529413836095558141257406445078906416511186642857076052229907526153672870143785946226892833657424091822303006816257257312238305994283799045964466091909447081299251941004103161249911391355301408032743550282201037724257011232489665077320354617892174983139397280485651000136750448790888862262247226276574555719547413387007421689288904182862083377617416085017880025347200568289866887422981965093133773422254294356173001500937743970565349065763527504931138422195156410258473535028688811140765468103254028872414402589448155927001920737127471160864520488761648268620864960210514772780350371808236693160871367132316256274952873406843375175125170682856485022604550551259967852042578226396054713324139729706613642272314274461511936513589920206246072914400022837565892717098438337821221593856320961734958422684183964690217846077809797085549248481958716077425040011045247688311154622684639821361971779252135967253053155670431937836097542556903718077364412424162453284737162904312023517590581602756265203640877617446272599785001845027807135133744839115423540605603211394939687749709832013686933284347816233816817864783656529054187598592350094245356140187912824645418602473658373265650222314371277669555396379851065444917159771916705240906822926537841957090059281839085299363812662382425712938784546068213908415165042417008982128314016163356087694515638971037268607851696346344122049610075753464029577016736282157879152019360608909540355523560140045166626365129166895531895337378098735663889889013955550750138159988288759843529872019387056796584899108109104038133299009285372749797497331388240490728827806950139056836947890904836821498155013831782971018323352491968230636141003719038851562432784008941667798254188116633395604618416312323251429438070649303577492412323718648036052869599613852082331405947360233211087490294661574257090124221664106227809631583561404923031501369124936827985296763169950184926616172658895120543342855731930925349950080709420724341358367010028905969297257599030349654866097182321836754776162299423166735280901125128434822698526016178936900586792562500636699160124720573161349760713581191537621963886179462058943910918493624160367549418697054729393647846076827309981007525078285835431851984042814829859836135199223539863044987694401358783481363518855589882176796226456896909759921151346219503148340091113532936766272947926984531432918485281536882691561700607405135737896735886749808176102579886260139263117355810756163808638629419319779617482132724541540738266413130344200142820034853684502901551713583227342649479855858290893587441171305426932977498258283429527191101320682848895165623622841658356131839930022858782621056623426574996356251274488642893199949928601033697646872187943393762088747466020046730436288026526908555247836424374966991014846040828551953524490284011149748231476566806236303084035047011478042821113786778350217065269556536008885479597461737890185751493702389866829981441794216141369727616898391225953825461750508092261145907123871073895356354561654512721697392246179932054572016694751771701989750684854087889862086025733784715149542961891045652293632449032868823984759784264930280131714459699523042727348363461480380587446026474434211187034018041408454254160552260512619565565528963309728089540376367916182404346658934885520863661011944987472393008171346905377094498203919523265609976044220254212251735166759738235489190715223972505464080568774221252003725965109318216078987211055609112020689609567442022446268202638287613939984648600965287209688130134153735573162986891903696256590177975311934939814765787957465436300233388207268557058688243114325889057295203114610152780866398379624856596262436877363932529604936597970785631817372960411569702544317380031414967423745921788061850506530141040660404950467659583665542678068055920106366614515900659544621552371802448793455793460919162478600344848382744297665790525272214154702644174338595899269686062943248510383033701015570495584441607608557561861154683874093178074709966149930666570342372821570377950158019337194247284708584758775717006356195599891406675895846954580494977080857782696175166534122911801874697453801352093789344977525025416962327483840511070568676884925696380492070655222136219953469464047072477283949303238494230565707612307221212122076833602496585089563865130792997447960438785752449599823666234308705213028117986753231694429024842159743473258029179791240048947995818922277198858424676028075053305140207785455804114291168854776372290592857592315043787554043257469720761400915907303578699061763186372212271368211691658589807510072192108678195558668723670259554164786969912421329670680071027379839469560410786910145667535965297516289841999783443701505000982984318831896302871271739725658437457495294219413127554070592479683030398948017804577225232488279592439484369455249151083212926925003878818242148957717114840049934628191535545285113500732987945022539144648529525466863610072702624538728166564610495108058018067935491842725423827184060899480001894966807236255881975807939398218284455196662799250333537024276287440740712723656094838515331846702416719853955136003482732374715139023159789463765974026673402848764653973152476640158403878341958089568967901614403845380286174452582177266452941689455762772898668389159122529709009587520944570370496516861094864062945332435364163259304521412907058996787752690930921731233065529460848773465543196400255342287888152457087956894590417409012289100339586999331952955315061898351948468677006744356317631612240987458804121329880344504401974237726513823495604544687306219021659441901593232989350310486606058150293662374797913298809558589785763085393491863254137608748577514095258865879097992199070843205176518908322608111055744615714414454011882653647839139531049060503636061999784970791634034262594700706031690987667575077887055566597244273824234052528965935235370293569315691763179041291668706419217279745133384521773667159330176629641814216787915453814918810441090058257631322701941507133585591200302044092470894874869961384083080796033326993155509573277302545902541525892423802082636642299928373531314636768458537521446919542872125607931206950297812243629764697484558875575078547466048287319866723393317626273550119142344710165224620000337643041166938958448857865449328116914623161389147717442624999746555797888658882394753020198854907667471680014849180680193830962702332701031721852953820028988881900303297449264484696580698223570843186807037922492673655790039151160856560097256198347265764278331598830824597396101684241036471504648300650936783879769093904339974348016636956112596755053838829704968712841227908047671247047338349136203538901785668219334143852518032943166449555700181070921405676766628580682369849289068621966235686263619081881116477010870225339640944995561704668444274061036817271595290678714390092854906491833815196986836011614893897855461982392355481822294329263343019903133437386113317312485127139251888923049075368873614532806861208667531826783105751229805063789225780366475894728660547927612025071627792968585939638050770462070133624940056141737026162999085171554507876903517769007152494544455818580379410770260151965637261593087604728000233410300378070895384995277570081901328307984606261963348373950774571955330362102292428335792470410860444190478673223819667373825118682090588637816803917561284149792731236720023119255857035779228994744520292081177439817000096423425050992846379484026458575671136669704198310129682765284071475718418692979171605012486834626693500034466855033440817890656647587240638461179703321016878990667866972709602454768791462875944469903319736472681613895844880255892867520267353002745171904264977467960210640632682375865681109105859551840665801622675307750825764804817622844786510290204821607603497333243940585031471680360778149087502419273769911640227326625625726174674758072314397396101454553871891825805326205620946477393967082316877340575941191258824731941144114102808115619406081090080447982411538123986119809853315832475875565693459593200572955209994063067684533574654615113133837887806233555700139874087469503592362959402328357705832021170932621275975429152730230019335283155893661914330884664267744074405370685799781483582035075912353346414376660552571841744244941223407692973823848928931710692410274357940431964540834912712334879925728232607932288601703001308444885759303462241484132453189968592437892552527343136801632700957616305654855417969441822765773495121269717946849460022429097895402710993047763121554651136739371906492399807545915152736145732021179024469048147336234810824261909479894017630043470355813647555184944452755707363460269887630544957754874905127833600180933660576492704587382783092475293534643692208116893566978934226234325402091949281423656236432620106297535009795125281817603514226582018031488627646266779171504943983589563140398789625936391533832516040892752930185867844457796331504822748339034050149324860969764416303169923653500618622701302481047918985235601455542879544858876957042824964819245094269444507623445101790081890103082793734489176332438269398823915403367463551376292826734394715397846451455886270050215880315473011843969430832496313493639026128233543565544786430247625923727103190756391467396454584414402547961623652040818045974649308174140159622280353058851473600973136188644896501844955879551990051233620774245204101288882358580445241119681419442899224644885308269700517653598894300696177935077496557456008944810393774424017446436371606505236626763161510216427403268849220218749424419524752836506244316706150343966572851080886112714023543019500593543346152018672327609512649904680188666990680495874196401368059872084288810277529007506901690185687187623863850713500725094302291610615739419637233924565325813998444875219013961081785943583320434820484716773611848230047980023181278479027603843669074893121786974726737591477188383576050961403514656740217466079715061876950865630443613197262053937360812647243887540701858878355217612767154885738181261839634361765330188756585661369040998720499106990816754567117306656538439752265639372067902279107643339025656754348291866144928883291859272743105592860746408394858421214552417970629553109375664579276583448443611191209950448156728201391387867184290538965891413520244279504397545558944209665135024849111824615058767488521668368988125074172533925040448806283404765996976113310885853757534331996299137134846826467482939349435588273506410987135228865193112463341498098730090053757734720595347161595465576477545816452165369966672719254446382823843633897049107873782805021614365792757314844104619597675422817006629495258960139340353250895924058052795792241538483441888324811555271741444134738965970936687268935090936290548763312631653331562684271265304640435591068056052076504706087152635387575828589716364321471653501837213912874116472789416620281258496993751348406454294157741347998270710112538365137214842855643997373134521916243204954558300216031892877057672720107546887950284817836417061620992473815852297177907759002903339977834211850184383972548914490133913853705805067290023122002887117177217319648486469309271718026335505468359940883147140520152236629788056509043818043197037711177003734599323603504172703585736010159276615282881581894205882062169187248098926086383624632563436544357041871916487761329584076274111010495737397524643571983039041315089378394046627330670503010363857014510042052707212902671914015971957727702032386039914154964159817779288652822025791534866938376574290257028060937563197408951702306474587877990930447765757366744772043983054042859299484200779978715352662719012491103529503515241875600348339136445862907510460926238177490367034572251061344103122112363890760094323102035245245727818082793094146749819674650824727454401761490395803418117168941018335777251068379351501057865216563410919192065064229142797826289484173887227307512770505495473482743658090555047619454026684784992232088062572035651338477287777121957183468143628725217910053806037848047431980623448766244052166691719757830397238343795187566591220636355217845240731568197612519959661555534019311482980206739878311001174134921843392844866049014048499766480699515282198461060787664691726091629881858935045714279318598244960117571500681336048985160087163287356013216313526249840644438293273677860191725781643955541036307524892990823288919582007657357315801866531854862589416945146471054886597243276518730799389743989680825787191590851113134792802598318958397215610667486274311179827660052786035225398883432570454551137198362802769608380646127920785395802623988943872361688302110235530831285964552474259095380917157236638448573684618135066825324651253628856540558886963740741867977619195624585560920386618150495502767374364190598365770761663451300173393886853252234681689031512321099534530316583490739043787200770322123469754747412509076722653031677078727972846476241319153698928498847554359662862823289794197318065306190393816704076742679521893127066159655954779938234458507730759256801683811992635740525142848249723415943292442648916633801109936076892504319818840217571903119104896704154566142564197881496982861457671007208698990604850800750975237058234479716484788769447159467957665819766620884880666246731600396581022640786710082198083942047770647375284096331295507636963788487864783600419015531668002304579979212294018230896158004124764633905455749510270309190222807931538410826739243705577855414714138462484397240531343869395219114453525601205237298333345496749396571167692790592042687223650997796671559265561205040049408816567119600168445678909352736182896271287760164730001011158423800933774697368642339409142286077672986473074040079669936058224429410009899701756171426960280016611326181013812475014464746264230302106218261685544224011650516083914615881110947676444986008380033516130248971834851309899350769363716873077229569130902057221276756075141959620464877219043813101566108148322025157454029933074788783291375262777239499215182535722501809027252003495441357286838271056426411256038032908302965236449232373507941947232022241919289444306656350773001980005657152400422960796496812073976829028799163741839654405069224365939369183968315618736768472570111439134243835115454066848649549763350706567143769513173227393770683030560809512502917473642635212626830678984623719295414326791030757756554836354515071310570601290639913517606992875695300003483903811826816143265947739561484461814285243584383498379075509717967426437009212772188805781314215507024749516293855299498224271518019649134979507104849601207670794959983675681365149619680092799254925555920292045373155593697690127516945662716814467398175508770066447964689157173557710576047572200852157548792470313737762015202806937778943621321334916422036123239658892990278488698391283901154512354677346696504176468514912099001602404093242071685508936247785713579473005911444288554651686275125570324356374144712837780915498864615635168040493292328246990293024977408762148475289708252151338727217064835988814432447744090700030798581057483596386593630745837445082914357822927464144096070389885115517971926401253496868659190014727048578751723014199541861914531130221293632128832537705860008339854463815648524927958249869269034667665178695460046077272754825142953712788926124110010888679732183422140751787116076061280955338732538776565276337895148873153935743951189181999245126280479507291272080799003040525554906795262756083199663924364336275958444870773855881491018979755449847241600774211063257650402849001335280418096997634759594323885085671343616974986102145430029375658020551714304563301676986605330251548313730487092471875326138633365632725690516376356306646478203179555396170529573634181843268462302712718166673237737018756185875132743215089045280462461503511984152302612226913959985251131503422962940013603767573000093754163924938956635356565875385129626767358674446696337334019708329731009021922690415468905063472496459209608195376292320684104703637519612203432169336634498012842401646482518778961273804222490630771485832830222442094317184373347290265344648541685341355320922157615694226142165185905839863246228777368348789148130527128172115710058407267806165810489228571489973976782019412602264717734461547371004301585914171251983863469200891078388322916619181028202442168038327172769285727320673380458924051127090393156558192698605039172139092084939306334357551387011182013217260843826125041330570016101799782042796889436551388178819971096693279994213000953351366373373756667245838847388962430353170692692899417965635345230099241036410910798254039606554185188315923591292669318117389125201803913133998571488526498510037538215090935343819736444484035404068332726323250863107615911992135769776460613845204539582715040350000356537030323059829791860840843369102058415607172928489773880592466792626773998757595788432868439139157162741523001626582361030750993784493101222016834033860883494099437543043720776213399093061338232529832589812236427179779433388969022867930678048128508797440287343440660008839575568120740999143392317714946232544975081352923508103734826368550530195915271961172689351774950859298170771852271407581289166218038543451387026630459736854868200094980730651902163804333741981637672782411990591033748780475003997825015745128316988243179527783363690807679593025744426795387544490603976578354989689230909779930053764973387140415346523812155095117480225357819810783155994922184583493225294819366878325984327994530212669039645887544132454690742756654265547905838203881433666941703664795911758778795992130270978435976979125958317318524477382506316576507440141712277775592281780936132934948743971390388332848471187782398404988804172611366141147990512982389628247525617619572504026818007381046295825382845726058754510702982176810511386989945471130828243321627593292988796773909846606358358072200543416630161975156522849475450933724038317339017136577716139004350515371075526478710537576405318116579173874737156711009761217599376367106496677486622453097854729779896313730025728132622081643704578628350927465533764213669700774866925006191104870386237279008836594584144098485813830273663241203216279004904584834638276380424990124090210977029646084211770087755464783685185612781983041624721623861316327004985482053889589779091391794847253181681062212539695957151724028331237164030838711045556679527829512270702623098138450576560943193295408759968396076358146148593573271318169380673481462195757888346996705534127678828810371289094583244327943745906688007528295916363237152279666556222653364774223281965120694353758527020024864161728478886296360675714286723677160193279242496685095443899362662178025484465355529905152876400985718652790624844873810530671683925220332560482765690537298788232553757974322509417902339066890816754651667422327989514677563900281868408429681393177818712480464485057810683470083923274357101131220888519280370045598270303604449932243912656214690702977304809673051095723574041337792084240978734939675478421954837209976858230237793204020595527449877979096093582902118672478522083474291239825710779424229406410797658612301830956178837327734775534241100454619418802582566901460985143399259156287712242280947029152154199151631149126758909376120043278616101181344728274387194256656079909279036639116516654627980158882814278843106606068738358709890486601131435194876219192761169725341556454676583319790944853620853666639230782587446787887715296860163939220362971611476207262192675865749728854925419531580701145637538952776463788722404147904747763058595115959564983875056659891027202289678669669441974969663348093988929740187260803762196591127834749707567955789138920567550157619462918515348421149862745238597955857787841881948592183331188701690535099631387171923255688765836365195863433469195426108413981746607609119223229297842394171629432207710035350083278019728727721692262197661432558527222076661560263720156989656668394293119350568098487682861416093296826324117111743061813055292051774907761473542207206134033911094172072391418930240865422955867115278958230608297594729883569370326019763937301872853473743998707773948123159897632731951403525178585581844083082669865899991681519292208691200490208465092627652221772671012453374542332867630668069199375800266293352502997783530711840704324177515429463219337046359966507909902811933896951774395211320378977963123732343902421170843822826756105650113921811081718037165547885359033311047606512413299244847498019498111478000981761533901779975400125507715849461889531854831327541703880935304281762092110294505548387347522993345660327481143526553839159406307785518061931860073287941632299448134736514358294925522898284418596340333828175251218638036420000425812626420171910229719746751953652568332058625773836779145440867969210344053316941036672954886007270287639287441420089847666053427005664891869928395444110972508356014935299473721024557210292290041532647469778619497297749571624349860073506984619539994689515669155983767229979432978730828619842225391634847605098738266866074716500554776680676211400335797491836058190452913942798976315395975226946270181165488721387469769082991956156653717842615560071680777224661837701649782848607565542400065115758903898175137643431141864024651472423202305665150123727532926757143682830189465917388589421323828930816186324325774171558368094495675752226925718020271308703118210833428614591038805473469554386892135991632271085916729241920643187479323713421115035879937022010149595547257803931918894899065899942855247963484394304295589541487363780192163259684621791639302690381741444834858904048367379389345734114160135674287515317949433469330444091354220861645588141136937939495834592257866554934021346819074882147475003796440610840468256440596625857902044850500459328223385684500552794549159230335470309941324647896785450544428468405972863552958714677099494091379842560393340277664468969091964545977184414710133982181125163989497759041424090516743304143207642251434376472627200118719892148851178279080542017835553982469148276469501548923983491068074993758398555865098204136100892781287743893602634735643998754870890585366622005499296186106602500031229292243404414367062981157564380139388326642393425463714386824490143251920393672650934931473592174777191744014450456142206071981484600153139147320628996354191807942895945101301849137154411500766353268702351671271955670655248094280185961740267618801087969599935573719635825883451759882260840111115077769022254832633414773155798110119738015583806170774740372704676058198995129483425165851467047740738782037037361538590371465423354397828611627132003256458798054314796251225043578983200091930043591210197708738231175508435861144468666597664773280883448344507608635674835845300208371975993932981300281734665096671631994105247947037183792531633342693516318420532997030243017737928172349586052225302962254187432342100418445729164971187142138749189381995773619931772909350933432354349876620692919161750252204016849293179907789753467136121979811480126427972276286375552573466894446376385415106722956635991545161831506109634456371528673038854268153691835928517082263681654828999275245980202897349493843105178908362712452342454315185066626892017614425929481343099108888491244787558038764637113179004479996305395562207072155398036556991509405627040041774787580359348923846575802737255090172681196129093431398418413500627806938140496177146842003405853872566316343454294149244695852256659162815975943501276803009204667696807445727924407376198533190350800358200724402604683252284013742862942335572649959182198027696343664477508244221507564211328572020904492739946996018771314005549246634416770540931307276834348875623516363106200683460600119712358175772663596373326168523199111667945493453234763835022250043482445341786411841138461738185378229519620003721455759131184350765552004536597839146192636375695384378286521379234908739672584419811671315122087907305127765132060965794541395733682238793704509323663077428394657013961716198504265941363925186864081939116680046269048932361128868021006137927941668866936415129888984947854100659064415604316613336531471634868516257058928387373693585309604387307710303678189885020548539383023478210286202518417926198749420254103023467147071569419693573072230352460573971403991876409297976018331074344786519591542397678008074929222063157738729089822826027271236685997068665569461036106354555138735894121919473280237310662178573743846015958068066304175230998219287167839946537389191839410011005524386009456758757784039467491367498558360249125560316950204872696256227011942536185498517897692622301178958950422006086407994244277024230628842462541086515293284003503229462773107640238759714967952202595875528630384448142273962244424289383776721729001329494573792689759866916192028011862111611984123680623578633940554893325233627991446140929443921196376598549231271599626023675456027670612261840496315125125072020090382783642512051910150280342227760362465346989587107965852804223800888923814823937861440076466135160524475587038629744550912105853487221977170326053458260496366278211502657509916635198056809791841122996705387532201909205204957233756419384693952100448992143980612402617355724465986312537597714511122645552169220568596360998996797467141356612661912941897507303525879809532247689598454630919884941334810082862177990203262721883290367401052939457554066119413611419528244723883683869538682550712015338261131136554919031977400312922145970202418570028598907526348923053841454202463610529343739721866012039577716084332767451693523127003859637826292859247078598554627915209982003618325565525191099021254143703313586203473351929105565499826756210670292666747082521499817071974209418635769597685511918262437482326422397226143036097191231927291507222977708656578767194207865218797075551739227455299818385725025719894587270305978329481622966265692332035019379096856950106784441212371743242598435909370134392992445118020139615166931419132716098877089986305842395499641536281244240564528998982215741999144811088126947241465176352656433515096079678769795278653456810942935782131695640579089833079224435098343887426221407757017995806201584089429541362436831698007715335523609163935436242359559270902592165755666875988904452983011514377596092938195903203907626391261573828933069565475770450260575223684976747747090356430770126989638969718885662624901325090806483559346018028144998696518277564443733278022714956971564266915304460349982039782221528126096152770110220806197432110808163335576748458559730100582844795753391330705991551996678836968595299135768324968435581341873715421733254637917502259628559661359788373867381654376204437107460405030651178241583660457229331977230048553594669707313621449900285453098901431123542494142067051172354077535223325177436132694242070264110707791340203691470974763248708285612722514746205905195523989218809331347940529539115251352396406347739853231751770524276508572056436187680698648149488549109286692920061692194359551568092493232191122953591635027304797723618312842923189499062965733560559385438652822255158646395052544196108777667207698342268435598778207293649068812270508785897898521749104683945412950225151428194108840027319021404586795990029025192143073206820514994719287849296851421780455473389835795118526575747752775599191620539581418532345691065753332707245851964264925170171297341104127569559733266487806246211518641011302224348050838251879474732823309076797196085138240557277213743259953114271604573053612756080793128200621838070193634949408401620192823853154307966364080572415834817940035729351414265169371461779622230167775070897712218979907353214642696354272270100684658574866148640628510593231444010333321659015079781033988704525452261638847850417843024559890885428378130296210954330248418556684736954852030905811676108125527614027362314587280328496867694864757224547889776758125880199761004714387675269948633771675671580444496550789635501314226225038590368867430034528636231541640809405080701814948428988297452208101041529275876986100601073651952061688904717265644223654584026764715305997257940477994572645928474157998832846349773433822022041205890811340993724447439125073970626594182659930875233093861888183482620837760690797873942495045735437296243394189517671314657211738205544946862423878286369593139646058808834654487590168823145705451964889174825323443266907967707794723365483063177872757233141099389095522776589447506733014085349955476378571177607817021011614678553229447862281974524294685562220602132407427470594044643938320390936235470325884729283107738514541103830778206628722717556732829824495586579468841422184848376246477279972133260836365170086211686103625233351553169776134598715556601102821148177246094365674546488913791681230686172234218768641662614274531071209987257101894265434557647340452340196492771149859684034115642413528788712876087392244872171214290170587850867322585988182182596383086502787154975195472448877035814561068217834883443808887162440757888830538685659654583724053929661149577280975783501769473765352910523801791965263890130805623517947032291260010273521281232067618948915854715167213483435037235731800771747928357406054902916964687382512942184868917209895114998376356343784005768258762917837879475892454670559845196758511001072370403333089558830157432930604678818936792385577340679268309378320413861405635362553095258521100478601732117532803066534475085806717026642525924003170680633770522103054686318939380937054231932122391497526080361522603304461969248024689600507565189404415680872940775661469730985121884640900558378691344879495121920151890131578572206565331606436353408852205937905766620239151773517230050487297068874486759263320190360666833292019150727540081887576383931433925211536362190086287962920258123536305031786113997523404641147442109163410921037459993779074774557219342117093590488727423267228295552856978359824173882807075926483089270191314544284174132653373082629710544694010988392674350405124685010560256769043283526784223369156721346516047113340857846442092943229991850562787108741265068487985340619719399099389173721342598063664301103920662255684791287159654271983353572438809726525042285554434566147137354900455461871664554397439256707289506018295889929779566080477980456635376527561917400665849403170999605965176197135212585852697335448841197559542465639313356674134777069026980947309400714048089091138808643911531634672890131093917955423070858679529444445039084146984054612243152424311906733000853477601582170457842496160571735190713014431430377914186832218584726559466638944036524633026441184258693185828209141737672217530180096058117725212229006255847729025829431327292836815876928003274364035001219275573460467409960107651306669560031758220888527176415369787603937119706361167449652018993053600512037905221277418507674900476204036209206391329869090893139181387739541353800760255456856267875278555331798459700164214710140091973243514375612886441707946549235078333876300265672138079295180275042857401133758367271511837949528684175945147446240260955793402451396237129776744840303244035431004169975720527587911574348533710866601348333970502761591680226328970732366232554850287389294847787387982844310649117782161196603642553717397512523233980073046794689604551720533983636629599086756819990415507018569049448240882807150995120617952891675706679088411908148656039968581415626425493784206645265878840816401994622046775051542401202973873597766931649228097139338759796833527597560911510035581369815674096740291298044212800078635733800655645657672374072136912479382650028806140580689355337792305502046827470566262764167328362128482036856106296840545537014917478177998900407350361054065168680375171929986624946761346310674233535045763712304637201234077835492593819748811388966483900761860530126114281757278278565554262001009269877038809591277105338096184757980517910614201543849047373352638123073387455814164720638851739504817062227457654141280085792470968264536120247227927043802040368000649469952227451662006976175300721011754621632467313723924649861877402763374543019864270454189665131733390535571075033770442479109698504102055099220097855173025854731561668703387150062529600473314884636569139163028461623875304011067965429566589885575931603376893187037873024089885687738718533007161650200428445203892701906652503578297227051010007381039323443243182346872454815239035668788274695694606829082329565089190340391158993493818900389556086943441976723941462464700096589136153274546912545978455308125364042855456725276109180050780211242206217569333477468032203363162502451740474198206276910009261734106257850060443275553894239942569215674793158457203078890233285974112083231358763758362932122146766983151927946575621834194747187086825720492120088692744278384576710741081334531606936153512322643460679841274394429025015406779258249799077826593453610476676667111110756886299641742458986415374826769383687321245831606307680854109130325356095766337016695939437424595181484845534578618020095895601977745972078496878453561642649808496177460082989807629241795199786369670980930090687301826830969862905224640069233256143699598695148213345366067178241868372699688665071292193541924778553114396212045139828478925585429139458633779609836468172927721724147199182906183583957942735328617801988689515317890868106846360177047062938559078558074513967153670588500559920599570863494231550318340018472446781809404134515170282864611240416373460538388826082710443526876023502029657641312239370276853969136220217334042566249523374801054132779569179082943411037637299205234011718583007848631856327223204993775054585878984273355073731275393450667719139680724327053049780325464805999179380610518445954056214736876800539881690519731123439842002256987406721115494135876104300949410103541251927776570403319552926670506594419401812183266517449759074203466039701518860632930635339986569540759900716104796948542914881374117042903324692309100976895731667373958819107245183745555104141169898516977868927842759154540095046452904319111585585853060140758737089745641877627480917686487844322639632610464479330447183958193046854084050459154548586035444189760032463465170109265129125442883501126450425966471958821878915308378349186542177542726772924318891473089482136059257332187250159514571181487383120602737382319220155353362071498051979114053320079686516933504572709847803779537497569431645644120377900428490097445193104810658620017175941904512635522498120477796882717692260859608098884966417230734466329292959744270340071321389963662071719745124614017179381710431756208511399142985849733418846220852105654535769135087349605925701888405672095125008536857364447111384216614042926226928123245818232194560744494614362654194701371023227017189482724250200786965767071117898117620857748182986184645883881107534275313937457078736740129644510651784093796963571966828716010352882337183708414462909142943903929050288923889227266804428639385807501860536105670662826281797623148658249309612878372443338029408769297786084878068068968858177881223388075756714391171160368602353632681414451573933646007095793303087362522871023172492706561736931740905048715335915031224557374201929267240905157718493204486237149661201343283223188245790508788422631670594978166401228702202917121657566827762376693590137148697206493811089087851780644663553359270748633498681107527013645642996426995760059487409364108694684701768365852315816632683768608109833813885885280726554203371242210540482904214410183394294075301568658423584285968220227772764576830285543701733800544132742714490969128367617356648460215019026293105802122210894284697186803619869359178754028061557934723167616895049541404762446280295763968355643083937240965860319189784635476845262417549135818617072516928266400124676235446530060091353224951635158044403483229086714114307851329078602988689520674814220369396537703376235560366141712738867885556375448818182829504827181704047446455655661271103382362472094131506706121323981936918864193740265207621595750839485389700573530319643126101013619862758233103422732880334782150875805600610510303427920243535226321371202750124012254589704046526928823570173645307802124141872992928887819452173263579073986143208603238976777246736396248277238348531961410267945908307046827822564563222755737965592897753779008714060666286292841160193236827924576704397972617488050109298564301352038337708773705107377935884878288105972199754802183979296223680434779600006562693802312306410837616836503110296282281197534586388285227008889836347278279436861223056671538522811926858299522065326566913490667348784098281561979704223461931369818478910940645693203665042645289230499023500825799129738306950599666147195420046357267805082709929095071355226195156955880845800933007679708634618007262634980398351050602048676360499457729691075010891185178144014194631286268600242292687853903610284464526655846682768359042639516428751778000433962574832414740879041020033400843518042196567053732553680203853019701084719669830015492924758819309179190019697851815984241731986614753118305590765368886279195440637778072421888495983950550054191987359267069527402822388557682988802344096770450511085414145910937752310160010358837068260314418363618435845172027870526958440712911199263138928935175892416850708187873571348371678509180627719318366862039816399838097915981210630604323320098702171772501517631542749244951516718769347163596094823335739905567795538196147035782340690943931008874447206491857253634700278585811959615456897375291031204714816410584061458719421866052129387819039441272335465164213090774740157847402394062602015140433171535141716621684731822761117597596586898927052333075695484736825651055797086585959226917112457319167067355542378665185025670174251609731462169113707733230877575473762862234136834720256840662804422788996275757896011238460118736075255473048616261914507263085573476919051383612100745693902337449819466823141318286502381743677458399069367974796995537952679977699196324609389015796705214373461934574757958177907520158241638651205916718643504997321004782449124059281484006190166094211268600254098846859339758300568400529006581457687386827801958813086751495809889500327977323363576697740039836336055518332895079147277782892459483938432195524407415426036437564045363873153342432591374740746859642953523228310168734585142117457337656374663290457278117349262829016206064797108427952762944249235649055394667161379413740343010207083158357388242510539956973261463053802146827906267050113532857045831531821763617159191547408392701345457107385347977147631072617115410101032758279244209123446109248501201520580888539985710331251026248228956054188130094366600016820027496743321993127036022190655688805151432067109531110038130390006824812981288284639338159704655043815768571954185751648103191795275642113002050335848865274929028221534071476087972072783378052734755447454339198373682350463933401740763133338539946242321364109144908269955263278870664841075866586360776804145351924219015201904722092991509028113691642271565925539337604299299996753407820006395791061613294475676213634334319732568937134747565429112205333017322538534164807438618984800061192846942432717247887617638385910491414615093477698738105941005870508832360775899966554248427063911846823149045168637229700718629698897087566085759122632688659025613616193305596473047491644871930400272274295627900553279282250030652242617993668200383332822069267948349345360685070199602702986904493515968876555947000082413243137375555523107448414084470891590390584849492554087705308728788053266187641346570015346309342715761596288901213349264897788908640088395218123844567368357033365068706444980559575594508793797193070377295184540192639013273154321895392066009265714773092479522105949022961517999402895816231156734900725293400786226976014365062885893462893336311140745214565262899931861398393448265790444186218058740855336792777852460916586222983736304369146782206264418236712727194963180872367271588192744828824279116637680267304772957132527624155218991570491600427536561422512960893059446393593479409274153662842693130434650985246130689145341382284863064627951448465298158632304484169997827387143339410806370560782004339072495247327670565379678158785587594338795122869810412500811369060161361957577999828362407277166962351398753268966491050048584785064609810877807567787278073530939173016500954926105557697463110409174993266261846795594093357999844710667934948425193677020788324815138422457433136893323655558243524336337888755930655918706386481539910904812903604209207791896098264702529452903367607537403556815703638119537799857354238714111696422348654768723496610016437066037637101892307333582727853227196006335961705516052559558061556859375822629006125408439937193270982603806302417663709796489656557914899197046225083457608879209866932600940175314728179984190318405180250365624305568543091689305667971915906069331043437842106362552395340404751310854759532076141203509320339403152487860758268014220444256466864434755361409107371042130563657519799978915526859735278025390874389721226524894283941946543651374270380056411543949726966309184611674188908702565121541923844911727242977985858507608308500200399151813836739676905429165327727905032802123600318626918325507318230638472112044900924086059323848570490224406400562732838711547924950141012723885940515214517943420760030682241136566425266973553186888935449946474022487290383891817991894765567790115520751366034840466556439744337106468115338506180895217851756683171466799213904209610370423612405306776486839243398363229501962686493647633900475581610355158171198190380217841137727729738841442769240854979606177597787965174765831409544969451658440385734660701704248335879842607998127915471936349487359742192993564084347801798004036764241035981457180868078095070595721086746941757023440635167134370360880551797631534909355436178776297660325324454994080669036811840148332476434678540241329432005450905882703687936650070447618789514744530082718698987023498539301100720658645540971672054042635187407485040224864252909407556442206344745350697000895647841875214986268154842835235397290601342834406461477524656450816011375469556543217226525177678056406209226007670754081163181088415431639773869848752844442632065149336529881110483983339255786073639099073639628333620520605618517718592733877370573595842876052988941939889843341253766504644672139434964030951089960766021743043818876431310392396298450845986003033970587789450223805935278686189928243651302596236330208937774590554320415943096893154204647729107394953711706388041707069631659520059547575862976368805740672815458994383376314384629384572285861438848235206184945571831147790257776822286050650221195287960614491033599513891324187852963776128017191715330096715638208611100261524011641132076124280543786926780067052829781028439172327202665904742049413098220880092089642339675903313202895355886595978741146608212622266388396184155361688448195126850822825497892181248847480957337610622346169588010776876855339096414421651447489444864208100501612513513842624666573152256905898492089122305524425045477773237395625468981522450015279317210188538027286198712310637354019294477471596128951530327306115463117862039264325730566765777537735299258522059114899840328142742109962806099732038502950581241048133294797265929034294832238960411348315330214888669622431676677179266569977061057923691842158123926958011067829296601140771616677472610758421086194127685103926577640364075177534383121264167032920042893891607160188569448366562635867755947964855112292115578920451875692794009199968291665290559164887814646779543782870162647816685566933617961462420732377451642140846914015294091961176201329838827577330279924840578918031836017776823418207399431711140975801236748882792701511326349769053194105807447951433721324320816323702466740980064475335678367508011442665927213635416219690164774419051249774982119007495151630157277946526043198607719637684954525577492027846693865742584530138273715430353215654518358533305719084817649350958319604771988552566973204803528106781804365621671053670393683320155795874544393811104675003056863768971421702465203974853417666067569327979925988562534144386407381764149999927146849205113459663468883918289114267771268470228820483215570232895031030362010266112233871525580829660605441456950596644158149082166496039850883692045801657171299941918296779707516049865826578236148454373409369535560634961042756250398037642061110687371382137829789063538114062419455914414595513258807618271334453953045633494657746002005982921950728398251481331837804933471216137942145119845226358447686020943760668307387576094644020052316778207986353010156192779187417783126785214492587024469359885012857126358625661740790107128057069041178588410600995972748661482978344438452656379498942678763891771435260226199463062009476581010455098503502595212223288912884886106082069722281327629749576734032955637986796449731803720459330633772404953562240235660158679166479656993839152243723330629471134493780471553228514955990283721388748082091874194621570372301249026197526465896451154384050768964657145107419788864807797228512628657432340175050536977782414913635105087170087774741366271351776309865405554506566888110159495697466131287228268378547890018602752006146354844352660955307369160175729307904780104294311564177744548825441719731757753546215340247235687195724909212126458914604044669454631098917560234211470263674980775321958239412304433561395544110246122263403170380694321995387587566791880276663803103382590782559754438364329246172875350775832565778753425306872552284801150639109476012382611919079593820724537184575230092034743340927585003427978933254567757292082181173839829820299649357240397152123493001077934618575677211654479732757677850627672391863096938120098324836918127486474984456258575654919134918581881241442550289849240975178252108503093229893904825122505433267059347561629135225067794602633097425295385516619161936859466950076120312892178606763647553895923246252347703213490403612940230098532257125451444676704053007339784666782470469912204656710835153308721488779159951970917555609448965142682196297846882496610951018854408677710253764879095344008893871230444765156133220069981172215475397702844174125988603064109744603060477229221822655473408202804174572584568147164532385957441423412171352626843306799342206291081196180854139604449833164780713650195794471400274945826891111516184058699982319197135796786479560214711238036867687866158498324269737065813081238145456128037614478621317105451427576441418823454769721083180215444554217501770609213157489012144956691846768771209897987898411517866240480691099548612987673215355763285517533427383674173952064468521441342455304987226852544500988200015481754291472156851511312225657310785717187330266173062349391606746895607222013002669310346425677891191200130467639464802842994916278034915260096289672728336885809103563091092901664903040304149552799982418445292193073038031254812903467390925749055777776471895963113109051231782746208755942811129986563254992553358353139120345152599186174044264894922193359475211207213497786113968476565017996634157107923729541671312351259266299436512364669372333751014497215101886293361479381721355705478420489474704536539407174958941477461774906188347708118544533679587601403887593732838824673402122544022735745452020864122879099840721494101531345934155317326040455441013480169868873854534894963698090410937379215846100165088956955923847134791914518295891970764856625753548219589440940847177709348679656869483429309442903812763726155861098932624689940913437386294071481404169365370402365213640488618561303917004665468465952280795500019894147805113375897671769284486377317903132247872399632856344349297205219690462390282001291540943571571409568074492199313347718747293292546914654016026435698726752561036032051565507443953931480467923944102316852744219043766081348940911934268207724627089186863098703719470688567378947208614459691347920905691618130620577256889882430525467306963931757287087325494282091700424596913214014001028782981110020973769825686505136573014636605090825950839504350143562928267301220867991212377090468618072394146059403347576524921729646289085607800326825213637263029449628385778736575986683098174907166050343412629501268911448223191573325224659456451507216372822944453718210180617590591262253231296453273624485313037899689000202701451070136862909640141733997205948983637882030845102288292433070927187149878335375251923879094405408793787110738813065904497961776170449695935882166136442363691122959947996485216620438318032414054162657212132758503258762571962525648761585319671801826786134745446661650753362922951417275156604485868030942282643824945631786725093326615614402428844799701631360574013841298537734905400377816867073170404553964035996636845105198455574649690124113930329732896546168787581355802773646279588146942312935735084064793688814040010390174333929197026319400199388426993974892507779302825811085760948076897792843332918800008682330286683457120139672891166174774908514927173892428794749405860755699141413929971139792603475093283038341714031554245459958779202350924430693281286042725514531191535922122148819422861021925721562844973792357872298120224284069642941070602517270769442384198819519237119873991012667619950601243041515911533704228661023926125464374233514655238462418301058344842026851946616591175793667990554467401515980774675092294091290643280446215417707900004895608448927778072572528132213024609551932269231287297674526536260346255733155844306669460315368321386658621650603874164595680890683761354582861858865092023676611706032286438486744955114108639816647390923282335621246034870276409422356165789214218443756335598488654192572123545212633507385081892496528677659768289907008135416049774256230636993893919358160209933216711468385632724984567219530188415619080597431087766537848642262513522482013845419165002022668733637224948258106101077991340335178162325704418252604193772757901130413641333095219655119151610931124551539298043511777238978513107261605467274410848855545962280812560245205995624283674779481283007211912309463022284941967907487088996403880666325088890224962796124547202906193796083702530994889788853995844376201069634991384095205181983102472445869294027292820271424419239158287900996368324652191699745271078513651612008738802070907346756335565116822469492629604365407216767859399754148891897492887368717685750656002541501780728452007034335644545880648691654430962584352263952278997315988870003499343556651566114749613660653712926805677223162685048065464604894610896313968661425457246208134939359773402981341129136986937782631167528820448708016175225269069586484582072185908591441003511327342040445879070299218064648207551715130073051206011954124362229111651925549497441185566562176578834731423896431865981362180472971844954044934411591762491016606463231714180882139520359066429416139748188966899172986313088367218762443033678979234518210162733495584740587987364956187491394542242952607284730163789795740139792473620211686646023816293408446562495075457445954058655522135037796318881301508766568800375001740665046911538536128985764151988653780945373771414888977701817598307154612060564303635087627163588452996771653459316226248340298134092681174494778656309981992892452089832684969920410791708245148671498746180921638045533697484917939240064045489902953436728070030516816615117048478145302491670740760775800451822520232818695259640402514869638485569359221023526391548637379462952932985150121677600187632845132304457029536678473192809637411362689815519051916484234666077745981135177214789494753391112135755282834233712971290208262620574963877010146226983706246990119976659935769730272764317120920795029558511662412240409848595936691920984519263076047491990556812345051612373096657829483777194396997016151269509759227674590899516309546578302495515801615222169432752593666232986818700777337196220286437939605147374017931544645485397809201554063973004178873877011166467942065927509436451849475126652875919371511196924327336605265090654178190785454932231187687272969367073561866110761333233458194936374024595019099812552741119182406856426880049452491387381007288852340473176466925665548561244649719717055266974084854748116359457707328266049380954672585784921256868484318641409029730374958298710711916783977741479448473399451139728609486187793404290442323577065631061735789148252869760446091440881464821567523608085371919454642725381389613227664347702612282325805586680895208400509649217315016730246005393117541483607637915115924585337969329502224669053401806446903307163001604941806494216527436566182381991747972524024185471576679273801744200426339841759273942654413093355543851354976242848327889105277270663788902274664521731350682263507303963778366853599786897691000247853971556400284048787052870768862198852335890398275385909719302833498485787221096384622185470803298869473322925665819366129751186918393698999059488573722592401609170369282450347766453138232345034572290211956286766617408456027577005498996970122799873483082917125653861362432505008829610407841381490600921035617976695934248236750308138478087128586698746034464906393287671275149225071048516656749160807223901295571328551924952628264572030165357168732295524369842848411440325317877538576910062092551141618449485175809925755366573190274204477301945259438977186399769089982917835547288446302223524296512046698101029502551239033829119203608340341579434765074367663755326663310080912456957189492453684636120568755982890502335279746297334841979238942797110855262076753595396169633928828364330586213521188770188330429004734893763647131003813191085009928627496906429883812726156940786008745892778520703896909304144995064100133151069505288392387962253045543531806045059596458386209607193259384614446383545041991806803997243742608811618025406010435378711453500588265597370172244586909331946818650414465347514799983523240779896412130672057592640315549536952592492339240629099986118303788370985034216399230299832696265670891509625787433940545078648015096857465076110054555900104023995114045664556309694245344099425676338453164117115116224845884169558887424872438408772579774097740179876554946724433246506940382661393684585147791516888346244756530530287361929363177310820980001821161567973872671979040464198989888035382915322658650967104705107031871667099932924821804461531121017197138163372735489490339062540840149495753788886184185379742007080081628524642083379060279192182548577449019377661444328818318818015546650606907546955607571495762363871830388502924433865725723790718716369336761995794760037884247047380528289390797797312004170505344644405442908442911986395665563776337547064083128400506663472745806684871860496967338418949110057588187587905810045408029427942910948995740553366149378573732177762621937966223617046729011368669946727342096190593899291249703189386549210368725585467235957665412913210935831944370975132491207872384944298802933770656135744641189154580939315446882342947676768804778381011191378924654264570947025500703399028216810067562542840487750802280590046758263282493447452082614871282500716972965224786680381751446043288048730056889726226038947786493297932952317625889682255570484951968540039016079216142433910861644331423342973653478555557460581625283952790388150657844547274743530185508515233762911867974994674060271600202081766314719877335532074912520287868387466625947848077830928794187209822444336765701744850788608629633117957524995464934295764166870878782729306376252735095482088387958241730031457489150481351385796986182779458146270053760216340900761324299845743900959800293923887099519810561253603929690930785142681843376765647808015023795846223408889336106320983887620844462399742586629424949653318361655063698637723949004110237458472205368273275703994327883263017470562612369418127748452276465643237807703964359178266330004779668977208409674836230277824302171353544392389787351276053792358676681290644762658151370248269459281887170400863864961820576344293147668511981636702627296981299106490662386484401463534402451502148884847789808558672210604381392784422487154878857028330132610813775689360740050102269703037835509290614888251125653284320722003615921100094265142883878932984730805361644399568690714667101410470047781044107977914357406193421416704496897050488923872302007111117622011340143614962716923595004469462077067164170189488529155143625208601510010357523334500805484427569344688132211711025411889035067099346595266035273012271664507053040225291296060896578603655050917538570494642416117095538801237698595013024436808852493405730600001858351586013776323536765022539650388352447453160297231233512813839181797899365279334954212516947282287793388897752909136574333893953558341438765052099058824752391939724698680739622641685359614995436396216950867248204748953873634727507621144308010653555039398577717060055645038179755099958662534053597605372085476021185364563064727735859256381352650855265177101418135673521727159484895917334367355916035671132849009438968980627314175281431222302675468861534780219759985511999950857197138691477771480938427432935853203011824077025190789956712696570462710315223808518783005801525408353232922990527914262223068045169469203190175973637752379718314238544063823869542131215454026628281529454705664764418344347254928506726786208429378334257336943350087230077810147934338944946938885927587633055664325818878880815039164678398545381219607103212423927605391257282088005280391880689009698038625799277484399129571271113434193924384124767710100906042388586178130771616650588919345619984365200519046690714881523474592424450645143439149662279828604908373311309230692286236877848539958268413530563376074885825889909606559101193529411240507043686681855466630102316773814103475654228357616442537281382519474232166171044351591234533138640867926445107164059076270304916569682948872651698083307573658659295156119225768689100217670358601994686574097939004264062858092305045370866629330548597446707992670668906868048897060547126559550783783639185689763490244387654054957055283016703832482371270072412821238582879725874334130754762351048312818479271925849179192542294600966361797623654298556091419956341706092912944205056069954285778428524717813637368859493614736362694298537525270114177099526220265507183860463408506479552114001388760001055988617261463035327050087097002691449293131861995611564184494878361347914165301403439144368341060887211129950657593558922173176811962287521044416399337821816158667554891221006816474266030811354137958575794999315789767498921477490406870470636978160956530096496936245964954342133597356464336403623437045579863704493429932816831746355611857748386638241827214143203238400103030613184195305878997113929003923427817097262826705619102825430700816916326915275689523834691883261928535099191772166866707133388095712064738496674836873780055342920438840330287420483450913098479340041488232181774834234335224395147253761396081761007133296500060451410084713251110527485365962535629016296967462807832447077827767452825072853796882154345736640507820740230501999710938445847715114718672341190789164068193131601326628797096445188433952669942564573544342691975018011396598595845256340793731499968721141551465442769073601855831286810594657632087490240437891527058234305480822204256073783378858208636952115030994089898944156806536852160289921898588251350628429216912193330995348004564968906370990865746088068785113315206120999138891869855984099359956498307629109349989942217089348375915637237849143719245972103923152751457036676867382057885386275146816094061117205212063193813131100293525176901879442078860098651534865447583978478289646012597505184724457249438089464346311353938665573276019649741105515255425458946592530744265752102528370328943089041452655041020442468808400191009942927191113394798757419194291219825088936915051877233325945065082151005190058826344007239584940073429853355948531550467127665682289061950063416946400277584741856873075077390533559739219414308026066846491677445336216719495982345434922749606788033671128353040728116646570198888556292790605012891530498329433909904072012756040164952812779283143173520655667368883374800489308266345652943181895954002104480810693746708991539697095466369001791916582700552613085154732832838389688936314503839286417995763041597660111852759783409473588511836095283156086046681101083158814045005755233308322805948391582789337005884507159349963798560462591886740990156081670904520585800402387996610459767833024790315654761821331240258144448787278094191390100395866502448160725792161988431414912972912529534351550518375105397992317902180400588974382744441066207300776518686188119780697728269039839669267457712575524290911336708353943209927788933865642753423749569719703195858819657130884721120728804807210296770501135151031793457100397520302813965217658877776467348700083807055800520087813029512465291604173884733305282298158315817228156183392976799218424899657712701347609387979960618623018200417162296956569816191146706302739048012269737223811631807924313394163647975097009063976467921742631478791748166448946877997989873464683678227338993261184405670632415676208175667086784874435812452143286335453802498296308446367998032691889475943625086127121650390175618447703332307151547142550534182561246864068403699952064075121645091639540194935585329152238000685139641099568534673531394512978015211180750785771961090870588758890257060443682583938512425468471960431158475248337231142318757457837466786345584774410241044070785682660957828571363785942701982063252605977296262985352511774539043104620131903133673849379563470368799745019571224193157855022731346289451283823432319965627875156794894656150442270545162073236311747601502166778066217622161445539198964701477956417828766787282241838996091869866127709702704035613236289490185741039077112468338112314180320891452741435225742455508690383107515970847133337752432253055379492900596618569676085033997651536605840786553995219872023032139586986357719176109512076767704072385610011232430464303621351664737791885433343710945565168052048395214851746332780179081323628154332222088526699719038783076412461189350550969624513980342865765534040641891344423335507048799316154986988225730868609410203096103724220553492210251903228997164687763391456771164629936386797385824183926683917715696173747006069799488592610883951434390858107361413205631864231288317354964030997928555273677704953438361511089890948414897424034453481812669100956097673012788072118147905410563316508879670045345103301562874273875452695079856093954586088071490135644456675673670918438567937878345748446419227021197964792535363906598735604836749535320776567514137170547228527035007691739304179203856824464759845673856882697959018777347741898198621773410007469286799827516221488202073915732684685945977986013391000019341908214476491254437598117839893078353947736408846760060110950720191481026686692044718800749231889071734036556097625593110881520049205240059385285816509047451419939669449784697016398050935062053581086525123350636588350130013521202402772007579472975409435761516537776834053135597304009808822887276167814554376437009718128577653223758345907698669191979240395798406602137514219349356330181662666926320160217484909104577866947037542804550573317233491404629710794828056694035315092183790415696190724220827149106126279583009520484194010981918266665969212300777726420251679693833518399928124563464216761582321726804401749871920496939417248417056751629155729218351536819058252904785349087930107475268700026107596730216919028216937062617639317000948756505463580817727491866207029158138676295120286023504730184531559157036804996055362769621965420348631410729621714811296901848288028178024861414468742343567495932188629154820932946735415237698988961720752480688793273003585860419544474073875709716013556160703169497100535346263820646034139589016038177116307699146879115999198834864592322397170683767306899375456187750535706593497206691760696639913420389544541204354275865185241761455650234200508745761579945931279350183399760823741971673327444592459112052569380181737518442018779806996180727283068475808334519044991301216076053205887153634266200769479935233401448911611098956801137033242709398239705637584567008641971253468773962169970475029165766169882758349173949362830145112799346565330095672770885012665734336351599342561880123801009106879573564996034669601966825279224717274599890414114247361747764399074108059142387626358007313751196994803821786587856897380684550229497821117166018122111037123859928371602319325525088924205198059527143700363599184765421493757960271173229889191008517738816246407950516911638167549216043692914933507889260267295216690066584968737016188315030448949848071872453055248898068533128146723224792963919194466834339124792705440963907672851786677436429459812532336218566921660583331153397077899040649801480630544220414807962157459262886999400272161312150559064828010723875675161761874970478073889860145295948527339853478866907289604317215668856168048327161462531627623158036108364096744943387388927804523945518847400141463246086425535064552886516862179328818092640801612735820586799528461293082112326406233838710153995831767829915147751522807423066635770139107526529776833748746633471145318131426761219309139810189431742346197347087559996446701720488528643666564813857828353570582624601762568083436327421688423255271728689214745389271139945995266924256503232633066142224401895385063355172963861392580637048217708419376222107163805793913148138151418109071147163915624627779444558973546836288063887969211025181444727026704063875566543808437327486652870097784660683734079163637646244925028632492729032948601406086667446307760880270198132216672492583234317624181416597380330414335122243745486167273248845377313276427813184539715477015994161187884619502583798335146774495133703567349846167219841371789097130127955448671250927944730996689294535952194318236980776772053932824591699273635990896105265732201069196742856743127464299914807822412270473102019598975440267272294239594463439801029834043723225169142245880696129782837322451043094093722560150631342621935722831944152571308627223136500719370185915191838872266119057271706233010616456741404942180584394011070006929044630115565476282895413906314239191352176659233554406498826716099976409451261306333306103797336413359467051872933011134980157768937121338964206996064409296413756339269681060487457286430044309320063666724343853314017043063649384811306823477018513244594631862559651577150291485781425432745100797612492245598254843682342356470561621538132406887832834074306573860158121348536996603943913632734671704604688976086996415549620610348249271399011020600104742313796040837165801621356325797887053491016918662547382897027878023273370537535193175283603949997870101127289179024123058476864349099525484299146571029852864037797496254987738793366223765105207855056667173161864634261429349907772792062941568778074244655244967956599953756864678861822561353284177122720264914181455450263981461310069120392088342672132600843957726502213424732946224050029797380357269383396821522968589203111022712072167275349882503706425744154543672455329533266642689577135268065264531011715434749484211672789675121687038821343301931202228405681331217830104190591113951462248750186128724255034152859962538177702150314354863136742790758387396050099374382688001833821657938896334880303861465411396406371896432142173789701377992542471382058821689794122758616864476503774289832802590883003357670455273673799490562532294210049047369209490360276749075949659831374285151912022798563512280950665606366356796298383620250044202535593798646073899370681357045791284787824756794726470257361085094285140507607703212170987097168753672029716487967500333622115722094721414321676609227827745356624705303281644166193388761521485963968141943409853867469112167350432640807786514371173053676917466028413088556796694362136271200661249957685508167728574497255970230993605541194931180959260385187286545623479421371132514890140636301846695115359449668532878940159668178201983382534600634504590611551477655732530716260265889409298459604156761470569446436095552125433529375317698714704585896352674037353915292589340330245555220727639007763081429951632422931964139511436629287140922260485869293594030107107783099204705888110638451362445226805242956280430823472487386089914024333027481462697935782232772395986489459438565320605337764198201698725247865190483613349529378251317006329718153158187737187683232447678284146454997350847952980334139603583584209374679340377493176738660707631634818410382546705292397681272544560510978559127061662348825170743677194462877478025294102971465190012046797555648533735903844029253951177755524639662054077210184872628858444540086446486216908766148459974093438671053804127550215072304509645221608658684936894228023170068261023572413557366197739185315291347853065464308597860627622223896965438074202750836669693814149769246320566882956489142446305425665115489407536633137036132095710044565969657176678069343892432203512956881056006436551271916580779263502442725809001434383993435255057672808523732065576253913541094870912498866220511090768650808384081924934177527198055618199929661594013151838497033365195238373372019497182947360363245714991857563380417612088108743709232997884514081090981011741111708760672178277124092952638216180422842315084778295495364727931138270118791600737556274393877583941490052544346881807482837686920919586172199681256677526097897385744368442526952367209676823311667868602383184140302972080117713562367761691380996977291779764410293853096289550543074191784846758988316503685516334907886300467537397668804002713079760081862582433819532412749253263145577007313185321524021261611039796078693132083035483246642074288796370180204553573626405855364510551418511490611010805006928919931568279225025427245218891055373540097288387663704042220343115567151404929105637871807018872249919729048896257092936496132254809959548053933776089622662703189458672824938413554209763266185673617723405192492557465644473250035090185636998945878558689422120907696119515220392899320897149621109921585466441762508253977666086287706934884359746539614179914660692180189679844157990588738827533574644232333971244516116766752619442449506286811858145685247402588715977428964294585883243504575470547627718362958669622272043161926263496431342047677797849400045726808097240013704571057208775098991715260290314727308637266314954254227420680995874931049997922567128402576089536612404315036313771021886471618145236010016434041554130853726262346015166067432594304113243717255747355371716508850199894025296871675065365403235839592851366826689703974284149692387194467765429455115320676084250540162428291014490308990774397686731703818646278455523150423052743053850227928850254859096146464156242854525497985173327113100082962904341945038106924240199495045324553409808499715286055117584332577144864255863023560220177057688660136494994626330561060504217542025049206596599129199052213404074019479947204054340411171410481149677836196149175680328361221377492819366476988478078509033392804207869815514547159356413087308201322816823470909990007633321224092638475271362813921109477500388643958967517176816842487654403765832715990404000083378175970334555035264285491719916017129615943253235271403932822177745344516003853865586163666056694567777098931206075290251667097023236996998039986555009841836662338951491264272583762678037307025871460252907007554694712843887737966618139293572490585404796684278683492652983254132606388825421338841860082790299733868957374574912567736603619658948473445005404819756391259930393395162980893291080013225583687644643350936029805279787254800602945392057786459687063206382894386102879129132733996961829182467811376506644214130460551042995743534299882573329243053298820665867710228436214917526013737134490727753641442716949156041251852463815076497204370656079094530720460624362934312033961723015464273463029738932041347767514442539020980784629544984310403276433805893271194701694670658012764598696126347751825588563407440010052915992667644252123290124762351619145961100186705594031674677712654270585922451407893050667901328985325040910168891458051155508318933623713439453103440528769529922917135586267663300758612453052748373072246753392115046519494023463133664396114939385343361116112181369179616471431874639040403143909720527494440724005939470129568364988048937373324768181039786418653670792690511271131037710274119383980850184892556455813970339502060178379196378860016251271319937531025932337937787574305988758511141164220637901511251542520650859463480798704302671884457241595479011577730180261402606178432760316811827198474418853484004871822514023422234341472431519966790081893017372618795242667461576617151670182034734167542944075459903514264033877126630492799220599423153184180290715240408831489995092032577436714018576156656399056214134964672447986428115463993346268976103648991836961565420764574253425216677718732130938740409857534348910499841718870483291223101178536732491862958926575132776456675671926155777968140782395733161931007729673462537483065521378690322414646795518113176664053510737042447689048064147929995596118237521011724115587859164046591207452573105529737826298720179627004306782676549855369149481555275452986038897509860787430152589222725373484488127488198429363100881773291194456851852161350924106003834300877913294707506692791398394058248533502112088342345203455029009912381453227109249207418473350931963122801911485022499743079479077292621886036653425893396681768781418267551103774136616182451211377159253617092790439994547201151372546446532989122776940942658155495447632965120587522856881491695971669037808614026540021096836425025450622505159749006501309031564553474425287730420356320092899010765239631156480247773872843377567973479196960565879758568041153503170976010434370705811747473159984014479530129081637226569201750311348382476729111585166794278616894555416428609748112306942013345478407177984339124542503764675070923992799148465994953853496748559454479751361970110299554876750915100391985837304383749424305386539932891825262991107691308443876672230350977448154400518718816667435620965620909310678505369150186165714222630301183670825713682697763439711140619562104596727445338313570383377172630530393446934845048335101882995724605683810744760844638834573424589284646489863311607508606030156202052239562085935137341350066808041526890118111239452754736560361934209116126453749975708551528838821210943752403217772271604377061707060517361376104286385039183201893615189978381236419452899137902413557260616363904747123594672841867665343139504559537031514202110263287708428630005488208589616041636264465356024918617322003574268943680724763903393011516442084139500270105625441933839921778417396824312918089792129881675564587786778592572524051872819534030498723564735157864997154435315631609149755467144490632866722399786521750256752081437178227150894909106133944797801650445902849409959191032107794742447036321627724463504220371218809444872152806422310485524074922992781307218593983894407021509990354848928686499308284963925282696806155680106149476252456216785031152892349405894894237476309896836466847582347053744279505671920321676842581753309379877332378568075378885115389260714627020488254008805866179132944845256475114674227371699559729117445512308218250962695366546349336648717293373139449085478556145391896203461409331981903082155333027289764557856276228507942839235294577249952852825535554748272911115574190902753873477087784924115818366529582503501884536052634396862820538642435225008074701072161813089508092359862563032980221223024543701961502342341007101070491286838921093371522655114639035787392425081514037457798260437188608100363872405859329425799840675571604028253366880889552519994649888470167594449777073661696004125815036887817741157077691181221361181683130386613935673233371429409005944227513577524799229020927731525927335803286748283351151277124092331906170355579908085534046251672872516457314860629569901666055818021197170448860262430284019623575116115907837623143878331145356439422929942286832773276285027689441973768180782149857280366278573659138684443103059893920170915899875580455996580823520787430552707140531242563316125156962310850378382622588894563546701727163736899966630190270985605610924517121890980656622525651579955726129882298200781893984841787017253401052375942805322121216926425725234819885262160893953573539015896665823584487286144509779638028697780081883915336246630252963552563214598739285679112793537210887411194242377473483687396808152955276385752430420975698810239515075234211844699756794260776793523574976022511266631497362081416735619445355580693734766522480224815143008527457418669802916683811759442651244622884139028551945048086005817587525252783145107365755877243863709903658749813925076608299419590978889376226008125543374563136360953192846130360229803500737505558243903489264743087689332256100921509353461210801075193420454475524784317698783811749986248061635044853143675099678729693977974497725888806273014208701459738710294280577604946123529414452469865915458562039788501575918905152390185091901805717236552005906980798209390110863920746643285883145028906068385932719193004507743784042171048957947648144319467267669193633879184152546452725471545534440524295376609547501714074238093331929114330931930712825868456104889569244403353722148432130854514825833430101183299736268647045683496168020617985365784267920042264897312315360041342674834923420156987882151680114852287006355100075673896508164604670399546894327796942249853042864922050029720914947421191704922963723391397304230348904786503901095054809794490336838640576414644775925025505697951779383760322506555385689411887192752360969650825153800115757872209639385631836086462649611862661684973641430793635696304412430208311260285421609987394588681946810040955482658359201530575314419695823200155832367364706053911705366214483774938675422643331315664016916252255512668342324618145536355883018795076364026174759810093932824427463239624309295724529452519736579820526828945618684387404577690155060695527296814419182254754127059521719600054395841017464841016440155726073620751066626941789484969180980803920620417123283898099438638941515195588120559878916081822646446490452602206943031603723988159055836381976097211834223854535500454936771543776265905825830963125484366983684312713579928042178640589642396105993130868709960831965829022918825019714609130758301593826954573153050524085943826520719412247066112179407649772996291496181719732118571410591633880657172580274828226448750689523317359953528828562749767994234676508830632727439117609638384271335953491910791992309272427294838524759351377168737648117473083739066210383473163784071717200066267608569801877149838102174884891798350595877446270656707194546972643344235874405981728966426251784724822403473032582396562336942027870221667670224538333710156731399454728225182399530098312860643794483749329683084980009548350358081428819086961477205696824127473231804995907320456663604007670447741784349634475416639558363121504309894962412855672339911347362592611102415050825145068891528879573821386132590130851558259838537056601850883020025429371072316603466128386299260760721898135069324873178866831036264530480617560119934517343711186143702523805525938186749648181587831610687657876182610505500753315712842591663032506706613432190661517165475577372334717541729787184840124550785687201480225477506479321326235593233261744416626101024747989537693987493131923701008895942521069342361764822555324061366161145823937874376811776556548239250073604374488763475083812780890797637461952336129155127148402371893130893291643122351625284473333509570410712055574461642018517898339134506794348292760794488865858851673357460632728838363654372884820997213690286277917228719798572887443847319451749698660248673805981980587793530736134356453038271153044933140501309479267483189252420444063740340896662782561928002709096556551318400957737119311159856660732299219845358768379838173497437596540882022702268265991833818108569175041275526906671269086300967458415678152384806571573821609263675330278911383561886747802361123378009307921894121669497878139524385857304511769779791771903693402399286241746441454462115537743803167394210486216437303157537497925319321016856675989074377870445775860291973890933770470337725487596141190665505623390907265194048534710746495122021648194419711753182769753187412915818706248157198424716994512320663263185201145924356468491851359761121187529261271954875813292436549644983718193988394145297256604907487812629586687708297326176377293804942321165312403564337007901829777912400506323684020591003287331622817104562360394433907323313207424241233101637393619249847302732297853366584690426932082996875422172229379459522248229032069779031616577611656460450086315704102332938279815471610968013010239710392300806932673662674994933061581837478632035528216130385550899476449744759453661758481596435829451438957333372810061834101394346691189221724684740159539571760098838350758591685268461944782786528365520027690468060149967660450302327912839167413528437910573717848309595238262840188650650512240055388092447172971634361241858863076195108688392303059870401745117315461672944150694565802746148591772759068238914693893799877683943864329083270833809319540808735769021016334761520734985157073743568255532053932571205468134339600814226469308881331862653384105752946475274098434960454241620766590077270742510164650394541847533090354093862912189838164487311100045517371283414397021513594134279233770186868096507541181987949447843921563417186159179261211332161100037395623466378727832346324989126624005612025087602586076346888189394693703645819125201547007715256912557274056166023724699939027238057421834004834589219946873561548522663145313140307293957799056708782664523584728650726047878777796703548171932118682780232820917555530594534690089501349467176715406870437064299051665294725550349573249767133709942069875291828600973855050866089858260657223692146043576137357258314243402049931019246388954753446992540326525024675100460775591558465353930833562872971169093221800211862967384779378920654517742460499149581356900246013848080300423616243511839437484052945719683916138798684836172028312653253749622418576392837629189302832667530389713662509895508419814205546763012625336994539711098199478587409335891944203048146211480244913496021044883848774769011723594496313444029826467657884685176455563054301759032999543559281395969371295999602186748755598734718801656096778641235715894292835314036985863631869649349692907813587429660455718434200321432161198091697259378760904564562167055562393772019222051632252472361817194835778979538412259338532978158862899777815202726062699392006437925003054761116408708157458968981110088328956307944122649569981323235256530572422362465898851075203056767150241686537320176304826090290480975961795114608761451930697492982880794857127749730241919038246299648167664029330690573052849788819014104961457071549829574381997256662460128969950444771565021937640544730901478472661467444753723211020955554998791842307663364226814910154567501160322505826947110485328302236186471546487670323842744486230050157657072845636318996619786032573291455656626908368700411711015634568268191771725137878674121674077846892554213149181099082670708966536930792562362700678332319339061982356754650152387761469501526693138911920400427358322627172064512327390863845144800689534390568573654577529523087057041374823007287265608227821740746825678493942675565219498930098453363111943779404316073176429663802546866206911916360173822382105109455418850953771031972891558664506465843863005674293270974769850543342727086131901879812553906329059169339565389590346274076682874444151939584420333001780308997691638150812624971940662050737445008941504833588721845395205553289716571611277406796962898825062482064219291909199254444354887481710797635975281884124293148389287305381682094477675805185774406149616038174904162049512419030369498502629457451395958204929640313955276027992949592595501325726575987896343272575310229796253410481661619447063254688916902525996188693585454421191922842412946356142535582948979656902119422835530349231426487109902059725832159060924803395522129306922184055440210138443610980266909943919093625933718846863452834653927194183727862926001028528548991813981557638328688083115949895511991126956003252652518498314150769055465107144975190772351134302902981206671248174994398192464474614405070197383043126965340780331884591025168378289451934117869956139172359976529362430114571927785053041998431932838941689502637832424902766251705360989961221898395999088592078705414383736595748494681845794412836820579290728543342866239292735750202439739200171141173209382941537418839378007998778921376675884901599832156279601270571903848871473742349937140374908955595991063765034399143387185261826979142816529048372282636759973672057684552772613513353217295271640940450913618207212439029149688783099718681775256983455260010997394426006707672533124790472462270537429453687611881358600578712111841922474863413464262874132039992545919260836800619413053696168855597308682631843356618144608671939191094575071004675325125059711056147254770972946692226203967163488648400290226578740948636127655778815051037714401314215123575198682641353136302291934684062952315891843860365794269447164844244497100837739625089562123693163591962207692360998865724782316956450722715211476101897862376964409069610456416766379102562283106799109150839052149222068686709036583735824019650561076174281749503295363965515176893996954533228300475492948473983295570750691226713853408041299376414096536309062212852008518888530313920325880382426681560355113643500369243250712465036505577342236341136115965526662058635557334491710961242221785099213774289284785713209364296310201175971234583323820154049214369194184630656504975997326106015798467281706152403503744241723647776054832175203831370078212249954685167019029664956770223590366844645188136443577246138363964286307902927693023041446548879312171470828422324012812666200524898034671302144869494566514463607983951057891836186031449613322640752265106308815705277628628736556735527360235754199765961557577488236424809115034295655689456348231157638037709969571190020234125530795837238422775970361292048825054263036902615996025570672769430168279964652609231592350847714028137180230465601021846367763610021633525424439398809883441228150158187460164662490002796753929351825145173349924982161851703532852846965460178060180324614963928064436875062070359357501202977660429375787596341096820395038280422027717844267901091671268871537518985748790573035443550137035474812100761857061900972926161397283110841433897280729822777155231890093913423449973403227039584969816145538092209318571552547401964040837654809946727991655776801026748348649451366388180251439257265256666350697401896277636114366149032398745468898272612414964215492385929230346482496461818245184691221497656148961003207683790104842993258492327536972720304447415343285690568973224291671963173474399131079137082549235335523612029943381113948315953848485144700276882998903487285750759257380301416055834133001760083424208221377723378960795251258621980156397382825273209754434228271983575929147856357563981641024223298079128481392346190613234015573947371961958631720969036924063016164388277082147884799016535357328948755766379172405665327375976627036588065399515142851464930020944871729715872952094112785182986783659469695336481395070069705759046919877345721602612042418767701799162091307056318617867961109046059281480442186293509137519756886731353668724843047826017756078559166376069191883671918270003876242906496051275764684444112147230659678800216533101969768226530614342127514920950226197647899299525179645138149650639296958990931153302668099042363751113795545034668890107286210751815523712428495394942475666965099872665807003219119803065415851530372752204820084244219846039610260880897438149797065531197244621737165108472535710450171004625234906789380919928911672611920733917199490576223257720976709978615191379368492845408750507232345182720114106950152221097435844313270916359566900883400700114248248137168610434113486297918998359362246882655941540552417465296436535970882855714388791741787071580277004460311309952112969137848435212997431268140956241558940149995204483260929724299357329738363897940001340165034105173339989909044666236102410438774588680463958262104213206270282392645668275858105772045143152677997795248723048912367260235101448483189357466522400601666750945376299881789560425336073772239257667707726668180237857109696196885420093310902390098494892141923514147461902840538999026440253680172214661537633390015582490589402469464269146581623066586353065028763033104529640973027562821047543118149291636901284506187714250461934138683295416713486782632032039602481666963290883090477602973444540209483922628398274065472595024861869598961946940153510438478666134320517280939921456077385204028316958433747873080592142821556984631576066275599795322358659124034530110530108267816347958199663660632458396366868533750835664068399357437137746070230933394003840472798489294191355646357053230952365899062032077146006281020969295426438199057879137744429124607273820030274622865837883615173331895862427783380407481292161781774004933009051852746408019305499698167550439493256845698172161649244123390991209365723605142175247830144173897552086550026205612656318352483988611778056508262711383830734262126867668851484860686096302794466455913380915428373045972764877541769862171836915180837497856453842055417239203417861263902380996970036393696775276883027117858387389579789603988859752082009576593777708325308525342857724286549335239248031247529950018171003563368838627293330219266881684943601301990431082498263526433351360983101620777399398445872837484606120174043294418923955597934190631239462899746043731377005812291427433345498447340965098596164754644812522110574626974513033847004353929289267994732725425228611379425323007725373983036701418855800063683207772268897508474427462454890213905260819079799809722242397589891111561151988917274487036549589583918168453989132961088985021358053027249631387430373054246755484105698338727205698353801492933145341079381436598132021529009619962714038247595397197669300975538669382591056276428799214342665838998252586887990877995419625386907606546121263601217018916189664724400322764145566725474441032726777524603492443498579970540486934734794418036912022629623716542741940654068180232271534767130353189946231970366059110884748097644754788316398198432642232795866113776340974187697098657618842391232613850207362515207653087433269643831936648239894821945648216954504029073497276166954720685831154815276109072440727975796970114006585907309264382280353395365858372299201017154460982747196439739101342526452295648099470716968346914539146415422373915062877046284308641143032677258663033615830601808629241611211926011367628777585433838277905509973922517400984551926426374405507109806150689450316814793399416961443425237198755960426575824090500955912453486159352608067298673867499936057495147404566877874320905387693812188987979300862662612900504324275630531343589559134853229411902972569914495006580509794349315329260406552203367642166126934459547478422623630233692338217985753956948289885082829980466725089669214597750050134778927609793453714151458946367926529455971666892993117202023476781012898490174310676236111209000098392422838720888088060627704885512689815585769549988795881744033550030052658260177861830318637212027129801879591277910538678705494346478517140518210381864612938999241988064355870678132546338953755642648341031065696290335406917589975299957957706693234937269347174140077739518138521775255753220291924372922698647685383085677144985427606721887867144587247555417829686858725999520056207167374712453298736698036113327640138931036842931984862493577416808099176863934365610947659286317044191837477190773660381105723651712022253198765453297776688601585583146878706256485609052429923618589333746688024258314838967399819252744898619932268493731868992755243667954298885202820462529338408840804152235427693158000984364399702029238435354917554627631980774381304620119473226046472747929064810878582650875867682072198065332063206377977908274801780374994874389746258019238700711152313608357734416131919895876197859950875597400574033359773491075209456853319298871266342271022305161704558777042019762260984619060429781900639465538108187504816867529907188827219465007402347512603282236406055753663481941476096433199630618274884467371900603049656797095907385635895094199323681949322540390611564779138729954002844699746322475387720946985401435371897613247483285854542595112763674472589053404931921893252985246295365208860021926431952112608266671599015265705053741939747583035184068975419526525697377464526971943081196411863215838491533871426236146218387889935753180898822361176088952107052166753984784359891303497011564445297731544838591761077366373757682487876165311571177165709224000875730834475237831465676889786320142656335028562680210694903237730427438913196359875589147736218947186147008581173956192421995087744948878846218427529515239958006753468905882424037552041050224073085592653059489645770350125123761046425465932327534879354896971308802183537240835169045838323563768068450241730223898966534891746441516245514898533993851031462927846622163786947852469211532140017096942707762476297947132335952137454497152669674941417920796105028072132875671138648597082685031887216661805697745786959925019532918860901826922617141718852766735441173784842673231475462975912401553153272336019082501796814670860789861835131790846297181239786778191161318481642498880303397787123959222633447980598015599862919156144788472223005017036634409488334084450909541886830885189260461008464318353802189861229651159928942168651633894279866495849712417113378621177742559476939100841426617134185861159597574058228504527990745413172142107394511487423348204272007683225110304236488383291092484836575384942404539781286217961070229465491416515710065538537631487184810955809043735563077448167606386425940989498852377308650239559986738892420632753251832789376426197914356933159060967258679169710008618857550123348867985193275145995740902891570005814708179303988469781856343827881583761811864956031867733818494924525002902250608027137061286880456343753197851522361228552457544877732468626320333475886629183782329412382451896362996403872392102858580142727130823647288807532322385604718642261371911624650427208800634022652081947521162447790497640182231054167074891067308092511563584183981600532494003945879230684053440718495079609979945889850885248968825897433675507580223870092057844796534873223869443347178391119866301912860171219824188266554050454684251828549992234560514150391225411650881564901274907271444938140353000504764115140485466744031251621567797329723735341039430069638889500847667832468610783153421904743271136858109034466270765329313115162728433014803848369175946377195136934110144914241760850695489224519146809463206435341349383719365658592770293774524606984823967622125190539798358532091303777338157063740054571842048325763347904112664874782728013433956056209491127577426046217976507063217742161021143086625699908367590829626606391620641674913503766434329677680265874541278075212783443641085822351191122631079909586397283730896943058077640267034178446812010885103844506857524078305216209353080232352780820292322472160020208759753217152809276168143510914482203374934382712784358813480273847863479704896252475946170640007384065981306116493143134690213414595462158510708122372727073601885191113221703297594224650730288446541291948601091680561523468423075063062713610376020062841519329268317882398925470486226628818545491204155795040675715159197214066257709734702139655189316186495562708128575129307739765153467693456763287659851716009074770688548987915199561468486140526281141916450661537250597113028423547420125200385704106649834972487819133728132763815261016495039934718452525984030949703317186631060425990714637825757622144267045140741428228433700162166919907897276102404806215282937690322941855865612947611470409250732711423099038871524246651433269635596214035544527824820150462135859219061746196965919161425061840469434789125820120374737142246391579112318768900304958370683022599684688983935448003134885713989535390967823518880531227834921494494304848045567187890960602791351962457303708011492246099005912249006257960605936421252440860833374518967986089608900454502057226560790963616936578390801330331432287074785063537923200546610140496877459761530537894831088616480784369490097137652350058951887013205225476212116861474833488502908752469700161424496129310886274131304788694767528668699749224595464138989280550093647451496549039487372469982757361735813092541992646728293853740583449470647618230100127332697176301616383487445654113913765700910940296975128554544592489426424052333801880290702009313803191750221117660565184319238541648097417930245953506269760670044631195030305166644500250881097848085133182453970735123214776970276061644545010628459532031852890869755972591055673911591873613951297545893494731642600150672740000456342896811877341275748451110382949340997316169899922012636197026560653060990456925550943955126047014048173887610810431294905056241135988580797549315327602741954023096370883160140501720429037645349738357096851840414152183904714917684690393511228765703938271234286635852066147312915327732555173195821651786044153812887021450737527032540791714165414361791251996545417182237209678715674025885951379130380856143022131464924745648248932829430350591863751134028526464674803368949977086782603927619732489571134054920234237379663465449745419702016367905790746193363475805871680015259573976109482812840814793724990847351087941736634428933418317990397273181102682171611437144866243427851917498833658626364401363940218717489037676890482271299717151793500229425632331637392255499293409158326427260653793663254456570466882601060314697739662075271307132571094789835792668108797062535255416648818761200699688633041004578186932886487934483600509589032858403555014195986227963554175247096801964701307516870837048324715176228833435632355157478816672040057692213355170745074623945127003990156816529714792810136366174787653892287986839017149949148925121979565852191226980069100880883797167387329663270671426577418449791432995651783013355528138141526708891944611773952720929243082880041626951909692490588890714139314369843668221257268689582431250027442452833186842902063559426990221574452901788254283154649668044313501670399538960902723038728612853799875838037805572565417621249788676491689220449378591863601869464332819269430035607946584592462724934502790614339168695741263642920508870529039062076389161638932544257520072262949059491349886660795387448021356022478636010899455157444925693270034712181825473510163472014135465357933827020639750039999711884413596868686544538269006399656019418224135987648863349608625152015231873553704698346992455054426294244716944605675831897055176146408418470161072957802445749439934047238919819053879550690785416223721935577372754284527382321281160868157656511645539206595395363581391212158647253825719040910653537172439746320109680246657374537415956951091423089792141477419912237535680677364372829690140205119581522549436114774931059538514841407714146167143004365555965070662165901186962496360078724587851276107572820237758644880978845484884934980046251654334760387405527371412686306446467291599901137677333008836331837949960691031264437073070771421481881149404728870932240281526464347985213340350476780459729170693928688211379439922730455938301127409771693011942342911347749766326315625151459210002739810841923921052385540781077810115945096640421178491044343917201493458819864667950051209500298984326098062732636795831560253002310914920486922174118665460616593938689079621181941152753820394045272858435134525613773142959523292171961888427243566851826004629538198572647285563966114576807845303340480227967681645446997059094405559231433511145612366890387462390260727086908832083185786646665701289232254625550529678364730371305110215267019285959006959107996886261040924246423004908070089616545698154555267418856593213764267061766580427688994300446852816833707713048019135498004672511302538758201961945534212691587602546861232314759721849454630914270150881233176842962044466730116929857197414005303465429785154555075480122409886851410411789763350962882492527216300207361765364996347452317045574358430319688650535281815791828464336979655999513308208532374892107718280745777397647952452726839321095823441708381008735858569469046446461703891182737562330040717765985963925655730876946896848261872597903442509195171025706051497091139920259619446604285616154358968760383812718402643216734070119360400285855248944398414384542602642508371271192268149463141805954855873891867438799501419614208245685833744956493642343735452090210200175772715041824494979618938808888032330824571835357762297800005396634028781483450482371376680820832679753259202126167812070664411821393587638880672052730158524043008464542120271413272266705592614851173029469903972059837501499821558138655233961335882500321148799272340088027859847571126824198655710840809939936898245307578374180388199314621370816311702352670169806334963284824054696256185865167877800361894415322995992321937025892241915195043128831934934373846958216715128186035532831621961573346646870340575381763491955931030179801034023973556364961454567225771632208397873540184185672693568881851810632643437784488041929645322908028781954064294305496994432229783041834750036629086335871961167869994990033499424461694994532792150642147614561406531906698575565281470113367300951126471717974524095617236646258566624904404222622619158198910889465669686467253467930253041075687796759474754950691974982191516242155986948090726618591136462182829740595879379520654072403277612331582833897312691757809365792379958395980530287761044456314510953086512104550431546774079095127345753793620534477602482552752559460290129366539488610896003758407171831176236781710316290344572150018603723560438678132455316572148613478863339235122561120851671167575093140861861288151936570665717566785505164289114410550457044456908999964459409893650752881101970801049310137695091637427288174241975948927802222830360159673845319579237953219147476566229028050359080272124885252641250850968623783067896403550965749664862225136589370238415283398500944767644746711795692107869144191570999797394526206103003280898173081434586927980468092004309217471677855074732591693445118249910576689271748592824711569658477039914554652363318471475549668689206417452441726179666102688449146866425496898236842203975688376788964995853379548941915897934721484805866281656389005632535231252559051476625622010513700841125728101920587430071683578964454028616947548546665172724690825031831789501941263574399475406642673595355103493497007286826785184079980547932708914226722629645794716161179461227955879658093144251901734634970992997262893332870111461286313649439771960666709240875238016003285911991978099871093674539459897261583647959985196883958285965438361365774805398993937419520096990850845936582866165533130331228403867851014529509710596168582031733788186139874731648240297406955158576135960510299017894624096654515032384094942775842522840280823771590206362714951805064613339774658178336473489931447302775469377207176133321480981939728262298461138412384159991585242409850807553229668610425643361268865945000402961550150533786232090646111103150220862099903645723647786918849498879595414387994517714994479470968633665530871614157577887174273632618143030950839577881944322650496526379743774396065005549754049646566656244647662471037866730822488271778029636578589488878388861321112855479855753964294084331057246610462395421501247988088538827916528762988053176902588267109921449573965268621003160158004166738355984732371818568136130885454360258210623665137770531623301524238459761148220852036912659289224083230447276194353055145314915425589998845748396379954021641954565375945349031330225382399247605787442961356172036745022021462235653923983515913185752531351441424912299899973715047901454944031210434014858697965701825290922101153427151415590226662972761008229508151680530908390975542669079604857913363724052767854079917550944370390976952508662419101286585575782062848072298140758727749055623152971301225517543458937406914337170618137898789285119399931191093123327229894897243412828014525463965090390969707276135493642978945893766993417039838555365317966301816132261966758908831952278076987740382794060210656474627421356900822273851041195343306483789938566516413788734437856338304533693264541381667987821400134410945056224638673430886306229887047962430807196803167576455886983027540679914199718289632187813904154348772117676023553168582348335011535405803645885924219581950763593297489071232403990391878107322677958518433489279514692739042205397659851230663633177614869697700305914634773105486424129998974107805903009386381527253357880051370774031384580485605494573146793554510032402109406912936421517924825274843867327192795910603022531349926539539602701152036639340405832325244062533935657542034118725297199560215865774069928522059158199142247282520743858563360638871541780887045965035736364347259328758975883630063830319848243458448133662098751437135054758143516548873092091996270246711237030973889618298708396370990275271073114881928428474342430911588008738929501037037793504269183332178432484773864670272202345494572553266145500567813912380289343528139621890580921901341927142588301952843443439834105523794058238073140503281672047131635645900490062860533539958326582761858528704548793257530310412183254501436871197936835912765584671310457593426947371235355197766475653147352882186794088166138276246970199588463132278641668597890424840439666038255118131271091062446037880623336371005493301829129408642818193891923922057346725797639090813976392164250909255964885773523950403840364407653503369061406987115802818292131522440881867615260121097515662871415202785178422795958015979562669963129212572782615862097139400044191116060699945208855982722693107816247158481858798382061638675474711335594641884432200626988836393481960392577301657681085883984373943225810630573329446028002225628545577307244034373707824476073079286392616277440172752898158292973112251640274224032283248718216736643991902819409712771023961255180921547137005787422968354703978550327113886749617400243356359353326035105970876578252792138974845310588631026814500646233079124757437451611190493499541192522946298856646702995540175111747109079576758571214322354288827683519687426503291683956679391240540320167776633361365987423549955580280837434169811353571015449937676928307831379446932722153684979195070756445739533312792217246084195897957242590368156500209919248655549849982547949292846192850734061901941263394196766936485401973737581074272211616614462872253927736216875526114572699657290103348573157696967762840678509150666591351773895531005881247042046657464515210907152859742580766276754953067321467307247871722047380067737988904865114831403732434629618773801747826865646334171248244715823245705943264692580863388993244903304833826159068756451842714356799687453865982432164778255672396524643225711800603251797789469349497980911704557679684428785429284517156044141686738759605798325117934317214636187696555744268628030971038747155718781131431558091795798619278031971713604079225544518050636277132158157669286212265251718882485531847810364770312464314561286942945808380159942979579751143659436172507228010225385612628011290336717789057639138107701920461408561926544609745347189247068080500186398959947721956171617028570361412959430272386047494909443341196785967993321588832100835618646296205000096644142874071262881778014636826476774840394971665521788639686714029517049195663713470031312110381226634093250449750598031782070141538445284408649767319919324690452976794869493355823619211584735148002842741862647216700814816158842394512388957029112405487008807389073499207925888327190587336044150090862157489979974904134316697013897963016160495627073261717021770766167093548584179411532142288236944751251029417277560253061365288931938751634255669203502577980060641230213430314929204719029487575472786160343760992941782470865089010426936732800992153424183483848575986534949599550170966069948924387750379888148895075432031217832671284243617610245624212661629905688541695885386318708353266187427107173814541704919081087547305458471261841768680729910314034120732999055017009803509949409392785265139415650989025062998492016210551902407521676081823709298884922861595403103288358153886329236732655127423183129405657210263817909991314928581238544755560660240917921947039528339503752277552903571947400231044538218467839408625685320134689206325577167751532437694785345640791988959062164714981968717390859668405961279308631543774485269570281882354478259737028714208166944482950727530472202362385648763459415716490901201028932674307332847718804711383067094984131129897402023250124113640749163605680793030134988025399114499373416425939570557259046358770961462245413991096175876114162493067145022170813557276857396339880781125121852239030068786894265263967464612232246777660005722785155724066515647838227960599561513535106506480299706025471089785169228798586897114778728103817954828033950233384680621835699394787243795163964395597981330361518401650532845351673327786146197653247686365824474285854877998950885698877768262948220856095622213190092733911550272500830223590750314511177579256435601123665422478423644302513107054190737072099123122504890699718145121492861027000891462083364726845029494085029332216013278314021170421907878467860605420463317421344286174193077201134487536434015325757154451401673285825870873853470940870897821383725110211251193588790380073898745186005071494029528838091170396127854332363561048425800409919751077008460871518740791717084196644556363338940115635844621196938029903434528713724744859953508856835505617498498600289067978853184651733828848332473457624319860249560525250830212241354883034514315606251017387283716997753456996881828256624344792857270571950539489883767126306026320289535355305899203964918116452648766630090794337333613483119551281270150482241655282725403138636394434136111056631254201668640445284078761075856014103147835295735940199357644070328343087859000936206481711361900451936135130573185551886849330656912024190882545066266608669440990810104904802873277895801995691641035248143550874382640682831431597529540303273754665946614369158207195114230458357266978233670648466165011417185571394871886834359243173886008353174795712594111901117574641693790057597253044317510127207343188820765009557648932366354813350483568217646461015177354008413261901460640035602000195732803688205856390731566326996813946963691831636558759805113641475339407833781659982986244887560963634088627253503208521039228252247072245873061157210339528323604593642035990805078063264609034738237026496800720697171891651286230507690888918055050926462696074664226771877552281704758177351610791721153867033235483284665465096088942853819995844619426866359328751750793360251026334280755920461089921649550521391003454683989887644633592658834764123805619849421149815580225429853443436784548630253202978644965820202675624182627613365549094631479980376986684232164215021179877934373005717888749891749716294753294918068819438756672704076489192575823957805303248988068261227201022566856020812474355521863343703391916782213406832379674914169767984915281008844526910702437107901542301130369487615645850229730298538620033344000524241365665186253921303158058294473695815974385263452045674671381944579364441964628079133930016461298944632990909764076730358838960562747990647479021728783528229332998827238976614082864016738244358606071281399916653039187186219272720664116242858001508411008507398207404413882880949516196049200991814437870679170501598953877999264892651411306337603146103217405356128425920650997772161273367086813456610490938526528270269199664354674436849186023719397578487216505740719909171287693244443025215135709769242185956075797699913559465781313368475861631422540921224235106953942016449858855708790893271078470139183215481766325903382662143168565513055710009751188973009804107288396244621548914577334032697689008364027011453737974456290732192913788950904558381906157160970175985246311390998607129586585563354930591121365968205877381656636801858623812204276099134466359505834282090455323964106129444245752462201603400852673661201564727266335583411323533299118739230183309030039413624933505170094459986550895938917440616675548099559748040815206086116412943650963217693597313931319397717932435653003041609834838431666007375173049147444781555465368853561027425264037744662082422023824342193661384393424435819008790846524241878628703327666362103120926121661847458232406032728140726737353143862748396612419676215417328805180791483373901385585964126422103691057419456669059909023248083224007600198614822902420061852778944216236542307552272444885246736291947840056479116814512954194110977216184799990957186735075246180911294009378099064666374874361805872902458334041198377785185800398151050491885838308357399894984056544530949307014331369107200262020556906317838272953849839591965974309074553968637111105968042153742181365456914051683024356837082062973029626447560318923653826053321941917242388548842671342706176314218268650492178775519288610824859032221162781384839188733135133738568381547142692564700446830711797100285289453377668698683185662058312115802147931646327314206332329144360001121126942718389315979120751424242378327191432051312763445241256516515184812227465800970144125021762201566197401880775763818871497639520328939017014140963311718728809719021929231693817275400527235404596545651936447663973334468949098652287751011603484712410760766654819341563601502146018941085919251601764620174035495157395065742651576967430410558141550350890418370490694957305328998695518465983392426958869367630438858703637176307601841126074264202817215189858257487842316735164323080225116154020986092297542665310511540841126400810119803638302147864057442747619805993998226917809274508306874016533925574039786312583879684051906063752303864223898958321390139586763875867264538607490874515961178642501813032654440277561088313027825590520236383067692402211065197141914878966802191156651577899220057272971625602050308523758134081722172514486664477793055434107906973012266508533925425544078973505823656700089240575645070775147534694056305041510306047835125645260744982244290843046119623849802877413193188789093264494313005730668206783092432858053154012610525600456804918706965827867905166468043149253557363398961834820433453495468359385634280609123386655268325320528045075647061963338693712076018579686855700238135226132219725416569047385711195791735698581558282512673123766143499333178918082392716155864288599562991381491046392087150588738469936829635888071775109676400774512073106641035685032596886955064923329262555827010252899371595592626823186563211511016012724104237540538488342980354670853366405430756816904631190293879570456047085497607464556513941546330374098551712191702229994499735033864549910607389915224394413356805976095652637976424585555957738318615005060583012937038963563606612537314551233013805097887894740410490118624989050541506156993728616168100359936600793803457643763834940329384768384013166401788339136483647193790581759645344699218148654151480044208568025949959348737166636427317244965969813102712107524223453314424666482557975768687149719372318090032521317568489042231099300347782791370711041265545993436335247408148883916860415437408314884194840563543475370648853905028593866984701735311490319429503041648828459104360631381430975638803478825582273587644965355541091374171151118959947022069623212177177426495259266141953007762734388051151887872728727876017701504410810741864158243122962494083680776602746879656059840567476504782451110695380230361728166958575819329957392428880468532195879172646227103571334439786072220404303369564794012228636222884346284038609284593608156249481841479282980500701753340681050949954214450721551790738311052756694373428217787591758137625892796281666782027500221972678785206944506664651083052141341109635962513579198311209718001614976657442528437149093890735027988620008643723878148895761466226463385756308343538718930637599909355831326791428610034266076750967352288538730684902504730806927356400181053996337923234321973671667822940396860371552055699040794826189581558054625059713673161783189669200782862619728190377613630658314891634491872359783666812110864791069188091833883283857707935819700440145229513067745704066043063061360609086662220048353406951121733517030543399827322447767102089536514861077899425723391086641350470392805741530321726209734168030512863465461495229223697300357250553301805805472082682756455507416986159933798087915124549072588649223466033752594889079082918986458341536978318027997456852436548178817383148018592325475852735862979903412212353267266913535943528935384040082226391883202020181067591670920848355926135463316561173814130680693732801910657631622696686035132460341619612334548871588789477634808735306032869499032960777114685790954488636090467774166933453237677017117711810694374815186889762557669830098165416670044411260190765511403205564370520542130620762883227992179264103791041632840315081464264953454701747622184183720200172337990184125654416412792880670889591014458253503847028528444449736148966189113299482303755611899849050807094081396877646171880308666048427973468785561084416381098803921008352209267602706242797165104519659243617562824297799517784122501374111881687038951674600907160792892726836240691891505584073806320571902181058730025899914627322385688252578121527084963187024529890049622670592181447385619393240109599493073571532192487590106935922546666862339579579625610554264063123572659744875478035414441439564192888927549560511598094619699198285609787807239665539658811088144452329825590316230957417858925930646702033290039371589161706374685484325291543485410884279566082203270355229596029350681186561966935851584371080914719655772941261917820774964364746885052894689958293554401165229640653385364214612289731423366727999280345393770999718010996379715649833139947107194594352593106179288805712196566901331350335901863190803403700761371206927329229410609730678831316206301623301984635784886338217846584836128076970344267740637061353506303939669407868189579941423382164821414044012935605982591903977263503173913162819883092383397014001273442481802635493459834101309259215335803525165966945638339305707182767694084379980610523052814396057625408234391504579815991307285057820992959308586616114816615748270598851544542185198724192315391976086074641436626694187928754332252869375175717432800895540259158024911247525075912373473401134054569276087911832457041539041331594069076315621599367926356221145805870104053325236699861583837137018140235372961831608898880372504601689803106461276366585008669972885461812217383347839622470952320530498859151345961172476159823447968473571130739889730787553595133005736424458097591279851647832810309269934513706132203475758374352587862655283782313315552840119229899191504211094597252221933059508041619440738903566645410485718179545143237140468585214218611178915349220977338914044426439445395875108186947882458829017271249437992104091188211047943050863315230574133413441242788770528749476411223959103921597877111566470800411949967356630558227012932974269655917289984671677597775876112718240232894685477060751509988911978320589414198913789654216478299645509842283263961556180421037663251581412843487498979394555233248362240317922584477246116579931472500576586882303837022591378375319107331962778329708331814253468554397599793387669457541782961393953182365695376392949728692865747659017439759632980476129135797287899441473730930140553432293256801738974733523058082211820411257031865321089496464396134347177111173820894372973089412313463169825670392467754280201627192784903005586134854746676692987618979735522588287508581859051891668006214057140308813852586927071845188400767699718318776758396775728855867408050748896021269368131962216319879809106186413746466691876780509586462667689596614208675656613062359653199066017200725275946733279047543163268204486032775939848611526714853036654260104804312430897408762928022233771443580813463246287866005903525766959929663435440286714906936865030165444671840000068566152186291466255241881412390804303355336258893329293773350410752994603895916231014760540082269986442316915591004905539958800915080261102403994249276622302621518832297767609609754179838323385311007066568632130968794091910625200460474921892853939349119265384418838270320150001926289876283277103883057359948969504647848284384751923272469004711690631763165930562379843791945529017315911986427111225554166077912841235858857404940397577093334048518795002128197223130250692527414782611514227259062962062403615862032281777240403633117993743192621471956714950610152366273227597749857875680499866433552158586969792460487213177816438824363113278496179622087469117411588217079105935893349764827921063869294637170220729905336034016434603166897607483798334176302860632817100071136935323651389461755403078692563243771880203425982058917449777430312747786448746019906556782963081799791540896996991569588583447351375442826955967704872681566865265773981424255774531048084889188320374954758126102912463941685101396113319229884635447341644033248031580176246573064802445193617888060079006727837805649306238963265913434038128482762741191369081415336305316273782760313110270400643425707938025265203371662372713016418292593629406586497919982582657071187531036948727248977617380070670790435208623624368177795589146415427731501663847406534750737919756381928287848200466410590637454694579051607871430083732071322546569446137285672769901889323026035887224846621386400600356377324263484920728551115882239919781291131280862982585519884269046008371447348036331830598401223473682033648915123244910033586056505601877015882032614355577535402756369205238142281680218239361367462953569427401558172914886757239653900475917116611869186158379411002430199365746746247190856228409131573737992142063301162857232171703417240559479287479887068502747804077001562654815585744355642084371976654477434170462524369375312761179899164117482316768047800056941724852961103229958881025842261398820477344581486640741615318102455596625327921501528599044098955601708725994826062441843198464342761531247376800204607562009731252917420095193089960854218157141578331084941031273927497003331881148740628214695902233386279027765601005413779764379109038182862335352261865249520974130780266931910728111572874477981069194168803805709756060828385417174995835244349900395188263028836610970123078758699395799529418958297477008120694058294872074381992158141654794967657227033100067363745669907565572710352564385025156715786883283373585128006156400537321110930071141200096595953034338062794845662690955807071730465755819027619567328944667133307572154540935157289532075433340349131606740328336463938542333908650845226653316489798665438643827281113549761466995754088392351105471031757258590941965864107330701959954662480862191465522949774811543790935749612859641576479472294620068610030168856029282890926407636730232829416508686427420457724449056784354990675640274392940247555248316531935285599869951229448564268161265947287279196856201122084232340440254088799827540625711126094502908254017342386154244417541121010660495006201510994612086496692125029726959579479543127668415738115362821502264146188539908172848803045156711296481738150032352639648154591920606234423296890243313829125997555245302345881228335966689080913968633661899730912085663709314516706835601492700950768887087863973158791504136238144912018227563779271932478085579419472944005836295766742382884416302407069299251552574675385897380284732115903808401532167708934578045274688476989898262394971524436878293340588043090589195018957033912012370414365775787300772337012897259805210985952039324205519111482204629404810961057344717530559715164732174735806767125047356225775047280251184505842778175458783114142799845335993660005339538823528467821025080460951944127355770199757307493768603517227619956537294956871483272183073345254753246903137449596032652858648620101636630740750626904635011608681007806063752854568158109821850231506898679060630483179690568133567115336372991532547205460639761746234311280608202001604860388203091467431722903669768818090046919420501494665082618022712197928970699177822399491410335268026326751431998526760111630792246793289699454911768275842891699887354246216656759065095592163520022622202706491448687580982580530128362765126132706648522347962721198030396558355032704235100181808776514801335591727373578384052413657406980000197168677133463932999409439158462412765267477429146388343885923575199185369892526737689829208616668426835285508270247699954407721777755634605006676677531844155565618043187494688644068827688860610816014261110556933368603267387039924929740979883047783335020222744377478232544364919460172089222101960432241260861409133429124934529713267393446792260987834985654219135516557587186599895561797222860776851981854659174906993884955296527048792749750652514159909800619097466380598827152134380486056409647304556358299926609771634430325139840574849760962366901693704054416588115619220572262157444066929122691395002395069850993906858065756001434665492160905641023120273541715365393286139194558669826829358264100848692936076019760856317927050079687340807628157487452357329524198345302337284772469135883190085389188221829272838515160818613371376502777729794850007759506766621972031298533387363859257295408809681527111127113021338372797988925451691221570747981285842922796843404351858662711964691930647375272052752045105240087067198310119241796871156525027866102123679439459814913235885739994085891851817880591439075502292834125574572580213921974846246722930107482921785714956324336935179216047165436791495836563374855667629241695096870675608071851741023384298549854193239444898526017699827771895595420311650085570360565918818892676841250524707138979536241593658930130193433434447487067245678798426702093658513913111237949578363969591030569927456875984729557957810621421332683400395423247830858196135893587691512790133378935988989028680060323784869715869771988356444294595631514065914764379506971595144685180719024659832430352045013496434323811080901692670588576600456798465072030299888091389418579549767386913943311197920266657410941263550676342953822483889050602326816068331325414512644391888824055815730201682967129013372469120755555973784326026542786125552911236704493177166250803563887377940269768834854295062529598283652696816716918608079766990936362813650589303511219336239466561775635970502684500538369589228243350118511425679703245279994427595292617159143290451119310746483254487897340134504773747382186570345531504225036593189637863576151509090040964185664224239518240549801356603638830099178279369823635609493145525901744283142575065644485260424884286243176974191537039049183371191064628102904713448800397692907745594784699626527413667212891934748336279253595052684047097470352446601586252376671447768569869338317802717931363360372982028677949178030833761948256089742527847977191343592658521576917434075769360823261717099357500367247266432586806819777343908301561606724634713912939401611670045466890211086041946426399578886686067763947647184813014391225007040761502967202728298604669631745138785557392187469576660846150976599925027164958740258273464336068210741924336577337583067593815443756091007197142126625983541392078129402095746703130141215865179951332017853210451207981070892371100397473856406263933546226643448061951747256413075157008063823148436463931675703590773741623308697405805600493870398304610691285984759904912969597626227503507804983226346986953409264956924555023304030149087137388215120441992608355105765362194819305031276332241550239359638144061735694772507748738566322429216227797751458795777156969206224281483213189945370629144836307972981484676060503610029057365414942175776872101835122088812471845002675431664198498384182594857533902924379696565204663562771929398466805540030031968135709809954295023893134129308933591922537671143831094081633063309298428252046198195894777994246159021949153696214242008622174290884479036448533030283318194180946578084747065746671905700473887303116552590135344195696753792253315839818706888683121553942915215127380102833337447529980744801561343819748410780550276673326804055005978411220232518414174600289806577690538206348016789722683409612212786251624564882373746726634335435571720361001806159587929601128686216265388413533549651619985417645816962519763311870839737461591806128709332914666088765932380909473703070148575363321804343576393170245825377363094780680273045504089738421314873740749383789262021800223026614061707975433632310654318978022528896389602341741190676707277282022207612789420096800844939534667383806372347360038304960289183905800592163420877962980468594195777852294202113029780378941492330201443458676698104243027249528742006977246625593561265524898425049619444026384697748221386272819997400046610312856228331861736438498998329653311048266444016511374433593683421411044434090122269892000074878597590873069716302709857088630545336938927559830342735669653164717452562148593318972968700891642466376815351212447914740931065294985696152704679698446555738268523221756061331427283154578131306660335695517837046842713280892804360777527133593699525994273499064923481365801643921279888139053628197071045190405262885403605729305971770961473172344173388156555276767751357520128571962617365857387498288286699116840917895726982987073091709707271472727797166290391020845287256069623869622672059588452824423427324620940658121382580898043098948968368000987540042565177716112557007099802058445070205839502747155791069115957486803008326964379859469904187859016783197748619173449803429604113201510672372431515698412843990118074220407671165211345835080109427426577103302596683661715637775967069327622060678488991218901539620431524373160933515709899191382818959790477683018319617634562966652633121315391912949305516416502969585650215263685025862322221666408134725877756358226016876632218164146315205394214130768109146731280127034696758686752462760068415213866263296320607821467965001938216170712635167417376601220692676036331367929912777888214501200870240924699517263706144621092176934693571905671801734873935268722186919213138417311760084542211132387310197168331582450887301085103457825379551035104725642493777323669420328959501329441438169835431112392931294687032006613462924494094769971927740376923056787410383581432623954208827514594547596987825221041400003768805892733217407550982754834543079175397511444566075048236463865814735722336150102593625202313043404467769854095687314555836912184462578186488394456987504343489324062221431893061601683616137990965673831109167751086413946787945706841759942379430521751949140985903424420531910579741153369655693740983002280230718552245864091654404835002612544175754038526237739979405278315825780089104154281737489661277755645086884346371081818878239826157698062068841702059172853437584852372680846928634655826505689285623654248516455514677294704015600129460432994487628365557666550009749019579407179710970794286048595520043443078531738279237151023496947729888210173041431878695682310019535103114593798472930148745231075293312490118214768420259433883271700823360351434158084187743176365794911711898921861724512528517165964797486143021703112814317041344032695257573774946943305016069739602007018631607976390038135173147000433530946452116546532108419086975796386850293091349148379049093120922213842041868687291494737417252502680555388010633113008090929415210892466315421544666617890805296786221471213246919850488845756618162807453460425079645769686612919213780178710016435030963252198317795495339876604220604196332239070347089365037079257283674034774763641758377151566342949665712677661580834976455518052475072733832721298722699834850985756769952013541967325312258460008456471484930557325201268017643854961304321069280242344485886869503829485179526060180434850349195435396593006119927047061004991701223182040784084153587335335264023428737050200609187313220560713615262572100775634318580061056605952243164212058610692763784764275787376904022581577697003752517234272769591657922464413487405520790332978995845936766668385749347306103841828419920644037502586361989916890888383712053480892988443602846787147019142181594564103620738072481971841952308679642379001565505064715034707857794945411883084115112424071199935218093707450908545411355429601713388096795375941109856833811430106473779328147383540872004212442984072291704762198095640018450970739929064993264809895617555369244958098291187049888350262322324916170109335916302582172455132103157170606519326101105370738562527267102692215219848722477776992389076313724259075760503172094067074209210888900764559923276035749518206915640305472002333526239148725862390880692373492661683462253816055873333188985289267428171155067869523880197464479718630399470099396613433974210729527963187656920864172642885437878680742612238000717323087081032899168796648412482619099737731119839017509816963161400692063827579604162446720308556136191476482388179178808455536306538522099081868816173846605784944455963229692910862779392027515554371628060006684138051836484955968357952073978852351299428112186528644011451811987409639896411672279906920921314246803853370018547587854741728799811241074912159596365146873666865858596791477777211803859259141877265300474011375584264104163878693929028751883654764993792537015629781623325044050535210304490342486534273586329659986359991367736850597674956608437542827096100977297268371679085902798242481861662070514363687644625577377845363943834931374795526007046884847232790005483004961681280419958420944138762490596896123309609335987366843750117076101546307912856813628381011575536342709797532436390212079104948527565277059141552257438564701332109090152906813871725527797791165820137093693999249860986491404695151891864965939507289295035150864012285944387928732961274365666426554275246819938353035300202927957475782217464621765870317256166633879514663779797232709072927436694140944732342319037077208094097590067593218386535370718366960410005728120121063066887291011556375704263051385237371078134641358172476614654555386520807494462744434390574661168584238735749412976867596186705848120884316989392892495548664612900749558340519606533765797486014673986463213294012516911329045380116113232364787406183029487056175322743599099784790274473053753938268546457362453323744274824758733021381649681699695635759102277112260288128046766999778953606871486074984751399973287430322325374419473384309162622371160459108063965133820903920779437752123570501785464899536857564694192053356219144584521506830341676441203467041584276947565423367771638888499045127779497378999835748274640339348838086694368206146699667929595968606328714241238008707163128763140442489962967416487159985501914976873103138090790740647813935050546745081963249615697450326899776781065455837302090686684827105476425581924558465848336755174771052829676634597125290485937153934102104362303046236178898248856701018344832454562679438552863309379118786522907843308963259033331358954192715945442940814719265172450234337434518739044673739013404135932260832218421499858905097562060989840893434124477656136366596268406526521163082901257715952658065957193119001424521229349128459789902266260990433440927502063172690686049502333239978449546903063185727956906798825048179309727242664134880668484520605836036699393502907533906603000643450140168107988445278098914063044991343430286054369278405454302145162881545692785614173190901293963358534613786635125145809321077320316330451651854217700271854520626405204945249416678385822515909939730201671336159962037281806502776659163992624032574148063543890904638495267485435767155740810581330517721444933884695457461962229699286116359244182133800575179865919778967313294339770119491907792241753309617261204613312771228323582447924216334304375619757121423992144451847688439534319559906217863099743136429149174430219238693535277197174414948461698369142173322521574068505782798109783187067209667468647368718320919291034711410731328912852159267683985336170377826732639715011382882748223843314934104689733358722751835719215413962026049581065097918574207083530875077484254014025311671030975573058461343197127318779642181341845920176094825308032319358586295369966704681011691423319180966249864783975259046660513956617707632425852659995485204738527243334817130506490784379476709080731444781700244710583968482964717784104672252204945775676920887067658617180550473726199158597859375253896003989285219937813118965768776181159539294509648278440043236193688349184579503357089933228925833847538927029669074729790428033655306780642338974864917685673765693002809777903491068010570509369280880162665818226185217880541479032610104385446560030002679364264112289488398756921363095121420214563335459407885451842772925719438594107324292809440324148793676109254927110876811073761088191541017935783006582348357588851924236202804129101278321136395172986361540548638144862229393440921173531927792984114302510737107098222479206805001542722254897406261717688516590994634546905024332478192169514430549259942411330649904061157855167299628213578493430542188095198406712711483308947737913413618072580878372806419809489862702418428333185980575805826828319384940591605909434078548440376480446190776687716434327646360102970041653507041142107359349256186882641840758230186491640640654451408196704734054716111019034188210057873826007873338977786381730697612589496053796732467407952195533393725548119230247081992973543893451899907368685516212801961036729478342514063245071341710602596135275302358462442217137849858239723798791696919598702561129391895339925523668748298287102113966276890863528360169555635814895062376904311957049917524607984738981904901613510596341596636274522909710601243360695312005305079763827166244409020128818164147395106924864679291232092519188034238699806011359862895256284202393454884074548257579875276032114761084246724200681428360420225974977767886863936369717810050014005114026187257472592262972800854820510611495038571920135955877507920420091876869351376763107291697085451804033461009838757835260308732249075673577220163982960837922711642153815787887788675178541485707776397494927596027864717917903927233998168070507506636837512056928277422482108870372992166293297443494343873537878857395813599791771352841064517398567510417210523597190352834786714753657644881574881852576888773185548563559395363232506966162425760309880803885725856847813437634225399006643424838358556581651453824444411180333593225807825071165983080537433380890176507106188333578000231634546381091402145833887491012176798638291211864473965823426306070404350819429686235943169818127107491649769399280865906896926733776091621965590619756379169485731364321715792058076091805319960874959739376092342504558499261210376319226140293922983015323996286049962269875321309936795843221639629348046457921051776761139515699719387335022436182692425460505339567566175012398963893741242836905676020527832582595531729700804594060569694117956467163143281453957617651068508898899163836828440741836429311666011639784848810457445211302054553871787243733618884793259239842865651979103398416979197321511055484868446909482470196826163985633669076971293046042132852384481400988004584044816706396610370381943650376291792062368651098508930162906209946894333645880703739618638469014721832422341728713103850316393470881623290550423433795849123773765815843912176246226271709703841728383896686127463813555368739653905903723178343345260326605433382329409386534059852178634496736047960485765943093599057184719962648239579835077393634470654352997703257018202289220441453694286872686788644327614120643446541834984467937330400565164083210751455308702203277337008890922463235685841730562994482403022950369887751764337336737333325555680514552914323862007557285351465080564687331695088986477045828026354603394968938509524661294852345474654413276922973897092259321100070405016933137173450321190938920911779656279193073615158221631067402229908509837796668681572013657161345236227014308974367078691694326206458314796916754663370737851712933928496780348232789138728305296361842356184077215561646566139227377982133378196927446982414396766517740887500454426240100308040614064578659720944910682394923331291069771329563627927148646054035715258482625318651996085128033106413740431270928686034067483091656008994520929445259153524574129258956756662841977983016408013040062679356045391985160542643506826166738839435269152113333295166641720057693724790827801845220453878410034638268523417020632782527069737015980586975295512576929348005051737498066119322221817112534972299968842753751699890813705885078291155975792041396182680040931154066658064178913826024212329164167862186044961441350495870007267522573816614932228212187343804410484902354081975101010334229062747576388909980886853942175308114507562985515894937250499163288177717389403750495147989576336687872257338618677472065486469079829826918328881251544301145452783160714249095294088979242562129258012357389782000578544523903588070049653601869488403621985673790723904631515702971299123184769831129354814848265424007651675958192717814101168543326111105949519625399108713058112316882024455312737631766493243867155980950160517223330105294244365309820609928416583490373360305699401582654384333876939662544574092104860418644216850373414573958250448930881546996693992373313144129111274602746538712212722761187750116452879539819007216671118474140157439414929589907937363543333589730475877774803295787080254200871109900444439620682110606961109048603363916162701728524261506675165274549233059707874197425722538859149904745085614344396788525523575028494554814523394488567852760373835621623228941545744697179116343062496925799927874606688035072374355749326345543442853053291576110405687679094546197558008848385117760902350072096349305962460455017470982105476092809618681754575140395152463415833170548167297245012536254206798607136112623597498960185535019787150766988292165372854636318301603138016894734373755010728110411644685486793267893786425751773987814262814035982583156351116347237477603698186023960331220951558836903974024467809263054808851649511709741553743074099722545508142576953959625608505944988710191193947243528192045511963940891806376349224979112777725826115665761141787154669503271944599512193739320216306845275721736138276327437875874897903931959242786341156615487092585513428954578460575912871397808964532733722382518571446306616791458897821327258585958016421572811240126080733922274310589651903353987676841186941502310560327581686341014799260852376754599849694643837239063535708607195207307671442016487960823671801925534660207360542763748914030260944365541050231132627081297612224707967338889275514321594237430332310801178242185601131563102838609204752170862119796509228240015992118188897017056623999821621458747193971107918221825940325435925762494489465673187347535099410791625190829115568712412530832259754220938320042184783128904103437035244862076238594434982643223351190637712115750957596005552349508736522172908175263436793867801041710172546237589455552548424319514955202471766964387606790730861968224558318677061267367664887360088572328394128938085698007092246195495425860946449500103339431496667839733592596419017723409000777168102216663417025788781136451548729944933544322427843942271995749215978070562045756251822944937953005519417236283893830058494963762758883509759804758502720015471725765971490437089556178635790664602642304824708872199835582400875231390803333089463470578844695549996172643696937472490972688958929105581161820292407364352288236201185562173020169826675388866155664438381484392594712028535379376290092432436762277889628345352857794331362611614163527273166013748769052952377044527907923891021539104487896115670312780057476099517788828946293215559783462662967769764903272578232316771758581339568135230533994868678509143669231875875496720166889634681127267181768829336650767075395557129377806160949728490315840503230544410187141514157169953216748806347030993761021000285995381191508958701821110065224863925406599777289214317290093946852245426992307997186697488821628623263500444742593911563501658152765820949469257382260080208787448548696457754777444472262731286909478432600644454334804398415157627936661286286230325411138477579768207582159819594424490266457130963375927422064210278306761428360025118939116509418443250315548403861686121574514256203177589783400841079484529611681706910257162064259430128338947227414643191887834097825797290133352834116754919983670403328771670597037359012179970246731008247489766563287094125256357708397797544329138249269268678596633596315727369902889836388595476075616735829528714485572149506166641096882383738287920396967906737543143483765634710189229721742423064049624016556112516213173169648975115007401721072539656665038108212144427627359434249799099217697104213269389016311210077431031370616743532664143402239315360478263065606111978064498257740417229279648739288421122999805435157613616127602282422812346459944496934097457506629803984881972679804317518783672414916572600386637902833301453719566679111472992034992903848670210705171517024575852151210873861728168826152333601744691918935697711075280584452773039186825925428842875240895578712584679504489302677416207013846756487318222399564821501220435681499357231038283810417540007244582477323118423302872432775947116976945278413507188451437572922337417294641496185095929413560522739961332456001355067800993630726927940123099944373911385044934427835502653355018083154516614984694429947947891095721106438279189433034007800597460356230183420014748010277934764799999816842266728348682330608580122672802482153210838796095765664980017028775124470335926213874724225156116975782692512758249509794963813838095755055002259864830632884573604259355694687600874445236402271897151870595261219115015250564067915336930056575353202977172959440885933960273272152923792462732068219504506409459271017898232322905816897828460855707197067584509521856878375709297209721184696889810655758224319076403666890351693362047799424000001615472255628414334141024997254750826383850935300891809860305861786389020477612652031098230850860549236294831941006510020476771849567362255025610604817484706020286171203240971965909203661430862339317814894620796347795594970193163204419990025174881185070726343898382484238182596887540094845320232768640781786438078683345011362506519188937654762757873849476867860400321988922011077750751850097073756447184165732599180184292984457208712935465262016485681988129930505767021910112987632787532795575522549325034844185554284336896121028082350473299491496582715101648151618787844044404829167494775570426979846801929392887199993642535462736691301312900192513080911472302573429131001665167998703686384709626440688667103955724873630710642857070887471532412042995984363064873636333762839701985094592018597318116758635229999574915840109216787774251821061432382385154092811234085693267636483678821365277392937704808710518950915462835363687003914762846959309437337164449859466481757646239155438625832649474958444211782346289362916501094797911531359237527971142078645404280496031339509368366583549728713740480220024814786636460531672317207089350315145754324310701060350478695060315559138085111220745760492902224128771977854040123921404707862464521818921719492755068325215419334281109113180543835661577298172248869816785408045425777816657284849860210480034264173870861554267559661819699185720084215868697200520657773237464939700734934473546727404634072453708797907295196547468669828495415973961372983533422072069354609363803207953063488321879246215981379576870510977826120887304000886268317860140279845472809642800786122731995127175428300006227405606150379778076208861753975963059820671129583668547689890871497512617724955640545850884096738887672892652056643013163597894505635769440833338512459228820464644086746288351030289875880202329688602393528532314422034615948979345570104547986755760781926070947469192640079102498933903873667183321282649430274339758642498392042664899564936030309383099452652204104216571352017452649267087604526883471759135975471740841974459139149394078875958883950830580609066022544967142827514333913157907939244935641633954154278741080723326176486735607150458493533306784893697479475186233860639589344418360684914881888880822340855318057038616251970500620711284338572710344666885990846538052153456858305629743068552653352032425438421544850603957074859187910767630209804208713558885758357809399393815682653077249359131476884343643890381072178781590678040553733448552886430296813556363671647138885468889300690694472286977858662962152228913911089962762819725696850955913277509796111661209885408661184848458195952722255343236113253518157252185567553837289886347357862804486980604123025113028846073042873332214446662661983003270007611389472361563085786225622351168176194371651683131754074759732956348258166800209649225618552665080548854584680143062396999006863556123113916258209635892370146050746779172779553552529935631252548326895829761261421818050442765217109034956661142156445551494859405701737737841055635555033415042766263725735464681334846005183881500464146494206978826437993500178463517184686667130082479422706866280895873067362575935476387625070106756225185850600163864666385820647459104762376597471341596686763571794043498245534184501451824274776092866820035666388703061621179315496354711088069785004833486818150704864142081682871669236686626051260279327555227283121669757463220157701730241986206714979024742740000501658425560051382260339080844033570842494391798411895943934394178787032201295858702590558848879608191383020187054194214547829631431347428196980025612939632817781660731857949328769545322606419820258056772991245702401328406452956044181524622964459523396978861850208608303557717501352911173188251471104081582809144532205168365897561685148751728058430784455134739514629301909410817095291604132279517160786024656418300536900484115556425870403896501533849208410142009105826803090845245137624331313920841272087830239140631460749156688221823391066816593383775149116273775924249475987850927828665395198154519417637150589150403647731194547150619998514493215906795818692017426208596553325139446054781800505147328302938471701366707213276069431885178160851593581656997163251694601013026812335286128816491891312298632816002401528493079890154064417320283618781990830843822475844029463706411856508873054261016417295021355512004048448752843880174752466195870338327129094877169168675301178305129477346671794809225324511749171705072273105142094813738561719133888099988322861172840889344018781794451060114842381843080634126956846892585864173754783708212589589482988084531666046608141610881017114582227173815581360125975692576158257676875789835117810591367714496976324680114696726383537906428889758249486586477665627309783016960083860809945294122045658762338922385392316105512912353279204808444329939027810444056129089165919242868305453814393006164299098617748527229277467714662806975743436348876188161959398491763178185597802877155825424592368851605600807610956287029738886104719727296792771586493505906510158860651320833067083797594508701559731739188205060690970329126898776110166845693796584101082394261297903469212451482370946541452997533201338839482601335777568272115317126368987866097780284413680345296613501785041110011030302653506052977001292299642166000894578495148958784961682233426504102763897557404933706241389647821783628251528592470515511610613932558309911967709728410515792279421105350418472960941122433147345345746684894151197685017425891098215334427577834582268125711904044329047858824464379450601725552208638010779851752365353223288700585117674203962289010005357964911625775891699727618248147161210647145026811029786807275828831391401982213966916163170273752143991739305827933543728025376680308511763890671357966858888139434427700452134846455542394639431023561969422226521759046853185247618416204377125149150970056863235435367666192885310745372329466655119665810113097692730276259194077668989897352773936728152906195235376216648459458434528596886954504006877075211548062276647868147203213809822159926542669984948604388486860092699154982500472997095003099200926682755481005554669970967435065161106353310398996390279448026078123390965808661502282276637080430929988794023389995275309707658315089805703404142765386869287270027666148902835854900119662803766798598227698206023593618845036727754840190702448780316012537066560338317172772761268645540992728627768374174454969112446376239313637264837648783141464338230141454542019723961606923468923747124482052992847309864257175718876218707680032982252625078914396211116911591226932656733547270792927282498713987039167174014192698901586384376547975799426418050688831811299616495865698658508829480131641030048717359866189987719695061681769481843249952206076642541797357551796505036088660863091690953246230067909721103393836715025712190877581349078237527024821213083671220084958108232493493471687866296171129718237076170937548087369687699492416927752134094228494399056786974045773921773678922139424815359850158299227605047181247921178043896182535423018225485029191517509750017788764941025643051440470104589563267077543710122366478665968091858480598009234710732467094436850564350153188820490867411596243047793845214295748900125647886262173373905085504998355869516930468449255975114097793981467481477374937608262184002573345516103653634268760870741870985778801407832060358520970837026411233401597640426827120825342802993180810275215477982263069800917666643435238901974777492260690568869949167767497118132839809842395235866772136762692990146430024328066792128555732378913491159353542870838684431845829603254032045730108029689744712259703659067824287502221875809731093168726701355599278545855942558453855652766708995359667523955519814547953356073308139323951631219918831336195469500980883391073560345257733236781318063085176704437578086282267013592514417717898818165638418334771505415852569262819018573299372768925430952897195465430905140038677304273957624925950353234477793492165528260678207237279195244367282795678922438938935845708122790597569911285708593000923982248941849187703565652790119687729450039201735013155469477728532370616246129022387598470340447948312620296969454333482675192645479763179387269398586044867658203246459225527590389923357920267511675344364209967837545750137643218126649099198881409288792577284837562458982422519226620326206277684626307698454627122694098936292197807473712297268408313610253835234412915418675919605118525093179813762022003724718386674789160824031005224881845630082294765465175858147352947085905790727801732735541790116553619865697003692361204508726082869808939314380007156647988472124175440990313479528112566944208905843684637779109201571819590680459156287310281137862058133939235149293704237674639235924628918052400402943993858344345480798581243303094449030308400133957780015890666667529868109594748944843827725591085205102994276961547008060957208470707213697667074885555521872504009324763867870121317585656979730950379117459614128324106554013968218970650307372986144839829890142462124808786832200793154006593069293696388179744543804488034725453956052381598372878159353613677947792823360684961813696806969716388922751459212343336161639927366921818128569815537233449089187902724656547184901612924216262787832108496801810430953520156737222360205360551553405270508394558444022209547481053143273149602071448916518665130927342448779715617239543704169987032624044878148682889065801569290728990418501671926194170605399361425947584394203071531801010875971605740640914820190051239131835498918944618482963333899857784459589074959063949983482164151335902090838411064894862254552106331162220751126315877159927650287007935316849436604580271160426133098556531344024476994434055482879475250176084188001384443626126965671597735353553883286847150298905349408543301149871919336128093178131806164476703989523918275495721202307069463657748235330270310655177405065489755572308939451283065672476887180299997308350400322511817900994156945414104222066863245740315296648293438802567998248200889963552707503571442261511619433546333913358431784262527024671860577221274815448504177279303106057601301552615252339900238516483436917182374405523326892029793631339273539192574857467828357762420506612081183881575697106155995130107833245771130478794758724705248358023390429519332365908579225746970066125646952332232149314783893836331262112478571046751553723261787994503998443254798622405457943099185899660316357799557391348594440953937461236572818138195546154179443850056568060351083489787231986905891562533889157790503473141014573498083834558989822940528327137186135729161847506019473532692484751605091981607732302155433432963894947061636967459576328384814504537266715590626485670400038170323701235436200352821432771464815707604501196735847794796107725746706753224317420067872310065714851309287609938077445557695407025274077048799348321902390600137321846275967191855740617125469278465976760045822031551877945884483180848658098007828805598946678674282033578712899819015005453129022188033041571798521656132229373099955714945242843004812380518954341555448946823768248738486416669272174839663835754595315233455095572000229863485141129367786942823120058990096468137020718716306908759424006526088866713623166896815641812711562146292206537320033160440301139021717786632398906842376758146454452310255119311864277033151168932462792242217715884838108937466454119920593827404550795793959866776446433722084807799789314500418157344104812969822791554366040023285627638473972993106637717005043341650486654952441055250628953414879218243796738552960207955218995681272938564715237825250537724598944846273637719504694560753288171887835405057823123976071410454966564825448283021953559436734136972983815621572218079932357815001081720739616886203181543386223769858375173224014643305565448944040891363767096642186460509248758824009302485696301975328267614768273930881721399198203724654010949472344448301127734792776961580926065761385882924298741622466450495971062764590595144305406822608156416460429932652391295401461612385102941500346658184705215085826317585669443120926536177890449840268816318711772474303241971551275223600129841178545399499356133002579110830313804370301076272638153528975725530146917850744000931969604664249108589530864685697289834223386700037513029362202458999701741465569086654638814223143290641058298467264439798442563594474810928036543291280628197080102613452909093402486870541120991613112024185332864632267324944260781265926982438501473637591070408057297560917121651145931830306503397076457835006554941958898499135374080033361054178282706315367801127138304918527721762522679866619520294012336084708608556081674314988538800658500139181492448470797877173541588458186070584188470600554471356344460962482051928501843345360133032329342536932001273643034673247606411537256532428850294955626692138408541680138450297585182969413998381525773646230911685909114454318213838992217820467430281214727101924118404545044023156570268290828243219983210996914752164703706668741835128159024182763555487733675238289163412468298446770106552891317674002802010753505586226067486422605057842644420432151677210043362341712726218800679750976411064926376210449402005576311843874439918670532630148732131933152164927214197425416245686088769638779690067735084207158992841306406626377813144595589213307257263725588068447649077217425317740577440432156173126207567093705346330785074117310494928569360263115535145571530252035829091446730275731463675564751034945011244137399953785161471066582311824970747914874458138400564984771879078281215384303238094517761068673050397333781230627569382779746416396069524845734071241958147017397603520889375859937604524257705646039140155107519375102957764314210025139461406626451057809748347164181648634611454234998435644971613162815238195195769582932933714682252826765972841105624588471360568741198571513105566887810270149635507952100714080305690241190504266450798806680572296802188192256067811176328134697027274419130779740840494127401540662911155263816838585673016754216255423394521602391732886327452069898401628157883208829092350783056820670824171092760494413230693252345313753772182392044268713743523312722276381463572047816592197206576831880286854360408647334715651743454978817508094471363730091399046149151979349353716414657790946823351122693175383374911898817467009163258199468326782289480761917163490721326998213546798175736087751870042343550917179890487813496584076273796904812243205866991571622371466650293975734110837520520796805638185290898978100535340757635316634220790375408771580592802704206304428916116851029341234926813089553285778269052420863343014978225406287180174116930268163277785024243110771204731053965265368558457217371610689967462430137008267437486007561463601983444761221009973515827258548973661081257361548732155411858798512748717706184660854766554562271151315776410097031510549283380725525909869131173351505676402837490733407652297230783967376824270702363532448461247786112008371857280663135345736398068568541868714492276307946622275870674654787168921727914718014329157236684333748309833366473688121213276201122342563954677839072302979727301748032969035314299308324054384870515881147227803723613496195626687463103106659175766303316857595730021949567987686003738312042085799723605581725051350217142450688733252956139419794023765162609131390568955048921409917830284580990757535428741625093519333254678980243086093340951818215068631716538214111879281343680652568891600915384194517998833951596423710083373906745615592821062676983635472210815708754140719920990026536281889503294932530020433257890876958446120620554312018992571578127217699732356902191753010721780127924172137786677027772999780751240206187217708190878388317891418424379994875165426402583716091435308541439353454000567845772672455837908745724676842248350419606537104863865601805697336276209935537239848014879199144595148847484585736700162181793396086883961522220866996400723170236960512261961613770681312870070090853798791433482811154484086330769674042903688567431100901684162530133976366420699877661536701962152406237865893711840725038537958114868727695220088229890646863149117484579348505356752165816678082362157340750979744959371021459824846115786106031729395621162807299995042652229483486586226788083688543662920163435709639463804714247709937984936201353365388181733237792919804294154425253732778333001193211982594814068864850078397390146321803753168111597226285216191194915004892733798676056601222188357524291421453210280188664915297173782649709762031389610709071238397023147070939575578919000731543406237233493948761415283208062386292833733545694379865929041133165647712290116312832159443347125202545714009764261413500392562601588911830540436656817637293828802341939848869411260416411962266467830280243886799153863356294403892735432808027375473146774509962025285862520412665993912367246059903273253644119365945821512708001406740963753717513165002531097927426606655658509741005262824112891696452957352524682296949061977271066436570779090650073779046469288448125454327261620969843042370860477880120857654221527643700389363741221979906625080553379960959365900324646147826721400170216839783041008424272298109949330617861103645624158654446046825904397718425832639553682964643964351959349623421679605198744812438714898733759494619427674952463363226804050329670099882893262042883185961951999112345076450778986965930644591337804387404369054096677836111258117507204617774145676658027267226409794097946122889571868339758552397758747091428953469648880566334377775962204444675780908011103112328203559952277777305069575951015494022051188502955328184541910361672122077877583837561454388721536282236657188048778105815764798902033424684850224871401242176313549684322805858921861352492791717610902833905399004961543606672554994021387147559808052646135240610578790099278528872212683186660640826221505803078147872394949536241168238720765310570220341038761572452505465851919622113704828021786452889729054849119695372900355933765518384983539721463928591425960163925605551462619869601456368497608890638063127797553397888392667478177489672065842904705167646093072844126468676399534299651364613917149203205168543198495591593364014767015981697020600844350109710045560545959466842050637037542718947647300561646567662391824601519226605115890984007118456774016641838372304678399391713741806154994976457799131546884258237436888978533237736819766351178336691549472402171452178344467730360230356193032389163884696888648412312537584271090378964904124943804457175232965487587375685082676055037476696740615274308667256716942409790092701412141260271030372994803986603122520666447241808832935490560848950494677698504124262193498407426538757031840053217820411720846252396331461093003481958891920884073516688534039585198016517188034794326201790519712419867858980336431511854979324245564896169897898845746500039710058552855518081506374402898028600562641511119057656359870032617009114410747497005825408595256281074106017118607081530011187132759993394327138103131403929646860210703320558473817398449842511816159608725788592179023380596084783573922883755703854669471996772976943966085161442307605438757472485859779747485750476512972188175361977800159685544561587534253555378701276267704313484965272465770478882666007789211061365213582161586265483371473695769814060901998438779972041585073657378203924782388016423999834365513874984276444110749828763930972054963306873172830651616589612757686854251378261494478042375378265608841777661128957383584556475079208889944705265988302690731435404676914016771052354549790309333755859417200509020353293180518071351021636187055525762162550130487400762293060770338018848424078974275276416187869745904424785993037976933296615998582728241704595082315610240880167268180523535075853657161100873261056542440036618670531503252659830538264502790669361817110390971974423303645925865553732527022757466680254955348312802452222490499382562305278017580881433441905105507829676164696432813525357554927613515248229026783202240045459348622250421121355117760714246748688872504187510214098160266258218575099569663207566350665390115791103085110700466824908901513374661709971042675992765269733958815723189420686062608955192168856898893553465723471036366906898895919309741744139675056002054729205976814321804533695712465579221321494643253361794487786917311927826829760958200666111878539445075914821338707287402553476494555007259941102756036522624325330212704721950365437459463016811910601135972129409399734506911459375688835195595456501030141497942402498107336038228280832598340435854932392426314634013859299783553805895884558131196561119868753754553361772744930802738086543098692425012245078512231839872493774137073349668871266386899067681250137962472904606346207362655430812566471317717605370046826534647104631301951187909445162816176455222337080777613352878565436575799180707562814697217608575261285357033860143368051011270331573876913399222469401418997471916916022704363692721623876201418093793971146071156807706585035552492612003279704309882243507733438132077762908672475651594274132935964779159680234400386966964941192775330053386462826227127814371856797004018719090583483480484438106938130810167237703176591265636753888264039387791029122835950877366394834244118903887391522155414058257003761059779032976877470942644153404911083108654010934323651503772705220798710805349380504464257373653991177767534310326134854130296972486733902581839906748232028175417165236998046012839475523735900010102771924019091341619654028265666361974176611062746109034433307169982596345742168283498936994021274079196140355560502273581682618016536352787719540798307846143353462972389526060810818725187780181132135702497902867078811162502486625242923412996430680509720505553428762323015584913927481601456682325988251548411022182597884197227045391720114044569624391617562063113863194456340370715968407329469510565336984816352148296220270144225107568953322985457227812509045679230594703920816962505782676722564902612568381045414867885440215453675258983479523387993432058221285539429659624374713855638087034548509241398150281209523031607932069864794218728164923220366945209748119961694908876336956618412503879242916572397540845428611677406872525525686696536301135774767958275259187796967746697151031074882713213095681839056754229435794172542255640844189362200032382779747010512115094284194665433202801690080065431506096373563378954439749731987609975933361229986998563564655833049944435529932914866560014940209067679277069056562260037536261162842941152289719751118917101786187998769359975746701297191729830214818120691254055848250011301276032781420187138365663492378196426385621463658370341537674036657430502939248887734563221205530157393035273506598173039264470607536340753463769372370322547993557965233323363637073143233210108321446294549570186561457499793622018709785655564622117299901945187525385149537818479432024159716336824525415076596366797222120815072507384390609415528818413585861152033760330715950292327092294503791526176332783983335875980162323535794325020729484265866860724270009717312869046480014921523237940190550979869175102251371613361548019356783208153435344561308017126780352255570339063850921249735592683704569646533068865186464892357614188862282476484922615063836308960700559519281821670219919931887624346910947801891665798689217689916816263514080996018678691633197717702204030381010703143168871548321886974882820848405427617867794218228513502984123460000302803755099736626309045242373898304848416145163746006524797345268827191996346410096088845769530202206809150587581394527223062879509321784584485814507646729819050641408666483969293364943532552146458674113180521475904922150215931403734197938224602347890820143061217873619787170004962234877665138145983206453929576157566637114499715153191741994776006862497459631928079615360376579453174999095641155790785400707067434858068359729671383445657219303279560003650374215716795033178344049956646269101279176441544834611936847369511502566205276077444809915738114323742349025651379013577322672738566451885247549390692947130434821852497665426999389629066690825144457238923347891774304163334386695580184431193591594260112163433581017310476402903680788754699090857835713577825069436224521812051251690907998397100408810728649928410091684986628890068124867335781424347885621960288394539803118048247653238388474524139201699474204385776870831603127439680708936472085554815081553583146964199249163742690987832586493864115294208560998086805948152062562930192839339684409712971722705630111390836252969074379667108306408698148139738076711771232045097737080373721531443086887565140849817527564710881538658661699658053113058815900822755267247514611729697245311279038382171955216337641480942903832151582546124730552401350435702853915035618738979084840712344206334431799561260459058535115569222455200300599567859302789813082658230838016122875685332644719907844521513008310609088700320870698092400497623646933380154849752587896425016026717022057410168522108895349087653977058379085520005791554299717211087152930133242264844954760053753215541902030990904453746021689652200626692614998137374854734031921697286617208117554855597619449171297418310654385367386938213051969044965584198778690974024502068079947297128563914508756874661361472961437138700388359425415196857710932712348250831188798606930170184878746254824179447659660580111810752354908510825771161248354973777460083362898046247619782578288769115184304779516208635235762748468192641992594567510665264384110919563161508256704390484421861738501370852491383278482966674594036361356756604092434417929700169605143559207604461343961348771828279176404060813363995249302705806483745026325938755680903999937056688015204453151470743500352051730547404160729700801013978498337526283579504644426658460271485340087320320088364676546241255853773335445682814431470647344129363452109117765684068135688565865851203100907478108748602615782049097067460507911129057184409208607038270078794713610426340656494185865575899507154550914470705116109869330978400041212033677933007555084310694744098224231293875955903467663728664333950338462789316331605774799133572538280181254307150280442924817234417862286835175187060517164470252666270286049260449878535817460006580622698951866997781728684923833581060468541866361785368986885871436172394683236511760069565423043360311952757266729343876466474325571270635676132376797097956284566363059084231573754691001890552870197895826655087823089295504152278547323304574747897398847722780526218070175570755727094092407203940458315949851178113886393864346932180583450655162880760541940254655543486528597500758521785174362189161398029018819672383447698839729550607565798998511866811141997896430591702157903308393867637730389395945960593755139315226782669554739909619321773830181959776213953867196673549361082681847521505854450315126475435241550031832515187931791427596870775901750144657059913662860982163208115955447562861484259732584859069279923986922021747377042790602127927723110601472855310005660619609660498387329070463021500311565153326427727090219358509809661217185569735219482871408747843309326020961893512605341577345261155515717217146764111853826916395712773507009337113054366774308611620771715210014057606572907105805953265293419549900725139437620690767236088682402406580591527243616348374370409890294884631869657238875522158581523984413121661820017815942882310812011159158225376156009136939685005503119025395749376366238891758114423157957392211689771766110718046878788416346643992138717920185289423943062297307897273644144002030091631298334231969725450192052899169932846699826076933960496338880919413968241107517501534594081147189223607313406081077396783987392159552868741410076975930300789816378274134131341132067954042956476643844039851482258068740765978593079887302815194239379788394359797032581594167857335978532515987357357929573919283245371821095235029968043660880462909179266110023575132075925519549560125457758133310107183074864668864944434902635432345290058952554761597728544625953551247215803300530805849746330450646358229500711492806422226078178064431403561053202511805128853618232363913282336628021244724153503070523026123202662539715726005448964308091263532367046696078672610141232770812430631357739557772204973616048480364199513874544647088485296124956303552186674209987266755805942822049602828483427816610981840280353505298974122298385927811030945751040085707525826519248518032607586220105499409324599815331243607185081854324740360408293343062891763602234216059224013331071937196008788479309252907685720325018948691489483813200236116072541103476497788166019372834698041412854541485483670466802864251485853525857469622973499838748883258726159335684476426945578612502733764498530760694555462495212302039630925681625786978402012576639019181916578767423004294642588875472722971659163509889878490501428857618770540473970845556924760060808343313178322257236718698740633419692129603237529672851048669568283679762848066584909923543124781402453506255772708305565203530373871004024292361381037188705699795957429356103429449648099868086520876941985474264017003799364963369107960766479399451198679794754513103980475294617645586491225031259964135411435945246071585334287599147825590384003113987821401755155922760429175868023435442302963824167989867473526202392966936364294809615502915785767766978782786861832151632678107545202504526304609508405836148684718664637454840395318710049134188403898492466228143052976621405824224948887586644670986629953412564628196579017427577604667106150812969245427428647371112566416411505045771527669226667356369847991756114132268893295490612466637224676595579277274139573467195098255273247419067795036190751697251597291202790805839397925360063326460123262540895953089627897083775666404084296872089294100390488887637858736286882490247686136601846535254693759436817326946929561897579393785181689909911514004555294659493845763057933406326351961092596679067166305558852336853711297224640052246902270726455288239253187582497354096200943750255226327413730257004147399331566820354002141708056518235643009808907411822068767825352064096997948190079208366778902863100226426120154075654841067294183885642362561249429335818461542091314641795214340715180340444390050282569814717283764955820748468026835384231029683876389275580195319006522786289982411992511414466214629545379781218253984566713425017383216335843409483814076307873989041103890380286595706263595613541649340346938143625199016365169625724670749953919398254122552484158765686542578038081271156674210188386127807281046294951703739906871140603189225699219343062492281259571547317325938337895080070445135165760057691257992916513600943308073988743007954101546308360916027961005898713947031959356273761429458096064953599096500309346609389154227717342892961007179516318165888231877720852514002633655938370342303559837775706883375148285205641772266035482997446449928565434814829570584013337104418188203575635683742278418148641224977654729798518181152763001499471108820347776111483896667751643828598955650656074303415764508078699256898215615767594267835546464198252225165861077412833427159663587413226525350086192541861655935291132426206583915768927165372553837833958790518301021456221833702821219266450953606137123269140037357747923088688192355390827400713439956795832026642013462773759433443279510546506578197731560970405350315665142314102474685849537521313660880358774042201495158744367934611080766014185726650094302578438061632075628942162479398295297656537892491304949287628147395923964188203844937547294527225311403670664309290476896656408402833038080901225554127835700652896794847270879095315369223977598335376126425596862338509865510977340490968845940170675925854189342306801602098695658992484358706642735350914936034456389585664961421598308131237948517008021012576700508916602975366387910346275691822546108778487562286085737167419477809586485717536731750487328254411949071971908375869650005401398294728051286242727835399694401453910543806718615637485356916296600291310030423512852529977468457829315473067746560676225148039923687779286849102433539672475017849375483468494290442421883428334831196920129385941779529260138075499928869788005382602109771421336628949395620864298044973497684181911656179941343634342394073520433019711186715874438131741496183277235630988874454949157169268150910113000178760876826131217993470801205108026519672550705499287133588210971864407741894080110865919254742723688902886913285687479978540885299818607482450169429237751576486886279322248087834612604594973786929342187008967571316887172889447196777147298135528565556042618268071077709428672461405830634427161704580721359196799558001007316212904135278754088991817945148410779967926357570044239570457138322846907028529636464882481829713288978630246760922063688972854160699619493728569901077938789078005039578311506312420697136784293387127189712952736731487303062759692864033838147977881566879127696050437531043035541300369807667771974076146705677858118715578116443394208031000730344775936452183141171586819987829323077469505461954448418755912021156690395646615670035653813921298338974464300930627644816445512504379992424698556881320844810560872382467328163360347266411168772887457063873125140637412526734556083600000917309815952082944208331815780410345494829937375036908374361820516703727569612318214486141132106333361329586723455640319417668311091715362443825856669018457648403412370704957754417284450954442234986131358263921526190646562246934658426825870489886295301894050621143506086435031768464601699946912987411199554108074193250505356799122228210058429443075502642472119960987781779803268901671947179906353945616469400470548483439184532409885935086584071573562436965021054368628271551544565237426482675753548081831311261608082669024079949779953914372000536905811426247747960608541118831988404893553897943676403969077439594097354112518724066231288492476705561541739347220083749167543707495347154605078588177544825740217409082215648261714095153641453771732865495402450677971970020574730083042299976685316362736316947150839575094090534808090576416180411194930220036761772440755800138610602076921623637263352422313997694252293342618895254764330129109117404691673252061572529171153520184591101632852218796552286911940984729334538504482577916447229862010382893554784662808998497265673409923200677484242262746674547858597973988341260662851360371493785884007992263862972575248784437450662602389932894485163918607763066012155438817814761398078716678223748601736815259411179952877559658688513885065234025469442952068937280439501134566857846521480171544172566735620121141343829277106518138519647082538496547343213948221991695689259440686310908350300146964144444925261897495352977381651732784898646647861949205785977747529053874845010274653144293282621491545171530120270765680040903086119281731583161153496348991444881088881199285110323063456766448235166109144642608284888644026353117243569194974231740295769929721760477199110572587968454955627110307908923365538008806436563653533474197425433279816601531229393216389119497452124935012807190312956785249199011622055608098519475714403057799547586626743018098116096095977440048992301378069536778483727328125909383187584691893919483809672600459289266034683036494576674926003179694157545246733977188149591957082077956954934659994261389082639673590232454161971034957644431169916028846628720571681188499156038100610782268485578106672961671193072787736309946937689686226799966071628667351527016262681007312516082183727763182528439577823931105073345862795493875632452617213892549063647035532640356379574341998696131140314691956711379339670172361166603383128993627882893093796625254638110291945170615141192385054461049984816807013200845117994330867477020391792251324895407750869705990002850797696177318213106090347250771414047116241347366774710183955293089430040219234369411647512745431484010642324335153649958834964342123025470116633854463305663986927018389342551578128755970383361189049728352903155710696786159081509939004502295702631436261005436362970311996700475989408273334915735286299167942619733217627182240187514107513786759073401305381844172980288288961033358586454828027941336606838207241760911464609133463727233221655982329160860594729341741666077803952830883268408861642582548596451011003027102633451881926956270576878382130066292824950158515800787500310295444038193692387744161869184835645035455373890075855688023987445752662200448022607943813189255184759544644771443601505844907947176368106490436133806324266658245602192721201217008855377129866408914140866180218690485164042730988880906682681673591825733358929972192784353699103179646722408688874219526578787319424308037658402754132653614476176071154480785585454601049563229268171451453640083033776450811838880252963580631273020183323281852826249450704305371437665211154793687099694656412945075278297389431652927136230271997346158943041094195453336200718917761608710219721373551425666042745892575162811597094669308394862343913495811918144025064027862911811382094383890649890598696837608560306132962411855503753586463162654986703515241487794383432449275804682228209684493518802470225325532896184506868555633598443184883624169644139540728125025449901533758643104596959065363476104813260924921919834498853276306770825400516026840738422278663508278198030424232336335751963353972361197117078184485746535778330372175060525581841147745217028025110549340331946578226559007673522014303459996792896659468923181825338720699925974845535391078488965038566829167502113017544695912606142839452096917629235402358966972234516997215126244157176378259512583875901527246381894686769620178866375505271063208528025039201372754126914606611980082940151785490271193851869237852493180920688590310374564376052800693124231566368119546765212762659252489966899676728803089989286972241707229914658389027050887207859756794143922034039614427790379524248739671454431358443507148097855967455147306048236403167310945567118293579759289435095320049592465961253143447826689410619729642046373594406817060368033756728364525500015991898454531710889299951417280263754712275437555527062670349770088655421610834120304889225586773036025880379959604595385970755515946580882804109095475925199235532296134971794320580710269046130493772885121225344769869449975204176818559779096173079190234491683886963775084031717500518498995384263076372391085890253483578742675336296251881371388278578079782789975790801275935919889545933932404134259292158032276518819177939398044314181583449368412607205587188050195482133924359638366537058470162012987127353836884804417799602338037715404898107994558407635918240312950493882466839119801774868860386574866104178000726766310308215399311121482459922468786705777161825616208423748072949743557871860932979464639202763988357131993067931690327358806674563460273716935802079513452080063925480072859638106210815429465789473766564984224670204162557953989078142427639252914160496600750112648246320200329940698373550560754603858988088211343692992007941062939809752392725357676124476960365998363457858400193493516827238714955647022408356511153444236309920461830068782233854459408931766277850286777124363049985991444385440727702316874222069817499119216300238526685022769599310028589313934020633984595592115031809957689251186683504627563229242321276574183820456923643280558706695988579009656340589892889742288470274429568037918589565590962869678926403170315704556271952009991569829511508070962360079774842999482401878886478597898991514199192607719051154714533518099539702145097875654621740138939468379985370876888992484146432305129751211703017502281805763152291997727142157191201486719605131123053888733154458994294102214489851730701813112657264693138159597618480957416906155686441632871847799429650969455565467670640202846049829100019695149147440160458759358930472835432446013790472630397015758526478341204440917269856143894033826589071905386563490586149844052407339941130583013422775808794358720651218429811717924250066204709738748739344572569772186580247441192752304236689014230181094835040679685640812070258611422847487154943532032530930236212050492815943480187460516575966185397527147910148617591233638909794312854023420288848155597742888987306888875217275219853392546433067654973680336446663814126547639843073268512425930460234530139475569968667151192856492173204117268723270208869311936444331219366568538039506987916876487934095479358630265090786998602279550296303318714875245369552515551425136340071264850767368700084524659718183624203560210117117016484552576691983861354555643886924408437093949054355446181664086841094375265242625951424191733105224086492943756652525492264629541111715316772467519569053950095332236846354118674191069027583538277529538548562859231872762370933123379995880024032089082768940841979074527633920842791436675647406060633380465506850517351877913016025012416322548989738719947094151348478937287223865777928498278588555643621190006462134035746704885966502183600225164398701593125671773404665329770375634704899119603590904384219477362140369445475360468543485033074409419721114579262636712099221324208232145462255753791161200514122020763973526461131060858758908656501404405458153041939345881414165571549215000560022708315475013883432380291320312381995435031614095892643487749975988192757167557525878343413363487167977040723034180034972027672617227040980133689702747947417652264977737364643891472902984955877338812669430500254657315348503177691025095760226414259116820523799045853522930281085684807268569827763938834873516291579777109333980830810635351550545550140868223295186728901143439102796700531486741471393405236403421751095458046639776262848035778002191968115370325213657420691104411611308019653490069748984307565335431992096352336279987237037220624160412447580129319429452567869479373108725798091039685319884617134401747266911079396508854583449179507808781011794328097728546530309875425234253182519997136502279053770197281654612958360332891237173997206504392109528276262092908726160965139582570588705332099984192852558026986996481464472803555229903646925223961382156102754673316268582119638575424191893119770942581342297163244845344318979933195264681267207700228937541040693900385182061273708895756938302453865510236811919562337713763652875938352286811884322439677147811968074637780032993599276667683511450394577779775457264235046376685130769941014395784409364661621784322527361664185149152182819033663913199730593608293964177595118514624377855128144060324568272282169838360075605349171143482845518677221466060387719348665167244388292644923836447819927062781006705493868398135252122664678999429776219562201480964013920392980172646314694375969548475341870797009384877130150269955594377418334488311862531190671613512575510314303586303262052618935000245630199257897165403664653532225199928368003060788637030872936656504801757754235301057451670551567404788317145282780012566525597715767307267174843968639308198530430157902097759614907394431319493287434688479704845033296719173614781748369546065342345718108720749755755858930734725008868485078236658810545739993819472425579854011141686081118966840016083364230744632547491930862067850075981982626863209307458195626311435374650081102411575828730787535063929506955597360988421496577787355841623377394288382815754342583396554906296932095595675854301748639751251832375403588467208116853510778599104512398224340550375045317748743038064717232509141174889439482380008343644232268674983511733446122456175728773879157464133069543867997595394348338377222224425463844174099933141830261646438208531631431820203588550364276300530296849314405600686668717525628450249774922712068917972918027524451540341426646198867349752010771347815198594502998349407286176280635310864129822162182925650276450983953754474601105254749756743975911602315585809215127603151225740052313415002597574538430614259686153371087956421152612125250355364619288379966438169443651813130107065989256075840834283381345849023298767560726529160879973768813426110784306945207626143513829671123693874209742783080070100372389372730794351490688457885685172663247761492124165083678966992637212243508023549458770142902687059827335474869860425969045330948231127820021900455358342266079623796037505149466433560911097418601379367816489323061311324709574346359763549286064858243216519365843971179918666731661349346334024049624128408424765243898765183778939531906606394885580577553797954759298451979948740005361561502014072151563698772630841020106351245099234805434850272167563191819615837942844823077985384078999262965967464130758866313481571562559330363555465736569733474188397947069536920843587939915438961541420491259579872523626336000174748667081337494706887414382431050816557489098298115910101792391308542862969623250657640067217572009416275643297627940364672150592471841165901272127734448538687121859560063159285055396649857313137329563214733051215597135939076579614565362126979151407619801921720739261479370083699350929084448679634885203636240609523028772324778861272099165591438779097591911137942455200920669155371584092867053515976021892157444899041186836430848230744948953687536310494049813564827754830437113452940050187134275917295843730537880651518550018292829834614126456938634686732453515049663398284163714449383234989996606746013039510296029366514735584393358078230207132892392676547013594920564336313965681331176692581356757399681111035583241376076550790649363339451730109129381040077014668353977100050382784673453132691968692995795128382162746764533596137709916091763756659276047869445198918420877129114556023248785572502447666921817105830819332071230411959690825469570536734488832609369401721040331665885754574726901902276081276444045193210629532302569417769261437203365263622866237132386752667869380028288210997817765722935843646579850476270520626119238650238960468833382293984306291556481659118003901817068156634454797641967750156343809711843773061987459876791672077676403825510681165018770460884050016107386711168598172559957661888600856276975693594761931672654947235415712034796681744571995015898449595304412470261771269685521952949737112312552108081516194826513814704383446793656049158699490993436906842564409136727878430615638022921726245205007749060216437363734975917009740442336834058198503790748338754273338311662062640170312968980387620756898621757008906263535790515157640787082077835464201576680136390056202183089055295422303096445747600071467022510131858235424813136134909563549219632042657571014641683677630153510982852491778239246600907661580733684865315570040025140324574103913748356605511701949110913611775457873494901980075602991927379823598535396206811826236922374117681647442787098295420980123899268308189542125444798981743363781421325947320749156535137730403043246846098060906187496616994805216041512939003260151351491233521434679780466881732988002291159547825041915816384414286985962413526014995869834488487038370262767658074456516228210832802027934015822291431577779710894118683382111470909948281464686570066672790775203945880051975289572703804100012960803107470670898670381895885217325261448525896863145546673739610404301334860934693468068340859285450596796370881056235499990841487008116624032489977545631443876934641692197109813214423705376942912884308660603385208298788455332626778804630581962389044230823522767555141317736644546593425848969386916341312239311904722732053521763796217056092610305520374007492646202511619352798429645703279626523956618815693384991555957974836052109556648073197794889902526816950020758929164491576059512197889753386216437977750078847654613367497382495645581954186795606751893140671532807640233313984503730379696511468208055959677052576839221107188102973461120893790682069379896986459886106139384025707721061391364478750527040834966136759983197414171358543357772990376039224876310552140312484403326766716885973200352157520098639011828887262579995735847085795528077977860976131668474506018105751336867288991108997522848524791259994777574990660391207620466946128177170517714087686296263467526985128775022615255536287789187438707631660352885325183227299247545558602620411047167251672825987833049165444070905645796774146043566641799463966492245059587443943632224117120847521825563148168566890648611129438069384994712034606976291881228612389181048115122196440283375320541610826314324324309305143448894155463294160896076415232718167630586608321929030314215720155375832750235405820169164037335575465920120550089107454836246008868861385076145578270286151163845897334073202279529805299138769511142858915467261019093450470919167524393345313886324712254181444863304986245821656383186008744810995988198610998455767988573105061497954868376797699864673659598982939978988614757229003996352133328417339751013840663474594887803193900780086281539674338649803908792541438096648246941159143894615692573431050276511427285114999052495481695095158086729696752829648508839097633161090672638186274546356194037245472403201070291005387593989624041526453161370851726952009849257686680937759291165618592758499816733318428468095465257744425883482678105842695235334640520751033317890407931208303811296485904804308673528130379076761980987105429413890772660804650952086040827899755615494659592382310430417673234317287051294872370273587378513101912998750911955130113763010815092841890991247784197661347637584721809922946439575438051252257253158680725955677803072096360670743153442799580093599526704480938717727331074678156551156761440192653044970895755218433865944425350964759040398053760943744751306688011846830482718280198267419628487799836878291198129057794857880736904051623567130044284973393771132324820382624659257142742721180938916816173257765888652783336444595547522056556745581726959866263501346697031981331267736062412860028392296608228133431474437545696151355864850809815694707452444502154487353001230291367353374705788090841687839704235417750498968885556645863571780209157983064945304060071962233049892713948618419073397253451398878365261542962949925389722988949213847991917232775096614682410654500126737932371516466317586973134058191117373515652124673140912380663820195778829151299420886004651733132157481633398311937377038594984849419615874976684003185539237637964790016536337472908651345432568263059390303857561809384001493733544147774656594190042493606221365977442026997580826394347772272987676394719323888032601789718598476742936001508944774381865452202323345356086003174667815985298962056473799510977757263904986269228040467298035430772816352715498949129871475107743551241551733904346809745746289032476891712714683062685498149933447717732060292210913880656001700913555090770073629213596247701459731026149753826796658410914416115192496385893355020594827482090281374793719684954784923833832173848829131034756173398077406149226655668188991016080822205863231651536333674869872590847801542963342596204567223662849627712171321282962587917482484900069332479215195779804631279882951380104599768559009012505738453237656439416886943462164133550855066288265086421584572323881466494684805094375730068073893286284996211026894278050313767176384840242821681055477992900606646554501178428856460526796135849622323566546009880082134681955448448867908699920872857112343284574398467383854527856126219998894213501930729307550267492767639755465509809815176088881183833081731632945657258497044719574371734225934193504715739089900410550349098737391185519497193685721952416656785125875818409547280727199038738036079840510587398246988450476580144801279305597365226770551957574839091440955750830984110674419128106513056819641213436966945664058945229224946334407533944911393806023164270486993190108987415159378068582770251798755566768707762256155591751315521834006443670595728137420598481086644445790421952246031463176149408795400276331670500895457880620119078764765402144344574108793193413999696833880844216186869554201582978411205663660546175677993160513604412845836403455429311607800292475523779264024082932450722316816753618948411459749811803931179871551028797977731769675827506487980151283013453993336660575119773895340162802475775793287834574725478321161567374544177904917191484964425599254945841894098977658353525070170886472381364849289713768725828213534344777767595471250916614134628939282255890991606650272181371546124830901884754344357959683157090848068500925383710009736791310801480131000717306843551869694353710792363294915869996970872183560760077814371824377566614400506108990601589699011009094361597397913505566938039131304343660767956672181647671890083502190931072175557995341544953922011341992745727110751961614142872255244334684106858091370367423307562455669418888489054699063665178502564282322345380655497093214663429352170780689531448260455125963910638808583054638092860865002252828512434673368420009928003088150790916956519201045486061367971366250956542828410498626728346782094716714538998284119382867190820142858516508753878938788573407212212778574156925573330887124568822544661459874173569449324200376013678197400744862345523857462404580288506778160313289056956955456932712218409843304546062676431982670159124343161880951340893463629288309082262437204876317097401364905796395773132906235733864557808396082554346843014508743858708850035052574355175273618310423784360111487402881946898063352371299307862953112452247043063333314658223952165146497729370740085031459119882965471782242908412020397119885832648646104710702991610570114520591896200129483595236476733363853968849732339691471440492127019071996616450089181323398329052487132364211707407470727883146167757762165136913051497570449948227720014164182318214967487757903493567250691482669213864180923646016890759106180581903096897605751084953819730081864580048446634062788898837761115411358374907658450542230941234547994825769866132035249949668789568498564681199608981429662452361623636068317847841505997927895208573502937943469123753772873860037283318915390257830890780901372134220861521791323015210357064857105036643704578742033501695078165762042319836911234582654767489571082683560716722450228630376192886864292821786259408165328250540275915630849186727108804154300436608937405825225719390084584657248749583444342736687746633840331237367508914741604890170504467040728727359248069171260857067875986750899900746222967061223982333163825543211026745738052640911350198713209210996364714570734793660981582437159751715082170425866093646071905350007130409352417316479854258330586969691131217540659790146093653988098116697686644893824204144061346217217023314957843808043899715625729126449518731771310367121749947646925324928043447131014080064992694188430330802222796370976467245878070552456216313559054280492358057997195711874911311101836988811856808565935692412232286755543105680856157365335004833868324201400077487912816496052887860070733596997477328988590218041681779500248140917507390672764098735896599300612301485259399348309291126182789424183015690948477725689145074425186252469047657345681182641945606785599398779883717444224001330208640331560700257987006190018721216511039516231014785103472996554116169443013910980769685208770536253796167724869908033075936793120269058368048409179492353040354611892056367355571099025836786774171023788420389184669745670418743270765576470068657711572505582113541074129557489454802363949583509337011842349301517242277543148615345222635006141130919458142058064878912619315208491812196220291381672200045179853335890504592254023889362516236910127404044239611444161990430737474808330867557767107024430767317257041202597980991366408088467760153551242395823087418342892337106952327651735499622683665621408117510039646921588314219570748309989665696180453044366673542742456317443289935026919861899360463123325053866536009953275121311418406477315994572774913281141671151307762449103580147095885164408247334381997163910633137650542366434565365248171468990896836289040500577342693671652174154427505701164968817375392012579228393818857443213924852093231694813065396407021599918036483372932540539516466552500506947678918571985003230395749642766337875117976354048178961928818640918395260094539555274030078187527722725122121228152433030989966363293111056559493995312182753745829323101938359258442664144724248198748216561354681976934631328019083844368438194925808384740128647033396377385513080296721179476952991969063257225224698335458506107759421194339684553943929068666598908488616092160708077080857156990161640160803686541729844317059069636757655154978101892663827571352841841178466321557097077900903852740655976461753769292923515764840786101164448547899083043832491635914863388453081428860916164853797395880363200063943436618313503364746094635340360620879782147570976799251963475646316755779242350854159378719870917438889652569216040414689383050236028623518751732409456974900194398029484263738032615378075280332075329350321441520386161509424064613830771695512405284223226653986683943852567570244352526365412830610017151710978760987951305368186186104303927162603497936615807951000088194353525465096888243476323802041342051672934343528693170945247306216230330139635552247331781725902073578307549296863161593282144811176829210007221462386966985690843142686697726377382255972405067594839670661738701032251463536784372734948140671089126262319019833549529868955470151181908136245384435390768754258077500337804442998139014632106049727583732476939593261282238790038341785161168147306958814722848361126790880236811399439746318176267347448595176596176419071998114785403618362945052614447657416566702370568138280625843844836852309205504222698160680117760198122431468168489786989176582933814989709067139600184460588443639765213146382677595101760002905124551889469774358349188924508036875105987238813958757779660848327870604039412574330835364482157330534451363653152358887420451335761846195678126404738291131610075361799927838159300478862848636308613124917331205619219407756904781152400853633065517694642189991384302432188109409932264654360628269928241139187186475118032826497907316141091379505600289250155424688917055829476515923326579800899787565501979495712244175256558249013763858616517973682721534745067948116887884110762401057045475883598381155571565583341197212218487047811482644000248482570146783951041716596373508344280774366179746681944355928976921225603129256131312554135374818067782298380614264507593854349844583108058991955721696947039441799019044662268530622931982380384731952357654797365001618706159075425011570508751550050175361994044315321329074309635124327624699744003237889358272607871114808747317927601543252507112262969511183081291199164367656667021322020574908243276405936310853781608711248821025965534685506584849698864274562519812407485919602025691932099041220570860063268216368764345885167611990987785077977427906722496269274214657226552124483309959202096032297354781481931101778014432867244713376771598519556225520309640308207138320252910565581161701850581332200560967589232794313972368622301188558904131123254167435422178598601359158118109407024779582291438294200997131511144224770731752270840484188884202587701520283234750692732376511243152588532366208652605631103637150990016177281064359144774651427820058561897768748201769846816009630724542200423632562262912599542714546198896377854870225910963822762442790529896855986463564153978430464619738956975472153107218601629255773581394453158590631774119362206887995066505897145319581153371873082109389426177982753720224742721967470558922510241119865173117334620772776700577516636671379772317162429309873600408208319913209181567773305330868938092246269186454793753178072465424167488510490754069105818626325423604685458329422706066802523567974574488762940894343042267647514009459865180415466247132378935976380070271311190032514996381735860894615144808137728047540020432031643940542060292097052581212207798567131474820085251783108024981095377870447387024394086007682049535178147604057774071855008931227303857990680560814719437639558136094964669546328604118606106416391474453916533235225937666918960650033981277583493214527544576015922849915939275695303813613309145302725594596719696223393782838217844748774180958221270111284947505575770262175166087008794789600482742978772738862683334555198197047290560974547082977629022243942280615858681819345126463303084848291195067260955251271520269464683310116172543708079154381748048392101685238244282480688486917559157154699163767885893635199120033555097820547736358399707233581191411330588771011383130857017421812773143380041302469973094840876854316080508925665124873050153029336455544858288276048650987014850576194049332898063339068920206183188895929610293512488968558797756520726319452792959800758543748136723068858023873402984153146020661606884149339582067713917234262299222700467055143066919995462981437815673774851922954529526068561744918895038019132376285085371685082627291544394413884292050029963248202732611841571513568135374540124588117360426024597055151907598595580414404324622205468107689043836722046406875311772444687747359224048230827327767379118897238646866169706647702682514382924431487405974333563837700958435426079917391519305563397879251301339364691970727201903010994678945977583696803452967895273705097078059353473521519530737278546534791380741642508857434428244219365835375458645493800218072249543924731340866719880155011009512564770750085804043422877787963010803871221705268475060615561026995258427787167641736996281776383160349114965791927985722604041123514348660357589119166314038980196509356207124498654666900985595489564094135100674175805346709894108882047525108057128549206189404930853791393269606550369815705520812363937962587452013583173060541208447412077110377964465245811157006187832595982810967463693075115869623180840610350282392906625666822486349041194444655263667830780454973710594282063840633181889046653361090238902243252537378056637245929413757890791370192375505432600680510568203509676650744542632876259903987024027536129184554791023105156615394592023690916141395503756134122470878648899356589379756408637600243838872726701788188898622376710388941772943355665477124369034679713051388516678519704482035811817422748216227973127159820193181845847686292726754928168155081384254866712446076472869121025272049682890897654692234041493221775345954410571178828471510409246289541551447831389840345969301216171321212909823043223678536607279172230885444552768439435356466980311923455431012182288283648786715380225565410220293417457257036078256029441734828567489657243541258957987473784887797096285933743174604879372008090593440381668129069927200737871482553238807444830726615425324228501722734148981923722939684088187272039865401762761951278025563189347314356321049700498043952276601460919466695502836838499066576664174164375897322083740345902971911559092674423028157922385255849918550818367668281502451852276006539778905115674605797506684046114147302835434416324694020245363238634804343652462300459826524684922905065254822892605630199200641589703916545823339306991037517072987273013464623660020428209500948692185537286702250276200403560677567731748381120922318170427510806927421892682498212713970841150827403836271639208315006441699509981400070247387835273067894479588607424138188272224848921176974426734252389447758177213026111223715660663413222676280633250894190463971942871459667622420062488350319385762158306475794630162142944277039550874769162291808533494740052601720652799648720816873672218835382743240516871103158958882673266731415621208917526602435539511970650782012145310316326550691244125100105108766710713898503051113482385996483802974241772994963199015718635475845253580464571018165038735656725859271772173353244792782692776452755080251363978155683375843685567787985009981311220710954361389567362862920405288763079992573848117015273956488655369371840517323246115084229331119468029034818675770669746747582068719915386915163950358519428810797039674070669138552246181131419320671192802269104043383283148443113443978671368629661398830001245604446822498217325841410474139905998467242179332293711516742328842881818905634304392690806712113660370187682246545305573443790618958731496864555294142054672496722957455886761060070243536415818686317611224548874493713820852694348504126832247192219590768946468655633740569281799372952174651000222876974845801017397799193848265231753473073939373882763827571578171999434596647425403199848812026036933588491079127666920577461193964361461794300006947247967072797850233888002733006083665672144081519901174596642278094685815382521211856394667219972717069840752974110303125578790517471508408299049587983922266665545118439175499320058506756387309287363394318491355711479703939378449002084313434979067232593102394168270891920061398391206936191688377902922653859208535253634043257483148609769848446245500290864399521239139221181648450872402372851147833362110373289220213492875055136696060753446564969682836683535878748926395408486571912155429001510646544285407658214761677020798519144926441730103752424884042337090066793508543942525839048957141309557159898238020566738204983049841861978910932364446286476990605373750748606467081137622429002611488298126313112493766064671944394183868101626490294221918822293252052507800652831485378568998738354792007235474811741719018293323280287482202157962946870483349895249647281666260883975769105054540231405636532159357015738883770481743756859465496504648225038730102963031014282300279096185769289728868533339211140638090014568184000348603508631898466996634715488873978136846923510246145363138214330925974742799076804599938471537610422778885792641067175701780238834861756281603399553969265741904951440493688226615218842404211258258944237584132523298560444190501445827129613745368494739978293514742313715935974065307612064047886196546810027304338059793578074951924711491887873135455418384976290311407333006810818353341767617386719341841690211445513528615267147746396813943182764550769895365932702119083120910240359683863822607744709242425014299709100996619544785488371576440543851684019572129663317865554805324671124478939055055834404456911884371831211411268781728636940723076376270790570953838869052889116831477147028755715470733566721249349783173872623051529005240384413836816867326961704125771820979499486245420319343180093043864773668598573555592106672869180402720660770273952222794841492783961805047102953650062902699447015091326086909974576792893559874105455363103698750686415499054562805284846545178795396520969068759701312914183539120376867162769420483648840160449816530430260892513290285046547106169412629783870164979318113810890894738120890790213849426169513596778330389915511654308811126458376693582912687338411470665624625839983356032778433281947104502463523036919673467387536434238104400599734806741084704179693465151030304477456491867942503941567419707411383571274407592820212045308718699074339542262411380991160996597509334329794452971819130079024689629784808817207441143426478912259458304373902798126787249593827644259757810485060247811457649278381116721568544606811412998452639560474939758412947674342147017190681487961087511748478146350598437204440925224287554348464963871720558851278896492728540016380366782536209008620216347881654360083179282335354546747422780783956314118496396366200898607173614147691767172046696634631060419000943562537973760942954230335879011065163782996981912347054271880624712795459629317634184468852555921942005165381940336920528411698472359053897088405074808324653296053095046688622539045073411234550407587134558505661644184768692554655000171234056810523987663757131036275589298457808455908753300735479002473961445924363768275521154163337391170953410061103362812470344443281485824941600608186043652909786021759120585064048274948880231916666729622672239995820929834610779342763576462628729685976762259018187746074223488383214997129835773892244646810174502354572946987913533192311488745913274911532474776562030530346891588225908010433778726706526601920371525618663941273117911669018124879165825708544429347465120046146202927655962577824424487873790354703448810620880886678039508191461060193005605986410719230544886735055926360435997644982069045149161090149395621430403440526783858967901050014614308910245589938289812372305096997113805210554239933138571923209728010258091295047459642933334053542651449510988978031793939303772763456962403994705164012984187246795764897843911437155933581408467720560205055279907889164006687339984387279530255302996870809860363345530912505356976332009501434737731528636564335110052174367398246000372748051125156130825062823421070261053344406299511914500545474085041743334822672122840162117434984945023572153913041344984995434127160045201541786453610379451726602485359899778907811652421393342859858720056762311802440946793809280580496680406517384706661427162569320416560889862469993732402436693423332673300643325369212186596643730926101472555673191512605023253151408511313568485287644951289254105954193427524567729747252275475837142777124939395160022050411547410521567202766546405072707490968582030729763352995247127973786492787339836995982590246404583494006555127400124396654100177543060540139731039441447010419469210015962316126549850667154262414803562312121418622502940528504896563410040754347898677853120911974732839450220363825679863425358696996521691223214875804365072916343732812952023816374590269113149569670958589784531209960334277152992272695561871992926570261819987735960404395683898829702645839899832893751939301138967063988943744594995183969459580642744805613254906287455470875083315866916603160389124733665531572040461405499814328273088827026790894740594449165905920969588633948295460069053565952892807249152997328592842760612336327903288339370121710993938425341382806269127648579328374581464928686732878608565349003340789611370318987681880312214618548117605649371046808691157929392699711506700053343108202101388830115855060289216397140826043649898052029818126737244267679517712823161995729007360213858447863089466924502034961661481360436264612488360963735826602943884107741384413003434903565530618754345759273417249945217630612684832184432450806552604444774013935164886270357965225621664225102145328246815981986269404153016808037682850186815513967724346680754958301185287514063555627270950223835527581750345749024091026200126846848682769465833104663804631757064200589593280729540953272617966205944279816301093367681082391576416784430183662401450820865327911373497026369859863914858259398533937090469650420068377153028642056700394948948664402447428916314789734394463359424867863951294104645436591958152103453864055953999847524128841433247379831789289205888357495319278205192399230570507814111101190252855063408924338449128180671331061911368733172891674864440821537409537745803386416981308862669528670101356352201192627303551825343605028969514848252117366326586483303069650831244977057813339551552311434947419923911337027171708897024817621956837495930245242473507137557376361557147497561045967697519246408369541109559745561807882525514491578683262529578635537105695250477415639073793507054238459018742132904620989228423306090986669032566331465594567381689858798420195984504628332512352811397829160525045788353792733710334785448064791281373303761886997223410796074277260970058264582242138991734739409052429648763416739314045946275801247229617756076571464504415712270963075968273433689607700328777995333953126674083922875641161711556232595486346838470087606021944651676634341915305308227127089052484886149631886527367978481657107842762483661187662395185569013303554756055690520472795719442787922887230354905957764768711204469445780665860955927427548482668720690387483221180037061132908953531938277619681907209804902134305943789438565376619846851612788541962062143418138553990008946616281503584007503879397271242432747856556321593999186422990495926722754435050930283464694351018145274095702218433665712927792939506346861329825252157258954980428129173064066637047308190646483189884415390170590011499604366103607599361253260218756245790607576929159747467280933365932367414345269636773574268329281772507174138614333383577152428005563071720147973924072426758536796200183048107237507465780973410518842079567600113433293838004103740929900359557579650366111731222422822440855253848759568998553088438463299177152483057085219970171381546552014095921608603137273226955385568139751883659612519631362760476677273452349916052941310062549458451927584055463705026997686032699331491945331404367785331647869930555035017922535209625419282714580909055485146748618877759781906344487973139440061453011883981069275708618551740407619969585039843031870432613486660638469980940559451194383967266858428678048667963194851886268213919949492418528503847288073592500476811754917145208455922536409001640900617218851984479898970146618464404608479792622841481582218414955692715519036352829998210312435650374907482493274519372679579579389448747974869583966188948392915313294123750599600431488385741970419927284285971623358459601350617201146328703355818661367405425262351349154583907029085885198314433051847965239251670746761759223208797616225195131261262066563405047678467209566196944586444007323292088315009736498548283975355542011407642975228312514259523081456902215252448503310246117960860409896809999589554597886823019583830481481733524934255568426130501427399938889905774646635687890678400478597300050834592062619208649789894968579937738566058992074569742453691140056110002381071944955695968262231102185045547310428768217584905844696190999972100006383322412819096498971525248463257598418868912903289972451939489474300141387804716686871436608700959568279249638228154690109684104544087428442251467692383768859057194123116619763287321162501415434496597866748878764112267642256736005205033795509513050427468390283424849775625861885065938590541632107781264356152761175326878147893995450392240982830164843938383013631271635146967337001224854642884041043211211556681897604703506674908829877106839251903885967405177185528027283850046014283498201392455939575725119945250748449979765148946254129850479585595199103220377218130279584470671383049123968256657995573162257815984864472250701302151829659549725959117758831086760992359945063789117574154631333329691904596839319771530638361252987122112966377591172885655547149466342197718171146374070880449144690002452143006087291196928799317847628935542873196464382649910239172371857227775276430014026743747831187237610168059183018912442269493043931234422158211084147227447250717295703520024862996756484958260417818441760695899299631461217581523897002041377993632653449047222372567650762481564792558960377224083810391950084626916164526993980086201782772666910827566813855710104382601804951873357253814882201816361414531491051589549594189650133602048611236840100558368266284755039666159862198389535610839201521771637436906946789270184782215583059029873127353533802647180069140763262552498910088026461447427705900064482346356629282422012301948103430552339886931555574315760272678959599397201907806173549027691056767944860297075429798971980701254215279957697474873545279692163566312688884733725727612122345274951612194450562179954640458642654656856563397395593729599244636443063742811829774363858472823160722607134917621031526343376434380214727480416122957117926872284553241501218545948985996143629528898398682458857430623553985142745044344163070791700847257518706427264089675138045607046063966757134637060627116229207960230413515987836583549432976961184890852438208823529502367954398451314568683571941070620624240304814689532371270073618260890235659846160238294035302431124150387282206088595451489648089574729772712217147094556447506062622787980029611179472899972276742375760897065712976946592085697335935080128869392037549094431959771997550116516370136795728404854580749712908298044639024983723776533427174063414466272361433652270262694965899535000642843888356503323964272119043985971935284223393724848863156032050089347207871589102662121611271280999322534535019570003991714190142122677240530285612764203269893783559646562543944891588746447834739659436315015246318579675574463520994965953551064665351544357474568275948863027598661118910180251755255610195501128676636806700252535516934174918383587826060686867314970786928197119539693500061129642356537066122320814224936916065732745441170646249833674825148187121280358624270575820730440924541848241507754684008056107826671281911765051070476959865747975528460799094837964040054874963630344594299214455507511185976294077476613385946245321707695842018788957317014911574768395462647926907060087219727282150421285743786856014695392350547547866889488982258474979040177851923048537263297634944756753082033927575734826984665342813780431080168500149099012663076017887591563305421121102870029357372598548395572499491867860739094521600206900302077351629839830003556123233777546506709593673896452648557785247985884841687696904054297425284371036873189652844688108086859136327329091112091571333477264875615931041333171138649746965566498712637627305703465981350788874176797221153255717751467503266700120368330418586739785896299685626761663520857316345994755357545380994511644501752775583306684159549626609239174469619849824075333494577428326459666570880746777758212863870678603141510698328396124765440101199938201817435981771343283547053652678528662333750151804765495935051542481528798105647430150061459459700531024729422480040621313169039933865235567991439879728028490260225071594123547451875215580165344192997567984797021047119789470675055685150366514506253042755412346973290844892379204616601260492763828786730519670422222860195502912081616677097671926690498270487560746113867284468909889681442053345737423949290364288137956925765951992860935692671862331676068014068581183420364147408369960643622819801604055443015091183937603468229394341384968118869980684896954510078036041910172451087139599553982741416671820498767055507217279968258704307062900475958103983833824125360614828702724721017176339490495992925330294050520772457978000015461583449761853512215566350274231476703739250360941840671977913517479806878315915739277279053872794607146241234061852729089577197126668438915266197551824247991050503225629143954442556181434273167272098375378982314445695513343547380756033931554527442459844468440586263964015558557362565218568086327711084067368405418261999792766663530820928161570883153317241716024192163941167862480738019653787058900563701749454966564083669549398849727126170243399107992105757185783134523156174325055753310272053900664906410014091396937007059885490557672555926128584222519601063685593565778037132910751132739086075599075684100838521943191353529449333082622997543793635005827886755189083555507720441762011352004072401162320062822951617088001405414320098944989033202362054286710116100518811585757255086918547858251212356889018727223459800150175110505794763049667800895952991516234598179002261456749149251347441181988157887080671271519736068067467821955748697960690633809555036504214625556053943479677250234529004506884411960265619178216623157617446493840141642124185260345226098471816779760949363307108122417103704935294272212111999445207778756510099491422573288456246739513604697053704785561688213225522683332755366412902891578261221778847267970924466414492145607072821784211500091368965929936567530435785432719124292905727329779652821560275790317371704571434597689848389792748059362921073670532406801940920988450398355364716745443167468304249287665519040594495480836651446131856051255416686530476595330261673315130964649577333804069107765465534871382633578925605273465286473986674595997296310516076362101185065978179601463599571239635674243210961399477869692570844835781777037065702582898046281324104025350548429556406173196754565978651657692945354530522344659546888975966463525992639466375118973918363072334419750558100784461193964404346330312818749649005659438201261252743343501817396453653826606339430244228344378751647927803147586958765319647272222125889957034787522777781550235761444043910809512202488746774919397812784631388644293264110307860331140143930002874679379026258424670658714035567970022238593511362186903352736824419915024111727354767124063395455273486663371609375814827130350656188062254974970566426140834869599391851447067842153367789495884593873371631857659581620301246770645721240002469878911691841061960934534276781294335465339324361852291618344274667514229827896527920141097781133765379088017000066747993736553309787420391915760459991253221665789022143803215215949761931050881722381003525965188257203986503999519232922952911823311752092009470624532203146412081107821520521679856542107802367841151725570817134309266183281647069187542084100391908922792161982647425124540541814913629282027109245867451064644658952713064984518302849617949351995822143373191286693135839101135911090164984685997978112531298135140341253581151102636257182962638838780727353373338788480129615713170160614865950007156962282474682737809195986349282742107762750632271386310027204423066453356288683892989890731071196834308922585962426082058349915720240756503184333065272379219387954295153805320994523443459352102879384556622228837145437456786225999882774516343921771766673321997130269174423640972088764478991400847167384446759163844862055484725954799050248854865708905436447001825733104456235787186928555755889743169142138196912786625545219408491708810029837973426159097784348538685863574688507196661246561939405678844145377772174821696452904780178945104175868226196169867139318393574296554372259946717144644807472163817678374798347144192432825156603573729088278311558201310287766939925784945848982364499956636763818341362173874665392825172079576584858180774108112691163053873428550401995260270991650457446869606345706862181432910578986109314864411491687187897557860938809679612243238903698185627613788220261418247038211611495262083855026447177290638841133028353364854615759821851309024168681111629109491808088449345559640288582212840754425915611942358395882878293452409515114447908897779304267955815709354028526404484994934268324212268250246748868820189553744622637099709202698521092639666566322386822858700047316837598780321095529707384299186186523274094110097159861546577074959590492178020149275744667356853839351354190860407667996178686489812540068322441318567992289882244083875290960826924967813367902012825164662961540393729213740170151926990778990873888407927333510565622251154804359832646076423853896072412681583909710917510455248545754324334301769227066912384451706725230382270627593034411493755694633382063581789963967143576121979924402570476851555552237186818195109350629411421468757679999730946175956159164655845852097085243640969584536460020185023582949950536159957090910438425057984324524309464702427289181729188278833262614860859185160553600535692499449886401122142798579809526635543725672068672681796869750122800183789380037796320202601690397127989600371461260038018520845207075526160412382389203949931474333959145300133000072216020075886133371972260996530122800495077663268043691849838752054947291789256176853544842315325321007356223799573146716044638984127024668265852527686352450736474457107395450042033914702614626246489502006842964273787136172745426762271375703853673874393561344501815842387308111149972324557349967813023098599365419590960452839310398600584202671019816593192093936160900476789044635069949364254329847093669594065723012403107834050299700186505439644950557911380998139485228957598790217846981802215306722832380740169005155080539776248416002011360355576149034533743747368739679023701553272607918682639644997374881596231407341928103307924335633533105176052009875115288746710010843857840386488846559562015003857943349164703876658888352048993905839161480345572082784734628756937886769759977825615924949395474170386366310213154472868344384856198565801437641723683470791333684130853895829994677100711125469678477569109414200683989365771644771717610932481989535108668038620856773288930213352930773152960075202223650929962048597523734169079371374725452619960053378020736827779306294187267204303881404505293190451264413130864638814598090126677173657112757912807876435657113380726670050787673866897265552643822792405791750773211337932847040578039845265688717575389789884845156854904000117702746618499718230334605040269837429420909472396815310160617069340474942844284134006856181012435607760350674901231042568614403886303816201200722432849979783912577527380991483707694478008979691149489543097634468729072706835793997408897361619789335167891864119174809383319638918595900448587614145290885412464554052627861518687756583338568043443402599860067955574156039049093876900736437027075284735486086542018760794553623171716301636427630743526412686967858104306426540151182140188485452375954319324724352213475319313538385660641544964432631786600301721838091745976435580292245537183832538410215390029690372154314345919331676157496788927616531686122543231593271905000851440934293969451163571216152111251566610321034570536586157472831802396889695966962127340315850709267400237098052623330024016270795941383074630220251854374399321359499230787865671813300601202817293798596640156595696888612962582131651864534831494531378837720571698486805369626206220264104747883376977763243603561563836189676983419295244035605662693928792332226295660693758825896233015860463481836929835176929661651409737281979401092972089720632063949494278778608330238358797667183330454497312087617050716342182675534566025915838211287493060850351292808635091659350402429490799263099453002509230746785248094648976216596776995131770453420322301731243717973720633179560180489786932605784204756025392401222484346210425008663021154083759364347765205863418858476269844621807336208510557000394247511477533649680786819965997482277098027932919457449903020342166146780936370116768423403277219345855693066824477920509992471296575672608283709852365224813442230995498648369856161112708991951730357182736774764951227331874834617908762683342714264570269563836712839562463274010702086177713545604413342523673560262805565647655648155173115305686437007351121862465646406033917487121647236979763134369653417427691501533195532492084161595878437057564640680512969398258053613508287825347905459677753108357342065197591600392495703368190877368087172856879717870246308434481011197883301764625395560100067855618475732737791912306756405704378231628992369409724703367615467515916762674080307475279545237366127637016607001020205489316190949661193075344759501017613814111673913285992724598080555199670318864168567014861457949815385051905901941212312130631380209487013212305281387208435889047821218651637840662163616360390718177297205082578433963127807577478136354772966023597860101876452549806595946650869372386457167169361823496936341298300037311522155472297443961462623670916112942354919989348606674032286248743288149423599413528323239138185465279125779396678028764738250858696275369170885200956379752330013698946102102541024351150100843698183633162203857305358365378841058090877158986781323167529656666801321778885696345051452402477193820740545604543053582578554505132302225985305683593726838582705402786961812982313562621106064492543120172686704955268317475183655253462584847998514417708805306369653783739666413684200764692062724413738597190656116794036649770723864911477311516258780501143901429609410288281224536094205459307794286913535170871950465382709742226156792022887174548761684331738864256172662593796989207254593944777625735840400722275848995166856536799315226178148816745041763723751397551615512352131512020160218364478270799671928537442980127728835111610536898435626623706442706537282786256195446548639619632800962290413357087259976785453409807242876019501191172465572191807508597537822486054067474579741516340013177199434326065930245906334180152301019590492652676733666254903691945452101177808172647543769252980676433843180826715986470296012564140847771793134829288181826384690692904816255875291924667326527572031131080843444108823833449708392341584090132661006264083952769184229695450575531309280407810379714606118643030906955333004485943067763942499800793627364104991537118741317518399950784203099897303600576734208982479465741004892395382478699919322024680711649463603339566322169345496516242004168489048326248592691693277405535408083262588903225441665579513128807477661920374727897884174992379288606746941204235995017383513631843197177060915657191666135949533952997791118993175755846037330296252567878714894950385025980616342229852676995399321728125656942198152658885688733135694727515038590042781755898635323696512428342737365023947216596320047021873978065477193145613290352611082850851472047682020531103810045757895343389584731997917520054827676594164287466926044540210144553497917502826258882778419120172042119787786378427009189220406742587315735699216733221245100957011674749266819943845783440043674047889172060858966135119590524780929075812027835910668076692161226500191038591372608567731681076172693194402656706514671486613455546436128395305838977009101223679959301107751162020240385829691004249200882460670872267974750293474512914377260778678127198942213757943630811986141076931001277392468314029705281544407573119687206795208046871985475903174858537587897461544091348342859355059073501148905545729121842261686108929242738078938304765540938455608319445498411893785415954418252230300816886846841734802229079070212730829772417455976258759232022595786679047015823475883912733026988049207000600189889384200808504447889298622948186636727158831181133776435856325141015913078882008209772349117818052854857103550307397290976161544413423103875909914626050850277918706954746918503763967321699714288334695075606075156203858941421089942617817809012985867736128482834536470468738393244322986629806308262211634423065701444159140174704318237351407659141513705681471731387713582181190286086806454604011512869809417527641464498270046942237657139533602944024377969286636937942067201666946639739339208908036106601637896670731842744694039082813723874966197386681243250924918339330391245770137385011695893956531605265501700491272937071131552687734134262760795206720529593025997446416066629557437853693018961081201508191462727006139819762726758307487211667476502806311298443814959424016770584871327320031130519492154096468695006315022127191176572087766985941658069547543819173041352397717870550554674453662284714271886105031079416221386240915503892213144596161076513231731012757085957348884669989708053590082355464389143876728780578561652843826869863550102822029266300143641759017497510666987094656639519233402650371106803399375922875483256665463517065925466993297616252183537457201624290265389352791131533040598686701666289699602681104287911349968951147744583815279252634902189722208901990597552403711123960820085025544262086204716404738098500618353782951838253836899106423149232138165715487669373196940966204742676959796321154826530560252397615276331434706226277418195155175154854886683111722197809602957707929681717368489667835387026916270334294150703638881668353170815420454208416328723742853204755883622074372034909285361767768363233707850887221530183311025579560581537570418142415868446003149740988006443964514159182545177129322895865717981225020591418069088024957140053319704064725352605376213417834639778697214560676130899849837186384989392617584911405419766822548589738885654397474456400495140915590477861170765333509837222789485882930279586736400477330875393851944803629934409443183244104495143776605884060853811294522802375155020771546867686785460510282928479567613243630187088627807508986829905822095823053462015266732147217297005430004132471222906121259397479308175373937201428602474531410622494715961683623835846688591248793274521917382404982040169894199955067117475371242532110204277072550116076258613222617935490727899284838163255695155057233428482954754798217454785011100970206688484847369317873448926661991614872050934318405743418093695181151015049850317257731601849244522137617302522641287798494329367144619407692543874339318316263826867955539857341806600311970947742844938039635295615890457873562574330074663172739797622535075748948511698541463625366306590315439645102348600278883170966441935806593335227466859507648536784475735548231709737310353391834662771955803878025825610001000850819548524433856378342419827027378653683005542811259414446819646931570129161416576219116491203351220487517553253902922460945863062694493770487956434591593941622475078669605177246584079875162795684889842227037311086735852217345779111966250940468383493517733244332204986196267940491550411281958581641380987730256082069517931479831864552276904158675524420747988996336514235307108020324838388826176461273372666193008821260971993981103980124740265020817783496385223973859724479020994227948568839723784026989653193047010347218000591921031961259367604480294213817054747288389810698691965672056473158339406726311494182192033978605489919703639840191271697775303848556720184223754374458436267009614114656986439730151095999316340610186197520863756784922971571707872851431915993691387407722861781879052238040072313596308841780998993114070260690202788166838433432235231098176333416932752408036117459866394711886948827295007333248974255165915779332759209749752561965698920832333058626123170118920997653536793767147238464584326544658190521946347708778021924570839326071637045621505817948877729057779019223527686091387103440365607137102668965564065633266571958924123769987086044080922500225044944182935943924569925464227312147793888480703832255387172144553670917395850549858683923640596164315250331117021796756010279242899522371749985971058863975886674568843585336855623473073913493519168373534004238775498980353789036995238462404261665743066829655625289679507707821174923091646113034902285219618396880666194534642956311152061535771824201135781687390082056390558692754930870309803242212546395694841671312186906349491972496868403383959228582403768403608482474773954517142952290115603533485075896524654544553101701745112713883721734974455619271005261954464138949978880190027526635145093026249416992167212217547149519082545228841632136048129878740052000483019895307060107489020337835937361856972791438814476639704948356300215162745103904106604315005487780895419012028371581231270234552279126438093254981919820739947726849471095827325860821491223944125870893977635307821313989209381529279836716401332237592076266051996089115019602665787008382103313366833413253717255311871219618102286934572478857058498247073444188395274694665676821005652221009519998940862687514396748520304192019516415723340190782046953173356286685025940448877971393261310417813321562930927813620491442340383143931456067525277753389888534877600154793716031913881134798402281525844564258973485847036132397020956177320139523880656389107390411206010273287512755438392491003379968795497910834354189985923907704058721855792735144780328097518735985114732835231293227806777559531273238565219983767313395144305822793595235799906834431068648642821427561400666788478015769619166972435897520065071503139002858800979845508647989634716105903374139203860275443625975782971170093952940627037319980183204911861896955015136965252392898409052250530485959005677883611746645957195341147701363051928958539772969365907072881224785276352606037215542180464346544579057285509239703828925605902932105890890765154770450417876406557223543321625121269008574567286452186851514233788095926852109220325185233658091255967262833981872360850459444521293733351556950119635084216642980195219493781827724802847775141942168577043198377209537013714773221722689193627548300460936458058800735015229070628515695961173488871337641622055111994727104092494276581847416522243978456429144765304080229287169029613026384215628571990274499745160217568811260959172083147090643516827432568891034316025386211240809805482814095566609676879517507915867721058721749096568547042705993130548089419290707892440027171514117585638692104130350738616011853612384473995791112438541933905667501178331910470141441761933450816795885741258025682557043210101286025895094853181737657406015969792918187020450456089308580689359469515133206873904965346152675256985933048848222241692740275679313726269311700366258594004717157639989086850079961303549004537090592960292518306624003755497836707686826804196783516621490096507281276365207586644402922775591411186619452847803571430779458588437776497843754842119290990527651218823897804381896897539923128452855700520867347709186372603432059913231717822449618805680343482772594205761862353515396177117170275604924796396180338356889044448568141895527778566385503798381868429772612412594595951053146780168658025195474029879162956699103145852529315320642492694070298864035357556919385894754426874639450808093007950410634009793349743088022801166140030097049309071725800167491221851122608931061838446923867086749094932091375435606936363586446140302043952040629837201812164523793493177136809936750220584278989169746844211631452082893199661227116984029549568250587723129668505492537586645350410028718076393559541246947071337822855871944809787874290480322289248405182225567055763794203322508514422534279543167834198719140306353765829267121633411502180373128055573044308401373355797983804966236393093993555120641421525551783292444610586420448438576243783621983043357040102021421928366053072037782836009710336345767191900393151137377279884439410241970581984828683788526512721265253214005564679418011580493944978902512209395633637367838548639715540130883980357656452369377951057151839575324547842898382285116807601126848308729629313119221715427717513634729412798287115592689424168230725264796637073726275752288543401193417002893903549881125170698657067557843375383820807169474549225538749870731350434304886323984141141738809282476047268691335512691983439613263923382691116501319261055884032670999444166848220365621539557910487225295592033626173375797920681955469714289283659235604429519818551339165205486950208142744595200844468744580127721163415985125275397377976381960351387533498391987137720257557233466623854826565784388689111958018541566634827457190873498425693706529070763749141825341020729651414495919427161429844202293640032519613723118490938174041710691379980022368052784504534055032428073096789169950795379288062537453612626429387055505623264841294070124420910693116326728310943776657965470054430612388486521644420018259589918740214581829061582527475334451279260071140245194136882024530579137924595213835531931907847639408573703893591329068918951401476513472078827831489543676401855291141980769188322715235914889395942287596083216277426668985828129702557646699900986718919961720279703632840499325928125854623070514229104147717126717331166682040540732647998590944572082053287884236810349574200363879859991061081925915287938085203780275606191303547145127949136724361199070745166960543269723957414893921513502810524953988364024477491202263175612033995094702454052956253393799495132402797230155558639084111105961083189090287344488837685612677101864880981875391648897884271968285643525809966394602731845067673051545048539359653087066263609440758004623787655039726547513128744576499681551627814212579700688873485728235413811197347042336819329442639438399257067357946568101206848539721996430590823238619870559788834552669861297346466376185854776135559480913634123609924618479850020995650464851162942757890097850204130408712736407076255159412222173142508518036147519972348024319780216863531739542725864786180785143802469937995328532672964183467508025291109128615598678882133044607349033758578351678144170042948617293162429083967768211530811778636566274541387300699499279167780228958746396612642891732333657050850998467782152716039792856306911339252355503721427550702354958185709854195393679891848198984924482489941002621540172020409706533524933353364687899682066804996979774798604889851927449533475677731167431366085632521155041448244945634380714949812064425977654609044011313976190853853229260623941928181665522456517637439263301666838664199376026892315026465725720676259723498257856272085011612270112185893165820161204042994261122635206435166185687030380718591692264261502037098968479984570055214902377789788324995763301297641836148748042405118785179084520877013600032731720991109874829577028543018830656491949867835972844234197421988295368152318971825731167924341909962971034312313082951001049939439816854765074128842640045378019317957094313640434133637277896762283117566915334076546525000911823430763304602513897110777136593888486865211663673842602033332612793278827081896526930463467463505183092170547368920482512438257430364331380022139859893360224511314323058188147036234181429628153949805481255995282753543516725639127617640489765559663501053409106610318744553935961041172394169170590689397361611415031644063428707746812710587711917036497365505437629738217334866525509300623616661741419133767294000697269984425690002537666512252416221742927832122519240732313979719518213598550143325736244261015477167279760141106718997571947938746899179255639776804783043478216327892093787129205553297169122027651714592706289673448954107258281842198249493335699948867613712624959001013870398620084326741843215252197140710773504587516975327315385735625934368741246285873466462556061140097821713094233131367211984417358546910087638062306223340047647578278992446862518717360714560432613291188228463547700460662619988932105743142238932449566977834530007461788949309674826316637347870204763991433181129367610200299825463999172756011702626377164735816068849073205626374180582579880565265168560457250481974130465278688461766966077296794544445373031201763573784673050295362944483602690750205992117769577789427490654866308447842527875232135349836208225792413414407790745296762647549989621641353152526980876578682278724389365991995680576604634675005190633988531571517142707316907870445681234136893931266141485019688540810600412413572784376820581432429818225617005563174154614432483493278197176603592803586373906372930184395401517062832469719304672891120995991720109000469624106988413531392971340043687080239472753919308969630935337636169575029348496626385865610209432823992570429779118863951179015434799393983486817213752888700425903990971936806539869971335188844551278287476808286412471124451897020865026659541809609236480457884586808920064853050628517731387181102048899577051972603374077167924786502528683633606429040907823122666247351775553335664330250769911401327094715267155886094445813868599981978362030896406862342863939403010468384277435994256396994316431170451962967892417738786688970674016017032705761345369373892772396874488166251572154268296451545862263380555989227742899647294398084157032787224246670614470479348240504679717363260596136269284653880437283615816440183630868118646700100700865609508895732405192210027087448750877995928957298307024946933696524693436622799152145718641728422567650504404871040507669523293555838772324460095413293441221426363742424036483805666228359269721407920519115432628975768689392121941877745751737960558554551544529476729294897151391185879710911508928659919383501907942722938258050195354481357612448750913636120008033752161842126723575429272575841039045501845596094740524325350466054740686577157137996595570129022565022308977228357678639223810601653357900345797800439968386960531810494780839122426134742344894223607083052765063423135187415395062076052770385374448857075802155368044531608391974577039961959211468302430005419361244061754481933505412796642697103316914280668781175476214559039879165005145023639550314098110521940033983693219481492425889267539715647578066327495576467301739097960734519176272433732947363325069500892364561389096750015550850655592405165905723944269520770454027636800036785018317256294659363432570950191253860309273565266792178577682571425455705767094440909285444224973220414810238234359255106351519311154125197847329636623950709922826314967567777450515826921882368566597642766969208622986308517186560802638945319450297409915681305705404397314086500515551669223926700903011868303640519570170925321250497039639167529686441045138741338588273121038042381099189702385269794248699162303295252151775137771499976286040503283510476656693798608862555664328945333200762431478073613742272739193095302582143469198537528915345262156259036566086547156260985354826449718148963981948895630400969568057402757685652844583572193425307826746062186527550176396302734547014414325189649114808324219537004528313660736702171215216557627405441687006480673910692854380305295815163449798447976548524650031034349563866846887102668916977406889289294504883116639766845265590848154819730001518827856839026716799649520807241373224192527411035022265170168702725784263171268110101135099982429601678013440835007082828475161115473554190351356650334401103983631557829760008977972776526388147272908253934775150169632611525873239194432068589342510882712581906115065901946552182094716552213992769915776364060180723488837738899801032186820085465179148190029885605628597144305689739861997593341402888498620529224394052237018143920932596736511310293274681841252931230790138856966643266287981059054472405715802740921903616171510637406558081954447603945713287788943410828474376306393134740749121949126846851208918055385276877842867637434410175173112300373261403717433600577791679392471703676359325521007198821096047214250422267486528693776610666181672790327116126311160268980229288973171311883671617070320715181957501049287102970537672858090886665989723744987110059746191276749307780110047106431477057428333348512824957343622406496015776395782140512709929104328791798789764501538209496688281857467851282420172068552463824892632795714103973309677493973295817748054156504356256956952869242080648440625831805834271304663625495033517937643340772686042111135035936121372164473384027030978677547853675933645687119433100522925522365502186304998903028214742733836837144212076611982994091787782240533507197165621752592932121984420871755344401745542932355034537747930374512323195025496638708241058466672771503956652567054517862683483426778504414166032110253958818335273773337662862789939533649932206319894983447466638907558559091059861368332705793721034775129821751724475226160790999003166071717875682557338973291989616846535222303761148618724877047466583586182431646745544946656028699599413263193204488299165282644154005940859448413654224550279734086020125827623867879379597820546938036801425939008943409735082400487793071665531139684364810779485787804452928496701919740457970062950196732592787271247790132816526614674933846068262771564611423475961349145672871882766277271148627712182940383857701143074276928855364112033683203135234259777072700701381652374266538859677932978842119438838415583439312207194101430337051123916510372795749296099291156761610397640413159124293195401440552754714769241462239262253100389610309684826922523672073885451454667035633790138867634416395654019687542075230866712738965350723304633789419536895213474902610108729030681275120632309266988830091289350036016735721074574741257085342791323548532215363728448693842872922392994553075205713825204104115981184418365139581332236606181518107487130128925647124923748840029497328367765591212718355963393699363369134521799627547182046824486204340879407087229996070111962401036952031606650527169852746405744183466832622893041779584929324139068540885003526008719783537276568917467638255836797571415977155182460341794433365743613294799540900952057709329931081573943446671690147660396326733018951039364839240360783203772284908929568162796740992791186032079246222562160147148716921819936793218139380800464531225422192484749720455030234586310217071803649864106618516066882579205689172381942443079004873575192788226966831154809194341666050190456326524668834996595451145261371433526350841523317860968555662673191302070521704620120734134598088179304238936143442222274574345989154768336927298213129632373848507287297479784537953634059362029124940755672650120948130688582785055869497257036167988349881651497068118916436129382733325601104720309836112366886093206186803316365284242702496740114957902058302481339908984702607748874804744799704084074731173614918214829241752829207552212784292212717275789759695855286942180943692512833124845820625743913397572725476171296178327114724635796911414582248237580785022296267028666019992972720598369892217955503353374783192195461128776594885462139901101061689316736407156665212163416168084201821482468338663586246107412380173739645274000963899436486852140913846251079165165127674087209534357491881724999107136454558892542631884791272179893514034966971896592889753269816117719789645198842094946197612327047884081193327628749120478827855006832037370834062514742422410386469860488106096710713915002188278026466792861922776435439035984284029367262148704968923566051206464766584201155690196027332163794883309791535099471468983839330987060113075264264367067162306477706816203479113517442141119859089580776687621840588104369274448694549189914392383222292292227112598828141531408955141523086800511416557848356735380730753149704515230883586227833544978915146221783582240553590645741704920880724353872060960505199323909519409677448240617666225217864929715348969665893480800712573759436124294134308868964931356360934141207939777251625665186389963117982559302350777539014224696125351743468283118811682057771483996434601738947164508599743619175970995714526676926313870392118292925493519419660870536645064537095423241707417332046946333576549454977232179665024867910181582273280991370174475038517100070837075791671908426282344181260706423719318007041425972144264202210413974651474066463099093580508995940732532593495073405237781448473652306081001951686648468975407675836179581035295205107095332116274763256319672788773060417996514031049425091797858093541022283581110693616901016555490828339826058052837855031825146192933277206459785847317837927117816053990608541544517271189751691084261089734092366606039366122178623047675494273315198233774328516822447723009419063430959679864260275275216542355206688618964329579944946808874735752300165834178421662875150289275797401671384798071592694028800534495321586952917247002921862836304711091204346635039608900264317569008544213327403757867679786024818094714259470018035921833078576868045390998869019583645206170496318988442042466826394434821590760135039172710777227372806900680129417136100038663512126372916893543538335993626873843298539581200115527229262941249006280714964575973909457335578553567099967954659572169815363785546040884959865777287455283236294110745986391615452539397138515230100873184513702063910367093453795693087719534272555109653892512144974464659259546204480951129825261572546072703626288516992656393293940448738332186085770550604330223762003458381311906603796151641440372818169486663879434941772882727977891090615740571445079515190667983939853630402801022674797993666630935399435939580218592449817019151283670269749471092289677353781316403711664485485132907352926840507906056353573075566423544641880617065013664201448814103585257720722896984604162987339485746005914208505938012707911524017607844439465865472190699060163090856952231967053747169732043100879276494786687625919108006590944477984736988356257309828027989740819090577054142401424802088799069405261802304200411806379378201621719432585986090827723207867579446718773284977843076590209805211391346025239838645955665753774997235640401362824124508418620188172062921491986115509253713711787751506621729312432623712492260187575939280806025015497223812022939184169549822382224369018502000689323206663829433254434492333770001440363097869284039391466864055443359599702847744744904924703037617998439001921239664918443880435340610411638981857428128059165821490229763889125105291421891732698618561983421042434053009816004084076615171114890871916781766326700599525142819499782047424222645182928177505033375221850589085419864948758308292647069084227033183876247005896409727216000708414465674556927655417353912582358220311926318391939528781795245878654835061219292018084229241128418355609598569549123197020336269754351310449714818961161233580890230352023456538732053738226638976449890773638534580170217999256383174721383292023970661256292621645627350454616824044043689355846678089157579684057427591634945333631873949151417632963889078889044692020394854714861619312223291317099580186437088334327908541702799890813052692945765362110856121191109422967269985129051040126670586937302373281099726473517735929936312045296273841433110419778653365207574111747525173246451183027428640016235041426311789246832290343287734288639013047433947917961228598112991480168693204040055286148854350561494129237997977455907816251978025454159235334777496035603893695108259756809992854652380090201286112470276740084843497164269372928108344705756234357941108172067744792003868751487480874961676090540101719484883351026186907979571969900573486103179515887620960677202501256689356470024238434896160198966204359620797496870843646069446704275619023817770317242148484220525913558911100904478822943411520901416430512670455316976824978098966524462852542426767905746415869353880164166482406849428753187871855707589275420634099628253638175178243220911737692410592278657305497003091488654650862811629951187673549263514383526927020192693151565412775972457086844366950419284417818569457402643205955958186135226266031338429162222899409978062550623303883697236221970277085109426607331053880140412257639735316613822951738617687026223764488449793368507789214589622740418748888450314770267743523886703659907001594990099224977643083597362231703404755999498741454445407327482434974198697166953849597885862217334915611370647039059544125587510687155633177725943943055823584902232355640659705029872541006664863723676708895741444504263612003291774627822566907637867540929422210601354677456366157765928080985475615339432555692985829662814417612857740921524252641044546077894345107985123822412344149123857975591856183277703703483048382394657669699983645319769052027179846899513642083876280775907302786024524700064408343226211648439507977641015904416409883759321437704252974803627349770412042871530647384649575187764963721975559660718524978890725913080348142495797278017773649435491488238305804431309861935318507405050939081781933907376330539085505638393849767140453519916254967247028031055808765158107731016845274858982380217627530285143074374529271773920239403298693471328256244253987913643146888607110804938937672419018106216389134607344032205539061712417202993385373859526400842395879603581117348232605238606430866322877449428742664959537119595046625881956670729018471970210146302615710454628297548695698322968508947386513822590919074667942107592174310210207407741900668723660922674626112613569522197390445445802684649352987273903239526394754749679485007075856248889934875275757108861315279889350482812903515114396571075327472797469243170545135903750460060361464441317306751808904819732804583501669718430384307854789397243403321613665116022587782881484620071393047622222230845419016133205950598429630219342789744730338362154477613958873358101787259690535917185253009758484195675249760438998141235922575266787771239798088306796720906143795725035604455632181820801542673835955322256387398750589879493119859301764325276357195124001642566644919037414961004597905501048077063482904155652645270639622982321654844809122901430934129940651488077765702055181455733033604178875478226895735270949449907129684993311544018626870159611635535389212183543408309708502084565268159061616891841996917170384122401268121201217428433468019839075695659479998845873754136805538722365145513646426111101756655460943337096607127591327416485790572102808842921187992580942992468299729709957976351818109123896537353718486178605736767794580862082104113733743345288239193015995667622404213696815027022414726459315211847673485696744169092970925562903687544771128537947489229971038885453249031947628017540259427273288549756164696656308620063768355080381995129982028377122131592465801300084138893069522942367741985395277311866320737534592659743231419645760987487681246249558668345299405140684416464119473054666118699889690118467102334717754412188301389298342481539250436940953390823939504525832215102909952830604061523192010409120982021865507673582152331460167554809323945292907334812733009280307331519520942806737074332599294988535480907604753395327914091448113786190433029435785748973085144969402823118260453629434780506225997017020122011593898965574188831429162757711123039728103615759024224252359720408897649684713151078014174268760949326161358455534909782280634502992831029387013772869399444451865716945057478345517829592755189960966842516594205235977406897871525781301130627410477118585079810567204640758985420527060740320484891462654836002910558626545928442004071420880714868037811948804597049179156470060497925162995374007795827865800516025702056537952884838220996350768730813603922870393518816317645981588735995971129204220129639061370610672615460760714645413006647646403349126427128000902846375058426069065279721424728062199340304800080290143521756529656090909250788844423824648904449168777554913703881929686314828750621842668927310977803506216277456302861272777695263641859992560231224291022995393128238957090043287737868365573125557246929775506535620052921052466352138474808560204183579452814487824988890943314355161799803940192925947615839144508945881817758916837099929167175936456336205148776911044376232989000400451908148467356354287713726214353801387961976261672902481138018638552759468868127351176999413735310032427910302922533829162742355405677176896698220021116590399014053111942134213313288993064156179508969612433478251918557260421111054707952824173847185756418566855887675479007875016216621163857595813373077238185109894190919402083000245466712259157000869080080426128428137589012799852661162581362387909957219714190322448614243241910759808473316026095412668838163094714757516292475800860910167887419324823195938088200162667974004111068707243439485746618112243057779736957419207490728223169534020017358312763863084516274240305424859542049611092966277694348108962169042818057182631753033257091494197985161495602394885351105857998306550222212678210565187888381441325199763629834467637757927577690883225917892402187307732105666941566946391452970232878581935303067411478038816580136138174350425390289480996657965826674425666361741733072490001756302702166312084397077947624005904380940338849252146744646932877560331260745571719552521644439329782940910846280872914525769139271242165358121020266560472734685406578075621969727410706336008738943797651321190367383746426840686657100730147318888323363623149151606483922857395552869738625185396795698820313436932207722246043104493101922792622041895500460686805579803918755797645913943276476432801986393691460582380494328990433718428862947608970164932216813558058563450148694626024163940325755130867004581586247377516947632547860784721677706443072551576119427834133356654663578032077121045403919284918537480416261775236984225754309805853346722190261288877720801901390564307543113626287409214421713867685050420813170969884494254013454147864411841245474940325256570491716378118029585809709628562096481378661731296441208988651566881567682297874047577858332588997478515490949158910885020568180866232535035679703065973460987210018489756405373879451724817772747051249166250518432289912261453564643970240480008104431392931093380135264379244506644119250962269461924782637168943514864057010264711927370889644494730980096646853768576482351556097303609035040114356585095705386797746937868063675516023098083890530535784966287991759704404865032001169673847225745600198210321282833893819228246059899271270736843525660321325452591971212252842088058205653765239277255921541896989993432305197673416308315870334546761943316968839901306630608679002285024576070905677474123908952278742346909511991455203253943352119989524678113500439224353727361927887242338174557784110104842291800523383175824961832755601560096456020917267435668296940116596861451554080170853474753110255054808897283188639312137806205316411011683345720687490494983611236029620687948101281893062628478821632161722116835338838626418919506692293135742290511267224187220677839079135981043516598598127131070667045244086377121571987089228229246665754735769374084752416053993300416929924209743106310793374841586037478151864728230132851348610780573980088426484315894194910878721594092276087809049074442331923838812908640383003004821933264111154000940375058988284495779916233724924566876306678805026918268573151697563697836715229613666231759180605080789207447806260119350015773914506222173022700615162150221926302952432431977383839923746732040589504125206052923263494912983033433506551092806054585927208592265490358737574443638101510883349032139825468380957743285457097981296714512941029890585269281570271445777693412317335734569610548846499293416055981843031931101864206051070956499015915091528177399909551040973445162007287374700100753200972825616333639120383892380768373081777822207036538663462916898040010198645543484595473244993537765327865079922125898597163668470744031838507445719941704946912925351942966843918541459828869085924403342129357419148382118682420405328865275593227873067802562990835687693591614746990633713612947346689554376611944518399306544195381895280480046869846831068693929637376294293960564438919742674342693168290969689978703303435897679053763531341263552867774222168609337383208713029664308512045911220132339406124000810733928725584425471307169148216872010582504229662508135506566957899918181515204860836842802712839361328042251640290317419629450853451840265303750327700278388787466368437676298082321688217130290085329069847089074560699777374421026710327115428001526182173563905555108015031676406590748034110725560735082940068436442615475800291804481629634733554462712597644559193551433654212086264043235958679722987113914063313543597762974787107312227292997054662539804042073053460288837164980157966594866314376561271471664320151174986993334814384257085327429648528004246140090340001604549857210076840119636928372219166158959426303904640920344116555995710894905691187537584337655834972609325799160384806097169769425596384146457320457983958942502056226902302162976432002262423103457758753620223858254356843156537009463490369265679015496058650720744502408399879405153888497007208863894945075993242796079603565997683497143436600474971445382803313868052906624909989794985805483974126418022272692945129268681409351202125029619506639270896013482907100008813511034049641609015901606939389671242231618922376190809971816205618525542721786218019342060001460770370322663357115314875022512641941320170827109389011187182413919248948612536667967080634256997456372283689752141008452912409302111774193463766589972532649100696859445396765509365867667566440268370582834249057987250477655710611550110119897838727461332802192821049962775881045785709353071344123151334542060487492131192891857584429520059953733315274888043535714504592795372777568916632286683304673715128848514550109968653577715975170673448111936510630194606285565985613029170139926220962656323240155241477578473383011176827776246040763304949239636659792600794992051796681521765659489263106852146107043593590127250477566213577349866578791920831521377759867588391041412205965549108011825286742424110910865660204442563137496903601755167108959274899301643339458005216548952273396451453162860053859025003926651499218584873514054977114433552242000948272534373623953234651408962650821396037094944810120672555556062799906675619857116709765303768148875476580157297033417481339528070686050234676493800380064157568292446061874454560443043526997677236053729639233617349811763301137555399621542930070303201708932845608072252397869991746861278362559338803420878748236338589101129263381205085081405551672607938627807221009705089313259906323657240386173655269940217066771677424842896987478644397666572910059067817059132228889136014216163202192581496626042033304922494824488847127571201877104522262262448458379202041294721078534041236497437188293623669914602467202953395725319712427805372124585161961473696722147656822549867970257828340095584661707219553952032353107641913968336146528835423089440636873392147062216900014422212351940963899631067941464629054594499935524133577725012033127959791849201831866536632955369922388235502586141221610949241416624037163300935591776281494994680562032289547407626838366688134478910014821574455107491786754538839802777769057230655481454077118272808500023657516118067364237022721594524416885460019477039219712232672537023310635797387291374363303979713389374439949344200397506489360395734214890793067384669559285002882536266774672926068645226853500105214837848457754041004534532957965675896938772543350558604121133118550219871953382684966315280641033759123675888302524172361308038328248228515402107624248800962300141675326123987723741464133214217521352842246936329146425350797937308547818752119309838932958550227945137578242801138772383902145349994314920839831316906626394842309232320941505067480303759456147511212976851904046214052583328465126108563969943178216763301770942367174326372350383846989863828106210064824103215356976798336257407664653377854749250485958257929491420884119786723617706840982023699888661978046700528834186094139967983885027019095779424485132910013701880217912064574000055425756335412261077816388467015433681540832887778347880865579211321593075340272291934346252492137042725012530303456307126664478840125835091441476896647806177411922404091752516430108848897936765962359652434690113768302198867000774088527772403013273794527342692095004654162113997877095938759973137874310357940154713542649658438660022485058388055736690347605011651689259113442193970357850840703276765737773844306310639924274854689580693898949310093823527035739247707741108956227510481792778718722917785961858932601043244112209620166578633670266006148650475284339324183538636942122417251846034570538339884878256461619835386879238284915360633260544653393538087007528040079591259234677254645655793310595801750676825700110062409763852030402901238742303475042018009343137232973330851080871703332781097037137140044933127899424144533924774349153336818834381797661538087554785143008350708035125842583501560548594589360483855844703373522833534351455006269557435193423939883554606110034099262953755583383474584995776655531779350813796063288182821802187233549398315554549474298066279906417397395668743605761049973521052769492807333281409616066505951011810770114216083416471999461102381959576099101896390269116378544177979754185330620747170079982362102815985528433153926670420122884318350501261236564279288273780999792081303926760092810513178332803053746089509897781261144556622647090930476687841907406542007331069826799534736684271038411138604806107980402245260963685553365861388846455094477766226963426038091654279869278449966778646405631890291499132756440765163642822969787792651467761520620181711987767683560988955310790595605576361879573670037553639342380182707004143788035836473625226381286350125604608941738785320716299727723075912946412658773058750148083026908293386708233860256281932234572450214791814573691265086174941573141722996407704478931095972299797286231972668266361000181051573479016273180145027724729155057188570171086251379181078031624563679872234235242953160654461844467639108789231176523744639114449261861956535084428631051264120151684912443723784315557930136529652066621220881862087982829379014910721966613833933649196894674333533334247079964640845852244069980567922861148852871891866967815504546365172703623549132103683338676016480276186778550675498717311690888141025172926803465933884656573545179562497769383324483601596885200110798859726022148345129000588398335580189045510682357941877365979035374073809149148928726067734802568429062017025011767663156462221401057267287739657937271304333717345446903687261391257439365810670412489254290319245731441865222255369785380708698841053900380236390170156152867661412241782419166780857942896421234908910246425136766322037779075395095605373017789696407598876376701905289462135842031565010063346944701600828009433776397238269541153930343712395898584811002001239597208614128882004122865470091301817143767739122057813262032224467125780436260924677421491439470338287344517869602535361682764884277606655773135578742051802512220660618600460515041376427149127202416979576379596513899194893137725722544736850518958025940587343012439607955589774050200519041324610370449486294230658244590200479144611138836009005009378242501518323380989232273916488446946520789859920004611361479969387552610395084318264591096293792783390216298540667450274934137092143840373819604609420053872686160362177407581858380475354207358456601926101687496003735417586339180330035713455131667333709076067444121850378400883224458583538910040335198325751126381917192994028595138919064127697826805583394643002837641149446133430580357602625968761703669821989099402798869362645776792983737157668202398474302335315758901886935651251336182704452879004530890392425944539444965358729072062354938070026560025687070396451174783134034653814181155249703758829702689682628903456597425215350150970283185553214507140994739156049447272264091071550442271122202218540457640882246541469272168444981846767782205252800969649366615606712175426795102122600560088224446009461169422804367926490785809518824930240874959447441246115932384462028842341658669096262300293108290367806009473368186165732268500819178105098067259419081580105785674848843948290629065746828708378044065355099590856201591221653298640148169348113348650263393602939939867785328367640548746356758738512987502363780434762479451927164713095891074667700097667114353157209242785607904222691134209264725256535634570973892548792208685297219857777098327827066736689263929286397286561084386846042106579865412938358436958846162624996811053820726047454090592296410940387178559323958103985097901147491682066608473526745240380367702312410065515828825448517136835729032241378091962546102472095719390251308120956341292907936695334111380412356493505106307808062273587580517880844714330468711315238307305982053485809698157237392338929238753631512398753469671167577979576139662467315103165480979651545709282826490763396431341849531070239556654197527879304711055290516768774243884044641790790238751773937603645339644556374197726512062440081789158272453965572793404835740051406908355960592093162347770996655485366533716419447574278370320997649245121376920928700749874958014029873245471157772228573423869590741423350687229029657547830140035814589246397999817318673744564431544832218280930763209434722936620273757031455466759836424581313506128606680719664395355604178332606514121763411081962334872389089680806935281218611169916611436542288592306632722196840908729966345294546888642637118564713249126900756918103858178775958273292945295389606898923653650699830504741309687882964038305762276401658144617016382391144031756143017431066182698239953082764309272425985784956617276383106615103613863926389595266111789578722704180415694001914022634400376398554359553511271894393162970558833057184266379816245582728274725931665075405915432786029570702116075890428368397008835154537673764334130333622295488215421842737225975702227636672622270712775356031357595473043286038244409681095506344859967925629584417504268365617691356558911961304572766877860300829243724085561447071950926771022197762103590625101721085379339348127424634900262277416424982170725749049871838756590936272292270044752837715842640759976240418089686982437808319166574195686168170239853283860874335768553323172161851345218054197962439064693107755762993571802626678334948111267079090948380104798024915186825934251944705352321874531719320785390522141733378829340206165133629099437013134857784052557881381910502510515166435083100051079137409581345243806718015506094457180119714020014792825663905290478918439073094150423971952687482042760202801875874308391805710898467593164263907930895146295263060031315272123821714832279268674968385049827308612481182595655402819965972392483725240612994039664521774198055734595979007876208476705009046436567261306881619330358682018720778519344708452184977177498721664664329272784357124303641535973235360921274757150091626807247418636378534766264431215300980568307601593270673877008194505235767952321836177798354076912752784395100537790276481070655479872049346109770523749627902099806556157331417725025359668693656918854626139222600411568938611880466880822719011389874225086686858270177289047264382200299261222480163253783186319253525250039090011254644244171810236042215176127764409955045652571458078023467564366447742873358505155514722441907257709658787412330843190197418482027675072376599056489235667725696848367869067369403729776673549241973982460518645019146462228750142845659760434758807780665672538517394699581463662320790655248659004773437889316273456061168949674549937303923028239648500276470724381917321740970755100388905318103589806444199920261169016309326886299132192315732464248791695124148950203222527496307267026740912445125277964044085566325055098312599341403429736905894857522389900335271782249111739279458418597661168739938163998815109952513412632380159986035767154092698002600142816481135832413474766985427094227368018692977771506137459179080159475663629823725081289122156128177277835791075437540635683887269737022847072620602444439902318920137805922712910065819544131840940052400811874921733464805212211292631774775694461974435213543503521680522722838710497059973984522437901215445367168964825987407835416364602438501135843561503936603242077685705928937095151863153782636029281653165558999888084651418071361147600259265680669021159427842701170434251333402909323358189078304872192503036390930856035335555909416234336742018219506584105964655451099235749293998166755858830824916785530827922810463984427325580896011911798078586636015056083414297658264061122275088579457859174046089862516130125162557448841278573817200679498087870582476333943785377315204965009329905714556260091002782202325933751254062132250575283192951980023980300217273837742514517162906548900766085606744118008470554172440198977717757503734907333439552464622953902494303945256394474006669376709196658262716022191760672118793543747342099612249447676815914703899340462895059698300574248370205938209099847013686745523319970136211341481120160067232597801517574442792354780872038173003932275314206451027924319981751624610264863531436437363663695174040493517204286271060778486044502238003585459792086886612344222627376760784091492806294477550296200299286619962113989746498561429766622081641701355920073179353268844572796093823266224464664948699381463854567036913345374107572679349973666058141521503738485041460837661497214796286922598445702254774054654157327674643952114223393128808071287549206715020840189377391900236323681976766302634165924076095473503352299834578146705833198554250247651490305088920983813828124209600249031581778404563404181609509331426485978275493110146654887520433561780856700285457882103317503304191983959649111273088515037841108110014610192569539166043801343360027598045190990111555071629567819843468697690343771697130363454757778952670012385000995533436191512150197940078002467140303727637734418585241648472635976293485063886131425480050666831872807658982920508313394711290127065274001421287928827738088954578798752417940957079258937888122213119713943918736488767061571933001118190773659098164673967951372577935677426120724509146877520921568867382297551037383936668675450284926518359927337679690719325885551967884497329488866061488410164674388460516671670021762940313716669074452529471760859254851804003292942429425564309926812271916327092647352217289055117213409452164249982125240663099725257040601698330406585722879203093866120784231428866142805852825476212072396881983450110419748635535870814012303292578590930302358696160442406436863776879389324069204956732398397786979215101058663609959276554371124194170736040639630472575958073422721516220797788145214052925241034490503087598359380660867331827970358720876538856633891450787879531437241864439726637933478602598998987744098559968610229512388467429179604466968813632544886020750264032954758392406303614811554186756440139989133556852889709025380055487863764279191749450047014850022564481302182714946528668713651517887579372426167268405113613151053978709140197349002401103057256616038467553113603797821758692031367746507385899016073331000804909587393665150326580039594600505422393051841430210269881595528437302987494537768720857085476599722087846887475061697854999726044835853510553444235301590536222868638764741629614151404726190434524719996730950536359299789475246087533645404908423884926412516875164083752327272952270322802991236108555813807542075645735303234603426809977098908484165311110725394633359141503633578392214046706532207158573446459869996852933676999107697127268207370984498287644400872198351694201051423356512480697520430429939900997817892868871359291323988429358186012328053873645656564334953920457753155936151840874992954605909265680269719879866892198243961141188539443650986593250983302579556101780518032435947187685286902030072658228021818274588332293698669352610871471069587334344250989445682316917501154738638175424695656924960654389030682994818313875382093928860549212107653011421927863527873581450213834148026704658292428827468393785259643838964953595513395410395434146273794533787853185320888495698854672068439222005488708758738802753041747779960542960490850171177530378586617484613939643835035482951362866900788636389317043012900173617105581275649378833337505113888601736395053210924897289573996749819682659115574607634556829947208950625932571005806754718248361719265497480647919042137750364489549193597637542800570708938455367619597390045601035807931727451295541963086472654806164161751027167510282229452726552668402895314144991803833890650721978304347936954151645582886525542301444244643675081762159049051634569508468301003748672133397959731835509173768964503542989313401940865990465849739081076126739540939518372669759475270598826207732080239896327519917588338711855066671744411854881093770484478136052263582736751663431418670770465714005803079540990061131850409074891976136669685427547130126108279133861929832109161536170584644888344904952809651969941167965594170683048341775613532555032654128403479435564452479291737239468081269312788727913674559810887130423647559930142931336774196109779878788929673308049032059904239904856133262775911009410685118504159035530924485258179765830454133102900734886256858430160213148768262259943448249018817809177662970201316422670145200132893029001607851310379491535669283917520028352476185090670177552721586581978437157490700704150962727937811280466438132268349193169352245960075260166845484350670875840980233361559311531949069967437139885423594630367981469074016936840245252284793370629674096513827954631505745134070331287133158569245444149998400815619434971959277784338158917731784899045684544317183404433207251134030052421141451238228542792214393350113124532945445157863148009618382261359842601232470427547552641775573956242938019440044007259045398309832492854913250393328559494860499670927992372176119646903843619975079605122672796730598484890510271199506532148280735341302372873096679342203282313540520593822058844861694248224224884205733981155167194018288441322879960873001714026449611751964504307495495106823174678247643690053317902376368296066514703151840429280983171332687948921518536537412769797395651074391888874696368936557454438646443741703254361315263733829192504260379917197054659874315522265659906019118455806473348269884847405963347590728512331071529106774733006205545929289861982318757098070206425595799549424202756236234239504801215660149765236243212877459842034627861145870883231135139759309017421590797245343463148615030686818356497141286425048488709312456322008294758528371811574932261118571338703900737149098933058174878663933117033266281880660231036275161663922124066553586620236246088759896822338481728908087253289271733196541337336256930051535754327892335436987568907091385223743174125142779242861891097797068762676323576580405812617928112209061394900669904405330332077567623743695742042166352805425958168784666266008492777162297168927465329294019725481512239347454995796608346206681171819496722679229325608724976412405369531321489312458254232570834033859223233874619897173146511440504555105454855289158442090286744713215850630477820255646935346075728613371404263277397555430052889789381545734248907003613212458440177373927887960507816206538205870756857753774242341066436253293401500105279364310800586986306271514712027310591540277472147803847853532080435795706238364168326956209784750722943786108632433645842268241310777505986361381711788803313966116096603365382099609682584738578761098211075830985912298317197990994888049390099017066005400670489073259798321876448483381188614536402822815920867944505576955963087509061409640046419573663510689017635027939493882556548469108916480429889567581657194899771272251764728935670243649765262125989273084404301347922298264368954829140391217460518382614800425382051340899014934233007473868744854371000826804857308418622345008582250882407322873264514318440805881600154450382758766219242922600392955373151229812479425710349864594131976631247919249489866763625589893711330501349405120251040903239028532218382193447381001194765847185918023927802448500750627904641178842024267398292619261312791894706062136039018624543919467321410320944624143698739649581029948616185656108096895448652360099592175581892804223650809097545226565256506327831991313495362901529847668851267059672115509724506694677175611656994683319449401211275480381015832004623995516980505315889432178907781326599027687369799682635905096925459252762228289964015644274546173436675412572310113021426819840082638575920564118868855791476554969322123212272177381734265304452304690028051384827652808207542626009146451737722937107094886365669250587955287696115304401820097815994171223831320718616505987224259425201760820782314159109565893883907084014674608564160427467840589747947118737208640734533783737651281308864026600650015800603657055136844217348628728930901016790164956653727169659749157919336849321507584944133234649246608194685216831980956467357159116984311044841123369634267110657487295625557547055620086766659019144370064028307425990853582928289861987445306655449944623710438391783198596084939247222777582761522488235213624572429782310997759895576533581444370854994561152370101845841860257644011667845477083518636479612435292255830373518303238361276443767288082122466499195644115567566876041392417717333345713686740236108962107622567576348667953081193000460460410446235105905631997501018148809288392979687302108880380409697069461578404839897326585282052054571871990583645753994116102707862095492110075668226379881062749647799218186457814938666431876902827219788915019645029106881411338308119603429456447069597505800957318651276362281200439138197246031654452725846326377634570781603362980629705169296297811640587047760427966573699519659743914631060908827871632895513808921187032783375910369385940944664998228606920977113586949726450338493807090793279439146446973305692506879239154485811730804175563821701670593252091399388196004982974323569483510376811137150924315875734413893592894338130566664875032242783723213675184416293944749674543040497784424605607924224658311663685915034761160794750359194631001692355742887781622414524888367970973863469811866224365290263414715513180145024212855889664223484595030409130400581839700615793222407953754876709768374175414251614762932788903479930874512012777579190868618435253440896454194088367932367295005571426826379694496537649653810301348268574949867735540038462356267086840155930474287853131292206547759401575982466296055288583059714290407803040179589851864228485781438950461587654806796246804464630280504758465583431602535601441721786402731121260086764441171324320949661461779271324124516887004069481072326488474177871956303609408663902027136642218536734290689248549963320675420740918159762021186862335345379751762099728561729603662941810252454130365695232121442825198308525612186474195664056589256348297463992706014443155114477609392848069987000531842587905818679659837060957661748492427816422364068146940055428237778305943274063683774964193769818792433872532279057984146374536015406601241612317925758939698870084759608839272128918489878469921148198773950351257457125626866932704561068569228200757393718142680535391402733171518243779244669349234245575431437149260479813313669615087213875408396000091963200259631040080212570034872088287349213493910217180838939674683364275216300985283438777144567644210822507314585799845375010574309948568247835813279746085077017998618833084539804698066643729389402545988700522452733651162747061874561947528603419863557502154996046750883022812659529509852422226692014509951148886499260870401659145363465878003850298795438189812237578564140984974630612490226573525575196628830574545856873134153223575114965009479418121573098290163969746140197043598254760606353614607764359453804045737164380648382511890826847926660092496991986712890412078316646997656676921955347523016154076733780292179401424764951653055253867499380025451261464844675921440847770189976506922732016204162580495944339912268086015115193463740274280985311008441609662455568298231179608665088039145720512863170082083686096095051337899601273999137010031555095503053996871172325810901239991266814473605465427950898977675681400491515705553774677444836842760139423002310545774568657993912050728890808031677882819889609270484115356805895390533716693477115849123897000040582988033227264433027786845816995192321850775299164450566896087054416158883882020611817511176489226987580609877390760330371145883672045071294703048725553335872696972833100876602721687376300472851842146107991190597341092787098284089195737186806648593528641004045311891101055975341923452406222389467543365777645200914572536869318629853050151321813105503348991750307411549160963169134331815870138735521746885836483767182491746258329726151563631422196994786645233910305849433658245658324139208910669727781262300327355746067278670104454270054611374385255647835035601042923041248204376759426463383858511697944405445505167851771472721571338169434467110731078526351015091382787939589902445421578699189391424502965138491775670122704428969364149069119212274748724410445893020413724118249236275758560333621258998386300045438939886350398973066627526163515036126795009745125619538129028742680767562231443265673063351961513504004069894413478079478837554705987668670682694874973532131454386048254551165305416314899665445210442919084516126159844678704753641499371408736700367764452405144121198047798279383540658315850561126512517298761041654693134008921743178498800025860564331865323920024113381748253669413223341039575825402349239548731224621358450636908960328676605918185236631963618575932772839727181884311018903931326694908719212194886097710233377162315419680607180552914733445609573828091076496489120127813997023879889036028941579621707284935604757985393603709596232814519005769937158519862054445627154386566996649160127511745926741503572226040102552507536362058143885565335188144174757389776529945494366499085339949402738154861128587259804571587959710445468622947906749873019035524743868734579515394645539416843189019634196044181667858820729713751009681268738601989952330127451686786537980156343558327889285172739472156729385242633987960269176462939173355638667622375965514602780862444298702833219085051672454777792017000315280671885196216160110997643189859433622511157549097786596644097848541165975327443243425637482668688808677670019542725436791135589999282559270191314083352315782719677261517226734279893318991580267637061127309802049828546854398126102224286819888815427210733858993503738049230440674371853276927271016382757002049943519596464822045289192209082575312888507451165899785586485771303534404000359302336801155713803138358355542236918876307803470281159939174609545735893324955427065056439126491267904834681235224050023508307505760743316616233227058158885299126255331496731165313424577298685700361124695129404799677212987916511155047545495746979714433623176452831892990579604494559847187656838526221100962052169143861483868910330692138236978856585816059614937180049539435544968348118527738299245717388743861734337788720927193980171103456035286978116635850331977013492590029526818465268741246475130613844954922447514707232706194488321921106380856294328770600443609336754949169787657612349362421354749972128848597395822429884262041278406492305165186061627523397751473435912348900226181675768006543882602760532144071233780060856635402590227245806722022432744215107878988942180881363614888688509869143443748777968356376783042762472118954069866108100203934072054806630501082247415016226285327311277338703449895573787735930904619309995846513982911566455165743538193751048144762083755313501641083781589264448090626739275535758920237822073793440539127436962323872455344387512674013715038460607072386602809585436759870068898991523737542676457957072490004504158749655764616170238647316105228008242971203785451990043364878882880281508428126981054818346058041358448241908909384755415715570161328644940064638121399947361745594542279061797664418533443339108517548012495450633278218481302448812061413479536016279680722398050807361082134785053556550738500411979496029801761737243016554294613241941578341794118789641323261197332467614971947352629973185599328244784583606406482494839296502123320332663317313487852814339157725985653992291143450754162598825714238392778432541934066722656448188563337538223816921409385567422259272521170822911142264837983693493813560852653014137358942264945283445619444511233042986540112703157496612315099039992742298705034382115400456857127381655232262146886294389224778076850429318969784784866469098085541513961374837876773564974435172822235836628184334590141954564780188081008823238076632615512512236616921553323164877854811418069267682664524461024948640043170842654230740045497217843872204922169460784246594278662946174207514833272169889942816800339898767951700292463848107869997647253620661119538536369416098047276764279251213856702066918378589075737575743769908656497791042640430164567630348354028384688458919230292003314760914241240541320372701844706702590333154387182924958641139834319893333690492291154224504950808867239099941547989889835921929154307950602280091313642059493281675031220857357082793344500438659721934619634407513305164928601984440687332439937363068857369014880446782273517956160889907717548527803074782309724574814795558907125504531865563120603895752292491299165561343945193965859996920601112415767305138235431956051460153181192507792065613892759548458784647763760156564983804496713127640078086507307172730680729873805035189390119511108068543282542177910166793476970655802866052086940894616096335505130414004644617342364661783492045313854405216552247185044083723843373157231143798976722954653117976465291320197401653953614982642972390812738808161323152577517588952275832007862119105999645230154575192105502239310399546263341512079893940160803744501318008460416311909085405071084324553299468214984089748793795412642415285692763489879311531369426453347267219747949101275795864999568674667362097922352171512925611522307080242828316359394698795461319234599059632787970040132292231866190764657714079671329724549602331926717637243666166459503564653861960295623140656781364408316774817663333148155392459010490509656009250757634357542763133805146426333018030950291320016830401595533657769548968260602201689472742016969354309996583863864706119059273017407703500254320048226286024775710484074872881506083743971483406105005971093784169501910307222754365097204872595223438225878062800323656268392642852248384278466985933518254567439070918338127831375352191526188713485804463507766859256532438535995981889237659113870081751754035836066262324251456989683446569433189961956657431491600372921810905591111549098384231868637902626941048917933447172898605558236282990461416093841271364310134537278039453331530250825569939808932438933116225692598547645364384445616466522717047761000741236002637178528961920541884656326655059065805885068944954837835188813414641551805444837936239462361538009739048923104012777844629741248964112132730918314712592465368098078131161460265673621132807489969557261990834239092156427784869335676340615787842849283119394365844470477864816985783678191103710542978073941108856503003893925628654597316512650698022938538388928282527345974777634231774711808781608354013151511042135869859384171182624271583274309922183018340417125769796293111143567551250274677698136123029441793651368222913804647120582774083688094348386692400539020931368297115874039191974439940033199745058918117762261660512515674121250856681707458259298559539709890357037115719222870593915191043954913865685194245439839534343815502557505225162450399424401918302294933237762979475867392328850200768968654488536985272465097632470343792906536716896347948605535151359799796518189099672261339087125270238850080116309651780552623455250822853533312752946897246570883230160709199388312719445217337727459697088076462304761774580311548817085849029143468847429505469338016641684170778558241113559626762534279120127273646534654149374183488524811105547497300896991718016113930517535811137828736640200731527019959952644822505172394861940915544254652323477494478895299481748498044748422058152211496470537011246251560617088862470765205672671776538962762377256337551803546994061085370314371303726283572938586393243130888016113063770040584791645834590262554712530674198370177290036243260931248626023451163248560603974798469515407865617541585486090801821871633280370633516996775525430654714310130384617423039171986819579734269871076177860910393498807099890763260908747505300235588380671028783105411384858897012006878049135790615402469578396604959790540167249880043088108698891300893401013618401464544824022933396243555182869992700021944922908194914533412181315918770882446368433799552327922543645463911527431515125649560613596638041044683723904107391356804595112438265585354932987436349583039637791014394268879591085564364732752112985027692506036183420520072178600217671749834263729687566515281594639383194075853151703102839668928289947188759052764016101377928909060910722282397772088153414211529709423217859973155530423272989948738050581251062539508746251849001136865269399173064976149960815252700811414165655811652750680372415672043303189948143696823722807517096515199793132685629242615086950177778452375365069610721879920073472983770748679663439931366800921149202082068943325171803874965602292895191038258596444277501066978570395574398388573584686893267207621708068120462063147796234674509109644666991184637110879634473581737552335579251625605710947672114141124385126516815002214478932311287988416140188221726508885183348876705948167984652564696181579354141276233017095093170392290239685536045874008348293234541574980297504995422388920578885283450717619060117583165351267467762760371873936282450213908325715195612624341508402628078315118060123531535092201898600891600581097702457708888838670298560525717690847064428647164706782578414605699169589225918810276705648013759227755420842369241170005464436033896001392251614503766457616559123303961473500682496183867910860382338115056357682497566478567229455881185027830364075983350919654435649504532124255421132209875919821909612466547673973002901848143227714517667623540808686323786252250216831045758593401057753589845577186072976455517120760691361439324591974401238214170006585310457222998270124914888080975761836149415046216313496164257989528400559963816641813892692482781673881532186952827402487332706609240166757189807332138347430365958846252085210203454896913847953297872818685837715210176448178024104435744122106104604024639360597888440844988709648609936844891772597008011070127411510363069585536221586042529821951995627078276423575597292530289052993291205784131876687650650911784143062174350188228047645201599865794134676329364039052688266292875436434893507639610247857310858988555595850129768286021836453597496396185612472607233264486542393673979792292102651992146633389065964611088117801783064445685650746318272496813211308990725941064417281384640937739844195430592745171141591173968585954802907739770004794345513776733492207018236266816740412198638581458552474116114187195070901696394366817783160014183313603536950354771519321950191188805756147423661068599095389813775802574516246195617626754235937121111725383900189840453999924019344529432223389034176765467951707429630040545260593253780382417615190984084899582880742657111882183832400489414237696702232036094322110173163673876719817270218140213350275044279000270144638739143798589761442557374983099770285572432951759330185348208634385257366625647518258760262546287565329561840991555390132583992413001090977490146909355186257714722410892438467735757005255205306057025045322364389721590555396214379888383222725012190803625541623209894271244565066294748743524696497405909729520872050168557463922933493659754301318352403802447236856901594784448933984555916144446540299524701004642183692480839543425621019248083504921880979348253248467196922975333415945865318975235801686607842178907649258527250475095814838348974382799910404799708388422062499049823066022069447297831246171461590460238188942524931111582383373477300978805626185795119913070801003891531350669131696751487503351670224313005498122453417639118531888925356746761367992390734921098497863545730589379403238065060611218314040868061651378723240703026971492081346881579435951804312379614584068277390813320220424634189683603332067284645298654987235175765502808136978217226350985988345630872406653636209352939996553981073666144089250933277997922650827484711158793907907610548408140572625367981061789058461664535076542282320377258081910221851361949671755802253444805626171664336985555274734783385728791462544855751498081826128301109245886503746042697309708257953048352690082844106121791175936839020571212041053298644246564328150324167549440934211807462444191148485925328670317046758666889556733503729116430680001290366685510302896834388417864668316449816933075486513945274640604384983920402837826245990748831702274482188195044651157784561685626191060105989725793963223495417658641173250254071797540927564917231501264273315809504420167702574795154644091941321699467936957132002137290910150458281768948222073951627366141242590720916123836432087739168972590580811780222684081964311136664112431804118258291362288051447872487833905198654587179256769822569638641484835956863711653753117758863579974300927690744861096885795138260511967286095480052444161509224219096692656162202548899633959239399028538045636938663275369175959755167215249724278148925090508815382386126732821076190963157624800836317107468317818309211246478035777762814317874384020142789945466193353333341415534840991695448366213268910795255714429577026451729844946818279084054101636738833869027602820715958188348323831083581074163661724719892739261215887394695877635571174348997625931197452927546141633083023040418095759918543998762443604174238279347259014016456269611664966286803452343189082658310315443305904434615684244092852092194791443201489521456664802955832246636604421987272490768957862849308375079394283534411050481000576436679841849696152666283523670699484530860915767556748754593743302554100059353402790372729750447794837992186976676663874040865745066921410886799010614994866306182813670891879799990083052720322752344290230960722712907094538179819434444842513206300517369898112698418151547439094094138275722634507694149948561056781703873395192521318179178326658024342464432438778459448900951838643968002257560903367562325029035589314234607946940645718835945714095255436707222361446648403784786049312163185200606906098991367809243942052885769184309838789912586465253315044552310399572438670577125132950606380977420365754517024115123684182997525296305991917828811144996018756116200960947406704631925034872993333781603707866829501022522319722873142684409712698990468702489424468722871565722277468044517385934104655322296967459039746523695383197112245219415042769823876962473122617701605852211324208638770255770020070915727615077886934355234239325233676477052601051852034870721953042695806758861977181284131863596484118816404406434703287745711200404543968673458100750061629009343424336703349432108036208681252727112114540828563506076728097769710190497009735086696269824928165277350916090664602970041445761204442338498314736194248864886750945930163739424611328062866745542212685765695678074421725903624130587384393453994152085327694794104020261128620245646600747638157676729556212183180121877519966838808967526364844688389357713644355903496273186630287193803556414816056381234412516712491475758164547276432710772062958972093552417537516062421956207133695098079851685130899818924797002577287168864000459506920283232146499556177365248616545619441479479470042144176095943033173175842302386620430799009423674829329840983550552773767221186003841884604678322235148378292810139824456350504864869267190267772078125861929435648877802394294392783812524027818336987504090951398004905168501208172765443200254351289796751741250656349780281211253348122457590289272690546474725241375644793688832257250317332055212328252236648157709090667453775539898943013251622090209541626944400824233703227078139004735520979837657001627442600217743400202758245970745610115327453213901205015212846114496198882192672807544528756402918006675142276899190442491801696534045719356508344574800784224070683201375396002184236549189101652340184967899941098979128060538693254216060684633502103870258791055936088415792089653876532071500360237009859247062034368456266949889070003292500359065152690714987312281488487609264487143600065678923434094556960586719098730751515530185236231066358191910941254258548333104755761969187793521247010381554032404655367905516656693449128554846013111918276487611854698061767967632159443177060454872539927807509403758371650986950603628896768206745846314382839686446887852963586774558032339122290492915609141099401138241092007036849954470424741517212971685770966960895622432828474308341246378007538688997719504548886881282041788411267392686489500181612159881550924203923977537888702706774245770586657896764744735664978326158059033065084938475802720933908889492587165415019751675932937205797036963616442120662581261741979861329255467999558940410490689317046306967155275707524405093699902154392215640428091045150521794053234806048254584354117240915374902269045008516088871219227993045777272617653602507082034486383475372797722756584335869731458937585620693362366910753735601830796602923198022106547040389891819512142812671624722483487552576986069519607910688081284926680309299288797935290450397005381770571136700768426119385884106728851559526148833837984007181248963720587514892646709373888174090083285671485960843470531743346572281861385888784884623264596751225088561358959835825894296756669722529044698914763143006853043409227776950171970991345444525783208252200689776208934369683241518851122308100640642599045423808003379752860155324781384535109093748604963898573939512964553214408461820198275865358820358740438604545756306404044509774117562804768428901608266231063519445328963331486815797197763938059907760620923913355614624526747389951196420728320612360727103114279990407812623999637849908078363359924605036956792059213313497577393068226584586588791759298792363209619368447937052421111930183926369699258911028308929740922937048171905416612100309453851544942827163104897342699694810035136088215178703820922068885852748373049443345981063254951167104871601105368489407070674126078375306853962433369871053097041286996894313979433675181543626789220963999737775509828183476569797660821367610743876904144853916429558191295774087697826061864293452283129202654346085060630938529999783268063803745711101105174963684595647873668366930395632754230290770926905245833519955498348297343186299369267656882463864240284691338549702487562960082034972087663006311736846605969056290208655353518332200757674503066458181724624945445544256812468879935390402862236334431667157322993669805074225632639140492382316435543356382773219458206497196727368001428324516129150141282527284528448315459477144037711700859908044937518804289053416584025675645360357976289962418512021263129004319035297223884061283833567647854975701412530439181096321087989269430661187490792764517968435795323244010227037048812256799217988618903177484082507971311519200201174291807197501897293102217851899750361391400593564194981601584746960776020222737876340606827112879266452606909660277304253932508278371412807083311946103591761313779300783763072764991021617784125409063300090247534449097196736998229806150602822031654782805026642800074029489156355844955904004485101644083056291086571121923925045069677745608102410760678922879446642770149988487229272878013475818470104787988561549038207218006985240082502075452520238129192532376329442954838875792801003698017149331685457712954462323274021912347884730536766438130670825565310063245557879001259698685258621755019742383167309440275696445158150510921006782392398767034620982502293580530295152672273165102608213517475014455807904181186836597747456069027519016071336429182441278195944348441043034513836659448161545143558107787851297786281749856949085337166329868835778440783229348530653280555932582577246342816912061878140336787725576079462064503282343774217947528673707984407033844251660754450058350047304175793403523046215257846137838868483051666488384849447576559144147448535291770679203342843582894520849942490216533021143517465401549098773427300294058341431896570626273222226155699738826619520165086538433921997973682791358846356342824293530757361052255879363333999542089677828335196383980193346785367465501373986820561233658132528800482011162207772963136249148113059880851502990461386037427921360128944247523545369133339574885952278150506640810871932271954019860087124293602785526021356577984902585619798660761101386441299715372942012566509398441954811936760876343343140825290114455586132008226803925823748833456787255198438701265624438087712681682824811716825356532221489234957846610057090877013146792124104393383287121972338246865514352667926323665084810212331277241566025630790483548520598281007389864657716654012028699616717321870611963060034986387274065020452011160649622936921210802648083478064541960416126889553103403148256974051162667862359161511680366841199338260134409708860683251645190827647844241681897974365668811682301788460325845325632925746740006829494733396236008307059835900675018123068126472571275721303690091717984013128181473593594572866029015405003869602825172222620136835238763869006137987391001123916340613595460838348910056577505248698754077215782175376611226833519833710747599076381183708552083700594114122980011611251752751385900610191933563709511846138921930396708316306430917586533208298977563977170361781685165936296055203383833674418847997645791578854644149947181093163957353296442331487073127781806304387958508334277682617921954890932301398222378719722847432518823281861152393926943413080513556625359498350818447332997113920960640041897646132034833484267551211846885286916534302934772445211911019714688676513358267026242057593005686598202623707848363365110735566146523370819505826829466271130442050614179750423097982933365377936667195761644876312791713236108231623856313845173141907169967651286625045403310474712410621514486373738391043640676114393025477527437992154896388488328027146289376673217429743548775945925678884102465796303234193829540036546874031396677393503978399339279258413178910086049488210617096966258002200361770726905542850070623885491622296965905096598374164455269233986473476990559903858228610424804310817643124779391360925892349962717978029240860629067220982936387823334015897616703856316076944284145897332802207310506939409955109576771026172212544634322308990009821472010231425099023434932715011833751355149263424266216049270259826867579005147192866477733985452601638348848580403924160872227076824550544980955791413028870088601721565210078420646231524328772020071648398021865682925498911851927617965001654946185478084527811054728841872368354394856669514496835367448036896912748001053177529964521829035447384191975656147931325544202671838589744840570917310459722151453481462794293967202882405361413398856439362808405655087996332267925654324592086575728004049881921607747518016224002587753147178181274141632395783118909992181126674656635123039681530438594073279259969539253601007966819956732020066108601440660240826810999890168528951067106954303759754911542391759061629224619317701432637417739732158600703142844202774222839117829693771984154825403961321649171091221144818009738217656938854171803613323028204865918800257813678036356373157567897886931874923753644472723616191105754859787237076224923644164715775651045803506703505390462399933950520833914042484282333835841266498834916628758969404574296253285603460917879741064442698614316602094293240068361685028774543116659873443834136583444824896028144675687786004718423379367097415148884207888455410486140265983485160672673024362078202052194269913578834452906194160689878792052040641340738882478202349924662278791888627928666648567566587955697615532367041185169158664074094841691678154743895435402840147184800060460911096158392563302421964614407470316333607775257072039208110778664043856783624699108383169230462020881913327567878236171799237453147174771737031577034432211132559187897486940086227212157976410152182640752240839118646284971228458956795736391967283082710168773777289303572598860903643099906790878393388409943938583661424618952778507273566032955415968005471073729432818461562557036339970176670214448348859000542257795404235151637174093179320836512447278703294234079136709930294195881310682509942444384484346224560758033490663818340425145267515820753539126903674547895701237315301729610856206104063035569206551302357506966467290899322810357386546858990587021856500263038878608803262025618802377992462378201016137092063536286675305070314187416642602864118703455814020860664397657283328212100715352903942462833714327053476037483805503951362270169837327248603082294462177353890481746224623089083407456315899528050308999014723115992524784482956740060982498273984789066868421678290994197288767126614986296483517633805411942043828064978882530236677038365365242965779513192316436627028349503817027761178474480269561899402646269070040392567931355601886810878089120807122044727873403002662439629008485331150717611845828097296127827430733969303290842050905513703224748715056571616823669926279447935595951070387967539966646134202015604418538413170378858891032676197893035538818036549597307798113462394207803515644113060436794174427671161360222622779539183410855361316967624185784331211195678504222706269704828914153425890496640912260197274814852974778650059525953111380405637329744424476440273848608046004222312677323161028495491780092558100910973229253344724711184947583473533371781559845371894734500259053170779521219565073066180873105049270989168427185721747585420220005330686916213126944055065965790149428165781198767490853061398673976988010391591978358970458749900270491645112224866166410009163204369683795925344570638884182692055286926027927053304732234520977233309210258408856626496468524327538439236938460003211458860044879423974287625045199888524638872533835250443560569852285578411024740882048028936314669645883634963886253762644030660871328151467288801671228909883417068244531230587832460440619774934842077015458519972963034189607096519899769027588337864475372235556609479760833467113849232205680212640621555002833641255373522390990416462452385571858122273341189121659789437585413146600258211923058468047421718028110964674233199838137369052953072534438772118760433085064546897189219863241542476729866708471770213491534145226283346230328614062923516859843851088748443205887302428220416987260506504581600309346723317656598310126159818147623927107782597358683249823653384300221848382999658452628397541395743956142611510517140823765380374199736241775269643921852989484791539632658146200895436858290524215537785746547044041691824210661638573709006405348159480288252625659966781853752910408313550378804774794534424213794419539934010541684342270315623367048419173757769159984341766510371372748214995359810120503725120695382513664785807474342015796150096943026203022096552429665275263216428670224057158573056085202906290856926334951870347814702246410502629602118386528169284102173792237237635161655062619098410729998813591028046445913191455978984555869414116742895258469802875176751223496207021314491023312639195971619211817712904379306815932147890169299864384641596943405679631276849474532204416154828417105977932655806544009232315054340051358462669745745483723740581449653401657991833725667112626492570946056849010461710103127607699170948064787693375312624267123762111460174361341382030598515444525261544063408997009353428092189905047396857120080343373524475407030605960395839699046518946239438334974378636472935270814655267030734347850743908258913212109347346981678473658227866475633677012705059998907238693804179607625256152896138076068257614351133989534415908539961215037510403657840557651196852974170220014062633887394382671429768016384448286333386253040154081317030902762300624487245024912589476958050495082350745995357687759035451663747625012359912180979008659250515540549158058369242531566873642851893903605754613147752514062265690687355928437304990419266986919819037585021442860835425472512302258396149151098620868248848254323202373978447986589721953216528559048096696376252023651906284925012437490432633920999470059460535808761797343120156327006675125609689026943322829566944944348871897994965234258760157204716665439961827612826187020406284502249905083452722235169423880215001416557501653744659893446770056330046499267019135131558394871552208405579233867485113718390001099230796589123375093982994804320459885915243343126788293007173409552090982366581920182831057896287093056420839024645122449470602985405177567109314999138900459192410596138547641602685282289535645602058070508550520240250607152794282509120453815460830440180437688095744812951827385651808545626166036032751341439683833004609350427292542170582823241169193562351514539318775174705136992593945386175013030888995707764615435717567401254213586876904532339370483042238215838411387348258204564670641999982508486493673269481539167491435126018142579503558233968379833221536563454598439933853607841660241160689671843980155602986075313829757813184275295223156649203239699468063765663260043945814346302121861380864465857431931158895622932585004666634706046303931624222326104512462841397166536575461007638012133181828154772407455994347256810411001864683681727025346863018740306249662048933723311571207233094694655477020585607049599363317932200055222418583389389810807539303666274966063010185646530805171763888714844509664349820360406803657199165353060173937904820910904293206355269388256954389456793773066778464990633263187669651637907057004968690398475743521807350919133776660186546699185836897719733874993801902633119346376264352454082195284676909156855830707264877790759375174197074426766795273722278249927920703315972419410794645652026796011361077837450164233736169992240748571247005083933408192744316583135249695957106429509665858838365179169606477563614900791078300161996457562813521574086630956035420224651244968675897911261502808734396709586696589780272705144296435310371618372817888202199830105205264573171699487180065488063575909595178255806938540390810248246195476335570750736254511925248011530832457868950504521116405729827204668987065989493010762010166198581634546661765488029235131529499491078793308960787518905739938105663602407487896077130851924665348535801537381422021889311228320795358514055923070208042286405313357021237582240385685615314362035798079210319779441790081181594889009585279139945757676357462574639596032599337968174883342578461235324855290965090193866830203104051440541429002738031739625542819643250220462412355598820042684749677229261461886704849186706480756988389858976656888938439843770824028412897492801963865052875506289612216927769490780231859331748769065632521020242871800156023246876709816102313259245052804973991083765275268985211203323145305120082530802174952748732797689287073488239302253509181155223096740318182981978228164579738739058564065813158600927747923644446483106655687879503479431437933079906878593663525842586127519593460497015761889954887659788067439408098309286808621206219120046740255590606678565875774141063749507513354600182603145488856348457567416476530054410331771375502429010413743696419445385798139208832660465696388388876146306117239320350235922154172371865679858236413888861302643544076033468817521921293597474813970660530486828900747154934247548964187194133246061681606437112458862456875275962514577683407149596634911161928102331754962991718741163271419329019356582137242399210065794993967220682139916612718515390179857561143801895710840095046177493768418141340106080667812069043571196613026944117144587521490334852829343416554372267229635383644096118443111506274757957528862059573565493903697771681101845470531230380462700160681342176518836578097944284970164211303175558887659250295592464541050568650651253739502404426807034372914555483820858108708396420033705206508741012367552569713889564153946724821810510435950456737431041523378861309523357812341528364646617485409905314972685094857078265542126970051916465687415680988995170342971914805596176789574435050479571189118080504367427180537892356640873425201567978338382656671806503442259900886047609334073581862313001350624832571463604825696722307696817893569932701236317545465022357580068648902151445990246320951816497751157332126231905711554928795133314898060332484542381347992907878426603641086262180013095028169766083596921980150195087624526458051660606734178906275131223868256206917339592275493034002909950323742896915571023663511134580106619735371323077944966872710221331103592578155299310826743554319595887997775817634635857077868622686812561646740486915861226993798268936750630488772618406227830619908346801487305425672404434902467169737861450862385579869129350377718123330708773920293143765063531013267938350612202615222423184587108928810277777965127116858620528353933736142887482508516544896260654143649504642230768185399682731765486417871703536414413868613273492122453139971757614373359853953035936159879842174078794268924776527375251738772026730095938985998360261302119372185204049067222158156132914684347106725386683206647284014129189645405071668547100815873767685964017607526040118995665402661279220420486652829824017353874171808274688883810180935232010729581705866746066750409833987903278442061321672071750279670874046922491369029381317685764396092571937827004748660171698121617416974135472224988355927914557321089699270603962482543582198471237470347839451577322799544982022323238403499458785162239068345839944515289634447852877187445670936135380033233325576676208120643869886099792603567688094973239241104606533078053343540514284279271914690277440206271101137917858201511364149648779157858497040869671584707160043140034770935919385857778368215992362145468391114512368943322869112879593526002439634168837768472478707522371982489845819220793409975162376408863041317812873142622591449947952005320328844133794484066604660272596570606287887486169683769169690760876720733457585925598845074244346555620723870562397780869676383914181659311590843715366819364969989966982305090320104320591163219241827792621369068103796666405332962042393878523846904309975028094900479488358564176472286317788324259246518937317247535546618407035389556060787580190221689744937788899679373611088896066102441049001956998386235844307048141879305021357623598345528085168886805679918602750154186405413881184825416138784182831506200796307066865670514555619198996453657448912806410815906942531933752749733658249968095798324066594469585210969524054961600561533250859867819711800313868981945593476329109631066173971199661328806936726088778128006572083619586521864368728898331951516801375993507733048423921879355101256149230147982384025331533299624735701633799857351356824245541192487954676704354432620262338711825938267877762770590526693769863671329809280728623058071856892222284471393582924029110675616891879778732723579108836446397673184168181425103916771267138237938248620445037642333486331340843534864288196909682725284858095647306838679389074969193403211569920228689099918303260118739993008386714610514082206651800629467585331885417629900578312550036501481317179664861766914106113944789753182247562815080401299711714737826722272473935901370314171889115174507290943181821763588558687924069131981636165204144884691440728145997224678858169099875549976541361941202320509704583176908436696960187589950756582074028634415103488497595333054835534526031787701972092333691249924159273089512953103916332213109028868599144427049953443534397129824333973750291326858782647140470375371060431575842785037912841673000016431064743350473221901258304944873202610868222273939310132932262990670943777560750992721188225669927076526733168372759755995265923025828109972691472060701318642268773266245128260492872214691224442179252105424833698625638754609605521306651935070324760672193049128743808218780980569978590710131606433486394376244105819833452902896326757229931262408928001787941732570311816458512944837322791195203790659670854603797432229814471819631068046884444897791572327946396962436484272665739676924504501610479129513764713401241989903219331351322471195427637383250156657279275286305909109512371823463427678190326036388316195311592088615283700165566137673418725235773115200937065112590557207652866504038411810169572758262128771704871140505468151955362541396101985805498284545201708079624654875607550306794437622634919575920569927787857461937672337511886194839036475026979692397349213782380482173574364601676043678584814008471725573616873867864356475435929089728374569241655591811148718696515714842250804912029175401751965622654248803949685766774494119628847465444421458849164799282519024024881483338958111402463424487437463805780784120775081737311702164299485801014814500595564408391135853522246173995355582305271671674347287369200646551479857761964597864987583057198488777900710619087337296880489939843311942502209603742358286265380715026477764177728489709959568409131985284943007757948551853050337106774233792937568539642802963882054081104111461289381943272189010907563020917789091972103664547405272795932602225338873168505050536288702905019202179145253582867808657976280254927566358043162774250278997186394495919090746355992671867297211410605965172968773986289708083017303744190695683729519175829808952371683511541413429791745995784740994832169322163333573494659104795849586358766602921076040199414136016307348663595689703550141700182001881627724678886049180709806973411666740060408186754704587746719258132932705556622111989814504492807459980725458976784114249827648211306712439219940743350596898991992761944595691947041112318661762161513386235501064565084158902422254544074959893873386368466980330377401703578463831889664389727178898959430927502147764039403521755989868621936720437214550859721984767017194620454067999343636614472330529236753660953895388027961485475485336471503932945425549359738099716313025169414381061574950882147173873079519039739350179638098574683065353566882110211081978349885312075377259564158051684957880080306517111617825330228594416658996867826593800187105405455100669568731305509254965948143919791627365630098098505342057141568911367927846719083796702790294793915352896262859947259756355274914120942497445195276168456418623137218138812898412620254781984110713274693521861512461511233262249538485601584911068546618827063008999790175384715675448786569277136368981202304551934786035458169499771313013887510014437623758191420074009050740254542661709919939376845895410135404182220598404654827234965852551838043357699912657624443760322417910842582310816130878056426350698740527582777918361039945810689965341171475360718850004297691628541395053666523278548482115079303149871960175553038750016907229499789872676265528395991992944582505159397101132349799434738791696661450911512637231320148579439693213029839543746396182899766676271159137006987086980692346774814288826038538231352830449619142225875415964362978756288331290003351915505703151653728628402107648681752803399782491812737915471660820638396245427295451071130975674174152635580744807783545312357826981337948113475763050599537269531544180870541613672530677913035211178208197362624432884348418810079426602981091981997969303525427247055461047465656401361157166724230059643802376827141930490267796627484787245669849095350700972235670739750303934519644064952989531311836426887022712825264630953118625408433406561352074049285894364019668134227382877260306675887845337734659490721911822589569428485471814195353786450160729043222173092646817822010604528152019008457136878390381480063851466912284869796914019779598867801149815165129166441179863123053889176709627308719975844908011190911198798643680888734804033442759503095543110640388263211844819508589946421229223241669970487626707012111844167838233905219789028154836155699418052077255172176453966039068926480196940028578359205324510430712459746411289137189438711031305324422843609579224236493026785770827738965442831491150110241996237512831302214537436958054570112539997664114535605385080204403642589487678957464818228573173929948364005177062610834079760668871056270348388567448205946482848857307690144741012301759144245637747733626997446937079355974927846784418145822697199156493400426641282573938383935311333410031886913243915425890766548369390509767418016795131712064523242891823630291422268146212312149091370443925214198651368834063638173121713899056006891735103720468285566690451151272095489109541940546888496254757354854107166259890854520351346249328662859592672008792107390199695269497968132432644082306807582185280402518794956706113136306783693934765651695024838122265627866217871931373029426888490188114618687142897666918918728637605702751328592405636335806370020241046350910593989644319678222265463568105882743882627363805390987557959893779174173439919851583370079348291903607449355017102758975874179481386471998232847344057828616507409653916485941811025568269168287879928189377999104431089314221100719563952734741492379112640277820967838120830849995665555259155744078861334280256261841446667906396851175762935215136061014675132242502187679195822097879952414376990494392438234147796819321663558065238979670062470967280893943147482148037035072802555981380921609545132056893640976521956105027233257704913073376554969253921192890155342559756513465691099191927484404909307627753217131858218112914988037137678217097904499399439991692002401948842709644352932516226140156913208747009879027383016341833838706546613525485786165810092377931335097401401326563855551410700405015378775381917683296492371274991126660995798749255053279235582896546346303772900384819036139758561925004490065223022386231450411542579180104512929983190442980473608549281859652388866284627571691176783751917186810072589752056868731059456031761856261297265558253742210375486108674343636289654765512847446963730660209637388119493945997827500622112058137475118554758374237923159306041220632396269748383709924039733881567901204329067024908629803190160084844878358321751171814609885196690844502963825656437175723409115718185757451338583188831941288602933710731193441875191483425819427280833156391373298307367897666721929672733950560892206463072207393577744381746619051440813989411626419709125262796395747649450279705453500500971485813081061584538909233066042718684844068327112930508521941561134728698308028640175272352265478059643258878266382583876976183619222386593901142296462828688219665695657709116511407997767705152023891812798200843198311114399385923622570218156110009206279902507618699984766358879003486600040931225684558523254455876988188329643929048083157062488154180423344272246869284000578722581140906780153769835262825331097448935589885632760131603745053803869602486862067762732437908806215688607276989202640562905428566763277979070363445195082078343067846642330880803789558131934175021259647135051282206823712336755606485707668954692067826359025868502473669750764965519945188376819564984338452925830472512960631147524672524739043465334270807447176591068130320748405183967198467963396905333383705163829612754975011621301330792956210374533207308764697132364542068964271351791042634066081959947428194665479618031258466130063099644694647520408977074769265934557714530280336089259069104399262613716967009421561396483880083108482283882919318517981102888928780195712664844130757295068441799524677614315977300214212520010739522401419965016308954052667248821049782597629331404482421847490848225158503922389030955026698092150735405102225960629126408736148160994448456008192121645859561060220814442827128108269280356821267490363741098860956782822725832189986994756775100104383880154842189263907354912679356028511809141550682737882010004265011672381502351390524957503250938354961957477396341579348209925498329455574810890054251218041901454271437501893188456643054431236523869812810213568731754004448715274654923530664508752827302989168619112031152100317205998150190760764394331826383587301978611907021047158265578260067704923391609160332990000108203148856115410497144611138961372661461725633492737463928996914148534291556693614005540440553950228593009257650238190397834050406942079264924932809967068124435599538534568031989830544638772299381696262098425330034366697681580043268058084733519838674794368052969210623615548223757859375353133564650042982838140128261961784718310076126887012799357640193786850240683610523415924342132080500823515920304786791248888134566885069058606476574209465686653637296489847533273439708895776995330721370678856231195071933159927309122704031529804803210453221370609172009458168831101933017378529555112028456305957324105586355943642480039141646033647231609606800657421905922436104909433228843847383100442885568462192892062081300599029055420639618088981516707188103139385996419864198007681456427734915481302456694693547051539934565524819712641077965013367853007672999215460771807578556147278368172156548871930171408080224269771948011994477326020400897934296449384395880341038730791771942072740515776248862154555430755869420027668922430986717674709649900975341150882418493256604077667214739539772987810033103964639209746848383923663961757904764747907961748456198027643968349343158850509768326303490488551964245605124183345578648661214217120196902895423842327428712005232439084395696738765090126870479801211350214186500019460639967941166845427706681046877889587776099752716064556241423778919556836881125307423987066720332070388148580604389283297839952220954596276433097120392325187696884468194214551899042728915227631390799527742279063139150917214821585461145720522592750867415328158998486072863297943795713817592372759983869074945894860943348833087429981264085106556066729995191697637711755051093602506849257847165661707886904225762814898937094776361082001237563741283271132209851790089601060828828922014766695971756673356860899078201513023959375501866233467283485919024435903085465900033050501279955871895718554265785340630379988432512652585695377517030398445365662125688476754306945917320603300642029999559257219800217104987296997644928511629392444512912331320206374023751597030858979116099824446153277455614857339810212613774867963742207025124283853624474156965646361394567871916380543383787602127640102467947005661919403339118694535297166160272126509820202174056918173043859408665998047139309969185706480218147399968813051514220015884374042245853687466067837162675701758936197974910760247058342827597258748719071021360116701814198171716808579961917779995184327347255657190539900811654677303631027874440146103301172173330666269972657138423664902459542839136965744006351598938022474123058858718346671150965935662875248075520137877036801323869761592760869859434050525464680907283413322130331278007159823135158713826121276794363309685391042364497962589084844725622007756813367306866162797033705117544528708817869361165619759166481590940610879299692498175485228467958396693503914795762479412713373790483300985415066345330365581630271909391754389664596587470104249799187992904870623492344118382318463262194216650750445360812929472593960612026854350587508555762370644202175604926633908200529628299086386499919398227749620726521550350230444582469571593624991249058704858726254299019922718769436531888046253820476295161474522012991623757772418104773095146430631444337446115770464945137673670670867583139306010977438041119187659517198925574428264255706999312431323669265487494951148619750807488782579083706653671826788450630910277499223715750852722966361734731463536880149249894509930379486974220758725641956825152809160629761539702900374865468694253306668213314624805572609632702789460224120982409325947521786767018992168629151855617209060333035286878149485333980742212100565699435724074046607905493701458072851241641731746428883958829275761020459124092942305338285053816832694143396223014622204936113442802897170687087358190178950174364166804318444041459405792328850680618517644180713829503384699990759481667311399781698897446172462416820947613517183199396898695286480497559339302687863923972862053001855943122084052508044994558750831611986115968636480276685361454956175399813035576381684682140792182919270176860816011958678644889182623808825939759001400767737832161977569795467143214624950248931232085201067416291479064457224781886127502123208425819646460013541598226321769823291890836016672438915280607154950832353594889039734406499054866819468438381849560106715977708372619160220607074499907048105395456577267613819774992371994517284226701116139021903587105154256172100820673307253972319190509256153092787664743652725216502545352233350703979208540731079729141070937157072879310473980197670850074882512103725203289895986683505918934623298429176733542304752794568703816489835497444953758934686518976682040541954212169964071366406096086452558134481888521971491839508188785147837104750836731361864618777980206043355159571583463303564128031228408192269058191957448926978208394017047125806403311625983980854307120490721358444142385466294413686799590575978074651776441361157462301843468887695528287388907156872436832511929858534790038966131911654395297758489851360013224418647742343408845610680613642119987505236967381150190917022221338772369096960966440381333409437777200104980909657781826877226078461999163094874151156318817068911701940984414590043166694330615172105268093001118319212250478701442677934736115875419978367455085715366043876673767814535413698224069410123379980065050576271716628179742951978254786612427585588950771239009809545947918805925998661986663121002427973264768788674933674999625262967745414168482280128674870813124599618095150752971352639437150981658773569090126586930267458413319996289858409162003523071228893704219158029638258476616001210260733808663662537537295154535400287086931238421238242102785166591140536007516347161643008015336309455872234069975262413435713130150022243152694394283676285599542925260449145691682734205006957036711563168541359461002481123447239993106479745922728753248875777105067937748840492119951664484184712963863497467363529439576176147523342441937921279814798285315327879065962523566738000807892608562528980513116920965796583270581422386230619979219902246966818163614499104549954469545376367844146891025335381415956839675664972422919712709214872174552758740594630302241040565437792502363684904616783577185301778697182831149552665771643160185172447345568301019640737987494160906902220831624346838647817759689186733121185810574609540603392822330015647601232843989441013287063222068646387843555719985404312765402021055051683736810343060941197265265514357228940647744641159971676129768206877446498178314428923733579183228040907941454092216562215765760462767967949610615272313004368736961433175530277369641571153613414499918177599537285131891728118785084526596510733500998200249876594515076420009352541501605202931584722684117468400852503337418682607088269919239043346277730350517726907772110975351531046637159871128527865361763704069460809900697026259627337834211924639792379272937077291402262869145884504255207256432005099670262793940709556607058041228524625015394002806920142319933750180753848676824182989053040784599655070150490400568354463620842413147483143073764807579577293473180526734162728006060944983039533476879107730564809075958078167649164412485855150972754230600913244288832247925915580738016358757929298092653868351383977639120818146764104485976583157546160492161039056960032697843573493529534087227667923226925077460427439740548004471748496118144738469026612311351020735602295421005290732438696069025628314626483345606201070499905466342778765518533120045866750320458835625902903463994891314338448764416625286732263885510168536285549741475359449061781763911589161599558469156899663104982495104947677361810947993504240299332331628115531902240624232269050173765882859298613851117920314156657799345347076101421887013524653403911584163802253569350304570709812315113527549033097087463020951481507755342336264999573037857777584196178889451832858211409901701909769466082031989651459621470244326087077069332496472655203515683873538594705844103757672491254288864412706989402209901182058306110993701292221496018877415463286578304154039121474883394458815623705094176057019932811224060016210943651383815511699538497207633838695752910320502335871434297340528763388245399456870581078177282739925864602977386242059042812704143077565762598989213170833207582702339480294659069936129522868200076797575955654341936569416149499518915496916551411958633952184337375682736674366081608890702124917773232164998789409174637968079583175402533410073103867362605870679801134210695845195208619463926591458526771646477625214569170632361616832662638579195126615651853018382063496320591491428886223686676642143597479091666645203036920226912129391985474409248843837368093573412074137122951368740560949876970647918359422974543295531003961487776201478257494699520320882253235892613362739506566865870219479853267393264165180430024975313698605206787317526854080356483540943116378389698961054267166373292708818778318662317677275055123384246311073441466252832521559328366034510282053223331183934768440159446152431501108361202063200370666360785385680428382294583229818340747926416388797694199030433855462199909936326514309968204913918341287133631967260636004111653913446661328826742447467785953342662292163933894754802135766277665169208990378818450941145815619861420318904898982103359297668301238961951452081789413131395302017665418138925181448386101044148451618351477780343161040976979303261361773880580439812261739979483706089056196196155221863728138071194531461291196301591859954257809128331952942893008539993405874265945624354598758925790850191364968304725121625021702343854181361175424976384103047380761985471010562430562819392508758316215659329146371464596003808068343127261220327293748434705366827391327272181019261962170536916110857329497107584864190884581941281321004882783625281851634479861301126483538720730208611971036997848393423406088758555903576062194043758212605852522688427598181708406659046514269016644872019218379361026457232731193355733758425705437247584082718616713331109630230014501201168209395605111151136299698078309801822655764439176892277884230215485966088696517603193012941294359777572966457976515726900625694051561548967693879070977932561958088916388451249006877654385798943217311995420526257392445132449917977897898248233417545098390429931871083780388355316024002360077901613202013583059742603661665231401393916891827966037682269726602897293442759304915527893177098749370467864883687835779153275440118557585699143148744712033363908383496929121929828138950170769623400768488172906309314613812114026043572052723130323910835925517394546100250007885651527968269569493274627733278598186962395695698397897571284760983426657573331443471191114330986342713165972787012277915507659384281025500554260394922476234080093495739114454829180070208733127663345895306705917306080191243341065163022768713104448596680230068852083631081061570662105635282684487546696145394700642486480816326910127452318663935915920362559641754544256699902470396787011402905186202523266272252291252411605845629467645101242322755555674974676306584874624427557949798730492536222879541332120881415270714424049670098894911161874235255484831099389501302319497340204684218397859444281709583933250823355490466906307198938494010691953976107345841121376234095791070401648651234494586269604239524131160266722414342972946862632320292807875752068450559729849192326708619805025436881110281286466261774985464847075463201610801164626601811623090738825905397111343402150349236588305308029798737892604320640598490836006082247377247452608827695271048232867901434948973503539049036501504886288779390281832013112754609696151358762225457246471450646898889699357591812079916341463000888603636756875141916360370026727390332503318731132080369534127782302694468425869661854300059005220018115867324423445618287190452634188107023344127720795402420221871107747480459242017532966935757290564997808762316211413494700913818511207072796252856885281371625592279675603855379395077425119907603231833643922642045025984716342169546202778612725623362133822238566322687322324069388854168675763216017616245238979100705950556930693094650523000729387775744217314969905712618711365091694248856980076595009114940250677128477301068172846112257883660383669244940211805751348331492813318216188409765120645711256846179424415989096662023692802588702170056690909825092648297114290996466806612200641501761555224196608243712385763779764912728775777355733759081539106666635000287681600277202872864414430294190885055747352026679191206731143556434525949732651752850272965246032115521396136736106510780109241704547082978186440226597895525218143943641270842262938410980114983938392857899935867598706289585937859602681880888470915239165276669656805331228727932216279336978067035633465573402061752175453646897275295120066147450105301938942086328640033893135530259971082692751966854851216382858415828166025482716212287932817438151975262446925787300535869287983656691927174661488328897906464214311977197758959094359474428978471250519630978749078909160539159868646152462372624807698683829888678533777201070813142192987066051960404021773707206292457377473453283243096016374506389362468344176245546821758308243025626310286125745944120589537206873777595725010025244686209147780415895978809984947541245805359061067091603547989810339546844255778619111046853556648691338902816619338384925959885144364739390515790689534664283366096412300157292095342785632145317323025340429220356235498456150903429449709708089661485036137138538281828097519304576170206151471608073975423162538237525030677983277050437132960930152624542211446560102410184552258432210185231973170673422997111023127830842147666747141913304220591248324843005195448981687073073362551596461354827443091346679428304040404067573442853620375783750286321424915803576476234034468687614079303309781539126222264260769998578366411553783240993616160775494324348461410750314866280443298314105084048901791021415124537227692302737653579568841358930538477875384669341276364274596963612401895720758424870950989585509159377436099215646098119852866447303434516915251540830361334301983125682611280878880843890573420783246782190876732633960745093607977646662713965751976639491229966406970884245519131662183880640094822284441891096230435250265762248906279111158423670783045162183635612224026257098452141678812929329610206139228661363750238142833004547498321121271376935309596222208492802468440059956772171695517738598474662110262565403924097329432084447004621795517501211912444817818773045069075770656081121758348398606801852262875770280432574650665661404997836496398107557143723363319327367006983551613308890416336971439234413600876941277269484496284025652413596734785837788203788275057090358637425473514271891438156509251425876565324983282819736398439466615987836879757048566107176191261881275130808672836908641160202148762458832023948417063745237257934243071368037094901109435115436737374096512774932007376452910866622330788551945741217879917557712153990110729396155175535944247050941545563739586426058932332926232500337729927803868507320415750813364125372160762432507996315487171260258777030412884529809256622049817006547479013976333726105466217994942977096799702425898957618733295330250121552024719901126900571303885059084153831186140500343462071883076259934239053846702754113830868432380396603871940081547630397514434855576712722618869173731092177035166819934672451997563317376064647107376715567366729743903586084134881266997221170420358941024426916007106541593375296037703453162182709981343861293088335142604902157926844472231949843939346255383571734174595840165947024022755915930894035861459349026741829736749579721536594715941520868445055777587355225368773992430463872669435939291540889701479986576296830827652869373249938743575011643349644307905150989856006767340625407989848298843893577804620881280815387931654039284485625117315414998041325253622293553510602560159323852169713742756750099046796158564589423495896315077639294739690823081439018993748283256576567311370213717358206815949041808116644592136685266083593825496168505299088262940455487023742166237881553325757917351662936111334969069918683666408631653768805454878464147754210590725449416771467759841943019258771189439943510649473822100194836900395707243135748356447442635468235617013633544777046794124054266350939867941797279754210597921773051821318960043237644435068009342075321083840509329690816039220728234290635748121364285727031461206326873568272656312084339870008105140715757643502394714378884333978062686976043887862905617416962118464940937763576718505442037898263880656982113108903970778724169407558324971438743519114695967870538823726207696976355176419191140543318031856518684468709329229905903853096554964595014441489460461058021444233336660197968042745790873211512631513565035223527615536482696931196460476299975515563549820737685372225930725568301919936990191042809424142033238675034259401461390316480195237280098463204672574249818639264556180056273145862173119740985686527958361085573286633953164728400228704827852465265124879418310172800153571627031179835310235535990789288113165163893058154530998345253765184824424224818308828910410607057995478665130528778142704449780019990409842484214682547817373699539993935524526524277575200325028569943246981742589749012325659232294408135346654878798891870032299642978385430349500940542257809386791612668430949859631891855117589793484700320351236961106595605354425586157922078047912659760501494358573781381235617019819410691002617110309645108682171456326915706576574989121734034143786377267466235718121690501363270084957641560296406265686756837594572960658697969731480954741690390996384083718520987288487188414712131902330138298284837949088162472789223269193097031239505029527785117132442246122027414060262746164790185699567760599647859118146931452890520527907985409541557752192224969206237372832679402699637996252261562136995628291196868497464274102633049090908022001158316219861397205837843227384389953391199084850923287770369589097075496117504896813101721003356795840591434678898410366860610493563015358659158020444727377649545468131282253002243442545135084958039662215028499172395296445084604804371740424981853419028389634733679821406965428977490426745435226415681620776769393149899538490146669061127293252199925404864538511699873694308094626852040038296992260914138812110032032086404850693279561380233151982629437897949661287729244464940112935512440605209650876327569824759646547162340168124200512168542970561484951334350019769860988317458734918441975251999120796841557446763154399323478895681634859937790399989965797328858532154544149674126342967102944975888247442480900168251911706465858014114143203748032380108922704298758025760869377832493062298000770025215384198692881130318943580885508482929851998294008517375502367498472120265712733962551696980421105052035711399564302246109982612523546213232309478087568547578975776662029275476645360126801464704001989511626587957008661339599428864393143095873193880609098466111517387876314034205053466484146866329172798396722274437945808013818545555149512244805243467455478039034820953359902317566974202195160958162293397863640134547520777782334116541505531055254668254314945754568347867051943883367412893001174467558694027898317158154426768134497856592314218065347524172164013021112840709884883101716049232640505906790331492107695220349127879784746810368638090612565755607271329339891858666530982797845022148222514193176101239660032724269693986724225860420164861324297604047485700396302308482485544880909623945084706519199636587894962476357864830545280456363524935187032627796933320681003632825835146932617821287235460567231067050151760276095227451914132629864517281366991923412902376513974197404418298934770613089779739135564266799746070734102269352630509430530847353013208828857573308787921594978154906458346120165854775734133525041284856420524143603775393027326387947761275048075088628125500498522730687891072543266217039660829844050566243707389634992203913880073648173073908971453479978186872331788105885783684202879660056674378906640994066005521953336829216898382966474472826619267870154878174680022670248994414160908583641508933904173607695916492725092150138912806558986004373219525300500547370872964111614144334217155368497906770199174108495903762547302628353828924100891713780413632952610707411045908085837588477221935340332414235071955476476547074228441419447078905302578187117624451382622870970468333909994631784747484434006807087605876946235831833590029506885010977800334674909197811084451931426249396342195148649450219655177353945671301714752646430174118108981974358459098248851293367273468119207691713962810186897157668486613920208071691525516028940134951296749198334571176525979557119701260660300541704310866246352121034315062286388940715610287562624615539158300670728545458240916417392421988946075259332531865895924267122526962801426859554946747024451533042572540029858052442482669780767196901314055162297534508878912855477732131527534807141715710359224744569916818524769720676098632102699031480329342218424521592614256065734985608685895151395012442103126757048825258220282507661062099678974530352942840359886292548100165814489818217207501073034757479291628702179610970496392733031352085423864152239376970340665334268263379034718119267393251770954196810554165966734456506665315630691427423881384012705246440746574242988080165433151848145705966462464120310954213153872138075809112839827205115407693728443366827921566010752388689089450084584511098440343385352435006940288725253054990407547768554834657625629048055363814309865462847108141534454111136506043760208538163847803639087978824620097616492408380350081141639898420366598641341140108793090411416236529957805279223643490309622053187625129151713912852135177574062869080291098823939306169396133536847063312693677601961972400506870038352940744077506284771397848001781386359298167580854917551877742939834974779295076391251821968275760357197871941266237576518397681973394098194877378539561203282008136012172100806005382418777978682352506321431669842201173087038280973852096907292900136578976440440411844713601427385782540689833241147929319123686726461860657828055468108476407697256073434930236528872675523158061636054046301422091991083483661061530410143993779759862440719536320541166886212856870737044557547001227667351840802670481448983721817093290830963502084087701797153558380004085417909205184015510134923152818033270141961131759788036875854739121514654420561688827156002511716099411096943199354589126754926605413823107470112875742844001606976633265186392178524343253114131669277135314176682968923140988633381437607156670145044377621711419964984912271279109762387880456463859820861771136897017862770441272025667525489327083142217573632383022980180259676676769270605185709322206465494903336280511432805720343634944696077632529763758442888926096045880548015145790693717488057658425684567045799729400715362354962392595360855088708221608240794011841537190024425091686977040708142204706982092135720002477381114538797850527373786044997867044007744331534404175604839946641377267391904392286782919250757854947771352159408271924593284457512306225661713824154784739074881139295529225878228560201609828879925924282798763267681663143091067169721811862646600520092909939381947275117278401511438922638984252198149667589219380890908760180747877358647652373919086913000501097331706991270068039188746712091646318621314719938898376150387279965031599969573598980460782817808898199686836717599134994555141068800814343328246295155714474576569848313829595164576926327462728012866029625397343079093859856044430975175240099653657688201268564153285086618840531784453802585762317558483742625496419866178410605491654041348820095500015778247314850703850116076777162659700639951851573571145939650828928357201908271664071404134933896827552311939621988563801735969065871911414198672247469074259185613903148540539742248261549146104109312668259381338991342900260833693663147691442639437246075768020830107806013018872420892577256498782373086519430751507603976307405670282925295319821248836620681175168169891527882718042144580639809093282058636989292257419756612351424901150109736196368216986078275451468102573388789361439776936040056807940302811670914197851140208658453229912243884913463399330120718083214715904981393471858522979141311495371649741854181421863884460087278838325019033956746890592837692708679607698519087484196835734884942174776758020925579597965974173734857039711991851667128872101215899578986129251137990939612154483091229117141584963035492456323064457960967007263503695025025547269013832064603883973786644196898950844614291167958410379649760402301573063445802211756734595581757609289307761681385147917971922991245971162151675978447644614623781353766692057184861765935565185163404222125940919264872829130531961476551480833746494054227550974425785604337901848627112201722342588221611659819835888911064909075120860399580398287508457400341163030732822004066459528564865561879516145368847977765526837937793257122066024536675153576243408048796622903008061622078603538198125428179555463743623555145836548770222537417371588505354394369824291493219818526868743391731786746768585001770309865066739641537597256777393462870154911638699003725768667128689845381824042424571375561022391781393657414643095147258864260818548654509814109757823084986423513912604451838686682976217336380513551346246551284287570363181949351127173074247615057945748473518381865540456727894089487309159853385115334470966860902664889152525212844139337674123888135904204890442590425024514579738936040989318600366155430333043673973285803146195623873617388331874592080391120645589078442217221256809833867905176282239893442621737124197009710809777082929690878001863576012583933421723262190727618695274492862431031635673860230651766108580836079644757534549371291812845484598641781347943307811645954415509486323000709000543255279007064005407981272412780725905712526537843539520987509253888678800323336273435131066300905331145884904014904020486808179598381984577710140533413639191307419182611992181135046442210122577749910802969582848398955824112267314227736455039521989525461686107713414767377822599646368798980337714938946193817539294061880766419462980327127603368280430834558605230837009196728816333313796479003946944509005180343882404512028530454546925922722793929422897015763290729720879615492942655551686941340637782295481717727382364795948792282138143214543843710582371461618931310792302272819368493072798306569736433082713775682389430489570580500736156205545382479232042949950651772811976385927733771904907090164152736428759164972307847878491432274049250759737941270839154358862989497098790477688972214638907139332246832027223290218988239319087311284265368557440003943552352292329519325727831924878369182045740169779152821165059517880780220341578281157053135924324682090339358291539996692762470363553737829324579270567472461966619161620055809962291988706875460627255814390303633922335478965964305471014352411115192699168624001641860944272599168196945513432664667881178998643539585053697973386761775610838587211433912411550772810803842938791099202719219462100714258684806044542861188157445872699883199801095006259099889524603602540008286533707509590146388497254632792177809851709710097983709849983122229772506819546236341595787845067802842264077386013718846130294954702501011396619713983588975368699351154169827297759349147624641613828989359634843802389886444694729219169849586191678396264906721408708676411953787768616911478002508064101102776546033491440016067761087242978882645905040321115550736527973674396183003996739400802448818187727457394170599929326998587999419843318493270609142150501492678406534920852216212246992020602602079444495058413293780583213511583612887820364096279222265345817613445105026115051000288643822451433797475850438615313069119659734974650488851719069560943482759512386362487878420805324330637189577409093508105829158571797522858495771464738050915082073700362013385775073374051750424920516239583905924668112661444798351509094123750277885701580730888597730202246984912195748526080647471469438832583641303004434228469338518334734770712974044769480887568658020639138062420632743570776484023742908597793357695191454434048218760895473410394024469411972775253409949656567980512847911351161916936553876172332293741397673924817022988027942848491508573761215185598372735526884649471988517626092082739243965494616328841004496297647013026400226899194309969731297461197354953714341780436080938852743247051134563374162338797460802975431259870487322803185191049519487657644941609924979402079041951645174352684458908833859238373044425212897827240712343087075100883439063238716101726827902275955933897207417411018308829405506301379849596623801663741481922189952377373010090321706196949784433760270398209972638540684382397644203300464610978190316734146964138140869107294419201256134578817287413915993024898662505749426574625846572781096568607853380539975810812781206623751220973382977673492944362633691718668138659960606563517246685045157578257019414451105227804594939730229285400266782957569279700813532810813484673632311607984625804865284646270396973617458448118122515290095687470605641561475100056401211989634010073960124047625825474431798394946984091284825264263111430627395103022645893342704738395828847963229959111214314562896052180114686402852220671747825795563434926637288489254364548191662445116835310218055249292622509994723835648504809481692973697484634942229475233798288748685127825197450445089182328251417231987065376668765170255103088967296306159628381487245326421301012012631768338453907720474323701632949502693577141034327463274562309549859009321195768177810375282503108937253130539620288455141063963279557057915147586191731406341943604391730258935230834050114166855067583481930787666096786420040629515425797939435067437653046284856551333983275845380928166046680002133267035426908833720552369403740020784431136464940058603084721244984019681546976345764728163962512909688440041332899376471944882636635352962658612513922799182400136274007010502264620832949886339542672169641951434459159813726610475244390358345587934254804352547189120433733274001215369463706630921729088957659515064094682372030598715035614117347352711146142308104256207454634114860716672993155357075606324387957612148119265197168000901903950942999899941331416686405027974103288251027921150810822319969029060272577636574497499513781164937367047398733597278165213878842596406270164236250701806274693714510057653455600548144876099874455371237428926404046021897932854039994745546858467218944308128526570658532727154171094125062013507625475215671955376953140795551123957421315534544855330759413058062985513437493342891932000351640375686787100458506188701144722983571804414232693113959060187452851290351546357246249439888852163094980358385536983859849361429643504602812794322923456950938917716190626215217336991263097162918378556724059389992734256437586501853107007889264548782518682735433619981867124875704146288386853513854844925078609715940626111948848851936375701849249290612301682567341560393727350045683518391693555756006832338552081750177611982877342751103712155339719837269363116533071216573601145687373184189331570628857049575999726192919183124636167310475607948859211312555061795415071052442675082310572938763165832583720863943504408290881789641435029862015136431208752449804894278461611785367638384250451723025575109468994255704124146905432611001499339127288127202485550486333814950032539026857657199079313066970022772064435275500440255064828798808916201270044737243280453005299071547580705935851629465437664912983839863397079410318699528756921770310557951452159357449890150590112409999968442530011927968290778686643820889289389282074853361432970844176625288221258222378846240161875031528337816288752118471821629912730732904190368117818405386441166924594109902672160944975738228967542076200391672291520744435193105107686849828622035057370057730015664999797278059265548200774034989549183960490398844394193228175785175699152309240490368545343245178786930675333588445319380246703454288657529274939981411840244688637785856414556545446609217579699825886625731361606156209993809991627098774559456628703046415625518993501196016276578938689022494987329013576395723145586506814972632121569291579528265597253712244925321106235931189650592092579874441124145292484617905665924112448780190933196607312962539300169786543815191317956517643209613781098005557529967914203728035226610637263849206763660093946781837069625512356753185115232287601568480202744644223396321921734864964147352642885828243561447321983614350881072286407042301507623391920083260523695677229050671873071914114001063855409621739421878730999553339181056346567156987589783605358546338187606502067343306967450983235739689644340239776344272511195484857452505117100511284959259499013067037834863644255716080643980552383963828586150462580497761588203394146972511924996009288125496923197603391461031874507660764833053547250645784428141330141671357183235806524543530754906008109184001030532573843695399160596178526399039259180118073903563566243764637500721926062061377449461654614782974757190293960182696926955490736580091905246659836675636364639551583571234564836800888369687981600438054846891986150805293014499338413552517168775155342023931225932812617211933192580630614988860021729009744869739465897291036412406996524599012856680102133927653244121223145435961141683786165113256965470897258832741679954138067923304192644448058615263227267496115320106808501075619862243825970697564062132938314949473428334149659463154159078885639905062627285173049607841984541106816426158372235298502976852544247980271500671705855818167833520846050837193302053510038885138135812668819822861881228095494476396342251812117334515863703747845785444405570799635102714623672337379009551966162404040163453030486125208314502202592723724655643982512567271784881749649464461848051413605681400010071110913519377903341554530074226008733993299851070678248589613440859050023872148167574385079679355527398182169154477965017902650138477930993775954074704392624734405932659671859245380173929274295103254414697168431633725264958510087650972542328279325832666315618109560683328585182267852275359308664688702282626449763496062736180252700138788430484760742280049022014192457271678379012119601470573561637230432505330541964088334101335900204148812115049983282401347278978078662051611252051537638798062355853273620387576740146663264430938236071447554350721863772757919497977482393205249651987301261970080432913349788469434280882863446863957892357335851966227036832379482662532659798453702635167971407368436236950543090817910742266440389842345596473345683883211284096705704797135729033507033490247263149046496096408621839371961494298772671599876306775056819452824696757330547364802425316082202859168296436237079757987436704668451464951514525585453484264625065237649355315133096325684530029996424247821364450326417865901119086719403424274885402972599474744224610776835802846279882249008302068196969895334482712121630546804791510987956661226085025215520284676669797888120388591131995852935085416576920228521216460008414201127645274514581378393093458225848097770657944521991133505947201929973532693055677977079362187840421451769569260571772462997998021972125210230975312506035507818911317356679087813324616790170437126979794755652991264869657959488190290488009904984315046056510678716119646274416628760494071456512104456353592440355972932923884842688112527471725228763779851778290269671029124050230389890831896497086187309345860131182558475999291645492920209441514842404815698133392640553724076731438929082968195279542030900634445823742687775613084153205105017263861268076555235124009812587329421947802262173935167431737705141907086837531585819105187508510423966209868843963123182887192045196362781058546927298796246562783434764005403011250333144351210239483817350244519475375588789808009353157123319300629113633195370696876984904105664627798824032920803132784555559429469590715153977187432457895037042636423227788951213890738087176218297284745195452017472257526964065618591439911102337888784515751101296700438686891093774684334458849084392904945264508481691354963833455628161808770721485063042467713432992526751003959541908048952811866865131961951789872449529974522089329401884709687467155056924488091742651817081503765659998738510191837846380662393241892701237412984441424249513629221508345679844394072867570319372722069635361607018517718675194990607323691204758373546936303965858945115081270675993887597468511870630316212035584969411279790856177259246783569286453474439665413252750899323688152719602347930333827598293632225359424571203555380883526953353374089076302894499355729009579628887472378990242744081289658121867991247635153334572027634008349417863641618152390323458353081980675261897092881180752676311915550299817954982112301425648675864156742905736800971501485583117695685841371271819012683683894061862717375950718619164707145135967256854396588741155596081553389441916336945979347379602956311977020829258895118608528973095731893413630217609612861218800397676020835135478804936962074562800443516886803160342048877696915426698554215942860475574917468634116075015791789822493573416456549668501350821138156513732358902915133581897055651485951669060625474881528219050293985108014109990719653040318418173020727059945110101683120161337149161333344276949332870530417908605919734024946254833434103308498537544222578584259775304559463487915931297965648825344871043621065976977496239424540113912050220436255256507710335347132624162309387229287472876699930185944303276013559556484843879013150241612710734178176919684061163679601585719244094806243922946047987572916844108170998843361970206417123281587198592072777220112288969723696298150644966066313653500802553333561012786602811875742082837892211285705945570367832950908920492836908687458658406140403927610688450188167203308622096219577982409322665248700927278254441368603903671167192306372080384972272787373881811590150276652706992598528172639411650233602412359077865295433951031674519511750264336138849283148603069323648225104894070025218358831224017583248717404228837943446941482031510162026243557501222218644453484835913839488660102597306705925131463594441725257215948113767168126329361174796394155828347313111445662672929404426937273147784354007533089574642236112002780567988511781295842100322705514650585634346684300804981594308894858292280877017543726861916818788237678004893242323484402468159551181733019445928229373987885580923274507705503525117742829206021973002474040826831724104555060173865622514471921972859232542009662603493643758622392897408953213144120633597650901395454865276113007248721716728266272248874960902051102633629758698525811086439919066062404121824027322510812538838712698915329992270619634552856025387532489550638823040366038838263328057151447973785007729397970673075066771408625896544286812285069005142929690970211690244859019867830933865305970685323401859658192253628799293829350064308072071366287460674642995552959214405958559781038414553290577943227196115118138632125869372170962980622090414436999013034407698380005782010458414145738762446352462546641966571293907739003439652451330466353694687420365726647974269539024168945879068638848293917182139199499489670311487107013069404890561410991226896206123873827345388065461054051439732857161958220854818523891223423711132327394166859742344721371806021892325568540838305716338674755539321994478777599044861282485710562827571388483414146036910871107712264389296617173206137287374440009249135865131043089192542014739692943429557073946212440142270196366689292059235796400498336963951268607927239322209641115935154380862679133653034058138860910017516243711391767742113275571321095330034221200112515802962953912446419842357099374065247460371415886150321195038713791297641271273884166772346821887976514555433125050638534144414762860140714142610946388795907948683579227614539698057195462189722505698171285234620413259279363993148163279244947321629019505837581642937682652807888896546286560886627549001078152768313149556701858575929659358377666927574290740475640270285297633688379319606760046405592624139808164401545471238303749797744162871240900535191333764873091825955020259551903757531467154569626618107453293823510574541365540910481651251964737597619730623504320893537184852959694577243603347564647290444425205856607636759994740244783061490007269365971756695825934202461071230426688025028712244264384722484419332221586178576966081751825671440925790276525535540891519446045274686022636056766617646953013107621539985788769259634107434882271978724334309974565760698592794793967021870885889542372087774148898692083839374700322863913544260480181805358113708504475440539272977721787425751181112473041316187586445966672153248637236745650939824772112456789949366809361839481058310771594698269224867352334290765760676981870330641251555667720477968052115176990308030475625987697353734368358701319512297499684062015769325552304763800333530538918006059700165214492247755751748976738639051401093503019668543862850754949284347295447656259025228898629735321367734507046985401634462691494613360988243867849925241950248777713899517763365215545662078861033274796849251777062696939949774785152743686870905712198471158066449145286588662116766459443984186382761617581621845837374526587051520266476899270225383707908879014011472072994987862703478126198060897136252169231759621825489554578756338016801384728794479947339305770750920130996583326133043379048388749644873177973116312212302817429541511609680954290693968569578948241444595104795311700766201492288589569594536343882711063592047610293500041997401393328372783973394070795252433894598938918548244549639450982609259679169737822919875939232732546141701475834027719884935743253997087676584759816533742220384752495465847004618022858792424052573317111587647615962522569920352364494064916302732772658293802418932690704351216805438417496770290662855303704456844429570418687837851161368444488592523491862273323509640755589776331173376451268113534751755323343083850193219949611849541359901112010737429622595333688473245264360734802948022912746998229971635007112577089683462125203446914579307383385614168881899767094083569353316553706795986582224175207332321846424309918523825960189134657456421712992889409841049362721996795556979974082866530802118708832067144927462672139469248603157897832309046812303718090953039375067964639733373217766538478028754312757015924340863551421204992578558832472635951139325379417976639009875842857316046193309681807523248059626174532596721140848778298999130415444157921857393299947221168036257430806194820689169381990877174387241093397807072324175831085144652556260558457308678751452851185623831687598522690487892738585881258218331692275852465106211216851577068866033828960264375311367959979672725580440969702932780054011176632562104499765768307292065315143422721745607964457922581268530533952913903423701066284480581385347340719998332256475392459751769994757629865699706517810203299036534258730773132606605680651610183880633108033243405375880708648562913684980661596127563830976997378707453514806209729984985415579217882663169477784864081120938664545753776659763430582415696137299946234336765822981750774992750456373031801948317263778074441577277461135019745827759317444295904611955773338542853018762944204014345306295720001825633171998445638309901392748235086143050847711138676340751844003324102766533344138222141022754111966409142083155072708902885735090027423781924835544817629345596238644022239366282296533917114789437870795911561782144722795200629307065735382740669148958519052110785283550687656643830510851535792238909491509101935028968980133841626311982623493761807538243561669124857542502570598877210079934251512728128112919986268172434001796620027867191065560952895501619427961979137153652347505784712242380389258154751395425293246082234288644272267803587484839365298437809093450954845030830237994925458761103130291004192315911560643646116408532342410864325396764570941647347872702569372243922896789739009861957130412096617425655856921176482824536357697223479407353705163649117347000102887897802187437450450138016410865500181827351901861657652255027146161888558730020957888715034976727182566673865752999226753766078099891800685049140189183704255121632034788109005484229916388573418027034937977360465434139381604809639264197122660402347151592633104359803166554180374696177416170373426777523679218255569467103887123762529475470784637840989664356770097256527217311914693939467045569396488576599032520509764426185309852545427312975006366307183383323222461968526023384794395484493990900538047992190389954772735397530190655757456916315458946485774069329426608386464225380051459612669650957350593131280763188910774850620283596032703916376978635929827346049831988705143728722773640540123318704669478905418555510594612697701684084701111787408667239175735980734714250984680262280374607702954520135410269124106254271164778493078836670109342339305084326700829261927222937963997295027323643923210938080631014660948067164002491949456011348524854133536989902385032992351008174164555971723286120659023221788632641630239739648946557696110625233175703473578530266416231694562238505945457755135002524769769726207356197871497668418134435078341295504588901815080903844601413203186221667457846067988960838090880773057349894761224175085671433953088999087437699951447571378106381428846081155841333526471840971722852766995016550907883256380011478398739074118931367187362568773722350296611445597151110921984874693117181963736126230125455308824394118511353005585280762530345406758855811390623040526950997979160779521570713647081714642783629834699526847521962940743209357496137683945080690695490386385728118332746076933674494491408251486975841148821883871041403584968728843494181629973221756681083580997296436592298083622082614044800390986347804518605388895263313619935194639043620001000026596554836666084215601498417968073296557785468258375689792240137960104345977097642643622019649737790550964487466235700263153257162340301240827272142811482338897202139192661682206785355327314237898712290509556115542729770435785142676580375353246561515456143986868706782824981327919632484406862934247788882506829097048741456651006371629815730754054509440238059285304074184515748242738581281900427177610441075244696146467388269628286566894409806629306701184156049452040064148869732180353354156135751259943441516989286603951513548811707608423022124983635855919706795180082294372528969426126755868330456084735920616786198240857540777099835719030860551049124489977729123611456493838853614249769584827678937608333426856347290828390031727164996298105402265392853733935670664908981216883872515965660123530093126581326933659718013124405553590039770388899787081843273584432377549910815375992383164548482436582792545980593015171887024629562841930363459488840304979055542267143662701303864198716923777064124784803774812268388615334215770206360091603643984916320021657125933214984463311245993920368628158273908832814587179703494512189771140884744968832841213367369995940896279815030692723186780345150067265564969039800301075529073745212120114869576189112809579887390874672515071620709875454951865480808555218918886002844562964146145327410050275150989210016736924309120472811625286128594560265609378074515490226577154169718632326022304455329846176608703146735392504613881417991804262106993890891625566522903257330563774040717291122262037491245501304889203223244881020135471158167240287158132748167941539536468845517341276664163687845097906424642818502064057469528934356261839984339492997435870425307701889615662735117697052538768934702531658852925341942582512843316904090936285731339107689169344017051545826013759313862239041844615257766391680806006484527279645417035815143207544461823309226757456852644423460734497673101562995589346350937386349953532323128115395314041204793282855017976748497439485720259740730325106783720116949308981737061561109638619127238716581359227808630449867301661171749692932428109661717415255542287734024136427181223511692025860627310652430779106111761163245318160396402130277260009448350254233142541460932815416386868871182688014117241137582200057934248592861865830479446097128494621481378928128354132127352104311675802220763036700625658435886303257546374788949138208507993770269674950976856460768239834508207174061717000713939134780218777697813107958106759058525637176523754409172110450951429818462682360997394434828559482925880555621062078905568304634824529094744125175487186568615039564295969974585402641121918596210742472330487460959099277285565082969942731270761365954216722439289920250961556101445123750193296298385330568631101692019295876904767114678430240433715422932171901961977236257220638132283475601013815753374971132706176910151630884643472876290327452522442420592973466987305726197126092662660726383817114375629222269024646553985066455458215492722289356406605593564615992448382855693163439724818440107605898737360377661626586671110804640402169934796046737157453571142076258862856175637685267689175968957128187780702512285661526871828236316490930858805368962101597102498246077171814940030777899837965941084978021294794203297500377439464115205717347188817885109566094037329847563370581507042759115327103999087788686362625386795192481177563460643266207735584970986288716020214733178241436905135581253633097193051284553299489207557979438626740516655685451071461703157402817694066587494331797787650463514178267311179219371756174544078334678768660077363912541964329971773249798434934849222064883199062014573192231981270950262508940795251454229442166591133377287666682611328691838134289862080432439016372721609330314634682829507998457832216398092667523706045146010049828169533828548969440435757708068543086709955831247535908914844818556125521584063508886055203088466320019505039348766758522183038172537910177859603595738700363936261302764317136812100878550915984071029065747585139631496150292908680783859692385261063748874731254905123815634148131860843879388825745112972347417388692409644111028632080845413474460930727693413313313909628306381292437305499179144623692496506318494038198270430357584720214443441909540867132395828335823559373616995155184962536537454092747321663442183215217334488567964855950301245479813185852435821224080631832360607307485219570385216325373075672996558395164707021032486849650425776764412321158978480589099948924386905255852268697404966761878141557505129718936922746731618553007429837806131479106114790115530257186520424239708836254256886339258234021413828593487574668061307132141021109961638198816043425094678558625873388427078895406039814846847820874940235416169794214451708146084668985445836500552863362119005616445008871256273877851074645501327179890918131564221884357111950607986106516002716500493359811180017664717798968244586773880493556961845416550508107642664131991835888959529696086121434042024536733811158961037335314340092836873419476599069722438865955904821952993040328386822890438944398695510022791101677012154547385615069965759892106854040012589302977300957497350359111360384534373491053338445197746930904603582844518670000659490868888326098181402954554032210884302041259088858862352269721494270311332541267949016102603033324741166602180486553013274868692178150804419378614734047351737975965387863578296420358253855360828440936137553707541165296512041636826797708763595745142799649773031391031360810066398083885654721309756582392775447045346944062913324885427284411063435298087203266509339619790382917635018317683407199018170527323111212490007449344344112489494047507782977184100442166199446914606716457487651340884575839420819893545203798915418610305866075331593050979359077796568253691720025309952702968571842547488606452804467938714010307850460059946926122782053883720095323608264688095537072680698051216804464745309467937629782155058697353051192608862815232123565568253692102005667082018209723667261403900261967000122150623324868157171889475920944320020706632254421216535487533136724078164925240138943463846619986900045176477923183260292865214868715317068733273594002235572864490364624183293908573381145870929760038938966558353270174373704213123446382779426308514530073563471119697180530958687470254645179452830457408998496973208262189786821437982016296891006403076547047777705014214846136336555728711012205321480755643029850052636937551278145018021489165628741261179505607067008278928798505048422036719524054870924205215832906485822702871720894415698370641846143892411066223621343355252978625831740094724635979492659162546894377960891534015134128744290840941930960726909071615292461747459700215859777622483835742153389819155005056111901976001857920811221441259097810619944408419995294220390466823414066181819701192467944473901352105405734857599155589423423159234421854244890565770635585803227109715311626854026002738760799438083008489502142059204794150293329695401786635795658149068062707945425194928466655805577131837962098651646320757332643615233464875484575104344223643797601726971225393196535954696005554141705063636545609405690481752282436729623511929305464206866963559467468143037808058317219870537388765036954544638773569111108384091115473468886577914496544601250647323928960593852045127368665071268993147262201252457275424692581169527398207937022599128154023753125642038911698722601910535195750338821264632520997035418531985425137947430692903865196751920939155087895242748837312116396725041941818947595651199674242304559733246268238678416275853751378103325768038898087041929443457505215161995351103202277902139808992054919181215324513376395589188909793056013353834412293839080449297307860157869456807342597727719538543211415351013578873884885470216338629700676943951242261308089490451847448369461415653954639121558153981853957740850416479270486003887346257938022940866031468957498767483461780617378507593539310661056528229588783215869323672519356885625152775146062262840633032687505398138804227312856417823219286048259696134412882123198878171239776251516556683651806966775125768767499395053492918762225799659309298683539314383895919552563939490457108547770755961484305531977763663969770215441147070608628986698786188462986789560798393325929039786467022888375184171311908666649359832924601191176113577209827591849891660850937661603711804200627088160950239844075013642974128173719350654896735672143331064806069819192803269074493167738614392433128403973415962817055078712201104152279607257910358245732949912499793583456097124571756596057358439890920700375594381317530905673354980003165051101027531971378756172340699572443990920497606587967168990121469489260856203023999156896239558963222047440091971544559519496338232728838078903611234453673280587917738620864858376257693514478892293207975786399166936265407912249906557879741763165279987634123392524710217881522698345534930324850828933290436162855755124743100981063243844266039088345922855229790525446106296801629617238244767206591806160501900954648225811004116543264242478482311906794815907476789570371271359775115162368768270962262195931139088990106351737745748733740822855633581271739032710329697117352286864432580393096453629791069661809887591346692551498446372442726587972411728546167458945466536680636851883870011026608492294516568590404039837201292887556635632572074612118587980576585869295027772928583702855287969379182161031882960421732395099703832265066272145189149896889711899269430445677061553632983467401425254414263640475605727686079979312475640663812029429270452720553188241079744629843724167308110430348550061460783642573930929760649092963359400812772252185290787654830590809228330254014980145615622176866767062143942810744439590389945485144804372668178688582547539002210700627465612744219166613828293194548387521345076149295416645500228992386049985305205796079475721223485185509559817726701474720586785331726169463048315099407441950446330998567508233257833048130258848436717043283659318963139698336212746225918986301181562915898429559469611883818448279096671776110478734434475614511725450344290368476869786504314866982965255999427313346197077438270045148988717115424239324694952237307285794104093774262759381156400418139664582407252791652404684710845941151928031227917645435977978601309447745094379905497461290618215175331822987806763273514942459562579598248355494254971327113633819097012573748354611101789775509233368320663741191278308405210073374737233737778761139726998259256595937131695260176388051891513324647114288315260739751077234809496844437732939981658635166863318793512882974220068046623372984095569784158662613666639138763770987139046252499346996636445190548505319798510077838156192547171417922689824032303643511350929742861929184818392307326094603348188008478476082957349210382741997083547902156800131571480723706641943015045370311309004694511359323672338478157631217783671391988279510921401867804485987001245193473445066728607995171836815987860631708183590298059368067989928656842896581022510417248364803454403133491604473767600224307812153492526075672493468830287764235272551150645190834815997625396702496239840561036212841376222217293360828920443529485183933940556477556390191997160927291013285568327271361720146697248915665532024004805307666357846196429366453112326741125513161603792401535200579898235587514011059055494743613083992714456549055451078369489044371377308299644225013273101243828877344881767606446953505287116209569901107560756653238482069662453252719261206719674934363963778022888227928568992310504923854595351403230391044093823483857966964460969526295959046019653318916850266824234850870746178918598682487784022506263569412498524328192722325667986552410770988111650823590671377344180191745205885667534443404915523357613305937270264510193334590658583456103552516925219355386756621885301817759395292053140388880332255740511059629475111771025925035388455381081244095660628859537603155840933075126342461018221741658460427662101956833844343643115552592308021973038395509948950243086630386934060058611496855805036318380439496302555760126840442698850540700489209269801758672422599944572495936038953064186428301374452945247893872134947969197696088697655055445396950178062417130912261884789900669071320115085977563763818386098650870069753765646213335309835149580526212869006088627001602143206324302980625231478017485002478923373015248237073110408347334307966369450809026979375274780064246595425654010306501480558881817116409943105000090630451827052289189358895760337860154098567660819584115926121698097096558550803926263175552042133493551042789862275725297284009824536123090031903736054843703730361495598668418789256210374820348265783368960959489034934241039279446752971701209243363786638104922803717613552974869103785366149011520627955019582092375338326117752220462255588063045048725819139681549422206910253434356692125249792301941390047211835368814136960981440461503035722651263445283396440496642079457585611485281670057046858557929274140750818548594565254956621736427130873627792301280931937253005223168194370627076263699222234387369963688605391422522376068591574751102483402101229079455781280815120517576615781466184480488860955268721881278011478150674036517148762172900931648978887149999889097891210842300831899722241550713024174403378026946340108960323061806719724287751410537593011606878158510834215951421641403000493799403548937400626233615340144175659280207429197368266899506269519739224388670999722197325909439396969390718979543826577738787369297017781406618946117710875185436933640948195359915090679836970547752170543040705292484151853934324072387944121923804948061697030449590800715151349941143482252954288618076259357803005224545613236422934639072272597953700755221319172101519690480154566942678769209439609528737501777643672129486851634502660411500646904712326117302414115852429768042472609225716954330040183135595427424957291153159315828603362166312679905554598927885995173989739188870944801545499947778725641541884319028187022039358957236078572694305225397009924625809208084577043448869294212974698586003814863618286780526245153587622905626947352828406714647892497762070781999140255258498913457704170462446215834173954195571094628746518375650746418504473238916684552049346485809490990674276651545471530200471909785706515326292904640166095020065512539618834003802459350468111197886092956495324210020911246664893302152082692697118658906967510249232870901801337505824220768232063366072040910374348773208489125311955762959612177940680643269032168077818833276832924134377696046573841646921272238093740000148683427559867024357018779485368566578764652935246164098571196541537016019392338025548058744937155945362729201384014534705464109398117407197112107237781311458310889915128930014290070061663506258799134365292412242361193218801988780118510579320416519025458053211583484576344026795001473655503728393305024290281835206083984037510891530785647527625976946982139890975614835374047459300631631837951374208811687548260092170429130055336492077743161610952446429490470279837357700574795697129224991651879989008206399998090376375676787202663905013671283000646044504797175004361232008759681328709400633603194151770954663511056946914333104435239574008666070148156670156808191563857226866196324091652667489534988514842532247497392326358414887581835379465391213958378578026170638187112189269272751979625212142826480557044216092771785738808927772093132631938891202453089705403077820488226657539687598932030868781730262729058440367311155938349729856389711171177271642371552989084003437106830855566038363545413385740934327973264340210289686186329848591583836711921173976102333324012598641884876736655767622697651136348608149277564372791394788856014857441923439219920966692519192604303733159294387468723843252917459694885284530251810888797790825328176417442090520960651499332837066356549621531021487801696327223183410158589309219428574337133113468581361140975796699937317698888172766676219745700562092973758145198005123106302893450329082740578913201368800383318002572309068970434406052964159295640194836027686392894188688355545562038900782019916323398573661663948063613327512752395546384927615805979506747720953595750313454817156948851769998120014164952345529735966760852427339404035579481004241762754614695935024581141071613250918492082123124497137714450279537140982723072069994301024337226085481342153005522899514480090914455756790906997004155957589072055873648119647835375250015373275740171257155478799812242037670389107196928269874386079084290405574317018735856580982818597933612157679197028007362922774300143350240851955534926907219930836345527364290749381691115453245979832486658713649736488942562483512437464351541759857002140269881286540239381409311169511944684993206567843153054801349148856672908105620010176541573005635495947356362794520270556608635896947713158545975826054022352571509401790545515289663632950937349529017454182217267192891751835195213932388502543501917747314818131887744404108139258111098839351248592025509170792599596243346784548803270326439811401515608819541063607386757811198036667445439832185937470722007248330794932739732111098029937255220109536992973011393349617373198422497663766720967383234816843561231656848244679302494779570929168746085387228694071772226352821061065196919425041078203521373220123285026168625843553461867312582555546402310970705583878382889338310792181157620990818653983539090774105264082671078765683141662125115075754491243516555886515568513713581840737649989201136716725548929737437798177970020737008731236478557734209341607931396649988758962744174059010650405016312099423803617102265020741685364577180643765912425594275494129272387654501667533893832112184535830221620249428571321746151822329465327049653508859545588209266625746605503704738448073711695765182981651967111499571784988632443351931518848619151460473929795408609185914619642759567837177744637735277341140878714891202543378394223083024646739755086265965346550306926733060337049689976928104473661717354897261287449614604017774422344672881066043059388394574329483413140013249014656067055717705498351526539333988176979046131878787302047142581681603639458580086889531795062525261726244985151650997988671061826692169235201358398471697564432687053149245499158166439821056229998716635582893127900691283978459192977928585016631612653597682010351697524233911440560151526943328163083220895585277847128826724179331275185270673111906283102853153185203201370466667072587441361846331527821174944694782480538062140108789814124502472740158347571869935311127753164611702116715390659876163035340152130209632997244150476236726951150862798655645543477496026888104304441482781736283867292363401397291350365986246635514673407587873988917609668717313332866994926698817830930743845975541319051134607207515094736724544359287220718141211603263977316564939452679970587446044169762949688738515517007507995458756141471214074515782672027663831242858416890950314148997581767752993466993185349176962418242267018842270073568791650802929057839095618959614743193988182051762407184449249795939768028038345331109451732350774649707009618818916463456197059757969600411985424141024136767629902787799792482529422968683850459205740742388325017841868463682593301563164629045497272704920676760693272878677558118160788946052594180677680528211803087853090605753828081690683524813603821511632133391375862083874060449486414997741703204433933509115215766849686573238466318482415472071354006480768565293334569514536242245842883232654993241061114985681734569303336987518505376747085112411288933399773379670436080015931829488782857454830522974655723553676472916766190675436968310405716412222359959602680883743722628361560522124303675535893155794229255935445474792403769055324313719385038249743885035121430142337307146998182978289823183323746088415111614074537516007599165659431284925038229744063285591887586680250231542791682084609909865559541301817471961274180881710406930962344922936367391491847027961862869749576388796659077202708564052873480968007476479500317191833651529809908400069148782682857126248645758225735846265908296280641528483781793677979439659411557972319166140595708368860788489727944641966292496870080096439543174140436437401144653055202892536549350092815639520872166305173152228108937846910270402739538614039640883918442817376104292731817786138574999885324153254486370523571506722703296632024151502756158719866588832676895793168760113742049818489184240836524644550192660073825237324000787153960039172171068169731582159720803569517482119690458325307465579939058623774761885080013724432005956386048221768632391635078507116304056780967045847061474282604299148221151854252892026221551301375579678981930076842279542646339682557629281448656730741652004388521288797987427277587363947871643219078674913630758606722807589862021720325519337310245446607196407087011281744894258277512260706256083707789651162325467874671789291530466580547773394466477217468869775265160461276223031124916936437010997022750421029152194757864278159536054649058884046377507713163764327953217265238853602095541885029270805832913558113151905540365804307671493669664362262659254357419149065437133137373497054481193713645520518865817890795558814129252699564872494438386697468275047929953784538181478231252977905363569926433341333794152342497843942880190049115597839983175541140759602602439756365243278512613119512980685620470181556357470508620548107696938837015903573438307639872230367591089128023186398235294310764970194292197885417026963943286663122167407783625218391477843780609062925263211919046185973674274458422528955955579155066539652026673387290462531759953022152536930993663117670235771147768290422215229564005468051535223964956086162457902691109111368948897367771848882938679185250481240283520751883989328529499089987502986640437482547008471954917938663194946582057251263334949228254464798523267306940760424740906860473306986050381569589754039392806794763524999635174611767755819215175617453819545230053933210904101182355643067009426933946110990083655720554208258278039228853867030743386552230908863605848138102364709632960810693785982014983127187189457063720916318281584613561840470931539371988086087561225635607454566709840782091146168162449091964088169925549781253281176893090449448079721249299439249771611056274521855323881938040976696618057898394139880618892813902856989728538320445876802813667512569872543652737320949164560195274465246600516806882291836989749327808548902975329995344673645629766011974992716358005036354243064768894859282337482019201973356189692202833673600723816357853361792685956371303565543988429698126848473992620566179891705320439403959771519045702746537994745241865179491916730721490007181075057902963007018945189477190073449196237140015963797210109929675020957838891560432830047292817989602573649341573817826602829867015765773938021870042961621538753154883238738704208552009685322308485453668164899210012155510209130120338059547196635757171074055612506953580703465418622189106937263421948118835696501619247245629488434182916078508314377480881665939083542306003801693341659668380602645008073223103199483908149684823072692494540386468283032989016107458324693838184621817789546429966712790973111793793477546699927255813163568701411097664444772346337684219710606813375657468472786446215318525836217384889222262469425874449743525040121966412581020246422961066242770230638059323960911674918839967445595304937838240923182586143269489562316579909747725492040064020533651748804329415345514212004882158593514593743967428336475192676496036876902935586946651740168910419389666194176012200654550703372697490060863581811403219103656798798299422996311924355264257278643755260794944393097397314639377212764674815627812375054251113905645017255127695707915478184876759656592189587815801617228897485561513461977216576218565265161691539974617422268799738087843981350214309849716110387085920071294346644434178342538035091998803145627992575451199406810032637749122855555541392009486061544678192886825181498794636024973991219329368096439212420117289324572422114964460705098854017849409492093990833816232511600647120213258286918436879027124190768665539830831300863163342880751252660670319030194399362442308520929609078779602059433184890886735075950664379633624749656693903866213187112082025029534952572739297176822157775219976434332606991415103412366905669263312919297990347895410803774193090341610795757117968758813250391786122646256503737952855145326476534195782924509460820489519490438839118585077332146253186552805282407199751178352293128008259658917069634889329894258394756407216866659731985990974449725042034421821540029503582627669247481645687991799158009183069035165737416524064319408524234172136245708140956832568432929709993023772408857081668680985101575945504882332991310802045984589814271619635711192332205342135314238364462089647778314548921463976111696309970287687941004004795685166295483388804289380942034381022727507346565446578542772560550021712193207206620340453933925655975388414004416036033698819966230464503808060002900523035196968193476118543128640840550174389421598502071292776075161399272771841846242446390723500651374269182136683795815122613820466395258902211389559999273069333555599022784021832902736954158720121900260971570158987296971230900983585956621791647081924730724692036303552549433873898169562446004085611950806835281415483479028108406087766507801322780732891423460782757550925185410543452680091477003731922882106395060301271513373223925462394279082904459005982392867473424559311616400113657774762580209505336644932216511851591091709855692293140401150732178767900880054312159713837392205884709677894168692982495586778130525166510240923580313020380418767343187781080798367355621882192775337878305072958533807829844396663391085487748724287742099042557610370368097611778248307256199112083980714325244428647053055369332082153375410459179496728774448538414203574702528549004303939169706366050253561942344050118513679878882573750451996262160974916953874932190387444495756904324653337768582485862881331028379449428568243464057928820114243551059754623001812030878053923304085742524392265403013377282622281921371405110314175989008246856478554691379812015134007488058659822491774354999367865640176339013550527162272267220072830633741062153252759910522796607286287508660665575167316601559485775604614086563069252361495697116624757688712827900884333343401236385808532701164677249443622530664385017276624152264217203029991746684012758579154076460218863159929493270452941753363181797378326071157738993312043231553750672079330238330922545041714721122172235067406554512155850459818596413957287297129566101386286427018866905031705462727097374999897740181353395113170016756542462685170655074396064042285327858673033537439879419191126251854303258203840365462616731435443698805045643260225033964882003940152162370687737608480513703978957848744959494633154029320332976838952945723309740297382445343544506891306294084539668001872400539383561573394938511831980268210681909697860955761766637884001506595229536738211812415129053647739778567539448855271413509322819550654003158810880274012367625095576631886886345854973422398236249503041547062212321234667216433477824593576638024099773689992044070654404069344788451461798412854764428616121547746941133519190723834049118619967052179434039696921215230444437645793653488998025786516626851629815329348997912053146860778021944996539987001012888125881719722253549817889827036635718149492016283741365447069780942058961413646034316507882659968656833423304216075798881709207791438768224007103453144253012028589156507367612988990657004564483695793393841648659989879676874278141126005106170945447941040774087220994573079880429243826460724395262931597875939218942281395549070899676687374086430340700074794898893395070606860678764213733525614522661728782921852864551382851144744863884372820307226687662988234106700070260534216673984945326035173819044790145466260933208459138131583334462453603658072491190243570928311570746619012969960789260651074224694851085130849618602037809377820625851714539085330666918504280230146652669236357534347317734798994443526785675559944734635265055401989301346868607143473891434006859991984909026158796468383667404315211690184556698069565057112163320079411299214196077019972303706228105060109950104581635536106779057672330478969440980292714785901530929175754710538545228992818042916874831800054107859832534398070731834561903414218075065265725523603039489293039100309372569466848955049587430288442339052778360840139507331238070481174838170677030823030536593664822951813105752420506783389195245922212310507986722469472204841779525458926789974673404075224640912183934068898822643994632504905118026826571546414308794218608673888764834176216046610383509741634389268049771758338499573085003916176034945961220003436454977270525608891085102311973907832332772695328886563199506965402724170815701631390181943646057940443877263408809276630290348891782563105446793289610433901430423878593041371903092713953907918897324272989408600633087509928530300460330071843155010879316242880603462086523367766852062888972924490207557555707980268451401276062546790583511416331867952579463284776740204831701479735034294427448367547910157265252817759250929801656902468981930234537932614637035714270664043649742030331065187125834123609746128602181498654451194372425820498604911346775610786098090601945045546705146321821529935645153133467667876155235222031699976933653880454612865807399621995686499531428527233202124640704723974701808805410472176608708365587182750701578367607090541506168037825235607058882400627313579691162007665629212429255332267714668205638691797719859560258276139770042689212696675491487667336502783592327152572902049780984237188793629739402743702929200047017465911309374800256178666672636924713001481850625378777072787356973123622372349959891570766481237902663490838651805727870977302755488194425718435507107248111162179298016682002759288903091418078339127514280562223259303563224324867524762141975378808744426614987308561993841720126258112388144761261281975979412315301992314139056381896938941382568689550458145424775355647183847629231911516428950002983032175566793344357019715218487810216590780365012312394695329707586186782104555593445511443030824903371656435512760344949194926867820840860698055630352304208923891079868363115618291798262762703336723508196919932957911533275812371858809862437120445197843197339083286380418194430727539145973398852431331105646136993038515435925460104745242566716969152978097802544162640407505188542247638740358534040201753754226929807289584532250349341519635953187241143865791014124868498417956465222095091195075636141186101612359978293489508145076465245925141733352956659794123005599045824042983934641709843398187934887140086670503482406898988881546338812001384624381968643711245739981976182501837186237138358723628420239482855605792194090064851387109016831732759065197114417746814793467355555480627370513917502529647793805956724107821613929337398044458785708488910725730316019527012934549752659433717642008129286602506581679992720555866850618009489792533578158600064167988219725311326316064038026156870549905628838963203256099238904637296067336163578427279526344269430848208717431898924506132178286160271059118942628034231934962544756535331939650986808059714330427079889148003662889306324203886592401751184076256957298683967984060425399538324157307312140432257310680398880046796418634995221324582705381793142433059490883257650455986618065555382200448406254273810790855463834154688209310197767272923435888680696872737714611400992619822112147050374944577066351923997920396286669646475330900243908988595229999495729225109786441377384538535754533309959215375177332873997096227447794486455648671365235941458936758105396845228490301927835912288016109143606603492395792056209299916634682970349459691337466142015613703960432563917242522069537085742788622411694914609292779793453014325468116309136821689727854505905803564386769238900140191288331850168972802775407524797822820961498551214059429424394283443596927848556055047649018965978225813738201062303824146976874308502062608124664629032043397934345883593644627905306552008503071586113420266366035080263231319380601177475747321083156207948072891654113559527315995782453298058120806126881669987461354366201362718525855591984686587277189772776628486098110783285328847727921633991786533659361877589608181603474253802637209302869334689975045413373860610268112168404568764784952960174914943444607286520786862392555612606911909796192679847490267501219791253403520421365757736785072390336496497102543462161304712342368059015856489059090634349448208319166754771276554374969272731793640004603884328604906950101259495370710993147401758919606311545953271873433843528435333646572130675860319119992346564521272498251690822706303907391243435052711248715549101759596374094395595749307136928327935282753086017627302062045036769116990370541105945376820088230449083288019322675150749971474413974469292696562795056164206974399627666835361915550500865600370371753323103582295392814346126440335942676543994667697659078119137540829667525866374900630274446534778881788730195832718575308666202567133637056908100254240142461663996032607095688334001847972417511321911939785771902435007569575765213270734579169606584705228993202435040013096582874158473618691463463825277497384919342621157017592809437131877240737354153848146022609960239645126984302791924522391870111555922258243059996724323773774178449593448561936079600527316864878361962257974943740495188929683280520556233605681366244340432708382380114799022536464413271791224085403093579577823067958794854091372301618432804346996069760121810429963648688104763986936955178915914134704622698872688036398662536012144627962562110445511773187879384414311231418209485290346788769447046353341173219947998970730711276347790773950203389924891098054792145459010195253692908900198527649417710565643314497190328764884871809987866790649594581340169160669617704500618167060076280825282961726210632799174087644976605569801578649487055813110236727225313444801737126388007547534289784886211638645980528318165674122433136264161618110860613877524896228073762860708966634781835446538972202683564652825906739730406177942586495646237639775127969558025483277941039018783014114565344231516364332686736650144277848138308324937456225694327211488930520645879163408855895026595874814638930463232012353461250372547285132085967902462945118409811931013441068597735098657279711058110705018066288942267127215215179722605671133779343529273585394386734398963620981807744165628313042911860904352947317431335248305338920921122496258223815844500322219166983768487271505121425232989898386808892294975864830954338954469984336866869677615580990366013681665711903018000289714180219056625977608362974659446550582513014349486440484052975798285975468906116326128000790350857155018833027192956951965724008505395918847325108201017642601208483512567186408385372479222401496113699054589076710451292535890168894876477171891092180011240726956368354012667590282445155973059689237215231372885017137961135956854159958544347195590574520577717679304567798729866202066879547977758090956852621574411226903925078643987352280427731216720165189498429180772511361491884284340882071320005859467737411053403293371966432041463015209884249024901517451063243975101629680933605441281730910513102714681632137080354743158469006341514490441382583030471106818540090831370988852846740509454536000230447812368480681277963724059287456662464777620472099404521004306982173596046416021431241243401430508279737672720544708059721273661429623284232677172133688091114077556034059628685787620582892452824852270397747247162147718778610974653269853794226789483292185213953926190939415947939655055803446384471700344271135392452982619149329242644209885560997411852633846537626131138973786951493751535172860571156142729474909322431153644914316766973141394552574665760920264107588865298227159521774260911683976625247253262787221763893608483680849964966247129879590356606387076531539153163275565633386762362659267602018034880728837529427083163010116603222084430152539784361307125166776712533251622920683629000541735286404029345566147162009649581284201634877421015084803057587557509822504716401747289586661405110823246054130282575049467766779228724517872109601190382413845169391669072597864013907401286052533431734146818475552233733875546352603273193188312067454481814530449346804678576158070365882421006818078144787944463613054347645605131234463941794627238534502430581572178956618460690642355654216674190847173663987127352582850698286120554588425850233807101047112470983877692783169765392926589416818910322996373759761682074509940235528126266892285105206863792865108540098081938035127066298095751352544219700855478205652271324821276873123560801581372825851159163253328364657420742076846486980272613136459703504289946356189094227207708536008680045865668137278467808070424520102277201101142665750568321588773811505842369083853705153205996354392459101879697636427363974794123011073309192533940959872716674012822284397278217316970525978561471760568071839774766888230489219773441878385099940795181956287149001087048457089826051367093842799523246529798477927347042795211918104704924567287861220848934155691200953984682633927356263994445960986878711751699858989618117742505588977637237592735294397566610638216232053814549280771713955420212552633982132616865585950162826894147069057391862382145984491332820605643266149351509985486840001702009931892652510800053552771286229559363268022453158495600429850629363583466578582108997312087693467247743844478402187587540246322101820958934135954563591736028871327625218333494826813414281535758020558951996379988784276354336512919987104837219355145231364034324005823724993762918055299153772600701938774805527010313872459556496961521340103925937785484583213078541767237728493066250311284605141702090538755564776363728030743104523411413529337160555093696483063335397886431498329154521502226572043635971346770637279699298701112504924268438937279380100538606651077629082273412631822382989080309926278610370119423069313296426349490167224281865601358527310544783123901705440904492713705253690816561086948943316438592455943043440552383159838117206791618651826229256125199009615752660518182754676302507086675604424133293476519533231583143982524574199604473760057810297601201461569626472280399276125938801321918809128284542594396603321818768063178538395723701377413426400807904216854563886377161456829872134495718420228365224087235022119711584570990583905064992440805646195670015598053743006774815896534082294506665610699585660209064885188708204868922129627112836756396628829304847756991532788089626341495197465628125803101164780237511173186262816577778689205622963697453443116167573470168297378599236539570946031070814705247028509044103321765226260629382720479437826372736674845594131027325496760224027683794299519812269381896864528139838533876430639133129469622063218294905810250047266072296658149874445520868639321977313345206323993023691407211742462547279484730058568290099708653499579120480754461303743543065512144106833774043934789963942788880201576959814620118937356826168758612915994231008676175827788863110633753351831900438033871554309780372274244682291178284700137098562727512952423724905938419022804114425761134441660720103633986531722450446360975392779327677127209270118301568061624350053642188188979036780972536099586827663118528056523931884434572799326592022209305127177629054106028826294469503569784814043421659908264663213557186858675138104308073004697734287791732014434977101078403049965836456802255326935597737490089268687235921169806804318781761139746243533414436719226888047633747635012380967138055005897878086497060572486935862973820341209831590791813228961309477059401677758233814455903196711020924614857403025985901406713116942731739492775608731805633816247675686469540344766809510666142523378861974059947925459301681918924532945838098125700606017237975520786906612064246352768008706454749961921650154358746212565252024883365835643068291454230689295736127095100742042085755843997370209100996939036933275533500375690006883350339811632740245836459281158635071096710117197239960378128422533377071595916208616674351486832038959098307330910228385760083693999219698670685643117019201070765431979832570564848720077031190622545744012837661181043761334294620475277168519298789469037786846050913121706945226012912064588579581817859696410000849340759113873868523957580579228819255979263136585287494468051996021371391386321269073516585587431908625633643944171041283318106444628515795528845195846032074974876414334878046401430723189066847517837070509677886589156618069060793001376553900303084779132975019850054296322357442794415220463911349814703071071755885335290388767613743061494424568391524936955610027554479902892921256437680862019473499802031124217628220186129263213817262066034227346201803756523780268267729132048403699871529375710896372625266855058261616283104144183026736739647356623751797476062707785247590863441079444996584175826701967478249692847052481064368178542909216087235174820571780790679816081960920184244349484969739465918502968588500621479372213854769107831224899381658368705731805339328371098219077360355133205371138078312425327023650052176859507501475951782207512818879777392992875538739002400073912999580377322629607837800141839181570311715055538698475795525531192318933268396824794694360099842794558637078703141784064955603719642107665432327792139018898965680649251861817232276585690608333413935188255678130992390205798989980897055800239683391456171391494217972027120209323746226486137776962767914521960322170944939494395635104619335779709590090754712918184440842150001441543219327731323797152061851232741023505858617886975217931198450502204995648474497960735405765526375127625494531280456986653069887851435960380525814868315506752449622670461944951777355004800025610337053271721399250514330630787545676501814882837643687100970504480812400925859106895360223224234375214109723383382476320090588863806488744105872216558807473216209406512462915149193357219589126557106660603364126254862711127672422186101180661169230065909351344378008792769526179606168087505622669091483250384995658730784469663257552843370320007592672443790494397086852226119359859561853626406353186727674689384421428625192656227475616764282257224238193743835154805206938118912763084622795456928083071484336955958042882401210979127338506821947264868846810618762809971946420901173523952705419745998679007499592233512518582135380945043102270555937889052466178103627569227015739794859502784295836456840776659235830633143854393872512828454144798070311316647053104096999720076448106376228886520406028748579361939855941362968833662941448596087978068908082360103154963913234279634871000916381724080005195384461330437364752106750910653619274659044661671412427837950255274508263675074524280088874933366290457858533900142554549590023042454716347042812112943258064392204128393598395236210668066318498878245930908871805860638453963971875617532280440968738148702495724018864722726221865773228535313491463535713228532665965638535027370470487370687306138031692074988719125176319043682611754982158400440925145437532110545580135215081550455248968470550836820746747763723506407468510980166814424450252329099049543634046634964306720496903725794168499848656359630266935938466289945093020288560159984382050235060196794320713223263069898287215007960034005716596309367006029302172253716383101790152800000371406120417240840306146650820670233776302055674126372363802192712051507645150395957064478432944431012540162069511982643995057295066129150481196293145110477551218184420524877246898362871385662302129112514865741455505843323118700104385306578203292160840786689792762181784865108639214809497025340209186850999468821775174720082363143092167168946994999905327229327126969595870759673081269009883661976835356484895582490685614863183328395287085151881777180139363292008120681820559916764699227336265685962075986564176182685456231849082103213471141532967766584227260855131307885987631388232201157311628575269359167862690104458827946021151196986409911861670391317045141748853663932030394500439981503795524430621419157874171500941216509412129253089789135325238444217339508979064099939045075655514555525572553119761430741209625434008596955971099270046354526869240615171883240334797416363590389319476506447684116235974818154199815573622122356453439762448326904969183938777748584240536562290834488951693134574214069261653681665780181072140225617336703940211731863278510672313224535126776795306716725918722651764662756114987059126780328827859094614406900637883671893032473783007705086508798969665301989404547656987274229740190059879992376168714686518553409203775157146850805859579675768512595771443054807571076868732646725536371413684440421402583148768573194322240469625747663577968433330011994067826335600830390808923418069875880414245354387836279148636772814492229396733449467904840296936650523671912545841817913492773746460350648421236792631876134395185009749069450855430946515673555083088653619185864792305536837800462651269437858582438025754647518594633159933569313261370160409340489367067382030009001580713432220052069697341569932933634841370966333097727827676520035797216150108340979512978405174634817959317212232675107084418091352313920344915957846121863499846199538756285144017076424247222429685558163450360405724102698194553796728388809269554104341503645669548392216435967687006152067078896944900907997052315949188366305026924860462168144334424318074444685688235132551897307172017804322227100257165964437699746944510637732646449477259292938191670590293784856598832399154222412166843105742493032221308061155025335590943381794655620306126663169309883552958863708570499471404664317531588130748628345646373734733624594704548235709597141276692337834723415504908249881524375198445518230352758148903404293210313909551910424074281385758646466184187309839930772017270857092523221926423847114288626254979610810902978940384699345351288033758261783615050286096995076516248416179060566351743964359269496114537595789021703763185229475099640186176484845344049740218971513234593767156521368050239845561210444390600057181763710160203658031479835662668110787472812403292320066673236754991661189959030154617457789430966521969765205923889273464712275396478514753861505447576240813549279905565129522200908344409838465940871681217915472933083776045334023045829294103034691588532257327698232136263565005927425126144838788560744586879066409995043606768093742670328236749529087813733995548249044091984832089975986309934227022648418103309646984638046199047930293369833004858277164025594638549023046140540649078820509563866172116242560660284166248174848537790904447891102927842443353504958662824989376415383476278742293133291235829207826879116246056145612777311394769915295270692143525579605595925854677800222139363627943201945021212321641539550753214468119297835825675056723091734141639406541914492099323225422697670509817814742357440031081680526012341850324909068162189352189340201700266713520814811378645018682823377599742531664247844476141017523801493801449191996119281289069768869993407040994921413677962689861896771108566001990829598613158679689146302419773977957092997430896964341724270472944893566886415860891462795643279693116266606950456407963276767370771827868274636277694148289469357464294596529706006137541435256492924475965238513967304391997467158981088513621296217686159535136834422138382261554287085357595154774734062810254157812372235308786018449159350431581756316304320681118193292444085845754041280478754582523301540384718075761897176293459401331434426462625479653863052886317052520686068669619493300492277978116085722962644757728053973442548813501550946321187942784787001801187162009493329744043406856855722806033265636766371631822955783303252755961422519750949780744039037457360422410600784118736869769182728681038379685410699135678269404611337526953059103062133082566020631798008272089459895240665403169579951219382826140446143706970746538380608795590685833546617177183097799398501214157447994102929248710213766130102147538772754349336060746720562558613176813711914779166817920838196131537437038133221712617340249313609381272117076847357717390350219305908729702138825831360829194972223866711431834143070779240483245208049810022625903941660179524494877757509548488370203378719045745338160268094482854060770262660805834417322782726877059062735876157612301296549988331520070264445411480559679567856442685577098368977424525552663080108321557940012905010068236099283509880151604564918836598880746736153919497760635181539979045368481853216184621745071691592420712240594182476293067963528173822500014863378415905082170207588207130204052876069884831397739774009023151185812817675071002868623637868576679920432039961239108345889170564575967090310162141067712489611073064121231999706862824865702279160585039367935106777814089319331031911768278982888656963695166773824308706627493837339688165409881137279813151663312400965888742615121006210597586029702032190439785057130276896948006592976020831340675177059716849869232330962318589392369612612795329091592794491875959563678471060339756852571452802021027655326848965762602534684690722622520509455934963771747166674583003872774365454255431324090341290983176613708602499626054318734535258617424555866872190389261018141192724875893815042472641979780750577853554550302779758578910873372141399127229241241684500845408865573569394677277402291761071265696022560833967082119034423719188813482204766754815483690639320548878081076117402112889722937402261532526677065185967413401892575044155925163514430742211207324391927549867973204247790930228421467246541157160865012674987444015529648519219629639964889851158370786642013310221551486720352516207991241925896654559816799013813924588021633617073842921764384443542068827909110082502085313313076794999754872945606996227752787663459294530686521446898727555373731304501272217754716282336857956370424827437232476354259663479118761841771085043182798128490932329791542108059940824716341231896932673210826891797381024985959190525612637469643510822193286039162520414631242494511891791925233887510395934800836288377015888543744280536999588617558905890817006661214347738142583541480911964483143103777515756291787966751700601139761080904269008950240907978012506502091842203479375440454031312040638925406940454076270547958323878815122744204742641755665076335473183201707258436463086470094401518662326500298209926172513208290534501108461546110450831204028575361087667112122578830639956011374470660416403915627556674543889268451896547725593236653939683612005765791535871525037966407335168925913968418053794507173018471476329614679039120165585024205942621066634415139181555353858115290064158334795044407275309104221006502915667554005574619850351798805166472506125884934286790498191013638239769007858682479980539468297759067110284012355594903305064790370572196925744961804676217710179956598049428500629747540215862751188259097686772858380319347800039649771553488236353892982458634973277481567931871482266442359457229191823429422118332129654435143168388872347935673589416521291190543342065699616590383499409027562133479857334073104469943512616839915719466535585104504610320635781490873812594441914130031111840990983189660751872418358178591656263639052306622886193839560392179676602202474983387931783036609716661512218796431993323270344154020943808223714761994403697235893788375845269977756807904465539312672065938003912314408959765600388681263600899199272334225108905870731069108942486889423473594334243712473034580316370866050342483768808244801059803015478327255925064733454641012402299977238636613841585849440540651461287148870367999225201909141753931294383519121368655308450587618038453302064717960039629253764590890471043408681052469279522147426679859501204194657882081244488406869711932886919590545871974016354978403792234614503957940217336037931189005126275908559605870766687850333786954096032442898566012642662403596038119174607156560902910546930337810775967213559910766898318949188274443983762711901764361361327463715096018647852446626906992786053474791749716400707224421085792137892904072897338032867316907549907922208422523899985988454809540790966209676761291616555732295757189674378625777633675488155973550291137407916186629953727641887825593472228046428133987403575939386287426571346531189998973262941633342249611798646796864929996259411092488935719347514569326537830672039478794902162485120908583250469061418458101965232501970272098460364395019957936429149252220987788271809139524177207352445147922058366123793908882296979194013303118125469521692832151088543462762943994453597475611651168590803962202436501119046862575618628815329312449191112076440850891933369808551181012934067863884392442013927070466519016673015385550644087667483252079345081785222557514981353757634095307581264771660421099443000083656996404863784439519403654675391574983945516701739629503477413774484442721504732400108406322796520019313536289545644586231191769413121055855984221873897811240601757931308910776562983273785871498043868942839554138664716288262593673191727726770263303009742771425163533107962399351225639089546842731314299215843427519418956285914298079605888189846400663566763587910715915338588384471395015954429503698997270809946218778934775514479570339040286088019143140567396231247359785513245422678450307982815046490324613666852519666274498906636033257921602834425572764822283360363176964313557714511894566384000862208764431495370780670582558239044715581294188666500131476615354219729994114758809055582162232243722031274198864442783154228524969661387510405414949476010755444994598224975605617587709457215971239705564192304948955471026436891833064993303222852671148974588538520159237368241562692100041469836188312892134683499780907700318412140935079971518810408279805173199815587599057922309667856274547883468501804082382340438812363073641806911034354288308975143610230095341991080984807906207735099577280050745217189768460842116058309970645315359630656993726686083411738385351973984021749384696667994379456576638358755762369967047616209210269595956939595270652632397122553271825011217199491664668615731932656740155270947874250722390750439391747164977370947471916435752760042912210507985395881378373333523492706737198273488849681152498594593681722121867747164135954062097551181473980213671111137978357950863441729274729010383571797133200583541357458293384115361461115858210203051074077401834942050810581574570227549508612609330617326290890152450846829701002515132985071837193374185022117800967671318538738406093365541659953520746599753243135732370913129430076168420792380373464359189943184002964016280684239280033109602873921201676215308059110611263131902104317322494990756343685624034844919644925853373329279570127267944463392287037497986346315765676526232155724229762110557941559153281543767835268725991146487692309483255291817806327364365880877323363496135161355523016728442011961154204639315441968387990000470936456990717946940879137541585998085226006610719702595399120603109869616107733421684794971974031057457707875284471898543198492656265685662603600739731375847804187525726679378349063186900347585456424232971967580308162025337457484684325793167848154679926899681656760354021032051608357391991063496136852358827958032680103241030879617628384908939694237024904592547564567591532213525270877688536984778472899589657118270428541214193830411419475396115957745986288495282670166147713921163748786686941796310693655517365120052414565401659940479399668908511112968370954289722028930515052141796398796059272115407693075689056892207913062698926541523163595448752762023945760035179391188548251020259323902115399576671918041780323075183220809629161065582358368113959356008344241032828331747798003539561119017221221302518316013407570654691664890096778779895316803074169534905335126736825868400831994651629896268041036380640943703753089102081297359136199256939038577079198832110057595575355415018199116282290793792172588258804704538495170180850056895873838338182370036796967768610383046057999346486826733353972609913716609386943540922638252523637127408663562221950270711993239463049783069347252096634790049583960750933792562576159454500130695905119843388211553479735379718426920825222602460635513631314294203196560176426576137534726056034368345150316185507512094704487065739901915304467273312118067310509001910479925045213160374639734785505941180407862793977877469584866054845435024548478902874100850081788149305508768184893646236691266496516397553204310638935035623212844625177098857453391396074741652636305173163085822089915602568767315094165810553325109158039048490909163484058760204917184198702434010350301884868603730799013855225114217066001378556398148597469932436336747186522041297311458804835148078618641710317068118639349434931856076269451823127151969338032592565559621565643049413060281089589737052273377494662280080534186014881570681396355488091019766358869870159459961657238925853702970835130772476896006306997470342975867409153891026847433130680810734655671333805380663596488071218146174916573136044977788597081032309725923935222621796525196382766947389779994011159963648085615749089173028863541843222971769092092701097784271200958374486392181205729300342449995363378745402103184199234399683878774866359555198098408550426052065234063040391887092395959476347496063600866889005212007151751840034187578847824171353765441119147343405588533012665300382294582006084051447180744851828381068073637663122140996430288779569272913244795958305932954561276680209082000923229222425003545308138844332684837066314871807850723404057039543821016511840827442528626838400197194009080081290969439700389702629050186669692976560645244510512466002580372328330329264568926686019521732162942973621475872192681344132636804957215753607502089740118313665348326198193170366399949525720606208792070572957403036295333601371580058837945083660444896230060811314190957460031376005292438029148962460827400832114322275032254943570021407173380357859794868280080431396263376407471221314445624830470949031313765753804143233620354474225221187589569606492523957472476754472727487210056851433896289016378737784282241658439588176177455211876903618405617286859951752748016448576314512902159484406402708539050655984729999387968928325515544082155335425327764559320136156226274095731482041656130545781629503500481462812852188628755510289967186496093210649977511202295602822234038648710444453891085997094388516291104192031319100885150100296041584362922266912948861864473386590437755694789348930554319357800269647446738440019802521333926854766087251578524163036809188353781254227360833755685175290056261098030360596038937423925678766900318587797811696407861893577697916401982936263361823310738805136046963571903146855511725820491231070972361352364967027093352630583899354044756546700859034035002378761333211718250546271903486749403663708199635194562276350609415319267799198696959697638337244125026649425218530616983929705746552463101271129841018626568778545734148482011568465862105516763689448549350074664868817074648440539444027290556582253774393842592980198093116093681589616797391735960200027823061807023826424575471482191049246857094123964589607971902199752094354475101662536612088896032017728697200975614133128170708010537247022365246985777377878014405177512573528839839266473813739532770409569826183421191659691690188353127029805008734804839764403319748348650999358787098263917298479758846449233598865860039352105641850500098235621775873527413720599860674086471113822654948135107516108883693554856523185012784562546134261821332960198560567921738098957353286859667926578623230924773519264116326072870584852429845193169931373027161297824859127398546413915641929527945106004274650914053080979865224162269131676146180089627080719697080828546130759300361482125394224863670939381936825517881328300203124587564903301250348939537489597368006294824764050636788184563081980872656939472337530824196199168096835583936594371562558100731501548921966259158241459801271735147455578547803535373133935548208329506944996271397707546530206614235035008245508036567526624984641846628299190679858393722379471801464519101185974517796580033279818753368927594867944993899385201990902363533351166897554746449536501157206041584711471758394543148684539978077750856323876399932399433220537723353693858470727546845616356345986597458134121905712689299195601378953163106470449390779866731710074645367052663873343521656879937853483237612404826077734317074695070568566240809175684732895753960234610157134645069106293612829670852267452239327156780006681806453458768986565459853651828772929046834707142420701026391538173834886841212048795766940138326070132141721276260399401963436305902308024693247765178252300374442563444830446381259747200884285961282980888853246725350621128939555442896497677433298002651850042574495117065702210674498150175304428952149732314683533479413542448583976496475861271983974900748978008464219029497592579391889712008115571755770118395794092570728105684956465606961611121704695663073856690601682944469842138269269440733949419760266921465415121203696143816141800428543383810205612210237642611848836245825128032564062841020078126117055097612954780799250740861559599226377092773128118412088270621010397275446666242585917750491461247228778224111497195544266695173165314085991523404194106234409659733937319865920254603144019361772792759245362703780101460884651435281312411735657260534611900484014647197750631520817103434347780361405072296613141081018641330065548856409740424105884726217658015948107559018128521126471868737503885563723574798298504119814307177435340984035884240846455430052466031141195746608952987841498632645317386879840046006231265858527977092241629683229440507557078281767068051349101124001997591010891880162773867604693144583383187098336902438529266767263826260924647333013193603529956871730620757795001935334994023278914194842588913211757637597463874154192477899094151144149035623842568128662645799488314738561486894756768787829110768157146413029226764967101306956809712894940997601803905556072716956220253064102693030668846945257240619325110440919085896812288768646637029692787669578500915314732067804042680438584527910641149253753538176031012367100556288953588201050502831008934059733961623527162833177756200679215491014551972712060912667026273530862192273105118224265534205919696793291386760760851592253992893224719225397893420256388518675077405967118371889708985002697389828423061656060912978497211971127507893252739130696116322979971284099535463923447973264486649248467288464253018488858778636999400646444062643761917052382796411792270629924516581890186545890254803484838807871809573994498451077474233319918248649043144132766656976533122334108308988280332839513360719923853241577467292559378765850165677008927375162077598405060803805592739937814575496046225297215893382766768119505360066553981810094941436293385527939452501481419743541223878648588458444571549049565137590469930887624725893011016541633225728977770093117564840426711215519543587325599521921148867922564345641613388721341943804138749164057617123599869354190250996209339551140763963995475788726942875921418168089472714516689004367309265842136171502151838894956114200517360789116491488841647415504183567440075066909354121059270513620193442854626250376562925568597419944745668560519137017375683347811459847202669031207141197974846590216274534708312848392285117487835180094719955001154690404624514656934721025744527541116567230497944475362050442063300722966857080051150436367751549698903865703990020758011673890709526293699219877110773478351652188255805233238884895499471908620488165115161947429443368706817175954066404138784277848876812623915797913454667554983722950396599044291568093429450390234265110925400776814200144682447337940676550481618803550473404951567497064084241868054806061126148532752171846088749548692693495007037004582167497185778838438532724618970763637806971737034125663799479546714346281077349700941873133113715639360299495804289520808151060296609181767286374149375973902773159791008382084114601857470569609289547632087030761724302160357200227836012844946143241505175287553427130981318137731792933142010210544207846488474427687727302348400362830527011896459041371879246721148357617506778460710356825114338695221833853364630242998501467574456915389367868424500415848284915002898917295080518026263412275154865970282696657603401430794270923251626954220124158961712087056880888863656723117641968483304250012108698645146598801298688995689566426271366753377366515965361873300322714177867038264276599028809745711543919601141612390642796411725784682048832841726161044885085538537362206802201357399434988754929091988089315364397590881055921510088174418978486723445265665076448496185004740907908878281807241285902531735385606259307067843599904042178192380487034271300390229955649049918920312603416074376105327108842880108381808569436450660851180489752437163956976913331819069098665650871524568116881657301375007859875019147460443482560142663106837091677631894179742171320275783967384082093333925403305258465239654462875575840858904973658890522411957705544447522704137450194523942970494765449508308969951382979336659936514807437048503875262270232625632638964993132972234757860446007509485820866360904989448130567344732731474460131547147015069704654215999331296566720813230132304811740800864866127927348481239328056358175595584525070475591906570625615370150117313736830190306310191281497774670375837498141150612122134525971393762630343239861643137888645644298730882936613435828454733200104836591377443044388095491429563992814714745066745628984892972932755762377015608646324781436279391855181002338714687079303793724157258286835242463172877820815249993828279566369361671626344854725936518393015120204140225481358160826490099444855578056438705540184927970569173012234001883844759448088786860838214747985531255662797364074576439495232237644730068024202684665811405103661889563510498749826823935756005933576337160484484135280320705299383665612990623035790789498097918562173515725969776501022473466614265531823949205319702444762286044843104085922959007024687954282474815987342264049907429623652740165618194555213024495285896101375919460625027655769931835753979485087773214738977096314250175355697731696746863907102306930576684384130134341439686992375893304234373069347341201013473392972588770946588273330578890943377531776339525019449153216494348864584540056664618501324133750909407257996039883965112416733367376287935542039151936961206239336310691006516281703139028677958306795847765354193630874052165520794139343451859130166213289713683352764588767890619609487546931284652306487795143227091564906909541969934928855438593134651706002656571504951694236592020714307943455608980448762859329422524367594475863248152985093684846887117412473601548569152552202874783413680855264430196716539443695674334196734312614701951623466974468572161648832494266533320469293140836912946069598060204315063439562246816021348223101866852181884814151711494030643269910616191605788556939706499879160485707505153347638986287055197170097309349386208692244925461182545322864407450298890293760266320533762238688511591142686089720113503712813139931400705993697957936847417878299241730100865253431463214947931626852411418985838017454685831849315084353722507651112444665362910358392106774414857406280106160577250808563006837048534998175223172607553649041323419374692759204973149914974962510584184794770049047280035037625536030511613942128891919763718730586167772558902705601197950294966578245256533475710315185746865711958081633332359212952335736452597571985431913209651340313199952066569249382506775469782443625252998442814493619086917096737514936031649512139934234129182364402098706386993251129899640907509235002214965742888140558782890054920900677288841804212152465128859246176066815964322588600061799076344197621419554575401930051952500581263739828913685966600181479824562194824334821929535233637041141390981797412323528289483741491536336509551227344509077573567823059249492968692157084603086023587833231562619529252272562386661073471833532702687976601112523247980613091088221043911568635366017262109199807025015732301183286264032122410854749913536946320006481170797433767621719328781433305426869670037802462395422881860864087753279102577181185110934381686829118634557711330514366383485297442354153477205311145582036787247119423173084681670795779601823684626196261743289432710070216091391174223426803550875684996685000307721117903024372315939279550999228898238428172834564766643676178104939136465857188781258722992408666981094064448680956065041286577443910390210179267794174769735153115936820957409798656605168112049200786920465110979936627824822337163205948395218087946519720326533572804007302585665296304080466462717277545953519626631932002815018336149052939944809563544708823346881153967767627459572973931789533033516858239326409446637419290579603670582727269168331291777396614131110617870583702084805815117607043668455532087880242257696003713300536507312229917349636034668675628081650667513941863947562070723597595543757771511288529364341938448583833186037139133378801571443357972373828136563277425552855225318525616625869505338433443544489843922509137817151944987925710236781070162792585154272296035065460998749539136079510619184000146569609054446045332362445652265520468212989835462230270078626750998132262266565154715796209005832583829304834755627043921963963695189096348118228017400350594705522046702252595359983383220905586215010965193760300741183173121031487161788028856805151269218420252076031007535196933737586884251456062990008174181358112306924601209471146131773601163053502125346083263222864199569562900649242406754563103297054951393384957276919097658969413949145383637743005339562516764571987585252848781040474534909525516653652836039282090475690510008061751552795894830071459213460106631842017244803549033975927797734054664360028030193973484113608439742805287334028263098434475680640580299225635541077628953927351657130597398594775940317434138290424837352686131251671540692731491299938006646493684479576401226846281821192149316567559964238668353096154071116264281747080936807310083025254874472403807028566329122167886197504497793888965774652835707852740425754795662071033343819277109102358289586276889130850444855805161740629590473780661282538697138235459493082438187242413547292512463980894501627990659407362671734021268871796716854687953627708626413936229205888119565475654383474650459869380901177954416728368744230396939909603130877239166882973554441287583712939135946631534281016914277445696981084185244485492875897220743266596983207387759107493233327845019017418826906398031217464740293566678502376925598268199584616576296030627815530074877480071339596879185629176360272066302461117807700126123892504021314490082376453425859195708403434517129700385603292791886676557476113313325914948641922153295905354120343299544766248727794443905054266465767520413444033471384195851821377151403977261829857079743831481588263210498220692521757642726166175801370253133318556180418565890346568487856510108890687402490326837166871945460989818710730694752734447358935886040596471028516010439466053070388536682440634171185642800640064524099982296715748575163145138125133325404029547891204051894623164791711032874828490334837993558831917343963317046600587725166711889587956420240826021494263842612648177133937782144442851307884875773159554848695928749270983227624974315564517629062573970667174125643983723534689963810682949993808805979500724242691658751088315379947549896012806870945240613389810510452843028814255224384973973162051592399124258072683219640385461228474066472511446154555272358992830330822782788683280280741097134462972167901833693070730733888904986211133153085152752286986309984410629788865811570765287648233926121168454411745259267691724335831538539991825091313825543286022099198236297494736165395835903740178586804081209606382439193944436362161489409911895078743364604873951108239021217713844166707296603735351657763082819320671882324386045263234534422129778369145187464689156429495245723387831314182789696509182040679858694499372670757092882382126801305005438562782389194915873014089489963341811419696217593576967407389715455458074465818846834172691416605681486801561842234965171119910643808866794004878521285069575338009200921368581477135727348597286980282223709523153170052525148353437065983865465455715751358782531743944369498573960237209473476176937372260027919272441308846793673002619818188749945505801514348472858585522030377399219733317901002022518942332735657725149931331686788352520091835828062543994714557884422676471334773457164905488845392163567725878763073806474128557460128885477092825702642087937310658017586539570828000409198340804609899700555898150998370000388992848414473792558494906646569957980000180077288768274355528368358502978892181191566327292731312117543189092557343818260670010473608106527743452493484865858579868976002702219211939380279696912330480487833645938301418295986289787398224921307064819103018482725172821385697181868979781976063073952090815625159256855475807235184127054241766296647686241637318181079978578862721596901986407348042177450763502044706033227097317629331508030669275700450938379368193814617611324410122756193332280432935987294142630248176768728255665521995854813182035553361143457254471983073567914770282724984010110742129416820143926091537816175936339066236832268818630819390952859855947607357903264240041523035986451078625643542148378037035002137993911382737241725229773929810288829843648477600272427783651225848177950963073861908045894482643702889783634071658147093301540798375698522839839399562463337942133558603360540444680309338107882366124074291004500196067099614669471416168188886338504930793060256937049380368709427814985219494666584548613605476428150354934811269076560990010061041941576716779783468799323267710873816254206451597300298931580736348562610510759666336656816867704088298772317994673738073086381450524991177415341801544977333166045086259007671163168033487728883544099017460298003972088903118596239068973672196447929836863799505687166783440657393959091916177070484214702473611743026608114397119045913125381427944291431797025154267321745847185262056601290067788540360562852464714883259910397242643503940943012808987915880952454254335495000870250403991603229403219537201285120711060426064216931193561020766027825898629449246206183683005566498201716517373343967722700061258148367266057191560886222789812183762364980266304394411741568891732166591961562239177277092974001357501835078145278941064312372864877749963528917279991514381117925642677128047116863600000336677416616933998855127187453999930672905949905185014736100234704717079352489706374833805355964918781557677812055556932187842130036786590265150735558749497114495323943609432011014698269817634546372871229899969580025538978500812423638701656741012587303670108644156867417871423799790054606711122781027149927041533369030164661866290749866824047796641542078595673540902241308348357062981895587393237932429434776724678682642815161559529972548198326649373005922936492826913743833337876212674177246402872178101709719306687946609688036747409991523963231495706716222645423203759434752156365941428391257327196212525141164498107454736729813761240302867102117515163733532635351757449111329834986448556985674448713782836968140059775994119868718463737695020596992239436563938407044698210532708648463789024300786045141807889454839905048440511843621286739459718860303864432310273741195692473507624356263421584621450360012568473614274567533579366997231205846118846557008514512997553329519645860006217205736053521267891334474930175894980690130662115086386403996521031458483533454046356592416733596021098108439459664572444937391888697917893080924387853555220058395839710026152616368997597502910850257726564769976150695693388663485113935876678715987079216637978683562087445446658327916131326610210970068569489335745491606265971420337676890738434470726678645349906614895379494805647057967475033386190187276023775306744578049746541126585471079036235090323996599050003729334076332661219004897904592603183376238757943413416067584219512053372663151706424794048799466206204225718940187177837290070666040413363413098516175420346526403756479287524203756601903713214689799343037360837082255904221366821721776578581025776604228228785023190742121462290548706199317169296502674235604360389390490396249579285854713551584497725620279218676383361884617726532523876925871075382347914920765926664845062698395862293966671109331453726566781702235009445464514719945216949856823306001637025584303968341118679811691727136719723112554240327467906343869072295340742622707945327813025030943505057022150046156744834973693360438719408994672550505118722224820245947980966698272780500708371152588207459542019310675985349588218150512497642646039250829992583819697311590209269652486722649160177293469957718362408463577244464670865545202468972090078032075502137440075059043062599472978184958393543459051423110849706817158962001212843357715086277841338133778869728435092830548634142296319681359337002075337599286030319533634245908997472945142139495086514307014146246606546806387332905776490794630558253362147578903235299217738132944552119984372422631965295494045500254560865768127388552469057853189316813881700471751487577106317116232060319197943527643723963738340205164006750852366741316574088646774079244612098722459710569187023355099509802141335143224070365619823645696249881604794678746267787173646011272778269268565582435732975950890638290495017911403618824435016730895954522474431011925513481921420017997197421571036876568102883002987316677941975463346508374113839903425805414653780601626447402010013935366328016131872849915673297055620315372489564622019156071343661627463356895317877503269684073220744118885859818058004099032747470434229898072309228445213785651537019638759558607356209408147453033196571417831931669947725158867670893338226820644626945524864559864522622430607193486025307148897572733613420022928957365534321498137700370377395542126914627415215528915954047699019309448657347608094470413594983206806629015004819838613902787109479850485522029542447561352919008609078223964066985593487143517600331565199063554770562439035575893053300489479383177577173114032163901958280291858141808189597284614786878594008774374307130830227797866890628430371262726861633108539868154489920853573387783906749114877112609150982415395894625136172261835679617393463123707891070413873630677555455426082117942052492151739590378582576103135797954450544281034443323544033969142317026099955225746952215022992005232554666422999015302263387100556631240941894571439623812845709910559718267245161615651148501791833250693642694726778021552138506188567732359736197424840882991518842381223982841130428221589934200375679479984912142108285937872096986837687464565317535061759130889768009996411271425245452987116823063372674282310812315492930185417291579887417027164709256448342521186708943447623622499612222369391449069074066658826636191511266732262928410217386396635534457488389153913440604553434236444557943534650844596821582265956717800101974007274900362036914064383784599862868705754400362139313321711227552530121970164124898166609092116623581296948741787843075284970144318467945941344529053212350832479167621854216343319562136770088871459206467594891696103393425880366947392548305909809683128022147051954951891199757373571740065214831205336553352545434709991041664179146915306232144937771437832381766785292791545629057084608011675404823757187582537934035715100178508472987995924914208056744405505552828738258663811704305807213479513754040991179538712339377376872787469207916690824855929713177944952573905557431703650879001103644539279382194877624507487770533467889502288294979039261754517186460100768857659940662416602059161898933703617657486899563499452689173408834054193263768673902935633199079245859482580733650009816685415141436499257907708968741866467582305311643900502605099475782420998606688203525470461095523587800006982517833356630062390961986790736317965197888113069479416608339470243629154075978805584228678793640038264309804452033734987949145366107820262393616864809216047228388852733326000170636566275746144072809917128606006981401332375285638851466066991228942412346276630537854435017708462675268745615860548876318083221678425741660212967422564783301544542143694147550125549432637771846520633110569832024578974998761030028615150737263633343541758382582145783875813627880998532359577054745374214604405500379569905300039123351837515396663048193095441111227444288207686938463222556745366199262834192607210458400185882178437092837562512764396248081426399062237319294322029877476623988229448780987248549994102504017459020754250367845314015151431530483843722314955749907868714211746875500349606175676990580373034134705340822447114337846023356441132026304381360822735877193992204437590759134573106973007427312771854814832865014598669842271924230796651405158228469168379789243122317679474216254463069719263011964982203475089318075763806558873887153451899141066471401619497870348298208900025247338514264865271197311272875987355053859715509766754529671328949298895944300829240806605437844668220601511313710971560883505782288348133124284186910198912725704245265815178033947230777827699406332411981622314378342959133987042831594058568965261442961228472056038483563061521548590829338997618678963773766766354833506437412358511590784763971820673612740021286566783466140940795668026515381680998838577524162774631118597212020023002733900623754372610432803765908448125411927057759554794133468443357405240555835267185289969006816237911031882775120602976804995140147589237729826321517240811395628136823288622991013413595849026198996608531977073510297042979899008606872759298677334904445195946249877922685266218311256667763127376912837827255745093466141807953758814219522225038535854207579452169797730459822731370282254099292516153723822936689165934913034808613447120089952927772565264940692823201448953452710259846661185818616170538280154820307199271032584282269866859884558368052019005071068703693467072350705205604280837141893569439431713997892909493401936834650381818383022513099162905936929020111195416196962199924598880852416203333846018069555746331862315619194073303299869865708461858064450823468307102380387542874850982189382545098580325163983464853313107573803012500060428066306969253481247362993736799222427938601728699649144936712054841555278310772777794994205918744106406663627391789888691473918605990056397917460528339449584984203605227430712464821112948236257490738693410167597451282009598849637936139050825686442607257816090855556004473486418042612146057609924400950213836135120014175353392259125612405805967811251284564860598378824695388221327738787911322611194512333590458383126493859562534597270163601768868326211596825033234492153034350748034397247503183321671408018406004222404190397919038215981030698847469422892971892529196489960290844034414064385815740232633536822667100082531884837666479805330550195693400618683226340255482640474095488501018110973508287809537416940017059586682185169355775806601065560657617698311499628062048579785898741023383056146343804271509559149110241864127036304930092992475637424311090843861885082371053463635481594113299803891868717016714084634628952423180381050593636771585024032687548562503092305701752504620255229501821707267929678122534388253236392668735881250283011508275582917293508816095869294498003326650739404793675740512822798500449728007428843158564524355879972051810170938708380717491318494715118095368860745956631167265763461911477332151457056769400256380977451271079461282416709570747045593461163782806097274520481314212514877381852750883152291902310539324661342769418035274637010245090546899086453393815451442128689511782073161427283229750640859289966970101889386810261556992214687050402230277427318754513245001830491597046377192172126535782114847483508713329072765712512646427824336482788645825747361003184172080479385122209008041690840546808806915262909600237129264682638422877118880069473615630947470669037607704221794725570170478367195284551123653074390012125373318388603982567505152665136119353235827916693615204332519381940470947335159985065042936973285738053442169005399749636089512221252723591254852283712167647840112721737244262945612168300439859143727139209226205702189441314819619518306544103020232766875266784394441861237429892245237276711840820800029471728505089591109038960413701640616888126419723303547554763057783766385649997656383791109421689651929780889360109327923480552135337292533253813389367832665451843664969352725358157014578593540015162650971980853429305386817828125561800012931726736181941967371103302276431935988751109696011705906328949115961772709985003847125914222025584138661777509878575171839943886686027187462715652500860421477911471370700487010313020664646591518941606334129859377017143288388469681106511375550173583097231316090111568259911277941883195296356679594705482460290922365938942547732424580945839094164715003663449743217178074414983689326445767716376709106018612542444494475089512391851043099794410615993923941955046854285599358258285768906610780020398399402846500312652243693360525902683138422882207131255047636916246479007181410669238153441247533984302692658386170904258395576260051096467288112030457770578510146601379102553026384308229698797611623015062389013061181608962265524166212963294473395215774989331128601213668302612581862689058017706985395458508065740222039265227341230888178348257477113093625822172444343760042006120815275377840109881224470476195252479140919193469771853504024721332127058716562348494797750571617759098350790569581499037693473453926952812102149320984454678899111275169714663274922937682417585310014717507235466847212204517601642179612483234346293139869664734869458872656767934940621337433090162367407091708739789298829716366110380643997520719711962851198816783286238150109614589074415464265526503681119144498964871501891788204119510055758579838608300790075642440648864213438620708944550208831742643852987678370668120375976369962829364140264429208157118538409946054514380130948727825389142871202956359720046093894909347318690637923045408735863827819520269339348017002311341533287701336628493482711401772718436757330101205730852635150319433636817856642296888582808393835876841074827448923528870775766914785599356214259335958364071569530061675895052746571245746088425238928545887172110752370278109969573937009611444278550224186093358212597674838486817942042959586871147677214585342038359548278483495327479784529488582841324296013573136013567847685584408272530431013479505528711744087046032918298085023475507809827866364616873715964203996653446381715410137772443292017442956931010670275861087262465265876321311899568655131509074397816848464512952058445986380512771157124929827986871985493312464575179892074306792595187317811385616378976584875822332712426624856260875321892598324414731899190045976040524996212628061357239715076902827169384826153887486305408075307206833214236953005874412495328985578019375340458186884101284700823815383727745274634664459388583820259772385618597978693586332875000222703423504049075097811011024771931816290231055977877895445986241297890368458207617772371825315192309882773603606790601985866668228169068571274091715017235139893502284107376344577750441123069477817189444944518801129222720689280816820747270312299367381850730048762799359432709249402005558397176717088196948624727275944346768667630379225955555728551499964664977322577010903814657839970620354298181644870276433377977939924622908878206822593530919492946419095960883325780976278649634920270234980603688834631253365742913355004720954409796713399957423572729105460190296374953977442140053304769196175355967189832238367178033445124061782005174186969438043452912211718989014629880927928491666889176429486850576875866959137230177345419449011328947468629827279334219822408170496984643091012457552159150396722227696879338067440075980999258776673544285225285550282139996975485224700319507148285508494005299804759039192208619886605260380749596550752554207560680549350006795346178414310270021924348847375779285068252703462577256089659425294733973217452619985861022175004084981696223902194358426268672686389159581797108978886374687681084646295791448947599281941757067037773948393491404024142045351547375997979670096986996014713924254261918692861715016719563671037132861728895392759513720419526136211309757862761383740808614336560406779953462050597675844366136637759080573152409716724717616977744413755190548931542945539472235699645630609634056497776195625909879665352170722777361827829225861060308407712407325348897583007226230361800881893328570874370947834524255680750961400621144111185397518366191671293502096864340959146385252300516648482073428029625131163857146463396339617381013270814221726563251297013600543126617199355243508091612779046668532931711188388591826253985600417246057322028561536541178484083742226709007543855129619384292653745868394134437293477344477198709059009510846567832591360288350202536241970679981421801697818960724359422345486126608988618083064056580967533607399205041402354616500387098177264799460550243170285969390720433983618841559493878612710383537020946354924947135065214066029472289734793255379256124362492061748315873190539696428554781324516418901887596704475339388390071344598848694515041209961004063270518816390050382568746961357845376625873042392779965770509360567805855573413746152213570780352523969021481985099331496219787586988743106991470890983105615217254218090097052607021634631091348619068729577424970235673264209908260797554205628721002711588131695520594360725205003515342630190729023957761350756156259493295490171177991514200782727348307494204400106472740244627614197267057590603907426962654279960365691518317842577648749590827025640381307961845051657423755018096235109778699316844571205516907837019238672346588483279812498297426648387268532218275225556409864506604501848904203372834537532708858321432608980384561525294359002339617131282328962953785604538970634633245489195866980863814105325459151424502036473128795086884422050743657431945386825903809207508435248116670063449396195647919766414809928018953479640114986978281572213304185372540482921514698817909382810225607580974331916544101591305945692389211815865629949689228537497858368203394260760577306231817304236209865768120067386621392578418475197205042140020975786751615676856341497683649058679253908581396091676813388709960718312906060618854539870743439571777066578381595641580619724018261862227562696307788185903818643283276027719341508339003169773928822216231444110594144875910945252642752446686960233837477678052322581526916174485064979979019448141208823258229852011632784356539106702634334459083150815120626640530812721785050388004616601417244806173192971593097694513207541714836225981566083355417018861803670458811744194229447914741808270987778473788684222992964793293396765480483872751917638294199850762909968742826891118486550910836979813237292523674550374342538827692860965510932612470432246053868513419826392914134488132471514756109181873472661157965288792551274636399068131316578112597706462522255003886189409617980963571401306034369348956293294032246953725913696413029117031391795683317536564784018165607520273964416838003689855542613038799448708084187560330973915746740018452224157378732294154642347705806689267355094220659452956646623508868804501037241277564335814796756220767542728579938882909941826463921324322535838578328809674181595131699667663279615360815723743652879901395914082544533679614647204470484970320577656669033502725967180750930062698679966653139707070804200677692951786488272641033897100400553197796285985307168297335813150575884393857190186946793208541433314611856907381710009878826416636462725251911681835971558731108653672280448079945731237133039068695327158512907399467707784588210299741157662585872977136998808165586430870136288607351470068728453878262817096610380271070625958026149611600393344195023257556509942736163257824925035486479527976874824890761310786264659389345609958078858091450787416929138604882763948054676666851694684357474842599316902270936429190387376174704324262242895643628648551901673159233921667754314938435053297413923035696334691219440924865374766463065825167326136750875488082496515182616224169758188596006598250797855391596744261989023389425056972091823897753866078720546366565035450554025561072032294853339505563104769448109440856593374432900943405403855271607487023321314751364281487417369375784866011407072169009572333622757847497521331161235619866415233052645110460764290391933658989557918547467934649784617903899823690143612238119150410189730423704103576512379875999002472275995876098963865031717449220056306854288058249788303928372328474086743571426844442102933539214988239722183984613485353468937975672668816406822528056952148873519924085438149975436451847780696791949486936934116416604419934105056824953782627884194107996712808357896598682371365775674618199885845441623654523117709307960025073130116319182742548149498413439598454491285173884950207641478996535088925582847490597215382491501913780806162240120265636938779854100054032443806599109029810610868887766348534899354721888377050378321779745460120753204895472286620932570111703689113071400439656577631567709760484034431738050788289353056418684761185333495775559958639451548089627251236787497960358902370320124541013405229902196582903963086307945061212580651921124415358826285576084206266666866249241049966765432690137029002622520962625689128833350138250732850265955306677204728198267810013301643693558996165831388654461231543725261002845658288337300643758991646543886741250159022321143602855046598680940556927124839935920044067250957628518278298289705795674180318081729354700307187308029108115974503517220470176944396181008501392357059464095919347264760897094330277157878509414954563529110365595197380109087676303744181722968433231420690475474254733097342412989537085193201839685367056226892527903301124245111287194562329670735307236557297117051865973831632645300622318002881665508393711445916243558531589009278936546188752987633539442391018341196610894167687773820982571713389820481229815182620759198225259713638662888563462593941737012575705401724672103126716471431845350389418320498119635062179811599853032981818754035290974467349447165258048601682694359939115253317335378554553374698643839027417234815191254671460137901081804202816762529863514488012278341253763471986426813095637801206596413750409270705724498427495559131321432404448074319750138286772026711872717624618363770123821035875195388552168405176249796038102343241551387943548903758999601207801354781749931561011061473645885565191805735332365200091166895261511809593876877361431905716981267550386642121593594669970782129463631999749304716364097305397155066513415857543487052329235752549575297958244334429689967154220023249503363700587080624140282308891143029136366591570256781716249044870325455341038984925982611638597309279048960055653966878563163660311693144031194460245465403267609806501270520127999155094207315844479559121917934853603815595637043397785607003227446104109473345246870894350950475808323355570493505585643827280222924193102347379856434678420504612384192140975318970505346722060532137498212198642854007403289077479747987331866552952261442184929495348274471893342821632871167366007786445205130590455077636686454813233001993033597318360969049181488887021070415932222519500328838131508586625024798006634947165755017957395979996060212451505173918136000969261453043503388950303160359225082750050992732088768429294905247101088634894071499865200721119599647851240551144739422435110025691451162631665591510543043120373326589078338905475529317958461526219400305935437812368124028172956570581062778747180812652355356477635150065156460130630639382271973931902107394842465959591859557279795629945714967090126363897937076119194384010148161989531784488997671800285736241646823781750435133108487447956781125575464220670660945243989837695035156602385324138087046611928065752165523251951822680229870298685461882232064911466082476045270221237524909382116361542919899556538826433474501163831517134150917039373670981791459970396901564349760644266754378146522590693414312521594218487518004347863714883017242554820434574947122310232089963659488282878341023243561186510102395627641879479769570062014789171850697009182597315139683355064687972962434556844357357662776255383274573771292030047098837070845620960808670141103046320949998543894157628265486513993074736877798766954014937939657997088925109874891034918503380426227356122622190367423778074652748235046652185822082265118717429730264080528235707782772017618242971529296371349063769768653338297775790303135893989979318572442896366347824496649870920686777999688555107436970414792889630881482635924383347695427408946242262585709979651791298626615408099605380288978999459997853952295668018448840647552191346925748616351101391293311502259194800623417445346997625190830882307013120400629238082023753837529833624502736404769319692252278831659297038853622946032921922620215080036019342285087851055023405873343869453484739506136476092766629053728907378449729796925758007153297883437147266047218702497578873016617950203631676411974135550765361678953792862368518300571776234769812297369916404475385009832948438705218682286837719595820209213856829452412301196204252682042566560564229667181950656253238751513220692389115081998658313162672856905430537805396935677500443054178638952792429826027463819423735954412864678087549988933274250538460919095911734877037917735963492070713571602480031447897268141504951737629400544570531304116299547895415713673432899263466347999982120397435678396504512754884327105479365557776434798922053044177863685992181689935865126034146715225184850677561980423761708903683099297476442908738303449763232084708589510347970817390723169003839097294703547126080136520193319204897949245541030589441955626636278610591172508872918930917004025880624536407313453021468783285107178484526442102233609428916065903118215929771602075673071478675772589666619735343023452360307974129679863349409612576661108114706412349653723334435136688398824164122131045441858351211376985564317051204708857732341727033510599756725115812733640788786374786621346980792546302093257236663557085704107817064749064763139547499676231563893742567964481160426393086305118981697697950805668065752110452304624909313999995857931793309726123892305600236756772399369955035051104902227765715319565613707650783561288549440585048312967945345368493795808825938361226414258954011712439797940616692805186298462892100635957635909726407002285657030245780868656871629250933553360860887429337422888163120853634143814505011672239069186220543285711460448413956874668917854267658289106302844577366386672436495096081253811499104075067032354851031663520353086436510889963652556373069786441629254769118648751799850133492395346746535961303851373372538379990991048568385827598676451399450754437349323303736081703784374466923126123585955077243226973047953133024662177478320615051826079621738862657350128578318758399969687602617785780932588295789044015055439036839042647264660539651995754296389627180218892075335778786400128426864282020039151439091218359382723577746251196123787066668455927248649163069017143944292414656948472646366287248774149531734607933551129460361536728794528500271929396428299949158344232630619237072142669935446950926474831767765361792890536719704946201416859057840668763680954881093378303495712981093106753261538592373857275737105096368209299282717772548051990156223191295393238756938860364489443148471201378264189450624102957302840327641225675925221396344673409150145976278217971134569590924077241630169873830840615658607925701289774943649335399404719128451366157761053783256362135533933617181381907364297810156302753020130523352031965398657974057926467776284234947944459659939719561840832381010762773361785543204020214915728813099813488153900432448985971884171659342166577628775581720932999026273266868179533584716675112315721877325978549227937369998415696550885005531896292659952861790028915001022360410252759119816460502536613319140445142731271898380229347005063556988930105418665628024292789447711381904751355125885619235960376548993256074263919871096064983968344649842879173366340556428585436247136496445987431055826568329548987309895105828457441709382283234376198779376803158361885470120791081153922008806742148542151370075411690252520530926577415807647458943658024778142785956355052467158157501255901479697626946686204037047783058383399211012021806289771371453357989497218415993594204749210821619385066112119463782190406043747052826580838181100593770723635967220686083843014856578342597267102811862026144138093000671824117806904496897573260836439399328951473023997081405640646358844444897913842754021105354625746987883497350917602568185233905153619140083909328538971219662395290242601866535827297013998783733392839526601005554642066296476036086189284872002115859238264956159502354756409388011111264940973304229958706894039462088234967244241268240808056790906012500899625213902611669048325630456043459086966185677508982016328707895939413650917843521081395361405323833151232974825831419708123972414873927669124607102720667275551041194629635802575000161650030165172645959464357878360498866964568059369400877372835426268283493870900361515090494603300452678709229012561717326396373644607136896955627862150547728340415307753029244571990587218486981084509806790559826501161948339169845260975359319493613227812444646003947508161018025226171891630675071109394539448132919891168231159660703539639145406498308114056818284108201542605852938732758716219870160722564236717730472251268281881196243737265448589413623400847844215811546694552667430186433620185206664878540295000253886258696325662465264357146614671497007865673953578221744343744374364949529404533783387920555449115455916860564717636060697997785990004494528811738542577086463076528430752949194503699165559749520462195247859642821906142508694946800558970018187787084709766505146856013544802948715788850730383156011803304788982580278917264550037050787915961543142278593127304898787522802532960601739426633027725494714314215631724047305119281460482745714651360455812067116890605520892222279877330127162297865579075698612540192876318966413227755748779115033539727970429233985936896403975604749006131028988565578559705579465210342493247057501953408920746126978655666643974932966179550194874942315104184133778627937918487798030533761716872816663170385083060008166807052037305080206530768419771732505606368668773310190919273626885515877851131023192794333092470308393866580349160599980897554158252203965202452442184433808806133242232322152072831507121871484777966992206182081487593575462737769548353095765210897774257630140205665221572742912052998755788931640425526799706268172227042574186543389686008708916657189368945707104759524294417193401868108138561049240871000759917585683391946538047354773996868789877443501928877853191206960084750494725272293897538363458527337868839170161659384009001997706071815030610299735499861634962035645520795952766148587933788888464061710534535643896190433250940456650326639138623818646338033799445358663869342765031721935119970933690368637474551758598010237108146936134432178077969219771184247795940150215047093787838559204510389894234801012898361633954535162206056402798645803231667764127041596241180629082312746452299944697197279691420299856791029809750295370956560975866519453396360394078602200116830051286089457015542469889405216256359676401383951724364353995099111030797594209194630503642701130758262391530299476699716312977138410113710230913256923707693567537021493780084877228789015392874958650163012435821917333658914535566860331867006310528236784904124153529566976426862327727150214453756271747471534832946658821458457780652748413470545291642148231557063718577604557345001057612509529835192887136541852326803200201210672696645558149400945307172459511276600660715563218825257476797395770663631709730866622993955008624297607532702030529731472096954305731966496027722187104059965434344103045120653502761164215425465011846114621505698719734416575683324404485252316189343070426300279928625651089127950834720103863792848143390619355745509566438251562547782580304078469738113038082310875899687050107999661641222907379814914510411054861407072477334978327361708571415409818307826577236866494663408472730946211029514050234424129784233396314177507496280863783645655178415927311907202774518556910648630743320181456047486421204078076835485096735217632702462310765208804990492368240314536236135685853360619092570269402746990733247313950535358175033838781027303680254408004325256110005230924097306622132411428715497956003312621146791489463865777112443238721932651448137395440645553967292581916910532169852407449359314951678006583166413997537442223672551119831147323840619635048361685702652838304854268949123632909362670526035534419855665433157743662401044051261932928825037196926305106693503260228848105667651161221840793873158304877465404264894016830620202874744442373237813411593905347193292072598964581455812213085407983744168206905378663475509865986620436035106105642015006751534854883167413706786208362163020475692530552936549604181810718724308697632535750300178328804531320292127437604757659518797439681340696555934559709085989900724303998217835295690727612032358040950634252240334835080547625738043083764079638722295897179654847971241203928918821500108387492185585586333028247742253510071641096616115157256905542192304139944876733724400173121768262270426390120126796268965257983015502795271485845149234297546513163470216803935198332013530814296149115667894969994249570967107276112594290087432072051549778880807456944507609809891171169102462246908647074286672376060300851334630372046640407722141771457013710766465274460505970648803637999842120976774797270230237527434077477115806289708304754592782728476760527377145052858169723784753235323771980314310962336584129274956047552519160968310343468572159716269733885158987257078478136032654805653456609682897905429540293063317349061845148078226660306498277322665787872365984147319589409388444844629877472263770956975726520229960659779960684225794416180621032296528709796352231902826992775491997323278314946213266413373989116999390339455268762852013215370932414190656682263463134284093306655001167435904105585764189486674462279916819589996674662461637102318650468497810152110260754645713841964551736975494763799389226751080578265316397184327532827891943160969268876058304118131257258114367005512092306046809209228195669157929495960087614076967194611914065424400048407139759098272307394153339458930854307708204485272418823540732073278188821022874443867207184989337390033408872710476741331760361638077624678529772522640057433910151253992762154519096207874712034594917053884625079150126988234915900780609630029322352146218997381840228090903348624140375630983068040621204656511606686785603621937063346293838060896925921234329211608875507860337861874528209447810652390834076260676102832517732831493973141744008166358230017222765395679743481962435997844867206169284840723569247454568342829221840334700975278428881426636355328652635677250178205260661654068244721459655644047967943210931600253923080909683837720633164182768329404543064975313563268976218298201343777728488327141478559237619633943316139403524155105213847860791898023247440637008864444823476346480486536371417039849548604545466489246778705178845639786316370003358248333972538874427985495860208541385855060444455801658142806253682532229165523504259239193739472188794557828055858670563844417667722648614311738247850612213612498264970076400810022240890267268409193065432516924067979057565911374786596606563837739893482154652250873367627061420340528602155462621895574585686197192956261671693099481542104738435053086238662966334482411029376538430258279977685515770059783963404904403714271323817428721198399845775379973014352601669050130257402596589617662696835693357179071479986097432868738127381114880942170573408725536784277863600095764638363343240082586282568640401970848453175252081298891354796946624696797621116782946128264789206223891522647083440216823315526715776534954672030828440673646757550174034490120664819584246552069529198375551372161390617402828570012102181217084485475147686600607342292575951327160179740853180688998198131444359080799850900045069519431135302047563272448538770635756034906747934830702503334621806804622352496028782148769852330526891961010633908184102176316961370914771979392572403558456034343362443401026647695523028318550313711353731140990687386606366739046409981603196319923654803287792047962318954821618433440232386127720633725487349381421408470443515551769202785571906919665648039778719379293924845735936863448814492968560739522519290137289706917759272643113860658839600597274969402104231407571416685813712582618454741370539581914939802407261836054333504548586320989571186762277743736708432393596613987306094689991421750959313447965821702187590441254650518115475145776199782468742589599109643102587114297714179930360529588542088276747419369157789119610644593284128599165550239136742881876448837009967880381720242962074729715893233161780480182484760012128776259620313086273618151327238214407211150162021371969466354566026612652737187175356823906180475246874465729158562876218158507021684429206732371682388965893502898857398189781391567292086277044943791390481355708934456351712667886550220999994684694786965412005678698316874003322602768919196444200711400427082994251159022723383176891686234135252118862998632630103896756108377201004400367522311320356087439955465079348960995986764080130398014109561658165293218669954770905520417433516960125453715739047441567750035286906570979425726832331025929035919254978007724908773974024073316185081420786733426808941952997685011291655736030602832337167572272438254697839529808636338430282515082168199366483847995336790646784215669297697382792925037772842323357154523185502039273462130000717151146099108097764945620523647914107610115488090873901386181158184597396728225822867414542554775858921970881524283745349733207932480642469608603947056349789939737297807648640725904624262074946892759349698863562272384251577891999091911172452922100601532673219854812013538882813803327943967406707044015342952490730090936609717460674981103169358087436953284012279524710348456876114920778237371848848326188405186824206789311958202128721854726586802494668376654283535567766115365993785114192558350467809572796671060303848241350309558320987545957068258570437172937317726154537474281023797837031170459875286598570455709820222019622619718788373424518552201223622989961293337420621385938959977402901838847168671919662211801786598000301088907675954967980955122309290665103216156564387356801217905967297592742645894664506598599446153039242044732400920265640169447726657465336008693385992471285542547990194836696468728926147193088606350059817452660136625066232913569295158012828021970863382038559666749053627159828515564527715369355506294411291504469843307202855837391838224903018200110299271667539299279903640293462950966173835892605908499157842908714627607029898615408826955427042456966529253915840986404852213145297028005499945965928416522217888317406107272159684755712057796877787438773040680733328144306589234402427863151162516354906180879511178135819149835220686424901094896134801526871843897277880708239730400347891176069323520759594372805239769275912706892591430058349465779295764892207624214684696671014867670585960195613923926484986198560190241713635374233046759039369365033241103200672299986881866040751031365588992069261927258895181390564764606591456452093630625871565155572650619016306633835533092317259924728812873026349253329166069137223277517129248464309050752618896583428519636759235331794228116743984845858295740373804521660164212795633602803382084601758116744735993651105484076413872685932418567790111013567095700367346347790303088937192961597630139434963314089448208839798429408711354563228898305460281790924937442973304281658150769812604009766930903422176381282477187997620559556761607458130682681684555822802092171646628302391795956553705263815336336786262363447622581881751496624490236003224891328547640227129718141911327257292348752131568308642280322846187138010889798751947612003041059946537703594060051244429152775706679053658464797359850912766839148598886032276004203307137919807815500454307798020355283078038059558432540431956432267107625807313745592366620249936214627957847521553235870913193429508167938908317191222578178732614725057902553687138402407208389951240456580192576175144682500968968899018564259917362638771216544415793324554171770756769604155940732605304424505557686221717976565708522450403935306603290518017111132404881285071900705024737473765342522849323239921461248940153773013038112891782281269587468373906738064390939684031025731729489588897944053314327885192533297363035636259731298153078078398133167971341898461862979105940944619130806723219657947895883465449503158945495889733890747592629003727421220327582619413421221903271728673416233070429131017639339152832732538169261372877794342740949507484485102247155088533148382970608282156029157518545369679472417167442128283955942269891232588862557789485852249816547686591446349029343301463467636459342459866312721621925055410586576484301633263686693685396540049909237208818702224378489254220451121990503359957183957650512992607935297229667452076890970727722730105179947056940913925133209274515321996311476613947991215864342290163072332263482968776317564243011681059381659741171998971110328710205998626013264598023142213329915173081111201211251505668199401607690413002340098163301317801969215387450205848270544042515542234560653448957557955782570935498827380939241091788663384723171394445920472747585823525385263492956622564525818521582710332551632541148005849111232249248136753543736563786977285197044430436591148012055037614329732369454291543850715762037718895563560824383926803563651704759448560686275867224246595653781142602713569477489930170997893084490441388596845327338730458899610337332787878435730500429931085695840624045595396263768986993720318603999979453913119970565335676947679362871866122702990546392389080931070946543215562176165335116680490097834974540833373140031635151033352589728819326670227386301087238369660921671672365026485662714346343261590097688695987008964569422168305491010311444439651965726071164947312473015896757678422702507336863070061990919115157957561857895605247102813233517864754172551965581358792638036508471597951909462955801320761194392096232461687549805978947089867330814157239730501923043716525544557235703757877537865006535306654704144029131919166846205072573085419395864767304010908011597927530538882371866180225563832407030015457466255343142205508611909671790621521131457606464032983508876797485581635071584120826757301108510485768555884818204565874343410176904209602803894073982430427668317601891912924273117775541589492460838698710605149426046158252589974122242651074498625180409913659246367824951656758836184965601815008012832195373813858469743087039507040291188511523424944842883673026984940563862869480751259771567765827351588514057490856481080477107294703264037678343353581026995267775794824419276937256711737526128249914550668060826102100116554868682474915809454762513500224814796556658582489684847456009226182148881460268946087870085056246195600093641467929887324102384131004739802430099833395222566078308212944678282526006347352949071376241130769444844160421075285396456094039901141976911182445084991065457863912333022234933669743640289071547469540257338751758459017257416848664292596759651257719993009653119185802656948286320721978477495896675049783960426485439715529193008097311311508961843027779476172795340723086229958570201827641974155033887773329060362369392834590766070748794320562215744756421105015591143980816486378106114306336644558306405171801681720388333042692768484476461845759868401699322921234318317886070608570874489885117498275952591194233413968332227914763782705902363655350731065187074641150472117758653135219675915491228748605543417485851437509773184257363108469781118227958073335273967696470110670593774576519478835889820365514650231921541491846438486922167797340068206961142951196053297265005328368029972478537930358383022548204185599286446286143084164765351332555300669854782706302794099563656986323485927712070940353330605062528515985344221533075074717851468651662261740038162785848534277530909067074996710818267486558002182082572246501580469771334989796585616542478855212263431034253469440255368161973896562738713996521347621614641362248832342526043482952970318745135015318582234659644803033856881431426357402993552829881715167772207624563124693518955018740041452546410792992241278596385120224821477485996809912164099279083169262633404656524654323721773152443849465617467120642165277335100088641102114452134714866405958249941441831975042303589214643023044723020122350741375419877968027817517322390865176292964483990163305861713899923180690053982475065665810876446659261098320568043325125200075304789180089507282245687635481769699201312421938306925884222165591229152437116387888141813831685937620651555799391514571316571677776277812416115121985536632058377486771873527652795012596060036040471961578737231288830996563247666911433111491472691038125632443440223918702250876460264877162735409312132864411338899321498035127866678261437442404551088028363454427365158838920224297006641407002624574566007777120549333606559829056479685709697583554500731772142055719701402527674963127389591725233764248722323821839506167213504836577021930734237989226559566434027837342596947729196856333126847322762740117407636631572870489758328077882828889951543720715328271514508248413794487492513474508409733943863496667047985235193934512844104571786745126246702880928407479109882327005793886759092064984261512712090637675673768596688869913167366402334736121231801679251802899786025601911801668628738894456747002257695976305161924400825848484219808012301356689877253671830535023275798472595334376731026835679456316145592338199653090908886279759538907218716129072202963064628191633924393563647591682822517768253184358269380831329691248563158469973263292100590193134533457073587170895473223917764989975361951896644120042461485884245327356601867542135311008930926185165288519797931423697983495168350153604600202312677603102909385811384022779241214290988399280288265000360849886065314050313823793511303716224453237239903137329024337329021039443963268472953801818013578792755971550817791899286875158787083772904261519667186924540878965725188591594186325346958156877880112484690883654850791549145242204108676138360720121073011085559509661810052517428722969715985283067844438243327734826667540591776725068562318861936247704933851559985825914526015256657215367878558644650289365137346482642032263196346915343311887765939871695873031447111578725953384189201242000763106389402927386302183166702404591125153985947370192885467635179948378441871828997031814025214699541712169388786208484449553628020305993077261336949718261863671430923470497876870652169421076255917882501693403653573500742608108645473046304046573843124871304057616620803819863985981314526426000181583004015318155197155311263024442549300348169631922116510166267511966036550538030980009730094186838177112805704645710082180007711427903973548681826326207050698867257295699324824388879062643320231625856875008109666616545163614890245134493142170403678575079048536089007276234701654416378552503469466655210736681179007568535156982230841300720677417501257458477247623464422358863017960691520637343989945768935579005112379609835698932783292716471104232561816163667705351099921638032077085049011448321033772161854179643671961177752912133495078336932691311157105174939844853261633122846724297491643510346683679992892059625101332579549964169940323819316974287498789654672508448002060547866052871805945889886886259870007630162014253488081382012196443580790052892191807309127589553871310340834227713197370370871140351705855073730717115306609866349606020723052450250206140808227290376937162415323135672375105860461836997074109649907867058898808980597161043456131446857310800748613194514185225812587073417727770083648299449277163776484395667054238079585881112383989852084032328162863990433654107061518549608754926066198137565685392913910126529092658394414711537597510551989501678251162111007946354263131676471095834343835569310332194525948785941371947352245617105138049077609519709837782492105205297236361351477876432049668079070814351819026880923243132307494622860762550464956981940213838863126316722962198658382828441347811515626770425788982744632165741200065489542898012965816749835810693756024620066686437189701536934369983926211577976292935526018664458774632886899161827021715741876232421714360186633071069767517102406182358951077104329382600890562449039920249512572384376965507757535221101151686319985074547552483102030875254311223696197341184104026012329862528337022717113877095063238587985591628073748591793976508505181651083383983498999670274329025165951294919984811610810984742666665233702047663823473149400951579497429864075158455895474794432454308424743074328403413970213178182480418360635451146288494141529284009521094280872202905453684047347926078498591399416969310639620699455097245781036614934043732259459662019613405274000725929284886797949697313535918339712391571521006010783483808173459539122022248255157077210843968811822819408182037185737494092742489544490636033681465342443860374435124328888714880682149547591357914335181297921633883944170401919478122113384205266643045066853281807736835013177866333067921376139234677250577912999937665331531126164377487949246340493168607436162340471108004136636448093552993310084073846691910675388991365571297540104632354132069245678780414809440927882965933138907875593598629629127410234152486020120910861083262686445651842481732490837617433613205929924040762872167044751639214465620965485467213951624547185832087623323631554231989207718505942465507289421408402265760435008767019593817409688855809825165119824777659705951390219365992939318946857138706119988717086753030497902216648805212061831871289639961117683122577574363737794825623725975036802228552827344883279962651750662659731940395808315651296073911202551590901985646262547184069999958885666387931748740187664307458262736510594578274417204794348002459815457079342968102213089593282083709638122670416731461553654868830498380325531615516768442253549973728873899804014953281625024137217840451062720207369447661879312635311031128245094911811430957378713175900560206800612535748487569991529529802216117891938891096660378562995950226458664770465881944087746571301858605576083555801620610993699449431295286147903148677721024154626665783991868498192510616901490538710464470224517877384160496665175420618684166606511395476823377641194749536204127316861300747955093778107106974189167132742171908993421787106021915961429359267434075994188014931649916759124772334838487826823731238673177497082449850617150904231400428929579140058536794335030235058930627535610765365484357386307502563126588404403775993134708035744091783641813734802468683733577055279861032553152905349083649810643211005975952761488577814771702376662942311746583489999018775923428863468226459649255636009908053143478618854724119429288456142428148866270636156700726741658395462418887507026090983680505274789383466427741383199157837551023750217228029235815556641577136273011917284177886118123346482210920683396135243966193496113407829779009450056170392523822543495888721431314120675972506614017348520844911749922199887516166133682479493574555160390743518653328180168343510653224314394012154381318181303877636124842439658010861643436791703730340688563864407364602413396066733993376986166596196415762262257577184312054876663937469323721379935074493448343122127783454778179433922411578975759328778640403993714722322504939650830807082510002274105938062214143696429169711921703198561913340407469604608249907162755896857458286708307872933124379856912248361638122094499054287119116452702756353638473941573644902696339052685822344748591549761700324239648595831926271766612593793236263842541671058647160578591544874952150248404206033674564342368254863492153011627086214000846508934116056780590891659985480284718783947200234227047246341696922515098129078255295947161355270358114159756375057043241255512803264840176995631659467552066908026511964059626421961992332338004326343761129597282655588273519805022471420874627587942122770196565649149845966819519655095402354181552847737102146960404165865802474247354441365994190977057670828393613704071694571552471427968982234622829340145397118856470769639941177504849608623868062688190100319964493458099144406842598252134137772116025107093921524023775231887800094197272553836689008425189108043878729308004048197979273864153836371670095640642662808119834208535222924922589223522791805605381498988124103651117994853443333895760657112953038012321061712939060214949230024378557316926840419677740002313036767331219563772661024272069807604695574243608545024585926495508032246185356092959540391039149029797697010488686957104044941532054317042111070510820721593211996921476241578679307279240595873357444230725706783592728477688769003779663209850543939575660053547538733394709075122774400140382665776829265330239240639141800616638483257202370042304467104699509461409308111471512908241755539614050234603448102843658468210382897772497921880045989141718630774631832316524977789509323981918078703422912690988849977643203728234598613150379835595541466652041694241054618618261357494023100788934661455023570988116632510534880039401095784368038112180980047236573314957384633889913945135344760756625426325134487179969536798975523480278376272323311884400070390779450633917550074956372233001218336548865225402640465250190485636926805683712244377125749867088879563732640404393734172071217751512643899113617194271531884734035193692361696808618842344459948623910652071757935797493121967967431700753326163041602342061914201716435612497373044001152343448869051657229901669417198151988723239979796945639622392289959769165738395564076290830415553074785154751016815724303772320336450076407064302015099031878611801895953587067331509156242799906572011832947390580760909951359806116790270499645880653847363760970510549487929081399923740184745642465416272800716132565976267237698154306597023587618947742460717979728555107282084363802202418941601074568456222180183219105101822604294433530758541404017484804327353254255601026583337505127829920350133241059120553157283405304501141420173839026377845543006940673261237096674685667983250700878640210725485077539604054416882673358887186214797789778538341752844320805283615866403372900196639341163853639132756228809744651790261515869560102643828010388973784998844720191383812808513607809365059593572279698625929674576891460034477848190435439560636560557768976512029885266396651740152764329518841196640391008576568551060028678484227474774632554234830101005179765400766346171563196649383412445570699287988338161895994299099468485593828195218135104475220409300841826312958676322582026381261913385767918166084097197612894729528380989716221434753758280752672492208932567293493352258688705487893447686015539808875444505170914834037411297647775517266730620830778550065244402445388360052633579936690799830202742355207731154488399101295251101004156448629138003371177116618429701266551014440463753958685749936475639278044992836570507806744057689912420111498132047062039202931171490039084353210044051778890710593356436051041922732412083168230063420488028161029616022689725818677897191530351074938615876712139597208029838812928274955418292808380544887125402951827090239669413851690547253125962131662001664092430271007878512682635342164815732379303164583378760593282980161900632845315107086975423733354256249503024216069081734519430551030015361272189856825211363755470723894631670305884890955067725686917649608833078956419146996233008968607919965490919239105629660935766964742455444476616165483410975812972726894837588154041903492266976943948029946879662928448812956731163414325861349929797504903002697953334063192827198026435771114656094344393116655134556491120738746498998257726114499921185688029116330128394394085825002053366002356148277231197772187928204128232665682549470084304303081076606714704740184921773581485731607091201868732339084722027153109439130760324626036394678285434913430483577726716627237674937547317233613899744587950674823434640241372278270507662084125156729416956684328682188505364756133465349626061861020727867735434408417319993997866003187976139689657149987083994477104632638724233169852385491462957258250757705682503983126814765704205567722592344113920596487535400690903634517404842643326494148735332301897170950095702798098270250922143210766230130542851255297436195243095003819690931236616295500524348509123848202804135848994318139438526942078859041467000242231122426622969448615059580151247004216519366478727485319985604251710358012765176330503621907605012700919766610902314568521119442687883924732296704914182891868342260181658100624298481757690491356021006356797772205182967375008943277792374548804563194753045647932615069198463889426158196076216117521435217218739785335717819930651588528809346102815948729846748667798716484149867505489847969369854652691624690182911549329530374742535028069397324100472927727099974430031858733967053621762403974430360298091363936153792791171618343570206697823471019653807906923223638302762703463938994056743248068987702350972645338745887364945055285145020348040574521219817567753602233011785858001727390343394195524057531497474435706585039063103751985978863303436172755434999414343468385030856189795762987252564787455259015762754899663338853655165178039479676727773156600700741684614017315702598146759515285856695118856858904577341778281019450783251881448021024726457664958240465192075584046218012531407969866389362523376579949075900562226147048342214497613328660102811356732872743152725088102971721383143823174864904486506294984327910034473927842981857934454930732099389039527658345373521001096340182224920643033258225336062739859635452581555978644491550679774612377641517193981773234718669144972551943198024141712543538887107336727814212433643473071152104036587298174548164230210466275333082293244140200259063435415821835767681720963721904080136842743647299442474834177148168743434481563256051686182697232354447214526527255707194601041561328020388974334560153867340275665518887409439649670427820854150038423456286607108182657285606775641607356285860659563956351754882696454308507109188379627099008655510764307427741972733293492232961142846154518890034617494411685372837056523645225135492576298067451801331815592516715005929043494926357425448098036900785111748945485478666624132702860194379755830920150242612798882640055381279967736011110933512338896205232179500327629321430906832756175160851534440831171985609432946643726680324457467323117854185323057249699241106638125430082248654387130764526769465223405903638815103308853347386301239038932065680478529420445785093045059242062241391977877288791916155005751426112304335967781228654394854341878387083077281867218180206694915992156074816141368453942265727100451349436596512559039459697304212773444208296667577646907549127289887764991835448597204285126223469813070273093638151513077187960961625612401955996190583015099228671327817006719844826967701313232244483434620092558161388365141129635786021163577541350822258164931401882514116598357081031688655704729530850911400544673055269127262957737529123149212606806641857427171255345822581089984641874369857739189995133816512020867922653083853921103432436840825688659113799083028263444389028549470750065760411691774855260662772200495166326091223022390351978928475530990981781914709994826496846964846771410178684018915221855223811227464558623817367384004607512212890313697923463110490965943564507136236616102670996339765768417813842933931416370167599466655978221878090306682491696095726831416790778031670000735506846240690522559599678518791183180106641955675489708978509920620598963308803007478710318603596088706927001930901888641093278174627501593545136233241834052613498615701180399842179289338607128255352553355733768993115539754135113738250740145673635357435741562762507654789615839425675401299388085533014155938945233345367739230903269136870767804003648178854809094632440480845135932054248159499006220234816927476348618377086616867448103458809702345608684261423440865504977808829090016810573885524146551290295852333134094871695045389757565385129182762990193049092220710209376843444975389782356915600786256353566074555771019764460358252826090780553413196134510579962898452181049406495171353203592934782835125292222412088014966741026503332409022792129021290486278367448703161183905701284190419854016424570298913247387150300440376125549562793581555900550319975790112683116985375532041342358063209682382435863917587279745992305147891390286408338634417480847376409873579432598802823850653393935405354926130421235386268356874277144593689399733641812728367998369229440819947378511926787802312703247870131280673604637227021028690470842215491984679292364911012260773487196994050460653742597160884939375833473164822345325698496024609195905127253860122198499304839777371819813429946971408398182217912710572449919406406792241342355474316413590658174328434758191578298146613689191383422745964238178489436053890655585231619274002077642509802485700361509291289456542560445711139594779794951415355970203325615513310180305060457989088921946741236659859703181439672810420625157171580164852881902076397463120626307285161596703644286484074013600546509681697099288879990275246962454506137409101609184615179159791769131668617190727130793048744088644080967854185226347610367903449887784293257520695037859331477788994566505877736598930087085829407393519275470054861428401684044419400657398355082943741069606265878696857564124977780259260866874717928226754927830916824402118293616420238727020822461608645326224276821910274521946602621941672344146382029896154440298315372454453344426217294734678841643454289153927533865023850154166336297324338374050395861197142475317967575856479139436819312618151174700626597762618472963723086753875364160223535366286458030732393740562711555126887996850643949036174999279472248951447183359583245099659353767851929894089729711106965195521342526423551149414416829174518628011255146677297128071305771791717084869698158032344524279726998020518183358830899380294586718389512020234327694767898058789675959780940700186099679412948098716019211868261242356720657431255098040086219311073561760618926591007809632973156714209357756519977462821709448080798594100362950949288120796857387320184784373456746127757517876659722021999014730922255624431773099121015328214339879516980435753719217240918861350739763325088258438533101156394534047482174028582754540889283101919819739416085020278148698065799128275744116619624057059121323612137436114399061741451143276701128080547079828502697583144093495007849772522655465405957142104924912413146000106167496325698231507375785867575588076745064206232651910543125028446708576613396043613103790819354665558434619124714820201260401027026897346914799360443952016235615685417442479751450047560516749562432384419158758414422344290236067626568258532424276774090081719117624251402392400262902549328980443415179215235317005600052414078499649349580128226518042108436069168646415273349290768526939774254495621112741885055267770742546835051079599954125622227413957773857040814298366234558037360030623180725617916895379740957956467585240019620690594169540748543300646208214414035895792752414960962827805852327566597712170589093301515911361293174658997023717609152655044022599507255402742737976588446458419955471362325968407527225676734014942379539960299527854937641441621243796208448662477625763315520243185115071642356015453093341096072607196862481611639002088355695309779285716420242593191875809212089267984556834067824597143463511845190180694674060279551572834077081071565458600691130912139248395003548719000136131174157358626977481847922353786845535973288563164025556611349191862852753363854123665733628718945228610911918488297831356468054636102612396313398281247408139610288667512957582643791601754500699596098805196324981324181321691499503035511854039063368202462218981015017083232201294304918863575449609850131579971327800944471622050029241778676161656180185336144304221962184476235837338149327306969649059442814399741709539327260924975793310033494361747731889394768467731742801048440008248312306253610885869100013697789365722328354932466835946083249110078850728747764451017323590744410978644235524514451204802395350429380059982005145765320261892475623644216058504899893472796016598038279082375452951624070108088056797823626940460583565927064040793910517454442407342506840249265211744361639792235419914643677207808747908866541394967769989018256748472677132987916214336861157849375647612699617842808543024926443773630619026028920038100024048896617639614587361640711754424055100414314328639647361047789486961796932623837741476415474063617751528627634848098669440498411951685856526926335718531712314560692940054713749015111375367592230213718340184883375498838061996787255223139447900229182997590178149207067768897492884097285124432009993764278093643248656443973823967959517778785669650334953043626974863885611760034043357943417454092891006296366252404779570746112596130296433795078537560769400970629370207369044958915481381102983772721798844862630916719492344794393479998108444050394663206264814417791555099605120513913905971825661488304820996996594071484270740477328742470946806445888929154861715370624223665840238869812519719822783462629398461791872290929066411731673858647058607903162844510508825215284915131246703579629680085560530042543016701883713615820948094099399697028848136445043398333606611548232574943997463800586439976586688931421884879174611188068413179043351691605320285439944750459262773069019930576091969434277420550306439940173324642506833924502219273979905370866497995784978917545669632460673474517850241265024266368109344017871078837064010912443052892348350910900582748306376908005154900903444217518233487897874052368580817913960428543953103328210532154985114371232429581817686346430922562722639062782520435547087490037858948986376716199108355947675144586137312595044087132142152843564192171738836404694924768590014557602540106509155861242932548243620414332233025673040282083360061498947116428873826530994734432748907543978437084225546131195738932739489375142556478612567819435777113962625842442588425724872753862716136639470403188099941304358004641926981912666784221097039538171637301719912920084417807009557158837679792487683122593098516488149421849451110592973688429184284211311442385155297471338483070864405322809117618079105974966259238024109463803933687014568516890240217004846624613496266561964233478920991812550689237691158461443698925059042347357937095401948477749115593817471357591758868233844562141177479703087039869633522738118063153812202423856132397567216978306117506513468880757688974367048190983286883845459233094455955033380755655924839591167127503623299294185548719129884310976989744113788851793556672690524169093301834393604236784620827361766533491421085365401025811830698867292435205531632468430805387084319174222068545622522357870862097289749428895313457959192014371914128421997271860784567519465461814561857642533813160898345907872359160820912536765554107632429988893860933318234518510501403547009296169586189360933585187264354523409745721022882178579388898872552442811458719398444833823749353223308624638876631313278358014407243991497033983425743557539092894548704701520814912713840917727716253953701446868283217626574693685319553242098872847274284459098444653612699165016862389911326962828069457945463339839366821012357727305376033082690727660471556127070831187110484513711252208972330918668337828102709433513148009202207009454751562621361679963577927607634558027546612643068608851082393415793246272865266481006720976622186814857791018894055272528279530724266623888409390883252674174485059412207858173828154531980714721565172116217350273662305788748952691120902219833111358135702861484694839956291273568827499636955104532095561408290836992535160753350051586191791515291452494213237973571381609340717799855906853215649643357858135075970098702750679405824207948103761491965728806610049525066229309214198641582993770747623649655455794951355412608439499381358775931294995760257319794242062416817378798485840190919577974945303116149771139788238187968496821069627491802719392512612318863654360046597160338204904201773295355714122576837611187889735947426195968116860465055727576898693670068028007558074324477718355577737218185456294806357684733489936055115273262635291784285674322895600918760908245989541022578999664278842491801448567093005166057354362918851537755665259049114042115545682529227472289231580893147700088244782142528971998125302976705610104700270199089536796096909376550653473332746489890899802779486965748566187594836722385721867044730206614475306936772805610927370616843624593647575573102019584980188226396248657415989592876217204814628773282881849989158885881492214054873889443499250539446214108181467272435740042207949636943598109741603266149854749221870375207971573925685098750821987399070569789512592112667875855690517570301667094119472708552882712945166455509579640615614573136908802976645692382119926172754324097052809155588481569065889491439153002042279228281137034880249931940743987187344246323013082741793350390259731977030550104131097899781306634232013979699991054789368330201135165950967100442635472939343839360445569503133247817178565325841469266192477607386036932573537218550019652298889525567629252140352748403026679636289593339982905299790963860835400152560088873385720491010517667139177368397536027242170594152951381586899051811864880155905326175269038875975038814093562103173175238118520780087909165738696212999720942047161739988610025904167185586823687419834004796144787754024096636437655537395108195197670318039828779920157979856597044894997437189973896018183330613677902918317111802896959410532672486193606517417113110515462906548558213699109993810431388438362388415667644404243965169607129113911822693435453509017838875544635522823316098815834104989828466535863020963710068607875582595971580761686245768248623323072076403274936164229197310745992623056393784018258852402364791328722572160150044912574940703891767348089225772948192835361072642611070128707831280286176869255093890287688729908028132149467978915798999864559357555932748612324166204061418684751872686633294884045537167194785172331855629595045039445933687621260295449767623800365666708771263132950222674519243738463164855930733975096873216771568638267708134081275368157646523622762496781004577486793566527643264354433422234381224845943384592269504563534968050984630608617234129628340858994555712675902332762388431715507398559333464566925510407870742353120660271356336951053349750770383175539907008235639128393732534510093242956504380095595062711083210529122165862947124507623209571215564801224732106221470520281078279408939467758703655588653168236294570001847866130496162688147950728193579450379400024550866585938590351057197255168125944603519949023188183390253625534798844985198875833600611090538100471645808579153092913842985644270845596092797026196645531440404576768966992687751388497005769025818112976610693768062752245342343150799895694883945725843970566882584246993606514030803020784192745393558643628076562523811397987591224994479451069122620588037206775969975345126160073692412876732697108921666875775717390182908346200033275077873715658624229472157929496477214260240405739798640454957856826710471076177473987815192996478806932359498149002103121291326746602729924613573923484822173373627621026375725134884692545276595407128343889047286073796134569653972343853223835051188614920984679670838704414809057301074695871227124798197412579929284866270180188136679475141062255011451301363747336955633000472261157286287312559347742490648007851667242237100788297486952198022964569999772823181307894463564583322782899468106090550319170384437674700838916339807472469469134426930861126488132009581619004051923483472514370357020200001281549862139660402604199054190471163744967042021425090224871870353555601734797320762751113641116239409200261002853186218518917082550142693216515044146113494957691519015025978501396042489170435523758590516618545274092863147879333173422894824826560878041327610986545232172203715343337479206447033276191886228733151695788699385067804801081894506375468050658602982153650281255705540877640179855789261140268969606863806912838371699476346263993244198531755399330312943423877784095207348646143563514759690795624275003011315251298340491225196564223248605549501007839056255498698983270356542176875819096042980516157437590566989452462626879918908956724392268813445675937617265659166787404786058513572524099370240074937807841719684399161272376962348824397903906028746371385851477515797438203450219342052082406705717741176897115208816267782737815694033046505163865018230777747853591715274129494675644437249884505035602521603389104720677585534445526279118206050972215046067353010007320885567197533246687572714119631936729832144646357954386435410449902136112934966077454548064937355116383856026691964748047586182120134931262511340839125910018097525691198602133550845780015784223670366540589129840300613193099355995932665507331967043152157950281169094334861015755600020849758411990027211280152592651456880123036524391277211975151491901027801517009803912211854901009860191374470745202524260270145598931009546667186763018624176801501371954167716896043338099277496045059396167642468393011987163019250191214498423295439432213687001270369536771276914520498493450415392589614324145368254635087224391077998478193511594546188315588743909030334234767852200592889777838322764766524367892966688864969485405216179079138867821012040322870029435403540274153611936089744604794796129673528080022519873352040375175752248145973379336136020456814557577902540623422733585618553732716272610652644825777376722441480140662331532862454072232373192040713822382538172771851496880936177267599317910114528737439196852063654897666270247160437386834434088884265741041172392775642088874556781648157524056352693145220503945882852643682213171789520762983337794162119787308767212692580319241432728588720212326032292934088325260803846877125780670862895514926853174475616154235655499611487195314064982306617915801731633933685756244285509125085112878116921408772681647355616051034954496989163665610044206108929168042732821868751882842019557951668137064367740832402161681666062693892406253119354207840261008483053432054911691000752110120299306125573253657236037469114777120994399877649454171477376506495543971890523026744254055219447026491069144043480560028998515784764614344568788933688096482858790501429343313937852537622567305324898114804639356600384866385239891729067278558798440416366042507309536482000344507596022917434269559797445574489208519476689720658660854151008686378406915947519707128667257724223968359268298289333214647526243519857246849757760197925633173347144833819431716913176565182760697172899644218574177061231210624477899539941561634906189705802250001159834403121805377902575461419897022992554137502356497138886080679046088356924269930495565726531300627240253355432919429164713647004614067071432415925538824246054598082949027200461064401437148352218628333667140796358836412704209171499520959570725993600028874186846568179324597816399836429903226287927449997414910172788612618006146833298323023681774332075051336002467852356636218924158848371334681980415277299923131979122804847011256600347519114543103726433940176122297928501305105693518471226042970847495504034057201657196776302307335299564457051315952979234539136548522295573258905723334192328757230265665739009588737977057110098455604492360684381641701901262208523853385474738933130184303310294507047505865473147799972374495037331855936811600078531310708279883675612401218282125085773302424070260180162864867649565857582132203620482712922091015501227807685413764171896497354871104105452940576096329848995122825406682708904845650637698479080305630194764272996748315387015181694987384461755290102721664061051172397463588365614576648200040281675097029090428518274203279269042199425784558924546367743813493219546345656743953846797710293081442151336143560664654551594929370796481327912158766478662396062312503512205739486714291785003509409063300776404685024382721486488465008977048519681718120143561858617010509216561789865120818452148454394633496910241949197293144964522037410142469647172808485847294135946126872892462522041556142255944542478171330586162830521970142141917111875661219838227910027200864761198334147184742114643265323618238236080632313466361366077685731540510279767988722414994261279860272039622136691056686712933941882075155444091769180408819847846442253638883870247208741400810507955732137189744699773077991562869055719112451172017852803196556442378872960212857743400901960395364596147093808386068767053462326972817186354114067328665649317615855518257635466213838923878539917542136766267029479593667590856521255468409721814523919376474389472215321046957886896471982893470911437284505793675558944956169907977778765393472539014967489612968805575012279040095665118470292839184336244317644780640835893203960833456254387582973234353175417900136280645117187830606974345013871046377844886067937367322723037766671669591439552204653229275744540946493657675548247992488125519693214101506922360514171217767938101711846743547271880527609884147349414504310495366295648666526609212685818473730752098724622606705535808262763550536847763424923517741803617670611578056358104555869031349862680012143064897832104783627524649913511144319465163572698206075282303959095712003509699410499378036845344715977498474992952875740438721333664112652099005814805267002202052017447177105463807449522481201322810681861721351110324550287603637686414298132936537247193179829767388109854478678306237251595482962580792468056274749046246608795105355888263468413271307916199876998035726292138015074739619207763448678497943293199333760612246646602325395588500605618499837948850406654290769096387624657779608541256025505392158329934386922165888919641214392534930796012448576706524388106321226550344145108811948455660057649664081933175426026808501317935186711387628148526655170827233430810844025111912131548748263206895975239507291963245014822449391836142662899840156048581779694965602226190379121542699965886490483096126043140062049000073143534122925746810193128200078297987080953248611137827060580116095692871957105765920654792403953955619951875938664659734680842353995142451299739582888086843075159960804686682907338364015836993062778288084280319835031443272222025060319557395863601310321517714769878386364902545104578480813792746177275963038431842828466628013648984107574320513818079050895415449802945045238537141138244125312499843308269925406261395211136263916908288070593587226272525637883883966155488759472779925623309494813103685297466548153458704654475658766011579575404272341972153619433852113470299424735998770824335222658856502117101543522135346074351527428470391579214188619149207493182304491913981484845241692367342794023200892927665062720950999698681536491290513393733514112287508567650506156009484552559134743953705632726677337601457522769699613759130030721792521897943011725132684802573783534959516860508404292092833849095757233570451411431471651606801207473419774165347264525335940097446275399893128503811680046243406152364998192802458151756672454964752607814481001322992118897271712836859616288449270465437617338426890954524256049223190244841333628995462249792606451483640131844847209296779488290903652008264033288029231516977465574527246456498487752740934315315315724502652279858919342573190662724532334034284596084127666635124839315292256521648276663666401748081223802329512512976804759666838418399251747858624388058937435740975356172409548885574452008813803943025773664743638442892248619403068370145712119270814350673340462091083890358207649616149400698428497756272378307065501027551554061538185862700522568302445995655210509399630098610177235380680649631035682758255515547085500754642095832328551172711974649645076070914006023732626575492668558437958897873561782974306167775538399444656074903997967242824679239074740188063552985458058095431290123084319527630047520834707644483157070020089352221062167610462040828378989828381588337925568710339174779849472748874568219870588385054894735783148668504085595539613648188950451192104057776438925441649260485596558237313845442613331853771136910650512472541248835435807296347250703542174799797698509146945171822786673856884929498287129736082296775527806221339950609126147103179459934184946752319025595344870310513373666943598478449364095068951821556211154218362390387331345581881290406414153365051469394696188370622310821259202716943462880960184808450638324103975878117513075070663863268325248339638664690514538687080959210872567096561975862883544540821646547759759715605188925826821926438908932350458692936293257571742417086161909612830368902096031883592304676160020916547555091684860915676284899160492520341169058213104302012586016131292643685741758916320347005053199806943320472964619514296538059200470064597174752208314272324132539632701890834759270999108005712007209335064653665027691603439938370713850369273880523690859143045165516566915127120755106563348443261064041546886605852340253005440260205746183798505679682699652357600712991790126723785116401577774916249991416890016740121295500711723567421005942225291136563014236869909053411042224815736456944999531161165482036020246643871361620248193586869024475140539687109219073457255025065684323922469423787120250247322393549364941725968818981138032125390303979781646168759127001209538391489008255282829345059350066636543900377222555899101107728221558805077809915895368526394713473789346512157640633665951370726373649113833169230676635479014245023723547130753721856836674774630332599946568068559185986164852040917982706248527193579842832721145468792437599712011432593340505380679656398828188914086756863308272389262668683871614157740156191572698127269209239283145381865222819311568258249050511413429297354510878694496896584367201530034024983786786686208502400886123931263289458235744124772034627802984636505117859122620051379391423801467861884103912774701633583966316962512674378822345112792982698402346873763888718000399942760986348933473408612091759226358449118280838648818918568902864417479163171877525016476562963830104108471287707976465775293867056590036712955060286175944287108748472542301568846664924248197304998665542470300354428256795513363701289003095310850530409987644520545874429187795485147617223807800972666821601757852526315825443553076148579939825315581254442279175895626155013424194223532385943770397331573534335930280536916876633273911517014929777841418266602717825254757902104906133874734090126841122884901562647086796611094431658303196344945173426975786971236139971898842886880491830355450333666746779788898003205833918524877795251140029329063497613658322524543457158894393803665298488205910254080648573671550175239542978519681424579889475563160990080503281556782674028598319340774216896952391699218968973951845810189091665467438670263181187422704361309391543886957842510091354248726405826182917335671290647913710880951264057187470023791826672992397365009142437651498369266514836036294037142055175506308096704461383335005527705922810337523044537257023835420135743244966764046866264549747191575178222006068574027547290806592175202666561700163872314584449281641002980991663571469778997528978889328195831859522337570402629239872477665641678831626934926623941254400995528775996184818118025677786088443508514403601375262506588463616024824887490844314622935060793062635064381614424488617557004089967038892013106233713103040245011324892637494367770019635595217198029567485706347003793542616527675493111340788677803120598102873814616616505266087161971245934580109860494784903817284766005279652788293056331670427727604394938950665859998538044950847306470364173577023258236796861265788014079021552859422314236621318047152100843390809715749700049202862775645182494925235677549470730099941988544269528443096295883361919949922007798865636688680891160184692446360491925397344134091964613008545083012738834039878959526704868887804721639276788093272572732589570066578157356134013849880401335693885392288270082910591843982311675629272480998060623887864370686882308320746191492028971690559394013041590898031012777767981236750201794269290296125045842706588363230836282593508382572476684322146591801494614084433019097308589361491766772852381477925375850383958655902448416463369848244555637979168405429949073701068271788974378441206307480567646936236267599314475223833705527480013271367651020608209032001625624448212165412437295928388628176716791063815440767079560389520476877650034698694818564064321376642345818197428838228770497625008360861163961616512325155896931909204361570217616753506213010793299498161035939499112759790449985777060116627313807282173889714256289280199129052425233822490159583769086349765566206373222528789399900402830812988372784982277889056680812857256212108685089678308601530602495056649264359686168820696721009523331223059873405558695474512234731317687874172994659391745942842330697835781092639662252855980215028439252251403153125526869033647416837172574597869889886234872669192921080904475832830416359340786474597453053052371188117893563202911155680763679436081899480203660510355420648224780822606193694362965347653680863205483937606087762675400215961991017831322040962529874966255269175269751466854092318843408560845055412951166745774549606106524229988996838108285622116463888633230757199707671787691738785743606667896420877247952032807304759900886068250896346854026074049662315455805210557940995560321406194635814299428086262140316364807316678361597802970438415545406838607244779066632028099277286021694879543386833483564233625473042845069511558678088529097332583343925893338003557990647861866883048140022108707422168901675589859126827257226150190143756835285213705387929760755062653593824368226326979790509453966203279339692118476342897889441475180722205678427484488147351370272060546175433952913047805563672045943706833256006189527651768776344271402042963252066826901912254118262391515079073048414497495767409027969487837255335507777011640550315283105859430349047921047158432313206575328485790459766782527914725430362332221724145591175946340261824762689978422987932844742471225355587693354910561283412808990558410978279439012062887229458829395814050915737840107742913546360012268089482153134366187966848313305682819283848078496030629271189785492292967882382720909166889058603561523087858300558801637509304680578384138147959018519474498771663764582588008401984776461264148511298251217157187257459277505338812716422147067432542264882067454952597676514948015975629864757809330180861327529675918857386402561084334362480262363813079133671289896429135721372665387464494965653638139708169562126746941554186927623126984737080064122901699181683954526732872152336193330364801326347062092803051347803402472649198433192436080748173321825949832182987960225489973072544909182679047255856677200105230353065802445153794201558735947172590977181845909131210030298387256541526157164123089106224237634484153296542877302923602170447114931636622259106994654726687800135072354110347559440868539021102787079285320412946057045672551672684613263503501746250645689185831326483094800230704904370871788866994126620213257148177073217367997827246859739006432709377368980134610036648229086867376453466664810634287606538034087515518934925386023250007185695463468663372740175973978563064284463658685957086662854198701882935714064605773423700715186395646169641030989869700706989632866554970798273470924621801192521178954707246589825129003306417019332589422141138083144227985033444114814908652039525224124190291781418075476831843734742260678943056825896498647943597284566762477461720997078625403685878316719970865003234554869324718105360424406099592981623595776122392792926405576443734164577202360634642454891681900534785792590936237366267205545682058799756533886313878606026901491186000464874084721274535297662554237921801491290843088136011822714701435624397103716673443412710249805365005510690392467926559899070457088876325177502471326029802823995797846013452851604206753296148952786318507757070914334905147215629612300823420783788521754721007773639029101396170641669176156486664836647901021625845354728587299196833358473982832552993312416238356490472293775283018726019987937431912980237984423935236611366983948721068538225795184085956431982160586881856470727708379731593443763589922497136577772432363385917088227915103986908536221119220269710555699212568258052705665196387227834981970627254667820684944758143708299854142770845983968102847505354243257369966942522231092356518686922084242660129674784343316184404918136434989948268304414530676214224941086895240166769035722129221677092968473502589847689223762655501186275646863576396847701539474171209525809840259740078854995641540379102581329701623679924009186562236765243857362672909401974148299773550006617452885587305042860545468220641677595726052970146498971762633543696544241294196233258312522921725177437262808367045225385353525655845334635561994880372321281789228753694416562818432162870617440165844346951065452721243012658226515425779437813468330220337440475375035509515695751492378417183022544685361015245055669910715173775173713132112328508897982710002223446476721350861883293012383013730653888893483599516105011625157076810107293580974040105437903621743767066488121980157478051289519746417346249345061843322789790044843928722624525033293296688605559210580764032058831101022426727666312424420179862517430803013253875935432600407778041784706485969669541320685124881150130910867200255818696674981998356048830168683486901086565634228333447230671355293362491531125125170538326275129152042369772826588895991911915211122560786731739885015918863746859091232113372696274126574233658024269580047963980390977321018118661481813846693164609894055282784571838924773201383989395706562600833742675017958125266198105768537640171862300383982463459556893573280041603547375117563554851879225718710496322681242418867403194284757927643855874186375727058459485405708620364836766901867369802901159713625860396869466970927406368182582756774234140112695162964298526253549511970494553732492028652520086578598319497047203843025956134300377027415749222431455803761309623531759615334839107322779263072896066963352574916691407370885096004662420232896606340707679334721322121522303009313708810075692819039778889779989446108589611081958519711065434661175309818977435927679811232568120280522549657725659307924712938638893700734662924112626681281094504801295104151373703139709469106199817832911010668811231433545273407688092957524785363697624540459410842596862083336337318528380469850186995617011062523163396275323996104833988693051428958319215229076277217045877188458054966639153094284311656366399748273380833127021136649334029436784730094745895021920084799620544762654736612229914472361729299559792795608561543726854602815965147051773390157506523390245873517271764703035887808843489757136533295470493646152569144735528083065960318117691227807344030885384508458199386172576654140665455209040699418571305645324364174036798199918165520221106353925799296470674401010078329027736986430417999090324716324563394494819543444189371929613739709664720919002867544110910633358973540562449519676002740847753438343756536023768726668058595560602454836628097948064925575211081809076613659299920858233560091511940680939340911878557988762851437291393249143391232198300896544329679257102963188540078639110409560450554664610804865224112678939119138222127637532247723304508560714774858076899882612019356121619253754711695237602467458702957756104480905985896772098650879241086856769678765958568404786198237224717866825460733203447510563275757943234407614271267268469870480224553710953964047881862173759898144990754340403356981936492427482708320106224116856882161839893192313401667047988746563648093746007634101941499995508460677018269650158983342073619844702824505733599720899646690808619714972231252927235905943669983366065371950109406858363566504274679491470671537518259568197580184733915000379871049834124392353771895498354327296927372962275328324502925546469192745150352152619010286380328901910699674626916135279608947253659640394511402355173897601361232002861304018302980625906291649790041992795378308607791543789194414177840005000538670857203860220222138100773432480174857129476419620981072794812136183337282811043404769292381502157645102268135912540666354342594098430204679744156269172383096928400073878726330590176917991966684956573844580998291563242870337574367144073838769572095815502982875923721135035960147322169024594387260499897694948738016253375143006045525704694413160025740556380251425289630211697491777657042000186138506355917565257252841679629889790985701118543992235049385028162002696203650252232340814443037185145587522278581179061666620580950872357304228740843409942122904514682543827438289567560238583139809033075147110529502925157525106786825644641921415141505694173134110967384207182973926113859191814061927454711241141767796518698466418556200287088971876005287528501678229467638913934752515539809319639948571774410024288781094333151693564537249817335420042149930515645732610743200079168990086213325766323877004897189561532539256574384446011872400450342108629210005207633058399266153173546253652277472315470028235956429046348410647822096560917915407145752827330296664216391193605311524358556487600427671761112493954963042012549892432633338960945635140179489422541566835532591709107703848035882704617382734006971442421844780636284645376140569911685252216954892508980041985997187052087613913078175914296970418958320922082128458738109480408115145737765143645898981274344976610430875658599861287925728699902424524410853997461624362990321149499106372253840780224254922984905325341218518713332205701344128474174436000757084267774625703925727268417167683883273555510285833158572457553667997462332547928174503226191196895486896809145404502842933105226043832024434450598838064282683640202799810413015153857517656628774367637592565343660694587583562914320561678756284975276831788281523255929815634830458921798611198747707015732944880370626345075302880491368889807537411072726848197910931263138491818350004528219817192514425488073895793893769744926082863459768179739011317521065931905962560561475084823049155907572908280294221546748145707401404982738207778337150039540401149141735840567787007954099136095338877226279808369162575681951744717827269213577276805982138889360005131448847817363275184080718073480833504275596914911826814551066264492909928003344701719310792820418340532257787399813096431839357921490390303201796036250974451126571115955656414560073302732966378794383932276130424134100858920887212788722735958837181885128502622451566198709895786899182463535161533124046282996527219242107116318794836483203935039665404384681101664956007169638056825383861745384738565832063346267438732911713380944705105393500294045270984678881644019391187621097724623890114609700257814834098380538109822387711287991278936484123364892084507098693672034930943767528384633047246939430473046754098810680705251367892364015063861766291648925838621810573823623202339092647061199421059560825469232204865598026094253032994401025282457680900421747759134094704936810766968221102193835233611969343032237262367080680159861748069061768576613442308118508387268808615677630633751446668092308971981860329845872758558927485164064340538872650278348015559438263046077036103365334855035318612406767472121074345002016409532834959325253230627008023293398042138602576368173450728958356776816121775881646292898435313632002666741887275203717468640268054201735590153052137431987211201689202461203773154623770844326791017071802615425241615391213751799584948190071347418726079257710463827981090419239119777161805964608742561372964503886618890085943120879231246551480499204480820467039814810428031154453920970230755131481847223205468928735649572503681709764029129330289074442579446852539833636559849848757662811270467338555520680753854690452714495552226298774583996024677728700376774376471002965261649625934936340178461581218635525460805408950605854000229429345807644707502620426040387249580576746737394129258783765566069990869596569212797931426012571200943458571184690544194256457328882962175307953511014793259601588278340936184012444742138957677138701448958792605290387071807665804244580500924373947246924433089506186344885077105497920716315060811012426706155568943263634705432308351701693396894877892082850301730780538359349574004783883979508641654818766624392318683882443433006397830749087150464539324678197074672309309489039779274157337363661406470472775665846943709501842690351431967530866463001626838794825590394591273443021540411020040713610144068096264323973891424040157566144437985858125869332866395077123800300954504341483519244796308048055032400471289420675788784928588879000970111218272485536364189662151464753406083175112136636256778296360282434247543370384242278327351688277770096626414995765391822552924417230488256543465421951527510630798312031591800675254600031632689180292231490504443526366836493516078565731617297726783977339945062573288520615654802769835643490729364786464287524218537567007717733332848399092941203087742705498843896011555937243550146134970243916506455082313402977366953457974686364847585667323476127341640551530062925716488404490142001557821034181359894664678614085375388676600530609728148396021349921589698580135231137168927553440675524113806641210041962366071742719285653729577334631348213177963596673103540037847893857915777146260267663277642139030256280957416755803559204828519625484962444963665663881405630478984534125870680671445449761184641704705631688020347238485488363340476783303093267997545026992411654823665268407279417024634947773871135383377726067665931717983988936474641734867193953830330557178424538713642645121202165875078331801374999227353641918542539423661592621885245286982725345064961194771279753583749710378394982758169813353307682195315789584795893941921537273065044669794050406587467977931435997059997579825992126238238947052350573286236058654749098971526931518622567482719937893184037754883495455148015990165525688700652566598411912635637928111557117323917654888815277943798285657616220552109550677716670262954495178597067255403356334761289058735457950901013854996358422067544901374200415782451562686386899460909080852309173006864713489656993296654682416354688486089520528483958266393733405198530316587820468481373077807197381059785879759367831181113911686868222886370459636249140713062165086983606003470947606836917161142004050017036646496065941280439591139120287992444693155000419158315180832488217229885839275728452030238224149492374564532183995648035025800197221655982700784342529760405299954127215339993710503843130910163416007769784981412867370156106975951218030204517508254229680323755363103229049482687481267663028625242363187755273136073361830695067354399791393043366245297282833747064291313153909482417052883581732227497639047855011813646001406805187194455756225136847964111246354413573806987412590771074887345495939483479211900316916001564319530685290553239326815443273287402515489252555960430062266108903418540408648595437549032026991131714131461348517277159936310265167703686576112532359789810239986108575813532197379386113216863145058741439583431529401333284544370876245900821052227558856189110269771300201137652608258610432621339612897013473780887504281629841870108850428571130820001858127884779452027527648956603357154334705306268127687333034110372037212621283860686480914733529702162254755884918263889137237625366342849494705193962686657202039241492287107708449313758677812224454436359235073086703540663518479225484555331548054644012779533864677795652539560790443688186732911522143084592509534916693380506205674228439730316197663186201214819384468728971190799079023660093366881294374384228716370275726185112192648632973103008418934170168790927009347685010312029623857937059672272604108589995816079985272606945038834829578034787825219278582405113217735763697848331313281848197936680301240600947506272093074496053792978408403600003200281850474823556536216422612790375858026464866714205347528960898949198208516538085734947508853168005577091076046835484075399673746634894092269992052187560472483597335228008289111048830200373602178769802101857491496386230916706763460122026343887886305836544532926339009781224581607717417710319759945760995332374305375712220833204745129654941574732909704587555193802507589040456068019715618516608860622471936887251919610516005686298718205211340221242796101492846498337566293574433873291070274581958727945485995422438383110489020821732268247693721701935465522035134821904304684976005557351729879696315792800808027261295176360829160686367650854062562402382572431805696270648912503969002280019597931700746984085709610781970491569646879002293133519880495811196312099628273663537316924115375584598098673443490477023436970108982076174451246218811831667234580326839390577304054360887118883986763016651144786273415011279127296580088514509487064453582526271020349633482139225668468719751708623578103243146923873959290879155958368124771773628566521523518684012072417226551142209856267882243980366198651086212720460700189459886161229681257983707863402207490520346178989705735512090282684363186748891209611096694453171911939977033963893557394220889458049034288079111312483033488334498499831553433946669885898406494816294532140413515531679879117229580544617229765247988194239737666316478277972525687066806458224895483651425576427814833149278344404498393106569407004061341073140998758647018310488789740777486400438209194122581329434647823579489798194800446436818618310501795869000194656366139684967365970921876391863591019984450540335847660691257456337196451937355054877863311455762929773588323667740696647140411865540024275463055362214707600974944877492824923489156553686890865100993366481698499856921330807573901755028370618199510856025891989098654034606677358322896082430677244963236034620978947623188920654552162528953248289382060535259371901652077638814244333560388512591210196016816323757185231790029090771792152423166139931468826940476488485231141675418173727191016641330738202389623552920629667714647452054880870003934314115437196097963879383786147891581142517118618749379649143990193872858666655956199251689093150735189390576774978640938277505123849437690208521909422620576801714295232789468779714621251868290934236382574131147504208243408559004075684725454343430377754911705465341462023096424184694554349022603033438775847607578329957813666275398958468068351815857912825628295402497415047619658495001730886353062428314363604678297165030457325877179612472854742692357210789322404605283965107596535272333151789007439546161105879153379134538922880244047864154536332427282094833204432130616061123848523107245007112539513477726515516598168346029784148333860273594243388783864190444989548348678488124260947328545621288706183303833036130776165370270128374611373430323108784553154907542496994711143650562103871728737129461120512387994352054744878992934686067234592096614578144765583970927159334473857116273517134103958020758926786402433491970590979669073249898580360586003243449186116332269401597059436593693264959525637849311214775898964305128290832361912277175979958708754532375373019144101774846001664503404480466582203279063095007130024214313711942870140194976431956948241967859957252765422415389174197681862628712243806192408519575858058569478397096260668653313417412111948027366994412780463926197628479196182653610780974103421616357979067554122455012001201412598575919478050230442318379779896598846674874723135728122774020464201440246479182542716697437907372438662588935457269398237628435607392213540324583040491268076849247835738402172999091649526422700825217792659267932318579551931437435581954794841803435772927180301721848970065647016948634915625243804218619937943286291330935642878932786111247737706249283369708586598092607451095479779351703872812680902905652896511921785843416159815155750021595551259631151913913169653155494874479049964674638534119266622375681406269230341979180546403828980445717499695677531602862635111916908749002367095093537162947786145124863691867318426997713593218864946617641451358328990958406521465618236456662559451105847741921472832160167771630161070131837026219829221006574455931495278362188007823238309045702139001926839174735620868300448358969028506234701900123874887675826237720015231985012068046525344310981791322743343230685380012948275401950265230381052453953915448010012206819798899704209643341649591940768449917742860023919489404118850693987286454624638500313292025640399764610904697489334372200127884328999565388383897740273288118289512664446813549919471407552551917942828300082557955986302581334998661438946390405862907396530598003433757051034320930373260095279113629696131332219192160169013437228212086443545701296109837933536619598057519712480165270554740561977374159701152740588976100227551867388895393069189228809647620220314131500132079034051466599639990311076479276642883569973746096121336569207948369702747164708726441532067054943670441925433149670329936916028293598462198006707627975603696455063577273304892257222213442380201777547122556771067060169551831796652828593497894660736384699503284688060181840238324002841828415370415853347526424884679501626666369329221154498020198435242033788980212937175594036019870922513848166712237925510502863034994735133740238101357872983709500152774714084524007860747951575184277484612884954506042985958342133828109077443592230367980152936440113956145559635239282651498131802840578625563565099155563498533147281435879143076079241015556224400629348586640935413679210901407984801361714285039057674510541050250574688275729616825663936448716694497374628377833544538210149946985594136459084749973837684703252112483176394886155642149278455691965249355216466969341788421991192446660400206531246630500245452084166527346222672057370797116370245933255033005705417665797018910972699830044906331952105965057321704154819515027102747288389580654070170126878087589747130920050314351462817392163310339595342659314302466926835952825401110880506725684106670790017536772702652795113823859408241068209074866002564985196916788927353503139046687912988356249177737255623981778969466223842531075850448481583280700558904927424552524897432567020750689661480475346606475979775204608429270871567195973765670694793515848134139642607357028825140697551596132257484876812473890753412249150883786051833972233369714452822285417239507122401758574740530963631261381846120440614005709471273964450074458974885771992190894546860643010370911544285325517439042256555813790897025655700575938513978038599307315241827207405950026467569499925392068377213549361250870846314706391537384277077098382976261511073041788941955966312308838356718072867102227011836494535180400328006364078518968678496036890905743013837008358937269295880848066145018503212341862170867941642691524603688843862175011707614435105752397809761686574423379653677419657777192535394751004588603942696448627656762212822522733466379000047362916161331750660638267058453759031020133429763132736260081080262265464920038038901165890350053342455891853730617466678552680297527365076675899368317347049218717229172199804284894954414679139703599852546375775944507648873859803058454538104099399561451578754761712703419131842707227760068533056504614079264855145112295979600557344756702551768998362839643488132142277055924043506106327079203000297354275846410360604104203470868355605841931258451383002926129472902727430759022907228457394250458687710363659363975636910759676703298940943950135026534960798847918691532960455721761255271208454025878469595050875187509696603022014996450687611114535300131440226604599464823021437082708247679946506471023972436627317484241477242902982413416817384176282931315870876043153863785068868599801668456398252317759354520900370933872951178721253385788934240238410517794861967006477424671620939383792326274373619235137952757794060119408349676937387437514195781634880909972519540011150751336559155859791447280888804338956834890201314268558190267857908368187285169610853688941464599344345622869025795857164386266752401397961320516815686612972328606447605789025108699293045108242103028845682296969321532607789472738657551720297744324600128784056963969894697286915474325860378397151960176929609732629321159393473939628647420787612196665709715702937089497848609060876115872004668275514125510509327433282547607969473377921545743264179285265289826856370139952317895443375341542326902602492468533244872361017849837873286529244803827405954657949596505173707536067976932895512978370019131753399398802941296429121619822834540581767535274692963789380492081443625085459581831686038318396602361514184939185528756596124033911133368140564905470092431046746137004888561734786700015690335770812322160746906388368632652147841857634015563792395323785969881544770485652715347152587826219115968811319961991778938838797705309763956198557480372943538349013926424943310894535990501233708170894413662839629688690502784441858011241300590744528144599323900632062800351856070834090846352322447258198364908542340101238838366572176341531863493042722575767466665670023175327326652045733062100991998716683381895156638857589292267090982487552469731251311950184824208048029076666923343928601601231063397579501992558817263333767682834689071190753832544826494838704890246198958601268619015833249600687458454234006091424357729863162301238732618852153295043987572117807736113679214377114019917501365404140974789310072745177027994829348537412178096676531746393781884679983163719862800971870309043079020274788400498516973567907355718230343133282990869248191465255290132880448290757604446904951260627288036222462584027781582040890982777246136312817504936532880760662611183433466191440575898921444994134169950114806206800093350138122089993683475383743620569444943723997529158719643674330052277762523141965076384659831387482303106444458249075418378904443274355465986186946252101753336283194281770179632552817458771168194070070817946229499918824788821015941093692936659348196419057907998630070237564861634503499640363960323240353720673084690269814851841322901769875305385565939142439940614573797330704804518341786680407422338794675202791426989722824182321999358273584054762251746678883866915230226736048360288594727681541631995949736476618372148590817478248830137126762719407647538612449598465823019499690699311577941907326656137191758840919945589398786975293743446233570181443543821384343615376861647737655591524557738333817207065148692341697218530574300925286394182378877517039557312706934215267219815429413640094400677853492468546065498414449044837664852191937603881588258093404535678143273218109007867919327424634957509309466942679003784490320287923820004483472659893634136664882123810165266181681869054220357109605967057187614587555564270678336672282349155200537702303284534527006430108067302267003498832591642264117323056896221290244793572547987283940925026308328946189790582081485859151669997045785132627087824440800253437015562353947890287008423231260555659658417763970156474765464424173496354829239969332519129047644151267966785428135431797874337490352646939941686555521697987141944959890423887449135555087455863450664180861020336376290189750958859126398556505101980505541808823441932865012599064238133771623983356495872560183256853626522041544337857586776078818000863701719886009736826747244069317355202100660352750441284498735830158644658806764626316225869188772189896940356043858870366964389680752357289606387341587084767888296143797058656624361607339407951721125197326129057866473731743177980778668020955326008667071046442201175698847401737024877674706954691672930874605537350947474699081368964366673739119311801824196039951451606632820000589106045836836447794146224007762522297873513543173855782483667067791999444787892178966870986615615151976509896913350053511352566933866636912478583450904269541399283897568749813686707116896308491651024335055164611492494229852917685336065706816959205558617530803678557141554029160720097230992096899515818498036974234002333196942897156680100585748203118921538795319227551923068775143582003055134018327099845017592358301981887041882644341020986019793826586404180645114145143687388367621139668814494320308325720503090220826352760890425695077187350818330178819708287065251066638374579241777100905581829491263930911757705096119813771703466806238160702404039167614364326352419895574641823304530435606886518249375848895527695138133232532720463410172506922214770599761071529404503423012879437976039582894888453705388868815049026482289765977888579854832100243999427717658960438969051476785881867513894706066926600866418272421581287575730608919332362751931299085891708649825636557332749771170913272744656741363424865059109315048077005437096915870649576428892368629328491574392532149810618571471194894283914887735651058795985439743840313425793652481051183932598059697049791463291183549229359871234063321734692076051299006054528689231744386452734390770429696100131381265820597217888053880447845405721214303074932346587726588373466810101889931821755357120314711263839379642468194408632149795800869067173385985263839192467107338635220570487887871828384791569835457579331529298664852449258917344401363933779803470918729674097932036405531122716273650212856072616473931497874985523116461172915580906009088767200034656291347233426334648647564925133488135197933966329462446917890914175627942209329858546684771894353147131556311022151573781598345571543726846546010541356821328457083784052948829234174829827928535579534051495664087549739683164688053399998415156654672119455561726303165339711411526934926269645693847425253934427912658188124618945944368507320200951339225569345110969973394060538161509261164290149127248688765594918452310329325242699911723154716459442597137985880688511195315912151454337673669053029037349977557430595233092019031927273357546066050688139887177459177363040837153652242335276865842211392005748076106287126788978587195375961246326687716190013689535795315404749248522311011378084031745410417238114415659380421274852307061682546350226306374324494458830747679552562102419266381813896361693231217629775676182269466425490070983161703506817187559337225516046311372972722275176099630163871912099513650617104533350511375917573419611898516306373905942361942048417213127397472323162238249000633289018564456662991170347600291875827243537174254137723163451675436303348075693980141037877428921628218493750281393108551920187634248924261298450324202983064429362079062034765627477891168382330858760398573769924768822489311080538687882544110027135382435793407770753739699217309511157885218725518126044999532705307865577447208206376927532387778321059221037947182403059580153015538493907735568527701233262152503515940125184319964223557772015286208803362483426454524574795542840207548394334376837578350697798321322491216991729201985482159701106897974451264622411120692372532588596437237554465562941273987377415310419212673622521858279163852778904295281096235650101690496805661054966494693694629598509829644707686996519029077968713256302202926841473088083364982574271075130030352488465145888516232815456303852634188353424432531497480366455887928183751474330464492950217747316814895299448649933281438015639588425154554873409233055583910439966534793276990897154295991344280117118146478556945578349564230161249331782717418322463664442611354817007779419380517756071546151904375871384538717322522001390311387109440876826017670302743848153195376475568578077839491891228230419088995842509661512503479161550167512402734388739353532913502646704213199849775015021676010867569024631663952240417549150909702740161918348163344668501649059952491424562809425650455944087800681756152706708249037438357723927675971833895614672283335063436574507780426541934568129209650055603669696636016274741382562651530361376877499352590727048470638573923653553693776201788594283723338310503987527608483532543724754556756998166702952197928329446193050493995996468434593601645492483377640090204996772957698725743574386492640127967997514657887378540969763229386851214828923618179959215787935832081552094394453691198279648119703355490207309961363450660038141974260810809897663431817714633380532927592143188384030820716639348925852264522863862859736662152933712173475608510777822420238598050165689160658723525405521805235322533305950392676557017785136301258483900436174271859473086518222237832836440922536777347639161556416334759577246114695464122813740468948005395918795446125210205578162286481202954734599399374214497715378441563115940100666707938624423516528452473440649279790947582713594536960538263887839435574912115178197770811531180869715723460700135299134401773305469972184498471516567368238129755628379009751969852712416079559642733968507607325411797301430539071999868799853214810042572015214441118771914513834851295877149242139277656792069839684120445438656459305515315271680906786519864737053535293942823740132028885059308292935316898714104367419529267756962606514829500573469919328683843696502582851739527204842945485077632367393075091359268147215907706904713329222365494375420228682565222057417228312329982112525061836912042062664538779614278142950046415603300314357261157663125547843128410583722843460389212001501355004204154694536061890710220784915712416572745134410082738439809188779799826023065247347047059957904106713776151794492485064450201047484073990491974732999403214298936834645366358017417627682865047679985858001396126563407113698189341201315568556295146804758770876825922480981562900369100476273665365630808682317772169666150008811474775619114076719406274004925843785384095822829346265567513607097095287471364846568955799670711240886926139552382817947042152406915116998168496066587638540801499702719668060070132441238003509421624227026333682800221319076083869372548320749015541061302376240264540147512341256049113155318570125713446561461661343157726313670213807786470534648394222765659505876408130341964134295213448238117334531351286756422608118035025090103881422804690849443031423293039103650301406909078190669535169718210133811371684985604413031477254011135648677002861882225757377077180325818130622336189544739962940676907442135826573517471093175340366386683403033403052126903120617999391812618750444407534058809970055935900151638547554937722989806897522234588074871616433753671825277557288373048244904316859628768764760886271143511656271220323880447013901584158649367914414115881257644839572429185104672485888873811515209878659491532485776457272706497857995913139553452499776630074780535225423991462002237076456562159664944221001246115802764915643315887996251590607821664313966521383939348626534202117344172074656828015940850296492159259720301858739380135193486235683792910045549447817226203397602204859464377006849203522796721717139127339796160192959803648230232526017244008750975917520537840286177659495230176728215216285710894589915794556245789188898294200066193237915045465379395644849218392509680084874632992150715714347055883446673810753935115097430734679527805109767419021023379991341700225175003737705651342275356002065961149456658967164898713421973223773246010628523923722194653401812695852418096531848817313950682826677249590996439526414330023234931423830906676545254547516348474089509732899783680743768612700827060190365660892628372348995829274606423546062629719628720618377479539138448232549838582232975665334825097439128786049541873301409943564514923695325170463504637827806318197438487023038667087109206488729695296699505982223888387824843747146771498327727457800413866679107876404373020861946394841742811485124298518889088168821832406523242256955856947464473114660793228805150212091169266789972668700243983245604352079852437070052365716498512834546702145097899683865298529873153395508632362864100192283580813631394024148969599696476405615495650012519715248496643769988460976619462912257133810965329874451783415537619628475079990007940604355232481844675553991371719825158046245118221987335027232940910805338098812522452232061448545991496962310056035909122912570393893453180331796845554236986303161284272532079942536506257188833845500280375888137410408124670096096515140002114978313911190796817864183001543817390913578675927156164292911189694152031149141553911828880625990798452401217205386762527770493376177798641417375137688625417098720542498790915022987412846733985546714999874374354924384497339133969880462536521823715789975945934290236464404323980259018994338567833453067949968226736754502495124995036478087688453764250048952884174540796132202317325366493405473746241933729147369599943231244046267104254212801603651676558108809770846191691056528558079554611465103824934643720777841277342737998130584398785707624919350547601137827059080198223620527471830405035142193796375655701001986752833403748622221839125773120041546707398473430422312067666544246948018834030792721545965128218091911071188886172940593706116948407603027571895013772804733016042939981437361666403367323171396109521986144032873186292406821204555151946718765702053084750565873595436514524007833990893331600858286525512742970608727057913295280037227717532234154608157530693777586646700676901284198705422035308708873940269652812321517747207708065093851212692656634541665754750782981479651155412354993304591510560974686506444096399542077350262349953149573334479478981394618823576671202551592237254221877165653487952528523376373526850228515928194724227117369042208259425617598371678015808335648995483239549805375663972226678943096726118500807909539360938070609050828667512696284866816304249295486290220883493895244662507171468682111229278021071797644318519782298939973223453095460340677155477728944787450604582021298121524246860963315716095989745632072364021039131136423164798288478407134805388329057946002960557273364717610711227274864558841074184183636083760918624173011535368624615095484532711436946223867088843712424540253847592438908935481533174153601720697801513206090749445811938248089502890244537708551518058610849439716410624605642882129295601841744073319442076352712489072914995448489679002908264709691986483743682945196303745977784296398249203619662830611893290853333938744801959829509767936078242023529728202393386260710469886472269253446523680456421690535271808553553264947956595596421753875444471987211791861692805298996753466020522726031855963298147145224185486593424068868054774925525082126522557062035381552568167462585928818187019701982584502045887621171969692390446479006529979460250369674465409694753205532386772196402757294478117128992033859561291725355979321557017871008475219208008348235994404576297070474707243688178665618675294547380359506167698105971934486409245545342801101050313306300962717313918018713568292169654559525429239643342919726128568083106273567196002025592593767308661895872059597200389195180826655153680539234917247517607103547935126843210917466453458797998397377318771477868095177660634113098651416363408733952069822485805921515021902156448912248540046049638685573705676994594448581150318898668085791742698324364243365479272265148370985889354848080070153764099932006237469818183334422049767875361885991133937830357940337177271242665859970682062285530505189032961279012675894935796745521626671625214642026012953220930052880060263501718354928558607695516795233741195983661806743101591437852689189790432221658891796371953863988874967235606471534218363245069835468326413450242543991343231477796620938658838257098766605981349831931320773235836500419649919547805193251075959740605530068026825835997252818829815235821232395856301390163648428232869732226014940910090109098281384995533495358723416444387020816479601285891468337903837063545547522771787210516803173091692742959371891118893225051704284134920759015582598623107370642016439689079886475872231362012900036324558035714101868871027290271598247013402683370276233604009404915127107875354826344770837403456240891184047742744562688874515479630570185547886690092164354495505550772265087274294767673868421148944663478661262547782148872938658123584631755611456245542334108941470528577808000886117884151672280528555403776185719399958196022082418570233859332080632154660982462176142990333722219058772500117967637659529904432324858453896618779399857988872081172753312570951146953359515264604659266655487906632484804976419604963130058511892391052819466933497120589139828598184452760711128026316295137062387543684918317009924747675700510847774705088161105540093391172995881848123322500341756084817309259495293980644168138395392365674527508264337572073185484638109447905993105242924749294138699665041193963538577606704126017051341546833413171072315586844294166895666301276176526575785606285011796759075827862361723381036842489140364150652952894303262369001571056192102401428614977908338545192196361004628409462588875852874847126061091613485193711396376115641179512799021781474585468882583671683390028902362003192947985266358266292264146664135685392929962964893073616552649353034411180546965754085851801277342261274808470782955131369132138267713882235863876729261355372499546462216527600364087260004405182047383296546226888038780960895960246603784355070462525797047973450738995556596307409941830497797270843407268105678923149455785149267519292409211261215554256758073395216201292820592058402061356222581840157659670300861998451905868103332598323166354428721682214147888853947162128331532919804980652082003231739517027539982767830320310237690429877684955001596181012695560452340196442277719048022520304549009276307034150892567453288785283136789330527351541244682085602633873998813589682859762790288285319598709013740442832849189548613054038467756931486167547450416191955777816509213135154902444574912540243981404909236249148415703168944824884517647805403164462505574893201636778062211211493339116704283638412840820410685206561015128634964935220568275471517173960225987669913773447420773144671143933479262623771422973621856541405889812946236512753932828661671804322162108344169580852072327981487990481510934377103874157867981527991922929999760277772335606677232444296495991230053329233786316283916057641517563696381760603728760538468319397573037692963795310087417720876219176416379261352410151788339417027157393201266201791169144515884561610043925855100959634184716098091163808648548773135058578980219937456864889991189539450550743887178008690709257177800329238725145478889919171092802289398147975263377622103021867971454269961851815526705577185252733217288549994635117862624739499084925010062685286107235117638789036742063358507565829497775160289414942874416518312252218798058531812625526688631963915941376614835170490374220412159148428086605395225345037424210769517594151325006830244296803083764300328113566782645326210310022376965070925884827006041192320740173815441024446327634339088093476450419485869405156613035027122260282746654567912272806546616634002186592873346206303263526990275426572154039557235317680586361574640519782229781128652152353219296139944793748075280453617078240488246570325449924849388569539673158110017058035318324421896848571507683132504170630757535450007530427275586877269867030155851790498005157803606800944470653581663414495558206346484598053684787242922285652372714285311174171943969577710106853199899389408093011362635264759011019979411451772700952134897031732118166439335466233367226910075162050535445759850686159999063824466950700808402143590447763048448256563486958850176276844697013271302503989665381969120769970876945484488277803562033959622536754977480477240219282357045639925208501516483672805833633391340897245634498688628002615393722183130598534410151044191944931203066736793406796751326849758437228567873235863735828615262130083620119919287639547769956162104758381616119370380509341691677110976004430989410559354536902020776780209213033986122408770783216208279763993841042755292978482091275723056471511017346574939830493957810629268884693801784704028044940423723292619646567080534289101745381309191422408336160566481441171786767804273519822126843567379778408273619496395574915901778501632837831546793308268414361134727716393024612618900484383971139107969039640587280475921305564812839829726628505820972706763040191119903119452488475683920935721453237349827741502094187141922679463374001976594103684033325858656751233496939966853087056082933684015918822878428904224973694950629622548427869569871527115592073451682573110657394087009458156919996550451146534511444592654836116403605798321426968780943776780453786730095241456823870567722181130017519188523521963760641500981991479441586654793110810552009369795629558305521346401060296025988178238133528145527948188741201193075545092217566964390220686931448927168049431675895943166014538788261108198197403765652185122039398965885896239467891076333460766375350943198413871947145793567431154812118601674649979051337685518036245881574911060269329351716835750026251357035146825139859361225348008422615257287245280528041073059268883566385528431238013142140021481594376408057592844653275066714247123633895187978032005545289109329993425491400459424231292688053957915818203441912064092917540140376005087738497565352641338680472523355273740527932601410861438607851912917670051722573055589912071783590448830534866809677159558000718056602870376319324228313305910505034474217326289762478175427970610718489186107012270314863578670624353617657980757807667303157998882523227764778491533229531302678506614036937772698918238187073705264633059026569319413893319499603530385439259743250114518316718200860198455593020706131739829352156655629593023297179428572353933715909856196064451286971624848122115726445422867485643120490884158458904927495109744544283713493966747635902158070209508173740142924148808507407083520631787128814463417832529515167672954041193903900219557116412747190630964809201684092458941971590466930230447509750028032251772302984643680236768570850075097965884750601417092817144873362496371007998208877408851811783871441062259491380488561365321134871393164713573499554831082359919067599619032604939750173839764099074799577859241820092675525734321667172151590857095007526657438097473117096253592398287906915367161029830626532378056175077135854719376749691469684758670802359287439326355388772925519830510839835473147069580576380514475117573846626923797099663629872083408879459711313200268264507775483294838531686364531517219565917727184469294320463578747054100732817667142614374100281565302997446652046398020971250254513508566481788845892115712159280728165730824124957701379871483261453058672325924956276546266548293243832766803636449338754217429350876116342578905531936413034601153395170640561544298882249518996834570825200915889174895742983973939191363213279705772481523985456983668859264753833893059808021002757363784723179635123929758244230487379755471538289639093268711943376482874501288535097921401026138455986125428462170185358919975475685187005901416586764999655968861525170308521069399344759389132593657831839326986081138442445528208861788618496298585066179476672036751395891319435004441942176510853047002241889705280244808382160098683018389818649370908034479826993088935013062838380324346594501107446308497198669847569111293038433171462354812563366106152774614923087440793030708514916740190690395288009216732499984305889997924641276653585911687097821990424631517248307963176066780091698572478008432855398332865219372243754166880434910723297096627776373086403401091913798939382281265588811424709964038090458157844001476251002529015611330715849129209462581733904070282548449850988311914016512126706469737108981993307521496104667226331560982327585277477944917647061067241056989948844977397204656360505661002544275514339382190551266425080441018114803476315393270289221469248738719919964048152752855692882071974277338667762824983453314010113694944647672038372695030454441886749843026494679500137153328918434868490014359291533791017141141695004958879040305269508756312837974921438951093973633275939625706771925434049454845877213739609148597984299575577093674367626700820324045691792245970171127716693966367363927870622510116433584201969033475502303520699334841860305737610842193248653219589758655045786956652620132558099306035735839380871648295662878084176529887864240880886153329338299340464658461803354358046924633424065807571365351749373122911717462941908455031152946772629490134021107983655608677904549993688745731421713356975188015321879664009573870535921417693237164013213025240126415464145898897836158951235999907400471809731395940967211143289544166357748673207797463318637130110268046164105539716066304591828781944927447110416030238112308296171738103433930853640459744048282338415896779014543002374412253471148680546871779598957573871834545667082101701814350133117908600238457778820859233681852814984868783427975302116021785528397103894524521628611049785081462216735759287216469579990180817320061866501396312763984965518940132087466876954368354291094402763306507533060138022740877405493634397009606059671578625336741642065407216602283788008926729233649176813958432137757489512870121865037730040940657607112829233294901781174499324049298077565361380245766118045313140752382581821933085474143584930285851335501960082449984477951666976362733719836540823445966150889557343810063145749399363591607099922491838173891928421725035806680424036690933853983099004096957575424123387134627917306380997341350884313510990289084492477863219464199250436944807360210718070399389626634566809308559656227651824760271149270897634193944716873205372735889900747644704105006127946962726905320116069612034612170399973194499904402961236285419639609177046618737589404413421964430296748807827644968960656147171183433474785809760246219802231111285547853247181051912167334811165356186561701158374929809565599289570140351359855274705558631275048129203947913297045932429497751129397886913559829408730383649348203172325101440704850082253665767557492391034917413779756989937079550429051740833460352378080430600254416115760283406138599466617333448685631536192928965970435989189320158039362664270119585492643805427531226792721547932715937647607993310445496358896400144693446458543477307739237808828582827210008737696067862698929471497149788277723082400308809581963857414892764898221426366429805245577132685980802401780078681436804689112742633186075436019696062567768118631417869549946648516112295289714724904186781213047865751716009261693313620179062115212088951096817276671008929491649312575517177418982245519693093128416765474188435994732028518771096260205068568279846212539071830345115667373521467107750431840424474099537892121899915985495170053292486038858072349783020157983726330086050046307618864903704972162518951365005690648404577368549303395092188938468333226813602379281010002093123661580505655400849317833482127115355318095692263455351342778402107978079044003205315037573540059229708433658712892400704859912747532909879833872703246095175625633872643174893544100051930573090445030606207215095221325487548413246576482450983770547316848594449386925440421595100251957739350116215623824097399801773091296508708762622190053811706129740948053605821315872641871732606903593941360091504436756719459828501227303127148501643545992128498405264440410286310661680365183655013700357430404828247319208241782983025819938592495161360273379329845305366115036754010623439333114497650431533516745044558861719575465917108153663652719536564552193872949070788497008797436445364366403195458428761796891636528834073648413255109961379479678390337577992881514848149471831582883239561518078584374691139184729627081857395985519856873680699288806890797936265494943573454275225559941580412187649645848352321985211518722446837725038672051157709260602876572995955813141343022730729658411260978071817578523749884641017924925805670434993760418737456985248321285774306283757358377781797843544471519226372300786024239555206323919840457122638460032301981299564008747321875912816248239160703130988736567280128079194942427624704021915215311622739074572846011414134193727255028748899300369666419813609538686576984180341260117778807648678305517584228174590095053674310086815117113178650139020441090304176884750886421148330170829066440683572737703912581801960798498921636311582500299595025756130895775091845050432493063734785549017668208405992480435346696639262164048324571799834327700771354355167922688140044033056004412964082346901233555050351559291055730081270677439406957623527710984164802050043403496559224860622163690936346584146669780645734015505260233789343942119880978821507843563223334393808410407165660758784606242237829118896035521727228088078858968219707078635280598052159774698180613257646437668332298941087837401072817013264774495500806064362191867645534103031087209852510284186294560816841346916465105140069012726143784647491307912655203857495042812781196687668073059932811493054852036761455038716906364738010861769910965199135678305624267031569013779906598460705686903905556373276867601454654816190885874759734967389944417341642812515523252433245887240362270437958635888856979201384303368854091980937814471175582026595884370667514477126459781498977743386113956153837800557949195374992054935961816103763229196935096706200402070077598973475098368186667909997481793742122052476465954939671146743709775955802865372445116071992673016828772865183826050531130735936061709543451462438026977462121978715718992063145536480213282704145194321438384025026242380439508357983133829601136546404819371269836921177239076552336695167916574309644447310975490610765676246259273103631442278262418084093111500760540108993314394673341582724731464432298536435906994335135020194016237344077390083229164812021223401931717784217105203486820327851326661509623555677464013649316133530856076360645552148976380691008254997782228145875999989417389867917841882629718817065348330451611611997805574402233950709306126034640417517545994404114778995181865948192278401441521857737440082675012367309479555201510716750404719485059496873277184309478668453457734770505997832065370304919221547588612313858917779439323388597750489649163652550893661051605097064071446478396294727007917973836541821716134738239346778484778339906048033585356523394198172786417925257653434794212884262476614498898839928545721415695434336334175124110144165912303353582396578053024031096209384321003607734806149078495768786030031666900733169075254886967490076311028713184851046654001223006266017349209570996562308269051690873671875559247382168371390033638541462882049531537604088507125384341424198390113306090278902324500192472509361901946773012497937556538949528375790444865567522038285137013877770666632641388798840378290476662591815648914007157317708802681896299752700264713433637605786504160631176954881156908371365492452209401000156794727243382711605499684837197686631875152825489705677792167471263759792692266987418598017468923060646562413964416411299213379097975179841825931544592847637783223718611025267029688155392417086748306303312323888411182892290720216748958601960774280613559994505542728143972960967492203728820599721698104397616270921752583735298193573927535193881182038233699391983901478364261747911054114085472468093288559332775311632342818240816805107674278642030819191157856543829619420165915806751864853434161564185884167869831891252213168402992823385705983822190541157392230825199652248079859623023680178782365948957398741677151262772361822576520413664084499546072764704974226037392686322868799515995286294695681089341531150563314693425296320516278640216614892212184732598319995016385536898128481550236634298501412465828309999428653069783085060427903409091164271147436286090587440864640383034921450898075141779080011736526416991396340058665269901258310633239361362660461272841307967895704917561727738198981957450587560321219904676864038404451417904905022114573891880988800065317211219861740433603460220719931972718308024403868203793884487238908025493338670828734362402916576628306655765345313668623433672118786091508898133806092760737014856989386996190782512286100082256519108423785362175065820130570512737032420597915763577335677637716099161894037694166704766152604473552939954040169982579077572012797223834435964643015031595953506558305025542037521156637471644018866518601789024102579224996632024474364561370388015651866174512848263117515861039916253159989683396050087638933903299010979152492827541485127668974745108241005375124044395801844650529409703623852278897069254937060139537921024413988619970718511883912094757782983024907642536596094610397176712351359836973315360472558187500767501850924684781399100199646940910183929186651047615972328557403585653929801363107873235207508782780532826938508321269230977646828085928501078628657330364085315980548771820218655014427826207761199786057953921219027827120466429853339642050564035630298248371590635803434630288430021148285129278309643471565633161018588547812687089537932655263101474113029031654102854238040064013379530863559956603049974377367736793814096316831270373588124436316623625001506317650692824510290420484850986921775306981612530321594065322577726517443581467278380327240498003889665706874936298340326310651727506292081632551650478561916139889847563622900301441869129114596950381738258877565444358593650931652218421648793351913538398901748996330149801333535020833269061537179262932170131027231417013653724196948383964412232214721859534535384370689871531972998260709809768150854527860357995947800512784626012442451098307158837569074416190094436821299295425744569733513889721617219759174326990402123280894103953597534643540620973783698995936940758658191939404516565127284811335140275211934973144255975725029489461861297914732339996591873301855753472244199385490546713519041076632768502589280039475084057270836749668072706485569501388614214569632733421000300048703219956559470938246946681316238472090511701742144941958909422805090402776110473404057808804374000901701614430425277974245084474481726812315950556780165798894313243568053958179547672324818080777247229891912794864184636560465566613003526616642079454601561148081799234881151323221134171129168020917310395289264935930838694508122474225280170542854013175930783318148739386048818064425456571401865898036207310417238550959233496446378849630481846239389228834361435934145662482058334380213183130830568993380587880868577631703834637673854845582826801009504223871599118954419280421476988211312063194216700106973167155064570378371952173157247624287311322789657609396757920785079960013815311962695114203141584288334690787823128820353229851680658466781095130666056676920372470673171405450482747088142400105079349285126354636559551436231541868819707605975019287271095783282258773667822491014129659310746033482568743904121891532968598209506310678497054402216805653191738941769651819063544590372264133732101499926493884655832987895877192382084570212608673981206649427645864449019948938797350704719825958120904230292644612253958602764892711121510900446403240184971815664279605363916297448710423362795573361444424914062362849207783323068049880963460280391668810666726120298486126874871772846232546125027785739200100785588337806679449831059431509471340179392597931746030089089762516317162825290447679127018529842306000381500875656362293200511094638866613819102596271324970463641645103202433777256430995059325055611077928681313640916153280165167548147499406886100886163286118853343046733605465974143743043940143811518594054203810495149089584989752825974884829055258655592168516333855758003220856180239124944102210193378869683222563667204926812490634001613913361618736104198255104220847745185642553938521667829845944826446790537561335537451173304616022554773407446887238461421825839191419076727149786776741196198801676375365204016813502709284741691366049028210957675203639280443858456447593448754437554643243613712037376997635555857848886234911281104505204267173768460714817174969154570643572558742823895197944355747431437950462554626708060651917202988718665734539783391743248581870796901338686144903553117732962794919479786463432957735964583057619320424943322135307120999700656875537218625798730363474013052163817317313575700889936880316296503756193972849640744247643023567341927706784511298855338843882729741309199593671114927175623113783154899071642353862655884836696869913165950637506268390848160293249217720829288002379657507636345557392905884395030277073211027838604857446346294211905915466627669176293985029559693317950059362544919363289779736250658715787618874678242586422708125215253588297870747817963945330217142570331381853621732319339617034677213997939847097725192906770018063964895860802217886944460006831927077082855968602393332417759095186941825609367913109045186963360345747681210409828746300040968554642647380550869379554893352920023483383267685481773062943820793642540701701440284251286107567392247923678461213468653314052633937334671111240632535925039557965340594361555643209830022060088904522742962100645231622844171713718887829733238388337582366524394704733144776451426063991868889411786734664123656807307315470829212850205163302723717758849416601996886771626116020427617165842891482012218792124351649711701551359353251265331388526631806421195838023576806695543243463401353712026779702717507300450790671454319905840133794093579379065998636105187649872995644725854455807517890946976436904468936658141656231392532276359134381533272656760021117457056847973249643235823834760619933900456446058376846770695051698234102304732647486425078420417799611372869062556090545924266486362195155048595886980824132604065044027938629956076635058091940396048452876865917958012999370929143604450017265904784733794534742388008695564068209603919472394238951108511601452541924660211734940994145105741214650015315856163438642489735262374964591029611883576207981732796861412912825186556937949729714410819796892836422180801906846313389020765512061676867719998573282554031770506891650669617388837505361832547342542001253600770965003727633448554441184021708593402022222424267828466466542806798406263431981569720465327605127873516911930832734262972763097066668209113588896482058108668405946749535851138923327305885118582374027950651829880820609781194886582999739496241388849456809348166582606606902648681891600369011917711717165395342866548898230072937271008771763908825428069916382868415133664712954947101360060582526355632770936796942456105188636387264746242381397028504054181625131327759204441887817764001448845523267684784021008445963112836850258775108887114532064139998615310399619486605984128654855012177446876777513302381250451862222499872703646715579548914720165595648322354073425054057314926280521849673784855696045008785768280208528574207463789789404345184970361422205431649224279201184170427487084010588627469834164527184153314534354792424176092061748679291120361571808866870861422982287967002568030044899542287386887533666585645475519591921127543814170837756585679121884811915539925852476108279263702452001336704279947703102676081778451287911688927747710454580874476048715610065353397421005500740076536089664665504197227440040628606841952161190238461284867739324013946581816122549205283807772928195401787677902945596264012116885167224751372473437556458463883366910904827100534052928470860708454536616379831584073794264289195440068137953810158088901202908463095926730415635846218745392166409096091267023765889268616149763898568386020705763811459168662177292433771653787882740735309256861763823752327429766532338495111480551178550822039396883686182919257955806289405594147144101708033924928323616589990219222005677017946111490751286237339302025738404617461092110154168764926384302858215935205672804155765824669536511672586546353561694798086740074848330379150566996838487352602677073296444432241691946752484651535607869746086953417377394480648469506763009011159404996184799703764120759335030294504777842269498810785856805476047063965877930054953913854262316885809123615085489892164935017214559734361590184659553417102946404849422268738686089491342641364057887741497736602592592007278416009791165379905484731752825746022677143170901083962031978446847144195553954677082196328244422009115676427367023128450193568700374777413995719536081786515649954716761953170139665057861197808696484719464771530855803278308025462456094921488570853681915689220981312389741240671724932817284894545654723512557796451440758348590033069977298753853819581315487567411938261323767086974988314704183787831238792633220380702420411274608172727059622123648867370616578591986559440853461013571512036041911459801762815645000017493222997500592560748873723744017771968867485506677647709439881653217536437394099071251323982583458062083506002298260095240294430285927681286283659558946882222724133810526480046049019374762001831909256956717166696892973311086924891658995124991887672197056051041184560123154304443955271830499462584831936806307742412745445993103352847803294552995521188966030948783996532517421638416688909566122937146516963627121475221748737116886014642158869525765278645727824119350504802477682177908391437436381491625529344376595461321964647285524200197201333135166787080527405927700430381619676890781849254253526030193934066783204878777144020290606877334909294211548596109920537253377557348279619264062004353360769390678587124802197752328214321628220259547359301239315983646822643414942786793592568869537892207085324214645966271186415663135397647881911518210595164021693308038435752539716505500649429145556680038644940850241945463243094647262579486090587604877893194405260597324689832168994185939941727993188787202445013169523873771002330781302000378326354988027654561924816277963425696638891326248878645675657003394368403224071757590708549408255176287091156253613096404052835617299334621217600250254856161032523647514864066766972501415767967879381111992821694485364859359362274954499553202764681860198690773908643712625265351066705510224807869730749809385509118180024968562033894015979610667361150580748215272380252009118435946945633890716509626251612555505341788573620231220633837094187465467712314594493226871044450082437360161145975595204957110437645461176267437746543265270205376874940893691030276884435096389383892686932227348645731774407223484334924302647619390898343547564969854804530117394334996519949276385652756008335363068370146666183939796098980583799899212535358678131559775820807915146737721269148990115945756722725360739120426687394552169986862065392144666551407776942945677104282851642409388087680403619097813164368603913846029284933833358966061884922739948835827396373024956876910733275894735495421850567070389065987138831084360573613170419731612006925654638134564202791939962550758638539252888127347898298192259862338535049058615765551112608249057698419730096322443445652099423847625497796161187659769555611652117890091141598341533942605672753390389209293023189491468817915343537567607522342533047754272606123878782483687131241145029521116707816559940572037079778207644319883224515959482594147459363340095391759664524664208401151537516982403806681321060959708363949268335581199240894029880299755714791104706371223532636154189811835440846186942012930059052352134030050599433483866521724890062662034840124051505929394577890307890663376613407171760702764572651427116618481955082392072851268522720700466645777404347211204815338203690365288511771018592201698775671944512793446800156337466728629589731900445906402639981828535459977041675762408208268308775203435691830004542187666610559876340123283310718385395019694828435362317331569194324054049302101398452631617617312853778356266728870016232380643298144791130339909238614920940543997321700765415339776875267594679956123028355371402649163288728488245766872527103631845623904704572083152866629844442376833560837323953135167434002087945636881352554740067991959557443822490903301576990429069531287566441789751610728756304248464733168328815402853840209014356817077515319831195435032465572802471505422204087616682020266645730773495018729850875812181439562443883548574823107134316569132891119318833416740745050542131748371156607148420130580666377836515496548597323512833331409932664234935616167634448261926991981096476572168937355289699947337769500732312433903637292634514529415862720822846038756909825938952241979767807211786606069812825575809025000856831079983201363864699865382079392807529780698731583596895678872665628712305159839648505410389646996316223865776463828984709587863438138449126073634261764659097810750904020066668954040336837279275249229330066397307074023099550627796938125516713283685404528104624371743987750567373204561791367516272022413896339260520752375597615707394220319098730877821487710962061681620575782573644934461747104056542507634716605011126478377690282601034744819898046375092666051554835928547469387676864542657978089777669096328515102298092110875839276290765669813236612273228196374435347333566497127098928418311105664888794565738199391451591120930206857347717662221413113116045929870603442785733020041755893798124968521166806580433916036318633649853663715500557208223324305587733935792227158037753884176670485102320353503263446957588318860695743399180921083863676089359142453838481985912109060906547119753833701096400325472443176976270471064301774350901679245580783950594714648576165945334981220211902647349764261908214447645406004795578282002722222436290127642611672745325669527398277809196641985396278288724701819717611919610542817949980143039538165245049190064296295224832172244318484630890787829104012860135239416231971808265740812387214900724420598994614419816507776525983979457955418525419743289347948535042763531777591430892479912423862103786479142665668629036199573175335387987444338456666539869914429278665640867239298169801297727081828107980926684719182907518742091427246765544495335329557913950236252967586705547819175646411777358838595755210307968676559103101726750867111606965084156639145217252393271551267065091718504532062184015148372474384149234332701235890173775411740057057501527109741223851913427690369346825652569105960819628104242581619898906941498837089028589466446684668328010772353738584687406941954159072264909701221861731747795221677764856485736894705670633734711775724546084271646822168873695320757583285454816976380825583491883224381648063285055221683806064055012739589556134256124642652873970237346238155699168656800998762526887003227577449107224809348366027492579029911976691191711486716929815843957653336412475472403887390821274726500560895050816575390464739028164644684460496207412860587729299534089952600029230343925635655883737771216185541371125084186157428661232450127458489273785503928168007703276144538679304319700508935903643711493005212316607107076800936669299980546842159861301771382234179202208169186332846868617185970107243437670192075940753074297016983664440561727422236413203606776721064024258485430304395707656846303249948838771520756994608075840713373777257433575838646972029926386408640167370450018099347727445205660384430542136153153075377677843415617457448882290321690509049386196691253769365677930911697402760114739880108921485735603742650429873258799420928308340039758520470649555879223147642010355299205187431327894057465307471773912749667053847177236562993090411478849320428870126157316957606435015326194674139157100802503036532802934335666779414854220621034515528835854049792056113034188395700523266957892446120982089773000826349601213316322795474426840243003343163089490328655880532466084104658877881558602492959481361770851882060378504304550395716193815945109443455033265515971988121597078688615126796173586523471106969995704040962218259450255197649591643544822298634239209627871305535350217483908920621275397416214107157557203595500074420135340639189678554067086831139019040109213095461334768324218572607564183636821433666793984398838425352635364509644005872386676077131460403716159119768902502811367181476610470010907325983567349466960359592734135021901748300614697296332456121813684502838755524119038731679872213422618152950085057219610323104687135925207090479726141049050552428145099362383257732206648245345589587072434521839962605002009288925036844824216566541668029034958306138592037083091465100775763999478500087912936094992084380224046759163256236951883487448715034770545113546034971533705369929892721199745015539722832113175815179734255669189512826487791607799719986149993411470613925439596369004043972579511633228987846547210403328525927789548850794682959984570402371876809768395250380334626451985955589525699435345334135482306070264703124638891828615338411934360237896832966554323703480228427864847404347082295883471631716539828418148617579512879565985824275196553109773532289929914126665090740535840507759570315704077942732392334871910126968846567558110094535276291111389087290154891443584546883364596231456737818626081046490145077609939487638646494213955407627454482929886797938667507817621116411438239997835666406556168587996211879167796927668652141928835044718350386382484389764077614669310529308136541138187702935310239280848553356290841756551650280672608439905194190010853179858208110124490124907118997185564651572798681615947590937483560605499752082479122768675225608160150054326962623410738119965679927859021009156404716978369140503383323603994247154056143009678117086993088588310170058823909409861685478349725687069916196830631122841951714255912270768934314062840517648624635473244647214545917637684742271171908935136412454380152722558670926579468265441119864576711018464687130823955576332790059480602599339165795563808691988983618386281032603475941475327026940929175902962760591723915892205501719306914275276263367778193034524198412289024973991680634586278849042076246050284806434691768386791649670507481820471762993407337895400263064332929945718599087998314577376505890386731063515072701005608371863617035314384651249270579658226191164694942598688898663503480186203045641168695600517557669374838162427963167968938453603295113645489297294414998338302560339451632010382894716654307875029806121876640156381475419227126685172322121278673011117198099673977431586757140918575826435472047524375351507955626469818601774056543900230714220939651431504803105794532745153133817128794106884789378308048257268116982381503213422029876080025204333154846013993357958971002865692984943371768177061094955236856928959847468356663926989232383308099907814360035284011522910383574640996656573374382801836217004520338137539265102987482453921123840256980595253383115433699149194770991726328124980514891507480841181027610930622679074629055389478164467648328150234069502483559348447029101622195048437659528657466912680058864088091309399742376785342333967740050706924856172068825926969928165725751225294696980589068951340087225376147596575230181167052456960400849716212949367969542400083330953060572779569348492644512356269910552361428755158670441594223017630815043331826751160262058558239102736716334511834622384109614862069384454213339524314510107736037907864557343273137161935762704140217628361295415912827293674615760267763533558099553377258698959330854083517679889973130301398540962786115054316071340809119445203546637333799828677448375919953037754010043943922052356431305392839860963740376829288095454088147058885024795118519421523216029081295305615830744738537824487247549920508595041209172993458646807030162019767232682718123735220225924737711398744465518193765547522235743499909396982564561751253230288248250787199103130450159110152142365510064284903347889372754383749249070434938308255147824589424239599805984925915727846209916375566839731818506354366406373375712301189223583976877692254105914960753577594485842021156956134421491896101827511260791125521262582800917535806050830971225669171358033821625065830291796179245070473021635451593181303567962884534872531901877493481441452720667788750894181372499137255135389810879730105876456321894804942107129856751363918599300752630007443806155513774746905335914351824193189528918665881539460459629723867396092816785554005140446210653834911367873838559639483327776732113836207146830018680601320526919139560367951744734077587084050053415532283796685504189225211523214527083549554194163974421447788758733985482069969970148370360285627315627624807536227173161742956367014808698762510872429639578335050596405231595636365573699464101674863541948582207524611185643741366004885586625781963700242732647487155684108030024294868322054648634372220369576308771079604810495105163422716004070511868355392475641156309820794448969157883757393566802573520729007648007329282913618552693942857716965781538941355387559623930637254282066759703810302589223230187336877636778402764817836097006188079628487527810004224757511998047045791492575275233245440908732015799884827017628355458022056358958759410649425746253238225074752731134103008705670006318065554616936147586289643170566373364775744287973284413677952098468448431855624065533336006044983252822760495678697857948486512614468592040005254784091591722325322011530746014195239459029594896902439055500722352168692734064126198234927658388590807003659071115981033551595769190626554720578431360870580269006450611291170678908888373494095207858453333892303789328777817269558798573992052680767821693447739764256461711157222094645653608028653798597544033061527731987650940482394832132624232435991464096757205176232277145247006428180707168897249786195647021104335449709279302952526270613514878554288171370666228690655896147755398102713084095270505947563979345668557405898164233905116119918682000800795410944295804924859247954710483722267987952124851999181076029871839214409780204910795670729981305943773890457974763094123674796479514088037839046266913650355161783089513061181283867622449503046761040720526906373883278117417012574610012552949906994822521189400072462056401876257486387787684167038934722297659591339857899422012848106663137620085428564056741073235792286384366588446572676274246657167018717501189275679220436632886788836005606775695403721368084025236114376508438568334136368318952281475441949297688078837387183416151467428415250182982048020702689471343050204444621284017186818819670637062230980971641177811549385354919184590910066443183989125019928559021653338443508167062661101072329389711398403926480924721691629711466549191563829836973332606697796373297037714517812799254818770977428482005889005962742799710544412484736918745905812864227175621439939223412606000032962744086402558519246573674262300846657850305958296365665457533893653016273830774324604188087662819414617273648734384695920201997447349192450614686742166478603529593965498407485844866880767205685117980776250090744343050749773381696413148059994361692305346931163421629221787708653455142203763234781012499376188140966151947221028248644198706016410797862781654394839454577444945222271247423386968376279324829551672677468745849865393794612095941008966532471896669762776868251786319208072963629530005627392635942585510029009605925139773353426709515163318587698484630395904740910910209088540183982013336422473382609907400465468628092463064407062045897308160598375412759916701899980197472503340167686730875422874092579801734216459621498526165619636741442254909429521178360147875530681774554082047820847242688119804656055483594337228153531839326535861326324698888904252966313536301190404808472913697122451749042425183202022059949920795169790997130612254445817321629416460964893764844905184474442845833140473091829069778424612877640850929614723068749998486193129410837736433785978304577768055814637559615623830976520025760617066863353672631409270243433131110735397967657673568099381036416560194994972119876865066716125276984136674204585527765799687644702993863103486851498074241650257530924114952779739134123513985895151893225534579270504280587351137320508215812727317954337915968956734562222811316522288596027665351031965337364222731821201016248966958933434048410019620923977237797833613498694270913836261485731306263179688734958560898384485900672048737124409308348470000647385467294780418195409704325441292373693469595008091076235041662337933619920579168002941187550765555098486965316097902207472416612882618093271771953271339528222602718207942529567841918222661094075537764586276607724509763828125998163281272558910884590870109030441554627173290022366943603977018740121772562902799128005507528811521542333373041040700653664599364699160292846982769923862135289686850595918990766333531255647870048831504988694630333707738849688958064421029050977909524120604673676012883500936794948488295306621959720227093866289731545282466850739145661384509734039484299243707949392853941366138270473026322836744398756174198021225421967334054127463637322368701452813401525908688969775111513465178019313352485994782655718825309342245164094555768774226209955758473206401880211198412259383089903565446149693336170323097410738584887275095623021322518508601333416813373649972196764122256812880108115134358293065719180583927104308236690788157000780273783955017601369699845302135836646273699506858252885602025448433775925726275818711748500128137199381637489804070020469628268373030766878268766361852262839990817297650877917094846467424008420809261985028071569821603469790229547561163203835170989451341991763230559089457149665106892879855280783470495048204139301234013314472738152522330839694283501043114540589002351207648899643463179447206938352410477489552327473994202818196666609847973429188843214808580788729871819803704054614065339760399004518300974508583070482752252735197952127310417700478335762000588104293672291256069737163846786502089244786226207666977994196284144593288998365971230105737575798584852723664840144265270728895388931980904772881888928773547070289481591685580240030007038432490981640887699856043313488378667488523829044993061543066144660110087574683530459442092984163906160312649689083343549538300530243576272516107575541409257164078301868060702518198380097184861831532363093366294943321093422286695519688552937079777602585951387137964940797687490636687073459284401304652888168333758705054044184504095094373093215722077865015092243128341247593282396790268842717566529615060835821365184227118063515897190490868912259816846584215500316106713246678123099678945811544711506690050977073380361229120326696992949737642803415196660938951326448855970067691453659255111927281730883216298594731176982154228176625549039069083035758808841389062462120882074785596705737920950245619749420784008901335455353359463097734144420815618717416901621632956894805720712809714539551846098173142074130794156854499170188860240328967627964311514801553463049172629347929979549361459000727687929799276141023970982559821053252877088343885070741130921692247282853036333326481201880938568949876922785137516571079003155184507578928985903369779749397208485901126005802758049813294120408153971574809357714081173627822675245035484598014567365505597125064767164944769493762908664616235882388099097890119262365069762848528170900325778416989338094632342275184979425224559651552581287098094475605121268409149945595467083402607884047473884155105324927203143360134579415066122562992924724036151404126603684334470231572992913220888223420594577417624167287517254468130474669288820683759072738929896037145942175536975915624734648778741750425246556000114494107472973323770784638011577785370208266742233989924913398521295732018555686781568486729886117185551819594374695870352910626281706291051029516583233537145449669820026932174921267586706126814405973200926821938331232284290772432163692193813908706288790375123675284523613731539377267210675642414841548825375515414067851269111965104213730147737685061254108366643978367473518985937099116456037702819932499638527447569599684469233191126995289214334843161220323351409211922951278616498940006962930226729410226842725813207815657664894391457269353417976549832010352109900626259001109213949474156745155181319467351732134512607567407786358986406004404460064667781538149301666892708339689914011265703792861387776142248405170551095271723304489439056617562483573498653966592975591699492348235195970392063378008009830483029142570917537682205663081677808871023853538536329984699375013073544918823930370733441445595177990572925702978308332204951682781618666700846784092321231830533732693122268098638410350135977862328635437958663188591859969745278728750331119432572759244706617408790739100823085805085036047133579085888567000012955354645610597615968703952306953195579043743531246920201487653882416096034058752301364167139996568895292760916785563773559407450659290886523475709994301167688035528874391900146940379522926789781838877715541200569261319087851228308313386116289461177335999708327532735287723244598084410250198626335821327827085512314386193383570445273720274821093132059550955525764687217761277470772345955274692074116239674395403790072239423603356700128765833955991876076626156913035975436266272622886853960210359247533755899742437750114812140149784172005047981006009745970074771787825425248336809978473145397532971951864574528529486591992289275175141382967105779270930956788434600635913530136057885961824254284674214215583331261808015306086275041699119475601214638995026291315187881122629142428175161701103110910988505793484606332304304151490489335824051713443742112860225011484329427525090490953139753636688502684211450885004320963536113145568500239557656630525127620100165451259605462498031550328508083988320647148519467692860630869156263045302098547005257267045304422935021417232810082430400372957266750134780478758973177857974506417266610956250669471940363593881858929822172927153249831897037042180149626695949899645567867803870976085416992265070644194685417234826965411887649738574471611107570273745142061367066418786264654674709216229025388941789935993762035183196370054373570999914255244504960544228842243277346250718498916828602864585237314819834284930103692493781842936729644671749883221310063747393040592396211788383662423403238997475177681936852958918228067830945550110597395405543068934083577008218099112575832169943931134082526081439418840716038063052541142906824655812654248323166628596049767321408692662559264854782486580624494701304410602691325814812401037075392152285956525913856757185947028548256238861178458956823319575689064565328964650149030726184090940660231504239785487933018002381349827627590399360971559534852444958410653236924106812688297884546192024253096721944015250713806388759170975989343036335352527731891052093646072742986919745282002541564230953159694930241293359948892436504075271418337707248618291851552740092452286060199298868467433875609354991773250687676055733440834774151489633780363043841569220027350456772737951843465875782131937122523695429113128733282515886951490864758032152607920878708224337032539029111685199718888760237964223057054797134913201102373911195706981222798184063341949065183912387538733724588725253000002428621803029178217457450600803941687861268976390934129084239491784167650950842137757856039393351976495262822280425368400131996731048969938332148443339918937698170829518330655193071979999225164426354994806194185372175085631222130280677435604470818022887664274831261558272368886774923876157767468836018572629275237579348546969056475793979189288390241422760804430559103696657499925568830623584039492412229522201951003248882951455001199445785023325214765728849550665846481404677828195280731077166844959019032436634316587616144243239275954164455761919614190314432443375954233238610472872392028214662612515933744552889747070463102027813615409716712774608724710454791831267346967198484355681798838835691627613155059606077345520962893053740587744667954185523818738907577650260792907079769583727268236327487903456261934114320903911749461600229783209320134511628052366228256547448024103895047030333756937568189075957948734051060137432839737212602829100853368874161371415858121405345256495472116330080341121586594306671567743698577376533047495826724761455248813052634126728677633233932555206348902246444707120029637986893124631053461040974399240766494190367318219021003611241364244786801405051270657860885320111428797061937995018979485648391235269588580682067874244218939855056816356224900752964495112630030782250360035421142733076953073078972243920890738257757655236448307544546378250559740566295067785510168682080368204552225069797069910461773454596412757214797600464041917781940146367008795407992275259383565707303003201483118780785614004250487476092307519928886446077944286194516982543530019288119516276189895050862335711404754883784600552637977209901240719008309439852098868055054225130083439074655461580526253510551404210440561163666737569133209850586400530389381311651014386730757553953649475450335812827322979224167280843826701177894323441590528189509705250648161366323846077528228397331785630751706298309843803960563216281240756252964700078295306161248403885698557788912496227288596947413413316986488837040528910740496075034533199800280554768310892023289581310565196743716167024235037278929329047914669683895580930404902014819897277279912038785879145324046706842133800646735041221643265478817204607923899467692798165398078878856199339448847526794062091413755393044343322244109154879266040954391974355146362591523502971755527339291941284712052004373666261837123923520266991501247899002563925874494102403461784147953933349834373692507732648536233239354473713245411949176628926394764305273467301203537330246500092434937373570622161805569327160326890827041968875121465635168798270843996775303340467981112209045701215728715934685988166552575291604965710231308410205314692684735359431737535333699237240559132748356948874306241557679477873289351282031172377414996516514473602249712810859461578574235458447816033049353942232074956738566343478701560712395592272734105834581503425801772715263709219755868072174527323879623530889592896728502988138635509065327050274622761977646252444914135988762394622920101911293546989255250304308291218279769631738640156560051698138816372412109893138181830307950754456946185582316355896664443479663729312781882050926635396404004489380663219840352789782434027223234306931926276190502716477494593810278873123400620712026592297302455509394749007715422191716045181593567548946334817180342263206705884322360689780085660667398084684875510443599887644818373718346140819227462365794758337845042927282069888237861799648519831580925298539470037146592106567625058914338831049924148421815733809769982100793499766486685461946393497140442227343245693638546857995751296761023883100403156584184872322345729209088323199443928902991270786362628390830710791512424318046197471895448789213274750675430379825703085334043379246239680287959696581884148192247260501577400344568040456943282321307721532157409396610131624168472573273689594835795850942116524856453727667142636683406823404189702558143372607517591093737534557093624027090314090739875510183441079148461025386392227534813140285955400550739676690356546285554216277717776521894427598480815174242495347205287125804595142870920924898490122798014453900910633670631640072867536620781727142566094054917518698644162940127576744929244872294308675717089907606970021467251381921248612673357761595966734225613397795904160845074196872605942034881903759724106602651231465729518025863078685041281131926758866122604460219106462342600987999380128181174805787989726524053311180949520347224511586309494512973042944124727487142338785220728172446377845673953129247601273693218791371415298438416355496232245338763222740100106104138057760999062218174136891588929116714827570274671138824045464392737313796474840690613456776235872919138157604942730214285087638380269876023564379414993976499150031597331508939437467236140094189509973913991989078879720979220119743312632540137198574172469976023472994505383507702735761210942802180030420010824841151541864058911067539918874563715056131663970661892403397152467976615327142343814548730364668140130113482433575065513286748670061245036853985664760084713268558919815399000414440163755700903519835144828786162565667237257436610082784790067057190232487991430410915030327129292471469780466486919889433020297538521061542974434673976132124879634787081859356244494710725424343460927565560191695090499098713292339797962469232491403157479538230744475254692547465562242291773613110498531333033544671711472822367412969802947514340036341046811649306913442080713069636431308121948956424674485417965920554606960164796327742432525422317837855409676993190230443171630729390255340127752396077309504701031488257674936689185123171415287088066551044399445325613273499653738004759919130137843483008913932830390714908708238753350575494624645934355916587838253380453274216191197439512399268181038256593976070342846485305281686761735112557472839157710561104094773339433999783567871716582760824639998345782954069317418595545969961741777034673469092613170602488492014041342596981327609883123405410154800311943935284506482973613195058605397524869389979424543167923623314182005544748041214198351975339645464574916142368134409688991448624396485098066914628076796511005769650617321438188506655648247052957962242438678648669250400038827395361237363371910691375453056610493235124156709410615990901693501378141128386942775158872254642770891199302026157345512830761963258092652185944017256980161971737478039975622035370705194232516835391704253698638516917326355012189131199146977156161939149470159917233461477355778979100079531139207159608334656467879089375138764272682607891728561317921638570121994318317233929336934821378189130050111605955003111614659279650392979353919889942017265216269712730247847692137347443091935380680058866156970061190094047082610443695859167214612674103524424132668169604381410484733722963947143717817724201984096929518193294260355923382494753826161738527416579989956694605286719517565657064573473064924008895786312064967126359234176381600976473869573860669599254802426331616292911770753282003205300677876312452545891110452228654581131261508419575591726152511283620894704217998177503113581416226067211100980105762897754893766848052568885994837893288118304787869378105496442409779436331152990371877321097663896531976753337043781357175412171599593705548959359213012337264983937230295666523670377267044269199791492895210087672274536468800457519656713123773940525133034893449831132363056322162745126415416998006002614109186456088710531667036636151469166110705644004728698811949976954581106007389107188292364512810729193867471801375211885631515318098933926789596067219489213943568243376250137131316771689598123661909347260164132361307057030998303579635797665219733504888224336190912614920679982589544448723417448625605993606210946340989001722319810554214938202707912420470652447490570219463974043063892888049878080960163152776365384281284090755735719424357893969109623378696897055644715558056979026352849188031408322255995718337678970964925206471753515789449900698925240717269270676252912352007873691016452761276111992646753008166711506965334292278690436931860452128427380789887059641700123463333870717425562059564828678543734606302265346031591066806458000406142635780493678830679493110903997613990064730042654800374416429600614959693959989991933957518846046504794174634398421686894724875050159898090804372795320166887329848913704216805206850745556895726995250453454657959504590112329181751855598732212223872556878124093044128483331190901685272205862223427134123950633264091906894449671376209268667311823030136853044611371453540882541686016541197367400562691523930967350136205720611303830501473356555137187338645847644952028897572774810299035456587727991525318196208719071358143883957717638920105242735855976171708383114521961340759881992278875864705900738977157960552285415260726340275283702955517442237661331823778629161268809240338027232584027293038793209964227927129633394109373467779037140647060431460084759769788554047214948779048777408932996311676262958081765431000807811248921094541844638608102157015767384474307225592171312658611377079620198412131261028024396405902687397808242320166314051847282924798533041127858216527668955861317230707016875367434148686370566795436476014824541035581684918184674596464061498108885478853286307399431495778711679272458712500549142766669872038904734664249088071577700711044560377877742816853671360759688507046129033441668561006718399888646067477013275293305306557676253862604621884086886367796448840494134233184766157764073638986677885504954599794341845428681335134362212751458571731861713981684413181800545114082858101889040273289385077989408963343946889798634468098807587189225215078539620641415767674545973010528206032276980582996112628308580101112252620731943340528662695129368897560167430578954160617873647377868979510040732057655952981469449707257401211522015564251663583989183996839227415385063696396304357610897110458749659677472700323739786525397346410532795665505509520774968724099942362390181564747093671055811100358608215824147626142974313536593632455783136547365214394855780473558654543896602584138302148085816352325034621768665235821582476166921677646473242473372365250162105532449792975450130427873564990264776352120581618703059290429773526180472287735274562486485887738707973028907901862231916282657675838401926819284004926106582498286219342635533029109522004041370752182193414003321622710858488117973157631047547293976143524082016729117062508447351854241410412974827220838691445220426569553729178177724180005495751603972507847177014892550319414946338869042070003141063929155837910819952261139326648788022091316108709165148914881681940336137176933199645292762375026459335376888491519466534528919999595130360793685726904333033548904627644089014400765847218679498380537907366403340651508550209805376364330494408994630474449130098828999386859448099652630333898344637177792576236607546551038144827488581384065136248427724035988434106781318539809238081629146119930153246762413713492018209245984307206306073248674238244362224608031675331631468836130352323998301991584627031966199640932005874250354158158760197173514024545005831468623268243469552683445008558677864075413472338039537798444852163905227483315768892607658348685097656422585523572244032538312984328702202393341335213065550319430402246021000271678005362124549975596682716013143437888997854639342120538006229792013330368927916018288926059954440101997192533823579944617558886738627218624129079837545326372043296210457377885160057649921870266928202452239544746666659763406914806584388530623000866480142383639493958434370458095674297161895989044106381926742322450924228263396913563346087135603479123010651670756737623125505656824805500303460488219192836085257680790461282930255864803344588190268805066229726034665743230848854081667870245131058370620556798471327369718902559133745591893103479175455964344596632392439765976742581874510135899637042183665532102065321644099406856644307281083271221669628063482469275896847695949821993156530657899101084534991896343003851983691310652089931207975757356737328338314755381940712717284389910797260610892444128810850379511448797051555906492406931967159729254602432563536307424716869705945405718131609145726616819261973552765336039658829103423738945888607560193096314023963550128649646953192079680943408894743472164733311837100396765254888556296567392821642714994208844020167194617250345570673001264745293457617404042287058628094314145293516202255835569364041875371512974883057824168022111920533945770748777177193006340337114641564667747960483825352941171370160364077582894912886356578242270959661179203140578686874316433558100588049419371054218060786422860041864848929933841092433973822441750929928344426516021605962001866330919780585338084329298532942849481058533031209227835476364999360218782062271655081869375626524414610488576452946989750044264812454198224370449772981037212020915279385225886480558121810708245493760664647003468099983102908785728157815348897221030077858247938403356557961931973314202673367130061207762967218922228593075967241896733938819647920136515654994085486257188227920423148111338811700577207578761835293885303214061187207218087928342180029837618733531455967786482458052084234675208264918980625909061190888865421455895392385073729575486179517065289732038102348634844857093037098759491597799939964564047026209560885263821458585630928840148822296475298083800848663812992866592749827254986212823758689126212971014126527265771216167086859868817905669712218346736808665709033935000869345464494615868631855198030475863667827389612734308662311714885780663766383035095923180185376852463916922078552777604564006005318737089457763755471465255012652168089907856237145172767553924216882304976903668874206823376136115604080060486711847693429834230349996289029945946153533295666807797306758330544668330725022751321185066072147688232899577786474316368848356875289634508008211237918481249864281303055180077583365863261511708150702139040674473615405788745114777499256498375075610467277339832310480583987842977764458159889211995088253276489913239513294445517461452190782730592823570279936300592642373060514377042446753836372458988786148079804393135131487137197753120756943843550195653053045846275106225084499603996853430082230484636213021346888455675421808049788277534281345051154635685452868535751095947961795381324555414381643313877916505440142910487855901896376634139372399094980436589274546203361517317648585017505724247595251191749115189526211544058525064330746730511725113342677664331160758595605011750028922572240132855012802655416547100550568889260183447489451214683350991891236786547614311444433922786508134677666616033293656024477020607971127186152832864962047976297751524112000829676503094306588400438425335210396148223932946556075027834433160617489487521370021989091857711553876192290374607994694263683542735694284340850502943723672095229641820852936502605723465085714637469486549064467146941260427092471420018724895726811443811131908663065373545782736926922706016813534230131586297168615816216148124836917084928706728567062453683753477673048319202584928327265530417264985025734417213112119243502763087511634608231350623417924398608038996207098591384389077101170677423080312687392881300032941290495821413040460187845805607643430090780140638693257633424383131301834024914275269794779412422362794470235246370748716196544385322688303696727869390615633172902416744920128379057653176128694432160442842282446084468524213576328466769733328732091418792664809254370558732101092600872074528100813473338170787356262026736130553408555912779208385349168482978536528825136319602676097419688906065538585309286720956042021086974874507812412151602282914995314893223271739588281151330249430106007610961828313352280969251902998226411431453789119254645689937309978971847994879147326115103717871445200000700675442502805907427223974692125962278768557041293705568920378843898377724533063046164686816421701418180057827523351088410987833995837233394616364429539743298489246690075382605648407899277310759516470322858116131327804633246340610587993506280072032848046323359960823646025946649056930361599373286327130968053260936930402883214175558814743877750464248190897494298114421096561001830389287750864980787375142790288238752910701636980073501973827113262092533463389307731319386261158715001271426121358946727360686007846566270293462195037041239684032691758114730295249201414834868165824813362618884485411791435183547179293092283726342125454053376344179476813673470127257785672073570741852168453235370911561192681006907857884990252292541284658042659955834916962596230422456028912339204665645197889396727041532251035587406877584389122762628330382146313940996601772971532695267423572550824975227448297346948976680527682724842122911881266278677558461423595471117527942420940809266415747797066794778962700239498888230488926980522214978923275188916213738125647430147411122831237982950450571846752646638318598987194477422423908199060489789761557865182940623838173613977871293029324961713383118253512791536041752890204345628148888351191268216079455529190934687346590472303437619269819792040232206169308435918655150083760836086083995700754905824396748675619443055991343030950222582938772509109192811685474176268257465424376137237488482368654407431513405616242677560841289913575224190443476205908692552399520902774513388469910078472947314495872703872209524107148928077007216740679286254338803937196353261129751213325950276158264955323223628139268132347629117410432425636995992548321098403188371230649804546353607913322082253726721993945540773190135454997339312147585879656015885241823916386567057140099952629328631708047979937890697592047525103119949742858016536526309200239375123613740737896554476334243420485119920215937153445271284156881736658281592265441817882477912590231794241426212002098713526621902534754900470550304427176951357046414925446124112108420650012828964974512236643051075159321624464709309792837328241949119364447884322012267037985936084317690205916995523848673453564284619867752353443302406350266073724365876332554526842097428630448603417168971628151481572242621114998550083428564039622957551179543873631497982946277973815144401483010576406802653913082723593462984573825761192145596015255764002834366402602866085239223728633877191109376265424499477793071844086751987401152669821706788419119367210761879528047645117527300724539492482692677431446972226570117556474991589423775977829835385674454274376284137976644212240041032682712994958139834379795619714066396280874597576569704172133375789210237560160261414765388356482480631490065088402750335676056194108133759170366371348930281449980480108929116306850037993321272061597404196897921034595065269056979108942760619050462946131225143739903680657721911514994410616462983122789455869503389491621892359860107410446440791161148096044544519262566244265214451058357719922697834601394319530062848039767670464209910488535107465307946295702058487476001188410212472622805158362757003777278738341846233961602688570722658204411376748904698251938397182813184914585644295629452788244770702449006610457637248641761752957403074766630059691415849586841279501356844857909041227908060467997547963261618405507383706706190557299468658481574751880310833743300375498146291515480934175516995013410928590247625774524895059477850564236744651860316264081115265464520255956501705151277577563989801276384382995635106334310295780799811683994182925109381222871421134897034693860132290293253727177236077309114429504167698945306929807417775781212111423315732700950484799199086119441932294944970092236104387076634076235231667624916907743558206378390323903156204467353311600602586748369708465179318676387724976618980484297586045712611486229826623342622557282761378033427915658133867943343641102657621863280582295356833781286747843682301821431205327583177787131925924983033275725935935594005421168457424945462243308297044523251929346096728683615608401173467434326735141968704456232957639605478470368962864648820567907566214035126522174080320710045901825543005402656298914756830280127434903105233546989124817395014034876359398091105837806832150382445158752645207272116435004824717704742821923398200241542012920944995252488946441429224856136841088490149339497722949253814600347500977592655338932293762887468790279217227293665884128177890599674740638168725072059209745196538882006542652091939510180619306780514564483684765942612660376422691974330830172748843340825553163291665949734991140841501779844508792441329567485685853683198790941400997582867012057692644671067552628591518067446720089669289940010717031798110897345431772442404328674471916971968090175570598344730404103260127666454330842575247548593224029411090248224047628328612349901599369521638883937851159924419201474692131084825069759898638959048265252311534490424752354157622631374918235148729841111526485075200799482091937729392921179078763486643270907232339004570060594766111530739891556719551174278454448832477816751591078804506711691864907335059658108352175124746201017618103054041369209742059449422380691374353282121623340615656604788121778512267202458306232538770986785861647532594655405805575745579545190169624910329141656940591008033471065555801040598039369422237156958219123819907291550645247233973050000001475107338875381692858480907956691934192170715374117024147110003677375421029856815630644799160164495787670235051158495593952067380893596591087675361070678420045375482249072110997258317481791409751480404529629710410644281847448842139481293940408744362770244872434100857160660695145278530286838319095332838641905418217683823406104293998928166823038325906677715210153834799908600800745932579143067823165821847442636790186372430155348755479698826468094854040586478883367454388895530819582922269652056875680939145794731675194688375757318902959402549898626509007076214759693983146078139222988068287579275723808590894977563863490881211029389034462534332595936947945349861606556106706852662061091282262167072949989766152019624715741347211606615514645711608026719769926479525746226730543528640022054951051114506586282223151049240521289424224434153635777127517361087854254712251303599546654167903297483045508189006018937435015711757829513596884007144883601564086977348290874013022473343387989380449895461140310413366303139718368447300906739589044709788181425185161597127499120353149474239972254919767641898797171371039393986350801925907896632335476059149521518178694809942068879650457570774877457734195865961951984354956919645396461737556707877238928365315690655589116862560285902083386181162060919834262395036613120189808835450105367833446391917528775833756086976536186980871772675296811826932218120093574540016236080172960584743930870938824523751029754899638685160141493086035358883109831361686738007568429443566296816024400470328539528220622094872950432101200585097058628216724124284380006919842326429557483086479881150469545006165799755181265999912677353955769058942208121567751101484974081545901594919290295800611946411743701951929377753523916207435258339863291509074128498062117840635212409024068327309049644033913410713491847546144642124560104558300487676257873809539325319676996610386516311946486216624415647520281121481201028529557458062421909221721898497377409689767110993024910806137185452635913770831252667462012715014238553166873961378822684464209755427434855253631065066623505069791344118167617331950920705390177547484560349829656810315307418582809280042639838888441307588222323368751034916601130625838428897920145787114451762329654833508957262306711396059281467304655277508519677903135714352590539125169715012276682571018072647162150275945449408112602065533954839102706504990551729447796929052432750393564214639820490118754845615834640959758534144553164761279351568715564889421771311171642588669386359860179490111357049680941772815795333050377933863054608416813145425665908575801460135193115748870214791790452133618018418390968251679054873725038761517526888976254389160592122778077494303466212951620499338760983076783539858993488598631264298273262359763812084151116471226802715599625697438863174937503470689325413652246373653526303970248333415445747149415474708150985665340254727038856815742330839182319760794576190363801616361144015061968847560883545641094221314832358609004212598738579997794091612079397249723885204870729624600343731651037598976367796999145564545635903446956240315171333561776508620662039740400196836017235574016107388656911367178532445097874951254615496125874646882218425014845687822719449814732593754420746835498411190776787736898444491359034045973620126658524596642436875170341397756063758195328882737886929114693440542868177630267464726701015869755621168806191599597869411546432095233154838903490273949195016534804670734004382889543898049930376932567934614578216371394545708076562361332338188463029838983692145494958968656286473930271459218703449325348729035349849898832350048356263149767987308367276155779120418768680623912836417198535774757720658844745123272733082004411583599488287635159012527339071773437809299158191779465458013067682271480180245363984832945678936550154061076293454543558259433779734613259937381750680769394522871776442927768840166093427931053003571611480364463693665376524196814511673662233110539295099296645837613664936414491245970648951952363201395150137752575955354196140831462872484154512266141791745963957747800849375056252884770029532122180083987199144923065978901546441542543395421641414464442634468645438103490211246684345212212615159816977839128012681185224619297804534476581546324434068536317903291914773661402507942283514416224686544520843284263703691766810392969622805903118496076604039208809422998159073114695335471717655412867274119449565005965816949847787493348118299938963594357065249233328230352166406732073451947257190069221831066544809416972362375795957714072180848882667921421435457765111505098696408788063438542490516626393419601661638424462902643511358642558053196750063850684153930523804253230563250171800821695469122096061390479114620610285810534573750850129717000824324461987106885972574281682344808264325134770507607878412786326816399497975487228817473302174277715415009037778715195876226773955878873423211426304073599967486263838113291662231814709292840287748778142924850967914581692146583032234480521558997691324541520766374410300537963601968513618275149755786224275487509960204062043041091445711544450444986865660842061701743576989298503325948786785258039520871274431874817242507621869792277280448732295341543679919065589087292521281042616512134301368086101816165432852338161372323740532617365769965252571799136710816912994306250785607547618585997091424084992272971534976222330216493696877319401133943578187832201828458597094253102298324523252514024639805764249290078403275527713314369634063865318841304211821000689508276189510390046435045288007306627656975134098277487879157901270937992499791280223209793436685803105731607228072173438627288101829616485267716551353918291135033842917040687269130332371243337643622946689650528169589694247264206259063361135362977243590701836006030705973855932933680922964244052744826168226258547292521384410812180286532432858018046884118436094618843080156165443460841872215438756401106026809358710808202386490882838384980935720388939252919015676788452803309359950386232462817086735253760839222781412761481589933170680314151585798253169540781523773957477352269881664144616352794005138193111197593542784348128632074315817118050871125940667047323866993645076049250889573631339884384040066318560108003946656161296793667837808849219144896657167750711324353676707382557564492835915817416888933219736879290863676855779037976728283320632767283975253009233846887219258912746741347697679310873776108382613911842201193032829098969742164644193198518014675930523653666417254838151496087097727206446537160076078856703270730277265217667264873497932076882521970779720033975797261982144568921858653702244761526541349275500913742042045082539241287962985643234647697252844689356378665052012889162238802220362011198883546546595410873820915444911481330164368932942770208283200541412007670680736870279938561226208960563202833185504325605034474888040982493332661203144514710844104451728943019921174499828351664538556891301598895045170865641308969897022875697774036623795684524263814511304958771881487395564342280699220367140551041107597983857310485940096918917160081356447937161459568007583412568070958854423722301368743178241932587805099290955870846024294982561641875636503578597990196771498832859238006618580547115325267745118351099335805071607743489550748441721983893201762476055621753001301217946841463673238241058054285334973010085314808656765425871244605948521688050467753200646411497360164202375727241435032918269065974943300950214929959394872785554330788256918983172858365856620004134608767849566073319737735070640291701265947152237388549030009388968632380859220073698840225542986200678871398256217092482878363059825145856653215492108676818594057732297643032930171684867724647451089525449990217620083568825423869076352899765438822405032645917307090171781121667682842151257962576452964318493019997781662208394349782577442629857775662010266083115834088906298501747087140735101688522954587894019583282931612257077820469662258535323496621608593631824459424693600461218810655717289783614145682384112571839836716591230808427398942015743780906620260324007535194764094836049763158309134246495309570014289878903533495438433267562923978190729751496209509805321899025440294329694634702781795699647420163833419593719513941231776570549115527878045322731207653030862596924692673502383460672259906308302958955587013242288492867255577909801112383581004141773739534617837951426331655410556652679352366196042102876543365519585705309848845849130095670958684645083804201609103892161428342355698628481156718842610766461225371067022442368440505526125691817155437107646669503208480309965239038379072483897078868564779440291287603052350302969257166193666757518165534579484191709453621104484926687935193595376380598366065907206498295450820475885948396756362662861809600208473512195166503728479307916304798025708372541568283324466458349432218190061098456724976080201993272562112407648448341778176956702079474315571257206104704193060673008940336455555903901865709098136387060324837241633037654572410864750899300375215663708025552612801791078802611541518780515990146084868657993662347673998743690495119970566735303051928789181118409820691071160039683769706457887110947360452629919596267168719393411565975266443709586426058111775501927006474669829899626067799454902579141034571355840616505695494950505810349752707542086278442055461497900787913158674120879836378331045875125297337096988489360896794199849714593661191687700055474531168278796196414307767814686231407017063899832635630495253371645057261935454674228711812715104943446378504604906251458944320654994649508282316236971515346750104489595340880531577739769551506436294346100859908752979713787898033904752121279449163739655401919592253722646546737760280668381966116221103132908164968784905493300250642191972073940243406124456002679038641997875533450708208421968300419705273207480881546884234562915604837650481968846912407687553701913932428431973761498814006218788465494914513413119858866357145230147457320698218173047005244434444636533686600916657294724961613701954255176451790245502983746882317961389392380161522040165126655786239339160825544180559350440745818606886546633546376696796271753846169182303943750654503245384994582323814289830279691394500965350497575760805635147932056239903059121739365168726288813731307237126093524240976641134581833477213260729128238558846615425232435496118088761660733019573587297111486599918836054919490796493028009350446829563333862267847818585070947194552471921517031574239774567432689858593533290706911951269013933339369441245010685174130707455393807900331732181050910219900505683172618549434936944104374410514174646421963647688548627422997566464548515156204224808699956935289107058538729989408810962691424442797684100866282019673035950477760587457890605648855482971266669969537939750593381371244627993938428359923219251783007782575326737152529428473751697990082738920466663659311743469185266757945687298992101571735439733187707462552963044301824571557796789051289670722779721719681087346299588189596542950770711314103013027965091615283043691464199942469333545013353487137972087533082189496308140252315275848250873987450744359527044226396434936130964592413110325641693593022675655643297629340670931157130490070068645323011231696897346593656031754533756832468733474323955753197713297785685337075764779377725707889286360959877758774090426177964657073825942678424026693013455555350319648042632686794723075210355768025243047494964602173212746830983808481042077640030445568834172803270051546606411429128037507820728557432410071897686833852171700691860414248521017948138648751138345659440200701663332201210283284716483798985372939485498249039783842688321809200772992733513197683870197160083622682348043546396326694420870365484839068570138431329245885309203185771653979915047671083942985973658465433816483267673845974652125500124785368339958311743016857232442262958982194383841730060987035195795922885108611860311380649348072701370335875126676604276370172561223046050170896261754504502625256100372806271612927510166105855231878164708436293106292003139116327583797805160441006046196471705450307715883413070629338206212270042934711727839827605511169819559956653013755614969642561568943839171425465943069771311173626846391952105126196041148234605198676584910648605342194024628055093609681837079635174172796198061288307490932677050106555074549940244219968175465626666338053421822622914309120840701670279662716417342085323866242298586922067255256381822951841426317012449242235568193687149798738630260627319152864389509498329245025339098318705824647789802046748800536269662229671950669026784855395129194881842033690513245622976464708134913935199398507822791925122355066500149180789207480162574757008425663117632486672326436992715828656732527715572761095954233758847403698680010727772498491510777254270230900053582593925065066970258038834634866788885299829878434741531807716786814368624291146339975018903983859166600889573384030980308302694113878091063524445977450669870096884254571327324361782883172956752177630097913984345568780003082175378682150290896570286769932862291929707780161947374822594949504583569628562553283952941523080680092919823567041111775211785984245088339185010175154583880573625045144795441297377535864495420262962594635804870771928709788413423919311012820061534130633637778743888318977471677563721003435698113188455717023635652120396253707745389763168201066016569267224244913145707501311006420139676323379964314501402496206723155896137060609409445303681110715277591553421883992686805898594785484706035362228271763002006563942656008672273179201981994417437025086240726623349188085691940894706500113104888512722007840169390117207063993219663441129655663499079016147467885080656825625308471676098997631087829913569403697729163960247191306607318624099182191802756940291549275036877761813163227444193790318894175726359490718406124382804173571990871797863897813771123675458216171559560491481357868622343825772320292435345441147129353251068418475024401189602504694695886721380646956338269477739406806666988153857779899779303720447346266580775444013454322622482387569063175452777329327900487677501767106264155041973574966369229319316935842348275552781624010564242200635596980146975587190394249270849173106910695239982447053959621631764387097364144585911634176458979788337237191729588820054664686599046602778467366544021282819441379667621382389589691148165493625197936677645318486283757890682815640272093768173087517431768231489770781809927956061535126094789050511978753358568699720794839762300917532784873510839898620413359181834389039485519724694013424718803544917092437093665410642668795346501476024251460404899347866733112329917753717968916199522324145760312414637247281490609880642541653220351019176690779918548841830727908118959050241037808213800445365847757203325405833284030469923859240633655351898579539808635527448806231131684403469906225345484374162466268451810432075855236830954577912469458285944797224258236113871657517737506510057964550624659077674674676421900373723144623839355397182626807888762829788732422530031190974490179121225603343783257660565444114227718409203231575076298197090388711984093975390687852344266403202282796384921141442422151482334157115922741612040961284270585121921343252977784806933725428209838496681913573659470828721048582877971827905988081232749114332564384614201023443905463409690467261697692516390672313782318445752333745133292562293366537639615615448806349543416763511708884550026524928763131573149869294746085523786375858906124705790052605498154130130555109337118422233083217662348584110572299552933690688760786304912372223883824949466270284607422464941573822780773063143195702213034906670180794871933202386152696368469946617098821121023018563079809258661139514475453521352511906491620182109908148671691994053248867145565632406162016075588956776074988016711803873872328835978131158625417975568032161693005631342259434690000371410856670548327148378644808116419179512284661052578187690039527060688108843676068233514564670127694401488364128615893785426361586585094041807583727119424572572649966005352896459273259219964848155467357027654332207685441601500705286075912632732916901459780539761677894480365208343832510828057832292220593396226124073925127309119462591447090993501625455639672870122181102268496603854512230282109331330049830603950982272768684966983468742751833056989942780232913330546003497999195931724524137624199624274431865229853069828249500296824098279930723345759426537146903990348941493167621077839545557270969930762144482945471785890222841991931656105253436116292558822247538532738971944395654227250882265560777043894682342360202654619713122084182050676139759541022296806956456182159978273181347654205948920269058280252191155957966376055215465707158490963175830198767064162668741909513706768322922841903736034279418509679118820821259538137123990818455110065640902314854793029124855035000364524922057168502145577955663361126489953132405744604720593156605448535386458806026623454047116760779574986955778417005792204503556472331284388393308335116560897470910632889985372028481378266409540979346421347831485895104708277469045948985079412470904511251662372104862188270288887899050944245300329166228936524978475883558836914707025559951565138349901017437501119456624766710142959247780500927280834416085547979008848491027898690183215252082908472729795106274826944979510825495007448062316382599121896925449423222266610441904089374323106318140722818325680616208306175084533149697452929979480344414892167126684820175684190815460044059362295096999405609567103276858644933865128074152493521556481917945591614139143770510322218976192894367416974854863085998249788669914844062700391187406045405691441105761253910954118008764621886218279367043705900556664657137637195310360373451253421454963672421688118084479646915224137426383533644502095880377601667341072625304411270282798078154799856237361470071382581193542585804717594433152527217854001429256900926548786603300430049947350217909319552369438548455667673192943450439120436065347012531209878347777692651648213768722154156813386037644367262346705898536653476805866712353919332489014065680217953131406296945334329217799418205483109916527453973207641051506525307083732646142402996468728423301105282306633621683443710268630843327873103563277952756398832751612820994715791220785732720706066362164465029333235963480833858855896696583568679041056529477502065143288469384573831744963785907293323134277385820514473008293630230093689765038781678872073308642222995290407131391785135646632801719014749810706206966430533642144778861017390089429380743564528187805043001376654003930275743443627746065265352489141008480098825902303077893048764288057628631215321285755517814017454982700418618777091572612251885263055958748706441602168773225190654319467964066016999887603932657742513086734230578356002402663525897779567823013012693803078406417901979220859086710269800937961483673762745351786634650533179459968911615888963862319719329108977808386359615368992334710901962247269936525495125028006175160296441548161927800864809470918896713930368341529172402692026202802424847412180208232905958710046344605455164856308316586071104989260783651990440344488965027374101173169856282390126269110902347105161589847714325340958292559406613800057251627564584699948629153428239046205555666891506674909686320506215925850121048578253081582151473168637744092344054246145038224101748162936300637052704250330493307941394612252954895908695510489651938789116946313023517712792069759488670717795954213343069703873110395669753367282312059520055538686673383017170367493077332847802998379011635250632872163069154164031251747328893136992551004825419345509502507635233283659509394049318597178014491169584433570915451181380920250489271377756658786210573170238695935058813480569001704628842397869086103293315597760052760471871353717644728233649879547197787459564428379497926860840831437642007779349606350322518835248654659210791749261888105903607232771953614485282957625730573962866819804964600770604988566597711631560991646079170258074145508501717582131864612651378414373843821365521175087564415215428946975154634924203898094732588176099256934540451254702487126761295934811723010214098378740107321549977153869945778634538938651312405484888331514909922010370242392163230600133968143613009652335107517776767433990971465257395061792449528543859540097102800580885210511410172154019154168965885611568400584016717071405240454817468441445141820900998993201450107550262834562232024699262162329890415200542066509783442839113753065310271247129651315088106656465984198007584136778561166088835909477258536397760828121211654599152716119181827084912530675367039252185258099262585577928769709573700883102389506673018428122053996216180478802340904068657153182484851720159690257563431118475817754528209360444421497536419399663639072419823175747900131820925245060412286928026882999027268559439773462246455519657329758701660954371664327319510623020899605722597886518880351682419811026297474388132274875982855914940270436498990592227318073649179423368634044462668537638130713715082098428062551760450810698772588972758246579710345684449902615274335485725813246590194913525421212098697426710339139496641152652499624918412276904584198776788368775250558007766690656603585673285495947848120083695541925196836875317148118480532167730211171723267190390678381407400494053999851646232744836956049151625388038543864307487681138906873543012730522574450109179454396047920489808187531724629833660425600251977250285721030462102806174166116625422851610615168616115733153825562707321361294966847758556157464876215771663847557943300551195702267346646061451686293009568011903379292041942774208273171507630209475694077410892903933501089244804153161788527514726621522460340940911297104445107279992830843956038072434030416316488657313689107841306781589566607086541997850884888548504360894784911876942864496020666530683624193402092779713457058236527628712785538431187968460045091955657558968614845822242280971998889368511544572974852293600914096897461603316699994067917259101997103530584893340463117647234192444854946200813263712665517677799343384687355593155847721047380888074396976649073395184721193842676978369676993001770015808604425071089545051258111193766488363190265056094578361352665163151603900082255751163763947820898097224972282311247585463213420645619600865805886659225542499098365303789355250159148941808157822392821446540062552404205329238981106033347038902641518781201226802787697699326927908944255044592485167644178408928676599440755662390903221355973686988246062343735686726500360765347138086193769604093339362805361640174545905633677218296494622733421767508721631147742715708607595821224670294384585873076981504729442678019949811122173720822794173545947945659424882992657707872505236219284803228843344163406800961826806360409586089976697584191990465165355925661567990037678498486140942274872807831483954724533782823655515761098673908615199607571108150487665708978602354951487849105302219078194150638415225724550837215716942203989128173249259245550140288095711507031848436467846072701792357173617091541860224103994698815226215948598290512957766544908878228160233587365762918270989725924970419052269647063935808771771587893985663873289351239070284350984826548733090829051925729139598050092976203067925709611933824824590293369758780286347459224191181654607723360777824237800461707223352979306792137829789705793011369771995883312063428971501444203649575458491299167184758537392570188760306203106421924754415403320802999847688066151815458848415107627158793893845447007843262393330995194276124691237827555890917826875959866735786512188519029176685291665736699395020538450024609171591989930509392984322413476199827168731110044114002408921597354420214999781502463058789456570677526754665326341103856453736410905747992142983643172597894446922052725705017724467828790740343030183733503994142004852652539074621920521257220359541020096296340296314642841259776776294881543441084996644643781865943153918197051686078832880057967125683745922035211831081883204788632503893747681756210365287456028217667843621965366563425604247940566833766924036044308751446927456695774702650234900456640665527848568278973835174438988401241193760031136573469044512850487710766216307876817930809850712792699088587847941001098027099320017614219896645429034285614557027384682392772199098813347715029352702634063308106386494427220039293814051477918863025638001424820582849434140161623634281657160136168833076005192817172029684008417710089689883708006028550921600501901607046695927608606309356658490492055659140085440302483120671342516599744652494291203392174543739107600316209238834137626441288515781549441047954359666900755538251041156268962029679365180921003295147116708654279966751782959763346227089078554998772498707625929426771311462182091547975940490373252461063098913836252867578285517638757065778747791840980741430653550746289242579323324029253924265733217389108704994867369356095627307069048312485133732020317290622907494511380667125738154512645021992031596710606385606382399433459868159543454934335974719595522453247299890331070475408020243872841285478478514642453997677003680681327868902183461568353260001654691962348863584892995617181572640740280824416702399545917406740027852329290987982040693701361319329119513609727880316318398370447797560981781760336491731866579717569458318489784157439916004080503645750568558025255197414498283243973965804126722111484695316832410729873105049616425631315336885132849455104893604065692990984728620796894830705419120424298645915666874320007975708329592291387421098386478036065173469436299220016462254464956280390473274483424612789626774773396678688102103209122387573214409722621499184765812324411717859991118420584703632542210546210913586773384049308377476212016483149675867942977420833712885129225574840796494570528092987564187086591381026096300309344928823910655304186305629962436463373573068008018479511615476561858213091316893382469130267148320548855635160590611706859769013533702612441898830380938306213334082415588831075665560573422936011584199901733097766763580705889338234838089060981791199180118699493941886601880828016722882664571867463193211241959748800631260483832341113778999000318912187907342524282964429943680449501630536720953049599458695485147126402850236418965282143411418683977341987627294662619838365175206357408036367481784076884744151944609467902671596863949268041181682977000996938173719188660984059194270390927196618741366285685548192055501407139282759494180889427479272784324749700906549580934186624636273984876813709865709772962105273371722986561086603931413427941211493844408020981740482363676553850952013196224905503795502300810974275623641708503433146658542505857147086045234600116318464375345625929090993065402665696224121318188276549256112397998644097508443166460441214529289259485398794073829556975279787112306299831775799990916643633550683309124616018377886235006998943399963724609843175857851670623441115679971045517861309037844492818599276977568609026442217556743020752946267788156369335204770208056285102838479078287623716399773257875986120794594843995167642031631902433851135669196190370087301369966196175746783173064818881620896898815828196278296382032784185266021388523644186151925602679979170446851146283282534709360444356590290754135742944679932204843375394282352792871011102018072898352652759459566588130295770765639421680631302065827235389398553346040347926631176864823576701228227482516144535033145573395556914761578824074900546458196949907632231189876505185458311971928932780720804797631875388443087256234762473848105019296585133457166882008604967811784751291963247927739127042323907398832382223788485708334085532747771689202414589723057361936293271764822413476212133497312192789294110390205084467580298382610714485119024446010721269217611664680500715094198621727418800886819778320330244098703069896995699885115274571298892830743534366377450007842866987614602750430052794391446616437078692517256818059915580368660645394664893212466575874503323222997522165281472075512372060803332336817028878065189426598420651633809937193618874863977228748052692242356060499754681500429314130284991251218780538462229369443002012979174099669999167444934042034134674589147528303002291284867238058298670350999773182017459420262638685624234040905955674937857906041951922414745034507684145650772846585246209447392005417886990962343651127567225591002195939658381650396673558714451132297870438679116515945583620026271173231359880803764652765495832405251385972844511916255589520017713131677281669869000563848751965028046913701011839818503099338979757185293262067512061830496977396029099547569169878717070335184933772215666267216364822506289526837525280946973942657210421580231446665887962648945283864836343805812208990090970723725345643430352636876135059347805213002873432269793723663063205880895728751001257847118294826785032391631514941517811714983651315959654162873280395076568142466408014626312885453061127224144995639713490795448071454096633588040297923908889453364982752325258637009709808181191997176946798840796813407992904828128194688524812916816620185778212057745885153985040223352290221513013121877602396544176845531606234565587549231276912624989139815985484697294628688729778619342232352627798532868364600060032930161475425492734285503981984936039616773477923266780502561552640000815833900385893754697267687468303733832023680987611101479038864316018794832777315347316183087876021151661509777259643378950336603747200468628802503308727640207509509290080044538423903243398287289695652411337331812404756864569696471791134852971902851763968494257669652670026138045618435977393151950936210098415458373524647264463086732973510957031658435403284430561911001983520666383646127059013051351957931144801012571146831153253291392875996244105078205073834361860915684128728096822530294345357567167570281515725011705552462108816185911104730120165762524753495025331499183959563817462409248486735202602132053156378764676860708935826082855301490432922317791118031892075686775486611659476767990804550879855699514188063259867788064408366401547309171440391351130611766466563339886950975674934499264668281273205299461704249189638427188495776149824097261589484502987928047094549512424137908123934367624524352562426570819624387194005078957501247263663986908175446507101479779365949367539338023650931229849206880903447066932880026346965659824466789661032325489983480431731175194168444715780130752422077123211389466946863646992230052033994677434783356604109215583450886605642529182728522283080789446025193699053852325514195393284762559143128820423657600396106176055256099260553972647730322105579932107473969915915252961825200847809981532114674049184280957898003816808738487630076075089163708765457773068856167005922914437877404010158252388130270300750985839295852784866414760801208692379322920087530257540089504444630813441825767333792059872805567058845366334045765256611737456160612578214998362317598451957504405194573909005873294892121637744185911174468579143105227727616981551528238954753873147210515836777853320686026360214905155551676973693780593629626391509987863617309106659210871809382922665706318892018377629836798556813008970022790954169758720315368762501551109221865033923521093011097365748715408221071998475747463970647896145495280788787144164026518774781840034188687746840256275759982658239111218011788133278711529229475286694746395571549646287419216069470934107942904965204684143435401834100037413432650250894278564160583652215461669635438548694620307217430681659392025500851032539278074147490352033362302469310995581869908413374920147086840329447223195990163542930957831405308269057613070093467647200081879459404434712647944296305556257245100562128501629660240263262351041642456258218246176314443892302228054358567847122832870794146624328834141076067917642604011409014914483592249508188206440766471827824130133318886180300086894624349565617688905430149407215172057018393581315921982456782812141065745215117433732635886468696821360130165976241182893776384257964929373225439886755522513722107569392884737641091706187847740531485713634820447072654229904365737133145378418067117926084857404603861048971036821725924438539414942461795265687717161341857695581516484151242804627589948058674024406446498936129918826066961190292678980997016867899397408193559171292337101843234599664738971424335584971158501126252746446213686434782614555021175538584203695489215043247369203181855040124651358906692014328746102588596706865477267303925774121555170279312844583774485672861782516346755785362481868829298429987139913119145611301992945090755834210130323353809499731646822810723673353109873536108329413464271470029299381179892284732515066923850234549128571947584043364847564379882000875883773854299827644324872724613917452555201185195178466673860857491865633195522029037162811194247608177924226447183528910160323757084836477440367497386363808159492255899310318125056924523802787663570821479560790232594942794675895087312279402864785451933376443204613861042590133603973190680107190504617083378490296391555759345025649360636124989663326873307001324455026337735268812594440386100688667979803219188336187366955936524689031155575725013531701103138375713085122103854093138871980644066244164376184091914383677936179733407711194759274220549700619942833198837770353360215774706107613775510458568413532660090039434453471198422569266252294292457423393094669233955449844725712263695283118407627010430688249116605482524578328151909504072525771529960558742520458135417636745765538864237091861962260770181349514399642281376271992937050894681181926777214837924016066786390872169945989138985004675450361139374753940715014578269851903905040375652117907336010790915349574270679885198196629507782169222276352357259489102215099564171650568252595693871981177005579849863200637165586228975564323045119900586182352787746834254525011477453037599783091215413950517745860785005437604441841076581305119619779513022075486842362322846016663978322102708290995948524205537998899899179377754359880689172101905908384252359092261580028597027286725780468200158950014196968329388005926109660296157300691982143184638264579102813072695498361697930928938556495734752935540894597255550400243640098280667296998053263851308875062826332530480826232107611008325993545791073834538829681333202834078558605977919740116372658106504671278412207033081045218569786238728418590373118062049484492738988978623703422058842236008694371796769789776314930913933638908524261165010661439533247087924508053321072054189195533192410529034762731365306567037149821491983706699986732149945000589635934915881430689608829757286264427716296566750563506701800689613435067340904399242735435600974972602624693520420436112044428456490518168771848427901614419361717017983872066662318148320216750403870442573506946487074470230302008991968553239309355246792117188741645916901317812436181550401917744653147234605211238077192488586092861213689002860278127762578208557462030415058892922312451608493460816085499286487007827472510160120786983199248566915626578116518033834533464651320546512914497813730014673567971939507423097074222532500553950391796146069892270789217340412266161844094832546591217845495767421309453217955599623261537864115404482514216644494906340587479427709670183580957303672026784404038085525765926801889770233403167359428142564163376678239519289574055546134926279394420855420510453625424339652699920522581252136143205059836299909773001232622899554065104015039678895671739741277679336022838895350659281611243326475345224215178663818618722265074390163877630177217107994708139969774834173144585331147856923277184368269191043386975666184626658180365765896483413390462915337285517394127851268919038823910839166708331402271107254894946140269092470614923571575582237806261278224362699728429070522708604855796840936730518740137524654702181534563047410558345381438598879688177264719966772325016809119246651284848383327086008115722366612871670309268801467881411646002259136756593780751425872591425385210604681086251313141754499937052259990892089307512307060705592632958282399199348230991132130132890969377850382067300868594281454810883112431466623608413125440517875211788887719651894197490038047772430769824133134965822478949366018166615770876910419815098913238387595950974152104686167873061391780856390953026179255972025009766969207653191111077035384739202973397720344820419749595294729173431368879029662929408781198358244773550982431339727025349504562226642944666747069093020704265569855565347061590756402420779944718347829858682738595721006005058914501535089659773441680701155378445716730874497459342138912895041991186043356455619826629623019320930581857004460745018749718062365596458527856057146382747411080681428095493854278433817081955966264673493834728987067482499523729957171015105911505568787084999515506919631430689193660894412151495506437130564528809105252867651344829156640546956717701816176758161243382021586826118761418682148430938428978774415276499177933109652407858192983685380799689439389973950868087359786166912505778356750798380712135037813136370879892512006590280500006705343292941774191170007857612971630259925508574185125976853520653189388336919027046810877632943777634737550590607837311001988156524747182738610293169975893735564144960415985649043137775323547429635072525977159259008986123176524637025222412693480316826895714938791889375201615385855768250571778977917390462648825805674216780241964975459190353673287859619215144928396262105917860814966345704090221904114082816459697402429137969083520736678573719236807304801429215800042471024584306121127925059069716006646783345694400026326146585339094118917320300767818301026365274985497535728706563924549815865503166200396398858617418475731075221595933917420079530083661182683502412706369828252558173406804635169384844498413518003573169313983651629890769904383724076044499088064618757051508319635544568889139284043474107702143080253711601147912544916772172544808888241737736988702264579139379032732467033177672610283825373072318424489839951976749005087630550578005553539046375352182480318893737571382536161857779308603316899443016034662857032474710997320496304823147676221608492778906511446505224185503902384028098887932608758535908543011070149698615184020602345129163860821350981052832378293436878673887146511019821860004222128399273208811340949324644344421118160364898467069459230109264498578747406841446095492393613184741327851559326096894829578753485102419259947736444052867412857094409748387483311002215506267640818804274848091069246518639409053253849205407163972085057878585429358749473287419056478716919268731753589993973113937322922342656236466225178649816543957726448517286914578843935102473284042021732365331898174662302842058418126753856638155872957164625610069850613393418830784662427551899833417501919094893793361342387433704915885974493774606835825766895721168749601071502900000257521491776673947812600341960851195221631683795716875178308033882469540590175540770185466637613253672874465370152639642647276022249629886822145268603642291236617978165869514611234831204930746005970969663744163880083138761981372239967406554482247383536115760329889625218698552069720813528800663109679492361312474861471459373344939810945314052563903732161031850173659827602279406217547797565772310946908981677067046188826397089468219546558456946501188994350445669227023725799318412862885771760435141432511827766203109154659650655422112572666323762406516560726607002570802298486868262627852794739223095201228609385750617580544469467259354695569610768026037151301355471120170919641978860006491898692245712718752073690042795107114505547858130839192213168355167817598921173227303037548947519273192247223771064981335491265868751440299996973048688960061657482421106746659072730316777415046761453004396246680487689141771851965619857179374301066318075621665743343337135733680015925618211199756107012583179773810456182672515507528827274963546381657748822009647377724322154494215738715933562453187238285170109671275930295766318974226388934222699417496639830835780023947610802253417854456432815985638938357281038844309337948971137077602490642907703534760964054822928281396489035952444638742141436795044510463048241036357041542423788893582639036805193549589055993514476614900009481849643616881247425788440587639559726538054654576172999607600307044809003710780862022832468973379631076642917788200183034985857818367804711285133966337785879252015831885559866759012555439191615753246592950843044073197520900871448172636174828366931062575198128918264097256202281534866681059782489630196755546165421325530892360185625361709429653330520298120673148518420821308415364472439034864053847664554710433743493214485448385726451599377723504192301910372665763807754420833042675442096491945989499717438963490784952822183972007694503315584886596211552186297344132872123397918749909899109137794594946080100734938662964248753717505383128597418615264972238114036195731923723412999318107985069707107908595217329709987158607545225890318277356417234397290519335037952674180444028378911916808782124719560394186738761935645834105813487607891239663129171639546269334405729944094577976610154097763354817444305384079995918108285218758251472835265075681995623901142159278455911243339642866060953767742290905826560866892228514090136563179364054868057608526300771596349259493756986151165703431668759180152799983972404053043354122658021888257018913205013182765873778682105017417386677387306135182205388101667623713602544605209165069431682271718649765972750494406432882879491996382923593583446569089135053703250460550302215957806545682126201264569967960364711374602067780341011000732509404951877263720687643095279073366182514923360185771133992357266699242828074482218336499810475381711310440369295630032932911035740927392109582576515652728645478769211798359660829396190867704760140536121936943065744827593432008424830722646145914477576391135994386139717704205543844602937312195175853466500475498726986912960496624731735610115029772361227812130558180097347659796343203365204070088356169323983970032826535295068169102878690995672003550670617438564827921589030307007301769728993664998519022054580527143174168872889423152074495143493495102165595709218382290898641882666451734477960841004883235301950871963697763264529708118912599892128506439799897187777895881989405795364081948779571720604393231500588652410142144299232806210734379075611254847061554255017940490290857257279794442337348897232972833639852013595297345880135763397875818757837152959944985971328522820872107768741336129460340783501265866332504705330392346506646883194369437630085227093976181859222580653905269015024602319539030704314499081915396794545442425435698074514285847787095416274766018180514780872111111000158027649638215365360759596630209862885223433752568827746640245038398894958935587041890130178353431250808705696461507114771215523109220912429411722549458101296185943987297153944515523369026298044494287394862665055645624524462296526709651828316533121008266150035842412936098928062327689140708290314765313704174912317946323205195958318394295939173546524652445544008259353310742474639773473195688419109979907287667487040863253126148755908031294821652791841057403082880791186980132372899220518001549989228628458073822231099324532917291633532608574242782243431573788452320521644997117695956614032233713994205256704217904152350573760078534202545874345346091298339864696402402293115763036176159750933227884848228060619553553041298889146870084406598705536398048415602052908114577131868453869541227729988617021005853607094930283966472421176451384382932863601537954594087690965345333188037971199497992577429148618299739089494640120618429035620753905569430608727934761727110855755802600261792947588473414667010324703745950116546439509043070127631365124758363870944400937143490571400382849874775023915352358457829049576874482994323226644865540818010939191127810704788344784884566964147641513718370680235935310571309228180869917989523377692096830080511913140105458960101321948255514826094479134411160196834210473212086573869747257906868122313822557985593354607112882971578951753432658463229237345786752349140834070284407984691221789049282901870777228652613533320155208663513482946842590112490381182469447441442495861748300120448210187895384655417017865766519918933923627498096646000169942205553692620792694733615735750398845270891818585734861749677927426954127710976145441540197504990942460959285327553480795707807031205774543288392397775126790349110861153985556506337468225023020283022742339225685703904151745520085666726776548837037892437152037041967321690158984086643315898286922425976235140258475072084508543655241311243354496894143384183469890218513757409225956425087332984194120395416822559350410733008288531689170778163756028189072461480403300917798941211438842680374638485195189669613619708060326836250887911064204344146575531035654883882468263815182241060202451292374328419576202881177512100449506898493970171059574002481665037314382092059036169631631003677688756519397316088786872016207298921195319970256022990332633151882527253945702511712581907607857386934571208371997815641275200256895963973885115107607557599796399370709676359048693221374431066414213763303377533469719142340808644411690846924844485896243217126947541958859742298734647323765133744714789786482608747667753611129437124000823957832042075155443826911669404025534549050773023496045560590620407401438846542967767153449595528774081841586883325486896672005375907373864851845925642115851662209029682587145088957836166308752216820059642669888331509668337449035905984200512007902327155935738719706133991551147262985107319485431909545107443828101563357447973112468127964037302030657356683507031728647311138473944745190471685801853003159425095081706873371392965367868057856346077050133436368096200792749446153226538014218478485053086722748757365585747432881086205005662602902351179329581408190337005015447263661357343864455442107462899074887747519056674888999497853468692923660680904955234223658239435771642274400627493744881412663246936838194617257279285385088871150732748474393565994901105510781838597258115634040524793478979128430609354408429035278351910732421299039479826286435783286497235488988611758252365580278930701021362017992403745152089538551794896994745159343004220984167152654942404931717916266651764238783658472214246587342614876403068577176429921397515713624509546979046831451642055306166899579332596192800612167945439333282216483394342098817992929439193815925174578515914445630777535762989741986272334478449957193688285708208423318943072706072965191453551798871288054237197458617771635429482280193829417304028451418824346176986850889420703575703551572548980606331123658087174404892840286842615182834022552975942624636852238483811045279777064271449663101521142015066292516145008148693349957291527524026286079274024642496382277987146648564098528555870474840569818700783860338206673311451135965655692233908699756177987079571162001650240663927592414046514526527813853782419242102055003299858602072307203281243440272582106243931995332208627507422530977654445406833998478685606470931315455443314764719887889933815985939248149863391184559588117923282876153265042006881575831583706301912003062022778732182239162482758019004273543245042502477184337721870086201403577757514636180063387959244875882516092841373951554053558721490803489361970482915929603911748844982748611411819195678425927728502488618319900784852841251143367261256940251660392943992580318880630101539926799632015694748284292394223844824627517959297187337809498994899648110685508697974872415942876240317702711373205581601966594409200819829489800472332099676465121616883629060614996851725525245252786340029996269783970116763113157779600161372569778620408571332880924106418964487812384402183376768495878372416179992175859592177162981846491048395780991184604549343620409448444067818927960239113428216306430275538209606436750747070427561738315095000099429835524410054851588011975039645089419700500377036673849543386698312280100893267070453068903617832270564140284781185753622214656040150075397111517204868361605982067666877493553596753603509813473045956325089718488294452843443834773596998299570988893578016773158891551974545228952849949303682376883528755930041826904841529902099707804810428180499691103213185530354054243206015167913316839716762369015463408056198219847894570654791084765077289592096995701900919914810803883084482017473742096903729903210543929281190692994033036083438123061956252071830229288528633029753370740824099641302539300146308477917886304102952953702309327955432576814683221144092829186350204451304684013135754241064806269075661466311640622434489421689093763155914955592169450702618090823776115598963146502256867167213502933940461818627317345485827652053039198770890677103961402266082999213058473131547830781513832710181784127881344304474137436174245142705629947494986644188615562093359222583440128032474820351799105348195389685031166006071028469435833226764440709470023141752083952532541222259346019659090774539876525214592314928963707498382911646707816720468021247575259076749796311714058526247164859397820984911060149883346462810014983682732039560517796761305032738905209386669304076898382718468346211957919459423905683659998861951232991542634435174497848931799613564924039177569949291881030633739593455799476747800524103381665574696789117807784748858987374857985313828275703502993520989735097453606123825688735144645643777780209855103100706136019186852885646764552309119375533860412726645771854870648554679135872698790946388960697676747936840900417479061959657888753671058047777949824807106675620530771543891556444583591793715405869673439540493257841429068717678664160810289581310677134981829341338757349202595789484137080393671704406139667151537107700876978103331648207916337083431982741383006897476600546132199359870639520001143859975397017116697408646095927299655369648083622031870216645825222984430205808446407325571336462400737428608510534855693847920569973756614903185987077281398039036780116436312972084709502859560868280312239115003011885981905773567332295390255224557190084421205082998375232549649253510568692707907012517986132631641130118592060059858374554811264156155047249689676569893547075905086496976742843106105812744089328032054175671132035599019305667942266353616159227396453429544286581215356337944821688624425207585436986922431050664368342630591462224807806789531871008014213350414514471730069444631366959927166073359399417812478833312893823377569255970799029994759397610873487724209034867088902021881348769072324587117933232666080227017248211217112850608277253214062279237242250927258967405832278094130468238987155393259118791206601420846504413002459554314591176307892680209243032920351490531806783736723186620759679104203045327445959694179174553741276731402653426766241695582585409489159555015319098951936853009142634137126671850945606118887161132421911485765546357934922911701233430176293657471432522906277384961050290094752387858876801009446168911875502045233149385422427459398027828365403438813963351391493497356713147974471238473427307247867047188496349742981498012872672795680462831083012331939577895459449263967704901664570415290513957937411911342596000745287106551739224955543301657627051887209130313191415059918133915682116936760290346268861190408623303072877726304968970313341914333703517639160137629403525017885619739210279813141295656252147680178780106403905482863089391022716180960637300425634829716264103564510290575711280285372692699705418242313434219804617413510241561685614365528983220749355711341896585237006019034073568836025780447895295969761985973372569436207628201424153431851692911145498521119562292450071218480197721281834295265055722085330490239772601536474414632677677856870354755573768292783578041874882069135753046896851778051472886152910477463602471583542847393866256375531419318450592029211221533592654940909623452393729922162801289029300494900730935628886754242835425470103099276871692995453251120774198362527381980891441184568248841457225647645023026081520104477908890247555665184980472410025465567086956634624098777061160970277361212908841776026322992782982085272607493299953690327267363520690417484794401800377314314502164423673064059160379527598073616586694613257618147567916909748324217426125817398770357473392534974770023653275554017329722527098363720442521888999144087239355894547989088946366589149117477453150113417305619034285653057888854913302947576824070215684687675050087971415807689051173621757219483270155881126880690878838530424881314625525861841259349066912560176268043175817304384775916994481140030488350754995442826871297812111559774408356452765342401304142070576984883430371288092017518032466727085720917057937355766881119866448477885065057306831671636742808626334827056127560106605377055432572080875968983882993100349235200417481335647311674436796661635801358717621093063274480748531287972081400952947325122482426784355754515976213971004521302331893877603757563530148072491262244186297737071237993772588112472594152409896172064022685681953467397193361138744940070511276402298350697167429357119822262118509245629588093385462441598141500064126730965291827230717953815473185741565806318714556922320432174492399598662265092440192922863666439395560707437053448523910590640033270055372713495021898459429896131344057637048028897372489395032253452618560125811680229232098901141261263496487767739327688608447631152137736490001577898991682536857726284541751762214443358366341153357844123474745673182772016615411844932745481911866135793748889682841906964781634317163961499831073357733144491757557012120108328485215658415803802567301245407202524394632602704743096659583251205793803630544480742022853999691504230852846623294275224489446074755724284109021421087005489992972348119249011687141340244773942611976209937742031283885888402967756437224834169738534530548416191680290590379586297726331499722062519341936152790576750647985287567066641586686685250199045138409364983856823758789926722908832470663113804703353617452154528606610379991142938658033366394225247040238550645235823368991089919900264547457748469503223009263498483455644701717672225407479455381699618803809850007140726787770100759021453298516746466225037921449567108935364082586147625371663596382025840444091551300307133851867557747859891792362592408110564076209570473338144977659976446097348770722208234324255811774069742338243650782299802296000507426832705416310651073900701955684895136933759374276823329780036700525220423538003153568079706541014367361502723979785839586379103246583272568640953797919588530141107778997724535713560048979968074271375710509062019781951285639784814142102676291125997946130108254260384486002254177223273335288295453097285880667262659494897201046454796303212265554549745515477466197840108497792941684683402442516192547677070493654506858917301904185656071925750892120056475485726767745192642113362240114613117339092853624325019928750815181809386088142269092585863789806075738974466406095342897059710237654872649688520784067702384724245543031914475979331622427414037222634023138151623759250495856249199064741691088199802744637451107886308097127408131421542287705917711780267376558569383093594622137716308023921686341371187603512782291348059833423844548943913635207034286314855049173821817858397410287010847944443835080709370960135615662397766519475123584849679380256671197971448461976169574292140385954726491884413576590147118432268374024375313547751400445703424544819135527525539834269151032957188895034970594470065528222169999525509761616487599519025534821323634645895113530597549372782202097684270685367297886923696438731461418081655895298710901502508782992120287495406185807312443679987153659506072894691515750236757760392911649064455732572247066494451832590385496323746352440466939480748181904403320472339728877804729318004289203404653146875687125076653664942732080927719886751511635280622566373983372691249489610550388091207810199259276713959600666802377730351543202414025681649779639858933919624613461322092479979406845659315325557290106424884600301817320489179264175915927094447422931143149090236995122568949424524664987539555493465051212219549105334969582508331796693693842638883210222029715026036872673892943481893730841515304406830581858506500097186801773599524010630740167883094013861852161353456137888116077327609993900531034344506827379291706410569814036963131962726096906670604748222013814277103394606939907731464018284709063748147088242204304301789442946662644629693161923364190223458166662123312669856857219466819037932408121862467412885311804736901040956750669101090201055981030314372483304886259048468538578232376046803525422171613626124553894243752538263471218386140233473026849099286042956965218031702248044064470869850733167577347007912254871259674960067081990360174702383221393638586027316054688405764344045766785743439370048412605002221754602752651807563048275914908082110966648805114202156957847829660949047991475391538455407728558395221385208021459626695184553994507511884215651741957663823450583967361788128429225804279929448328086775317271931529032346815425102939928069554381433927552934122321618586559947868235036114277035548964520982250392584422812636675320559169805463966376559240778760744699645156813957300464433946311534368877644684632595440914207864795444021919085010794267471861084860055213550447933494521007235474185381116768815965798968541358751638859254045502167665293791825833651115979822902931472606308423624797949724593160489134024175425827657489360889977564706585877748919666528076430186556091233703512137161088708579700939292263007016298350094894794117848364942999197161728794119987632726846798672704994483293703270354580475477373672809995514382229558600031832901029543259497812267025226519892062709282599750829158578092657701726803969141180041950267542831329309120880583260696214916332332516087338518732167156295260056725113852560210846146593489463296105491512076729617987929901077014580433138319416510815858556331469924268248420100664714297066291454899691861257387097593896397879506948880129777515671517348721061278014064304018162715978810155062670707684174543920463006848066034794369611627310157502681849689223760040829496891891204267691467240465333436482180260030487736583970672133870688699819363983047602194434481982282041613974292449955343504563102854299160234405220668075674841078104854380932172339970180148924351809998013166449347914291475736879252642711756736668730199521026762438967464153439278536546906478266789759273524824932073563357397495346564491849776505230864734188467528217238093148196138298889693026501703828822260625024865033847225712953582718304736650810538984396062906802838541983941519699862647645321613476058626920424017390961603839822985605298365172934947244031833691900473707547628773720987432960315630458971022588468111439292518327165075544544739119613257032982690672587012773340741778296253186755510353727106320802131848125168450230967202662912865071387969697613079241006132681615991917330997178773406276607706804447524366201115564062664550246600375491897543758360588825920307272712474685971313102412401651930598587770877758055317484357728074352036908438065722290993521837551864131345387230152380412435258048623555034295515974806351390757162551314987493583903092258801595083406077128131749200218669225683875930664581563358444510958537097694120494183327068219960108909119754329897868749960208811765427260344431963481452884589045183160405468526452700289797984486692317758765045403916383568051558866719618718669694421344385097426532194873412745562384462800578103879704914896019984149515695261376778869776494316851143048398456255480924935036850618574211116088461566476237354065944686772916087413825054524493239529405506840069190801393769520833363699590077502697510831619770065557833397714254471685572212856783311112744742132097674690614627263412089785419786294475741006590773634012190740495077224526704625338536684073162154964843419342913667857739518621334101794126246995747674528810608401008534874830652482733041769668542259117310164894158743805648281196060125868644451971174972048680008818050710292699122705312644536828782000235423916557428361809535113341059007610647594017538522951944519495676467159218210499396320364561823773864173139610823803698864604969723637418852896932111661035881772503615284481770491724265317039541170833782130722309977769678209780915233347904946471951661593460368786655218079997481618371162730790298244655520979068985219389549773404973065052169758128632573063514216789556558451848338986589474475617401001363738757670353629805517009028126286426076205445737037564429421785256142837600477771308387921528447827845952455168528067233721585319051925785475306035964888501418444134884258807052519107476874338605954443818779517050456512784212148523530296644337408086286773010241635980259251677453086720428933023989693940291488674885512929771918591609932429680834258383074348811986488559275774455036703762601302411631565572695590914272533733385618859816553037656714022805731604556824040327267023489147711831700727494494718182969374260551820448212004333459265036567546944173427153197437896999383381620196246813023002796071527257668818272401208233826537488235356105897091425506010876455337541756592585802522350992075133297235359912475223346176071921626062456130600313434824080450683292894800134146397939285599309605869087870218752486873551947807701351308480425322907509166779117072085665964116271260957367701264020955920019107912236946585734958357333402675353501782376412500568925758290523710661839497605483038035130230323026775157671466834393563704873411411696613033562844633902782108945044901628662071010809679448510131127152713057997764335793218723748333590973178694956041211041893442737153013883645284783728368366638641363892208619281430741329028549940391117810392033376658061217724556211340361989905194373469389419418882682133746506458417919120190364999988017201669389438056885847455710100013893364664964374407278684191063503853172728627796717850459672004574449508562285673805921606935905837403701535653158998771194190605665589172320586024297379848591124141892538551313245738379434173010512642299139706606018986700188255569864225347397528151542617328499703993439442150022721080155790578301528613132349704868862221007440595507585147786994548000694551273740440648094863039059181696158410060452761584071816470672503655129263059897052700882165496336492869692291649115751036999945532931664530681267657475560422351249390783164163888296548970173655419879055277814277025287676368151715154392514334637845549443695775070020771294587746502217188828344615106313843486745653100338878738641826637541253127368052387162639323129604542739192580781917123009225876337101557370171608495924802107469522930300349592838346827889836532231605346339498537029937921782413339964811880965400996185490672711661493863667758257530075212349472653282867073200394798753859202477005432426285300309699285980291247402860300838998380589717815916805053297464079981102031633611236330536734325171646501375408782294955630116809705593213636438544448357228338097218525256628418321338111927479445776306421777807239870314001424168689233747455943248340300927908618460793837216075584394761990358356422936349367600765266404537442837178236060422842960197466629173950570569296733962120479397866461027485066536895384919291002123218883692633480929526352654334031502107601655615552205430753349929934618913526191856398947020691254665798771334839690971923623955953339539506405106542618717504594485611705170599295829089153751998492551813819003022293935946302514971809620923820400945210247306388700231856478478331859672596064208230782949416517959377778903553171693713197441800541951333410414216372022221529657498551650537535680616567321081141302663440389204900638711002860420303943732362629574128588693810437018622836673668360878612191241373690496289925364741033236030893314783983424837546747828295435893658935232653104173547259751207077034169476967041618868309026134687412557488972618859832282216501227709554980187575105826566748954062693419539696683572743757884767243468118725117969630747284074056519948699077197777124966985714172301469303933187243530274827178194763281714282524258075727064106494043233516143697346231977412986363527328570819086665374355813042902988090512271678724142989657924094023575874316321844749265826288241166388671295490295234601649476895455035560469791354164976269682866179025629297464664516157137509468311304782673883162986484683479131072906909108124483890526793607231284859589680418617121307537271029432333383025814728881759047080976162902949822950425004027855233290429852872337504881530591521006039541841108305426990930797482095358113294748705856157625450961801259753915078190397854746600139217357332151384125224545647458458128588460397838721361052752977658603451456081155713282566499247757106797562011486046501181482440358375506038541616038384169894519061209988199348666055075014425323934177414883344079505849256236449677333284281395773831990859699771803612083843818352700482002161751105103341656149192885438590200555950681774101002976600855890445543685675870633958077729393642083261577213299313714649115212656850757430154773184224774555370284620158123889523997679583800935628374176948045792637213382475428292462020476460197323455136800389847138997876849212819961401155265462567623846312399312258335520604786735964051250282980880890075404398209323139968173935913504513499117922828580513563223882199793519082656086564918392936289585817265586636417952735927379630883859095174566575455142391441193199890274545122299718827335919342830185096421137734939517585339145598088255807315306178631388247575028507802559874383099319142400579305887431035808363270517634831394232897275225654074270140195553224412967957510670658021172252607923278576003652267759488295328857704356933561393098105813327826827020561118642636455969426140400702147753995561423923687445021128041297631841921481356701782428449813730301728927668891493822263484912316058651417563536594828679095722004523831068021783285652839464614184942818413993981110571897737942511200046892606537768743340945127441492405268676609815306239182525575527386227707762533235677716234025968476957282027489637568870409680997255327038074844324883203180668107005833566852211291380882189059621621048242514002904390904219591124073798511177335482632733092987159205059012435605597753266759231208285899743224352957269937819727106890246718951863578625437920967628878809330251710389296981353597192175602304282072592270416679090676628915624209762086187397399937711794392904058385097183563891200344169259691651301015124045118000161658008740991244274329160864152567913526645127586788906395586964676762494031776239370475705050522093354878493309231461310571294059354903794533787675367101393556285016217649424219155413136326827495923497660673266292909211324123274888737624214609683052328393877584416015716946240248936175764955035176770548111529532567507254374801518687274265024551323172511355151288297947678806212752212025689256897082566878929745962460309288752671824148712772094777928771992750014718563952775143355420009737425130639488564032409636131976748550785542161801925675123857129577223644745421346098955459727978594373986169191288065995039404067854206585963222484909063737807155485585104622667336322130772701871674702127802218198647949832695165209704758603434146201831358401914389927732018645121323244027999778402662926763816926288301162961632661716204178179108141393308530922190794380036636584268107228832783776208500361771059878946346538010258981882023913515329928465024641160931718045821701354706080613700444863109645538018665321782114667131743287852496231834756790140281273304581161116583055143141241845260643944756708222952381018347303326002124697176809177481391561937083265616249595623298634344573797621864343539533754709044947441308626009577545068163122697632556748771376348261919280907931061895820392412714557059418521883847227309423135657565892610427323306188043145561689161554703075221869199907913722699916253597067126641314011381219666720196866754046018108740909425068122437266271683015691325983969119214924149554076017996546041440303500036361078801969057536990334830065246600934223425622023094561121167205363191972027244313650528063184885668674518297221730163928187673213410753905246224760510342350847774935098521704112169967843304268362888040321625229594423904465133240946227889680516586226746915505286570764822235145422329537061431045871303473569310769757166132546810961022680301706911145208049485913417132549530310709685963551104668101138475121899011543595142290505657309291711225958145116664105160588841131435913685712774568878175285541163905409503119876372760848582279834482924213808455393767823312395365276546712971176355966361570745731118954262278786206263565131145288693027278067914275414019506912256723888625584961275097613608912084821097691372196824791050482173342362366751254890284086913795256679403328813727372256421468407528085627371705063206134017471293629258565513168805689794453503558165931120980087985085593113185686242398553672283287165685329644899206426692921340100979595308253368579452414146746257495378278873198315355944413978787617640056927856020061840295988649833545146791793400386954030506044248050715907071553808588353684483274164767364490148136793296992280730874966163628150879085345578458814215497346559360086155678437710176345133272679156023979355844983558431545354077315076048632706376287525075615971477289798558471950757593709122664420149440878973447960228651855078270135662671502010010909796359601972229393759401603349326376622717792120033826538750718700765995788265276578980603716666798224170228541377435638912602201757654493256699794864231789049554583778253664255952661549708523468486517611214217673942722948062116082196939420545713592831068085917766944753240879896716903779819567792175021804004228764737204944902436989609489084343111649213290045009229838582606857566286782577090571672909236490564328964230679334354022389027185058469699423186944938899116192341058073292055434852990047755349077538245738168661524829724004092638859284018361388741408047350523482628929514459509505044864452513093658525274660024584141767523168184852055126628732138751464519516077024580641386806427203095368127127598474746364447932971341178828632035673254685961977867308677837972484954374253991905401182749902387867728309169693625004298074706017709604927952579052362656056497599171153179564668140833102297613560403482673611178539440090845486310337723985693451250260881204683544825334065973688706572240506918700928396457549924555123672908732703071740950191189346848951276199199644706727572367765577113667503144573705789093325779736133398524053348389916324741519299111119105307491373093763872804871767644043743247923016612461925660616751653065219612283319960908741407887134432361855597547035405095499745925216565052783970588564371268066843602001262124358754794964673930833583104657725342318923012355260123674426382117881883678876105710158663121018103309725145192336653716474699695976076146577041310695592743499831078542904954113715139414110397227525796935710708029714107134096289963941528401402107092073241896781609609974968167889459322162720683609118416932802130982212772131210299469155809916677120373677964100992754415133199311573899650083069248069710039366745830466121528171035476553535917616697169497372768146948655308436296519297570055073949998992639131301514099440975850989786856372113399385987389182613254269992027478795184972493473855165364642837615292641452695159902022784947319448384892425318780974235577310354898532013500225207030332318222924264697536368897646796319938241342177116022437119220627308525012741223799934762569688137807943524396384105373130400904352995768400120523165123521255532089745651630290476667206482102453939547895713117469465144809417241069248288311457153465176215464926067676323331693699683740636703779593360178622072613096272766675115868417556693852586169559916981503470904894580713556702392008806604008118849694339940528406502522123822249325825297456064559964645645373553451791601800054916247123202636292466314961719204797453225100475999665636891745496339210749421671509090698686717695010110971500983976084388024236536336236197801049270755485323197444765684043029577706041465635052915298716090461060990787771402487654222557809160440429473275279677254325863391733054361590328378574319639656664098027472301868348369212873856827241910858731309095640859423101938378937485932760915757370470780809636071804935032887951729040130501519756404931935412584204468956266684286798656724783910017203709004213641051280974951554583336687043469538277923811784124814252380771302951673601899054451468445210139924595016844274069981953028846742962365413555370194042712753535666133633997550761686320022868891485444716714047628670552695552956968216255983020140416534587559860796616991806430928169054777098680948938352037981533802655285105973965888635707649115736658481954374459841113585459533493294469560246681122529038724387066016646181752710259508020372974319325123921796818829095070033324640142133028394042764775582622344451858638350106739388225863448984390823293992314166279755097226731799801856796723082354458385024614384916997823144464869037590136014587707479791510482740890822226137813589946501766177932490396862529618363358448609622431668738386238683168760704610030622385236067219604805636154737842823782714718564195122164473972640551645915746844233037063575866329272846123430699360993403151356728020659973369831191253111802568725247000996787066370891798024727559132819473997280306059812385813943196203581739604293740456064658951870028456366230794801747757900287438479091576762915617139564528446518269434022776884683613298789271316579228892362747344201560923230066426844892752488479019595131190692042324287894672919127369653348901506052125958874360750207091718760588424549613353528704364373131849221171764393423592302599782436702831482129478554622977251289451202452274615843947634789971557583542918249890348662008565710512045508098366976160762599703513798781742573028642694453908280220525000050920873004979249617699831123394226338623632623974885123731121227399241020758897751918097852167133896861914952105093039044800184087556590687774949638949401686745612819131219475795537192751293054859638167007106326963938358244844574913077835077998000868719101850287198560629593574566576417162829076035477288271962253243527847818349497569321078314079176596519920358743126907997538908349440095269600404864636852865246401939319092498646844211810959765490460546963922833428705290254022645469688389030491641728779367868319084056248378941377119033686350385605539532050676539720111685241618568173212602584671195231140575010146738497286163947900210150165930981115101636027131612104611659711391098769192888468026293908101493675638971193903322799048361339695477570732650409500852877910838007029235149307210422688082070182806899864774709519935611009560195713680069721412261033058315278015251349276095673595271146411799451824951873932326919620163042244795246802050707878692275207004260695111874192382387138151700263669633399336349815393826727729386894933784202098228583977061660669948030487275203005941995616518216742664827866863986996307264048633283988229337091438266498592115240094583556315587982013752840942257910524209434022146909837560484115133736037820890784141413775525599941809140659121937314613745729745709884371751320383110184801681366753175266947035283409795811416023827055284750864548967829607385488833252639795861385932711535046405254769087510343465255689279366065805265411640223142616454318977799692790571908724198703495172232746229217098004655623868878614831239259193524558270780092904354477129536494760640071201179474017658879826874575736661832894432602804715590162487857845964493014426677874467555313334074712614109724992793435963704859621466971108078954421268567567390725571250041960057398640273691456599267637310161893739711312479538850455198965999635876462788363490777126434753436859591181192302951798185469498490559168249543578096987380158697032092217726322631801583435704989303975065206326707456838757745808964469563628812198704569079505220092085174008318011500306029072559652416107046340578389443052084292847921361491613603959962173288878466415578064552373435286974255894562426715822517302183156765609747883927078603476285793760937596998051441109413548706704514579787408242735025775415841579016270770734255544715547313801464265417220971549492511158904495012400512135265599755496645287517001857347916645483562204715962105072036489366314469062128651753168525613737136809035101320851521860794231541260414954116968842802467263936690924035945064534664266832518459149180263037898750102682540174698101843222532281665696415591582506992461554560623388957104898641179289127123636197067390404748693803245740960521122272837792710319646268468629590095110727388240513600238958288873638796759255529497506486464586280184052870246798110575465758479400445148658697360280556415655832838321079310391458591033997834150410626893888224898310337262796758384210332124265137731574985762324478299960337045827794124297613647288792788343359392256696918402033109285527449411235988836904445292589740276621720835570529433982163801985379714528156809657171385578533680523889801736479966522650307696878092643707378029513464379124486409049661873162570079636706934914992254229369416958387544668255282319428331330460571867030616659742309298958945096109568404841931285113109217246886799024670997461941850076672644957690829758949076108954840296721509395602113007835304686628661951698600813975934144314723425560253025014063639359952864394399180264429456273115721495979166998543209458525730568766113545389954577237297675078961241712586026780639715504870955307488455424156088767480853914004410068151919183008268627915055460555318970133722233197301498274805296371021187358341939451086304074398940008446718751302090260202751940936015362452565703786501207551334408339352409238335884132653400658229453187477555678929933148788303643271174670569402655691014089288936304571302506258578906264397572221900374189239746917413063584331697913054745024293747295776451403494155854263819073909725850713187465225991462836964699165817991775858252959235603035183212916334230170900979416806180294147724129274526752937315916487530218205177951449136353653544913983074655970645731747048849847961582933394736943958357400768102351719154187608154124970630776528450932194317055959115125181261793069323213251388475679016114938285347913888377071132863557602337336620367312724319269242124574947775977549600303469463724303234254232575119857258142885758036474779094651109773041334338774113297283237972062349669188225872613313959707502782997208507979401182133925285629821653388976046491199200756026520612520405911677684608229424287296788748267896688024150113339262355511011848957917387555081093107155009580180631148520713770771303044134972528832381010596386480828693015406896983936713864310196927899597744356740253836910806271291975727699443608310084655956494906738036667900091686323321654878976203710230483142222149910116210323099527046792949172246999242618020432851303394032020985411832255529032291148247414364447399836077184124570436452807822182770241371474825927158712868198484348684472777957605091005342560298671865596892763178920022791995798442105885804739382630983322886596333632678463752630716512356456215264709828726521680256384197366204476295876541787016027944185437940972243295472148804788675675645287778198581295859966114195973873733236941698548609789204594225911574515529162335567878182540369940829237367249672872285055582379252782518932144522732446724686452480514513311754678585781062875876524205393978035615269812687588666842308086822096386019719166469578221310867465932599097944772347992362160707324705725714267674199207677187392695577033942275316391983967286606583487472727627421279575822131108829788225909685214633690078202675360412106333313212394573991700491754104579856563782942562127547358731519624634055913327254331558470302812386920621405922453429012712142495382524223130578911872463073004682561118915949013205885012332850859208685317307941065274560680704625629361197649494404154729088573531600673867156533756353905289097670614098295311100720674992888326776712836163639071586815049555154281714492134212222375431486663041669182848509597961631995050334021936823041127539820804510302123269973174291632817580449466179445102532722613773868447413863250781556602001963044550071346797596368301203935839722021896058544791075693664836101783577782389262444349336975343288853363340753724386519816527211424924407954341588998162742592806458356746411127411440836209048290348455473060001987054695243975105209849990670434303793911797773087913784361497731588254638066992524596150696781400860821142416624145281584476671835552417219874670180796300688454716692063935400887266709921264843728606124976196667188760148521176302078461209868249022678272353211513099999018215344041060789880995164421116212533197809084114446997947189000814334253169947190186909087809762027810338413004220433973192304527212291270524572144872162011780298547724190894430616424477797992849891877295213455320979807723456895515491012315040057695078318517751772826941723176387818094062024655979055956386381004639996220261303433139808250717392696099898073758791303448809411489728099930360338199379796195597115452240508113050438295718415395743453531188361708110034649662226874888408003309558442667718089329818017313876829945999466151396977156034966293083579258210769293048362490761400086852965913278581252956790806725082572036225404150468113279492995405982893992067439429624211551898937263227958405690819517438435246784010630391656099213988360411964444161700722735599304624319685614135198291399706274853617435935827929656452362093764681597238974863657984079744541485865775685323666973246367916128301571768792961577621223569192155492875374367532853685536949867888747675541126370270687738963817849914790257177374101102879077571435552627823499516059431364185149989574717711630073265612512895044070020831520051841449420323304096301740846058000845009673951184361064314215639065610057158060477161448186172930203572627503001137932651103740675199743945704952443502834683805160628100405364804132739903181768655246209268256288730104499439045453091848115833592327962391737057168885437119764041954926916414919344006630088570956737144445206969968461106932087960589976017127360018888830532632544424929158520933084358835646841225862993313928817550137400146484017619803792681951813209285266885292886935108654031365417972019479010072866200478548919199949496434867810389450159611453606935773225336427563155935352900009958454159541243748686239298466379776786473325792329484263004183261123923090446616445429714826817393168027608601952978841322464526084503444880620386316097887284727012678150655833642680261046439550769555922869563109658493224120963503193159460759013440315015902533318056640040808596732372117825771776167292656008796781576184220614508370823815919957610549432902230378352099188618371907556318670434538366869454705200735091774344121791609151414926392742298132667228496276040006666635213667164561758924744679592761179497976063629291616766934791730296061202963321973929983330684278080664707719114554176394345186849786082434505009886020725521337884876972104287301082266738920181003841551299106855813114994994847106164896187039029462595022549408066538989094204831463831497245342418015059241017678605979708469796055308670374086966542428361253860644015811594383408770399844065726555157718655981805849819409943390291794341622102077255892060283562049665424111148662389884069855030246108395488410236893636792933851900652413918681570119688162135568975420610450603266308030832308486850699185169990096673993426714499313075932611403171042140600351721686008440221449616586406879350003811915118098938989966915409234521890507545503720243500123104656691691015028400544181641610524741676008026875939260645155567067220309736587834731268851342774258564716892443410218288468073643685821953325537081061455572917345740670583052291583679247314766454564422750724113105290633130533681510499676000776117708764029694651058733942480921522433008969279900403020068212320015494947667187449702796544811417947874806530858426287740899550128354663896768479504200946003862081260875053241130739518962109049079586462132895842796510319708549577056493127442380393892042769622839299001895218473649420968930429067049979805491446699808237656223130143215752461835520139014410889937175786262983525384265124490235717081097069298572480250558425458637310576035240292147278417545189235605387443518588357601703779404212599482849332078079928777283795032223863816717055841820198869902274618585747776615195570902755198028774990601744538377922762409351960779975397948054583868620409370314534655162601951835829423944625619638954727731622900993940302906648946527782945753628417933639204565692252028101332601605090882537971047687224243975350535834169550888183977296100934896915185731754507704014333995296555470188174824956889525258707692841466311293474428397429288265636322454003800986395619527728457593788539122807758649413189080759840006930278063361692203498009001259146476003681953073046792787292951346141967370935574117075974043531830682287386648959809514043269172921181011451367773538228688648253253440681625037741336242526518303370525961229906620084678955180691583546731599343315695961445802023681686434585889908258688969398060036996862304038427142738872445206178775654153641271112308909773613595711014758335566791113472535199090599827240950625897393745520207041940585700147153263384253974851709938702169397938991311559242595756762801628401197835468046460014946658305022075401917521509415560958678038368864722422334163521227172048209604730415226521691244662582894405716717434590216666132503359613069257843890712035944663057755122588083498012975343514540667921816870016779506301187626080482307589106377733946699698409620251326537160641350734725369482809721784408875865045667446298195992802710737365719566097110041732077514188392794267090060811989438036323715428784627693113584805336975538717758346852462561280033589906641814912043914529873386281111940214082493503991129705661359014263085086862797534805404994134803749134983500701653706769106777393691810522401600200887916896947062222005513746839078447225091159730621325715125004854888405506566810790987888990063594910963726907804929232019066460965144621693479014521218183924229263466683601183196410402039503587960336463111499584189364466843538273778888224290138294892930049506773359335803258713602421404727412524369015233234587045607977504641327142658633416779868340710103436833153432545905382169343028330543454742052226987885260038135991088842131890677718017385209503239941014799328104553295914886290352481366796924341873722816729496386583353957705840511059161664550209017697542534828019965033291631439102668011728361227973421440404094860038905737456315871093611331902504353474337982451102179413718937743546971465903636281304001786038312663998074839090600513751548657401400261051190772716103500778409104117074942495039119647555430776957935368860672894142218034767330569261765051248615048008356719660199545929829092203737163243404991076449172642323621943138080719106542706846138300820886024236474839530026909256689492807428045056984335016609129060832709969248208878353280138464121868049348798304066235306157287687893698174145775369245626597523478887240076121661161112660071478972067540900012504707772097216705711775488232143774639886228162280298358240051163231960817508943460483840454374633207259480794684845854910414808328707797926420243652944096024063467518446401977115055302450587980265222623838938539116737466936237248685436983870950631326683237503025722191902340127107632238600422057426799662200793413227561344752349440939606237211983802497609072293652622207106464407094487724949443980932567194743608884807308827511925622727343697897355117507060272934511906980016365227171513107208952681978076805364356898740652729883219151175527798584626781935254048665909468239098959791517793176210068149446381257206852673068430652390132779518452643656507341743393130574443283796169925148587392110224300899206418202428999937183922467661326129177961977709684156994696836221033626036974173542678205489456862931897570991787835334713263584990997309116383946728192398427741025979496749760143839333836259704191174577455435917754821866369709184707887275743511531690899323269916233514670718590683641977187948194118513463998279921277611786148948123205745861062243347919732138574528493811269396503226020904504196242717121845450996230971447680126632697368777249585936792319663189217327887900829255891108014340159530266727929631133282707949346215897275969723468957928961333908198862652478721387908445488177640153718351116483352232157734971141107134340452027873327809184352723011616020623504309248453644099405551363791521756434577040790817753099285868441364676282491057053745685062751074992926252364122769172401302540798212045920884794539432540148303878525815935918218595934388947359126337062485564734886025813698655495668348654114991892912476286792282498124882297151756539803716019191395525895560345799568621280706038347505212609538307365032416733941066589199534445108992822556405756595350770005691529567747409081115458023023504835811094883600263370264321608243465963611694569399883141835289669664051816852367801472717338871640727612884963746914418353550180284611391050244883811846124504850745394662652682676916620992841190585109560468797341917388224539203986076539290303940877816119077037754051993685915291537716487630260566825796492028492007769227162054022110724600479913403800738928053737817979535299367828273112018248146170066035013259948713767083131120936260847355097569155369617104070900165189146188473502773969249691627325272856618954426989836336884420633539703881044258917242043781610435206743266126277772135332792035742586500649156901145276069301196565785126124522937028543497822502817886016448854483016393406955088422370766469407784272881863921724046744063741605743676760801894838846758134979008459171184106837760029294194325415542578195443596250472063620243972150705811068331442027427782477810133119086323668665075503399159403198443646381099800589816309289147642883348370043788033967025793019089208368018627061736016794161900574181893924524307165283670202124318605201531185437937573536200964524795407655461741822532675907584818027523549044637609705557589556296234502853327144512613371830693283813189044231157566974836663316496488749061973210868118502259990390314507676776157872946998519265408602082130042973702325454102731855655375028105512633167258729253274960095277736233102480845204183659504804156663834498113176681767604793237637121496996829011487140122125447893281012361178124760898046517153064759305187524060426947760734967301463318502859498846545148642160465786648810944514514332066014843913202501967137778498391149477929455381510242956880386180770977575398789997820479826371156946881357417986099531459978261527022788733550780387268983754075120067247418636840596661712737380445564840492119151939238872861535446548282017413634503412975571688930164336073223876237285647128190757077496454125070937650858813402292454993708749964655891006197355844357652348363543608950935384043758736297109567320624826504178222334351915200968047552819374142385765927814881938534644326627340919526291840806936717187926558356238473067076464553487792172295239181255644072380584560307077803040885694907445813734274480491196807620616026817470037101540962546177367600595292320223398774309374321332480419184076878415783827293877554554231430817835500300498184277449345029850993035024945866839270772701007961350583926150452916017151884496785572218105860701220201937018456122982464956177047640117244330182979347996844106710033728184500418090869255046337350052358357459250636278321212623821114509755289697071851799405479735196791286074975073957214452215624941674238841650953372359133683075536447812514259100006971683390137787822787996334331976819833775351092398945425296785451614035765497865124669876309636583359506004288441311113557504042273494850514462004497743605056450402964323209371049477377934079792147022527345655014629961364235020152632168992423638987343665712603720528017543095218197488383696800850194369037850963212773025815476567188793132338957396442444589489086578534906019086443570049368205912519910976532012138826981109782246950478334006937539216235844665304179950890798311683820624923272278012827388430579635876313228780829249406486671312468387092176208507717634204493302494929039172168319718676894733817547989390094875169146921896155922156387946576683342555975528621993764737859921499310431527829447005962111218234282452176793649547428039534452888661946501748827873047504759764690974485993808673253545691377831555591683093064509104364496520731356687789187807517122579720379203126312009683993746133493265001833273743235380057195675592875861473394687485870593023873650564845803017085094472803679600725107231796937767153831311611049290468150962241651556082917150811887601051351055424537846839900548252190294701533344675237932281141546567753972276598871610814990391438542089381258587625688581322316516338160576252299812816568678303532699274633530788222534369663257944379225979140609489049140418011926710373806414973586595258773448085863690695682635419596353333843143564745916621930742412389024326796667878643846335645518752982527014682813457867148294404448170118223623855200751514277114674950544494039675630840957735419431243746130312727778353006157643013037794956159591856587840997413730545923486994859974431407411348794283367932282119353769933885934626100064690468874574022852685901515836254579276694669385781667879815326505644780059597448457104832943670198607465455116874578141665713250332280036637088814639183113250815577335177717174410841034354499906332695646967954750773984339882241663168087097499127847816453322107578818032661333053356189510486262116953269107013975093469848575729278942133209738565185541314298127505939254018443408281640660477598158433648968835041906813953967470970170769801533745899291226827080800190944019271123240265048616130510276834113187719916527789898226863518105727141512034998371654036816956595965442952819650154901245114215301429778719933292416123457521983401571465187422198541230688423381929892627777155009148290859251462190754382686352581378387228411183504069266931866652357361098031913950792948556492298014917860240954153593333680879094234438540815563870939764268363271944319765119969281604714422745053714741023279980311942187104399339683871051670850227655851542014576097306050183636343479862079167672460809138179900078725216728081117274021342484002013843017508048234741410462094232252159068696570706761463353171650923528657200095725578853320602079472558059164135243915176262869433507373269023258354777065355129843508369912049764075800019754967477609744425650449417912152317013114507325533131159064326287987037085697556017654752159166403730061849686206501948224516137195799702653715830573473047034948736538441970608941153043995867147879086822003319392627756126467922107673172474716977937507751028345599226691338180727352271834981875695894744854710250516213133966642739032719451400617500212506253882134580840144717730332648077479940159008240956011999667300918582732678541653823801688000293077197979731196541140445317478513763888392365971544735113920594211905386424415576855424890620370656125026461973777786724495262368904519403634320470615877746447735592487179275754958704818460106082014752784797161405906485004044785345376225851768995646167686962365639030817307734795722578557194326041817221778693812510339395828560194172157839756550585792495199464501467038313680558552679948717214490001499706225284867521066586001223232739836087093449995131761653853861367909638241721111928878237108597554066779527953738079089089511740023446582706182880044933112420676136666238166551983041006200283997803258322721323903563064516083123155722461517007033929517574567964348408039078346653413643771451973215875787725786886777051121498665123627009180580380679729186194709617193693803749618178342871281869023063629497375221002503721644424097483026110165045025262717105065464396730858702866337509896812997474726129760349881387243047525447711889085279926078672618496602799722392778160962624033032187694717431486233992979999827031780235025741849209336504718042840844198240066677884462182059549920618994441011970731242650222289930158669189303158449321661102137357949350729361081728241333735709876615466959509579834312906646426021699105899520887821113452445854355372001538042294723402859939299500291721194756862028398977939449351202287277620343649376577024268491824772959566165443174074596665785869400220630742879709942337420545357358353619931534700866652520412822621426541715864894080821545655429920239380666239768434708903922895244326418681596516283333482061936344563460855768622308206359098609008450664512181355312222862471211625305372382733634824243419244503884492857846603305084056534742223360034916083377267411313328799344448293663948415320769440201321393622025189222428235055316506639957039788012765567737745837248432395350533360036851025553547338480676876000653850787366591878197226696279763440992364680230083860792021236760753422908825078883081336615796249026289214254750423625861407109082591832769865865668566671916686032265266700923928014253641162512347865616244327387933639232425561812225435919774941767264233810173056984545448829270918169273023041519539709624456070908950899098550954977706487598368711313718542648345842552899714620369142374903926571661754579197238759199375725510986279842630071340752478643127809862162908284723785027388883715600504923122630002212084148559270817135767227806647413003770725553212910795083970649513516718316393719822417161577640123315668128853344183841798042764243695749196939119995758163438532549338579005375592628783045846647862160245064284811876793065016318616303390321278461918909191991353931418789452205786078718393393217218999970825505743959387627030727424560234040777788892433443565820828299435409314106140905638669061765094056860447183478374881212184759940514765297823856992198018651687252945930951633267302828877030400423671006522325869837006691566047428101797661650624816635859602853372863115505524458627389882582585032317073465821821192880837433272435362782409081221744670541834507177519399580445441821323794514964711733825825454444139752895363531210931709949038989232625624209292676277962782840325408259612448658783373019197821817226769181935532271137582550219214077648595867712959475721617764746774902016739463678560670083587499051019130838834502697312852273043813168852838322896986378248113824658353251717151513654016381472995269338520091502343666026310540660693237197824134314260758098651203895933384904535159684419437329038959374585656437849660970388038399121474200148925686746683299609153125911100117824470847763474961924594609317950974890867272090366105207621071478787022926497521627306349028383686555985255209792113057987060004168413796804747611755270619603790526145611811066139883305251420858230550776487345062124100556183195600148899965224276518638830523944401874943286920881396225995733635965870385205488777953444952827859739569338686877875301370302633085072213171703878858712305598271534856016406798169411797703956572010993918430720392778099743136540411258025863997571268313503148307721965610755539866257719688278516453629188033371475005477881135972836032763500212289246389963231357881058292513607873199915457430694170619518246707035490170506823187516837575385372886714400227594016494492948977353836671606798560052951541041722274930920017279932599161466838843566038245092171470762547777340618046282116539939745880633992434262973124779083796446388091539441411834477895966933745676274846171004026157322645001062796147425090401604647370538745752170367328960833224058013578494483999425456880745948036930661255529536541748965250278422217515008491239510846988321804862379128100877295069881705429113167997579610316023866102151715755305937159771978269311022569570133929458753783274135274895346021309455385422026906579265022717387236429578951654380117281530605559006595938228543053422808680190070198077591630410661596902543218593375350625630414380082139054203166394799807848607745535248587461075980723811270740277776519171526491780616666951882836557155452390665881853403935853845430801474082311260732193069254878136188356881500746746527465544346488924404435417757891511793382573054700059861626246313906832187857501448422163644483275314354578263330109518389581280773178866869683697588880414834222626362048263400045310187479637824759974101779322770225313754314517255742088971938250666277138637164805573384025970488826035902504406745289395962206193200319907925395226811719266015351573422034455065274231964773553526555550556281321421891704911128015491967265182635103109773106581958049920146417924796323297054117975533871887567513610843274183377088875209497669224852437790538107581895236846403233553896842047070961264462683915373338332114187932444537156881842224791992172974640178673840386448406731360247501412131744189328272224051076141104045298261777568481025249221404375673895988665626577304940404429786481928334114853417539777203617053651408153970933004203298589231442771252148736941588514313995501975454392119302669159510694688842466186212823327681997742356401547186921460684947172935963517396051933311902209940763642785889689138249704281751691136222252912087136920497270338466814114605001812742915094882375661429960239884920969303580062390189023217278128448052651610703942596510769026018408276990328737785992085683846966496664564140027082319861786834752335129367716030075514751855526540642829396124587112512180744356982814708900103739959490033699118557138194537056477783684367779756529525066711466737088635337620718110580249432371403629741262844629906464140878911284197018849565455554394270106857366569117478522031913562474225681146606353171885880647720633582224039875418307821877903072992960673861401188625397136063692996003327307421786275309748243668698859738939788914918922176697759658783963868383375112826240910901777312804871100354056128222202448556736141049607929941310042533356140828519069709137123091551829149224859949380469806351494776688759500455665200965971084491390907919619577745862798513162427601780330135142011980147576277138332214532021858315630077406745904263909731072658050646912859562638760210610732588767412587273879946673859320826099871238932594603821174741893197686104272922583974055415844996244118836738060514404776470993819634105556870240389294861203566589690751462922956229739664961449732505445929891081986453549659115389154447108858005998735361503215709027273998901005392899253461702866104169492530646804258769094868617480821867025622842192870928547790534081796832124689411813919011598954700675671537317808975238317648079447785953138925045015316174825664576205787360906778012807294111263730418546656809834904217945599584278809190492278567465901785474121089141542078065455837598752928721533143324174627461504083078461424277276653132324492439762406814669918837976464307623975782410398345963111726991082904060787202891599880213275428116039756461006273695729617602316747793443697167091101961399193004304082384627035532964425930712837167213012659463792479972433215482091585571088355792279614955339597654160221995136254275066087840107805377561478253461943026463663395706393481706863775318254668415649125139788850556755093784957392027589110523954975714532405570197604644911598141579939789364657606084412878258219264531006591309539497749187518297524500949839300477689579060455549012493172325285272356607942015625417657059497276413938290063702562624794262424981017354540201862204321462754352221513381312974928839999656900124732493316858487633312107413540878259821798390468079002887853402629312040772835092178361095061115329179053720588507029898799185143719466766148457479281131431088535820093384688995078281369752908938355010634408822743759927628208688330898870692699371280893395414805423937564456035396175158572831990766633108655189099355902648778196674211587773487234534607769339371230217959702990192211940688779454625857779360904491764433674110449501352072714919728075312664251874413993435986946058454481786611134064430983570186314209733075367592388437405984474432056564342985301170451383234744175877323446654313917688293673191244162699585342865437366999081518119757511895608966254337544936353461851882565894846997357025545508613610032955837171631426254344988352849774054147165045706015036783855068375894774761185566779530090452233973214285895290140947149449562184716123589304546314618953309112927024777425861867894372021412096269053125131432895353494911608972578335615283287339346016586184400015712248265898189518746218444393270624714134620883680901928463043135317329991220966296238519176976855978681208370320003966700878785780854370421274161469774781398576466525579807825554395597974454946211467168777266175189490914874292404521498554156136547577103439025939861245465296258650273339391894334940327844459617915529191720664712949716247824797330395638814655518263230014675570905720277790739900111791298481676736310618125310292235900920505249189918060206426729892667692490915776492639731036859921181077112921479358030587355461327448092151516545618705628430959376870792209201033956134921243137788468724297601462756635158430300819126174622909222590347881688431941587123026477754566307429982098900339339009839501855501975351736300798849152435329152637827367471313738558123319668331883651340283027664379970178247238722334719460725077658135089531705893935032058101613092725592080147288836411021401996833643720542858917586322880554774419567175064875464306989067317773495293231853964675991291433428036764726810522195631723400929677106402427582920069487402387963855751611559211101882901380742886610004894954298989047211821197419220742260621264894572072298357856392217534480086615515662259925271745640432266022390594973698960367266511223466201875317606377834654430197098405134963965313937757751224529983747767350787656656568338995486033797574991217178856828413791223274000860687182006584291899605323964129654235870056934067253008734232438769531086080440915792124526548734241246059781518512813400240419519451573763567888057388118930755845770229879843687892625485233241715589555216231813333792964589488681572581843824627375583809890424490607741161496228506262697511905738537675071584684878344249810697402034820104054096400453421102007824456083694729417942196264797319581636409069811051238154572248072266735132654027938986187145830904353815251738710737138183265283109521151048412013600724725344749608760747952889998701464128802706039228701690995568294907624877257719448860649574597196931516527801143537793415223764459538695697227827505612017089070602569091872595646338807059047926933504641556370318380565287262701476809213044419462113872386368509346791294513464006349916272885168677451989378614239295109032755763199964944710174706023573425947311497564587225062182379976597362894187094161210211665409815724708580276004897807255072768400344831708154288475113056637700073960921544603793062876027976176315700612235104385883510585093488836726923501193022208700589373139156515028259724725741546767684536964508114004762557677002664611745909094048643025192112544221713379588034671714156536522891775459547537129776802836920614387096299910452393057870198456355226823299375034191307290256364695674820381920333319347891414596903118116040328521146501446037141365049582120108210785282421406395940435222975345792293657937231776909208751140622771653276777489300699270236214315453536097102519401033183326651252945068039238742304049552858458905657706073919984460564486084251272345951378859690067265642487498119805556813996718743172642560211103934597471291193902448622304384361366442353775979281383769570231340622077806558604294900919479513643478361669113633450063057654005035533164962537947189645285804057970756670493301643508115313179768688245776708671567818089451072497128407699337507228256241896335461204547112482130354459791864323947888716377756649843595194431322359954605592670870120782194611937356005434272765709286107387434548658715532052065327046000822322091782950663202790238254141303493536156104654381675171609866968911323565147987032679739014356369760241705633031238572580756230238864367337774292589711659459260695110589543336831432426829006014057737779095338709572833287799667184031162013211764927213705544952948640284773810570445179689943783774033256647849092017667556343401877829166153139217569322596754292266551921277150319276895193582102788155463893419598616596144552418098679932239318405503475692523487974458633320675323273725670295097184047744802838853094137021203118910429526719329130848384103559795357458621874458200444127018438861069769585755951927917228926648207650985851359475242676679852190625947050171583051222285118960826279286796632986541473044544265417732295321182718482551987359616138995434769376667916545146029138280639172700975936087039273597379099244223887100921772034935999188331273133445634247214060720267305470914252443816554281834307022583966303944681385005644307213134233255856041848662770734779441414307191073385663192464883178111173908016483887824044855480718550662613861032880443222491171591624526552521282553722265381791538820353933350191517684632969394402460648414540005386766779379914442974878641251388435581215170941831673776295129297463426546436485973808056564641763003075062002147498523078709362433044318580936072055929577280817216411875644155069756645547534513013415834786065672194591483095721051750026003213995732823651836140777992495195458722442745596961962062012694485689034465212296752058981276839871272384387519168259846719698464645956781858841965412532887857081606375619966506469025837837652556785436463656636394325773201969492650909654839636673997948765548341349308368607809623235376682042292572613942671946322651425708444658626076848820935543171851082684705932451713384011762256273515301130247211121683778894283379613590405016749484338182344346024768469072894714658758317707780622125541476291328652426563847110336470269091088297752967410998990783828199426036738818096870090800578750650827473976505711430808857968955935141520409190628080318661407603453949374586512677154141227575173577693318524363619595617396571814829016400763240449286564118893521421323880150620049538509860650761107657288512250592900201261510379510130269681192169304361897857026810084468292456861091441224463596643048415271347356787764475204987517993931812086826371171369180160384571524152215744423548336425444426901578845521644824760467394514365024541924897925940340495195424902757135617062856263941324884535142703987998262503060015660462632462586802522686604801900664150886171915979593758431662625489445287069172308460768254661041440552557221165342183447087703334661632497049096146600464624522923633843226854478076105648350397017967800516099493573295806426782699373920658818417866813105784637231572236510113384029575202132050303450182707311345451051990972524455496550108648418582285113518826313553689225519731814678001055961441791828430435801218862336217404321856840537074581217400823450062948430473292751391681004207778331502446917527052691249420605800579101771025826438235922921357004002807328394165494912249448165208942955054514948604697175513646544061363661371127770020647578516399714641981089609946678243207566855674403977254260641355833169037165629083071155453389202284051789398116056296551341636164695252562844166182873025452122378588611615101180243617166593294188781833876569951598267582949411368112199311191959356433760342360357809956180427616948499232027118328621471717215721118952238577079161067751688954918060736114231583742899544944030996283283981933039130190756442887838641419757235804516007212350593799648922488015796433188361180617827862962076353767681950270455591706733156296659128121976075266024944309249981133545003088023380779891292069353137757682178799459217245649440460862706320841992450543038474118097376159430998053700882291952982920297260407516286335973332562714881068496160180257351425314733185656616464452315327270485487244389681970733469167200344737031808979265504530563717243903477752566293868072822964462329728912958447701149690865354219055450192795936910080544604770602538386192387576529834674364765219442557052931650353794865231058916994281563797661822216014378838888329389884157917333864668135993586792915023152339821608158957587018100743072803997668244102892072545058180156083688191592098255244440858139094351404958007569826464764525676302179686685660495445012341028344979760762110583969939856647601848984469378406173370192700092969374564802363445218610400825117723423085214215380971912234210780363602543067253953748225547375016374676054905995442879304341703615287464297857767519653905059768408872735812873123048247322192552105219358672854239781123931024826831915288195011584946883480803895405479353231211993369426891998941542739161911695848747093467623762108510410805261853409637492142838183224738460364880495526746468834212113032570704355809634023438288126091123965067249914976302754284042395482270943267341766972049252704137706121600881361368491958298371386422758421583727723642245020991836999622105127888167897586026657699635088498199102493039712270613952704067544400572226096459721349977345296194762815640946162042188861703584325946784936488059825193847212108841468556093836868922461139250031735169776601338834918718475143337025449738495045430496856050863649884186668278689647865937618683679198625888826638269538876281594945398470980597910109630450444588656999838793051847776130697007673133298263197889321054541061533396738230558745063209039945592189267332386927847162643272178192402597614254581781344917582197459642118050700974253895249821724938916281663712863431108432263731415851192594868511469402150941544741235804326526295271727071596161299717933429768080070164952411938370592996812709859465240659624261631697805459251976434892837438832012625660304114621719020891039508817494573299932932411317414580626694301870356353199178111902900770731839495590465555338152414684137273628987546718535425457903838635881786109254967008904019316086173722781877752836577184426620051818076978878976384318357473488416259341794336849849100675029498440210708572623150886102832362785565794709588850574921806159493076137831612355982165314938921019855904804145432043748429930915753788692972565473285186605549460621957719229837771652508819087687836276828179269842324793380765720510967380695738136834573278578244682824330945168613170562180759178583276058583355936631923005255371279165522808483537972576617589051717125865947711168657568275807496954033436717538319092940474522615020966084160511811817439933803298319327478353119893538375642250635569749446870716769918543513310494272554321784917530676135486072489389989478055977456086581010686095795700705771395423569286300188050956399963525163741381623053018105568857475108554460739955088164653456937265719498706275974426893870064819150472262888046605667645312175600381673871524586854046891470454906564031160435685852998360150303925984879716815447302320480365090950101748358067622537945448574943854404743188797829029603390683899989825893109285023362895663063975799159720380825708460310859947321531885311817339890762683593662789419769542091033664568264355118158156067124652279417296009484563987771590737000611719150022238434015118330067249538687840971693755734317268269418160161681068892675637694805439596141385651365755980224903526049621950578854463692192520280455997976725820200226031332346370816232012758439126966554996838582921852878084704409115410288073368754328779283547204328382803020866451654860081494868945252519087967387596060174121991415532685333306079413009644967423354140159081061648164297893547259594513750880960251186142043377327567350623766144742051762978031001834104766200328486081274973571814123137706726461207087620882526546230615276511563837095852937950871600855224887283045840262189173334782482103515931267842974673886893471549658437605165219978607538112885215438102525068979905883442822273522334370521300960537872157580241821176921409027117718179124789037017085595411323186183704224406685507506863540032668294005793553857768769792150353243207766349585050954957763444517604337825568944206521124335019013871158357714052065290564083588772467461149554348429064106362275085016046923661792349535402431395181130034226033331081642152172362998065686225485305354826637607566543953455279573485097646446879618638573636050233957439505981932765254601137933643538438955980321148288042391322712793063970998527086223954670713975358087090291083912971157686991304293120621819155523700840351159247921885203139542299076878025094576774654304806753010000099344466661495031956337324441323935869080708075585952820110554949708634145892503831017728669723715640837256423374554603836852200280661573478615649074101609539927175708716503269228349843067709836286479960167999122017142229301149415523779936776571061688080382720790583058076851877555123941461024672878093853031612712332890908237069729431026001483268995236733070042640300204484451969096682523072283326291094024896066361099337677432485951166217975528986390872551150582079650834193696929765097952547624612057160286648389641575412053722739518483781538367058739547331736657732504578875514394837481352753859158181516502251537146047802474223981375674263044160222442578148190690031024108167426745757737834426429625870016553509475533221864851581022013755055299884132751584193657081064763336246772673059056209796272731645743995868015337052974680491609004070117049041005085205862245128433278484707538229184276961689586663158945514891297028315851764662437656122574221848883102093611411606719569656260837107149269226960923488168779836032012109589523792696349899735236192445871590157784949166058537784935546836173435582863394757277559644295134384356424732015678442749541831959498327529296232590446280107069634549999565494194483914658426308195592680039594675982147047264810244370206243782248443775520897612246397477760122939062817076706512649439243742504954860597698908306520335572777289381532238675808527831270770186960307291543095682714902168197925643719951651453181544399256108662349258994119989174941802359224796559152010389505442901833570961239417950101267738861054302827951476203468520919082459744523300753820692647519121220240279153856361537137250725911655361990865486596048169872847446895141846881117321902826712365538613720416341944377538155691052916323634217141647147013638467070449074663791867505921321225035633436547293215561604816753635026674137731075978716795690657015292618887611557064709441839576011271356276784709713164659570364169808822772457147217715141228687255716283825210924099503216716416404059979876767028006025375764048566296491393503602209132524038473424288910836823140592036803336452380299239488374791055759496724079103032428768410271009374888928521811404863843754406414434060723311221092942636857669696002556413981123959906918061440251597567924485190231357313038577518251199387281352055589867823073164337378965427157506171530040498419775189562236239616872840622514626390618029975148605375957245565092595792490835860062298820346075667772564877588778742613605575504728722665279605605585230458753765637636147026383351876315566598694449325002977925298477941052005697589347849543404919792678361695344202959554026679997715820988185836005699002002625063544312592042704436926885474894738032392578456362037273154062416700303005259812276297796822185403470026882606801300013386117054874088331276669670158432674699802997116143181610618330428104718022790697294172806454405526167198109531074460825934807137846920587078950038712404478375668245442115184154828698996816340329399107488314156145869984418761804364874837378316935786845339048159783470097733726358098424580564629151720433994261851418000103721391562223715548316627529090367851485584055165700335145020523611487998078368726565214340954098371368416568647074692446375228297875892480854454538224705462272356578046647237179645296609157466742657394920683446037223681929072209638848208432860182602696111580592581389201131988957559357073279700084704775889605683107870960712997401684015524023481403750714049064328320060863694168792981986259469888307575800650324095327910212497944881480474631374053107312865923764810128970804523756985771116400973944387212571820586377588123142552723938965215613755840343170858126833656206900669504555489756619418154280371926682839360979555721719109977628383349543349572612086165673360955173738317125307621614000729040911356146678842935205492367729375622263707986819481843270722644024215770685490000641369359494385758551701804797217690469841022622393479838515458204539875331170119520967289095300456036979764736464364639961349977501916465905811845893166377469021179899264318325184186540991411295867100014680913446221975309180806804514116657329357454024562475193929437154242636605320847024168611496528423029378107910157641245141966384496585274809361882163082507964678158033785793363985066418102470760499251918796132584298274924184105546454934688899056890172464238361640564066661432585475093400012282325644591357506386962657429913895707440134723922659038090947568055022865905533478181291117924952593259910415789096553736693135521464127353609509943295524797285948594508555669716885266912906732265587570170198450978171858633462339550906492331085920601991428344100484609894363809637603240837706104692861505151209852133975379262093073130961488610557862695316195640955299546303031072346793831128432873565918771076533499131523993783400644312233683079522809551684550824123897223271845612300619186400095869696270060511348486491380698585189123478377403579607182398852133609509055590778175047338936059411753864580175168783834151246456536335762256004346879931621646095229976345943116569914639296994042759861100536292546615985891802697910127233475860673195277774059705706420878447827789558459286815817093466558683951048951097994404666057040186363221317751873329594437891038932689024413283427694688021772865426011684195672393378858105325580556913456713174723365612823511842805515095455608770956635083877907651020569638059717886443183845767588649300747132435061953087662445621918380682799898876311841460424226899641428956926723637198309071031348502241138513271790897080471974466296783906704253840069861490280373316099534650066437619725179981401502290007415063992170659962287683967260495126771686538648001246864751061570400595550153334954211005619457447471728986286805290185742738479121414752552319290968328896950436655632355432280960254962805296567262095944450750437316663495211779226253273053474698844575007100987404332552561556562744370402202078840677897789671998876256613724117772697642345066817245728761660840784527987150495421998165751429946018330369119577415022444631654152943635443199228657179970608966803429045251251097487809821843903278621039580687120370103965845824711349296490622045984372483161449652654003148624669542031950879586113898832542635137491413002343460955355589157932731611985844466638539972762969322075162763190172812969822504568785460355666752836200980399562804011766880623192692764096168307450262459941369182262658785158321194484771722335722640675694511662003239307743446600533568981973437561633504365942884619664036135835309459092992180711181145761762764170668680651514055263992587342845247536127110295091737796029263188357499842435263294522815014567814662514907626611960223054838054069472287982416718656489942356985268332888607917995977159386067187217482603381120542645694776720986488355935658901666759035804734169188572200378348458822254674979042215887306650617296848471103536290013344362303983101587155532673596603069452844740483346152042044756420352078580112585525470721469027083976966127913602526209399228974923393074083420299729979414820825553635701614907908539654203008449398856597878916808971427897610607370237077213332749110619309987369460046780520716213413737993429514379076703631909681382853786388039288279250286874435846475072437077187691079652649193465145821238912007243863189751676984340407672914129707896411644560747934170949290317530169956032750846302114774300544867979785083018316793857222487617090474119635796991874569255801371762414086336067009808159859053409896712054067593048431067067210677834818269392672343973341274764692390683004840908076987199495058473109604721204778514009243949777288791974847182020649690216275734612723165415317810899029620827497415894316309879274919640867833061467209317704049218236146916485405233404935093239800426951056277217710687537282225779338821169427935742987862195812660991485362914176938935232514504596528491816998224393581179246182068962730154509931491098111440289379888587273715732378439074570432764469700089883377248649475209411734739604395844857833312753849931569438891155867977174090246324510136619456843777235730337763718134850123497381212881306491108550007178898629448013565186845935167555416339040238899478560938826809505155318239729795204233905039927678073600950933734872521555937853405222645953794854584914025171428759990386984355233774634868983311072408086906021619160032428528654519444645702886845658017020374239516479786483381721236808597410301412966840666758435129435528733988963261851503629973763472799401225043305414792692301745146576429346016547036615121431489307829150951258604924959198626110243939912136179818870829228946698786519771298678172252867359228992347654676105986307687783151792187762578453727505127044604041545089016279517474978466581250481203417341585783466817910109757143377134642854559698581099219042212273251100563959101725304931260937713419536653534604724383687866531905389089012025818649063382832280087527208717582664640906657869216661142272191767188013972575000906355250081965464006817385068035116618031338517824936792580923940978957049526655454898274063349814952620651162678735785204160739303946755258578848689924110511474526356840598433517331951259537586754056467729321171111377215138543007375520245659315475939260466915278568057206074630438659669079514935994095379179089619252570834220783172609193637659131705867983982498631958033936341682163929047697896636374864063530112110739305420926111251110277560634808665949401999304026510683438023724136785143553653016222496090461337840013764431535200348396505661661267924018080751572006951215934102365912578482667982576250288458295782622700045844609888980291406504991394159127898632493904251512750710737195696504231252374142811989346525603302914441405815379048494208418035985517253889590744341080675955188369392710205275794434545185248902045678108384554930137371948345732753143423352135178603946874293394011380749276409243306322032296850250100666579703106488836681979614628176339193510115992964002442823936059857797495885601379256920395757417467313890404680441852113962599374392566243980035211265486565546359024755696159582126386772122663368310490463016376273799167295701350784976696294190041802445058086599364575263718475525323327014133242026069055525961212173211834458235015452784517101095289812521076409749651286102246233926111312144174487412009924085801044033137464604334976233871893192893587916637576328405295237769649356208379872057958600234345946909013489576404633262317312313968141123963731404648680361671570066386478724273150379749059692205738703946638119561336144705059205358558580931112343535693076249560698442456845772476277154334782265360206135159982121097344470459083953176332875704165283645962562577540304206275176380127318686205014602895587774008794713197488842547782711436628111237702169570033580834734721366208608535279118956864065645558038824218046244517271849555543284639104197025477500815558867526443332864811715278821363068775949673281260936122969871930848209823553345248669144497591803311392044276493950238388938542700943809231352955505812085325455144093336887231572364768398382591671970372638048409373869976070433196053617035649722870658885248834500401238083771771958269655612232263553328464848543824469489255600319747697508563031353735232790209850013889431031248524155614140867575032263567411643059753339158100495040352750562818901249518237111182476999843483640040262035812525237342168513161790553913895606626337004084668130991901885843816485811542785955828085849931613285571649711133031790058010257643821271097710059437295184098647080943316465612562466097242398656821672879597851822800818047913019404049281057283120208355909463196754129415267851398239674118064012084352279056600138876127229283203862807854603105626113213529322532142755614599909746713342551363902103130483274808408176416328815242690895148378539530555998196090552685344331468010671227694514460276548920413823689058664984184167644713180573155823840987840181361154137751308659496074375848636901125461270365882376850605047207142541133983150757819787897320456868135102817139880270923938539470950859344194980343938659743870308665541692690236061442181593609862826310185764862849026344472904316799664959641935728440668158093351476529061128256703703749811309570500423996817928292569774534360007870680003126192663313924640750374965406720879423429695552330847960853336518877281295851888321351591413392849047929848548429632780237596597065228462166761365742909318099868957256331061975600177583326395387681841111368073669064935968042062694825198528907811613592614586430133172012506891696076000568898125164804823650141933942186220907065356255892320810305631729686605334859580710132082191767520666192980679854879272895259189022650239596120707140824110675291629473368558297481389517464542984089324399088059021816009239703170913262159125281106778887769289832480207221573510501460982425569061785233284199118784137585999123743610083034336065297110353465526387994003122420659346480609749404048780451813114403489155473278256294781065459661723323998191212580535442151531458181198017984571743114489198697807987894604494878251228931909277596111717208809646510748949056818612420475000910057755735790226600025240150512837489713662058841613755470271771144005031145442941450374259952650851603957864955785231532847811092902834907526149539559926222681974286297951461336648633585311175482118027642562715054056229057867465763732088420652353141215326240095782078045628612253518116717600396107948264304070024719100931031776518984292075809731041138715800448122218602378456129406642883180598439379780355751410463165247883406710211880543484701991762353829393950848882772509068995494402758521734968876484117149534224874181518143889026264917990076717634137451291447324893015305019982632812034495557756144793451142862951856638067826121423576576066948568641066882634156988428084303365354252951304636203885354497472062690198957891914476598607615367298040640320249218785645118463410045125396578746668657987120442598265422661457810071949294297486791283722067209372654143909050929854470264232173337821070281931764074371082343591133330762184222214648099483980050065605612913530372044977447330083262419075115345981344875110715722360532570170339151944564874785046690333197470409491719879631290448442061193794061804384339725738224104466945431120539161514148314355555772822331048884181076610875462328204638300117256195932741386072624023863701009139917366187732536647391196564770515935291750550250144474795598451878712940652724947115280267768248572408905114447770069411770765862478068930358560038222789089298447556390462247085728711271470690613084235072764733176073038385643140805975605128476112961859056673439274730842369763724444390469724790120084860268389611813068408387147120950187241291144800966755707954028387776155226050873568905945693918554883665823702613779773519959551216071183248117369949333072519152050513424957589203119584253492073300462727715223430761740029290860099105893432216576415008486517131445470430413823087050548685692404913799113629376407293276784105604322194213593095892144575316541420129420474880543712208006832002948923288465783268536458786433984324533398116466656374170140025796030832612794607276732099725996003873961842171715178903308168399571223573220791103226018785827380822416157816530335892199408680029178863279661770683382183202840026610148876935329410243865198666776068432691127766212609810946611498395595156194616155147553862539254110518552208537500453618228317569616964481175068303122388061582197345289415213496643188336810417680393000403969004001268932766588916638168535605714436956179648678115421364769142028216121941008316073868669411016659823126528300541255549467377821385500697428657763424523607835620235167397520711929238170326425574398193498866256293732537122798478877119298244936007159605585355130451132705613145422962071412266542179415950314287707725081914123602323208497329814133225354287801660432172286111679712105950571603718744757017612233520071250224232504325878651682480941182522563849922091987767254110584514132921286078876270764592033591883912045449109058032366634754581844286619195141716928781155693888712613562275306034012109557508411792077885528422485242608034138461917449620659110895233267568840401571272755721227996937090614712833130785303211811540960820835402298296931526140159265973834041435119974737610794211505861224476298087012479626683537397701294061502883678480461771849491404939776248472568945127510966250916008327944309053812362678792749351240098636980254082668072717379005968022418698613959844447544593793156851817213782588249260571990968074136783467220974958053566214857247175084739598145345036491408604695473658428679865012782411101570486990138400931267658011139632765461410996765620286031855925771674106956440536029194800429903972737503162399610466002564898721428872990446001181389053259880279893471520390080419734568542477594278176846081557450197661068819117076675653997701661583009173783809425409407958137124721512822904971089764144076961258458061427421825654684216509253451589805391348394467876802112262546102150386858393774036960405945708108170480038257834045401693088221158869772631661502725688820183312392770357439250764570743687640101000689626064091937912105199553825317421125312876080785547017423812804671639316452239131969516391176427761431477400068585742642790076864442385304189533549314943658559856908194205392189463516025677234892785869453051969466096470840300380819615712695837554528274681329458356731219535797941570171002394246418574962770075713660756097588604690349410675939612623780565327433545493876711272838712163062202102026682394506965094967241163197741630896909109217177174881762389444185655817370890942562601410276722849781764834365435900177623524457392333470912272747168393351220871231262692851663326523706514907857204731481493691720077947830703518898641606924236364879741576877928863993404146589496328555063096758678397129912930283566648187377873036642047260482466551161651595746568804460129052650797785952273889161995760226490531759536162689334912822515430179055016398065954521341457945869895382893680296614424361150191623171588782021111141834219679194924696340460166853338353378749105131860183478658515659484944603282675715599396278046633183498508602704434662041116801179722741781522508865169679916379478575332804868055382529140644060705902075571325233938586137037737347528071375760699302214659882723764382043278578867080328263202228063263500281125206845720775628021898303558285538346100542747675201449503652265306538430286061418115256930251681816490800571731819659947427915318337106428341030017235566916511698935563102745084185044938850221715971040516220222847957811992205988714135921477889340970558912072925396342388801915551891360258903881481465093084154316375054662728111188389157249455680552417751617262839961765468004106451693605645409425741693029447208348669024452021401199439057963307130496076025100867094514591639008342030437712654351978091321986624369106189263429473750279775847337836158731939218014691779501454234117446867334630206070391715127559590497649662876357454837019628512795712391812582476419033566614166102551287387531626339502808022600848317427242084465462611600031227507581761109942928784556066805473374438866724363748779812448380656408890751644388596073947293471467928362470146200421416613433837091524374544401010217473202306447438361452197264108352207396838913922223621361608376308451575092711932934516212886767739593981873094303276705802402560642444704809191867737091075628422226182904636625688988320725074666300768871494865296359186272943792769279570067581618890678151704521023887055838459909724024632893153672863590985384854512472323980664305878074214742721568320380865157198513338285718921645074327725031610690562713985188572909434224644799521411598769028622244471698830903308267145379660520468125319522192005307170952961976535744762385940012266192396523728898639757643212889135221896819991879609202273492975380054135822665819196937876544689110392560641036219771772046268471138388445478733593558881321308490432654957915179061391279251863511895401100371828248384580395778859467483020817821147798455852598442790873367425038353334247168844739191638225518882589140798948567282459550958598106374285262126871423547425638186445085133574798158370014172345445062075948127848066427558619369596539052448039206174750131069357398934893216972178023016777255345397469742388772893727651443750919914085425605846178260022758249717548105115279436665097913521193716749718850898016327240929938350259768699663407173799200657990882727950317856300842148885445951532867422272695277453411575482139525572797149724655670010178659682605665850875683288062609710816103325630348844438234303176516687709981981933150302491026823828073187931295592105336086684733708399909303670271572074838310523905117876435355966985792701667205540900931612678338800775735273586464967634147988118819953551644963756913083662308082683064509523859682188499815722891937551485998219825906399473416729967090670903960835502639513793316887678463385630520954954041855286229753865247537417649279642811093939530058877784051934045730426691961720649580906746977548576129187249517803312445560464369237682710638868109529053555074381899114689166044557063038916959137753447590095571860864864608261354886836298965818404695928062214753492193885365160790785894474654733724189436232980135396323363890448847305576707726048712078286685371409992995546926076544134315346221475592461644936285669341168775017073013132655539751794902673679394264702447483375336118991093696599746139521140956242099118217556696094428497292069613530631135936874080932349618229539406115612196264769727643797486155115841606041905648364108758765231096949908883317403786603199280079638770701797076014593339035762037688960918292887352985583297272900342109908375662079085789681688750089440586198115307781147984344961674947198091676984848710072957109913527582958957157206595079886018570745245265848033474820007494512145904339576817531101548126948218485438889142330705063851067597986041814023954586771233659009063938664469500842550417597987290054949612814895558323575935129214882833592097406039644799069726139394930552844458323596219249970911285826328158093989655442827975570210354015620628753060729927937846950746036766641726337131501682056292389107090075724637149583154856594265749441954606189896119250251203189980566116046451024880965757849575036360027322346392977725074452818167407171615569370121855917198090007682870705515778393257179110002240264908476840213634251813668133043028422093770033183544056109275596860041000859056399534493765107708936967842634319319832974825599120652652009575269527067374916950470796504060127504691325794273809472280857753560058375316838095420718033152387184896536765350410017444838100516357605678149720585116222603668598286333628209947828131164301360662151542016721303625206278316910094622754554013853392092219081667068092567371368115175696753775799214781841534240301003712218979714994126108938399950511692410718163238118916341435126244681608477976851230714319993898108096940742483245246179750460966393543924585645333201592002111139845847013809590819318466063446992308315592647554535875872241599854546223126829880929167460725322367107643639152910139924224392351494096993289643217859925720086180367934801398165369735263342662686255254571219400417105756087326801965279676052099292637954706120635768091549681213442957535263480454513918137632103020213275202605909333440270843262384956309771679058828580031560613985516721444016761482096395866170181503959855852374997976091002385022515209706709280026648884007076223467193383169106194453130506568642341601891333009184430231901949345363008937790419627354967084199486916194949701746458448917478024384045436613556490429132995745744560197783211245853926128254847277726539874740928686774620109654895913748424390896420165612061240330496533820003516868106556427180430047800968680158060435902000595873849504845441282085568255841256378213698655921022649503478362334450625970208811490332683267486873483512060574681646782075359046899229854367772378433022636723564388623352652190900341722579057872948231634744460337557317185370631007079265063735754310413241547045609718764991271209577632014440004677403771792551863607222690323098930708355903098331485720842581627450985678214866224036622830157028618993148398587081373945410752198347981048923014447408587553409767581703488578535447961406932761582036246921826711602365742958774307995047496487155109620678816178413269500816869967750191326664302106656385201965738232316017442297594270231389314717310785800249094406543787994967626088869074791891688737678814308100958090203219401775569269857126148018782640724542831085105917561207214342316675894458989427369781532857518982999042274000920554932566849442682339165003154662437679694767152218762025090873307960610645821775947147588358657477981329687380242192316804955276976882743707624080504253897104958436251329273609103908348630054318458154223352744937885740614891517443678060864659079523211769878751731258983069846811238946216600034494409524317997893362492475247019861801229886062996619401589643138544909477329436206943241856312434990651761486390975155148811287864077693022615148552468824785881445422685883480801673968264442663979748765499450934693922309600442690512082251339820253023910057902190371023980613655693200638038785721352795942894970512851135537847264782771335358855747502588137038410428341299539147504353874615709695241984699104479116923509657929332887344943439656345272041941567031009280922076944520568420105641965698775188785320484185269121831789431457121721967414103372291240669207008830199312155777850235297288551343603030550600861336706741040241683975443012446228662835638305482460961098833274255727983425825867646115599275677956844040081100617335965416803685586422893243102839524082330851197075623144715912362896162449898849979281926618932549702868594932685907567080962411538317656836326135188389991217024841254440353361759876226239657813067172670508758474401816163182316136688047754240634591185081093198983755677876158406078246502164129836701310009036503586568333378738900408374553835778943384630562466021038871960049913033130269138073898054836019688306350380118235843033648171403784995776383142438091216331973502897586909110200461082695644263243903503464487126104442360776703604456881335026631126426403961242012149841230743302517741733902311822378324651405003662958619836226019584489524204907088131957381549546349157355975935074306231724917845687141348749548723989022874797800187820969696354718856596611108650343744698250630176431245207307322933207059472777573151644005278602540373056579657602181393163655096773714190923414720277477667459631233191447226032768348920975884036624712050450079480363512991699051335459777886386753328368544061951404893800824950077600384571975432310109407193288730191951325327548981167678470299761078814673651878114956687392444449396614733638799852980443828575347091980240437434839258630843442407073862417415224716057528760264161428851947900076851672648969832514530683954227523510196992280051055101467476425386223490897326705956574368615570602683905844951174363411261860313242586746913692448559863870755083233784393022043932872666934879239818114312569359717938949629803973914694758133132758015244091263137575115256004812302141897827148662606250649453287589230470404075557529503414671282256630033404007181490816071979735043828267660979161015396716775722827721702826108899471691279974225544298603046603756178835353960064418317605715778366651610586952831231314640424879783157199016508767533680035357275765059942845624927038653167597721757630092107927077301425432551994084004383782781168630696564768686262459958013326668642067575242848001573375349194469152782858105425380553148947324731438874485417509426170601311151176546571750771193271138077211650708932966396854699175132111377069132490701220174637758103079312407271541059549663629105768597381454432074046440078535787552014458709213112991334897539390876632563958267269051507292199541360563944926813625275080777152172903768975848215122504626585256481220462398100799001773518929286843655846820199143651141511200658975157502594958906223385871013296579232380854223077814702512386341197972746606765156421038028849418983088613211260325257924218855975393712718112874934182207660414388620647819717093593180379848123208553690780354429611973031466963461722703774381904456616321268273389796206997598652441307244827165163784459279188492667132793814633171496850046196646911529189871082574383936504126025062869231971151041012890773888285175210114515721607597973081938864306739518397970264570976739005827463547053418780764444930520371603289042890561472814228720683110885770246050597272990294114928838535494062080445152825955384030157593601403489492169971927027067175560384404764548022462749515886892774773235263020211841636749318957814694621384668949376417386450291211063427229280215515402911236006743141718969222585381406395934237383019576127037843897593897105984674148083040588697925781210285450659088625117311077405398406904129141241096461752022020020714957707696815972675969766384792343501164502428445119890219249607674381592216002994072599501509297385086411845078778643628313873948765378942228065351950592222016606598381939339978562832700006995600161259973825603532878090644145524237911696703285930708445008542599209179678078537757447556390210204149212495371540706918959067308818253725560275805475087289968397299971108300500469659359693285470662017371925023314716817983860873196098494696683310532855391844888090227789741612508712146932222488569794101449658068606885405017952827543838439772272674418621935211162999481696075573075587352361040407892695192790843472355588104361260580107466647683545916414911173177997421952478044022008103356903110437666952109103290999374527403658554811139358108248883583843978312351738802656480402592416690570094956139937218683935425620380456119044056208882679906558467017649613742392959137014178172357211050305595197616784956217144071829021252057961991452537508465845438744046393181593047309997970171968786912339342007435977086552837511416966530711127615567202956035562201639624807577227988903661842266062379292098847981444955146134765163704034594759936000504764456293971821234849669004684525175861913051466023136077873611077995905373622325548816180753994870714317443748425171926690431594467089000390834219083615863480837327822286824804759236431499970389687172202013824124843710589146761072976834158777295377949533454071061390277334931628089312560484126014138433951232300508162856015974013407699117957623618903638791059175160770132532491064181871967696520016469752666795404470279100560631105672800023706890601691881786540274602644428246633685402662737646927323847888689226603137885468881874562910853907190363126095550694457803739084096134233085695369317470589656402840414797178929138003178710891383526429715561010407451922665835791225610196351836671578041761894457843915107313885868446471775481312818149380120954797581220516437361075910713899283153397815145702806610111947653979221959030234957335698618530916815882337684205274960969489550869073998432642030485333639905072820590807463568070445000311712810856580973774854443293826356086987740981882622100503298893703478057160728885304403801850731398235765944336001364334772921268053161169741947551493392266713627220109920364960372393504574180276680626566406623160137782211358982625875506986402829362078017200062702599059147507324701343498582020070106568014235213233206300039957023802196873091719708495781665709015389575573253265924830745927553773565986347542634121042463700009957738515231869334508414192681527923056719695661544371546944572210223083672225806380898332624141413469844218101412801432492776999659950201994560095964038562156878639982471721950398554909797728150264781880600805374206351767963777180255963881667779453100418337781864293361553093406825400825369228059493234332618384987693126230833999203212080504835510266575539841555888933647010028933392553133364187934532359867074237715934855741931813322089198973025069055654365493028915717955029255120780247552468879937982108741355433327853087117322952169635444510212999619966903680256609210827141476016309945802450884836413645088405035154690355801243332831183164399063754887647910002758669903825499852444916642712526726157517164896083765464005384742895878845663210438915772937630187067415866062040874199451432055811150567143587276105951805495223000884429763931606263137077434597314406475487445106608706737048941200754337844138983814682368911363769356155160465153631679932672827750442593782652391037165842561708649384333907402847678143356675478565796754021008963221362392061879198814362445210253925549234397404736523048659686595957578433856127463824993927935620523517481817759742622867752829038908267346569561692093041988149561920994602609709495819961821259308469754890443457383945169699139555822120317752927533183609979036311103301116221346124690193464226496599216006957836720852347790221404716497160558937607587004366522435874178369852408708743046588186292391313359208954964504600636376347718900424943552564837001363818218679132980878865765172001693374623220960782244128840322654861883058305647920692483932631146084633197509243084622120514241649212921687134685084920260932357365716677984964654044482474394577941189798406240761771841063652460427222041306342121242776556915428911344411357815120778573251395745745438702643398952199191544751969320065897408500634548346119571772381854372731245026230471650256447164623882098715706955294633731814709163900039132054001081762441774575053399513230723201109337416710906694685183785238162248283214871055620682736106773271977707862289229973399601998943269654056823331974876274698791422062903599528814582490326477449668158717404756021981809373053748402629471994243577880566630603926797297300864820689294949480751136233099991993986740868599607107351417737331953498351067815110345049154128230846162674446264137940311289398051824119885261202353299843399008644660978081372516792375804920330702766648050298713421849348566840331076601976756105085764083423108959384971392886956948917678695241795394386723237228041028347861736031046277222851171495545236171245928262193484386692654301226585169612276301908996767155272957966969449165995692770838531361553650690930136918110479475314043162518341979708442352084974044564174786846482305168831990913228362056314083081564357940139693021195695004691996669390100497660678093966879403822494827892357862915648890008742547042410795812521871841862273127648196530592571502479375309652476498201755505603235037197520896573978659100353268167174168255878828225809378106928142392426273564902982841792492611040898486167437948006689130713719288323898355060409664666443518728691521686190242566467530139689029525394821595557077712446455296517492922105373277081353084728183953732730355009357822815819349501778115803600589442017913860482367946240109171017146580338752281459536591187497807008798354497408762832039111253015581324186491995513086053941707816089667292992127945514302745448106017246024921074772020765062470333643397658598571913275388860652613714108688229981890726625263368970562940446542013093234208628886628258025949926134432685484521019123593486806659833005769729285781265196909068218995524448689762992732403396327364352484965569193801439325986282507705452822916883433242873397871497968342726811546777081051816984840082948228127698651659332360928291434559093924715132247520571129236073668286787470886434529142687523613470030019761024745474046672570883886613274064836079325936314965437054770625863837986279195554719293069372477575773556984205702384880814663134573494355260831323926625015499816669557029657600672328924044106004394055528730702757044767546165918638048678512883774955399368397330450818782678234151268466911621681285595366000017576512682226804771752759827490610901070855954123995955900802828090752609475351296163641975857598820445162187118216327453933759212617252726260697044667906530211768050424757022323706129829523214310588496605880335978343871682120835464082435837803667359542106344581024602857491170116303486584541868845217608609559287555635300527438984681282102716602716778314272392991040403276960750405175327444818932756870816725858619886185436605042414240230803337208725154045564678815603983761842722371249578223749291037930655923651442670470035384123936306135066310284214957200407431324702991407642774436034690509009669433163401587963242760870331356799465738777679707709402376180755798806034311438988680633772666225506972792728479776368967859582416038034563922087814460800066303117646588564260504087979923017167199483468387598360683624185131556835293000530285566102607204312378954340396309755690804787727371854808423372125830972362692652992493698134857911655938815433166010512665369440463634211828602580530380278521723857184557281444999018162145535120740745954022365196464798003596509318213807415554202823808399878317186795483413697197323191210099191311203843676674124295933962133596551563557410392760834631506396037704833501769090901961457105000218803239699822754464502956813094939601913872719571604811966417203281737033215283510516211432996429591203284633522300876220020954944015767352586537859824031379309777843212859046943859070465667741074988612983221082110942644947169160346930403357841247514571512069375922130127280783504304058640203038077944156536662095725430667775446615073058859834112147338923729342641519232815480822211322712428824540825819802976112910111735482969972862840852181908345650101029909366463271435659184857633874831367012131857010777646791706749019829070802791780013433272611182014833012877816302436729563972585637161332673002452715382627091380343784813061871621278498407931748754459867898894083986158783499516005600657627301161480010736336894982885176080585246187977968226795917773253095245667036704642199284708940559643770609399999443537173332351700656309988168670626707509450269342874890860803483670496653191715824654345155099239125389188840917126049704584378455205916766872550482225796818012672180204605510166722729282536989865458791540733871742630939168933188534384617457395430246469574928001745161482596442004691782804915745712892320001510271877846678200608201208564394064329455666336926665323707112636442630747013259270053057792999737383878651991802763452945863702694867137219640935800163822318481271257976142872956743606850632637081538784618987543154562015826923297835110759383323348724272963598457137906726219485715329287433457926153041408234410652689121986327083542327689934169943933041402849302941290643167535472799594430309955555065933009552576838037118628989957226272745339312024632877512276084872992894735333756477831347115656729678868535360141010611782021528321763257788001932475381108295641731568327471032956023984515714767134536405549445524013480772414011882310759356869617095337969465125550516143620551130278384013570056493237794749070321127958620366103250451064485324059364378380914541962007330277072817578217341418352535753384908099662128469048001334730009527841442893667794724373118703245270607999562089881952195870929590023669913921668997585432808228776400030720371816655937460206346935548872439449027746249787742667365790120235406787086640848311361566400754268326908343671033354109768086615960372444469434951242129533285366621169323952811946103692856819864510884449684641924922646508500389883415650509002664909668347043118813168000029064792249873026209389535561123775339607771336378186704098845134983107786449801905192039743519028093915314228704391363833779232310151251767132146172806568636104892638050867991879597790404763847133028913318483374815184850960309354763788347240314990791513991074286885301636020010562340708363512500327926503971716017919831379190164578589034319869968057736427535918443002292094104329090690318029949214918075126723161184170901268850691355624976463137661260101430949617755646356001802875640143840837918271427401895876296229553915540052548631850452645871335248198232166225534818833265678340845169680564469638144109799447665515184693087085253537468111519661554529824960425840949497105880735676794047575789105960685151362160432347225140226324702561638736072107803974754545545258439916221464233364388408390709601775529778564151187229966585303800702338340638231016778300541838561371206571197079933712069284227893759890425554725476447887927334117333057324523442736882067275040067446266619943760527025444192904152943239712552467752550783602459738526742875279756395530318293903189193726128438109002542018438683992493213236586211657276475210275071099678911509242874159265763879738477601033163876062449691690026727867719652341863628642865006777721041160916289836510233455127579804614373541441204896912423542392952448595874598234086215978355527975977164245846571855632909102134587846274294527617365729379654228483827894906463910681370714432578175341630125033702671472768109276904748459713168199311945159283417739884655335041028110807697655850904615213387154539847746012270999973279282444002120582419126689279352060081119020309141617323494096665657151437513281913790066600509791932766942965295112264027388055756910398200738716908403639581276863648454485368408471573396656853163357799124961844123229203994023698107931958392443671904465437585925599603017701314157113001712399659436351595998926759517262444419979354377425740595545389303550150307026711994046447617173432651376894378184592229313428719882068543641862149589852776040728792213786366114311045720285483926114627356082871793165223806874088948390847651618345992271573912948332757557508211442597992236648769266680265397776805877032192139152395409398276862960060807320155027626167970486470593359626129107751352267721887614110021849609859084051651636923826723366836680095566771340560624312997332174668119825976975207519959752734818643270038874620064475379160317663115631881873917615821923553311583984509175851476524357748340757415545068621081496681237008211723920424048624918427088170393829255375736707334758987044766334585428173980432813360390245858947238080810442635423720838487215206033052306698305395494365312524082895787050612053041347175968795014063614088092718081981916429088333443947138237985872498090822023020682393007729213106793998992061904062825455891935405756642642735207002135918235228368094261776903802704350082694958787652348308656275803312331136877283656599992381312970671954312439344162659722024700090362284392233609146664331604280212680915514650256707978910173001265036035628373170247204560078446821268380228168697894228801588026150090934626003613288777237645200631601398359277186593713178581197505033569944261369890832607608636811611547350224927684245510110903937237003241680169663164986926206605125370669481928129807576755298987807595742837246307655520267072199233730937538500615034074124142564372331568771606555272304553220216799351985287126881353149711932205820502660789125897870208298168132201433361058743287269132372411121601015945196961899061444033839963075842676443936625002973172432365724736666380107206172326445608192793973843570911594079812097796351140243277604560863635741656321860925815707624213276240747326794171844536809553979992371984969363871761947380852328868677281941832508389746013498123141478687264542548193489783639753037798413883049291841173585487324935475925717600144755223835972128678265549179339913777580343760128040962497513650821167893427484495296182617786637450640571309541474171734361065024743023634488074346796884490137545359849991248972179234489458183186463605270657796174776720476428857420418504184026107524484806164572484465327460249272919163755826202407522787242960000741477524840551298839984586938626429585163136201156323697942126603965701561512310841744010035410588123142972225700037539129314466310567802178925601544118673530668136379806619303266318670520707066121456363693552021190913753324145480652342216747818400998340668653269848156904966291648501852135604704853836998946644659772226207166944126111844066163768101912923837568699328434553661788751385801880536868807478298713061663646950667248341441734154740075005084808155926144683971386043257668506819282770555084218017201850548266789820075230975260363732491682312675620668116255155929910522702881839302386539061577660858671249321259082221851876005996766195321303897458922940486849323789583586167033249460491983529744389606831100982693628861898113312511385074583095797296278777502571488196491724066445276264149748418663482026911543296178674987850466677590122438870823796183143807837077992446159113055217840206374523081635993997491973119751565858351729784870186698358298537740355027101691607697668648856301171543575257684984241611069147495745321984762259542396183401502816560664268082703374915395362880458333612628630292533315889157317655119836459927412371413789237015591558857919754128050810460439920193882403716953878508059060076468883190270041665539290899473250211770218356150541457171745445152500618638118665153672474350608534601609766009196238889063148134638763944214674401885653015149418108157527234976505362024498220165023089778577282010074251065935834703663072416296948041579685223568256479147199583528928663037067547320891647801832066064847940651993199150911957552672787927423975562557797655195992463974844578100982696351534740473995888470042795419531935276032159223355164406203141681874550864155332667063046858040748494272628392237714063287110356037004421933291117024678791631512817140746582897566261927847302044476128188079512128049288847996403985856002623358703250224441847257105675573216436693390741216465538103714947031756487292725192966527808473041445773491669714507918772951754342433195285002118578446765230159727350290738107587042383614095840916683861235131788372463332891001988942297164193062028231906283577470568855492955031044491304782465876515096552090442558589816123228349335790080388128079180930550995362904241874321747517958389021534593933890191691431333825058300996218498488317368002978732924047680493225425257748254795832288499374839074033247394405059665195487255128028615214502006246503245489413847646605380651617104098060110721430087962446856055807217586380541859758564483931880739807305418616652287485380825626244727893689630741816508985104256124162298900288727695605899882974877894859562636369481427617162167395003426994349733086397255288490935654960498920622900312935049514011637976569641354720808429142853063216817596215270751589808944216909224805319646210253337120251717228077240147231633762464969343105158516265754688979350121180383592180934146480153292876563902637811097974233807696897659959874990014785313248418250131008965894306126610035791970650200840790716091589889501340740373987769475359214047411807034159305961870235830292066913032605169715276819246271787389711491990819781710843162641760080370232161550826296859183812488290494345107291543345710323787845851687601506786697505422514236840678749591264409745939767431499268464053458548878828814795163414735088440188529669074419056730653352256314213630048144741419595853090702963289669440975809026467416756460712508981354531829946552953078413382704800393398056000711493856328185218279356811370668444617547941303549403109942911587898784898889773890456461608183284218772260703212386091919768111643878985588161877107031198751511948756658918060273939660750740473377424018025112219930506645272558318747840516799603150493756109939765145881440982761614378078994753695944692232724356911802057861717643513881463312392932121834810686440696955843425042755218537341054196199752816845940929412854760929991166635342997400669648275530029516082861210953132726630932396093446088915265021574125102647497331466527873116777728806338728468242973582973426796232763711265589560529540951383072493706669003071269307732413982356921991593381880875817936525964087881922678404510190734626865619394387426529046426958132430987302331361188008784889532757511302767350726424604617196550867662865880188537521361859963855204878618820277441580092110297807156452025146592345380979022207117568802626480233919961272545667818989943069145548554522540913808911639002056211637587838731169781259502346257284181555109874787347041665400071827605919459186944924617306663644242575103601292823467216412170316714233730599056243589266354267408420512593048009483453943611976635276894853554464932683152190099219834916495226036335364417088080511534634761516672397582809100434411159909528661922242582900194878715511404304879526689544382430050616427469699854981306942696816863330025652404089332528324075730547941949254364705355681424667883488865067070834609483973621788102550505573114489866632072870307505173764890541192341345609806065894648909941616639855466644336395871265834575464569949644121162317753689448439178951577121380131214828344103104650243324216455099725155492319070545353619173880425489979087264964872637452170550494100210945543939511485458418606314914296529397158430484980370111501213024850069154962677484359574869802889572525151766903019893515444194317091136750553093153622762477407618015876406097836052522184973993943717512737424676373518564784758299288276492591745602652238979270909526956857701480247921155727412052059099186795734473562263217603175331407742568698972551223877741050521973442729783706816000086341601035742564160726565208147491343911810939229828829368169478741580869395474217825666343025409132644523689001517991542074956807956291770674285897646558954300222409427018798404307690163345246517111847934619875296925429112369912365921333449495332798101704560149684496515350768570299378957177470472035279852894420557808798157588681739442824985475602842556150835643720448339635476926681397419751786075866699488267836381337693842885754805765817055870428053071125480125160087494774043116296514869524543476056136410866598518033025407208929331512574669399906664589398013414138261335965230537881812233045315269673781727539829478385594600635167227177091580093732336445295708925663495614429828806907836506380401114090038768152805670647147253430502566618286848566835780916714677631031837482915750647293574997603897346308856921147654653739587508442616031926932957655255387427612182880044569362669550538444892088390283952679077734202620126202936356373409251896302765852721600232671709497895560875997754439002642272666612837185332710700544067461720805669626730337299880443827193192862445519663013177734067463642877536315722174940132338171340047804489962260146747611177007987943208758440707584841166408376878679647880584807789725639354178590534809442968307319625475516218688625479241254141916122653012104618034892655877275191792945984123208192405858162596829886775883991918789688285652038832610924445291341875932495793693054190699455078524101091812148348780970359003598579999272639355910740265910853578439576006507469832346237439910129701166463400850658251962905311080381709660310999742082773849107403331688600945274078277909261152287123953620266407567228023144824676273064237090503816862134800091011369505772389102409632532411636074614707376734812040087003809619974566935202521383329267001297801963100194797913304357285441821549632435066048376832176690579627370244497482291932358459525897337187528109265784709218798242620234388610908758261934598601447391367742410939293970014589985510189914718741919096492866727664657930140565882380893374992566116834641615708539775474590826745089947396719520228043816431252913097344479517834152224004588268176699374188865161921785160526752463199763804044901440925521420223551406604243619076199602760141969202466722150821965469344045736656097808778452060624427361951764510621087472605997550516484878303734111559957091265842893613884102169002252850443865726697822357661623940116470543835686431264851549786460307101780114486620550596722472068959178713052846409901246294757874225091149455892847744550120991390695028205675096907498873109780422966859549651985439696700762354863533281486555415125012476929066981545771645594390469725572588955001956562764445546940595148992180033855306285691356790208895475110099863345507752058612812410355287212416068885356440742834443766604544665168632727078975327817790660703899554621846361140449350325028518673997615841221591175240827878679118020836285819691159516773190820894217861657474570995867902585676595563581491208506268333040077070871649971041297198163448061354535352573742672851360065236320006193560538437995185163676235386436694518871133790079502683019189616298685267675520751310806851857410454973177441772686025848102965958022350083361882480186545991003649505742810844910508608405683124538282945021613508949186034044204462231062588942056825488143923054154274978628329283178714000745804823013736511233648365778144468418549150801589571423750106949046163995890069551252452785366742797104123666231418078144726411339695669776909393008043946426953438325961167550255118006058895942602623492718432885506942850180809987833789724975445892688167567071661467673544517296009151310193354408938215680618486925651382131030270403802897185629634175251482898977193138177660226777030812108047604591423308969741045442722918677142471234306449542336914785291034391936141180202284789846901573044120591142224057669602647665264264372417784731065071393825163941469595320746136015874460089051966361254165321343983854230670564369754701500197349614607689903730051241830938553958217709236058513467099396226333137051987628476379030967633673100864739933241819193174988850333048884556732992347320875665230573051375896403222973228293675593025275977170968025757599912148588107912963229138605689478531905742229328116983584052615371512287093833256369526095440958828756551924248183002480297455824181395519928507121513516055613393998658780956429030868067601271661036203640153540865273930737416171276944591068640517942372031937192010863860190201181491206727307700094080576221448651961049902317972812821624498697540229119528993824383255829410189467304860455222666261888732950649461609536970631763552993106103652045094847758153081064018252127468303172658343657077473267456087507192233854283625446152978900003031650114384430083918904094006681024743468077144332189117402263175202499753553441428766271053947905719023735971705140081980605645346214519781313799176997795831538455334339671981018842803814713950423569926903229139146196498287078763386324702768626457104563510182406554647758323176224592426268666388095529001782662449641253487126160690584254474600980378949961819543984578279283327700723167763879416605600635998196072398562050018188685046077472227370879849646654837223125918315193109943940276899463561659693699914416996637030726984505478015962794613255756345663446717032786885927133494098039235068250406266263581857192163130293355051595094631857632928684281663237504313230159811228806099571110912910334715902272205861186886484611906776590363180662018361614462302947619819159919700354994404561331982267297778169003782479776367296776573347797092501764015898597096980871081820884993465195919030979381361057062467771988842115287944291057186024566370671989904903969929894969029446830252390860288789214439629302593453615200126430650722263322613122615936471387276660539184936804088692556601931094005495052388505378248609274578981922426001293864939183818933102465030111670889861102894615001966144182035310724687052841142867931351411235707890505845023340727434393109444460365894395696573960435454069053192268752960446857112784491869361485182623138483664009380996686879758744869876020905425478414697072799106609252512432618936302540961734483471151814832995706746483340814208590702565002048824348629386597595341365432372440721946647100369816727262868356282032309637818063246209193751144051142281297415502020408777382415913384927615182632504653251447158703898319743698169419666038775758332472861103102526059691164331105934143923734666353981860831771660609242687649262057886680158874020397933648589050234220361601547501677142754044428631999937769114110829647189423254842474236889769733944634810294408200209158972062269981488930292514621813339341868425846517217247838867844441008931689898443759726504128433604427149333876255549528613274664868597683839533822883845021570028016003572459084609327866753674773786510472135400228898147091016878469318475798831979034249951413970914213631997139643385184272797849663876985601626178008214902175114016268205337404260638459556099100389561014448991059367657281582038863209206540028900136001087945398946839737435327712840988282779706508087920723452950653097345287234210186397947258360621434011768014645979165567489075497040970896121879143815015358531735402338244821156779150224616622697532710468398924220159271087080398915267919933719645975507016827808760718372230724336895944264110758723932170763785395957832254850297074202044508916066426699412332138689693165790129799580009052638705928597532351247714095150646018055083143688038577446887373192667713139361925095474229067765879962584312523132791505219712152539240506431267554670961279311531665603023195705997768568950031438576483795966579486692663820104184537989365738626161896630280647556544572396121493328500300454100178578229626248142483865497828785684896775968450970386612616143365027541153330519868190179493770337172701585781192497646776454848141742436459937090008426787389125244551681658951468003992452010085960102535742427047847224245323807598009793074707140705485874578857246155632984693321616112669890056889279906792851352116169051086039106852172492762729957769182341701848948350170594537211575308893839334508635629401839710312708597491815399150693201860870940152764349144069129042636164526797729757131918176842280783437840904039696971418124179076028761185133876402821479333851376943193957159943912157126008848351310228407071810997736245853698279448938897016178918672172429560819908737888888061390578943938466107003196722779235831266886697142886478639490829813215291955624756812049749455049114187448878342557884273283215054666968339502772906046910240472354214956412444025079102785990714445996107813718188304487577212787230719168702304139732963601683243457077229764417954660265793717895180504486112741339987329099651570962422056178907171263940789292444647950731146488869241208772435990714180256208191678439894692040004740935097437748395910648119177309249355393341541968147453382306038515938679642886677614431440975931395262878303374894996636894115799465326215431840041724876301222630167725231165675084306340232092013541992001821267280373954361425658484757607086956400395063763241386993691832126361709298757045652795960523798533969315303860860165976107575449084132526795193851178502296422442760317137663947780591727771226474790378261028054421746083018845051835354402329593044060882537639574555484027896185778133884397420817148489443620570190063198196879494169964366028427500881976115534609684006365059493544335440649184404626836728717730677742861587411095057459168549678529628671862232034462330491241178138852352347604839456571555880213829262374490405256505567408678990282730054364101393041597782817783770244796488724056639971387780650165400193438730731136734265032927723190373913034819024785199657743276212548045567869112647166340753527648809709968758468643967464228088463490900779438000386550303333410254888093021904011198745214223298546560107995367137656327839922141875358252904392582759009461407766121652967219890311423155521321300313421825583395213786053369516077874174054508022712643669121652094087799108387095486617026022805240719170601427299240745823372158757594651114776639494904564413195130470074928266462062541996706574477009185005541054550214093145060741500803906055567475833245972615607424545512287312188291132338718172021946271736978233104283701084632043438973366364589711188055339752672852406519940534303053591789875145896839346341184636076056624502228619958807136477863346155137981008121021314026125500093934855754764578881303960625628549490750085971529640895811881448217494154693069555629447574617359049418692703381548166249609563537049252647442711318326230375864697204773699122949391370331101325634195423658677638573352732472831707413988958325958878854873886560846732760590683841530660646763257935845622364424251546387917690322942256264433232612978594972980632600135145532483130346896910727404930858863175767142275245018459295443765744334663576607300919218283461281470010937413313099773055428556935873334785574378841463345914798785581773478236700097218973052431875264974990435029000856994111987041821309780618146496828788885104671812516309906074916211925703400647457061343287291153789426476010787656911825540501435689403150776695217229011811336415637970949048323424663958234747229705764296114360618279930396794229533016942845815614852032411236389231573219591807616343263679242770734014625179826118803098876994632477465805954958602825472141825738819447648349131327595997024263425933655123211258891577033178377775735388406097972243031690791295789087247957469652020965078487098620546883530052292352312482793781248290462962469126397461561866767300966887748815297718342880983419998156587643830467369957228579353434922833285401328354475824660388971146076660863357562679102580892746556188407623382067602605453662625524438104076565051750082126860460403191957794288743113464078638039577898792405356917461773087666234378903600441961038052390378512173944389761877586428977959207858957950268037278553850283221735602234178849732162375692004662084093684723351472392013046981515425595065400234686304247078169117443016927227119739874349914440778722261209927575657252170793786831998740113872944734352365706375105116539951368533691276488458557499120617301942799399974589512365512964053947232399659012640583470556449635621314068541713602720459607491464407855525697566236440370678327678278605809598131399103697517225483067192647571166801230343054154360817439547338349050782497079735710852059346509502509972023100232293574157844302214919134200482599321292561449451155009738723744287955269455263063204760782945390887983533765598045800456941490891339648563045751346698844442480441995819475139838976422636102012516533130787558161960163394574825026106293468679386680651771592343917241541170762303442366746204939937682423946178583997177108951002229336110873690351644100544066093335603320616646743978835861958459565583239174251607351874411963138085242208306071004027498404934798551605582898045324288168965993216441528386845987641564042199757853679539032659573206775582517595602771126272875346491795831077540025780265088075978197494477921173458979831723029768436109863963652851112777885774633505139364180002691600688194034589309266309812950212446502750804281545814873326353989144709846509577631476953847716803761904243390069239160946653507041076923890416877685805776406383649329969883768145301303156988341078605757727078236965378806393471244866379941886017384279135672663716559616060473776003065001736598944001402634367333438362774459223416053956720181512706222468599250766036282191183815437007723696238580557168411373405522763872154972507344067111693020132255045533826729943950849353477215955779229938419775209209967586783097408874078427347912822133216725582641315049742887496651331155782014212210895217515861678339305614411045792080260981677101005126147471064321409693438002858804764098421808592337649605889587192550545207738466235606349762286369282611403064127832268108643168793970969508006262105411985187583621664931545149628502727524344401394366993958491200902607305726344412774910912655783571526505017788388962724018782932636380419167027750530818942493292306853478186965108665555154379126322930599872112073870340468995108481205958474765307679472267477214444771079105129111345273916060769458931336552146536891433355423168853401707587213046851318754943727208042303991092772037830328870112787300844192218186285098306047768243664075897441373764356430899505948777733112073538394018330223386893617281625618003948594603214505909501042765478236157619331486214002071313597686772573577896378220708668028483522320145159417209654313848379054337494733845466346809697938617797784406898596833050109183331411283170743089668397518022335472950049806751982969481218443631755626920932183741981775175088240063998233993772560554662548471455223563238808279979866908472961769367345876298648732616317342103461928381781531076008566780169542511291424769159388428310788261205689739556999557258751659734889247494090210861769596019671439386618733538508491992168248850793861511839180638493049621333022468464980899309120939138891232323813895906274314037893771052306815271042784982129711998999385466067800808538804896907731399973212108987010507460934784552366166186270240632519558579937144577695911170671963171719212637099562855548393951683953033197784088223548596781319484043462673943886281573772823161119078152658777102170436686070112786129249380477994653178899809558437093649296549768047866971441411050564086976770358019050987257407149874174775535910810748498668097735315572966294216684149856631618931722032257688942247440136757948156852364267813553674641571072714725671102606918639740805082085093861097040225419399749185523073125297268481402674846724539230606301592986387416523276016504159821747580879669576495378249113517455726679167282053054695030761690235517743408282498027646396180691732492510117026045881240005439980633372544723391286518070843491664510832865325766134213269910476343079716743982801836076890536350533916012756000979988225421396641018458148965253409969403749608956891741666051534309407724948324837911615213783511510117796901085550959950054087333396400490967095062107396109417743758420787293869805474219609576820930419379451168857367095712884118269977488771721438105682568871939883882843092156329826139930353368424592062959726058144249743459032964905206151282817185075764533357551880763751625401216033336227511541360107933425622881545176248819080001149040367633867082307460525603917332719904939860555248772099135758158800664460577512935035264364856017151923468493466770749093367514506248786696641557833801370517928075518694241313057719273639066472733820447181534205458130877724199681748364375566720054110475937147467384483567858574483907485291639528507815769773047229964085675738162832986746512185416180867402763131272283226883189565788191797692043970984933078803393937251888196199126779137358018899176445505143007570115488991469796614720244453886928378499213294149095644426722966311445512554176655550606574986195580415460479185049442690767477068782427908208962404672049143175957547648687066827303939644392773038992381170698914059294935679456257899441195367583048363942686900189028838034234678523876425103040069203093615050450844952577682437104370767971873736616919650499641210034800569483374595618420949637020697329130972036937290462395398353260283072771096017139087879833902439019754415269198758119085650581118689483080136750503064801796022827294739002938940656057710130624841138023190656743187930130085418017120864020613082644611109180590283926573394751177743801795985085245221807634640114670710539594246777585513340246635226214705562953501316859848228406372473640258204294519084244859792439191010758739954580927150061057648197046292039559304581073534372867472346713598972435573773349083030847080418588928446811756909540554647633095834319383627164289575175802612433654347021180794983011409864804263191138733465100263874924855300260830292776045462046223619834349948832723973167863403717032109942988862946432791657423601641536316529079928341761023057199588506696320257517455887219841826603722073257205380984800663239888029224609504607411108240655232677288690442862723868376243673004227549496282708071350160579431460894617078237038264148452198451574748752306249391976330809374741354579369007569824042429619985430819823312758099199256324917893919993311462255811410461676322768569541969651746559931916536648809126585795323889410820472630433981113953150306672858758442376439450078543138801573973453497277811012653051509022979833425681731395668982070660666133219701586050959239644084046928429650961309499538752488358935935450951560515644542836653402032209986145568112456818581772711453908790065126209561923140435734693784643263630758155315418665763796860948481892326311943967300960328143425549483598717697228105322974096097938239274132591548823640467943974706686599202358477831882858412485970817887863422217844727632048601141743869473015312167567895532024945255983314468060439518150025772768192203578758976290313552216812897223140718551937336451338088907219007657116397386665905736164200451050517720286510512554943424059095689764808633834315104671635258060380039210985589586360787395111624034523431106584483901937518358628378454980394962405080728069176964572775131413946726964182903441152257985049306067340629058926806434516684817448407878968419669109927481500399690065938035205731294431464785399724248396195903569276001446248989915864254165232896150145785235608271026676079515038017028249049810693462593233009483542238087358912358900427058609496026761995021722897913613670320877514205450413765652020245130986026748285037547549972228105308429706740278901208918427817579293328320941966192956604368224984390927573559413151205773237864681055626613019806497330373993446522063390271895547033393019215962433162478024345966401106930486690671639394360849708269049129650790821947297130222566588501201584330262957617964561359642656341618397594461671677046331258447958951036080350447632801536698464921231350132538487335924199210980667407003473101366019925293435037304058528366497919750190708898372135801948867809564973538352631967250337903727161645590940615738339620703756637328797755558996924784206821548543331903702888263171411642466318929164983411518862441122203781668069556226769329134219937674642005779875801325643566759750027944701785095200459755975504628356855765321554678316420797402868519681465212051978093986352818734163044329279378904966156088299865212097119337904156179773949736451571640747373108189962286467545414473351425565941995799049442822972085515225420192855154848375986424459617167690856181825384424505475988509166310650277989952781043743524892842451205974241887395345994139034999351811382751664208627185710653625642675066474483248791817571271241210063186403087264208853032636436167664202391695933562729025089499306859371130728363555446407781926205915143036601803825093802226575531479923843049236143421171225604027072899457136426321857013440419463782698121176184861726683771330735815203242707779074216265445475540337011575695802653290680171617110956089708400423823396431216080031271767452798807070962918369384579435963768357947405799561337189860389848119837098434526941704359632026013504302491998194965573159885155609032822784668744936471218210936699803477688221574499856962588653295936394471568533928022487641955887345356982474828726701497207105120495735502882976316087895233046177879533945346380649173639608023342976336657712230921244031784606231279740308731590224556608110077547847398266094118055146607483153680643212550410580348869874165255205211463261500728587135966190409506948799972901840091115015421986017152314920117188827829343426912979957004939801338284061878009269491263490108128292425381522394423830557911143865565570159555683398122623913646644235474021053009552376608898397731621889052903766842152045728394198900605823200927783337323075685981132721358860078379586848704664900687766231937920006399684015979151265638108446548344973707401647150199864423552679921182557388112128446599844367777513253637524567506049776007483776726077947643065164578307787459479929225773896658372112134646645623184118250344709965466033229763653895518352436871659147245073236202512905672322788417337198523910076600496896806955761380109897946866788177061260131999207140445010207921352092099467696513102174493044727989694020026867539466637690065687802224451747701421589714010110811180263256728474892688965164959621037761704413705513326831130903950455522932727962212006457576288058948366136763470792471412139574172321812268335213146589752293215206266462092655522810244515503168558651566017486843030109494671988969837045168867895631716866512930792580731131443645529732467177238063491342140300814534275409062275137296663271476608754294892971186547666353575731640412318958694677506466627380881088519096961265302168122047886737254322909822872573180594759268611818309615394604994099189131841384388776872641779250224183068897644167655236710222764595356432257740390117250779737638217827162569584860575786244277532062503326358611258691134475974597723561353608109808215906772578466236594209362961542521494375074181753196503544578509434999907829811221441217512850661134901901670206532194331810185663823869304823007684055756286278804350706901866038839974567488725105756078831351167157527143295768569889512215999254796943261455458957984539957233945086064323268610695485208240674364624989736148881730425591483093248798295272838757342354859693309407303986704846559110844221831569187223248783549002200993461565233445590528694019268608166917019599949035859797264364841918378474807706575045799247989888487283617476385652994270775794565519236086935250145174688000291316649505526109442250484523546242689644533554106516228104848418959898885566796932573507122621461507275147334955643278334685291915793689581933563866475273566465848491312275698020940674284349384907658254269754480458509866222267794452949186736796671426501672685206612526944059460731011663387500006241025949436621793886575318714568336145400720181001162832614271088779278912477680010135838797690303355385916540616556532795955661050678163044431016683142385179766271283790602380992274436151781741675973565587576712654190617441755069096097249536514786779528743297497537078478344701198931870347199376734762932231356725594000334575109588715744813007583764350082017233625954368459730947824586972286163047640206508406671801358473375768049971634320861859585653248263273450145595492970542502686045705425929048598146133380909965320304769263256234918940638452346984325817268966190135182960781953474339061733444754386494863248901058392856228336086069418575762440620784892189558536497419171784671705521178778803402482197532827319917490775872703870713770872520005896201358317339644050277906054652834161865781620434164400737649970262770696178184713542033797944978646886631960341401146812636270797362393952614620803144756389520115811917610971572341988586588757258082477788849664941617584833286036914482459475225565829610220740755012200944035551493787199027321288023922708077549680331531626637642652061096290366257708030631020012264369654262028451070874305137569110035378458845220150795069369994995500998419776786879999881137789192497622045059353722693140070393337754623702096710181230808250359746310089030875596116329742424274979966780595041254877228025657698235639918800478639091985909505168612518826810152643059709601986188543627095984908380034782630526423847006608570930979573597560988116824489833990355397824947798288807023015295334982732645151801318051623584717056633454837541831113481841050031074596197712990092934874858833697191559342567590278568763509788769652949458938168763433556770331860701680256260865546924452661042716954704094394979431867072579589871975315462761820591650819425077630464989694059651291259285742429822936671003365096030164640629305787319596493139590984997408153535335164815575460352220402239054799879071681374595080130574517586380141991858346401992346248012628915029379536294053716979264441274145948540215235353987832442341003796013184076390125858594129323550010958218795980521747997811787434130995071590527065817049130825109507581828623737604998467886143126400455188573391185020438740215903344884807592579853627324572244770640920551722262380579370349487968215573445771086210859983536433362672371781285864830936842911790983617036697129640467771942135590639735449304000226751238472719339215131347192790178853675089913406861149492468227489726366481985079713001732767578802347532076870200635688100407539388184633976889520183634134557977836315031946490430472657242286227102485362968574915226677776850686692333445218591489700540821354307832860253813652168849439701440039723172444864519690115592982406645538254182326401072096905146092229630868675633063339973252652740415161200492397655963050175157577984783946849885197990084368717009444285733282652947707556487199475790770645825622239534889454396781070437474428982195437804504861373264460204878154071333562244296179924548884470621748021595825069400441173065306144236609590719001088127692804870166827134786226045504010289557858137459123824194894852628394418440498235593519304887825878591492416970392569756738215880058885777230375510744746095832930484253302688870839449084030374442964499764230343193742534907651013401941485045263594022990789902263969354273564563154230607767040531861932941416903490399218208847540916794662596221819604982492322614473171233355436244723852394251668252557633331884242695191495245382426864123799024892275153763508176293060097616951046465321418198741054725268168754319442915170134650451914901620244868721668276829629771253641141318783996810728150777590691243808132445006023385838891253022646960256329105080520974231506806331469479093934338904863257981777452739814225654125653402815415458069014525502844197913272362227941903451385284811974698838252273905966697235369797133764210845651704149445216861110511681399082344744679795278354782783764172619642979567639474162258250739127103905985538097389246213304775984153542022243209769975091047134338594950016679442924024450395020076095229417853817883467105329804782206738369235970415026554861403593850457009608646230282855032430766383842515516558039153262613217555094728451240929147771971732660216335588145852081166845685124862172458609060585472331338748806524236502660138774793951493082094172747773384560236225938179162338847526337090467402280595711533651622367984182403158860804760181817745269209017907698927018447177764390402132700934695585327081107219934373403922724575788870092995481337049137659142143685610436954089152582558044524688096546843444423700023730755869586186631222727390609603609351294027985343882085439170390948083649456976930897304493235047385645652499469573144450226632640044611220307698047241905614353840468198307849284244433743310333348124968545687341510324423693597061190544334386979341942318647150587666683365252432094860310597489932320233818242947530915757486299406930448566719505666801170904595926411186279856372310476491146305392993480226981971453526782187060687833102507375446399423231415709923653701984011760129123860741876801540292495518563968946883799848940532573313296173443603296522547528634452397473200315525301195398242469550786794197639342562291711287509363629860080510303760557774525734945380633921363914853431542698748981732711296651218023736587796561708745211917501179698182289138304819600111851458315985545588753686094929035376554704392811695350700936380704468998150098482783001581342853702543045128670613374800895570713691908270122950342723598006655847709313943941190773783722671868338006180342245403259147445937053960169730111065952839793750207548741557236796651377419217439217788339996291571647443544703947277368030975429771245578350756257989458771435181184644260976422698080787061965754911985848069869979093522669186367253516512012186151334113207929368203043914016521566341709149589849000172705725719059269323617486627912271048441742739465398204407137823901684010129673000371172114292496153931152511717631129219843513473938660852308142364803282959642112133239055468777032549471886891545342693352819816150625730312051204951215325676202058893596939387088478210204668676587307554204745835289171925276346193947632725739956302645084633459891211955329900354044041299343495374858657944535652602599329685892608560355221147617174407271322660561644441137408670423117616692486791129131469602502545750575678207823202819230831557357449837162764944074682603942278517129136383400324805168569264748349662144103734500310228521319095268340365078560801461018584028672380285252509405831511734772048984451147301354621841090685158866524712092321870431456059345799985712122185704431337096127687437694401979341751623049368631788366859290381893637649981307047390816240929870571917134706767432811038051184484388662606393177515719243633156582827865223791578101119797060172115972684872676769574974945643835364498440768457205909871811593844477247809724190062946655033110865046851540453554285609807213774206859731703736070934377228459189343504131736987952455643496013063684161791621703574930664879849052241831901310734863713199419165518276375589070633543738738557019217038003756127258792425320152757602691470576845689105820738931652357326350347199861871260986749908627852370404737510276476245642845722119015398423486662458451185725790314973209195132923946068916190427279610241406544428066707679791403841052564250510881087194443818259594587410560245411698169540609426997807233458221379615707613912330097042463351872788317327279218074262670136076165666986364552676028861415570355979121079319639961663078655662973346928566562673045688482063508359852173401016908588647335532164020493561900754119857954036793313534527151280246860791003015715334009791166677418796766542078266448439420121870911279609836037822463808953372332246372530110136149825362264598369917632749551719678923486139120031309242247759888210338135044809275944363957533422705388827643377613572559880550511232909206987706654704615504305827371968763969664217547643289144593195631971828266702483798973523975538407679855530784575672488723662524125723950070242946961961172641915355603520445486161228623452969594213920239191526490184386895252960529203134572344963411688780808667026783857351643788319965020475159173298692589635014495637401945387732924842165009769857165826671918554733552077951114212112491302266336211802534711373322363698070771993840441851240821211326277548132670407873828850227292560841737671787875129475043755487746086908013069599686553850366727331110022841200905378429558228885276947976060270954515779199839721490616302419764399467997427220733239863836987277618780651605843630891124811998662744113912476843359726368091533175894729878982271548955134674990415494367537051836202731488770415113097543641526821909514972034065272190809995781431546537707523629044750502269458001475821249768705886514061838213816178018883575555740276200981467076456394795940066651385034450548785733167492047310458344926983379883294943202198216319726335467358912178504979490712950720139670880266922384939692281328364140487805987491588202076702920372180463036278394085531109671692509997168125753958043403053482501972872345353594131570363413207304849961127911224575241579223169943682540626098965711618710647492692453745336831481004902306279272466538499771754604791241206980072657042614591529660697038709724403063995792732748471028224154795371129288665665582907572972050347043359278740836719063317526756569282091844675688891108941533468723599101571721081796776256571870775630868843944386383200954494963334955312346784986907240431574429107984400681151797052649225055701398773971726415301078597820256336356788158537667992569471012057950769781939114304797479703271912263727100324679256053141679772748368831771375510528150254414323539720447990012788814194551405779411570346727776939790953700344045054636174426908158899722057711484869685548015405390357167715430054239723743614390474505950429823834922487376815088638370786809539824049674571180389640444081579453565868658932437507460526246300186278411890186969274955093189227820353125219465242226109188900382233922223778536845150068954747598348130640062106042888418827994496594035766756593789661486116735004770358703030211244436135974231456807290461495043696657192593682297799844613029634535960236564576974795591294576624512929792500014325501413881224663216667616785612948050732048971448899780297608819753706276133902038791963518216899270954506092074212404698148510639015778751232386178510955419697237205912096399828918132966321932605534139434412070701612721456604490840896474267055332342660767071280209405858276702370804630204924111766960317856406559940118434367770988769975524793165152586730444517491435056474903567915874195514803947529044500564554292433258668059736327482202232118148010644995541038334130266403475813709101801994123433254480393798075923128845665991204981210765540430020606285734514987693451622594735559403030123356860188156036643434249257089332029418402635233175877165867925536953541682116087939792644358951094875184601668821530856712936565383523677544386290838307084505508451603426731519558539212597032725397473131522010772556276670723961169476713715007965782367463671207004427821898874006886948106243612552730999346270319495100894540388248839670131086439398837837910847996091533246722389890765705062173512203140825041378561177477069894673459287165383741849743090482171347623646351971171334855756308630471286176505822282061068547438794040816065115487401662828615169144405171132905200164648617461605134211939554875182304490047383190396646500382003999183057714889898440607349544999094389447711017011920241530857525819815429682018535385505977329194580380312832656450366676496101926533998928012634943485797582348394904832444757714952338191243094244667309197513146331029059497234996026295629525338843248829496664387229983454340354344354361926977843014532275309061928413950452395852545376474545828807403649997813685585831222967366529956603362996450142032556316537817349825965565388749307935614563422392371857166024828247733107013875862967028171878342610685821542628776069778652495497778355141044077284933018738316574302280847308806351911960621024840588308502118336526071302092787382483999288185543612761060134745015066351681793864530093103911472327692358836955578059519711592933890918632797562323000137272567197582752995732286131808299076629966820021552225461858779647052333935978981735055213603385993631873695859909763703573206400210727715958702853959307637036536077904002495441767081412621741566143360974030473575547548684578704409276174841508682507381307499160137686747862821545980187535961810603738133294827275241022982682758736053914588060581436983168622595393941696214503112137336176637053281844980230910722938741635135136501935997430105759876293942616013059861803538224387455551442192666230106325275500407891739902468415752649223574580895406904889145792266100006325855106472813387364965030643975904330362198679151267094313332828812115015049371844624419040651077075916262796886006449748789041556913393582950013866579535606631841836859250360748886609784371385806014849102100782405389931858195618473375520731683937359075931956205476101911198471757992356678054746173745878352650643807470277571544665306609327989129875241742363645837087041000864600222578797687823959564643102551196155828844636102280697841213609656791357894915894786661085003256178962599708900139437554344837496126991336726926427246414127294895819872746482662489382625518457846966484058861641530648434105335726938118756970009736123063448562252802401429523897276893636024071025688521453042848079088028169375026535812620435667984147507652315376265205870710077692442848310296919134852234120358168520003318084657403027453835909224417031775323899363744740284089350348011084791765272363509076390493454779271724568147383059622254782840086893869297094914206090240621319620894642168502177141922891895463580148228140543729697331790151671908390563738569943808519927695447415806451315493920524751362637034226655188350639391583947087530698543494971425648674459377296970009234758606132450332658154214253550229216692758303453901824525335559849713214965091384197333229394211232273239815795857441694165376590539289040920948981935002505307255194060948647424531834925778064915503709174375835485460025188268909503708680547648202548160773078189231738193426321501196927110034647550584044701457376558854157450370878914548751518010812578982454585896506048034199201351627466146218533093334551783757444506619864069614630662033129851212490053669951950298633121258577712061455974535370940655593095631820788315672714402922979837885287070470720517901752202731086693795391052029122948632848573711697163220602271860411803611669126753757349297901216840448532588101282797205385673541321576749707393272131189972817296593810114354378603559961022476119414538792638883588999857973192849344929818073707007853499502300746891001640541412222376320848909031067703913876660939657950152988621703159733454037891258259475500738086890060288177414729589570174227958979940146459072103892787441210283985545062224461788635448662101205052713032639526130816615806647638985826147981179413371254166965328798371294144272085574692645960418768708801172602119164945495464974322005036413405505390504954840589096307122371329926334402713952785203073060783168573102548172015854672593852043546350022883253072912915616310740954070054392153724108235712382387993977802159872182015838041906736519103732939982340581810078608656413976452060900957886264608314184471427588943536734780026968928692155514675398417107168148248510723660306843069550121977322186431818011610428873860190001003363055319781361730176763739139810269647757194392616101548538463896754393326333812640613253827998914384126062919490091356913738726230919233070769952605013459980879267342917461548865724994666246766270724650949470798680417108211554932719512407975558790349589269037150896640916225112377139813688797420950574096059823161731253229199619749397950449018696489429215622915218643948389955323653322839761560326917338709121502540458282006070775274721278089972716684274922721509554868174660785592199281795717831986594088278041673857961010064995289035144912984178508323818793246535625248776002236818251635878301953274483533412794809313859539471968379092719113986128558742766443481101880040436220552258616027958958924913661280686515772045002685531382466679273061165765542049906683022319067982853360817642895979479868663775559481902240112995784161815868131278329837397515898785335693006300298880610213670293211174221550332384793631527423730860633548096916124037462218839766469411552381161579479317577098605537730432210895942381549970297515489025488336897287768191714905740916059242370737204099510501722501809910496692770024610212986634140054586492287423889168581330341912180264387435445841261311522666122728851990227538217782381314826415274317674374855174826112339194639249121522452621741936587002706557356854898449993778016172171785848732947557955704027856109396116718207904518776322994357131018937248097875524612599710214741875220446139016147063348473944390199351083956196049624219474230696452701265149393358539534656778615068188589057952761837611571921166777614717917407087965321333950680081452877752279693710393621219538269577646054661607287995622502117936617873081161765582438501942373003500677156797051115330465092288200155287639448183153150813818785402860743144991002015287286946716395557477042519541827976923207624880090550181070466403870830512952264932719507370870731222196159467476414336364266946480417123876719674589067650197459654990004077014838412298498919327822007609198910533877447134364254045868621937973223200423386003262862120105279636993475161539921093449521301187971819234617505696906139683259110692092648017185681671397260241759582760196196943640419187056268520090360368275483279802978076337488749614627384352422864236520797955702919032529762883295502453126450041746584404022281271781642003918039936416541372955433028271564466142429690544749079788482127642396633685545164849147116215170667448172682436061055348965888274462635772407455255384499854196040148258946511508945571207626455711330871750117230520738227582387479401978706070998280081054841637881327249794075144672842647976688341797029269458795250411216181210667235736394524144508178240650009499839253145190214950181549270693999086097219886728109760171107193025052697815841675380840556499499834389129191777294768798560599549167178293345406765235424390286974562141468020799891631868167023081193513035099395175045206602521255323096764208588752521584198426274686565981843095244405673428298574965955957147888706412446903526931900828846912409726815013779626847030055593597399526123262882400745891130079542185568022207539814814337241960051427809296826070247028504579916315568791721461233758097335263973966508729031127991614082122352848117403240339535733364578331815911242244208497129084185329350658299598715804800569802306761014711035307632731653970308196158314086196086774838877412580307476079442529504438461290325707515270734513985145579093703845869650683669714264474542876652495998885130335704536526419807244383071344047975853511609843483765227826247124354483338750262305555498830197068960506516663537033086775178725329374753220044428578871323980392417593037591561833864560791917113007780965536154610571549656317879765045176725425239365451871615547690529893388799882216378706572250300859911821469813303574465543271661972073755005582468451816611725508164551689761771115907799644751077606695356849153045415781797205313358950866708885814146835572025005943712036946621991759545066718918119453084796665413121741252097449297202192704356367483385664000069663316050716384719205207801465226692713312182755598678047859843301628460945560150026403734121163046842436351880741570800868898948610404452857079312894714742757354173674406277125300916453436006328665102365699175944869970818868278984768896362666550309529843274651040820673947813897587594062955297744518737774299736982133567079300432060527966190581586558630961497851758314318409788134410772988114650424581443079360668248413244832324127032496775564989010641790083713669189602220491195142017685938600293417347063274410905174113992262873368998643612719191516596568969316380362119298318242915645319863197493378655021042240461685891974308203755609102746449789549320362248918499716516511157278103035882572143836137316705820363964604833476332636586838653694324645730083972784783052225419534154245299319130722879948761372867049528134522531753964573049401616005793477765821232653994800691994406655918088211001735156976812801579394559331045476080519888013273227281838670108378053933493552580129717219539070212717950775555237968938173011024820716754742195515411109883337924111903964792612225578721587939563303535103188299691601492472356451471022847332577379857590803301733879292603573941005028334412154526608694324502419189206983787600879009314702849053291623310916100686152984074562064654354144277288270831993402148022854114727267563386656273473043854023062748504532864005958350755893143441871096403606012363204937564147671276133226945253401424093279659939347724576672164258171231385384128030903163782617595111482625551769772973353825933511127439047825118848622556742411050042366270633108907424023864779062061953958267504807280496403799269867159072712709264591168317244912101775140239144206338559475264646118587617730501552377638863362061655124455021066923833711860857339979828295826436903081226685573496526910952550732021349689729899116962167557106650093281080061284877445954732988766818478120846072012997726843404907779166008627255267506900464701957783950280565410037464245742677947312991595529161302302380475053595333455669360392106421739143816312861049111741345385922406150406955853585130018217433158717705659585515998259246733104608147579000906973082839130304597826875030672138137401867171925314203007158217013817853582564243537163765419903407832201249347124176394389297841429205957695017135939406560623970820486993613975182813536259240876689699546242638087224255751996362147971964989359889481130763107830972433621184830396641513111510575980915455726347198011343784768797727052838022363464113226698695749335910116540105272372154805634815026155501569462431119185770739996821187289314594054858522890345168631026869319273242402183078320300659252030902882909747784790496593694603808898065279268480625238092196787190688447682524495990256911869682012173481358183555504503824193359418934257984627670622975586550419745355044840514437035383910614618327027213937298690296659895744895863387539874019419112729858234878801009937739294832855936592853781136481863288244294352582167692713409256641049293632638366227143720354668370515388113438276238950590746253992371789027045424536615738069444088633665884617128793615190844685349419601070911743325571727271807202304812481230724452189045147318852550849287010700013868888775757611374403528898534155492211130393500644782824680652216262078403785238520446248896449108267842137920726456064876771514507054533303098659059607418980694631425040501760320857858421655056255101785583572650779842426873162416972820686223579264692580604145448732226394970275828510770077725414866365985219693967896814091700729399219948721800373100261119827243181454327438523698630516992758963725026320157604104718730031472613904490458594620223092504393719622249488695795466503406292823524354410182429257834898973027858165956602399774661393103507066836608041441430625668044443471271489326478787274058012926540941726050757162431155910376525347935290528412883712622825650922605306081170663464874400184041874556418356535346848275526094100291599907454862215499694540095695400460466437077831109567254337027774692586922252741426356895540902449104538902570842732404802731373002353985647053879237328119704129852029627374350233321725697733243133364509153587855232230069352198751646562026619739613944848772756191062149450170576222894637551334309788590412772451267224470321842153705995493025812976085722033478993515145084405609744744587463846808493895788981080766799886850823617138049448008371989123484691016848237981745694079138182780788183403203721151713467456997616385905829623089201307059771111209390711650337594962822373944800352967491796614175684018939337818595797171019225560991585293945625545595657450599445345092486928660738376251455596470717811883210086677021062937733927185228149273063403096034999706125827623665229612643280075421367324838941784722485414381215951607642182811013033551799536296066063614422110307577864687370929582556423196727987844368367255974119172973890985296006050475451115778043388034041567347020414433180458871426358183672416327585036024873823888095332592905861655043341274214435805237798990029645902213386088682424082723657275441842855241997501277234080644966938710016194990812254623827092191039448617533281535119258602751889285121777025936141004162268775595132148050259410525643610676353245439248942341670487034446979684511857717509176808429564658549521122876158017622925740322258833734427026035958398862101741895197227939246646500741564082649835239597023405273891609205896418000942580342815794184881597386533727305070186125972896123072139750445105214055994303920296450097861837667626828491779171907647573500196784184432924181055968483314832705148148361864693177522735368828197026507422450583487399506130132207619702687993699478710060901181550561873347183998163256536831829755928426806918139057284901590098071847203751269017269367552176283980302399487878653369511761741260719735849697758089414140727233313113348817697609669650686592604872679900421259620729390392937821013463596459134516011328296528021265761528435698710651259925553086003855454882679482293640347273405545969507900814398607935231881063520615867710606197831649886560312310486503177339049382369505555453877361281024419878310388434611184418937400368282445479538293020493130069120001762101566117081483037268661161097208583074984161033982337924318827500071181513708341169184798928406192621796778893979282009679489257749855467499763589571095290994203533640314339604946111391593534480099828568444713379416289488396651044861587659341973709427980660605041971372710796298303927868095346648352292292027870722133755845054832888564930122968518347597666968295502436050973548443663858194322671927665534717707167026750973040105449696471749172130518996589356215624519738192983315924070081592654666640184788891031007435655996518996340183203363417417369729418247678536891455980580135782000053838479274183869744507102232457737000738951049252409929910437799382529058927566204257443322533040525483112372812265828974415953612783255317662780581240513920095474923336693977988451153359495274546486560214240786943888671063781638368304254732412528614277573449085163040281230159383585034162556575893166463576034401950188416005855879170932066785367257390502371660533217802829472009769594907542771250603014669355039793536417676933677027705437610861215393357455295037084169308978307843278688211135068661383701756867210777616163114087939609375264574703429172483790441875430611338881138424463550317796261983777993939817292570216159795628811558538801656754711388012379166284316152672801884810562733797176565748931725585937191680990835974561484047568648564597038582344818227073662460941511883979982354161238492210778852918025231065022009832818192750516880974692401337759133740084408787664402932242341361570780008167551143577351467728811602632990217567884474656219467378950576234124278131558498438667362536088154576670560448159595034786714126915046504347290502841183477589275885147069556014020059284827618004435661108052508029594452712930829074632221475322106506939185959413165722340965237706123121748724283895649300835739237203347044216292668298719044278435368924877007874625914548943762825812466744809187562294897311304125988399295226402252418316229858657177496141462184430414816623824446992944950820767875926290012501936537927128750451666877868003285043138110252138440060615953145195266560931481174455824922702366613982339336618795518250751864432837790171898229634556673758800891583182615939194267646354119515185373820469211334714880210844459845899281040728963582758469973191224969714524629984521423515230412195665052203675496016786175637023212458356622660761236045864784329594917884474467191220980356258417389101273362922395243123869918402022905942440089395344428550470503248260975121885163479939267371880768100258430170150225465507430989086040535422810571558219365035642423784756969031750645805128977429758285754536389761961432716276179820524070274984517743044346733071177502715192128604895630026491220713627273143796996035032925002149481144528385804047574030836166299228377952215701887046024454161398622034437194842460018951539694100475814707884025856496425506134551725563026410543881850432734025453849327577362795616929801186844949713327619440270808776145179463105764721027657564645028930361586145656287540179536554255123180485193558929927431380226205754633497116126728716731240693289479993974221143994331033365554516045176405900451371199600973215213641479164959279679814260188981347068509088351254432348438482219813463059213253723757237416036903591075805598748283695027742677936586335384361252480428541204608583406634312122377615524840555247949498592269464251322740507270727573519459264225207282550531581080514266759529228554848106236368712039149005493288312440893458667890899974476882146139251041799958701434883810587897986091918600747536413330595901362620322539942520796746427332444323276872806294236100088037361407809278894878287342893189270478839145731870539368471391387150052869590653195818915064698702362061745839586543879225359017039595697884882001722723915910010584357042869491922207667857675503216407578647228134422498612730570996735600181669699847748721503084971794336246024398178555740704169580441731426782495030171997104938645284802490736526512497156849279989444969763750744402532973350680417476027074629741715872409712872504392927862584018394501575691702160830414940703326541242062558763008410177835211715961238426831084053849163127658441998535793906352995582141514423052876885828924732539608096606908415027519848936984602379364743456044761510556379801151379518690998947955854801042873583463537728733905298663141459307422994329720010695011274213838873261566434800637382924230132602190744658395367460248567352197378590648362627420385418996015772300911403104752585647696952352399167707300333659907458552714529491207595158498867762518960575650922566949654622466216500108868336072210541453597656913752542940890669908917792343144021015350021855165352455854074810714111916945034362732381386427482718349551079540535456997893664712777234527140170003174902834153569933467750668492987767712226622730884966040392946446636360405884350361746018586075585187448007827290802191193992918830168882123878094672730071356378995601224749572299279174738562028722032841446234935987617429295063446130048036557578545569892470946163916315659954506693137165488627443500039333067598815565848958652486839854178302051452526022899588846548284859808751263679035171767149823604091299889616789005105131228337635010093337047754479792865655902178691948654116857771453414716004703499348094832808973183950227932587392125205091766545239970615315240320124808584838282169696371966906999384622250659303683238426332724911125974590320231207381440554729412855062246023123440934935802500468123254867358445121172735992375521257974449059522740396633789040329390315807135271701129011383258418658425893937782700224666622055538442096123936863696155972337676644140375869222225632468429133342478851740092748810688379194294692765806761709243292445370925588300087191752238504322791857439625533702308505559118683326417478854837743518037220236828710294955586319007076392841907613015008089693750268367401865029077536774343731528194259719877890778776023276178727451837694093183752957451971344788713653124403592912169447246257713310274798462777653102856025689095617438384544481020026592303508023247572556713132565788153954194806955573448342854499665736313828556863026779651411660387640738672769651332724768444761975088588014122019708684612267955352088975671480085187795062495115789824870878922520172665418714154029734539492030167978940080643199418196808837024617455930309024982836124935962182719724524811057210061821524540411201557458664519253149373936741270935626801108439515201910830647788895771974003772299217658740240433852904481371192908777106501090661260554325599661375337809803367327342033148920236477155096765558571210229833516942768263281376612324211112667702609196088210363892395193462509491659259024852812276697499605558532487096914367447613162226810729025026569000262168924100304560714476601429482805194496675557457292511323425656217025318643091319664717343062351610405487715608252240783179298941833034653448650571148844574615350244026408882282044616450976365293788554304448449291266814037304371688381424963216750513529087189389639526670839500703621603019984380850374005342023652987332194448819671046977885418517260128664593002979593137163776296621820083929479589819509946437482776085770516307357036823437829136772825839368943567138543781476975510245549581874118614926044864099482549725606842150399589294580617692556648491014905808417478296553020770300768042640845932325506952656146449112804502546394262749748375462868889956391030112217862141143442869506446744823267164082789084798983098373190299037053220068257110148021781935461132011793446659447288606544199038142476002019570375256949546105165240647742472081927947012913706074754493731905654784525049645737489376864418671210504371250361620597286447961860780798919669666042638096347088830607059780384551427790698751912954528868527598677694656969614292447864809457874418567336277710211311517332303977962196728423612269312817283741448777499025379744636324525359563327912816394971684706520421906430925290350345402713590501727584377454896915681564413461957895860264838349412851555744761634513723986986937647388828868182278290243689703852720462398285803103962484885658405180150836858615351484776008274569772116473045541018051239707014765100511333470226978089112556397574134621929063489812616724512841945699683678070034601352495627374882920668177352662275681287641350620632908859138375215916367272583946572908611773035115322281643850859731466540936722488997363762205980017662542930695436105797573366065287077273242194915818640179143562423616060555296506117777845852040093276225665077203947062923245466674491443785697353048308893090836112152884605154487137526661018266999286627906900763459079891851133294837712765768060834392247878506296577675919897395824400814424065258005002243368825410129548685223977450913171043081909656154586515621920889990930385967754894314915978073107282041265737655191362052312060041368995955313903367640392964553146424326019011338563047261922369859119911794759461963693486799591745747855840052326216175406493970361063185276524468528520222838758931873610036130517883834927315079038792199898650206194576800597228172968009971557926258144869278708286464976254747797233210256061372485269610787136877128251050308887781961463045820382758195461428343603059117007623749243237761463161059071766664981260341449442997046982448434573318738961218895935311428279481517443326706123358647956643968631498821438504055238001478406627812882331230978715252659906084686822232842227925740086854809480747071389060086686359545780876925935522702406290335069979718860042290445912589793764321100634012421200183861058827678516171813225181822180107015807364982805797752211253719409129427547768299174828377077212221403478063613562533858714041393954398588044975310424868777563799236521143771247010018529306699279811332925590452951383436597840136175581998276010373317648628011066432215397956746369329972308943176075036096440274919876645094808406911803361447802886403186958085344295374187908426998792346659209381692717144662062665620769283987978138667421119462629466253322139909598540044684938967212794625919707877703415775553841537043768641369672076425355293424698770602010222670288111027879283471479061808718429861375976122446511422967627191401620787119888365805036254981039830873733724664670197733456188265576604584395416611641188611223474167513858428429990827146055599818764643197234234020180303889234947637899093325299234925071514799020156326201149541148101512848752314013097130124800443325773690056396170188886541894967573980006392224156240063596625542307400319559162143159234444161202330892487429199756076909042226948084464655904221355922559669358754613516675826778929437580973861812290405702666634577874205577577071381341989839998202277045181225850929741330542007933640518060251125453977109980170965602118385566113191794303215789848291552370166625910523199367216822512094955433584757590002768319375058253941972616611894663200604369639370409734982195371301593600221971132122605659519456155241680294937119060295408299222603323604748274854773992329042398993481736233678939514461857200218491698729191544283464032673829649008741522210555905620322937603487257258144481704293695394223544843184998676893685989753204576623158349634258601929799937894651875801351673180974180196418512081661856499789949259403839435591063177484363216284965032561026441677022138784876813398949519794282162310420489247180138069331068584849595881874725721488686930227203288129524325101457483006060510788020504410430916381286285711876828970203211303816098615589885438742182751702133470714842171108774729101283405726655829134924638786234867602183857380531239595960110799365466123959260523693063606787242203253227951671425300633673859808746680379068998993532311734569300003770877527391462430842786079776580843419112153907838189815951201616856445496518619675883651832874642494458111613185602658368425758066451173830182555440644910614057242433804596557277674151186754962525520082580061237821131512878748330167178462771998225069744241629838804466652841751362129749472589345504865820818305076359060942863942397701629534880022361876616926071386749130252000727788612509033842689926022664694206182423920199778785990404949708265279933857841063143243744362446342973663684521404283411101328663218467523585001323041711781073406334385719653968403631103000650034009628780901163531752374624422090938314204136033637469001453259170643511724805007433648931893252084297796143755051008961658693960056226546675961217815793731878785352574997630961637112608593393082380458064380399549383468079474919243073118188612504783185658700406969333172056228112911681078064081225523034422147369182230127516970809066818419776935212454715177629063252968390648743727786732064433661253609058111233319428063494998402600642692051137430238455731481640327282134941467157218228576848958448742107192109403606947434600736631059092273313298714868985522454490109863598900525756415182156575980309078164489325446572279668426796585286113251811852996989065572843895839861552557209395304804903650546196014602001556193729981369780652767800438904762582094334486592006216665484973762869492760047173634526313277314785486064992472951147919367669748145858818702392796952464895245109543082305402481916143506055666117782635989887857147753104770206302622761650444589544271620661421121453652964753679218655564963443826585543996110633442643114948356111895761029587061544696855234595110300469692081284136056762239714268405606620558300183055248889749462356662345435329936183490835718696541768129626700354459589664276200061618332061959263333024160121075176074243664589519668467222427478829440178344203998294776044206497639769560757635799964762813768170116288746026065270744746643335529024824160103104867946750646934822827603804964168293325810894126977320127329051518406861485716177915701983583775049684985948904438079078844960119401236721291440409528116073724608469320406160521040204762855137805387952817515765372307502923920051236530580148082050029349480390064183864218759123604568880199153186681285083937995563402830828863270164493387560405726053742712351661668732588813076973648139594983604770555476957759919340442709277530531283319817922332876951436259597597049855065820552413988930887611006406152380357743370046494348085410742530558435349664865367729305167683202713339801231357285783035077738670166774440330754971893617421850671888786687380004974116002848775965851572944658251262567118217846895373330245637916072874627811458459480110373187808374945154426457702170178922814982960984496152311884791936396743137303854118083439686598149049424907213123551643949053082833505368320302340372174377726832357217996644993363440033145176126605182189165369101110436053655475842737050378616852496784889729363913941331283622602441193170478369885756116236658634847525519617483668722729383848820507217629360021492345686749844239534487545919011428382877054119494203123786804840088452984621061987150714679333295196032774262136553490337663667975550478759809576369578452240499591781903484339433102890013129399918758517263588649372254538553813405214173084119437967452670892628302300042594423529039649211903027294594830096610186841444303526764412639878809523624343022039600514780314302269054750249883839603330850704172047177559649033704720800239419494003629276745758785221426615002787761515076318322784840232396918533652652034025842501276823371189636477364622034172905407525375104819215434248717590812996303119876609643652285943022465448011953735626643390718959829157977819032553549162573053568207800470118707129910825323711906845706924590930765655164079983600888600761611522571859827726144062730189496767983475809397834151810473652182069361384278729639276651949308578566802060614055117596414531133260136579427692895545235967617193300985328062810555131297312018518618568363601810043101513427227215258619069214060603122438971139329320727438148482868724650869392792465628374291353373206815406667389973028413313233887219342453377304110171139854149741823037716589327696590150380745045074420932093829811817942107025861926622080955591882932778960485234974118848269809947139797382135884423498576004472776058490400955500066492911592972590393689265026215990076901763213870626206842314544470062549451892967790836301203604098462072174521910701145746258833984131509000823454001112237593138773977419474335717899777497697890275422184724920147428748538808627417608067223463301828089879210293567169099094467540668916562094906900142519496515110629832411424160533745125076166365258481286772241747238519014776062831614572445366946001780277337253142716324513323833786722478323267892184625574857488114701990392887867254933498914061185688926549326036349254171156092571794222712650872060882192288854472788650248704881647374273973311135262594453835087678444737970027122528676923238524783816459128386309158177053470790374999798790835452080571486085764057149329052127633882499411775898276119922157035606887776705740602613522095742467452553679099326747205841461862831009738309300653861781251099412323674454532479904472717260661320941171404047171338122017817594778141041932206578911818553139414943052051835959534799454007719552752066580893047586089251468386200371160919066467718877125779914321972460732543682902993056186870748139847344892554392840719558767718352553308309108450824309253857968053204809874352561081970372065175027192045908644650404538271610524932957602899991502192400791871221255844497250839701190743791308251022470201221149614416036909020826724823547366534352740002018622473984488556456475574925482731432833717380048377929167419013837312543789947343811607019620916255291650905610383010470949662517678492367934789044333593092454729699427444713068289726773247105288934647872085166657843538186945709972832017417052893510624855481657713940835858274074335026519323667724856714011518157238774700404430529587821794004409623804594489242850756078578213872785154118288998888004454032027473579305625549286225792915826490952396365313005802020308312475472431982611994652026169811983147336007106039589724987006759231419216878915511156394474675126752074633209293501211091292046151835366447367659003012510387934946189728580360144425948071016737912915782730125790843427551203387963705099792492454990473647859831795484546956750103148549977785540492115592342274589494688043917545850455003243844403823522951193573133148824518723920148375572098915673170745062272903005205165865783265084651004160699788753523248683446611335741359671355531667273387452776569758622251797161101660682454274474317401115382316385815622968699836598172929901569607721005453332877314981021477337070518219277649664091792690204692679865013733165230240413655545050795582218307801873717092369244429153742488688970689356648603621122896999856087350548251996693858832765325328477709503070825359812670042818505973545770247607921024146211186035598098290148712588676713328191838335275158961685263339296170953248985704310262583159905303674951537735545802265019153294080228553772133818255449917443073822985840454249762992479476989881823650056164329999674164390053336036884443836267460738120397704401884868860275676334484254284867243778050103801251327920394228322427135399386474634215100028545778262202180792056116422734858248023730334810656303671201523316924812799860929062958881641971223205958472923908427496821421107779738267042943559578761444220441814178838738572875929712588426393214878482052922075287172380441809139624070397180731849233526438575610958842977456504497396530643555497551850517662090780759686128910389089671773109577070462324591131902330544591497211452444477958590925106070513122583450032951269811083410561315101746291669436091900628794086835392148577278601597989375088210803636913327641244740421374884444565840787344908805331234730863372609566751450907882347652677177357198332690553094387161599811378715753409580898299234051411832696539249720349927856370782991008713962511700671215964019454311686540967327786436723132308123693739525092458575369853602346938178741904909588640787098060917637934685204948957268430796425802912154778695488417768389432526086829587510918095235541737005863824724308379999749938422354683137234876393089220048540700106884620340187639174096028444326110519598836463147994647356904816539654975018267915191456207740390214021881453625823465554162978847270028325727755390156657947854771138821214946612586699130607755420322527943640715842276164978601731857616087235179140049818911115767721099432165427230677403086222870426111469441436940964062847341804949975703228360747251273970560347797580946063373920907665438030348161160029232550038748977180476414656500415094159705580154075918824659051431914746961605680863475893772717211141339781751491048717511039136696566282715122611108638946929987308942565197997818152161044530614300778331619665449194408447277983929653213651612117805070907881419082833338067094085325815608463962945155077630453830226609123797322844807644493760198537723420936729611730698150558538163876176250363569924978595007554053061837186750758507409323537291121762885104294909561479729633867751148507058550724932869229377551678735476429662383258797805675780147404566759892712305642406563871466028507429519709117859141259747456132071293020937568500042846691835867026422730336711235641130650109641552355921426844400390712225076127993880945051184437197118243377351102718581046315496960459970457687471426892437941909584809267439137024917972075358159786173209101618933517253831716559488065729259441066816786426016497945061667804471982782008790358182508310936968949747863150018306658663266165832562208842780117656746235549737114309698226352385757138911041426093931908580230379319740446644020408610287832432329163444598247743152699772069808656504358306536195291026066939302969989500628134317890337106845321663061057917067965215399839911917271186070509154637621786733987566068597762612966021251937009598952737874590830283890369079138022512337975759652823721186009507678455961804949505592817545588919339207047380054286666834081194891385737302367083115902337907542252527305100768384331044536272986370301334900000163453431270386905660800740890437629909007242211826026667437112839214076229975688814696955017731688576792153516099616316372406603879810659926763375897690463296563331470356300133666346711067622183615391341909937892381371260580373609076275085402705774171502267762974883139913190274604273808272531755240387848727487397111028098022909588021945803539088710849309507451010314415400789911594099417789590712612398230347416990586995716417284876089746925007052447899009744394874668310244427802172682349670455246251348287969534586457013343313328654596760510404484992590309243731150958105534236698271275694735943112183675671960016261188615706176967237493650448929830811748367059624719065326954565497072604762182899894784145722566945213607975709524668710778469936287528418847143956477286173980944635929866197271149703429251437380741413358563673940844369131863253958303517490153743855256301506742481605888731328246817125734588920871248552704559618459046044862249575559195097511249661279326823536444173823191187911996237707010103269695122581107094359250854076858007096350012485316136694397649477840254800088165694171438096708271672792080960436606581553889237829355822725716679409366858249438101715595021919108039861952860475691573296092209338836932136183733652516645556380425122879247167713318988270906226742285377871315980694882180468737171509967426481089322898418014222913904187910365223779745442576435382955851899844427861957326434745273217435221127044255774375106480469529017047171121902237173908057960189063956099459495806320923347495345809134073262151501271851617131494204911476419412421739065455393400414909125932825089232368532983096388470060191815090696548533433814654621465364837204207730125119231719308749559242722134450098088215791439714613130836762626660002359972722620314186024073392916744025073607245998250829774016570610688617617673910387036314852557953822264780614194632793906609725846871288958316028797853971334771054250949704287641865154117941883179968553736262531771733807288890562203490243527300797768104415585877651496468604389478060339639785786229226476071466394974848377055972286828987818875840949906337068041352599729453674937907125494639972049657192794881335320183499594445506203671153658448951326341569757542363590657760854031536187765601950433772980363207858579006285714775417619574747345699589308698551466022809106791355869927040532291988342851566286023157543348604266928718713146898199338696061630947887315951383161460838919350305932667806732618890660130938405806118498218152974046482217357669853140434692022927307723834030427207883358976439355835529202454502655524605804659241231713948721752413762785228846438148694829528691949621948893436941442306639785082850928123160260427072312541420354343905064926986761501135203490562301047376964160506023987732818439742337620338994759193578596360893236497275096055904800212067139639774764035893672942377169567263738470787462375026115242993215035801855658937181508459153951519483926889011537937002807985172957625932127611782432681991153341735604948353640377816962809426208150216139067927010410467842517828221443054929023715657538060939016007142603021818494487559483841947799065679398348171726243058333735989258502016061041995275395259463483689302415728420769354116334983250650975603339043967108511913343848988421891454698483287342927141244855458047148403570499650611258492197696453438780348437551304186484681233412363091308849485262931944745851037764864328715013649901553207383211029752397366608090221762553365502911644052587220690251670383214286998070911020083666813892839695358041494897576868223141223372896539272981980201992139254966684759911436890670599263661334428145278564562799613679718729650784879493842119942793407258505153019756899298137159402302053677931999503427475555120255067484073998679540060389399511596538791534466289712752563002513434832348131280056701173083284214833115500716279946742187797638844493543597584351354807524147055720663332227397717905371758538247609863053887492331357559534752120668241550717169794319489846808107804116202945219759637783270715587339125833739887618598094083604024352762199697660221626939264995313555139222241131387140429910868819176431818161581262499492559493839747717259396752431112991091811329749075819168888915998754709681539783347416263282457456633119522574881257806158195111358341857179684925573815694851352555604345240804746352584361339719119452333547281822055580189510258402471088098434623681204877596746731022820094690263410376770078906798963238073811026222201437785411145781901752116704427387191178164547145968480823468460951344699974079623363040605825338651769691562064676562853079732548699105575729987999156975413411844311058115303644556934176086561225547434911260747789640712109167874794190334386845478294603007695740527451008660192964264879401964418251259904957081002061441396198919790019951326844145080553468558789716050485578099449379335213584016567851310556419319612146964912077920882201362448121636357833019659188863625696800715800193428496796091777397091375509826446980949961201495602916597197220529066079884588303015813248012149845220870000762868391079947746175407146728162043523707884136878936535874366066030849041800510548776723253166062904964556711752532996949415035582120488705084302837025519349570048545151819590012383229047372224133201804780319791579817478033434465069699340054166788080486459563868284264631351914396605440151091153548017783546567191639418018000022584353052500633668409858417497065243096968871262831575718670601734870955352529002795351493193092020341368704967695282397379366290856270283719042007888302547485577912332499828834852164583746292966348382918928291501696897419082256485263823988842851536394229999858480845610178304393801348047947397455695525879413012717806184755516150016766653187386617177123601243946810389595615720271122470715313356754543741282314486951902184817034587014329633433828106528506125358627193586096532337819334731345004982801528615693158747919748678434803142681331108301798465376648939469309849677469170021528141844871074594896257509827826252523123488555841479660313521651212614372330210739347500198210682693376689919562029393740485810703203286638259586472868535980573024116221336937405797835842864645025749472977770004276723811931303861322411293841649844013539122487394774346563725945375773120753432350187878819863858801507521168441493360472534900485440083778000937254421839772159190001565302250904018799369185184486417464125258553740181887255249928463967182230962256018732709138131724419316540842009084193690440836338146137361522874347735912186632791727125806320339752343529214193017015721119990879155625658529508854130410121941681444766029836952368745433122233039474557202831344853980474010691529936682855054400060870031516233568600308040755836274698653589388289289447658165262559784837188735742303876833678389309238973566462683524297182200097880542907244912375717607437537462855244353347278709563063466108037682837839096787071404183310137975577932668964699937184747674033650552663652382391188940466745552134679785394274834662542538433716169486629186124932918094280348708769116590793071034576737682784599523658017397573883403318394570632696336398881620293580041559198060933160461863059280043623684443736621660537220478447353108051178853233208146962297986160621026871090175897838995659856359903559588740510351203884825794539337092105084208982685522225771352977548201510926873534316850114810187493991376751614802650552763177529157344375162325859234398749222536048743134999387653101475803845600621190892404767176506967154817039713771667841721890016155195851942245975156423507247087376895447556104204483468170655902840187732619271945549115521428064917046925384440574991778528854285392957859450521043836858241299408684476058351067714374387873574284159135409982920467317419829321771728304340561015347017852526297227950959202642479336198106212870627259773926389865941623846759056656779777598643595230237451418177304422877949317924597276346824141109077597767126920654455432512438112465677911640913406615272083967208269463913114200811220958199637394775852523748263122993628176619169948754972867251797523196419975935946107602528006985810169578760565953295427041671449575846579873836716569069427161796075570338342873145384446936929062018252058273938270041490143723315002128060197702213047809139013278939585443974771356937630095157410956987470656683084030223330581236352245190962491329200630499566634349602755398381056810456466140975023339309727708887860455945468386437458490973813251319730120032035022009766418101238920562617422406590152677639681867122643077512081323621163264054647801852936510296063742573847453420251550588467106903842360623768586079071662513209290731729263626391286288487350716966851163021102650154337392771981971383718549276242897851682390317626640235146589882548354836074357273557859027720390499715629427175027629410997422671131001126102624195212464130739065536841930647136330850046615467419617248942932645914269683125972871139454023564457120060012012242384430980039147235855633826344029861681926900117529289645205794580732869501645583951183649397064377339905931388495355451883548517813060760076565906538379934896338294381020387377522881870989333216118704273900151210415594948453707411514672614759143818058375222479633644663808924902358708754177513256803107074948902942665457555185326803203630905931462786799659257418454966439939612549250383096871746458042754896997599946286242309313013319653610038669343602722458785732040777733999437104256787781935058895810559850188756487195460423662127916181132045537661353026114921233423304113762308053196382408725846889071896898071638257116149444612450032919463226278811164546536080479535656016992006544788518301406778285206271056718395221834765347440626364603488907837468841945632946575898159347247106640806794802624477345089622340571797696384012648533974628973724597635226054637428280035419112863252337415038513306716694311477191239319775619426183816783995870263805652884218148404624360715291771230862442594221070554715296036059779099208560491910678400300117973402757275388945062772111964224073338360931811112908891260158854336624502717415619288535065303138572822029214424991120075827824925679580539265493781365460905054935369576097234906749805938396159272050957732417561451258277705310629682496190013183176510097484158885951579800132613613527286756188397289098406938288773144037367050891405501024691797143302163623862645831530549578083719113521447770133426651516521622204983358431218564433267910724511966742163852643248608560049568895688613334952612984417575708608009229071219308046273126736577146015400908597896003535685764466354280399288674279289746952903892652577592014278518761316554949444480586073465195020500612572865034957944356851614648447934128639258477080944298603066638966312292616843065128754183495631704848526337289938787990484860439760590398515186924189838041100268623974114235439331058741591268972277231328566464676270879353822870170949370834705082070616730104999974737395506320403175477103985531089130768153854753617416707140778472744721684924969758459996608385449319996069517242492024957083572879745731186009716122079230387881985458856000036313564828742622977985930041034610520823170150867718416305997675588693045089560444255292142397066265508511319726682507187719409878495274257257520659219156160669603168123518345808521396687752527884157888830576355622659113420088055142631187386196650061510230280057597910299444480363251644364653752099814388689290876668921689681863610152164035806744544874179123283015489687417552687988077722416436013406745719681153381098478025743149150327794083478033382439150507552688506756540801921615868417234661656304457120181930829150689293150814141265531550843515928295167304259551341389339147865154755069683600360784515243022002884482553952923689166132538002562535061554156909297302892463461234637227128650128746146028820530451794626315623139986963538179105819720827729318080703599777634836117215655010460667359495793861196994103128099759001049613965501039358547167455499474557588330648419933456135367612612930288570553068164795155030919593436037728507707165390609841855145953418042878095154309713006350903600307721390511293312069262310696262522420515193699222450684001837711235902448596000071787395108133766909217713205148140674239892013603400515720152078233879965884099715192834476673909844927028594449999902915946966754789867732549513718791853667055549702116229840883898278485206328428076926587821384347503428510339980577468593531915611933192703232909190922494265890690768308317511849692928756126567133526356708774203036761166660514126529708723964007348970139441156794434859501719407151520796106901116236627329802856575206241211706725436044418549898991119817673694552375241096254682173742479919597230374299185563492130790834341680716782889271513334333459449125303329045395732698196078801169562214425417151586472375702509086015777375180205098295252346850382017869160802005019998953881347175287806790215565382264191658777653020915819180890484613374375463584599482438942218926951365851764857964156791190211411417037459371108405813274182419238088608879695749756967694612884752749167557525290389131432024045233550899967759814096990532413892229332157132701028565374712454529296698778888839902018760318836981917149263241814728843016259227539725102448168449503618077731932514263211523656674083656629449107739658267887945891716143289131524363556360061506245395493708743505739368859926773623644021367008092155567542165056743681602305572081266427614298718290776143661903446767232321482057087281600531758116664785862458525810980037979885226930690385838772943181932291788976543182855460348533049139499808018885165557667276787212630824275199284664636043851706628793450779301201017744971401884850887708605569750654492231707788860626787535232345299380539054902567812765093544744195537787749937033921671425235469206333529529748557481737128016283868060352589866353949932858174428191187752226435091508603771807650113510986093659141157632462146061826838692780433692567175011177739711557421118496508120310681360582687973767201636672102920653888494907750677970026790841091098171924858137113385852857678082518934108633059619777078691817494659854703616014781856143857278988144377457977491728154667147303031878482709904103927819323761899516537016748068521746500443491137392632907588992039178917064274529986344970956286240281034134474683853180905741833379299225104595109947017807338946773778448231186676392701347207491883582314440325060411359184547580215138567616677951418102142025760705119986546611733991223171450060585416408778689724114688938893560696477438343393382464150528826136524537369071810338608040281008185216309576224523931714484563373639643269570235098204189450272528527098647535451332974849057378986437764798239470294070422841198131376410491386783627341065208317720298946774122803128345780869053118333936972215241862674110561461477698976161489376602352469258632093457183990818161044123290112726383158566447382692005810815994325431856994158349375839167821353587756589735604138474110052402753423011596918235153299566232364926467791533756167081955155673440731503062317535190027698940917835669640094303561063759200233917905963181456783860136224982252909286935546378541339346794657948446749683209372651473865212058094098794712408684106123885776808106206650730216366173151220295162660904228310275794552684708405092852324032090153170492607090500805582571400596939663645113601069818073177822710227454081226419994855926826087175498263729934615138168609226475574778713339720030405806866433083351231931614273765738544421010869786648966568956778519848443343278801034724674827086770586408197521139214681346555020365113752752937505011097275054495125018409146314514275440506648605829824472717626752278450890351378332460438612024839819080840673684832387505980226422554546010677851217624968597604425887338577789119065840371675188372692955022121446559043718466111090250484195557324137060138515662448153238359645722860388454186808236723569039471006225398138933855387070097073662201764692839326548796014235444220099095369688207394864388259181541513609932772943804301941115184534575263274981330675716736274103264518115029809680975670728082078622382618659729138678842061541136826405077353435103442069384216853905523473209480033857744866635266257494393745036509962880068225684249512622812185755713579630383411989735309198787828288267282113865431283415588877801757730197680947361162506373037352289515403835026323461314195066145240717202973662265918656574166202002242530705444547171864609637212047115621468836839987008664715173105909357124215804535816821754239369203670799132268785107486586669633220669494646079440060405399047653373886589681283006124946260902128620770443607173661374729650417353256884659920925419815333590481257134401664904083453950560795354702046108555484348426663725179657972374300356027150738550569189714009456885686252726019815709463808714169793540018754138616524108637757108813956340318138569255168043866650597575894188393886654442374153662450158080719009400790898989030739713966596724076195218254018045055706765596335173018759733639111704300841943109420656186295377126419814265971637404737763879576179576463136208170979800147162829396322155190875538185034660968915721443476126420419705132190215603256429198626534897340696816766537899138447842024867641853488863189636616324736059899077504789960929254425917746332857152285732533079498461992673900343444586081123334410142008956126204304133968089692405436801956774097597496273764788938054082749417255618548216589034724822560512305222931526123158943110054198587022784191346069629764050434877388742802449972545130220440992835835379036322771967326062087760898881481181050717918088225448483762075420997835296814606898983023596343645703391593371066063813619558541793020898177199138892742376557810919407757627384796829598572032904305444465579754751479391283016564260360285745335740393803248326910598970148282701086041646234157264347158818436730023866706024005075814562791933636263438886664544605996153068659051308126034246676392517239207292102099657794176989315783370346194645800992389194302367626971468226613636584760129800911105635891132584771340915237991479742744949976301443089800909533631190944067634231092333368221252256449731464295763005982038565078887433266197540349444100067150461012961530185070994160047819979238420181044713808441666090551868937825042737615108896791462860973731876554344479090818940072407938614566071909731433561743699965831061018982065400107228642978101890115910886383913881595484321123160452029714399776485180064450669471519020580655831474653584781566452772715444836901331078688588675652711437520326812517452715449573645155562139465397471309161753985824780449374114345140332580152350903541951262875628330031261873684892424822370619247296547513156386876144853050482123768380959191776014260258420468349188863755868559527726882606764208926931131875709695700217114091418128792580949185945270828624515008807347084608276476288928374599802664726076921301006063777427182024235962347205950131562373067100788021584030491181891755477812096026752959282395338576652918460719864536932825555015777668208416304757974988421332477631505378870599170069051299328768614187077712743057838210921201813398630137510561209333486149312909283714376254560509750631101059439432865420725202101545532794902390737830314539533587486238037619134810028663870798318817914404298220938042067935173056298561175588213878723387362777773927329642980525006357526802566245438485436724950062263279823799353754580171449934821813551968076503880971815207132657030574623729199638405737413124893325706341825626296362620306306665846441138141619419232535435886279973249863482534187651048918286182575538983342126831028679476876627978180548350977313642292077695309778186649394987902221721457688160933376161224140188184017656418133006712357903940169045611525982632680379278742896776773820332935612588252592297619581020329716025259942839021903795230553987630594188206140848593157788352639285496113685441139153676064414096363625738747851657106653940008513216494055117057924615840210838707762628806014158484976082205902022350635008652419939366613780846869694941553218995550673430627186988192184508464879244313345879017338820415278218346862944813354445616096052732460727737933609664046277032171689436494753899847595179434935132174438114076546734129610506654503543850782007718811107388920116426582900470312508601552025618480879015675967559253527660115378167106896404092123555960843576366533196605818178237153341304866711497396498954718429598117010888475149517368532707977417189406467637522393090314653165580288073042766613846245527376288167656657818322344561668817012139421739864081512758815381543510923455140036971448899727864504105403299706785639134130318185431488212450948472458927346886156734422345066243064672845789146557419474404246252267533088998678088674188263373790413127096173512853726958150918581187885301249183812253647939515962005512341928282112771979734088817674655408400268647118420360254797364423431041747407365053051666165246249272321419154678289085436329664086621889922193873102646919941095301005808232918223716827883477973693492357640994561759047002644567239838785569883784818635605347136129687563976541998534723125520617740390361564128037965421200546361837642560362210300594872354151319065523552938228538383998258305434191367786515195641865880595892798727735158896745363735486978219622727335350682210214039165735538853680500543877012928561016060028707808966684453154113652952487326187717780284183065923756727884569875319231885884362403139872075523473987473735446192599050314712181300251319668140032008496455361701733351336830506734220022729646280561034767199258527200397311675993626296738168897271710514613188044277248503241532036762984999726193170872300886508176402099259768410702155962960701219905361583414232598511981638758066393466663485744002319066583584220003497486038503452534026662868926703929546551991624566385122710484777415920923037052249758637748059322262988374043836815986874756890861160872779226774868475265915061587596151565764243334039362315987694742921332124889821199575610599889783157791266573523012650154127662872772116646835522151869744996273845348713646927859278525234467774256523490933978237649059150423355784763780234121507162516450556100058912918131121910902648901856288210583036246884047984151315373270712101484193737518330061593560913760721226806772917737608263107320179913241193946110451180777774520485547906561765893987536937559595561943369457498725320732191032110501064391320602354223929142422209237661253023931834727045133397865798957318004327346278716333969164918408897261599483400154842397955893043470474548744596870965299706913817285685799182907417683781274881884951804233971233229100879474638459268904204236813846233948629779585994299726050911588061380629324934277026934560749739651919966440363535028900758227004863436841106487154059399540564047784124714529409314031272253436674915767828818521910642163560456896428614105421738396804438727881893511328481559127710559238923790626349755291453740700711172886897987832817216053624413962610592492079642174414257451923627076325624173207478631104652004282692237686238615218312722821498070076095004620385732799336146829001116880100659109345408016767348415521067033706517409470861856749417516059142077081147034813416097567370797723656785187431930880088174490493155580964226343507348402924660283503861954091834946215364232223320585781079235087691935209431920456077734055074057011762216970524467642822621613455255754012516128683317263392271582899798005253957477587270495690465992059461982657456270053140089435933813369002990165057478833358070733855246158248278788023474471141119636199311402697946169769713519775120778021957874272090048286403718378531544945340670204711350765552616265609179295952294906572283234847068720715999586422477287992618012343246016797091611075517553693288006071767527264255040253756311440023899464811647229588310577333458689565467609942449022604730278816554415269857066549788448816527564091689424045761013916701679649422143940915903560950562789336073569820477153561958876157650073949841681874282835851638319137611798493086025027596219153136333871809045323329886524322609571741940537853819353773042289011716207646061581932518701753054624772084041871051988118124427428765295554598535523946273766965217483041163438216235739213048097306097664299327017362292644772176273147555805949811507809856953405998401105209814151326810574501255208023472459861431367317336602327244139968746201247950933833671128199708835667215458241489541320026914582102700184780298081289532599561354190189612137915463823145190636926467014690234009418265026117917780464798861793106653733856178009353031713016696097093154530795580202486526298209145232165292574214071794554112528263585381085232385394788163822154773498243288170178454617541669773687822748715515263554724493029221511794193174912229805210219452382470565634338255853298801352240160503633700972423899863195332084747927851726784068169623068520338483626791513850037373355858574332389751679054151975853587335824777084109014876948846843477506820975631095414160629968387102184812930636310726668141590086486158906114010793253051431596458543341281448507768417688058013318103371993845912611030533061144883373334377444162197642256288176474199955568709814353789851311739797578065199896155747487183180295308183405176777879498996546776665112233980583691635365534260187038175650050000847285860838451548656734613134407676490682282028610696712936606138486170212827605498376693382634210879259209850377770505423240149154744298664619725933692706059296420384287177104495466814262742256386527142987507042863457070471088355122480532754775330239521461739720708387667842372644349265785560171341747476005521883314663359514642471426382434292506245628971642893624570235992596467310831197360628025412783791168126234016867461032128703367224313529144483292921735551059769434761141185783580049176748005440874840534502507651291257041612706878642603287936209635060401461671477650428479425507094389702496103751310172024881943186358182483999821856908588732626551336280813815338808755568619071452327561292270747447019570367335657957470383969348405202079783045846339577910681362307173001392039724805987328739969708999860771506196605984408949993535482442632357369032316852897868222761149804191298380421476194519013617823087074861468213192804101336510664318051018329854038747961122049348206580928120406091107773492829727237594200010274286278119325258891092598687353681142381454350674743818443047796273574530525239984962725800588141856672729758279051390828569018746651263772617635619596105234270540148895076249282875396949288796991678869407696550923581016997825327230586388484972253607263935694346558884503374154428226063261238376894688733469165754362460644896030960059986798044976565654358263410742283738544096884933969078577985580312953148628778579764500290689598798192134966912723004794593771142971401068996799039200502762624609787798651773917718026032652401286140886559459469852694550146605889566769032081439824826198715150681387056418727578188367998782518367829940282330191171207296365932190418128882877971558809326337208489745414710562497445542922751794917496845682128886717834789577874777636676720234455148134045302015721923223956864171612610385797409726074777290188860744605582337542623991979073299908811715871206443515616304862997665527414064550906919532419915493145445690616981046384229920808343968973468923992023575624226357710012182334160270863380605633855308322334116579082502239655986217683052975524784783836837057900519829692763016335187516436336173269010428706313501144638212565229714875150215450682722892246365435925780847058105484968390095213653715151466294172706939966178044724994258709021327142880946908924368194139152324900648697927786639142347209783412474172042557386994217674957700348813412408338470264174411225561537900789713427798132899575613514072955823165800043322111754824215838973044455852796082113227953640055950652928126538563169336871593589565056995867497731902821934508837701864330400113870397368722138238117557195798479202772167765241268393021574194550263801171946368855681364646900479071602161024059666139521735210505611919398043396024449060453937139091138517184255821188626952641533402802108042763078217963618049310055354534554969203033126222139445380315827453354916949523649570908993755148710541239495941092603436293512349320247350289048767743548301840352639532446330993363852414194053622373136535240400947082423620405534968021267933748763287094511990046302584231731952137106879742977768654734355282566911932143651696288699229196813110527281258644211767134794895870653249991033539009943089951101761724972552054131184964013514335324174241326131002527290429224020685998391066984732836246451618436378331550399800447508181733581469646160903588481931023265306330868359864642065870939480175930155452614221708203252035625458526996759483662714529958958151817574242119573079545651465126580681442839589182162654194786895570865251103984824587678734548442881865486148982080328311208713915561431172112179323679306832056391579106362611726195950362071456874824816655703061793981603526923874911833958175220876010022184751821309954812654086703395812099010280399603360692284704400863464439532326803145652428271636037205011091495229860157938272224627253080883820804587146725376122170877121963146255440899027283606032303381417280453901870822421128791995748564639042904059143633536195805245442036529720474749255995922742734835358234679684268548448947536469221891296856032023866868372677082343680236835153711137776841820403613110016935937833789677252593747202305563117453570563967694273095727508318015964341570644674127224449429595992040944391853133610317967148622555903027109186327700114535191564171157326339219282994988910078491314510535722400542502759900016894870482851750426671397190804509672931233736764598025378395252811489702398211112912329507673867966229563131644004613191040669815082221671425017867005099131014016877192557586749269484074759184230535053581018459660375961795655057714312245768144505637431122999450895425507083023921249539277733459868139164559012709163317272243787172574109970080474269887891724366871215532582069048864490693267738701646874882793903971797830377296069693526298669140001668180769662061676011355729431675102614446029560406271687922640216666090901265640506964046176576411171288945834410905078414179646487336247336201180043218188969972862084574695259079041837000394561167481455909164931204476513301056012780594229022572813726212827745108378146994051211574150082017187187214265867635270814525281714501065558013988768715250264007714132509332771661349145474450030182669592027560141640270589426985544055835853289396261529693894589181216469910707787176825727989651530782846294763928667051148508526595776155282590439931637880442501197692231593727548548622281089743873146585771321422206006199912735010951919439984615726350412730919536066073258661154768861383345638310191932278704887605401570399247223787532313915482062870157442370205742338779463023362740710527548986940286294223413500593456317512314614353890577264523984745219363278929202008151579702532430559645376428458574245381023379770619711177364900999014380955895256947512511222250091498419455586121610903405953015031059439447473676385461183201868485150165208489561363034512498605439735022176013645805869683453098828003452624343223791398276884753894789663080503026211905816778380003018114775360562255156279584213089844767420584138849713202675078562828401247416871181915127381280617097890323902215221805544065866578483160125664397711943276889791693665916517179297943801601968318626008183775919045052463568326088979119261263985427528046937553542942844820689418810537316407730805204705343110957254016122793379169313595875077170909072713229204957500113610843029414006512773101624045798205181545943210848712878290342565720906002793237496021083768089548160753049185705358703876849354948256194323011517719722073792410056302339122373285246972809569735132157821395185567543056480306400379818634201566803544836301392083860927805714747799463530851868978209097127647353969129175612330894414702676430688850004364104628566292635244961463613983268854992476744378449596154387327690150486107072273807499881521415926948122209974050405263813791646658933213251833770865337415933304056574848815408908860833752645553414674502120275387736930863549253447931128136886438594266396012487969960902355566059410890890218875455484111117726640116099564278966542278067133455623559222151344964416289970407288023358501303053668487370325586175278575610132277876351249714558344216815123866677236242954536718393484238087000051070745198157494192649188138650320180737577895590762349290809162556305115392221837643528020950316337090181919226566800198461789280485507583407765629461768427618621254957082123879586991604620188581109497538621635983812097530099325791842029307023931141832778811612936375744159998588737211179589268052807249047220590247669233366950751025037594225609295034751119014029640724693096960373482347990976889159495343041678452419560219564286320627002132919576305969032612050901307296281500088602929783551872833495755575763365618528126170142718811069949469045858637259304317774253535308482912177797057450004011445184676572712161884919932761225353213458442308668869304969189088763394548223206260413954648886296690538462476995665027217895388248832084098191793138533237007334937316914592454951169978209024759292906733630629661204735567692892360441774776286331468777638397229358353948808478674892087564803270110784244094413360412590861761473321508492355949169621681329533901298705596584090303035500534178587396461685999610785381706794610869523380191772646391450975717177821294612238227844849826177363504488020534200367305805431990662753216928384391536877110441822797911259392040429933644874562410958564330851735159528666986271545336194624392298853993975155586886161210832364306108506260448910855403849816776044144668824184307398231612108009879770180401311199390828438217988448574666921430353076323107393932830229884491474779512958557510285339556841991116215975795284335277609813125581773189611505216593284717164612713139618333223913418941611830311377695080829777707227816616251276805875636573500704849946484288945524658661605809465506761065924301318372864501731936969477061375688538005795384555538572410795746766477112193671367120962444621754371657588853231044409126353921659038352860415832926432264534592717612276399662790055507229449343018766779094376534621007146284314257097310643226802077444050314925304230390664061034153297033896452638466773808442652479009726198891398823201591836905088550531375035872558399716329665563676746264470723866487618874486273385480795500172452818142643171055809397190393585911969973912020987983742342603463550087182791386454537335794220819235552321629598815621028247020202224094573124857988430324587892099571324519288604305584165850455513678708461909565672517418152636474064807005438411502867074406297979611193605914620279609472814624009844851512045591978553061829015638867949772582080339529040138705385368482622306726799491917297054505671833832530457152423036828075198144454719275165096939713992038003352487346458271534983912556131546561272327564561264553436935747972999172408305172093247500144624346090334701095724370339165311654705834128704296557646878441771355196923937658543470354721957334623056879327239845789854410190978507977284191263344307227107847941430306565334630543219766287909703532670801927596954301285658135041724331730219329095951577648441368921345364538354857125701548942181964313786387224737688119658578813814735679366795031996641899802700384661486205043539006765207037556220239326784066140244797811169696518380668980837112967365240084096932789902992654574730633823648844489259087939154466354897750909598216165480201707315621897689051207381583427897216065856307622932805887257395987119721431070589413423085417971407221371861535519085164056343806692802262846956165041221044543650987792210012920050841050263136819361671452025586508268988036189230144001038520382977517234138502170049861442491505669784847211225495990224425389262958124792181834719325539004528887902819740527356758439785121194209707017448602786650708037613627046486119347580476019988299446871882607998142439235580881796606455693149143314015062945702883538936278313824561694077634809420883171202780684734746039448109831156423055462266804998626560089024631052576871086586001679689174078105302130626519225946820113173365373602874119583194628154568965142789899369545960727823034613217182604895186198975446031016356798350632363635156067951677626880551141283941480568203727723946473734918802041539843344066287639475988427073193549225580806436160689036660393199588895884347249942535285664457173435717590089281474905757883710670819825571796644288830929302774728918927227886395212394165196708955717829508650224186452226518705372883427890321404039854305587457595651751658324406888868835774245583986575683978474043056691226593880375052325262389494057562548385007656796321416312668282091493863650028701036618747424289368876836439268839511714548896126206519871143281537142746878990044791191366737573383653322405385019829632912219083148343553889809294929855926772190875060603089514729325628585915595093489652033669511921928679717725036012231177512677833961188257887936859165927330458957541581317213291167029028466580732582690094008349184405644360879171912097009251783632869577751872579484586725441385752885077491541621919656737683622941988477261978000071367303677650824837125320499160670210733636447356081742878790840994064262221453387652192879083956834776425915364913426479968647114645329688179011178240522930388703146402622971905442197988943151499972645036625829154980993137885056950350945101349963097890463770283167987716953812480798604412818428376542933781352658412354642122414828300797221098209062747591756227015077366476051740428766074184671526035562521666261029700660656850160295241210890826352002545563062076362525276106051796958128195983400227274328078356393484257023358824078045531993733917441403768345460565912717984058055711057270774571658539245213866391144566863410287269232335188331159944696254725119804128671279787842575794163480036692059856034940310379551585131871249519471690907688676531515174010233299514046816345542930991102404659612888818618974144611268474034571460921501040885378254617704977940764573290088127303364646039929366096667011617164348030352805660639504520338562154258582095134231926974469054010762715615066448655110168953346147652255554776548860412604895981760175355671866217227903647403332379481206593393289436827321446709737722604885831291727326920524154945129159986107104199042429546287950625333256552413135219890408039889929555660440637369543129269502148603567228804892755673695167809582574116207765968654163161823489134099763221302432095592209715311493175593690528203285359290867995757826310316103163766038711782602724263150735206257081297389817722634818991875211667802169889494266277651409665416917445295144139449904091904573453647156022962137357607840796782383874312678299586055053623763495374778023401496119333019903914621563741831694409984871643538027790217735237036580081900931510986000831496029629633784217056586508816889652420566371091694798765475233342344451611557997581007967718103231231366379064651537685027868938278470634337060518735272388472735636868406781412872262744923604613450176487993955641855247483305958506192904151094846186475358227720247719815692265402414752341917363642739033977603074586735240078513157493523718760600488638272028776713551739926526402302344235897486245463465444388271178131047751438233088726158365971303684594033627222491694322907517332490414742725566137440357940016282644457586420651370964459265293835568568594460027366814810916700661672136196032737329412686669471746520663411542357651984364290677220016490297196136826809147656776385995873718176790032871162341447848028363360804185335330289211223264891091362315185761011140922008777796531116100746156938028803163648628541569941326817996253612754786360441820100175357461285111052694864342568084532622940204493341343444375314758165517804461928903432742493298695376514046141499063318790651240487236384786882226111041149036284633122278687039666705231417987669244429313610665648226899100689566237332012602040474269405226323772800631116193671335381598259665166558697508441965682006674335448465153197508881458985324354483757901863336087854825290520486901918096688593778742755875944208111086945450421781969266130599210466603033274875916094363237667573517616756805565102322123347741482837766907097871349741132063424836923478661169915988779889272176906494774602418172579219808371353649924073099177454514284870267586918682153851947270313130079202945400393410787663432379990600140988083303716485657304023904587121132173520831472429565870359418899629802896748299229272040973784778004762062012007753330691082595796955830197177493812859133977664219199266810148078012715106484386279510777612749194505150914320186735070716333770794486817440060928458972403790241145332560950018508525033264487603567841657412771634047087466839842347870528075979740522180472249771104049745095447684993902344280531774570858479873040788995159435499384113593552058242569764885435937395533569607279422842504365640879744966908789317235725157324670882705072626233839509070813243318136433401081123658973735190374179900177373099516757124535261083883965779107080734115145500605914105509645204104161342597074639204064442350390970007291001217691898289092038051716091802088501519775284738894596398802787433662777346296632365723610792090415353465744829094000122958970009839023957532660832884749012572545205107692906833811238391804699501664733754838117454857547789245512056787041472447562950491033618897162543778666773064853259419613379051817230627909284052407133017950728449590934919389682062792691502701851056005085571155165038053964061925039509682124671011712207980226350979772825701485992341175442946859600007666300746303411853740517521300260105697143232795381519982397010565415573859316356195365506266488147338274869313587940950505097156798349871907047958077422643450286170928033110320972429297151176271509010844030012623838687549211289000531831235807675143519743007939393847638416706965872942539386858256887923505866597868791776589313568660548885033996329772419968388429408933902328469011641316202516500259842257953129127650134888859185173708062787965368487120256626899260150542721611951267916306041811748880752926279900778248741246937986337966561659610977853460970941901728350413941766663850583345074095906419572030903003765890399438287245514100065978212185383071570701883899763684914079128700292391053766316660774775736873547464052866644397823269337835115239281499872775820686052179587643387669633353738431203379137170748530021542050417402952026735251456228577139522687166240138490525479585189118301599525029301669027041599489622829390362035245933630348723472105088210876037278368147360228660399689279157080234952980583266381944394974047809783216195589123830988501054530974699491127259046205623347044128121810228625958405280175743290514960554359042538611197606898735185184153992192190589704596440363857363401057114631505796553881902222655763765719892264528344585615059946918751345537957830159790933966113561431509499088134409171103210861122935711311294523193574873168199636416026152796812774276983624807777142868163686206990844149271959669864650478056366018883873772863912664018001000427082142156878042238589684642039469377412302932913773112610973846866284861972397752538222421007881652473660901722587678830625634849683550457248922332233928417555366353587028613305033399338317322110626160469435432435761480306777661237655877254086863417891092166992657756527303706391439042062954251870984121807461792432794998333889593536614095110374285512432519952162790847841862006682940058430950338347427301479028416903799949559608283665590640813548442879922535475454421282461988850464454125850843543139167621617737126311874852580671838948038387565695013337971384253550271412385778249299233189147583435702727645949855915084624528110845307034244430924712668275805274993410061864042586444997480235263439480390339154091659337680191775993024963457221968655922547349724840705412979982427500784633477673073577550552419409179828251048341429212987283466039453401505969885363543273449912739619637312766205276279850032639591402546411888155413521124744423080006199124525339158512955517839829709939029186233665480243032786142275325885087891388886392580736183484861016689492528317001422492005795654161673874012779917813697697350727964551921124275857455665017544401072441962091164042858641903672623973320887164123608099282457911132367019799717430229459955854719052772020719514835949755888991069698304735908343302693751395705991806095312044045699525104115328223412331198745114360260349411729836407393985881705119001386861527930230411078045008902000717670669069259956517159183375661452257651223126678543375416123210771123000214667292271116206780867377884013649601817779110074157828579295656830264792362441209173329069507511379127878077125894905137507679680245718667078208640839988411512392318713505908344982908499713297823104990555442069075523734730521656989918376817007859463029008310716822504507351376877771956576592963237724748600000770334065128218605642767761507904518286943157913580580700232289382182055213444576531873266639821213274807818074966495925331639333385954251441634117288145535319147989624405579101357135885969835231046429095366921880305262056685160430529238304795348455390271837430867551195387547160935775253658163582998373040754180823802282959892908552540616347707249422570440477680956858894457286651637720922831840224852048646958006265629000237700187821005440085710342975855725606549902792065272148254338161955586091573394199283011560713826421593747517566511807098468288147215248132001373754651785764924628378206043194891057528017224168926334535191139823053858602881030155713987112970158803244718852080817073847927775270859287081105401023401735531473366735907710534882516420929962145343132143454934438665763893640803399366313412772164404679624901416876445268753315861073598927102489218412043094035495563816926248227986489704176408846964063343097805102668470596334641847819938017068387144095079389007997593530466695824062686856602096943980948178677175480163928662711308493413578550085406515851076376881447321500891400666822672473094133792510290436127580690001279002767939018787350636621012319559308079763418101103945871273332732005352364829615176425354207075818593256194465618827009028570877803114864782585614373811817629449307826238744306786812434047701045234465931369929855969450400299040594295181185191067654588875339883754622099981653413374358702729363284699193704491492003157981035986843510524748947882662447344704085993668207120290347827174158588645018057652668912708033415583182441832545307969047942403568002426840996794659535371812133911384234405155917682475971132511018428900482989999717639336827634684460417020850657547472594442829931002476887814331638633169424315058573547503344146492375336289178423098381781394572646324950748086297072802412246797043207846070215094777422658862163407648731842405193145417773781601129739805556160975185105188064539657154973913674615461648340073543390515392204599137194674917211399753468845451621526070501053025770859558557817267805628416677012791098983149705564190047611660537733893264638116575033535301111996525105771688582772509069183847793584614515580254994950677545883981662814941193026754992802476817930921374796812750233774339325385659344654510534067397731485097214100538161153432022156898961607966740413138051092359860754388669774428629636314918996493992372210883236494642582319463455173558933965760211509565118119146746038464484074217886878145640588443206009114078706506707218256383738432495957372934745668177983580239744532127614619622575637810329117519418620107902216311908205511480675783754164844441739580038112724618511255749525991208417970436400048791757106025147358268193183232821043621874729138576780564182612812152541105497598708520091962261590391113060680414996054949600162722141048448894734157745136210660945862516810667154257235398730106076577463760280140788072303925066193668993240736722171286726488798977350600823852975989296151185815222420907209273445909664186792710956624746805013750510469190520744166761505512633444913688109570101852067127347298276699648879934445406001036266023351261368665688402165326497254688301622466271844998143912192606861779529298812470284216952518986211730654480896190327911975917068255868400276062833187516009334943116511560130474908157349583161641902453623588748161544067931477975471529120119940166552621117405655934043408905076046556484642575999662309474611325975961682191416445528489237321783336700819050777357947480623070831328392324032849332073584827835241362621949195671572433009289015698847582560046156019821895030200570941654638408136560755462052382146962856766580289174900801168501667022166519552729724267390587224847703513434579638746106608245812681522721257232784012721697626446433722434576495651865177292232459750922984735844620049719166389250041823559318509063480798108079337995696411231396367478070744135207600722910894545346747727872101878817242915686508726706749865919246175648861338187205339473961734295461240220120914848535845398881821303524317502525840574342796853217642572791748879206049189418926053936058510216233701682944092081248730956851280240885840509691574022911326146989964630933253089186778662770835554398215813490036021920345866453229301414814719495861290409260566336767968639351120928149339673546862107427615215575163038196700507691471515179938491427408853835303784774754919401805140396458487996358367831271128902615584223088038755178488497127968369008375183438281035895312192135697308004309472542019621490262830891515194165543486402627452653745329296853201293981773106926458964562648405100084843041946797712353775104172233345973802150099636893800357161082637335303618090985253967184422686201101914585428758310258266292894515185170085017468078215003066297247142461928081803865246794451027984193241308376238851518467128497013896879339137188502297089422816629633332841539346333726766033619294410036173114607842657180492488644199695728302434004525983906408534471544522613856214054497646061357544002391805448135476581546715298960455836764766046875777919861253480449848347357270505609287928492821490931816513929712787322535859672321188133839429505885143635951149518834657539740941549200894540856893304107750497469922282540226535031053266413471384919347116901322266666809204125868835995125903040096478030165842071162324050005333637486957035938745665892358558362867547544849002276019261744754420942487462140445458173886577776184381279679373261807431520753271478585807803324714913074456011061512790462130404059952850129555789796563946831824686694099165428828290012224049408499039443795116396663444318147637046214017692943883767123902148511034749223696006927920344424748158889040781345347739440094482630642960512239072653249746345665706347628191188902994760859143504480251133077650728891581014173984415840739100371713707708450168472842375339188532708655190528097188378835085883456341947088856272620167212191595089485047064304048991515945374807377560780916136664579817956481276223420966313294382611420986492278282542245846254666082953083522278668898879704699332104359494810306108301232523272761867461420173259989003356907162511843404219120111015863902310943541203463073683686868664374533023506987841681418987550723697243782767587070437360065667840560165226193321137259986687602351824763431882595957385108767503694955514969891639276389645064722289841362282840474918814284492643602607339899316853669284184738006742396243998768033816262771012176438626616640788883929117072849427334215117237233644200080548999509096707285617674445105407451064197529321728430321451201099100826403922068673147658620058085638583628139300371656838792886522386918654201312803536615843207983163518651439919226115965417581371557878487344781419037364064069029021074493988940262089774047770471263323553428118840453275555444411304645630772537905203925376720272505451264365876849545655963349081533884429533482283908469806378031637470156452470241585762973034504191034209143877784913172608782465911440389684815252642925236621762576974340259666319552716109889677592144758307220762877027697765016156395241322080505501403119115919335006642274874168798463326981326734696789026590475083485559053553392398343203046172812712331869217033586491111390285920071393961821737197475568007444004575802752955633895320578779950409149115031387448849003378240444927618099157523460754476091570763212597250221481136771039512163171938163371010931890137559387706797746998866900445679742481345440732412259817479583588507899594752507302026198940862403003734790778537403954934230115716414793057032135658138374795363297520560084815811995361348110261714506546344584017508153094697045994164914407362535771741905390696648872502903069003601922522191684940500667012917676150446110755904400216810872789648120516813305851352477574515919294876836448511270017803130166588727209245055199332972858307233822421374102734537244048846331402563501403752099305249329207350536956640882457418505809004504833298016541310545535238885449079754945232691360209487565094005300145256490899589247892318441920151180135758218352259626949554630161947395211058411356846718746464805625344736596612446816439836794274929235961664378137059051210410664625938487619484509616468922162034902630544109214209403325306647041778349318137320226381789788451236761097296148000363757286547758854063517336059497138702379665429323321551823980668802030392368009616805182223830837178989469014404240105645958732148121870564051317420473616181548077690655067395460395337250065506326963466298372020400228574559147482889724125657717022880090282588222798419472129273228171254156197027999199327161398886930233838041216254244092199399644303726202910095921343217688706187039233770093176867814818437636061664067780907457965966791632290746926585584768685994300069177239291799075892092942568810707315978460630786009044007566135960496640408341843830836245186429996940443036052223090889650395030499652609563245785438138812453218556963313956389148407503756161959966800697718647552435503064347485766905640883389606733558462716115750156751860926331489425653490862487100275966123019002062728632358965337058035638646949230370989777310343550590607980383591734840719346847152369720403583750837730412432444847186238846467811704980112741993393248886004217890708970237991436998110709811386622440392369263173676673266827557189108031252570630684831529334773716237698190995681101488719958301535600170929938028647245585555377895147898265711217469020402209181467593370284324008268351110979370396233540762645475504551989591702659591615869239846762007430424031819870453381623766998256297092507400409472684683012948775032536438555065690726819575251672051517783797833933721287130367288133281321132966046761013146435423290753295493481052036106221076894599547569964880158641633340859567578197934781900714575723991221134151189020427165894234946122557341942767484634361118817552342537575993574151766311796763734365118271191654295699078332376229899682567518270210690199495245009755655863782322691784614978403285945752592738092016333844263315466591436368595603255098121575583416233530733104258407586285557281583790683580174747647509006473377425047769863501829089869373728359704334009292696329093321566840358860009733070850206406862671950141603699642836632025177720952503327374641520012106707421245507507385937511283847376013369288241136551828520941862429163732098699884592143608716381101795227444912564795801910403895902883961050622554590802211135174023237283834106165879768781357466795957234545723712669144185055974485165566360794305117615445234375014840673922164246468476666492608696734178185915577235655650063679530270055961363168673456993989829591218365133662641100681865899591766951828815698128190630091599257056502675456775845960399559399575989453895333382314187437747224103298581373887951897197417563995291889479090254382251745762851340716723614755412855954944655914053327005151434462901849881828126491071481856664254163882159703309733873036103244641413345510480203898002885975324986692764938465772849060174313782228945193563662368965963971686882095809236951755952724335607297769469953794348343604703488220856897253704193562796933869631404269647332270767110201548232269327972993773452925620056615773614630028252135368320222996855421491665722063620423291737650647348791088620181878179553996396717704118657417022261795730345999398813088009692245599662313274350611957747651166150405136049080990623203981311430248586978547101407857236669586091972815603968630274677573044201233232933524302466776509014206443062385518711687070551650236179836564700935765298624629368364309627007718314452800441963562206944167805169072306626490470290601184456838569474533668019694171792600562993579520089151504736922179745324330968800690327516171954265504263899826627288093490379171902020553480113291294213485463371086689540231821694312832533149784406150087378855597766998217396015152056272633182115172937805110934533129916297881947548963445573611733543263359486412963677747023416760994739451921471066106140764142902287442719399913892377720613949778159783504397480658447600950489902000614774468491333681069620378988858041975251421817400583614982634074611571835517668659398520524958031268248947774633345915455734330896932076186320895130007075521639555401745401891681529624446235828966307448418258573191072813674949769467811608711501775375779737982343437613219281006592364958244500151181518445270171430084803887898046380154556178153149207140291252022599213793426214212747606630778524117781264279194894210679980654260221521467426681957489193284182159963006350955549627177085668045468556717695034820298929955035559585360763631884880169470204939843240421875781033734444152856326639957483415640409659984785037369026026404419908579361070813959823392232434412040393941832384878885469171563691469730271694229394848355430449027202150991115633026213353364940090090021032632477549308634804267356317239475469709635383698752132526360652955483992225416862192132460471510504836730196429191097707610495547293962196405275219369347055654968415521355729124072922535928923937007281304790504548054816575842184959847793185653106301682668563182069668490039114326803632434024495870955443031536639534713949941012215336351669852626306160371960667597742296451350922243173144310580131692290429147302044645244992785976846109379412931343443457125722286489487207409785213038421220612174884091824283780885557088808620965954440637311686085078258417971458504252910886172366698525510758518924240471059160253468076174731242564640119839318458857311207095694966410961835146446396466411802092019877700468109895576565078340706620333977680945691394471711166443792347468435122803967322194147224785953815724579590317130393760502454190180229986644538592265992707227914141353778353506364615310079599920124578057206218635898831261415992241494990753340715297360251322690621287507070293515411246523046124859289108865300899326059260742799058534277448395811690203872703154929005386923455727216511744823151276951114287443831416585951486461311200988385426200860206614046791430420379505204016589958563434224477417961460961614907281950016920012783465118081100526772515461102693335662418156191296804475112252525830150351608745686164721086283152667898039719425437944579251599771685665724526441636305692536902432686273308747657647887282623895604244152435573973350794874299884676987282675729078655074319856716122006947465475865012266989423951934405370869201621643569114052852413354363401318572250304217535713190553113542050633538705646195771217504951224390403198502624196856570972613655177763151054261964708672376653128821744008832497024999766444254898396455861713325467962643279449428486738400025770346168755032384402118362025035827670416199798119061998162459269938658113203446929046994852611158856472758701432244768276470319091507250657507441713941971464674209074400428884681085061626462998820906421917844306019397627739578105612718183014590617959846819050365059359493743475550989383943115579602595963727662700194380974256902157610217567217295023431788176321956435067385734013612084704303978223272668183473069108657939430885987188293551545611998934778415373316574358568097278387837688629552654334891569431954710240182149180500515962230027861652048364953318824317590380032335551064532100900346866809476517486175264359218953932118456723177905674556474270925930400227779079130668014158784063074758686007772005287448554842387767599475309466954828093782004218800294879958167464561529269240835699199183261388594193759534277210948754718909782691685104482065981804207348433452433049452238631322944648815905494431443042412998142807486774689989553715119967316675736938117219691028206176472142357514099993251543481017442350236873319503832475265357125452975992840590274011673413156497780609590571864362968129787505514020836442166201287170790587381268305761067647564398569205900024947879207229576785350923243625750708385601245098497986738975134886272862610195262945666912506151446615208871818324740982440098109086181453130983987273051302462985465652146362435030380641076265345242155088218155442998383693827826245141000215704378386650258094738514631599986781777757152312051566250321907888090506150803325189490798529672631394805105033526769911506555548971741886153822963347639461302953204500408754925693781023482904943658220798175627621872061979533585500698146618792892283793607043401801675907932315852280323934797268398394363742045809292152160277510278174322805621651169326254103963582912297747226263549864914757331392373830852726993548529039340855501988309147052269638688957380781147424745638243747369567254624542530496348100673310557920046087928452300318501318118269949015352193310569672560418885203019711909531241664012594511036936602844160715362098196069092196661629859251371565086419299544545022075389548682802153296632153062294028028442450729732525217499296640030822774275467223915581103332329808275991402138468927396706476241391780406682094100745782731692684304441664272056215971955809488289986331441159698755241424811264835037607157305477916223401341496812394533814534656066995219730272380320470000601956007405351683700336653243995431943286839423166902371744949653989623384833743033222637674784910654873812616632776431385783238145153579382481652508552493266321361817212467945290746715007280280739948735769977695441625904246745596799165571272557073510504064141872787162104782771781979187064307979328280717380009782535079128456764443012841636965265991645331235102365907671766660467519345955973287176976105160565318805674435115572298303196944680516023905319409529154866874614500082563954255225367729445155744816370733125989495261653763053368418669965516991498235766983220208490107642558514788513644706914933842205937933906206074606516932046171792207972490377380254309948612052398386083970353242785408850069042159006047605636104525528716226408941077441634989839214563656521162162373716134703994036426356623010479759765177746500847138235669029425469910851067678773618254863994309502177207025721778092953394366866289764017104711689021783386136882657282538769773783583075575869808378990875906406440676811265215430493086373009999481775645158555289778793192819943687705564250659175400308633118402326576320271647770507339142985089986199251969499993254834725861732434087437383133944201585128696775550436502510769339541571756978119181344349934809669106488830418396612145604011613746124263286651481156740006603956984947342963324314774542896011366278374914278892673497141986450510179434194826471435030977038598830686091475507885694034296108938915003163961938976361656553649741833129564501786379886537359585712021762590426502729499480001298336617890334711297940469375575492408672854297935610702239799942793421552531552296805180496156267289522695185563088355578909701117987492224070623652642155828103982713884693057374981337717057525781348844164554042782684534554303492717741503941272325129486681575982036619528297877255951340870967094436383987077781001262049296847057674402078519888780125651897383501789492508310005633854432955827655008010294763469043896866398201788046251177686393895470597590787219947249107925167492675290651098940469533232589205541274491596244788466785753552393231604959202521733529100654881126169993323601658954918341567583041023252016543580490139474138787811102912374592014501875369404700957465599773649934749213323472248128279539511745004308533116167984349180972874796102896535613990123313692112556874000309790427188940475160900351832082907862792234047638583396471356618826429874472388734047610808885626984354958778443695620776376577290916201674632472120881264039184694433040701647560645169351137579881186787299962886939508195880381359373292059173940735419829230787350298098367792238264792688261207134743070238630567215200034043198773223607064607742111767361897601551596899398462716426359565350219815398970830542746223401103153147283981332276817708792017915923133524526983473566321237942875183228874538886750991146319254625347100262920918792514653457847744159608208380395754468407363868479801318527113452246665372507603528826679543322132449070420286565037624567537158817261001712022317949919121371332877843911901350878863417990757474369556205266753646472215044358751830237054721795797546652601406193573320306903654656469866804190502825392425424490210058671963324240069229095626813828269299344768081607005024613334330363276692558250025621229475911448145916889932600419566088795688359400647480700992731204610900229551465399659290160437250750021540677910819282357172597983914607987031268774236130744533622252959987796353582683540398941785260882873325357434453289272875102103030078062800442543196599206921118700969579322829140999609062495892335585233337845654419294790510609238256022498860619168532387220410287561997409061781837112422631141721802014696796535846446768652226661411684773641456684629727587965829700423136932171782230004299167175542886389581032632912980881528527832169767562319300389849329422363533429874892825445506783257992384035340594118413557845830899418493691610495015735672431784358209476047572997537716148377110781338320155102091863181579110678686980619477891309448979475261287754020443824974180036391837083746752373179504802157636317022423809553581415771765946386018137756635495978492001370082199576825563616383430767744335757216920849390961647714842508452502511886664727500481864448483812879261911140940573378191748106491308012624277340883206903147711974562125855054734049295670776288115280377992519236474723609792781269413399976929803012430143172071124538056404892871658758198545110809474496783427847225726184801477646016003307810396923973923955409612755738076895980630383297742626157341178026453598919059421887772470458488549919406641234731465063674141685135744982262026264368004681167905834791206786266167430912238499174502735267405959716860871301969148376143499339595102232711172192490751552383891123887431574819262888507393681001518697263593899171560253009764275094309986367944130423032170468488574085546214311153241528509442032244370803506366332380996054408285683622208800106553063496608271696645463982146099556272309305565706463654496269744115772391002392731228495844470149355343217449191443240765240500244543560129315907439646431838564590355358812151580248227634609044531945790556055431231218892472511159019638881936517354911365916889624479249445900839484560571843894131440223273544774534574809474984163840746156434929471949533385530972684918166938525252697960958085920538560382060612729424417422686235924624018574073225157973169850182444886147070718727878263849704138361907019251233233130616179191716995263845822006141907329515206578267256892495582327419013528186456609579558941172625127655200386369743189878616677767005412996772930958274010677026898605642752838148941095052246748137551590736200983219611082984365559828992383626438456118001578447817245277281633431889458249280819908334841555325169483791337155526540329796988965725439796661829483086993376611946331939071106643692718917777969181364175386002756679080386241929729813125411097725340554303341361744427176342737711718773515847250965652203615129717565409011164194738947769200966800021377538912458057895726119639849042864409547518132963009650463483798887867092351870045125524606877821883464341130801036790320255780426659248147324059136441909244345726379361556606784257943805957783573538298035530422391732920641606097837752108006515997486200039955665675837785608465363987087516939813064572364557930765888218774708703840685056595252507630494755155919750344955040203012429030473298126858208520838865698494903573655677268065809972312572081697931250943369051886184393204313980335098306481552174794147371544706419076071787417566207047338641892496904559047579427690618880042036543569067131459363351556496553991011890990472503557019493918113192408116927144147639540249758964804280644879863593077762944822817658114171865248937286088918730447692631798077042904578136990367306259602505644012900687721543718611030985328078139597600426299763828402492710237355072081442502913654884548817166633878382613335764327857546455013724699364811540078803337079118349188387250897617385802540401270362795983749071818722287386388938343650513624431417280623870151250176927991729819415288303132913019551934545878211627342008375538394536669801012157166456633907039714613639913475290896244631296697793904014381960905892025367180016360469400194577386489206201334980675252167701954465992872420824356390465634323672469141710543182424009632437111280963140969584879183522354854649226912963933737484530684253550740251998966569784709690005152867458408051840594716506583517050047164896243865590447388966059546726794039569800977647566828668129076322579898098797326347522043092787487271826701785854027528566592480476792257922568186699095214354754148739009849376284338917962543543286875185747758412855586922177816389340557741081364286503596495997825055482864693264959941998584136627850951535599078394443981836221373904296428865031624849461622016069683990545453154891814515253906722701084121901324169454774943984658512442309982113589266495318864515939577774389472471945207231969766009486938372551023452827768066566943453603777427472396308954221079798991714606242545355854077390735888740149679401571257575879874829422816961279602801692556088327610686768416394271643123400613481138838650041114330459875359734622590184873241022271314276672186491302384746213243423028342701155506899522294439757685993689351715418643350071607330364516924953079811343142756909949724492099245780667411914743184257618671965172059753680207804519187467774923775220772752677351159022122812365677075657178588969943607373886210734827006593267208834247042690044026107843094811714390724445322888032426012586536351215852672789754760161004102472583147271487324390261018390684044742426318637528618711481808311005902447222887926463308729012963321404184461330478884141446928122018859626374567451394786306884470438271451275140737216352351848557359074189607621520932952218506791413319874624801541983079184584477570172436826023051496129255548543158750599105936547136702791526444455570491493319533529071321591106596519016107699956920843123602238156781797399266369852417382464546385857840062819544163841308227567943268202029909383629355879910950280999372859338197102279212443764248211267363246765633195065200575268553512537142538225871741565905400750721998178682408153130197414448366354904222197694405785499337071052375153293615930072682833621573870865333538797879887369110737642152217485120815545537336996421846397761206139344736020048332281844816613704018528161304724513614463925525601164139034734733817688204424933979610121999195748928452697882812261026282463987898077950180329285058409510839518527626324917247812766307807680547409103257571304899628245455192616653945006448693243319557980291183495476174154319423767955175102389984514884687872199098639471321157664463835366018143427869501009368776096672440655428725248319082741814652227361319220245943835895840683022496528722877842157840229405854560467706038014930777900663171987056652421552173462237212098021515155387879606756652687481987126437012049651800840640451466572169269551681076309071356016655113738189892996516839876945249195804988285243744360782652242694945550326081555167464505461779809053523106620645929291646434728200838391429320873519222275256007628563329928667388775238986831002905392095612811252362965525871074310793630641619721314936431754914142232767659781330168597833389444149415781882787643967463002386895458536432227607388476876875024304574423320576117569412568775494771054003452830008803647694384235115991124803705230772729285735949829406032915778716393910601982521528246358688137411987846785536165077765977312177160143097496498776006767395997539260993068007567879683742477145193911897443158561643079536516751069592564110873749161832691026863066872521081890380593373386284484838298686389136060867353955475655204601017900997892256042924465454002643413377398327185571230602976196867974649771943073783690191027635006547821513400000931153656769026223320376898874075864260915021544478468975727911570791041405047649041634531979204280221542703196573453268034437701420373296674533372513531764866999920336019696734105795722156308634524124497704630381758126450708668033140088638783239629288313454825687418360181911850979618202564337285161736637835147271841523685794096501112155844875044875954345917078415432731543106314458223794872909210447610390686688701857794918550370917569948549406346446634289614187705815133923531679365936966633960868229777102488273869956376503247929204296432511016613077516539113903813526475790052099055550275694638068888665504836937918806708134043727110935568949472120148827957337536971946672813989062606899242724010955174985922122022849877158016282220938379332316213641363205195328416090912634398936583562907334235473512744726293545090529194028046270321494328168654876629154291402243542050574455246688166308446630727775093505136484372023487061761790913060979304395433895397955488747656280852538398450557915931098718035115181667261449704833250094667123652728750097698072538685888691806645361327108001288236832158228768278733162323930967198886905896678445669391122354318063556237917974160878716505233729333682135069866054322279340051724297667958477803202472824848736927972930390402447055878596220449677569625490522008739770546864237734497203277983801657837080569773370624421895892472131614764910771977557497246515433094917564206436748844233311954396162457964435167786157859645729046887833508064756467737811632621614890621562777502619396341236724048966406479016417106619580542634888040956908141941296857244530091924434230780249465600249910587821533293462641190327324840494926278701789804871838075193246393977145318189755169840422328941477277154961672906269616141568470447245484334742763197040726723057542259964314195959207119482646469913112167122926577656023531588583823947519933397160402746844614945542269441475953119879076456262876589812493561413596082790045539773418497463889940526764955908285432933301859671187979703388779535430186381862462785385090512451718891310585661410335316058659924751644265129787886773375574273308587767981652582029026994014443787929817255207827143228183284239938825850417483814019214622790851698209059846729349456469512431098457386578731757054569296034754997390698093002692956475022308615822764660563314459501943562223707786514907430742079611762792034318650795338205567593716472034490741131076615447340733331998030738374579204473825283440908217469542395561663782234164380298519287134311581873489644292433588314288402694166450725272850091284951712370612488259560866613825883685400198070679048137999128893896750546391331655083645202713530190665922334519825563226066525345769690032577719620334626132307853255411418997991621601803327935832471090427559458623731937539843546814025307693571117126242182478811187170271069059006939821149344354029029715133826345322008466032755947673128086045393927731984695690443920817781561356521132774881896526019991097532973543310925898587431697961042660969623369459692605790430871141515659600452321403345721484995962474081040561463327553120466602457789529056861799606348425651814585211457000122595855229618914593133408678819718709466908165597283800742141519112830212947339739144712043565074818135139700738813160588943971233565764358838609958519794031610355917130625890715322011548277775688816908843070715920761985038465244791004963889044449972995908956278952348661073824691881083864675648843217468111937682452294452152103139295413126911575408243797157950242490332437491256451935227620484058228170418049544991972746318393160553948772952483376382672735859040252919695827386059907279523757835311029166359458579657901519363241623756074715993975049601072996091781829047714365964395852944077643022397135228319856560086436975708014405692096241200783903317818449705599481722740812171668508921690197387311544535279250944817598011249445790118656312751832446016009848492952030004893412323229958605875706419353888366529003075459100962253635029811157090351349423205683227507377841095902963232872453495931581337772300895152269559149573529056441471932498692946766870363724243133845088457280581032756848794713289549357940410669155459317751063036761499587362776832476703782711028079309798473440067553511801506003681034512947734138765846162514914259091643079499039155369438735714738831289865483886609125170918150906263851663732137499365924752204920060603775544598190117616893663076332559978621237059958570612268981345714367862273913192493323389087376653919751941452202378664239843064636931827967983291259917854575043244452624352144695574732107906264983769774442844302404557851553673724065116823553524030389298398870316035411772163101234098153643984688948004726881181627505831229570813132880477699058313008660731242634186612687501673798727795716675932116145223380787198251827637999439760206253165716403490066876531250145568317628523407959427867829065100268357691290716610680977667059262113972413459075261101568965643120192305778226077658780551020026955294689640971007525260276397360909563886365245183606356672656785415526577023252409827288393550665196053747199916325572773276067188753216791195609882999559231915318617536108621512159647455352973763157616608010065865478598819949427879663698518890506448484670046511140308603761649445734232762477592744610894428114747504204199660018518873715719534891779195941843262584478184886035930902779093171054292795243949143565950536462874031303960177154519981656920061559770991653727540488543340055789834110609087696223252677325915402251681314645690142577665337915165812459926764911426599557358039336579703900835246775434739014491888959392196062038440183474580133549831067407322216869233424851602113933947426293224418456899917072268172973013951584840499881894374862534722890598976412087366545483754064523753800195970694371744139422583439449753141595989337770395740686885309936418313632736281076065168788255559169169843882046699982565966162470736863210731529971195614080665601521555076629765133706676002327755592503594935644778156414608282505236535031907150361957735660376172041294081169975327030465783856239854398734219261503932648538353558367138513404920765357501638584951199079178527576616241834971739129199308392517988228414602628493937283024865262306417914163579488057529310584376073477573304473331763788699106182275742861935413987915627235890853532601722303552379144203103448052514692013669438122516410492100624581198211103338995208494093250833522580408672591747029467043567115178184304458121144210986387058408780307569123072145534754941690712635632289685867318176818319395532795053726497328473872559719333165427281217130606267072931552132421140153613202924113095830747331563088128929968014253022257080007984119405831034676828490676695279316123790964149325958306357341031525055526564956163058626587273890892117339709478382276358809535242504360733143591100323183631582153461659153053329671039052172705618183492442793396312453538595982388873009058383602428765454281279308535219381868127615671633354964497166389249391066376902599034721089121942085239962836967671378272955442467986269101375349084002777053812900899523127258609008444347637162633681694708824817232173259276570150015917144066839024846879176164550761952235731405478279414126760840145513068590674503254635022151002013837115448593363425432263960352327332475227843591194977948290563168073821629961924932267692239042555985056113029702642250578753837092391700192210308279884105268677064569590723679203236231449672708926782336634458785953043672645075809923295451033530067354833651665741652074120718159254733125673935127026091096302775492429997526875200814689270959092751911079031890199435885070980715558184387421268400167358485931641654744989003797481649456445048071072885883159690372914918485240535440791994898652623152307191442442806007383743445898217466521151520492802873980216922417442793784008752322667434108972147488275887489084202690715618489992066981352898992457424044865184689148183901558029473568884297819316101334544277761260464941497484653690471438189551731511263871264271381260610356379700423552057162487827695793481481355555674334692027914231454627920432135113339315011541777444424059437150023265961740772846524692141592800920453045371110455780001861854668827414666711880902630198905916214851607355358744411428436059747671625146311074693700868126539243100165102355966562473140774815757200123699400509729601288765485137186910547878405512450046307003592696611583060210259066487620606746110335814928437477993634232327604807076410499972893552537902574391391285232437368786067075071960741622898284327002604602806607175176424962347588552615618470241126976649776735136328392488426900894241997766277867613391295541529517322323984477583687634227651726793229242433578225348618775653430056930395980125439984594396462764146354983190551243963744182167100650120926142666359661964855042938503944276570916157245350749599142244649271831181369479166865991250149490539127094910511968131141388972523178320512057057721880240219636046561311415428950893103426312868932996042859112456494991124666774527874730436956324590629351223734047344922499515627734691583379784791596228491693119776454683416380396739526921747862890181479805717634492678491233522429831844523169684946556133425631582920893077203299545874734290390919647012014549482957075301600866541842914027594409262718873446604086853398900892269257457808125867371409139703724931379596832446761169870672516759874123395243952292949505607064101599597467346705404725319114997724775244923462609925303608554883676605281012549925689774014374265630422476639339514386860092522117870126463796295986467381234731307643279553105162040475709622216439089304102853271449115510147332398376867060386115726213846358323629054305634697483135180703395671860738841333695965472124189733993126221581098849883692614379701370574622029520216955833543889801170277005947474770599280611951445382596625670518946668077446202033803753108719728701324910056487812243745531020354134960366113324281874908380094516033012026876515261925330838379037915842526077331963540848442462662712958465175904603991051426690074324054104350255558424067190618192283120244393445991772004843774377296666668655013180807433573768589763136823111697426146841445345065868327590971658809363777942060732447384231393562599233400878396885495779701534977491393219240695825177558961983879478216299009723853984544644141789112433654158657530129283581619906678760012044059842696930346216011504792082796307335267719475765672053972893403258533079401137867767695563294970692478219837187528272366858213210930678393421321435754712946182696025053249581596029892909752309271553835507776463359580204522919385677963390306588012338381339766404533154621132353070791442461847104151790144360299041639030461197943452440818141094536637938094314150525504421186297955846979906986078049668995973082403531254036442928451750747782717763078843720706303781967842955216771431328640029919251635615648107829569493333205983343945810797237056763754222797469589226075886278262411162245485905067741384909789621740568472285591385467308717380755195951541613387212644550886661206894111204054749764030123364104764537553260221283440962941258642424924675881999650198426409934622345517041048687308248213551947840158398898121697537752530095661436998120427785124400122508643988060643724532956141862313530994607183689370626920080054785147165183845522645574598915786118883987880988501052595499738153750681296519552421231307130303579456436886800683585352328774162769872130955979007418546680136166085463597782090389449823208749882680217347607512091769831403007456503808705050296053091413443979674830750902335610763054905977137066863982342054042767834435956777244385519268703909550372959400721371888756015121536788795133648211266906263011484039980842074781472729139649705963302552936975954659849327229025347445598670884414670107634875796490080722894379861009515223897449340303005909484684347868220310550713554167486197533091645232276021913439931704565307454810979683429721913807164595988823239669280469920281531273065962085127358147748617077915666650448034204017435178452241330446668345286672642447525488973100214261859441315858680234408725943341291185426509592763540888798202454420835167599976718408107543115747586259045790726908293891314899053042746540353479780885972566739912414352510862662099149196283478073029923894235439167002944097878853314809463065185755649061687518851620352710531809900981808508953290779372804788167503675453803402837759142180415321474834376562840610958983652780939593198476435087466255365550933676834862103809142265755456759614700928493866552308981039957421629326392152830958904659258461073441345473649157097713492779879050803754524301535954202369638602135960733498506536983406309930793121051898726564185136666579624730804535625977620768002417241166088746781949095910144651365011032968489126606403244690251001560486311783917859284624566735672643537535120801227570865194635663295787528539347656944308199071574682816978356216064574250458450248328963686456591187947123540221598698481800507357118399401101680702811523250733276496443361200606392250789062583802396308066802138563912164306184047217244164001039296852008392292216074099154071574184716025447374330583005401777440100658344531236283723737403932633477179557322320474451754405730819645861411688137510081440847229945143073191914177667851174549641126659821991022659944646998162811879846229686803743702439659501882773290593201208901181445290868140375291154503099952320553216895976105654835837596211761007758228965783432934333619941517448330058056364421518670010930303348273613738025786814669265509486370251189536363020577990053265493250490020554251079141929927042387817109462905174190038884791813829009553031545526524104358643683325111994944049684232559244074391403516979847448536970155702458649536755911325297844676022202071502576719485056886728097904273320982008261727834394946918779474368666836313313964166510115258942623157553706602666634405182006686525548244254574343808751731161610517599786183820227607258744340062062357739681668071515875327350953526633056992562483284040643813176706184426792570786162042708790608024160265121783169141548265369150939379501605258656633898149687709022083465133721172871079282898525532013266020208208750890396076045149657509660518529262299739493157637705614663518320615061358339091413110458267531494369573183279936633719308068116240086727667913608356277055478496822106761862073930584424663008429629033831516664735417417262250960734436582966626032450256031882052813019939504872689837981756801352985289965573866090275615327641676347978342353409999036298515539563137520577399183346744579865340529808379054003682669473691755363690659389828051957583375829427189661300547780463538887342722966850666712412158505711405245875659665416641391290806035161336878639152579674229926476238290219331964012231345522010839759111038231311123217923087245146531416519466712179034320255109318263710372399158366364612949679581139906989537191268236906283629178450693149563972648585911231164241621428649525875789260533454450890240024151100240060952557683615893153367475623401585116373458935154759255555421434438711195217830498877315672643178979761494496401824540622517216099208845844009412232806057609308952187439719459850533583947755410849585530342078222980394145982886745377506365633566162736035118858762691227974480508884148395272441805058714775756540123405960551695570113357643027695392699360893944131853932421103098072280023365105024034247390588966315641613998365009754969613200738667907974153936664349722786138509473758820399519361300894008230112035492624104615824861564651166326407612947570014279162339729850532836190976244067457470381167336558474568358953107571806502995410207351085310463341323893985191815100956378229672084880227138274353776352158946920984096634307599685379635077530024613120511178730946053934673709330090814648989607740340905592066331854251464754347665843343224309974923779688477709702362425753037347794790510587829968780861254589857684423663857265893682759608706516818802740548007999652196900547566972205332925645405114546214802825377070337014498597907024287953710413695117926185304549724944308213241271365848083818570266831622141678719548159519904894526798629428766177264259503118380666096908654728730261099910195074104130076128747258136809793281475041661359541119979352472746976518892725259482902349765700482464039307332151181857327943416422067726207984001635702928857219452814833804246695740384941205994991857175584422771460310041119135065387330671462464922556682767487923207335186282979281865982207800940677179512441071134175297325055710509988399029130125929845158223876402897505386566738693954715874206355946941160455527654623158198453482784302193364229479898359069737995042089467362032414653288193864046336015303711441303050541745700735925221859406916716761900157565191253877643799495266053921745357275551209234854798314277403605113206170731469997432457033256247129614232606755883174215501775641370726402256576353592206965760997291284351433288748349290641802615081791930149352610993032523640313482313614300869871799437081800775342754182796356062898921300230456807253327398574709964556741613192646482060856360892653891970688314471907166709116600923727190793572061531700871752862790785689802252274959642626102420425482428647777169732131457101914534509524913727087865503662810480155070452124230593976033102587151257594572744931596667724736664256158605184551950428861300996883453073351707773708925372509662109275437735034585085115614077108289094075915900420997846950004758762443605127941364680354105439357153429291635141808530139106514570613075547544695172073511203149993486394191219863804355155156521061140281351601907518493161725608057152053879788246645830323745568010656502091974087280433777019580701259067897516364838067373748790576885232351888411266007965058037544602837998624001074718270432143088658194368845008463247230579596261521913312788848986693392422624942936218148573718815456930198485873874129678743875448442040229792818102462414832522042388391245485835012579592850068378947888368625329915857245110206720115979170590901101449545652839648741107595883521640719200583625846460188711333343419463513107320933984418913161262647212519641711472784076845540147327686930963700545219579401269006568926871755744056993246118312056695733085929498260095729242458844303562747895455010133152721182084921769619380796654881482533529477022812155028864851337568443513508246798815626318678735744943646845468476458715447501433058612361338826369244732232906097246746234218703132092921859131190506836251382728261500009787484672408052300335889184524681424863140149033493222202423362987581704184295692180099752004345321192481356321341091382207753546716096789211824855592791275868796840419081871521240973067917421740401445076318533407413066007553021612035547857524469692039695892043426668844857816033879505416824084397167441839015115018192583127233861443765054036113921169645852906332094091721307477476658220126579049479826091984022068861880006004758077661125136719912883033192904994751000547019708360249958335003732087514777997341621132249387475471859439172095201737015208219895988534648657692718325800927377068995503745150848943775122198966254823894739439538112895556788246602128072126530452117395983708445749049819874283636007947177994872330937156291563249061189442596136628960215923773124880991248836402243629052856316573272939059184967254588398451272008831770769487603650769507080293630713486497595382738056963827336110865440842675099426073570962967661247519284997196297005270051750468362283433725285175345805973468415250585684358751476349191242637529894363149947001945509083799067387136696626534436636238294838368414966763266942382864124439608034891709517550496441019105379084348567151864392613261545515618157181736446795481575209025282641012736494047156048401119568787342552886677942073744029600202068261472382155309673962447387837417797713783761408261972843530161059946014393392925838017669200187127895246458165870779007936237266423009082586463151567746406493544256491727667092104675285258811881597056124091961520858228567068831500615237529005761916301641878176231704155364045246665774724804629233806515399432629934179542951133658755041541798637406096883979266370723226580253802585354948043867083642786352694673266321911665511273520895155644118938766606352041814756149692562188862549377439654648067115427196850402062350235023147663102286397416683365132978288665477518582312051036755973822966913785328599482593005823084513139978683468572202684413484768968541008388472850763956973339844204477387361251238268535120932363748246873591974120364323890443889118621770234752984771417624513574061524836342241347584479337365257375086347223390607732806725172046186133524436381119687942534286610154271033073668372684254067273926941712853918782868094296248429211813158819103554538050980597974590948782195308699825644923198182217210978497348268138839460189480032100710285231248914000667045567230118834079632204741306954292147212076558509522611665795169101499652800826635457813729932343124756438844714577718087338479296799799736087656216740416029878729306464735235780799089921540071514456623430435576333864213266917396061802381148310134303997459525032883120323858658356643437644241067246775598159784068704715931802166101393667709341665404439595112750032520407352551497836610204494007745276158493612155992295733100210137092447043260238551560447892986335601496294438425146322450383645893774660856570745402680031999858452330844050872472751701656680094199440542097362087086295543184523155211904931692117744236779329779194804253763177146774437903571057043327849285894887383895330626817934418608480902197808427866773084703564113100601578414203877266773843442292907170126540712081876267151341000627272549702064102311383192608931603640036116638513829284874725721864152930556321792131730547779975438807695727241493905206026386845761106192378285457542982986620901832071882541573583739212245211532901150817783874349460709587157623795447605060953790054512032229475689275272952616606017018966441390452395860732365917540662048154644526696639917114290827063717507446842174163191321664693764194180087028918441787589379904463944136727673654706672839737690592036318524583124493934832336387182938968825211094799419526338159163808865957910710963790981692451888061221652307665910216592859319375988556878064024999565549152038284967890445363944965111300833160507282178440577349645253546606135382566925177615069480721188975730369966714317206674958361478478819293835464629594134041527971197864293038701664243568480900290898750118644659709141998313784801992146251676897498573944841514398698558926095826754625040568811351817170572274040331874493363770029283858264698601209917939146953651975338775833445668745864122242373672709836502066404675417776446262389199985061804201247308506019640356902157179489456985189928986575764711093584228113418995144970185610449913045705011642296258426429588058657055487979639183458497629812032353851515063378676431167349768591346118135393491602815481903641392052159779653208433389095729757836379690359150231336526621496521947065097161499813818089101330192807002239263393070908561086951682811839083433850641810730244082871671920544307124860843122931011340477486443624702679121583692683691432830889290747606205862280672045904413473257282491106625337576921266974482185208737107191370000069109864620211208272402650057039656048564549544732140636674033948091040987437075187902907088281186966347619479828312189987256459302838602747386275301412557296859111937764076556920376209235963340509192088026990543032075691049342169112057769459907878871893667143462978167510407633261860403459555305202575811538836853507544632785557065968850445962438335554060548482892608849657943069974063459025533940583540074631148572162429278417861971830471923085157004548777495748361185519395529967920089489831323814771097097104048434735085864472607569357149164367166926370591246965019566841919278671858523453668376753381148678890655383448379551948291298328948358380464772719612162764968234974614314307737852998891537820545927981810997995029766472290878187841379386961919967146510530967594507547455874020882159445420493753106538083928150071355370052658834721011518005076543075442972493840200037593790595075068396481058942150476072562965219945820611722342618114109025218557574234592116551511012178198909315279811983558367901304758971019660631951242752599245539752619190908292238013204937015839343540485989693479949933524257092353254689356146601065817927444672229562274933050793594160214591629530884291435746001341403664126424188569097395761402499388120897424924946239962501859740428925721614034034341290423385846943342111636073775627997857045422824210966728698781175983196013975089721844658731399914724303044929463289533626636500177042780104814993556659204490978349869090693948895974700178688046803652291064394106550546651320683312047978296972179017120038733637949327324558662800255211778770553210259053508880466936288677281237672601543915741376241737508640662600765385162179863628334304982311194592571933130884402333936234210215783132868005800110024089332532629394154158922652901618992669809895132654085678084531251308545776489617305822976077984812936464347797624755468038018610124286752959446593059750364929345932515683267982891930249262702621610030410240453709281160958397597922174257222027992809555628060001868143738474260207832197064979510045485542468156324668939312863610248368499871742899363305741334876529388391975872919707643784026138594675255692177083142324146487470899831923450511582539601854706404003153011854084805065591170502568932193736174622330536080464185657219839429063339608373520729794071689967056209974761027922166173346250080398294112714692309509899433069165387453987158936116903804244349908393340812341759799522690484766565636281434201162044863381966088024880731903699227742207075961089620442298287452610896213620652774341206749708435038969040327816600826534190890942766210279857692990406493442677124533467000158964775880523296839841869830338660957692270744024052012265524948834736543904936052048491523717559989125591864316918475362801908975991384806656087169697887230357922856436935942916524155679997480862479303251703506086649923110432034009764667992242046421825524123549621094846678802012158828595520796464742419414442217110247876797812192585183088965449387001836152620605964010432546557087083054505714060422904468398266283589827300589898643811792215562874296523555462797548078041899172444797799915756904569309052984709414407564406917614840126774114252961609559830968854179710423626820562702611596455960063198941272209352873903873737913973873220722468174831307376816564216567614913926998969521179160161176689182980460906589355912208989772688938999566959373877738284868197768487523350266926781434667205229966086471362730655137991704021759114245114757713377520429907700618443001098142266611808506596326054817695261270390466786341158645672600072768437089147700812205148274102519360471844615408847040135415834134620681342343832556298843908199010075434968471555232575028703720100949883592483281126571374177383764432464942817202887556448166009911817723250450240347833858731758167851204364092199441561267097680213317651805493271044538417347519449833428966203509214555351905771910986255757460484863270615288676814669064602986281770066450554602550742731362024127151706804661709239882478443206113906246452125024971419351532580348311394623998119581166459503601415493203893902419318356544857498798587192083147701893707295004813041643507553800969783603607974343224387753558922528652617512602725338191550275101389843257845576311261218442881668234603619965981550239756958135738349201304118184196363569893183361709988875853982289549654682386571651578268525637117633404818252322192797809760315185784017229024492593411452966619474703541799970583146693803932279259541304665763628683052557682086059461797936498605753701501103309697304344171561637014312589744034324981081513084801984824874034065965900902475603299052458754975305061800146692851565898466254891529066858136878741142573411452596809536470759572764465146864224228346495467187809736924864051740621873244179919367990767756111956350332991228818485298653155136083523138476767854198944188786643839829650985782049556120488490352917427120576676585889470606047729962066608337586977166893692424517999670208016627463386752076620741221863931400871024601977242423960517159093173042542852716951764051260964835442142760071457794423368522123853462942736097372863946650345648039977579931307442903781782234443299940943008392470194316605933117991686082146517516961293301098375804462754005409028563703532267119372901820124408390911779535689781552965480880533872401727449512382834661019374072835870974714774336091661982783731769335561134081313349072397849749059989864061496741102911232357212763248130732073123358417928808812233838213503399614562338246917190725622525989936619066562344540869231050063904599548692271501657602267980748416306600254509103899037727644127780822097039954518970881728566827091690274714777144614822939557032790991983856578995419350645304407695954579334501974505569359331329630357893294611437442529128841942314788293817606606792041374338830401831770813807549520249681085220483205586834678467161083809008292848604304850610370566450779481553692320655574990168411129779530719425922429842999102256222253659967121724726023037477410877159395745110042960887687365417069048618525914025434252191981729687454242110022007911635449844180003690859061165158144775049190312066485806960110606909856531406777512724982601247574762176864697240107768315306057874284114157452933473237972647676451203739938110405048797424953358316174153781415094945175142187820628357944379277932565215262828797835099879838674868794823973879293166975321486930431434681544684476707952366973940451671193579970448393365036366895434484495460122801786709880287380537049954562963460345820655386864004378549922150690767675270577282771022729805933659718759895360526022797666762372520197821619614295672395614920563549278355348098234660649301334869622505498653101589295747566905462412177557866530958048680118102977277461764148341430458903364128905389351892948957523294898574083720095537745361961718770865080825289796163576892478382568640447772036997882274149495408209053199285121461971097883633272525899334292003807606216918278561261110513373197953370932197623036383792561372990000481163664095844860131740967514261139036471214108766178817096104553271427711775949223927545691834045876405842254253615293515465606432873035565395254216452714018069941273544917796240179294193247427769496045516545401983319552562180810219985480216936644513281875717488908661251366218030835694883822652497035536238276571666374375496503457944390477234390325561517735573053509494101652824285546345755242537386303072996254516658965908687990240549646085766374451217817527666812899472593863306240176850276345985818147218928895769089464737054195777161792289081155921089894414763150228455580061297360943491069828235291191149765760372084680086677952297915785339026634740921369115816409371966897815117484605421660720794570711925490565422385552485594536131364094358989794956406918262451669740831613191308569265093730539368400115051663598646825778426018054235555651981003059077522500936279692467000149391925687960082036433658241334485510049496602807252115867502251331878915124749783579210209691711698534203882316944521663280679603509928572492107920342024505683565162745468819777418542146084995893845704837344582096504924938794010371051950335053106574905580373080456912837367130649978031469589552548285599651735518641715168958294603809785932435423632678514130166014871217220396553651171478669020918950380719219408160866866975491850117250481500146034171492713196073954362619547313450243792692915977732087482248282756057702184775923476614956637343115345398445787940438887945265552423048556281512755801077493831471220092182149926453679471597758575534747606298499367570178378577513531548715808416136485809343891434732924646774155912206354225762661033266771863786080524705259907267239073889970856066666501635563475898509953833179355215421812842890595100371764438774944162837705014535505746000198353729851138638971867351662434014703021508680398938647348193933366615403590216483494017050551096975114937768232073793804451425124445686381676318882295892935749004807609494081363747649585525455149440013984878142704230865975560538115095297903585557665278685036966503317221027228599724921765718633818434313232535097671386931546490853336494280118995490859584723068309682885913172622807129714119978604071471991179047596224159235182532082019356086871107411035751579116667885384624244241763566546782455757534926452046460221681113881694253339049218163423436733506641163155345440412240411466534292739298913011774660341872491269635802985890765073240220242097999811300642886301213609397997445197227034111374331842861344185118024914486015941480216177505464499481147315848814737495612840921678721084930002928290449508522074182048836831523674254182537668629176164366719432857186518677331590658322385981088044870104558566254410441636253922515143783819261870721954370602585054057914560629192868570846061106224849550999354725584989109502138651214690471571020555130654609239964112336556700719726904119883063155192441287967096513208222730658763498529792515232540432743067685910603594740525995156345478863396918248967129018697921356353366204834232165244686279457632637196501285430003192283193326322777714208491150868924395313124096101482588464716460983210446603598700283613398127892007314186492329015875311933559634934656545345170561549592986378014103692350524410896490352259286310567330965541609228926584898172976769429010250626026659211953962730238225008124310301568717089378057537002502193239014297083566728743596093475735107415354974208006769535748036158319394243924201961475571844750154501428681605894834313724819595067170438487502003974183656992453754802054127760123503622789895999206829573400124742467244621637491631230042357600180768805172182847744501220186180187908398735377368549196690029487711590128960050326928560830380679994133982036451596662277744941968945737990696993499050333924850476256175028287359689301181562412151048170023129665336384951657795662364654045713400759249303986396624586615172265730982113738030889094229681686656538353195359558525715223286824439647210398439938782034775489314512927601454193404237735846902028999711233865763444049968140853688012967073868372682729043637146371967149492988307704154847950497859156940574882041391894214485319042225258732606919381216215384301802746409830998571654061654148735803095841940663710538404510662439174243239145832147660486521639270167122834449228122363026890474913508546952554739323707653075178371300689884048676436806771210597361806157371860591298871299226359091823228146927363771693481300249217239822646386137217332582521038067780155212767525277142948646257203797060965206377065438074811365522742622335285589452886510598787899395793563786327126525911036875211773800492550962254243324796025106368487744334862677937664521305087725176523581455498479141324571934605130193021917405021321308999214618820613592810354656403537599462914073886716087309233841326412203949034514889105914193795590358467011090323356699129823151608012317893588604475681910670495349167344337142034859078748066143731272403174218910385721803266911524173764133725956208352481873159060053423735781658613831423532028838909684535520914439160077673669525254226884448995561376027254870399560797782495026033148616059255988660501872527513790839794710303945138558315231879595035920594350990878370599773870316511048122558655111451655937193728397128348488281721109865650373767779236078439621999655503011746470516941308158443147557384613880446982959329507919827764332965137192129357211841990053137047762613530645865366310077604105979983288747669474252720887714656263601797770226019349162508456277782304063959208476011234021681151576547517478261359633727860235253200272727206704030018000273724895086666231760529294207458324507944766652548252890451047817226322145615759909357145561938382189814350883518901410596934538378025998344989675813176582219923497238899569803347918771124959033845178910223329842757446538742659325023285304801133047730961870261626461403171878523111142239015563273915238075784199181294523749211694528510439227384160411746098607690988874063653067301206412387010585347957496810285557564135054788889611526798483474978951366229480050788536153297942184362283900431897423073419050540970546697825699724288969904343619473216039245932633191734778461061408151708412481875218338095032470270312218261535615340225144941088694195847151128274344399394626498132448356214141631861292362480074408626889830909602249431526080897430497692121428483420814237160827456472308011697822227006671090408153982177020676995335044268370842343294133799525056050273300052901093976884877235059292227317684366461586203269660181071954136122019007969699633662943180268988549541867848942217084632034869522863882175459492661027131713689312060424109268594887980379739843381957109505615917790339574719360925018830187190041833343352735950393400987883140614258721185008687053411832361147567476002289747590283346391541463113051432198676005299409412710551975788086312297691300096611823125501264264892472645848716903016700640312436786687251829725728841643591709568982390703454143062488766341803801841924128368810089638014897902691325726399603574614768070583007050085777124055586179719384819912697287888471272020992137943732374851001451738541109550922779762451145283135079698397306657309001561722486693023053229039879147609885337043655524769810758048121539721720692848079539189009448404668312219249075633430328297172304731281130573886192922771795380246340307017937065994386715637661973504084563016545486070741596603679578687885511335301799243947083065551276877163891148733554372265967274476915266570191724857559221332689678130078047505817843492073855320638611577038082907517855836713015362298037568630142881350649973212998520915267756431169592564967234075492115016658847862414630439943538228267029353035005827201805910925949557882786870490229533128677814743797827333978648888319834899663415837384851738059386351461651393150371488796400510486016979530372800438151066160075834745102178918388937216412995375081936056386827734489033024292876840912228416014407518817361003245177931264443418711974119964152344430574076884533406728968386664555922841987736449092709006794784456236435345294081392224769522003983934413867094812811532067495774132097911828572731474060534577190935236230147258304557475811024824683734075761841408440894394808335481220430309998288190114637030750439702635445589556601374218107652484454024739771179242261265151660838802550080751331984876195623121935926273644760082203516382898774910803551081472406121867251578546144627302301878161591724497421359089797922524660713291136797011870795688313519574247211029585790127902146236786008032664693721235653584733791162589293655604249639977042228754224477754344993037327251538852441098057436167118840169204193473835139927370787396631907209604323009006245991797148826031133641129545168985785777890035811462329927725121364101902394753451308624172815097252348737146400029765976949442310065484138427906575438757948055063269269694946426493534212860287096258253676749750249082799784917800024268366466387551894557721018130397036904878238598406237302616228613878048266858237241000268603120540094991949713905257309973718339530893744608431937624681554835440763415377579679611444823180191356100714855049259378829286931494810106950376796173672157601678376185579747088501890988090746064717838073182746450170152961426973214582345750350391222022626485874567842755587055848719289121689716370468185262049725446395820600675005873495341319633448594590144216025089616328234901601774913072173552784031529287208504436588954281588225053082504146062243493921476473472757917678444909919236875070814712370154885952765172534704956902431921113988697686897745712865341885717593637354885989170632780992084488467138126795399636121024289384595267826255708129169830754577694656085721126995415026420803564145267715668010509346001044630991373335917737130416500889853562013813589844733096919779163141391821565049241801688393991797186744648142814362083717618283347723950476491690963265461093883215455473596597313408927183307816163542262556112378238662077236134206601254777409113652390524452107331500615018996449642980274826499808675841025312378726013294137858013735662540129036652532160195989609708460052091098977512406457061951914433796084453166416450147780843701572988651973105191697750591545092121633478238159275148392212030405184188843883105983136896949469967488525916324061319815466512572182027799160818450684829245138374263282819023899651780918428669225529598245663236201070037384456348685101581149350336734196718968574987804091453138161548166812361126021276830785247805125710047269201346949542143840666462880325826100167419472818426814864973148756189062768924129343659225892037529239946054404457430986964960533890998262077324265984436995103413603142923356101673791643816027744037339195473546239233078253608561540044213888151151012846734974032725167273648738737845569743881013939528845636437762533370819028423664022422560487526713231548083096394234476009146194911016281301367511405045056494313451394201310697009822667517037870327596312195335106665387286809636838819284518058156085454945466157640007160415572953990189329185457126121246424373924246671520516375460882448149531675881133656475547254518301940054313108313049409459855770092482380104268446812746209877356544651584241767024833691496565725289513743454308903460320216827394133451839662623134661810768091995270163231511820078653562651385596527286877012809669019265758982893785750602389564532334271856088507986292358300389598075833403967328226052096734484257060317749980124061456334622432380552905481624988798287599294629667768443546309419962504659778932295604823972996307745157139229676184672589798016908282026434029083941952493155516555828302573854473124111640495689385052350524347181332714158302647661473178180703372620498113175493193326753121719053134419280953778092014622067843166276681601555124655512219203691946772687832577428430925464370627183036709385936591538180080688578760910933239534482875076849858458107181940213648478187435479582611221787999173469447167450378776631769687250728167307551309567750463788215165653381253671559043935496352444329895982719483366836644021228896514841991441533829679457406198506996044288380564643191174074174572945484252387491478029112763727621183612637271536634011328220144331733463579340319200983565638625601029501643757007918797918561216689204359174489397085820422375563392850743809341785214474311946501742472392692150157492556911575733589976676640407254028087396169977167821883441661919614238844653343334023736955883105601049194235921574560630276438980202645118053378350789399757153548135995358835412920005454532834640560606856755761133712020248360875821265185813775165061461000275101143704040851985331295794921605666667570503316260675928452496499108624270608373584563650322265949698474810020096267357614131859037813305888838216839183184268379070255997815033482584649723640992272038824323097597148373324582128382599565307034865965644148531592576645419615545012279040978541560111509181937272019178137995090595304661971285834994554258471422515605120784410494347516023218565227797374261421682055499887022739181243155988896261056610173791741926512080282527357770276970967419071340543363312426204751026058399178576912998030344147850498158499664862648208427538108439699665896507879909164629722601281863455623961727595702483230632875162265453838518651857275292877911620330146983526393228181641219933025102617427467048975342253438770774119776089411421000103446356745849630645268970997292473123919978694470964385212583971064861543755260030463012321001166953995688460126332062747248627909422582656838787410805427553026286470714333488868644278222859285962276995681365888480799096817572506229216435558085977901955368215261700644145237053769243311438676196966551589160414944683419602054248008236409712294726021614892488143297126456955390429711183161507391480017411035478433148650478736069241301682450007210085694472570457303929736577622306099126646236461787866202883344111419506859022398609169382106794715325546569454710102807916802925165993078816438602770047761578642915649487238537860917305565422069060215585038542392178189130258932999318588309026088305101498064422296222679062401815700135454773589270659603988377275499636735084790051330739552236049271869951668551945638191328434896517574912684502245537265053624301535508441511779215855342997879334903024062346203478812646495227092906982776725702035794439826888037010235425470591984877397100325955463339933365688850129095704183960472696494619209309285427092080171183586851808324437511271041389965993334697750198272130554289955390198949705124178760474978676238083542822329314814952801679800259012397515526474656513410509624325535839361424481216984940427531798767605032204069101109015842306585962136118001580812613929182704006888984599253182159365505112531685952446361256379137482926293329618003808831230756509064295994307403079503962757580090902710427352794701911332555452376096258100796248795873644653907382033515061709380052088404091640213286869673450358835168257468591736402827351859592412611889227603570587530289427404948010703015870858925928633447198019391015381073655185717952221232793065348700420866148504830058764442627129200893809555879033919514925036713684454963094812745074315607375402056010029334338416796341803024911852963180011666209021970443385195980662151972482267651008345248744130812663075635348901230048178618682055095462633584305008214950208693503761328693266040741748664140645251624305206785474720732362911840909415839841775717904832045608266142227567247604368351076704973060558292058585471575636740487807846684798550018597772947402769935373756432019097477741796193412795139195694894409258054250130314931935478297550273288582491892299994328828940928391199642108796387880566262051990363134194755598161617086057099289543060696054031524376071084688933534493331357653095846346052760407782969832064149530126266134818083418797709180734848571891120442519483916617886488927087824177808605642578430209311671146102506910818557793948215593964666765860376991466197915509646699365362028573410970708999896751940318746565035016420142785663283594172309684226181854740958726530222090062667652416601152096201975951935750122411695536200336212429896459927092300195068165097111657425131139250973877641243246973117018781884337771447402034650790870587793957950326703647299728967660316245226702330781895628827069542385572435802023996338768457767116424228840699811439985114633214187566122173206928544973082883841937114067875198555611027339434759729882628451737481924193739778885305832530109334744403068455658274741145543415098719255944708426917097471479772689506426586902867454322899057239094936210349758532122681083808032936978841757290284501180395204733803120869301578930565114228237261108965214925510243767557175878075324054015146186960272048115211221073108538443099095188234170485236494840060801132494422487959639363699947240012318687849865390087950133974871816189796555822555977289633034716727906600612065103482748773116504087498910535239283274405064010888237226836762246721972080785105000508248718469842612484212111384210706536693610769696279755865659240260791206911216433097699959911414797890150335047268428964296481405772029636243594239303971623616258363662297512087910993132817099661531726506656021004751740903617880835981837982124978838174345258251514691357406501938470015083674206374622340259211567279974399168894674451376208264886966101693920415700580799265459177051074694708980427621124786818378943296448609314243338878295080379893679616045794852299562880498200106456588869696444171852022472707099183758315064439977704569815168061095121465305791517819760250030780970447658276158502497603858170650218050046616685187068531996697241024953565500184622264882363673139759376301074324336708188787036697147517206222496174501753120595877629301487984800599047169631927712325915420548818671861333518593168741775694435218494428529808058435495972286259084035841938610815235958260973497061962984642179010261612626728908988631132435838391160752916092727661240031650058717254045596015720424303036465038587988649468916197952245229677936801922129085721694733077622099189146444455946508546000674806396559644858205488738218775830903191781045849757516692818965972153895432286730728666056229592262553415366648548434069550711357701423422107354654910558732916073105907815978523287574655630938848426492250944586724271797922660305913807020038770553517484551736487127584325536219762095847037475726624264523678839825620978521820998288608729679353772954631780334994760641735063505186095901471374213140831960124871793685382498593294616343484635333324588031521001525560993510202836178835124745909755243620337294129506001259172326577026732810635880487884850902576088231360706352200281593499439348793800097067597812599415910528209988735585509372715721107407653801542121312610556909105898917414225859666974823442983784900886650722177769202789272289219389005891329010907012701140503731450948474915894768729144287584687318836110771325336511638180208520135922791006494788172186117002697931209403715608630944315186088848262785781525899867522988577311105418474240126516581656346518593774701601265861043186385725472558929292081391902096475447756740828195857623459700572377393287706479027495148740894306810179714515501877824260128717627387418914016219062701661082156426786643279411780412716918805809594234211085537966606168813392117419267643301789666308601901845782314180189314020730664230095059305864660947329826449780895222479876910852017586390268457588153745922811868240189410416534151045732700110964530002865633379667432831243792435142032941274820157277347853849760817772224141168074153014361148816325894207993333721881961808187183719966041000665449064200330820922994504098346514817269962015292541251036264659506491609314827369251996872875150591424375123733204715238703349174913271457159906452154106983586665010036156990463553705539811423670626736646141307739485760158295412366340644916608407591567314453454914893567607907127669075719126952677786721185790871593124268896238869443578420542652613286257055175883484819607556665250444818645703087472023154129341936483718831425955050465145555422576181401016765367112559937376782454669495862183423622677051228885851595494356191085237149596035064097527289506576785338073765594178940118516893602803722280279858234142157279896520972018937598077327635657325299414723094542519170460360453220080607059108599448065686570913626551959942902312999290535176282328283817453076735584753441109733309788673527316363857812279227218431801352474225899382439108956682127265567556774891214183265088966120791328618057287944450019662762736084160452176296408586272480223863928178976241122772867912357201454390610070351242324373535886119338624393481533736329116793010850827513110855393183252558396871360313803212591133837763988173558419654842420042776857202163776419487959172516832899690994127990193602276712964897022051605122616498621979226808804976323617184330642381974266725851312595630471477913208542248665452905454356104125324954786808567404059147229750243925867105587941002218139551603926650381701948501935720021746506727544817634209644780253742468867487551515465538442079676109354355233216991390516206993051634894314988570024284944658317573468977846694731594506852054696995330887257354913050599361110142782507542490579245695769060927396477456768989950187216016790684074889563459956066439219711264974387229167542042727925254117900390330851498469648804525876416376611130429207905323199730770136060515806751047079651305351599326329963100619179852286278643509650815507778555550820182971848925896334522861037397709457709762681209066709839454867105544771501989573495362070926827190380346072893990889566733475907139799207915263634228659985156321689791040005222274247375156836238623345290925571579336091101655685184591534638276827696522959855610156761544789705616365484124756419976921531328889683681267776174253854983682688026853506987375249616489839797641563652085811962150457618874506409719746650740482299842698093397972933666514805377869098990292959198152768620248633232340616601643283370417495252339243692487345412067499123156453985584329671328800102525242256186057150513075243222349642034558225787197135362370717012323494406516592236714660362568554255847646813599818536866784488661341739590529858403156818315617029977367078709512207400053992754106427200088354179942805566899693220384631816704180297659518553206354996501625094129568208533813728329070967692461439335086993306759042388164540786487050114151114104643845070191906452205891966377421291687962422519823319729684819293514627561212510282138163210256270461499078627957382543570479838848461113413802070132622432185358240105104029500047190182877214549893148931561894519824091015094462453384050869557260113884550071066669791526076987425474201329775702475062219191816371468709068559770895374180173454304290807831917519215857695032084485301746664676304402473384071651922712387117967198142185079381689749779694648654235823426959306574178679670588958843183035108382693169629716434460854966418166647331898580564204531080651033517397207045491386220312568843065822147262175015490547303830423999555816028262119197547948049799246320670480938200964716018147796808703196234530930617071212289323906304128239415432791687237699354959789152187170022392809538457440722520852629625436768711016855747960775401698694686748076905320946653527988442437078153205874303494028393620110213249731541342317337433952063874077612277330037086315600900365964960608538195107988812499385258864481958028263131024040760710238268289756621691993202620269103857576853731853184083810998365035042287756646218293673895769711827917996139324129956141428704982695495274669411546574780550998205663645387555689060528531771202519818017227706875579210333868324283201709128625144494330086807046906330480237375611366182222389012113662760561523386831142757963119161414567728558257716915781094970894332518369881160567211957257692448523457651271611143322118563238592931226027461880229572018963994270544100238354465585673189856812443561431870669389242881538961302980833830638894344527182184626456779042906847674211893239798066981335550500832940827266844947404615044391107847434209396596189853012331760693272352150359057179535638930323392898101019602920056900963397856472697766836414625811173572452093764740077493167323573994271984380058108014446999692656465605599184427239709243608066394579891420702047342983199555095465078843456381078960662695183321042661087691094230877342652602499315199769499930635153111643259042313850106569281503401767623757268922773178412782507363299934610126651677099464699662182754502601471661110632876596229275297817992225151297491247203814275736978058844486495180777044621201952784204277971405955223086679576532374182194752103232302279866304265212925614103572415449686196070680203410419380071017718776075429695016357386027254930776739403411132608249014983527225800765458375121052634613672520708203108994404086672904996089408949421647652867596762740754480976098964098718146514050463426892703091672770105402781572911885659186690114533034068006304791549862901387764073246811150437005782859631989374547298130511584585373789634408985501350975003590628171381541486765563739554894993981744889273176073548638910402962934212426911369380092864264145908205098011765658691582952104558053035955610066174319166097285567085740343206985289958312667078575530759613163795695816728141859935963785527818298909507013506603677160443922188911405706260344297999795133356060603521942543207762593392517834060048729016027222135289373816494555534143828857308585798475853021515213461739211944517802346901808784294760153042299607825709415909900709585819501927487591137529519244904703823978440968637333867469388373142848654408913221270049210900421141262451356654508784125985337658511774563634393874656516044532908642501994671638377254344337669963126280352110244272201138444875756793965252115466472488697387577597538271979066747095799809790652046136739513279431774705973861586099676869391934671745248688786388838207309672831621259912023345537341670636023914605243532123878438992109372995268379420543438746916268530706375392384888410855747679764317896915338397652050672768779218082378418629696974665543579776313578172957749998911312801700516075543504405906539736263047513504707840653666561509198167623477349499183627764002653596254466280752009004187389833032975501661101689095127782710495191894653401190942142330138298008121978050758271003626823117228849767736917646694895360535728502869674420548686429201304387211659241095855227325489373293751506568190088682142073342226979969485187629945962465169276880072376314578479174144485760957626570373245676023376575150327407283833003718195330476228834068096596308675360637696463474490113312053772136345069049989530535290976549342567362616680649636343929579680611716100265887731505291698988825167648739991847670000041962970196383413276452652958139761458444758458491878501856070168227686359314008829811731344328680820964964908359704207743439348095203970730539678727897406741210649531364106278633113094113773838503050865284863578910429575873615513828614533830260624997447749536660127883089969384097745097805745531919525168593236613567861117310547845274976600045806248957687009985108607414592765582128843257128160870225964083099375018134936719017260614176915812256527584443795983077746436515762464224987198557273003148052071573807410463255870816185391613351783873647835769238390959532586127755618759028483681787189663928751704499952597183559608045183132899370908063264134278265865357221765278220058516366116904639448347519520821145978301453759973882054060499739940255265357961795864783478867574204048717071954207660872458241093405314817520956348271146235575069180726880143792934323850992067956078527362383896987900878300633520947434752939955300386860323804804962915129990538854876232356438370808147474155416802365724967040293428119791406253034110400531116134670382314888805756792938261133573137449610482579190405244173097309649624472324235648934649029338912281070334207990298715444706663016529052488268128902374782717267887815465029814680007119458776975362844249694334147438198587138957708673163887612416643585550528763640222587084244199868507912434108318495568985947333414981939101558082016002934984875777117159412724674479280917481970212578584891338191758429642299941332740533147474434297290481507603538533893593805883731352977848221056395161135117949166529313986744341497627469863770370282869097446375788167413251218229653197496528887825395871620042215731668093295124169610008985229928927331177618337064433740586260248558559790612242153865341730279197516951182634005261700594509949855764688953880937265633757534429179383454203854499365160098368098363486409915276103937065167394086458779026705809481130275663141678233881361052760849046886454428481462813478755180242840470927077543007413366393689687302394529830717968298707966695602777197312859842775194881736766125911342725322585777434786629783487316024807986302514150548282296746764622736304871507258302650996076710584635995399505718460344625302803873166246264382964254591868466769604890238102618079346910415970813011322967789139546297820109360508263498386350894035600871341111047775146245796823423521119053812968376333580104488277016726151420262548959208885078963381747183998842118719184341505018609982312414632223759356010532987336213539505062605808324701411390117532945820699178495446182610594262327619947269676765800449764117889121212635167090988522455311841632166936763280525380167083292483588260936914069284674060144430609339363353722718212729683766529148893639429354732666005661609093079046824079519391656359165655771603262856752713922027070915672819677074794863125068174207489332639611927135572312061725221891353419923878091478964233241078017519444215210640518195946039309520913756192409048842883859521293110899312412334796511275324012777559667308808886493880651152140189013825882409054092744184019941996130462038582152659290670462492989614174021906057332211640436652555797540852027245236160188102282819650235965108876203215662657788727429546539246879850687767293957525252402506250756589757471393268645085378701054060032645522500549796953488673333786465789713391538887047978380456680883905834423035205399487637010032385857715150321258349633860318681179604754654524869886489784315554035342813646927669885829092511249719710502360206622017920119817375517975365429426521384099091826954541103767841504647517304402078889292854423655518559262897195719665627402078995322584529557451430453059397063340905813206397673339783606867461449655819247991931493907520695252008707288923836028411555070557911446976251565741971962435830658009802564991173229856419035616463269508290038682856460874617264741391793173014169470103735236590410815717655710690350312447468362566306656070362595790507408156634141228604042395170816966257362056902528569290312900900357711935119889545680387643130468857314190015814161440640488070801157377591272780540061730838289635341697306299257432030855648384360242763161020307006562135908000590502663514528830268505583835592184919654364083837401310782348748459813910223240833737248669084227848933311352361746680292426186859266115308192020863849755463182368814051350875599527053003219931070048007719560738006511310141912237824579411513149486827621752158409294062332280702422202750336821586560026229401793680606680395738931949650341596433603391029750080575748233395204399474617937408025606921764933720061203249186723088157823877700947671014504408956875422968300765162920715705451052363451710344646733885519530143838735333923795316514323967662146403437481123025494569272747845158562782022141750830499767281754648606714259859421008470432529263896087028337405233320612946543158902650189880917832636220570273066318368409408828489532380501416248361274141653705029267513622998221202382050800799777723487921503352844010477106855378850352291108928877575140384155995380444130731904795123803965955625517345101594520915932486545091593447201019587021823218740296892639307097842143537466416662504610145496096415135398089504519178844319816126529947106566631129978603982122198067387898564076172528194620645397513428757071151791130232036457528259678054373958624827005547082602744286777467651029607110802525224670608712453577518404297138151915363057245587140150249879276496064365392950397197202666056757631411728333776268881456353130248844110637435693320708235468719002438110234233005904872698448393066736539536422689761017262557449013862362154346014243404444907057724846047865384265532531786281693217169492346697549820556286342800222641402198231532494663082480208418300042639095730729687507984687774015020558602926236152275129343663514430021478869799714700971123486982104392559543332536942224213498739818528935667377657214311884582312684336398214532347980378195573930226038325037599267602002008307062695377247719161500973424998000646014742525004254158337371468095124720303599698705159464874887345503243035652965362021955583771693649064668059236815774826316142436436678918862466290221026127064078953069995796926512757208323717575456376020119065580776110695149411584298543266341930709834610818784915950588160668651760133264419748661109804522564864013954075272055927650202724125600205647301714611669069712145490390402296327225386670740739446448802004412874275013661852267486608243259824926540994699792393021750603577029957571064771124019805124738293728477152086416510411831340538570799731033087195000712810806633673922679878900713071900187872766659209690495782256774892447222611466627708312054917532214909452398832512370306608265849654334090713160643106580168701635783911156376866178328947061223791334235225027046033747463816683454155035256721571889858024904888862856645289710735682357945294560575464811255629202500859620751361243633957107160964023521386628664550294959007404923622816716219158988484147574100010125445336880552607328831651123536374641340074289492605545235980767549927553948041951822640036570748494306004759543880455678017318963617312773178630137766060552367417203325816168304615310166256518453599471674911997710695343390121629344380238698429113093716300371595947429178827768970332105531723611172396012870497416050766689947096337550356209076194452064665190660745237605059391091200669770450007737102843040360242825901975220491218307743778314091619124799489539173145070466253916508754839551153784507374406267471469115368699590154397276182365755370476928436602178556730475205488008954311178735560813473058957734847533636163698802473097837659718564324396833679058504361425196075590654353575037125517635403760584870621125102303328578213679174635204419995377590485130903558438319687529362841509281063575419802155427635620896140906675002401205586437769233835318680536791172203004029983446348654907016222738596615461081308185961087940800641675511688664918656887118802597273256668238327489375337262031472332027926373915695172312068010475448316753151366629191549792627460902643368923011529698293949577221838855116466804749950553805804287159457965296650356316453187166241869822170569811597474905173268704740824524842225595390224565759041790228913770733673989287335932738233655606200368156711160042400112346616020233371401702363867011433376127365780792178565318026774340012725290558130118487243308304737786787099377283276118614075654897376547303181336244721839194528944915263271067310803070737223992092880263175593648841281351786178065723063413960733674245615578239812465022077659609728974432445864512086684234813036581587394708381475612562370369198021718831291415124775528184789702358886891219029152822149675713786533885635920064132291650863704193034475634821141178316406376486110210636572197331377866552500970383807047709921486876415330549258355469270973268978786694683693491023415983791562073362856023539804924028203388333348382371933660172264307682375772482801617852465419125979588662422214976782340530943371447129190120977283860796676459140308514123672225609522299224058677597424553939227678251690665206432133515594812144543866613398232741743291263842714453704202573688423029122554912402336864742430416039933855385976450983899079323246824043297316043858224401447352418595094128421916479282880366775030072523040124873401249125199857993127414175963791867261277936721817356052897076952632037002104744676375554090822568478108412585108369389795330610285669074076906410079456890087693163869630399302056423314938001473490027117390439899200388228529721771027508168247207113945082964400274767705798757964159436658856649033952245256914328378616645005450109949361019003900935265327920383079400885146331281985968919255263007915307123099361010425062098063960479094170075542331501904321653134243835546943858747653063938275221207711771218802661728283606592077223337244165730239357137878156174510704128110101660665162455597186188614447576268943264383247727250850094857940477187118201607749073509140010809047682598550882357562982628855142436656976625390143703967105175106114821888902059772019290413643747141114611920328057723631069679253832981771308882587852357686650427822207867993518603429890754348239846990927830833036699136709363309703314960318846715081751786509795275795959781890606832937739109178786647362427563224756408852899630357773360766536787954749517363192249264135825851938018575330202237605729716259965699525138527542276189739745556677552691601417506076614472531737012559863681408291029202838727561472633150022534125962033974941519242523788278804020313086577892304258119934018101808599122304614825999444174132495391994744084749714469501596281699604724910738773431066334108335808315056317165630365005595512642875986540770209957857704282272921228051045775391516324027266100077794279218610481613547918205809640931621867171144236438096513468558684193005224800515554304441194407732688804745189463849424264152756317628441960169696711097499879365466165541530268448601580001429138236802030524649391391432414838669886178070242631196097525404913857272403412049225561050635539121530925704345656515577797310852507458007596947318144777482838250196357685192551182982279348412434497954094253192632376720849802034591418338295481692389821012149868280505404067229209526967741871339157400695445249121613284773496049339245612091162661007270057045259071325400132150009282124421805013179497201397562687961995062847063492304470496763817716527242670249544394721142612820277972873160444296575202220841513156104998990947125054254436918951754092959794691116534081264306750939187111108329802279372147638670385468761166698230263740884990965300546718110073430856774695827279859193184475237919558895897629989893268201700294897245502285804099624048989064166888602244324997789718814069240477587955428732699237051829658863885359772925274625581044912581145867509647089931847512702169540092954416234967769439683257302187232661555928085322262408218696175942672130592813117137196026848393607797573862746440362258738659068670522116210279026949624051751030373126421716654602226287455444900686911020639397370082137150567576819510029796681443852948027666996202703930591378198773375446961211886203477854069897653534271972945325996400089213207381785530626221761214799697963086253237527135455619129289736732224564821006656661721328921958571655099702162722587662195463435865097301565928766869506989415773575457072691197063028318341795742623750460902885428378955937161246948011555372277630172943894421193394630690970980539686586344344807083322340949804917928784142221116331254898762458252798333829263006725650118574800173977797449216298481461038383143870414091025720133010369170028054517469499831953773592656509194888549949443381995860749498974466444100863523830138439504220850572911060150156635443217155648614486322153461576391046527453702574090392513332306576983913392946660354398764171771445132200686687064453794361341608156269873257373298681836730785687864712040359981408868939117969206907776208637939322115260918049173986069240055643941601034541503455293469596306906836083660905497742474175284859118798292457222654671968624522061991156976666036643894508812654456455993045157915035403845230236202526275450004917760949552685011133879507679502253219982039253521165336061849790838099944542070645974335270102432852061526404299694477904608077957531214468614114246551425203543962901587758855477153965605976908942668257069980876639150119965166194433032266617588115563296486601836799868951157556552292987636049259844243460935333215242154824973876548499256131817390476043171754864419170525472254147995012716090151855685345654613223660456166650415506649548223652903935077453742874530966859594418284067748073355412128267248148172124673881169796954166148083505560082692258423846770611087394207033575351277010860765431238819776769812046048221976588925038125579159318326166907578522001598259266460410355779133504627945322943865195776367119351342101610245151295331282095539999122871722966561049806574673858751968523941069963060542329201314963112581840245465249397810579677864514697615414060418116901358220403459711301927315031568759459481603659160559410312723593388886765889446398576161501914764752956014612316149477096280884376138969794380537143575717691711638327918161442229517797519755666318084596825424810120103708278222990181676497677223892709183603509511653916359383117249133633137535720343501941099541051026480078681481531667755766519505269966703071662661967153379989354023162815116212087432648430935097422985210827026256119411864934554498370840121485957836821877270406866116134357197115173084587128647962859214428574492992351416402391429392731880598319385275180851064942555745390868572063926189362160259876929953657526156187582800301742687873394157173552853838551419633769576775177551784594102981754917231731757962163668341323359488337915938732610393424242822918442210100566919197263892230025416781728909313578376980056264403172603654152335523582278756651974989115838651917282126209861266656177329308092950535818761656436836092226833363864820056385350640119907434926303283383882567619647110713541342726053457472648650446359272143933092485270644985254856289267084951064903800101019984424292650096955437531076853109809989072094672852246289153674549157929488093834640224685879056140602999265371052842159268240539334844258449166666698601529643475449348397017035536078919983358114024430354416242602079525083799798340343633626322544496147494494625925772211149274249677816656294626876262178031745907457822852579887244266335625098579436431344517121598869893650839219845065457587017822686247589111422707224736015106028214326931555282431718358727955354646419149099940207990159740191679537900067395131279833010452004966180273348064806356383662419433122406135886124117063165940724834468043484430166685628307395451649255830802657096556573318467404048688422846183704085595393660476997576145731782039830306686972668834398328808806302649684214038433641512404553895770215163210354441695510957862474867897896948843505424715435865831870766743985945407269197939156427358144882360436977940990727052188262415678020834194427576389474579002921387074650898678872586912113837741932854606169395006155405166836468298739968996679681344300897858102923032767060319011651322094167960408453575342608554549007522945845990986490151421842722198367319853339094861368009853843654832311044041807034245893008541681560238465685188098797981386737412469326467984772801700336624866356773534136149997436686333836758828341130902336104082006232038405229989006656113150691286172854840445497217645187128412592350266308823908814395562894531712815574811442216039593073122360673404658933772028341567864260435285493551144660833760339432290466881908786400408229375554378448271403283472582682426051205566179636400948295346133684378391282420836638438310411527144450618379275444540776166109694016252503863313275553627418549628802651317707956425092570081652228109762744169888756932261498849745224277755247610637054242872697739691872080902542405658163092619602053131175010193620075394982788833740953198630986701917183559319776605248546321224499151980589982650400198498088008775532389148337802081683586418663167778623131032873067214030211391573229537452395559269881235919087982901106076153923548055030503982895345550532483030258473172239798468864652831361780656739251630755636803028913133948287459698755485074440614025108553521030388959383927210649647660566750206814469550391823608762404967175132124332278573458518496596030058454434266231320859360348016645813499121915201373662430432918599132124985177198403969278095334723592330600975721420073214195426327224422838050300401996328154539270875102006071105333863445771081605682275238064483493862197151290964100949673285977529845544385926519046807587549778496915881855243738785289561971380021899432737266806224405399181071442014365419809726588337159562208226196290020497635102566326656447622706537865189217072340503791063954127300290180061857873537972701046103801607595982164609136087754251190938645240883163065551931103381147919541281211220681663717027559867848758848340992938070103904605746918881357913682777473672355530324187833586369207384660437225850013389719791506224563586780627821595230779577761946929207670198307727014370391719238398972905727751681131762811528572015859788420341277806275188829752574838563740999074056575609172953308143311504578205690305016460594123997680174199899032249700400543220960063797185016410690253410483956993105621087413052633128185697731707504995644976542724095808554863213477584071250297469057059250394887803370920907231417376853744324304075182718345188283919959415096874157662893436157449068093593520893206346016521456818011607264298119398537545593023230527438145108831342892337248263807112643506259340695508663540862384610039255606446589472839789397865910344081952980255611916320463605741609685595395460549421672268826824324083022435434885813846409376266999848461807926203194436017565091197588276623367826110179869431312658765580636615862777166713023119293309559556924238939558743350186810903496628391535929316105200063496414346024949152766381055707960621957711692836493202580380102189539058339346406128530754082077138300214674477561185176615313098430434701098984699584035136672560833535393270011789309568087315385657706838783738904665930684864232003494484862834277150844754734107830783215360723438090597308648482317950653466716601553573165888593215868162344890157540904061690977912791222994301192822196289502416541105432133635498499205143184058485944250228933431830331237989953497234299834116360807025710651856251131690357911874965990239095492660201186071475400726260505869247294938858739162055558805542176597631091277554609040586014777501169078944716655659215258200555951229802525466007278430013535319909836389128506015535939468735498079554519697999869519524731688438960756353142822496860095593448132704051675157689636496097225671623263775066634797258028645083401031780836995253631730849804217647939412511138399663404961905980057880381369024192594641587997760086475188656138657852035225094325309412934555158052819390590205447480945287637829621512887301490397687947135811057048219926651681754420852992695067798696692737176964055563968422629609298429694395184576426961279762633558221453154137127244615146695407962230583554333894401421357117681945103874705671896749816716754987635648244823367278418973571038549452705407934563151108950874897417864095606004030303863519061603644438570308435673230800116431978791315148363937960805489701203421129154694149550521716569126761950426337162997738241876912292656072924761496155256520771623522086746389369231941898003751137448388426750648906494000014014031449957959101612014644994839559928458724350405011291099493447415278412179681031599473719999237244796059763834401130763850563401189433089670469220482805788948740744177343438341703034796159080235953006057889351102705591845478304445533236763383893172851561748129991282129734166094502595664410984997025704419507097906929508805370543012391484770197038680582875867064260976024802046256595299067328404856321622288465348461663349227865931927599016978725519558095098229054194879242204144370959404026744493940417526395807499684394029653362728925809434971256373869043088294684019244944105406016250810859976690512258933251616725194154849841037990346231222714491058212113104101483058442677549224449926633729945894166692762197556648316431509568705171204452852005049203306180233901169785703845183824168534749770164225650301783104898620211909113056263432737578183140123418614132548845387287525480989997712732310595207001830245631225503298122660937244136216269832400573361658107736516949099017887070223318788707998660872991484202170233536511815707683001879551553355541969634168378177689116576885116328674891573012357114096706259284750175905851289834084612970791665417064330855520126802161604197369814877154728982180883048975852339612486720389246824397681696006544231814870404782325555229879979485949964724284961036465016882771536875116887644712790274734989177667345221830699700899990724340952873900577647548085590511919002918811673100640309323106812406970839270369817357941405361055664413879020980741909496589395667393518026168569585116666810767136058733075968898067168204578331394663339779029536082497058984777936192388769705826093256985540582208035414343908857659319914831212050139762508340844652205403840110699876586396490962898291724483894372660925805073973240246911071531728277883016173864907012252612065175088790024812008443067310167724673846346198301531761360891394716179228891141277848111245493692564454617811632281403765604560904563350730519355871943333704176590424064773008214218840236275638443318717425975166398079382519720974528998592770659934105958170411812724716367522492981795941736955989892353850777566693095959891479639903849522207690348508788728398774667001930878947807540568002135605935935281545758440244376373215948003850126185402334731687063226629025854871736213470628416164074505321062187480499452373131433885148589694600571750891192402422407862390672904810670456827421676248566909830492262427923496992105330270202259276048119949178529153499931703946896694699980210851811246108418589386210390169118473453428365596336063161794810134772425513547089671955141853382896008417117581942371872930653147081918955056308027433751957540424882044271246851632326309687652996817852247136357983151448076648724797296013537582297432960277781381269390314670524338436836913507375309208643635175577728927660216032187690144725568882555730674200054364594509338001690735702342236040030062940195794763426554814989214532918203242475468299017730872233070907303367309601606826202775717222076040448358056276613372757515458409677970918935554663064770072996909039911818864091814298925582899050148740633412287534120413055239003337264292787713481160674378249999546284677077885991002827750293274548553321306850010066588005372514788041606206296092171262013973829520180848360495926975785116975710742983913225837455812625465196063628565156072421193528798418354213730429382821713359457586192222487290766505440263790679545792418288754191091770467861235710196206876711909893200635291373123560967209900593628025982121149146908056393678003209874209841926501433626362308998310424449346575580031222338211255110478982732114190598459383792036369619970411518311281210309106737252005578703132820949026784793911891605542638801647725054364136630363032966345929998140451762111750472165076558360125860995304959369925327146093039687284386459219209428864179231007664611091481837860427575645239614766502871504293263482474015597875787098057063609249388964765557865073559349544337871313145788772899553078500797877836826249810641503671285634392296609688910557232398900201937920954950949936370080428696148115160435974524519582655194306765228626098464806472697332844868738693427453673917295091831139519442525427219408244628535788110291643697402598299223472496066121935255221966630894452873436439122889281324627536617932955804311697348250628000751148698772824640404942232266115837802708140956281872866838218502705178278541130664182146614953972805909690148331080843002299108963257148084278944475565858165447832160857908700776064577929992701873523057577809102384642846632875877370027955174391438607637754138238783779614369464848241708218840257123549112417176998267180420324722772430583711044847031780681309280999163725009362872170875269979093093239119181494518664639884560276127960435496253604180210720699905870755241394525212056983792945629185522731986770304374304881867133715898737194029031312513522352139783132943406156325571622836224965496916818014720179533425962217081582776857380464254677253786843128461631095826429980064286643663230311054776326015714382727394046780378837813719069882273921441364288421638046635017525071279621178146277256265314067887712937794183083176415929220228493972686100396261708707272948711559216633969007755180440796259250447881054093716587164331677061610529826575202632163872440241317175075626823579571178615511090530397421925762231161483403360152594749744813459430736599118088096243212265687958124186425887219779358201693363336785001063928130324892998088863244870558855413836708308389955986197492055352958928262279808071663885604671117620776471022031071087220487516764110380486457534045065338178834732826246295577555902222909318925942513385479591177286556989657097472832079156296845477908835639886655709462670512635562129016686947934667939806703003340104358385697888374129050643978496303617652337874094791758165103977848244074717227537183803736770860936806061468752880003802006218114881626622050489946766208285362471021198425865981974914459908165589904208609649066498386423058718179748968612666665316287082065440107629008388768260145214791146022138297000549184829142140779190742496205429878625629331182365044405300704210077885641509913257632049899028764306152498777970514231648015881176709654975074525802454928173326176393124803102840421662540500363786577331708101075991221369944293502038799280520993410101317412639367554989514666659359694832216302885846312142906329204998052528735908076552634867807610367873854694470621390291798696960797734106585294928223188724386403590278487084077216278274933961408378488512405596976539263167558325726464216628007510034193734641596277772434751814591648359451946339656466761745702830148441656411195666915223453739595270310737394222355436522688944987941723657485705763359693212492279531807920990833203026343374066144790827801687033637006286675277606220309445942526941390769047562798492571765001589596401344044724506937227978443245787794194143362056941494783480437123218188326883771233748560338710603553178401131803116897452459656313297415873293926693761008666452794149905258984849351151074370699258062565727021828890192359174871526891708769432898693724733548655577000910394595059738492237229505696672292097871464543358423690273720016405970781869898957811569911291202145338778043763954346043815144458975801095029812894471571614403819443065343571927218246642583858858279458322752574329494721428604165442724246000879976494843635316116720207514651839866484142103742227765571407485692292486115816000690651749408924083485512647807134721460095408728803396612648155815140033736443869723807449834744489413257435022243069200726557289710838295341172299045668884275952252715098114416937100036152789089932030802883293640898743005163252972917808813567107433270137385340690731103839624223362764582297291474623921989288915809076688440401621397540355579785081883652188638088255490617222046581100149250750013252397523428367355369498929613489627476311212081686359310364036679169127790639161587697351652074187130888210710956714184889361424271140120730579818098590383766118600200483035540681619305857071973677635067149967111259066588346912493110126252962627911070892784218751292031699001828934311143827550342420261918918335584948209456397204454079436569527092518122613462965340115902908143538218424846989661119599303396377652860271129843790674759185386254601869991460581836021580589526463570283553985430429914554296243712169815301522601929973851277868623116384757694557006551533862711222700419663890226290982111702993481386007270334599367744354340577412179256724961667978878267462447776830943938994563696477554708917820126967897784233566314474358016480396034157844023008840270874668654882164258110333910867727955197998303467187539965805537780947143153036901034932261032725025548322878322866328947446823267539801736947949118001847036553750730392828068941453747447234687534040983469636025885458009567860794861079450043687674021108815175248767301329998076458085288471131048686480693677564247365260304656161685473601782233803604658985142634314612054134422671401515268973319254163539224511409240342492032435314869346637973059720070153430467107875987515779528410619510639903438425006766286978169612516565177379905546561070471412444094398195574388744009383721722815070660979557347126607459259154653719808372475711327527894112570771263777329063096731424101651830006589880659889915532227821878144446048608479565899059387270442020763463178400284268420181010281077400524942314667615161575625201217078452160324996230748889381644513846595227124322430467188433946758365490382598301719066561963008671307826225262280456387401147375831401807576738216171348055839805500134780597280311851513984565644605748897015193651177277860800579731433005645951941977877534042876419194257744597374930893217010295811854202513926738927528871526364893837050409166348082388604516697773213120655052607410481249259511723930223238753317902625249127957792639530029846224112617545312929618200063826099985315161891861997870248916330311901419624462964335533474711411550743122301041186905379010577722062040670726508762024456601667862281766869816679834451507669852810330863967571146542790580950168905913015866702736027489345809273253141727412359839112381444998563852118327279584740753027430347292247034102121744386959259295072039084502446595473450932041953227406538677970149920869592366033558840962283426027503558531937012173096923304136786675501287065604378029714136227002346275886774304197236365656387603611789123508266861397335105025129267562643794021805189785503513626429921962015013759716273462824269331510584524117613153912702926739856827318196587809148005567897729234798691260201132547436167832346558149778032372392626816539885239484682403905618335694213991217759585580861594090001319952059969934502803254606644093759400122975126411546914290386107545885198820250663177900082777698278605098657223493743542686670129573642942534818626669266998114790836364594771391620312794903964843987243490700517064329964675995545285502654311799177818051242671455582515516494870544852141198812177789382166053046426048465857328247432487429829946110446165874239167180290481058576960483661644078085249332945273535921317748293997254324145311281035077206663765107559025010383008765715102148530665571987580650663505894112065047718849142033739162249901795942853005453272453763237059110198236470059017692022288010681730701537489520382003883228805307811961693571655645288953568421441206514877036284659848185036383547956790279712381337825077842502478764488524979261935869981817431572103961196815812842783751662150489643702037049081314829306056920031905438962292990172166545637950193801303544971860089377569041071502892949416853458888441222970624759225805633781564838245910984064749869198055081409047821856223627483078239937236834327100403300726468145875883154010846856396705156540327280517386214842012123140797467087230210901188683687095760719987610340910970418738880391892287794176509161154346657461866629082944865510468387487133683365229013414032854827170628537659728422314033667954962072582980449721058939757712115960380219074502951318102597851224199900207916852640954533250252622770595690609893170593857134013028954115388868186779066699693373384331278932036093531835919862308767510285675497020468196822285838312535718412883889848839497044998749967385211418365197219879554102635625215458458387726972997489699636106427167740687793376785272332084521398586490604281507861565750292840867490710984489580145694767767347576142868286433686775988977773823880175189257830371358520280282992814289904191099566510430154370420196436782860446615454714500878597900078062111249931609511242036370217141893764219801217031041380959220370891620260648681576467042795587569620048001610264977714538795052464044606793899722640734845805618874695695479768324814165763610671834342052301807147718103769970956273673318389889524306847994324907305068903806148270777048340227732513815240133808616236775620385648919882827407925355818705180600337569066673933786997240253173285481374783792195691844689606840928833408817347034578187152404194806141930063969206588046766220934000153740925969140319383641778477811876435181967332863691948850832612805410133499199837310308637522174665912272337499771549676018443456559017903002724209051790947879802852746277934884236330034355127287016672635049331720128553780929748068082609869434634444520796990098461942630472160440654444947427893860867258036962452472491432981014509857142017899186403316995194391212919726609396356533270575675697605834123887559284746523226799824924334269751719291522518871685326473343160036802622005329355945503357117703283554963894669146001159549743609353737726710031487950791010146672841807481947556474866308622525041750887952911270353692095790219413403923169525183354921937853257917600662654604233952640091103083194614239005224378092697071769236884445062050474181424356993099067532696576258398315338595552792298184783274938016250309401806109601147373302324394349669022315296753087790487654993494702403336918818235430197062722684962600333974172460347134548049988847936823986985697129147738135150256962277044924546569479644343431247774915051423157223551590765835309277976827873075162358028441276353578434636719548146467333568737861606506260549639274303319653584991347269683123618362614909373288304920414015479192764105387251168726306131812134577367595673160951507344514112688997883431994829026338604332511049253423844175778918918338773284290592250659601613029941341456867623723956691664359777136309733149210912262131547154585410662663624816373899224232718072277408169244432821434290106571293533935347843480619192854540157666368873134393624906828642657566551581649294594855731247559656495124866472098796337434041016736427178088398542127815385789059607863471559133403037801304162189128377798120124069249320365549317562858339664604084052804974708896232554649264536281510655086227784707709098298828395352241089371896879834050184673174199870174740154692182036280661331439543199337408452087209219889247553148194385658272110384691721420718818407373709975441859764974828197655400206908572725973369839897080236823122386336096791102663101049146818960372206903866565657633494092381558950510140336397408759720784224601306310617872654400586755792097055982247935243758017082865709232316505814977025321815276378211193424778108431766415198368271318796610927000899797762781702129382247683169537550294141156875186038966643963940984249560310538579171104250063369650965486039063730097403689119695956636588053535663468338812533980827202307354505737855306377658356206417007034726453833736124986450883449365378061565501511480029582505651025715821425086130330132456423652564001229509799211340937539481172580716580227423587623007308606564583056200755643168525474399256194905810370244744680764517861393433778372492533893884570449028888282152149038895836936077026978584643979819970346035275560122152517862076686909617875654656626940510794661766386892509749820385370242847694627039608784592144181821261605190270185290428933159810367696955604151530911727186703529936510445210261096395480328241578508654863967582477416562573348480538835755415782172779002600205684935794198460229579386277417379159161325993308737108698095263786178607510803187523680806612661012596853684942100912333453549688699641278411717899435348595646548689582188356446830076803551012261747715374949593967625242514560325258084289161011948192515744246078477516584057383703581886962904290474692676318408667990375436994703315346967837006026093354118835501377674277106051293022068868609777840326451657423611066823208599446877379978099057121055804848637176475118736625852578347140296738627081836720327128064580332080723381385365761504332546015013081259758993860817603115616050746717812489779266033958012455711749650299580769849690134062037631107092501726117248929500659881554869234300025238850446027865252459047024396391069115541284946187812938784787363201856428129616563028904438321460152826065240701739207411113136558749382620548551533280624816365537723552032957692959924911127785049546457843291237663933179918266262220675288902843255880861236472109664379750912575848353849477703506401594354539243136574385927306372424843174884705840922880010238036114916818134275754878891771926642591209751123125447092855875456577293500487609126354685887449681032865416028167125743501881185043056226023663416535847321546793005284343567979921809869522862633791123118855084179156266204738870108395502227202287033738314794492751984489330441969463594055647275516608339199762074907801803726493669665395644067630367912840123400431753460067591520997890812928500144591731711503635627731322363903453903745625417387399716647932807381107672034867654211452703959652301519874874367416726028074446961361749578822963094110350331888209448686915193091670592135510435264358997279402160555849784476429471301193783649375452036090980993132663324950308812569583898131606160959021094949853053581427965942802074812178855453469611446189400897861948811199772166525109200637767815835698058160962116450317001370852135683770645889984160148791214625367456532460950094775783525131588661851856122484541792285706820485309129454810475042285481567617620591718824991407849780484442401692500083301063730300300248219529884230287420371219704578789433338276226884338810761690221403065737221364827172534259974370999264595774036139886549374288642891803672693994995902885000342079883283677932281633387948641176950769883396940745255102955626439786612981097114927417916530363058522143657914940061122196884919160258662935236740731038193480146084974853574196771784362068469836286295821570045043349903148055702028149318179732385656693043736881550699622900119089823751262790796426914713765378001158193808451046545615476248815411924914752787896095826812317774717682946919833974760297278326871514572880598361059430826398810702249634557315643630457237553107981885006592954380541702508959355949631949745619011557339748374039610723334454314073326654269707950223030692440849834223075424572970303849155043649162932214757121765338424138610717888584215157932389470518657411424734948749150773451755590315631518361608818905538604006231563309340291404302366549088383255681121484551257967027764380527767575376885047616818277182680247331248478487819246128785520488861731160043544607123286148884483015833508613577552243908729208758853893667946645063220589549063694480089634602993879905792279936388592203675159513493946729792329729285190650489479579615689206991425666243076543912773177778241431536833655360246474080924667906574456921551506108582608200927400812993175967389388160264675684815351313681355206623658044761403232281162928053953774880709054243301753215378165815709763325755518700286677571295966519703806209186230216144360446317893735321637634162287474404328520321053281633540457505565030127899042959129772286985924616909750884361456277495337430267423157441615204008290827669765057505901428969526362185865589999563361083158800390101221716263450848121666077645401480410079053687661642649894576469694004968918001321339853758131261917255125714778868753149205354605338738492598853733271467348824655366818881989498000580194801610836618580981223920448944044393131353879340947871316475972358303523839290376802077380036214885977567424076689460179492474995472575438084959942051899875141974617412046102143190955850817107976203878976879904837665883545708365568696731365052431444706702463246238319149681383394975780606536828855721548570908618895886983788961009798698016736225380290165013825569223960578972089924177955817519220264306171423093129576753023234753005522276972935672295811521746595418123300125636552104306777271880149403551084187880547525437047674159676941495862351813262567476765026532764359078696116972840169076324759584326200480710155748637576950285883129518390389056073043809236240327920872803447872656880321789498811659489060400480135693224126813414203989284363639633588659985063381042229467533142494999656499322345159786595979141200768258336477044252149193034666749496909465303089433532394863375153134354354626536232619357095155442317091439976455844058380654965688238648431695854467273279875935866268163312945244108946691887013310785854715124964160746684053905603096714588908664181968692068775576560044463926004433585550504035300987512362980881267758576005207486944177223593382926770008448386090222963877375100864167961890169089876502380499856923643637700857810542555551434447326743171710102496566446892135114810055305855627171682997338644735685007579512181855569177527633314228144363336290935995362073999802221847083564113598049418766307118228203351347084517593595991706584651661418585581421570872252020686375268351297063213880487389732805492258796342847678038803041817071847549582528103891235104822565365467031794525805607393625745114876772880629554790201174896321913884686067310070198069729857908692358244695795581520116911317553106460351712001818561597646273145664212529636119880415915891761077757233467103675734361472193618109221410061252779138686837961458462650956365117858634289057405014637277484908640405190304004548415764909015789232520772644365279753979909176123106632334739630167695245782942728739635951405029991504918975251692126471483855581855631916339308025225881389714336572757425298937760924627902906673477081161187400286136889830996217047801823054770414838918729548062243350215789874976835208514158187573318890048767771945228471420789406329341914887586733369239663403678475002747333014770546315107122962151902084045148041688502054840544302392117801049870437278302250445726442432878562764599862376424600074547226922015676432614080031654442705426259919125322343999340403304747589247896425624872250630916821372547263020367939004616672873446575210324913283937575005837239988841919391145003001837866097204350968747473105086836979403088738183840601479723177642987560281673065040292397587139142667677778234427040780727064888261708613120919247690388710911102385037858120587842447712253979118961218891366498940618379344590912694914772519856540815185589172503547083170443621467842137021882906831624422680668125663338261827625467266997258015584313715447512744329323533887123545209484395255279179934653727381838576389286789993638792575900930078638695993561209952817566656282431237124254496977251954832691063820740730115201959239777281363935941910524133963694339469137380816872969422122585988705790550667530873846966025343592989669801219292738981802180059546078665406634241922811969921158703615888285589777401631758681708074467554066208482853685109853129377202996505752011730306148778849594406097512355132446087156181791529581829037313120476926250746913782047123948897300624553747157613489590426164262619483419560402105911265743660709330466331142564929301387250498009348865588142756210929185367961137445939903638495753948205676978336089559771947334646399930777384472858606427528526265712742651347647337678924401676157691017112041488232629460368108020662548314011005521780720317736275246603005792161455964891760351518274224509598626113470474568148869237991460578849759751207060044892244303741848177156401770544466779551875156269702161919297166046485299109880717885069845385362686607631380342870888807743562404724664095961501319282354417923505442386240327312850350754717463831987896352631196640128204105728950817748923455861253219939852459736801305012644508818143660577525089193853044728945163638317499341232197869778330604290507228758148637405572396639858192381650441161028185441018732520510682890525164589949264363276350819788950700867786347956351347288602076281887285042801770286710874951535093440460342391817205286644570174627106850090796632911941020898405066705599714957934764604331422883804952751380321709807759078633291679353690155809150531373224973007637749093107160607820763861407883141318931768815477265746010231624422802981215152854002032377078576537562004461205097742129551214950006214578480181124664791642436941499604046951780806952370574877877540758667907108278198716442540874064893008010916605144946647108624133476123225452221488873444538654603318413398567085186308408113499253190226173392317404755048040144390839129169487876661170352499939387982950410552732907917341305636428983903377028642112179324940875033144812492477102503652199059968981590212868870056406208638041439279579478114185610319503232985688257803658300871366772413604715702619314751071737938701916267533269301335766512579097591773379346634995376815860238957428442383730883731258977499085886544151763572581138038728283842168994681007506842672604690613272173373559631368178347074257555877011356504474513689577699438982682572067727147523270572145378217061089755105155736732009371703922556481824276832910375765485725027049078056636699583841554359911458861439271058034976676407629677482363487274828651985139138546300650889133166388864732844743147468133162839253713110968950104946484485243616031728801441442325357398761545560639437511574415578716450356542670284038251633051300919226683167324965088810783111651790041248359232704757371866076680954048740891926803652339073106556262978105968909546902079716691842251426271199972414427892523110602731273635390356891691966582495252468120037990646434977376810579580458749244163172443251031758040125156971121394191505970948646794380323618279003000342696341783641069394141140403234864980658467480989585728291128764736724626830791844377407875568940209895100326086953009479423946064032285103280799482161834297967627397342468789577806590887626812220520392520097796352522503047799888734221288732470991015751736091340411308786998785207455823573611203414915988280492765007932076903372171859694608619250494085543900834605737345476978988802189072220124908542673712595800735585646709578810652020638760270633104375427323572573791787661798833757371202362694089797285505315028588601152884889931041986331524203235165275635653942724245656518974791854533788897673858072195402647627217180041450868572031027023527470827455233130826461076329392567069661134780344255343336397045998710813088883240464021582920186345528247184819176793503920768404190578739884627292587915537417506208887790935644750415840516005385438821168502078468449716921131129669194923535962162825287591689282122578259894858255776788285313933267607992698597265474838363413564032965701134951230545373148974453025423736619565380589596870845899651220522588748776235270168454039572478150076928001229833388747022610391085131350550483974677244152937899269848727324624739444220035295004224868104131286961368467204062723564976126612646827427523758791591054231893869098741509033766057210044092211050641358812621422121303371908645136640117696178218027401209031260956859101192798895995733603488372968136378307246441280641503785362205178920616279955669020754179241582945813628013953742592879289396435854308570009415199447894723350640382229257035588522108735995966074454942501887155818791241929671976639802844601362929816644836748618980030885911490870885612846651590326093709405269411338128802239635099080403696841462470597212805576254872978411011875376584233235653369527992495676021414712920128997621665221734302784022159703626681496521605084476377642464103934910314940456309494944733736059071187549651065991776088703974074115885893404180896953958497323425799244383388272489612391008549225410833832499814815132149150078607155176253023654368636290262377388901876110156007862076877886648114062022981336205845052458832008829043583699487426403515025690374479267358205211699884498189426619045556116264016175442959718180782812570978542627443401178697912409698167971640155309379869952155521298206527602942704319349235245833781362731002128706506237235822225234826877637992022356009716085623967067738190836188543333106082211068457639033886027798517686607463457749263813282686003541732200620583191356870370571702884538747712849010454853009530832639103051496877515795072064057949582528507661924746328889860039154311407034293337415893614038168446122659316580267566751834090431410055443779088328509654319041123627115132840527129701458064265067106267286645100652083980176545116774475395375533287866637492808175501901202096886947619161013832789023033399910180100440673585804374304476628356281643239356616601428664464868547196744389787648454410476832142590029218242910611428781752150141144289476483646697815479861700635693553443626616107253515149059207377387041172928012359152229698448345060814855422393393786362296378122416267862082977187100660197440042663608917069082748239200516619971945073978880812352890077399781069217964187902197314893089959051890523099644420703150355988129294973001479267847809454179950696083477947061137698818564859833612633415297937074202274596839313998711679891504655660463851155976767969460322030484476651959767108946466799192811222345909961194729218159509111289640523013043190016412465697668136121939388008189177831669457100659875576667452743275081203164739529597891531754567838410156878098011823622105729483695770462423289602054778901406953453756225221480529484046872923410949146014877378463099424734846168109390558484223475277948672269118182332185158246793581687129819249938035242264593433966351566857704336623583441598381264193446530936360365848534816777756735058746160559319350596619509583991589439707633970618395883671156012515847252224685390269989984669988872233495553499225235724753865955729670897067578795387157712002553462821961179509154263268856454274123175521652198984258437446613088206612588032326829831550552067390183717939771121258940895706499486235573691287480075442668120488685751362446559620905415372870271822585447377163808372094384059856630989206704001479333240343665850964249416038469368013996792606095741007097011031720450028874864559712339495712510242408447770719983401230302164952148385961826117554746538240038071389890848606953902784832638798596786987505606450738476063812534970503146728288940782597196230161418264917404074617378538416979326331469922407284300220901718194964591718291610159841636040221329325432109368303835033014789403451613860960172398182870957451057548461849163833372494530908566685001627644890522840030622232280556021130377648553838017498126429210609220077872483240725358481765049251384226473664389543597181349455761955036298415312205922696527142599968012277075385604854927469250112635126976631648361636170919241038135751457101213062711480997040257159016284579339326677374236936162072597571373714777366767986315866251424526958888041963720168880725371729826321399254960461272598883481074610425436885204108394381086515141068380682519821221819979536614075282217463730745644989088070384960539052565453324999853670961982268963726167988430743561526639281774724301765010631772879751227851538620760356665454376597847257991308948116988331180036327099979604321064869123014170160437048451234889942160917877160013843237617641641697001629899647099046870250937156137843420579315449459819591727169042060523025070745762654137921955902577061117712895451651449959784871678914212916440919403130175110537931441945377795858794557241754312767568846232619523315548941473475971388255939489146208188264212919430635670214784084539161472114926436165768614209697963090410971156398279567856757430872874698129524199872947060612201504616528010586386277032542162246800527887917772137034959337284610386910253911269492141500171161303174963476412643437933883167458952134696002466053054170492514657627368700746355048386511017545855432374779738647507757262825813387561270806114337565648546546796062911602804644191167730417437127272336402987622167548380101538276015262226759912037351917229259880190170690767682668333796355697461130794197135481455874570314975250236423322930936748857701177663420491417642601429419067168752469755102227251582120850131634730941743024813477054984190927921518268600589681404943884003025606033871273699329946608254007884563439619911735875020597522356584881457501593687417314966825856876188480560236463855957860860393323848099990072761601660758926677590231081222075937031781696601401526180271535162468344885391048664486037645451566661645181893561185482801647000671129658655498156008076843822930745325117773372044664422480273940036525725652609427703782697709370727007696461040121949050372645017364433981688515278531310050462997572690703913398737995840458216376160287892719240913109956817913566518676695965744087248490781585450967742161484994192229493492501161262076002686388469991929364477697089107521625427957960049642005458842561179288336921574785916889004175924072219490730659863969785515268146581095999785034571065417491076695691213244410593948877644118656046729887690587031079622475370187499978586971588788020889900847826233608576134648959634135395387307523304481421275539235180864330845741593898958504898290381603886896999404654873405309098161769173544345005855941902634416172869803475928763129905817657442737332747770623542424308863094576973914916719204978544078315709631552986154990564798824481057473095671994112025306466809152456622155735657610112712779260750844519847571148489255673997559114485776870219394896263892715235604947455621350267338472183955064754199851608817414911444123116724088824825070732770258591596904788244367030316766039877909757829173452436426092960260441779805426438715725005331139679696851072139940792898162022604571443353139959738192333740420056558798195443983664092055407237037151657535256159832351894443176511402045261253412864062815046466489184854370725226191789618987195131989324311759140388966455002490225935122838934196278271899392353166415904164071922175632651140054266016208784057574574105398247258673495236084788961537197238955208664948925105352170474839240834174993742974449640290105685158554446165006077982411414914666962599901463570607298383153272827562312496503345422459734076388279243159037048231030148287549293348850812828638443210968675191449737417658405726916301516294415427703417726243914794451254954854231681070503103398070272258366591215040808330934388866813886235462116807715417212376439406673575698586588573231308806002015611914542655795328340248453098714928014383722983792560896786599446243673357353639872961957751252398795529312030382912832356511995142802851330309184162822621777611369341195648408782924652915731022955449499717865560283893901057277143895814565816405635175073869087181631005071017026320431862053106005112600837237384338270449297520260700900373896374185270101718335846246466811647942918203002504965893762047416938975981055998124924387094334493893700826011569045152320583347037181686778553538815998467621702798116350695340270549086724435377025876355357494733719499260794846858702816308200429026840758272640363170377927851780993168504330394340278923767434533150520810207240106289697332964873505212874451034735844305405059793018827120789154335758766175982023328169457728207359520641474996018347744107018011948463693386707581382798261642187138589685048408281431448323764217845813978734883313083991203131498053335034476943502991513772248256845486937342192080047633862745664298278121934341268053786580649500325943249001954134295600975547998778489334324431862511999790837585774163186792813404931901221463124627832919012492934401792526115335256677233883481974498108585515159120295588294016593247473669025492811840523200352226975765370509299087632151857437070390023908932312466763795245341571831016483960003881171273320877493986065844652075344621821549648060343323564001931204330485991497470756350246570732647944919617050727426920957926003108326093976898446972313695595085617861302798850137871698238918903650252368054573873895785419408873979844415130432630029281703334447223046745589086900771009076067117035032276390812266605654475087945543322459610384214629021779846093132523740135775284967145794774836142023742229939662529833182725073266924764664983471077693429451869224207818263034898971047894359032188017442261277353282496509440888037058747654794449062614075597770883206082304491518952545543572302611007087130140371415553701876866291538536279052768544034561123582233682325985687613033523953393166516425719745283560074394753463240924045271833493439398566996375875111932655810022163704271963632297330945554488964543083112095860235073244768617397011066723280929338380709328431912138735998381748374415758037656165074580348713309957870816472783373919639212760300172405978166765942799771117048433843070348030957674449017426406245344390373831670294575175566011056772316897994122034317378750584698947471629236346139752606950097560268742853416682737349154019536695701876386654900398685222601506966640503456622671146075627409844492901868302993576634626568765738868073930015855080562877475454445887176651261557417235948247266822998512932991165395901646997356135388833293551941816139397826986609135821072285384966585858855063187186300806463303918715743598201393680842855687257575332891011822020848306673127344488006495833960419370730379838080134458426755162749168169043984276838923198194576289532080836577358563996700458340950890389411804585055118114782303523571811771230345293140485233398433706823735180705010876031555525166245818129450460574672038909530277258492463173745738958593093138333770850433414843144013655177621860786089447007379450947581621335013871923290214576448164825328343410857597804720398203023033532987674294834521346051629723043772406844877787353504629897513620587855081283209788315756944983492212003706168586182756925611667817049833893232793408646513812583319096845100695216223496452203956965665635693168348613363051212615494933865331537503694404938518257952963431532907599621427595590679079211808020722720363771569676736801964877295205599415709480593082716350729992187268750916430221879078443862355470022618336958388419933663188827197893817599276642666837653569284413987774899724495264393447219773691799611574309505748349297378427873660453764986539123481856243350369936644535388197572884562218869457394950267901341676812884094924317642135732850864301742150574383614696486378884842096451050036952955383236144624792839383722646656042167458888109926224411950967465141148316122409563608418613208229002317105116670702849306176472582854228923602076987759431651143310384860290511199302348809104292374418058335298021199078794725008166238960318038586543781805686721529888562005484580616088020886307613112337268716726115655069405005278733893282144238320185913459082593045585482211090718725117493485664182915268549569044285660354616669990704880441081920806872134237396313003274749549467731718894448561381283782814991126043371101779738161027561389881850291917092745980860020723391082219668419156625624852128847995963369264636601718192948220029398913439285546376275791364799118496235814456593607894407648837816739384151896523313717338209677630057351377416066168412977747378331868412816578554943002240481804339655528982227190577257853010832426701312016300195321441236624472329750955065123961250197060597461470680378226692642973069433845223946143754991126554744547509825978177724332293683735648707304192532158494134616165625036568008426309699377721164849475282830612653715025645725119024061123729245390415445695572896732686378880300612252325733289942814295632980047448311167253942569756421844698685064730578590017037778515611143206910459964242136217785483285574948145546811310485412355757962986988326068739526486745889327613504786687555779002664109143744210579329613709502240626920209225004427644134076670921098086667719687266375450459700692611302466647425548925855926746559582046983105842164443549294412662535730888681550478567269200126757554097309333639920419860232317407470188667850802160571669366881752667704786985677135730311968332788764312084236323040528614177647300273472147252195467823263542919941911788584175558432904311496755484234918430555339353984730760012223555866304269721033792028150067138979061932737180797585404383059015278034872873367600972624856948277611550183739852948550270581968401865614708154574889377167484411475509167933454405136695387430617978816457381530987353567731243948364234094356233716434570796843257346561591264377727767118153090874486655259664568867355551632174641345272334876539465901507641417690560864553651655911785926739317940842503697609887870469410533235805179549563366760290326166096716823486566405790403040216925873533434587640719178743660043390846940350509307760508341306846118530089604362699842949773034714973501062128457377596168053435341097570770681081309042969614998917185877265638627942948309081838378642568645631900874511084701374264011193885568848034257117399436873736552485183408729532422650232175428093076825638446049968938437280284687936982173073694543464417345121103063587168264942675141604228735158221253059505127733025106676502411068025819223499307015482126696778804920729488574900647150489898462778935370555818756369433716807747494551943862648093511086162695796788007843661694287366348127108419196980001940124795735448866397361381143413488474225356375571181132471331339559664579484543447469761072626723733429031110881539038418813465788353942954813468699765574547830889981291743486843726168548179897579935116294494278275857248635783457180601340887563034493948835091600098821919947955344673347630204576316958491034136715544387821961070019230407903740616295159632953298084681518451994780275706843870746505980743216246332145123956852103936832234813238602285781666000204833029439502770181816600478788860876531285038663455118012774479847191483262197617003714286758863736461279143159331538630680707269015760391899292810331072972796894741375111629469212073655460541449516155312735430872435869666774052506614283942527116059642067050458907413311309550011782988701208684531900505551469097154247450839226414835401928624030035510830550431945200515181782234227849446408720559023792774730954358163634668853215124126326074340863589792907154404813340357716058102013051485374581000432685751895790814078039674358451005120075517918459482657687324544180005897381891690246165736748848417389130777875287177179284865001242961595670985674259754501445688131531508656787591855020605603447214569796761323153791828970710937076203963964673337524770015169189358487882940769811887752250726190401615607572749720245481647032427927498155014895350914170668303635940656049747871596678657269636312442573913066343378952991128367593370387461088339441420585083157174302929406159392413758153599764527220378351615068868050455472853821986065959367281656466481131230262876449749281025293838437772914987194093811745084710295727777732015826043001476395559170513834821357205478061331832433879525046128540596928637982595895098421918372732774740738170934472512646894638980854291458831982991837527279419291641223304895115522170484630287448862921344050231398413964009931821033433774409239512135029361017880922361409065531072705614784125064341763756921589562663350507038411156024338591267204909247983935152174572671975949724320277806181515634744620588893542932759209501049506854695259246275874090188864388349898342129403711818238006770067454821517910982721401074591225578296092982768507037593936632737457536033539425916908300492298894411046298228660505887924019921286266810820313255097618268272880009605351450638447738748907877982361654757026532669411156034848524556411422360003268195191433260318806141644874847099067200637103164641721107299972764059807147017970351673232987567743461252922239517472460229034506220376234865046162545056040932550248528436194014768910313433912042895323533928082298064454044116894133217679118866463023564790804871548707210233638904773785530904193996451521020094233004771497885845106520105701942705443151841934148515569190586567898087642833010708607884112651579292309974161615909087844083025520490519746562562414428225898178423197575112760627240587582957709290809212873786716373117469099177413585208796998409709153845583263819378801979616832876966441865708791902461483810575627113199450567399279825023809046945588300162637363210036840593392366871345589668015998324662505650266762046140082095653311212212429949250114616200964091754269407867416309729250395814017400817525848474077366825813355676717866586100865898834065762253177353348696205417328971694937920178000324016273549923047834173763783222564667683889922204010769110745584928072019732933166298468052920905801105163684697420801251715741226890810259177030694946661640262166284400780419049852928398215544986694106045565640268120900247209301478582403896276916766566430786318260323560835930271100250632269713404381362007454010524091830682214491281200530438313654518551644195863597575128546985074884899105381680951128990881899128535352478976322112360852847204417275705602753368735362095648918018894214690780543773763806165783854046727296140232029177539258283441014419608990497598813386668154342653664618235068405923361557907121327392201821155405884278616501957368638097721420966353912846111797592378250260769228689950154114601167202543807521898382165171611651018820625960790623914380531624554205966054828696091219888666256380082578968908200410383045948716812701796687610069910882069947443783847702816928937101526175831838260759892577173749329268033881496480037950983003977492833754582795222288550380563145108902575063200703378029702358005071356459785864312517917832547477742180193086601486318476174347418438252558676015757824248023737311366621978166903150050565939235937620529049437292862048968789126149355729268876536321105326559554605140249278715218122683431423475004560018249835551999635489740463300376465174126800684026648238391058011886437985503886973347779356777715773100179053461647469471885190681608281892493143366268716803237928111988420305507570410586715553688449995963593597394363432388909568788571389759252726441311619380729362199236434048367352978703919315129536068549152285678857136781671344949896881141747413261850138901406596781623021017414698159210633080470695213527330741966123551568885288394802023651238990471556523528806255409782836481031668642348704203250866883283245620259900187966437313278193837808036780558021632509599789453460187362394931099973151407621161035263294223796044392304320757177406247868231132501310403556738662475440945230742473402159266654255467553549422350989687263492302152606823817374949517418275433200579648411182848336212285946907126593029262541334754312029191267523170635448638610800026526229388429981624146589281314083627441260047607852422515396845681295843522773587872960151872741373191571672018079191809567140449643578404515430063598273912652092518198297769367272979579650657760441044817718418380426499603857402345590410054976211833813019489887115230116020643915288482526642733152336528695280952814719042956870472575926195749234507564348567842465612473832803123913297374066912379233826214360834722259196650019727403780971002393675328149816655964149895770937915421465855951832209399403629742370837505849133440369636115203501818726380583639142915115057639680333601471964107861491213713017584370958749988527696603215556385981663625712095156336332274319883484030789000918294659631300553296511704083213745253218993727363655362324376152129982242364433855134780304939011986364527833299446353705025830087614535236199426694525352409006977231487330623350318673860955618025491731662237505750167735450228910049896002937228395219005404845615147977348747535837777841622555622603291720831946806196377437079891892847795627869031707583038184307433921101634255267968086175281334629991747364886218057317000368643764263114026799429950265424503640131905689358123360618477449351959446274976349266510702915033693396756966374647696403213434965679179208036420339395947543844425269208520251823611794527634537216822119347189792709312173602974043946291498078349341957938977656770744480870416601269224811471007021948931266211458553460261004723399417071010274001414476082344129567039894940816696614477711732941175629788921969060555932185050405619278765663191697316297508743529604618237138721560390944892523825764663983258267054705729858779620711643686405744444753021491371016851040300195886307800702809556593312064914319010194750650591273851105015536054041255420993744515327103918538653047447916486022332837564857020684815684324454002764909656423385231022078350696513468632420646241859926139215840417353739559861867882375794795837437975968660229277501168466482278471294328166385536123943963905610786691434102947324505574865481248493247347165339787676899345994457739043591954878332305080297770010270226982895906229316659468431346696108557200620214614320194030407332271501208702339977087049959767879501035351280555738797024133362639473935422068998038005016207120760625116817083475050159248600265204752482269035656652578481004320479547247763221983290384115446022275048025845899012407565937270091478976305709643238164649131988388557023849654449516316342106949572658034674259463263958930305178603279700797358806598264949279544958350565288256622614012730405359464686319837457944142995095241331976421481450168417047064872093845347997629835915691355283998648488756269914896980467929871282599383299326530204387685515843464452028298111261586839951952756489333990499135270977433662872008741460260437635551857909855465292995403431679598604600176400298057942935641279834475487128814344359435814879304783649053108712030041872058450981039385051270726280698103259653264483190070948389167659917194454625459199170414139729429431328427803662265633034210806805290395041283571152248662374035924395450106749110048607365040632113408450249891711139823398030989803746447228952955705748428272359447775238181456168373716471543835485491934810049434550508433219058184742799727064497075974686734486769349115869547473097084893347903640867250315689560831805240965137771824891452128128421812045709788803503264654107682842653808219229825768934755220678601389902547125437231918653321998815974364031456280853872517107018314329939253517757618826529713898692135330469782117934607377632288193433663214079839876825432118990562695468032166320442457569802900281829769851728084940713502367032955789610677719746188132527172433591732797446643791294814869077897591863798496571424377583193286945298054062149993245295979076653607800990933791772558971895510305965909848575747581521427737778336747860248919399535721647166310162524854276060678610972492527360403694843199161853472607150964672536463278537479906621383382785698469624165895005452096500945831711845631134411369457425293733360500238918680650183677130361919980515085769555807094792614425694197142082294808946128227609680076520338579780629446881680386640164280764868046315757034604883845597692848222684589753420162961555150122179638856441561489319150017630521530192080103190847498282959064363927347501654480966698939094317109646742082071573632146699151687547626943106117120000842851880076040920775332225531141908465398961429483988320100536088253764321265960015221191686498170749662034720936607171064416606815434359564045049039530892231713411910494791702239343393240512920246351075030753975750555160921959164204383838509917878136758182617829854338974702969489162319378808518428325972804717299946416258391409788992464333479865520790928595079108452050519283336485072560476347552430960494566521083365654031013673834980194386881586108516594494297318926574964523358333962793162415559738180135172401875298600732558245015946701479922669186073637209841417597830754882079489129409856860848869929507454858477996680673444713291873053656301131303371203561554915830027912353181664533825769503552862962156143535971551553048654235513868941229581157003303696674952866212171899861994068971061856790918413391311664214063610587578119384176958303518910696586585008706862756224761731615111289939895130373341631018767120699062634619708921855654924108214054070870327102727274229549215832071149553168777101971751200021792754784723734898768855144691337066422816284709517177402622452213090907419351990478295594626570070296713795376966473044830427191456860804409432526065062803826744996465159930156851444773549491184618952964421180757187305152336192588543083173816725883286772489951885676846692063521478758600313911878151806745498782400810938762760778776305064673813206531418184465568684408485975493478959254091286629862888349193618674109262554595014810015946225190235106915765936599681708296493234083606001064278205631388828111584163726895984462873416687811543406061910721619447764654053787434991024652039250791425406821143491273664935815764526963174903349780653753191771147858013731119032239390394092473215023384946158305116260901108870971805314220820677725675161713128006340304100810276478482885825961986693211799295832446193016284659370011574933300566113345772795808614468292436332947638942844335475601702545343287712068365878693533822686365836847867199137267917522078230629561672759178220611975782678615654273250808626883976870159649288064904979206378607820285400179005853167612752794430982297945858587014437113694505317444865853429893481826073085467778220863085821817547882112593720410441118989141701228846978333304610282242808786079369491760423536169088509449608352391310810105794215489509293542963258197933066960159426894301349260996120731970254838232894899525843564730339204367922082149915799073597892635340647121260908419392242538522165169964664790944070043987291373260455519068369747175440577839942512029403597027100246751757636080464490633797806793439207345714557197030123272412036909550509814816318539281920838262481893551861512968481233471579025409922458993967394253346307213945358095204978708889337796058558231297641755415982715550934155501776449216994776527165321327113899508161412886796905605487315893599727953036044301587124525615327256062917888413836831806431304385130946481440605290948048255234641067978506490882528556979202097126046824055584860727374180913256782729440349383842653128067944236321061841008943796858209880727293986417123518611138814751740245443521132411536970253308620971615148225563949924333325947964048345268237948412581535309917596803260681229181217046934495296577076720767519817843551512671199967221126991102912337576713790355216989819385847493970591702761336202681110482824506127272495370442930902479401423212739023859267909457165403082136811015257665852999029779289826876620834510844833037203072817159928902412380913933616456948733743102128447124557327126107998334167799625552414818689748028995216876442280743178051624814267656410870086499543843364531457427437528227408602640881490636715929560283922301661187342599809807212565334134344783858131477169570038235140008269078608903703326971233791309736431217681316628463145371951214807287425502756402630129786931799830199399197642777102980789160068143121876830509694220224008235207789364244473226540613856404759109117666343161264456313190897352464126756412384710195346043148233428337754491453545707884789279242965538868492870077975253560345785417150667112512931441650431775921220350102308930705075069332450741909135500601586067251204837385659726980326188481101335653812794844324963891499851885925606605769104078019692201574376722967591850794461367586205571408512940251281157741228251990747693358589537246728701948381849235479943690774918783737987306920780527273468409542356471103500761811586974776363108785037261832998406731463563977421332542869535682294800948208048816350382819278820268585161136137122624158054214248510866049946625597898112592906293123836600886353391943518207035047419689475136783745150386114810380089357830006602222897954393198272660193948421256424976541126488241990246895782367098423725284300507229412113153273926613758602419815986545187159887716510643820460677204646977740661866431581901938063240995353903682845992449433336305778007380620659845408805254537163242934424149760351251331210161185681779953500737710009335207175555499743593221201227475850732128808618890101902070583454937629391686488838344940520461231052544728909865926519053670620826305294179308581758157080477789281101965577651488956004789675484884416655309204310907168687862550850090410235032930752560715740395432862134727043342479943922065186532564904022789684431046970456124356200101950742712028307078301975556546124382913326399072961040693395182987644226612940050008649765446225557654649930315106984449890118838043020667162595785290208276770646640754724432183402935135604848005717886337148607659122324111119674449148832606079810844874489903881922892308757723592910373388157724157884450974350408331789909641494784905695979070995444924405887878668841785285172630082047022278426480447697930579742193230168914335947029225412816025553732502071869793714583942867517747449246141754488373967025819040265084333419716958331687002466830068701991318082147519209052215630805933799060112735436343669955740839088083831314189575430088583339431552185853877406136219715421952099287455704339409066933593340131050108527575410393806508069724968189302399279432908556060336309194632175756153797833093156253666615220074040535547103256627919338407374479994012885653437335604043841412098516866918999481601160749954024580980406843470875483261043081400926741593984072009597495380471583661227769174766205158433034717814387663386426068131581456136267104275587581759728585412688199637507968925489177090004738375793547094544528299079611819199162535443741359703588133669820224316840211072940810885767477949441162129176294806455074860050927115930144230354176513089324327229108741522682649457232170644668361216567786371354729267557507008969752543998677927699519152018221740316199204412777050187360308041796791283551567999990938895720837835911561698928683811744837511375255449476446901793441042813020997702025105109471670177054547815002166150879713574052007149320780344215049653388562727537491288786490779323707691587968860085215064561220813486922069040997695921395539361323685927572367096914703939804316000609566396747285910847399297669752933006149848754393270044632891112180457294143419851615912897190734749486930101769728256612160016471242010574964170486075531865960426657525570551743134194857328305253279682680142712641239666971631558993608946651850464649008921621109664223446481610920284263275088353616898561311145532830739168875543672183365814440285102968078226845622621793497271610110865478110436392539333401746437751367533970843403016664293106164041185860742328486729728201141427843888873067909588123121200319418912872103838474529090270147069929993859568386204932589124083323362391965524878150019116192574291939716189885553581199374367847917031603523757941671099459865850489947514267749422002357018485761159877878536524898426635947666555487979853283311359953731358186149819316747890260468537304987846970554189088158539018070637369240792573041754302077842059227022280732965135626648157088527616669337890826883788052884196217582128871335464663910696592124833262757750317172189653842559388267635804240927738017974617806490406169147942650696780157859869247868489740836678365530644013899163197845023909475706391739108821830943658956891194253041679595074865956695956373126058736990375844603187495869449419600181886796796168640787976866345993245857574461411830303918817398138302392502955278046655522981443385457925406679604915747868736215653763715503045613424434560348210503939320607506273833099309381579055834053097436623915624758110918971034666121904491998256934769909010091523506060039865317427662052966430827395939393295599393166851519508457301897103336380811472703606289737270172408315516471980882085938339613220145604973637589473772401768696914258481533432791460083287972948168098833968300343779779820661608773024262446186120212159829733304533237161227675651222206752746751460644597211458349788608503292204322035651974632082315579349775143049430084050350721440721619427058274225264749328399542184311820004849629826079462933675234510810505880232059714628967544835779963224001457850289934367114008136411517408418122257189778731098769708532622093256292797326833490702044214550470861430364249203652987021042533466597288369785624107903790847079476407816673918245453571433733219997858744911097520440631595222344222223165318453076086645887117826710487279707260009050105597671534600917138966194408314589617075406065710638801505969004817685642169356785853446493179391865664692687500045758933205774247366564521208721060460260887273123389526300295122329730844050965588428427756936612396220243482828184466268872781929666690679329023976208938138139640895134405362189091832348211141335495996095981847891312375891151746186074048065636651152103409660137669770104145545907328186064250680101896967193868485096917920452488647983518835265316260922308590143876729211392469663278068515432129818828343457797180857402169003197852622868042952311909055791888792193109686400704169077047619573403843792904151105915835416596364956437297302533694602158651468930330708447272893923889518704220479261272568813699782814536834438836933267868399365128651287861320116233771385044775961429491577678817955977841500721158294654112420740938555299891646196225327371114046335829229870873179969217042520122507915163583893562890551139606880921807966167702432231503665550373712213203004470368037715916471489867281480697473478745532321522850096946045196082715551257624738536867208773701671516502182704678934924505251827123473203472675271766932211695474679999172097253457496309276644825601420299206462062719688212396117622289025916765437110768758500426527599911392423805758042002529448880147115090064919520528172408803525772632638715727592823706964316749687029014598241029970380407695974554979443377680764983687216633690282600393794322558563255011671109431490628707938826554235673886910056408946990939592527176548340859554349370171811874625529036518404773518972185909849146176656353613253297237138090408109728873424410391848275205153002387426078703117068346277849771058223540023239578988598607523880642916775928073414337379332469031050802480449499787465095274032619907643645181491819192894011111489136308408675668635528096308142076759458703367382464900290303553835543899008349815511211092897671244662149854562690863006225187489033668637095878452461240368267336361050563315415992386673863246414836481600550527131337998551492227955882104445183188850274066654397366802128477340363413724765761053398759936177857865686652163716070123793157973028640604721693981931191868681268794571298077409177237537913623026503377042720094449180393111156838468153895036875280502047877739125940150859006293650027243028061859045139682124932562986481709524987619534914750050876048190578801512701745869079966061206844768839457523822314560969780304743503851546608671407004979783034153985488134909307578446970917172210870545098952009629623072413012946668506392379113506305771387711975389976032456006248300270616864711529453216302440644567042095055315427798014018957447731454348521215695404905725114299328857318286290204541636177593288309980818363236984474326984516024671310313260341067391773826560384772945661407945583044956028654548773709145786836350878205466790863695026679856493060717113035437761618042999745355825934632831585932999343475045655539431986499462382476443934950197151842983670561444429113492319000874298661512050437278725082349124344630049526709138920267866101395991549598219635621007971193211064662154276815225438236925863457226107735507163062584449353896370792050230582999942931380411057027538098609341568450613404202333318832483610093516796490108158865000334465169254522303442272325709121623332431496993163602238944798602115250307543340233340061130901596876262772210379631641042954551722869575142389846154638996954224240323714813768467824709590710134692151160949180106840330535140754409435951016640000157816132019163724127955810242532858941737899773403365563996943509931619796031791174064233872490826690499057501063569013702962538043429335814531193217635509416677161448105726423289728107094348228406672360031962163163422294547092618827864396064326651192853496456011027673399502824679476262414886157285765024683968413812636738794440935792841395424067941505326077062789896991441930033282941494146132227775401319539748569014839968219712739899631425837756666209910378484016910279581544271621941505420520732669509816817659778236767361840045526803441637830235689923388440408201801089342235273878406615704481904067369634464436587509605605133962617371990929938972607307285483519737623244679584933073680050614877473871030493211493907335110412052592191421620742546794727709768591962541069954375905591162113431915950009660405746827423584691027658772504904490231076508752596731505616452426411272697789641343721101684470702452922904581852430495730639252547701698258540571763983323350082142981166147521137330868119725008923083446629496939212101677764774171303987528854027586529601897686223104956907202057189784072327413997713920238620339710765203843211118153847777556220936645743748545087077957708846893102100783903863480839237442157206861583365434018116630503243691241679687448180269020343206168127675825453264310213842889712357847854070959211063730072252455147979193093548359041665469495099095488697920897373098913819709033376551435671335212179406745299775982094704274600504415376900258251734674078000711188119538708896621504133609590266355621356736348572528740280884070801836922896013096879412305802727163171636839908897577677782239526743033556433084512825427194690513823129215358373317450661526956837235091497559703904732514705598372902448742846159474258101485955926978958901197713780464376605379579274142474090040779448684185377702988941479664518499985755291287709329781418059649872397633580722330429502001377256309380984332465469001855253212140213083198609770964059952893143282204125549415859374279588375463029001582002259687878088674397637179008911316977974146569953843928277157364762280778227177893052343898113291943534093491233554974816173457901822501097719391774962382064668109199090967181624903073648492373267587394202990275440721173778400613517364275527410239256290338325685391140891620881226946595116694631064434597650848532454391073628792996245891705048855960635909863514567014707997702189957143804470532690538246698355244118159993798815302899973491655857575035114853220530795945173221225701211769534098556551418284658975816120359835099120214864352024470495930628613555779397533622853543800383329730586948366150495541153584430321863587324078906797460878371899042126236277729362845686926983886543940610721982785335942837022990980299716998523454184893425874197614952670497979065468860565515641337324293164656724397353268821617747974193903235353318674386283920645331826824632004231611436153608536353537709881620654564016186116499535738663590956931485084226457254339860432243508070103140709339468682459194910870870593692435506501199758809185810939323737435736872507507967147751019719785000391296576025545732825216071368191614130251482126195637139393587352038141503525112247210051481518352608377198746181057586987413975139611202934635169951998652501196198556619410952253027307728626737406751667998018714700099564598028278807329195100493048464687799340116597002105670324319492674810783035549365338026019305950007940216670629928361822019227940780548881430136164105179899580841419507769849199704335203695270213785330731372054881762921107185665324419121654345507326938225324315587660680585261473725131385526799683053610354081794606747759391470560661764507288325984015632835300394784790963766196446101802326620016200347608968446542655231904884717860061911046201884196704047166623241026168602897299964098464015652204906226131604069987532489781366926778786319710670171212899617594116298259838031664710518798335082525882588462532963115222036507294922968921608892729154492416849681966988148667423234050072768664839797260357732259227869850878317206633656708971085635566544262454712644926469418514260364446138305363712492549752146017145984095315913400048933977335231286849857387315229325135538183615618092551217513776032840252759778373956342594963927743182453774808883858415275760628409304724173467397798515475831777042231810827865367754745059162189848519512007560390147442028609959560099737344365336913460118017571162605970899130901275899015975232568643600311809253265447574163514053635383073979116742006577748672655040202458686685521348507722551505114124504489314657470225316351017566312604347236599685083416049227996326302263530786245448483398706528316626455345948629907366688053148962071381942042858948710922812935628236352730847867004654777857600506824713426990713245948039421671580702056174100595195878449358588985953558250838004218308358132159465614818633281840687455973348593289337984899600576109689298751113342619354815351695387859217254316620575293145379800404402456598505348933654528300547314298100653589736564093443986798163000400436277266606285144858209968405464336201599319870319356298029658212428222426564982634816312093241268994787507448829198617070276254204419253097637828999226904011987322716057914518916507639028291440789848961533133313619252664077139455082406978102061950568366089318925187884283920848759923443828530296159296866474327070707272402021171965932630824329596017022705387298736987663682875951415354826830678572308295745871289536395819431376730678375507196483953425056957566639704293013419989225371449267338836340151134206734445919256955765220332445091396538911468654042461006019764781903665718009024615757596113084389766391781059509086216925442624176561644686754716948395420929117401416298333790124533043463096460468349679274988046930001567731168747874004312975269070814196355498171255490972524354356724128328588378794960305593919436938725194103094693178770769889113191711526069962505885213627033433718460062411775058918320523238873035747462389042766293668730380211868359971896702902377688247923542839554795221741276413685542694743631167796030728926228937499698720770957505488266379124965783172761388503176749481651565714020896262249745605887575331811980188480014119713611553314403737775522612293265568151468207070652483277838080613043303041318803819329079216110003819754089645553936665135692868176754478680693778799322318513158387012016406905448898469103617833848950454881016248952608061082311483938953100332482359063542794301738230258872132949469742940462604277859723422236391056367452026343863416096491489220637952237000866610993987566406409385959854907015168469346639666014573721827398656331839010719845874162497780115865794215231757163742470548191517442073483267028701608004393868657769509107534272461348086587242994987799405222370093350877264918507701766504021300811015372207253019953804461173795904416254386797722391932048779216744948995269577593880548938804901574953492086963875833947093201297871747031105788728010240704154734716750694540012553214528020940215254403811661393808415878526072593361271771605629380984030352837017830557691476693175235845266919666953481956102410508316634215334722723304460270950028495597395611342023822455476234761048804055720385359627291058324006129305735991780172094059180883488083442927696889483646145214787007208705148327394620652243678112786587941885509552574965893257423974719205270960500985818530742321365278372307749308142950875466087156549505341257232379007870586375315833239044170274455269747153657855428137040609747942545168118414381928074570381875841221598319446919348453243675898721736711688484948662784386548387237722064233310425581362859313578443091120401520330840435942023753452213767355362291868804971352226382826815753901894078296094761148128480734113078886098725686473155692172476585120798587613460180908814278501705031174442040273009063366083378437378371436066211376882189870480341637049364187598129994981351312881131272386875722870343819829949297012209126361976383607439787601150667552704676693572239570166766690814312018040901172823023958036440450018720324327415738834068741524023203530293559615284419947487118983842417476366152817945047667030401388480822749927942900761945329706995717384388295995642458889601757731760201024783044152544892355499381697547860776725508378750292291364443259339772201489269196137414180899329041707630006429504722575987041440508025687767030342349378312830159476699321287037785471118631105231761970027398292228297406983898121083111262926739188856535605835694092068396600714282458700780229080499124059959771015334292296756347746645406943965819845292600786669917931048955216067965804600301557044902862330282732379791792754687784795456992443835980518762093617641953557088433076268735726914373852885111889142414554888322434067646764282607090532203880186534172743106509153809748035512346504923013905098659326130532976873274463802423134228117944192963272469976506388552637941050765781438609234853301723815541455005760378503127854674064573929060190376795338784777438549961497118971851125671486466649583531912419086023583387455289879726364689802782228418560895771276009823857555728781763834259249364319544215247438813935422614807052759588953287396766588810010386614932853555625498965784609542311198314765640833979857136834298048232396974769299507339315127267394775672603947151223240993310844946078913667724081223838792237040859583153294363595373988466203007945441031063434763334668707682801266256974377793940058646632095262658277138280650763984585847347323318466163999945168514287597624336377834333868391282923203904844031997642647208136352351999197346417430147947050038600682373029715278894234035396026636953046017904840711924515579898075700420240893283999818653236012523021915373672960923755989999143759168737538854747833061541847864689336988506337299310207526569303651951854236502836683766646747193844650861527528699300483255865349049721017061553956711369074728379837188087380560153763618546535963985890221694551542600472189831416280602177470493988714207903377143253447034988042639891628070043218383024504082390895859027451926395583040634411793600866540149677944935339045042467313239513470403026660258230104390461497006557564473441699241203018785183216037735523350768593343727574960017634437044937543642045680628482064576957076231066036970065294002504061128553614443599854017676602996210447805240824434087651908464999261671223419791239937100210624781839451523617980828569417265383513027270179598024306610275886507820420146727642573867945191837394022110609970949198217115228976120902567080423941659211575803177188018299826180622465400212108739550577888686277183822951016814139332199122164421918517989780781705712900262605764619476675286934068883701084377622683892094681402067113434660029512841587011254026613003678529440505517073254694990909250173809876664096309634314625665153827568130089170124093456052305017668446812467973224663330091373499092408245973666156825735756370701701689658217902980040640863757114388958412410091131516215946249278977761191717519178313118211352507759424114024209817429081947155003427961884014640638621632034349481069995593771487186269278839377288555183079473520491255161783825292171105146530654498065411606823834574068849634453024454689317931404866348629522910730823732585672303125693985425428039350787201207679832680392082876201579436305351677629885546949093614767577140274963485267871324715158429544811122059296212972659184326540037990571546366891456253740342776447944101316147567876019736682881907082615987636153894292935679118275720101108094355842136700679233791065080589842959410622544888575137129195487210555938903891116313695366587282749067409255469803602340738918997120167037515461776625126172322926405459493477567956378793691715644206472096388862955183494964251674408437685439642821723032528065838138440202912605678659527015225176966400061871079319137306977142978464300619487515057858517166320844093952439194853555381850936461591209831296546026590123578781999060853238241011166336530356152374779973231391102126345444131184260200092916476880554610095690959467944631010774958860314712800893843896004450290854724478329141070410370519147757547704240473763271116562360342016797235826700992559465002947169981149902133016909138059417508975195419563782539875457260163477248081120227148053704128325958593334626032154634894680519221796830303982766095780033415053003307212834064516900707836296930321495657921524903408400235546147181863341311160302397000769355846339451050121608220052214349696212898809069135703114767365655991928143940518138429349247690811565213153272259452159705512641451990364577211906700614370891363678014239275182056419472122175511424513656061399452611971285270629005676041156468789468032340213641514382901591164200956090929158211014027058233121485483624353058103564695710628579280405802228491000885924872953924773365032078231519376888404622829524957846022276934096270008940896696588803717375805855150210084910694378592263897573014196784938530803083913458676169511479214201152176673872858074540525243930982498945878830204635114656879096238453543819443956964330978643898533920256356696421499098065632777928241051619431374389427666395993752185920444463663046932381658191478057826620665467679681192197536023313471435629661998709651269368949149779064850822027587059366991591543007724799243302287657438279079555312330363174503137173669257594036453447304139134720084619241480878647179494791525788353145348552412938763910629846959360474108516928306279971255019221975410038395564535984891311560118658803487750520996146341246681500222757940627513133457205014127402417834608603653348528158405330682110937587135999760213239048368928631231322152825389334430753682977882821559006368328005795618423641566618987793030069619739735943464068718797415617593541743448210530484085393779920877858802465648850335888153242536866718907316943324164191392298291277886183069051834701524247392933427538161053827113732985296190512503923012834343408900919842654107577546549383726356293713056882301270943157132328948148176129244415408500561383367310758366792580407927515367948519273200968460035839236165204137422438280298504348305397404325366905390197601011865033674448475739446136841521764544684073606590937357811051734582911996948909644694691813043689787988787317572527951217355946738598794332891110068906628201002913555400551456967880707879412335739780994853652746928217461201043848465006175805094498711585262543228222747597086396475749923225980168299533564189836339084634463951781239987499356615903094080221221827796216786560586924217671044526504381007678441790839149005729501904618551231711372354687300182601564076875702548446018925167330608387630041087365389245848729010727849498069909497720767630905504429569558849361802749676734902205867751459226169999321276752314476128728584521186886730440025967686067845248574592878816856614963404669732461352654073821334198544470890464648233883874594504979430256110960961596078896576101733077500524621229131455215215663033620355312591638102470106608970112574471176349256832201733828868603171265297432997604628466249466455232879273993164225805344699917312696527748147746888117581090570155216282761613657620457562052953422394724161686066530779385359754798357684819516090484124047148638011366345828923767116495692366480184399291627734324520585076535747006269692316854975214705373247012517693085751683909693916841888379938661061865484710312478739375449151331355582330965318207820800547145627454626703835450264594294095717683129468766659470166734211888538739096242222045084870241408926579816370348075980984483129290499995461653063696878481539595425268338923646424720204249418914113780315639248220556897597397062138850618619688243171317288879051135471935964215669116498483045348865342399984289738911103575971577566384777694592103620489204751665679363930812397033701339288992483536344704307859931622752209571872234915450685809805617719267338578413841344036740224340353165088752749255131011959872804329307257196796180207117201524382746763178559880705064239769740253149071427721768415001339935408977126228763364478797531461447301155753801435371271501809491488578053609542990906713840238851372791187750040839564375622768763414774435165152925047152355706153892449442806913760527135464063565068321812835690154267191460170781884333422010187114260475416879683764744985796036444229292511690228312794169055942025898493195248557861303566937567339278695764137769430393184794358679590371721285267787857067310018401530235450647925620464187504263009610990158986511094386806865801789790293426384245394203306208416529239359214884372136329929020808577565799009515657208691694041949357287115383380785055386413742803785449361033226168283096342912969460379269023207053891226387628266403633322735437817839502570187778674088270003283841527333596720443261675616263496245066509417276703502927425532077618193452955810729147532722035017415730072054466000254049789281158626903845511140345908309472869374790209520197513139411911308182458741113117297641545398693089147489795399586663243387548828845515826361189164704566830680563501784809499044558146403082315017417294680693226848348488802464613979393181680089280685522829164784506531645589080904796333888561027905692654281865490643964985148823799497950300756399711124363373311715927549369541210726492330741844153440921844274093658294349470866128884299613023062111735620455787303948109388351094553081539184660645322916963418151835103348914783750454306753217364813076165991040169201335092866835050575248273884797367682201517877365788425422549806136165291681507590421212197529524440683033443680769419929955560195286514116857354096794221982172583487862427724832383752014693274641331412040163722701137300600611941465293654513073539864405704630848968058372451699644331642092815110556187810143515172184695047316744269607716117547608505919341948658081080298278254112243355942257147242000505160401499537174434983230752879963592732323354201544688721136644322351952508598744326870979899528106611726648003750927346806419346970290667983184493022015351834782238737400042187083745139733800418668406999786161263522990998249851063455764907469192510894573864097630789544939273753615561499859332226179356028174950655553834963023831954979224730398059492035685944235240743719257156788100051618741986433257892803638883015524269707265475416987924018388851220687738295338219661955948402042087541802755468279081747037242599107352641870919359475877614619347271608131033134256502440684443486922957092406528986530804053098610376700579825243130084486240835079283972289631511381643634058727870705630700357975656284048854122265116797486554283606857825281565415379391499957342565661727265080948700617954365221101294817207453371866898482587955900568351584643604980344656030952381576858540638756810467765234071894684008517899481326394887229481367294314891915051352413590543444309504002269030325123813466560485303900162017914733588686084207594960937214357896667518471277866943111054303634680133618136331354159792085744234484916867492071326784350930025087337569687333400457609729561990784637554549035859068369027954854627075836102638812786466673798264836598589161968405555883257118913305457005439997443802870646113092393339063752916009573109720434098972579602424873202796091501135450917182873848760346469945029017389484642949421466155672522056953878046791261803494649391817878306864300255342333150733326657227206801080449489735778266441640656072951899270484308222955291746984106344428148632152887664791832270133771777332667028698602001232513934993707376089166289995310268502613905760532654092912959436313178571558776828337015705782602790212375051920286846571498135240720988435564710542394230649068181190294126580445694411157979525065878109799932388457233293632598363080670527126651701122054039154531267717281139466686569664083605961356684810652225927223687207512290422733533766291373159582020128635184481480403961855871033783871135191660553100454181271303208294729663951329643102383080419104484282685172273170292614648789176880862554029402584533818636248752842666371924496833478154861639106881078932413672349846752734047773192241314949225250423675162636499257975052213759639360228941610614032703682386616372123227320762401069897451329465290286556369913510740845594004621990563483435680102584295538294674251816022776877234104322242864639712485903852186852582693861566880712205289220865418929026153357978061534767190763838645569490588344136621909043410954997977006664238346545302295058607232496502238692197886459436106039574961790742200214788677801997838737351553563517513749235550779330460716076857268407306911057031266800151088104713035591295164306474698615494636555802836283597907318150744137785847652674546570511969083572028485400702519615659343491306963654980679682389029272293896666009109917458557041891989300558056189309430641107260354259366724254210961302710045899237221383654577477348954426801576239086867518981017632441294270214576004957328058694128281198144230817964654926785059068424053188076572414579527229792355028596082335537344101915997317143193136703661467575649291660207142502907227618773518251234245718932250006378579264662265590414833486050680958675756744364936026595055533335586095082507356542953129626187257401538117401752858407281444026952468385089596647766662165068536418060305449129704615940152415034047333651023222934663910685274278371256218818905722221448329664802132377041186228996497960159842911741526410733046457904961346562174664124602483139572306381985703452514768529689302443932214071227895495078001218257946611477594236174296957909342905272601585564600509859730303041059981556971907707961799053366143912446472815996691138235340803326757465754224111557222878140638294464672153016299897095466443442592979308093624960659848163095207961470241119174226154571955583703489141891348665155996143764350298735254968146571278190933190093911558602108343050444449500821496363717120245861566917069821936531972003146413618240347137741581832635218621198723552858703984413351339147543161770802288255302348221766756244391028961914799793703868416678728285396558190870922460260555378391891482073265067035617173307578107266449268938476242493471960050099245755190736496917719301765027659940569114087187196583177677899656578880514837710664760788017432831273090702143664834160498455239299297847060114836618000737026083305853866115986230546768357020648552880629417013314335882107223979247965900260945294637793619658574889798188004664071409098085564900792856219337267897023827133748225197714281859595462043836915248071286340756756576751700050420151620965461714093238305784423529554111273781007872242124636537189532475174372068314007691344949459630012353823025529254238320631542173624809293073113138384895020998662035503637668240713347464587460068001136441493738253345911951728902368084171247096814866100991081870661798124915404854843625157809513898131708785553076270878824218248840643765627863376630573622642966713457109864648501932524090161308114762569948146154110122526723157065842430159297913339841017239660754383409667372857117160059481681933867484794706909065592273812098911236268387938880626399089845528639738965169411475120251091795189207048800405382399611484591315067701616514461329440704627394433154417756247244703838135661481502434524174830725139972850564649880517146570177513989030582455658590247516991786878405745202703393482473127400551350637232370194859789220634434373756907929063757742969789372514233286008118192492012877473987475173125218688184465591136279990175174057320257219184906300907130605011928396650216493646212863136879323186376085691817760577455076202787529199767939260868629778751075833613058480326253146457015887366131763999839024190823581631637425451830048642031958089467723132447482471731374866702737362707976822449168479910278165929426787545154822038683899249335231663749938025912662800859198489983990541847089978311743802006869090141450030929515194606052551105052725593784801637113345531616143528504411835640172224726230182825785087233005727154553397147338222712794182003956295625353524473959632122294247974712805467200993107235926587126482667364713574314951666145989322310416079295642551752431396575197251319285869327967503507297333410463717188950969179137687085339771702832366007575474090380946532438333916169368902277059261839954063441063991367812657952012720508378739728284133647141708761192332963562986671629436672601885728923836029143403397285475341650834695327365371563134303727969843886226229411042301166892651737738948808824897060140116104750474299824750799757316519207025399980365890781446205778300809416866635937875220366246896425848405066392420810192464283111365788395550764618739726267837967703563189225106414353138096159856806858155959662167193477668271398597192427781447157115657280923982879102848507702075396046085019320091796178860573560829633698504706056806069074596454921079943600565806723141361849523016641010451867805478572262888986872998780334390188935104852974733926497828835302725313113547269958409318775926066560853915387252481171199984915019383172238590055038231254119503667932374819970617740487217458086108567489211221084027668433142577494726764318534299965256680531376473533090482210158235049564451347097546731922959632986595286320850444794087515225213753738056113796737033152322200418261130004341966244805481201501986456898363334443507561413021012704534214840629059968627307717422416609562149311571478861477214079219861580665884309113814666727289882338161772895632659617649349657478982006524238015583142080362901248876214509811243972557351258172150399454859997734610081482580541640075666243150461480672809794226937499554658071150784281882454699829983589581255227079151239056089009589704518576082233580765974750950642062333497689207500578728765669541432735624677726498359925440995331323915778902674884274052321926124873615041783844135962116970633177489986540704876668342557795797449757243176699912051672965563215650757299348063237423089671755473622177677248587723887514881682126670547217576788367233092604692343110141950317153091137665386219772300367903106679611438267763255977808939436906046871812006879261909745900266038205902169377763501584900169069620533215265663813467187652793710340702229698719569384676030325831335164888165883781344557413283159079577754020987279912369204048636839947965434561352515291236218407796675041232496401564814564255608103040127647228552232132444935514616750935985577770734601073390365956534492646827807597324305211079664933835603140967470417909980023151585957505915825819194319285177637609631416064760933482150715356943760588498998277078377966362015912915926529688219578728949327323772685824201964028287752463592988047037935674149805750938773794735848120379289914907825424018654664912813431549237025762749474335996359500831086068858790693398475520439702601596406289451718762130085401744577778902737463061795273764717596554712948679498028292982426310737448913025522334197778322155402769019698693634651949599477827798583491101598664873837547705967544338873750456988110651455422004241705533926367709093428423425543667733118179165143504479629039459343950704692359947260666544200998687935131013416063140776325281577127100814427200897088527178013108160448954530985451722031350725525098585446409050446254972869126994803879586234508341935334580035354780498950271373745867498112812697841662428700301515079859202286907767321778923920435616137260447458080566191844580388372756807041076470938151268017328753811651984336919500142446077780801684879364748308479731423450271715514745884381019046152102269903468397061633055570945179929100328552889491784391902372032768315175291738078365056534591071095829519244392354642995657229368580206881007869207811327331829313914371099218474064661378272424423043119224182127666244450512954356233945683716982534659386371912048876499900282526950443660991956691600289273284561377266036426476959347315639442186961208047961303206730946100666296848321727982205750755544119841186042650613649995196674888592896780472273223240508652928554261485745465176024718132470190866969491409311949708565969532710009531937370574869098367571539464737529915575133822528888275000215824585984013058352983985467882524005525965728184362081636156929718111302130829155863932359944120123044574311240673329575914431228071578905150671288340885581904219187156559991422756514930042724380135181057436737750535122528387181359051405451722996951912553248674424347118576537103954026606744052928976033066034193145117418694179416024524692840501061757744931803959221853145456643755455063978359891951459734226517548589837028006925322381521756295230062016984138609331196016563722010961069602582716526167042842390874784630410544305526174314053757580713752211303100710754934589633824468790223291857268034424785383136294131654912731530476664660633828751064054549717069000702160282902666656068612195407623381904684792611085835752293314894987391270146046975736681971387803271278169519365758918886000228479610106960067772278072692960081496952493207174723221287660806347815032901602428778288845820081235574506300364395773521922983405130165012841613645852167303838818299978963406806487379237079104513962272461322571693864298749600737330006081142196540097646722776407495324914011314252532580093255642261456198326622038723707905816773594900535725122835258634079935328650968992748592789990890309763946449213780589558545804750892592234167980975645698130322335612941382867422101820914457605304358120611992394786950341132624789244449982864943219990273672554007452864317648688489430110164087900543630618644075199295336534742556373509647844140497623704304464623769748392691810443453091135095982693497376545847227398181678515784322347091147792555373649815146289989959076546192173971575990046264157621513218920803740998045084132611977500236206956850302829022705865802687758881000151522304434122186213969346881655447708455170888567271241032585882616844136628956094164442402358798988967455840338583847474870879147706687259302372330969261125399598108908987006968627186652757594501515188475556537265285545507146521551352443692497335844862356312198235803543974743627868908967478276459234529617966135347973381451423374417871980028932629126054554325778323044259819344003116407485778127579982001007841621154421008425809975251952336000607244642905673903447517339945910164470473486029251864205395519112928127425560052500379815352889902319288465246374603044233389593568058436901979721000202842572369393646606107108434694512203301287754792968118707598169575162886646070776768009584617534352509817911650990839889485294869782063049178426227445365313320421773639061565303146806396428259661549576620505372867171535525559147418503255958037784577599383575658154531072059679587110322494652968024740433321934966488855430368974468862786184256191695363610685549603429298945941939337171702139653948530163302283870357057494352592888589998398697879960082589308160984313072356902555053456336239612400187666423919975317948154685459205445159244016370412116739216387260965877888552674491906172815119698570360561067953376837767098816070810616632914015689877061896130957832343738318659784653357834731537131952416867164194441378855674529034821851180826947118859518222065118312853660138228414916954090450617525923917960205209602490167339170344876682169765512542929362637206378979835270093768654883445144277908795120308328993318342031666585404729573216620929710278943864713121108581020740216547315492688005941696648793491798805733695336114681667423685646906305337969289062899059801490882818399871570695277347958421063446417986146179832803173319597658614354406326042099901688216165465016010224708748375595730443469450296636592238457214034216418721548602551199800963334351654409633664439180521764776887308550851594489721571904503201968396900640644690433123137422889626528994656045826028882473787020148521461409977900520712182194078617516462264300347314157371511967559619688038085834317768796124098300783628695318869599376826491483479791708269019378889786726123409553447816023011677018625609702729322941249636522635253620995163096998790311774511715145952997903038062559126840530337605367266553446948372187511014647997032701882114251839054185008603015394672546340990641908144345192072605943349160420179329809211397743505357391190680772429039486204649970871093318869782865270019126576162720600461769897721354176078780774938949479724038662368834403320845824988087507172025822080345640147655137945962783898597784491099431292796367409684456130631444681899129332292174775428705509160922271849053252390825098794720331550688065235668592610473832195861127534817012124592822655258355720812819920034047660291700161901676566705798995407051090922637177596853801236882769952481644510272375561133290659309187256234439782114886943402609004308309326935293776948905574234323823010541642012481539812977026025665263578459052606072954109430670198778999099715265296228367985235340597508606417447556090081195457587163858508426887033079965849467863051825244694706667030858635827445108007225718317651991716030008590669240551966700793013763335243242762754303239129919175679021938171924219607169436604650743770820186040680519780076714158262360768376630800040357526517236923177132292572095295187742780956173540723994467135197522929781624143926186045888126091313474383130824251089029018670642401086031941682576157679347991453563028883471683868742001564327869809342240016508591351616122833880107719440807035727479395864156715616516066724262880437993391999741786011535245807835006071928724902722558264473520443530014282974703917444077719682594180343389408774609266383770398346581095962051799597048232217621782640759661019208790475460708204582319701932136323111815000962850639070302341498441661492408994763823260804870634520561994466992244797230085072384162993979839343875559999082643586431755788456527783466779431993933052151655285053120907470634546002890628391289712004242039601193747710671639820439465954652216821477368864949176199280416909357541889459623179900062595638934253266362648419240994917151097609909970129756588551256925241273925252900094096708548734083211884141503479747643948216269296020692499991217573514120360169187174518272087224730808695305712968854079419900832592864747872266611233259002018045920601485445777556897905553972634737214727987266208980593869272582420406536962476245231523536345510722436721779806259581237554455546540392828887656947881896182100113996784383194544313120247817328004882628837609553081341216606683088648318723066623334283405288541936419577119785363326506716867647471478268494644677092955960408289460078199618543581106294711412703300082730497673371628595645273492302111113699403047738354466824257187938947155355188044959010384414893960902743531847261810703282679530316360392128560285250304005258224895318207901702119567856312938106353335804142679569930054225162008157412958374278751938898651774526041974977737185532813458938525016861382955022298338221200451272197874453665329718886549969958961766569622020598696916147625705064805910335140280781737271442732857519268773058452830952411080058060789565101384821626303878206858306835005925349382032284793026933952829293847539728768993970713125271923849940827922889703895109191298609383131059522731422952848735043103185679769662520290878209069490650372424140593496996825482982638528980685591792053196261745014318357683644185789151318566338129636979217991806071567850249659303529271589372732765700218178368379346351602735966083279188086880034647850474497837913915846846817521507125884468026766179695184548797160401329023462650237386108918882612211132365728191317403365448652243636542653927245152622832371561740956463265502467164324019533132512461468472614776077754152136343882548474006067973941372774758244700052074903231808572759110116749750112956107060821160761369382821107293621530933490067027747837393031423961837315297954494916793034552718774160521248699380008745385483791505598842660244999377130486515780922888178575944731260063843101825872025724506949950632626241607669378681359559183272785567722087830227771352147753324845068579002532534929246111766414315620649784955240731963708033456335317682918644713946607874239202765897497024778987958903477220823857982414834900918474373728990491602967076089953182088113257337609377730035520360613316038806466175616521162800957487947519125821772602304930239913671894947793165962527887967315265279612415401267080835783450879798125158587249752473457508071427428481500434033056091013655003888367597603260585261179424380085702931756448780436138436719934991578393099786508480722478764491938874299494883534571190049771572313862923453761173084612230125468571342873823377959292615723921880825697330165399930902564112427250777993799750558105019594774563520372603465772698012351575152189762369114955933775677928285920911055246859159491893804660555107803288161530046023482038438046963602654758712403721193410165154855749709775172209113152593960598078151928639390356792154990989309286052989210231175014925278898131365368725286811670072755035713554470154096368763884334928979827009488130422750200494929601245467533868265457866771496703511300447626682095787374290530979790417581014721724660239595365182537650532435443960038297115054854257835236279089431454616805446233588765372887714764784186696528403851596414137637183589282748793372664152029312767337202652938052710867452076636344584004013501811788917145475690653439486544896413608683301845854562530546957503274739133425832113053763847499943778672792609588165973280804138047210086781034562388602061443161617302708360452373859359710031004215190487793503488100368688421379273539387339412224342726461064312285671610269805444428816797598046437094789636266003504865720361371495285736409232071646752681592977018931585644735610244686618531143348807538079536564278561957834618295868068462976861736589068822045545401106788398047247536193497317272415616119228839660310988685989159783937936212448486637924100520270748731158669913354200718878723191973966049759865551234421529807412697695872291509603282994871320580270428100848145137687384542199408498372225526697134539472024617860673692496111772393970260752242005126663629839471368977865978141575375539314002946062777441366460334905597883189842323290775005375608397650142678805914227075064183890648209018152373548189548764206486066510217829901793258945668144328754160884383278134056527672805668592951750055163702726644375415737525990924304190912338422278904471364133741266692054859199165911347360099718937722658180099795521663480521787560101876111789513272406881005430702796335701614912918650067730338473791296920679845669989209913809239796908399391967408292961094447180702576984884691250816649199984403610731958118757873681943215917787521298148049787479035596259369420005904100118189362974762188694860547983106879798118212398235522346478121718215184189990562074631192660569683863471157183663403280065713745687013424677854655199661093458633608545062908225942660038840606811595751411100923268316760059497507234404873452647098060893077064259879059773465694965482150006311303403176188905152227048455114013053159603382389364683858089191107804180680850878975948886262042198010246859659612401938533510137561118319206562889847160007746019774054460823382323107802233783111989645302153857562116202717174812217529636814003842184087879901339904857971452186287903743224576430132305332018756705209740163390704354571164008011696362548276656337973414136430875587339995527389219105516464453591795577154166478244235316944542780575926794106354438924547130911314948569656754275741650083837733596231316882867164856893779409966027584386485572298832344616783869559287962688820050755375719466822761350618792241265214731637187668907880243570578115612699031535979744288389842408812630214611712029217436717183157604336531028290183680335582617661787881618072861432956947703253303312162888464376557472755324235680076442977315820878543703445037924939559415349268130290991019951831390703919789707851529267102174618635238066980950742747227869077411580461120949358757871171214867023507187894496388028683221852485174311675582101581021576449158236346625483398063599652621581831549515960751976738624084598103814180973514567972107226045888083506400938026164147379763052084988648137970646080403914935262624341565876921066160875578942883548626750390002322140824421155932442875265333680704119508948877172730634292740657715735270951705680498311692493705963957274185253388740415248273171378130297712232080221948211547051695147823011595719034114329003481816559046113091323017328925048958221859819868597139533580422002924319073704741499357871522038180238822850218123396207280502049399856547798084181264077497793207990557676921352439818993922995185084492726503858212961716261610750938598215134589509863613553797770209179899153197860863130843358355627391127001417560887744064695179988570647218006090687859849297990565957899602952769637131138767176841393224741959301809924542211994672201417266034906373380859562341051010601634946539814132390296893899318423252621005194137502440389682783676427782323709540183325321057680938420323340154872625165562473720992953956781193522059813098683166882163733952974030976378130746249033904631910290663076308458372321338433963803641337336177793518774336207369272149468803929884992040765357725761975493459725341567860744175326259283183881923850680737087851987241475634252724275999595636904195358146740497736193241541162865490268129772347537731368992962544337080006299467134904542418753008628992060240751823840192669823034228862094382553408118059855994141271584660765152274891464636426697212501115764189595822893120014149847386636685569036325059293689440027588675303095196500457521258684804155396072553355265504798491547985845973385250242107459395671426842316384506991534623653134406702155485887838650465508693778125682938088566682667790267404809417063723065383870845173324974075595392741835040858057307922968774673758697282843405299377220281134055029635564028922971984806067703459930571569445938148595905635638748208781687560044198055516924612381545057887159474643659779327261571828742207047092205187427270254846454054468175120667581308069863865638392947899432121972527992569202735741800829723163633247349929590315497043007120061084289851325455383674771452605163883814146476305236828399087970534820571543705723829968686935284532918262829879731409407687277301980460896584219681732581851649013169537042625454584934131347436154911111770522527150445947710767290313551166628332665966765268068584710745710990775992701814543168335403002862975827950708842950787200240133704864682349610439557896639048777413795673872911395063574545253751790778587892503350234200536448788501573372833792674456624248496146408554542990705043962947624165043024037183578700517888296398575129442729719150577267534766598963061879729337181891347493484827366908258599506720360876371348222434557965859152096777071631845305002074488902762323231043188353673286445687110771220660179331912095950409435103260012177100337119086568852948373249109879416616992180112860846290374556946427355564370186204040464695570851912292652122392954836085930531476307151424617823424312467920847377952229922031242928753314087198856635853470487534784002721189618157472343023470898078104830153895403494356950326352326254604011000939338263248162990869692803984158458316542719261896531639501127283687331277075448843571629830042844987088558648133058022872323089173329017876666386554529175604651586870573883139510496868312670884899387892961354913879206224187205830019027900961525327549666386162485458971608034566395646781505501172076607109905644794189478309527516149179390813080540343043199299830757851602134741511751354295501502424896596553706791459298408568431505176478700650901627235146867592819538918683688788691648086451115585898558369684032249143116867222223441865715366841831328870019502455651879383955357162814914527740123090996023973286315514459468113526512036063281232346633723427797525339378178046209449727264829187452927066306372024486753395395315609196074597147918369964174982918010386013163927895733081452846974971010973937951521040931855333295161554288170276759118219500630881064794175457764772433125494104026767253918089211666383545329398615153615031147553367799941273536361517432819639117342974671725268194892308459537386883255482653868060887259393866348122014139293504022875742200292355714630234136265534223748878585486659411778949949746995607971157661671102146808229537510647795647104854478328238999775916226907994439771539885554620534243270244330794427233095952499935613785259929374553565842725669307424070786343633187076066681087524352026023888994091110344778984405935423594698236763861625149738000152208401050403185426260441213546729875614861183913850493016122952325824499147116576894815642844968418925128084227156355690739414426028406783004629506389316434999692304934297983194382726590600734820875917264087114364961789362816456514859235301476329858611986003788823322227511637439015279910285163089331253724867727430951294581827572553161113683275951909044410522761110272689561053123436276697958026328428565465084601555108852965112806032023980102744425595572659629748614457120423562558927651999779409225750064159405413054179311766175894504003751810495555524595050332256445428048039292450058284608701606613745983141758051141070842532154391126265226173324849330999002106281162354984085370229534114881584700071758248450955614076762298918828653144837755180742932915896664361047220653082594598419045757520840370098555751227140675837077205163680774863909786042498134634986210506883663735079863400260207214797288818596427727528909296718063545619277215741566459841636441352413660819523078382851794294150723441443792106395725795687818702317209478973651165087267981530453520457339354248824886581741447572580228960708835910476486638263245438182335828527895645742243105471441341452169119944612096792770598111471638836994749430436430094399893828754124395373312928905082069196267877860070206619315113321343312089850430145967054247392362236045244965643381996376034256533201818042165311258188655427224482395363770475004332104813699913876339057470190827967171708575364000265164866733633265601668275032411990043407174093963649010887766678436429452737445562219622455112853182687262126598566583095310451107155815093434472268089832456590031927809278638306377882899890217467805310272521450058193874207945687619896712259232080133483673995587638512872678090271927266931602091473609113163201598926903382254726992453793692768770502797953927996965129227874291508229242285862134530843933786229817637593676917669532871190350430499630627510684263799421283071229005804398459383232983682864570582772244461424373406061617312077556008963731660695076316027687498508891202190284961381564191620050508092720139417695560513111109841712632620047823557827298517655663531621464964401806951287334538902891850326902177321609525840600127751767314823395834063278277877086397816352686210851649912928974226780833601416708443555062129382067788698813143770787557493938006626838843766954118785312354585089719794551735068345353635039323709641854125078184838037497888529271536015148928344885281994674546382668078448148344652785172485025667884583254825414045919747744421682698490794510626694444494421320531200620212957962669345544425337686849277053808464494569507767188453729631169207440115779107925811774890985976411810063117500517172546749237419642927164599201285358759988123786468361206296904739782590050392074542737130919529173941247615532389166307314270803773517276724216580990717228517717725133358528763767396338851240935350665778710212176955332708765724846593000276210796323267102750261607757618351155043319438723237005960410371874535679098732926423872531985854458001011948407027461469028526576329610425448983096240158333333820634124141584173818832270183902093395464378006884072470204085294971423205877324836261210111105277422192530353304418248997568531082077510568111845053879173557818585247943076735896481382997908446673659749065102920703798159044702438620551292409496534197205674822160425896416498368207103079329443336446503161577940568714614950582996767969278944801266359354931191757288265132202283468508022828891360853710407034485596982532207736243701970534101865978603249732153032720658928339212900747343128414005227164680180758913010661979190728709338286608719156011805545429768349365435194461674747152859628583999275283615338857840585013422039446323341393389774271561145632184651628112083651966507502554867432287502773391958800891063435269663028120492633161839459877698850409894208149268705032421730128570674135106640038833273422851589699615894613683603144228386472050982528474883181721787602732334007775640640938316020811830606649999787187466700992814029821165533700755420973067294204378228486794231973134075422211819749468310898886525778344740141804311610794286049640861901735476672834436124088862933226571119257664706768828736973305057903755785847924534565314359232937555042376560131925638076144136679425905760114442227380790959493360742041767339917106771189920891432689054334957054515128231523097051630928450171990864947395503463689751409852382581194638448756993452732234731249429223673218915052287000500423114769139482165289063900659571467868215866667828537816936305316042179716997244748691002659289047361283667793535787197635487761416140004033850059164590987176395910527288029220741547108568485669635746254324949105495215585893837917966490880131435916261458947061376079370039186401822043252364687021878421234182101561465535268610108223601867045653142111111879641705183592353150140398327677430622920153806398657520723413806841797991751981312441767241442577366649026845657756657388796636436387633503374938324771498527453223648260691531337379081535586164789208181451094164552643866523968482249737630368446489396672736764949645220616007897567179080112747397683469995672552088673425949854769557741876769699428823616335003457807130663962688331152017611009121361338333953395942029482042755762432903986361232945816247347606758130204710781281951501557176710530322564074681315801396406583750594806436736861278261596095580627467583014206510448097950621625750348361430379509376877537142794055396876630577794305478020540457599306090137014541160715372686986364722037846697017496687244708051097325302399399398297457850609668488629172017640707718772087604353194184355157249649953497888144316323131018270660961451569875903003815468679933862102868212210689369695465384653017550409233364002819368546597767379596723623660276401900760888354298700483335387197110200690784732463343695707782768857831427662375868965254349319153637058557307197922366811123004085298998776511582183065319789294093025158889828409399873750901405874305435157032427850290225399681283381538597795440140567320844047937137730438784775397995867054662463750743350446665534060680203229399944958265186565219833006207902461437082384134012403558244068440028810620977398187299756805535904144949274420814119432432922702428779265750097953867857461703119412743939108801642625024217837958361482286013127838113575974289968648263370362492821799340672879544147314636285475495783617235874441262303323895792338558330505886627801303287687269708416209363429772887828567565540149839170225027653753842719603222717845143504780497027310881126564868043136007376573186196074711370667557386939248730133169998160085410196005234441663292321485828635565160973356746797606592106899962651788781802268487867975067023885132637833083575534432022333715891090157300155394935456201358361592010007490312706775899229911529208687795328546701965950870392954345088349560819274833202681597084099832949078248482071766465098066853716778807110699117614574714479091404434320265004018379642658551644351097578015561905873520449098699048418617017160869972871007381399823003997516847996684864863702453760489380982557352200477768748336630929343533206681821339708990248506664770590696093797159523104592021248885384201213366582041430794773296645707027022833572152798075958433382236912304295015550250634165076406727295628140886468414227151848350497326278013395246919345326769610544312411790182259659673673512785626498620750368799840611437563814435666420138213700183329237614643810572947484867678124427151771976465338618046964018927222838501788889044402437502501791564409427529451150183068892434477163574489548071755480719560232351216683450225008257711233376760236552321429073320042512686724633089079594908789438774284402818025770555883227905234402601249545459462588167899451384464007859052175857535583451652228884788579752446662826888699526730470009663995188497514367837077108175877176614253369577674757129819846063266527361319574457332100136342637103146304483726370550423737928636914745165356498156226169142717177795197930161674498100845343266800189526901391025355486341404955432697338907335329145615351492804042302039255857288253705945175486484322969567837453733844452243494572795998563526112856604415682029079098197738492145785283855298923023663071263756240360029650830660635944488795334966557438076306638844793417744902248496011247871249056694962706279030199033684453562291942125149850389210609249333848405423144676561789780559489274926053914671233336581608144868772766137422603110366643999368094683298076639492644334380928954230541105005862213309750954327952413991087368453082606035138148694061380063239467583564731298745362793234336572457497650853658778234735780270226175422319460333094396739330758889071892868556326583126477852611660982701969553270628855949694274321000616480552053341945615494907734706820325089325959191814827592654497220346862998357653273056242162410058680225076027179452351131616813131817690615018710972440210212967471216940093590261167345836416541479203767122751818210009329456360935884055465829166061206991225751150562493020554543624526587740469993036632860758813174623710137712554671746874398998258339545210474924615019531031749411532636580805608133812130683595401665278583204232370466944480778379352932034357201404622510310421072762514273882493519228438957078548945234615656076382907308401203369095211007669028499524036444250609158622539456027189506403887251186955179608138822469588996459672119188053713214584256658646451081725867876692930696607506774221752075406038540212068829400943263435359345025433991004955356078210777805285587437415834868768828169909676870931734127362117668876707412837928137463158572008390614182578430635309479306398043260148439787093843282392268272714595401991058730623278027195226623041178631236680268700198195062891499082715976546456252188753452308385373258058615014854237090155634513769087408756026471346636474534574136041215009183425455256712132050397038402778773258064896373270782702954724335101230696577009189683141245470758755269288492836632163832332184403501587962988995129796073614884231801722189153659290445115244741405608546400778075656338827928279243210257423154436683176197502029206682028252492313130578316218554506712492406853975889442125622451117284305177027127639751119034662246366303802086533980823395870993880216532140307543757162232617449443767916115118383476212986531471797312970951979843910859556316851999623458316991434493065920344409341628648675935835747318233552622672551808649675892073575993398728070485445550671462039858421516857574903863680839703298822789503229389467138499218273190477571364073307860643561974565580277358462450691385629869069428171116577295120360313261291787183730860760010663832912352145183578673982526590287845370249974674209286699350690107112695322396556664351363238666189271050244788526214294986401737705115283173069662990085725170977829612824462897313994208642016784378385299037968766436808416606205732426176057729567284234599911997571734375812054456315011120301759650428594208303458076233646396164459527248529333685946216202062214628733044040473048008871700620159143164919558542251115100433845465460123897069111473604761250347804821902981080143948940968901783406880142971668705903974169935413181276540200540372832611363187684842878551818902849300933427484196395465043829245268735619156721742368032513373260258602728354590601056519020750648254746834452348907755598701829687419305763455656566520875357061469603964662845832089027813463136040449320800731380027496400055586710740360149238907055138504477319219302147141759866459866225796553870330280591547141229109976398009798795463508127416670088971753597311119265400393817304324386424596265201973881052851519312307173369285621669650844313689829376281008055099030578941576487173230152148668443657007893643553690892595278665851429263493586900046612052352305356817630679072322250462348531060781978228098015262590354780048345757131459134594001270441455057591033374401481359049166286368070871320575770905979041962902433385859789201495321340781735584844671024133510188646494140714249319555053551838625582777976284131515542296001937488896342745214713502728903390217307454294575334675674742150538229801929161530447449886483254192626739024089717372131229149122417493875154100988541685281766493975307453196057928152280679693804054766665212196397589559574433261181376074778835349274909579002553706836185444304549129327753132620537020666258355177465556852246569874334058354295626892323088320211235297089101250731202261187933659773416479393429573415958336467671652837332027322837395910793870893677661773080355094294573810238953493888710851830090532403851007016007664148773102054102143197458560292557533383292253389078596642163217823964593815863418284306776354391443005822805434528144005316477163468064971626532930695020565108669364563824734665370627991181840078420091563920031831598444188609013383822444184248014318954492530649965290864498560704552951846783188605579874271446067894911855201141270555367310404017493532052688484031667221756211441677800913006036359117012384513511817944104982103501247370718313119694845332489381014654047472216110614042262197421582576008610883546881003776401492205900930306866560730007933700519269627265510946056421006431249487959843806417984628478490971057529427144168702797014562181031628937152103316161002341085548364396241497325673798469553331471690538865106738199518259645180547555098340971249159303269563503499828772197796139928256699808518946070955869970219711286789513923077137320907214841845907797018544401043353932616229133005524128250441162684942537819697551883708556495370414965669852518089553099596543813853550858278865721894824226826255461728095500083194989190261945757867124242696983402896541512615563232717148424478414430287354919108887323323480402003991646226295968967051029973222298957255742720621479432983414018512926285973870768306441733053694061227813377281770061964252522531466859803748027194986470519530700279050360778014351011577899399643424312929996402557632610251970857826889663450083424086462861426946187738498416200507823008231835986249855021572737030713285275923202615088272663721171664406928150616579363340173017602824924642694855408639411381433740155857236427038726406330076905556773173421461611687496145236844957760787185374960511616043474885734496384147020359085766217427109690180075817190429479423272072632852189233841819658119148695949312542382904439404068838843299939827629502331093990198977400805476533784746989630635217610858973491010303690586611884176789633129167887730926404658170332920787661195739780560713958880330926819517257449112970247373885936077509130689021097938757439100253048043447178719769701922692294638696796450652551648142501474021857724863770390003990840392204929239761153506542221233783860957948478378264216185335773705595081525495078604768824995062565713897931943276601308342171639759217508598726747736649351742725955809344908654922779274297506962753776307061903195749539934955533472634074417933955249724729175428388670040650280351004199901801497990629919973772552956839125427721688293331954058806138622590216884604765001159676515306454150794126667947519201279576770409769989452562181202778504837847529495264760046302602733387557271234639869364996617525710083262194333142028082973085296448072183207373035891726597168887846531132061508769141943556084288218744067480476724897560590503902896344494184975058726202906006051603514454966524590774712144480248910522731125000362645854973807947733423590199838497364805213383409187916578315328880074580896106659299843053516420489875543119513252237264702607957830231379423777168911053995348263262161943306817398685015732313324563417641688349167615365597323190718994814647512446593266219470537142132541179743123777273185556386986240382212210014300284155469624302575687081250904564806575686317227436197580634574244690729544876336480012148186100166752699024404094727496907590514373635362560857773251101621481873836390562669589088670786045626519101656565120162118463207954854395505047682851915155316589101288773449182192088555896100400255043931640190101610016515436802670475597846860527247742799932640628652902879091184190914532228559491928217483726443702997246481531772128282392705359067904002400198779169752693155426043492304412958457907575744176870831544693600924505572083845829990348863009065770655816377650262087633030565469859760253999781733547501810641646291784171026405368225385333817068441657517516891668735343979926930338137681409082815126776498923709271169803823928597477643802377706754934818293278621213010072829270689515542499131213210008354564707780254846662926114896771894588484752562513212943671218854444744843083887440043724516740978438345323418048592387331681887899723141576436978775937315314313276133295493926077445823063038366564366079612094524423706538072466388168780662339162337358461465180755788922527045166137960934817608198254284585315213164676098562307407015214724336572257079434623840832164528947790398743110283751337738113978125790244968633320261294893947257741373344085589389587291404640971998513778291644643845258734722227376714459181981207339103967447927676781737134702585028320658158251017637385103712937683623278084575453975939430354688066422901166315391436893571699522059035261619731873096776844125272271794996838462066329011404038845866636956202541323625873205273452924991963821702321867152921346373845838057299855928513833986799133862970965362248820450784489069964746242904172399771885663322862221725783998831949184117828546689520280976332972995379298936816150605554600886590644802926902654303639020668043200702519963247724875811831776163420078079001167003755296558355320749544297385979467623550808513176611995033727469383400781378233088998698673068160770347853330078088601186190211424768134736075378243620647127868180081156052467240766090165596515802615225601951847365276652358605562326272783473066531314322617359602571301864314975450445618398177729734080508543063837210999307553962439532241464807490805971688712058965133075249869272625702285526492886508242132614188700531771625229747844726366515576664185869955884801618523423662093031685617826182998996088217483452416773668716073066493948351829552403006521177373394644020589159342507478501633459842164419303097049157965083993128230102843723460251876492746215545523180972179472172296167391413137973210611214012127717867449816597639383384685287991592395885143086940258750261892821893976102267782071852337009759490062754572538688707375453671812473008029298737730849889524145509794165153761868908178903704049247777958871156862766892110366356890172490639958604308759438905305476250712881871017644196404370184854292577188511052540651010653833366035664310292791741373964418572749865340076277165009255127700365110298487461026620637073561386603631140499341360699797310338955194238201212644485920793483135721142611984874464276206391552208910669261476816155774800443339472918034386282308317696236131678018013854836687049839154674592229616760424307468709844875517135680227822728794915300008761598215617154067459104737144604755871298720293016148311396354361591109256621752965578862417680084818693012799300679294419131136986531424276655641417668252302304307000158425390907700137924792254131525441716974032641842827774213795096393124126260199515905054122623171370991797991511198752409120149667477017016869442175764446278673366452324555999788293509846744297748487774305517488129467277688827142342999182233361738030958335357615430352424125529752367702258136010550433195893629127983424121539996233634159471381745022071774364240136761813430808023364262615693623417998797620770348759852022504526887675292448046987299092760445276096842687337049360851355103200030751360777820727067577960751599014175075924199852188704354037026457615263560820665444884196373499556359996218072193892413037522605510670593542737681186027358103174226268232093589542672537327747509304628829332481969964756184136741151918965857838966050636133359873094949456044854972354908896019557030391319849436612342280428310135179567361293689311537062802956825958463400475677504995773696679613060710265284176857046876773901122110947244605955911872611015587135409060476107203796525027303813540467035622864648711494029635015125199250333982264342906368356265885246569620302720281125516844314885325150433026365908932390396215790684180075064219836949223380174597447539930262448055265348097086106377664693743624525352576338608937592889515356905985552620803773260417817296962173282762022268326843565058945691445591997094674695771485341183188289365720612581086684573672664651507989587201677987889103974589244245110413956953586120505292766744442046119869792995839975092450523091089816756105439587876416433074169786268490286259412730301197468379597516298747623246694727363091128480870147663972719568805265987868464298245172616536266959923555390037593864684018387242345806430544862170203240050339481725665539627411626998440496507747311734171553351281899792260563392910583215774498412762356198130047163347303406380994038395758121821216526723744067861622910444041378874581427547949277356905697661634251679164261132503425470151643759158315346606595071801337428893864527245364596692925070350871798809532995603265666277269639848312203889735994692011894255408655230619017164153991718591690101779421991085673597596703080266712877800056647189305628615044142609145163844499599371120134605159793855745584172733652756344494871490811936236213233506844046321823473532424485997510976441164036488576556596632688348347544072509353285739397407514248148992757416077756282502519311003235528178666996759626395880884252328781683716249170556474184423258840394561566935246218051836307839745215501895447621660254868930246482499030636023771790673647592563988728736543451999175672284931130398845798171706564027196538300219940862465077135405216708058660351528839575822310834967988894766756450140675854700955705253188305551740320141025712510845511815338373269863597699780078185784484582398263423596172178890135058041803989222048355961790441605677463333910488232244816134357369022602277447372767676112584833369218243776294819800742131505795126662886036376968030842434308064736425807561920947231734193795495414232335907517635517618029892436715759097790114459934576075931853760133694511096538461268097695640831161902009084913793440639399754437907532711408137315524344896823128465633847683149022094965649249977667909342858758099996868654744997394161433656758901207496931834967180946461082437195523746501291523196721846287149020803133993371416324639634171048117373176415864178066515742108428982888653247271204249679523958446977993746455478380516165170271474281963544034323764326627237989063490930397824129500345349226923394821505950397879207330305392823469703502897087759559407876093926805510721269187680632581026192508714629879147714052757847523028482878116773287420521493504115507993340262606691078558929751282298046497020982741952532598036736095085474267035160364940222257901763774169142405526720991948684011172266020470174227867289670640399384585560993725727471037832324877565029629541427014188444209860418061124815832412409421855391374926761311608997707289650287873706473497897541507696838629032668090387404866666636565589309717813431094168709496099246852815810848703537095245496064819870252545804428130316826325011066952542278223558859359706322750466587217142241169715630847398099217644137167371257195938587311235653215474217936134968303193073797962092436072331293787968269748816154218499210868562727804028336486647580130074122998721252245477298583490733393896046325758350290783132846914235256090465278482295843027742792302685512512061977671681002138211860066311662001799600602379699275258030978138253081909182033042150586601086868032744739000863045680260373120080032485557651966252276279648888520013998533365065945750623423199476331917626861272656492739013292091233306808524399717113612080643251887328380056637050088427356192033104397152756429018859904981239695978292216868995999127298920441415383539314120227236920942104658316391367122380356592294285422783682356042898466724695121155740720335925073527580467305390774952845225017902249405845986559301713907474590532353155189942749539524834033111182649088482623414816622593309017116845330339768484216057060713198372293476587604870088220043889015243686551607102242196518148569295701715779251294631420231998888895633882424502343874138750748957181626627749331054140004034499911726225779923828081244115951375612372538046184588891861031408373761711696634957017613296595313062092717350260206946240797867677491012485685765974654062924640809425137966419399951514201579907486690394753276862293601542025043533409677736939261051956404675057680899465456227635389253503278786277562843975650079282355883784627522947078713102628154895330586988160923924685662438736050248292507630040182896437927477763940573019451062027364591162428072426345236010749017677518157049471469839477969851054076218930305239199809950779319536920427194457638820571875485190023612722329777137668072106247629298949440386485191789459600241567238813461452165167357536269152595907530808333496828766438028175126259448982332959862464848751028816623574246979752764333002605200826220457942306628920136348961908222719928686013664761142520145318571731942382273116112910223600362564798897044871904084449234577690621942508029745693059342416355434936585361896684515261353560151376020138780657306849699422499033010659096617069557712654031073790401284534150195553801176943634908717878271642983395029986720455647356938833954753356575355934994718182144843942157156694308578228955373028933835208689933024329923899440679501095027988109130273287435120753981873005268724240477456459171527803085753420426819183290351444333465679264785771316663299311063541513602796664530001550547513403135840042312982869173223152825871720891812925789207859929175905405410793012704831594699008100588925334251452784271015465685735860798475781698241376381588143679046462931250685566739667951807174634086114867968141324660905944882680801415475045533463386164258228524350432617398379789744740536356179025273009741232180331781952703206790627359396436751772877744058958701714058589079822823685901454224438659563529528295592736417260580753098608598510345111084066213751973411611708320301665670345022179610970969731556823415174956553535084800285794742783862279161642738098150697687042797911047899075324244469780342274241685759031012128665267595571945183013439786521515631559541357392566532742185175654146411590537962891560878326989639687125795999144348413979292981245464263802003894320639324896903798836828708023618483740180184255322025473047348663829343714123960812616497101330842242453108464587612553565059531357987008216279729451172955695043324207029577557425308715722853434091319756433306557711713251864500183858198860743266631021978452996173324559311463016556594697643838702208538225323708341425095198620023714264452763703354325811534586267558247170626951049897066698184258142802626195313401662389663725398549745595338628339065990085290072155583664831020997442529375259069865196452288164258403595460537783210574820986574559227500605081654188387227818074243958517165028088247877617871666100287466097676652683451507962461408098987785574990422632816540402627262941408068438315783641570676991771709878789850112971925907496524310086810005836628463758511178607913844251837120578572611002671939246804195050695916116400310892819052440049806245302885571179977402508252278654890549551457823525678215324874215877282778906219527638081581257681625937961766452346284778645378644865883285944370301971176972924554186182407892989656132693728947563073730441863219923968961956006458085568931155860325869086087847560091553504365396913499844322618992232701510698715134836430149920820763652110200259841032059589418338532153754835157288097277861773351556009161253351792033088640449965905848019723876576791825279386833822632508028374086809869017937153650105936396157693250486946755820216568116474942979022027002893693502398583457658588128219734191445333423621055486054032087849487098859278253969566595804776535746206626203116873673428718298248019678972119934549475163611794147393259191087594048841491189348434870346140700259104611335792615169618316844318967701425999654185456870193478781525720850204898610368279239150070592566314351764339064816446695245881675922051031590073698577148863659259746260569352958565656261274093215456086993928931030110451186426960399721776879804122238044304450228329518881547574840416184016366503229535237547945716541469538111306498303932730166933793715907806404202933786623067022743840441326916978363851525121919561894971565053539414658669257495208479977242877831495260960486443644093132800592598649307746434471256246549433063490072605719374514403630551427485173711982855769897798973756544781834136003249553025087448741047870141518639491963346083836212899325171508400426656555529489099055874983244222220133212922770152803536519759752841300545091467096268807844528101933529653914639507271407679983776604528995979648515069167711271239294232810265418762377603701555593532953714777200516327352743410967548881925840831870182544375682225566233809039504475626461821649095779167917518787982950997658033826209546254756956611454678918704182111889104700657352238919037330148975078093839883923772700479845852809807522960399436645558134636325944565714690352247740909958938044833464893346492139925626353193880509805073609164917662934184992660208245017716617200896205038553651640391452123463456973381039079513786407069440473764011228600671267446816214273921180319273936715522429492823563176858165191680844032388773618051868685660375892112701798254281168541914571008558000212828994868893773157079611655644818878767577605391744652090021583195995452441212397648232987937789702609944777449382847758397589961834078396643471031624144804646795629159546360403709909154343964487324006222921335239135859682777735033820110880830717170882384124351090950520870396080975993760108673467647858301222438364832894007340205874096704046477459915398040974575822816659057410312548259528266846962285353755766974362653131228719224249099091416536595560329710586821029942616010496003085061642244932657681812167974566478484624200104346185034072492852209217889322881842613837007530862783191102369382631199944861954752001203330067727704774522424854775356721991191051270326144403796682320823872767722219859481655637032788455017913980212576907192995217996210711990252740910433678808871389307613548841086719009027114779590197815184429615593388481830653950941535290643186351303755946803222368305245064586281593980583448370359437790303465128045724874012971605708256295891336447359858627140135566472279464399995077078909992327515207754807236287659944440492217909186101037074068312288328180657146525692591856248943171242549556050751254118648421378738487567643470968221339404639387210446805659868629855192116785490332779260072602800692317442156376463868487691650523139066784499361838770601202356306827804874959453404837139906296081806881363305282730046175347827597323897339069137421927079469027559890414066553854878180521120449776290566509590468479635472220748437050950699942964664750146651805475902799493128631790902158672807446375807768563957470888291013776699381093220292597817930009967991962997564078845433930917523172618906159892183548377719234253233587545609140259922725059144888478999920885394623312578941354253446276185854636833008923120632862408378308878168886009931388948269204953921154889884419718579386141044170355501720311856204011794209701984898644129643121093575480680483070616342868232339324473849417842979883313697464906746555737387813074322536824953671572010405722815981235113620809429387226806948725755830391708611395656008047862527160972775144337036814718898547692380470054883714985900560260247653405208839458978790887434521040389109090973380215090115923349924267070793816690988705769103245398493895943247810749451985587496009985469034347386683290572089418887251215027167189318915605809131084485548648806242589824560031888288010793284519762936109359538391169350219805627394697677539261489624602907887511897932461463247386867261522118701837149236568010836563870108152441519812105221869832132528865725710063017645420744167086957936989872330754951220401349122807649745604432930027405374723232659247433177075420344732560814407982185872547657597791044599126078059358160443150543721973483604766881858943739052014678231202119996105333948339347916272822915760528520029390281185994137265546700483916676003383562330576266820601125746668320551923469752750462059230384416111736261803169442021778749781032510493174381505653468483055166911305499047471981278046854992462183827975084746130760348681994739709965607713230299719082269884986975440075927322481157660126834981699725767201235741353277634547751431704723380635789471817176700142566701313770681521708458267848600735120624651329954106830971757199145763655616015375843905809053966837741360982270654674145689206202644868817525379022290178533478529628083399835339149780967913068593429866665851208988933661337447846027827652221239682898990120036344398516183575469233569261070314713406447601561509753249972052407763225765195636038825122846182867586464040527811262162446095323743811558861594472986745939771892934885108007268476487273564942403704260319769521355502720209568541644761528025140138289660172820179298027969764118221990944689976116356715742715976225729075619097924388509339592536597085061445376535786824347577639563547175007153399751817017081576178456198397951690081952449228528434079566688765207226825612523721565609545022871244828200592084969693315135336038409108758840032896012785283101687434271882054542400589542469259586773012966407552313900920612900804586443757326012007979891134412044486772902153052136707696268974795379819146618276443660560953385102053059752944753283855882681193506148537321530419116018883387242667805250075326327512138399937989941096420167170923278439424704221004066971224200279519485905665569649253178805130451849355379331108392839414671810599114332426354190646847178363896261583217622850053430409701604524406380125178816037799176982504723878466922468124221070231799567820910805401550463384500732496523590059309298995212210233450849942378370260394099137366624080783071493282774467370526176881135085062015480091337903422133112035015448390789115301523239244974159694343247811790925601828660967978562617634880257932233378928351753424114753962483525019061101529588540211088865964014619534527060654386792920442097718029586833146993862152046595632903391984571801777012476584566402484444975077553637727618961711962950500003699597842661796498729815407246026735969233073998694648333449145641175445903790277128119195652058541555251277986765064957628026527975506124535631230469431576507848509118762252064379237502877714506766226339705691019507130466020144713126988698021150688149009617053163793123258948099026888978404977553959936335649036227894746339560602755179253210517059112051730079697510429596686722540131326701630358854466409738549424411650113217950806967776208238606741626741411443974685326443765717046347253415677765345706171671739176525884570114905823957959696049355083582812639012620723857267829484671026575822537471989132834871506786436552043667306126490442832587935272182901735887151679006830002429065938147742015405248526456599728775633856923799916823760730140143489420956687440288537169227244013993776514858894989919210363275946750550224335015640930586013440289081230613641715251080233078632975696745508208081259934621356436925246712574036478167791975074839031113276433764300567627556489980559003609203998356715903392215936874676591900707490257644613820716918143846524009037049444827800801961096067491735688419045461442021713279249691217534997165174058105275702223454497453290331383538853994727452355375079541760971821709184604261869135697737070835163317376154746620092173116566742458666126144336531575769068023388042053522600629379414041508916686075969037081111298553814060904733142187577459454405262670293445056001477659434048445344287453923500672478066927643215178944271526362173327056968436090924093531991412145306318772142041756139829142918054509716478508059327827632056023542323303763343620286990868325165504255557572340140929909040726673487635635500765206513641062065299846336154071564047917784496554708079226690750090892474716368218164781696750692298020343256021864400105370483368108988606999918936512697376036945621948947581540974099397665053151755207322325436806864618405735857385406900756696048137182046728225549511617583564401100956364437606085525810675044995504725465397113759072892369195340389747246346335020104488494869360212522923607628731922030106107509839646235494505655234561252420770331228429395597311985473769806648806026022899328034173332095223076287370528047717937104078326222376388838526150723393050690856000436769747004009187213753398385156774394743163333352199729511722681991087073167325578535442423296249849901892608753153227404411241679865366852121069534714881969963063933646152551923754316853695338553389780748223339813682157135787127285054232566996725086277686262087872087793397671615767033384269079384420537296974759588401282765083923473257619216291391894787960405169671397978555956832322964576614284040207347201011103575344648728062777082625324303792502016070364499007231835384822760195659375577863535915037373245738911404664043067194626579693691529220853195223717365155331856761552469184821617506499928717324812101897222065439350768206127075845071666146014015157538883262706724278989494351281959169010938101260884708897238415479761690996228275891664503526142073991263147787481672010642270536753500781163269749036945036342775072977718312121837958892928815911913476203731457822231081987082964040274106276055532787099639448698327179264316742587617612460808906833768568486360405669816272179933651669744004371706879710548299188046460017933447659057322589308279719457707012359381785067689153947645806932231408279745758866668957311762896723366245041069442869313677708853419271439185825053233614123431490689094683634058013510014853456312335786739750959489163121233410956531775789767844063285675844137142707941532835801617033049451499887593887574169561498961382941235302956601644130217867632272278087983001356746014045839219631799721806344118108346421216601637165234479811096663840322144766880032597042270412675445197483197522847358306660637207159686841283587783036154796781805306724293763461225691709683619434343202035668098607078016333145557252358280519719489629931202656745139192259524189948547874764779473110272343642375518729727900960283460351853290395756293453793369430107865497057960961675137380573765284015464271730513287094362912931062798886898665511825583214653858775821651879979291776289783060699759807979759141138380923181649921526941118503349271733965649665971820668982380137717279847624181413209086898946181684022914676395032016764103071522400752596520444944413673900527915360347255909764772574486902699718783698635351442852936310285819125200352516132213973041133437044791261929755557520456390779777185865610330848359827658127465397010255104829531798875682030311232429395714601237268396554436708933470014052139645460704983936724049026823179958189977506296074480563253784157471009156147963302591698462772444796804332215534956815618004563801979655278437197669383011076044534071522378555340171590414834892941360904261707876800000999240061877202065105635277357704782032340030965767599117781041258794020160250761994085313765949759557168701966894370349018601420897753433586154129350994409425403966129701299962939651227678071810145737554928745540299795145675886854183068208253771469510344915428859441077168495212992612044893909905884665867810770022590397575222816389042074319111534120606887795100135744513826223756066862590347142637954836666508549498147204194565825975740151992455344601926655861416674570454947237592466353752615130276648876227793996483650241312293481635901061808768127994874750855511384464577017898723388523505192639503225498516332845796547301622060735894922935599859842651268898224560349613340422551532258134370247808788202825286551779507231773801118511306962081218143757902396285311829503043671251558056743190408262960476753409350616585125517072836880425916086466311498238312606842513881534818187119388965182594022072366768241301527379198956466114968953827774094111216365641682654868607924724063896049887927730616099841417983493634358704098614644211492420504925713959149129231170245144853921392501238514616319037129452123857077200258174687747333398181559747953058354601167576209636246752733289911018344796581690320802651244450956711221813387200234534909762142389521478363963960950239852236751053498306994481548717631755938526599691679475131543066283106162390495851747946437638428087785479291990797615746007852456921827870032878549682792822196600495558735255494304421396775419175481533820238511138229899232214919172020377236195542575537677420908618345185750653523515356081597466168683700259573211818954616337535017344822484572695245608485061173099097307897678276123973349394331707933967822709419646810755888781371794991172213306532687249618128040169553176311194876234278224485479096863518430735109588192307090764404327682459626317167847568347724003747236501263496028272297147454700801968180014086472136329011795731033357713720442628271867159695508448588912956431335842319757086708729918508645180776049039232542041080945372103476348477205523578698051455301550608064302877290771907788553426797244011869127878623151567881921309996563941233560841923621921313067092124183876651045691690751876335380479321910969385923032931580208920036276296445743072561494605755319497435381182530456155583119634313024913966465809990828622803893078313580536004249708523317719700992973198828774607893871339907156522100207585909730611962726472209901310666950275439820075059617243236662366951919307640651608355898270519593701409834077998214594387134521616814010636140051874778745985783338017729111547324809653149063403596347381123474252118336186521079405754837287541854767822851977219405056466887483708429211626853305233108033388779889098588588044112748758917101621377324875109389618065073571723690540151025304788134060529255888821336021633954272657695645136106324138531044592738885456889830343894418070552298970024190218329607395738347708829497325722584512864041101542618787968483789960630417515310304970745794645564546514666557704261618637134215046258325439186993009908463042389054732264124270097843312693978759793320422316889828139205903822977231238062673066385382751457628344923988373439593449230211248991884404678711253309774893078304558744885896786489332817408427715521466281576762387631488408228262114028581093284257291585006731301777430486672435383804294694405163735632197508625475728737198400374937727248735679746164382331486688224876884616777685300111934351785186926270873526826173145472316019475856993762695296448751293748028299442864909866688371013735276844147713540976058601345989080492362031966095190180667522553307115722425037465735424582052981687802813836821746778286783332813624377856755288442819437604222664213885356613739299538124139554777919483115752558106153036259041234389498348685490827391621346615737424103866173004602388724264742846180916227685008413785223778208385638121075338385019822149184706264439287859423989772916531648632528154427369423073696208843693121414961964226836454099980519527999865783493749351473446415438698029243210938375595384377570722688610491210060521731498310367337122582950084239751041363388389532700784695726193347065619033106471728569579405697668610540034870157928204058671472656510377337639847838297355467819904465864950483525440942750702867483358480475266392242364209348178541504877426773119626661745420064142648569892410422159391867150770460009400903604283512651085180319307261853343679680319281462723457233896037184433971996438244121128644308506327964856346898329961569520592399756749611618112484805867043770746391973929137255897396907655431652566425039786898056033255287152481309255260227999279975865961558233824802089641601150946944025798833855441132470439118435747082961673609129051736679269952404112170104512547644906942485907998000524889847045815832663141981255189624386931745447650533466993852434120321628783909915026189533406436930254640269048879189998295785085483053058174462845935892468354282586418703739638373792963950100485854966278234047489614692973243205937048989414407769986292164370689400305086819370586769124054123616109479454171479728727725025875731123322404606540044594806613063566748711265505508784612655595508217463289727502776273964235584797685265867353752348975820304432270813495616366077580171663479997430032627371634211590912677641738456346739133839154560543909600283124460889262775207353688926512943130327677010091163278569501146864225877696833161459790302962760992391224148125386946883856411390880978486672081574331486256119785887654865631451794099036870287252060347997376728847028856854594584081432349867252377923208832636420478113702910899515592489328134604663282805978351780480197571522014715893804864166948429718654878999885355965209126676633010566412370224993169532130801201411374444157880176758080505481865753663143110779070697923980999420909632269704590249944753600363186722865851913567544560247341007185543231378666953187629297617178483951730743226419804646978652866948378077885818761541054951044771310642946688632444370882679389579830097027885520282351369413378375344595501680221079865429222184258613892077517364666746298790848158992188254684068692603166445337424835051940933464999713160199274600337099161559114900795868835066819833927099030677495797231721534282400925743271795951999052642850662501609218932936571443896812361409463726815412501522474349630396776678927354413818654687140929656930567062508918285069934150380158753664647263013244948869601238417867937347635962578747812838953358358963145070118758532378222057643415092101643392100408543631906857543536070088312179920265893097206218609644680616141091525112471422631045105397070977003762153321853074168780574733373245746153886036102267477900404264358291801239895133644905742002562441824738133036067238115468432085128259982737098976364816142926029214145339801429051471464021206683812585512833844036054303443660017181070491878556191279489628570609717956668551218866622493748031657206984670533951831745975588865293532599537951837309985553121159030336354740067444458667638711976393854775919650799438669312953048511364349142360282435913981138435953071603780217760741893900518318576204322948044081705196168305677974283648276537370611199865518484871284812465862635297377820902542102375547378235944177272948755694978585990567693767628330367864189463567505886403283005422969494093482308302921582037940349526656684760297035481667578554913103891237607563265925070849348929535201171334335147102932840711002308497660928778506713444140687139046485126231517720828679425439202796666068304102364138454802638339713528404825466400639267884317235685861777832387089606127739267971096614391787572210056912641104804528205056636302817558636173498448581697924221162614625220940171723081996573852731282431335837347213757371542991486004704272773908976101394119784929527516324484959238623377889951933286374690097453830446605053361745503329745765830459882416491079267863413805221553431812537253458339338038166889712167731397841965460839048521407470240761232633427001548699751821890125457057448348953911300818900956810776735882041100020642348369183275525769785773174458089943060217387459875926630313287520509452086255296910574506483047876073267815319390550053038967080156374594102375750240336310106706323604982023261802209499382840044305852545796243758057131319130593803294903537317386666341972711783322188849013140381664852837866954542758814372347851110712311684601185972867165612975682028194872910808652489755029276082694403476896446523514465469942288158437075957036397016670027382283373317003527926402637347441028900445489539016044150709553463527723244946228706844670124158739901020335236024102414026681950008772099133806144890266779612277983195319726754613554453224397881890460773638850325968238830400844393231490891827002690151732093228150042975402439853619551389606145171189790060475453475078723011985329001820346292726216466707412872499504961675216929377549304077715215816968600607925630628665205165519241190160101265623911463669957543151744194067892449205376901908242061517699059612556922781061146825103665798511746381105159647984423196994048178903492565195371504000309191387015381623998916554438622241159308714412089671113839811106157756633925799573840862936094327129271084345493284317849876121133615987882212024502980517092400761381259886139852655234056362583239458691338795108464240101973373691174548596644090638046931183814423813244426814478840574487545641545386443130112354484674353990584262713013313586902535772997577160279924962884432615572346220131599126445985238825055396942361918458647007946856093741660912704969677295679949473598847772400360398019300388912237957816681379491492853390721651970962289645481301526907453337196369707965731275046950616467455932613227808754259169799259654065726520782324344842681999370876717556446798510540288373645454041056500251761760696574375804950603600577695640100096925265237202741988089683263128136243686416924974318278521231981649239386081729825418928528855246739480415173734285353627590498230658865901474238064469742631506732511042871773878472271195105138846632829896548484625462904416571233244004447709827401322796951755916291571256778296425929481668905983521940087238298443719444510109387774565306640018354443932718024672279821800379635948538354695472302897019816195783818615795667033987169043549817243451772635257800435312878853955719359904397849926248470161924588440864974112491736497579509233717407473486170726516651369542593525671827673761576667389999452000732702318327768546844909336740087536564173149849662840387862870258753386115112378791490236732156843246098208098143178284662834812229343786028986640855210680966383453396226209991418437828779540352849320192282746739060007515640878897225644717710555642975843298665285281702396517351539201527017193263500124090858777138124369227518639929882318880693300614332925881017633624381290584157080956293488660590902648402869163830269102054235802250454680951064816494166811075043937336871018364706746275241325009391946895721227231844950863226536759197377167451215703750848680496759038142634201628794362107990610040642439848189748994169501955540913006957035946462801255623324654127863518223926066949611967414598082011839587291918549627289314749207242351018614401166405732876498750209941936394999107070735761935322936742746339326326809546825641723748562578138978423942495977272088032236243848984837974000893717065938607546998988492303954315741688381171261524698051596636917337662213223545624444990509448440182385801174314313428985696260495460796573937100759969800760870016124913352890371548585282662138373434860924923713301322527568175540258052707423703382024860038939677761820034801369935745069632705985773461442121217013134452347916736485222749578169432396593217979826884831253070497160671528014162760832325673974262668884719247723657891064333817473642012557412378384921793441399479662533119927415888938731563078140800853115607493121146098781954082268309674016335739526990993630113875002247829051669882813306028362325972424077157446087515360167294982508514745760563806823760505951028579233101234850856509379516704233312036751992797374873391426602630513721442814563622606453259222218174250426767751785093638796820326508499443472378706967282671116214292760482509182055355364953434997817030606804701732628550096563283680697565837809085448012081902857705966005880760795369434843255130807792674416501213344478091071976818225446395163470935150772994614574759556963062824339130289825758773792747060676586011547174706445940795128093613992489388158366770571977623876326668008076999450467872975117315865558812645243928586294986653004000321093942597660909405287389968510529044594261046149220324588558629547666724362496929725366642838279753735036920493796340612441780399202921493582030114510393925471759650058911245721763252693896893227840581122281369120230345972181878964844884550330717550928519146073403954962555949964843090316499479424929143719018888716684349802452260448731871558593920914528178128223472838716390180203185253609521246843889581027084915759429925067098680798046918217358440412562904986636223886565663549312956841400579369453188497762537787087249701442612758265064622096704295004022469814957135359275985648402266312967193136158089803754529790843786342668351976027072218150035863740324305936724048855917330049978284094401284962181521012822429446780465202709249195169315237260988682686757738583035499539878896605993866170173647150984355473010043664221760873617638096038051947881456903571021984949937071557384693502634366748822893254802989139655721166410046297848981042294908475814222873843585339750715474890597125634461416642044202064343153808994377548244666070201644182493573098910717429895009238544103152522281936500833179946029531216901205163283424391482229662299374719764064893906401326550322392923403464910094900932176300887784823506052490012485565830066472226145179934602755237219491026993406603912881939514040177790354128577444055566630427047540364906204137337417834292649171851248148779130985355166606806826141360225432267638296721017245331618623300055132557247593100438922021555069991759814829501017786637307064011736958403878231492085538898170108104404745201406014693455561732834468449888371489763478613728243701001756469800463896201802870611010966009080141168040234271617365939790356957740189884816645531594798121487042701917162051672686675880921261932941714275097660050866078785928462436624248247284567257640290501218902078775014809593099180456954134980756428182744292751460756403231500433199019501967499531413792877083556397056212873730112980924874518437520082513960625425976001021851879066331606955970879647820311224745841868229941483890524783021667680059135966667009462489917584741600041758994759099103423688972010379218667630724926829811579990246788836839755379548330663426773105192767542271879273164628944612302436954492475487908905519851847917452173654821722369522340306930402226883465831309099923889391157156350381815390052585869854175469990006119318950904501060285370370203145692407899395637477287481713382145591948567009193369530663991091493244849485828233235467373244038553313110912261999917738680253293864509151342293121723546298810008162586318130253326556480006451419527370188530385698506311252381891497595550547785821003709420183086018689043951392903402327047504089757257274394487593530927734027367313530488034834105449963536849299643171552443542075970045613252073805893781825133300603501612818883702888062970282427717095652943415574086815875976338984037751851714255247968271442578350177413248178084303074573073503544925358636763453949122162407489391241811211042252687992011337880827322043296569102025624557318270263302372819639730175458392144758961239286920196332375454930016578303438962597217652520946533790105314669020454841168763496546618942113713219718134292520270672430600309913099030486672389010726027413150657828423799144638597537465585409632525510434509527416639614890821710578608557954938936117012220584975540059825137782272683537246492240154709389311605025600728994655526554315080998705898845207174802960369901409044453173666583595171996854607521194799528992826093680562226590108116119755528053072656229675900521467053517624793053852221349768225138239570231298110112081823449939505299090506333265128621571102019427711059524085719154967026811805412838950203518638889866300486674276321830390952104075224070583115088906751129018607637903773651714518157049587969973060980113702374878747346733176814498345097545659677900179790159997577106106087910174916904145460273123132872987386336536547641533691262342288034429777574521154971872085643625248598184007037300378889499605640719765853682883110159574757334235784900309196951875200331628002165623300228029849971693801796311957086871413904274371023470749595622500584661876370375801997473992710049564320453972194020230022729179562691352555328155712765182789112123799612864011727349880912421842360304067235651478047157785294953671071933953723705347601649582734056533776165803684651578147564290279831481731699376367806153697359950752118117058064659195146320085499781391410552005437007788530107762307527640609783744137657297667975921124051129017503078795394711756469258623441995288985920120386214102047000045901136899865938084217508595413482522547148101946812304121557138996532030900227190527015870956744937539415323707218427061163962661906647220422266797386627947130987451730887719499384182538813169819418592815111539389694874449955938029168552435366040080808139303076836370019901633657843424212927065089843993060620502105725677764415158523221828187338961208001177746251996509617948352043923500891982496064745210507336416939377867861235603643425056882076241389178203390357814830524374655410501311544957764091690136190518729008624326484652694677995630334093711433291948242023756142769403188365533921934286584287366876168195955355775448247012697555702254234467421331958571205035139465539733865102381704378898822681913793898039738991790812562545841976661306668518274042429036943517485454615277730017153002903029853005095531995832484780927712032046301650258847796148490172581175263911117188962421986493022481853194489891532583745812331721592094070583997494577636825884378844418101819625676883922946657377200423302380678774731251346294127378027984190878727097693312279255629727033667967536389239151499687921016214878959926372741224827304920287091501015588933289308011361037907105860028951476464689243106681090541479221567434660216337211670641559631500325646873179229216446803546442195585887231650457315415384911073738404243403958818928395034606792471225393452921159836698862428756362511959524867114308149330559882947546059059301573928506867986122844623553260093581952796874398138403715850344472913469418358966527629926051240062703430000261443564396807506004558689580647249219509341285788180520889224654244514965824702742719911640905174819006278387095986188004898104183902115885574944384635329793152747196434447345771448651236351655883942739946259834806174181683509010728165660899099048766054377775145545901405678067693396568179210717494459308046488727338982859996230885146914372704310691354615200592825656255379636344571602280318136031921771436727959306141924811859582294315538830069271354567226266042826808981886713670774162354453887123088975690226932509355114319761037536733026643104421474904386490549606632480975832417189070549089123616193082158022596043874465228586955554515848700439673482578353394236859419042260337017237851207635628474255467824997767595033915883535249597673613102582066499070634346466990916770077704051820737300324715019896120925706346146149356891805195477445501511932550172965988639688657946175487887489499174608650346587510102332328359145498908886713286780024208807329496303683951922352685480375192467599844245362259620204674759446064020844400047699603928000233528862153945832468499777032521597496384622124938329027702117554988958519155885944798825151538954487194182966834815598107203446368931916075821211912729905811376085012151144989158341602586094955362829533159036951934423338211661413233095940062034700277198788293538010677815728412738567479419974493675458981059753145586947612265757490240094432166011538817029177971197966471430584189840063236145019217636991884096589469194669448227446919910361844946385548875279863962671847717759707004078993838663232389712289803801517045894902632278337023406409391878924655242136183836834451955652487808163356215172134962149759944075882437575427283140123322660826058234726375954318977236191812319601980135700682660758311695079853001308915031734248158975109092338255283967122483634094777041798845145768108659183488331666492922483684794671655392837250874136899070183750035223991345198862323229010775253024260985969175339948357404282254535570509376974184364212696020816120578587588749181252573840153099764726247634300828630167876733266233673427479352323351266027377299995895242804157827026899898801437200370433223438608390515209311066459051794020931195053959613562744042143364138498660481838851710252181636678589532784607257000889112386069056588889905444122947175921802444860638723735827951062987050207173435817341887551096408140759112519524140891164830939639330028852949531614152554268530999744029896637835051937017950885295734724413891152290809466442828452423333825038880647723950370100555550843643456455555587428820980345572602209872807238142556069752030072341599729583694769589242300759673349724960836611883565200835609101578767669916970815291771835172645569082284459499810300875510058420080792784747122081919150570581230259254191446426640039706503794320529451881615738134360011846582501101149799250648406656655427456329226511413008620559566332925856384083645655464831272933328584955733678426438506680153986206854987944114298665747177615660115357657045344703729684726373241646687284060614775921576558173228900835625294507171637618396175643113927907754346660686476662417153041726457146884088068845170215419729276428643893190369119221705199715181679757619270234423357433414220404460266627029129983069637459952706366427534967502705874789531669954945574297061977335020670950042835656064313854335094679146873643805760319374997603974720406739153509010452096179368412061865137569799591683243509909508129396952510233462201324830999695902438261956251274843235305652143755565048469584471801629638262309553124826982778093279463766519775971207613602940844781859120166553706369284520275427894910502141193470581396634669825882626970279744368398671741347756123050306388586033682166915035697396199407442330166098220361250579957467870367359403303272332587864888069566867517985060512948231112362640427286795295704554799756485827196863685003362128668466791564637116942581001450921699931486228779754120701273681359281124139825089901933845290340552922660661455045359615339960954395125420276666113985389333712563604313084039677515798090729783086034753845042789839982873407931883652483803096365225544760316045634868422865426567199506172983976961674652910462937932964312408427954719309090771977490318891410701076264747381881202613895442518987823396418084218538722832842370009490572491910023572835874114422763654782032371258123959360336674260187571819615659453674241807434182164509489194943003125649285437350108817710495178533048488783935484601152223727268676026911765718009492505282574904536693762008073439341005016978613220523091638324044140796423567560478892219721687767265738837117593202518768916153907961159986190409213032603178561048892979219684056790410854669853231085991528085466781019990762252963703523752645898408896075191639771141356076781661884195403188855617642096862844574690556166466427778280776364164545745480577130266943429508019234694726071867381174663388173415432522791781622138505734556591239106667175784308050770432319055662030278595255927127123308235745559771466067345733546700260548769778377407303973768157782379131076688358601705949851657198874015740463042378621015085511508176634087266541141556240449350618058049765774839762443370251634600080254051881722061999704185545861957673479145794987633944095188116514903375635450039691212612693374997921863235770017637429480688581752622611295463522506292480657081018187488221203004846581493739958305578998798289187853225885606149482611965279621822925225320022548915703270668458716723379358058362418246521964287471004403895454389618031327010906471620847259943799082686235778943006563375523544938958604548591450533096966945031440618848192158790643965422479062217604956699427550651658865728019721217139350729385870219567602602214453773295134993273084727387343052149495302142367033390097465409241605319230237101824077925530866811948673533322977044474455473455328139283198336178578233310112058925219491235801809174176183799775382396243898120416384468814371009432273473419164042600724390941956577637964038176019733460076555916507540951256020109523176462313640401671357765985520775171428716767904759565303625316667226202131757173069622007598290403580628434069190201203425927682511997380526643888875609969827545600622085490100880725222016312462848912129472646419200135899635664808726390302437310066178206564774749457962904040114255038882552654717375098308447762187334482611837442987509768260496017416198819081211504996362429722430322963955958599306329561829014820123837375712297923885974373521037006827243083691474629939202037502987846449472271459876549705227226830495163348078226164734131458982074257477260757490474026979119323797179662103231341012853285292354127019135505999589717636294591012691971575005036416879204628546127020245321420045334863065413980438991003575032155371017891693726948260390069748265337857572821403264881775874063805071311866929654193354031340953695143266910648472683555196560179136496640895253912987057888997038826703598741408730799565091951717743620757612464276291724402150412731679465158613930437694185145195421353346407020654377953562402169071601784326743776722078990654875623948615411951447260351603236875528486035115245383595028662289802665005070914251102298991226547628520506338973410122813963791080006666096436665147478310907298694231158246279445322938536341040649427799779406656584218488403130350711208186103982630560473600942712944878386884561590672316625195285637034867356218046317621977346356811451146019933424595462340136117404385778142033934875000400290760125311588282421902853801090485200210055130413268677794626187923311601083478173990666787560313330919701153686061476619081400878493399626075278105380351462722896671456963840827856185966118793036656727247264281908277610679743870259733174308261487478093729639079637527994792254692554346088035241258824592695141015636612358592889030821847350431939144470311626653579558797028901420086067907695093020563475498934614370325980559679023118707438869000368492311198101514004454238250187957629805841323756183690409414764188340135499229268288138866907189602208831326149737139116691570936324894973658717251773883645902906390793055177802045379546098049215123549093116762678922748237918900033240274232509850727207416748293683331093393388405054256550777324010195878545028113266374457516857111882507749128234034812195884544728982449632065729584219201036870824136973694495481985337395180655095735205513442782186223123469636904023268007977514153607022579462343318070469384748451300856355164343000733492166626739104604107306222891540363068334976200666654045837701471577196124251046881065471458992850091813235664826836919708061885576978317871164835627938376337261406717741146846485209522419261637669829219487241165717558318710763442606620994448485082806083081176124193253075532477654092341891203523601128065830430011383146383534807166461635300694512241388071536340689492003015315847448037053786450573850692175789025657945859818029199276719752712547464758422096082080785375214856885701352395536955196577828396700157744560786125492910256735816777239119988413276675770871116486546800374050026690816457473438617655573259554732525367321420174962397243725188822389422778153777338273026322317916303960116134861602189072995521643165245327323560367613376870815391245730132982248263136898242538983029390601637483876387965559634794803422561637690430921549418072676299882366067985894726489551609948096012978231605344912578420098928308905269453055133273809268315159556981625314098356730608739740147203607438794774972190162521485749447020078765986066703729213432645861498975585813946758286860719703633034514581121401501269430964503404295238693486852179376937033030802332457095420454324931481337519041503418974594358107200138526253636483304704158907121182690872612049346030186722694993222599344808364668909668313091239039186250696916251372566846933366467335627084296356769303811146887745403376478092834470242440351284951102666988325592189065398577451537488367758231415615805056809372304768339273160123044223109511578414770919161314109561503541836562509918237593516955572240535667824017392294845290417421619604188801993935940111947211475761314335537556506962130065109064252344180852296823988864652873769674319833622137005811870361320353975821965810644750634448242123733841353930974151277726670638562399351593265006257295608411612764011995248661294114106765343529635299836080550045779610041498444178616385936589735007880037713289638980657459978422023168403798076058646055418236147945408503837800207180990002961833630347558077926640384189628687195875259431233331414214268875148464008394195000958631399139260169992002614368608142254871827828841578023755546951456882638637987356632544241430879659135862449001255797791022979864853835085576368510217729549654005462925599711325472707040906740503724549338894122663744954213410405661816784438404144726202175182820170524669383867860497768276258674105386276791573989128944328604502957365280159845601080862298950159163892077594285914075767440574722604296753098654174884324476575530312247240729173655982727180624392957727550279291057267179631062580129180995342836766730075763662159426179137429273376949861814530358986178568524531360577724456348935000978061827306238738613264294087975533947269069074778525311980397943775554283463084372562601776998187948325492947838371441639018594024791114111361770965530336882867814819900460317685954992759203685944857274473298854021968644575588117823713459514089660297714448850201022124588147713629215822943495600628239892489960290130349177102587006933833757256142743603241728275234841772154118597510349505903774035599765051111697884049709377273583979363669540362817850583546622432290276007704640945793695908421698855411667198433306203295520002503802536237768669614876786581946519697707676567139430570781063588594121678457304612903154651816826696782219975130215161322029578377270936656632566316556252950173533021698443257586428589529148252820784340866186168055287739304844334638198277568125456528000369527870743483407914171305835260124632900933149933076577488939340702878772667505288150810129832843675676599452931141349307796157897471902276925465580083276159476612370231005695980549560070830988154150870546293866427682681975782124750220201218251293124800752590718741575709448720367173519072130381739659455059596616436360003730483707697350572509236842706417519227038845163732869057245652856965405129084351059427030537553873503893194997852240748277484376357708283918310713686012342808445133182127801131264412316608414343256394087145877155726784657050769456997974053693711988140026691108933520571007518924115244544912991664315319403372991652490340489432273295734565091770432898528440297045535467634655343017603505877574571747392865703526110132216549057955662842832692405914729945027606146309411290070327233873225515550802331056868860675933596989306770120021135902738603155745328103888539037876304788013829290649613077317642279642833739508160655437530999725497262518829669837934893985462107327542486487496301805164454923835860913298698719651093029049499889582473468135045048657725233214349685752098520005312718139706326776850483077451467199483002715164037081788201485350502154622273510748278236933995300084945406797929917917419511481154612438231697812560548044132553869934025891656698754985281753489539615131943342303090701603888320172911892415149341507046550627084890766983261807041366713800184632749671112251395061000164817182239176608805767705138153746891976617569133770553211281352152164283547520883212510101989715288725532460882597965718402975540557585179807407593972017817906942646152980356172998669208769382088718902634997561592442936276128178513808029989156246089809589856970139388917213058772868472993039237324753160038417056933312759222510536537124420325181672275259224485013299888227474833403625026686931124097982088559907956635340410616611828024692180263874992567933091775582617246674014239088413323661701928136089024609081696047524908399160410844533188002790515682507838836477521220627822977484163318062575075457721874010378143415687979341275636045662800056194400760113899088181265946980985460946396719141204250224825438892194238204338212426995597289625653370266861874233777012431923674955159303825109577413597259785120519464176801459056108729498748562947728408265588050056269898805443565665379046080258998727617218718143094397142494239347296974418199390087986058062012766109714891470228052849205691177395084894479827444005768026915536739635487346999565247264154319768766069856698985448650133973480584944211504028623473728706351786232388989594978876002268270100244206672306021745264427012993626277295625601138410797384380742056489787780037092506158321372476290220247500422687552000213735437235479366862338358946269029174610904971950857483236203478504531312973148720192956296472229462340366401354328675301453906768104612823066865200085503965740132690135273342286700482151513021145576727918156109974602234898646492586425646474568042330572652824982069333600404925601506624771743109833934742573740532495006915992789741818190000379434902036997976852898681208771994052361454419133386341745430613621134473820864097047483850287552086987073984398139785254200674705346098392302719698152275568804984698207833483180594565389110453820876976109168987569457624411597774946478111414779510625003807931807905431793710863413726310191068175566396362179799391176233014373499671900164000523664906485846822535258037875160115840974842679107337993655373250835006663861503960776973885640437284451278354037956753665953148767523484071432582904348720548230690692515519331961665591653197346946245252117949821469882688564303519713503502678197875985599617719841598811599326468436608419934618086518285299147817676997645612246486176376722370819448282179145853339566990039676837024054693839525503747274582547804877301015131713969341628393841490707651339722208828477145825188758721119891165717352030013088237443592558593643789579493746194011937631180446632116233598892335690705061265418465130356300180978297571547798620664822162217602816035770119933523160314909951016194384902058326612894158992315790606888415965922129874927064629247245683581587147420052065542579142275370730685378743450610469683643783579037233985666572265649340739533558811397273238112135322621349148684790748275029590054962318847978246643739116951428508412156483349823090429900045241380344713969902407089899102200147493750441963341331896745909201162459447305682223508816965075938439872108907803846364801372088383230902633660001598567408797573095229099832973260859027261261881575609532008059327642546255851868748304845741764543308188612484876244076968521704462269170336993620852991697381250179677227932498422939967798739695152073525633011372100429909626717572013314975130388277011764619318012699527546877241715866259093179691925986579455058519794738602258575259412763940575911918812239658158700143566154488415999158608605451097537887288078651663491305995567723175914253840138678420294390304864028927861089910272315457516613574778208652849952924983810091190742183866780997418878786272280553295932886171821908769562174851130490937968247407844472035933352565131135930611057229676547385078136992834854937395743371560288977317866406698819791227731170796284805230175356431569901232176243853592614316281236854803335327502519514799385340218708392197065418334325047622436963890266700855982809870724985054061689004270699272513298789516307395331530689665771252019791013786966878000975687225570202880433641332321266758136617697301325223195857382712067017528151588222231472685413277630218045037378553172204703503415612045071967706771816346538732972504898106004846980510304943748766151655012853978360319895310845287709366006710712800330171388476039110065607772251543913119285386398384675690533987119713215498390357156198957080034712556276028391933389243697622231046877146158531115846041393567819615548362568076605465028531989373724263765715148428127198611342235654631670296509754473035839617497852856325651649354274402599054766549919074397219629216642953153532996398458774297940720247798467098446813977446565478268687224742819804039362101649088796929287784722940265898824322187285866291210644296860447017185132460208606295694408827920788266827065378859513231708104785282819045107939283506177077397228995460103340449046613733574311174646734214509102792876096912583845770078533575999136856250249991550025710140787651178613504602868306092209308245671159220642236116050507203206879984511864063165383226264084186949909372293523532554963171157007429643426769428685927027816423992364559304275163369214505099413925632832020291542821268772744130389486270988532181051113112499684891133018855554734748929857865029632062058111175131308981357886558285383924311363836442110411433468491657085919164031309232358040831749065375323297915349426573823870237336602747972087446390632607220552792458195572784293407555715200855566614584583157243379726064594872995038928167254802946767387967622792058147071350810683183977436607486844735961596636645531646113148718102238426138340018494387631876287332138263110631067458619340402413228430400386256032926701972335712385036721906492193669355958522730660490143139120941032673834001250347360093645650045712060979215981646891732667364178132425228412705865321483267475353301285777698565326336787630279174561966738098935584145125287886592353132891858097490437914402802272243549951144203910143710481577474594570726312101556943571719486098138985618326732210187769395105357746896388421737228376174825147541063397660073364100463336812095035236144860684813500797873232593902668688154967951547368273164781397583204006868500034981040788915787900555235649380969547138063259847594664266910616186219597011744080600058778732369966637091885273099709318524244416819128011490923638136304058487082612101803311204398264528937319735316872038921870422378753544781744898506107766902531757485108478984817021317243275384207676012543507152069216731447970130574311081870156724979785891050068263042909799051041753961614067103467881135083205295640010169035150075835264296527203534051992004982076575466529080620311418905913084345767731450937655145525430646232939232657599288827442231069545133524544107596310759988274922671650615906407247132049263374929111763982136120033745198168413704201963225383463611361975923294046555317605057368439285870617281061534754113497071564284679919836844587513536840175881803396404772227579912767208250728436843414466122131347662339270859841018565428214924433211098699932012845431930069996105001411404960299208372660610928172687424480718421747057331466489650662788760106577135968765742855565069720673544140680824084278567463590046965194899318342527151217976414937336432600953272023424553213798916306374663342919023338008839605379651149225374568165047064473631467071197692063458227297468153115228671107733373621125893222009332186997509798192494208711527511382129143534232106594141011418411399550215674550671549784369856096488150492746062323622031514571528355189369104373700655479961660585391513359953954440195183658274908174633479698733218028326643102162248052795474364493440673123155918066307206375852094765830891168323770513032484256727628069122689387367437688567808269673534964131864890635478643279262525365074846977840868163001225788366463435183364465915579383015262040767306873346912330342821668890621248048173736740846063769262460923190317286857374565236650828632109273492206983206634930252233606947009557309336278791964140261143672248387444118352827088234945113082039871615606325431413675239336248708087015317500975712538375745827393801648168132265278458661309814119257008491655378865535250683888530067162418293901009094541139504168687709288186256825847004336912664036344861426233554705239991892334653617138368440753680399290490022843007670030282430160799074345700533871507652617513014569293245463908170575439942293104259442771466208491406526167592443751167893814522265817637036203148004547307221979271326508319400635971233852743416015877513412706198435289599204272607427352836994501080088961476802587951442522771538669882619443982526249621837477293931643271315300041296221986045382376929739919672181863022415039649492143101629917824173572871619738361079344154427755660305153648332019547680283925365658461606581345400927149320887082689012026623395629188265568979138682515544696981192012665264589971758444186878521575474272703602589937425134273617812793107941511735297332752771624507576492617590084353908959470762629144357734200048065940191031679173324340644906237470707010347387032448504791245139669327656377149222502940273866873033042473209205156985852439977780279963128014567583510310071906001011784911230751814935754844893870538152930433795781888514194056824250283653955853344915106642868341853750696048753851553372037271988775787872776194585703081034207154435880119717637858658788893834678995769726711972820328055749968494052885640359889291025457087551594968929676705004876902211599491387969331718617662361630756217510814799284878227710246681214942342430543737487975574433137696762704689351235795071070668365776789144152407419922378645836757597967176037893694550670151844258223020767417675136993152349516467379496532313479892832798023622453287222063407709985434557781074714745875544888993781755183446183602167276523295152753769475189159984726698171796682039965979614634024735003284659132740923876954051311283345128010621987976988273385105024480573835563218756251217510022921971491846973622257616247292537329184951974661265184177864313096364509730303490271355672903132675347792455245635389061567428021455979092942912254741014733440613226320267887804665396809290197021730197498475583717600143774154772700548581973639950820427992122811447553335303371277790496601200491506648719862367200446560343418669294818998642115010605754584807808520987866486996766479411877460834488336605504641412176055188277656782650706197508866581028792897987742729214563585534965997010288868340450016652783819715288474125043736002291875344191848911916802732615855587149470060924555848722058458304473367182634834113114649068544919798141192658494370508737372678663461293224999137763444897838762572601254079226874396507307442695318336333285091695131621828167627205395023198905919134306003784933921391266661432610632348955055005115651765155530729191270844594535001139416225900908979726642710341498383668335006833902596575363004225238254931780574512302504784428925871919382377589443196254239577290164042777021015678669053404497566669492051093653352762323808470790028388667415562880393054031791140999937627069953235713711555276250945106621998192220857862875205039663483711376842539934821719511166745765434801326676069078749790344705586180099738618630383891621330691871374734848427919616818103285026956691549374264506266007956624757922030995777935402109297890643066820748412282149914271698665847726176434301070339649503212084130808593850702684303028217677618972898932765239654665740553177778096437178430517297686075323495305288067824703476444971881667511156471154535956318780846283643210543829146232366568351584030100016431916825629509070053932360181429488941810085370544317535152967462762223674425060039775675478036719573846627524949487220096819412608368944329315267488722265392060642760738910066913522217568779882523135262900689141009135129130532693121354800893333450358519414990352529325543811743029744575606836753343615873928057029204759996868294563129979731586462989364391884796415912905138630675401690421072454271664687538484646477801934099092833754189848917960492840005652051160688838790796177719779387736518051412606125986154339284446134759487432595892149250608174610071756062725927584781514921560200368873528993837697955951623957584533191569242368641314108993582674210435912681851023527703513223143602928581550275070769062273809665465523822376867653217964092799683449387979640117524402271002890147194421695146746460535005682891522964403792739398059008342559340048923206397590796720044710787315227859355522640845361146652357855939313140414249807890052968613012693658337674299896887497047419311812148394268167929337096984689667636861254043061485655708472956985189269896054976036723573756083876384006949729109750531670981490899070749387822482475188178621783277256444891061996515628412941709441164028871725193098746203396196221188051135604402737635406522376533406703905018071211356379147459995100638219084426483280253960631490101803416741718471210438590484026403113668723308504924838905618158474431417814193945633319253964386579996127550925875409373013013550030588725418092766495174883250596888791542337820321858153970186011148580614753218815171382929450803133163049996847010327828295621339245719995221685155061332515892788240629168778088863085340519601021091909413746516615637490877913932347311032634756677648300169314282835566662869785152739442527628600777654024814126446647349337914171230687353628840214824624911465623952719145260383200993066223751630733355310216211529010608113568747977249878828348421493976974686369139337912850612363457354491440648452511763312108138565701164358957521573198836906342527332194099656757335257368334178585105714700810446651709860820329823522193132132790241673724102293846559632830809805437809162197059605634840425352791965700570733704785449366420004785373506417736750065655266424561278256831484222619669232100109431754530927068327068221259499590752553050470468037302537162663619302815234132123948122821610513950330694687131290287223928222703941789556353813059779983433554717812770134343538688504445677005110281807922472977560611773707552425864765439042542138282122737430365469365965455851010721963204247488006862600391440448858454255414858919887780445090644195085800435720312083358407413890285540835185290802697883453719922620104695021886543652488509425492428226645252636884738354777185029066553784272792771060393248479728855604733866818447689146187265476888969865004911172199680979910029101867531529790289833119056304058751791675370860225891477185476356101056570829355313398237400393691991065049825053367032918534883112287406469860958224123020496277267354404315992684306237894636138723308729428916096604639734736458876474711318659893797421043811619837315691750655618198004578811636135706503600883447754373707758592809909955680816211240445212382326182024915095429781831468619217360487336149298525730778015366266147824283915708477005382728591492667533193698235381978284351233058983139688361563694905656166608519429771379608202724516006596533196889559992577318881493653221025030451436644789281568301748340776656083183300051325582192729101388718474730525017816795457999826594788776617417552538264756375219437618122179400558295110738454028997776365502556574848637583182813324693219134799514809984530597145166176389156483682313125897186552134250923263746256433139805677420375858056943604972464954355469663754395115365527864166062654780959982081066082925159464888993074918483814704171964798816867503301211195487150524174748049462934227503708887244029014917832347720929854782954738160246246674700351322754170857756050531615828911441192238395518509090192068416007696029589036728371339867616133691980229766299775108367676685314180837771098638194690312829924678919722080781619206737311075869418103215495491753330932249551349470244802883675590371990150650508204160601206070731250431274275608266301069366888314594572555771071297797687209741034907204707084051119574250672965091105537032196950294842077878949647345946174055346565019446180553424190356111971093874274773058359833948146468611624766767876916164459859382171367994424469306631996782369296492350254381157292036830035388454929301635632137435314935877558844657872337745490251301841932683169672302341182540406168480368683028711364826057856089668727372580315916465870467336168949096563722352158810856368004586442099941586090568438026390129986009052313676190658241734238742749579115025881349088975761059879433865971890279288635993317655740214106575065735830094681635028362558134230340776342886021801321667628479855811305707566577116181779071185544742012612132614695775382278545821753721300655826836701126713764330891147460280766000095691010248792972037793034391715699988185256397757570156699723341484025864173531523587945671587011261223272134290078320643858108514200012101442055633991336843954392320815906986841837247154045956316222524557774416899938386327109308571323483133987754104443216086337597432967889493461483896806541994564959291096962505121314311302800834525007062162587492587107900385219564936367768111262066232237459325908448463190281751168109414531503081021876138247477207840765191171994627306279159604245382124178267752953802163657579812832044438297870902370154007002709634244292719488474294388614865836151134697555203426637029600619967314082431206343848007335028335691812263347682138892159434445389318063247289310635867403399855312063201972687285147125754921602016691307203999849190567281291421476322081831698480607877277903288602040179549437815345021396178203721271361171791132711897287008033890767990920892986545679328087067473711443792279397970047498239323638645419969148130858023011054471516066296982126319968068057468435384056283337780317419521407880051839191736412294239095592659955949212601000948653857953445990035814844751960711300723918096093988787312812950563913485153112740142901685073071168773930476988628346004630122881961969234836007048510008812071263327391810444200403443653839193032525156262629436796812210637375575603606231017275612955709074525331534433035479303337138642375826728195611586051098032251941417147736071974195121170838339738980495050883457956567386381724677085356861356268107320013831360139645703260175496348745228515465522835408178696822042060499079619057141210394244314973983696880673933801246471918630079838809782268624750714952064259635355337298719857443696884836156028758613010441809954034887925016790938458445623959479194616091466891724371080287126015300744445830080538306572554434104031831581659639838147751105896639454824397834488375942329478803833446812343366300796990410325172968286507773974814991088042043317895986354421650595284088006933993078345791562301379711239017042555024541697728182148105371694697607592703086811855094609371861240562306242311643636017058085942402800565849439351845522641179538342759070161935201759480291664288970030829457144604507823356095654183935571757189351294106510440092859554267033726206354765454238001072695289461699000244731600510832894792252644418948579508075401173767607445419968283704669412291664937301295802597110538034767093094608936712365705169044607780044376630921180633502438602389248006574059430757238478750605329349712203011999255339396545082670878675912754602667052852249874404920663248441891888554068224713168083498852713711000101235576756935268026276365260857288025328416567674997600488956404524039868369337273610240052331791122458480162053767936894735785288918507615366624561657416622003073597730489259379530439373148248650873916294036801002519048001370322013422809127577871040450652223984899387663122873908239002502671757461968922195879539604638921783286103913402927041639763666191926044023010672327492430712276927544787425040819132591142349410961084258099774631597635770553780430216324638967849741220092506432546334647500808570902547897356982885271517032100510086278115082220660390834375141051052446055830547058170515873260741460540349502163897738098771454826048664156913788125437657142175834041493017462499592585969092587337774604086544712975350699499692688206992713887927225452948048492458492811391164967295929053296162955520322154011854828679915101994592646989977247112950002305769889900037796710700215349488662982966994911026242926683163904482505598905146322445716536920313753135500587342185356771622891042787406228396044015786330375137155717590975226346664580680776815830836958113112880360036579630803516649341618161490636779566858006759860048201226018890357742906102973814850685648095471151619224955062731059684419027178612241523796747424257882832036061543434378248212458749268139699494379602721845745583081608609190184820181118974594792156697144078644504395916940451662657478846288773044564225904866728659532595180627398459137312321952836635267154404990065695101330588181768132528757586384249085896662889266060515790387440001335685270758512490625613267297810268735463440923446271366941140695893401777434548383323555761437226555244586845141069667028264552427531559232923189774783907643141597278339464678395591520424071295987884386509443941183595637787652785020124754687747445509965212000290979026757722259190113380531911500021601661031539172562018903618590293710070612697097670455185135873509422670480058731780881751582719175461467346521955877564134613311727782244751205948552318087606996649739363670188298278694237131709198312572141882739684214939977496309353849453617607767302963131608006595288759079615393853745955480902212524127002711704748910828096448771807300594807270496107500688805193617774920132341721723289978879799243983289684961027601758286310566879567816556055070011489048796506912609105207997449575450750038685182977683261449447636465695687534597823319770458457186156207330253607475148118452579047539576143619002463128561293891592270091031303959745063882994045384838532162869769708867512189874825349709922720739188771063136957159825829250672566226377242242240061043852806230609342453142428846783794493994253649932336498826436369325067384641941398481631365256799966295126359144896280828849499857615572692458284801772320877585408810922128987600461334470032960921168334591617264180245901452136310783407413419630843362764506193088661503558672651201042404541861026775515300016699580693533934397051159221298684025436865152729903160275372261749405301662736080768694784273348652212132976538529438331195119422263879553240165474267046934527538415825426588253325704981268279481283333295909927125556530645784835195880428456400536363108892479732067157366011522395227466947401161638183385846713062337025708174510013048556208345878866203139201057902581283957823758948402562038692878815540549745402484754888560356414535395473531623910703439937882312564695046636204762670217440731719181426946355261973782415285277169346452216792360586312636258588349430216862595632794822595123433251472560492936100032714629213656695238990446699740913372915338337731899780688948851230122477058543223969053575695488390419931342362657561206572270413869726523988272370788535071442851745114535257687750669959113592453163858124899544306930371362943759763093169784830180990190231716772271597544354592975495536810811956382845747185993845722783202307364511432575326032227633148827082636575762832945377710935229753710045538523323743048858601690575245133331364232233480850186076493468856993343783759389062008779030620858197759205628942865778755154555881525050479118524292881422818629216013692191413591365676864137098265550198075111745878017478065882840608604767011125942770472658402235964920212654289957851801782761070656999081660008285286823293427175892418716157715394306244588577098245313584921745487044323241448414086118062336749071882511877013588254730462472938763056763011695712650561105875075024858702947625038194277343661627239775064721007199161532396406735585426005535878364257203793098996355096316143329576965271641926514848624440546502124005507409700030846181136615968519476974276412213013321478411033432774430589379089526667496727401564094332953323526579979223105689289363880644638333551791497896483638487469306470825869207265365126536570058821534833220848511513285928710939518391772361644670048048089258283631009183286804604655954739965296639704952496850129157639780632816266320571985978192016983939490805985776449451499073057065559058749384261866077100559279613594480386233086329027775600857003042686778880852978725263730310026588708471118331795523112336718813593674275058320508565452541914411312907192277058304779295838141405282613195274141360136685152719221052073937661518847088251566661920791629722127556104885874543527698486424851323354273344605204270594676484605114723183907779214906256714410607946019516939586853489584119946487036730685737691912277500501158825407313641491547169530486284515768084644336718679837904296357652287359465658434948587732464947643984577065588809657302771243258380874216981691389738260778165346664989693116069858154466465545412288388570977665212855707066172317107137516018950322141736012312357699419502463360531809940224416641628163676143622644120563099986418064373019571874263768937405403514397138120741578958086041274513682608043027788926444855223635844385708314981401395272918185548794367076474466341559006545196563214464222697946127432014381445448527497346820357128337984597987519011109090344321768615056555454434109276630660930624420463535023247977222013414997517091172765965170378774896725368441714179209374568137029163210109712932821312539951167517354929615793882595981828143130062061265147170305197372873136175074270824373897715318037515521922769590233651054147613153379594673965316624490235187599916437663698454825447814218757986870625320443565006372823014233405791956969013097238013167962599850598921557342193540353707015486626516924835009250881692304385862518144501859978233631121111890432072815856491693863392355245675297906823871053533285568586161060283507348274257269768670538223171741463890508246847147868828491183019089891092717352124157189622209777407600292582984343255979665817587583456097426402597873493749389782540194909780611147371166097283157409050668805531942847951712385560485148473198257039431763349356766835058032831559901682156815811775466180308686312292333085720576937994346635517989226603968480970947407988323030358949056402043292492520635045327268080427656787355054262795349664607600913003708620599049021133107740620856697645115777910449158067711000302292097669451892214249650898926124310142162737885497644364642238228004360831848594358856044873066929282395584161659770189906606695438166659978772313523461500489371346347213650951782860007051765489541695660025970027448434236817532699702172201726125213399948218418534706957312739309746359076457332570593397997782998314772911677127739410501062259626181128560161503729178877138591473461698939016969076232240545343344015290530801115444117221934415100579759146203323021681582445086427643163896712489695733745918368528667046588396612005999534383893298418456617643021205887430899461546663854879103162667738919721065931657632710271252081481663969029019273202681972573279623767848982569702947267254166084068686851785925010175756043029594435923378747097453686873065035154860403562518312921900423139526495224104860045354780308301677069957010288182872398263323189134592084749914596693546410231224670147909155506694143342742002975648311289896154917076813749702273247384832494367605499310379430011911504614047424626138821177759344529171447280108816755100663689103553790142300919067161753875537621272931111369094961848800975455186634539117204709530293022648057233227680721091318159054408368803197116135615655611516612073358842988283480674352371531381227376345137668733240650728207621386186612385384146542279661401790387421875808278451217881371837423247044063365206113128218433131627469493683376069764332427227004980448608408362720393472018778934006002748198861482953802946808249982981740667503050373272740216472446283229993293091584598025067880719066343032840576403256335619982264615504328832593749117084156206457141660269196025914124859583879269384458620386281875615162554391298518575207774141976355017650845599843411955223949941780897063450355179058765766138067994171257018784627923914694620734411074356542857142949855065947469697838131747895059521827335184150769819071272455103198679752996969038915833677783490104298568940080066172169470675377281245224672443833220460218916166208319650621248328861815640316400786572746463833318028601773459714654814417011627901482122172849733198417261995841679268317328395138225288509017309018104690284809545932363573296386426453820594054061733224250520311913397927080423768909745198692753807337718144460146521117185047224186380701629614117514253229161735821048939617432692136589778431925307773280325965873408702137247056628466903883554180392543082798510548042688345984127952948434752641576948284642470585183594349130567714321242850872974495402600340441425474105757220103257504269187205675299347531904484255648195828224205011499263125315766363820300634863993783171846674922936680194449813628538917530712764789183485685562042917838941831069413277006752327578752937249870902752231872279968851152584053290759290318605382294497713629224539467623574070669991300576776785859770384673229474653595237335828159915365668604345783914241368162017781690644784691287635591515115018091071436417547380311524411872312058892444027583190579682997372091971839678069565101693429438138635808458296959883584784829047045728858464216917510871843656639023899827750153416281475637959831646768891044832621541580105693255638705121980799917119682470170211700088009789088050482751210570402942926647298849443582714977883660681591385529873986564594585553380112864444375985174032635697878861617408326353719515082399841834584459658075190155967655668616525104542401082157237689522998096719102127361144459884973926896227269455509998083352032135695605945470023949268624410329077533214628618324096739213577369540116228201611927569498633083950193802767370554035927690637177629643678217593852298735895014854577278343948808427260114414805791750263158265668914175174742560268382465208142105452527550999379122026590071779726082135298737672221011946933081035543469604040564363230158964629805980405818019076011617867073740222202951135402962141226100553857426278584090204254757484315944879369047497732543028122964445966528111161888587533973019685268199022644595456700480608673408057939635318371237242234089537072901472802519015020025152869822885084312035383641528626846743370851678458096782902596159408134250163052548229256367736291538420465710227674967595248815599698438210305391215166995192930258877809827061984324106460535138039489495718896555231700905567775601351531102182677186250590522071297683018028478458794205952131947547502999016753256353907695062292122935609440097497626989186401079168729925422667274509385086833560013374232502774610508534554385462585654286538170520640498198723221101181711957930349225506825855780566025717085233215958978313886502741229376157528640806523891194098759071037664851475228214266644875901928109220216177832411941748006882315940527511650411296669538207969428011477645719159851426484548001005926185484365766843522466392949844213327626342120173235941741584953394639326455353865587304264229290324926249719010542122691049705472357076278676884027334587148996231289680432004456404984418225115776281242241603288893986682448578085088618817474503719894802450903041668061795030055243877852212458817185196154740921668164583465143085767345274517774973991435376436889775532343712343538555407193241648047197804478462415978058493590697364353401073896247269533803841618283442784773346001452071608556965723051157485855527549957045919254141163307448247170948189643368406133397949776431188379650896577917711216146904133192511593517445428699592898103192254063674561163077059000887443150652880438539848434273211074043317594573135068486415857966757451224864215261867714618715379332913079134245044817648884036393484893570945501593262906806695701559884899389527163420752908603393738079134704977165437642020338585825764421804136013574427535323707938352456666537057067963095561191900174042940962941707567861194139832089735768946253495149926009802135802063866245580228931790815777541998575723530143991290849161758306474377124132833759421794280359261674001840758388982051542565340430059731194178140185480293905596431949162554763950672460668590969908147417549225229371589448364372166454757575068243749472831408858423091559368697464549760313421165222574420044905766329517426138673952878172403760284976609266463618623998954356613303036505915605141599988107521212885017124661300048778194258918998008687109182922800971013440772921201654747689872935221215981238776633173630659828675318353471777068136346540792278180755215623013546460086030147019585968977006128867706179455132761787210854553090161651812663733073700903649806393933633929337254182354263900129837414741584239282899728984908770713749899619881450877162708569994131226491362322766605509318560499940731038295339631662362231257035831103158961118507446245675781152633391709979724329621753847292442070483227915049053280419779305651342554721799118121391189574557175159553396793529432811456322929044671879758265985612627071764580959340355609399340783492447706592680422739316429117385312906797788646392812518512475817939547793783705656669420850141788147928281941767168520666045957463395339091461037194252561280357021142977783548383816277732320222786483282583586265295540902942547806568056779732553008961113846406571130876108686982920084228188028484789525152683814941569836197513839344556078331657574079474963224147089199037481327854763708483617273348281037909414470771989901457492349376696941257471863238807982710724019574698632396140908824288370328454432954181130571923854879395769282740953547151382568832849502256443928726009377774653221769772810387582242838039358648819411337625695254627831650448171133777603641672390650197432310136491224367133271047856634628821028649499937131473961420136718494924210623298184667825464136712424139677204268735114533022579915122805525210449116121717363583453492252620087408236162323678665743110071233096949307719830653027795861919691826700032066756783368247944497438772031506863759988099392467962035651197124123781963669759706592307923028707218884247849832653340765269225760948844062926342606343814118798508587541964321261980508139291603860120892903977361072288546335887723404544405842374389917511981753398247050796275084646364627447766890421078358128099958141493213830046520085011559526764522474125457804623237588814846145977983055421302337192316783072182754128707501014253816335826358061504251331741247780240107830933383972993877415543857629232273204563413490429477514971404557915590163922974877895823225868480915744909879514261303981311935813574739164234377929242082877153645727180464580537501637176560819215115181979460506653022253574866560270565952585942553277699124594844694245028776245541080950672804909598121380198251396263128101369441315195299990518420783255467531049975146338667532509074501250641204863764722468186947435928421426051353841709226846703172011872777804447385518957513023743785286413716381602153864112039524308519231323663932412773988323598798499920591998284390514339614580883965742958065649523670549716011474414732846851521447573121866893258531166781101651629762407618613068666629040503838855847007707111911326907216441119512968429205189761989866232075841611331126386638310990276573793356173318853179524801890358093274560041303201703061162561194484263701563816063302401941514558146603048250618473667359622576314001068742579971765409532742230852553327755175632834312204335653226428133466939908413211544184060863528675617736816804236308682238820627466074363114581781940302928790422761172857400774721476283504763995196610492868374233544924726511643844613853323405779211831420865044535196775751997376904029825605802935315442018916605893376249059810871306852398917573971891125602254285204366029555824460502433633025797515270522740610101503679934755629189731356505629000130103566364314571923027468277553578486840001169484311375151866525087058145551524751906845171297086297837657293162371021482420342525803282296288124405348822689235019603939683153666902786205588768838995254068129880550321766508354779357951822785915484754919077593420796358591969577899612434103293371321733158279115329499803952800765569655444125721505523475083641890773471885755129266878768392044125285750884737543785084055178228278482307702028706933769505269338264810567551556493720370095443895314066253694783533161126523345476041796977223303912702250906790904408261775024883334739071528587968646368925518169467052849195790367778349740666530018787332659659506585595057066251024216839773447521678095533205965942440226755149086832249474237511818470533208965107039537159713698038210783781366565031928041682135246205066995962794192234660208652936313376482388118124249125834258360963938711795601785441671817896263503780206786452578378706118885840519280110998395389621350418973732751418055818352450951828272035692010792597425386577378416434173017769813180173531216211138303530503362309923790923110903974208015013524054341078490274126976641561491201515627936041566126452695990568789927356199939296830727472968445149657497525358197752931776721797514313197914577118964665332465734197880487581267491275668553843276823131221745910089661563775270171660359740164262268405568038880076385833717126446805907944956175248694361743343030005797148692579428750114483812688951895099525884838733002588003692908722912298473368372467924468201062540307270237824424982882641322020276559718631908115814258923680835270480399536843761125916939532978276722311474279169520084538244833600906953775938213491349577370154234683399980637167463289776021202931690177499398841573799303141709859869887954684122681923756992946622746106359873209491028988448279751990364749283975763350519767793217606859148457456606023455879378038551026538677823052716158892001224967239256950885483067380191062771196645086594053931374992362009194488072838211567151464893674977199667098498729771452014334785734944420730271661181609475748485760318503042286917456161184170352740904264917636445032910718580830999155860213071110473107058471157132642068513092155017016099874656861181251346451650787200086784058520253215427861209642179110330162627829739411537711510054372441935465605520215811849877705288724684235934143144794036210514673855941635128489550477108084490025951350055608565833830187499968258008673835799723831898411356144532815294409332059445678766113325574757333389822174995769333713160382469555963289868271972850138778016497787029465494666239639454032847658305435615960167093484876708265655047123401023964879260381368777962686035875327220239899930593601365331215941197551085784084910849936878400693688665651307447435915116259468379036549801973921322227569185425898094682547975358431305760811483101831574166478821208469988577108155093037979874096325244898141749361372696998418957011729516263240713467242534040902489757758196675023530972201219641898508884922332040040390232511986672884908666511413775529836647794362333139267627123547588132451011177643345465686065715901201031550724514082571541264214225118328010623599268341197318497565195203714125387944936001217631090317032230567708222388367997039899027428107230089997124089451912445222735339347555675313949276174565296205999343567016450189843557983304469774910523716569945066601927829506857630418123127213716104820659949176971314339091731979389302958094648248709777538823468374944943137042557765841371276550090442248004463178241366622662261113121491108842863335541332678454920961087352719717299923628506503097603467494156301815019241144013955730094605071925783745298876402357385115483996034516272526567923551288406350993273814127239709938496252600718468447690067513116969891736346791871135025284233237644274071747727849545827044685030217189550965341437921025244452716994004155101638404813749337981297572674331930056393574460741480422523016888071482966066663919519114183414149401623490943473972679251823397054967713002946446750238377447400544299372823392476681175195009346324331644596615020084637187995784377964172251508118750109158262090620758059197848792057937212302344803321063687118373792366320366917779030661561691957405394758566755290581978500534588529620169409080955277155219885653724363765289654551087595757794322273642412997230155927366101811412568456625155351934502705171929232548535769626395747556420125517323983235400844306201561942292704031130004223099552220882715497695514641120052361371940664115803873728975406792609397175401076561916982466408770970240180509460827436674555609334936754780857476967051090436718103082988028949897888222248736499062524487937412108620638741779826320391258878189283851791573616943904338447864671435707837232653452542586395141260205288177893292112447451907619243186462323641394935397156816928479528660484275874358175067659449514520906552659554682124335085471393254461377676993236144926039897593742627085665525660038193606744571794705547893251159205944043192822011779938307565448497426369432261132631749188314136181954817444208221186100022443014673534093634403854344705706317032413186270833539295643093724098245835054173472709531814213775005978828273026818498233057967672255253281578722628554707342957494557741783646837322279202289350202979436370387119102041068055770003867612260283049143551256492484222550250112221030412372223777186418771117823496928453045095242923746005597546816756026098049407930404426258180923984827473053161454529523337089161659686117246882067755264895595040659549577170098051384559714366357161311294619845278429138458729768736316488536929824932393757189678106090811037227905795447871004977195469205974532587918292788313097097357537766940968037951592529697863212364784749934630688634205364640582723051813119451862302534497360034570395667852648717802377502128513727899436873756458182236494511256628288554667125189668638824539306738848218266093219704506473226212169234253676619228960594364141452301559589510564740797487139347690597621515079905550113122493323839485772779093804999102010466621095124398567299178715138364728190406532030808460419823967016161401232118240313352338578135247031720680445955297263865035928917214361187245645318928928367074108698933743916573493218532910758949887541477662750950563934858115913204432891880466912238421317279138021685211161627181333196560227966483645597929413293252362764685248737321083896549393776169042253816602552184710595624452414478024662380951995451161487009365142317890709806206244699417077926179851185877091315444030443646818875250594693886114138715744718553233416085546681871100206134111633166832699635203982284653370536469616583248001329897048059212768634531720117129878552855948702531371405375653715756739530753763333304659689571651482902010400381751791278275468088560968102644437860328472948643530004929129724546641438823775639231537310755674467935026516038950094277231866703051446725512291007923298399370004274787087184894865180104012655058860008713367574669362967761622098233313150334172732746455094038309703481008428344973127505228779858609833207486590528598376748196931416982947637986273814130207481815164104835112632954782100644913630186185770525998855549407095378233914560420067947601652553083245584686328918573336516519694631509705874615476111264981548715947084631576852519978667002060253552221542505329103510876146815482102173024977565328057797385246211261425047919448428079327415372220394723375210037905671670582912325335544429644390490068641736743142536044017706506504735495809382458340313538022217883719626720402763560354372826172584793352368354114257704578794720039664553511424850823120086357429689375347940595117966856187278295392362963687238667029591214169568994320205391492208030193275475119142791608279174222247515660771289385612962431298728367894444582094296552424217971819209285314203391438678224283028976858849647461558780369405261998429943319549928777963618860660447134475715678670599699364542976199928012217320819609542569561548523060873971275528440869125354960633023337184629441372554441911840455239988733319364605792664179589943425309215479896759961310271520305360261228907099593594240910602110633309416670548482369158724905998490645421606662974358676013975051608700638874845000985792563058989482470952405934544608491233598322046894899776518422118530503822470548055139751475550623576888189065033047366398591707154432242072601472904316780744911943086602303466551897463686840420905255337433602009604096879090033861135832630177138771323752595980162693954078592804763319350812501190905998637974202481244065001580781953618053471559121701651388536268797804724842294393965154804305443761994589779357309928626724985319587201718324407949055920313612604282826878479201828617430443369952976767137168532220013161238678873207147171172227629784898506543689391359882363440845404231650574527669595232293372684418179299590728395188164138087235989884484910738530856401072408680253134279074028205520022226111090281294461718487730415492447817843240030604924522663209201601801092731846577481160432089688630796412364722530240815090131024761163330907356609282059830443365042603118507783883312923571711174840201656583655468365148783529075223054266052296505346705960106816249871980878289253714167723999534504723274962353060974710868980170741889472556927874708507940141866194725549397789773011677033604685684243965427338767083129284089666387200322355014642335435049384062382085372537552885868648614669057424624932826196814039648898168042677433315804798561236084415821166460030093454269694949869554268128535420350387384605972846960207390254324311826726364981594420581592415211304961194747466749675164525499327868835834803435643401662127099523643030783217453979173409791061424888449957239358995008835134603340846205453029823167423074873445044265778596314813035644307275895373602988456250943217492865655364923743880380958295872694218959458187602487880073348996759356299648732967513566985237544024635335618261251870676827331347163966313424499450705444735205331419258981115578561798615741701012056150073164897577644355097373003339526069938320586274825915351733135190419221770525719307007004434392134082127771382427489566059988727383457773546542440048181331723888208610042345507857665088344946262541437983858995455034140348722469059598153321461337490935116549143392676638819298535334097559967500786103001443363106463742365445084652114182225328529775329598115576095032024667770286775473273123045581576897986535162469768424491181472131484125325841764983695951877574870425848392746307975470747049170911437237487336172138630265480859157280144895595184457713372934630632697126840727223877262587545602093558376945241333225790506871312554512112021284780299357464473313786263556886402820712044285438257967814997380374715456982925524186923500795606178730400661458888957488048213660511248680260750170728915352034887411322865579631210722667449518721895595041840469418607090725108793069522991754088968172953473208590520492064923709050686051368293520194012770261717280017902863189443394189704436647767720217100540235254206141041532967267206870228220281290467065692135946139296506449489029332816234687278257631213600657106645798922845565204533986281901652186799122781777827918489825247898788632532448959885001728013035719839030615600370952198701486972572761010000062759300109729886779650248353817721446314419707008008883713502884500206311970983015094459710659731615029538721084937641218003268598556469892249357424374537818929184356004174939130724829274415195826810863615227700906782374985853031047631154868169807515663710371242495050132020033777616415992178948766031466308044350754384893286158244692022484382879546288327993921581940827280165124672608764707552344085746331528603086605267186288114967182963027215554321458357379060433696140317238633098487870221342678804412021736115318682887866969633038482005442513915177080043009334859933911401237389983859112382304938448918798939198790492749832255432492879774387653064739507404399510664074290304591567727551974194955702083399003531114799560699622123980247786615942266583571034468006192605427575906253831808354854159961667931631475887718643882863219855517779770640432791314061460417121120970581520908984428629310336903771582786001689820065075519032653509441621283879273376835526268734776758955910302161402514963203665582992355961572830016570172018257351753004084325068545172409538776807665253089422286806121444456578525845862693492027345136657991328223002165273422380359486933184370411829523308595108320987493235114545692695093515783686105017221815832642109262067965792028338216149167805181044827355311977478127730483630962869932222259922819942150970984478513607329748041888415499015843172232414547735950220847077813823093610459538495919535790282392471916094531366869828521932388692144539473484202404399054365561700446061171075904367947995382801757852218096326813909968282005715654149443475195890859837736137443915823695561875603446913114537989276286836136305012057983565374740178457732882733731389189019680523195378044787592209120189731316274943089379723344246530524178907786747400635686777958543715322371350949368610406264561856601653969519074693450126546239870010578271008009269607187425007880645626110857103529309348263767211856437425555870189925224677059185826779186006840374554282686696245454325050155889359480329991013820699906720099818047023175773384311798127955984522138466235548152528366707190388280245250417007999201007904557265585581749481002812270528694916377935012004810642315657785314531512526960981753091098469139928714768329061796663821455190305196707507970141152977026776054989958759194935329541889848966569174862046707868944584833698397660119910385912400677966233799019583362126156617945163539639157434555087069198305613260587905340941252668190225945193469769037812605936080142042133245640901473935982678272644121318094806503181354548761242021675814209981228408739200226100808944697728059926122107088684871553678893504317700199295403387572225605686958407283048619632529753980175047721735744348036689259468809169345594146848463036159677191292772231347801480050202476475742240241307871854067671796658893189949562238987979151791939793877915800897612568283111811298148491597674693096150032348090264495169752278391934962370687220156964809779521590086750891008779095762095959708300488364333948363913623965079249360552693533415247964419541869744979921501195781294826942154154809706733708409508212306675775748995699820824040208686552526323074653351439031809048270416683576737223756212292864438341650395943342474776008252991566039892817341892074748813796497715102327336690871168574580807180004130588535650997284376923886890221975373781954147132875184556461435859565872713147516536473100402309280774621141849214680282518922707032221967307877719940399445680102398514624054289715494080756063512793288666432590658313710845129410262965382108850488956872537706419708867976547730581288687857509733381183781012321834810845974556070595788224218739232474671091586257384172038495614954229009786080537209071880864187868403908010223144495662582262746311618406533157099735089685336501682970967078004063436343938232354317543380187907252730073613984666257312244298467582587913585948721337892186309439966683295673662957412521247052791417213219825985168799444365756126156457738125280497550602503509675994804570157370464665424343965116959080193380624231621179568768846906064560857226893713305581747800461594829289206230172725958318744322693585871910958160828448623351572519279980492774656616868601525257109682113142486236617280948718856662154895214644092006684846392501591031117744070878462864379394423967400224376221217187139220080755614034077890819405802524423179356650228407431589150695304695864627758145378111238939736286001784215028678781912244486415971608730811906741530348687954426413552464998058437029655209952235777480153204453898502527135479211432521849743346366783730310949823679135347298633105655630734933205928857589351262045970229851885659865779223235842761989061811384304254488653214642219341645100794233828012098801936577199706799482903803047105833138520193033062063914113511986465479086970329884680376966174671654926796145391730531416241293303832391440378680278712684935000938519640808819926867119924250011913776280475547019146679719268647333598220755484689598186538240617537897298325479913065193717224339599462897300991684951231922362884064533151553997748468258234484526454344344050433331769723356884406636004505045567195786743434755689202772348278170022971402372655004782495522522563553850522285071219178642861383253988361271618997262680560594234771422912501657542337746439601242525424732226402242687729680488703741084497043446105705526017957670395376071129489232733704018873922158706012000848764008844303966875763099102989273333984170718057630726113663752459195290304672546611437360898251831500138089795774863672080564323633814542175817458397077103716118270184144621121484717762554820352974215223532289249902970788816305268978185974214337792878746653381261625288151938093706826858855800428830287015123593255229464676231598144669245579669897531985050482809467843248540149721485144897873187437923136424630239347895473305444589980060600309705537603170102596990887130317671650505842767053657751970194395332566239495183702901095473175364768508921130388203118233571708585133806985000365122177602347948523495908321312098681777549155355252724996465917688092800172758899638522065863354785320806524196533704259439905606167710156249200078843440445926097908294111602772525826247512523679499652580067492332038506806236086461642870029756039540012443267146736126878025624142896622435964316155398099983233992579385638348186153706574122252825956648253235921776553911271124495497770635716505779447004737837323490984575746385939162158771704017035079216008898999058672193724311344913602743031243116805836980545606506830584739791223370639641446255695808403691938296991143064905115895176141541565923231306221754599408736220695853730758759861865505615500731565365208609324100278636190091682443160290888933400376913649124254654470854943546774922873932156125602445802049572057129549550457584710652568500504078522863473222914688255347520169447623511153044580831535478439622646529651558882177331381067762903973885474289457795979192708098765269597648355977962728982205798405996169360835640884652008719383908300875132611588529424324356173000176892022555623749373369193764975229647110042678774495332997941811145452128654679298773221376890041781747987475461059962911177137366296594406837400168304405400651444426684327460497972543217216661473571314150186334610021109592490374999238983582617158900615877037189229533554695125045038079184543629122709831463763763048648345111899048392516722996135304970736302733974145251046605499869159652270463090758009468590861544970788385165453175316058645051695780268921413773340578146760288877743558306730850828871022200315403697469371030422053019343325490500471032572023823643502640712158397160525793101086500153589432093345204588596136361292333597741183932109283566138719158134809375200292575377684317522220883343290140640146588129766058911256343960961208946439998727095673356472817812655915058015812852222320861378249909968031792342781280264346904142633448042959869635502020537715235292086331638360450114228422230503249817061811578248325182986604998124960499684844056060291676987420376622890529112568138811481362859771305312206245101121482090725022053844659726236882414628042168267625603334219294142004962572745844821648610922320813857056923487489752483692804149198855740897740857739031523343932947702130973643935269251200995696302536162254011546466988935716118895995028272829398498582412594392748266378157322722552844144960908605696186617752889518323599356823225230051919465593732280647547156807379556802904616992013007259210617747579307600183219514021032816273735963975599355242900053468263533401845140840725873513603169072664097544496949156015417080817971782156983236673609756188876550344009047968285215643642847062618272480311525135919105139267160197687034733902351041981384298226132869362127362589018782467509414762096678602137297415256028720000702174966563607891052230214307788534213055281536455466609421530619951558406585257212225865394198272157103086867174902070839133988130299652483389668920163124570532247163284000565583775357152608430579881905154885204001632170263105057845866116624977346360709873221542164602885507582299308634861076265768905911698174598013557049954281714796115049216795852751927153503722872802355042106165328998863608732558986005066006401350574467391896389632383920215854380775412834654328181752599516030495756676501128266756792655960457578274191125546598151061334831849625626661019899607207894951106437301278630435574146463955386121588113098679452094759582369125972877714381773923038230896281068163298832928301201189304068052127281711850369729796230150778553524682391849347862478284601274379768588354312142579447461034344262956017736208996117532766329955699759213361348309878444888847708919881093386420817167474670732682952837863453429589216223349284930107536462717285172950597905755452935998846285610025127680039785065531547576357938594596693398449540881623325856482986815586002133918755504832118936015230825454778827521017069133969377969436142159458088685678618166960835770973873097999376704382620786242833894637852952182824164667891841590861374307373882084269487092237173078526262314717928211897289477551671263694202153795624780296979132730831625487350475771836572564936319595109161358513280909148480204077817603602521418224621651182929460919433757370811208066331010876464031209220197153167852735896067128789051552351553373889630062873036272239590664713563225938512545969855206689010810230217999379365458009958153410644143284991561104671068013569059710233600769804835701630379347433468584486685778266169870021039470498800143107358971111578128523147165409932445703955046283720740675017766361842470661104873417066530943377073323985052618469016114910670889332324471446289697507699578036172339014277376693377590969180822709669801729205472852983054643340886281425473156059223747437350460377807379241857293249077795829225834696126893220762121298900171567142200648918337449177400575655231763683104887486504101678997210756501255869772592479696569682210958620455560933810614297729762573064471201538050404289249720319736470904312261984043893428557402365365846818953862801688613904436045071798330276564037781992995280044341930214994806102643726048090290429257839209067210386391320856653157932833759028502430300752356483935890326836190511159955519945165640539524604255730058138229207289656269591719512524838839123053653859070736593677904397687168703876282176815525787105512100457621807996088912946440356032657174372138761189732147402495572904103967644884454193607962867701232303686946491021318818446488521272393818690735728908188720202307538638295610521521491290866294709248487083357654625103782677033811762570963661826589691004579700381476578726981468945238279332350579447506397660781064090000318280673584412930599782138758058057349326546762916808852782320727486016129437954622978188899574297267523316490707302021781092444283395141161380073672849154493465430900054434267012683472822613787427817214373274034302520697056012209135824444114894857837457586080840872253989802712554030977711626510164888622170178601261908056500479225727136589571622071494008495840205625406704426569610116303985528124820195001278260055228736486081795647609039382127198051182471256355183645509089793871798723277786124357783965477059784380080868738714484085571579658472113955945839231776326636399147618705615512933411562933866226793251488484359304752608791595050485948139810301364435043325693307731905074125636295034753832522945861486438115908054046457240838692815606402275330935656954253539448194233311696499594388009238364298311237571956841394181180147738391251748292027493860074405518766407970860833985363545962702499624373100011947853892103652975602140064062622527462669382301770710509364146997106494314716463151226498175014021499761088040063246179595427023198808845690498589316199979542738689018613534758919702112949738810162340913359018681200582022855172043448596863110113935550359343920726092477427486891908244558135796047073149380603254334110911202707615241684622689707627480711833715409856060490501042481279883185920169091173062827996758416840523873947155585149064909264065839721590240871437656034219380087365056821352096797619179180199762908253266207951371594523953739414871212263272319842150260997059851333304236861597232703529375573451952809960484183173389344508630619102747255509068835001966365040120446101667913185358295077957561219800544024623545317839666692528176065947928872887365690131041104502983958517053967205448407798199707285256333789156410630396512690099512533550459421328125282960834545685171646730706942569154495341425655666058771175962150498369320059460290807324253138180527835133034975273055619218324636913731162255125780778082784761652864468159903702185691780545283255490337881567808309410904381653317383657826890684792788255414546633077856481530584658579689600599753001737425658851001375052846409420381895096777435288163358121290088045823778952564874161604927980395788799114852703522605928693081888462140509244608707511069722575891079316959824537580423493623355339971649427342575151964053183308408874409927123508798491873602616842261035152224726421037982522393387022501890417729749853989561333331679304363691235514092255713395952073219065587211935444910761625806879058537983517105768348102693879219754703316980483727836732986673508812263233731920213142084823831314580186052693885466704445339929274761307685300608795946652085928177172387219043305907919685535663797591998407937544210551795193271962021269752729818379994932032428466880125596075868290272538751218972688783183418220168048865570354889387731762533630713953066478941737071172091647420842484955917270295144044766422567662562598947358916246521807818664748181254361130707326308748754119109989931755037184379234180382059041296579295859140720284981302166746433736811534946591407601345542111775368122539771607715296339548809169348717208069768291969102153216891319955694255787497730254828915368579809700635073205065932136028921630900103151126430344556792695632588561549912817569119132336064257452038085944218450925825365452168776083455550944778315573892729657453785375805670801623939065031258287016629393506271770968760189089733943985694906750376349351573731093134510852965433203814285599618004497610921011698408548926527251499812200289638247119713208558157695512744839274685072386298992359407855745590455585540137340397187612550033403697353501927617841816006617726074085917263007234253312211777103321512217415169397266998913006525546724351654497130951654364757544108561775151047957966788389194241357894588067060789752578483436440454647772142793249081591445797581799820938593773416630040652904409944314301301854986789061463860826998957367220175596123070552085592936238948584956199416565453624603183847605717975311852886029501769612309576598702081768691503023825396468531141276003443595021196720570607127975489083182986884297859864106519733104873508833261211252023528238680071117603789370769726357446504942581601289688715181906168187551616805077228012577539523563716557246228474794235439761988097284267136797031155718160251492423907504575744816135905696304221504609861124462271396303421226429369341756529848514530027364721663138264905660368410516893343674795358238489442819424769507358420349076401445984482369250766958340933608408569082714686660832614231959215900702613444048550547141232686216260532436430543266783187244124292052127343818498805324635830712504701389452825913158166403700872198699118333716003960215769133863971601287188677295693711874970705051948878229112098142795867261298756593593793087670138708531855078026476052818246622248305254852047915050148549753426212535682812256151474826716405187451655169037234645365762591473287612526240301574619128864202178746201760372623785694679657382283980768417169250664668403355384424130021911515647654595925650919429358141349509201640150807721166371510545278385877504766559321048713145290800474436123972630464016638174641638139381199851292154665333288753219316992083776125369751761212094407441816014895960253394982039674542420716394819709656964051376847950109909883598926859522539473261301415492051440368554415045347357248115104133237047822178336092043992973586241988215695032542245753372047048477870884405051967139233033099155405276267645892742658325392416205462621057051384811584499812825447986514580183512434636771197979955984518928201433506788642304193195231848625035569020483663245354433662250022304744085138250185951437037770702389300004156353209507066428032371951605434440336617874453489996400278019835396233152626687724982548911240426535658583455886235996033680672408598711339282670597963192381537117650047630594250848266722077317281687541172724227344321079959826106824197043247616740960029267722281329615567266765265766615316781827693298057809500799570446229645354865652605298428839023859722141142938467615482835015961630077434796388589925864162792892336855599320846125014947950866643648656371597817609396165319948840257544371634122072611559186097615102097946077271451632831546964482907047489841877942578265614551783768375670127197389768020538828635398120048789851303021228203622452856792524731712759991846329352098250304534077807989600863782523711769946658654478548654851468110318421807616261220708299627611594033924555979671546878003072488091983791813870467873625417878116324929583673833996042424175481176363514463300931340077189585088395503335870550070082393093563867197468526645975394281027564553377076634479108384296819124610114534706389199332046748363153394643868735841381195533479313050544524004601860514586519676842229131493894012729738723524436120701819274306524185261566786444865035298293329591157793242327459250373047900610710795806072871330552291171263812724349222399770031416462596646271992502032187672267884560756072424631958122307171585532097063313014181777502200583920972832673277885758197663980338316919487825618533738569871355957752989375038361445472782104312122542965960200147658699156996960903633451394032579800168947229916279711403885781961972385351399137787436524255189685691066409106952381410953325508218993853534549020935283423566197882307929482194528777899257036246130218564513204162303536482756440199050425631814724366406518889887971544594691622386908062804024748628741617862033552049105130372022931839011224210599760829796944796410975061994003359272334931502224949878209655097735879095334266121768924811905049924528214019807023992079876803020455610025402634640934707893634622513900708370493839364712805984775991197439228136718759266854150072887319918655586093994449835198828906296991231665509633324204495052207392303147673312231909929496868006455156644266143198184202256006648892297879453480532394806860491309604610278706472085053287257696538394309898964901267954397155170648317733826231061378991783372414507289758926620498963577530503185041799349767375108025112628710515363056668565781801369032945258469539285331099461086551134136970319852448537415980169116676109363314843850116831001622455285436400581620439441298241607057202916792242909933764858475690399865148130268535551759500866402720954406855418493750295812370225775672141846495478362393819226745448496705813713727181976361541528769278893304887870634524123333440988330663777263160040786764194036430887147612866799116779876666671562384837619479324760150806792916141995021567696231165633839309115984236443397476491427137565973713923001650871278492719476780806928030101343139528988306656884825971605696830892693492042985213762586594828374321129672472726137657844932751160437277630956786890918815926912870814114675411737413360046840681043077674686995033509570236653288424025195324260489122712522327361122232749632054342024307182878004153346935172340178236232841077567210495706864466067979618829619181377014250404577361768044065536663820642658179839252371383185373700632137949717380441546555122952753713990942691747432180870868961482389959356675032970755614394042150903780560054055243399030498157432783861208777657975339411813093247360694028320128828942009596303142824491793898934108830073457608728625714236930934001607404060428808215759370577127976048114164802992149177904640341891301521418317414419767488586756179865557489981288341680005461359968667689937409485537139195485708403134890963284438581572524282497611823490064843095100817044355918633882828035405523046009095621739986389272582662849286452590941382419594863974365365539515743011712958369611103755212103951483110133598051297603797160468477101441502874921238897064354463428818863379084201837920848805665143796133022319227318671735193436064565731956972979065727658076739234636989478237998360335551300309979598517541868973325880113808016357155197003210108809652050383959686365851608259920563037694353952615104066825007388057158140449760827498993244243993184304736392742168358314818353318482857937429883022925003227488241791552074548503491676770713378635767148460948766413453969992597446035294964309881456543181480502092154336646191219746445994580402420699104415927409997080187506735479802457081039329736177154919344982850839966022990160838091178953924189075648578954784025129673106530790510052823821354091283472033505885112953396931499555245779059936335618738245426801672656043780532054973441925207913174974610582341381362266220543153679497820410861024573308033754837922858185278547778133870735067321986677001972837540765981989969147198877898293063263525894232742974751419502404206523913189474822959413038444801823485178859796972744084400399124158399058777116528536259536190951576494874804902479828856400551611051316624708212184344620276276932318933717092980655772472403830470820626644438231208452228645891433197065614703757802736327896761790672476630490048840634890948835932916367971314366682825176061627706063743974850927764465674236184522064897683216225661706748101608094669335300582669455865970253119615461894031625951900996402074760566023059313224142834041191565223392079071955131645126721263984710948496927061072904550703952920925320906943904171886026225415887805385844793475227002802984087619451500584899293355919796431999147268418313390174887472433659329163502114389251596267344411744775439901102850056508951505843031562496613911570201003932623927619228326996797586469100677123286607207361390794271547412725155990710220961634161425118356089674392409062988170578711784838033415987336076530234329690628291611461433030308274860475851027853523117941219927097938607182737218017249156742512701313906610561132546069786632104783227911822336119268206952057220261570166084872517983634992402441995844910405202059246880289793429743826614802357519939274594596712075255032832266922559772379954695554615780497205991802089226993005314223660611772465343738006489325752116062719632980510783743149999961556361073316508575781412305858998321475861184233112724896398798150599453316905139331624251912230629505241873297120458796671256363986710479889520607497964937105584198033141080067699977051616448019905454116190434286827202650983512244902213226611897306228277777084596068577898094101231992202097456446157947193125102052668050784476498013191061156600629384692223050532801492526934510278552991255554001308266748552363342600039323553017984811037350976343760884331776657288755949540987614617604687317035920446365458304245331313623355614864257650336694168553847411866602635796596862088383044065730615469914368064459091476432478701623610217930296088460131104139273066754643837721732840123930334459004057340617761680168311611805408800410921375698213765082897390365813373658971883031831153164267065427870425695751891554589886374808482604335683525365783751535681810640841466942187682488532178655742358455157392185638858523208322438619143113396501320330420599768394638133053227868749512293368814122254826986396323070891514024998977187548114240548839283950083299830167280817836991894073730663856495637439294859750085853035167141815626818109951880649222108657833342256190910416197125453000970317299234556131865603884130180877235836397931721280329871307162477252521285751616558866784723336223422221629132621874691437394349512575373974840840993015678774739818862007156863063927077073329679562714924799312324282557459369159383364216714343942327602536900097222363861391919622525877276268622921139505370380740619945261671319687476447494654238316729102247936367186429350885723523788205990618597493366544830147970549803529595261395652873250074101843502807244875563771052343876441147877114417129140130438744457283655919795132221144203488909652043606193651778193020910494824778663016669133997370807366860093176716287876901011362428367806821137300268095415143349066204840163229422368433754741005425627274782272792819571218739949806733134312569578415591050108432512722855595365187669821547923280363233148059044311218926089965949340358009164214566971226606194192368589044015465401507906210645308219910018243568745457350988263971660822466712042157604314185218879134109338488241573471128495408371571270825704785806395020306623313361179029491310347158469225764553970786687495796542083224093900222710923547461961740834713139787094031588662739326375935878401822111346196357367328850634464151259073193469663216674668412891707281506258409964304113210634713312353183579698051221740582887483511077451838234903371512616592908461525473368601311073947721159027247831812040708519556496540682480443967588650256135059158832973049794850769126556566612593689079582354443109782177761922199625773807218280277983749066077918607587875787460785472139788706994415618518781759205329898673496588164463638288395383331639558229852742351100498138516849004719214648000624749000708702966170777631459700862054817895472000485449933865413378342067309801744747261736600694936225722557783895874965687268577953788532127934668014073527370544554861797982041698274591607460495003082990736149459293345236835279931549276762169775071972626317462064545476621965606441353508957779417812346813737346903882246896738430826435221893777462951806801392888980148549754790935595767087044738066445859957951329347152319165545890385138637833326220656060585482077729119832717653928360505469941571904884770758711695353009100854088663744027184129687431821464454239069132688517484266313898388290688135635515404633723026940121878777845520843843527809190392055294470992278558312146358698698074728516628271239756047660187108373555509693074749582062274589131963618139188997137216106833748727260539382883292419375709737671698446796721946926756366021982150637768275530082170786483731732846233419403285659058528768664919637514326614389354241421371929931765062591240204616524124462505159554703164365095955757167962115945328553294958368193264643166433005426591721251825688275027300693617298918946191899979702902925991012484505683348974466208186584074869647774056837781214374776041269013823290884953396831109581637502493664186442826178332069109462603053238556021103719572751891381339380134107138034576157306337931826280436976945204521327538877828574161689729395492197266608817125730726505750134387992443508947731456263662014942830497988342940615528685231347690155797804185480721153618710249596943661763214462386558985562059607840723679382552914585919007704559144770862562468733457773533092746462652059585512833923480395028626756347719313420776166607513215957668532103568435243399027409431137142652195374868313498266257457816511705656921327569609072110726671680132732735483529607925002486520381796735506800154224164132969944630255721698674009269152145967751295241155168073332872176876212720717829473308579032566668120690608785576715751585532822681120375895973340353247156037035377129533417697562176078631757631965735274391137841426272648704365257846104303847576846425075719109804454817810158367026737728610919473534576078610786084592041567601120908620842350408669226700393369954463450587741869686100604852449116347933112311091741091600006970653939725410225590529837685817313560930874892540403834507500726642353236373378409082794007867324488705515158772081982543596117299809595628729438986129460031591836506011402228349928457816623377597341753637635699767348633754773140539917664140565932409964035417414164145121335891125340643047310524325810987679505183621050214819758690224642177451976143475189835566654360958161825817435017659954361485999977070888559923726762041880206167431155119460370262892564588320504954709197559570882356703746425727069237240918135642871228959024776726846666022524582377209356697430103435954735757430222958101898404297763739973224671922621034414445230767313976041482969811321554097272905792132040832686940609949997101260666772424725888429534059530054553142008598597678320065113373787790495991035351889470084522056594088115867254617815741295377528056081753826398547667087731308037954485260852407824367055238999504078600801155639875035709610414155280077376561936716138455601433896570674166769118336704108900222320660354584038063279479485846510866988029213718329798650800858611162076997312617715486113470104704883112115612395929479281794656043754047079749126569702193353473826497167124886351758710758900184663252657059129054006564784997630274489941145628357922434904019496316817511589499460460067427879140107071055740099795638956353447565827761648879078378842309831852729658645866474413450057277889481620192481855686975846728094355917572117831230891249798600599875638271850309178323803717402379621743941367292751428970939592146961634614745424386655016828763631962385285591247568622275632329186158610008837674719739425926251972925748264002946385614230268924842620927993787746401728644231311633078200822663169899933758050399176775328298789073905142863020969720164377607713382934566192532197308317959180431735403398602928507110417326015504509888953584897169522956759764538328891391941144542459066201101976574190466199983617565460808826390108384258396819521907440063928020714955817149829199429981562285332085171009906208473846450710460707286601200071592053047647710098488765232506693669260545027780104348483912842482816332159933682189423514253537759154651731949639891226527661846446399046741754874712995108146931018807921863822468714349902822574943846636511122895951043618141432152484362864378285604672629393079524319603895979608304796063830015913387497629717696476642527532327771907258755185204756354300456374270740623143259199851052982946212983650253313979556249660978366604581935184146698403771982781794623648040171932382970127052371676457674469666774045539182227974970506623726085632002310647902880741467289554159153494003311750373045663734059374330840674819445023204906145379660241611697644869499804744842075753722870305273718443883791929350521692644459964136377420608698206859730649982696830035674129898171742844475718444023354366373518520585200815712744964582846459356091268383771216405431154075973105811379600494394092679520049981439469947382405776957018224534947192702708001040780836556646425547375017903013947340635404084730427618776745362417679458669446825167257850629972865137813127076843315995237548420143034276545607513435375562972600572722661360484223000723508471873876741988329856045563790767719256433820218764198337560208650299451801208330669381901859393572170721708931829301334988023338415786854868315812395005660914073735064820351598647332055812694294517948468132526670801865911906822273121106418574329446427069688653102861393786035636577079386598623776080810710608521875865290716089114576812709221533546610511439636213017859404166369826796504877170187450863018610184591654438535471224474715211857375719026620810834926614778095040029033564676557627554244962968738281435221636666515506034413660372790355554517872091829522159299171726192428181696477789225357564967076964635700184041711272281258367647270300124345534141656942167572751487957549639137287124989501771798930872018102149955575911687366260657733670143858467050087897327027377218672655464197006597257996453804577404289757235661005027351544749107950599669118089439754399269531641947014345826406417436579896001320560235585646508619575428312559671903556511464588854073576088176120665046294427412791186119980551572350187486660472232681642360332512350510187305698427953754203892514257159835268799082202365756610990135097692504027684922774386741260918651880388459003962482845906770960661662547195210814877016450953069827476520577767383081025975649166224214532262248979133716768491832466104790921554868136086731924917859178226045017953930051171936794048444610581054597224970401395822332598847290414251087627057204124660375677590157930478467142421666302331324764531659210372245424490704599241943427040746273066681957150076119222490998104529685279774821048423278210272900158611832909444838928082035044918137628442683638906910619643382573259304596477706263547571057538411930642861902887976940088128967298201772459357151651817912490301431567280719859987032996968792368859428965335136578373975863126317359622062771347012790269275191851999021425777184511152407978847742020131530353966642101648191821826904364971903387647276895242030205680563907428847719169449419046444083025298774903802923453422377702608447744062900963458777164201736588949285314576498916251352167390069158664168964550055867910309230617652767346483151011649116882486854997972192602850005744555516530087139445629918679986193068093741630519580314961835656598714274623215635534244522392962250639599644948095579396007159221493054292789897612389503260848335100017251739127606560131369833831276432377497726411574982989428214721296264606701086390597012039080122482583032890639052194674795166758923610563616502625917035311893413939192882176346678449117247038119786858169272926731932759564870143008794166721785411693612160984151036191448652134994699374230821474793193591228622686736260202105428459347268142701454244849922439838314408908719810035636684703136717182529809480617997337089476402580608244767099261963400694829313796175002673378707971222415708498632450095894854628572051496796652433517832897883018335905001384620538306176672634285634812689021742307685276443329096246117447638354784778907214142011885147019539499088969201662663166815271380334497660025337599504257345361779048974653754144371579540257063447906555707466408587021673151665828426696893274039414803030986363444626960549262904817985048085992878974121029916400706718464338634424440321344049554896918774581775977607726469257595321816826677622371743324304609243121315061882028721823316982770448502355706378337141821663866059791212473759914946314502853236866237022174845153995428329938216197373768194421786422387441979458447868546200721659081323303339892824021784671893535381665702333283190411572117285089327381152714937391271334222170381890419880171380619240822428064327420401820006435011654561835547213748501168670799722082739528458710439627511773356218007649486927560840311961226811811991757741554188033142563489407450291677615785013920184756757495584075816782517679743676153457509980050828850741865928670760048174723491014170861814075549227468167308946242137868412193207879625267799787139479908754488513604824974211408189510287077000071429195226150769066086940272873360624529667024720961911560973380813586189035483070189787992739262249245071858821369115808802468664266722674126600743558064989772047215678170228027606976660605831922590418649091558557250026182283762569660652430609681564592479860965705208209826616754676787391063628122697173546903262777570708286779267947893604484393680076973133256732505672778951507989638798595846137434993192664773876407588976663446278112840678376846116794397192852396476701006889328655444527722935562980898562672638716335635407369337944357210786955829046402191718041332234506672799719573204727348863026563559547794027181585811251082495139777011770264577688871733084019733934818733218272746744193468592222897861843270650318749419887388486720139906836671604732968490945712543911236937109492981198257451251668297475497340286232988779193140077846940125084883476421099323766699796821257407115049384113417673156812604832359686696033694814974427050331992045636903601169068743238950779418263727715958911313186429744295098108650304317531016720155167739235436392334968227375352378170939552482935749057645763587514672809183825698958355563730919735655192304808855671468081879898001520370153749503242188090641219465821002406838902439182669087377400390538922977374984781658173800153828510616801783850461961587464502779164069473642948805542135545467226197773457088817836801126612872069505444272868768925135338358019518235910909983777212128902127930539865572311362826851798320524410455005407313431860752436188680615689361766591805516700682226336706750656448946991938199099629796692738416367920826340326989562137304358084574656785209168396826305560376018514385485711022502160949502080241609279582170933214552725406930294419699183790453955082028239185166556775314987229731018022929710916386512667698909075928464160879579273838840498069986841769629910439230526265375201859356151378216212439119649996307915003740599662943744208679023722849040099048507949726163054614862309890196064360813817467073496450715800439177945549852659057844128990225872425238125277088950563253546443198506033364628640554694001494044712428911594831962714142208894229314275924517571205466372056836510057925984841031838956344986824928230346441587837416290523404088475282351766199136062011591529741712230174380707278032638170889224991798273476956381473277980568969949169276165447927250193813578938427902393840505778234279619130211163978093010923545101951855643587466095865577859940651243270129674031675821721449069642920053630096065354807652304858733837858486987907915134678651789405260135937063042818460899555270787115273079178336002486834759585159477684956478342353819796336714784109048869865374084737055883516017658630010325142592429064412652117384511456826252793415844678093142802543717544156138354428423248925442259533451211149849331137897587350796928180275231811777171873524582998790800312769718391502761385432146092084147102643190365943026459074723720485011868873561470626593869176025814189699242600181909434480924715559859320708673096417085950749173518341023686394419131574605992664474538245935585305324391240005801189688747512537570206580909796898425836068430288491087170327475670318234930995550844845286931131354509877936418551966538780375370576586503284372637698422998902736075858624662859787357284708604642839569544515264875301201135997426491401692411273159363591314311003533271705379966833773880987057090144516207332710840657466029087882029792707241442246844799903824018240135013503588540882532093876571785282975911031161500748151664613269879397269837304104427882165858140136447236657471849998632167908868687953348454168394527752362256822060058931172153876718912424987596610992321795795012252868908552361740211187054893518025115342114410800382589040953556596903890897825600402090828102997755566799701650190314504632703103906422342301877896309290516441087455982003824987033649628045536636593277093822385724243468144358821348041017068741946368751000703334756255102498364664723683954373771818579624243262585588059262947523193827915730311589201877709618061303354341545259756334590646807126875311375123332339213495591298184280935528538441641919315653274433946923378536142418296110801954878367647198461928792655386962106767574350916541970650025929025519794414854874558242215223542386866922140889882766959310105771683308456351930327187648200558528937861382830146286207701161473403890149413297102757537599279970363137894803010815856670813165865524344377547400984589964313100992104573767365055485037019574592143714414892128660481504785099025147792439465442727684635775330359685771148486832798252073231420087572335345282482535389102873795097327504228042384642144402157734189911425377877778473257025984255011435150531516436540686807331693191805550943286625083827872035562345652895129508325783681522665626934043218060707390979370855649330300541929941607964784128719887567586634299410042665725948150779643028830567198659142801659274697887296527208423519062555001584084751441249849163583885936207169851039542425973925348109703449863410318276282786897614600020380134241345894051218883090921660712314175147170326412565595374296838524968072556830729191285165630633730310301456509461204566937393049226731732059358599001431712886597024712570955614025651155735784302997104125829211784065844347605757182334275932586475017493227312570297752715317223297936790937033665089222332015881279368249026376334065531110816356253995481894129017985050488825745479151869013486468546218126047810164632586075688079974313733595018582735162134804187474850637884044177859248223552555697836799966055435354883313036756031531411063809543399404070327655027999212807758929692182638488334508023914895648160694011929112613944723405853274022075888901091191794197858006891457361182435364291557426637423147613650181066156773059101902425409954011594271118414871565983118888496026693692821157789470687241073573739070685582420701547032703975398244548981283836306509179448529464256159769696775225100164438032620084751145185607256512131939453676747907454629079685952639439442484361122504782479672568170259199190555016642269606279381655020674744072880051918858359058507267241112059346262543473409482165533754950353668241127232289847176983953191422672683535696093737371746141105156899136639467021725201334651201781232751529849500376110321103590994856803001676036073531069009916071265317927511856010402191437870049357281856543553880514395005036702489905225038922686292444448972198957484888558993563569374336308158461838963002376436766907009803939246227407100127514210728839519637700664143549174186750472820862008106007613702389273791255073274278337901460430308198997704352736196202671146974859848181821341912188885968528368858661682552022847911902039093764301837489636927375696241672475845367508001061364632739472939740394472745978075335438820151381622230378914067447666386570009049990648067443683919082992969673786390061384790998815243364397555364655301285218354915253242931132014435435907881801765136834184344955247881678092083482203682043136830444243994927489832935445019729883991204052193586617889536641870591581913056918878757521052576538929733607450690262771151555682120165602453013614011346736174116199716973879758446051403409489013080218204683220356865441536562920594303295736570107523930245825403704629981872594099640767415670375044487525706740476269284483986930829894442346985970574208648330950555230561412151249059802405011990701078561845554031331324144891694117066991203813623959207976117127697974170205480754520295709599864778716102281968589481758688850600028245224626663564814426111148901457834131202744543046619569941215993927363479335639067003769413996556288707030835813172627242309085889328865758962424739947643970614617226577692456722829374876509474327738266380658306741863715375827075226953023243263307827303281851896675772046801815730757879765365757830334776069514284621992822985505723694837878457936053570317456020793986520530437644033626953310790736852910536626336078948125415867220697636724717309414917558665455619664233534499720450457762837162422840146886798499230890963327551517612206249452201027278069081166966065264795962897616785886459766546458973468116466854486065648387387599788271966593553674691290219313591573744672740999674023375846893336924365090114718959789483941012748289502966074504458655694530349456991717194762042772920108455559727264256789569077601279043055659224879030093023852731037005317388971918185040270499965460781969925407052465872347480251273800498768320886477555260922746220496377802069106405769109838520243664634302704912201077219674350917629415999570371116517892645717850537012488323771859927975340148576542552062763391995814419736507131150020668889784473995767312891765889269714586782149194516986706106152354754018709084370365961054399893243578652261877451653591674149507133037399489721678699766381532849907924183413868923554817540276219562564603589654781086023520048159695987657465470116878156692889291874645311584907115821699241797643483875746211276618321345802310494062680296696172813548436110562524758092325421101481464426923519600233644705415638806936677936608401108917934544284694386332367742844473882691251571949365310677293437755516052112172336308379640338971842659087398851866146375888209712347560509287681648656790758547240132702936103135124354636696827883125311447513638637134626765251739085733847760686110217728044185497805616590747812783681498713148592330733137747572433629678434065196018462580743552634565724911667818461433315984197890910392648587818845512351209214415850488198780394908216150182759671027570276927550854519601088862705741239849149849656617166416286282293660202023433389945736499029223074074412929561509495443051311888851714645678807249124600111029008231161221061800522238698005090307514214571943540942629125893118781160332697389785770367551059095965480647514784143906419708845810482919968815116555222901183658236182943084571246541712970694247100791483701795948956101672877648221651193192623647473844660997263477822669203366998242892871352957360638624237376444112515179344186514873906066709534452132408544827973304346276355584434346612672164374961610506024018027877525773052525050619506227610347357424799806953185626688511449833598105906095288778837056126378819066090786981305807385072763676090253737417391438053650629448524569262446122879442414579824560145826186159776557458824512983954647373093713021378249789972181043945515932660657833868067318081440732024273957565909428967490667968919235720540777512629258317937112268677999334293982180318954110325870457904044969142753717701056785251601314896707712946545563575010146555013684974928286824644303403169513401470984289778805355622911339148550931236282148081117748451474884337867556569948934104914542896620898902430561052206586552091204735912795468022322081915387770949855921751809216135253603738158277944093343502877876356831541800451527607614647264394000271204033556801589869619811845057105749195802306126158680283469442666316042887244988667463962697665425213392375226422482086918157185130221886710463821263130494147952162501331666442657909534820634394365694607692471098950437581818871827515786673939058499881172892624026326273011458590003399661058570727882810228342525444056709440428283608521320151481621555773465856345920080205717178177686173590423999127715025870716748736242572075210239486622289751958402183031781652124312611121706012512557642360874323800915219231280528836985169248153754790832232403624845421266252124039523801870881002993644546108325756523571358715805494183650011546766002606780944005567893750666015802951838228031647522910815283665512649777406306973078670324167016673116641963399604361407536816876986445809246226905815546813729266825212992970201828103397780652752353834796647395386691540305525933853465182070347267420833600610911080794469490073050526844308506683043636228130055938962088319274222941985712536871712779417274467795441898280453750433986087218942190490932862180659240192799111490766267084192356777120523065649947343839571285437928225561314402180858503434888620761389683033058977552431897608875749508138499646525760707115334491342758333090007253281792874314271748717024025484344565489687586799534239734288286603688592088684666789382691841051184064681749117471441278765938158560356955010328630950302268236068782427210844795525745924039893263526995223827038891577291500319057310619346413826714416099123611385265818446562802490607329927251324911576067061873194965222886371623743748249746404666267187211572651332714163126266150036793235680729076420475380901420959616952196295946997210064237203032093949784239649461674356829625122359560975663340780140706791815500992474759747017946941209261275244449167375083998764574084693484965590649652107577782463149895056563737945244447868736539742492275912040387557098556512888582426595497448450598125648051113683221323361467009328302703933641924558640013493867381980410263040424578366619890319241400915128848862290552805550362043621626986259224262714073254321629714181967383306875037026557299147293248339332160887445489128483626547098185668410848904494782073358261386172586694295655653560620496152219808721700328986740069120533601818297396453256787412988732024454676802688185228691728916798107247292858936943868786051347729399166167500533521683289206528412066589314466894133831627955217656147072593660053050115501874584361075593324481676827726406882583767851489325657013776939705607376421328438974260480192377435329219370226877714864939888336933586884387609503438483966314125664907505993842737040791445900843313252865424003110389945536131868169479118155377723162603905889224589954957424124595033581513659816809232809215080853894843043165858799534975775457812705793037554015909968119910327749972236341472592104895451258607550856497814792825985099032509450012446971004939499686069769598046504361534354452496990875561297377658459579248632288497386435855963856298564937941724863911381757389299946061400273757942952371860021159431195553845519843466066551991900520451147196436514848502993055927816963306068024905814665545331276785295093305521759662849428495370706377811315483650982728626355449184603240551109119630170003004688499944520431909986735081012218243414038216482672901146804220055221567422434309783052209158180205366006117586378646505405357026067801786837176845657995911854933502055989893423987535521278874850709514805088003629749319412497174720062595799824171505388943586346562152911493716146181363187675121822712448950001647670363138543754146988735797624912766169733468547734044944900600263884260193861838442767135730574254038681551873493437160316311303432297863559686799256423794093347042521283067040720000809870074715971589245396250477415079951889383654817092759892659433479574088478302135853450145734988115907799772326506255749163710372017281340296520848299611887000312246020351211183427598996231834664070920588364083045099420002925226417068109423898298730534433819380156562836773828733699166507134367483580631498683161765844239626676726329626485626861878169907304429630758848863041009207157506038875778520079101813605675309805042613901659826837365728307441502598437075699247243927415075577933817640462393963184030803510798800667442133769189218433297421098836623735004057570752100916782609986969514742317154103235150279914028451953663406246748409167497134285053541300322299818593978194837859049747640780033639287799242499536929505132820291659249477639988611371627920746566303668683848412372324815532785772225681379506739351594705473724731533019105269401891191254850280829439229635073031954427256840112754508724181098990894297448756047391377336090786913232009519828451725357273342891239823976955886352104374279244227267456821048683489299193284758483128220683764982338875848433266663881910162882658599346975838372778692492404824879727564627893818450800379387702263840261652347551998597720908121895626526281733144116440925827710923196625929079656123136520488978095051221554026623676539745595216765942973214200412825126031104635785247042891793881498970760726360699528221052567990256666772835090249841746844218341301337626401387821459249046003307635643133613012835862762461908899178672757664545729905494680133670494669222395832002138222023728589653939726289360775501597155514719958466344451011356798601841037129919552357947656583584422945155346855543614000956699253033804051559116266306575695385534501142164259505946790411321438962471532740276528281955652279301576400445740138262452128371600413370671056476802005578988487615605907459358267058606425924110918191146298054951841405342396019914271829895437771258644502222693454789638484449148048932714753234733984771206582944462407132525004236862564661352430732637598619587349729839092409570315555165655638533262340039073037201410033749796461908186416095200646144654149512973169616975434321850208422873582553284840163740975466402131419778784771519604730966967526057493765254356074566003490418915414241131088614151880374986468567650796471645557264256316859223876824557977385554056927992431007493220720557490005996987629383036473617523022433114702983930175727544455302063654803733699357913441148290222366905976070479128125763292271348061026226216929555473124746191637905685556610344064137932600755030995349548535677649557024022484392934996943596798685334510683252985728221709711673208720743115393521528397035757332561033539780140034496378348581715453123365409557432436960531368306373133089703053126337299515192230264708118416425862022369937861457807026895782252886116399927589386401984572978484696697052676887124519379814316868625126727931688376146123443000103633157052696710062005393687791858621422946017519094027781471974501911698815388287694500396624640420783574023978913123626991866169592950527316618916192061358406742364880343129273823106256152645358283539532929154749509700651438486514175110244414263977740432166651830791345270300013421780135140440915928383006785536763618173641169741266884524926047384112098737677038337271503619485884452138082634132949925769496027960553483404437984152609559163909630714484299989621326444180462040764314853580445229766896679728676103522266072482966760885185636623325598471907390598874052967615336522298963538604991615230527710445501768032447125348204751077988330308354190332235769674917159789026728982700726723058132469127622354086672332386282152916829224891875240808072050692232128219507354139968500607929663251662037340344712874122404173838724355530030048131966569152055006622686070830541865092934676779484355734260872129057111403405632771119501542377167673745277470808952025711174633455160839789748206675546363080654808457570904296841641594414227724875583612153911216783167364971217358139984808285964688801029255284274265626715354420118938004137712695488704944714956149809827018967169703249062967585708344193103692660201089313939084022067318843249405294264926718721964588631238780599537017137240763967618793712242232761399293591556247040214232111813578473545899087834123477298945503433557384413592705557951932014909185469049154952741252598868155638177852700650272166908203032056270396943902577354159077926291720504876322646062043998063026884407024276068167396799830044324230624137366567723875302332960437426567531291947030099676612601969353293767915049713830000552374206749958549611832767662330278923340393743372159753048945555459104179793936392430363308240989884543808207563280705673167968529067511031669167063701514932985329236154918829394713785914589855012532369910029839360281439551535545061313736623062101996310717616608811718538342710076770633749313358424563857242236746889820258763278995369224252581579786100002053936744930135467832755414576468585510486052082841786362994100032009969446394442289206963976060530487610470075712778313798239239869082605797881306113314708709470727845582382534394630486534864545695607038363135231848570655606117188215884038817627798347693086218978709660436596060303250687203029617044717098624076267127268364903466605688433885703780512709788633785085402114035300951869630278708918027323281162042780450897086825589889761008236355397254807970864571337028421770533656668453636723429594835800647579879132199285957394071901032523837912639249476205653749067441793301501228385975556175537909138889162017691398992130716665563685855381775157256973330420853124479382546184339528306923907265576620883699906074560374007161733606949556487476229693665741619595735656403040294486026814540314567897620335598057954035306903450871241407094850201628067330957988354497069577385287345395579298826378828940833671334564513465925429150609011210259162628756492354614180439032000111503863475015052376093241699163342695562282956763257587544090102645903128562515498564034623353089901414665818284287446899435488030958420230726007850115032870758306460630537810247659438829616275547252040066612927982943247163132353751116618970069004871388361527533819970636779018429999398733579544467508169888523467258810101230966280608461106189513079431850045223698875038290209189496583896740903753717516063258092552304943801304872398995609972857123781762794740079606309748535493197789300817748199949880986396279930091773553817788758666621658361797827170737024703519267795616219232626985240592715142280087792036029583372277426080834128525321282457779338819554458906797037869671955710427202447721668680645496461336816897450988651584301870643146328100610068001832662531284027730113252401857727672824270611259288701841716128811464414956525010711937396638930709129730748065498994636621652344859673635029410982460635185997386219392892680662136181980837937480946541284869508778304968551227687640377059947626205761444197102158133162623558453964194775796622054518651927316331717431309313255633510790585275020816555578405483513697113506752536962631286542527020732696348833066089654517944125116784350506055847295548960384436708779292399768898828250188329081530532564861840374160950117196632290514149168084835687317748448589165584662088383818186507189415803196764693210389794780425352977193395767333868112167202881584845303383086994755769122290203577705157849954034641361803330819207503913508912288219450369679450069977534945579577078107097259842341371652523543850429996201812816772707098946095072954769022608721192192721579657386210142074120060151177509374143189916088900832378547968754919236273356684915751844145680725185362826524321319935488967472599719712577467489033375905336951340010827887821872839734609330956314481547036700288465572842422024863839384528051352613026696218366559084143060811687960995314921877116223642537145500238151618121584048715569126924824356709945709395483700450200826850532070277541870029245059076676686620851806655424732829237996062607069791330959129733398998867173783296292072493579811768516965958274020065505476511513545994398503766399373499351443951377724522118253529557584261965491733193790727197996989310716232328321777737248371384066118125895900354761457510793461506235384544473626790257406442205888799965540038352336941301827797825323890105319064799111054798742602249772566083964565558867848187476474705225343481457830173427221812510254390091339028149474026194539932893185278509176400113917754738123201304205237935750261401961985638126548713581285549329040026177585583784659727185242213629639724879987355410739808505741181268883044694840765534233371853182649538555181530029336096427477002110363566419796318393670795919325519551241702701732651191918734546592981035987963718535898852870904111231817212947886562297834600561885393968614009699546048612117133738708597399895936085837868883979327354352902522904103066458975944692943738317748765293818913555621400144710840592134775507391373350622884662086054586336287860294494915514069415791348736013186221639335959678648689694295861997136458648667013415257403158130283385680372229030572906853591330751688209764866007148526382838808385585037278877554370012203417267245486273339655214692544871531763255797220657642114194989670702442036543169380747303162503682547741865728114633934289858243479603513610547105640748408299297259307938774869561964450186430958618185514141377795394885321135756256071296628968704012974738736493646185743637469292584793023427896599443629882985959986986773379962918656312879165080867748585469542708455240089804915708751754498502872416815220629350375837418597926755980212054680804547799664369299859511411354319677493204694832018176533640298730832879712739403203895373707411673518065388072495228781129082735032557576579702274677593804297294423868966470258568048726276108359247550809395918181779925552254879609204033193948396238814943776434103198901208651115389406879572039758359248074315370284091992304518553758300626542643646680533776795955022900944210490307071439144592062456587092185684906405650464736447871599829590666091084637447595103682256216671128182943241246938598370340239194539117350121137878712438886183270421779492980014076498865141842649179057911688074549720285120621654937449861723939991525999908938937993573187239334391059263422214429503274084099003818126914127267521655337631151606159321441851893933158759886213754315590232126176055420740054599046174082557701804402602782351711246065643645121757930647633929285047040985049786666653251072049313269767311640781533508970626000223246642768219854499125586128528728562684100143332934279190728233264092308996166693142489886955357047095394447287748728966290776400140714360516617165179245986028736681890735769351098634999065789747575839478331387057291720629867142837707783084535382086263204152966794816603783799319609087483859856893454940622895907082482577483788454756892973934014406298225086787272205274411187195399562216837844950804088049587854959465459985379362995824158427513678244593781124819739618927694306663476393623912792159280941313668428827783365444243114124873880364279508168306389970661184910425149757522271278995820696715684760175843116925292056765691715843369244677498512645674109733011266845281782322849917342649222910597736221738896335989608235385810879211512034038397032377858334106820585755705513683866594688469806071631403319880114360811739842782341178136950416517005273023928878096268996304318659658570458955763079746090357721618534806849868671634102721079529518384235446963807992852154746999255085448058881522823112313682709560466609093042438258795266310567998294658523505979197222934958022570784457683030596049477010230869534557902882773937377128606977980701465873494837945554788753327629604364732211275328033431620972311266516116203007041261745137310803793381712081308144462079773119278271426779061911227712668309083049174945176849990106226457977147761598290354752450986201349410148781425110894099469253875736312382584308142122157674791685764648166583211910293461079382934793904002663744293843427301716595826460234713668535705861917644900654322302014959946503057008271535438804722376254971308420609353907721594574106847474551093126230215088940090942611542701562058577005579710606796309007750911637861825700586396587361148274238118805263713603462532142368226903143550370955420686139251416687138232213965964045865409616263241121134837554587097859052284212358400895357966041672291205129499993807319761452155926808558556013569476269932212515826759805270440112469749306183164459941434021158976789434163688874478524985546564592315786430720393548345738636844019729891513685439467166941779555319027268414189879389336234728285602883319703580416761449992599283053331475419706622634496213476421588801483804989578853876349408371064424336682352289698655835614360176110018610898185923044735470303664283475522641167913786196099407000617792766703177617967814263781329741190200170981653226709206100004211467433126521278801803534812275810448415786089097468500167952894341646893045165316961181356436362262393551794573104106923907260564607490672413720500625733445045154481970941347303270502300973582622470498009216687094026894529704431091549192905768330877377336239772243925595075744500677795834243113279700377948071498976203899949310416443598085341208537044777510760628356009105657336616844676730144845145295899548955734986955699039397178485005797720840627535763337007605470558014893689240003683213665951961249309743516000054342043072552950920221801867219096180143640652880904596843306447356863748261982447900283550039555510121087773391396292550234059280580469157149077601246930182464427782296073607642172313272310382611966278355150142548680701460580214035462691463786442739472402167266758098614585746378942254637757180512509692065963732191314479370805029772953948675273446221751053947416759523053227823501943995874100582768185648513982781163052279364716141701499070266824317185755178984100379052281348993883619121997217796807173374984267843304771329619057379779624385463110021667500474384167442159043473471797257282674710274874966274306826835698679318382860368304551801882411913863882821544141868146691453999949463475746747326986533410992489177859662988666176570840200669436587820923921621399647518385786500698229489383747107053463939183582043555166142589463927559456501067131710744157989861602308017874714401723579073294600156481397815563156158234672242120693185233082046362299680830720589878973319816365702977440297140019624813549833465313882620869197461664156227561846000938927657369283492638074789755644889587221538140444480273541092525367820048584073120830297236091941964299386973303645903517064657335215904205324854925072141401252608989659101858584408119968244523211017530329344910832458685089952998339028260321590770375407225393367033521179833551156658944817346517013574937461596905492112115322562596265604176597999160705058875046408210058156284167971320100561812474543153231976553861182436044348657530257798254372643084966070565717011723998392088233687487852277156446215438879511545133688886081658160400426485367606264734096143654267506948378974703983617094082310220056563005549955110653974773436171066560079630560604429497189427696746897125391579231162722687968010532766044353104540723018605801212717385969549559748347120784376518322771137865189042946567025700142565668633145707871373776286917645197919541888165611341858565566998520168118958411730965755192585830067314215382304045133950923764269028640121790822208071113395353634873772723602827213502506916622622587875183881215135976153482361524087003927928162946695841526770394000688063905254948133095838416013815370978019168567647617851354937288280809629952186110659372191267223092868025178673189386918207805339870715750199846054960608358205426893814787457270580823021876505331300440521940501925051028029880717940857338435415065125505531233645040249946833713609272952913937131935928104568840655845892477126338835096555140715663563895671917458218386522875524782434926768116269088867928624568730717452367772016812677458638861488341259779811850596652316686780384583017408839434461280434386471112885888880609219872956559538862335384504437580252106671178684910284954056798472944616849440228040923832420719447843663211529767174691011000262899305749291558297423960125269591746904113547009325209571048627721158009840638358275328110026331734229804381262978530017651366753765894471783402353743793036172683232402064573964674348396875308525316305499226117288662663648080534699017491221305296299121407375443923578740382750664942520623612652644716055683005768994445856812291220796135894749982428492420349253144663150724787836789196939461436168626724379985084378503539897620144346806080645310500094205079088925689367244912709373362030948438878246495146406141859318914011473244077292516028133189847047664195832784966973585616843482966458853087204990271914114021496987048330789809391865290417130534626780331536732292869474902165851477063194999772462435299360651038802540903142332767105706476229762620134564342377895899707393052919719347330674866024109934345680276118876159194097607213065658156671736506223747977238272472235383792586951227743416618762766321033525013488808129139375841659808371548970412138476580316696054845523497009646528590773598284486555034467630863899766934750979833178179065958157596942234477665706104952725239873666812109771037030252249851510076906145401476820500999983913621871407778443224369143493282664207320824804676131721003827762417771980523004547927224052892433725255480908956674645529943193663165889989438024497318637301775437611439911802798361925149498529679861789832934465918691774260208170129130823206213893960037216891428029294368884661058217809340951218532584285804141979039512787714839735930357170571965067605067415277835231183945658019511676571518784987889992832042940660253638785478992031365346695510120051474020610474979688292524764500552798164035710837451302917578748198126444687511758710469590429402806515189504113831839640872679820591576297357987610939136957473915476985794002998733108539655162691652281259910958033940875526906807253846267391961875358011476609448855710385851164395818475725735459019131327834760206289097743729829945414281423164950608242950220669247585504052431215501264705730282957422393783297950086119846585416435450016433283200201656288495474764444701265818955895127098666716223512978297331313457782647700985350849240865545150243519299295716499798731960724252089455952494801244088989489250642747390969883947849119361358132459420039215208761043632497666599365054638989407216246838275100536673675229415859949521448588366440835959455259429929277627721406610412310043895550607948146002233356436908796990487251455712049460057372883497289802745524447775977834389344170525384819927747730429871199847222106605942217763484537580106261181766776468851180832672331135749828884160657309019329585673365647269880448576923805814082462178683121466525031340595637794309844967768522011345339077314314998736435704841242191980473553000185290468515740239905845683139827866587291850993523569160879985918799018124283851844850534877046504103181585976503439913260787337275976119400747734342130960657420220946986807493661469395600929915749995882112086013005395708338476196958474511738644257179265779330774659026248259994128342764222816805479705173557734895708763001455588041080542158849147005254006384265795916428566294587941182425015798544360020159683335968770922751797398791151728684291159440130847918916359542826817319678575666603845798984675147512498225762305890427739420533051070126602010650139704324326173132089878032553865176819032930080804271771136796866561458163952039076702571468579736271986615004348792527520572831175329295270441150732518069667031923657800386255184651740556845013896066568086894372624129271045492684371506852075065931331209504697179705589675838439042961902874210394832648111470445309794614702247268629675994040248048140399334448502088314429281170368819715383266086818884919079106875248657157805689348874085223047452237276398512842386979130279309101149969548508697859145099504955454401560718206338667049054746090754348799746229508934967660997958741427995275000841127194846201888964313505120129848910863415530753564559856837919074578351290944042002215788031413188016294608021578756085580926177669290268868809423054786896599163768648941664722245077875024353434144947747463364632864379194974280613723729812990957492417214614222441888470008692029411307331682918398978739185349194955230675625080729384714555337560132710869226614001322425036139471125635278298916736796073489266178012107507063172587362902839042345432767965339459181427023222451332006033144900541882214849181274553616867095886445383907347821174067778539055271407458611785925143442750016744515965194171987501979207749150763848374726573525730369347113104314198421510516118280492169962503656568317619987600683234097937378379852450591379522113834954659333197366302968303372224929984841288832319248688283963782126174006289877448305445199804677029460886523762729312908169682120423436184627613416297895019351458943451846274692810834717194920957878533624497120202119954171957684934847718750667542338078885556727475100068064293883982844768614583621727358625955507772339664430237718933258164983892741598359396625302139987701560490427090621499005607120821685183916585765510691860568626643797168805348418039207543633746760880902653471992793092353104209596699668909450840334435647232352539073787729924284494191728568122680494743430061362725640050752726744188238612077588745381762783954271612527971313614529090092219890574411158850758040185752441616872658899143183624407583803342766330940307404070587840697036316622162086588687298512027178944192504455606887418206215532905773952961225017267117367646031351057544582632940579126029865291887356849684458433864330078855930416481604898370042048166080426971204826107788304570638020266446113943712271178575953640199090112177767732977477911315014112376583631963206681949668328950335763386919035150757576933457457134003349661667698057944827191387985199430410374530352427713077962290201920224665043053390130542101633821449976325519440430684525100899968666362420901841573872563293267235157080618061951214178901695570840185790945199951416191687311984745585549347811304236837587112484273621331505747777299000037553417474851759908097871092015365214732388886458869303926069162015647123410593069748217101477391826852733298379998455014317055541618538930974055140709539723980059615297021079956897890860608655651031402855126131678251263041596186397269258500674503326739844607013693775414672367199747103517903226356781361591935948171048556576986609091724474929990084878768923932694506680833770759823801368318366240684335723349001617961538460993333906609220838839895896077928403843513181468583778144183509914474821231034088806179267743785223237082785750848625743177971236595631905722719767033048075455982929137774256600187361092191537766407348029352846914819109899082713969575537689094561681426118177141764655811465344809774383728664716494140012527082554191478513058428435197373303646707530969264510487450035998674690633952411122870780715931493588116759593110036060914274960453613113818525847217640758023228243932923752297455982856045408414795348483058621292842771349261839036466045040627269689917845167602493489338298370181667315528770545788061136705001597737974019628214010798734135860854170359660858515841075112763653393594767285069154842696063457263812330955918447960845583915071410079995974125959027212156997868600075477672913425188443101393102672034840759846676705918946632959919042658500742846503596054115789391104009722368354970645697602793585057582812796698951632141631271476753353228801178147435895355765949783697562946198483594407441116216106143451667203172459734476816481575956507497991315717284005797056813200407830048582854116932105046440621452516378102359520582344036435385404433769403698342902062145580268912817239526851969295628378956148861596275306137689855470843856288731585265727887888378088432879902829962500567272565945025911555806972202462003315321978917932244674741784178311224334528390500198471208555662852904289249084238620620187486995741449412619677749515783536212442035961765331903318366170668880009986832277453266977522663157826607366825803483842993135219684087083056612380426392071167946397649902271903790542671220478320721103675662525759435161532306698161704826907898361550230026314361354777741433116550175095967807228977954816416012555446008307985841146041914441752352577279892050166369265233512811104291888629841158789050510079059218198799139761705805905288409101516450810365742429880616642565811587571649220991331526971001263288455552808690425052608760422437315818197608745780507579687525406027513683680585597606180983755086089695839012313165961883768834668793571704962802778111789147244651986284238030126496817693646190825657518048186092416676349877790655929515199052447107677406843672426618954602387703644555870284613942995085451383471080043512729356144755130951939783472948729515831802068984758640054719346161426260587791983572017261080083191127706603102734803111096134958020672569895523774425108075090825158855905934525152364518355844527328867238846947106902547748738509456632224510792707436571221178842701663880040545382115739641692531891881525628012951269456641521301265192073686172065483068118892944615537744255722107254677848257518543474363648566335788214217804568694724155974897600159269384392958288849680161649221262484720360026402847180003029358664230430579189182691420792952098310383567997162209873317925966972546379589164124468798737645272432518607848366362118695008930897307384138757695110430950275382464767133352946174153444521014724062272946723304174769826055536676039343743492026986475447160227331719230000323655152813112463628402143709690117341516336147703288373621315765268033129494323437963094783300650358041387381885321359192030578793492512349893943963546047832256376024796888002492689437119011669873014638167137114717987730397219793771764617965073911134353811101954900041000693761721750401303511437750060098134268277151525161584978745757734961353113022456153993222873836473736316087850491213863278122342150112683016755360196748516228372499343334910315773907812526329396209817492703911287973880605513645592334349367391697950256773010466283286741752598003753432401342142123088211488124952027321663033400912974163514279158103963118867466578025665916523408135628681425038024552941474777244951725843880812279927383905182464409079438592049930451267600324213603269119053404430764339518524681851224263043972883636015856282962415575922346193559036923675379461028093266031067428262674779409612780272051949577121994221819104631893625385287581573324361373830029792016623063625827742910191415716983940995070139051344982731011333387243294720626381091804429231371148340126795305437240627456451378894339639035604566568903937966943260495094957961071598911880067136686358080387008554399696499658254035096734714255739105399488107837818703266211159443318493096115101359566884321487132314492394546125896966287085381385296628818444051255343910472008167052670249960718187923806944174534660523239774179099458325465067506909788725692102960644495689510577091468348309383822633592360991333529522714871085249343352099110538329173076482309188660041451037359200485988766247532331983509742165081882407042501524874702682340826814833806652437287631780296094045016399215942484563909680458132866108104759820739156383416384314814597792897047198499301546429145229176674702068005742282171238665392402226829184013460769224876296277855018041823057892960169167543211769978292757950282642689654381615872988575140352363474167261041711228002434894793137421736967394424006194491134500837865011455314636189671379741159438973773861663893177027338745815370412193763444031752050881724005118236897294702665659329494111266742440602936113804971810016821253389890655406017313941538923765989669366829681223097982217397953874757529061372061342443328711271678913413939907307992157593926803696634610502307674626846621182394651221095730820252215817021922603233369869133604017164876033223052326928852050297475640645234722678073185905094968330558532373715056609338673815243149063466955034107317133088142452568339343821576880919547467435785842511759263275593827500087057061725008527157665536963100905196364302077819861045395353051333081809659949433814292413957727209189039968285041639053570925526326359704179686692808646267127871968267229930635413565924343880823237852425878375799341536026334542637231836245405837673329422126068269543945413047747355596442253363725254022420247367918216100219859672508432595791906640656186462941300347699261530495241708726097334555671658447869564673246907727703450932159173684503203171107974123161688411882291241647315581832600920136164907749149584142550846891530150048711417781158507564417901317636597935741954277822930861797436859595548687261159819410677166379194996129693809705615767238945703692235114822034852156919221059503268742316668684827571052722671806307327806043487801136543594493634306777366503405277060253809473234719210789551756069751028405824050568892492884411395088236807887798983347763911878597520241967158308570619454204428580962747032765894455084928426329433193495307935671986666078351988624304841655047199569617529862466150807308471444971421560592502381969294084805440465719989719100062868128078832979422371546291728735669634147568687572642535997810091838153259746191824301252885097880502427215997077075959409529103122058820380592081395430743402260291058203742540834843537895192580933451264191614503741430334841216486039540638107322216954025392715743453638066459921778428264487298320697270937406341568046344906024254935360077641670706404339202084865803489779655960436787389173695686901820938594880083448889266861466085568621776604122818215484139083694765665420760315276866762488452613696573669197439855285278831839112192603681962707768486939516210124201029989090183766336679126984886346212377798747304073293919097199499108103123636676326885013334442806552026451693990393381452651436307119116744756374370135359558243876138619439570704551889411185073099160398676262622878359281950612263785040257351630986277387673539169600950023944335916659200526306543774974202093226947921111209910035260885321428277685316261201705518687319050651918700512409807170889985403879820609239135604350964227174874483481095234126404298032176202445230040539190549417602938238140790743854343153195832500890427113528798684138749459258774907604080177692163406604900345276864940762711099179362596611959539579020868132967698253377881274698148629580707334287956361144836488428028167381240410330814850349399723435974044579605927142166337946276265222839639441796081748859349930144859415985633234615244835126200963968403583672383650481289943684095954960486738442991817347604839838880795012612696448351204504601202672680271910624050653577294869831983539238428880165190162273011633566869292177000536001763163723741588976058383690992413990302549271674026779982669815637326221030865159256039333393869144681481669575234497173077255918703377892991266290779982715646410598676459753106778798743872426160481730506445096957581899316821596230169253897887666898864090534438883721025755218612201951547896058867341786005004507144256280196743626612242881339159536350590199726118026089105644300358515578676724152783907903102625383989255210081096954542800394343214168494546198196214525855732729783059820843008458492050746323493729058757733556857661809241498675522022353820093312535541555488930022588523207145373665020090527689688568406417773849692884107583119739145139743601932407587879848747125880793603632894239699899860730676725190704474103921495736435950386196597974216372980581623704015781248169364461502804264240552261141826221021643962932742167987570974519701289772952129183172836866191497759552005238702021584437457696707969165639137068172053782241782453999414562108529240770050974369817359876246102730318682869427068872839568625666741006544962781704898148699054490311013095270080724554400958398714293500706821633851721232086084377607832868417857369582969205991287090979529286878225773956492804040452171127666409435871548960282559654469650971209570927233577910122451505072438407298571067869981702909357594531120806162323306446098704325059903785607527489279880075943609787982957900562513422893066849612477540074042567326704854114121471489667005241939013641422684480003656288930275912885723568110485711885175631686824303249733207706492382382339475703565109198500020318265186844893879115484466201822126792689212035186796946619066431351069833494870218837409689674998306184356155454688412163806448172738138875679487958578729498714381885397507691664969718982363399222090484501222148524216751708542992647599393648941220357277437719066318996660781291839510551486601367540126925658399884405036161553778111663869060845191797964922342012412692067251154807667469017302441685673835452650154259907435952216944340334205861673536799125551302086563499966525943700313043271094862906480540800559727314540767056586878698556946780287441401932981494193805779162613360430797658655284209681722842297083847646201245332655472316516988985097320966298224572180537599714875376628415271302642155822453850854953318784829659917424509706824668292971798058155806062002088058669688861480573888273795543525782373884178712325495065378639966870930368985164039506982061184667837271737789356937134470680267117169067667107277537895782948370882071901442818040297824204669390843648746514205315509599651434004154305998486592422590200652046773215872224139310813617427172956439991975144767469044694708643252282949015538778016347285567755575807839232847004907162084495076055569744621900632688425273560104687091027388823422591164930035164477842256093239141990692695976128367127652380771120951707041616542520215509007792279744543859211672006573444115765436421166677362287093388658246718562932481270900476988012037208309338506454471709955027965583428072799073640150534398326163706684356995272424937494829904333408604211350171211081440993689108718744255881245542543437157149000448557853138923568471767106264593643933628852891270073207876493836716836939276736235061519580207941436403306253495028399996366584974382203589565167401416799400954934557208145223703820138498415131057675478436486941521597896286871926649735695331388934153840909485979380760124758970487302926937860523556450110821744145603409305620412980763395777945537172002787077613491934054573740403768599043457010923356348694279438262932870824440402872933811786430554054077150156700700168041553961027682771483957568705841410517231154265956374255741703882402890212848841549506043674194651482031757402686143583378397434059194153664017761174926344290020875482095775799908197757481788670170987713141959547320163352708862394742424342225484265030211559993339347333632909904795879382555092065996817928393847799419867422483234762352870935852860051312337493379722434082058952290793551625969338674197847320626518101322237698938672822897683079763344111495014414135630205455721168136743841717747290564765156421210961148875626820182699704636925766214984575811974718024468043817948486596042256959763190613907768476858745670773051048969287394652787913357136761930692713159174643790900329398654582270422753603238867615985818795200772601040581729733866573468228349658143120474284263810924617281714048409184775686922310308066863302703338694695320318271082406225259271273784365394007564929196169723394627497803583061627135766126283693664854313612731565129183883744842866485164187260291583021769926363073229351918327556191379765808168916560848759296171871283748869473711432907707978317221363613776073942910805572629953692337298460211952037218910355160707163432293123259601030093908547335969958736283405254916317514475887960967459029866163036035359709344512177929474811987665172390662256502922620836599367656538987728497420447159265303052667776993542233480904058761484709773552072347265950971244112723109343118553901020247589432040941673339438904759067763367318899224665331564946390724776899562176910267239953269086941704503277459325265108421796785672753752698297651481757746892783799605627959467091426533335556760260231070209174358949695185426258892103042632341781474246495857863006891478003007829317229904209743461597903682771646605831957396548498192009891818383558970473655150152277226149016932869646949849739140795849286766810823586976615444889861717074939852590914853472439680068483644351382670273458490498541403322928337957001453848713966198527392123555135971137199996176626838181222104589936825212653172646285176661866361399022807866779255888226922817547945348242554788750369956926039644887676186658467475451700031901300398908982201041295311355093763529771226588778984836895464530919173834885122780274353125681141701921563271134867049417637978209264409095583270352867215451566270119611216969684174748025083564720368330487856728600905068003490616146332806317562727929039683587835386307922208752531837039865484189442552904443993072778977509989837548667421507518624760105604989298181330363580192295497234785077047138922106577464446863935496326997466883619886867319938408077080104190739699898453611024884942546575197264856287816682846452147193478775976710653453470877274475982004625589788032915925990247306651130855457407269135716687295809521077639367160343273165179795969643436371497154314991311894751642070264580140999037158050730192340987572074559027448877588906066160010233234436046660130767074376924112215871442697647515899881943053829292785231652512552219376067968581087648091975777509239636568951853177690549540476464550606116899637290613601533160635629455735937537825923374652602460939984378040574459125666909770641532349928490343958365852056852808010423651301655155247691968886514094976649582866944836804467293200641985729973979592531877149669919812148994614514903493431062889063415626493424520390455776515214477914997909005510302102464374032365574506219913385203294714594836233320847225894542458277513717234058478550742708367608883696291907328477767806035955957579461071196675900139811087562574109181666537069151503708425816350132942220718477356897199820044993590033201763397186163740373985197813862614143469699375411115267913194933037019257757302808133214345699762237380746834793398012246593894763901292161230086128010192203321211695611551984152160122039593334919680879304651157334870267577804335049738552382806248810751615673172994165111454515356078752063602991740108919066106383232183536482759618456731428456927652656741430968208484348008633899238390320236380699353838693340832050327865049116424261505495435731285496263558383743698424162350217142653511675707515062359518967653421838901453673361842840957061832741534608144291350138055529694786620257369390984784333832954927621400006627447753193149993031187388615361134293675352274243555260402481654915015943804480307912949972944311235128935166981808757929753193225081414374795542841667600196636046117865769015333802623290956616475275285413981056714118765765124897357064261985641458074368599491811589111382983505970282856620786438533616764640144848729146735392994005403475126154038527179354348106529078980140902195311756139040578266392081535865743986268398349178265599265507042971744865944896015204950125748640706314764852953715482246411050487108580154768017962674219693532999752509951830379254482810935521857928801290101943676482819166157747315148683559938696249115776203035387935012476954765535752092867014233544882658550072090250294657382607271584160486594965299408783955647446644914712008001398591629277700300008518245762416650619035411074822319598306921600622248190734328921384672049181670983944943458228070325617559044767029916159886037004228583198117786320329904172183702253500433838269045319832043655895196020965021069120662680977877150905537779921395438748008340985686305907789419352001661143953842346846439331967834593703966199193958244605686480981073825551005938393184330849020681492446283819753635848832620932550066930474056076441944986493276287432395563145253949738453617015238792476040722467002172124582439490065613391677137985153827242680069613959400947045245190358717557782773390259584640637691343063973195514097696164198454622078022148635842083990202308270964246665395810913181488875096590299324045169171427571670151155798023146701540155998460627809736313827791517764194908832496505200655793799614906760671978477478753582687670696966466178861160501390637453198601482553020760116269865097329864055686017587371123816183991993796265793697169546526161857767517430146220643636943089233803393569743596461358038274243550327239013628914418736045747057705463885273777504621903321866635025479418388960841932666726523397986519736318979216755784281133357897152869020746626043133317327403276373466172406732898492174789975734903368221586722711003514478958069901385501296948172151140674208078249921343223766157956464830329188885085426335943468946706429654005574724897587009228328632374985124905318252498577251299304009859558934746772857605029864139826850807676481995382368472868632923082241714914851531684937277866072998705848232933367886812967879435300788507914769298761921127834521831683517961224448565592108948122216659120357041924781060805766286312013503674505442881704495299059584913170184116651173631823521929748489943789575057667232260459169588958439288964486470600377573679505716753174825301580480304043587946724800840967334897785888583316946276210768330997483365172943737177618343119843526524946929238835956754047065484972188461251369132419767305882075010448358456999791248348781611871177882142779063877352840589060230468064450767439883277545758468061945359164402789120804676965488961348850561304857493189579913486980500233679971591759739806282599376997505871564455531067473462609451187359561788254341935404045661239925367639247203126510155502900089613173960794518127461274279239165420902128876314052360381880243000388455606495032876001347994670434956817778645449203478904909143338456125756091402262089638455509425045789563594153420637813894319921685901351125576303951676227420341361750899741007226857913219194088866443772946286480415340318348283780601172073090518284750437318913970951553233372449833255483305921656070258181282352758218584328740788256055399685165443868764756778420284080518564524061386477266987095948795756387689918525097300560232610056391299547300994804334816034271115484860121710062620043423133469480846299536277954576066422938281382846614592769341622922573951759604457406279006268642380359286875764521590347727524218866547700766243326902709127719201232189759209055629864170409614988007348276959411088342364962483285868115574970963338177031728960420344761052528027043841367166712420598846223001408661468249581964314728233783252919547044292047769046852772513584310491191036564510319868847969961776126020383949226678032341147532601444280963133770066178554165366758624678390973990996861771749444232330456512838516502503282089906507913183939529307579382476645205638046206941731546273024926635008316599957626078327435506038820611807327484615798384117239768367779489797312574059445536646935930537751675106357495055497043355253242055382217636330565536873807739126933393080177571959120370215009281047449975780839976559478249832547900187514657235332232253228744943716615687332750842810324048635055712656304596853637177930630862826891769324893521508117444296323197500894477354123944847063952567902382466933412829535035745024219675276270298892482394632852857798188441787594908717624943439270217808352067305404858150719520844552210961878541218013223151123030450238648283082142781309563458082053642099600375221095274801594577456207900578011241306497354219359530605876803492045972608233560604319579665651709022859183989818457236334746685967384027784803284039200605282809405169301542010876068046103775143098728408181970834268426609499276507501901400952510332988499036873025920380989121842793743731740278117353263420610286613745286859016253742877568958677262807122315716893902579168926915584522583455883033811895873597084473420105944637320293388418885393312633930184996277452941043906253621464117103673610500751345205946964371556701405353732464797450770903696601251464593675896008460172130025341744953764885913728221937914081556279569710881187659437583860594140170022402353201053437105368378001855104567225397308409656365874433826028687911502423740677522794728006793352752348928268834582982501494654127140691477698633812360089491311587525181659910719973306769658331160671137027146959450944066179684444362256290730579828481700368030689853928596613235584350265261532624580130469296041832666333157577985384582852809499030685080285056656440271477236942848596207231640665314972634408511510899868684549336920982934586908228758004055339845334503683545831047519956672608660652222086570863146634639470084557604773161015089868501701483573516408572918524922644768561760700200086359295624969488121619409190177089481063031594518755870212757797186655905922284493148181292338555645018819906852904929976526142898385408302049669321410019350729905980567733725792423109986616349261861789462818426841658533048251857378473569754332525968013784179946858374639768828787332126881134156911831890457805278149915529927581626203161314013382581289953822232120715271635900701523585952426880833679273563877127990283514570435686624176846349200469493743497315735405900522490670806838132282061146801819935754233776964443339823233594885560691503872179830606265785728437634050820095399990982122514720513423618321889451334513676811085562284763750722472844896378265016400315772866069924729848725076268987945281387576480016620193201718062242494710148404319442984648792467026867683763336902208609546619144209254340469129744123553391741248324534008954879643220707355606443164613508229468999843718095332148183673142936248665943314372182033476916658451634148132062691127401278301307004704659913376064434315567594528812899473006814846976190547585545925433843693100656581112180590267576195628583515561755496996190834975471505064275293960336149439179855682496538532665481712513471221559585150981777918582466818070892804354851740808684232339704869519692437957241293199829646459422960454067230584864863552145068483787498883150523609631237284401162474224343121107280546611508013150843109479402852617314627777815655707335367244077413244131977072478176570097425322669544576770447800943463679095779225331626185878060188651509924739513294101534235753750811278475463945879856819077420314062298125537135032067051125304519919025648239316742834846794822571268060486149889036774846853835464016467365777361874990809302652422918972155996713975143448179295403039930342235193385488735266712949319709012296743266259015997785656870070826993776163411671190112449744317682551635539252212196525865677926244147897158839925615616584940935841209772511198175073774794086882039562921196896788605294492681767872138546946896274993020568196290219047273708121785624246731626417065662716193125083338038849040030187813191388997571859643090562994838840114457170033280162238517407568642343006939451556532170975909069325046896094154320371035486382995250171708866523621232065459841254174838460311967578391688591380519483116197244545831559827424253733624392726968838446418107110019482938516718927259549136073370792510143123588286152697028499930128129317143181357868610270934958246536193934425805787935746328289616267433888717315664331989849060503388356589860354889180574580695388913506671152281911394351548064512256932790327703105226929910354821767042262746232671831970249913358522201385389501853018729787254033155487045078242485664608470877753415213974024659897905606368579030058123504242329988928287376206941308195810695147896042303574388318202008940526342187765606393712504676793356745734029992409416500921446882596090361157814932352961873019685990171475220605712714701048131976692721253193642814645313751249672186354737586341301445624037396870498146704292063990984983119007896631103586411877679030752162421370310560425155123733627668279159487435350022889202552309537619939330178507737284651946947657018757052405431031894613047884279463304576011238847768446191383466673939903579327207317962217350036599556054268251794905442443561020346729145856411586298115366010751250060615462507492267721914631334926545999821346640419943273473453539936789369174615107374747411951787795609105720005607794269813125124474126517408262759345065487417754109703769702330148370234308836800101521390006826594940973544379004236353868466625578121067397115192636713833488294660910015567597410167547996378738927534139407890968023188923888683213413852211482793897443912362801332140635763711140603609979225588860476010999342011757492226974099178702395256031280676557953348779562865426989541793023467040995437881588255609425636421577465975034287506952585699830004641089064770483996687686752688279489449976381106996688780446000911847229619205562330067886292652547973663751122754357614212922446012388140336025342416612293555222124813622183476434761409629254680102130246291411507071543574993690972080003928769692960765442392215775640184288134742330507274422752941071379208740909539710592552028304187477176108771706086214172693097268599254807595109125499494393106980149086269566653406962300671117815304882576913885833384581040197869920304560897785390055550698647132749803168512453729644593593371673402894888462200033742049817277748484793352632566117765798567571643630283521032220108553761984982020670783652979654607483093677239561108117516526629308173039630674276889014184051459673089726903704940767275411091570111985340059536157717458611085355430936778503896993366942189071181325870224521204508880956677914030086743726122301558633287893822066433714794634404774517204428679391145390259380016891961602648057619246016548955955387561051690205160123096675568900280481121402699182145125467623684919943201662766273109816427977059462253790103593362595406213091963147907312500765429840560003156222447217720626466778964841945520542738693279068899668451028219879167649413756305479888461519727473999083853620320657353155544102817236816873648280042650622378334317748606412980781656746328432333475358433628801466991533621257977814009090811639043674132814910647684942686523823881803630993486651822291717766763991021054954750159021562852662936407719607778587278274815364475535851478815334778977212435803711154449169101583213958233927731217087565317371365333779605024567441925868875798380892287703771278326040993994134468325554788850884867804660994430452538101431763730271865728447013752120881612210166307228389680685635587581617224515274893368870283578144891135912438402388532899476877372062173329209463109712022822252817816414685786804044734997100245024063310241748577127894308641438939400725501408875338062521988668093009940580186069906756091536549237967511438775446135699169277244228447613938808103508794414262776211818621709525445342279533647079781420454798916649609462856229098702880493320701119053059915587747604578458016538918452314732989066223738574990840159811927637935012279198080813140281106847348795527852622483929375999987906181113557346484699789879363282445533598321673850621141712386449025613871759073481543511758380512866954741130873694842631952642219012083420941844911527912715373268489551082923796008623133709230885599080553605855370516210843007015508676121713456170072941088612736984096338847866585863695262591411860875318132736534776675212902950248341976874053363461461214472126505499968093978888024155781763207504243891365011528005440964891810446637929337174049013725244314227361706238541666186256218790000071795733829866734993400745941078005753302188137842748460947611699479850738326025014733915314327977040013187229201277130261772470857815315122528945419697407977067270142592036479167346993896192301503639676112071837282735654277335711144277437983731711152988718799415770795325515881526811596940374339349347189951586170744072253731302463157400027933276884875220763426805887401982277989585003007545944426522207843517321677331660208928631944079398455669232034392709754908615899014728725838389059739636060594257017226890878764168696990753391825338881576461446465014977612552371256050272563448564391005499467239847714695401092135262788780619802210593854413940038855465771392140612443087813553484788798060577791046761922246335676263022359143319562976927648526306804205111609303004569450672919319564898277810102589924487944121903670070479865263775403127275813973101025638807992145769972286856598902543744130019505677767777737618441298558427169532517730145857416959409459878692909050034777684669863043409683977452954904120638448277669204802674754558401337805172148521895251581631651754669647778511054508821482674355703670948989702619937659533842133248814342982447183336277508734962665332056348205955549878745865252639913651711504342529386372403665845449572561638219484758803182278205376643948719342227622936539676955408242960742550487698607120532398423241736922877471844504077129615942980300027299837741235102204028971590009531199132734116238687545506868230353485642749079121386114405206890649386126853607969560797505797751843969112789681639207509902023574995332739156886337173084534802030926235737397332566779198170246838230467873493098993132545087924161556491882229705941055634361570375296928838689942119259628569039277211227752683224798118349964602572756388526938205287669818223845154310160589376112625631626067151561702577561937444964144191090035788073020796710435464481132966309772909413981672895370153354537898350895264136128544925049042897609095626827820177734765906339152844235715341868784510914746010988454137100034598275824481906435714886477201653451240875940843075260784372132861675110644928526609069185155609504341991125202392226612512057194648009379187470832880877499371455371383910509525973939133679457000735705892766831981443978281762277765727751296371904061400062361093527032063549159404704296387699770630877510324050534664360742316601902444760859536704697875834189278762839044400442666812535328744451885453345104908377332773046350774686381535995132016186384023880506517316271038406192019714741029783282394149782729881555111495049679793114333451511183107637145226795492148866734037527317678755077707376451447958668922313709461378301094464438772198463529806046115697419059841706263281708650860937512299595431113325032929307408607648371708531363448718476876139606843378331229807989510271678824091579741710889622715829595816651502004256968304165629280869079195912689881642931754880845754674888442705989990838224816086953725331463007440350116013256242585166637305083492046454879260021493468655125587256841990242958650593619655862872648179340682300621002744831293294037656071310362238203469784604870446546818677168540418564315274532997254335562758513571201895628064105652474009216523958158562725672178612863597065384252245251916196940116489802893969592921016726117241587533689001261349425832247828754108313485433104270988806658850881871740886576577982179568079869678016121666783060334357688475256453347627699687790546006459859913844537213434669580295568396769956904277060023187970181536113377244888935674337550989975955978445865414893933998725769061041124538724199798837363705214836793432556596107876746789512786209160507766887293242527060271898588132185191295558656874232628861689639188058082960745832181288537618898165351230994513550022148041757141167479922396883401985055374347744526399339083891344882155519446608074016985375345305744355456415427095871684122937286264302390757247911221613690073870920526853518831159802874689812977741069516470034044777665295866370216592773752102913558155636466984689406094247221247434134567966931406150317596556101154530428456243552545694078370251347445103926561255331725152873436229307774533936194529179054113326008090169464965447802997781977727334559786510841786699557018293883970522317968300985494080826847311206749329625674941669091940860930782717067963394051373127122526312326538603781771191955372835567113174536766383604749132408790756844425979538091636538334458699018175194323858649457122343260935872995046639842320595468515488451971162055404781384288593210962911763561582994309158559079333540804528974013487058176519905605589661039241476601386336939060841846144620785731214213226702683106880817192505702730337659483227393331764002753325883956165862836070202749810259912208812908609927360015034826496545096772424197133528424288186302797009719944484838252981005223871316064632675697116179193547005929023234235566521838183895325198512178462703925801049225791491251578771130264517578771762268533762726178032016812079475213222982791020237736997042526605937130767661324477272059285813970068244267457026579621443936517917726691864313526358723968154356275086032924311957128659879780237822953844128828855792256519417753566872196953035211017799983521602340600062034438992414295118200679605822901817317859242312183658705638203737041379242102318606973783732312486828084165329314561684280986308915553872730978898183977720251092066949147476719584182917493948142725694277373445492041211564943908469505761684717793567682861285013584857692388658197409434129467110618487779650284138160525019465882126477641698013974070784065063132124537904277604492035982455966769457173221313772350878334909259372875546251168876145372769913341426919453103403145213396781299405348601008166682285228159421162111887163566219642104644497911243369325491314961924604534836976991951984449037650507904396443629388654665010938920352380993694613775915630164948408381053907625875425055293806282540850167586028139593333198332243752495701692231910502594120690951070706792531653622815115980137215436745397092351003639803389055657269040852859462040275413732151077535875674919633590614703461948683933621124782504789035289739072919406576936661724777168564646405786478558741872084210190950768300996581597920236837622689814716788645381575674759419920042430638238716296848547349499790511193195853703822549516373575563184286468985966683939934567348457434353032455005207712508892932414373554685323148703628002918987390295349869752911761091547172764000756121407231748163781917740132227943303347094930549278044723373394367734462961698415652162141955798130438420568785866412929787040669520250307632805603514291835750745676708079605914300973100336859200649597243075930785845432722866485676043752148904736433063237611378982761138263956677383851942771704541675772298571863015485613440378185825976415327421797760087982411752226769609752438018795937982504661851608884935745511003639361891552189925035871526675206929048010297764696863677342071421753031358675028361901369364563981988389704485036539835620333092039213369346207229393806095900759409764557149009990526285019641797268693191617807318366708989628123281745645944964079275926201658850000583984920983297338795646915072492202979263817767641385993239107985403617191692416583549050363397496776783188809114110055863295780267568009144816181087359690032320687635468575566129292789549374629324913024543563413999564471306851816843969216260413409188851387275555229292849375421274662893235294710483670935976648464119862255879127496989868375470073898025202797305835687301360032212725911238716576407533085208914437423242205132319466159186946068041523241976269057042037899831863436393250483904028158155031469358432466102954343335910870830107310033888701003137183111438987789156261050566829127249624729801449051005428923440659635454293911734851766097227141892284611606984121447154259469677452448755415349430378197849275802767649510508343583002842704214187259446416927127955270010263381954085419502783741704147478024058900721229538742608571797951007630492727783432428349126313875466551490622059276149163603409517423434252017529534773246411794385480878901536344640039816634134053338839368558118230552949818042143232071086678385765686401656840412579080040167696180312544270722997181774701045580371061084856773323513957424887353336391811284888326673853157930328035326649398664034683822835819775871344458360480669981125089505466301695994522482699322189224866746815771114225722441231932800983408689367661169727617887544344693417516341467687904389681004786410731065655916535795477911125874524267541555253754244641755381069201557484840759816726732494117846172439612530726713476667586994399964328887306858377715523217693299407870633179176822854815223915914959432372266630868011733120115845140340553814764090264954804833543332083031227633268994997764415673370711631352772275016045206391348362202705029598320156050590934843254635398089839969403726776009005520824630039670980855806949149679967118084241390440399647330307316747911579909190984399841210238864383658314054914998765922567544744354016385602445256449387221298082952836216357623608050269933407718685481766401140290687506162144512621961718295103849073053652772208460894019143050134609483339434791594347454238938392813856813334631342542676182708817025119054189042407894766338159700289447574750683328593829681637214049051350376225822449778324102946966655713314898734371511466288785097606588834678943993785229903119545055604892675366676763154105435264125984407546747097668742004743455288802876530298151659841961248926288979982121961437126425714064846769988964728222520929009911739675385906046123744130158135340713724111685949572333095336569566561685173238409203830213880023775907363041050829804080204180022216247554426727125543045761380979564320896780819654719114401106058106168411502183812502022582018690700831504820799759543436168068862782812486043849111746065727671333875774637380910083098792264227068083522846165285683685335714053073859703351908560222782717452005342903734223730988223876997904288664542198539248040469284441454073218672646881531176933529186732709321230512927987307086879993706308788750276356993667240752638295811876538090446679059871938898388176084519433911387637184950392575875172078074404318482307630923079104413428800110630845474611957209318809400144204785390206732460608505913111635600919901295631927528780768618418744779826289051267623028528573854728294995746437700873854647248751177407802326846855029376436747770468445654917397172646579051882782318335775090074581674572764880414066274972861022809250693626313142849456996982807313855691831862966331579081016399536031004354665940642988035023928240688878846233944872258230379172593059892410025165422911105212318144917364920138257504952441746115672936633380965016475515999681927744803719475560950963193609665149037243593222228010304030837642278223920056833978287447844825074069703120178322026322189377877640060322091580648352387955535302067366276416179744882250624921945466329295881852819524615796621397397229366318495852367558737224330896333777281469154527293355117878239007498006568838348391899610799597186205085543865750482564261230872131532201588729570112081486020516079923571258144005188785500341663214444770265219529093938769832042906455248562459881358186119741696068077703097605350682631678204071106649064814525359179662580522557320196588849821254919421001457288912074931522345164697834491336898808262572172108162925543305985246235229154628009947154110416132644307607260492597580538787478603469394290859178928716185853772273252864413035218489740233019649419695547463403475040219014630321960611264716291620881240466842578410233701149795991414611432942359499361058444597026383791710065714165980709720275957267129842969234979032979303364110051949999133083612270193114144629994935868920878998334470728507312302938573525497441883214792924079205676560980226055294112109235997890339659977216770712644691112921786190093050788673443429644396403841171360314446759291534618770731204060538680085324310274289362701084659720034103245933475348508151707257975078169058140286871002306846285860198128853558102701431984799643356845015636833882249253368122604855791816048720635771366521439011037050160091075682901132664321047833695719304742422082060960770652459836881252484782695342806749206128550803747249975333298289719651154668882610512410301353868986232906536174976508987712609267346313176842145771248877062395546619489973331472615785342037016063019551822523160726441021207575568076118156607184049653512743909969438897793428134597771174034437291660968600137306265041651613944247429973826981295370916304759724299600432447140974230942996637005021634408309046361993544145360081140636183222104710689383894966121729985615909852227095286444823471774988082106324811617807236307428712675372565817348647851538941620488526299563947389302719561666791333195357899275514871171879070176201595375905280099606958966044161157458650558492107549047164407500611065856352342144356405359907274698036030401810405166402673444355029860325666805221747226452853091878723938902281639612285544742777068849312578023207298825355796731668348767185798796201647589718269871229878295538627305377841182441350946250327079288640128566066470611932504870387391967333772519477684830188362886396278389427211747587078096523127188841987545104238929321641373212607898390126326875340016462063045500916388430778513760479924319405406872945093394723699497861331639586353087584173173517397417300539715933795677322555675687557342952199136776044633196950816173376061381292046344057488967422242949488322350370442398983849244612877388238316011688856744363988738524703599700587529400079887203445794939709811495458024705041465859474716597417740034226335083714181386547216222662885915687803182715811442767831394915226230740902545359911150650159550435029807339300632987095770979010807164386986421039363382307955754210341310468837965942209213315324452623112241913094949147700952120237199590905467889925713458436571945880852012644404508198210261972620826399614861355863159459482299594359335042335381775892892215123677458337960725340996771731058842940704051398033162982281512738436506499984882057568108191409624755599671214254692899988072568191769996735589274228670889405374484551996103309751292981229286264236040220592680524329289999032140006933906937120850210604817221549632410739113224221867841936448379584720603527207425743794400842575342658888069841360107610830957941920809772527213756084561016437691022047674108665057032420074092756737859162421790079826118102897899250586970599753516437294474069164049803049814877290358943197495826602143015302263834128365472648304462865571996938216671429146685023511404102323939710855169403388405372227918335199248327778144080560096688948455450373293652885016668722044817120903991467363042754343181755924041235896361073739287517554078473992904683649997231583837059301087894994307327627103577441770816324779935264413008205831426727448208246904368248450753736134419656846959633761547309806422226958053896049706414649937605767298772157050642457033648979267180211297306747377211563161030685250264594384234649235796505777910093385302728284919396013151641033077748308414882258040383897812638085481508758419615422870463739772353747024635645763880983113909089005974133983496831034366877132058980827472082200844069222635211498968900949442273136983584557964955634931542034219824525220515444549562101755803441596642353263014636137360865325438024470514817691122448374089458706223848798068455820159768411504954346090147038462853510155750019887970983777865401507580137524523739793940848105249006762609841817700154913127875919677177029003261919856520396414338734693079942144820330178152192458969678660536202927098263144941870697044707885088429103648877037614330345520178048759086522478895408423165832633258126825652572990768896224571001926679281163186617954122090340093052473569993463267606957658209018930242339908637425109359654774220478974218841743894094197675313546991353193682254110077866813821890484793621143938386542941012161570062975964472556652647893357161296735786356392207327857481579414856907538825645283834507119216872909740148716823313162207663867719014945844872794044540160397289891668359353191086642430556903630830526036424964351690779579244998999985773461981029929803930987563254763010612453156992649323644814556038146726073805190586918029486401243279209723068896670900997916861585762139002710965050911545429330303603348440100656676197428276217078578664730691944723470090560364717384054151518119117730539297987306666259300691523234504173300612678731556167353119748200639310746069030560940309008443832521275754208450823656320717030637523506766301573149294163926555275623257296582696601710315151946692721108637328815522528911183143704186543434302497167616604028308902638421309665797151978499460397849343245359727115528300271577372063452233690795179455118298456115593238867680411700250910146032706404585162554267516649525010186367709175953093367524303478010682953536824870780565556039685696137180318699123272326192407504436071045170578320015697023150778862314525442337323812197788381125930443426085517371723765065992766896057117299963038350382979686880763717287122466275751120171844159287708813431303866216411693804826323751606883147978231303377706615124120724613886382249699291647208948172114374623211807674758453017972776003483173535587433781168762690242759981756302234597273956966370242562348600763487421974125441238347509923448937408165068624503033615245605130652575510755320735155007243350120301110420844537116483710707005042606761000367373034569933950756863991459665893232821167427984229779243431459256049765672729416237494092166196063727138015405419769799309800725813831466024935231259701178301262937041088102703097771308199628347815877951336448469810005439098819241393773197074126048126759337966914937591774642560144391375371237666982722589772256535075777463779711420952256133113141893130227019685175308194382593806901017027491019759472810424357763980224713599565868988038421355799304484631622111636054279564232669945270568153720491346001368622350856335660336311746488070204105716297083953999372321204216354381063197352321885698071269505372703044121937489306821826894915773067420267879650302757672521428145821718130944415552137381351869005838047175250860393908203710511680314745031589794021914397446802374592075842104542146944158900996074438516663535338440926125157534482173487628124833687900778459824901466434883290354961454121601351332139437864925622994068136378505958774807971735723784388470637801570405923248264666253672515832360352853775554377524121263338767329631023012207819536515145689393934395382924828920071263411633930616786705748076150824264793459120594447797551311331205721753034752219216626694710023994223317633033231209584626631744621011249845505025563428451776468907261620729913868361841313191367015200312328715167003210402785728902080464707000072905446886189528898411114384227726149039308775443918993571632861664298034998082929237903697541332329793871853716358300279699251174077870464685606347488091301668698863985677558687628632601141490066910245559737948694541474562506389949702926295643020635920417674048582447660297256290616352171306073341616399820712325579406633905262658096929492790976412364022830890119510940785226533788393084256029405103248927989191810924693930597150740272593555302714338160283399496237481201062661159497133274436219235236340118561362133820207765186603255062943072004455399800057060692116120418346558899784909430630913208589203772048961936786672736848390164998016507198772580618729099902504902345077189130721764532557391675071889265460981525618104765669234519178887321011475745660636993096254249976491469774371598757442307239994400766957697573718948071326104860195001386444556088247047118150211814807473535984519415796855495121884902284149790404033105378939633970358469441212993034353972810147656059869248039082097488191217678801289070724924564460973954698254222892956041357998649898176422552557945635082832700648534158302914716973962238982190962942760349902321821533349943367684255971469366456786749838331031995185886741400583766125665398443708124248059821099958232970504777368860836618759099128006468799063102295880902508837779862144205212510945654068527377290798908508938710978001623368856466617736527291785288077403734104255678983635614411283643101396558387010377555145463238313890726392391371298485448985632641316030408787936294547023873661784596361707192114304317799054785564820892645030240703367072372472086501541512882777130473998927888179191061539822201906226115886673021407778403426008653008106208696257390546201864803315996214643538907832420911708115726595828246000328092941402201353312761351392690931478522673723204295314056498486353532133445529854972544993825160746967499109355218086771312379000862415265815712215719596752125266729534836144893080452594027903197689964681008704304459609927570184469411450579627667155294397340543024467323498196192538493287259634379282531180899819433954168953251244084479010624130685813973020189938754172079298674111310044503507653170922261793489799694769593224367662202440626155721115354427384259767691552804625032583966045668766439716526548448310270619992718279301281361999156796557566627143459202105721823355925557548327269100648192530543240368930526331552040486128144913521971595924986444509714507460200154645201050870867128967072074075403429203354583421812193448910486225716867740242549239426053747267730995019751097396681367946443815504496584290239048028684047176325560414049322833859203368303785405333770720903094614297040833906852603405773553482913935934737724162091977299949306448983525018642776556559361533509408015826076106138600777670411513702540005120701807175100127498000941361610296140273411128017987268139312084555341131588736513026877162047565542286377227087419464731603023753483421557039522191319007738519847922938617141503581871952069844180689848540494117984221217856793995239885592259015611302021122396079388619780415360296099330286337612701947063074871212481983942002877079382729415395712360704960863984850231280228871337672664738734745178440361430749718738247043403179457392473867323058182009643973305184893602376323757263804815805420105201112272830678879271524854718522344584071571782583103847750683176310347575553362996241785294091935338504629867445247263500719212286535006634586895981149233636650515393667404528942394584691946660908338290593478033206706451531004515428230903935282413907736688605176540574747517900557689987679194921555989197323118965047024400225475211424508578112269908478721088297616599793994867487918614896882995303048478944259419797552667605110868721208701592731872855238193909820663090896125809733249138684806050159223073680300786135111482651789657492152554036468378844514902821189809131099666644807757344767169795222724725769266323846310783788403431947788776494747104952230005241223532135938492113117727755291259568812174922458096899044600783642136467935784384667468928693989926362486481727149475416099672923700475395878268163538966752950066234740355526200165642908044690591461532760427007744108462589678073406229970260144647972083190031859647716655643296000909019797520844982773139799847557003066837362730973568918829369461240647344860804685120551576744267964936825614822742835228484249990560398150009224494332109669085959241455428494788604023458660211358145856882453364270237841854155677839420856300921386741870727537217518854702739181690738017986244500332350290545626936705692477959819465158777651593032350148884875178795703381703216611165676667025195244661796146866172212493247069205864309408771614952446311239989143979418678873436573160417683461128838019387854001125524724021292289810856006601653022511967415728027181570291757951669240513723216890966429639983995557406815217157226760426106468660255246726239699972323842567869931682035355482158277080024389816890858397535261699269719056691808481384591614517443579292606140957321883793863436901607174004826408190436753148778037985357061553380053675724730668477353612753814367158936920357309654427376775576614033418876066543200158155423934464392266697713061809816000311481012258116610237686941681877147938212771739315317499655603245716326151552489605995374911619156140228000494744235313870156139523349095357739498562534685256069613324937423368189092087425923296039899786719115446321433993811879120204564916633604409336918648377665060993844369449132317440060848114778577824421295328613568877813579908490507895021136946296806921669458073709138177766150120785151455529169206601894641748704157961329017514816901564763510501808426401526992121425988369487827938696903552488297868254144008922484502739502902179230584368178742841191525988201382320395270663119994096329234476204629344891159543984972309969416633383140890544836521898142195334998634049024634034665631608633174106091267090375140987480022658056908368326068423153659346940608895589319838825447244145663148629043207346232654724777452007922192002851396546830687614979827464385050342308494045289511278795690638990991083018039386643394359319896887398150593962892096119052845280245983826937770577689395283913769604993157971407401318817255164182219893987763474413898732497243716218884743428982090451058388261931337493571287665179148208445268792690142660848459255424433415505520087201948620991389257733959742226925941680017850125749643866218118898574377307643185720767715566212744219741900138434341629459354911599228804488575094127980000782269723379901507659484078586247071074959091992441163698151796311720349060737203089432560805376323598408421532883639656333278468783331010775707204492292518445026396491710957608414775639565537707992469925967144246373671033276105463358248121650989399335307927838273909180939537201596013265272618338690184218419900077364139300988499027738948887548924538112942038868993063496000796848302608540465662916174365192184079527965129369203971090335268691657137204286871347612073289555868395651625636828028595669609978095150442818600608712150596205683428484408666464835519659648191746932979207669831023660399968918687550650523749499771674472134861260928590044068245713503465430641593463439100751390718325523893565004613869366092703360187324366324551235243930017515575723731645539504821169582652392799703541560741502964223791823412707340927213100271709405573059720364807160637983219425688038741284231033618617199805304027533062069269889617224667929745267083420212633844841363030474653139147276397434131898751171020217306693608202762621267200062790399229601028455346429778418732161224250327728886499092327336726031717715009059461954763960221740610583519327543873040737771626515144549895320291638854432149054118267027479503250554456572068081761153090739846568801286105317240546010233085219747367245598719660650537688698933559664226197021102410011002002287245326080561675047126911408610702015999715221972179190327797381980891271400024263527647056342444712650840069939193696848753994172351495979641550104426059541883538211267566951837855151059757221865697076600377474517643113892245008973097640169299420961111450280035485208642408229388405941366599808335038955399398911082524990187145138607532575802234733239658726270944668405664408718599552255825329578482127600501656793734408057847215282619951219678237933666137650984912866450089766866545768069710781049892978234974701502308145879012169467894724557657847256537846903331533672779555796268016079591516282090709407978524270397134055018734866292225028953548250101577162523200403824756695692668650080929608493376008898684941385350269293699286935182133265268986592184509731617674772388645127418988430079679412931527629491296908831423547625642475597954580417454419063020202995518101650349042684177370353304383064970304688605956785844890270056089006459106099108520519963442638829166157965880402212179534413744938205581867618584395274167312143601326303423499071779838971406767701135631136724174032982407328019791342843612290176191287584579071028132040140411059213718354924685961105118149758593923489953993404619281703014910037790652391796764125847660148404834823197266920477955265198348524363075350114201588778001164755572559868195730129761834378002829090836503424280541548460347950302223777008219921208586464950169402451794137649730654020213353061741725115935774702266154057283680711092640915879680143248023822329838355469488341078580157242411312932072219389551625496233205285308633350518057686951892878784082242856851668326648596044115153807247106398756687956673528520825947308142633031677143352057990925277555449654598219952610240597568489496704004972479335666595337509030286871655091184397813982007020395858121840224533930653311585506234362215761296475635866325727313487338808890815707615629614187262004495163418185349057207226960021565454300282226458957844255964047566143881051352837962424650942655258774195776252991671004771355192308285061601295754999063165357687384073252749750670557826361892591488916365490230113157533064764416582979267946811240710634996430965471299739629308008391801282422650046832649976264222813391460670582398950403277712415719827814121578906602961203202763754971380366022626196722582975484763963357139430852169005155337552910819096920361288274876546873196028713528162743607007774467426640724105266508714088900025699392748415389779063168922982956703041628524721694187850347589610878000123993646287755450866525376404008240478360985197221841016271462876502968432179679978513179528071461565007880212363297101786563356096886725193172984785971849462648612115043482205439737734682515777300837636240723931128652597099314028675214284945634204140132704994147216344613733589910050984920528450658673150983470933617841384882101201579385403941996171419951721786022861813714539462602931681785796665316088795889352174116740925493522802993889151678063522849037309207538237285704945665807433984244932424815433426664356400700452472031398929064551183401500736148685013045332688368700269712620889137138581433196399838131341901193217394180738375309008214309982433946991708055152041596630167179663183385128221019821077506204552342527128466503437802579459891358916973500684022345542934036797204656515722781199629714429403603420859208589882869628103624435058735420748067905232495073539581422562828646033267763558507139473235243299374998598536034640820385474998188551269844214136065033396283836822013067833008627703559016123376738427096629379739047425892099967265719616626891888833339339978532699487060464039485813755080496204434247056197816502297364549626285705331898902169492134826550172404399240320993439951876082052090196982996923100525442367549305462057885237760580948205398213662590087409729649127103905067209858586020836167785230776801182006637693629389204679057087258885533176992910766505216715777338321815338852548798391810851195569115024848460532015513583769036671906808376599253699348373618086776547372062192337385417566562882601778826421339282086527926008618994923440021283186822476212131332108335676975061659965325917638460181033753360839397636007222659457866577929424096095526462624676883825103306813942953844793910011958783004326708581697609364747867614686610817497315860966467450587918626088002344809286658244402973005935605715086504563432897680057709869286302347236810110463361063843419840517080569120850674193388693532684709677917069626068502841965233563395667502500942775498617012846752061806217663257681808874753740342316978370882242939417907900167735898524159958825848419373217859652880398442241075358998789537295864260004038266224698454322313177121086170877606425871037806344855574287184556945147169694196704151486756072410659439331727824644015323381104904441203225408092357319878740048912765945038012127279536163382572578838452224146328629914375610123047030064996927299024617097549040839642525567510530494271639638600643217919116558548162429032345952122843698347716504267435644711913168929312678797295002516112300620000474558910503935021057806606415132275500624633309111604667549405058013848417147986614145433218268424497323330691164969044180722807338509271088990537881616934437652332613737881897300816437203414631683048698518921746878449709359754728344818439998187717168822027948105872644256119952345526591680313547727099823149139725437115837319245736008083887186428275029568726525958205286048945156306756489621956687016426900541124693163882788707298122999679013513804300512792472447162045763294043767143258568642222435179994289111847772715811536753998210672510364681052237345161298662539088024484187867004484025326482612132979107611862709914903762173332919031692537254029067904997322296370213158422055761764154958973889932966153191238985442150400190557125308105215570939908319010960135857446414063080844784035162539668811754381703386321538665633426641673107529594549645151682041196929079904006972912796746577640344680663830238229836445246415201306210164240476545188596661718577907529826143934252954164835015079285761118474865971647584497136745770650987969420325428392162253014653905074737897493509552652930150907711805105146755145990601500214449274050120106673837789581635457371283252625824487836019441692937986121965172881134535834486193038866916390096416378052877071017058206526466203589511596738044354894202865649107547498698469848760819627605032316210649282344099888184100923742563877220711894754716046131239419511839785577602686905246197625408364368199378813142982846446147745977393693128325383110178518542928373687300274527209851960489026088682821794224264701585329679054208453727904371271560309564234683200225101523899825144003823801463790037383751670489501623198023570192725115170743668004522956887015092086209082368163780706795552773473178683804037168357266361128613995726856067161694049006121780741453287378615691926179803817162282092000909866718386633374733281427900737922225563024028260148964469707004772037725475851722075247518056547818786107931757171172942149719966714241985712297161827381172573285075125158205154813911046127961660691652312930853956100390727047132018391490843358020257025696024770784179719810198108288455651811844097074872783795498416624364704184500692500307691381215558080732458244482188752529277931549486569204927748537706804352919089848124629029920228725525555749084211908983609603508715716013094110395219131388758554205088188729538459192462449970451677027944861162212468042589152278263888837095657927901144665637466398783325185385328895742873317466117373488767615126863095834976905223433117809457743734060378274823431396292891200745068897031331006586278778629740712445432990320504227784215122782156330995243749240609413665446646622405228774153200752128693836365638090185278927398063754423231451067092145023141865650533663349776427622459916581737580039981255220791107026137331040597359866126579602537917434180171101597811035373407305659892003002104672092675140065648352646885142569121972910234496640641358242223309814784417396322809042080953809650256243751120486350846132130927692312440186599306247251829424726379325945120979282422683177882637611017439067969260255769144402034756591708847275022354681324888285321287592237925004379382324460722480834564058146932759903022047349345825010236715752656797284125092019465179018144664148660143455204285861093234080260202389000865579513306205071100876271633875777017387065256960626082069232131095556249178409950813383049540241058519005524927090556714769145181154312744425568545113910772643876904252916266115248455549318923523966050342175505688186207683743729605637508719788671121419766232982436364296501017937805310868902696677334303755593888115908238599981330167145749704717850760750661911275769580208298146176554856970810361873504402410369944380062309914712926467254839604271313381375530943379732605047856138781827626552412719517748479151357653937809350262015039181746516945843605477271033367990610793699220534165394264616164595578045662718083226337719007276412537059103528265722314631803218984710849130417319465885678618509241460210919835809563811690748785677504283656171425100648887806783919121976584705182612009981878379501579989941189093753010403129552275297239820912431710450294458236662146770279924471284592937805082865890956955446219619371695894539870523323985896096426966668314279518525262645236449644073829395921146075826256437249951918270889989613346004932556288820276842365236666423607848593909867342534381111443380468961505325358059377825141093809109562147695477930437528132600047474580213894557357530886244949481651359761988764444066140840338920702306190602127987283176556743943006211949116812043177957976981381521297294606107269498131065629596322012595325601543015953848256384537665772340726193245673861739788264767897114145878531576641708694674066911330992229851114163103192842141436165957776976143038655225704713317194034242774499770501583311476109409536370811533529439109711411290248575473937580330925560112711970083664683992317392122819512724358208907401655061615378512863736254494068017628962047671859535525882501368076620433275465345015121170321507396963424470265025851501609110494108672741256936009781988441381308018315144303006109473516860108481590171349113370879426586757591937083146172660708659244396894865206889102662445039897741283966589242776597745831447950519645541634487670265050162547648396858792746827565342953982832684933990234739287372368226454359789340066072405971560818813156329386868838801808617773946535484692418972630704614291965230325751838781516334458404174099292804809051323711379301248860871085151232797354731489276551682910242330477476325642497645753931858182759750415245410636667739354099875929008100077571347462989786732376916655475440673248907340956720650984673310658244192693495591347939243971640909400564817453789568751610690643462818714982234972298465116084832249583771280406309845612621085503005354527371152188100221943858530812078540674890571287705379161014362012289206844666483206301668783851382515535775274039699209700312309996476126585904616694111331851483914768001952313898304847750206520885164034225174387327125598707732793457562053868733704994432584750072274413658866649160595930521045751622959079126218636431569728062899469671470500742692522288358738519529911054807008541509532249172517301619802752023451648720357785702430910549795512245808786244078870688971391830873394864202038614134177774813467147185317826196553350723377858609728435292852355221580549292115360683952794855844780396203089529385432518963636746858443173092941104382809679495373867203946153901250659736853993964332729189696202071505059770116231531274324760674681837291786977449943595381667687141902557029230262646632477637113398444599699335435708335539114310342295681645911454109920771826464133744802737916476674131378309188661384602950049608413215357736979773853706606471052910153945707895951978674643048636281732996245991910822389973982344076314684121541860434265627586076240473644630732367546594446380460238259001159159329857439770075855897214784463441704960420546381044077470320819177219078529811443954800927666933660297824396743356443308175648352273106120642695991789644408905956215121162875232070359953598474407126737721104294664378882044718436076625005160853689356249960419673557247537899432376015847677478349520820375672541353111550030712271659764764653882529085208846229470607368326007574116912037353810113320959435334622057065925602514634723182226271825109381420300345102037981674530515338419746305902403516271697657082445676422885948436432835618502407246481437709692719942662059267830811803694257899056670573989403109736074080530176158126979733550795604373814371306207112345654944253550290717591910820171991176868358200791253372009837197531615369342012220320255290003899874738489915066152404042659981785361869419118113167065932239887299743153742107354149601682902629833250374244714913426625605467342925314844887367620441354563931448850169488616702526369533300464241418870485220036785842644148690524559708398669224645603088312283275425308148618729746342711026533136501616623294097984498842691696662551064321529586453164007950439276271293009563460541233622234955570229619728360090742781329571516960114735500754203479995636878426168206568553567671305612791558357629511915234495254468622678409498245972580289122127062976131163396160473030481824675800601080499368001972347022139228028047655893074808823229596226254389122098694550139891082337866601424949765950875841815711566569089827928195613274614476395816483757247302120989980076534190382483756016951645480456438768393495814831282598338775539353545681624559607783582463777563494357905529577341944245944051811832921286639390821967535430463295379998603196738675350858737150666113747630426494374133873080413237836677358373945382091290048888159756885237571389112604426960066593264142724755988428725666506436373737808331519720423995579863095443976078992980410312050092339960790130372612658334790288420668142545036873529572518442323268809638401430095261943041728623970462935586329744277879115533816021442047185252487729295976869561655386835960238066355585195832383435470214938141910246831591280537541476367337371351793518672769975431095910746071182054348195166775486065610035885759740629706791701073957233514326277901903827176870010681404312245077159810995376520048267304954606899744566475115062238319541919029625655080200477587247394747963669057179283851517301170797480932983560730312855101762372192921381804620589619781709355383295102855549288542674991874805259821708149177839680320629358730097094739696545154528309178431948767950298329646207112811781963853481663582395445719845250789662508298582462783647264500973033653193669982146469593309890174167554432163565590195564855363109961714890107950722118513823446406562353479754410178148829521269076742148640254070671499151589147299927564947125788963041399464959283823158699700184400557400344433401478134021140532614733120058703034493248279755551304927890381872097829896200940065188508691232978508167217641834727219430141953337060514338306388397331155915732547563647232764282511486298493265919152681626801112992246705855329960584177179792677018280778275354224025780643604461008660668213451320493648527863929923777964533955152808430709681095359038454301896398386420438737990860931161381539878276795326928054709171187909059066056244935645298627277058608103019068879585252527055732708878349494967610836111390463291928494027206625903808629002456763867335259892586726062264559756966726011475022635242131927029889483037834253120462698126678728220523574291563736529763696648301550375307464521186727765520170441881596702853342343722146352619099370223274415610180105964686597250217508824976039812409323849979729324826868996035254839675301879745861657631363220564187435684654008269443659125688834440291419364252295166382983332661951195869558492909736130752797301814082266177057602642816187875445326582882846538259950192802706463613836223153980886418044451184741160250490433345890865685801940830022912458293524553087797302593081636568569010277920412847669441755085686524828954226931333293456484845538766340213085061161934239058089601164892293692883805593740872494842958864133145330132174502379572976429194470956711334989567081645068283812647492030151655711285566153267035096509165961789433341929588858016005439408494492421051038720530316889229821408585546156965518407332535808206263022919268866935446045500414307247945956697523225372209611731402698467522173091583004431339805657578603735502989519525534629859637418444806422751290791299446396539376738880131522347236491775456247074999354268418461146684602543090252303039619203637588626796838316243046409428342111123719675539242642170544443559115827248384878791875958743205452084743624020841462160912042964528933584605429261445786526588215439662931933070976533415062310225554062307654143867958171240133009329266196655164822224000581171406663836271097960590756213926434133962270465184125752784918893775877727177464350648789930579929662019338929825875748467167766563505591126698420786095640693564984688884774543939193256058180114357937867610769206975842807489297518235732890954432952885735716945235446627024361026193042909158258771322403255586525678302197887082654183710187690150760535374874051950591005751011034754093103313649383852918212790754831047854913710221392362937864379908091494644011267287409003818189016932885651200016005105402368991432815215462538967657443332304848800974397758616117440356714098363779503863133682881526014555721492706649081155029024672038227132979662656697531811787449533956513979111112373096468142894716623947149820188316785661380621653995097527931212132219403441907666772109598511936516412191480946787730053961078725294151168987375750396096769787596640906003296175933318133799046862951066865391319876227076176483751433806762590797585301796057585744532779551823399174180063772327380756532942438386088563359580330700886173737290992606950168001981710337729641121334807136781278802804974550356115984268629190773961355136825539236603865992783294007500711040731142877139687002284011089172371828938303396838647949267128352035002971333312735738714126890256113336680500957838259916601147495706801365911814914934282416604443658735081949551442792455671074984877487978043703462065627553133107115094521000314350954339803237044996754467412527941357524439442709011840981520081529333931792123974899691177486921963686237889568732223452941465620540298226868643167806808641816097734753166968427364661989382809453988487530349457448367318209788490320958742002827311631299945525004398480994349145465749337930236710925271693437358996171192457525003003106284627124640029715110786965804802412063984192193430577515858207582284840105297188344461627922409752421923330265539314434940837171256968476744291135631106691429135109078142567482052552925745423099792660955321574975709146351727809641364530178495306972490308801358786917569955894924527955857289459671535963648605291604326340471526845339032838914756776451851333066433059832127007308350707081425430973505085688458369308432080451465721108800901863622312515251271697636069647438000894891933610668237268787576456091466152757573454207759445146877961630559004640419875841285517766596651288257731727233625421949631205929749982406362485753627154376617433393093378763428270467406857561580134047154087974513615593468891950246265666634327508181952104184257690490982858818133870326912574460424983547932060029442340248193013118904152802235630590502743691713792806815492532827317956518811028937089221506843465277376759255464376762447861779691926300516108786501517855203391970348548445784107389309010936916788841761588590804530365565749720119634077298063299301388424810305023216367889937487329774941971933938261342844220405287745078907299095139135782620174344352827197081379236310957728110093912431492608101688376973165672771827312665736950914525135476755922782665341656922464304311126649902773892241038898816898655125776425503546101697659005412348724251134295593335841200313309724924623852214672010879568182760095153748667723675509756576960625196761498827032685546602501140712270395597950883240022919045341084787016400142959736831166733379597624627087700381282568854113653077379627955629348097698548481735573651206431208936900183847479492274368729999805795276249905764675666138571455621709816172530875559249972208085018821572054081945993492820134266790877605629725927332800204563289071144637073821824290360032389444682830482238434102556940195038842629112106467340005286417685756930322298922224108075607222892448431289733563379558333867753338601631224522534521804139490540683704054325565419825762827345861343321665756823211697758738445694813409419203521779287722748224489513782536115954190786475873425217371507063044399868681897304153676583212820722848182687154884031511347260196706558401379255153131183754128983610825845777503523803225403928788314406176383524982260594679669372638182075082935494944862006361751990878415487256567547063423146327596880485152394739726362370002954989896222344556867679403386537163709864162076103558280851365429204849324580571009493499899118415936459414904447512987878963978638271178149006239441995817579196151836470761801591894644486024258679781799566586897781998105004254504731677010808238341851319738126815273541384765107665502825241721264735511290454072647725494459947113563196120028101823768392179873015876595056138075564335435287399761862271933776022988915832446359308798163715246592460566216906943713669036113737003047941040946272671012828546677871154278295681727894034338798442682579793479084099125189914046636642381258473864951553363604288359575487266213043489804615361276654474875546496782293940009779200051491940161948285497038876484063636387437501177026756285904402100101389283684548853796269645572105316989691111418095079622845070531898953824550351568201960167933116558159845200180366039107436502934291936874089773317814093725032696432945045367664011670863627038089503106950718171482399017080680026488837302830140309004936567936670101062935445033002821597532628343161180046304542242142204490450605266974967562858017378087849458306435927592814406716972911819322797774888601610115646266513290409809952742912848505696545074599841627881215338164544511678682457820911073202767199762822954906350890834147346055640481228594225575647023433500487928820234533197136936656202214811647272009146647923583170958556289419119206425347357587376482369965324729184744472614277998770731037840730211903085369304337907019296316930636018087421556715812173606718627663963232739007238386668082215207074217899812093077388530579611226367933890229208370118809699952764083803698297636240057920477556113160695977205855358733049185896493631256339038775102301971620475699798341021654189275784084825630931844074347944365527653717112349824367655507055599514763430115956160814257594855105444297796487863820499647924859309617361643084842035240952199878583781866464766598752999028259942570880710714214019023342315611890277556712576478007405487814848459663127767382833351010767266858729336051590007768219316837434718988594018318589872350019977276870297637487157685534369988703154218716043881103067729341868689928522139744705612243332400581713033827347752541643576404300481258578609614546810383362742824251118350111044614426654706553084641226727492655065040204477767984301537091690375467757892260166780088413005136819185235100910388093806401802746014304015599673272088187663689358037598070791312349599134640263877561661102857867499707269605803142886494943460096945541125358261068063378640416645547093447364785440300071693429074126720354321415928899118274217279665021895443507326742662109565816078146116075461150805826322093422400879654855607793595085249200454826934364058808342918533892585887079515654300012162674837674754727018045313723418000161534312401778431970446532436833986243849099013084989497684367740741010739103456676538583980235400002395563098933091672250678092736806568766675560097111379783426379719128520455076170794337907264237171088138807507048359317700121435514487192594453615657614310939202762011742410424775019871463792186709837276408566125365775034472412375881229440320414337758302729570546018486020028156302429238357046757316359620032881194551025678407705331563292400782983403756043421893421453378480452299815094381791941015219633543916010595837190897137503941079470827813111527633167048300650227619342565445531153013770960042151544751974622187875748609762825080412219644083568847919675685483805192102830973720134397680726706665106586653990267927979420693721041582368872207988188990486782329224270187632844741134149058352913003415971990460245187850654245010881076325886369372042303125838386329378542762118304378231148130836946445630522392698638505591117223385644473540396813635874649829014202711708323120918003169004785849434947433168659550082442847045614600421690830644426687442423766616896800574152356073203668445252241631411697895646493617559663931180812322825640049477706027786608176185037723025920520457867605129963983905535085019481635955569621680508459714753631960340533619642586462637879365347294382438065256795222448196763503432594055574352180622266957952569023031578226355216045074596543057118191998650814278650294208411499608755768358160762546033458077007424050389804945022842303221066916594924072167449608150786502023826145716919277263201798839170845795590818375393573309535788863336182666376139616969938885816694735538774430475947970792127446325838388744767303608797513161744532247813701553324811559146595886772383251987969719059919712375967799244257661434225706815139475195610141510016642310447214021227497441766716158230936420431708453822556158327670659110518202839763290139779554235168864334850413530351175405657108932481139045505522972862154180187406801424202975506351791409027266059225100579496484818374250292372414647070310869950846719409203147202574009936786412665793433870469097924227243770245932063087903911260150621751789236244515592111262927074177923762934461536394835659240805337736125910557867013535497811611759550969029261240444204030681814792100790846668110586953945404719998359259401026133085785258785728989396712639277846476725117749005101863217748460849771504117855402579646671278946365900811860444249707465870730656448718202012577235963399086451146483547379949829403182014848442050874363082852872562624548491937123407367802656059865885276474836272132103245748812236828509206220336115333318771528882832792514062671516505977656470211957105623160865109703072790695867587565924665688183479679310283055024160174464459870022987735645808477740744335257433068594765304655547239761854560706110158687945078464547068076747141036622478344666965687047443124185179210636225203684066806943232345940023440714535185083539341688114355801725171503354363051360594629229535136045499954671188482268214352671562321204173296182478973525998837060525516890581662590501634416880837890072760125547334996721127451397088167884094879219824380755312543528931773114533602722804669274276787703124785241441546178346939102986637371989099177065551830426949947835847014038603721707247706889002698618098138367429552935101592231948358847781631813953861926813264402691432240591559054172361309913050511227314422485487349938833426915200259548187121544181787640512139966269862811868645461193726577908568537534399049344890889230491364921786565215417525457978292942416192881093211852325305216128484771257341141841725205783863914784277224507886048092476094362563191213622956827078778316819607662904458085950468179949045441526581410793196057020287761783230659489157609316147799224457275908813123620201300389690838425307032239207871074816538221071242245513052146562973024999437548995588801950711365336544624303939042872901302085272808193197006749857249851986661809788622483320247337215583078226782883246631927421496612863725508880517409160619997691226990946741471255637562785494577294653532557931615139500700534705877742048323499190164636687005280838238336658470086053187371115787222017304792357283601848616857772639955125137884753395693383606459982147122756685136110091661954769612124645079619616961354097785683616537538671885797270037655473465757370674365031882528597237421195595690062084060518395622483113692128295276716514603405702668716609132300718754124440905252660606644269775763464359747652608119407927803018682040793888965260643308616104731560562009753662009511207280694182257018132805893515923388135583210493509177161187149198223382425229159457299077297421537285746444428337540432797415485327616850128666696985549691022954929369812647060524178228238093523247831955443240484593134326287712803295926778335421964966000274890444759981760869951590203107056303122956789477030224536765985365603833624999860154886290322326792586339350649208882016875386627662367317546450543552569418803396508656889459917978002106756659319008164307689119896457111976091920835768489431178042891440395709756365407108630088332369309520311214699278181791012534954016704746834197588097162395309348821406182970004169249343316343716971170085320998450987285118595554914510374701396671990277380793842252026495223001848958176598891085656053428052539150249345588238068930746011410428822610539411365691005103285867292409043309175994780182224639722199537170173868121640621271582619264585976736525723076757271056062849658781720557468156407367803464925453138483794250323695636482487797636294167653129658114276879321743821678838308840015426138267677191340528107081058284695040229133088186570915787240305823006764602298075832836408504023403078158350499476744990704598369254459157497192864382446676627686916751024648054551973481529642620715256219958051844362303111867849554680477953654205727032805419397927893302756369770183599265928359446182039929680288057650661404640524659625840917683422646550792203224594465647761694748734193976081752357510216032124019692385394861025300088436508005062089838421061546399229790224234679732711530111558066949172073688200290310902216184129251725699032959227866318671425538575886943473512062105834543260283715245897062792085908265048395267090792309415407724585684417851704355960214038279709274050170853052488541370801725802051559315681594653500601478366302253300835557472371265852794993809085071125741067429074395105269644889091737875945989547537431154422168082263128152793942279255084264294524840247433573878735877839079667565535619565961816581245218820511473865697259752448830482201602946480690486876624416518351133005372409105012178696913729727939588161150158727048775620000343847965531165734038517591632301445586605838292213368859570353625430924140341074209943906724256176135946920316183668567093800325778428205631893465221670090454677938671392332172051420666147934594353379893001454213142129141732174592456611811412324608789858785737901645370808640719475945727759314686291731054609363991460781730225011021039376014416520031022431917597481554213920612113696773478190073285605509508744351438820028305442557341237509710432046107537667804769169781777803648165526158182585472657857978699442112927323607363787830709608512648969892142731165778786385195888319802618081801433176324105875959098414601433014449092452409712428605438670331592274078568684429911556237540756908382966760791033785639169069937882910495138233498849919501534199247713281530566362961753872135005663699552395478287114061443839668345819543494991472127915021198314165851717289122291755751905529110530278601258512919036008044733563077889061599061067929906486653759842896035192080896774065806752714936939810323483507316468225049929109450040587672298829336804895809402870972560644692682609332730718591836345833560244490338603558790271115473337517782699667662440086450077798466420735684677321075663021520878071661426783987698889405644735233200569993283911616741918869704292252375100076984073416634680087790890423091055311217449297405684337190481345859669193067171102535797027455002121269332991761269878806064140954935994877180797690643928342036795576297867276894109568252230051300150616229042764642127579849087491722424104426447778998347075380734325654566194868194022591845272750913732455555797984612973277830421302415774093226718376728992784199959251435421238101479045135631331066516745256512311779285998409564681490610786208432719285700951283966179659688386469594368202967119647900261757729301359379360423687923955350658004207147795674109342205360644662368311192857710858527608932023931540710482371404680071492489286881155747528434457779111421689915926142494621033391478454043984943487690601105079995444319692969399229579680377634298710738940608215898565219930767338608210982618483674340794846998740739216409219046750071850060539206074726882843236693957980011274798477171782125118435059598220885950107213963046994986000351299658521589871217910123761663013218570783006597365769011565211233502135940750541591420063822614738515190055754735617999885666947698114437152296632527005078054088635014136435016468146005728530062506690050054903225542454114853792799769035833591208298966859159002034314749657534048532551441680538153588947378690492129556295157123857893219622121811172099840620147020675363226443867634158982470416167709701100007281962729473914325760650152392271322540123974497019211156212656847122043836689190540721943007036001358787480137736728346064961742452287262043279893294810863854087691033899167754396198398483276505105410092458861120044049927510124895457795433767599080073511687693827225775088380177846100650638304153083286241192931481659515265804162942314972016563331247686200246026786678789770091562453910237956370272527680312961894642479344916412226775432190543753605309248236712148121487455363807347167299606154947657506450748273917204407393736825317821060491138347089125155416874719803724755254244734534479270286104225294521066617045289326738087610793982725358597087447325354093086390754121659714121727913859312852722605469442202251808895253904630842591412560944929901058039141080401801547606205364357837189847071388823787526594415286545202603284856560583683493204982623093342299093837333344893686833332545327722584310706691276263315272095385950468133861814407775149656898740414738603081062676923005751635273518793921607142917721214218739728768037762518064901861256187501636010659707393018800279045976922415909565404957290117984109910512671382602970780291645760096174552430243642006629334812964763903703288374728647897261340240235801814059028461226539895898688002875312087984385853985259666293105051919441326630902391558445681345954018761476026927195385657734307121889933691726518231856507518031363438397378952292926005982017703770451173971334491940093631292173245347150964813106498140862290763124516694715980434613798049239802701962759047689338231249682319787526482236274223865613167857022133130431856464269705890728982028267617638110166549363924885541343338888617134952333803121858233839742901117191548267091067025250640444008456607774110495280139869714565856049906396775527303198226130370087589657454089408100827564229956629909899677428424472326576744192412931708210119645166548117227852991388898155809815961130721674129207508583237792314665628174083091591981191113956703387692363435966221184306449339735719323597826066684422718789966138537573255929358998422597498929108541768362416512155006825023265233431659346198530532603017564714115209167747744093651852455051680795572240205881052590099029486532354047090507755777866031819473030958924296076420577406571703826863206018326668058604299988898794292746617713708053904430381559519561025530211984316181637175496362217228782932174097923480630967672239848715624200686209155296414497641845539185912269352681899380840893737677172044463186446884139625474978253402603181171039816104952732447866259156212524196599605400085213474175632713127887849587421374160089405583852270345628001634103075107396534984028980455319542327984013660459883115170000795774666874534315653134264514992907476053822379099736333501095683014507460440158218519930072667567738192529767390003045971659850035369691178136366612052789570645891931115069669448407247135630566868292772555800732046103649070153502091234517210018786964251138805521285406176105680396571327020595118232040542438616292310899032939782844042925910196149950895779765857876171150325217255405821687219401693911295708155380882753966917286074461376057189268803010795256656069511701339461412877133728022873145797906809464432092277084470287631609479011646970533664773682450155119829118087900456066878831290674273663912525116478539749391770386580651203167971485856169755227283830387354796438672467394384990050829337885771314268936170981854623644853301250360975893955284412520891786327490400795079602886580668925165993523461976758152712707283307356703930306081510927103890092007906172454910248079178327085042778561040877934703625494863083880882212659613926128600295169018122978086100108421215924580557043993863902749527470563857062733016273617031727895157238866542711534715386129850979767821616879608445274325961664535081593670604628366024983429256633865698488835554709234000997803736427517102120554703810752049993942211330577031023002192008559750768519334297426573615493441607339331410403756267015972373015046146596181759485096366007547075167900871677578764044044050332268428618095033687969003414713054517184245653959176923896622569393848898453594779466438444989072338284841981793612429408622108429443494080151621958796684245040056460872123952158528155325814943437549906203766767314888997612531912417302618270992328980577252115665134572954358030676083153773002932335498334856076412230813163242034664039099858332315702203998277864496152723303858248897879610439688728016312459728213051630296468273942064427453677383588804147512649136708798642226638540279906444889523663668504607675092596682438740049976267476143005146553749520108697329989643631432156643838412489835925547857367860477750060429112916130124238433878708017111918412668982780441383133506277280056690366502763733063959599995444523795340071319770531335430393601689733285218063865258992019761882106348108449601294984523989773398768452316704932291310443614973001445238811410285484371073940777174063845446234746545522444136849537200956394075375589920628768347114051259899280978844491488501474524432322110232215981506474798851967285623293764774863723784166838407090807059760658385693667155033096391358974957069157147755245613149844412787993736995179681760973083236918474875566913577807633237306296494582455013820607591760214841021419960644399536606994982519297009078074607731517282437643879409480506856490390691405193362420205311691508692552925828189719209570246980294217265770680992697486889482329456351394876149547340263861676184261180082560195794685429450897171353376260017998057486463591760163896816776299812482969566676626483351294214510640679471235353169953076819376105778562736670583517195584856833351447538008105577474741354475406630587870507495495896228950662029236968696706928527213358954735533044787581027609536057917881951680687795499796685661281093015114310762940561546804450707124264650950161658575645960029488857092055138490808092917235601861190758773852580808299627489627179512123840412067165556291764442778703641795149741581453017178127237304054008809403525503812150472603007234180733553354012995937699873832863125877253259977779805687980334920309882415784095732288809248586817916261698768171835457478927946782321529853190470370455387164393914287860193782526758521628033705649620142742196536049942083059353652933467245850800819315652246153177128782670121314216179356159966911732011641104019198037140236165381369132690958987657330227470337822921722242062667785574536060397452079432495363266021930074899688927590827346037426369631320487897911867329420647234134082554599755875968794115307810905429839068899913851289480405140696970164492039159035100385491415565212421440491037291433527225584338903428656717550406650895690372769370265093405664012283108206059046357443635749555297815791926711928376663975173670903016541867050581871918378233415760261228013889169002739111872104357625376571192542787688833643513842230141853629222107631179862105496621517799697828440297527434394811472680449055442157416428518358464928726618591708927585163444771082565645726995451486672698706176216059608881020095409744468807268074156207547349220147190758977449701706061012583366780148727606079827994519801663644215955077254845385156704002334136846718206010301231629793554076483446577796150685467106452626352755436295007558518971528453465211516532506503594145379557211138264391959887314413665953204263242025470938063582862193803987671158371424099141302548220596586872019855915486719813271916408954574474807199387772518613584859052968365585410512252111009510917775980652191619250346914246261394589101252267421358858375443680431858496183384260138502129052075750391952252763242413518888259914094631822199072755680646360057256790500065941290272212027982206182468551663667915025384532256906750863410719695574077069536083604366608632786227173932551328588772847831964816469189725173185992087384810336581692091910033579234207993875098695110237416749211427261047268411193610970014557240966574244254377490111219443579309554604225773985171470286146035022474449478936842731445506697819756972399310541834498120308185793577298582377241726309814790443827176953927787726166480071753400346306198708150505033353575970204755020849510976662253025061101668338046603246195810353248383943833960948993786900200196745176800878068488618449078589794633294764391115881402575154663101499356228039160239310412980298767019758773827370829636456523129490212543766692351906749260335730512786229899643879718160020906158406663609853721982468760205903959374781396868818585346017261601894705899986545345010602528194491100286669061899030493193150645470176335318819167137579444715735537346710203528713679462496506966097803394105106772704063854692385508233281012786413181626483629486735409580885039442660083504250486277707104077623956976675266175365419564038492390732376360277329453710241322274668191783883348870020869491134879644497468598962670511979932703521289225095359508056282206935817654045074718634858403102859459120378133694376962505659217867472591521712900842412692648626186531754797349644640405026749716792813154593384203900825259948466562159274118821952042851116099136363118899419860764634426982374024674843781418190443131681383291334248551097257582162967101838405224693404081225493612860878169043085466052006765792732941843929462837072710828102000459275683530208975069894811254915582723891936769675547853119736053914854957049097720232256390681427514465278993616154440509925199168910177278933508144706890562871158237211378633315887368025645541013513047654905071772921191281939102423807757549584118564532805895330291099633549383937079230119828824491849440334967102437355945378619695031578980157118007892325030253377289091403076670567997650300147532443823325258369199263135194922858622200834468750221391894122208613702652516197000985612511578825379800844584623092838939603636425829168217422502572989316774346118828244558149719606726245865841003587406570132194282454625216286443016263406588048603304784525179582060649795285267859268635327909198607535932217897883874773788586329071563875264729918544815393761647527341221136777123679720073935061393158820515083016625912020316485525127445871842921933691316063056762634293596004931293810655889893382586454388031264023077186507354640623794512429811254541245304420292702601342852997701428058877736306414109985281633523759474920625555479976471535194526659644677754888140548915957049254918628395556279989768701441713246995408275160982075343320255536770449360607345224036193051882790986080976676316920198822621949728817333805488492970133855151122604156848782782972652240831659308190037023028147340676935966052864016625183497167894706355462055600721513621816603622296073438853383483414901503540077214330816228009264676571013988871744560765314413551745626755037480681134416502041366665986962897024876765332981659745049835477504857109453021452261454392290243105164580906442434070581066078791911414538963334337984038833786415384036804809142376898268715210006181257257904765595702864542216219127378266024317228190313948426302744796109877944266410770698902707436983532041765677746146784225609902193021987342007335804467028874828417426156575869139711163309049888690744172668859904943206347594073930310508618913491265022938032816665368563782517661271177760675071305029794949201494947820964992218932441572258844840180745535677863671430513617601562398220056663096191124196009014909326038239459511821899267377741669702509322266747904504486343268310319555287237672934870405446631581319834598200894439746163216072087152575732694879926544614064452065805954499876572638847055697185036371696125883466187338537961951589096834692698794698096410149271220670259083314795093954306645972928915836595478243884159169279680403476051356294683525356212168249589860598098429504733950599840461231277374643878127284319483467879586526631833389668344754870171123384401304657673447751946825145643905564993932358685202921669490203748269822560795662258834547674435661014493715337093083022135498293484393904254125802370406569815870185289767097080339762604768041480484762983936048258048241228833953288747975144431839255741556887436533475373430764804801209151279393319661581475653181956198213747471458913723944512325024436618939043817596635939321703536189288965966377427606477748657946529890473461555943172823449744921229581362548205647389627702108294416843489260585310904859276590905130018061447963206602370684853275022763463281599591839389908265503669269764451537329743184874234474333830171066336869907546444513548441871858278922000040704185629668160364800477867839241199810451979021275241546079949659982503926752035756052825460956265997121586297265760279025499274751195121853385611594335682864346405371885990175979496296430550698175420684030055179974212971513904129976935425840230777487274283247003522664394198388914140501178130219947817708399341885843154389418327774400047112356294765951886858723246430175370314972265823789933437605836972892616643005379031543410695856043342522388749719901165412983002345941264443874975053601080177407047821930524515088428367137861239276778552875726146158188991429351871131910693008421424360304234822748981245971446291251342620956275448507189791287291274735849588005066550017691975972655971525028209641126663860950305903085495626780775884042777636597261894949792118002544896199305095267306089840026403109396623970231108460432745277119746787098417046678322068016077212638410603754506578630652500941524673302316877598734124467857075001448153637379967903954076005169100790120343594401757165700607031429164450840914809564261150263707523362469809379717567281751230815154943465430392747539177577357036102676407790790546355847672320193114505892218510037360871211002285735918282405813985193604366149118520925671852353280651701324199489513627935684783659166822609796406381897162111785677138658348527701769196672490816843597068213872825806837284816213304296824181272532084578887206564059477570340966265824431867612891157500184121732326225609067581300418791643813748447309719080784485626724963862198471864995046015733798809891320364945537244437732393911724139412797845362534015539815266281886378308200539333011036090638463750623395066449940703137737107886645435151042641567995825730593364444321749671500153893291521473476018240943836018955692697494314753791785003600762669881094739886436533687888262353037095880199623755687947937550687211728105653935298928607428546833160907228966867662869565849464754315442091863686829477667472889396507572670200982847058167133945394469363464417475864657117472395280157983861114150048296128032626057500197358184777789135847258635683767863902409451260402530535606275590213182796093982857633053522038194664947197190091870651959398793355327900787800120314474279377891791648331705759405743823113275485784497330113532957907091696902366966533078236069450613245236957121697132131951015040879038229963171055989084366700677291672054522926019883928323631508408068435082693245639634368640947519742024062700131300013736200304533794921049478309439784084684409888103641287390083296857344244184898766005398516964346168533614068102731959053716074296896939675945001595907645158091608748114873783382585330446472757721542925828729512004450991080792368723018983919749760378660185022425615970943099538137218361181688273788262133120030345095961882620946750124094455741472911786375365311935732172215770883323916284128162277248202955449395707817482486504607067070145338280939667072360807090386150836194751956616720385612091398683252841248995818021190232865519024615964817311500536544003629311426074919340295735482032525329259623709636418990429329307020496323680804692811844506130626457119983379540250179676833203513274112431895977591591384782660142994911252709261195091002477543654722344025839146914842171350441471397223473801821657034282939781264586552059932528960624857574535063932671532221785499985751903642608992818374121258508023459557012693222306114042276375554204332831286703612090759311808657737992051677864686854241568243071703579322677544558936655684307677658686679148375031381235487052361081882774700687201877014725580270389045934926616923690979151551555835318867200016979026087516823758423732191778036922944325100147866142809396618120565627928790523289430072418583536130123350431795194498557336125259914101504696028960702914922995953861301750368441207933120507493331789118719620240383506451399284899695219084066774662346395493531757877333570025777651025567344960535537634716714205347456736782844176199062204136499394549251127568834681059478131741764466429273741885549022241092527889152780385154950199075492184963558931272894259130627263155639539217768544380638797160780305549934683954127922404199012798146427683552238709332911816065525569824804135624404569990766177063075023223665670206801120411100430228601121427192822978643873453220623352908786145240852997544051090152356129878989219854061601109949888801756020569271888217409498595431805160128358842495267296226860243847629150536230632577831527024355264771105549845473152384840108336868908145417644421730139589336424163584481356769647389991803921440520147058113885035390457258203915236601701632400632060928396348901107030090527400816857542426265263039999547375399465988405260297579325689466702918044064894353561400980496460814418629961052309095483269421343238924071348949045551341854345065680941418130774450908552353520135561991476972150970638966804233774295611500966879708506568697140481217833412213628488321320406260785135102975163578085453163775028846758682055460518776862166006991884748168480053989518349484244501161209670472391832629307785251904928899082979718331835582728600608674849838342047351627017314631606383557891428830706331712304085770064700656753680715156929387385792720458564410761763110375286923319355590117747368092190165846491083169278991760578686697908551339750346612149102766433529084704005984648232333546942521136670368710680934103255302983052970629833616483346112314916087279162674851603767567640388808383956664568981959403247157786491544985918972714950873892627775148971928306023055518565512993790935510237652956514525830734231454413984746331206008580608784013935532664479741498201072713674850176952104474469915231305389518770707844895361279214562965085479405849473707771454065284571958421696337768077617163878796305775792524724329193534030068480123339685310503585218082246486217376311979457100413770076641372099406762035603883522608459184991450406474361649421412234985023756141230363604658994381529853312873727547337647205542625598352504830019042668158745505574162381709792897652293796011576679666207235749880346121604494233329196574080906278764911621668121407761224200954967306461711879633673530306916419155332283139984815741289282158286004708080088302937599525093201266594258122611222453699507020461968129373538899589034847093275547146260741478406817919558903250371373570517536593115156925641062089334895222341885621212507556250346782228312633987080107901935827570709076808164551029271221977822852913106739305211994490390594359951862361342052944145959830342269955660617264853197715198966644400542175619115841377461838789386176409838506687146981074995325631752895960822607825198470826387091219834290613786041311815108746528344612977407502157167755117506330860472943645686954530918597761513508933135851299219917178423541154727222046716845070260765337938981097412006713892110888769184598382494632163544752822870765759808074275407633202156490431717317303724776359568610200634106889061799349449457047385817185617749029836078885675535727212058734472124824158560749527856833344797378621116430547174396982846468407188831189124892362843099232202534047271286215078304552091518946756844325342003938061243718833170174687252276366131168796482822033140158570573658327312597715649967834075205374737324535349080329635857225026998967551231693290030301981749633700792149757182676539838677395717733593525850660121981171906992729905843932177088592068327081072023503885395955734395910066254780762140929534157690083969080108783776335677968404923490645860342475167905847587284924085647471510575345463156123255605943157659634460018066097156579838135954647608327447621432432096391139463808747938799928418261788128847392670418643005322463765575852003992611384850775961308346424403463658887850329891858617238350687882062515761890479372068592038741343586757868516749398440556929120613401199546064978715494668151190848036443433440832502522973321994874595387198337880886054653768162891497435902224193336732973358496169301838259048082831806186156757123710467457482945069197073410756907961031823778701498975877378061607750738268135175400819939105260362623161164268011097351028047783110806058054336684352978223184572917164657806723402185774533723722686105338782879856875881192925877151749799650992576283012450133246752527743641070343771264931506495607581211590999539176516274082562854429951102860125239745670123933948481146462227247356829205848602088782282456085953093605222600459198467800904022701493215947834238148695980936427971442676883904361393518303813453171432859748828335997499328857872917240582832429720927887658452002407875354426904011922322565890577452311295401156439423755488495882249053591989889414547381492066654530207334004291307541185986419954775196866961359362212916605238181224462024457427847927673599322556319278634816696741015669349565203951899106683170320831053415336104455914315093043049224535021061990468669570666238128947497148501530679075346103277114687505662290310873484750101390930966316094498115450122199500661069119353473567556617682373650921060481009730351394045940185980803829865750952944452232711658740770786596761791179144717215545655262827442763196932302162599154452102036066279547074927263682204830358296418026196974790557028194257731784972779719708784763444299390333201969934839686250263078942036181680486732418354335721679038978322282985942918035541921575902870608304135173769331840814535283700783892241672411529561279882016715642639600858723627693472084509427136266821215832568680281447111839176370129745794256819324115240870275773256082804097264874556861193725986870505306449040578436595632335883682520330162510924209145816952052543440043336273828675700533705571616054831897405536135252976988701464562557019233196969744405666921851205777524709592971695058544689510632443532597507740813417442090410955937810879560918800902479601154726533639241547563237846111348508754308688630734849440989961755235828364736428428304992164822444375431497620783407448153156872619501145453498940912603306356623755825208488647593394526336907181086565498797049196503876300682061755097869350841629703724936502118572979514258274072402700848402438480147174711799011913926160163176358049428285588272769813127363889234736739832937374559395073169524887424990122551769476562060529131343784599006082312752442892463961341472492698175863224088660398422000943615400160204179332695729996453625891605155239622529309905906734267815287210733751933901228493726427961837738680427381661996716678497619193477234305435255716886826139939618744400956321842631275901695589217165737398087559864663683292755609774355500651468024184379625005962093490921280868843457183860846787676262073595334857253759477182761913702376069145806536383266996403990295758668679090391661558027921548697017384096628420976684024697764401050466638033847561662004463979087597505858555374384406030417364239223035435316004238440103470531843885982138655980118010345378505885039147829835419776762674861907792726036124876134838449779193618897060091017602646935389318867866006250260362408265892010645523361859905002491774249571830347232478254376431756093291322420862977194159506908289229571226540402848302522605251548479791773094715954596521933191092737276853706986808720092332839999846236734946251860706354105348871953202535520307696835276209589188561448601293823660879417559524367907930147159782833091683259288680834529169476739370601835972372885598446946370898502430722090124656902516275419605829610641844937907175491741096186243430196383790142602712949329539615780824452167325415104011722808748514734028289887273855300491802277165308439029033735539768186304455977790519424140669584466711897034768239720184147019358212880046189036979810017056332200076198402583288284775439802703836434119890825805404481246474407904043739856208758757826318399003633335045578314440601745264204410477851171729568348895364379885281744520102886898349514254006815427213924847286880805931523209407632738539347037251412730911334270039885510514979195616617613858724001066739092251224598971863240985245137381025867781540798052549089447182521743749872412771561907669610748364298659894521426150920220229093874604976359951301394187028638359660393202983009747096212743490728496539820811982054460115883841015793549354419763511286091221497826713622369537813381691447917595968487955408290076703888247195039501023171885171688812761287362775951393725446164392725328246918424864520823482670629962785814601526692227334679473528480172379983099457890936131652757902514447473172026120329217515316931278296056606739025250872735425435989177016619205924622899597086610861934961995219230704036838663816722885227405111709006887445572081746318361981899195617119996099201966479831231482862943807260833922136684495404928686291808986016714700603661830747513171553410497511320137477918696741962999596613551753424992161886807923092918383316573504772299625065665957452078549509760461995041478076539938415464807150103212467632231263960358965078474177423389418313486071846378987581521114414142955237026588267341876929462456935299789072296083266657492496364348209687973791038544261338307055877655763677631723879552467382166847543594731234637991594137823850798491554714703753736459396721853383063064696413950387552020753003870342006039085737118548658965121910573862039554775791435557659896365501792081818092397115680218978162564377322304403563630812816119843149179027686934510227011017254174046204788860503188145918723628361906169682072644171043001896312692426745773736699860154333498812347687911358573158471777698248719274569491539592732512112437563371836064548421322078731430665191836951546502710742909184246412719523734161455363683025457324040038620921946406692800529686372130135709201436651736966857746058223386665923980832652299588386641140030459415362219003562163145479304292688925000930315531424026064856838110797877385826231083753428048053603486203508932418604757068696838054895282537340030120307293127771164602902373763583914940846795801985606915830488240269908105167434459139218911160767465302057021302009633879137074706160582627030122304230550506856128391557379825713168486847084218147728491424068532436815987699033780899690682579155361734039222416962321764477643177249937028462205743496269439060583012346278371317032955853615492995805915130193641908674322859447711815195120546826801598104491099131194520283238692027180253072515170918934017774800855521455470999377773215740754189824595611643872036862609041859403818004383159712124086554803852024680912199412846195463810639055265251111642982394151705696776443023811309416660976759743670940140500660610928657952227333475517806376379014616209770416761074117901595001145964037367737207209399278402827194766142575139884262455185131383454347543417057851497506100084533069920194683447323071954768850708761533128697081616626851455668587498163295019395307108151345941760454942714465179239693205105379724565946326157242072741177429461405793164273002296352333076605957425200681742242222068995481329065039931442273385861250302572571097876995881720608615651754933887162047168954136848119407675135767184136408373391191493879738869632610704292656215358429609145022399395444028147751012750769526708966101823133134887314631425715470149779082523322592848401007090606956512588295944000164198977887362211113957361102494187530527084991326402345908076068879732482546679518076552515294904212757872374728614254597851493271167740022963875554596338071970504932590467611739608008411457035072773507902345959439277668467676753379694242785386467654278961085895702074321635579637796614949596154196705101545059810033503032613776054132326881377487346806160452872180911890027809316221490274038815494030127986820473346349148930077816422965876665059547203997781035286883942592007410922756547565273380224735802138926129100392034283038849142352282365098775080738307083486172459110888983295668282605660298352694096906441857594056328479972486106818740592703585289588578541720317004002038138418979708384319245927523217446090752563394524622052154239918041636742477222997361284643813549873460098199602129527278878219670579451001877831768452224879950497314476211321293694210521134851681509010778290844430985301389090045785127720255442014927567266470783994589003358063498107437840318921440586977053827444615584265405437327089535843111607536750547161242859534418462598968364597306664535413669376032038195855760104887068783666458155464592381953511478883703653785631561990996766813476894152175738814256580511630479595931962342855625018528240237003848949375562377591592511521616110566228378146252391509600834762690407428206095477009784318194458865648180046002848621681347520159224173951484258785559078756397059585985651321853154473802610790766025337903562334447414928947667613524910512781196704922008899773690828314171215056209079898564440548612549237761664658653916305670949892850034459735711646875863745496700314901587892472318810804776742844270632340419946511003129010146178896545548685483867560647907007178247319307489971199738787876619009633060922258938157313324043171786654252622110828929089745907178481419619721973071596874777084324096494392852014439966395656194888019600097109486333510193085769198838631400353010644109559564378178540203080783816672002322611343363890338223576760176891456619924810281613630300295469139004300362746046804542486915749752026038052902899315407326949377963282403782818469493088459472436805586527662544729832443832767310351970168125847750426954512219789650237065473618103397110843061127654368510134388414863542828216116534917203730282009235848116782510277888480593906392795573341636722859369412421071490906853217820479968345075630434932950854033088230318842082528694804150877020490716118605498624506398197432485154377387762176670610462460341797344882990940085930397405410558219170195000400698991753674898363586179248357175044163680474535577381860093932854233952862075628167951550467667399055319890984181824934010896310225433662795168775473574794924361005764740815887346540807747117585171323539677551540163633494791810906549340466319699291934864474090698452927402751298764287355563310177715956187727273540740884480054129226428120862597059341994552021128546776857052442667076617602096663567971205334384997025686020080719087173097100310943121611264724913025428334205075499796256579714169645585732040759412594113075579272210224558597633680144101829551360755648656703838830556579649275300332254333163693369233852629951683452170178610903285228709739908896108616737897003440886556009664661201405168357059280104240678216866195834249098955344010631984671370659957394391808431544781969646429387961044527396834715815292626821092702435932661602055281115567253951101332626500501250256858666106112996173432525587554138714541517549699531692344557339516295807742589087304342059022496500274072438234822264557964295484304812273394109215246841248958556178747734342206045672840921396797874371819918464154154672924435479994837900372934432836264335720433428496146297080759562149172514651803702127368365940854712528008511312670524399309008790509145721993541944579666884955862293979904198516104349589753383402786343732196358413087084031777984981977647408353958199806322556524984277783519806464766666185304370327831360164404174286451786283219693139907696734233083200485416795386380801177476188474695956808233123190506372590815146768343758091210581641891041576043270736770320975997028939473392478138762168382092513336582360927207884460457665048462758460120818168279743464957575719722607716229571569103352266749120190272672716721926630502522078294357929130866026295000893199895764530710162090167914710590446140339470526859141031723356268830685441719336078155672224496708598945397844854994031980418983380019661480597466072599270030160455318892811295540486881089196488700113263433177645724943843471017191444102176844220728481302812139335884077543640960097423884298908383034405252216907173263532739449321648647284018234986079839056184508809663006788121104583067051302441948288155426665824999636452244413488469766681804584713576673485680708934544199481943631587939365672469757331554559814953494924036858766041868877336961624625845783153120963307283794741320392226835415575773307452518482360523499909023292233590853573549716356124000873724504806533106065277266326053283616927249208744697118266795696848861174462253084253753876163332062069040454725702437181461226824208709196393103315925977213219673801637561542550358895848444401439870558761617974053580007752250932311759523054130700308780751187900023463099696045904806783526091271158318318388647053379508545405175860303310419469317982604768162473983029915938743704276297404798933871477047639533486413378769902873278298299122242787047673373813592537303368459484634798272113839082962367291655114175234802440682035159385434795102603272490234781966864646147793855081898925498209191111625619713553782142074978600815711956738855324796574294587032087147594393200011683373492951833509371571751662268739542123679765307624877305376551155244565470043149620546400456180585518942387162128938026625132101722333505953395698143710556607926457973843272187009625713632812952324193412551025834562397549346518545625357249493366600636187357555874166024246179079343629985370853386123129012560489841106555316990285497469200532775527133845399643720324458518728740455571750376261729867592858261500090187588688231750184282095079797623669447452277387176092350342275472810069861142836968356229557158424754882043847420095106768076646010943599223871234772049707613003211737826224352505637301297680612121725444233790066359286580181030702374414190542546421664631108647557706394691646469547555830037357929641102533284203855461930521832269109394049336874290309777669742019883662942443787732138036068535540795671273270607762604844668573439736014611357437567891859439477606591001949422528083382560570285972199470626243786988345377489280586616066598512540741852551633025051711884547806405544397301610413932950909101538810203109438878418187625923699816508627793768642872140201442152358787980918364812554755393060821269252206976152463026481580495147916050274739718559810420214052257932093083339965379748615995681399010474186254049898986676733310835356875467222816061949619496438958818204296957647289020160662589895219222983132160173384151942946512689919835155174211252594848129437882863495250549570613768389857450017484472604708589568195516653083045592885894449623513457653028275603712524909988961033691405611426767191359755638124692715517828624302499712860595068466139496612696485946763151210853600415141259178960775079842543326429274628899748851172081837448072798963317304394286663993685602954575607232562523293216595538553335963739102132923232505945082490676273975656972783117701039078933216098248290554230933167854861586517918988134661815414234080112680194383568075529968174600604335107486437216712574862988788802449485377014282426915299679700279114045645575764865032389950465431809585546751344719087165172888768099504863114254903183202849444008717478550429747165034798760941943919460547434688010244865951882752802132562166779194575851767661670980141939329409937890918226103296182663208626295775071466344323827018824344340127520059949059388573330152931062315555169731326674415630299733653530852155973014826723909282442198704858981802307640758082284824917603746784579646224862031075745371676279471489582187162271015479219277407024793314348980050095982429667324559739816558894004017759055906731663541416744416432523238764755974091760196943552155999835782710986055111200938714787031601808763041597023526162234213792311942933132583928808714540934899575818429588027939869338348623886147615427871442984825052139498074693344085922806888499100183010202603640882191571453559950909710556101604497654374912745488741378878957359078621602146360476731344648635550735236612032663553864437662179652563597084800744852865688583587028124570340274822354865135087153511886255485322905466965539679451440158592308511730609064477379025883652942215601989439734894851734154900403587593826725076381045645337251087758594798809058858175234542108157438835320136595681312610527926832096902080101090377674774480959518408707498248104432006683989488911762305964073317468620332352742674142272940271225644476341888326930231468318805033793227852723221349407366273907336615928795171949418736288193057673718298010263026234607707108740419717275379842959367320334655768157982577547382921968377759108282831476299035416693884926408789796991193999218185865740484461895949796326148084861691761487693177523569780264329899040682812529562338717847551591790352174779224574639918632303553058179588776804059646271093891498632754554368661272743601659121842302863813845542642251725924269830249587077403316023350479623639646144361797678135668556895486143075445544803775760372556608159738142681723458394741604995192626481960157124152645396056378812408651371801067005773299305443511392136062093331088565305906461626829003067921417748519193124565850802596748296163500093109107920034759949805094592263411121336242453899842519211255658482641421298697428661241208138666782192240626816471368592511493008310354386964308952397377651150601624683571604910080048312072843864212499929588613214417178203759572025599671502412673807293745738884435541900610578662388172996479729853944251918955081570468506746263575659452864289798337934575571545246144295825848452989342172093564052142323990541694425207655158033785634925335851527995874891213555536566900084261128669260037323164356523396932586430036734543074891786721601602250792550548438729471264945149433054481196431299296017532944694114935627739873451046367056559162185243249051383279535967171744999288796768092349537750531720279034003862741414142794818662604942958155110932855861838156590022637892097834332893835684885132258099260144222127343947544754974819372278914544976236390011311787540963592342082796692545782790006332940524340013530880407438802347078104452595763853006703755260275801613885399311007667029351859736865594129442850689675238908295065340953042671045671794208371795697285625170663333071627062396568857063377370807240601829585280377263130486949281290823072735170534720496937306432313606828509969619651508003485547248043450729420414168324046766303548204407529328704914975071126283162689893040704110159106926381225743956560657480565632325255029800570636756148131874647927910994552100630050874847033363324866824889871112133701772229901308248638529611893293951445518013683831516660279350915758351326448469587515187028426120619023941068457515823000413946505963105854540421551706669917780190006408329632213575802995480323657200334283272835840316130454515820982158061046545357924139892841938228714475323691104952546698969858525543914950445579527460989491274917154368815379760079693638337610780402423448068845127309906082321799402512035638542474906524130485546402532174241960642697039926715416646358116661694194128526053688254810384958834334610109033649799314249882648060542254116188976940058397900262941865171313779090072851874660279371410498947908571736436646291671012750467595084902000233064737913706275232079344352970059583824197471807297726825655924750120809818272917212198293270868898401162508701159342459356924521829133937215325734590668165375520636570654968039085092141725092120937092715184369328970944418606707992952049047647870699486582500964310463252111230517494900921084268566539404515362051246380318212356261304272795795874545800987978823431691269366699162624281998485331734923693711976000999392805000352899590599185632845578320288128300041671453454092904138091176037842598426243821122644174525658378657713670346938921658233361913176153728293865354586394129147780222728895336423783822187618595268079564892896310647639094469671736608250063624342500302288587506825958156049553139980802458223060887257705096185172740895675296641324181998442294230101559778544096286542176155731878795186584289544932610146516202830723078497142476413943598080868609427761951609535553661670649805894038445089030845387718703296796573854608140962066295640827294385657710917225592938537680189966387882784261455279960154596424741171035586423170391869167123684687471380606672256165040374104256220780420933369590674329047761711968176040265469561328047571625324680003516648976340061115568164365320618468588064490284722471824264762857754667513048395400508488651948131177149788208087101145082321735376192438553610570185749308821367902494765983090526091840525177504865331197918451808721880296845802499246420344038939218467428488668683219984187450317527909158360052377556255123214951403647615734945842470313464412392732212061239049589748491749043099807777089951275516758719663291822706283484006715050790411231162295411657154806395656202549667721985448082820827666506283052163531233053684342276047356897587684162898100443102366499200349323427743412581493136777930330417812243386241711970273008921677860211933381915008368324174703242843649135318249478701998250861467336184318660289348325006365245291539563208831584739366652395815446444033691715452912997271725753728641269219642647606227776832093082924252759508036665536626679400509563803770497087888429939917140533311446670646819934448794556401070536292082627558137712658337460863215183610475851434995986170810082073995075132321276140310617406077948340384285172816071428206473384601207053719756904748556042790654803973138853192372325536488409546320368570401956236154436039438306809992779125767537218205028396853381567550959776846200326322246435278567292531521118178507001392263620591662219901202756267319234550479005758963282359575790010278126363877488807088523982132254347369900721354259184020921913836346444764755443386512636898906488506873777305695383824853237072789011300397433703236117718867578008901177351831804445258412730263778957248521158133490910319805058856304615785265504971630377161230928464433200127833722454066347428895392554871646355227737807256034728806272497594120026977247780489720548724719266891024873550464622247572813104916809480788162413785734826184509898080870314344598035169082921353615508793326869455131911170940000801949681217128195064368477321278284147595326149849734544211646711967666295499480013511286662241254214145657372842606735457863831730085452806576290792073759997954781506956345322139929924981941828628692547518265087867823002777219608265320763924713850941389958968574616958491139329061281476245435015920809236095695963581324675239956669063105826077676462974006724960130255844812865281286106637784209103735591519100241565565089236660922777292253729032954125133337089129677668868621468647497353410218419274794899675328964923060774337737978716499176526098555053243203939587587700343341426044155200495594412019146327366285726252931786357009077628858953541036091154048833416346316062339989310602307946956698863348987564382159314130907046998414486588772803500605293451686701555627420183808871198407663009831952863848053989034391879860657857827318092962957166065276486473227057799572834155517640102386223636223962306584887388637754268313496408636894142105353604553034621024270658003476407823046597747394732243655782143004542648305962402056380471911158292179693791549906645208255573105890853349204955100781771009528199986802093352783792746488206027332963711633319012548759298377839331949199420962150307129475147431003119507082466836374379982159936669670337150981699459501206615762425214956470213890806388913842754292104134004331887413914889137169840946028383156593735760189158138076691359060728317434808020616865097800954376710814906224340836678749574984878281906770355540565419329884214265184318033077994702559059800324190766869371110294576628533005142143159727683449188249436644636804234963665211654170047517392494893456736254337720970830173814394130185948510015915877529797579803631469765625137988484380098490691605592923194614564606009572410703734082382999734090195535812469869026002160377586737833263077505728313715379143307198950237395559609347752372588657027037032990153105898953708924166248300098059095797463021474467021072384134045848410803476826758865991805470851729145355376827596660528913236325738097295861273805488662511780716872514351872631085195722910914818618329931901271604343242929759612534480001222906135376942195473678523803266109759962754293967622198185602276090591489497039490623580673666880342021742652426330053896242074579073383248722157856623525267687458350844964843135430477893572424673165180727457528462159320991700964147524023862522736817879664806599773531582965829483224091597827617421040964322981060698550471044862996775315587591885971452172477785323328626832992475527453852351040710175188920217065150083152473314966106915092041303909485811927865933338006247065050499229345838927845995863031733622577075933491415289097577217369117858979082484516414246129880728913810611723343256033573782418159577222554217272388259646166919541784559056744259358773368995944010379961371578738624135587566777414875192442246353832625134869997496504536964479226468669660106812460342029037283266501556474756293102980697440607949635806572816307141076425114180653032285572378663643660500227776352911978122094650413308059475555753798601125190808233778385048716250897583790205245801141494974835107896800933915669300090752622623139147626164409869101564862315349349898499362020680196566117389450938142303843716873477877419296609082551734130388601109750574407352997901440348150155091171805530054181001705080189539122301165110246394551920799109954779465818444120296411277846255898730370177914303763917245398311076538935745006395501271171552516971016449315859152510583311088911622965440228748554437491301259106606495473040615648267037970742962330099983927097140090497813200477642257786801265205869714079874401113758480327901334344374004065981318183053986034111369659185040870777927088461921934276569782269221858197791535508822108210449684276152932385368988933366485639352316735085155366648049011387260540763120916104424346836920918673127225416452163630821342901890699228332773360549305780852171228495538218366963785662976136144805619816744771348579062763226604373420353466694984936092033641159514033678944379617119571277654764608362458623799040988893121532788340111249979798108950007262903817973034901882135813509342459206830803682702963261881293465401747004946421042915311493104417042702762289738557355457254542418414533208498918751273127964217735937250717159970318626089844335196304055752915916145331375192244022503092440147281661614578982193198952888906503191890815255453057556917726342511614532103742776296369989122067731977618899488156423175290081121587960468848957955150697361374537232586065552896964525181616469679474078154577656670295534703960980735463299546220098282492364534484311925148364570559173771511639391903029103642393853387855681700867633044573310229430017490608752840534333499853213107061646387002977161767044053568129215687096605914738623159246047711069889579503369757408301181609570249997718187305208520669800584460983385976408088336086201267711821010949869777129203850313551910805511390998198926593088957373366304858880361455868880106369106271229793684174289560220087082887906283291372939286996610942409596661416358257011279896813325825818774578659432559002039081632710902480609129316709572279990882117012254235207843160342395942985827793879059834341669471463561358002266606786603141038774756937189681262642009598613743154119873262750104495728531447886728316834894984148959849918198272300979770451740383450084736951560913994014328155224003492919547529771266356701120805883558637346719502247665485470671056929827296843294587002954373667271774253753349770492454685684144815163372132994331578063359340767058312731706136291906026403831827304863454586071299091734838777779658903651768214335503642462874477952977531539115965285253848723641726979898234179340448347707922822832294691409232469400977670160755163619998309963213506710615718592075700419878859778775545208781956592270220286078592399206060020698151019831210247491242135102500913497715354458686896444992969931102455371024040802425490855223314009252539720285814163032863114589133016792449916982111257744574335521471725029921511693365657187980655060499354054794722314007486711372773575287729457850491816767610769418689897856783827711889855817501055558903356719822481263445268184264687426882099937353865477267860065303536952260790029935575417760792757929739073764594703149920592010057499427083782703807991261169573060524915455795541041111816615669292285173211249508050991060023662897923428833589110096616792140919845724714982068025438876024341764656606259514721203688789017635679691524588068563746959796415193118687308901323505614480860752965475617665959063495185627513186949865139891964992364814219995778903774615266426301068791946204056054628305707340311543724808241469832081799590348437479050457774935240748233022138446283941064571133376786495965066201788258404957332049155079689976290159795567976567205801789430103591955695753054634814365401728689088616201942779523882709021640724176785924491625085689781184459816112260291246128660988591573841594674592141349507933473875087942248768873682470548861887624606121045566890575277490488084648085105783759248876368739035829829193274809047158017028751791237898615532995458883630206032659968126261092160016545969038271899165263271011578351428142839795631879756810809718110273117658943609566113733486215152053402011073292528040307532175623651707408881392552435717002021542386330097667349063300075975263474388669152573027567757047832949084460772626143345740862550585578632775381186766771852204736916342625661244238060777849793053200251610529163837038588679499414990837708504232737204753677902205593403466248645413968290107166453176809989128443146573321284000831318742492370285208153174278424739796049889857001163093891207700287861986918019923093311831099856646977037646262421243315603972018627695321387305995942793754766808337682246543852103575966058336074928297346434986008065218377724466028085208160671297384957264871353567847148489548270902286093714524909376609987696012096877252135059690802539928114393869089537131224823149146007505342190209151666035251252018496937569546594574222143294062118155248032167365282396398669782475964889770583985466347766490730042629280702655780096827039553422370975584335772711735068041548914750206128038582775505905009045966045871607327022791138790804265232972856140548450955483751426001452355601679936043951034320100532498212004023153616880294871360343562525340862277351092805812016839215557890309850375926982873128411653852883134180668536868804307024458874885489042458283204482161546793471740568710088926793533465244666481621930717550726953205168890128161998587771616643810708680783027074970493166013423880243002038107260023592324234397529323197707450829746481783751327240901127447059240931122874164283206863632885598624126419202553696520764627187094110068762308652732896045348871114764627880869848803517373346754853613186881648797389555640784689289213257337642953568325508594675842951852478637939057767350527617230877975123441196406714578989672515454759676804116998091745908998797019268296858760354060157301197063705982622214273643431044923861008096161374799955656752008466259396258604124715770616684091424406913867704910081177920093500920521130671606970388500007150989439664234370017710600735382185109811089307148963625719387226161283889749307779070912459459500382035688174990098872973249845431067722829841446385323596028694391977601252665739794332767751997175745935605067442750130632379776932391280756068335592500745784621586968267924942096774715945845182704058987220905112213398559323941180582397160783292079232342238634557137434848883204410663759095173158442031419871414901537064060252566790050536304613046380522921279259486837653225705093588890521811991752749755720415689511637028334336008435831603042896039241257280322705938001233307313029878495336945353291434583650341568263709938027409819431225136560325279640951500573410635327066622284856264966176546515596492705815088330190371422201857447831154206456303135445171216974988268558806660948518726623551891463008903745791940173960811960013254470917416491405372305018336603009695256814874903526298635529137507974966303716911438160064699792175060272853474386453494873320404897884176398884121471243489859612663496115992858205202456061055624685653308614980869620744340306300453653855210395151758800327827737871053955632123046836704235172841797467668349419536537012247851806842527510076179082214420412494766209233128161634763065135474280500279680064852771599584784398396791961611252349393953855521131395093111982037719335975909947662767348292130440182253262970987364966817725114822591988008034362855939823749330991461751303622240085517760264889309236228517130261443286066967090808350534533870170539197206343882765193444776155574949712382714278730745436221477215957620514407935369983262338900372879622677622636744256490858998399875117882019449973073040645088113393797109699621393395158612100296118457070563474121882927901284943414833937724319540507726565701376546677164450665311939862137389619645326553620864270165055587243133069814269861610417157892456643330939142191430176714578018041788077427081706922519912269298513529995635657592221953087702060010644093173178396211274199517228849384958008968523682194012621824106162415287873342121454376940574662241789306718403834100509657648551718517990304596766677277783961730625534531791655969980639085114525369855277834883098694090619793605441246510372601592194825233584606781757006903895968264199878305208946747549898111351999304347821439499187267095847812060383708235509782150749625980520581407234746983202012797847110734014724430646121768085376860203516615466209011184934761554593901513176404170864709565398564926349339895122898773360589074826491824245492791607718611215668861823508354309935635268014333267109347854920335626008381453192453695524548942071249995851293100233457255479660746674357253986651665069761919028798517124539936664683979903746651238720857703680819309252527987002978815281644303779454482131161938394270788295927474700144521981798030674632855595699897436775524974276666365999922529569458558121123792703372439670148289603357683948185593752075238902940456348290116897323003837297976809437736559560669062104051930760833241340123976022447464870308316131987181033051047067646194477045425856918935495517089500918575781242667292156032192885051775892718338686639519507083705420437702413527738114808732398282614425497016265255733605763376112381090450295316143543455518346481013182648213718398497794680103732458985949985447807254959699039507572765491257317934438530887746575332377400503079115409638901093253836186648873443539126687212946308471177514203961994980201438875331772797840193404904028100988691229817059401186468240299734516031820251802461107859363946856034870947066332112865295077917896159226419903728302463906142757960650622593926967077038758158313498595171547922687604979311043706627055743287722534667916214400950727242772174033140470398412179284110657501874824773428268692106272586458982835215405953432602227829958424913011143934958888418082277642565788128279112371411826424560702694274752370604513441591401933633172955905868475343993777422391215197715010554287721758554561024678870877595915894346921045248950786442605769322073866720645666846418222919609157484849458964237628216442163250440848055959770210623700673882873231062738241188708421590211075527054430710431777658090887554916845307965688995611903165322553704988712615727291079015437635487524637381939024285269619526948630808593859439836217895941326618282907689988910320896045937303260433249725427635600402616657014267556391806311883095432630887405776204270114481157851223598615469058643416793521005349558423554867854357353950438563101189334252215411930265640021522867306480922857636706374595581044571494368536857375115346012903854337511374650775751208063209661798423555632819613870878615859787981746841769791952205751579097256675999490223313065533211411057062910458643863155033952085303277564277008076837222263758366236687818774576494760281463119100860423116467084622414933442574248001046765292352127508884217899669514077543172567397864547370636272351441230279573080231993574539641912871179263844194267765473550597936907766367011755393101837232760656150902235926366090882672894894523972991820525294808138859759122045721751860602025969782594496354838400922540824298517427594653407299307113111793289081325739119374065176569333854387791018850377306724544634746072081534484022292128171458994159760839015309401879533834501363337975808179479864163966145941194658285465630150009237795686363551148929077079287494738246361805197259083834414565184572638857207664476157130573274241680346119582896750417968848365896993184730667134028536715114196532019181368364160348340057356885362604397853509530653475315032492201836916050550681572094936470842097670397803742161711109399765763705041305161870886512347424064446813236250995386592574943295741996777897686977422318258579261580687338847362759879866464726679584020982146459310653539625645065267961089094220862822617150557535463822588217676794860075034505526017195081597985266233935383801244648639975496765414400188258027964284446390342062283576217022523454512875818640236441600471649979169186848911960596603702697938868806831569383088879527855424622413604466124301983619018858714270948572188965030767433130681458324860510755169239103486985548667864128521903647654239624179448827465174376511920681808871374973811286843163023114784622212155794483466789913832621627870161043543171038309812233510158728659296608506109309814346773845609391331080216042440985168611008258619541368726057007086954875745917205197667284323702681080441157163993385478569056438435088728042330282460142763497710087383518291231803884426814934148910790076069076393814825684638225861074579460103864816010393688107120617073530922735726334675168291358762048421745189984114430138338632337806944623177967509861418965150295984489351093084130055070956089270879503275302121024410218578237821781204085584159293864921814701635879120682126928791370155204585638262830240974455870484248727438370344351190442454829179563110886604163827633191853389611336803808001712569980800379452509348006507047146277063675948329235321016114875202081064401722856965062302361739713464118354566194079707792236736412331626239350287075879668837549946190338426368942769571038781658823155528427936607796410329054991181562986131772160025706573883553629722377802297802370698527753433703914695803194943333954586599648334392991617318470992015423727889799130620553173192488035094005402373452040154759226026156098774992864918956138104770823680013899360610811283822346615872118898324102373626032218372837777091551431534972012073335888065525741610951359328183364208540472827224635583989421287852933937627000485830023059856532169983347989134302628781557872492451837068693431872546450385347138467463682525871309859167624652003223090104272259444170143522565842816675713157258830180251822585067586891296970841723658777678338719901246495491211166870583898781222705782227936604239780259375663023910181495495550749513650009098627410236539619882656725151505905687107333508158315907049160128666159056632097135653901391046296665844181960890831747762139710353513256182185152792695967932836296111613461143726157088313335165527991896850201858309923424880455338659213460465194258609573533687193610464638061391357777985181236846905204049187458735745938978997268533623061602529214590621604782529116860560702515468675088457408683619097632513068916841815160158332295964256233015054798920119281245960293184589489213618426485107110025375148153381030791943481005836736235902009976686701408752288775126476998593203363540927495560200890248200425411116212517788213593843702814988318441403696160095688410136322661638764417198404769708742603142654136066885065209349882377058607977719313039508429272329513828330276454537121338441657404876173018974043965654026697354573176169757329291636524512756906881679910450005129716370884494989007548368504408038527783882707151647679297292227902545659830193882440438239979087635249330132298383667369650550232186699807443392418468769217572588537980352434939151703978365921059379318206848265919827846482827969630861623690448083918384001159179478233164986761940299608225663107695444973533381790779587870604783385361386995829081303988937428413600897761536114248758574404464855475570787116298819035991490443476442722904573677021000863126467503978214230587641199332323571808889551026691559821872788167937618114237033763506089324157784318063671948742475985288876813804506144860665801572222024598181053009884915204893430348182626996861336946725742797884320621553996653913327975911029010165405106281871375383710842113121170373851125664854940790784962509596046417319539498064995147537984395311510049895086094304541553732811296214696759961057068198424002866584682766052171614730315250529130085683313263444224233940023209884669833690646513096528431072014505593521586352012237840899098150210630096021133576518893437895032155835188984092165462186343512472564604314687423555193172182934055277036991644126233623482976455986505951628429562189278762906292076536782826256400205744005280168114789828348663661736161512938517065451838269201975972894692644989607486049846932533034924640719226754647136333175043375935660609618133268973750728234317380167593871664910418542617575594718980059441988364420393738706708143739994190139905282613252204814935117083006578030730720286835521091682641993165067654108151648750300721248341854827988346712186173903436325611189834502911045090777619808086455052314947248027267072674669129887862954959573309513386477733978724600188499842631177222743126150064954982445607856233112357416851714715509019386223626244232321934171388825706971670152850662247242335112660194173517950881249020683106038828794856183373511747550197327591858346204102779650871435580156231254567513137253465143355874458596501346738043117074545260105725855189459528178318630192329655256936575434847858797722051770916973354624416832477474285087086225935550778225225590970384626746181376142539128068980143458989163430576868264420968755826327369541467174336221621708138198726326319790645533811968312168807638454740858345014180333884426657355454215872089070897116426677793775552073347023207887742434784288984082873525013133811374637280323446688258671235064296877574187330119691163158567356107101475967347983807810896934865690740692616688678501709337670971885090246352683838788685607516194553443178466402237304719398043132386376365886808928136713441641882218235203560691380014845325063305422116743138273615677373638248024098745729180007329088053997272634979615288911553342496116584785424011059956771888764020946534155513327754494456173118112327134036526544023810970117594785599340511136235482143622079880288484935278486249000808681480518800437336441483381864926978852277032167200262121924678567334502548281295899342365177262308978853902310304262481328366495089674708784237703968853506797897543778540615684740555305326881911980873138845829489977455269729496230551794412926112914947333694038354848087155948238620893082426392591239305021024537383384343139215140674084857000099828574149287617835367120819143385561502737714437227205101201347254844704005085407508710790541197577761623947011485080363491080906022085695509444854731360822294020252062506692886872322721018437899381067014604183847596133968653980014762568407851948195365622736667673479937846597401716095082564786424295885880267430251537818268980979539260291344150170457484937273481033741857321728557102357336308335409112670746227338411124621947534587937544160153503255767530140465786908314498266971184209398722430131886340856386830228084891475682558986518474083284632469396780822475503533704247644320033757258944289668955972039903861446373270226230930079759671297370406201911938928214632568545206435461425081433428468035982133063725008651596861567451889180017897670001256464353515074660183870051412151599556374809306709107913526032093076524110732375816668781059395963125539080070735887006152429680753295867978291557687623079044675135461222216111078383227114410971893770759746802211984505025005210005993380841233312628918467832283892926912018185262582103401389766931770735384043246780391043990073571360939382100086337287227966497268077580462284312141415984460434732990901237234730810022406691667124113362505005599060681641684726536127265368615441291671889792147823004515943025512834104824260127236650408106454051803444041857603823463027454410124657648579878520492601956690656792118069532329277985862611742673703528439691806972512643905440971772248865117379706613343709169838371176768183936094391854399248621726859052960927936660689032588159801710209563440958410585118243026337390247662126956813559090787270441693491619077199546729984882452820530766220164452906394171310265850920514347445279863298918479947821041874640502162781185390294862262817224864963437370872515540762903586954935138941831134362418646969316191980685580264738937928144451879465199949857205690467228888441246821412428005268749359860410634782859054626336127232096553994692349392237305638187642109926434654633399595781464346674332231488352371199374918706229381646364265722848329034645932441268573263307642328061443384687899037010165336901058048624098946774248867109796743106998375129919572956042400107797538947505567872093473023047624636895978761225854833098130638808646092026817944171094124385996304330176692417358225055367144337077345212906854785191701462527235709190952108218955721123709624991512285050602217895559356449652219998292868952242630117925983315689238035638010505106416139188524181253254846620047140766106884825760859240387653896353515922187471888923442074333130233936725743557550153473107790953501833198478788068208318867323592985102940450347302547928935675827272068116268693255706413086524873246246671229307918107944542318001330356094253451752000756577041551281015307221114477609381202504907561353195180312824943141230077253680366704092096871115126080643844736224635006230847580040207721189170782656875003733732926642010897907454451823374807185542455154068835203870933682327998693961488838075901362267216609314802480705235318915205835241185880469324995795335914468191141393232032943030633652681342540877934366999595547365386886526911007193487304010905244945295254800568199659998998524496515384434531047658491796174113542594918792616591875465549284783592280068195102831102308587120003997360865865824353779159066713335643721995357117420612622831943592110335014691130479412043822444795709365059805546343018505878880628434710630028165361152455706276200950055841120757520737066427234194605613147215529627722462632012349397887027019937359037835736413667649427761778313148467742565081120482928732628926352133721239845111845450601990924519930588262187544161528960428220964128233430843912996560797141599413703620897057176771892471437354553718053063926374353130363486892824117470256006764327280172222174182055399350862098924582810801983128267050574497706807313711257378305004716391339164243845491170696393706325501346646796650387933594772286413048019410723616492154119585050419374181536915835884798004116803890132291337865971469713128324939995666222640397020368756874155231330488378734658676721969299134670167276469179208372673900063849176153300259809575097927325422978520994767062162704390180347675466256686373999093743741722463781871395056891121855258327558715570553676502749147996666032728128469705982948423256758652935459455617669135380250330252477950518241991667200505241315402546344758130785919439711363298153975241367903108259261680425716584789705791629402962710591206485900865582955649719498354467986277491323288631255211224384670597390402751491530142157742630501636895331905068797350454677204567219155187821117594577264115509937374460319247990211989178734155472181559511457073013525334220051156118795307778357807222540308597638752283701657751269423294419103201019287434055587496361334783801130192671859557625089046308917285757288116488799962879351933958726228124118273257406239217117471717154509756373461426080702336787424783551084003320068081717275519502364057002319090400377205066153541342586876852443220831207479937066361461790362773127074010353880788369613737358674965161282413985999690818239720092542092415461059440777241322816127478322894975092677996212315258998949627220332260838605565917195185408448735388599925152452528489333575201109147238434263975187065467956639902460200486888817469335759837839182348965719663766773810628582988734646691457393614387431103172859532507061793421286841012899112909994603124592939573703698449152563794979729855517853978914644819645141332944767332199377313217152226950981662481143858153879656780584185789850788368043583864350144138696818360943983618306332500075633238062250272513030911269793044997303455160720623265970440258571569222777920267410498399068306790470263627507858446885854880161186679535381672193923629989700344206246802642991867486167979936329001191446378944485429573940631755413482568310929052008001928778073582427563639659452704828535856830605345069348184852904756020139069189194408088290217493879233441073007796307560836080741329282492782099916825655908013645837089283851992194591846730683349561270088141596937852896255818813754744771639055318377462764272495786560393546861356911875731897216412492486066243364223820778280091279004893542784668952073403896881067728976568765239396043594345709198714172442433794317808968120030747769995478351083026004851158041839647907130900166525019814547408225831938207039790179016174790683631007970966279649291246243668352886409064973401227222116752228766834959383190353911314736628492685510224264785585484413953135619998700165252042482563492767627458059236925311000566419723555913837346095386913796060622099797202395487207441795418277451471510074297211658641335215101844249188292403148757334887735723068135772542426217436686455309430256451719987112676994671328512390076840915228983327322183368773854019737722222582431801328637414912261082863732845870049804211103194530597081339780703683025637376114611393243497869346962357947357649745789105010636848399368196103446537982215541149709130903052689994924966486418376458612939262977060155469465181464829018051280266871199440237236317849688594872556103922594761555158509401164374230619191884917540983701263288987324636684023626109000523161804055638250380725681881537416011968247687795726410492925001390677953467420640651740062832957332129638455758207904164615042051034937192660295924912869675465219817268721336543557438819837330754238773475370014528921441215803155108212501284003631059301415658555861246918494866681952858167080111599244469624146891481981086938947146465501031134158025828166356582465634621933320008512283769793967020449258279816004928325208173572102712365370960329384810437272253805927677190106035870649258444639142161502469418170044003964097182197162546975215965949359406514123843263878014276780881731148087977931618966026437765432002777582889266835812363563443244367910485013301949952437110081833253045868105096074772753349557094025926159730807330306751241252511028654205358887585019630317694028767842664481344677676148338274950696444317751446064427272102199960687217510263865134494001540697425745883744689125397658126061304588133388866464179488608879419807995913491741942081349393998787028071849795383913182179229255203136485242096591507056084664047801248901943303096912662458854369475873226589488242891971687805565814155483630725310674114605673939970492773016199769076751319598153576139043332302448452815593120059682374599532572582126234793614602046475306864241280786510409500457273013662062774018200392660835693881747043236680130165100652962591996485780644658223817464231998855718041054158727461295205275820975979518083440521750617007288092083236910217215802260869397286744585202469263413786836381820636453903566365775304677725317386993351647296048831478846853875336106720487296220799833917416962326255683185501111345559329259720448603312175850890408992419578867972749358037948442823954932981931819842306296967430876964420684406810737980416683920861698272988757961261195896691211570474153728506045608240743635651561581970419557354805813188057375486002340339728546337274187180018393182950719110706023950361878446500576038692197414208476002364838111928023589432067041289021096993419268874895519368024914156657862826149902678653457058993639532716869530614545316107484942418894948309651594479246530288646697446820229111180817368039243123325180347134375217463569668073267251571915388125039851291114569871482445992909840983457645158555377196729913904687631636926929674925860448859815685520296715110007438414556559161432743227510368071100687699371325235206310977963686838280228882187992228483353004115456976022818753081051237261668725851759343192451515926886532074796980975964880017640730348332043737454772425210287892285056771357207147679746874468680764570304704502461455603901744031764565388798389423017241568420790756684199879115541580304593325029505644841082367217314122258347852514458734196984026326170577776470575952442310280411803476169695589720009644171570383801281333735024997086746738320089916478762150460729761086881387609992087176681503635570933039255883261982105926423708950718653889563753780823145750897790874721799751318133504232338562905822180384257389528348413285878183233833340442653024407322750533447042274053499183260338934727024291113967666261645719241670418279671261952020456934133465156172949283249382336478159875173297983038904238166706380360960649316510327954489170784680319164646054506436525166923029482814927681936087410414705300530296842257859968241851946029899451153176273726236438744248129774660806427768915472243869690660771295865066715678744207397293320840681824099515352617610203420443615839871927880381376976461075949559738891812187410689406640530178546689042599269853359529100033468337065745759189032868624742304609258119145718552154007656662141203584767522600423225922292941195729946920242424249606638826948402049512693595210473490353591441421561886826039236456294486399404749845868330259456487212328144642937162532776649454291468466943212822377405902030081157121482303220289633277470413103646405412285097349231085770103256278314772188374916604301496459654550242652402488488567816971450040087986821532284203575693819562591024014771376519756211326471032002903771113065843425111708161782955795427588941309111698986154142214282755056508979499486200101597946308593708308545480170962607564311784814614915837322333433609081616353209159928441364189506893184892784619412106092005720839764200364426315860012686142493986092556298457821780970996650325753368188156871740607418999689863968545990001952155460564555899897202032296046675559999094211499867510167085226769627189714229278609010987312166241927664221722869324353459864962638418061678602300526118372956837754183125959860591372971668191974267628687896026026321654221667231544222493103127824960119274694625007527605786847954170031189795938879379830689598260767822864693732837092462911592563342658995654320849594074569034476452663562339092258338771795106365394171575976481179807887370701115363577980593667308444586120926764914246799406732174711904179024819129077220273066741943950013714811362761118392627241392217818668650397260004027654109395716267601392977277941167210106045363325382161277221280708920920842777982591612851436240805111001284755942836842261312938766652562897445196238129999807832428875869401787565826756392353590980404659194896422504600182946691847521569580114806489789833731964893413233003669044102303237425573175191240615203350284172368653846601551491154029895589522408100063749323614375840531393225377810399174896109147630227910510967064947072190119196312970804714420872122431311127238375194406006330881130351007752720961019077387658648949274616823730605344110496781814497070632059450476625865853635183105230913189232051300243069589734356385700896755739975695896392857700485579770964487508799549808519282480865044561593285422400286610000453744736882908959229901558574237703738337434237119126895788695572343690410490483903832635828594923806542230809965808254203328748167692637887875788410206628540485417177687250254616351212988395380960527267692040487247958593880984868462165763629262453099044800469988854216521519685150026783077540141645969207274219413423672187402987108914143776948673681146634596085291565587366468051444775061861288880748686439164438172799741042253692192639707985406317519159419959982323942490966692721305513534698183567111432426959084488181753036370039717450304217148946379590915925484164272663718457989502720543349073196894468224287438312354757862372592270310648962861220212044921457537027302090372677084221462397404788060264063886590719770536453997060660487297289674097184395600752418624830991852886742785069627238168429979199452618524030125251340279945428790812998089064626903497889908747232593717957767197235124231701572478573955515497050015421344329111928842196614013363254679557681955972391642859177273961099005815655967839794591493583693514315840823708172642401503699016973015567939444856854850627383028811125156264884161077095023036260001760588976427856653938556914074193451443232423891241495512065701339371396771447231893735974065172440298699047902985948926535519399825792196458160414107183121901992559410046808640093894680623867198733783806586754444662336875715217559759977705373751303326420173126055078725564738779440327963600193917884217645799459915997697061655542576849604837518776718099333556030466428809262189817119287504894147787671529807305898163889050236381863935955571659802613508852808322969016660214426147856467819250260726808602121694444316799198033757063238788655090488897799058421050356830936248507804777113304908159829435199671166240448178725297016970569008328808753988491869365571579003413652798598388831073261502020227126883460404767070036256120508921598050334990080647475326584439786960617897255431775921188790291085412340309765834601129833617340261101809245667300275638109931864603862802319446677323998670234587009196575799199725016436526166323067690243881047418338570599729604262970995103899676153522513328355815088200087565785385380466474749154100135906600459237316388092607256844609978663936729023897158523889394413375814082393648473032875188601284982079949071175569385827461447405097012252304464773873229071367595886521506836607794174868366066024389897513268531941239372268072254988696914039783676142315470215011014637430828995863525635188793073763614829141306816601209812620055899078569896862941577681827292009487653022605761205723367574691123482884892847279824129855230568328847901638938597392788893484250854769348049722127847526862574359103659585996231261433307594260902700374375666336173171836071121065590788616249323852882854888468910606508485177342559216151449991344598934132895899039142754611690527972848878114171082199456419453165906654847538471022354520628591571717180354100847961966937304616803902609115914285512750000799381429688228548417464739836947406981760507617955559179409108634738940961106635210840045722531864165998200046106753521406054757626779346071288017395227532511896191523763312374823457869963012955311903286332861761893082769335256671229704980516409292374093255412260242004751040594158942851611506580843118600880775957335728207206929303483993555586341211107056152894139436682772418561781651348352743541242293447249042443103193565282169427630186881902231928720174515662042732064305300812267681837099886345523686332241574908634099792585891051414957738009845138649450475344602299187170706579971322017455026764650488987256613100211657007233854182418346902501516816800370984022946184746655482787931940573768395071470410144156051869600781284628258404234942394230232350612293359132387439552238502974702978174891825178869282165994566670129667077910025227528977626727006273382097677609886017723312662816550420562252234662882799329623871431605645328051509636661169536648075199930475066776296355677178995758505759295512125183705245291086549925758188233725516880439785129277523262127070073623580522557431964452210254461819971033317709522286674227002096063881934688308724144164859435283560236789349575362920242571920900684509340678239295062052474183669463497806547118240554405121817453805524870215978868437527201796755316082442028960986921423034078325754959424830742241650721566678173268470965841815669353956119714893846958195627241007406081905769896828589681885698010975030855009609358665187252767972098164174782747218399098482404709950077626600067679955168093694407478397260327073610463453675079733817643807692883776033742619119025622390907708429864162269532925763760598157211832335212114312375367088333779285801472834885578828332610821484667544417735503921723759748743350549829443794851406327330603850730712729472791113899180813457718438681055047124729079918202561274000375639809183582143577969047830335654743765460564092772241897352445740486652618382479849845490450732684385055070658954263665465633481924096648835703648638143614741171711184379165094058698365463362690151834161564981757196360936195650904411239268878214221740257001281537519793109016277235491530673484211502511863058300814355520944336744490157481583878753724621576194363730771385982822547185099591962969568580130277242109665340202639762303571840508790910870569590945067999987579632455444078372828667582085590874937406708895484121849279057376199590315590679683229050029883279322325685171025342244980853645078549872219344232412699152284685800288178932278092853961189033914440192812208762399536179001834824885734785393475645785650415599689857835516349488252655191924406208855030224752451856743116146499512503343982010436706054558079208772308390630460674938910957420909164319133179020704522777553609469153194119388542564734697973234174577388863414668831625377209056861033873218810825239339674115408028264631704580037564311151850957497067624479665477464998740960802647689693746605470411153206679287664865124800884466540491488027025566220590248683559495587221401744155271331075627367170381719359322287549958383917145308697384756276834606678433398884414087023607818381038492591417729472813441314404077068325969293034431989900425692768476894307634192351958770527863955705413990092377702725176176926687482405593453925715481257821832184128527342500471171805198116361606333499866779671613601585823979624000768983638332376817071604502625437227710190091727344327774380586964188554520635539661106483285170009370362060128037517226148132644085025270156138831488641282675025223312338720272953866947911830071318346163209113687898631858423520915779559553418778056583032388556674251284444576641900020878594150212549893818224180201931138730796343212284088906921615384563240542243544197223295981269196462365556166924209895505321452297518291978681678623473507190045728911171567093826019619529500181881331139589954353815028307013865343339455246543272704198515921116580783842891271071940313841800611326738340427140069178526298920806062949487590114734851137298681704931185247341299062856342321482633777738584524712548655825728027319775283169346575556317072466347308707175163277869391560642968817819086500620715583808187362239809562719405906685007813315575605574025407059966636077925286325888195359763975964045340366295619096254483911009038260940127320844532176427165384636299569774044881198133057360147239227081256107053659800379164011109514680698794350469033070275463165353844628813752898228798221396090539601232542641401284296874529958474274951338836991565183664607031293196491084521706687770169432469133122311062609382385664812582789505039512020906159316297050370193756219406553140453862990880563787933158857981312291001232381423902521675875431877412499705333138504128160046639447047177994342497033394400378380042111426792936304629310953808836118016667104459535807045388140527732876639111258388430975271053648096303998201621543496075889815867364864096067007372597587331713835184659748193933232667256472167583645800123321373171674025886456142394729723459054045649932776779441396122408466888544414240422177462548518635353685415709352731471372094854694310668934823348924092799602812089074514253575297420819515797608814189258020834332277869323775030459689651376848639901247217970209373479338740938655084274807585566918767151901834575039985668830833987427472436302686406257721975890786786163186258652659254155826289949059292961100543655451149883826555398959669060111059214101801639191159378325886281232228590475846279981000178644096862991511742439696103864387421035426135204482514241947237542426398143308558950730815371677035258596768117158319279037401541089965700231677581816457723181177722964102884274977179521325134134518573512821086970207386279791672925161304944202862051311819657133720461686609053610718198490073356787279299119421995528872764522577312486414833614920666808551831017337506982232465516913500839375202492121726570482416027020199107825677611251073738838774573883439394420317815664983858598071950086066070444734139349150263431254586993916239633706910179423239461448474890786342485401360729100753760523914307783459935161515441738796721517267734134663139498972342845057164102257611590027619774850374690186119516471765891136597616325897539228006575354655734821756858711948282105532724611232991736703577856298328702279522428898939170757686294242136057471814103213351358381099400647959270778206490502875886516277554536884221564801569799378135445968286497212089361914221055958459046544362160683168189613293935897621405834624025449955191314003052467292725992449408883690686631489914935987404130625333794326875993367681654813136425279726482490759881767922507595154647505768439563381354549690239171994204553029048843893473441394061591767996481619250595046522956892557599241105332238887228089843717984790280275526244713132816384607954695041711711022877765611362035482382717610473457956343574921243136326944847292774277241798053009146115251919563818978594233635377083059637324937373733083468560480899060698627552176957245126411116950174921118846640551867478450601351759135593991363560266635086543305129826236855773065064166278718406658623696020475656077723215123634704219880972792443461832076413006534292532335040491671201499841040654931936190140035863244892444118324137748811767804950722971270332632611267342990596011712217778488380138262517863215839796069929638224618251769681110947989735805029710414793753728705279829391380073120661959834235841515993961957818316396270249755763696668685267800302183240061931135469669872763650967735180903306580133908639861171583082158640625456712004017705649726214557064493933016306476337628906039352893906110096047706370655165655008332850438311535865749383720585300917461767884084574969640072456917209657161917011252012880263500535723884379596003169329768503794360915485022390765689330970942484232196308391561912737765519764439432675900989559674950588228597950030185852172935996823902107720131748705201103601481028329510836306868378627611170088965977377246038170014406239421570478361403771081209895487031119137329926139578246213932252921742261230798433387886237193473780192133817669703998673510159545354766902966883845407942944728801739604587358793646730462635623450151510045239001945470478786780935556886434370612564378556519369941833798181536756940041767288785765569095800033397216300972180755180738365270049854700010761878083028105221801942623517979630328219625682835241257731817125063599090666175032831036732218977949718063710937520999392077188040965279356840850638326130684718339703536838342765785324449730520904433060754741556561763917468710216224153793400793057035766154255175996502156467696770871176463895666737178324090993485406337635257654698535625826204147538721489129777837379442174355723997559283561016703416860768858991237659105982298395897072755600686219293047672450215222894345395851346512401069383879971382323208010203933019051802024271104476973844382125315963759234329424769339381246798378757472106082712375093968234770970795272640186309148537902747550920505403646545054387086125397484413678072636426890940089851012989884170695432179951372855265840451481714016357257977110416860258165747175348565185740077106692673206508899126170315358840933807647444347165791041639015164289954362322018810720012352255021115306967533668745685170813148018147814656159549976776317463597046778805551987418124450149013094131683288782594734661946408709593193644880219372151890634763100524702326688858425705493046215891872679128965268112206990647886262758583241407915713154782732410551562307453751352604522323713754605039932772428437692716795202784972517248444944294412669922783532614372810305269720883702257468489504143346849669315828062621906962739377752772858421225339503102841633114696760706956809563601317760827165885533091098509245629055179102244489116364385865108703188192379273834271574835059435503515384347992939468873083918195239265232603552785186176878960768350709757552450605976880438918530157555159502929501437410893892800320115107980256413297195292106351606341226751995223816128828299620981882338015018273412081827967746740164956840331673991506384907900223102950055691049821193164462636468254607403352038853813775212110972455206194840227090843914898182696175373072290003210672908850476057988581557663516741763112127785292391753080810158953368388774171342051240343540285516563873244102693875743189412111520295256287217181400764526776163246217023622570291196728156234539376700916166907118453359554972219985490353629756656031669999284869416048846401691831019112823985841929161937253093145661680620055476959727330365561103433212347573606714233728166475967152107930573822716792924294611792001905340492550970044410840747886915358705672424897023902571679213522256906294799179115254845609242791078581415352847492205151188959932597977087669902812906647901588413092307344699693535676687652134048812034728824833459969797715389278700178561232527864370060098405642976475771378386388198580874260613285358060802403617580039226092217056826820981471958782533014945746269060777281465707817608634777352043700274182121547827662314178999588482064040509054342101442041911112564565708019598429814239986473166424711219521367241305590942237144866706622650344209585588087005982117261453593503056929956948004805302756528716365539967528974329190194237145131177292543241732054566206038888211445815084945544943269315275097381594956267416718851961005035054067352877386895239779958544067392926682993225667247677439891181884925243370540340934588965297673658832549613302659784247439166658335095743050813755452763792880372270261050722940477723951105268115454023422109682546047327696133986193890301114964189367441649933798628124283405437550990176851164220975944972617809275199132880763322961614793743732697533898240286087150384675918372045805553605602723711882584617505216956114299458167224561412347321770351619993979300361026436281222467152149136488152293150518547298424701294887555200157071350585684880232384824812775821648917972695592589679920659597088407911341986423632612379534257216133131139646217894754798421751356193594646888778724985524126594765645968943010743269202792054770971214217705200321501144393005453217268514980419331724892871053403822101598153263135677767300370879652113912727127329781465041136136614903034678690451917615339267495205125516440810968370843111089511636975461794827759654844079498155026416465340601556392434742446406559206231954968657537739272893407559311558501452112059254101648304202500578242462886855668160092557472155841154365001406274606912992314019085070519469759444821228095379313385986629796257851238432014452848386654840257431443366430812809680828942858515606672824717892987774549847791232853111319813483026348672126165867742547661782459501028525249859632412711032556529406596254059334871939674239598360167037563936358317254589678112513944678722282512918562881021149499666518805446340183505175289034932487904520967557142266727218983654502077768861433142424181822846884741739903023920205430938924745453975450563800515318064963040047022102639854086518214096189474230901046776268948491056167866492200562158028354475341242974148096845180025036556835328638380268681821715420481765409830686380307859010438821205675207886111315919478045829406989324580386060978958502249360341086191401326240363252377084958515898741709815017455925504449778160917763332565438692481268236898173420821815990982319382985149294357141237502410324399964083009770966853277792062333737502555170073339791854643234449516548375864822229144903432663859873628873613282947498784325443305037500481012174462512656130925133792763536686245308805118534351738886715855830654232380055383330052825734797573128179446337978134284673154160778205878799223928104060013909458807815864088662389057340921044518080634696578109543347514066676829444376469982999554702311529578956069058058842090620166880902525191350068260455577177285824160765863316333240274831088702624908807239987335884391750427046034993519119530118845918401401577631829939742430062055000970291649355376309111382136785691111204175514275247403437920284447568466964127227785680908820962115259429226652301745654790633334756682353879467181480196829190145402780315951825277186017326563405445899681026271433476149322050221004137674473741123953894790573448206651156394884794614009408224329905017338298057643449052373378123699649913174858277841714919540028317411296223713522178543971227807351866632438482419065671121267784829636612790754356339785820886092696350196774113004410512748045811930539315298303140568284303480395135795568868062308677979599255289097818235157504217969042363988379521901773582594818034977702155655524007297353511185450069918595515623797308181292164675612249904263795602329121171677351718884275036405083164916795321234819908181110967983073234473176091242700058644622536855443193722212001204785999104934997777043813314334528108181592466191197618918591274369444444443640311361859176045326806057165961662120208727271680810788819414423994051366136493997671771878789174887397484036398030306158347000990405023293181715461552205374734336715347910100798616659477961655088978267551912595864238267885104531559539778793282931742703082723257237829987237904793869227167893323555520989354441044286244999107029367642565223048093426123857093121490050611295129224622894806154773805098884574363772344002145987415870692341383413668608178995288721183719574963838988253981167104281558416802872238893084772112708241588605355374959945277708595832019578500873405736095562183657975339573782107935195910456926492075353359323125242835564793752539999908203471314368657767874409050710406229195472477203062163207184676210994906520571267481442887100322840679848493468528030930503773865275605745412677131511068021553440398647134062983608687858379172625113968132749206932622703774862532901000283905332787313065992588030001798555454499921372519577111105948663484252491996593900487405775070406709231207785418185724962668329686932891322390290643139788773646303022893583631620325690746138032754905981253512427491740232889876721602940222134709919895803645566334498881358353536012733921454207380635756444228910984980242793184243747306291300786570759235145306449103932522935852435387569695827630855557991828899030797822759128794811590609669641142029805232025914543468480301905914918607303378234978382537628014726774264102022073579467055226610203659772573234149357966289684716355845813198153327167543834764042067381182411978784663434709616776571383749120679128781579658346749437136795222884205482682046147891718514854537729850031352743610629320040901277395078822120182706334661916616824421803377042419453943690360233411112341421563523442844045076740962923972136594165583000087856334073016857776268124236186960342329486330667860815711371792173081348071746884773193445186734714140940532887649057673011625628131945289427424267328850770057369110760765668206847366909418751466921958832912885858662133274968600563768048755105683323569687300592508543816823884340563675853918232253027619712409397004519169563011657054283765330189829697307521921131865516520818586568444668576204678503488331986866695593032256792675426298378738773693221379728485611954567673098090968175286326671232323969751536886936876952735119392609869167681650189197802964422805572682262848597801344538476195618971736380354361512763218719872994647924131332625410055015743914539138111598796443552259651970421079410322995506540121680168824995750189645851218498672925433647200666941393179908489920388978328433645765510220478422467904397622759951354505150216213117673458556171289269754702984708257562368660587491656610406806831680175334226432449077242184846927779790378192457277589984154986687529310707730440372335561091772172193750021381875880891762583244938658770043747760526284274873677886371178404010593425220489168775098639295511322459308955900162393167835175394946077282317364555855880749238174500104532736895890659953823872715165743172488025818249552451082399139153160576350538495955315345092513347613963225755086949866527322672153085718238588917781207126108264403159285638700838268799237813658168593162561807773420250694823480400296467632560110525342855225202698552162055073236975370658874976415698769252684448358711253759142671934739660660852078445313364467690290459925108518733674081393654732769424785474387632203937789847838107380351653062912964975761048915266077175166483267211820664815973960230397096294024658758300777571006239984247433018235303148724588480749888837888402799963930983151440674898488902439136533876375976295385639313344539412205199655864028542304385785356274047560123561107798472650454756287549181203378662601169713671420161811000465556764380583246780740840284725054541760011753594745330065265715881756850794188957843027422069943661476621929445609899580405858521638508448938383631606034084677648224243689919266396226603814171419034346334844276332718358581957684480720799984510825622904267521862581958633618944763088983714687059780927692001725746206779717632238246568882078128487077228366207588608351730321009546071260145448153426308719653232848211063622944013243943879319941480994806180400314596966530854601405068469589280892998589952359770543502514704751756780055503403805441447328314105336888571851276761697431416719376664549866430630204096749358467702450512562473958935401326590717509019143927021399487618561445882538735811182046291894648569616632458566332577372396565206350227637406812919992127061504107879825764447823959266280766915144670305340319470359082657625069610582441224885102708497977615670622245403645776385824865092422979828909872783216132695555742277486199072776270714694448472845305340917718028198977151417752783014683174835186903221425479188880847077629929823267665838180470266989800270231660330801934759682461747217750537901901999489674620100883655797137254589284118705271561388361629775295101015543277728063252736981659682722589168614096070377713270980219601013523161157853893696423476363110606119272328146097772155017655867922183419716280365489717104430649530226167853538446583273307001815515751938274428457363543912180109315512659040478697020779554669815981980597939551920052890802751936041033708306108727479986493929333930194237959917012304940372246118265289356382062824738508575534036224598049194985913915204130452927134996066637271380332031567599315257488532849083343824559648184216565397892735108539892029399453278993876357607633030194980024572110653069216236871718471930148739262628947319584164453593252827291092380659208549504765762952011304757341329098941558469668027660922600285657737868901142572388731592344216157337040088839595111118300369853458753840628396233017306029423836968740124441485209239833632325835220367251945599492929987552099303405275322621030401893287652809525575101478768954199197363470348232461513437061561660515675592701358334702283885934491602933115131543427172214077880379473168449078822497375263761440714907167689382922082892500945306400459077775331173782789226396466339493816881244457700699915942040870350842281313391171521738650781450215889526931558998314333282432360362373819448593609773427754459628401576871921205867337817748280186873023435456310977621900898819309613419774423798355745011067636200580158757731709790535009052084329325826528736455375424030077543315021486587843360089663958641457223830708017573072692239991377605538982390936902268878855734402304273448127482608967759904195625330117579743247055499433231195473734758008384990558984939759791282433219327192435121271665535843101673097947821996204519778492724911042950020526005955594549174564917477085921792547954032012653954080810274990146283308380078266039515753352956126753944367092561201108245231615877485069726196179011561994590852727570644768336050502741425594748643503740832390746752585215777807238040849738591932694857373969477440709170522578042339984145304269426587327425834563315731490540407049569258529202691981294165738162601266304058177363995061241009651757704682133788666101207133637255277890403648999514282546886720161621747969238346500649539408245967337681911876142420947743975527030054734561340227267512840526514229807404583006014935254981917844266905945121098878083893335165105670038953977084440507181237665859488892806166462758056036124067701466552226155904462969303810222926755125343535394913340915730101743257293640752791808752070702910845569418904787210927619172055257705506468082851462445378086272501769908424994773247988742148694263811295611897279732812117820411506526621667783391862138071687532994320842021722322384386272859850410645490166153820693128815634914604299905837051122546244083266205126660909733515101608178733066583488784865703099705102813388071917827444232595177987135138132744395114334745778275471419753762870710874311101233874638114752550095973073444467505914419744226765791496757402420561161021286673762282617790168575812077612622412879986691257301718179978227401792471939981894356641898581075484243289239824344119012992124112909386622820370213135684875916738736692789440446274228455575563674659787665122223411222355493318045147206316261190305283310066958131187398601902271542422885602448308332939932800124615845542845402516398974924502491656063423717984318015128194721594651213651156144758130056511520654911081239203581938592657046045689862850688681219754563190655564492439880942540707010615016283807484873703796225431121766119948165910920038990329621819562388917522376730058401818845472597078148657558409291370262934858395292658652234594371769164803745770726626194540729554794460941722193663687550471752041834304970068307706065975229484644091605163987991978967717743210048277379293702454947410925395599942649726234014753218120102217567657263675016192080551240379782394025720515521128961829057902201486254310018479410296193110075908369406742154110993173090545109302815741624836208705186211921589977637374331381543176672935752830740374832121375541677052590872653403500985636000993117527579117813431011070474395317286418109567122030305757643153310833409854393615494536981740013914783536689344534469610970063893188813751710870092938613958092171702923416672299681436682239540595735917361720474116483949937395224268793263374660141992705893389005572789377927488449058323273326522114051329627298078303262115998818027634538028321157227304078101952272252052703170710254313483302503641710063381182972206247604063426532848459134816424194958111109239842215126636046925591305182250618873923961775142398041441289141951236206851221840155694844471209188442947683656518329113951868762986198735988629559301902452688356015225319976517605372678875873816532293843878414450893624900975470012052951689155066985794323596433104825568480426749344876234789752409872003457265864939894336015101036705908824840943314172259371973186747193320375115817941386473304792988535949223320268571458558299507601021057756658844430574032085204666025939125609101521738625230656693157551065902091452128534980836180199588977795907524792271323287297588067424726975236291879724291955375600187692496267280407573807212782955357513871517542364604399500619314148573656200593952992332948538783170481145108043270554201023480075904020569301731499882790929133264869354080228008179078093468993653941975837732420507274046061858637457945716577845623214436965702015483432887408799559222410812543731530633470931384306110384097405528762394062784581381844773672592591773083578461177657370231940830654221640507874746412089860674497001714384584367152134484894812026102399296006229831457529524051275647581907938535180226599290140048235045124348927048915972674599993119605467745516491368795044706457439912712156036303522186323146628630559556073889076162536307813501876882538897718746263354937102897262204552025864713062398571405239900060456960208393541962970340172152260744651268837023554723552737880440155141934882870881541137256630607594851223127215743040893802642552123512517005144277023032203917294336638107553061627783504483020354541072105650237085367017878579435546973081941406871720365114278719086453696832703613784083071062289855432103209857092848963805796971430610703288108697137794325139536941510952138643451558036803687136061470419370769474267049419884334476046226407781757720893221319767793960395077929110738161336103583685540170883260016723806857295909140539345855820560341900429234225688677027842191557973220271590053422986231780552957217880281622408755234376071110151545282138827760867204218328255018631658206543364801350704089770404224233752427806381577751117080426092931051457976832215297964295703428616827457297624260051215011630507748181634503748543198648861686237332493743277928189700903191526998944028242496103907517455555361044522607501769614426006063022936154378825907933771243843282867841142413532861557781875159483777612889120836264057236600435136005837294717057748701825462795525895054889352974247311565270073461452338290929142239378502445901938383241359294808101210075174515038607898666769069189415310412804655162165221240482926900057372827663072028400328724671809755554936750592477625895947517761539710880978714607836572227573496163478319346672521700491472460701585539792475252169808135222681067599577700809094374882206861445591557356833196970000716185855926295235043035563790391042604221728528704573156514018327079002359762293460801428406107432067851191521739137080765110237260409022944361483428137719375798821405241897987266795163067569806640383487001321850487494003344723714484211278096364063132120756770513766328046203174854265464520013835750193422646383291041559862104066564542754466163610242624503033375754300022284999007010653590745076381193319810903655473758008398364820251105250551580073054311361004493501195499557404991474127005695054380743141262011555491004361946881967967218238654056342247922118554975224412049064070371944558931802211124318480090850379093059039480159215719245373604879899300887916951899412180382194676273834376569664138723098457791202317986500600893486715377660778134340085501074328199012182545030674872646274705869482504071798201703256958411687743991947249333725471235589392083799629078448241471121276162674921740673115168969749496322296575512120493034194460973253808721695979263730523378679918587778911691282254535317568661740243944619255583278820946822522889521287261822672991504415701397862896719334281262150040191123841348109707941770564304124327411578395717660427645948829876190538294495626305223560783771682731098047051541381937474016085842028459349254756631072341890794297057274150106017466163786061814247309155901632551914585741123039893427351319863650514178806787201615307821009023538601311815597466312880570026360454891209690168361545040805343377233090107298694779531770929304390169099849363783719762939142242850470332451445871523515020221986950609417876459264801304349863568836808339039960637671090022489531420941737564622498164370584327255798917005091600915648871351341860119832280223478190276753306638847797373700477360738708919085713100096078244679702757678594841776316925057689366639237196476545898852454808724061162382552066504693483700016300986131684174019756242354936694726167748352624732336163493981639239461739200172796564190209128180830244749225530091018068705484894040815415344852613263575926049665442693452356363552032175750804711824276898131062478833858605371929913415909580333847285992087812089450287791725579708902391207567878049200680155285700793056092144236465541243390330427622602810924172070121143951920801923607165999383991081018737551245490774541180196986147733963101930572384568761971372972599856053480846384811254992483800063587909973437647971511987370855041071282015214138616579386784251540266816449397946368957918378156219793035124309163958554133560551528897674025617668998217659120861090078895476389781472495653828289722580629419807058630586737658424525559294912814021327586518059536499546410795715636962583273806551172340565345939237729619328632156995646966310683557953573952975787864939941063598647939120664187326153455742319935786136929597733123192871086793430324487302541171250431714476186516058956348683722532807142291638838046231446728205202464546544149455679601066178587078221083901102141758544105206372811401537860406285546916571478361976535867248960513639738933500639790910989919087990970555334866349885116041718636970698419701810293477694355901160471888048425419510412258406409278170624292077207022718779556638612135692140399507726847976696247442188645403132979185042111860340657417777111487845237458942975753372944846967953829185647366911159810757940059534540636825948632657902174586131189203285239972682593657098958485668419833997668745911627066853947723135974283705056108737774780815484637853198285468747866423635046502040203864884320451310605815218370723797677360498196556400174949972976948784688134554189888686370844476346869505875365891346944909994541183961116191295299349600001128194212749202634678433233339745232811179420224581271234980186564751211531932675058755416740639946019035663893160421794017006954772923667573517476143227296312139976639659339592073369973963775030215217366784513959043638690145392693785276220347725159957952388955162854849354593458551653872768893743538966891232690898950465482771249935335302674725463452868941804970367836938079277317545343301009627905675175497099576830291788669668573201684546442337727139492122210193714456792036007751288214639876533215497746194262289069042254653350832557222378913541725369542786333916425013307958063684134907610129979146253902652395503667705930038339355195407355552584946251683889419132004403424859050200590257190017331890905509944980374039266812315599202826805130388413209024866748434138766957493093011864063796409445293425044368744414507720712940353881554952861707339009837803036227807786577161212503242321111886773699555229833888658335654048412176808197584074347212040545619422041978730063518496939522381252534077721565597337853349519303686481094761740897491601393147433131805304756793606582301750281649923660971048528772036627971879914861807464252094126839675582041250191934429376576448428741662627890620477477498685204849591935513025539599008727349233390346760815094307126698212387287424497544180423139362712085976795948938704922009707753261739550093394600820737896922885068049433483964135118195093755645878127526196351210062518122735950373454314973294915035762426068941509379522630420463525203177820623794139801143303945369016527046741161376767599640180381797945028750747085319388333951142029684338969868446855551368669514077529170278233136262614613935719486832836201838787476737862862637804534830682393058605153721243161676507768416480312572256644941605477225242951046524334844888024753599528400184331100354219435207047159906872961382827500844194343055678456049857967504250454492815339364508565039041042010452201736525857922900742236034384551067228383982995699870366570399036465315756728979350505003015345053962837706104695062266722465039568933048569185104094470896239678632530567906336952964893895419631484419943206814182705132926094591866516768726117316956417179178899588435423469921389281073598045607402675893433110217827487517399040191715192686262954752001159234996836151357964036935543655287027306277451668819061810909595852495601293097634105727115096372505989615452273803031563394101042908293809759643341818299763721947272634661877862368070781590005550596697072295414511504699780799498738537245238405780037931347333105298309681778725073716863991859131896516354755760780821681336181217290341629817959725446295827750493948385895832475141046388531267462985113260136953407512845726086371941032483602402893932083694363893798775540645929769515549425842105004637136717489479602686353694174464635794205506489983997439293316838404258343471899447392743553469977005201074210409750245560117135346632845932879741012849017250373951065014312998439874336643161807115944196706745342364020039281065533648856767311818052713078321580031235646426001627258368392660653265947961720003235807805214046019530122134883301615006038848619536260756403024696929043673982707392038494363811125350362863796091405227597593801607034069063953515842230700571365703221722468766038921369266540520475182268287591989893937736488843267190889686266743300089613480638422230847670522938285336162123080157663249029227728754946829323062035273569350281611678497857960776267856068091693015839346606436713488472933264493375132882606466536397376985765230537234598315730591629449510962278439440910089512294844781387965020251882536270219622603239382226482831325601834174722134394134906171695719373087871337256231410962577824278337096461450468102408650708330512762431670564030786419306145830719837284912855025992532534720921963050891280629693239223959444625405233124678132540488896467888116820417666842757818704635293747069949518468958752547239581058700955140367262764306941400108486965897649540646391745582263608476951819690655886522949432968314637296684244850213502682715219350294929157070272456388054793725841994708957069795900441926803595988376333471393632920246796993333669599583645711858884567755509422193517334738223570104526486227232647165130139210040255678513374573921255392111730080482335690287408782285936663882613190661272070942211266628440710705242875095077826956663032887233869808216844477170404170719040657141689293809588409545221609289334783054611003134037309389865149565137271594991238618573798620699610514414706526487094673271515587012773688081010739291185258369749930863856783571260559017921632580902219570497840253940249041533291397679493724474455112536769746144260883158451622366304462652014755101260750009549764798578849563290326184206097516400498959715126169665881444629165064037338096774798678051655387174251695281187637920045645424162165458903835638561868267467802138318169448027910251171432492903404092906664155446239142105376595230391071349382886552927382771398912583386233990147879310407421827477293229667790213497815222306059741456281376274614163678704209776758908585055369904721117234070248780606679759810526766947873957687634111288118784039193482399233863102417859763608207794319173135781318206440710786314979550485555096717606020916645508123496358787504951885609501834919959816711044652094080063725718865535943681404200425948164314523695075610163758977324911647474981200474731134690993669733276251015018072289996404159637158625553613826748992942966865710080984675528010828034851704311425366055323803040210103301841065739440387355107461636154452736095693804423672304091912975993280450374537892674012399149306741202784974450201772386329299026652500347172131131862120293894688515639621780742065714808761222518090936767843872519606965189072201504778328109215137488937057777387191311815069799235343395103333651443165396406080144376671655253922274627404440685107267783327244722838027700023912722354433071264284815031413659523489706121954478339926702724517565580590295192629254735464479263202161573308246526873785950339546249397736065821015675600803530309073371845449004523367497214195482850253873258497496443729524970820268870333113198944560214866706533128661741495459301354808827143710043866179340112013682941656436614544726201212968836703697208809598135182081447545588723639239155923787253994744459811275943863030483443828001911338146895137353243851890476868999360442645092398457918841546240547831935985951421384257756096777407074678417071864702723538069843689846396501144064283089480002300026265425848116738297199670552309446958866469966168108319061836211466927435830897210617196089322148641349243937554795426105951097149367583321558825895849511399550386118893413109710141284009645743511896339277471836657452084867435557207788152847239687314336849217085529882184687920722269461670528973360262299876568179276515800948323412265968126445459093037280487450888961948886440852961555627505312977214156043126272951201915429889784648612362167158598091885945767344699877099994360303354953720584482576676695271693915217379967241552888302990445602731451372409121007126359954496025138784703349516907752274909664065164130623052179026635439377397502163081114386191818272431834595109419888847129637696716322850186451021732787072153057779959130581958487176989012063147422288479803801934838881512957447674451492013268473541404915609152164995816133005729167608991138771720888072583400099084045878126726539761192198630289721187455840321517374996375273839820294057416675271688702714696528538366402656553761217688742027375078210735403672399115299361644007501104402813862776803779079009204007784917608962218389942447016019078367326357693398378870786341338741340699156623683932009469519687275207446844952806794245666501639718272472649562993732445422753132703394360480378718236453889491844775632520496196706587576378987285214416617270490533114783563436070175359490928576739111098639479499792559309173623015280861703068080197887671645748292206377253590147296213496980490128420840617486039689588710541534761076696948709882086148959287117255281914846072563884271202872674350824209105705892357532207576543773381450145018426298877066656579128625674394142406244490329037484055168855733357769056890028894384229452382280647552616777543988548872401033732057833496649386750018812472918021187068707760568655128358117791217207207506388329074016802560869818193368304823856009410596034212458119951636368882184308708386185399936053074643212532737130201734480397643944736925493143728805330446376811716467828971966267111928437411888286809009492529858900766763554599339989102990392790389344184585591164383871782834107157701826684437189379089650840244638917537809264016033234094388904053055763387302018599619509368669169505333941892799937137692421132528034718957203854670391483429932251580272831672147543338549327056057190962214691958828964795878142730995802187978256176537784412367533220893488908418306456626888588472222365764774466978909434625737166192136228323679892065433572327801833617004806553307106853108438519440031643742700318753736566271124594773193674026554696348049260013744231261297999109486717649883836766742532118118786245847321115294478832879503686667954590063271833243079856956871312054308168942886617738003391195944084127100452765450585325392535031150840478692296025086125194975657274045496504114999009572577530982614453298020342385067754440645969236455049428496391298956600682300898588951833054171641112543976975352795521652085847628429036441836512627415564491387360848959442389274148651925827415321020107698108856624077657743958454303775052833577140013810601433441747503635211220706317370790908436659097478862962707528802528080816037869339168948462675488582638608596749808639030305967792025844551934753191774792742920802799222540354869368038114217673981588568060156469996766078306793075500795790268112316372610366527808049375890887796598248039782705656165146679075031096490750842889419412642298584754752669509491379936423821121888546227527191531521083090986262370285771054853241033182170416578293060727579145704569649606386253923465765674649584438799521869640280741648583418376480255700319880349236318983475185853551510946741915334928728474925174354692817409437982892769099509960213981495089732376702971680087587772452493096019874771074591867730990039152940488231324984058364646017062419397923282534228035617073000491429897227590207798790268491735793322724280057499940133154601458210382383526461714886653376208677483110350760958105561963025804277686261189903043049469490184028761587656470280511747681056793372977357340742447003489526140910064159145424989240591752159186371336520602026708130592092947633248101406503613976823917352993047118186077234083483400825630340578931753585103904842670893791448115780214479396421634449041950994525653356160764189220795018903736749216211470673431127389077992126612873289670899041000917029752324281941199519628472816308001993575330176782341148833795449446868133138302034921106854707914463771306351336298952313336459602271545352969247569699955344538381819785940917315994440475650635125656011160727907665035826089743069942794556553657518971618645361445088874735631041321740773823288035280431991395241518403659809546308487747607300002917378873462538309367914311344843405224725322181713665477121817291095956824043571670161484204139756345667294486513068895977796405017070973263488284579735783712821206286754376367945842564800482180071352873790079729970109248573559621856447421907865721716020521589135065988614301022004394748148680287934794465380809403608473548670569555535642090903140355204899924242777941014287426837515701994937078190341456653974236307901055837107393571209270474605619889373368510818645482434642049998647380431315376791996085993189180496096274134890269611903882570595380742147893619295720852669745878050491011462729039698582869445121777401311886334963011960556113226146343401979796266169087977924243971875947306095068746520854824021537939571155401557723259024645291632530740893966505021236176944508949092809182966450395447983779670459500515857876426952770360862144092171935670076510676126629345805449433739956362899342919546212311365761703791407194832826859397406566310301959915701091122007813147464166344835943402456848075112328052803163308550003056297890421549578109112534711081568161340626933252039594368819163954771064678494161798198682527690757702597423652129458658705103100586150042246959043060380746736781310822119493747334839405535501582152078766780984624792541205706635826064075822266484233380180302772632184166362829716498670866676633835108166042019548378755505558582271386009844592766630313153482627719046986362837077189468187567921619823809482936601905076883591857603237061201227681384282818532281001074974815668857354758201979127365171275247856792593676466315175834963993509787681085540817949174206813413061465441785618998480437154264024795538294974547034650795804489342798252853758268638881106937635841880136582469326686656675112723118941137084414001694058696065967261777656757789356863042404271082635185094043816365525814386783941823868555000115575317903979795076732872260220720313030648094202475940000373965285642506771481783472990102580816975161205865668790867297450241838156766588118594918213998581198615696263159617153974040853014324667128651580505587894835720466513397343456339253359376882709326008286753065360068887722496703662769764576157616975537122419552584436460486303951502737691783959773930475735089073007916815851767634894628744130772105104931708493453492928207808921856120521265071085744522370461918215749889464618095097670109394992295319674321568834352988002248364525135888774510258764338837604383565304592694739384336064095743755234044253982193220782491954165930592944927655766704742451314918608630241007599798943811616172279603492039801002881547278988726034374848041063636867247502574317929551864336945494470240030554933961595661058171792467909728795339417500623401381671915768040026012548310172143177600991510650132341429395699245709048533255821886373819167741370426292248425337390388480515133946952130438723401650865551095817279665270556909224559622322991349838124606246640669296951083607870297006386238160413654265311983428057272549239061154494925848115341020842028961838153437698156733541868483396117769805174671473547387484093630817284378438512873341059301602450037484445816658117847730334543695004210523250062428048081430460379832305131901688941160537859016947801215058736756987594873690889089702945908880489223557157999816003892829809097733030928844572046869702043428861240341803651578666182165225785212301798381083826507414424482994640185887058652739601694415654043292146715704002547142482454696194118736728824372356516498956320889468557548880068032751798977870671993188611222381104424579130363902131922507107995590844655908301364409439727951364587166645642929251095574313865966738045655880895434847725936482679277935510780109695205085996800883558090735925947184275729354825101586981555367389010695244090881583759858004719670083858535078075582096467310392965066282002800351548974233519394685761386787668007556751955540476917950093399375103111349765348638881003110937080324009547178373644828697422100866645028588710476700534023955240661734955422270329794990210102953246843274467627288631898768983400357323336184395185653158845607376044104566732905809885690839718751469471625833699535456720511895530004637761969239359001015311800009017245971820030395543442514372993217974981405492980366115324060723471374795443268282689164398981554388706206656388308179002127552014172848263072241093472313263123761629452653624493383270880945164780563592444174217751653813478997234008461986864497414896510585563414697908899712386623950622033501079000316879282572939583232970428191503123648915007016984594411926656735476915314736879746970331898642972260357011660778857653861534752622464967497060476410560152146328012858348477480393015376098225966662041606405989315200597565852964575574519515844816891196082732593994004216368803455227372923771319102719461032749904900086217974439114432159400150768876291458392062506872046687477197582170200526778201043752634259692157868508710033106295689531894088324131872879047735101539382928457683838997107959016934130413267120519034625837415754507739218993252101016734537162678972665378674945834791411452033594817290275623118148116499211783655280369029040776192696802062294160446391059452286258927787859868070476497737655664889649792544034694326617022140372698649300969707000841008237563179766889145063209170235870699526001935872713402213702781811540156163836356070035288148555845314653176440577898134330000912210021010590304911753576297516666622520981482170281140291475079251746665344164813764715514753936519498286696957752316005117570286319154488801036220520529794234946276234670841333526606122985044394199858743811000510940612260773591114713960438667842813167604431548648082494398801871882106171681668618712555207349396764355772765012568750319432901954193302928379670513149508913542179682243519724734396942188650319668754269028376171677101523601788462579611991724600541782961448465599354356883451594059093712228936651069276881109054911884720572983662421621810641476966490113884549683875123321257938265476898593211154500956941879555778173317210907950722359471780768520011049150282218393731646789110149502858700742359390859590340968715153286798038999920396673025153813515907726254586901010896279702325205297591807828739321254335075183655718180315335744251798749874277579581347386255283994396145801106418763179271619168840658980343187363598964467322412920600298653584675066412954387705633839966856084973707609036610678512109733571603206592031860946211337858132980720154693465114188920060614760880858428497084948368309067833318257773951596902487758452212172855188756583028858839671266940766488893612410029846153212236149329939570043732396188966120178044557616789273172056289926180826487376858627216910646157364731885468025867200570338418260756312291979133874261975718277995102369455738356246858569849582968949581213589876282980384732275703291280732610772937247361388411613672659301495999850206895752102492894501945171091720488654922150312546200226345283461103905717991287800191013405535836308152825187198498632270905504481152822557819661741645091155199506526753865057616803471356630363043631386470173218863779443202235515560342096580207867883384727430232020682576208485435395231923118151132753609759468196488598850857735887085544478799748778031507372426211593553348666229199687785530597942385292304889528358261865673508485567606742686544774284480972678900358748170820693547076402276832811941295555386594340712660779043054408817713845972874703577111013745480418468060481101847377767912172914570372236962158889620445510077246474505075366517732540655735824601327798380879115664404770204732778165496737179376041824521221306010741394882454660758644822721715204255753645315675954885439595341385597868237107317327478488905678304045534236513209021564472519561710863618106243986265135648220238503123484650429964455322582975744496657806030480032264443158330430217518309718125039299408448479228816368645123361445884352722336283656308661628954283388663681789653067773749487818947941482307328120084666982791303923439606553926134442641918370183619502237400529886033863131052715544443432907168205696379616429535190723794803065143415774398757255216950150271095120556465011687236278081468628348461100405898640219313845216084837185164149845709784239253254103827058847530016533524982287278684542667218263783183992660357234208201112614223842625645707909703767023209742256049452334108231858462747022543418150789997198994202150179343374810442693840438075003133612895769271149756348706420675687079662964383142386719057596495475313949728887049058998993230106712921231333182196738632223207143024298267084246831946176761923358882413794963152980964673674507554219598652433262497422515973711244910170910531038149973817886960759872576330535439989470429467936093487472414592116945398721710687676546042761289609811466463776820785729872710425818043356066797096574670871953269769767459479092403718080908597637634008602760443059696641560588823328939536698746151215615885172394203687993520030595123302092020395038237715769948717012284825334719739990789964318866274372496857546172638237805060401632277617620241005140988077021860646955899109919937380992700031698600692924338259991772855701478149077280394776805239844971892197642687941287415024287132789869345138044151814657113863291158972129711638131036764757360276316661657822080916163137289466554478734102989301182888099771031625131743127858715735388539287329636271412699768405562759875798942297232752069802393873507430587199773737895350062115894758854573144018548850452168079349410937720036222050034884827734136659708571281969653524948516713702792577942317406174847950279490858661410408065298958509013958545475831172111172023142899705664417622377879597511832887904584318230977559088078537044805136834276894329606936441369186296051998302125034955734513158447568145558622131923330184346232505008118864043185419051306694697015583993044525859906362798094045639728092253439615636794785982346298501572815331767115751118686868613935721974962193279018197713773001244735745766575259380031723425084660393955485687178550028007403891812432746771521090752635354170688358978968559935599255585277123470872052726643221087506611916263971630035210947250133476204050490597030574963017560415517521964115227655065659594763374874976027364811782834429440072456358707480430089052896504940809223078380369657733545746526603820390153766775610054028107039349230045745443723292290839091184806875368812204260990687797837460920590284789660547280446196511075807994265382426344661068960383304220582437490146955661002157311292371983718644851325572836360187967532086872417518861589690570096786567370146965071507805832103222770728067625004488205971889048936315114987351008787010201816863498003768923215415005272844218958849851038423368570607296440960549478414206702759896076528113417812827472733840386775125656855607816623562512622920534771419559653709559452900760730484812298094945699032479367160818776603942696203222092206360338340814404931284352113935611255075130125331578530696220342711414598281811727869867295741883536098117457516073170343990371775820881076075422686023407678262768822903013778692008865951388601776738319465425457843980077179544856837442304075067670977099027579261224114155394276380064968486488434076996870498999815545962113756877733463761345226759818351062828178116456178047649184964592461028987056702444339335258393121648478562490932928924508666209430897828567288457008526324870474782201285639787877063505540445375439113484118588107175848606233061688918130416575608893530119534652004117477361536121064006375991363519086859250371537121768430847781448471212739356583045738503431715974771524882538424183287320862616737188095429545658437180915172842406305805896346886836393831852494329622311981277917137310850843436475768657614773493119898591613737504643636807202747577724559823285564155592990665286671531741199908378839145156168419872130366414565313114946991077964022194896390429730216085740510213602224998764768723288312781114847863631968285436863111254428579820915224243230709738714111716780928553745185355866373453337820805332159505078480936555475643694022545531117318423658489762199929208329539681690145729689054524918555792066736172351055985435313162911520772057801654205700316481371725438647487998645594971833630063648276092870631208005397777214877351639953936804195115857332733807615527469169934996697154047962567265373494098109522499922647066369182988591257852267561855459415263412740182832212528551892952049923647748832284989412358887753062339911346744127174774540641903701702960620401624215445249766243261095411655109773110040775452008323908617087978917279375244252394702223699530383032310044879031512344252587391380073815419508099532989806473612925872826200675889864704385018472137887181883013022738824428870542188515237723187473340666976911756916557929092597586252376501525618123858032473006417512216830143284425817114472770316237704296588989875142152727004702579411727953003937067583476452813050663000630670867637408466962828883558880358008902325149768444680068017376068225127821675298288296809597369885224368001148473775437644930443058644222223400210857150149025646807275302617726795109432718374280250209503110423754324283886561790241890772558591663305208158475581645310328881594133261033873416116603854574045846223869479341263854099130301556897575323434532789126405177199896352737202464957877981624666184010278663613878041170989089024434907043643765805498969635198687599907821547304586304912082572488986757987752981554963144936612205960257767432684089789989537005404230141995982329991484002950389570721779287520624234695535715816228074779982234627970603534681838586505871738862623365311045722342966694471076223467667849785706558572869703857439247683635870238627523591278578637840281651108754020837712545972477785317130155642264025408893619550821905697283854407746026820854223749739779829740990197548477706135815985639089779557844604761111240612369462435661995272778117651668201964199358942835256412089347775880791958308073976868569883408101924690492979031302798379701829202295260824921535242681267124322437328966781291340513962043355312622161339648052045506805465460293632185943217112339869438188912183864422883795439713596382347587826986116039558943787121707788830793654862607888788791084561973060705148469951411686201272675213340520354246293775641628923027117463895797493133102032372633766997299762899456057108477664092953653798665773199935019251864278992540648253358758181924521287797585761001017589884406887302238201305183280403462988530564364257359508679858870746837992665346450992827933030743316383100795110072711001148752401716284618764722767792595948732652154788004024318271388011227743932252872067129976182777920250589574405361211286649309569952499292170664854402666082463702332348867998258739069491603424122481454088125954292229197928291553179645787602256272576065464561478644096170513057257141278450720183581565959712304076648304669834139188579384940012111263533617312718154633131246914930848220110629224373287349407305309337896701480362828772980940645154670679193797257176073899036792515186822128239432500184321754267706304372235737200314157117530009072551904973625485799949150219064152735299398357414463868510289068550593522686550504076101985357059843327256999756418103000754402439256749845073934494965919254688867675562738921092104509546457161882020298912531378054297287127926891236451641268391393110945401591699619020785905798153193037596728214490810442678869755061971165221240116494222863552521150965472969795121094496174399781967487523444365376924914033246723263687549313749564034380225607381304619779872102334689473378452637931243644984517539897660786737280903984647970778432661668311247784433218578406088852703090208225520721163889000549006767036568604193160263492957310073222285295454381023821024244968436878075952473826324834346818470662792112203888193285242874879378559833631562038714809717939941384022416367550342992394869327649014717943439485658701936915265556242246770405741586514582395122131125455221398863193068586410933474847677318413075717959071639127067577859698152252745285621542338735830898329739758689272590850929097444535606272681417719697224746366077742309107802048106241595653573714230978700096663427900032866284995488138954014353135696756899979553823197426595083264494352934355413769668807946218445422931153404793725067771626434040444613088632174917203775528093528820915498249773388532821150570484333903614733469986099046014130539963241614101560343153370642487870529726491911699561053337846869956935767231808896271793459058078417964034410396953096318970098260992944215758817065585051900653039236895777139192066021981100993773851105222298045922765856790389890539127780847579601123736440490553759324759865718854751429640095809010333079542279738884198664205827742269054717154970473716280859036704670065358811298999346625647028325715931195269811570489213630371485362124238123158565025188533473661068676164482155299445734561309883166974460469103575471716669746823785466458307172596827502549270647867157955497336102915927354456683861854046290172720727816314445244809215014495039511593720660799024096527749250115670646715315009410781886551051571052485308591090758757908720930679429508028010026891759041768217245938162663315015372923478691848607027486026954719681763577429339622380826354262511198000888585256202125973275949163706508022190634380861803588420239404924766639046429855447504665692047975272009740979551849846273082277101087743039649256776040957916023348546646655820430569083892285637238012385595263804389560694026632616436886030140469418568680560194648553635254093087330098006921807560137848433645468761033361079399213999728355824924220082493159311748221464505885394244227648642266082970408571305060088615371895287011461247116432479579698975210735178600012563282529048642843988057437337770021099237818095976044443804780610074496156964882122462049787305270239750349081457482974193124885574232908253402493468151163492132706333262642392047311038469024641737994146060161646449358916732958383232981140083690635770767962410573402112688956664581596170674029651091974344744783540298414744628448747708266871762450382338034787752261113695927790319236264720564997332753174906069602902012358853788206063710463719170071937913664308280108924586395769017081878784279139768707697868604593599832703226584824029346968894027863853912192262120051939352200388921335479106601479406848419735015589368585119930591411246941834007410485558396254228349165006052146539340980427814630059953552117514728184034997897252734387549158601588522541116578552843876628152252834824931814781776791366936231011481014951980578784097194210998662211140035596199725786555049558938035103206170150502928849707378501165612780142529047686113562715099522556257347297096537690168445540470581833485305630664347784045945246215813023001329836166975360951316560518509160116114503744308064637518226831503092032785379586187112468787973842154134575323646843823322962871472419316161830437017290640907109458864829943203664652369359094868348220076439802324043365994320547637808437915676212882199125943930460847553108156683527901830301037165251745640484431933188983047613084981147121018874569656379601472632225215684855252992721909182339355697891036993422078371867229103284678335997441418453028965209115721603198550548924118241970499354050558528643704745801717624466067979224587358352567950430162856646472989972948005417798932368242812479137055214614781193988160147691942274292751622958264854159044339906541952492449824145514433522879765050737699664727150479941527885090620706446217787582535445103095605997221648001289575784386064173717314253845051994421885322010296793945171283478815806376931465637749769905635502187316456035801174362041374552537042166998092527522066955022245788283636595254722363433469211650043442593550178419753717182131330548416546488438319842014586085170680636042751448814430023034157293424606152475737273222439539173646483067927203261651349457718824550897560949754968788053769881265843150833125256265069278106599204730970066228962844916221166732041922517175762306221306351570049415074800302454086070272372214929136032098311359321791554177975365870494168755662138342754032197470535065393986921690600682932705388693487815116493735813002860826258176379888574880205304563201202283098237880782501154494877543396129120874760110806041895875941217035872359549254230967839682023897297624451816142257945193959309148519137761763327670291775003089472385993299018921163948256560842854229355206935505009856256220914716230548174258229891695656668547320550589800542109836583512334050727539983349497398065533037335025285961526836452550054709966661351719601647299493064157590475286836625274662304778542287721068172260844550521531402003282486680985722659300326752389340975894697743239079069605714658110196982951832027895022828698091288443055719468934521059818773718118768946380568336124165337961816390368453469230516490592233768386855665933794976720415593624198274573477735614420499353099556923036073840299623294983363896710809740839349260551128268828031088838878372477814028183950520404483638378940620222861115303782151560088178913480345576419189519356693792379362172193305676074085365453969239387039443802015708574671037778407923273527707936140926651816592313633476017339836745037686339971493952674846565973191999766940794376928563533227756737060561444060080000610261452364462380943796068181914882029241581272399587878564436335924953178576526927705222990174140979906315059601112882970320657438613120613031017858916932238438130926311280399227690236676093784054272950168613799284090069290973712504296044087646269990432000802662805061634284682195346809458691533481957451176884697504873590581581859798570710309359528532164699595439687141092631043979573854033080050620712581786311086927795876909398135767443163584840295777299748485242309087777973981228549320772223623532132953125587412340825204029746899805103722702715631482566405419548777381423719091565842951944474789985754347479206177363924312516362535710804644783031237853992781174861626533792897547404723437331957890769601901480666015948955317830812693919153275561166633940927190443355548555714012037561974385167953912701458367816247710841739840850003618356129225737296723253180273005321617914913281147525213673873017900582037048923718700819629787734288758099783947220965018456243006873371102778246689283820063587644920131364112526040540035119252985883004745944131057645977564898203779657388383580335139688393120196483553073174702975433629371912537657637546534947273397906150441481408572213582180903165537802415263836508123200526680934773719248472846619727435944184192080108388556613863209385490990540171026536400356942285207743256647230245473126678456767814324890058873851207320629453154201390595457968996523830217936179530798346798057846825384620305948361347295776933231540941474069117796719709048498415522299173271762800746706608586266649705798547011061828297275378221107549999812742480047860799699425381796542013596674771010496212285733803120010950939979248614961511478175083986233783311995854753900971784831010550259091294160790048648746915573316707714817800203646692453625984624094474844510848195500963363429425480810222513956923970575506860124561240971195594074727503988795716786310903099074764880628458706828466541918207228959198955090942870995962964168836120307876718182963113656383635546368219956040485808689496740324263994286996094440709196855809922988046515538676764248722253570566523411374547312324694237031784665362616955671802564669185225595294479669172354040084154583137563197606841253421505268783656216859883470070858092290220656175905912666680781854651933852463570621383549824194111959330052837557136345112036271880312937604098054423711609371430571233168911513236423109308918502143214241728627101463164978183798052928793545138261374778492529195784459444215078340132403334040717421641274775542816576757832647242461249431297281025894492422215551741522041539476925671428912509849275740452163855658395601243021795650285457248959504253834012132714511157734691110465730814302634169158552341471299105858956681859011967781658428350575798572262291708985245225889827531816862821338263669176619876189027466800335361917990596616473169374454040932342393252940664279577506726128095765404642214680072462143590648738903764356433782802083997559705390868730345639748729511884775592537886909112152554941461637218084273117925136774623023332047063749284306743358960936491009853326001434565583874868530561459832904335999971020991185196282189459408024803501692832574765510217571115082532951112853801951194825862249786795026216193197389231182482875537632783830324054523183121819098960081761691157094271102558775955527115140367674096083948085095095319891232846499938623752759468152276329269997160741250632203790332249641627519991007922566931808689293819470067260662784350743473316187910741010177584435598453280553560761675341924845033445178709809815863374631734501109405096983805697698374627173723735597402002155508212560203795367919106278550428817922731319111837433855376154634319723118899304843508532276071756205298766285175462405055004882045578428489306224129567313038882284293896312427049116041579442418947066478128037999004377133832723661710461432403589739669472641042371066327931591237561937789153464215535996467797664428816082014681227564372848264901348747019511703569417986308766582390396562598626608671971561604358768671541261824272172494153777874200964673068927907814125048747951822498126285028060730382929321098832914545614696463969610716051199312733383574893993765294344956498279152555288103926015527319153319295899720388101126636349488245135641049117928301935405491823944964719185408543564895949566143516837533835316323791684738275930229292615551461237766927647413719914452503746489752244950632299924170028112821365690808370615375701118629382352157854186834917947195256046664315988174196168954443232730948012631567882776934684611997694430803944988247677393830566743489399091550640232115687540445213503257031963305592240934512199675693444105139018796950121683913194678250899745964941830297461553401313112053733397981074636429483011548732521953197296316691251931056247894521488095732380375184694582642716729848116142428544058960685873823911768789138692342472055899129393259009627866881956311903135112335624453877111580015476891336526810062735375159311401123131864131083671342542433843021893727790123211846656796398901290078472422808732233348924801474534552883860651221250029960483279301013653473959484553504148638479741016808302553214505917159933672116720379486566474196532499833452691034568799965004222229102426985603668540346995034870827266852945925324436308440097688620920826345571316370375381082513737142547534780323308656015741350177488868452539123344520496744197235489054672707882918118852310129823255906405377656351391313349549175444306335858059024112038682986674334312766139432594717375910708894412938354075441497941665060187656869400153883550862009140481367444917757683943513024590957548581779529899395577132084002293018137289761619975763975962777747878079104877435646282384533342618512528821826957638807058842489977311872655235010410788442455844200297902164338778338293695457038537947210645916021397805466868413308005169450005700087585481053016990523835700497500110612811476804886314505971749023579364943105243585306628202644553335122355662904764040448877522245810133434321720527591882312452368554063701647422276247168535458309640570037689846100747937276760065235403519584004628251463507525502692166061623417198855996416373266499876297393395266389285568010655702786021244369586169772076048169924310425016996503185188129052135541512441295350856013110125134756031783947365489980079888082042198952038757318926359822527418835489802621673270474114520853658265444686431524747211433982430935842209447168305233422403442385191001825298193465203070702487088892784587557344161926691178038776051686818718159669166700592999315666868582828122485479693298210361150955853971678264269953172531316535965635693124585081551625735041582926014784513631557825696591390071548905534157996817731437444807901753654580299696389578930734873613453924396166993258918687840293168366574656093525796244743247787412044542745264098805260603612095907927598606512431765317592281693410217845363794806463682529043708814086596321663715476565311476067997204726074448590099959848141050085161075996494543195772169598744989939182053605605406890489541646299186984056316312452976715674001208908771165208538987106426199616520714669226980368337772104928942340758834652626002832624341767657390204530841952476380577638348712815720459583260339708317802810435248529850661432990964681486888165203659612664715727070404485017118790375558468585511652033124252820390194387474725243344799742648898427814414911027482116664202416612503841866379790957427341992376973439584735080538598311747138833771830042028034289391501969454072702031830703497615717856157015230657769304742268015941751659025791016352492845751704234463447470052899027264275724515834405273586315750395605048857524642546699650229767614280556603200812256308681313047808087689677146686548254842294455055805738205478173952830605713161010456877887385831003122544377484450996546374197232062667715717089875870148556815386868869794839546388324815140608860673932273146103239869631620164190909014144526092430162143760576972763699918090198288229839982541885367210522087804591180832265660035332409238182796751406072436459059181306178992021836558398697326744396264549968270878562795349625486136370214696535870113044602271329304684091500420547074409671032117690558152364632586464097076832899792591958370534559608011671372206554280253623244816244548874239643887781611350734788385141591846162417661860883241419120234500361674811799190466765757511274219128269063317449423282657625630176134616661039378668550898376511544905683749614283899199041848762700893522143255668016591407669316312406310032039836163364258446250474690086444078214316068940198817592578435619390947540676821661616755695468074682286962377904879094037249302487370611640771103505167439954273869408071880247949902306253043083310850399163462987358320530817778318047554294921128325052965104475510558917936968310720587459167658639668268429758847391065830208471552151103227120273214069991821965944969759885998604394904217296096992573107797559513753194167671415890351764153881066104753942053536940927804153904029942187060760248150494308137885333241886727385307795081201020742104597633717166391882450322409484236895477888813072508283141973762328133648553060571135756791340848763219095321748419044110122568352084466878430605233993677528454420459128713296483160976425567508844241333711531111261524174788456519254629266369015803200691774398212019161326616469382570189294237710059034103413566063661406628809897296474285410629359838931022902101722336340836412169498801637943227422946369367832644717127724411761630676166940999859271836138915312022229703794031572613345647745391983300550899592852605690862323427136202559720372110518454249684718377829992839345998510184221176525830951984879329770311316305884021085225129570848983678063204594932225818165294609487601076073586381166874065346880335639799019686792415897664785548160793076982176126382089763500794480818311835222709682445256594159299610857805985791312674796201286685496656891653826302850273875869396312084707638830377036570581046245019112574918588938572314190787513031027151841046487654805632854607179661622826592301553710936806322586140437728782277050362203092938068009184169180776971878947133617291146479784058722095926247989340471338740428246868584509177888504225940278269316917704723770474067566374291931603781075302348250581497803175507909578673153536247681201370173582837208822254681189283106664598648131537402739737764872578062989449060578841084136573552720994970091911077130698393629599776432678242019893378857839073081305105472324309600142288219883165942710114470466986404539396051156180716969345771171205902741493921739089503798348208536293068359273063154176380344552189617609891727709878903830358806365577359368953041987186691450795949558025779574136976480003902925334323558949278816754696421376019379426808268245216421110578805684412581045201632512633267495518523116210168481378427679461315922272103359425575590012162393556391675354609465277973318930215566741076831829845446182567223825518697171470542051324943564447532823735953715728278982799652289234297863167695792884972915781793490826988785637885077501182351562484689069200127837481833349668678060864219850114967273393406434921329494366982487806742156645879940201275580010351118855663420438575739345947865527735074068071330638899741676936174747710876168439429848460323362476767694471879530275320231243538441491590158084603801824033568672578989353910723441621607829233115043952511671583622328544431071180984991501221231495231085839141287766069157697246532769608990356403871833887363104517909861248934766873643537470290827857354794912218589301633125834355873059507388268825844970968695901214604937016362936112121700605386830479836358767097586502291168244409198448170349029322764826332181438751980777630058702699814630135925011380629191232248068654804406995060315761165412908129298563191538926078051495548947015046421281320941379649970741321660073483272586083800741432908127319774915064871419129648552546424349522850754440867470542875737562327023497121310519265322429161862613474129459870774474496320170481843325588213805704300554652161821982336041915112596379881090247302326781630239733884317496167912553622164728801108571191972797960625608253935560481409417033966303092338104944636117715418611329505467160421239555050118971087541276740219291431621673336238296704499878329675265859849776660741978999677622855123175040778188732837825478662188947926649673017250173920033280176152791693799034310708242139894872890472663834855886823295190902343925968210950549106236816617647767677027717843509892892127132302113125895765625122704541608845008295743222845772393820396351256259962593246774384773314613518477486428291229249010688530608144879354504498467284770112947818302240673218016142329636515877169222042097569940515069479005187862981611709977368176409245733279495581954853741693395593302912016789131119571680643195188406864048597878678972207150090626820575606058596744177677517947099560588088003442021026386141305341408672975136588014519418095939850313897467031956197056871688142239089452121147137306555640710956793010030116669235379206700625911344889467487799583601223535927969028454266720294491265296209040381110376005668284921902446713891656949338568428835666151944153114685994515614168472957738219188214290949192721448389112726318822975508627611766816162171230934000973614068759282780848902604122155854117090890105581774901195070622597502857193409268164376392654140917618700180629961267881618244945849182462405971058133732051323864923832079018287282466161867793776191296081248477949949779792656624047086589212755036716579224341366265907707288148552757375542100259173366083308391392975328105303720255373485272995131116566428433433888744915713553022719982527728620931617775147769347466233626490152107757109214988501314575424431927586135605892508119934746804270394162609943574762797997402257998909122978513593779434420671819858469278533313568213734634398452900574708884348664498441096520918399072794128243937845076924938733770000565905279737718712092130326240031986391481841158565362478208901992812270470987807401957889774201987880018146298253508316149908395335143304000164219714744532080403463716017526320887580732363096143401914780410413419425501893916200040147401709145676882915650348271073318558295013385437644245033517366777084287797957782065140258768158619540664411337209036350659582227207508257007397808294033132776817844729419712446715631048229934176695691658108313466772363965663166840103695758149261507391956596973136137114078824078713341763662177353553079117328204158810615784206789413255909581171630466284550273063524931791615789456358598226436677509426490101569719597406482236068276844873048450446052688685861247260323213525187366462022617273243296538655421922677611645974705283580866986495014420979390987800841409307448092322877208895386711323659352366161025015556908472045782153023551141905033710835965163870298224483312399694946446189556111455930164965283757193057628350707077367890599238722081033868802583142496367520663866611781681892906800695051358579102329875619389409124539392847312244905298743345755933743876760859728753913688971129778022690391600530135501955020292402093739900278767300520695249414701682176905313579806961148516072309125023454506680862613998541614833211079645282446923063558719690242328188946567875211598112771137179485262493121220038458008933168433680762034836638577650084936933120151786089126115479053616324446852790738433757915451496162691978626823986672802159082438275163811580206194488112113554356894765833478567130337895318842309797351213647054532064769983297298323823295494250102844186565030557430534141346782987294410511035198653240346147096026988404095535168940239894061124210006581155615849242052448481678808390415158646602335988751754403258428447775314305334036431736302592860434235218644186237627621735034075329463636953692165694763541199524545817825915921202989717349549012303842815318097999043376826017714428426144945942667593961907934481443012910741221381062839546537106782749058283546645939736356676566203419544175104293139627849603954056425733124269261102339183058379715474991103528867188961649909443059347907081260706355315836778823129771116449901274707973024007004345953255716734844910723186152504910638079624262037644489291415311728997777755472679468398568949258629488144495593497290946974525317031818024712675513851040616547238613856155862286484589062706954084770171150430710646614525291317090450215784432422142567677174399861253313724349927291259351674209068760805838396834331108733846846256535458443040348388636402545450490707756869565173908116243371674848090440597036181238597943244746667782234487012385972141458666666288807239727616051399198605045191102733631003342179380577549639706386385186282777749756965013038703865912426296325578012122896876448666270289815784438689033963344475620933279229029308823983484067796589909774008547725799793124532017395695185823758244673144267296836892219530483189686298611887654862527871892498834877482227266997640361840113557772180634073722522573755566080932702238112133454445989488292340311547144597602121761514677930449850121101386899286072188141912328063940926409936112768320255726579160730596007518309213135046367994391296050639716486686433742258720100487948170879824240010955273763205560917764150967244823675842499700293686630139918480634681100207335176551028612921137176951601768136685831914234312271169752149598978244220420768888989428164931527047008986530093532704074920441738910913788857772305450943425411201840310880772831602565782765633546162764045203884961237285163123415537270683223131869366433363923223753713926395820470572994523415493076592082767957432158586236392668637276929852801078145699747294500360769459650369920541384115625597629311974647603361879034449401998601927735994104006279810896269624282740823266598818353643301924154739532643320518513808821641481718765998342614857831350186299402999833977055541599614524908515066734929349492098163548105971512434725625668699677452240439556269300658191595561582078823068948870524232022313292442878750243612352589855606336830366176854942844632496026770744891182023552045546560411806489320908417409195490644554473946160201782057003226052012670450126670167868697593040582807052674720156424541627601523742478645878775809693331875352283269658482080228392376810559925415840517167101278126246606783288919891823841576898975636308970538787224448014964846337354896392596214411571929435939227312585496984476217789961976926307137511722211765689499316740073591289934524891764909488165493031336924541679334664243908658819689757539065669943308652358610729172469719304954057499406660410708130053954628885616245433618330800573427645359460680885993120034512553922619035771058883899869710159314768139366339318936469505236778913766369788563704065734565367213817275399699288852832893543952408850870100608357144928399257817153886964975158300431712837310457466078372207499779251533189924646394715064225281290535782696192608366078850462695790377439800990034337123607191907999501108401385969250339152745868182329364800671723122624566665124275587038803115745615782572565003469359532691172687885587839260159639324779408507653132748286208686522637241249966767525767212034392675488349407056308766162388732466461966305301934856638298928886207452302818181522040576093746324760357879413903129818333892350653340449273474108760566715784902974234624254299436021148928952126122609071017524840478684284575625116798012251212609346254772277253549862660899981960181902399430476327380795175463820391492970087869159090096321399095316392643203853697142094399670892122219492075117675035075524396033010940004696527053371662949628083613520662281332874712323948665143650781070524619392764892726046832068574950975266411553790013920751517711502649679365040599027991046799229801521792999428119472003793453848932239417269672704405351175527398680136401066112699822910103092632291210569927842061249708982580178044856360046735816301751620458748809610717509050645877027667070296165567553877571284873381311524793242125502427727079194451033950591760545019487963108510759008799705984079398885968416727789102517297263130535301597468655669025768888321207999077381919598020615118956237252477692641910056699976978239013198175849986131599219011226801025918494276473901601454643396954262994947451111338766912241844323257624846624646315712872799538203958072542983150980894560073974965208728265880385593999497396667124854992983559595303884424733518474816681620678434303661891934426268647751597615890667732215942664229936188661529030015956604829256150529621927186539270454811578610330543829364079133007454182512082013233468189862153621992800517504538271279379101239781896255017547308859081565190914020233460956828948596195275320904275874779305424033374366383799106882493246217780911863483101681782968121887406983642317788055329794000258004232297465570810245648654021295200902426835968324014276125350664431939722594203603605663159339442755855216337909603502552962023456000872340219537987926547717162945368228620068817694272171576595889835477546745964896015890462281394589622251691404877915447288718936280958829935745741681675263205293109018164888052687085668206741903440786007122651503338169961060406047860466824986398304318683656929750154601169731094144025076034311442938366849948338778452191455696872897074522128361730221582054884609557176263092818196450077772622295599449211631137063430167206240589655525000750410623001418769337997010062379791299008622967792964344057938146848189238773681128101882830640571705995750031331295328149949425301098026095310674048082982936467672881764156386170024290357500511526506789958206340683950597464875930712440231206594391637490714239821593676407321206333555821288528842347665776092728699644739747082439213216063465982126690449715207667952967295550976962615920938033291902146464236737128293150121861402712077739736747116887203854923424822423808316791137748285122472004369414671733772912476113870086132869856645891882757577058556853975966074154795886923960717976546212742465193584508760330118856828792142973868709857609712587283037795634295225465092525643554645625985120551734025542535680991042749383077020756428928111337724343020536627795106561272646261214404909359064196032728177139150148635017625812857725145238423962127850822919142122576685322718006687779558554588542942133519841565285772447570147931309381293890002887693428590659963503510174966649315671581029795319988493620852811316824112554784589142054537836264572766637368917994287937813977737256498660903361337873974920483901577024556997288281321343844671244313930295672646176486548875064646731488517747778536744489291393267910406045338773504380089207308707212079502207598075164576136405120952083959340235290168121235333890933170866425758733840841246722541308745215142367105402067328607688652880586878052922692333353834601247983929153679603179506416629301780574654489469612183450146517896161773999972228039123130032523365146874449444236872926506246217230010215535190870898781400501487336864359352786433812927438229760008684760128800500068693901402407911546771423506012501356254561103644550132394209783298411183897363591235912057315743699115706592122075371277232951800831831730411045840652604690755975263334740576789302183371733062443337526291163560641529685757214616263678703114557707073855245201844166598716050941495868571803341926125829202701559626226465582187457193211305185098996866795022726788680908093708023266021800392652973770230598933263488706842339308665821293512012739926071918634840651722869989487096004878513702024991363122092319342756406947589086047649770396614543970770883974740275515178087133566761149169543634414985732815102308716445179669207837379889735649902672896965376722175172434274042427204527028503315975281944841323210652367749533949758823767542696440745143096661861431866247543967118145431545855000494770563406652578949178262782983447825332477339291506434523996791121952563859852453144862045016224825819753227160791866248832618111871383885885264149552178843881391171676742922250459683212075112292699558198096250759032202332925165574749302403906058034935317261405825088801241827110521881520106670143044012322215327079634820284898750672369015808972985639476664694425866055516205303597298879312596262778489863597889370124008370656074357744122596096231264316151647067345483760841967622187007514802494573564271305281915271244391934066757219457322277133448688453190374988851866949509413574085658183500359310674592802976002748550067908787992475364674173160705206071542753437585890568304798592922634598898403334762509344070875521631793017660844224574872637843526376955393105048321369758621190732844793757082608312378935246218956298076930246093500739786112552065053706162832076941616928016943593868704462786765284658729457766634673389659392997442180606994375921904705173957247936052908695783084016938352890570760340420613568589722412531946882529880709646527452311246592874165528404708624374702396613356606361808470858439998266081198876012755266316885632112994574966248735880306536467256634268015758294260875269258776038002153008963624936603572673426604170716299703784129552908467159899650437415237545280001719366343043599821802507289127382848575732551526596088945440858690960142530770104180481062046612713079792421499482357694188943818764222357828275806746052289086001977500657311417343926423400455811516735461874377160959322568126749629010869133804573962099296208413534556863239565581113775676261035841992068702029879050970882417439666816485590077605209581952574035447515695299131079464217035808933810168379558062401060627697054188116911404006494902675410696897679332050481125653864159719817063413048903830854030370070579972163134601571188400504220403187320311361079808081284398019959685430119617394963125374749697236538413539213671345076636745121685721485702299390381620954268530102981115007059910536653026691713834628028634193148194584360082370464589103221115390364234702446737672990397278248859268655487856653074944886749450887710751061900105435415684763441693258261827355561193444075664524849066993378841849113462337505792744249250692310389665616834067561260788190892790064152935456854125726168274641000169298539661777462185222743657802171052985231574832891884757228377352830326236222776022570522852421812745506405252946384103992534067887258376673342824206576854265942169868725516668098549259231579696481455121168919099992146452654660838468575384433313208634442308337202103784583720807631660452946872537911105810318289582390780384427293819491048230798404002730943291113563912083827131053806480641672342265986785004684375564845982147759837027932842191908709903122300097617922724985254446538383027123322408888488791738386595844274574291242587900887818144728516356976252721321719236385253259599194052110544786597321150453250800932856835291112904833841249844856152284596726023500441359389858640542064142903852121003367271061460683685229300268997127288223547779066443818834150146852657768565469857811275458610688704238058412472162663078137796573811868459703910174268966389077373363530717818500149424741116739371786922155477831973085917116709833636486607839685540232047609796756686483231260004257546730017742797481346744855806908814481477675066808543854905711177362141045931057605220626567384799700155334425655748298799033294868793569395216021510994680509540264799243186635075667232923833650130473662817583937878332168637156598523919770004437774652338998416490346561865301776219769908734650542118227878756963613746197023870588609570434807277964969114654017581257022760047832759083226648031387907640158689311869144993624361790050406770264954111313128128422520955703615479989804511220391672377866714944958658236804409797644816900242237782713644103194250652318070289224640323417970348523963913650279471440815100550905365894444000694427100541870217955786890686421840925707808871190917013186598802692383200910323385572848600699495425229158778122726432918997463645264815537093933626303794462717406293159276471369735071548392997831718071200229467331482389407097831404727496104124945825685119524778273903112357936583935219060692904797764758448633286275631667504940606045177977698227221734149373866447308104040307214489871790122017150242288138907160049447590769904552474177988184384328035510678203192052913324727678377560182137545229354783288065222801352138904579349683342896570173128485354163802712727876191940114284891205496189307485061990676322233168680847995985263864213356078332573087723421030488314000291771285441052309982929439965362264367174670425552207033666661500053681361347924530667133318202695965727624864970327828378625775240008889711558397118500362686920235933158065997162206283588365553072079032155649250594405607407652462968612657453489030697022686729993717170798692997544011830452765131010989327593266337682761380186924165686476853180388663577693137303105925835723247443458780497668065315739115436040770857863082871323769783097306641180983927458916737079010114941509117104908220263566153173911969227910042682706830765081330068213423946499930347250833420662055622022580553420629772835138651053201207559469553772451708497020476643375218140587780749446187748271167358869994343767392168664763199055572585637540523658597651673223495894620348130627811498441830367949838520354270247752294552446927188298116901356799275724217317273887121403510891639371334938586185055546125115264205455964361858425584863872651235190489183857833952990869935446543686537442879694204990092443227920418558751152255178086557373231147330211769387865356885491317331241218700803591789068399811980932468951933223883993260801669772967516506641327813947277606987834499581879435229699835162819776584327951092917253639524778630412850896010334984010433745950394222665963823294607472877883619291879107099435697979588540640962713783627788803738693494488374645786370672467618559170876695467546159437464714382492118315482836103444853790355549266798539390096523810810969446363564318866673774872729240757310505824797832540512035597252498356978633319427468198184686211538610095485334226381050913869832168197315652107895878865839070012504447082432178198501132792581025466865392848125242965015213946454902960102438861823852070892142991239310805997667743171785806954200987148680720043612581486118027706799681502284680155750995390068688876258806473378849422629764995908962919226217082355899397855827806360343449523514683102035891012676111845832049098756654662460728572513844222029194509844725086860762997346242593686032685659086242753315453562274948785746083368986083373918118022469261513872670323098507690501623445729024916182479746799023758075416980781857502673182135641235077212488213108450422159820870016058457005819579248500009336989400382057802144302096697884743367346584699414681867621513722114890484833277349168117404872050506265983609836723909298727933333924776076831795589392024698196082984488179538032050878511823535881656486315371621489758318112446291075415168266573795215782010347349932374459673083988233342897632558534386343324354160113769703731026683759553705489558723926908222905221690340531670469681543961424575452567870249693295974251691516152829698062014501110268576889709140865774235161676574050741793428361210816504447793813634741293147102304767860057410767241776016027996870444045199528846644423006858306964685510569504488515052316537319829614604582655133280096075104699350347995531097846024249135275978292321154232859088994418579201566645368271704552864853145008450357281477260597133992077475029257571800903787695542010333414324992534077552988163535534621015252453237260635246114988330172898046863530050382820633578022880012939417075348666544489013421009486103796627437295426330340481695864018384354338820463976007162180872579597910819634926637717339382920018793998718270617857142618339964618166555456280281571854028136532630450939221223232956456166030397946595151469249952990772104355376190427887424886558351895334762309974004798116570738604795167737903872648801920580841508423371754640009764900907139717165225971655941808363450779644726097547141011876650874280441452747871348175740964035041101363953253776749160797122114362579421021106133665577451573368395889387279195192087715160553735535705086067338553910311149795584208750096784927521230447039524585022774958803658373571165409950711396904693666262899687449166872734783556342463375060825458908506687489667380272103306081592964451104020575061650863626752559752634932425547826596025688004415262714368868261731576492112947758929262220798958536628796923625174845133965315129123462014345800510902285331147414117132570487541097000073577262021241557684241161540259970336308835203601104244860413278865185093024581022544788985705956345966357749323553346713656305697993432823553716907310564662048045016240867151099786980736017651264401963899494791738190835410536254824224430923772227782772597221773041018194456374537996333162422982637878624915699782113267599347187808567986354033852197269389507953350800503195427888428565473252038943957511045805745489543337105950901257479261665741842844686771840336487248529247821825276859983706656127635607830532072897510678925467032257595768887398044454485801696165207916631912407110070622658398090972306550821364373406544761197072071497659443758791624577414984663959553468300190865222111218357973610868631275880990360017621295457729736453953858007222835310697168283704982693745574376599182253089170352980867952603411639430870585397858481701835146192640850233951066909997794356116625335787866584615353951752875401712596821000865649015100777021563628163151234411055350813368375476374696790570898254603478510136117477814421049782007170116113113584883604492035203767594109356212996016843496529454645574210698071258656684002660119151980649016013548862027105239139113353302488719333912299266991109143674270112505981230884901657370000596261954327147446620965125303336431972114235753931312456296949724008309313994073607575421094790467180764663765600364806189121428823928181394871332902882696078174111756506363235684187806375011852736563930322645391755485229145208642938283754303848420330776222136151987618799671744229658586183141755722604630670253878635943230368340438293233255944122042223212545320031775453876544250497260089389759042188785468948029206637422161611701919461836216909933836051978712679380677722508712206764330075371476195958606964668817808015364959774390105480010558399468038064516321906088632272190189449784702171034202024535018683252054452886653360014639443927206674468725948416194720775417877402890898112299646529695256922096149177495442686107800865546565571166763862033402279862843669007231650361288226135019040515532188397109666927374837679829175413905457619096607624017557970280455969925580588766878971563317133379227965454774693161791393256880978279140901192139975260042594254763582969738967456974650225089305789597336009533274914880802357310042123380419670152119156559399759539313782608637911253103411647112582920758847279395503681835954609571935919717588432485826316746586527703088940886147516744543323542608284366391119482530837058237495268701339940759203205926402746237031891238432273012381442230191290048492031413805802226663889195612205364538433738301444556708103203952859292780603914107366054385800618371748589914438124572160845320096265143407190219497580737458924875754791194325231167866526814454320099306180480347520303569710872526762168996622969990942553439622699909483841542004084377549228278962595249964332261070656657012086278033101511153375537118875650562564515579929592334684197461120044561815024965137434036914676000776214637705313821540233391446186826596083100779714488392692777333891727951108040690291289028892341916893571901358570385419964503368414353688251797902937042206847220021542985733263358765914427058018585512479692593278987181439479157689774213180121451961930649746767480349451828510403805038678858966920633849085384328763763105352568711985909843250445917730419835759167526384777372292873025087633648910370835019954392170272849420324602959378797722980136422004204864869079340133473791334584553228644566003190086761386288376793636629319194135665555894798534542401356226293941309899123219297804581535607860327269201121212009797237123564176768309189840677204274021427322233831237651296135262974215039737308361486453684269148443983951070766477477791080600287849542323020852119754677800139903109180395555458278382907913703569334719111530023321437714839316428656983707709385245870149083729940966242387519018335831365401731355866211952310814840849682301680651297312958435013312878588109127418499852976595006179329114316457953091861912062636956069971780979037322762137799440969204354783876367603874929404846070427474291351087677701223215280279889882713856741135625435688167237736934232862375941151931533145226197890495464303437264676704933238792858067123918918575664732888065046101998452064374607044701647921386993000566155625916373617779985515770065743171103273822161479532428799766113472055187604591924244497677358989003855136846241380961210720013396103193589410616960797596416010354377168929220511595305188372496396330894828486169421932343484184665486396177936624847826580971168465695010229536831372934364117364683586414447898606149848989282748446162778880868050707999353987665503805716914744755603323397306710810622995935132915353423564174414430420474184927862723528157802325704359623842563745217744216695820216078463825623734539409078079517656306615382991055044153981744527799341307280378540484403961332645434816330284017443134885422065006961748228415056557654779392294503311094897125884234536980718734494838932277609941530131760026719609288070783222103914669352906286199478860074367549827257086999299072891467802950883380687876216498714967228278511027250630779322704317543370719325748013949982766838296839868060917499470220176418136107977823320564758855938421053840273684429524038228647193084292428219503827270940222557957572099656510418450282463579007955167086368266029382902200385662547013764178883780677674546874563480309722150126962704168515277924672729163028771066818698720836304078790928449478901578866059782312241600787830030029593482930052232215882338747656102597003539062656110834830295280676327206382943762272406997481867846896710349228123270341328726822152180387174726931572478818726790795613909456643720501634450715144103644372520204116571021486976187338417482544114865660088550635672901616662173536906672876548475915525193449719345021911309875071470079218297037678931739283739742162043512876948746697021297564465449870141792615741700919492059195906756019313121432405076681976548202968738731145250099925386606976724880290556163996640893794205641532298530044269418196563931181686436808871462077529604209298042196273879349369161384996891633172568445697158039557934145993529996452135361870858773212408622729090037800220979820643905332013218170674867971252745899566865480433588259602540538481558599221563202703889353384963037562578212027306266233502148605803236276869183696736252733440047313577556120415336161399261074798206829190362449899948188866832844353962153894736898540554455978795719412626050777307410561824850176581801276194040290501159291112391412434053720644097394007880361184123442016247509993026344033528721324288903320859457274448520715261701370695073155023337145763392267476649907140138282324419884615400310897428513869314651242338563766170862868000149367767456432314440452560599777845637778108624599990570799959166705336115233120259474977477858416371310521340171955087856411415826043819506304587398474400286695057151438356203582349272694719554668440429926371841860130447981151549673765221954648544074712779523778251488326643056082889126154735847396292274810498170525159336332369897180065621631844542778867783055222517718331922847164779978968432846117065834628209323280966381855257766266338735210726854281239118618935470222387669408639622148879820105792202973212410740301133736049832765898522914377185925164000135765790867015602693833775835731581462615646574900977472168673722840148786303571853036811892541838812504995051320885892670740365747565424591800121590416482330067937617462867602946967064454652783232477160147679789632442415115750972045403340342016856070379102288631825284886518719585135016689002148111556758632242055919898702133189761421104816916718609349321913609619530235149273511671204028838776566309930634974054924925384499533369793010289263031642002563251516427042857234050680418035585933479794258605473832453589640157276732479660558423447179693223263117173913756472761318205539851748643609399170834707931434898027759266300989141667054048913104972302340990960091295372136325394853052865032004700820190177885469179201676574123052002437688823623203362806284734687629629764152281340430619808125154950239326190010052032490987522791126850697478612004162681741767492995658883737702260023982106555747221457249746359547173558113801214222120679518950636988615184095533915784876245252755544350747299040749790089783309217223423828114513106483943462954785916755648787638712138690326256043155919036700748392510628386205934247955520206598178798579067726195113384934875062216257388786244299252560483093574545863514640166028490413696060085502314248794118913073664558917623819802638760157593312891629836120018911158890027457003245478444712017384031418492038392612083029036198602958809910550219466286433435053808846903973557440748691493957192190607145375671746860647620187334308145345213049505376950582958619244880176521081979293578020232483206683881965599686506831162650208791117576849629287474560754073714654317904771707739603514097199448271915905939993555270577354040385688614697443282468052620112779737176289359445802131746367259777658396521798067200070066368407461587451377393708105299599762148350356559237454999953404527494086112638636405639063450235822744946895811801500510823372982015040832788464254979196609969877684156828609494223910436146553665639097743453921780229890202375529784698698701576580419173707298549130005897003601514134914110036884467410711089272988068850869270467139293139341022459250064926242279172115666751497134228578672331598963258667971237368527625744137304520357337956888563592541752444749680079827342178692159093273469806074735678983781491917646218891594505397036912372640549921129572681898004880959335017359205048156803656365944668625534812872493148346160851936041850701732431911358802830076035046763371062239547427792911673096589607451093343729941081588380857677163914337653879313407751670104562625615216387311277038873434029521242914439951068803251797155829726773585734264511114114732662994336293690593130484565078925740627036124916731990595923905849709541769997764994844613595814601245200455543225971757742103769368902167028682844061615811170225736535813766359575089062743778318588166106974167251384931886341098399006001512396749273907242495092735226366986904446445577070606116662557332442429787057087867694852579522633755639659449797292347985921955659003637409744101291133466780334614572042391923351172685126191124236919814234536849463637262060022240174268185701936948888866035591977285731998468621782629493322872318816052808934521847314972412786215771815261666506646378697472217930950658148441258357294350477153055359459197592503817390978181322533337119430508910233216626007005369416734670594746267731659580191862129937897039793375002540421258908525234124334583990762887426787709748714801588921800000011924404474055948405546562561133813941480716156813836221186436640554695750541347252391167263730693852540617976315309969844102632245866382246887290011842361610368605619190116829346861969714981430870184502701495183748011375057870895510658363632415592528832783235177842784742835630682115518823549883415738662078456914233247423558975817812561690989244333661305624094644381003035199030276530525659096754587423147657309834823942818845049456127588318739612534607252884107984265113671264611299889182923526226267479908543914366477210356792564785099538006987827422874352322200271328651676671167822282949842663531080577725954878382183524196295641652141830810334317234575696882433240566274951713088497970968738381600735979321572298946357127744757826613516544501016734004861380030768038661184446966279767965521194074343095869559765419990337647961625305345407310481425394876732471031793469689711475407379501433943269966619982806047995951375378424122335767983662730283465261417633100194348784508364179715529241549057420852787935103095105050817789177041873177942342245175372306221491196512001372145659380132275475002560109252584961322897169129423156419945881471317523939691688631107424209407156148822223991516800809719067885179032566590995653284591153146219908901218668824164240330210303743775550503497844897221494455310422855484185500959731844558546036149665773166707679784816782072319289209678336216850549880588886881649162202525015878121973422773565630769057586160923104519479689621797432821540070342064228698605625288487826044907054272555631365910606800104266956390807278316219245469468750274042810212271634310298482807324446376525173715578519604898119714299267968932729963845477475024502788050684186166413336876421051864047142876976326634511497339411081863281890644065083731515119471372876559540436239482329605045117729668152943782096371189587821555995754896911974581473761991360381640789312988656247966481176065858859522546908819226426987485062420848315634075839840439896088286135918921723389793304780009475685444460937355813400170100705223808661703749706757069383011302072872683409726359886220877872024287463129769127620734160328005819014515864422087901867825203326468965991960630895852901633706531055896213341525914758117128810128993077579918706508104101886708910678464919345352558515603627535395236198869748809619026260573614907374580345870027424928068259184751909746520527882354849784465671165097915537819278940754101508752812620824850622529050777046266819471703304410394325712622905305019936500609754731155017776904678659190417092755025019739131516413326994280376679360357053991071349337013865769357837100124151266749361115846908673322782195105060201920818579982029477449179476427680527258035359375243866792997179270197083652897584437344600155152273587236255779874998728180073197705384324917455992659950919817948838523664549500346955544020241618442262581032469925588802493206312985079795831871366739253153256551847639375207803171886631248049009879535002956224878948449492347140308226563489432783673975314196655407998329984712243021916174004932247437593789053416235969306287883807359375429921704148904157415621617836097134199475869669865306596763034031945698215059644734378161335359275198709490157957606682111071691243273999457900701946007828190735801432689537257397573026022204774133618425909210321900138060191762186021936276952177698070783870120675238789520929672126566850677081850808550416796849853894554797947824847795207375966476892380474579728224143637719838287106833772863045822821852772811995234485263568158869186865636738068515961203338354906255670819156207500765066861563497430114427852190917394551483086347053634573895287987970302562844175014451659583750797519246607974111913470186396274206205941953780939662720613248611690982757051942188748293558841844925336559753965818714055475524273897454099074042070326397976429351200408289960550575816205463615630606792831498121400541670778664058218194723615150550167000718781050450925300633814703453894891683958381684285723532534681769206366168204020887646465243745890225282073615504368860680356137080959060548079386891016828055462345778661778306579041751943677141337677624109362559243413146781449637260016244301014571153866451384713826139562991886567877358267218789340779304693283921214960675230983318620618819322294174017084164367496114378587443566388702069832283460324897239475161467161343191840686276674937280346974088761574430256285236779688951158118628534849644245450584285514984184079652267824108776546762367540605573211482664043331458539019374803075352864188358105470479953539726586247732345849713349428119978564504857884860814567703496720660203987128366622447022446946631949762156358969962959357601110009148833879260876379967349126559874058763266201235933483877475546267131961401825285957465928703687826237791800836168726864576814360832378176378760926805142429381956735024915099181168054594414203815829887384690135815265605653281422558208251786713521799882804175167443870855676978345786640233048752803262505736257646517613602556481782052854896916749473503252115029224759279880584586788830770860106540859217041441943696910558321392603253887090868028764890135644093718119077608770177127670048387910935557183722213943662900745357742854004493775947689402484692693990992018556765442247445610415334419711271865502712073965108956780601654541738499818153018101127318999423919321422372098061206440945192877899842650825636431456409019036966073891921031776297167941886382404255978966969021562897711909362321782635067971571601268742753427729268936329277460372442102776044140038842347184857715292960594307091723631401981981856250357678998305266050602453862756122821918365574283263163944144102330089407004788310050029543120547279557586169159979882243595858860198756931837931740018016018887431978869867074029718244704065783899408564308220093633195077930968730328751334114086547280635447843254953807955244859508611247709991190874489648305488230905862698300207752600952017646325000030720439792028707993990917500115010887770020840442218479171109292770219920400098995762444057370212356399540700626931078786140225387677846085236589847162851040136061725337236415420756664184821925215601765598816122146903925882489473774581100139065231552766803892839663850380583791132446207995055732808879924192817262374806194717671115528818567781116064151523443190119904472030120101367069284172353865105754990317041535980973503851355058823521579445404473206130448684036715998082542831722879361284050420649342733117495066678397193703530652385472960030520332641029998112604986106112464485484682490390597510701290061467255390066894657872573617787018234621685140198367133771592484425784476053319951961416063756720152918137653044946303275953377666655276304205644014858727298675470493931160892449939992354172806715193034527315978527970621999067807838107758546072884816633729894582853831312200249038272107061703436980655421409894689603573423815515449176457712490427929217596410839735678558800362164117914768945279107401727266635901825730805950283174130244684088301022003337166886875282745833560496795910209224088653386892734860790458959570132507373586545638132533870458170033924823325294878741570193211634218641788882745573346884528261862822544465299978388892283048217459761730658966364084159852637892085893122858245737750434726754014734702506626723568634589027283056299083297177569079018009702111098526211721582544104281937664088088993665700426549487285988171037669089677572260827897346951977813903350486992475720652511062449907771673740704131999212770528548133878584745146087706035887106940136470730325636596322144179392568607683039103384033466213830962478827253971871770429417266325664525014515627399911856162698216794263299810123641319400940759583362645585401740889926231180790367221967597545390221583301987463690960002009277127940368486105755849843212159284938308963351198648547877431816978787131319327442266383839892842657024979345180923882630109617309766202564478923991278433285338241742423525849920793863578759618149125107367603256460452464665827494935947408549313048801798937134149999236774416572081293369708001462798283203357734132902021191600979117520855922239786783185213188782330828844230263784715370167796504577495904079571521983095079082622349688974339358851698027935317641220792107355470908530434029514450368248560873689571180737088027690050356020251241551143524540543693353597739448794953137865429368411668179799590826824559870784358403740121596685068707502505238417555499293115994698603979143743813688383028999453752654464787126353677200405681075806207448065138187714251284726448265205862675634867357191910954856375999361107493037636483451464898574389422947629863922264490361907206760648608501079104112839402213027167836014488338948199444860034066773135226744116211763927194805135105651158314201181528885872453015168957809803466090003771559029475242056334190160127092445758569977798332561316576954818080854972411867680144602363421052669968908256712556093006063248567128456447818141761002116441474424974172498132142005626599020531737309973051451363985286408476852448648330048053332401045925194406048513909160087337582637313426832129771813215013671909665000640049177131217020701971467050260718858135641651500850888204115528824482854170276715410859552391041200187099011667947534963119183408767743594183221652628692067506907517657372236266114074541799228353730043059419534612103419840776953712002947968797520901885863068753007676390042207498270954119317757595497272645039994329440338110716601385020442655123278012035528139885199092001512185345043686812178695221391337541860533960962470550167823549334305651906063460153420360896265850729577454956324902808800186686406065345966804905429105936921856826786017863754862858621510440798088327339565892084497084396792715888067378287953671138040962441967382229662890717657851089979006096787538457334867183221685979387414971221108322703165879812349606313861548296114607757526937492311021454625201400148702363060557228953672405230029700536855824346730808173647372726832345173844912478902543904648506195775220609035701062343578696364251778277575605110568698964450644074572673043553345761957674593065020352502441349282002717416596870874097341055853782226701082256558918664704416047092026263715600230517883380271999745566224377318180581743780267050934423490317446991999123759573097532019941491337253614568364777571269762624646181000814907572572997419952844218099207566157378211148932334201264928409327392474171051084308106956565420369694183503289849710876980317174419741610198378513354057667986064508353067726759263070545687024224879134785464059892259610712704142810550575578168190494476874852476622447982355862793498212384167070590696204952361915218851616310838448692917101329109856365973991425648610867701826351086724358130263880487692470747099683029316214969173926074404335336616814171244040929464956374516241030271680922137905773797535040799222932075804776673509705575543792080189378944303861519138990620761326793157596589238850093648334590207349681061301827292619723692924862040333546432526702977324112819598100968929654284932877340445393759193426011692201339945426734713577559405315841894180902790116810484710827497933512236443476880248024897191944584394535254757144652726030425057540283033412798082496012021231774293159380400454669429121634038489486889858447729549981087509144374212621714203675429994921247330197006248862449283045743410742345854180259337317106850137292855068021326303038672312615673653375250062710925889522934917515531830532746151841283156209907277453129508520481918565946572994579581579326938006004640291308700734085678233442010562405745192735406292684866799413468121581768433676772289549349690776304135134801374861262009998203951059851436970176298253912666145991740904221848495036641482005038058486550044567002903572643617567308655715417563736333183446434526531729510931835710675007028301325408286527662980893690262315786288533813317648990545294638706081207040260571729735272374415144455098583538476315000820375247332172400252316703646019191291507238238471009602580126058829574695905500493293035218486796933802231422004184367681084833641139772053377015939210277752966277929895008268467337805139963082112358996246499742804998488277280334479311088325526368701612435615302273563740057532221931440060401383124233434349019740517739287504101006890297494317530564438118230483734565199549299930918311121387533958512385813436225181893242478917921107240564223427244352528353331494451515195031273269380572771199376208958923536207153432972980875889071933332405190805123742830157662454265953842955210013995797391089509567042290549669109529563107027472892007635465652913511253503212382460520144553882556210565554894211430506506221251375112927332363275988077014028115311880796319211168625893499270409433625271248048828532820288902596282849905894441384379043890564947298781763814235162718956289460816262253194970044902206612737734181090037019441506913450929228972262290736811326931853950104600361709772282324673661101852819743272928773493758972452962776398287930521139481260982957364598474624703652330720289623741143352506800988459126357611152381019738826112049650944517324143806130316879849131542728184670742121210830874252327374545654627674458851502916709024028138769833191894711798991354094816005398889940786401353792536440327378053563722024026071645627455374022451041841509788250954307104968112499730298428477948531588784286511663337782255296682711976607173998904584159487287540925631063245126480507027277027291229758837289804738631745919355501465499192644195267423444408796481346633099600388301937274775617353165505676840636544169705219264881928788742083491304061426674935150662337211034082483986463105216699863034810258291900350191332000681906437122500701972703992198372692791915721032749482892141945563273711383411919220332044557606064342672552841684628074597155481910764007691077189785294930148257376962740269905068010328578576853540041366913833638451237984779328822257238256831937455740890184435116945036237279426469513162908480252994048291937370047636300156808389887407106637648874365050491146518807272099148838080810680614879325257735367017767733673252078225738249875041212316764277829865762847981214692070700678024842329040123075852430326132337611610125214667224295578780009736321944859303845611211793340140777962897469281941199885537408843481226863023412265425665129358233691836096941802368409459505987395689719214755318994458236397135890238652975796594749234231437987848765537405675534696396382706731581771769722413931087554405715203036218188702010961735111768052598754722099850792601496603638394092021538144621237575538708582566931316550976595797047433694901056261304523102006685378066652197517647684714170821104162844517009886135232207178303875563339316637263515962411563015604628924491076879162494582039309326953712891512999214325719403003999664506320685067606521894307712216615721410374306364287433230688633400265405915515778200042341300190299482358978834752651763440511831176899501611611005815892928991660735960404500210033929922634739076538264616128885780419829920135631630913699839474688858356106162126852960835307889718677460911048383040911621387970286468117453173400408777552310928387139782013546379356662177772800827187897944850089258557991481278492878793149326393019246337871865105311823941572454405075715556051005836890068077901574948666693537980025884809860809556442309587668881731268367071931218899441959774572286966217283067743446052936072499397225776985799435762147615810864639161097185389628145388380745725937727329265639935183065340838444128885369948494987819437300038306899215363470104379439404546619719527729326543363632831004315954277779878038470145091630363017358523580340029202394010369935262608390243927984137956920998040931476852228793733855703426737817885418896858011498839870088261998054002575508696813693394226840176727099364769459634991028391630867735573349145932865395392932593303212023484999650171079355623317227703214440735560425779192858586631937059300106119875878399357079337758520721879079413187148634444417228892544814598933424933330883702761250831248796879106673079685079980517470162143467713481050350440581647474036804506261682338513311736451546952239888991828031116742426545562282430573332476861007860712175239993846739391822229658197420532639523122859768004918440240095879152038392746301694697594494527279040784843069467620807286128916031436145620355000442293604118689064653675373452550098423509214644921840430634701565374658108767236941223798196471323910408552087676241801581082237345006979465024383927483834379946765708999110966384678436105045096257889803182528059360924116086479942961727476681533978883803675708798128143820725655317170761439902060529727722484164199343915094611554825715529458076034680449493007517795536978214186755162733452631534387139497458303107994612532511283681037678091800871432055229128601732540292442539666820348339357795163645915073526970425187261938370331988023867048750881818607411620295305293447569894442579155547795338393852203147722473752599587472259739281604678917541272937522120424361031916522143890528524610378568672782930079699579769738643873460474620261508649824941203786860036423200465694814218700390652779840960807049711987282183391804471670509583403479918508374164210117731337407776607592364333010342226287343257946136349362097783969039612718359058727686426084976102149511381861338381048129389919761594629879537853973559382822691861997948199643279928677389272151600345285947043193621440490309428044368737000843009408587079570755409125706879480139660360131280706206922331105246202464247697546992972951133361129672433195691798793162323473082079049058386924584628139580067934809571967804753880624596001596792645035322496818850875151407791415088312097276326649273138355381862248849883967050814376055060939156345112453110286820301959299838134633069410509400497780306609589703373587262527341810210132749804832035326054462570320320816383775618488023346486105945206704352762584968729643969709964507287017457022233942640538402557331803404150034099850397910546762268531069751925749052763970409919904425181903412731212693888488672339681387905311256903789791181820629994772533069682865657330928192586978475141745343567447317778017046418407920217398460723528203847560253252272776739120630050130361264673186252565886856758187153924310643890431389141078988158210236767020681616081245836812573527830723577527667624213945635317731181721833461423930057164187698639857108452823602503704322670764706846999816511718689487080729528771424942415063645785954740949152366833475744469646862903350374400343090860812171948775001353766935214501744141571395246340998539771169721563983320138820532246813275080331133562408033749875589681200666202304663074196962866222785499430826080356182460167252197982568620102448540111967867457584240565277615233950929247905344809840186988444535640074586103746745427353308122413872252739588634808893794050873877424745177065143069698731079072211550790288232918861149412140849876442645960239592838511836946260412211865819800188759678769439477817915946507725559465495123185891899255994064529552563981874030759567829832640073774291988142518670873018061953652350890202885513123020552653365594014185249660484770575059104895073578176426180974911115838307427595180684965345319872460767392214587486768959293585696591525591175176717801428947935520929884872436144849874889041094397503021851920947304101531711712889214598423381699292359846407586747387446944444235996097035989506005142485850787314482319662972821192137703697061042604050052472039897254036820639725524593568087104930182860483609370682668174779363234816734670750712175648977507793183576747053231784464958604699939707391159497845667584497828843494321457318074138448082438025871809365223981167708790291096565489378406693825340528612633683230491447214678692425353862005938155602516851902090337663918889452979064018949864428881826704716401585263602890406720397657973344473347186199585284184099995581581220153003458712979047732907557450797219813232340687243115448981278771150773132003415605069541511217043879613296873955607897330735231026889375563497866743234146881530721610411866887253358935755413521788730680782049990010981897343402950675536853536857332506571239328927704354539963700979264292780746092809340692839096519105856961191093677241913288949008379049477653464035508289418423411975956140903923196175273964394948965109570052210976619204939749346634045358033937664460953016583739649583429903626839255038018330733578097090898483167237149423281104829724470334100545659789937012228157027037902241444638202748607331180893269950079779941078464558600770999020467757070891930701084404688215950744716277493217074655801502899177329214449341978042021336760690360915586856218176589766543957750412215765207042963854299731543058086757139911133384473951687588446130477695467947061073808683349465392355245863613860572295514713393252119161989251053060230429971547640526842808833105896658962086161109607367279572870004992615554376464596615694638255105972514613396341456014585376549430373758726499733000933991623519185929121460992177676878909543074124617011618607004393577236720058904443621171411347794650857352645389476741210211324169949541789390738227592707573733691873115161400537971135886812722100681975596190012823591238062118340163678942460698178704693943788709773424353910103918970650108179950697506277135730808138545010076883542914203089059751979418099002657016675322326385543227798753425072808616535175043954583830103507762598899901341373924761740021611479487319680822384697504045830178003251936605884047486067640800395870330548344478450736329901597672770199726105756117882304354837967715430492653750970873487908744395251799465885101592441499101510375434155812640108444189632206041449156442724080525595431291700731926663209074763976784513141839613740534315250299725409353032519676422595979856828603479634950833222816028029325047451544151595322199444199098010552073928782249217828026250678609198922494362131113201024457965504877773106003736026893618906780211414341486394108215936680217328203107424612439875304929030756438516049043535025669326571677902487562833842791229578939793305229178309105336274442733310409446555901680429317107562766631940120420434844127416683459616218116528855955023860260428690278642840764810083856559905386625864681034801406791143684647464238413524225828506919725263275614814142048613946477172506069070253364011847140754153569080052012869142216942353885797357725873472204451803327418344691437965443660867435860034966517617718257322084097825895310706795924836678074014428403148539585705756164114493440854879718606663230193283248769945147098385591538964892603667565080996474609370165314882777405708040004812047667617911281781244804424402313814783210528621146962603331750638684496796304348127263157877750635787870909168831364096345403422140426689244153858608745268857935726583679964412046471273452491010805944987455806234897669844015298771933797641284831091265785628407252168316331070958869779733221154676939967384217205177054813803035546711024748547938564752530166420355697115080632835015998262046403048995176145895154667809128204043737676091304624925558102578839462922784255805935971696644117259826938375029928041288328524072081396248558007760705002354113317797781695447898390724170896408625977894482284446721638575573488940546703495176376396492590822367062651623662260393174608149814442746399023618372653610775772167349898035768266541088091010839347070380634970486835973926720518550994351359880126427096092693408944575656970695679554932362769621935832490304533354487464576640231486940543130436772577285233676025261958574966098100556813744664610863182164940035580959087931162398667173837209997777607643609965450613877627253510920123529838413597318640191983429858815770078257996383574800094283001806104761451623888461508256258234392876793390170717090833358004286686707189618294783354875036668902237737371449998837005009509190691728320037329653954808698697227277128427878444212666984832765632747180037564575428245706810149648005461890310375828893004673159460010444641478729425082509391608714166413909695596409385780804831411719215177503198859303745475128270701967040439566551119686317125205362807396365749028390948354081734164048202222195295409292592686032967987542929424904642301385061579602661489787437539243439684325019839281928539553209739813989695207590501305609344327530766739888643157312200161002524784671317959896458112778864783764785448962821126154953343955854586517340736575867934057108082973577106930760460978818462926407282574305018477048890631830806238407113129308299314834803779253288135284805368589781528820057891239816377811361674978325118333421344558857105293875361078285171846341379484761938200018980557056849426206004233806035741011432135148262551859048329206401707625109825098308168437559623103339974112625351064252639077364949828006667985501670794245482892596283506792627155097661376813850600668590628298566653476265416861906478805376642880224801944941076416706761556162400029005134949131953954113585098549469287932694644550522619188699710360329237847686845735881546537101391948502000741600997809027039434886054865748972213589366370273908632384234857377156513216225583443252574111146483787888028125457729128982042768754504564529102603688113181234342710297401629787604025334524011781638913146850731744736874748426502349217878354620260243840212557584702113761177062416894712064553861825872464239787128295927538004428843992915029521789564409827230649624749183635903010525024371243055614851928155527873014688454831843248834270871054236697836155907142893704614403749062746881817174018201674819968045309935290787548640239505039475786984451643783309081269233992492018485547362410390322943119098582098646336466931834059074149742589980053188702813763420273783164469109233322914717237692263769353453246308267454241141524646654915454060014090912774841608910119746310254965632352110185955633907129634676752811287123897681733161127750512367116601945846023997658200413229814022117563611974354690934473938604974461801718308937107220426239117949168352656428207889360353085459958240989857972439513195189579514615427906493192014587818031883004184202083068643586674473097995770589816647179679266748288585609211839469172693603934110571759428824393231667347669622665968892813842483421800213005274465677109231736045150751025496031150206070800096849984235202315928440198724174918110478849355330209030736985345232413599275290343836011021323919563978502004265490786190373134196691519807796700221351704241675951980022189682807020119818656850407898450001478691369830057010745455420772965459484122723686533176788091656206326217108687253675635782028217507000302051179726730606119102727624536957696495822545820369667154798929611533940295621438549483636416901980566278312806052878730420212668011524550464435348175085807403401180288586268009077089157656029935846957738815572983065668424332579891558790170779301782127886846300742470447017871359342429994410412236068521601914812128036780465314872840065037750361072707252495327247053342226844381959107924383569568631129083954518894493726543519166155141685703552757170500590740658975821512259278587169835931040635030037923560556726571426716091243796223367895036093451194217398798210353774959095143684579498297210891672398815586739710397399458098789156504326097451990468906481697219949292645950629513367505403221102592300280851500399889648683089804843298726317343883661913137097241138135212246247813844485517163033658928506910404105004282292926854918380609836193519589095339249611076434423540932438802428015240635954663612685068203200376929869183238149525456405739700933682531158731975873365750494429133427933026902262388880234290630055659675158796241760153209986378011748906547733136465272616015786968080644621731687559061481203143876840602491149251455848272389156341425246137527346155908946084131028701189574407673740401541212260879986255410587565209350490378579798790597070070552258604202323640345901101983696435803462962199006539901565410311709936837851130388377373478221088640555007286629854884473674765575193397801967781498878361920401586738330865088469822067261210732592650689643864009406176480123756464198630226640265925338276587867912856727249672804466096736221905837459891772919952399145642311883365804490609165875111664992789549089385835695730556056729212766201631450476782754278932989507136134853619838413471582818907273119551360808531273391262373972211470510659197115675582292252610986878726414840011534014177014210984905768622409509638322644632494790031310934483020794312841012624075828527288073154291591224469661143863680858934193681574083635536868611417608466978465837713267381429103781191523276873919734553739555819502660102194649497587795616713811231724914040081876954889162439455858702916396285830355073533955193073994498029456663618086519405805831081825671863172728706167896845574780823109193054874089812556959411217255788785767003958438925456379552789778852206307591325435504031705374201823541852772990177467452281658688555073419619595035616536974847814169004664226449335661760846207171117069115073848246416497842319720456760886221733403365917709434265854811800212629151786543447125450882146916026510316749749528260798545901189043277050201095683829329700425355746410863411786296138117990303627825010828859173628233441657144584182760435945377504471050537402352230303907182426841613028081265924972351891276527024568467911889315634889590744964586275872682026474112777310133555084161232243230972372461046976637529679315940927341207760408022641461526861646370188088781934735837121056496002579530541266534589439485209042852534816670040104150002719364685743561080215302304641370375215535102813382932136281538091830110751896089613873612805248569601302820680210592255211751387886316074679490875044265769303528328601819244524916638250990555767561600905385051259402820051104156987979972782584876310537020175629898346075529469300889693308462954613821998120197405369670438941201120078679010794780491886581533790361332494245698503528179750151729572492093608578525720552112408232602346350450659665455703865481636348141349516078911325495351788597094913118392309401561603183034646552141042427529792980787646940674091612184701715526911450737075712351379854835490304239710348425393560267640842973672723343816747132033462059373360932709326539312541882180904822317656635800542621754048680416353484012536761281310828561678748587035820930774477903796217112289175875539720947246889676777064654373411227518160922423416460817581749835206103073601703400262708063526247693420613286219240780931423900695362495703359066846626787402297226425873340633345400320993150380647954563477146710842971313485144909336446487306567061040658988521789470873636686964647640409933643272626370331557889213418897670511363616454863957770236950760944448620411134956124696284986128421660261278423256765642439428915543441157115090754268882690961507723974539688021217408910529761406711685082285533891571680589729576126023415433593996973956301834171831978510452203272480166902446120135290998213948832323804484369457281477779123921503749154003414354470924569206656564684845038332114427607918954038010562009129728134395156179155458883264408137739774748209899036388838407956438905773075328743058017043776752785916168189913303340569642521587599715713042455676018253348198982056977667000835760178591129931679747954125167396822139336647574683131054971125407182538147724904653682539768410637933990248967011913222598967879537310707939364321373699896181910324952877378411701042439451604516916556192121098493891397691702039888958664062535577133537153853426659622443423088634128509174139448344107763196995903031700167064404307700539254416210999913667371735436819510977396027345510438174519283281375828661212892913639524755502775069713113142133462898713642995255869728601082129988022157903724590875140435365800735817019517055076545397103216623290771475510949938692516084380777491732743220327551165661281740862701260051900821144835014532822282984908064398135405952048829711963138431308341205867543398133871310362857997260963737679237039144027856203514277069991079567616136911769540265940627269000547240000522751492563850537529006117522409971043287161198273522187208294498879880928794165883445697995174003169357993261618763310084034261036621408840207210131617061197796768645483539041772393486028507484060254346197790927553862014965776041586394148395776411883538358819724404903339354823246958035702425190658402943069710739815207677235239104605528885966728690345312005396539999140945029796400695174550278739342137372562673699429327470333954890518660216052019081055337632915188563161091024493351365714439479723853100703738880192951157189018104049221754542847195021201459899768036258205981913194508773606521767696386721977998486588317128967752108578391435819275687354033158156581531409210100501603370226401170556256333212468462278788561330149039062411581518273092687148762902168861280084006661238464557073483339682587387506446178555741682404244293197552935843320446103023677605135389936611424784410735446468575232816611828056429310485735381806916767030819639276173326467218313527331247242608980040966505078967913674196543819944177928214747558039316316952838379195804943749194756142921152981120236746318869113062666353482234698572506038443905096707010330005263440401345608383878538911266061283930962969270749383958701916940862192268917597936735370380917969523955438709361743946785664962815453727252687853571505052117894185935284442018473495366559264460307752445529694564245105969558037925009375551096216153604765685858459814115205720248908159025405935868236320729412842831749577336579125616584506875386511519178943827437086033275314149742154656647570104655066974013678471860324860752197475675739281997651461752201936594145476546413690735788979167164241528550170803726056646196307969192891467326341935240065783117358101850945654516360032770109121339801929460027354408795462350656679126801516647260516829391405354500214587991399337115193732587217102226586754841802817765855136300961713280300404639029392720762924981645578532090037809571075186910317819900268938723310975964185173335989475492864612194487480492864965648926016729219125111877765489431107815284796101754237742663826577593515442300930537648080423014310160828296738746800789784475619718967658014780536809890848854146241957285809018344262254164518329881193431117044763385345521074233872748958648875324700067157717526940777899061520118236255195402053571818907361736983294270297177944117563728960133297447241987331469944497464444087480392073779217325536823740988283218981034042256143206752655023931548905098427054684632871591736847332845910464461172303610051351256801825080220667351725401605743064406186915634024792871544649219032398585227822170322311428537598499329555849328140345873898574070990739871244331634638426084056534715111292041501590038772909568693895097447604449280916467923453063181877933207375787517094743264675043368813940466249911025502941680495410956179301403673374535753107600497472299753584861157968523302803240873830081565419775292937800880152642804359587448934428400761073107767837721725255751007937838048168858618469629341115995385278107194771488107271241642142457706545744333443099644482443836086693544238803765725674638557428570512756719903642169083162713107045889556312117411422734055459459090626038297974537217678357646125856941524114099750206753569959165610304822333760268362261804531077716799224062601004689550877789907844035297652241254322384708675667913597989278499933427982304323359029950093890444218946677780597961054226650359395099113770480977178146849993161231690164775713303474886695164106169963501284803008244015962460520337840651707051966440973220076335270873556644131761488769018505532478070662365199907301682368940989955772976945319932061285322189840226713652106228354436494408533263324562799161095351200242525524332677971536302200054573991451054517774108423669703533709796225269804020060876662686949989329823881345284304937547191992289626472023626546218844133432395669479822890874409922169620869589991667506682645245536881783805188152763697902539407936019469047135445607736944197514594146156392738659474195191724286629220913701503124945020830475939247887415092883405162070593404283077289834792429631536205266572100599974255568139776344773946619935902420488541365943493487797528949180779828044785537868836463425615533444091657271086742124883800744655271328133403923046074604722964875654582539016098357799272640600988492738708314688434723292002107685736417481379919032892282043329284496260861757064270479359406501326725809020088300708216573651865332290984612573311043329666281093780588838499792198854922977749715521204706054763619142832915832116296546517783157203848350308921138628578150574875035029443012925509763701206136676088157234513363228811155704303680578947985382811484505092674100776707921922967074207673492078058369742314269642188352578147784373057418387823833405567905121675919593073757465175651982675031261411254925566149127962705680942297562462613720746641183318196315085117889591154433119690385967682284372479200663223054412741088982359474418278001207859763830446391972304389946216663188147499188194518252190062470042325220673825525820190083636862143571068815641700579194343492804255220481613700834920176317019579801279165167762426781161579579130814173657674580803267135759357763485015718630892823528140535680181413916186482297245850555178438935581806611949225784356290093150356630756492724540366027111058294624799149059540401438205557319834826608721712006806577554105476475526353336007445197189642294531969563171288175713597925821552988738746156722455172706294368700587487030350163635528943076352133490319807585255826859846769777552380212979207702924923780690851090171376435796272678627302896222378525167358016494670501436345127390938185648829935052597029531567546208822665742311394191326613152988168262806351573241188135754295227994058495086241727434445928105689130385854770395531914754405866144609126396166308195050372240718573098725776363162851771501455672218770678518972763758190625048094082842530337090972844696951825017387737577576696883289453900255477257239878232663110120056644871518205395854438539833704843528002839638409204559641940152775526669456831254316725423060883446059203788942382634333891259234409912540831822254845613502239918230693633613351575290254455595055985099808004832399695793985770248607024217974953181327279718837977194621321442220050497676287320260063541131269257544972058785611287033721297126938919915541699176910326059733844375391444064329023782208701063748345747936521052102510287196618561681174169230294122181752015739153399863607088741032500287860193123454896392087459852138526929501173622031488212312613978551132685574201123503087015380836098151390758839190322636773741849614537042330383741304964450933886833945536055669833397182292749337723725086213593714303950285119038304136148027221768868387554913795739990752459862736518650283089599603123096525786365061844714003974300173012545030440532661173393444461170258583322972811066732814777552435353433215281261969394309821854526480210543773263544951725002579915958350841464552260505022752762755477966351629817331538249512225212561995712094904745568061599733633408433699391385856462463807134073006607875224584613420210519122917174165269395050877203806594496147058897527383582162400097790422093189788024095072767252707611782728831103131241097101182463651763631706024703566361668982613561464628351222617297962989445167231218734937937257382763069431404407014050449657543839045148306081919553379487849993819352192205700198796478034917545192090026191741856489781092366694915095767515027462019463101280837462507158610801897090674602543331974721358352326555934961057851587293006369944212946760631596142541138443646684459988565177890285810117154872528581461512128857243033082740984679517266972739298021505748235017889064412669299781599733945035983662748573039838049387449386927348607228695731194049726116184125895408103831630471382004453218324792416616158615593677525115256863941210772112472229843497739360806513504658144069208293314054317446011786741705613734854767466786982574547257969373376607026676963359876746109815354470663228873437347927144492288255414626075288750882444941028273925078519674770243285221035541274162270629138587861921732671679127559543927048890784149408227395494754848162507612436942904774231633301253076566128454529298472772609434196801200095720455960668271322737158437676451224233621418437938068350907624181922458424423736879256456729629941964764354042276900231153588356067784714662302825660040304024241213007204362223656621518821266919530763403005205542237326370865515910618787594325833382826407091975644806357694304819964301058690964445268033975907464582594776993632820825004645716574654022645973375000953723543233565533793153474187150560183502115834130711899730620989983220289725820294890250006654799001736343320069235563244136749313933184163702755272172566912687072641279741677266109342163442012981935742494650725642844594495142453647863649221378331740875218338125747113028513499315678232229525357590190453958728452786015485419428009079203709542338479891876166629940834493172538874807717011582455600422257364689974955477277588071952818455463288238457886166862414869824316690031177347204856468447658371060106139269071961123963704713970671460936438358959123734959191004774391948340857351501137692338714488217398515930041386344542688527266757991523008575712290126423057993464058525895750963729788923452195466809581048778881084082394757124764146879855204842551222141521595377706661249981010925827524304143411142441402608233561757528189788524851146441115368708520821149704146585507634299090247053029448654566700601014963313292191188869897213134948177339993355911031811138852392898442207757890237963055018887903951822705693255333725654417854044624835464815286760675313230325064616365977647594243816754018469103102557400070705461182161178915499335303970123010306498546919251942648103527369449168980525158641728023192049429506413254732171823541863103262692629768874684947755205683083718415884563146073085629441802674693773025094864842249317087553182077521648490949739711459960817923378978013904418104194946867416524536477753613367461109066793564240430900382546454053594600230339947043614423753979405237737007603882417572915834756275750402086525775713488007542444678330791865856005347264333370130889442815625124563820931503705111023812197169099286928189244261443283317279800273818001580603554363480332854565266736302086722979239399012099767375917390737846676747544976734861700076041122535825857042992170586236365006234016166072891128339265248843830673892579627078875939056672330709360555129219873842258216478274973886099998605540622728454706358930385382566312071643419406126904788950919829288794788247641442659077461187141812819052223706388518928214472614655731897489303664347342627589616904772074214109320596447490362894666128229640149477442582724061512222152267648952103868325832320471539037862792388357322901146091476399846746793779948969239640813514353578351759141832237543650619962015472498211397591097277454446689933788369688018283042533495592315134585705763126806164344613604677264342194707141284794111561100660861337945231192462840100804854988627541823882840436118971533295060468640650967253962481509036218738226289066270207753920798600800839570923162814020638904471104097771198354652730073982653521466257217410863720778486579967963709154869153853221457138506639185846309013835694908694934931353436536431639039191538267676873602440333049309650554152150599461547758290182066252525918578653740809312117007187504246018364449338850169812105198043647846415330599674673601564813764160425498589438447427808679922882990804261404418938708458127840450572577512607718574598499303176539961492616199930086914330352619140269093456138014163178670817179184404627638251610699525535020302841668203791283288127427746966817732766407374098972817268590134594563875120750049010806121291940505104289589866554125430922378392378077992338691587828469682450867652456824601065808218415731840882878721844461897872955297939522318823065902707639900515468121671112484987257202420169469196943575675459266924192953456447540520367079213409765973613490000302943291236407984900376642285010491936789049148338508498859806289760814190479066776894604829862659908454657127916322119927480484336538060498242346034171754061113787116890225520355311110818291845640051951294412099993257216086604010263750433676762586180906899218099134931096922192253383678942302916294161234790913935625675569470782561228236746199177982574049021797803037990510496566151164733653945399851619104954984872165270425548894834263243826136189346886619650914871019603759385914154009130913014435171224765675911525687875879147617855717771628487497780879749943157610860538928316631184947190002869743311834026797201186440121374742801194376285761655717009745260930446909698105489503494276490366470674517442408548116918222924404343054615958914083122120945162716937442863616525835474539248873164774425088362467927675395711261119118851297524089543281985425687692856556809678361959183974202310524597096057288277530253707493596428772439230070274343319761265840348713590849410273231234289869799551225063501546177989782016443566941325791366967648031359292645620117464290249369993893694349899237171204025957398193670768617075270072985471109526360926281926186275994466015389448713986671046303901557875764781268442341036549647946977403961456675826175864603654898638820997957874809427166363874613204847836795635300274081279974863880865074216203417201153678014029595363268400821320348874004410328605050302593005106272108493426496102950482541023063970928957050054223087213539366131032851181927965449916036630187535730342581316135240110530239817730915390017958163749790381991739910628581320744515673070177703707241193512031035372826963205675066904705233225962553278008707606533168003996300070175818217455798576876419543332603015396547588690523412434970449419828771643165942016199993172312971016858304995214131790644830749719987151964832062362528965293267695137979804538060832192915994214004935333180697300904788911733595068262255229474310460084138525404914561621330306194602169743046206189538138924171337708897978344191801563652993054041275985318948248864981703816606714486330877670754191045265588488770691782553640612560646986460277256294852961998200574194635041543550293554366342099130047033243691022591875136769683504753684895980327591830602142746836624660443137093529518039993535605760365873004229465181805458541753167059530045440923654974038755736286874665872301508651272249902893426465777652814815698887541827847791869222305570228445651252631769337811603696521338771721437872367321221294188082586906290365227909703272523548256018585801977357943475892722494270951733113494587914231043566975042993006389798810546518616427193076418721197545135605342645919415511217832831277332060429838254898860671579035353461546139669517669120284680965048326950162492974339072463754851240607564309085610187128283210496060941279094403103839785941643138030523715077903643650569690455126108614429887249670268678298775866809714343356651980385718901571534406289651909198905514776229990210716693545904893875693670503429296328978488141917185399649500128299758708330604201773367189811104131604198205609878409760044838288962261600984147412270854188363141083755366274225702783103038227900408244245982246163043150638952466602123591292782189507194312566107537620882060055011411684317406047044470660794225095340219608695682416635919354175435126631232233623467607993347660007691146294718652063598686849849701825247690646785359845139364335533135175931676550986629256211263342076330852693916777134466793823703174172997186506004688588557680904155535134513980770283474779870239262026733705014390838689232597202756017879463855725299359280663658356508147385119620537251396110097349806481453998983954924994296820804662785434356907383132614406855712618145951849935459775544054332939123468778122419539705421556191968310371227840514100039012382847568766200915497672723089206120301677865640587995414430426068802751527601939402227916884957262250371086158932492659829149901955984095726541507573450548066694311417623061731067622398327967226397609309604450214083352339741364639017104665484990499288913027889894173805059773950243226166499390968640000710579277671402015725853920623439902223337034850653851771381244715832678307940270993660329681294613866594153781927891024837849202309497706758110506869132582401917884946460483698694489695050803620128164096898209699274856241004536489756332133947271601484123215918665400009115252659030618448358856321433553136040105427585516020826029324456837464676169380886883401326104204503544601389718611471687102496369627955802797492865600862301175794201235600641437575368763175816222095489203509356995089737718108809024967889271255997628269020135588347798144511299336588722293270446320390046642265706745770530711282239778824501741929100274026618012507438267932404686233881940873696772705667434913271642473991748855611711845620849719594134979512860280399689671117227926315380158083137139011869014964026689862690554090884533661254655852468654673103340110187817946474678180257524555446757940997442272929884230223427273257743470240885717474929586068003872006558564333307842161531788647636932222200590275216497390671949302836271144971550603426136979275785563306477147050351869909163217346302349722776101317777850899775722935011590898077842926269812252531211563292367642552369039758981757897340907706146511242749429114813649357130336542476594405289858062333591879321835863219764251985673298329266253593451968541375778136223227904042096643056631701777826935757694257246516338988035986007680838549901269497684231963955435734501304000346138050572996160305477847871330639016882883780497851908152117158347478897557406314240152615976531566929102689724836034088908424426653232970891469320232240317092963207228375113096399904671579026972428223039953998855984338433155335118119710826973929586706102158647210745577969305335282383679343156380018458375827510493356569772198692930174366525031583352436536221315990770863779631477980477349201676122999240775347199967260524893030989453941965092808906751310414932894420328396955420363726736984468536223017629629317971874000042071138797615402718669305830567093270312028640885997265136839641961582165342344949394724826489013578519074987268842037171450682202669053163350486101645327333360786593827963924346129600666820478326292988509285074878219039319915856240684973061105014982797463345431595977685075505801398999449893865623436839052345720865856223612144804068675156314240097327097193490619307119717383487724866153714133573070789584008521971803311165161223993130028701376373679325330722810079568856939523449576524186656307132097442679389266465181465819210622420447864415107841545459136220791077424204361446467835445019760795931452669267973693348885666228933552437321760298735418877372632958320649902114590717786934234570073999189358143918625875980078833026262197512396909376826321066845682896667689375836349755354640673271448328710720307356869118501052759511617868754209793926119419354059582934047852475219364424576532361792789877986878483574325488578842019000913756303146815534314235476195086213173867816768899735932381723515218747455021261924923295246814577143017101796741829190940791080308051611770097142876229259278928891251103689082590649334204885949480690096396858554023473227251501609127079203852390560095050958042894799169984967851217911144139645162700953079677918805212371667378593684187184816787290087132318879743303498873833746550524214394835151999798897211940327210163577830376609069697169354276378473673736767761827979586421144364885064809287565587164471490925882073763905145329718871932148285029646584279295685168939192897020587359700186332315212016312033743110878423669039359664247932743015785567681768693279608055012478712713366561895076917543117757747012038678303395771730298308492624111981637109535889146803702992555863803509442077262670053084282490924627032471920812755163952429740200048620081308440083903697608250570872148642396505387367910196310880952101808916854421638700677994928497553469590965538360111287578782262220451349091667084553707974299643256762862156842871958771947673716611427133143052978184947207794202908231246644829921925246010924845197043701227868510143433989781307454200013887591270558211863112705037001046314218169418336517439869391388057144508596341590135935405407579993604798403871801709135153302494717100679521814966885320846101568823542874907095671385971175769588410761716726910603704578954986226628262929231662262978221986734017908516399602113827769617176143816777079020507927688116438590816095558622382964532309735701731721593977920789327540021498227218906378451905243029601576742155899520299558760745380054411378435087799509801250172280319986672668408360972702783985987046428743550293109166561665391113583795892578622980234848327812804084552952929200651486630675698335243784450858617559878333057936827055883794370555282361988760579619199605743275939738502383946873552642959647420782507322930762461566337632967518921646850446544128988660503056038708294902137325072453063694919746018157246253404826841599672598798175038105297408656117702719699742752529738767790998910237333901526889664279411584800612052404778923914106639655631245588825157338459079217190044039212711002020532350706749711885010981015835216496022154880766230888478471704202514773319331169518457475162674352449344079674303956059095849146840309958729261265322826899979698302552019574777955243095905386894072994777184422941557274820684882631492434744493127994054110682512238481452254746602146309219470983193961954312166763941795377590071403693304576195660990374865803209389943052113779620099850255711444356063762034425879531183964570040712325856213250099474261131683659233683342411444481702831712015310223830920426281492301076011627420670859089252911698225992031192430160881343869998658256547074779765946118242967372351730142037731616454211774960076528692552222447447807334834652302908915939096341128525856267205475530187056601243892655896103779125446616834192110899901237473377382053588075130667498152015591094619658691664406620543616951260171005405936939288329211097354100028352112549709482964802239170360449264635085290452977196389829557148980670231121011698485167545930398937191698238525273664724390621891912197017730755330355037208934068671408242349288676329698664489148627720044080061163961099765867512355083709566483478027363547790107175366772665914770132592884431189071724012550101443251916067912507756892052675830835927802984121995817811038397011454316315853800502337940786680585100280109168169617638051301767640728540113769482418838937972998238642910513359342130344182959995274156027302977046927010112466937300428868009832756058826716978361699482618518931919551499682581442418217631989655636777105945449935878601681772659607098900318198834153647918250662200607866421713546199546957612285048811875171497304998099400713661694048503066741087541493290741310880062672608192721005890958513431297955696643762689818018960759158227819156838215000387157960992330208731097921531094991860955995777124756655727602991363908943939254786412464939424592402029615132654723164451462460307437188865616148151214591488047911504815248841837866050082069615258600777828327205886929020908889636271714488967607248162360176882054847465339613574669033684617305087766479633315169788401633162284541770842287730003255749400361618744083169050876311978386249946290022389296095184532447488464929171403117605599619536811077155377838609049736939658794972006190712207119954183171053973210810667470615719986198824292648880916994281641181831074364773265691878617064548367663182212716514457124730046028577330266302214783607882034000337441923079535277534793386060198691220045634787757094377402733195097651229071271883772027155951302466721748009681187904746906469302676268129132687360650239200871922866889458553240764393204922802344732857794358063673337678327077728822548671051804389441777392927320992288168857258696601892177620269078437779208923018672510739812419586140424708382313473422964885526505709269359721477143063325962705584808885806127270042196041541289997829461558413356048241742730915121950629147437113838810468988324880599633967497072525794355094182576605750057160472545014309233205517345827143117048418264068931617830268808627901291050060593865778208661113976606270286439628921938542539982512211273597388467405166024974432859325174440889457995465847701432862909905938174823929595615239490831949876498344938831693313235154828808319899926474252697353338616551109414373969610211863910909426351164585542821765895814725597477195093435821571384446154004889494569353450221958422725926993331795758239070649285434582535169927730119504752377501002744932865154330287261042484924593863347620702440314979902951124545169064527172765702088975175104204388468384984382909977359436189994046838223178709258312010544464663920510453164637452398726361819689794560747520577036059777668661953227817824093367896358569920424746287923171222534342203844181550035241204954187689521100228453117404104922032085981160158178142233799421315540511821060361066442216591854178619546392357318884247781916594259539565609168583022891862212318996102346945906793937804064036846972617574097070589265585788021164303361998147688274096081579101333083433990334040837979977507011410984579519728856907767529516038329636173559153667589767346462263582442598181302467633420553911623307085659208742337949590481187273052927947445157468258462216443915822633235984469885947179585392534813173706329872322218267875869870434593195406161024873864251556160597040797172032592633137647112576472007200363885262905792189789990680320992112272552369213244512951971473721917778710326767929147692624653709209217294635098199997775773871324856065876178810307186703687406129650817930092976967702125667167125482755846650338858206408877182917588833687962480779853391489698647497854351230395344977767184706751912749135090337666528595172356340802016123888402586408577876874110456628802777591085754611536444304245455866275721836977717392924861326638750449483637283197267820869894305860538866570043197250566370411399376167048643957261794742554913687098140259466140170102005536876918497927983593728375437850479321273601998495988755343940355844754895921137295049220954690621654647555381846795862659816967761227649657328225298180889065277409674728756446454151799575342407138249925219606933429916950390687873014783153844789181934815518735850068440280722359778304344819508410001168436082034977066307307829659364604953348236036204184670315126648351897370285399235327086119737320930540470804007623355739582464554587041732346884504085419351839943437784930601340736152345689276218288346145496218212201198091974920373048651171892692105934244226712697968339902613684744524912855556312241310256923803483433327818756316078826811303926168910000103555061065368533400043568822570408355779987776194354993703753561212861200550456534969884236408280184923507137213622632978818276502629498282087148256465248699948468842324364823032276373149585300128955645385090025586714367926812103571619735654401938228825594335021563186046339938764047218572588484769071875683368324184963283524287442877688167196819863279788460658639967529508157472715972779042640788055732224387649640064664974023013611682458402578163988323170204902249518617676955132392944875366582861672867214233541564689675921413962549176666044897796509721726011400004579480797332726836982510382168290725600320712799638599066277900506642083773486174326148834328028426312798393262703166534831641929596299777230277812549007304576310899401479399426755922372026425998200853206626660881183922236932324386631370773489380677179287037409607639782114182027379893950170480245319130859926350294370568719406915727315980276325227235974446156235264129302983639496974472604060303526361418329841991369403832169392998285373951270803037334286879724505038387786111291108443076006135482625715466025955544891081050504068564515053945154595662912393474016128575199391534572323551491367624843145658363733505322078592263524999731894006787423275531573220383086414308571112612490396734259990747548335886924553345632965011175815057366003462817770070779132722947294266977969352689690012995849244021096324123328529482226694111107060924707681441717983708526920316562307658755375344166145863751800918020100986534068597307169619318645406773487727561020045749784834155251526835158420882522869982929070965724310104727513015611777004857346998216077546272772354922363520142978112563080732334593578296244009796841594941018555444748687054030066380386055182637779398592141094946674581159802430803073762965309362658127940710948377789758228950171486875167934965611756949020161280670040688335601300832022953098541446793792459852449988493125385433314355981840896111325649324294992197153207852605715376021187882325910546910118200433831047409407457484786414555281989780205582572401738182257281626280422444119473536421948526831773449326796358051949325287873523829197015252912605876521098251501485834094260406433483543473182096143532727283101792660111482790552968467745199853866744160075289565305715262378026276254268914958194668090390902902279273231364079253181761664647645144014864829821151818136531824918951566683170004987580580621099074199192980673720614207642589730602578191689707260136258827302558174609178132120872128531065470930440353662762514432861179664387675219350244554233338537248074402778649025033954853583706857803549870946087829294484223708074402881998424067592404339688362863336865748808898699787506823834677415485835927329793605458112326657508959495256619695825498159989249304737337318593716516651047718668572133037260310954993939213491921114166405907296098979125206770227586181625807094767653311379133596390066498579514756829374880604537518237704434015256197614291297390234950406426868582125740242474742881220239868410711765775056307631413359277698099745151588724990165559479728001429265106601449841489797658023254514411881170203994841007581394695332383931805236267952189625611393396151957005657957684443478711002781514075586241284539278185154800151491070625143439330962631018048230850943636827290569264687467203562426979792826389539957785784983064643923614469944366302790272450188540643555060830638482149436379056732152544364075149410432746064477922394047704340952906183063090682854480568220637777448634072134204425044995600685649274840660893902298842299173851072524172636212698050086158378156291386151004575548183595113291976933136298415650388785814424409944431819813065727243258894939183207804536285638437157283585583419604029450612584960170825202946794427759639385514041319575589084123873113041181620242053755529736880376645354319152880526666914276089538351705799366678839890516286807894552140232319582244972454377890609675519588984059858119714410010834576705576046801145266388063701346348570049813819317261973600770520068927078054474167146124430077404583295176484033789316186483747922510198208330750355855071333865851588828753777898054677641744432916166328830198715276751770851220930352004826924073992543553972206343544410940258748272732086794969326765673835110671265598008488115035896234625449709655890150951838204467786953818319663691112481927325575924712200173167709268558485923981874382005392785150035899936297124275195609475450671280217768759391500766994559058196845980676903600128683296858909100342510614363016445707111326915050317268674108501510017136045580157194689730935746873140255710700538475174432169581566050547484168733397800445671484374802790057639856982778815072814710561635512003003972676286632369752655197848230540748913152605358183365249647918317256751506837534697475172179421365345649511648193218479850273963340483743232705546529479579215494917549444142094323764883438121549783616088436532088363612787686009827578789393017176874294851810805068366261985074656592878185079915580731682661055293087774476763560348137496846390462580607506630763802310226901139796282367130857367619905580462019919230106796538559187544175354749283989451306162154245657558909311599223848322923328110240626972269873434291809348958165865066755695779866479005019526225090827621306470572660912211126491278417129229121697050596106500316792781932798333103187843659288758030868894216557905682083365589209616290440492281837527155930111247135888559064786828803601674952488848276987635920596306385339944733358210217576597817952364293197307523690879836286427156812984046689156244181471527021210150361709618101105554280244122378972553025576499556862324154486277458198977890747111038658032277021966049788462749865512957506442348240471702594397952777312830054884217548556306969830624145268633214385300454089105199282142940499884741936237875656271659438066637819078473229676064353066570899738966836044536361585365745623805772230350473390493307480947269263046103602851001286938874937348562105432880009781725462656418068344727863452286946599987262453489366644071628149517958541036352340446070306935276498181660541163817776761933418586336098630570255303966899404942788526599650485607481618420313099330130756078086774827342109733940149431802492579347011342506044415149274664150706284026397053550597839099621542686370559919026305602646273698531671982928367782589541231569031639797246396931507525546936732854875027014670407763938920255491881568598244668488648622399970139252246987162860073907889469330188466745762142654093917275471448750115582815996132351155806765196598628208431333687989542853217537927954834910962419048192363501066831987140937781582935548777001687620025471400405199900387244224009442007509581738056220309544341896902063658310871541651555543215535633129443190055125804057266657291252887507471513731005158586099050724134931457358500928579250171215980299378548390236723018433238480716718073034408154477363043426521469082279818771809831416965019488579428214494934962634432606123054908866695492244576023933290433501170661170731200950544446430364346978344431599383315364921331754066595733100380320396740756351683954048752971166568757253513787224379325664532726760643155449810967917552976611247218583906885765559765157727673864277052926408851342098461898790713554510969319258811124408794581283567627309022812222317134156737964286609933782065198188031332186076909247244892073295772667178200842367892723121812997994495714626224046686671797502679523403763949916112336437003901725164712376455490606232349950243033909501407383411055287115848908754123356087955214335865633390312451629665489316813358827453505110850951135309148455368994431984391226073644532911534677534686850465843760723899648260589699168454551256416452444814123552369367709346617290822140433982593827763571293993341037597149904852853797021516589214949036489496922897166865667204340764623122935848815341124246819587476762319477329749713191311625677152701459412822736976245109074864155270494672981762157345437615684297148254903079558933816923116805139701108002669227178265193705344714675940824144651073305664111933537733251810994255310465382971079907313831138486198711735796480739163584351046467822532918672333318942288193229963196476487117625735317848243514784875819178167485821070510586081081536669180109785869060334693480808786279599035507879501002040372953422782371267543638877090536769931710349799785816486041708138481858059579924672704119989341212506836292802020303157345715295236358354774168562316205406852455972687421865546752593517560797451420545926684556673668034746040272161495915560852625491276888566588955046643693655634820911873383435322547932408593675656557643766448884286913131780417655807201320612123605319672438567115096237301287410325075504421224442368194647894306162614345220403917587547828999444269489055263654462136257042106797713643039786460469885388499050844634120144257164785822785908177021353681451256846851969934849507053165053520123711885678608871017685009493793134469462992493038621754624389446316511463708209386999014822940921623559845788837272050062919864771274224902101389187530141632662743240752933404947489478881539987952743620113367524372918314034537340924726303847411420076294650597810340567770633734090255253202467244489211201810864258835527294041658839110520941111460499896025636902391722765182425642720367697869991445059370329615168245373105316451921151802295885632663684361448904201005919461675878765044010532091660591007706075619068677113930779126714310337679124960884945410570455637024877362078032977254388318906088330203060828872230716733070013280909479357454013916061166108680153744651600189883624569958899546078483676804282008903926083237118247954808712357978652167468591541137880376741074651075275304535385949106680314851916493565314888990005240726214808875022714450256417012309941180151525776235326004478823357525982883201241432150100991976174668401906026558080265194063397374589106972058415622459930790604582151625577137248710450834342542282479868258148453257862651081465722890139550852142655128826844823532034258445942933782085709501224750529060672035570725258890721802977654231576512282196990159799311911591251651310106933692512065025082321876579575408474594700477535864675908366359096072858593171803498247946241535136998383720006655277111006305895215796154454677464451751013628158382515435630649042141182281947844355473435893010342022400608129623184110022226743715777769559947077771296199850818411658808221879565727258876237183598537214873940929071649852120068975319640882014187525028064766663647292807515679435648350277245045934263364971101029455637219309239247428705227755943909590734575842893319619918276890658420209019893781567604651223133528719452920899656418850284229984501272994590365990290602872913060283230832914108427023868768853482054763458631617157511645044705955437882656375574362152454789024073867050604738066174237270419498964962564016226697458573076177628956341605947695100815269067143196231904211209502358251113479375657646571570466152951067922305632685170836652318296962752038846169785329184886450244034594506203271136548826447880343495596239087950075047682254236767324935657646538754663174500630743850096760051933647829477779426074844865314736261304322348885101767007454536760701747626799083241773614862319627763394192049376819186771494124267894702204480960638077897450635894154035898176616856165650515582339367004200514014969725780674620704557325394200813126095471828513349314875758284168981541806774385121065552267091176370081237630333600173739558724805738366579222027896116324677298094932921608607503170404962792295326836932153504845163976429757748453520977245700079669771669138409881784094045616025215717911068057585347701281324561878603126241654916545246481977852623533380806338746846672571121792522064825889797111345428026409738704493888659829205532569180863335480856051183405716991442368469669596778317856072885483548789927365076732387134057859299076794526543226067375978166711107503362203699972392295025895328433691303825994599950892663110261119246432097369681008273695748047534423282686292691387342893165473237842059193621162450618040987628432104801450648290985421018233499135898386992737085002536151801168006013096417937774633781611258631749750493308686418595476836874077446546607043027350708872817445540002467903485120077708391805659787884169016756187647279773175088286372917713812098618901997328643240614703840269354736928218049346764070115326277010305094634262945772446692026752512034099035582740576561421133479466706149001895760382006956248496044084392986842608707273004086427185821263514496535356467615500609269662821876000378236897882780115825150525108028998157634982981136692882552792090995707850201499545243817179273905835608449543586630797698964361319163761100104592032264297393982167031475039441253649515989310741245820364979650361279025943559594015759300076293946678811098097123940840028871772580790522114390654574377803359507634771253151263020041872896183470113188691480451969518314559650479938851302695140663667721769822992960409965464606347999252050962586041019317615811215749105905515055867702042144642012335003934981783352313399202699596402180143724179752399599811651368600619926663532300224624479753736012029039225569790214332382076649817827221346488594228187692017146000633268410886867108654208885728788374983867709758592930079659244921326835465046093297932290826959901923766234714642507925949593227375077751459525530207616386787842020422839918347591927517551376631140541263518564767954731814054667141373624245958916371014084610727905335959429203510705739651463941336282232300569864541825952525773442683691608951855299765588611092727808294877614604029563396249444838103416653954729784650003933525643178652318178081660721229737889336664749854877722236841610436998527673316066954225309161451511509209898050793098606319430552837076141986805499478460638911342769543053199500447024532072392907493387040300486790083563097860436844557009181533062206827795217063553168354280400404060590202352295666012558499460015161459220073008379468168246651908514468354995786131013329010048757615604391671537417956743647621395942658927929803952562650611774307283829735631924497778304322478012947591333973675417441925662494208227671429389985450021274639079398623618757273880359024583742010963445711722049627274510680402276350422069926866213978817439396745214938547113057118036592923490360228321592298964417474170670156727036966240453506439085762839339424914636264797124542259510288339836694924231034602042332008185599347551165531926352502318275798060632089497155639372400536843295708522081655604012034614720015649299545250687685096151760423174316910887449560719956786534103278895681665603104005546330406358554743684187443164904979102703785759631276201315682745543378386780926224484986338864590103589703581740266300012835693434315723261860025240165971639595293828414531129373373814974999439600181163775557092135438922264341731454732247678371315610070804149096831781497943960495992283146477765084052769668436577467539223301618474443702408410747193472984497004714905437948194030161178027504727780113113746466684267059609627993614146436037802256076965745823269510295308720104769946338689488914088577043802346343022393499949122116630107943660207364595259805452853480193065652713036480211317254417597501857569130208285512023087943438953127592022520304331083384284744978746246248531223742145471032724800065747678290975105011706175246857755138173593486460083064587903234929809004479591381020208075714034389481062397431306033170445460107841492062760866817112579853145389047256055644598415792985413179141354458679032795471465092321257038179773885961312059615917550555841756879849765932716849163275002554749431805368992635084498097157966158020423207283733635410707864206975650926012726920884270891129366853925447156216760692814994034316484734153764334988009529584851348547680543485917701830303570440115843149486048275408803485395637125931574658278466598907508872687830801449239945194674242113735956056185773644346346275255076242553105060594364756272470482365429187284299242607402698109169197560741835701438028732508665580318100821901089337771028310798212302027590552173481810142414431920824526179228416475315297512329086507097384623419120998239800191468680619347703506695339833048210255349337404573762237375006610603280136276981304331362602464576844824663562863869756860798801318125555972755988244559410847117201295398744228489715420467409378837284342925428920169636482593733149191308853136523828344583387555304075990237449699495931352578604060688686020542498104846833540082267731329871656013232793401260832011493195375769773284768355145370542410891552787357159642312576305146759948896992438985306113497964881033128661332705827981938880571663872155233653043838039119748533438754646515086739032904670288381567200606875817265460488745094755630149528094407051586680707025097009218367815252364929481106454805554701096402023613835865813590843506087158588629110238327409639353066241284709208521353541396719504836240005180321433915247905697822176760892747834364573847285548177710278648317627462352373070727320724677256528404330569278268577892315661858386105005749789711882947673615933011085373352654870069557919042876391328201614863973501325505015414583630042322232002832011176665018675615169526110352638294753982241985172083113069447360746025806593152961233056287803519572776844792532217294627910597884217000183024156059570711980822185098654502393836975594154931596343218779894278306410544783467534038655375646823928232286298319337957434484351210227086141260023283964332222881168045528931219069315765223966204677341324336498243306233311102914482025759411940293563972125119118310902833207889277317654838778962276567534978947335918235446702300001426961216776688871220723669747762892161320528619166372273319508922073500135890183566043206959267304330690721523793983720151755168244415109933947975980824824706969672215990112368506090099528386091248866407189529943253140347793517796186291249269646194813152355119490311598280102243919112371292777733286896252301172169786790257568402346255100933775325511383535231843689018518663079938104945537293729179626689703269985979129930379216589130213546315739552591769287425252795732565671700892107422470160640909648954126985066768875822812271398038560330652180062466260095376305765013971677378906619620347273923008094328133714517339344570989810204908322059120033465609384616601284943771013231192645011856460352865277025765543580531410645992725763919743337789035783978622136063495127307567469423162510306298553649524689997716118366860156539356549189825816660120162091658339997981474876173551668092842584234646959463910953638919703145247626225770181820106236452340724755744279492089717365571535090938973160448343260478220426438678793330909786552152795608067520604023759548779918168570273816011298641343679136310260939218715099568497333743001703254484522559156448106265992451921613992333277799533902392995458000725832230525570309709895305297835322368175698698223510720927700825724185419586156488328181121435333432567712967271507426954904467049902276193879203474874177487280369292278961118061538340182200525997965796084229183650406728502665200406896896432314462288024537716347839413906735023561082348953037642222156521405136508673005668677429592488411289290567173158964964302218050616666121479680509564619993529886305994649534031939749677940791016054039811191688533133147944551594921873047688353854693730155464726893822676436508975373757475704187326251187944267460301033498656677287272508801248274412544396316347633226188453390628670842355082021242303187505120398303033001652976799263025472431225765390268351362255725460290386498246554394777176665634170889496445376907810017511125393698441680144552150142155785114265726880121256514399812617195829635377601110665254145107551309475091292129874314131620438577601481959002320379801879309790476404124048596326076102470378075763320311631105183778774078142632040624892663572659238926542140430343488493651328027597613464458049163623894502051443229428410853237495296089837987740687087532037058347694213079605987936918735505517708189532249976580928294680898855473427524616234117340496991199168389750807057526389114508966894884218436015230828310753954525170153490338133263248908313803662967579893036812038105212786204238354870685056073658120859468199956317622579086550311090478942956153960086386797960904225573552634647253682540352074650351483405011023052282279377625807614483441988604376724740145951976832898861558491315648056692905833407495312791830360669405440381936496351417074495094027706766225103270971924645093117476343424980688507337489711413230796623030384894901834507414757803780271643525865331221586178972373935917286723664870484470351611081927159388651213162339942549939965852635499707741122840735649949679490451070793138145729796042021941106761614024968557546895653360600905530384698041893606951891908932415533412130000479333167823447844169538887581369747130889846741149799739910821610333268317920088621777791538349811735012073436578410228348611636876165886661535150050998579844012813249363632764825805318093084427345258089431619211339494641306265981506199408422345391466918170519128519214011813701403774855042082842990291081257400410952320268554875781206954981425965723428881133056385154290213206383072677739288560526873789782888513610771838561582894872083577488475390155080503993730895536874047702885076798285965678036825642452190553466944640946174425055557594451168629668543930260945428293733353246351797714079845668362902329485078849784048423372329470614649126338878703301071424177189087495364970405178603086759152098246919025687632090896536090637205561160834544560283794426393465552233567831876927292755954333018236803670661319498977385457016824221697803219359115993880863744764176725504825418490449843016314951374852928932201175530467292367245042745178645126862512111738027029647946344826236421280192737167103457908104676087202186182685379701483279331985355315401314846623868500871677409635942760965418585508343586835171099118475976573852461332367146363199386467376898871048252214457904483288329865944055257095238539459398646272086405026407209455645858900284406849363415568525787832213824300594502432069265025900234317421054382727128040277007519346584488454012843409226810387367847999264481283709881457412794052032785082246537623281062647376217064975257686963913432403804234869138730313579575765028564692094250282465632735759451925892968914715839928370428785838939176386574758482352549556733358424986298109917098935498776629535321652791154900393559463342901967899201338680047806956138682930231176818113357048816285088520752143960455093165457283042471613952760398611323705757467671426683154425483879743760382201345639678886548983352405527744192208965792156364074156756050282012426009184420789197168773584374107839296072643150627170445052201837403191577116032410926682311261918804112327532724065252267867647451105996016873700524607910148433774757867617756808137642558587652919732294259851413002285246339900807013722854550612921980826460496907241660437528893365071512755135661863840276707680500025302280643633766284977515899147595221181123372175429774881817103815296186050862546024856574226931001110989695935948225440844904427982669886564890197941493234642487032859180778641058790769621848846072700921274104221432013419450618388030553551804320154518014202443471569820667542911963121097158645760635092973701736114559694503837547828336224188601300523362198531018455875207855804000980652478130954610205110805616070297843467374620281909395573243674035377050389021192856913246065906628876185364324211471211539282207023366663828668739486036352829321314929646800921254132561557927055001004660486237708832288140976624273400724763052405556971732162676765148844617966184004756059352034182523329922861555532587691481150681395421220119486453229277496918776536047427997474601819761701668196959047667114619736067150697902848839158489900283637270864371761105327217468325560011653820345771083054528423801639852123837809593898916619558090726066746856849009146686878214670105076980181599245502923751250580782550575082636314114390738751520026826659430669390183740286124502015072208600733248362177358115281209376109031944401202359199750522442985280866720080329211155915624179873054988919713730818888958295904494918043924933559870710839354459686631841528659810596713782661626365712882609775399166661179487095374100783580841437104985074827550203522306222765214528924887954746317642158041257358935520879306664019455259725343005595138894701013375998096017222472765230157500353572818240936834172388959280372955390626885057148472822917216110327264431709659325991407708316503506646803420327495483929593886210846708053443490481029620678899382292556412057083876247305911935095560184190057023994766800603536661474344276581001843070146500263584064137368564253523725473953962428868747129658797008806545594377513179458592393867985187968117741952589819618699206989302235218679684618135386964808806812727403118206085180795506422387941583097265507059795503612004210688420833494710377251394809461927587626942441276866885705196311502424581498942088725558901003519728743334726579721396562287158726021998943796571797954409343177763780435257011776122232446682085334634717191502353770406687264554612287055678420574325983266069882713760363396163968631688861362261238815019244859434221638364961574574717632325851690638564776415116405793079471010912238541805822806268364472893791809941872975277873769323194611072651192793750515363267113076548308604738869067361481179806501486758399476496299692121700142893708937213376490305591521050852696764680104428952412002226998165554455876549141158395227370076260098967124774413836677196666182982789737691865195765655525770010872488564554763965905997316279444052757555126048200326426476136118407816849558614433435577474554917506879622347220663937808675328206189180199508108752431436499853756926638118981084375001863005234706198998582369085516547906089677174376413416809864290633199628795782100695307300533992685766360874059157585272831073165638034850570392313110480611238627514607438201825898014803677183980590646715329055398078433800640091321333533301232006583109417349009874266818295379651688008985953620941908408286255983036582361544596295041742193777102439293422077319710794890755721399162464509308411844774535605895751190234810559899346227736122699636535489366000581699277855250738591432407397002599461336750058690028598083026613318288619371093763998393850599250357684995500503933593442461891435600953519365914857628315480873970571943753735170719869898871612523604673146547943436644383533172621482729354035547056637962550746282184712157798253061381926691605934053900237079705627714647784800918867045867790689712852554133459797682573395144360095439196485481775152587999180618169792195404555275206308419556090517345936285539990013001753258981414084615359903622501213273649792088150284224789787735847077688305443577040123099729896310041342092362681169448208120402848737495457774084979049414036659042533358549052283791911638125718753761377923173004591846175285603372711616733725966779493069270795428070365103836233995511511635672471546194335380544510978508167844013020404748370403990641207270675164429331062757257251483993439878439914330170899469350590228063105330829615092872403682333067419864686796424730741046885214553031410538562348746214119205588124716341793753805501283149552763299510355897753773903098119680951458080194379168049157333715158188379226930963679123297636408328758560301464579854063290183249240766961153435389930809234873141743160874095035497195793484799199518383112336415598141827052055479056487272700519023842226767226142626453131773874596417986175313259227096639003998554517330314254550865695197099531897556232710764816301415542279617407473649398823923725821087130182556119192274496636586550847387578020314241672333546039077279268888845086204757270555056710310112670934907232309946673038712463338820394320784060898734443876141600353512820357234234192767433201534471311777796474558629240938049085924991700314910277204585559871850564647618920697477430034102238733568533868451910094937917090921499490536191264359646272737373875081998821716707540845305646486187822149795194011684948104431155695273689141043185943209975556144775575853418893241398407705422436607393383875422468417681741627588982777954673231771861981957724996162766578635814128450494149123978834966997322293049747716195350075894139580360502525659770599432106308451466177750858867931278578142045779191429295377677921462954942815379491336075637125355366096016095742141375037845946847494811686011425134921663909008719752250461691235264278992756319694081583182559883047919211680835042581503377631874016595144351579691849799973698670406715024184045801743621147070988863671963471194920223435965567480726517736846190932638825994278856509802619266511847949617535124904579235267393269024289966027411002175056439074295526550625693400977226745231166156382697990264351305693978777466725957562239107157531113385028147055947072360119309789516102968550703760852853101001909173469750000810793831629419398796641326710088463936849927694015498075094095769391048165385616825347435401743750105842588656491582344529918880666082633109407691711501384352206914666293676156457245911116009905127137195911456389569451021055584705380891044429345490852612181725121999848412053928042730351934986198874359701655241824376475971932502321961627190177285958607435037139469591553029098501483029186883486145827184731873603220142790298785313114512834012097117006770321990399058781765659306976661578287761612458785259161335592310039759851225156407416230110072550098757127840266273430079696121734489652741110672656231974550667638497081087292919076161555391814718527328100363996040597031711338780718313982668805620876483690464981187216572799725492601783728060172991742561488277117392784523700337833686331956763636682254010212450860665470229677916192221498648051341355879436432553028883392207070806830283252694630893360864249648878457472827640781784833895386723509898092878311485531786392279777411969079237063202331587129978326519274845265730795104987840190042455263223275472467736626052757393345686990217451792403500983878068181630473794271394922066608220949729464677923229906404829922455399972087084663726905933626423524188356470537793971885574151197129163434271208374629507141243170528738667516628123582764477098739559775978868188687022641636651250887546364134671527288591985412723541449061668921170638685239018239079018458935283779599984833251773056153113855006303545829137082772241199022088153297142958638624008339104925905374299262071132649880245985790936671480566301360185503569049082360486215044031220318594247786212125997095481527580356561338937662069870081445351141804437567332322080397565389733914165150567955323402525629239424101589673550222381273033008025792900328115606128159609456174709532114530693154652539573204076786643368422428243692326231868624682092186024019160373405055511410612791264595406555830063022348801571830616253561849875833503767054147153563813549674089614917333657445435124983938120162650907149830622740808611369703439221250931151177204030154557987847477525891433107982896494950595212043034558151649998883779165163377212278208664157844553501347002350714842423112625607897823041872389788092887422669422442913759492641743426343294816807549816686481894441891526396074532525041813710365034323006666294488412263683707247311738654100449443653138915739927065972613239163575685285677449863955703619394586153385766731480940700790434700434314277049107489644414658104081778556931566447638482507634542978373649965869492559393779094535562624122392165987368468501288527605315043149324330952071780728999210360412750643564151334732265041751613757283082951739720292640446314993385975661855879509372912418575797074407860113688422780830996989262677204215123894528128740787240437668059793964945318917306109929759282150335769761809081105232008064247929447486698816807483185701689448445268478474542178035931818187455480797612230974211790822951402387692520195052662868710363084473747866825923629513285759823494471923876336759604141623052085850898193895893008655617238321663307488239462168147819727463293958088591045516512631453420897518130634122370412495899968890783683268081365067451375689212923540244976853575750379278799080080965995279561075126189199210592919859665458946112635102551196469218909017892100886448708770459078393721869528492356107561967757316501647073368022946242421053409724292589684190222465931702829838121245466124485672366091636523563274619327928428729593155929622991178114657991856090946900357532161252517100126991320434656449669234549580739056826474694733126088438494774671478989670643063957956084809416286077790666231658542517448742917315108431229385519839695838122433902924914571112808518404402179775069562077470034264240402198939055926594398722709698741956502468109064029853883280163657449204318360128815839272514060301216860310349480747249339476358844599688232881117200215984059115251561492520680795039373069052257954214045920961540394394008407245567885314675576452049284790211251324479261173364248325493858814179493285236687050384765282140710402532931340376888241749506379845130193157818825157404396708154278236202601315656659809760414800103329924825368821070830448887200571354249152762939859520329155209890042651074401840802824329174585982092872711117493245686006363854671559144503826885713274339027110282109695556193226733503629978251474414684569413964622431430518569698157004704290101365637632769257505473999659747706049961711517173479164852891806356029954228151128575493413597043314200664823983359543145752694825398026656934584907838312665009351793953032326406658124056510396784306415948638639487841808266039179572293165735904667988915560997672941512031292314764376055138695865624836916448051008408974185979091780406841453199377334417318194357587873913463097122887625149280327699444611896061013376433481895230986903864524572799998337888623633070672828682533828887804498280900178521011589034056101958923399413756254237290421778007662622078904321228733820448519831203147203688374998556822299745445761049717138476317369245887520776052974519541439573505812288686277372204255666303432858597758748529355882434835041548541266006690286474305280125361362773870349017854132345456170606284662910270182822458346009418466705426527013864042754404927630605603209082922706512610728414850909597291752633170936518281431015584772599438850202602658173814381139534448651705879252611276394328801612274430041698250786899353846155548140429787980284498127992998946361781287949276546137814002925866995247363337936749535369667061726048315510259745195710199101543424303367794704919086673060735191872453534017891437726558150543484392854012508703748710961893184600404060901787010184045588438012829135549894406364107323994760304979286994867160950471120518115280580201375381177636890771472740403442964913702277099810563791424478804168793772318834213062962637873662210683458110695163069084744631710533928990510507572197127487249551735936502692718210125232760508472039975592391397259880147963545883234694214786864642590490473086718481691016253000014823863918154676279707289124347372799748151590672939513768529944895495214728427792002486124868953172091362365568118815271289727177238110858242252772248376880696733034226136950825333835256647545138076094520321928578765020685979496505483182643589625440398753183712603321861611198362944372913091367358625876630605661380954266641165084260632273196105008290523878736429136364707392780387730127538331396049458382637347339948944314650393147038097953087207074516824109638997627476779699527008049474714933975081386583823010819744792639635845762176230083996948197481976542919561319673458589582265660551083941821253817317594459785976040500735065705162860970498992083249574653489239040392572548188168630138205045158249524087316572170904865534131102393379678106801250250356153333841227342869168467025942930872245538522858981629220272605162214613357550110520849140471894480971768758912498347495512478574736820084650771539604537742415756881652180665412526739521781948595211576239368904598784128054655372764589450555477014843911019416623267162047838033053368359740419646766878100684279016667033841297528491167648310894560095688736021748487371350182602449129412154331372395474356219960922264961590545470294159459805653332842009928739186167125308049420292100693165284708865864893597269608913767271803976194710504086135134552949942549341334782673174386477104961501776578451236886151042934396466966196980805926182007955810433918520366130567933337887926143154044714237885084040629066304410669831607955173221837372486735382344740563919551684960087249300554985246427037198013200185268169898285552752850870956014826831248403235900086485596232622691944962171760037439144966172287179522476192047926591990735047216777089840958214764737097358831613845248368163438218875638425940854768238898572854359779781719902044093705932288450149214925016851691934844212405304687068919790061908224300104339071941932887046868084103120553559975980453160892480532782295965951356534794153833140811308187084099998441383179552392588466942719403256873365782559825382993737120443134941668868357161455825504860037789728567475357175642258683777954163013383152536312590605016116997701364975370174978668069824752797421782763011890422797447827475180894877137713915271675799783969026522026288175815052726543291964706024009057549465219547446014220808700100646434541449008409032323287740831743054164778526626251294649528792660315985116976897329573763901057411234974929011277573492345172881616754865399799451952179369505941690005728490238520515058992891406241808420919544284413563255193384642405749608206348481820488024391900995474885652328763469839953277354667457614061421730108453671765605283898514165522348420837219271124237239907826544645590908740445323822297543519007937098362809320175931711082708965239355069446711550216832525614287281258001776814716786393016682419506166871669850587233768446910598576526371748687577580422039426235225273571942715322521504454558914005058756453898014776169161082232588219371873048223229733071136647210135080802503498559777350507659445681293587856204231539120186741127908327888793137169099866997783052200631155205078067894647343264281927355249904674628957623362142111677284639753161568059412328078712371758037420053255588331352034045584144056665611089599293185184729134478873627575726361518367577996949750450830360169139063559681065691242077676309131663162098911241638767250909254608976416585971391123015268854249293418835360401693097964724146142949306001848594145960305104364192441771849646570691224181062380171275731931563546189602443319636002840167637410615511030417766402736668728037664281164965120087309501940635794783925819838383191532193172490143530669280400144574559184030497285912376262360201636019047184588377266360071657735819189608957945663025283686594885988345888222728663684218505389088290456259687873572453786472375537510523558835352644308830212720566811476457360850707242913283763530011642018995420971913422860422812259832473712095004063923994623617236045302557809942894141518191033038033989948339007143933276512189988995157411053504053217134951068623766065078966077598652106288016490493600781721959488478400901122561701879699963560712445662026776999240412968099677060862681491671394067353149877621315770262847862819153392246176901043585961170295546634361808242469231984049250904200959378461039841243653895681620435588481508947172959662484406920319912320874893939168191523716298794825433121755728630970342916731221136501467069917938416251520113883502708278452798958140163191329142293298564650718781747545987430750978409845331039624220389818907498529539798998282768609826996614368981814538057905856719372275419210587234762645410124961178643208297084248103982120266335052646119980518633147793083795656162816749744552650637905479518683444014439308311629521283139160138561414258371753277556780915014376159944862609225629933621421925557571007391233885685241497059210776293651566618781092716067067767183527684385024239956576078256192379616138585608962125512323664925621413286816259514397274923570069395356143560384336191006065254209049578924268194489145184871687988259375767219195777109098706593999850975351765488603384938801467915508263813712560743111926219658216502059913977862502016946005184442979223803952916425192842847215132833265768244761462134050728776030759307219573669608054978485307514304330020803293401948429930535044715635287535906544632721259078571617921262798270693044362330209213164089042359102452943962565448415863515051842493301535291155976916036420061748505839392508564390656622617530526085897492593429664866446202915722640332440704972602157347275312008599784278378611846232963917680153268938153032962225961946218009263178494004278455446985874147941190861918697796210419272890669125865896304317173370936689328577154889578126123964082163332283476571258458909771155160871797030273462480004580440359921370290389641973848013988124405601856331711238002066849993755113650806720812671426477820996121833178105212597824104504510176033284431614698239636925151990287773997201041870257394024811852706806472270325089821541304300178742987077412847225736294662276389750095606166451886244449961131273408875701154433977806919747720308235529619112670021140528464944069471328575335295720051617854104824402604399764773675583220122742912286342520624508884301945796100796785417497392155040968714065609821530645603155813489034466444051123522777531089501702938417586264830909537315617871266669410370584654691242004687518789203859308051307036804160071330822841326272402838977959252284945267350640464796255266194421323051296008988110114458985958118438529148740977315427317724962490199368120478322277486710274222915276861664556459560358004228619204145546000077279876159811530806315720174276321934436720734060289001077089396615328368269381970436049003167230745924077393473930910343606240016402262633235397341025328396070228193093413123987624981087756767777440312318374916130895236794481177533903361505559633890484603073960819402809669116827414539939349613112189550677919139015038156503751493503709689516894976108401921322408754753918373680886445180439541051292645786913023943208235214374350064054268702028629941320951366644879479677972779963525678519846660058570543191831281998643186731909324857804140967858303405935780809337119201761955080522295791402919136167645446217046786434331262686962536828187618044451331960685337331800753398554584675639692376640221959264133283029824908227023611318077258043735874439431059696501677262956000788671924684291388923755650423423132674530580704346636905136444274799756149636567673863794459926782177963585197388232509835307075635845824134260066238125523139533803238419361352721770552295156720540994640460766111382708701608085919011400534490475349090039328322459844087101203968026742301030413630334427944404928833602264392496787747098267085818090174725921299038977802264425187264584771381056497094515893530629025906466499230850610270175622981320574382802030984782030908668719258825723862353422092157252122538824713794611926801665049771414500093757140744091480379031444827721230111933046441082083847230570227989295737102422311089307363828286079582586905459340996322061019243755224490507078771533077897861464224789473028098355152805451802487493536914147683498239446468813948567350985560825185340032282474390626635995304958786137996981269205280888213259212186438357088714907284743592800166557677134590270996887874231470789103132344972310651823839379786779211437659830500124267214403420945332174317396049981145778799915263637115381137637155002563206157302275573577994349856293784100144112241565311658477238785000400201344145729423538921135308899682859551771775110126185459122957231513283439267441859537753262294574266354338560275915208534928580751136633766941248118000377483502642870268135519484897146699741194487523470238531496269353994812870367736569011431090379028995368939959186483240105833187494459155844443067222574382583739604453966129320774264637520643601209891231125662526637379915741488747367176304483088919014201727369077124209497137713268474259462277702945448986209024027723877044882682501387664573150223704695490091045481594592946319833301701715606110788978751478348853054696343999879157504724793895025013544763513570937182083373697157722735257561047739765130901421879990036803511597259951087595449314638201644106611378166159505980587572448278993465809278351500480099900750924448163276065360454118827385251473765238699644646897980662283621346105664569439084145456459128303846320263858173015388834796199483489193554415428765318074988346831528914207221607981460137210101801892455161435508098044581268101907312508157469156312512905691198122608492438081675830123166823100240777385024062032913841220935588966253352577620336658497044017767346565734664724002255661346275240999127813517409388787159043835540470581642987070231042419547913970126060017899831640720615506403178465363377040452743528797239491536721412944534955376017301177523172728543624931489467994237448207334203524821645683578406861383343891608463361981883010420659766784210751811801134558397086504500929419013019231893107661568555716446259640853899544656015312739832705272304635415122000894224758477446708294443493689759464544960161613754266169061278149835297487888596525992935516227787731145237415771662057879808458630539609554754187843904636116834229957569931790924700113530663748038960150478125204007588360683578952743669667628470495586081278306541094077222274420877230604803231071327275914194395245538486929892757881139104728300641358794105190062331823541837609141816154881914620985194736574706747063364939393736202252126478608671125982419126172745839921900334351226138393655586198016371600023344801581602703323800416920218995542500802921017924316449509390892930257696699809768255484935456590597997405021928261872439175538279419064732742222895356856185504705924971675573781683620270064065732453437890425505493596092966306728202998244457434783113674426595475299833810557102489182931379162672096863543794802866133048287770621036716398261793701568221720418753592175902912469794375503014355965343914219048823778261145153115756446163078090419343156674129742419118903601980232178829473867942639200364267084856938084248176115958832092323147796974709746986527412455515844929819185875784888702710766293342478318555403004043003181865441496687239047829315933184414886830343508768600171412563363055026154934323240058117879688783336681746741746669882663572362044237367759932197575169029465222081473716935845715455412672090359491885468424191144942580874507705574868389984556731925597115434709633989659075554683134953540942312225167335083804938469574809698939573356084141229623171902968228481712282698905104503502665872990496803710147772333768037087180367276355425233917443176891919501069883079935965595438407189519275889766350235333705564813574330123247139335432340091817601393130559769935284713996184211081673952816465050291608529705004989354693793185113903969697177218768925225056391813297295694124718475774010795643543903911264707111507003795458380833330048001698590172536125478794942199107045752091879925034093665865332408725481113676379880804355621146870281665351729292909499635827633077899099502874340213467070879725807419279637653289984588703788276010797370472746847437413989622395569180337484348216963015943964586934438989551993105055540178371922400562978758157214728836865810425043817607281730920358985004741786356057568121793176557939721220126466807887205991600217492036404338121453024948061390036273220118621739770281747421232207838572145090793875740135393432010265624026045442494137660340512684212193545453981803137744584548325174121684960669540156531247759731357929923776590496017033877118732503813318542881269651300861758928510037594670567075335782800636019250545813391116597559916775775972694744243385258859515558891411294704945828438072320163693148214263651789010459493185190533650084501573701573281567774804435476351787837130555766794171486364021572979659921797736719416182266480823323607134137848871593277234814483786505362630518902658069100366571771165312292803821887859350799455846858588340502400527676499781136468862287702972936170866930861944848234166596792140676039570485197635518410312552541340647456881629300915750208610953623039132531714077347030442348253025565123411988443801997885021735898607401622569962823203070791115735903271637139525664730879275007126874274505004083270784996218274139660441637104725494745811261171280879076592075792779110585519621970597609287048277198448797111894744523250778301734426164440139686526549586286651604341011305994182024206032276668374787297706677607527972805145692733763265057743668160670196212533987750940141361419337307634316690770978817708848935463962578995351877146290860156189548704832906718246822174753656809530190511844379321570400294880258108238829912497970981805764248528849560646247667285597485054354339686821813102392994641018812109301060112078457464375947932439779351124877353100777687046297738663830052290421343925649955561637841464777038661575504882434380170411344865284699578282139459041086591159113196165081730561360115769286719212130525991275196971456656939306190751494407996282197706079947815629816297702113125166437512063852960611264868110091704386119118562762788263194549865966922545065350441325361161960291950040390271510762382386304941348097431122491777461893839695550460979440270933004178819261512104141574166786858423303443226713240413233648217976102966397146882478339313064421624691485727983182967075431175365254308320937842544676911238820815942867173709775442918740136328158122175629606714921204609459638689189260945429173321779249991417261617833638183337916892823996408656685757094315210220767981101307532731310455537400681503080063133882692681320999299159355949787170327649882166125764829403432741626131541795014410972814691947988213719365217778014648495193349025804192165901164112878972074220888082313179276575158141926680802339409649169283792247542483129862804587669848608439567916523974806966944953072062493903688108710669376451773593239119200874996326390691875397611905753545113934967932777386353998616567779933792365292257736912658627403898024353725286119850629724025630315188659482603590673637425033695098628347434933881721108860926509547320889998162295015734730937246458498834605973299526322924391117711662369864530065018151902086262842089471372861437064900131670867834307779105829735845514997031093738368767918085932480605875559339399950400797019445205519850995596150772947041454695537325836046829419665508149737822801276244960873702443972954583441510795367161879037606328719328600554907260893306060294747838907242088015413259336028542939210155676593658363316066086372251414434752552884148892274963830902524308612940511500544792114614461487390646081452976862149836430651766490431708400734060842908144191088526196950536391152972454725926820735700984136351897346258632606580483643419238317852865184050053924297134017563087084249653696755138849211813305500207605070663324393675408740994782449494270874277639448315506382044762765666286260981071878130680155278295981802606723534420992982290743314915508566990285884735145185899738410268462412200734706943822196553896856868834386644443400057828774565044974023771661254496085672330019845881387837209821562863352244261764794276942836694401751634560676610438544420196053937458313481639271609467027541776891268162421759173649396225041757449655163248575477099444493902216124920828304585607616185813465514034681550890355582419593226953206304031426991695899297564631594097743487780569511914905668573793159544687328519416721763369230236787921196039239623577297545091703599550549160224791521342565117001109720350707336179979398979850757419395141838110787641502238923781681036160795579826951024520648199082474749737290079453867301182236781873391918191462192574970599655121627358671318997114459656325654611647893614115806032562216173334494189908936641660879516844441389949993070767539726378807719057823540880741711586897064114486157105505199701858635301801521839737537547695943125736588795693972264860633779563343888284468832988443443416339846405589125245848518811191807207558631720695288041184956257835582629278957971032953313795694260292524468120402911599225973840088058023601590688546715519543567560136481309047743251369775526741933017428472113448117605557214267136500437036026725611966055812873343185504964292605034524640835812470201080882705952303906134326392489845333749691119937967093792316194740265114841781666567059828035231169819168367404591510903432890735417826190897803436816990444036436081237203672584619591104481471608047643731500227045595862548737104513339810751164127583807056680497068819361150372416962253970032197847057605055185314102298767222561234177638164929781939157761911482225319037726083822180494203579130836118136206486712566421817973427851903558353751026034343079757413505934643191634787814521543668877922102221401446649715754601640576203809323106400508778501002083635346603325682196273371217803829290399583861620359951935643824541946085191541559650618732270019746436407954748031082240910875588254600414505004700269249407151168758978303419856250666484144240254069730987239537766023627800425677145569123202010126660618918157874889138712538973689890519191127168123492185005436395795222908542817683143325674412130056600954390476947855308105521992989322811616037088490623529664605423639048047249156672662221261848004507422063281672475846586966068217642424362438100213670646347570637835750702209661958761084821680760498029078216121164014317259875990695328731000962507389394452289050730478898264380310131317798479224943010963752556823848430010413273241283927931539504991662324370390648788180644865718513059114368863263680176390673808395998485383181100030697757188045595520219462872511006269688323104544971235782852028190790550261572164212409170746077656409831384910732609980352583670686737568717138236899670572319459885202827904431582472582250402104772494126666164469250419674551418672542202734701324651208602076513473917406102515357064417719367310598686823437021626082056142666733057177715157050401663563097170767740119083158881611898894561827607526279736940328418950699401527225478279133034941293908917751946848171711151741684111100808016495462493420813761201046875450410889047806643408206584523412712508281076245284966909012034864757703048515988950388694304313495431164997913230488097978048166387546539336970164447916157544665732832484457946716368304652763987271051704923250867416527458107771318805793149615902274065020426650831396100419266834832267437590688640058869965598161621878097187392178385517748496307162198986923149304501232575422484450785141619412467637371479831324898483349516392527185322943305765068982306992054181348874015110825597435842677092979970986734334596284647079632431980708421154765502037002052981059031640140411997370255055944118640748596641380773986608460591955854510106621951956212720468280300594645630312001587724414344309337346283902279690002980889976721780009774917503041676426969655225657539160256188697059903069939563103747098179708116471688071600857041912838874650315863510185182902001140353404536678390473378379303314827889030041570210606825673227479939924137083013685836691511436533121170476149967083181704467575723069257824869517305712783481223304608012876070782066146070561809780021960056537062778064106416609079054938423186498294170283786912041856813343956857606595096461891026040240158894273621209010979002186694328252525430469726989461227172889536596940178657170682230739497299132604151820697890570834803344123637733798869666584490383296238247954188854133209527070935071973119594373431647707207570258437171135013697113494151103723777871535278558036850599003436948222561260291779907046381510266261011526539087832978259017490571990995350332707933496527647161811075589150248527806824799099161683886332652885153630405791707367821063993475518475103299403854636589048605486449186714199243831318547709947450854804127603436134620284296838217285739082734603639031546639701271141044229581499225970851714213493384361362791537826418480162968714731911439120570444740847181813759072116223173741880268962681059559878055775502194247708982477704280896124394222755560565291311740297992856505292139143951323504805820209180238442424336470595799406376258809126930536909770087773758784162235844958277962500665309420513245367044133949287683660273114718888818658024694742335632128051184295507556809728685135667965794268642210501852977413307855987734087155830885850410353349917251577234107769038168163135681510288117956496557378681637045907955077826286834404110991722305082435916018083693490283392458115672493916071609922305811006457259249663619058335961503676267682198833570575060270472396213836070832558844880617175296769480839931299153109923040258888481128086427270813257188534812493310512201741731389777728774288108257715403862596836673886959249683455757833700492040919255230814378482093029446701247800780411522365664163804852734374202273253226040704754021853155039842819403138783352505545252679295294241365961543974984976016472253773780973356784548082428286773069827963253353867593790369407721526732453620231460513948338839737166853820305739413779953978918768143708311035641304557501720721959836751972651105926488363727642032083132173567839518441447168558607376053661110175710729202188967913211322739849604320823825043928988008849821695801691754808898573021310584109443723488942042025708214047271665894826698929754431689321825190041023303321998097745395643474677295123839857804825433436766869262538397370874344100050736638460098810687109724164378140050485962063763576491266337615721162323034957169505535741485098052859253416278500135825968562214739723993330656185540247595211323466276563561189846934812906480860801472412126884064129608565689828483951976970694317624510593562309064255694672250113581240223384126926194338681227468023271764742430377546974612625639979388591492013277457867009701363902044483015534401391766562847232374051948842322740925094980772856221717596348576109164953451244967858390302692679831962831390627664923471485062450521599442454980832181220237602860666512059692329740124437149172287283160369191507857365566332309034821245199756514070524576839424697741146277214950601542298682805856005463182373224656988247289962077687236568298199985367387248409831578896496546197512826574783415033210991377852573472295661524284895776308989663724326954955358773373843723904762339123679660973790225185614754042448075444198482763655445496705030205283611491926201565762110373908549872315128053098022531772708855797390366024885811438081987333430280301712069815539798295851026516556878459754368856358446858427435288079983384948026410166915389053133810250041401981103523026652359898366951135236834310676405514569770687903905112178225809915337877115579847527083582933748284240892639950516081313875214721075142043558055923361949374426276151693609526224579352279977452612226064830509285214060435048922128654359504540300806942439314767577430583463597558199497858713671094469965903640891564747236175026986547642005847301633237784809011995286793022730852951764479159720676183667587487402360370532097959199496924720754783439387511312387321754562650358159863227847100437070323284005996513460351441990346649271894940116524012723189033551703215509142509756822585089286007728838367604246594254668301505049344482689195052304783461324997377807783762380238461668727240485498156743741377618192028752830955155994959645110507304534841152581634767748063514555433167697419389288910205053051600248526279397473898958817825447108102559208747234409573942940279106511911008217557376406595162050498751643304039615181313228697620034164185842625461541422991083010551998823883332116843791441503507953787179647681507163378520301513933940587943537022115831721396778537316476685394356365299523995110362556299247175212026037094531113861239753511283061842122328691906781822856900992087170872301980490211566969625764038064154620244969223484386385177149280871168924114115203146957754261649881362645307720214405041887663223700247605452254830972203371212008526146090927817706157212027231180072000357725026263462426750226103763972671499395432788183688805352602442701328176145071253578899980375279345634795633125300200206602351303727910151718605634438144147548609617194264410664125239238741419804608361842891446775370685942550156291018092267185492952792069717377061827022269276535113430113908289986143326875293917158333818265138796455790375216274949024809517572679064704209678019071887098618768376948728499725187243851159706166340884426937099393023180538018017072825580659543445499348586214103686739179407697351560262145466785890608640572447061911653958076068218435433729221446515435470588030760771832728159149278366535301915640263990033480298027711726467608283594886043430268274009035482965124954600283031055091118983977799038303756888735084722742830893347338533393637394325417291869708023318617075849659319413367816307596163592626865879299097460312404911119732828766253919741048087448719669948905911479017010816765320748166678880654939455472028917254574085798146011591723662686740599495921637768193649418062172786144570963508558115316427718529211011815796845412323146444753007092121183163619464820294257346422862619821638684347996523266096100154848325531358323099819175907502606011021757170823094602569972161107315863691204724789389308900891614477217453184558291922977754700886984417046784313107827835864562588599436647509458859129487627801561289594488523339481965500090235847521617798608097718625573294392822697436588531975439847613844328188369335960781387649438731518120205574777416428259128562921883481260596996245477372672236115866966977547829397003800054187708946727652144003309597583526335216312304013343332284880547315244173855952032223198571965860445570533955226440578329431819131640941047859414323043060625194455411810097999744699329917613959282160645861874248464366696423344155053039918221263601526784441424011849589277674993365909999743734822109192862589879289430502682168738538223279758254952709980683748335727238908872660403236830858037758663773314552784516782370608258946996210838364902989874754267146744750681508304418273193248786683041402698229675999820803250069187314623022346495826473837972011198870242482757654512971756095762371879910815503300917754031876912717564954957654773131130030022136452151051348605144072049550956833331027501395490238660744181592557820039964850422423118411436538390099773920091264383425346393173090518951810712607947070380446805479746211954117400918455582520302177411237464325832417854848090216373402338424478523672682184801998728543274156560291980229815049296327496162959288175071425731325374281033282224528441958678858927584841132987720639710582540732474051867353872108853091771858227210277366950224901813975871871867908923424958580413418263592505016091539898655279086934233886673049464388788524691204063513182041963101958447830386635931648148438632240752754867717736942709368666686529047456298665783021796691324622228343023620375167879701357645989881887230340968214386076634781436781484949540402753854253356550924008189452580358806381072110527625612088065763428608359632225745882827685444706341333592990832679253460742159590070843977910382602909965602436591286123914373829042654611444363078438983763840648897376262055261340619162341129663939487535023636658766042521448378239252016008416502808285143121976487270251662508639783003772363802958661844662730852566201140602046962217834274918381824085129930599719203869133164350963707224849444517290828152118493763318526557163400633108618581273495693190223046814948173540066681789044677179738559766233028690275825808373676225421868441098439969750350748709221618306503370833041570615752137125954152552307549120701554672818850970739046759853551859955234979140614533912326229563257830108840228098767281285008220970287211414198683305098537833914363668474554577438161634942204044222235426403120723855587524949966226877693767743338030386206666227248480648587055307120155331005523021771833185740217228700034850381598791449106508691703659808372739807162052116460568155146706857107279477640569591489841838297148858195646505120348651504444726688330735973816676630065339472081456982687261784478566038339244355503448734712888021675181801311237267534750826089471797171181264471495801604365850775208542277764051407093351985574058006634792916841917193680369385707320714196983538059588772048238968681470408175038126029351216944875805419714241398855575439232725882902503454144805076836016941397608835804687293898230116928357006544748874586581974887683843418740046014265647747998901251333660212272677245435135643002359796391078796947343341211036117955493869714906286239871249150477113705944154862665675154283862031159099177913421485409348784989727309876257910147369779245544280374838525057032817610225177678969642514275570133714864663801037595973473852435808819079991881905531734351554219396825311064208775860260131446911132967222338776986032412023824013772272122490368401515759451895630903385935147989915660543348646907793422154536782872899257217134933568609472013448587645859219089044571023251997804074736899546397943367749401775459057438465800562941026112891290033694151980724783082743900952650099390223562336395941683450222308571858319969257618870902216843070449380164278772062331542472952112751571290520249807023249427964885989789876257462331822686259068251813029607913054747563754448402783038867290197288798185392562012360736241972360957795144620303794046293774331681319001272790370742119987189730627780218885080519323405943630199453224805560118104274263663003266076843735038207072948911906593476929617753793044817042112745400472248119226073339410117776352579641296881658429948692674536639384742173466200393362834711252540465972369418125846898513988424991632955168741690580505043624231760511301969399434857255308581134447481356222792435824547143759793962378766263502993079191766985428868555356516551992972917641683816358995023657032036328878992674298566965318938790553004003878332418635021027433344744736382169317156313164980043088669468484167635910673975685995512444541653078960864987240315799157765178815300241876574773031736395496135717650159630174795615782541485597634896568651557936552632600605400121164823757314181540097682747945852536030152348937076614907735878347225805162078273142447598373349772903606218814068599873407599782927596413703182472235733667594408566516516576942078000122962037407305087463999292378077793940407105523112052686682027913981180662271511407377198574150871168488384429379811903695230364607629991496202898614727818674879708989440388379047067629376533890089177111886107599325644861673736030852451489775380517011749192551843376201787485971076707486285565160719956512721681755296870272118125301206983448729754597794487737988920956053284929961473291128390566524541676782778984264603674710401739346887285121099341108576991736109925698787388709289565351531100112103685253263442340365734489541023916564864623929924349816341448078749668874493015494166818533909198896748633910881744535753995187584264066167239153404173434036469263418308360370363726498799336563750077371169454141496678071894004043310843499780348107158424332981998938493570797652969989415569725380975027813606147982561297780938093198455506877093195824728906667301921264814814771963549171611932877553929688291016894014921366874765059659098552578525087954520037589531379704591749622528995528917564089025960666600569960970078520131303269493448363077407801127174211019386905667559699534382498181734187575061214972021709292287805129008071955940390582108122140946803619260390574910255690164651354989898861625269804760853050971485907034670248975757281958481826285307854327228352829205033739845734166928843274555802983812729315962177843191802509270668105754396954858445271003301265262101141184400971138319181497063540887548228755633543905624011622582481766531694575755435179006297037205430223658728032336013542737972887387309310441105217629117169242231735942453436106986086135121175568868402896600589897588187857504743083754789924820880958020633190879642724865811797446682012968313514067086450796128822653711744359213789256781252130284746005841123993005275423984004935802736163854721415677263225074649761424544807407635983333009401420300245302681268413999603893198582592023488255849392619287307624829776564449914150102882376531635733878222546660764615515405675348855014089675856382750249168869863626277182874062752980513355439300376597314362468073507944410214471035533283701615919844077331136610885513553921359605192219263820866216081329051334390922156351094383968942656024773103911834927475287564547483523253249550281281956894761437470765355989584824337473371344972278617017260204366279931000076684929871051806126001251082012554257185798448085487823310996816920663876938760230163576139107523931443252542073882515851098107051472226485174386935136072846488489170943737453779187692575706101886433662767851775598456823638869434477763568626545538806891451067073422954116055174457377281839749425160447520943895049072640031932634892495981785649233339721890493914416762595767274608157233831948619389227470956206059321400085124390333501147454989559215832640048469620301985756817530957399627573412958287066967677907908189998413963980108307238369021209790700199249128062155441123690629900434599045736031543131716959826952815758414258219426673944417777464815011395989235588967590050580521907357230217741696542752013045756143267696581078551572452635556420949066257766483968398254638009373578167838868730822611746595379847738444161401039008449248845997295178749629272095294048090199216579072737891128178145364384638994108966730449822153731935741923570075884938398030081671036746832464766176530614972160372513455428498175484859638636824492241032196027231772534829160893316797800943722156881659577704001529545752856397035847965514217563206356835052301810908427090665320399817058471907339423185250640044351027121807674055655498475328616476856003181738644378507689212091436527451022639481002766210816817176288168084005559509638654734947291816597422649855859881855391052309621178153053674164941371282465425861883874735369175299209551816093072888919258370534614632214699555966454167474090572684778820490582128515856837411105102786317369129541734986060370971824456898210005447021817637190303286549476264606308870394292967636488474443463524898064864058184117833449626452271640980132759402625349726319385617677620297785485198043190431058220877464849448079381770264464504089093279258516938122551526537536424727052146206947921282658816971581597403486083806637816036934963239435874156958110592971230149341141865660282016240160434142649603695267596500416408022321050868865034792574439250099644583725098743260826409086996458859525568285888605973343829195659537092017696436202586375432190296817672024826818339167661668168012019914371634639241135052730033184203439507401377121159452729247651351485470325642428006221915644638383762357904643092417995327808747632546888777570051279894350059780356707758962914893585494018626663384974534117897017312503426554018552634225794518072677685226076688335890821525204131188294728755004341110884054563022386204200837130631282127596490311837095678812106466401139978036501310289967947289880434667440831734523329667088533056636109677266192534366963828786042291684530544843628997996635684631549257185159014434178463348810674510156308964208878515070746355417983132986545758680143620198137349449278162556122994094946288482838017150132012238296730931282092824106050041839553638693813890427762392172279446464570279680987320773373391329331626500097714783312045907392905258014876208566601885195477648762692311851483613717227629047950836069880949295218177156782082068824743032703504582092494889020345849047141907999822200599988168676360840152474338464340818076215459558803162085797068574798944249625131141952870177948847860906864643715041037455013055027684514333649833400698777825131390813003754185743599958811650675039587388090723064536895040004763584759442949967297188347600498894888457238007617585535647520344805725372429322940468627545150157858924028214720324511698338457293304486523355955102121452839241207932366015114044016959184414670097216810223253579013634513956409465543495738822046963112733633687195773990481592879712231860746235153173035679634422866519083477135178738381650155877262465018642410775400873673414568377431738665739784713480848713005667872464893960045472856792894293406136930667582729072559024293825159085664682557533741656858921226689555079298278962154007682368019687752553696538773752903909503352625736463641885130290098867217703330706413330897745264893662207373887368972983579816923374544030162978879055717488545860054919704800312512788580828761221789113160866802549323474671618444791354069266910908509533979483286071681357535350736160693463513366788950715457573246537932173772874857080167550145151666889932036072488974719494454532165391231634629767510965587175720744505380790327495547886259056135625153161910237726705947269639016686142520395835347575873199676712615448520389666180830547614091034684941685756879400219258975550780858838769167152609902094388397503695286443989150405953799366047644137889436670040866791069779400997825235236048751429812714329054279206345560414043473795405500464250856946759877655561963650804467456735901328034941305406786792360939741524970849084938141222718021706101013423626454068835003204499731192451052126567783637132324958397725965366645609485470832560732819486894109314967908335061029719417140688550223966084827931611268545170892090934727494447994728263947200638311852777921522354415822419143504169695518493589903768448092022589402556571397261217503977643856977351243587706483944868224368592736619317952367353933282754203753731569462806699948121728960790024945419853664122804048330826688489671762505148077041290003195238496192485576657187130277311563538271393654926559322721597093599982689413018450879565911095310957480346149630334852149937355651168439838501104403054946678791291370935244054872875814037950685533712538174095844964414907992203024219085082542045814984749203433126890916484007105928679649524468687599938583767448752491695260380861283930168063805327648190557579062530088265729190698056678097928207148239901784160859047423501895116278629494772264701568532165272461337543117665213120972414234285725285790933778533836982668873345604361527967980992071737901977479058570441932791998509094219501914820893954465972936042135089731316095613779382660942280118030951080964889070184861085749177725706827581672762413370456869396442227039981312225279490610499612222097017877316407550978086317505696932815783375578201208246043910909249896716367061275314141818645958203850415143598310824773951074417493533953262641478348603832633671956705878269356412994136874429335015407043635301441950940611565230186107520111284444920919859987447870931017326401927216703819796947136004679656692559412146748575990720145155576097878296072681844526518358896760938141074458559442859646748463119595324938672453749423722671217896209286766342250215525257088637972547138355579702052722034724523559764947916643596305624299565011659461294128736940534675371457035377419551805660269088473016698285151561358303966393112513667114257250765300723672185415246868518677494670047021771631437220102330289580480587142387962165147674097331711415441110288145583009481146064917031940260322642711458758604080343018911092546674654393490821400877929594341470989301538689704980668087749265783936003115673646441832653099524709505273270699788616393056260660906513757126935910100015705052627110358624840651025057699452110988759267959674929215660583569212148527961684778006096588107430879569846423201634480558029020832376400353880841138285730164859249850932938250387561952365226477317894044506933311298678331260676724085378655275536667545035594427716542906334520340413735910786445403267537154125932241091229586199372767084326276051834852792638191312544176710240818497720360178210574030243410801557651664946411624517469674548334649750220294003289142121167986217009659556192939644848760851100651146963767691387569832488743430792181628864194322751273610738283396682660238366821906111679998239474319688525210721855285986636148862900104114904078141606772710266612257366745343253898789027932512552866331675899953981938204221315762493906287200243233259897782236447182733320566035704472585839540777829888003054591590640701172681027962461175455419232351082061398867613562841630525968355433785184834470870299735912272574263927310055086225587514374347466860107435563764286690663045298476275079932203068561640525609080852565483896052418052354301291827072713566661883862942416332493219415661632260755403478433637493246468823703811378714322820728873713083958082428325874623730802679399910400372477072418988845667039307005125612140490993522204122207029663622333940037668808294459826886588429661924764776569612781819337720048431749663163201750716055335496557240577921690372992602480360199840033697169638478282157359748073362207333555981339254152410136865201796181517264653944545501891646999415229650968543164636231038535733174205773536142953564707879536335905957592487189920070758490986656919029810050352398250315167109772378964318247091103969384140033979049874279679264450223266099364459508111941699224806642833207252258653578526838900944776656825058033943770464207316803620079624745132161454806787365138163997355257947432752248718129699068178306768955670958984912210860440286850717676705203981352646292782966599358055188933465554347056232212465109966043747376061580658889969512321151721939277302253099238968729614870152716430869876047973070507767163247551524892337874512539251865220339836506243443124292019196000283434701462699233689437319145124329576368861881666007991440096200967048752155799335026854701686261847934300276870644191118221937519496494547807429063582809396791140708998250303136723593176900672547655769611362379969753087192681400848115622351741975345314876354391802160086248900044651863470937655583407196211063298399947942393632249257433536125074850157750835055843896902942264955271418855964050679107714233574634122090173071307251894230686640548339355609227859771578717727844026746963558444594636287713844906679065024549045339787105439221821307726537318337690470280040266926733396191163810246051893570523071639571002387461871018144051828156411840970418710205802949286551693494949262524890459679197908653933953778631412074356871023940392560771966236782748469543677964844173727123187843234013189123519569507015949805432818112938917754970789845689577354327286639683075519262041380713976029913420699389595112626523525366179871329365213078775958924067860372296070375452092377687308692298749627012522482325604306628363638672534193342605265197622710266297265163418224142087353223045744851323711180068181105694040159319940582630719667204592067322885722811473114328382465466672407013883738387734266238455709316789728860933965529159846823136960624613876013033153900883450422631984600613139414562732790151548936696691403983970952747508560918277090244564805280160589401365135936277742461845701495420123540247563902932463543399620563708388612466297337866154299191408149038237739504150093736005546791545181213467700701456388719484092190150689518743198603009551415591679623399998420243547536323860238740800328878491751751282808792963380617163266067069139943573658124172767872223052405685285607271571539364647289396780390657737745603518833895356839536942824206762455693068675587493838046657782128050986897613091107654585290652384740235548393529212230635219986730714635921080044607448278368487907497879086034343246191471056121601737627974628618958526830959264370668266006178029418777298282971456986714670652729086013864927795967348971384706180487350494533117497496068669331064625908357646936448363008734449557655613666496477111267013585741971409784556042746519418899794585121582217322822421091024948504050547788471228546612577650680488473117133529610080575101462758273431457885614335823206714685880069249111193179843705944756483410533617897693146185989375976823627390903033691239842748893495336112731238757583092037078031597502605284387686514032071469969975513923738771024523409724462213425582716765608959455567421640088666130493562203507716046059336201951218494610713963256414267000377769260854507188007412714626228784458710295278379599042484702022129230798066882530817872054298754625804984991773265685617831409445146616632890511236437412129797488188798258924188598318684257811198414382051657151678087100423761853854528948680927739032034482229969741790167645211532111093308910296294041801745907243906489075874244472933951434353184830071170579296373766739570222453071915271765811986852644496688980388141902369374342036898245095523737370105487632849335599880899905397070841306794178986010812960762719610744860525848633749978111556174793342286732125931448634848179141879515764262283434977123175713136080853254658566016839666143544552732952120096089505698923991491381866962011561119866329812544766942806108854535280317399648997611178984240479403049581577172056391969397653981333598189212923830435887930790140511752246334283684942378399968870693703576235852551805605264071086566653101134057184266622531997069861745200623422440499756103886300131868711814849520207547863137416447338381931819223926531345738567665648905282057010545870928187123762829563945737763198279619143165714150771592746182954812962416691933981965981584697145130347323274885431317196970846112623282138056556442474274682804699501526661047479132279428920705946142072165796158152257737060268679081732334405313071181061102710452895022153883731460215511390254307726764225094847916896941853530742138508920249089891480002284649845803208943515050051835446234071207994995283937391520610790136253275550966477704973930625534751689135955052264164286996755689055638808917074680252958410371683643074557433992306643547673869308825317265708565836232169621575695746380754496370611931378261135318848950080740766189089788747706512128045513358151920221107319940460275986824434668411135050084092446132096267237511892279658052783698105702949452781211339451320925074604449169853848397259389037159993690736890200228821749469324151844330835266940129271923998509313438029838599449153431361246508599569364158643259862534117242518647559770304077753098507123908287604065697706540549381338697053281541800583757459821471664772085885644141399777427228051359548692682306434809395844149704876605821652613440773834225884097326954343853495245876547558634512709309205265351302148579737436962562340042368420594813180485679027126700651219765260401972149158010040178724845946917792269989419324730967085922203620516744483063478383509905010135557998996810647472045286388260922058027758147103847162944614328208540437431160136140077226389762269187623353143796437712832180871201989408453723512801809596993841955781959431499892791901721724690709114397593901191730356694428215686501575807978449781003323864235018658376748199447261710945338050283677427742338582093396955232525582147621521739579306977762662000692493313434056066162393919875461569663681775346899657367867118332084558287072709619700846504618456849495520203176777728321392910114441540985465500148905270305264812040485344420870514529427425554691382083197272942139954550342673952831647570305229538400785409013835648829239690108863089574971767442997826390435992752720200071946717868244587783579166936017766866416565253931769875201244090116318181502764204459950297023892663646738745756032746064195881093915627136495153814292746277529940317407763140150443770527136591701083011615604627233418291864972855283259603714467447486697129700098609369445804156452189546839160933002285791673556004929340053946239681344175168486078673043381321067878204107936288873747578398260095341859551388106600786943662291909512679660743831177785454366756898615495938678958369807690100178990480553593165832709800618051874858603723552805081575945350508090932566688597419877506536945081238121002111415483687020790060592113652092538057624465971880268024206105619290143583056824525729154501812140536023391076395575471270815891015533352950604781719693095426363533884011308450149600681248239476552168304723126435503659138384369801949642182805896303772001300967220900575861767202197558190042793563469822150338637246174624391753538916868165024698332988660352463936191627453325307583360800324597926338966166739270593608643179356585329159321278101237982214307851213925179366355213141757524946360254603466954219413959165679629554390878161455002024382456767318379732241484312798810385113268071022792984432848413897021720956314560036946582688094883647001295578038640412563743236657668770201490502295424202852742604421833609982414490875196739797554866366689554737245862631525542816966214569142976026954325438970405474120948187929567968567317665313142540839174414977518912038910340618620557522604677454916695687922849488119384637576351057135306387352722580157810497300682761828393241391104312358272352052797153450580387158186322926171140383340006675736618876526311945133413192591284495706937251470991599856217537573318995270667144656872999035250326443168561276268158913194810284842278342203956786403099288483590380110359685625761864003478366984067131295429867605632879694347554736703263625311542618706732207399360941288741800414168932157991774782331869992137667254036508627854048121580477923750200421937570414461870310471048937495418646000899657233808406429438854929082715809133259094932883382078307927057670248670653979583429385329208127074618971038942766957797964247341485154133191510685109682949255771427654205150870100020755769700041927568042278156603789961989944311250009013828018697487392760519088903328223944442474219630273373262881543745102220094615620495773862217940496746650367653514550765060983309454811380070768700694854081924062309120948018497155114941013907484574132679499961845715325521472596646585614606460146244570554388393938926184795260731592183273400878871693175794973498743608700134165799960264263875045020422926261307843799516943969490644791202499507724143203147469972795173433146524438848781692362935425062121542877349778164154578889892159443141050487543343337146969430388780605837678852200045082075267076692047938285725738345375745424515329824919273597621150983605692212718879019963120196200206124554934960370109871594267698892153340889866541895050632113434448449291489767279940325114424137709831553234842129598790971604317398454264583211854773238194775140936019065696221205603013900084405121948180844318097005631655722549283610877110577819194689603413615047104769067815061072065084743424017609161664822756415043858603102912690747337485974098301103116086589012267325166736125676721092405428674640885243890296343098354038421712059802846815525143176681363274753504447777876884275152223087218809181896966715634552668066658398349441280853733129584098724925134926997366295606151625037275224440953840616707308276826627483562132066660738154159168150275688895125297839838592475938243864598095052686239185434271993468616489649683938307252239102982847893768735472411189232598018929786383075459702813750198810762826482247089697304129943112347884994765245557215447633630413115952967741823726042883454264028850081978227770241766718983345622334114933926827802301628223437336817992982890184935252291874054459255212495898148295909306092668662739579278851043624923373696765843056105526416876228972486893548914382452150309403749700128414363660679095842965031740352477537297100650705064530709451645462671471312658371835002877151413108915209986789788172227308446861991978174258606992728383646350600959882819527130600608908672045147524685893439465068970719527663323775079860956463492018175176086692842960671600754958079267593892211913722707888816990414871787575791173362763267040620901331096991459505822477797207105220295771161835511136543614953171888507370169662978561461186828447476651737180478977083980580681183380049239213673442588517274788212960869993872364771354858203338450343837765569415292933648393246985865991523290789290017370725385407440782553042380142652741689041305204396191022484314830679063445750958995335809038816556348566081983716112740878576531321046869582594799192018804921321504404914351221884439367520205232068864195943891964265831306027172999751426878053493979144441884194348152334608699987246084972360467538407374270907051162868353518330059290953368808226134639547593048556191171413380606970819723416167487964104534036672234012522300505822570359465954948137395756401675773995631492066460920675114266356108014319174047984912202145935288401209155963593341009482776035073454365489798391124190714498538606328705723335267526197964895916454325233642771901572123654064128494565386412350138252789848691054829820928058451766086503988497694878978364957785453232492325913611381417284994156227826070078494936161241746226476197732355603696355925269440829737914312781454135703360402143606851522815618216129739413377906171367039053758352442416075451413462780747091948847957530032400120351138307938539458703218253981508508450837058275958569704862000650918854377694483476804057358273635858647693895193168219963042103787626398089922948899679570174898929349445900209515457246063246097913534930114716930539585704679495249827155702526748121251439364236559411778757373008285219379794894795138470325363238618638702068055362923687672839971596671642795779151721841436689296708913720072443628261462148978160009509366919807741678945493296761907158600008977474969247387509818606465272526752714908387105406189574464945219131392865200094981455575681613023413107897778983187615852262575878647362127335713019017579096295142202998699860193454516102627801538228289915246399062790636962693060533882205797666718803770811991637221199777652647470377254452220498054934672583237567169723378332538324467197571421682874231601875965724307424976567756969027526983290300528750559049635218707325976106860647293895967814124568989980879720504481037949946623992614664337956027716417174659419276592320829012563466557688130084715757473025521841684117196422029268639167209367532709923539556542386768801691442838945772839126256792936702502294656334544958037240178022094598240771121935742207754977259212405425493966448634576662847781323377734870768265414276532042478443892126113075288853055566387999633814679150690816775179852602301794982043946860286757973708987140551589804027067054516277983747572350774609642502468043165391701130725126663753675326871680724724317798524157490421040951604548359166285504254593725278721613922286399344939923044091184714325079155767420543548463705665899532775819588362441545670051789793173248859984898050449528768339351107954866779166182478814398092587522090770023253704196146824509891793729700842837574263499615621002370117199678829454731895330501424181229210996631830711022487316824650313618423384726441948795942847369382550716652389885179351089562996209153142253122712621019931859453984152716237513338685400734694487649787520498416997618943709889703783616368392770067892693832239999435498756264630548979966784904163810729017280330287492344661078380601566582834324636166840777016833786180650924098570958746885012214062780293348417858616411971288863801138768371478796372527894650551514532432329770786539804829481650585339376901006600553771297274325769025575774752742654137842363006683345708219076129703803461889863663526201486243874305095860667722853738129522393903490164885075325410755693751516325430515255451613258771263099849889370416482822923891268059858669511157420929427826542492009286873339561875828553743926084980574729720352005198965487203809722887586129186913141859418686255665959245744277306195006762210265031644974196957293308389090089485730655155338980306205190933676527903008992871850307020949303464343984726217639295353953290311291820068997552951841033683489000259998050067015539496573009764179864106119645354479844843566897372874937369774947656180852922922040722781682052328196388150053881236900147111188160726696529869687976706818155358211130356099492298275955179242231446770341953321318401127699831531371961316454985449622468488851553874634514413452253773248831000412016984079408274322443093768517633596419296814651508908657579064385417383789875924901826541275877496310120735814848301584672575721530387567331461189054074394568251845245018238397380636308978684398218887781128745872846410656191664398718219536311375598957247993765253257469082193423927156929305900999330359360222169198248482761334869762911254519720749985165239106224016847499071445237282101603574653679637011756962045747281345358827697904579078234781227884194082678378694079882244317919447599851603017573551066984044893966491382346282138470181979750014318705443335436088076444363326329176689472167316464581137229888922936619903422673961967150441977375626072343449920636693272041988802314164867754437828114193590266624012151053645207858447035439224307921388439671632248031797662651775810885881319937019499573297053440983118302118148100923807320956413333113281960993785552702067614554623471906848578050180513585724817605717737715271171996499352813304506475553927587968930504847861769321237174310281475166659904663948797998610779878038646219299279000395479787228841389371165223401155769318552051981566467388812152520621509055655595212938337281179441282730741560534012805480566884034699518442310235231248015539096019537250120829601588533109601154182499893880833113981649701345937111556628132350223252930828980373665585434532672766860635798216962659920325354764476162629893822019451566546342151048423352332924003123669923188239105519422298479146353638132275717368525918137861383973177851397735456640019345625060114288514035445560099280565163889503735810049050277461647737486708444256852754381772961048692602672326218953315701235576085730760520250210120891477083249246662009825877571184835647437595255576103765647305877900242724729970659061888558332805179198569510179152458897671399384277371562422538634766956078786629834414625074711751791372089420902425274496163204970195042153322461402980658124308055367538081396831993560223818521294212524626714691678773978802786249873502835807291986816994483336675632216815251707987363343483165669658723846219368765559053652799116584470400437295899698772335548690614541177308309976513659024490605038576119487932596514201213695221704474384075652997501736911101980199444214484801980990615309644356670823613796153479764337353785065105222658418014904013154791780893160250200252435048139400486014806390054345036169298261964749839343999989547067625006697331265657153453881226026579383134898438069951448600426092801177576743618452344340932380075755235933466945768444320563942184386667589537476833265051667883237459558995444848317897792802991706252417575836287789729122572849169533661237043739733755528695403753610466536838933471536574676873794938727097995823350564367265903981008414803184520627171178071302552584131434000448011995159433510285713714409575621365024492378564778283612880102596792848785771033471874819461689599805534511084805624889717472206890997517112274250606585541958726946989622171547237513992774098186908845255127576731895698443793294982831891622897984770890377279400027799568880874968400967079453828560800890396013298611717256847315185305164254555637996691294571776948765642546251261933502435813680010534311297657818913173333864003504910701049305015540267000044372401798412700371549238303473708438464162758754256816025866239702726637206660945155461222169534362703270607942965223432838897069724308007510972164741945176432302255318781686487420138507155302819278759732579655689756321439890932576178852807917146220747286760147254445233112288580967303731451196033876543363607514431569998327138083113925962259134598648423571400228482559128085228121406976828931286382570118145026347098393425281478174909533046288622080507438618566756621171834835713385438350054474212266278350165261411902433066398772803401193976294991886722666725226628334175617783777628068002656010977856727720549108402955291242724488374150696634670104689991922669848064222361444018814522169051236741719070828960052294000131481554851014020695616598243355685243275151904342355574670438811442162399199529348939785597990474143535458166031631638913679908923621414634906848648721951929731906479167163246867233845257699458148410100124649406705427940511149602662841631588590718441859807345169864919600216945210295303967497293422476911735875769322297003499600564283492306789116266338288161674050475864869041281822642308398511183494793896206066251634266409021103695669007172364788505575354108813718146882907698942341196819020953200976199002280942021109587993161124200714005605316551826206409001751542451287481348065624447209818324691149946030502977540200640723613392306291476998250674575808874698645228879872563939251442603462210649970182303821637162661300828357405383994364436463074918388253272723855254355347498620398896446482667639160998335034585507554707937892932189584013157143757808515811100812838816005352733949589572535082681568418803104793096558678934536142677936124120370491250270402709581636404436776873956007864019682736378639746159060895262369584671389981162138776374414274332991730012111214915853493997292731370293447071213336906241376460454843289334981680970031484861999833480383696141934887218872300512995789511792408712213289996330299605919580325927490973476909281652524948094850910765685513497165099230601976927495634581222145300965009148888084226012773783271548315638798122416579394094120207967949886638382542254689163230172228556909301916881538115370285251695314452228675781959050542108289197465737396550511229066377743557560199152716493887197212241136476982959496248155312852615351104991636594780252701073173136352037539973125158709702935679948582352107753466810360077982007038719707073274428543286012358650457688138630200664571059351014875133802839361659049516481705370108717833059290684101232564807908022787426309769922703272595932817728460565114542650481429280454984070246335751048405814753278226946016643862974753520609204131831513572672398432698347144093948510707360046647754163604748219835734020644219251683240033666674203469295506465785562811833551501833419310379622925163936449247501045899234224635925218466386596048323944843138088461613775750150218931099585699903394597599289062440322072636114643272326941759933307809956110703906216940316153075031666650231819899894178105636715156775024447323020302502250186019498345218333125142907881820661176224953529333671438347244483730181057598747881887135745538230301676109679273039017886071866760398916198235873428662915158117806858388000602888816007027599676529291297288508370014433927663162933537723443672106568760542554916561203133377911556283081999158913492068839540312030976025848045412730306884178426263984641473534893750506298798975625435754650490280153300240556316051261055467786929790782928867786205996551142928074717798778025812372989941822977975608111786739615977762119205986650419666114056807782968556143330997386009113335583780296660630922698859889633048511825773443105766403822486209080841514546810200677034358141070184477722393288767808697902626827167094014673609197812795419620095541960861931565715018840481948032487190205365510287811340460608396618830007469447133130558142200697584315513865626877355651371687859968865715429251156506512329198476275378292446038430390826193584099363961236345274094375467865825780318235185561339054761914067864205537556461328662899383036093733692837483091118643946150455503500590487438127451840164297809540605227175669051059162450454947625926030220654037081135118967111781584907914700967302822273515907125017131528460200433207429934930701000518928608486031358030015430701949561276876002860921320338990254612795333739870276894067879896939888172211061689736514844244832102614079281412103228601906973631082726298491796418865784293918282680873158073231960132213308214335804717619295972159633809337886023817488333543784978629360079218170454415694494245397907493315146044643177523094778004399220131967193886513275289529863229117354166639472605198428554493554505821550844577929413846777829104708155741813848764042960272399650675973538162236438195454792578345982089631477484727668202329471226209560756133350174283320720853297756723765344918273221931166766798908640534006108141168776342611618000020717673644501259120429360367004470439369394086239611791142085122928962511884854312194775168047912755616297650888989211676684567046905114655584459687402825253196052883234917000359234262898176457690609123177672248718688834937428235261303238605492031496563498799588360301240597738183007882798753676052643624894112850146729765036523760558868217749358586446539146004563625061556871196561927976065320085583808122488188192899950781366445588102329578621458681593227441307909923161149733068327683570517436039292876705708921511622175481988580600432088686538338412808633407187852397359874905184122188064113653608321640012142768325944904939336707386612989620429631518437988493235858134661552581204010428537277219690101611493727934899092278583051355117887331389755298831251249849242572327966698500224173953907565747810759487864326244635694241046593733263014745280452353016743843953353381464681570898180168970698694851716938620611731816405772350979726273464351088330897544428769965734294177723329763934583374919359657361268203904590802078939193703623086400223599357765661551047577604696883359006126361021554285429322910345564109851211020795315831789163455863953105435575750401916978732767542092989048240975042139334979374265944690565029126601824014127649443293432187133867505231628290749996845866845418958482628325848495012453129637835282440812274761753679959487052931598200466926156776055064850608436439838776511625488839178198235187687823119473570421014502642012538877792986450234243289620505092282722552298542716589674615335677632684878573530999700285672058043496768897138599364469827260742913457923619503169885743901534141730499187034677962650899880807347301190578873597054091135790098885370585836607081017379282900511389600322845087856609691091161538443238833513440547427169110838639560212958494918480426342685032666687565275298325408684705902000827174490814740308081918286250820648522728387099628447393317642269983377193984844227795841078756680986864008609248792006885701710228482770589712377467941027220367082929956518846431802540435569720863446582989463581591554918178046435452159315280904563087337364043468171603714459639123929242511997864076908136414163314423622598620144582681308147863061298644634731459275945421460168288950411727484606292819127604233815678066992352364790216250259443844456404254775252713607917049406105240667944126937796489542809754791229639092274519938103242260567784034252257631325736760124843242710020430270290462760442198463075862598665763830432750137614620170334815274213401682184825807563033113234468319608461899723260110457095592925854583880499784133260226593245535135692860943611467757755833421756695521076348621956246409227092501883979184933914187128177041879851436169614960824174405936415442447635375139836984212837566684234681859006225700311153880545472429750032176833189516938156992006876981823047576176036217818064730511118645343639189821631630565476035878474152452896270117177407152319785330283383897422516002970748623364425706971277136418994660567979981844473757831809648609134019614959621339192073880776534091158773159994753896434459565776905756990321082575001242153173719057794798540548750681673739090851596931999399993695307668196458301451196867480295558224482574863328716725371808943881578905424194217185304946894759347558302681291499389287680360396312157096681525664843189356080296210805766444127739111296728299911349041244799811611761209867625322350524179691427848441343397689936540821850188527647073618921646516476839339820780353837090280935052820492048858362850381001607688707988599874218260045885637398741976190378866095528156164976593587687678397608806758344757803080251740064700027155850016263471920618584059517061592549852749853007039213801131941713006822900154195612333070334002361156539844515169910644866806376852082705153135680049611078501367504021926422720136133018773265347278488017959201428391115059576438690221138494037969253939608118799980527401655450655853958105166995075417174775347246297098243820523963093740772629861856439980379212678031445673353221957767011728780617714550220148206642232397865141752216360667562567623053752544460563039599424642060360661436072995862567674250509065018193005418231419839117445636370709077499881076239010295678521300346718744075738100669318854147972337790799483298356271912484483160718273758203851188193521110629978113307546417109047486672115889243247451770881918268837829186566206548089642071781761202850994454944075702789636918836420417707576408348813170143844999818294367017465108775094536040427817490581173854062789395880951796584500975431013576545577950477963124974312072750074519045349425258983086685490769809238920048602292463078869191070590389867657490170278897726621911251998134523829839314191848496043405186445165636831633630297053682606652963080553894526023558969185187683175802434207515681344097673631665557263712198714429908865644453603162069650619688921396458266242986302699487915662508627306086203267445193290183102967623071426693886259326320126606719681219235653018143439719691244554863285513922339751097914293994229673129133436048634225280104860536628196469104939598609297573469337440465240441702530824045520386790396503559576365448285445223941271918068854145180977803014620557088644911165528575160242601436793376545923168774833932479475189263163907294457527606702638838480672315612201475826130682711254923201263156043306504227639458093679351424003365712632517446873242815369236753757111348887476858038511509843608323665711744422233858484452137464207984420719486627960291120196737419593832671441905880881192077814923580945393947317181292490798080091463942357033153247976164025143073237161301799125887807704079487468509221390040129223869807736875158035060801439739979005259941723615549261611747606530857091334153150675197260022785450517816356515946364060197288838236446940327930800386353293744510551986873210383146600266950764957919988635931041957370614411346171585289003535510464138511468506673570686429764134548409245628238572130876952344518437931089960063277807854102376760450481122648481969895593421354265702458720453339309780512203030934504029694655215788418275927746856405121732622380422415837923329901493724590945225732743142755698052462852649567756432542894816904069400941537631530798389391580333601441029834705402791203852585468242937219299324610129584910178161191157954406799974835905147093896565265998638878295809770973610974940175919783369065863772961597373762776561207103573117310756878194169985625567098951023060690058760233089520356966201423561557025004128135061333757117832678895837238069517448528382346787361984899470709864186605215085648326954263484212606209304655881608759502196677316744033268037361245739230823359471400774232286450772620682570240725737229986998365338924172925461382677312828523655452188058032565940958188627520564804406267877413823601167830953721889605542530826073724059860984274117757164146193577973886980141349428258586586923192952511336223988972337946732032684241516201504908186990812985254156443665148062392050515791823415319595654606372064052736475702606542050165119983953636325654096392144759319419684315222764232687430053327444106460663595300915236830977060725146424430680882698800515404910542376856440115881651643382754518356286822057933337674701530094808586353449325191929514075509240683121975046616024694556897657306304223341899636175899343957929416571625897486261230408372308678773895821284236391323988539809070814645245977349605118748239872099595278844977628840402749744131727954168357229187915253845645618471606218575399895753479401864328359044820273561922483931138076099488131402393343730784560695980150217630610905558511539941289278262771848604173938897166331897772327621669317421930918990510965663710968335462461152238667355908700511450307185220262174785276094215895754070947194592609609125926680059742203817991695474915456984158473968357423798315951511745668657945563888826873586206261965339927031173907416783032421247700514169852122783597592581754239051687555391397810917035218654408125458736875878211190542861490064731835885915205870843760565355247136467782217153435994287176571378600633407649825117819167039183554273654675773731492703060720589476478857109888918421663566294007858324136148133771154663116031186357655118296089183988113982647683870518993828163431954404386398551472873177004761809195558247155917213959474987621415274318364660515739032143095644560675187960918439535933586996079066440594089509082454359329070051051181839242686124972160732464574688584126293831900178381612332599247446183882766540532740026053307208507510669942189538685925539929082970506584783871831600440190242453309697298227727987050044854991561432705205956006485444444469246362987559925078642957473342280311315564255717347270593765612986530845717464816822337501882918430813195773893357908721478402805697954820218342760750668872141561546668053796548079663280691281220810061693901847586860788298332434844319636441697348052373167748763954301082578402665062186386333749150170408199233091609575534200827299568690872839063059752697141526581297185604271319521937794185149632137829441748366653810747931615273852651732217270875038508403086497716618159235980122750038145793106469494034492238532457360264858334052180266155038722292521455182932899047454604064307434956342473226673695265786321972223191755496167513464827760022251960408536954886606891677414738117615813918958244373834575431957297418025718284318825508674084598042177522221597942326527912686849429733690813610739704818254584506407084352652158467166527207967455870147478297428235818042249857236899653898617230399231529859106185271485127716978666815094264031341107423085113573399218352944186676437878757441207222885719607443214117202754558709957767965917967046798734124767049625965830936741600730910356348325131943523091288165421614629777840223998320350321811254691030482305014712139037205683863702154530247846746806665197193010319279946287280839780464696494731914048127347590079424760127941062037001913836324960699820122795994715607286910838490254555066203290125239042846101324098266533283472050714751376973886119204207973228735863215241445759826310612801867293306220257486780177497621686903260348041980481139751149601062388520360157311031226809601807386273898844220041650621565484108279035397656732947951931065712450303298759303741715589436643380875297617844252400808970812961453245139984391361581680579747290099031390798436804624189695602791431784873683834435148289311192673038011200066657269978744602629230448743569985442283285561719430627721233637338260582276104607776817031256905124744878099362794956440978690629392087191060909353229351802252877127690490544483116250297577137113897899356251825458923772859217628038002151027622406353069809276301355268773713806340764019185427411227108647906524583164835505058201644109547970387858090628095501557213952525377403803650355355867598196775758774894943470749241383874624260603115459003404731603454709156268114691865378861826707709059156235252732669618860221693314911803472431644631372457595482041099027519295643963974969222014865363178904429359986904674798153806397623512563469491513484931414066715444270772179004142452546251143438726758444947754310571070138519247348827558807757797761864384882438233770570788398554602785710508503439990724139228710340910774607534948407447466046814457370012268227838605114212428333116955258106692863080231276563054243220643191915399070856273319510151532912673297435922825776791244671695114807666570296190837419468927315975155932700172206116417277695361397715691856570241792044046919403547564321079691984968972027358549564063639772629722327186142362602754004176896064441769068906593126666162553897421733583598321534689963996136366972151420340337719843199454847133239026055607603531387572788037788339868580353958354939799886665117454076667372709615231626527408566933787650993561605044632139471646223608408356970834855395522673974215724638689305103070848747417923454973312184375367070946460214281564141902225173045291596649905226708581105713189777311043951344722400690537163185885244491040991321941114178852361345035818958923791635934397087178163447552003954048897888345253226907777188141344725156425279945398413291500092153548956527212707717332940314240255169782407613512244410853393233961242765979735360991318673290715991132011355540758021172896376163998179313011287864824360731756673391970894324073455665063561569386786801600725736386555321023796894141744632912955400799285587053141457650752286901733372511708578263853754405488593393157915018301932026878904913614486971158835264022316110083390442767087789503622391624792831019964844018118520564861731831975421566453425448455715540747472669063498174888690662677182632535475379373518376765156519651028886841576332502811339415782763410594289640514042676342267716704259094604161381138585071329489233028548856011681259363697139913248280118110171625471449663899977275881776605009022440364252458463420767490708205095495072040493879386025164655556778143647628483899060075783170069120520890673489784205642506947730256106254140790039066775845487356998426563185873006406844857431592144510058735075884191030356330446824285264345572575990370114081172967978698535495205786791983167314929750287857357496884313113568833050112604724315698992161425271755379092376629303647252665641463499877740104677604593117708823895098687258019940318880601325471529390276794804641882702200387460021986711651361064185671385225890781263186239794698212194717353333416960456621670267861313457320254382829783752662193707161357648038580305272217749216333868908175696594817517866272172861307250793929210819124044317741698101267496213399082542593065182577287864655050858229882383248965273162956900406477934346663839726252424212378020330593594014872128322845773549382864393787811886336401257157072005307127642757149293462870230134045469293332719218328731190314760855100685412791506856856110567181891199949436237112140696454309769145591382585516932696378581255968629226925971032995364047625029953377792965364860017761476960338309698477102211996267730537779842994265321622035258318355298960052833335470783061008688054825710258021722573046408745224585925852653337216821658830959800854216716430930808854798558382376507669338332171323841638435371994074776929234771216835496763757346691055644067431889698567288078119761272360214306707062294903613425202724444637982460749529566799999877981480951519569497652972770888547656198388994372963624151923359014114368520705476375235972760131182204166584733717393239196601928289816407669293508599172843127098894605050070069074505713126257065220427230872944167480106011610058320576884331298217741988671967122685719305233682448566313461879431773283695246626931713624758181556586736003737554853611056055989085710860519951537301744942552779056275938595564502907240888869665168682810200548839787701220453542499086988075016803150329282278393649229991882427953516863157557856918831175869000283063137444036904355105781059349698248696929838737515007120639232156684342924054180562091770633283594071044889433453104512360655039728173594816514061841674034681218864867738717880836942669319108613444625109468846680109112258675628090587383717941250386093125050856089006813385478892302668282610823269028990968590535183746563891545619299441380468414557747537658878760425658783465023813698077079916603767076415775894158293470228805912074842470596151859639646035502275448109640805360511595944094443375936732805759411081818220700440593694161316814139720140524239068500313301372983412538902586958021266660730122284395961783446846486096861181771802124565689613876926430914528746143153058896490035696365036311072256850476103885997825620886737746451047710585237716804951576687929702507395486651147912542694643591847264788600279248170332714789656667939791582190578343539006891975506901290498945492080698887158851084225552419863193948345751999659903677496882885648208747397115494397634759496930233270393282983691184760904620685336150453145158638273113154040492004624686416292490584421607718085823137801006132402603770263223691078142189340165383305590150130464846131500287169395472469882999295645111052307425465356435157182992900719557455453201746755773179580059685070406169107345574196658715909769484217798744523996776439437395048759402929070197776696119162943997109346655290561805556143644066975383923865345588073533648530521588476540756004687266557853010434550278649395801583593728866097354333892064927829173883411692050019557162985941620095681266726258276371652550041194248562373612007398358041594968816205296833067640253502681448853153862843583575131877448117778505597800623757045560689903741481903192358112232883157946129080945522108569964721922546434648443067037077854013544170855887417044589998827972600848937647869951814109684372621347480054212369411659401129632553595072890495504975283904356975623861509906475908798240205276036523040314354524095895010142704741533442110623318390150646963231624556318364113859219816241741509691626796576654797996359570474985873913231227328354866923319173524027328611765231632234145300302326525496344653012870089955115372307319416792562947003065835566702150600932767300186422593502965513617286203449393911855992954340444482524326673274920804889521809794580700020305789196665286149702752455356166714167017778710646734841992747724079681063349247265629056962641078165211362657748288921244813608226723702629909462696234953792972311662530317503734694488745857204632137360015693328346653659088586884748990238309480476933407368091712033222847374596888658170652725460820673190841663985821153819288621661551431383376871451440480365134667767080410755856392408677907186196111202411559357901771929029104440774164304217591210755140509255621441535442171734392866340165555558383006527596203790213254799171290674515055810384247044979988969215574923002684714871368168215471589132558267014431401645490889208874326078819139640807688190346779317238925414625382880664359101982617111731215908127200160823032766084697866730310090194319632936195926214203877167712112416167688592204737457201061750337511571265741921235701508533751340362172318435988370244146155133749305647116205210324809277233791076338448358170621665774923421066122719718240911989313334952145866785009432794500128816262671629942440398665243638981885505154144586514102192844215499270383732102628561545800669252173290630653474887329710227319032031643638289540892046240127120459694003043049315139302515948062419049437473968236493938343468175696878718250388508949042846188242147105073247134408349728201610401587966896581275375609869336025375627197930312434456079154128330587035478143902509779434799812138323500072747111191937020858119119133462542872553239054520800019002243930758814610489469786832655684786256073530697899608539616591728105685078157487362813465360186187568393286064799866278142820244653524156745902627317143318528258659032656210817584973064549022229885027555581802907407160854545080202400325019664472928494190064114618583566681244108497730091081871380717513037792569052102661180634324902277169115421254917274002560427829591590091481566117700427118500712219669044006911322114989199709793168633023227040744794655158018028137550055885451161270125377977682913689006799656495504738037440225915554524265151428421671576739334042261821103669992365664326839295030665899716253667200226897191590982382712531951621317224699887435675808105910404938322490266075830144511563913936160874967220257807467501017900893283805494868100640453839188728307557989526450247834841658777244130016979023994143140333020661839324273145555344534654669948117718518795919718303004870911066575433755365754396931849177658454520282820872861539884961622221779571175614032950531877243149373654477047441867135522640199080539615046100064142741929595417218396470556213577538289069445572458772207760531476483342172988562196596194164577554875575925168459353941705366036206833542540650803322830985645557928346758317982151005828163309503828871755930830477102430145572593495718769103743476957034999947597823944738187653324919203551681795934594740913102357005361132344173093082967185202258853934812241683057696277959134607894049936122147573957454361108715677627309607624762784504125782248217628868849345926970261552534959732905879923968670839331548354898532605353444633202757307629947320183704260981424954516403956225051896641701664501607384351971116162597871643468055268281104373876452908541010520504830544156122619227629590212017249357689380966245354316229803521818199171077534764701931887022834786069535000157632293464466414543230316578547942243293350852135352124184698119667400365606900718746771975214993772429558099521589059866294043063313950576220086728076130626240315268073262310845747983969490437629276655938615221232194426594643892543092372884380313164478921058728123406673054711326808901945649961518158661619908487268357065442754721902209582727742428445364979841880327456203260091091590704439895019214459160180743003041684312526948111828220477406115284679974110888104043187231727581041034098905651289153336509523151841546231038892047022293054463463251047031958341096634016384899566246117713277799722440189344525366740626901916996931735390757237232408625225658073051002940885620444686111378604098431546325174036024599863118465116016441811058699223952874653013068356869647756102469335217778278393605503642003108180381650847935255415803210211809939176093725413429799562524669980991070564165972761589011348081792948534351858135738362026195050636161101094973439563137306008003302454299334539317812819382169094425895208044632589644918878195301762444656721352679277921316440647825501749175253692302632311296396745451279156680842912845782161779450600389707675612289393044169521554013910502661230820136604092150956143922712712501104186597244097233520581658712512169513493259673453761692853214075997117148550029752757879740855274910104452133889786870095765767178919056562466680307829705546150764426674739569179847808499617833405145558593625082625967088835322879860136644816412978340462338339719424599835044987281807537401418940993612685355372208252559003600907538429495423954529225992091573495998753584461138248827436550175319054894591394046482965408616359330627190366183850709916211156800044993977129760800412687141059904386456610391964006379440943521260662181588336056890582698446276246332390984197268449877857168927430797454428975747390093044952789601899084821443760839814425500268840732912740544701126439950693424273795229976251519540823704580532283001962109093215609742046605978745264998180426649841097824456600734523432840270823641373628049969461680384235724255506802615960161101980645313004352416415486793650598693227778557937155318150278056599578332197785811701683510934749772830676658654992360031203691345236560660486893264131375855304778293686121602962533658038752984595022119919308684314846202045526286581119779103984491550182721958064115113180007366962829150960956767407287897508212472802313759990909007853165619869691630799170277684104179977982783619830557237974769928905206960959834992306840236468774011167214198723848761350952975235338431999267091084845739017480072991130957546917747788953061223803267120882886676265567101083428747044979272400077987919357200764462705148951382661296187797073806607209955064185864366545932816883393713142208992627039966851574998358327826785090522663554737068837750344012434059937055791265965850355846065695148079233116213398324165576543363360168510478621130305968382168588694136385561735888741431603866454004935723607802605026787391784130183351837684139257790059357866107964374356738036682797012335640705819385789182879294226332165002610112360329758902737626538069265645364971462085184730712673386516756792336168946218696873412647472204331802433588160811934015592519899575086758228825026893397634379682968616665218411443082071864671806742890157281927742032320354453035108878069900939255000612798264279240149757765283501380795463646414949985644893172224532207334000932122224927100186359856102006361126103579622923470426061764945930029695944854228367901160069152005981685147717051392484812430900945740328315152283834058526318434736609945911254950984138455358875701117159864706403779564339334304432954169599930057482494365925774975556359910085031105563826520691331027410642193993416361738857427332395737031460389521125673700998471133673983846927394079502229363604371205468305595903542234566822433832390358331087652692420358614231219311857818831367494033682332666964510930690274060038527988312520204152289891249096379541221410987453609123604299780927967665310815769759172334996747003246820375229396010078629187418820046251526034250665989475892979691351420918036447961447045761378751446414671177895012339936500833639840049773658970136509316851845574912627511002855360583952449322835402445421405490485741720778101461490692453562796668422526580637687199361106638757198858595649461097966282092359653762363764532418759463014399924539170793116464588102732435571190554556892571242227373812139675731739438388498998629551869111482519679799012267971352571036212152996289204354824090711208463893022863007414780638422997801356108318013833516418714505986867463115286768924574399517695124993810810247050772372299160558010922508858807649221755197335202609129848424317175436653759732053398491477530463299144713333181625461710620803716998886418259862434836039156784769082407132801703555529335624949921050672547008153246492242572926514796498208820099505746473839044760309875455244902878771262971656729743476402852143626120332586164546951730681160916123855180436581428603686538907859417838497215056555875445479576061497441939417531193301395945179627411909165213447596402520475484116438437920032981276437966632354121511869358766064391021217960732970707354480326072048795918852701991419580283841436212000490849428808357199707237883056173835724516313806906337006515380661576462199405887175684640907431564870132148365731058812392335349896135774145365021637243356857273923261434764500386029953214217274976631151399025463918954396719788103912031520374458993128398159866084976304709738861555566126790535756123202999241587006617339895100827150303392282154142411993733100234920627069944308014819553921115372381629528256199171739669064668669257499399023884173070218612560907959259096505248505323371315348243227513880018911283838159824959602773981863172686829247398747946698270852957190432691609248998670723722829721061160649315935919697336087462098720077531994070997299065396656270146919052028235662216320644735165480005034880312416319513973519858686573651260640081594130054230541780375984115290984672886312899673827686799660032721613623943212890869841383892259119879850115307017300179469820645115369486060370727483831307014754845457486793898609712268672820065296978425241230005113599640027338158529607229419356860518813711029312996672534164666151367386691644253218142091991855414566579426703807575243835460176124556910648894694185965309340928206692627771413068529685643456365515019907732633576350234355296751020493921892845259644885166652261669614395113886734876362707481339741659814718819951359524216910467041797529519251876299437464370480948668483927948614853363220785023386450482275969984994439986974448539134348404856342047850810570589560160623721757071416233842484120599836120670517196326359948803068978672633063110521029411910178277274862814961151389774678723865092217508264527699287615689467734548195482196402731390439732630267976336907302407384158418797635230265496214483099110829976441970911548895948448513740756980337736232438905712258437199580953897940387709092568565395922730490095393043748932918068702053934605839849148241578683603375761421912713854600783002980522459669283872962045820481264120331768173978746849044515339009889364182967502056515298873480855672256622604466804769688886649660297507375385091658942810628195954440667213110741256085045529064336856198901279796861320060633633766699095395956956659669033076669437244894619258095840434017337618510066902725081471652166380888436233976227611448520849232297426838468083844091273880602737439939766651964983184899783768419067338895757564896658237845487771286105400551781185195311446904758190399531581293451979742269719252272761707187973250321355271076373856760880342414512512608384031883450328926876043020894378898988589958610721433393255612687875404588172808105660989918926554775086645035542574036401622126512162484639275452515795021814836103238224542613091406111640993175163843024438563878041290354685361825591946855297140426377054640186893996104083260861900039617146874211698115675469390691276447391953781220555703801555231179399608188809698552023261855551855586099477168453257946777822069909417027578079884309940137871298061007811420871108264652796772457943409025022868353904172463799261992218924862972080047694819206651176229039418218029771722198246390675266986491384700765257969093905422727677609170323802614354094568702539462573439767455125266795236031693340714281340808269625141167625254500837795376124857293598884833254007289018236197490571627886567281788881988945181752453539120960397142509100160567884229428750117765237752473582208236293922197443021855132744076900921395235872607959834834826882854802500386904333656833280414878735256286557022830334312498416484408922940372457614582759071769837816229686625094832687244504907457494354843627498078035369958877624331353664666846824288717844502617310474825988773889790339245165865919737702020987243073926407565170368436043927360734423583365641776118324360926085196458288162982999008262106701927783541095455659597450243533683136134331764836513976409193619153066412908161105402124356660933652363989524025717503836392020317765436680602772409450131511996342264901674095028729778352131627885803143637171567187636599578766991645545660505795450415190976615613816140442676041198647723880271259787804964242369551056147201826375185520813012955779039927389252865569362331235750953836416792884903063277518638272874499704894181586275889923002230408073382427118670094626702266128222003695034360534091110104014007551027064105275534848965475000229767209531044377228827582577511572928851714145898340958352750302791935488320437192641035939855893546190628769699520375577223500254464631449392625450208562612336832445717931648910699097179832747397032169388424529422465415781168187447900048709610144757235601479831581992105015207072745084589139165127382358941234442232843604334479772392870238960496283278966113626010205561952342363272021295323083851336231821082920047582734727050187342935499541907427054426211048024227494324254392581494696809446688368718690035074795617320435334395849336289420400202448781036015092782352984959082581842851011110426111147545052845016807353427648186549127817946937971245102566369745023754375376191449644370556691924017617463527949537790808908892599423509938996571354480808120953123442047640043796829549994058215951533093223863303002354251170729083437027558603760596180578707574217994283840260207854400035552098536319086608678570417376889269611197058905958649196470751648778944275854040788899321869999828573715164991203857568466684591739705360494726466815344638686038554841649136065197921003110116963741495296451179186558237130237188663867280658703307040167107486354115460817302697052234310821820926615125219108510762094313208539661029878404267206686836397590734871046069583138053632313459472345093861743954322450885789903027457332695558643827198393585008996309806290867191094197422611071048400767237956737782838652689011649114067752843352539749216862562227453881033509266319054251726268040223904098636023336097876373522101511382682328042581467911802453854775282835157329370883448496776318036160078727377649963758685335714421606918354772795682927895129963850421863814763643279275866097795596350379203329949843816877159432599119697462361556405252271068543369610363298297118209230427143279429218743586486946311463281629170299847247201827418761500110329018484493306739267976585468510106750590267513182554730247542225502465935250817378033425965180902800128139088984225600371318509663837988346521217051028889460283259196917686442280270694502970037834831462766694179003975067989520198928557565640388367296927018009636615270439391353758108099780259278073996205229477294074445122009437010025420054914643548517816013630245314072231787504650503117174154915776232762863373986809594167273609919724604506793697307818122225940520525477181709883713659688308740251709097148432318337054942325824183998302148769000369142725426006488334423042660065667328395393838619822632681082729922002577046790635108145656751745927626368810319018049445627250726456840487774341464935649145766690982022503949108435584016164272981001441612983268557670211132845980794257009839121725136780241268960470054646850078239328325170978471636726384282419543291597662925963448561618381214747255282403055130233809143008975075524372651510047965597649345216462286074178062564481207618712463106062150966964188519284016548020306569199753024130181834829171655352124027622629311533628725616293428754212876122934789786151878831097185732539583688711406405036885451159709194179730092595478250160027086243348490282181441606611540079573438222442480009508830189221025937282897159532943168405721580702188667233499148532361838107738129970539445012064976790190851209883832817517904052296418129554408396190886975189892384262133454544497116634548327320573624358974227866279361322991242875559528261532159532106143805876610953513195886041902533711587093462810199148586747414907757817346689152926513628084864687582180774781927545890279384303776700968973797738273528328796425354099195352625654723711634803204967883011447927820311720011528623613769711551982903604236302570667564304667124836463048943064759951396241305781655617008690170141595694954527345252784518277072668684166841052135328592212319703697884336111254765102983064507994628492731825184612052462839065241116344016477102013953019597206661573701805007946548061967619155560312157184398748595440257244880108416487384597378149179587874022896627751319378569335738751263556417112985871081161628828659893856132018815120456749661451895884302513668883564091200176793247228625222459475096232541975052601282559754721951132401421814516764687385276821910440518806022130209379409337644756565647605951926822563027376096353858131138415008834362035825993856475733918204236776904144335279455203455975060424998367307448309595489823062641741063644635733215357848283364744464164435518026508109720006722928641686525832308979045257795662456183025993468150758815641341840005175203122072963121551976781472576671149180791523069481400742073259499103564319088740276936751949273310184454168094524237579174016916579423974468809219084855816620666515186537969584714918691484595103317334636761789692548733642106454478893933751103101340084966802606902291119853995431680900121788436884032810776677285138362447388900264351349355546771746500742807368967877248570152279627847503316389206770448377125520029080544856673510790089598906623996205093031990311614950640441003452959620412040814811604877471481267002945171320055947414290782494399496705579196481859849538115415982138617234732136756616859557713996702193621218791533796035627032571293653968423100079969953451118589957078112656108872451081323685706582640372500002913919292862115650555431996806769906885804226609645870430040234785476673702792170303930746260755547432250520273909086894847191300305475780696559076286990789487126208064192934300117492753782140663590675500272047959275302127717060047825833214016296550272351207286556747664427188535864820637554268169291674155155886292549605063437079486685416654355215788223201264723255578451120476866461219910313461474428778991893318676848847236322469017827580058636285917599198059138513511190515376818559381682947475984640611536160887557951999535469944114517383897080622899827142576435950384904740118831057988036970855025962261753325274829360926312665536782450046067273983217787948754044059099220559748724780915032289544021267690614581584132645457725984180279140445271570167103429773892937708208374859744649673324793817176965727417811802883066644883749365303806355271433265849661704411854557647024850865750953221409008690077411411442198071839583869930844067948002828307358170730660216256281944712714375564879384011011180466431951908099571948060680790010288933855670646529050652705158051218122152756093406957146911765974961451645762944232803446608532757148911815812931113283126405478678929146926376907039490872258976889202739971773482281065868048354555621475731237531925325078942257926516016286512932184417152979198708891025621273753700056751402265086128405352130401401494575509685463653650463681672883664236647925970980189927942580583189154274077046890759833500341195328836252258585719885529007430525201394721767667300174971140352988537889002861453105567482829112740202961216281164579000475060633553215874928777239577393937150329806395014628798123540834448474502211890422776397843368627384063894153617783890423123277764453654193812407997202942654810266265815655226257907136175215646861607058425133739938596787616866163471934045660579533880956127137447648363292783666909247327606529552592808425598110265925478198971277307507800702971402639984245248562461924699388357362016664576076715751324452956650149496627789888431525009242894573208105710383612833666243366545288923846553131971393160064913122185614659590539557605078661625622282199999948557427467205917527134020179578357451283240654736276330170732928151997592054672317656561423675254839114126459408751025915702193622589155857362424699344388310666507022506346810236534598662401474301380018254648889900768514135816387293424824914518993002407161433222247210609000299540273680801626421677583340570074164969249907032911097556559421662631016184136816039128153910359598734151894450064045539581120208023416458365950919158089948192062270069096431165690607983305655092070145811595977119201283834938131835767206469355820317698053606788138121573206149147592448323825098725741402789465317306929517486992001209847564343784110239280279850666943021455915739683560204636627583707816692750587983842044110895512600850174236597013796538774790878236798853641265141414496959563880872954267851177829496876072112857337248088480761725236960997059420898758274206631655792023036588429925771847184833431840002692729760955423583663143934462961378121033349251493576445662550773316191907856018483623055146867217118574435629909309113725729720583983906292673784399786853448821196572570050219718885176189745631170663053353900794191216542573702496061466437381621445211101413544941652991685013769183157997813343591029432046204472437383672012849439263594322734457518743979317036907449982706965357133385379445973536969226442415379563906308113840290213469169400915801933860277844499154300832503428343202439000133246691389037191383830692751089209420476979492622177100144100414861952503862594651199612384080809345741284180611966949228461406333404560543654437833202455470388752149221938237138545649902649289425536048611150608022709037998415572077179112949456370302543311739460620870134361561154322411001835625697038334621296217206174876203814754860096711171657373990691363745502920996969841676431068388479183959175714484004376815684776018029464566479555454098729672464153413016635000324561702234374694056831785793263683924068934301805406472565115246939603274759205912354975060822302892861602184561385157772616768812401563548070007770953999303638257616074603472014138880188148851285538176625265076284371933330680593716277712637774051319958934003137688845220638231166556603529197204547588745403555742534557149098643883653670589545340689399571493606761454903714578085479270398726488100067298605992743059041999994134778850790638660373939053759291942812095964013619160098229129740629104972811369020996806526664395028321508728042713092413292720229192889840131654145531114380213633113819665289029582584815681987910262785146749624685948800456146512300607066617418561742684843680015946264977026796903175022972874004583879005512574134223372031051634878505887106589302037999864460827418924149342343738018239881100008438590553420336621232032523237172208329925281058716625034088979940344141790058956120519151294947188832661028381506733379514201605415265170989313433945630573451233370039922562392371658786892172780778228196881374104813815148640640177441523284901324668778807556733754013350962884881853213540230769313184108314680138255160832966579376749207971047530719531592398646858578075680634746731762478970041811552404281901797298144596781258158293352732135741768271898388663590287713321675056087864800485612409164500069849983027584846005036503080125681932528345058715989413073106419908248415121994502019291809841829588732323261339387896110766993181531920760088369081089052998716941235474234851918974759279664694816041301593455895529443286960034004833986788931588863174900579300686018326105705928921134005501086998016089801977188375022642676400168659265047867655590347539696343612170658033256965578736049199279034432520833706996806998221959873150970063878054813968235124891962109693017757730234250560069198969424755066296760351850214609578601760432002664659764046910284360331936522148919252788752769960805380274059412143789357885881738407391067041136004683073809139184988724412332465458370305869102386610618289696436551100737509709506658035559404912700605990491929993380026943545885512972841670256491822662363973638887290527179570928075122457539172121491448944820341361420285539741080710628057495137226092270314943563469433729318048639815966353159295115800251036917349131653397477372678361050456351101301449692480988431857796331820840411305310612406155975323653232155087396011436326381533804411768191675925479548828976836722375880955975090349312718701985970587420975132254915239175053005589335265109641344264224820212093301787800496176062680828619989065699070177902383980725384818500687664652413975484926010117484750421104232897478802739738221077127334633668144469626131152493600526768536389458401789064994888133678879484804425187884938622751522892514028590318738344495964182249218878917144531053390470410075859105969353706939396125683911010930343842575797055912197713604512445795020556652763705867058933154740602415475583678983283826402280840071253960693528806662605994507473623214945360702437305637957289183438742426339303422809548916931078240998820640793030876870903160494654044542565651138812031936869130883846678337406322697092909713283283788940913503046013022480598322355893724256593259048458556620376341319770226212629021642203364562915464879063992304016731037980564732760609251385387562229657438781353528145369428845868836941237875507346533743262688359763805537778307614595856904277134819907344519056080766096470268898569000642341922584135326952057222951479050566734775111045418038150558194991229689798631205295901655726286796551463248713335336793635658160816159743761980573820772601132026041936294759209918644698591554595659730683462732987836873065902140510513489273235189753450139693937755535727414328777326782619718094316974536383187147400145391841575685507006790460340603847451305613741044980678372263754160883568622011482436297218687406096334609528753444071044548871257816823483607574642051586486383456436627109195254520150801073768997573267170735967542441653093577214516348915008234323246050844182832554690458355009923356936994912362118690070623948149740616011631643832507192542227422827597653074168325866920813956717346867935620305775246040419175479307008678858432976477408361580523479571105944075096906185556017482111072041752964229800623458410903069682121301799111524489200270576177142881644207782930654093888581561194202041804744932997432400925023268485382441046017366772476589929938929056048619567497231784659197405621136614152522858451889471498961596246824347389239603235096981169219761681057581440008540935908450234480859533397416518068308058912205100958974099892874537650035623037340121551442773735159571635224586518182317062341279204196539601545753606801353453986917671425450775048082676006724239827973143927615384922356999731562160414000967101984202750898795936589192553054433916190619455416888665256808765543912928177776529143594033543063771305780163614477712476527114179914757127384232140671580117098242825890391416831161564263550745280289946369720616037563265299856404020620186259764197599215546438123045087481208491637865372796967163610757184782200021204184724757875874262890955150144743373522618407568912626482731715030915710367520350441985525423792224078672868723131478921942787579996363992410402354225840525844618862307495352184990781407911853312489477602679860657286949525280393899622230730009952318450348448012200901686269176058888827559835147570463762684100853753999675654795530324539323218728164865538567339964636919682363215165744454474628832680358493814624213266038432775958136978322523589855404757512581234657813704132420793740700065683423693154334066690127475483462224357148154509488569523139671077101472608306585897537973779622974070603789387308970197787742657866620848088900408856912643033397272191391006106534707315861113692188740362020481968262109439692592691989246772980929739758396067398080138444641883116329023924387397820038666309250432505095870144577126517851254419327607111925467693606679702204768258258250146831592748195330136677552626610681677316260633294928380415357179216820681196951008452189548836992711701085940828097998668361248975598699363607604026992532409421882285601063459676111270087508533089320558478548147517995502263074674317514243362577796396750700663144229560476859869252816813269367997917337416909665077082329852916614442795164147822345496343079992433539492590659564831547349784081098892409466636519987906621605532821499756952979989533040226388081988712718275113938359025311386036982005178091656606083613936000570462524109532459617280552441236822013981799419042336605718602842026738655413846281417587123970497555177197053543491289438324749470301041411905295156391110274436168064001411045303795015340903608286390183168927806648226050812088378188920184033676583211969999241289382565650682310866499372973851857997245437927896150161242882970948403451045380561993720719549060823207345477796990936283843813241604247361497259981891429911862748200170275673428796362990611159145928478446776127092741226928429735853251720423970363826340507806578252361743771432575473085831478409087404808066585750050929679771416807869811187344215556801801260215661097870501717288600852994806466806608106517864405583291007970454783721032164816782592421735526617984236859649935945289255669801432982713393760891099914654823806218611878569031563475654659686582909049000471123845502062884862006825224944276131646305277594119867984127888568742928806021111850829012513919936424872201386639250684422187643097131448829218601175845038250505272885238267830910256461199299975168560307670772521507570392918699211858052343967787908013835167056352167238560314708325215066144386393518343074540528888998851513405681532461013159497439458019158031459586030103335178537491767894186664913891681916653735727797589450956000682206854864268764025194165441460858265754780722974977346585091089278301339148264656949371021226722930047055056996928040053063605746830213917040535374603812219527256981189274233176736812373568789855687548182204182295014953344847281901038866734962672271379808474996199464648068074041157238082931476144418762271489118972906219913027086764769572504428972040623046919195489596572477811769769121495467637895224110754053415544707646082566187272104633481837470010840855830252858377212589996038955196650475484924096129997447472557882311005318128172284086342018261994337104125906509792045841077649831495660343879395585082476371119424698749125196323595265363696114489788871111654015195020386701198354672209945932211103578119812401329156251358374350439468475872993912882223084167992636224872098884267892506276858065558888537223702593392494793314608973748611124043843861693252493639899110930175147719440338297254451022652338732310804450189914889351130116260278583253657374565165899364316031141719769298531528427182558105740711115718758824589428969821530799084928021815226365752002516180004372917421008934429019183088153207584677762503004771704107703180796328517722043017136845010574080872306276817982654000506469901458374064588071797923620891303796808046848846459661614294672847952723352368670990502650818929423389587950784716528992483292174662674975552265935356651813229579593131920130450436285586451683380163426195740461965856718231979050965359798189384119756728582783872201276346407877287503349809539017735907093872931731687293470909184024938197464168031855101361814052104869708754882041240578166019417697756763121566422010007288072192010730544779678521867343641875284451968193049550950092126488361176765130195516062680571689429317709827708068121731573059172502673020521955827847590971166172995729011372561413600105371867478870987172492477361223453567786485040392969371888766025135381776423897378613489914064921155450662343236854986650356102218525211958250631296958414328736488246066194490268962816650221354666500538960009029786112057583072277197821570261113693143882868800156706471140341250670422798107512582491879587747774806170958365642559799644450429512847007653814678712923719932477106925537654201573720705756329039197598880613726459153163746064855358949495264491949810835576316868812710166159659829891466662867320835491268460661130773175106940231245286593373127496706204130371133410117895225888934833109944084782195378770897674248538067655697510563450948325971733926028325077265718254352279275488907914015971710563944767848304695522199709647911776248940694796135768667518968962589690712220676133543944391415297968577750180235459352994619578933394094391788147371583960867884670955558760247950161586566152622865613255309401240458151826526266206350290101441095032329817529725143983437445260879159509665196570289639884182033095405916385933537331150009458935149980325953712740708575183449924580620089281472394074541270245127397123171397413166337755476038105843225414583773182626412673803936790454010496703524903713255531395284895480331836950259198464173572398206185179159050177640709711741759711384566532415769406832956176521129530257139860543330908808094458941859131314628783431760935657725484262700010708279148613677654368890433545309149688904047116451171975617739640364130496843728636157142040525953613135677146340930460800540909561309888028556637839627402966756839962407280255081619680103130913946512613986132245697351765463579753229065653673803763572821342123709940975172127411517577824705334041006668926415702991340656808667375432568632128168039352726401793208684613165669058410872248681967227389253235515735866249712077191783362050073825854343305392378634875719842621927974626309680943403066371220743357662330932877769267065706400946600285254944405486867230305528409058186379318108165043864504890300391562712570739144837542206922931158568544194117652594626660413685676983045858229135524172826027470146072618941999815019783103997954855625479946476917503002912808418668656204257743229272972196467082161574486017894691868164597014019189759665073000326309010127745939619088218148145965076124475651995051871205915285735643978277795755242458814742489858174052669948160870438127778654468277894307787849625258947147574493625762202765062758348342388418060509157904616903939362980511033175410766875449510126126556323194580045077954814474799605155357404597982758028976083726391264778907660615024298913606787475434793062242386263960097184752075240126752098863668016415261250960472941467638642041920690510991678583764802451755770076865459753248761667602995656368310072561742206722430717594647956975502325572806629084634411128636977378456904283351097119320768470921621193393269035383727538300017322292153908718930765914160573624679515758396215396280767400045569671970978417145496463043449385590789760907525675516646600429391366414580447416648828213071770066499315859534276634193698962178456090983492158069780292355275080290754541579513234367788681728367978239826049540435515851400301245336439962962521773288089992087592416096383101435690327096379032570260929168099144967284012971192649414728954118925884687991349677529146281058613193651434008398412451893283678304906892791000398187802440241046089995793924509102180368048980538531929337918264593874925608983256553275207477641400174506945570025086737372596444015126879046694954603297677156892781357087718564762934367330800764550823681680421359559056427959552858736371943986501407744974583819905416671776547090602344692935268958885485341520021157516651591216762287602095717570577535211059069745941504752795094063093080218455800166253519966484484011738412485702572649572637132527596568401971676420871614186429577725957956044083982549927607546996747570445317966969817259405698995818282596215582994502643247109693177859031965588363892832495270874042277539094278419462835924759589346931521080015308752805238512206904918870068794425867952910751385449676290679029622613984281819903374659715228861336870324474575979024477334893043448367690253303618922254673683698930322201382871875944095170551133633362605372885470496772717529317849835848905286499738147165750452943327460919288256317673373111841683658634102542057108843220675185642600872850481624277525232252489727538398795419600175446090777446305921031999393632162504161457952341336270835827172184399995671044260981323841312776539295848404048342749027306906646715117032872037771959591288152627702543327671628544787836750756954552535965886037294815646370181595227464408069339674455142151671256140443965023415644477135361720751345950496478992022353541795845765474594008302440938329082931629032660936735174338294096883378913628754565629861397771371212085160711266049027378595327954494495762445340207697047220961859155275380697043777926663876939479035672079948877232753531168223020672656710383004896570706707057990689372499593736242612209767756892511799441270152949282696463391046653814702852940169141213906086404347267956062041635738471329455758690827891406788519845520743206819465734386742393749119615141798209730438491824084611401508591165486281772670796511341497077333422371826385860549241305628233473598830610529641169668779197835064968030111723835761029010202377305287401594367439788012756594726823031728291491496512665222556506360168325489202702977199426829558528271751737632000083970163343722286858476321311330241364398723954813371511672515285714501467167524703014644354568445234546412247057773902283106750037458814557152288275323394418171710772035768653388517796504671984613401169734777684097853879065617088010320177877587250237174860374095532179644875841143644743661855726829807908592288095335722283242111762390245592717353693411457509257274940212394624497468029559873868145418570887940775363283486704510170996898666662576286555132065717456426295907949466236133472365357642391403021613644165003290382334680821957097709309958446181821759936848110518127779213431204656232278263351946280405102363485646137609012990170595964084488588698441964624740439504437852941497960164020800334826588861004038990607112581240789444894170957667133346947079010331425782129588233836209812158577156134813390842586709456546282300578861463429675745314275729231276272861747902586586985091784523811758497444541008988799790767775745593656487173884175641461006358933704613511769883632823389067675710177907502477969884370630413013412903338591211770920748649092827771432252867867133316512873261760157148835994646472356426048954291563108874364251808005470751875930778130374186349692375889575160768871939366275083518078365417127018518407947244659738443069834237791471472288285672963494564035511365684184571635728434892022177432419375973191374278095487270187363753630771643974453307312407727671813478605263833192225427462332263037212363911303420282330675686777358730371441496574251259165251648501434895885876251915529734406943546853681799136571422371005130841025021994136431360876135031435391445188871838292369287980931238741149369659481488665207335048272176775061295279448033236014471495900316089935929488531420719801785964489683629436572551879139657167262261068193455187571634040708258353025223120149179969289865565222346344829236760539170310683653969956380224280658373462534709712474338416278516925011812209862674704641786717069244836158255194979425904057794780142642176678401851987502857214440685722614001309240564511550584599465561570105526086997457151783902763665624034208035772648020154826818539916944594531234042078866842921875955308062108619759247394773115059129165089597045568137926566750322007877122179583381419572355843183749419880095652700555657669234981052989565320678311985986837903979384157966065163149038325918122724909125092987452587703333791963077104221729162865261002131139819646469965446388796418707516178312052578370672325889698777830655471626047763397138308496721600704046215896838945856391304803588099999904072916826272105258585432938242630628405683846716649610936019834737401043090491044450652873812367380745587754562894491101830632738048566490852590250565420853145093248983759166382464133972090963581554298332252448299304089189812423399231884295308845340500298451041697341548849520345193528515448531346269325965419347233899459291282487156748936647076004473806416853851610446377341137040122633613964173038906296433977476553003593341126745067950595144642010556483566910793844584626681272678877899042881672250606973326782902800139573132432518395764109622123076572949862337237535818974387140571086106750148152416170736118401555189198815269345031462205815305536800078458353392286138727678988516602042309671697666691756987707600326121799636281258280991347765041935065787902343427025916199230756097035853944107120028039801491022229918759564594202042596469014411285646800826859192044204664488917850079494389080007779558977385693778891026274759868817674281796595520232824043355998051956297835955257932632032619659285597152077930671152617166511185685575813141419825407429746209913462758956569979584705865697275612270062047580368456354169031914887005485580452028066419397642953624593919640013545676350243797256031622595482273920288098545027246742829048612109020191705562714810013294597749984175724479600989190436152827585021343975337534657128835281762832818625901736096519888007793718438155228789052662438334894071924003552055145398568678650489603052103094074341334952289487598353988319206362406317068112179518999856320926762573995815853407037923472564249054175651963834282042516279423508142184038713201851305230101043448402860482334531260988802287159769674559102999884282631192954168986870261925989482345497057088237777284520616813383829866736311054070449943646475366494138292774772209682204940440981891651489222547135566452753537520205481887693070982300202790256642556896313187307939806615129792614111529682044792883764521280597558595383034622425250969926225503484616789314179335328282386781150035954956836301639900377691463708651657366748925755369004982897130582828711148365526336398534565097349099472357678329111461064835912773924103054310952062449384486324166706442819691332008166740960571444199679215770110189877705052531979902264899497991759464254984197182852552398706488994305481282626690762861632467111561484948984983015402532616938101873926644944698435558349875892511352758786287649505779102352745354243658575240426996897797286291882171267272656669096281948604746783891045665716582270339784659686537836644793999839060317667428318121571284618836083989146009123860458585686920852743417243654319269546933598671024610083827517170284539840554753419742167564060752558931975292106090805373889272252089826078227769792377867011907372420341862391883664003113492620272048371046213996680201701210881888386669292520740952300271738949044350239426116234240926814284127800758276329969950319691029173917883496101103093185466888420662856442272361544707512232736889069248018118504124912125057342407836607947846705195217860909452298792939289000714329541525131756678285367510495416689335429244117990371632287035599797141301381768886908507148553811971748724784965189169415264806520015615242027997388338523585096765821073710777714926201177880417128683179560303041263557734531174630892066735971884042235628081265526319875926193189767667252869315467975952080172192139546032981041844867976768438326336750960430697579144640939095709490281352207046656043319670657676458323235751678048621980696869707058564718523117639578641002866208372270863888713464593023555683930646061164707383840504670004895040885134530549187550003276145172516433446060446068991943802280023793352683816539757562653848569784002195064311914900200878630947390931347980939665280626118783012772691637062574641592360275618857811401678931040038464599352864064521168031385438381465464120343228654852714954135067929481453513797883964163323394548846517414413966986565276116596624296521802134218269269119117637849401468212162911662699676779890775033573503841174681178628782026672233103646333946534208531579144703967075704005152002477692212756132178738528897860896633833165280847130331645744939200595163680429309396216345311705737892940036406845246819846018469597748428849841331048736985928610897550327865281594922448472185604691228931495665045151424055684314422575534123900777594706369042292199535664100563257619129537729701929735403112056273438427902410958133334637593072685886887708666929046341147568081447430363776176750492364828263340780348921401357552444406929860562290246396531053111464259194799024609980355514034994059468104602629734968167482278604543359104743419468479551668252854804120729922671419109322858431545683575402665773441470875223866043978643562022066085590975538630421506916354064692832063090788601284588752719804534762849908502715139402048306780861075477491255698315498684258047906324081532267358681424567581510783277888598417067442199260317395970504382457639284543206939777255392945903204716188491456870118184162564128443180490566073845479328800607650756533090815937948575599279407012495022084397874065460345555348067205746671182387949496707682542010439081511648713694559508883910099837713199912195098618262554822184286911419888680253359907365187957860697129445674302735338534251092982803999012967358876852739067129751691561164233171801682194271491375355220029329471652802089009690637894990121894075366410544206733751771624993303591247488067877424194355651609759856234662756138554986220978564090503238786268051427390139306040006666811666991552363007679629722173312078263419025658802503809950028462964850433526161579834708719828168162978054362951949272679951942718613810270723227321942866018924442350304415105490859559252293225148358182407942125984785856688425785934543738715140981786353815514302953592165397084089397366770895693012859278904339327206369172859666236240811207082048754356410800410733773999091979247904217921612408979350484861003388224477891338225870610963945330768852226074819809906997370380041662283548202544611089350726456306159153009736564774339748290429968597814329608734431675742339830993494859170526713172760079803727838705219841783910129303283092649613886748704385073606196805241552642101065912413936084038832387712978378312377169955806593316327132321560064556458909105786936494162005142083985549488211079953627836681815202673323686336615470993838471436114411653282172394074259490689530470878465733855991348301118247519853062929699233124051008957196293698118206982481943045238648020238146910357836141271252750141197000763852483200403445308557671531002500276543419521695859992113014383087152924943940352192673184827032167095853361743227737735092169780182238485165362344312692930411753671333925820963183037685186147966771680947512215459769190468411786849135954675381249581608770453518040701559480499071012983248328230456371735431057349260358366738283668125663377776141987518627645665779327969410089145917058368303257036436491126417368948290763479002108989446199263637546471742219472990464706339396902619257017999769964845575521271193502178000047455657869356479939813296434960078472476836213067483882315953803333491412210279098536039613165613442311540632443853044850743610937007853741671117138507496984617289618673024568285890332910625413820480870364771682772301561030215838534080544534476225437092584198996611915258286338561329739568509978167734912030902082143961111065071511365012481970656117001358044807536961543515801583585446726239308103872720494579962837820384298296082500348337319855359630212193517313765004943353822587023576209775316434765155351144815514215669069952731198135180596119270594531140119503392799656329506334384676520636918951313430695181466802354582290903644820277324784790031700411902703101593681477515733851253074574467000194220274770071473582959842824331718656644388091755875221820717749496309228987802575900854263773393811044850286371280713404099297130260344788054294151867002981392851754580268104523801562588586235904833949094400633127206224263999728725567036156542550831634705178606630537551925261273938970457083927825355612464708911633773757599140444363344960468626152804839942449964140789028965901671323966752421570005081417613578583304841035174516786316271278047266088747794781765190368993425761914011046104070616707172624633915718484274501603264949496747940541430674812078781061550950740052736781529423692521521423215024935940399631589974911393904014081046787339348820974872040717779881574528252453717622146142340710613272282234078544792753510153960862836781355470475231785905504649066115031753428687386707466379629688779808872270463598783732562559402823570570682931770801590483830748849467169391877864050066851185410640146484783034301974987881970878879492837751095451777294524240441108893352684725263678272723943790121199480282084281864931676935393000513308875454129507528860164350864034056592261087852593809883703283777450130806958578603435773559196194606008128940573071560344108601571377602248871852510295412577458801133646861083833147140531498333704422877284538290285604891922850444218554151801770659089631951863895489858301596307388632380682917664324047938038812726868349789645017236783534661135170476419226666924345968891871250308360152798475054894488516270568055952156710385646420268269180273581438494709581211278643012243077365699648198238493423023575173873389543417944755092759313416278624212239301004591841717815424246288008638358964931049453524520382329243853064352473822579252236044700612621477388910304418217931826551760083981070095273650622597581399558154437465358003235530661638340743196506752212086377583358220700887480379432312626231338726845487752522882117096787339071801887251170226989373889293514155246875734113828439345079689853949373094754305578651813040454962862709514354876816352012973572590575067083200000042340307382895856675685831045777200898669261132421143806994429942455035792995584728145388575697410916822707856478454128055369992764386502335024557004835116855793629417079756590391420911281947292439646206574377647972829314376509754367106533143164013428886364838472562244679769683270987215035578699839600862694085470592830696778429131420405549587645563717642663848037337446721251312521689698715925675065852015119743292592044639387201240947954134711473446631234829004189544051543825766942987475310464345215807321212327187787307844145528661541292201084330538163940664059936032922700553434024085336356504105452407999549715192275430081807356412413320338943161490439998909512619433343572660790670109660755833139921367553127164260370683952214164727912958991644840452709638968071371689532933064774524507936565893836353075384630898942662294834861084289177143675888006253146852349337372422315091276129959795417038611155396460989715274571887430766756521671135391259990776087532365804783240528394173630259019325745946254591942746694167525163010224395932339176003310611290621161440912676459391383443272276264784537706538905030807091506564991563270227744345289448204047338780704837236439458889405271176515471856279964116552774038801070393290530967074587716837694002253684724475714572287774653012132627058842727322854527730728628614437716816293512078299811117325289149729226032102091131617423857350956243877556223836645740993971405257876364611123693834176261385544722751950475687566847634399013072757067646119623279081465927757456443021610599497936481119155333890110931057524294647485775595222563787614841945324135564539924652737956147256928438942269452649221981333360639544237562739229802191861766417537851858263360829147331795824029550058820818060629466696423922814534632345890745343853076525780411677947908067195621165420884186697965805595110413331871702995489947204840394698156770233216273680848388583632929890755482187410503548240007297518791756933780570142079188064123633328855926440197896266925357962060658098974071965226781802954617434713706260899111502106831184598454916280609082243564183949227534016297617107972376874874692321336015861516788973696187379974386759258474636898622024808205393985386218025573304127568058939428665947435367852849491426665030238349551476748934662812278125009647672042594735278208073656141851360528752655104411482422588166947175980867260752568843773802915742728380772006015149069614497724217013328900974441531424648459984272594199790200825754753941564359763390808627835301122918720994868452401577049270386773206959508219117552520961026871425948049261789660162411120032874026752610328415313649181171745940149545996453959483975071710610456464260616756827677093272566606264351745977111025767733138823436912865189594305894329024690826553195600129185162418088250510919204502143673398606345515394323093244082075315423082411238233893048976390839799459657543142311701954590721083979783024057631011016010524529864621908837570632901524684930045654429286064486705849155492627904245097897242687546907985043641445135212085808826069621912016612106214323033230086561731152294929873830559617756093033055790944565379472301453287272891443159638939953257401173707998877571276523366356755796676922523855811187803959929046900656980728487630347450905099039781570611401065540032280663769388708294905145298080426246028035869205497585266050541349727843225825690191184893348500545560562742041002770070218825906866149420608213460321533746181879778366436615328050036286048933998991414962434155434514214657597706417556237992843031679280166181217518860567946161472101891092538020717850667381965380983230765362809539001425815441785275001035479043662959738524021762642217947359114069441691669217688778188901829227556760313052751116208068165206922120885024092047307983055166983858522870891140615820376837777392282094453268518814087163323125877335349277420641195064083645214998394030324804056822908323661429042058478450383845748809516136239515321273394354896558646269859724821033676436979720633761414325922048070806881294076722365816316919156631174251995966122647231486587246134178428589009310967771119495393785209348728883858313294895648349683688319687778015882529651750266986751554073071927530518282254808685595922384800592955842605839403903646584264020551457882781731754312139584278177571218966047105688713507460059193708997812240752721211509360482188648977368387267152557794811083126887600348033351927561999618510043601095623060872038850650779811361841729952493037331913106738081713982419686254592501874805981137455530196141900831634719725464326291811038069146377174312581429110976220782519733541395609464608831101472812163934949002392256451198592699385856282695739296673902274892749003870076415917741490163344538629041213295830685881359150421880799914961627566877083032244476318594541263306810123031308641522584285862644134548918420311547785259209210880564425360612926990061150092703531376773047913077945108220236865753216497943152829806398376048120230223309107495748376281452686442411557960217386776187892232235648424646654788621582710307441387416038203656952736388520732185284097312152785971697898795630099646499386028929615838916308894028854541864294048271916979034289423863588939349413210689545436103187009160695436780966408094582062250911537869469574369161208515651139533298031215568447285100925725647813349348839187165159980671366052327574214112402788875256312372166287277703796601580090202165993846007731616164871093177083413324302964002344240852039798026602174652396716265781697169616844593954768805093568121105288632902031839633908011217257369923750836231550328474552136838654741428785227279466439383367874879257688616483608402650595166960665325520529982459242068553682731941351792205010264931022941965838457509480283569686404203483518422470777325886917689439184664112825236580502635522960955402424039114505179950042773641285178392286951920364046074898834980746597640027029130853174586074863209252551852668675118891423581997700439511924675836224554202509952004040182075982634273423218678445156326108933292452959383170997949914200849794490979972545115853376999115580756152027370575667759546903571583874075204401384526638967255377190932111536722574197151207120943378974913254056680864039511370189841918357181468982656970649273767759996806917851815626215047719557182076022695180512398368181791649053900941156114208874367209430047211136251120638980846330398655665096321938860003972437781790818075698510263598792222012606036913150119612838525013230555029100529835022517401177545708545692951024483127291422633731207711044984640812095942409497368899488904119078895752822999322357176733042536052659644008519743673716219388552324219298667509454110283384748429324807875759581672765860427436043743337988380777544645956171684363632324271546186290232920350348573081556662575347360853277017881786882555678600787872887735515176572090399152745283995128185380983346110351086885562006613784406596539257578588243650179686084638492618747758226058202922891539608489252040251331632002267020743843795666777547217998805644247019670609955285770963379514371994606877390813342131151479164865226063712291530703152696125330225134929556781895151481094939357344648839387670345971670142863902208284300129028125988260302323432856868907450431855565998681511309685470686827514639396420614185566226824685780327954428620831394120162508654374143403246833055118551442417697802607162480446959407238140458529825307520977680617731829448828672617371411890291309887270976236053357340661468905984958469511035813418187896944109972973098457587855035249308278655274554201305126846378301517176619012852815403698994911202719766453933354878614492564734087219611598193921091382400795751839807692486539341589852665076476044954607319748442669683394819573417852219018692940284588511393828175522550376747205016606405574310759045941663530984823866596383326033731465992731546662558632239056036185978942669573222264551284903397202731775385202952588275053149188556054621206751540448892059215633864182870360123299730980852413751714388734955000182476642761214303144285862392450001552609172514627846268626594186778904769955638380505575712578447175933371712762072535069043436769787239280063551048233343711370680011068325321996338204780021151077627827815181947766803012625905462871290887889162587702794809248130722409636535865957928964043850897899539767551907091579526226691851516330391358963975530699557788972783916523912065335025660933700807054371803559871252959614262162872798662676788591887328249122034460957804322906658564112095106708705456207601414282035009549352675973645930254498883758397949649360453129689418334724998331300482215176412598161828635899705098667718385570690806864843868545962281882323169982334429497946610574633549385493083191345103836933222876124002386323713292238796406872659544786780083673112625844002379163678640152246664076778940262968006531971758707948382617859685100201051257999554768564141984606807914560025112048615112070087415048896786155749303226860981232393052563395999971034779678574663508481937277348606811081556028402421627011067734526530169522958669248944052671613915169444481043985007473771269462920616036035122499567644944375673907558516736338981377168068690814136906406802070865360291056861073759164944291287201809746990748291975851094199873466427079850942755556395023659865631661693600168913083482543971283578317048782038263969574223742418045075332232109695713315211019050513558673618912929933681935022232422509310549893046025990358222442495025444256278240155270621207846519943438772902004908506540910698338073504423437941387965583668955735491432411151008150278622673187157468533255833871820315853617994986805059002186057366513347768476267111381640832181626104672108117365853044541230659604835536647293101484095965381797650668291846492182911303216495414396531529557472923793721826941301994836023136935542237834585368035206851557897723229881180862944077261562841590470681655406836628889036027935224808501513506472168958049557712249979899761926476475437337981846359005462980379815377771653842257472826909331615786396594449370281395868239381352135064052760616906844537227194727906331654063523675672540635707451379706845474842079471592660451423626871966327115575433523407486701994482811815428112388387498927487158410505457263260940649305582506405590336658365261882339453538167656791864124680613539012247941446261905441400525509687580089471899864762169854130126595569388490791527402593771797164538631104993991384898647674596918764985488880446805647991608649677005953841533960108363648875970525044402440633804766950078015561869788755362843413861126294857427276455079990188525049878653769467455153594974407340413434522407139230060198506122643365259684782290292708777603353366040820334391348817844266906769030720300510971948591232592311622170058458280672537631426337691657159969699402996459360495049027880516514043605998420119950651846730083207624052856321397900582786765601437035790289820221977263100607576387804952011849990668708576397467290883983098875606361679461556020613576525561895691116415840260086149874513417634138637622127608356095421153569680436369371307369849479811534756880577422265625806451301861024157249229068130588675591544941809216094536080199805091810254037519701628181646376308841062349260750963801549800447733877001289885519172234708686989016865609154615447226221075269743142468600243542382421275780369711249610219427032140917245816506577996968225347212953982783046139735169743333198579835795436886650177338507767202511531382028583593646182816064221733075870057909940448834556914073752288644337548713282287191489220540443877591614105191614036325006870475350318027064207307816296492181492400852314894492518544884161432518549084106609502965168943377301881085917700032568225880441034819938274274512596234265381996122394934093745221726999430904757000898390115494699662713959938852804933580331926676039936479191826360190808284495319203336757803061727587434587863334958694912550715050518778437990631139477365559369541216442977669682506682214936247458692908541779929535004130797649860026339818966259731746756363875589415832650939403700413464490846756055823367785461773475389219457523290340011408650841274052525451987427996916338452187383966068760038986458729372767890706418075456280739717252986038728901873546478477844827242471591639723860095249475136573908638678099888755078553717409339670151863198568060071973128020446492149140197477770073872674111184470417412525749196850495268507010400621680831326684610205130188936248852510593983133992214137287399893930778070068376149329497718879151953737686073477562773279852344902278032836791158742958128578169313301868066933526528006929000217431611374997675443503312934347027588110981130571650205212252295831731738659210216981491878743162283650782967597754795951037963612805069405934438157569441941028622785873651707699405583436397051330663607743550152204216189571063764644658960158858247699732781032784355225662161698681262003079084647950288827609508244322902001319253208779307082795586396377643060203717007957895073897986625045793611490234750792377202158439058277272607183245904741439972082454666875154948944036467944588421024100658204215291354238942011634819050980560610062395543734317198773560340984984477020013009964200197576978094978020659785712739831802962736604109567896631634762023581131723406045616812001949354689408600385602566118746511819055047604055439956957116264711345864257484851519944386051760413269903337746884570815969256904437647545953068143123905879290109573564987334117109980204744522372787442695599613323393367470129963732536664091629349680870740843208043825134657675511632550486482960793038750951811909782765073122278324434767650030091573690668806845618796286891033498094147896442651165467589492259092159211338467464973394122528345062076570814313548013073161674591436617795367394004200983288956004047461776677996455107103077594110280654494703325352381532889322767032590342496679797710293431408142161252421829350298063273155000012529985897959422935991459576219581728396689052670597635563162130636221064002968490328164025207814750422311473325812739816980680220379273683722979728785473237305507456266756669939999182310374996375375477828529657545695822618380351466482513625967137558064195910609669412820631428814304852917208838259809574250096124660186103953198805999396452529503847328691788252820990144980551269400026139741143707043807585676707162740354158982920647003263691565285356144284682015091757316058020036590008996405916124773974612946914419862991777705477545223276288402605999958221181525421167943803608504644072923449128019904011741726679441286653743763562003197030010006072814731626656520330375975929698088151559150496634475913528922976813739723386640776312873436209803338761977108403933038494203561653746468277558088266394605742935691156582447724030842798398832097042973248907734731833970739626726210936135894047475741439863784647286741090378448665060071828325356606241724249496666080829371631011462231652720932787942496390528872218123474790863356880203326522220331306455364787045677400947375783232956989752821707261213840289305502773533355019551082724878675071517258064477269351925737700819113845652077677496097232018894544096931233902158813397497494244204986999765194978213977615330690315901355905005133793070390731898283129141311691422157767478341621844197419277134503824332889244741854773579923227749327305132808148909379110137123835763662737828302739085040340308538590839420121176941346958200052825818536874278706093657670337376375979054592893116294811869089521109548359457512336071274860602176243464615328256577203404274158669825057330231292186842890938363360925206262825162904047637598836125578844179979843473344586198706188509528537411372501958843271275183801708650994869658241387784716886268479313028326063775778388569617218655835088776839829113173949551216615612839768675835474352053773252060762338748811526041038832835508793344034209392373432415070958779872576694619508135458220390032895474645257686993150033839058680782934636176687054565772144270135695178755354532447473075296562502804647243731522418788212197865693799660259392586043464723394339292278716063263922714315383368558373908910996778799919526151966810042866805802758377706227109248829814467039665663915104884366387629395162771345166504535344963398543781384319734061226302395930488054622406218023104738435598478632449919473782016200154518256581620472565455736925358728961480745161138753293065781858747303197436616751912652521068329571484364270105783271277507315642194877951086339149623658806939567976631324174348472203635854780427013786659924779645815203833036054486384704917397238906390312813624449523663296263739045885477887792668012830927297461682953395797134646041858565360899258967148336531830501602672378806378549422732690171056245523352577361815420368922786689191437454711555239784854181967922139380500088660827942047987034459271816473693828578966383660203471327322852433740137090492048936489608859900887309298508063199115507668567427623467872794317699523168019318352579401750455461911055197785041513412521839657354869293063052175288787322549363270891720933878766915386024071637578008176827044501270984247849027797859201644831194956872285769224375632649055515610376372566442916354767825949875803091711014500072609897307953220865124130123502121175985259219673860465357025894540190514944791068190806778846480015257374509914723546925624842749463601408759455668274617015648201081032070517801845372353001109675666805440089934336308622299318219960636195877577994396531498089173931905839320499673855882086019913600645028702211034838852049517908729278639145152449205108087609895921676314157285712270054046182391750683902119815847767599671195551133244344944178220641997716772494069495070338344035890711624567143024700670344418251256671915608312540744638127461208079793232304591484752104141069799968070233433086729716174820140581216869178744759874295621726433999718609533449251255044293542584229230005901133336309245148157789003223791767302335302509902976790490807424226313124728088122734753496933263762114792384265130466472385383977718170551810308651948787407015436834926529968782292207960233185116479499746284899353319286615488435910528359618190636432979642612389548659063250522860977807701625333959032203218535395268379166909308130931780599530046496308914564299385609295493610529793348354636758413446479468503337691976958209728303724363616316126970472275613342235552064991216808412735095361370562801082107094577679364135615084385157673880050555201052014626116776423867883110661754501794510658101748949843770779311229142044521365040858096039659011692150280118200948357758793472662737611148187347765852087841192116631547500294975371082605058354397540434021100997179891622787811999392150276018818032283858555962571711149689943821799385435674360296121547162352569566711320564355983349476717651455370240679389775636411514630429253108376230664176902353887405949719731800684226923032673682686536050049831894048322119456753531868947330062348051072599253550678820469807196117712161109391817220452270551021094893593553486681698505008549441666987364298979898662771240855552388248973668179071106680321416555680700870293935105752199967987418559193421348179868521636065824063020507592990918802563716395681908956936832784904304907566688316565683614073663373289605880541166285543679441869169837268838846573520092195249576220021545217865461719133155006831583015056244543824751799943429151220904233973430531110445080293446468441326670065807562874127686422993484573408439550017766162812769753794470056674151188915283500202296342829482623876156727891992651832898885412168844071691414012818609166446767862512764163507975859329409763964516927838304754656380142734894812922678706382039877741945113082859700764445717825026107788645155253355789224237681320876378868243979880516803811809669673830621077864281744497427538353215044971942441350732057926089106421946850134801483331296129356286211989552980749939137845809445456525692064810690302197821886425192984131212954866318636961458280738759358296014648485390145278481232915299292039761819525697335403542577724282090131561600557890797242532100658473923123788284644114894365849842830057401822000688193858424351173040873823222703408276444852404216001379106805873298419786865437661837989226713946137457802749080400039198341496523142109144404644409342127565201836061574436584198445516428118373665974997510041444022464871388060972252693398778381796814318995865199441800111862196620289959056311369147845356969099944696602079571331116710484845698045281754318137962694345082598560266034047335652113724016384996365922797390653589108960884603367939617269390875011926607463050296067893103582454542042723962693836005695425814761019067347571290399436206986965839906045915258620856199855361292454578084125006124011855482516566359555484720942347925360148496610612433835825158171046160676682127672062353333167940791473468605787825179968525862165215505159196067043626745646277005804128433183595868740145079868450710595183902306049484664696148625590186665123861644006260639103613822283173407674633671861595049212572967571365435619007491573710127975255704791505689781715080680992923694973914452904281413121741516276590946946575010229431146550848807600077502253203516853453159356264074873833025076490577275565308135365037127236065691712554302499363602765045794077342050015206736290571653132043508367173665121545188113406366510418881135066054527941941244819260972084779318872695589819285578032964956010197198244015371593128238487053758440994971805256640012509931161389160943365409386834929219554711879188899088669332618048478838095889067493626303767018686339587835234053347078181192625441433770262635207470836208612449696086783009500045799946983462739682664635344608993842391216410770828031975165402072269090806195682567214182072870438609017900853226581692649011232214035818325206579846637412177988673470973397820332599205332087126558406682450619397871812994530017912015666110720266190012803605271517067568472603088680272336465814533640976040600055626289139738096003930705850501758034742029431317590481951617962391379689826531714574521721394929964398763269521945599960937478983500376872448420504701114090277384942009403409833257757319771359142790339724307900903961868806183342750105407832012298967473997059571682489618297632991568308690775458232023228072020516136911640332370633271643329349151763674346747413875625599946072668266138445295642261639713204731603867988079496941268366553060791851832262030264171878890893226464223216677646485901691922510919828085384650099242840708395042478795351037801129107452838933968593427153820824323629160431823150623905642740392664922616774347904461274902940790367728144167356160334907310450820388307781322439597683792310392299771576110493991624782969277373908861500756662555400704010002730972502713001335675476265433022717110648184778331616280508839805271724439759370834084451702737754580257398200554681138436903495220075794997065932647514154509217792544973152265610267985364066943402528072732315621013250163185935241159496031528645305630230407786183317552911209688251271884779593002876578189763747925929839513042187240157843939044490296022518186135371942782358628493025025740887394942902728779882607277776140125205434291773484985149858592557153523386936273761492675672118911610069102962451651725769089276602855849155858336582951006352286391552090383045623901941232559250692608171132449351935706550275082861663804559304168448644453655776697380786997884138051485608713385391999120627203925594987867198405567000306707891588914847250925299588999247378623764171784589834819293291739565330437916636059957332375653072726764984567577965796986380408970144823124753180073330277024659437813491790314240662458181525136972473576190443513305605731757428986698249214713661922946487478446751474969243484623654780873457709371859868076846710680513693632299557099177809846813815730865772264388767029612339251043612182879632918034679806503408722110313341207811136928485806668135172504792822092963509068391174703133912418199499905326738265101108176126305905296105870732192535889443595593006555146551196715606648828781122023707574183242673628200067831133517379533995131249712333435585997183156289567889455293593574769296347877915041628670005674911576346773346346929762260067276274299486857536502952852949006326971139012970652586143535361918908385483918580046978895524562876035653158472849210343920971925144905856883809473363842898939461187856772959247107661420707511697231198489467307549035292089493880663565378611147032359153072547099270164384628519422602166519487740275568470731084749815950512313181487711075100122353142113349826736502906663214063093827127443057760179926497081094561963849717419205747905482315605271952566653820846939787229106081106025020240329532927555676923132786311753966484302809969697330779152567924607297404172816526455447151738813334852341546796341359480561997736460515058686943559234995769148295707290597318514129129648028114236154741722644616921045677788725921585144279229445111920019019110841848584090188348613132073756074160716849503897462614553614790456855818467670171151168645919662703292751803820409825512258235802229026989943320039019909848922085117720544708514057043863679356285542175367716037494249099120238540320398887594918700789629968377293274274175088105721708924357604074249401538133856552076643220225412942710280616693112339522919346873579364680073644199986630930998141159360437500639681360132144410563990254821819561848097977654415740882286435797739821808520282538678314380383240532340091118417260285383158184699763901239401635399657157195778505734862217342906219771692583031892699307754338970938366554497264822831776399878425404062315530648924111653172341762074248098814632887071807753697798659614140780703556086757319274397937352419963738985615313476989834353235002754139013580629293308998116879996604370747109341792094802649394665569838272530312263532234548764867572325847135332635526330127851921717197793079679882161549621823305170994602479563204671818975789591514996271057969346329501689988418217319555518198346322424899901866878904800844080337590907604547397140619094877577015260750088715708352631888241821563565620680165155149833464823487734768481214647274607862148060726439173609056733373390973869999614919918539019879790117594084061638635623513784124521126257615934109201429839367848401538275142578854758896053735502190377260484357114135265457063272722928317970375867028341061015779122045407147889294902029065867633548004325183854862722929662989860823832196006095159373979586928068673659576741538951696539153152158370703125211497828166492824191675251187705930658065361432140479117011272148274484635562885321942789214093596794850701184808303605062906140898017186950717487111044616476066555441759459507295776952373047448265075200687646083976708938521221096385444257369019078035290849293345560155702037815944890294657188059064737349983056025167419159225702118693260661095683183606052775133060003016001392433091437973943010939654616027029299195605691586943011158984191799554022659679403116779785146274110131050655914565949413864608326057582873681833690643211824526517468848008603372857128325692045728451743228380054031069692973663621853303539155686519434172141867324056049754907980311355314856436187763418384972295352801617950410652959797077094991175218014610034030891011066878209635770609124670836979341021796625409011091431251743007032378912113267719513603038824446956680497487353706020467285674150086305728041478977544260509312444616621137643445598221253879456273175732316662403559097737391873796734772444280124624366546347473602246943557420073614889449436804348024167465352562937024153734115611088942397083611614610582854844334184732198887759564551218621152877065971788415285884200227213174160575254333650796163149350504113047998284082734383268350369158688258071035489860383579916955652528959306475406125952478393976432870683988198070495639539756912934586304629729705169913169238901075622720157000162372446564764696607711598196713663155756631869862534284950790857880182862643441148230920866920340769649594659917348007434878945043361997650888203573663352283030633010963573558374761648862159853458133832823893866388792634304221905335098717192606887468044357896070366098036955499202413893435798828401252983674166345281721756188878085503956101322685160766158433675518099423477374894050637754971413416945269270185881512031719885146954940918581118582894539673131196303047861916394496614703801253823846176821313734284178609736302576263032221709763084558571003393042634328917683290309549178019605273490159444062653626306581108549984274369131698038657173950769054014649181798692776951512109652207308546584423370732037616503408353960294082444109860547716286536688759754134232067514716746884101965612135598313860698614383406524880588447212410259441020540308977599139077953174770166392635589490683141413280528504638098736668066661471033780988678021448760553535537966194384695741397517286364038938592986474083656301789474795259553390368664029480214644368482801113297292610009739530837577031694624989442905392230500266539423051513953977598508498684879878224842873548286230895379831671510119360945647450586095010197366071700461992823523682591511853153152780862264346590453337123224124851727067662899479549392505856075349046959350824660299553556266144993509903616665577681285225114001348310575142949984233064607537152642522448957260376444359074021896306919241076434207373382001062967015856768053176642148922137139894637538576205642060514779974925799502851788732138080080687287776317635782825387288771501832950881876534968980672241490159686440577542546331976740072283586419460577152095699523945565546535683364164680875849178355569216918962847964152085204690937695077537244146185639268562552629532941325804644590303038326809792869600968175230637433661372459210123377884209281557581944197197975998730604506225135444736723570272054016939242941726063215281566023305647644212326435450554314920495795154602180133570700086941367270234898958766842051085258218323086902892027880630855077419584199026832433835383292195532964499316392876637485156791078947579314101609795281007937494652056942464435457629587380879702467555386322896509513059944538839901184175582316749837880529382090152797782843908940729349722648929035944198761949045452304394250971395581999628018026726345254652572540384013953855784413930507927564781318036925379423999138627922763844244834458296714955297672796038089372208351083213303138749428143313109194478456063019844348960481692786808507227784941932630175465316292794215516866440242101333767318873996507634558223017755498147177074971304996602960882626908497686847736844436596214522216979794338760115523632909506138764574994876953029554189545539182847834397656405353510087595044124903716323844234220382853433746828097875198630059911744745517743951867728590277074418595151420103607577598603928954006056683793820183811923016048689256721274242420561785029208144623677473121167633205535955902936861215082871852532117875863183414228675483960428652817937311719660740992570151413744237499678331018940799190839740650300621734585926541598870798197088779411291958420892636201938024956946371794455468208165685713942084898632039136766605740714267569309683201073265260449015832856971238750877938679014145277148136691638009991781109116198401861197785420879217794123224600677778645157935379681669305817425820971060401392629333144660291226711547183798606553309812535631712038562839040065211102311584075384805310251262097658374640340627966772652653820189605888514760988887585514219614278267746042186357966556897270611766778368840028845073854650582232118866892324623929949953376239746613873662678566076022659129203680791219229528471242311161082218448372900359820375182770190741576276212817166654352694299118909658220207863573093068081080741092015213546716624370457440591920734474125788597311841060709764993312587739914072341055308039356734867013851152338826794932034899374869538701813109702211025196756990422423296881324823843232728556985107380735234320884487368717020637071715487036095744994158860050125856754436743079795603554801141031795467620617372616240040050614292345098661322418470163592186687528949039894747328565704195025333491891148684029392734079701804124636714177523759432016601257014140377877355579507696863241781606468444302424107988987557461311591348424428974563712563046826869281528750419993635693878066610537231613829970713421272384005294814734807303338670925615505555888476766774453369845066989184140685622323767496442936978184696484669993581066461677165780491024201064556681045474256175049880439416178284917846565136361245961035835595776085669576027261595622143454781385380518644603224016556684014524048936924164336413592160804119658769726458066997103150882414136965032162575170793099713148296524316702601660436379569953840978947648558090019989801702046499252318356014213473748801741810495007419537373034680873925788332532194685563685875727644125911435220971736884049016280182003584869733706202288899893631879324077156917542065689689535705426914576600591438278214127504738689952216993795868822554877456293809536901644640284359144142983860131928490207176436158937600136912587467275257226911980747194829965784404635491452502636343995512060937148067891985756339841340161089032027307855970861568675253099468490527039745683945431651005005703055056249159796296530029230987539746299419792976178742147875761771815761807129878718885481393134604435524697454148766962472633650432290057023468503523195995442019922182113674967670973234840568124120788463999513310469966918590446822549345051011691761233961351354646074040547535823780618610572951016871017400021656920532979232127692908634080286892555537690838650229942805637856907700187095454010768373039276739193417233108386407257765784486108791614349472109499596756500410450421079789683563721589193723849792213773346905460243923496630513104426462700641825270631488274075032438822724271498511768820379489500486245892616779597349673973097639775537202731098380858833536548967417505859453480429030887525986283893527723187580551108020330968940255788096237782727774873391810786772937741777555590334564923606155041151469074818243195104943453388464808492788416480336427278295066623896979694237557711786465018250915891845813861551870237496534680980843724256420690060688082794183591817717498642454900200485215488938753376193823292738490473475626936772101621033932248771651969806490026310820015219899412861974748698687589412343364142530021145203785139459934601512744394968407552047396727886792459277511409604767664381864518949765363435911445979207708002466941143334499019581160524809652856611495226661741857407421556777001090996527429291899431699189164917524528992019198352838362629058667937493504290796858961805376300368704977875489283710444122223720423293292213677614687495902219334193808401543891718228262952212810948383664690079214219820887828266962624847198958906586147080317051376996998581111639403514111445381423908794092047299155939029164046023929172673305466950067480822975153506038999881655394242756262594425842083520694716014133993466744981062016418752356571101866501125142080793938171417823560128557127430959756478619061123234916694932367774609467041071259886333841686465483880685414865218509438015527501696425369852679554188784057729081284843006420532678357143283479031103155214561597548039670199371020554975943852023235934450807549030406941744769483069778001653972956718157027863976593942136300209295895362565178981269841190953784887373152688145089244216159927744223655908705336807249731261031259787129931559030658046583363227439223685645719374411828158193870174935568521615905901720004977345847215917602037704168790092746626051677936170299999928770013088841551663693486466831145034624330248882627353270812722028286393169274938390856558782358545850560531096787232783692512683458524190457876707510648885743836191284678328698109735247918637433182945371492073046358733812616719256856543898542370222518047165426581331916680231217560271519178620007873820066848842746244305653006225696423309714330803666919868816286072573945552429627316270797639632759603835081812762371736062537017835889243555080244779057639861733765691638566575613479335372957387029702452534076831205789098359724101810783668720878197595363285969088085531727129979389677026122321887264169541752842545139044349111248891068003648995570698323349683757202374536392151513447022160224013312095983394839474768384330563210650583949535595984541813032477845453527092043156880635596966881490175844111658095625203266465276282975650442703365136048064176072362163187704494955975461302457419011278991690058854648362952344807900122870798441274163469127889247791219552980757568637575761429083684616564637711091719225487845174007802292523516996962021833958793244541098068104455536273109556486946186872544620118067580427351397993541994226721866490315409870190040783918462936959086521882162507455967563746150645209036782451176067965153119882609150889783022587807930548751253740255505152912594267617773791900820081142308349889537711996286814615675659032474551154039045379345678837023211439079043897587935119807881129949289747395791436237389993867880850784916231557741727211960944651383767406900796119566837160807991085729204340608943870620082773668311430020407934413145547327678237980162675888708137730809515430417080955127189657980260680857128716217988999515292456029320243765865174956581986799661087022076869662549982076434682555843414221508149533240260620719923320549196741673942530974317694024573139320409015503161698004737524239231642810786037828540653402632699042256149121001818410853627814491324725845916929363037329444018561282695174396745666594295932000718616375677414836721517123677197994792761562378891994931625554131819800483207095041291122853784127016583546461154768339291837460029392549583674659222752706405910346762169549808783447846254839616520765863050780089289326381172155580450522003427468778533650270124893929646340084525511405433337351411629099630692722687958872501140436088764880200037125934227853074978923239124672758699040595502338390118560171372945671492438249037411567779704843252319915865676994441141394366194166247688972208130482278909822310966541406136670986817929312689526358154477175641879390730304145304414551530343292623950309710428064297111896508076336703745562724989819081669696957954082201123050969487301881634048103224405225591795371686693924569234330091009977730773597888880957115713846156855313138484699805429213514190833935038213812868866019014148697604581724873107604768176434012274396482216496661173940422293015538464033959695914445815557317289853961392798701980524725948494538193579920256242276160746240284209566908526646089818358252956509361629934938970321483687279630656335871806608877122424491212773354608876700247591297924738384306807438792331993235110824201072322030889489876107046785455447224958878758270857894048694074904653572932079596185308156366750108727317344231843260297340291873013921568645677371979051865486121972456396412577903220472055681078635085712139288011541315523309463628352403990269916165354414332784257609206805237494206051823782664323360196136680808426840689135192021976337379999135069259613661727295319200060235387896966381738420150124809189142314840183376449390074725607176627235788244247322795746158527285847264563443025645807187231829240164248822501501404817610300409636089887711518174903173164213194031927810509329598267609927136143581527015233193620041677301835288485088977126718514321603064481553388452718014353881122763926140969016792851728981742864732736756599464654655904323551702003993086927308655475242881537205966433021439962044582144424207921010657475396659288761461802982972678387677533908773690563274380698138214182661888339677870240928540008380934266531405470769848857274540929056465092062668684843828592855350513750996502835614125738117741331478434389614130164806277996002503620118238771584860851866906130768175539111176029862120065904279007093127904480274217346050136658973565187011375768967117827198052817031212069098022534306339599117424415474431680436545042981035729362251228756069721916118850451018412670572657915400055059391795766413253345436508748328180520139425432533318326151510360236986402154399994349638198651919517642959602598961703828139523989653327115409460130959087633511405191914091695634375449749533354974604522172988899847886640472091293571557625777127962260312261853530868850589171142539797013822691007096110499105748255120019927595931476877315663118348342177331189492184569690376575621852250346551022447092737917712487372808459357764488805319481378000065234369992947198676656309161440908775959786118755937411393984344403001738126920282683174894409564455040558695620435038485827160721648923394115241114725847490349560103183124371392821747021800487974301408417195764852054418814568211574902226148593714303853053773182585519430309502694907172556822563379592803101459179729390243401302145256728292903447885256020033613695473955388120115643638333824784231422661758175714572413375119279543517662683062743799248504298390980764098532952902090349314914491067597161462891145445079277433169128157336609014354706466640317639790939553369214964964739224086404495027595926807725199834250860589276636169423475927862324917899545259307991987363097834222188542844722608242154749486400422528378020703024918672932909547777157000209441116459874889676134347426343707628228709082329906559942900464119570567091670890161040271782163519350388509961566173315069899951110140371623873626543110907203925226376417158106927210681093719758288555246779131722468474046410069739913854750144558798541772118199581952927331933884381000231447154303262715244835779235379243068109968959386673301844102219968059579574180965298717702916228195182977168829773020585859252894761235616342577317261005827205152767352541955599957045287348223705972507004304001209117376748297992458658157691432272452099156838835525446221400286894208861492378767837181908763635015159849577797721558703301552057649759359650737337553344896712217866268247244419314096439638244163771562701632019182810354952606105350190839632596763854385911685835776966245109708612013321263561385316709430339783742686381262865273642127074847517298336908596008040991381990545749105410571998393395393039440492147299678741049479248515149968251889648198882837717508837645721955829599235089006958105888155478502718592360219276587498234764378765234417106022728967109806149271476744396660214207501072479748888392793234104089628149003310821929844328240585396684659367287768039810023799436969209655420467416665098215166290890615158680253713828315748315113716858189519013486266566247438078658087653636280155242133063402258284944913709057388144741982041857695084029505378680156216354319770803150577593398398023486970172816993613394854686953707830285553295599017562959039679026194775326018227213614740924506415036768711884994779096446438064390032927151145780670994546988540153664353458031670201276698747379828162778610803610072885425774189455447281551154130277464096761535614591805731551042002942598467076453316094491998920275281399203740868872887439441425720158683927662031312876539846731796828593490951548733914650879624453318468191605914767328535395517448319027550684825835732718324552232467879086038553884195845850146176054541069111665205089864598799647370866718697270841412602804561319486939516067163546280000384347649376729681658000367485258494898186549227916600337149879860530491216925953479195114861730972534238209060050743946847179179843121153383560726054722737780257212322581432043862697204472002861848708068813279925954628462081192311404447423037741496897486795793519428133538384882229881223227120983692522856169014146662488001870189571265309781880831475858624697391071076105927238245227961628367806489161962513571711702758254233653842582085429108735975207378103710151584032855218387761854008902711409012925876978869123988423157431142895326187028359455297886445100689402767343781936796331274151183487611345431211547561763836349488089633588007512094524368060381137802586915846834206632204502360541797109112381476669115515286738767511297108176827319803373328855643224009773101678026722936362163976098720723016911178098975591305410564669750989062930604068035550809772157845755923423897856446372875696175189092889659327180984122273192959107583823978445600169682678432459661507595765477021672415081456262503797527880833781231383875535212701969772362352459151057249650049851377978066991654052337671064956403714015119602945805777278798078965411681001736509152725697767411510261857314149053135903384350730536520164020643003131331208749447189179642561530052755611018560796564420116697196655132228594378924892472397947241901903728761990370227832429147537812559102476143763054503608626678813620928642197705483632194359692680303098030814346386796124068794053963452946897246143055193732014308091369993815445737746794124727393150099888533067582765395703477465150056583249395402908508005446589696853233815914513070232587044111548432288479887183145766157908099471180329121897584259152398949546866472899434047781173547385683538184952648167782132564835780159062755244212346312355221330789714578437417778414731286415791225311993259357667773036881594120192873291535239812415802721115766981044437544692253511900414684199751924031293523472654734299989228036249723832106296468360027526708610958872980345438309989122545943813267931542353783696580309265690505158449479311800064341023284581669156240993235341162663385715280563301131996910362227971721191840208498232431730707872340918838258085359711536811790863117883613141412410781768868361657202114554166984770918603720199312847177146303754177900286684805447119920709643524848937444163671464985531315991880726104900810555207601606644390259620516214718875742817573902983384909414541237877477078055143947864101154495143471004857577198313628589276816307784484636904224652907054228148358325464317146594724846222857558371448444661450038067025592316697467029344262898168609628740013440498695073448803694027914381082691898869224108781806701871003022157874247388118242477469625096105566819698459823563011840622267364562936534910398290609964699116771414076752185758326701567516418968570052994084679721841799378766760639679579430263194696173908672881303932682334893149691187060413525591835375056712449321121530008163607402361254328102102824559227378934820754528015861980282133256272676534777577514172326843220703974906543675407097651592225684557291179783604525056197630720206997350900425003235116300645182680379394402057400016304219050551755771872974528681734627429434007407159029469899295730799364556485478449327614217715568936973323598832483127247498634699656751332429407856247909041344319045325997836175098968733440595183381139640741242522424948393706969121567162301982498577283647153663134509359040999769349447222164808420282029229426337474626000654294184272778884236932429043220415776574582320505729556244696993561130690128259620199098907299704437441833093645639459276811818346490991441586491021241551328984297608639377708648426201879682354717415530150014306447411634708029258093172731986389832831556466409900193175229894745225804145265140064189774642051259939062832542070532502783329476355877171573489117128552282093943766405310872680350353579496516555269050974255688360499348807749306416754351837002825034353119937593080999321222576143320355106759352676667342335802396678612947013870197517532291825536456549054749988990662335201523137887311047372289334468305305601295771542702465491330893108794679447599722257612003228249063540632374733536881995310221203182964412361361218585903750081153399372275020510537024223439482162399835730094915505139558493357359723014988974741339061303147377170801537931993588396104610175511731930870845430017534145925886925808192432589065681920649644508093908149288151306752619758008642904372044642372771533339528975306498486880053380405213643419509767268712910047722691336849885301962303538118784604645771389775959860274193300650901214346626368224558102975974998945077763285643958425939944554198101248780480304385339053909635756596793276108977464398439901096937420516262639409498510289768092324326465950025570487574512833764893250461150549025479370738259752528126282724986630756452940786230478537052600547088361489449274386734054000475771369469827564982205273210761098209520492914182402931352467773917560313617821378676038549803489009232614526843011895155503739002434853800538296851368158116620316071264633050911665931026617297636108752420854600834299322333471111859390526327457522245309151384615511968820204358728634874695600651152971186034264279756159091867998468092361310376502460154483955758146888669791690054544915977730767253831749626122871918228389427769376957146727271472033541447365329503737296376505094016505151910168325442721171926359615056067779945150204033703910418672283356300821722518456710631661870565153269632279531608318149947752458824959125660091683585259683448085040918302748714023848055745151997771294706487993017823461183936877650034590890350883343353952890950618267950508082370813220328820530744150268199773349062003129881154758892512338552087863788740286024483219634176494003930115795067152227961807993865129809633849207296439061041957974714074505122121839160327109700212959931015885914701227793479793695482604314371039850522209219925227652254144008255066856388640787804559073901833543722340713060988991356461813933036234702551967925734778742859669682065764806714243962507570617731934472785741038314120705052447106584003492875665539445561539857331522359559267765304110989941720400491206924328196039938000367663824367534393398766156206321862193065593296144897762965386960991384096130832593819747712778464498177857317105530330309957882175460725174019167732005927499551071320989055978269171459003669642997860484947931523886543960231407302721210087466368488116321487654507204518736961329975795948179807610629445740394879262506523890132711279440385902029714489695120497456276329173252906449321063809938543093194399853872156536005479601877276865216772315113809932442607686916800877975700454934792366491162786669811032942624301426288707402892037874837177565222541100615568369411110139640122124142059845823337775137039709546017099932266603390081694672426131329226918792904076613894470665967450174225894445920051137811425086570072930653311929827646120217070994533466306052223701085062006859287612420886746602402942620752855103546927004806377327225566896217376644513069034997224815917739451230195340342166069743160757976673636277300959194699061499660808901948858157696915095460997240178231978986152568322843127188535605081029596869273847635714947014288024758463781649380962372069520167951376617080610241362423346219506059108229519544336906870445640582840997233116090593747988211712622199832533522130983163071486913331979228137179627884803811594984528070279513601833586331602868248656383291790305844862669143076008235042408623600595892070346961890225690076310388802008047525342350869635431561499593228746202695405259274050097070382948750587163138767428851443115313220188338209436594484552629190238369425115898687137625297536524862853749406006058556558095075721353617358400255939964855692548477152061073241789946875292426424938244769974523501723927194987296463253328738253115251895678798463969238281528245343615033085965454420815058945187039076249431626475722493187689607001504523039553001509587619122264137828016563648824522135785745609727025195568169500603666402093867701694447329783162481415979538633449916707060184263745065549920040093141074555160123895345976981843414147525042712976319307607381942682727018430633945494522690262884082674727426501369117933583148284855364837476464028501603981604954462445800516122024501473598073989492410772229006757023226001267285918382792288270830860748940085649240095211091698557950686426249980754311861592418917351190289150845879515187245344568018285826971184754474319047647150073377036586166295156261606059012843031938184649251339259875278543122523170957367664923247680065669242386690819814019048236647451749320856552339049950112436140542751957964276770842721029410952821276714674117166743218295229139272222806583201257092057226481129230519918196479733358328444411767264549364890650767006965977822244383681108423955938338702814278253578300324842186886741290173054479719791428009673878144481956742021337951739074629440396050417328409116524522938206105595362270975303278772127028371267221795868388215165864773934701074662881129660646831487984988603975522084105802375002244593012532105339653154019400022468865203848220114762400655681307026528763957537124075687275397918996237892572127415573970549817777192291328707124694180056199085032183927895050258550008404622540655210021232879928945159455352105304842066191673603842704808646324194714898708592278405689419366889373477279425592011234572349373576440755110108675703815388777228755021746504827633552302072142896785040637255209968238982146925328082795497445291845442656885101011175750489392592321289763649457995119009087589256578813751241189060344056713559185324164519781149923359689464786177141049479327158657123846385216920976415635054409973431611659194171094899970955873951497552463245190303749457143517147251202674884984336821575970623291794527235339366556633209493974115641366771630636821864536745569356859145056243109979509176136557826284332731074295226960223597116318359739838310924186441975369172227770927477908057585979768571761049356572384520788536907639234335773453342845121785304901444862748583413865413925403916241452407957661642455727425460344001878013584374385258150001762715698554917541443219899765830501006806977296401398348380253384436078795716980491082739100763257148359372096548015464619176814422130279827224151473702036587243247343512524908644899943159756258604462792489131097958988707768604284228492568978462130170250741399551034510694831903092087993892175640358915570728930456559338222186083486494514097413934161753647260919467211082080302956599888655425797087330884584708451455770955752679790039684413808027722515985847194877227159522457414671065606704190094970757498903819431735521670798421530429763924903437272261503430565509730738025293946550166456079781429241310801199015059050336303291807903288051570284014428449609208040015740681985319249410089296662918442278530377129604130530767787423906776571092603109585431650902767768119701986753126377626480887299851737705481445853863254716975550489891118869498542431624796649762843612466288348608769082434877082352513878010955717992805772591426044386359570229910272921998315439503395075051566945756777884117818919876129186284753978628230772479711815709959619811870493773285916645133567897340262042844408337356182591223438461984882120135581228971505838964518987244846714549992133667223163910663663337598059199373334464332577960818158593864079669491312322657669409452025272838426482000314660960505921534449349108297973968980459919384785751221370598336378731951975842009513307921222209333376583268187877071674519286679381818836916710080615152555583948486507054817285440790285867688338748345769809334734707171938223303429560033950801213443816176798535624280363497923607792520652533517902950957520174816739212599897969433874182654478633252808241299441649280153312901604190594909803181005976872694923128793821582495803072520127251258693696713276595494188755827122171819954670407995922490105119947253240537050735025135331109786068138590362996053096797819845252554822278728570877446766751294338835130561979056947066224764831454478245759661757805202303978588903203762371663412015781541805892231922996525587895415538827439627387084463559538335277265712612956665068254397619083832736498864599205012817383695386160193620098767074910400811866122836797739056987125669663424672702648879412830716306955442806192202812081082031090484578923537653096621139244992139907593739936352986927202546473987570386929303090042757890680921075403868376322697382234815337034968022625438212287595222382622371209642089745722984844671521863446278897411896337013869586467969312253836998040455612300302513345746664335324838578728397617819242829828555907696829511581793560379281520529181514798246937467316770238137467497079755367142867343293048203338464502354053842631061952085432241757703592170816047496638489447136431559580494472924810586388927004584292907083030697558580908802435438331930659813516170658401129279908371774558122375573412095826286899798935004655327432811649158883079899608020976470848112680719241707526050673849763822737367486050697340631904848946615483510708265192669583584439727741436256742567105291515923105881299469934486730658622746167209734675606946167729325796684877945629500083497194947686533935086083798933330187315428767520865956439496581460600391664296684406216027169438522765990548912715555794172553052161645000020066102968807656763669828042577190739716940518872126891534340047725793163504144735859169663982299058095331693926891239264150060950700801784810286063798389302337996994797180979769528559244872979630447641325071182056927238738625414784835124889933792453679639930274188888991167492170677956847380685839904631906225592036064969044775283741966504206610418950775564022675964857993260575420628043212590302162763818988409320172609149796631512405206164818590837801644246710829196910836943051016608984086442341548293589259658187466723400503902591029550951238643837802920783356783819209490164640903232813033608405217283386456268014554198664466386801960008516581481092597454715483802970629008060382357494768006100467451709805326232985919001515110993654272948006530047917598442885514881929703414094597116533793471604414057653910546295868424710138546022531701336750744889768318884199192165840090298316036415075637770177320976292222788146023550672241731745316234971744465914090811017533171856426026985736271475520770984433382527101934662134074222093000161161984915207846660930527814425257966006088145396912848661840206375449937009906274168662524623255845395128930346923234362407376664126490631382567152274131167740533706496916146302177197585404283601566554398494186351769348945206181352214775336434475033840139997790634556620606947535125160799728506085862699614877739718969688306778566940415951232410154766607585211440155510187924379383216001824884236229986375413784828305128277427069316088972915033680164161199353651240698400726063127622296534843307426141352035819235472875923503860991538589758305185411929011387142542655004268808613292252485849909841059913798808775623504306975254029693160217618208076026277465895624135074027054782685306742637895995097539642800719253076163146285382029040209771632726502156223328050630480512596420004571318902202064136169601070974281009735999522057840270186881716687745651974791247828304690425117641169545233573602449576835948933453215957690121122086234914116584646302530285277599518855612758834883656454952081604721193532368152413815433320111381257256663678620845407387917295553142485562306203515249271441697528763033106304764224436437373732873877188393267954991227160455153919165412798588382257439062921277533724369699658785191919250131871239967330760150596290884496128738003185906631668327798808117554629632143918736669391207203585357189585829287471761484688160979051913098161857422859472975692238994455298161980672312809785740105107932358082609780139853630431907050686087007249686314937503014416605429857156535080105203648532176416805063328422315731365290570686678687555386275375365046514372926985443453726075311257803049922426074204697386482016971142158663599612870872000597338301986259428915779862497330094737283206108689551822153752233693196690604616909789157479554615568521910246124996318656972443371288851736439817852473076300402063907085889419684095482518270859647495600671123828658050590615873667875955115400684820847624827649958292960095727665541518885382254862541399856093514311517053868248370141367459665392380318469105692656724132022994285321772483427979224430536522173417062044087341207843299709721658926284410276814226895761157486099869248029756451443196546710981713562276714631643901854930356367400819164900833343857511639936361757747003333197898088920017274462406618434242106047128087466877999769639177719804011186256607829822576074322853648375158186113307629585853041705176697775412552811114588385584967365270379405424137240802497261526885333964330141270391865518090477194861671080455818107767644814594753718802909878313015090040837580935278675025361164242085890679343574778182157251728929096567456226523785522522466230213973181776547549204660419848557170999949817398782832948848339063202875943788066064272374324312162340645689403035364631936801824238509526537049105676585583814012498162305776475871405592458372661608072439049520703151067164592822830277365373231840282660579077825651951906519407917418597051590000463961217083766159673745971308501966688546035337580643909795973117857616106969795020428427782579358769157264516044588275725759917606090278325703330904777711449412720510162063086576839715280111845659908145746350894212414618593291761475488099815337726866986409510858923438498393048619989696813120830773050500504447438872598101129738036458873785869233870445155703484375535124768374842178687971699502096007534968480180145298209218257749512059932975230744912955868953535772819791777869996284523503308498938191761362766416287972732006590225672192122669583820634623030821005020286629945509878525769669271848418627115000165287635743076716300611884462249285361368906697968721076054688136558181104916069618654784579245032659481811733299370770945295220290301645396580741669192208392742885732120559660673632231415137825780120869993420708837097642288093354363283478552196237969785072594537322032105540356978895506152166268795563525322713218493111724197740515142995112901035475257038133335103790448465246534415859982546239840976108803207285588203119451224766075401358074810552110980702277273703880918244151814109713721675211183748592749773121082565351139505550835851289924288066082151832169598714853020766404530623311195777746380472516006622203273022831904177018671972890694180763186296062807479777639652948148246271261197521702337814545845615268355249264156558958363938091652532488357617770398667286578664123154961988411917260841572139154743563646668203675281327624500830929348102172847979526016755214086103122155855121405528448645398489964084476905588653524399715296326776831582604460500753964355050908457247061896964213341258701630530209951594427480171001873512608199308519674576851795365730169266057302616378549270959618276218324399230324662679636533682122541034516464710416222298585680753208737407478748218434540183844368502169542355944170422340988399203853629444817084943358623312174574184447130677033423450212655362793104120020470055193822363344831401027341574066429994735767040332972913021300018549383424109025145173405577002057798088546360790478915046591381050702031401831698122358316223210939875328601825479213586700951069345598040219187982909554408122834138202907970790283569410744322352427033751766959486445999665610588965117121312030453775984963320488010990828130803205520408313740395051891462303572791749660521852962190684884064835553906018739392051883121634670209257607185555542381966193115164244913890306247452924189860206528699459989839632049055314799237860520271455965003768041158027821883203206708097421835012813147288109071695865411577828211292555394295452341338886314897151960775595129799075525629506836777063564711275958328854917275030832465847010873074449294247773780071896485893355567013177957179972729754060726784512158883701024589600529582984515573651215225470637130503131007296679515338804435311795563512686692949791282499083946154653498334777985290571717513417998270907499554061603491393414021717676788065226097885296320815811424234983045288185078632652097283541033811649084755180624956953468625431875690801620839907239941352973096546576981610472600339947199182364855988768914959570339225411226086439971439434819369511482029013395878231208746122450566083069527534599970009558816903232852241090737389462645453411830592581210380351208640126622097791182517722434163760985144517461108006854638441353400994477552507568049014325866628461508165307515032837307106393391252942493351789073118067788289334163045506881644884645306901557705702157372946810559766106397027676156128468806334875655981143436510398293945915716145247089514557215546629040724666338064154814418569716433404134821700373261031399579137881393536250293292768684659416690372248380516436728587766182910179156271976543538339804903117469889321258811139019486838075281654325389659939182633464190912474571327182477683006174192725880173228341888191462415099049701069614271873064948215571037064677504276572112605451002159651509509971741807051888613957773449894633071017929470627816181374622036801251431156632917726990416667056120951104129111698742607439774301105241421206833037071862041078907266961665123378017425550840273691666108901541923946240979410170535768763924687677410593272148441600514108536058360192829857521737992080264886919730462526926401008303140303135331872761279491335901027413482030108876331729219747772001496845996608903062230315934320527458715536992565762715577237170249540793884232047963941050582393110604880947354727587306177197672107272634334872745358661579620380716286124822888892589571777052185007671072311027370497195532849459613726880122079666249832796617245299913403011781318012045825260063445321286574948941345161214177786034708412605762503409934170113664608690641356488466570960799062001001320576212280133870220552421052871225014073648549166871516608325412041747088809565925652086362567081202788079828393906213837062927710726960127666042337093929619188301339289426713081166524468113104590244186499753450394613544398458548848093432542279198609058865315435536895371530880147704206846368204909057463388584835669324020016068457933840676822359330843962962077533904075586645025352200185654828724974000589778970808410882086147905164282234383772045547133075661459816537648543843515211865641641212624460990075277824549182669527506893611861817291402849633301964708970945842757239940584273591688696015787356052391030896004474616790577884222599582907273540884947331710206015620714121818885530742930739925824299284198682711672938285592092018753935139669352360342071143543082855077393906508895086702386240513185468739258068467003792656025124985171873734826589315108574391377309498833913920267321670929961787204376081516342289511629511847270125932281357681799631751676918496096663913851058938591293966874623661354035211078280503137764724734073693129754012063231078110573206684608129953184956422571116913086783374770297461106390489749626557617601659921430360840621231510397714937835804601470049636686912959882615510979128854515587531141458965975358407349355515970597720069319303767608747169409586018082189443515026099849152935123657135394911290822010503106223614705607025454448050041611652230290875199451395389533739499245581365484008993401607919384041352917643055337085321993958178096212985823914170351831557116930694795971696308906194736810993941636583570480885330150420664799268186846257534221995261187137004618271133344336924775799524050006115922490674859990404101750556193711998096188975234119800178861340497555941323113798452100161249758301538148042869881441241111494051727332421004952136469280070082046309583861307208871754143111751454194184866910862166898705737324676855960316881548464601985806063213969021327991858779091220847491629765165019007558220509486909819008794035135154829044355820045241521912096934658325117908646411806318476742342388693981247204929548505374321923299944183099082683542242810271023437828791830046578660292945088306480000695819105618268857190539925158718494420309354268690650822152285335768136103226605029992884196609870788529053783513752595297064240841146674351532439871934710926417738747027474505634878175856484990122536381706109249732260499784678471168079093863217924921294529633606791239162550003667497118698479842830678277950423639363614120101906419502821139804106348069153388743616697237741237017431017301049972242655709539705616265314025464043506959757019559723838346428862437601032653114961976732108764312471558798449771876124971361919741473140809828840766645061227494014551164155114335029707344527623252236322219069249059037954625955843200737905883854798399896259444177142644926817602429744407194208756031266076769502127072332639175230438170169390989612593048134276333400030444579319652373650498756913495042796470527621635505070665013039776519914167337001340797521364014815427855812087443719446386710907206065056158707938654579779206844056783917204471333598999984886567682593280050214565843835173093467174048193585294187960446645317177861404721355703623932547322768835711308524726055877442222626979446366892674673136880183094477515368893143944179728793572258516540820024902719575842284458631399261908860806679886245301953744117562459382909595870117678630187886401887978919882208034283712400599965061758822482905707326704028191806242064487479112811685577578251951000122537713833307160850784829152417595662059371651457915617383040220587971402314221903743476685492129964541767915950826875388068310530341729139134576727968144216096038347157008847415726064296098101933272778853241585017322986776226944753068000623241276591398880976641154309562023638312040097163952081111738001051066460197460366249541942115159612577337168915737050567484260094694398672715523268810682409392246065008854523485735906129412770717183637498000681400069066147475035277842138423743642097620146984573658590861579587569055313697061819022073499360468963767777239441887676236835261772147620963256722451778481574438099249526747229599758803853259208272438847825002786877651677318218955721742159860141843896400321426006347653572780721916408219083359867208705141248890464600237074514170776126208940192923320294412107677068252706964416698851750321942396006525561555732030837650395658518043843102638716360037468385465830315896208080003811584600779446314700386966119125126540794347783726006991921391420927865693497517594077579660676971990734649373258972502343501269535114773337398157583451111827888645397417110997655172787319754191819719313630199378421413612974372725956998970493118071047381673171797334695187664177485883860572949996257696647488667719912203072679568579461668186138354970147212061164722906856225804579421498263405391358255347172223193609152006466118886716431878392153807710769928831040783403634072608312623303030977680347785584358205086865894851185532921452453668827794264111343579649843978082479088172517984172619874952354758449277159680997377339620132132832884713415154783938620160669388220959864071711538409277759260237568655641632949290611218736614528617002124646665165957320119158399926899373794443987887442492873787633419407003872621870672849729257587077754978201742152635100598831035269981772691387668206854371019377643700729464037168746948510901760363408448477140722235862425606827066958409532281435406227627876938882797295842716345906421173905343448820568438753427037694790820394943874985666966720091137209851356678540523141335967762725984187526590628164200244422229259460610084374834901134864100559623479904538767907867295183991535672250995822309716851303250446897160839631195129106937558644626140137667337327968107892287159321820497567466353722133058746219385518234863981968385548106998878312311314730030540926206615837983634718299740161759183665455583734293436413390891172845995802254860115615091515874806492203148920457725976796830646969865264127406484078672467639827828141413730155485988254192830111545856185070248731313083209160872940205883180833610678193545473511837985277906317850541288506058419054909906266141858725116993714045752522091652405012581429384864028856171791841387845224454991360372978246724341732979727611718655121600960471427581893089930665390737345269245850517696452496826770280921693469376688801200347354405800718403133911105833739477392395126753714975017817905414441066512711027667089336513005639983263700483503480868016591023378482765403144365905630194419371402396249365372117174095064415076709776799659851775772901169343928524822356352531118513292768868814911597193163851786171246726281963777605824912069095002301425589560670249649393251508400816063315394506415708153205070075825623240494311753798015139689311994009758959300667673167774854535096805161848009178354895209371162764892086658367750723901619098136178480889461656137478637267474430025870598693537565543744229313284433728752412919201071467489892804846989576719866607261327234514837035804593472660950298200674727925471951291232337298094762344498142050733342009773543143113185534224978774320735659257067385162921443771046417897400693537002628253317664216866271054598406544702659549787529057194181110462828500271560248188709641534958868350941776358665060390381256115572610997896689605768052791161520717593494339195312869778962003142901907541923529611773802340069884700975905370086987750125446711681952035087182730067975300383897519777008198077724021672042573004138636519253836428372135017211717017494732165054940581038647381643480028953470189257425408866905971325568978469425683313608408117234014997998700866361380571565592185117463586505801041049494164279889613121074948618817042942356938001395155947830319162984968367509218023437930676246702197255520761414923992828616095432332283816188934390319006720102456738821096960364663171918534176615734690937195090426117481006151522335767879574586696897109021942599060409140025569245921924324272495853147102738173947013269848998667706485956245140031217713573135121954432709436319908283732823694279482745887355856629652151420197626712406254007593680414083059122516818231053933516266704302536726451568401538152497723640906618238225194828678706950055573412881231755179152153282273464104756729622811748692757927421426505404542143034797217811846213905849177917696394424172027897303245603142092354030141905548198191959206285734207105816882078557914284964300764913253267920500168329715712096769673752056662180576843159305816820100753373141399810778150232900369009482981038145086144750972262932644357866732346214584370473985529026522556254802696869786824909612540945542287231972706380573765695437726188422380154776631730765097533238506398515266260173088286307897899306626977592281605886472417228117748635599609276904650981915787527155003200750446112216588458156491195699425213869692086108600747531367666191307929495385194472941768785310198973530554060140858951122631329676666619252398294358563031507753423438745149339617555699972139417325103761056291028184221025140424647851349623692959611891586942825242291238332532109332574746775358379146638555178982817408961336718049854882885776323769232482523101894297942595944158442921205486139934225426875424055410745688046750910403873998865428552600629855835832481675362629158657689778462211261727651815250223728215668067439636516040077330759811641930718236705327660587685330468612264105871511069808165639229401131721705416089201562542393585590763686186911336930732424923603721172045040297767357460761006550480215401148193709414881447558971913442350272698703151920307735040354334652658657200227531482320353103236270952356099516167943183665181886994560164618433371559865845265167097824578061299066139367743787680022308122869011341696930776310786663907653512136083171815220467172472210981003252149423814860950640884227299062578173317608872848426957735088148385890459282700615574275446762778779716780802385168281009046019885330991168905682081826071478329663412831713764770295174671693684185335472493863779412973460862910731435915518933977494922050839205648513781968976363526597219593970516744418890901763691151246214276786300133254786809009348169432824189791818393911442021978698465281945861120073691701509086902251341955560812708929361497043779259498066723529128179097717245371838359519038486670275506357849965966200670266841602505163713201203124223422062703915850574422906188621485818776075486889415202322923320195213859042382609380448078868642806654387153799039010885832651278664316418697354914455051255219167678416333248486117393658939020495214968961094425241389361915173533220738319474013420483879876762480117476309888446068980076643508651510068402887595549261103274694677084122935687888299074047280104641417801672047236716582560593741864882360968054123807570158692599111044411547225494486608383642978181474923042314588632786188999216164893319777301233316427537155029671454055105946906939304471059661639271490202774808123463101753764476303548837793725938706396746514715819549426994383665684777954975118526770665357226475709228120343200253846222632391279839932562852085299159022381844135893977979862924561664746905916450495213379939110719187794870038329950097343106068372531358840744536359414400927395379750155677046091179431887141949394976116010924501079063042927801946171950351776051596525900577592142219627378599229332703218307129166356341709931194125417587247439030450308405001840762543777636730035118763980177546963958493489520921920653558567500409681675682405658235076397928472638951607080019435880896759046614504928142046698769220703845308438065394663209335037707783502668342230657626827359602849284459320597438120655331753446486128814652187176830091420634560293558916463875849044737108183387779445240381076364755906291058650410543779701783811056134109289277113809249211079411477415504179989400827714041599920573517366121483801199073617179147888424650850167517075316420823077541242143492570068715763333570477981153737092171453867346802096315023375740372382310244485393785473563112416808852185178566530838119060015096281048205268367279039726256331354582258672243240143233522918310287096699074689739356428439772990914450022154744254797325680533473424736963625425144855135016120624670313214687911826019099977189366587920108911883128351288136101887275069213224757090513263535934695124306363793113600151241323412298944200746533816011966561449144527317485895552654829378829707818985746314962975037399623593866087539158038589810005649265851811371792664980977127565048634444844287673312866085282034904787539252890604137009549217622334502399563974426343329164300884596212131648042629051594349346402599791476388804609339508600952033015867049141932560404827279260384364665245128391943960051484286591678081234192394159943249340904399602308203578034806931902211590436090681921681695307663007615514090532767480209586442394816662720671558414088952107051569357992993274189943023936444459634273225531938732801300148779108362822880423675514486167285222650827846605516371605855712368963473073426399714038472597355916316001879399123570901863345781768296551675854255060591746145679076008767610505158966158648988435900350506584451490231274693129281792190596946269183078061037736691359694188508191616709270068639658946870002549016041536452178591897414200066635094082651111877627159244439768398521061750764123186733147564019008302769687652229728838598563548741831981742276530771682387968628827206930204758286878026392453771291292096793425847292971897536968833347286191491478670254518279393261285599671662004640850095954605709641976953544057275451833321077691894450478561577287376514682045036213475770227611075218934092168488776300772885492215297932097685084900727537460983022768054419820401841620961178924363102271053093958371505251629142556099399780684353159291430798784816200815023261922826252525295667376343005071215686266099447415497407935819795223355923805540040952741332414188534764138914124782186372034595743535730524840104128434387903862197241937688700797203821494554002254183331873633196301576442768996997558459600125265727166763182719568001520551297982837727426238404823978320857984802748212750819370051240690307185956455979626711603335022854328395686780598054501209889127178100237390679336578524166284855308702909334068851434336753716370673303475268900121751567580860421227406389022794038818629800057342593092610935070341663900901059335071232145785183190524440794861797922803542860263179895740294652968550958624795105446479631309991845000540478044451653328892077047834619453111624614275143070016673562003770127780115486805357385485054524663011800496800562958693544892155703713838274178640164741277994574623403385526647616920298468771256078073660710521202431018088566068149262316074817501060069257629173422550739483321202586625576897082970893439286519342660817478779654777635305314984092100539721071508105786346852879282559755310692867180853561997658152640730385203252453821340819432769666249586476021586435741578087052305342342540249245038185550676561239609359897675819231646627084644313052226477763337861535084022015483878966897294229524284916425857315817578400615121731290367370096112381798986281369254593510955560863187199044614235581886801244932476199520257215973182784207613164757218987324263142018759672602134637038862827983446056890018040278501669386438697609954290488803230058553195171036262338412314565172779299660784644099919842698769670148065217726172423966475392501298417147117022325203347293032750288603167597054962972623097538965577560006566012414372530861070017184137790924903035787818684743692527319548551569556093792041637008441487425902443288619291453727630868758538951981258394378564581109058861734256222938777722592123313923445637809441952391380569005058830805253008123137071481487384784830597244380867601576805228591795364210315523981458726015224543643949322436028155356868997330891400961463389981699662792117702238752156073320422461919981325771741873941418426427929130131513955427596863325157189319990736088114163693080553473173065350024432957838988525586843221201259791638896918717026817014142769608538066705726156691184172144250349958110002263756283245529006547086035718165871415577509860233725234877253994819630287173620941398264134592814852031653591177954667205626547438753401235352340789742478344061181148099062735732151180536563382482632653923247317788382553220910894637304789589388482324029431615137263437656151328638373562210890985474801964858491602002587148876979804588735176236943674604936365214397968902239571077616340158169065840694643435019641879986364993278038683350560977009712987255514364969655335165971527521782562621325073200813539723144262796994429986482373879652199196574785280953340411173577649455811995731210863326713767012098025532391539924979545732210418088615877559164795758324032636010442548152929172756684578903491822842417075203255026307728263105022005443741340861574443790006048623364556265131865294442510086688912976504947696560273314756996665439208797686338733467438590259095417762336789681923711363312721601988979002908838371713469417097905224097067146582949132633720117640397398846636920727775983783018201564070690171786328305664408168316470417681579805193703915605102460804424710106461210332988183316653537435340817396497241381812052669702794230909570749361891063818381868483878096940058892492216157005998448692579018527164593643396769641482875597187380966493382634093271871851133767542443353310767458134809980876781330042384558287142267626491089281662459351838188184702190265066667169663575399961897551327155470986430025913769299887763619308180216161894513513805052416047913794999550541656816232259626993684747961641921880761134504072139566500637328223144560537256616883860401123338520881184485719140454488473339375573462387509072170566353197200286801089633529258830181369893661572943190303983557011829951376258731791148387249772959390627250280174963224043338893159236764848293526960040668106658353433979776256122452835301302573872061598261127099046799282962714296052067764385038481809476240992694343252762663804874058004476415065443357939874883109168355105152482912441678655332698266519772038884012039324611094219643497896657040272573652196028427102757114911623470890838649518295640982216233854004013797793445515445254589952928152903513841917799138848546985283280690587515210706928516701529439171811246444239122726517816038116268412471098616982899979382300778505578723218730760325342760794846225374173462217419020932393004592091392551597071080587367367795659593830759319792654164202058308706386835545451209708195311713008711751711744187897591498253909410243730550189791944028554621157364717128622998105246397602702246140252965156447006953316444929747760132715241305313641929869895565143769593966260618734409628078390215399125328804295629731185486745565382831936860023420741407171580138136971902930896598014622868741905517043667205896937042049067727002851759153638993499387108624738650892749658455401707705405818808326577922356829572676912568949141738259001106167714870011196349968474969470338205701462345336556607651830613085433652131676014271149800246666001415985135996806822979629127844190709706461935484146406268132665643441228220301680434723282686914511580070170482247085581365939708079222257354866057920331141904857219642973956490628509987526243624449464924845818841537938265912969502089564107307955852174564358192469827233837360815684117757833122766017075551386913043011490856325353767538433975575665715147381501454371110747867572686857642072735337167355950468514987335550397976393101691008652499938631372795471296184547377281934180503372194877516513654418723614608811780652384934534958529559236092169753563482953091233192066329047204747816098891638840632334198351527967409653990807866368431515678988793256647480725088046684348978656715952549295709710927330869062806378383717002170594670102580025696922722902689700945393532090630799264723967735641141775903798412220847410073169879941470887680725483918858383582833725612887388573024255392292585742494068627142396219581659663633093485909909443680790811270156324283884973341976010346884683453407294219836874962226466269018873110624281242220931681068937125457813587951831450689885213957874664329262349466031801239955219017584130983060147003542560573270163630414314137092914833229141981277074132482588932953789507984791142446804465333370965677719952706207971182593612041670115754425657779474017774793047708391166934421201034015143522545600947736702153678658187932469289506778113272314219131351753711973601635205992432774194892507486560714848881996529371842374748028900326551411886636580809366915484709691784229399420077627779394831365008404976465919965087468162727947309406458412900769284436701408413838259641703436209870561984978144277859422038998866417698667670069885749658509671439551327529215661658004930671077431246100951706380029768501866585211587954935057865077548119120258089589481861359776727417203003282335880055698400376314783474949869247910195688011832701142790619760451934227921954854240885952076129985837849515706880885033823365477825855080533827378316535429956279370791961868670775313057209074119806249459767881113787370523833009372985168205935071216044450439950108447551868184955286468011235314144654768289596034660215369978937588868738094277945787712231459708497807112370393573740892859543470436109949124491063214036637439908096926594281481606373887024515529911505808740174997919024402524578711716669830189002045200729362351810067446595499999546038176805733100324949566230965051885140039495968708068312582300553500212019029882393325374840563414603029443355331038803828120139815437311043758723263962764912372602896086225015185119640449674918691201893512712135207573349789572229934852816433904224818107865944553623371195985406482103797715813061936020616861382739601316793061284217875987061104398862984460583299232317439357175396569156407882601420700535458701305919158780119506273866729167337292618884503037886287639523684891472155917107392734646419488084800384781395474112000668518091684430812954108781833324369017011764699935288517070097840710757627685463468470004287455293204113030585715742256834295192830086914264587223144965879188016229073204071482350241345239727842682704776307600466138175937432166288653448536873409842530856787028195728042406531536270135714099605223443447058161178860120432598639217336447007821879643128357000695624133982257076351193976312611127516695809742368419977913432119141920883244916646215127847964839136137649445156044846779014037513642784688463720616025685138113109989754623521663064538862289415431390424598772273981797523986962859315656158702117707753416524909887054745694163490533416393460157238686987808601733339003700442288239835484581504520617259025751878488929699364052572366951470213704153443808191678571654183555220135185589940459440373928088391383187514446092374102682215587275716283098235407162820903612305256431137365976791999774268334305991747548573597064603183310689349019683210065020172619262079420971393992064727094795084687658480883803878000929400512168092819395979811380189732035703312283679511773319766891144268368720583330539693197099254077462466780253916017471995339514893576185423472995109472420068386438246956961808706167718721953548818428796176087868967641232368367932453436308702050218634529380295718840186663037596654983483540673256986321393715354153029785961444347138722616385039626068937814218335475260797230249756815951221573428662567340349391899074173126402113783435554693200848665283592260824297099713735296836292056592552796877997421367679401341001212763597596530715201101092365881238877675860247878147029150981654408326990340543297286608094587549244552828293452615977264931917337354361310389917680666173707736483357728828630830737041319842491929903881084329089342865751587663692835017848562960514843510291454032931285123781099834251018060793166323503235884189259101879342325771806209112079043259335128314208852891175970159447241445838645525535114112981537409240439708740850651849854430027406974620379529838429331865287752642499495952130090555147581028914768402229663944670247796324037489464475097129113498842725420102102584073061651745131774071359627987844989270394379224312879979265853982234558207235430714819475008780159675776211829740015214803716228775815127610695498269821222523436217156222236090636223761236232798786172942332044572045815314180603169967125036518838162892071933327910196358000859239590316040654290817406105792342025703598356377472871151051857896609513192411764394365191723411566219127300388326363194443060659189474017150670910865680516052346751021103504781778639938599910152200643119197931763507502050808642849247493608570376321052991627735885526316776062199596049104873269509185585666540460264563923586079950396342831018630612274970059932926633009695143136487726014066047587154153230744832832329288296581974074014942707761714005637569222676807352155954560318420982243641124601065821916585971655082475762588522849933835054810892644871901388238077110076423565482715205531626406408886297066203252139970795822903350820285307360630702409415457847566526484008535407786572565001635144792613675649578634847966679163387350222890744291574999885295791773493572087069893816522186294007975901273228536907878015075056892739263744815599620920383320294537207182154905181638121757605107825384849342386580954641656284558641233591156401829187324807625877152685431448256843894148435164784364864289661261636310412820456137543230225441952608733331220655037389295105066009340891140852943486088819652128351452111186860361611668952093834538842007205875933730158270111011854269496448682811453736593217761023890866882588762579596139673451826187954311674181530973837027548950153077967797957753965298479632512978836451681900751328553341353463666073750551532319044532502949206620611596650726980438622670303227812607301414988760080449632441314670184558736651118065219761858108967904982062114440840024210172102243169305985282872776857620129116098843469163608385113053115745365195275547595877832696607780387899747220659070502555002484832574172922993408841822691978732748890715728947184819587790862311357209798149035737148239313252796244753299902466513069001143660325678796035066061240948095574652440781693682358244228622852653059335381252506033515200021622726075175974887431894554752725101152557723524931540752650494754961632524211278715695081045651997170342167868840093336825151437754852754522947362944791062950892210652826282069460462603860950816630144771836605831597324832409581212103522442880226203944107508129764114260651373156626443800425152230924394487917045469388567170021827295395168256763309451323480711291479695694812525615568963828507023163570811761395444067871797668000113282956578735251269906013061473514188810494175839420449625133570916501374670421369030101697906928845012864492049659479966606298545813728423744634939355580671119199095421673843666989612678937378749631639024002342263308439629032514603633906503809449486648847482579980258246923056241981464157947154989996343430138945222194979470661665497093481331157085714094572848845733849224453487221410448463127437685403248451751205465659134766706273234004353787550393906400289893613461606040919624031043632132034624229547902310754740760532919697250619302170185141206542741162118978095773095341121535004970256641908812063203300761453877443574912341413089962807049482056346501451526694733237559622725338355753900768187067067657480166035624175705838524825194078596669980740461500934795295076043511087523094622400564794775084243985244306762072059419695300056947249318933424245906428821456843819434266343438338164531902042004326491134380291477079843074792552246753099144083449543123711655093016276211917170246381875438618535017605963965359383855897820567002535615053869802746413963463486823414234447067303825970432530935503207347420518909406466088130492003071363170615143517709782603961227863491512075753106832359000649037955457927970469155927759430991148767001430503114532204888681340131891569302271179617601033441369348791134791468806057039750418496232000298095273907034613161414817579323230877569240930224205377935103907439194394413925102243352679557787458397720762454318290282008442845860608640466627561314281030944552581600634294873995135146443556146799178840024661108272916687403683979556262937704402343457414886661515896512442024990702477195507545532020958759008511537450127810227446313224136412369699694490239924274014796427156224880187048653861553507608990180936073468622982730137293798883373654618032988253636662493855156770793389251201564927016857168013719839698909836198622143823589041745332152845982642637481273227847633578441916988277128448605079418432714213135236979563868705034200943456505657067360767475580680754233668817860376954679211057963719405279870388825608762875226695748094479090420341722793131321839521473812460234160666469698346240923306548252308346089835545096040677156413979015712623501770777744453218884712711482477052965805648994092438591085434794769137996178128950232870379389624888810705858214072779057452140287693078469272804059030416764754826418559751237403802937296192628325844287692312361655616511554999079697517051021003887632485242813762309781067797529296897377235494134915936276972821092741418163604089186603962076725185947268474046206959155406878416962709612201704428111371819713627638196396873590829213441520894207864738688951906024542113910288051013302080013252783971036996410432061648983852069466748049476247364433374079011665805752977470269436835121829943245368991872981240079018196989718010550971733380293222951946033356016330669102107609020974068318832916131842090248374875267245722865080210336153960143396657923406591912509850897874072605849775953083960627403114049379061763001411833667281482194962972665579412071859329620828390901995653450980658073370442150617842018735008112463050349462879378561129054782189110616966245588218669824356982090120705695946014782986479241164963023895370368057193044570369580401702582847789118515347177336932677780858643709224805763127475198125605847736361435692699126658712489593509638469095215915052881779041802445062831956928466933068916297428010873327777376882961053062299894019222478565965910430551331484888892525112418318686731405244387780707615432421737408819642894272658357673403149714481741976204619500957225884134666330215677901313304551079565769421328092093028225438893916627015279547661227724777299078395204752918716878226656649204398812480978493914938985826039215596893076882450169597467849971502386576014081386062548016144381970427493691035195253505134564297844475720049628937711885501249596423280198886665227304306846742062022675260540881937472479515660824015229878426685995451893863907718108004189214231504911047562212630883306413765612841237132746617727243980632223646237650831089969304914713389142137473381412014790935654053646079819203173699171640388098723186852666506576716579865917605953248837410061200606393138871272068964733821034416735902247489933937034048586841997887378333315079879255579674861932568846752572038757775438775044575392724348672772121070392107456856377836395977337414512112172161635789190885553718209175036289824077430738588224407360202136001392187068117307531923551209867638354006600652204221166410031072557314785059285136544397649433752298337828145995177133246750148601003801814226645491970566426092537146731862709998356609825721101796571573909204235372512202604055559547493033238494948448730097829389880069988633216059252523402299147169577623845684416135720791871680015202954398221896467034080433205813515668885213253411730004845021181825216055646167255922386567245112628980056440171759812328460995005422971352533078258110647086238535749761970434379789400819370697121112629510308163225712884868664566213502880714730722511144475290432061121903911489583348667215752415499368504830427569782374666642646692007254608743802513474201408796017061029924635413651251311940620426293640912676306043225344926653286454779520556888602859250390114405764224135040753536044819771996756954892123212277123598668383476385646558364839312631110883075773523159372571629922603288658852239863215145534099310462493579663813326343159452006703414625021168328002083229788816224459910350148775170586014218684506905976787800452713235762925681037029647480376058628831826988317410082028819044135563295191035763811503578740392436501383059274772902421713917564398524270341588481877378502434229481773293061400932820122546357843016334908833266980889651915558390012629221701697996845830909110689570565015655126485331707649228797053842185441049341933174727690000430341283806307267815393355971981398163819721249416749738482029033638315068637100520621961137027942132546342515079643277012124186136300510419131600705627678022994844164624408104698424391937071533777664171277984085071063559109993909234812783892195172557113613008246815357596660632751381397174716135852236437298352692988669106205583632032032868657806761683702584248800066085355525999246902739644202179681358693908515917976848232054468229885277297317938126590586402938496424531626755577013995819215449367266269217027988875376889603192916116451450657020422206675477639285702014860711482663310206779902939203604423007393833410397093539814032716380186234068407356814878660797035196638711509180188468438575394421638886872459959760815184172423484780478541037281110521588916986742513733384031325518275381617972145654382481769597055935243268460415645304677554391230381742044739236619329813815568656496689056002073512337246215209898417775283543001156332603488772354720126172707471955898912768215183101621746805635362312643085542441854226993212357555090065250397865675499644948031251221574760481266993188548609689056899852540250918623346559439634032642631031708802830449063469696535382871425847306074502906287607652470429813875978152060240018294114378215119304757082253932780261950300332233516437322659421896802515719050838439194293540385530116450185065633226325053824866929674898265371072422513851432197623103142324518429670365367744342024177856565115865830403107031748493948500232340080677936910707629818364669535117078904485464001623541371818363996185949458342377106313946616085689114223748813002692056407087527405517594925693172963155421690433869651058672583612586036827906561980844721060374656349456327116237355317071949731758438159572225559697438218325096859909861663230590648370669881220267186995029011608537327987629202434964352227309685417436289804382046037960756571564139671688480239300570385882481124272568006596135757029276671259286215793446487380454318255638812928506600410629105292862328119391382991596543777444062469181632862981366056752131024005748126134629672066110377976083205438132016552828618269267948459064543409856736631721529027086516662854406067729915976370761876415351315753042045368345429927818847431128547797133499097660750764977868953803529752806132354171112266998857746065897412384226245572952658688971880750529060998461554561752650268149755362634170354584923583863030058659949565414656534313803111674414680134409241181542235905038927556219030928087011463130208233734064722981219075377988536417105923490095290974112678011011859457917863624141973802800124343151942401278139535755670659690872426905279631951203968290756939501194318696251999575258814360953201883640955140997277228611759682361528549082938743551038152954739659930699801208198856490444443110429744632995325007043398918379440924006657985708050000494043833629795364886105119135306216211057751998940553343333944679934893434027825951819476446085296923340741411069915175364332776492472573999849780959967764274414105986310940041029285054610814740637457862152037481679840249151816608185982743997139753783923579298475358974262098304699861053022734052094849732826704747765086390836329480607224401076003195450342884656437383678285584320478073080682035473571505040829645295337715405114631364444208632671828933168368512689940649534931081012997209635560566016129099259477682277197321422541979547651211873863708679910389564769336943650652558080489684354041006012353320576172674335796213084546124825882831215024049635355770830839189810074905301896322160973645229269403821513497837982137257748148473399272192779243437258791024488911477103407840016123681221066678020977289486126610550773544489029305516560195779419514475100560782973195806826780036348104278084965541985974749031484032466049298766746749165179911857790742592573955674607138447230921206460400016858786434199024949222723028862057142724150255894418379559943445438630913505762400825800000598211217776128213197353520165157233524908279423202796649203165798476224715109055786465439931670355964914930769286062660063243976347464000659306063040719887035181339147832536038413647237862406177005367048624808844167781612884988398081644450195623018711678466595229970146241702846240225727018498649437127045246885125027667544347144060038075894344135334279851787209899624517608917978228501623920489980084364849975372055977823078534120301142948096435082370891062066272367142331999724817632664875358252176207804404818396759412537050282138554720810779097563474205297489755788380314798872992623666541853500000758283963911538491808778219826377353876270070490732249187272296543961180172191791896661048686615473860864205733517668683558836145068772233031335030600289625403981866328831458288351049972629828111197186311911373829284210615361461169227035128579611256397685145954041773570289784534904602253271687926937642528444973863571786280871217354167494660737193517942903918340902133239130958203276500826036511289384771241690952840669671160288197155379289055923361793976261948292684962281746499061317669210023879125181352621280042132359677013533165568456164555577710947472247841882974671701506798220364257105008287504404794470724403526510804649984606640844326525529114499130863056342719774248716110270582806100683253868827291070639625673425883807747527156254830494756683162680218412704445116515406855598477854988111491902678878769899091836580919081953148959866600366511273433574045890283433944322186314104287211482314553563319479072917707666353548122001968606736975898927416879891196595122676945927471315635970027126800391647196359640320537406567768045452287915319200639969067986912088828035846035080424750987067402997254809450782550331124137043424412129879647416181203657915075781318353380347729511798350909134762972971111811351612222696359865231098844601333229688242991357477101667129287468433327013801576722396692151505065668467329592339970981563173625608492362826863536879238660678231137555454449014834353570494030146825059993644252131996194481591051233632586600997900670121656733834772787670562856696122837342888667263929265846700834677702026360868324906012433578055090300385882003145523721547362922338779471647605233811017072605790966161396210996509639847232956633910514512927465534206427691026094609293788820563824880572922451167226559031095250056850035299563735872551275441891178902781184826935845544571158212195109893475303544322989164989399287146714375936143561104841570498221439842873465744244838648561680216396259379713859787566977387192315862271666968203621966738750817087809255420143316312501457417175068605560199396780120728373278532708037302069730165105597281257531279868971037647869037367530778355254124440967837005862562794611604848851797984491184443591348412551068299087718593247613895886196699903746863047841117495498633521659248465470281297940532742958619072281394654199280963427573952058016036772851121428026387019698380146631175261722175221617455190712145226429033318041985458514776429272901189556908463770455598346401073735350093912102499390236853836152177989339800459883993605788872193593219279400712164618744757241891991042636476820532940916550257580483168774337527765569938104296472573780975212218438966301977001067695372621372462325880442743040445514213908043856356362855467071260224741810736076046876065204735020771525412971795048072903088893463889121644556776247803575509850070643950173872685590299522774285146925334233563594317741351843486609397464722533618036261024334815481364307306675503022146851881768744525384861984744219918784625427629401220640171483419598519272758777872534718257122680075109180408526820832396207383781938310685107158207228580943355401523074241879509679648567808965888866668817860538390680872928935387804941993871991444715289306460318722170063587552360703358602798424735698233198862234310509293275413316287195161237479052733942176992342985288841073885713788088953224068956546527873966292894388393483715061178123335919167894113534685869768523618554082232231450807111691281462358552809323071230359700563987336054038220127675776007272236853845649608737451755361567575484737170744417749826140446675295802819915667765830739004554858758008453123828431732080134038364544352837017476532473074774009826826774719300347512531415069340103733743253952711223576326686575602413467871529147712527982691692123810892979023439735279058258101609365886625082948554433937453505514407680002426327062991736370084549642536783184139280034148554403449578149284053607755280895781811468500102772057446567710566296578337334088657856922742076290301139465296203514815330606352822138270746969963898906479129572567717567793492181284850269532765148114324245447672939516536278890228816537446017148295939595643213049709787709484439689853986963730514014587283777429598078408305923459548560850076676428359410892502971216004340613583470083824225291804821541519263365673857259385604692040994388017396359326455947380825767424443380902971624742635834635623530988239856807547655672049935250541318836860782692918832868079045612696899294790948242732965742933881267254405838821731654365032954923713746005359600922970374818298543905399050480147332085899044514858942589171231149365256015853896212227267346568356721740941178939612023829839308810141654157597219974447458951935729576513870422052906060589519115673221205308640161605627098015762396205192093965559439162968043273022227138385606947129259205480723289763870094195476696282774006044630388923725452147832074037683558030614479300603640856649932272306552779971322161239561134113665035268747223890044591818845051383226481454075982453814519098122273390680227418533034694021417370716407891573472549981938523816380457805671066646958466086854042422594268687136795124487710355296112501295712465113249120703250666999117138038204954099435837660951455869588771140342946328543004754807146123209717596556817655139863131739863004667616922940861184735089164700632742872090092734003232149555397113452318859097424089177047816193117278720369786526459299371717269367141222057127281002506534204112707848143495530940971620735421463789083551461496237959961319747945672494354001896983175745116335870071428147927960392930860877735529870234475326386929232358881191123924770075494245770894417929691902291382764761406968662389462082087010125958357322047055621114674546091021874481370490602167602877499333620076255121659043810951861572802441307496631058744968194713128626691246960423781812726228133294554328757269728754431454568109723110921588370051328568860320958855544775245994354811998525978293838876269258628466204118639995944771613794299576112079796272581113857877857329516457686177298658334492067117849808359374540975392457264847747452800774020292366212396868237783642281520879705206717674883546583003812388202771097297550888211422334444329076535595312084720565445651321032935297429774633773452808433552165306553851700813698962894904339837181058594270626640371555350983304983664393790777541965117204184827693783977461129081454937450885998441748001148883900497028096986620001083302359789461568092370839089935727451988197122976463069563424309354073615563241374139339832954839155143376224817720434492398413542177765290119858434738732448833874485813230139921979556575331958874076223698825378546475558635624914202318583676732706564382711749993178680042642553238212147300922982287121322710111751836985732393300167329748485141466432366353835911563520437166583318253799589248257657033593997324679537514795767159610758973715256314104314761611687494752016157526477222174989963203224536658981600909633234627526228359701107326667131850808843387887855987123530494590434451804315083905299924944289763290695262166263861535930458570782093014607235594590259792607455362833276793784097062396589571758432437173901030441102458528105608528584861386140971620871662622663382917521774805712212536565807988223867079440542196574936124549008752326923411539212089531966006731466921820028808740648988938529787084285196994461627400720033510769188491938206193245204329039442185844717714211120346240554163231439861575716421638659617472450962179211696773668226115796368673267114071617661825681022208417912863395588744482507077990386135405716545749946799675281555605769899478755499606339492385117749955072465959581837137709686046045503285857376620463549814448874448711488339664555424901250033390248950708485216729626490193496199241908681932658449724090672327379446992333003405618190270159509243263069945389587359907713983994886333074970326242808209947889544836412763171847603796643178737761584579232283042981529688250393608122760878090631763214329138984445379408903198694760152113306098444121800650841109731227051247044506227763667484472619118435745891741938474035099684297235486525072996169804300143190070237640766188828422210685784562854678854463104210701123623608307796916657493113544508363954697113819793268481959185240171242293561818295457276815184760142621395402804327780551919302879046733220132088005652531334457751153366356464308718419990484432134652393044222308646252406541828529527841946383519182952296443367382812016519855672590191770229914335483119375710488937072441429163076433039776664562327352586167971920334950871480610468563658699195695309829908783652796164348861521809057421394509037725846576665908803102836716164644602046620915155210209306969254839247998678306351190085206552824796503177977380424718948721071657761403881673218334653641304479587142667371702934393199760410316236591210833392722161299739388430822856982397020225792628112137525362743187927879624332468390204385668366163075061604466952110701446085206592868686277109075158866472021349796905551798846340950012400823905865079148261472996109574094774526641866677154951086980616693528761676976658887195627237058072082034745890472478862864203181211731382913165541383640262543463076232651575916220653845923188390009999293757815394663088596765538136108138009648350701958471633220743831929196933236382118936771530810015791243014857063669684622250275497813354195265520137810440468905445793317999122949322022518243359584352362108184010830514908652996302594997302923478461421303200165844961307327248363081034952207930109464263189161508389430514752847623675436075707847205936170405636116175379158341882379339566751930697586268991852015087782133015340168668662308742432277826675307010990915260435413010151027356615554220977451920500634842786942859417420435700704994958835735292236794064382899002286318221278546413374730532971383663687768202971381615975994563728065594248256466908037502780621718538156443941112438333732293492209844153836926191361298463184483895748840282880070820588175760386863506461526276925073949214530630213303310486569208006382610970036783754763081799886508555602031347196767499638621862476919235654768902796110853577643257573461958374874476379171653138298435457324674303243574825044469532207505979235355568989014933875468394944282363359517897604975494573238123479526292913080144022171716250838702248501367338952702269248681785401367702606183007646938699498702939697110829744034238030014418391458612805902019061191106914315403550893630770441982508477378056287617570618091102128672879430598131240980162010200371086666837896866503834361480452804330188076546446539994282869432274299898637122575599581972680552642137480830042913458369957122750390732422695778336518084393955589977834435363600416210255732094154459263649615238060533099360537411605713104019529748522495376641455490310041510071442468350483929940252478441896376469431087968493091965727738877316688824843111756313095456165479367577690319161559458275122461322523876765588673568917748501360363081738958083908828618857008709368273400178713550113672609459078679690011446741898237235465282642196032713569982801239864018612656725676619672044848054416210145989477277562458427785609442550153499326751854185565769762927852438176727847878990825308706242066206594300894365953187774483109150109500625632245193538720721823339088865349755678242326110110447978861975204365647753675653026616451905880282092324349024904284387749259133895021500812222822344516228381423213548300132587693142410077428324900190458011894500952071876951370458816922223913576630953477703610043324507834572694971526545718212838127020327906981638180097980924137377827601686073557459732783261107918743770392425011406805087143254619036724338128042661637774710176594437900486621225340295633936608192831779176454729496170322008976986745949566065907343403301560409872784619174221846031461144163939631792830791321490822114171390031032357280102206965294042606408520322815788578448043407123338638277027851383521975271020947315296257832082431027889814359142281076944852553914832071810950548456003510956081682403436132489768148975782193997705525297483356448565950845434505087356231855815273982456349424153299233669900477584871933204135603111749038992991853252341778443438088151904278234501303858363555481654963183232886367784033053421507287495192581784859669316427862471186834552574358743096976943808927017577453951316240532730010870811017960199193123013416921364392689303621095564443265177612915907775199471496453577539954820389839085841192637172134078183269442272056690507168291393937323401095962406360600939361174168401037384154252497624897579928545243667826231386412412434672832912032528871430872784615281792608920823331333376921990841499311515032227144416919965084716997688466778304796540305329226841155983801707413894997476178484879402951999576135736792370492461936694750491451029048306313067278212889750155766852246980944256183094754378239545486821992346295499786742340940884907545443132674314628254167270536735999605905139089216819166414167581198237675327756670839876823035428652435141249619480015790216138765554712434575914275813167038879975624140951430088555254350987420753140134811711868596002641291456308603031948068978070638624227131689079095738402815617320160605632661247303674422074586135693760706165953559040885971180798512079993628910449675769436438419152048186952429873364825916143294060035591332498532476265524626384401402621356765503339813639541544648335256014054552427631501089569396701248348783392718204733748635067557409964582645856940234380460856099460239979669433272703920901845832419223176180290383238941984559745556432086388688155126270502354005824294366312091514582919090624991625131538124361818291519805322466535422872347874461500212751767613045941218416859079628579228678926682340789017550255620382582159960838737170958114839840358032254047609214884310690788467058270797653440822618155646575986753700803776520851948712948227129920980549553980848879356146235788301657321202336278570315388802452103290076303169596986670559900677493184258166616040005609244087742230226833988095001787328169478730279753427951518778812185222983230434269960435548973714401982417195621203958650970239899031387790613735100542362663229266010269369404260052586052607508190832409805967600866534961102655181352289826441136374159526148114464274546956895516683801321850372830596446560844566975629617318517246848129020467634193215262464022815163204194777304113278003118817168571937998663806138720315786872163879781311021285618714871740438551450363438940870076654324474057338563937184199010257760633031076672875102848398790934165097624641949394263808283404657620414730255538107099295683231389690337461210317330633564321779413271981477834694007404885737952793445912254477554723297191336393536755951554585164748613415513935913637223298412960165226487818591910960815329026105629413697847805283411197810143361235899540307561700867620577511932550954847074238379573482761475314771835615267914438493691519332199101419562583330666123952446761180653459451359771611834293026976605218059662187672187046809854669928552575698750214124781948527355865530720102970977755206265801400184928950360152590159762309410051300848339270094267192885184678198103445181710038792663535818839710509567792141260437163185692012307331630522380463152350353694927127422698841544489319197309978648822552642695981587799111877963295164440902781328222348106784250409158114300479912322294261131638735976741824527600619052842638028079016550745055622481175204582076014870181771407478948462669156693023287940564968140501718948798605237376504762337074971735853877902523698590861213946108355338377312391537982111075262337672479483768800575528874739214327865027385057396076243845570029945423911328762141760816056407930282684180075561213684521076957638550229859155179952596354552901081343393887916916501518794472654045686186665745311070198996339431541991009301370541050618062748898761573741367634210164356283537608857179333416203281808820814403434210295238892267114224461169714940784613221625726670594626737016387776293690600737283405022427899883489954626864631909877838162587410995500603594206648127546198387737307466348043318595015465590537981988852979925334560772329338796885390535773809724107032255760038055223473751361847553067419110915312525560616312688927824975361384219306989264787882642114854424379297898426127090253336143358725684941588111704670229889145197376459958777152459622905399417848753276027428700758330329089855126130962892555423681983395081413470307706726845072563253025664325772358692107492803577451332166230215265440984995109638537690884115318650754473415650783802537085793412628400620102649523456666843377631638272384296042079623268547476734516278411950105876571510090417590468692459663618180908047013400629534025594125595816735979406886232224918927125250004652245510039731453516255422615533948132367329460484394278285632634651648483627400869361466892290078698839178561575521674227145954705624061617966806965239420573145828198772515569240159160941953544076218077852072333955290364484906522131523831515920106965557519309824314245146760484054564353805399774415617853719792532985752516799990443679867443468267509836696982250232432149604935000582007445658906161362566192658692129543612933866197818513132211561747279579960786425037702770002096910922555007104138103648915460378078323674387572272507722311227494931020798759386408100595462941510186714649697788843336785161460721271284679229027169882949705655190994813095562570080104953207419102087320508239467593280306108366425096887782861224161167521375324964742581940911617809514226352454462997340401460629290671427120788742935521926452445684197605248670756051436803358157686453613674518540620591995829943087835126804755801767346317971067866018471975599457883613960133228731550692302903795480775597352084378581250763067737851827739274339701780563957473127803519471826698851923424417873621570975517476864046807673452222258970968093440651262011906061989684890397245298446705738744075005013118597769034744241964179128189807349695369415365813329691958959824338844192244766003120859895373461345365379269909660773303553723185794038431282826686975574942270874447892065241897909241507486533782241225681805619137325708028775660719043617007458335917580016347074079746489934239921132733662873512372575112538784743992563121513111859245993632443043274687935418618580452292285698131227136826742647293381154305258515793513081115918243609646275783110232896571917504687989119869015674811612520400842891261782696278306413727675879914474402427898991943290235498613283121940995441295622584108502015940404149656958691688194126678797844365284172996720105339327852103600051785732452620201951392632207741773504914489344061825337800746543806845939046217756350206148318376996127764112377653765231472023050378428776265750933953164215176144057870159361552068397145609962896137608162243700644148995308958746618158755735324977891103158218623081358946137143416357892288717188856383365749766285589554320337260539216155365066518043179770566748212320148031171870379268535742298405694903245753626500271886106447250280629703885867280099802480900106221162107023095518881717125535850260252773112800182452988731683578288022693048904055882840605272267481451502675524832654915777173236611438574642241649288231933732568261138237186196918313687969307336518008272048276540094726245913031302473907643541030317424804623779128392773409584465945041110530156703478298697818983953994253300144167059853057555612296144674374767574913071834739153439966934341179095001394000150529340606064606417437982707794181331985071088595231405933268943803252605217143090299766477856239397601436643948984957290083577669982794443601055731844484465639798394686916131596210899682508846568182845488297158322241039184455733642597587973391012536453330043163489408236876574238879154697106723064505835010814348960049312498071160635219051729520442289570166090915604020830139613695682993783827937207879718110535322527789866932754014996632820928444524810490899003052320999412591860936613631405717564690099247992678919880795502535725161967351654948745433438711367725925960278143396119626697535591141541046682290714166162224222022670966490944569749487730252718862484118758809995558799811168825711036016103532359878437143299285987179513230440750726593659061337819727616431653807911297757566953004464724490416257402893785177132945515210923622790525105765359550559578940594397075573098281398722559329179396379161452021404279587397578519648536129645887332106830724134473440251368320419642691774446233331862492651820803216323853010451728320293717196356877415460985156594178343869712027376385105441476388091901499991802451142418972328662090307785506047648752627390451811132329640778992441040141477948358155585221652270449711390104391238164217970891957409913332746992259125037097869628885702148131712446390986227043722888263583057482002796391284083882717703358191781981286332627421113050314961379551665634020346710936922720282186811736343105237210121422427232641149434903474762940870405123845447896475369792504843945842588408168097436986133572425474752092877861626384584762585603119797606727636056501302297644732033383912276431918517108207384419898704747049588849230092366615666277382745674555951956519368615991727277941967958817513472403053583150840121829796945887155779128343050253620171600093352160520979042915928827314903406152986640622008406527395757765304352581823328453381487215681015932882049206670474030773911305368140428241918025407112887007958010427676675061757470706684591308307887038875537138412289992625577650859891329363896409041953038599827197183585561823876629166614227998342245860871497280543116800898337021770845433535990689048944199911374420363883699846059499014771758943308695881888661570250742578063317019788435491392618439873983570220296981252432297124858852021676394752303193539100737167589653101240761244298924270158743905348005995360398120465980354761210119407402520561232821839330478235406937325956158193447365256919712861966439369808747302198547238067100057121812084540522305381468358760594614399760611374064059967632003969358848621869560900084094406205752390665411086170195274393064288915769717148217465851827916476036396864488164799296765551036885600564545634309381842223217329543954943300678652693668452565106655363691869458510770372938136196746437651187680974235785987450833456846825407958953310863921589549417898186334469550989172949803082618015019137207189386861567477821290501640040871044637935898709889701626785892477781584866211183982889474264984818352679584581488880294670788224229358440923154004826324330770474603131228900726750235224116433185762999780270362583199765497295964999398847505715061296484246343588350535513480950579626160814854080445145027137682652389435996664607585843116461456295568232188408698126248338976713959700630017510239967916048513509229737627487024694839082643969388042844463862651925870784004902972570267119875584060824107106753772911475782994648839199802428941402568340739781880008764012217392262426037441668834821709976015762284219151896791284079961954940852515124770734242053736221506083629653080632886599313625546763562322529419574793949050364237408596070115101897355560670240111643036937005010613933611186961257655581623905429919803622908254093471574443907714969607759027364035978559716597434994956565180557332571647828761631485016725977985977472313977310443350739091492228866888357752011096799362389554241286334251482312604426732505478780272318491838327634242313312620741667265204831136777044401332714928309304254435403686712521815615594175463084454553418798577335369039487318157297541119699129217108819983509293774857191209756555578475256709362817784980677183602961975420197987799798782198094957051548913015446317662287774588742127113064962398438406212157296624142499466482867230059927841987363719465415857594151906093322057817969317017721975820789115967269456698684468300630112352996273354573909166210470990802208024240479631619749005451611902544519114897907921317706095387004736508388599111416147259745499677451073980401741617108696099750800647561928737679751652657642874193804084632832194670649893386105001346830369155101362255498199218236012459413041908132778696244838304052343961888356208044148993655742822293755731727895539461346698322514532967525482350322856550711086882050477936206185429008052101481664891374939416216108109593669161411728470674471171085811329701206190194539903811941135293290433726139552340693155128868394273387461093907354207492053634748072476856940386364110294580996431875103257125978488022492685929017537250375273948574682326645204374453985869874481339593290850102229527467583666262343416480412487580648643525688706825560405911639683271007205502385733743925889174198748395013624453525813478100896319161977459247518875776394928948108343851844903619538340807477986193634771314142892269232521535367921388304053917931152680242567327883304596389820917540312453667284658221661261086505750139084500955348293746197520804218214124430263657402513654380470685582271993473720994186083470634795847207051851498879743860774594548316736459661637033267680781469769363407713866179319500891059557687806161205867450618560256427276309443285833355122580749593797029410629956280546058990067585538997273000668053085490466740406829261758078067326366052552648427125858508623049362573503040356757697244370344913474794862979398608301516748001523517273004083022457217899122322027991345391653339341452333274162994910000784417794996513656131221733270342414333035180821255858292427324598629776835229326497650425912027337148575816941864992120472196762797920213867480773344937796974067920997834333646927224287832247507115285577720969806704323390368974442920542720653729459409159935703484238893398352211238384237077455065637117307922681374238138634537904140589141104078982115155884970723089190030369023870656998197098080293091669521457913923323182229882529621078160402357271481667331406555041710248917280091644577614227371656668523048444709365272137269231938375166830545445401716008355292346576309824774019506846057363263970901325980839557680669785073047692034554157175488597281058215133733498810563545108255022710735969302676387194194073194156829178974417767792520304270236950302776912312308929801951129829840219247987399260529884093564001124005889206749164718928677181861003333334485143183806876042263950404582132120983045382266044724866167371700897236091822354446723479402695232992402601271636631796897646182483503801473601828061523409523569162350533430190024585439746758544708035493982961864169929881672995004487166263321009375370361473361335158306587432905968675051651310497303236396044322390127925499048193966476261722066928229888336562055751557263762801282995085967806660867609232776033762534552675981622118612344421737013724299365888479171932542840074377977789385112040128348212918351222258885285458862607548126505694253399878778996295542039984667679140927077233979102762660606351232274101631238133848461891874708916039073508409630702353411143629246655564957647839756882719921001177654927700086882248144045592941188634193156746147278464753607009876270168044415309917348602195921680332903684453812973742892175842921833217013644016515908984798758085543071564191558696456772309084524790760272610461851666046974379014660317245435029571005244600132669799232173600799215925678366931976308665149543299901636774989912426093939162736168100668799457981983142994880255254223734211873185976180078273514993482077057876110599569272287826863607576956030201140282340607782486198693888244364022003167528840316993751095861900362801362831678227879161231964967105724125789579204081408899158130264151695632261511283195109658772855066055975025218286157881596926488914157418520035602165516368353942036323099857050172829284064056764445640640422959483102880659694638274118522406847717727029703730055281314305436169923497746648333292930823089242145237840919231422182345333565510478073242587304833166609787338124368491393020285629253071800633621305060470850895912537138070803694617106319213863903865480524218226281526515723683211031012299171183385301675306896310989599026156925103682383359760140250543345378975333918744770226587664711490585910494466399741557537328673487216564301189761049274238442316133309893706628589052273429238995384905912842589888301213033642639935098086600976363414124283918113621968985392190131743282488740832218591248636686431098686098026011049317570407991458917022524514722590236400637024327709571286941281949233201842010839789981124352830254792579640019520000925688123844577448762297224793859894036208059355853722795132856773829010284292488210653502960507684469128702826485376850528892498725067461354435212151754196021091277930129244630759512866190496545818310845003352264315832266912703698962163348041411367055758214733966787941673257765110726245295143993380700292552802813315653409122505063794239023784764772007417319583661779235404826491201695766785765851739021915985772093620126327069950497760564555879314169657273736593678907092331479576526753006903096484810354844157222561355683620601202046557293366094792869966652716398564518781855712630099302910277715696343550209561575393886045826816821717743535547107155960773387033103469071896297107983137178272776602697520063733686666999399650324636175550141014081465956851006979903175578686987285941328023504492910096055858223895041654463818717840325298797574922174405325529106626877134451742829737907075140900739202383950447921618723594459217992883341059812960991369788189039761296241271498619794191235804996612429670364965524975875924258395355700996386402591439970463609439997513106681349083053626808101332362304400525827873528743131648234654876614889048851019458080381210847256427444639188533177217679690716597796727697956363827084536302546660856578610101997705525483738681483955783111523629604669054153210229409761741011037363594895329551466416016847618191494061587280275105624143445627215566953899086492119142516826575733190567709655303602380468477373686054702956526746375382263614475847384355295445074739523938144650511951262860232745849490622968528563868668452742478799374193369821108487240997863000868127739239014653948257704803265160324459860986041473931662478393949194522533191097177941797800827859066899657674751360518210592903317514208164963931314070048554347761584675515453042820209807418212557150957289049681738651920079779834940150688697964626522656903581143821139467002329938228984467829426032721137084806509421880587226215197668785997130854965282897446720261809404982651294467427276981275498939898563299859697274972160448872533585204851254755743951715552465924689259187863857869385457856190621583780777932643045804424066083043097085497764981490767729407562588143436544018648628869835924452642855018178084347332629104399738850531306289701502405641742465050912544051203083429838670266713153812398464375756604121583118163377650255798405496441644331681667370271939531386738722871089812680019210907186030785759910203589482439574437835997690575160135767598612429960525086800634865895616591676586261433885722924086160053030591648134954661277224648860690467937308261039976899336711292228899890400434831186229770016378161290146251789509100850956490010389074978697039183563926956594196557044675446443667973162257181111830721583112577114860142472985337757242485811692223592829000907577332382050843419734574244727947268951339840260213334414001749318927840999222811718637370660483900856598946158724627068395694099705504621332432055222253144024617936162078141975994913258055786541917797191977976078001804268560638596925777733545706395591230605595123536942481875481491020087147430605073854043396321973093146216740841359577086657080990054591729459855930651268089389077879746855864161192911299387177475364220801446845003581759760744290742448778808761488716323408161470447049001725008700539236731871252207076507913322258939674088895516253101359856001337399034890922957198567033688993781825793503538358707995640530600460222453412266160501071476777171577746590780956745549515342463053434758436572909611036327559081375394715668374820994761108707452884496819075456761483937894574837650873067259015011566905346177028120650437307998515760324829103417233715083996137661417694673492006685679757832692172110169727186351904958942624658796654671223258317563708807385832929034109001201339312752015697824736118142010936705659850893245362281450066521174100895376923048240823193255395693911249347758230778527750742432759601954933696123610745723384204418391084044934484190206101069715424125221851820086149145444708679017886935625190324129459015664626510312531754798944579861940239987177537860188645153347527422276236387375660463005279794375039386094547302511540726638894622314885546957548335460495339659653459819750183820203951288008618238831796736896265565819909170822970122777071326919535721521266337353115206396150375728580204047917403423258042645485627269701290550620033766046116024358273011869346014660640645325115038673207365674108739668224096741793450358545139346996775275101054671475126725661109578149032799279320140478326953945673853231682265051868476171195181651354036025744580825600517830054259428878624746033775846936427913079138337967205719928457488779598243465157984751236690799815230518165900288913391273550526645443950413579579384709622131742966803883459603685915654747247805885157423952990491889009899728541905404571632118013472485601731739370326931999773989553703800412713036149362171154920193068598053925588668684782145011993859033702601546222474181235275126331528696175159935363329867970724235751989328926784648358120749961083991872940279063221949787055957194426573321303659023685996939123053582020122649843982676934432924677447342969398145308657217386599277029234399019814741270314434403179583623605639893873771172733238130407502568055664960992177184453481920572657378481483401657298196164826246963449396886301596543414013449988277836138068736342190363026584454702422157766530587407066980045499416304074305366299276359435467137533520169389527853784427844006977736738633367138978516828079103030981952249581619040660274466799525980287400688317936204185351272547343948015426519514677041662473276701068113055491560786233859498566799902109370845017668821911555227256160194146361647915106276794745456183998704667910623262131936242460648269189990768672474615957309771024466185333178572917074927735568856257863335917351735940501079998170764721274271677531288038106494355035124250734910389916024263155907575543751906821593447459033956999313641367308825583404925048175512896258760780641531344254728110232823528345214901874025770578804220002388141515380043274559003576002108741348274673431931831594915041849119280767959433468975185834954710934649802553713173646714513853572126584679050636744534307747609958519569713742660596861761379250686321868532891549596915381771379722288787460194668271023170726218387978250030792125136284100052610406599550441889100668878505069235253255474786868017637086402333611160293417377856728182981573550742802559431963833280248596351476834285563634365926552872809808595722667673036766391658913463230963646738006674946763718746925186643464171142322956154149387988730370292543399568425243347781024543488620703872364049462399905819365360450856654239993938926213651019545178088920398170461991964262000319780636897784393796671419891884474622896093180935289966891612362563030421247098507534455640147340549055573904127541130265575511172688175555337951695399681242534205919916587210501532878370957537906770486245847521207717550683609801853151389026724057888356135163307401222483454693652819700389042573306570916712628860403196523024188828991578724499644148731989671267683241854310198667797084570203690945524187642353424129328643448417980971853719371003174985406750927542304896486602445008697706149814936629604356931980602317897080494920101956008166401774418332535554915090455741334361810613359839881422703606836477721332110202138579162205724395331843220987716580578852711999381883653921627203457476853513294525463663292262315666189639778160330598327163980226079909521516241816173866666560845993231944299252068316667667283545579338932191837214819336575231625210623846466662645989928130742554720061679440959922219404865302435230143363986478282681199029824270408760036920572878499128335830641681123171573088171422813973422349496669164333731560303011465841029313922414402593928405022897923610351694392208584076352726543430222769247556288558298312662629237623043625461668148808159274032134133242888857247088287468255974972670666630043416395665555784712330984492931910904274614126907407902204201965105505765354776139558495523250052694055481537173283761883864637660982250632434508758524760059392160816378958002251562714277749690981707537937786764539799842861431404885351970413291976429254086161223168996197714406635759883775849468494712500850386834822049355344285753608099026745700300888117501901333388775186827144065370381959999514970411169998556618136430789861794943927164498604039803716491602271595168458176063678802310095636141936369356417561033834774384634240780136787312891829661256441065308071902064560845984104696983422609739419525116629705527387105581629731238620685112359503943716141453420244043417208876181919349187218454823689984344820466534634639854691351408941030310328462067969724107804507683987266810611218062516662134844700000506960779593419557105001461967984140921066552291298385250905771495923918689429767046394672568363551453026183794223756352611007570518028149936301377707574978016644403111641574395504896025420123600835394601565489980778294255973441222416017168145273324572717638469513346434736713395823286031572994749213674549523606154609311425714642800886177663037843489767552195927696655143178189676314721568492309770323962931100611771179711737548758688540990778612067696964605339779932103780339291253183836280767955800037016666967106155060372854988554745326618588640083703937071887613692011507118388760176621404760236992557365044868377137814237123902746947199932907394462810154832223155236305824434722645716089799315289251711371215552754913938601292098760212506235192618962227136743011051950638094816345441597739770731240958082653844806810755576538235609378021068184494733974120182970223969048262014091015396766858549761094842340233061385318998007340304721658471978951863404902657329700864188061870347513953842511283913093393204166699417864954540992926221296035125850293340166384017115013699060165667704824878003656134626507729622746265590531850288825008993644858196837066024038610717551206128298038270488622668957826224664575018066003649942121967329258550294966460869720851581535625321865526552662937905057641156639971505960622963482579594314354946195890112792510540161532682188172561168812108980503939652610641269050499381996449246343570577654752576919181140037265988223339862004308936614792030347654540793149749458455533111895898765782512594495594329567082109058193098506945932439315642201697881576092467577167763302615421277548443868253639503816490005500940916757366714235221436195433586584828153857876913738136730139118992839578053623180078827130100660626704448491533237057387688569702361563076998378051625761567856910714755384711059428028040307592365727083880474124971362655933492064649572066879871289975305680614334409335131920097586285484154048338802247752596021512582987227855877395503617951160233173952637404280167989751051093307925135289015938865792279421719801815874976443194167438378171711596156937102933853730494801960516711708401995821816970227033378877134409977893678957459614547897681364629188634318914759291933942385403036726621581367837792221018677606839633363051286205096178142663854322110519748652696128361456365029949837106194533528539730193698076738903457547253030049851195703425095224973738319409615496875139314204292205260579485994346488304636680053076308056833086774885385138779987884558560256982560824140392093892237338920950202007900333472788040381932784624661287520903673746077598170078657222044059264131727475133959730848826999770340836585278152855371400580887597313848959305076369336840945097457407553046568939479042573899538184732110613178554479209261425735485254853435469133203121413860784997134887024637327877508786627123305628256091590188244531527654924402553350688343097475566966431027593830730724269831120899197023908925908327053610971132595130022683709928970635048160543272227126623915237027274214638739657641085225265357814141774690557729864231710976228862435304292873636943827729370528769322653101251478051909078848609971717757101833204292846224161798037382184425746188220154350225180306343343868400938680963105872721047341029208982101077278408282655711972657706594846719943505375105552837231532675397746003575809140900718686848487707383866185666485318232605118357797993150913630732698850875894808596587792690205280323624288679705953657606884336775977268993108709313343999140995381533703367160057015010848590549602542167747140728215425428671180505389570568177786235986035300575707572748470110228639864730606487125016493284079009201058614210792541386001856122382134202034592914031558314365396425708397288477074491734372639008667245958062451128709232147523307001755699707638087582215696868348046220218852856537450642309927279049742463837679756262001092551962821025348845547498747450229985668537478496824393870876375677259018178967889988523268346903239375741227609818514205856574129176302242094521777765286893463653563461924977357647121104424033188212003078072164326954967715144631434817183755196914181898737278647110860359770349948150448507375451492127605682015853003662374947193780835818826775196066104415223393700907617156610095284896936236307070711136048679037200700881667717616327427873856739848864138161946626301193920098196122688748378163522566184684025064648209749164853851636491608389194394296688818708328364775709952991294671508772923570378627565353400822870287196044174115595529970566750198447866730537162962349495840154067979060932224598957741436121259274953455746817152798900172810836513280225585062365723456554956319779307831632825572195593384487610373350993356427826810103038362819743603307781648044316770589036430287798174157015933838666221322961626870078786975333953578712875792254138781475138656203207892550432034452516044386311371742293535685395344982768216646336367510374443513859378291091979198393186655033374017622566588798910729571063111759120052957251854209429764185868033037608819685884944766381823850465560189220504967571294371715980850947064535553681364880240206634204570430832714008311250040272525622861918043472237977550401496658744125099450376124721184115160002665503041754700587035682190917013193250211823265309887593997569394949301998930339409297146224456415574209618131925575747427266522117825361914270343127534118184357791997526025180577396584432130840195670566019555708100407391621590589710554298754133608588458902209883273922777549774284963189998567981261258214408027646911720772124687441982725169821541066900269856278580637065197773380347414419481383535228331807643917379477245031175047553004811909457093494609775666158201624698861966741905748137061116603982964979361665915842221343830699433862922409467943639189714607954482446744031622879045737968961899898429296573446511799681876272158195250194020106279284086361412839976598246348048614687404775066841034082387290092730675142331148777498006231085710910043280532025578309954253058264689264760278068478374393520937758706258077212586419956760477468892656608287022309996685970357013592122346253771274926170192330400905953779536344616050496834837420948090905549884042888445770201722289286009295903624118164926782113588117683833532531068156314337311479523755637606562080443026594894260980008396275483727243232571987259707292225950511445603769162741647739953977558129571393910413199673603051691744250710614743534520426776318263617183007219293393445673990389175534880680576273866348034743806565988889351718878056476361748441210366522053091938397787259070429275462546365074341019869881761059200224982359501763953065077850721798370719577191081936876746570746283241054615099685772656888647376929450753449907906926757905563611905722195114587349705979954993357965423628044264222537150108064738902329164653219796036274394552978682373935001485599165832067500264921041554238727328406409002001212422842444331305887630065266988896015211714424690049035333320106077152267585479779462733489878073462236900663496464340501904079530064633729897492058654159826805510139930492113147562044897916249225255860811270960481796463697441953977992989173670399482128614210859885383203633224516238244409065377050459922052791616604090445336758462643325135582184775772077917916577680446932851677158691774858093048049828112248069421254719929765959676009075357122291099145630930670795891163367378420364083804709285904790037946665312743939877572745542801413441569088774766726925685555162867719848204114262171852885773667135843082730298043323891309890099713449726111445831602527135741968227151113242614440400374415855434647439402179944503974267198335454737205394400319312336850593307613799026590924851955854236224713822514549346037276746383010102534965306726708665281552968649730543004482626045912221209065728465989558265308032429581433936440262244484640665424037579296543467602428732325910829359868418228319874412559319444302230481528345076895954186345510441201307649847614378780821338221154964039343165890435948944796745336405844398746388377080177889101149946421961674751128999687652443057836831931969411975455171646349549452768623196060541401617123841864303645877396115852593837138956996831868665356368738478850700330781457706409089888574333486507661191817676107661547316483943496628447921079999500479978632186359078794464839312950074193299482041924311780651959701013488567931743491521393837791883151470936222559160346318892402111705588422613573197656086403346262215131570745612258469816012799256886557586799572143930803419293597199478933272699044335608308431546914679908054330300838318750547000050226275011342881318090362815442940321079259210247246597107217803684901363357423492917422262355549382108753251571062125669629707160110753455541156262424241732511896226078649717643601922894573320226164877285366976458440420422296121015368585065134436230345148437256308508626083064653060505183436256759597527271873154023218409272221513579201256385621741022178267324047592587487844046895943381810265991346757706763886401883929024355012223208164925774077148681802221052309184014968569974448524138359615886348369484124390526084082710637079043439913173118911928478575593979393936806830558665103505569391321729866229012262888897424479939177444170408903130028194038915235393422694653608450180163128900172989207748475244752388162056570066095111996797771272963510991749091711324658394463103417980811096784065004027631746669866236811264549959211517340401411108321970758771686240856383601112914382130759905092421011758133294808327220729539527768595883951691691123507887477711981364828915209567017712201083597906199541043740041776515535228446188473275054428063455930946027903812498711156241872871870405918199678236196048777798117309677280088819390718789271493713350737920866764316553290384339712528535851040519309939640383210111659927604064488450662396119630098148048342463377513338024331217406681134809581683631368691069816228758470752151589007880130371099242352575451982020417408704400058660081455358945279722035101524557521696248140660761128721353913393773991725345047775671779779613410859654655517373213179467207015263938439935579251648675730780149741224125941950579705641845728017667417554914659839520345027110814668548233065319876186283731070038182484633664516957123312478560959000771474944007410092025114530420733914444823257207085044183232564704007231768403601057675356735187521246965784316278225195462466323612323822497265755888726201802598523229346921453035128191681472188744614369038782693317795418623612979019027232299064071296856150267147039148486684781806129954757930975796431753472511083413949585571555847084209389786150681262841372375067009249056223927439363220620291828688599461358569456110667584049854533895221410305611952869359473634576848134197375346064547138967261445411621554408077261309138164554735460496486793252176249162913525900108498461194369900593611263286048794800963562737005383054784005237241047321978104181244746623201955814040982508698089509477494680329882802169323236217077925996155600140159965186373818263442791736658809362876981493092268771909180030340253493216661905414372807322443353355224478377814485219866064754698899805281498585366512740645191231588032665599242736687448690838064581524310001962530207735844141045424172700262053262772376915865801430449497685854826606347141129470782525356900536112376641494463336496916995692102778451286499474455717034303090124099523023457448493190072815176579726963570705458178068058128011290083193169441810097462773914407547331274733116782483373525821451874748563406254093869276926955682411708894743777491206814490270896332247831822672981555109225563584861670753344155919575993530655546922205658884993954148282087444397204106815841708548487462496726423228152407242448534544296956017844541188321529946616217753098432540922296347478018392055852067086246140377217388231013449327725382164844542800305238258765733378296015533143151873383531579466814239551996911976222741428198608532676446346412420996628693984365359894269467231228413228991604973016954024606285474531145936795075746474511903346567626154565758168865332613190790032038327962514835154851994530156868555629905138993902037532237975755250939674711447159784071808424786414754386364394941999509744207844067544732864251474275240716424632674184177162672940492743354385648849900343256893121470135694635011305248571456169814502095759429819266486036186727294162979901504517512969776763210495056964405902704492324083843078384349100927978380284987485992971594979446399176247345558753363491207363989018091071374691791231313874156481809112382929906027094720590768539145961286381253697755405525927294742530711555761207464027338609451791153149767746685707240390716380631578625384348209985326398443993411455999712201115740826805482110381734612066538703519924259959590025773820581651624660609665046467775295310602069478852816289099010884714833118012376060777962476097405188282889801948975465361660496391143608681824786575312140571797671477795153934620225544625537295935150394821997732852923833333429164193965315039169064260294049404104991744454502407005909840482988289316149863063283325123581620678135414508296721420044316617650309875583767459376998327950191897519618300405078484845001748880246301459790854255318024402261130073197715619151854272909193332242969161836617266257814366467418191902132282779631207922844886475742592956457528485899969227612024986555262525734853125043884206726732294627875127745414514706313962977453499162034064561819068342310851870537213189976580556332786832774423404532248419472015229826217974093311836972448774455676909969237889592873312490673279846276291237030385209798391322940907822368707296639802589400785647014265688224954529723260514400030059721489512447607493528272525429771430593333707609887105001662671603389117537518661624365270526865915387613591674291086202840079651895335935968103083083616389833245718326629773832136719013978804986176283573897821677523086177872280827051220825999863282780902009151717424386180178479175527884687054397418389499538320974424582875355729660186111602319209048189617522184757941280266828703859108513045660085597956080400232400157801786695842965040040711953593692313204194858066611330438174429697109943190165065200292881875735518167337243323598456549110499449954878310668659163533085594643806200067441521466069058621165239701567563426220028746757778923280233594046921767112531831606615540967201726704561892080208102144469778136106217795705299560958124126076050845203238344125530886508646372395354036748847690413450752615259353376541362953679858257387992394703726700266422945718545829171449318179596642709393100724915860945583800776560761612126933438429110257041350331803989455424507970558994486462083565390579732459391433972379943359226246605145306920786366329662995492326921491709398059677047507441417754621759167910113664722427789474543340795172016696318369070641361720702317080016548753436888440013130750540197163886984748493033332786173542799329699663728515989216918267455157223128090867863197682261076439069581391294024590260992611463383237327729676086381967529789163950861236346194147173362551286555435902244943107394573307983323990140389499798540241157084929648567384094796163167047783369132051921131423974001915828116185705336971971160024019701955974384819564266796378081648616221870520722707693006027115636613866957352243358167887540117122134620168574144120631465586043335787000511961281782902899571987755905631082426457735977720713380805887262749337733201547582623738634991648574223138803262937813948710466076682912794830030321964794658088872695775477171750241296916922947790503271820130354383434993777381201856296704769043884018122982104905790334985203657189304569502399384332982398111501591811655388749060768702916286630506546249148698357501724028579740853521302721139656641642781455930297046449131081535326113630315499802335612668139213695238795097427635256171819559959180958207540007828297123604607651436100530847295615665963763320910322972348447808823057179356682602650414735091036493999750639391467932372990392080943257168077921880881783401121989546014166903331732051781006105829940668635484379689042238103376994986792294920988548517361359391933487219021831819190381019921485416108609723157949750208219080960920563562715647103581203353526364094025060575147918182789753916103918139835678673052812842137757533520942835454616463683446655074475383777894669374472052610915108848234266737941371479967301480514873941999848907829023118370471936390780722940116366243353178411910924125430704921577200579969251824097454484633134235978466276657441034155678298296410608295342578632432207999502167249814656807960434419836998293475372928651064379170452086603181377541254865535483913653348698258400523542060223335405790753415655225223846647528186568514721348616011178120581001698362699702274629099285660409150342681971595833992829256169310014000118845967452210244829572556846371148631869294217945425177596273736322058797940120953972920210960644662624254380981749757885957630595375513756663947940630177755375713358213821516313874778086206878672027163914524719029245156391259309026827676865224623695548322906513478678915026640169766220551050716900220025495042493432761098368695256387244449632603440880391529853701325258714536713893786492179688500064119307959647297400960082730254019402838858923306054504315098439569687467216058765348668415865246266181542372495499638928461196139097900442194553022131856729294378713668045996658393321170505487193515997367151419811081624496127826799001627430150674678635758995435000665106259675385535398682253197572093787283356820359833036653538211657550360633453775815908257810162400110494912088914587724722474306476201222651904723935544903538177348620653962736168528890583265670252524504613259523693932675779094483994384597759778566090548851814820139061371847839354735217310623848370061741286280229393935005072278264473499597221671169630274070821793132077701594912270221009694875990931555660497494113160419995553107077646507038818327027338756996935246580126015124173782288581020547703545323230060934153006375272163347501928165858527455943817210497951524590752118372847144582128322878678226446477579233341043549638999936097934080216555715104773660218714645451885774740695648080692491898630020208672180401397223762890747772788900092941747090940176793456793041345148379381135023989674411799300940224027886977491337389327645165261556218488216684341495663415720435652601070573512609346392613919479231425769478586709931327118947762830549408038408032932173697630261023972726705923958147729718979029763507101047463482543981085120073133997205620805453693269405933020214309236788681399843364591311062502100977757028278981219422752420287324227300200981383821674238663095738143378370945053275179687499111509391457104727457143840465962017881448853341838241411500615140301923137892804150446521959197084406010832786386944326890732883101068384158473957880596709936478931222517218259082525112415090030740148309183237829484421192022543960818406664443392034355287409701019316392407883885988409452528439189260493577852091060497089633815664368867213903568874077341988613227581415877736728649501383313510051073279960093636011658893406652394391813473371660790075316021668864228706517010226993551377360722144093480210294411105816038460945567371627976968662555925449522036477007835310669208500756474111403616730794482070405194425791040517906997093671888820657655608529176009425895493181262917465490798772731573462409514996347342903905959043542671103967024481316533689026270579855715703445532229800361294461563790347981848847997302699947981847005725075909398359245638720224899175448526433539693050515198629078233692693335218473896209364071359243956599499114982709625854870042495160619815839985374831019626480740988638645287393399394499694626522625389056333267250247026196872392059222753883953599165097975610010192966389717385176445116992880414736863802073940019189870068170862033487856375431461395146669858480655049487196805824882445922833704017252200429356892988550674346732065355534756488230105449942619579895297211018347030846978898334985988498298865927327467058789565735858281105898646147067192977127734440352336667745042518627440963972218668465928384215609604677073016370210718127093224157665424163474567059942490815062495632137726985852323124299719908556282756851486901964302323497383808038953534851188927273392263655590800959349105136007373196148531272417349504632110239250641751316713121826557481115127412806309893351672733134534795205304469492817169931155578952843663151442012517900682996685520047754061032532521370408426323292352489858494242906828093935490099172180050723908580362947238247931250531117864532408757608250397563528179299189346125937968672811860532204535248835058588114209621206746270552532035297307701977374178777138347770154654763045916134368819466040904980343274211570067066531991982061659995581468766237420203142483865043491630596279956243878286869704975621741195677029603546529464500335326589366068656910796859558954723583662827212743802944143032706567326133972281269732695471021451860046296495365730586428937619333473348525202811269719521624514628136642145076228959787209907439622153407346940058825379654572785025440310739467852853265135317483390194398359770800574377354269045964933118334609116424705559252440083351551896179266367769740535536267263800428459120989712648721791639533121520282306898460778859517310141912997518969681909688366949503552430025144903328903144851073595907691901999751826110772867083072665473911420789259833555520736538244359358843809638185841366341810840853048153138853636034909389996226190368007434084296031536228872261126898170036044641427673895727389727904501083214801303057558879169748850952324456254121574480512089314455130325269590484293196088970289754964816476592288269183508179925920414825728931489580883586394932874973034705493984426927529203403087086848184938218510718991772132517941090846373975292121163886156857758568118431156027081222925017381488083181674321194887839311515821139987929396879026853024655328206710826476877426359443708521389252075409325035556246729089328879685578562510998937723874240855890410221117172516442644015817678605496088318375698556663130138957089403364489656055808940742038962497427799569646731907329502540227893666140858448294352469564938276428518580821756117431291211431659745733012697391140408414116403358472476821218867333100998433638213959969250680159277306444395799250840620943556379683945926512978150045793266725583893592747624832824992773784644906775556690716377542576011561689467855434855660003697422341434538687266045568396969215942808341664481596707908031691365243251706056643155053634489387728243338478752517296344543188419202952151602324682718773374531098540494185931227126807260052996652608623444493147847209303716096615266918029621534004454869508138799339956273971591417038252147845804001196470984399322540627198194465502598129167213675349611466517428115739500115857671111750364724164275944914799952978405722348790284901181259196245235992097418079399487093731593305257220283124494362372776241622869779774878302821024595428823233917642787748682558708242691174418076613609844242663607345524687021538595038024604056106677764365737467468922139586520391369545981487605028089127001906210546556344425808001342611770428504051890405569715375031775811163451245167341307996832847953415032580050822832392582536162614559946296981969631009187320599368452268455197545813671583551823097693294841085732003396901380427958983817739899386067887313861702793410106147846063338033494297658462697443691629019734160591353394541846163551149795655104199036835933287678938473806239493986466907769047023399114912423583108594785840822138962334447834372331615987542125787792004488889045053810839615085237936268312272940932969520293421520966020797921197201686212972966323448589839523881383368085758357248018449433877254095907585585653423256663816150045042344864107753477380620791773477159763500463991452123492964989835454203376337175959924540626000700894758199848091395604492425190154819860274552673230136425618251140191009532920621269398986682107239144659636584760043331361711264033484706118565248226569937120424732422489745139891217044364092918587222314517798382791371835604185404324583009005049169631966686839604511501016420636241549291685675772976788075801376412395743201950773325059775203598914568630112724875344645165908157099967829797223497156788297299234195237302003106374055772889383306533367510808676181432152995052607766922569077013095357895319545575964223332888013671701533557883842499536504179725162878662079655414691135227742405822141686825715534469136110937842365028430677278611386347828302679888644621085491888499055105103456308559331973253087703078870424512164177529817625916076534619387828619703113027962574683614090491630117405392875017384518077554378693220538541434723327829737838381877205436181656839615415782972394539673521110965358928305153633015713451506600210309681453497941411451908613876869591892842776806429233095921763805069026174069684364138677218987025189035062160641239620401434850285061242743374209081634144931375111012432126735568944526390726191443323831397858922561631319842600821676745783129066864714629817025111709010064107982074880064609430138560828065854718892920759728899388884888398230331415084694592333917504102700794727491244878204588219916873462588904983649740967340344028939428572919368107235204854179645759786426134362783378938466490844484432328789883792286136613141398209064489690952452905298125476534722714776695198946885062583524545935622872035101628049243629955233060929789402612572700685201682743039244340100811015125443013418001351622495440288547804284259090803456828914801464691961551706091296862522791803566275212744434572853462392322228985977752654493602958522682414241288128365107573892530293864806261611748302118764683644637963116377470368138125294316878725010374341425708630623436442481448433503773671893138216848639022847968107814640248035820683576335346645341666196537228330068288696089187308801607255735699239245078920146374613714705728159259871468280469231231940796869247845237222354578353617585627305997096637477314528988378703608551078558951491602033704996370347194171781167710225924911805884135008880431248055208055915366117272876174978880557237385025889623934390810367613031253171057472595803351813871957209988659068595913776276350448778372834621759795683981176974866781946945749812263232760081599707895158129557019441696806638616856479857900241135506063671725750590882097350098131592762513475565197265805725183820790496002117306702178042882077669374744471640858785724133303978587495531120946727324427555286526880486631583151519972830968381851000279759925236078840930502560527090449911105851400422805319429350381096880294933366031718415783278227084924018082453681124222847915324338902910879752356761668707666047887063431391579893140371916608778262899642063839497356169774768663031699857580236068866360261177280298695336046757163830649289089245214063799603282908969350270773529888187353316929406067229371980211705586764303431128311107146222994469093382913198225528393641966701068309822638248854468839540086183832499626450769768373647375888689702098503141984317225757588358453797839997710233644160769047718384022119600320462390209428081965629067479083179231635227469331201092619270936009951895042010934938251643634206673208034986229159708551572077318558377986288850645492178859002165314681049403656889630093324735922542494937603153267999507205178817926041787338564955812000955230273687398984333302548833764909403849221494618295166406080730044326534257567604934241020832955565605209185123388191022405666306104147945825820059498015757777746094390932800092913965475964007002042208558330841668197046159004439587840810306749910787600391599360432949263376392545174977640425421085262003740614599457402889536318181041438628974618264904705909804356840978547133005113597011080972366756551242332596634746097787989166554859121489026109238822609567949441982898098186791909883962888753579835687549814767795482057260335337104359771768404277982666465760629633766166403175168689461623455622173197742784820631377354764353839318701370599102466462373218242157185768992091283306415708868196038124812955897518779891019239805096904042435980193276500465228842103547094515434576122292255603026197845777542293320652295326892449339970060852502796742576139797370978523980507239190719674500557232669739786004425704259050942832571805264988852606652532228855360251540085298452007227486111390100082171038097058484745541246552852380395559571252788439712705724789332285411659695584974860593141782247084835929737079076743960205168458602053095586777058940437247660819212987375119462267713531157664145352825815160938376273248832660439380899808005332033647303298677562300767281342178312626377086096954828850849506779284698929216762005838403788802846680913852980486003028765318647299283645573071737750849778279497326050858417204702038158473448862812670068125819876970470735999643842080987161571797945148171016517378404163621635968647035795645919382750499142984900858953614120805175852894000737048324795091062637371353424407727974792250517494843563001754297439931111252746577103758176369411884774379360142444897124053145009813442505674835069885092337317364462708938506295708224231003135013423156785478736288377965674988070806197123319773124670123287529106650268522512062782678387922477781597188407232138989171141192421839228595015712506225233146707208691340515913371987473843523030523074629214721473144148281772549717057964482116074330075532066291272212753819653179069816834677923391825844978088834154139139267516145527468540203376470954679880830932261587497112378643972128846436594087431709257625934467263766749925823344863297047508519918235736793348745466458998740047414692119149702238928479539052565080880026211284967257608588513261776241267080581557281114438381810476435589568767016192884280439657932422739848641672723926360767623905881256431086308750174191000780899819973092015411562358623045257657001284994446433205161379443001875154182292486424412419272351612728374294561550090278403814527826499324078049154887622257990914544888041699965283674003256182488128313309508000486613464879078060263696927800844605150948974848960468830692069725480087488808194791686352500692983686608020138937781680621338159207226130642752149124934846853156674178808773271450871639134185135006124130662151637075941601960744294195054374595646854126285540130557303784916971483030986209487166338609328536304731684731137065188211890606122486641819915762382157475397063155382141086036685349697045806649169581659517887540742443794986138364980309501361469960643967618697447676693756175837578275199962574862007004081829083423574037585828177725771750631931734322475477241589996661581948091639988345065506020558762026098016838090990923558717660550262218876784911226036110215843703074962789838693360003472326195768974515679618135192514183054879213909639117553503351842338347444850922044652588060470142538307431657278362656704295819211643910605427862575476364902017023491921455782606444543440991608583309575118574601940565002530827759107268687076364423204941048838487646667379636257468992629350988733974240616533063810667170457033377298761708233729803406093542966962975794219497108217781071756696079939450083002646769059990923251054418972783463008393230233089353503577538759079604877409715660965945573325274288932076215287301937169148917055962303808451981994484138639295711927504397854343452249872554080050605562979596170025487213404381404487303473259549612669398370830663722364278732173461307464617152996005661253434040547724427108233199737127769240471075266700140949889351775013157433276844673473143922308294815721616215234658065315104201022545472175369271559320995290944154789438216381948570327083914410526823913117274645719809937713754599164137077914186972165487720405012458080601020902895591970358823861094759213411884574840655029492222758526237691633577896733306593757224388457461475466007528692032636626947659768704459726852716895849349612390242558635044228104373955020346067704604550922342948360750092424927194268399647154196893158658383382799759565897751358066453223514987121865808433223196596625234688013381749607852561834004487887461628090000789450503871986278781041053167384404242913550295441918679796331892819222700476587749218432083192566845588986902164131322786704508565444328388843943141129042960155290665849956336758263354711811576713544916945021229636003725137667204474882682890156538385314734383643166045527383088364868460102675514936216338172108544567154978439959970446571573836792751638867202504340022552024189583106819449201742827131814242429946759958057143396831626762099984593751134000574403837909858231548289333746895868040092609277933324176631528353316235353204225976459521617481333540334005232617991006418849894146499068063930511385187435937289777401695642209830219968066577814689451050112398481081153615010269086380531454423984590014479354998654753734371185464171634090934268003716663375113226914993471102141744620245964814823815569100301058919761739978713469501889345550107547053527987606019201453571428200184006513023326146064613546218009142480720827747521086270278551078703169216740865959378105115197461441261847413964839661588802969845468549321565264560570815547201214506489173999669082313497481218900419248101955709804303934228205923297332697282932619065096201830623867278832599456441002994446072499953150610718737579966645898685580347436326897921023560159177407357822422856082878083239385174937625946267008990069130265574638128957798567915452011235601934165526758859147348129337673890313220870059307991280679318846903627783189707739124070517706716807577606765192050382191296441136919287815343086862240707894894035393200625038081284818413126893608967671533595323524949966610116168535992265043048311875760485357299571327757196228785562544416427644779042859289757836769273356118785201663566646192391381440761308375355064830614011374965007456148690935659105319276396554799161277035655295372151321790052600406453587629823935157787689524552367454835670340642387127479859726078941495273491193856913944930353217068979541341932378261864828874209532772655056358951117923076128412082628456314639880345589919041028083390359132145797496545412960513583129506872182822989506368838542979746463520355391534548783618536212248262090942832675623563984992045433233315321392537391285007422473659005308298961626254936163218494104118418048746801657932813191460834491072170619278481584662606484910621584612826624345627139325820020642620151146750142073246669665169257631453342684839336728896787067241801393651327308622697092461873950359128978554436397962702311886194500114559058512850105755858446067385978106705156632720626563223796709426945411668009362710163606712042492357758435255965940813091734857448183177504337797157934705869369784688891849469067430907664772828516989134880923327703588718749858386997050749570365626493140804851579222238278248757770928429214485789312199576778394098933450734332529125302263312272274828617311701369932655321374964308061887058041169785372327840246760392078620688650398890164481408847349324063507054164300893694288990730675462168334347949424086567118926551240554567708391552528520743588668472049644453466223405611562911852659609260653776371279977783550015078894667887669657127870467353010085183736189075108004410608353221033799232597879382805533821262767177664787434624374483441943602717663626098094910938067217110027490941600806409561427582322158774645140320436051235591472184930779355278932225500076648232536600271222531512764684754495234213670925792503798755438105173548726469953298767893654274827899701174274992408787363079837657063294048810483203540474285142028360633196522117106560987920282292465899382181745728446412743704065652403070381986571414586675859561551413826429695189580065305201883188568561153182164323910742742413147394294351828771940141426904511186190678981209990923917411084090527513190965788334691247533057261748590215529632703897301259816895331547345995869603096631552028900635623825784348334885090552827698449847237838014617719940775146830054796048109175698740250235584750918077108411892399067530674548186411916881152157848733739833892051762635823148146519847569877121079761439314404164114829545278900233896813763798127060437777444965203866944149527397213081906784431742791590430711273367469120977287388792546798237779168873548034315442356850213758362843312545911781834198664856338370270638446236591059714116537757573344862135313353591833420004849403513870081369437462065862083185493195905282852190580800854650484617251249265065487313524320360282077339148456576486462582311649683664174221886625969878160767559044120828190019549689647960860937504527831213472840563672970978236183074073287452083538318649011593950805051291567066582594397877317882828629978302072195116726247962350520342412153449282183675351894506323111618131154051479368833603618668960259214041816042718656466825280647133478128953750558505134126674477625175350865719336240814301609294728489951325441803361027953756041099335315657781223511342587576518534889700195329037415168772775664720764858478932332277323843288289105706825004020166441653257711186477673516556523477443683747712458312346021405273806648868801843824803170523735223616965821126683987812988717249024495587246024644963521413856234657370038984608602469433555303038486194531278553043529828315728444129545289181097764051540101473475708986613462168454859829255924210256563340222227319139273110055717585928948899873824028080266038719220890514172338897107150420856560037581128453946753505489431737203583896426203035648625785146907083020234033209733980875378465887508161296094889598939974884123457003200282353897060883133290351755978768613567207120255279959238997325412946562818467997363655925699613938876088291967338646405879602481425684897867483125058048146598031405296666819418258496733207916584966647434982358094910978791644372605642132502016599181433410036861095006842423130554195445374688930287089733349629692474144091258412928051488778096580232582000557720154369271501821651481995756486251363702172610254060424580691440069208673125979819835346952088721321111370498724594092445265680446676170366856864872005619734818640779557463674005669271211063903947060302544228129222943112349179453566139483001587374429369181106762458149337387827636634641202914039309023497578614595919575487458004150463073400288267990081464735017757045659022569116778362921271801693352709396067361044870158113724857060529506112897850196261742896209571250346324301431879054046271822477712723074488626493577879866133500212060331568560063081393226086260858189065383737007744307072068843201391404505384433039486917054744752203720974051702187168531530833462094380281462010081127038904552597352723789831281840140564007738912887150412676507321603641346477230540585364156865005628952919610069039176031319473073294555790203540964215794834405390381407908752237364557539614945095589584076105438216974197460967073225809177804206368662789151929503766734834228947531941604852981937129081092794844833965880947988288020711182778153426350574013411710189642808784826733694449658633327457213565295988075110350893424946351431399258670117181296939037849098046435962351234502569140892261417715796904040184225685046165834911755572698965378750665621397335254770956962069885615169402380400559187678617105235030683529844215515966198866254540427533447330510033551277290075941281768146296298823458402501142244055741718702116748843326305628631932217171725368223477343356799099325881813215925321216056168702916306665927614648723883142667455132552869199489870309068529129495621317748995615125697168860031313229762455010129199773414133568049256685832764994393684691551157751340498932455600338406568633429812606510738341779164552710425202761035800210740569998714180762001486313135755627986115359221252461594990738090181342054673550861488593971645501921961824281304712725961355624046117446971058702685571386085211709823532276501581913248334448561966312980315488885853240900943888771686057030957356205755499284407992567950892612505456390604706222030005542010554861651986542631444315701677798698514038409595937624553922785923774324985637834948141589268510811875537030080648213826519679073248706522428740023356196034118732766931771237042255376877505922874711858735328726712279213440777579457616257082760837862931297816266354621039839702945257387748140398679842062385055596511881664312236277328253077943653430131569508468588459967004470621047875631217779300438682719581954326841393621476176140293520505301636279226598646229633910267461026168200643802092479043932104844465254271120261881372664633561085286319616624003260258697938610585809699549603400601372537299924554336593011368528040638371952100693814091708103025280421476040208263044643260489254526500132700497240749389729845108344479264028961888634310914451855989156045792237369484963127852905123167543411530406752386210098062353119362278249582564195456402805536616391901733347648933330461719327584644177424086547750609571356500804035545164858237392725478973227574402907001838422382495781742634308430378809863715514404322856912445048168500270760560291004891890441032090373537877006849282904615453117029633356047619123541591709379634991245513310702518664584854677727949173611583875253563309595653249857743548586210528243480122730447718306715157799932859975302963402662632680963922575933909810696830003512273668683943577591489437341328880460606749159486289231878487247874139759615414615674581829690370744852884623786133017944048572898688856357330283703682206384014125462907245438368265245692746684126726444836414152621432139080234632405157232898679541493653714967330410964881078130930544799917271533983456351410462108987938889176882997721165290352583282022096511333417519162810214393883976844532532884632604527311607266705385068496936723391106714508169228099298817529103582927872400109190016731281348588062007796036150489557739674804716035046716513507269578209512025636200614163134050070737389312121998386171217725755531799275642695947566635347249838171013920668528791470922369834902299942550635248170369418424463999032398205845783400264508364172304899725201752845493875691175451070184029223821012674972450094417409127769452386945655511115847215692496580241181192895915287809747576979424681356706704783283225291401895151256499059282580106915019139850689463742595240185935717014857633774260939369721809944829484139346983959917535767502556594355719838223312552519459396818997996265275512516955797889533573324153584639759191411686830717197715700893973745409556336152996143317797512154800736140708318593489796350329478088494518161201386406220202114011978611203411595543757425182025140125061860200128090580821323597512137949868764926419318026818949276649782132973685612083473080113142342587465070672730313145473425033467831008949786135642748628580850409853271502752506475367474394550202881102562227398119920846929496535503228801356727699003515886766041391874685932183617617150543835370075718658020506805267837300457463811105825197123786392264722584109609276877906499012108421958828256445650212280897493050995485582785158412499954452099912205476968826264469195806673649924213481977817555372847416296905616687131634514339450406995847489777602037410592744667037382114084550170451768683262813975857497574321460195990621846315331201366595154240267232116996644242682927091319256252777508640618142608710424750936470012789177689092338744809141539091365914640831273532396207122441778796427955487706138735958620237140547210344088371587616743624404745091476929524238738528338153216528796468733372717713446403918385402841060102131713687375043352935302800013897462844058071255528789899174747753087792918157030480093601882946315120659840416186401665902981561066613238232427087177584181424168802847573938528280945271912792031412903668628793425063692134561257678148754298617075668930342784147928004653532926413955446543513625002338660535980367679841775702773860989637761719063947975140348180601559040144219188314188562071119605819242183550449172667050051668383556205106110669083096336201416270724905495452700851266528642883799982680581103030979173785474027783105304149212748208362403926574789948348031868479112568313232655129518217146247978523166609709004546301100493454306953458616688192354133336921593298935934059038812494166253400590519208756267979550732979772379532757670861621569108521482126626119512224888941350965056758388830132574420162876980476237651283468028517617601278369134419921294118037980958971848492652359195230480932218459814513966926409380697889675065263003531200035938678710066151190453073467955055117694950606243737407359309639258430045615650997432825322970889921603704582191441848346259161860974198697834064163967095211807840298276128021973086066921500102081798855073693882492966830236442091096805225710147929991737235836085141286876875618811935498115974421655454424842303175362451679917275270901874339264528872324157263635119996487604162702158050942159578269207500942023745903187085367685521510041833391045600279991562927251560738954327701773295635048952687518322323132968701654704371521244646747078213747361785685942693096895278877628342085329105459698210502785314127868631188545960277812414573200239522868407307576261263226143585122979911900377436184856728670182849295951524950098108732129634431474596974412102326880500065856388723770492831848968849950076659964989035239533895073901624074081984395809616058279360786009046236130407149006259134013248322072304309431986606410328165917352347749630651061465915420913893793435423769081226076141242729671934178418404899015289510977484124132964808923179243303687213204973716739123556452122569757551108330385536253674601898762241399520965563519556955751883198162421297829842536686718617844450404345242783841435194096621578185020872624360584779796372117308993830967725158024959037459031200447929641489744611023190278029364114199718787718625376334789090364500067526657463831592386134909927945897197368700992581654860814880411112632863889819023720488551277693895389659192372089517914074741082947376661150030789898569015119786266173895115657881961128193797950604465117050869857486299343733449473563673498949876875608590593770889351054842577006791997829717681958611390463194357683644122052481684446212211623894599525313897880545075412021929597528987367910595860887366295126531434344074517529713458507960330323930282547497837343728627451863142312272705172384715424015636261337140132110161139832466247226661166322902646648625702713988236828428210330387357118561410817791597995533479975733377453506102816448681187619893675182879627566986883038197093678999366854941875676867892233953165616265985090519940763764619492407591838639042850445409310705213121612038219427888909680800414120597947828807717542016154062139077541552227874434768294067492057235595010362145122041571996536530870865043469193299088272420991156554300684785220202840412903404922818828346431400700708723500293857259309208359608260884337936049810430196328501884338496916290696340569579802844806611556437025336485573851255326710497783238402139642892075469738311004915145743329206615982917340463759744616371595455974460447673555347671549892786037644813332958394763241492385577790363041919607813924922213424267214572285831031492663731253379088670781488511534458357353990632407924941961370360495765242045110385970563850838942844658658187965123854185161427489671599072685187262414832212327364787250806675671210681772949501965839445187203013421950906223839488429488033318761372450752115988236189869599544574448927733409791213482477048859206244841113179554948564649935199578567436934150072714662775289099188868188783308931537246860293830574824152928593595565601725270041549200773855754850970218633022675327394055459273897137420760257016565729076366099952211513647034153442472241383716122055045511187380753625816726042254836703171687217622118741947328632670001278658699683125229454477657349432411688886210991811000683609379875112213908713625666114785242413723660008166822847837443681468789699957993162006556803199171411372440742994687679382850081085110575293572588305717161908465580321171434086700230866336625313560650520401628842875469403355089859976555215572694338405573108823712499358383845754519286116906566253836127398169007632922067194241260252695286800079078898945896291313214014452596118607393665442938025711831148022434844966885553769757742155133717635115665189096642945886796401536027527825507784710332331993724887961862610089675835112224950955747999292803937974857133525920838296300088465552011453258277593798697866044632381363718741040990723326739860372319359376426416703586956447375270288117572537559324273800327715863758937335562661573809448383064486269221085110095047264791868414790522567593118202990586215764438570899326449696586425107833327857182282080125167408336099804680599664327324772378653696620278687831246932841694295842668201873249537987193732669270300317842548334224277131192944247205480982089038661274278495327502872169853561054263539341331514800275602719352187646415535509751081196046877179609215133927307531137874815145388308055182460875590904651479427306123144042876673529692609544294765448843827601107776342658419550306941591487035864265821579763776466944863907898573527791238782405815098416091167356035302505273342451559741816201914451220068693428673499137104998772673751300889288202485274056794072429437416407185791743164520249636602763684966241127822359806440354052598847245820261911001185615240597005920784281842935045995873540401599878561999772812009667295916644931116348728346153503351222663591170038145720434371260170695281176116666146914896503176964997621085837578600172500718478776032597695136741399734851112782461397912292932850442296355295453713590344383600299203104861375792083067884438513116974275986506461560658289516143379304327176057186781497166508227031235845541830788374653907124838382737494249471568403416630299308906610208493048875799649846955414953933812974911188823651768892040514791617414480078684493273575447251019087013701429424089148826251893345307962168064032717549311789220291689671106095585804991291113749451143788299861960883604226257518163681167599267622023092847562527270277315138268537048612741869007741485069359744277368879360206684077407984168062184696674425695275399818802263977758371284389369718107834723639691893312971615447194494013721145666724794270048688743433432441826517120313954970575111939620739298448705789652230439595502610210117972538805559539499185003349635996869884394033564883410873977189835234486314128803224947031340280631743177111531209221881422103889380123810139438977002747817386098429187785057116877882600498413527139495231631641701091347903106347039862357444767728657533253901829187110108485846868534109929710510557443361017248667581769101129435792879482655808351253169488783068735647476915678985068141736768047505855813860753615845727045039826811426515218389511934884108078076252006746981071607948060540994905666964042993583437412287289112060876622051572032841290753506593137131621159289239080012489708762045244355432663103928690485746912553364805245171520948166404001940160160514725831137116517878127366862480331268454495540943100616327728387310209845119102197461847462370009553583037415857833211507811439581862601557126598646499607905656608441764536321041610717396943150458909014423394004028539373056612716992517895124729140023171551759134112792838380701023940706283644265232427249410034818420866374685480436953592711323925817684621971309905664935653312940742641507506922201675070274348110394057915491097980374808505949985904245196637759189519405180118816927177448546359722474023275745199105439190627742001115466679882984508413671438095065756184347051408486033246240285287346658853907391456377303529315097109760142953279502511546263124277820357648503708500920666869072089023960127933822332970950945209171585398677851190506894783462375118799817554710527491995699536459392464385427306776409077195700449343803074249828047668965402072102701546031138395959181973237868195387316345380139076996811269167480872700099151547597699206049584446170153302829742858283819099990642070378167526280685446557282236413214352044089233423417989366655225766796736690855657346393974149431792061245047013286127472310167233466570796233244765463292969513630427644873196223613741738292213518146245449238275409575965321340706831124090377601766093195375143293334126701717276569399425768671851389308481045218551064910925577879024373878208422473039132411313459652177588863741122616462576911323823441366480254639279827471422239824075485713621277125981760825245661142817931852981021874467802282532213002361596529042353707406512055147551935454916369228749452356230650207931333698815220796346316687624584422692232019020884665543007589481886813508732251633251092259394186692413840049705143397616587587128178566154063888541584702603178710926592358562286485856085409006339618326760067725587506960740777018182292655871709047069686429458642398913808765405415593539059053545149285502362705426760898784645250847471732197174894060545373656335969004209970143573067740355556824408268775457352901766992204192154680599588814199821069772816289805860857559192058904752908335280789948644478328265349806582349390066169095608131807309055716951936969193388276320952656099791031021953398859935528393423180158909531297722455431639349968770109717152463362957556084455734405987909206631955299556388253519615368129358198876997704178140558972406835361108856371991606942558467582602704620605431052637185342496793658130850254741445881375428449898289139602468670917637517102131401500662412227829899951893900977590866756452973288416841666960890672517112753758227707496179634588624567114922713999749929267685933002086507948954379372546030916442906860028039635891687532486483675509839911501094097021315679011882532215118309795622179857512786258737981572548768874814965944424404915265260599577218341590597759586287171143235366864355519976764958260795389243593653549616912620801233516852032540992882937571610811144354426072935965492397039963261123027291644490934416188116165710582537265352983350005613409173215270147009963499470907508316163772408070356480659524860121754928499452716948005115728275348231669950284649669111000385899350565340601722134060543154193964635528143179851016272446904267138721649974857920874039623983076132757170429639178114509460698258602708620660787227328326862872005148545388293936964390850625062577725169466024987867053894860810835293334107946850268696128952371230209319509496997706503496988506637873109945564372688470195645386056486371554031987801929384737680231545271486702724388444989502498851020010500518223952272800653726563144189524278507018925093066350239930617260640817421932747424740037144679610440332570889697612282175569566245768578128353788481404374006678335560984179399146845954538442976734919915804703083907482326721096806648298943457984332166171734954700440303835342968805250923273810057949303492580609497643837161691025577662334629043352424269646374549425424373102356189085499925654400596878610599961562967333954171765785677804335490355430115912812984224361162914539471648002251088683564209804272722031052283819451514554619880182708935278269928746319517415756752414059253993829045493413709549817172557578174942648295029149481122200678720149774302584928189167013336460403652276715695658649792371717337024376191179137078450070079182240085271014669517291508274892723391646863355442846937789591978671615996882393151654622292960682234330250951336217442109934888144553197357142207698399055439615316632054344715739554245592853988293844136944340835590560270448007738288429931276723960535974250961158687540422772912187801189416015004979772407760754359849825688489616703493217264120814371196130736865285127799089435449292027195545132963677237460742396977394459731395669329545273854758648086992019845929416534654850897783666214612105148715636537853315487372240199987515050584769307906011707599386064380043356351161767482757586659612777463125534510142607278511954333594499053117549579768109480587031118404389657683900685145446636820237948552362533571289744754591610701742996846592749135913470416360301625542391303644399348807008986700318336346971743673972069447026045728439525359886586542196933539572835980233195378253073881979281377292128289359913709286462192020228259645780461317924331491196866377513127506770334261117804019067873056659327729538643439820757005064295116750521936621776137604903309029303435083056804968266361679624656454831700649950059100387647940245083264252358164236068235356536763652061242925852153483293850826092183036408574223196834236982435564743746311903757398972518000481060753804593918616672332569529887810330892464284241573268083990335294343488095793172957564579695367537562165058541652486603244630500197562953282337247782443285607754071745614956787605486139752231987784659366125468705053859657523337916405176637060915709819164973079792535582589540500306753759578919711575441054591604249485005680980074177345070085084895910192360000929356353181928413594645172212628275845275051537616058516819273174501158212160308649539614775002932587491993228338306036122052152746812684793563344328315251191473378034897253308030771685728665218258396095013603608402584844256749593865801977858256050878439416496767734254055161555447131671358123451509775527504434489357448097315014695030875109477497912451126661853719644095575748772278695334646884614304125061552399832764357126308458299072929192041077310057057742728846012992378677700408411684546323726067456390108860852294985666470899915692128533972054201264966749874235985439603225471000174923519809048599957143033809901445922079122998591303424189284983940378164465488645069136061608796463391985409730704089144007958351940378319360784097441111638422582287335156431590579957878486334620343250956454359221340186032920882543534189356856848040157234315840107163356172451110105375792424761576364119548541032996359027556235759901793946218730893651051644155727765957758293668151634113100245714356419460760037587411262045681050791658070714987279741179466955147895660771121930187639286499855505356626273497415000793442382789152910477733533363950654163321891171938921168138793609254512539618578191722624298006359117721614409821798787079526014139620177747874163476912997080391490566065609320643723081513664457086642772993385096214392372840420089765577770392056796516193088006736663990114678880822044213634374696582565621201678099121074985263998152672964415727151221748086235982019045498705686656167447864335692935185413052001268897995692479520101733829007892765124891410878209433187529369672071897614873807419898101161278231040661156738187660185498263537221726925455447926561624870848115645425805465830449862638574034056876246462317179260924790889706146188840929924308661435577300422692773214839083384879752143695938001802799889656045361196767058338100507784273538640610902141173185134344252014076813755671199254915858023507869592138658993890391820433762990638307774905963542968370801645792219050795784610579943679618334681369569452805457967101763861618199540072215619078211445313693580552702779378806491580270580932578464917153463723874288888899949932056808963029611543801582385194986942542322559228774438712242535143338115681646278287624375510737604412942172119489944560991072648149667565118847997372378277424370075751080351176237846526554477567384608235909891246823548931802075850849016168220140995156067851241744463529553848940497313218166903821549736190444110647218589329286957195640290270308884435675830054291325221493534736295323577822472478811445569876815763211600202890338441825120598017403494119716431606185740855031143016093486169392046573406442923096108285475381890406497426192243459833694843421329318919425014799172297893346018422826758290945495542496979126049645928109932821729468265354507192204973742045801554790412708581916099727375998765514436770760354393548211465994582985807624602444778791075621431956560307718432932590781487771340713926785592008958492061304916049890259816000248015128066968273399788859440841941867079270320044028157596160661425270543017703618633637686658216142785523155568380829850589288821552364228119746871258619261086253688797126928786497606434948314704846587583679719734409796072892614443668084668709370016335787307208871306489474078954568779066856755404632401811736780032758596968514953037462240582163782129866378040947834013430359810578752363239973317111966266523715646196544272055971526391697202748716869423993124844044514674669612845180163031287596996912532820046985473026817475899124330522055418519243277718356787215454251603208478034542216341984836518690575666500222280373624425482874362592235956284261356582174021353987521194637491191575341043395622481421168202047909058190567285648190747787538201609216493595588354910562031573875571549675271509176873884616150921104930410227534230036884574105437761973853334237871264802773103758319464118938303281048986884413877455780844118020247663740273861369903651772946914594174800450731716616767363057120461027717963001625594797955409945614756879640409855824140288365496512403600189808680149340941454301296697358477699327295318829443234972014920934098974387330369007787205936907156584707483994213692035552039579273988446561801135742507026587067802214157888940039833332044853483718028320506139145406516117656532504190952008260620844000295676892317730765860903252538579226998409460672444730841879648766680051494846845371759122792949947538679817966476743138066739815839125880030346910410559483724414469187317524265339006269927311856184568384360658208846970200495270599248274616512660790503056123047213342996896054694883450154219001096909965104845667402272971046958320333752050127808945415635950540222760861503744733125046724487619632048910761673908031666510207358563931010492129872515473841261115173168946302502254389924852783401913254541465786087563556515171524345382762909810782134699709354931448605370825456791001250840774737528647571416886428014334465123608286408876450634923610317731890041496328953337830011359821681461461987047999134772996748722874492250357904008609493961410101577398748190099920859592809967223427435207423178536588822218000872464852714680397804052674819695076282916037377749096547372430571436624481777141127303190656052503429802418622504162006891311974074989713133128892626416883574564641526790200934284651205839883186527103206354117607562294686717880612563535484728733775912637332951308396833382911384986613261217521332301257923443381002863282991558527630960195149372932231995811282341485018168280845350287712658674231882516324745780541881221836024573614672376090213567153913245370933689628303474444345252474715516306585447280153538098489169916262029905041376125629764627532706394641855347627513599330868978100028759374204824311251797945582222839466800825224343656129457881474932228877749485536392501260691640324631950616271197546471404384680468209840919939880050144116882915375123201150378749971824196747002647451966236494518202576313392790281652594919790288512459443082604890938389299695960850147782863435880183103789606756458611806678131586190494140505952779273113056759656224821323016126641161962340307098259152275959940086488801355234234516347058677697615587121696766386421682422919778536494297431394298370063179114598108379902272807970813205698976136422201746567192251445219924203277600559486565560966328618851882499932244367421512601546476090633277540110578964900205894436590251421313446997858413566608608959561563693245164847010700100660886440706111591502810377346036567565461590964719300425897377900694128556091590895175554321663475636147530953951871703390764879043108438046417691272289007029875399614606608667017436823117623153976156282201543548260906448630484485220127491183343272835451613925013044447485664814683065074330328575694938832019675203400761438999727488654727465947375248343210474566175427577434207665012721942673549402268463199811970513379624346092004347127420876285844332955771851650630790152831135499232318132554562159244655333460443100641407536475777436825973732440754778823867778250754576040337549531592419676608167089504453643681610602946477828665769566346313541790260584327433800820869336504336916596460322202466461308626053847338262594866664104623033709012753505007536843202088243205855705659265296566485944176567938307101416943848859326111906971452849465880498735702670570687806967081057476253200149095790369802712280001117320643250552357049097618868717599109050820017198164405529028427394561459151925177330772762053046970991592181055593592211636174657341646523297061981324153496785141494318811103158517113034536200022892121519681825151884206228049416948223255710449105485143848092637674292037478423389754720924056396718905118897037627676031768414686219355048150562766143274229361105895658390793288011050973545594476554607717065613530254046866761038474162578267442418013347377542900388386339237097359805847764972730078845368473875092778992364581605513340360394699327717160186543101799402083654787880400785291499986613185156699229686905388159521399838198136170242887229909797630225930130571170269655120477263037205155765347758046269251525069291526695056821785753702981525184613647711959738278048324688687612024620656862586666147154563545402975312235390615262304009223098243519785806399274935755697267709670696018147585323909063911930484070009708002153846579505881830135771510754143497017715701578484649181534071364000299385417161100194268326406629903639416971942423526522080625072701673292487538804461449954019387910303237168009085591780557699043420777620069930758073078011711649169847639655046591654140675590102672512396258504985208428901617267330157861907338835681858062718460705736592272158017557193572311212667050332405817472153224728409657276134926244526114801276894401608119935251581762458485942098536772290352687935836217808876704946582908058345683168191870865916745828374771268202672747589901578718577363402258840022902305594911992057744616202446002499130352084609713088376149013424642585960677388199223186517083394355621375709397105258852151970076047507128131504058547584947228421396416152597602442750331585778454321933888279410570729433455964555795632385877979687788492391734110753171677172338106857553799168894518551944391003121578085793021471252540015115826880206566377448447730514855374180777211378780484201218477359206914415468912769221327367875727905358478437175064838903876575724926564726648124354725371729527002769162193473336374410323367199741875342626562203523402071672253936481755557863935369594513778219271388442176133780143608916328654404060091743475865899447006330434616269955463675593205371824611149461854335226172900453782571255277074221824911175495242266369574698869720352993641768078229023623387756538977392373342856684234471611111225482119396341910032489006084563890309831583617508472991936108675334770815531413374866701743638248416460063831928709569996652174403684178646649262667405576207990171400935657978126741034815048106621596012507222293237616843294687840989597076395335096826760276804769235332934029049353114073155138283995990496408254129709959650209146721725689525882469497847605831111127075942313588412851160219413736266335999284300509077153368053378958995907309824089575490474786074412132833154110542764764976194118873841579864488229079966454511748162058676797948571436715958246362596901706716068418536038400917284398901068200283174533123605816768771116759856792801057489301394267488964749484386198868426758091405380403164377105468943481489235082489914300195444881377721531312350036340012013438637670883195229118768205311049546999802188839582298975082726427968853827426733376545494096878866025830451922057938279603416279445679198073648174118141875585355641224419796590142378241965232472036392542034676194077392402786791511313217491578698368186100626997874227496745391883879913402374530619033213960919589946821071322328919156499779659441050048032284953777856816695493705942580846388098735737774428847455726859177329528662445292059301695617327212288255112817905331648777432004502981455792080195529443112747204933863982368606327096120489504052136174019052758087058069925356126530919856703017103313133495161166936189553706670784225566516765389043656175326016448107875680356498926534604794246214917235496881003226891786471288109193315144753911006017865999884133870647769631906305521946908633831479850727390881333478141250303259072342172284782416340703912735892851626994856183936702555063744389770357886881673314902828932333949236966813597718252782439641077555770772220801875594372284198084529631232380039143498601865160788634821983478266120701308263186509099107154661237208349813267584034324211576843390454965071324378441700469713270508588142902614830449193637010819027032090210845282924110528874853066849388336455596705561927383672278984716459655143416223378749792423408901301388376922701371654418227470020589082246143506187251500671327027474981929798315508011263211206646284215373738460868905339339765768650048262084744343291576130748742278605901290613819400592567717877207414446450152224061305814946668782639327101721595104905148728942229552411804624505491984599458041205267754289575103727393523972916798841191128163885835652387031834579815516987011339867193355672719745998637127312483289790555727333199515890286537625430438226987675971858176823573409062036408553154963831021095526918043359190227884101463672290833356963587833707287860624908276433392348487218526088495721470568489815434038400176594738984570032640373287595240396751444072041860339123724629241201706663550097929292739148966700855419205562503071722014192853712542781825001544763673790779908099995843183659540129646300209758226765397347076317054967125121977419876745895265381998036035468413064709397601260736700881234104982613265545581994589618732886597053501508057770821568833361746417268432138191528468792747547186537054929550268355606152497609017175813388322635630819996212077818644823654567576078050015122478948701265922480874921845405729200848395289675530486816977783647146158401173307065563327919044368293662470653255524133114121294416063292116332617256132225041451851268006735680860270116562154646345540897850390441708015603561414950284656306427891022349884551506097396453710579245710417005775698912857182159839043223817382481647268128914211024712448696462200990078369768118066634241013591535416992116818369986153237594481018817907030501223147164462252278036360891605910558672222198764988979287540799581298436787947671048527631308197093744174765216157749497491852435549758127167953905466414537890856806956535248050795022899623171915437070265234607498068834571477901760186126901504244687331778455415600611686126916372824330946679489090423569289802656201134369460058460106847347697372080843516063295577841475588540193351250201819109260990077615276784003337550441747766355273200519857760688771015303742698820279585177523918882849859919205385970509200470102268289543263534328974429496047066652137974169416420838524655901045191003931931725779492419511650051348533244354853544590779508753603274389516323177246830619332309304980616429734697834683478844307069382458697851513651111860025102211027797858656953660121199603082955604018234437845307096978004820926266026723528957839097213567363943460141425678686733353779378603403810265902704991084419750795458365953677201461565617402053489531711007678972428288891739063149457369651875803768189934569361300908974757353232589202544760676469484709032687979920105231464959821555781796321406493727903861343862259161395013718494869655155423664539926152108005198446190721212855282466990146464143728645240810265154677045589320677160769248515193099555271900189088767664974478776618361302468237933398727759323547768680113150999342685753796188245736337705808464969859222274019591724750988515036687742812014206714961745046851432046677423820456865911017890064890492389477999464245539398839439373626727788508549672822404294177654006022603846534636633873700144742099122842172498910915129306885277510553397101297986972708874945472776670087169689336311284591171595656716802705689328032793459989621018881733228527143222220829492011880018322285547736164114391028217003725937697377997701122480108399751662877544824793618564784839570929432528306503311842905026723902092757083820464196280443881946126186602291731640794718372343739463471784318919929646488832172181438680356538087049124262923553843475766212796737587093056063812435411312813912666658088404013136458866682553202615227400456184729526933841432928398709603626289831103388515026717682520553669733728184212630026965184808284732396595632105504790474504504297713641312278085009519047460885177181560243286457188243866083568940810504570256068643388895527944231580470121927415695234618619175431153665307866418528338666502686628292749320308237818773745266281044734976998198539907415834862728216522638823530702365191719757252811871967438478496866043644711024072552333668565005008055425309560596934764175652089961334481658333623648103067759626359228783450042666646992069420086235476823450706427368865548438172127771193387686465726859857342338845177850991348321109938832724474321141664375813745762358590906080756283037703720398831961796383233234558637449856783255800300960966815468283412842260537758940924686196598953228976397084508186390225933039139574245731072286423678891568231283269367026024555189988080538582481779894093259943998606797211841918392143753277351661080229698693605068324915120662768455301747367360126565075082244599812781697968025377266202691375471639143486423596245533984221763067227853761133112322693416211158275548890659726196978596287683159160807317371647203140754692822744211720317814752209319925862026957092765128814064636874449115827062690355468684595606929539084792904645569836595346189138925444663303297623807751935458395451280810335798300088165181692245346387752498571708555211996901079965202599320361679310439630301629204682518117473862925502292524030179040076984428066266876843473916896078343814982015647215474650184968392211256945314439569497632903684889495016884364351517107094290993612373431683063572372587524502340988397876318556824849134043607663713865039569513699405236120914062536512488520729807649035607703936083193706921633288229106383091555362003372150932006716253946483411250231139316799618278818202668798108110455046465991871786666432597930590430483635373763612825411786126121729277532620982975653868914805753784919335568137215743185170259292276421630573913667039949277169658046192109818119070868376817729216723777407112637265998580437161127868446578344957276632963038186826807504796626540896089842258866095707670137320633641881971960900495847297218586775047563454725972467567398604460952946198870768255274299349075609743640637671208346093831784427891231483004098133272469055639527558375457371280087374154642860842081936480848459686594653454538255300791001680874862645063612066773211280054549904478876286795131813361723046083808933744669983189558721757943352237118953838424686270113409999821562965390672177528092641431357505449910833337112340773754375834833496982837977215891855241711737732493628127346716375203015744435305484659073087166831045398383268254367438300583042152582570727358628485313916016411210972825570450932821035791788089830306082781956261737954558486255342867208852418728711179856937891564522719931237477784120122827589470839336756450292236786829408550901034931834966612237830484133668147561124858024735082038082626784787171222437563757674247466157852339859570254452676073081116797612029654622802023186684966687564407018939650276441159000328223477779798620647438320710442819936001039031229821647264710668879050376614658861160524097184803054544594586175555257402526321940248840634775292110191022593632016782116896803176335194066517144517567124262024273757800279163230678260242621812309627299642984926424039861418476791423793962371316888395537950699925946312700367370809254645152686229992889530437164382302431268135279119064941288578834310879927274981994911584179601479419405063692895030900620269327557407218336744125905829838503538247862887232828442943411457382254555277105300572553655922979980218363142457990642786054185995056277073733309491869842150689904756892133355012162895172811137746976523308626912952783113731292859780889921368774999133922808154015547760623721372008443232770253021290404791268246008532552815664329183207582379672508355344548564436186124228695075892046172934716011838369876885532591315955360155585160661858140090802995722510593310750154227426642474117476372879471570416977501157496178793336966838382555757210535328417927648675478397735617225199759385066423840663473603997181699911920860170910524693906255745755421895385140937976540289850610742675323519069982905753457805966663663164683104570754868753537294625932820360566698119151219844099348304394910163705794031358965090593384451754682600851351142704631003098212119005544133911035727288443074982815558708020138918979714958265222001684540582403853713397388298182460707598313393847525661204574499818184552059951865798463601445567911395174647159938343054455887659595090397522619635276819573669180740500651299704012829795552404030995272857645894356560133739615102186074834223882931237215610018838273813023603507200001889051702916574433040117076381326645337364905041330338812715549134041914303027640280074596436568900450481501421025329500874990690694542092496383513062887131870883078073852568208451168703013397432112126590477479158999246783698773802410413228411579192865582853112495022462800227725215367288853609368938428026498703612015841364673287652535625501634265412129200922636302549551372017154658297059616769823710495260016768639348563035502655709701299722292264278705376147252015389532185063784161939525148056516484396350659895105634632696648591088243104966844608439965624673594921991397758634339315680406157796363509274641970372563506469583546909880313516328554467145536725192913449348810426257966518044550810100193040023664445865393207756457024608556487857011052168312689990618179279655549311747997367463575447419198819910646065631939158739338236352745625795427453025759919400008675037278222241456267590622237500628606834044157245648621560314742290921989445618617343205332418782389128241544527477398862356647725272369401463780769742612941942724309901650686012404615551484886792690447622264021688663239288022578950794943361856751872517711897121665191825034645744259573434750572095404020439173649955972726481710792930534171843545270453796587917914018919321164984963018892445266981693646920859016332612049328836399829825131826163597497346354088459187620791997792223899641561076399902504421975628436555364546272187228044137004042006523477930310188893410506969783916987316001146456317679028069395957585946054023679659178295438435900953671312621733305989624276410794869542260752797801137838152952696331558692777896279581790569871324869258642602018057275186545762693939362027576221375074679603871665026630583608353712348393204903515068967285828025283050264002465295327780053726249920893293891728705655793376747201586156940595847554024298941687792742332175597318213403976420971883003712594187387296813732977075566526671778503933136288468661176002801610526504561997404093339146441257181871278899812839769753936808429599261029555266099529816504393759308718696166523591547332618689001390239725870294922419199183712640249625612567239424303654827082052117817486038218888955880902201305744818876313798504758967522774689092996350820157253794059850546451076819916492531424204680707004889856214936168074936446787117920708130949832864657938028568379624521347763995022744273778668712120450523329356284811244753293872626324997219140759813571127832739286497827382422366942499209123778627250247906643411040586337424284765499841116838952050042574593820048555859808984665347393518926399707803271746913306671660750434348863327356393716855225384867598885780259846726691665584845562081804549142761814769211311998971344781811844077633427316583167768511254579436352427859980460411063679652222596676177794583406948120192962121465537760650833159759246642691113927271620173634566174738066693871310352024942511449756329493044905305632901544070928009261794019322822431592292228481715477093285853603728575509131330478271597776982704962705568333774725127455772826659712665385469224818172370119279906560581182171113505087734014273589742630202921760772616963932992790004552030808994997964728076569738294007721522586264510887244898278742589603103406619151185242899576269660573168735845162476144902185748169444129606766024720177654001424145918845807732003831516486614743443457161573496406759503779508870461290471876627998571786557399729321908203989181149463877543392211169923262973675538685592109396834745400275051768447449631206025533316079057271151151474750495008719335344405217541678316229212212238518804973303295115294757240096768882673865048235880836563411045320289937503395938083773067607553550513273704223794048754587491341822480858026961924925851029489509605619093799116368736216213344637821293153657395093831750673380576010630685893066917753861245024349072759887971670878619397113690745967721250316043684334860469968759055466720990186374089497128405538003452979472977461238862376678521405354117558744937955862979854302314492853273190557170156944497779398801389606083808346346605523760820496996537127333436855141647314588137661219541044864248679013114999512962915447634740679244379862760296345590350388567619502944439959371478222937798133342947728876642259234224384592416125884955603938470032168057782877003978938259098239707640749112933044544328413421198812905673093004576775296548828628773505528249262252441196859410282625036314200608696929701935207280982012821165096149040313899206171220119373719650411793586849380032364554170073659805658714695091939499499725019762211896796901927382906262467779512706188005996045304771270409742503640425672517252436626398912233318138271651880899849137489281830742320441848697555230550642536227805277799002394678012545130606010067476049830618513814494643589914359038754617070644848930093019701227813126041473660075616262276587799429680873617071893205159470538992609304752662310850184258971353936838891646015252355121048209447590436260108763384424253147528688356691297867457935954488518366085333268736373338753887983260309561989936403669731127750623982636754409760170520972077031403472576296414051463712835365012337183696293160262365267272408219935726187311985842578165774000624214470691274503590548410073894747056904855563438005730732398163195905996860304444069365173093394130368665869759616260473226236089493201424908375682777263620494558423914985653609676516740816142028609151719485191270581360130581352311441117024096444770384647951998120969543679303400666466176742108799738548732897227465308192030653062465068341747139343474063294059991158873650468882100442430556514938438230342186279560788800852319191173888181750303052550235398956488385987289987227453029035863447225976584510297274741640192719046381942494287115698276154133373935112401930139938114471138073300605404579089547150944449517599101637006807550449737447028370022912436663033760021238195942636253521298381104049404576576043763824942280257341933423919645692996110048195901535715797726707786499354906831156590068663748453355692826597542185665429790770383186303901051037628723787623859864365270152745854836197108045647515554415477201082896998344640023408875447715562914099105315455963040291813962523191133063677519972007682433679572891957610015659598702569346933106535920607516582036865064172296091941591684690740234944535787051376745852323076192269885259026304640517930959460366099586487132254037965773357466230116293199900538374093168175455382436708391246360474019806915639631704421665119748623357389575969516911671248386491294718221610332790601333346914730537597775510772880052197563846258247568431542988166199795510338752619627959908113402116380184542580713343087084674679695582087641950407611765972282344782637054004860282320771513153383682714955387972130668684555306420309065310987910821316013258674686656088048686285166332581201264847089258975370753358906429463041683843889374689757068564286541797484237455680726997080941867006748084542487620912585342244756815900226515139865140889587244101823161879422811167689859731642568563594062871050446377060116469579217296276231682408851315379528196156812246868117432596441605660168653716263362738390394931547638578061809225497332609151098986794143305380643837809528750892612158791117658894240132724380974457263875239070345956781170164761736761732416822949121936968558342319440490013873690457319874510472045730403897453907108973516043255114999411323959732136312002143136841899503795654840350502678782334510948133705137834506174936118509875936994521145095916680676222325806315526013289539780830388321679633160552526149261563520630310507320471580036609724491496720300088126563589562584057740079474652508595247988568183748490948854981599617336536069936977714458583131982114318379955332485112525618624044018578719163863367808480031009028079391992986727339729300171629684561533168009603667340134487278772943134290416283985667310790923038502488180317532506304909178394685754120988859695898348479891783656019005425777410168176520624178120799508101359213346620004842158128828538599322726131482218410471233461788971929077052742894620064991435601602937654735461897830763301502719493006544134076534621418102027408320027242603049146811736053658357759181223173628722038438427991925447932531709537959759250905924286121133204253714786568721444974681341509866788945960281722788790694803800888354887661371362720601010328616887098533680926733766272978928236996485264550451712292428093645363640284499350336177748819994109098017866531602384480076854074148424997961826658765620591582969210325579023772500255148535911723996351573758090017169005873242108086652612023737396455307879245625752282068530676480304714797512149295858871946052546530521316421822900102056874018460155698792792328514734691970725184654756958280105785997435772722221725642528233812769111283487721617140083843047996486563081335132467967635519627389290896964094648088039053300225372211846963027326199682225048165961548364592753790028895484546589843311697762590348139508033958985836784026676007678990527469543205610809332523262571248727215456239123138764762983086256420166826566837249412709915362202659878053380584045425180370987178750584484639874096451450426322190783596900096932165972127552709577637848526686988769840791178731556298294508153511607375141857148737200347243300028580057990390208862337132871782027630932909632169960113358021368182542856778474589655450473247404445865975627264866733174995177074495013478676958427364587093135479081798451459406059845594903305569575248342913821660428793832839161945528621343278387140180886997573199567786537570186054772750009264528340153310927984460650147590150142241893189470238662490892313030054412806171700018975924573032656945932971079515751487001627248226970969318311840311441190498751524309847153204066598514442065356304318918161521399282122295118625147083928567697797146866951682464460358281080810381581786891208915484802243392275345010596157235986771619312971727197977330002682326491994704368328654618602308499082021382080399655541569813479505541917650592819916740351956107351853179096731089482541359871373909128664940515719471907616855942237970980495524772535614583611092447147386664999013015665505160250657780659967229887456930626147307866344355282578127682110989961150784234771341615156681601314466140706859281373959603081997276792687679679342792971045249983698395990590736366985011066696929930310241742503203378245644672694137983448011152414574650302015979156391884123423966025298607165340723750160904942995966159531018111371796695103394529855084040130742461030807428511573888832619396537248686930624931854558065215746153468523302534143460133853163033715549020345401561228945465000428126952499343165623209731191249766842887242219489571926520254582185049686478937848696928498367012404663091913014952417090397401321368330667289804418795160809633242857773226855471890587638187213310854616721404750231903722916254009613563629971036448611692473632434513610846213582881290548187501519312767430012156936611188842266968645520940998210199421991533671697216125190734772557489292133262214153247675324904394449144857257688718272850016253551923687072392374632355629539398332622352044950549355283661165144310115536260799852984966449039579912166345793116258932822089851932571257966454571389421171910755134728004694515071202582452278110129717684497825468294620623752064392580195146185112236889322945095034250177532329866395885419898337583484875862694636826629079781157361542833406782966326783014248431388686628792785651508484002235456555712835390667199406872109564698546975762961529996209372927467478255490899351863128803726123710367556236918904908353060608862970143108607569486418910584516207264270758662105109678226494681167525322231063237091107432607220462877395804546700180430380450225186536701037026908066801301053450974724797209997262789851972616252303874462728542398142886946662036986838570766539794693746677890036382126054067264092630203763790549941900608864783339929169812964868329642856460993147784935965971396180807099116618191426896791956260084563241424666352813726183903547419323915626765868237443611087001406686452055898882319183993821864596791854337050125597046876961081436368019797545714191100950065788979710715565102355374780851694092176705510766235837317634586067009487852092234193845572139545752634950078322429666028576148856211453203977141442008695668511980955911813988880076717743570405321809630794513928632537243354701783581315064583685678221400325195058390534024297115888452493772585052877076839659198030021393154415603862518308870363136816065098471092377416734529906082547190894524975569811666365192729232288518316207565469649140488644698897777594691898992463150670076675930320703977651300150027627730298603158260638486172840558564401059688803436695715643676474892764470618803965354314457836174229953618073935650232418216720556459462118675255929487185652238389143893869511853940428844912337350762643055923078490379481391959000009182862004666321337669723295812818326750220236148537226273547159930660291207510506158362536884757551511543669865292049424301658634441366583660240454194848013340877248315069424386552999814885022449819934552931621715021178676138824017235594296130768307890218191605398907815117499010876127152227374838772631457257936096481221961951089710090864451852583097076856004465493529654175877260302617177117716960795343593236299203769222278392464200768858079959895791662802339484454391476875111742487557223472503721036417313296712953227891440643507044753618273230061094775236279777709143942017365577392438205716393725398907921724998085050494619678441824703457306770601316709856021058691026316346483396233674862689387482594786536121416494534291430006835418888365192661692577179118649145513788843270473037634038242798788509288093619288763775300313461756816198811061029777234717316719002898724434425699918393384541754516783540583484262348762033167827703325405510645468495128092630147137558483994128484239333801171663335288950133345501483685508445902554252725769994742133553432925226475640268925462107143171971582426230168639634898611258487427244824212330496302984373492434015867903346307962710076718766946272768746297710555034621756224224781428634821531233707333780157679313121972045544425657904457133282844156820495647516051096588978372540302525704928299396780176330071240688255095667789107849893703783003812797475851718894313671734390030748570966102221596761920309637755427383628266747412302461524683879803751454817697269993199184578308385389166007125797891550698874704236390929225797574464010624050046357538770554640597022608124573193218474352528722480081163347757015353812844619387570318749747543871137369586259539058990193547177046798576299950731175313100492326178165045729063919186370822045159117370122805019275512777821760838220376510117413223453303760281006912251345452831678079268531481282591222127370855860288303975576987936194096626795070139585748797817329856246664845660541633226405588337294428011127676588304882224335159979776131532424781897131869680667665029286506965601874948810248944871012330774171650732883319794774371262994669604160347271776766064666368913675879915442455795526848299360340034898173514786525532702661803993240637000361047766136383576032265333070273901899421972042367081074391901752554952932649184250229358645220500277770531704429350185218906955151005872143582085353926856780977182874197213526205221359525691827863879858731506241600269471140307383474574802249831220346185744010021245006645438609695272936708510199518515061367885136231699754414963756779972740332830667408237620375343596503081925919152746251871844119627806475688640461768466409386651698182955724668562365374140045642203324945731897594007616788122456232950002386319039260477055808370134319614909022182054561930818449197877297627221726672146134384562018075340944786208217840445293402105171596203470970862636817776779077553848777556311732307966232431972845805950115809105115742318727152319082773817096981515148559847663470399255539059035955834471133013069021323368952332325315723456152947038193417872358160961552225667919032041601317251023146271093319851465984172515011072769944037382632316329647417810737515268858434401108469067072559646928307307810524372657028526764753650271331817028369245642522394621667150125394578106349461437312493277820264834155633693021147143462231572331543343971792647549982708980553166479622621365960133259507954365687178836979888123766969205584258375267047918773960265385284226936552519547448334108901237154189324555258199383589415835755987039403674034705602204123653352420661024446282059778833317912688010805221834821112245210027546150239751006347642477704344028352315910074669618020132133530408720380781011499164703723328248401000429627249142634676310802510601320750466540494137890557869512012472603774948300280699394192051152890499115545726112705968962702795801893534650056253124920561943227537667639049950459830245742164952895283856399286368298487135018843850739941423128093175736184839876411735562173066442054054108275873826030641754757886591454438411387739617207748615128390339783124273249536174561466414741077891715893065358263176746147995451077549656062452072121048896625791470716526528626954671368919818656933666157526651702946493852533299250055141864792648718902057066915477790926836012243410159718029546103088623756711288271628942416420485886681931291957811146155067644392919889225961423785876940961544922838806603883946938825564349727074104234448126091453866005638995821609823013535862985699390069189483159595798955113390179497249657968422279021738381156318368467529767743602045744757390191596225662084095964602214502220320425398428123080507376397912456131674921079140135333454174473678793030070789377194426822864983388289124842662463612706856596696319198247235034062071633989621802085851342888047179542060022869077441547432546033900120682639167995325106722053783495942079028611218690368512937711736430377750679710811855816402942834701883081466028651746412765840926557085838248364337210479826688076072169708557364151871782517159854320569429303969360970025421278994487882328609326169306707294958523599275701381564745099017499936313699291453203135095170395540106680550341710287933450238143362388474851933894509745664281199025258014316921481540472282439042933688703583486632296680585739374200920783105758604279185751773861490039123988983756003671564241436391694033996681893929896096026412510142586569570149252268915362775394861955458392803346003842028713536892897626405623246412451124357887267758252047572974959149365055845814121934218193953728121829279231907543389718836902638597328718113665128743589335314692881341284488225941790425377245673213439654926528953523942218910026030400734941352195915628251289324365769144083475396019483366379610232350266233655563577477796201220880119617693509330512135443051204343867373816217675740952133150023306075639559243327347160989987073377128794770716239369933527349056859953309194386303888062230166282825480758567803225655863452742349655912478041908122587574508252771039421796132442597972579368284726686027922229632250269559514189955682848631125994341507132251514103953913369598302281818318869124637064171870634533066068937298814305025453432232974717747893673795995822007383732970022420694273882742241845641275131322834855020617466004397873965487900799096355696623515525703612064765563854449392235908589030338401339620152990789354711762538407005044833534727946519507147710132664146156079324093125254930469779709578756555592183922836094565837100925679048031430647316936597796034387585072085433676204034484305000374424580134066917488785499663323500731349339057251508109743152356796494903341170008322347040937183817925348536603814919221280986112143008414854126243604324158575628908278363148386347183919757257262748005414115424649423201079693991287608861706316889457076942482121414017616257600961606069231809376908949299460113893483927278709866866511917426634184836625369481604273253342815580354519498450067345947884624230670488615439434842293853084760595926403661920880899435201415659054943805176213941406127100406136781056682753583753410006683480036051923234468416803144649317674278028498793358790294381862029326294373800518443303043622248811721860115588518462444916348775579243480870014582688693571302260000837581614871249880850418169129807579523001072167304913636076852162158087869581888266697519012920900170385850668777526661716204158146606284909344040551581459371211533832266212522166697914053651565115780458048672745986757463330870258566827588319822721415910716181360961408999513934602459387647757426993615589901925284699341872378266095226302400465161207027412829229281868958665839502298126271780276631970419309799761337992315719944744495819556063145561523909916052047075842973081348207830152769935101580053560660487759767732216716678376817708149086442376519671092364198969606075525668028223400274396563263089617681188097578214544002269125407780914673257032106939598987515202967254383869911103523059223258915522370832556879257435209654590843243364782233766740559431505363502391374130555942244595751434632944783264718746425979649767289550680565130456705144392363955647518036238796689000363793824674019710372383096735195676942185474296352735997239371361749398499209157057914982261316324349270443503566717820579775140587328572857445949059334206734214567605302559319761996491677934637892369555128740395371625365599304823077242750331062025692059381493443950222838101767289375985954783868792660922512162810310464384435617283996219680376275771411411855142122397779592733648440013588835106069224080037907263029985509631996435264332668909579747060462143464459139049858560674208124211097089024922226573875661709379833235696936352363197116866833730477978383895666881824162636462547247501188577810785248283228618485776931847124505143040887988905145654483418197265099016381938361328309589467738126437704847347287117011482916795648082144952050521762502030370733950914459106765266105598807160439463004421778608780902270426368714660640716939583130411504567714092723801527598545020976574013516920509744862514636191917428132404136179585497220779289130001808056246463845799043637910556762978400479560493453634332680241586203112055741028054631946053299381463959377016693414859723108713304038871456632428422148112254387617565496329598174546377870781106186971655172143397225093897129521469359859694439144899555920341180098165685240876244367011020706562866234029183071953265548840701464365388538257443084741654096188133146212415098142799139923125234544128614065113474944246191559335791183431030062731962827800688286286522798196252469248679456190649958370682360650759519539538005027451024239266950726249053825799280651190941816674372956825504140895790745740934197203571467301479895272813822874387377311584648613290695990594960701018449873533865568919956381430186306244590521617517723431778015594663099870306301781639241056524956162125293978882800112653232309126448265297088826281027025761794519035221119706383010787112343487556826127901242294530324934940769874005237286652824510350737981301579288387507126961951633763285246014356741625961124469294232811216742628263523119238674669994464499302574270447576402511962322836842708764780500732153445904271654698202205810706151203845878195005316505356845645782039542761766348440020732166361615552908193435015952418527042843184537173260625282318487373355131672941817414577139290427980355257647765528651937688164079821550840781899170387521711819126759402495484640158481200565567373184210597349245745465758826317714141424545808255814708522462542213576364762047940607886714827785874214303910250568728281650288812003836520810676051234840562562553603774698526076572406291371573358177252942317419633317224733453458109799343172623559801044305677969072766825701315441194334345034024193791973735841208193193960245800874637475448006654678475429098537173515255059058503117552802784426818625725908969929840048545053871378819940484058288602039418892534120711531500544130852170485928673073442373773277740290789372166273302968199508591641389481744268184590823002477523527702934164184692133417166531978446243813605418716167111570310033699665151284727181153589086394561751030968015960568099658924418997376121283781232261543080098765308310567588837739403778758602708260632778277973917042152799829574270682763083212402705840458543414260534992098316183137971967221815543636538512596849930948365777819564653474909368757409468513984180519508537120232627479215196197035551023123715003697345178413595053043306464854945607547176606669703581787255458840734412497797762216289858440932023700633653105846847892754290010159778067808520380679277262456637579972236775267746440484856082657395806165969845565122288214763754544708510156892250317592589332504595228945367834582150995513615292516344000691341852909354886324483877468683068820720799482771005584396188623391896793076343112663367071478180844268287952085025565766044972039639654642886340269025691410934866230163118563654332596034776407846767440579581542980531124938796415876820577563392908797945414748770421848503895350946383862062334578662067633105824995275582204785227516566544069833543593833902580671650853447828376600737620054550514762024579327486243363155928360407834567539764513079852495442584450517248792658199940910717538366040149142996952814257417505550049589302086407331346257330367508389844115293041751456285151391124274907808000735250775103639438369075324097977184136001131710901849088850213333688376385773185074244605404874533303425939982696258942539167709727147640464909871756202329743216724517835543720357937505940359341552233075409502047663590810021413199786515308814383727834252285558011747568177269942776607641954481877685655348663765689896982050188574410678279012920818293071232229960860737368591700379972720276977337057563001646456175974997813442169093029642095490066953210601116586853695099753956628769105266748992442100891805469326546179689703094102759435487666832985221158864006542862473985750819739447330218208422472925588103104821321455712717527150913021390050288800814370067030630321015941839361650308398980719075403632972848509926437262390971096477492149604830873140228758275229114670409458663471447635213115907425316596356490399074192340710846375790041209692653128126353030762525320301015061806315683864949692584698208229250875395583758608727388905883189282293267329800700794718743589546134059097614930297887985043257442700926442375723425360462510518587040731987840185666156256246822243389499656316521236164431773648735165602905435366909067270378617299809745478260478736982590947827883019537855394017676444115437248615962742856838131815023655895406842520446987288120826595515989201745796514279995938001556256939649930196536362231690799500768672910906445004816669608200247539341102591625372749869980645763903469803328888682256956847854784665351685564074535213221200639208333244655156250221944181286088438799713862053521253933493859885203866614683336341249275584723355149319455801785894316066267084632444193165644410513598806489945410181310502916554741540012811029657491080227150578798297800065504568262139637054322012420699918365377685356391867676566185944402634741909121374916250328220913938029538559406895881491705721466926956470735027405680677082156329990997433030563984239879063397147491061466099327628519348460675021199316140034490649153441659912026442683191496899393340566488716831841187678016292200394320595845441935396460557231631109061754035628481967913463671742797133615136687687676194732782233744261002886478198564594291149076768502687955029953652632821483669052460936952399920170102775559079202208263529190870975095846701524276170866737034615547243791656627394322914702144776575875624214869053532368837884489416763718968656499398181940850142117967572416394920088149711302382336034080970112615684550146560999281773033781568231602333848075658171702485647680618605207690609776256174650879132883452328063606499790034729117048027228072395917332466233135297472105251754751146056214736941022650017343533231636429395764832946080430916641711339360409819990098612056077350544734660811699862505370787714742803414680238326708655079628811839688355143350345174427070051401034823600512992222756134914158957676819825921422661865581468395126917858030767370130013280915969961985500948407884810111735923532205031030375056903930499619007707232821855572464330295586449667459652757461038489398397931406888655785534461399072116588218481255245359794417688096676240608036267302261608663934796756406596418699555636539243866534544440812471621616282603929578594277828590517399509783414842976057115409298592399329129186999928721272865918437942100069492662142470838798478641187842937654831471996323360594288957084004207665840276158867323472139418853887658682584418948149173125851476802978180901131598941204598368435296731396047342368913597460858097779428462063360758452190049457306462788944535468657296560769778223622791948627252153494050580711116735565420201974254145990283305121192874962071261717828885058872594967504322919607985913366280486160214591155118165457341362980159059021701524293687691543109119908841535239798233186209977338298139685831187798242585726471596683310803027750834618468993974979341304696217880795940718779785716528275905789171586048690419912886469232778123696854753074071231467238506977657565856853286062047059210810613066328978708918937260399850133305956048174936625275315061406337752034125505182232212343781308392341096616418810303091291082670808178228257983158260730815209507039301685350402081864586656190427299893113140149298863911002454576648471244915228471945467122487961362060279466398416424083608024927148795751969374819730286085280020978248463206508834142323124619393091652582609805262352471874140806371702000924754694621386270608939979674177132781077129424304536393677889821894408958082985623961609350227303322513784370291026405269937078140455596291224341348244328688677610844242466098921910028987488084643479271327479631123872056892381951671908054353933434963665882337225559309708983692881668444524464626045219151698368615636281229617865321586482366619946548200042114632749538210488592269892871614125539776862259582031526110216100935491394159962588096901042596982998697567678920463903806513511372749981780157099065174178216428601061578687640735212126365128914343649622444591730741624627298845199963550160415974478355531697181201982198902331556124694830429471528598049292965474146343386953854691422471130850864655647908439784351149157787485508269120669957430830930639386693504770134340452446866182072309673822381355134400840217224196354431218355132201464884211270263182711779152268395806193417328310425483004675636123847801102608966583493281837342779066140123172987864246604232207338056777161201412044718926302880297146088396668364084470168515987973520923472042702232289865385342761525158256721444522870473307779836436694012631935885071035967952718595483490450163427373735535857527885044297858024197995763490026670657021837842397436184912049896638958755728502584880556943492770576551495780971041149973146574459102854673400520835628254208239143094067421331141297327180063944224593355790680850899491207969978142764290526979381238308939414151109361206126770359198502999909224010039171959386664751102072130494279267012770008130948916478000265008252475286692819932363156842009864784082988376413095826505399031641264759025518191103068893687747366958060213638146606834247831455096188995800239579831751719975978878849646704408474348775497788833673063241268317325121737481332574257297358289120753618195393938352944015241232342662586443241996668574629938708645465976262071854983183628900648212577965049991769686498069105634703902831972986637991270312624359236511854872586242528494996778285424438416378797313524545223561872471659989876376841645002294617049698138718510687392860742921880682421653524646159547976741191933870394983275370447251503720070939377538354041899069140963217856966610093414987132570349752868442243667042753954013198715126720568963205119350897487857744539880058358056528197079215659136243650561546447791631404733013162122327576501200874729105056481006764589562471781142182274493467187184798310294956245427989369120441618876293115744475627031253236811470363175730024848344781944161776453678873648267662259775867273436789461268968029865082847219511057566173714634827327632660094205956652165450303242763716900328401777375445004924538078888741098322106634230383221322767231489450540913781420851656040727218984187441659937688986746423793224605453765093406110870295738545020300424438818850287287491086049150119366621376325758103863879876300395730136991875593660435622078661519865812503354632887653285575728690269567446015470357151835095255411284699385720754303354602830369352566365752138077255958340140757742336458761162063651741649125652853967041810757926393129486159062867608188400565795881319703056687187575105132852638442035585365523389362822767111799951774841098152079105398450790871706746798809538605518314478202991256277411846477990833425430216973242307552342688355348911974944628304114351821913613062094815641297481076120164360043637565639913389607571717609850262341588935411975974076511519058205613044483466398167564049417209665136187839714358640336618450517491031131358341390901085440055426941008830259678285088203354800994687018186315309310265222227310233315041440746279323915873163126834369711961727700559175046560353978524127173859791446497676428031468698335781446482217906815061071421801064937528548446145524486215640802961300759368189335225683615434752718233373574830764011587334895424296026941021633533972196901844101076521625019765066945844407956683563955355346646571494277829918779099910602102653680494760723296678010813443729407696104193799764409396944952268281781097437715762552693850375326216093318343237771161552594746421144819080021270711897016996862068379736777579111438827699471503640659374338543726657202931399424407753833092883067767086076391788507828356405734095992510317711899524995838437253963019564944308491728331240731435427534574879831911774447357078460972039269221691474112778496696051549297968926167065799670520835358645436080781523988572975045621174365055980534696189339922452551450030959507667762241724370701776229817793418121842234717551633402454626167726729671989886284948448124307857502419834311319615036785994782236444821208130380171476186254321123020334140293410245747654211581213481374938075771690412838462999996961087626661570733899133975885200995745164556775522456359581268728357850097658469623430444227304836194327221559827445151855893362793749579967362079490055449419653802238813866246750198272749939417277060509512854495584730554552780667095388545693227009392127228979583402867608743660660538204484736015500836266316952763608895944988715565924730176979822903471766739021421171945737761269716422715422487845219479403553368455625886593283777043820852172537847864363316038042630876541282966144760909004124592606905618892087531950044735408035208781836824405526445804384353060926191424805688973295453114637527686830389620589204159864135413193083329099795660745472306718563577519307169291819173107319289427481889953168570523595634852617636815448852448542204822429739835940517971218478044460488257723229693163390703795477874171182794421074814518927180691994528908826659686055730733796828883205916850748558939844129146733198186033355572971195192302742729510926130392339578271035390700481502718312951805051023948447889967307835014028106298830831021889739855153994702185260783794590474099377892362712417599926090023278820350588106822187791587017056321169710813598011372135154064690740767414364968923164491776860319353880724752873142614260762960281680711648325219762207318544663756683596645037162920083419750174640407032801767216478066485328746085023425874882100732900141911943136131053499620559160272278293861963436945292048746848249055256789499944275378855423043860179202650185801186747748032154548349781712230489527149257157810337683038014375857707091085453616039036340202546353896938354313786572682702186954849402858378302477277979472443534858776589169078109392495473004129908980421886573751267376692016280103396654401672262735184247582017594193493926796725538804575984477298653671538871944322883042915852483100055182735127089162361526821984992854500648342063599798203268912554603204917490353555535388201957825781387118381954002524262447264079968064580228107943547461256095933133270025096019012243242166044796180423099206657430278308986833861398255800820719604172508023559558047488789529815577500399621660187870292101803874524056973131758258601211863783128140155498611813868308700080977772837495870433386249951612105685089635344275757328781694085583444974984190219585142945389836740880622970266822936596608115087098108587726489291775844443242690596966348861416586723546251921835953791598676611250307437538599873748502477260618984812260292955156182220324394918944732252474675849010371652726934906232757915614486017214318379453990900936615777584652167994857591789053451807606617297427810747186885034723251273547435070931752200454110177240600841150733395948406510548861750046236328134881019198111838086616011560936903110800916064463403427908104156165249216359582757558690610084309230855520644849350112975689218398096515347031879365349390166008801456524600904299079462901198622523310087687167289167609233016847733510408760299329710056916654808081458803310224803595759774163706534648341066538824052764730204567382135026244737600007618648078087108073336725781560797381391884161214759159839157416788737804583497342315286191292127285760035773761912170831624304558607224655740557625111915181097773839926971827557306284800957689677158484044880982537906412375571468160135121811253485311387884604891247101795375487983446807837725444086838585892368933142034302074168637349150652707284558538204979145648844999102975581404439011224358966024313019477054324101235197807677798806483701622330969730252081622071601155222975494889271247261873331271157802672999730927478048691902869369981555440141807051658626285982518306707013582059931206020293980614688758022478320087575332197436584729190137729914756472067405422756188138869730167840517186148421566692869980932058696814063295669895760837928038158686340375139211455676337293675616305555671395906176188528475437284992893444070125504002716836815656443883930191484129936634072143695184836187485034025244032174928694524371986165983531237373074813809991633090676370053373312550501236524146953850432293332610016319010022229641458684724027422134851742139412741719928565051469574456032955954098284821069847002956117603727586037855585787751542461885491183132149858896499886317055739306744311238846350439156841176444487799188260299008762748241052181564596873490875284429691340670933014082971924411147079571837413615673917779006971260220127855802246072543791414137742050482846594380368838791316905117354449350658668570478636866193243960601432351761321921359342525083779678730945541828938065483004738097232773772921282919358900830876181348457637082414435290589192713229202519396524428119130351023931542908609750643914442803582500669149167144404649947957394284840760425660810859952852219070020968369648299701777832433975522146762312341515821225997414111957606320422832703051646242270800195014028250310873472135285731926143661072006513770522256126626010818047697795513605938787917023057642100449301061480043958558441920425917037849841148891718956363773029832503608672740639442967092504856423154127996354723155518469145515428332316984185182507958886915921048536979494761835263415251073975131368136321579998841282729273760624251281027605731748378063894446722828004541262276830270246866904171570895290509772762020327531922525052636315552680145142819810549874759901283232201162347593465578515779767737795500733692069633084161348239554011679112677085777099915353181705212277785467411033540357143260706850744138560368093301834758124322775364743414232889091470365981911500441015838344776323947237255391876322184755039412351456381953400738271453574162855693185451025204852255086656682821300795368350839405133283783437276501434734274698939091913022109763480936333812507997660210617561017445969344264654995708624345629770034792272613037941461388347846855133431788560573956132300483851523165909236037967982862327118762152725871386105717872001716640368456392293805423103527504629574704297636310600148111162777641259422549839193173851938720769941094173622946697218996824969649780378761208714834766827352239729261034126763640994385474613769745415622175102699575458812068373426521611851024336576722071204151346373918779903399869577569540661453386246365131437566175153932162216971663090712033319268219249701649784470882901235774137775517910438561383150331865812839279896854084506086648978038313809498584412433830407185238324629774133291083342809069332673385498443373657275583709757737366695667702170526941595108045892080106275345314565659770829168407370232077562431802253515709327501264237549655897787209527335892605718777144811111162676050155266148376955654715468775165790530476863397373487874968946716191479066788492925579634922166584786242626444565157591540509865265065039555145628833471836509414803730970795139856170873735182916448493537016944134658311856645243082778960912643912416534551918992887360419002620323062441143576603455089084400012786372688822389983737269043077387635283026281015501071036576354463816342646523007211586003484099312009016148560966307837299849486372596252282859213750464577014228049466332819290748199157406710909116117941791862141614495896082433887351458893932959904250214160773461823086011108553137075159013234855384871260898628190989155623803075516303885266199169046591447027437617906871673245187995430104966680290672709336963558988172719957908346061694047622790903342780992045204566030925962515077980522351402591563560303777612193679748478349750021527521822584596921580627001801113158965029478382596130972912315536563359743134157426760827249991036611415813420545582133823336018284388084812823168872216379728929576358758601633641444172993888165400530416979914504757869761538993594568174210120110031177288599391149306185040638335353419197328008554504035301156276829569867848059087289955712314091788749729265237278761900734904250840136614374774302505196781825944723766263109612161539792340494217346066655462205786583915709613204053175914640698361698138196259855359261850537845641130241000948298954836680278241180596083520031852499696721848106173446740086033185357979957292994431562392890151893415681863550532816612199233600864930738616185300079272105555908841724033655711786898666559770966092343451346410685363102081649823916466184585616936012474217367466665396441943193486109005091382770831411900901259524448958218695034264292015230426016882123708689994470804789510612984093613703160145741578048083843911979745178107365599236050520564515958732296653722186606382282156710691940317815423989524249885125669392790771655543384767254047050505495947033155431784132024940244761694360991171483052402027024292563623797689887490203862834852553668665129190929519371080784106035540959049044248976914690311567812418767022879036684466226982789675017481314670902449724414022976711362448845198592306424883014034666472471854668824221337299856518322958461229290910709906908595261579837733901787404329938864993299249833766802782395319743160672044108762914977480574791658617830624387664631226329760972801465711953534449815821992423471799803187401569430346955366803306076501190611450633516923429997994278743563745559493272840884975838537688315752659015765868830093273780732848550574654889054051756570777082439740118627425322221054477048243501724404225204856365159833691950473946039942520735805763694854236597561920643294916587807884410149638996865561007227922215383183226670204692165093748761716921738921530117765511167401743164010288473525448031770515448935401696463542020976898446547087504357530427487655363599613363722378629833410150232704429660428543648332668415621443927194036543362789110650987110966118123606441732545867460398928823096218210362891297972132913101933650710884761523042975305773720804022704722572280390581345993258245315836713945351058804120418523678587391700397267338531177130767929268223597464772831546104287072521077508919069756142950478557671963104440786303793033127550239333653649703984984536137736879571610052018575367261337970195801237211992746817235276326379617136385053046731642407279601625905869017960968845714267638662389014548314801210780314286427147543684485970330808911940657359028959597441519125143324724823959305964082239455131122111214878153302507058236722715244367527578311871647873437134746020285124972828175016592482087476219481250042730274500024437697044531822646613451916760244197354662325574591050123836322425283597343143771952077364025746977880965233537464116889327499280446841900942963724413793239783076579328233044181355952448455240940608505860918329918893852626996632681651088572850708561429076757285599126251252288596291489947323434340985252452724982896151029687856138670550344790402825092000488648351780749423646779991552197461317706316337544006675995986031632340445272427569422562971750590384862260532762073718062874180598946224526410472579650552241584327550617113030099096582101685984410648259594838195114240940652854903016965998444647224144630050119254627645255349341977297451303507202705422199883517577448212840985708083970622171769644438115028442378179652287722703602803475610749006821392449489053086234108411936077486459863676396863014221541890957394731837539688396175186302680493347496583982737939069922311370331503647853429024648178933988765472928481469767465899861898086960394576031727470385587035523986568813672195315217856843342390923200844083917031274612615084142180836537768199790516976714227546596657717514277556329681053887033542757136274316160695581514950283402334404066644016318976786434167912306459396421731497349650043070499571591559170083610986630702610908229531918811070273068895357694413239269665310573780895838051651305510152761268523009785049358228122857767038490917173675931773966709700553017352313411670742724160256133013069089777913979639559294786869964494960954372774278304786318378859832548753675498033516951036529798048692235193766433560931730618985371137925727968797315224563166150729165526338345144062701230808535680454579818093997315014123094190202495767686270235777200202092940594278124674197201743135080937314486951869665732753716366764140744334785187153350029696875380987339324660035924832536685274909418676421433393384254125405109676987662546724111898513393367435555013542672004234598201865441687032900059512231522243114742150414204542903653450551004118167072812939152056512501361303200047588735054945382602311163147363158880419488272147040188196654420966600351103291030478695054823652294490568809672682172327086010217239552716529686815852576647691964495684300401267650042622226745374633257272015114855833205386258976937367787283316572236752856855926954890670915197209775833659877897001435792491222697281759103420676038570644164120566626742410857081288721190867460662337238382965749141129967783449928345236149949927332295826380728638890138818303669533152649399511699256930607913061302753197389855708142364230361486344593371457942507959240762795920945662190199134951734992899536202809903361371907735440674585626719537153544363737523127217392313052784830530834198849297036313983146279219138591002688605494748930191963353511150263473357929859669811926138507448710555590351466656382365528974716937895664805174804735739935099449724435437910259182935142858760308974170084601760024938806771583068182164863680575667139580362605570973399324549043692132139251402242619995818261577515225151525968989300273835785749930764750585422644558875863080200919880569454354623005290284201889409408487880899420562200980410529362438465924626240127946675350579184977570168628956492667423931215815308085204698125798834476769991801201707869603052880034982023463907157664825440289613698834353068407835046075300161403330378886783731041361505265878898745612843700674268420343286414493315085558381949165952442159905683768291451445016304219560449969427470568912778793993728025733095768516655232564912893827744093750851506207853542064284481937645462523663753346954040154045909072957289069720864317746078218902707106035976768626649350904830460052958723312758323398818152190774815320979568143614641638830829781913405642833321281774092815949965955267572005241752775339598887467739265104435894328565635644698071413398643218236451583072878930577652728762169247969601519428889822899972772005789011905549438905103072242087514238899216861176142100860837608554509374276774747917764007826150286824753651149878532107665133047568508286207711999077156345147846038490561676637865987754965201614800525413555134277401838398059723512770119877017046273795791367128253178127759629721945894786891273234232959463690931448475248379823816210272648477305389773665628038784224780167983220919928675119732452210999932753784868550991170257718020486794481978635111292228049547260453552727505171465178813732580918476388271635167830142091412337757294760808760341964095382796332727269568578451695945158316821533924594782734809371657261562206344305321013578231798452613552218710914332784486548666576127819683359681190350963964696112520096858379604033731984399439174553381072193470418243377598915167453147108586992814430995384316855177146864560811139840163424952273399644666834088004329365810719866603413677517452760649459978132943697288408623161994272485874057587639196638666313204624538215213034114379002726755205549128664811968713731739338224690280664760316058367352674829819827361724785015600829774376579746515105168410623295274411127626097496270133805393832533626526351688671490024653222761282996126246831440272262911644716092367797743008674540482205981279827861187332450527710715773798986201742757519159863791681274409726932333563579911997734787809244310466770927845071007926530094576101648468194459390403663028820633844115215407446594213590540603120652414678398991074498220549324674377899666466511181800843945383536508672330559965019446720868943402881099072174340923799358129374308163507613063704191009588153993850532307512609363079341062460690397711715318955383734379301972432295226578877864250304993905632205306312336983548063930555969826401847940209302280963924857108321340195510446842107792824924289102513439707297187745552809896726983149252454532834537218125284646585884195845308484794612803542743561722956208626847005810226200659031383561272166575805717311403821348665958090410550730023505996676991096701825339966427616624559886021567784863079694880408165824380556138917098519829789448984891468262047146229069140259870372208025750822632773643216436375202835577115930364740815988114228625305981864247812034207984247999746742757907614370377877983507253799161474050650463494652021588633241320851269342736327320046991953201503169140345313867452305506002034088189942911290350169147844921284105720865998016481076550278967182474292479379267494329277256049142156197677805456495946445474185947016334071653976855702966268074228028948821395808784847988461942782272878047966355530089935983839231587508300640086473303467255665404304313801442590653358695434206247417098072118989341785682782934291991049837360637262299504730710831819040665630037926907474223771345807079059357358854290381622687569340076477353090987152049460077788846930445615783378811043451180084164981275620601796231452853318691455840509714149534707796128377299039033418301787800518232426463295587154382561521870488998479413140608244473296987870335754746889390815036534041733788896918897738049621965150434288085241976854541643942137262372597464888981429684110703553615398633727439604161079206558344822505116123574378420203921966030782314478484198851268002964778541800250268021895994630978021290358008240333393843386684609356640126309548609692253399799878327337873469958372989864645097721885945040959661595650388848055161681656908165617360531962269127731899012164937050260089860788028718684306285840018959455344128929814600091809713156555366440829490694326355750186264545847235645299295016330962053578416896230257912786979896410962826638622003971828446716641100521148027977131672584075739331944101442198182678533030807005895906915112331386629788631635267613869405462624506412585374536800949738101267475161100488169215605837343232347463946930392407161503583275039174752937348207540482907029674334602393202324699478871034257142488784563522449886677450477754967225831883155700117960337362579346067872382772283505817519265107388245813655820156264392409490743682135372917101975958769474852165574799288610076614518010971232289961639269110074960422329044777334186494933132132292538928859692170311395368006426302781633266788597625232365793425034037957558057721975673299594348190435101466091523965058388682734286941572575999015341860237835139223255018296058232483872540417626038439459894633931087962613794698049059656737600666740911971778286391050513660741585649403912135525416791073421880451382711124110346757430948575511484587765372803828751640089489414635718446891720048149748840809407065935123970087391039291944131718451048170028802372421707579838272670040475572604326446524423208162287279177118624794701776283226518783138657153181286125165256175300295560545078063911113918227040734780192899664998636103451050941789601750011557653110550086867373217121162362188472646729680203640288411715939060834999506904829095309278131184719929703429840906260655510082262758428925527861036357632747742098978162202631406937595413305315165954285559252651732181331531174786040982535442161044980655777741323482891187714436627983555261366680129651000588959960847970950238588359384621509920432181427409645421638315252600515014516917999363230056628708023121738625801669512768384972657502453502112785039769586081813735796483286179846455095374514014728264767428313967875358495164212775941034855134807694319059416186946866601074807649229367623680277124463400198229834319114405757592986331325742367385811293486539858303197854417281282043973068009678001849565927360611803557753544999254604965516304641447175215127399152460449908630886216035895919032691281603625804729966147371200821054373797348212603077333521193773120612138631730642802153902292316684181834974901545931486113638926121718488072052860003626457518710603022971342187263519257966433941299155569280584114729357297406530653330815216156873003499084532731645537626044518318496611370658198986355971243694653305207217922406166004758963545065593480844800288504505841573941059949384222146280390069000265252456897008598962033925872906978803999434717915225223503134527285613682234703346552486938560216119281862554347012824791921951459977668682061175690649328165795923340885665335175339446208994996613712557234872516629624979367075971349262126646358350730448043387938296907173500538289763531562188086785137488614285112944115646731485810758886951186660464768989657959923131159776119465093662955799728598161588894842524995862178504752806174652522939278868938616440282311635980226167301125211427699836203475138616862313098396097973605921037537153851208540455857944224156592265000616920615378272214486894672415780654357468926226104654432965386620619209104528970456669017174053404794112344145085531833954899007084531932802229384027693725928387820553191605585330402552410851214376536592041398270812501629062348841246513792287042359527340865954083206835647071895357637826954549578511684957255597461772956232109780871234115307338643567849965251863246225021147114528356585354313567311454074790191979373027668090914715164329862692075156549348243730719143758121345760607161862377177515486630080141711258772218658085454189148511685669603434228856856320398513216024481199330886615615788943123301787110777148369169870574830844423132074564708000600890692724684619052483772284250117211959344270655037928080859424660517717656417186587049884088432757754308500759545145489646140411499484556767868683137498761832444333542524659640555618275007568421561394567997717210622392010586398415297817423215526501923501180074713700003022697559899095438587382138457133377335220989050542041328045762211179334590775468273823855875325456853792414549073057816185278797521344080859316349021118356603313127419932082138117741280803407382019062403240108566701763848700302306407104390579225945631206059900246132320248880596604073123787219601111285066204480316335235523345894384998332352315134892578725530981021934241308813884035375535860066020790879885771790690266069439728464700248922668808844534583341674539698038905790741510217289854388775181496731910704683591392093867021084907268188119108956144155289278808776399195577635175338444130553329100925719921378348894172713777526711619250101949395058124223269381831405135595051234517494250133874035405509349847782940403345463016333908812343004756251545650294740131816138068342574178491753091841355663574053241890007103678639593208611995275276168435487536632674438488082246699672775662381129644459021843870816782895278688228260754074280975039172642457289563299008453521295866748756195305003520473139268559857498117499579685055705779443268318424597790426124785968406591400378669791077310882370021981469225590554367963973761622845171886987862768634786543919102543524126209512558207273566128010638654570941428870239743380242593468824727319822992653839373351321276466189810855780887622566284871168161736193629337761593700361673851923622316797607878315282248650845321068912352098906852415086733182593193981610664643696055593618825486764571551401682416322716454297313946241199912510381092272158836429484054364548841226452874896124131900297529636489428740270460461621356172628915303992461218110989183601088524742659281087573536414204838741000372404432029986460420564785108576165804571629207771037019245175169994017954594981101925077658617120893360044563921130681737641398087828898762495231298392081258671685836145949472537068526824584183704213060637323889941612359616536135136556651391591606755351539397657422430968661122522891509523519677290437383385657816032705494539645960074413518051353844234982694363442972307092495068930686438810663596693949792561185357374623179696528406997873087207068346378838981825827615245275047724625269756153459054660288918064237379187818962075006527636988755989739567571477590621441147712274981671376137141120408823916816431436529080769284641785539599587891405755407581091977877855542513578203297263026767869332898678322108891825789699150829391854722478230373570819662845554074955579164201424747894116584222825404803050809618880059690663724837092410854427454915707079829808700835829473038409117542896561240779203215343981004898807066972904379831198477750457601601373204936774584565581188070019917369640888801320016713227659163084326304276019814866409588741881778070456219611507681899061165695532985973479019845770460995328869087027884225028885828030870420272223017275544341621306994727029411617066530617893270177359489545621277445552033432518450020558985732966527854335815063312936652384502466864259275819364176551882318280313552846315153787762025708765536384952450120505717393661964750300786995056649019402752741357397954734478647409363943761804845832253120836554404979996865146891199081451007177713893745168486401922030969883005767910868879711664024761888956079790818193144566335098288163275334597563978517720316486482584338525979385306723574995727436791749406191715692261985644468585934647357349907897631333505635501889763045339683795938893138197896799241366703804660488783361205301789451138795035867087887628886714466568270665928838933971385176074089129309571011276472893410528845410944025359830754356960714440459377950460594518863818498055540184082847959161831878640955966182680909679017761212812347752273244985569950204606517421794259391404443005691484380200017769687294840507825741651712255517343217994767449404599285821368947766833665309450320469557143229910481643844391981916449439162659820254865325221992963427718046453575491649030557715824701074928488443887577072204401247632394438943890758949549936728281649386835028647172872899995059994131781943339612116724767163540527862412869236002936549591831580705408602819065869721965220225293250515980054961264161953084057900166631910379888968148020309203879208095590556104572458646093907620124591542769961633425193966692871664645697719566355884110998737445892729417187014103132200147702196125233295473165633726658954648155247538160867386714259958617443149363093589315864933765418709291735934764526895517137395005120825862768361747535678507072427038519187016057323436345854217361007982210822998107550596810636508457503586986487590743980813166919403502374374938244367628089024821137600565454302654172501924074297000760683980740008315373468409235649567054426870134546493480230169730392402365880799000086932754358527034900241861633614551416712729606697536377702557599752930594277042249562758702410228141584632798020241081854738188223048244778514089935226546875703149006142298103616496411509546674250596491857597616495404609507073537416202534410112066650270259948194053957293252354025598659517759839461887516575082114141796702920040231652453470324476629757312183885955948131843711180351208466549888383072452898244793195797625925210185746255093791186355173497434797695427111723521235574537835315516429985771994495205029196105165180693842403432127364568563269347629412896693285576743084175523625266009339227577089529720687278069404933074292005007335153094119821015069425853731125253333913761013711666364210764833637572601299003595175563576570912584406976073627042954761160962168808315549222512707002334995736238508606576580482667092303447994105146561223936793144783052940590942451109027128443120403314165238758961079333646758327402079201780467227309926809558759041774601508546914307678775487657808398883360530659666911788665278754877226471442799563420229532774656323397444511556645861820678428371462132652215461263119304578159799348663337408771245007032557035882556890608593844649740130743259834838362212130832330295584891855178574131475868656004185287267057457509912988768909935650358697013009421451797031399259176651635794628414319340069919011112347098452661403379008073849936628713002418476010112012566151146329042460774295888886731393076241110059563327849510543534478696342369453123955075205347105671668202527485376753388544828727078643880514523356876818404350963429652449925538321888658819713917141179402939422427400744314485764334650797111103936069616263266666260423636575696812896928362725269431504624377494308498081640723290791134176774506584314924798440245470302568333593327401193808911832753815853647815445791214310384347831222180691111435425519796999298359139832035542621221804415977669764982997991939961753941819475756985768089914915194764087853853097565070858292830549304514760936733133281992877298961856090131191749742203835427150338772228878904316701519299945895749455146550162242359667196302755294299126102324304445923106415112934334192014375981797456420512064046676568746336453282867395759722606948865685888939349954217389399858163012442949607333346319427160470924964857281628251772422717668857838819373555488496313516519991971371291815508980682370614544019005776750571673011943508979616751969610139283431318940558350633714023037578691758722433860650535121587918209586527685578002407488761860376436964861262208633597838224450978594140775527340883222586394243900640842597332273082490071170291486349947361477392675996005544012909564057371777293394167286662241373666531081541811664167419764406267915692857096539937116917593608259095862981833521003087666945208506091011071800117500504409663830886033285074297729032480163561353963903429094266540671200661756711436702338907201151884171805000823364988375369694755980306066606619868542786602109470993434099070224751205626499127575740918996866016336297533263174264840107118604305900759164979294226874603268177834698826836905983096058040037003105624690913482789734695425759033655803117093885590749975441352472336136016995282703172016291881192855828261036360577367055359114178230572403062206539156008411782022933320838700293258021750701391277207318873727988072860659673003359152116906829082327537879325252712191287447700895106228161374710695996637609651424679043771359474364717102134918315690205787689654375196216805996143239333673161322203362776475894095991282292485441613491911341563310574752766840779040648417434337251020114357888845315206906130027985538571803133664261505971224503057974281464713466142358429577510438239398994014249331038996602853091136174027289557752712246579404748375953137822543702636147625738495979691782606154293349010078708489950174640415675872689444152876118577084025607267473470916066385607860985630054117274576168642986960616988143069855834809923185773517461869147033191965387964359005453193168551922971695307466988014014517811356966242676783983556225518975676521403909192742331120847891375587958465834108924813548086530701633366872780852215945853425862945223698986535303626510849782007665654110366252607660661070875990033014496471592624701987165875443853008207307403385743623094608698005271690466434442774746953957206397398085675521255724786585762730775553078897939516804660294054089534148261497672873273723097532207450484981873411655691087605273400828418965888792516400049388692698074695437902130429083321948174708353012030179867700801243862618542998910294162897466835598772138604212592997099156700102445428181879426160950061786651323219053099130453389811242092057644907953568959660859587424509684007161771443085754402780897644607013706889760597541720734422890364831254998765985943883165699399133271875243775774529392381710618166311833231673618211450413698625646030496614837288459162210087699555334805581648607648917481527905607528242743181165752886644926347881536071528160292898119266335050466256299576400326567208885302860443713409848988589532590352001770275096248677201375730568473954731493240500602683188153459468617108802891599856125716956454220478193857091785514640644649151778090960442166490919843522955360857661425357341040737245452877082219667440933114221074191682444428172114725547076982931046325244466331342499889932173466693787583278568678023782508413898621105318356369440295076660782779631217624567882006309253811295324554930228324111488889281106149811378420762851688502248528144271709686810171434468529664109951904315652901613874819208923395626420412584682709748738168479311814761386882450918007840149946555286306327677940006878156885554936433576999608852222688748601171365953119563297637098487339943404406830082287444291837856812934239903690349163350063378119784865914443195411837582473504725834731225873941627085706784361622042437055244634790069204772933776397251902068548052071536188217202499203587825458349018129536222474190258299434084689165736964535653681841081090264352844120087017910833756435357405909408012936903765674381214289075875077673927292814487450367424539929227916535102584465823058429659343122704660444918036397609100349541319378511179782151614834125070007936903723127017171793387724393224953811937834611830739227950948415843332006971902282250111596503083366958688426627165761842181081911421229791336345007962714662267308090238612582558115050782983670763675779808979221375780679928106325259030071792771539659204895126070295308801424597116246488451895548433600851118133149499736339748041765098167445359954268016528897160875806895707737926586648415665701505865100672969726234317330515319252225780667295277993956929738955589081517883626855940858366257533955574625382553526087747599600016583783547848023632929722469500438784828539431974931920625460849833994074279503952157845278079191266804480796522761644603059404563213843091892702279161012521493712005604195703969426056445854647693490619185734321695764716719005820182305312847397006628104708950874294434282756256639499732302928382116611137304760303932802879447382464971541785103627002550552819975894660292749094755586244796941822648810983773116314826612740613395963569348472549015898836765146998264673985956592131585893894088756081567576492092529534140126399600746773828943165547415228602885961989887130243827561779240853927465653186094707198665279535449096890511814759960177051139774182827964659796045435217609518465820250975870717047910192960156378189259323687042069282731412940024733354631026717671133806792031512000470405789972491429403570180182080630601726232644695304054228286859626150412713013302619560477849511265437301462645036078838328892950944633238054033587001818174850561404131699356971294064641759026946047577650565818152108258688567046167451939045547108360221303217474196949010289191223290374172718109098262066851314407637269315015586402826298862114391281097082556408282649517388571394605539723127702088608245716845114983684682478967805233656820836247425571846740944705856669114661751145626077258181420613460828125394970715770716074033209717811105422431579459509156225116836872603380320384015076715517098618548737188175615819341781743711492901244265726073426766168778880083320993118530774454015035589107673686952193375841100265562324953070336130490402438083865628866303044570956677760959088187566892578158655828216917655283362052473454899022752355171639755441729442237856793989408794127187940435823117743021556665213332448683547820460362755974568805356144263052025173832524011340194447372604007524938396856042905191538471919880374783888278788152683443013865469448972765220200772122708591206194665394835735691498151671169946312088601556440061038803840320583922156115417557864803611673051709820596465871001946046372728075809594966612222913894129792298919613494381780055738595182723896814700148881298545806624244212470048563717453521184712000873668831737719011818488859366062010477420778525768268240005074145062148907246912167609695194069180847180876134036339474185502264536399584601661741939077192754863290918383132411055293457432048967562922692391430015842197277981198265774744218391450597104704044443882706730624664130874093718568223038059730777513615484074990164013182468685265746633065623999634324729862419153175071830431975858052973438565536381170348461778588939422838207131072193090370550550920708809972509739726306440609081103987335867755959311896235149767695643688109326172736463576687426353184688447234440497428667560432553017999921793127405634645889852418423707780594938451831862336155122155051882530965306825412845666423403097948603156170702131021402167831426261600962709185720713353045693173552311361890201757451117871328821489008322494695615331256161329813500468831677565294553301256659734727176247244174107908344687312990181615923756370336505604319995143401521880235815218276085992574531986600737957432429140566077156634901119736757103121796045917585331176570803290366333857163325766969550041011788935219179435441648110514407822332509512811281408840344754102195505782183545066491365712836645332163547003899402905970624023999941918548175431298508661409133987574627726183430421290717505954782252378391993358808232416792515019941443016517539943510447636733192020020234022321896218159172530403148117807054086006179836146596251411457920725543614688238660754296613425144929613454076277763046867320896096586624901312386660422456234859533912945630314231482770725788707321753919876899516446625897591410542496059218683756817065302965073085847403021225202713961292215874358769688194805244798483997801302405778109782551748781110414341314999429543631156539927616331812432335846906446330392665919601737536846267315681092289594637528865648650461804126814527725456208881794752315378166880166316001907434567374975769191676475261297497071608151935765809659242325002344600319843650936456978911720417741261740274266738267469439431341219966344428592836368408323305952186395254275471274215175857560233851341731786270109501920133106920896174060505763522883395772173037439055394914117370311445738957018138960014004471385436533590973296809573612205693828831006760735248272553241777972984015306983453804282535774258884949000559769662575086029576753629757436707172868378386420920220664751314333038127407586928935206021911520157035259953897145619290065039543602063299457841558491637779844687085594521521110166592060672300495784547534393896802869736166138412485640336242495648499862067099272461152649652667553397642117570758712673732581195021865466762903569071069378954715986590807324399323054596292483405715970113876214533364811518247210809933844349999425202915085303640017695028379452996817236429303626827641026058232748859713772128109429369078144277326881010662706814406443003327237022875813946945922062163181514312118392903724059109034964105516915101838729099818447103516251532263845638648725962209626826250999522698846500361786210370394147425162644367975631308919001467633466461062952917636545242877597836447698471461743835334135204007079540064752515601111943573016220834514434523089955197638046731962384746355170542966915693708468942104766517407123289194574372400425925751153284019296603514546089831416413782925269034082123589224178667775913581717651766521133183552081653057071661726768714601695295611960916988139886248307236931262888206731992599777839720143155540030262218736685374451910598958207597866581886685889787385644309518419101039477060017876774144606694552329546065923774258606848234274527714130454205517498951245211899000978481572791698385121633838312067212271259910804956803392954056784397483610046895748192117863010125264077262962271413420027296195307450077410091283267060909647589618856625055484455164094023717709660150292364102424479184847798108190249364407158644124667020637911364949173785715352245389960984440171010350739990245303979971144594467691960354309960033137830432877175176133516846523490878040588738459674988952430138439880503271036886092515041832700250136696976426540201936613593243503296293028174205835534091980164449196142179405901578648378900129389013172857446837449518098220318376478818081147209791510297329437938088598147336371320672825796174923037417305951314483483039413293964860601818355930398558961769213377994836350358489329616854979413068256066378459338559066579098982004233425617089283617320449816837973717209596414515649201861474365710850473194083320434270205144507274263582140765586770162796629578659831441928808358768356767568157442064382738023802693848175176621156233950967792413842904541314161934720056982438631150299914206248945581091031348304325140025160462237372467252182591951562220042028705367976057382025826586257101009854010137856892382364074357998595365021171245325803685867585102390526409832786948214180944255633602691607987723639792536735415072141107464672186036354740914343570511888923343490340752780909585524534572939255199443818367085362910883336291412138923192664555796405283572665945141615219189792159483284844743872202147135708169101551972794835501219869254426215751104975602325952035688568453488030284817726829200865112079991753271423676783115514954513036625714450075398630061047608097682157180644392530176267422228514120830055512505961260103660056971933376006006854859072348593558889568286935980415256255936988139470559839348542033895654793953038764009058804279327963533084803281560015368410545734901006983908063066063553133295573318002177924401195705655778651020621622649834125054287368834552389357988477701431035088379948659296854333207886248280471695575678418412973984137681938802932114124350579279818563071778039583071561399017874252540329453812572044343136830151462893470474924294495814018533899306985273375284852465237345370529524880274651756550575529765485644580616656280978718233383037728786301261519178017166043648214059013843264968255286797740662022989930463707452048435478664291206398802356441164642706045502005628300364345893464041433940052300538818240194774741853522055353463788378024827885830989305398947771735684913292290692208811987490257527007424900650907035860399519820275091881080622893328677808858109685205746852488100640018057283862365771306274995035692444559907880437549657128383088804200838495686623160754923279712044294656984219960633683952433477290558522337212829000604225270696101279590520682943473137758308260614205814117633508695186296472057033220389667723820791161481662497858982664468951925655682920975038372915661983380574085499629984959139624844063073313131973987193929116508782218557077844260426759045212415705155924239082785860793227592505912349373730132820215176257191958482274676802785048351932492566894361009415713269439451160109434251686575828222813369776066517828880371119690725010771023464262519062523209338266408094804830714679207391825935688238463398686638174886918309663517386282322947078657296935740235022119422773934100540493409614934036655761529322441850578093754624621215307766839326364964657995780826074717441526501398906502107173372589127599611668886097122850650265624348431107259731958527155995546607544016833444371930270733197875975091006940167168606293682821315153453071515699493211125556355183324192441310060899877581608745068475190287934675025698318906747167738939260354613038820271916895912281041352459844473659932518318686006506268534523806027922496646316344264942567567885040962801722563308065773802408859710318375743153455250218825238706974718570410771192362057382053731617459274299304679596415223111757600347539516149205582943588545176722885396446213189055768258990784072051973938903458419964308529557174080700718831355467148331400782720049300577727669920825331589181108628289240159817420851664155888503740666125922362757256330234193283847815618165835489906030540464276486073046852629188960687101959964443035140997143585351086584290390889832038213609489321258065168007026577014008747996858712625993533276412911576021811186742469241141821159546463853388990800650917233579238596271265826062321880520505937385705567812797744997301651801835594838964291388933683870041910861588920623429222415083309089426523291722322360993703115320854473525377226913786331012193977977226902589378457148245210175250249228756781565773228862453878799497255850623214873602362508355530336167535556958859916963334442524369206561030725773658857920623971272321059307947997945825520753824870268233277564647713912574761702560073145303282646992213554385507550919931916308045404362388836203088412869054823994148893286483889218618683287528755316067323872004854338107037722551905444327196329392529608456827004245194578786669551750926707945650431237547119842600610049206440275106029821355171344374302773253116119553773519832367682780828196710814160690375592066220328347283402711087307643609653546556233812329983329613179488612136411289580018914389511163914202274638152647958517715848174471879163422752573256959480113081414662635291273755682323068912813980746090553181822246514037495246620375357754947630249752242136960172220808728821199666295043101176015390073476620135847868451198232816282667912755062633245268858589099739195120741871109645663030857107716963326027711938016437806750289147017851840379007472797733960381648903245148285768648531309663320615100153659251639146546558443023574303526376826373797137502192995971481656939780000241573790919524008911327727106197462150488262962719013915589636318796520557003587986460666763093485630111535236577558067378253734490640383417974832097012871279966188341535250757646122351282256788245421787115499145453030613008403787438363372920817582377125830234699796064565771694566848887541978084689016499924438554948006325797464606706217269678872683384338665281056080882905238557313105426876079130072298700832457047520484511822135630587717324810443504016372166067683530191639906711202202892895124905296839953351421230676467745604142761612724522360154277094161221338487964289475195079621456245921996334501883278947828892734971965687100707638418256077118191886586614979434704281361735100916265034185537681906560995335826520817337696610324966591294530217307040790252794235751360795256109941355873632562066864982695902936106894469515384007382352198969172688680333284674285248114434975655909351851352303171795005316190036363181226853983338321296743045505328230350393212396382718324196339155045940724660044445759424852340224745560830836522811482700774353848926605095813719632852017091202201387807828974209627220803874515206034365267487759176825588000887496738943880491309811087808707383468026403014525011572374559833059739132885500529340530101890705144742477107963326976856047312547878798359449622584265825592701732050425296686450803372270088452583932230313470106827371236582516411876407424591447569934057480383870137468249853635493499350580434126523398267016091751742847213461295912601459574999208203767602373851214746979980807772911632576662308749438291706367399473248783584748764962217869131661065145335489745293055717056572874608344201396858458408679512111320840850869948776364860448277226223319469853643705007912242044004979686284865646937940083311141682532389074446853487155914602384768366556145819962935143643005863508617970992084983040690262848023823275191779237676070258075947170055614254926907123163119636130777975830867045245309878463807837265818949285937555848380594915281411755052861283957351563688706618728222514751834229121006990941899167305433134085427507766489348350938180781999179665756951839506507347953695407314501779094422613708030579036617908737405911122819941973463515872044065929125950565987455157067653323504434500689997156602713940330224437736066686849088901048121266558899924793279909720506105961051836203391945518645793694467203298631615725768270945696941262776300021723735100045129209577113350740570394312562826107377733140533092229512688027859764929900511949980242436565914538752704667620722775027457986867316250711558651968200936416944238311423088209846212038391939439888981531509415861926225524552311088164829987638789626269644265689308603363364264709682124380006691400550979640286187937174044299656289804058432184354261854268652766800822737925232183040297948429582008322427863885832324305063495287593369274355888284259008185360486326182071432878843133715328894030301149531167316237947433057321992411229505871705361831485922211045767328330791946582086179739991379813011920497878092383791732591483876020229748712196109393689352651839013283221932046128929311105675934852284199386090022745348463215425897781705482661716473413298080789508038280828872904233199022071543903899804546794347101655930363337662653147911662907111353046331288120780447075017132066486427645156422374694107804975313792905187410502300446911007959124846780618373752425717861755525672597431554213884846756526367222271835764742176672244136013838490262309902752689821972053162596604626112656740070175796952471155410079614954403361868583786252362742480604629104220139701655220357080259686209007244041992201230881052521148175567656663322373457935718343571536205941744777188593879956983676378591747173112849224999760246304399283211940540794094149010339205818848175697149601402336933755498185095297566295883425651469555140575946854530074510355174138857643606901843785027432853345416204384491361942966612487176185325660903335306306706632819415202922244938522377150827985015718076856759173517780812880644633984410341228997055455226346377404436305522251407954777773422734434222563011519494552454567289836540101003007897580183322722154456877003859066101839414681282217665418838628197732272303840775107453398458031381661887868072258721133865184042745962492997242185093780733360917442023526635512068122401656808755025125545649381535244837564344419640818453035441737842150043379984516485345995801253609765282616770247948429735350574447575365491637499388923406777732055435782777125932506627031716699187672533454904119775307692617603773347947904768123689166225022297433150559906224321057608029437992099451351665034678856438953399048206318705553639122461435082712784131991991195950443641463076351960297847974041071670307042747842855469424061411357586523125801124222157209556476831034675543243425049424899389813981045509162868020336021694164248309475849186460125880750101695179210332139496908758964043027167179836342248415658077799087433499342072333737731184317701124945188586403201207463663141013622071989202518345182718720538526504084555683295448156657117896584166992481111581520855020217588513283230021711682439334002181833075492520053645103001017907397374391451756074700570868942849022362974890272325992924981381197975403814362984774347824908641863091012778053388681659767331812786422831601871796933270447422403290793000370188782272885993556613202912853041594855861984338185558413235513355126445266551243828441709795816446436610026604522163082997899994971403835511682134018128877447915101234427017368899260098312862662944919546022340454508860289432392946650271748531025718223681532126350723778278148233353274960768573565721925979304577458870270115104034358910311741309422653844659606344674250756076266279236113020074119207055751395330358567376553320613593948488810322429463787129354836172023825985521094674187512055843967266171199037390138131721051759188139333412574004820873835207879319493670696689356782045231272437445748454573381107698507115415584661138798658856162806026334578245133571496226654882947340273566368864395017699087033160810673800200486177028509166185333532855035021872235378821320807509640682301426987248903424365029261359614264825329595939338712828897973775672391746978935869475152521428907722708501829218467046227011124587563117539969144917751750486684069326088288045889183599553373628195482852631687997375570490723490326605498500504969202249487629674782530660481976903079663185401720228771870300014155672384693852925340922434216790742592715059873086199741343602974734825876395913401586440557830001110065091668358245861385102364123999075005974657252552635411212369401289374692821923075461424826684965232487039886461671189586175964353417887730492314197593384177198229086977760622813455842601247015432049671921505822175783189206167527418315212521269155486035125226866980715504572580899469824883232665417120873462719659991645751332853268566892527214990864923741826116319535664146404510295859499124919392917151633516299192150505487397639672687383467099719232960262755660002736945651329371692942662968720935926717323632897651445210287552735960984602169008039783509362616358239707577269164188523162523128879443339202818093888712700678215356785230844159548786642068200900466192090346766559492814080648170975248190803692335842848577713588708156776333002610094340036648167822432524430659318679538240344919221106315528462530338903406084310847191907699069854108482333453580163347539504828295204210293850407262611857894194424943359785307797117747607578948671187819698847926711659242390934302471156743647343482277680828302674993889877684341786617774044439652106089744882863429134206429381017151122076692736374257355425765498691025998920814674456853155902466348439069142688270636719307393472967258250292560742197416447843637513623275300280969211503229334903805544115928764379311228758495567149271580553969836531821099613408043887801796857076029203274271024063111019701702595776971846410760350577404179289251385613487358885999595689242518607575374671882725015320398528893383617416989261288172617151883274157166287754486980022999802202465817641196037171681811598237243335384994807546124101410379139252343028454051984236195308906875387655714455327167833967339322240378289332364557578374278663876491853211537642849781828352275018444426894143976263338795597912954153363025664407589233702841761419384777182195206721686553685428446097200792970624968120208549552022771703918668817160785060027562721876853718953138517543284595034184349864657392199084941679367155442587117034108623930823268204203466994153488905398712343616265870824497731021369610472048761708198488657529757091919499507795748333331227201961185164759376744618657252966345086537988963783595861699181467515891440536628973946928269989930693396238255843833885836363888835261384971347625779476312835018617849276875500543421912511064776951025999857846065845696521845006643112777154602352788515670620625136674541039477327833791926037194486827011861705840871784762108336896282567348462724712747070027292448888344220920228644131948036503837047894518979049987526354574289976744205039212988722693357004367327472969719054893214734826237801507181080059691706493014281590696007512315933064468057037924783387989180446176436857028663174732916006847026528993532048116263414001552678866716569570629750467255464167426789550455916308464553531302036702023406752109836880084037754351483146406980496711867409066176646574061820471887655979727550091787718191826718048319706177222953789274032101570416256566775345058398091542629354752676963664367188302184810388053384004406664947252725048461872894176731809602737933414321694230771667644022011383250145239429582900074732715057228846470728134605069618717821847130754322077766533197035969071187851375710403786856704053270925109864886576320441975249093873100576668793211253769665093580560056963134572333372287004041425477617078419803054538352551589481237632817471367142338016972090716582913434922376811471701161302957711761291075657353381488583346745832238593315902648366252318865767354152736701616711376800956466616251393653176147164405831964699292589304956682462803139510021112628271218971089026316027230776943885973273962986635707797707020962944542536953619986143536090299117876432161536288425445130717711415388771932422725605965599323077586827143858012227584771287459007950755193949895171977918234572897425629737377850751269647166482774204844697527945678220673099722176803430634119719942118477442406303553237713866164542748539383020816977463144178404846360507229987221645782635311032598880416806856045677459421606835177289470346014106410614469028382962688857322174803478460564600886640657529373882400045732761140106988125930545341837520530599564585676525480247666936801650276541225777911278689939343999166779448670008733131238452791228331977271590931093871319454410558431073630189075287220156293729779413870816566924699207986067007729103436052526918981589676019488604814724673991041356019624726636026706518083783763224847350548009112081417142248117585175276703557826197230557359494693050338957458357668987243492049981365687231580472353917244241081355050530120878116846114896357757037270334230106224586758669249725504704245291964821765404602085969010739365956559956512534293652524113835251067109837285851078665918035463922923525773269140869381663683343293864188908917646654968000412123126917935946818110299834341041750226662502946266216909134617405005979663332988426546604322015107701488556166664764904073331901609786612619363155653608230527646203158218398346104002269234913320432766426124075267641612159831897690213229254318825536852478337919711851422787575755095817176910539434976190384158239626164722632176249574058359429279369566608038643136170753631351994781615692159217775259309634269489625971690386810025570707635083870367087670015145037706747308036635166548457668516117612332727650828418577220356839161587352336386650910414678724387249907169579168480194697007357466067807073923492609561231244871047525590004320960513089444376602311972219371318464567341082447329286302278692803149292110339605231587845619667830476123907536416359735587966381589720758936490847549852420833012434566114846279261099231744644895471879352669833170638140347747897185173407052108541859267217344451786760214978881665865740260172242556501311564525213452684221958065060107147792829565638630239364542072501698930853434848211616020098643337113792683888664376915811260968581448011491481924993251988921446463142663120661096028015676696449781094337552458670435224226235730299752981334268989531999276678273849310793817392355966269473606746686526670324316668442799489519044507864498572376471917091677738548298774790086325788976284900971721454359601744686885765342846204485170166077503073798111073402286466767153602003386864774970309915307687804005108253559114190502221507467769404636447803127059174281948371262984475619785946308257262815347264106781195405801812011465317244211675172543365157621272860898394217448010827227670624675254047039271477235037011916633254119135642159070564637817333975004426667195715849354206961365295864116625409238260297952205166768515196582773624018444292341339397717605811159067046660880382641351501306266534964138791666229729849327928705220194089122753937018708402997953230418263634235889798299204965309740594677266622859694299997893621419807671996718880686959031679017567958129146651231421592772022159052020962612292193015209270401458222399468580533004545889426503219099222832138127157972777567444595659429419271035881540343601318898991412915272331063579597844225859391993156419810744250323722583666025069067777947337333242151542367344950660396104335495201331506607045386561288452861387852703027810196816001997513717823434789935489244418299822814710193686409010810792043361929663934417082704977407733557441808921642709953922669230139185307218451773894172283677568809258104846037215903438540797909699598091485976767125915773602362715598171484431765658245040161209055093446642386747165066989712549106852548317549812002366339644624543250499163444859854049097740102433868742503880816246664720783712801919786452495597270995016085070262071657632165143182455413612192517005856651501965991113399284578555208749059269727013125147195841550257788225946955756918229732769053018875306967101050824152297784472620615483034144846616617805728310536301209825690873997019323336219993884065481233270792966976797797085051086314754627508230811239427333521743967375491542532624268446200331827078451864435864340879125432087297990830228250997207441587644400851352162728966746015613127641701868148469873696603739537037485316815625820177602989866759452617573621490458610488844640996634759356327361912800794700461702639880005560307414452743553781361847163556655613849793499296606453643933159877894073878762229907620415058062020104211399276860081773042599383635467578974315679487149031463443903559894391706637475948695674140941521442573478582515454319077746203497674033390960604456957885932887532201900250372897395197917710557285832801086469150468146441475972475406230474771956727676788363203891086211794191103840133490756366487344121837266761210531855204341252523136783309777935243037992846726119414962149683698398093762761197567120057941145160240419297002731589340383881352625312596253555977601848445865986866742884461698227271122546525267041482568486992323744592211784252919905662613265779856440204310663956068268157958884882108332855625510026087513375660715668007006296623514175079199500967508201597703243802784701099923674243404105053622529155772565727691261254619085407509589540867885062956316142962849943780203771728932483544599362204828070909700346451796014658283667307814365687149294825532606103513054020887119338855825474994918658492869775946818503923503702690126466280120073968954982021834718226936396831487306748305404286200241556994479648370075000459364068169283866906772018221010885813216120739763694393877629556582010792873811886593232951880795517738191322747548369173695718852238808986696807757257743948768718864749648697483899420747978781806054673909508892171639899956648325331777974722080742784957773308136953581172555881216448610400528018962115817475906734571326704406196368633264943375888251854024584671258901235946616262990817464991718553111961300056064044712264593283642773003116102655335366104144496873378278169518348371747233112270150680698371600869246921818858669797691392450193031774745878498971872554900234746583769811748782059729114616708567174430753523496601914045808655096547766612798455212117423531223249130390812587337263701302779662220960312590195177411864790248112992305275879419808055695903985649534296836727975836546588239256648358884004042109130751729530921969448365858778428005859566604909860224328635901879505931899087979542671876914937131329524404219698495387151531759318431793993704457630255209609250821922156079236597914621263437244223861062976158056874230322278368923199528641103433471557004190718798124981314892919474782653845892645716297141461828700593498744207873685296497157472785597956223884208853618956183323357804508472604980631332081195794379448372974894146928281761546873222861460776941392664196184570225194711430429853978830969923368832427294516856844788455194355120639039974771284354642193765051316877006108832027233688931601998529981977754049624795586656044811135310023032364264614213916245734312605515288576295902878404769186264051980083552604491969210421017497465218553172083811052218191767662095956447364569962717656948095847166521834387214198441686238459852448819186091647133223887834708206135494742836685422281963992503501669387874425543574546469248562915202011053852241691521863934509467015330895928796713484466875982557405166541161326792804843319817633266608429262451263050885037970467080343600751327228207696192639757847796522615166877168812407463541337471344855326642273126609554453867532054045065189896769296726128214537876678828969096242051595833167500997593093675581993841035435059761675965127008637584684624618706613210365522105361050234509329027044667380153883233299421233447248698610634422987931024709810898589271164101605558571760482742260050550497963392705263670910927774123841912143833756403003754716051141434825278346394799901089188348320394553188988662977497342735841774622766522466613615028332735831653255964075582646504703646501767748646187433920470384969888859065987368668087920868938979341926166637167426822831104630149235687578370602579381182175718699332692770603802719775441909701250296114298367007514013421740072743701558521345833274071135531784049945345553565498828253180024472882789016560942392312913637210210078308142225708228660076333778264390951431517836933848266015579675389222231277189396137771604075520750874731452549494851785886658463869176135221608262804177187931478268687070651137744612215715797593041642502698850296904449247509603316620396641387745469124450527611903553550423066052515408500737409779015002278316640418540304327998129474671632421737156165677685833768554506274641916364098631448289169110762752085240864947873544795247667776752677670778977146329743837324513078622598835947023237730820577763067118548392146248678622225935317118436473689959885112287281871359126261566192316595220553034925884219852488701908089700615192496910969361344429943812619233737152439554189042883416080694992579195600850420452256627705524615247440208101941162328428344288530846414050437133997509234139436256848603811656938817578816903412930269742862399928495814814685190847083018475613499339210184827270080959803053305534882009640386940832310113604525320673113879794080133463172419239927037255855716679200169782460188530925430603972077949557380983187813086469340576728548185742787018759461007833491394657698820821457665144703371893036881903120738758009067615327962979529183130438706999520451248855794704023667785331315695803701345303857978025057415722997414280661820733669293425656743011571499908833368401017529064797382329534864132964338790421970660484875787749161205311964808585721476319467659401671983792046538851821183783132235718708132828083679741729315397618313688574907259409290595768544471969625946691406424564805217911713240893395981827054950138947219622987770993455189665895400572403612190437389415459077042002620116272710249048306053272800354416287998245898239379241585402289111800301797808127436874762035122214487645521081478817293112615621665166075601050480565608922199427968374960150815848680897930400803653968335715367607018909206354688132604216651650657946818869607881382196880858850194636893523920371221522924685517677830835706879636195075331491653893731095896786897531456682849635072303591474249160244150009134583364412532742092922667026149648639765393622005869901947365685975355059721740975727961146925266997561279775548988000172199118942641698263565073204175036870382700497351529248746968708827037699227346346547517670617366039445617085281837854709734350482172832618190688106438187638662065822227894863314089033902853328022470387652539407198046288974372949691499142236750456075946676765740141734521182581997305342329804422724975921609110894127689002849439794786615082947253810926462611734367600444068014151996720667876307579746906551543614714022985423587687166519648551411282192553521001015900813653967529803714422877340989278539632920507735405254286251253194811024118569107303822961684853017991927768598912742739529561967345923340133156348258896775517260186252692791903997367327253814006029921081453254656178609346630035939488960875547309699992460949317925257271035825691909822521580385644840922216987821184291276694837616742584617157486823358049170501639225978047012580957045891134099538579937334235482589413698187445774887768644934973782733332769108728253454910790507714064162853465940222938871366843277557774612421541201556999162541444159675224443871143352674079671162329818444889235824257050090468693849566949772401553151530506802295026517227985317914980132996940946373095520721792053347928948012568634542274959876700643830684046329356109308556021869012800981640124335661663517834895580396759106006230750228558620322261558304948360168149511604801312291130856760335604859191561796069978932711498547391762712961936256001305746972021082078491953327291907234920018330346028735540376889410524231930200881406889309446981324280069428613562739717691040123537044363798821005145859526685153308682641696567940615731720023906030368963787728486511422793485938742193805386483073766497525335531963689999997154559063629958866489679074072537404685981192057274098367893605692377502624014576753573562634625867981713376173591656484386429855573771529195529420926130254191232393522563302269012631944201104557100761237329989180382338525532045025437761663899102544736208601273487051329824429056762637777682385096244461553242767289302907571804645521995412729596143795367222762170859174209340703202788540816383328745560558353692335710764613043964799473779601970303253020657011319229240847992555899942567767823322461271863132830551419782932621969179206781338953492986580021237881457944215167245846370506624714670098148477809438974456397091600608054031760686452659794491404808205085614489794071112369034627256981189267245343385763306087455555856344822729994778673217074603775918305039573949656729417282472251985799343420456486114552295235829093615820328409670589520262627982073518741635376700089353023083948708536546186928480050646412545494648264857590702649352579263944069775941775551423048216997885835797343856104362260684029377105889353270777130790856755624734299448127477541561944747106000547448343889773366760531703482858739734721148925254187176345907053529463642616551856467929895602937051645798028620752480141332242505326151964902891519850443510484549594030880553141880887319741761058496622588597965313999532293352035814746212925890654750955229999890446256454096906444728441038155423133617376834760249150329019408148853009809129681074834918241001129984234099960375388251610485395528243402536243966595416087842201178387612632456187961003987061583632422374724270946042449057664279265802875433419671603878021620266576476610762556420408043004161067494152529914008654473612991041042556811771064603811106091659354173698463030250463159507803861159897985482473222319614027480599180181395980123051813127313600049774001641392576536984495906775110625857272420583993733813246085950991720065290922943920368918985161479165052771601848832859244287462382780207751235900609623043585811341871525388116306107624806602757168922341204707046440175762613215224238538935157349276803011534725487493427918921333461869811712981571693160007804264195727203037009690557788552150846275861450026153129233599059768946485904983847200288270553029782453878358148719925027961482877379353976602020587547585247340704049688025329064257427501178264320061122737597166080429485803615828561808422150396141684442308174075383735638912840199000942510470756061416307322497892967907144240698821138360163625383804102716788519126620544691752103514600389937173320617330932038874340194051970898379438659538309372636402929875125224002898292018712600321185985234165403941001059656506330124415356028708962228743536255540199895022203074042828254098625977475783217074146260911175059935013337949691460561218081752465340637480815379250108408135648860424250621765347075484291566915826652914538115053303290320644003740988358168327646501952611633518222231697364014808585081458412083735808642606184751997182567001899972222399062060869055244355450252604067325386847443347655976631845504561054913340998264955367837099714802333089196133586711687243689028612989155411264917149651912448615904679192551190993860653878541438864929066401997337886538211830107468819252791022950700372975251785078395796167080298412929276162552543189390201524115874396465959382997026131941480256365973912356991642922036552749468835933531315427984453701017221070018045047551250164392378311826831034201290220866327555435867806377504436350809819656466567829926763285651641492784992335043019138492896132711187672758214451263670444091863124890342905953204853551493322193726523171799264710156444702543314354401873418269388465295451404621175111528297503266207704813955702348113997045302282224632605213550765448924330168665682996408362852397898001758475703898314745385924276630721284597670699173909015719943089916032091228236827729776938911584167141893965055617285975543267646551240726363153529436181093613415757032912596812859737306359255493774989219030992880689384635961121491526868686298155150170107142448600889975579807925247989871862300443644667970528245244256119258577429664059650802584314089579777560389509645927093214380456372281932050534840569188793061814224273172535390308464118469481735806668572580410532476595604240887316349138126621505949148397737521919096335446262826477295233342393918895701412817426951488520689337646457687203102431449461253260193346445295492349915560371185179482878402682629544634080800813663800369775276926407649612105294353159343360820772175073826251422755820604694638539581163184958364631101912937292339559409155592059678947795049863893683124593322593315248592678935620987293379438917195955945586475406775355160328655883997476274527012140591770268889602464415654859541806122444409675012469723373257232006273462444194012234789354872310785370442889895656845000305270207061153241642730022247049209833556370144440228257827052765982607743083440159368517684365201875306476014509760417487050530414979258856677044860617596643824987446861903203482802428138525840205331496974769493560894909809480092474064306790610507377993941938009459105806732282987679393230739311292306240575526727787467662597637107933161152602354976145522415569200982450942238903277780989003827744087746245689332276643184848826695456651486266385033749146793131986393718175132406021109961754272419233930975350774856257821494328966807082534014279594268045830823179260198854343170803846764449757691299703565732443207561666592293722757763935610511103794147969470914182981276815449832406940306376053854346064232911401810713955323562393084485655507334255906567221017955400505630081109327263018023678732341946689335135578330871631557642104775024623990922415573919667398666451400208155846139161667108182906591091605736478138050260793436114478488993886317761645460356562738260806677226605734291953548372034154189286314980596986939358185744027305547394962276405646575451092922706265235121353174919450037673968809383896430730800350066616179148512805178960548658423814485580662937338414870913764032348285709118286781528538142018364766612691453335913727172112247960241484377408624104312477569128769086948856328917538824319132823904559139662269366443957867592842687608203024710160046385829895343201250634516677424394621634833987447850182791736219449295309839296214354559141592524160434498689185386267845773352790335993762422914049844949368506192555786328560390690580260744182821725541089149032652040122098507438931636029443812373671840919305196137974048184064954920101578626335101441870481500789332336595632195075962056049389987967380030153049042487209729303531105290403949348540031418302774290242778141065230975109647208681145470072414851743200851718643646379253038941462521456640909874347154269657797262355717935556063883346070259150399140408818340930958277909106753650648889497292214492114927871485912580830932920750794735579869450394347449337998983583398662787020343711509185143894673795264147142544467193931403121400014446922901120877605435217621228662177212053696041892859130810034905253468135301050315854795937704457319496694762040179355207422842240258491204668409325679021578527856812501464763370105868320306907739583732873059326578843070905103335240051162531945143905070015024004658508183711049342458709881527888535466822376308200281195966349409940538336922938968136921708842875325991892030325787355167738533100146046927680842733037598911482846648228633411938270727140420480796276140086569657387130723519026084652613637639699806386341819346775229595744388994002072984155882819671684440021196988866468947892000040226199630270870737497626043131998889610853395212505777540608557901049063739953827517936896034940879559696170339478508199517251945408666212235736253567943769927441346420134237367412334548883985537386935036682489599024136055399695749328598820617783848810318974466204050769894029998470746272921372571464648568259851934211113345331962566837040542679311291250588346384851656941700365081564792428847457182249171382151367167822995046567569885725323740206323244521615346784742442498530609934253584780651769858085121618446710404399490323544553364194979178568213642703393284035513318944638367770452147444527135320760497688863790871280789224071012937175541952737576328343265263811430933511856007859051143338548239279516887853606907668614058883641713756693051508079235659952308048366425101361708989225400691656916315160233851072347844217969159672514338422699294324260227153700988387803715464621291265408932595044474682524267193881373902109713928701491961743143011889407400201660544372357363714782786558694951414443272712336760251544576016113579054615131594242002212560276540760591566582943951484899554957884191014971690671010724955303281804458404290157767934742685969731281136361157875294983426719087559137093304924301747947247230575791031873098969751933206553478084014974727062287805053020299050104052728025577469221075162412091563409740853073443637912430376260643661591947524038731996752366368443855937579792535807789615519136598885110417554123263495227611173889663867327507635964643882408565089338534821979005836082351731777821305558820980655759731629933372170799279449433637595141919388889492238149270009749680511235333280329187665454084073629965995112045915094069988400867003170691048746546899824945518428468553851411395747478850552063981888694705252458788489272823123351250316177812568229452464857311611103351636462396632029594889301241072415784974159347620859919459787781058246348529655871665179522840042810896220489464795397052094492688654567338943723482722031647656663474662671351972182473314920177618130482453871240211373174464909247873513514696940518268313410907641979085781687890038097651985834016189082224021385533553067523905814110471432830160868681306844671367303271348207008928281230643605120585180522919043707776952874258311111920030498154732202693791141396658960900290075462456522609614946048902600156648462987077291101081496984025793667729752429639192069565557707498744581493710649273822285368043494872784229115556832246151602164574497050411832380008120935138617032873032758101990353819056552633210087643536726594497234659646168656003708971505923276548215569735080908709322997893740220792450454675666418931228890243830863766681483886974691591898052277217444928479971724664610906095057109599489630963290094554946392922830053245380826533519002285936958447755947536857009491516152177979181510919580668053014249680874103364384932249381594502846130824366968423576592514231653949713835405276071914495129112846269203127662995636046438747082808545288772070095175133173620415711317653833323425497908153111389632392722588410244397466760615700410188924633972197874904724245352849156846051382637945196157019155065175785512717822851602839168474795490002485406986397111241939088099111101554785951748161780227434518490617759786006124494555500640057168171753595761372260747845432746364165855383544379879931023671497411907948807419568992623997304164491519857987958637542488049355187529366393843655035822727216990724644355003444243500804113150861602650526347994437648726452051628065072756187154077583966403053143413814333747993842271102224777289225426790113953125558636125109669150679089140162760589268696271249503718508790864671614120427237691986494445703930612928574239372044344977541193899964297937455346179364070619998724118690298464473438906937429452679065862125407002911060948669566424112884412424087697681369006280547407497900463961300702991190294929429375059007843640094624872516014273014690519917815977983204307879540087704804328413229529667522969458526399617711905294599783187937502975483547299343696221022547879805007444634812800485480141259213323580141693903628405912201319559584050617229571794803403392732730588451257798152877913472725333901876004985441692634236165942732183822927630550337799001388886480763947236646410681229447061961199147267100712173095125565508044853302828184930843761070056632775516264589088601443869474670456020856634384515466107720017542016747922370102727427190014144697583420968896233133242097018054236342379967958349007385262232041266171835027244897057188688918975183735114562622022849892075925626754490856910486366300001012772476125726629098424622012517229656870015800755102781136285873996057559463120317528098098377911764728101119187853454332352491807623664526251967189041693584127002648332266947839955405743463282359408149101619829194966361046323273667868166011983616053677154179356841915068970398407147352776662865373847422813669903688883758331540579481440735858817954930086595716202103923045764143855117361018910351465146042036071522521080372331959507132313549140022274531265029551245078086479674122818859491180320005886713673182513256099131102368068396826359261129819203568962623402168931039587352420073065679701548300422618347104765729366407370782521526453092963967011304779063780895470113648160482769526536562742008886190362147779308601486985389026454363390330169301008129653402111590042755819630590137911615150168345579219927939817769362437253092442954464470211855749925045187686359996547495698927817143513704796846071109074501469505464030459253628305218542669942885486227559327007391580296323161165641509713629239756765386877148174726220506947409669795568925988361472833887485490982741435342814634573880472750841403970503821894867159618502334311611154617111853347941989775820573067498528974749540835873037075580276286794062391114145723427844272087361513793523001862076255370223821643141932320582539720641961737508978202540653346150942254700032580008285864332537690320111433063030506284255756743193056591028052419813233009185449235089108357466216859064287091568999311406071227510671319975120312922633846105953356873602426742804448016468239640296057595122609627357005217940006757695989745235931995397761939060576182842934355124494571261807622261140723374592523160159283117792840720991138083921689875285931488657851936233098778716005314091838911407267462553608569036353457525074454564855592574085718349707174582444513456312570322931052591585695918367904199433203427028165157669256302489642838386623448410189331987012406705291807989713209187936250695334077997265735386536982084789401094081575940786008418061444663764771825948539546423750182139698301017558486472146833431882263576834985563030009954171209403667729959394116794938276896156046263426078716297813644567778692297169546640585928382915026923979090548574874977705740245925132559696419333790768604171182571490450470703707214223045680037313068627628551060469020074058114416026648030942822767783980828224079829599996975022474166699475266952135845813541950991762580493487538507361725381919348597088900714823616705664639639212274435825904201018646614333401475645905640896453703270805657934262117828944374184554864206705086055807137599129408550987190888493966107074197851127679247902621738954755255994986323524196256672663837237094518551784574971833173255541968803271105514948963388654598904659336541988268830107984515544803508599542900679970762340356149177302466158061497852219489839023683917140634233820064726951872805108017243968332404894080835606313565559136142667172914338495126599343192858411664908278147057123608660292693976288883583108589770097251372795126396061309651796364194873993645277679074479225639484891762279446679545467765258687023460670270964603040566832382091283501158116455121432213104814809910896007243866952038314179063862491193628606108988711083687503956210210217877408986003029011776010065603805123259141487687574509668654358771467501784314953577484604556167469235342529797432752405656263698541238450340916732589621338908400173354685649505306396516673575729393738095601913167899200819934770179964393878360215948776901847468537555835560127042687452779892532835599817298825873892978196267136890403644461465061959712049177006605190715826760077409153390217188383183787341664853990751062809706519857017289831478017882390473460752819070152162816579539648696278324746250128545400039799786518097440486379696041783434004843404071199743335538526055525266226172907318026111204102744265573201318814569008565359804667213269847309797906337857210659444153802983418097682786150166205209804367908373586426097316152848912649131134506756885104588123263741832470019076471933541203109209608589736586871567274760280854421497295861948253743296130886853399731589499263560772024136376387329602576318874954717830113520166223389607990446770702591051568997921653548680303759077010289545229842908660029975073192631794498588829615407867912500489115282673443174391146951463244850746403699174698129115979135750788428644322214644182814472280889682461532940245645923740302742065589207498691347795002955536223605784666064873793776210592549872949963580168051111281707169854065759619774506410119302095668980874296885663091389452791625894025126171753794549669433187962707823862048837484252573771591362012563662105427685727475141205104623795634375186786262019133184674212217683940318964701072450773136588300457009832927997757385717518798799365371759350182621283088739962367526365993845995035961090623562584205218020523646693935702530108883638153858684486512688541994289902809923644270856224587016057486569857270529447380106564194450185900777008169722150641744162208938336338023947704082495594478972302434847529879976572841839785431826629626368973494168673836148734888423613357919891996628245832265866658942902964728103805769887408867709572232869239675445863581185650744121813361250091207435532288561960055039808617193776484992131175425508218250344816870901922256339276982285931676300068832113718679229546916996216147184772956449989304857803575967014456637503617178561554896833843601333903570442285795271122215706781563708268519974448024168861706475979884246258301273577383269294549232274848890871002362540591983774398889280595944903908417214394700587918181011772586661392230560634226679576500663417564038182966496770498057584671703066749835136753467904432456176561436943599045904349322826850647948501607604387725295380461610546833775059507542172072250926911221003967383839716011388035339593931344441100924206752391308595164440670304824501666887894316528786361344015944398591168206120046984199542099037564524685015204673559544303884248233731844872765529426798130173027793971520441660984230101450314439447956900738469411034462434124561580599812874868793007008605074838085157895108472040014287846219371429933620448766449980219369656852586002837807178323721456448548906417061414649948232044955142387209869941637671448446686942870075376137663543737666718521538444124298216214617496461336237529987319665613211765594704996360373511376445528297674055576283973593290633391317731760616476423736115220349286668238180199379521604059151325913163059490198096831619552247042446782552435826299964062582168529532659856877302073538457045787646514007936402451295585534839142746137231042323386548351657436077961159995349489057738184285760183539886917753176362342984075475497419336885896027260055022400730516880504985172814044815717193313048123817930917483049248928087434222709786914435638460517310681988628881482793054534446176627685282310611683570893423843349149344924143867364434519399913995958691133430575085222016889211941400805452185683673118707916841490283712423149628497593222485021123307820932311874948630331453824112224516364552339663763860837398434856133650759629897917523173986245117007720035995910350016362432625037057958340392597423333656676488355162792147487722740674984576391636119381122487860130235192567310871247227264429286408276991081536242340773822908209805813623520233231567968868636696573015378627615410569277423485525285186106989302722109133284153354470476371021637260609226415133393424520817063463395447024294949530867653722493248622567024305385105477421956960695042101945501744064651249755495157829963019845748344294495920974310746853180741569521185167013828907762446392058677640676793661474926828993485116531190747612035429920602496900887955287176506816706328266363976540548558383511515138514832447591854981048408594103496559604326170046547677609965245988645734566073171546094402128235360256814189828828034188908037808267430262368157182966578150488884770702060646777509147464649141520822929573155675530206855885744972376555238367042521236441105944466927443762460734552422123617693544153172424382859678582699381925109410211626264927429508483806572756113644363392320586058697536408632651323990390101908459973179348635073433678274191110236892239770806145784428122305699380594999363884415109526660185222946428676722807408878304097108564727370817153851527657301114243088977900187249279990132824731999164719366413240496125767466949028938752135731282742397290338841734199386858086952099301770607024626663872346798054355489490580327842475771909115378708829578720237541904305157049689355010498933033814702377652361091842315156643698255632878649835593230620749292859523288056325755838334459331914139992553749091135130662387972588860356417416584299401829189911599711416094039888279442850788871350462705019279932331609563404713522916088079794341615269507083485890660200106146646333038625930492045878434552657298187506797967745048688265069787313928774970874774011774960731901704307042281026362224219885990726052173330751108290011143687705454208018174357842389731402887275283926431401608557812872308771082122659070866281579114851218195244128957489083216342058364593563037252857439080575612761003374913562588286474980566316506774248150111103529458411653700961543188930786137677581764501045289740658873598716724027866192163074291887839201612482707289951449259413185293626307657362466359327245374126241706004935334596668425058292060768988363302443610412762593721490766173100896028548037654576630815543303556876013407251036121268069966666687713126997766124267229981813480561360933778307109033035547263062867323607719599674418777819340327199234785655045545664063220563764557603647772355150387852738166444499416631467229728536073777039695761555405267195578647772625214790659230209492550955670744460508786594332667933180720663702793747872983817341680875247650162887626940893539897941476220748881768886576860911816482281715703115146787929317822755202051363714209543236420849409158191616354798689082574467633493531229812581865395125603623334734365544163673070735342807021588075096086082426176029316825629187340610056112699557886329405342323179321414690388590897082894907922243911445907974890649435332313747050189181500974831960437809229128167621511840785903602190702559181349308995730486339156888282953575805183612807712432230643665484582931216809633489359949445605419868551051180024319524660578563365248573942346796773650986267813758631260434037238209137606372550149659387804101532128390076574304817876677007128747600668833373074826225388964624028249859116424638905336716738844676574939032630912977392815589373016529504673283801583046607583560606808100851317436639838781247493881113204810243543315087477408207357712613672503992557695386417051726515346366706257181800000532433826864277319958401268174545999360825942319315495959859725041642571122506458800539737807064784570977418940298113679810475818451372008558658098687763350497447867932519053827598520120881377288113664698937495100565856368148588364583010298605152499128342234604688105559665355207126442900010855938281819903048586510270711749587313630475663880255768802731957598468370585708305860519923474787773051258763692983905377892555167391806136717281393033270071574113178066180510157553893182220411966502651788247635984154483422601838456756214070737186198173191890666592286928968640538353297996360371291175673424034718122551167301568792417801261279364230383502583923688755956847892214507908987451732694339580749141718093479067083409129953680440281784523676989866182655118052460842966462681953644366576336733629569189657317289506150170694421721395990281516572694705247540149152092304699545688138064900087404874584438798821118438921763547643547404307249098940827672415749069983763566835299041009963171714813810729360749016741333039172733830355420843368533790464062710808729836703613572845155647779039858613467015114690528931289772962898019357076476842129573254077995606635767061990635482197483077883307345759249112285243052293704694672565726783447368968631930145411571226551956624752412077110893865903495430962062143343447972169639940543179875050968399975770352792734665119717291418421356708516811704193403274939204202365290493521718411470593318301179738912389662247497142790894328958789090950387692291026911658218477512045614345006054472162037577958363177070558806533336523103824732519584931335689356024620256145436115230491434601150510426853171683383712548790209850303145226047416576716695805396988977410116690916160885728447452453864305733340839563448686526542054656286519376171389683145491274110553820332225314402648484681555430692893186827944611844254850945106593954471925658659895437683887030633843063191232892561156045916628754211455770385733018373448405896594456391315813191669656461979084354673955128638634885436566431638003194002312347903980479405586028863314473356221188272273946056758510320568676220122236463885399034750211226752469289663267504768328636543830315184913440958796639210648609704653132689274972642266941227359033252014828971947934409659628433211767866348386348000322628429115712139071749131327802050020928786096517959011849498272293055996629209705065422332408900190242724308736274313043805306124807130265926924719483353520550655734749690598117548365475157346939512366367325642223673774550168386001289613811609981863815887202441051660208073743726661518210107897739599301328894355251066825463941005446383028304862702947459045111203490679715921061238333687366826902014907479848361167798096037252856620386964126719433419831700898542560296644116119472859782058215060461320788267731868478906872115399544127878496748473687107408045083271658308883135582587909376681977623229734601593916196802890425846976901013154257306053971020007378153115949937066956086732682253844238206196952613169626619337097373668081570256300402487736586849554278531587816649518136082154169892942641270697475764505594708157857792047021297554361762750367713761377769335541372063124909056941265649412341123652514230124679098020984196801647352743919397570569964907798226941891848500686224657777178952499143949427322620675546937496682781408130738070176649078903054345021676039713551920110268181556029661958238828234421605983171731261335098802934764381192692710242032286040914996350215520958697845862128627009640453619853703971629015901428660957812862250000465208976026360235969199703909597754085030183880963346937532024785802339860979734739946051521896260162098490757816540680281816308519994626406321730576052914728088972656418517658748256850496241352020153708088121154329705626741569642221669298016422945878938609710889129170908633365392579065657347751515538358362603559227373409501063280170927485522640935580377502846676623502421869240692216669595369577877255147835417765256116453890804854012259895291360698893201027646784620400792402249602661969566990474812163807699758927076756208819690219586698672847345918465056187228040436670197280931867445319827923269737752647225057301191012786129682014721940759610101395743983757863764052883086422361570339351037251287437642141085401528766873941450396513392490105262994797693367916468535656671639187592026424432077027948046903644697536748309831931278686449842647235867735250188528713110140144726866103342536489327220603214135878857950618646226319507089264477120823848049753543395975569431478765617138786859553275432189758263088369469979209520623335252107426873830255923962925384291875261283632181958131224282678932451171265838568895256655383991196867171770381979616795384823464918731846845563594832301674996631236326293166127294444979646740303418912076030619629641263011269792638129763335207021845727626854310332602022344213523155505234630325139728804188780698543166364403785668771754643746858736114951257021324638383095987140217470174084552751954383993313665134019826843618440256918531493851934421453296955276738747465995833021773233657411990285116145875916243367552206844003921083683378902616451698991163924613647727934605250919933948724526631858524331863233621149976104320037274367695681206367700325611672138854553680785009902636189359878352847783833285971816766379009878027795962179418338533892685449788948262082962885670689603569134269138811160347602170673824478263201559566822573725431576820493612204899622957270168108709934398729727419708819254798435281967469159768929199807438063039761820205675805076763652186124697797566520674438011837218032186591310390955920011306392723000594831412536877030802421396295121072069083302216377938825786760774554545616237851712516300358276524932703895607108177266046252728522680835948538836174632086526788158295203326551456090985758028040985957214194590673022494433160445472853576726330819562875859030340994541870093505576399719516628514737330674400565876157562648052988068973048742012147882885866651107359260111649279625258901433764648334774303583746477112691099699406792640341058162924242358865816730313747270758742840540931432927351906220964706744604757645849513301217235992769018852525024493197923274378871892145051346564532485613732418337650174927032989531646993729887767735008612074131818857922056222964010821458117530654764434338808088387694992947002814733422656045005559222487575536349391690904812695914578889617949769928943533190556158544307219772619590556048951344305104488872230203326070462714425568107915773932242290819271173028759869863964429404346574542559441199846525371372808607905061124319180983430964737642432361919126651692765938163211080438100038735109299891557477278297135060886007725195867046891637760757340763451062767287684180353841220608954067794473188328716251639629537243256069108353299026492857819888192295928527065610961268466526617052896427349596221847047074780906484531513063854960069626071894500657137816496616289807099249496183196436733194922483544397433519090131312435465521019692342384245713939736667628960827752344774515306057663451645544298050739074840815906864253110377567466278059472922944490290389930499531702993643214295133035167579600516717810896082521186315551069613042790154118776851146252589313354006706623969748261824916182334400969176422181550478839632209718349408605052792048116960345061590879030803127941327901652059822363925335518149609669154338620519050904432020528728814978306450440374484775801599356601955389488829211172817926239409723706828251407923991245751682009982923048110335180506611002400058786816816259813219988638889326526540825780371541509291625411798672396521361715584427857001193977749882002815592035232427813653926198435129087159508890253511770938607509598102938779573355379180602631058953275688755341492262377526812902710407654955933985938776912196048162362291627845914905365949530051954947601047846769974986253311726076092045376020537461767583924089432461802145525091658540698971763820114751038616538265177391064220307951124021705293774623233639052183473014506189916629710402272862791788074498018604248117213115429414641503787478445223294422974975977506964666776710146941221570242540343202114266856958943786522010087876201649579380137343575345816644105065483242586475994243207730852744570155344495928551791474922720020814041566571928482864436820563095816108576159968712555935217080391857273369198771702484230979226654948865129118785857595363114849382968960793655263210250469742352267087598204288004862675601785420850926048720839615409281710761686570873233024261491840497457184485084829003915615888617839294606799840204813151752204975206790038298417742378571767564179929115507842508569187903030223192726886159606282913430381874624696915828042894523904029021952294907267225004603571919837756641756157368103208068502770406220009462419641350878132894450924986634507059146093312132799259518584304422626970229702660779127331688833387932859008639729090836328257575917106945682884056367925837201847092249147417960313554455408456499591521337087849494847352854902426334765067641327546693003623407236956062847159090206872336618816270014117585828921733966676511873747158741382872716825708802880993009000391833902824942896168340320983001829045039615271208848064875276596652374945018533760671391810226096325757887592045145595113723757330370954984477361666140271201617007934565707629349194407827167762140067625841505147649199853215236385570002089249827214765642567338947718663196898841217929183916937044079941317783002441494270467597579273309723235740464543618245299675992441511966937585143550980393182130593053754992534258729713836477373973493335814411151121752988634529414956361376082661563880827731296554045273283787128325017549196590941317191714669919434142248227284557001560530618619990002734871862399474679765038343152537152040960810043544621140267422766098179692335845671282556165761273857963621446064447422665587336923076134095902529996316800703093043006033206599408383482582063124179317056123562471042939125561267529153721652409044875608748687282136904610429539357522317517088546913333385498195942136374343377304488470462212707308680695003444444164737884944079288884516689500799133446927087878233522000630020908951081684930871094761764795204661769181997480361607096089775085397492548734324612360849967825585767269976003818370872666930195859467089228422691865839335908942131595221723630907747795683636316100458805143403051035736487401310573676585558065616008067135270611833714834805742948441454030659854235158801612080117072618009572000343088429378769254452961456252439196805340394928042816938451990509639915262196263803969159703275436676302183725044989255642870472916623169452484796916629067952028801590193917663393804288008159808468121666413893981297758226264523025829037617869326625176662303249497942195519776162849596812119977974994756499062447427872747141494776041285475025624924828816821200627393403262564388655567198637080187902912379950374490173441221422427776428030624266391352314125802406127033937115568536639326487691459701196078883804710104957242553572168924137808527008476997143680788141141886344464717142012617942984555153859886010452056825103053674959272844307251175078723558441494027977404974675642593362584224721310466682314808862839443995225887944100707269418590310072651988863422660450177126877187489016353871827910223554060358530200080008685852002933451751229482611736511884904981726847680838769115940974323505821315757408997059309495568048668944153118414865110316242705233453052589200763463800424519835384048990555783445244232043934046102420564202021010137037860426329201605774758289301840213418904167639040998025263372511616008313058446040695821788388546408395531551503253061772992741186383437215824253658510229947678385584314686519017113888700742535597894581135659915742374764316137032376357204014225895861994894629219715412845206114829862520226410437356957952416849951466109181158860503399945215637175145285975413486102099742891780906724368088214551939147726831262183076569983662364937062594458358967586601171261756330713946078108352902430087713228464210171988336391880139573819867138459706091107014617377467351814366793724385128000543210749276813584565340974195687577940234498800260334661172422118138025021458688262899177490501403622837011722444301705694277144443132787628971446875949928239629769790459429231472061384738815903631673733597060162067040575860317623200281447461308699523179686202710818806132322454036177614537908586073149281101114511635030772718270678609761427733298880154552553075277098503818585736691508496401417690480162129122789526832361513720240478899183189790498557002268380670030086277654168994344896152513842146474035419259114670176927773834893432043083614459679022604695676780133544230476677366752637325001977922252305705040822474196895263371441853421887873855428338405093911803232730563736454187936046492815110653148948184787703398417217969913958884224084576439289591131142054048800409751938760870177800659914133759101675293965450815985641052788784075041343636247164420235573084400107936326525328062605461953643507453168213365203781445433339152651496649513138819151612595314589146922824132913853069639884515493802143887994854339676523058177347225264656591280754636748888551375685652533341565868718932224875917241723181212944236541579526369429839055144389204429633604118662133801027651118915260793199936371978861819097697578705872548666659668920905132711762507509164215647705319381472452462662480341359911396908242229490206123330373549767175897957621075907606601589759157607021499901522405817569764529755550139395329744831623711339688209518401377814600389175494238069893072312837241965614201257087572021482317651755045539461891961914396421914478639461318569835252863175678074948973818769975415408553883805270911289591323221220641220747048199324135091282588071750561535597242321961405207112353121776066020965861631778455055747056761637633133044159361460673928418741748663961089831549863433442534885927555886554155960139190184529074370499257680552326889906676593674939979154806059122179671015786914833456372428576296365616308342284192463595996044240181950568093690625130060879500069266232503289638691389926685760826641339582585092691764973694965818546388597004932573817943177388283506423650802787684881043207541758671951199560320013013619975499835196043730098268529045542182560235028444393802767864138698652516237932329734968826881237118914062462638559661478317765259439373087286126822689438028205210729398847348031523833876360260335165466112571208929174126301598885444576455976890924079438655735471634762510449354639069898890773832290637731389493431763782426744036698313709386022037555946453622917799723456565434363213327315111952519281860733907068725330649316319890935439228181412255158846422517335516346917642809738472070920867076892401375476789154738475445100314968904347888375229548806405592361971880649833093721270484857321845981259872005728981417533315794441769176121586494983928913924931651304795643745595452240689649653014128314072280173058939710623502771366720239222564770546701921104061412516470912481020207612608035259541466497130427241248563679471740536303086447694220785209591222571893192913802768714356948128005405351002514033930832769887735850861255416837060665009052080066916209662978706062251927239493548898224354653308457360984022693368122449150270349682266485343320203827959145709856931510671294434947635484346884605251002078801803298062005936217040703795766821636760725471078703287990888713662480687339386900923154447374671143490716552474500627166567051431580509310098778820180174250917572480144003562170951397430951795817399121981826085528270216629399402250126551897760076462877471627089951721619999043113228343867633832586795328743286224787516804657449227265396387717846185006858212138947851768462497350359747312281725744217613617585744058644582192143781039088911387376933000783571770260309929117782376255735479222370271010246479444771806864727063526726598897068689647563136754809717377547592440103965970775360348831380277628253527024401337236416069425433481049954619454601398548894335528572307611790768254241316377246844646750548511400661010446957018196865823040620171296011513577895549700808010590595537770473786708573554325832709915255076379214142360123522052730747634471137273317318864288642637701289450373766294216673947902370791429229140049298958992357400978781719886809529923144897269985147447290747711949797495637490081191180573422483994492007922446935671095849103859621436280911786885550213347959144981623454661245935572155101745215389867973884920338926222626956477571398112893189273860537003383417595293780643096538697698976931106820166100061175780506508100923765928605001913939340786604257150388326618815695635810982863361650454401687448312234585423221643934828384276553676486988350144951754218615770647692202235879267662913732343029176759943820127594658773429983692991402181562664688986711884203756829083943873112672125626516105805324915140440994188021216746280612980488622514534517387847407665006600237013196002352506873298193500038943418173683105809982183368006623890527437335039473378224825366716049633434107977710334910442621297958623415031129996146849238273647095771730036396037605822004462721234231264019591445926481457949771366756286955011301602599743086999247915674487598549529458702114143883756152572025572375831270697569312622831815964096050510261527730701246598056619409655518534951074558104526635266232133104981590059506981282181573174744174387530447733549014516195613125883331925886909372443340580108605370211911844342505726322101187430526863563195067430048817660499251355786184210108143144488600690428727348062826566946765889332024380077004491611736694428459202931631495452076134071000690639081135360354595708934356134641935580362434796692298142277619548218750330033270183809859618359201370987406561221730269188085963668837642438430048312247849451784373833380560411316826224947967564382859757997861916185284426480016555246110999688315736755739176229059671342171293660220560624659275956624153451483337604013277552485751232698826616203362409829240223581264116759920623365683387886331933842736521359314899661317155371018952732905557773925064367952230977243491470842149667735474190489999444316970675931013955605369037850567507310234287698637965788338004595458241382167394206230513865810665453646269943464062761213252575725144569518108360543026665841729023282548874436585535656341830712675547070441275211317151276602862172785766341202429036279756183690359658871284471506567292168073469512815037257331679334302836717189107670843384951611776384168586284426415721661383977349372676082568752405202705226884530524082521739446918123862020617805498970769749111936905233847704931988563637886344806195942745189032045537469443633202010234502226626732691854728476713762591457821102017791974618070489838115991944064513476289282274471245561794824962607140151472413300958049896916472574146759844911268512522244535430436910478756646617023976966849388550177188451237099260311001017512603152422428334599377122658267170251850720373151003654248421723187559435738308641394140154516565090735522980386042448788469102484912827549543030482210284148522734803633303566924069350480971364098061168049901900074430138207899597666110433558308389528740771407163569348502242276707137962811108499299794201522366569009741549553713837639702513684592647675534660909997452707606511218529215623092217077415084036115956631795000904690184732512630366841802520357132896223125399988875828782035434582763990153330722249457306605669944351347010861302234398988579114501756362361702907741453199788174811347865490899474103938450206411040288970827928419376951110299288278508889870780443614508847657472763832028391050817335486596887697135342182449417916844233691846247156682533740112632206904838162807873054583667918588227611647788461342877447128717323759875438396915662507831396573297601236114938832477701495153076677498646368297164044327653959115666285214419414890877280843646681122813844448122150293955335650456954307290049657805688223669406914806616551565597251411326003577309250434263719158998926441229541986082328763761043872887554157485530718352326973843302624350597628042077490820656624340455721758404869433590349207239247136090071624766359699326147836588756090638149335514065030022660168443002147269194973510467520373834064104789357695087369434599797901025688543585194479369803248154269548339852638669210867281841421053013317485731090308553062433879250900815124772967817269102258923719642124837974138533422445751746499359478168420634034675100589741018319904567164906967589999435304170285517286394273151711787232592752271840229797719000925769376673936976815610870689676911438878880333721608209988506623594667808374766623547985072756797888661170017993105519374531887684785732782497204001886545803052980353563412609697194104243244495369257703565448238339042671604420801360953989162476904047085520207703538920693550064506591141505602139996596046483600490871780664164403729834567952250134229210773784413417563807116919657963550619193423448731246951813278995943812855162162420489883776955152715687469119089406807352323951191291408846824173623531497236068441292760590374333953033640338828885694737201658534149205408409161224184163363209302332403807306403128738589861816799420543904352867599071112079113328472144163990247595815143768411682313586714799557935649127496214501382953367330604144848553161729709244243187628252360639903834955042763583225046607110103111758854699443201199460632956856386128694502515747742527992688201494092594148929618110522311065244154704815975772258402890000935833667882116231424957184102135908443640704334595886593686055890499629455769450096069478017092619292566330956518286694331904981077966858924173236451296104058418490763639414566069811921409164651592553928188577705222954564515476090642912755993566873143601341177330415066729878773778102681482452811924884878154347911339207571507920510145952515512085945510773618607188958835882094454239972808923882063801233773035763475406370506149418206311105771980654524647277989898534018896040579656594344781412549737323138004899753323168456400465027542176042978304846629928037546346895073375613737251679516591545622748232821740075967797866109765074421026143922860082030767858830655848921250375231357857801896582793933412642379542179944503899081340488966946038958872094075558238301661078938085975311011587416550278279406682470146289964699883310421961783559417526856936630431078520368236714844684157407125276274142027594306087636694806513885176094864574425501902054897308830460824178072390197674087522774462347294426784496535130805014626282202639345844085291207163691282496528775728266316896156091497415392017392165048935047280724643423693726638452227271607236269455564191504318213052448388826926166626499578311059387980525750461438748011621675177920782744256024530095453764814260332992515846313126520481475153065605246657374833028939997180039903547063926245128281819049385025406221327798404694096511345962067021517946319058183298331416431038111034062476651121772311370500967679964967377978956015871892670432469613501312849797514222215234623033020045052145666822003460560129870025646615947905515680226997783681123222573571006566507734267567180920215900506964859741396710667114770617647572399509024018030649490302345252174283809914798824832039265826627726255384034941982308629064825819956972334278827355061709026901181621557632269522246062665112185523945227263535608672819124292948548947324381974437657357306790760224858642559555962810477065597924120702886481639437118834125420082324577229102562676407906618271219192466934955852507822823575005209156172194295179831458179282296546106331608830546265758592792442510658930205854222064510421272296997418884232983978548759907887080957978364742977682601972485623366246685725111770477950671813873423715283190166149887555008333299443256899263108216440776695165492448233772648936325177480403602391895575548306537338356787413468180586268339325208080801156600197364700478481690249823587062228588462754265372905043031088424594363180136131886576033453721209529381404874199572923184199367550095534638779974192698874346190667375251596045680576363364964657629286580299196661692968852560891716943353281102361678985539169516264690066714453388253490017801100613234413253429386470449429244571209993850220095697221371973943728224040299820598123906575608516452406060170831334294686505944938340429751187482127981809466299236836805529335300301482149282326162720094565543446843562920793285971047390772953890903618894778963598721486976550857484638575833912247823240331327062523020188302529688878575800844487580482269741161379367733283205534844755017025153287166914596014176490018744917670402606924770985790599269519515535539377788129632403537082115651038305844725726175362833068539087399620079602354394702717083965937398024429364024613427030101009433646510039960137356301923912924661712475675270740750050119475380517222798554903136491861311908454564427745433463281860535677016819302353743562898865506900785838127918727093689523641568003979569009413844835538265725237111020184454512838416158629560951273212216781038180497213935249981852393066954554754713800359827286642336346623964102989346030811867680330769639629804073081211822212159666769034412007069850600946736292739581587808324363079219809554072698019005373049374602166962418177042584942797053536277014747251466585814750317290973246859491985995168655828109892048702567699681131553864048960375077243067787326671099950972622098229481600006351554906127896583568450325251358117227747379224227059482838842044297603497243614111528212610463635482242042154019254158706759423060983040616241804988579965983627661301940055721285705398625053868957750717689976046670973381473884376889573097074469401606578016251754631251829140159001048912069562914076061670798941437799133350862056823453120384040240879597242809821427639276318939155450252718368917483086043242443052387674013583802476171359934339890506258952800999786544658302931194794798608921325153189032956233877402530091122679973196437465241475034008101494142604328784321186478097255098648057092727723973022782807775132774323453735656027429054223834130203146316271879007960693774837580545949084607251560713244365694053194977887451843296717177864638293016925771272807590216323159112427443648588652185760013993066122379522763499273543789862162838909937657085898223487742060983407078657921615426225212720409195585291225205460557081891519348461860348063788214701003346069826173619938867168088154462240541726959964758449267797382743114310601795876946724605763401610250123862698394587521890553355818069648877266355237353071582042766854205166959954165612635620772976882647159355766471352044626079844691192178413676144645020892029341734105550627651881405362017242137129813173458994048939600680278072577968456522345803879897937195197821716513618720596669514815344385007451494645606838628924934824908660787301299668619137120562433751434445975304914223906927544734686111477515263309280540051537589924104778788935692285145448563095273512969033249579471261193889654632178226953076142201519449500907788000481712756584683007173994460931760741935036887518249645220860147757114031385923383738227084117284229943050921399707594362866317993953451440844475636049784028439160258692623836677955945846845106124091942640121447523146077064382915816213422724650714736061615803748402656523701682957054710344218000132556175590190042332160237928363592886045438433972477539496789739652720128771324923594287608086405066009833229853521858252464054077120979378878499977787850167628375855785801664449999547456988178884537649565265991600358781399246768868963082355212773350006985441785590313143556911803601125237772871499111770257960697630858138837618299723805217596961102911912728610167551531992965238879005413729331157656147131711414457936627001168032155185399554747025194516842441443928026092962544860287932951358312010382580327587741385948354335791522364988581137089385521848419481234828153925249019930090073233292872169851739918343085603307702305095902216338428816027628852658895983516411698293181785167346504697919394764297052397762744533890366789060034197847289421593167805954589304133616386189241766738455380636270646316230721053607949130573075670297348847750616855098414587914848834178994910909159006861104865747191889634424764498073301277469935099077493709927239295300028343911975092302382824898826822663434629586014524619068842178429332279625001844896634022834151796837597925216361736400490705224336509367689303852985418255956688992968946041686607941480498278141676106500894223092042077565017663691201092884283795139576518985584294121906186541996904504635582981269603366451561034522225007712370673493479887293235925298622054071758739394847341038516898346619442032530504536119405672256118696942596458361885329093954628340106359353039554806542145752295767653209238543743459423508499062307877555661041202213157821595654372252389057883798223738480318690257852726182794558749179515262943045728744208935824917310995519937861830835827546753429569760743860153023837528660591578311114017471325916190873927803899983165785438915187798310014639576671234283578193635293395216808464550439043161022731513052501644420486243463129823237793514265124094941317308907458164785863336345387258798232581383959102880671347226117578215864340368915849889891226913543908530855243478995552876704273925054067039976622741359693866856723103256356732350395304902897996863074373256783200967334844777025789007385327644749558195875575007375969245025462995380305258873775770254369295050232946659183349650481630722314627641265386155659238614574983810929084616084928356788977386668921295976462926173793155676258533597251261200133083879356523049269928098443034005180065991749709993548818941196723161698742320838482620047791508472358832049941054924122427236980607434783587941646954824563534573036174674304525583342904983796257140255414440668371230802093388199061731902992401692425070924791417053152481178938630197718197751357274967277062065283059172987500168247239958766601148212533748849223753327619220299766084286597357638035467161687090053833868483574020589640246274196019668258863937322554304874686310649305315231043350371103451418337740718484813554368408898640527556880763391207055977610847195877505368267381926528811265562187030481351504838501242030729464550064963763820974756558646338084121506598826516993225212285626418710864653491746896904735796307961643479222612375355420515013741087577201288843377493684812864676004145248724666891168972507205949477063952661884662194449816009703971888250030457292478244897176873498826074597431907706137166026701066017150495512686669761115451913438016710036492762544850440987897012805908472791047856368382808434728991767725586961302732435104345047550308192321097884093852222177919929492648329505286273265284567762510471795291026889322936468645389417534427231309837596264567696489176734949444035167304609479807000018352941391807119763440873818965575392822295857952980990707758398097313742724322080409165581025527849798048313405552013573972296963064193042558801669642367558080180765553470014260222750845089029994056312063179503647124182471819787176838522182031981332579527566350924591048763480378916110183312122050166078795042701581805641867847878203837177274083928370138827912799479853368349710521594714657095928839696464951408787039747143820795418099103477495044887637271027147017808044123976765208459366386374070479794628910019756171965331319368102626335628868866938132590992570295603448507430052335015109952010505871322620749602190453179582026988183275931167553117880029401290211527512670777870659644827964516307214963721785500684196807214182457176487694065825078630572126451342617951987440466447903658962404989511271643684781935442065483537730597583205978632323283590874556648959859788115642248446831685760860429559121904715509917454592756383855244993329979713131799677971512899830192712480340226772188007338893789984536557651943638947061661569556778973257895685642390705551487243043186012907102489042517976307012402146847631676615219807841734990008621981858343608055652482472378298342948510155351537188209246766018300615518701179350909318680700608972002427640930796874740291475669581600564185779952363211386584909795654578019867052075129968111576767168032705616719990570604083745782995653364517958125128060154458223714348277455480826162317977701183487184671917136058297537800178696221604659461802029628783639672092909090255730139957464531074405243576019042864478422177710964532312960152055860585350077959320026981069082886438029051194177735053264001249744651371304369403093662894049678533244557515832070328705387402967654618253773872259130388157197080345603892240121206337468741582316298594225626627912220590441256740688493892062107016802937473733959531303057782725565241843285357102240965670290230578467826298256073645606491902050454154615012276371966244819396469407619003414596596613150532219812050058542432690609876837282452291877232951503906930600788864621264101161043314896214345218708508673504357337065075408335064955681315733692017488438901992893908730342877762042106700328655903334744023901373282594767002444287448573941202497166117639987936389606364622533773179742001566322739817374015820844529418457253732801234487474008872135615411249230771172535042682862182196735882102926403868877299939244299731927523675147339301088093785804766584587981983832368556246492453055703809941841694595909808630729399649251198097062271713267923007290723927385471901001606939900191402123963708525183241311750302066353327273956976463887498375803616373490360816181458086666436297712930662245660018134170418970642938646999456707671048814973370556981748807246250091058167694867704333666766874023618519964511506346708596607323352471591476088286541545176996186000481852137875578364513045529301280045657074437053919617764932461659110144709124058489923131173060529232902219066553896046526799866460571939771855976873786635455753566802566451924511495822919239512234476236334082577799226074576134460723841449045242159576629746237416695221504308103299915473762900929852187863743718828397245898823411416094755131420084566019609081178039609035922737322729263128291545823136409581277029953257337156996426839945056556379802448700230309227608590075235382522231798602300741495750111750654851739165752141967519037817369602029236026909286017628828229302530167408919652609911291001551723695287499573644146276363347564239403197103645593051884149369732754633342031939782447153917837147069773883689530550384110126803577632728739555842821922517832071421780543820795580580880083195068634482438354695059519910399559885476311386470227851203890411801798352976720546274278794336015117335889017113153115814846120100429826421370509921843993985683949385644142428150900903516174096383754520820650639203059102737890422809256730604999655991678228535400853890128277925376801605730238426778633066585919020676255879352602605589071443973229421076604145989537955363105767739463287378832948028889070955592613996341000521784382975711392562640911283089843642537593224165988561461153296125019719057413302825096118865096053405405715089372531695346876966317801320236985987963361459194287819274326995215505850534321894689872513945492726176121344002743885915259464907613442708009132720557970865815030733381281051765429267433251748805444669554150123345260826779587310467475951016274702952665346694730249436496226136519402777206183690462628259540175641288672975893420823925187595937863009649871754477982843422877960733275974897201430774180091960181283508221550352640469099088781911831168389070679704642504999179968408630091828177468157815160201349576544469421730133232118710759134014927157927131031296705336222120186006636113951892151468945073791787352474292295774208250633899400452379852140016036082528574727957968079476269234225550200551122307877262550870063004894016131034329314754363513590078009409979694186248174521741843611109774663048159147424662446873754659126133681811660506054460980703289064086046115832552863741026691685183633602464921182324941177942840954488403006648222716720434580941254416763240455269408893303879702113942417910531792841859543100746271887143175763127884127290217782592134977414724464570193626131460833656078418323311099185776408856763521244710183275391686886134194219942053948860876976401254140282677288597820644835431214755023096701690795509273331606774503288065902930653885420709003513604144817316323449415737519117144503291121128976015835698716006206224875336901283672089570886895701623068271696025426592599765131740060220131288817788454021790304982336412750101235436655794626927469977940540582678051875182287066255580481109123274132858427965514069615301507310148837897218708793005491042852220917211921174158391237334319720566237856193575060531482140956042385322090545825426190510111992513535357517133632810788395615099641184850866704912598087717349015165817903609444633034980934055031643718863106103302646356794571938944929925243454872408814260841467701952255826324991963171216184985482577738255658129870924239436109900294462774080258656163234390235848008870075001747647322797112530529573037773823299709889568849040044495659571281668826584273322426367099291719118876251420289315252174496584824592283673942860083671799715411095190844656903147078730487462372114862958783736497501924757583747152475193106809684737047495374205134572032081468068693861106512917788898349051879534393979941507533669230040124905268785336444066562640923786493336179770782883248348331384739638709473071383359438685362119545951535283013277419708046529069706838595732046857694662835591962277039845479401623205183171378020226494319886278795004860436092844469787127843213571428345708425990872056617621632803756495501020299245228343176439671620704054037053749533332829524214862960538034305781405556277738018209984571469992531112241939620829891882840592131310889275432756544018635995261540421333540365154717371193217076577572365261661655646971970828012631862876743634422774898566788538024342248398278327894417967559590033455778850594539571679216094550127616052478822126124232938020397467407122368890429844712086312768369737062469953756585708581678497737548009615869515969571254667073090568844349055284062777307845983146826214625941167980591113447978404247669303593251131235375911405879208877557015845134798885339400102520187385247095308020661367454293826135900889211372653388414805948954503335903723687622466245199830884726225989014668601453580038912124909701087571385526790884032681361586114184524126817604578831571903886826573044622477137624642210164724176405915681187004986121546092566200624785855734211742062736545565297972672879486543689193752466932646020025856991358771194060596906528756818868598218151195294073836447557583019088406406091635603190858269775185850059300476014400486985108828437599768042654030493277443776753227464011127017757424452572158846809841568995670231993153220888398679549134906599088778839771216055306158162492190170019726746337804143138171157996280241001876047194798887849548867416609263280298028076939352020187793324421015393176012652340958308980372060905471190196736238289216358819750760028017403211422404687985677209409223326761446703464756413475760595939139283103661478816680477939304180435168717494227733932064365161056540595751690835463331289805062329606110599921822889202990926756037104723068468737732326167393399136267278726090515682068046159168637520527705849131715222009685131733776310187799570793569880213566968199830972034498915689682172598708817538013025922393904134743023668363428631982562171060573480885556489861138486100395479748041017524588278676971701740614225569165351400686975716821121827531398601289709836986488093542313157937214329865578963696643683217512559031437263686145284274226682110272863636302322878835572435430102856274477750089231454283028088977008352034626195654371819020868446193545125376181058746381556805982237109507034983184554942378132888657500262906900914076054185957653962308760448754425026862367399651285766285571059555493160095858535843863492506098063120492089643540501083621870637429414062214300290161897510078505379813868640625993602444036787054471293737059352436107409165783882309043263710506576236500298195916164830891154890778099817423957081686538672359391073733911135794420584395403701733249599322802238239810575493798385373431761114316728967972931741066451860009534114180612168300565315061680165576768012342317680265121305432616032068146791775212524974080949218635937359712288050512823948747208433879738439768149412952197098549419002909440796055425510328731628255251552309077369772548404207057868530145026738009456380407645366695951185502629704436507477937944572370967544787347915620225574136634177838950111057334975839536385303328966873799142813517379646340515790240855729573131664256995925347244556091443625329546015378280154096272865204487564112818352039771184887669020028465109570065878742265875487377234093970691253223017335941708377981511857407761103601370690883159646012772873637339812809249362812590313066305364705229112475354741691361113856549348949713251174654841462048178883090522323798179172014853394928719640487491046046544490198344623574500990173707104599463537454206372236936823435778594551431469476558232828734725298728528569451036673329951704859344629154959685138194211352679143893120804657167274590336382643760608902330167113543460090646090017767503740198535205621698385803571131265542308072199217657028665651543458914889642051946824875470035626669402274809560988103095339700713933426321063161273057427179992160946115668126600466480703914726963493539287848689594181891702935754100204224144976920396050751506207904914816768277183659657694761504317512426279587508227192860418178380113705821509021235229349338880096796994921288618011392338749373197467859139829257083095103516849024842751621294512246353847459356713272087237004597956733280817729112786150448035761789991062057005124633589240437364938190569329942888077760632987962959014680319650737911280788014352524719665710931205749247167117344354659883849132713870234096129240752422335131107686549877409893670613060013495031599147773104224429092450528572310615693332431533929294680788764811791686477171799239871018657865590167209765018837110044904846142888470080144876396418335828957737586972923150876893500642280218556035672705523633506669199801555877850108767472115380774867073152733672730692541828987603772131094567243968472326189268148410450494708064792834796910770026931804864035086961754089368589654618039925255923310247800909793160445462475045224543855229191338247177303530334058558614622898272333261547673353630254234189038586905843759583421650737743872339120084369989747109329884633932736902054177074475250881307218494400534401293927366073484650320288137838968878229672620698227278985253348728825178013427719703461151550760340122987890484973881093036217431017366224651385150235550518281672924205908995773010293031241907317313735773593300465284752257747687941873613607045940878681021870938881242556794006855600690775306452408125949854843979859328036200536560278930545749102923266397377567470706858084413239838163928379934680926070555703419095546984055761452909661936696044169039071466294565217083450249059899794518967611941961023473518560301906717847500049811070655996104384786164621142519478779416291325974960573879816143123221653490692507912736409867532221346733730898725303095891466133990772180789848611310073511989489447762979664017340043516898755556006061757896553653465912044149637540257698729095288773804291510527454139145515166466293090746458676588394616059319152959757225525823348884067162652112056616320872029191185742737995682138866057669347166357693477079512455036483266562698580402470349582870825295629720833810547576322290366151223853553808470935203028355059234284115165270354262006479695279631741100683917904386505577738604708198644447270237439302653805086181840054917071160531034944580892216978949715211590421426989779434129799038263628645210370708516693759449255561922148978297499652244967421999672107717784270031890030000910189049427187386964390616097214269756710494853370045495165053328793998606525708265503444814459421708018917561855081341162266500466817045183268391229556026495952936359858961176724929537319143563583501637901827741365346595779486990376492893303491663541962975921904011507973292903041234364107476859183853067879515913899537514177121568228400002200000681907937755168808148383381783924720456412052814307890299044155117730771494918274428349474745074625208473282351011605983147565367294821979573910775965555232663521264059190396871195313850265648061198543336490017143005041862457980023836278307474535401936684863449765960576749766553315743948287588348039354874096122327584119457310879428415538370972681426057077339413173652392364796785237660574252257876811801936657445765606191509884267986395643045297338780472582096858397857332836672506124709893881487554418917024195583859670736147585697323626031017987952394728427022573668562729463238406394671425479220206059424602263009900168180554082545259577787558643242086110868626523874954961403793932548445551852341567402787379574589644780258754893202208811051006175578144770948686690755897551284929118983708878773081152335992981024984042616113579289730389918336319603543834867521582893482597893069289295300555875078187807773526459027490811064368963631695776143166232601100102032251389128345557729215220199977896266312021375483683065146627516855627552572326201929246953529352252255097835094370024301429737033827570009003756952831075470905441352563578808712369479699938881434478127647365005254961664665441134625813760964273066435943455915000898697300322828501541750825820867433546997354481315556782677542386741187597145056307067634974059204453929204485267662409351705840755571798115950287116998030651741872024980901256415311484959772259756063728234475273799685161529137500960881622394750742017216660194789655339385340590682442609422804469094389326484742809313268319408637204677864209558193861628123996275573973110669974849392025497919712255549984004873411054781034262282772517305906433925887932534610990638612993826301334003090485323622290543467987250114791759813234618805077904763648196414154574050661967690941004178844379939643786030715956807625675492499147429092252986893037309686372154394935239832482009997569633022590942086923560961227924687853682845351535780184727106454645990097504701004402240351083433147542670244453309403473103535434326287099588296344671310660820742206395328146140151368981515308028780159269714440593579655791769653012904686013248481142713659602650937650805338334964161690794723562853592273903575392437451223421298642345043622090308010361617896292994145489830898796047295455394236380128647035068489342049841638331644770666146648013264237285425450014422227583568298521036830713303838467428570972586029543159992834164135648804918697545173234644587079886807854941665921518438822480589947256720924202675177860291506060609088304000683719306663260605160900682777769460362968729817409780581927875373190976128506038984696244348455791298491298354752543543827839098693293684108423982183570369590684098131817891397029449758745303201583918642125533321906887920385264362170115003037809019774474764672962177804881912582673707649322552862975188712233958191075278753052026891824193535210386037000398939351712546831688935624525052667802270605861394106061872094333934635534976707307881512737018940129040521597148148538756491288311366164813628132231329781083998707423024755824716507626667632274312722578038025895491337811118726160419067043800646511761912514763394747800363847022486721288117678340402286010546900645076193197251574779623728451690015490399103067192580830532648287467726785705825052899684246604655426994680845896447441291679421185902437181563365700764991316652089495264030368558535429512420152969147625813942563379165167091720300373615471862001253917542938034906600715797376552210554576950522952709720346148310642483653350306147896666039032115145913211200872533371045238350459168840580901085225821606147144495419089109599071717553899375528377652342024912999329165979279032200853361388629639529970283665130773725133370448350444235610990210091392346620094125411964290507864671342766022755726218194341703117241590023780772906429776734316911966119434281694060882925014188559045272654566011004589124540607899576079069244010828978872635089844127783959042879249784378351234476758076581551095857388634355877740916971027279176340069352814407615604634760300809516456927471365121873355240386406142059810614128211616876964699537372678698677888754476818460291689985187085054405638463182235492262813112542666385106017265756463574484356097847458212850894281852947555963326247686645740038005714920922402078739874181429200624279940474047505306928619484511537433414029825441991336596620198246686068618624087962517720475655184938019548287632204298054438547630856218402776272874287313875947775747552635637562665471203425526604292664334290443100988416790307865529438278187058009192763250757634218711751239777838671181166742902405900961000298784093269757611034341629432681507779123804058416559633975022434089099969348069095541132062244309828597577424844286955757149230678103537535465328732814039396017766891399309072421388342639194291445275888388307703723029837418177291897736284753810540791933049603235554553402835346822959955879569951249754423042335046591309377905063009636853987572247022537549021686753694794217665705876943554516831642873982160149811423537371139661617906839785660675470914122773875673431450067526050775491090633139488601214753855455015023139944018141386667687265882446413037918273532840667356449850809608130806670057387307814071898262833542665168477107805114272908353539853576809379284396218790200340313685756809310190570572512046289639939900051411320069184655816535105142822356589823406264538089271153333537235728704821460314734765755253297780061601816004257769781949317185329458094205287269215726725625081535600405732931192288917038339998307878325296701222372282476187445292609878321565882680877021180327499678316485072723444214651051272814571364856693203753285396996135397115293968511637323852735515495879910942633593106680240151545467938740470952708009618856248006118837544783032415921577509204286369184142142471008612988412988269189187164161297434872033210606019509431352823372077243705171255160419801798713110601108267713000527462242363726013595506232031668454537037446991021944070272433618889520122586690928962896427082257474991521651900891353897479712893330189999612820234411431906162604329573325792416644546797644165014357745909010030596446260017125828668864250027599760221719672387105185139427031918959637156279781383399430028626780642149208136835201103047744423748072582574407670482393125267720394871084221498357389546023768337812660380115396024093798011168192174687928439455828657695762596046303649620503191787067612945360320005213065433362691261405844842371813060537936038215859269171886898308512806992929001973456514817580311212949068431440062725202259294413050051786004710291348892834748996511316205889708483463063188624584189040637408718917162303315323115312657827304965074197204415785981350332927047790820223979957274843420639745687144116069287482279019123898013702921844413395918334650717018281430988857685998339813905709778480387315882534031668091926293067181218294412532134578934263843707297518689068883578934815836250693651527634667261819764183096848385702775203124709957817039832835696034830081933962823223492206979559457170029947026885243828352133886155922146266609781832884813503198482331619798369346628299133731129006497944018793700857698382115562100920534432201215594104698957637921632830644124482988841044286370618392817823962470845318867858977078130807901047848875776585586349694088110802539165628888332740976857451715651067899952475890284231293383564720590206721382317580576212949411977510663472001163982189553927550665769663270786183579351538252155911507573483117359179987890844069801495174916150443970897199432058435252260161266411191269177742726440090690189603580539828451085951563868065950354197642854438498672303321106243512127659604157925664809485310914048621385957498793467224457064112265765056045326260068649559481793271287874957221533364583364154878987044324863899552659423885328339031324132063129001373639696898380521552610467610861261795070255226994983150383685635006885612599710100811690822333285038390233203724697601180730877824702712714205196095294918449880203283142170301854654433695462285957901189361243790045201152239618855583375460193790568963862944263459813628244232929306734695408771827225558824915289820186213311770503797190346058954980856964309375079348199632229829923883361869684646895653925597349850852653040387443348296802827276681118861655642924541935779060411659759813482698610552173362390893923788883205240631011073464796495880622485914288922743360696405331751903710844595726845403009563964735672243886856687368952945733125711543250657121995388572592846360977025564050674003143238512720279149101978120721001211504426574358136719412316948654949889558723205444722975894011777412502460885193966888346579372904323229054042150662284385263672777680586739509691584796818689913759263481248767762816504493717204353150264980128544350058103753142392348749429198862832044476830049520812736636211644991977741118986445392281489120466351321923425359665881630023921004101529267647093571584044055178786132857796409913008644476744970603898869888575150058777514980203121628977940013082078506120545264724734000421460339359596140106683130543581372713264707993460070065443177846180836001745585077572325630300457207088267896072052834062036102099697074345662529019267425916145937215327715971196218905717947201437236251051787312734333411146731378675760284387002901726104708677749401226804503792396449028173371961532314664464373156521468150070159684617749778719411665447162008143171209625167201771673258337707931440529118454862227115719436115491532034896719602186735746123430225939599591053270225349685559055590577499473623848973996501301137795800348378602200040650406005823200028981970424758028001983224726661731675056381359952683944716679379843097008967420418115774910712660175474519311936754277427829912037940856951216718370456998685834280995137494598251099788598683405766112350454902195469444451780416491535448475654479387494482654078429277890602377434422464408200227669908920897547121517683418301630312326889872993780601575954989131275668487838085453369762164347638790020200044448921544218203510795981924913929968782095102356979105982785776231885036705560618770210109697894580450673747200426187495279067101524731146425974074357646896701804166428866551892355173397086173528238804436919324929134156291137947368101029905175937171942397609759392803163509831695740353400025696133871098583218479099678737489777397440412066363624696161301892490853190777100631058327239173479458506266148913856031273199476674107001200048077725771817894821994115471476877165885108309509980094792088416335732774377337136883861713809019167499423026985559559669435798330023690744363949279670313202101952201843110280646163331634879930493864763304283628795106108636749660467717716884012647818793581038588048654689978347019249148997653551580666312515372345345250014495443115558265884515788006816971366213661440232071065324778055845494959136984046798888781679953786874652903106701339256052570139089994110849762197352732424114673192902185635621564419412711509235926390437645009576651482037938015842511714636917106052250121346541509770555886218459451063279068359919180049683402307218790309661937673420207562521113710040014420703600135269033450671207440757561924428535459007038587815102851627733371534661817029325106241472236406974525877229198645024218207087577871511037492676990122764336234692527391235816647428458108482725855878289066620667368968839662064852289165156462149607250033763630848934903586162009030148560867111832731540996462788231741959399258383981264879780004986254966817020084192223368940495916093766756299284013459370299030015432162259455925700428165303874242275311183580502782250445477294518479537544389483427613669922287920721342231303277018684716662593087750933286443250731011702345032653221962011798009727891447494608505234182570146674903977948254809606664294339334192537534157051279018784639518217890136643643297434998973030718932279034073607020014786067372574015142566460398153030876464454202838985314033729461384223843688988460760678752991187399214617755071082354203480854042769857383149134170379458804321930884559260946760771306766327439885348339859788716600008087031708663245149954031849860375375082211642413172311748736766825528483243161689212222541006975196330606060607434812715178959086659909818904325840730305251811476048326833911120319672651928487514613904407395662491716289638178081918697203983944363201604473521722988185476813677515592850044845974257090175727663599800059077652133673301724371557613952881153910341354506884255739466477071953839309787109826747902488075055290260332114693112961631160874030636693927194085602732718714115007610219882923369132860343430647157971812110442267103887860779408693990669077468074200065795586948971233214846049482842681857888189267923565158626033823305858676747975865390650394446827779198453886792930524632662663148494830003671483920294009155709839704070122170830737764078356938034944112882432633145651923053616284529741333455655036601029264649226515203764388455690515093003619760704862382318910697834277849608352224899932058243100340921893514839526373273577766398330898073095846085413115596632432091397512312652644745560219524761720115385171313637364786613640969244263710566967503621936044395359752024874352968918039206881384471490931321887613725805693289204273923039496596591007451175962603628625713313896807432082341604495592248930064583978471465855564859456380361676975064709031011402164916083761049897630562387247573697371768765426751176975793345871849757441227452431068895177394445467952370042751422591383882234730124303665446332631797279583766384462011237917693959067750730486119053581920107773289980024021608419191312557226026073224612142791540613415744014568098869995332096447781886797354820680719081792804443539882820170562885321339121317386127085722647084368178466249196098227323055090983939061382794948555716530644368141447413226245280483515709433074449578662708703210982345277179193909071012764342685445761781395397010811994836422358017011934183413323331840572252284031420394205209909224457383501709993695231091873637210755404441602471194805869576226579516113671402495408951382847593340588831939827617647995828690712757829777331303607607823483108088185662330656647416850271697218344861545548611289787279867987936826112832811358405593357544969407101265120473207581787510948121407973828786644699133045436181300516160295785865225260374526438868133262307402860105963845683825694300159100920558092257861640447727084487779613676323256900350076608219240645017262247545718498262142541945804805449358583929152756175514638663350336317586163996895986785677380082283452108559893491896730047569977809453487590765289713703123463852641422299978927732015166156558148902682109456343884813154935655878951131927681398845651109213010479300587102924226363952601375867807917412537481095831029120405560435644860680570420602983578614395286543992488954755268642614002655035089962166102543222766559476065652823563703660499079476378215436773137969299579503170873973136877541708496226485476641092128044346221419236847610823211177468709407729711275756157499449175354195526844962912285432953244451214421640443076455542526997537378524726334061292690643478235959427050746197031081164518490849195222020071861835707458730705965720196532820888881190293295767442767368281297587368133003272847613187468647078953499723826796565046689126153838879602130329922865285260704729180450819944860769859566430040832478881466604298724120540249490070814920675653621145778067805831951288470920764973934451402974365456335446540478749647548276308772997185816503806233911798038066498192724240913697451167526745258343921989884204697013901225971982356364100439743901025826274467883652219381283770428612464282081531646096085141313071000004668050183009548247754608460848670467716569964815384229507617926184855087213899733209172298786017894598387036396069301012121767355334957108620113881710463296405580761705254941207178359679476351217580827260986663531748318419229243437710175951605938925970136732761818962566368684419510794065242066306981416757100575823971458899171287175228157115620235614560659350234963408121310026838760703453302227375326760765376047818320358981988838398607709072259761320344207120738799280016782216727616235203350003189586076231637934418570657179155007182111628886707071270243056883878693352084674718021017587779074511360449697884692115868013492231522688919104747939434658380912080968697118679076153058830605163309703118800144011752282927890567638793464788174247296248064440330045206180245147623739789020097602425101023324187171788090461140294913526164126743078487056096991580607257476332048233381028008520264758141458901466306270997758221396667561776070414960165239263107828140801940562405179775124511837932444522292843161768942966778966710204279510702659042464060023964482018587699028268047954202405400857541815847336239451991321686139674861684793479686704434002474089780817580828804578997328487698828950269505868156180292387742595537923022671288650961706935689425447611096903190724042158585638234517208688430834490675704424048982306854164387607795526223254970150619692130901808962388923228107289701104550193259519033130241961381932482473473620090328736291269522144031798762517851441302728911965504323489581708313462916555135195255496751741472593425314688869311817629985997804579413062169842745206380386256078603944255435961569337074050215229961311298712051003437792519450483249371691039303297403315331347715107366941026296701954867273517455350877616423457008743946216185490657433598504774759966880409361997984637454522069492754753067058651204046630057384907083266590064039011597223928183372865898053874392798871249158361100841629291547996382161630250350836062696815021482899335704425866157690645550784137803058575599303702852100031151975802991563146318412774587556107849992210543404315097175293068563448187157766017486733872226236638464679766368924894976731818521540227199514878437874185832169797392471748150171321638617559286524002314301709812615757387463494060506015240214309782319186465271394272638044603525836749289449239390097423320605134983528710529773513015575859132207311622511192971533826964034611732834142896514549489363165203171701914132752460356550528428263758291979042302363910799731568083035983311977976452378027684660491310888700734623556526886906662957311601689411550488625754224257791785399476458667589471209318842610542429457000125487046914095381630776257151379510148208700977950524679337197259097343457401285479056821570985376783186632262844011057350958601117233423275492961493381529531275606762649502165225236129400002979382233496256794514531636495574834260825702413294179191148476179851516389472285613330583344059411020500747602716711696301350624177022883435139231230574050487875462565378846078295955671472071683864624144529896127382890130995666595151992092359950877779088520158442053350464057495915814835550785510274410476878380572041491072939768165288984182170629679813557072939848327669834893271351800322643079858690730163349128903196777387397664301263038178363895414570326338136053489803726944160442198376586843353270372742259726670050900337782033726298716401472500972209266223475607802220675913540635279361218367090046332039431706697766610258105387614818619124976094194777183880654165138103936678998629368816355886291604854040060664480585565503580157871066418902294647847844511123568637415349240780698973426574970240769011836916745190151192834691763698863837319620965387449457361404727968860021922984633203754795798048180211074457040412795731344173232635032118833661114320117519759598947673969462881069212883919312494737980529602963235415257929038152069648767066675271261109799214502512886129837469825143962226304927560940595619021917800978102582465676387623977373005522562938344502768310125332879217446043388543895352233738243346763555044439662572559339257552049660715795853745466897401531323726908930367321994118192414089657910911090721347822295495442070939248330856692000150948380171080174713547812263456557375100474774966422472147408856733500955435018305776032727385145655061012997219454726706228859690158280387535296070467998134150986263364635278674372938958719049288379148180882212754776036901072543651800096082631730684957553756206882356678993574705897790827390510146500274925228097618914294570843996894788308509258776513372238237426170571634568043973038110865671093345464416073873046884038836923049777279785189846182994686390665744510904439495216732604208207031370828055102088890416750956441291043805311452369028317409977243389632144118102625332597426760538635823325360468882436783189258379708339242721439915179041898764843324083567433639201996837808904215197048216564131014613851798350421417253979391045353569770703171957789089305081420838592181646959301328397745431812267050350315244431378124469319815997615486220994669272882472160116332456603697502916636847934392647409603106878408143117309110370655986256376972983396429746324825956682884859339289532794483179630234498617353596922812596369670155183234644109960505512661781762819280395045407877858154750717299214491175412403090950507373013673517216991005427731096822887935531882359677496338132235087806322019434426249968323591973711458510905731815655643266397151312198607225410412993518512957058782174629327245880123740996070983911340517459375960293196887050321576791031426918384070484021896551334186056881970118095289457576771482046091534478418168468438847482711337985033120822628111171378964597879515399085658487874172039149055878773003842077296386463958561944541990623139091043990117410550968868700806770846022101606318101067287030620458503587238124662489364088764100228651993403515749609757098824645953107250281905720560086237240806876709274075757082326265284569552110182795625325393705613037110406321078993791207835027340070869435148349431167046535087485237488251571599427604101743186165170384975190271704356575095920309829928859222689657489296917928776161412902045983337528618584498764832894323910177658636386604330724413300644262823552730107061858245908126633736083459493251422632308750583818061857595222504166988811513771615921959615098089907998644229253217885997906967404638719902238114696992754799350794335730547189104079559537201378076293022583006327142114097753510748251846887305659389785028002832905703506085717125737122913705886363310500238147733036328002543943781144724165419205451869688150055069536089533197569684755963485520653834050117769352852685423537152067269874402176051868480948896103506317968543783404438810806277889869102648790059234443541717167200322969419650163825522412182993933791035503676001809360836819295502302987463260743072601167000248613399341016829336303706001674146984803201112853553389998745468814808573379128175794159937224866952270185665752551697665782447037415364772833365706707511135555840953734238169439024126509271192742939624511522632517884993766934598977000338343026710600297285088760242296705586012788358187647006585508864198504792117763345001114350302120087513514322348984799886458773469727342506475938423940445874804864246340811672931280955224319927700472778265777736491745091797428429876716173436406869599161993975110730865745115868900773481684522793823217863302482390497371879336193087362983388877897826465330786065236845624961597217109847770033732663020554093400567675718501830241948730145268444460429367117563177978799054357259273059255073755751555528672831097406075393956099931360439949378067220111543230950888511011945293273282715762763355213667346838030051415550639783021921084757201890024444681865035635751520040688707325992780181474048291408048124187195630512736434766514968450844448430918294234206205143771472160221770427664572168153513493353870722502886908567819152270976031981212638421287327377125322084885418536704818278056837489954513868049276254850116419539795509582306234142959440778522905633615693103217045312766638433868406921417810232860864335657623454189926939700583819758251581014416248101987886597331105925029822036098784196207483097869203914828484617253127260078615290915080196596399909675388952264868954091921037664198900281851696639398182835682348351609792456140137962319716496022314502518685511859415316521634655480584473514384423682412250833741722222878264042628850801894550954459666653750200219154093496320734145530612933289069008217828517484906582169109774518972060306884369299703593518470843704052704853091410075627113618317808701480619139765794179360231794028011541292529821455813204999759702531299183825963039725344576094847328345945038836510865362394522193760952803845657847802114088880935436215634111770847681648406712458915632508285348537613122684141017369596099645453890238800019117950818649800363132070778841249641933311769814731825946482905068459735179007848777848856395125767157384263812318297090892550609798241340729872630470011600698430008971318540239978458862652472550075006316684338979451864438552436105299977340304470117949823977357906121904957813548186651601112574914798272372888439740607938738338120949159368337044710246055634739895049945030108781570708524456152440915797769516290899592910345789510512131674205139248312496557028047033998053714383121788766958081812173405896116170574571143378954357777977547580953577907411572421746941097518821010305362188797613930597597136651707193602928747346769768242556988605191623578280625714882616165085186711262118433550940118906415998004415578876793366051382172491876646283244394186629254399201980124089644025819424480786922117673685532943302944502992409871613824692538601297988093675650462685141445240310885464062259800742654305594532827224085747382604148507161854941820831404914632698285002962936179762984316151259382114369500492168044478170881125309993326668695974789428722357562016787318754830623472616658262025890535353345446349311251479978139833551758927394380305004487015545724545218709791076448365141201415913865488909450810852941926043657609266587283218214499912761360083568612790847240842120144167288433473633636656591711171657523667642319972445703734509738090928094000804055466926167638130887019798928768091482633861735661155546718596534929312543813837653816136915657992619152575129836750409661879239024383569562042480985654613570584524776738632359170876421851204164609034449985676053046570975026599080634053212816150505274520844804590954218276033964331822524122226709708187073518748795965343929325422026734539053049155709039200112973312866632873215872403058952166205265090513637141218045363232934882196286083352732797705975753195400580674953094648768706173794983840000359659410179967309747001241743371922339798556891733311122659370539208477427065575477111087583793255571199099610750002631345593528994257010544671485753989720525266301846931628390909331374857915267427357420275528131843620283636596033848341814673139718244886858674690948732142232521418716838660956451046681481826833534870138561946292806492012731891726491382991899458872022288653592286271087138898078443909876662607372683127148495973288880317112377718010072014204997014257529691439461336359686695556642922460887733670491999494111363098800079545229289216352954388215295993671551929644677703024162254158022606941290539585445689650877936510514736882098245075718059723834338410006634751998396354028794209599406434970782469426879914367499622911140403831510817732866114338564578346640010613711385010561042396134887379168831189437470318145176877616731035588956929381658947135501964345463772750622914119160877082260473689646759901970806991117537625572615968917543882693665061921416829496205391458506001103568978101736785586083359294451295680486616184858686507796295076093293806365645293884530898220414645481210359862176694022880611066056159215119174529995985689793884940355839920660699021424473653933005852683109722536304157338404414348822669874904628141546399011905739106810119744570123825065157937213461758028083136006732214395684170931363051253281397928392425290419652877407739131714828522269305673743155413055150302207431958076723265813457806820640397828300291876271359598284416640868134025374955310807303777083315546281752580197752379043524659569692428041657432292880712706011016137048046768474073749783760904707046573602600926202755900208335710329154615804140303858427031277469274505558118975505548261784130929867889048003933575889727539725873023350878495318857633755143168642690298511574340260838231822760860169165178241619727449734479439758700291233329010938350821073361239145375463490227530921366448731168531318620370591020549299669454016559942807269877791367256304150927303529514765679651117538659477820698095166436935686154544067764635576573857609573392159867093496463335752117135644955141958508122758191917155989141475645260885063529046588231457353861561309944573814134057374458104782391747330689823895902693394493816678675441349134932575460247674486631437008176974144545602807397562257763319495614049786571999065126640471040996485762982065010741273704557858860547136071674257442420307911781521243974058706942587900789039931686783637254271411771136176919439275057775998228707598025837429982619753595097974868183663528524095990600141027989466191670891395323477389893515380614521380887050603327168708900047108195323867897688713408105386282092436116088757603246168436894812288173478844810166534560852106610720766006506806913235198486241675117939075053043823125470389282361930714592270796023246003953551867217303308933475534568604829733812691446704467077350736830019208943588926271231190519344982922072973223242588081084435020991958793680912226315132605104291086592154214103803686391988477260148959061786662551186730690747236602207917218311475897854061936606125448537266859719028663187974796103136668143243783664210953860852082695134506844430822868503635381678668366102271777032876859679783547965349413372087110845211893025090032371974870188957930978792221180328518082867352115698729491748256640923654676590790343433126988001748636558988332490052521979561786811990179700291534006430079743920176326865666058496658246710689066011300179558977460986619483717091664107180556839323298192668532929955212473653145347161870829831255516408751739775044118501030652278167538309252346707583128576026732484827216718725417004645133607636356705819781263733510449255067471848696920685252243177582906812831506995064467777223795653017253570330475193314165442204670544865357232939126155422824337611882929543474753030480356960322012176186738124934635735538837795617259000636618709413824352577056339661713658612458481880826065933078177232532635833019483767489528134478443078090206629791181029205033244879605839244701435050504061624095729591491200036644838386322817383201609373281728490789079124723441868789191798080839946805143482298605181023754964109846591862860481502252714683624024466827241890620373809357633855094466940744548791481711838535834841013447055895165937916215313492313992206993382777694025232285866062175719453682183576741656787962966801333923056172007433248971346047744487978909709062830446896787242475038041288119957934028781693202920182559016152884012521772083585879306586899348467957131441875395657640310341276844221282768995050696512805266124823112657893860506066322233085402300829659362233469919731981301962618471936573951738981289433942691575424859563891404636747160524040996148556102365129983145513360568563255776889241734778459039647113760208284002526862622145331881602463903022306325990448562099109792694145678200839546059605303864553830505120583725483939819871927841145087027474367297590667243432079467980419579914852125382387210940013664085223159207057078951577622257388501497652619339262916304705299914532517352461481400381573330822310640122664799962352415913197948671798596835379619800788960305714409054498171306137590728810282059440251528444819609142942541207225749712256066373461745501222976447487637181737041255930871835354134807624648069229418339633492152690877267063060817664507328253711617848798217703206411041039821911487404336113721287096104987794899511905567775577547287148836646215612488272393995403379171731946261012094078369265953860326999539702822078589191370287968828079067357892396021281763796440682235303618896929407936243966135647369375280842646087957968939002670320307038683329812001091689394687136126055146590018566248460935882745614062231661434478306401805742333896724459146007900304501222118234257774641861881396994257242603428500938318049397347441181687331999677489160407256485443006521901461861297736753524687529038455816568590630911795761074927138678493044582323452860522546525632411476081862797598390869712425820925887641059282355495707917249776423374167600295941876696714906652424928096896552413008575513172306147943229310021894041156441083724399778864992687911893864575754855881153982197775919002791976554163018142235353539391329594604193145961255967805678786265947956814033558974447220279458373272201632178041638283443395324391438245768098571161654028783677176952046955048740409227192808661522889049728290657299692716745263023517679215517459624303686493120215409002715154831721291139457642173165532209965644161840629053006840838968470470743856165810808535146473733023500701874678308638203839700015453800024446665343737151171238675177270689696009825929533417725572063697288786436176334763159165707453877682807968605363589880484720678404972707540340337944989490230090407042501282325965696773618014712864580181900150635325351582482668572555199751890861986753261437188374593758264548535308721419155075472494256730103747202749594563534206700565052486106820773296413115131652449379521629484605209669116722552723868743551040396388749206607096210132844404568392529609761659238368963570914301329379891970007463034000856568087397304085021877339931257046855376085731727781136114456613044340227588480691659636269971673802311903552837591844177893833688222293476356748016086456743872759421668505747887291126206862369258064974461150988612101440129282170811469468096116532658043546742604924992860085893221170666125200712134431099707262963403195849705679952705421793078926211427237906163792728379618010570632993562827523808337339173660206914482921814139823268955293128521308458690538441888682659225954462741658330682816074697961997420352913529960760688473906411614604030963694152974084648021650459160856859590012744987089352675431401841485749460685678903296003516348177209893904137319404131771165181994116024642098048269204199740501392653994786066436194501596669915181290669494277237883706617395657874793704755594049635437565929869887034334656545279841434601688902454529652483360282488611191393942622299620817914639306129316242999939565598224708689854342451260015750568733054391274217883263749798173723161402112003665809201550389748361674510903662134465701765668030737877193104435269766914626845708865154246349559400683166159777415674894929012734556801281856057555950573607619006285824387340000840124970473318233065109191276794085273115686173128090574402029251301609561417824025440617647952228956474722016602645937675840682675286994834731641319421788278885446149949103460731125034638752794560825163718057378836124350214709056907504911781647829664410196866911805813226641258490326285569125078730032187195415058275079495644955124995248023922605362325485711249570049391270676025257742753175260166620121070779087213314019141860514295671601010860404514624253351616576137512824175056479604002518117863451212097180591672949400805512011913687319581405318063368143407699665053497552577064992588573586725873649188653854398026940363928121726180742082436994368839580130276214442476103702014514571228740134707914438592776711860160265069425902152981679594154015074763460768558664264419097695323640663311113409194381712166370993616301490142494215460520413776212038132762087156188798269265082504756770004511949973381507728209524720717786798611097684495001784204427521738189636439099170800946963445423959998542273891248486742450853205892340024729058971451326684132828039639605771187878048817124571091633853438243022969006664795635070526845733097845561246207398084081170091457095837924236327227239631886124292417655862165980073350140377978040440578591870886305779136714451831822534257703318347025377317969779049302407012418553157346258851788564706686342906846679181017801526590502335136714046115281347739105082535876371518016383153572992853930738416430021222024288661697890932689488587994003722962636647812836013153578068356525217071888003891335228124230943157614398928459397790318069587055345242421147002907902711716560832547344051693734149939024143460079698438876333481116497099093891414583243872764932515956677969058510056677273946011117424647293217950187065541525039137621359223825266621437373570467877944677497447387630885913394374569405504779909688118651446156677343180104962185617637395243916650544975711110126296816303428590141835303784311933923586346884199344516308048776580082146369947195686599444941997638412468633318758293937930623705175303970037906697409900279671837106855282865642911564248519669318855157376518284959687827507851411843307361024682162525523112392057199481919592318955100995919868983378600945105197542515846507108733529029167093730045108263465527435901580208221396041832502589979462357366206450670246179627408999424787965066582617719061906756270382439357375723808933052817121713188025530816345065160403756949457742680282385822815011029605176656576412788546438838604836128124786342992781032603714630832926617992813725388915422404672917433522349647390103983176359132920552624949194679848240063561305804158996908649294954751258065491827290343169136820694135123564718512521367024357758150400840257979860272060754195094709777049465712645239970770062931064858758710971846890551173353698836621631189991558875471397841203759423465701382452896065586637787385264391419531853765804645904144422295588779570653163824137272050756731466030276102615747054269239909656098949826960243602862247467537695322491633518123852566796674094583056492855866963724596912218498736639937389706858978984530011460388091288616676044176875356599661761810962201696979225432032650243615780706931507795991257075908380340256487576022291164664432712057980369234675956863295687027679164433094227893409887785258688482183447868005047461443424905872809787268686632254058932004656331758816635488454914610651550641035621823619941188219808738104711350629291059322250684823858395661016291132864323293427386987085590535563127524131606618072117876380578951410544964984728390442462460588868702620744676376926606499039171391969853037543521286373352612832998337984128008784203172535686756488082960111173265141216178670617653859832413653871898915679613319272085415393179905690858891327327474658253881958414426050366534071829675130745743374402246539881376442607942594837685554850144736944675859765881892179339306683742798898995928643149291170537594816504277565658521818100628926216134287765793717885741351907074794909382301128285021016966563623371700811029136424575085774825321639595020644577400203159840027438185871122418660354195273477721689951972451225464875407593176126348957199590399521050148329418614256441443384883706648241124252030044149162453356574691919539068280560954464781507661472015991311251691360084714797970646689870285512578784258100614510913488068344987623455868079102018314256550714106515493906320488618238060552016681500169544965684955322361775030485465280073838163044174587309132366273172869638890269679092780485355005294565337296615052954676650688413318606340032599663196730113587181260178349785043041990892987690690219109058389464532489418849580100938298579340109676882874739129133094196439548374593593558492516692022771225176318200600741217837526819961438903714572701322090495805434081426434919837498285030454636967975602604713027720596889010516359887616124740116614655230522993194068132620120397586443976502822860196928841501661133701468388799908538666768047640860610735848178835377637071723766544363852049929027740878347935204375677351306585597177424684005706260432487396410995988698688798062104325732061436098201609421916423665043389640302530417786866167899690625347099337902056466581600247570749973457426252955838310582699667178679900451673245377423336921884213837634078163539421178011296745656895494494787483156587565964452043636954940017880790707134285373189494823268177866319807194185414693516695742123310428877347538656101435671614294392170029899303559051886037685928747803901505940408567632823046196983429646045262046011659583336096820684416426224842413500064681100365056620249339693793332324623426128896490095945966664776960083993274285670278236739244207068597180504692626443371746136967399853521269902205442492516487237929618468470180900443232042201706499853796650303094926022315323858645499977786361392077234994949467624545122801568844965438431943453606892287208158821501675382440180170266030630275870714497087459605849151216628721759484813811151897448511638286487664680711647366484526474341009062127951896199728291895383644601892133185365965455325349185026689331553117238031693405936046493496179978773363928923409285583810037926290867922904634606966746569120131256405558108628629580500989830427933415293879255436859016927450628145533687033971522586873674826862216413702812283711896652741235433903939535844531053310641050008949081995525905993417484838307399389407902143658385235994405543312915225074330862838670856783888543642320344339078253817789601934085014488018656474191764336717279491367471928409514335823030245775516784562772364839840815998053413173283302415248325662026809133990827030108851258860849787929576763042654742981165638274695329787240187699104707969218428982532707390821913745376212462941635383959692213144934230825069835592145661173449424022184636555484783753649949419919415173447174330208768748862052423273253892345498759314266968521510417290921659522087709179194439602742242613422891484368294261600055354753812134892504466346945639347026940931772277447828411762533410820960099046509959332802432460392479725170336666387617006622662903501396409945673068355815843538070892263775749200322749159045939191314581438535922242858217272597608646564421061114472476491886339955986508540151270691337606996206323967697969220632738199714383659776819487264600289057091319860501895442799170529056404642894960647278562483869768810708069129781240193869492709266729900182545379397171188250958179172362304576103807517627913256100181065280284571770286474397871977652192884306342605831989135348269322144397728314629946650461183618403120319987596568166625516205630180656388895090723097859275813557506147370555024541483427150197108058036803007286947776178544639827310447134679471737565362053740687044873306475007680914399364168202327079773356704779008366750502631607448959044787141559348863947365046681154605693769960237117689769233542849195034328637079302554964304023458344335582862476094618981551853393304272724407996714774338514315093854926662237925164525499539060536820780501899064022288309012736629304656737460337952172631115345804335997781956331522779114314301157877276357926327322769644097147633161560375267386699098833011793629484242487757836416209016912112462903441229898184879986766706741811926234358691199253988390497913023280523387817199984230199388273186827944076097958454546018936915590854300026843110605546743645396147920361930110588924731748202960754659969472474369383279730494165944932764311676508855356003157662263815956023416713257807038462310105166317369442571769663123903978236190422998089427530679549654436830497370119521456820416955156939748112133156503870430558107552980787935142338943756660693503788315801900283086696586949233003745431157471801564164531595452065886142589669420927572570560298986233830642822398230877866362814921747373313858525285450089300067613158366189723366439617696121282440959960656149010747723812706581927837458631946806549049638577297545346812442110447993187804453924256041164769485469237733499147984414062023753326531418592301633726434775291204743038893215256759579972952333070856613729645761327493089900035621512794168049619457171618558120123768445954478505573251719007472008593046845635542766770859522797265504091720457916750875620557734749091515581268355497709695309827719691404540993522293772379032979434074517317382355244859477054989951749204224778440910604373970502561918266981523141643375154890214968667833465815351084525827621704851639929897933049443650854913525105124003325116624335497150752660353867298406566352171479834754930424527033808820777769556683004328858584755378822466098367961070341551762989300337348772823701637257575352198137723013686555755005050078686560090981900011662761436762433314363175390149845326217874279857690170913824812700381264002573709890657603523404437204294195454367654160188785803145771508155445597782971496229050829894786681502157958325903207838550687874299512492346255225534778281074735416045848839595813597087325063759767885426497489698992848547026543803456495956299590601961429986580307701053700753623070521870143694715471812221786840088494225143518824290795615617763406599528095279727211001572814507138070992580037458708663407684579159290220584152684452982586979027197734096545111085986273522343435939407192466162695633131341226226167356136262190417517432327801602460441024576476061336427947697724166496470034411715593704706692739725657540432247728451791754471282603782544955504553697275061764592627756116427432892080553641911426824425554277024281073142527825251091652981238663041168556323499558923050289769723961542957463270971036732891336534731758002431538147558839955103123822638328533087133585827505389458768745681068926122272347068378057469392746957415837599918348853217365155215728645233802348870471708430313858691172100096053085292906679897041481913947265989510356226333455520320256758635692782545500305572722889245133996491167076679122862571605792835443547593783108557464217426524828041633714240977365067965954867298790150433912309395253876228762136471420266035852206345952137264326411399216396420678355008268842197333351990464501617537711407931155723556782169600140248085519187257780045206475724568152576350627693973460326334063025067543792961279450691065445128872348038956496808462429164473995591993732584991129000533643373146246016171001827545306933878265664698524727644018086366991586247496959596688518562666611909479737319823170112460676674921252512538090307618022157368960655852359991948693320268767041202556315963760890031250479234075543574396718314677467236563226142793466080825282393914939022468529496365631410583048744824298993452841277378484743340507320858029648076672566901230851472634284437850596938649992856278016202778594819067043249850938483421035661765345773068886781466113922892441782266702102999486430750109567791287389805302763721032158274694537097649839286004507709008427068765259190419376321743529827157165405803268955659268346148745818967038062221470506446182146172898096869540928970776358576727501354371706907327508064198812358324573285088442678277637507484958983885168966813702740228729700635211484302317859734571551425761326961675778043354960650934771039928178584004911053799126437289292194301258594494209221710148726576034009187651649087706002855249565015752142239728008875094224923469446447835083974967923940984303117137560026430502162470439128952465767212381056200039312797559926475730731941571831043722852107641939172915229994766854139095215544647663290430837548479870013853924698350186619230398990084223860605126612614327029801822928274014603840447148455437707641865173202403925469327252478210308785137130442823695673991318603537425002979505634921850252604747371906117949056202758940634003050601966748976846018046789495212305722330002767963079420446166870451110448535212170045806872487139152434131115854436988773752215534378636104727966217594467504041512446962058153182199501883368978115590551661108172252231068965623517568591677821678502440114938188886197522668192060435900874765177570163536306769048535447571531993383070299929651208754337624982462279461252073017615526173416928293565400017852824147121082053865496329629748404165941404557626400733015483532820289294467823784672298312184967138847541229715749667978291136041337721014433311663504994267716202274950636140364036074003996468982745083660816009170982990885732287585475867791283043028846151776680245009163481478384710800195369027948473801391893718811415014631587944436104139854763699183306859507071051792542165421995705341908928935864701611434369857341778858787075811703701125729371723986080213104634591983986959189349689955498499848079625951473289125427664626258149669025827981678353575906699919923150283099332609135631447816943523630181526418313858024311692866037573052876952882716245382673087464085328508271425600737231877790847299128676283145955155958267379831569648808825612613347173286453626971800956734364220668204834028552189610724875106461648077649795478781295502052270928267873904703578361145373289672978671842201828049281574673538916813437857104487930052840623381780318580116540156322288013146907665017595872159092846854667590707336141831313497295261880984747181158842055427651241617701471307882540514068945306752455150111366371186061915030832286603527688380400147720536050158998519006213667925867693724507379137916758286000372616601431765072129891143427850281289527035941624523868858162964986707086878735272022952301579865824196036217282908158274693195108593959718460089597242626752862549268736219883847676807779110171773489785739812677314642957803978199999934016073361021187456277942004586531197871583404140542393490764761400849382337965175186531682088532428394157757891160848916711639142847457077002075699916083501572093247691115359750085865923792295363557240548792449166116709763227499597385496698377106891924970445518318151162144226548083565929143055745912626709704645507154700671028717680692342829973287363823613947491871743235409215903179336576912363655943473943789133119784876474881933254960768515737480215259895670144699592005510778389957989967126169097218634299544178336452015624957315371289518603640270754313370821134099407439996640178339420916367753860541188653166448273567897513720592450490898917878768700305840074565278633373535315743394744761574090323179467399273887278954859154929233730197528987974704253630023923792219620244249149623423415941477299517386417506813681689590098977575176599769794263206023212803673487467446786366033855022890904806399572155799743644678766218017148197276429444075334842059561697813014673092491041117015499518632107834894053773460502606467967744255475179272083462112224451376674246728334433772409589872781023037604004491130848974532081450269305083964470869423975719162493965241494214226276831769294157195593416821518577261046113766543003804588998665490128568750873364034216194559829219613601033354106557749179981297821758423481529715607940247713883120263279757264887907300526100544358836998137256718379854965035848920660340362921313539190138160263299847753528893082153349931080518823877422397944667072926461581589480723780498703306174523192884582820193201654379908917815175595084649657253509684737754311622496524685800861162209820520579130232364879624654555134310816460940209324328712214618234756624318354109542339735671001911808701215924735159017035370123871387658716086305724431738649851320510987483436736175915358918249931548287608324551384854415072582442948657221439894890645362660123987537484632563890581874768003952970603538794375019472891418713966154373699986903668029969769693038667743549805612268786592960959576048939612892414513005082598649441075063884413292640931475771287248605851206125686254262272941684393302077222962093915559757292656645903152692774279549082173610349545164138800111605267736361322652374116868151932737802646401505069841878639209265948430401576375182740282204152197027799378919675526230171745171228912483371425563504136911394075061580316501576906767766457604682540487653855789230653226610055123060409212473781329105394814029991723733499344379406910623965394770473908577206053486715360811448368833804835709815132064640446042197826458492137996851668053834099523632631960044604538828268842520882527275854331652617184717208536334634523721080202709347828216060455191308816863331838590828861017906863680729516993357984422645320507957811981290675224376617993584211514480404202225039673688910954829009329668147854685453655807183119956631162968319062203050380058638874295194949007694555070932434986192585569424959692326116996380398369390260069589156356606409941947291962511855539995745427381089264934981668119457634241270997913253195595559633510761412199593660285097534587469926477686532613137265733195182751146404275800611549081943120135832232079128063409196134753550073831678373509187277422546330844796874118722592996117139851882894955795523301163935775251612472622143720077588479378427892105616512956432774156640965425181109471982139844589602349820218578698217751207090499161928592251183491453655983318440597801722353284377995779340681281330437264656430357803449490856936309055945210754671890848297955508895621135714723271204225787145831176266658821325294793388752916347358847458220067704623472807164228925703733848455233688987526300936926029799693525105029466388856807706484817558057538932111048157219196169730548439354025239194753777845268915055728727714141177647780135506791609769865495315659932430107004738049982854142045321066358383352917560007900359656908924627046282461273388062158586604665429383087527336842899273577756920370354355269289210137434699141763591733925615173973542922889420724759471444748152586585433485058657450378613115197033181310080664194728379652676581175954876979831732105198969271798733130282449828832692378155748475890671427215111375507479494777137044541689686148437311686328666966129806540202474727741967676498973450404538381673147081094107266271450685208162546317986596273439161677008401652242379489429486583689620261482030746602128739669342100121406690271521280245365502178989603520139513952529281910469794956059877027655530590961487858852661334806947357688376329777475054225410966258654205845539606818557547932433748151594144380223572043051092365730416253873940161753722534638450133008319568630302032981850130082549237609796245710216498729547748741686157272221355031849818963232359805152964807742891633999781863406389516178972125033165542281354485326549761138382492907913048662432012795227190023132350647388610997796875170297596149425822875913002004385352919967663195380694482645098556182973963301636599064475177827698395679412083295448762579904318971100695020171129865191445267115009700963030399966885571948737728615932260423724575273760026181914944581553162895065067851433623253815716179590075727955073445541532039351306640286179511119408854855613833934854687661321946141504291581928041417948544245954354121277962633377069752399836644510602258147824110381056485302820431635389362734285276151219368999949777381640933559616415981459351182614461984851014434895465428534047419476269594281076940515099787004156564154016099662336557984347321929643325498617088745677014398757867534213518815438786567077453492467401338885185999161449780278802654665821850023308642078297691274020188467364585648347318165055334743677291545595270788422503398538042781637443834648321847795278334016629164659503914453301813040600426627105382356148268624821118984843300980487678294297564741559211270818487196101665241332763572433190689669005475764313855670718528718374007064813897761383940265929112751057909307964981068652223419342627292001793125231702574289337167424232481464004678358030867788465326732116018435289889952056646381306888070737235731638154378465989823569336699626415077150690859348465438051915073164910850449539091374290540141139646007170106576571162918774762173796624487164608110381026188089208488171869888020792583971768378671183583801567801431539123125476567754241137631895154354009267478923610309386547385753328776684214934428855975993451079013203037899443530386145494787499528494776193184995118888594243837556200530595318860067379650251650732689489100976031407365435418828374498847875869227210675704237778920113071838373715046031582183335060101696257393992395667993914528575849130136624665356350371387731723785562797518104447169363275099315188027808839693548955808319675878494542937689329822153567521557414406148542939509362715185661669781928234476428369072726743336704861917718386039197003005352735786350934112646193633023774686736100623201682637813541689876243798514689425942090606774847172857222899297666134019271485302800692236759474511806599617634134086151748545495624425915407449778645345627364975019736868093146359650919662331109509690890778068910146356907611701091755194556106179978249358896246421740355614816301131332773397762179062095066966481674965575552406426338976397442236518796850108989999157519366635252538299470970760167772334411330045315064288752952536466578895602053985441521919825959788726993935624547085689590320296996949212856339175767804309970590060663884568211277344718316895240948344500496797519892319394514596877764589699968300893985637715711231392876445366641267272617317301834357307537127697215274166178509641732068368546721086844772175659592527009538911001982313363458599636910574519820890858815893183486262171184259234477635889138834250386913612005385175522420458113999646649927784773443204505450473877133041111468998147366450912251928827022223051837577159519545489303424099478872274773484471810065790673825755021986950414137846009205019913039233912857938969551957573281935247076702416119851439842961296038226971178540210926684284532799307157922600529515306191016700524962393237587464502315292591791997627953183202982752601092973882261406082075257693705801406548599136942195494471972777089347631674460171628413028131674313987753672785753943905798518532461916619986623522571347730233340385319327344373348504033034346997000155855740947871328769318208560263329039877277337145761345265339988293086416790318567694259540983725305824265543489269925233803406533319046430166302569494679230528554027078271342622131336242080189002870353333959963554270965769744258243975551054900290243115131942143826252524526254807447201251362526587198637459531936936933328133243767904164033823261451224022217811050792418093972537779302533637863221814173834451359020031885427950025737158370147992766691700857220115491054770966256291402472820845723858847487496924291818624653582004670690895236098977873605039179190072185046927447113506267327179818228284615344722141855264408285420074505157311094994995534487419447705860577945918074882183910954758785525269512847228808833058223444583649402567743891409007870472921052480035175064292785257695321458749349805706618054134726379929601337669415492225525258897980525186603983533306772448623831626960496735928491484307248044857618689175552856841892025373449316242872167735910552178827797119339029847754830334018940574305171515803192671529364914136011417201300399395404039504820853691689662552750409769771378536093685919114349398219000572072040910329936637112204505359652822606680742318620152289412653651321707223072016813830113999068937460540310643268386051547229993649846422517082255347872041278822915692834476765633038961037531096204908785802226881533330864630562892026594508611064734751369223922230999037953022921041307086305936691961507211865023917616536532203609694842112179568159694431231053075816253097045606528117515005762931416230301779736816778634267987762173130944174340460132553166869664715498584096576167331972812668576988587206957328006673929102315899456072497512388078475775167134410874841386636165709418296510269299837963123122708153094262242422439709582338864399427578519082544848879703404732620906753707270001761405603631978421470881937232467036939290181950227990311101096249741460026170124086119937534577162311101514476398170656037922745742706072084355582100016913035772178473491058917271162830880843811555758939832956026065156836988105025566096457644154706466771843667825822255976466623641833065257896246895605869006085158706045481269411293788819756807522317767740123778352318558841951847230147592370207378540959173881470323529955542389707005636555926759796938576581422081501143585759462357968335462512772928341623704062976789735365947016820575334286750550923066150938026193481687102293788164063680586761419025745816267741445105971531293655041976797983022926426883067115654941528781931713545164843756636388604488666004976160375366721275761604125222031754873405582344227504689395265862372779345141661993292894744519594168003945266224070705093196064222960376422033524051634578295553733804083487393377748872598767856339509548906077178019482423064302246048690258563820303430514815484653116635521818252772375506055997389550286428696699375449309912260613804094612208690771330536468250719326453879903583522915342397236836846362241547225666332307294121764847506709343968633348116008374452648258306697899250178109316980969354792280748690531484432994351438126611483796478270345384113134915485006860930183360091275408520688470824991880259999963572934944599789781586041541277093071327777270337931729866642223920914058455693715465636582286988609796591930767186829324178679083596210416520572336961495274504830705884611873379415656137857592238162480496227329505787882929093396221956675867080674853236274243115916192499600232212427952750702903624984409072042555192156709272435103020589401294935147578329395184715852102289394219627965982243930676172396169112648233421449214770926744874131883048112311809488493589537099563163084947372212397161273984547518216143391930036129743092367516856644129259969544145538861356031274666213878054593346598786852744305363963605608401916011817584711649080226858309370721040532817593168274188607553604660357107536189426937796924589463716650144538688526419329158848691766171627525198934373279943963004970038479641536169535861008088288539742051790591522265818922192483931408238941723109026057008305575803085663491226229536790775692827770884194426090950543884406973710374561378408919113910734250399887507119869096830496788368255834182411186061935694860416047879938763348396714342532379202407572728410476334903275778934117445698950625059066745279224809081746730553004995452908540683802894656827229852650625940251602371064323765092446654937870753623539694683557116402874557625886921757961864392515183568802049213544700063496809015339248420923833770408402109801247079034419726854901682207779797563105498808890341531828640343108901506205638138687762416771365488276339113935616591353896784278169807050114536971015174573872970651740644575740563933655296779085651204290480880910526554118163906635313414928296266563237462241271811369827132953235706946457710214261436100074498682713024973540555878679938422760838109925460353218136809801514524772809222921026268859632113530997786561267490305121064636223365899498455237067131973843664492370294786534349951817803481889744760824214384581975217296339242131976256892548566706620113001995462314058688529292517386116683769275826486048956400988802316695791177626220687316936475901831562589719166655347777787245054347058622581422337135794506728193688326155144778398932620699345888843005425826320062468300679827891059526372735452439398267221592548633057403949053937096029197975816049859735045880955175864904385029657294703495821682412312746707711925546902080123156201335335587703067684489714488309111878259732542622580112147573308246424260206134131856641578337272984237482436041102408047081527417923152351440767631970740432148633834312267103812070236399835693775461258892808355480857691798974255496851028514038362786399463825317866192892330469607065405076331738107707384620363888956033998068422746724609935167320085446159170047723437776623167705547680743944965066428283686245651203284087430299138359954789373385684739500822196112794311307223221443150483050462602002157250100445979089011242083386371700304090849989946857161796603416187174589836592627742910382445650443568449531593696229746751516120742243960479286365462654468923731786149716625055370806143740734037513824160604978187119204755692440176380547977334720127589353920040114533891069119541068323230801657646680901069091939444686945529277535676062833274840724397340675137768320833702587946359580916185997321710921785917005003352465249475786219057546099994505227365539839781108151132762013503396681900737460579166224312401016113685773900523085976450503860016394481985749291678893909917101481994382682081981601225558783407215069611719440968892494281126286722737813017705637533427381180123248122922745526711890064208806483415127992533802743759501054889396233144517581050792935538187506034813547038971200580415360250252910593374900132093003344773476112326776524361717179635586103931436515562778463853570022991861096812850532010995233309838916929162398207306649997246841392178001264798867389898104325194543899907665255414696845517465698405631478417170500829601228824982065584365061406489153652780183749463995482072705725448451004868873929830927715201998919661536488790287939002163504259835973148706710599914416358423883517401008332251203255727685592381472752519808434659494289003965843589638379374121358343253672620232878029191934696794949224456365231076689382591849174981121129737344396467548431309886456387422422905187428924021745218047309689732819667814130735574879721893589468660272451083330653893716101579442393349751545938778315859069847510260032514467594462761271770577215392509877989392288665834223001957424205165899528945826326008397011269432634417852927163735763000469657634657882520608312062471990338485739051165253082041128129190084642620981600415271685062853341866409261543768531832574733666827954167536425026546985126484894507532652642472463345601691128917044840668709306716027920926325436002229712646426701441632340194369733370411312625893479153619778526955134770156057823960188746414302797272532794581766402491667555955653339578060443515022352077420443831038694205498492882546660796025562115443641801531696492925751375498068931119311097772686354044017369047864646497974355058780593894637082617735235550342407027558364803432769470262278451116933555807671289111474828058727282035876153337816357970919475369949554557275322319423310353728410961846752297919347437602864334102643062341682592383081990779261263462453072158420406636235450435763145700702047844184182089707932942325769969717611841371288923926426484255914986403745044036252380426476103323668203314270297843718194612713369733042059846505092428332323391991349830182450360384234688706349018132189177787176690742045441885544234351862997893682815609421070558211634937560903031539592997004515672555723538229013569639492728199948207538253699017680366656372104208398427405256422792956174862834246008426844735018571566334843930855545779307400448948574051792843109642880823626025866743978136952991889160498960483700004081551280956624290454339608328531948791188977969690409492599628870285336804940269732590451556654148853303662950536541598532272159581348435081285814567347133966234729916597162395248643020411544724697856551665599075299192625154238841147668889478385403090799642493566143383685085577877137222248470742115721909890869174519999683709854354384673557094422231350705249634335840455844923053774123730775099835687569465136280427664052512450379057623857573938970382455973658637646225782818440720546814886136881851064464968764911089593669551785910973053741131177808894815848524112288522490011193468651874654568915468315926143097499536542473774597858452321749905877371771466323756587263532131184424611958146221819999003750887416741102283938413713529951944147128204275329718226175091170711611538258972173937264292409678622921747254612845458430036032426997787993270505593970422878816365937956600306428803791670606826055278789636125444478647549972047158988708919980001336711762651639970177861510521963110058918255047086697147384407468652603023233211194600603293310188629456872056335584921005899600643643621188343279866791626624006281441534848024764919382095841788814063676236390388917088407838503446943115279701235116394206029647373627417503995278402443085394035797268882569216235577743684341378188704137101280247454832340936759803986495838589222209498239324386783419224848897188529389686753480258123311014439660878988083365888529825793172454460649782920816011083410905963632524903065298813616843654835845082284114428930894971157158308856648328015311110054614580383113732556450777655537831832276580441225383453075582220959142753907136883551500579009471709289884335038798381385135465679477153495702436661140357750854137106992012813677703631155223623818622345421507581389380651015242106450623657382018618466299182413558022223878256646821768710870316425136643016172962338985244050893727426426373131856307604504600496688167577128998720607502358088175900917971011112447034852647285660468087761825343927095649236711518947781058210659169175473607234497676728893691206402406866982971969315585088731702094155626152132953219270412175829539771449183030391774141689256218461662453613110794248137486378565013968474743024702875042868395671040774952135979493776636704705335846752344605972687364044142512992895665098025662802340325245846278780683943208487086485953511766596938751612106114084136900170509964572875092507164088221521525893608903379362868118745604483095037580538704164280339096493825503134097913517834376214121352569733724983070286634012434182159690402958476363551689627739660837894308096798318328291764288259094139358023643091720112580260313747219371122333946621260109512319138890903961590675254668552890791395353305670536118345471405528381488690922263950351294229541818508460591935565360468901208292825854837489951614075250048693365384336668154678097469732067114317255797076558969710559952417365786772671151808821375818447859189110886216483551086449769608195937692673542181090478136966853669810126965468538982543776938361403735172213434683915996484064553624957088784934385090614015488968721157398234220049311247658129586325219940990872029159265721321242955846215749495656270799959130448645246138677510496401288148152352720329713147720986790211319105657258567906084883488306115616169831956756479959170829319875480366777754264791977104877604460937389072056880873629289236237647607646487687899145971845156366469560010505246278981114396675199578735709278440258775561946039615307283688758653182496293727505669236770928803549403070555156524674127441141067858193357468182925664452509736221010529920904944065735874304803862888684853374245958153705640960785070969023196562520016649400540145400260618333063406903708145352998070394508173876497637181176090989611401475578843157224866630361043555210385452749806494847820287680767663828072577318363730643295466143881358949021683209334072422735413394352228227803208578617102368660563451445200682567766958508109752838154241666176551338039223968271028661762340848075520996619775941866753676656627184222089918863588343104612452425370875671348436304603802886512190329324601540600078800547636599570952589036895537063585029010552040330324078620007342144727553286427000459297013029414355727823321024933057082912455020610604297798994114154911773057042370347200278229682940054586125327598317556532819201588460248866393741019695863895390955240647574810450357397457245961840245872404762729850160948338757256126429718349514827666676274896127038011076348035376419035127655338831975459405401669204519322220873353229391416313074874854294972889618303855401369531042201834027606841514477868238924545289670020262783118009825377500503413342438328858220256091192627019377855290901312455508925496112241167851857269839447679581241217983960026230098536005598068786072093845829511477402083296112226479999440345082473253203656268030618575205220522860124467216028429647556833365228488609871399399360371876824796134516202628093743240064488964915245258071012478686726069521347959871580438504625468280745387235466295173799247195069679682876149397074189436824108704097345253035048370725910049617373113042189334256369265042208793937433835901783544909996191185808776011415482614782245344704278068888102663264152741767587542671086959965160048702940497642940432695705179423494462519249653177846516284149252423589564185091594716953047525882811612130477514505636579742680336179389067744950167120757711479898148409500363856111884433383644845036426488454865325395289819317422363461425972594183129283024009137465870384019490796834415616816758313147138439248835716490008275355775776181481445382901687577769191228470317818814098800733107458920054043865886843923786853837192048192243239208954553204900944361839032809221579430848102647268558750598731045250024729584395532828945195006349132239088262969097764826924216648307761914624328701409398797005908747384415822743536492980941239717563789929248380642968027355552185012841384046198389353779959591812712694855622394713712067875920692867124344741119685638219177565400007708195597611561204509271070649717026257506774158733695369328623425685012963910393868437200176420671466436617023226380590084043020637015384450885358084982016259802776853689928119176035172948473648342750842970216767014434520683508360771602727304462797374678842376630990722651265691938343723209285116867589184863994978341993615600611802812636189138719732240764002043540160279953580874016780410858535032651975413624872845892329168369018385892513958756124019088953444234875514056404015588411402933365361847691592087561686685086294091024240936358351146832876908693223093936511336724722855524447752396569749859866491680639254508766322228247803745682659395675730886607668347651970991712156571743626983458585986371811385421482011357173198160580747315026176722222399437958414546067010955368636235897464696716999292048571725371006937614060243748217088563392438914558859066564264102871081845527445420531273629301408344409908075868782730583731033878294987787474820007229602593865864351400768998305300996489420474196691649785569173917242510578795117098561392726415212721394956648602788816707687008958957920590755489806033356491394110685479490630255560797281814504567119942890747248870586067536184746858291783412508883034771760918324186085938004343331571851860273723904234443868477123454061114995487962265500558678191561276580617323844318528271828597744129330053448083652737687986044732390970316056923001373037313939766912856944005649771967001365382490680884364103936792290198462451056648793465354171131773383752828794251526862100828158206614265024917372521540552905152926153491533719044711765306951740058399758670849435869220176284582147955452009499019552764135252563230085201447947877072784093368370999567120719750236792443406054466126142838490035697356394646222918582022312606534745419418366019881059836143129945576062554792866728135443973469349764902665650963783550904302920977256555252140483919450160058500099499602666386459011190140158248293474886150661890943341685992920756653205198927820932199018692490735018492166037814047426725953140332231480140171169854356261142127185871724626164909453126262223639431171930207473676165723783888802527972165567484333082325495592587181675853920367579473468993880548569304853764012597882007179867914865303770850660952708390432046314029598117507892827858570333425530997407512144594349139317719769637961818170294584114696127864876430490739021117624896698552197547496462159683276656106950992682275107393855209755330693414055278671169028825232821499382164087027777585394457156825371070370965912803407305186035522578157101367462511115488195889139578773612570206580763731768294121132323430055565645502975564015646300207911459706673605571504864659183389640156767808916132910069348811496900324498282883328042029951666151407191206728533152607449984648121969838098601615963742245639327670268955952874094800336330865193556307446180322834482938265457634290820459699734756023222377762567788099819277468415984071344498381881487400416508556309792342068349873901249755876059374541078423329993707260920073680628782780145939600318480350526717862688415544269602487764184084010128351730145109763865869592525781343594647412445484003220468237940024733338328892079460679928561345238793529697615211326861765405546302865915000501474074410061899278730063290756135047073929591283791245722668462142433928942623908034210463708783998274561910931833543272436841663447728185113211371435600459371552081446096494662461197160503497280455480963881983439353333408161978906845673964015246014376005325466748352831206199534096684270130850854095047116437940292171413040344144921209330570990115207229339762270509878344730190642743588484334408016027642817341862990500328287970471725058269047648989266595333196127384026950175709843684502966487474055334777179588033719565668858833297413463150003592826268461285884507421496499475562761765485456081585679064199458213475552712949616196337638436850960761968913982752772009055956343327587056003673235805440046026312480205367563201782677384939029581536690522308535363706007372471072278713161629847571233453287702188179628134856595546137448387323752262117206134872292886162378167506741878644370443273996814510877999657746782646942621295013813691302212705964587839710592461581769658230055052900563727862633648721028204359591836799787708788698580277565104948177931568344511568961423906997314157297514986072840070665845726143779042080914288292769483258406156704383209171045160404551008077715371739777926686841337882549849077733668657956907662486595973733286764460386645063046102744651396779224608774330873581755089033735844101379037382716916185833922431551436578343503065704425754423201919293400584491208968756519681061007842481495955588744616825094828583199205830097883303786642394208336167625033956445803619727022314690556663225064506678600556777665584105423542889713826576418796203481399325928024625936904901360840604269829794426793069810095716450903337284803580486635202395560368998462020134525616112445573889136939776377899001648595232971160184399429804737723114990451284787233909353059919645106628288315945486298898695086168743966920604673279115091554159068937579623892927844106569749486703551057179254787516265741776086335835578148212608333691619968279924416921042452779108304588324023032589752595345412000555161923046682294226497560709430183054148258770296830208207126356572630935806802219412008813189726485109666753268927477706931553767389140323302380640736270566171573726523977022599390885168000508090312147756692691061540772195224880773939384987554684132724722207327034009953323332854924285065480445089163615007599366803503363621083187205752572971213225067385743229397661820243237581581961470792873237550198772157789198795711708618499166733218196150080897819880036994729228472337831647731567034586166787228639082738870275927369083604389028929227853019974792129772402710871840015457178581361277149552049528947717816742263585784884417619900830478758654611068336900883143722510351102207619357531659021882084538517944608243768891835827848730255500626052150898714928558180428729330725050601398467612512513026273181816936948010915052988691630521901985610681788094969827310677317846726673243252167610351981426970345436636557554882012687552590817020453268784566132444754535069068785520870074009323015738979809146125647222415303736310402633141225492500752022390557610127958428770374098522206632285818023837570738761553232212626385194632859557160148987659787375242041502764122731065040955759955029670545825277169435069776651582822673295245363404045252081209320987416150804987707945175278607374245385674209188958082541010623685772058013178750575261541112577136461487200103850000807073541546372633179621127476016184021051678729516790181739966352119528768890369521444547772644843407878742198259542545434057680405110875253533223823143356663754571006848353495098346740074120784285458096702888895980767885234726781312599964672094938870988312970755619242001007470312928070394682221648509916362165426992646792145718374762198545113529052747559106380847769594835015804202477168093454771377422021950739418300512085593645052109538160529626273444326269583493921302005499898650101863355648201329345898531957809126539788958735900243015482477779704192132528651985143321091036266069227012531405071630628147263140346084003791501211128677208788976687261945092958909368176121986012788687176002765333044248927456381212092347831144167755762535264068745858372461520053858522663389261179462460381525119345296505509979614621175525900020989700782894298922974315640957927060777970609116879463342959462185724728086328133724888761921282608007567306785405774968925633139709520307567136333600955369675728559575664327361829407586301703255452987140611291291518928777824177327348692617810306172433841685085131656288735461634216004606598932232270217342738924745973160437533497702826629290631649511971708213424602247674133907178695695969685502484222254748778072539147867803302178179889884356459884798499290630393618836091626132977234623843006829385201802282733004252737489313032505899479058459137203191534737490648336339624141797985096469921306966191622625058601237922305006521727081314888380663852731645562025789698486514295613349925759074695038670269074220630432403692790475784101308115002609934690928592971628158635940842127911932019114160477225028698331853620017313207679068052512355418985608141304535670316509041068966909271559753414501837508149430659584599784246496529335733462639117735640163880024090893464466673292413853046618261570902948997264975386099789533549818838010641772969222001095772645897809516160847274302107288647068127679188099705355542966552146584577794125212149454552201234370070648809683943221157269207387937795825294406902548128705234594345557579004800396261226758667122401411929887178385209434662947904916585777290929401596670313927909387206697790248986345218942908350897701270572267417179503602150260437756002387730375284617363709567161146432444174371035668511865046293648168174090315635291130561484164925491433309092701280628009892941637130561734531440297551539427246952427355863229714349695067929955616836475891471833372147995815795345128222564417177211869230309098632445184514423099244429881638022541247553168684134771947498583502396059714866300143018230503067809827306461254830246667871801892718573607927277035001193441293048382112641719402193247778838941892535565208641824787988455564956272723856784524631700506533578517180626695815657949958429962217583396577850426286684142245946967684055089856625141061038239540960792111298286068512927572442547056290989893559753268693201563385619073886185378284690059273144572420438012652412017939468048521913789891321677616824884189555493244678486929250782359404924316279957022340649220914979670164439550214256495222384455553298810781125150025293904587269487982146982263814484632231323357708197140720395033810566870674234870802508893266298699775871783891845144690649387412726673654732947331564891418617189078344834447991232114472316130868453034312061658828329904023603590509658193707466067301561090691089130962980632358808687688821989755651775474524438544916890364485041581183253873474192945100399956592300229859493772874232263077541572696580608155071946734083165870850667049246672079227855357168452365082826584142657941105265262286976117197139437777663666105430109674774052009876862578473460969804515885439176576136027447960968965067074639866365885427503638856787299808373157107122193596797308679452301251397991377975717534818353966438959605155561305141578103694032586152575892283531090058182419816620272118867734293425916911845054484986089276558849432605739116684774422213227788058257888700108240165940275775055929192518329737294807651601496408893716844285618102398414184339983023989190797899693140913634944483420428238458438448295485372446321230658317154952677146232525138100384947055345152090116673687402525172377067746646406928951753144403542194774222918748234247025640354588399706640887367880686437687737005289597781666546526908261864319681341854102193194264699508744320617273769395504349455989122569598854746147695336560004322824862938387947797763086070923361721184768844264806564773240458783464417284476330484877192595715909058157703429525697335057475348107251084188523172507846079491501829093142460457857706406771265318566617816107534936897475312200790364667756474044374144137409034925083277190907976611330605916161881459411952931381359633189955730778589971519953036809186403927214376694407955132071293501257522384777155911640271038532410206117396354537993248258919928449378845118123403695944791151055699211799957182115054989083712846801355171013185652803868118529506793832928940417538212979643010855393941608776062345725178427570428247512522138951435921355749070864771854471938796547750769828031606643790064430125356739274554626873239749727211078320425679280137990950410950169100944107259155299341818645531115495219077007556330222365779239260223295194235980098182753603516773581224000596239734410176945953588908887297399038678007020762676610118562412514959877364734454466424190409404362041641469378258670818961981148913594884102709732748360398864839605813119357096465884662722360945382921246401166704496814137030448355137046607748771457798424762213900659609351055562125812819847271347830246948138392681332477364175570547385152619876622313759261754759446556200623709102339916113532660402238778793833781309925622203689610763868305025076585741724310709495937727585892618268417394567838516823487832209594092511354059863649676292565221955697916398374194485573871963644289715541226839277314045390492657515849116967082938589256004917907585932321604033918150804808960759666005549973952775720956069012882457222968238800403736594301879452646495010064397956853057078634884392951290612383848072121870814446138259212239068624785135320652374427403406364135219987041353853776229907692180325032674654812450313548566230199852807506918423927208434655638932423375686712821745513873149058589286046154487907778047550739609948568655849141256311172258467484533376356785661012618460196903398590299475852220710365800494414690968124719341270371184388956966406623996953967123261869874881152014324309341708348077090744728758799955726676496463709389359741956705733121920660110307885632940985025042030731184368681364052490200654406804333043395984853619381134949759471464465566063134324204947073758517138036422214618879282445471644450154001716378695198905445027504115181610959024236764204150860383430387241873475709216092078696847255506803304355579404930797586574672396110990201273768172100418039272288356398776446163659772710476950628600843002343693252945157273422186217487488847684828361283930604086341077224437399995711842625645692671153269227376681873198648384228479847023724615154899004886203942867833720119738491670214184223161569070271819297815951520196547066023416838114374760509920007386641244671933856589319748694083040810622299914861388144372660806358267317973986224996278833907068333907874885756239080339629254474772817891252534104564356491468652960951399375548901925937932182368648868900079140853845002859926856768738873623844987583807753148014500452008276542786040626922225729135538512007266947411017508030428768769955913403874981064720545200749316622139589379110051520994285953645750964302938301624122969884494284610206714065954085915973026097385196838707218287454677286757664716616919561668438400849444454379794993350609161081991944724873662726525544911418436311128156346544578851402838231241764799427551242704383811997285448296320923830483348067862431860589375916470751456661836623571458885753130218924192462416471825285712138777556089383920580588724931665677350509218212365834746824757448918203564336194641371836476666780520483691535859396879581198892283911727135659813443819877785938556439611050930888253116487126840690626835450510186273493831771363009660013618996170242555938061662041882521669477153709946293901375230521001204736131776147374318037902054951308075617904904178135255534350271354947051505864850555229599307898213242745560786349978973877063022093454083141600776792715265434127778790099724408837182359036925403460250862960219138300652919506072124093096564281680108559403467280725069604816278273726661951109161661316692220768827092586234063900502910008473613250620935379521199521596603022363694722381165890647692475641535759358247254542227072771121762989330159599900400556279803070417870782048119593331944432253603121287159352285118227067342321384706509572277529786910556971807622998743992544060819417101321857924264875506242465666700707913097078772217821790701999389892867966004572833397807042415079264609236235425895973703464292900349136258972690609187973115794879375838139113729908644610131508481810347555576258245376763721973654097739407938201280959621979849971071198483363587890474944674830058314017094913896806131150973064177386941451262629669834418462968612331097549691799817781643865606359636491934004901767790169342285230860272169994796500486128556582448723705732387931068139423165063470433074812755352509667191522285297664995084575705279222778380984149064110565100357180264697287457497776385667164158642791837856014621127012935484432328031846429848387133515936143649486453972530704306096966215498521923898927621052989514510484279628434648023653017743391992327250355267360227404747949116533160467312498984010558347664910783850617873757970287979161205983320446929546849542184701355009923890936562515986876198088069340029515409517910529309390432643556449389039151753290887338068477346645872762286005636590534574746722941996037897686437373786677489325361657257711392878431356601628552760829791953467444441328036318049597269292206576751879173832882190748557724250471452716790899415816626628617479850693867179146483161009620065469442674464094958526808310568968774782620057380195082903550276283190611969869044195420485495056213974726399538023367394976370187597405890467098899587173858502181337446545950429877261234300195198792137643933227051794296843808818153121894685189540291629967487682073341516518615800361534775850985434162940309014682476393915741247600784535116937471234411209273752584888526674958241738966037791601290338495710050204993454630660954951668876989374160754798352662008841720333109154980078889991659216390536539762730067981267853174348588162644446234839533363963135986529420841077640007114341548895360596338176818454340247961650907448207186196270717536781382732762998056109313229311145479196582894970126871215851591032221617438699707897875570595610358620130941207100626103329801418225498287781648122235994884489049365297084769570264442303567334694718202229647246078232834431698886948861955795324053056152518529044525104733435880831497437390681850502525528585899490760352353560403758179051681832314284602212226077677640318591800395293529160768510876592979969444213550897706735378741858787830057156711289822976889270606560264381262793154265459615363999181156401453152564817111627594820297767061971900823406768727089100536063887214217507031256158096937826683902625546134729849450916948054156632015551903097762129774228568991920708000362299344717325579828671906546278091099819159065549378540151574276187913057415623643418956360500977099942216634731719677757325608790756514657615674021923020567597468798067528265457233383097213683933106202941780803863766393607201773489716311291592939665869705096101945402340544711976762359436738135959816731290486020997827947850126285561855397794748301481206981907521271356466582107380322167899229048243055928212839889932992921541047301937848468823127880070732960095439316672423471289588063389398279251768879409878356522062176182406430785487267661571711792937018236961365400291314022305262938677286488813964330395124444428191464016929367785249662053505667465587218166993116562047459176581283867681170439894846579870543777349735814096981908064964041100826725562571970329632755888707442968063274387832707153878881049480051182604168966352650919184615789546597171832094482657326636050945022757998805360627195791964984266245000465431892624117442918511116620601709496595388628369106908416496847782704447204774956085020747856216848121291236361557801548324980463448303681268180418815885768751856146013713491950959550756847700311250357253008146288716674699645612947985762068210784501125960482148469933719465873984804838176580066397784741321376097868151115541600978966455090392552219270591924406822929224960962119766720915877051835806286902810511600783255968645298570704401278557613237556768393350013329922550261154768145652691124057406017846642411388062152157522205268691793057442827400739825072339156287285138056215059490461797958332859268113436481486286794575666714875767782827280923094866487113391803629902898346825239102214072509728972972274024354238689694571579249028317051979500757486609096911951763511357968203719177460945258886424360627365313729710143813302235691866291114608039133489203348709351313664756657569118320407665424895278178183180668368710542969567659224381356000882270966813661110803996066584444268580395528687991080352236542805688093990821574191523075525691906008988713897137238962771314475912431010145332731475449267937955962766282216117760309466664738904517429014450556525621040759636092030190686584586555027690312199583047651313503487196337109190240991938652812609099475794498059025407211783007986554396198822272192400736378319885899709371108927295747990605876428803635556344351842438789405913715120030626994483746640711508769807571850329278742088250200150962139930144673365833830998910653256981477958229406790135371405382700932194297354832506888481762337319145639176151608397996994959703382606148296435222349462895535044888060335787816855735503688912654163676415421750126272593174229484749949833349557348825898004612148106312131472349521830749204115359428995315623999014162916973566330715744539072281957536716655451205113108190783929512107517122078092047498401973671836468063297226747725817916728686769254115993911365724075219000338848693729605800839457231415231321666516057310461247959256568717855053045634286995202424894543271710156989675964702280612599064946885930481063571582487827956520058602637309551236283522600815348257922609787940538383174097035613991036403354028175083148086177306860979831722282041980906792385383232382343141151181901142900562433222231563234066628816726856148116815651916667355281071416455556885782007470280595115225217092331736683500681674296979557735918578992411502448686592141046368443572740544599479528302030742782687518862525829036277668701150056221177172044207319410668163257938612777246856752950553739661611103392989992093382099066465844588653175735102456245904809285322694473515797805086713254570569695599201788050030633865137012274645224672871309415915244427285745523247591113420830987653191883409829747156910448172704542623500819892707815853608709030692716100749812005124756482410320245777441280585392595634879608425222730442616727165004548162119527689972165890090789804916474628056409586205172553920442018220250596135571148127026992791278052721203992516808540565112198867636023710459623065807235103394961095351221652722711208681401290200645344083278614956321371888802188438140134388031407701251879991778130669142197096914708390635686308979589013703543942484881284369238970451475735730376161002484676878766089940219097106301210783052411121616947814345799306396122107045298011868423643017262363865969213092473805384650092019593570796290834152468555266672448192621230618298482250930342698655907621116187453772250206823890424114444444099808517481337376736425202323627054983197994805340490024831748335933569483039600948955915269403866976640003836636105508847566380283867742387829568051464787121639663071676181963614890792461772868660498616116874893687107290463926334428886584498753643662816200007158176950218996804469747553765727362983005606465299227511058323980343768305666163135193868853279845777120097968895539342618187915264684644351816431369406887766523494039681840234935561183668439010451284303344532892857954164350864610489842818113708248834441105412511844151014657469077083063531483824444420504894314022428547997915082870334835232313591318417848905540308362999942517855105895720309076818799851062215710726312483532309370147631824418824042930172999669003042769908150008707912645996102072738254469300277008028923202649392708479412466243085514654419612588911880677162872992363072354010590166136979597164263252815315974341490505827073340159525811647385503153527328328654666275050378554300113125843266449063095246514129977433544906855452199519120228946269022927984995475088816595253016268742353207374088819269520252100364605979514153584676540759858421421625492358156741822958591522024303625391352096985113389526402983688022102437521293978974767172568839449398397666190792353736279441695859832571207549479489307550412831499876134780573153048651501600216851361671764672597456649230486291982297122558707213040680816469256796153701580929307831525540456416051304178479895629639553001985830522356688275734551452949186189482027279775607389988340156517704973359867852244200251497689687390784280778562989299121995138845928212676342584881470276937274227358086791380422072556664789229321935477172238930898880071686514912502529227954979945152563745932990363234952884607449172559638750612620345683700873406279911517762037637375568979800723837880323897567626915441503440248407899376510524729682132055657136710905504051359574722758496600546260543101258756760660294617940130729310079927870226361608521186666007994634883679983448065474696023564056274730088635129800863741585947564306928641541576192290675798778530670306563979088746047444717190772559287601112145812401912167361045236658633823060833836157764781169887084448491206085962228918543006894172716318057313086739322095103370079015897562701605054410609541131835649628895987257900586008940554798757778206368287143754919374152056264414486930487721762478479810602890997750096528796264269830141015874676351986332672475889151282209338790724371943289379069263721676252130583504038405258326863019414465793719496739352703123691569326920999973028201987779675755885666409899391744410564336681264480994422540459761226850068629508478139483655000810349203217718010076865965216002431361124524484854624597922561052002760316240609878249779129404541457858562562388744558720914128069395746597835451911693479316142491052036166492628556931878174649609889603162236896587583664787882603967147225972074683789619748952154533014786777254014540593163235837738574362313226228807585903808950674344959120078486167340061600224252991719343066157591587003191145832294911335417022155803354200381416175755387390964066905391678738445424193490697225191133315718216796528624963646124091727688457384059003180393858859687357681043914492360973245826730420155922844597852086186403347037207123921372588165557063035692961603981620074710238677958610496460726100620011512686204614510170400219017445304677098776627597302127480986947758078143063957524374088891019619620060630279441026961049308450234670973996029802098937036483042159018638818811543937568973930569108434938902112724409849790604753996998384060556843763120166072264276818901156123113864748462783675598107742987856900017683718768182913599903747125431415759829785881887912079203169486794483355628686376718480177390512098503086257547977859105455813297684349012394933595338606890525385766107572524648960664370530650371777489736362666267573970438894435288290883091613740588378573140619575759026550711710810801744215868626913256361923444524464545013897960902628492657519189766513365371812784757203771692735891785225082121729913866599226121723599264721965671612111812951818748749963695021774207411675656862453565973757241315749730421630481447600156975209050331955814207657237900047814421703181847704923401374544314275565819311073973179257314087595458831271015367491945289975527020719127205638129685641847590327971984190933079921042803906504007644186483717606452363372843009651316042138395039214229457391053106874105840369212316784516268832091177505201412026763759669532597644150129082162267306153910304519403642531270375500804167611213057471814520360486484498927819681017909881919430307553707606116483092905769925117101695389039481302161293289958054755041071173871210593003466767749788129755653318404054673006283335171260497513504600552485263045722820629105837354193880531584734971536679627290184967020937077179246580183373195725949803239659719947517758214158390056922740770399799379012768241920311653581229980591742800543894962534832450365888035886198937942589224079986496687097533611325461683895280695233542840432747586235060584319154120598135241077461781131253035409220708265865329127956284338956759736956839747709615746199740921882450678003771634207953758980268008329649172379462053487282093403419152285122898061639295666467415537488457172477662589318337299982202586226796534869162741944044008090052234251584343129788265673328646431755932850864025581663090777801099644834354593049477965836642675755296670366949615056913004779103422223566039905646423218535382094817006816102917535115576782989354869839620327429659415713665078689826858859876512549506889411082212707420859426471304824903232851450889074253455673111382888146996400591943124133264952305217617856330470802565486191726107539852707801035784335215874925498185090795295139131603045486517959496101194078619566566924449717489239625525183052580031787904825878379327134632433063184640277529246494531757054607379432681831128742087194043646018289747752004696122161667448620336118380778719274884284221011365933202029469426544605567129156353743257673921104202315137778510993741760557749959299860536921472468897230958904939360904542913434673173658061330865298168069079399970265592753921966017866945727900833086928768774192410519469206802987200925067343057652368976070759422421435141426972461182700383241682591757529817567850833176642262907204081262603075083035526472450548024908217259709958271226203880769458961526447505208385891962761944031523224502588810090753671027405931240630608724565737843672900948493116312920698036021439137625427440961788464737652739490630489880182592345192908856083159113558909818749459869586671613147036748595266471639462052933513042996330991647791616441284994510525821188400953281096571953738706823704305423067461695614363322761816109070492238559554787703252369573448130568701258620924390581846478956063963204079878000094224882040185488537101847393430455775332999007406668044449664300151732310726199842876833211740583896087904472642832381781909035112942383446812055804329253495305077873296577602578773151455373698839566555052196692553982987347111435657972614008720894727816486091065223184237833646553358192866322726605698617210201285420572034113103357098822721196298526773960523764760820746362768054899639008701705089478055491801964840486340509178943303084589081864568491759387220235624789019379622912554524722745412154055992337347163230281642162899299247609277814133889302639316426490333496429184191587978406506792570925564207028099256498304732922921438194990233251579207855538992999816231602822465404632021237991785950035568619657790566777805836065358697106273258827420897763252058884303987562569592026082082420061935758552662891173518137037335020732431577632724287132007515302151104768981977377308273244913466625104936881219578818238985287713674752572544917228655587608904911835156980632698598153045522228587403579668657222961529721868490815240618018360019962882327880510602916867234721059052465309237246854928694922188183269956457453832801162981699900840616060318259424346185686774149571940556520635088070284817053323286027018466592018768107314576195175412687956026132253131009117308069981744705461744888108393102218209554854499724223021634007499321658197545309984166334197665847406173957270221811968367804567821778806495870362347105497222835257685997023665464550219537090164653424059794792449126874661085377600442797308022485562379661447412293151550482115423759797499657249314819188283968427829528583512404352640376034657438338337033985522695036320983586174894867099579487190240335899205416864510393432908093253792465308231602613053874113904290998939968475829139709121158536314871043300404943736510490772855335676970959970659025255076577508553435696429075122856893835806949172704222410957333091234707926747111779009735347165268410258708286747879619502133676605119184248765332149848452191586280326984132888549501517231389714782545593318767062819852570046630578250201559636540653826680666497864845465851469651044872624630554718468172960045208949201651382749852660282842629930903205811462103509208352656046237333590246634379784692567625934254717447429913599522355145344927874636908966442321474045295728127848517937304253718595224274761033778231053560638451144861845372435997207714014846181569724128252757857393231225937816145889613573747479841044597411974716548341748093585228651799239773811152905405768099583639263042794181766695315360484375657626590628030671016560458097539927191832030444689774639793552577172362126286472867717242097989845053338532634551457664655688816954663901552007083742809535431484687991571270744839656486948954228110291926560939865503607284071022969951705425638279695262290620181380978042572562667521924516910164620570889430093156088685730892919076967530107509815496717984900959773175911350655871295063938618491523470184429895024715577547248968178798689498967227370344917795401032592866169905529811795442834641337540178700398853950586826020799262978009162504100086052067271446197416152761725432588240231906671555898136436311002204752268811348877523877521903449552895153036194158184101590809321677562353833269626952433535696182463623316322495898084139240361641439708454424854297341826158465940539414987548414996660398547484686213738451299192207789273854226191975412256994325955791222909269771691599676383847036737631495203984040709239769045744059780569788081172401581826758548086130284941201899112982541660145086237191551533460021759000657373376756370786410554245910354360672090517488431368095601653967180870930614181563293273292873545988248766806395622327947715724944410872613881159451982478448957653527756034098736251142117992281038088322016963717102024043741693898991045887553391829037022362932444464433048245435127400357014561763928641744964372562438136217554039436312533899372416781909256406633292898609810844112442680218104606187797607365420979816468179006162462917848842954149359196373397515876450807276838431386249670762136397533826033727440270914382699521866888851730718138530254814775736568375319086930248467106847374416947430707007609122245339477494157783792130307685374621369192347610208692187422316441574658437183731757626859702806914941264609484094551744953977048026541699548714999491090131297107587639493858463156361750497585527963109297270511047148802936070715049414976959956602323455182741872391039125952419078747317813628313400475016632865848801781045692520834120718061796913303483974254145298288036035734959737613047997113941381786012808305228709419422336630491236408105050772615924396940544181883513157135918855609960579908153988076129825353503913492788554560878963365641076372802309170828445248733134257446005845079876962752626633571729395285983093877983504829818619114535538642837044899490151679574796165727005873760533849012146152307457827542473025312549030726250845063230608244054310881157021629361351091706956480195465448604141184735610408533925321710836678237996915221561086442598830962994208232900664398517878543231997016634883358274491026546739404005377935216742210826326437144290924794258311800700580305576860803555872465591837160017736315697409972632800532703370682109357803795094271616489410347483557812176858700805161532552283273368568627947421955446166653849025790241107499711565592190434199038187635569778939456288695278262487939392939909855374525711706122854067910098940558354936609818472381090137117944943890179365492824596659824359346375880410155480083669160710394882154102633621747168887386233541933977446293179765099812106733336174737230845355611284167210958169177283821374839571062923725102565247250685703551363714065119185596765920307725897228159168421741213271453829798310215248861273637750423868476181104541789540513131137204798415463685445282426722344177717591145957661627884197964380901900613068719518893815360788625138471536090795988508266303426964120606594111687799543832244152800484501338804240322679671076666797159585659010591920188942410343897686702599510234807413969379155977181552604455015581051227314342777959941243035090935026773072496961754037629910743932137683590424465083977598762535530250025502320425192135349541786060049508433724157531751533800583313896967951835256759696045874402082921357853332110749832604879202296685831347125000286775193566588513308005818616665151210980388082176109389495402838239264231897722505473742403132136218870681116222305551663348236219477560392149018411672028702192778985726138675616633984270545446028802895542628229829644799180580864729637691174908548117166285653043396282811824467112840734714694661492021046605016443241922452727869745950844663606493452116062196744546263189215731594293632114056769346906456949011051496128881515248610475038304780201467829388328345725401996120439570106540860593511877062093637036529966536833134190623066174020062794553312330178251347216398553193632469918744138841198306622312708283024145123315037573560243017787694591292215576750351279229426489398616318915352740734047418043563006431867978225775092574023771639410456459332302253974394119311578335715602488325423847138077569040269901363932352894059999174368084617894239618284475941521947017696186781092116618028405345885025136821636492456579237818281299987498006848126925679587635232409621680052678260731340322702078035958349306681413775486238936120241280541364413354278201466280919808864292918559873705655414846768566889130906179890199175757704474346059843691864007090374436906186257114407109582077861230484964454208367541503604577527729344785464624361354545915875989994529097813832722131208710922194893251830212978976155039389615685870242498604715899871984582385336656535124185963984908313465606639986523057684755365639656870813076124092086457543884296488088342600823781072810253657408657137801549186847948277048458674698581553191710894687893095894584884334349279787320371684370348496030794346422224104198294454578365470278168903125877567471910398830342249198447301621628108092889448573172407037723383534107274726022413574113088536668255191065327915506774613039428515247853201829368105778269600953573848689002617163792470341449766999276278826836167689791945042523126229248997762999722780852208799828377449197516637408781937991446791209407949559841568323532018387711441774401285930547098567348787813803841074733175298045680555215247520607035114982515046225665108680014794929791520416942352865686544628741271091073020340523526203045331133328775579578866611986844366797679322764043735349902476100909687965577565767714722070253581658387987655165291621175097909654047306067779465740201673010977184779686683245393961985001175278849610088610839644495511847626460632126405793583592455044158684550311243231469669328465235562584848606141422185517309475539350636297016506458115220299848101190272007111884741762156138642068962970636874541593562707764750110803451960411793309351046873219902041179266446282046289339067857898600901876946610664227073390336133310346198956122263874090011295419011634704391831676236451157632548546045703186683534423487410496313763486174541809575387995269720310672797769480109242436572681299462150513196950942768420097070706622867240385601704480623828100179829442292669689581677780098539196702094543122903996142507198398583837008173427279119638356367347773655354027419943108198268206490474332834127096419649609647094131091602941065175848838103584288202258661211024359582477644561686857903155687503148249599693663606256082216128611075110114559340392692488381644087149800631224825875432908260783663215321125021518844677919395072661503156323763324825518746797601132369944601278114548380706660206571786014751229811917957570870827662067365585873274776740644663050697600498674502928600619911994665824230903719446228731907141887734698085599655614087544773159267460150322959860623463754469611510689398568054761801954025578009902466728772248783343528036434600246050051588842537709679447518151904551099297449632929917394189490212788203749683374348014359068717315407696653092358258769183002961913202902601100433959720511647314172398587346000180091495716065388793112824138501758236158453136474309955819070514968399760115995299057220124830272002879489703481619387425169716908716200879549090502434101026713452768289423946084573774436861746959711882425227103594713955171358414778373548815644132863614225458216002226481959579466928819248736094332721566903804962687556333298863583252309674984808832482855429150255104190639183698480413143819405295368233110096027624179465363455998918391504000191901492558714200414088605949947610074252533735572997887464212973108239019113833705286275010446626822938830212265863190820308998728300859342706010095846857249549406259959004896800808594726915681096232792457154199913639055683574630070253829895635602115546156004365483985264008208897952208554162692782035959127149143150247732123103439179975006344066708123686811704120647940388013946886536693150144018846137246115847817162520516431140392758297628629393638783077799965646079429660709057357363658987773287095163200329851384016736146968676708727611558028350418304472107045349449624099158303355405624315164337738316525922886603097113321066415136934881079211946829538041995143387605028131709274340272993499213519778388930843918378221721216763593930414008493562791818294412781087062812083291709812271150863366867219718475282533326843614000841931268374943617234401186639562624783456286647023200661252118169395557000341771102836893055888844050370977324111279146407024895688137825010995201931018459524769499854009131107193689113602615415215607965334082208359997730405951889223523601857581340811502211547304667708866158975637302527106030997409513752415619252580994368080678827495630214168305659007302614571136780521653705316179777994033269430220390070146027445537160928683644529044845268708497747115994327720386817009623284779906737257435564583745205752149141113840002614685352619318943737859673333245653695992023763044847339186566044110179968910237638234342892585622315683861570386220263646781936877787557260562872593262173486828598033868162458313423638732925343318797190167490532118612927003272413125737621405911571280370430507609891944960676213266059113010900109224464891323957957460180961415510428630401677731126326437210752348294567602540238992653101949765516376273377139743199854462443888843127341701981194995108210471262889348081716561158462749209034272772683395423963957798783907024689100948761095206091910760921259713775433167394446677486239580119000527428763645717252558912848483883486943474418202514523976766189914072455569278111416435608360125524641393866902384253620705030594517942337209301477061370969140433821185639208218286344738961930903536638524206934747643477974327158753941074229924280809118180875411734026176248257997646102481604867411564110464011427425348148779032269134650581487382316067239297442617188304729801618809453832149296368912588657020979979904929062229804723884641099259833187598369456567044867375071493422742108688497764493380255139309786576704686134847628088220010574298716280599404807041393907646263509925116865866526227791546482527208546040799614260828474675063106384220100246773811001424086474118193327740788562745698974974936265051146508545057678721207194132679910609977654550449465441633748413321027645125382372762679660230715346079478856028295641272748722776031217558513582271347523627255669799421276515206971086013576158558358245150548963046806794173241930322195319389004203036754428446293865541627489988613218412368542622298487259643597100477564426967380444199276817219302948152011969922371401611343281617026737551517579498554527135086100189167736472913728320917875215410570590714835165768257876447157948806029032177002081958622287633139870927827867054882586007780420631328273809031139367514282667495171166209013701514126231502799125998967379430300119182014152734957772181564867721357238915556490811014755963634053171180635987631705186934580723962682527815754061655883997479320419934085703979531474848925850083579925546090818534009879704230940400402985630400628288958516148979429176316043066549803217581367935618120341941548453785255794193512980268005338155525255044074972272292017641570795086527090685874797149042552554191961386808260438905925833036324650772659064511964939581607287688068944862613562822344266100140209762767242367646239613149244415391929577388330160101917866498085235883815226254762018787195919725965274844149902992273450693945852956511041627116418749081109055120968392144567232610761081969748467356535014815929870430077417706347223611707196446457193517247181250896926671220805559186789126780329750565763147950484105730050142727531874860978176213382287256042507218559436998036588332571413608085972954057387103969901627834132325061104558162189558344233812467318508953283967900631083411116657122585228458487939942942048788631552389249624726904931758680733508329467802031791168155281651355408773133665670727864709796836056678958183684410025100471462793019864392344736587779358557953246881352851345696597834135579655547985120122129982530639114705394300949172977472874105941175972753375215060775575031339867097462626198408321814129302020384102494568948754686652320494253956044372207181208522689311301008867237450986200562807598681482461148689670100570398602046820227067004563268746956537455675477115325481107233086514693066417533294259630085657708499660538854286559678658842124573800688821102240060036805368484530589663803359270767276682496628905268645085892982831130670889474513456133320532721121519036605879011367769379493375952961135777901068893128314796381374076983587077794098562060390699589729677939271478185385075509514616176815962366879326734318086123247613373171811146406861543449264719243180812775219495123017054082140993705229349855485504424530046991081933969699112503464883516774607095129052877034019667865560983384188799275584275436707283040852048528862828472028983167376409247722364245651875102840463609562651992234380786327970259286314740305231966826925054131977287637793911483185569908456502374552908465489192454168014753085159266570958091675556392223179669740861119107352764978611717629955611952599603649657227310785722964334063560763157609475391891338454381084461603828029952976780049765235683417384676646205897451823584962934551566340653795641647905295757526603366150573241237681201550941629370264382587477517400506391671421331286789832155846933402674861032435814446374198217750964546100130945863155507397697423128333859760460076003707857793739003420266339427300301370300225648774917703478571752129648476398906753894658141091239698578463237062897099047418795498579094664905036510700860700243256517615556026240035088966713630110891576663903788985190870584132165685078566479947846976274888612081117836946726930776304818116615408228809188887137166736899948564899744152786005940156400419065057107291561739850619774774519321711630338147112890354025525104691623781814343076750938197334971191273362596545133970665278790984838117960559523020521957369966475878116313804895187102188422265822325822043103785238098079456830861967978985080486421432985571135388376884117679469276104856559172387296957740251876269043401059186810408294597633065440243804490555015812627437472287894149032051536754213211692659271227728975215881718913845166738615308288322355850021591961075135797770705894599579649915002860310460833466064160268490188915112168932051449597170701295187915560579722504072768344087888352894912282867236517123045935868145201043591019546682363708057031667041796417909869088891260618407979270966586625760561245628508671750180081359801304349271792971271818042479475298635941550970611263270531097936397369995686055066352201607145398929342994410068529527603586218555122481919174206111006138622408189650235563095764567011959268185318609001783198690947256614278252790933672974646560072603985511166861701270482387162812592628397070013683520688349072878949720149953228349332001264758788050478225856601236992090167865264730414054625698019288878320488827955025856645428472641792090044848279336504019617356892587778545317199243320624415362331116096065397623509117938248852342440903538630680371352193587063627934571808567301617089626097870313814945078516116664830859151508058850253607694566038766320946106146518181371143999257617305279948440827603546292219555212009826891184318198837927551410412738049857397876502563155840300462514165744891096408530427252643711763108390780837642640207952583175332873096834788484158812242870354782552189834593426048027728916275859622155309692101015235724059142314393985743517159853615777398370674707798334993035098176375075350529255001447295675665202513860707816840330776017564900467682545487227969993710323091063613988785218512180342881890881802276657535765362750736562473328823826537732038095398715666557748749632976469291701539255249587302718142708058606926269434934700248694420770338477667474154370454428901400242626688317081555235657436843649695931654981889093990288528910186735979555340960513947340211047749327150345867029230712860911217445914273899075654921144910960059963738677113972549365557853347604506068544824409623918586781313358126417795882563939074377423237885349120180873120400738451064451085166929889678714887228838981097853581088281128879433119439333905175908411247934211764834497085586591807751273450763153401233611283537766396319701404285009470889750413567001253247093228995631561236925524884656613280022810641344839125711836126823143991235425301231640708256669363316150436943108914371784658959568855655512436319866409053586238538323277334879564475626242197530227887596939522166708838411887095252974860048561357040499336609145552608195162247956842521044773232842204922630386440145141661794866016373050799215833577045576120506396814654265962902704073707313905074419372387727215281563601029225541612469565087637904847474228551443755145170757167801041681188448311611357374921090617941610532555500032457978832937237149246691677213987972385047622493595212818384961281841182760482851257257940318401781024594313019897782119485001154658505878443515463000518955572445907897395111532337796083520797209410843626393439114823356759399896588768145296617966451355578588482296009306344946219461852610715364154603881051604477304702241070548339330169089060054935856392025785274512404130562035118015699800995790160112780962749459132047742313595903213416063772633397762880487443227750728906654710114507028459810385627818386747373572258209342988488470052493702901423472989307877707199089897986467681912413840429388790282415349176759923540909909774000246633520119921517117020362798069197101702061391230297572925430466515806318398141120458132237433949746702770294319420998316101965443659860828552445473868123205632768538363401683739172354570117434841232289224971996515528334038127824488975011686499582803863103088683058816442412771052944479156556653024544747160209597622603624994873402829624938477835161677786683160288754567241818137267028440595268614228742190208753759210197867513018587494666581103798984050144251879747322525659619775665226566015255088917437390362541654365729355009751806167484032268424508317458818871123299376412194619324935284308700132480650484260384557540229940908079540673647954124627520198290270970544732282468453635067291057760451675575677177331313772697828071421831926440053506281413698533202009414103385162870884819180483437430928424468503283228366758538331171276165758902797226418064674140525653485762525628661409653088987742989385277821366506532715847494585321842783091602496479418184079497605332340929567946913685554751319770453687102200189122427337468603799882439684704578657958755448165144329721227335757757709266172279863825926720715629328668208704182783331100558598815049052849855934121327958013314680949707587772678539233199949871108206575477780527924066230371571897614177332309880412772849219888798411809370928542649153094683972122438166199932396427307771105456966816608248537787397370853936777749292095239076585148752188671015669581792031219694306718987525154862015630189949914723052080920042885375727447189404795527160148796576108453455490737963870683748138802021714741645179978831177359207195938555712049048789108948957734421053759959161189189368572366278406853042431841277621980432453367675969787758016036330393715747366337198700709284368021521193716921584413032019578237764663519955473922526138369969621607060713698902644619579378332337853214154109936982016828077065574898413549154146470187606355524565496055480179524933488545858838240978156621136543206995233237711232114312015467684796063256120959643888317294691830542995853834305112121491245445180235106515481021038548022769926591167828200093152090055588302084889460006117046169141616308215765353042806944704971144803554846147307558698094028278821695745139940948135031244278624961272945525792847846644894833557542955617358178002119445939318770385844320837021864575498514587257572057077357196084688832423281964421097659603495758203128619735936477214759718660118670022207524427542734146371321723297869348418415442474470076945964946255439935953579929533400315387375066677667134991699540291720522566176812033609929142183541318214413326230608349121683598187115075153446128302158362788776119976502330750448748885243356093429038932486369316454076952235391970001173793528439648222331853277253510824558722601244812828744714417335679691244782456318291686887256287608539147706294173675830504261128374995083690153911670193046352869508621947923385745823666817513997828616836390930537382984567805896915349151284235434242451383111305211216361007150891413499770110300559756508697346961495136508099922499140908688403493151701209056452902481827041345788618483733843519028389382726059737356292569440937097235850026192394419057507250048752053648733208761306849278529803754642932021279682979733634266772659085674568948860206307093628191963653707097916434121747716972401172219523152950226718455631417949960502161873359599722876191705226697621437922540248824061863122425837824938376672768008693820037542610268690101659908960337239777262595258467058932797856062557184053278888017994612909571013862212037781394080075308493925258813044422049588601038714666053324620457160255013951472336595424104486866309474972488728751991474267979049771080638333741626095819097764107265365095091178585980228811316618104522249669612951929286113067822204159021555623092368887469265455752912235979382488968633214366118578196373487212915210423682193630089864013446572803754364636867542003298335080540661177827187657311080192036674275868252101617794875821428781683757089068768590575317607454157033634974805487998897752840768034372027681499619355133073174804585133231695866728179939389692435111131245795137978916586971246562879659923283625375470241916258173760738347589171092046528393815317304648995258087576562537260903516781201368746804869383142620818491070156579032934752570626939399364412560683534558791723345850440892036304254525325184441762370120530186438940844338449688989873106392426750619759374662853881598618570146794763735115786872237307057195542638860243088519715188984674579611767460443652004354565045837159559407646537399836840488202839139580003814509133520451200930435050271291570637096306318194792460247224950826098367234515813388333582326428684254355793593585841397308771304474276225037135844188653180951317637877696716665119530924479081989070447984318926401852301554257290209481544590090881013091865734831554889297430316762660212743702990629461976240051807648839695091579826085379706300981350583477293181375859027899674448159479253839858538852022377443663215795956604954145566646082093270307798201365947525665167586702745069862301123076988214472428167703471002210751792657178929319144362236883104230946096068009610786444363752262616344591369599906738251744681106697485802574960109050655933184395194552245247266770631545484121062760877838306723621736663090042982021671919457656856507855117314330213837302857733322711911489228713096235622796633158092439604888398654648426920185475714424867080807653458943606767886963936639457836075656165364875831915536575837812986761326478684783960448814723202401013560198870318714315751378528656597012675650306069035065753973609415467675985650839158833022357483075328683457238635813966457607397457954407821374723154983261271918038085239577608606764160912612134328619376836708691757227600454392224334522889637413673666726020163336871348623427736465651956980686404217051091790371884248567530707091575516674255762017193402556597930174747848737283662594925654670485015178915339133343684725702655058794794903441053800711817438994410971510699309041629229962251401091484461974887755281197210369479121737306114505031484986483946762755819164664734092472288812055566562235349295435923490165005992821247059400418669452199457087550211851916244683594651845308476301939518458167157113485410180230278667497235889392963894875544269043842642055747337896684886534359047074733913332879027842865344962384278202110711129580307081214482519119997953231204358743289570452187303730517384454389950427285378570288437448914452228864053818647865214701861664556560262746718672843077382698015465056657891817559459704347282953315931632177378466134098901739596626129847521441299503205000625113520427179323953562271083283629051457927352827933321053190314062794081953764867775736490347900414434586560896976747407760992605402291766889997275829343350882216266850535454109842724583356351210218398583183041611741887502677042591043735357922384003946357250889472947695050689516043804636474508056765868343635842560014989876155613211225376297694107902530894429418512794824567168916336404967641143610458911389146649828834920623586785435380288619570602302023474802682709397612822450127706618221637488389154320969772332408145055445497461683549314085638680676374264066346372844132260673227586893784235460393648958347914479868084382920116432682255834612496856789873720226757656573501828085222909374869863222872481211519339771899893438051670800251591057158192713208243005193305003977101425812529100013148605917372761206732739386956948310952043853191312542332377095330189082082718764710435643587566807118936685104447160606434478236662701953727617602176154293628953044550656263645837007135697025020021005898458924073631437566751102650320981957235601423285333484738763006170669933749188136681575431078042492215697213959196367393492602764510457125794184406365799794849688658915313869440937030127174768514218694075513333028951034815702205642224884262741367968909142792886559919798496088140951498019873760492632890101944246974352220491069630793255984797493772149964770371526937317975536483158537613035991110618258473839331776657935059202444148640437128802202668165217780436984891930463292595006151730327257413240744325589313423212755468152856399391960708033356301882582824359777418431265227771247942690889491074382700308893335860406666314435608712446465407739721524473265444007610781539567624033828738618076696545837269234352307874492028862303540446479547063422976688186438867603472121684829743193701442782274291324917330535462163676410048802739741918707676839981892233653822941193356774970075572950159085015055009017619783983580908702093828023279356089342068875243733011790858823139361593436082041266012566539874304952679303387025466861643564120671988700273788308019186439803768434231944067882960304181851789200807577648574811854930710599626741127555524474287007996053808612430791930328890177963775625314931925286742924665280599457907475974486629022086588270327156331129463921519342543795304914491137379750790107595598325391250273562391173514539604644043416043237714290498805957614674871733954530871285669097015173061483462640251148422164505587691816043778958226430728612752965221372284279125607703144979959801855526256773074816545326405272237608970361145646634930457323953523866067252864700791038244387150991366050947171830183794396238388411632193406388573302299272237178430370949635971205632966921896930289764307094775963149999441591863858639276998199059449118860123466772140471999597288069391768972163575828040668600264445543450509106400165933935386823217112257983712322773127983122558992120123184158472862085170335504016731569441084912387163037867614631300146887555294987848157832447650482328155210291685320099896472403404960007117516960169146997936325033125012055334627432146716002952446059207943827418878402322434364928258604114584324708193685300358306290590898106806545119199307490062597451828498164610136163481798746142183124714265246362237015269212217525535573081635698271230199768002884016752387137107666377447919528482172037290699825412046191901508710806519884970657500374240034927149838823323280672026096105655644769217930159864212861218842679091918707919019274248974918175429090900084138996530956605234165011257069183827474164070095676709492381759760847803536382351857686828652129946169957744931754370119734153201919421741745835910435042327665278828518003756725851712870746376563903117710843989866216359122024333147832520365213293384204415949353572091092685624310053216961271799757785370712161536196943194335966418576021230856059213410077024827013576174368772197788842330228874197894848923662960353331213043206808992021733600386424856771896175007486656596381424263560919606218020646385463349261406401029181040815054150226685718456732461633600888283478477686003100102479363452589719932136832200695706334178229319624954333203665622549867264540328204963887008276444574636224627742292124170442749364191295740528782945467560944290633128994940834666124402711911784582994827395029238696614883431228370539720896311973350296328076400425313296234869519660567029576443418502519499257722882043890489803393779694382641486406790758434228553252238416294778967933737427862462483162630934226748914339921521709258907259431653923306756312550730018801598160249691175433735093736880514373003596024626722375953135387249752134457037602573285783212814727217970566238728835087456103755256041127145452032762642345744986106430919752129701958850696385369782197481014521119508455924164249431733633311040853883738733295646861973499557043322937589252997757332805280037642413213231481451157796114730296047095580360487582070754566278689618578953421223710803273943858092138972254512066709161232034811032326366957137600211967682325428112931180923920070780386487568189492292139767721316608045235719110660106468225593975101826511465477042195715835698173606916652486630365425959292322135335139992737672828529542665038199091609864515463263309731063433966091218480146796660273567661341933850992792715645155012790564389242250792642238338356276007782195765156899015626030956277093248681547843531273915504629620220781364165616059094631529953943467748380050467959484365897389849577929965245766174782639323576454144775390693892142844464877521212463155841675013101400450514087021463392301792683055422509727784856365903889409785311116285160459601869521765983618482729121126935749818385374689348301803572755032080205150160797765116831092015691121058409742351731527047503800406321536651309715546741467062362890194364657414539661946804633898768320214711433010908545107743955534638618359634147777111022720993671725804027142344505560941220252053991505070633364207329808917011114069104848662240155376644421027072879669723354760008089852796016716860590023713041754296024263918572752326737226161989362565502155293270431545509104145050943218427141476197986609082059802380975508405592890727822232447304124885952579949540085964209211763355165898432816270138920401317184040274459580520896522178501460607001451465099301686656448634368538934120810987224978112733008489005698855621799071592019892542154121708650775201147554035879748784626953103552218496433020492936837325574017267600991869474356631982171207269718391255020608089097427206767960182769799259000725724462128344515071230864401764153469767630981686660967972715099215999857434912412501812640349269384487911761499202882890943271124365041489786418579377408557092745906842107079960557893677591437747428768229766973064281109375290409802543858095578472734362964306919779685655972702451372745419264935938421494238154523185890657494683678637578081537319090400697167286060289140339859550944710333086955066446427710927967359450086253445286691533485600041239207860423184292603912252243818196875534650511385615413557993279483539844180226105748792409224600238110028085375731418387500744699412515255564307960673165881787021196003203652779575149991987159334158574984464131700471925246966710411514835039001924680019574324221389917908858210927968413326766294788819250889570571938246880059064957806284533780582395099454722844898469320249498940872693746457758057424364107756210167957215778419753788798007351105881617725599748947467775842240944049477784394002071854177999042117231176992114667204567004869612829158000411218105163904144328782511269981488416797095089859533049743089485802835133442067493649635489759205841133838851050033183872242925589310355889363516053748705787831767248515930262282053478717901193105467781879376519807278709636713607830981692750398444654613665503489686879808546928903985732159984369493906643313243682673434140869595453950055497664927256783103275983533659690199250165852127435392316115988886914682136203845109576997380936552209592346650665677926325944284597398899178190079270003241448268882026679421113457747407601153234069568892805438917703038835900807716472399416564127950868388941850898876582361608732482282679451509926456074940976381036619978797831540947153463871021076818244431372413491530584216423895170532116765024377767881174250784052345035080007293637398121498258952862345724732941004394825458498117336823305719008689964890397659603209831179139540339032258169817085075138203395525877824406192063331030046259517013494949997063685040243577155786154659808198019263563024703409646106096162500107551249455068297811323216239988735927958509492244793893611639995917249201213677678739686891127521338545744217574111202752817300390366445690704208891373954789528871281466943403253116370148125121890074922772748796881546394315883602628082223095846102676797936081389264169203152210607658579606466495132901780307973440987703447582874232100655916172117057041815267393892971116699098095597259869465828674627009775166433887682028205820771576923320185333982542800569059280314005621104176318908430441203208225371033118483607499752145000395951153337442511622572323335716411155147485240814749064853291917470722148419399286441539201033284810707933053561174221306020633168368602325590231426825929492883473356864638328511594677005939619758189161935354395345357896293455933620243283269609625000311761433239134405855603487283935611505368991220521699225245198701169632189509969647906389275721670869623870167723740393269015461644096733631446031635207050423693926608624382733480409665257816859459225072892940481672443853705634486865091795779174078168973660467225251499379740999118030169234746375444253445438397315013401223195486860721057414844538027141143687190354687144901253573307038967787651650359527508954792091681632470965934888151431173740892587309426985193223646669718257139658230371075622776876243223695222220435460621169432866290693048385210583522771630655049662796195148714605591743885110417185146197537289761075833689746792402413861225263105131991231896868787309065681527755992266235010803768350236881735383651510550851500290205844338016585292950472817271118336867522247557897766383387301947669333600713384150392249735162587404476925061399359210412320972353112867674164165458910137846607554167396517867315375747181419927864190312787313306686548749585944135325120205736440902899139767208907997698606014752368533865562534768343060207423405733816798974817372497238448480551582782725174112735171410688738120421953126585060774130599940509658640204010391989379024621320488627360748481550996422778403173079161935229198128015560011177157955087367535398302601872518675168954188166887104874719547005198439312489379914806134201776053445129025431710321899860885538129458984954511951857350240104907837581087782216490682631160516253675343179861433628473153134298018849718023171327708325743957619300784006433075753117017540376667029019729137341594099029077828640843733274733858996311036496255073043978938200777755044583080803594444927683527661714864152596285957189543430681230289453223826162641695298291682495330264080919558177114849846478120444603411511498511865249525792969498074304213493956146687290663741910985185370839961618861177713722318596321737360310894588199848357318403662776066257566455429913701294466804603284275056205618183189044878599075240626467573164947949005958635225821215824184149818487561376227736783822921159969291223703661476442465743934701716516642184011584245609727491796893648406172407110167231265049189961097310846493253485570792152364500342946402321774455911358783798752850210105259574442305109764998499869363929839785541153171510040799127252475135816252152440211310980521949235091985713865299841716379187598771952576995509431712358360909023625187081739190752845270455650426759548862588881248393309938034900848353497912521756209790182913651394548582561572122390387464223492600714485513332350479387378650429612563956244153027311733480143901377963127378504792288142323170328605480416750819680442919785751869606085819895902825444447500198184088474169055951320466857401739867135140600636202984658777627910709385188659107977895171770930510577716796806421420589258434921516843770672433479286707417183304230821888228201323939655384877525373546747735429314780826697436073245606644814246378884848501601184767402487129841588068677130579185169497916185972279159958560636859653232165797475364605806552731947788530542822127306689650076431638572889444963229925238000501860186115167506522568151454753227872883393773205895095347909594830278690019513171577613938320719866636407393409088525165108898986680921244873440583343673187407388926312824873739189753787659370069600001563659719254492747956405914630876255802298617127097500997152117002619554320277071750390413429004695123833934601969028834842676677918141744451633978648734568476362403330632236325712129956553236742338080313252413890274455868940593205659766084439463665973817421205338434976093162500356640974492428936697021512454775103678716132823349544132929808269785215835812604178710336286109507348062431743736446762675756406803564901350109525562770391275766803288148725002113464738183081683050442149919914893454781561576094376334108673541439595304921775526541697111372054392680661221835165835141441614515567484985221947002600513766840142979862989023838605904214910042025688692430385937475992984354677320804993307490714255193236491535802958280624234876686007663938187381209619799339300630919620928232834386269013356544512769298582565210620458400694447247811173582320683251014778926106977523468205308969382678524175349431675706008974316402193897278357608323415112788041374685771070739632616262653665981005731985728630836714133605540849267710612276891591201925080848950838911419852608345678408410111865700480827285683690523456750762972182115343174584629859281136037527115430197116014907489323388315649923419947957560227654926889971724882095255358782487905047325020384565870226952779479593191073078886158726467531578477737413765379534074345415848149189786038614463302745826055395446559532360222337995343472211711991867637589904956259080425568896005473754927213112781840170370180092556696245514483439569656508695903543738837656635511063710624585386684312467376165139166319910177567644880055451612189479547906488866316014230029550485609579635613707785397402013363887437947507669907455356736349654604812415710944418925281930434037385569685717543507248301110571771336851900901711472317858026284482454511859661103909647011288393924598689041422974401900830892916276706895566321996769782544111691407022522772236236270111820134140313966525641943127963033679490847548190347567312471673913182101148552137000322023617682297158068259123023031841321723673354061892098323085818533389819252205917390072312597725546273288145819579121710181460703537537835299131107207425460343554415638544798526955676392732137971963014100399445244525353204599666483655199682702120349412879567041011583577194063869020754120274238108612819310660831124124926813493465832036486967444202536758873557077639814295105339012823076897904650420238724844963989232076913910945182304150709601776953613621887222347203252506968526015780256195040966024996968082904035695542608011909667594731327165715206418587224724807414553415759507628292172919352694054546813196084106823850131509040262943752860335989096162638865782918726525504112043013623512013992282500249281792834372985950684537509771729706595356476144306096016035407186127235390886059395786808358123743029321961867673198387363664487689400004166532100272341663300037795038909456637653043560689271145519072835874519209710552508426474631963445180071834659075211335323356826214453781049973922806174340020739973775270515283536322736278295775744998557565610417506170728012577090112556483422240014445242356961746320454811500928583919723711496272793383256314366154673800010876967935275527812792948386424998210678746765520496214538940310108687138144232140130040652223448465878915075753082063914836449008993834043533623468759652539335619166084943361309173344214648265371363981285837929723434023418822206867591804437558105099876491569521370041841104893133564653430843781875526442572123972319993534014450516653745089512848527461607870604822747775907844183856003814314352916860571289909530840242030834193761950841366869032454193449164770100262633860094986296369453428710309558557135637991352069782609870886701649748126200409801383087257933163968342177982585189883645297398973505790261864474924415324743398204049064431329827641359070638625698595782563426662280958475054252877988714614114981153463541614364035601443952534761687965787800703038820728019351862147975514045792477084796098723676591227924777041164560535218713049587813121951240978935179302434011623571654131475967593985356113941762379265439471174820435951774407727300723762666167536995288276411720712865124266667814665200444431493054028577269259073302961625305621108183600243843167600571614038944205896684894908662424989873166791743037557807605793202591389605850620223612496274616015550376855057240450838536147671554455499349581653205067202434492957231320601450510525928818112091189202039432761505002840890751377496385063942973117193896942795408968200806652583352694645347651473147829791563742028585008296555278557527542875742970995547850774281432406397687682737819455659338509138088200280346207599640189862218441088849983380155775573225124477907552164232721215833891194793439868644739874455415450165998439615694976654639252511669222301735445191275492424142198504633894091482883577784071262273598004199283820745972694909903013996094943137698692782005920227312136955844126518783254518466593466427267301120015219578735097335122769663659612676125638205253973029073760012113364094836183909050106576393977309040379479276452505470951774531914419234418659812810234994185158704644782609480153442418678545499451056848588389135162149018610276515005311615110981874670468400352694227406859083907171363747124917572617835050136772243820150249306841644028836646215415395909219823930940848519014657676385361543173117080801028581072993946868047351917010603220580984003822791465220593344804045828897327766084084347026390513232665001899995745894011710071822102976581090432557135641946321419680970596762967420789258275802500405430746935265424036767252334885611590848090349498340181423969065451594776150571471347452400436273156399224237618753834373047013660749622347815902980342719227958190160824555288770455349260479401072521069876985789966743347730869566920722683640842753233831153789242754288205455951259334240936822932830521146366543918560358736302561288796151721589274295342493127710915694252083417411604422091991869668605109743163633330545618206957680757719229591715711281560267851899440186452218525679602230210918035931409996758327927353903146908376226589163782247256165833860889059339545364792099131820109594399532764742077523834839654571703963108719232033369673849818833781283000615672836992859810068970059692960172214052239577716326363512658698029889714774683961716487052878906285615099458087474528770455637583774076924480771076759643615697136206373201030382037721578952892903376602361382160176881323048459748171015269393842424363132706843928287487398891323535941372745598599345837647537866150972217769694005013784693656112509224424975908042959443417545051886637692167972165501158828473327649507078183373130137257398952160448544395854883677583398968278771091743438722271934677860986671223456966243251200128876745929156359441360111100941834145619349759361982547078745816601648923164729511062117821333186747715961890947192098597210816337792626394853764773786361580934813997935885370113130087152444405521467264208288073698930402825720058198767704876424594557834202579773657171443847730279804460404353025352971512571543496452158466141607817313489813838380859016820725003195624013892314365455658723360080598112283686763670788749236696774350262405326788798928144247351956448107526409062866280474864093228953471704593705127669974648995084786589511317898414320091439818212629800503681826271662422273456391182805641633043047961299568458676303508713546563448633744075962268503590774482560357263797094862469698779689814821833887138517721231036835684535643726194977573249988045032139496501525690311968657264564945307955511470358820895550229294292939736442873390013488097355034593790870470592917729359492683451642812790856078490822847980595626162374360024376652223121746445971959509093879053306464355284734125338650672044274117009159501143721116504796918976502508030323766187944253262412333683587882778808863302530027870359436382726072201424628900930301956139907796725678495756276085888865588745284402542242675553005652256229010540171007369755720818936494050427095466956988717640630551943753326445793159764726411165768779358976640790710868032589759154219590129847924394193590771310454313481633454566141122357634551242401824270103540045075885125199038837994520546038540965588597609530828259774869888190101930765960948043979297061963486337455464699259207027097495480836769484046222479639460503726512346065971064777674285760647147515211422312514488552233036993643071738015627945289118664094253913126213573597363645861721794665935063697711568242196756450012016784432005550914128995121101284620571232928503657076803123388336529848848959465881896393158456906515517743499367452744930124822601778013833242076650738345012100346871626512803409772590807897343816696645822100721997840519409645707943583530197524122688368873755771262350799347954517108249946576491932070049057330251547062403166530390513012603260413043603243337914173247958847997156158748996754924362871088446368887346955913471492427918938629941970228669304823814919526632706792272295793898688673119331994653466251410870035475162002463662868610837336003662921680401939292214138448244809162075302147457506898157152689226515190793723636636050028811921197709802400977222298408842120437398677251749670887984219413794019084380795284748817400029440199369939520732969710273001486992735177053075549503873608744043073352441405170266345376977699269581718544372877604443499211591076694094452186276107611671369673892944747549783939651685180507415196676251297750779501877078780382399480277171321412475672512962372267501102031732870898392268321345294564352566798612258300416889512790711645563999584680381524720346351202499089562409594526242022803398149602896432306427404908679152206657555419944852825416115119594942465356843245818132746074427371725519998019184119481229617682589256192326646908765324424321629626012875579703882851378253594779910184874270043664243225728312796300139668590600625632839319530499381399631954840242881066518005308577428316965028119996273419080256736412988343962124006038552087513459857362189948321391304516030312723474636974876330594446719132416669937783962731907874947479901482543758507326198417551855381933291619206518134209187057524696965312512193793832631630427684953372661038905919260774407815171902811606422132388713950571544229730667207629034923966964883567764862263143448139685397556669496714787661322293445511437719824998179131864531330728746775243311190763735368146976630708849180061398846000564515443387274326153632897274411869689253161224432199341839124608389801784743547353670453302882542301445493778681255212123487227396291276883243479437265841972200338249442924353785300466006341649840835077228590859745160221836700884059234776510683135812809128593968808634211153205091656127332461286900442419534439094751630671822475715102062689546270694488231360038626608771138727938108754168951500410769222879372798080724677415624679386723033565193338760340892285738373686721940916429743909330671626563754595792666961501685910324247919839756013234195707054265264553113508417534957841180600228276669154591771460455610707701724677264148534153979577983166071700519479473384300846134283912355446083602233511852814260314340263476522942280858377597470280051441760080912567602297143112810996311779198044210794394147482104924961388365475706385996746155102854704102592816852555185618309872877875453229741746222062552729586749871551971241264863589765142959677893359723598350998819802232739712993503428670984332732174691660926486807506231412518577081102159921166176076162842647834006433888505569886581864661578523592989436293820989945460234155614560798196281668957206763856277878277786985137737988787010090252762695278795013739923951476666126864568161356622812966705586125569704612465297815158973599776791705095661823676843673050965529282682072606280129778522994320009955923075176171952997582524484958469918772018793534089274991030733767215587034545892831619047106457002418247842938834517134552584939276571095016337062431376232471345500076901803291407656392676580752855603331792491787397248446873264216954754808662111858490912219806093559355301212589072770626949927302891318363528947153129170255640416888742695308713810154667939205805791669731546159588941819543784650698757641479346079509068982661341977407391216444676507252024369483676989669526058501150748523762009618895359023500614624870356064048681491089143377886414716154468480519660337662247973487559179451053023308870017033685743030200791438750868902763236958084163807740900153907027878456520862459053871671810817354174724883070394229969787087312927944407091496579413351160269524323862280218569429507520844879837777824657866824911004210083622218507525937143190527296202022966409402372981441377549336494095136829983233922948025218367164776078273632048625041527147083538543698844909979749004675184882142511847018192010411564472279688617524915798307368039005647825212384072973596757772767187566413117708106739799472429244691400606293421701254534276848487953830927911684099798427663755766416662974874839287907869129084029745745890635790585899073905193366342575763786021363729560560023551782006479739847726223388448217137330302956686194742255379763560095434539839338891029334968233358739323408530447385748112164292590281631131734610288304157554567329797925881954247149567038787465393212655726610644118757206493982210933085563146483549506179821824559273266563614965761598946507335693321380651083497258520039935280742196097179417365399211693116887690366607237681051519572549246199222155253309920094757398982953308757262678884870233027855214255274021625680232086414992333893426278956336935028886411784808439589249485353126585674050566447369936630685697817488872730773864370314916242648445723415213977800863929818153426797187970010233980083842967402931101441628099545411268841398737873130399271259393136489051807280678777613044818478254455823939131152065197027151159622515705072977513257591512818280492217673054819775326931385744584556671392915936314782150407224854577371140627287465820810778360682298950012951169381327916931140470497494717499263398984744551789757997609675006264987268528182341234089138496859859677944362976013474281761266843614994007779790099105917991190899462857196713131480382318263849896822256627044810480964274343334464936703402590499167695815356834880292083317025949769866050188094537147909738682179842615216722058846842918786375164911624011858800399849151373405527912852094380481973008269342925823541576432145009521083631392498949321381075962740252083201709919419871383377764936095308993858997128178843928861219259703140306920680757690168691556386945225393703108598024838752323624802914891346132989042386567231907016609820431405072490142507915062927566631128813037026785545635125211029903050851641276469128551157231116012330749038310875383378290369891487628746235875893398241016349677805272427872653040326323229347276480404254971222730467241280172330968375996398109572339556578743335297484382684404758631208231899512630737665193999171640276799510879951337718787715680210920975227538312855624012492074068306157910849324112124766893944182046691565521731587110508682806877460466846214763181373259420386359891871152318325193771021702927410329772659628826282246072623876682547035805484102603890159137372898789222242685550811365021301345948526296613614830854558639001589440117898123010158460410157022276074416961139306841102737432200773330569868761810330790650739038887543435455667190095206975297162899359257148397345461669945323487676542796422354181795165431629699068774179714387286137109381346312157273116726306813977695179797723864449443504762233418221460352048854868982438823793568416466981630177244399095381433441919149842268247975826363377957808855914617373647396929546854505982151282586441268565331180095597466671230236837313563049048928516011669468562095029060260292061730024203717376250061124869547412559234041887610645231484482882684540520813936616897669135360921762758204238993894514725061946414365655834810816188814232278492600979290250215009551542774726363471376162671633136976089723198121400673722346203743698363432879296148730900257281419699699082002293329853684500548582389551436046399802888621541439748244759307041331141276450126213745478419140426011749913259942702359105365274934451654134312231234978774562592036319133519309754000347247859418981337245156729307188442036029226553984478045492869188794955153580976609630134708132507311253303310257123320874982637333166163697445872154440090625916067522937585236043331000776743279149367613721586304679559298885384305050086666579239583578809818322371686235113899628625099021077139810657027445456803951589416815954599927934525795391629138188233811631625440679842444510267489893817482670901633329541742905398505868669952355873459763489488567272336310972451774199379854250645953295631021522122500644248649223277733540665040213844475548495092841914244652022503364576409342937323747270265994149543021175540779682662681051202419409302319452629309132311026760651378465834093463635801075938458459131807868061655580704595225821603533102723642974161402473811308965345202834310383770901786092812298220100013133538065853296606440247113636593798615102944205551995530575338292348242126555754596591353543833594969786943442874837657761130385346927557834881400418100192038765850788442121549236637554574808225442685804333026468321910167569684430663888284433296198683429757787781107238245011217545503341243275761188684007732394581097997660302143526636227378308669484214078924584770308024625973501141714320429788110998961857674362793229671888706453804567494183059718561837369403077639780335817762397396883960511759854361225518705708046406374900157550306417147738608565660136200796412520043779381006382164893456525335070679021502844142106277951592410903878493272448354242768947803567980153162482531493605167752330309536443528502443460341914210845308201209640818088853010298797022466251800683127348547634679378218776666161460084346274890151826347618709602587209504882306071416546935595782210421419372339216397659439880892664004060968134727328995883636225422736053739750035270976656481531312067700710881900751740399198791533970634994385841172897827785139240165902915984347841276477266542477119194110107857558050593323012034785999856820758754265425599971088429530084891493326513677564104547909341734281987598059516798681445580933058066430133338211086044012517989297717510729521236814939844207635721605735830182978959395925439897427108562367299727190808155690105437099627461889362790513284098198870716051593580310616489385171073744657636244209747688074237338281955046501019809515136311391862199879805688176315532752990858897679693438910825249316355456334207434421063921198083578651118354112518152391524055950544704967654213555374697982101721933851653147045505157397869359912431008489976978037179359619485068330167565144231782002414449094166913324116754663144763213999027520789030538907053340555095078723005037694338934069342675281397197786696989988960114476860248639836009225525598410951932589413027520941209535014816289797740635074788775568936519187309340783038488562380495009802743924118752058612471006633049718699902478654924053443278548482791996643668075194708909466364490281134241102743611643177265484221375471427078403465209981708822756518055392836876119473522593147515862899812279032890586761556293577028552324576702095308092179207592276649216383732415769723322170875792150225384554997280212451987481408095137709227205926140123805736251426088287038370315287452021543741041358032383997529011178773256619192481907809987067452612581278950983518528211786728533141450344846308529829851490790196131871930911574823268892646553287670442695617484852396458821010474704441296867183176643458117541528148267012658524193476580887008312708056476275230163810332274641630757700403847912138054406740816238109044133778143048312295864948337411728793962960101863391862628351504358060828727795905567481970072574933761374698041087735088097312677467167648330001211314952146351248711163771365977230010815002274357108389216567728250408627730666892846992323873794243017768652279811101927688357539552884847316617408900278768475197515038593550085333653675080478710059635089220522444943375067233147800280650668645505413908065343311924600702178420326881537849895338661058200296824913858715176878264196179890729104687694536537579248778969211134139635478807908054627230294813558374544134774253922364706322928736980960546234812938087327824419550092779637910150116064043362788543092153024072895129666589457250878192522561375573660067150929081742042950005407101795541180941268966609985946414656017614429277045966281157233626329532344444051554124003382883897637002579819362657393406874346184972663570783018868945305128445632189041463100930634503073086768878941978438544321340215013739990365108656549949583406112577412451070899124569502475125239551131187513407465964981322665658757161108045009923284272186131087848602348364316275589640055175640151662473891626989619870049190514997773564465144214906728776007983750979353346639611686774009851433343524796265945482971361744825078378134906776653014203983016253519232875851216719009236239339038731423437026585036139331525550745261640486546390215430686191905284429750924118640042898984322412025613960859484860281019837964508129502404009801950500552799264592260863148667479416486581500947987228860129246983026657288065566084956568542992011488838667894904741630897148589529499025507415693095429267854004990365010370104569354452037731617193570020617761125366686024828935535170808978097091985987664767896293817764902816523905024130148905795717002862996276489855199365596172652060061384125325511938648430109044628792777603147606318889641302421052770434569338023744604255151897327798258981817043869336946739872444054654260998513790369488291669735535076372194085623809868153104167613377950690189003844739026339828471349612885520849894790546192664398775620591860826845334478823976258518202164078661761696208511486088322949322387740101816923620089062406763411005233526419532191549874943759970248995576771183316401907290693666363924442499594253246410751603971760943879074209877428709377471635002700913681261948228788382521776579997360339851477605810850029989637881677734068286993167433096760587596587164477262162794186394467696364599938337198400713157579221354297063910261822279649256291728874715250780319085077692896784967584690137981383450695697498412193809809172270107949275324591875682284105416071443511360437169954759234343600232873098378797969957374067062860227167406414946903024806439884848608578618376727296216627826982821038531740593683885732332767630288333567920783676458933963179324994741898108077648390628296745738898240575698155551109399658688642763408703089352363446309564436095203582197344734668550985884342746744215366866745569043047222166543393825934687062429789062298825907432478823576058555732173918035297591210885319567692590131348198784290238762220034443026215760953937317062212802548005514661586205342609453956600658092541414722995838596287917915186221942729057300116576442740466097399782378141898390778815890986311227644325011701815934077674397503805069287157208773303810503949889163650570179466043142149466974047748162202064092197070622736682845850961318207335065772489471949141179404335876541791767853189810056486293703919748175244385899830678496814659886406108615220435660716118055065679109176707290593713705065189253109235515674687386559228163550025970214638055596967581948262226337155211752277034866612803143298096118729775368986887613469824296493730809635053985457681697291209754942812430286429015064928234052302230138491509923127867838214277646690613580905151639242542330234470924702550377427609754861613414851517201214934690588004602092829978749737056973442682488370156798601043576946431757740734049416696451983049908718031604346339550954001715629559601378292566176378655920333972899433467194865107419132207041085257910703615720127696644857158712584763876665045489337274741658406421354937591959335268634772538568086884531806589493094012666959687538863116572006590226303038799421982340185457132020275629890358544894860619297597544752488225911952235354706175081640828332067525055552365966067390118354459158525514266691605342515531973298466770322163041563518946436475652526497768083434262141363522995045506460550608474269064731412627191148147955489065704540422331253645707546830979975879726495497044117728677897210529845564360684124232824250823138194339736842511475610024612649450874287944155119714544003420815652028968742233369700567598973835462664942768147780399564836554735819803244635564502590601424244612907719105027563349401267058174482472725586645074638309074244975600992160666055930595557858738325565011336455654880164804825675829645662140460888991959567696944154772595637342771159370951589438743526971395361838979959576506825313787369131586814220762886560648189882471146661687288255126740082727070131196273114181175954626448589957893382058052836672533163576667218828546480210577102459753828597779536316899511911533148987481751398864335189320417012669272193518998453279847349575021395909478218494333021426978126553875541068235643277244416811313305542735239216509931448081636785651838135993360532315493336245961814748905193861249750935780967142413076937739263525673106106065405984605625231950626443126588549850567901480758063505638842979147691551924753015647882469620100404768071604550732958088757184833346013601388780141521664220318886681711187567170654485866257598469480394552521088005724751560120921138978557239455276158693526265285420407659964191706400152644989765868612615312949725837222680591482524888454334053804515190566650352845755582429576264115588559329366646410084794700075785693473570681796353561275088312999219560191423628918106504483406291313195477781417556901912472590888779925160092683514967822989581073278889477958311157699892827243644972108282886572137547896184496380016976615536510903997748771795232258376374915660973899523219679940961235878501459490573688457303461327315003766620306642161419795737397778027047477891130984484046659457102558550509798888192462181840560488382872739442724943481561864830008736048956345192736620149283828528363146326802399612734683769831393640209043442508569159808749428066221734037552495023051832217186502016297832117809206360167838047034214062064211599508317701293325136685568867111771777156800473517582063872624451731331773022350268528454311747711949557764907534530153701919692470914328900393617091698726988732848488424474312014641696768221231247372305004683632300107904782540169532205447143815287687965260379054947573287798353937476939566104393567363378786788981301302841633638407415474423235950940598714904454142847202345254029378516265513532964151727506184654788165864741356765652426960956641806603642767401972261433788052283290839049376065839888047617575129058304144574235702409482894820717587230769482434108322842408112777113078308390830719492327935791343572581709236603684334274634957407615632367166715641965122309003342495544266741838860526188509997509595886450609388810429066105532684496060012414739374218115192388214982137298713335127204017228414885902571265414030735963895027698127104646266843245552863363374917210683360577450246054955071386686948497401296612460375220154495718069306971089970861743327653767636376373600185876392258663104604364180347204251223050300504122579150212286509143487656235438869560103397236114917212409652016982384331437552996167768969437288759208030840096300164219149485681292058984248345732379707741858190064867918386736049821695343326661218459298430965351914966961434658722636226254590457479331077327628383353817410457964199220490954458979439885814123645615034095839488135832870068207465555376110119253046855293305585938893535326900172282853244299286816476770578535035267408675119716468276370840493002923436118198859766930653079202259590654441878792486382907797011614352112008312933133768281365199486500648154592543451240242890261153422769141142709775136071179710687856163988398804297904458055365107075178684711856604371120773634875831874546813704932037256620995125512350118698184396819587740647065548540926137183144585250760161809175564236053554531223151900124768846186410041894855151358639965628671997154011713460706272834215592282748382259140519846573939653162504585826415853439231680272031005219193797704544807059944720201030735860576588650323325197163462398975606661807348114868539299955339279044730714590059427360179195531145603220752535372504945683075717056839412016911451314287829458307854819054753469327215643555162516130185182505615722612891425346485493904278043460142974766606439271589228784351819303579042155329300428413427113625966537251991769757599205270847522302774769907976083973491922768723562029847948295233187516200287293966568332290702255972218869102413442491979745433313560980530342854922810821861616589562305804737269724469661016937842989974351183614336245364131460872169973426063561249968737100849858754780009598545498743847854030512307790697907966263685634424212167475832017484407165794768818814113696514917671468222290202535433087892105736903020799885292176808232967351659291715951120190680349122749445178793330386251208141167597302313425362675158662962761077246826565650044384064567342379321644746955303454948340594215616115409336655314471754686510811631347256088768573443361406000924653046657910645158951211237170055811683383828611165384905924465970759556344861088702050870308202351347173258404924049875392291540604194678365989437655679124267689234476700028384251502096477068895520717150977673627091571279368491703397361338575656824007089561745892673308593956901594353623846431986990483309854819418127032615397580189886305390943064958612503302903453661094936559012020913481784685062709929534057351071878757518295850498163190503443680507121087240941226890274969809301100074726576258792061246588265103535157798316599479256733962098331217949832258545825693201967080696915015674566977715674126173708981610256237670926745522019369445503451169418671224725712226264327409074858283750011924710245097462093302465687502933181108200516128683225089030589992195394120636638419551571618776892646309238256966141336022539193897958257267747522727644761080730071266588510788815121417038072673309920946159596927495193338615863294783710180910809291254291025101119327467505745612823282634545462754939255593088632839839615885136096266857890284447952607708317518819262783121856082378070723379514571780157075373970269148515248774763468830766831572620743977608974552091571163246252958889946308576801355042293387850159724768210411422392331051632771326109184736636066699557380845387514390340857244396930046631826541217474325490677093846153586004500368433766078474167740803509343737046357002797371595455296133450085714859891025331693528879759883334045221422441834808181598132621734067888320718063714195608228783095788222099359807929207671292854303658086446568151963324039284770321047102244724560602348774674216742182429612718311370644475861643804091768381502607332908325672118232964776979822664634774466686874904025542331346572345853420786269221091462674786800776880251212374598568091336162876326020164029892050486083570378523426663692794063067508127084861027128648085863275549835606182161217212965248000191909677769819450131601532062320340848652648493274004609197614919164535307954903705742034954981527185588484197911753722318578113394968204393041173053874287157779072601813469266421428163914380072245763126696102156653330863846888208341631684170934622931975879577999096432090708002530490262689290031157816359374627668447781042545743206540371737731857840558090305724775792728670848322380852465607990454883864381982447005309288643531071950343340009052004232070507128567991028353197254296726308212375898224715046979911626564464994353981120957949926494403388468938788640051829112905108354246547148113785702418878970392339757300586335403705993597062259895049976153701097682185037274486930947173304356968845064915753928821054331949589610135311186248398481085810090886630035264491204478582733570666996211943077813731111459395997861727531730148569434268378778916498464858029232650285066200945709542347163920270226720793599463023214514068787989421829804549113244348497384678620684768124947613077828448484255736105342859977165204375867229758281408647938364126589671570523657770649705032392190097405005243010393633979604449692235102604333771785539161137233093363823380800998594140719343396964625375463254720516937146354209900141709915068260052521462120778439706694987088053212401175645859399157976169917626719108176182380558042816662335579556315586917790352118186260982155875677016140615781672190353687252095724291360715124290436967024958160474032708775398054728885457451933722100470785697691071522377222280046633273931000457510916238673451968558828111178862681692074079460398442898625273454723348398691933580007733037841779303433695431007962894870777913945216585280352565900073330721958016782300202475735053543545656555167441860696150661283521705895911190439223376974799594641335865414208631605687982237161267419288919754926245443367979483961150548607481367867265054244742846247761604588022641680850343685684381874744859435342821069156969682740478028742629949190150281332328282465379941739101440506572838977836684011047527009243694917813443194861408231603436537084833813844675766364795002723339012707027076857260062964351413308104342342117985808958244079268081360935233013207491194589781766325276900082601652658612833529369596333931748872559434978750495015562011076704830413480953766400349821136129229698775225048080839423202785287797714223558241840959970062414017832190969941616085041932512046605508755382283779520372929935818105673439194960315214451590721864436430233987272269940761890854624880806644238699725131138754525260313225451090433490475217883380006137156989586400113469557126576978219184638686953826972131602974799790688328748809570753785084815259902108108112229654314752228556426968446195887674815079880391828851809379661021370332654753767971409715669035274720725713482294465458507436117450419819002095229438368576848726433727254442571106560894456104119589451355300570903496957685051109128881313462919835777320137314872085359827177781159690130802957365776728915984596837555150162909736466819718846685712514788969934605073799749863033194014240060019708310732287253714065284177748472633223072396900694562991167899121192288721661703268175510932218973585301928279807082087273645553740404867762461237418128358849610255781563824265861619889645839411527542236847064715320788746840541052533088443121856142127256346085913135271517563400009884002728698032601096869247554454197020803040242906897310495086331862439488734103797068957116611180596899562098935903753149763777329580191836259037180367252468947994157065334421396581980942664682250567902007173692688271890804294052995554120967625576990092227036132365663115205085615354739077441929221721177697844018144115473405939763544849258017033579790980190702338456745281432261515138614476620254297846172856059706928429242442217241479092252480059202532220512691342763594833626867200466622518408672385114744197128277540217511028121804125281906098815064179385276433740642647852622989791500359770073991078673860401381594285536647097795916644689475534162942636558546062040557676789064560574975273478415636197362469788300037953059242636976868973185611657765741960568667050598192338598496488761532817412005578534029760376509810892955181683184049263762645426070404873289691705188919107215304445348263431928640528150708893738051701152183732265903644909799693731898430440728692953892621679018243119872786878095985653678428925906392298978446289847526597410562105645055592604645737233700952785081427727809214154484572715137244536484187450278231905107455731366534079603979371441590063067183516720505826439831228147740517433219202388661711720051646497574988033536543926138810714869557317854663347073993948576508296447308498932529147219093104340560047538428654606542084532679061025730757191541142899605106233003019400137447512659986216516887099025970343690598522638045980815550611177627444866947649073182716936868393825672114464632229663684904081002996426633857717829307472620627177883990469810707912501164473032539237025719899338319760247622293646188380008739931585965711126741429314902953601541099671241118622979087306429604995933910771219451538734698203854275465238109551283726987400975838130486861044580420193087985378262293993786222583373878325394810004188117100482481162995252857592001583428006604370171706174855241673756853071002300029497665367961921977643373567227261721144055892628605871374975245773228519882771221545367937815309370724019778236714068092890347573010004194222359546345648796922795900405371827765775572140305428464695064123504272085318648063336535757936190513290488732418641001135666816694971135590595879941387882635689578379455549184351912700690689366137577165308655344615014791746868281020947725026243224156165924219788613173306589577607666863911589562812055882459748862967701844282128443894366353598150078153199405408971797912536232204577269326893247466907143541703108608909485961260410246174128175230314896078056442958021640154684332773494270200051340073601197048169411323805228558579860790268218476677440007450578939829729238102542425480694907542037887686491468922297997581829917094548690512422054305473197713812601791395201282534473811490489328969642822337071180099958338395125096449423935347157008283069335127476604638090642735952365161153906942699588187683202366855886493797572068154076379052580434195546240206948936103360476496940435467567197082814724747959908009950930580224956877617226899956895245865796593448749713736048892165648779434110633462509390486598230209348894308327272995008534733083365181623959641775051690087005963832960057995763653395999400495695288585575381917600504419508174992592147828464894640148605800199070630609182763794966297423770852960623699859547243861912231367795432814100281782302135913541985408033922750486940632066530868530765830949494943674724747522456442749443659667332210416671067615355596861149399529288360404615965730876419334869453311802549191698996338139233110989120264926093634917769226405200838655359019234991698628880095750218616722487819316725669673876272857034406646393899995684054237590386169765426123477581851188188446958176961092725868053591927889327441215560698224243239404365484659330523408759497760464073689215231784549710271222158332943273380457976999516488176863185327216952666725939110221541232898987156114729093683710123271261335628010360547044308478208717596296343714730533365331743655199799498158365028988178582416296980375416702339910863150921164518634363665997762332008584715275455922920621103095723845969505776322903600192834332292040697383887138981062675811094660387954314754719848454122753103909339963217460130016170304810018168770388571962075726130802215508001926610956615478073032153584827330668242531941642062422832334980078106839410429863836317170450138684469992495901790761173027103185780550670827460295107749068979790311376135128884326929334022649126140167949229023495577472155108269151283389392130262070983638303255481849041421935325982138356846959480138141102798391182521665722987414886297203232396974185630143564730809507804077283920492776985552442458996154444538034472444208830973625083364889091665263294478356382615538653172971109872593716759971518669338826197033786864391969801551123207987591400272257167363383318028011517303078485462479387400445806168278428829129064704124762070912681013487196499872319377182416792817819443538951701526528362786635475536367172132991910194897868782388103740420907193205025011677971320509525795876636001001147088677462570496038280379192118301908934683469010473543174193342271481740315589615169986198017778122442124478483743533282743964886226383077092538822346717881829705744522084248826143693928245459896091925729920770445926779820408446920518060708276754775184460425909029422090380812187112743884726209418010478975036983897125541398417598323132815691143014385063138590460496629189902999356896343387013489918085540689379378375696910057110542707807882303049956673438889343703366584873501164654568801423382724146235787951572916517828376771319020632866465740970128330519131698288954242091662535153680559309325339565066760802033670617589058792085674224361516100599610847428623078497326544782332653863866073011213888525471952722796891955967067061067300772043127126210374072653736215569191059605436956882765823457741805363629034200324532711567552101083637075796144005301742601933911408461834698235136566509175408236747535989579912064546901404076225358742598405580156976460554134130986934366211142051834388580185117477859632149173916531736962089966246710472812185872390537444868178222175629233426532215802433828740149980516806351100006973331600984164700323113532059190634778804082640295305943364543397915838434803353116698680719478281173519551042733982813610535242413687926046987384014478370547342556705205769657648022705628419081287645556613465619063136380881406200462498140593497322460707757217107219640243263645019258249487447456495791193136068433441091738014894982361166922482239238503458144134588856679555361921875551396924466125249390587879000224415997349077317001600291689657580050144621673760296741464656683017664352600976907253093455506523934314863385273036359265721917569223740695247101552916592227339966838498504891556566337754275121950570604942457223878771691344194771804098360194084470528563556330696420173455610647229377820976367885412750310229629967705672903428920853598250450354040318264396136027798155354938393229887982894229842456189680984140586562654649377982518809352739730673681838081902362148419691880652257026803428403433405147304321270176095227371801304902984473609359334409116224988638377566699162709591251498479735356877121448169756359536519678730789933666941315719834651373542334174288428613601790422052119005582347263147841018532174826277774620679114394939530254546061409949820286025183417817537712112763676993328724509454463196045607507375037691440781821993544961518625688393982270812606214015384887096394187342065263948362107767245076003739325843073497979087373526806252319565908672168617528701913545575029919068018359134127253979724051111222980334076004684030563013253794962484570589183378876288510499156282809355236185485739856860039879675812846303944922297888918875971929701440380275115877535464553450182248571691082039327271359873103127589635574663081134459234577422846509689461280945006404252788719439479391260853534212455312631704808839169967293905173416691820734523829220403015645266078477152932298535444080695288965287651678226382591517158612981101800588118142148992536681408803058306419555662162049595270355336624770619825650956017310720618889938917086802554824948897098921011137938835004645707394140926241363169150070402706721746048212019506670815045692163897672619007276333364621390086497668636028027392882401442769782037473579718007516927089199101720676237928723559191076662896723396265591590057606153157848863818857436630210490743871915356265547890258476242110401277328311846727470854940013714130379996962051988847654830351070642573444896821907474779893256732055599287143296007546946843279528322147385298734002996491235848360684318986118957630502872072306520891301993369165978269391561546879331403057485732810434253100904986068268249978720280942764417134447470883435739728464356349784318202541709280226945152462661067771655213796344869774372409795683793339573903188674048006408527581327103906555435853076223596120500108778551539779878110599647015224459532117667571811227960732096706592237334889194986198107048292815861053706344339493968038998306759192679435752881629090801737146502665535279503787441248616788651350585598562709689035509787440088182569681325875265782273254947596497005124172258093119740949120003341125469437404862395539529764038996634755000502828292053666692739605384756820190974134718333359732969841352282966876669618669999768837667505130411609453827736113628551243180516759811333016670096287834332567635436238024310346773033516307729191890992084069379751945181325005690067255485961307635148271778388583339109794599671655016389104309375136396456712908272001544723957501178367447454089280915501189085106650610595398462619100404053018974403979059875266280536621672423959965244211984605027595831398749301835921178603807897332279871718244377440434048387309328762067771133935402285045833303132069623919726298277936267977639054075767940010057323514005577508046428450425567883400662438978634658876976119326188319185424830424002493053693884187324269940657310357490162559108459301275067565225124244554492713378599314594081118949757079747919890919770688384689326351556590402041744442726577747504808620911295608311032218734601981355296059844663494027363705999864114210544030198158944338661271343135357448526114902263130729541986832372275730016459110603226331795161690413929282235833921983086854688028054248314348309474068033427095135980675826623902997056732780220107741892464964382151221143384100692193588913677318751923352238375232746276472538685272945589604196514163936769699871078886946612075275694142438190152188330173225639108981875665332129279790777677214141471416911238740609703032977165180449950894736026379504487065288246857835211735808867084510722825894793134070323260772214177836675477008598911803390446329752659259607160351357240490603213455632129240402427515340758614808704868598073400343228138963431197276856875069099339177457882613713359048581908509514412401065193460382346506910650246253192472544433819804413498590848790206874130442135507308331903583138302242754450148697995361519179577657616723878261678430448250813057153308216263459182308115578430934612405603092904530859442656133946396806262903885945783546106322165360396716609961296021539153052823963955790722642944630153177589369973048800698244028031216939876306324907677850746230711791311469335629656568917447418672060718403298731437699228233918908208035015141856319896303057068875337796299674717502062062403797502550990808106677027019301054736824834366770686861274426682666270316335746850372986755721477820328992989798740361443653953355838692421997007672126882814263887321930847986460158887654369381324719821305118617926077119933016993524944838896826478311238166456313544026828893890643502028950604306928555453169748613453694377933001478311691211926667270280616888980497568240992137811171205911550902791660523896207188365921127155250154558311328848554100225169800499972018010929647454332618425180560112259671336152155261617144404933559640125695289945477823148646359454593789448462150913986052960557417619829693342655801184673398334929412080159792290496137895370664324004786150279274739189879151687555938406350352104974727421180336203104143155239359104436296181851078855793664577543225771787280881381296803302995330287610937862629936495055812601772101876112008657387623563480282796151311190060340511885008113846770044329429863422281437945305686139283466118276711741069680748281889244816795371726641043272373338083380698297080533477671797118573174135389127446724264838984671730103296227973216083057070586669488268437367432029658029539760011268231873155141535847152806272800806355744802116511657965932915173946661577423415285887785874991416760285863080431286969245570539036126661250019446143195880752090319057311455064553872315124551151534033510974900969592292089631974967656530060368243251767201763164309136551431657941396268505067170193756078930508047924205299889590182409902139482077963082776347071730143254459020595323688004432719919077731029957881105657476096599904963667532416247334945534736253353246364734535036148941084556630742531418382365186291718628555725270027532118366735595671814236442855710588444674493341161778859943790523969871932767748718875734875849625906494477243494022479462098038377626160886506429817074481280049672924015592184028717618447122497067869392556562159486329470812616944378306012490343819502162691830141072088887628030142230357239855092460208417123177028367187994448847019248490665901964208077668078853886515633166968614496919360794049769532123557853115647558500746871645550506512130295024096138416555171150027671911171414861333226684168155092977565811117135016080016498155304871094729264544401079687977214221001638131651953651351176624179930352573772619050627419272669511816616262265164761462469722062693589809907988813794147664784664371131066558825944625105942426511148376490921434365082469237129454436686586423805684889930552139918300904439799946198481108120014363666966639870485252834158378169964965149066774398839829336903753000917568322677225029007628150516806483818371045637649215112934041658516280135282653370129898904182262568149973817318881745968068169553412431774890076814747226329842785907801880027582685046068086859123095621872565991064089707977424512118037277215690244622755823311970107112037117844141135459230131318446881308490747535315308405208373140765455324449875093231290675146745076923495277936024807973576841987952915660620573109722906513950671691564035373661200401592377897124240474043896736338082864487009061646707596136890173133926831370076506158839363327724022338475759215831250512660168814710493601880304021486495806189383074133951053100671134579750146147593521951297734725077011603911152200492837051824559512398765416189408496947534454785503930159248374166967320804998623766828083538924300981396220683874029346768840790697772788271463178941335150054859042966987584553602662659740259763527261130159716215941161327713076437838613446842945755666600593662086325292984782047876788215929272720041788039703052624639119325543262713750468981275623461372387211235514496173053797686694180946010719327129662788947486588182718831585042663116770879482095286710861845416587416259010222796742192699560851951109015907289307105291580643768796420965848568279685143027633890610880600946684881856725165730840917050542698628815004206237308540921023951665111014049815605321346479358915661716246237115623411404975180682800653967828572827501692059004603171899131183592544262703904325216398571535426566610666337062146797182987310399725051198486342964315147803833884806247698312329577169104745991515606144142891450896218994528517760156082073010175040786462708081550050080887701487377239593638900499999237536660665524658588746315832289345567651639899802782530510370819673759982280827053318307234449279258969525443729072697319300744843974463557790285894806573900404970639759204498867008791740438438282058750532131949460866255817730341771294550726996365717609248619385395510837180307998823716624131004393272933940366212622627117814943253526274748923490300153414987305002048508627314495269009032431032088822352862791614207397783507121151415104997630929890498676225578581380671202265376658999238109976046389922895805303980726767235835752448225272264364796854160249681972050276087560877211674336410812661986267814304304631200867125599526203032926872928709587517628536474406284960306887709679589635245501652675905727554134154401082498338388337517565861454187909106335186958121778261802084940489337276698286688059297907998001247173415361227306685606111943206867692681045271029233784474037018001414544635201274128014173905989368772110451159479612833928749233647456916724997091669993269420176190708538874297954474773768307361223100352885222969302573169992843353639940630495639099657866730024144024741967533918967829547378225981908767972870557927063292282507745515288602751389512155637928547920101032082518472930238434489837801533728916330534711815800794084384280379565985112538594133854385821136571758427812734238275256278272117771613068060001491393385111703757546799966129162626358178580748226178191854832118092885777696675308247796829060321896060977575487665503525514979611952644099948011412632854236014958409386855212478760454638806627216718968079010231044100383861102508426628774269695474120952212294028439177874347342926246979199612315124018187174814899363043640042214845707654072551509883007874918948689453826364857343888952355840267430184092114655491718573632115654451154686684046941435945453020930276996749778090714009108814236744336483199250945245674815927831983972645810887866456105833924927574682884020457168153711989145576425224917286106556585938882794006405396651548791499678668111387807418199698075753807227648965417824218582524591882712303086348445053328235374325097866963462166839681418617033886514367328818321273905837985414844401343629179229957301985796842387490658513162546630872152366206661120204379725188280696444443865864898871301211212408141154034399741843694365432169522093954571649064998114004993940386149548349940100469954994882847664979465476596039797379267747605348119408329796459488036911330645931895396758759796908816776703676646485843287049051137092952864887560469294137037791886479521697996932321916240483854548701759762023947587347283056002585091271604800832272825126866771143978582809549815199105078930565489132120924338575705277706649200869467763035869404403038754345415536401362018319079528005905415119956333683460886258203277811532461200657733175363908500476311643251840777536794327446889690143590021838063806047137600671337553667296359567436446195385284226862061867067705444445779110460127333531034782611685117682265377004311024312639175498830030384877003143214370779570805263717957484762031148358807000690951052304685627034744434571824659317536867374932295258095049145119357592354945937901540874747486186540622931552390256225390328331989246074575957028741579784475448656169118279258576458484258767066072328993093436180183126533788956037774457634606460128145726076327651005189849465172547857257577169985908907141257582948296479790385644292869470336309647891955179510002180794138361257753599671976423343131264494556173363258758081550605627716437609625494936607929650845760810121307030314126561773970219511991493044374839079817178746894290367423762308494656852197751153096946218613128414408852371307571256757933619467763346070804587634606684684047649649701314102523997517907239310705104048643889931077293440749197935012959905497911118971144762457418243252446778991365211204043068165338226977910753024448167009262639105783302892683043075955162035306546080092772294829300744817877166882520707338428466182933584000898281110577280446222554694458343212683563619707994195993265020048102198121862480902856074116955945804534888265115403003647304171374608306662367045932384377774143989535748463619272761687334204179262503304096774856206453860416565826551015232710742050340034719336862977866624711462165815132066676359404418371568115808920162993849930169720847235297408977496477680590303947836298658171349777204445017166706275758714707364060432769105201360750452337552600448698747729179950315677300602070783723513002952282669296704601539696338275359772499955617005821470322285309058921060373632532545527498529425568414439025629873929525980183632660437402193867616972922507017457918701296297664578968806348992969911966573674744825721290266956463352384103993883083057558385154939580660754514907583901179849581637204975830989515190403245895829497837032332509701948726871871293116319440998034719580067982544637656044451881857323828871364391223333135064272221701242901347205437148171535042907094870394726784222604365397574198182626468839650829603927529120456160973201033709457556514370198579814354898700914134457253086366950171794728954059149200595409266632419824065844598744859812568124099687215924634518148618427194730589506042704214868484326608087247736220801114615872874758150674608197538579410855810326022812694223839199218778138466498274095706209552534996153160256387734701059154405690486288482834827293884520666555316069854455873284613401804480258001142250074696699994749875036146949757868992105536099963490265552179399269837998797924935131408989601802346451988117867000336326916408567852516757545978466665103496330522427875642372461729095315396605651310873820379458187759093381683580227447809553233804852455257670864052168195701509557916406192885938162477412635404735212360256020016847907648969205486136943059207038495313237552780531370050692613148786620041778383818176138142770405236960358503237243553360831745337437418819233730974663518923251959173820999498865624996700662172817762717104310909027760856606625560471755200719712801875754775146986148330170090053481318764868567970265269626035299922896970817262814987545617209649544217807207497445721042300907970196876291271314744540034280690220211855860148795807238392694990718833440788403985245737454130811336654069686440123606068019850418590918388241954325135517527643274737814350434664533181742042638845935445680140979420225421450271287498887395190133621868278985712365562258607652042884048804608228170814336669475179650570982321697299514032544885880636920438470311252939161500262795642942699255307034822531263706835293973614914725940793201582183875604079314487636744152616352430469605786076792543952797813668177791190880465077895618010612492888034999051747665876485882869670647594268690759907095081747334675754600995776097325439394935929468097548599749250892473763173536678365847232003318208858584541319621741028537176582776988433582777272837698547510603886932956114808268277518716847944195908030971742609576097621806186100542536386001120566842549942500715890816552379550076708522614960313623851290136895673025314538320629575576770060660102664305328312467280454934946133475260868276759459049046857223712771890003239797113244581289503486741172844075363161043557480418147115185326951258672935073627400505177766961614105384454423383854310810058318478983497153372456385809322008905390432307687475707360191548776646039370910692606096166311613383103067201299590985132867221979404254959303563377480183030121658757126259449464737648611526566893843589952367927411441881337242858480867596258165340547893725180561798485234520107732373265505392336599064589549795235193222036140253885898383388633889845808588083667758532445988680145665424655531163087358386792074731230261590078599185556833884313189311087420847678589375056617739342224295186840165852144621283338291990120281897202172045389462183311422870851456665139038567939453971468988618200655609152882752585043591681497219778988032811241739594757924611800980472866897010154261403251946011566706817496560348033265307184485038991519692007106280637090080202355044114228761962713698376679589569347212071541580716132713428246695475646811680240978973544786059694300801250291502490420239566780505254533896566217179043723379593203835860828985331839267636073389933323259751178069374684014917336806663941992881626336217942633733792615175304219973194738842029861446488099093390091362191140249800982045621780822103119946995243687214172508002525182140483222963792848094231463301445801171308792585509929397191857294784671105831934564574955807112458679816233673715620138405513989524075979037734615214190354337727364827127078254193696429924848460096074017366004958620831100627871360263845015505047792587437387304934630406301897275546264567204566523168976825207451797131209306315396046943121388965848163582469045256582097086475894970956607257418059075989351864605631291620683075991989489398556827494462694292104316824279597213472370817241950802531531121160123625676434804017661287930511476629111260497402861807858567668626673168388122200342383159404598975161969069328351403099859630680225751383833523143124917627986407804977608557163576144968873074432778387776242042509760813450589347624647897475046894254115023532537186239609077511195298217146457570554816184603787810863075952961761161891832178690634874168481468384045660368591049055255433669340462393365605080580019654309882335509148959861153307872698596179746756141404222009907309307909507682579073971462310604759657323416029675502125638581171669691606028743361411923239420371089801003348990116219501016303857899823055282201921683789236791354217481920758766445458397768760035551323373599212706772662023916950919887853008897837011549506807993788549416578796742106555994167051516310926112501622457005113232613442894182126052403988692472931088668808963971769682174693659440560530685504739239884561154859412048523379566184693834531193177888809511341233523733705509991529083140659616898498374347559434895936904977705241399486625197873462564540392114765689860718533409816757162604457123654572926976481347830280674838042496272650293039154069199018499821173081547442218209301498242099573536933718486275018699551632489401086779325884879239712071189725750265473632488338518123260057971930349235402135272237547324594564467906575667639860086964400622370995742306348557145251845983893745591918470259461361817247411834264330675744677261034202602743634131764431286913936557784113986948145741079964870487349084824716471320579430669156443380484058291621542129189992181780079990511371328176211151895002805521986365171243615355999858965501582826913068123357190477839997141454811110765191337708165697398348171251008678081283596970421992358982034079386366495440979015167662753839977649677902699793808969997171407556273174658743814513498133894114850612596882526734765358249006902397378988155763414333290683432740601984833053553627193735164674853134572015946768500722241614117758436849633114359487570838107890365134075203682600271859202503128863340950856685094575699952084340070124406913587046787230782642133009716982693489029958143680148902529610256152612891010858889698971593290144380821752982375648795590086671219187170572152946727864210988123008944119764707884161196127181372685088458482586410731414067326372225714349403507814223958048908097702763946995810809934991553140427970017135971625694502811964623752925742083796399167004669704321486355405489525758296854975050588631873789870396172453773583395235196090179111263975322570601165965560585449438903391359552249958763996334035646506590647100081838657732629979359511252672143667520734755708273993724785886529706425457950694531062693909344164000199492949205814790524788520802915415982246565135666936041267094836865852387912043424544405696148115765204346543644573057180580162427535199363123086310797181380743774757147975596511755423957527259333792674927815898535175979081292760265245655781591366959197494229110224486920450683441851056131786311808494404608139791081635462837394835737703527461745371328433528057514820026221277076540902257236004994292695790770716099169622735942627437420863540142019112849890682608747200543166042696562252135772595003227170935993126095171136661713008748857677033352397025371034614957286692236917433487150731705426612899954946416505977909430218413396310512131896525214630069742013187179670470323090771725692527530102390678223858691419290407948847719781191292061272806278150423286870381012872682748292234070167090695912287746470644315713788766679955943725254776318876472098224947231830603364119025604763398816175374623498039066024788316008846673687457705358584169236803909518207904412753398378130823717280023354788927709612196575174523581300559731746663042750246255869336091398225817863878291396045565189877939575808590860731192883013316648008472996751938990635628165129711497690254771345903345422430027244814713714697349778489210127321822251974247082918902063289800516886956559875150341624976115897307756056077623239711116161657280905060714711630655521844916246358788316378071574664750848436589656845500456169260887178629346089399231066177205592136395562135266787550801976660702050871537509357753120161409691192588642367896113894558222036924941311336874325071576106488578681864832397075435407681724690867414403498927237672320316901837210561955261025560411532340664044013858925674893369401237207920514206948901892779456429415874680090956867703490353682954414270443982578866601051495905808235168429420566260672151902768678146795746980897387727317473831609826154713456577868419718270191654447028521250615003505741290385161338497913902259678659495152417299182931684323064948827351604165806844799783917423271773449187014636507582301252713609644771924147902777774583052476497003605683742346563203505780865515549502046994440308005719629971297012896425342713600693186069843997800641457165727506199942034833052144352775694366490152049713486747328838009568449607148551148920091841445116259476028103817467470692406592434800111576576136786858833784610704904390118907755089262798861729231909259967437726125174675702323512627768741280490483022937943876192619849983036166701658508223549974968013069370052948744435532846315092363774548385725808563725226069049483197736538367376864620782988444591781425655036386048099947351876903319533289100067619240536610318107487457431633248608605733061987462883837971143822731653150341277954446274073370795732743501434046043772002213030604167755129056607272154433189839006397382281029769748992092269358041780408050698263324880952151930970676000585680404367138994744050614857072977023771319324932207619452315099619859697228594904874336739006353174951879702042347188902943033433223504026195538419660099440581244514031391618225509073181212995067679616832720080531986172811142792492262833123222511980034580046493040197850554102731724439989900978608826654052912122488349582523185075082782856757689570050503716016818677565564722451689271696594591204981497197668872902637019806129991488510308436776885801702931502057374605784525079659478347763994489519197453252947655898217740009243048574230702816428257786858487234347727975005502226649282703895973926891178729071508670877262530721641030855524564981235358968082745890968323619923047857603455909893466536717437761664133495250083496369619336560580421013559190321086503492126219010362661089305356983858202835645085253278709518578724042385367193218443988177368566489434121364649547869059456768899624100741570908793381823124601257676452320164163161883465247207276467198945254985132172176317229575433062849708503307974094131562682359995672307483927470495363951748178503974373469974134422611922638897450673616150507246162985444398927654779865337494806028853960207822718138156518516381395178127380179898773758402922503792810300660488923244266566554107788346783880913745200374285763504884573219905485754038029250929900849836426493030948953985302798418567509827329287254364829668447017025867295244485937791498775421000253384414345900502738922563638225140414425052471247385829146950719597206835999802185238882248481921085495263730756048095159309644197363055446186269837492155242745582161608727387816870558864146635644626970543896277433895425655813143934743524379359156034166309281644080585895110614182954891383151547272129582827048273283802064773088332046541958001824646867649275406434301425368521157012653373666582682465240862947954100034266526254495890298445370018264797680521327954213773517241370010583673439643676774561187639827586274828318614762247638616703838587153349497268803260133862491353074595074873496648457680167716240653715700281781042327379969256859563692402081705824035602196484525219676179393374895078504300332690260029988636120326030422122445535323764532114976653154732216721240416308196045919535383423020442769943131893724928952215335616592060605217439542460685239555961650389103968081869723311128789277369983886740821352711132443030245820084753684736583804204552834835036829032141029405601547887597076116082422175339533778002998491939573062596432413070498744787808208228795342387316609861215590479528385049205174881981109733256816709669212055720949452879961474723553726305864247455069320658363985130694846946840109240110042281668358520203074250870777785794493102033401236911443522167879265465507651356639631932581298769170901067877111767899922489246023543287653587610519806101873414007214421123525808469904509212722609874044479364653597541839109547185225726849366773231776117066002560342983126170269301436977646215812164856033189558646121745999309307415195040776905612451690712731161985304494788029770198109521614714036939594233671857492564360524965999929939835567617554623564614504083780791936008145826758737045688752232547073789270185123158754632233117361327542694691780493896467054883434694170144691752576318532097471443822088364940475286406591792994576215810980889691764781786559062573062877254803761188978415086403297326203489596945045777575939978126186767793217701838238450422935440087108011215174195013936613488363682888766670625948291532716163323729448591177529560260357426180512698686694457337952431050518805820296449569927332756040759441597306759103470505382275062281972876051537745097660578579757515936108571543957919839148495776023023674400772259342280651884468760527936267147417251364075730799188879778444674771576121265025444746395771215183550024869549196570048452618134962224931394696013496809639203089418334500983182679923990167887254411415190065861976933152408678976475730331388371219659477010543178511091408990120284327505618822707670333643558210454032501081823408948242888827963421584465225947487954684245499376799720467699579714385101862292447116028034314305072387817096889944764389265291117121022555326363605784655713425965568930117765196897075524679196325902469873887254415845842804898960742454777605046632747186293255326144552898151550080731175794431247107062122083503903715634149287892511747070457700805638364485251262585160326996068955719491519043061584937524890569515288705528719964173437393939880607095940664316599118232133777129476687931547163016619202386506076428015581290290012539778926698475003797026598304939992255934600440044940155990406536594222552777023140462064645884659573231484620350594865066647924971676664409782423488993690494509358451163786499281167886998279119232717336038660939712880248936307381987078897352693469111998063389016636701866629054134522812183593701721724981568773694565537925320376607755877630541370957930133605933850247932926982549737030790880256885374339212068523759908107499482584967188120515829026852062117728654886115334242829583162994636232536724862884978771630041817692699081890115434052153925912520736053839526409451051423303425944837687007948196939637575799472756541814013266454220534259416250508788088465377824800780268463537271370253526353641939008738086323015623650995174771996845769674733479461626760413176102537354729053024517109780384888437104781077988847413733514782504736595073365607534791577114227543702458671258500876505483520776159379335375501986398015121866356074704502459503104204814575444438595735270152375114969170389233613568955509703778313444106004735746731205433498636440889157527556716051312765194640282866594119297070149290722112357318423795796135925814903098090802383359338693760455149662000998637930129413810178431183504312932625051860554654714217883641769306607905622329162434370690034064650980197272423580820336158173060139883350698123382973529369932124245136274537076237562286438432209916889893896228218048221952683941011669579947194738416091127345646913982992392190508750139094545086347023354262164724726964238412247539167124824213318832476017623325046470768198751855130582191970054705488299396011467923675862686546796251328201024691505230334427478240051433183322450254420410840808325398496779515207099175770001927656520919103486827792789379838955783745378165897942615760028019940393271424185077169525909529567281915095839676749750328639059351767429435316775239028916166087945981553724826553364922813348468075164164144080632429807409794423821291345920706206110137215043808217844976974217260177951927693633563784163059965587292137653537622310047380130906473143928568322590667413680447125017498136803447910394931606159181910715830134814510744993245072457487106558376239524162104620818340411977286161974369657966528394673647952158638281253561503072910728645644682235461204080146451931979028427198059616541252190132823292376149003321952580366759132422524883834833269264702428261644383896363587915016502736448605013131339714271621226450391584546468137945125886170826773245997526940471781050379526453249088378213935231624998882877021521358716362868861991635075371857161888754294202752049031448358923388491145022915038244897411018256730724743724062649859674230368693479955717610953877014147553173293556109290186050462332001999704486826608764712958197738039291796589751955784345738182305836645657248094090191995749626576693393806224008534956317476045883709729190790284075501683721355135656654696630102545640796361703604343459244934608361351127897255448926863690237504778500294139512798908839491296312909743886168567074958651373931896721691412473222446281075875609685210201651722621603761304894550774717065480169526412945642311956792622515739939135988169113359142747164444059278170735727156862092773847559775432109938283142791479281815137079243707422098638979470093837812111607008951086071460667524326884190126525224456541501094003410938305325497587515074605139445107919385959015508372491091049981882964332896490169311697603540542664563161279623858976655457529810463235723213805708593990882381770632792908604488465965530932464820649945854226828056489384536536188251201393622487384543413347432987039552176112490936533485033511162420122341187341621676603543455283137509626592303424153202498796745360294283622664743821062645903076997886211898891287618974500471055889031642111056689283820175448485252739304967211746531544138122794620198178412847296966897052903262176983158199122464086242310331722905195711736353853058408029887896353913516658488098746680099950830494639168514582854528333187730644157934060681516336253164766881230243587533983857239288615134189926059032942168488701429995418255926784280759411773677997874280208624305005323740808340739845983612631418251503943013150520998396083009668159005057339122290884753956414839879736160787431996398626396259980282652051407160826859102698703482313536392882674741091238071016351423709416945191915042599731915632510236467499190958258362224239071068317418135886611552377583012587896676908939013249194834879230793864102399995768822593247617062095488002066474432016733257936646459344347795192590268986414655488465261760863635828578575942038823686362813009771743505325811513656329029337563309692748529407196674403083027676249558416191650393278847623597501726132525254352004674418993631925259462192647181827448382563416590247934382231325701464198868484422919677919031105334324441057825764139581104473363734967445365930675129378912791384052322613285173654616470074093053697851435126748946664929994060509517775313750278418760361791588364424293385498347881519334031526411005977292990518695393494326829427580936413825981825578920181540678051151105036409243732682758432062811488430489247906922945784847378322759306989339403641167742145911231348515554875823929436930566912557456647998589753343561718741380033106946279426376257964132396386709787057909120136824289394004645794086039533749903989824071822331375649654826482000898306053569423480103393722339302659593505133221364447369416722643464507943900467402760197612267622107021873566048480467790939413165032906066871948743931984290096553884476893792676329055523089689930988500727296125614252500819885513094195526903391060233063060535924433112461389107517840233109847508757514622199879165396179051764550179546754711344175196506414304384070525425201713394107562602637178381249024164839951704672349105069300191133239333167809004862310218801668987308922922665443909557784193420321452815711322603032767015345683906312677325369974958024903491950029345727743272410064241306299868978481547975971619646563526055570796671218495132301013787888160701679067863929467560326557142640833944525609641881851931418156767602440907790373594258510331770985348754344812568579349204000306244409657021934770159243918395020755820899391009811261860531654461270043492792890619045994605797135879659397058293471336673980013878203630543243105494106974470606269816886030874764773069533107587399238957611670866485178265332331447136898712988949880437815562076881427005453645364319792177970379802712777090156438761921587863027053447057202332023265743064645491651598370927023233548580599309781451177485853751326949082889068826715042796382696291909762936271921750192883292169467150188277911849507797665127035365892702429393025349232877563254076540022568665212277588556363807390780802158486370991735009175182974040407616453280749763515928471882511493302388012093649815442952014617025487495286214491921069024046646667839357712494676521280736489733441652541807463780630038644307813631850295730581698764692150047727216230325022261354913272914216829808946602056855772261809991337970141522848960730102782820475447726412035507026140561045261497324810827869635003906570298849215889211259913437542804308814617453752699669190504441266715064199916171508889506114422851872792954710579324822927182533706005880947356979053515624436660015263682418155540162266487807584629878938954635254582509425835513868793713404961000481430100228073954867748713626452797263322719458056918175062508476339894203158674358320211785644484271906857079255456954226351523854573861031047150725334077126443462409529937792570008150446448305140180030001432436057990263264474420432706468072193569173665112878384488597452942091980087100740093688906062212660100418820312623862155283152135297348446101697991806253743186221206182915306236814760253603839053397524040499812235626937311520384342596702146019420535547184377370393453775381609835864007161858959024674950363129593435442757334263259165233375760075166484960028399077770897233951461231931699837597570640308841949010358185236146854309596115491847352874322609348756072603331475712196558308791826194898614242071631981324711299520148130536755742619749713309219475506964470503825484071274657124288078063210713685345421988857364882912187895679964566047800963707400386478817383702870187792939233973225485489106231649237703903782592278827618485168194357629311162542734423700261035903211372781373294916956321804754191858707220446025050609973330973441627007612655041489497139219764452440875982545125004786077537038956163539121290160814722281465406767135278088208679276255410050072309216206407133443368440719682861478952557919681715825426412973664037391384039200637679046172625870537073914075496271380169442225619642906647104068729216209060888996252816994230790964833045581798757057448864764681736371763989110297794884243296620119607059180449846799144233493752862525737563905206649989035276412019705995783541432185722036512831632923005107154366946705572755024768392897709129486169610194898625527191413779744719601216348154376052408516167980565580078561748915457721323419104694649486091761767247073658790650424210998871807058596532490206967529212317071813930419746829901746085823540479403484235636731205975777251400222200072546632133567406292679675144350786467901218017467874014130786135183450771997592860095389651572561308532184188348757748264979778619317879302468354387315589847125636470835986519738836837966804980659417466597911900005194495873243748992365066570581935783644870518484037952870052517395976976903932730116237318109568765696383619153202425600220182712829368948773087952868191220981227376807041282503432591129003492642532115003908261797613605419401979896105052128374427141519410172392010363566561297307375226973380664788143060245418048389365553834943493701707291603767743552652988753604780325859629988217208678634897586578345877973783193614837417351713908998446498891791912970332355515159085004422517880029288650697231420642984290815203430046118420794067606710640310866777234651518387235610426866830734864265787991259783918080945128660932690296948455930906570739640951903685143052643606234782473551290277839988605810222445480624968659039080782764365538964386517918847414403045982845391085873906759568455743645880863390693669858006726977905873186505842480646850863729969710539511780591898301502827191789983671423645578561196278732336111476013839314498543568600743059281056707913539058830660066948897048140800568381383192718181434940748996437891799116128737687447504492087198016595192899195384853258352437632422196907425325357664164873366727005551462239256696101504675258712053967027785487285727717264764096203455261000810370451477313859672918926744489919190398190817974428157245206996126369369214218809534773549828916176208042418206500475668003388140458012924302375380346098653263060438226379069530750656729566233451807299780444256515221897503648371502128552479363670968191789384463468961671294915599920996054088096313553780076649045215339536076851851702003956831851770011303500303487283136825386116922919910128558203807100199634545556139541289818197345205517622550359747747071021515345674804690448532490635551469752259975832554280739852886777907691167222203400993055908476006848776130281507948227421199752756731846401310782871385203449165560368502659664165211034472069913469202207816395066529134176100144556759605213658854254186797346602475908703739910767911005443477239370064398061686409885653110163728149048647879115640084731016521312771378061472190049497884419847666691714470825008426728060569577202483840372922436783852995523913897193140637852025010601051742493363291556117395881240187458451425834458530437402540758072943183670544295088676710586364374825415366541824322838668014664381809564213753320967724994383071827750792641046972248022284055624020471854570973326357797382069935027715322988005851181463303171109235607256876423104866408900857501580762771218524609144310701027111517159363404293559072668169675577875557157937401886184326047912938227131345989141939750827657090250417794447123752550141457932166766330947232324173755467699332747911273463714091386693208724286303676464635744973927085745889106518184680897832674163298743905361375927353912066031388352707949080743636511998624685164334742727840956890737234543188432846860081942312026073848880152854448557314950189777410330711649029960776172044672646109923041956167065923790060045807342462370964026004369398439642501077170926219038953847808114254335791390903254090084442812330145993958568881179442448065779444165423331221335718626454091039385971988368850960587532572660833258070700962630090757281725334529689896098561894963216077857315824226520537232108540877893231372752118759028798168054423400741723289007161401187808552822895972807039435585759488926947950280944850937286781688254022200403301171328943650891185900613005061336351657239504350628936985898043483728692061905076751710523205642520403731375509754363677130538950689366823915938847580855266985563791643858318362789643467810765683944590131138943560209895896711478565794642001644047187489557008745530168709504791608036439475756215360651296516604053160814913858405529480868042341200855196272923849778528248744334072378034561517228033662306200588463600088294471088203152010314394166553915916191303977808913360585876921750595312517023283232972956463769568184297345041768659728505944945926203106886378927983628356704730188808229842269752306753265897159021228249457543620994710043494427658818329940651370940010401089905714514277067463347567649369692468321737291170812076829865020756537047268440322839684050662645303232364863153353347927460271111321454875953166637944579437001953797357360820160685453218520334784346005852663860502211813815565710517016062599958344827601524446713349289282353510005538249947224528512125291943976745575207924314317626537765571773858656410616333019014859483537653887007280948162648846892332919494197696457256342715049196236915959424365342876593938700939160112597898628663433033735255816592404093426243957973556772544298375182836684404770179187701065944404564655673037571533859951266523991028652885308400864796056191769733497201474446307869401783713476656614240722204869185103356075162901646901617701630522081625523021326118626686112364040429062452703644097448617902829781639972087245254071429238579728971297437667462182988375196289031591532798864313661220657476037889652097362879405274100203572232445324798729461085181246851151660810993784604441448404662729010453358408816238537132166665833237341096313928775430799178852843452523345126441281241328348323380036561652715771647058385250241762064953793368705131970179955595588563482883056924970151226196903426265581049410967613082639563158671863671162109819720419666254858898027648828813749401371991092533371350953342063423849368713815008784738547160429838337779392488764074959647166817190962281587458093474151623034205245580676072763937944438349222073959885673622645809683051132002468162440736653987082325266070440630326809345783583078851416492013283097271572072274662631867059464967744630572141913357152500989527681341877368534153245973622914646280777779765544236846017220297846924610159376030354518678024862109413080839360645707245748391669134992491884797273323054203032082554822641238827802951028499553823541629913118258447482838873441382312428302779317413382647455767321268086968382761790200402069355663488133342731276463333114424838266425949328261602028947072310480530351307694560682703927032592036178724873084638692483748789172961348800477360552783640481464149611739282747796826947893882882816416068855426187903461429059573006990774532013140880574884493901569179727675008540821976498626651632700496263992275736640311777748842851474078768875402654686890263757909855495634486401183929607100298982713547472032376631332937303633082082557583235242512259083836686420327262686180445805126318016045117806200831604931392019878862258157090415114632194752445095442352395382300681770303649794562887599395617905957570439305517542247604401487217070639703515139208039282426225061605911757388701006410679601088121033454788812818370178960266102727063319781548719090040997757923852311052993108811389634913675481508377044818662620377848010862359800181701800816060020739934306751155780707112785320766905978143231369411378849515667816137325262809236530759730805989928126463958602687689350907321036148668927048638000775196534227630305303674596574456584695932278420037271633551121179358689252287319783840011073824676829305452058941251976008417864918882253825485605559025507497497661658265117753786036830939969004769749752316769644794526261488285954877126158211504581225591444871537839755360693822842251556050618804444965066937150963534886153482110397844773066313250082573175275320991141399871434585675798925237284998790628730574293830287725452529815430117940039558281207544774704480000570073974520225198399847077136629440656554674610046488820004317869326053344937250280577283961607811854642023108445859525212792120100844119262508406071402012321356599436499660019772081803707171809808951527298640097292232116176712595564799372474604833813283768199213683983034133878063288999479290058758144991205068596050635313201651556305385706553382560319751136394537465211487244412384279816079668435261136038589066664187994706804831610346273326679076652149455766081322567060074919073075249050978105074427690544745996103079749581220624317803016395101976629880728553770358519300972751484977953191929033261534117312943813887646783657879844652909628171999299621794144458344405836052476854130293339593911548123556082558660430984715805753282262135586513258628604921064414352079618632296917913552233728099105833519524215066847214877138725295574849542966590967412487110130368483163720543480164390958129315836985397845513591690480967859143634310844675731251290677437854003951945933180041835589604202925654138793067276902831641975335819360892796722406772688230861064186761359655003535269688835556192837434087129707188848109784209534779019692475075758122549495753623945100902233256081663950672406133407211641808758777607104551058517737689719606235960777640743033387044714204076014255953677018176484399508426562265963319844776405062818935518539333105411947048874333945274358228403904784238215234595064305040791203550835548134121500848084494817734605856288719083935974504529048626604131471368896916032801036617703196531280093013277645241118267680230653673578525909817493323833083757872234050794506088513044750870992184167224354475439255767727191866398803610806024558058676576673632907879674946142558830884747537271024871672882330186821582826907644923517000748759845485540663074487681047250613589962720050613609526658791765560503141264467284637223145782560657178338119766381079515914984871857390078284916505312243457115952172715488821484721513644980634734015790846188778139894468928478068950692463305951696741896388871048070279710541485670476922459659617604679041691056035447816838890004917989614518425704741228379903710355754002714064688291320096129213706151062947550119568476237073099511693721392686927064535322927606228545159185833843597243580872287384091775090241880032321448932310621345962480407185003776983439864233575695027749198955009990132468261181315532296643070958688890000386677346857592247722330675488959723949880155997884273401946340244710324084672465013043123009323682699919965888889698224182443125739598818592664059172450172742612396903287043502256804489449516283114928308924797973307883740776298766230498041402220432583200905165287655028630041140369605501751562522377643139359182246939771824030711887890650495228034089038718841714300154271154634951535650218913182971482206950186843321848448839869036389163129078860125315408107362467948954031585735527694442461000799819400617909197210129396976624735092321791092779120856904155436926356191861853437827101457216722350628340282071349272293539719610431722659108519749998598439672459451711701035437904160793694667526955844989926390478193335465585631305319005346939566932453901158046707435545820048920149951046467213069927264446923694974643792675160645034415686946635823890223061357970727372764259905748316395695994240816507103466931953014171284553474051564381660967571971081453170469100415345258815902972604533798333244519999773787380293213927366631866163582994144787895495893689762606887881323821869089075179038560275752566850222807219839074652810296147638985897269796299185094968700426457604527642966681408037244189618253237724300575663677985553638952198652681969544667340854559127205011989459882917753090643359413147942326764798074556621748762120850279169313418535993129215110177277190759447584998993197951111136558939934854582515357932662420430748212095755983649244938824851566570718207951650414412955814026407991349194906716243269031754663491298540129586390883107650171157623239577953774263341616561448368839795725881767905681232097318243962518037898286241688216563648470981230623497454739765748388671314463429548233447106595944378788096853165341116593865392064455931181292551788444654502922676203977795729624090261210298532139819673688891266499938540365702076296536803605143730780420193065723259096100491949277083408820420938867870328145408368287383453618325007273697248487743865253164804860694344740106236742636141048804622208339230945336327925337781618995505201488995190961251945001668876184507749329179825153882942378687732191747063496806616063330711600382130266909181336395459316400196026538034075938216800929042572650154996248879007382984522192772541891701543413137321071018846619414250212238655555200411766869347021727173350712817160502223191414155822787863825662390723694743682782576112882303255363638167151201743730606385084052801371422935854963900663624778167517451000494010543947122132740955556880582330616033741674674863969062268138767789726508680161795302431658198195622194021777268479542930503626612168000097941571516234701830891487183814758809723877354459494155147152640365037671104149330035413423604643388024799970420799738320936507146418483780624137410638893650306555148427491182754820021466362647275881956468864918918211038325510033973928654637697935548349913087839004506728969864664248683880895812652315263756785756322802819143051263673086961680492807115706595765839608814315152300639447414505121808517362512023174268880999005727077602362757412515742713515175331780367123038823861199245935788959805906827784549924808305349059583741474865243068735370778731399032241330671441652458500442879454261806200560682657365645066141074956320174967210307963072397143352520446565436486245942001276215968412118290592044426019456488041483634366997631096738991867541882848421181657149133067044288533615944127036417476234221174261944690535907519426313918542033741706356480054023488460053754907839118896428071764450079685079970383422655875553242076322305400057766204959077180609277267313204700390160475876315967154774074086160344726437853596067108341939333850546674262737739470550945839754018269676823177292007008337894368000508165017849492938777981037206295607407909109938508480667492935219994440908717383681774351853463742631625934226673644215242028844100377383601099253311127388896397330687927050510729304380515516551821626793184724926859514980285658430719126739097838354871215818909533134794822121269245739329382441957529984019061525253231901549796805316792377046638620136250512362029522822336271592394658369195294779112595846255790902704829750217291166548530003986687298040567434670302216334608842400725768436759774679090270634558154850921804986563648505781837468911960726135046563902322764641349419770434656517841447186090044072361749365952129116369497588413799880577601901710540951445579337565133342891687955571269299948183491410523888662264789750798608570178068610571984829408163205848113484244324508915724661850466327472444275367119849835351115258877536611773908182103987832381148077504569024674124869687189107739311814733719146925508261165201308675685458136298198405224352580821244041611828011578648003935285989695627955468516893630877130898444468343545082629337547858265310373275325672363974926932223183442406814565293416434342528715396533339474844939613753630967283229704106023731771499543281513059261030462920901649425559076145748138684266582922951910201648512461076244657165851180216018041086174756727200863211535557097121099880119749708617277281312097951017951065068788571328208903117392589523063955480719359755813665070483479506774934931470418830500236545498136459279456175185839360953214240131919419844395761308508558429194597963955576372537402801840172239599551181523459173195075359802879887967793180807632893898824465202678233673565752309085638248243420248912407590757891487237697417819901592518501208978442625954295271505244305836214230940639865485172243877255934381434523506887934332772581280478657530945338109521328395080668059252442795610652429788765169960804636260169175412714998793953449181218068495343624592747947928122272590696685805759107902470062595212547195743688052427202733966289667045279752117055291276623033866991875292364842443379897945502787443259996797271427390478096900276188181132273566311064375115176006793295731255378054603093307959507232478001587096971999004188708747711253550067991302805622383777555863621387411477334640937427957364337413543757054993757267673005527563898895766510137429006027545472683797621982113939741942129878042527043060018377982566318860876032417455920305956774736102341800200340461306522887388217414276987954507635179065296249229738253918534660203438949775511724460007914152612394358196066712731563760865276255080557595648385268520310449388132955894961910883027565910618323302687764510806314609281630074939992330332949034380836024080224567438036310645605513518823915228278939201416748654822816132639417428127537117359870482589451492270237815471705386793112779418406524971032327096407851036842273971096361772636438691516093295335375921001673727373123564743634457266586495360738125945037178106306061124330682543538050049113168162563544790470002889766770347477946386999723367053147687478219759174696197673774046798272432347823242684352519241385615819827010794753344027817154559533435760704235361494524182479898710496713912916580274466440843249838985227629682475019501816333380410740096172145148850744488639229323265378127722036117079629764339631938275983876457612662255956498527655414820931374465796407417350445155679620902670115307839672946505989516712335474874254435777990507480179231194111690235042241076954118585850665581088078984218331678024521072444683461152819929911141203940200493194978651515836122364541048053615848729756020447046355313453286937633119707909549693567427049722203138940314555574023854490986040813202352073221498330747922516132276732808539021005080763209672225503031219064172293750520954865256079398117937544785546848678277796551376454140607014888589888563766806047332424124880475221090149926593705266748798680740423033692468044798810171894237527590063242310670040882839446875947148183875363813375132749829882010870253602880985031556327982783761292859911020357633399752010658671380795687929717347141285424314094456647790390595481791559783412435841877988609659205548582846654091580554262409028862042589505183573938735948903293421836950775913888557173210544122450665651603460239921177945042970621918130503756664614752702914051252927288459048393547241323232882590874305246663669643686954692789852084409283026054753340367848114799582817357717695595608356161192903562377899834024220105979206423516266595190969922822692201573765454151533806179719503239633924088642929046587760086087084763542683827373717068150248912529998632119293414626791007346917511518827597836817101002268642707201668642841110131304385614422830507839819454821593047823100871961951100361717049553535028235557732085085424240264245054271019038761286320844429482191598178887772930678103164435290796619306085916475314857457717115553397396489136240703181269452769450284940636019381008017228079545294618034792582970387741763976847618512270399654359685331494027008978918192866537200783496332840694687191017968432772786585145252228855871569296182100930568567296658857656092411548975948022441385905741242790855664091129142331664506983024046026093197950239449824422034715156448165837953309818153281778510530945304077536352814521489393162862137443312939555873525572145078184394897280375204978973089092573222164403945664210733307244984521481233555889778684559120051608025753375193590288432417911705917182260814563505633223303740752045944721113797413112620142273594366851291425876846812028712761134320099365918076727764434024827411747283026209817868381255086153247535492619320367522298455067196562585319420547498586362198367761112153526050336346437184484693642027965255126858249944446733051214579239986635948479975283708780620615832423549976309999198008897210199812615835888314237117851227939036856802783343667431034783893783711414455932090238301451231929419029370817315364624527687451001185761065550006937901751009947559597956988278158828139859129091345729877421182640082262721989264033971672210108354350349909018852334258429048735081099988243467064796953073076784725983518723921520047671622834185309252284548109091667044441309305033579395556918481578734068936127687381233352486165587410555371934347492401825756795359879550842233363440354858634081446985832973538640135503923293796205185132210893339115023255669093584336340805998511653115547300684841748621949761937088040540691646496210575945031257483147295131904173097656559373787532516977542839831365507916317002141675892582448022827709838895471228993486302988869402286871054270235044511086348139582191164977712920574139805284302989195717581056531264926565293694401042213442308441801415515025574356150234649313160103325759023793553235292937983203089414077635970832845608876659701591093642363471201870249028410435576752361761963864342005448746859748051895757105572665530605446456985193495818669242187567556166285267105395862624666466496920819346421542055285551805749217407742156463435268274159868134577670565137902608924705208514297768874562398557788020997153695358895464511055220058167802692441510861563788818275159577266614774886715795242753586206821780053449870274116352164314979883761279219506640135309191086822619609013578680611871953955036164092236043247658859700835743470188457979159072571140963243164229875867853559993508102826576505440908461831215912326800335809918235038463893679409077562858650881472817313288995132946109412866190637842357952014089495613292852702383924587344727001941144310347424919031309400620916332404492174648328989415678446697246515638575563832191101242447980357426251935313441656468500052213140880051767707107306729989504925900951221723362283897775916824147600831736803706645999059026498718826452407885713251226225423513724943608262548052419585487927929733940837073678463560386185006477048266718037102662994528650067917653313404139526388191685706843100721989606777040043488589687377021223499321631189428895085593097989302559540028235994189060497413068420493320030121535921417156736173538707444805277814876969458175123446934857781207004791771482525727344219941754395244784071919939010833111184749285074874254119639989757399473217407330237377406057453101544886139238658281201977804877501978316519439724562226857703020123348465121321414431921742746983819965755464422201838248398948630791174797601081901893357507849433192372130468896429342180020061376587903687610363152109637955765552191091696324421435565916606365770731858511709775688997008228420568669808261292098782174515460470014622791438554159109491335650982524314977295116733057327454057898392853413789582718856442533234625901489623766046694109419127681024349380785206762169651125062777449227373389504897229412401212516336021024135584920095313703921077344982296965568216815965298703477936735741017532993350343229861891989535306558420617473486161944866162866974431607790618483939213500808706613225520227497893737371302529152116421241144988913058426806747909109405814459065998750540429410294029865110678840657324862446810252730104541184639429317635865436431822050030038999878419303414304178935027847283296410313706267723333761914513508879829112415821588863462386751070171150761470617960001071178751942177964065024247724534037298848025096753872762425534601869610358340080893515687949323071924245698883018497395361328159881064106407995628323651781081483670604827958026896079029436446591091689014967734399704874121320801785413848292498857399291892736323781900329644286180147135387915548048931780919582341194177741586291265508827231647342935397066489974882646241836150829175462717699392675730158247789456273646851231210168143314686249592498510526912313648575381986099508705965993923990286067391468909798321210621935073698122356532985061609784505653939451343648116340795483993808317615231448058947130629141355391123410180193606320366288982137331715613795684109452455858373442598070084750106780120170821775558482697809436070449386426178942330601337647249997165998730435324798592027864845494703079497270429859561592906601127396814949519959840114986423969681632800395255068384535720563628955143261224881947871675458796573635635614838986528703729052744758915601893638582697859268351356415102400391232856950552322049365923569018141292830971410230804254508899724495216582926452725087546223786723080046212345041414900691992707421602812885411354090656558270107513659949476045597376290271655662756153400237987610634749718899650373883614781649843119541286445623997598296191892931658607122959377689967132306224652313608004660832310689797499053007991297257351670235266746572389923931919512256376883809127241902265312147263064648555951960698489693236600703379524485914089038833826299271449956694613595051618526512195339426647193488372953106203114457353594419100658476954018414932978596948406962260753147160100740296256523748544662984515157495613291383350957573740223289323958424448383527897517147697099183686165105180875472791386649262941329362843808680084856283453753448170340330780841159529634520155390749829767786757028753146269228045451834506528367572130018448884862109752268048877298715340936020021855403149899393727392282414339585000430446003233507063742757592891563853888557492602212244479085993649327974963720911199432870784867474042186032873483833682700872467204575541434827264211850454939395674453737676200508740930191020118748963091275330265293597907041544760504887926839741271935047693691024408898341912199744034679363390565201711563817356078903485624097138812196863890901245263881889047441880146984697729343974800454611422043889241639842629250159818180109534536611968010837146882684838481445381471389422019043270569780601209047441795714376536746839106375909516928028479109545170663748557491753769552333364711842344022945706759094348717251254204043490709088691248613569423571647296003244330372459233912794948781654330139761493316645678440693488756619019475764703036949900406249339830485432842060988274064592336262364386342062120016010064559759650910281419324586419036862904028913350444830490139632355538036935311518989403510491088877821992027530414681218277186732480401722234872601708269216957169441726503301738297237231239262318285690509314025730730972290103050235195250844671260514370881474442600714862496566174733256967803920655996116700375432926256202835696389745960043541242488688813307159105185524418316563205548569065244389364365058782518102013055626528455753422904815435670917632920123740235966335326419827526961809839215772919751362076190202374429182943127572514049726478716522499679313816908769258614658507514042466590370563364153927901243684862431403383859155104565009115672653463781393958844106428847311151210817384293711330244770490031632336678114198983222884109646153058481724054666321757752557973462832850411620315357004893941056964856900709725543525819470965394524433818142074997242883306871166746566077776789560636635086061747406097673766695019236495917892867792785686715524181094623949470321691188483908373568000001983733682878484767421131151595008147932371742640777623836708611372944403362227003072732814449211359830505063384301854288135665413856764210371871166590380177730274993362746964348697072511390833924363657909758500752438552387131708698324622857122754282159252761763601457179616819222273787879817384746220748532582068920080628262217769682694791875412307873272349718476728024858722885163401561066681499301555585325172802729496806321334471281070725583604186484965725752899381687645336307034285121065515800320804630116568324865392889051318612965123049147080330151350425820170600024439439455056708483476475875202431127900211956780847701193282646551633862723629165810692013054119399559312227270363711540518242328113600201051435192885321985324647495372041607803020284141769978146454332598210702260659518809002057752416622005758721538603669328293379803107884185623008301809819464355349580706793699292012234668172944659480206585419519308051638890817313443926769475264223028578160298157764207218923577779484806700181664912016674077582860839444760758887775986024834833379476575476728772302917868728216246119387493267801289514078902463565829356541328733382264827010927716443544578275051046336784385014100490003264751838199671747365097344866568687592126800260283979327695435846670759938821452336286376395329413317631548643841911060289367580073196836588813470493423813090303048353409328899225676143512152720234507978557175605503325857905160565375485984030846994336964116586191440234108834684251746322088583879924072250207200660559601805923263114286201382631134550482083679169771485709714688649827575380199628255666003984622898346034703820792646370196304986001488981695968735625113371316595832628680807395593636367878210176113651863279061520581621636396312131202637090539058599062143704312213710858527520625365684471367207953702715469184541367326233756108340033534014179769089853544327797574561659217524059949338756966957090697664422550523850979126274385322589363112445543676357052208563666802816864504003488247939941429290906775098312111358322519793154409293903873950658944661905142060512686768862112182121237527769404659956699652366308499214468208675111141166494672545154262041193623699331420964403549110908157214111767467243665895416005343711919769533825817856244443746161661440201245919421845492960104200778232012433805356223581486551940991758711627502085373138541736484254990252195499964286860163439185939353885073561236405096916808512615411090258630603499432034582783376457572549085505479121076915779911310595682015807256333119862881949236833806333149459332333055150327362958476219669289801565306471904450332579811324324676078413274414562943560922043054688912681574322193030491855188084882367797881592893515589297661325332525533552459631251759828973301391539343660762558962535584527764839786490773437302358815778311047002491327421561499831165033042674100200192633849775754469021571435183608623174403029272797746353616716411066789577791065471803966768221668175711803797997815119304642247917071044506862669087472521924425390976995235412371824734278288476764168306726763813212007997815395681598704784332299848796123529933107619241012694541460817105076560788275525524964852998713823816974175144424125943329677344383849821521630753982271473724292991294563649362431376450674359921825132665826635618972403662845188145560206819586993490971728581475397047566974784669679978397923266055057022447918728523311873277025658566809759789022459505772110172644717014046943406877319404167521407842887838508593230671585572768513335226915735165708351461049334494985837862301684261932642645116729218775620317739051124196352295483214161720698757276968789778141301510080758287860873236101261777583917688615783705454348648968687516773181921518154962551353741310905887701385483641610039180678945316795717171969027105134610083201693527997474684644705336223059819055206667882382207862366671235549090532909635916566756359619013561279223466790877324067360129319286088266823265215413438260032735630987393588053080238272766680523427514502150889018733413035687091986523378317992244776161811205053687871247138620515072199760093400929539907418970372078848473663584819026730740997153863272575033573758934449819782778772952580382876139109070180288991301945502871271492938924364200507596206264631895612763490507515998877631849783013490649332665511189446252781726443901033554556798132587491008849995002811264363720670299300047725195869964975218139591554947904882863183948893477043762690257448294787354081582039394977806863487902792060250025104918891259950066901259111245331055799410432243074188315440995962001617139042155283662287131858155268968463819029292630201736265692583136903491808717644352543187071836689559942433802630164789500759273477118280745353578727318622234848030325772468907654506786111932545782250240805091434224198884778886194458239632566171647107922321673200009787175138462506210971042263610968364132927696603628909211069201378493911871525315256064694702952547717911465362829806088932607521921002784018985199642816157038879689243744518097179090192398293131380607365740409788156468393244728501964929350277315223104238294092942362826569167740475312805526813703027288634468947579257356920070772096442797782482791406739557307801691290045323570153518216744461067544207312845069654326220563517307888020642161686957743413699440281406712093073312211991937025317423486410523482538083429451766943681314179113949545761236972976926241804558334889173323682415058623445871898732164767918916795083224036621508750005253730160010179302760714038855427300142614562861457708935297674348484199340671024216365011247774454264098572710189140862665174534299468970624775507660842808206975923160462341806194032333553938328920685872686463678610738785099972610921961148494119519952587646881288444090968337101942374617408671723704954614882535207773642175558736774927254313786425764663292976150507200179461885993878958962443842465660923878352170470613009496206176313234864553856274153560171959039245605121492866179710501496111499381027280863295744773596161805362690827605062067966882073896261694283036455396168882179170027799806374100875390280253625748759697338953007039079837446030630977680317466141212027760122592306648624243613933815442422731762633460001576410332911719077518546105635590864350152399852556546468340942092837434189106778516133247135688863544906899506993762514948434229178968271125697731316109168569739185061950925791060315620304977096975113763111883791697601629758810647224478385385174610563413457153331855697393641993082211363212554625764788761665462067929022260952904087510586989112923746778106586230167822931593608561823357341339590021664579638055610260095915699167334867782658727309131521927803545240362245768069647534097724136680531089463525304630248644635152143273988642833432461604759902706291895826308371888603111418900831172866580847385448773073327302132797395652015084148787712120022780252588212992679891990846898437435463331688292694985687501441060908628544916140582948029549791770210050425060650978146038585364045055142133232536051844124589753147220581946180263085716675773014098370011850384330236262727934149726064711665626118659920844232268145403679179484188762282950221130970948927906061801198349876989827405214685786472595933809357458225427537458294428695894668535730282284272037402763598138265795095233722091999783957744804074045585701299922318021429876088014089001423029959043035645661071001306796517653711831247878232448902350744790794570897086051130965923384868202972154507773649846575406698351949566208248940160805108231986746430802803693253226672427604795351858657294091041294358729706659528074888991949869830672231359296420400657744523906997348043513344500583462977628009069323418521048993492101845814431716308074697956503671252937960536700700099303873999893701132354561980311965529987735816995175524859298594965995210068227294478255082726914310958659065552677743265844790027783960074476536505512189444988679037961919136649574000796058638643206357828798106004009289302973736585380101326563691002662557252584567109039917183556460451656224345967928603479114524652317364541448777016480731145775219672120490346266327972537559153816266447084739306291987901790262393581127273092297893019658949359340517017455376346527569476594513212658358027617727030790114424777865793789897912193328157129229076973280377849175034224684413480975968842673751149128236250854773662462395340548787318939733589420772195709805405029454966607162134128334664634870895465520314153864635533804213984139200141414155028666613091992062792998262399982662573624414925913322698782936002218313501260824969801136760747458782725384456888379239852886458788183695556425825964424719685693169527841120579453726081523261826020946845615297353340735092308067495973996558587673100396735844523692751373020465100011353000352604573322962830132502310930580557503046770870827496150820952562108362698608701862273787138153700751182318696902198777070761998261261722583984852440680996721658282619501657481566444038760288862068604021987489204459103915603586633856760316335764252044932923796403638662285894404040074602300404912399870004434283587047588295001708365480552733210979988387862741055225781800441565063586690228353655758004754209871338048885636220222218595417481952806582879249335607637321893019146293032539101771585634359139725345048381296743160460290638309651214649173665251802625105484028886889129886016748998290205454614742899873488790867199951438373992477849592506808215998185726238636366896006251645755579145436589662883035188266727875499088697037090666219058665550511428990065336791924187801915115275060100250132455911027879437961519615534291044070402455779712414592831424830176718747956412366040077440317816724295270666201133776404942046431041599108947943054578505362168951833675449935633535887909307506683704031536619170107788736768065300330253955704630440758543686539524499222941593316291239331921768490025476794939021422757849662602198868068459644542838683170332722441785214117324990922878723535819394476109377147063992966027925714644425051872143522361917899762606750940778735622522362916240525769244122505020779591604016970740574788212732521906703244211401878727676533910214145026880178247016148990682464250448054506119837685884433478973289943245563171672506731010737579650403902835888459974889112107362898960898439009184999089941565327722566678720374340554659297459332712896784915931417181741916634675667202849632129791155205230813845117937669744228669556075386047561890144460525672319494162646570718176590836584220168277219809379009711079071544604272979897143344799399090363935292881450509618764163746648630816489504139669286924097771491960014475711947587042718534591186002486742741305824344608236075916560025928749051146717589858782316846170575217782521028924604090269097101131472096871069617321879739750319363072561666477442315475929837202085105610370630679120474215717161338251367678675652963299645989241898471491048879787859434432241755238368270656291386678912746220937976594583559176602286405554947040955117515933250338576071794893392644284562012928703711229298566357276761509659863912249389593068166553488040154412502908474984009699300468665099337947668409227273299053230285602446850565053933547161403284087410113583295775660969123241239558253956654705263311284392749889715448631930082658946146686611574564144342848264050761704611781265013236344033649845486098516971961513198593123205554108625755330718030219372473139159971641170740154165022036102057105906566805381343018229794747234972835089111775326157494301506018611659486870202400913504870870527022910871540270061396628762424482631196783376320887880989591997142509306943005529435570202142693998661964882312482800123524659668374501787558758567408867999628735312363409270314902800134302790081585080869270561713445066318127512843070376643491725970345402088593067940469965535643123349401014194604271293208412866575399790055334053786049262362256802458420280065011077785260569152788127917056450540150258381478885208827862759053023178711511916149757680729271476040921185841452062045908826508890459663716039763160840748685806428065301710271645235613241448824739568904009664083790551924175298432604230896491972992273512859663674799711121803963674766107582442581029304585958733572465768949631948590612465994087069296140835314243526686049615160831121115983683400824178597437584619332308382766493965515595515098713355211152647932339390595989861407035002653151153871896905067203970000564015715655001671417568834451317354931365702873702226024139497140759673226954544754896945185602846646659712984371419549956466248367436330199455645201937571232049230354971760139444352568989599290038407282511213032368228230906338131818401210706817583186983978886426381461413307991072541734562652112482267019657047743496674013928553342995133854947508126183058549171757675550299934005545263977113735900086029661384450676206262454070291461416219093605162263551116195250484270713875817142064625636826121530826522068723629808209642892406642161133730192553811672372357068144357047360173784208168535203391363870260637140015890222817385566926964936101718682662650758634001227750252217257540138000071561920183368568052248848467669498957507194298444171544442767903748478753028877046008293955357363771469200150864446014800828625312159313675711478948390447176000160310597155865772928629599968776631515242348890896222708838623916561664670219730109254103364804584449819702686296365385234508981656296623560337277632150930355635735058741788313299649590779961404415790135166234881129676438738123918259875944450062955552894641067291579525055807421310758094201567819521535965444893691546063016418472804848142810307663255898630982525571232899464610415792162840789604590227972025950940094925784861174502279119093999552141906202068520183599409861283547127712746832216823448599221792921057248709327869981848936299277676357199394294676243094785399952825517819802515551566448884174672700109022757509055701256197097436867635019504159527686093571083123849963571430484455414376481785250960004300393261166976612318840757450694080189930748946882485394184505708794208098383387631512341985055949346224729146231734772779657861788841816556351529429813167062495399570421576890814678861737461825325072195750022664614146470393826241758309187267718323777869936323585484478395794162033342887714373146362290160822475986793434322522110825561724290361348281532563831016415321007949914529615780116186885290941870320451663567241767271926259533096236714504462819379316869857181988956248747283836356534573239154016291869886263901240183362887265805696963406887544938866649893124010900913556639923195203513134288149366948967313774310678895022712294032473372065029227552736967314829219902774213167146390940570065443940053376532910772529395626245754868409938198941924586116206213594629784754075735688898081228859024725127990631725536660767832713649545255537855791965609335023542515829778204085106652512905158598210833029046564417829622371445600490174880421510722901501170883897768001069719879691720414886436161127285187851546995649933753332354502355381422335840788308087586970751480392500385116975715023698007158038198311437120330451307975240993494509535261811241509454629708111458389999754614629789800997520514974923737110355984403340429803322347984692672332277539616536266795024384702577048677075454953437250391314943249645166599708649661797490413840298849687660538216161357054140523048446626379822460604409054505926113528866922248686129897732081640016854856270926075627554468260236297816242576329887114248700849297715421931149560818467237331620495701347677164682737884972729288189513752256912326497990717410694493289133896998008508236850945916709452131696255001443434476054695026686998769409446054682253310002242099659164975961437955426870526831058610161273465874691263828987731928091614768755674120889533919858312221333194088456240800124295032107523234355033432773370797011299109173154373200476969636743089707213938017407279548108730282503837370935877015641118007328957410371529717939838027724310812242887224463235805350326671391155589814082547478335257471015956928634949735057754671773906910144586354826529899985345434337060032109829118478408696087828704589377724303397576376308746806026012123014376154892772295277403271643601580623748380470485420575720004573710928205294131440174303341571850461745727299681001614194837060029391802571288159234884063922908469468196145994037105445831707536818338618876402728012667145030031680231005203677015438721523981500137348531016500326306931450753965693768603364708747114236096346376009756937577403829771253039782011543843980216540485110064691906234403074309677065918805871762692209529308399231285625694981766299639691017073469915720393373286248804554068596268234543769814804518465439614792859431835525287275591882119881670501367141825771943810097708489951244706140890284679855353513572344378316708163211388193137258284055348937766317362318484831115283257616757135513924685879057687502792118699723569670529126570881980908122391566907072131999187093829292164036635792046888795333123111384614703710160789130721780409713554968854347150412456442530413722642890927378793761521230912891678655777412607821638535915617351528627038233624132355873646008892192080506880025439360027080285423573294550427937037452968415803949046745247378952795871671669979203005502611322555353487556973680585153139601567908841176575736067073133150342168062900925918260557615764970689809020613815959957658545776102756355624275816512741925822471058794888146283900249008225219833203499486566609832972921278022211541731273264610507701829532945633542814039716630536642054720065247464308416035349515211313086519507666071844101946857023056979108959500641249164044013525369235966752648977565801097452237041779920521422389252442496195640124878495481329691575461669020808177838463087363525668751976993020692537480656135927260878943632931761210093661492863889945234762943532803779334968644718372064167921458257819635210188357334294432418835840769603551964697771170602632253247773058066689632949318851559309638334326694569206053200052017101689408288123852917768554156501763496377729671158495874939399444455451893040171691988822787759492118407912042886612127436525272217234296704792743483365213143162336491709104057378912356791308087141245995402893245800567986073625216900698116023155770169702259424412048798471381281538520898627889809516748613462583864271508174429237872555354536444164673418793280759046046462851658812144403574027456310192133622292335974458640249198386405202021911915285323396212416743966150635909023787649878289242693337591576090922857072658261362065721519314092498231418725697713661741287332572104281831369121010681236406556628384515389940046687104247858583327127004677709503712525675945295166507226848271921463689249143357015273332264160588779115881529581305098627599020251244835114775922206481277144799607579367293820657172677757450002209772781641710399563704257291430228834194987712596297294189849104817076696880825490583574188702848958738206875208335194531866480230499164048957406704292709523391955489274381969097290086845416571241218040974259323920489090970114325153196806982847430683353675288594334248325136965275384199202399313916232616523871868592724636997018592312432883624539691140656632311497085289850115000136055331776215409642740595130276603414393876281628023772208402947818258775466895989942425534068294293566716141105111574795388078982199415266197445684541275312378068472085641319393759784041383923734097380541356978321596634522341881762758626617639529479453151862054903604507172162276706647450514374056659571040250554167291568213643983361815559397320903007096499335273834317706126902760978124909203909909199455242819807094990098584037342483684953247700212896240425482536547285565595292434155334890041423876160608196990813105831524585371810813694703280563972827102053921001838631843550896930262460063866988446850601968442799261783896362603937968313796795755279944627789299097931243528970504592028711208328572413779935895880135559199336442939012098452716994226237561073007180791167853280663178340968898314912162470288804128963093256688510602327424985839684838694609778137942530426927084987023554301332047654029984711449073975865783376940669486903468224763170235468451482726874056444811591527972335337932821257316903871156990689120767164853158249631390266849864319177003047577222117366090191621644604972145486041159555871324885815150776179165846229247666829379233954687499589950793732990322177311825948502131800232630511375072501917422980128552668024025915978618290281077811031324516581464547764981192407908160852058082054918143463874763799806644844044418423012323117325260609034214248813243198107580674922295044236177212774438911144612868920483627137929069352949476808380119838034024997761130674350796498889580371177459119045244720231734740858013107875870650609174583734203806129852298435718662815525820147428396714989070853533130042258029004338082381819963559447472079300763304054996064384862622043103489053421082885220997715978802880087934490622285291110803914953600822992489694646828039887570585292435236473092826670862737838448376179424967278947010492904617683730099677191178206931578522551244209908542145945582021510634756999287072438221656255013852746671335622613587826383368552833524334372247655506910484712691505993513596143386591447868959391756805456706994028627977912587751940475588233734248948381216569754422576582217860784534371501960431821894738433421228796372009529397116033639038495656616914935451444483649070620048665054297595284102247068158196263496419778817152093252091938911462516953283419593084452743648954649760241419445396760111366623441305590274796149090042555579872435224653482243014769512940983065699240070599289127554234790936381436205454005080631788358105557831113685428005464486723154862745845629925922186308127580917753395003105186834064979004448697097137231697281068763830276902987273390311390426435351893609247783231838489946502182549612506630884337243810422163093302045447750106203559808222556034144395188989472057146452450783039544936704811904224177038331641503544141057207613774116021429215666832234958355977804652392286291221992311971411504214473490574145313729303797354212332365866781522940711836834468520269553830565601148101630212003850962555482548376692793349618355782827808206481910527589598056446871551798830000486438793049191255406150430981334024785186476444689729158683691017857228717365509055201652703675179943165721171533157705198044304760244625302136165919680437368874240034678936556405859995651286036109254792036564324756101193289450845903565241951105654465259862913023926927734582232129427242376812903277755547305133239834753658161740752665468260838447397315742415312260163525862709505091358309383392374400810835927748840729137621899086025260475707252203993870017472841397549863481871314543118028396044275123034331266878864836095291135933950288846139548698235192407685502181532583318456711218245419166173252431671674408231252923034623575009653578687121305816280234763692589083319735795406690259772463479942607189154495216696787440062917263310496536183090905779651554083650301570524139678801736389686141831831381838666534936243630367498497657427710138949336254245259725803632498624008631502075779326746529748282808256105636700106595212244374352586383656375561038707670558139581045895091349612884865068177775121335668888868829636107398465960776055756155501697356912081248295523777148507015172028114068203697459886702832380037759433714475087279276904811201182681889274763250872422576303957224457864128540694700428416089936605969231922404668051994710344899561099742883591630898339450857433329067799802580235653672890321372371420192294745118214915826349515170650074989070456818393905028917093447669622818446972867122040616848782957234347718407163728535797040379893288224606151448895749087568056046617950156931528187237580894020037705023875300218313898684741263155235779808572792856157017767689599128055824836126235208884626588548541121381293157511922215099092546734787088079903876790721962601203386262621033239120026598584911903417477973030518139084347173630552275761713107873018392265410109863757158604772471284417152398457119656037244259919286600482351455960291188478881294375866236683315792083899696937839861373306362578123151678677835023231006506351678207958274148608705440269519422441702329184827374522382017541258643367661823733389813532671715855704926788361145857434608840149205258713326540075945135059245635223983272374057289263935320223617468461548106192764164325127184036421041561642553232066519166559209671197079583301978486606500572181997420463176806837431763154313226161289638393168759661812896568619611162442488319168697191856937865430734870663062764975709568327369761824540992146391266353651096017489254282457353845207732762398297156269372372244853590578392141614524979838442244196498810126670117028579988619637839687097990606050941591658119938151249549351430794501153575508243821787820965790357085251503789535982435731891860044922430824232559686765477666583013576769495630484591948731059608781286226459885661515683978500621290807001661344115288849441768639767800980975281963639881413022461507694658022271554207801942979765623011791270275948590540404148274837970287381314238614835885590051127789853322336524456858796066960806921683560000705355651083894731905024359533540972910194404863870964964775016930156475938886794743313540786097249783179461992921040284757022789829226761975832403525279676599371530338758706139558496442318286320583984526555323636266628173998083118566409994043222495330833624322669259198178096276527475781606732311397747991440466203658514210762197292989636104675887654145786400827146482222818684153171231232731202578226471961699018754598485564828891914799729316654189501402462253220904238997693818907190943952643625046461834804143759206097018059726581671353267465840857540165299870086952250817647539504827860632894875880703118117475403520293239807295132632389898619621235968257968486782065854938049101249949170578533393151312876934173902579963200507105558488235660612117040080042261990985245581348218527508148725397548871348773060673000417542176502449045101726995250835626667765336474692105258808429505133869522365785553524417608308729706900853370527958964811384367952831188342798327927235389020517660427979855415331649825854702457347851619789888738249447599529921819231431781872492344937789050093957565955684203175196699477349553280289513906447140545659953128061698976954612611629805562048964101443401945590144761034700443620859244291203831139288810466976962706891116881483576020461807693368986973505437829912291408443350419468226310184315059514595362580957799715275073249211470603796441376591570592027369824910924942482130680479127305414830373267366581614643673023310832092300620258655682951424351430446848341040463366401810546504635670427399845838910584908299712153979350963322788896439231697154816953086408373767643348543062233944636995314467591419874519684938976948767139048624188943272396098986985975405650450406979424691303731646908542447202420624190991558973852395700970890938295803177163910376721107327070976354305301516384005339686874589130260878499194006774483544023690534443644268763079743713378388083536688489366113211488442196115143973601200596047226610686859439979177461863689578025438858030329248587384542364112714486561167714885803294230629299944521003245183082507916133327703433522780664383612766668922002053699996987887208011637047910274841849146482932954984704127329348977823175556567732314216177394055902450360956469774061188657481309912277311397461809050323185945371568906597286013658515226869308634100287457318443815854470948839357872685068768754099665305902762734112357097341933701861006320251482531492175662191715149139670095154000155981173832122097463633123248941109416225078362700427749936580396526413986610561378146473875176330634093033278864102078730206445504499815559053085595550624135824853021589984665989143758104925576446576534232682674730970197372866988034765152844435659026163517522367787606490541078906781123257690247533687436619804909625463370496680929612891564925072471274583168614218067666439199334581088031109923498448259162187334601676204295013422335542182824930610241947808697695401397702686612162493654660776806755516045552019384998672659886969319131925291803776098377508853212578036270119124193810504751839478904300451201545335270128660828238306181360378162310984390623259042028907794371883280632129081346961293907773796427585995128045032163045021499608042453172886333162402209582468447651581985029577478900363760337195565303150711696153385223142039892623906849887076978527736880248997210357852456846133312978548355123961776213533057155270350862609380001799493773974478914771209082449980944348748441836160761254188495829763897091411111637585629634953974951374711796201055665057672761379678379173292599646783271603122160995427041030830818756712423608970627441506767715282407759170065849874161832215180985521540191880757595847580508930403528818048310350670808596847640522333756521031151819140373013176070593172788764515719272519417082989371114458602800846296179039537483835467620746748180161221806032380829675304788814422575346685852004722178307867139026150183810936326067616957039373303643689923073684697085121024760663486696601569074232820536573684730806549738194618853357032228797782751968224740684212046746838651967472967642677498228488987438531633244113524858426576939535508657795861471415624544209670868793943223424699666573212065342158608920171918936259898929428172451613378448219943294296678913733858607887001128623943647353171788477392424580287080624497144783187734642094222936836900274242763907744421574879327390004135602362057821679802655041806532240685087647289291565888979370110469265473830972318455928703077793677259484678885837719519274133287966768313153756323267158407429717454521111469262371782513660486435671358881748512659873389942099157313422023573928799835854876379943407984334282980844690535544910842912241716909119590806285005858059458541534711022448513912434123669029180223205444815776530341662998300500154291681092065152638810064487837598890231489695859121973462400866770105156987317359519630222793662917039004722867458087797643873395889057710804135445132989517287232675441594421826837989396003955214136498553654850967516188536548324325576489772554955551330969513181947704402537076507840060825012822113446380032115526705739219224268840941443465624432142961144703973032800014305148903807164341424867762310934929781553454104901552905384818457874202828185065136382844170018665949166666928751852271884366759287987102487288007772403293662847328618883594052259419926625266612137644002697935684568187660331765921675931891271889733100677307453266817386478819012785314068261033760469010443972643730306864715376266311706683377834556324350612050544640240810182993015839218825748704695949393459783921639288966158733643570644703290938515319647760024672949949074263054017039786988910712217403312690889541962874931031837840011295963639942759994725346851065199552835758045520784420671475051640044678677354342611727379696876213680592818741839755422947969798597706764312053852534364997634057858180515432418348486641517206218026474181616613854730356881274647090807955804690600604974373244038056540350481514738001036537187309638137822187759294873965497418075133323519262601053950329116202253394138465811615252459413490927727606225848327625154217493711002519658691418840125999177468621480689285767270553590042674111913758463472576341686939865783918762139035065171139607245728341546749199903954427547008118849208615490233402497890670028176584828132841035527774948167739668990731642600640645932144060389738502387066104915563598809812206888099452321579890485968849827456412950865068570927778092313824381969027459881039228583189089485308565298211453569926839398657150578517167549236897366862343433774703198299098908503291821513588779263886054774576723176678513168678597706584319038305519681483786029724947754936632389162305655688610054182033393502947344630782603299099517003671510353360930259523985659561639308179510678803372332803914078910091641270003637723512904127933903350155374134339227139203393997052987559380991670296575593054126476880753139134794634410916754526007396194268293609128991627603860783332932455187473722931424551619322152284624612142424046801014773045818715594272714190793957269819594713868236215240768345648655400125995632527085712575552430887157530766278643281748855344989195984042681389615806868458957157873814715900412606185966762103494621299548111134713584067879855111000304041135159618282607684243936025276486213400840556981878410501907416698776004509860438056028217938534961447271211832862381667801936593896988291457910414087746562466969854650614696447481885105353575289425610374950613013970005363642638763856719926284140665358374201695404730295094541344611585310131627522433061867358871495365074198417161495992704262607569436415970860095767962542620531908659747888247888676057723930265688616238240261633199533579481568836702138901873708300731046050894841606600918238036845732175718739459656760534530246476014798517046773177422014730877919630949142869189921590001423483192237477423699929793081573783126224765417486819834922391346481086952252015767239722109272991752828463934760759328147563438684830519028716985492096163351683231474840762425559293536008192079334248799874290563869360728955274331318214324016340946789521470083370349914265394246972292626544116316731333490047084829131461092778357929448989123930739573834118269209530605141981793692629835766175591396396605670810848737807375000088691469504140370561474491756766244422160275357213420123645274150426072033537626435140229262346033669531103855609540522048891825801257718089213028639287219140353068425037669917211458280261030056510041085189716105526735851962912493361648283056413891508343448087682547153898636627621811737207585002263001744672251335350886913355337448654566245667267503943143616324657267284256282544623474214760803224131793270475972965269202040149031671378454176854689399820678510685558453396876790125921841912541611398832996672661165024115389459862034224961551374014717375237644346192731835636429510563250833637697712065945732750632728706911169937378131075967240977512300252346288272121699964460150957115519825341126153208374051895957156061800237475985208625956247002876672206607615031534647599283087024976408809088684394168648487241985128337031805592487387250368294558901244802806226237949570936607380327614599222226171279886081243394452525348915665748494495921440697679868977057349774356379443493068651158074136984407588051011188749540375211227005090055022832726634333887347324893648496895775484362519144342016953202814941626481845715313272540017406408261207204432572987812161604147971795043416266860555830282650017612489671062881048301060355135393449548161030573194001899431052975925183631580540394339452335416862117293715814659538009377909262931056861508866650216532914897186313856056050860126230310662165489023145066880583473537703907007766148552005643956617799972324413062296642447472109109834465266898108374510313239028745201375996272363030182436943156513311249202230196235433189775412850189678249485401048067526958227250934866218951457434332706678069600401047571178949616442336320478613067395658602619367232689333373813920098423043721427394843780536849417839091135093122929821156272653408289035347278469277096101135740042166946789320503313118626851744648386631522560267903680996138866582667262325295786230936142131177729399477374555320071174339200959494443333345367445811196821787944057391603862947191483522174135554643463454199230198816392833385229693426210112962425511613058915878665912181223311329529690332607863108178446671067064185994007164264561632259383966718276527468551892126936628346660331611689232889594454648021866726199809467692933153017010459124834706045279530288668436661721290298294551770588079630248134118895384625312468560953306188517688732289244042014529454850856539763395172958501986161263872662082620222689465082919667487551056910409834061712507648494945966171825801313437369645576455168415174714065223699931256353438700730575145653247504848902438256116589435919814504015419517588499297674126952831205444023069201082086689946853047642856693592243460593398012762313513881853371866968478396354478886499575998810423807290014410271561326270115718205891943782687612219450630005336816484391709412550104304434952220062523965915767855867935785222783630672598846526353603551910965583894776982050470545690595598520795453418668386152166310046637481459260318637380093364009582740738019575404645816611674386255512527476588577380613179746683495163022472630458869490676636719620263881015445379919085846901075729786636220216687585619188489976853710077395547553570364998120761557724762249868123119771055043168699437170372518429521707567097643303077548062127310246404293593260658304569316132943479763746849498860445228074435484185257192525409514829584879341596751569985256718616658760910742806509074854480255667061673042816796205955302045735424909420555991261805060026900426660850092614152111274198634067260879324326964405835943419288785398241261476373381812401122773292143013179265256847894955369395062477955951654148975485733632767234627307906718621189438211965159900397329957916413450948410907081894103680498531205020327696037487200527386295586752805651463464602052551788820745988055834113989484107132868413295142746429259324556865166976805854328558295510072008255105597367407454668928467343920674169875061453579831385519931464352224566917241659010579559540865590004567929974805375630070760005368050757800939328902293678650896458394800505404508400764351785431941807675638805830902676016269486562148746168052417002912994262673530182721278725503072163172597995178228962054641217722772878461890932943494792987739634709234383553057380474481503196921789648092572924548046830784667930241327611137157640351733614800259062325334453873413163508233097742879590693006349798599465527788648749278337830149739814652049132394250228476570917746128485254530649605508278652194820455532441383164155865225574914017140973058618498084927356034357198283498445795638815450789211489970707116649186783581653903075130787300824202789995346061145408858664353462646879036094414449548534465322528009383383594068968031815169348463400023321718136783057245584268951259119169983115412305019175346621810811961993164745791855750499751753186799025506647145685855343073666782354420136176718434850355683622110127305478008072451787192272912332941231141596892064133071886542954824432925340496644552468666423090222259985748208559011490562375387553138489543840560978075411703625637536876330940593406663596360276304078948742361770314848765583197636434877240682907686687488669303421917674321082164536856856074951221867089524283316269992214424815299547617468703194481998514160964854723243969041507200521965744733746786793609562494435127693857340723384145398751853374372826603073986880373902940026728268945256358254899991193943844228215552629504162667570569029063127045416003492355669610533378105979815428311616349428368420416332621882234701528166104367532234882544995042526375106591010280816629209320486530142024447205729284177728270241310313011178218547010881018319943584626251373732224148836590454899271437141404723469487107492555493466083067075485166550505652364616561815477005764889686337249695369050979523233369268882724538296363238893569832177868623804393781448964926086576198589269484729456560135365420004219925548909652400747910533374373370546945491972785751267907137211273973592082236777452979370041139323104796995069730509361134189726286672883637341438481974595753173381924514791264939549825792670395649736601428638144569255293441763068123888043761091310539209308199984650729989786511699201399221233535036382039541050643298523116540246115592334849912838927248191560913014951401098111092716888089155081064491431660085593223500394758936163365161261400094679059121683431513127922836252337326152565410464634625521874209102095799247618852056147489595680379445211731519160288742827038703520047027949304243975567354862446968281845534685941645086983903774445622515684436427295435444055240401624058241802228256248375456448866809800867731479969391358925855243532198951182881190764321941427593435800510233768374545637544032581572890318986317938505206924477893197168506055555132301907247123294512438316239577798132558985545079315235148407264384726410681664447759315714507881415125712438533142503150445407855660636203363710630486516059765605544413687440012101587619369366476613279432042091204566770285806483296084201034895438254683934716288442415280373003413892747739021653416986331833532740044483351472105955686447981898526627756241359682998339830458910054671946269957596435298512122763502210573106419212279477237030449168975781584713458106642782799419378080148503309661761053470403832545352110362148266207676148762245734349544176458835011890628739267447386775616397523017781301534300046693634581820858458208069091513579689121204827658985449541103359021239997733110994592178330573565525997419010410430255353505817766526553741859579367848945553946788600557842113021892708688735916946541013412709584919943512194250005384601938575682653901722846125821472719033756350184782058673568278442233085135760157333427789311998029046903247395354824286803914835155523420009077222991635257429943011786712740727262935012535218678292958133760200001300831497473696722787408801842090050587672398800007291081165747533542997360247575340443265226669897850862383919594224837078487011617711177818309776890197574993104060891626706660206533863697980642336852628437782212994206149896691138659346280554023399923627592648931986583586936070629234166707779342136143743722168893386554515320222851219423189702558704005679429256870525864373341782140423081268414375451913959246761997872023138395435528968640336181997976790534747190911105083776283176129869934578025925697522241397754189178651185679504381865030865461769673467583567634608281157087362725302426306577562546821814321617577774894567011179902503780392292536183160721198869295126833519959424649586303507229868556282040690768184084740217165628945306570937317277828086798585928732639891059179184327221929929823375960054102544462707942638115553317020365673171843433954999392726436546687402960134706284205430376790879881493525677018336184002984275113871830627668056427150177530464220646242384639363800743312456073471056482586036245413732486650713734557907265593478687527725460998729049832288729134667243973573774543624825204369367335419023929483291949179176782064682309519244146836731922800337550379473626552054275239876647102717213174229605597858195626941022030987002159248311089794312856211239006504475368423415762220540108716060069776724875776312993422965463267511761339823138791142313018495891685913728867802324461805282512666991042559572093193077463067743722265178794042792119145152218416354962822815573259107157271046318193548067360501545932372762708475074038270676512201371185057851013330962625341621960906603682482838059409448828101048196685681153057972232655768394938123264131291390295035167242927328222180300318450923785723063936797682034816193667736461766599166040125752431912893385791391720615545348734616293965897553943786327970649654411478591364737375887522483869793236855774607721484721668361734977920451000092940156398051734185460107625761626508495273614335935203077538811904726225336002417337581686473352638320115754197791263033019165140805002921104039148690532457278907463434359416028497356773471942238705092316378152073551341420739761372813283689119152546299166191305823095294380148910466197510513768326155097727309645881423658237907486470114470296700916286351518396490244242170534339196851927370378414615505833981996047505543333679735590124120460913974876633836800666279227786405276304357533928204388737931642734075033583661932692236455483305950281117942038649937513238158493998518610580369827129151528951082621779083369275196153626528731185865044426388092604444892482143328948886084570744935472649571456430395127069673527023943058226617704202636062398400173534345985170121538156985013997620437749069965764445475975868385571591638959508569915314881594448426619143819159303815474990806795089728472977094422751031773275284233394255112940179522875151484716304647219981998027568015626891968335788390782893123970519472267476517526757107460595792120476618451046034543455588083366348406458768135425538973208984627741630741717306768136171107759893394550884748692852432760608192730583889335786097963165909167164692813546686467430945033112953413702218764442110078402450566935653596156522677170669816992981173319091049951429406274239404874931603417408002305727412315812738817057915769034337528228415270251388882485680897098984502976433738169683525289968768505595951874665139373263526665420027098803312640443146729707976645876757587818434470968052554097096265661786022946906944893420659541598323293129616413333549821853816846831467040688912039176235585539763827314948860397637761319360395596616161128465418328824091509258016485312579896240888312119042726759157071417372775112716055707468384835523584341507581447146830078493940584929558073595300034011090271478613464364379731075196067074509361794946631488321524671233949775312454108808497345727753035501057203896718315267515816836503945255540318023491923723944098954831396460485207415923051651242093893787510078390571742083021399079649968402363356201051910928481657533349062697606474063066569427741307482606656870112702196204952993764537740380232193798546850089788095077555202049348830872748281874609590605857886724549240446731155051773949271007045014428794422328172559363926239932835495247878776243917481435925518002678103471431022668761173587439622962692085282434900898074636136750548158926093123436365803270837523114873773767865764745912409942919651068596983678498483198243671459930521985960698359387981334367843795118198318800033012797550694699619316936972796803434717975095449848778764499498528747561636033629387016976969695078708733914991018547089214578741467217954715474220123354768952302148121957921058874924832834042392718010209834074259147964124564998896329088808345745096051915014235413411836370481033833896357292442277013933238966969729576223953487942631286114096598839780738046195325836506348062004844233050494606022201733277210583576725401814253202794449201149914717792734082750587476500317953773959001920006581656767133375688875937863510750932763061439738566441460850898048701283514032739773162012258254420221801845485179718382473319626590201464072825126191776388391056873818681177649636389324665640814456093581703253436238328824878153661611815951068058437960156187852333007474369224393887398194049111613750365198480846991135597169849590552444291702534179759584845037222608999103672562945208694363300430481473849576390230611454124417864220699805571005040874567040673010486549155711950652827583405697154275598809128531185570113877208431627795129336919928647210348557437210257876814842663372822761116048324507571080645243751600792454948257847629973464416250740272970517974152152454229980745196728595206411213133596936655384225550683882959089860062741027472332865411037129113262456674623246398041285047748491970022590218734818978352193110644497787448279278635851803028429346179109224318339032796625831267362532441727540040629227180980470060398218248331446603113598916039317919184219994973902631214952765278675241417664861556127290839941165697948090088503911189521612023053956503872897192695931439394956930865079706674869323039107596184718079654891203876886207710248819216177629336411112936170726312174843045348230476760233776904160580859013824421807102404066501227576348576024860775856114978769965368161905871482266192546981539924633138315635412204639742376335927902623227541738071645072606640354346156050446521588082344392327398304233393842497979390931140388953982948309108164568050945403653104726624955889202743458353385626367316778544362069759307401852763280200410272835909779469353803019365712055168918328466003728107343979472380148373471779292687475058981508849528394587805062677002696438649143094433168742571161980228805513408093827369191205052552022728938423286202499296280649348059556294753297138179671410100295379608520078754503827499701799798261126060090135898156250021573605416875856913911926928107349666534540135654887658453999130006302226021677505437824639336551035760801770296672168077023869562842265133654896349325243655502922174585657448632866620726058193012318303803938147552744115800644110151652634215659501407675013369084978553419153321939796416687507688799104225006057582807117857444602397118127230841730843317240684293549188256728794976264042601284541716260945336118954842260172100938652844408261892028406218676303388848250835704378384905055617379924028997770977164505635352816132031271777121949728873875071923549143575009285198351084909054046003262158222057299392061840485948670931733374778092013407757787993433542679228042261623765350069221776153989231077051573713862713648360320755293818370856964742640422029753084575702165785835338517264267058365482841465993588686243453822832946528152771445680401452043801293859589407052584214827122944179098924746029039351987497936796524628666962893105242088906543422090664023089703996672231926889781013805520889564087251539472240151063014373842417041548034928230043784408266108732375206786067799852046506200447950739516052615791073099746443439852436762490100859876127287955074103021925096913573705940868951309057309248397484123030342924097348098433498854426464154816365370475065386333913953558245200280182858084798144860421768980305340737598593905743173906480911821552149857376319571456339662779161606567579916149867116109256567929610078524261898364931763158662035086522813369858693707415359421714549056015108859829074943186977764451949663263720753568925926014226118583479977580629204682775555754947748489555162599018604627130443679607484244648570998053517808386484662843919210606869027013822095490572277272349424626115704207237150462781027981533159445772073648695378374057343878410802848440914762053333835191951271227262973469750616405179504731169887457956756774529686898840298954180573796961883596617074487044596403526391761713151818076249371695097259026693801628771980415022872970100527324383381410686133873067701819426645402746122064205451377371682583030322222710856606112322610456943207251566625910288384268085693796369152047395881459891630245188302138062491904019154357506442875220902025367122118921899135251781078326242204362318595459609930205704398198325209306283552102463647135898061553667463779457994876725958875213746475641936428349710751803739589510392242432880714531210171419381175487712949505050150464433741760695422207365991561489143881266182792643822286590275779239088665400616037584809930973878936626967506156824860471215697301996382391493291008859331859084685967670502797516132943126245489936667769290092019381987507823728343389073420889050809791458832134820981397965962947826081414361512373250637434044261461501107688829426451076950716415791136742540517090832362991501118940960113212490928637398827917241552775709319011102871329785520693070504632132400473732119027533279128460958698820855136204371506492329980647691984765571870736599135438807744466101226555345601013133945014911081051032114492877916814879894539575226394595575633190677821795001739622125918774282917426714793390601446137678032067444631765737955451851886311247705581894362867582081887359372335625225158401143672204000563986460199743000259653957738283676670663678993891466539237141975983362627856942484610945283567437516407258430462505074775611134674674418710223728988010978944033831980134200778389898036228711108944486885560748788687138902643444042854056596649030273818690572282028911212247670675508052976388219372602514815877780408170858992223520757488689108144180434740024428623425318273003643385113516733181474731673323668702463798516442592752040777071386331742981088076457547517240699855068753117794918149799530731568594650853108254918371534767407215545871041066108041290314828370851018570272982165483672010168557153422971840725028368542509209255591615295785486725791331517059408237545374891269505144378768235652312973986456596847727763766887196400837337554977098738920216302558315830334589398536986938872044339720074320867426919281063991760364992149612986599587059310749742842219074188745796548984434170678936863073868334021422418362540283115689681242457144173264867075089479370238870001079614208965747176115550728719665043229577301972761967540703984350671743214222635896612693164009700440268642988813854534426529883262185749044550304333741121571095677715117872726306674945797339850499206405770741589087013014715629379447466397683353541360495524363767341071844492081090359175218617548353302659618413687598803845221598506122946872894822654351109012106462568064777784260015359414892533142507567185569056319346436402935744544987519917197324036179205448770371639474104779238308046721133329851474293489131220331507679938153771299480599323961056268757842403187019860668373896395561981148818737880658700274063934973375580743603212047972129555604575382134623795836858720205435127330728024175589353201267403684421724699081253383713392208489431988710104575118926337955370383052573716408985886240680008403095849824776244124649032397942937198120138304313616585317975584482392211619898415220385005298804285731524989359165268437322259029093176186204504520276958540645487648267703863122677540867840680157436698629948692748644585722681530568241875960436349251509227927665584231762050222550034613197925559618540475655815320470890252625654171227296170046979339194893660929333029308706311460383387401408442869577714921248315959185539479615724832743649859269021793223682639714039709065721943828857709663198072419032939237929957059658271986167542828699498937491292076847995787802523255128136450043838650028801475614038928212832127079507626574368664210028083446717858139432264846728106521797624681930246850787013459497792314773279141146949863716865334142685986490071232490863501543858736114839018994989094072100214128834025197986079541565220626112923187118877458880564700215643381562063636935886443239737324050534354659712940129811767583429691542007732718154388414179025076447889044065432237716187797415510444269952772190207769488507205736927939045458923121767258226646381675153485102624591549003570277945115214573248056536177013945693246311210240856646253812171204611145482439497072559047379550319713332194129744163008731213495793984219593047925194347631206090624305999019898190288091030369839159569953904381704576526533749804483812740298665066162434926739205953151951664651624765408853374938548797171391111822770680155659231929659350679895810318501086417984667828227758069133785872229244558393360237895071763554627225931834089014020551501923875033570754586038853414280620657865819815518208560092878239070541029369656556400121220984526333594648137113648961552797722739825770479060974908172950202541364654889948753027015306621641588849203337117721800774739356389690633741232526213044080601620527585363773364567058020681066736377397430107694932673381769477101364407774703408156798289530794541794283475937342241007030026035997458409737756856679557662210761834503864290159778941746196968420063956410948000941902609629893704212600181258815378561986671561689546572095983702614607429637939839691024218982071540667522868360477622661669812745747374318049285979618472759379501293662856179189652345833924745285927150217857422315020421019614443671479534119705052019471673652380480687678980712783313649614078649700071288124866671984905501070458311133648716100075325389082086619757976953266307612074777097896507708240820830415230119361224735451956399785730477042001588653907367556344757599968649515826024488930892473094244494814612968287604847911498241689001252879775268560343720567854198299172320712289186647418261344732759564386020975186758277320007147444537953587189224481300551140050120470267820398918901628439126581359494281048293516222986295352073691920222421150730163624394495539122553202394333210912094460394161089140497204683673902278924612269137128256606932290710331118104087789379954864611341882198196706739797079842736987611952446258433799997923692641673206543678648077437412030379452903675756068399642632992936486322243152419323932024596168455152394526036085606607382474193592725029375744844781284291539867802913489026693588011879244960158462775387702027224803774350239164577341680950542369567524796743445342425584274252331709294425415810143672212525546543951936734962680057081126419276541629154032571234458125049821422803962232769818409814731915735995592636903593460748788850230032499045681224905174686494693037557439858150109080434409705026728418992217275348728261316636653595199433784342712563608810894241250839195567991851313422204595148833444271573428868670986643552342393476433062836639298492279083730420831586024999250890983578112821186904009358523914071869975381959552963075570017866146608807923921757129560127726768508976863182289045372719312119980195353339597968901244445483746300883072551253299445720608314448481164941684782472784785045021667329593291690973507473505591881377774035832490754066645481993078029347227948495051351548234968789829893296546389884643083311301750525670819772672315451433216797894407164183491532182474785914028737042559818510046270273323055568705309673419865093617746320500970997811726772149475634770853503819827718810593062558642043752366007774105084336359199237527260218873595681050223276793792865348742753096372308932925901881104749701312888751107174991787689555663610280195391140702924575060889764448715774712190673404399030115981131291069211277317871430418592274211569339083138401601028300222650694816544007948210204619531753370100498089687959483784007108193282037310722696067041359242196408073157926713714850856918241409945402456747670423199256497877831762775185440404322651694064461430837810203854101442431022884444011434521370951090126980669513509874596854371381975478413656749204997145253599151913665494392288397264726670119795810589445999304002560071377234699383567098518900480836099343083383903750956469036674305339366414183112533284784952778428998024784365492618349882451259944661892144366751861193227255880331708695358251711040602113443241404062700903086721946866272755531236311366735943797161512550871995911549922994688767712943086084410402804424362716365511982987180137054109467545014612566173537303676881055077692485579049895543960533467079284559510054830947548323473505908197125767656153082190119016463891118873294536510965416201409661069120766025373298365604518533452046235039038166076822223711029619973224781310297110955783005367203665819054085026491766952943690780314435709136781136773802109364522835605930811715785530198302162556318851609421187557658382742537142746325707911898529521434622995070647545551418598449375948852018832131102382020573106700982194644770469213297976094675620772257707540866327550001321501049382791661590367832672266823393971030800885767739762458497862071319553492690026454781959729233166061301150433799607773487494937480888308980833685441341672063368083280763277589354856339251191672554730920072530950535365784732642249448877102702443216145075823917128162219192015540504825639399920048465286353475170121801323475924359470727925501696377665368140981615614033960333433368262617248843575943767134419337935901107630104263113676024100389509133772911392610431637082216181506790669834964064266724770742539836304660519175435063469449606640184022232925044705907185207240343346257154923726033204835043585225549866532911392667934234136436403745463886771715849066487473053834902381210474254383392590584435882593443197688400247021016805264289413987770027681282915346481989606957482058928044989121868270770564100800426375246104158007834925457535796828460474178764936901903576100878978027785847039698111745156884806481705324901375704071001479484024299730865961830314345836701757052620857511111539750592318615762579165007051566525967879345095517114642577228091821615837271149028025243396668837412371767465278877523635049505946787659567571986770519081841370910846560410333563689149547250767145200918646900272795563655165145401322232367467285396387985020008244446664363752712186181873656113375738777307583391132484067669100920242564767645273060456015498412799207798807598732530675276161965038959041095806631732584455620016568811826741330928657876080656454640566700267856086684048718136120528411195784861223564001372037935087332778476748232820175447410887850487104903959662420476492822955715305262428847935325584221650191421678246151293231035568642295846613262950446886098091254062426265512401987703781711894104365078659328384313733760194631566875245379141521141907885895522602370440856852303165572511990222656714467165310819606184577558608957396466561242011764154589121480192451179889874405873550897814244542093327300743643642285609991182013568047892234405452150396564138875580779153965432508735960635193353375538247883979136137155118507795738599186590805404808652394961386651267553224117552160956029162542090064204693416716337912714440792794871992087582622824545695185822711480912096266512224490211511911942248591465059935985549349231531239514326528869586091178497417329684907442334533105972743829026580028062440903787394424316425028900834331714694135729712378715771803372774613379474772971517224685745376681285599004924702749738657237812004603293058700701390118921568987948638939694209468456838087371306189482925516301650450085812796403984183592648547646529427860604777645462272788059047613739059172135802513683673470062983250615623496227254468602770291595946371508855143137691146227000184059830825690876744446152316859417681183982180656385569582245947185078743002753109837004591202470340056482140208737837524052604219028153201290863754570194562427293622781591815799557376906233486949128138276752738318612978549263834300885582177164078172903653727806933441815179233641430444452529778909667795744712503760444236121874986538888039321598169512556768679421824070487920986205910007484471906413316845691818915035697382716693483293926460843857143062669652842184400884432254517282350733337000429200580545791500879261071227663946736119250931363863169003924382429112167314915397120774052925414693389069436630156005353647175242952451678383372503350660271451728114931184170041629110620333438490404223310199483678205618547756492381072286248291015149162064145137547159151531221249108895460053217059555220486436765170920118378291846355863530460854454052533914604526490512835194900264984160975279440722545066304445815773585947154708536107805797606351214906770915720087823026881757997629981996520326086021746296145911463727394913017677418481517193644500724105474486172014296819325360170383519733154737087822045847575658746685812731532512425857985245557581010828431901765069952253001430361865644978566549105154601713746378241397639087511288078730204231128683668956753406778827941115998173562105781208707613436835835261720602368412493702069823452982854286301416064361525337997784105358516679501424037571899462743097767812950378374450711943886652118137504667944034981991809866581139797666562640862689080223617924323490555034559180473032501524867990385053552886820552649779878382965160404949447496311088192684075549388242607675926082858000926035806111631036971907403046246985765836086459761588304821808324115332023931461088891396875333486516673132955416332535210917734680568410026392068379574570462831993916032434407761475700868131876428013041173517897436124321746129964009135710345598269724388580503554112006587686721806131536789714610252477425914566481887238291718329032283170305862381629621078552566065231075999694765529952581322703927506876907783237174656698570096531456246949802609830514537073514917432787656947401874920148965081622354524899911821095849274634337768733008283979953703896655594696512408742212915284042593958863050411345380985022080233928732471021053880541539267133059218322337360634002506368712693454569340182771390773554074698492023152666467172452397018172231152808399562883024352666383849159175345835229363062884310250629203091018192557049053922137080659439738969789317640283538604417163522270597653980770634150508135285842400784874583841687270536739193873320374272070887981739637616076884849015124703407070014779358068148593403638305177758636539473324939318241243734860091880504468384257721943792701405506241207287265462430688832351632667373180707411230552153319628483440262079993757818945307720451254735768286039084354286217428026802098624694208992964696490701462600458127844270497202660958464742332263911204692952888554149809079419811803216184624531497922506067256621321294218785016963429736352111210545903956172585342528137774239592517526430645160449386508268410626208061083684443451515471884367718768004129366587690730001115970626196161002681780438480049531028070365439864387176247618651672603951385081385412898015412928113485185782928850875949527205999233071188800671860977675997948129627600144201906838662585664108486966537885333743647396246907044352242725582873541103886297489372847133435124432229108142801997431647864984101029421960739094271760512638575509328265659544338722955223455060309795168471746269169150143769174107300083477463689424757798272748794776128755040393657805101549003118675848237925013124344454160626706183977099783821922078156997684792511004932437666677006957615303629986162415740583421262888084187552846346285175241229390664860698774666245428609901515034625302930200606520811549857425067070047921395187032802899022947656242963989023993968424838059993433444689328556979232334690140199111096109496745052917366005778292948019957886481837197538433484676030830054383888718580346560038279925656526138902482920567597291528555672038054546641670844239987699488988732394024355812869833388098346313138139734611323863067587295881506660485786601006602428196562677640286142662048508561407775845732034741393499825625816211534358547009919559064434816081144540764645514750209234480560783368115849622629046974350421448610398187045688321017801519432162106239826775611566505913410760728079006310943035104204513835262397099669484682172992416292128830742889878735561932880154359457767742165739538601486010327396036815745691037373297202425511250804014737992607696458673303930786695046195044930392413602042737478275889655112057503397729633920054102536111860790537420892957706698902301348876425674717578062696058827500464009865245448148024188252295122651150759582131173105597814830729519851481197965472856333083988366937789048152681465669589576283630608701529235409843136849186110741776545864997650913903074134030482525898809993447191558613654097209469203747017805375374131520449576470551655801262533306314479319722591558970865462108632273140986609731887723439432151766545141778030564383719455526496546156971813933807602464033511361182860027551834641868550784860041138906785134142585535556762637744597634719389808299434257581950042306690896746627284859081007399828094753780378534690474927495172646602008553266407428828176985913389995821758287743869444759862501765426553285194845710731285140903087293553435226682583802837342104018085327717860711126188870145383628284761108256966029762333691435977091681702591422775899809151219774740870402969946649779064044055403934199708160091324846268329343923555396370451484062024188599474740159170725573148907875944640866117650676466662718618606016927510153370439046624053950994503439444943131007682104467217593594749969625968017283525449568287805381851451225563540063402584008089978362397328066273062947752095175391705805262659363236114145707889894294718615189494762121511680144559717220504499285030787190261689866617440883473208830756924311570535151815844487719950839178969091454768109325711538472439951915927575436335676424437777162575199694169901783719599252453472158819963364018539884494605036452512150759229471831459671198270718827200385963839554780039087680239308584671951768753683142606442055051364178620509141409641891196569272926988039099817974153575619110536980482928269465600770775062358908830384608242361067735728246937014111344005612923039392423907419199109799373887030750996230858692803915540754311014907855027438465911164386741065643995748103039268841660694435223801625708032108108732662183259582041878676218853798936889982726852284946117666038921828541256614595399034718463113173376338585562288865579758145192056189138825700531771379728252456842447086462604059789647710467091484678998901376868469543321092642387580348906420477656623957433418011147468583368492196399774957410464983069763282354781870624873392034211283700104787250446152611173929478425791566633266014519793682930726259529077866992001325015985556366029619384835927416722341415926741929129329831817932332954483799037009139854627952825321452759284819272901263507708839477046871727866574137449963167542390082639030999704247996531036107522862299113646370832170486226426297204424240941520730676836093002406630936944066613341048277061842099039012005118042641302475083100098741127962974429107364760272153600844404665925185170366839923003286392216285710446461415380234208504396104646793060630220233635630913823960278470050471926423240254658472053696628865119216944651774004226153442951894275417359518496027867936985759382625056684381640982072584143247242415401251966808612829473783502260631015192425758488404947092645168211179559975335874693631603013029609925780023692344356226535339150553744594229303450760714324617259635467547300712718076455907594239890592910437984306454933428736492637567725811563781262873411385587575885581140921285957223705479040283785799440805021257608791168660898206443883623052489686915142809688519275411230745599331830426247319797182053601594859656340726431496355267859004283988564242512648363391048505056252767948544846864369582685962930574436725809690788369956617825793597943757874285143535019177658585438260874834827927007623116244924020298501528568891795515999852695193887744240093441462447417143702521670391220914429455226104995410792686584838909498118415115182656812166724867260948548196338295221420691860987524268003842567307377508847262312013564261197951318510554662605565189188147049053604579604760332488706875563117322742463647848377969869143352401145004839935735657408178097425615924478708288422953564494843585252945885886422379228785573244683120751899580850155181241161318512889111040134049340965051758527447527133069011577090263601531692475627836281464834377147305073153186476834738151600425581560401419719290697322406341775715169457356099416414711115938238642218980905439283726519930281814792924267007775670343684905437771985163117187051543807927502927287292734804438376097391269026050728433817259469060589218226762882302604368072053507041930410176284394666751223087267675105310848216571423722125273569638807632897779885630141129894611239171220560728188817358632109413796029512008066299000355450707149740881699752395949560241767506422179468416916122197616680075814033993900373769871093856381558328689641970833743436787971847115865026138365701069246791000958113051118305074676517957591202362218262488374046274549147544214498112185769031505911103199038082940501092200231130302442920615235549546810147490682704238949900110615065201179339575943542291579846891345981384021036670309613696054137174800519612895445279051744558953214251125494365639623316585452080845736979744937830932987067366907798015099300249579008455823589496454094696798041971559314911912013946919781093710897853025835825357288106238698024770629973357800945707359521882288509746981338339096546859163136249649709743395203575219623972180132705557272533362902258554172638052098773103264026470692743885650907336856233763634703323615827810973739327997913437267587933962346207659253894742109027010199691380949110623743744919778924751647158616779381260012528679283231459034340985283373407053353620684132467703206365916198540324666216474063766391507028076638508292436627513636483638981056755670456161692185808803604337915489301501647752302520091581159611688999132141871727012860813296887617045124879822601172171097527793609514684187839899225293621341903446472324657454855907764267532166183643238861223963148935437743709704350035094771696884191055359725200004420462235689215900523532044550260842773201253906803881823970290312587766850584324998548277668560748229389615217678573237501949777054366561294181479061619883156918845835018296614210095740053819754948477222736680974376636938052667139376712449699437124839824203202287074275711133516198412159929567456699416201367663684649149524880283704021992868729974037012985160962426270274884964109181478823794679295033169670484569257679302436285346905273581769665842154572043097149462402888588494168108460186201555946845160811347262647610755384403370128926760457733804446582682050697676948655500124766392445098413435042712722505653524112720432896935850986184962579495695579726774664883885824166435357672555368724343891689749073644496286565357145111806489292314866514116257399656017855057629311645972247915997612874016523136587663113191836163213957817411336591442297659499606031252380691695456525617430837557169432940666317292737392428430575763735460138646651692666901472237232213921134927366902301367293276778217982849953872002833938419016929217799644171739227268036487610138277215281996270378894136342945329324934453934107380629034164158648470032226849863587724508848142942231599779503669280547575794641992412074326157549420037397636318754810079494328343161240415732189860061859141740416997708130716154958037086057015787535920483720411327412653026218068917297093637033774872838592006520769521454095534615749331158518388386289960879197972025187589265726207040192946669791009389517991926791431908262227765294549186565985197003665909777894391342286853659165584343819223801208357875398525452414861513629733032774586815152465353305456754503569243652398282127121978166780120460451582258603483478603058440388037554481359529750295851894417413257127137190666895213065484680460144117040297086610748918115926163992085097764723764713238704483188709273425333336143212819920904612266758612318217859525008956068749046226569588422228009542457169585580090361629543745702809046622241189012092613059543115370694174120595611500443327901373108881560856824713416756736710624992348191847350030911670231541703546826757213958963614865735636580292224105555764841297458167611706612567353699977309210303576634414465579431715897850819858102592741569475164036030586266896872054454427329253286933679686180466092527352210168414430700696969175517985971148338939929381189732031353213091724334034392044772243055659309219475680036129035953941360462482858457240303141406018987881650459819836767498017231844527565720151560050211012553873691154415382586656250119095004271645202542226338112678956509390594420953999067134790651291246483988227085499180821955389968209531113557504583270472765987778255340893546044945116914808311900038296444587253401406903434110481755890420400782716714120440147034134038272477257207017467831321686864121477538263802657119620460018308188716959775453544003555931466460018972858849760122342041479124276343524905084930708226836901991392849203628498898657759595775794220425791511691144301521663941934865479595284733379727888004894016348268281968861487169695314434488203687201540730014334870768888577277160320063168932344122147291659356691611541860760728986796696335319415840852134854669043043391341646236537774432369237653081069906315948666465617503801336656512849524565077417211399581914186927235182212076850872442068329325842914338817582908271521758003588579751636108562067206723828134902710598104953033282422350450110797792373101306454558485268701139355994806146916523390555415429863891910712517163513727245688756064061980281131046632559251564193850756459687231284097287479729980835945105242393342953971145077407249987973282185819404235809063963934866799412192093119952149952928913973059681782077348079638278372289045216142139295147180672638532078787495175255541096453286776471295148249096371400103721477838726442083313202332771604689369086200743749430626562650792542446855552744447786614376263666499803128477294037322159272628536071673171815849360328162102919617973082102402364439881717616377546185713804675994651380252244094040286417453343662149747487437218147118866718179179761714089847119818871224476024975050219385972178534851136838507537945602051078936084103646050135951395167381500025116171528879553481875443912732781691081925063654677974985721972427443836318540319906693354410436043313535843505232936156988321947311569130052419148093367231609235727631389130973147869731107392334158087145196541392372672727918701503905254029921174783283319503213616210493554688524212974303894962732848976894710553929442214419923952552641317534489035516416477281601622083915867871458769384636258986589674887574440083482658108435581926654137988837987632517111902669867822654460617021971109322792378101483642793130741493840612225458089028788427949507273085600433774480321864512809264146984872449831589781377307124637345227461352460734020204070831292887776169211981423833523188453022538878924093176166447332673641362466011299054555210227600504596032248183620471096846159249877528735514576832664822861331691557337242137829646403193843549310248872100264776264616723458354070206028890716828068290886989373553388109509153986045225895677802705052775975144596529230702936248687860627113764015271162576302649917247348145243363765792564017423300796272184438994611737419518418789794642216552362033338582776572068813169390411068280842210280584563842655845135808713540848760432350404533122499458214904804198937850482286959161030887249157348147622920603433487700098767646556246961333444456853257876016573974267573549476880488794403724532077487982753238551454649387246126836242995404949148725872217519331055827874906077021390140790491536924227638164140953691127496318161986301943221285437576241765834312548608876124862152755715179654161051196991781005418245144187767961879729317188714708169907113305175140808916855687312267881696735489033916940514209934612880868907444398340536507454509771503539468704124992406689915562273404540363291663465348604988299720513775531580538201150733799213769868737010537128193755163975632862739738328681090485609646353411122960328783371633186222546435371725848050882500745049859851685201338466012002428267635695157325942124808379575408902212000241680904769448411211170288828677765815331321764349775107298950739719705854055097238974475961786270431835693390917257679984410124314119628511628006705402850049028039078517425621022167213589163763929013868725351408013490882698053515331947168303978529759245852064827359848907940583486114625620957495744090558163923790744191700649029099948165125943500635406982675235813009990239266973527059833989585014222040773280063037743976956871326143863117954398623253393545175884992177330300823374024666213618236749738617830493978065063758776980185806417119206699734414856466009229586475946378840345308482882085108708453494229596944437126906279903722154936428531734372333502674215419249329340824405186489350921029123320289757220711819836161665158750056060714839041963391037079138239052960175454267307396482509704841867590171876843130874991582436255568464727704126258817788740522368131312922935418060405097503461818942253006000353334498970880405976460812875860175802547378561821156685399776999802197126066557254588376927249252674172171948084748915686813873089037546019474094672809030602505498499573711601861014152427876017541621402317381670754690973581609110359629397136521979958029809997604140177423550180005395777939441784958219661996178354409901049005035714690205441905349012350839327455007959945643805887832973632807345876466554758578054633626940348861012606014911467212353111522890255334983981537580378252041884573597286670186415563853316410495139449842024875578506552285392167252382274391175689542383582758885118389134553118058229669072949470620470894049682869882783015741616075490465403749198953572750827951208722568192019286336479477739932034038341915064559169506605541010297769035671449343857786884118235955078020054522586105858799307121417329239583861900410790526282568698745320878325097086741649838834190522830210184354325848527408374176004322118715288718406770438796567791107821604965172361746688963927337806735667699013419960301571788516918150892426427660778655519241760407916029581103860269999568402826263656685396894746693050944912043514850112623604045997125220911450191959541640239165183927673886272488328487870104038324282865755873765470416074496670716979057609658963105378459382368126634182787695702355033201219415357892039929996288344026104671756224661192434715778148570267846432785393808276031376907622688998926709295315594360378434996185720069705106264986748627388562614336626891254981272260367265314442386008515719020952536801570649662780320013632731105066738390038688371631889408690105513110055523315145190107327894935719918572927915788220700728300134069918510704624687495827792975888892237184386304812029786434818407745957697026459097704399329251825901245802683838240365180495558799136733071983889590506383321294027433577939844454857397605940099694442997239191124600733619787260681470344402057767966768889736553476889847669735415031774869051404272727605493432999403437801900893107604505784256781311925047964059947019335234137326225388745373004648033143807829112973224268298695202719159427816438482943570123441143255151552434608739974773010159271404865707795936690057184100070351603442055702262321106584781546605197388355952252238787877108300162317123315206039708281016067106425179731895676915893298049922011179154322149747512659738525201088697071623215640298337303796052696394403257956579128306121712491176327022604320068159384827434747834741798548313312588740791506532238016001986001104270178146422909143631686812368750773969419354294453680833072695109421545992862996905937098214382192352283435478221993577298733215031135759231526360341139066574275625157037382148331826757358911662379396891211071366769830206454023118107270558091451701694084682575010568284903732294777530486248861484258827205427197395654159399299952947888323466461512542421895311221417505568435043169400417622238493150171103048650172636360477454303492474891950873273789192202484395395948935634259572019503061339560518678997304214637399716361924517177659282485081396378409835665992054321198849271741276893883343586848292416873872579952113920427812618098298142897545906793884083700121923952050469549099084157036184939589143618123701428692122948113691218198297332672387061691908638314663865924789580951485055278212510804663115769199193451374399288538508493270437004713697702830173586418630862084330172722745422451488264821328013013362089230319628699729812030673690702119488779834054097633865273582376202424451760463401943530838158307436987084513639308077449287070224615372583925212326993568636360306893664890981169618741421227912655629986397018755220274229268098971972318723187352965562433914436934155116565348495464321152322826360283668015246362557390584786088183168732968781095736609597205804213771888113653859127987475706549625480205158624311942299367143649408189913842168294212029242478172206383559587356166257000416102924539271245838668584016050609787511015811704797537397739983429323493871467059076070994411204528658063585693122288481584798114061104889444947057451234041478886667972518799020424314233358300897774978402476232709959644752066230844526092964386275693858256688947185756224457112737150549405020187562491257637787889561250694116776171148858559213735136304241340016117466605163386864798493440646610036611675548731050352865967517697716968929786973765809241484821019287364633243823393942121360875598185612151717720471767684239189264311989361026504598258356046377300742241021450375830102026261940762929199396389962990512417604627047854104380596351517807496833121874424680158861075436912544160069171591239874029129802257765796241412410166113626834677778681064909646811172525435690132352230203497757998006464699924391647221946850405186336845521065672245953748996996288590509856046029550356508414845570606680610290313827715811223542949026721724351410811278174536289453661637495080562173072757283397955374495535548728995939481622217346584572648433117334292316969484577772425258206397915499315534900804443706391210646114100527733141119247696850997936918663865028601232365206517929719048439690584973638073444551768880302195966633004611758205130841985155227138772759410059347494142718566308958950021958861688892829162749938208978318884379061264398115946458851438841989408951741825262213458521710813538728484965771205749038348778419570876750739886164979830906795842931865188166061788821409451920365056259307131410248099385865180022976235650443029701063863972511727659573792539705372490415646659464242776489260154242445460570235228888779596105918762737236716114544882703294497257410614181428997787075495582174802756695053393437263584863629448206961747288056650656261101404171165687411662646364356279325610721144055315848745958240306117463008418935331614913415648218145254787998806557686249836676235699242555424044548320032988502709402467222644414284301427113810641588677958347129369028821095869784891740088451665614776296650626586690825484961060280544680156519959941449054864919663968998453406426579766386622472208185229857547939994016126255142387804708611850695163414624414262103956617078786459791339961592955615303038265604725025211690190624048803026781705924573293535439961039879521814470846563525260491507154332780989669403540633057667960156028316145733455162447955220645435341106509436431145413792836060719977803214161604513829176785239091826178422708125281688717368181256924868775095299585131909511967175947524588042650510831170174412853046936931730641181602415075760520601961608688044233873428234057316353965109382998056773182687686245602964491490140429475109223706339877815621236376414599398953859630850628675946165092771627890540484645115406293121419603662552770307781716687933082964216335828782205854402075162715265725458734862462155318073672166348221844639486677094881358284539304450910757895822515896172690072218316400820932429128672460407562481380968058986440986692042478502967388589715015819881320112255575950452199954640276406436229461050272736379380377227056596346841111036580405787436532913459183656042326504833365889013892661192781041277838268346469634330990096120031528323542332581966802559141567958850687426713465278762516741392749894697416736210211053117738255488157114041682670090721172149792660670836262083764651972925466185445034508379928570495569768302994322660426015661670748888939408990559421326527050795686100738654247692413644611458693977803941145049473274825142763560003344928531634303380627013637805636318957187343008786265839733073400982963740132467793317766989797506281277480627709033518652039665877456994434010457863519461466064433201319720471820220298135071090613161693896544216101770374663126242791654258212589846287186429425731808319406048518838081073957147227526050486593072120674833264630350057221842729560375774084300089166922405074445464626156261094473817212914397593726195058716640332608306024644531771645894317179352287046745870117854006551634080786032741503670327892741648980914464509839775310563427420180862300961414328161096665685040918802590338714596896901626932582408949124257431057915457707382695952630814343804687104062325336759357815599370182397868996142933632065344761711896273360704920848803729493863843745739160809841172665633348023933713620922051884097555844264009045787912395357055416997496438817687346433252057118345029259489110371813077238219006188243289136025783214328882361644589645587103762978260739795649585184122010915083995163605041116249531484272725326583148851299131215767290249576028129223888052202483700403517112137594495546674427471280491778962815857329084538171220958030571136876712910167552483374417640921680386463806467590371969148623447076979378255183375760273882969073077495924238108830758987053070381951175170400635944729648406849293967266736039697439134544639169757709800564718664506800577149587758021748566689963687569987706677919837358730076027933210113593963157377200169061481965122004732508422484615828237138402160652860719916042616261420978242727308247410527629977894169472501961355498670183400894784829126840881870887215618193181355276382701718748506059409081013247770016976373726220270946553436507180441551046586067832407979172607808509037167694236748688162914399542730042777669565275460223471718288978506269187194892052498819281068116587995319324903893857969556057650249397944005875291066571618081461170472030961732897683979765821021395723790334939857840125425594670900473668461089960377696192424443442031478194875624053951705341656235664366876069255038583573133578128439301085131717275071116694202134939866654281383567491963998882741133952776079757052584627340119716533956509582874674720864548656199747929033681597833607540223193681516869731559006832732771675449247178627095259012589455917964513600795470738341575264334710928603270906301564231020117939285683893467130017516032643463831350460755332912344586765934148186559341415529720918642825753886435192868539211465378639162268295233764900309181058113282990938790544075314559543412841928796485978838390499655459626241218324516248061441024646996576190076332427539040370396584511264681102332337655478503228648704041314192424859294884319760312785630303603057357796592232624345059999703276082293263927662039035380557864242233831071801239440438709170004124300387385131804940642584891811309591326059914554245680037516285971738060180961130283387204915232086799555348360433761089735398081583079997502137237332597338000502662728033371160167916175736993513635915685533656281034148572526258643499114342730963699587196238610070965063296404616071683900462611657187587799031108720313739719772270688406411237368893793373363972589844116430706685512855144554663953280084292096123856608740646641499704601729206699464558013981151490303145240318802543398462620720604282545659993525224640294251837701778822059980075131961004555136447728429658093630522181289777555471759995494499166856481420873470434353353442494364990012151867200984822606930337230092869263145070566486672261083019753434631168237885940684244672903080799373345769878482039644064997669320353048139667381376946923327942287787700759363134632618718122348695429618297733702423837602660070176493857017335142871241856630166014336178225335009935767993421477629284088879499343765615137406553875604424912130385255663515230655641221432113060199360349391766709831561635972547495306237988397488850432868657052135968098934914646751000415668072565294548897542559642077516148084735482533494769196198828591941147572779146711484172745053904390693568714448772654522059572081960474508272317753070025165096983448988187425751016694656380359910188675306262628764928142963926120669735880592042931579027147342722659966374629753699482552853988963272571860848352151544859490746932578202059384586622108621724741143268939749771898856039178410666082697448759694897716754630776650173109412135632846531936306705227408165026573838813656800890393926632561885861781993694776030317200459104128987558249724308336844062412777416283230464837120842489680914339825353536316305575086166837613587753200521815806358004868743969549168371064701460165928882236892363926543188183968451463632790156730450763177776034843108953635626198960086684316814957815327651405832118007464540808117794425681746769187197437312599069887476377657353516810275190504560681768209747199048219097550909894230038743874454498990500187677303945551964858369521999816105028060404893978698734212704141037726886902383687254336274455827650275721944272821522126078184602626023884769873727885050883581555209750210836573126087433519478908632860973472227817614690201188129962839232325763384452328203481453497452168927477148816109064519907239657215752414955955670168763156535528793640734921948976553300595726628572892702733932177038208008364207482790253140918713738216627982267771284452058067779249451907011496959951342541440571378706733811292263719019230096198686025411744160638503041625326291810530590497938850326169364743064556339995829696965210581828430454361705356971305210489870794431179141274263616232628265783514808625054834791897497787471249573371701467008641520198111250528494509418616750355090038441818336216662151138189233631561645632074270912610776385185440167875261008347948168850305191059031170048979822613459609991815756636153726158540588218465539784656625554266360096399128576561806955723495190592293045814409244427876434177739826075015252767479971129769359081037732818061289929604011014248843478848715598285669387178331490428472185931412436906495583709881671935630202287367851641621233173772683890003733456410379464136871277239695413142764008972874453618765476564660672798412995700838656272077042271516105384757531329860656914180719606281668489049513872272824407401083804306796276224280723415557955194710331311178936869358328645309418876397372195652833164943606539653577686944990403994179974615176479213066787201055471383916954993260653548876487371535093464094099212788570760656502298274399886223906861094183115908016427742600890694683831339925066202486048742939781268704364571430654855080563183584734249518817824882446292069579719762885741529602133667029071616856021724334996434912299451838490763121790433502524531140779267830566274619450291619959067548917873908790461356536257524869969430130607868545411613202166013653091558170259386611971327631324563166468207179857510561142714254611845426880554602085940014746048641591936613219365991306409191808223920664099589247810043957501541973376532672891606112348756364956829358335727475967206504638635465634805967673217078902176377573674874400145408664794398944187904303711171353574900814245078244756764903687517462546144286002923601554951037725338792041793142873692249701530611729384154087033432395558925808973058143769844036556034118819154164159901701887617172893916099377334554085003494644449678462208775988119166420283847149773311233664638075186503450046505154898034501310588853735943449487472085896313243946494723301339715858395521553683762600722005545077042818768793786265706839435543158865040200137379984042579767952181256302588759529431589846376086845596407538356480300828672398456485028824814696360614696110805611818079823389847573465399896935583926695096972665465544544035710467308151955049754889660009756036405462133421336044068965663675872331821681615100204726147700329187397196973836428947308009410008034896867136008570294725552661018160212217396885612390617885352338317979354083801995818882142935115618889416601358954095077960453849946615191252369833011410646593542541786700084448890709865966769628029249789929337658238579543970581778468822807264139686919055895104569422689131093969787273980671475683427534414144993201375562399171325344088993558596759045565020168244412069952617823393994281076518714492970786707100250173299279288118621387443971779078503855602781374546577695459679110955266700198333500642924817438584146081664542433875316678957218537927014415127275017350423257138812144020572506305789179373777776038558155801034997400013533600552701120107990554570302086945051759365349644682381968211414549210009098694975812755854062848730966875766347058318759122121903643724847079633584637235837538546574201572610362857916986843858267656199081781408584548986680202501626580382054156609170517989507650499490119492770771520316341601383446234137368471052159708089401963717730596095070687424267025243007986286401501613521985773859162138642375276447690788146453864620059943360009857902926528392848048584753791158824549760366943215597785605461279438486151096255709032208572752312531903333613078517239671171375259954952040448109209769129212424607330548496311762604474341626801459975209259842494683329937894518636536487659295923973680759710395312555226543905054212362988336076232702571889806149206003920559049151274119295919508909948479556271345042484064568269004573632426465548377701919625059329705162513935513694339558117175504579559312941584608957814058657054647952080246325689704059967345554613545955835597960699342170290363387242019291265752348806498696208186088195158544971902804572274107860383980436188375901536981930828816957901540624036240173745776751836122041709631073229908905825981316942313579840578385070506771916655030792880551196227484810223204693224316169545572994887876896056652080803581311015664872332096773584096573874056731735244324247239514299593613011334072152868709919564489114942810159533593401527211831400704925573647393625817105723336331515534717593923125025814732247221963146861275779959454172998735378330623243939544080099791233960977885683004998170327084925982576620702320270668324382141839879861790907197949898659832527467101688889849613248257526343588418743941162633560918589422628608548634381945270088244114485149289299357690340612674422659996244677502779990564902672086813778617201816257110750039934655894551878514506112504161573855505927470813205810167694556321930223406314685187694687947001132318251112062231469739899132684739658875188670644631880514840966755718558146269051913345277567178562840493850953305606129709239572694003030600258844041783289587147034988096995300900631098431109605504433525491320676756805387717246349332590495482054631058631741066192450360880788964241376388287927898495231615035655156875499866218690708306675683384864179065765054935349930163084350412838284160205864945074657269719472913606432781581879266622377412134804037670016663347039267215499256455627731547063992608861674401592031945587720618435074037834069280552484399584619814557724282537754014850760176115946777029681792270322344998156852819061725956269874693328146764840034544880658419968014045171805158319141505924779651614149064655927208337285686495447130532046554907845044452526597093566232767793457820840819031622243628842911420698706208855662798930363517683164094619770267459161338029738914163644304551104338794733210424294778477066461797908292572898060751195499011247673452453149368727853428017984699785115804757103204174507477052975724634020141019401342243685549995599452379862087240083604062801564096262416830735303766379175620577089892716302851099128402921275857034073611264869485751803982416999667469803665976746267660244373498439446895274777967232174792357468567705120300503362630118602919188705273419729220940249225601431616822149026083877859425180239941762008139434225645119827731885090738149101444260840962951380393571197858710015320850263724777107382163826015506922369821557781497354438881081499046947459748369319055333864169070287833991063104444471657877827057619089882165651561741591477626018379179950713164201905079857300941828823211863594590952333534275540677956854411369896238662050439751747790763698749847441417145706607790616458560647349675417801628135412788394997126055601822918361491332642179304883557759555989995179952262528844232705245807168722523185411843379146686696345327216678237266198025042278541175413201575257903238529072016272759444173657077835385037385342994909625762240017533162326311437288714042542769193606326104139534027359592541260576582581601972356598592497862700371601316250817345749436588602234661451557411477878773197356953749917802974757241150023498022032555449708830376642104624606518563894694074025429183204234901043417303604279640501562352129132827227322244468597424250310593369436009293666653524023224827715884502574563824175364366627970602426919557558221367633220804978175260525222396904399260793523581347378081067801600699694683802363042197021944302451141698178214155673739501514036043815732812698260728036052212949491728226663785273314293671633634661724174782157107705095376788719972116868205935128910276079905996013860092624799703024348642185244625696409133332515336093155624665201788465280256139806639924212219399993439368343183171385559678126496863090349726745384207159146564470896602041712704847257921126700843331582145838463696156731832834872581724792571817662887932571687380187649293120991424158324688732215861334805471877126985252039143059014076942947038458304784603158229276990029516110109571521406336922723281995590736221808513731325157833852930853536705050172376064964048614084295566895379182557848754034463523577975880473396357485116033392966939530498541957584757712693521842940249716464640727269383863247352454332507752743340983723287387243385839869227426185950827904507522174864788214674314859070345284564965570872830943120697419052634454407468664150091933205302483742849174403467085605447108582993346896740738232558506891016533389272632566425874197661796179130199075841202441825909861449590319776015159066266771096622694735586879633202634019394414009288505562474901931825340092439565652574943948456606172724265379417095609792876529969751716674302552570163460533391587617773825057826776282213103805708650377251917084569973530092913944854569571320008489416020243030176807288709501970740709072184371619449416134237271772383886315474084053565857909702494344414384514938902488021590185614859531330308910756848631152523270612684060123668796120917302034770359794472421141227917499876130603403553079252240320459922804654160436345561034258649056822261653835323966409543738134391763216788479437252621258713150554890070802553589803640311402344592863053452078175266256413775179586185791906927297516887092963916073411248420327263077156213819681681983395380562789455294085608116839661549679010471125211150027518173370217083357607603178186671927344873404623808300285582652614959579679258095880037389838370042433779352454109580664161007961432024146618469415114665194521834261229452759662564221639705012791054320949130994834731229874716426288797341703845734025695316970071269645286586924979258804765501302689899540070357437402069889817530873003807487108809571355111357866142563422259716678250743550948323207894817907328960498805306832941330509997343083857068969534348383924720619691367160060747168107472781891037896807461175506740819719475233700040795282983322411478443058279479522876234809165088595575686196002099982741793829999799548771493091978363825747469637856918581323316917409407837469226313819334618633309329082823791433898774707963790346089899892358805894113335315298761155830490136948355328127465816282331743966521436078651354770779713359793706263031052139922454981554296008879641205808398848142570796604876744628452037677726793141479001410484088116825291825397749713513882470317426751931984078542277769458671116114284680926923222166945027325463124015036487872988613522926182652316152062213622045630292765383575136006169277837286205676150285021074133639387576985994697579685404700166051733532521722351259073044079642591788772094826561034477402081869488637967093082637728486438246554761665140251744411389350335748342862387855067883802648604169601793498663445892177423445434849062104143901791907843575864547085288185984390273709187082455250327831590181705718064260823941558457780260437005717717736844051152695154809997384697341881249966661129091347867905988761051973617870964459406507308356666295908256052502113228947130112397809797533236637936421007420655483878635022524747864210250687993118751670651956256789190842239969976208769651471444740346597220834808769327416423070984277242242092051148218502858046933561440393556531217821371172964713597240645660853084494640403775975041448770763369815648762093749746668404508149105075978979560444961263096509639863817879674868837416507560530888792432017500559868314123124103714962504964481159633816336494033546100059656572155544795202800223929602711420250398226619025836348516751662010210263173062337587798502183660445920618157801187250180739586803626320029573826220650374432312571804036584889027579918513171541096765740179348851590597172415179572544900987342967673020271580330562243008922473317751922649705629420428579889862535509098471924666947449394427495321293710433489746090541254155974485177279620930323545641598528701265530832632987101839818928359990932199771276664235731951127520506751277293262259896458569736305445664470956741505482255213098471109629224141071709372516387944121501301078608807570927348473005119124287641193860903381453074713832268581381812568486454678822897519384208286220127302761296873701249691202730639549140642387061543002273415529720339818478726510159775542235848826398379075805723691269286370328053124992479990762260963684488949882610819609563491666771681997626810006450455036854161824308315744540253912975146061487962396550878040208062719127220575129719328319093939641695571997514766093406797903594649192785885051852963669149482932858455954102650302390868773831998897163303095811299018481585477981346379190689891121525173993879308418299972204618080462264934512161731629807539402131378542037050521597259203422430004795546230164887707649776052034106476314107039399570702373948545555789722872414419568724777112634687840757839892900078099578190964727129588555994645922182186217616288441832788771365904784787770813686832351965139518408791638968714255760386232674164332332739365026656586365294023172510175143602738646526759052213576371720227892972460573124229555045330871666521448461945397211883199891264222278998550805197950560950280587470912555298837744148380864728512709542286773518238063347999935427275997199198612520405334245907148554260017628284511727764983836781485780140779092583671430067680341800563468362857549290686638470775163961309725788190345560684629947340436911926311482777305739245260533228753798487709691081081698037182068483538259266640130790207792510856410868017898075649680562151124671458558035452273834929761931193111475367121615848260349764313080322414064598769706308140489614450130346283341980089550256831360977104176793426289498135150981879722070523622185133728378868965455643022040108377982648531595324354198229038049683508495206018989995366886717678088739239906978268757154994586582227188854543739748621535033693887396101974754135380908441100890354232820555497417448001335178026365514527901371308104941241259645708410330884946653326388891935528950796221699728321900447749889446430543199895780052490926651536860185490826673324608519560093663670186246570732996780062281832120790853593154342919368170123132882356350257104529874111523543971761202105891697663101850545893379368810652015781781240688229220251711344271874914968682421038688671858874817166129314983398673473049699626066863692380290358369826211322467012331460958625835552698690881598921849097799943581787981657996587818872479327650349630868426054717920928943671346440116716690372185760259089624032005833787028607156396551093482162281717679391089727460895916011173413595916901266583383643032308326935731732474859923224380034148597318576456977262850479425668283205197689337334412593826287073230259750770027629054306722635292122734127811638754028986706161328196609972719243700931238314249873230764444783165843709226362800041634192050428432130550626942881003775484773115723204036416009846838768696919108870580570981976024444993851370747219747973136477459275126184120069547938706878232172161736278917251358765182742842589048252149453234918765606720405502387688768511865564810266568824843309730271286839358811278565013074585353506350507091894289404532989890550345750392914791733382430415425205778165151000683838460351028057456481781744460691199254328960749235065855365432002169009321506248113065278522879648243847308111983874645370698863641115498564341178415106395774279799370638320434450997668277453510334563936478509941031176990922442067783051883352895973367133681239474236662084674752853528307747853487071204418376517060181541141435057591738054415849414892071070476395668033732381313552597303348102397232449751742247519250081333480983627417450284445917755098989920105683051154695126955861895312426179911567532417757122686198602926102332096679265139131186277804549800301011839634413372908504365098353291277372085240493337922535504837969219451249153356216873648068702098422591253417315471744919188595964830058567656926053722135329728923290561679508000153657565735922456968990378388483244503096376375108521119632874900379824726619631158911788950933932705855482379043350515266137010912068629419936648846124357451293603726421691422184560650198641181180225510145206528227418961562982187388184196984814758426394273270748804607058755530424658172985376295185913848597306171981489688873270440174547698140356685225841876286800927319193238519659064264338553573144427894227428254204827110773151305335938287563647657297745673115720342032126217644702757034458578591577589475950065945570975819807159932408491399236616533615989525922927536733848365997728336602527846219360394849269475575721669856074083231564529671219736572807839307137977371364795985976783197440826766712920468242296329746006204340261866364616400975031671602760318788534871533437738304907914761308277864151858071538038024570523578293181081849993206808294460601147771354137166527728702424135010840674019485914503657555110783190300243607485446552875861648498928916370630478197418597400535057897749731797452322156207832593761236244652202268658878989892789446295722499395027034700431632289645780526814664744641985292428916591803776393835531011499559809183909316311930757292476046872839252957704229236785536678684030139754218852514292535924678716483629858927003435220936454951137349213411336421260492951685747583624008628613118538938056005475290031859268716540748092398574209662151918700131511696126346508565801931622453558545748761274773001165073018362760605896885189458118150021744234979665366159798954077573854444392568732592523312626995443816408594966036964611880512348784259924838993705297275494878721756939834893668141360872029846270905917245833666619127845892515659067958998628745338011841147479714744399085605864287999995522557426025168263881608694612602495466158623861762518741564726296147438623503508729740674051294629120891033511599331542580048752090981056877743100095875910815062753732498448118193260441705248521397509145469036934430200985291003688651607822988117904621553319617309783237020450451992001682296475862033406653989246224933211356074078034903119993727194610237438329540049839337706560975626674226368085747313661300419648351836236145084902004820047068372085368750013226307762058948562170281008992934870008536144440253688052094653627322079748888340123137325019607264375437860205833470070660883168938478378663877596994721953805765049499114035220960347246552375781209485627228875877353461062807328340663533523255732554666619090392554237995977331638199297536006976633841380455973407826091054164424293142378397341118376757220695879137378866079329580250937698401621175010206479763410339471940894237482573136176066013107280901402727640206806388233755041180395767006682033037891419288305632391166259977847545110623845414897930888562092169271243963078121186401297721122880902606786843446341798301866231158457884876954458803501374168694507268331597441054192581280418696569846044524135483512427268078284208224394151663117284357220952518144094784326689000011229373627546544982391248560041642906295673129112723763241753395130631336479561759537162484145666999221476414311211150989323352866355306943098649465858320499639501324461925700285857392236700718731595303607823200594133121135601137969270547163401971882427920495536379266649703146233686049222821447923909481959293259471064232350183188089840143593902854824929553298744978174632991783266606155170509780488087026243004057328140919680446045235268686246839611226631475634189201086335985718870709264850912308692858009451994401222864959325311831378768835982280214641136480826712986720200582144757616210297555416189325085571587309167892576333815394970402627966275910806701709203902910044678403419689936302580054099637136005045012395523972739827240282885841101513403635899353447672415219684723433259834807320095450283750015053458303885539513535995925279463940241468802798986418067791466267261940232911496340520038673619504852968188341942712487027737596195787694645102494048225634920610772860756525296835183024104480932624214176338222545710216943367925667276521934542939582933057327653596695064277944443337675736902929213518052073068333260846346154919241490464701497355296601511183872817386469224445959552105477652538283289087233647306011373948117581692559867157963264206363728866358803205196239972515289730706544029794199438191121779424164605558330676632677694572226195656102830414842931949619885317896631325796254116881333356442289235369701653642326550530666887379864869618409045977605976858384462808002416995802286905104645796494740023288509187465895548758056719497577462519437858314956217364968038193374083711972905204518936346562958023490443629632611242326764089341867373202133080946376904366737918649557498947405200248834479295763624678665946524463484718939406247189617566464178435184302505400406777295265580186833069210222706905544303837097405738157748104084683758476708292573501885125007708172187814831577828393206746940424628297691637238386548672514663698447105418906887450683186254791079600394190145637373587059909875509983237686505198943383487678963802707400500044719302600349080568627661392326680461929882348750763992084934451035087528591621208683762421151342587480114551744142771939137239668617434204462048378430407258728584856709542361548689002549940380148927740001651346436486329911992194702198169292031899423593226879062663733216798644862760361551014871099917829671672666746406302341347297528909614194096497245685762542405177114786619200267516569916146454273257737877202190227620265272704897968072640176267222884325370930092087133029675646412214648946564521827824473116459212377564906164483721163586782387175951810524483148874513090159003209882805254029628337449096589786003902835854579888192996389368926007301991558240868920529578124680008977512512085738228310026032223385926507157689820076952545333488835027345599583989824862242620386447686582242365226193209947580368241965175066213251774563639430564718186885724247324098864415036247705981023209581340989416954348563113259701029309774354279378735499072648846290105244425893057261736932567469460337739123638923943324047961058639078356809972469779641281425593409926416792831447059829045749968421731903177124241694529020132404272818912428875106462422200512742510296381363675604363495527360489818939231426684355986150265920729436734880754326431962267062135524226120041475610384969852683753492932446905309712481191950575188108113090066188109713935124635350236372506483918128786738284281643544475451457189787044959673740241024209484822989599712985150420383421242289239964418613547828680747927261351847556880655956042222653993515481792080998537320270496888126807391388907164674172599709917172734708200828077029567122007304741715215085284926833246800682937190689872366873886389492318359302400808081666416644048673333631822766683220060196500529976801020219592962812601635331605072192790525349936532122506660609238163194753536499487693924861311200441533343664475516759877175295934419528721586854175060923740286156773270969539269028906802447156688896489475764630229075425602830672154870234658580558759232984612071036984719054801598729917730456623123584380097332409915030415103946586668934807206259208099203559715522927071609517188649250834238248184668366469036602502216219149364553212863069261590249144256428944150383846854865031134687036075427615369757938887426948894742620417625412357677282901353600672140673890280585760594129886588249222355503668856385777976469815795780002113545519226001823820234027920072629197451280647231182222702319751694183385378519841322946842962230875182364297025193712743532594560720963649340311178037009588913764579672082330866660657363672486352807370834261215178943190285579267580423460334463260122895454519294076112245687578408515224120786656169837169748092233785178428515217322097151564242544274669330689710259597938275833991060873046909340618596130861366921309213521743582039419698583559155132282676230367679997517669133333534889792531002239415148113165241989808082356852036031398863516509261664555393774379601762805160016587818670170064574368441953373629543337319200662150891515945120469198751288635178536100294019988983974574912495789447233729212732505212167211855605234999564023143622282563971596275283015850906894393263199913702291770056372157136094302699816324609212128380219200994098368800275177903906616111169058556821877573594305556754935854279427487941950024221928531896542979793748985239996270687365322166435624348117266461767457887044045635995702377137319450964463017768184962157766092138233641742394983310014344741491057657238686094061526685132637027233097264362065005581479444757582390547650948928053435390541106385957988171036321736316931654573147976915399290904458717824647919342695407450574091603930135248544163513852959117796373870043132498599416858833334282755786492120170066273062304072187346256574219785000798339144778077861444490919490764488744833167928030052679680564702755576453831890218391756445102938733196028638451400189922149251383055933880276016972486927966757805870187453866201904621899417767441881558061495385074927055691899596340762365045901752381238753826049118439686857806062104334348988230690711593421745009538536199074385298786361337155229251049317671983866586963167663259942328903535403422973195029065194142768043963918366254261962207165202091290402024731130122749821926191684797257521252092553396266957894451201171156391991870321637978274498574019864037128769873461019335213197927929867921022226811077388913625451851830578537121178714271505175201536563224483390190090964724206971302999363017203199851833291726120470370015435475943355464804686446522145931305276306533751989880855534245324270464883043392482313123200338835545259878900959617302383211556002615527699936300403402651476613646626756748888533143840999498993233060060749794887973114430910253470493217047754036713311341118582609907049581250399432837911999924791053837088221419702235080504917968807556914326854176933324154639399871694789840280677759034143872224403787147771964977905334853630206748997475252884990360397770089178375869314301867479699880724261619209199161086734893881812595173043911283411070505103258273964330613558872645021482871904732378001264199922150344251310465984442567447819579584409923638028385794520129909982998275342501795917315649817369981078042587302006212768273088354556241468169899422922541836791084095881344321963421575037561356606955046177920296971143683613074598334680983250427476771505505750322488919652537558450480840328336575690026262766099510630274109224748660974924120333824673813406435233196401961403217137752309448846341770722279638226973867567785780608285340958033469401329225980243932857260471917601894267638047846002420767073306519461877916707035967173626979542455749537636143953973076041934462213290348794729651073377838205430406251241215732297035227396350099962367054927936016476456878985468167603049147954140949275531111724945017261803881771581010527279740496757637856705926349170425374082080747289430894388510856257277949435779404265505532786272784970963800106250379657694015016784593124258073308330746898157865111296123353536209254622106198328338577345304000751534445129496512750452448335322109341814193334177891344986765094366554066189468833698865571310946775125299288811785682686742702898680842993528042895029630316879545287515470805184421839746455340177876965223220524992534233130396131445129958466893281091660462534188638783185603845253959276061608266431649212131254137046089301479721488309097129882705368559840476044588607598476002486802894145489553209653593832751971900896960016797337578772085610731385770140503995691565625578416295818705165926360065514439453757794708647272701594538004598661725938272302296346743130797569703422691399476573252324909083618013290337897500312019413169178204644773625655826753361741203518048558993521931302521662327668788647574135354172026501833602940239911134416497847914802474994621493961502472228981687076878704139214530604998473550368689784514090388371627728340237340239656782646987861814431818335860988682961086092089426208611801028094990762854796230338240856610719591069226038900354020979283565325621366387664481446875617800984864734261213245811726788016389419642135040923556819054453402220836174174712170459302961820339376607809265234682063549407831353398821891151459287281475449617472757037071358080973313807928499702478945612728786330931920632315317371995254871664413442184573249272193936598717947708515710724164912205844710940012205869469561118935326491099800775390177684752290541577255722390553321597693682605508121838774472268464071675171445121768288930820268097308659582868470344501691491298379696569041699206270629968957852022102703166224926257571230810516851282950879214757393078471774223410223911571129924197411801020059500265111364181389463496430392397206386545100900791109574455932733520453614649066964733898895823562650202925732938390354436741983857592789351254568086965989086112783348535242377958141754606382697164167463538440304483019377287501923054869840319296146834969866910274077312612653517747877635403788193025437539837661047079803311087139524038752677616051268788539677291751033300141936088251605549222186357388171792362942034075521831019922228175834914556438539006507584780335138344822380488567430419253774034057397521619463767936824403482085440664022242782262445931052089698048402458741128273040333351208625962414875059726921999151508165487093382718797723189190072274031657534807496920254907854010181370223232206815865672001828451652870142228351722906009564276274950753082507624646902393867697786868494112528841701362182796128134078062337904174791270793913672599433462447587436455056215671218472389741986227901674332155873161133566106107387056485948633550868226961926619535379030390494020803950685251224707110773074365506146695168529468268888054141224196352910590461097563032870984587576650625853549320171487344344728640343887921794572697026114305837654150018982896716063977102537211575878915788270610212173978233224837803368186136036209881822236238503032221353384462706076356551163591475191680399647816574937577459024332641337238043294222723243993519806188338251133617992035222061304806334988636632655015686034253002089641604078157442037317186867647309684362995103521709248896567003545371636487078497341592382756181893930945582206152515426641656390032558568589013275209103854579380403383244351117379642250405649822389194601914471668073188820565267298963958709513648151101636001657938037187753359109835578748253617563150482822996838220796575515505725246108133382991276196700605108180583336485352353503134241832883467519838191510904686978781190800719382797537907180098523745164777339982369984405649660745590899779256796599654776739025325727126323460197625424594464295901251691622985122912731743735256771273955994323178396688413453427447787050177777117284756451226442184633115332179789278859345349420063842566334933864699594798494783859204491556932411106079173996246592380571733779550744460803608854080411696028140135947186508010026335615447728322312974319922809954303411987225952038031670129229619176705673388121267322261021715956726939603905344406072809140513776783534714285966603965368342784541366669621380962923207695554945352802899905506235607020124219334152417810283009622983249430137807578077476534466465314720174015312264469033286143029943806398697768398078439432306731421980499539002338072318234400989604336284776388092591256047287861145501984641499925311063306462240030413811549397549728055452113572875557665625834209103642874877189229234764886825577463855287349425318633449158400804176940754154431498877969731214625225757875352199411037408432020852623528675278461274331848713518461534415848731320580978164834159975797417515702557562182985499899523496239280883689896472463176174524433365132382143384805388469858053658301306552080257950811387966662112565397936197584914391218193765578221905646028944393067135388321576662314324446113214627478655916822931090825842666609147093849753424067182111929373982871154220585712286658315368980762274432071685362397195828037345137911870861307900532392820453869094442365071861324983835721810266690889274895975017117101507561622205805044268078840914757632012557704190595974038510566445118316231170334306000702578185239198497755896064420061436126704196177247863583061387278006511066663383774931213958547103275814292399407618347460007786505548971808458078545013139767142125900544620111311435564257644328338404241982999667567450509106179691251674109105592110658099273842323605035751815606641855411249427484342402238077887867695705814789943731411436219825183376116301761660910710811226197630093007222287740535483165908015827281878144004072562402111364983855831265368357450279149931728973838111540282859841091157524158554496460656033216152588818320772321358827067539935120719813351276049443529666124923878933162916605496942732310720707844122072561908498581331756910314258068615413317324618559043613836112283137556966586419051488021154614071030872286434123653160678844680998868733925186446988813662028559321418601119626692697557816271976697193787934947901487184984047023921053901067448213718073920782130461668030124861966147850236333720212797355718953746150929163548746994843562818490131296203959385188134237670421912697511497445850191149127289235032783442855149468722185033381983068510839465986459008333358451392441988748267860879206104078853445328267718683755363093482774720732959341711039238421551811086947190114359258864273978535886183022337401180207235909564357335891982066353082544934860793596088434335276713540879822587571124982548502526226173692279217524625480051081763907942284454389685024742674303684023706009592508647333038166754321192045792592444831770074292120894823152369197082649256688566150720345440478533937487997437620955285866601508288607530692448511127646807115535238115752074928705181645646592532525203178437907425962236443412426830283277242796027103411162859923736939558762545673986375372607588246928198357424007132460322458163011483652302686775278023788208399103497095482411652386502753579744364690378443158902302372601208719917814703195575849814426199298707463725692580248276482238457096199012193724338549477544169854717869047758232895311597614907574180239695021309810042481825232289742280528358234957429769116835643804400654529804748651547780354522295548732547532784868308984711191911765847240636284217455359461251434560592709212215865264164076374589956282099036658936322740131094662297086914167289662856375838209458484660271725492417009292666880481532097314008293341155321167099824320752833767480715737825638239564053101877990250743118142256873481748543412643886048251778114143611129460513336548755708069162432424890468984802684366547407811792351769093405848535723513629753065727048525081234312561001143545389738943001687000572048139004933190918621432997107555885618956450802788249990774393661625813982997385571849715800810092204038937637502983018667778107023473281444787062458757358826359263802309902112233608880840174678684616541074549927611092267137412464913275912448523990882901742117270754630282777297189443650393468985379993246730420745997890280309937333802033220528084516614763277615126559578320152480035665029353588150465740316118676001646108453083121716612977595237301900811066501047339190688996803683757335082933098298618279901624057711714398445970824023867207147594047409554576815867207487641170404229856597570883717065001034737968929493881647439222605730573086483799775912594593760945956065730296211286773859691748684210231162114415136735582925395569749241493810661601217821707203219174662421722668815553616642391005366810944324402913668492029683950998052686323619285225106524404188581296737097851650345170576703228899919747918772414642462366210155632791410157121560077339749652131639096609990960297060783946777071910851468557131883915351176364697972386293219617525015726640390161936764178069151895615118055824674765782611468356296133205672916941632332347963517269338508873026741881063970045441902223612514238111526800549886975901976048673705649823428356204842136952698930287804052498598514816809027358484814195303273747825801436399276054084017544842945793867112013092940474853592554364750980307942443184089643668557146539082329120794188513295568018324690754833077192536141785428423562960946722983890893090303608268976240636834789473964876267242639094808215211556950331319703007329457048758331920334828669578430697392020264366550297221838417714741134812035164575830636445906145489966277765167532433469552850763037266169515887107769729270434210399191206723022405080849325698782599448590789686091444173952956518829090119426377235152314838881461374152789621376238122547511444680773729649962899373388085502881174342668087517163603085666511821445511486805824585857737116351704691784035119019118912893524489425934059552889848121639917052920166571283297300942588842571724620048910809089379652452884562543509598778687448181085003635334275627695363085781849419844865566280202994295003110647023622190241944267610489775230998098517661284285954816349135041106134506313280556672767438954954367572524461815716655259430839726846262758977156244155625412647573649490603783664275149817639419793118543855107239108386374354545157844524986984574692989833704524054543978621455398039997291355814635079623643131528166327086413235286869652413527440823133876951257911222012893618289108292585888899483943896926632014778426051734840093813548394624302746963057944231786218833895978401836674441415125715450208363698285654116357037242390078733426797869724520898963915045115972158212266693281428609128823219290945671623164844545907979531615539497272367389152352060780525141468469848003039394624075249702879041940352974357194141807740128538803102854499588492018783218442344411473546939301436118217895468721781740906396618145834434321625902977757285569625596500010041580241103807759886966981241637901796130618333244249672864493129644998312161127700143722616020154524056168510974114828119784476561592251547207213704852107371231324254766641174265767728527917737620354634282136797866344192442677264868971184576077456292107279194023719724754828902332666216203798661007772744764323391081090467100222878812127870814226332450128114306814511646048401770103120673626579065842730568821294716814175057688010313646784606771461838186290500653945907498100651634114959057487129254004942787817564657762248845021035392336730603744345442308649274004606272182734372176352807105777818452229415230415366086782313401151680125101398066110455516769706955847985629641464971230147685020305452733212632087973136101743808552534647822524547872795161990301231799167505828196635613691848419600159762454653453645221612467946307598225270671639320160200051936840895054225038319767658514348113290593755775100936449994992293274328052275797541302650421341133882998119974845414389756976990540275498486264053588099436688477934923245082667638559074045256436595410693274763850723793258074539272876472275035324636045479122977374448701081559840675411168020532124853604436395534201396686112470044235067089526073103078294164017260049428241116367617980418146853646046906037754761056349508909175815918448006833178754021373294233787243983364914417163668148661373240790138541563368656033803846720005019266163538830659737731490849388583427299223035574410940607920491770833442153686798090975522067665952975301597692268205331044215424102130387970696144198400326425399431983179815343544444014030328133245752828850764249017275853056142927802626142295765123055029411301817770287127216870046522210529215767317882495196018749738801437764780745746512749303143574241423500022334852299061932592542028611131680779984129373679564354066596993616320776293463920538987024694287620019701068808155930425725717135711284954488217957957665576264580645650285557875319113527925900692362738581464912505258724815062349659607651228325655329356955129049858380698295956686808907506238459554180263521674817270445112305323828819260397284512673561752461589845848107390327278351023945493797091895734130327914389250557032933344941965418957380800173209596199729814060664352425312571758434639745594113731747851077971064794839501172580798927228927847457916558580197147803368930315355286145200385025966939259835369520727278068385714725765985687673086169556285380475742427253785338947836286153336635739828459549603307036597558618248364191229808214869041284732359895524766200110979890003998866651836180488924413269634615401193599419453218533761450034304544416423349393469503030866944533409434716883680302928740307874276251913298892812415982177359412846334506765528756019651126872651158302380386418561036287516214724547673580781657269158341547024352558963607527331924296114909983388304831885964828191407933906816486919565389507409762529650416346713434757410025039934371015156677075516251912156036797096324714328453199937499426022603077695284831234162993840969664330330980500713907935963581212960472909756097295948415993803300993163489463336117636333150584676386807314301145469504999687330906193144434643948247753963179799939330932648376625553051282892538239387413542034520777004836373858349197863460515349092027177580894406550458869459651591969604672401107725670036061324203043834859225582003943264884592807832003538176988173542181782626940511866984801005151982354645074166034273342814793987972981520690746748414719849584046772823725018124754472859590566886642529927559691156792228742345913732667532126159125239761804855605036911458873430051189622168806402713697936212832442052576824725341426786382284102113950640144924494124141526999915076549932886299907481339077171589070421283100373863233872771624721295740510109925958869540490032904521905942359506710968195557098680623821697990069681907061326383571969545973095740299217002815815224082860162614689798477212555930786652439312800140519561460295598632757640652382765975250541220435983580170087977996211546448298734025037009873393777419440872589891884128530440612757499265366224194645451107782166634439766173163303398533422016909843816550090677906479786437656164174863570284274876393739071796118210296209040653485704165607416490322920521717725128829522022544603280288902564468973892524788580475016931248275112577735360205225893173782056940004725000186676635339543346533516952305945792033611725476991907385647849353111065170192157837277361050323604594551316460592851031291948722447703185501558464349524245465707189624702799018085808896437807188342800764531313562127030438080689972907265281165304516661847313544846579837628425426037614150710405089369150948022219020519165724162273043030268411527516233636425923582130875741289114259434121207319972363079583353857071947073438112550202788809888132658244111331428945072200825504499183329899487791345671588364473974507553125990674039624650038523787427586859968987751742732829682372840259319169159757661580213372118065179390315961892247842992870835522904270805197666128856396666420560340108534301307675406756335023860123819488778212803109247776945859412784808048816165928445283683902215833087359629973045303869767535705870101622062032089389426425000200687206818233557426285313501976729135682225590251315047149723609051417181129671362803108408398169378856258891584562646495143917632700094878648633847458671178492367352134650635498406226954200307906409094903333931253051117466597211035304070797712416757833009616453582694719167683574792838157539379852821821495402173368641644099397937053027888700156423860226889658175366971563634059555744728949431275337136573620275327019502612527783608018011709228095480733707298022567015458644981367827654536435009465848346161355731300747208365044618382406919144677350864953525930663561804735138434998034055120843523755700134040029899185103682795375815890978616082485770862566562064663134295731920994167311042506246513330496247024516692625367201933661894340137691741748114686604400356100238656417056767085378154837557318183838601411382430496997683326077487470583774532762580069821491201552815807746767900317301317696912663321866393498539093259929538922293119383921252626240455815240985803960129073820939566172187522806359236243528717251833562681921771051204666376019415859600220401467583929289822908932339737921361613017122432715883020052729883950680632302334828982233049333742228916431137159407015836072078846768779051384252266893059535905554781248188716720024437769082236176369158747489666985052339115022696413543614292897601394591517918365241910217603106873447000822127083725990545145283697272779173116304255060326249737657105380253069319660335089202304516268793247709769532582719716554578365479066358394444746867464675360870034834485953176803542019001604268554166600032746921844484923662470290169155705967507321744259467162106763317266925969957257291909174802335732168854131314572084715702431419722780450341883500153844416724019945904840823514857671029969636505694085924297150893623146920586253796196542105245539780366319678494408994671808322222085568594443638202465160498912480109092116970259440292951409059787681830752929113354160357648020237601979005867145898955483421112868134942886908800452547329402147742919187511065084643975843410595927334054456154907979530874170806485857130424009311125355788782144649259464883378620791466132647493945512546723081559020366182785829401758757770764511101427383327642657399298459455861768098456877531871066821868031696953217762189982019990455221889023263789691213064595705838566269727975402319636247002664118098154109624479276700564618830283147200289327776102399832179588632262476582356876263380212465265147349134761999969758361001573571608396874091489864585783865824566682850201793751209798109317932248410929452466603790052580864487267863834019323328889063911703208854156819620026435460031202490100178835603857840885338722924369506470663029810625973530927145524243320309065891324259888105966407874128136370503737058583721912552113208644550130862939287616435643599218428958445654121827556144427658748786360997846646307056694223821988951409945580234485314896934196047911068005748360377464035471435356243875603058226243952389793362247047140700713695125550873450741785265527475856741655153588798874549577352164249746300830497327075163345247181743516601081697625464273174860945024000804441424651271950400384447063246202167206349815428287446181729733507521317229755892480913576170607109962404898687844348115567333106243312966204976403726777109208945051782018147213391241051001392576524670235490089725828950631962106918452915100814398782011599624154398646985345221986196331502239291275829773581285644062948107036728724779721734455631276651909983865372213357712732597381770662177348560981425100354785056946660936901686236085352196522599107488531934236316562797259408942365454814233870482450959184960928756885240301049763166495546403573680167775957747110096467063365737822440145279545735163916449302261717615782712541636265082644416508854235499369508470787880074883907417366006292387880365556020767500688194715028943596630198760641810081081295104200576854055526249442817725414698033534230906658941739065085679078229458808121478188936400876294754191007147611869220139005968375355761275586201686635618539878576690806721949883491959773004104469644348989182244762852303332539706781777889094768407733394780906565383142359502895340582291792870043325658390022194122806130983821057268810546380154710344257743880355656917282721032198384364727281422764781496541601411218664587394346864103368321614410453442655052746854710940567634839495588414594635366599340817636923953794508953396637324665087911586852865148581195717358968264094173846296607763186074784753689280012853036558178327376247481618753214709966748295158987256811682715379230589784084722256435407689775883280939777718330954012565686611993156023062639781233107603012388213607412634824777275363875000056447596242801631606204281804050185991431481029490618435206697474051091895964502021354410136079914854693231817408337706233426079891444152141794878914826293655424106804104664494091403211021245859436386207159893249390259084353828579781484046436300420553744942264184528108485001182666061367245819095107300662048334041048910056874753757508697302332215668128402422833391965645165302308536108100434265209539799466565649988090612179084304931676003180543836032021349303976081548897225056133098909650201495884858464500357352832362007024671815183709254271234357779035689567717873438051234855444596989696111296570963931159850623628590409470994596434451608724419914071977942622279467141088127550533316070167391331474319193065390268823853930094294066474332499496996518103291289321161053684059864744754273848904965360695458538447824603331517445314935147617959237136204156696941486805573840062075050493536510966920467615217552967227752804939086646999062850192556144994792364211242025454329470539945924311793824717440433517732092009143697709038092283887692647124180155448396081402545630342842494696647656681734405916225861268129830974591627171869593270694262721056916482389725666734309270336990878651663541699910672727335771351848480480183461962191796720066604471421014240233621547919260694207163677353724502010780992042048006308982059928590158096902372493525398078103639878115923550710200857792619934357675961836207472533868027092094031243740704581253652234236694202469794712644676815090635098454882079249900960071535235651008522801285531130424844396607252354090996478225923399731485209317703956171793528817088246680887111545231340492957292946618337084652106587175930602298557917897418639825882942999842506080017508840138812803710018943487353210616215799697470836005089653816960372717497847222752106898604614395443060127401118349209820083438408865719418593184289928253676599865696695437317821805761069333958852857332594377634539551745203079872905524764991033681812469719770856929482504452989380752272475758418367342113670050194283426898877157218099523958640855682726363284214876794054143446391694499936058948123533500755428693932550015150055387637937788266817890274147453969431576090537851311214885401613468494358259256437603723151306569017336754284210564429174090428622565878015355102397931232235237854400224679307673650937833492480768677819936901973100076936255743806516298560150818897028298106639561951164451049110790689006098623442136343778766881100650505279340327479522432682697550246510810716518125118943124807216190827770591366627360814855939695006990632940592646148751504941060906363560016709511328311826295711392994553557334675823826925878960137945471005063671115739669870721759833836511338541253215822332901258623822977620126417301690158595240482291816432489326827013314475223347337717442843584439321907291074458196696177082540387141125775844139737931587870679959534980190939061789158517884265671859121062148998621506808955053025595967294574359369126602865131401235238844835943467512781011438370804873369906480553085694310527958461718222725178250510770932300546279336189449660707768762846712753756628777009830736477055069315990583000736743942817372987159048804369282204074139196963762596271356110273890975880682483519411022751331557535204869841904080692567303138352152178074589558195656469845265069581753356342368254621279168383187347118309200895186124947888722973177710475963548983349857929981149585699452673437629541753722665368290628557040489029752009749284778480549037167769549244256658254813019887019969166066084797622939386549286148519692173047470918157984208131670280234656696243300432469731793462520171013166936107863990338767075259187167438004464865895307887413559958888233215352077697284634059028639588142832563505393557625907614455757780842108175047190047278448753140413968901501052311051714599469296384953038187706622299853094670787643566463692843154425168127674126905488226391899295456442770090135563628870529511343394251783519722066539254764903823044918112809418191821045789539193357006047981251629963960150784875188250593573855123687407065881944854439237642590542755303711415863721310098943468467407660547715208869205810598417214741383120540046922370894290478914536712612295851360235999351451245044720474074672189402661383626805342093223067059629908191588803044977925044560493129985651997444518634226681196657235767235503045126565463839374058018566511301280796368724901246979384664140637384581107772114759582164308696169981613019507311626734704197795773303395317197707634288392346096484880326795137552902286424592436895080536089546130177994435900602410032830782964388370528083546181673511233056458127703276594485830428180617104324634951383120232387278471380396651855410208279188083135767343729265530076319860691531361143733829019056019694179236589207330152268884869692843134879034471720949682963307504132501268588685020852722799536069491176651855238401385558688500986617626893883002065637392581389067491793350705056284628561111699001301448831423047831367151417285906548570587705282407254329134980042120233961592148070065933224752333166790169399475467031642574628098362905972787972017349332194893665755956082781384309716704217845406671737574638589775686546166460967138979603904764174285976355591365446842586691040532602275402625353375490772569817173589723794186670771643044686241616539245280552798904203494662739009098857387672094511372003512299441157280562632561369649270250219076935581876403380115494601595120596321528870793605270571968037444912177323946224743559477789533375036457760554104467591595985024072777885215812275486587551306470166434053223136873076300887419110919295101962806935218582138001784927219159376348286522852328703818398410855973034753538001707624086440937011880269403307881304155964130496535915609850858938139609081581087329278782397193028973484844015156749666246396686625085123868509194527250827288786027284835419137165557560124967545764924402337694171304951092906589238616532862243817174353591341364466236011682512262031938334418352196448752395145399601935379304477240842373740984977125193039354492425836944810097938884207161315644579836929422721200022490617394880678848165941603569263429888382612534356345892261835414234770563093919844292906971569171430700466081559663567621340003786596896838891098429180266278221805406564400323875841377220013879317617957769713919459252883199461598453160192942868159098774982247169748341248663589052167847014555341841886752046561371058410072435070908340507946829584814769453256688242526920569130765993154065164875411745650042794112074475201749747331371350642626293012611038706836581065046971866731496977091642806187027959880516769698283418259951198837214010996553440924348703889747641352681089774898880805612739522185735764471861951641896009941949068150792720818738905655276399628803749237503266651817780606441020672177198974103411164620903404900531386116585587101141063326758042732435767727695007721477190102178719946288195799868708467276000032554130721400326533677533261352592999739273130015279174893764451680992627884520284711880074375208640948213504918561597630816152804984654893054940977891104124026678643941943811853470248092642658658586978846519289887369703521075654760075163930770508065018952824772101843971860213015819945392001528417144072806562020545289280411198981739270210558352724301447404279201456363913472442604437762259345197386614939785061342367911609877806653332493943260870704485110139150292023554800678331936387654656973281740260582531447200117995961713309571411818194078303875253886499759865632478009974245962141756260703869138635601012345172764656932105888679531320065777518295963880691241882193488763140184072088478272554904719103140419614994924845712652553143917451142131924815066138282171009569741664372907551940285325189484960614945876775163940565562729826155605195648676233558221486480250122141016512263678431702340096519341051103571268516218096029541405944352289752785848656575382378895217063792152306841307647946380852149337794034993828577303929554972501785487228190145107956020017354687498153777928783714696388971154587808051764925432479209097808088349811750309004329113401906298257693110293275844318463317480959081143200441657251816626986600249777518106409794834413377193074102183105947649332273098448565416981893660238652747047668452160646692287809538873891349904017957884919547206334822975501896774927164727030733666109823557444096993193514934844307064988244914749106188012722987775184701249293684825882636812764055716706599752271009047726326036274950715910277998992131483108105416415435553980104721666875176851308277697866465398359192805246411467382787338041059032234289926509662740986467403865356410945680430551039487764395510257630776874547130291823086131167539762325140941786219468624230225632554035866085678685230806946607398291469206829817140588771891646702525669823072760288574477438099067616995159960878689457259265129370415265640249851414535471597680232196025943927070450302353691369914700433240151848881018849605342744122965977017163277876065199195707318746503432336056105944168229921074847379188258087362569574525684214436246703280775598393952409522743812419248952429772424753225039109064618266040828472668098922493125878776627943375427328358785304745892024632370877580865377729041480004016610870062873180572993188092557841019365714236223950285647305246070427869547838262523617846669900830926386090175258124460473141136553295150646679810662223827439599699234465387908372151736406944751487338738509534405053135659566954127340527939324574530189620307119514854458248675299464036398907307220928177022905017385258829585200862653560506067007027291491319398125555537416646211667637074058852077763781036623183054742163936265125844228568335989015681380348387859345274150647483340509946577034181639023213377570544509601900713439479873686520536007213511276854646694651948114481856462667214258489024146237993587887953210051368591240397210463032301099611854006971347681841924968620973035581376114943640019026447624353704881274671886935595361447259277429760250749100964682140262489681391365155431100307754320107240002945295462700719590154866280694133742027200612623637374192298319284589711440774126550504506138786704456689577865758429743426199553616031465151763114799871701808750088012128081707269707868604463147014924562218796602846042206880540132568115806159384373527586942629598490046004347857407218623052163207584022869624607604690801639546148388883510079682640181344070340430761222172008391494063703385709842460551120883484180217492051175788091597441098243558269538390610603234014008023423109387414874547543313968125904834255574758635456538609113832199666068828374384017997103654199282124986395055171864667203627308043558805017672124998183085414248546408490058521417681462746736420177485452978598665324546362278033849235386533701962363494528404139247116337430975155209804634781799175164184025773873413473184422698203611817012429913830899846715022054866932685500135729819975936010415752809565449078234444973026378775273018599560424110932542410781075224145039248121144090695968194932957738948477861648740025387852640508698840107803836037607192334458028562090192486915530206966612010074134714925639587144030251402680001512935633232738677793275534611731872256690042265092633374681753829344730857019468306613193535465506482298574002379594198690812991058450773936331381279795483306888659922151663873586322373487609926975514606834697569655834044181466036215487406276332113515464068951998393605954011390277793026785596972616188296119032575214601025525658237597768581704332432943414368471958793640675534931866738172831371394126725763956360582740748162127917353414587340565663763395530918426220233393628115232629228821861981516952874770486866229294104742329244390809724244982370561375692535973233248527597384212776504582664546185913546711963162987269439278814933005245702629496737442987481851048426160986166759777939894533398780109657214056716280979413920173958045617935218589015222136398826408156373884128872940226251573020138146440273833123768881230049590146692554074357718386564967726556700800755043226135919434443674947901682275465726554693424745564876224147584165541445220210993978375426475829757453629995815172163295056502074321207133688684559301626011044789336281012816904656003985857935160040090666413491731854999876377662113733011596432848989969621718395033129569464679526406520332212396913621818770993834653128486857372962824189212720367538174454734676670641586356350445295903331024979590719300978501895630275833732580214211991891216004257646709055392790721118915714662791991128277776847314141962001996261648306405610726626773128019501272069957064795568785297245240626571984565416539371051843041291428237148259688214720194626037131367002728484343988597370657562467163698753869537973894615742145615750089128701621909980570332727278427477181984047949202407650008714416824441694873474193359693325875579505619721842128543152572732262446693242460481335512223093496990802421048307681575572961882601987461458719833619576172792422861723332434411792448575980296052653724580526698410734902595487476912212996210872850459139687472890118389641519761346823376113171440283102381960067994523031684142756235006051858651606934847845773923819727215879653260734098150358548404027094872457636195295239521239417638562044322622414925886045393570408582853801764632213225699720271280101108855928705885969807193003795028595992375110364409031261015859696890189835809552244956016884784614062721705301083240263628996265986929221270055533452912114817975323995876917488370426563369224735097490807150796018708922410326024397421047994196633928605664468094147973144799960835795891758380213557340877454120596127423607960266039820148682968659857146437782095216193440596857497264760871881587905988901880209862390998067255589878523481295541475687406022293195287792497686511716195225446597031020609385664865709452258334934836624013265899340569575107689123373468957169126240883743166351751645861507592159728975979757785125269031986063476000054655637654242889274131700023587081868029138772028790497338640028149934094533721454487777811274598465005571887141067206268962650415860181148293980136783448844140680482099500184398240210351720425830877419062560049691023546742063821367880817012441731997760204996630537898509651849037043314607602655114124926224959539079996393130468506303800410115239744025587414875545505924896838557936454304759642812450358847833405470485584099548337097340806413486919723249346335785259672345119358737495202623545912702649991590176137106121076071976187818853871789572056428857500883670767548384027123579923568149968244049197462072808552217679369891619126235163646978049864920655653230472074697496551627499405281743748961719727894336395443283152663687849048104335047253131331689822772509441903906676466521197901787466119212621693250137182315339351271893438153364918659361760446544946393741412884150945056754795713122276440698094659654188860697174557759868051691256608716479201526054822065084591751582680182540584432635539975004329269362787020433138218985428865699262827116000964835333966965117399885383536084832797689319942391909811505520434517336895458369680340898271155581458223221738025379744233808854358931445390393603830687450416390007711517198685088081520313544058200797873346369935278448668934966622472808090411593589892232009782666198957269019881724306120977915919418607832977692034367342983840324211706995311676696816440545980816890083965604522814118903019637003664423713756350919210354474509417579579881064220015593058764896853733883568852275548237834769590510798924444794149008298195044217709511625466706376420649063161328389847319961864889750005555815730520417278632543756384985739970690325479246540378198508860711766557789870583594112326520186902725951819485377740292053633775052529463191847663856575134147198654301630199983102595363010674105205875960287112866680328017218064492260615874693661063483834463474074427359173999562425944078995534255986288171079193240945052448112409776888014716032431672482448685735952203558054458605029103169531797320205579978995109462544626575009450863928023951579179383254752190994125558953231937503182843209213365080702650835950732260036385866088527387856204172066213421724371853573669660007475498927424452474481862205496692998714654305634896553854867876323019128078986489669117104620985035131890639518370607862488938442175081023313268022598390705890138613894991194866700556790099467044419284807483250555404683707743903426820340960584140344755851337665108400714708278547189399277010899174218379617566633343198098629856100290784935980123856732793198441246184727232860899362981695238352685715871957590026290013011912234121625054328994492312799682071563405606424653422769442757943158978517877913967949062390307938673217124759300914073556704868373840767696287236798226273170388157638798570002031011831081680193954819795461494153429966341705948516658895330222643236823422560967336705000587410398026098777748246176771957271291910732504693745438735970460525992558432296686808040095209412418436694645258927617840506957712665618199631660144733092529822025483530676655851871359263155992328984586144773624535662535539251623633606182505432194058662905208844505275302306232148155210846533534012370049669121323419610207906205957005992214064234109831394103420425094110555031347675139452756143713879411066444156705071068414205451712119695521176018529093827735271991702130204881170124815223048423910635248116868831227652300289002328881304204078900712486284968733286649508788682590843048634350938047995975098302407516880620303680177176905558429852318037778466732712241366725154257951453068043469814095451784451593923052108573874045065850714136976541298053730070948433880634311943833127991769098695582658082776964675275103889329753856234628927060806784458531815738320719953932686512219661173503253878241200377199745185919692056491845123894873953885980439015448465664611536100524496288739460282629127098870634360348558644460772767450303141985320877134054476903209467959619652407241980176830108315133966494370376010620513004662053361265026539070456901414411441132473418725417804536029153091417448880244697180933420256191166498889206763622032257023533440223148763906643575713367133807870671169785259315221100750052955102677918807950124366801432241416253644134857893474199053164400092196541087398789096416267494169826798156532166454198868565162127693480962159444872132714548520400871351866828454636137525055555340948670631799033447500888220637578569904705818101688034337435327296066389122237150863888679604867890172936748198077011429313223904305191479479364711000488927634997598053424004545553464337246538488554825169301911701312182501099002447206892745707116924215840671029588260461561413937902898310981949793045799003868793906429938190113578768265857606692318477510095355476652367287821275811651638223299640712521486415460632269125544839978733281285569573397632310227979230389628916052338493315744145846283033680882844030665085362145165135960532518017747077411009219170005383714267882818619691310051367877189848542870310016821022210109238594139127883392113612358974022226469270299235321154048973754359190042090487198373998872620617704676958984280666847723980992568248302315297578471227091411765334088555472053434040935202345109491628426080329502253994372958122390550788161616643119408081220499675432545968360913020331734987786300534473010188294829927273796712771338602328696189763098305498568260790613945021346677612469950056110972877301462567311241281530357133235091289824150381509030529161957775399339541795258619823355314542051967727814924280394341806038056009620631555162848722962399563851615783204387353548044383759323002378264706085205686246873961645158635160795545617373876084708686155171596781836720860829272298169844037626302677127521856068309913895406649735376885610887512102482004503464399859607926149326266379607883806967327222525312470136157504084297186110790181259471404683551167827210481459772569499406117201710844218530551927059310606726091094989084606791196690236489132789546794333636051171960442523678417557505822954046334421688027447251671094452362702907229634226091090750481042862795020817337575594646356663059606303172071188822413817080182744352267903763408690430546979098080015668534960703762663530910992160672566547545041973463741816288385091417154819780997554151757638206931419095670465896536709219345060204578910051038551757929378772851906152477131071808206555491240319660854263084094922882596505627071229780529470682120509558866810666798012737849195565084517235989730349928957398427818155432700718797797107905503142843521720130105166888942602934720171205819673104529560423898816985518741174977353940386709628482193210793625343582646184075617430334678756554471176750574372535004772741453676431248510496183526475962581595130560585846787755931224609942985424964035828508401057892930777017008549949149154957433936945861774993119513175500958742722820303792748972481829245813422367791512757446060061443501935550879720840695680906748898178314322557131711939668703845896441096908061490661629895901518350211424259373526084167237553851229135374405914640317274231192225496038269144716877855514918434447749292802622003773774845195166360660815860376621373935018105035411216592251818629350070736829298201293488713734377692914458803952603687706686581981772349620849350324149975775545996178196509325989060757235293847121496181085791777531043180760224666579027713869878450501260095971232980110074429018256880349785510042604034551781369122478292861198012794780505108028983643329152172177514605794999341280537269359123593798613202033903695697540531571145174005549359255994728083699297979983884607195839308603266065535170206992662619250733060475763659441250472443639620592791057193630787403160548971234958303490089401575741293154601929489069464824003662143023472682099388549072488253459258425509663542593035060252724665534070715856789313822173934316797379862484771749235937942525650372046173493615730208474802213947982745614065220638449655376946136782098418202978883119024401697001861679881901860158180619070388686108587375680372196191779421118874927384306014140074433077067860569769673440987965248600200220872030012081782951743094896911511871204504540565472961457853970780050297472879229457136790421543217279138190850984240449060070937504197590453721042363642520719682292516193465793041981114975328437613121259461584091138752775289083270041924534984103746133089681550008242365165829259063906292918634591964192173484186775999350202759462138957424657332377004795635732554678967593575144069609115255007281072623683434679187043036343524955376657169641467876644334912910761940614337406145741904593254816191382515221299592139500523838765561173257248408578314321252487529587797620046519260202058568282495533214794075878787260561557487534445343804400489352825575788092935458374422539420370872396073298602212845832237420239098193106964699053928606495878279359760595070394976184887816441849945131174958484168291929283718064854911922913285752292653472035663164598001817277167682905258955358567811219262628958558061576036220071477328922153095510004615737319446745906210040239292604464489002522165941938641150460745299709639371456407506752016579681036845454911643602753728999318980428159861853491381746562426746673871268067304380525134722706910703767548169227373427211707058123970047250744919069099656081067048538971797737753530734218003324369729268256761723370179187443520812172338651269651526159842441021057925474944591987193028105304482380440262364223203140032527650594659449670993259267734615884590025058982361481601205774268592647424194683078254415414974140419263393695737911664910312767968641612784848743132964375481744679800685547249647912995788499039481284458121945403775677471983989884090077617883479736847001991926640839838125532705471220669280415462505678362380067804168994271650214309441555216469348601688543778405042882307524756021892621527301220295053535534735434980910158676324626023491710572260906467970741775806321025164327725571474876801470937562599584224947870580912780417119255642152536408287372668302579304069461068365087432694075825099373900593337655657058767735721281192899882598554334692264257436242892822665465286409337945003155694333738896115781551991491502254949465440525779024950066116738951657664027248323178334399082414690258877760256262831066134705325661812622513757797041754078959598009172609847599586868926457368477723036388954736274032886886857743799624130410081614063523801709655285556534802667174107821637896188083021142568411598334305408617662414070929470028778412033657903230057973014630220129222030548486965742907329120744520424738967853663488342185679174972253540358233638434561080380125854557370942048808056713579387261384734713647849403965408786220717935708811018609814979109837027754390787324624441105521046013796296274704323871646051078346697284512112926555709543846394548307128324823717359176183869631020364741580685144412643579822371654036008839894899010337565351297736578981095426847188116104122942152633347812468694539063865960937234813922941016998553160305698314112055815361384010429326756090521265015359164901131046939478543028107608350503497307765930554548622180954339224281903696408569938284630692689444122441028039643411363592838809894409428597745273798231948556938682239095751818000152761682875572067037969355412126055338592124878185993562303143451591115146963087849024616792582402423022973369136119433875118942848097802849228110042875304659029429977738234846080089988769089234667243649658581311615923397250259392898614070301767155344046541058501359077529444343431781316633662563096199817827388599837610338912457367945897363985290694106354382134745084758799948216661425616808651926837607184290252896878492748019143940214553823046063122036865921027886124896308056069072912058047762528920328324663233281560976559514365665085861095013179584403662250760728641049570658690447004194151234159795584132098487744636465600511486221542139292431081205978367048343417905196577298523802462365903885262730293861653546489263262490272857320284328082963055561417565280826601215617868822538526314531797685547447492596851416184095355017915896769424921380925975204607129274834017659279322547253963788219212437028732552458685613038433802452466604064695396571069867161954936896054539155241366207661765655104805322937887490941249611515308220153816422221286011420968573332833345069018759634324435928012287964991410311995093208103544426067200510337950100939104195513443167175189791027859173233148154102038473105572162379992419488921339846279309420366709653180549210344352831871045028867411342415385764133628899411861199945114800379807745955715953463199619948498380560415992726882710621569455700357611951164005630977528570551253797364787957776487038465761164243996310157019119041412090477296002297143074714559193385608583989454014110139705767264925696970175414094620620643467302758461097885353534078136099578875819418575861929669643259259023042294592989363265627382090595718212174574104304655575262538111784744290275116007827477301233487154123406046749472746351160435822295657206887883811503912870332588709829440858922678779552100105855610009981169028504265633074773466813826756448278591778539145454334986164258774114384190267017799186933207956104744286245459097568252222815226411712484726334398095927132149242272902844111793375998304423166573160478391382793594097237418680829070464528085536785652218384749446571224987632808464164122664461911449908764492084814218998177995986194091474113206410801300483076336510443381185175025233600411418500298426419651684787258160139444284209056938411867569428867998828435233165506603210063206256214644654372765650579656609223918544260384394164685449481882363964931087470780322764193147607450493424122947583956876433815808634591898445176685437557140221507469498108900559710129744632813430734755577661564604710737221182547095454437884672745038247702142998548780859682042335025835120716623747903148202344807088582158612257724212437448364785214393808367010052799228410188851744590250191069670940661519897835507696777351429884801009547436849597290311381661242087517259369757077241868696277195389950626654506929197241698782823457584012265385901140802167314779585766587146370196440024950973128765488526097316382342896057349248613216943079981374357813236213941614454021083726169994254230503335512183683801299090806736255906309069369949067496849499709886013285742057658708389923166015912720096090623538264326604476954581857300097442594888133956612245285672231742952189677044940973137621834824421233380236790987008021986184503672231903392122016025540468223262759710690231948067967943305109249043955537511299382087831065575417867914114535336398516849373953976353988849871430021817390740927886042058944122676976749976759158976868398977687546459450359595173890074356189988609184730878457257408848699536482545979138240825502793533968528956018481241474088009161054910665011935416713552370332757270586545222657980268320890570747342174761648717542436615076538885976789482099049823956517117989775326708784467804940727400439491058535149670791404205268598899504987500011378916062584957501610212924283752696935890892775526385443227122006778413687770227631003079349117067476429907838353090534647010132409496626830043742236760658834903173168350841076529733259654095702729703834946189739333447861742814785674590123768771258543232118973642471478916715211400805145968723676962800619751842207647985984654619060356677385486822269427216175876900842351593494783506566070676081753013443524024262546905261883988490228973233140225617801705743525799800118145922295326149217924249469307097641370096517243787546505318254781416778679854736321442509683603942303794962940595942414131060890891557650150816602587407662826748464306636146816279071365492013816907747291733309033108971488385922700098045801914025539296052925340389004774372446961557977572960066226375088146696139716079897077497862075612594586229786441742633944883815228114867699751344004825108883598155707667135207609507673921099280968641479080979871410260897462935120792378962129359262442349881536791536811337273168765572299345509442412091235035800751428536465914764222162665701213427661330245396808303774352098640922036291423254830556624998293872559851559284846910381609573097311271304908408234527813627322542021695854244475075568006539189380175455677188433366808509561489828836959623852415710152082826576877718407687597027436515127190538167773149795645200844959348529252627054225702024583811087040939123173896871806042580188950219281325592952611852634224086958215119641870110770908251779636721285697473487049801122274190988832718753413954080234457189564016655355057007060887915084745976654375880105756787935506396272979968312922916417108556306291840430246495878168016525892532297221618015419963618045023474734228803726311052227881400841223463451006222563171159408223571257051434496541262362340080675927321235829875585981390379396504930667967714022277281908901468601970707261829700161006071949595459231717975324426325883555730433767646456803156703939950885699547972453068095106138604400690254754725166457663117086678098484048746149891435381164413075236356628878139499682367954160930829319127647092872736360423451214611179787126345847282568022322349205623242105296114417532504668258608212260157896517107369290923671881259694101622764807314875957696907173815397181303570344884023844531517263824480922708366001092155731977402710601024893549442419482229257057790403515151363900049060707874662932816247356857282380966367611001427132172873555073039261059441826499959456303280298336151105702615422584256997304387414932682246187319690300880650536415352451616739571106162258988502454571166321715541276164935566452119365832737590099631225048397265048587973915223895431829047198301304899500507971677513951268207625173674194184894879281274585403259313154554595256845879174070477719046297958339331528468890246602521433192680852519423031478165133828633297815156558891181894772784654783987282066984300080820402077459277594260954408690323173766175134390981525289902072727133757332327685876923411128492427990806592022174076159422539842057135849655918015435326504689181511761662249454766932190293225738516102654119199850599704897334974257250852210743725246605107396845273624480679975378834471304674161644242080240652279941397454547348391514824305594305500692327548910240005315640040405670118684516732131612652585653605189857544929014929204987010695683560585081511755119061361151904547469839174376016337639768430803048529983061063836099032845576692707916290503855076176168882087047574874297615068827782665831767766414426688687858448379066906594469476920165952911534664130130047638781091443350958821476729724844515686122858874339378029291401226213378149557872474614863886846610601696105288666043038736925482392533254859611257610218239461053464457949018072291755807585541018165359463150973126861204067061627838645927646957796058359091484184952266709632012793626176539641235866077369761622701238860700698446370309645034605263793486588829047503311366699478295775985984375479142734125421187865652364297295517053860742397075713860263413533896198513073358248199476574512755226278011243382488402580136600054473676668693967795113963194093967728879942244404898618000091137447798671071761743405516122803296636605148855435420951814434941164410164789857162645956321142518405782546211506914192358148278749548210143600209414849532357204315214061943241930663988120630778726984563411943598427038042185869092653412359983844580086268892336454584536062122432881525974864512833208805838692282299873196577481374120666605088898228248813589477331659857928286311611813529924053582593855842108929832585515367184842623669709117404951129296691931340290616755994045015766833915908387508560980932413823584365359760392550870611030727310961645719971927817736924031063059678729968771659065402913487916420233925615773429031314745832095795356349387747275875401368922071070135702089845561483256197789395181673334414962253208693287360380302457487103881512561282304516431903583658809270887634411267178467051042059927871368523132815016359369627513008735856081795117541472994725430200590020758896898378278409431206113794610838212312198044413911346294372415247074826498311754478334854241903984663934624511217905581529005405313621395045479718124103973295228140626691508012002473130710732490135105340363479787030494768808963631587134473032392305669571426475364394534217104395665036473613403174719769661577468279405393077895254124922469461154282950196052580229955683824825117684934806132329557147608269921950423790886300238360070528045523647385476817350423261667969681737444431855849012756262291175783707732545208411668099752271024200329937987002504374310882401886212620808212154767444328164200939275613035000688682362293161010912421259289195029194676706348480795079580149175548587525556253769974974192697236197469429783404328890173136680596390215754514313099930384885512211890436115871468382744101426449687871877321661563875180064819987365155887638610822146256787787502524316570181488153629186368653288577569198591370675271554408402501115001959735306060438548596005403293173072828354283712547945350113778141706249512672927379814152607438599664374990989739346013549361000765211191852123274421523528400300139630604792161141466393799172318715361176611519116350783003206166414016635060916251400541284284560518288101398683096576388601325802168947465387747552476989689292243176923411255851880387894214795798923686115820002161044231359514276155019544816965695618806525316511827369563124218288404575966865406044945112055771738935629952841286276758741596495717319307544810628510549550372170438446818392382634316694768489047332381734739159043580765382119210216953252334865002529801050245684544424914932225959939152117780767645154154718802025239583992345333000085951215325468058542950622941418872149135357558027178920852777425347167202014683192652453891823608203995490690860712089681604012854481201997314890649536995895142683179965764286458022941886759975479906981119959385129562439024406589361191624355859318542137232482183871178113508814222704449704357631452422264477292162199096528873396151558599147405603237153538123818641169595006005349636275671218123203219955144255739362218851344903911388288619772245739247000787260745166122519245496419632103207804073765656238086970414737424249142074820967441648996484819128347143169259913725666810524094151847760636808579188957474437909770294377799458911493647523517068748864580834192436179455784622691230399590660396892435952825557525056121010166425817082784600002540239294360212082699489543745995647312497539664673851718135405107144554244048526815407425791606966151628283635696637921203116910125880160923349411353657695935331961555433214739472481541176105811671632335857535790726139574266468748629906439954688513240864168213360325650102768215168686469345455140159100144201417666417368021114878588097244518804012265005642376530826870944521689173487650692466252762139739991717310764754943687061136586216798887647388535918274333367221959988734915778480395079513281116001562200207198858735082118899046927953434179902295806925629101075354597670051424270006846821927191072078926276631976518441054224026520980087157641033864587099870078994037268013022953949910502856599437493795401210835591715283150614250896340367982018245679255521116917849666032782816354866867137079521153835999784393150926403518711273221916473129024141579420435546747733685111057173786553400925518810751630136933370059223146356752885700366536848581785897161670452222386410640777843039031178231258795348804952205850061211888075806566003278744766254963175661671064282798646888314457783098015338726037874674028130657216360738607748075196366291525570692349725458126161198682517049678645757163840437613416702601395171895682253322365105984672316859493880969082567159801515058786455475352727987804226622690072979558050210745845132950489216761599213703039505947341280377469346104854361411347068839716281507660611278263217215807631366507724178051617116368277134667892280178372705881713087386605424884349549172694601680241818496742715538974055242693090084808584909716203958556643529834370795614731755633300364277446133591822569641144735128149275957111195717951744711458782920490946475580377858103407877592552404487544887463048005012127383435333904583308500240461403413639550839910678341369787235936819551960909054302573276895369447589025574103300837760674393770888827664874145294224995407410155547233330517145785499186798019677348325862544964003443108660960095429015628289202372363005510516362079489601353585110323820037108944538674242765589378458535458316242377166249092965549347847411151402856589960551738342789451110237637381063280978968668513463425698842362918374998483196355289112519968518588034452252971810154376160542582527751227526356396248741322213423596353382491418868805237255645014878158828929380970334669203620489453488740441428406782399637667727471567544347946227101078172314833665639477295758872384450721400826352555006009298251114423349971686548464257114624062459202523330436285764660810490316679428377561178953565978478709637755466617093041043571363307204952566989493823385018123514575970460994020917731656666562137564884178823319046675122096121234524602020479278191123828654804512315653884848678231025852920811022274468630436310997202284878061265358056810008879038324746033765850685243356267443271437469632815508204707235234871592704535633249252065541976553884457721564979267616346575127013531282629517429187366037277107302353575064955620967818957716234115892309286493255871472199398787444795881914522093085859889162270892064976744370283978830003779649892288905663406639932980434423982716118809055347247369888538218552618319538051841002243106306984805521116781763098245094930313899329214625489215211254159338207859424954974783565800761853419276825226751076136332084846897667674264901755236643516008005724961986197269369651919603470880751673761052427779164993360296558756025263934581920318326906238052092427879841394184018368854405011449540438013859730630162596937202823003365373971118752148371098150731828552717347388423028575887823716756578818746556120891128641630064573481234261131555236121809295804615843162125042911063742015439211457492066448134453788857549563507339423865532307838201105629789066634393545715004606009976753190583757903166959470112485956983847152678735897741426515689378071172406896931157859242615367797177270137005664068246740308065232939791164059594087417045232864105028576618610220103720597325110328567300144640748888116911608915882768694588571731642459130718836924523517115417067230298064378500043687894178742053483644705609844931483469584534666127688944535332606429005415227269824063327495856949929749633900661206942936601452478806818293577599886161455363900396110199578648065596537325255415582640494550347675083925010763499848208033589018687009515744336232174848969755731940709167958514956074301531045293142235280653093778813071116162779881823204436117723512916783830451633151055606673478499036593073658752776305743818591289038654917794970166361160550044051004089721926623685996800699592112021174957924345325812862362624550794260887479215342032133624652886292938421436657059943474625916438225260906127061847732206733010493207290747155997943484118082842674286692729305055846072954773692091811429714205683263173008761684209094611721633456173001507607145966161196995139329817463851683735752203148609512131958070319874960996119762581271997802399591514546722046594750887751220695247460627945602567952330527097579678713332461492059234152343463382771284166970179213528006548149634707226776462318593136922696987343702880791457842761259322135567656560704683951531243024010571477569129332657299832561694596480248318798359743044876397193327002144887716596532341887289368563807021399192684563228599619790175015834632847199108472178878908310501454294221129795115235209524522111414462289584084044576949153359514032716065583536145945640514319907601604774332599873379167539635887013346830470903971443121180182176825106289907539729060469429113150013405003333075946038712652589281941496491285855061700731144252519942170845180123442265219237728067389460468995334047423131347052111400219378665945725692057732153813928128538959771405896849757246484782017654311203733631827707719086768777737031657509025421475408365196087571965540633550585261916313863476507949477468184094049670900806365820024186410784748380962439501002096057264684959825379207346297212361950611173918094206786546980323627013819243793998008570414129339983183522422848950535052537390503380555645837354868837204405608525101240238293911963133159263264428258267459527349441510468405873290364987155077605286620044188946552654350785943555431083232501047930894591394862482191006135764996246112081732874463051856507753379703293351623207713858390236155386341769851886840971787913321897441312601655759847750490212565661145693420306754010829251842080368910200062823186508907686368600075696878341837509966658594244737340946981894398114091315222717049036982296274435302801194601402161441430894643109834785502505820223764878013079182775498042050775454508554846925435021069825724653744667962889427415278085119603560011150542049831576086347092674310067588056953677507202054248641694233148412524681858725578628055229433444392574677579605164035692386168141965596019252440059181551426333106031606509290969601220482718415734357165224585579136743670894089202937819011758754874139658749571656569772102326147821913129043731754450459039471785545682913178080782179034262226006827670466149603094137605047351389395803124123641623697441255882839207745224550114186718453175276579464060035275256307404437855149663055130782033664610986140179694392305175292232228468211947022430662503901399496108615799690791748521963238496478993745713050597716873151781809314102882708939906302594853928712797602399691042319221370115737105522662605202474619787165308854469673205650740031467629390282537645225826343863311450766088350790547473621430962077727996726621917638896523065127810202487774570596032331679843557153339585524154036014389837907613157734303442060951832575904386727450135242000833823831201564565973093254308384189067218324524744814888205601429551423105717416484509730031835545778521764466617818141843564574518641125964442970858369185706595828199168430986198962478489570358206310422395235188761905318678818178525718693715156635308985157307322317083974622237050622390399177513316614946228581989282633989042054576361852820251155597796456438373252428060910477690170172735158913871054774693778206861104907121946903315145834988832085538357002776342870696942208007012056671879239362860848645940951598893893160515805891237310745387481056585605707981494511568511748706770227977753607911370229736759248594133490184708659630740055212131575944771622242352948427609768013480994661186575681832247278728710483568155589590607268622841405161889023910601217383506386257770244559402035682700229805270426937811100733118459325681758755082576687289279617048925347330946666357720889690951727604724881061004810087577765658318990518059561399152680124473453540330708103843690103369970125206933648014152231610900189325945541875188803307842144471676868892683002613315998314823831918938627031258869617926451170536618581795388433334206217200659970817384747290432527652423367605562554622519409379395744387468816596247066999582656663425021892038321790623650229871533867594125246995855439379400545293477079418844507049543002194281062526770620705630027138470773978476514263978360098968411739549315338498445272193432404336807486214933324075261536834921204735371958520967935564406785555133275353479026478503044069093380613877330647750381890020920708396950475880294696675179348901845379553442014713310412951691255385383447696863450298280575866071710614420769161318652299138359282573519358366395745737763299009605704867409711638568035401978738827853727352515526377163238214730553627010837341764245058941691625694210656408104433787564644851401147057958605234287307201953996862689869790147653471551806335571973689475978247668450573757085636454455214672763888665886035212867350361673013456784210031142936461506219874966128314535560766593353877912458836306982783905937119149367539680145736647853664692367896843547144532364282575372894223333286261889695986036901064703677469249797172460016226089133664169964395671781703416181706646866236600571336836354480720939469921947530119838263637122316359386896272416209441420499451494428984509293758409189038251492405034008942036542261891971041740233849958500521481860499580564802431554850325715186884773513513854867228971620074316641949409408900520158966686172001071882409354548248202426033624321603381956424954874995824989956815513253863955763284436208878013455693175329070915825508470055153880190281045751634340360427500584738496408093454811402263259855481507698337986076365743192689227565379216842850142149708821949176070371942238640347371157167497552033563202483515789717273777342147615075949419132693667337428191353920823655094980581608457830271840408219693239050290566095232010109996314774286322789964275110823254822275852212672774580362534443136695754286454698624150111587167990775988938250101611544549963960596843655477643136041886983352276396728055468750245491780534271224395829843804097794993729190350894295104996325485088564617808510428765164257652296386944189912426568060034438954934635585114841336501243381586506277901985144110498237828439016411307737609181514576508633750823030792521390603693343480052198169601617329147809780304678019030058632144558497452312377397677381710730336889758280760290673733024069510447655072729800693194411960861196994420414605907792997239247937050240235555644587587673362170904151558689794017835197750539540653126997789942486898741649496968458322878438358743728784387238558783551131245225231279809905595362876024823781349224272335188539159833435820878844798877231568181913418489935799195211345053553656896184244869467661399782380578570055486347000231609550025918290366934967123406567543078688916418836409320143962217517148452005424406211686181041095431783264994567121992966910920337296093016560214805503761214073199114373555284577116641847790349687405804099638238399978141311258750477421397337662769009057114976527859989245383976613989924521199403024784230728901808251669628961172617327037947092128939582317956996182675094423225907128754530905271659533069097824004879812494529253667664353476992442610296318661264211931613875187345418279346968374659209326572374074350448848413030575792158545891547465882898503956004698194395939021697389685570458717297339160284546457462187913937283206059640756722035575699710912647988000692291292904991835410583348369604263107542282782258343740868645888009843940386139553129980893703363454260823133776044579831485924873671046452242250504151548933125575473717223481437959069133298922425185594392346806290540867943582042697383291501988604017295914598247566514922150388935817211513575011684132390918581138083686557804562384706726594592666627195403433225845781820438267681015774196417838849470678271225549876159095060160749374153275713177028469946226605395996441081704177063437526812983103481854596393548352391471739850448626042098469654504562783993128636336814370882065481729032749029936708898298427625456288917180380206697205918524522038555920327254951758218815533390935322597524728801586973317328067874359739978624269927874077079213568452297374345833286583225995624475239282512185012149702501274695544183053928386111179593405048512854180375695036444571132344607791684113342302622874499317187910502706167176257873246169471066862198177818168288236225337914209253132004084155384143942326801563332104400336610332892634118114622730652350354844183028728980379756958873619293282400592560649604055581600717794537260025207879771435447167144671310684872059348112498647629412542257717588986925248172405145825993779401313166667017570892633753641940074768630150003731061585816480307419179976877614834844710819791763528789670140048890797984425875045182304660944715797560273937152284321600023405115929228560206469647104762775791139257482636763972859839925546299690057618751208450056966025441289145314028581914826253428480653929843449879057707755054943158507642998467597542125315959351386582871143807466407889225626762409592085323993385113395368794737175113561452033738221771540030895504742706593874980254280602263064023365867271045654159343531515865924706580624355294114702343824814506283895724873459191999709522034539951184242906162254510695730835886770419094999586904569532220984458547602117159506556113946507781092335587792319821172101133704888415977358500156618691549711086641000264617110751137117835872968043220118025358013559944717203847365978665276791357330293540300779409282480311104798502024148114022928408203068334001041069253111189658043833391019352961299582426127789389771189015414897401799168467260523965748966075318029823287470309917925762641755984209175224087598600538049703412809824109490655793331926804351009258391377396771802075071552561959257365174482933868202995825939774385970698105186037787587289438778308838109544758234131274547393185914096113242242919429200884363384316782428470386399960651481229440313430519332495353830196993564315223648185285591106120984531287773766072822954675885253602789273248473523619662118796006973235043170770568340107446543130931449094819325266821763805762952760856036326162827984147155501658053660407902388613603844627468950385912246790896663838342644105068810607632638909151723278907151688868596585220170975131247324729784423609292416033006112818886766273391973785272258627056400533340237524832984719159590573037601543425574607812821006193484691555726138219635423875967078642424211300575744936334047740604393000777343656000134887180848891955824918294243687342622729568046581532162913776272709711840308869234799713391398971319056400224684043811084948327754416150987168801671622150783826099323489914034372611008052161778268146737827960415978786209136468189388867686583004176681299079670660754958043348019733507862834653246291862118001064929433271657324848152658817920956602011881545840715699621379264803744767690717558271078770064683418380813298440405997100127333064109436964471333380565578168858843112497930447723755663248737886886962810118423588589863496185316795053968602104548404451663527309773865606930030715648705663654676445255683191439394992103277766252386665632425287932422056772230737838569377769082994031056853563215651074005563864701419438073419619449749361971091326632449490677077108675603650785175336971041108773674369698545982904480323923643782001928525311960348686656985873061469699135064067605179012423744617492615811013632914768879661947464107954909713233333952337222650211849604763143199199980644190838880960839180219399218265886808741615231483494414100677420417922921268377460469358105132922854681081133468163103740210934988675101259631917772013558696693875376394357671594750915068236801874632876748647318648476865932343048520546960766217135215687833423923791861441651671593613747843923350493034565028542729555369110744546242224682963358299813355839772010825981038627672885659827584143111692307508474597452923197436768145360979873388954615257238699268176109796933142699159245232871265599037301324986375259287564011221518720113091084535300256725555712337803519857476658430632001247109993209302984444331956929313698629487840157539303100764755196992522278169112885230466275423775852923052694305168509115473443449222017044122437199380529233187664652017223766968109844684140806902904709123886339527651282367087843818473486541218286829349101824409632355133973753529322071657658277038818672068086789644536345698571850796559114132058477124933614831483566528987060947756519050435559930428359984300547822987545658933013252246129609247052725965530178374717311310178790255492630147980508957737016925501865442945410763063427799014182949484899336786515696572342427616692137171507547418759180274599668668740666424948524894550875011959383391409739806176997270223941981752418804442081467569054845379850543029389613497319409066126453862496110355999479763471253619624680280335908673815895355677860654489661867023882783016558421896714477778355471807915417765507058684161596056511974118551440520397055128153139889971471929262640151886377126188873864819595900313817060164170450914253586192661133971403823344821185869392876400831112401144698303113712848214708786206605091454866858351809078068482867618949885396983685253072651240524483267399869553498726977657668155580776481082654590679513615004177622938980415566659450722915466428700380621403992816493440077308994779541005841806532285001068411683629907483544567289351465536327076018203119456768789411029841725358220839988041729111428190056787431414070890074234824807763413817639899596055375240745561820252393409982756118212293476109381294123901315668939147712052883944429341544913650794137269585494307520092071537165848804490703907891182735044414769285164556349090739305071856803344890445272798765584525795094346444609380617298440077156688332117238311155232308794894280712103854269339627038828458765626986771749652561429940096425875610677257996906176650703859212086837305274008281767286088028999035827123646825246634735675132705104354931749630481025825724876510250941906288928663806101426839345943907042579914738550799839193344071757330407983423105441144000904805155355170527311967144689774062877020141755625832730567692059365965446995769702487733786791107879475017154945426306011810038339602281080556975254388528669284443285812531921084691717427150743559261189601684609404521572880938826829402298889054340173237375702646958650564683592434514403371543950836248590726088623089466631342369079518791552150381297713306186747827929800618707425525212318920717574450006554326108974542324526963684434229220882388626313283831616272138882199100483680383121414821207033841213696254011949814355435917782299243231249896013943490904986646552879910225034791344373015267234226568609427539908127306656031035712838977350614381142997161851018414005799611232460221502602741357495585170996448707066182258270355982471665853258564176657309358446059818887842160797991696311795576359652360798727404286772167297392180732856923336241055468087605599871292664558900576552100173227447176753768650360230046934721394600456351323763014716516276595786460377203836435919088825613874160904375281227000767485666568896633121701123380184680303554867320151877046678623041804391789173754239714626931826451165969380604560892587985235353709798106041524325082612160379838289197005678084440529830408998842428580180980110250404100289204387246834061519102208392418024484056199102512238481714344449782869820253831137549819354100560834520919829648304830291556364344905740765560287100134317371129768406275184838976504732232458247642806599767564308333546019171733939743681365397785671417217051549031813013225089145519296573477402549744024703992623503377225892459370277517661567421538181734950246919269206172368935794921071366366497510710666029786735844898453620144214180182376260244895969305302656576943932922296593479741953830578087231601886645079425740643337008983988528376311781658114979804815191793905255392983947854296606044846027007159687748701369823225975215110003489588336147864344400821536937227695713647308071268456858196096793594262859562958528977529216858866806161518329242934352916599714456570205325909640332117608817315249618441253678186306571390690889891802150546639679150762761143547075704290343966823256994606708996838809804462978033803687782109849673301587910461622032031122063982799978002795078341289333003773936252487276076991491424263817540805508901483036604254763002513458565927246678121754397992521259015883894820664007274777430684753012030575259535791396450721078458644846434679036191483456520377849541217263981551105833777089601006484361997909486851505120278593847466916749858539166199745580779603352355937001423399864549271097662337161841760772802623628904966533819576313286309021520780945703480131583803447811847895461455132304864907553212767650811692505298583335507743201823106533438456343274585049140916977584910854635533392632433321034741355823929530652453246485259404008064667324935795630741507601124892776955653064998317441960431638399252797535589279178617187381222777718315243701294809539406925148143354822277192476405130075444628360886034312663871764325652347037761938309266750289278518912655928507509130370410902264064158948403299740427609488723621475387646153810407718255813012830860258505878853346569667702114618094138914661883176296199371307149103469868462445358808077382219983369860086261527135840799077820456742355699260085604769602119859374668458728629264695721032522141152584804598557098342079204472354115795838214196585266870595017549291677958137574101745100472383113007597207855495338513476414191909318317413765045556549787927227344504762472838932349756761617550220965091006113809853692763609532700018420924705503114350229825750377115036779469308395311800678170971364609505809360787360215584297740713618907648745447560065592797154587658240130327893941850786553170368841320839579800830319667499583445681668152858072542727538640122350046915420779388217795279409786036439021612234365986512226180490406508253721915891276002076868136120139078062922288051029928405338442913885541276800225742531481990073365114647604901459919991494515584425812483412718035022796176414167688226453735803232366968004228131516690159308949219405199940790994036881006142318877724759374443247353265610533909455610899025690416508214815840471477289810478089428918873717434642077990878423621076211610308599944632727451951956028406575888219280462019968581380124595153938120724048334555746556259588803981476782159530755609768931602123053632388995171443469817536953940541483435270028309693612817102515591274059253511944105247874898828551933078561956607661683138751131915162778558329064046013161617351244918604955743316642368999815967448010949227255870101885586358844464392337973664490613382051998486991031676475069902869693914118106804910301845927665302286565683077911261527921563238013891273522043988288368992840249014299585969716535072305365049328812500038991728924831705558311340845309090025362188647516638447675878740282074193638571887282281389913507953123734719286029878010536941477359287069599092688344002598136645893448188890367253964047048675774741385423770432753364179241664442807579775826196999625846168655186566830471503686653545368914545775771446610302570942245209110578531767929064019605112761639256491053601706069884305773324348753778295044795053399360829298380735184830906977175733374120009944872823097370205333614776334913974457325702649465140047482241936356598555373711373458221481376934332766504217403719992166671522941021667983661022796218480759375623808260539775767624201765428765856311040171186530988955758281098440791611880835242485101896951261694688885350285837682056585801838526043961670447986616058733779233083202769307090764155170034979302929982541118342351003377375514016997766615765613894701381665557955778232462246610751290402908478108611224630825154974029865520629782727375394366135954277967876244583341425871866885215544150772653350136667539523774137342890017664695282177148419993904816007721149778453909893672155853130437694912094756248609179336945074577232809711318751907738363140773628934315650307977765685155024758031697869908715305648736261247287839016425818606324808681329951131738560527924721521324205694254837687268458804079974496394019021160523788297990782656369481194800019583048184613210958422620705632280844513192886159273762249524195893785976565421775003857855996010126891110873530864187044502434834901574016801588384005893514077170535571729397640221457974783614526105634795029680817651491066979595971165965304028867805372809427295997509239707676354165020086364464590904427661204467713016889919627487914541692574865293390805406580291682187199259827725382420923146234758121428015005414242609368587401365620500198798165035979622471592389368061830477595937335769345091934202632185099541174679258818085530399970263852500700574718156225198633087257457485961155693762703387975978269400981155722299329788777679101016619377082676759004337980415116029844309186378141027054571051984863616898970076271911130556068717063731479349589036455184923691038518909570435826414563286525393878836435090183107843338012798403983910312257627099098258767755409464729456680428503017097642407374685366442747991670724250544613070828714547116453270546756056070382959480514171897880792165426044247304295464231040204444929806620621419990961900072073251790747378489883740909770077668255057425612413716356323105192341764963805975317774673003866502031051540320671816507188928947235966249521263373466661433872025011153551288854135818211037452485868166639870489366289880731850326383641731154394180852403595005096727255539098014943849808600532098690294050224434654103341499005319632269286015991200251948619197025881627022809207987318342649011010347228768498640574499275048520886887706092005530095088005865369228801953274601988654651805110280531472291730129358400396860478717667827668088708355162816061546854870657078672192042369492398815138573401396324228100743558523426934024301719753792518220741052140632878847241126638144036518862711935103366830667106758636044071589697456464046594418329907794650227525063098618189965609633204129791685198375400971841496850505544067500067896469204454929823075875788558051640201032113642174112700791349793015832709193951724516610765954846560233611843621039281868475562429181993209212033938801419756522969315227484468287274797745739636672779071255606269928623586674690925377538480677908211271354520134303774504600813412235407681658612646538174206134951941385005856799953648124097937134790831444316272061760323375933291788766718076294177975339388802247197338716135413701446252799733959895223289486845508954797101257787197565147920604050587122205411140272309227407528808390185337717543368290904387596151984092698876208076160919570618098571859529550890833847124947210197814485258930134229641144704450266740130470171675619692553340678976624756020310956115269224200796659374531813535885793680096935387732968471708603825226420228694558616813686367397173072174092047790632832643754435351233470006643852141449034457833316916059593872484678894834254241569325895349841105752719052342288292922951813171802713551688022498250910438246854569982288917690868629965637741338995890578365307779786080511808595657543485088452491956889591458790508885699198828986851263636759864221289299295414328543191023902497464292359819915402355635792081358899293560113527962699649471872738274252709862165718058225817387685739651405088246243209565929953863414135216424043222971522688725729443893741027316011168645106131189943253584049863265275874537404974836717167717662679853413531885108755577778354275128362593284671225500302241244407670573219356002290685162627511521910335125602702974359155961910985945593486009934658613288315078132297785693998005478908100513307214365050598775209189338899359512999697523198897324037942044181090930073565588205334928456781143343203966017237465572481507846330236265854932188494785676929606004580442503177571265218186592092915412110429396288185515868950800607943212205249619816400207360108741521180996202797330505030827562360577892739644321437602556497861315259366908955536027461964087592583635489706566949215942730773147630236930044599761937475057365821965715161621168491812059730560919483047512983776471485456980906407359739099068785948484501328393921465678458878380844949898741053732522907933622547823088941387450155331076100554789173168576774528578573764169533843934811381499911359756844591352609555208632332246433869168990423958949091710115238440503558075319194063608876159431774448243266679612726865536899492616791203829877157474009843879547555952369211114989755550688845835763331586968544005703375624481589078184772119169838335141368837609690911771869219104360321321002222880749117054043646062762236769862578127209055013703440491919128478334796998219168025564629751602683122035690494447729874895634732591642997237367420397963181062602070607606456874202200741896390652694000746560075963093820428935875058242560297502158075148833727790958404551674290816906451292153986379069712308099680752148021814201045412588336573074740302216901814928072604620287972629503451047678013871749529864666394035344927210501017119149987963714957664862623870501409017238311254545374063152901377419588579942226640189640802472302920613042534664361807677821517134590332298874838956162572284267746611826926717247237445118850815877906706959641551687047092967747441239645372574504136970013286999053953036461518364404785728614999917141169092478539582005493581501720046713244789845659263842502983855583582495040776655615420772202371982816935423555678360503372606442894356846649938891686775624664223631944416123380863606775278621771539104608948280417478561886298284532902005914622287959923074421957614597196600555359343554214592540749106998407930070507031779080657449015679547939716872694282232342536903809065311425841390532199014598445259389007261836770637399773013427063686002395934210601096890862803375327075396137322189425251237052180639690680751657553908276594441242121112409183530981520626779702734472763859361248265223638522261480342234674238921020899318466247276279555315411835444445711443992639718755161046209269456777318887779236436115516594330587137219456170505193071588734055260769504512782242553399735866243381054471995171202954846766529157797178104785315439713099692132036624410444442622931841716819316421402923502640801635491898059327146354911559951326950488243672440017484410243868803107241922403390076103009189749017975904280381328941178573974029328679916426073684599170397959806960398813883405539386450398084827491651288862415548491473504474670822152641456672865436575338101781731085848566205042144728734578894164153444164729565742593799888433718761452862621795384738318210498227546950794552559643451716950513400494752609431013787707189898995642410703698328761110254194588748226947176290946815604707402340124194937268339717939547263969883359888246795073871097419538604953235769179533205165714587811467908761165463139847950163005677756600459960126223928510651342674504584834948488916857583520952794577323268465417592245702172043525427375261036243080772602706023488674578761290286330102363100541617499201850480923596337997133869650671802651455503229620838205510077350157817970020043078642954781118221935231554434434078602837719424411628128667076654967440612658705648389059720317976088388485334053876305133433689646255506426040102563285612422521984798121491813440583638947139821774564790697753239422704351208766600002232414115135851944850361720096559022140061830714892913889321501146909830923979511692697801762029586498736055671142071450897294056616095092326632556286491033063585903356861550635956846548762574050119262613866251019995860658451862660468065999821306300198593487859934367405781556874359951343357504457545517757795004460952376544998364821099909843046090155514428819218226570680186566398175850501144405062586720019120452951213038714275492464210345331331450149228576418331083628629632527234749486546321355445491875134053206493694956463021838543251369167699782519849385293396476170318442627471460461068002974757810529215122875769509080196738495245508408064394373914780455544546836294365540108475043163705652393174830580614992824576824937740986786982454583710188321151798897813085778752935931407605030501780830545529410744277805265709660323229452447418984492667158946516290892734575301790698974809349755352592512019233470078223891109054078097162407646857468071441346080840227195334870697420193068310108064924874316166868628863284341865372752159079766216904327453407657856869761279948019188839649621058476815458638873783832063538141994668396923936387750580652996173533997242662047472147636860144442870092586510266506331641678985172657062385415765165169851595314594502660454455222901891897465214271846319785679252646362277211675947563663632872323056872587448270999958371087171866469788781310490611291577951118408587864520319413014358108071554037020242733744420053928854198830178779643959876731576106282878706597662908294852738090528512367313971033367080234265914419120298700054724341756591470085707329886652347045678740891186433326730225203220001950204758391826513237972384211177355421386370637388280114543755406317869102256446310175600541728252353220847339888323376389640688298042378672511760953057396799368153170167870618037478785517584565646829865021333193393876943181998670976903289169674019087032395032249668625802628008691465292178977385415081626623612184388813855357500706474257897701143809686181213946860333706645005755300457192161787078901760534651145317612647660183002915687246814484406721523157200202579904053335735037500921828957777738872807631784109067303199762251167699299101322110426405943588977782909932037174982207991546310952987107240015424935730171827801230426999331413772913442704015336225652304073129919110053898550260494688760011091392610178892839219339301269831549160617737661304900494019409611243612849124804879592679544647914183156499565269461068755023519180881784560470863614295169980085037467729408934129488338803661401095692320003390040386696439355468129194145976619813804056034295797875543578722746204498505913291179165096873762151039633968334963951996568263082758819768112558271547774422262677040989434970251531354838498392769832274064278333814564086718698864302311187005612987762340343013392010436415577334424929638319613048034296606196274810539296139591294493443969076067731079468325790857530161300741908612180660714464649322096950971392211714455673364612248946436094087519718567682942692465421304231221515216395447608189256040030728590329865043203313408397683111457455099132921920872529725039041518872885748619044453555656034838029014312255418995616955348197907754317081545668212669659678344229416131286019605415085263299286505262905344850834220464844139191056264453744694768378307654840042519026480761912256439103382793040959208311880895997792335004496653257080932753177770585538733885026238098113300461659059226807184742278471561207553725179326834670601683723609405825039979283717086754507247810883598355308473210998473524072500589376812347508049953557376894428668603658120450008213908815317931287998517647242200451417934995762137289758074922425270164452053807542232540089474973431051640912351302797942574882740883951804885000184183892816881632642560301838323907576657844245885036206385053700816231469087289870450801586804783657026432559585014297000428642521804421311525763915749683832435155161138205978070371869509429934124421008351734157602624313362661912169432084710804323119340468174376767117191111834260401945754929626210832765848748406171700253071185652775882945902990968601032558709343151651814932225043545476593795175107946973561765526359351006248749790576666890034174541235113248597175429942610943160639110247164264467422654964586493189354757581869608091527679878906597777035392622866236171775031754815559895999759293919234751786712832278002609629625631536435833466442292587388059041625057580722498955293351506238968176892129487292991527934553923937411180225262821387897545121138778977557215684453424707253480885717682452485553668426361779731712242597414956022994136036430765983434955438759250802930718208202625116799489681878817362040608347403069348146473235080393853140667640560674332053919262820416445609323136768068024403361573297340978083864816921039323695661145584317167916584932706428393775243501887204155516006012150063707380753123616519402756683143909537748531406641191235492183193630068580797748246097282629782604675020668037115790842192352240767499400512448985447483169147275312117144745793723226013292957141892566846984358470584815534901665983357464754557499998243835899491540798885595086042616714542045339506038002680646350707164829805317794251446489572578503658565700405186551973760083615607952418696148722719042425271418158951684879378830539886481812253777723081322019649310611195487069254748643657919688024197428649964387144276637482056532610172406383215706819188776715455704492492851569573709599241859532165650861447247877122049581163835854829569008467561179722682316412783527042923098646902640418237285100503183065590559706198724449182539840668488963131801443947453284975452683367952181568011938532607322117177890828596623141646886934183896216458281611717232426333371942753015341814543784358172303777911097721482533793700053615338641798698451238221099579117684431235618308679282406222873123287935183667552452575988311986865726921689385683913107724490393460230867113369957445827887901497262839059392923826627020650767644608813117071501630365614781502173581258793953212107223220070794776882703664433671022186621845321720063604282516393936380401849397722297295131472241394617804032387641300602057569878625782722184022293876248396312334124306362433141404572869228203542942919622906355517103354536791794065805107229133929778981510842908023209814387687052768102736109793854430982244090709708300532461575898665882336652200490107317249763783296560678500560975509532692759768980611198970020145936718230011230363771422455071055006738019497606600567252617827958021565667631215414407716364871854935498800821144403064385303687343174823080345759787871241586161810214248577836131864313673002262463157454122382764334444304261003212046123434872416348797621616240680233417656311229527921890937328390095544476808932064397975790181511050102425166611152306581815879295235824666395529514829649781462934858712835475167393727361830073180149354279460663209658656564768593688627506488462009800470960622346462737462114907569879471957620569584476992231764422494415878569626341514469764296942113445606358838587216541613438913928820312330928012217284940884195701861399280473251545951984401289204332467353877543837182974613296907497600832104748056494399275828216827474283031075860121347949714251504462930023806895209128610063854820675449626858864716930152497998526661114297878554714692593786042708914397754829750098060250374652504455111467581142721802449605643511468403289967567812871064535756129679687452751495511380466341360531091647938650779328968247125865188934984897155093647462645870945773799692017801279722465819954319220435875875546787469390206657916445405885602895186447508090130385321522158865721779547026865207730204348893304377147258153455650699013175558102276877753940626426276270926415651993456456598395601016826507663894248893871339727785720512878132836221505345410259873928374495784812333986814630712048922351431449951836829855072266210001216870401316403764451867889668387271181658349050664247791759702277833333497800856052625638487894123116329158369830953604062117217326218038969796360696455848577967978884922540608980098719987324778353771097178295733933906665467954236447160618693314725300223432549176948197522182896864122457809474147011652505111726223698380735432705541274474300040002217304305822973109282857644286688062814109962060305627867071492931229671057490503409577542043132477435192983009663551824527700698097845712418155649639657753186287931015876079287145406251638192727709708396558348140577383835652210495436948876959897224580913237100108889330687759310111420424573066667982319774252279626155538762556952822906105974979949470163034752592218963764051316320910242288229597219484653646694127139710573609673451950654960212247982843531668133098975489954035549830643551485979944572029756372367464098385605041589795219572874639829073840516754180244994427758637793189284747867576179138032308523359175268056188139055031663462507387552348501517793646080432149651769152692077077559931417035452311144451523839825209401645808228131656967870689171720226247213540498676195688997235429621616621448513254469396888608974145470616571797997304664674522802748315664818281184309612789289254242874106758251635641265686252626019514049361586777343466577795072468426761933802640113750268462865255852709029158719497904342396187804741865356743579055302689189507872344540533855384163272897897928252598877846244358880261123712252598025696518522228452047865836190508444760194613245351932410154179651495731195019309765491168170711375579454548249696274158261305111452698562714142957768982670600519274267393784107337541402715933096430875699701170082295853973181861112969390459811126915581483972122797042862956124905651278030715349656623110603166845954600978033385625751730177474550887236979092153556339095804329804815167350829670520017958759484564020649236675758779389526645458449093699462444001315834179695953710159570498299691683078050189297565402885122966304154429596468645956830188775976542297752759218637822341342556586554896277470768865198225902744244756271339873960602743188107480385736542745771605634805256723695652037941059539679566116730868703297957658037419827429107785350635046650778975000979367007531275729589496154894986434433620879894325470746517702991113480240185994506911098486421103927291401409332456718479127445059285038506006432003673566544616569283234774601728060234521984141993427457377742323661491992320007000583943853880213983154885932684239788643986528268189096479763681291312144443167166448254663055757728372561678794881389071843849654344837869384544641715773310272194591852409544570701605697329065832645545201500139467825686611918270248050512578409908985731745397115402442917748960071793469790956333224022020555623279089960938580922516757027019905774480545873985331763092549716395734713174315118124344984028746001278877904641875546994493919411400324815202410038460977574679588474424573895686932277579754530063569112479829015198026580511670661115350767719829581592000707174763413267663222826606215281426735015016920707636656295965226298333850106673671679800714365499805446306321037445417985956327663577969246560077164301221075224978760686689513578176068536623506858745441721592500695991742180884097468156027745779768769402937066539468733033676756746375965611034757629987041120449917412807571660119208156363621972846898732283595930194907871189298521662974266180521830442402667353771499920385583678411833033120617495712435025556882421793189693310944246718031329042027324937297158131434786859120938644918878758799631982293505450930756414927807893048800243720546496854266892865060397832418452640682364668516430603946036677301240751809295017344681710449505496398539308367660126743592268001694684973927074308341094640581575836702372050779093028436948189055948979439618856435737018602269470912111562377020738905795167556031940180413974827163263471248668102731469462020750364606269118850644042081353943368107370233962252043169297620509372791421501474132445771428011853890998513157444658010130697356236667961511170206587940587027307387789238331201580143615349984686197459696181122144207687438501589138601553274644455364888634492531954741033856045931717670984706167834441882834137425532480730703452646261040016799464208731617940051401533771968479257913387624848191767770149532734259909914642881034663954302466127053748846714502500037888815936370960184409181469626039385342228440527499205390284814918243983155591566784040317355955850642132523347013574686844916257206729505759849542946398259434630831290986652927292024836936733127212488114575395552661083740838893004421873828878112012097078235279561887370195538108036752211630122876162411269687838079027840126046210953752686140790925924596026824128395526395442298652977201107157353844868463874764371451385920918813978620119658025301831877969243792661728641979026235764442203215429944634059889797362488261614646484745476103736595355350015366154434739690367407108447521913803642906304407628090976138815476416967157056757331750319479927977725786018059706672516933694704192573873670006518920711946125224964435997524219784856909997788015088346089627200727966498828376264848505161032639915447801911672650273967937409686555198195940728325037077838285727546321527629260611184504486797548700294541203534877412166185998248003228737488163796363082414545315065325043948018019699686623202705649443064062035699612356200389837180092028986990784752766209006658405002184115758063525686399906541703509847977152576568494441168498437910486285054741676123219359857043758503930505144076963037439746134154057713673046288298599047319106731100643355298498989237167067234068440770822112796859239787848829772625471778257084800619141601086279033229140225858125588838841856547245170303061520178675957413560899880612713958974600357137486702979863192770366451145845690110859007574499200336295715885546269339302177556402509062031897897177241320755053774984508549094895296085875145828641716488820210816026906277928395821277625955215165333654946260256650915070427802795418038251181528567551698703213024587670675713121389097225027301614637084400000699907157279160115940156482736616752134076190363633971648395055929976364097687782928374641371933708506886238384022002561434686466283023798381563927253367292798436897902856900937778923416474325093841965186641281414764165688834707226897378904232097193942851387513878676972562479307301853563225830275449997846680943154610486189253986939435951996849685178795809612523811716519764845325066489633877061107933947662750158735074546120087984933549420056595031432607501621384861070391757404997139537400800238992241344846336056343962744028809486027907551284133508748552284334667658304787295960455385659672716993145971776874327944358512628518569541298466293091410521023477651744421691541539740042474675812760697192312105975902676455672524906209589318865917042400447892486115639281802187402055445970616420524621240068544969624907058119772052054838945442632652831951616647221222629134194097840208968090332028737439378035042251186376764286223965955169102812773417647106440788532028557327889452503766922575166099408423319051845386823487602816862695992382696980923280006289042838330423691392882508035281447262115828366273991987778951892825454105872287123638014458467750722169091896000777947536114472588067548070169644473559088092386550674563458944044366638906807964676256170757005863780216646128101799077953996964451438649038861314461640010569326433570505619131122433986084085150775775497349924273161577309913658062863066384322661150337952926245071794487894616575772724359195115201466731740951195426239219135651364704133047159338932079694607873505072366141866667330448292890062899568215737963448291892598499997117244358897146826963142092666907911052928557661444365290798840987019980087905935801623496169215618395103508594194480352732272054952359594300860775046878162807023754321894538155862414222905218506478456048930303525414696732023507605486896395529891951114768430349863102287051719703692225688320158083737832100643636495332167273525998522815551856509835316199264085820357561163088661194710015584658744060113161560911245207218815184954164426498652620381092528601765925763730442479668573960904696393950358400366029364987229590047904589370346774897702053098711525713736485084258761245696343214463625832822676623262541827119414295223004658121670916475771535218522106791750937103116458013699475665949697229027026173810492055914089744789706402497945060307054376298531160305039924760278966115614194552790248727018327023045506984481954017291903012419346563413800255803251377348093983691954363683199105743131845908514304547078343690803364402311225814160662420411536330766955318055081992623273388911009240960307543591992057344971860399787771371334250486716398400770631376401660268161470535234211828114138516630441478096268794599734826347086560824027293568835354060765641874740881603177170981388190357290376661310150456521564341618803063441546159696043197375246141902972231982264141454610251546005920884670225682325815512277385663661239311268132173773257147863871082181875733606054623559528778415549293987145221089254756027909711292958636320586939626144275106429791998820388903529446943232219027291549156949603872983801922849351266066741174209345617832283543598300354146462574913698863767693471134875442722382026122105281812621202893454486205479697080355853691022643764922116633719648262518542686421962434934791069223065522034746359645709958425535140019805412961038706210726470605290070651273669777291515517355375613626219596425679407977624627852347280137371788957873806060429950005477888146512232544329167807707261409172741780020284832058375947646483235278481235759219962066365919977618477332442962966098673618471434031473734529003020969007160400114010005188953284376089558049160610541960859892016974175286467105051084410072999075050998587397378253909554634140779101744584082958035439285400109536778018369841944587512126318607284397189814768332608832102037951217120446237476780903260971226854599204155651339965556515263487453243037581636052962863328152845556770078189897797675131707371183900843515274758788422817306819559247307486103173559252817881192868220786090343410020698879640809613715415126338952185856105234241572934017821726698409386463971523765586610663889466521686206336415717948738741148134209227400174385286059363716285811642748231979435332815492537963396010298615716411457503529601396564386585460580136270698406830783641912560825198618154846269840845752519541016144911152600438443388130725631170396759703702322971039832271072856833411055567579269571119322249073058640043366694757728023023313972237734362574483336474358925084367769406038290903229090554313564726467555561018871805725924889326425062293368626350733334305834800615311448901010893988333276519483071964051711996354192672824943579068707162049647997394125972554766746052822249075615867931717291900557365113627228243670431291975785547773668725803035289657216145358066340952191283268040505045250581448194538488161340651518322568023119464336484030743271526282828938141589503474093008962249171437285428071169015732640668695377735362826521620682387789835822128231124548151716793516286902039005562834111569120951855550736738735608879188359243738239963501918492602856343468478933435307552292529859816723395200536979369281030171237511501684592217683759316301009512127121751646801887852501980544091165073289037223773982682893610918601690652092578074550346144951272409364204786652882499400346354995931406316524920671541846073213987109348551099884506134172500391019750961327969112574446634770521202747280666443844214551512619780711334920844804852321368575964743935816628109403208223373656606469902860013691451985344604109546260536783150951314802281775003237303333528451402847134593614736131799078017708634967126357167099837069304080785606734801347855443227096368115711765793753379464622792981247853108323624784425158176797771801525915811720364533717687823763443299676419172926259569618394201430261454205566666783882845685047819186961895171354418925769985183205671218373436131717585802017277996108642074125811221760456576185282262655375238009343698092460792346402672944673131860207267247642040456074551890727909154222693540461689647855106122561091362212045681324018890128021637866519392678037709800255528786404426967493546844746631465014699488217279586136880981364289757854407978203648787856386738859776922623950776266493243255484069239328058720336942586350752469540014958965553694043219890311704096676257214100294666151446695409884296386353414981443438769768349328894015505443693732538717069040817865500425223967360676318153864603622001279935135869373571011546978396940573609771216187631290689996458381064383596533916384775616499350162434075317513499737833818828974481980118551079147393483943230054423022135567500335224373775472393213736786026895498786356070621914515219918394321367442372897293816228151669657887565561023770794069210192332327061445411350169081463436981478003797399278181076537057442947087282624631765711317363344809577999392437261829073941089104808192482926160110073906808285306366869709082849871299702993203190702178593426828156071180312050799693536630282257542676648793976065540142957810242409694310511714147960339388630972399242989027129492235811690366518459457850342918996609409669632257004777104695832444768043985537898754445099910436453118622057918815796410462899981299462561911334000883409182579588904307361163130567398634022165197947947675893240515434576621199889138859727235811941282763669186820479250607064050021807024068801734026854033926129148445905735025434503138537105242427451725773183912035050652032993221825871361988684125741476192450547700528144733618271548911910037506116814861821955986634870171819615946294660469313451534471695428703017801947982921866043514253486966799245956179488739831635298936571543779690828130462741305030417957287627437933483426527175664033221274977367203217690158246925302553917607185025562971158094142296436366389529927506154167157386238659069636086491235908940610255006265432295339197238319761549906782441203840725332488934446512835378787566679464065583785501202187461718436280640605040297649732161452585178636086697048842293624798660147582367110759688102219969504988640258536480050570069007112965235424091444680195422577177883838876000822940357534952256476487955831488005930990280805155509972892908317994980291761777283474528547078624545758228320450945923594575367936370775080262233699425326275130815044346680910102047414594251101290343974090160306266619831514894704947282295542866659939423334184638563696680393664569966905488694899059110897750537294318005024408269366227923748533875546355957302362104621196071025345714961889492523022941041718709738973045753098106114438745140466339744711506533969145722197482648707134956597526637717689936189630306333428386802437799512375451058432863750972058964407972271119571187863054873195792221160903552654445609278241288547628214812546686219641551458318930320326264879388515463373060132290353083563139227401833946233369235815943706450833402152842360407117387740817381447716456973418444784374415100092893606305421677213764149638387409812272421245549870930116133652161563804426208930796161258254010403602686817685895083151756108294836407184477231466097303807791591359345627000490644969846139590384262230352456892212528790026336060891772686447881153998869090790160691798108567333061429088078951720672974063284775951901906921328473995949074843740339282357048030819692791446937315447152704905504930158079986422952291992737145034727270841979382448024609539828185365453174563308173741423497902459821099505503540713015907334745731018622751754194796497351550131437962978090341841707606776164892283114413562746816099316770194927016676024967319105112299701409990793215000007080203999560358373409010973540138685346490090630557634246186735729408422355766376382238850377250846684953254481902642278046311173900710475847281071247462847144925886121833137848705907088887161647348870700041351704838957163468655340680308500773589351234239252628130707003756875590781363101884812963408661800962417980449356675757291778569055457238155855927813097373065189364891744913060438702827696710856929276611351624993790139379037001311892326231211281758415160345002697425755909951571467068735866849140352875826836727675961688338511610987058841064593208815752904774942967171617681456783798669772308636849031060573380916206765356328968692952985328360960188596475717746422025928059609503249747380472487078450083628277508695103001302394969951140243826915607325996902811245908518405800075043544191089005045189558226620612937058764731127438323352670981828143383095334554814241501710147590414014557477573593527760078538846939626058179158440365120034292234769681703961463916649501701431301222870430170159474277719055567215949129830423440033036334750058862296188103723261682143921493335426701614513023032386390827616557771243773112211252358163920057790060679530167605569691057022024442663475930273103151401064319865289807923766234099415046531291580424056154389823629420776855351270071987983178818553252080917095819944225110113822785663645460474920313368637665363326767813242599776552754582993443632050816379498290546513720051495704309161536419338278235905707902583184969068302166150881143210519528706117387609291975568847750899346009542719295704958506169001117617936405680281745643409011792312154955309694430810890173413214243893261700383108299874105453622584540265802069172429477883314278438143795288669240025445877853369749968394703645785654002821724575736493630085025376918418694742356535351091049832654538904864859083999076474678259180643564169501098480725934760604338871383897223372936572447385478711570387964919579022009442024113137771472547858493926662235292795335620212188434358308430029424802188264827387523752747026933363873313954040638624293867902325283978478922768553483313664165724733475048479727101677044361307335355768603540980207190764301616240998294067074216316547776207534584438696877264769116495381781548391571750365499547737553465859659615262170008340119996449591894680558811186897185895321167470467514231734682182763846694927122763691772896053115240138207625783352920098403192451060242723619045098950862275449448197476144644303353600391399011116345773427247564781960883746320978621951733909586739155250699277532752842815111211545423146261157633943820208350487019930247891890409565414577214113359992330136120235002213787083266499833281069808319852683973902298926371972484917874100732949098461714002517897815954237900346115174231513883146834732324701098455366973383925167435278829224214367212510138319885727199398946820989207731333715740617989373448975983071417951191609690376769954829144771826299942874065940697904533539422741791601984420750114619411625809757103688718034071493264334228435075855292191780836785048633608101778534718025676612639226497467807657939597380332224196899821329666170562015225338079828428205829485059239586619969687329373137808165607661718045339051627282630853060549029017248718729717729372514878843592924820920162835279085644905395728314811636746635799709951634637996492536115943364064240878395801277619445210718137846979582579105483507759604986628991035909425275840591201820193952926362533692009583130409780897418090470053251908340777523118472456016527479431880062352008634950495371778882469056313702796594380123765174283161951984601594425511564460489781674290612987503299201521091838988597907719486264231534480789697125483083101330069156487143010435498994977401175876499447351636090831066258793974359520408187114532762233244714429261043493330038909151538937761152813080758700478767301806063931909442837877650975052404509730081935976781146251404452766586870865352874309214237542025677859291122104256686716320051129463549268122354638790768517168753719649984533054543264989021658213909083178940241831337347452332422310466829246990813983257809059141144466414342652843891798624393758839474200799188809254410968448084707598838116520211814732968302507070286116336683144627862416157802731768692552558534735994540142732628551016514871992285196944349061875003096444888036355687563862686883959491792147812823754139450305807214480343587266349393400635130868249954581995354972272274043045813627842355408021047000971968556476668258055426156150690688254933473855236306274867319331698004601926678898949767251587226903007208413020279948873441394374259400353694658634018233765336302644258043621258018349890157420398094740484062693062225193264547170490769749087488652368383383922600879048509178789926010902760753743148804528297833506369199608636501483575814050456192737267119492302930805160882724059604504037691294501986960370202644026347076073955139090421002020238828797939221503018097899671483012329457121064375052113441056908349453786976003225998159386177686116578501276409731431913102614929384223308295259445052099580743242204411599890291479200921912657366580417964023212101328800515483279862414264504997685354353154346396398312956783669197058822428459382824181540514537032720104372248030078420354485236947867580753727425016625034284311559565104417796400324060851552963948838603696771246535952121095818374271691102353695702666013121130312193300085925381239318252569206193785446947029714457123660615330408882064745129510577975577164395205294323506279753469889154086284229922362440364577417279424344805850638233289060199349386788857105305979761591044671511927045858984160711955778369187638437473713430937285032442442342894787775696591166803735872803919579480414777335601162516051252435177612739778293816783122215871966558292168164007322322830256347145784053384490839636963921905833756127340059383817657701170299324002834062052115690195739025653502991680994401119799201143873805630466939426515375511321391730736432577179491929649190851086821956235848677220147356682130940448227650027051885790214102783929434654200022445804358807463427704697144100242103033741019261148952688492891966247842891887496496859230600299177726854830275712800613258884809350632076957792993982496644386104255813256205747461725811155331485964911799545250999621075697885014545431691592708162790774636839387138240339202257666104591647719458278630395934283604387110555862776588041755914548168278399254634935729077713033759150585326231457885064961837743019346710458743806063537984833163338914332583819818807627260720226371904574681809549232471097514944361079328714737457929090169197056025555366691139767831792773501447372195579887549847757242578140736576525549305370502389194554630729084893503620958762309800483331511008421168690417949447174181976706290643818517895573367414673900602554009098495019457872140518737696412316325916536574579862425115542629538061608764709698540191265022974198847969519394107335978739105164130967850381211532550584558564379419157991777880605030880566436337622383605181273961046347690948303664995623059688821447267431783250433385190127197633117293336177451415406345011782328573445763695278102974592374848806017556882895426884803030698371284619632818192777342567346280964240094775683222599920194771975755593637797229629049075395638248861181183806545806017898174368580557311041964367819971683327083758690315807801704875446172701265507777802731410652970147211954509538311416674807822712270356985845297235759156459942201491752859545467036108088359354831981557260455017028803898259943015735554058723167973755855191800959664544061084279446533825561714910821458041178518039554155090822110680430780285112357716062052655608301682880176363285656821433226843765592435040121689565594786093672541348421529056809928776971063602347849139775773131506373479932527661598865559624159100961737226738535289503920745912364076846389079766648820242952896681798172769461628990834972811145872961021584583179455768955286969208995375484481496663689989536670417883999083240704503303906885524476730105608437145278378304897851038343083315279297111881469680995815698532349481700666115237830965323984914061507670927095488558003202441376072098158436539858861852547224777196656602934773799990204219592705943689868733474515191238020642367495957523092624115497236013519141319578246417195131818667539743246106664231691487736673393972018135849896700366243127195482509077987900117177865628274214005717282880473965517286390059687643798038570103947529409213701777348693601796501177826117899103162472472746361134947209336003310825498786772624363861049785077304591033128318892346824696490504116726797857655130906658666298284208516985565976994051397896141901236511809166274108110961805412412551557080193689744795908774355508253981237257086768066314264905365715786364354699108990793911409648304184881064621594729980344289846228379319559125792311285840964503218266267323482411932463495895080269741564057363732716475194511764170577461799181157223963052737000226838571701661536307119306751847335596096062121116147458238260787825729399389756630363085787059622181825985455938455187510657874524582078952953325777089298509117884831274484745222347270039656809242136849170326512749151098346577587507582453167399636531459275440859792808656463163881403802216501190925408540951956737698966699523981211879056236493414962244054398888073047795478187685772926711105161287201810052017217795723154317408472336575850826025073614691298113543628841253948563227783328334608169691489970666289370271381606565304839612297072692882155380327955430813995539540234806874364383807270631474135993665294721807691352137179127788470151415723772303835279756932722544069884807181388933210926700893352227440123185184268182687034466966984181995980751790274202528347876619607903221429037965427065378467406845291771272054822777302893283381833859423469368303392868310626116418114794448127852338582679859906494051357701410924259416757897046642579592929179821360548459547892718719211550925038812179646273908446279561766527248651461090372239219378905831572444739971860352980185301072613740603186556938523383102335880039510663859217118032503735193088758928939006373135722473605129087351076395057600979863663286265143110627700081161212014675052023857797063650586721057254979090828802031521019551231125724577781125951285083381888455886330734915956287288487119045884412005433664690040964583753154741070715796624492010128300703148734837878702520506488358070088384492015975602759016207124732380616757528615989527291611503924583010750299125479349890127986081772147377743304359841192897958551639136917431448195304974135267524203595948218712404828647394585687035265689485871599444215047327893042051662320136893492146072841564340359359951131792785472048908254555790267173076519572225275404924433524918712942662720841721968952048340331166880142907681210018709406052002152394606592661453170030990616690110604186928684618756473115102692556876232478981771411729978248525858236722714248153162248264777296764030552082013484026558297526873284047534790471914198914142337621260174089873607699373226917934616776243636215926047536472193299394483535602500954622318358643552294933276058508876653590713402992217849678072941894995782190863202236647553897214289924348110067241722042198956035411660223529547345502101894148469984276756321608595248771872494456815833007492566252608016207714221086173270590051454534493174826142790763682298851442065460990516380202663474836082680559209689257758162366233723686163665491979777391887052037740199276647729000824837074414733120075354884375567030633299571077617364457027919071355971799334201644070961829821375111874705932973111038776441302415079275681064795566606651762684698123435241948175477509905283892605526797790310831410102007718870909807471082407517025683116129905985259686246007132010942019851658231859190911206148568062637065032282145530104090288700537791518473695019868689526160645445235697344099674306290432409282192697819172350663068329682034166675410635565065040012805291314865717210241757688465721112422404568904153210347179040778839639662502948378445333950241169653869390710847019024460999695999690206835548197117791046001463575345457787114114589404195682915561065386698017549161311395728920058527733530346769161443323403814043439596904857663604754484583962215607581394288756539738868836261673982016963746856870646587659195476260179837076696810353914285442456207069890307763530772879004447442244522037965885737058340472977854298407292866837138089132417381573363719122359425819527597588515939508158497988343667730411890563138964535046663341990406013966993434771213836967399202531908890500815243319678309743031693294279050662068218364404377128870891224307348794441465716348736493599677228918104893037204223776568359301376409553160404933848555902018858538786884706804288368790543589713831403807450243840540456549230609350241980137843651324241585165100303656352999872573242491161189612127558326694908124752832652703722635556772449760844976823748254030700263294825450609970443726293236711221830559525212804234232849396401714733984347985053285443757379677297663209054927530486119561459689125940008683195286859793350930033558568330429391406068223253894228041519505200944634619002700983872406395672167392439801647505182299071774612570343553418487732428910047801220626333823597966996087602035075168327122186963997072878530610065925541186247030054872545551145619349478920958330988028955004348542651266774940183317713552937391157176822860747227025620812265903388167730791467057109641712024752049998149882413854180524352338329554720448712970590625488465199051186138455791449642420358709976722970824024098099507085748676744957577703925065102362556594097286932795098528836046151248983237542754873046839862595315175785176854125180790593721758959729280744914006217618256088885438862744962846726400122241022789802675056082185535059570817118643058905364930115755084119638179233311999385146296606193231820153132946176726165495736487307278053081398861635159581698000040302846156523093760062817579655449935317202422363363225296099762579298654911945541003236161760439200895313012858448874146097786180197448947650526062798582535381620542044186335570498134863782919611114635287254295148056524322149982250735208927922273501029191068534184348646075672189273118726329136828824983199721887739487588306923250523967493138314383200068795024450063327887861011198752745991555806273752047198299702789009315014379132903255550447104422784897721872676903979884991526284836753030810396470342256686290282086071061567352257692574565642958349297433720566643143560110704756287914317311528868904276155726436407473580092639976455075707726041524598610417349967823195453198157252198966325308417314158263692200202552081262301295108976984738010214016679734679859256544709666480898710728685784843609178559461008419649479997347495176230945506773966787471115684108321640937667898223996166630546184000542228550005995342314024243620715541397948288542044799334991828413695557945431354375234922983504010605351865108963837631138967708827686165186453865464109046693543165663357059142226667367215993438255766251294127154541804177240958517412858720110212318369515164883033833906539489130157526804897678772123798470649833974787705719937632958307135218416805516224041651475246340015654170501792502515709955674693932888574519483333269640923484435456380988534404216971873027046927788877508334155568991760417321592293511039725756149911935580384665837352612209379748200101436655197194695608577717690985171588777174491647530492910340884714025359834979244185803540293818563900646803595694889487601868262980288761995633642816170578877369228338295167074743015805522306530980120850257721795103256491206800668894975000999060936483946270216261263864413243839570760011049845087517580831123482433386807522741132714947872195322877164011112283068841580490115643460740509610177895021619075221991507735836712347293714678500501083355291221426764851626880795361791510783428681778070626257003754871408747070229369301770305953473531768448501117791084819045901506750699518495263646795911336370559748319114100649870254888789443889271678528510858050841289020110121229739054459009119026329314426549486289748072204390585103129891125808521559859455830863889195084125936775166345089108354327079611028226210580827191071600916383385057321190263511390602134367476911297965012964346356704832061022227164198785741317603662623872800336803477738101558313884001117710170678763802035236002757825114033612076785203753562282003352883953285788249147095885479004883634165414581683389061066475885251760040755655632206340294650892272468157776134304652280269059578013387712364043452198887641126212942126767127321392529525978721410644235209266804369136391294600520561955921121844395784065074682479529184622087688158285139206261470537033006442953935089799711558590486397677880255230514589623692644603563722450393964723120468379267211759094571164045856523187981629283814477349181296489961604205753073707119500211740566813503965132194305046389879052002499951669892979759865318326103161152647277275487188669475282665642889954772609140380002555381085884076560233573187006182028337905341955618971666692751025028357632165374743212024213874397911812439524864767785960216338307694291654371073510755805627577711833159960923684577793292341810145597579101205715752779714049679560937382935461545904912259568622570536465977941875984278385926226300165162975884540704574303908129510782073554302380769778719625525159037369173086558846977420474260694922865575050075820010763617477713497655950332959575835200562134328944994533331999915216462543362360018475237459953796901485021656133353941381932647677207804967121837053817487274478945675720289242764070061595893369517658954452734286035153229886182325082665181071876605870553059781778733822205040343499163478602864366103954736324294362927499937206190330195524055986832711017697803639040385178961392458433478717763538954011793313442826976726332683182131338373846504913630415583451101571734454911580502557537264773783187990483109077371754511928514644064872743485576160608995817413554358211189017583320190235482018394458405296433114221575875808250555307865423641187032679946591309170013414359137482552989027805613192331591380473627789075448179584221017927763933840647103252622847339067230978131635060654234000871031577458081155466026513566612457429254347315444101872299641138414039711902516007011540405415735187040508995731175397581158467579376842102051182118054106684246296206003005413194780905630214497795348484476795653119717501215642984945657476070386587621218650787192768106854475998016056574350138390283289056935020482136111923909773070189335819857783076279299348992210626343092480088166727433583892613036358806790057568135876173845077805900550077304930511905319988473630947275380567403704850975860615639090842330913476082004190944524748019203521800231771626407262104870337174438533449724818569205228063680356201024520920180530866833157865384318284630257199162841884762937531367299104362096158166272375299344894464330354215695837026863930359515375532642908042955085354675509201054907944984325154708880447667208412027249493872836503674587319380009762791853345820150645168042910199584695713921021597235843066495836477246256456737011510988661489390702233987775088408774843454091459652778531165145939683182538198733759836820976830502048383732229444432246269966093178305365866118517148656908689325445372379992337590611249187354772486227723609934381784699842703252434699888847780364817191484653891784880325610178667879994399754663353980800199059340361271876166349913670840262426850474110270963860737812721198918780726579066860883337867467493211934670818338255015358797406424774010795672257295306481245337007429584657273407228833467218850732794019078550600494402511145726912192335115207652413364070022224516597026987629151138877297283205902305969145564845147634881908047477560060585595733219757188421839026125108971720779463633341238541974447953265789557455229165561382794305688678731872397564690934184996859144551246185175181250918807124026080222723042396113995655120289618204797937605021434157940512169763790681740905794786048056027215454106973904056206328917741817819258460019400063327111091444828205387673281750223500463955779999378389488713859071215951149669208582728371578742739047776160855129901913271395745281400446524297519675003282166607370477014329317146239885327584431373593705259354725316140261510806850426314423215233839866106500275715375329666406166578415261468050484411933523226933972646035220725177911322694410517930779073749204025859556629229319204940879516291163193013677041564035033330714529302848701906599515562405201599561963581315245815822759233234900150018967321950705374073425612781420271069432363705993571569285080210193445660738254563321424992880682803712821462700988613508247527747392136050081140370581635464127130008933910235381337269707937489307386292001565635844811389847778349162153543809976604543268869794835797044763623458918160186884655883489805699427010584112352107932233298005811293822940213876984994184506995408223103968786783060766495607999263317845083768465821915874020915687613875549978651808376290020043556246540106523942677974032167380165289031021628254179898004155599707970818129608174004373132825492055331887377869177848871463538736388110537673851479827633526023680395907309882874258312437906051039966606917045571964233609465014736662793352836410054415445515456023965956922114376553052097600931602298622063772651905769226605219129447094710496289356697830678213531443576139233087878853047397251384725472178998288714330152560772295035840570936304319359937574902844937090255134024423046128229578719097717587512700543632312933004365060682095470199751200325944234115168162947281275233202822338115269335450600233496885912139389737450758545882401935085994838582454238147229980316263770969639624721710833919385535407331856017752092590252949081875622625255607460748478197295837642006847249357791927329264470296765591160561917667470654785228346345289329811841089595688213197389743525157013665259811288850078139201356602649028405523206293134756486189135698328007605059345764637923864034344737973510522099108604230753082837193443241769493494300787938482234130358928087449860249060753565625155958033275664214807086092779271456999547990127465136649638040716932391335321560478884752045950534787148222221189915708512200573239452821762243831369698015872772174628004580008531408299005120849496699358080428216962577487617191628191783054760956582015914519978648265325473785597713584168766316115634093760079711822335947180979322292064458055073072460644465276632926174584759622131960070776775512779622831289645145368441970919251577749816865498594180290037592241202212795616782937112147482018114903728842371993901327186448820832604823756525012287160816660435236680942089585987200548211868323577757396030239009505490582268406408391779958326536094683618397795657128466399765105567785997571098847763813934789111577703663555267026874823610494284202623539990232156533865912787011165307876762489596873099656096413147483422400474146629780793140317783847138323315757820204302247829633415063423228479213756861225531946389757778569462709015423938021617743023397241826784945486440105335725105031734961053332171953668862861085052090307484221526258224756345229511444644829310393181209692020930758214336444054939759507770561654581108182482399746189770748704365653765878144551607551747825283770773898646658871582635745726570231232535993518284397556478935407255433780559138168982669252888032061512232068593132008570648788772970596844595142668696592716943283467362915861950805510953837640533614811774134687996556216667068394076995211075510797066112089966832750428797083930559756919782250841397293560236530220340850859945616247099419357532167848940941029483058181444313603384725080064898516952437589999489893317367234622410194476798587902676748251801515542517233995630529371430635103511430103574409374228692965848750006918655791043777276944974100237244124353820049852147358287591980668649762565030937945813639893611098891147957645658775098554557646205949143830386065976562876802094799073781912866042782659394494475833102843187123265321961432903478620060386623415478251885575219785119515561877803153291280402241766704641173639458010756554443210468638019782956651097796997030818231400407285484838241992879191091304378637630104633190527822568595600551672923291591867989539705740413931245027615151054668129250007022989325228469878328379819022392261549320957416127213810038823689830830393154398046865284256139429889684304095620131195513518895832986603297840619805440000454173304235260148568636195044515852622909921528817130997192495128766260418718129422464220085968974504940175558591348270681410630219256608628944958131887110951577880290609139332268659859056531977311221826734995433248713472346639793808231462559177680396423259285990965004065313637054602530685624061899090982058382672597102913886755915604319673061929432205666433230635638104365701843523343580288020691307713072034971516987593805031091592524916085241600945954910144297116818311498859266243687722900177575976812083057713334246311934262309132246177059292845979891280931778694604720503406243721740373944873651466928347889665111922255866970153932154710212783587940721832918136281831131168530748297762529319785032266076963083357678461305803297473672366407802894845495657422332844688325102105956606958190567811012178189660005614742593419302897929777414977312286654168255541782879757838783079459854767943540367910172742492691810322398893985310392378073438763333661185714852339339185823121150270460424650080424672707842187977108443416863495687933764418695067621621669698213525498419923409338563122428813066916638427748465073563691939045156537954752028970054457400061114879404828893649773361156348414213016414096456787880493060471718821827910707318643734615285945905531943549548798350715009595035332243701610577187113511431039846191244246051065660208142944151481802985923770199703994224350933695611963331353056708913282495243307326330985786206324653116935805101655763330661942346007700672296433847709036861706294700068048772362481517440044445941874501147497848251517417398469561046202850822765228052099599343131716159910964898104390394110745259649641209836459306453259806150812159423971253896127014348343107881283796873184815216230376924904972828654669511364821765859439069741372557135321772201199753457599080974457215303733079576586908511330241030560823289510679450685218185422877429004723697676726755215384013513768442981116498063958783329976916454860877503226744448686440355791688838630415106689602779539886120801022523049224906615948877461636142386519807072722839304740879080141301137629125827505619271767300448894893389720999569118912928123269154942042550299131119352884978558554347677829093038586942979590072105264413059723797404823682238221236707819485334262026708717176042419408734563207382486778797678934886933942924243108799212427205147712789126823797878067115337779522698820573036581832083325769767625776677353955753375178384418913507864255737155993186603398303044529718214598264519816818642996677680757801358260229853011314438960847478488221970081585769816385902672489699636244440314094963879176232398246744498971333680033355624131163722076292938142461714921542789486853242400573538710843836942244413276875571570357594477407221473332094593247078943174213163921983130091123978776781963527528391172744962865368654901740868070595952561362423483337296370559106401685625060840556342046077103327095610272219597616965159124148610776226518648317814272134821072495662312534490410199554012192309040772285837448262236007411058953732002547720174903342504506951556076138350905373657161917786849237715165708552059830481778934037378119554900414232722180708735382172977723336386985285604965342909084564510592211401331428669232676746218966858250620237179288492568650848837497613673731010560039872488763946107610087577403848142191683323953415198728625121776386773713895310910537632202884324013712864320774848000269708457115055883418314010828987963392943481492577618497622567497843595384661071866131575757815239368765002739345913266489521453211541319279375289682682655784481959143814179304129243562417005203212636982222174242369063313392374711026028771217633967084436030281782354751718180725442528605545943383248709706008295417519686730988702481940294994708937820919542954457421078006502411612187692158134312807105573329725731965587271302222106679603834272548227494384064650713073696426027378878269056728519735141786831572311237914875981172820571439948513770609375736480648934087984401582406500505112963902051473194234591748022925197258280892194521415242621669541515945887530326505735805030917372339943583235099559377583021449782962070774624244213270917911753238213994522280810918456619380061634649404982577292909466089352771623483280750403320549316196311583858314403830094866649865022865940283215000086940868563728212947341217906148856325773524792617879694492472335519405241657553810861966411841158002025603381127556260787057093271783760640517108442307127954543840781133520183683421659105648923176038546313338608277245697566035982311274917395840080828506948722662757966292206580061268168605543163466695238401851876146820806628976013501688825007695635354532223708659478212949711206135888922417750580072825535076425729736716723618669496677179149699937951878840597965442572192679279126462849770011137340841362762387866564504376415504718308666676287003331781865849304324413996757693614425322424402085419598643314575044495152442233117523358124898786036732728839081015089274142076090613556784487088865486842162331155741774736422925215664375854630804490004221558375317904228768585255226128226697554072248300474939522856584584980457428767731347691908403823940779529298915544473485628048667307844118767156026329375738599013245847856024838733184069040964715307455115226376082319477383472899180154769207319881585879547810397298714605210645398272310273459471654475750308075577934738068982798719731737832993487513093026333226826457497752286718114593766344303899035033249311831111675198591205620662409252358910127195033031420192925573334740554672951666715660408596761611820736323189577694563195751937696765435204747332557953301940575633757223430038868371703918026607659248087752231845135224026563850603574404877209614772821193530681067326450603083004572763440252528463097722873435889180729791602912441654079482792440608686183168251197044886945956020486187555056794993148268270420813878697796069026013180365931891691147309244581924080963114332863959451445184619442450358843339616056577942792153081238451341653580236046272877130250220490489468486871137846049915364316155596875082142377454852745862970305361638541343069461920210239595028763815296375643505192355885910152150000862341273219237083945407023200159085529544266814228121728297743583846863656708697031120681514092716690268994232641877282904015569471302619872060961948820304095179664817152365786376079053643192345068227840796178760743091802054007327965595236833174224306439253919290145827656569714786387437948180828359080705888167278060429574546627606944435022983504174337195769322525049846626916098533388171449022274333112149510520509612927334516916510725616345599959527018012030585383274127774648039659347775015234488702550918182670461340168383649280473470021753512030370909268919294588316208283737424391866981573239716918141662935709515253952534153950637690218244065625821960600414925572031756142938553435690531576485783934741611536385263513941120721248458885979013915741877109046854857312152502112980023901208624610103863982492966059262697117804497939115533374179528243246554519749942119272356788508000132549143555343380580456057800111567124265793332086130006106781820152382127291463674436621734935121042091032349569176958970217573812054720346722848653916923752182431145591768207935823517661700234546371065502706119791774019211817821555787751674324568613804073356834538220370154293278690219147782122491806985895294926516890138262075908788593642867212861500385154259678207323926866981462358739381454347951680046599700854077806255278313884678032654042790500117528497610229501494196950955994768566887763896276079761218769558920865638334320470455399763629712621742741378738624539312451903217347952556229935285513580375155534175300908980271418081337811961011933634063454990199625289326858173913353326707954613841292085200457557901963999491697205654308137489144606637227588862520084243659333965981699050651360139454245949302656999837430496811593584523603358044428803966267603091483764383583469820460869453703096374461936659717007803509210356401201844196103342466819565774045625042231413387901323582935744408848900287355341076182337873054703458675809249014811257014235700160994229949828434100786916150836975304053614919657961547216735124498714549193537911333291269217433015028910955729331618228537437327699889971264923229625872992670659064819697667691022907350314472971036168569218360142397910325519626725002913826016050458911951741041112005365315612596353150030291236475911034976824435131584348588056281016845012431362755549848817030481158485078321117305562676217843162188526532354704212896994191942197041829627371460859005746644940122204728675880837210043419970470077645157153077198504139670609401237310089416118319946113529092495170666540950936514114502951940628543860166227375479547418126499962877805970946201455903134187301622323087520637136498140027004091062107473214468497532864500977154097526043748615198929377935673120706783027412945900287665223977727203021379488650962661684637239918764912067203820034144271187147748690528076464788056790816499042623703604090566548496761075423153414143481152467874538523653836257532291062513422510941859584516899090009563200553451745453956666491015682784267451891469095641583208543571769685531274772848231367515517592410744901883580508664986277918211000146977958489379482697244742840034791212732192880945942026140595255791872789390253335209743900094224013386847256206037573482593546355878239678301522302457505510902071445787497532493223373511498513867527845915771382275081512811790421080698274992606665397094287922120461411893814903359125624657212126497349055955610344536428210419222559027996341087792495530005442809337274965536192600147918738881367250019062370209975247894455845125089262709374886867286464992818853537935837554095745458542522067213337469556901394918690350359082370251137196435157066005358993490326752552684488295517159170712004956078300125067939566644293643542105276258985964397911558064147316822344976670681357328352572745956019194624258333749117825133564377307959515924397064836639405836419690386381879471859904789426672445067055020301368334862299591341388105926220952852450110063825950771427795428011007999643395354189773526528680049088273464619069962674600994285316489807509773929100364072211662199459128335033285731274281946855944306190927129195104364849735769135600919616110748650353360293962116795618456895095820085106653316463876079986630658685799030691542617674007789481586233827005490704096975118140705484276075878376989560058264210768078975638877107081112106746581943714242477760463580753163788745846429829124544957016073447957996381252973631033030316044888876382845447965325790987360462902554045419448076028524849333151860879445766578220603044225896941033644277539364442441143297914409603611512495814009238920147503023235599711098660257062355288373606321064295996720343222412113275577653813599864925729645549568348282039919167980135868601519431372061859591028802266564230529164237259027567832206735535920397150613359592334435663711776244964785336340509138415554547937222091143862071009548798111108125054881262192618120432904867668872121277879431287639032572454830767699115124668340008468397152517821848170156347711155311316431897272369165427792356087514017413083920207579057739431735157852345515410872162847959172906861360246615666546685625544706965984483766195065332071556109945858231945679560605011629454085199632855198489651640132050605666022745239213051676167856881922071340913679989385336386238022487793432363034655018545568904307290125378538034697471846297604727839009135268199870359732742987712284605062199353518056145172736931729753981389969266684197789185193579866366277666515715284872609979736135309718891097552171771137792284388238089851710357915807054140309263699082093051965233459045042564375594992497712721035422270214337989202302382292050886443534482146655819787800468481188074714039528395715264079431069751758037651284799027353207336246562244045570260140395615329459363272938969085325291383081162921126761902786166066172278359950219871231199606535592951500074804354627643207879992525179743110056185440132182129174254284403210838092608496136304245644139589435333288546819109127956142810999885536081434866249354871480107299761964318574036671511591499284532435084977271805816158345599903565859443838245435303005203342489564159004960797752562233342683111680895357406585815455173902866840477180768390965061174987655789638035834270120763169452658884227816704715409212986936179946013361136484446562804111170701319341398401379295613786616135960854546880033619553081058845479818578561299451828369818117239299264219827888702349637196050301002585961892520965754560763033062710077628470767684948061485710604990959454141312240856325135252455146500454546385980752046296800689269666600411608364780588927391190647825649266067774027744963477319501186395381318981900342119581778519565857270599607944117236851642405524146224580717874987970303761238511946230122545129809419634965756990815734439665997500768933124307824535784538246509596648883675473534349015559139047916791433416797708272556054654330512834294857009563765623621344724561073772139733768919607484139530082183814018392173054491432930561079528476361061946703357727991343641391017865346693499877871835450140036781413485409310294279491140356364699189914792472728089437272077174591347882534375335431348141945182096685493845754204083170830911137819293187067330257505391721164873146362235444508225332914466880942104057655034825517304274552060174456235591694891068841386409001997148163104229582728860044923002684136907027559474170054403714127456394369053449632323522756548444693593263224897889733680629779883258952447854163428336783854566853512601535940745355296888975851772644604901526123203771701902364307239174332872428224849611582275139173500872556936102768771836407311340557856119371666779958611799053415074976130019348167465804999074911652929449870457972030695281560863676580910669649625410712973614589775710134326264591985184411377165908053633127142294773608020974992236960456690616883018378170729741749900422366780199330721714082297870707657276698588481889624669934437042629444201858307703042981958807451531653840981128134582810829284395927915735848361199456877586962159061664059469795745244356011511550265311816742156604645387098204154479129500803615847699399855218440974440442272679959847347536258686547418968391464930041872251589376142089032351150858802595307060446528836168976822597847241898191510567619188069691652693705496456339257885454975754607669256643667451170342673693007998193713710561517854924150045235253382200742952715561118988524009490037187251985044973932775978195877059727348765331007821846665727321230012075611669311303598907168485977121097568433363852171481098753555209805803434213411712913981149430734652357763124574848310659573503486110360716494794680191619041690349202977733117163146976541306946779286530341347173185369745886728991268152657837177867583674257981406753321283959429792392257987126372194615964611688115309810545722450341447061722326694894334457340824564881430949043506905284274610050044782823572923770765936766947755916506337524554349588304501447875517007893690968934603431488218243847330400897224683415291774664118937123409385292891301197748958500158621424302908462974468536288392455102192528610441573069847268269886528594342766750536213493152251662287475513111996761210956969998068201561639421273706437623493788034136418262100436100071543810517670131314119179610345365299503928320971954937410707314599048403170564898244002954771769658641949860772767050713614561911462508280786658830920339271254432332449449536371343845551993959927141217571063225249439756758203109611875515130948186918699302275951088501042505952476089444158981040017951585080127693624593006468002962163535910111488028757265081879967779049599223989109144822670294732114347923368737978461404204816644322910064797237791556797097532861713663100659973922423041803644600769377287377923314794646757816468186773372780869512807474178498597414905593150047807352616151776913592031214470381491104380249614271604643107487146965345936373011930218455738375134921085287380852248606404370570004470680131007163755819389361187959600701980648978862604040975769158444453472202607355300317593761425746207712836749522061628204507812416771842454837651300734912788500056931213483651388806119082017479389966011805812021281295609753268709176815807753863396259870099647938825560290578353385696803186153632651211154626430783855461405326671095302884663953154352138776944647977861841457699105950465578521839983684455569952039883408586829150583193161085184534906444943861923040548308626915768484318560985551084026702933649535512142876336457670360282757540619572966955689923714379533544983321665796908719596115892585220492514525439048958434723955910919609323425780916217572424468624957603026494992390553526833733457696820830123850100704852248540638279874155505325127347581361065849453097332482337244519455194172726736881446314442845084445520071065696131642507666150454063328355648819644396486736744132315884354993429877411306141608498349127541477513272008415713022346455438553138303268690759290601558460423098459356487270748639926502770552031200241771359839118214092458911745967552299173722050011410881649230468179436616422235254595006011684343941019630496115011604059669776571485986559003059418035544529009796012601351462681457413965661546060611066425690552268778460753675125590363212224954553755817159691654442365650382321028255389322723648458689078630311021334768298464105691935095468904210716092581376752674662287709522150349221677383208612567207024684327258524510035254504079572915617397711198793288355486191240402869289364050683902243924688260937019166360325666781915453177708001805101051070673049960004574679509617546580307926886693697759490204777693883224803689827662851068948645073136198000207344189427269892593064533384424978674025361137805714254357647656508442452069243957698678911584154018537620696033537314654692606157791993301035110897027022592045059607520379801392045982139076030048433791011281894617354085933858413081593474372512702294531899631533026017307798087355612910702650018052537054546646636580850439803208275113868843006293715093183647876540499298087446467171776848437650079885533592279729276292867839456708618235776024759660160814997068422741109269717745384502640695966072209247272763894305744904818398429860287607802451205451681314572850918434498014040127374421025127636499346342974633272771933741844003866145756811496704903821209906749639371268318676948262379877071675787781347055841474811417889201758102270132630700390513150786454610045941295527535337932450433218909861803785260863283708233792996477375002766455225323753971131336569531220737173942360990363053034481202902982485078447529458547175389066726976771606754908790317621900330505946778296043355669057249576100643070643476237407275292800471775383916882591628097253465866353756979294365310750421988106105247130936051296031448607164457214690819178590905208372120869050826097573034840091143555691339541957589339885107845423561348488924894272538761883235168936034266501364044256307887544473918566907844441714669354899148700049421967439096382514000080039528922689394656625291992930449392980227512200820472281034251020157898910697397394697874398509950766432163071302927033086326704511697629522392098145969764915373607608649410837068314643013349654680059064291791343104401783556147445696571923415635013010449663194087473028698032825433298018764093993824868733728865255653672688721025519545008567326674324292589464258039047268813261019652198592440394696623221800135994046441909373077077881147365181957476886915785222456333874930578160787743436896926900861229562219190338263001603958611913213771004507309684240779249956930073449505198082716548371637400034341461400105556626864695711286826485025131421179644885760656598132018570258606561048637628948586995535465115097790959999321437859919931626606092799627081420244603888014509244013388257080037335772275112155386828999014069231700799424367246661791410749685592571527253850066067552258785915209265194693932977155854432042992655825843115879565264393602898423254211626867017173014513425330465730989627492047912909937179518529290111298865879423492644674886145888049907920524726578310698622571880779613579846065734694665893519716163668108303695502554068945028352687179518843239889584441111441230864489194075557020933224129397633027897273438457617621862695553356134684568290465731234614978843913205230888378282487489871009209428687066909621052895652936344552874479510887274725519466290685231264813607588768202872978169284658661123861142458165867151126137103438723741020827808933882664941079662974452229283723484489895977658744576139231057605805510205734156266035260742601992831661724190960291134478685739381422593803349991698994804667514570115670953448182972185005671211368845785169448278747282523269341544946274854020145241177650330882018050280982175349677921648305874336271677820971053913034969274286566287019159355305262542579745337295716644539348299805887656764867213087657363851240518372528049368267108118243865826982110663873521479381202861516166155720817462867293116002419183173155058887495353021907285771705055830281606444327685331786004287166593143954261901835679811372075996269183401581112791168441134258230352130413568032849899041582616904250207483380617267531831054808632904277536983185736231449422388244646444267786304281143967410679832679757079954173909754755946809690653500652697242513020155052055518643280306540661138665370846137926861263484683379626003886460741199675725670523187432197677310380128552281387889234233469807772908435404314496631118039193866075667672116722770575568547672597665510072411161680052509186525087245862363629792905603620345668210008682130772189735688417631129840065757335346960961458369760657376267200154008294922434382629022323247800002407282192809451403290873975249232502306628491356934506256723405116179637703376076587407796389464483715257105655226557444379614296578337819390788790557112485268580641530036636988198909594495382876903719865951987207011197655148929154971219829575733657924138083153707978965068304040149992614587818796568165108192333390125087847467380693928296813738625981840798376079343706426068182356318513395969008865653803921166819670455629459737876718223603503493551340020534620466201871287744489729988236134000277374565273843715754687147603835504994442889868274788111946497295966618523198340258088547594494711862273751218937847289568640127016647656704847221738650328235281692146461803240462085309674840767377917806741946841010508989814074746658133896915218974179357395038212666177311117750346940553780940635913787820356349299830183287684673685265811562981142911318113761082678176898453720304808871539798588992240973797604539971507580876503647652990486449131883693970927356649025125001633316511416378641216085700702776004506171318148695522647527349477837670924918899764317550887243328787763472785233280324242208788359344934951534664187788626679367614630066935772152924086902775598374780739766758742164404901520085760125429707903024077981687832158013993703456385611094478194436264802343731488849869684024998382550382632102338293312436652495094771504960178740910226471761624938394657951013274048502022013853128026532531388968690611546238418185484166834807796599588845358908856122606018043425580006659612224159919555089462815814724056522910535248800412869986188418187264371746637886991182946711985689005084745053012299375506271212352793692056168599453140552977023001739707549637401502965026373640782161624584129911585874980499643844282321969104476325601483391486331454627739388755896317979114272495249878537534720387878235900648353484057665372039787151798837532732526581874460063809219711136531836931271198671692109997371413200754821340080906294645715749739768071394501434925445894529086688517498450346530187674585529013110117108374802177761685464089092775391696767721472660771215278885119538461838653708008719792477302505732253086020401709923758428214206289113652398123965460579468541967609439222980344406127871283231576640657940887584525035212307405899890184664625336322402301936074049958952060141308018013460869814935271049891669950443390134130943770884456992282465263125109621755879948856426950377587817902618290560507523857134614711779771581975164903298657180399855496805751330022478886739262591707629685265828012968764352482487610101915858526185529326922100386528844063630045444947332206834185207820379951193567471636990713690060029752512053844449849940112929565742939058754030525120481368572961358814261293412526296036890745467935633108930559862706074021319089467517793698193285163537067534805599401870717214309739177598979274012589797899155348905479204366828011016007780912122139830677945496902406232495488519774903102987408502987444320525160419920621900861728934955801373656649358261672132730298640566913939126303089715852691075600325670740177351272093684433885950409907592788877622541175663576379346615225659884760309061318271878902099131744098946943543342117489303749085373550333236070930987672096085850020976553167115377002477909777550036232291245591143125605145301628909313836233198461336018625776272910819130666423928206767185499542821984217374392522497945527831824103683818579652667899249566133853926075337615774333536409399028479759782859809198057938663329776468889337219971505980139823973866807893951761379711334167891625814657660565965972630002139636133656284817587781283397307161441424030169947123884572869240902461667794097678860455311748699668466237572977982682704995117045989407099307759504179721875287654281252832422043161278126260812637201052152487955494139698721584257101685444314219078540059949383068665212409678696228106549416543391257328436064374041922351148899800849931891914936305004682164048041317108139708347029685920910575696530767353600255305551616103151319752733931630144232151009916682911825116476892295300690251711601333901870639419797647259338933966227253624916135959923793742824780985547469621794410460983060769035401693162692081360238829027079459676220966515963041236403081228172600790268937083905846727497009878054130211782106258958870439618418815330126335408651091222100653068073109075804015724997087549430906484362766880324743179601196943157277185341059979958115458034551346940057013142022487900564953795878012730387285934194194024739018800307004367949738963729312984819639040923090994858400280116096485020004264547319139196235430652860249196939423865870658058595682877777987416274747575040901468685979675268549583329183133985280301829069045586456296459980507948781913012741120046984092175469921707622260135928853414205025625396086307423520722338472232953050425258269144435056102415645587368005023762251444304815082457169107426399322658836163816002397897425642020608873021672336496600733494622178472499023137386436009126309624841424584134184857003533391079382471898567755415076675515554153650917226127916053470256529870012968462934973386699093189899654210974670719291273503502269057347543138634184553592099825388374944943257704556765450360287150477528568499733717769005759644978999997877807820932520174826582253288057749174140878717838904634807009779879005696927508839447333610189617992311406754164679339275432202465959368906440759329059954725916891322242717196366009291630513729893377689859752214163647129521630710743369023986962620515479701265076964346635851701145087979058309965693249641956336892133905746935470003649543853138759895753874094613112414983357918142493081792932206577772202316706245923303132031811869245432543778617604709321479711901827810408815260627874610084086649993752051645461450621352858863570623699835647576984244296229321284675692622021327206405228595933785335523472463354944612594445022594595153229126091759037214461116258067108338426708116144644736513968698317238110818754664748848998121168053516659216100148020271007262144811145751643291082798152897027294309133180811589449783188347412379259853478041719833272986380156827158833695363064496032764258877265404676901332351076072974095382204379697594677007298340910475721384053678006962690458597927146902184418069845710257495747260979897655426634674910821218261556243138421465783966102994932123889416467690214584853666991328066543121375690390205555455417883896301114938559536093293356377562907285866886039361829724514184856016219092041549438973642028285817062461796869193515744527862856527067995593142021927767073787220057119869058674890846778368435833608178840914765056915172092480642459927579823864607332640435468685239068557430973316659672215640337770214998039632321176164192388323853160359738720552518975298282994897345035463551440920574946219623598207111222321520032192614341977417477753871312319041070216325556157891612295569028298930962387097481327956378688048119655140897207592542939348677815089193507319917681018761594617100236447234681834885831274343687579922912781517643523159601592625059206386518039580915393519291806512090119785071306775533408202619044421614970002973228258274520827387610109354963262413837240664308624914873531831805334447229560979885210450766694008131326526653568609977703803397509462758320152541029728560662829538922184402153475880986454225774693209510638125678777779994859925210601896106992360536254201330715032176210271095716494522803052251129635190668002806095640180140622832095429167298507236731400088506552853755645575926614032906700317492243080428289288614407484516062744367735873660964537269905205397756541085153017172354362457528057811555741062602958154466640734521854781390404717400455097958348624211570567014078086036960345584432957824908524743798188232769655236592953395419041423934642269817654531895882969253271180116364018439194528903432923764607241855143525084326518292493308633344464076594365266022837729015427122604450001758829038877640384354231265009508710660711619526674390797870462263055052291398844038699827188832800183644569363790692380140946489774374711411146164927000664901141209862588043564324678399462790822215276989490498653896001346713662010109798956375065175439405857209010765931521772710516575414673917659723080514834226580650106597430005241778233534938627913612476709742273433718720948248363647770231528027046714645889083065192391161339073981423977883481425421312882036666195446545686527888859549029906891214035332394243723595108477496243325183119756993208156126603351903454869171666339274127624351543470636228588184435773672856179418969166628299225565374528803410191635679594325873370159578505171675706079927258015742971125505436643421728982461729355466852123992300446380653240696133780557597147849925514956861815827754451072816998479920527513289116349235148799491942646540717136027824961114739829367464995289372496423553640266662819528166782455464584389922527591991034349027253739626787387359759443002760466304799335342572519929679344041809534661263355015481257652680048503736174409115947462316904504760384783652765036958450433253309037017728101532487770029780252939118468034754761127936717851203454711941183345104301438163877211870442743369508456282108230569124576801657180669947911382171501925198812088933662276906686559196569541654816770050235152524161862981820266922871306115246369284716024108475167747191515010498918949728313093364251964795626889477832764869980736461304822587767185872842497928592956353900384429594005176919401189186186411711329863809148803911608335961929289822912528063419720906100685604018999511372035816412908611464650691672359752652224221796411750704849164220237246860859379343504419179686542669982287951625754924607023822974373106672092680395369687746207581385083359265927688451833264731980068908764695014317274562593731019784114781338626055740168052575802864192750880556009548289529331357965654182155283675974322501826533780905205740004559605409832001775145628814504089880367851519926241006326167817449226199771796352039152554343307221836517954157669522706057863715230036708443824860495838210489918635585236896518540755654406650266878882782117860097961117702635177510316426080185636590542828800631526994811007677034010225961020374007388161787563484231512784713580462057894931959424509804458467598408795019153134956614256822525193022453684024124782092591500128886850421592612175505354451602004147508310492520877427130196711987816775090024804526080140026841627610417605429086957723655297830131023589073768554719794643656990541535305787168030040150574854632521132194982328918425379774203692042545462898192132744191169828741377358136698287310972048133958760112653676493226556044132966660612550919410040741899192685607935900370413726767860285986110701724502386621540104885594910172313295110827878754200363837987579444004498558382698359801193844821964548727144640133440833106897021649937827902082146383615775384421001125704871938359271038167887454704393650827723223659581267556876049648730227201798018254259943334270173485828957454183827117853934383260854608570685671824849138157983391280484298494683316827775892558149211115261669467147421900614443710213463765866123809460033815905600687178745093635802603057020874102210644915298193965387145701163644235634393327388830532438598460852757101637876276364796163932021938674388105643087879707785634003079262443453119653124671143267601165028117716278346735097535092864714959172304840593199830701958098161713038865892566761133025173641777870650353838145465100828026819841022188031738645386270231160753856479831581048395561861122608331495910698139926365695358230502501555332856976230405330707070692653122707578151121187462376716271169786354857902291905978465597010227671040888103164937256579576911843068818116338531489667576853151540167451964841927943400557770467357230771590471114635838125874278772732507801878470045497337617805153514272749086134378614308074067329790986522950495771551221541138147869109757293750465136967725005981289434630472722230516364532729290539071750913684631684429471472166694454801039840578166059301428785236113471657389878123866781457660201250418383796333282731417239833520628718004989301126869301668564505012165969343067817249291453998621087975984613213179389345732916007614759448674365522875687179261457036090744618592016766868521293191317738723798453386099777042127781862868739149329226222697668354701490775560967864254620492563664980895237045714560515368213066888676918236094771931029760269368795208548298808278988072929262439327620003247042695768548054042908304873418197604279503048145010207786173261439372434799748043283763744560642488464441400952952424463980316472202761045033876938999255617319032429799701265252122978619351358630750476690045223743967318802728643749633103832276020428583650582212234525828972110219403715210339550304552783667405831383338693717380688888493540239063693258920347183878231777126277239568247844895830263965825653526539515145005377788299306173015653046866915067315055573208076752068470812864677104624061777627376923125377922882371905265972281606669234118004617724850480695850004210108014552217780852238924904726208672039115280714067395774712014874436564754774447931488244347546871548530688916328506939079736308696784888954838289909735772123682059427030626310056499013353010865255299013475464112038307195022133360686518170194573400635489354204558849497817901024069224845573539941065470646294266159543312863722018636834528613003342896492545722515271684798698231908610085798685195533089717396052660349963948422642532327336249485700682585325393207065907078138813167938567401532555836734759713775739779117779048405359832617482897286084759854290224172753344381183033601965796967653797897465211475419117036806893447144299279500414902573083022534650345645396798915200358058531449614729247633465298491498414732877893137806917978947547652395658692354028098852770157213199169064254490245469751398853226479390326115048123908398899135657713553294427262816053778982614858240849012228286718481704146674619056551997141774633557854060384140748767113709854100071510846861280873262037855698818432073977357832296829486012134289574137547049052546846045761143652265481681925263286265249470406147834191834348232488047893076058413436146654334233117759794942929778141584018693103220921857493067768787039189529540091597853558900410276301796008177671146770774019567886808186452132807608932189565446919370527284575716508622830838284318798411907446814240053779494622487654440678342695534907102581000806287448555142390439682721486695027469320495592648655579565086058680063975235447582050878778419735909149111767307754166327921019393900192626589115850376973772746738482989207022936713042590927940755513301072390175803573637070872411457669532608302871508762416085631775029595798452850169992635329682224985486082549182505899452223794264193398513991528562163550873332991688814037077108459342436096067493499813851237620412943557378108321891511125949459484452456925593746489821958205138178119094619508324940419167009337429975023369288306015496109021886100392328991058278601586682685163216444668761574108032717861821938555766018133070227710115133089487680231778953781151923423051191711159520318990005515920054667645502999682159750065337273549742401512956602106154146724362992207526464470322205518292641745923450333018853167220378616574273409244181312977624722837548451978049698923768693910414161219808537456090580022564875027260622376372549269042219575576485376794954475916572946827116358471734804779668246664001207962363169473338596831263540672759022868801240535123938097672839279810304557653345625474269732896067872433735907114233321535911875387053754004542655557747223641735000988001674013866665465485626402065579093199474049304121807225462513774877644933459755044691054032123815772537185019628164164929063094236929815475792880573763766164649772670230383582045094858229031554324697749304834865390427166663203288267163825574103157858281100368240180059929330002546411703748094446245002849856686463786594573413048211859743605042544523073851721111806079806287599721978419000242937338605306661468088192164182981995760019898135932464057079393263398781196799850161569862805349620746644691256649583142607758927574176106749285626872303538849144997627801752391194300898757991169998118688113585714168375966810371761057281329278441844106826703241304212250366153613215480892588641797529767755952226716768679922620296016316202366611967735308627714293765715181756358429879626365305638379981642111967083051177811851123560190538083245667556952071297377874322904648235434629890792673703123789016847810661142375146840722545758223316232121517390764097799590124249217802429377802099173120835012035052457441508818984122894703361465737203146147571706560519714641280026551000490756721453675249400757520304756067074894116957922448219781812345486697542536886792938886766581895805063875254824757943458407388385378298406229358662386076987917142859097439479263466965601281591488946998699862274339079000407801216500483669131525556273891890839674377095917445216894382786330506553633575218328998165968403385671376149003911041214664621147970393310206279521641982820397764529034513072121649220649582535473509544492747143852190692864642258575926983055808193067710767831301640170624962183204021322021013260622020720953183173749713707546057550873949787670199308092259924207838677380825553108940560549935127044302659985917757943357723624483341276195295761233443300608494762224862614257925593735809564912809897845976594356940998754395179611013636108793133000173930958830551033139439920833945302274626687769628411932441480199964280757869180745664498655990582020196274868860543324138163977154251296738652842572025066083311100292188123763838186095714166019011748713343378282609905929068663770873638303535410422775115430068054064519228006019006268326294714766528219319899531730511916734204803681779705006054005073664986873971098403530541766539304238375174802948251863351627808640478933317628879409525441324361961571269288926273520470023191480042554445871547351492825703227287311300403616380660402434555121791883598735297086527477152528915954111910567760464481219764607612797738551996414460967713116220157911454594826395509253772230937952515717856511982234825988020694797247195029534807127966809784785189714641851271277560204140912416262741672285384410226203374218680170972408580219887619800477713194780315131217281054810051595156523817116904314862383921243059950295580326053312474325582567212097993564086543277740581873011741043467217316170842204325786320863850016312358759187521857496052314617497365333319091936669869614654371520412073645940939800651686914761630517385774892452723196857304042420256814667740275557897513584589650291190115497495579060745774827026157735789227098854904565282722482719697306928130926052752157200447411211969172225710537313513802934196697200803303707278014542351276946356481390611739083343133765635207467240925748923346124267382930276953225045528674999441152520040334839140619600976490460753415739014384767564181738343538028755111075863203017721696283857190625664715499526629107334975071107571006556333428499524007492237094931234027809371002483239810020968837990898963117708591441432490940535751286797565648389583690649768610361728631726597042964906774696677389588559748642835181027303159883333457821286338887111417792137661624768450731048671074103413819622634163469162143185320516953961493433854336824077821085171732062998967959181495028005464631120599119511334252898771132128623494843138045324653638825244268080230169845732561852825273201080762820376621086893745385259878851873227400403847195320384932066875237054901069318649324643321770308105842131180638473782959753236626779933255039804246739455567281533580413841217747920310652561021174829101369852524146464172602792705615805565839256997153964045917256934018704402626994879595876943916701969922795626870247784845350764847056450619466243740214665289237648499691750493143278613684819041666990875991545649623241969921619839888722946778051011728555910023941088145756670546231646262062887708284464094103076866157374148847851605754981173612624105439586558765251802547462352768388315977886721624294870115848420358927292817050196619051993143255441394258409279139646089362514823116713707671742079139361991775742755540867675862081098520791288539415473910834790334847904185425404260593911761626587601707954736027410981312606576314418772749191811714526721229800637805695398711034535844136528681518721223018248786141624507679346646362388086750469909055630330216061943866405017250186297332673370571281352342642031028804933733313379219842600436335626899270741789983679098189620376736087387886233037011761987178694549922762382852140719840878780240696950079402175365908312252887219369479779270672350719468896757366467999431842680519170460516456396261487199767714800749638892346724945026574539110584897720015062197655156859909856040680620762522967998545154242130271704871568826381610009770332169580769775077427232258229722893551130591509018964241624994328225816286142246272454476002118116154644070471450649975855901345382904559701802613641601004458022249504272732839240739971814041895784359291352806439905359462813888984797810318743893883952676754710704492894710174201918280790112858606577360380583896871549785260271060949944905009423199851820272067946561164022921217277835313851961710498119450853418710634861218282612135969960782650112009077289737158146147507983894809970455728867296577990992032324164470202235115416111174754743439480825783915464566477827288526287196364968596825395214903509552750147546070375314395084707634665518009723760327596641264959236034906402204845271892519334839976344747600163220759062126868803507263844242501814322416438091881333460534053737974509655757202712061135461927704756321202289541270563008684085904917239402440645918705894741060484312460409454248046738413619324751191512751242816373787842701625801955050346707238038047460606716831147807801230896779793496750227682694123326473902199002995002267890916075274418179228365596844740436395849308209127054970573932940851242013065365459542801693474834854738996739938737380961291266244795691688484667175371362017828371817626632763194990664207804581148833491886784015709549350803624714081458193837525168638654621749962493660550011677222460540596107385272298779035471857510471274048354285974515238854563492405562359164787166662428972974452181050738562109010057200039796988309828992430199470400378169525347054790843893393736437157225213228804789998593456656291914927457603541003734312034522760237693423321600384746515082795591814775886225764234223571174592766916385092093330515804922068765563885613839297909182078598123185450749567969654384145481482943428349627541828862224860163029076237164341203621433603682167148138222118647530740627921406634498633950544866087097699950208298643713088170351392494866958736455495283041693486086143203298204993757536970224275248203397968298762802488538453226700514409445074915946233852725777473736417128626568127441465435283575639081932243613724901016873366816806261424105346468159650830386006153804708354843287485119654972757336603871642849416884907353537479773375840491868634094977992120979934734138149890481714693906249061128673334952905823738095680327313191395250455417453850343918613954788947642180030519940942253325666065454177402459223815903386972722045646039408493765451128868355005982329756957736551423619131954877492959731408717165157681314571524282702545594634303583513397667128246034932420864432660984879811771371911036758266115000754413093407702438965242210639534627306238298162822454507668533337328256444197805498734371924469417100321637415023695529044357812004001044916985356342294105687378407476074074440924907898746922229309226516930521250002531159566433936437457362505392836716155013992538303544394054417090016946570341311567130253702181093940113451092906606827153412008786804778729374121854382956044363448557007599425575581310614033615971869709720320806544151764637297277682359003854587685248328876240051890385488494795588960383805528293799945563678097193089369151451673616496485538436974061444593478902415026136887005729006709454410139403941337843566779041644339539681381409023805999091244483375829101040961587512601706132313027953309401922740422748510904136944323643192294667491896256060842647802286479772592635405749038928135449505935502475674785545312719887383450834136965649182938592110303129463223304255878601755323036060383969760998705600339524460029925926654202338785381855869028388283502806233209814778548263118424903944686215750994240470618037345568356847439033511851172961193384836371531350174086808858934644065892813243004914327231057403007467137152785689795421148104861402145583632549067079212592098652970858391696486811109741769669316892584769915051381782248795115080448059722065472411220912672267614377973745638778925978365600766317075925065826672148494175231617276827047062537644928667420672974962040220488776951031138233811307781514764800869646976205738578350787762912918506662859593822055074849303825350222321341168892528050871835071623046251653238725136996968278991563277653543912664638357183499438449270022410594520596777076369140527993455456434064078464380326927939105162731166186647586111367719238550996383555287371680218698331025661631987634819807688604246161987533640488378412215199294244508927204664884936697651400851274006223858608868361175832718704537318285365516276397459676385196251026248402728469768733139894023265077487892665576391541791969865618153522686079306137627002336273157554279409306208140634122514083347193497395551099960923303869726731243870927892669715431588566758305206809578130450733942439514267908307864242594763246857124490316618421120621065237223528954829196859816953939699630570240849103586177360945401381767196997871010095240074916509283536407238554917941587083624439059093758681139648165229044733826620253411133927889283816478270458164777571537159530277209808525873794226602018174538516125727975077979167501905428241000782736506778036616762619679686285942535152073062526658064284099499627027804229692074854020842565128426033272141682937200556370587937355535420704737881322968479576951085609368417510187408541117175114937314427875336881205038863938389469636560176501750662372848576743149387654327216395923212279380835589203412097730735235510486586243253452891661124957300032070426710056556888958885938422223603711805503065799348211918199707199426316969007939318505203360563130943772332336685873472910852725043299562984951473202872959075241179472808597000306243915330082063746126969570755539972531992200000388896770484880165269054896162719239247905056948676479831834928782877789067660898381817809344587117635608562876422737364912842134897364986662575611007355410401056801080487140548214002658745381525912755551462178267633006474241051435878824942019817410543436026555025473734259909982192954473455547206976913336720166115248331412711074503061676293148427266085032793171384441529967809861372198582224167889218640144920148937907909674580887139124941901335746407975351850143491077889001182209891759742921617471780640074648177704538597049629412842860196904554645613059807368108002813488982295104933339945767716966764150665416392679656305621590974399120619637862152017994750603937926941409582369052905935579944657270593520284182581515445373057489955375598065088287696154220703996432671814427382225109636603891424085216479620968499484794590814522399368646247235375621029084926461456053157555656106952559695493465284767854285272731639374509278605908887227498566457789805982551022497629776098897352021647222292516558838481340749887548218936486941506478091799046173821181069812975589013682752337791900983360722417408238945699375813143121248570275736885144185451944139785407776098970383566103614622930492908294917387644408833610841809222161675762093327800288102620262746680820850963710417787666866128972603979584294606416733252778681898137027702439871612510500743382009726932723552958716652670601089672550239645657987510703551205965160184227113330873817479056486949149541072533544011121259869696454467209936635385795911438407914374896997521058155236641185423785870500783473995191185081249647193351987679875722678805054291390826966887122600860329084644698187401023446056913261387862333937629873820547532765483133990417608177450810139577546226952716955224766689963520415372297473388070717778164619641024163661688502010441945649302113378588960959988407817370176633867947970566705200728734600192818371646316351587242318070748854872946259239866190748839818432898247870014577584651624656344773312113649131810875417305865601277269157096649745356304156154891952648425855890425744131497889938518880394256089203040207686627540797032123683478877992608848168054610969423148663286049932083259227893536798402278159019595465863128459488441037466314956442561433409813882043295099808659751914157555743696672103544528157512945222162122265959200633413875786637580197379374931695921187863528530500324896064832063763609907818345948286742868328237898482544451934501131005192766017308940399741307246124243407180167391559821540784228385170222840883890723165366078504423167050848306985001896618806247389055674126390776007761614551859205089166641392738426656744237103751064443793224400106529343374990504447731259975393181074106791696158375592991337949132394058336240034832701514253425168196098273596813273502096367793932291869633847235622957941915156813825532839518800861075058857040174596257287638417565590446025268093480801893293807458227328111350126129489983590349026166152862233111364039070207648822075355868862596857381959942539075965962444280392835203224597705570204591523197464568004690090126411067307127576559149014524148671482953363881198788509103663317774362589639430392177875840938274650598629372067466028353085692108277125966462644334763311090678683763685557219554092661098538659528805138926620193157076537335933944481344341445378774077639381451647729510398432239156297688991266913296290564598420665779142854493595632201081112671301892595931486194592716081532474085920880462079699376530314457976999854533730711404781206972405937102469960602039813606970774686783753229156256544646045679062968860207417379096422465232708461005475128831778127245604073287426123874243847907760288746051031791804098661296470695716515766697506123741378149825300928157100219421578171702455657571318465610351019386648419715262557381361144257800690716440476735796250012369354106124312236233308582707141457902126045076381535445528114584024566759526424312957713129696620810023520596384338454934239538836473240099835844033405360543852543486251813339686093469003879630453043269293880859591605788541264158201794211049234914142400135452086262613865853922296890359384399088213716035421468275483003736349643853972852885265688026080729982590626387750491012998568468802609676600312978455139868373121908812514368450394781623838805542831577885309344150174181281440342699236933227329898897638290050323015782612067055871162903720594591967470338364249886105632049629792358436701715441858229833424710178377927651256145387242538289421891369698720452719097741859000386031854800897750087757178974612107127153266939209331684530926137147064395015615591057090204042350047915744820322193233328066694507750751514957040648699030610498708322346898616651807721913260642124155914981449162251872697759605883903316121673867179781718090016164741874960685471321225556094562819391403213138427922978789791154804007223694968586743969206046922610174830413722032299765099544722992400617227808707740806318845666911714041441470229451482898687456758651761426156582618881840774231981803269530576509137403016502973201836329249878405306727434079106837250550099833678544869260851463685192855175660676165673372640360961429753416269911791490933453167580307746312484113496244852438172107089970152542450216321317213518806744177135204699602668434540317213722387296076899328140230455600157990926823112709210175216000879618028892244868038901646053537416931948121933363282280177667541802064623797359314588811660709840420751816169582177588527937838176817601228997105343630394618986220281800227007552273545703647105750048032310934271605661866389545039108927230226262280084448441943363009875747141757448720644379920489559551071937839814975841759639886801584172864173188829526890400745936461028949808233846625314457877701456797013952774527653051817165721856310351961659044993812708475639577968092385306534431738257055441313221262177823176750122339265669696199798172071718561101860508118587400278801588956176448037956887423312663637119012550852821815040450791578049599950798857270145776418691675365689324847269905357110124204806936619994840521153034771292509549874797485174451794087680664738380136792216767028594799345602996601763870180887121313395201881683192907899669659841909185862793881002596714065773902628132449006393765082794828566275023228352188278410499211713553798746057871043427050240851207351957116550497065013344039071511711980077195461663385109298040246582415705036587415484086368029817049129320858439589831661719881079063586032109567104513226686480886849569731941106128855605458832246532241291429109399630083693353232026697264142374328458276475631310866554061648765602515933844837572258537767802998696928439741962029077630709104717660176092238814285090615923124186640885142141535849831560760107718402288442119158895525415075253414625821408528697212009727908749083298755757451794444713091354601675266109423109998407014677681934412741541195633023358855112500778905162272943025670293547572143547007356117714060717405363010012392735355491909467046126439554820760026893038514085903721382483152328531324083385498435058927666548897055893903324863551043591930881392147464585213863569673635043870905391920949495872499453832429953139777573856153641078704665220262712183544444467455354483477560208111145740088743150952092367104241191455315759675105363067062367023774647686255378696001763716659563770275401766439914835033917305671725902695756734661109468458539482372075996306266740464516876986818411229033786814975064516778997784851076415032066244482272017990272336576417196400910746462141573199569429888138227944455108405165715184276606497963818467143873550285431740565689233462985558627162831420161102996131509042985292890577253841834800361268144804548822982629954396510502560850414399931984439506003203231316332296880979487593554718770013654182578325968560457493240940811480352423046355694129645669386390126293643452841763511363420515682883274843832268262002283486458476181134732486705228365952020391281936813861245761523046257459493522518771261958041638440120027564568443720760056000090503498702513715569897682366740588344821762093977482651077982708376053197322123394099888542183071575631093921093591565030635350960804330933535777863394643597248254823474110069341431637275507784506738383623329583424023434584974386736425161945372206599729658580716522381233967154218633238097488108462581199219784940364970409195540818007008102998491824232403252435938254640508430698050299530411207934392890817593809231656053881253973551821708435611545551238991687782457787315161981891059677557152729283276840382411864695044739732022290000016065653007139732425606938639367515658463347499581786594352874329424968582994727100112612491544801206768133743738964447763593378269073192608297801956675785473930178253362176627276665601813593053396490985134360535988614782305902897872940510966564755528828134933887247629162308775678051675932595800957455684450886823315512581089022279400710250091034421796630836972801647417032534177370680571220233832894182785485713633284006644393409379016831509042270069101467844904224318486988905689157669137522279996500167837345204248200295039563945544618210976387510021198025013977123833124862407100427992060570979510310117417966193485809079910788231971809487180209859461049900203611749103088031280407752193499313243783048995073866219365823466054941690452981540257942541143649611569160891865283612541743487302467576979837627718075296902154862143731350196556554497662001265635741244290439691914446458635994349462816043859528970999032230176551674426599547266563800251332287060086535792611039993341221571856044293410934667462077095874193552765553269319168794375248668137724206797695165155276813963454060917853016160148400730929704064436034186558034701514978889575538306957378953130992580675277476012862119306649378979906366426957039911374222149784022439972217098571258420057307642320356658774357414776981956731211898096193112642472122050901979532524368561267158760225652594836377994977843614460994120093562391732710581354895194562923064621541821350666608945842637203615710041555809137616377076784612945816389615995740593741429833628428590773213450582008294503809664561704290460808738731799209239013410711407015882041874382336544110459389485492612254539489389567150858146310285450592205350898385856063787062595140236700638085911592531317049661405114770315248274929851875778240703411026023259756032389363953625840363996423668102376961938281030750877505424652763256616571152212878323829082906452349892450374852103958041172407500682782761333562455928778210416793579264303034487645410896256771625943215729501452913014295554001179536899026326684458852620809252354481419847677540014560737646639784875714386054368999338350410278648737078027771634821301759775344276861316234135312848885888366091486629789285259400807402244720537505076534111262566369063148897439050963444454742334725081592707512165183977070354986604868039483721587633969353225493195596489011973430708146269584308645509428662726352790014295118857553028614195476314097013974468758736110687449034938900944421284547205120143509125151233043089736557903947816081360087145873168318255152963218224888250048153696198974721772264749062892652594387692331745640045301226450927982826038345531783682987338988105731154851715619301728653784142852478013747033654505143157818972639118662697468181793746041456558634770617560994430895670179627834778959532800283496324608139801566207109535800548856750657444645953308667259299554204336696528260059971316167679680004941077282603901515778858797654081999710538581464875123934552401009684159049214802657604555067040651750023514978788283249878077867916752257464613461215914508048127986657787559398511423078709006027155099606762513741263598581249215432596048608454673912683281454347326300622590016688232702007303917356362060534508702309038349024905635008518140417424501698955499148385066316181069396829490132923486520589455551472535115265318658899605150491867339096038266295212880180239944243653628793528166756836449249473276879822534856848395021833388887011085157577436726283750522003758722922329190903716386747575451441580321998956660639202394539579925507609185689547959898153621320951341388800954792991166549175158497947688976900030782959131443363592093819879831454078643074227033646533182112336279176967116054642461078733571393017955923756035774917547715271458476057742277924871265622015856478793972368094321009485397014843415729093099578230334094372215829814899932772170499623057535658646097045916340856015226019703804975487008575171333586355896507950819559761455448303287873205849679822755011139670173747187875665094538978695161326145895943142901280278129217718221051306049748719525496700291035883221626247151281260422180965165608823574040399835565733587546570948481832569187889877456740825258788186661783001424529870388206943527449664782854278602751201634505896772322666482115095215457228972130826218444437344513724842126655985194381380667536599148824485130176150874891476128609034024063589244818513777551652547493178286716235735434298075767305590183146597078706801343199864470474156124085849555638567495580850242855319822459293176250589291115788913002821119720940200271890935426852608744481732492663241471497641801674108451622534379203915350003711887046980246119300348550234451425517435138693948975855654305325431020022466617858165769573638689144996066499046323330606192804420402194677730860314779872520284968657851843645514244567433618888993836531569107707124217807370042849474515848930877463358559999751576094801212718670804946795273231845913473182372332927932305059396431692012586637633821560285069149970196407399875718228835137114620972274834795966573532532239032980469699866390821347733174248310419702202130108186855902011983252986484840952448742755820654580172245364349000144927942194009257374282046061841374541351057132444669206273404125205612606857282513796726035090493087045802262642311316485527954189217999618432428623827284805396352509913325953813522611433184369356561383432600897926574444445743008541412251260968688442902533077469718558236145399040522249176299143995564960416127210493313684254254066838363454282720666287315619239880125570522272163596159081649439609663943510953658023323845052959190147269344236694666837790363643358867829597584049863019620264024477327664073346574859205460454561203689614816876218509388761593026140681955753129980068231447906478182197276983816443628009206641430911715010055023065204213591183722687920098290971733268212963494806759128651443314617440836500628843130485305999824094227721575528194217344528220377824786420455517620579726462493877949015500893844765423847093956433891355648682553162984562399027675883404088006765365878436231397868511571448742373078027199592759880294432671392606679930671679039266209787247223497158541399668436122990877110763107927426114953424060453161743335328556887176053161092689924541444572962056343880613355004641040440008941472727731446454889546822981119594930253543543417641401966391627915360862125673278836633388803192245040699964114315122225197819393107974208343234164855302570379670700052770185340291985148014165771450909846965046082032789093458475465572222750988592844659349814186209988566261546661244114542759973324087486098483561634895509973727559572124766388681077050226925884375093340799503202953339520101191399515541928028094967157249942015664078149940830107167146126766890652264881156810004378975208453891260777254357822132455921952099802607204476011116662267863470937177818162913159639553225534511453669912124617893507761434023547068880058317760891654816812238226279594897693213814757710584972658749879764019210296171396064338525184987887028167840427133601096897064849631711040676193247943779784489155574849316812566952412791751593980707399180795042305779679133779115583016504306889420807533097168235304201394094251003946084938184600914773113719666829901762119340784203188545382762198316510613054907545348090912672441436478622767832493788658056838468766619793821701682802931987840207455555331314715880442990618644196062444217395663006641489801706702199513438346101149967496848863700983349472529315469817794701556074302286342215410286906116656036569645077399379071005011502196753516109733821095042853016529297105987129608603595672324434052765514871964117692735340667007277133017406970017253179350694674181329851831231147957587564363513654039773347977616530982580728285169116295979422454193911359285298415112349810369269696163733166276116469023236687199882883270982381958105535750729077500872101917181448104380210920768760633883227755828890292778892900310169558511401087203229692517492538937302052455200900185942508398368665050227215845277336345010562700538109372010048552687045552756386481152665221463367230000775743701889846064027031166148510499001097401740978278471306204054739218656728196915353867640386014542447642165503162581580032779154680810663173765753337006340689858587768299968719696075789918624898005752936437161220000005794273110138108927268399646999401375838201477748907783624168657471650024832669181836460952698767128763157918476652562041342480174300018699168176625033653729212521486694537847131171897711739730566420958062098173663591778765788254872623687510501592279147734180891347219934192860071683511919743716489480918164273350090418202166827867207709848320013124335572232504349376032767638053417981375015590767406331138877151783290361433086982482704642941887361320776559850888826798091835377112673458468966470886051207755093339323158791476324620457294476644251553091545568145451514713403889848934750006854360883592516377986813240539784347755273461988320078807556397256920927257213133857796317328646682019331031608365745444157762347003078464339243010688813141967277272318111272251451920251652198456468277834656371083581378245348740966887890317287292725137213883751129750346083522802793446891862128991982185680404780944861120029419552984633364628211140135450046810019401173674451312692102003968679545412097481538280493932791182323361758040758579987576670873614075113825312487151276656098475123626625591450882410085612773793353025285578638875346932711228176787837628280812928988555332307078892757594005736041406784338863864428481498091687593621475318411921065297734758901404916777627630240402031816854420873506512791461555820639910968412313991339832085344956061846282100627136226370202789855383511409187178177742153581186665102314679129975257827375363188093448872790239669389028241768581996473722469501559624800336527004491143766158758535495786017970677545155643170934822755966893183299151021503875898039655979574052673220336566336623224321622598012328781107883219212551460636372712446015964373308516494896868060801065333426802733338886599676535508061382706090750754441523853833923588970146484093515076973027066717936729608696840119983655642698381298180722907281860638611224061764565259835346065736957134643679673706949825508471601283178382705583851674413995285522788848081217947769580401845001176884977353162533442562833305041406935100550091178794254774565827579871293975645613277090989288251646233803339975768822131773791415599385670955792953477092847580464605118474109507629919538924705386057676789805282366825294901914316962413539821578482599205786648679392074465863331642410510401991024330980306337001371442153953844511274998706098404378989913633694671978453855833996269502173809229987190356849464763543282504073810448851995851207673373831685996662716469116953313715982519844146558210741059388924574221621019112441794767395035467541629875484078232479558935429231959568470118228152365119538097928937129045509101948759308855625515005381765378722415809955379734152958130337570718846974459569321617527504766564337306519418814555745990361557166252959422588186112254063664298357522573833349218030432461426214415908253664275334485967882598885860048988033018649278334726174233654190887732837236618639098271345279631058899638297664951042369582677968644167046039721557884361598483696534782786596923355374417300689277656062552123010326791622787183380237731391095426599313183373607479852145885645014265902351661480440313155257267832829720193051413284772507484038812886052930014069783599065803721947395686970184740701223101037951621571400739190183270741766971768255559389112485368499434474272034839972471591591610388179877744168307377750045924379936958052500174102596485818350447021765375965409878811639242517435072990260682218431057965933205917888179484737183986424128058843137982866226713986711151564796554725404776416479223129265853716494300828019300704222641216578934612816908218513236497367895165103063964802087296433361939597905565109841473158267498737147535585723819437026763976710390803443177031858786418946849883562899033280595145317824266108089362304220286807646494494043731330806553058754286961635360257670104426445746958168475897809853876446068848642383494577192221791016135568485315999915584019172206301929169495785872315816584333792946818633153252988820337742007874343387294220093433598525061188502826810280587807612450621408804630203031572959340257145744193515500596442475564311987001786313318416950347224454392189665547068050289972685579195860489936088682227680759031435376213239168553484736312695160388013308380359895846838275640625015523524487936478508797872398346070967552757183970065588727681973671059038329289820737855054779538501562589220029737954429836165334402270866913558153003388019216284537887572859532493354762319002767087083890222111838059892420424797060620312969214846779392942867686050467161815083962938860323269065132751855438494101272324004733512746008499362421806799516039082054239961168279615257494376118902752636309227453763469699461906305603846955799833684962008000699668459282020344576621394306340035914948524117530938382805000208274963217679118235561630015963901517151401884748540563401405552504872679699218651611850546003630326074606930407247427532387362472068277428654064374140613207872549354028018826626273219885917173947238249649329271529987477940150878000172501015724379998558798540025121733903309294515027945040477232468721344804069711370270135641950927712838294394537983163895791704213052869631975500019001429321813560921321456239274472598478328867127621638799070851893520059928900568885758810165675627106408142008550859639116911289107929338010766946356162601873681905489423625334923663771476963985663054222747572374828583434870185503181072651287047017117067886687640821551861226914923741211353649737168987788656525969897047922107050363347458113023654851373536543179659935928574516826581819152605577062676492547598495339634193053528601078108762352521651946399498456234458759978549987381391725680590951796510355047731752688367900212172390350948785017407627310454389923005066767322697354204112101963024316511558229148830753832139064680895622295743497633541670943302701416559430070701544118080395251403423105328594713947904499154794377692393179343818539042599373834645332662946710185551217321294148300705465845314354526515868023031716228150110590675178727271664809898427384779633739604993059769808600846707486639839302759699336238228337078534300702189294155008482795266095453073823715166948643495396355868605332626098657601051185657762582989316135105459377765154379867975790987046282456286671986504243783557408016616432717706044596230058600347543058030095787947049984463544859804004098852710155522716998054522205077684422573459208597699736296419236894662024112397761109638433790286864998006326046912438326228418231023530682448211783396745357528332646513029203285655424549870472128094417792241645490327048699887812146452293376000013106513993351338154486869207078125769308465408735356956215497138307145855455271508093279720208740573387601819825394388853081991103011638893391583207530832585422409253264684928739048213132421746063122603973274732067354422132957599393064369574030403405336286467256657433622448348577724942035830822077870985783708743654897081881918979849568071294318046615089504055685384986858524718645657483652918169104542529512667192025927008533584824598118762995800315351076915656172110369513291428756389642904417914469879994575618606015422892522926881895474326982055308547423679874137296815453479349097611941782085877699943313171696630662101884052669630720671501810211068853763406068718097864699759615105978591060255122854962822070184993788113840962094023218165621373076240802780664411423028311526344839069295675140681473047117671401313590725238244586055229806010823953759318055696622675925698041426521958831855960405423124537551006174224573921785313831081442587931640467955137218718523002215165622465280737412839421235297715589791144150943877372483868907096463377376511111036529533956770720664172995737638719508234314312976981286147048672943025946232837311918789493704040136294494977411996803092806663112549362535825184398028771711187222665721941488934471685658957395562655787616497543170432165154160205895224965500458172811400006141932024374983390663937680943663077871641437656807588970206987063210943801549763854837719803836837780993598348860438790973656311401952866794939727095827996978782728164432791386740166688873523629973848168677151365053217241292098443757851034704533141519085285060367120561105832107754786043215231027379609457498297987336587577246070039614899912773186096234448445195798458221858893733259916850112172253546210945494669791402293863696807241051592001625331571710231796237915490807449980331489182035612562584133475168984831613716607083110551354063279910450350677832295670731616663643989150483623829066322061543541480111049152651986932790548478509785932274896657679833454740805918082365503258739395311971558161894122213578429030483727211121686872487051684257641639606085541704964635887228831340491442819698031082714788013786567932287208002799519295564300238701328196088983071305130789405973089707971922194559378340577609650529713863410616059052976579522862663718012078723654663640401213647885714178749667623875597134025430573032695959334433284215778707023430997752249976703348884142285808952014068486997741005274919127449581594480437406065949173725070091849665337400268734737466185283238169678746855171918757033421627642661361502656753260151186638216849643278241579383201445700567188009925393813219261954018310070756679302269541365532008160421937223415150196535475442747997732719312973941176861331657387061962142093827822152635650969281149073106572055993686677331578293700651196120532697304444118696682651962162376057533203856396901924920901566504077658871742159011878023623261074996927023860530451070143314988078160801927607051872237807933186515231338291005559824277430269825631779651773174788136600963691476387206284842970517688003464115280472125267746220675150676187784177587884547842770436200578279178976987892054485841435775374605648918793835508435574500346789520220148106627841222450302929402831982899382870981053585708615817993792931297859118344825940921619837036224058850826225088024340602140606283854337891517566069758478889834587370920913639943287554602997342430573862632914916748881675809024461909589291726528317699912176138329671208612728407317684459468478738485416732467111205140296393993879426281889153669054965566912213776507829938729895561298190854137579089400168755006242469546253575494553708894394916778507520206555646453977985016596923206996358225665510686697558355823684211845314164527726826200277685378502315660024061710314006846178041431527277791849461331089270353988410048003085164612227223022322156751330767032931971979324430476678038941636069878663835677030750147961008049800324633690737343233796290649428965344439919356779702786021486371703176200138854241601029702540947168068364219579231202350976259504964171920222748470096394097996432399626631308452668864411816051387018025814493590740115067836123229052251974399423534525241026427021896554372995014053413872012663168936166040456708455118039302310304883970066424810167751598202480957278952794185026909741758674293690835814500520626358821408342784189346263860918576226060204588124224188353097771398108277568102035823891274050616225971209223563115806872638008808898363615354847538853484300804941818697556602552385586906083400862662693685534771087025953719405687633953438694715234266999363815609342149840516163233420549721700245277378995977825365363008604094578902150136980147044685615252689376505962762993946282919853893235987045583973535553252162004910663823122521975526147308586591293970892431293138135968189255030741401533595361326803020395938482777664136047762000477337719656414377067634097345960841768641638322645636545354835854389397609971943315126550659119533780781263711337321635853040777357703710333361594285790841716376606173237752938091848196072160306958215178692509852793819365480889341906779704612961740724455455306439629261485258502698560213316005157427092920736700465021594667171252278205186969529780842578080143986231827905223321607190330495093005285762544610733063700491551564448734935396765446460233123540794280033779358385191016212648283812900731549276240919318827210099521926309911471370881707644090774488668356762974068709669044034238260946450921415455909765020723143775708333320812071622048989234089815863870722206995774869307717728792554357190561955232976370537759922545314013574622795225593038017250950079872548692155177369249296168456049240492264960725159408627729894726222615602712674698413722295436498174864304348360501752138202545598612359387975107909822792084774408577437259416368168898379597632584537906268931595767011863744763130922061833437683039789806185690645889706229392681374825172781548387544410168737959327504708331622488946277773877389911361920906447355392720355441309127430845002526190732577899648117548280784917350717055492363414157989639766709652436694332215931585228186843316156674315057927885210932029830482787532494253438482765809111577158669674563867138771953555419160654521036834020958329499995484059356475373057610575956848823146956507595227255355697156598397710063423678032774304377798988158258000981254691004636986186103309813436013080886509001422370955292192008591491687039983335350109727394922400037360997275225643141924607618977611726068899388559319576373523398936527161022580724028078241427342508091901731696045938800857459399076585037915905239595667703220964569543663376607880794331922933156220539514176801719175987666125319617539672612285540914579661933301860501707029880826306320684705451988340784695851226452418276296908841094310131235885110703180448178721214763843879783087138591914374551824321337233861708030090796062544286329418024753837636561759407360981070567318394615416017390888070594202291332070746829539655947579122593123218312772073126713565046659248444400669339379307889402275381860832832193635053910948819765678262926171496653708657090453227689455268383105876922371918910552144963118038901331321518409101586308907174198195838229237564422842787167736804558811146892803187310424717103512933119782657899325467811941755587443304151126892978771434329668798647392596453598205896123817326369098563085503331403882843726623573743060285732706034407955480977238045182805317465282779244984376907367243347847832029870577647341568558390202353891848511914973544086909385731675832976144961030180650936310188257330931198847635254557100815752445852287490285196498795055238400188395878984341850091739656884569039135354829156315268565904860036683438596799327277992032202761983635072710256882525944881554351872556183808862371745236100599987645663460381591562208952170747336867195150473521842049416902955777819836789523371433711363311940066098832154096272711675670792721924469369671778554708184956279195254333580730453672196368417375222209802896832050205562897714127505315050175454534214586833052870945485156423133660739980779237269577047559724967109873557128860970693153136691407035152930522043026102075809287018507916020777748998029083446491354049820061218420008244088909940314172141916625035066742018980494542216603600462651290542877302505044785749435629895055404232056727438222214610982209605476351861532043109435552982662015823481503042368668961460434567659284478831136602379912721338453545832821281999647023728299240164298617554194874414817043924172998106539560401670561491945862397350268590292498323039001696447394422533043254692428712819549051993103291128639050382895219224691223940695756199058035936955998580848011789334152902551197103746128513970366292883243291992281199818367901393238661970939078224448787633170550705184838646043654591634284171653467419313167612030940698011329611676816647658248267048153229144888991605099648104660582235963358176370475459964926444472659280960536369397290261858751959176489974072161223672332281409067910933687617623040429180105231618742251909957877453116924440969361694191073757520640056267074148183670570022574194693208877419073860324223575027231190343300533357764904615485206061547770579292414819066814308192148774526872026397235516913284615677152920362121360654391282764741763177086910274147056864741693992676816061529448516684816432760106237865618801059563521158846517614469085134548686415019058645330934298478038406609959222908442266305223006249294684044492145735494612960135388609488668767267738648431421073214063564579398884530397370336699027921176759274589267373864077179004150730519959110133914871269996344929578324684341914081660996078548043682821014125634667589722135553689452080414455564204046474974860326233777234591987518838900790633472246902646960639725014800864960942420571741514937408269360485398464005751129336626872522605375466153529765770850545570535787952115550232802017090066761187855200644410071334585518644679176220048818117425706189232560101673892842290213450737248614710007214730606663374222753106406760051299892232072223197732594570096873417028226019203130992552010597851186443676430975737658487237965929992500563373501290536463715747810598708297695170506042038273722125632718236899777878813558884812467425763936048236512402063314481816009367363370259135621486087667176962300187568829832826146866481419873176535500586440439993658390930289703927963376770446759280644561844382842285351987851884174773689979623267246544585382263021640141903317088925722971067932720325920643132460633539410336373458976176296223168573118424381834903355838054648243512342679401778535364561529346430279602884520383060125498302663416991277440871278562676990403045707408997457347234592594047947804893833893319637411614189880547197342274577855527492409904212276751415293774301667140227208869735678595842006811145848769479703390627437536001430117241862274227297123691463582083391051687360067408971931700705840723904793222582475520402786479380374375812146204221058059983735262164009716811568291637705370281276882235372583026899295652393966564492150694855447419810043317642138958907599678281180260396904095563206913329458906813043490277985655648598599055903996667831631812567260502251691501431981544265826012008937482332919451123410825542897667693594128755529707033948713126907852397705126959513154921139967855740712465946236049898431770198618877046231406374449337233013344615467946468789500000051928255848390297537415949396052534575220450173764651882296132976117112319265582403882405755972119354151034543009695237282966470597247956548358247278091285374703479906911004076496937481848028096576644426389767044241151601277745398834681383602887546926502536052340496115713564360192083855247821391566899971322787592815491894632244568580911780360555141853213316901292430597849440278978654973247551033464826081542330986985880603722720679829848320725989377480916327899703640045873803024680347188870708783378858899942306257077244396083804804074493732882837370149918488122361273749687956913082115832943960083270421375308886751079677887478471353857624667724543666803947353762091814678462421428474417834817533847648102364716169635381921457789133491266703289343038069650679732701440083794450093945523060853825555498661553219235721764278359905383113352298622321572248064570360641893521966747129347631069228443469052822076340682560608276907959783281406125802347583917280894270355184440664540884851613936230430125633076180022738314868204779269777309199203769255951828547842750535706607759490782116357322090136716645729946312167158408443754682247432186037985404407879845034939531341425724055052089435993684297948386611617295372298104932078714130271685862238952593930240051022232796756998516325839312650056876499818257148625770681919789370925548705946607163414278412966919894610221010675481203234199680231889140890512537797488928202728756841694830890075146964851247639810337858976411816044011477286909356300864715378189746218210043816817241551792249673105928471359837735453124590439584220117128306587233565385482393870159171362269716353638811253422031173494200085634827225641655240821205431717828914363450931999079517913808083619318762961597422800599844597895239191521889053529920435005844577679226520880923866927281884284333204384336966044550927439516187135786989423559740673178342018535261492890676739435018691610742362338487821038568770461299044122610112352528268317027301500739454848481604220582801045776047849306086300242196550832782143047953259241062849578066598552956848816974498934006916667764485830741249255751139914917950213200022280263061017707851315259279433880831438651658302584454497883925973442255710466755411964066927577743765727420849275787259556787303475193691964559938176286976435901873734629822024405976423672614681566888101795342464318751380593135970369843476928545019617423978778012340563475544020902394431614479557562619807395946048344352769576215342233184217496463299224179844444128160727330195377590407783524976789851340263021131356987279095728761248608339678863124725184487476469408259665099727736524516674799136687068102201604256522774880836847869775492674110187380003681803855907548340528279553428675597993453262464434167679623994222954095351978050416105699157896144959557519681988230821396067467531116346763972123293256815804864559307783835050914231951834268518454634326223668788402068098996391298186079796153011071231034834182343734405687377515234455980941517075923960895718840128662146149984702185110457360295267386627322023710880701744379764958870184917887665925802835149731982079953958817864805186799018312961272217610607219693760773274682747918570076738949645802601859495443933738423573534213555826444866336544924733615699775634177856351919944022309768377273378339085070878936420138671453987633029996314276509302700692738014692106563381713288519715411814798137993985149339584413287681992718346482444823950569792795988297616786411507085477053142507803906462173370073891154405720967172027782177379743664940168756694011603164984298483357139640078569154181351741725575604162551123704712270014756527153940712524745006143619130715739505759338404235282482627184667042288323646664883850340117656914227064511526317660007877322747424832768624762488471868263690288113874339475242570075598297801960563769222483642879886592837351789040625082946461105930807399133201496607235416828489864487033216422905806268913044692887365586279148442349476537809457466335296230930367883684718292113301978448523930237973417931581318334705541382714347549667675847635911019312129576044869699263687729921457136864163535316430488426369497271010065925842694043032546768580578411741672781621471584769962347848830184208925050893688572731327354525416111283779218001811737280574415104533360359078191687316866217163729650045748106164867128799968808650215153981818638664506678347305962211701558706972321341180310128692669472815783278744075385221978694475419883523922554446712123646288820548300078834102545362079877585993892653332026992912249995779884782507097348793703665860699982518932543631643586705924772887725697564390119278092647321430315910378012473200497367711767919132757548099474678460968480918358935511931063943934985774506789154464216749551878464921347516755654130559633387084883506367150612442080283658427567950039164434549272660784419081337030997440168534266191826800201919518293790179965398959604184388224587695093018156054404313276853517598188099044817471824957214090475115634512654765462931276388615238811607778873188472245245057024809097933744534868070343865284095465786571112547433468106102960066542862098604991238190783522338390674985226918590694547433061386466651726573810331824552375816718424726807645066268352374996591454336900927374827086880807554384305478254290349353946914909248298340110906175736525493857963976887595336759284167577773590883869791467387004143224911806073701162592242838221138488636925778865621262660576159095189942890923221584923884901326204372058679281610280269653615328302954768359216283792890538491740781881692753292377318105215218843441274265727768461868802068009077617694709816502626992901062864776753702749380873577097679943192350407692714388724402988987856312996487921843725904293821886009673105251093610445115080336489708856036604319856969345708636998668751532695492567524202989280678020065562131923319870826921843261844286446375851095198110149323400934097042129722546414118011311821300677565786803208510254032488863953477577041699499451474325508381797568599846285238607515410409317721002443857243403325520336843433199055720359683036084970259955799911823782915994783542182356980664110099649989447689634661894460528756713002588340842665831527485883152502442649982130090269393994431481109413995500400364959094957965790734722402270727823151219775071212872344964852479332885448381449931458280355361633287899056882468151613958078426971736408547184945623492306685653556347193744719168202034950400195944397017432835450141230439696856622768140679489917847395229924108925864047388307006933347620884762975035697349311429036334237295304600266072444161439469749983450567912040361204324011035843323710535866461802197103844930484461918370377516265477760650846805596088582873802952304003897811283820085010300606078297299813645126656288814509226323483828058283953980992873361732259971870774157094329201605752555857333331727145087014776675025557783123106837262818229570475265395224811532145747829236448472694253174292899541379064133817464215133534381445518614100808532892872220498303764362847694575930847449170383326669215774811686438132243509352905051084676891930827122207404372281224867970857526797457328603587042209337698796893807544498521904966234494847938351197510796885336985684579973618648781356429931489537960605669021498313782623229051963695156262909425149144602633542756663413441219441903943348047370513982735675930626017829772687972211905259521469461602896319968488290300498892669313161870902700358287107211703462069123549900281568649420872061795099534849554522774682607367460141971943757694252930410572283880251356115610010129866345225207260268817459158544966001874076055684116340162405010218301152691267010908623516847813107105022474075853349532710639786269711885532841605740758231344232791665399964618605148990204956021688527284179040524763905569911815913825553090565163039663510501993415435613968938269532460872653938024589004644867948670454673304114329054992253443263993017390484284270776698465045739514647057163925133360369696652476588329960310828707228913620293038823150597908179465451696960500903311597329484688248578577833298960657167627145458095291142274197018182425433971224463590747040386634184304044663170128518798537421599453039801094503519774540425533992590538343784988469461883714480845963821243452005471999185233312031836148315975044777899229864792718897379951904758276144500914569331136348915238562967144895636379635737075260563837526604337353818333995276167016765055587883775975582990842842920899111656386869168627406205671744186476707920372517036770661767716076323351285886139247783275377902117546921293250733955852114788959536808688230398384013467719171089983818639739938475057191372036339227899742881507390597812300542071830906056693336017368727293665307848001627626022916817409499450525857405075332918859335498292241931191222208756199541444013899784916436313824628471961740523949640999359212571470620676114098511497030895764065717023973063527989718531020740893215845980028479297605874808926165526958361524815917486864870201564683582112726716812563049855387331416026541625176834083924701375776262880199415632279470784041054640236869727463647674412465851687439091436665182052048642227679594210141940487950919946522378660682007235207992313484238201826228588959828079217367736536889308024993269717693306337774642244556634293680434481121593970405614186313922154173859349607663197650437791965904925034667137608915972226595711333025542445942390413800642835677812128220878359623921064153734796786126108381822950736982930472420190026453221497407762568129706142236544216332422724660546112435068090707844082681961605167903327916079505870400236675511461567002292780318800528424663049692965244824819314966324998062396902846655564862886996609601885080974178951771294905654590911280067196131697973289324770471940548031109009635414917285292233719701865008644083845891492887516981638564270905358925494168920833765719700117882182443844806442117370028219645683583242994547236880803304306561406337068778662561298756835024592234289223011595352664986800526503509287235157400493979329302644647956510943349726021158287436880248319697644956097414433105505285330900819227653121112657151955958482807532442817258606114974546751390924321457362315421403850771012693181419451630144984930032417087244933299614674072187346776345822316212988248174601898576883678238967384045875497079989477632797425685659082197540744256660003840474964160323433691516508064335429311143865196095895747917454688594936485694993839731385912374564870710948672853669420893613405633113454789328707743869990543132723690661168005278295103087792419992866941565893414428856781101053635279822130690375174854778040740385944898362526746714108078944363122860578334943434954947801617715623750771669872739716586233960768723418065069079107579733936757012929756408058560957776323042575408830152297866048371941565210978500368205239632460055358494696753268168431683736804043702968304439351108974261411190247630600956946943211127448763516654966377079244633799206319787280463441262691322889834810769831956332333887629200683039993769868126611175208409721954269734792739118940041938850571153243107406815791399986555021666982118232549090462745506675446885452553527192958035941233624153123503878527561357338608924914802459535090569525545974824851309900822584520666371739802768192741772045844909520725959675663103053898143710360298703035877963265527778593692882000136728783421381366077710463124605627586952833576001450044064394759583994745131758720455351398289151740024359788140989466035900645092815390231859331127070258093827199297222324391949154415635191974791725995241732748498223151766208561626633704683851674084273990338923960884396576207269744723931988127342997595312205030394406780903100208918445421461917093168331316344483317652822297643254343545342879762098109514868271192049192502619654260243959760250128355661643342399024231920159446036167615134376084666215766436372904622490369675617660867843413495378332785535559294736385597356320149183275993402182559491221922142334654135386841455980026205016653099562892071901230744345036273555753863823134807718254412022768916414355217392080269139974373834339271754175794964280523388938188014261145398572394221996572120397548342406362659426463133621893396787688783009023718695874060348097528317430989815013895491458519644353502008039667792040012741489264448229468989229806599848381047749994233979610046658480240887107794232664902171952609454424410605426765215722657883687604200231150260887444368078854825121550737780651095280176015397316953066148469459649919305919439370169103042329074035696682679030064042139973808757806917766051289282829750297013094433918445504098738399613534576016989489552285480845383087128597217252558598637845222509216070092952714874027265455827582043229413294688447585589316464602788761672719003892936589881733062296204512905201012420514799611808651168822022305368435451179009821929595565178524926934001970399963501385803956516530517267010964020158300218469658626898839707096456123928054173769006192157094416521115110471820610324283424828216138408839697215855430645096164497770660704472080764647205784526761277000305593860529772148074036088049949822651114954982127455420930141342923190154563675115345746765536735022052780231168258713134625472301296002881447442932542675238260351674924370202695064444982134668797082155944484611466992197717829843501029761714477070150641189803710169537720999711948484994612916248164757861653506998594700120287970435886903593551743350250072965782449182271316651631531936226723069276763308301026600996992909972281563752397670826682929860937863872781683573994621916049246388067408540662619276600965754515442887596555204139549800906523535788488850554147777864842263339758411352912176747985308661226758622937088609049105591641111377337791069352761869735525725889907767759223736325458658859803213367751592228441342705215721704691530919106779614912272978844624664349363435474767465991240687261135066244301181640942890250128040651365231574493168182379074670787262022321927243491301241995263204489016676934189724965421856644655694200571149840713426507213844663112600126921341692363593662629799956686102060841849325612843656857345960956603500571216791564694507786495619392973671146715160705798330780306768875887910203549133660471189977075907016895999372290206190940963107424764587134599581143850564963306742475979016600851044471331444937966910260054402575362050131718636310411143284749967258420192558961593195332905735039185802309662418088182222287616755350704846870572926014017777318589444469851526572849645344391850296014237337053642022907428907525113369864900238101389033357366521271590605347941058106964417556834249439463992637022933938004065841944912847993720458885092912236058606420438811576052721392203514720343785373590116008156698063985025441711319035683579574998161153449568066522420833602844255340259166820374957650715079460702254950501894810614939815968479410552795771461906326074377652591212648118890992922437156661282473171008623720655156288068268955545542826386572359984715903182914587877069838599231177953379462227291746277941389668827529696131658267898371500905506498662252622663842692917184889131041144761243520567386837980288175384684560266635333239205224584851105849813460099906277122048144555472334999768824878035196645386818867880197389845823057303860348057815733704760429996411303303139173118089607229039877294340323402548092676396219068299472774187071878794469487174732506261269946697288310164638454514055360122541928660166637973356899089727565483148615301049470904343568496654881818392951465692607489966089600970040593810851218719016792812407416368419197818653749263321137360028066219040797185082480956352157651892114305751204063108201560003794658342129300962308412928908135809271931683088479381004860627299911074783928841953496303492798597041797012825689744528469616142515009453224359061865664913984975263068164779967731579282051461807322078301174490090281730575696280765374570993621720156631104004022602505716181898972994107590348782073888183407577433066066862613925349764458366334205807233299401326971515077009608143896768341847304921675732820928874147547978387000149248208921459290912810908850346388323579170352403987030063068107847707669859365049528922246251480055806972953053452054273637421121515080311757850456004259394142408482956490098598314412235952557782934044385610078498669686576744555131545507962796874670367749057816561837531482799663354809519156683111168418094613564228622827055251655305870394217088689459841416281199087078129767427712280912161936841466562732457093901807423556148231045339953680297198916213974251815375522532296296416225195481068113602766125123269379347747850436797172535222782886114469902055693394636531748534227640794800132064539105383975407935539592029194703179446638241477259239527814955619029045898952567945285552083799703782869559339737173008195245221933980796959537115224253261199538383459831523140105769977167045686970033000445629621691769317279527641263323763486731422742916653164066437320234154557747774943858342925315365758473121655001557021461231811869904915117044242779345138959479931446349077294023731943178827379026874047941602038184428453403071973744108090365659887048679044623757966376771534937631010237575954989264480190592621065142541615637037289071968947719438310764917693221384743235922818720985864781993751132535613840076464472475690752912100106234152782143835299233152089531637549250067779557270081901203772977801470155606915013323751524957051377951132908913104908713951243897021998516705583455638753635748940223600493666796694428487673184924574358530407092219051908822677719942302602840386397596042126609847376199121162884580078054022616613498289532919365447372732051060377372218058453133223656845629799855846036880769030676676595473717827233174183573893453801702561452653722189425192796111580072523584925237096138928819647313338630012499349925032670235111223273047205119023191259986392002709146911719865473700252676199301415019968042311741919739532686753854807528893770529721793158653703852987724589137684481494092683308348072942802259455931260576952584803611084896983833070666299236032055844316946745653016636945480852560030846986806230686632706821943909261514191602972720363137381646262411664206681482423330782672017844925937572627577902791246518545145784413574739173204622018153837263257756910189584650844967460864190633475148188422007673359866978777729743448101172362821939865759636244243158544638243685501214022568700310023158570985428896983242783154183333469365899428727687686124784904220491499090943641889066618811973715448765530647858032516982160468990715679175026934791460905732989389243251145054226568191853121699431212111559007362347801559856151029005343545581588398006126477358472518296031416627856227943275717693726129070552884765691550553417495344866437339284149882239418052479479417953312439201321807254377435011129647030348547729438889412857735134464539089120148024897415838810072825172220938295290714514404990928059322960546034651422398538697213569472441613706101129434417511888861579716325081788288055412018004231714973406898380924909198806255489930081344431014329819311389982237096597761982384311055021272780303206643572763435721950411682312710312169750973832855971480390756891676937695774781052589618134732490380894821211784593925746799639031527947219741085434051806010256338653815104602465160872065509365533794501692940933058674876325530332768910141617643222924449527967479685726452340488993233147060804157540263465705715867914182057436848177085125079728193733903516670142885216499241794707887649714590033791545159541842548700318837112311504135290617530460192785563923988806260458838174287444156734061381302897743781978819740061231849609901902333220720248539925733940017561586012187940949746638658301649376934326781931168259535500499292753678889854483731999639240538416622480432235710370023673549694133620819028045329745522522244556950500997397728131745268577494392702141978109748072668910685869726331780393269082849147514106426661404772111160605848617701183809383360007011096503938297402963020660374350720094579346336552236817694352840709641709595063503044143449690131997991278319109164516429424479603001366420274449281496543705203449906036390888889196545969490792199770837307243124883494088998576764753629728578810516644296079917467756592827151296064067402507386896252379651045353770173564098254704582760127661741892499216516238739872632727981806848976946916380970532590290117151636763655302724475139578096562073804613929148438704042717306180555790140060975152981213701641104229503802096477661434517444663579695121144029080768814739456109785457897173173665940375977538686757373451427176333728932985054085874814328056707884894028870187147472495931662299301041896008239896450633216416387857190555094469040803518287528666257053442242296722635448417354965405904303092416415215249176002891156781232953297830004404776263511991347810121063687928890191127142447356121948342640792169736543868451104209156892645619700630321395305419888919645310525377063841422590816429848899747294929364466497020192291881878945627147587857609383809991109822050263267892548105534880956661328247120347123673372069278140206217235852847230788466125485264738618242684804841698048720085150119095013964260123035329128262621810355882762771538107765758203683218126658111630838806903697125156154247671012358051828048291684897624880728722012420975280268930918138724126625703832421198776121941715051580179478432152024021625569711701516571408643646036748552180701520209470996120790569754984000686708052567844701729212107144293304741911240524542257374853033939368383217252075568373139166628548076903359844617640897391015016704150712716121791357853575175863261378654020787751863459044336375717235413095889034324217640607086504295059988304395071123158222340638950187266148029386218071577485977010309655844116644691328907580111246530352709986905615239930137514526815258081478984573502922481811530038753294237675989425759783400784664016356650566593668271864349714635080167687566603488680192778514779980928682316726890551493633154664928712382433649946185400648440559749292667981011954282601431057051717535314719743799968224404366637120933545538031866680151355148398572061196888779578760418530086317756198573901108250259084084050695125985101930526817402925801914060583322829456230810003900335121184362528547956513184768911007580745334142551462947524339620965556995613154897015982570471690395053015533886909328198139968074254957773940377557571737414924892243897252746296629725829657276193819246556165203037635007296676918194765390339092508865333105036537805514406807123089340583737488303292050554766426989774995934192005045163836363876367413794164196798271547297610032468307688916492673056681631900947364868293997423838876938187528995966507572328942940095968777809119441541846885452503001490387410799810706245296191620130809814324407378693037148847574259457690930140739425719116702424165629149746408007071882302096805415483082385241376197783685669335183263560973711509497681199765266123434038465805753299898431670771818021078785956596224429900193181335851995858215975999545260565904758051976438622858235269634619505771849261348934039443809929825935690998429141334392577599562926122872283238828067828236227612129185925480986303310334261802917927766456392852007264449384135738057854942218390831359983328039674533667014850947373369628998762203831114408391643289340156414546922014056259546196620887210131902511500178389296447391887442996091666913397881413633021462433801803258033968323302633556691833568963711481446218476607204580708337842630511744034856136521375088583396972545208141199353145463956412253211271887077147987309642914408859602716983928012426598774396530816633500953520238339906710461096889067557413577272500949011792697216806285664948402039833620027450958959406685977114192577127637941035996640862269420591954338335935066662026613556379869378483568754943998257854847963704669576344810729417584009616503484692347081158762634979406177878282734349939932651300847455575442701530392484208208949321499351387204865835337443021782627179747803032810051662728728714508274655659436442830390296629595354540209550994809299772292340469212450975250672409034947432191563231564076729797973552849909754870758827039556572087199426635708184158922435764586702043994970049868650328969106393575664311802877830193403278715774321415772705900985156602189596546531263997511176221596020841506844320830752411966467770558730102397416185633046812827032570983070172657807974744131834980176483226979352239835707475984203009575629882550034687389961879634029102300471698200645948926664024064913288774063149104444865587529815804523158236102728452374854386707498263241469081827073474918881768388683404482606330406835128933802914977041729327145086583269723010878576545526334849522456669074766675480462174011204459436022130417043155332483813963073430886009722874841685695913006276182519925115626461761227567578685955762781226262649942140646684887808347746711039741531324529486302819228991049219110627333319010566017804465167593085231774420306434907464411188532322754299820940788168146429612141467097901286427962695385152721963862690085640832793339263059597417004685297001379745578378303336962989506197651677153906841279598664525749387794921080302081768305970333306381884555849926789865885830199036554582288020516121747350911786178044712996753613721701518207420288755792455863635305535767911831479941675149643370803288881517449227503950145385254487945640433517241241355728276116696063190374650387537079892748656992635449789806792256071044559773105436610082100278716622904933882262511315170592086215966411472488294171381039485903899596154361437010394147854201333969806317097172232879270740887147282910401131444332612972459393429538070381896005511742010983273636182299625077855013585256983516539855813939972534520566012392676891099318144291142099794603272870307730982672148462198502145556863735725105409599610671233255586340863000484244949423085638829778939867961593463277986857194240321591410822549448688553475188901834774106614891751980342868998796355621512289315141746065113874860386413810271812762263169407118501087061838937960878177966283438708072166920072692186934842637721149081484991105887679207761785361321352256351408057255429452806938735493080653313124238483727015520127042903489401447985030672581773234988024864992321543528180845122917074243488771030537516853039575326645419951847675487782093897228297465894724446440942559936590778450773800341987550956820439847557144282966037531556349520402409668530018639512425381586766157847124242621290185389675790405204260161435316216555355395165134190097295058371499594683369695288513096685650429160574362362001749672748708549876976569323496455081587870960349627701015100386196610642967417749114899316259467899927680926243483263493703911889370597231522736749190484395882914854699746571312487763275156537400049448230826381863471249509764663993631902134610912936007755392558643174098400446367564861148305620359222493453035474968828931155237363316561876425203483621239938609121170941487752257500632932899235623221887596327475681960553942274887059793717676700474614984295859742258563836881930653268176430942319088610912019560884617031623642245699258828683603274650525806678809131373437325462534532408662255702031439563147480353788158889597088365358007995227444681681875018422580475633955982595809905269425403928833103672209511117249145904424336403534880138092076403397198081850180162180826435989374304033936074156657320223072174185731820490524881854122820726467793573584548672363448155816069690899898246152623368706298154146658985980558027083476747673502479117232561123652622637046002105247513017056445646254618702671160942798342853703912964091179731489158116687313395763562382390324518965124171988401427206173688546191500541077456587346450418303146869055770712131294036962840344894086591945692292577854036651629623401773732504789260090675796197079224336426311969430790636967820444228427716617277729421586540177402321669123336888331512090531464918057307314338594741317219969834139523144339720544548627287715520735656620294620284057102544653737097390695686971521102990281913497066690601712764958364942494852569530364752856627604658228710859896604857109617774103799612020378030300741347951254144466769144361005812207079661566520355472278133537454528141776260646213144968841087720587834267171499776809301223339289204524213617735138014464529651663874103452739935243009412581301186913254031674009157292681414272106571704614974461799147536899091277826377364834410463196478075509222900338689650308900970133050406300515277427316727101447213436432260383857533695646844639606088460682124909565391748729122692741394659313846051003522898584533203049552115655494351746676864329185689013204343483176109182035162736607651385994938891340567492234905813095039850301884825753147960909314594457366569661515700029997870414332733806237558896026636158932386009356404077075854084262928124597788995808859324617082017053506999542886167089372245383772833516101967090787776255477329412331311375563225272558051446728371822064929927735451689682759952465594487853317370218139497255807731574791611721950815435310420047038611571776531960630164842213365803883438337560132158901089571753653319983783110762055681177704087564963014406778031276234679904681701931438165677149275385289701255182559471072312484302757473852372994848633447849797253197587095958438705535705365927316643538576799793323728069467586181911811353647170991347795261716211830697527611443675114364379997824301358888149693170601802361042033230229187631564909847359444064322511757641932929381706175932050066181141721536445370686062177563130215314313610778767003148168197131543502289539762176806642031339709607314168042079123043290136435503649970706522578134273194149419055690077154758028857197817513560980479908273818190297224768313164406391420535598839049694912127879911277826094753262630378628135608575378840565647791355609870102571303673359611814273569240568336593785515342509713997097984085056425366011343347834559748249286217612691066155058944079155708143247155015971167712312377639737583637207475888776023019567295782479715878426333580440508587456064862571808682948281284817912846352695901544371200426985469589992185522811442317371254343582849448224863442930908116723057555259409351878998145879985946674877187565306339992829851591283803132230034784936178587745388186398913876106832885799436293932132124009121327664484433478268927015817991841492286631101436616240338459505900334154186917156907104398241556719882905053483428682667017570585052213875692173949005302594086975380536532988819614448137897340583869657063985113732215294548957955392749410235070229012934092693902625842984111934924428604369271909777535846856121700941750624497010182031048641266926648841473606191568808312603137824572383835729598229336376809963126368981651252309129233396505358077251646381462307314384021889234092830206173199453501299336764294023392022223600830101040183671547966776682745735144371783164543153569445600754212842471278190156037828397549399012132157837113131256342488674504283386954001874590513329586050666830528095965422408827059873017866062124182588353916405756890446903214019023761088073213849208635945704588973828786148806122873138722903182711704295090058692832044444592927732108494641214166453287931076601621343152109087282876926509493008758449365308005735322898870708664729970050737576296102186207973667264866589195040522689251928742190215915364165795175773564153899965891720057766787981450944085696723897995262912999186773497475416320869569005303469058368911184836668839567766620243191295851171220281505134725140561821149839407682691221798738027226556030047775771825009053450956453183092754056380301824290892292986939350128413332433780440345960603271319983383651805533460374332067204818897319854445596236926217809212404255138660108622268115307150563589310226394584255846604130919665964705329433720646143634441968820298774971721920671762454823520509138891998548956616598003869115907019812361831225128242720383591286058211406415124157475880086637680532907213111908474193125160384131551841365537660003788795985669800285898561725062155768504751504430587992993062358408333828233139918111808560376666580999947810320067422078113228282233479521941656815741966065026701864170695964224904171709224258804902062320242930916316563544798212663602615549014811209477169284406523266310060549409794869261723956804323480291956571672776696498004119750067209729293413148589014300313837233194181870070462296183268233675459278158525195065225823258682665078430383126969082850346018729906902568334006750484146035820152334561625065325535041213436628542073336839425896666725257366224059817414873135165994986545140595132304683090925806064191184728560306227390428378561449115870760682359603551585353647125234061082917149059748424597259959016737437137658799073181344025877381329850334451635564253302003538865830266806533643210474769842534764573676532590822652351387556775365796712717286677431265036451276486000592454812464735494657263139198035692316938781413710162691224205451526936587059782937952938006229473719361672877080201498481667191607516450120383160428439430929481909667448166953045503280281418768688497151113356567202601061534382108298035448251609443668319465961786976767779635261862555978996168581549892061967222384155974655185925571195636715579503455407630955704003735775822687717392033944321065947048770138602875878749475031998437630874893093302550705486190685651732358387533199072909987516780250970617435639276266173327656173827161323556774644564964942644227409634555051197403692798188585142484960426569836183620480390469107524037726371567657993586473410616127853451803607223476586461244522091168141277795094621536444844739440314498986771326047344715748630512826943856472958446243339453276077519738303996895406588740188363701801896367814293079832635908799848990954790495091154361359189020099081497786219256069514961752972029203600328282805540712071285386182704674987828765568172553002996252900849330036098131089372129677339555370257187664676139273870311043579645146046160403728190336327066182132920877492077466489359623128641227671625497275362779672472161334914932749541207983421241139145403190685117045174001897926345729245622950031772744328673726787264967438918413483636317202730761949521294015086412085802688579280133939287657883533620848380968448188645895962088297336036854477674922983045898501194608943089397743179074499321845133469151383580260753706628286337212240282369362775551653913565295534128803016316053222661873582678609546633325518917737491106933472876433391058532574710370627306490524227314524378866949964338712800292230542327183531806158925596059308551481832138108410338877701984530600655688604526262362603572083053220485868283085150481744384304896389026803105943916372037322552497850766246456256173482683691970059837718445932371739015936028238866223226183854776152057340378576463236766144520587170205002538352334690125507616904202741552467701656465144091084440252317286717833441820734875027280754727765133817722329103251956552145333336269613129905655522728425306603735389862455578836878976832710519641305280514062661727885861802398596591882107031274877466626888942920040510467093652427397174265963172227910177268147555785346732009535061410453721758930565820224994869660430888801710341824129725479768528910891868996085913934870878197514281735226604342349634832569244249224426605524256112021053647517732655869439903911325296706062433343368284466389804463583244463234913945246345732390012208116562057927414738739539571650635843929613026092372755792989994541626387825354963501475630625414276483334992550511590621004393964578383095910087730639706741594755514651136540260803288938046082511544179648017128842625386028552471181350387261955392686204616289073703726931256650661852819644462426148534253171578649921513981852743214515076338978993492892573961068007838068341264882613616653352633497634790885645538116429604252822156479658118269414722912109748672480561705293466792161458982909050614089905391470902686844718850083715984791943435046079379375223426623383641197176911815892251068807543318696869854547786322098226958959688303730985963537843044467542255880066675453831384842045999023974198390149995561334086711686273796257629419740184187985823796826541146485926223111835254439035195555908335388205511142156026137744141579527414656356108550921522950257955836370748233594546270665015394747150644159496547846388159659390910390360106128474683424773115648440197227212761103804115201308545826471155885748119311758701154084103207770400724921697064478852278406200328326856683027365271707974718922408624138438693246933520648150529040036655620769431425167307840008472450874853571590344338692448333125099437012789461762676928200366286321065475473458781522962379408044971834197891799227921100297613175208745308695690460885376249492158476437507063867450292550134606750683256732210342607572266938084554917786621340040284149872348036531996922067309189902160136079648801768651005090086823093177277903591622430135961746959429460673288276610411324624667348038248637597799774284433322987538989294885920149572541442844912493542950091402572036836972310955395889898480960990704987849692795011692870662557705055782458380235953551341932382228052279303482696391824041174106375722727920908825404528763741125613944035807300157584664004139318292365226198687813662158889339715613217653824085638982311816854820016389402548763829019737690663535429790482581791989493737547697261162543824342608666104680460182268456948550870164478397274968699034208378100206351853977464915658078229824788114085101273444153785017126027828002501360008750640551955516328351663691561154664090644230509371767669812626478718050411257368493144815378032595908057908998521790638302374773365466128236022139323601641890605473645734000738163171088926764117638856297156298235643286248863773046491974844285276258381159415864772626415874326873142978247605882023704824332438546878266468672707095408323470675990893570103473959955266747097028199437306670926881126080373413516048901614046593341511505547857803567757569365390662190477509107180408620709364789034051025351388656829247269250796944112076798743072596548976000950360363936533599162237005156847012641916557982050897453327185204535798256713273590334538028809761111163354849598454823933021592627001787873828305572852749289548508007152087947108124630907868075348507711100161977052049695245194463405892571752087340744234860460420433799370674973000704500107679607773657017001634054806110728661156255949323543884977495204377872224572273321024348821631346517904978143203838472615553852462820536190864791595933874162564188655853699698642240018485355653757989966656160111152919682055284403365244600363833859758292602973611300239716999603901571027088665775062189461855548622817508399938638345234943453669160148920831605324132008936549701420152399911388348759600504248375470028463156623953653553612152924485261232825191380421864772922441744485979199819806526847376367423970514843968746726220891395628017374156075769857104533828731465799795281584949026976619203463122423631732428186655404070775819339757170847346686497317739589734307612040497229767945569909423261692328056433634216296923763972209935196428881521547565345829856945580266530429319722410257636536739838438964848363903947855269439743348709313512121304027997694199639503337165479126314924478507639780552679361242190065012390021458489167443393005655691827446824944675562636988541192231808827206359978244402517364488931583053034883779579229497342041232112095261191877086936892372507851696357877626375418225525048729430080850416789950816641882325044583847550121990041068103403592072635242454109431467746146417618304226334100144070731981838677682184039031310302245761447574905680062376177488086033705713658994588590562023580929024472981280168439275147826456500950566790658301131981502126181795705023466841962306469753515730443406828606043141168277190447940867865389057733922168368939033791759900605219804475864949572572707834269709370996135922364274921785421660447254912864521525107226710584585980891150872999322340730968372414869919317397776893351245951322054175618060946263560774874030440234417727924210918193708199097679760983315664679958015233909105195133679755157763785923258247006084555491060009770217245595288619866606886921419863152771743865499880471424899442397136623308640660305936917890532612338101729488835079791882734615641114800412633935279158281658376720275917718808662393583623211693835127240456630108724122320732512654036648770292538866323053476374812058229309073821872085595514580156180073141067440339018868757311473724646342682206980293367227498871996862833510814696120448851796220068671105593937233632827131844910496183025472370598959354729821378989541158352760840529925425796791448109037973107135775686395388299812350004313859374809716734005653536747666301062338327107040814291637468558638947783689965644149586584002091053773261674615193390348137512483702659877527648962503249287359107741037652654792505948433275450125872317882141168399043278544874353468662163114253160826495827485824538576541581626730585480328338694057812479122951564526228108621163243929533386301593933958319458436809542651375438804108310979591945220114400574289156091346649033781593109898271290062798572154274915167564389745581094773589388453099380142998493764073014537886113473443827581002397544404272010301355281526258164390554610578676665859048314414991242684039405332085135355711906744793937560407131320786093461047540933219316234683716249640879502037007676296976984660284309911646440811771170629036885705180336020057946618695190829355101199677059639466257832633434055297501497493306250206311821322292342787538808072201679541438147472594983173187606764388392179740006603862024127242892315396072843773466763719813622615413833094995072079293055302385105601271139807793311973320239443489601654996708550547911504815663165286539995612008170335042132413155090842804025861683980427377763243114840242886486345175237550496116382904255205716433682491091156986842750708485779358084333778625994935836269208041503710761569238886449517059927436987153138478125285287792570274572944677625484001219343503201524311329691780168466814027794672159713380520468702929384286401634624490996266525979693952735720620561847279946215375506169749276528590085298171012595882696984225465450288307804694141950202099172086198659331832226651211897786827547472635582553386734619289930336532086085330333165474235167863210685409780716477396958690502529659154834828317857764290929803990090454573664308568632708647987426707603302018375584152297988402057652284316840917486913812761218789801700727483715596733208672939019328542988424313473869648211410747958378228644121804979274695822734524575652865809753214679643009160537823690754393334480672585591339627975562174787126857445571446002089252643991259437981975903379329787102354303435345152310530020696152035913929905231262163333326107374726483976763875328357392164187388978885914675783312509567662464753069103430697939810494151208222138864944368558103881702924358934738782613298341416264179941105984158808559546899423645448058118096334179984212760787349841953574445461186794805671392402412873746194530924467458197517184825300551079710845191693757201617622807470293112018282037296146788558357853879039369624444113723716601310382516952927203107662251171842913617088755109132248074423800897942488292306263604664639751875800502747901240189305935595008451860461757006421786781221267479088439892800806519641780037745004780794836849670551344059053983043146259765398825997921221664127963839547869100456648796321913463123533880687785987092421485099591284639295900495349542808374356129362447278448468254780181091985295256065509603754427286804226308117079073899304893599204888075759542828878945353614779557702624424807968539950900404330076760762039377465626210402935664454600304968399178672684868473632343256966961897327441765869478750015305944519177512077815131860986675350047129804504106541571726747216390775152357809915156382156657142094530232021690630006635068503336277704435530972200778800400238980682239064141591355743797639740404702937778731993187465868805615992447576581673499305355641886467223775216377635485096013610323161145835452955581574663796436334010614274723598642011684812993985794945599670356205107458191226233677746559890113481217851078944350594563484518850851857581904648594351580734157026962336451668361838062142315291917668002726277618895944348627542013351398743854817248794964170010391467014189416784606398935895688633070221728037271695087723288955985982031677755895019850789810031674502158882835455037071935533637414731021762157584571803343326349586454367540198634582417426758891247283711949168495422973048918350987037855474297702040872089835287581079450834852387126200771350861828656799653150488885152879868005627206060365609286515553781555819827285568999297805110397803069033041356521132970476844603373129021710138147620891843876633406745658917252744355143575763063811572928652910858916780787360045689985889902384115147132997070724169470074287365817466075785906496061476845516417399794733920734260482706002977737868800225238368946998935570773333811501931959779730985931970543719660436265274016684274784676693167443112654711829221166351942796435551038089756770560366365323067473981403655729289524626062005165793028706721206645246857797252026100043796413432687959111551341474663051299789124579197190854828995165307846057133092274909692757316069330906367987373650213962842279291191932425827470594943950775762697012619460766568357035108040103804627162385810088982941921254466286351647827972627519182344817699285807255517828527797146605109807774212128980054028223624689705832449921994121278105548988139215756727168576450698840986173469625341718635435144409680510404181331680641009163770453875855801011143728156974976816005793201849367079378689489901957319356107074974260642085792118328085080438279910555726436185493312732046804054776082114085226382324785483539284667672360971889278895200445666437342018755958245440881818471853884182838838008060054287910754512093447965933851797095898892750255335118019277670834969065349660704425298096755614003140089303733108669509391685448971279723392345444057415442886416409869537564847829539499345606190194212469198744301627563457340770098001074624156142777058556275033060615139169680394611391735210242902778428984830578550283971882020127151593850817735165365274558058612850854266896430808044544065479853751584472832247203888329353193113782031825349758399995519263955142693246847660510637600618880538493443891262906371839776170552757200431818679805488736001882832583759735323014027925268795535483864667506709251025237382797256837703043114740956735100639131258304622823303849721720427200888757497884914824851498349822723448339568226578721924754815905391908751686369781455297060931637768739227661583734527026749485086393901102363315704110152082067138505804742424749135760270895308358611344809126124739295312463705113891226881045160932575145968852658598010733962130124704333616805389465209947462633130310630584793305387396507993437418818860025911406842849771704143709406325131502772783917407196974767489475844990151753789164328229159579170188648375831268255971409024434368360807702441440405131993566385032403863615539002382890185804245199383627791687898172508990625798148697182572642474035499944961082589359966183224723279616723725313082964698768106147379563934174261579394523250279386733505425777481010815500758882483664116396955292124862854671716313059080299455420801542298190819889217268611507407869096207109021922899063012248894664944914868073726413644135426443501232661998018576773697521631740294579177597780848349954533388985515665969785270710703991185881035930898873702733638876171286560038828221427101670285986939936570079647660861691228715638521095277606025536240406209456111203253370501911735682970986768804695091582465317545239410752039077243512110719186690066495898736743369159220500379350818756160216473303756087901313806516748633036093484022721875341347601949420815649138829890532404952273651928189415429764789259322339963742861125834871978105305202552656174683836414469056125230886788833931919238857341571678452884320664025520218735893939330188429515036093960832194110551701117393043652638313380142268341810363529922949725431280980980104717153464257924709051786467510827154984471240688630379042104958132661925379573164675648082387345759069063410131099524540922185894625484179655323517683303952628065509938930745894128879380462007554888514459389138660359466716430058042312231916532687962595616700911965711040083785686111062492896247066236164426168176475994843935036332348587362081656830721343098236647065729731297184482516748381757393066951277324779307577872271578937875254341522525703286234829541808009881598249862242478687573496128929873353242319991632306510736272214027167299270566310586994191862257532795355999099532547671301625360789522098748052703727299250673089167461756019652567235526358877834003841750521235481753487966593087556522970153090520456921320642052310405286617797182030921192247178696905317984878773334302415343130348436917367649120700822366596715288431532310619203975752425097302221349452589551085606183562475661668768000491759005714433078036685745841414443530386188745141019597880918789708177694044800838137555655546859224514978525830585533425180438076152108478125933802332943474783724293478909950047079598979455705630169766709656140366438417696053894132099563572380074525011391869089269364374833832905111917601404098519425468263834121299483769995450004771679037408596500077384916389255194184003557866105140036976328606104425095508254261068969937920759133047942158491793430548064252369910582356208754375530082161323936080893880954332043474073440307441132431995304107488462833085625440651930067991518111152280662858476700063000096859898475233175543457406646895424547298367351905412676975489915904198806397712985701343872609062330764012471172022202321593024897432372128385287603318404091493810031321909702769620927106143385887080004890783244063618802950908599129539777972735782935451732390250863598087080348333004720790811158623527332915717808949080629943644922120085155709356008707463237722017697060374786397260273668545455846179790623706796113670051015410641818855849183789572741485760036559900961645646149899081760041610799164233905388434530568987914582978616128858030586651416013772114098551400593811336113001113991940911764218455768868916283427765617247468972417539253980978150440539581949209087865250538305908448388816574414416853062295501619583654974270134310631656083594001431429242545452456095799901196579234257228718138126712578577585829180868060522191577131134445384831492767332371278460715514114050976114514261888811698254564334902582775087980435335926543582980633572041098683344643537737151793038298941529994570190644985841557294640944981269843364780902191398665616953944571878620223104103544232141873573338261599408811542033230297247457551404506341705087704091608169764472744584859506964112548797244383836111592604043459734165594905766416331764393102801067397404365567024988402395104992777359342679105745262107705539082414150553829666257067277076454867247428098349715551547766182615651444375561381773565418102608810609951635114840957797958800623922124867095749707213078592601898569447171322563440940621723427776213373465668017168730148628306742106316034992770326219187344572019331586692910325091276521056015278815335694493181604761564429039862008398624538598167199102185582278704338247198899136905800433142664257405502828626847606211534420919118697581703966282194326206654452930337877314144720444488944135275525528198622559561901247185667488117864867991519393907988908344475652100703349563732086956332629995360191322769137380645543322066571617038129013961968033539129066052140160146505175255020348526463344963948147653269532418910564979779759196343677282392235223009634782907424663564000222159530019931933569283049093896401295108950651929890805771713814682886369048463262388337876593767172148352718563006317567693542040255959116619382469052815171747467657439798742841291545844713854183992508342831901193765008587533020440735954586749385900422622583994661358132610168612158853323902018941051608017937341419850667202419630199275419163293266409060481443829664392224997019446039797619933146092115488816942220922508996107589474189485997757832330442875658280326870616083295063569388597357964127954991350850499376200006725463821516600692449504635529392114579908656209696444827919170641530238206613817686910965054683888314373033529263168847184674473794443257606585414957018091423691780180028387852123187395264565671405754877317571658246770725366196374951861133061257041936038256441278789035944001640038465873737614716912986120371760412278681512363672726490862610850989186868545947709646070729075139122484451207472629549648314850367641479871710676979429235425244832305150413974955403463852718561098322195167046909141176346269583280065657502210126973768719183993594213190702839008172889232456269223456433920152709627515563130344087919837929072908914659445203872749845209690391772320852701729041492038485423180276520279221244564961381503077201608083365859366375065347967863096062170179407695052116975399388182211419914249356095940277510044815018628921759196722707216710391537615029938755529955286883627602139626983504482998865728440851210160301718615424396882245996723490441903911569128854585779069637827683784499383508128555608944926398294810972317798397210605974728333430396500339327612893568991588169137291839071277127354334240684418051751541367980719468514074697259662604032741187146201157468648531819486916595020819835649743962093672528047124004309108897054603252829722068220868606415150549141007076996656199161972803610505942242443749122830959016649323419775607095931073688824822273980461803780109245956997997628134556474913913798733678904133335032042833160562073939221247326993631457587650657483691071817597359208545147942184238146186122194299816140176333454117947103435885129850274770902927364395353665271227604063976394988000356328504145999932396881888031730445292790296559273160050539182670094890635229862373206178993938735811255893376736810924432506861233319007993097481049336319175550404652843433882996319884813286016895501466598024261683356142975334789553152875967526179082101746930835483140015151666886386418101629554115695176689116339417056333339865510566370440564493582917611490604828459404396928165373151971732876315010951451673274776802031530308843630869353563342168663728937464568348944276432429457330354319725921155999161147177819483583587369142670615720378279284669936871000476143502191741789960026642123672925683245875916058460247441613999920259960795723086804754191521045159118281429772488215668258135923530731536340087305509519919796707805117144380321312807414132335274773416146537677505365751412264181927310163669058932526085511576029372304039584377764477932233322108907092681550496861384283209258759248982832964039063262601556733662216735073474377161950532553960401228427729319478518331191163839027980001631624228483398052567261316251148483998314388279133542419137218687175048617069690782917810363943352682770747145329896887728324942606152380595717152747932451445378565202234466071576910309905219128214861654599186475402127376079679635072642443772384716242243424270339488579416275338958934539493288004200698080595730309972197495116400351326931501982065348256053388034397849054911876552344505682177468010718644217269589964403538516395447269017343661118661962365619500481710524449913764930207619581330836462118364844284276431853366779947299805662149506759585004462208077303126121152761758066597216993272477732432201956523103809273902636114575231737089758846287727927180261437684622636582829670611815805371420447065495421225971768556562106945031158561327183288483983644244837991199240797819438793275292344878526473654563269161936684054873548016337919371218194215870940388383076222861334893592251448251159708775528252024192486915095810098146914297130877129951704784015581520942322277113771641877031710229992945478524240431679940913408913198287536905184367166616718390462335369922014351594733677304273824956746394671823996205038308383502085590322796096462847794500899222781073655590474958539456924608032872993234775863093915467657358077495552533065019164899874898873756254745351085705731565364928507831119746300219468953870014759424101666887346801830888028791394464188360787996990802786129872461924526931918951664569234534766747943438160211209764461069673643214184190177493204569849871494711096775032634483635649388823673706440072381040312112283146996708594965553258809163954705416075692873376295269667397799011734322286842776118342314684105073958803645159789547478390748961455360803243802514607420317148482738678134457675648711942144342876511751014568428498282469453160487917591950157319249347919566044991130112631158189965478636309066896608815123968014045383081274740019099456568428426340274857739220905238184327620241421322131883647870592514693742199258991220568299140702794489254139869835030450568241081552529116900651853696598422629690948466537772172127851344345802924049249575268750920092225707461491666371689026892226918160636180984620026885983554573445959046524782842019477805182583838854803240562236051231961761855086383450951286303983266982753789391993094534224638420768892842298415563253680810887862071156574871261185242040729763484836014991242777739317802540074370103406129937434894280692984076069537625662916274839930308265488106496873241351083074226066728663335915278488262573585597263505570993252774696061084607836982265093267721670052312029789345481126081919413763233828213147043590765263241578072373359545254535546463694158404995309056987357788736733004414973648636487080508091495559916842781494295392443978909390105146443702764921240300467683663166662002839591526129538586751852055115957573343549243431486185459220523911257039140118389709400120506170968670061982150720953415073281508424878736202457085886920575447078051433494731378027449893598888822708010202534294597248312934505837515221601803227908256070159042544787806636769467753263430116163417949446191785441198640200278116755143420058896219200181578473825123244656731039682343537332896889337659683862283001525745564483123089032057419039057038016037372793090401184204488539947039949774829731322282672320912140946616126938684712802444292419458931439873821545332020070809217453754450791264416443040174778997433249027846640270927803404193930566866576892824640569773620076233942012711477823826035103337337667823081576308613574032946234677340979642319880062354192794608197717244216785782423788855380596708647000821353263624604273442631844589962575644823571632602353861737052254192729921359568453987867051816433915638619255825134928248807540702693953525882894401732605068032753081898319288533631953400963846130966983073247093553310037615000009520614206988104594906872385976202845590619701023115429271701588612629566901275250433106388716796706088028511461749060838677358491587242898236865468849273268678392643710278680302503014503014358235067183708553715439913623754057637220004682235953774325493393769336367059418359657827731674545022290529242871941724893197234342509407358863809295796029502620819209368775329471313995522227959245144910260931612526260660326084646406261046032805069895231063557705874864316064813432388610350749270165951430013178396297380594213731248682526710421022836755725918819784686285568502995132937771373403714862169011037844096121408398928162476497897119232794691429071355981667574624898459716239736902187674885418602123702095760576067639088190538902801833950383011716503413449619615027461775523484079453531229242471112764047949307564339880092065809949168857389760423676813353554908908615684896053041369677722478194248961920766573183487585715392280393972670625439162603477243356408901702218914911975472482028944677132058312641902231279134818151113743479338116669059524899801321288994325452781636721950731984683933593964903840091308906355241943212578647044923044479499623254783188547564130415772813312912979846284790235404465176951928725804842794903002557479100600612642655167411379820449646704431090155501536138090197620441243565567635152292142069748837913080945735926421310538149820885311612955512993412696356460090644173243638014505969781457633271220588177339353549877355368422980509096779639609630106708259515410165148682504576816762653064690569554863253623254848417722066535416413308533127465094527883939507888996613408026178014863792188530509884413050843746392494548557149289860759440269664204674964105868471981396108883163404269184449171105148571110493213846431143168071174817394176428612363207797967565934252293790836974498014426078043956948150302399889839862978673443268073328200874346815523883273614324667554415572539799980356110679507650766102631370443488196865515274328040507237282861574566157697750837999034214443149812474716271277855815229014311749577614879678207280557994472104751887649566628232523967390946730377294361729112760686536163523883335805791651663715218497958513168341020166550693986421187772097875502692437656806670233346864138296061743963873233254504603297823005186349177952631046918887359525605509385176912378763959928919135007624774016740168271404050446473553511382684098486897727327134762780484366311030772526855695533604037219384134045750540206457986987899228412544445548351923873859188194654580759630238944572580671883272076053198926451562854502822241562701872340752752894685477096506145018289822824733713460768987093599052546052127792644687475616943893743653249605427167397956979199315140755078119783003347442914783713007596189530279422572753478038619202958595700905227351126242066787396332717338002641850022506902077465200564709222842083078126769248103389790554394109053668754397241446381523868075663731065138287935193788134173849503871183903114473153973269251128902241911116759707934656998918048949253760799668733270366231833544589660069258554011433374930465209433183583524186099884185748870103963438681167990982720703647899015175391114720001848688628182028334922187650464196758510336760407205981263889805433349880761958716043222144713598861107730591372582337638699616450114102008075658836811046893965211472209347944941996019113732803267250129402000533753963098079569951865864204537384599727178999762288742096675150395913846889405881154436145803565610073497407836668607942863821436720150659237993127132326486528582609561114710957308927129012269980963145270945512452303511737930030658359129268684741821290053827994920461612794625503091408476456077080851151764145418239814055113700464295899800210503903257425663738238878697366244101414425485040080337225915064426478617489114817541807469239395611871868223506976296235449743756784927879268223061792660911744039674302646863780495948613001915983593294660934254487807980856196041660886949032908761343250127111442481469757791003612334537761567115049952883572980844988565035283285744112131693639651027019633449833619860512555860290329471517547211322216343024460394389410205033262897447452805648306448123273595261022400868960539681257549852855643278648959764159939615991754641110937340018152017491359939557156415717198490214824700541266269350959970357581137700610516330714063027182976811820046045060024995498908941902110964514786132226677001595704821442747015179785473485223785406782048046997093002609517369226075859186555856802292169135627218902927537845276698829913747896265197546279754905986644870264688108677387499944065478065911925528531772300401387723039398979867509634279221289652284024662211804793637737691105776313455777044234974825493523227576043914310859764919066730822059856981678523143954548735610286024613368454649695696406266941161093175265361692093141665578774924488605283842768968550818107299292518661222619087440738366896866155020799849211964463175619878347412258308372083841931581034866916209547223523385857679074993647307856766765825419308463610686441197976346099013666006007954867990526403147214477768334706771717930712490770416616682090344185181478430230953523009961829189752615631249288876511531951260444269312123317739138854828097432940570652370438739545742867287039792815605377609999955498225518782859518393732209470375251868830003239905121167555559848614467998623555967320763479848686938774176202337246564097302192146627217143450230147445988088343924050860074249220321330815315721126966758047615548924858435861074362045723205921727248655741820683113215841566656760341361670245008918088535591937754565094168541746910929862303884718827744379878332714488752608177105405037642708924734026636688314473848929892746369585921834692378077581977525899916704935529976419829748479904902846314250001341846238179289994458556577035599668889868293556164680659865870524087414669568978833557221297936139342021479534129187440861589019055609876903372667127541894645027302655115505137905646487472599366488458574355703501778063825117044318234951059925428579262445586347389048849188358385661578655813621323230288283950525962294539913073384159361197399997900698360469251250153077500046453582102327846076113696359284458605829563108682092720463098793926880142895014581213958287225946207124558003413164351647804418284612712238393949311041341683177066430354866405471104880751745586273196620689320484680428537427479139083854276578512076300657027639431742301737712200608734378525180072712370094762712107184247315173284396953769326664571850979630772636406834431530801175243244216498126098966117041974820558486424187306508536475956291882425960692010021488193284242142650370508701851429108044863678184351723601772838606971172066386021943157626092407505567273366713983405587823946345023956989014315910065566707177882960325710922315593797084979887302239089072221702495701218148786597063429608346799706597340062290559291158779176846255925596379456777863168767638736914594568000629252583902985454865902352067193983320800718922449237905565948342865668148084419014055200419898569316164435637392499810411693939680971123937556731065545710540821670603381601503992056442167196662086580067789711498292225487823067446317265102001472473694666134962964363487407755920695464128209828724680757886361369818791603872308874520248673546831040884196566763040722965848475366336063580752731443517912736911406565341795529239716023152582014567869846021142569479375247807432644256020830731829910444309971398788295599307545496550901870554756644866721647173944681993975267034556413796315417180337972599048806410315941875660839991893276196292213963953203684814660522166007382626710874425800423107111797062923416514985926057338949890578869003723030415576340489202859775725731196359126469858161854685083593831686972936888643305133695496632857052022513949439562960864203692498293935146466274609652406886048715941770849364151282756761481602864297753701127413933871155183765719882850679978055117794832519244696558050091393206492135296766637726803789173419471929211662373751034842714280407080727284479240403331541280035197935974323449522895920627742986745021362785574875574168213682275006245969289322921038047995769062906976632699149024674535947577437588192262694772789435729462815999005580481747862207735281676067227630134396056662998546035070231545123007513727779972749414194203977494200093634589350200081319064428204940185938500577892991572440424378343752513236407993161749752958328217433497233516974685165632304423878218108738668781993779562324119265577623280214352439773200252722847469090180022426412828933838552128273353047651987494440250906337711837425550848747960758962404873835979422607931604865082017735732315706720420661408607865979082516978700691895191873267969234867658452202461067549623135413645535886305687667802409565727844468349325908193939336804242621848729902694212965170255568152251424852301401069061672846653539086602304402254056983027157750831524687174793705928811261732695538592577803437666342345025986660383678629522561381165748935553903320987362776142546404059533293012103643989745588613775289369734755351412526469713632143397302940184816189883167696722726603157810433099768158511149105965055736500383755769087618524304064798985002573394075542636440545201788874481801639167511597411784028622745495491629116492015673377329673963575766035996427949096150638885227445143705719242597345388751634619206564677034740154925017928407818924954514862330906474805372998973557799213563174929543370139188078259296612321404958513801744713705604797333455221063113570718364739192815344327488233073347513816634785660008035049038397908861327913451209849194924753163226774304922436016308279739781885803339813079198503502595436691609499661399049300874425640935267079048339857981711960667799070791598760812850699356657643330063108868141497266527595445413304472699281680172088815782985607325719924076432717363369189175856156732594998423336434308265796061878690595691865919195814288964163263244597867292967404018786099851701802637277536830237471526728890144313523917274962852836864922600134212097111777463802917667490837829021268618588306629414425492212776520806727400237384393164182851148154279546726417045910413782778261108394569333614708694565833694504084110006976896710852484422394822055264245409502403972236656732119561823200267094483063221782149706661004531909455299921463372645201284490057507117430895064358375886140171004823853705383950480796239202611133095532321058160024772138971561990896912349637921540779711607921286949801332238790014032097667710118723151822128164284735366500886301453333760196861907862617089070799293203868906921518972368207355097055960841306400049191423795243616923964612463717866098468432792646809545030763114668157443480888758873518386592655881301529253868451895917450033763857069046551869607636215556201390046080458485675507646898610735552979820500675341827738907383283590956245625868410329928500871661329052054407923916662465614459084884197448307519473118144688460903830417758975686514100391055964792991292644254930493926158884009244035908842788208683872494375353977985751940875387200956894080777620775901289219152813527839242444455101879946655557576769159017679274950881008652472504122812674741263924684029210201693261332647129149174700028942117191868193442891170568632793627535692882829092606643655046763656684034083722412093405771274736106470925758853606730649041339709060685104217509781346882087322715128081179373838107690739152605684548493909646145833475988037458549121350776773086904274473849968110585206331397908020346902271201203468894731628970739819590261012122203792060757221554889348656851057601684664739790229538700100587355326766818783817878493362248790618620267342045098886852995265740681474371650285445597479827831424886107692191487883852841635574282212755834854621863802255856643897774449703858722773410237222998524503650301450624595761283197288443282052989420206913641603613933962806550230474234330736588459483716504595053562786177813770718638592380970863902063790483380397362149617505242668792343048312185625444995767797666398005887238366115334706138017646211375413671495307308972737543206162661379350155955773689414067683746500441441879479825460589373186641686780808518349139393813747351497321241419095099958995152120101819438322624568381097440345532424518962862488773174812508240092754445849706454867268203405474191317644808726669910597954205950643200413846291422662069996740731913152254174659838997930005972377827046296840232260940473634012588523664705494510902995074316938774314925303208668986556159110204439392448530055642669587810166409952085668540108147260335553643893049297146528300921959467344380377212688746202911721482808585972065499992000344558987869128812560030540164823901596184619809357502786068005363405200718197466863523899158676596546297929833518087019984798619144933833581679270165778104235714132716145550524441857937236347583214890193592434785266656399387904830666419450681503095879537556843707174885207270931291042525606403404943702557867733683148008558465712304387244873082661065184756336349533846851607505720280806005928596642395056703443660078470062952272083165774168309795419547687318874593885119725562457120829583471010211078323393820641766897940080806881033788435278253190952891487550500036108787866537624736790691639359650888045198807992491239574334229424302481096341997510806005449489570806466241652991490058745302536815988334322685525327943528724732530169835110702518889620696248528833904638955652864395594403364396377949986886144687849059754415854299056449925778991640527455783841899563001010284675510780985340924663202106422776239251459439571226938545537880875291613680805399379161185670347406963542335123291962339465489810510259256454453758843486363784206945566887853833695425113724095590203788956990331655617514059676396296840231257627655571337092176000812723402021634499821109813253670329053287417332067846505447446513780794008287874805938303363390552643581974171315977016345795109812084108791989476957638087297420097007288168128954064569086405418615848323305741904944165765340933047398447047315637553681400599331326463310775387322031802702414197205126521618351776225748669624450705053470927051243540579876785941586227998455653957199832730661329421216367400024952295336130732120535282717293785150114770103175692533486798499785348357378808542288032708292981651355458182275336880606631697276551032686196227162667180156588117662582485195630999033510420189188761664106773228461748401037813553064024982404233376964110313227086250399282600439051750215633181463674864875624122641361861830807102761537442993483555619961906066061097884746216505122943099525921514580592070054884683391999173799729662879762772614170578198464015509176823348146878541947117047369060360360684839914203073880461966815225970308274352724272696602144792510230042531952914278623145579120382591504007061146819249853307944297490796717713553869652406649391792973884386974883776475494584612208956024868839139317999216924261328800318781033501206487666246023709166722425247904306917710067081264269657877231437126039482489712462696020091214290519518749865587935355743128019908114584258693385542945807397587703381069327694360307819281131913509796299522499030425943943657569126370849236759830431833333361732901741288708198212835936871072485421654121197656718600260457642909825054732662987722204479570523145401437595823865095462497896208473651715962617184419860537169724293156248159610208790058714295954516641032410134879264905799745673987651222836136835596800205762847766022054073754057901597077330970372548261356362103338828036250945303960625174804422327066424282938602662520077927305581442824818743232282657873116158869067582361059669041798139565228236359130640591083503457595023937097806109640025310158335749435965154603747561611760488894516923578895363898939929447883382075474288104938846231433022658407183611857118021917206212526317324588700604891520118140646389228821905829379195775906582547757111912589973053209642543786210519593575254381278430692598750101588401179902949237797482418138914435699890452941875640653470225702858885985571971785520947004304301146203640357536627700362611136394816243417951708578270962922282707200028691795189385631373029051353148178414125762901083427660715982381504964733631841303680642220696783903722214178126615510012528941873312500383945997961863211971403168297660782920107089241427763230765928620076288223164344072108966993949538608261827240782871296299458825174670724532240976465944111662930633097780240216654484183534961938156428967548940481341468575054040899072719603664108767453414859749527739516379195513161830780521096307997228189718173998140737967867500980063294812035463846295155712917378349474257617044768189957956732432907348986907523647437707868308434854445189446900023028491466211732088482912511561974027128566538026493679563974688747693212660951223737475253560333384844811112231172285992581829449813177707380170375467661555129888920884378216267924920718572111162867648260036119901028212774020057110101488515670395244973921246505328057419725222331702984037540183043851157235555052593580067561979461698230557332029311643260846488002243181841917110462347318430769631136530196397141281883639808242620168891802559285203125420820768791539200754954389369761772130951842490243270034756090408766689603274006116852097490602234289343673642111312508787117521938051190437203884989045568054977873569946883314934705008078337511628436960447281414863177142457875429544533560693852179415444172649574216314051418870432701337206073346406864536018311474603742579412219219298082912368944691019645284706893067654694793581991505831123136960327307143345195855787051392787392718810375509466438087308149495930404040272530744973257238946725179878579876540191330731901475584332221964910756859782010411777281059671764655647889374088584515668899192557252186656348385227893730956952721870373638912972089841591198725534834158295417919139554579939991962997327689879151972807298230216949419367422386918508719027598494168128184940684190995175846559626344080174396334039580549135761010451414651482466208592157729758340365247704939931451443498340571020955681032484832469538899997536824818419435561631427151932791408169499051234894921789124534869739436881999020019132038032176459461975125620719566938776358753880628479384016611733252028005913850437083474683380808812132009718663932358367030811553344432995009650692233138853039868576341542392439971627473884028493110084270490280923421647958935113353355464923370785987918777846556775125186635195004497950841293420742164663536710425003404794923284765701097602535549215318392934024276983653495312879975638761606250609887799462292780327670457462504127751859046190265428832403885178234668810052651882678147449528924145437453296218345262264524114249433259466991863622784317713363254314961692609865391744334945866840871027833601879674900736728270331020357644054703592745135626689638503306672079931570388797542808459212148819909551234166620813766818545211821119974739355040503407332379044666219674108441225279205180445503114272684158137386405089815539707402420372733879579611587847375608569311962808931250923482055712956844299072629398750007119662962617687562508498313824842553141764999790276098050730999339953802784643638445499220910888697786554362085181522345661582066662368658702783977414191276009992495744326097095407549983449208276261886540323428126716026832850424712875475904040023891843691954971416966871572988249332723619038925321156308823760141611100077741879785634326881241862197983384096829567776624130421768887280779357785800657319925627138151618502069857707523647130493849040323374808168741099147782551651946221776018905061208272751756445289510437636068064905392682201087277203468109709021132742642309711938986589700363092696197430760585293332558123768982149390784499848466519745119705234719503345220383751100011559395985840681292190134217183773062453791955181681270815198091891535792464560589003296638169681421003743076191309454461744736436791836930545002018616003982425890769466911649022507341324900505794054384248293928564577895670510081465178984770099265731745815533632094462826956600870795542400253644506493642153696887282938278627666677433000976259202771354714419710883575021467012332578817180837644811576444548274146853232258862071555533421407378679706477915366936427700008209181024730101566532534790848664528106325057721774080690463352339149408612102692490108677091552209740166044350355785955968944325602904559553589385247134744167251014445068188331164664763667242550934995411566887863829489585620045128551902058380576605714969173257903757171229583159813498377755343773827502625308975278651697799320659792401658132202725003389469080599300824281906716016048808431881436420408587131195067611533456882649749626667475779148351480526687266078360889866267391383279796186291320856440940246495657565496497053962316338454388724127615449334635734665579860901491609684078739120053109717344584446452832162503176220883353207066888373269773856357954152417125673657482911289884730758249494057775396058073867216870566951860679126366266364065874627567225527756011766802479882783891880699432858444156246811343799455028714177939543129097595576799868510306072585774898180612828680132882699818923851824830577416685319799819791150217623173047462716954850713326176428962666508070540708708017625646279862354724564100322018312841374846156791704353413133746749521414104467777886522727606385940708950016211614839232976848147321155907832137356921339918764833940317885250019227346606297291136348829933273938828249216258134330269820142367510889789965023421456816528870961203664006293905983202680805957842625089844971087494671429660053949331402605900287326799970024254606910489257586623585268848753520864080027649315289987487500783850005785445366713886841598921568978728991244067465035517790371112441649026389003029508047845979555518104542894398299807545208388387519946925383525939734189962651162317062940959947892408346471982144531548743733106644358983689005385705285821597701017997207571882304418445802150461370813990086787062067845055007212896418060249978805670779433285686463606485575485447367177409077801095784974689095136722270696253268832516101213742657647904905081087625033384268216721262076263843359598045430362044901175739672335469275381358374394471471039871079189936822313066392136142835953726582212653080190543509153502974219755791536649691416923709224682796540784846842973889247806257470494003701725457284608772268177170466761146424375883697996468490425750674699779558428812801986977988011186564430559958515919778703818177898325233026836696737813166815876658502266191413842537113170490933984378072918449899665178138718951203455995620526335197801086448249990269441193153633659393529756959180097446569193209873929208176083267189742611821889346057818473376707812365421528022397465274595926223765606736038699509071898047887898030207618011342735666453082287916772610201090305687896922586950497173870443811194737067840779210171087541060738758027388000036900764083813723458542619392248074480418369766018705444109396979211601694529444799179200914066044667787531292763113687913222321284764273721997672840513561320246140772296644570571470930306905252274137353770873158339719221739774185052294824583231959911264142026658838212483120497381757504464633252218600229113827128242636561225695544129905932915566175773120720313450791842039364360650902946171646119762326977797024340350075383047472282515972325813484782028181899503110863355183805537823801014796410142060221296912451135886549004907996273502896345631253103201072757281430333347643349340064708374691342489370544520240499129648481506577289327353357172832471198177502126225978351331654328674852658573667156729096572037613914943027292068300014199864621496339884824176049855152619224441025829003475083252686015172058564696396138858498276123877290398794426172425366344170320750098337586495521562589676816660938251754321122941087045586690787844716991399577415742716704925979036990178122946056932357528573251845806802866931632103931815027106526448317014990012867358644802761361356801182800247890658129803589367932722565710215845811432546646277259409928824251097980680870100103046799101233817641967331181346950468533455190055120132473185191157718823898074058326680413113911700001912608496038658291677313205316743208256177404000068268604537981525395336770902671716306568289428029274237960298104159825589914005003994903524685266910887266294849858283703795186779618220054453683195590938804034788898100697293552984569455814665400878965131025807803384121951608468978310930008369105893547056831991528133694686126101425734928415013703100479802356759832844988597050373347856851175511336507981109670067283454445669619749298282399615437151803854405863389383883089227439910834419375854772700575586743990825734354516510841992748585861757424477984562768744972025395988692380999730362970531769293480115117405943509777364816436734549544140512558294659238104035370829773727066539966271091097953987919695068390079799073949932784412915478349887876464291972819709183559212175186190276019489736549925718571001600022930357139353655926359880567008399251282338788181166724956563705269396403799010478872755794775154105227934252470454697849703335026459397857299124961442140709932400795560326399175563805081946465203110039025564564874988849071638605986277274419586209804303949945385228283374075779954206736840222716084393134633011583179234889174954345621141878408648030243679017018674210649418685251339753806938411543188204672017178085490372439134125467922325228684896534539032273313162263539432343489158961213977133522619675237424176129317816699866621667742713380873089670909819771483742204243451891398814799296742769962728777131843004225842751690143321622126204718545317971125454791678236709558128981489793804566283362034645390782015380630030760557812409286007934204662052626431649681443514452642060869812762399610097096589568838387905108393962419239761546850760826872709866882800703884469655392617304325708181604552287566917778169574100859697346354933884580510095467524530350761628457336902334979870924669338187012521314625870666553301164382412821218971004966856729775711679635669275669767165188502720063433233164073090646161099218628067651775977016877922461583218541781187076671993416599711419908130440663556167903576924532875019253240696245330081645887827927366970706476385381479263892036403585241835869695381171126303913207408212306701272330920722423957758204090928765531424968831657839056794063566925546844413495954393805920823809184547009318105521723321089205072375780985062731058586177427052686046079454590153412528199427393517244220342788620332323867002335526924743848085767583343041430928477639347006193169305614484802259556567415275067859903067793102539836706223251805322025115924637663455956517490650068518272583322117203874869447611399229558352298136311918617400159990634366652350196185847182867668485326611896487278160339827192755306917349873953328268382805885318472314276324012961388968153223996133661584789892188308579665796355339151541244435772630890567286272422424233932405308076528215674220567071874939451531661196905106077600530579640756343005154260164986964176589059127414329347304952820391029440385478270377447827818835779612827855776779401459564831621889442086506023965447982136016231165151349600693964063694653269214098563134951999976228390652175482394920002587601818842357925605392591976599495374792348200065941878629737711997484453212784622889416809647771451466276263929854594752186650287916881360928898183098623134070407730882743991915632565251908781006952059186018117200723552150963580985314038431196415873645306700139852734391869377938456071993952684751959612878197979957695089672779818634626934358222360221857161346636579297358179093534398558196728710791064567942646488741284977542656836979971898633036300038260693702618512842073306924814315777353794999972760732852774477172303410349682081038098836135527505765595492004327991115276763079111592629769752776474823658021733667844054498113141972235130785846883662482280027088611201010656471408600228738297498927904709912493591722972794204961230781333134813022930779372871658276021940452144469592221999871544240238708015624865747975867869381714434283258611399829801800676823868525080484809326144166345806986170107146090437201997924437666831296715447473298061579132796078432863514439659189548176938271893409737973357637082717511219372070377489583704314500744649553300300935605262636654129335411236516573753715337639497054628734678416871069875051013418895160800135262579745973660126926309355902260950458067059452038187655918748448195395465093445130445336338074216154039469315483261735297180725557854724937424143761369234733323300163079101799538655729987615309313483120506415244928539895697226540777937049877627427083117815226856943216485844127795998588110140227340652509154796986073681672964847772675154729836371313840325450090406600936404311583194000008976564094302379315863217133731640163277430306830001493994987933591919008689480852009362266202911930252669340919570579677717128914655024986566608422136131148422346571700638310256089724724003438563176468819781978790370857400580372222175073911655171000929728792072429618643535695938195820640393597820500207425200246143195487707848998390518255731525668462449710615333431402844351168338281286317158409482921597039962601280219671872287599958129093550948789226783909012222842706957127475710231284508093460363596349431589254868200062963694917718550365106975775791606799181572858647989294031955442280887587183712983244580825577702135492058146110624900328423192248427831725823396891684694978528566898744166073784350258801037671337224157643371621933894905155757488834236184669241456384921148365522695143378238720977907151416061013669902782588041859127111148001081085038584587060598601170581763260239534301575563804714241447877545991971589046329168988001839680545549524933725835513111324409563076306561265679706512804587539493988874564182721871145236380236185013568526990912478760701559044714013345282183168753673840256393779264378175497137605091347156885083246476155212799583574004132126784053679734727285725658458187942351840487159144521129444528315018704016381174279872394889498609853193770606719619175800117439417839173059517907102993925647151005910216012846907713461662897994745423738491878818659181765283625808235753510785173993788275981890170303614702325775877893880462636184300333111801186348613480078767973018004794173615998604523760456937397202133821949734458766906657028203897603999937396425522293243561015554640369752575679537405126431000126299508810452321254438529961056304579948062778420357184330180319084332446835076906035694633455702317249330156493244828217394370456623225579719670228285330513549522235402738372290489488900520014530463788941537284399905469733618269027679357671490394441294943371334459831123082359347994491754480423764085333880298098780444273567986375371817083177238669088042532295018097090562354755646916065588216938321482597030984951527710001188250125964413318915254711739388152033454497506122075420834138300240472132538353731773010556628946021583058965491187792802444832640668604828507879044173803191920179392036819121733775216072033892233766930136979605341524372315934695921920387612859780196717228101532241239827166585415859814160365720117400305428584586254861207256741701832666701176419665109357931398734537491840632226032189332370411864497114199844156660676903296997455442536960395378097107804200309784683333223237745226059010649807057374012910004940267831815493437812886389148233326761890289646883249217475633471695127308521442164334873533696875104946720359657742052287196844652595059336782648044700330357102058171529147117136623552211596634164937729811483747755577681852202716451899202320365269177241749299507953239956010706361390996161239727862794210572874844291922960680599923218561614752566312227814426568317754892803815806780145532403995839214278672876803941026565073825679210945124374047000837136870319041512736848459943306557942711775134686126449450645003642303984003737795180033455533956924870542353447106669643249396631753160317098431645425579486476055494396122526614666208414226907834803673657512006427410536406523747460628444297222521380986919906285161816609158324964757142871838649524046292093538138371768732842891676247078911403387734330615373962980125184909586235831327683589367293903104449722914462559812780212269259216449573836799519326473516664712229727871492175127669126800041457544141639952253103304342484891129075174998078082520820152982660013367690490933587584725014640896279868704882287052837515361403669069306691774253641054826531381390965190460708905816482782400114599034645498501287795159647676225583493439740730373468006349755873784414239009657713800517925037296287568081700471120949975869352634523864290132009074932953075340403823823361312184223585245950547013508617963732865883536367153653238557240560451167392757189863995134293407674059607445441290102897905578257714013701189055738563423373860736436524039435838956183904938224821232614366500223904631616371354938660179290812602369181839975545337956387395085692719139795689621396561107025369065264405085469013141441698169234550633135113405456279552862413887664172603919772377249838392345583069996151926437024703028975612527535035620867249064998742158890660322548632043421698466742145580142494473707655527180617760097995759604841687378708511813709792150108775276052765169248584199267591982870950401456311534105214399405382265055171834444501144208585950138937381233766443856508162979730087851790118877513575774239710471072485321583141701867834513932588983632104676504394898402900352435141186976649416270055225217385682937323234007981780032071174983136517352040894204425780333645653146722906273843886530265064365243120647631625334725349696108031743832553402173849922302416762041050554732223533022249035414795154695317965278516457886728252680376856305499789275008058939997734917060385405440949166591632771869013968574966787725085265237797875604774078236296021604954392847306686797560627736582607452331583742600872598501824626208932474838155582073604003377937979961468156780787675281221947478299871497877900853886759673619205707093519469320457498655213999578853860811698269517402027522096311922233029925661351413243093117444752907807393765686212636074168294920603123370569872051514736487254479317193105743640582682223173355151912757236651475516195482587165364354142408360473716330282426323811752811124186074331044819081727636572198861674423752283068111541395517842839056221173798682532055857846940952463029594201424424671017249278834612787402961003368596361599528277113228420067754973392445268957807827310834970583578569097902785422970275987290688141508104037890356944900814179856404503244315794985660014341497874729210030848459351295167551863396091374529111094998761730757378361304547887762803925825594895708714794830090344319801825027284729019513569291673406884224118301700472004668700574577152738582097438574386240100072934362227872525040649112380958596170418674115890099759219474081744513403390672880009154175900533724924633349166727983199030553030442795559867320451968429267506310696171805632516963500533078148734007537614433001178417553262186704829390261107756330066786112517706542687083904065998136844861787063783562114328240832761187999990871380758029670271176630221502469272355829058810877115698036779529855065759616183942805396717792548743162492323987944137329410656061849223987391588531538354363225544268032351517069667242596936090158260806640071115777909319908189367612154798102976944616403816844392961159069772733919651057125053460555015938308828760152985539860617270738356827579727153589730986228609588066937199497165667393997802120903201737372640361078487338072666022367808213489239271878654417271921646968105745551801147561056580499020445303920061419981781692655966874175945111119652571606655357405637540490280323163504882726698939161712483132451930650158979684863863325569996856241262324147269214585713718554783231071864273959026902930589733393185390666607864724928708445223203974009229905192784367071433576149981078020385326387581125106932585238346361426904422082140680647216446592526507691636709328691021306236794334756658674208039213209286836819054764169639754694629582455854761992538242794937575899720579287279580420319551002493243062193069795033862627676655517782669704783544917400969119529641213249167052428119066185124695666133147813126018329633411889035730533085999677414926144864515116935684905875859442902617722289700478705168776594424814475768771906825768405068708772727185690477820395565331854032447392686786131198133566307383958492203173169522924247922831597803238031927726722078722648716127686227089898856508352609783272523474854257291955662824091101315329424547475734620170610864242275063223098112398979552016993096886380607513904074740880556808136986648293712899192901218010553324208574243930442432791850699184427360776278954846962968700725424877213925310999459243300799963465509889711369610661907594342640755297554905466930156198989722376515233145094567175073216774464719979118727600842519533543811121505156041566549803301171868053680982837009552239720622046875994163246183001897773445977599576286300079147138855789496153719633116814113220852507881196691694438620380109632161843333457302924633832799256550653868047312581401877360178524142311706742561762531385457447465724246403147007662901615762405119892644587533225001839489744127399898839445687190941038744634564594976075477638014744391529592908500741996366463313805265281765517868354436059406471648966493864265075742439599680875515908344336516659488426521509577056933335894163876338245179673973891952083845762225654161294573429298556413390251123440960568326303044378825194288314550356892004866960207473990566464704281057131150350812151344037883747839816036061894103267349852054675806915043901553856278455604693115634724327328169183013352488293851802083013363707381343209521396574306288595387809437193933349325883486722745368488930727734906195157605327373916176989354239768269461311203967370396778505311754820323477638088901020865509081966508739627235560898518543543051749145637235856607674979934085254818497999107959008906549147897707111891625275449112445119134888855396730166613286610189195573051840384862613601534304403633874410701017889682908412953393739322240700994092759026534162166712178019862066718653225566414071346789192317359155716648684518163790212658050305577789021976706141504838666064379825709166377356013509776975430465524915319798338652256775688431311425200796306124625033781203805510130732203816582325538432888214297554671497302588797484307051031966832420371274773528777180194733428418923203118393566658299224064576106149638739772556004545330567127564062679593435740361648378629417512093011145612954095334094519250354937567777956637779015594815618247699108402380810972714387859490097166927174898491076143919680806869883229670011459632549063836800465085825160344150806281382618939175534005921139608778467383182892283887355052675548567953224495281808753802388244141438267072378684665315835431312597740804312237415063834165914722165253986376696681167861726965374087144277214134280536488898850110691603530017115779750885718345383323189780318335334693884351988828687995609151492213306856823490162930498888798745592881769896120614904344719135153007636625990457422783751184898476718696026093812550916634724029226920526620897488100916552376526781888645846735407534350586493824717917422692267146727191290536558487271538915016974273350404320921567236759497534085036444640077530045636206892947694105829057595239827420127205221107079902409234248030095738318585380777326429021162359494909279141815307494222396482440465472052778917261072546215751718396711511102786885115496850347632780888037721947231035159602342992195997141545601874727069135964566195875729768654092817929233237306587054992428323419043578066338998466185108860166970917713828631508774897418439595855594528009794083602198819589252110186286006317607640257245469458883760154456457030010999583605958571516054678787177836935441413441090844755849159542907285089029281248171931904953811573573914036192156097868958635850105249553367883378296341922849436835830579433365964967066416315824490058388524553346786979793649264548297884144459477150788007911166536408252105803694061667486312461639573214781217084478156546014197851821491001900285444700508581737081229031713519107620133902358345064721030291563743176888085403391309183338070047944727168823649046924317095108119559767732856832343958661647842767433325919366620521906703998771896125185897736031753892478187061242228919094986332356685400649681365145937593102409099933719788438828713543818316359006973851868522155098829824146142701919178751960413507183328936896006355861266840492799910717511381734340682182617908044688058833781524322363129670039979078177004979432833820734147126897002500689811785968456798510067528133356249525512040910241524690181325438018289625150916121043714757252400510005145408872693345075291674426771704079562814872402558228508638542827781944629444099449295556414504848977483467125070347941681084087080925710878729804757216124867062429796328866096708603418059430779638646243978798018704488814449224044864166609394951436324268447177691427570543200159380837335388838463530469302329319536886661502890318710784273202727516228193453042553040376393803506092509292815917138590472439074437408044771314684247542609847446753853749440589486491445039478456142400929228252924372774874494657378504748365773755631791303071030372744784091178839204918912772258671917902727858858154028227273286692968954467764006510769483199605097620732514112077201641160982307807857821364597828383832926112665037400127470509451750177934726227542572588713781909465595650179396842280679019633017614084223806607170203402065477942518761746001176360786933382323386927935571127905015495250480279253601781799755467282245407483533898127935168918029774236068374579754454791578013507220654501095622804262390535030166894706219146988241961398870729534331686682111645408341441744153861674417667066518538840021024028764156800747463636832992176986708159051741410162446054140091336791902099689404305623207067269057921537660936511818103562241180501268833097422968937866858426389534323035906338249296011348445992532354320159346928175768709914630947836471483608967833033620895095356775944744697350351810762275278065516794843665875884706706682283112472021834882378143701465311681890698677961644651042859597802230195173666111636340593436468537062258637446559909298533093376216675313016658022489432453818550423712417511782415614524482721331061168887018161451990789361604091398839787607232352560766738029648011813326142472497624901153036896813856022135214365589083957781830084399131387527453404304870238132223059601000997167832596448658204635433980881690811538469672422582179087929279773008061896382471789903874477675208589216058602806045533804084676353588674331314955265894503106799369294020257193585588548083982501839712184366461524827790395754828748426883747843185098066526400430390180220399779820575262518382849960300199106906342303995720045893846613195644590836854151823993165652555670828777787571706790873754424351433349106203648475967390156299246078587268109288951160575281635310116047885813384769020012702944065213462833817087959931405959233724691749675425403425788717577018389279576123275548575977225206935237683705236332282589826493306335136916610594858907874806212217224231265920825826386284702980045979005976536344902294398805988760545379908804096212074516251796446696571309378021166643470436582541401330918233325355408041272670153686365983299900230935896839418331066253367862425898837924453272434736317811764699661498554505972780060732182436137619716761414502681973837142780687849628796893397030144348630611296214396561875495501494159424615057639129984492877435399751965208358507580326866918922446485258818920642896234302079679785175580231338053933751452906107652388680964703561630680349867727410678152457960833084905644011953715494555759091602980763981171766233647945028271520924574609200003200502653890244003264220694844073957387836158847954979790174489539074155701411945931170871714405950887252150430555537920151429483914908707575016423425019023849529450653300201539146287077985150124771272278181274414505759033959147784514645849860129410780590900779278109775528245097270016045154537529195479723089558531711000766995306180250552227150879024833310223100962920415052969872829079272246798980228682880070393395141055812063218473017842984251569929884087344904547828018514248381058519980688262175708196826408158692409198612217583379312143161909106517976988826513280556781153715898992568878814012250199439326846784458295543990974419827253947294543061963031744426543198881165298663440676068522810833687052506405583509546081028932162074492752025723657357940474330301491898331549083114447506254984560318498652301833514104690251396317288188159247562643266413328411693879899314814232339495995507792451621798661443395497067297282309839324641458212082333201178741452012006572970343396683776001430925566437282686286415894486138211385581888697999536034763255571081245053350706351004537388612566929444127869170662217049038423550238721308930374039033907411440537141503031779151378547371815512940505860993552230060150368315243813726137565773584592978181488688234198916837034765089568900260737063449463419250545314848478977896627458391392690831272011594567678858245061385585608529266274931171476511760769615903508985571290844709096063540514401883247916542518995474237840594281432929699129051031652283600125478168791241003725823283935118194457720444725646167808807987909753991295624239532641513351235289193681746383096121113779094302973926175155744346040969238869457209195860388733313388597243325826738689896954689626525768078702900970781413274881788175328007595772327382581954002987656192326291502301437861484687039855860958811970063161404114068969477231563095315356726029239846484727215592562799265519668930218778083493729632619054634605023855957038357775029022929327522739945299852606093491863669532971078456285305659957076112143744781797308103070454763320121169255995806449392979051756786767425519991501397366466952035017476322927672563451204600001990375409519492052172073452335743469731485315121401265279094294073168863679172155601494906011878221518238498047667932734073804762886288688283893603331831148956808210059191187837911451502439684585402773666303428659571701046112412303431036819371939523310452091373284546369330764139373756294124781695461546433685736373112399516270607744919887510799206617788709351513868429730857815645382019321189928284640592771486853667393590163851353524581825970614168943135845440065639471906859864312098740038334698163673175853162333888274729828029110944516655627560822923135188819281469345740828813589606672641429663323096095473326769031312694846136333740590410958182836777164099450759722841925311508582564501300325386324320710854437826225070100685760291099643776713469829513886363778981918963479219193877151532266117330696392788187689951825814307277722031573947621042410868224838761642520350009472334242319375156898269540051421141482707040093097775758718351186903193252283326972773576752756995511986452364089006578462372422431871618666927991421556001702670178823564487184787759780151995625439583210129826551304987410391579378964324919975134801581022642155163604860833138199831521366305654001821042000737531812659197879166278599035799841419328978161179370148136152453667308844194679761481241550794308291999992573978014513765838239881244535206825661753984293901188674945170408853211543226905328143565199314423958536886188337464575931048644003744208956156756043105020323013710782297328295483599690933019802810133942174800490760739520504319059223717853675065665290325065411693681722518463028532281931407738067932275186581255898340039983142915700133194477701579853153204326299085855137734072323767991038771879349500435512493863962637846695341456798544562556958593736042152233314909318489281959978473877138480581933319895560374959733998692322319036055269696443478292125688256791481872116254064949726196102393562603924789744113981179790869919459548299163114246229695787450677496659740237865997120920792492196659427289801863863881423462369444693687811872266016709019323831308444420706309918944560740120555489546808902187010778386869067273309237908625408945764926796800855750621790845574138475152942838810854269633789690051543733622165059806317839699324182379371456288506615061313851712421829543241178966149930327153103541139171940238071618593623876221756277215358379735577737251093466802603210471845138780116514458838789929650371222614156399524812904257938357706429463048891218351788428518570425896234632004346353831628912621619473844350826923447504672821316903245762487443605616421748647785654399255892131886121463075896226690146795466249678872418296500697690063512745060222733322147249761713834578331721569978065845587632490595806900852564670983053714872614215105783901423769388771716298861409331765886367703689425501121057676436152531351478368215129895993536771829644486349170869495268750094812609559280192958903412145238315207089210804710376734176124506898372617859668440268421887081413870371452221236523888030910285445100443012035848587879314110392651522218476568092830967886885094114506443440728929219360226397045776481952946655131154607222797820428724341648965140608459780447679546190924563656024760972714158662389725202595410255649144685685861937937642686637653165896315558333927086044240386700553581783905189528220093780112842227789003342433530094097460390408034776597755064519937311429191219882406931688101052094573805119183717039212523777800565490661225392983463946036818925050514890694575916617976562868572230104968876368871672117326225689698576934294328421503348361042119904483658086576303835886175249116149477126544284283967958792168436012883104202487283362930262737806607971785263162953243980096181470505783725764010383797014916533291101837942494167202298503548199117348190082079290708793923286631418931880318770865598595417346662112970629484266577473947026072731127121586318554269548270950608255529295822294520459938401963742030046674103308751187752192311632248607562503798978779761451040102896248312210666511139843407749441327090224121849309797272747511812531104060349422330276330989885332325215538264572486310774810124444472713034956116845123978225469844209056554223393785657365867621368456520452575647986259026144009253308155053670416751803683088872455755431512552195478652308658048480596922607754948060517850155691556211387561116850536957208963779661094464498814356258600853460866306826732784094169157748049397234173921135108684335236164484622970133228568855312684154369332049697735253876995961301547560455796052060273148488090710979947954118996183859936745194513113157601370634803513634206694248266470246923103263859818574345193623010794066079691946074722988393278769410181726310828897536084815286301700700890394994491383348945986627695162181565876911129544563134179300222836201696708926070103538306636988847576075066303091840090537679343499339741260279491740536548621255462545687140384650288474724823882842537322490372236160951978975921817787398992928236400788540878492300466171302273334020968421352828666233846318387268713152761195457569586169220470624739528226819992640024303226580485226899782480716122114785807685825106690414830927362706806348230932106449303948177590682031147574474613790650808917634352615317671873721991344124020434732827052200518861616722388242640879935482704704821856274822824844688933286644421773681315039430420659775543426063061670176104527837409085227859854476948395655607128187793337938336636303355586444129894763141117577476547321157803520543046336999146752261669324383746343961073586544231280705374169872467853219540611489602607728811754599840612178655808116177090547861723552568423445677485226458523938652791331597720048631102595400401441265797174646434458710053367613823494621228178958745749713569925673267305782440997462585602039814638322735379622033476629577384942099538197769283407355687722860380040426168766507578783055259856758499786378139115904069135950481162939062198675150669852189995273665717069715866684948472106884272331728582211207319652963762021307038575264911366443162706425964307954558523724825081965044111348673286453298487900504338929207397669824697077525706366960066319910221852904341253553676725676884723875341164876329094852297396146045487208537446152716134336940073720613577857811153217771164450049093238870480434129104429644457017678630101237568120077214183267545386337469518326698593319153960995648488650179182884042967416178465804182893527204525529883668975721425686105551964807287893393745230503026964544055691580757361479993089350154655246343955012907278175135536193987458301813909403813826785809525811501251777042861957220899525996974515458078300319438316931896813207177250661753164994646098804512911671023554972143015282038220066472980248542835129726829557159325212483085547103149389887703710105527455635315973013972358265415873031500224919676764265286355919245116686888261848278529970576679335020372641231694061630857218481882999388278376158685777605943453873579988318130154204793305928215530412805903294863001304527474363480525210674175082332274504794416133730136845048172065714689144481011735809319920056731960231932505748990417010059494747082285972449966673626743533907310035757635018227040634346266206630479492559041614683149640910532788827262724183640235413881980006393723176645100410338798433258356861295946616357177216475938736758873919104535569962085814360751241734521735213110020834608098117831105535705564868431117466605631666230982171195540766909564559789441450058951243613441188847564445934860370541941808686015544891293045341425944764406050129599222382280681045468249031058413215521268805038583997303478837708262660276422961988929615940557672882269031841610833637658783792818481362961949019748893057312548216967591580346637896129436021175504314827049629751325512144171250810000385196865646975021499196659127168545466504660781205858834429057703173450613302464393710802616591065945067107383452911894323985040200272897968771263562318642070921635065471334462654031293154264586186280906336237889809031068725384810486305551251070034071923499580883655313555759739564687967692977218124935294962584466546422031505117659437181045772648487113928208760106013827111885360031861386032876519760097570489440745504287585126002563984560790800374259507265474605619015749501597075243031381495795694942144968652159133700430732641632509736556788476055080580077739764348266822803917332727824073101078534827863014039290251340024795651964168961538314143784147570752466185438682602628269065889071950466681889723543022301472922701418089949074997844281059580425917359271454975321275088408287589532134747319223240437368483376431880589747332216116646954200139791906093658569734007278789686799735661031982670414457326770058134172540997284926939785723299325679167755826865333256269279566984837615002966648955076165177609218397776803411216376055600707645191412472442142250637500318391514125513992198215061674389428757821545161554286412384221972869703917336911589706116235792849728859273142109865291974660235303025773696607153617804267489109638030090066865484325810955065063531848666337468950013064540101191001129886706283012727950118706466698217909138119206937878210685404416563061869953356007249867195836371743049692656837102509943946642558036407046788910060085146991092661720565298052061922707346867093662842189701368635076853416072442627580673917568557396732413337218826281426003833485751525343281391520438580927039036493872661927658857724443016620172103095380511677162147241551178661615441987297440702299846370210798837973251187760656509540749653886429988336367811247429583022567833385517601635463345701365415953698827522950329435166025130308044384893216149002339537185022202338172852599050494240358587325163055800718972073080649380915860129698368267491958873955009415126310026729250652092182731293513798612827906132866520285036660751647800802754568655728564124447850969371444831237421677213929527889977148619145715519097220217932173396690939964840429425426205154822013146184682186580653822044229693971136077470038762892605491194400098546504153944614264212819662514560639842261130096211712111447445948311107848694492611041137833558678155122287881952732227818357710240407703872349182082289794910160890990738563787939166265943728972029127786908173005196984624109910762548413680172628136461744348282043191181741660476415586132655390252485270021284257767027485745494371710001720158549889692330117943865159869646800042663490216865880336193659371856478024962739850242268543090539473043732797022031958866430520028507841117830276841102604747693034619700295711012260331125531090112602052126128572577388869742680286274944224455418470856101852001703237220133499156969342180152588138206227414652469906585782344178676737295493002213932967983461949235306322304569208798873213347797104878676230573995842211233080595728724007173322419352645460741774713231348485375393222313880948477607008235881315334935925976369122053275574594511627246717008021371892077126683521511661101070753695179318198715273924706258325930105153431736228718418712050455171296524573867560788193777088650876607603292927383204944857838014961401594508529222174546063886900661428034804984524088749223028447223148069177897679098806541946630470755790933934823142299645907112572376743959174986866145992871268324336073404430696151663542037437884603889691710819585832666216941217964182897650893402147927544821628780235279028621079188044838156194430059914056516580715285393207815507998604741253096395748490707067440003877315820704641470906692548270451847976758765571928649043757736969553100134943314385748724306254542254798093166202898640169606385025333796681654621639165074786870764482836413280588100527749608298381178633058049713990134775736081818877923288790918374215711403830948211683472879705822617070095962213951236459962182709542063211580343817622648208529565355989362865982355578104181738715166558479869455821221980458607069212318519627944226843867792954696629747273917320753673560842523800474965265614948725852370795440698497198641265201916775588220112881335600437932539877177896792605088486880858148687907518952272337049160930761135364250498885191087308855806993519324935097002529028400331077772202667356645098811849629218623570167968432407512317525948530974311414133608967215855015535888563985329117229335143358311300460794680323155418233188681979118680221037189918967877926430049129861895525163682805760391092217821999609243652914314840113920419887378621930283375721035170967325371417941586192273672409250669994293763861641977860741471432845153832363218083212719088935369972523726527224572593799567344738453034036368011556362770547085759688823319992041019407819203023415874572678140550199863008761572990083524962026162844277117991935802336495902674507356022511445485973070386702132761193920341550720934011396760114932769737251985836197784204583991762367231340983587066571472095600488781885434939491012092209597438010206654220888703072004987756653923179234733013695958164520815855257735564408598218497345776900202202539279823293000446915508491415034879919950069396813487028795092225696078948781007379493122072946726866024077225286798177323494270470320535649170533694733662663100167295653295214957025152629032384140813677355841336135901874140666746702375247389176403697186533594164016874359444159221577178792821243113703029410481984255249744189425358282828409235354978808338464532457407072289858182097730006848785789096834564142491446349566033192285435917809152232297958601927270159061057484531859944442233209737362351207740885789917923586021895915184903023560751265447184860098026470270260161608563794534892891358822519695339103060142620905110348423957938354309003360437579423194489573657498799258917609397052802418872554955445150213201675129668228750740024742330221448473464808125899623719114237718164870140397018973126109613466433635195364968756484814498423249679333130441763866320226226668348768171323962659446688175204596804557134905280080927428612728082602387613817281734227604066628739190766916789951207090169200080925069209449175597423799629493908517154115279714515524652476988429310894185827033084868876024564162656742900932141947112726918093622650766317453601382283194942821834336739065737748305832851449015353412323575698141951770609404267254609255749124076715996442785540079517623330206335266596003170114093711947259076370905460553288629759965161354820650299140049821803780412945283509676182865624609244933457373503066834088937307895235376847633896521946090109313493833090456744463051686954495858403114928878025087857000763203977195921944738925478042988454165825651462326070282675673530148749315994686649487055278700218285652628213966168203063872607163327263170755885576732202908798186495468060679700769948058514213729052503946692415492441298748202149021297791103470564968246676518024109762749200457240152865669794509257247987175600470743770818787665542792327805451190300963392422808989036276598839955264891440101942259454976020128218252032419110272872304454635360246794486167392609300968934368790126584485177459023542295449026317226631963884017536707048661280336266377106503677868858148362287717531942839712675298879498247434514287635907296876854028981452483023802196782661634120900542575095237089934337837973291309447417578626148057992102488241942707299544304097224166851366028958857631123585148111388169555681171595189132207299690375935051588901668932493785029823482895172966881055724402602648832076158558631105299447212807960147163864528994514850969597822694244961081369907253939001842100794762363217722519257423744769975665834792247578668903168283674899631300113869263270813987940782074167347457464425653501134262292418160754899808247030595327884499327194665375125523247598602289420069268712266057679590208851291634555833184182035469147821241269984911039593396875515727079689264637992483046996977400018467407751406325333884125765856858126969638799391478194694102318534282663196028004530094647306306717521828107526023078896486283979801785716191820524232663722631252792232730041647571810431708929695288430408992166217154122034610765384688529473212826585234402974253482476855867509278188218015633752803357518353902760400836269855845860494862064457225050575285095364492662080678632670418442758978280834438119541107462213722559184980107534807992575312726961444219229431545259952053032973468604897332534886766455344793022107757627454879383226984093451427646099195079089515856026362717391903388284856888459072048750339781955394429249410421432322574390387401204327411297387119647409846324883645815369980718853789256889979449587136165163958297126370522091589998200505827533614706297175896696972978454892819263984705777226684367267373128142248417001728017732828002680331840174724949047301265277273708383399523608721345901850868354414211619690257434547528563035598060377072998876066571193490265725099111081798559707949383291508833141227657681244733393367882839733140417760738757434022899352656962692362172319985104411133213672034023176989040171275640964601442655254697198339190523629739597257071375443643393780422836242056784422708348179674485934663428740580877940598141084448822944760115477494001397194703309887981460698426933399501431966667046234612522153663139683138826412603035048417943161705351284937130855534492460245265305153074147414144185154233109371026600195337474815692199849813166014709194456052796510749992226620361942207203491367894932359151969993623803795068186866392839982063055644735143046140629503920013056085890956756448847356804001884603993193946152914719572083179908985245608687364884913004551556574737002177943834190032754631344095071801572078050287745461826682388258073512282836497556846737946319063437464698798253030584743034035143504996061594115626265245189448927932440847222583932034733490026529626457133852207594512831553778799652179326738243163614265050570998548280640820624930783760120932979027754547934091471749399419117892056822943112215930003637769295346507558251090279094518957781772375747378494501763975688174175693691807241306576778900989081442035307002538614989946146857814573811592909857274833323357018257352785176819104217371661198015103362709144229998673550474936521254832238543279719054188212613389587993152076025483151877422968647526998456640583248855356399304335581973174985747225574376983019774056494628331628912925261346652764563177101455188282255034946036760678743837179880672381423048358971606565303399313575888269037744734600926553006596303452799028620810384705325462889953204854610994400330669063378715854420017712701013293634591778951475381659444199213615868511279088130765182421379673302627773615034151986440373875080416139442028444644131973414704411315029940059922599385467233552055870685720062235497440219907997528968198826485940077958476722574908086317235727622162394834925394291730511135998727142660217861391109336955218131055568719789940144932159435846173364392166760032145566384606989828800890753862892854285359276260707763691663977020543046126500870399244275283948667541851741984675753000680003045503390632574262569522543258645826821361577492111816066575288745271843260822982389393948384238756570085801893362135328820307354987402354949041754499965726030535823050649555645507941583093654805387230106510866966461893178237765440486769235642199900900050756332438483604625205680576347998757424905463031045908798298286244248269611117119673061545979532447033702870294784384173409576655118311805483360260057559952769455274904397132601005222517195456711985052562759453482240167620108578679554338688186305438416674706285844430079176017233479752992293950290161531342000771000776703087163115373111404937048290275297215188212251091478150277899774898493196526437109877417583734487772372045492634923961106181377848659387870804342758416848403907523333107069988413368813819813494465177210866803793239865002907655866107820179269807427170238425393302020842358281901567186442228010568997927363349381518986616909616929877308652828454323589872145092118916466604667617790842888113344788653868230983743340075048088764947307840870290109912532315995105391948356409578015335809367271028660805425191672084269418003765778535233373684658106254972768695409294889561633635871414900064968649298154768767055792446213184377224771504166841677128560841825372165138964946674527890468196555854453982779099841123746514182615291137483951357087868135040031587459096263980538506394029085075622464354908080706691995214713342058680739315573979674687759205682683169382698593765323962155019891163464486462062506153756849213590914624785769033667707484135458624894460476917019843963903032137368915480211634410963542831499783453272301883923569636753445234579510128068737731090732760869289069657294533954515386024126356862294285227326542735876506857236305620070191164985604234197485439783124579192442102547954194185563883619785871993769657752161076465293246336661614139416350360018606100436013643067536430808613534589936024024123159987892404040989357533129358136098416511175079056111524209840403284894192437843265571837247218033885932586335411150815482549199870033727384770978227743509665501845761367159570839023342091058921321926058794872225515913280207695492986876637243081355203399074739134362395502845802656596236672289642293401023184487019604350627860959540163857155234213506386562921806263716228497503501240804055844318552986534975202875478272651901781138776574826262139968842995262338789356447494789901672531337751155107670600354911858874740208016636347480538435275957080506977275445240118520892727989625038393631386695760103487671074378441295166172264715369115627439239798431705095645522817801450562208846971248924439906472285746557557855833117617745460197789766675850432855053875982904693036624166640744980983382727744211266976656153063826067418039646642122455946311741255980026139491278172500493228043869401672771756349072029281174024490067699205035805013378676230935610516672001662841835286922753612572700706710781985994729524382294627177322516196724734080922888256634431175352417167964724476024994949929434390257233962954690991944151655691267211936295488492827948892256709724847572683008505726092541396401282434763443448886725930715652923751680837675221259901247172812797286594177829706181852885498463013035554240063280965469011992580027253920260958601000336758135344790878791731891856123908398778718598998508225149973526965753276131002076326721626042999751413241203884933898762628720074830640311901878297510033413687853679837730406203485940892981462396714948838313680846838068499945098125225524765144466801934866612757647831236271399105746593652514065492049637579901741645148179459222130102203280180160163581968080544894834884260922665085009163964915096400843165745257541733072985978958305543749730155683167356272267344163887247919701031753116497370649759578907239420357905884497739721614633253757324095792055151216583935334403169100341416008160165640767621903581138183470766704436266535122555700385010377312092986348761451001225452848792914154732433286361259040316233668093309765295480439526371459162140104132135686206198459136710695219170991623453499481946083000609757452238283992822941188003128944193546843043717320638510061915204480723258212350763409073815020343665499732742961483450420229282242260868614388809494673902441252330654654769123395468568732880082850273634063277994151022098094468972340888925472144644132021042265882416039959551120504790261614488351305369322848042872832455521942941679016646929902646665871576947541915396961848276855997574378787013487326888494801027982870295146303247501365060984632730853999438171989659185732466307659930045202206676071663564837966035785465071130990452439255841446651803845063271399884408245473139730974658536605474585105960403447828808786144770893333375183535411160589323881511380939032482921359738444643906491390584237054417414167280478004511893463673884132375998334208095320037366134309910321421141954446074623856845410221065195790925700586374704404656839311541968282623763486687198785667096611286265384681544302014690793284112455382788774416463866261379527265159782001084302569868195999309008010161447801266043764929764215700669557696278326660301006891499375151429973937201773826553024491587110883421840262692364173791850887759943994980082090435779238463854914257459872278662951999635835375912892144019242094235858033562432895563373021803438688547125449810590634960495948548583751214624968219132065976911163470164231234299212322704772602293268766445887413952856371091807138910520754664009201497832559289646714387157524784773273760238512384299656058637963611546812871749595787086648435078497088583701941445351110817413018031942329996725666599823178667007804893096985663791154481256540358846920893012921250223124928303091975552080769060827024659411739011749838428908737481730807851167295636124592970412986042070636030805902733109019258009936204615827509291182180799107170628946850421288284628526461488412081576688993494937439670518789682950668231078571119978944314912627818161438762913354853914992593236354967362298793048985441604303088000950211966942556411244271630733000433419358343650249264980697017584667742328512487916913975404652523566870381506882338824470381110833340983343909144925235519400278713673824570368486258828954588011264217320916032285670684114430198363326071266461134570732468417482364786895281956283938002616319330403798226541535754660331448769457719407324122297972889331924464316998251106752039404473052660512803014304744421862795706701238794845357359095384759327459542444800026445180218006004867345586590222186818193446020883007299482440062655695770982303535938595028033292190220281759820773904688550484264764339108519448493403442955870890154217265803571717381099212850740821311971843542932564407189275172671889211462460384507305486993974140770397005278531599801196874529897092386136984780838023895886948022458603954863210803531080672801453080399176326097913894230270858318987949132393133183598717154133068595244445427629119077218548219089007734865961128616533414199276656520541049998952256430680754517460953164240487590280025530907068714976187696691192492878609211762531749020273520542787019782513792555019830168393434664213104040783058309751988926836797259795456676930220903910864168544131636698255679702732043020136144475779880480695557515800361619000207210556677350722472866664899010229846961183393960533653826319858935846988179694907830216369827998998783001940212198195264348400487630203936167731368950726785665890682054339813558743377738186550538834357993759526726770026541697855274303503920016775830751598288908715615251421828531957987744834124014442847672665930044264752967076221504011970596728343705514650069450071635083613172593443097309603734534440037064869124388418342618705132781199573145191187370998814718600509596530096111464430569252847057224247026142723311538278755082945916658275153434732363248237066410315871806971896121637214717912791762488105101404946611720085621315239035422676507265896041502460652949913652108817458201315162481448736995154681598391737850536718078692611260138683376990661545793848639357587669848515318067594617898990751887610164238197297989692810191752622547950792475677058027914396493755364390414434605818094859542948600277944060107590734430948034443657514804536450808301393112609056904267685190416522003430915548095919630995758683434573238136097672127667677366973831191178738250890774488249293915101718294169790451386358669641341938039300195467289217202951033017249168818524789601944538913937036442083601317835640713514746336888298155778899791700029270770395183125101113057610413961754594955065707100554374317910486541394800559292199189244848495526356374487126135483597323773789287610600590171659710318050644903687157294752909550136866492368505777909461300619156827870318416573127762725971572236273149986528135617492774418406818301082922714648518329260330127395413986511698052473115872395772317787773200926085682816535500880548092477620338054651535521028279743948459577904017057286916308214245788826157760480707609179843264198856579553743243609669936027410790092992359287248202196085612492881072325584946012232996533842409423516758818641050183882476017458699108720696737250242112748831792930931647803254677503462808482563912174320458782430180881854802819018990198047318303903867677194097597451430840238402934127142315950708845076695296455159918170682073050024202599540406295699741055657049783015629722906681447097225421348740993314302986411731061404475283679022834621031628074926438589182598821240059220355230253578837306154224324652345895434588855836293815429117498019773826232648205623784506361876229083391546523339880003668603510918805227564044643032589381558951292326975530170908463398237520856022637865954360637406517841965541671222871703356421087291524904256491196211635146235183689319353911122200672950447657968963229611886376605084913914860564515002266436076758102287655021120261515864834825470854265602249146976934142048816131604383019558502623873046355943273567721092443756017371092640540782834959831266888650688903753802710455794545893950480329980938234030228849993001188825965294499456481690830400183035368182457503314140604199011056582613705121695565249307854369085136886461008317726501506327314470039119604960380211575860348011649793754836821174135859222969733086416809159425242954141145127036124010971424788804505666401098643347772648719395392631961455773773400545959809386641374712916416662745517267431213169822688173781674674503131053595844119288653225954835238363137823835993882470600526700271409470307300464457252926598452824137416061745574528683675642321258162238090383546928557014707649279460213147268788652283706747749081173887591279555692637135152653115215463466148038977805720083196646133298551517490513009168515122042311115535809692029617777875520149501065579702704668079668457973193304536035299470979143478685685247498828265470897575268169883111339867685788546220553314706808738161741996376502111004998891009035809846293224085458835805688997839778989103450318731010707400192036617191930330279428590852287161583767641713340599646447084377404067945939986262615481681981402564775522450327770691000608622742540271776709279434614975155750884532159943006658636149368386566655901661534928597820885104579096003114582311718804993763072620329111600286811143416404154983326980715918374047377413954634095605168737053730556512780413399814476289843993310341213679479903583519008016650068561892200964168182070471212465455991302805551605982351532866066436036816583335537615822273945868893439548110516886591112801651472690775978921494790982357346905851507820081522453918376449649657306520098328402601779678699787916808462596323303461235385208006258048443868477181778424611238964231464807845374179879587716256114868304393101888352011575746545823455636800809115360982079169502617709593463858062062015900650747900812408590410403640360261868070215069645231293172515666952875232241872996742357745586573992794411921324134310675254199114819291942271172620867849473332854532718062874480643307708740491066560351132904886900797711400482152610647472063380526422554192487274235376911113580621903415161991186620174366253206100210205096799137093531506843735251703257198859532921732911463206139702251941007026708626531394420695650337838854416903408286658750515849331925674319443994584771043577227187863530365824207182336079938851141534050625654758869547220956396697352723016912055164796100334653677241109899928543259077874852162691973750450007535301628174788257483425661137128090125747967084708904997062059761444829593946940628571948143545338751573940288256151987545985407495733817414482117438245338426219521531526130967402786785736284602759333970696237402364467416756163985285669567730694418030155348456167259332864715109079674794546295462744766091916940249445863227168067937981584868343136251723348282481365105175784092345371295386253680526428693332110272693615023164697363256685260719873849745447826795940384026797586388446311693415055173035198517150291298666190396920755141023569446568066016559444243239336372109701579141553840543722088081672999925604341947816433651715922782326685165422772231126456755996763962779080296358015971626706897865385324306958640519921507758535339407865309956268425455291738714608723423695870858839043821109587466878558673053911606100043557154746863811056973749272810125215144516872237235402575402108258896756671990487263850545053577582608021400248633357409485629824744064868503928145516890981288432213654762570154402929950521596139087356447235881222176118080363382307264737835096977802460317597938525848409341945709216995344733181021083325770303318141825592338692909384287166639952123279283873179536085887117423291710798356433048169811384125084445395667095939968655240643817966678814071922393649071323682671889918394201801887046992431646561179576679731436850875881534169696552447354507384544770312528071626115954548424334819607321258295801887825719357880184305645318081729298712459630944243075059179167634550819965844934685710717209787888655779582099127409553436607834920259356732327228575428266115814176397114639688961757660156435288678502918236678221968986324748682723460543371312330579826700782215243505049000634661845333532760705495500228280159995390879363290528555323310072534719376188870042340541842283743864351028240366840727593664207329238320997292947686458804084375094506087070018408382679173387141659519591575271530053122581616403993867938006995993817859935656195166944690897129890003277191965930604751672339396413245032051930180816239859948110140486131224164730072746877494969917163721180299095342360319132721850644285207977039570986130310929463907624245435746802116645253468095925610676162622669552945118214522208001764165092834714513216460204873492492408426927314508811598289915298442398634052418409997814303381140423569545699498950751985196060614931052337462826093135433294718073213291952923423349378302335097508370381939948810255944614360012490992218963866821708139583401236353397716929718119191947309589392342762740849021739711273226490004060046652167299155741348883319690209939959584675630091771155227068965145706838279855031956395797464446135778132153560181325375320695930561918643061561479012233466385117807816641384835857750052981748188241762079942114972913600952307115019823578498825824808455485310340955081882572995272984359797106647184129436462429387845444214919685211879055042257752791883609128898631768090759203807840793705510354581159365586995019215008353593589609652562534952652242667932702965323590118880122575537394046732987328403533670732810486741714586880967189499215427888417695746063862416816043188143637733466747481127740483493366767285637621580699052098981393095081001631004321462949664162452099033812889593007004165429622071521414297445247065487968606770424286197446506777225342539715111527945990908805887029000851485816694081002247003342710529971234922507694357770769626928206841335917241587874873365300628563474696860041802779602536540488102943613159237960531097960708903696230414912891397581532206263307907348952961747656042148226327216265498191569342323575961595675013688013131999878796274119781750379512770190292385777638163821925264275035137492049938986258327973134555558855755800712624250606264947664208222360563576178240221723637137387941787230670649851650701739698266143379766138515439077764934358124664873757010469316947432743633390721630218912323259596564501121283057249784335655236613134164837756441744829283080013648942601458195774434083479821321755087117802961540963244588762409766956220782611897107245032977893310880852010716877738279054990893221410261082295543293384853413557274382865985178205346505301091716315314757462068353260331274441687317780414716185623619670435781914474939903116813232937815328164313602249124468484555375243420920722211203651905056013382872660708801551116392414635316094503771668559759390486186787853164940076969055252747926481450898928834505089316691922635896031274854247628140726189319248943788912611445583160883249911952332082423065566269545386748183825173457055814204473542688555464564331021925890861941269399591471922399092599346627267145103183260821800931510381341860427597439739897838899829479537809309620898792075857348573691393294453867962579010901924984377697383153816494739004206313601138329289048004793606617671914502646571307903034690432295702049555428197095225423508552213142530143115511828483315552953186073886729234653094639914272429891856170244849742672869004122923839313965785381334567482501948428499749770715358807914459452244856295849328900038212240723563737065161475354147149839920792317950702827770889895994966223741256839955754886244241778212808483233260589775007870167076127781295765476725700217468422079401780232780876694134612960742688938612154809472427112553546573824826062942115275149736843420600793981427337514095498230175791841591613277284945590671698782758203281517016321211754093446300106500162111521985861331734591699520606055606209378214601189105521216701863106188065429710230042847902878607467400803534405793284392847852032239083440608329435483826525864694141554792539840787741963186556576071240278684388234327356605355546229682683049086837267320000445997056801742796153810298777229731118882797249450814561367639015013893347912003927954838815525548252351312717920367166791148974649662165597995720590586434409854944803664748475437985551471570123945930916869073528227758894216888375302584513392848106419629230031129955581974164287650917517532281246049280072079656269344201066849305618475465523619040279555417736320948082451737542707743357853958650993249695383929266339097998892083789759722054191262843221420415609969232906859324392289474745149764611712838318540193529992856741824652821377170996290298116936783160577459571819543980255310798358460718215338971477954277605151107209445993152090935852979871557625322024970260931196619112031773994027495865894734689273942515076086752086004284848514077455890886993272407395350096789314882849174701954880022612112121525470553843436487748290413834584120059362502286975036901665326182225515893700955377893983296854157093840722188232935576403352989998007013062045037763952665163659919819109233236823268588154929735982331092797307614707133244243012085974839595514028364715688725383729680687996217297367425388242082157520558884149876641794363039176418591109222512905549575157881736492700354940814704450548915120635637019638510502393722187306572534228862954712459714950676876696152632213847742789989689910756022669407684888975163389076686388391434810695739400031514644908144549033733409105843362625502315924945135479993870171411972298525674444168183405976076606298579158379422793593217102333124555049533722773523331236391982079895605382178682588105919012428909391733551785389114723201632938244062623566812532280742683345409277661135968426812114631588300332447101335114503265927318134604117440715212112699121867296402376353305810180554257739078679509390698542546503516473925843406130516508727774347549582431562547823319993006102096038961947349680196722336573278884768486993515292453767068804901376730056450680144427111639593568307811641950606193826402188212380116361236552437440169596006767418608631048995759532349975826322824246896729305826873228075114133387548368403320307569139015145550180308930183530669834980547416870324692698693716265915152018645891268432732186673977895113629609754825571278230502729244614736383257724122664380730471012074277942274873621370359994306562503373850166367868886015793214470858533899746070366200663830745522918549357022156428026623999021904974891526188235784729757010325934210978595803839013503979959543621285998423157013677102528106835144059060662014543383445739585659243094413246241865374885603484138036315245384500432778686605050555305757415357829457680417067088936734188877184139634201065701224709522450419123472558414880332267288610332588718638735159112663126090871322390820434182510117468166715648572585608851333019940797590278656216578792958193595091291253768216899886206257786877331550487586732023451297683430269661957385463251785723476798499978441080452584080691910434110799495999101347166422793178870826740747235078683763170557398242748556526249350600927650113246137723272865293941152182006143653502042740167007223914800714635380715422721796410802531799125236618834099947186888462883182656983571137521988848550747099498598350711637213693888939997668385861564197312258037689952733929136667120322157389128669683878134001898644158648685893054264168181997444704648472344218758957981211444640663923945371902758019331148003036725906380351889144986209639361572054253759672479407844042672401672530691285759263931505352772248465360229966969785824645586496557790609251345081411987134439639001624998345638027730571994675421551454173203094995487154378743768832371295595269956605620301118727031269753066997774877919551322870659492851736325773563265244393780594268165205458417238972433859174098222977782415001977352938662973026437367660124679973859155964178244583847048573093876163689048974045826300238066406568423219591901762189025988070100527116404393667333804495934342616604417765132597249481669279092944230125933936231562696263992723203728557154262420134623689457832558292659507338949854311013953944396433192627170793387710133005940555171285017638569056068852688806256272230143268812877650162220875173926136043917810931041839209320657168073569121924734142083075708080680568696949906330386420817801736955535306801910091354690498906632810758248666221333323288417128949459732722649157090579181733692670003364343235120804322014178050405059151854087713063109116787056741630916167603276977431246635941077505100962130200241382160925690063131565418374425209258063401046505599891913827112824396101968859201123657350080410791763176248603382189414356021473737002291405370032145287487721266717572899653867249718655336850333946873863358007287954759761075221791427400584508038227761030771363837260926947416711403285078317999831912277568238032275382689716875678834926909878064820757770321923526141186434200760885344959310123254253216321872267464633294449198985957510533932763004318183098081567305574791970960803874513613589067122898879223090853039016751500504863938744712983526199790153704010935446476016433229841244955222665779518771766775141294314546124943848999992545088462965618294076402060883451302083387360117440907664000814101321611036201608015437486924623308469202201763312291384661615018252863683694496431061780735583411026522463956006711061511872860449747344657123412235051559600735265066942163725479895935636133385219621166708833690976909156478087565267546793983054065609083787098692303845793871055689647115156974152444519909362866764802782634721102808875473869978158822382543650572303853805657378099555249134337445495482780425635312217281180803407951834982704259779226353201837390970342839297802946141216291642414097521790619205054991009810338279869774401056136844762978106443222314293392415281855186194760635369625681010049968280252342067134688086877299240789986906384849400872428368647370460591876157661779365006469288820408036310207054145309847611385753549045189934133666569720265198110279254172870077370350913752145044079329339509050418484957203542706104524414871108636177381956640568185243979611195603867107530157654138959503766275823576246996812400740477366613977826736170117899708420334651067756562106782201179179947315283196120018893277351279288755525559346832228431356439787640957230639655788116275984508781731643644741046583291501174711047532269954932402709663929112498714085848524534117439465696863033065955949933388813466486864913878277110896949133610288621695893781098898425945889209428616478732528146919431085550030623212276326913417382209643436216738130495210600630796609387241343622356577494510204093844131255680922239354304016447934926010653671870671626809312083702848751435729164953611418277672268727309268827621337087728178659902700479002099625655334067623645069818283898049359853483063006338424179792141220061036049819658133834591891202668250136030796144071996913037702515969547322650522445930889187492718559952797412500565949525384656025377366766963805107034688811983893108641364157430905132796298004871378549868563583956228270661578012736678065794576685251347927966963033528044209033589271469508999464960051933067944911912817149679448596727776223308238367045715365834114747933519957709092471773065355729635649954719527369817768870141539320466150219455299242917117006578174708011241244120306671537095033879771472771197586450041772763207981001670174718655603764932112217659813817877040958244713629508713276118351545890800082878874423117499576354748403193678110331952557889050767222181615088239983106622959696049052489998364521575208663030096347487280130910278982386371678579974316316997684423695060419911700055623144251828867917319054147646539010634415273821769302284110642629169839152840102793874863743372528312514462399786146572008440609988500085167994523004556100616892430261287030952103376226458801567050088702633895609902282719362566296494937922736985907119067980268774779305265304918282188613380529080314363920891990512102413456584533742345472132850681365781965693987050995464694773056665717743838705737452613180126873036201689035624557182544735790323217750601123302424569275100647338132409980288223689234196497567894305267358863681272704723302358510588069612608259920914775937065051423730727746934445128450668705416539767226090859784716549031006000153419252545431853362744810928656251507940178857704676286397682649587984503916799683648847159755652431725801844302782774420622596692542477684908707483216211938305682520749680162526730099439413387315656043792775882538397998318198371505953452132672746850120870841554576907556826074455008515016350635423080549125224954753613518261462932406604126030836950957226630797065579542690930365789124998098293876538835060783283871297275691448485673968274201946431380761103473340784649626326258967009349291097533709839486371071250213166752729988379086486296386250314629769077897954120414745537259829717728688252161907009191747666556230836561242612642760824625641137230088155125099260991788884405141622452483678799899090518880234467981474940636049228154748836142626627944126277991540757573798925836089427096100975312446503434386581096795359453928088265901644003296651594599509728634661031412003711630040331914840028782979899506100697777125093097838609972331991359222022737233232588056584662759880586998074129544962349482903471693217716113981486385292997940616563973115202441570712851720862924052253768501331130057934802012769868259684699040616766595884228366118197216180984213436972299638531176197674037251664974970608151527071849525157539373648645400164419920446844801664953256432420590649952706137101550066958753254466938512402763529504995565157788912444526290951038025127864484108683063763933049735056827395456901636880712874932384198903322950571451557482803851027373193399762619054321711933474278333769087682885461727005873325848919406974805783688713638905373639489310842380682574618379899637291357197588791453228358690753959725905348307184303972636534930082096650711872888419528068704145588196137881142702360923829142997562052778006692829437918740841404661039672975747096662365322464612485864103958456335363868466912071067203522136277321894283067571413947715150944033126147749190782406278713976958275561417824359318231848916282666748047532065455465889379367854866915409058931886571188943945058337980567133179020260561833308670454189014509565642901085753384699008979879108255560211523746759029514744610980985377067380876855495090317689087068781940703467739552925789622293842001516309229167519245039778497399606961766886077958857189611318624754354413320383959930069826628209653125194257937227187398867211380808924539427686574287474280821480847503791939505080651213832375457586117055703727923714102559311622825531241557680692044417963861172206382596866126428246299643818282155054315850844374683122666671260743623548309175843360953237409685379810312516780223477331747373391499379414973066679786802750051168753868570800676062628245499921959342502664827695460124246691626110087078855842755948891722868007735989195976273931182066902127277319994223565034781270736432834404762553530715337636338339502755765056986141486094654686854749725463239406958075122061098412646629974161731176841246078171511726590782260316979160420079512304221134105230639727046785005808638012558240713131833631234834550732332918054515719754781832888832198023861967901777092970603243237935739631349213225329340643671178397931287638393990059932225997379949882101060442022880990272927632618765580917610323033212881342172863754629927738656300042066905664015673021190872294077001417205851693366172993251883326743616375214079063314874742393149465050857364027096471611288695484655898605034455162978928565104399274671446660530857771016534366463175022629077031157858437267729624565201920788958787855478368139598535979291567758709973205816535366361628648698227613158238999428650443460200756254084911376341087137177816375602081324859460687218038139186783526428483819178812773089093365428735884890337332318566852217591874381122620290626406355983939825167787175341465639545535677158895698605378916076761847678381888002321442340179323316810006387510569565143540278744906600571703689528028800636888023659194468655924993240569299074723234566995704219466538450577887523524362185951500266062970862096021975938111614741402273676211088664115797477701513838901226508713091211678814579189636892997700796183717291720555437093354464291955335328232727947139760762246102164797859313761354735247678844596441039591753156698476836540482300905391637267281806461070963478706731369195786870905326902920946288353279702340984005202857097498524146525583577385579363238656231457615578521175097071762926533766161795052693781477634410856308880384730667943536773719475675182173708279853913876422899934635690977466276577145502545410602155877041700753038792412401306671264580470379641989699974413656853116682239472213692616198792040193885789088232054973791980470511495065522813606115857463777487731283689865395638783115451170347062373306817572974844971912187905087392261225129489065330817549405432350427576619883128081782339975313082229908102209701988648044001324996328982094607660263292874461792566057128195964794447965024773847689729381111971133098253623598779783067077084113443005614103436212483499701837196934008332957663347124398047159521030159329618188112875539456134811298291139790333830342902157837468540779373897388681586026367335311221277148664274422445601010021059498035960434228481190287317707891059227329240554386219083098144046848041483819416400347995501914364927845166544196416934253911363642465295584433121674434712256461724452681979829550325697697901568602954056874128402649112373064670469446369320133894534192997743848858037464688372007800875133399761963018257348103848498701189864357149449661907902682135298641526108930654672726164155972731172310289291657065870860644873502256446900506027663989980368698955985705480463883423331032880694433921100384874207984842012169186805422511560495520097778035336210423529790684526254135305559287968528049067182668264203023323934897464515073534599655832889915587217146582887210366018061385561973355635969896070652280445955498375304167643265295364798603529425771998340002314712328057293170524220288768718801377142426653145844506034081477642509090405851678125588727791367964073228925877087920211352790515804659175194583401471202320586758351155312101905516905129773939656171887493706969062496195006460543630748148090166437121288867108258143588535431355325848154140813619464959638187967502025351012438138427951971874562003164553137797118759097936170626826503047355778647242867724174526220018296417083325926192012090925676686083067396306991314579463261177530583067453872411797489770353773937524567907602146103580179494389802804607358720935049491404870908081559477359458700841412800961875154908394386639657536469760802204775235447655482818685168427578079189337978412622360560191787051150623494323706331044454764701880382327918915550174811979623583492450026533983896136792538278031819243997794626381049965947801531355267876065436949330773324638036067001636347428179592605412056472537333768571177494762035794221122145468257499831555459668567695079308975856311361660836388822703019107417096133766029800112857893123003669482351613391764430032796353951334894449661788599547343788918689248064487865186827720360180960496835943227436370877949275069850463657912032876031992985612219972766431765599213480649923070234961710641592618953158362241086909314127730595253659660158512778650336409596055226439363297294525026251016588986827569981175013010202255308105501575713186535886351517213473665218769235632527067952902186988793675107919015713285350221572387933933290890008020405718646681359250924149380980071364895044696533957600211865227331934246817617770753601986796165350897339207100521122564558847235683302288904784094766017097708557353163596865051975463263775203032873262238811488627333017189925896957797850985217263164963620270582546092411072969543558568754195071316081987459982726043879106177478941435891954611944898943185439646792105585416175880004834517089321878467863734730385367763718295695966603295514283721287644785167860605275008094408424243881532127164883211252148572812732525655422127188046926524774045030511348801519113237754248606322256682545395142942959387648177290445188243056861067088544923524294515772752514326183760688786428368474334704121544529636288173084778676050487778001562339525190938160613973085202739395891214860763558582520174226573301795781637908012113850753285806425125037659080851546154989374346798802502614122206043778361249469735533406034521123886463203156720246497611689078142906076239738416215393211613356806680746505721391772580046116467904175558803854628411405255409875859034752177364198420974403757401695616405487583485841620198066505599328184115091350637784385153064537475123809959316965340733874337214890349741999591018910034288189078324107448805157219263505796345201768537051552024207606651205738362259979313561285089369945431081739291678406827860473847112940265031875095235617090986120523649455167303326245094910589487600056833612366181321792686336864369816395595050739771670509079736260566393295878736207152458921215225689907981052158367034775823372914312580614193562922482286202562756734625974263079989411644446236673296229217380136983238085483173192024204273168058922430257858091398981587785121953444896545731338966513215664568080454909172072115295162845866212954526950586270186555708057803634431951997379796119678997660293715880766707662013147867720949132518597934144802795317500766186392014049886431272196288005135114162092844986457081110893917426461221066141800530481785331899198927274704295446123980973654515333467272817777468427479750622293988783135716322158354590668158339049073357345342045777146689805861551882889745916468014324477321290310123087163756189603236661320149289081544731442156610776750811005809188774108425694962544292948312840366213830539967640258205499142113190736616790122480119432578104241766622386639030888304133779975222553236109239506748837245179292105510269938165570027615561025175987635247582017778227841052197899064198221273772920845982860900681808224577651511241214780343076235163806010260949065395334648907171141431698870503040839894384475327955982254528140261458176974162132855625798201326238461807241792391639363908582507111738193671137132267540012431623461476391651563453030205217050356728957492215962354355986715559208721256171382317908422897854080323907590746512518813296443498487381299549934479789180770912490042484860826938552255330228110318626715934155729985719030425310845858433915197599375684835540879707272225712123432472915785001801926846466249234339186953155849029284128288150920203405483150124001747562180647173055931690331050006468714038290940425055764137916607276947086704603513218343001033692458044174440751616987972398995573229232098086874021402068261112419611501098847433075948298076919231401246543341039517980145022361694699365004055350389568503739072423410264992067492758386373782923983326632194601398313470919402601504691576337535876907155989895457704843255068629322408467238108528626050812284726960020448407497028827357217997763707471360874738535881683987547413826573832143102042449379367544231448275626408303794297627773643084833834093246206098679868669839511456534856875373796136493031625394455452572575997112809520703263605196511222180928017853527596132953854863779675396591216490444099462337694377580971359400904889318038610339610450172950130225263358724595246850676623325555872521779199901739756243386151610211953723501884144135257442739113942507290576922839417890172869060997132596356459203276928112939010669752983542261366973059164928553076874353074488911120512954857268760909348160250131457789608240092047513227393206815226017405315702558304767252275646662343711684147883278803440373355261874338384325516780728225678490573543387187548474630289989852248968821428014228173968102946358671664187516075333593650023724376104531451941014743615930143524976647430012675032691655273117896625693333220703679976860930637341686236211882643806362692705001447347671525473475057773419290632894105498954377063402561685813448126107936567585499787103695374698306021832138552289215490026009026638303587024366487039034527206258411925179766402187575655655554356492537941327006183300268416014189929374404316154395389035010731966943490458596639041994704543688138643581411920212894900493745604573293813959385644929994111243102243627914348379342846670676274284143468178246066786789554248661803696815361306250386819489570663292318548215338833914671702329521131140585734369224372002834285815967265658397815451868850053186804211032282927104980642447927560631714588611230121718223709911834845165010086483919065499629793829848900065140469046067520680503374483852807072588144191056531024803076608860205193962379099388353212312397812098761228008260508423098172615535450113169269582295136335335532937400773599636189580808132665994236738699191983593030936418361489476036553767506869419557630284715822468667399366729585903314481173233777362735582012490846869812368884348784167805311439225141923943731551816938627254161487421861531318895749661691104788552036062050948141063738516938121084086686705125732563875426689883481896259158895325160151050609182115716577626283128307638717644935817379393438788766199366964325962701857069856657787888083977406082866641755613685779951251116933723451659020963375590120512555693396486994525101372789756450633643805826131950629804208472797936124034465938875950740972314039232027516509159732099061101996189683785000066232530252289861049110444000265233122925522059370516545342402188736117343065008929283061693595868300737026275990726478936841933962512656554378530606160386895800061472356482314534962514534380282233338109407760229343401356268019200881951481809783089213121918686316076707892981441568474852828663610797684591902706532566883809149033928888869194149941567033122156704439968358600555471115922701003749785943378805474191433671255798669678537439952412271929739579836389700739248479592831446056778318967419318121398664180577883586892778586066173302894879119328181058502361839877439473906625615098829908986425680568827464193739055593391240534340372903522564477565919435485523099806695624274717590014419767191393446410312239756914115332849225231960142259116608293186956255112084700959546054939080737811799024513545962845375244887467672242218518203442763224849437332537167096746029608984475448327125501504599620894944150601426971911135115708143527394568346559898967374573270453227560973084956146610091890907136849473509281982581583381054653088832695297545911401009482594790381306403782059995045632453837983027055429897250022073999355704495088637773947064555474725411297923118998977102931127085960199089319439471657539965697496834103021086546907497022890041863588031437972981384736746816429165683034058153149337371756832906201146279234371649855289928093672324855852273849725049195046853161424164317587448131827415127574539391501565231759471653453866655070911157921992651294565092333960368955531534215433057204287099857055542138801781874635052666726486296082889345543202315489551383629743851309215357701684174213981118433910053899085152513743133502112683820005573553019542446285323350654755883351976672191091559644753149153318532430292445724745633516782352886960864177178075931356205040107257746699583355090894721295920125913264302747774454241422787408168199761465492872864620818767151139782127970704957340560055282421773295016423912112651882573027903928059504585042470297453884941902393473052647671459463849441694846889107873535644695943708419330156693188498589235885766124603421383519674636980098483973621454971940932588997374377080160997916755835943361500633350091956118571105215679608482734049072134227529857816125744862519890186524935469410000988630323224042492106205331332632246230234887227618184773176294417674058262037887361633330994302760584790893322791347003946872346365207388167936324826822073438790049288561615571852041884133424489031174864783829875832240024225428406463675826948140286817301905395179074505688988031131810032308532066433489098656955217164333312844249821966681204476056342267484163149410363315702982202355983343604714514708239484398094705125055959949800809807693631072780012054574392345076724226472546291161285511717164892990231238188877997229028632206517995282830210847185163204720769589991001582552323318564057207089546134004482258185676764361320219051126320904021457117876199100893434558325519159947567410138946527101925595962716702346212365633587466269426003368617932705020485539523532893727287475313275385610660321462605910344987962392240024874578562191329778599193536090688456801664424574655971019846594944806214721650417188060089965457482942220275845012183531968479927369914683569492512509617899291420031946495398367554150617764245623383991936592357173663223720353982920016828978497008790122736540399930364394720552575926111001966888783316750803142079687461734765204057267260257915657168456715626738416695298904543517658513918051546659003105683589737104609176301426799571439224651970562393931702695580929679312406488899025838173831518012684852057844034011654148444825666574161159453539407739947878471765103342556776051135370594362419204962262171265531333228307597550791672535045272014735085436970652993475769237616493414524001624078264875615139144363505195701773514874788340260533765458524716878449449590772523966819028119662036478209259348687042240047979930533645132079384991018954005920248162849026171378922770800943846213661704607038311641758999266522953647522935303123820003745920933877467468706324067534955631056233642413123096957929615662613586136864143324240662257694731899982543771487329270651930323873569841350155400025210661050377490713702285869182085212532335456090860203675600570080381118660171919097323480176036587932004539973090992194818917441553954846303972022689582493824433617210398662314702478348204987518664025026193491336090751328760951667270864385883880565166903447285866872032917046352959869251063605224408357188206596883094215593668353187041052603741864511400231015724261067170355976002673940550351629792435690088454938171052264666503582387217487951091851279508767578694608948470372867565973964507997259584427060307493109380310555120266111207750265252715833138535599776555197524638790187628057631456843109609594615598008081024502065492318793551579048919609835758505551083548408353161599912731867717446771152578885647139157406729462629588993053052710733185696284203240016466662123690498037106107925140554644318583834212825952874311016828917366338449742912490864050959631958087634224894407885100464338146836735754842682876740963174530237700524694303286245912264969000159466945952328090962429811002728332599336698632196026849288102289974961190486348039911342672902888102712818205433788192483316134287860009948450794935259941129586428747361939373799589338789790497727896182465676648418644951299236041839272987090442768118857008782672770997292935435265346739623245562374221225172426580183541218237047329735665524163090536588545263491952098958805330671884001129861287935203528760649150234270000021300308557118809851219174892832821184133257050819345994470049172431050366043415887381851727085808948590622682111840253067538305619722064785016096412147196698411497554925060624333359724664713710555628165464948350682648888039774387465667515386667328083819574113368734241986489071618637296858372674737495676046456763603802126321580645978074842329082724947739527785408881139871955827052584397028177959474497344183510955554656277637398737510871085445008026989053767636072564319081489894098548601552688294283222119889073871960351683109762938505807484265211345506502387937452890939126030740626992919941765762517280588968747566306036592190972260337102013644308564916874332723329624898938933674117092995674922872654381362705779070796793989097485605292984785296654401243061242772492489009612927706628828435152149224116709659360725086275018042688365152117535658743062067931832813082340544862143926069224286451649242349804586898413482815100852801678503857661362960827741587876583608959543287195682431452957295648230290170777078210776451673654204125479716876890712050558707909823207888490171509557338405225878949130705925032012263677353231018084934010329032481093821672393285337482737075849607554503436708490717493970238696195414521682440883865868603611632807168824027240328790222155340297914534853175011076584748523450288327772251735510838580036972118482766233549710695640789531360395027481788402015894201170485821593011149046583990895479602214883009101176464302425625602866353768627259288328458004219077742818719778817283769595115524061129797199124429525237806649744891259019013499429411587412251019593510413552927498185765805126822890458699338753450404214064537093973521550067624270266688335854022935530177449884960355014734264319668322920944706438864794747422106221926717347685414453352672535062221362446516128500442567025585881974600405794751737436193960595994848832066247627928997701027096447654704866719712945778434061578219260645984285661148084283690511015977255372761947128154928984759894718786178201860337173490142136582653343907437951406879826370278870052207928324493286478673746025486471092444873031631338660217476112393821643016886553918859505275611810984975437496045840187202547404860627620493434491516771473584440260203665582411229296205272976056632469088466384036257537781515311138812487149047439541937357307334968427980886468121502577748405119750349123349535345707899275551949219616848439584916567674018309171842272232417437909091643233666228139733981179678014055198494131817327931886936090240923876441844529713061385298288917081896156713250485020553219611176917597604221368532500274369767116099119677728450625677399779471139291589628258877138212029364668118068326836630495122078197528163854028075068679990908573173276949580531047900335742290899546701368977429517421639738971666341843270525473442869480781684947465636598518962500985004236375359500082975301584778406200540827187087139971410078021546769243401431977405751079082472977621298755660686091537214035010527505921377143261677855384093658351739845438408163194689910078294710023060393947185063192449946845476091132779321252195798990366626699015102136578273759773957664389673893497340415859689874761120323954007807207286791300792297931362018245614997359799950709042990312621998836552670033016759971053585728335850213519057502061249247732322172994079322671357698128224717830820931257677013051150394201445271901684861528228031633740617645684567821571200688352250850578996021974752652215135005724536983260587237771417526825399037109443988059841893330200892549597256353996115313751435489032371405370419534175508690259827621807105935802292659317110853485816842496449991414290759898172143858411296171457382645577741099536184352883779027983134411490199166021128807454979011858518292626416874372831258399533347467211186786458741268119761503976674407454187775587287060054653702120827601044933102479830955083555457615598727788499845184098160654836981485921628282273234425796892787410404479160478874546940550958846328351121513637291445767716129898881499236139099606728614866689814393843564065819335605439835386241653751167866792593641094475756155559903618635148843176390486461515684367292971665323311091807206394542935657467158314923361928278091177899984180887873974798078799788345484320013217091144727677092388484013662102125764760804032481011229281388734866649149965256113876089511284380487035960572420408270296923391035067559161509802144282080611144794890902801243716626450410238590648696980934139569305876940042495833210980146472278384479843050279979625103806124466869221854734326056828447340709355182466230230062112929945190362536611148123681212897318251335773531746327185825202441684868206277551061675996642863810225241678204679838018096140062099450775279700178830844622733262657766516363891110647324394958337126899043566218555384329202509024680754720150392671476890868280882568576084909760024838376849224987695235828087701305729961711008799652213972127267836872038880756045931713840070764943672620022725158862617873453430803734123140941899737285800988148118363141643374146231745104074947701440232707859099435397942555440753381122295183794444485288612355351451752278474348668412320783395711119905512145543354244591222056814484619949672537458467271658002848314892156540862736179404388821618636084127970687692382427358763787816538060494914752613348971822394493991864690751296728654251810419809197741288232356614614425824270651886223232135475981357225550442126263414522085332423480075277210973657631067909318529574288512515931925926501118079501925970895001783190071809997895311695887137553681137849149862662234632928675782767437328402500095835349024673709394766410164220655914225470776964480530233679948466449145138564616668926050429309951021153008825973907998880030725202255910432889343910817723815098903818466600790859808982328908543683776806458259331424137551922221160480217161639984509737564349189727803008519976651691936389026042943079433031800670221707087864243628758296400089445133287266384895282925036787374179360171568254683768256462513001000200515941856088827623849778946602397527230314875033906767056956350055643696018618200073485659088507078545712652432357099150242252056927994135144759488273516600270391296641027809073324466875633361021104333166107074681861952352048948939418722216151741168898007193631415549070559705323513473958755046161320665409718142183490072155891430835628558534382148522804678851706032256380092500094660329218078811736944975203991638844149992285093957933381189107374450936386453235199454106437652115568823575657433711572004828029983464888878846163681922849221781420723115415214357719515030808018272608172561957132473211556034935383749346115685134110265749493469177860357228520855975428740498757224778422940354344413804324017624897662405348450038368812108047518533156596617101678569256322131747840553892011076001331349134283711484926503554753728702656254458543075505597499990655995327413041908247470735666069828228496570539982092352690892515737672299674725400290395993882657217337613379865936280601148374824261660003437366024908640542489145831104334260031449393787480126966561060149216778925529337916581065941687015305942274397634402934855489329594496149604203423092109638289538228859022822362528230818806838960020687584878907407350436831834258207088224693836939031400244755341800007306589525080008287230656949222754341736678697646512205243876968881887752295813623880825477170573147124579013554587997801702505937548588306111093010847413679835139658478687461967134422369122514104974924275850194553717196562897910358156987174042155423503270563888946732933701452354337074987729882600943739673292155976523816819064194049961414201020778859186637815310115743073627002499591522536420182969715100807247745426390232163427795725669644244860903274274586493861084875302341160930520262007792166278976742648912785584427617401784855708071259172963224606000746400042195604473418306052885138086933975258869131831423236159454756106598599088162039499232503218355155235891961785677771322023155263383844160578586245699803735370742618820918347735390869293025350189416325625147800773512998707547751174996183117756623196926696217261573867435160103511804988401090160154077822628955286484103396646437923708163874737648965198177441866691811102642049930979190250548962261794544400469030482052482054617765339590579626659561316990319610596779009872123482354792942221542870557241806103014289167840288231886965075801049739867807180145598470530962646861152190820122849277335240912714961093775366153399827664166974117925365934871250865223526798642090984467752250837576193068015000600702617542361736750196301745769809908274169631418890977799198625938468983517856919895737117803684770172853898790123489722920599677912887046819887833492853104723529220037165888081984113094319808280391524411908981265060413922240159132333084588466279838731421408664892343861015231707311446029235224135720810925944049009460785282672306501379189878936153192008603224850767378502715647532195021992017376965756582263961937898532585088543494364790264740215978744709387023974925225956870780356149647629595522248575539112552405424821560660964634200243043476929317885601230482872909823815257571827140980699607908231981346469271687811457743862664135676217807319113025521820704378371330217304447859593707254034371013098206095656210539225402767952906901194941679240456626937346736104579205786424380595323419495139033192262828206368567758741017214184273273583684386415043601115944638702391641023273691622956975044586201608289968648868252953856351836501727383036583495609520259315780817130479937293158970265965657305276529399030337366481622567537017848893495030966223369033406522113759238512628022096215629373045834679465102726958283310438741352145414549651339554333935669326210531496184180407638353470582276597108528238822775195041141559227835553721227827989310285049462060851153710358778856474370672057623800485445947065054694443815211030763419580934086044806901782794387374889908023846590518915773935113568792559107666541171068887621737057826276646636861342571882318739115157752277826799579038607903692189941975927592177858941037540211562210877069238416574859385561132745561731409936512166439086531416542080720983993187503880587245413428529911356201900562110749896068914297630107377813129498192708201808987127219513510886724560334107659177333215886743351778128013681842722369516280361635499200095414941567088729334453877674406394912305240397781300572318241678921028346225170438851137066320108338343819475926764148768508470167045276594356808447897915340327867419932104553225842232854872350592334766624091797849667310374189996350007200403846003912024316069347555749985109825218095353370317594453207810917176381654225975514313902281227506311074601422584377257577647892771967406800504475357039865526193051053327548690047030480310868106099638528232651158672362057675209021741538203151641311483725890960008825837998441960796388405740638729211626753147555845602501481678753722533990082283941368610636710471697190429490839467728683016240372891101733123577190187426398791880236892552537673541495367662809525448402236038818131119118275511542567591178823266252443690507835690013371662480579910940840979521423619461466669358110924480825923680614062426718428333518230586197175366224047757492282074512913665338833171608423735063722536616691136765589809454181092154562109362576320475500100488015766295350567102301062885751509288907240114358417998581370601301235722819779524037128786070505311871773904105933922489991388228109405048270775556903383554666962780657692652975431332837483550860971856250276089527735659825633908708712705486211792514100899381202029445901083153319350745344299713505552410067100377764791662284182287005024106685232977971826912688698990470843219897486638186036424627237014408934311384918690989967976395540894965526429865441650886951269054899883443978186947666350386738700704491440288527473546209329529760848538267927861138709825764964102768139787414160219423294222054835688754088309579231965574421216807372053933640612107054611545045596083146693419998950259421728430735347019345812496849475699686593703061917476392128410840733304560608776860563821765629861735774326141073250862838934498781432080995724881649084586773903342594491642692198285095344008036038609996245671413385656012898398098447745078405391862671134150969506319804784965912155667135696755281454318032690596815276516281672581763563148452259023007660095654094105335860414916400020534404391327379077068527361493255301238386961495683676674209481081743437007504998125981104088055939024852773056188365722930682448883046298952258847188028271059201293623788393858388445398397033779208181005835143782857121054066961107911708222562692455077030040064953770172161690492086034762145135242715998115657099683667531643004386562491912000913961895945526561852956849531849111737612906208631483825326289984726448994551399165826542813432041886209694362764592071972074585795672933988541961035939189425703674975073891220473842655948884168530028684635265141889642838688320093903003207799810441593854956186949814254995096746016146909295923409846897972116701376699501361191222146848716835557801522859842261091554116494576208293548391811982246287772715896721822320498903098139349114345963725204624966823354324942112380114613630908763428162190361956588883553334419095830230843165125329595695520246788495304748973382609606096077344728146248734986927596063918673924703652251034258198006310960656565038426983725218196529956376476223078610379240230798604140626400822124405079848092389712794756598294781888055462372382637515017018932383485010009828432363916187899504498547638616592110172980939828543963025729748247616518188497945197066751163876668174770430257953216645351367460289365212736109742457586923868669858900135046221548041385994587114608784395181111437820432460721334808707233128699540359120959192246619491726936511872249289777199870817597436409748283031764578130998708608436389650205151148230419042924136256259746251841124254357250208671493400840247524591189219248453827062987701904686037718844014586448802114095387506903370913756377086860677997998895374253700526522832909973243494394641612408517169486552041142306663168544368290567602168708979275282304605330948158224558022787538837178572259018648657746577246742039807278131858316719221088677273315467043838312487229234457530750636954813773471177602043205246496143955023910754247924368175675925457749568272034813113234512284106351293279534265981967261588270654809402127389474138471742357741242543213178799874511978793967602990171329514307169948750922149571447610717573832916250394322551941234800942266898780194573788597851982862836721796674032963403236047804394750270629913431147484312886344731563437666765529732593754287139605926877769485042612069796656412356900879999464485373199080991294121456505358589131172661717762724944902280514766511237240128495122866529410290773881543718580683203647735124772394989820629353761498737651826537555164375750125706676812952511197534286960086245010484401722703941913015914958709546008575346008515353566953625517067497340463705112346522849645458163593659624369130427389949898115721512601428878514163285548211174681681349942856936353876406578697291244518865582363584401816878678053617196506649851495028078588504893559779208805364686762255438359356070595056264572328760061390648941753212370057383744005861285936444000646385330140897011024491010357844186042071845382702916703399686058472444349507610227132054365612529509837815763569546332598506834675246367197988810807506510672838943965607358550997712688084278753101052232498455401410792749379282170212562187139936927347662771619281805044618243545705231319995515662213203365059586277871240624972207743879920213183316158204875358092957014911658570393911760887130187534183830346642421932403319734932690635489664381495735809038475432862228869485561828141200270755188081411759048586798507648617480170309331780159302814382522676131199499733218675334600900613472801774634759878522179166829112075166324550344635862955529813938073237279127581770480402519965045140602555211712331373487879994264835745709914695177805932859425038405006907432629003089753102883579856424170880742608842079400321880392881399417176440909011558907058354786860552560004374390309009287632196044554926354673586444625459347867265920118164353634007362616404455577993653537136542582375891813176701245405837233066561787491277119900321918481076963129974798257763778410734034421970198828573562757946850921144224497023754676423079306810515513208965661686875992106338257957517692991949032905199334920619062307989494554930843047594738830434077086185462186302309547663066698071730865729101216676077778434466168372044460098427751009889551056825865251037941139015112294211319865329653656707314663905462170954167703744764376164055741992652179325114781247942527574933475246733033773182758302240829282787417858255148833970683930735049079476880412354376305740670832829086538187355059879504176576774740448310888021095356702599969113172033515533599645427287799917994367411859810998040088154876643178541144390910731844093483780785850746255918739397957971638362877694022235266294292128899449988456568138325705613955347688762651672457609102137249743188929441326408206333542656163561838501256820932721577752486229329026218339442738044866323266795051538717657904247917140895194042928010745613695592392905884737462846755847288333390778556913748203737089460878782996051701812976544302922027498375502785748399842437713375722219216520268864481987874365264390766086022783388698038825465380129581360585667456294501198627869285123574333964206417647155178534833518150508258142722943939608415344890602537832651736437901149910460412651952415496995900695041621773193426125201048531772536733059288829648062195203548623102190526361382796063367036978702178851208384011730258690734835035883894033600491412437180610394742326888746229362100771896563432118298895660468963037234175856809889947607231491408656153009182151193829487040681418973298592044917867413379557613034940374103129929125319335160245718121693123179954634617493927297902588449741291277554688842157026476546634168764736815661964891713761208469746903611255399995935268832015764580377582383411735160242230543795285464198346697955756196137442632772685633166185230965764478970393978950731231268928942818847871971142061593544063793893834323182071851122200981252414859538594355894624524709966515274408849224815448052645300992183482744901276116191105713740117253424488090683412381775519141177703713039499462349747235952850094569976715017560423759105551694101407162375443121277421744819743830495431501667637197574892054596103963361636697635792690931099527598890747834358209781047720465960390830174656950953771055606808396929598315304485851768187718291592368672326161027194009995442538258907055870471985184473233493754356432372465623835898491988208640837414692005976960770423293664700598528526973513916095085211966751696827278887712799380405240079831238401142022344679892420257392586315361687708425288833227752665318589945623120417921774806868905159028541726648430324284856998958789924821980654434153136764175530342047723919660581256226792625831599176560688746544219649793975087565947370375582046943829844192286260054630047828205232100288273057008755052217688627646342173432847022051741248319596714860882023574076848885472706793093481822780414858676351149583611896867576923570664319803260446410394217473917395005008957443687792132104566257174506071873413495581206407510282523850261585803203812728385125294587234244474344021090697688580154641701589267460119144786126430708774152403487942614846156601310985391541661608137808852877491979483582812725164888502446977422811971719782829697498739055547588905715788561629878214465578251196527180295823943933144213296613038491956812759165312825195583196383044720332575895974237644455533562853374860597790552380412456834796812239391778028755018653979255721177755871788837178549537072511878920064095808161954940480437461688979849302109011156718069475211838849359820184092804471964721446357169093647444527357678417399913204151598761651475331697235108750154308509879780591782721774807059927305101188678567667670494552745881865966438167978471527703911486239518201235298786600170335105060280735758297748602649955366187595689503252003459575394106204948754362241326264849137787987224166710792364237809042312062501212770153566076654497751752293619361721084662794829422234877910633340455362030890171223582343073169502584618110316371407396254602210882991637953111302354223886856897649963780960327847414259901379593566962141764986274719315668804877273798515414130522553457406701879504804270728568506788120906347036371114930706876513225156343130809955069774066490417314555098362297208403722669868356987454046583623383698708018992292731292827108992861016748672420202169167964050541539827879237310872367483731876656039235938430645874033176640510618626455050801467548989342018577358845756194676739006728911741248015185268100212533807724382916202676800028597652017282715805287992871526199857000787652507469578067172659491409405136163752304430932415380069084557611179682932681766311050036516458899502546968642801421336004060866448390958333312355830658483696945176332237685664011913870427274099738101047101237800513212815171476977905105879776113568349448943477592222560438094561192002474699051020602151639180747689700139317159944345319018043910161467632630392136655709831986738323841789718259839700022361889272757599125225283271178530278294727913690116996440554825504059147836192785802759472919994796899010999953223035006081882445796040051867699520215106256319541155376970478661280808740264397788543088728957657286347684960916439954336611410201238962202589657508787543833737825430347809105592872840389679210525151230777169665257629791371619187650566974426969057476540020813309422774689459159388260497551450245430868802959404084054175765049758873753424189507384653629375536810480571570089056180386891606273290221096593284069033085609930998295237224204426588999216711373583573011695192526089642976092703180295016501402288001212473889105275589138360327797765473778501881000298143463645743631351363723891994329438633044731598668118053601362887480622528434654565631705947905204216934265650716081310702828155040469695659892729372500690465082943323683217895177519149508638789848580751114237244444894521204162989847041527055848241678947552263351774873257014358779654443272008531523663879926413890987259222161266831948967184975341379539677978441746815879205599259755620266883277438293902031522117917904850090503495178186464439059042103481313579144871263852059680958266309530753017397780488731979009340690314807194962269171935719957074171452321998972876592924042165466750768091221901279779556475659493992327373307695647868915705242288775679829250581759763510847776046468669194562493235441370182294806425294859791281977708380872517700131846010619167407355084117187209406734983695049744747603936502373530250152502922590698532638904923529300485827827212598073426440933783258742394183222330801300643082957388239974917667509026824836140954401665295879045714144300181659351887432477691875850254009814386489372114319085268700123437200185892271748104849078136235851454832987694498480329204215005980238852663198837567206027929484265672609553956522973653050713415564846885822898746179804694510351346491642425556308993378555608149540661100785552791292448022172009587811112212887091427757756443947235509440642766094592096383197643937618307091194586996250083550396503764664172132092277683993193432590155744001439026462727923011628938314343136814947320149606906273713743936750159684763560748973477477531054436498667282124825156827951535383259042118224756832860749654373556765768846326165548267308562394751985308129833892753243316028321607189154342938750563497309247674569105856244511074055305671868897576652981028058966988573925281329982480452168646207815112450985652964429728128921302589146136670922554936209524373982091505706513987217491671752487947357890039423651498298441032276634918324203758909261877639702533617445977486411400041247944339292794993938323263757772197387839427702986000575761585789088443120208896429651773259121015971318471315881576519727205642088046042595068338617799031335607849788046724389918575254795362645397594339465501076048672335615156355564737337259065396525498317674793443166137954501204474791238609834072679941386472293638122604123887102438496332476025911875242218378383063243109609904323265021310524917390183846526075270366821178351874784117604226073205255863683477078487950355879318651786045090200811638895637775128468906351854096170574061556753358856330818568154332830879729593718701417325220513403224046624716010927373617116926593738796440522573576350206056009987098614954582751302864757994799244177122334459273620588445469059574585614178883937650147862704777452183037711224464593204935850684180313205122767049345185252115977814101776355176699868412250608910055285986500633870618234974849629450040416724944054495119382349475800689706214537344698637754467673290404508058398602246400054760115911947165799558002789219169325558062246158132572552789393078437013748207447345257569777536629054538636844979834666630584344195883376470159404979050575097197059775475772089252567547477673295745381533526397545058718572773741892511886295387559156896799324985965203588549158743736338517491459977948022392318688914853378079955782390081897529117265839898055619681109340153492915993902760302937020235377621173686704901264131023628113224350739925333286413982823863761712953115294345461162966242047627798143690074217073633509018414000336918687698401227052253853700950741145566221516651665525381024790137331453429078574607039418408008867382185271018922761937457195940900689981191407532455781475608731707897646818829636404125346785262170465060431843417663493176656112879953628880711885576167185486721740164911425922870600791935857673085285091561271066631204266837951981850862650443916925220451521449792618047773827776630005121995794972530774690342514756798264450067831650834010628303660367436474672281047985795107104996208163047399540318319647596190905135109835792607439749809132905421957098735413199060686421688109311133724508469459155593675878692165727841134384330989032191568435606417814234022447171828335435562775869464390137717636399677944371526354713067524611223869666025283101678714127662914171124277557195367870735183099949452697641991164877338012158536751109426986241950300524216125647715449235235641737594703935018231334995588735706907422700764660306741334455363806551381326738607519819195787334700893295114843371337142920054209765350807496760217442378604053879746697589981133940268000407252757425053946547320209732064755473385657478739577925050490406740497399970291030360225589760655192954290847925943008332517918894135231626191239084463945371370629298162693757644062715516828804497686074541596317035744150641665604632191203715725876155897066566728871643939866778034173440805476576096647219637203457528759838519600860430286368269605304153870578233604082473825033185021859349910368141140770809305559955149700018906148725861988802958750122505253340757925635585995172363789210246868187480150681347021532665312181035385694460726983995413873796007079505546978773471410066708184651670976796861601183619354330684797360710950193520685103265896475485650612348512761661654535354892271596362448799294255980831144800841170744377518505686342574366856525031556023353878888768029497777550736829855482663898792683621981449881029278082608722918881751729838549766233390024932218676375487259364132687512411215024271637810836960743729468318664597602642211819572278537017587730347739732355705777150103170916347170067366438717932766107303441098719862768163946771373829083828797912443110161678228876410217175675493768960440334933700504037735930076063425960923918754833190820562589518144129119158412992792196780741971981844089593142400127335185408959898255919674596424683877989945916478225383873017368736149763691130890582241084403763434783906769286717517762505233170526167994426318226252178149617542581782900893673508313278896390163964948382259346591685781176408527383692773966257718592369617092640211671020179108179539892487780031813146285487555884318578620522969111144733372777532641854072115018006418153006769470565076013648457391013851799237721089999789355729379665450661732090475617571806653263624491889833745990394725845994912974360474095415117555851500302854458487334602329085722094474383421943570543056037533788825245210138193711892684643104565693157716860376657227189393666565355175207151997909197768240755140403168795067575136941723048048042156709911891929234100672933146318030075368137433666864256560586361068229541961637774027263110617367228001019179162955114250697390189315595112843266478825107316016326581490326126194118538924009340319526372644862335331185803670636274059721464627926713305445860787524929410525955714324187261431731614759229600881019272630427912873013584340412546559884774856389135781396438692117873534609115451174307843768872530309112692249298923814056525260827476680275877776985593444568070007316002636239130419321706854780519116305795379754392374170409194262455481150670788101421141339548802299690528865802522525487617639336390024629320336050839895147845438034193711142088679691800713516518883388618723020168816061581724407029745646987423839024492060226376283888936147577514558413377080332941853553637832304567302636529028188630278517969922080444576339045094675407000952282944299541581854747100818069029365707326531553207349756019380778310931473235169707084749631383129401317223941782017161304052224533568454430997336858883067138822952851195895845244492869553726226998390196858135872273408928228904454132850745409885727445304619304270209497483413040827831085512719398481698218596093336041672179527985742831350926517665433516775870870958484495928229895469031327263488199014076031913117735527709645838973753347301675562790929325988078506480990866079605755759254921543138816428680806738811803649368079609739837751057612375902506531160526798435151153210439564887957708976921523114789961330954427783971032128840255241641221512805596523652881367795599833697761706138971015247564963539565312340432264596188564120192240352479604690273674439559870823124270305770296390012731918023770130952078594649250440040168393577276824393104504771499600142013245101139943622955931395975536930997582020495508570175355468569953849478420659861719275320308551364480483951574471230641950503947808919868017237054838333254577946207218957144056140431021203303227976785564024483525407815988232025685411785238457538710409775807030260815672904316454506692328056995246964812821004178318312393792147754569490616888047762506848924527865349081876061859978187537749469523083507910160341550565903804883036189650691348576235064723790018346488601979157369282231386240480059359205504896751397850619780257925220567036374677487717058487272995134270630524337452888926822167043301175642720242775228994657505678345093644939310350372541893176601309189800919350365208613457305295757641349594504526352342275173493178263623618467973659558108184450796325908758668183871535738755254793426432393733722379723525098677335633141236035630708862749412075869748466398843102168300888438193332503009820476227061321295418408458498814322870588203782659209642289932545619994537305798837568379210397410272225689387840770424814238524502458413652251984851534625434576112579831448841558799937471281308022345999578198529447993663930615440738187485328020562502377819907522400340944390154372110490545761157668880523082110203627974085503306711527317386691910360119585258782403910474967735446255163754102034480676617150418659242701707872701812900120025709896363821078527805736597906369179669659132027979765750487584417432066505966076127985367429016841641688939379191621705687281617996812421638231440410533751155489414584175190746783005718519680940078237498551533558081021588242743873363409733239531737411856113653375728825235243228708786934752138242585008162183846134494665771779133565639258250472127490212181150090134529257449476578514939158851824996242487310452954141014179449796957226045696135556526173620428578191405277267840991351255303605111298065554634307309733527550563429578878164790953941042431796593087204990322946140632661009282741023515934748012794999170080417520764342970252026790897355695715392462827438143608319318915949432956318931098004506264640649728270089650179240194805238598737955101235235202880083038639204954881719031031764983281506776054698071444522764155694453869467038808755350831586274517320259089205868350842750589128171289013804341479970122427378197478414536443653161240455626611359119270164107902368807172736826454357923582792839688475602318772046168658854736428104342350150883670896429474714915665447647040029970375943564161347861689385467730567268279434176759789173115145709117067545868404340222700574987968821398674733145904704636298299692105678380028118257236128856430102668752459018725723338289385160790599117426254654166356199882295639004716309094098403443769149622685077763917187312731578720235117079488236285142052506572902258355286043419448785431128505926964052936841190858006570282534500917917357054149242923680170304221026506430239289674382734144088491762981084243586075028052751797790248124541917718236447631790102503000018187158142510999464506073355343464688673628474221739116628747048710039292316686187807152030419424211231701270359898729069420777278382079010622972680798684644782997284497742992656941404312154106126144588237550400509736122937463804980621981942977572311461629633030267614998590275422141802184096704914747507748560528865945132973796409616607689457331837842736653046293966683730913755015350661427733494632395123311654209577518535969396910828805468531121066582517426283646756078636131747836330336575026097616961195174332323436675717083145972226481193239730964521701542921269431573723414830867586088600395694559153246977990239759929941640578259385342958130907753557941285039083044977482856650033575278085191468237050757769464846396190852027759939541556260237308154260378670410038900981406392638553062931390808053048340570806819375676429668426917884720396128312225338303682717919416003036679729020150059765747630477791039104478774357460293181120969189602652064253639523072650805816224880741494281427993617123491641929858442799005928831187075507993990301002473307867850630785926564361229133094592196569359216425239909222989532963172458494365767340174054687502186330334153545382238021652363645510915311478965909100165542595237790836851406562604433793462969641432197122245259773600529063659589534709482056347523467612488206006541719367208403294162642426316644964295477501829352629390310362300346544422773159633340475352226332429167564745513431619142362525776511657289991758378705834662046194025969529137996431188183859539408339772646546560872999603368112703282208642649807182160567884971667095862520483345474182673199111578697168825138046835108238708917983366683992738160963515096388118624180769022009171183449024747584631170103526382123863508093029681210679391093742601189421958600184252477432997382253932250812116100961200960666877310617803530428880978169542282535505216164107828671253740893368095792510182460151027174144608938244770484988549701479786839060392386851228714010839090622834310105105912079302490331699026715425246898183497750185565594929788217263171449458855356091292309165576401443330951134420523300167730493052016090004272548375003063169222090156638318773218198777851298316621107878170514304025860457885172047310830244545005344122544515773313987626079789513806075402744271710483772476253469982226581476799539846655300857651710293054413842179903460669535812136631171010985172621966615776853060342085676995808657223609282273968846476773518368191699451644134774208832742802416646371793323240205684346987932117238478117045090628028162340883947320791966238082701081689339566170185933461711365293689627990350964353421104802687203336591607560508256873380229843705155974722510633564864716191037030608436661498095484700438767050834722192471229339336375533204426866330935903863779596383606672028891494594648747591461979796562487572922581184326743214368462671277019951882291848308834473898892043880269545822158995693057708956312235620322282580168298599001801545641160203954648247402272576380331790001029233644478588554974777397884801576721435495175314771698780671078159254722165587651812838949017957447874069880686558174666944500347869483434945528035199535957788018238564967378913482605532632982800982883714391637053967642562606103264118561146577259380252527198943963408263905586272573661043380847653965187296436711118644355058682236332910941051352963835013779107263915651537971649968186237306868393252463775310398537807902722578084281078222713174036666478142626483741709964447041430855726903766228936714613179016057887617532603064245850738810547053999767094586811110394598549297809206904570308171547371228412634754606518173136304999042724316967210298596191921528237272302095147143994833510533564115657794671211069372409309271277350392745055234978241615318484702771804753287736910166610778101052433901077594708370463683941391786578165913342791651605817228568375383217124940620510937203175978926301724476216205079108694972993931729747392628267767578357184550597476465980350712620240399032470935482574951015101690626744489438311612619221700678167444044437628500682045169579758856792082020928747501506363370616022183119817877384539255706202575176202882211326876392028462562486886478694620120644771373425815532636526486166410718683227065107233799607543663874826777063781108299453100530897573684850291421785699511528573261101546419335331194044576583095046258319844206306014473841711899342358094547334203763663007728946844271868526004440555959567110676426054055259864751527891643013087791481169282211510451480239947357961395298691123907348970698046396684794129311520775972334118328815762149083923155648514469016541219516490901731807390969600409866948512311885987397132328486853648889940729589939326305914307416559070305854543479509718216316174009328419673140961856853675507220767861270188428477352518786253538619204499442803180026562134688922375468340053710497371639096017547529915229882715737611553660858913267867587353173690444986121814796767814432198871731411454391380011827508186712834111567450800826992423186134090327231129557444565142062271806391644861805200358490012268090402285247872193021167219107267298288926186941298134273872708765739385142814118768611314816007289911186757040717267890848842595814476108336233950466412067371817499766899796917124511133869015918232049350048997135247539107324698917792079261469913679972877078408174731551624730838610416853116313103377627499276572198791092536751534012789472430540541318855809089981008224099361619854107011947437606253777059081105967588651294235505277346680622547817290299957774340638661997160419179148476704379542568391505264157316074993886259413852632970882619878329367918062775912722788339603826864900883054259426888800738123063885107115113024193590029947886874510570817051165362776826351442661619998231535830178295233943493621567433152628345356985814931080690416190738766384107775644345070009876505928959476924850787555614796302649810603377486137299950613463035073034870618473900031003136240959907790179546602833394200839947237333047621766282169243470491771661389335327010802199630517181090628018639897259298005353924332094086636372595399788546296638480262329325590190790584941055612390046476108723518338082672626941059887968937897690823787382836182967914649719470970142324750511910059642615031802260550476144504393539710226797514030651819556324176051456481452396123026217566621313184825194912868613137563799621982642768041234596412546333979076142810806818968848536403235120795306238683236870408532030558923324525710603389032338761158391478032032283377184466085984520424653709993101672431006588422284884959010308160618508991587906620810306969395492994738770707147819720490006342031854537483463111341128359837023757316329822973354089014797530123103151024819829592594139199148230106548533256769765698656234604618839289600468554216484349255379463857348423807984215073374456639203277561010386645677894548769327931995676848154107140047385568682310119489182618918733734422405706105902261764945343077519496732639899483131721416041562882174160297654081720209025984153341078930426803316733697239709312542223078816394187853122611329270454737595258981322030947820210025961150921897254070476660474527907025945462263574123481116667556841782566416035075543868466540295744868722495351416971831580783888507985829409187279762147945842655673746268397468949917836549314575276185614125296159879126071064860648782430281194576301065140768444133299100364685240220074841976220016663958732716586725030439250945588039317105546083012956361111780487840206974761234636153827279961312447539212670795745184090765754782731414796972901408890255339211888637706226056020878872773900233247677924854338427262354180590202252548283250638870722067319810629488616077743194163938477325496389836512787218537521913983263156692099050863382222819492611167907434906635345144448084435693848597042967439857891631249329637979850847181955119876446711258697542463582720889942385345246134972984802270985026063798329439090742556842047548839026981770261232558658513973216727168463836155502146124844751208666168330961241426152088729545648739633137705898120346579027044839657188887078477138832053307953068684747263795089782494060434831164289104431044600618331998383737672263019025459805775133696363585750492401672293034983941816364949376640392641514825414007016058713192860768094917456401016150549422210436002427578814266161390040586079026475027331624610225931182048399539183283274226555477179280259298440019945925899678822054348909275366221749820621809318283925544075815678973453737722466242300839604975655263489022035508378068641212832598934686379602528960269234819187591988367021224310987569934856705920064237670905912051008963885811252318718523056598609509815847330700352236398096596779122699172047767451064256632636191729385118411692174475439331018179849655006428276545091602235203840997363001573108081537874025937241173657174202903677056966877956085012035370022794948805185734100906608799043521208457743468264980223578441038996171758942495469289454645861943150220994541221343977110486777534587614803055618134785474178022198442562191095383737764101133006378525308185399312970564035586994208404201459760699504442686551950541713594164690147544468629970741237449423167617808558483199459041273994734982244922795017417082270972396291740927237546665818010289729455418177412143755686411996660990617970288121896497985250683753465244036333106743170527893277041320138944014727514432512285279945981374104723588971791840086967601294327323804391925893227453694419971750785338460636802213241141481999479864945199073985473372195562532955061839072726045073014324050880428602510761861073668430129129804515153275982181025058150179798589770945989612634023897194876658443330149958140909138885638294362967961827105721623763972805224674955139624595966533140567923884385260201122729969867050640759939853319524932104153118996626866237583237255150155226826965987440478568799513191954436055909149753158222094382433172966381927246556195255985812485308230071731775908103507173944269062259235133140326946039121163613417169391713046781014714181845532026325361001103685576792782170892251907011155589649595923902389069012580101168434928974915618615743843398625656402307267695710623594565568588316911489669625978728731408019709391390306269741571445934751760440358667581356432155506097072224770319283517920382061117640187816286878714661460737046758438049186348080842310799704657464216505167478055351234040469383387452414009554794079163040786483433305779653555677719436546942974365638239201063059668956706559859714135062420618335949909467195145747435618428027258205490615440629461460049042464395609297300841588720267983919083895352017671222822790374249159630731135337162990204513786645274737261483159205211245454981834985306475274070773442421884844025329558350067124920183106191181200629021975514137136749542627576288104466000269019472998685059874901475288307913483101528928557490931807870876453685220975384993826159109897431063956632350167529789959151302629744986443833062946809986126021515767097153547688005365956162532877169902677248142995949710631916486983955360899049138593347424462070446384336816353590795195009874560825948505764692160100532867064339248783240976318329208120744911005115957573311555637827463086511639687575475715409166012450677133895055192858412256292802425754681759825692552079212814096015198834595407233851982514338926392241288933220247433399726639506002600261203766983285210889120650399602253596595254608353627864084948440299249260518771474254805083340433629270779317493879990700007064286647055066946455266884742170492791767135775891660238500470466767657332186513635724895030199880612744585697902337969155903394680649325402663499843397580715695723898108355608564586696625557081377138075871757862293396818999036039235466500211665104538972907154644890732973601623121199897150659551883703172687728734590082766024241521566543036748124619762092049371730595034082706782375697901588672125501179514131425274067759072780576915426738314437234738565438968315112747387712227649211863955522780820642497685703916072905158581039131674805998585641694757640448043389153812364763087887197383951922337860749731339277789828133100626253141683074799811191031442734406598272165873047017064264544078497378398243956415451219952021505934688011713923212637555843310511016042409286286086489639860674489931432084744888162872355246314653166739275749687027853653408234918677271062601165483754665390760095891206029950022831669754534217257174928239429834501331776651267320043802088871316039248445505716650813547242433195404922539366248470196649425248904469121769347502733879288818715323408773397504710019676201497234364061504251518311543600009295284227498053489923195245157257457073713644461945949081853360778474115872828867938267620400685411039941786349173397231320022379131721997655959617665054434904309553919579296670371660058247655172487477860707007941128490050966037714657607134915895641171209268159256678671686306787406503745591696933023899274873841784991463874119552292120447752357111797987446505769371377253196274761432255846715083055094290184464540068070389222790770710572584138719758136539427785204744952564177993713016956090714822519700756085961011136111971746501129479661521262438562478001576454382824428339630282908614221019594499689964124717846266822631113693857946213151272975533543111167555841330444058440568326288490135851515993388345357707630601260081424649586964552569265637226688023562152750644412381680459140732766782597884197225611872534573251926000085038386018183642157221300194857056880250329490817021633540839872000360943795127093231178246475469265427697692460910994885867754683794422715956723375297891172290098631883147157579989194146874127588298624983311787139427172831337553517694711780941216964615965992104794520980474936372810485307321653932783545479941505292910736096641264579200860872524532426400874171190619360862956672688494822948373002628192854529811703124516203717523585130297018389769315376672234914152030519100560580522954308603431713412749783381380459292285259375429071390253073290783596759138699905495071818057678914131859219741279453701057388234866978692271555919922654866473766332001371033468649519344240030365169335452846340755599459288504129516806005598700576120635152124795114688404203736613930139101116894214508843283333306552398550134966479402504367304515191973349899597900396568630900219207184139977276898779517137567466311702913246477461096366912844938802803765952853689852375418224221579688218797865047099691586319635455640833001415339462413792565472131204908255494613677741386840644137603624774315924854060820456736464815958463946337199089915207241620016335589422154516544961275791798636473018972112421249885487452405691533959473740523129644375135742984201112838729389139383681194688008993572430638383101442730577499931368816310770004464724616359502845757185409631493045521141427397443567588009092100246506646506203823845252002003874047092327541347463108869549280590874853511119567940400942910817066951605175078327115922391531096366252188439193289361278359515700147336901220614193162612340390710855140967529756179679520802666280867939255142380900807531293330017284869488561276927031175886626567770459428031590120501006613738056906880780297081373189855599572228102674869007718182821994118371986248900168687945337385946490921668205474899644966310716109854829256648764909745278341972411133884525019721909790485093815864404120901585115993430196049510802371849553254691420195049348808864018771937052086769439599819081401428854130837948539861375768066730540789443317830562590758078284915523870106568792310396611553335337240086682490802970311979810318735186646050189625945019609130233855453491291372127585450009234066044777160788734108343537941484318499602891898444012148974820082689372867919341055261726425995076765778525161731252576249670906096470943374967161609320235043041968764938854208536731967455667717176352478130434978566369383416323479037925495036082695994774608518568448131609996286185293780718574399366918684449642843154831924868393371980187551834039136061053250337853271611080180071680375561054613229896066534105694027683484095699826403125135013241217043727041008309516428183108432493676802445466959262198849492523845718687807378997452191558359694459126399318561395742949451486167771601995376864019119829834042196305021040785099467100474443718902259015531970305466913212154348025575106873969103047075537368759183237667780206365292423050873422091800797604064070098249887629786794763889701466199342934886129004181431872313633212061201973503638743431054476441505379529122602992531502450300196526512920595143392259948781989125805601978441750242963208682967314392821315948794236559124905984755792450680289065952424227059001341073022334400020773740513322397909310131840387202111152974096941082095361947946906851371777777801371740698484054012907784910619817177683974273838478224002012170116796307402544928749692000535578530787504081463118495585671742624493950405794866074647863895361492763917835880815212281502161726804992198543725264803013448178827056022425133662117206053682916198299700822968270190054931654310842830467636771357442655902096806553350050859677053819259107281340038194257238962959321303874776625256550734473467880004450501990676940515128079212419898351856998730756963608763475016476997958760295291839608679582505100585290642121228312422941231786146726692075341142315959249975482947158655019005913281672589600556731170102459857753765259022671081801309632932841425234721499862731312109179383245953376333606829398620000921175651444060445488702895085388122081783582401779704898157955513331683594491128284865577339482322386717801706759338646875728538720616758402630142381442547993508313530223244906919268524017236774616780819306894375823316245796092586859102753310795826616975318977849152199140236206942567908279785916882426979685807355943152397963159403446623302351801519869344497920962788084616232040593593800624302818591235544657047205038425490881357772781572412146407950142544206442931339878131943372057485381757790494561120639407735357543676736586444373827969135210233760327683975448780242750830895917938671778234391528971489065726488159076684569969963075381804214762368599069731451206328026518101456112093912461696807020725683679328137238859147944968357458694523137529515793842487920138053689470552612700388758597655629107720557032810580144258648209063365783096148355150485569992615441865978370776023560554434856268387305364235437710402544794009950125469300953386267151082940955048486391843502906892675033488410987215803960947901154826872831134975077624822207681051820042175507870289965416534210237554744510979181512511629072394379342679107182812280229330545041614743614142912803276515731531513324570106407066081729083872269055812616967360144399005483526852009191757152540405375054775066740736013821747845719958614397648499250414782684805133294437458629008416797745537025061265490497428400755929711367817977288146923399541177097922204994003606639274905056680519397740482297708691847350200696822299654839613882228316355903772886327474136223291515091924493488216762344913163458902628369264820636791305487427560595572988432360608806960678787769006586383640142070550707068320506961996293594343302564616614978083211966558200360116353559963560289628923694510453996659381234420881157951807994521847873967570659993201631539557879767475581459636694629681099736983045987063813398456419750801873788635586924436530340763526289465460520102561978619872564411495711654170685455624440063844151752485916721761746918648868868212200039940611582901547783404022975286008217464611347973880483098409609884067062423222533629814336959509488081823818076883015657580260504101547371738098497131129430635726906450593454014007390644633806397186933872178782665446762204808585705319015897971179624158129859389827161772405835260629362545577623443872971470212588313513527208804090593393906585350230430146519604642903299712524326917750973384646993243413759043749872203517202931679737780660466858531664045288761541500376206783552162129709199983320341083427325402821255242049295699625980120115409657244583530559592944347963698015740938522735044222685699659835198136962035433006403049524938022736352172434544376619209091952298656927505643265399896945292127545141373627248403516657140655358660674034683227902241668551128815845346652236765500654971863646230028755033019644220591894534111455525846056092074927356698552795339063496429087297821050155821742157885749886917375455641601466797305412462876596561869882956359168491302038722394655445787004423307278287035936133634918356493028436601082125164884256097417437069502487877850220063233755046359237289017089638236671265421348153018823432393962839305246277644173794743381411692159427066270562746793558214504293487035118093980503346816290283803574059543429649458838452094361335171407613688653880600287992462305141858571834266495609053492761081673176265095334516659396733053558019105515914300022727671626458662359464344371581490511353812564595875358796438747688712025254102989260811599524446704925841702222279124763934207391982910825446798933840838650475892067162370195985803828784639935880908637431896756917090670725862789691567482719190885923620534798772856350641326262533980591069996308754588375758804514909785571820008290997230705321375663360680587859788673241797899347190754257029512452687684749140953870698935789382362462134931686593248096634692106674308571766820266414697525690885035672233133895865962031047255601046583990612685944701820043144919892069704035789023889045337799324116132305937760469986988329678283212281981099421625721988997984341498498707469045258214121178424551400611461326482449463634701988609414543062784604658806614027030769445524046864241919012111142961969403400619491491045615532836021938879489481598817428271229363945771746480812762192205514678150711290644174682685169934831274548392202222020272397760186049259537608754867177554752652300427106428768275468014604666992829446029867173778661812935204713566709923992948754724307662347774145422877536571658079005694059211320940637743200052601839537018060458034842878022511157817250124424395586229866342553393229542720023878396847338123793773560645397653325526858867481950848263288636994096572470433056331660751861597309207822525064364684565867231626479809762608350063260894134689322591825296768884370020517168489060837272803249716668381176423659446026504348270853489364665023496308472860475206275744398098242596980732651625448335285280648714208516429497617525895710091616848892455682255245704247956199338236571606010673617239538013381385854485258991416393880881027586757513966140559162230416357995701481234122235289878568904674157228279472929088002628442152325771620486147239648991273517744141217461659609630592821200205357071984700840738249653015135049595593526412305670793046110983835054978371571824505378560164991615896378394459037976798046166556750164504156204972630316476433120303650061717700105455535459721233595645013149117201182160714975736303230540042907428462792453035716911497601699912406669216547547888055180366458741099849129667832313552000672599166785184217438418163560968967619687253495173211507023142821821666869454569415465257494139263426339336052005968031217354521593696505110672911972667184283567992064631806483911209128294415285640029629590543944760409505512707162553798270933974923959191090326843617434317451240126101244412678664258610811763213183398196629477232466225138853513192934956866024181414615961686508538530161842713425409829972461027980399315470058008523378169250310531846415158236910506761702222805406962676047016843344079279778233282937332150935925676939708925897824125807968533893272227197048816412344440884948693842323141240074404432482712989863936984603678074933550709469721703240439550796163976114909714306093967229311966727359737749943932396395558739823782016640891971846746432161191477829526196406698018050277892179668817034960162622539788745010140760918576817303821395707299105939890618480813540375795304635723966245194476604234563267077968780119474382259220638875443025712306659166327139459819712412179469939515065604478336431679606578865225004307182748346864926189990602507402639690911721924363068017941382816135383782112212984425627357719891409297260542889137811953426242086434478790208807927692110556439773922562726131148941991297195407168073975043724570838240063428134455720281766184314678116738933540131742350570950363430391953922508702888345838958202195701746590600076603800535388142251026535048265452545671787821331043225450986329600162236729881647995818708978845723668347214824190274999500700160450698817176069259784437983350013261645684478079131540074985193908166070114122384253588590269725166616662477143380400122882096166331968881407912970554393974662662129768735707616306340370754200037791836507624833111755906361749369631830955520998842505336134067961470837352514020794477227458520409997471072873513711583166239399168739871206830453115969789581060890483818766122025078006750226402526178788292775220997102098418445439106872504339160493409334239520284764275043590648915337925043090255024461575257693641547348061090736278587876692367030176221744118442740475858555638024850285167986517339337884853244014820586834522794103152671964973861631247637142927673403621487135728901318007159250000510004849009314573123271898886677029918465614295762600433672728866622241580818383648906430753488726493521792776167718130462321484375199901946614075502499075123120435198665080840582074599969068787357993573420268611472768624359623013566084096620614765305421805072575420773108484396315603609631798664786013254899064944055808218534819560757329105637710971222214378581500799104704605816302026495881030658886651958091302661142867242547915370109937383808384701400910327886687656307912156448080558849202410520332802607256191972313229102148464529991863860696868126394758612203701714837615929644480525567355046360546448074191751662845653253225372607098481431787457101318609991503614086765001121297448612314351294820254313944966438210863266885876621621978154689842327743785306398989022500106301849077549159135094032163688227304351462435736404798457703174463076439573720052564607348644820314975102550777749384060086561434082714917349316383290404100781638050535456791791867017505116296753373197999692387431442610121926495781376384254852845045689194445834380895345613432057378067070378875413179903049354704389449303444022001319583714538968022432839129924980950691347837928063116071285938998170192171975079328860991339583927148495679529089929550528069649881273458021859960423898112826669642850290248005893067302673607137308351152624820988795061960411300443289528355166478076755495961959299515983242912826564133870155873540188430090654598004133018601303853098611680947332848008913154194572683170132492137190149947144666686612259956389204822142244945571303007807419707382956094788812484272114835746346219267660647087273540482918718500718153446124190603412181150004799507812538737177276576951742358504107707128405571223474027818250436326686538697264928234362017343611358118044216879851500294473477002746483004199822820131348548412710167294354542138222852910642890833441283400651280387222629140092744925404777317944724859164727194999317433297361285414942359341061620417250190291552998818521496942758580495556510011158477509992026777477808038144626321372812618695841313056403379295746620876572593596275699558977597166160683677768527578653146136803052308034960279991916120453823969887588838662623730365802747241196040902252297431234264735233546954554806097728124294395893168177227434279701849890577263219873927570117557423012678539756897819330503969856140324114163405627102860346210483847071448180948779614349048988620041620849768732010817557267020623218469121311824617002827115850977428997098547809541676630594823661772660189222787983884824024509219213931771550147641579064852747494247130487663142605011180701079678751872337155474452845183883799016210056553899426395610639596977689852527873529950366574060965234658309231069816200754133161827092390667786124898011271609127358100888480468885681080516529862646954536578127641243781651431398737534552065316431022553285033818055292953970204289639512272927856781086149671793964461053822554722240119136817381261783921874682495164583562159176097635251729267253159974896915586593422228141480331745115172602469745732168299564389814426969435717436665666790890687049595460325625707651139052384781816557932705384528734786610766377980617513065037572066720734892021580836722260194571288780341228032699112600803702143847851413750088724681243247470889975386973107021551633949849757897400756691950826274103261090308727904379333126421957534236523290655347126400633566372114684633749706238320091869673699549072706984904876777329584836450198677821110260744130954078157131038557437395898036602296585322451356423525138041239331395871369361489098064526605912021832109603509057030884360516732020490482111035641829116477391700706235290736733990511840004365538875948106452810766785440798284327262473523905797836633386710321306730990994321989538276269722127273911728594396084140126015560376689250859818847912476574774217181377644162056071850740109826745236289819938051872672741760243029188806901353058898023595195124439702768516690585331295458503337877280995658722271692304843396269171925271512811630110534617301985570128012271271406367300656090190329306532520095260469923688137210122562855429760903477069610356970243844644960801122765060683200207037387359588970527752700830305243241321190235191726345550571354556707794242615775052334797487931397001440824930119352134338231468277358820963775210552182089051414395746764944082689917877457779981410924131539730790220132106925159556099798323956651325591732070187604959566881173021784646072040520770477857391729818582008126858513918952905814871045937504142119657475772161848198034910380309734825781500611634841138682112459884037081772842714017846715030402897674290621701049658091160442807074353541893524840064104741958044574205542500250414026132574931255091043924831537757342265717066660995086193448119392955237086853714968931633237027409388212111674605674590610758773597248974705380330283832948779148078212557511343971844324854212324261697587864887204673463130997032867990466891747841315543888891467123581356711095838797009752781911600698629464859290005348774134286600072892262489492875747694557873315024921159724305680119609003377714269119064923808913852232814350219395873028130008401072522028397547318139369657134315712850951382911332214191065287425104377415145261503748794975877693444385685674132005481057387755098684832437353084438460396133029286980471372452231814418191166639527980928216225549449433541715657492682590257412478296032820213064349047608485211940088692019005888574714937951175042032380220416158640457243656418192626366356029543041617372405091601386713865664413825121671188953095351350555593169282871872366985615294856172133693304615633053716084796576313453066395230957400535868525130673861011948475024478698630585175068929819339662632143351036055623408296084771227482202564423842237755868370033285760393525097205759191043300726432322374422713511745774764429642191424633667304962349799469583412856587030799869279105624416052000012923393891555326279644146969276269172657251835334628746249511535527575549388276566706760270421201806546114922998891548644195641737260059770766894593710002504269566501817721207092633889358860150240305910242212517339077131717390062103482436598666147259754837509515851368026091152654521699047862539131204859239515059489775992201281032335419795894297103272033023433804313469009913205197439317689997916710854026003964816230428201932792374128278944684181619821654795137088726904536783105516697978167983052638706750579855500689439233714011754575403521267243575161115804689037776079035204620567681630174900119324568198412941334715939026026599988962916170834118288160693272762027389029010359240071792934148034100739598442756909015322323286379448622386782357290706852165952583946626251657698636806847734228390598685272249552240246109375374651139632299947058921571128379619034233937816264999234919337973429726114598140248218367252880711928260667828638262659138728936357705847897003646207078127273824744339296376579363848207196929431757938921205839176264589305056005871246696879896413354754471423295507356884087555122333858372082662546007368936064388494979210402217408718980542354813405803588236595654603749820160063997767709068965532223920476762190047336856687072216209865613382342830148881645079512742843297272861634708604563713140235731267638634769062485393278129231893090066866240067101645569637846143917448973206641360274789254403933509234493532175090991119995424363110961647805298777578854327317633042796298196860204413036043069236124711584342778074875059062796471261359403774400146769730347469999272018934729968990250684048760734146200424729024785722007192483141720102962336226421520678156220434156424503387812062659436635806119749536880799541164554186658298071432338243589163691743666179668931000555749538348774559606009193643713183984437181639513180334958671383003769749735691857815339228661537283674575119057355227527114518618589451870424511522818599369627829199975710166393159449983877735760347601238996519404775739573117370423322650118154649301132027900436276254153476195127476610046247235841681188487107010131995053562432737492296354805541123063850449037089021002650352469022858691140367497352665668765678341799947756928055298167806469407804207921541649184097098060242576305701381125613346433141975567292219916438917287670856676114286411287861762202451115093055669662873910729545473901006722819868148949580496760681664265884851709631823738546940790709143146423579179356970206834506588803088030701084145633084262400354978689923187636982582533920599028424511355284060978595930251900391588540439298129348509161371156821794150546109547160421770858196151353656467886188360456520305839614402810203416893405660653200639392117083901365161269154317228260833827161989904508941537202844908297372336248888991243839154149550916273060547559215158247688303919734497056358810988221755806438441185743781577723781490399308322223688208111970243938879292484939189575506274350092140181377871850931896002931754009097484063763177801645943736116891428457857820077191970801185201222447989372916736363130865422969041908790077032701156848351039770486535284267186378375482690242105473265302179441987032776538835293498791584301300544027564130435303591969725138992154508137371287184005360162148188291573169998831334415464338083920933692112685079753981064992588469262046380159263241728933098260815519887313399873433067420581806428488503932823636834102901219598490608552938034606796023791908629396987247983199127735739534553355224289998008462094508177956442618798465386596359497915520560835593024222286192645559671790432928941364943870872334095537895909763588926290418127926296536740480043890047533788655833339363982031670210582442496719734345211161763602826285907368849271341819218374975687394651474493797535968061833168583343523384417251152577582101200031226807667470315196300970527856641653289085826304708875700413605401222666035193143565545451163241279384835738616881960628760240302665657300289231137965380549011161816207970266840477882560043202965850836081973502757206302070284791985743064283005019191829263734751005163618169053418491718916324143609358545770890732001149946105279992294447561281449975477193379369600618669327436015281852933457406746420400910402081603787992451261707221334506531083550828615900931264034590912088108328828811137071028654129538671541605228300410120480033068458469024254316779457095214342760101696507646777154155772345775144278352482569645334098561054809632215634736320959743540805349156999035640964225988332769113991959129304445913312791462382748904439813541510846448016431132809196086957288168025119273172062331888270301944483806175251373240874535492205862627213652118606759526562763660130236449125681608083648241211748557301177509554106857133140655709258089184755739836431007252707832278699012007182241912688800494500979233143049961724225508849321597390135823142599770183291509157531605664697944672951159841116991986049298633002529122144587344184001068563707801612839294421165532841741095570943247344672824337457728234010004330191717557557712735044403320664425045338306312859409390494202334790811749921304673255796920028269019812576503190420683935846588388652363758943619448953408760869211137229866594516415646850598694524909636499096129579029829406933973778480686864777623502821867763938936235180905742428083166372840193381983063402166938350411657265340467114046219970750804237167270346208671315868654358743069556997787698252453316561137349255627202632933373797547709023646107938799494788656135904117730912749056059709815638646818501968768306912852065222674696281766023270466041204971063812776341149422535584179813053307858028017024662522809543356298712423975478265925814817078466473403380788050591895701240928601183155033115920297551291298552900029153112429784793381455955431729913129874764817975808264723334781410219909941760523744478666183326592497787244035975642324699497720812551161431026172251127095050579122414956541224649741875788127044181483283506518547796075263047196511141232152069024251133401740998535729953743463770398544073089712311906157852136847568993059345835518009705569173170070581963253123759492931699949143967759377426391107098369821212287511811434616731916874660967733703369784706594792548281402884945713133515933476895389679942664285335776772601734918581859196870910944789511205267217089053645499683264906374450304153240817898209016356351884425679869051076584574914939180459730786154811555102017337258337814312556265366911590923989705110214597746917256347667977050956589260971711140184564512873036719713601164044323983895419710491869496239131419181952439631599101281145955420532324564957438569111071328220442904321880383779378738712253515893088910460995621647240521572539495607674458914977405304162773910256038286952037739713831163327582016145695109553577368334444595598441130595705801702369783887642304227377250563641068317115728678050111908365516585806019364365183052393936144851210058112635639991563649626832950518921553897970786069828099714974395773439130946175752497280148143462547067238347436548462042811596031579254147017101063402666049024338077513673967811165846961979035229285514233301505073304668222001799303028862267645889053997579261669699692691469855969943214204798452144887205300934979637458899774919435439334102879793865328175315120057418407631695174322094053140319057042682025855885856943330846464752215587296617826253739596161973416535220743147712913966328653289976461005817962702577015009489393751493208740487743014363257381411730166551791309946594396949705077277372974825091830284638094519017713754864691516246725250550789520769188015710758670507436122377126893872064543691170381081224336223648554752221590414634402033871244086286735867168240223635528037010869197441586501688512053591829027370712197419088708041383902384393144459614020726934564630488649281465218485226140721659020205255080294558478308956295035962201520462894493156362273464808615452021422020324558107947930699466105787214264019659107039694018847035640796283019708366225082416523742193419438125818946691459058397614174000137108064008259010239521150629021655293990833496229741502315604164970389446556977766158170892627014461370249797056807187388881840624554466576647938022711545123944643369491248897735818892072395692182600451564725811584552640776580750108260335572508296654709827465155016587510856505836615232451749424448768536846683042925977529304874720895720552729176529052750512126598168592257878938235036467752325859449182890848408921646406190500039070606268086541531245187434448591359531721973468533974157187678695682586519249273812390263108338965974132750706298576794028153701697279063183889140314724944739655489440807692766882916193654975451156084298862454857657689535854743581191808751043884690085969168982275775929275346799089496698971682531635826677553847906124010543816834489724399684113728260507902401543797560442202265386203347257817815479715638599142452183538442430444571613787041892354762126160058080104100901561853334322418743019191873772990394166067614577391763629107294398697518261258964365768581446564948768197926390050865496214528155898400312255327690980746465415848044214196138171876688189420685548341905651724152712661850752277035443129601328590553301406547024697964418378035478948760364837228897603562693825499470288067598768481006384780075020039634494146954478012955745465674349696426915358997586896108685496559387511501915375356481303086997479883506122838914382286014531960937832437404514130821447951493894827335329125887324018932914557981891173598492212202328063709107689204873308161937331045179737885413243477841204673023045400188952540311803804615170200831940496936587817471501355219212183612508161909494170034632993276192112385087590902364060918815681616995013553185665756269295920649064472813174403429257992081695405583659578817493735481373209275568707458782903387023822308867246193485611746826902211672749999215438597721199640937232196862788221103577811196455398484942396069982687996336403845453138077728425016380040308080648904818707363608523571946088977880160545068424559823200928243844318725678696348782210591249601150036882892108725563287929712830115449816845109399397572752126213617283726871923017031507359768759437532930798141373297530529894491167093901740821355416285337978580639131347263219415400990200183320484231540379358037609119673690155109953354361416899762550406053636417085893537345328717593543237083140216565952783146549289253270081872787304573155025373660650421740676380746354176105916503666280881991670015625856458663125505761670625621056679709753743642686373772856136322855392127150998342079673463591956250942261639035019767813613530380380229091543526881616944948201098749688967442688189519521802693567935478025562429464588844498847604073660630045721339943313701202057516013732306190222889065204592988707265511305884731757027472496286461096549137221233727709831801063425996912880064714528370979979651235448145754300302614511252757598616610200585502747851521382952317117217924831592728013689715877841666918183052870048526711856563190717408100639185079230378370597425240404363353154456094537780933125878879732942643723523956080982139343426032075638269466297044658724552704169095078817203485667764082509171480643244926537943764508793035186779281436033585929877765912210793598807105745758227082720123232034865101132045148622288305255635207237261607463502038041246897180831122572706596457595995806886465674194649471802923173585278023640666567230057180730018063804967261402822256119973340281794856058898093448728254532558814280697323170852418480983025977576300735261927416274489649799888490989301682250359265255815384158440889835344917192029961860565847101875283611994876154912065617843594708158544993293891809657711841609395146606485293391963618508104302500449847531450056054611499175194108947296644380453446436132393223019167779311072653982155333419918759118280083076177994773544523405305851206368617783415732743947949300123089090951039454484104915091888222889762562049444425906154993081953238282394277058202720966176144059161946609677187798049271108855442769741007963084094219015867083301980448753291798426062608710032218354086628781159814173803351897206887719997336699856611196626289898334076422257328490073398515083326496668931280798943476900448415708392731875479117115527397847129550133559409718579487158626872152674532674638631860694723781326276457161696257737068220592798261503435481754888299144684216580475581208648847706996473324200693970165257675328031242691242927810594443314536690309291019268703142937189814302243299544665037417698839050037955499128283006895861585718848304445927021406614801672699545167459597233202894983507434387407119157421921858725625711344330065167147886091565354670705488832622454809303557926115807916009951572532838652037618668433097917846645997698144231402605846286806413223859314519871129878635163570734577242271362411704194600276244242768319140677112066223554066803699384319546759620091346352703487687802464269852095077879033631330264224584386064012599345853586284613005201195066766903310410573055060216217683564993509454701149405647133986715051182714345908499663425586049536709611506295574164390370369273285653838084058308934596348002864373668940296488032426941159932423886590528041765349905274752765238771759441594628222856762865855359558516277040778687644148354714428667839384000816109016267860780940452206928612253585455811805659817542013301449429346973010529755248556645634951527147183556908432896027490230260029595038089735515109645701242378747000443849001107258987561809743058107817125324397401088987204638341967938446169456655486100214583724738236018377827063460965787271658870823186691082769373943055696551825842048665460565722677863304108420731479910362755282935813911156895256035946697865263235390226133019848123004791333921097226083810980701250737242050717126858898786654593882522575170299605591782655775376858105916319109387999099715198491733477373437824400743152996840034847798622841489891706817141916869016515575386193468895059618126317160270607926818159094245867005245258861847080768181336163637397646203429684597460144000321581123256036681338428888437061173370058919045345144325135858276851582975571626785907239958132488040445426776449222208914975053200861406397097999787422983650253184725673267156540932632337562975363685694738213563364496173205506799655314031400319071362437782323227171809474330501525029986856795288797174101319676223115869058156033895357543729880143909595193223886979340837076674388004811182639977325669673478140365081039684192706146945380068493525210200515851299165461659813250808486673486345381669497523194124805316155500097308942066514676824647115795531313640153548764406235997058219975249410195043155933496832058866715344922357361470768289099499552304009184078508135173063664989447004898831971907753650813314116039133875210843447644358419658179186824764183512532006983281026659826886311506592102896443201121489444247604776538700092957311428222997131488518246448620245627015601197166074125332059782455532062018613621794265660135846239557124878751397029080016990740542983494094224991544784938285319953317642610653704534269003283756441331466087495495341478136400649040916103293183347091440696401649771983070877449111178415861893343194489731924263828760728023260489912313617115044182300479911156928589180449351247282757551582138789374328231995780637127756277587552548504908632142768247491370065124780196721393505669104852453565139963731856081734677570351938735632320793299488687738510817275441266584155775340510952708831084065316271654150401325013360499543898867461182062873338253154815964326605745467960800691087532663616610320633921799577697693272961320124116638609913871776338831018146693835639739367750889574378183733638006694784220749713240282755308311077169923880000152322640653361274449434261178307652355073471368678879941611066120550104035199593938037719326240336165808916643658200837615458916211058824425627637569802638813379849302411789070006033558970625569020667921922832129770092494788929007832211985146429255503471527230119079737546918495378138321464140595050683014447059063906464637489667298620760428695205910107607695335242687389555815877750321884810195801185859680514141434438607785908303003264719211841819020927163333002312610992782576363990277634058876336071099917027254154431094228372135799010977827167869087211295059160341196213328644555125424391494100752560046330917938724559731575922823561190931636512371624761001996616857690059694624229124376796482338465435790008996154181608101568041631148865728040906192803557638311792187106446007561528697330551288302533130264379123541181096327918800068846202703362379833644109710498402268709760394834482101396255728216054311953739955210068624288183143078369517368049553376030310133378474527290016276365662633772331822069293471660454012219498584105699762212856943453611954608557235534852577525894644663865823790376586764644408887398349848634064651684731557653691762753969371835048495763426390733143710147782944012649761719811481958870277166108401978984232157740666577579346556722301876161306289247714021737653008443899960877852495642736169107511782184988424341130631619872801049855224314852911318476230861682547358981337693823159481676417299527128523224862578157668154253531603702087760252168219830710224895688733531782470529330583006223585230116628311769884848110328012031903915983990004950226138588542298255847590050663801129912344523099454996715184876962199512078804558827437142144332946726418342362630485778649912586034834175796361025121937451520351488653006562856661992642498259798121773601642771445354838972322359387521851497435828004084108262642357232067839547339148583522131582416957798181381854988090875185429447460518386778991161934498001393764576010388961590233577948967747360072962451156379123323778485915915997594112912068673951477520929649547808322709580041084911068143686738141467501218390942750026822595427486963941501275666022627644031604998392211146352450588244791233486711873321872079268572569986069232841953596558756770765225706586175786535633579012157086334314540922056711774051287086907378011401680268736036523258811337303782250081879891426961695148685340736354732496923643165685087510167507954919552272634104900340229370103922534992944619276585523855049120639866464896452443471208129517420523887292944167062175090688938163729121814707380109597390866307488421626888306032750730155455014330004706761686381001258524749134551715608199440789547612685187537926200817699887221694820972071296802751831405407527320603267176979555906075999129860838269869061064349320329147901280675352482671811096013652988664719034069519056214777564044763885187724653357733595977898841477431223401477520778056089288040841598246099852187713109801089102675348943036099343587092213092127820612278693369311734155875405140063196809023282599668328096543128980614376077511481384110452745458134230119818719236502581142525143534520315759509398596182794679996717011232609870414094728827761164254139675246535557001529330300608649434499839357971609594155115355112878929914328006972694401191589154977596867208169974647982642058340726720333716790747676329950811538117482377518294186985925169333494497509055400252918016226059744776190220269112749685122642559221130800387773171679178085378941078055542093250795582239201970252796593387028763158403765436784751426924203794395625308706642564799233646045730240800410466012184152399754395252577704298786907997195855419749040695791414448256661028527477448005853697136509947271038322547158964078691781337377155350687074437446797427008417254190997104224452027686195006294713143557433502023516356076097369726893999485647621456353862187917644582443934681010749684522711118478896720085890102454741203529264110651704889439259862980139931095700930685641677141621332388129688640480655700851102356449681495399084220273821934710079358693216203934873011061106838559338677498592698823457506645405712520571140111499278663397887381962677373015499162593638777745958763933763560964732195642905478393271193664137372374905021514496733423254145224061744730925350498665431503842847859135424103423329829192738317083021833428738831926977009114340682515030838165152874037291371706449706974244653680103488543464242568464824174907467831489636759603124586624554061013515468063145151636501931888007746326695868851901670073621155243308495515725387973006615976443063775385752314060120305372540013734022723576771963868785643968641105922859905038844245522847611341164319769326908129310663035524975717861541868720545837024615965124512427886555351923854544621428644162180634611596979958650459921537410239887908953938760610097925473992334945326897943990791452356018921926418940072513242766758697807592885216980206049167348001535312313461689585137529611580103024607424207168547764176260943095011255626165387272468491140016121335778449505809039286769786970034484296085516866708317255753069928094503998201526200485622666598333829337455112468671096127576294946061639314706757750515127781419698843211535077859155766177804357183688132795351097152612995117112717747957119177708787994137390634985095324233599506475404725642106245801127123970454878310516167779535598012231733585970072909924671149734338701731396670180642040714744466458545662611479019344439063079256881094458261428001060165179590004462862370053349947820393402196905993724200222735057806725266886024368520901070699329158296747724927146314425478930037736220844639816588821590320733960603885307812524078922692897987692761289571273213223020122707285664402159819370904625910616795478384933626305506712526713327609940592802901229456044908724754949606219724279811939672787330765300502755872726748576130424129994908139124014993997568926298971274876735886394000506731297540154590047869269215631294596825110822117820460530632280397359425291159949914298046513840812516823432597918809679802101844679011171743367588041218033417977433825249066087971688734351090743825065096364416191310211626836127007049971959470196405347736394919115637295823940164647536663660834910617647355693773993671869458046958252061253869669112962584734017862242142692159515323168393504640420822438910738301347677694039449088958555617286122831350440419160139525370869469961080893306538898303519646662022075337246123407002878403531814258633196057068456831752766159739253847206898221236388445176235936428035423860570969701967273048536194136881922335880421323508075289676812993488645823070148832458503132471299508796711141388471688377728953759912067300579307871379856346616079247687553725758687527855480335062922006826504038232181259328311763268061248837517125886449332766661557286175024005120832245121295344118281519134707145698064408903460925441049905024738775644333089903405806956401615407887201561183201876835032162121038477357377337484275207875219563440039453546511916822297914629353684819110021820908356430467993184236704721839609577431173279467794243190974375829896187520638975573537172857382334845387752872458034000115594681142996353837252698858655711206767654015848075966954872371917076380220019084164581417392726119858363388135727152605876456189942835024859026452395011466044024093890037435839219047642555367110895004045868305548848744196592338780033694183466755623439391935191194558490840077089595797004249428968330658453298536600318846912353828196735030273708556461740235161785002082876860798984976525989628911620247186677857625713027023658353399546556583051617163493934331184671339203358260963703346653640650329091029240832311009315388832909639080341720745248674890722434566476781485969276581139944331105299854985914399435193716657421115438059388916142327448852423474245905674774862227020856695717976786504449181817993992895637539474621034695006701728655368890705693649579227819758628255244173964448043006590873080719428705954634662564554268040268360734109935726164958483911595419271895829070057798048449633132856919380202640388623655858301684495461018194456242751588447782598815514559356083461465425326590353651922109518246450271052991831344029852187682289109517313595648952744217790430813384409588290219710255330854653634952471079099387332287886978061371390627223650318409616730976774465386834783712225480310875493774334630169774014413545132352798016190367872549890883188921794683054709319436814208589275910250527179169549196709754162211834718283849402124110549384040211154536723391557954329008569981277056270621944640945067295203115999088164232176526215047742931582787124928626644925375120818716917634271493672302089278482085029988301697748981564712334124696354113635249688464228879742221036962977923187399216565420405736431840114008310025228226583263235539421422783995328279736754300005854308006241265109712738238441253917569938594325719790196428848012348623365204332699337112346466926895055258451145730616755032104987163380689510714862475343401094764848934165052608858808093034199719861696664720032248742711850917745013816085607680793027805987606464031971931068535100433277275794797251854266307187114365407597110933996431887439428634070853452476283270684491125670795822033101351227440398564544277480879438857155589130464685863360583628777368382405624990198450233338594574796250084039108242050204351982119635734084397349966888023469810621536957051939997185616482995643503401735488610776560356719354046898584265835157022082921091104797346715728743659267145077015237639715145369838669251267432729665228566566243800042993334010403274516546576318182248811286655907330312748996409617565158948258762336257179464046759252099331472425951380997358157335335998704395917030676854292692695007057102362672485562493865526550382183571305801767778655981884115014482272256701532869404126598991497338088739663148426661165400891905145110864007456635208902235375668716745994060481593649192870305591093688879400758462181924933991433105685320590951322998062231439833759674152234791751032858899965978383674138775145360022275023729692396127441706057054302710794080081485924632923424024056427630339020228842256453888897632506906307024213078219236064202680471130337392301847466976757441730691337347484381889639768287287446395256211183199296654137759006148028686737488827929665852146979204715806148912066044964176850782661270774123287167266335011034674167137711833203000664172045143371164013197974389410193114095087676293223700604284206887160677463547331838556180743610240533571315614132158840103299277121846648251790935410892636782459961360327795958063058983602033481859412009469787095937911575906978474897897339595179722086220644303660334238364458073599680624621205807759058769804682664577940122550279525962536315885291655732113081841894026428577522753904809832346813794974809114853545298675839518587376094705705220360035322038335031056054780851655931204492083022268604208515581006588440928111300059966551003346127058306892159509023944788761738116890121333594823838735218891174100412619133447418299767982469750782610801085437993188790630072209193984400501896098137054567502942330783130728325228011206384430193237240239163793055748010406803534859475057306506004159263668035058887861121089824422185604182674857407780134817833848832032332937750055632140636624305987264627820824149731163808524931454589834748178958316540575088580828123010073449899538953496176670215090859517508526783557640423927899310442947430399154821457426776834609237715794486935792667870479937162068593805670671883324239854277472031004238253335380169758585230071904989052039099080008676218198477658757912211261262206123628317739897008590157691399927930406889804162638777620105608689417240379096851703185939566410931878403705822183931345171616734736365953909765993028799909452201058803286116876390357255685644322054301489875806352543270401963681672751112395673490093382056139611414457681841224835736217624085194427403225206383401970277309223078622087259724911751563131642987426464705118107452559406274474246340620071722275647791635895402669140883258977180945180231325463983465733868263114079062435667218024455939029567485907753351995673360183039854887740498860117937918460495511889354901199178086576200766661466795497687899465573691333810530685100601360023362452121016835459284298763257955542913743127241681272470967003258695375984379760227556103031096382290197885546603017836980767547818274696662349696358039670039044535215287866058631591313448771349517609742302350807573757388914616058587569990280292321005643342170275963515981728109754957102079732130584117215102225871619654111279846975989586315188076334571546599334576877885132291236871065109869247059355082795494542518805760934726845310980989487218537482202720271117390770733055555041423859722808488254923300104975741883152777554955099875403599447990210383511234578594090257223300131700543955029157531544694587227244162624867721831493946330435786941834199265126876845726266783145129986958703084491393516280494639876995244311696678639437399665833159794640136579529084940359345392032714166757020636454187364571754113282505453778151313289871150789442350411933392189244748558897729850624986595793721000185839638090408260409938850370853454290457104320461584047693027747692779477259336645976739869440811228303842819901124632744731361487990429193761985569223172815066045473881840825760158665032580613906837552190617065411548086326362180594208091960618601442816634929313412626149263332249837838651947856549299785246263626031597905225216520066897776802278493635268131664413337745952055075456964014990181985938589104375771858063644402580208619330315372941717921724685856225483036902137699682493515285701117406839141921874462306030036051087944886332983235284076366383856892393968526037448245846520087851131486527244649875658139257258018816315979205077293407254067063016112937055001722253146721155558538614928511709098840584199237209814815821393685943345099779758992599705334436473169790671269822094433844790384168055044485033061016282582294249086372857743832867501210529704694234748278550881580499749758492213536580195614228165246476232221246753798097382990112173948973108949408211149582705370018657601932260934262443109212065292521714861713574507877839332987295889611798893000783048674873880086065439379310209212210819969050757676954335214371436325095880771915945292281740353665471118447250045619771476095779854269491123715705165434221641572813271631096361288889226192449744403782249045526132535953438075024270411267066401749603027672898092835047579609654232765238713743812562069214458841652393266269174616993253337046973285187169066684143489111641173802531133556842159204440954670185974856384418136228643057732998550367892860379480823390624253549508062529308750504798874913660656391040563694716187691023641223833871755570681606398229277286641886733721061085572768696077018692140928709061362499379992617981700340421016554293850416462033264596117016235191751528901546756168382365292187732394208677373270237624815282755271037441900190495116970914405056045570915502864536302136504501749224988191244887022935114092378864215614081693507321919077166374888717961203493387507166221832641203757845261636086411997085896829469512104927750502406238323441281123657802706370929484184596212138739461974921849032148717641326374181695820147845295394166785648550507536504344855134565682111721602275305517827631431819258889669650286050274776396985397732626150126459254297332987569656088443168255862983122860522620623669887147784708138180657220533447063206531717883148390629583293124247147856596018880947264774648649538041161408891151805159504820568814136088649866729934462047024614406482415212080524215685090772271126482140394960052317662887237238460899918882611151354009167030449369070526924858592025534951351133592059791386389581434294900404179748980639591213064420813302379567194996194922853868130435170891468799402789620522664043873263069276704087379388963463381897778929965023953414527149192741201204205174028139163752405614124285264723996458489609319102951121131748488411839319395927831588708802456398268935055722540470181042566802424383050251749349370619949948594042498231029804253643034360014836374111583638521430310194496279428537813497049245010856929350283282622101362045772868944092753152042627866130887600702725697777907842877663426688081547991281817629567431001729616233379796465737410117912224209515378349779255096630567293333526232784706243425753759443191726790538151550509467173032768717115652528490908618551686384537817926247645369563737948902664712211121396618595545270668162641514310722006222290039790084860969301223255549464935482118662122365583249510553132385675450257557135107979794609985171791522334223840973688078789119125270548447234483845767938449027688923590621365012808052415164361038496194177895998724967158354669290339228368519547813737788555825941481316645032233963549232358046489079412971751036206713586217630481652147636439412232040831826432923336160536052400209020712200890082627289869516432771183584903117923622612265506256082046075923672336908727645469395352077691223188192923306255461554090646030680974880835185988534948976356867435257682036326338465290015862465054399241475605124345270069903922308404099245933024070779944359297948041555517750602156126158502903492387318901846828805284899884334594797883459613333231322034216597404537991225805941495592940593223310150057467629052446820616691574672030405380752357592224798949792405742759130612967381165872544563055318980208699288599000561614961465566725285760309938653748924361948056601701068878285869081177512359703463874975454139931514725137906149889045596585840930084600698366158263004542275531645458757683767344630309957239294687042777658596494952874650110455353660690996191267023094113531802822996444526641699621844957157778302261865738816538856028164927897086836568004148812284166873106311398958417739544854294307991009330233623206177520081605893825559855101249130957040723384494661221159268838026367393416850519266072041597813269257405953547127964795144160960842118073328519862862712901400799250427371006762911258249438291432880830001393838668101316552154855944198737906273662047333067094182950625659169052825279107816229486072927444610033053756033688618479896175195246167360169732470705914925335303148194796627328199162156392818302665700651466297282181658109947172693502976860548707323684541110870829546585975288120645731128496437043130910556511426372047117871624723522158620492604720771626040776095065213356641326845380470121250612825932581448077497160414430610822072139289984571943959921435218801797127979092354878778433111464462412437912073842219554298053453215126744097069524154349275150688359103583783404673977710256064762855433906689034967388091829637334227858555425959444779038099036983207168129109733469107473356860743079272733581992870578599437857374558003684363355059674004199116250472299325577435361930389949812398333594349609023284168245230039102261049435365992777028160657417941554023422722795665009594185791047110673981519028139516149111529232883221760698372065866108533361943124570197094839550734739316133753994125512132880717749575723883498411527512997728555515139157646681586017209246324401733934980131263465948630680391905873390139041474845140520827500624321641404494040918926635022209223340555219842602360363154601253217248975955847779859817399132953834948578435896557471943477146065363686494419141460787211549885481869852855591126214068803954510719381480970833107485563917032356625813589947759211255522887257397038568817998348378494472604154554894061775581329032383449094625635085178398579036635196946950832023563638179384611151068005709601679476475772559720633193441923271659033937739917780590792447130823641111708482926205158445065583616335221707953456834570617953679810662433028010565262377150459907709453895314154805893550631824971305142525829467018184416568299681886451613555654891823200097722397856963091901411246164626704777244872224553048027814181876050654228649232843089167178130473284981205898743911500712195107413209757894615361880083401616330882293170099400371368686017563551258567920103122749818834674212322758145900321097464275678181781949204268895926134780421998376480351011318332112538854126214665933038871039855280545217734074222271055471856898726450884047730126983239933922614453709502523861523859835264520109713428764039950043864935753234487843481318131830777073470652248911827290883510310789429619586037832455075541762996963981028785038060672272363275860916719211745947248030435336926217251329865423586659703690874577269556279891521741270716027458545961136453711048810976039762082715385663955694852386788824621156362225448066251493210291275268564421417652152080816769094044206355160813994113718399170352029169592447709725507259986827012039082998028229451759997582574309306457746434081753137555502813165805665187934734686951852898474190260974868513891531529130845802597233699897036420687796261694667054059357144191456951466693105939998013004970079067106973063026277596382701038760784991301079696754700604772389014290663885043748963251569698189383430064692536353410926486179414010225238615298846207147393890308799897053456668694017258263987431603450544439530973681605744129602214816924076231554986356027635590363979488761827296561013554331941958681107148489841211978191646815313661225869041471163858803014502350061861313885402739752481795312734688114313574796084367212577290379822512160481092154949734090500167599417230104865093442861094825646888434485284562072693035281193013115853949823537254259387564053957482885945561057629201596612972429381658854272386358055787158025255565936270046133530626491237074675453466003939664405103877400944693851161105423991643120730587162486760301107905151540507704407246718836455128125697015951120389543552773657735176572680997190648405632939613199146052563483802891923442401253595412753665012433484770287917669501018584002214512692763703238658081943438657781378447457836355465105711114740278237820544956607882773122687343986364971253152364726138245138827629134424616271468870568229774179109806591721316677283485762052705955465989409990120135347374177358024919854441790797438728288605467216392941375022430650808301029441354192371843040964152913736464393954325792188030404933577302102820138616762668599872164757743223465733038338889662362876298412819526143285485079879195277972340778756218468019791955980416158970584064845170127941653017345442377096961548260271326845947473318021892154904445216384891340517097687049592029493204401419519075326918750784719440041838370355923818150024359525852832648555996982330887285056278769032156212374695983298551047982716154547228301720008811925989225261637963957166678346699044909567521818329574176585291068961862744064886519350852460218994893420460506915757610051365150450156305235759807691197432208073695669519828035343557137308334929737533256433629525639922278780200784402693094626499446500022845009411538465342085290461879646612178667757045211700597549368916375917230280544117502862199194872506135138007942865846030611790593318146333515199295950964911933275681951525675619550875533040199354980134627185010352624443480018011209553089466614677690562564698928819260812171629841126349214052606225304165949975371948745978677110834780429551895351892824934716794342592475823124395921685282181178252979829814403390494782787717830263937614391071168931659946851186430891421106860846909545906785708511000470458249535826084947172681507554057275249513821108161458083979105319174097035086574909032558745021079265725870656549340255442406519104976109794543233345191659333938323212360602851063914631279464193198580606343067894479035517566159340294086591466187232819004496832371918451580177639406609612514410069398435799889575329649597380120680416461698787326362051779557312784913971070656544255002434762856338027821103271753873012097416460994770653105108229888238247718994055520338107693655331049499568541318378904360881313116887313078516765237586236852778673009746641752770113879429329228960921086163881089604682238578848871958274984265785596428320044080642509754885088655644298428887087327939152863193539292216942817727876507250287180958377422858573097627213918250409491785815239606123425362284278155074798024114988265115202119362642974261445911992694978030484369665494978401872887272266047989868561469565472282842246847335737190710969888053103348666636457388437814532242514379532170110518357980170435395603269544972625796486439666208143860778397442088930139392389110957263205536520229799499454100676021595617955128584559938583425112486017635692521490079535509560943592170372431943787043943258218563490647169823832345152899691407920191755150289260447256684069263641002447766547059391904531230448522102785299672091333958354633733977987675466887356415112975526701082093031116245318637744067212237842038731358591166069635194264730627397701080790004840438735863558697602368619751056222643229386473625567656927192402084035365695139031202841255547182778512548924273592721254477104798960241953726017072239049337582881797932016646221656505100324462628880428528282290247514150443332541867602691708602475981513416862147698382191201968450522221341243970069600299208005341222644634715285537270521505652064688606069545946836901437239836318888907175730131253073258143197469842421836899966877947977141870412352683186026622504098242859405045530164286882607758550118527899980811551729068681320077716292225374042587247971248685108546070457897276600210166802509532281924671974380664234058898433103492195611297041020794572030461102159657579370109071072509489207857641148248697201970947130303629695873293526977281657436429695103288795523144800867678066901077292670117731423304692000555477163536778552850109822601757090107724288431260573721709774479174288060253319117928920286327787783441387924247270282195773652395554516161389787857542563298245637270652913809550720455794101145372023008959900363356864455284910443537274284240051190893676473939596747546168775811512713796758844073048279831791654374664403733044119859662471610171560256013677859396118201706730173257780931793442321624710412787002465872347360422029723922889407095200190027619195412035403092480146847215333261176820909937191383569449061110314238567900402839247057454070563963135743092242015280808055330972289601128754723475208683093474991509191695717953251878532800197709203403624943786600640798969006566639401193400277408057169383198683960683529610231838052799661206379587639400543795202859259229580744737945181183617460864216252959482781675318176293218213572389205051099473177359427990668531734480857464810563949701266629858001695158473353445161049154791562649565479163901463799594725010917554654513099755896867050128407414987483921797470680080404361029124044207558457496803427447675731957195707240081354903379258784727319770553089848236886784888232517867153849099848813203146876797538476531913892169909844170237676555757536425209805535722732278304710977228239171784002638409519533222443437562155469522551705581995095552019523026869727903638780419320394789414247812544427676338110620907355776946682651215889211504021542109460181927045107986951489093877314037374373200545611796916746430874714339627092958752004642705032566767414041509335174803801824429297532566119796615738732443519243920880956009860429214253858353329538624727734269025517697068041318427164674603236420671481788880202017010688479984913447989161115324850108712354415191306269689146372352723612163135585071333830134081196447438852387516729495240765492706169632034424620643938742281922918798825416856706230719982598904864269672744022003972638701829985044285871259927571578155645940570057141431764276494810740323230335435911140407804683344961693289190177360543773771239720817175963105785803579574431153278283134102018348951234584396388026320996503304277463634268883042669216006291229852632957835038214353164631921816347584776318566594821601820862363960851832552240700254858315568842794267228562177792027967359596049726442107807231026564206942978686958966083006042875004919269043607089688658061385671876811911684279501712935974545050166704086040803670433581896448837377652578867297561386456445957230900390124871853990016600524798377104702690839063986480466628990161099879208035302643521674299072016621033047055682609729116136981452525823532083756768861519138852249527344438135163524043816967155694344030758182020726802857872140703007676932681895968401799508460715936274461170697885154892318297130201697403989912564421748864840640669952687046767203232573457543090475103684935706663677203523300459576934604087102721892598290659903184441087915123039382959467599626196153984734075735714772717938520192205359846339891069752616256466818866462323673408656601827524911391136979632654124393279610494473541488108594169966613919960573971038328237751995984705180595133549889130795155734643847229540244890027283501657015161667673247852790379484658502008495273959100048642429339716995614387589679896773614368048632212784405078514769697874040362326764649482796378370943775307853146791150758421391428018258021097994159957780148946796540603344114298706955417198837956204326070378919909101247319357046226243001270651689041705403465075739935058906519426115521576911164367308075556357510168339349949068367218965038687337176542546866718052316018679589200870908687469845885327068435361834304936633496070345958790017563323130707878627140177473580311372385875261061907784815600687752170488060741297683076226401124708163554797090449731400670571441563468898750915575643311560931807535602835661781834731701659908881743476545989185427259575891298156023038449871453776728403906355849307640805229893760109403993937236764232269403575289117864730870271194016815230546968612613157900164091922333579344067703340224190879254267257092133128184613133698242686976995625686469536033475529285688040730178431562299343986274384082189149442743393294036713555988205675181589125446740087462896621939538602508897838816118971938846610335760126232816018191600014083646378255973993659347158191230397699618540850570501426875494993644224291237934155835557070924164331277119233270480752648854554169885968340759798810237248670159840239998358007179095520463961725928978697340842230775442268111916673613080406588652875128132341457359605164199606976606400713141306799961907130095494331779308170125753856968569036494201502245538477641977109833769886995484896083569442195129350933840314039026968028885783935347769803617690055681655128122300645654700440017109380216946817983050817129225643541824532321664953905705740050189778104924870037349647718641288029965598641449483825177256096267140696278361996019559002310168748038085106633487227638440650169830574697673223486116557187416309497447855850534671853854979797719933601438810085188066553235683801178462474309847371011506282332109559079118916584540969338599453434815062470707733742976168092041670886709373419097966683867569679422423359935287673920398906977251952656754072118431994711370080988880135855815766811386176978053841534933630288105066806570291356913814187695765303731012460806820733431332368108310392733359770435765757672805596042217730252193691657902823619909534500297920290944528309795611193313289177707798375461745277033184241928424720377875802925073684945532918427926833981758241892863654287789566476793498467593738174022129728497121064644898768650336207218911725726455811456124675750598648942719577475424247296685802750142279877303640719568031081031529750144442795532598413691180937250210561431753105520450664859209934032771539894127549091211221486562334846136350122849151750481769370263195114008744478095663909915062711588146449301313302190658484194657200739156804270371885999060638293901140827919964065594761430947033205825193054766985831192536038719769574799013735218783276940209268906362640728447666030990660872686520913907022654584668972690395467757486585578265427853668158932930757490282658995165427645303856424059526173823865779555069146157915478068388165236121814927826561760270428916524905505790923002508510863080985654212282035829432517979923542240048629558941133684869269051738166994532588244428524743439026095096469976795541865755454066254497596613801853102183327650946440458833727439325442711323478092476965766108175505274222760031118207544569118412411232675791754566491394048093357069981777414205030704436644474066180303787981793845494782549538068078099106295198043958271824612393412831666454738666676577166325476593196592291160134834788209898463764063523547722509001224682034100578977210730228011775790462802658792570146214929576128095234320137124264089509107265253050259841802217765283239519364834025885111335868485213435667390947061377922758388447360796802483764183539075329277804170739697470772543506576168530000287626919791909487331303333152766459618061364411200178113209405830037502836022841008859537828496076632367999065662647720702719099084350403926655613587473595948591537300354499891115511629266999841409451498806700518806347753390256759911759512046036715204229597652960202044416523076449164650404995896810266080428180761564759474794353650542963051928414354006744406298179279701464105483472751787903968626741298975203129891676578935626453506650405362585883198753462468035001465171856444223633686846854108999376031456590615031277349380016399574433855739456748332237599606657155348313474561390737548962095579409977157001881352907655840515450911101639577659702497463330516785435033017467319150800799974061462455169136057778063095467714783060574367621941783346116937864190662296569425757741890062164510549325119667596010447852585308526764921414975457856560802865980984045282703530776536329647656207100394748895267791370946900631531262827670202960503197109517200923560685142579604970478964285646353264383010607376233053339552290206681282894337959993373308212116876438604297206454249437616934528515005284726139851696599401119524354704336492358923896797404674662894696048786227611082364350151405536852531093401407011268349286805972565902084489268242259948184545602335532732165118460912472427239650049317607479371911927646976845442597563188800112429134593286873874680672241983817478452669518439420760788490893464080804085284769454340782079406161785295641986153615425005248849201355073655740366074963668037747287481810282255238167325938766768049102096272312844366245471114012747201649797983845277289523684259174674770419949818031687826407576069967387370774742265106060228254789440892832785112010101635013007025289658601853044654005581540014526558003888239209262772645355570701523910474951035115853402507952255577977469553706794006239184474387799977522395685609536823220253840152988072591930870195396662882407383467729356015315269557924047204798313532307821176807387506896576968845872024026397642402226710033235899009094979695650612635183192682063359599436364277110263239906622301366478554842915179121679372560046757610671149805323072491681702259606525480118523768091000389519640348985293513523444642216023903892197783249750842452597202241010756395398046725705279701482208512684822760317366009974353751948604472824357354642515635881932371562001243628045431748560427929538266994097825626485883901668618062728648368842696110009639479753152384965266110957229641202415578087704928889594741773919037220452882383766379223560891785728092554753177450424686309954987172455681887634601113440490012056587673139100996511665507391786329351362521779942842322861106256305194994421619844720295681670535767154218214291789562867477777461407946912252074858007545868802614817835387066877359846255232722083794270143069767243127528958857699113783485324199830012160577785906918552338066308041225380525969494053763814548326394479959347259934346296997547330107356504969245938449436515257346388130142675383325903488969676400117162995467750957556775851193636054548186012525129981996631746560196061325630040271716756843807700011527349179069586705820960210577792145546640574242624296610614780712322001720987584038819246029464069936017308146654736425732935364594128600118378266623992193325990631651475471831717253867039391321641789451003293004361358965141888871891075408626094268165927386116422448223164180009130985015765542978888144994372431964618658236654080407435512729380510427182945156104606805129430862276826616444657767455524620377238778810722553081822718929682278782936240139734514512442692899851195228672303599329654191975807901393462178472417552156457925775319171060378804567946849890437795486863042052658402629138811792510620449824268833226394729226881136958578043145065145110653554950222078608183508219807848799463849890386817895745573173174900108896002896903805725421388336434709527413809490886403713690389124737756308546899098209504850546201503314940019930658794932169432438375149876931464498944695500378248363976037577571244736767004771851789662153014555150872645581656464809691832336587430534335913953887520888611574917966320804631948718820910266799540308986509612839133002207171548838617274137311761510086016183227888555952324561443442386225680938429759595878090177536865315712821228048460240721135636066309984434134871391672200832641032770908025437999314972980087833116855032780916724386084037699742041365413923794284862051594380061684380246908116249821160574634688239398061843492639348530025044517868783386515430302230542515313822081390967518589517493708866731367061768825893291750999450010756267111613235369491078008417412596869655559626211099923616763318289210947882904853679601412886283495830587148264710117377984805638010626345770483334603718649348527041263649595895779162333574482347749358652502890184515447229563540067792423430388404855651282439239320901953072941108153604790153259364939700319494618052849425324853950552596818977673865336317257213326908747511070157611546908096772456353507730232077830731422888747910968719632986599371846657860893609052860581252425206443668531758387013291031843159412822212111948120531100591102098589011820368409705112650067074589698935017649603265312332108532679210446428319975396414911064282787123579814718981530073979191287828798288345175962299027388417770659681631700381371902284390277455673991261191541204196709663375008264847030972720424656873706714405247671991223900115768795846714980095510467888811653070113822854892575046527618479764753145351951228109092583389314675552667873089096864633875486751728968982838142572604707045996315814675566235285064068583438793192752157809288609218543544189830810593475786545661569565049706672850959601139342890962395321547422887546545620709341306491837833473047322854662347077844523444720706787254253935868076874226202519250449513407042405034083507538700455288828203476148254099241572564423537333651220857141868572454618466521188974774577664687428155192195997400845827904717907927419892721626820218130136487030688053065013857142512093806861083444025498304170946337145825403236635691157173398252901524065599599476856345225962181977683943208242234162055144480614796312564773027878163145699780124072789838903853584892115379371563905758071653813262542551483478027875468696134399521880403885034931952097449557047557523788942229428939909949008435387059727311216013193729732671033448940690719266005852266745180596810586209820478816463539728089312796891951699969363911062413861271864736344916940002321040390903449372045679265032375112476404639295226589366276730956858941563931410932838777509618712677098469137584248440603759292410400533185052249373326587277464402983909226378669035919103454946952531448269749988115383259806895524900572225124690646169734151489790233061625215583748752191085852513814005328183359434430335959831367743839160657959579543708488504276803478807254184238036801042318242383456914504870275093953258848304943578324806962654017607794759311105824430504208531809897845610224014347832023026308439500330645968886313782896230019243365400944650971029676455506169219640077065033454604126328952461132722658502522028350413230988222864090529852632763723618942041850234559989993396831211983791943487114521624769303527582005360219797383984473368078662263424787337881821670770420813670646167087471286985808410851206306742645051821832586577849970157153445614384880476474906054260208366499196463046218104592133530260714791978347459772983822846819326274535691389453599256871354534302714665378520887456566227094591385011677438833741029914639317554623990174636924354681742795227270023127885853116457467083340409630083504290402929045225082129527424674834661291360721679237657665938731933299442952278844392941312489834221365149801632851139894983978760749035142596415823684870005025140696051138556943169248978244560112477243841315190573452244372206067719367089900114787612383605488506168718181043133943288683828292607321669720871259780134162850380693358890277307942119976861758843848294869623345987006836294113435138313021847367364131273453652962496517923658499590046538722459759588084693654193068887593814733419578966857306554337341715478154659327755318389009169761658028120292640582174014432454114107422181090338559953435766363853961482338854905387381794183381176518668716962125246400019679957209798195347185700445605805594816732788222980752463174880031569890693132332491107392110253945804891677030828999850051900774262685041797818651343473509237166400660911108357639989697218957222172756716276334688674563766924811849649088819404427082035402615432374165332174332046539491123814729867268514168491638177281906768093029868912286612291541719998522502242039452794761236266190686960546065765551905921248670725709550761241356434256272827696103870871866175118993996805610799648531822806538468458742008673964995812405325978367417600491856570716477256559081931841336546958391801100001727157288165846478112589567153521136832229521078504373248794661120463351529690248238164132377667343353711810582156663829541488586198272404017555036189361887647942374718739808549086218199383576050415864457842107769740888346355661938023076861947216071664811941435677411097903199897365651864516809946324652526582125623884036686749549982939227348973627565936262512306250704594067731301423665977092126481438898116021617146511768956989325931226577781876214306187096826744060073537339195083973349321169510393595543572931216785221087749907645133904481588301912913607815021486889570602119508868953911315364583944821352508377054631537783812713098458755860228208090018463073030944454499844529777163411511362524217191924919461931832454840791838411353178739662527513614887884573164266027645371113656127035175284345716483724986513244574784948094976671323389410195016580829074540995056336310750415738174849129305318383275339846178721724925500000301055566652823187544165345177655311400740045104170468561121066337124349898848975488220205503146018954125880553256825799916801230219672238151663429806192879796760183026620747696130215218134907226125955146308845009520222877302298332913211262333752257241899231319896959045511579882330863028720749045043516001772509728366736853421729613950130768366488374465040312823862530139688787106347645718659493674743904153243842633578533366035869232424750319737544640885545443030865432459200318131911774204475871361013489486402265619844537262807454589460607107576183013347070479171530857435075487789451550135959428088718294984716403174026349113182359130205230393975176784459143762830171864835291880647340805437717469139111130159676167595216806860899943632398748618942069915248197419503205824270870197101353966809742712874239182282331762558479216625492744048820331422407301315428175475022878375806158012939280839195175815988978326655701940764592514442974888584398457941560020061686633405819878450252444572706163100558628048518531610701967472528469363409729881395622745119242171017926727026540630217211468362017658752498981207854216073245628589004647301425633891954065659953141611958688456080901539609614845597446648008543066053115544822711032998536908512491248438340715731837184010959970617978499488930845638874356734430451101989119873260347172766949921316202715764771172860623463515788708414086784887338358998855401110299475217547202222580626386169855575749401506392898058390374557030336315127021412697530201427678156189849638925259977095241959106388245150816256281561877716156063051282566259791481984271949626699448320422197467766782084360605050141105049422376741636444111405492002643703079677480300439935250448109507005765222942906479557676469088564266995132664482960475985020595239472463227590627488859031622040935187422016031229826602434762201651694308596155772996757273415096588358280103529733029261123578958901667983445605878846782409668277075140874304501604742851422289315581243573779899257769094842549417837152986569069728600279811805196882079910240443424396504053611581852765144522112420950874870890557025057056396896007479329265685674664605792420311973905085309605528407316806408364656790317824898345742038826507971533004390472923370072391722093279802828793774790583453965725050951623843393993258022173872149549989974794881375973683753393694181178517129501851363378111071873181863643219157881896752375882337694672398088032812281583909433506296088044309772029134534071248120729238542208353081545561214587348628989730149925082808036805016407454210528595299256173167393402523553006339412138063232816523828603521532855433131305870950412754960164060353157107036032679726958546566488081993434087430629872225878158128266586093477105830398796547420821243690146828148227559635294388831099022000164809575849415461245602610983591966890167193807353079326253851078912355198667270862370753672523601907013512673228025044257827543570010686195761498045477273484195809198354160644809466407916524706599107087653451487486737336815456597999843574715084173150878850337809934986556451321824746545351628251587239725975920125613236632183018437810585026655447914250722104862753211530210583747978877159381346202714851472058046232870403971108471923144561867491671386520206774928502132838986064316555378421314204512471598303072505862161984471531901463541141570363854169010361935872433085208318976946068742730560219958537551632769365017280904894199368607029888421099427913521148451994068940017093626194166895268717060437931972510361736965186475880803282606194239700400583434610305104417187233318689773576017008348370725858004297094962853764802632401690010127035243518525459685897443351004796167187824010250867888215671836727872914408791900557135751157724189028202480629015560573310377427707052931321718290503549246334541782072483496526056291171668982642622136142901687697284905014569651659267485066402404463971350013954258143612797831077399305582171496862294064399780937993356833726352347251789310330433566060705296760747504951328550671410023196752380138741136894729250610249549171985414711736223167253096455606439009896729755001140181827874753541080168115711651532606060402573113697381973145969252703514704162113298046783553116927024992175355651862953483170551101160645942824033224826308859323589711144117770633914027471490548237517177974049241358670955314738964267820453044821393752362506268227563884226938346493141822310459678453934946459550542034398578522773690766301160228670973226768808349875795336819002847333441207429906052962343565314932430905399406563876877229943192020186465291283302605524976780434477153629397340026012532344042036604243439135982601281058870850005619413192549054356906593862543749603876895277687835097226131898146143417715277401387769456359271430229760196634230475693909794020936552352918364548544934455473567693035240713060389111329027698477572061845073480858804192790719262598376949838374651074155840520986469660366501488389062026378579418170102612601019536263958608663640779791144625358696007483513726568005255559315565573271765972022879864772413112658413118994761804810970738038307086076310421853718712076361966296841151814329035189817289008506311968431219490617387386571435087278169189240442964899803389883909304328918560218214367399637573666885731611896037645900542092491676128391114940269727719481986882943969837194584862026821151886398661580617251661402334105176926505006362801314065359501748822941141316289593144402467750422116887202759877331319170953037277506953449079678321380877087624883783651307606046399123056001466181744004130790973750020493631390890040862946530555899175034022735332128315893464606864165774197101277633642166505518321979894223282148922697922418151625700616575455250350811199738333937200310454979986317738835124162436241915751885078379383170651591631171445385975844471510407785050752997726686791873305040997804141696986176079725444692562745211310434706712473249687241337669251648732955899003146826981366717368847281360961775703259747574401143392980712901701073600269365932441543488283416602984510945174208406398883054180851311980826737230815414617102083428036051203841283582807018256724572672114448559682175284355617847988421407685824485630687463763905492324742041152647745499554530953501369770327354580938271418122449768222628823338084622515679609347969825373876163484747906510034722709374907493433943920095043659822190160590496845825952174115037865184602787128552846629463443068777248953332517274253688447041733626270060199222607059417634790317442069511271563282931111210905023028083602515891142603414735683081187954915496579530333555374273916167934118096488878445824635331887238211655606076060342509220660919044547677392312119231637556869784447298495351903362697865855863439839053123769035249936826854330773221264462004913992879856140236314967465076484611515121939136506811849820270679976937035810159258296601421985916507140756012659754674169797000424720678772857255710987090023986856453044063940266280152912545394554297425847798249353276864788944248625801023340356064356967464753163926563588773175525530242451821381369073937653132126864583080279208416262647228352431589498218129505955325798357205797082098544089868751439286825534025554116568105737777714079090322312360258330813025400844608550458347982323350503725559482158973799059536710885459396373275932975612328640592137202951085960859301342094047882589884218083148605202561966737630686577865665495599823233410573951846847858747988825093973267532690268914465017586196226280510512659692592248228852412565463859140636858742647593594999959132248432280218453047553769625083406779799761334023949964992479838931928059099873656782346855009040679284660759578351677945167219340197544242517563705100666085501422305787999093987070299099411919402009547264621056940695013493210177590405512196807771450253743040669115567317802068649498571770664223889055907607556933702745463687462282775172703230643257958349676106274072643930725797259624601930185186530301636200038197132044276302960664695198070051059247428368984854526975366790558319152670603413360876220275924322702998142428494818411566941746691886038515531062499342297574097287709630427834001716997534611559013920426566966370091981492885421832112256170541914626580806221635369498906410197561925047168480166835284452675362126049318294323118097219276935461200964160938595943590148761903998763016508404433739140155811946745818106508138078766145998396841400371247529976244878275789886536504210212636398692380783073594868772112038189586466444437684931620244680677534132441610941225183523918363115654159537666385738278725708348630245481032961549861286065364833093761252477329912962514122383668928634667254092916280517855405992121093144653646899950683365708743144871261602242851333135904602461783908725852531091746434508375420522142637362663669035790756465285971096429310954905397946219254058158327793212150026057700537869169906941184761191047955608430059560712261857730227408722955992968176081369729074838621959875910150766644884108950081972027685504915848118025268740511705890978550634001715529297855968792392364654118582908776671863871802075454623635806893549851884927226704747403040832312640405375218201138143754191678971538178659462076136401071418221609264307095075374825441540168447958186242761741962619302521543812747127706349907074935472908859912475565065734955092003972916458999206041521069461392941781896083198451229377577220786213133599546674615155651284620407989925485739405117670393134748810374870438760868370021518692134301624076821052527839955577211833156960486202802111194238743053978589372489317094013331884150986982344224997091000106044373150319860534556983732501934953257856451057236636488086916997179001471638878079181533728589108121613745998676665238186263994808852992066848710308619627957877318037510534541894246975669629871576334407229243270617477939358074840921414179062540951277697731182552812283896935308249249894467057190763160387831807967351808524659738561637401043465852958649078629474204214693865265034589512305412807087897076462873429069914825455931125584619283209714084764479309302988310196593110575177352181289952644844090376644128958364376243165895214111688750604572652501197961024702718295725902381193877693393750169294005833577469838467603785498952900078818284927012125854423457370937671512441162821441965331154606473654198931376711353389874673233201015314843302607973066113183309287808014102675136286426298831060825014485298053925968496677712044878776843167603438933684272549809027825067859899678884054708930392929050965142932246514088282749497244222907308389578852480599413528683988016799645218414543069321521011232266962342633820974322521217494605191609195328016444265031828311431466662575211406152150097953699014266290513298867655168672842773955150511453628660701526760207695046611160643535815652426249891934989538449407946716203659523215498695937286801821346203415378800623254798795504305557342344779066387629367739071876787216304889647633696541460862069222347907697462010793879606561654462311923116612721268499472319379911824013760803449595296732978278935236967783980288728450098261304719882401620432659660189246014341825211747126272980575422973946798087004917129395048853389121145121474049506240133657210489481767678028136014010403020652400880911274994323220931587787011957456364072881122525281403725123245894678643347515091888221940958287125249386356646289105520958994402393473079248237453153641186622299669315000739683696473812730763926088234959364227392591073800584149990210766303550611120340953432267125937195976190926305681647102139925736750099402667027607445451762137996185614669146987093623803490559282681585907825204829809117355566808653021705128107392479002282612247738347499932762857952650469097872699297092138810260864018963833127741599030679080694627564412103095484276012446408340949003232392001748233214392475101338985094247457486247683667762461250137948466494776102413238777428450263707681403463412992410955664519789315561455250276226395728921935818775377011271478779476305335717513089036227529834105439909284775066848058253473597009241080311268514865556096268299515122460702013290316847210959297568671500544847246315221884050168330681944419050717357925629527964692593032429689351851075731658772349192503944400364110171169986605040630715167528870246397076993546192443287576274052387593679137595444878971569336855457537262890145301639352712870242350518193490531547233600411604132088318157821672203741022313143607329853195337376025619166263612508709798274349141237019314901378839849535470551925903485921167643207221479560576210966521773717319770583302969857750012670484326829987115039469345728713171837769655506219437717268177253747830934746877529482338375586817005138372380858840700539750008341937140506847147255138246180596298369844443774532759220587103945924209992685861294039833435666996229680374327633074873972729097044913189206456328511203481048643921750309761656341717195012633144141234084549649930237626665916380592882699727010064849434720370446502833809550115365241664021719166706184399737631975035261411992851646905145446194764258101779517094464620434282396049808583282460116690101924265422446132135380066294009018781184489407278948367877488344572020667243523425260687944610443626388201536270362046341999595367881153779064404430882895958661554362820118376605327987558572841448587870465342113213774317096423547904611382037850190988834129626980624890222085913445709821006326238859323578721177312471345031881626257194527643991479301573786553705221559796276827471906313398304094124441042834616198099882655271955617524817938258649368399169186015306965115828729875402892117474794879361231137113981380218390959847661704316183885281091753526429612671869577288893145415856583088196505519729469650583449492204679442261716885904134683589629075455325705391406531340596176892717770945655905842642344687220626927888685776218804752455096234196848917905393314860714965758671499403481604823286625566262685493499167954608434231830269970124805329084275918876065624153272957341863291483695853701262787713084849136649265781840567816093808988428529499428142215410023329669305312736756442582975939210395304597545412273762965299485723054124314553969636326410453454880259898484907821695451909853928615221764708679960536460964194187440481262018389118371754773775230238970352514365039501843801487031474696977244005670882045598185392312075879208377494128912747438634275444603298690684255241493360387620542971531200611087244516722405467969034526354873837740748337366924323466120944509425776628364408736768254125196269672820962070508865674428144448581959923400589574795647118880537856039825047079336847678202132513329975978936652616928903616584112523287187597074067459292336864139507664486203111169003757611844548539064271428595197333442549913858795940159735705851694442111964545579953958102293282317856931019162428767569215305952310469378385007661516340409878927796388224506098916465583184578443007167887827827947271575396290936870887356712048769092351227805923818218035961288834844910753494177261736288907761228730011914851615663410422883147020360380871900964777090605006648595695682586491335522837242280734447952986660372374330456226822567429182465468323956764969327063827375641891930595147345430376081081046468029144017270872212322139626637038993623332529541389154455111991639122789197914290794589230316721280904226434737309632059276980182136285393196876697058996313846567247833446980610930685281503195208417997207311884812119877317230779472095397305538597381667198008165605226173571279324656985532626965769541751110642080386016099480759054237295505518610273024365928981520420367321256285566160954077270736627488971483532347384075562351277156022110866073265361405664691250969383483141058494427663923719484004564403218222871484223057324171130652379926203582490390591648473643300871669065770485537379674339680070462666521921160550907082562697609133903882106786476178980768673776947753693247555790686498594886631652838856084078273092215982309994118554672400355301670589180139698438128003251967393455993555235420937779071232527253267828234956292119218658933313406530450080753315617522267236898200422376820961332880278571008117002086492478373538118835073677693647270790802733696545708009808207924051446388165887789158968894135801055867109732875438711321481147442331244216863221696320289058512436262169367912810202122520897799810173293598175657523530529410152205665714203914197813105141522206202911162990023025116178610324236617269101629365179067359263754866522864783828784170853255605147625966295047714804861286223688793386312890584835816899786183619030241326501025275217372276791056765174472995276569885361746778609500202499491644957597072424603041948332350212374798676453623070700944162613724739204201422773002684478977659528210158879589356326067373395050498607378792976613069304149199306624483870965303743288302360271731782816814785878651300933569943001320864578128490102510069255796764792087304539448764869839791870516254878992019371079617613120360826996014749031431253084435990689408640202591766783384133322357833107055691869173923189715452312291586482868820537786612077969587746510364076789664709173583596089050096885289996037454436211474554659217800997804779749816796269229783698745756785712425873040896453280665054340407073889980808767061560627336947458616647584542791841447224341016667841099822381889346872075918109778822581254428847483549735122404750040070299463595188656095630568065143993551356234128939011036397594475966396731898839751495733785217792007766773427426780496514396353711799472481211530431105202904723343713199598548446754126050897752485177136535470194162036742986725522399195164778686774665707523450150366238351300203675908492238567561808628937438467494312850364613548588151004431913127640185002625272769144140466687052086903229199831203285806493563339709731852041825427789704342599729331567353736550483927028069808301329111042344602161402014930216053406376963369924845135056161325326728118130894686522119840430342520849008762553988672591389231350607113362375112994613642508352344320797801694175147321163322411575381495295999776427473231031594142898521179092171270139802197634012900348881799591960550791052221809961306958764161407773164537058558422705825833772893698182639631342905205078252764346905534103090794894098034166979166603991891220518744078944721922222510265609769176153741937708708785486975140686237178087574862917139180994982383726116051888159859918372591184122352800046711782248063550210230176954902998775901771110749470969539945319457890943677473318730801493565274180680694153642817942345759877477258175875617958209206366447529366799672546686868236241627447246449543674314699057997797342871545977037356710241058751109142044077204238589315654154787274406603151915901091934066534385341772576284412075523423220352225401125374059867647986854677502456838690784647807504562450450519100232892704255858553051988028824186740618068237976660780023577084706687825997995503614825744592557799975360721889757529222881095816470021229759552618312007959710874071934292751551239401476032381646844004749957882923436656220853987296789797124284522354211755311490710973460873360823043001932454025786285082359645900550413799671216719297931158044027314708624162295320928628756607379816789851830007762644732021923223342703659077852314423007577350118050285353500772526794751613201118165892246703029614448193512922111260263033088498993867915297169423606015847180743499560235328479631183170619262281919262717879923114714085270844480761100265378588269558507108171619241072904648994380711657731642447363084483264453742184591271305843214224560284378492454995193358172990971929400661160672450998956105986007529124058310370333117561857088772040156972215306913359347393816641994625918494697973440196635303114917653114099365770933571452364996722272068891835701861781006398590831417415279488155825411349510511112233950658674271622294815563795758447855468262232761742115088845803758848164832274898495464545345185654779259216898355890944941277388773082322057380189740476972486143544349491078090958916078334630026986923707704155293477792047192893370668137534605736302965024340990456946581848944071535164074972784403221679429628452911093619837842636290133224528378971343481721010519239684982445288679525836463543291024349999788714202903228726532950073416418917831564588644953476895706804697606140723954912151768536461344017990325436079634780569580445818938855048740043222547222741746784514589448463432923828533875533958072140950215965011115757483689813278751955461079879626644081460260317041624507529755488981790407491718896619324363347371958565537671260582070248212756414523921473632038188552243270027443562246763897015326449272227761029901208814381306251680194222114525790516005433655544656649143118689400313234328177888275555211115406778745628155859670514706940559422593131249868039648330090641548096199529767658475979740895752592403413132856930555486875966745153664469675051750100376104397343539385679745319371365824664883928806083340472641116266547336600082060324325858906271669849824901401016797096422508365648613434925249224794586637355223326401187214639895462867306592737638916166306585533625257834891708063943582865993174215340873809021339362371551922668924587392348690536844411536701148125154208129167780106377696084998983157547034891343211848216404802912747540153337166215423500506427358266885334703590704447831634933021262113474920920693846379657259199505608979356717479019069920030716274989908015254225204097740802515954538063766418619909278235053287785294953910168171785986626640677924083145749057515035564855420316955873702068723531160283797839828135536919692932186104292624937792130619477390653169134341500645739756500100186013068809228291826688924118252112026215357068317633949391865813851371820488113138905891402332592088224446698444735955299518595061195462231118414534057677465500992476285801446491488642903505311135603685954243790037039446578533899013585392583647494025418623927923655851397930182490885779013095620040730543929900531400184896080006168013898811426691620132704445146519737945504672820739055311901378291345004220604794903803023396118681908890330697542145506934848573140658724408119796245932160424626342901267223325978497758301924222909180820658915871090768934035423555923983314579279499639808502561637624381611292953422869277398283946910444532730877867940306015385378826452007870844336806464075976119762015074397250105579535568177253990951729219463677780454257742550319581489934187796793290594907136075352222339038762514637236314579162398175711016356428744700269916621452712870649775605871233158136103110237860969266939395605155437843561508411213386875104347700535215596022911289831991102061006263537315650671350064270959621266462624627646857835373854486198986020879506772396470811657147676052162551280747200645773413333520102703781250392384620308531244783102347844409258517124222582980093511375263472013510878941877784927862878255506322596339341126321110554611629292711072652857608121075433041868244419776870689806039764824519900050660336996610397106544682801526744310413846075792394531275225791949441215539637465454629118538402103456243697136512427123128288577362937961229772097581411366140517729890997105327511641673380661183473354361487859866638494978982225690791052481446398246803815241400981603192298807505171303737360693447323862135582530547787025586226697629312287881765645365204409372986913397226822953782202525323584919179322840807960271610782176049041286592801503676453914120631132112459195698107249562071330391299863614920193036541638676020056623005546844896431518633277381363894038598869938436145864549330322991363328117985565345843860355782434904230332159952477374133419586440028741388310322795366299683326401314858739625527023146551271523532121459373698793039899738866500845237129526494157631513254104367404845466769302008623916570578419207249145791067410443180466359592736677439023853913925166742543091616959871772058167549919485909110846838219918457870019062376021311337631824571657433203414648131500095447578642128132099365711574358953602466007970187691473730335388844418215816395461210699784950426668454754112000610009474945357057212018479959268529405740667639655173928432910194220091914798795924735546915252613122397986616550171280403556902249587729382465341313349389207054258592124662468210020438381757870106784969373846441047598066227894066148783580453639726308955713327758757510208528645541015130804758089577845320624760115404326287189177607100173192891093414903147406376063167979302806642262864115829515750734425962935713817832375356902513406322991235107781652268226294738786210315976982168703582743211284059125838927924849476300165431041058556353723293408819100530719329103686032948492893865719079350752158356534170208762768046851326868941747219124718523441992921780926405347399308670192210202243819506576104653544681159194630691538777150261399878208612640384222698179601100691429764495591765448507952777732328376652958367915605361276672343969240596765113845707421060559573594467021947400082883345559495522891129900781621403941479203197085687057833487422171648671978943155175455336275034570229204820644620277613198862519790374641476489265872625914738027913647572517953116530683933719342953540858532718172363359592734864834607801097840520084258910028495185520213281736529440681123487275850011146149943809259849851859717267350762079021270037644303244683509994794466993439823879963113781978589186215846492473488493956806396446401084152387956054260406459175791737335623593499734122138174926003531573018655027076383771047183203780278083543875679546352723566395637885681366128682466167881292385833756877316942064355709683875649538999805678016226872787949555552422165407616845850704563595843506092717544681431766608989908772422050440456799728124849607672205335772331074438588585347461636359025357636208529488838169373752002378297956050833560017270536370006480869159605541407415303925088126550702967528977088844658204118525087327225594342044532537618293782884650979782644396018494931782477116512915492467015411253537314364353101536799906327709170706947335272388232353954282720830503879768820551940590826641974812966026056212401951116503756854727281174646980408629558407882381045117680322001198177350987530163557056614520170685246044983911613093204046764243138053837302966907742143176379819996348479406107251646897734531295042305008254913470475427900319386606900664298344720479131442981022078371868906169167650681853994096858259709948053056751320514717051533966645426481513991347681955842230868766364903696878808665452335663768590595961729242095487764395395287144945376606287252114339784232879547941132480049203402017870356502413818761129167354863817182071674803712578690347060226521071635284709953887300947842521467732386852072197864065188422161740200373657350445878448025579044054275564894285577891895227902676461545610896216251524237938760538904723400193620097045820319982719512204701777657954798370781763720587484667427665496143981698470726506622339691566045114750477364672176235872285893945534686150035292893053399393081756222882776501684275784262700435243262097463334389982416068706994529798047260064776178222933978416393950664666019663500328896594482817879276818822819104841818086166372274109274054786974393765183033979384835974514065981577248603000661711549700760262256767604905988244121022322078372041185209143014968609898716971701895366159595624340453592305373548310049944463469601247013482629276695577644303827435329380258953593915305206994300164476414842793198629192628824044367562133546035847923719303952373284656572328827102367307876876641044256542120476955697829154882564150952742880687536636303947698522009224569176769897701593264763511120649705857075051656752086032848337425241592007303114742225232659019248807380513787238236069592314211024638926051519539594263464567768037994978143564351829359153557771835322709583837944441921365222300039073672822470221690057248635453537918225294722759325003375686506668415035467981374806552406040795512681135359867669721559815980177443696881173934014240335525357474425817705118343812242348186962142703755815188888750947052152133174418670761138110796528058567712414264961090314219255044551587949847592020251316672369670325236269598402563884500176279191492466009309383977366692667392845898110092397147485022573954665100604228338913701765826020884637353656741926894095162017409112652551931146843083398002738081473964063854817291650715282319754386767752186186366349660379398911549046230886730436686859424191314012561019126283395294182704918493781703179163015800301549457598157930721796614149785265436614934043124219820571363927919120171705344359810957327684439719574555254376231920215910131075175771322452355316887284721187040029097662551248395781275301276185471889906165044414905370017065863632056624616125223257856312683388554838114790138602290507344094644458263962630731707294515153450709040191632401461343984390387118522602784025015833644181688605027071876229089557814724196799976256100784305916807908857632467432902139601272588774089478262558841383993326802914677988789205940322058685816929324418877356213088784344167680488937864557935884369874224775337087740057412133610623394052164983497804804485077084997508071388215735920801378062311615625428715616355390430985487706248409603831129151630003012654436045063628878157135088190405340065384784348591666696933427971588046893046000152201336403240170478003881271967972967331823958766305954491931292181686669799813228664973104834133808223661918294736148198861118201801220692552247080719893039036551799321180725674634254606506572067589982162279146493727991938344921163892858342309537106166214305133245403440416828589928823833187534662280284876993933356417989890734690000282199767665905665595276364079368769808663862218334094528209326195697359434888380840513706662494522662302723065999059800589709752153001129451529226510575857034193057842250943199814494167082529207566220019409424179360212497586340830539355903801751490180453033567040428685509384173653634798223604216791061977507773252127975455950535559538915608129757332938980811272357664283481378571428601310060850401502602852887986923329811109882397806540751020524885433371369747789745592852920333635675395611052328140164630920514857576680346150601016513364863439710734729342085642851483732515865081022220106315159762161575758126006620928449079342175557088258775959500300722947517065324929676167762677778358846017580230068993234826823381186964428308975701201185320435304502570196212334240190747843753482791488313904972645231652345741376447868270729500784929548561030810367113887897485751279623558147687994464412006485485288181778827390910842632817088472735838709832556079070249087623497937827563233776027549738716932374967454518081979981242701230660707235435539808986215035867806975957162615844346619472769303475625747645601738811696861116353536895265794818022452677094598525918686007449802899058413428855227630037542682807736920191536390171469248567590488520235868374337981147515904614371352427063869599916447911515834056009370754723924755507359495467648393447333795784951726475775541956497070421980942123494812845465813054014898791460563546139071152993878798787001883475195419841766834885024060968492532184914142431303879422850741874484262108510715145064424219392494009226810374317613811757942758342139224448180146705385895650639724044704715586746141297587492314484942175816674185556120270078080140834188606875645016152859596707462235776574010612885967966559190921607945887116663802962239197970810412931439298027307382991177985845007557061089663069555377517128351203624905337172876515531340009955732301628294092435835575612338662813970063048112635920876704694718576912544088601037419493197036986779213418319894111785299770396598743576756465658524466808948638301192185324287697661137155568127023380522264731192238220635157287806982599610547305425136594840601341143714420107642944336950532299115918613649291083273588322841218797929580446284022391654874210547902425643142949628996216514549904053956928611393155065592415428752623202607177008737936709583877992846707962247940948235323555344714219458173242225631246953840133643149774223047290708082848303618130999710164177389501161567562753466492889287551114176934705070663693784461272796993189607790514957503532577740799968298059250039628947742273691949082291390013633541821026638826501973111303736304817234465348711557903108956359782286745931141290265625348646683736642464451629439560430215859972482255117566011506223680753000918545680983286740196352323870431754237399584216020017525505536317921966090494202491318994219753595204903584029378221163777400028683721499412964561533406059564434765854801705252284376824177139994400245181000469330879867195548188352074445353909221073157157139302526146538984702997123207406608634684093642429475689852466624735564642754287122493271767696413752990085067112881290523402759409427930058466976605779479638386584429299906702310697550130476160594518214147241445082713761738714082301909261468169585177882949817751772327567666969779865998818495217524679920383059653018887271756442232500731687481024838296269980949219862800399637732033826170431586194417717981894682130998593306971446147341707585900941250323635716242161040348327382127007959491845146219098021219912001206977767919879554775546605616774684615923286092530299694572242867741155969580656084691952329444108730149591685931709371948514272965107795850000087547914889882050961032940550700194857970906991220018089746633902427705665279552264091740292935386757958408228934678457982635412632029158830874317441893634378422746275600354482203727561399101756644665331283454125061396739053048516783810872193178875297524300271357222140568019509730485889153738413838741329193030463205272131602951704874201432868084316420118161287587401542341156215262475855487004179031047835748520153571624880746523013269210494990104250370027087434081543877794454031470362901468364959084786168055767943030107851254461986133384126808486402620139678542936135185001256882557555573017799477059491800144245729666984876557673279357151870758291165009961191069048656493058823133373447355811986581213480830354491779391137725237605648520900326968332061925800369650399087001207299058421051805206523464740758934558726395431457153594372972747460868013873353188454911143267606825397628686910444154123249636343715311694467287273767486966946109845294117003397434818823848779505010751152156820837856638341762443649948397489978550664154732732862657020352932702208821252552180930384545253998291448886390591256348450875378939735314086025490082385446616562502550339329249918998048608030090428582395511383075303536808481128455986144635843084438484014309788879254209025105739795281818181769875321476356439799653770712670306261384932394771221248330139120753707370007797536077781948636449431753520660071518770705942250351091748895338367232165133357342885931266719021611529337708304976691143627590585540732183100493516129971802960840385727263369753530028223305840922359006668123767742042747545958876461398138475828318942165875338842031275536508505176315556093704450138127370886747307654015910244982681561708945485481361663050053235618921410453295888722036865775096148342824794410506499184146340069311893511011987551994761163488499912853431754312231299713451995844814193690284397361012304660565400694155875201206178429060034585991365596718931590594747833633897663467568988485344009170885417757143904125064042071766393341974351963879603177142822565781147856125049720986615986143101791759421434225772089187162146118158378099449341260243835226375080084164593327162561832835581683060425278699651959607853729593474056432418386465173637031082696414266841942666002730485272123754751277393737410239105387460124647410939335350369792440265222461320705058615537278676506189706752090359319603488704757830121256069692734938467734847129081153655387906773905156867160295677883382344501971842654198795927528303804804621306201003643616621280454639546665853727951564703667780392677991698901196648954041308067394037205272595348280418124868153313232199957410567224782655613370069358746821630569140549540894219093754615417512694091616762661820269288958212366517250380006725327230493013529400877764593427502764123698555247095028545027131892354836041154389595751033484094086092818398340358128977214880908378657002604981344994364895335591047018782913251457156985691937954741779200250500849418202361051696280101401124115810273825628714216683648916758328490442624676620559224874437547742462353767946670740975343091069004537068865825308176147747994509076950894657545551779713628057578963145950792033292674921509772664095906583282457914135323549917850630626462888408807822389182609414368156491535694983451549431533658307748602031571441346989097918721006986462199334475481099084689532555868782764980214354085303589940238405210061762303866458312113205164334171906949359864848115177496944659227710011570881319742903467369781748349585408741811058053984469767044972025686556833376092636968147894126353288590683778733966582772938906593949406117117950396484128605337662480284166116942337386545246975035857392556448240353672886526049047338173643769042079246733546836427170831647448810527406416389131334644972370124405298615466887928246250364799617240358984038180187357696572907269768369627236445467516612797536016912637326797140520232432316714339731357643528238114287806266867969278295058718769331850322765224472409107863348143251819706044713953513418451548860990329609070098374866613178640046525851333387355955046248667772609621236382052589156479479479432886851144830012420690640421932841763560394945114772844238693642139929078518413659441644831316500837436970127059106898175665678407948279897160571763440846550313022300513146617210054000222680752409060124156556786546283427387944405940620703225125050849913653075049960794105147885920261930605398211968427303768631309287815792977593862826421865424165993481820371022371804847203885165959186036160091270129529163433660791511800433513978104742494785613355856566127004547143610056908114561652569620198284332546536048553915539461083818121365524589359540981776965757643050977337257314164189236697868490732432264798727480205064474031793136814348624049854861487246289329411907039327986495526583921228688750856218981437062931174515986590578055776279257244972470082609056383432422800792043876363364838747334416353264203125575793970053327173613883862096467020699620325037905126763578941671311020979106438457479339368758858163686605944676170155462364364603238981995018168473183045036675461896257489105201161239469701451818118004592783958047543403856371772530099803298273336543475716029137006859948678401438203818223167224486803471668256563262040926359763407649889465289761507439248116024799122013154039880128029001869303183601804569655621293703406142910977353232648405880343110236901004048762634749573659065955201921097244709157085394547218119333045349436395772419658069634038547772966063658948906333656020845294623661826828712728604502745962857252828789851882065962746605542723326787471785836570911017389550834692861181079971024290276606743418567476783823166567164592214475945315181409798634074710883369212875049643511610440937780504928181676624072912805273545654193319553955889885265390087012744414814913701040559387340076703700761637425291079131655054361711845598058040280323174974678648830875880641515716600053758322317845420709970901608200056373668766919322058845674832534908724415058852651091565712541000273824489313577160998083451600070389934610728206277280924818409533612933214288325770541307712083840790143435651234140271803051055348521133673844557086587167089956794361645237964335429983832197996903837209521141905090203301677145054354804730702656177420838481165949260805014672173927845378117035734238724205700485718208241761230791672203524496605018846135166110774103626802659459841139229653208687136194522489552426093690954842841331738153369955849152798414124688369943056522016243865593507840130408064202382225473364556312426202069763538200356511463631932718947275632973650090223208909594903683411393707409228858481811867817161215934488364778192654583806664357465482303785168227850366554339950434089908327613827566158688421998970761409152427637174184061166351531769189803038902853493251168346365608789806784369503366404244002908391693213583856199093683954059920046236657027930531989348928846095666106447007851207713606392011629109177481485565723112724771704622487532772835045296666293102587468998723035734088214176311005500165761928599866053249944300558696561564893702762422873325245816668288082340058127715904982851309906194245933656054638275587737472399581526947767532054401335831600509868929004957326523063058300882134950462423628731698392953991543100041183862655139576865131102727868095878760971256652096571418390899755215030739766464693046596727353993285518590305520064138475490539466666089444484721549692820440966670920070599551523095100784862636568916204600806706019030217119012248828337544023314060633433700143930697680350888232145089953036054027234926953412835235237573914225242211987946097995579287365513930408522142391551333857766779194080028924955505747692891555059578005508215228073776376106383014967795276680982951960211476353511965532089806055133781052635374296966984946724567731712925485927429326707295739307570416569802345867189605768120879263919649285408561580234234890752792760534282574697640183421393072191824597246207918141897551687285540161500284929320892640444761785873562235430980627802968800851208237291330746425348941051803652289707342356687552357569032972787830183218053009421215689917257094482064272951863749879018809059253844842844079084709226276464928108693652364465503872518549335678334625837617060077530170894081046351203379442698705306691913756372696136490023802978804511131030750380727441285728335694348725159406980056628580247788986441541053791590228041137320448652366636422382176294965850085827592560063120286075165901838325339745275538939456496680363610542840577454609105461772497914562554098906524317425930584085411861698307766434966724607334893249304036613929690266663892507594011428317472160381161575631749914762159224500035103133404099088615694434169935045094729812734077886000232135913747412807279373647989583257701286008952568769794790219416227512158037529807435799925291028377718589632910076681398632576232820810797553142067992532417876014968899023098225761092249878893439762268863914732611929147577945493431685717349706792418896278383976072892007215918168361785707357060789720844712854765425172882190958534704027478053545429610313599748629993639184365756057663535544792839301783724555456227256230740022280905334989965522893668907535288330250002781094794144092667893347736103239030355060243440194523762769743990079692125448555608641078481730749114221577831377717043685129413976158434355006379114167706956070133179301503424273169258245070541487109959022050781993686409193143781251807582527820830329704162558274381295994285700505467929040792315869357738158000601725976233417543893905713327716297595835614278570041745453914089035227615787401395346650093861286675767778589683356550364750427102198863207065947905487912213587655682418913565852544852810039548325151925693957926102674471662134075874176463925457825150273203673159205741972047113500540193757090877424639753751204873183386252408604504096775992915909685333385126132250506073816511519608785976855743236832000208320450999179043032687056486023487577992386082901841286087602423133702469167246572189609336821888603902099286905622427350645892320986576087664303303970377863695523941617614123470073990658374125408126700614106621378426228845871892261588053930271740638957488564060074563826955410925664578472515688064626090739761053688999849230012215546841246913138497591469591362058809040720555479155658051347971859683052494782706521206826714472673107279315543338552159571142054341808007974534820471966934765982773818123170636983614984034587261855046212383404022180729323689194396485733500053172964119851232828707599519893632600020226543210397488348984733352164355700995940627308521250763804797031319649909515231691718431163156008817597204840449218125072836343630514489384278527731396170779160733056471423895477303793449014225912554608857133792586965851277735565906432785513237530844461575872001653147395488416699006179573603002363392900832704395066566983026124244274908006294249323750892976695613965710466704839158973686172317457810079498011011677422228922509008627641306263755332794300472554199525664289117581154040427517338262615711815638733183933198367725361459729346902457923424787499378466358889450919040103964901377886860281135011617476566568347622722511235838068695347090399869881574216822903597034048048706537200891382833418367170358601211984481643448565908932694694393297661384868155381142884531094916768327952667217828985570090158492860244946236303054191958902422387993476332893113444207630731409344459299825182383014693697046865403458190357636714488090674535544928209814084984336414843529135082382393546267916888600320046507198648166186602460530937066595289068071512232623001308239332382153838114102768249446546813947608431911290100841309168908459857775810701831241652253340676446863408281679303367052459977022777414993223165882905283531015404042848682666869795287772164380476310279824424837931319066807045957997692972109350623094692805250468090873409502712635104804176076291300915130654727404140209830321111308680609140094042225480839802924919234091264048924749844278275063882180859689011328621197056450252439452676969662240586199552257438370247508089706052077106906370351605001360285780294383248036052930507025794186910373711327396720356091125854232252404532582718820023282455756856245957531694855344350107509729204990284053118463631945362708261278519356361864011065711068622600360880086913884440384080129721310429823380959785897836350913897486258267547298349808412671513539887737914341682522985329238069941820193245524535307839959457449254339153374792011326760620845554780198375499668129357057644901380949070016577508964226981651378621862675284826913812507310438836665249845825176724114416557345664014511289369039828857657351532312570129811533002660632224135944638537803800356122364457829439701827820715856122530982429338133431109311200384938661016715940359109890561586475285860241562516630579902985083723804859880885846476609815997488747959148125528830635720115776353074227466551648498563075367400265912974552668158337082268414983938655668531154596851142674565038820368678208824991973709831803838674847085719898957011207570190205242444979612915890501390080261702845462525441145521270656680987786154041516391061051315847549007589782676440494667682697800602619649728962953881696434733049174969319859204441732113542154519303205935507192559517033051399670678012314961571278488527392996661007068203201844066429358239816674042974174790730753498318643959620288512026111559942216317899305499927756705984884202840291228556988539657569969946273993347422710166798356231048607623746403623815548163892336800357614126567767204025848475006858832462752094950909393918734151585161028378247224133205385355728776556728568233442745086370894913703027915821685549424183804737943422411792978119139660577372065260075800040225049624688728809335459983728355091370739417201196164065014358943755992053927861756496518009733242422300625338559466117575585229659245657132490951035443354302561179503242333442408349947579058225559924776522810774616592077098630782675409722107720325746925185140061117500495185519593954098741711383369532208698676202556635702253898308743544686530237051612293494497476751230300719115467922781858031023745981757542391515384775277715397635106451513806927176885472672189233582420716840175435666700011711255658162091022751016782618528742323815614044492179460141435708484141017590157999086380339204472003470872861291511777946549630677219130971173169273348699441746157562656643638485844803450326777718047896376956835014117990062720346354952856990913951893319450497271293569251719568943878777459561407312165123117496528999786154388871500725112117977052013206157359664169277454014801956967401555038512258220545321818325979315183905023326452378782096137741862506343175883996829525647983316588700776280845855051870448226068804847458540649166968147658128203714099497562888692301935082912422400721580655558371632589204474008946017938692379818416407203359355154872837207806259704398184201808907502498592197510666046061390413815263888985782390576934781317078093011651429549272526359485800015854252620800513718151311917307693550589351996641975481983295228779826407116205935783311354153457709106070995945390265580093077074768004228706058310944849085490754350774591518265575771058635023892764931381634890129754439607878094746404155545329436851475257688160139171547676732348152853303330663171871835691972633332442373168414730894522371286700162362131438690097103824631335983154572792189406898028181773432866724894464883842741845954212288924668723465586747194368427284506519324380330309081283218990450649225873916793704194139969226000109449339890378821244673985630425644427170228791818785011589400437760117649490978381030507333500830980007156478019202500815483144430382938861039701091199510703967411762695879309158756064454446130359450859558579426515650861397472858947157583531622100760058352624837829800947836129895969751010337164228293122942230958984776507061884012126794786808894891603367959303997271158997342465515226133860069329690007872602349677007221037643187301693212091983302541373646113802797630693542643074717614609416246989535752417590295789148672525821201851615209914042817557914308776699099430161242152791110970071904780137401664847450607392966672059124404020557748021886120909008230883734399051472495880260534198720716618703966775285637306518354801787647562278310054437381048296852344378194316339182069755416300715643243781035831875704903537525390724851269907164704186648030597785070600982550284610537782838024696358030266214748044228151654164384352709049086745764812697059149043982990990859558082631271179804297914769813270230249245495747307597784201072257858667278064218948387330932142370972740288449121383011396184309193731188567355437876178960641930579920609213487320557122269055960837282212659805087928835195015053433073589956291755571291416912325313394323737985733862284351541387905047997745453751608499954636175184985365049927944350255638721411675038898527899721962775754458904278342418117239295899538736564608375528364892758268280245997938657323586078099077229050673116968800571341537203355201972198231426180117885407001831778147018258704788329168209870812129057724543167487267605511458341710956820387631366354368673652470950527575085502954746606776407971490287507663537889958540091555038657145816690376468673128191841887417076070017660158031810672391546780620577588546354518991887104091945088618792873946401187084115269918765706984244545257417999693442400873547130391671288449830029125739717087328077280079393425205844988442822279856176249630739012663322946722707058260073474168576590448545314948501079515757226184158393738251351266922422196739157229908387521081891248165497540742219433673383841278022749707483987363177371958565346033996961403179425207430880635493901266079448444784223503669296951975841358753550645944534293270182713470441495833130146265356118775286213074167132508193854422406732087710766881296029680728538233179066606293176891222684372397158687704583766952292294676179426317084893280919663704726733281483495855942509008136448731182134449094328943363186969241649516145766104417346344865695934669394951857623547995529310270554392591020448306438219523078333778698440564422351738919088172142442729389624070176640089914237236146934734863186547002627158220506726809660274125553578959044988476860662534759915131866909091423913528806707148741265211711320275423067230834318546243194496051896291325035710361103284990816810210376215278480206557633939711814723076919668796348062812514552318197126158144545767626981291674625777391551955635381686732835817488037718530922718529267645675660824183120512541276630916560696435988168302157117193856210578341087287533997472958497354633168329716732290091310495906272450196881269701971074001490629799822668064174491935808584351176342429786128912500421076242169161481677153176138675675591878573084188458273167978024588829798510344296180402622131809264717065026732526208171827057534771359814245668491730903984235207233265248304397592119366674193771282881535515548581133456233768893896464939900388227281164746213411180393278331089439995720756962238139418679649213243745268590388429169507202874602106061533038147387107420694040652021618586496350727657114811618615437753675440645659601784964877343416386347159127542142036559455002204031670045572654993538785832988541489547002838728465570073755615656940792952519253259480761169526025424171872770832296840058901255702157237847041348364910733869580755830553864239784882550589204669182224437485571128750993606602387561056256432163614483275986982282507026530324180313109723857277979712473546448673757120156997257379226747521100700835202443662341309957604860941522326219147568490608597684212003669044897504635482312984077054482193442305537663670339628685666134049586443832071159258501212004742415162886577430074685088996524432436885348646466759269727328735798390668614400916182150126297849980475121282006598382398510847388497203218337262367410360499974541105155496907458688320295837984087388076225073012830200192773668688905481996757878850589177113420875689460599411874124387883361632369953599391691031917022915083634194042816260791392374670117360612152498968662539471754189055794729848612699752123459651634110116106311447351441703968426792464727824518235551805678065402604523719446927095117533450198120653320658377791036345724089199680601483620365177599485114228718626226272415611079945877467680840802570048999848646002839659384971696346737829393668514466512977533200995621782117877932856595879303728855860354691308131041197988586038114832607863694666465985625854820537909135983374729043088568551907762899328793698933312519753375166061464044057525700535234786639624698435327475902088569403686605249760698785322949481134644475023833465084927076364214120683316797716417757172647963006383238238673807221789387182820511592762480697430493020596776045946566908915551033186036540389644044421686369574636709298904993058840894623820931593640520471689366458448368150820728694454596444410365697349119834303639423711144164696945263201175579828487890710546844714015438192115151275073966534836808859266906442156213314030454144863303472605089912561168971425101244167468318450132878802464047721479597288093738904900128726293486915105878629078575223673149499418037742127006137737160577686906874887426702843328312446059528010488982867705451451419899551363389564088320557876774892390732425130089794021865563063817265454138912845464828152212303075212381674300680336316803264844477344070696026741456387303661041228242355322231657483306293013581422628605977357772656450095160205031586941934972267809987225477495714313496578781592865687436408183875729862625469365097477666293180317537972891801756682380943978510999073865331142718074583081744378736638351699880445711180911555793487270131102999959859441746250503419648485789081733519617837950723040311665453218728143923053091062406426585496226284108759827641573684459904284280768265267763082373027318128069441063953125579093752685254194139739977462615657986891074712212513130558215435613995408476650785630265337936957424913274126759376628279455732712559458997192742161504758838186010851083856703283555242761900501541989138912338770690135113061850466575730591109470064238221231371350846470429237308001044655673984350099957450079207132896019318852300984376408566263206503259254255428162602827692996464514796009983175843197251499339060906689475657336699082384227216999260734101495213484724891466708471692436307478606185728200076514140007324035810225723952509262729133256114325462930045136173369792835429745022364562224177250985851900950510273482957495632903961565342562046723485891326411366773799193656454200206867053173429238105160118774331542340251832763402401960439371135631287214494296546683453448525670305212363572413548744692660341592734766760853523388948495193922867626705925885599513841933589058574822145625783832638427947526754709761678193433260418162703254235612743770952549886922420687307438727519014946927247866317169919167520456612545232040135140984704373237643016166699229423892067342434704287459554204003965168212594249195665570279946117254139831062514667649193443554436144840933290741077200075381967537090837573349250233922788947348120503600505816400567017231921337796568703119633486170975446484806007671911272379114436582338670159435747048228810759619201901436697714145355491717981185021432506562299226246208928445608563865030529510115650051159726952031121737432652007429151236175913131761665387892669353018372444445003170625561784489331350885117547142820535264203985676566870755781888346899431446350202961670818696222678660827166839356116037683291140325203035630089216451060208512901452042747054740399934847974757951706820243952073066756695628439204122911417180946065384521557925309911643827428784999467376024280962746202250690891642159637600504358927445045591040842802507599904731626070320988911200221743076410032364512325768362447252822922859352304224153778044174589296881737982598908218855562853436165729818727124915870589978694909118882370963189807016577851344985023094379503242166051325739791566927597547494879806027599504753605083173273145086675847019704391238440865268042566220783918371875289231173298448489025052323145442721943007498078519108174996596206984641265515492247324007524102686599017309373920119417986034934036273810533217834843180466940655082520773411491483799682382944739651949155585610914417246756297719339046822326083294789391353886467841315766857126958806951156771515501509604492962946415333849369470697407905394400899221653494287616187175603556188146754131948449362428091108880825833453269798455200048467083380216426539674604741960601650357391890776479335257352904765420662269333919221737452984532326697278434389493446403695326616343267420959702060953151924908689638286529553139638266248824845595007285024926736705262227321196376312412538478797962232190067377501009814159050717963524040409017371746842992348620576480100512516697130649501467942004870497208314872014911142892902869485455783102180140628850295029136038082301021268854905646967211794679903286899365391172483768384181004056374280933564012898022726670839519591940760798176725145259979483883329595128023626403477188988963730044796727434010051988755099734498304831047701119647756051045116853095328545849938915897682015991033810767340503159422434232152547812840749715709695948563579469097770490344299953769053878959914529972198115605587798255931681236746508375222389351102739361383414193089604965149223975541637476518569957766623432141322266417341560016895777410928006853733440539386469374780696367165134106546598231348244385326037154324748743683576632290251413647775892339880791413449652416720790146099988852303547842702810026213397231473229179652763472525981962339479320568257504496230677008836808198854700620381669975041010885339966554328238637905481138394282445581916520987322092124685027392580886532325441721238725127875036865648255610545432606801811381029120837228785059097508020418815878890952645930942695322875765224525222123166856411364777795916759451142525611850513554872787119864477151319161463239251012638651770365987124454438011819620336578355652179879471678218088252528097728433627142423030963122006432232768522188126017365883418042463820320764906685056135265841009055197167168462339552605842545818457938588129650881679140007118718716929367196725776025960128438606957700528201054085189640772592366799667857118255063030305726728977690765194111694711638192390685986364395084262643302701272377605932916638412267062325022969632144401661804296184898731923357502568017271330689736668417064554870346065416501242387781324086226148793061142397759288772750906061140575193303443652595263427495338496309955022767844716898645177943496975076161620553967745572491011356321086923273385544122846540110384645176210858143588718661928760501692593609146777745024057427834773772107332447839184798499998842396442661503708441231598729218738577528133960215543155856520603111713475782566722385698117769356381939955861271710080624936644312332445338436098442011443749632180089466591624508372918826467281213849899097243484321404584006463435726074680455806188529169375410085361445877934123187185645726284802478477104029543837818236947091926146857650330456302216503255943711501252458450442075484017135598318382436068849682730043891627895048865081405072033195773277826053729412261822633716546716854406090492932139481399744268698878241843460628802671053487825889927242972479813393259541271913450474623032809739661133909603908202486623725022452708951120845371856876426897362808847379943559695147071981054374049486829647371915328449712994300427037858015863683634145191286631620023342423739741246406345303170067383951456068478477097688255375491522347081111611642624978446404294317271467758337564213773507355566344659408104938443366725460242568543888306599160626566133814132732058477291323926388377759662904195889219285920786900527221693640192535627422181958933158048970959024770978232763867678482682682734728388802506574220481089832976580310465805391102937195374574314657415240593182788581841528648281720552327977834049206954851641112572742755452514651470825803955897138447642053264747616978472593406682723848884443464224460736308345569611511513668308090241958977762403326675342579933622971061344946914072404530784826345667294422976218034048953799150645424910477682695555379252851559626134986461608819183655765511195185380310411654830028854113454216161344056015734974513796967643532123029922108418099575238721022316979228277396693166392816878874807357987015890376627497812400827380862758606457760702784079851192281002091732033108581601838752713133515444193408987392470694882820958114780489967141972357145173808005107794870421231620777651383573125941672574610110856569284908729732837109133244320230071518913091779094830176291048328439104227390819561843317433741151869765102218654737938566965416828903426506835983101721342395530482791534566877624887601792020214774327159184415454819053925423648978380472783108281372777777179539255823089397633921128406552175097407217299976265556317378073325292294862250141699566362022120524280484451843734991344904716032218934727642721867214025401577196173267387108072045821387976514712282136565972017562150743978712379597571639920044362008875877362292176171474089100990153458670847968944636884313992572772427810525020090388863643456086338204646799466054380655728436951551800647568634956844735937956004578199857791246434316372959475590191452161627520948557527019979323609426104480074998956673499414913921741732336111251836577181261471616311690581514333531835824855533157163130692234937722340094069946368323598492813441196075815034590124819887022204216633707161285277350918590850696203281280507067467253857694002102675612817302784330325479569245822645800668669861145338383588059151508633939531067659507280941719263277865141351461308046039991425558252056480480530930974267854267422854220600876273217670922251295663546920084470382693886232267679937996717660179606912412370937753607843253749116700689819286529978031200908360623341940974670580136534170218837538177039699267147838293728240172562551824702815968041948348367625425022070305291329192346087146078930208808879208867380678281848216919441104962606648396848330339371872198224654015178701960268141545006196048830565785654690595125756134158615781827767433157768417229633772752007314139251054507932139417175765216385283204611162055778046830900356987310728352422315989032342217581140495089815629922457659856763979501892925193895129145975559295967617869203276247069408259021708665921866426213839564649260861104815779251803154377865834279555577470180722185518182485369031206879634530915297205412406872545183472031978569762480634789197058556738467418499667777750092769293906076682711444936462501450318016882271926957960894073337643848263596970969769561046768625475903907344373674326821128706282233684876585533490830455181827573797803049714599322872540430311273499262364758427117329275085910010392504925228335938582782127380652176886591657327419598812538572087390009276973333140504843412314941604111611229283970013647816760783109731977260485955509774841250771236655809732737395169519844603313568760778240184953135612519656636102167012375382730198218625325382214976460289723946754683535510121440297539670956380731866451346869063137405080567518616922699934794872413491340187779561995823491027453252094847219187779797341521205613225424072792315431182436485106649699054867695598710780820596794146771510215938551064805709951609638976712159322612937954897740022198905661515778895704899077687015676757276060424993716234154999379086134581865217549417910179002183800838707706320629272112696310625342834708388207943269524076218251177725677636877101107329624276409022683115295514795944007076236512908179404857119702042953041129190174051055760468916204327335999252138009673383612060036001069729922360156622561856116046178735750056736684121011172806315939941110301847836730498641629931291989715567913666825475736367068313942405259169131318058268592378007054877523613992760230518214748214153297343159321528276594132996717460550124025768389607582287703264939772482728560008609576493423699307761438161787868542970208598419939292018766226718677587770531680786395603891970945763418570222257691638036164260391203168161897363897052897288325791972286342546853104161380527339359489613378352915159187908547586672723508249775777156712642050771024513357635166989238716338661132848808077186378650108156075562767322778204859421992026885825943657730132718892945242890316765711290883566613722109799269535172933000577506013912186968030831647878578008548117093069345240485654086364303304817660543707171892893199463518150496643833774314273998676369003314139817754983036983086708995873615886442930134740401319992803960919632005130526721605184613837680379446728617696514716249760824139757212110399607154131308963767641389054612130814765027756287066412173370188891065345027450483536950813115413417397577982178136879783359956802009622933494712597465745443468508150432473060667766539796567046641544725409688587790423207936408955082808944480153940523124844779965143568624573831543001456986927384266906589357039356369287358949415172408098947932595816611034142171361389982796946675550483266567993524963493411750890572929152251931004661363752634884788604921511781154670047751893856914790217450831744883026579455706085515347200543324833204921018856182685034394938577968015974662811654183107438087823881819295334921854544541261887075329747624811223284023219275051797175848003399053451270702160984295853294211691320861023574810016097494512389029527850795800807997221597143652029427463232296992425194915551168842615107380026040476060671553946212146126117805939161196243972054013770671624100842420714620689421162605364164963784280126339982118431694037783573558055348891139928762514050861285382783345998243321483074138027319071940080665985336063849330749997189514278688590345373280456806789750459819749185714121304931581334180168497601583496707046429833043776149535934139609834920711734464826613258826354933978685672340929235211266216592321399947715206469292927947220430176742851504091837151823591962975638752492746638552536886167468949542982634287006898876627807605929150044359905992956690581073885582143084328483659937551440265218823910870165047475391783486635745980679316420327802513055463292822664855806655606532517367594206936952296533373472097499559640795663716518776087262209012710549215553395877895268786804175867970860095102428267952000400515360060895213004977025369077873156783884441169320318410461041543630572478935178047997504839460042944645022230868311408481164155437147492608287966531578519678708039375969376875679719286521187164947477025300507113294581438426375871913070307778714597675696307020279017374587774818718431999978062566706813398081565575822647906557928750540890476433701851073877522352220671181694597449107777404168748666365069601866576140386676381519740058256975304331403782874332244408686263897085396668076248264569656269108236212390422635281937630041121023029418120624381387702155867702269008711033996784489048183535670265427963350527620425699774489282682117247858257639921606900532088584975684882845669791922690804317177074895900882115105598663680670503038676094922049525481765516423446087131166773241569406979289448143725715843599116179469060658020597558383494876858759431151444585858925422492255809683745920324928077563397540732013633591844763879539535429788873602392231330437737046245247249127081344327111797574791352312873007525034609980951967487139076174434379815412021649279281761692143768891603754962954043746102126537948847579010487802464443505369672336819927975489244624107360660448565334369308171734838707021146691557885815949522285128391801514826891535841886760262833327760659070067755553401499276749201484207106156942321455012428103346809313583322360106684723475960059981890389163136227961119555277676612472960989973253415724643806871523936353871364958208280565382680637434995224101266789044918891845773457648340013130740992206082047071801782348792915201924966135348545820750482310777257580766154941601560405576852419141292605058386910728996958877212014292183054132858063926513931829528911423796818773851808493546100962952354618978611757061554921464944367565676419438636956714460081183899064820928400596568641087521311776431237290077050221479190053393072238325323490133912619212225219118095495116986421368281699528743062718847309596030875540632465677850515146767699234711761878894183873819917081193753567660401907722197590357414708839889882732862545207841561529466594267367863337506404729161014238189723346964280653790119622683601883935901872933531702154512002840798452182520029358041737109470246735226622123700429430501840410319565642200836439499723201780923687940071799071338489806791288952550354896466252189437660848279402070506353058462585884152930992291807796304577379727348795830740480324828857050263491926172466374030956170117539744063663790990713760924522399784139365794321673325780966312809069012256703324727111058132275018585427250351826922104806668346680895409093153792943373850933268084439506383710058662149069185539395694706972314108281163199892109920145801831433809073284610446155636479504646682101456963974005491201236937800793189658498687356611068294655394854331250703119293098913007705882026625681135743939220313876588936419931186500477256040521791262783147595200382557435336075646541812585472872775715957438483354078166481615499394440016068744765477676658071172842184838210449526985580082856585492682802867903633766637824949806522833986503507737668062492242800039929220496455738076953779854134287724627089081228024434967588546997326276982560539235816064354615640845787537884891421260615304969558612780859158228257805759001360162745814164654760679446320870291250173792419969284435259627245690985323303087832299412607164979195625849685569622231258364447193078238836270046673582576834201458575818633926875163478846691000867169541527426850662669079994369407597616239970211953461727704934158923721287724420561674814531401905540860168090996625340873057540404264626973682258625289579902461346309100938791879130334543620432906813685913655252612561833744777735676874724999576911995250179917221163711578290882070005649326179459624013120432094249743137259802181094186452658822298856493543668566172029667261377921385395180755409031556803268530297295592784329740581806641887626620580921838367958289077740012671055406887732736865058318553422457855368168308147305011973431814297645193269220369955974505395966919911482832360505374466891745461160287308537115698979955998380628254361276752911972420840859076277931385702706208571656533264923114834120481069377737702700215790692024635635054028512905016763530403085379254987060305298653958393402919752200562853082412285218088975517558174625477738830247251943336726633061281691502753258984240867232860952184665433541528506230479148327594927676247917605366843640866998705725816392429682541022224132816812471350149595709388605895417925476428944385160528043057059691943105875489391740918409955001748891009041246591778410362058529216380611092079881775256987995882267972896917191108736048004392691676277170347794748027254563791344824985614980173283947177227205810023731504910066126286762616662460185900439093639728518472539877923326039946830330887431589734572293123803679786469468681319597886262961733715051629090538211233782446604170858040037884642373149077753907321740089524661182629037972574867450391195533982565165931880816785623453508572253083303034129233303815940337351087831376469807683340016793683283204558016575037788049201209080769583598272154734109840182659467830932559244095766469152213096899550566127204625740942280235547729449459502126230789508925673773002772450476892022923353966917107523370884773614221189949675583188623916115670697507897648957131465408566296185149102301807857619547760914998085264294476191875836899912129848896073937683738341080403984296056845353918656180393300150754871489573168579460583968830743714765197634772172266553546375543984445193346831426145205820622251219036963471601012793544622613659944888859663095143422656489998005421811498733616672716086923248249283755186637483925471358194784154830761565322546284983213267567718053963848495572506490661247183292811677435333252813792202209714863656329577297919632650072277396631028162949939849113419959925743730912082164192613042945040278512052231650237138143983500246294641442198238187641205549044260677149329003843455779170440744498230855098033830037694248309844333093330755533963462099296219073281653406815255117882254640045495948964599118664909801063233786360086859139091427266648223398432467944465773944240937349910607451643034356777273160731261320572737708210746826487558964743767260094352547508842407360105309281624962997418496096052187556918061143907671412947888392517871156495316058880900185031163764400816619141909001281059496156258374492671500375078924341410238898412861077684539477385945540945492466175861336155444189135256343248038261541685195467801944267320407789911080909132774471707848718815057769086146079359120378173189025658430748235066414174169515632129049502466823943984334092937091251757014214416369457881994135237628790476957898102388922478346947546815914509886340915439343498761300916803887335135882098039449378079662100697808146836691934992229206100617796725828233314950439168922772317131634636600106575001767899059030340009684940155600024339488012949283892975112726494153846736006431645567051464442972694679788579279153105506115615990302044899087741473345515384723248476057547098591544655497828396747111789927568331868819938239059323545348542156403418660067790329927900296615136591514475241827204985386494627271324767024009012341297583194419661456513484159767596592972492476346224555072664642764468924049532349134664025118040357778005062256686176747386665743494566012981054995218565174277924135081257450560301740460370805349417635999363425125272433104171792980650802104563052947139032707954875948199909635946093892355107587211166481277349776145655988020307044173304080404595509735080568643234056470263999660315057102383083844629467707931426412922576482263933737197572740516769657454247779508633513012071498364972113539284848193147581919263534088594644105933165281282037375265898634049876857905309210536298192157296705033083077011972744104170515075168109746361196433784796287363157553794533735818833284162736702896732383053645398467814502516744573476696255760094132337879823311427835038899313865097551323062642161314893894133467364361089659372190866550491930687180957032054443982786001221234962826858522010755891475821947453378117550550450872229918330083147420289446292997197514121766233988129782529117649552452403823494678946771456426166143712550941132563864109479595931806811719167323212283857128554339384084230151978806168001354305226400977284177548057504054835620187943092022049109611010804499607957443039456460840184354634343853539193739170801665876703145494227832853046463750482011904626109328348247264431579351402611485161229535153186452536291904643667287674475913577738802492037205721335844690421214635517116504047987169764883247580374944274929368594275588187864630585885623712025451180359642794634868875667326777261465563418860759412808713794797508480371985624375251860568291340755557729966426948523295966738242915077878379694475505185630173340326963621253728928800440511648711085071643001145603234214111618816303586343640630072418793432453436485027489836273560500964177376969669028543621302353898652791764071744421472808338566942592289274957246547710220304085676260098694872048191657217318815912296018327604400194878644932987052630865264057285610661648142399002179009244474433346138427640516955207534265962999530239753892687071507097363941748626584510763752764519053389143858506184635432936428322151291172644984027804792689068402840384713225373503035042582780379508877580703051047381428476146708280579935793935880423860489778857697099781314910725713406967519767543464576073865196795754628625922178366976313195174916585795460922421670798173583904144674488520705555987295097545484421420781369051309134219106248896276135940322079732808639565671482664350161339299213616973140050722975420163393126368950193586222464495372425203766611690064352291247394747917381931261795037352975291348795201978742075550004391846659896998169411951202362936159195972628662897178463384456098218259833889042003056678405231024697886797845192737790825980897895163469229636407873494866475577929366891741870587222699319541561917707448311455133268982415941657609690363978068894572550757848352628382465878426787775146380515867901235227631290027848703320989196867314354025618882454455554587260649130762230707866850261421207466034261346284288459337905076298880397137995628890430567827901802855147256141160692711832921559103790950094002539866370580427707314076455629402395775372359627152896404824307975144991974968829097112408425200066687352810713872481292570813520768811776389790246502051345987016885424119229135392295178224850267353049692608110672254772953707267293319243946269484691319923051421828747686376341247398887553594606203228573406916474729212276733044894559689712267413198321632141901713782082666387901689926820746410205945088451996718282925673762030950845862466986202143265797571113231407456097933522541807403422411403766266610088391060379998216870414092556631677152256481103701174047730806163179608221629965744833125427774125769217787896693209339404890321376454896809633226345957213801791566098487741564128466938326889400957256772745413358795779121670601669420486443616100897759755566258942575436135476432618769984859713647909427942147167857275752256933427512597083243752212566686137766455801323308122668101914861464511404318520251718740720993658291568358653304826366910668204846560652250082721402210383648976650841802324966271282328859530546293782987211523353997992664717602862830502935496889294279749674382643067462480627434399878040671872993220939511624546349651979674157472199100716421379978680195601913162325688191426587941775233951079174833584731291259850695142341598377648297057348470754929922951310211437272993266758110639146920111129577595120874405314748394665723580048273268287637411297994961451789724966234744320058332356560834048096820131543666313621779211702618806683659305656049587988288776305075776404863133362772568867393004637018055020257853662349298221637488783900238213807588468103924071316619456335697619164992702656614892219832316321243079325186938984235334091679318709212816981171485947773185535855121918050712413078521845801059870625069774596481569697723545419160338654925713843131281911768623035856843936197919713098790448929762084127052637069112469875782438427189308368751793630855013689589761055741853949786197591518940290265958601790315056551035912721191870391770254049467436385255231705698049240619007294994270126694192506166025662394600439253331899315238603115769244213409639522945150298772387229915444614115282062690838385564775945672020704581513910358250740869787935760623785344824175518529601098787922521715253604692493960652480891263251742058591558284326070957038791565849096482672957548238514139116208233402852718279098589380505032658250128834268245631920804517245443623282091070411513003313935490746203894856087944652823813306662627027799279155915392068310596385442946149905703497848338953237878136943895703266398361170475378554443916606101372131333097124890286416297734210310874113072544966327050379418601823061127427653093495394260312692110406735875398945921296764978448754410845806425203172807486738432341598372452767712189089248133635685668837513886323637157615496051765195902786629283067593420938612551389686564321291110713529943831750941806790716529043030905904709673661209081424386866471508673445754119132328596314065191818367347094114303876801605802885784076958133254103226862945950955022093097727347080040306834933010956570883857577355807517146441083484996845267152983515357471218924747551611195804884005791535446435225543992080011614633575728972191747486604164940363504018247931920474144407053458829430188361924412944657594846020349507637884316937321257141313798918174770569408249578470355414059659939388840723236237230789220856063590583881448332369661883948358192540699109342793857308894815290642895951570185328863853079018782726432159112964822641819288137470466732036038965105724313247932734438710814878324349704334897457844957603570614596207709326268564392431394808849640718465542127226124798714017981812477883634002024331847599423289960454217885042864697103397014352465459205854054206732127677086110127627282688337324652602887527194500002632351215725053957401694193294845444027923145322083792349742620884573201993561821631261910127120268582154271798654937274099256533561827839289651071975260102357017413962167801841798313462325349528116729335449555757708238052691929272940814032534884573495130464581829845219826925252151118003424244720508659861902016990525682512088174092859264886199423950125703892843099002695662030433380067514156459016507789547825984177637429434787614655880609081158471235773799137720213028762250118825194828587646536164155760250027467998413967014187895721999565022760457574461321002015520972287258493424096211102082161481186625960613808132762024062028769115356492207457548866508507907780789598469599823470355516313561209785211761437073233646941126858473406574545223589541374901294354389294466890108446661299190620652513724563547386847549438413990680580970993259077707031178973990351636206058047350087644268493400066520890137540051971856678536901443701253597186954019944103931482014095876362481335611849498371148363231450343118121594720114704610467806944437887858061284013298140402784258177063406917522127760881926828780708895155351642607334225700897310210936706285132601958389311059075626135534886752612607685508532429850811348801411023169788720545957698372090080213068551728488890311025596614678186615153898011840462230977289879605097297685861124386464808385625315481435276965732863315063705692177674988660130112018474411594192380461506404974681675029485999589226734278494705152203191246730398559162524256387990720747728031269335100500377094556042499091131062137720030706645763436802860945108908714480255913577480239783433704154547441733776349675174363368755237208365027072814325709628030552232562242930026028666952653716317369523345078537011258117482280117977236115622380155169011556213799731589090444002182091858849345258096253837364705623458909187669795793793326454512650130253556614536245100038981678935668272139396018994014803574655755525118615954256389221347054078264028775470525081174161221740763793894349231024573998769162045470294087316983687594835730604324724925095147971772734491036652157765484356744223558067647367133833892459529004912245858406497459206876254784227723027933830954554814595680086615814750421395028305554819842158682412267216866989401198097368651015751815463159190760960707477277778511904230118973188491019748943762458482971485640199867127436678576955853041332580233861524080937993763873913830711169999608410397892284221061760859129766787288696791623415061754805866463075420767644156816269470502276969358741475378068618732040983016228482222260681879924614662654217470626787175914684830123471901934448069281259389949199744273627467542593820654292715794852810181351771328604972538541470249531313701321358292755458380875803438353548830970692241601134765188543278140842498015304211336876606671140541289585293097184894725321239552916299862479495581402397576120133593224057844666110148948464013874160574650057195320031864504637113842617175910914125577099812038673319427482914195260826366181581503755430406491878809817426750004007746255122725773300918808481136035925509611599690351922129099829678037922071479483644717743518963868441506716687721213525458329891869382735746780240328199406962787296518509024878016946430682477043801169093279008020807669303397757418333798041140738908545186363184549934454998073190075530035265193203258241559487740206025668492413340568155904397357161388160185999413415008366979023546791525565093623588402171519908167679085813120039246450021489960067114600384932700677407336476043996836706664932227082945867101634000937220785331887548984297325831739311962900545785425378884555909003513937780682604626125939060405541939997250020222579031712982463728320939755525270067136153205655033065305872569069072634316970940868261697074421029734568045812307225696416268073331890745039844779334332999378381805072551448354927351857766423950094957754518593861265566954593070532384495280107689020973002155201442681314251348829010075850057591032364320525229813244030157931385944953766550179335045849889263520484215840946296175755636716744492587843882241047376911736322105796964816344211283078371511477985651296982557487860539566357362386186731742742064190278854130690735764956141890220700533874029463871566062621071873370260921646839467896628991417661163292481708866858446725135679605582098651284429814459119726344536797885660550634829693771705876973393996375572819952667278252085677771752921050948566307609736829837969629527871485134587051376713505659924816891069973707754443949306321820552425849278504857279763285364089843952875931308985871195477962710598432125700969755713563836067223629533234981529394112663533531469868115168809627927827342055918364393167001063866512572794092160519539867167334658126923448920687893962622023802123608355340581998401306222466041993325089244190510529355080448452158260151717207098736228484383605043231076256444647123567038682679783435496846826643610148298486458692121388108327239241063603681732505800676795165496053124582128572430615328787661242938378388338808812120593746475359011836292227532752787936512397212118123034520391696062833256680042387702857515905494935837251346514033426552729436627667570723110553465607115739701197867184612424170021362781336684248421388944492026553250996462609406210335619554709397673179645573304509682550824711047482292965642142980456530988159519756088523163752459929032572237107662251345678025020423807989535535610656852004977646621966927771406305544167324285932137632732429702665307820929105427233238519215645349879264034100258031335567899983987556486453003884912745045006173283176626286909768269034347876226606444438986684979269411724939511216506383921551706974951672589236236694501137128170195275861476072997669222970279938957026797194427758775005671613807365031772787362470946061108439298020603256032944561819609403592963389412425499056292397059777528750133682613386048763698967658110955906344040932867985739194800158460988824244910476997201187111734428143678663148911128852372562267160762962138684940054495984186813652954880833237475534126119664927219796869029444520042771826326694694655026033098671593096332374562014061509593971745682458967767681761772087869960172971783713362517667995313699866945686867309944892011211701058413609467370013753266023715849248857353193273018140026970507967258982859175031779449198578692190264535627476302503941842370269656148795802660229399182533961640303299724802061789848999948601535885444045001944407562020323339792999966392606578408680486035263301497460148382122253762512587079234127425167045369611556609358038866376009561214679712861017883787106839646948284784976106041589025210609445961891676555125900578904384456150275620330321541800887475912984169220545934148222077492843706220636639179603543139785493442183612679526404509739911702031392250720251077332318656890445951617952250807305496401359153264018409846153201108076276591861884257964124462172688778851041897854406114564168498176622808973273613272590552090428622245479755120992589873139612901857409565331545020121824324648076486936399083270131640760669625523561798054465400393600509648638470795107599894904018690608535151272789964022125749582241453448099978988665639401743737311412138288882034852558354354158719174497675666287581719672949519631227888667433150146775614008860602942767092497440632737540325169200420060084360778377391315171825795152547404372976705757819757560802077569418078907191565841624070805632928022312099781143770435038645024421647376527702113344545277823032118765687312586028552653950541326388356074441571704438460510942800701301175715598589676667642730744713395026217553506761214640308354220682245143760058389798057969736520209137052488135393919830348680294820615522157125324619109765619511006667422801935348955819864890683362917480425330877274407346462890975456788713677272383700734151128638696375903673558241679391804913650369726203645214638465897615967854164318117914673099992036125376650368942090330585905293611640340031279508474250443672928127339646340545940088364409696177362976537570118073056181421973179618659085708072048169967316788882006662661587560632628844056593249495438145948989029000569198885898582229974094934169556571585471752482107039194130715063210172351270630889553576876484566102616200761964085241922359730681996748612043787483331960053749979849205899355055971090934846125325456444752632991325583106118186936498670178140183797770873361267583803967695847001535127175980154401122476750892017281394371284681480655428711517185505578677964162309351554832558615985576542046488932389577769118105978839235686745013332370452934216141742220588852846796987605897558067580677476700740842952073170764464336722746984179363641842549952755365982151569847434213703175052051636820592399183862309398353618544584401995391108463629556041496993696056077876780556203029815175558548978666546082017692170183826023011213598457339484982748323170356550341009810301546393143008233986947352660033618681164630516543172615756693243799454618371636294164412629349053533980661039591847180746415648227858556722852454017469818288362191967326235847698459483762279822280289670593397592344737095287237103556154192386532406283861869542752944136127019832164442631656184035355621679098935261816993072586430493716110552843215459196338887101956036212827152605562082916033845114323100393115769836116115666497235599566693225438428322524426091742014810537312774384387429648939299687824933113249193523283986860323416802585890896280185955587273321282505554768443260081757210928262348567334355262092526562690078061849457311726941125841539290178114298658562995329474750860318929567970139040268767454041531348328596468759975611037499381913482377289080835406502295892473009500884328744816923243840458690598178994228277237925600096791661962182108241403096036141337236205917799608130667666643725622431237715606635517591471271584026236767548896493243230833989923704943081342340636363487853049296576098042813434718114813437493264957075195840265841237690820321801858298683964518859641094304008319085095440663074318903078515073024686742912167724521281663637987549011952238229898217200477708881973541627727806570836792637014292339478230437605975275466141903452406642657305321420303108601179021121673900574303323271349370834129858727590663686937238054077083204168592748009721975699460522845873591808719040754869693960563255832469689215487052620388200841909260343148726923928604523889966506567782215298420561207881770801690798820908359872668646610509422964545080441375981149741395705358327115453695294792739960092035843781324672500518230300574167397540686751034120458214938968973722815166529875635114630495140210363826726164768472720895838003382251847300340494811564792105908856140332694574936471535079854703129647985956752502096262437591517173608966323085961165998525494578761443377803464950117320558939710377548868635912459249884985432960934693326435430260176772165093449887938306413647737938591822910440318860872012036053722090314226147943867469869308861471393243971562962925510077984600230510846200828384114253915807071756687029627437536465382375784493773870585239318471324240890621153087784626247060037508269049153272390242792756378366020200783289852443278685425974146086756464859474380877416933898107437833237730043169409011577203572225844967775582260219143293073792639330407921421048007206390507044055421243557449119618878190386127932834690185945163840639226756557106774167074857934105101266201345605416970896857494018088021025468145350255710116543655479868972584114227196120790075895707765934756296675004902047272329374582897293203716150479229036539102883074034299287070297342528177121833553642037056948734921618754071598114546551264154229446900332280604111996433240617918546280831257497430308635876781998576007550876092688597496558809467812272021271548741516046451794001565045727305623706846766647631867711383336167373745952113096591500759724000209591857498834044731233222612515026254199529510309017837841755881696144268138895800587045825158741507468695268436171848808638325071518203445025698369048446858974846215389056230590424048702997292688260775662793914315782294403149985226090580598425205112100100382213018677323893897928555932367013330196446422206783209674572754712110135096409789777048063281394506556342507181813390881410848277555371276576197961282938184106474293356878464068278586509511685487834070536315654006922541593110337489195383359297816790670852791721196213790624713972156417270775449236958996258199894161015997425158759804119070317302897486622335807234553929309530785717948152998085554117660155661950426343215495355758734221445274987246392836580355228806689361160217519640147518259426706903756884190863160043152184808562968986299673737872079654749839432094523625632431433733626704009557216039340413746991188967396275277703424715269830719093707815398427902577159200594369272238854520801063967645405105767483529586172054181459973835818178517062804095282731215165620014719802023717532350082185095039247208078575394671012268511533139666263667663678420993587442893149186926049437874917070236746117152771998313928637632826153860703995806783168619874004134386862665952583879100085066082170867471867122673691178042002095548864599181692413671485185951137624920584742228694848751121371885721500014689329086945911342610475166821744786924762313882135739411555844583806140604859670611416606807188448056181964420759125992042909761348817806535864410049517662460210810897282043112110256462080391875416156983370069119955566690398583837167204562368723315146453079709774023293896578743944137563221797889811502956053545171766992351647435266721859996478819420260050116034753887270986782410185364400474800811000387720606599331100049425015443859882597470324669101422416766841201546459869959142821412891864389468919549800417533855337904124087065729340373292156131148263244556775929918388766041839239728980912294791028802218908000347824690105143117777570006730120860981751081978994275401233831282112722992676179706441600955516396223679929085417631764185847083853920851281669850535081392470252970333622824238861935773603811067167037887675776688808935093061617053471397372795284197520053988877750371509387558068245914923293986868723496712432399023693147196018537876690612082267565886894268972461544631748148446923287268673275672039258197639670935429794100300464211615079842771086573744601776160413012279839579504730940749306913848753141579828824588794603671195201042743908488726817124331341543095465046054268179293501460822829537859373614010250725542989683044731844435962875067698076248344747692568183795110201184792219176744699289919887080190196610746696822370246272588736201488474398041280473818616952088388668480560941007486860402275398276252524222324393403754372186156028462342612960791208496955186313909901512645730457834187650416734180675231277039692545390246183117050514841945788588080460813398151113236100405281026571515334898532323754861471415145945406014848127620738177455612895142980591762105902188500762279053518579905995585532589159123517071676442355624816288155878362670758467105420771598735652540638742949250007508663181570719317775422176556343066654999159025853784643964112029746040138706580061688061154220699560796996680376074734684782800985478693918681766315407626789629022999518614705412381100541083218167400390579573473843251219010844118278806576101300968934581401441241316945852055779337146774249865884521771650804642135630582576967415777949650501955440537594010975535402404863576487510460741062692072295379890174454113988474978947709837530290004555564894798966208814262149246719628738277419255722245159022315765698653300502836238310080880107789232982689407202762998853800382153943816171502145724004960746465940909956589290962647931852509977529803946470978455821735772991193016414204393791526605344073523734048014953567383783182081874164207783975757135300312786593342260488980495215114637997373842903216338744604463540685968918755573214861499853451335784936059466124235382534662330854963377150257808951057760230059789711704539376332863805786694456021049156514641716957310141378447055524014199783851115595948429794101120299847089849346101759358178091054007510975181139647072362748358449518682603206057730874655400986542803659378246282288474737231219352797442885576912960097250042370257533388288309772469379872927788809999961368171248437667076668435060152554003680964004154930946456236939332039960272816127174126920686367582774387510556099629422169740406512371535658859181657620042730054454107888511683375851106375142069813637494559591996601945475802318458547053115887273783889191784396607456023197959797300003542562046747591397857356741719869217547478422341048639070114063876776046134328371329062943975639575827100731173413024614928620103803421963601639389652394432769271558065453584399917240516892872468138635777172993181817407144825586164040728307754457671720928168099308130011983149718423316677658497789295190192107636050515986446627758975122897469109109205582418158454591797484048049598109683624735999743292399699798229264949626652159603791693702683165780921689906708383704688276594029733970115397891435907247630754170869678173624868849710353084618428232505106598017838589166408836733706886686491127699553141270590205403147921037024435053602226210513575833196716787535430725537038505830308572662390614896069985856975490319399653608189659676054262899971122727123291981601966470979590062918887072175981017239409992169442937074206760459668469546787104307978112136379193905347084000403958784854136527593515273978857963942208848837293280118198549060722092404644896945821865215324744915502367893447281844171170864959485713272364593103461103822121377415566184169037502982220923399463351095435223570609018900035514201953697465823815301878390092243213403734824940236203389931145940338997830545135865741856845702531102290553937758626502711674939140031141362093538644321238330364881140875384375737690479467236963300586716182668904689233742864003853016157486660061300884240842084046965395819835925788427488612904653877818779298973546122479244379359337530541122318888781567928768380141703546559430892405036423694046006653087775309527772486848709106876568683034259834405196325820217160017567315993504719948740880911499605912597348405361260645803041990328208318758797792901395973795574288761307816707762706660449482035219764218511047596185389647901664819356673909801999811775790962236415839962747356886920009406912365515188065822525850185381339334449967458860195679445920691377555038716796913078897603389802599977460495758501707868889385988515005343120523455148611224578689928869363655265892412534727542359550588062087045726971584182215898992121339821460587597011668824318065346840302563744266329200885454519244365352130257409080650048043948808311006044427505487024353074408679382613376245048909420956707338925627792483420429699771930354222667761388695510738682215317018324773025852759271782414124982863726512642211710578498486912887016313291979960680468315127658662139908418607045064489408088216732475209484529508795253083976718584484679744579496185698657081546881717967874175684119108969181871227051251178394384401281192676676140025287964708097524145580329955103792107216300820353881543735803152274173814930811973432190247704399383798596226846852628475551269343847889579319791225515825403347423861877636654572963047124808757557200570497498898514807002521787902108009317007563892217306088013939935548392414557004699711160905342545129167517695885502501388069298996738253799483964222312672614389935380630904872981360431927699161800697259084364435160326794249687376503986134552141175798004668653939929035820296787403012123691396660512630727475418343489150929699499883410673863310360472601798574725467662344896050904413501993943864113953289948690999056406551879335580966094611594510164093331313017310667116915321085349182524922775122680559333875082195230149663711972913190044564801548300561054182638044572401859677647155734279191067623076191736419465942088908029066614083791060515202055773327517388952972183647083409947271593942581294375566065507517963608856556615902056763303562562204076878111955390548706521164861867616190115307804924399847161033827621502132195594603337785833556416510750284673552038496227892756637410660702872743113662427789856097709911452718957984667541178410693909353394641024568040239254463799157245635091839213477664087632546034269807572390197324798239404010332173990130107006511419442052435659675272376930034501661487312717035973721536076979812889500898190443586382008512255487338204396165454958665615168400928320812979817753937799823908051248673099900932519060885189570415667453200552184270441459691152186637705796278368591665592524467570807732685906350933254094208815879606208047405976725671529504494140392340760351497237134392402263815855959935578075044078322649950962816601266621990583023694078457637206701588282062166516297233489583850710917809498497152385884821729788982034620609584379624427745439947346323343308247492483901909733931012345567432139304916856768856334482349231757631087636799390808520027895685819378440708272075667274467993864438145113387150073180960506120262067658400321357740460358870969728899973354394868495651702344748892604099725878303728246519157365960810535449561641694227466390084688922694537116952971109793887625680459286640177571530632959390824264770452503659667071150611963870182678127687038251011710661188567256467219804254361760181564145715149797691558602981734898238721652221073473556842582308817710310061810909676158434506335489456580681287056190478193039211061179862127310713734074196326631982266305892026880158864616005265489665747038242838141115632807243201697617262927796490396197077693379013764340458671454348881462729333765593838719615752069566163313132681477030802975697654381670015391027927018292411910168798071072050553389315105134391664323779769884153095373933356242412601365364398658130838260498836261159143476893602585400239117487748033129368594216539091848825897681005058163175397487355513004518394074018167374307791355247625215170218407721835232072124849355218500429300745320574966916873352695522044762454682574211066885288215502849486909628866751835988660810605113311559331834341652601794629170550398945296956106798449673684132284711670163019723296869240110965783464779946456554383249863580146052153178448069181746067290844387525751929663572258203432794310442380704429443068538237132980423595010068818189473603758189410426647425281315744676945300763709535260792465582655996306161245030309017351187892686946255011983166206155688292310152197763818783436042666195625133394362825277693692031118345847437332639630323418249487927544494203058496764355151666546120008261231272642246580067928194316562792731163433135599743443685327615750138107686813386694338913397770571294850850135802461561282756798383059278957199473527750716217442442719912595601879847888501453805548647602907596682692636803348962989353155942187880374499452777012015670059262577971032847919917500878685642152440176909858797231445096554223209810113589520783894648825353546546209868418420990014328832211096802051595856181182387514414127441316104674657363001984998407158195372630743469964851779061771847570728838101197323689509688719658727428042118283718297274744780554895831492103587920289099179860004741615109982497808287219456391445715862228567672556915144977239153039567571047602096064273158119194333852699101889297018931328995126111062736698270673269674510051589428870487006552535113701650510500669290638477077167177365952302952161622407791407736886844706467474512182717616566425565678698865340400162136828404492633461436798165325607941057680193764494488294657785287226304673368813800783540826415272101564188039531208109033072225452284745002277246584064256318569233113349307334256256487748292584396841264700440852634209926173215509393704546677470387785915709829846544332362744395917773940419486233741788111966393794899822394320177738810055527898015686377493840964993390414685476037138102893510345838171679750176499515918213942600446128966080036522150495467987227600632922411289226043336551111032586569958667239842626441618777932362295626897096202519433490390231569758186993355969663533394282497115004607464762696007407736450624315132421370394819360479547066929634921423580402587185547907607580011340604367929046581638182800794692249588835456799447687535690081619029555428672740267463547320576246155999677643827291925420366534535724541909266703376041421805030705854193126491059420968514008272576446503187966749566135930401093383106156133689107832393842787406588391707870767062451736077344901195859682566637700990052377826015130303181994675672848614883536243782185059849211612211383485367292106219620318598734893048564431642616091641247198971471302269476104144399622309110739074204565188180795954959876269144159963143875597411019595392373499685776227566438529521799161818861746728415127529612373512574973409819202935495570452838510688328204427713516378807950178189782232246647377465262356909062464791817458008686335488346128041692056010385800010724600757505982194829790052689840666868467547586287553748360575632410104510703532493780590417353554579033829377763681509023753922977377860252562112147377267307213738445643315015263109882131626983775108753027318165591430360279960738149725391262169182493937836319394323093432622828138614229198662379802415768510252629596292857355806573316290360997798119397612749023841721586931763770709628978893107396561370285024363422248237548861804820624768672802652677630474103368695306040577600255897777983342281350393555669971965554476102360257578756202136918419833376293658704343717247804527268724152683067423867077177804790156757765986278452300325286021587847430106138772060110351343699930587060231949069960489971030417014529916136501450970934366198498267080175053852959798153847549171333101561851525508685223652764192825024730208091520983073924849516273366829895662587318710373071786018649719356426541548974784122392775613415694894665686661298377122686790826382001287587181563333174097526706946461857365435618426875932067054299819889325402093556406321897425232748957273150293715788913087753290063859755136785335090763195736854685775381593572880036761923020448355959746008760666416227708714273169947739009848822260855747169939568483820644821565520183229018465292064379404600149914198905273253244923755736899858635610771609513925630131263549679099785174079462318299513878483299572928652575169396095762029096987540298220476644050794776212194466603814445108679735838377256482538602943680675734496876925781758475859319870508731314853711216200616969874219783775867541624924242421610792983504193030901633196851394056142450623900630351924066623005065455689669799662441346319306293259818730139036885825703687451266516618734751722591307906527007030610942439657732763439769299656424872916581817093410714188933995791734970227997454131345998532159976408480931433614582468813982331785486356345564036318169341616735815122330478453476993342452062259524914049860225758734781550963546313360218301240499710415306096231238610931154326600329716287480203366933012539776860591892055487933399061261126952412032174567802920836173526060385306453940751580790714028655534669507435319964426604172940735006222203626618800749679073686644701460384873438496908580100360542842658577570703360671720914380558341554608963040360980530597796364584704922960663066731795767648501524044189711280359938147146915332753792762464341722179007309535084770977495026888631498262450579488864826257282039762672951720774352355335933734549071458857624759367196022210236035894873608249747807010872676413925349722294519710883676868756307709914068719215783921050188551335262344422373072058420781352356425938495550019105505294187589567552956000076060133548258445230562745057548865676030678536640558420395294349248499384986291790555854749029113107886474470729261335035294648092275014152192462968212533882996092972706974544513068709504768891961791494466142786493851667192478564987480221865449614545847206441237604228130047191647217087635604903322749799058535206450558668905866783258721001587806360544095878146085328468531814761705481424912643984003646086694403126560581711921032511288925299434902498044533116928072791478930563449323662466427501912810455655558467838345699284046749199286562641346008043260054346556454488370472276036370555204939007278246690333381973469575256864962344050921445562985171445151896966985587978928930964506630004770562881068014876456097407148755459225754827466325860348265311118278732925492201359803264423081479291594568155952396128115770714103946676777690509638619241899546265923442020587494448388303280108373865313797530355544226184144962053945980889869956303990026676468590720014791882055077949306463842205885016004439720033258749986102829305695725597209467546725897481947867988173717974383884874785089890733528650429857598068836626712997254159623137237288127065990116803072835570508733695792584946817296929169900585436710423408697962363966902474803669892128957852870856670463153647622476671298491537597039979935779734654471775402487686339602098766480056939526293191918150124909805607330972147663377448075888226945485967840993951108076704366382246426819409337659183527144988430819727722720931123465121562040129950654095138353334111056306573006499631297400906818221683892417538580739800782868734040737074132929485245893966083324683488308321978259665932633119374343125437116433333971586582722329243126928325034969896297035445389568319615267385233639825852971767225478643739700363041277369969410416291400322826505548713550496665108052061858071277013097771387079144413262089336075990987330289652428392784783510851359611170202666647996135307410981508502279584015870869845812078524016234962477165178818781953886176827752641209459829462517940179055276790666311829081795888827702965836998272038071736223036748565889640884760614308090219862587316478810146150798971940827285655427428315077190406122510756187665017242642501719685129561780965822415411383991912993613354089496886697686015387366407801361504930552103071244637033072805063128983156716018675517438552132522631936570705843468694962241558483272414938407930608796313176675162626307518921195796508642824086054920805186125695834029052082087325303812177402884240568331459370299361063472292508307462847251835877743574554041811873399593109294873655327787802256473566072840076959110025172484884769140347145691448372356695946000913408577266167689981286765441457756069503224944206983828331630451721127210323524895375324870740203681816011592715082931077180805939190382200372270556149859850771402994714475221215945183343855545154970573952121070138205250205020986105461304541449103051977766451623035219768170532138866531123929124476291994602105571569137888645610403059339110381903177730684681186366394624294757974530288436026995869463052118029845551490762637351599545190762514362722960880814720976874977447243262952990442616365952034382922401574342527492330999218558120573810552223643811158528520889853558289480644879029408774502564147698502127741777613942739323442333719941749375678333933790947511113178650790474507307489943013995198174218255322963456029893378348349847476482731341913562456365611610714807751126278401052145725326728987791985372728728304264389279848050919767475532779076853039474159241564475113836635268647137107107709291141471120235676444639228688191779745971062704664365283016184080901453900909730172509320807403139210716142031643963324634492970270260541134706761816912081988850823280169381327147135058681854014841784133184885379360820089762614962113054584167069428753039085740025229843860977429906767671215653714182587908318216528194044987791777076820028414147076814364369265642656953254046584191676578020897276264165039713424943050093318032743886982126213741568831050660505759412793031355964175200183752908260931302276806561363121489073840394709004098774648755786006148497096096007992293110298815174181485115505993563927005864332932647196965350162059322605146144738982201542188179331724825267004502506345641116403907513119582204097310461380882422446896152222759848913898401014935737162787701711877641877849229167290882194134230297749073622357270767185502908991115992072359869578406825279774984412243668564990543954404019978442270824170917921804895292973542087687397027934883840450361257795110681543344463585383354506451582717120728033305692992778396462430782546039284544564938422034227844017508576487274687597806685144604988200744759847753810670838876916408294072866452792416591295380028069170401808539795766360216751400113605594504696751398051926436218603860474967829487883055211369272628167509234571471666277298642252564046526787394349265523184138023876595074181533710502514876661791040387838538850201290620985969336188790361077024970870245543360894406917365892856670028589127035358787722226020180719150027948572090135128311186004134797911398419758623367791737317410307538357683785747019619466487759157179257387428745700259940697748121122138279029145811764212839971457085726577753113724368983443536007658380154183460393533442942922527915202321189180995672225555459519777136917176181824520420330610285896230334579823675939159145124065002496172869742471392649820328354502782773312520660374162452188021061993318095348085791720396692890901051060719128846965633565992152389805970319978720132116240797304932945845736619143835585649663938100222981203295931356669313319137110648045689487271296181129160629418260100098656247592721343790062022842225939725042423921886044189794301489571591608348254472091336612954364524664743026041749340735721901148384264160611584211826501207939711741796867778860655974544021700319661959107638343049260325039234021396837570456647528915282504228627529692799285685767237752019947539406389433622522438000709155796155009195961940126122457101920755596116967941502570351586360321546952678715014727858363132146981441366613194730829733520782285532178431302017541884212578654771256905957497246974809043182890287448778746031985290095426813427737007167920222358362932632258070335271938022966950473597016612122641150931756623810297256390714374205928165912289896162669313929337478045619879137272629075886589827534190943756808237958964902176003945374268096034977599135639810863435875880672348208135425947733637656531754924414207828978973927116433852302924605404233563027739886464999410333813297415243215779766424841104791215614147047760930488084911267129409119997768688949816060185254745149444067226047325704617621854560434537560152061673411088820389536350600392398139467887050104923859667727479023182177820462403051092263475060571148776819749257291758633370089615973901062547115778110521397095145966844655846609870783492550646004956650252044666027227624083530128432682634412526708331129721087806231966295163755834326032516190158297858011872870679045387533834250162700163545052364759125495515182497341880503352572691835918192927463205153735007133830099382967166455393335183596445690046045134468319149174900496626886752576040399085289737563287499189506178246860117424215094080549954105395435943892939578941089204880746338744194482070100734519266871313254936416489174102309451231769980607846628784817055091278431290362654205242207481774783708040223629211499912798111720220013151626912273971521093984197626795205429412353559411672104092671796371031548382420862047978920702445590972032993888817996319984561427603741599121546161914626037269409305467000746958198845837079421928727248354184932311840479948721978572594267774773947800903776432714813068904694637402210148012506212153616222683613962447296294241322188809783456103462146678015793392300134655180616927551865088383812486199434972711959094439371523835230914338607908205724736184600495516149959868740550098709439377670927104796506092133771542848697062131782117332630088454516559586827147548759749893943422296381381485375743421966297419082290652683609247054884212039638853533832441167755136289034771020006141949178710199589901301192559736294821082547977616969556002989448213353926220281974139230671339844800226346896973915147969311396624418582145829043265617845051180851086866848917198328863922609710756236359215110556992108824320380802923132144641920674590653405576700704734853406927868954751618250736495745380672303497106699751854613391565119565717710044234130389180264022697137945753886146095437283987312378864762378936099666066492320627183466138780400096032130317986421008123940548541260125119979035863792392307650863289594898805376285513130517718834634125817928404095700506393005461435033137427643808528348034334063422241443950683633607359503786576371907119140364073601532085635960026173426261607568130672780392738357684735923988612703583427182347373489839574966141535711350602072122498380490555759301321939206160754275551634573791905226317008623476024013642818163726595055444801059403550837898934825372478661068614696440163753636356271510798149830190648615955650012400053165534237794670751311449776170044220335684595261005323692446526183964193507616592311714625929157809798140295595509563516403842903444043312864983476010197823935092318863461857129073757211734911833200299709494216077133794338740037091957619674895941392082800996553713381215809461420125988092613441119744689701666762878767395419120899649664237750311092877606863988029118898475949246908140181343921340655318705227782727694300264506085292398568376204540644608832510885698829476053843038251452419271618704646700137680002840089979545300663489200221521269311399174089370717036802999923094370734038713688106222723316505924895249834855522305194690636393500735608655006882837387556256668260604795326121127780401070930598406480059437000828920386266362584978043165377522286529497623220381579453632788963288923489609951650146806961718953646501747150135702899399597197184229803890255661744519161877892077554079385815619998835866330425688303490888309265105054801294166133117272449858732673468504427246992076595415857138590764085695447025751532632271625033137843334388732375415364818031650720252369455002857883176632429136561594580065379378736102276662678106315464162579482762246354739618093097183721678449831249221058039024158164361271446934522044563036169440035361881653441832411278621256056656101585435070194792997837911573514939478749974226586651601473009183887098657992970080705800339880700070348750539690907282134908028625984993509603482366455855498036177896569849140751859360319411490535251400371541583356540138165680438547872476133648018729999232287954842618636632334717555581325220952558244333058365413767662133371413670272568313412395257255010669901806632888604261087282235475683763334637349622251040299614062719840562245349268928847983428066637726127437207847893825135630005651212551404135950820143256916645128921065810667890966528409961095973806267300178139979064050409643182872105342935898109361292035425281182134295958343432512161294868560749960759344325746279091098239503856528580735936675065461910136576574766480300304205652522626642154103750048178714618756973820056238510850932695783770190102455903250878031645043948905623959021795972642065481339322390733017033795203875503822211009019706539641607031902208458989784508055300083076440344442717696441081307186343803396893485713842855393057854006159904578502161508491410391727686860339649280096629128793731478506512741735220841688326637221750064067440631801240136954112120569826167945483095199889567659490349010480454989359953009156444950001934146072262826490551437745630928841393975500415925406050043363929822840793340408378500723466829319435913551327568768701295277233198872425602440834450896094947047487713914222189364467327487721705472764400636479821326343452051078884905397053752699603695344864262869084084462345615780313331166137711244230039180003238714308181626707057564850895680833403191212768648187088067062618949144961441822918427432787099396585650398427332389871208037075559470848806595887913686141374676109188308998528742785532837053658539557271297455427792378191880739826409579406291715201330914645324051296478082997568187681757951846477288210469166933771470810745878315725739257315139779863628016466710356799657484095513341061002297708083710773454554517389212735198391774277062644672118055886471519955718176503726817872130746625189201421652838816747184805050070828643626885550073489694989426214627500603651469566875727925763289593542600606470104167773290525931065475407167192135675768859453524947919851530987715436953975935477697590522115531168773358095960833277850654817099023640719511333499506337321909377936791308262798271557926923927293141546214711888595158409173929454428354169846177969860117510002975157530493632920849678513298510098391658830815133986458803515003423226703548652912028158675583390885261165361734293771637965342317563677457545450047858193641478039431071169304603393308284757338453303277332405581677060467739142431358411032158634639738345276313289451180419382712549105750091483121081634144924859939092544321201996405512595826700969865341815920492597901003424149771952906245917425114820497325670648245921625572852573885443897453909456684591966293578268024847646359709158862627530613220316820936984869415582824938018267412557995571117499445145094471913177063585582923413156110990623598531765388794571517084792398333910520109019376694394611705739312221638065770942540407943858619582015759936640464291617997317179471538556051923515593721668136201520328286935359939312054702912539426821129967831773926438814640841877629787465017076690196440067149359362877494081990295668347272282042594939530986080911019300418266032115683943969831890148374180579447636374666194238958899328470904529849617500779533249959284365087215750712796422421147948497772504837554084227601200504056779931467297426798429427637809462418935618901473919287040833905325844783765021742035471052653684080890274543165938522036110238543416913192807965270718304736130352541644698297599005239829205226104107804765972608270809266351530339866867079658891661773088638082777861739310558948879088318800215308912688516114216059408812641606950554141731091861995468830527127368062482367678550108647472474949406547341473133672059138801138353311784178997858046258549467508691933555248836951266466366447290545751267231151739454850833518650974518656016962484742163626591919550334465392259004790860218157581661920880485466021782744139963369388263207992573769228111021601507759206500724041548639648531081882853022487656112179379164450170658194145285057159434580462173816992092079610464892111367605954593267883681842418647662136946818294597943670055041554640015433546298677356336894013936668892708708730209286682841131271549475983420503720226727624386770828588492393841023301631562937255018737206564871357660547088189528976627443094715415119610601485834536962364033760090803860741502337861579608996505787498235040177751394591907452625836504600197163558252571021578747643095381355308902022202038864499225118610437829691090045552413849866418182864211739005996744055240272944747967345513795636236244814723241619940854385776039335876535100536684878177933124982168824436387746531118023322109297575638242033412687922520363602625162980978666970392255240107169528261692237225434540800560221959078814716467127445184017899949600169897835426732433598683987496056965161426263769365197705056329411420841128790273489187401064256585468335593412011445271600963310583180495092113886526719944416813877929804841265538473303848897306323287182136854914636649545589433441386380559690370102439223409667465498834223010316660777510262344353223507737382983849106408490041387610018842100657654892241380176256030194727098858338435878265434649963001824452693427817024043569907941373224042662345705291941625671121751467521962022900051484005572935409165244312027261907279643120132706022278708448294064867847306744561435902228933548794320636408724634067263484742722337880691960398763846548852322816904581509568132761534401367466041630616664629331933816731223038190080284927294164115514213534257731906635238495390413277297331512891219944907600528354684768724198120407137485254719156845475610623504751620234323583004582926157066620878676246747997181920380052690023221281187979233841725084122467981794537234865863047376958807630548842212267334961289490355139185890939907047257828809948378007171879830474509566678313365711334640814636189805343760648718815913667222268740275531188195852602740693564476870634044278958140960431548791706828475208994885542245928643733447133149447071123518234532463146972450642267318254377073873390270615592556983602222591485680369899754764102967111892198746672413506331048227588483862925451294689428026889346612131521621420590342781636894776193556655709435508813559818111202309167065425787974457473217219863620577388152733612777032429774069182400596722626506141460662229183864280627569983894599447222825947500763676731017111098089341139123360223598427182225877487086267416218675789432992093204380967138450361744766003114573238766220684536080129385254513318651267664365336098970621602198796313344415720106411419668597488904442147910037097276708981060920328877261996378205235863260247713279722588111910519715211302688444215252525288875604190272715745067687415444251052330986546480959699097728545293003174508800923809123583807114063153125824290122109590403325744432390670129852953484373807029460532409498655936123990183062863331833663666543344747066437645016317462016569689203883549966389842710290278971771244856180970704252153358693344400375292414056005691467046229854002274200217966708546133937688537602781558192614694387264191845960015276440893788495224235563324284619821314375679345741873978547417003778936896978886577723812583786095060475503362106327740849064788692517848813780223211643568615321080452528259102840220519502123997860551689905063437860057581912014190863667398076996427108233046704390340055583697652387890445732743428193212740082820928965806305245907007885403462267711679133722070378939699399276983183820162464227755334322820416373131006879136695395432983300293460698771900351608861235338600023202013670945104943820816891878884765658450261316640153871294832439433836526756699415270646294412811197441469518007721929742373006336772940787649143828666303596392091690922053441483687056221699803560093751952588698366431663243762408529624055920884731144974681092621936559112102967729495463368532662814011892842542358550130870743689403766343723174889959019257905930720914746093978372665679704408191499256626021414835599405074477783043052279187112946704466706777594221312724101535912287912439430122535277244075747343105773036598277801122480363338125664442238359030009051306598631395802115703058235282119698684915991990524001391951833154485739917387343277206030420123337630361913981991695258497707989094299816643142759166963598094792751938838895245123829740677334185275164297048990712795079113651507388647990488857216985106818290851222409416782436425227718461589862082390362419887075183733247697289508273196179846779780316000752598071074015681618122954814320879155513704286810982848711160118295096604176152452194079823652826610057446484514302288134131110967184300471935404668762473237964523162774510935197224105342984279566051823087118534680893309054984699902843163034043862530123396767300868538193241814324621161987680059793241658527276726440638910688932826283561233337410682295059433900160000203088040530863685154011878040934518376181666677070976558209144073218605272327103155088337366264757413224861851836625372016804269920218119385712370601528541783214217707551565508930098245928553133244948168484140661789293132066619414824467441208951113164827895683312933155677170664666951357681470791869067112931001531065602533790645267086316487663494418954625549077771093390172054559645497757627218485780052800712926712624589460805063833526102097126510007495441701480670607628850260502412688530631457375797678259685442601042176366492985325524992368664743869636800123617345148969926390889519278769003457434808937107405582823839390278257707656582591268885816273811105171242401980119172989447449350373834816328631965769543119377039978662607203530201121931695411294176698336586008540262690709704434850122956209015104035189500433223169633715538018864820564975809790886798778140315805159293441907982779776293416857253337265409044767419866960047310807858159800873121527065097951654468663462017284441888332373644375580883354109361591446278416739604894246867819981234891243400468941101021690314391234309446050409698506510916357397421245639135875973300013717760380423063175604225127695129258888984295863433445927772495422412047149902939251054957733407275261015851304310471045215592960425578462135438414179267247428899850066109080174654639356080778355557062643767603528351370898342028895714879549897626686868855325461923803546924969571654491102428631418827852063003800310602740266738218225957543778675134274041388877160797058698384568177014488995475256837788474580973557431133370968374742183447211539847953358786249981525949186904343951527201784544416334654558065548547319692500710978524394173222735085284060004695738583610300055589982713097608212375187110449242840785158674643282208728611721130482245979733270290389563722727311767215857327846576326623516993555422330121179726496921088683048477298083049331765890277903880533861011238504713096624549765884490746394475470141787320834912666609207968872051782835607112484355755202447977634093044756923115521914320805621829411171955084948494004831343805293318426212794833485534432391008000898887068830808780245383047708724254702718930223203119346146213625407523514047318695300762064429846667738652151296192411218927160799247774173975979024795886217511177121367695619995712506721007561786599300774780242928398733341852394658525334969592274903383369754575108864880117487843141714375154791870284521293076195977656383756510329896938771852003000400826424046859652273390029698286814808195478519267908602100380934386438955509819524127088173275986045245546695490057573735902670919047381541959303441789061097163653817653322521640122429508531617338733828530788824533686352508096188569430696625356411249668474635307520287016632536789355860948428971733256853092158112580853072110268990553059536136199159117337934751251169095455691687826832491261159103606177855311307347753627261861967562089724278729056579681253621164072990170246252170516779394532275931119297302392386706137289275871852937885560473455197647962837285889343675021056622479313128113116948460284114077317174896328750869201825869466360202571029185141785009640341040414586486485362972728191968044480714343998021055438938049632894488489756788069342761848371820717811053233776076847914852052401021882408351330134195062748306423308988523925250796162615191914759798968515919936484951629293953189125123888362214596755019876126333249871195510910917791286167110577476341711061599656887301918604018670079264924704148380488766197453009486836837133823006285079982218443233418409143906623846048296971702405823756674806484306445752076786806915345544178372915653329336536833024529135322070885341042957102089580286401081974926724316033566579463239901161434815471430036993473243368917950967194647929992997490603143423941349943898902758047983608406637884276482931588227227384469541041487011343819075761758949612897206428801785572103284650312056601395570025950844903806286335044850297740087997442687029400993817241789317618267035694611456113845556565299064345378257960703630010759606707270353959539420321969015073026199528421413956625712843494329299864140321220305048138155815053254873054055749765602966092402450564313497841367843733959707149199133604996425933901442092771356471330839784004800571929294384889553616097598855659532411889271814046555836887502968092910673745736139243570076521054216246179749114996589901076624070025099971968361702836444014571571112725494082876726471882152845642873583848272499376748947250947346799818255706009271566582196024802124140928667922684257054959915065813164201212365717333716865288369456751920533472518811384066684241986755323776799913834005463992787817690940606517004448717745990440476165875549922549888799083800983721902873519880350724094528181527502856477281165373568206394304948575414645959276535360930041764896815443439510476576169778861685548665964260205931725294607624923259038455600164471875417207503882588469781377547002611745470931007834334996545036193483248694610693629430428803363523040792028125841399974482992855012510653879817182373627845728375101719486445455416183543577370902911330833620221724288010008139165086351583373876718010839711626635687487398569275200896064480938148031522476780754676603399667831191429071181294352632542111104973183457022911159623586244036786975175133965281249122009854717978901607982144750385217254407958584249877287451455770708378316095134333137804567122377685753579414972519732738511013788174382952123429062049191707905219105512010282641199568014898117703437784607243268047812715178817215268571189769179754380209890505111458213338480262883561041562249222513815935328483047946459684766294636860553544383450133874446358107923436830454943928546798537975894978034448222082441092116237886500907479595748745112901075474246765702812447268126079183794804717061009483584545198774093593679976929860606372400585392892085485759363097111267875555468375247966018002095064304463714071792031304560018903084221228839304869596795124256418375752882791811960626911239940037712426279544362372637227587659698091810952828955257960056109364292347351617350067019282839819511325988921520049059668818699602004878206950602328925891054774443666681315984295859132950079893458393550904886106210980538749967424280364225477177454416898614987122482543775052052637072842823958916177824688716602360917884973696509799475390850347913951993372538239668113147373103013653453456806596135213428359085729624397867461875196179283501819666105467817891089912843895160967203486028698434120952489280897455035331490665388581815342318967155917755824318622049244880386046519974679036634806932149983073947867046786550910701649356140134210069607928281656966486535073964658313096996519432580336967279555524838631223986766539220182243834782834511549015491710175081336415393218646686373414631115690900199359696482105757794907995353355843089610042744951428937267813504928795567962999148561869053833998187865429273417328194070040124076148899072088953847327386183191592576029333725195315300666990394203565157429491959867023777523337449376294328682544683512530892527856798585096001262747103164041536593058539780814532157827672421297348326028103311735600303738726696753536485830412765662872727420464904598194666046048762910591460755607154015999576628477533635683098208810982746936910666419826974891758344831548118147453393901101174332039168818903472330773117815353287489685624109945646012565063919693589497091249134956782479340417590411376582349486462338586144243154771924738065677478540423618101478583299157574271083708154324338400331789069926081978480612172766818476472658282287849023623229850190843174489904452608312147813481088216250882562224134706773421950153417266203913090600018309087579143714726815611184939680090380863306104870940607000300900816390772561689616005968695410495596994175958185828354403692447243767710774931493230256587582156947906828910000634405246473764053270949832162102428735528845402617922434296501841974756741690962801678217358337994148575361254352591640681746771037367320438087582103702697131053091399169149008016913935795297794772432970828167709637605258858994910550311127790624750070837567154615328599000738685591612788950032368302459117296443747205857022071800895646540356370659275077853374076352665712134529977127702612090614679857669414821053379557343070814120382397536981599791141200703173526874379576751640355544877025196799761821458957257030176590023263051628166214131022399429526032082173070106574181656458074520546656499515519016488542407660901457571700598148526543308530242141337056253413016530571905661283423167724338624996738139493880504462979805020779895604039073028358328340570445518359241512176177269253437153095540312794423329473519929077524449192884674052888388274888208133238751846912584928224150945456344736553087184086077556886467310973448581711519102512984725006584779823419913095256173556386014919634983636106162420434289832771741917621763147867233978619991098851445607666464344045125487604100711356619731189893538901171935339057986750756139408050620462556073732306387915355427873290323232606657401143945124914559572999427581240048952977437098843060058029845657597015048301770097602029657742328339757123245472997571268847446603287930899421701818461648058534415727282623522238505503853325644461891516779734787760036484367471938639700088766744131328756900263175057267962287572516840161069874500648978897059464874659994056678530920414656593925087336068828150253861713892824237835451698936303664446685524901936035551529188176600147983293500639122653354697886207375425653092370859980161418581039893990986714788314862444149858817451887231782289503494580715150253286282317462304592651136266949739563142090467898327968890056277785831681842267758863007554560107557149359288960270415584748321388966927454634616731483428269816267471637137575477091807742087437763629339451059877823672909262493924128328873971195881175133032818159743359816348131816920415886523647842059391234943418413004510719784495943448443367771721258086167233377772734527054599802887045963135603330929084233308567476487085749212011429615757733704561565118995773693188424959378141440220702442433299000920446443773101862213909042382551129956534167228841405727584304270084332250415063889742739942490875896607425585271308532280595801901834016623608964367228740712626697761270697100955588670986981159303009249163670077088271935920082388902279374534521246367000449297987379274441971121464705411876199296123147711301083066514289959427224686918631724121713121076970815153375416791952264659953646537353391102956240662528102868683840923284311244819534290609174891442885855648264901105378630968199731298634251878012146455654642532852549574639463527797366769626377059337360259439053021693266088803012054332190397769974692380781284053622678716541378242337320494466781812215576210336688873033601961850298435824952926301439872383874500497299345268712458031784319763093873514799503212212999236064888105360046538018788178556621925535619061509675164459971334224269861561353887704131060654986932108435175769702469678536740725214716616869517123948074371673283803422927962760014536152464351066163369043932055691997045403399221331749409485303596301322747893355741374670451667437515075121582967500551398830997807470298712640174089779973983128541045941914880681250401663091708569969484928086065894027809382487925954149867701787529721085112040077023378842248769647474856244642533933334420845647614335843361874912424724372125652117335534872495792629420740605340022785248808019722103609455802511662573387435952125689882530583680575894529726780866241986490155300375915908240630500631224085887436651526269966393552532700821679916103617390292115401502965099536276799224174985860232493825296549133138290032837064233391668065567153616441979658280121868949519655014203859851239915477938901014793936816680673333838059486066395597254283482605705468476939221331579115196608103665268665015694410156815730479343180415352888426993340996897622328878880468712514669708789810397916740400036337205999703362179122451222937726985925560925745397169110177178193297265279134829526858988772128204917698271086249996846015933145942158723071595614045156889357337499868828461131748482156387063140163676921801813915851263077280123347028255915198880876945739208672455072683570915417349091393905770248489608732447230568155665502096849135865316143429077188448263604086923250533523598002060506425447746076033558418418976685408810885578940956966173928929587141891322363498124338143361852767564048857728839921244245476134810901344073165582476524175515655882690034417247040490157480049293871779397636246881049117468395693872387595720756424119124947078831895014687765003315884290309694099204989559260350046868521350524657496623675680616769222149237509737629089860638630787163108709593137975678374167559258246371783961285386286470324789835504855646397856366665986133849552463650279170922730098243044461279074694967042928481596442650309641799832741792136372719213362176670286785087493063633972071355462431069425246723885549631243906455680973439787307730981792091544896806343945263492129242339893269757374144016710677395988333653467188999649820168531252001484622075010748791794507365080309342745391503373139654598867875958634871565944521301750773242896227667137916315621477689531653363251849224625313764152980543382492212717577344139531439184498236967333052559154584187223802747963096427232362835206526477557843837717565085299029918346348714772485375973057689406491995564791104933418109332541811117722767604156098255738841195782292374966661138450711523084008609464908805509376521869598491107478594087040472250374701747492089639968829726198267939287657168993477011973108540775476887350267149773169257937306529857115135454781312701428699815496622671584941347346175151220592237277618339133494658839421015618881207026392251116172151358393114614943536340689589580690649942317603975091813396969560338348226265237859676556933883732451226886414894356328811844712289343197293687782239688108288468095169250262993151058162187437474387735747428856014977779326173566035302697981060158401331620795201180447578561387610687766169846417346027721680444418006235251341798206983922277725711497489305857182248051156106991280307766713894871905477778690343143451614147290420303513508885932353955488537238167326113726725684363934180580471407870943715670529181333911134142596198192472911624833725013809607579099659608193603806238227784039081306932766555220947049884540781855426248395754995068564885777165290047370373995569130780938034048692260387300532868229580363054615526997414101581336884025602009123491879844577466866934532450135203110773279719951349510639504100996960897217515827055152477130640697858453203046531007606680971134936932487672034721094215843431806332787373305123886701290767337788859779819906293706643789282801508655403394241037721413036771493129715595718172232631863291897864564115749756515513355086908972523586197705789782465789953098561169973065701026494692805638646274636272865622245800270299834292499240596323977762636569670381451482460893125981426620934554031064175027845134037626105520866854116885067001485503322859027933044119048646771037433123883052105059062965822187061382223931685971375167680943524524625855073778152159760470985808269443119135681634714633078998457808419351835689122452112647730158902556759220284126637909535525013551754769341723769346475516739494996690799493620415729906913657639220060886544300091980831620328188214620727082400825938485310008041273272657806897690560967512160014722571605206762366210508260324551634368481450885640850114195097259144155941647335590187599128392214121190430240237013775638851353913123257609062676638991996814986127356082793792577561099808162610762091786909752273315682335510948274174988394051229856545221565881065889048515830795312039007684128390330013418295670890590072635701427898732763344006790407513825734757723670349694855406555784061250728007456036521393851746754900475662500230067019574646144324325693445491079931907903153462304051710026378602632290758272838668725725092261089963158952598574626341835395176324418512637280000186656331116431500927244147867230267967076583031645205670892869340189719207560543759019282832726018433538061801751597006125213729335351863225704287570603549087496721370169659562841534205238345883494842478683061262158755326241629045294121568114410345887601878888833123827811633548023590874273318707969091347702538758051940361839277407570322471886291192971065013152923353218878908283369659278128482597724901776091255854836997925635945599375083696690745713929693956938936233756842115437678402137418445068772472009678239055475649157718382334554843691863707686844310938686133125431762753711246841537658407146316008647602600256193398071348699725817518119571793064256831939097594855827231078772364884466391530587561474746392876820879764658248640406713566155869094432595237505099589743074373941903626044526819790866529603295504356106257774044401442862999838965628509487073231221536156664320911485728791426321983208629398254375455238143447068409847782232610561024756224860179312422037015817737058751321179978180841705392557323314916233774194686080624594591157221298116569152181521907292481228536523826683201268521874990485198571474259573713756809584558264283818276677658121144851091827259663252927879791175109551139599585180791194759273347652615032316685078486321464136827284850200043828039431840588454440093304313135824055961164784214503659776077082576023208828721166527351898316301163130973188575888833992297619059427171311075668319484852483755762444243355340599118885081945858384648036779827574716832958579580443678269546294157527172480473820300901706992785538800307752489756092153482849149946223679177076753851142529099440627168077853001493344107868037056583831335670228861386793576684274711805618738744073621760721448825292471537683613794251370337708522607873002432626172507089095643449448619466059889403114273763385690378722999729922175104233694822170824265337320616049547172905660981695586210589404073557229085346719193075232793581930834443567629915035453677152362334535375518268908962633930082329714634089377489184937631195887790938268499093026550274233200190513924963167224490281276150741146852250624090162445532578338167030781170036750930235934359423550100795814967825683091149029590514190418682009970913027366723212698403157413524207922801879806972060092700718866025635090882192996389694109121627883905141143957031128253612922340042530342203058132417205478598036389686108446787298707752009611869810023129801769457144061905886116402860736773886145574332831394733681166224309783929806413716660873971771570886634868674118921164813029360936884831793270769356244376973173103586666704124543822586047201188720130655840414567167969508610591777191430765964236709441585084645554203263858330186204513466318553163029533391238425903623652244085937018259000532567065299341803336675929762950887550811819004332563959861563796859556520276134836587946912391361294233625738548978585767885264805326654696772793627667209559812522743794308484574677480721619633575416160513957890615255874888721991523622281615242921166429955737010092742217240220276945266977115043033324721169734917291286099004902539971095298820573455083744650564519559698577366677134957937869553331811059418076030158878107001307369889343655604546107158944240708572947055290702007103838090721176011712336221844812035201078278370279701553672368099097618198487398040280510537187081965920535412636132253782018245880323407558504184743868807354695340104336720346072232237056600492387466328891069276681942973787795857878158954405826904565651721067247803352368059568413617880940903406073956223759776914524734079030303323875889352378802549027791394034946401473822886723745986458926042858043888973133691249357326249037683016512348379401375864502954802279545617575387405145753783943839652613972244645999542158394529850698443380762419461652275236051620987484782887855565414848957873809393912107292201454508560610504536924942718878422445612280885426429419163307727063461368213504726953679426412807258214810142878462344934432740162144040215559215701318756335530029210328185724192434520745131496027574976744644275503766973042019670239657488166005006326292900696728585526097677438150014233614807774629866543148824984010362670458312208618767457334536819720621378157101647917155630089129174517492433378170685702835995034507535647291560907319570537396757291161173219417315758985309647216881568983662283998484186817743920516320849326821861730381949553385281228977691252455826216978506287211568044419956474783497374828675997951490079105666294988043302831694744920585135192984876908202280239661209677835537167319597568331462464852776967462395435290358842589906297026887410693502761709044657008997955832062133760282759385352412733007440547760544368226329894104329607379392908239872531977351672883257981662207278624625346405843019281204680708567281729446242488803770707972295524491894812518747349240606894270419697822055242047358845541115681289105625959253248670461425025106556588045142286370354120608720745929490414725147066389851940817139521916188335350560972299781500935621404367575093832750790518970335721862339833292807518497191260328319998578103990346635636005405417912169484368834705775244794758215503892530741427218104167088288710463207970032252939074969480076836585639470775236690080309881598838938773577279398557891195637446730547756263714237897815809103483128374137878767210799309953203294827481175782205521302116912082092644860069721253186247873177209761526034859487700493177365826812136837808146971898804110738221891379457705552976694939679036608505948454815499903813916464612344487517658725539009331171532595120983940903643211959677029401700240485949878439752001658482900094034612115751952229474558719410533282454411768314384163073426516480884125199788018723727716035703421735837021920539838203540264428697490040854146703028930185626111820584216679640322442905586344471847589089488427817355412054995336176268528803860951849312636530237654065642794062543306123377260436761015967044845937682040209651619021870488864539766734134338120453834754940589464718279056510868043982683534756373296224131223427437471269939698420368138370800094449356700105260502323275290948470545955709726649376941138703748671651820476024019279516636677100094945596572066423025681172993997344774458421615923547733838277676357985797194900639386369202447612755363483265604617828034529539894285470135805966227953351539431842655407735427267726666694317099609045286858391886559624729835427591193389756968615308414829428239341970613213936057197007462726082336286200695903016901625734628924178877669189554807520954754557045954562349397128869282911326360554621567886234535954061802481204913095006253332932568256174499228098295161958017980000688169755087294040601318149652832275031906716325775173966220561592620429129747065592004999014688561101958923250601695476755164081278554558471843986081628020180386914858299368455945321690449529780090959582719558522746885603550925686562345891260971422203618896836974463643802751449313566374610412882906333970134550556291676275600512021174679177121006490958826093229544113836229661543224405217107620278588552580981211103499014021583769877185744872669001347248563145086913115492311260576267986468923244607130891496119198948189409885093384714743349301022619616335751474583039908291339710767565973992218464823597973805743130388179410678174480086164920878703701760904803045405449674103029277795033973995880838070632327251815813935714655077789432040528687399616419034504585215084318085204332225530440671868557880844655638908039872810552363600048679066157285230499274154483262528141077212412374163605607934582105580847905366933075457019793666714032432554814596296846410002935994408394335173323030797589225421357962994547059307647350237712894154095566468159804647787738851655231168592899420025246137864899189597186291623021627191794661680376321427228721434103307666386691933699188924640206621489019466607026184583572381788102813218063427754234720046207471988937965606418486205975479633278666975531557822578002451167218267785534737411545355291607033755157858973586236448469281644129467959332561672483215481476615845512541267766605347138092629566798813853336262212236665658893491649363124174670051417263360537751915307639071092530681715081564971535978235534362493838258840145969554570704456361514952554777885260687111287395329713931516301842561659801114069528565859112479631358222469918078261073227759691634557910655967765048878350945450319181153309830961467370501649896569143973985178269114092026688832599507261606551250618875733332992719869340102006109491068661799898652030097961776879301795336272652703897913354487670985169012217063258405345980884130028517380399131043725278331309709297195292001121632119949886430737616003026489193838218872426059303992704829799655358421184005050250126517372556105992637502508467547337387152074244872574696727660272357894973652906048404017735143153415902060912976651773039940858210488969177595766833215044330982973885058889008371507352219191102053122343642579053180879086452218530205917556018670483501962155266656728566081795883170253388115809399565442641055892922291148709627613710649596070534063446188357646913989285208636167061228743024025634445949782957164226808193735898854245671017418178981068132213185796295492603663450160263113357616114343749381290809115125456397940193690115390717457662502113218986596510680727879360386528276352667089853937644386134532058151756442459203579662552322622843976456976250955834615373653801602177185467807523072574103854276372730944727760962926151558359585019464455312235719985382212376901283136640339326091256740555518753366781459498875712189360461035278155816147170090273880475871376762707569085681776701185561016917662453185609102125334744639985007347772232041404023645497978644404752316631010258253451834939958171139135745703438580402075624682602259691796959037953256762302185388279795177605301761125613113069345946562119374697247737326652518438758926168187886010806987991780329121594218264525114842444986543917300191860861416328163892303746920914194575510700949977687966654039544155516930665798411030677927213714117572511173539428210610327082607407894296371386916613987371980130072865411008974170162841730479638991940824575971853047777777772484676942593104686435260899021026605723229947426293992540228984315327198029054769893090347179832305244113027678226778654548953541777898340100122231578434878884265478704038932443426728305848230649230724972262319950005646168083025599204792581192007742147170893334128538382290297345945606847643489175867173308892036679185286318556658890978690953397210485080140756999546448782057008402738995022038416098712526085443494857960252104520442024979037254214519621303672165068845925952173159729926002554541682448758145188036730172938698458411013954137517221997279183128247109940428903803184476438235205181820883786867520119148449357339648589854616754233168476078451090395956786399655269542791613433256795193199363044289160075495316359888211069229044078756864705221021271937500635182074627475795910386435275953067064190633407171659074721800717132474602472235742982107858746092935473811794844683978746668338073045211761497601966446471005338809655009495346454668893511130374628047390413866680187179400945143191227777783828154226459991113864026379933658012825640869091619246546989925212316403548868117274375257459674262782200473484327824868514761546681549866603136546680294683699538714963441667121484386823063343695805869879487012232795590458876411672408413782692804401735211561191707269879372701055712667090343362507892216289795976887565694861307431983179377146057423513852765643385285269676898386030741944004634210339223015306696667940127775618365976764417904362553125977257458693147014540418078912008309610084114937852060345884126352641712181681952974502862953064859779419226857971434866960158458456120808522110231907944104966595711554233050395405621660127525246914733463211403405425195643837248398342263073833398135134384111923087397479421266581921256466613616124008491584933931351472609678421213973132385242576481083818753081689897863775021316405847594005339484654432426923734411595851903873494835484038046384659330223572181232507873149208221377550572758521636085250431563532581718060950004646801809609178095764232340467598145385903621626183927951072559978545455391297549828848975240330726793377419424752288067976297105286345363226136748129915731520102389816587595844494670250608387223500094784087269744271195452557973421336103299405690181964327622334927803122849288678657425057607072487761853466869482217915205595316115076645650869322135607799539992489958868303867368979512649683612053142103781541694109195659308514654760254614656407882115444173918190471945732216126256835610903181502207014081720499725644646972220913373907998721050046438864722891809947622893330502672347051295107071771724627541941888522680149713581276986531323738286367096899281561301985133442980392417988433635506384665795908365318800852235189268424503341552903868779193621301879170653547671552080429281328791176661934892175069064112421086603172998347712195137679939338860805728128847724859285239296460758953406351094348558263417877722319460377039383011463255442581935383301505181847733192233568042956982236905502443069851504470457201608035473447744793687067282707650180231332838597572826242638134755143674940321528148081035993590533331251376012057728916259694367820552046477057684438824410579824717586845895415818850384685120827674444545294558809315623244650498863207647311696700793522811468387091853603583264268516554894432358952574685884889889886891077877628389838804082242854343892695412165816000616850353084238628919042595649452566211039621577262604697361598092696621572254750822436941760386011714753643749733760595062673745527638581576862271931550277333490939809825288843943666951289016124933286340188673130693531471114149992380199436012320930764438155737091994877734171505327761743550947888320505327044545297527644114325930381812244442242152735216353431596638193840251389914383268382019627537320693716545751320805273505028321757181376022490369660673015160761787592372586587409381548502265282165276176764313083270688308347063787123317585038471559782717521715640404192103015363657125410343507790478369234737756794923281148701676197616976793039229906672704391884590113325498079581308147921313324662788002088590178069112281230304060775566626968449516131205351152520364782576522354360574365202851512050495453136438349974544835379995886438486023176027174644319273157462150868257938248499432853824767884193643701565822117801363133026183112850249203610074340922685859103412606827047290316181410647274011706249847187617489588086488226556307501908484776781420377784524738171622322756916095247641964996305643720521335716043083379771123446769770179873291699689541481728768580315052998941145370543666114037790653818460192194741398802759068365658065587653776492046496923298027050544827565909504078829254411387362542311461417577277702036885877691332567702965301739845171011704558075151659748339920431260638617046818079705698174393796460919904687371122846192484981869929730706515006114016385226202540279592227646647041350755220163782358521455539604342788064856164691013525235605174491208962973164804556943003545621053518738901565168140426284895808865482038302035503346851547337390795865641573694527073908690252539474080967402158434737805677020553102052735048711709001717963237915442760911573359280527229418256125941842337741856698807495521304239463096165065585068559088716041956582040295419502725179212319024574151966436048249637231132825102155222067136769929352632669576142317553284751575864223195486910732296263568800991383079811462372510663228693824852648800588767463652426365710984890441929523812694898864164649302036455360213495185995584823318380595156323656745239575021022693032966092002683745832799662823959989629735543376439868731779369477669679493801755000175062472924586739823404147924790366497268208835781732129488060330022401669467199832415884678531284047938815704714936813273501163818029849761942315994465010605105652366728195682766484534779140343799910603809375052182540812986452408387629810750469365257931237593280288597851356512135073965789336360578170816301109362821315304933263867540822880580386164544737050291916684808853177920449992440572800411226248942135991615551757834131282081745452555112811778305083227011754168150820341796244154536319562620621082955288511549565816026642236861360273460905182175775189382718556504819272873588917585764933218982502625159177768833819249352740574175300779186385295514013446512024436965251054842033195000824906055356701250814322932160189300371535424075445494987033601435494680983840091531002773307691223311073159605263619842426230428596480992447012950957863086518910302918097833427661489693090757520256866593716832843743676444790040777519605600504278182241651942437510213269463348329030064727634060029728639004311760327965349497746750976477652246129694436495570852779567932321990719912034597866061710645218844158760849932475477264790487877353934991255638686982434004096888333444987161511805245235569297947464747150073597062009795684675075247057754175887814799563702736996939164481156681521269175575387640539336628029962846224684375748666529679372021676969438670893869122897948275365176140106387641135306115846639835301618561552469163760092978143932401634641417466143141473737220383241294368500637505533380819682687465103987151043846601849000573584905523564178484968615792571971893246888616086275709577721127325477871452685877443876912040969142758751884409326914077370535450964259267448227875130295759500863966938759622182100232763658221528385308062353119076034240892134398337697896814507785977506428489019555669599809486764702542415903362103464129053732308984461086123937482203055743189174790324232339011895467596001535001537980729820011920608393623898319400061111632113357837325407141521635582883465946116678187519939454075532400732708850989461491749792389385471720120867653117796737968522637619838634264753737346910744881306886249831584067342051611688216084824024421813374716987804957208681647260434791139143306831911177273613113411204649463472014402848213954774893567457286951742121315915738305832135571486217396863549055631551093113487923797186363570528276511323746752869689480387638012055566347214645825996972450694253810698183575242503606956934473740306889152197254893090385883780376953171029213633896152737243398402901122664606975000816466422867650431881881032678391577030378629829693602698926123434130596687089116232538615051130991147269376589694048937463493431700789901696367296868926459995357724123072766416509876933739962755620980741327469881809674386553652490455719252049243034538793328774005042248103631724149379811867455249151943890709012657039611017427039405393389947682011705471284230141206268765810075110015575781103870101466504068915378485223640405584907137148446269823809377244961156021850980972864473907517506145972174060444700133480589985920217190478218996771417608144510322648871235670170961735320309805828704218588554594411484606925480884306363758457783936073697210067406007892021684195783287182398071079142589221898472111614989071098169112337041884777917592247906467403238787264302847429123440905077398733822558375352792966950760167761259897109457790129162987111648172009711321366330551417992861461335915397935660151596613099147726888632655328200240010220887558618832183768090718469332384969940867338936084006821492249112360594428207026404191133270331277436923590630326819035381585867119127169397512909849214774030531776864745798478142643611553220929258161920030088762426757078631790774171499830632307202721805960539465189343378177019008589535209665358411343688689137062274260892499032954922356223726061996754827477160759426476554008195268258863966204944868036680082319912898833361242734750233186354616812172914825465081236409699720485297969180401576302661392399331591646943148115118832722558787071346587526309078590298066756585883216966024878463770753747163338147325288933685944288868610626989476025833526874930647899146348837294494442791643310499712171111137620731385137147479175295066366904233810373153281054214663178654574468255209978916761941146365288967533992748866280263537112444050889046733710174174712400071767047081585592167442732680970357223510194911083407809796416297923011233451788828907841952496300314930001770845117184861358146534972869267387132666729104803868741180145794778106665461735511726483860950164223776849671104702626754744329532523164784392071881474162571697683537799393210337837799115597349972629810439196076637946895749660918432319293469083149651335346397907565194602135187250126240014158234449633764890722092308371814640154630254839818057350423557397265290708230376557382106831112387292879979161910306374721647667501130937774798728120983447789300212394594298237045049969251779101972753078528077034916028747771070816622075903935027697072400798444423661982008849866961475128228760311635275299716974488819088742254085374109002591006796430143287294863912182022972268591558730387195701328394887749392135896277523967387722165323259496462067395677133994249596847036671728591227487117874859448535517624545979755990113205393088992525168251281045524433813333261805751677313633997841577122359639658744450790973208767962074851451791406846895521171357918097464141766373052240877577882658373105950011291200149121100660090190743764982311174965934388453603417684033020222999632796707222952172234491135993349281623263544637152622395825223168283255892217827826873995696558048899094105874603083240667381753852570722643888419544121382104691681191298636221996480148538205593295652242725035522898914868205050648868023315743751782535345925858713129994939179217511169932044969740466409177242409809477980329098281892968982388551839906470854690833003219044498621695157425708131525275941443578280180265855691593541803114081711842344551467372948267476961642325091491317079997369800633704859197206627957641944176191187652744530738362822249598597627032632657236789605947190621997821566797776514103170797285176081857265711489525379232832848149205619682774749911762120503040697553205301257383099455119836525317419478685276818294760389127775719023477791686172438305214698017305938765147162419943512973579462708968801577860039064933047426673419025901073458053887806847649590067456970196296605713136755134385809181797333142602602288039694347673469879643996755613864933262546041179596723406745939230241587866242726509762921705229332464027835088204599758793839774214720643189617572587270615889162741483670451050451218559354023518072262565952410783278293324859718387914007536984128178807705316334337745909029915759032579751280316171945295064400898878772790254008579206917316458699096950173284188415221265656280533563395002968146503953238756445662590785376076927761771834843780321852039758934240176069834164933421566872983462721074474825647806279646094481635823291296358699516851669167349552565295364088915196422223154345746399144624412870850662223185704138537747027954948855523938729452395149989929038084065518025884844921702571525159015831072345443738813858383467447669915301691550409078929270914902406484327665725528580907106122432492391045893827356866144556222919149231189375942725028829911957254797306913498288065585077367046753773733154008609617682763208927453182287004227722616486397147548846012243066993164455278740976720390750090041487420946201474047458809948716554318790670795095768451779607252194841628334225450507824314513410269704229320984705785823605384657771033028476171538396057939893311903486860622411055412544431887035691480171406327361070650215452973214910586862169537927781870301647580193828309032645157974124478109069376239284962706001208258277407712771639431595585357077458981873518801649342884880881722805324080435183314627994861053886860414104547323416090223886574688283240294273612056590569881425426950526212564738643855405019901508096392833578565675314893300210388176633353942553035084487865495604349990928398526861263916655733473733271867902523304185178825252479791717316117381549076678426727360068463596896324495847047475418878069957385901465401020033244442883917237571994943051730120818251216748022768933754536365862083756799212149794889350078249999561986835560103064622884150237469058566489135791209913030409223648586878794880083206268265565830476738510001215253917180105626359316185180755874041974066997273495487440471006090141722402919810061076130730237017895219972850761811190442223028617832285383739856313400510322697519113057008058217954409994690303561384212156514577677584956433067449949812220547662842357920125187432325913539861481407528810712235303754838373832042574256104063965886436546362009228321969510360061313468831883131864176917510222840185383456938266576227093301985869962035613031304568560523354775219547158033504977875961376951319677506798859154402028923910257121786917421799124927237950202892928813131188980506363136569486398687570764983496162711935862273509799460617080902896885891960476215291798950247915271172124928699943295296672761450455325302002250506602836928062406082319165308603173408567718882359665745667219662379482100914033798187952022171170116929114154868099887511478799852143074664593904711559251815771886119113618654426695277907623424969633233379873144485312207883389135335506553318069401667237771911589389688270550060607977427618283850082600101363532883016457996566493757467988583090486808078522994007594099437455215467242142988615302750873877836581981328194092342112159497158133060862374314130847644085268213147221832261580525598503481608839876631701358884380153008939895179872092280916040494706763302773271798818988421928733354152434774142772548451531483243220193654295624444602957440131931682017818217135505523385253497088403485044806130040676663441479357063550750162356415689129508035488853287819320439284125444183266335669313457629999145953161115197537871209292918908100769234184064635613452556615125765468821180551360385178915120195284134682385707092033556221831286747236639266597867243086874932655251980021508023632522499601233947251939397141958815867499533678423488425396617896976585256993504435268976495123617799686103648893768457839520093359562820762525999673138380453481369734454360393508381252213629561867847638082410226822314387397091548547385711473809317305023600472327802449024483542747885476262909571275136292225598470178640569605164400199203399164183790881328016289784463106131563092696925855039602784903227267640577351235221104922364867591133817115805317898687626422500984173699465593620620237982380160241427730115655596825152298970677484692045077369327894412494469818717907199220192975453556685327795541405003957279275763177729366995979173812381924301696412352056726510219243755899995483770301684287180875847229103576466829212914668013521059980201026941621179540084371697883137181891107009882434385939137691548013985370220035842080112950519530618307160640253052693762611609033939024786594176977220616934947264647984661462475905372430422625898210364753796510876204054376188034403610884652137174557376089718583416055318488720804085171835509333122732781818843106801090406963080709280424588675929883373709636751051917323302647978702867156795137178954949871468442279321769586321219841648566170216140962206423743877451294647534560629236669142768182162390998225064502929091567317523834828932719889738369444448861825394919913280052929705384668243800760233250013397051952860753836651693757525541551515060082802888291940273670308140801679427559485269966575844490921496955745644593978240407786167768807037698509506211711276282651679320843916857263734391218888772271347135265219995066008114106176063211635525924622338763680943532469728149324484968863472017654084599524193300417666542593816927404961970675321661596138959847712701515250480684750119805845830787594793970259489786881374363986502819295103422617732135288973194919103124705677975553344644212656546177774930654319482398620678809201918522565500396577366348688025715285030049064205745668379464289957363046478886548457116923801978719747347550239065653737733159888398693164549656200012704689980148992127459344764720143843004909798412741357358188207827418065040011107808905589202121293986363579370678217312466094121903334137352061930234107804443255833984594975793049589011576669309384752232430234671984824180476314773379839232894152359096182418905079017286908773546907669047621831885225879121935757691208236831889484010420984628185389136356410106134244960607139062746009056599304337243485816566928391030732211878002228227207497966977252668738768734241740287346178246364498018881383053992321572680920218948847610899566937282854308683891858920173304428801670886502545239835957160573564744878806595675260904845762968485016907994938962455531773887034638330738029634008378778999680891365004317558175014172371285362771435663545166687352782108151472961843506209085932857695270175195737310164310152823168425024118135316908108725119076297222515467683395958563779445150016142726074578222124661851947995538755219661039292528364586751575632473688719355833849250537588852601311468882987085035583356148588151304090022474341835999702374099469833315939094063920066564191401146478792395054230204727085950237643105782792303623168244838492678617701775730591713416226972618698388621423306018010906067755863679144461371003106998694914749679333171221627436854443053555822152549828319524830302802267967970296010877838576565990024479681883451373198074411612238114900856610248895745900702688636348103228341632050182531783672000976494613438481659273879373244570738119456529587680976366022861143942025225614264056618602285116175299619541156438654234413114283531459724342327348924758606342964101632297047959348986145440196096813322371542913727586462716986516289625521650036840728740756874244429104525951920474132315185367296745261784654942835377217986916640141628348229344297254933176584353510448588083006423666785447505337752296973340578168767462034592766437726022945198485462552163461832857497296385790407362662265573914495489954203314662315657334101171297498931840939123583554848700015386424678640999747711258026570849377555010782815170705134276072535001058834139309051838621304188937043547376433778138996138362838943002407677339916753270220468990585786749322295445218226537293061215802889011821793690091981988512649547581073279179846250033806941812629626741982017361587754354459297218171686447422779969478854871693703917154036411145640248777621846728520349218740584352907232573753963451472786412870073774089044940866764806379989666041214248311706687582982083053286923812890571686615734773983510768916908023007975216592154273776446922463986205972722582995768319188265166118276427976434706317620579317073655300352882060009969010421964101943132293991118982103413740414115885863420835837968597035594805050014489577164168315743342866473679669924723668638285687401905583742697240856709446818063885058898547002107445712662030219197777537333773752178447369378317525480483393028269564082162388627688427866381560386906497205599626930188542484107436341573082836140559435226635588123571815955578872546931995426005734410381749773716658805946542983379764825314948160609872673669293488169245010214328436393671358204634356753432747745908455099857394774303383285015342271404118293927699075582600169290988406007286730511317495955884742889358474392657324765405060886226609898589223848004825096755515247890970782098444567677249958259249967176551431190164122386141005097150590455487775141313926534850137422487090083730468752546434286250564101839995143008820198462325451869584152956866006866791606230518561091307187364215052163729510329364529844766108686619967063184459642801222371537436399697170966272220427147907446032738857389522796137272923561554109765388943254718459890048963538408034148304909803505040053409412079876758580283295763876920995838438354063993075265158627611211437836396404284935652789919203111971843724895872780935849046908929188531621171130564929575148956672767958969706971524481964585276957101673627110799438326605675662727166932313874446865124131511380931507089900492385622144403470754465583096645308728731553570456031595100528144810756393116896826924387319199212843872306072999980685942039720789770928322958727977351557476915558705875533053587666549632876553943722527678674815571829477187100821209510461291414612226564457373465374645357307986138847537557286264158098762070835941884676328535081720763133313421364522069161350957965330965248302785271007311919190187799118982548216543294921446371592408990046649079314674974578479285360313572780695749270671941683229100726752735842947913112194253239366585437311187670197347354494602231972985920980319315240257791770093081400316636544556575213771581600288641157418092973339504534132909464152919540932681709367326054594912143711212016971527018867617493549952744530706414793985746021279546793823761406956289194993779078177731373189316321422881668242314799919776593950110025983549313854533091286942627644667893407578900271404738591785425238333943045567885188831307365498173552011336445687386733260452989803867818387253619188441554067421644692614155675848307720754845661492638542018048460851150905348984806482394081955829703685896864098401330072062189472739858201413695856470650309107942743673342350538558040686810726235762650126570614250531207276639396270581122950245762689103367708999149551192082340490986300497165333637040868879646159236834374882112001921234534035676408826223741888871517222640104889382250950191868318762657260947040975387814151748936750825814457189333022689141389585705516394121406053315839476517654684683553869481281064290625133520947471082838626371610335516313611181606561022848801095385311479145667239525691124188876325573883022483577083706538481566900165492924991368321773823283167503951803421975690298195588044661076534334656438337683683657469581725730221195908825343761679947529353086972155648341657269373763654207332717514340337420154013227002943382934701587696328192614839568709354816729795388169925063581468993948785496036205247269309103846719884228793222246037216269044659440902917420730358768615361941661967724537623982852753912347502764162946511010097209312152233477841035086776066638486967352167931535510266567561924375104309917067272118721913346669639448748814310154771607664911773895365136508799142036441390831581889833745166187222238548905017675086635259537157536002179152998330458957049150635158806925570941693008015956290464757916281724530876728136673484948760412612137073110593962622944874931937733580289852749365242359314070487979947190989172690708270217882703061689186073244684114075672257106742430643719190737887126626979630966366123466980772424661576883920815432322636226134453156416698616880252721805122072886083415616439477852108456640925114662755426040104319723752921067489513820421048878137255869489245824120942640369452334480094159342949898277704864982689276076870896636957429486697812085220351566360653555729944734583479163684501687123737687587751955141876137445751176639303659684268760206866875508274864076619127199791704155613677301900234165185413181989546851121612194252852448461623927937092563511213968920675669862169574573183090425690091832343074350804808790442944082958935813044801145223564947170019351179915343842299614512482637566830256247226500961315968296030198425508607317025085515784052731322653651044363017357812487285960351943438093981799672556727175307643400390000068416370457763450531588669616456892978191820594295796395652748358533613978122010759218378973992099421459580995590483638461054225138191814747701070259088613147798897983515518397029874223057653631331912701604997289167739867841601261351005304629061371552611901987419275121896489476253016407969575410151330608005430842827537718218472033575152847715692556880419068132157592416043933205639346493047212035069042770378918561618531109552462905100975400950628207203076027902598860950575329675431247463468523772667652603299870044363872072850043235709598129698545061263804781565981394169014736268962431468374333635012357283347135759769194982236491970332844112984977093962214498357060051409704980462375874943960066798943538315378296993515563215777127821106563643447797705033072267456252403075340632196401502613478167114138601591102995047515855646771698568288738927557567836135919233992028603750715559810775406626043960722558491800735666405185222315729285436752248469093043616516666434629058701688652973272944775520358651796526485780021422529544105380520771695735960071686253062263143309954098857739616712314976971241413205441792239275146488383276578401322230701798185378723164851977972329254589987075837739474998035341705922644955427463922531382811265481711224971205699605419849565470605182358514490283202360938610029269061171675353319007041027939041786704709440686429489323668842859048526238797808644366670106281029623218912057031788673973682135761006094955951711289536811242793331396093831285449929311237825471724562246070813369983036563805120969547909118749914627153429366742725790805916758623004256617735492621107270249659609682783430032612703108256764632186534040808951604788300017544915267965495204277037713549377480292291363550262054237002894851690475199908626074479715526395872811115323946007971214064374336135513061413294070139440626998019148237627983950874570255367923138614379856252631048356145039912011201035769529336617709151967268686217122436498943599981576856245780096875943194657120038385319897891084278777470371589338391469604973269827519364348980287943410189707830667520019769955152116254974699850842682750669231419894614681235959748479980475169139535835857345615058954191641737095147665073655129810842696015128474664029254862238044891296855231388027873429824014061737872014022605211984855839713059430018434765731633613063822378328523956395666085104849535073137618054668586805331714001708339120753280494999320437223510209091022779448787933260092444282510560944543085100567270924870664427749204035885119173706180920611049466800482273913467277439247140905828300159843267917210372327008410687783277815687018746451060970465841159206696764858054929874660139507910814466880427883816661613408163891263037930474043936873867851293636126397973481324065650373463167074763230103397796144706995072607222508680559620700364164948543124392068278460702232282501536443855107149576010424957080367761529121170379220037095005366102643347669530063437324002018448874038268632794134658436724608368165467438616014785401321301680665346569944478993607380721143426402844571004406022636870534827869351336718684710966063684912243431170638284118171218440171620158327179242402527994770258991005541461951514602728215667294641515352610968245046769465731531773107776425764244445844066022245884238311678799992375950355718166026399449719661417619667151267661654101276883225823708428345446229969566609776630872549322162095367328018324578253357930670496594754869222957845450209140687667949624172368781592216937908949052060488214649861216744664967246140735874070027243649110095955525599852454569947414396812488512379103243706092622464270258376589616852626875491224465279850534753621839695454661585828638723831878638621647268063449948357108125236459689639559495807040507227794506148885614008405590324250734022018303563898045538195028142758716882711391004054617961910764443069262651526160425218435681683352324485085869088596567294834369631052316465307328574534710687842011833940827175132849519443843606762057829450761337404912240730357152413017415991166267595531403579553906689139249568353139765570449849920435886711799914952442391748169544313409802879071260252989262336600450089481984962529655223088764798918450939171465844938053392683809358388122760033466968293328303250257729627012037702192578734554229067163943791766996026781968101098452497201284255185269676522350842411484025195270648044031415306093477154432740678254827327993027933345676495688228400376914058315116372538925727909254592814711160693782477579342193590914204518888581450361769798250373102394075707743935604429035019764569407329575685295794544668151150648467538256141016440260169763373593516320584536954292604844884506557585845776544159711988132066097521634219014280395861232541658030441220575014059110305630678221649991435478140475890548423947860342708699417972485603904087198862934779889119534129479081752096300964018680461427922371213071914356083431342991386445025777646541432916327537458426965502315233169573217569430315539835951281328229601335253511063723052246767351188027449153718420326923970487877660998819107037463678775817795326265738438239225381686602830561812903369161628594996852701159505579099969857627358720057927976406739660134841437032175627338648170885173089873426252317893509614009348615106334953708380939417399122740500549009649391369474643069284923761077463896155127163381763188011256712506530910511956056612101662849007543060763293072627739631146830516982764787960491291368641784724505358611572720030894482294163576529960191723073849278730339200504932867884782989555607777519164610243049705857133685872182861925086200842365755572011214639842076024838562026318312934677107039208748814258144016461125722974378941087585827719478338578479865230267150452750754705852768944572382791976710189509233585176576996530647431600801409731154614899481128674833422370605796032909917884288067889180654144513315112205282001365572607955006496247031393387715480136252647812197024835564085554609449583898498262068483633753348034063037501874846934351916333302879601165212881014834585617156573673424422670568748772309956873997737392238297874897173355016136697441638559967288949487864174654260024347174285925279517007362183805993595230346244405262555627749119204415754972571454773912673670698638244755565081338766988081309056749994106013759364418746982490236360584050070370227047641827987951360473108615503455481096691157577141140753161919412856941965047758756970705413254157587404078527631184756045282744602682542727363841832250371321308599385847089029177338893596737458786684701686002646244911811123463648037992679857100452001141607380142620089403251660486113325016044622245147090810798019376285510670952828051613000245902821645774311249017676436860799500024603441445132418520264587866273860980576210236702629854234364884264635084972357241337262073707471432116943137884867650024697412837421580443358810845376327583742659851392964175486119262636726595446407596861811364448125388335007105110056161718612177024618525179870264452912318060391361551455760159425064458935542978888934198802854314053816489255462951776454304770413398569272106606481303665942071654200209381165657955685495557855611200425327060391913703673358452457096761072544505312197803088608928981024420257116330836994747216595952123477194499209906680997766782120504441551939361338278712341493333580249940255374276992622889914393966163213363430075623014638173676986411073084972793428215071403664330427517158626019606365735183539989729814456262411838008867589200305190794467987577168173810726451169548071737909079362922845596966709698754944019096635091501639914183287932150189855442980292989271172296773288541412507621335033049057453936728010399176719734751097139469999114197010051847062369104154324630460715930783473632594179153368155445075061813825838079135211280981658851263356532543614401428991985776583657679683305878747921982766472823001478823092521618877886258961801153391168977928265953138281416819284343384608870212055586354340556276484664089563312001899255695636698285190830011716301405900681767022691660553584990334944754679371110839304874307540588628720513595244966342411193186059894946438258258801285881115847282304060642735316700306128563719576516718740600123503110631240809460144697494640327824962146662194310807080390944327395854310610503126624141820852320330362202447048491670959900813885401105357039723320201538785722562238632882960935978001627490958133016086060490725539538066665113816669945824703108251009057042858917901920735943980912545137514837146290529444445746991050251618600952067435607656630363952578148789755729719475245151707946196130326360527932387221301919351573212675453240242718101552853220559502776225334150528507189297907430058046650853661446745244503439720940389082609672897636006234556642024191221657876077118776372172628287539202903210435526844560081547213668651510891695414700472485655587179620027948184619095885537080616975395270252770014530972499808541468396033357749834527072162625575983059214294983574823996644686708703521798160605157582635268274580771768429254986606088316323998300140972265306793506472165434733071621272809175184638341020039179222280336616455029635487859228023943004876033913969245566997565241609585755590175338668340141657456530170215202497352960430247214639339944345204057826333497032934149104575265801355496141089326468348614453361722373754594173016247152425880087070531597582556946591878599450975470583595811402708141987219839290372301566800374413274978452906721964522092734659084829505073615580219202683682558841410481568727939220562875474053211126501736848480739831112776045799912653781215995379329561105319810556438325486852770060981963239700772529405558595034652468183279599108251777779612259371742677548665644901087242312016045223514682980997254440927840349557071553213957286373063054316672925495864693247827198151195911292314613174571396508946336112519574213183518788996060075877758304470237608463353644623404034804664084738953008809757908959870336851752103189034341802409356419489757437452601354751700841329535039180571658827378822655181280671318063595632276339091750959171969888358800375204329348519214157577264243198227049591416151289027325570704033444404009371439207291989390683572896377019451552174045678711416753646752363072404062932249493615724324782101614620952191133755997297156427930888379739780645546531547863712310646335080587627895953619054583869327141611021346241772264964274336885173980944399490924924388141007248583341422290066027529543340824250134393710288328499285845882470818783217754244919880150139443970520806788141269179419721000350988488093540738257049879280569908096789308302234266114523934120339177390677217998673450206824027359969919284895033505251177825418150872554783667312566864188900237679767635433475999849099968317619347988887969099699995473773943681452796950341472827579922486640707086120454187771239737377781057844666532360188833416377007297656746336131789463100386213584694871441102277990180467987101662953271446619841268372133272125301267106507671314120744356032119039738034999096945240863581067419404134070488059373832826764539030427035790232137533989724051040081780895471551799292166027675442827569613175175752324197182639318419924770820748806507274865815148434991107363837220686418686259047926502165223553662176300704046966384348053002570201378733835283265735935378707422314425506516815257308071987009967863560608517016741619218372978905124456498844547805914152339240512352382296111464797154030771184832417426798121474998180587057980772548304148556826476174723922959907149496322502416608921266073414898273060601314769472856036052839779484684199419543815008940523253453761127110249030820125982496094262079837798234328601786652156928864747935439963445215597388027364475806795589124330858621811777288450343786095381461109401254395635154255296994552241155842447016280416038376466749720389043936801101545460904298341789382540029563527331442930778919375007862398807209625495025231813742954272389230456840679967757334687042451558367482202103294391364810047855431253431356335264954562481094400506217877181773680424287463361546864739098328203361026640733173776883708222106810384048407419475591921771007320904107241902137632096228409135898555626126390851762768974178820873823931522877532278414514147646192485487204819248252698053316470374416497995063512230776753164129007929820845736498795165127420829805250814079055593149703164795012890777559202417557116103976896505065548182595913249172509013180487027679234382442544591606198342442246128407422862376741378738504481330870407116762003921890003770581017689636381657281899705241495770257786715319931022722652534888209183635874540741285335423312507047101111899093199247411849557272051582255278092578996608988113659876818660414824948430593309568369281736796759755335752874655376329701205495400448741149366593980684296959028776589424569292462214279702590761592788621933199311350796272056475589615736549267221556384181885630738790111772265746002648353668496428183740158831723588009182772641222983419551512547429168549953463328085259236772594959430979632073079221201004938880684521185627536682256615896106741880545337211540150279621140124614197436291901053202407254563876363156408796097821180544602490255514549510574628369341256049303525798835358773314771258484923329678271559356468101123309530816451204639954736664996339558329799305484448918997945104701966673017729418482575735687956383748895450204318748155594162089319063323370747521309216092699730259560206206775989155470255574475180265064740748900584322489086351706201426854836545589656899014621653403516429383058580509205264616303451695524703102580290137342080754139184536749759605775327162261451318235948090052644080082974334615521220256851331880526581008545035037357685092137634976332443244319495037115649260840282249141499740256964026977905757568409724847710390792927412624647038004363765030803808753745492008276354655909562320812426521008609567742608507491908070511800674703496126182704009753361082304403296861225848946927275502990750032271220117730545218646372670440076614639064575138618625121225468967810769499934261193100373116718464901282592245789362915654474529123742279848847946731909936283973096352396175177479777792123968751792448748651090877436305556313856901358821275482463111984555891057478927941592347520845747799574818040308535500504579759132477900745401711418690506364141824143066837052744204383020628389785696787715598387944384416363865038310413281895640705258304218997750307794587047243482012111175688868472348799870023350996236969664292236052363197804166757324507334662516700776668805468265599183852634249666448621273505897788604550784488068649074616375959381293074596902171777502442502086629436763474134126929899459494800541873118131517662482886831102209615172830885705218829911321689492921983724103933095076254418235084344302476384929411656780747293478916614997982089657635028654079687989202089344514650650598735689312547129746002692926384957697134075707270122219890196283089231001217387895559453633247359482911487898983197444154950770323153886116843075355571291460526951854288518882434247293553550901883777933554458207203872474940123955210736341185796114395012605253223738723071880302923365531736882888245756301636993011026403209030549096754686829591203338266747982317645322273616805107393749798235451617532346466432155892125694497843399594705993458078950475459774409293029254399274999496802446914879012984228410184326696230339997002016951884547636281452423708135608274172058281847990254316715621403812441864131912254557480336778311245930891197677937800920206943394352037695283894501101290175759423602964465387013554357765899080640701139214419203281513435681337758924721381719588383682378977235848860880725531189265851742264782099986491550643349320150581633249625349578241173999088705135519146458791776426527149163034976018637878112636911646432456475731554806047609084959774907871978327616525842904826658113494839230688177533980879229456023398058741824275946276211458403305849938263018266019567050324004849407240699237614171131763863611767425572182414796029565531179271358368964656840130902074086085345737465812757666200173482660709110054686673424537988951839204147096798647688270140224281031911861492042801779747807991035133125802615872879326696304326718135359549626608893597959460255648736904501064761169200943636633862376948754841785906274736724862559999150124995654309423589705134308120310706968110915597856214210166677052463531775903666411281515674972615114276595814042873138851641689784249668352703597663417904957232559095987432233489157412972052109378080343673284991686066477866007135977905015545183413622162306610990163050774771552415986503439243830769073507388073387927123139240053921531553588716327172922102403639541056616569925323894763037784808248851526919122458650911426246448989401133200775382727130210844287443310180223484156757166297708052656251671070241413741498065461503097166854022578159302825864105053752964831884076188140066844242394713528655136424759367858901919042652467528359561556382897048588521449012472032205988273991447758365754083895684342248713473983307996746242569597086727942060229102477818877462292145862531453961191785967062920153208518591099353758350710472698308837936846420016264789102399633789071219314875645397299212780483698747044153909455196346923794104741860813471610130757794665914710174533069174815606634177218420856010736761986221095272515415222598585065729826465201525915393365277484795394218030784550950479588363448835954350260930590157944699765440964622432761333774192926790235378939655051409090318578109748746222142236703764593742416463718140018604469985892094619609795992999030826708226450805897996377835242035496738174309522176071260646465777794940442010047755930646672290546483546432838968328918831264843931346953278760042800796309850318854820593583667595041257713669505144567014999919445903440355959908653928502198507784857435679286411092014713960873123030260725092755744647983066752740999782162897394777753888498682212837044057149616945002465791389543844443060186098710059775790086954217751056218371710048530983436787080133786186476514881540871838684706077342297111771807912779884537507852501907690579578775760085025116478870038259085412265684196268605187934747515306391411352943169293236510504922506483343337400704897271519822210524332111776176936554021777254592720346708106514871128252802454613474261610207045297054912873480580325279923804416065016894453364972865498987215851641571897544888108319120037491808800487354401026374661173887502936677815484050061598024094223486687594066819156925270121280171106694799778474576981027596806702864648931927885036003597097172873089611024753232445506308380537185364011661385237565569947729635343696865032333926107972403132033599418830660323971673501644245002979169213971552384887611578984509996796809597704458663821245780712163821552279949906236598710865501763634650868141878719639385270367434267778081863868829692670058845080826428729631314775305073232789950077964689847671328597453362960337946670578661539965913530242936329616391225682359490376655147141432630642185720759697763246425418737747093643295628533014834579509828513061656246914537208499131506299553442488210056002777081242636958496473939067454746320709503548339246309414528131012309738019901461359323190612338338947491559767750550837135234377155008435504482879187374155154459545969206607175006022865866506384288274191732186276920990401971138876779035992961698424950388336252325523546819443683326746645554143404461557611755092853392503618886980068941279571946195763328537123000717255107282293748674769180994647749122842488586251017072462093607452247379601811004749557808391344892179730737935307528025264143177273029789337362177802810001192877490279319195174561520926020551853401237378220921929178144178328956511217348444635993638542201323030779067726313296887925899846829162839377311038795576014659782599261750465936457796276461175232967322947809732381064376278787090150524267267505518093971322740340709663032284961710781793764809752161009552326380949940021467076980176781497137631868707187300171124361353467707264636067992452848337201478189971045286558140496143171482352335038380228516495774758905804162870770686171861809620198953724163750228972035323817650876551679770939997829861506336936072678438467096794777159723344181943322015489154807317261467284522174809410185500636266750756364002718139620546191411522727784497662037866783305811721835969232774888438864052977204963021373829477475339028794794599683096550824876408546853879363444939702548415643756942681664128259747414283638613991597908321147700224255791860994186115108744391781200973329974651278356242047310010613554560882502194603511066558282450810218991129771485135696678336178624326339324994782703481019614174375536887014083496065657874745070790623325414499461050446412769108396235077508820615935409925256484403063559969467022806447789938858102381308770380020964469548496231031274341441101124537154828532183023564348997910700035770934877309356330615430517588934540840019696633684963576540363845601577626911535941963120286858821460553336425305188710000709029632811365351232428193135008109014893378007341359781966937624311448218450076701073298240479896048363697784854257737808894037095045442864290751660915659200829752360094833900654637540414205409942187556470654326493224498973365274299136708391851264725882908645298647655183705345260016824629499967711009468605982705020658461770003171281725378244164749259790207492926773974910708098996611186131794452003392835954506257012896269252668678997781134713719530163271233650410531879288434288981777279344407945026248456220490141612416681513891444602983904173452359014453775971381626677674702003239053064611156587919273993778378202804020330666648012914185319510022215255468009317321891033624431931262926210180741046400931471523211921606217967159466695433511949479517961160502554112942821149785657565811963062945219463848455143017168958905557021738641223690598825211804470303457829703951703305450514028367542173039774350717191045998949958897152195858701454465909693582509055041926077573878892810189654439501982339053161314632188265826671222383941153325599944112027275066025089285910588439590523446909465535525448642215517531420220330185337452851336251357249207895859692350931230962007157366116020163982710767592101586673009831835743489801354578991926954515507500621449181741601850267734200852496458361338144609915428999280585649080297635481049450694006558466598379829619520701857424102902515292027310168307431996561136813840453141628110367655407832505996269244538297496913430651883390921237326204152814505680714941325226167555482775203343121411925808483450520987974941115160758234056441666975861412259552471479110564213271380835318426743287415557473493963864931537435698390719041287832111479339527429094151544296006598443884952096467682491600138079200478163698770880267429125642838739798989104675142571403673388823371414560513353588318601071350432206322841654938611423351608600936150477838506475215081736081302253730284986729661641009223282340344254762329084845085855960567366955592269961621456628191971615822922608416410012443255702367840041258385088103155096596848330389224430755999788626334000519468101307423292246807021848552530491728570358796202722796639265234359606999261222021780444301821357860255562915357009529595967402974436937485003026550277615245877639361478978808729658807485767478000929677713389176497185763817992890336626141006441741623610147091333385192432629714984860228712539140645088232540907628347776146866767049111250548699760879148889092201575822494905468884550197310124054235852975800383477094618618866494224718378959055347161765049738607419850833057299190446761978954812948163806107040130163614430809811063757744194917549955329640405181605163476271488916982245978438744150853807132059399031900400484009139022452982516780543237968679798098540860654822043068698127221114573859340631062368945018065494902014570810636437640605292124133873914978941194415167863836801044300759419576268806434655886841327302652936340748929609610172299000965862243615237586989647179211271604371652336270445199562367055549588786084165403750209107924624019227311130946987615219750802006485927653880251578597932504347696290625728195740344670888587543327342537526722354587648756871016383978519680424099822594116966373144081387594813233611855073920250528199637769987121707516902700620242797972842304914177369616710008451763164637710335929647000953999858654408139083859017465587352141299069907692129979823997588539744447045663640723619489214880016678241506121031792483142176220062985836662430984878545569556473449740553426824936252334906019465526838138605161385704455567100367044335053124956936592115535643560937158748179390277987404612759666472103360285749757602516271318964388042615049656032972382006307609680363459247126563268075554660804033894068634426334208501524360177854888951083620210729992522174247214187052826884058963783255193000029868512698973055385725075692475964631610389522285077591161066342082131653970028208211981344171408497396312244947854724725127498751434685832201204556866425415755856712153512005076157190573582428907986012079600851764157438019640115784042737778838623585493596781045039418332630034358950025805742426395077951128036499136470131125207414243901142859669819768992466947522451517951017363038778647996138169551457868294794243013652701684275091931000143869667493210469957137158277267788789478155078808001595679731590129105999323125818765508778437427470603640050465923352694191442669165853032265374664437148340326210845145358818404694297494679869814056159839115533483637454609389972094554161762819046340379235701541105129172477449955387021861907710617068792710990487024894864467481675251800971662349877094715920697677698511058731379686228681760356442447450569824476452585136490268198555334349650218471420400243958917842808990726762053563482046879347776437547639513284395006616948172619987729755583794695901487295579170061527814717482406892028148495141923853223243162083847167871203557909989336921750217405328076676562470942287524994565742996541666142716520359434659440177911995964893990094113140390589688469998080178486800170754132169778148365316457683357786943417135048467849155997678869660502871457166131699815847273578813462452914883721281226219402300473511149206297040042385844776795610213214520005311494898524553758506947886524749222421352549634487146501992952533323967206830010145598278058809060138625852438452985436971891301107583948214883072322058357901577633871306236817661808142563864838178660917455270434161792837519751637520931313846546790083261259034558984901729085177043023743845365437739440070834404162735548328295536057187411959592121289535064542527114212189116040042138836340746751666447507955335136680438461761805459786942496933159982101628464241699973603257372649757360932504806801060007917736812262181288797964116277435757762610220994922418175124181304804505216817314148430994129055643551507357818295076259954637400903162235961440036569632679347626254569942283058781152892643457454914056254804136924256292457427933004712133833608531684238848507887081057714511612472934094104180792256205002130466836785450168808593828446871145588811134107285603057205611439121845348862187804850544874534836845823633860805421238402689757603428285933095205797698224591118437646633782553316189893465369456291349214022218293527783263072945504231244620769250436045019691125106640289175244178411004013358856073864610286786734611174097043888284665494579823310136765496878387149230206689416869107530307117800561784736961953660291661058872973222401217703333946394685447956567710604889250841411169339038999296527263461116399021412056537567690283242829378094815051380164055251917872379303478424876107090746769540118990195908887731885634031347736547270469310012586841374044957491819705313463227081203589916102996289328936960039028903283129550275424272601987990694601953685129839969978641551924010814683475929699435255626477952151624599201973118465476529493039737808016962704162669196679666938101499743819427967216564261849245395297947790995591065229333462633385417489909738853131668319656117663214388914282979224841828978317852687452411356431736547720016505834423660575981387850890854256504003747387573503994039925095204758123194333717916790025864954446039090910414488370779865875279403631710193488552101548108411988743753289876623690461977144908891390930964062883936199265086498843828465699552587118341032400098266767186052293724819240634737907470745887483687304219176164944434123355954872891426767641759280887233257915280493109347377459337381103657731518709953437130766487579110866586240476368773829646790381289286852929175691904838580081349836082579286540300144975610375263922153060073161418409625723997380501147436784369704221737981580140886594861611222270744893917074437478254377375897986335426223756766684705283546829072157674780010958591875478983056145743298517931463973872856174805380888546436898990785240807919043288299245836571497717255053942147910972034275330555133846032296818824070469232907523986168488291857223124527027572462696258657715381145870335816608835722178141133070267771612929084149659625361287457765894431897076801489539812830365363255001761765305695480608031852545985525079170090514109924189164901450867755150031399278399267862414466017476073999957899215093073771249649646743155575583917081123690268926745506755178834767094398221658648663567731591810590540703263245177615834121551529713486917864772811288458401472745815824432110033505530607382817366401735997675636570070352829926609366809110548358079212012194258687520676684828332619024180034489853952890115304375897084438273285780719046074715187931111857760001846523604077022200066421729242739150154715954496948521808965225006563668362408148243373825627444658819006842045089183155397746590037089516233465009172569920887922351233261117527654421562457790431264234448714999007613288860043557388839101306944568479551292585119578024559303619702082496841286728779632083248792092480904494386856890262343599682156241512612822282859787973761624042520550301314340409562362114541291805240973745175947868585374926830827226494161077109796047127059028653017318814164019143930180763274797273778035779873846638049376827373252743876625221105242009084218533872298930603157270531142569652973982511203495754640627750873945410220240019912459531862402118138250182708599755243445547939958272994830065322485255590018126933422493005759148444332993214022308465216794817379246834628032394103291869039658664361721251943900149515544796606787665570295833323608766391703299466534047529024812520675687955075535082200877555925171414419798682404313602726273223279583855019578719532996987328355301588078407794030551276424849797225400319857854315315437748731688041838860730411320827757178731467127297782669823020988071014138673466361876755792087542025832482891174438872289529885484015399838713789641593864891345524562635334107537063216532928084445479327423260401421860073718292079922163481101581733417288082079324909397602626095174703204332582465153209062605827694863150832469022364387260724160688416760867372559462481551542344422958851217320476256060780542927839974640351089955119570987297444875777425933234165629918447749746616410495551597883240866031260912980778105204934534303934532706537438225942608772372500106330601772936134907946139412464839191075246422051926918324221179642720177967361991468553862078215195981481157826594655304846239708326665053446741146403891626657699805888687077901420127669052581828252964615824796552303735294687995636864213571942955528483281432004151624628151466706540697795124268767588541878262101588022571872726730517892780198684688715099787608010958117133984014671133178171932732809436010672500628376455022100951652334340628036763749262383863763574973544928018763203976247417599446898964446435063056922062524423215641716710673858133559812437354198750182931598952218499567786796839420485527028818752638366813998453630260136580510696961293723361083236683756642853905287450542295613846228185595561709941444747152397545506042734388644718261698038392412114985727919252833774108206205379380940406530342872951356541112222820961507950621080865621325414362585409655827364955821175401496014925091913333126458812639893777292391069347191023421266592765013677136001757131376180923656004773909681168353793243759282983106106620328246557260643563648029037296319433380563988185465905235269320113222099666928495556844659473643869043054789822540100893586886853698299317410609334732051574271708589492280409874171670875101865557778800744082734549049742605097077573427468477617821179779548835322531280706124868297982225685348215295237139591800973769155054935864658667580231945024838881105744375561639022772364485934268637801993467518043877108990204771582711321876637007526765695068886781323193458164222717683349376709495898004980669515294335388851621636809852549139926010248475493933392783057116060966023874833975494605468863207390359650260431177447536001736164475456134627294609073324787447408275319958158253929147818219557068700326460787585129374890061192716055001574720837851555233602946388173172893622115470974318795224558248390251690565771036571550329498061104148356208779869799778088682250138206804212289419554486804057543256613879763683778773046630926395224682377265664109907038283075036761574155319375921125768517236684793584551761847948506964570621674929147720726230450988076161686370872316968728114643756000629559077553330968160862155182849691851160015049526176481271994898888019817452622297940761396795387756737059499140015894273197513734833874551055172878936065544484707553856396952345024763283963051139368615428917678392654570963156615716879953014509554307577234182552482528417985822325927636360278602240102156382314267486285385259113562398042950253170703526569888498083568926409964055156907721674000494811734189948556908711514885764758971286181986570593914306270287044979765451800883912624752015839420654490908826874915085650055266281638087035919397667891929863230756624012521028598721192626098830483103765419682349369862849161238271507614708101039687190093521242998733680653753224615592621111946836468252764472968881878505951037159081489508224552245101427243831263768041734604214346656576901504487571251399352447253111441821198800302340226335233243427841272023339612867031585991090154194311432115635171985956014638160282276113770666613079095973042378279844037585010974326233719543330244351713061345850504517723014191437772448674180722575860880951178836988288953491290698068471840475261658535124771054393044691878231818033332208396383082485298162633313496417741584130365937352551239911557792898283246522465803160271013199951718211846923775950181467360752736920908821591740245284135908281441771000621468391413250583107046028350032156783359288060546533785693500210365164641082013742367938096040395496219939353417647975394208788962893214776319626937927512955093977746909960184413471254208697584586363507710404139465229685861521743534086418551326357096133837155242743078849685167698538724420290791953177970868213146003502021221170969593039396318718288113294240573864759731839592833576153404082583831716439979114606520651989289840596573388834318174253017690989754158689580453759941504317752316946244752983024721278338732024006461541488156906900142605120432757039465591387170025060678508722979650031458397791066842949525330904055321244343656542883920146373403154341742815132047132035394860013848668067379226532285984935759890221765888140303648645739947386230903739919719690284865707517374587831691443725479307107175903650615228621675195047581571211646231233125291766023395887787991367418962631229045656523610004037820029651498662420235895487671769336867162939599273918002857541149572055512725319355623544024753846822284532281054756054136990984077038885249957771007076282421029731460015834306546854137801283488230018837871235477626118714214010927219788716262001736692981991647269810267388397850630206026770939509805998560734287856929044187552783891478668781972199268851182030438159394530689540125082299131647755537797149846296668153175922980060511325212980919002949733478874670435417655947853666176938545431609687717316309053307016837531489401416232663862237051831972811812778255364502040060923101724868345004865776133812844009844827516409958688485202344363070173159133103199159083058554562954698967088075775878704608814446815664196815649135932282369094558146425456872739771072255947473422416742330853171425977755338782851324722279654154831698892946703257697067781866438400624463815531614771452814999791807699589978853748367266633350149536208988407854159882145530839260199564883853216292091619041019923450409428702250296137136576132977188935153678089205686089434841419341613919716738041497073100994216217819210378488199809171770338766116980328465116515169359037617465987250705493783453087316804909883369283245264814836610827433957071654760505955133578883078646712440183110938357515337319440500333286955361540237022439903635261507686774117936036244776921226384444705474364495439485852959965565121379865006695047614451956402369112867908404066695167954469579344251360238303436429690793515987541678808599287473052740945309340071326638839077193412341498594287724009236800411101782366756579568572273067754741543331220396934091467315391967549069051485817479631909535898072610565925887649591280142683855929752233054244236795706669827147444692471874047374355222117071276550372066750519867454099718105417249342136459463261024218889931932764350447541788885323592307323706843299259778031881835611682201723510598602695872082712855724600188439425445703067896672637893371860897589317283252286558679152743412243411837662924718510086566471861290710402270976287712234635290435374280167322103616848930057532872521568956380710828739967517311687967236636029394405424399510326855228515496249456983185844428809041650305342948659827056798101485172294289120688583435197159241369533528104955469668391079474915558211658167195789420216957399664731089956756751756642337010617628350723581816382786140013054241807212983048502255709142646176798415692233230469445425048950454128606143605963326104380097809897229145681397411904265505497329961670428744818577688537037771494707518034799366116149385982301151433624083584595027144299254440649257712699469603847593049015287043889694968323232008234408197148076468555470089259515234479806214390203082925890567785068363229405488847278697752267294125977977761615540738798398375331981569935225873231081611602910479581268720280179680365808724906807510769487213562684122355091635640601883998685373783555014539389468489200974407488836733936054221279643263293698932205508754491219399047126790236804146633923695590826185117534135015168141770865217781779659776757018609128717834575460210474808865841668612605338291997142420979647852838689642455250460780385899954798714024382998260757630726063218573530119635310778865119078362307968801463725939164314288687698117509574814535843776846762810326885066188849916472294058288798332837575242738153373842964096448243223252829066348135452101598912992328634082757976631390952190108275862336895921609074085350720452423096145229112818181489488095954989531367269550124373304864247719982120178228050008675722559993129575533409814813158613081314410083768254940011256546987061132583703484471954846645320050171432491308776613200373929179762486903922626134589889802634015036525873953922951361859817219525444943569320425676183804208816779680887174880561745302741080758027732173325241122650812224809651416058075660833378546182489461961151474672207142726822601629164193101966311438930826435445956478076482655746945204370382340529689384552300764047828432291951847258177463198114405247919398892639924019144831456161047151927492065736356392750413981581247704383040424837991158366188447223266770593590119561821804199163705321892056869773011723763098381300053227743696765148265767360146339115715351224420440573094411888055228478789400537475211023163633453782464999203942041897456845805502952439505814817338370341668612209117443210914350176102143715748225961732905143783319432650487225237452799633474225281859847199798157952261070916399241709722553228177028205959758128647661834678501314555997142144088874723649361755617819044861932036911378793318799525876288933695627699404799760126635726948326307456584227890450165769073125727513922317618157783276043092619355541404233836975015964018145177206011195152081879844206421077141856775007688726077375580736537617014983850591344996734466613575273126905915355771891370938081581829104902146854001212198335669485412554953202933714322615658931470431505711538946951064945046231126258366867709124414879545538099937742836402042965335298998812257884215413541607106263887012394370316637256325861597563151505319843300519138561506052143041746963876889957644308522964519335331178421813566304451708899104164770843251403534705944645944397602392213229306266688689181143388405999102817890368711407583036978507219045852550941094958674956488584439413063663460012797881017970299986622123141827963581530633892061473932937542693115281158600676616743077640491587660766755108988039527330745179623860479468425723181791318460044105577966591209807109029837120959947101145699155858560111367495409426795596316473861815886492666295407123495164141251942164463665549903609851284139199986487953309262694368609362253820296011753625664919099639343557620805258360989893744998996994405268173598192517951877493146922816603698347158879450596676162889495569023199842111984450835195362664298715284594343273422918748325276975544843166408626040112051979708606608356956110769622766668614321254365599998567170791164025602204947080276850869315366993865802443937832575955001932492430221933985110566636645058668767158632999539719677365596442473910445849301491566398091290406040624036426794169431239469979826609332442734058344195648601242740131313513579627822113585527474952857094161709920062498152992956597205637399993900285724281213627760298216530128323107728168584971014895971810685306796617609336992731123878850232266427400002735431616274357464756664070167355140061323921766571681466281015368994553706955935611898147585340608456412975663115710943997345866359777219083162249949872125067026800419704972765036964296185493579401765347756805444282465577613744803448039267316913971165025755434841042270109089932745689910904005852339180322509660907681732235635950655037162157939920626087476813166920517162207790606501501344423522411837434522168133548214416650890371692703411651772674751860103827856641373091742655458474837646096225117534880241927226458257849213109624224311823484707330697327736289943512199990825264314398901672264281323464749266089283415668736042364608960910369318974014258427381998183476060923847548063013371948397768351397649519551539361559152341066078828522392900473549288832122764356976014192395714222356772378420211941096323728413064092931600586335723585119359238588358673843384442213566455936273080855037341428921187117500951522838463736345666252589717241379488061303761008087937582264503239970647815099629432291620737773326377216658414956653570769791550921165126872847436373521735542909582977917923336972830023557577057046991105771248809200111503709098777695578807232826704357131057753660176682747327435102960971083516514429711452451718379576414815739558264853961800951777029659395397225622459717959289528124692040274725715751407121830149385555299189009359764329199937938053205485058346386102401416463319697551017404522692387244819400905590807881163700173137004596335475341842648180400950272188349184907829744243884301913526863352832990052526431553943936535043270975045799144045004734825117873459366197778376657753183072811134764682123767648760181633286882874344938620902067768059634257853718909363485699913202270943576294509931551064464727480112249436265317871504541389979443300914636283493367672535004234471371594955209644120211878922037104767696592526535740719330051663007552422894979886943286460500092555135769220834969196404422861133639158645751177379540124098377653092939250182813709929516302588057701401430410558954219452575959363164703195880829044250261408899020111253286908782500440232179632778955127535320422909539266922975716330526325918079930542875864044958568704995256964122158098104993686166445407866276354999724788351350710440971073678716893209931913260345405716185155858841734712593923932864117010913387063747670377855569731728323218217995739421860845936830017360155449091786767025691211360351069322542466893830715232664041852817030314246837776648437115845651463402322831616060870460970519846354595005597207222230372361527581490707754149190107151111191228970098633117828419761446476629236358624076985242970702148880690803535113190187013536232364323417932952807685584495699733181722200917338111383223272183829609256618414845011080225831255874998282942863892976688477342175374662491149578593048964936409937684168507799211690340613628304436161481295694992492040739500779967277628542640813203558000116900177082419380943009808912467496566018708091354457594249463313341431234638547259321771742610053004092994659239457746631322444494593747006787923175810947769192667617839722535117201056426133932509721082357335171335579375808423866552951024301662806857763619621257534149978916432494325005368039081608143426211147770025189243237901802204812820246736220367508203972184792177344734457975220921475693252895730027597175308000789450409291371734515007037992470186327499629374779734412606728501996432878212463684042481361162632137274853662918430460184117416534247512574234112783157932729534647699356176598527462034999522873318816271498763656225906799152579706508246976289572392991070445021798024017920184947318988795709037030572139007017041346246232466328134249775231152420065203393969866371522852095175519877598238539456100511886037960114030581256073074837391627540400071117647482067397661157970088651067635553753686396645771682497909317620408783308195650590127276976419905683542707165039730136510215684770827983199490184557352935425795440964426589187904754129759692802844889286506131153549356029665864620202539265184647525149983575894214277683100979882981776178620595061745930894991946937754479328983643564765656578745918227946023855459174001057488122435768017022501680400754758151926194590645119958078301402704730350611067560538380255164475093153402233243044871130032302340729572593286451872429211584314920646265300536552582585088443299206360334217131794738222539679565487097438713372959625436289292849835454866348351022341386995342537915204480512901928956457602696811282942787244288206139081477398572233163664068043423370864240428931862361519182552038741675922305595437473122194824502149189579875536738492445882354589708936102206878651337255987081209604038673267924069883930174853243189818044226222191921257744435065854003790690312662716668685852963544804782061337609341273319928805952726595650804554417156437501182723115623086164868195734196252554214135769763172943971916261057951607989169626543339549078364643404522476504917036492470011914693586822903026875191045205078886405264152188761367303138492925647771090031929177755906803327845103377019634861534876029555822075064230943847841582842484779483637380525462653113776956830129713111579611606523772808622472042957883781705201717711025168461811510719644442484659804331120637777535238719819955410019429880106914011316279456140291202136342082200237966224143257688825666856771762224727240692740926471670780857940871325423907286498047885532353754622814736846805987769385283450573466558202078598975642286329800422241022045699882203400804250273412673092346741988924909233727283330084162031628131284615012741559444630031879410664580271201615545236526219271401910201800214165515248908685961807939189001392800884897306254127522912449654126491555165710980434418158762400899738576980861890940312197624419002255813239903476106058523407371192005324151043045794058778339186214493132724459880877108904172746001587075376785356048658882299489308238236888010227209841777254601742154661202093853030056477847480741954700508601189921465090073194695117362731202383349910717373450139959126590628122491681564076051164400948728505547942353194027603375232476883693027568688947279995443599289073737411698329515979777618176694846006063759916803539743679037389810766633045634826016094702278056309086859130363151711213376792998436467933270278465340377436689164222914617196629967506223751642743346406985331258476951754900527841675238482136158610751608117496504398867166200125395049900613150212201013086558953901721589629258017740100526809121703795370300376760457132904461538448189139305274015706038440785790232313587946018383362519610212506975670440301544298756107472948809903771476325978183064044421087203898469624283324731172131831267957144592826463872596514955891670974031440572574421567194548991431522590465711307150833140435876950273291692661831357306315310267371994420027038385349756905242193279477630038162796174766955674977304771031093520344961702850295678977576036930155253121730624712427829710590309699610872404289159483465664608899257163648675679262326122776972909913468551106374197432613240036283345252915567515337564631016158869223963674627866873712719043843040927758198333648393213812108079484126930753313422516784755167995247957634416976980996480187259625179494701248204282123708724447005512995369183456020167844599177122435140078618201040910008782025063357417232229660806101291995776084207635616274180503397039341155490149344603121851778203508602625789609861510802740283546864835975202721215166149893109855253873207851777960023264557611220191851804276985725649748454232927649040146068767562209655383312444631824748082674113511021234207071386950595957147779003059168064793346625141239261875854786145380783007546974872340903044485712461071142939097210946336089561849645173474128856486761607492491394746200690433138396045889486559863354934769493573599161669679012130638732759100471481127707494936540322940088060931275287047029106627353742611061963063357411063076599238385357476243562679162238033838951171783064200501138359535418205575389941308055832663942410350581312851523295490245061880104511135935849555372238413860471968991638928366981800965505765971536300133506971364096491093013503934742046457199498338626737733905615574441263781181861940836198203448362223905815803391374075323011418512162166032437697879482476633902211323621175972595109972690687543034792195621642645083748428720386138076543934717214950571806285583474530014205956587730096066800823422658585068690316233495796245848592609086341893409472307778551674720972032215027308163791743362158943013768689666571174574324429893298751696033879363938180593076507890608031282794654911988765735144354913397957486753878435912538928319766992181618633370476136587114159132604669565957445248278484124760442744657947611083301839102363084540267214432293293624471336939618447518270458514650532123347302748262172331895528115546614907505100292874356611002828493470212408809012171602862499513216278889561621128661897128809429871143576868118283362445229699330174056846783000503316079919449381909826322216755113808844823351388213155792687278281312964787240372453519610949483681603875985917040426700981205921287370042979428777096422739111562047077420661285743775165215971881346403338289543533628003225369611435288662815188232594361491169646246828522085518263082133374231026670795536806851509446210714412554824598125467991687940379615837592380079273427727808100309635643790373366919359946968387257019308747426727128350614926769567694881944616301410370892869044098276983007074523335434482462008253481738126033827054718522371119326554439634199142321179729140371973939457625819822025269384134708665802685737566149235804963303485595106815806493153790014065549274128937782624430498384827635286164946650486084304421792089693229356244318066133140968087055485386558248932393770122079693529813019318613898520889686235247382347240177175837157259634418796667823432105359465430671133795347891346412190420494408599432561955277123940172238587154153209881989924469225017592641193173312028465496080260280538644268560056179934342837020460291023842086213930639750885954782641751719975255730257094293849468224953770166634867892313652675373117120617985871211202184425255262945484754696713748321076606537640501490498946700842288951244234093108970668411119708686184454599661379427830030882536823168311365804291163772938532863738325899198883126427228117168216990703062646521603884304675034285168965918312952958674954962142302043579258376329469703281851836423634349297675979898979205861346834193814714957530488376473744929443598560974821366707033653907788822969298952192553455609072943360960507646795508474609564744481589938328030584157887262615927989133718263130223823782321160552899281582268418733514033555825823090683418648373001666632137239511357470000565274432382161893052298629354435184471050498740781840945849511733634512386102121283412969491268001696329655010409205250407579710624683896085556112894418335497651788064520255875583642291638283256913341186886537232856519961864514114663327552243333555864115424010863051519346879244884196720601099487088509474563919239814490210486901347290558041732623185788081388486511376651367875701069670061583584121131548021290553328772311285080513323059295554402352930772718530313270691444395299754351249057788726064470520608750888246874775386034406544686146882457743890393659395630719558174576802593259678031971178466382550172201284325560017352276810889815075516489187131061432284938498558909060445724749087263293004327041216164771138748646376945216098382057167506264214773559411417488932385167487682148203306854872410111857900405828074450373412099679173669729161110495733264958403246593307259511717926509812476621546383733469195241530706692143911822784940976974614522438913577953318916029910896841324019840607100709139041705424287356261469374608352556842182200344062866986269761566712105649697772788190810138590869252383702495518310909538032560891227032265303191192539277398381977751986850961509879596451159571413953152867215727342583614119952301290411270822861358128751923236433666199438924568238686203533685264191955293402230965420061646799507617353838923548029163547841039519337606301171627788975627642192840918695217278274759495836078040715439779695975422255834214780744945723469257869782818923295156538032784716811645449638437399104434295512374710777437246222536900328683130818936802440653957140655145484975169353722565269209655103246185940808026254814419520091461801344084929055401623879108212409020757073142329211685575844914661896889726992533818220894359051550985703846428021832300092678875868396145120328657954677057540020531177811746205934423914632239431784618040119188109798168717039517076387776807952660028251650082214973138984021973132460903257716453855977233689760072542878074390644182090426944770219778270385643764970393518679795475532629168273857006616779982056529146444215170951214789343795839398750856103798152410184097521948380596149926205132228547433077330574325134153404423864973884487732483527701368886241781341002542136251623183679256252451094279631548502290613508750893005674753371618301436463315941503155165792238658208569873682684407377054355959743113996520511987753009589878084156778280046772755588027419627987142820726990839139387235485424607213832134043195626947491151625591335556191657626244445164653634131851952542812091773134393001915134612112930353490441681391697107588960962883565384816591503182551795973554487001857386237172244845227267752609847754915226687035961167754689663214280222561069486789751946276535234945811588108208190532790167911982235540827863095629312930779128638275772502925163906093969722514154207039380380037644659560306910325541522762417749682759722014097562557711108424990553967796674416508811652570269714245138966405925974648367158570204199085900552442526685196027563636572133767743690773103293408482594409623888404296678756529259088760219459121357714719341116236198881124873438431429312595441030351643954974278675760793275939941921803889532479420663252058766936238095999638747767125296305694853979143291254572729944640216172954652890876096445613338562459597106332078549373719269046921295809671337684823096631776882765467403225156354521589675579110100042575319888177915026729612180803280208773546078371858321529741632547363806538584728488043859258274563673633423356845420313110435248508940657084741791566297920625224683451050065655235341483872994471934191905293848131221704680313329675228383205162975127771152093096238796893147795935534793102786675551135280115722432854758442352921124238950255024075838133755289762831520368130197020515506286353785175446311999282088309354774854487699459784973476330681622063734207511690064090059730584378364675862707186134222616905580029459351531855444537845270849753711882489341774283293911982796242720576670006840775679763786118703191720139340158577271167450502926797434416524144777565270575624134458372941543433870516802484521872880842511822655261545422340469313773890949043458743523285206216557752095268083344447307554385671146344777460467800553083783429023177970483385118682440818022108955467912029849579707355541020987347996578452597139021115779533130719587305591549740166977256290440351753692886585415896060841730635470868182089436871479127680501557930525565681515927387458021740599050978188797818241885709435131863175731530266649716607434500297080058712325527031455934332675502966894605055489812154762737478289164829587012995539262763171706511340883925934467567814885765347603553731690882930770296266953883373060545472362185644925476645398804636293512545378180402800961636395238949622349080179052830644875475082440486142368607700884938608771453263361315941643049153807990633674315015115175843928343790185699898258483186966155487474403704329221880235823656938751662779829241743666549100677844454149124065156763936030467273949281959269568762495391067434873946109946241789962318279902845811503807421324207236154307938620738056176809457800776036768634307873249351051985329882900757844891762227872019689007112114998816874247606903168661136259451748453869699380752548421588556987086446383413276808966590487802568875376638471819905855209809898644041041134417002359547591129538741967463475986143111529440236469060844928731211060989598491276463206945591952692200163256119694133783465632153592342794934234716596719366002083954287666451783048046665463160646963059852172391243484238779171692556917059119613834244175632280357806130709244234805960894392089170059797546212288705958898548003714636709970216786673376014216741405677632004522043923068054266952201882637047906893578138955575051510028261489088220454400949547472067478610639125094107916977347127659791257023246989353595338209339317126477256257227434776916733248374234111609074836114561918123548895176903615771150119088451019484080260932115189011899170163973227738971990373718122393123178094449382058834077133326591925334927142695185148557411466313168070694510456543846433488729982655472874294650232690793218672819568055802229748329217495348317584752587372019389726562402557898290698043343678888662426251857827084145543636708972697187891499323795436380227124117251629580861678961108488146773901143662949161361520116988744210644103573885980226544571160604357724708808352980310880774751270945132886423459115843091165422837168567304800902598507463834240731255045037945304296771579031158063716105894861068243827407849561278583081605926696687149589855101476618122748395413573795225160397147766753982685299520413514444348997592026340630810888565442266761914176229116804805547999384629969213115135312873952162946672495331421965757825706483846339870769258750980692318164022409757886049412067122078739161214578697504398781158113442477237457548505239827132209385648393537496647489645393893359864684499359889653130907926562026203015223528801120366706259908612921779164035626872241926437990708440722875724354984739753566451946856336177056862748045843331635359728339952663681479477945482909306079799288229472916179341447882026631996143431986410655129794270915568956995008196431602248116661152657728215083567245547405007142284817138241944079194129524344097214859883655842099632333998413736057750937175013144185566933978877911162285309844821959085922061937698743504847775150253720867685585468324488414091816309521004179040323532696099822407870659006063291993195750887067875075374667605995680023966535668582505936881450144897988319458324306165431045596341975696271722486880715792615083776342540630139616314121202204915469606776727066183754232027562661229852684108288677439206364087289366213016724286080489784841268336966336023056969648437511442270550730905736971921312973397607267134517827944459407848797786711522877875573665613338018652884842285885262448718166447066128699805329819841595073002118573418107933181400860813504943574944542554768291057767636442376619537400784308518789631403656261574807636213885844592692336560996972030512126286582688075149734689186824288078187597086981581600754579372010593341171064403168643182426339166780934628825578604818076014992282647878073134474898595018706106400310053225951603114682684519540161378111443024572178954653951301402295244095483431749856992295048400406550180205342979460289638569859172551336284006967894381026715286221045078918145553403386658644284951091046157667971173318742188923766231358661367398576473560584297181839683903319417123273137367255331324197460512886166619016703749339327035574278847343306502697818029332854087929345906765098955182492810800164830407911762705333670777821342103076238822243010475697788618192937480209744141067501404861652695459873988298628530749811204092169504166481451332404883851188121678563220959365617682770566755279772853128350627090131869747876860464089225289394851238356517608825212526812732698377403002950554416694925901641838680859091771921029220181378440262284981257976669355377156073210686081535391562457077240323988586885334337649593282467453960368349548419774617669806878714177645186643960201685564626097566185653729510169992403419506806980250643855268310136420984490207353209918141335011069962038746358840506514619052603146636585632932103902096983651343954073896638602845172598431816604535380870976301433589436787071880539681046381301474799546898829326063691114878237253189383592112379180385250643570703285755383851511845433598253619323388802076182302745532170744751180266814896862290587136736118842976501755714223451506743626941980693196459662977929701285422247884054901982042045041755852733983763147088158988636651386218860041872685032771435506069121027486455558403235849214974079053868629915441130178515871585170002399285087219040511601414010000177400413153675434937157400819798186983745901673195639286254944106439757353672575917249207940166741570684110361494636843235379704915168365433127748451311119613202735584166686531465430513289905727040643122184491495974304176917295410559853896718786104864172987621646342112154924516898955020349287035656199365952305573956835826391946544925132586382384964338011985946084937834115257991537828106387652443159809179532470841007491852865250071696536009881806938679759536706905451264186509184482085221659764810699004209151881642698893002570319151388768306845531863557567640141214990162190769800194676944336934282879028845045827010680474398064077089891393726614322647119279430701989270586842575715632396715034581091398497294835311322893002408512818781264990178184505901060520943156474152978547613858764090843686580158505174329160479208831708134502059978497506940914259042758564492650944616871486542574351513725290924697234911628961436741755783919905785771920357452281757133476019115178328261138997258005320337903536210952432016422020788454795734185229763453963989601608898562618578610608587146776698133157256094240982921150178932173135342871295721611837279294911308093070509239296115556811923796012458813447457924428443731050663916140978936287210809488477395616034506318870882007724529069405078868825883268852210405432227970152773589626890964637327210488815251138173750317584002820471516316396853979904758548228154891139503721261687001988932797222746036846196140681971493081064828585663970020104321054042361909350720578307353265947666906230359850153380860856608885171134316138900630545226405584045468998932184090889056582016002422903498074777946344440862908210312637529614942385631327136175275974106551951741146118030016178438061733028175573598888259767427766115104287153385194461769653435256724299560139108958313055947645685152470216351306868816427532474768965837213888531315561183217186212320099355692007634988186547318991903738258377685630673813161088877398220881154879058799864772257332075130653568018922506177145937541676165295738243445696320685546987957149151394012920402651878902747468678559148336017726725700794553021746971971913193334484246611377605882264211233717758326878020000837029339545062354232422296489190792513890290749788341961289924963987257211761997098912231175579876748693122349704589869624884049500368982073495930107276793125433896271203006383418497405172287370641630793678589431623968250117038561988696698248957078376917152635113207149111532521708840242112556780431381416663664900207665912571473519423800841043833850161257411002820467641292645278984258113204598398238735776110150571087006149486578881181482649362692281649576694252663229838350459162630588463466989461670692744112411088431881715469576337524398569132693127310299502371842845369979746348120245077024252975617043506407661855383006842877771688592075980653457117801562090099901933155469612804450301438911709037040684212721111854820101496787550144136632981519047039916422839442260499791687966320922711404758646042386992217289522269867141323551575684544525448271372263729606810795290098542879703242335241569248742877621529214102281190364870604154594123599831262040819728280807382707590777248929033579076875587523901417544413615735403460930191031961011252255770788782498577566111255142694019525936932272088131665773213965059596517680086340841279005167017110612917041432023395225375923183398912936929721888684026137758676566143956034208129455208407430088822119546162774744541444152756078721352886934316936035031074996144504015788611673787677080365384355015362509902324843859128524685710013511018975438494416526483254336510147705704608634595272648650054945587850172157739790290030818245552641055368512175206056086816736473204268032367281001961393682942312146290442737600973332825849878665512639110950482234202047177369058018013624641100481510121058074249967572256169658878843260101126572839690023934652658523884931331178248078897012678520910243007950136852895166319922035117522845492480048144456846199844713489452848973744878266201308145968896872644838226069248999285909216710464590743380434249284929337090947952592947846404367131926608879090601236575739549164164844392323939515197018377177426049540817256937425086702724766321734206780248316780524342146898160448778705108071725337362769880354917872930676209985282460106786377210820171408525624230492809582858648402086473764994842806770098014140853409339964894096159494369586952050546331729882585445337740005541004383769789295176699789053427505076882126002193124660172168509008599338557887303162103248855209089076478700981700920758337350300524649833964931227551151225467149749103217124395252310947640007059232106377277665468724441046615401716000578140085514716192186895841256942157583265708002574831219581279269904218960320198085084597690667069453788385067348964226486377183588044910640069874866735290539983202324570693371602889700959763723114099803845458426929233195715270571158062508191348794515501104426480168455773394758682946304109700668830822974161329992689134977387199133605998542661257944228589646129579238013375490576545768639914403550673365066585573143467665043165789144746311750336397967566044773108904263870468709013861796534008892820956420789015594749244476557010227501567342937743342775505399329955422363893198429253987077053738129204700127713893032604105385573088771772111020303712754628303528807270432487894990895791298798070330319786684633012646478735723602143742319648209354043704069141519416466251382614933983665830749639152408865371365249689470572524881939018197668061556273357104030146607158424610563682756485242822221080286556593142226919574835188706594398120934627649151401719793484746777476355672388691690111314423910890549951062704613923604991830828711832474094819269587694291986836528230515638570384453807053653903158872515690748607179592091811045384398019789756815647063104314785914083493084836694421930328249077789708736723594304821933489951197282203167752755108418228421040513619618097783274207660318301592170206266941021932569097804275358562461794777700135261723974612422774477394454478704479829144848077851805910920546512723895482387158097492468883600386856881626933259577033176699155770348101608445536281110117189377167588493756375696337925078314576442036660340028844462256280041601989591484755799152400003999544681310130184601271373919186203018278334257485989234750447103770804140944617102330672976652863422618549736283445270567961591460953512965138088622136643099937150235838287134342963221896247909656953544438857036410658334807959628950495014140245132578961815877823670431859928574163628931921505055968628216761257789539681558507917120661153713086122139491095012432102157882429919921768288797772256178986499107970896068467281643633253119563584448234937631981445821499163032751209126220489141150392952317900018849185576890220359796149574307633092056991422279677094467400033694663285858087307355741594295967292885877951070768575319400637856976755974695190939792462213109551982479195458609793328202974953835604526536099773301190856523065445913314637128508941633583999893004977646377779131826197040969659940514129606953067483288683113478284651420654251818935714983833850365548158803718966297502630787393988142567604350250740107571187065695823810771570289412038946329353155241299935344326282941910745522083257544768711431697743552514658014915200535951823527993421566204013403778832181070707013352221201131613091040309768759202522728935166319827648815261518571556296111250058215851682963497531006521751368050402639185500920165952682424857525839006260907627063408536912919308497877663061193895037800790345747558813090376731997156646870964965425035434249412822054541163927478330798547392709477608290613403291643521907724178175239545457868738826745841337326251202210247656344609200867196154194221698084534659784325259194524889825476814130376927369479575453707264492069692934480972975980896612875616371134140156836266837573011622762337740184232146796763058692873718216165789952906199722451139293468955177987613736169543326298136193335613116076142355378503239443940924430757618006772899755256924041496066134857751535956464200900588767693428437604840741877645979705801091714888161606881757560925403467151430844355349960460977914872197352155143056312368053541785254169131107613303270274561286795333985415071522433260067779352050245887177288655948964913923271630563776625764244274733094013754855453951528531113953718299523753708444804755223958337516043660381947933458912740878939243819381633114276164864638609747038323268494870097375012030926226072751621327227831331547887333062117899087126147117032738776387550875152709441586704472063844213316181420711865039940603411408473697353862605454127723779098138332086790640444396359246030084047466819018871815554749020831537920474974392235310126916168962056972445486672695229324028392155517701712704613529700880232539904291097716978981136880595941374318200556231413736315610667954387922330676889082678464049026225246507905116581461588965919129137156082252170337234838069209689569434753747166032439797341810769136283695487115469506091527990504744654635280443844963312308382869498195878467358227573910132113031637461849965955686627268714836282776296815817522968057108792303399603657205887711127302051334725293997032832388987444485576309766971235722872033202679382486895038104357033497716093683943616095038969184687414736765882917870099195927703253020427029722351389064698571392892472741335903026101913193458935809996618127487529005143586414537998212787389873249499374718983840955967509038268354187615662598176796387710132481940134979178946674812456809171307461221257485219619734541856771685974641894234018454430415264626940498913896243979761459363106745306907743473541422585479217561667958118563655195154321223196468727946702793846101299493338302140470127202996908584183579247363823604693756971311958978079848697773230663105092811419846338175499088270081767302272930876545687166638085059417853836736524719902489955912746314599163084730921255601305964083673527010201870546817520793428116988422931199093183819326199874373419446140201067295946755510704765271272188520016114783793918758482730455850099152764657143225809834380230603429245195466711002515101017902635186201624319712133764853260876909618967127286229382544275469783080076389678142367082140675267573144082027415724660644324938114179961537907470840250341453459797968720629765731851740913871077462794908338955498248350142581111763945479018775001478942505372754053472141358718495427963617548814602150516553195650129164133116258166501338478068456584874466613112861410623308242278159659891261097069402807612775308516170110958265519617223040295201207168429984835518094763505949985079816231923494174414539164086078203467957010264340280754013523202677578784225853616804609751489929083299769060613741856892516213162539689227350361643220969495207923770136576936612205851971656522869849164586248324149527188755009473209475696762027770619840291296330087534639474947720566334037848027790070453042761912465506238506046564992159023391711338249929618827832839885444758235403485822982240423341672118979675727299091320360991879237706897455802438567009884477845864445599686486078345079553663973709133097874349164510802550564602369602330226876848001650408530007518549984651903302379245849050498241718889923625991974503170089217954098039266015979577988103960042969057834294228876103216899258645163196902451252638599401230336898345838130433761150313229800989013162432305359732979970575931786101305050199346460833516387735926655977987571873778487469851430289693732457304716296114011689603951189964141136370358447272560116385383559295362346251405063670605386424177409429004101674389429271487627976616660586419618910417428361754432172044764710671718847064756031208927514012694075963597805496936590201600745406695684889475001087907476202217437757171465963386718380124889248857907341358346513999847156437185839936272206042337393844721424309300101144908790005253104643185320176579678104003209508197222458457624150557122064668447929030266676795392144060926298497333785230462242097932659036070764143150145244409047009518353492245263935991581510104301981433561829229171904295752748937011922999626865114312763642095888166220681415256431974558153280078736228558767473743962263851241789936038281858691720312651485399841235573419832832741367704308039190219312135308669588459835600108604204167546097336828162337320460645816807837508804631286304525112299069961434984913391234370341182262994271400213392850424719372320040341263738070187492001892973043882901535736228904554340253040527649419048393886751595697131725035220106761763782714680704889667237298274646695784548934091621370055789321687382104109062356456955690033001893018448622547806005420152883517949992727452436652560143548735790954134729370514487722116588332711250672734610150229607852514813887450087522618679607139121316178393756974278155393733605980920200933766397190386752259693152965443285321457692883912890713459349970772903304861399138551384789141593694810471285626442027723264584625708164619139067833164435188036031918699761806396715846143555359717192904741198923247236671227387493808337429133962296011565707299959227366229182590892288381824827029199977825818137929418309198229430813667105212160578543319315447456728675492658533629586825336003928311250064018609969421332359204514440906487649775754337362229097364192484047890809768783457315996271551894774252131344013855486172179123252639897187037582519918745981317535580622937947451670931425391361569055374222196131258933150735226705080425854416233922289478785500400805057277251251459457623391987358562053369152319242883148784076097829943659712805387260023549888337723746822189776523656977551906134336260601201394978800930858200716210084511437642737368494996515862559561655017583514479068500567894231413611732314809937170434967521384086924695879684241561069598242007314423550634451186850452376088410748574522295011223504653869441054822270986963515738233281086200640058806234844261230857450814891736463299358128483752422822088085203613961511172442562122344472247808740598929470033616172915800237295998966738332957249325668086346626562907966571582150602042342322239730993310617332933460690062829746765923851557045210947980302716745164013018848994684596244576814438720655290705438797906245909303320327375785167633497133290469642000102453456777050185555804445357549961437966972112022857125420242325286603004773683164297058757605361102454902533039436433111986380936832609043747815853987784586650505972132976243492407743817469611870802520057916559845687422234099002901815423816768728556496117688190795631535248676629466418395757618719571136929087809500628570816097898557802667713088201775748837601847202352237584299118044704593351937817155011787939906735790371488886238884612831784539761922534834770638345979509461090799880927988266616243094691397981435048894064285185203187815091915450705515265974605593503977782871607025815589511513336421263329666315698110693017845094597762542127404789157219062820563249171595267870560327044288713090343699454844478060416773970637839384736344561427263726354637574115281331390538673555056016242011024426859638034738263844773783466337260854075726601414051971786034438150920938925664804716899389265664100411776203690091753774984911532499486712895246720192377937597469537049888312102264048698047639308915654222986098432834556446690585736617521296377358207784089589992308759000906348110034325855161031547095534447261361839813785093760751085640953819442813013478917850074671511141130113414899574071879694611697500836509817015704257241148000208473228654077225532435185498169137998519266362906273300542841242106962388647610634076414183267792437687206276701145788038432877152328853847018735562749293260218988496175703925056845754857678868812000043152473003548596142357115642505655041588562042776381115098378734966501416702188994084971029988563536031130432400456516087456811782938131124396752892587858717051151840615036492819430893112797459326709826836958560343958173833688659170806283260625958462541016476623008422316819712901013216632986545208535872376136998957883253561916985846839647153088812521416704738911493513609977263992938241806230399457322184016275551646095440668927027398637470042873521098089870535724136376930409141500652952181314888975841354523427286979203009013286183103155863374361243030205745408875963080989090330579259087264697950424545610891157281427183591656707863594608734187877060327198454141267897861176614775347005618659953682363516626823152550732729828732221257652921063946699737432830490919966755276875960019226573147251335850869309411640669848711972928052578004089554941202488602001792492359650842251609463470883389275088852484251349360827891750308807296834553532380341740887100354475812551766053267098419344023866536142276085509539992223059288540292456559380141363981751662047052528074107227076164335285527408283826047829456081014524083320541733855052382067516201074781102102299852128101360006946878589131503065240949551279623814756883256584754337754613550490414691721355699575191003591732493935182997553646995274981325518531050126467455205931250935478329349986162354691066645770350305669255115608788764511546231235942081291358535353908379658199057623444750177027745638192076503565135001372238279527333528424734909811811235591469075821519211017708953915410369752668827507165949840291044181290099172579427610495557121012224806979909130836099687752379305067121704422626082552642130927696634319239983905725857566186387622220398411377210035007937155786928481145554076472931370723117397736315538513578995313486892218074600450385946953237708448018028572085412198879846210146882387515870116777400720992625853306101862480821862607494866708729867222031729689854375202607714550676710416356886750795855458693184207111607762547479145667894533118268489508500994192381959929133569832149384327688540567091805089398754953466048394427949454439192325226814242572556466973640059286317769050561179424893747642846915328134953524083606213136505517310672027586224922984611169629914193488164854364308713537211539750270508723068694672822776999889811478922054592969531935096781086928677691561052480143924808200248454574583757719207761719291384033073872054818884561365849363292670266106850080247032962992741576886003103656699234323883632248246701479698234502157457687592703425558687773523541631665725770940299469405783291420485536274609792914396518326640510339309027111319483518331745381527395184902573472335438400575001760225550721776212143896507974767503118682439239893885294137938276373469695983007620544922847903980500926615259719313592720338586095551715645447813214027132532938268340029140909981033546523394023202146558030320128083708938143098238040461264190185592590810054718599545265154068813731021309209702602884297737431411200559167849398025206699415693014956754102987080389746920110755418594606964727070404659297874374718221191359855361974763417882527944363727411793760225132656896398885925183987347367937035019012362063208685392772460902304886362994073077945089974821523270707417630778890635531571088221855018748011230207311317121535926005948524927357987252359406192236449849890928755285607930887236500036095933682594912169217315885886433963617833493082175630967361552414488701021325090617191770343688076545295446309429323966117411481014049630005245800325797023162870272143365954277446444754202860136811356381573207863161895826939950371240018936642123801902820160039237033337981921857197109910869274782199493601601446242226966981851451520239940251405890956132487077451604626465164471232264949579480540729392041925010385236401024590493165193219823771171272782239666041933898226899200547896571458510980069175634779255789700232041468040336406685548275741303553672904541481807019972743158738554534267279073598226190983980154352377983657782927938130588491579946951224344755319121775227265531999847511475777457448419313846558747358354453727784012923849270229581372215741564041455630359671831400602907603323236458345550299476656579822568171647727500442193901250907807074902573263580448859924973582921353172843986556604400701512793442566150099231036460297378779588812877541740198123345511009461214340367860283535789593669155424767359166364236863529147821921829599902877809558159837038285793275374745084796148885914291101543421251687134052070225157181170336547463862459590676814666512421093619600036823648511865030049007052949304000630129052109714670230850600566099137131985488082352355084588651673776157833122968877335309060531661885114310352463424798208435795719635277242237117757542378403089614926717204947070654502998462760362477549509409018339722174487986700630124335806997745559510832419791319686439330538853478892830073040750773529816848137685189970092248151271552828372860733009935366113479335835306836554882224931402977134890143658770180830817786609983981142146202773134543081930211163244326168255435861743181758187552592137231169871813483225253760234039434243553710459914647381173041813503618333507057565502838416494471545605975792153123625798710680886030071420335931079981188626058742075740170619330102451315070638515895946873793069498837430750883249528626464228184034699523684046802846528542248138935008004174473206274988497528028410093194333571240314037870765068756308846772303347956597789079382660598224147575309980401037260285162637814289929429574821635887906509194379192888714363718080203222921740130331607092829106622277075743313313893976958275689522795268097856247533817016516175179845229261377136226019611184385005297736867520234427861778909098972571847395693655966257863601816094063867551329813126346517534791915529260077626487106602669149338340107117251206971666105290815081955652673179352491001086198356210729683230788642320369519966291588639799548270919618710344465610743751399987634902041709029388291055029813554212885808971724099227684278757097164774732945181941008186388722721410865951920311167810977318495735708956144971214428922666117787107650275302415169853899086004403338161397710822104433106823799903286613794692182474291450127033895436356967389702626328562699576870664717917305049566345775909074376485650222252876603705141799042944629166678982362426132379317120682787279300379712383664017365571903938432933410506512186812168406506865396125090811167786165093895667041691470629415002758148917680258297782353770460558717779163857867439135533687130789716658599484719550521888622228131117969503771448748304968906414760695498124470106977560927581876754016892647605486636115354221241858884415498048413407872781446910356526109279468427683328432366319071175793156034538092385201876261511736850631713939437913638905159401523654905616564302690276848523493693002744274584485900095857939146819237487044119763964563825067303810700631736375367888642449975736195083191304697775606052483521634122894219412155431394333862207392545175975143758171569473384159716424270832831592905864208638320845929594292685491445907149047180304576555838774420957202058187528215747767181251090146793138690007405504001384576629271250163094326305415317336424091012817355000725539042779387114200264141986351055041657258333063557206788551196092295134677541500988467420146068226127721507428145607255758361169018245182152840691715470350512237007263058701021974836007909381778040483169628757597433883485292749374420089141642757570514656498421282495826877795042308400332461171298484165798406596594942631095807050558968593062817959764964193401192389775449485396507166301043689204005879603441262232445849886455718737913401761113202090811627782788843721491502961222992527474104987186811822241465896389921667021382574270461580713905873463261893865260324692604152939373416830609093678474947004988992939493133576540359277398242785608031079419834337817630752328094620998128846421724465374275615972064937974910094192528026960909753090777915147292534805247611675943944786534835590820724810500081711914340678109565849347996175202919067105983129442588820629258450642063859271583944881107897580011435038288976738498616114627321630191548547406906731873937177527319565820132017095032332983767879803825475748358377595348271858110695735759886019480478308052050874469913938114633548630850636505931346160037539368503351975886713889832834550058348188330596022201851579052172638896196001389567571893433057555415068903000784234258556030293992258625485829452443956965513428111262521074455573858057147185229451179744351073974301151504406448678780178763428606451217913643779384875781375672769332253446365433853484694225738924525972272652425907778062555561593212824397127381320335696208169368622559283151941116341099904808263808130417417379049159586116077164708489636840012262845094587423550596457698079023414239997752728485089541439733574258081191178738685316841296976343076658735321228448031640194043703548793582288026323125985526430391169307676292654855333236938472886618784638497434091941205306811417358489093118064899391415950733893299890609334872791633572054984561024749702271059811118863013934609200653402560858649593712655706238650038536611844162449159191952309922309185107169712699116787831130631948211242971365669593958866669631799434152219984497791860072996363556786297202739229918479885769162198723708652425522820314189779764491932880459557091973329355412031807235344564946127642803820749697443804146026615776353695883236384884596286938096591891387628492160899775342520098944767799457609615275649769529402674631476918091745385580529893810719679138882359858683005758538003873250890636720169999504434861959620584788086237240728791397901817094525359576594432144753093691797011829861106864860328192098581586613322113945077028180298312212597011278485798292599189411183467726087421509544707064422852530954661943091027193681021004923940802666552659085154679592023746371719291277283099976383724277653760161894212679815148320276060012713326321489673182407799857971319887213670861139763542675186057683955770886680997400476011172399414104886048188075432731534450577694771945892823239135451249421429458302779773936148015928495385991660914632080023024062225625365928591207101747841827444194849081479953571975670950123917737566518232267726686054145933187260334082476908100608777460165436488032020062399939611360847239177699870151098124398250583447841453548831444885838297338702110311556794531984912813612542988014062356817339910358259741054386528236455230452015781696772519489947530950123931126866054706604588747223684194170731091900838693977822816507328219928825232694838793442088233959893261004180592387318875862892932843429154285044094728446235957929173178033200557858784382676537311449026250134939442623149629714845897206501909961341667752048644240108300446644133588379899466825353065796771618608276561482996742554994903775335236734588860131598950312947160922322397501003454924539372882287165534334783592435888770607412209588301984672885216451275760207364148191478913374889121073821352392676878697465247032599441600679663591851414018125281203711813125807041930543627558788046345836479783916680667494213447687984166986412406464853119650024906446802324238508789637530327722458469510891594872578103744145419142143017711279066523561354146355780666328596870290294072516490285225010354689788489248631257645115950298097127334684484243109598790412014361836755968753339183656784660689440275376438681445820980135005229905060903990599014027114238240931334047674431945926231988637337990387810791380391098550757562564479104634261018451747496189993823079152173070720040942062838158347296108204346588228137715725889294186495863586374563509982947021072882313449257919209250155989302668701836126265587065727031538180031613787781874316763181332027813675694348931707021483034611711762117221209807373594664697447752917001043294012236927271208803644562642067198903835286528206202769619180597620039799675806799701819603692580842942924582825539306749125694904874307753643545222825770820129908127004347139978465076632892257847585154736708835835268816560403300602448403194340902774498007314457929654803356265257823368491280282766042966762338198898366922473929176624640682131759463615573449996429682819173979147143339540212334827006969915261591710395122485773098233970623119162015128892153142443997564522422759591178703943748966960860373969177417935754428233481994121291733014701338679248096731460552076794612303504853315805960295993934303690732196129881807005467563738956746630864273111820434017973734227151928255052589214669018556763220819127068260606710466608217297347276482670785854304475929177115047530478445683854319321196409822384403230173336771900611012201457677530688483870663454883161061791969984124034640304944594291199070140456694780828768732764317690509297670694698530463348987276418772323401454680990845391213713870288424508508732608770098409296572775835960432532455328418184913787023665342481515279158129228803598523016312433097238431296766523234499884835579926715078336299893162455109183615579897395794100103555798025901926335891430227404272706287730967192424445435025843620956954874822407110244137781255752025367557750929833033512724700087519166751264485508804079541466196068252433500121825691140791840949720491688816898450855165023254256961758144640117880971225591783891162756779070493699154717848433523831440480025762035087120905249172998475380257350225095885815797308012842091710254691338783624337915327106154045984164370870876682677269303406517397044532573745159718217221894693617199180184689266525753893439424115776904505136557337567904203972398927273389168096467538905138893904512583883011088776767990638870244873605996306434161013938205362679201755059821801735228056426544434825603265247768276450553335571159557361271735800742339401289169866726388149765451849421673252514464021146890557709415369102059033979542287319724043468239846490146601777033942749586689740032348666292755703250865074080262474677262448050781848811113719198656770896990631743376460861318388919902735776124667061006551627902453468440404956978875533519949261957579390446023160285154139478970526198710748741332580230246792503234651569088791192442767021303005237303521262227962976769526355090313200086340679405524901891467040767109775558561420718471818987810764913413243558365509934039623400535282927522790226279004676211503290559922928977900384856586433186631958458063438414420817784333139329996646394189203896628576822614355011398455538543486622828006129362732925998176147080464405496675437944541890512096783975253736556722996723228253794387868075034807671547531319193071904463934249021129551835746239612464335032127771004952310940952601217529857385467803269505176361970080320292211711711466632103048885711459189524396103693160313272932958144618839465264006765536913850728962775752358373718483662000081357992200897376354932481853295579688522313885515697334995838743168011997678018571362258657566522778339653210082397313977765694439345831412968521957349652994816498430857573420758712511521027402510874117382384591498192890657046402670412033546922810419682356304052614072803644404297060437619300509864092251078342297672310622794235691564557314503575970568015113039620050516495456085421055886173736570931325718318292497520032982445838287416310745736551198498101296721169047789152452311998057640111021405217196317807626877829936059308789993289667521131031418731112512417047480834821132828814870558047861167584644711415918940326691206934182543387212627942352321645614009595660007541466299012574394438301942009461271830116021005576332833935716654612266281693694799388994360184226088114443077785516468838361142761569506757225099496270172777979500967356443620515097788590406023785594816755813770723365724316773172945611500058068527457138780179442415369937245058960314086701824372080020813509403840365024423220718156354119254938431089309447496277230895903889532783972920721785098017557003982542964294961937909952157343885132332076507027727731899894637851360085039665368856842417359805485850086545502622504292617883986905108321269429977549169867349986849095801726330428133425453819339169928157530359683101081771359159710705914317985125641868366496306063960047463406208381705636932636509688410513181776746009337709060442907489359606997910049686224621804354688535739207884072844681722521554186158310319589018010606627571887327253230458810242208564844445670178129872541824126633489519840943103530656697817148414336886371009799215064917224444278472037380092100256613020406983834856272824098802157628080825021510093130664129872327721640328348540985929461233797933021243395860284924290984045865932808679799695386956045765109999214584319108307629935293645151089792973727308726535889252819713043575710471386656277506342125996428152030471660150577786642428833789943928007978918487079880328621404167285828067323893985802011505841279823886382457586370337842053155107670304427504221381139046197980079134141191955962059688486934899378623577957332076877806099205540936123744969954138870304438846021451886314773068051367922711692440783354676720347492436095903770274328606628162492688452894471281435800158102163163189824488034579782859700780204533963138269701995394223686014463353672568694465393662636395916100019558577574509536708033167960227309906134883954201058862419391106689368284743949398640728469638505789304594326297441615008699955175824942445420232764425067342673843640300869204018448731080843416520503945173983035193037113368249057811286766836144022194229963783052203992066714435155545581103166351741541667874045189852886825533808454656953615906293773017669374039211060962655521340234401733871497500142138265849680379913473120524019451581131395352592533837520158041215888198654491646980027981438496436115031440064203261421661820593755617046124386897303823001230221541866601760879185363476742445183789173949622001930629896399121884003089358080169305126338373905571472207556485970221290484713774731803194816399814407037393176070959424762023100669035674940251334037872156952668804306645852681793150180113119605036899339684312561586203956358481528499275973243691438229568860759747190493082786730386385498413361361737195189003419799946968145111118797542276430934358191198179322291781681575850604307190585260124653140605742513823168520941553123698428466744836401342938436471745558277248021122236576634390714125942517070424055538530250505511277443992533480241404025195348943799984628624872309320990897992601049502888733649501935797171679502155870410422941097651959670468170752187951037893191883179999152388984324969860120957357665060129804043134701638219919923976447383017511583123512870081771471665811079527378388305188315468870741496018587284292697341347153167292344569228964896529528971991204080787556696964945418412557970650989133931440796096577491131022416209486381386174527186923075866662678136016565488079346462926593494442737201276515215013331660667984614889250924935782306907790982057803907058377949902257850333289393346491010530936907288711776321428881587884546597942760839429726972600336680611497331060236938059015588737656956334620357275912436329021652694700797763815044026252109981575297901729483858885095871558426461106504283893463166302551114549898415100492091872257293547154176491097276093595155323904979496125127418026775907123639726609646257033501969381030182244865740496360239526632812873191109740066535510889132188759593387805630291160540763367284410173233699506245053087416315705982199664665795664471178977266635548879278891028197312001583516480081615981014005546717248228683280113947151441969330371544659907102712120147470188952142490060190612938450455752935637653838452382718458357200002146478830282777768174541348552749077330870440831894936895081182084428420081200394636573432624051369513435954751093548786858880552784803260319974980006693995554656436659311357512513966161093591838971868635517628080559154691860536127143963299882017933019834103745140353678936469664274290128335994857806698522349005630781377582493606726648965919053893446572232880105112836334322119509985369070994312924137917878523113230058915138157691348994520251942350722969266726581735010859383954489140087231200031132813332473527423591180606357828730158763142637381666713238011355113704896828894474371142142126711714131556406627025159003811158566313282299102340514075597889059347733453088148288021950419063770079951759736629740073197639547527560757143057767488983222362249365436612683117086667370681001139468218654049238510356550150807308432638738321017055840160133383975340362987997683114029145815471006299480940469367917599883509189527903354782014300966864258024482038012122039969622007497528204485778081805053654906011672199252931290280945755468793285401378042301552269783807539691268923025286032258559474526241529369088422447474240396019014420175411664018631083449753884652064256604757009907958204783243713336299300983813551161196160640130446615376297675116599186808365423235776357578780717622793702326407935212032498175288594195148975348140137124451769398928892357973520530239575455481179887975062705730731365240335399790945605471662373555775806796539987798966371021362053191259437721809626489550613358247265337189758873553371804663040658740653206432907646881322539034282395770565605026915892271929873139969856806976757947761514251409308081939192487156773256432025192512231497480951141849822627937248441420284261923628911411240183840402679265754917545430475936033546742008606618546951778866282084373136144678706365680070991506842884575251462866497105562235915590757137162382432920177416239322194673147163752133699767451194987125329686610542869466375762640934052061631044200426963705931084894998345315310450744419244686801796990300255976873896833508413467930039638290116667225904745616785167673951924326996862895306775543573746831408594356698943089537800795256009703087931716959770376411200156348634090304550059113321294948427605065829822677080888691750663684763408452864691322980576585550675786672882662733960337897050050561028347976201302521369354643142085814766369154764176774527672608628198304104306107273202563524606528435707366589108723754919372259184525682808891041289775024891852553019888927153051536866610438557033796591011614463934920490332874819944775331555168317667326101422967856975753652089710480848755380083665658207459891609979589665369179501948802648267743385984347554149944066772813824513238152087799411481734891661639681032837338498254270200713648655816040566602037555748170381131789939254353847244965311900043243482291737533679603376319852688567007690662271992329129271668524857213759131372914619838915443233610073953176558374834457479751884677862960099636453920318076738993788866665126051158507627346048792423015327309475680196740216536010582259446385746654179907179516737743667381754084882014488928971954317831830074237024855091357142018921951711734366732883209297158945527092049606412116349444094800833922277077848012979053667514767605154639793054021611025169944880095911681198675185104675602168153621082462061063583142679219973650793709672819709566654628349067416244573060516111244028255547064656430317587560803180278629769361634211117498200136741069110811094364364366822551952238912261343808566455413269526258405243583866581174109910410921380613101685267864177064836982832527253930007503076313684930961182302119619992025118297173661221793379150403021603938533962655628685911229662424091051381351487637502464930021074345053338551393280650247206094321920625092632941458570452237760530731182102665286254515346891764566727452501820950917662318885814025785268306245013809975750991115635689941474140085308187268556061826427987669836552024239191059155192557173035909835129247331397843891486202638887972922117340521722556030037133719648965990375094285821246623706246492371275914364497998232648979652492304560720998143594109616690955567392239982461161085328634048892584955963908755942018113883884379931080202101045587051720587366173471740396806285011638766369403436773189091741744879034782076280466203912890369882192609616170055274159773247413848702074509845028602565025836165272421650659624002890321014644879286210875198574583525095044344254704666418391672050663544810985355037427168631436032247841664065448597362700565027832688988098455293408851722697851337646020303079626984440927940092228716314917377093929377843405387261892837835532085910657347180644935078695796732648203658165354457056632684494992868007891211231590132706246058737797679046584123924849321292550729895833118378171705806792886297211754899292409232837390609082355897752012839742869360023685664865949655653009784208785806058522392219044189980032136752523747889533006760615677020874658495736090240514925375921182704615568077916001898148557131971445608425026543002131667307640914083453688224257925787379864882944653865984911561303944472659564044165769925204768814023914984808900082106498621035650362757612841800582206931496087653876273724904931691509195825037443162746651652854435572885010718858919458624453228133329758411048416341572053782706600965551635840518070399466647543033110871102947144364967716895982074511109743551973248569456477928135843910968095547699343854405745847257259313978205045529053271918711217378950054540001612311015467033244548925924427467878966523645057627518837172111558012379846100092439601401573217205913504111483900168912944187335808527349716182715847657362995157386237548598492007389123800599793471007863155055440298465958943107968121255538830986167487784318029838334199825878312545372568689334558971080638910865825553624380958355884715583507121296011795324870522858584504828770491251430620699025866341373724123517480312193464917124931082626752203596330527262709111761947492380898930336401614493254672329309465440639371334446832709346816251951718650780188707098245014971353477424104545708375031349643417446768258993340229230666507414259892321196360217342850866813051451466801226541727409196264205812186365394750764633114420480498157722825433405163654921011526056176042310376157153996842690049457878741678141951637369076369986992109610078864018199694255486886702935575534699846202127297386234573051118686045715189286449375220649360539889943121602202332939529641199330471647806745252809916773592824976386583122887945304882931845281892420465459242210868202195108807774956265078210503758649720274444862154106212080179621983867380198629475782749928940844062991171159165569651342835135250945228189142894901764912529453919304306509815445205714475476058953407363103669309821425742052388909063846593036305270632020835669819421865085152754359418375665164414278545618724093050865701368947223687898425600853668292754274895059980652641357195087302410081368374286087087047268581887194516747910137166671617688847512134535604675102474999202829267157646654809390599987084115355962258475242651609121169544756749777286462878009002123068742441406299908573759871729586606065379202139744654513885505259185292703225045174046280313384674509236364673162759736562745229963689415437396403058782547374538604175775959701430278351602507221966146255269651443362347600967836990981909859915237501005023040190463199790802971081440256402058287112128984392104528656420178548319185078741702052400934271051528489192206318280447800093965776316368803085805755336756213137342114958937675782572256021869252755195768907992605863632735596544057441278927950107170102750334623690136848063295016748579324076350533200488839101149694277108765259874991078663256068717612936429261025095251205284589822153640073663287278432711212332325511750924351906631711173823598965572996540387896112736599232012321633804585956442266854776868261401181572597247273196231148400792267747320873661557379098850990116032404027277933572159191496056987995007691065059807366366714983420723837324258601573128341852656275323315397296313231225333200033098988576919507183583739969037450752097559344676615749404180549655665449461913788614831383575300001240775028156062362961012106408288336218401199770029344416625673487771501354132142615179300412097723730927736023557935410580157717821817697324529671585418291291660730162140371505251148947851642785534792072057120482449438980245750253765016775400205962631874439954144969567187568800039110333500270515053451970174005444636193053793692745076327388980214797378794897449132757215072651249077529145813892792805487573267629364228478798715867707590142123707152523138014104402499206131953987220711321956092842510664588903433663960082636676072245110083440572703159257278975117626516109617207777446407141767514215918634477745502592156708852358520361043901539208276051949337259632854081483121080762094700840236475742094535040242815032511677384377434517078303986059507340294517194911552305719076986252009941134852734095615846454412495630670963324468193479844956934885904356524277054311495477244311907317506503258740607411186031760091913586489275985745700611420101066273357280259901200610650956602102622484868588795059643931620994535543494934303058938229276892549730610144451720746038319261041457300474781640084328362854672997948332258987746014135207052587274264161904366052662588533755220813332707534121311522743727009254422494922212048509014663870922369853019218348097104401797133584258789589588390506445455206720129751728943314292735486026552541093317634702672123214282872106632919393486945962475385544469505935719303352610012688966365473199234411817806017211132449075988819040168107920236885455208492768850639781484785493096534985185378329643115436488056904494231976352193918290393966673544281738085328531735148465475551922895774200150316815746150618439333836701150247723597165273492515156986790764853753644737171526167610368485574634614683162642651502981359134326453836929712213966989981594560095458612395744484369777113710494034114795100504511401103908082320090427550195218130669618707092477637671086349822585491246944982486195147113234720538083745186861433578120218003802185947368021357337514371136555658724886927753922336917723600831374468777158792702181675983642166501853318538266855183913168737465208002422876144797336001662369861656033724832879127551137594865519730551890909832440915319927631796075192210574648461873627959766814070381541563021842012332808878902151855303857573784968483136989930696073137408428662421286708953999897397660390247057133517855364162442420995509056823541340012111165239281319938037373918678101742616998336710198903097227192353060446563840853191627739191325749706480788183173217264475827744824213310166064708437788810710467367640190388418105795729407700148003118082676029187092973940403437435477558601040126636524483904798590991744964780993355393020911073850818909645897194328817400068361760510417677907279947429164591382639731677601771359134439053397801281511514918347857784169389091664315308916947120680768301866248122940637503871515457923708799007013748428204281666696824724469327943334253658289751393370380177952936773441442232727200999903203931740986807070079698071290380820691869266429787190033074590257330363594487447459224139032119933383378423148483090472032606733980411627202346685713752498631420557475409937705201029297865787267989104899816132660671982698319077207524415782337831399830357439475792710794018326355295923289215362936099478269347082732028925946429994624990321296654380895605242246165174954642810322650264967592381990242536733143579486447749749538569885191265193128402058738372991824999379286734164903725742636237028008253814107333028914467091376657255827658648594335249333153312230490042929701020648405481747156810665613485414304253241295104510644060278041641307666439351377839665546464132584578353933156885955566166338285525265219637631221835773208517752624574695673632402495014175731639427234580149161016628575248473814895718282723682927568463050191505676051514503384335970189999270124302529625389501017206315957114547822044341046418091473818182059557517956696467754245597847508306661720637864465383339295970287171982645800122182648088665838568653222342910978031090418562735422213761463262257983551420449467340437598294942171644047566644702466313187684250190082717125093062346874940220175247008618794439508648904475868884902164883023405335945308439298715765451071282973591656693759980655690640782264287816021089541295735648604728890454165507281725781348410940588986861212816913974227225715233038865530210523711081812787531554163836522668881125842644364523882171072545465347634855915787565542473412612806035223577945773709815635529301427211913079403707271913190983941322710438457066445976251294233095539826749329113858408418518370872562563722979959847953315086053868429681138050116920259208964989096759836709796871274984005732195308145117962396738547232892601319879410813467183376655659946159581548707051178018912722933697081563663648033951155996362678196949265381854601717615795441972162899015959408518910874291487135167324543022770061760153755540645945298134516064830234361574843044124535705041038211320030929338677409684808445541240348130351792283109293917737415203062282931359160063188132504047053512939712166875006236809599328534832274930745359767916046586869627811194496171735930510619876187138974352486711968311216839841311448192779286969670685946955871887043379241874816918680996868838476125178972226361293677241421263345316176330011047363466919327590302069806000637968671518790385451034211902642066179898434775443920186026878324048123096357692048671411162110307373137120624625834811313182165440304788427485104211451518529109205222840203849858687306322267390062472300634015952654809644787350624720254072973321954345576843254246942274307326569467076641652825077138815731901385655476620599325326420448702027988980585443374756998453805361038820144955364672669314330938804380972410238328656991967191291270401342720835481763342328224360909556780990967354984978056034135465701058693468490933919749940831541029580627647970239616929025327019221962510291400979734849645863507006932879268825102515401067369414205386789048167465704701937020270879631391658177116701901193448750194237843477895927117983153553694539738374849066721515262609772634863487994738150896994380726647668285337312626714911199087263679118154354451914004504388392574262191250345350773721382324778064257879006144572865341248226609636873915722028368540278670380906693830467263715192341241774646404572614656945150404133853408830282026930760592448813917248852892110721867347759747901553070809233573904149634670966548578146216981828860579183434044978089373136519760699671581646127228599630739445328460828879318491461576911064229033461851351447897128305056802096666316877513722558975722088065147361270500280486991206544243766264842017053928000509782139978865029214250478283572793753338967765488599665001789562447774828596075392558111071411397646860261593381286907554053385654960341351262475130348225700834695314502252508821604247884025024835529322877876254589710718562878472310667630696489159477084149901245288487110653459980958728261136635784191677443683327617147689434984008107016926589028470189870894964950643523309969108771019620753700680792678920394030601675759158029030939306141687203076984230449081346054487029879750708805864882407712519287450183661631700051581762149709783516457638030966214562722212492383419498812002841725283447807709635046270685053573350732193402813430048685349498080615058467063590305420749050617966736000520034730396742965431703513666965104954014865040506916419262811707468739406054910994045610199402284705330230921894380212783475841878274343558349479903686293980237877484494924003827500236834832965834747102337490920547925248348490063235891626138711502278435457943070671976498177504986897578789288864560187906017391963195934782804658099824159947221397322157844149757825333740262327030004932061305947742645732913721313481691843297385423213862011470371718983365477141365481087317515877298977144782894272866481552887310820239221003191777431128043632457176928794850187916437179214786897828833255235962017590917734170225067848428820270984849275417516435827291265077513242967655229446903007566654772352304165158904548997004929390944160009640401762219995678663860135538209429517803840938380670562913648671126714245961267869997217585134871371735665282974194022523507448210271489234372576414888892053813900319473390907007758428397067846906484175903015701559818359726006956082039003802442178466814951052328596904165861791844671595706575935968234724828024609376318587258283798264312532803374837361967010463297512042950934688492498376518454954842458964278465275785434894334510456065444103070079820732412305798855550992875765159855013729205700841725069672937158742525955389955420925060552705221704721396662550530156227808348967106398194739490669112190649142825782110552522939101721148551251697113813650699643034813422735075966950651906174353355746378418673933893803462282272813332770365697827967193018866892435240223942254488667809815088725263788112068795279567299619847370605601135643921000929724999505629376652558929838254201027017186297686979991999690585181764489275674206564345976634585972916431877929785057395184074080616089936825557552081545957660027945467017167283175758202344585142298345686384479931109162370322853583550602371735945702229220111635503082381289755447992824328464256006236365976872154539442587947502290803850263437656439356357337929326779511720174154867421679838745736599928753852221237549386792395766763717233500759394075083222709484811699551226113230426976451532629299772559013634296896114868149366176068070891639848741594025032488248055287955774464332754562323200804137002454597907688743637847265469115077193618982724672496818213925884426715679679656187153944884909802895712744564577797559068331771034206849554869815846092399732417407442429966162196799408916511626404263752762147558926290189805505905770330099000334317344649608371023686122320383291621378590163342883367361730385258686793570748495138360734411576044024122100555808673630116922591551084466881280140540800483725559560964743189472173171557762212522312211570160795633048801677461030768660657895025131941636598604848652641059280056328223429728382919136930111895341345992977944366165949872639365001066266186387344549340984516420559163598515382643539910238753762710222940159391057294032954631630291170653475487588199213477733461092877062401512994270356324463292406556101370410310925531215051626748788242372178403371351346467265357965014583883260664858621543193484801470543580133757741012903890144692738866309485211695073145670603132398665332018460389542564076767504918418898349823368271824927711026550157446215956873326069137509236325187195777483361398592525570249175337627232855203963318316783874786875771951688939117849027430806957871260734880400175787854177235443206328922931725115509468106882544745123121844101346242367708350756426585327494510650374319069991558360498810541325864293638213531443644158757229939440544196557447990503076051050907126975009106343740856378661291866128985178750438600025087864546313885811736237679677279608418291337992348779084137056757575809002704345372279098966267751619816204193059022721028286395152620278027763904563599063278356266889408889474504129365648955143990271887807835417268540274766536908984856171693732679163635381790581621062931124715505570066117919404740312614781432081879026239610523809623076688086904097914175388366618860479030392672186784483582173612549310512860185073703076056722359613002005565203560915147634693625201830906502531823829890161581773460802597672705211426816406300495239215765918298904652096144438204617105580957979599369187619295051046666628568405382179902806171226544816211704347531418726427639615818552493772899621751289570791708721786594517518634402737809045256684358636429071563513501800364071634031921395624279100171701242730121311974446464318087471175269687033772140552588096044690636834520176709777798986359669542626359470636116213448192079306865234943744387251712698134638321436464685377110419953899750430992578294647618490531941193830790616374165566352678342543163835934510918574268634508094962798914748243848264932057759243767955732313415057359112986833608620085876359058801697448897762008138849953505741575241597299039639846022214778298790816822294502863399519623420890407896626846047624355796477747925094651947850731637230843531113477802933064408646569639839897789230565205535314120787824668895629141577656766307972097235737849639824808456635923596680466494314091371757489185785732464025882094288810633267293200908949225512802314285939183107578317252246604563056699908635728108716501298728496930764839938522339270695476348454126982905451928180149153069333018660704007777434786534545083227478987801931139729046033370796695190526714965637106600553657451658145494720395411979260966041599865345483874915153113211254247104723639258897153472443651320788621935066366668434450887569792591015388224104431907710204529623525131023696796371962530804079584198777705427068548510679434640741074971937299591823700758778955886616959212339485082191429742163325279854817686986293384266164327482606188564963021206742244417257810692938798277676193632921128886445864733143585610467749892539686782724849166215766080320152441695495590486156811269428563439955704570943751873175511789245304432975117887481848060233287042434874785639906766194872475119666383575558747317723588943997463219913218979283961091789625559035693291078993895174694328251381075488641952999046206644867802878583282257078995548922866584000139641563362523113781985652977634868413368223259450950213988902245543070875121201853030878576363240212482734037356747335381224889955799411159196323454690531072330235903382991727095345739213515475881647154206005599096727335782179599883670949200219297944535528423775228200816383314825748614417188161668875263457925199929058391685469055012311116743046114984525969297830667822020696801371241856384300491406360642674170901335548247913029684848732243484016830666749739557061608807732814768081280176732318082507157823685248508575839175526859686846715200825506323653214189414680569569858519112718682605571991845043178648478441277818942358078571896687804266476208480732838222515565491640439784060769472458878126221356138411462008085112280205115544199282817453637985443859324640420654594842992955191612644254433159253897985833194339743972455260654097916009364112752414303713162669346388625101702515430861717845213600273385451932420123192010848538993975568730444591053541606605443024463981613245357232712574449501788546722335322184382803841699311969384104615739915155993775711065236725009155836462712811350902658236500214762453668332580766264104961095017470619589684429368570624786819233447817981663937747481078991922402756135153552538240653353706608058497718811254645191379488905305659529775993353193394686578218356078822777419569507853710169308985020410915277149954566061672283998360131715409606513267220975668655179707883259509644160258352019983842278295394939896143435572604037846489298794626914321821762245403354195530496885613656253860120997996257832299930073093409737439983739172013041703229916134530951399426201567142083230998805136843161312804919998071528091502584945027452734293209333063766542859467333452347533658318267437380264546417550975261606974566895842374252367828948817377173761551459195224340736017219354638664763330806246349760936237291202862159669573533243034732248586167587825690713585223908488140600137251970671835579567070329433301924231043736397045899111941051841668652901158910845980852774188930434649403469849228690688188255256841645666834691272357276358848172568085604027085349862890407374287503943404342618328568123856708480781417591544858008045829036291691812273330091507740238044971646254616058827125675755646917844609282757432255926596465360722540234722141509713037256228458554549105646072557997921168999019983896839342321113706798273876323939802795480576177102570532243193859769848426236731008660985893995778263073304915732916473860004665436306019003854729475442263209348156710908658427060463269035479935172156800910967305318928913567459234644796366366260168605599879567579286261170768323495217360002511639855969768323458538635341155147891153634818553754138275876409107302816053670802413298536279787455617952760417442453967270441802005387404107265423977621906814236978800009599784600765887441016410377912093130427699847106401164624758976441536307861642392334670903254254956352876142658264481980806951831353701993015907414128893178965348681713616514942008306912965021822820037178578722029219698833228314803335075830638613956786248437450578260700903428084319553578016711350905565673045986809751599129354261201609913084731313842019330151868153304207769641374221738678535386908154002904590902174371365760966911447035099737146974901920159919931096446861494373752830059997777997009366725241806577379029139805783916851435227001978952854945687030730420217168320530137297273792629783019275272196227658204138787966497797155090009485418962167841495298846558318971370946585534065341905475872432669548219171238304329520983986396675292515928629069223078570179691492001054344072253299245952460358630196106963150448209200548167688170796053321932054471178159501180911963422801662556375434893891487112571784850102069930301118142137094059152628619665515355284116979978767174582090895055760511779832649261366288799489071915621678702491462929787900087145008986526030467213193370113066591548831963658533723799914776201847298919678149609439068036004883176731914473910449353547404579577193668848005615940589778238816844885067636517031533246324056015088455751745267860141878572442404231515141483071459131512012778663572534170912811876634783196212985221030071538465479003221954222046774770637640444498394968633523232479239961070604612953919025549298471131878157589665595696374303101780277942233077497557765577741774074962134342126203758502462369904625486421594608289928152805189502233607681161703461150522310865074513510586382688726614476063461738705116063497323387326746878950452513225970571178454713707182525970785727532403692135586799481941114515966928327358264191976223525204752773225221343775882456835652833325945440751676397022880938850841281127181522503597687395337198162898701886335929305362161885683481887655618533178966145564841321516816863303795109786143613147114870778127295465180590952838650033308172447924155829470417005597428732261567836366765375652444535163971711600669682984808482689233218743914793209772971149147328596665870808620597448421576982355420468012277637636388283137537302363819404178830481172115734071300164276668217294515725900408492465145606556192657399325326926980936277543722824116981264626758529105102816196651541996318987644376414161848017656899570504489847981978726114959658645840885096164523165018745118583028441752699541320020642064965938495624656276697577051637560773618537491441517141420345019511415801672592583470345524232212981832738366455526888879599257799736167404618778782303216962609433624475635867332215006729142783845148984736208059774591316121128558919895478542616459907212262293370401452303950854637708045074718987779013981201108141353389362664221383193854111140077299848352622519677210535049462336177774511431376092063878923275935077923151478729270391070912435786704752011306677821369129496365068064074996642481808601273349116630018221232389276295853683960051149434515425701119879750325461064324723593108313034964382836831560880793888546169705283478760705299173021732997912941517405276649817655118735894212467568737339088515885206675828357560592347358411603563183475774772262976055262969345555303439664531280460643263501320375285023131846326821538515996463849043770354797188030722495952235936469261999067877630613478969047815276205508939659419655140128265771272754226302590716679473925323995149920105773820337511990348668988046579102715901112168527247063523624968287239901715512144736792184945879974344416655006318592304191608876786728189754369324890330641506196412073735220221891887762231293677692761304987380797919053844455367274485225670996268465297597168830656246646549190248015714075687948403277425861957364558499277168391313835559365618378451479017418528687867356452868815478895017413133847568126411714885159752954215957481559974089494293042371803328761871724362961595755586579273359981049878968233942790908861524362270257732041874404149311207311263485880697494239498976224293073488052196974261099667664280494068646725530340543361698529959304797020018519420811746728955604054911405711886636932145369113064476284174094339581771531943102254332366336968756688018112977131698561266335408214821560920802001701169846493905799544619223201810568703362131676992321402830051359780250630275149227414917716068464962710362170713287697070174283188923995347427728634316643485783954340056774603131780494223591877124757824580389929099569417919540776309845348313536955477626817853951568307203629342703356583121836394097743340899169611090348312290916743470859504879462203472892396708959337638197026752112071452009568717640040037553462005831144782058890747208380494299931779468179461334937538883272580032313415166929601623255794670013679945292757572822887896595566249151504825114497265385521655300644344628033991923322029624606752370634047229912202767468988413309274534815367025799550209440158261061635969388223402286743956403682394109426402331410163742838328877680375642987707463357626610180051405042945648299579447119056544139709324984065038732593196430271240002978516718405682893039625843075203055291277158502103747799066595168288546735680626391736312463334259506546111094762875179812026454161279247566783855722239482159832350380063319941166942540731667394102717838253561435833011303447973330844486104236203136228610295889268595453664647207901020018010182283657481833457114071169159000971439236081676758769942797999511294003140097831984153855682157025086592721622053751771821400193121476820514342217879598083323651963802037608493128733749873986452621292346094211096516309673705836708571918994000394205048885587430041157216485739711732407803500730665421531084380406741179392219352115431189366430282885840896189153893882408316920828953594146447173582803904500924784625610692517453226983606923131743637605594285860204861450652645357394202615330584026924857174274966622838866272414497733746405828889045878489377086590876565951079078706160458361248150652290442077497334479421969683999542637865931249503114434650907471498556871764808949712012549070867364920030378143657165168441462191399159411339193299155502268237046564212504223735545040778512891200414811447903047151476621117757435149995108589822756192843729452488973264380450420258923264427769100819586340734831249210505667467021048491007634250185189028465070690998605962260237448539821189280858509581431239608419526903026733139857241352464819960983809274712807805074299747524969463171006955662395916556137767129928848343131309563092327578549492660326877677672421930651100158920727873012724894221819738369280665185706987595650470895183732220634301239617401370903403093908807682558732059715024709744091181768223064922581347656962735958064460670554909441261410241315140498131332807456204682870489162081355270658403779812698765776946272602906063802784676387858259809764531434348579290110088643999614280031657441573287077460149702426034518860573471161393815932585775446726955201252650226895187742958970808314623035759810261336912362518306677780630894787930618909807722570887575841003429603099259617003415548122648776129423545739973747747198805938644660847149853989048683377093279005184648563724320291051715304423386891682378311576460654371156302447235379629160000826582668986790603309850380148300800955979627808711331230403294721690233660451175393100363523933456112183934156633758112957634508598266547357339681041474261016963563069135350846359100844201254573492807507685110108533663309340588170408796778309547101109410858761441755083401723741854171379389569154456592267510642775388504180476640047538686526890190559777603861449503211887781395270582654719279429692451833851470501243748673888953056101740906437869063183310105018874418481376140569760439282772505989530533921597688559383976372200781272916849670286843750926998450481502157049613304605401481598885987741631884765096582271603425059508082599827277144482835422504873706943950846520236753582922266188644822967649097812178062013331513934286311996089680865925588954880161232288740539417350049602412672778507482593892645150892597613784021678742428647064751407443946578893182658941176656271515367075371120120038565471572726480287746160836694928600358992063040059297332115017988298893654012413395321207437188316356129981656921593464965917604408004590436424255252127609933337528095468777715760250889746289143900777894181265936471362342656909287501291303578610744042046425960584378294253394309603192462806199450319246635674236399836139181878907021928959903663139467596817661272496927402215754635289129728967799526384840294748362694780070042467143244506770382790058735921272567564537539605470739424717873635186450760762458985539338282617618506932114188609858061172086995264487390489526064538156336508719076791485900979541291060646364549637799519947375614269567278806709284580511894262462211423093102237444198720241770418420494455072536372018423181694503946991463959242604914618865958461313699455906002467882475340412717567011657403157292346601185208831367479409164256667236442016272084866245894285473922091926697317411298280757469082727363715751612523427791085098609843073453694088395426852311311162780430793334532171363102207159062165999118536776865061365353937107490435753672922396320816710674290686430668432551768027127995640542646262884789274346075118872133256195756246573503260461157742623634743853872026080943137539895015578722726201959790623514734480382553296186954932361630996987214086125114918354180109840756383095868029257937039674792384122094325047183324639970346539152243425334118010910239597314296346431980044370658991869755998145698507293471794332348001617979719552463117862765648406736018777834194846940959860246759082038928021764034486496450574131701190004293103425060101991516698149356806026635820264467415795508199789452077012228165142399504203598609396489538429807729137590920905951028481665953481542727043677243657330012830598915836949783763300824020604278813048644999391031868403590701797551443855664642436430027511277205756015933336070501384767386522383843533416452498511804590070557252356860360159569464202375704779422200151033262314541582953274769852517839725465069936612969474394773159092023691212485636795112846218834595205964635745291654320912855134293076602346057389265500976113928834053869609671458285872068587278963575712454299102576525701988896003095847365302970744948961675258218655473806688426827466348530902377660583627747402738860174654279190050872074556666645853464096326345205400986063748355038205443632432508599651428804088340153690948297188604557282093347212805535807340455519848574371291881997258526188480793096999373964175853412272722478793134128862626227067940192200128237103797631423180357334942619518770430024280014520555196286976983444996139879777272690873701631322166567302142371792694961120877165733031890734164216628690285002991075168868899312173920680051762242901694340640110630565558662981513822605181229996900321395001893795276325568419988643928223652558582595881588051158514249290775206168819767818134542843009279380552022034465663678296778778268645940641264023108943631881493607570181390121260766948439931932446075963560291360840643703011412549800070245060631095997701703195072853482894262940339838805538603267759752354312688525024208898931104030361094777413459742719729911552554972403992402181539969374938072917574117818545227034407298668510171599979509546958617278326086256668903885698874567775916802963737476991359920249953055500196519395068834095702357293060446109433259449339295948038048010055847581531838523692293725726853584655311803428014239547315980006266121112782693933298181288503539064181242675919226143780566776460117278089040185993756815505908814291547441303142622407500611289982479890085188227735566636342879982260775451281349822138954846958651439291029630086433444625545156916363404634680126604220592120137733032445305820738835509330782268027711449358537553531375597968545013362728206727395711468479966036161102673784001797050926153212490571823248097734928347974315046317039209874640726643621858459154090945434086735852529835734004300025691804716123758404909515462501005583480836614790556564896400336368280120449399012105439529741282163836724692217606909922311875157771734879194011734346209334350877314684238273336133911570533297127844022732840445638222317877232403138205409843023092843670710234269099807926594892715037390615337181093973168198983585254219939277570447803814269484731992238632266931689648057720544892609767357398031737336915883215561507375530604565656488710574868680217084985123295362084786595078464332226045088392358456290598724542489023417965344218231994637056529624355230790182338980625031868753959371807402001025616710142826257832101061613535297531597674691648478008504652822852796434427748899515699723664950581298507984610538706733506789636398088271380996899793211609048193519953252727193594711920987717479322722872987900862939018358806368551237964022008528729764814743860616415864609323404896649748900291493564100092200213092903044165618670149549907551715110842082649672386949011568998399744104334479760428779011707527886263667516831988208748547702202740271373775179390521942121012319289898249057377335501098844732770375964361987030163082508378064552969106270340944057991794907890888613088111061496104998493282832768665353344903226434985822467568648093987078397158621260588196967227335786356462926795873989277762339176748481058009263777563239672133777739646491639207268202756776031806290013172278681123593375931527980213060693816712584670750227341525151971334262998527941190000822672291575279062752236940647530991849603036951952853070052250028111774690589234860785840795142490351955453385281724343541380605934467713824071976220531457104916896458402944246774740919079841854735190963743828486183686270541269359639663889783342761797456220608915066409433126374579203431414980390120894087369565333865852147554747094190686928456758594333776220381168584449078333818045168130157627486553821087128216277758959182487256613038975524381493785663780874470432875798010128064541595864147390001369289061427400551598983017375334820017736533300648639556986890736773557137108897514619695067538246653901259047146597618991613415092234317094999716790934533775840317976196453608530154787637329397967270477416474536984944761123874444470280904562624183414551365651800982721189894525757043683662904441140493632184592768367023886626223525948403110157205777680981804606352758285702419258505216520751639698709047478185911248253272513365488975333911011614885648537246219970760746992033615498571882289926807477836581409558151349890722983777328028221709686009764965950844284271130871184064671139071218128537508405138303728676122529634275473632573971536068022107686072621318592026590514063060723220789230769721694490023291992255034604599536517176725723182737259448883153366635321750569971690560656562441472824181446388125802141136090602314865280385706158134334338249020993984447645767286602861611699937234854440211968023140656681682419969659699462923091464680540125659312370084754389203630129721084107466160717328992530476888676690602026183426124144256966100019741471925430695050225000995733117753539651439126380507481128433599959328646313691527243386221037246500809352512521520230471489400659358581908314752337540893752549297848060562402332416289004329726657135387090821375759245857976880348046774412695452062766161166426666880456015107488212336152006609207152130375663587694999455973809432605191185967693913005882276948253588327225395887393635824154689792081445522566896754507002190998416197129034003473958619909092433894810645928166961936670362575160321962370861709701607389428868763221243749324162851001102569771167290510563452839193677621727314603092010926781158340430596222999403111600794802326698873117850960990588136133449317186729444013377065813662153068148477741792756454673287273757134843851125841612998133709069114376035396669170599582911634328195521953735511947765900072946525024387470774643822858436714760862320550945240114698139635301337941861197740130339309861691767930110274022413950310548853474517076326989715422341150680783415083814813413096612143053156902632922678604794060337622868973063159164377853381885992042923249816487133549313867043345128096581358703773987071574905965644147376027063100221070906342653028058198086670684066513900855665319060590281434724603982808903649046576885857829129095344102892953365393391784972079187086504025271456729700972293801262870270451502757734344607364483462418707689759332980528219590634963210523072643410884964334187090505285025199477144549716615991801428101160244982863758608971173883041969448158731825262595386062976554736819063927903039943237583997817796346544395583982490779952280530969075307178803471056377819421746434780387324167412183150329028053835227617096032538546575285186903476113722709073328071727685326595715593645415042653425822265462829251252357887728199146547257718936583887642442621681264392977966839933566586796245273169308865024874574302048407088111985390327065214843859970564472909283333189359372473512797897867700605699718747004650866418969919931115514826072969823041258692024882348286259462204682866555017336890878039448837188883350895074588178213650736209999323960447434882733469082803740806534313768972432887143448451685871998115478639071389952739798141232330473972167781338173582748529433441503187570311904092774776393126000978785922056701842796412475060764574413613261757849689438425956341657716758167321148487044007734482084320224735898035393801690685263743796422582414283180007111127700079387213262716688921110960730018337338685593644083238206358668674177047282147658573383227630129586121582466535738791920919896429154283736152827348322539301812242940237903720016989555917874223609046307615493849747707113601757879909341909368740354925520170187693913530676000070722490353367633738720414091451214730054796174284988634988949417041972239175533255545061056491355637827939695120808259342184397876316202342946390082464645224767433124278924984260507957757005981946233461198034503157515921521453466291234806679333811437063684178843469518895793018590389652856236352633422173048289921523072753025131976166987107525579282283024002999276427923666137281835030228077745963850999430517800046701773541628871516298717355211361260244652696568165842303390172369441070195482278131306472259314775755020186389300312140192492038328772689360221885296492149691774003003543177692172360836053082668560443189444758854234831217371401541717963453131209943996561688953465429926836422343684153690313577115283288816226384728251407466055971569775718648445961727159384913093816171644990319946436629803232983395096800806904482141896425655697558154573103114341474185603805651075918167940108164715174398241547185693020083164116786890002916340612894485770698166358082602242262888154712883686152864474186886106690631838741226960600481945508139585109444013578187237829517060668290135754899643537673023310719704286020973911665700002725031318717171702499900596782479218114594166164475099149000155063656236858216342619436195100179411563210894175939576515628956385461934581007313819693666262903036354888100450302713336279416641473304282056661161117809986514499372892785021903123564484243617875308842282230438484832167830297730933037347080491995889544104173003028166359223400786630798381753163599418300860091335637801131379288741939312777731652600183858169637513486627691297463464564504491011865328458240000844628975388644501229602017371601536283308784305211338288251575255258758415857998955161679895092674532044689019787984045584905417393321416151936468864143422498521212941853426584514919178295132187482598007947478574402952107620684038710011043289823607170024080277975039359222069535930282875823867397323564227318074163418678569296108212290220985187246659612693137132947150701907676538767526604871682462919144140433245821727893317410356048112338426588389812611407124398596589216876204852642122034224670638272679369932693257120919795280077894444608449649852502039736508599190939401852545105568199974335622479754306400540327686163055065781715453934909022398800218879958197632020637848971624417031846467504230354946657250579043646410909844794860838129386972923273056561147915583218423138198947692830524475838663577608002407997711062410542441580496935267886816079631545566169248142760813527886471495068630328308927091990117866410079318395777294931884860691300662981547321844715125014078478743281424779345373428004672262985048802721944131181658120449688003944953122994306270090069763117658373810168226819813997230924963918511249825478600367674774011004025475385652322369505196785759870301615684385653705515949437381573931466682503043486037100925079888430116468804288228856673552975742977800133445149498293010206122063752208670850741047065631246328676925464730478354553618982243984766394877807309679964503070392646283452079255836085973610571345946426488627056827271014151946206857804053495079033291627872007851352828808972619418168009726494127971599874747607905090427288322489721004847559507984555618705679084760185962975948726276987919704535581370232703247665388071946991528119802476570664062343364626946218372064630389160397627724364412080210562163812458980760089252687944286697941793258238808056169287406388380074629050760547452280523142905421061985335683457201269712234973341898203354492126839071731660676232216710272656680705721464049807068335088393242357733464594699716953141871870160868649352045117530824014539158609659150256823318355773086437468987959334923836761451520412926280683273191990441650623718790290110774982326307904752399470921592566934281739930757063268799518864164173811556617545419641741723674619531650446284676697447781592932952043194351554658132380964645279769468751492222349741446024228088228524662562832658956435842568262338243194465758424004298669943634482021867966667426006840966525988129344668020462735029834078912905958430890514913490738162612553545686638134709282606254030970261955260112090453937861169852709642087837980690862360883119137020546139234045886794779944385515816987023998177274056792926425217734359479868814976319303157541413342606546138686304190099800519183835425073072547550698995678254893804790422247305493169041134502036641613485588551256864118559826714307195186811690617128087689758665095555969669088606720040487071361357342245108172031588226765150050423749742596875083369897430044825399367090112575205172825923696447451780093141319877622367727326707984612749736497361870588433880346041937010259042523884471655983548594970722856618292280779187682194038252878774244196870954241616227380085568363745749033577429936971817219014532370753529483100029574879092991320644078665391533306256034547348261136999408640981128965736374022448215252668898929087123087512189081064920604980397964320013254661457948840365964526496089249975662822401401149933760173266436640946095380120567649438915510727184366274976992079519759661187552340854323357028516259856593517234206542021794712298392753113218427471306614339154261278974877340520349470100986913190013048439040561399774384385995819953105770524774979601963094857064863017461605169252908598323239905651648668718472246662280119421419297757294315786738510093554549343264606616881832471190314594581614278953400017376292429434211135996420892074318949226340774070827026227683308852391889947898778498390803948398937825749761776331241219582441005543797018730888564211396287423841808028608061076346647251283704088527025274305079773742938845373481993533551781792419472683579109899486004227427906818730335198170684466239206756205365830579033267901636858357174273743250301230369491055590150009333108522199965498744474306456630376540952283536958867181445407465721760159563488880558933896240105740125888542116689995122297936347319437093134327177010694984884643055598125463900717799638449399134799086275889700113729197606917369155306127446503472645312935122361232088551968333216632991150389919256838555184312884079473066223386997465760572395477363510900556555388336866661807216077278675568676516960892857325831621845863231652748309700938781083498327351549077294485593293169477316167656648338848174512012629770014585202607848212673215783711213270901342718765784432363214829668761323401836120498377398298147507986908912847551403217043604078338922740590179700393132986303104319928331224260289451545433602708820687087226313123672798830804541722229877969147539405665391563376729003652770390974455581153498451968838990347304049597056939069120778174699672307123630170320431804454319328262348337442087458530271272124418090703379987228381243840104507222994379300389556700790270337447616758009116551087907318314873810531398563796922831525064669252874572350232298103120697800928230628391485315461303339394892672343957138911461039526516009859712575448502073643559240042126124570706124911331814870901065418028487177607580820008726735009992377748601226265698083077852630959548857321585441734582381402406337166797235530910713480386612512355957585640649265122877768939656601213227896617397062087180720974012960951905932280077247107861450338297562170020220043615003147391353969941054980574816452756152970835191476844705153655753049469707448069167829007709787189618674904646801526070843504039118135399394719209071172542828519160933673176912888926806600152210356585466050944220748688351009128668315081140739581447625214804955623645219358921033634025070997379608273194029373646563756876077058007919640305262819719759221005814698648682236558220756231441071726728853393306557761026020954297877388202748800571302571852881893755638489642090110530670176932785074124558054607138257787954118207999765185438959474412009744746207690371496832377963648588469211439549394516271681600563420532987195829403656769032122902487405179705568107002042680173844058431874177753119536453960546988606031087551784858054532030424150115142062760514609054514018078152173632371820142385889701358059675913861993382293054772583315877823678644624890235350059334284110540085627447522747949958425877312139598005646403119814684395484155983324525790910827592574979333942316106779039843582062973461207378138957454570141277195966084174857394705760031854951945627342315345048494025000245600419658913475419990342072051343752949262326688263114330124809315585127378119118984915507705233692585768871638088591651270800528412368983029039148603282479783962509866805994351692343097373560550168454679874252675326411763332312992937303818297000676260664147723254281833703914466462272954927009779417230606751736453847531974764506506760833978474516468779164413178870412891286546529065369288020787188128240045286021807844988849082452320885109439205981224449196521731131411846833374820103650969102068288602460243980330315175949111308412558728158320541797913231578825561505398318948931749776741595571606091314770302087806068947055786129196873871639045873000252735537568391679449646796569849709988945333754567221980636132666077282864616575586810532251100628573662633268394931300336368552865693917955267718622816675679669071134555228006305829154226984042515979685993387266565867967513126682993970610377943157542071200951399648508225069517973498133675321879541651486763651259078468869109491302564805797041792041322495376153254518229685849696021197848741115098919831143956328746304958692704939454588191550763307778228254629552209854174368110679780154710371210627926783598859463682114395217626462391365314578754766467411402402061204841305363420997725333836333574085719302034223328105558401105589362124355699272916812058109063018874799722177568158156917976270686222919723206584716618702088713706091139919532038911832008034902834885665894955422083531428951072401046448922807992672041180073162315833809937517297321141994115411271396447802020974791979086976872624923633285478488495607940148458332157514820448905237004854060306165705863242096021405969192099839643227796896352378136020302844473135113773560109296556460556500496101149304711317897052225249661981550724924911016964046837670731642920184874619314142002485634025389135913341478311315838913805391540670705814883495489843010260082305099112292425688962105088728258654349677263774145365358422042258926872289977338312080527582610412144087534800966242432198587189496857976618793213180138306199961408869627349003071578670278917851445390756808537519928376084401886156764133284219753784695034842443632547235650940658359652067919961009677421786864579781505582973619172331548716838721976391269724498758651513960403091380702718282652391647524302436906236318821994897466249056821021721023265762264860704355803007580188525664503573060826558060536208836450463526629213548234528935821880413741880274504432639055064480901499065919562252822899687176994902896827382436373741501762187938949554218573652956303231708574415583996564008491450963364096370359845048055433478791005139503790947331423404653309117874740991469564598812449692234062122461377818840535643834210958352748090035892753510702604671001840097892639597696173641874266609046320432722190719885399795688993520189341301376210747593614135599376196337221129644718512406078862115974865974439039439778107727509775795853537745422206802885494298998459880264939188327899936393380939647298621970651092917160425244092989007619741904608372202716589163781583806569021620380035748618029958341663095427739222942437183782830303913338609980983207439522565081831615486068966364882939051162553846535892150697347096676564617951475685262395632488670057631641955289075218340083085429363747963032619276470503652400916502287962949642722405421608818238184780942160005484476669240194363247156152945711128160096956497554546099542312324264584826841881197809894992278354356656762066427379716298309085765406226592199254269771153607275041246297893072329669483563459370700026355350680352681560144616363624710789965338391862476992309673698070935377777312995722358212590843400497890709598628924488804814147056522418557793728109057101464365874354464381834451530508231761450718158595836286549184421997535182797725364560134727043571505696717262364450295693177490603073401157344428020045673866232039693822877440439232054161825331467839114662621792962061013684279410094367050232812936800380991006620297239393309422401049608358030521882207343150664199910884651490739583504379910381747697817035216878794440451132954882898097315500475214669271927997109697378827132951697685410186004213160834560041724354887680513257483082080783490034039915717181048905170420496372499491584921723173240497218107291341594924893020567916617462407323206339466490677566744472700994924340357357402242419588216777775285400606431953355717549802337021660183275043711932068940463673703628621620785691064720343070760964316108320174954314624141526883688162566837411041254472882605366512344507578004634991299668785738007887246242655501989161843632246773900131550734840773785810796326446402529103240247694830518110990364692570234725124053093038381276170662794669665965273598361990071750453412864040297191856627171010976501139260334799169596527969154606685600154319474496694726528011689836265092344290452026131791816479171558880841599679969774085257609028813264321972562291085794132590805688464794824190805358765967143196118473069003461093579962003812048358954124565953881603647927348469075825430460374843590462585538732833789563552025469604451436404224587913770642390354998809389148409484676256595412078150133679551996252858529771059763825683525636415244529055348994464247536551617669642989303490057516479160585948291309690235837303675389706588897063107030022203620904833518473394216081179008343706042393846963373043057748027381673932269320863496431603298959396885091888626542647847897057561712283587452063229030564004543860678097719740510806574997038840295933158505932946314265867100115985597837319371791892318637406968883005183330905677322995986403807171435488067713709000292067864883667756962564620504689443174513676824858400061184051377977481533413830658049743141378635670395414709557905473375123515217714716353158249524729823467319417002072282170047059138933498443006702409918151982108688529207046378929419144838794629154420661062599417601954459395483689683938009470770718304184618780843559166340797245584591757796283272987853919452656088126761418817233480309247590618435897590471773834745915093891458946630715022844818869577168586037249492200146873493898577864778015139793154326732409605917954195943357008142855158564209714918459778034438588382039101647869259227844391368581326714191506350663490759723342004626809887353544665659557538413858734976720099875107307121320365648675930904701187761315393241593724598055100673002711390214021864912898147518061942948207943163157575757318452079506193857345000425630127370808165949891558087013740845583223726841014562456898717986830987235330397018181932185762724230614077116572388805644338785583186783603306822832112501241012123456964302429600303681553943075578924780811396494377432556092417898010640375046054651362516726353623081366046230107210873405934767526817737975005450779436232344413876167360833163511560880370694423409876229681397759859312040696968004660212813378121971028925310393937148591549144149396674309962324188662666799682779615057555015474971491925332105311923159960924031079869353031150274330601054487421063760500390357828566651339688881185662456560308881709828447687122434886446140253090329287713164605425748052107661774676612955007498437482194462490171183312509840395581105226743617409424360351165872891272154435306151828026297191317981746701649326865066163268197490411090040464555045752151247414683212998299257186017655913758535736625514293261161452017604215034824796501468620854552877456336545377500334737672948970496075258350913485761938166974597223207784450597926738338377172795583967106290795758032105381569846584326648649541879589090052866411099885673515338219929597137580784247945749030145756417143022706482467596215480383832125302298714725343412337260876346922901445877735793647025361426606418291549843289927462086498384741265276495708294775028188373771855368854697972373848003088865737322959386243490813525675980602527894258086116121132999755257513361881122724496420215506710945775254357955379634481063847591532482385407103969478300048394128674515444375319892657269356374842199941313051310743387079583007203365301274794073991433311307651062579780402063639137182738982965590436456689992008549947966424329223780082585233317437020246558746097415957439055974412241461664049055055582572536942599667246907689099108609604583102178775012506837081862002047604061321413725147229677619697135265939340202756116284754940862170920240482427795346207864695627541859752881409725064217297160783539004436183072082356983623948606862894907361722314598819238699495687435737005158482656554916550166541216307895060182375370678219696872114693105072875293328190989512286998132205672731997039839122160317686300024953942590624485024622288219987468165999208714728942698542164662549453893198969527132349292464813356513517665338245296124334214513145082102905452272023215041892644380391188534284121764382208286047486771669078178280236775692065092471001385577665107476460285763692554034517801268370193384636987326486473262075094708849646332500017767088201870412276739979367908272463561281038010474064934032475041460298801590065849696529474202224779765283858962863471165869200235063530441679580994640863481584055358041886674190017865032211191320257820978325946954005569261668360832264565075036872567164772451574176117604658213144084906424357591899811544164577979914077571010250992288058535116856927749262820927900817374322696179316576433111567685131618351441325929634848862603508767805087098435609306929726033461584752610580839291091889495578130731219087445024513395352871608204944542929451326534288797794753178281897418325918512077044277799602744438510304963999515917353086527539468861748133785431499436451854456381833127964635926110897027845949111533858641422026313954066128367555060347017631948351263156242325610846448228950171245001756142816490911244823109280210530906941369051043217449018533266021204790049028355045241288127038318767469078241692056148978268286855973907494631842697869343233344728549471086740761718353839094154271786066058081247952130181599254593752128776085096396647411141762602263806183279608824747774789175903153031836457276870175165448169571538434773994380857005374323532796691912028202834885512574737989321027188140763844787463383804451326711430502074312703458561104745285944427605300729208601357965602250376255966273894110083077192211185257537331378402992030424023380740247161308122433220590795454423796879581271463149191086091757070610962477323449755180551972099231653882985303133350193076225200453038743840826266195316493770118317801862817799875895362451482186863136888230674744459281420425783206983350911311279768294813936033430219421554886411043565724005889379283537441564623525365707607155015750315969665134748551987634003284223494308173389194513656434403920156681029084636860342110274642005321655914667830898217784001575309723710853638170327949344366707033669403335731986397367269650003351370632999494211849921261146665363454151698525350747914023059522110821085764994956304523333825579504805389742895465553642325607976375942746185250810465863131507207339701720183201459533374025751880892658833665957279262477823712801860241594114742167442776012289801617803999338582414036388430481952538968840298022597360383341606019757341108465068573650607870130575912337124165523863045851981606623006949110000430229871922264619392739122038549758114623517725509375454436703349314089967581253247495375297651202008179166906094384896445245440148339915149663300685333920842716096529754599336185533594784002963687210742239687555736442282275094410292512306315852190189742354218650681595013221284871367004631345897518193202324413211334107888226253868167223627268388995781151914556425648642374486850562651644585180468743522712123751484495766253615879906398839631683306982806409208652674647887893856924171927023986709733682127010970534215626493283509514365130702834500029216441773994877732303746879465215446672174125687291965184307473008591490447073876243672004206211556931990666915761958471848752324309692528030798986546459844001500335502775859269739379438557221557678625162900430674009200332163964760905208545048530858308529275876085544647893959727400994380897952163741096297930495672759213081946453344263302730139699932219238260271910884926221863592776910899453964876188568951531774296741019517810111228436082441950584762033235252780255455803298492051388634761750987422758715884026844266454746646809103660730604577408094636169254071267019798610728600261313182969181331777994100425978067088889826029327310046316241309877936264649239062136848250967529846643420258688610567935299343738902562785045082570234500598290118415597866974738398695466324735088185461289384276674831409597123896732730983351024642912490472828371257386677792562986045149612103279820066757692160870257644898303057993748571490152814130398205504817955328040543419418385797374019941758719616764319996671112580222150826090360687778850987124720344884464282797115530929467286785461146842650860675795499039142429885260978909051161966586565460925751859685165313171342412674765523688685538075732829316442768120389009610858951562085536751770043735819349605487063859687581040676933228219527838884309364988798920252012864382286534997054404603482542784895434694877641200456460440328750226680414342408517547505899154439226389584225939882522546156955548313203385041227988782480730654077152636964642370268159758908664647263990597027238323651705010969031673485608361465738632437584063825750520436848018879859636753109127243675572945262453082360031407295668278941296525085898050958027001559400238201775745412490996614275893095708436622227285586724712525556907276690767137022687307401415684663067759029107169310299226808677358045682724974141357733337124873603478345500419878724280593872347666750023052616896075884771362490840485166801885693279369632071838520421468219017938305894910130259270547946852121911887280345998480360592613709433137766996306360986608971538435265818502985590151273802617525399979699633565585257988722639446771849137732791969897370768681510641153699941493174946759098434156892890711314943468130158721812144229023948268369528970759973761595912349494721423081971355653415549240305996722757082382174550265377610374675429301771704857193620312165226431789836330688386919816463982536989821937946379446093281966830625487566245316151947156930512120062974867013306989174796067927560744757013840842291548499917934052894298902391398533333742486780174032095917475017020398443637172391405939469902606811722319705969282737828648738776583092725277151268393070522756253176924947327245432125971750421609958819867945263631710850170896525635398095526029706861861754037042755063268678158451481179153445405331030540558873428923475824021166121863639555023595228007089704897533137112237387933900468061633885768852067190140058010104154564997867344350348215108803800124526093250586110708142261384622875519035679548729419442699714062378693097746675984860866344821722513181877271549225316508175502114749551823686767958523467442973080365385656016522434347828706214612490415130081691900532477490775564479538760071547887446975177167261121110835599459457157005983116816685901330046969574043255284188131260475544289726398578606876435511460156382576535563394072349228604904688943228595420671922680736195724171890026455069547642706072038042135091915410256443097473256475272763900525726415847217455892900042791104230104060960508085923448944102925215118866313080023269375334850955964480621306291322123855074943040146048030571153160066722714729546389060941998736899416330559821065109926220392109615999664982454297429206341123444434629571654613895509999475580031188425693425618443430847034390394083729447790710066723344700107420324393000525530319666366683951921034517838382128635836213685882190760088101910467286142196342533019651550962139491770480007390028816501020634425192767719800823155260381835010784392424866957301756758109200185781974389430665620064269634459412488829519570994205527835660227770077941313844311529626093490126045435546319063175497332265011536138843863396456684930533773633238875829392020742217730749787895880422671414439772878502594269777618566138235200681850619423734386444264609868165642332914438182218677737403646572359590529554136975722995799297913691478295915580880888666695456128869566744504270140183920509428725344097132297426301987268810956416797149569226518994265780838606307379882423884521046291516462636839973183448326856132906748602526100178635856799127213999175298438572847416538524588026369519974232720740073664939677309193771623851090623484862282972950615991013999336706246657323801647284744923237249676867859944041052142992130529042583543761714709624802881779488034657045941437859967328804669884332269758308185035462880542766705033095875003376300395046197106692146556012937973616396679484283256579899483779612723327701317779733862664500655749513661275112816952473544400513743137314463338243347449782455003179166305430726237104015552464071684626482877225193114287352495717271176847900457129734580163858544440606520326968288532825688721408323446471327168871727766343360735123401153601450636600229433419570375355593270963639351350915671142920401495485935426622060880596643571102509455412827005950080950670514272383792465188506270848267372793500194839767613900873372003733007443205548471595647840561059589112414490216957222111171049201513007200310688352864340770407542249133622570529911546044667486830772973256059116481901028696103157637020164790263722048394458459426944065151687454031144128588827451597832910967801721686559544343626514033604417183945716785707659849945964804767138553034284552996435039144697102899356033702753409112094414898057959477816166741871327274943407405090556839746248548295033915385749840508818442471522218812685425138655797114912785150619963792946750962102854161408843789850509673407359055835972764346398037468410905399736302359617561933602840458401699968703303575737478109033599554776677455926223721275532776605188792657276761547622127205478938394290397380284249835057179153205913105090497057181374522951445649804486771889666385513174499454717525576547911522755568390328850859558082303201493411492452597634216848966579607846556714122796530987311300243434940081751786851051669371282954916511716588466423690117942390362803086655340368696017702531630626758293633512339545547631875490496151665872909055848889274138293279750035853890510820350967821065863491779420282068105891492129559308805564625331940133110686769967224582576575515133119879629674235936198796650458951473623114056216421345303815738981527196033445297579016202994187626819774341570615153809995735276221710172441739062133662970112787668119992086443848389389072209517373670259321795516552503553450676759405700482052956668454928633755738841899434103758354610516990790947718495370315916556235623244284938058570969932470147787501639924114050188323665113455346519829792664628192459565805799675768782990304598686115384922328094804140578300104790058563607708077983319067746179439759255376440969528576401709681480723407084425452044058206250871674377729936992967234129785220329490602700921055274560064539477152292529583088896664644927711889152424041830960610878415170691805497701562381168678005791824624939567078842647238279977118038067904228027277954231694966467615524516901410358708140080700382811329838270739771944280598218305239259549767962802398009034654779764363853703756680754764165518161156326807914332260546575499300125575695749373080175323646741565355947647515540864671043077769286123283997314273310644025075854065301238509216963771541896093986089889130663686171731199590456196692892962180290682234066106490462452815601640859427435527926312715493870484451779618584069695163864393192145244756862080045005109257175553961498324035116815239393216434710077841486114615099067338416649908067293902516183218969430777384143642597459510490700915119043126622060847012889458599767746174546479915860350254536336175731860836341452273437591560755223118722530554851252380754806871222486356868571857393269769556017436486661833832027907201322182610152460780396554535194059636268634243227700296795962793793012554901243918868160168286456252109302225682738552148663546772944653189630059605496145499224480062025799499135201028875857482218875152593349968429686104967635190494013197488523916879426615824817728029270566623952253150244703567315253288116690655544139553186016491779758759164907402833051237934835893515861834316505237668408893930341056255359110200380546184115495257909503719718236322980952420632730227336198161512970317456464069872437314865138382865286927694448603688794295294491571165047655545544686786719035672950884306996647958091241964154250077647345481162539954537788288098126256513366924624311935584142095494242730626275423946347225584222126993326905884185686954384077795276530587791484724184399554836858269494175778748106262305540658922304031102064517627832843741966070935469874940625285017351545647046554822115497173708776050301234964034784374498756314716280565076046853189817102516268462515981773355384851806663140603503259757893029586954961570577895651820497640000375160786177033124577121984430728091170468973679008277126554676573317243616794578348262954335062062544700795597896424407382268108634003628186084694557888374175352717510915673535737136461476366521158836811872606122165801904925606375267121246738895191913751635156565658140228776998009683044674328613968059779605805644415032870475501157183247170529406360383225112672088383724148892103702086588654863894254429065255038298314237250738950671984966827369023123207250769026019931827127172202836371225022972209134374235736120837314748891538168819233669076024093193977990534829900034776400016968565524081740409098767901168070429628153149925663882121643934767033914923820084194594193101023037201914925863916316187181577222653867069295615215708362261114037537140537223087022666363936498041465760115859252566882537426089100172082345079162169517115442845624125380724937646433299161113831931471768751814516298894887354679913380137479517601381877708714459112643015527917746938721884114431645889797942468839913942040198830699866121224102330270742056138421919607580047171386359111636226692850525662460258440605961611724172254235388491711185870832348411358580313339815443169798482682119254265855523068044304756656080184142279444954473860935561559876381424333604462613787037252357073811977786099230039009713776226126885858858905747122425168440672684882600328088027227093165621306131252235925793383941797034801987416127961927166133281328372698524902701844960393864373867595644165823400553187530074774556306035351171813155200020540025987275093679025889925304700175680931870319746395454507772905079446273407047508161919755888194858238643534019265235257207661690267035318546906918410936000352105243862690450978414289832316668489821950107801302862154090511821744746971316815323692663864508500856931065123254063159305929570564558340930115750594467714864422180132798926217947755581073340413380335157197676041135759037986210676684026114089134243923362987386565871094507869153184193054264073600885096181183620572962097536002501220146092313345502231405784345419201116143233642787270379919340690926205784126763393777725940105517343571896137951366053830349350090220015791368655223816515038264525226010826356784513931070365062093330207860215990028857599600305165813857410828867932795678135969963882605437113678771363177917103347486457719642060151514126664135217158134210512849297521478663601843939869057000931684058655787788207370654628280001566452696097705485791026833621659476606578873657666475755484534562097947967959147892136729255674161938069812689699486754162240120896748741196506004910322871552086509419708559809692302135489978797532624569301822049637612739403131304933501324238491119909292269362531479205239385028089125173701112731200414702498627070131479377792445916306972380625672837095846536500054778632934013887729508464258809795752497146597344065073389275380343847005197357356088635841041740980450295920351462437789545630772936458564458018344416301612784563585247171684188636661248919350994105656188213387991048296041266530065327224862905540486389354163821413111214449290927020604977412463177709331278218260390377362290081797345349472800220625878100444454406157262392951827165025986836520085741142046488425330934019786738779440511676966388079828731254871595184450532287938023419198729436865475695040456034638750773818727482590520096925826011992680971388624138896495196087451812527824049906901248089452799725917055297379094440006607276788988484280544634217386503324517029982335552112759364578378883004107101165128985548091628947931383925778052836888749151585943517773407682667217036616284672687922450458833039962112819165998494950682150142531093664982093889225446817545503775369552000222701382579832012290147111212354084491823138654496518920539926976061669786687140037647722581516211510075074997009459119502254546693616891056354745048327693060111366302842754609172942354236650892661732498134172471733197051391468542189250398954434826513403291991836556084951442941415431092958002648380694357829427312873185219485374260039296832270711663195721297065961614487458032853038480144697230745968716370369982113515387511036027113968108583729465163138694947517088767120642224958052188331823800678950222217038349020439405917896751778825936399472119116761322082411259657592209513758468466966296331027707418498722419668924514596145727304672570949930004284562792332027614146571631195569032794008691788258143563098902330709235715691937717046044597254854108724130975317336431606473629299064324054057656677798508269260184771372142154723690174332631417089597566168408143898882474954804119052481129195009295499639950829727045511946030059120826566120242654877750333664516624270127927260521901263584807921659096266136493979149654635352878183260009923511153762399550098671474102269679366683402965831678016145499853369181646299060562710415300012730694079553849516587437074951766467834881527827260705944615490737971091603328806833526701857678371229932326081889280672426709090789820153355279247983495584398277360653451539128998984839516938273873710943343141635347728369247534093440086243102886162455621180206512354404783042266931309837134697109938587346087274293517416796623059065974097530376806475415975547236319652385337323451490228554021569405899847692940601311713746496280194618587041733320413993085742061103319368059334287590448275887615464881797729659994278958541687527497695266769585669867433134726524903861131030120777102382317472498256570847656285679121123124542733131565601727307647190211225546150450221728272801345026606290374442834095377588162526123189452802555670965167937041424596139966932279366501546173295176942329831159543145252559108612648344455951020404016481205928025522618063752476797006719869027958357352873450312088819507884818976688446673630646673722855046291521914561341047724378795875533021408802623979479719042188553165251085048440191576848010552520992411215646876104163551788985094744228363349124984491855247886213068326697245808827329726196587802165404343909447183319727956707422583390675729982289945028663442847017656834317909142768420905576611242911732427627504475916283786595627324685568838290772429408868194752902611918832064781063060843005001486521215519104589804246465661235969046707112363520600946925703886446219116633679417040456968108562982186902603648863380167778185750647554759018851942672161573519028358642969898257942998413135396202548318575759322844107719702357411229065620750103401218951854507474415641316878343921808441418365325196545441175384994346062816352997100808540918043424180013473296163317595851325915307136232387365266319725363207670816242902792610559495765320355153911705854195641694131112475268580785082811739927106918977712335284892353705442070842839954780814025114040437042351669478218322162547031120586322212276023097214833165552168262955022308713241310887086442725735580850286027240056995567030259091932569260285958170369170773506035950032950512315938311426116744417942363359894947560318491561338065650823041257062236385629341880273183204178909457975776722380530031894813582395594220220032770662685850613377021949729888585086266021927855751667812865419967254851768025988760445597207740550608586531033174432520860743837060901086642170223449668069716932924831714492682682350749561927627159239605624225956397428155124266339019379734510556081546147840046477512330208996097726468332952469764527603108620012849283599419282460529848472069056436373936919563459037933231612306751227420246536101992216273165910114041004817320434345784105022683031594142364326294086803164124273793831475151345644845240423609868350791009629664947462640358637251153135192438829016023198562010383769096728747040455999013088824199982469538164143244924000230247516652598535261888067843285962055129928784364105305945844010953977069387006221621941944872985117965394199722583786766884993547960159309178457649146288885532347936347731182464837977193864347125459227273192712704143198869578107744895275057884140683902625930333975260645798170612041552335283686354293084151868482451900884910281340865324216314129936023391878969628785298509957925088517766743473813517490017437198474487279345641511338877431871452933867277066825425843203978023334335057038218109330961478528998207377991288554031918928915496659159985731115072322203213469386866781627208224363589372747610953336422781749646640723116405044595756262604882858014213700474159556827907166556394923034272871304193481562020200651649579593766880425365684016955606316907562810203111062975877343016798155916816584225466956117435444134686414483028217019654173514064816726345206837875677631626944050769182855960742181688488975072647289641048094257211108916088161714997090572316582197847523023179722781628557072546574824571715335302914873797754880327512638051058743563603453650144419037717083128832897649034155453286038020570945245859923666573950878614510481020729513345689110342353041376582337478655672852167041784958809324880672408776888425199681915032464131803232185911523970552255816328901406188480471338431558615872056797611903037632137019200814118352156343064595230929014936168183426109281812935000800236923131923797877856483235757861481950793398083546254733140153269348967960143648422948566983847051531012967826980554273722720199821307895025612848201885006809638516218086367748033676171693972179499625246341227488179980861810651009219804492132887541342144774176530585913583065762474954724463557737114114640923665091084277600608795881783721210173317485175476678644363056000873906783357896249519956511899735358489045229806157525287207629460286440585547865941008732350231320567718183582801233367441001575896100201795019414328996650084137148252306663165626658525683195311117611045044108034369145181559507929252682395173905364475235753401576269831628300422320385291120952160238530595093505918915674872936222563713936017751103914519535778082809864284293559196356919484746030824814604509541691734387645289063760053522859685144448625825882901754255384893624095360267321957939684936643073164983290054412204313111995197803615572937678235052091407240074105328289077829373388183784232356246100464298377949153647861418648134557739064629358214519147840569817882886199121233083373313242658241683666112982490574682061587794872267963236189507280330631033201726033927862618974864656142105233979011869664499859146067054521969754752114178569347730366025639766193854865831048123660427098621116812059921230518894219615615416097484450832135923371289810759790638886706823075659231782152961845783359041932447054889677561102248255594477008896026680279434821712876006804016443790645634848167182336048647054878964546616066696994718836687147744305436515258300677633939331815208493238629611127842984808556050457200697756262077357654129337942978626343930308469478267652720560259475173781929618209106707507532914198289936449668393094375855532402553165021135641646306807611395785356528623119462572729148331232964587411365462848671274355047335946469010159069307737998057521344179497694583897333586899771584289568345187264235762831315997023090492821088387473620620347068500214922942168453085902240378291887028811823081351277245405460295420803478223314206253896545733151347710580965836559909188110353997249724875227618600562792956538237041330725736665369082423917502677397578606166191940538317826662648295235698080817318167623576574720559235289856082863266631841159194670191617025742495833431850199124022617486493078825743594768628916127468237884787537321352726490114863251820769261168037690664201470653156364978397442306450276147059483935302357937290233244771829146089124715233246864112368466579698252870029205199431765603458048968611823816385253570347302709587623091346680397668900951413574170634571887613465202071505876490293991878290134326606346710489876150196716919072879545432028822349495058231920722368925168875887324484011767919109387451935015136894948599627734669463105517208435776688951982731708984723659972706943328920011009474306643787237308883401755268199685013733665424467754708453773619605202530084431893876901495009150876526122819322467893616541528284029630808936422944067808150776686939345905603990852110827592977991220535936473697271339177787061717603757119425880499456578013383453200552124792661651629611743268961488856993448773976477239523691686818359375906193692846114991445550613890885868052648077783973674905794150589653064129542850536265363956520733912577394544930101591797961724182132417198610892708953231328293718310120560134179064875524672525259242561720095784135862085895676140528329841118485890926163562788690391399840058779885659662502398273210646575470522697099632379787729838991494568971801517165816026526007802606937421805242075985239040011369632718467309322565919444949178059234176810543485658976463044006065122932664889692223277769990593753422345679891789041650887121214383191746182375741341888813825758411361906511535970588843047190154832383968974701228371851782472912298659298912244771723644726251367575806184994206222778910504193489014408996567894208816819365878134243577803580847105053994691454671246046015043424687485298397740718857226587952145632632744111611272536872108393090131154829691794595222127837245791585062147906151707989231309674201856424385727925828220253847292786146560394125753746671545601561318617763864552599132006516914196155302644319632360439463546408704743365765612254444364624700978966019107281024286750499893364644807694529115511805671924835717272809390336003071305789510699378393469592922037846951432368022012971686656103611736457362061860244748005727956612501744961084526499626648070654403260830115396612303154106135026567015252045576381478754177474921503728983535936134237660643883309184693233336979528102511098905074134623409708536417231385877114204046745500016487137224088067901441456728942266589860825682490710219240142689722934857032904203778056839872877090964884275707299884317581141069147253662759870970410731189249150948789963216171337629263083404727901669279788021989384569145927795140913289317670927649126594233968192820289030172853825328110558130482375806756633720394267313122273572767056545420304222890222569185943033422149818881544079711948468676585196729803948534443748815296965834567193597524103327449558197534266233063114677720050756823827446567513009250389250947959650044055284976073485604765062651908047211127245421625003480240326406945507591081104381326568646730871098223609107201831593475662119992019234226157247248237502917067663506185877191934767608199746824795450580637984279296239229890057603028677863458296616875663605979129621908878590847187647488950292783814937153340430349936004169598126137086471591612133978666440348907423340983515871033408319715739429322941659671852004656117491015312929899187930205127471238226673307677080576642558307079996628820081089853278228286518194221267732927464594710385657781106432475265183035552248633193607990953581297210967465250768052306430153092141933007334080225270470292681001066730546930636680350550909240709076193107033410103214941180410253411758591431538244018837592122368871191424150856141033736958724043651502483065070202316640353890027322847531410549478089892116271457989557216516139790877362886138054492270118781068105918443122538411799104904262072354987533832950962798020118255331811315670576541842728217209519888963545835921194145056281996799030693356054306700318451507301955988779659283053879552501488370132084876805177972198251459886473974595985663152073905757368581767666171813071360262903363458916153947486017596021706150014082500396004712205138069631043267208713008747812643921256543718556025507102159500187406847876847162216040288963477026027337561396378448289863791241379474281875271999836458568320259690336265501343185116489343355857838221268343904978922882410483279740182626101433277702610209613641197146862612374524697078647867271930994594893317618098898465079070182799885218366774972652299111606557118726172299583081410206539817890423106589869921612304613436813218029594731295438206823422298710132941806036310560736756800509207459931560661602087700080317879329661074813444780252193606752606356708945479789199065835841572574140787826304566200391410866884646720824958894955982508142455214635438159564869687789569725962473462081237081017801923622445346693290480484213240569866518595026394190887773435626287631070553138257230515403018823476642799427001530694108560488699421426478185950677168470257431926657817525441287250144290198145231815441347939211916905816531365941769656904659361478090153607347623677170856688969621131825908598794383668681910433721752892680321622516333576159630557802906001715045629345832463064261286018416834239206737215783642165208511062419742922703806619600488198355789648247420266871995592543248881484652739947727284016761443038565397432077895282145205463947531818872823640182669832831876719842527548065396065162910091176337706875725622742591120089149243233792034146784093944174423684518679542293570148182328018565311294946054504645941939580316135405171695396945011398234274471673946577474903436569419453550155888745383160096690547778058119977399770007745173877760087667998137830538890079293844344514902645285361886600899640694524399837501949290715807552224277936326764826729963239571257435182310938136796292155011902118505352243020227899051945530859750022040805363554200612705792733813634805384892277266291553242741303459913181509750902583793531153092475654683605080663997287289271585384241505571964187002643670804356328204358689237197159035017433734297181512603812828143123630696970007267769272702652104872328344948424419126633059282376358401304323678841393142709408586320867820035016311409755600110532106532063073625326033743967985356547928111325395054165308569345974499643349284654792974322657634165370438736403663250961914312634675882769057905893434458821009153394380489572012593272013163341686013934701045097180754631140514144237071880959613936707365750965083739904010470199271176266666225845908974319808390348957406317033721159147122868979438438945194107625848199486659239525508261286658584846062553150438184137713026015538704616516759320436976121776316872647710729086793623607921757086870730104359736024871047921636766839568829036875143184475541006879825126138697102953770743301947987861583692667407088170031286909666124181721550879027324124089509823953840703522845135821500382867396277582936270775405263113750375370927834198453736344384886103870006831134558691974712126760835711635893322209672565163469833178740500387590371001887101594029873544111591144482301992350924338989837559746409313358397697777633863607370373172295851625991700341800970896892352180369640353132020220540219174939109151958159570781857878026450926026076935556410758415611640429481110496743869076757292478475534521582717845736483189302468908413448309851578460503816310030060346653864289481736790847325398038940630889351150270475425256225897600838394639295783793797475448097564571111892310383657744661559798361130374670554866100796093075445311749193728475011981884630460506813827491248809781411841506403376279517950694417042546213264658891661163421777515483889598371571821337629342838626090389810507627868580247128010546401721625739097532636094568837342638806425093225977900463565349954567463256224488692908119766046732850124133148908966996073607793405634846134295761929046348811924570599988529668788946802874754856531945857374886709954623539376559011095102042721870512096815017955093249229351448667115237272375699256087141831391858161586592570914987646814428736740357520914480893073481677456552298502856430683805863405333828453850140403465614281526008365605937708837089405451362530537971638173167694095162369710033758806192188613285152779472063167559294082498920878619860616436935121648247425843627126038906186690603288487947614649881541142313134685925192463309095235048133531414378656375586942305352556347348537616539143199229536622131228958530168171277331383021743358959603801361545148116797821602776604170820429374582399796901889317859114819486611955598479024843566541210594208515347694741680078314632087701251526279871176548188006221686576354014255643444022427838935323527232700535485037630974664192791697851578815005779200414564771080757608492700629247477692905300336469677477849551299301712951707539537323749641022256350084581905285791680806251383350063698875287438018246086150756625405320148174491587441885232390263448773969969086319737038494541609574909606754426983592528313513080666052507183602850631174099072710666312172362536867848614233113662995016087910349161267645032406742422031167813568775935942747085934275450830282157229851568756483712243466701004309587889115983213636876691775560449228524465706898538176455672941940226651854560324873450835875472372288640288583449203020347828956614735050515666667456781241602733115599675481583378906820263637277710012548872185328665367123345687006767424568265315312683794538963621746975795011301428016442413308289419197158802611473361877682930850682767052120580044365951018723177126249628255432742678007930653758000839678838560364368508486220090520947126667174621395191160996906433911014005771018306783444909080225415143265015501845988025070484750482975522280534157228863022854394562363320256801340441661846363821162662095823389533380443705799437872653764124730988713201698333208185402879775246498805080999441580882620890853400496727609803362385525950915226705816922271839127650858571605377454340566430078170643659439141152358840601510808931109925851303318869749273095247099115754957077963864543629330181561540947938959619553288915959651503448946224303353355820074223119578879248861418226882055247167382078653289854739403693008606709115882292580373119017481814133624559716220472988051263856150563733880383638662043666431843629121768359262410292281692129749583090106721290274450121872816048216308522206767588312746532908758066947026896268309999183746084842642211545245337326695381886825000425869294977479040220154989241115589465487125035151666266684780258238077314047096041110679414311841336269946229620047495098143798371684316587400318680338123441249536139654364104138630316575125899182191988916275714822591202729742590573777521135602577080773959695197783041778414671082961204115960599283095145076289227046270531205647507214858969981686030282568572413720377230473196443333936412584275936599152366906685509208362260188813238938379411365523311694640411036744741854602374399989477334502815679273265535535525083818615698389170042777710307596542867925519411783116679432647387883761323339539180764003866678995898358847885178366146883090164672801938124798705910038499474894360514358397450059862756177805439185839472709268496819327626697145507169207895010006238428172201566581617918102617475552301759610210803272922861253467929426154627155280664526606800371285818875357439683457912051726112201135401299935294347075357353398297190325708718715144627120942477995498621181371222943005794222386997969444601732107076480309062800851775036608665384971681345666710654401112534092271100081652429877449272524669157753572161691140822943148132457464253515697076988840875506527608583922403854619621262863348804246044994849637620998773933817257348610805213690810337241903048699050857547863519175338425779945996883018121620349743551998461590571767346137511890978677922421908893947281549002968600763831176270083891662669373555707378015064767293472536965201469001803849205198322044076305410062695179829502815998226792919611466690938785760854671242528887933276057105407053256899743672270699470319373114462012154289844481410053528581640456394332152247570947936301277358533253224308444140380407731729215474617510817562570997236490111952298650353031686775111486095435966639775429132639839226294726601882227763395093947704194154616349920809574071387267019998781024527660646906060171936234435262523768312732509306520777146341625694891788578419711881629100619260586002349818621478844458937879763542338877658013815939244328420708543099747541849781239632704067644704903159859025966675420228009287009288871193488496770331380648393159466805666276963832723528823636376710089793298010228406468960370125945922043810592954503931534584016620829600481467410144584671558228025645374118127167128527272214194965875654960921217942289755247664164639890942042347783087422870511853876419762774690254701659921847580179111622987202220331804049100181333137723271647768532087501526792972178128396925994683415114285887224031241932182413632263272557896355366455358947669142210675340835446761584103180862350963079612275796193507834091443972761010156839978755700336483857991089698168825695172454098766262140214467077722742979912203701811861254351470438327594817050169757034483562500391549495659650397397618546813170471336118576342728791200889609958640085384706071003923905373629436199166145147713849108391109333907109955631329880277112385225667374206462670465544787604558554077327645647216485147003170309805536902207765551817027082645267459953811818458996307357975663936322348017378383793430948969691874092917181419158202415902402201868828955138155286288262310193780863250774458861062889763346711273682200736764666094817104831352640397953994477627665183960072321310827393426321277119437052344674213639802177569248150108151576401448995211931861590320796887293832999994945686990583693926311739951703624623249770897172432561550491728094292005951415933519224316771823731449922679518473277496460974875830755206274438244286315022332323361205413859467112197472245070537132921052715360242584108455975829298254765159379475561895389839578009052368098466679418763929137380620734019752005210537994220128770148662076732057759040630116264888200923169089861790893601420503698264069861735831316394491849728277893062256477925240808226054080365702045451895236707034214342292008046475253940118010942906714373476377609646915471848176587096654945181912680466018827452961217864752816940580082713205543035893204274639105476745550836854148803044041405459874273866811157133192694741488805545180427511215654562964725270034234374110817553296765810325315044120751429173441628621882664799639020375310398841819665491677437987155770022927780340622238776810094886869910949042600307199549420210308244851598678891230086197100612037010715178298455487129577840540845000633826566718478983133495294640868709468310837632190344761820910833568508720891781656999772128703549415306697537847167043235343752993885774385768745874377114760402983375499227110443551624202189359644049047999119224168280113224028664840294243412038734340116820696835402904178720696715597211960426950079442286852443737070885350859693808183290689016013109195050691020700827175415279342024883369555332886680805881919355357482434677524056013393689586971769007185100534621278731674473071973144440730581967970944685693032073493780754069291311456030149679599754424363870935103085875109489525544398604075394097925470799905856294029911537212152163255952739539292616132130266145403138130891240227089061447178396163695169450798171873963921635228665378957844983200198242414975289468539699187444684471273642177540925367421978327861134111662476746721583751831999101653353955890199168967166777782439240411713975115473394500016122367934949835762191951158402822748096721214334835798431242531720768225109438945383276680228241813941792396724553181460314525614539368156338046028293537819192146440970169772356739845739891341820470998141815581362725848358290915308574251623576490081716190384400418162831927886042348274462735833499946053525492034257777434317855720144102580985713846422547304285816589381692877656859527160918049244259058747188688512450524005886234274843068585280102340953694589556067473952913966790721446893833914967560109964492637275132454805843841352968390926494448773763714013962735253202293524815724842328958654048754099821580813938492109705022838082963605902004460253893837933719180142817040200067476623229746172920181688557850064279712444568299343334863560439023153360277852812381092951825460217911606102973048940704951971021081636762268169418002446614679073234125824623981117903264300048767522912026354131754366909816477167057944060780425330019629373374308924316416193798982804043893079947235142318422859888955647821013469236555624428077973418561729221994082015733893423430884300937961140326896099596786231329984427192521861713657681986258487676016078239064073673484978573002636340530139228904722239358623876230442273664253487349042601257785848646074625640323359657132097744957374913974201377728485981597620235044479674436627937149088765633182740630504737954406288471279761600062266277833841416654550723495603259347489188619831152480204006848243032640794065660777110837921316866954931205041004574140217564779002063686564714204458584116503108765313795852915443399058410284377704084143385281596131879689705768583536956962731964025007207841241992294159289277918577364495702458363524756387848618605947867987041278784611066040945703328795391911763764145508555407999105460867407074182401917722795775147674394049222288905691775326883992153679757893632849998742700414853660862331850778546501809512627276804005568222818607982082565568265803268063238312762086598202019363785243327220710068473622938911544637861988718349164216878699228635217595473289109150741379913238695956448362604422118881002485496361953111661606488224416412696956127865445353664544368839334607481344039632503273612349114941272959466125626406357052684149706936554249349576567735163569612201812931228259960999943039780020764014155501147513103013442172939591823490402305745030771800564697945929410512799663228491312197485122931420863935997422221036126741124705556879930676249765834996972323092299841236454151040928129548666869065275289048401322961186849614449970941632881738772102031443896324727550067213732626671795768945803894063585499066092371278451280491641030107079390699149403428098148828554535301386426189815120773700426868006709017573386166066093642135427786255972371789379814820513272215296413479617519174751585785440426817763491337336457396021590027390981052924145636251728513060881334180720677318399841240126388969926583708358403056360495491231724409785738346923719704760359087372395691680099677590345919417168252008931647646207585938283720402879752768912861944761047058432342012976299743387255898263049030523994860560875861019124633228596452229958941786015394865586718174758941589917255134178339663755020100919683567122656360815297731267301567577915075126580530089358420414120234069878051900918619065966671048604871521530360126312891045494518560658057376912814638471022321077023442230796436380865553162428149005378436347790800367439152638256823167265883274763151523051335906831034274034562733225174659220647578937548479832829890668833749090086944838740975934580518361641573046790905919004388581839047372099612868102481857169163779037219766456459122979034724108362477711782818020500748433602120225809506870474314082084608108795967464189776207611677919607087235120816621020941813488595023837812072445990436606840105438115010578702114871338857414563147930221373592949087567299170191123527057180174710870895238485404701380769464448675975812992290717739929791661038965825499747855922787433105617825583784282181343768416987244508563145766299729853974263654140457474495324208535534488611698525981157532082142613377413678634947368276417288963718985124762511834962650459779685178805076000889849965725586259374382902979234174784798138609120989327143638693832987118998990110608098339452701596597159560643925534854286968910908889799409976682343828009342638958925626212465502496717971517346669588619850669898977011089217437383844015442690983624813388872784848695448508531752356207481023316535821433039297879005371010221543782596589373944369873659849004646777947283575565329449119173207943267833552480782775912869013385202705420352815163216235661137529811778439224928463556280334753423889519179450812231317563793257963513474712247849721288607322714626420818286592009284138143715896586579622658089265311877611649923921485327701480217399812809654480892726758043759604358025801785950700758449230729226916358096387599198049960573506373923034592617694871788164425558802811168454923692667292216814442788532409884600402992348406093582218917942564049266364214145002473120103681634951233134788528488591348148455602881848659545896084409074804482907175796515726472632206043392416561004107478976608194845746404645417532088569378071608212444969193047336512877488849888465467080417771066447556409345930611547148812324355462514021939452762101088913433532628515546368548938229810543543066652468361515415723336462158433132613838247918910584413213790279332350068986030707399175740346166395544056042744279629143930091798062815929213110658287836952729071160161539767404163822269328968605190304415624545596468668462655999080072634105888201895122166072807071413611976114455183146655503187801718928502159806006905103691503867271898362780306959365015791799678218951187612603425912980221309044877104185704147086140113794383224271129431304656407899670715779917874155049203615846993146949229615096472899240512364508346614033684236609664912100077619193061768535819373653706701114571585938905940549145480142117171079842886650301317356187236387937127749213570758439618465772407952361906508771766187090303567574578316775146111144320832116805784592877718201272040372203401220064341929374933736008159996255314136455290336705244603263967290509747357852248463461863636200689004916258988102906489509871330411144435103355082245487063963347773455594872230970740825531211472672476886792380787435053577004064127431651735241881346096993940372384004950471007304185167664631406874317186286597901001108297868890716621625091488463689871720062312162411091555781827494735514051912960369981878786391757455022453159379831231744000115844232640979893867847088921389998631287041732609231157027930300564017201708502753272957930646546223850656795351867854230910738853717323173432659877801805170973828557972590375640376415374340658574347834648767587170279142301145525865768279933953297987492057287325170592490487061822954216092071382379675338035696142017766168070527160246528269143616991991228084860580616459188230703805834958361598352944793718621365246778770113955056181143915776503939934701228016021672970493791110026307060438524687459839840948033718139388090131434343033877695502866147558744566194952008551425953273432084738029269584437838990479000921029641645109217738765004644259324550971139467188098921585819882906769760213075488147595672402774378593577975442131428757654541044713629605326105509129070058655313416192325350208898923130154468819030104121757310341417034488824295589012240343073917125537373894879178100287306033610109755933276107436656183715136910321432725481147782279293957566729748762778245074030937060771908623441154807724775450273136215211612744044478866607536178121617040955268081197581005525996868232860501220865431701025127895634904541998360562698831494995315534311326511615498016310664871597666735328921188186003901985124777374737313720992453231542432477719739259737668851446682277322272268183653170838284983321366036465071626047544793632371082257863046958559074430890993732507976072233373120859951459399131039427877266514015389294223363857241855457692885889481623298090898458770620952693500205101164471124598422993102762515404314984670866913645611057994486458807694923527956065922072268616554747630580486256376065697702427771270547824871585904267266500516289536972324461052112054486112493616069049894834448719463910115905447091615028499298508797666444724036162576929859229784500580073456957157022083632807762472037350002492206308904439752449289713223085770832575390344884455582946402253572340046216713493681075048747372174198877184843727394390454319617904514641898619700276452702596408270782723068094071839346889488869969824176490482732230563504951813328553512183233830873353310943926533285435419572154565862417851780496920789863905334318744414761061171988344984269816386327263572908893469633069174499924274286607024803656391544585291649137571016937824997661902040780367087613708802790193717676198156763691589802226147904128252527922010631763550803759535118868559071759388639695797829283942521389163605051343230520451664960992221964062531610671578666057417645256894244294212568055620904639219295079529733133317618777815101261157800456377064553650023207532182939255815015016466573155650383347934954480077506801291728017856822981263177029643761646373119457946732717971826632888268908722644108504648630047366134823803462931804692752740606469581094976211591819103523528016745739460207753333421233750251056827390503571263820368332709741932897017420136451815849563671768709142921873618046942329461432103866608243302351523781384527116625012659156488521535299036663329747333773488866061488421157949107785328596699344943010119746345906616750560648451761800383620619724590634429464643765956093040553755740385488546919664320274057715258899898000797156008369469723261463174269710335368215592981887734901600818961358239247424944492257475527544284676042171282612404260093207771689125483594318707158598285779585170017209083039033723642569713394473132620868854110800184978475321646287451608889010276617801468518391672756900472849775343475366746107304333120450395465872353743531953996583871769873822158634585902644498753894755755325285401405627499640881637777149415702873573761488676669940702129470117698928563354255460734920703856833072500123114995065155722940584910571451888965360416176048808822993631461295871781415702281873427802866287187184918651125522697484143215101514409151142769878961435743359851695720383551895651777446086120165035389737019600354735394520687255171444973507613250055978242790151438593728594516060179283464524410802825475219548902937172180401521747813991725793792197178773249562025246211930864509695594669639046165187232182249718260882319430925212961629400546812721273626505799130654080372713327923937580500905999100257271359108136603553195366184186226216365454745931877453219682829490243232217255324663237060687701164013629119503866890996389108453336479116822325395847574448873429606820960589035959572285065051929202423460728119742739797472056478227196946692139535121407227150779774760675442922079636843774759865938382116610346703912734833881480090548476558863409136315207812766725349593165369948618912242920966214815793572566303625063546008236914881500336254890614085749896434478630871200725126446723757393239849911342057681453887399267480015346534694019276397661369503601471221045395075853439270748523286987444228660101928797416674660388040676513569673255989547544047666327237356201018091447227848065623559698978218784648141195612539121363721947635509538798629888314430882162037334901258131889290923271608176087963198950963215960872809925793676753827166178757350233438512146372039009696454687428681870830424547188718213669138879953741589831178596163681594296538606547173243749693625204913159999377504085569410301188974042517535274720688076806429847686731834769689590781921512963486824103618800879809504383242042078554267927639064682206101569195426584854404316632296565700171143768041860748545605288473960225114533386329567576819397655976470471891883458847200979794899379108496727592943291317897615514794596275752043160404395595390724427290161879661272572320632590717198005810608744782470025930309023507411831185920279746972992052525651372724595206583610815457938405713939975624134767818417999683978674891187956545001066012934367862271581641501091601563636468271459332929739233501181453491269220010000616598558438650192225907437130859818352948403562534500144393317922887137364802890072944806191483738337066390913081253795340975566546942967700928953185182438273967841094910358887435880719980243797821450070565843840117472406737529374672024584267435486514966040115526768812592197293194750296596216265834655450393675429297636422636667929552814287503151281675128706736518743832669936461032598593989445636578868318648347597239235844530423553636676766240186405725865726203090950969541605619802802071050806608491660258866002419491395235357637883400186684088671044274781097278407391514237912860815346910952334464229811972555952343306219418203520310803825926494695861422278626680961550171156889515255407708153502101222466228862987184902356802823859334507126055246437224404658123131262310482450327300788645692978764897900313828253862851060080752711906355209276532767152980985254022140585046264090747603478652181971123380912762687338115252815288167865094656802490553142583063400754682241462308273167650227907796085785689980762236201988116606550304508445303773225844348319744487273855039354752132731277053658365950105173330300256268348671925590460648533272852477123237254919951144793608767217772426370261342627981994200025392930801721273066773171337999835021379540386154170441207471911578885422495426421763233619632111069292174541062108653945123214123788061965160210266257800009708157998946778107742852298858036121134218110017561813813056722468263892972821203310657313560052818113161246716228786389571865583669099445801631728355793117080355037812474976490590933893113020183421234798791185060801698360797001647480184437919923258904346146936259916235226731247905159596452726407252058504821692588549428713610982359915855156586541230920198390646793564801739005430202721484204903356900609174397250496363911578712410648207570066510901042748225741593886025830269006845437310384806358948828277104923897040709726566722939649661491042330930756262114701454060755245352104918941261410026761812111659063807535344073619273020887880228054062996965964101234227976553359138175348232656510192022382813760863196638771386050843142024266553625264182893280327476129589842918713185768663702330140475784181173086622838328046348332956863942351522614720439330839190508109605185720734022182228694597625550859401785563416497724591611296371760038400281202992820338995062302960868935330729380335871699525911320728786565123935030645625027876939332340467488437820539909278553204453353078800576260604036297834682353278779117534767483816619003770698818798131626176078674875053804148974448695160950370985831182878330351066857890751427741458982405564226008492083615922276042740076424369107641469913009700132998670830076260224194289737917241422188746283042615631727577674660069032358190842330717879160823279509130671297552967487583743317834807588700314331510870379454075088749524645437846333152444035177307887702726711472503977164668472230323985552134160790484377713360359864416411375279480564703439166082567900155539271248066911850069296963267226680078826624160735944525684897204890691947894473287677473759412445106298348671686158086124425290030189820811413165562359150829946203334107123699952599218674830261517785490446083214602513704234396204743928879553460258088691051067595079948877502401677085733813932221286161890214983824435927599817177190663582136040718945528105301195555845490822770252249955437835489965529196378951910639027889205964142801187544337830756284654939465765552724708789105731405430789781508153262524631329841566159474872047086008045267899723326073921443552932969186301789906217504123018222434620115326150581740566123062861199437428617022655552932429939147053443811054603676463715723503203595153154968657178555175484426592983632489914085585368909899654542985934590009675286011304036032307982370709196952445375250577442644649527690884388334284381313536313966197525954313420721395946985000657309800517689989147128760248339202986139415955000608370148955092939556416771877581355823539173840966950190379568661120352558830045400493085589749676826380254300272813353470402150852922188596813874168900365837354706737742744754297269928487090577570939486313938834845848784085029597766843521568024082882258176428614124204771183323012938384839658088943093823054423183746189302147926811649069985426392229641536217371114427462492337135200736366238870788626502119807265417555923923923591430319481257213533793220603431587871238572025428346123340617112620891153129564104820139710515591334087807106234565044677219441992455305498343047499713582048418466694473097169165246888092956063592430797470866478237415900169311686626918847280820000785953081410872657161163100104777478348049568394331845753007199335572006750387197200526366053418013670277279900717504440442556779079446972274167378218485707877440586071566733945084756118669082567048487828179825844081863561182354556216437108812603461306594095096919658445421885219321244489998360397894523432538411720706831985903736064564564492922281280795108363705858415098849030299749492153520163621659280802121980105610450339663042577098269357615998113631442804584729246916321607841914192214633757083681954011691740183588612905460109035445769689616200598221312170116820199336197112216062165367092434960579874789186082479465482449500666391955082088876782340019323349731038999883550815763620821776208752965061291795424080248392818638536917723097277806179131217703075522431504146013825426812263236775595601994347687513487667879221218509702185842802078717492088209967793082277229595283499743784715720999187288571727041123005733128843133180361745906660669792546175268827886073766454005420624703796258552401221831209943044949092213475527622873898402070042830922831398998403236241026136627310165909701358524583517653700517307975180688446548310951665591558418757098378585980953721572285305550640231854967917043690714966436266230822449566412314954764865766105235079804262797305328833465484557065598172149281757923379552627148541868035355961996964100389734065208201801003423071168257255361506174644728940743796829113922140260421538947232955128410028957628818511018412243651614661592128214500294829236389446149205366736896900174554448399659782717926090943161307862807434982964634185582398547380868238869694715098202760652732986898020087666029784059126860554354729770063890846643549822374268873147143107700681771892782623656676398090788772925788305361568328242963345719661845982547365479740472052470079511911293315258794838301805324370904880081233589406989882472638650640744127940438523752357815955768789418864679333004282900180624976757206853341726955787569643178526049135862198864902444171603930021511179149743040618907308415993724265992719563753593131174302899621124024229828756931688950596600636134704786904430349153349666813019626761171508725640230917571001746798311713551717835438830717527728093164417679623893267976113260676894334132819808061018414326830429108152454641015755384587938578147554606431856955157344970756411830062205798040377399325612044313965249526352728263461607214355342005825836951448319696665123634999754384783585027292816380243929114494200214575354505064036463256814167674097787842991017964405314989707979204837543338382645624296600450669108078506550041493493678292748521618395745140013805079566232612433104922517207575068683863923647293873849010937394295707839148442267873001221959034080036340394364798150288397054930929726020004698270475478278570282216880555209282664701041920672326083979007187153000548207418070557310487617317874267292653112213440742981847179704455646087314378918283444669420368035511690873663407114072351172112729439454082344608252927363480689139862169545628334697200231316597464868162364287478773814982294955110175763338423989465448182340997993878651228475321426471161739355687030513145386464482146914093185588408600817744182766572710483093844293542220873625414787358210889057326200800827458954443131579053732198693992438981748306235648732665622225266930955670945669691850621281956222858805985544442200915646156220318816857839843147765052168270627286677383347141503639621283742630224899857947431495786224177318784057425542635823883913627823647234234855480945808489794176504075174676385889327829211673338276523299015638471644525947100915786894391417334179045353861902193693960157243364060476102449982049550302131783278560255770864401959996821189066266992821122304975909526888648546316749554679552357995636109438497480510486119999142649363995003040148727879714851196349806496671528650944161886333535852860856964995261189188354352154485402529584078112566226129656973333481959591222768319488630182828567665394922715934691468467608665318616739829801610121038353089521029584606827833809366358814678496039365753089106574844120759515008255673589022223230689673639333322431451527371136832176525732758894837810367159351317272053653142418007825048883694902199481937263001137910288973284497099747142911546492415474830978081415716821208369407612785170440568511315031552372604022918194743981989334427802793404443730648744938920773228861828253229950973518364077669310236603469652674324475837268160688534509189685340416466585252933997847368547830086947985115136552273723963436516385210016810652772635838437514502514346412690144763590919550503972796211980274890360225860620527368290992241706637865696730049597319428924004454982673251780764600677283061281891310392446619554378141416939476102333987416638884859317194368967291776130777870353059632041082863921250967897900368892080364599500206383197721117530571422404831692553593985313654683132266280632143961378384311733971583771157401986674486327993183734353491902809556942087435842621763839752626641153536242783029610201130532514716496799051630245316095085197148505798867882175005938808222511443698831775945330199098875080266862834166353707104004686677063408843739090719084325155943436848538058622402423095697224550641523775353850096555110968627802614089876827027444403742038828515186260102165134061511785630562322635028098226837122058402723496020069147347364477181292959595702062401881432482026322508366297710496976192501529276553181711495023161886966403571045601227834520667689739835395400636816155252974036882478499316772714594140545131773586943740708781948075537463942900494811758867710802079419543505477969902838099982198088553691915199332951518065595000402609113684040024279239229556008606058906066296331860792917647193446629909549200872823114759929629949259202869829740190450024965002859958076041465183824742391901580747654187098904852988160299158960113100187112724959484243990779577198518504516702206568507677038200302950096075783520873539372977850846733954339433443383042443465671323733750222633716741231316202807984038175735254863630800811409023243916407331705653826789613296525056910396445855502375335509076839048222262843939240766755520363156751931615670603960949759349705913259303423701243987352552620343848974209361711556602994543264101120337352876815248278506624619810452307222223667590489967761637479445329573194398638854953666215521755726291296299944761936657200208053068595207731550209117588163291882199878745686793498438958883528852305022592556153625066438821859590720045038559459196440880726879946096960173731517157747845932710290829505800339649337161445353854062069296094561286997918631554839664442130637152561426053526108068634285641023620843321022026550412389549011632691354583349268789468882129071099403486694377744121874936487995470771850207778127379852972240376579737018431433832300465898816153763935734612367981561956550718837245731478572054054539449141567974895459247611893345814851958121794969463543336708152526385419237693228492796903818620842186335139650904491141998990396162818851011716842715350336633011607992233815591802441157706855387458307339060049831125731387719523835962973149629554078386933275537334961815323893651409033295167939091355620666768199786391790734692987230137302244734210359793875744051009874533887110505970942456922456273127422508031419638432259026707857661611138920770357351560479410427613070742727560696996712753071222571411947033573390881066010294092918244552544697298593218800600861070738993751700664703773104116835082828197621749672814171914000444985105712806447188611855682689954286145680581042622998800035978545127243290327880151286536843126308172601632684434702762354313860125242415939589657092109611383861445020455952859532022737745223772511541840153380818692146801790854560855738348088395010776584565741210688254147460107728344216923031538783932653427378220756543411861066755088953151292734555457555294383109164448181613234565835610670445127054735926638139852770593730492968383706985126015370011295648448473000301638190655525907059365579723998481257934835801025508683089070823164289391129845726611456201264195818553606259314847104707946504738143945707478724887196598101505088391939998485990763890156717855175291224101140089001015399041285728022304728639122533433545652174700983548316758794586217115985450778846886419367169575976823972879938187089212770352538165761489386276321082564339904568927397486866242353699267139940360961498466820436166824492804649128947286383031114765648302249860249470228202564523351340977633179607943534469800727858376500331375989636736377987504070524195479988190591300707701315196070913763273511700816608239987161164299026446289104198473130856243357044680009294928583918668535111564036279375938776525789728098004150112381116267308247867504893940587446914863828599922156808260811500805215811766734471020080307317622331155713805839614302688147333840169578596645481995922072242782590400800522173048218359917807915567498964087380221412941219761651896938173163023535586643521583245406710594142076778419193186387153560121772059239003012858768922526898409701664181158433106462005969304201585336982238547793821780945746296655261141139892458937038504544809982605480112964576952857872732858950261782811096191575379489822107133827552987574840479108254155765190992395787842259429622765556300597996083305107357320843577040383144153191496515098833209212531028858740490928046334305047338017478212052957038864164760057354700605552909750378036831670602798186998562055706785472947321980712187616816113844270059660644751146207567833716307199908198632759287254263358935104842853607351015149473131554484455553566253742434262238543534207773365042662103166742284077837717950303677055796855593531187817277240218774570066784436652726545016732398845464711572405860770063879679636242155164974693841409972472684942971098200058759818375951206876237147315959921243914238682993677397043011386324433615383501568496470298569782340677994884078680680435702548923227207539487107601565977299262099068023961661212954940828078321037381806098615506477297152853690321920670171109413313504551676220728907463661524993411276366668456533134599138589459147185601549858419400738012991846079611870620521657146415795314000996226407436831350708093909734685477136193003474587771534524873524944908254241423273115637492771409046006429416524137483126200606986079317993591913473128872040280174042614490213680046862897603915218177500124598816176670278234700494859040127995140573681647346762894065955736101745331301585157415186953823937668542137298729331946830219587648409831528402908155847057201522991065165636155805526895662361422373700487722356864718718981656391834564632184278625217286474432986108992696941254930038595909749779127365213479780093521740279821410572275302153514424876464385229431073965419912851807844370783538556208808734018860938653723858850911109239109883435971094391966079664150681235546078167035612060078813796534289842495883050880717318819302939156269788819547496561522727912586255883517506156532417485274376422016998313198456395723964427034595894078017105060816215915920117595080116341349604312843805728796534852303854995803685932941182011499472402056055668011220305911553575750861558211685507245038732759119162877311656571234224515487265634752476356857190040858011031684930625146647834491665797819495734841949322088080945038608491703627929807918810280011219177772344133473898077185799775765631675577414925197982500059917163443774432865808967913228347820090077898921543636091695535623061128411993470804434292062506639372541791501813390470080234676064102139137650263816247241380511547718511178616457176923555058684171805651358876259961992026939492250576972603083456863233286833812578454780711415534073836802397392854159583502887946383768163435015442566335636954027295668620497296457356195992023369523560808250225174624532851896487376117680383813251636546664905035535981287120732993883816374331639219111074604084034185756758513141170915853843190579102175206187151663456341356812766473181996364566219711565296744904224439429519975772012891474371627345050331513668045848324676637635808203654552404534739388725167440631944222432621592999197136198447163959323021131613433562391712386134578239476205024267549335642089521711268936786116176571120646940923037027747321947469796512188081517829098132443236595818625634074997831543294084567531003067446172357811568954209522385206194898622205217849523932269112802190496284278453155987663170898068871915741960818852026555431649428033419724802266194218228103442809610949248281035752940252178264295611223175093929227222889128573787904194590556406291196754644705256430107317778850895311484650748168205988058986017630312909618789941430184106051929187904843732900685840346253193656498928519378431799856055976564327374199293931496796563384222960921596552826104416355844775117393913369154432828758638975874640063835709912446170044320777723430759555930137539103039363397144395502093562034032710249486406626965215836124047927402748597084154773882847708310494854969709040476953696154711723650248301795811429203434730430860470074049564143939698428966298110048031992843569689011262382644935458950915469614914787029152453807205081277067181185032644416606825400326037818734181354150822441613519323665107805355319257694941824637243135120331770335172701975898643168295719120986906892083966579961832692603747675297780136598217114153394479474881440711173768453037928036680641613636174206799464169555859405228142879522116857485716357223768636956033270461936795310521371094048632525258312432788818135222390639385199763106872772670504607806164153933276767418042047483016522083364927718557275654621630651787777426036442268393528618041263821226525140661511318917380565489932577596393951278267408341518838120827053197927071376771083138036974010938333377798342527740327443361811669877171539617775560062972667232870316341600868288439252965795602749160278999935957486577268322309083622107433671902549197254768133039406382512879764619426578368231510270711138326291510622635333968742114973166458660393750475523002185909438908177662971888753319254617807016450931777420034447743887578215481569859534871411054964382022471215403075746853413898085905990299572628573070534807034028148966644150965653119032318014702153810089792816266402237484380938326034071832125061388057216021912982850870587655599092037244503631460716301287629790430768646692292799431183322277400147650929805154317775166827627424278228276425879357175336711176375194978407771345688935092992855894302856935347366950264600431750751193652511029810153526473428024468837377730560916683985505927085946048194101935590177797570174902706160558326536839790746063199465473492990904397146640696495175927858376699313429463099750027689169663415159102432521813963233418328172620760514365686342222601248422960708841119931073488741892341385814026879816689953699027275524474507046521201072744268584591707225818169740479884018179737326074631538381774978209533098027044241635837160853143758645672567930398834934682991293576388785270371347202470834988630189482247765903625944725102696750125330595146786278194782056181488932739867589416803502954246895205207191007308057693337144922019000019096328059815231640798824185574740768119250395355487001771654922576463547483413901741588823453367558431467724054163652160970822927920825063673536259769231186896944120093152018617605931037363328247421328271312330907693852667311167985718319182306945153464254706171782188471421999078174234235052296224211744775221403024821689193038607444545459861931440287029038884909414236468749039925742819417367636138895008360362047862251975904299944882785469170683787068932598553825646503565244516580134041510911884013971332639961013175895092013545627925322915922533882863339186251180910632671234695659683660477396742072869497959341930665247901988461988335624717708219240202518970151286180783268479708312568709679848116296906942685267114934266119498866599600429629575032052643280951727452196438985664517467628198704952283695855040756777800401912540772757599340700241599096189369127498684371416653935850584180955287676706083378374625708100675247269452912817403791463281602301491339477452850522696485258715444328650986433842456670749364784751429843484530743656513745124137310694881676754218336886528392830309711122629156018743609750871410072034700082594587602690043497550150890673664005093301257068388765437731312117106668592291766072126022344302031796903723761788467825320180982564298472262776738151079805976914579665141080064267766786774180182961628975601934682513812673044934930100650542975131639880117986720853634005846513918802890704031489859431738707353342599627529674899263095348821160690468977021278098148695172129705477256577549941807371525983218164002797475040577861175086817248260475677081229422363160966721695513652859161210468211173623623757212171773481474990343883411205600787124211777933079167278131607547717562056240017186012869602387886994582710310967191309476073888879303833787931973022967336544024681936319895794035539462323673577892266102027599263531837647176846100712693283170139385958606344846854143878762528099013498104295106690971644509226353753173084551444200542151451705485815050985344007469394007048445129545701247527301264834245700577882741127205079076422418686532432352049167571327967049310157368335415552839746366123320565082683110924390331762859067423639747984933648205407756968382720160198783907713952932518764564326432485238138749666521794451499812469122744523666625950030694827043474590547526775631739285861783094228394774242993233324368754372033297197386604909858957397407006717767198555501627191615904669401490462327827059162356716646234116692068046286321633957961289479120788008489138801875745562229769887360055567738355917440622989765669253790759886338682258881587597004764331498751879742944967815881071878105717271884656899202867798848902059773382295826670100548240779647948067741563170118028970506904357906623233012686964460713819118486748720137257361186403126946409009553658994079030287370639991749351922463892834598168370011086349899480031879371115538009788112992855711023708732389431591080889098947336065879551036111196996096632353424060869699867414901901318223738565257096594253480944125706942526528836963331433318236907761016515296877351983028823749454682482843318046680621842977814084507201578133630041468866459302693123598434393871587246252777241390024023065252034293434413877770746028068477749570137275814531597740536531491330063890588313468186865049204301652278863789152442024309981171130466603833515476359503116884680842123214401592271059934475712108276388481357874974284564819863575821756476631344144541277067111847915225148105686913627356391258375316198331493581174353921171534396821747725388952417686573721685890302471422390826309314993927469084568367764280844096935810258655189728026013478835310320853229765273517640497872743016690720322549788980770060835643877632179785241287393665069492001628756626393226554704955969628786164014716618800877460062129809136999579256928579213996662015865984671043295902189998355036850339554940725100946140338788841691787302585292500646762660298400701718255295290478723356260054233206091323100254868798935201345414911409287534227926392088405503785956172759855191995277691560518877471877477388863751900893327741639463536990561414977613159590332131719455983008058630328278038195731292357335525196342129722425389734250254367327857574614490971027201116611672161636016219421103191717074727689816413267830030302976606296938138904104672535178079041011570415316313278350892920265443037199667013047499454836122284611085766552779475385979267188492050342756816526665458444183928711874330130821344982059811334182315531902366248053011301942789603498511231951917969165194390650617066172981365058365462926860022385830041287843497900379817891635845003720307085300137232296674480949681870877304601455467998052182754595397929258061220077575972774626325283993054589208586186998186313372750843373146223297763414395659845445512698049161067367932553038846644765886548159836522215203690835126493321739722424031326342911197335519770798700532891401562327116268914398298307589506502551186336455997713859143166341669234180946984738486974379242226231408896161526555325621302219319191793746953806453430434042730811456245600160501325192431763426252808316807927429760215539067513352554277447644143254751227104290986906502758919347081379966156594437834735501894867975306005524289588873532477023984531416845290780803208238704738126113695221760014971318146013826766750641265530592210520310641518305070769709721370829733835736411346630609470386571215450786279370762550176271192693795405592836532461653999070298298978580903473766333559117868690907426779719925846530665818406599678263712067726761517518653311710936161699131276516993501146308563325088025340684821814279717981811773345055554777181313292303107917151100170493658170037762176046250691807333083230082425270317169174379056953984557668500914545237615431547906573718481406356778746639607528790889930430557111878066810645476808633443467954496486286756863375633198791431818885376225533617312679533908221544087287163128778862904685113058264008597086743946690606681277512728647786766338641452073608390611467787292227896550581489960792703190231030753613638819840130210765297467959313298152181629589522932588691599317092411472918665355346488801686420190536578918100925940975387308135804200682689145847999796677367008946096192197825279009636707109565020034192260606814318188256557726994644169655974016475205388803417011098564609139509828261426348034096550207439821512371062581724517159970288432339663125365480234673805554877047249578590582924435375370612766048924231389803088466143698320197883303248438996100323111424811754250207109097497253839171660711279870195075215862140658875195927358714384621836090579191609057243223413271211413343730005613940511471445340908516668815549086416936579631091822054086740437522235451660140540127849164230129256260031267347669513827048767267648288845916814941207507260464544257430908761401114258636305294458096457206459612721443695793101272482467997078661309079687629392152316271605277592223645416617266737450472862914777738912204509736250693937515028361746026275101091559159673310695070694692826486870213180059559780880487555339239358105202230979160550690593674522353973828927229265989859874057512954724156538793845791885406461721516239475866095804858892868911493247498768360969157591578055083090056867513406318780565732866068995089597849521434015133840003227648228858266449427043381543964604466804868416987986398445680446116764963161460880977726372009425147920160471466907529272932558250887045837478433951877779757371585668295390849517939149108424764466531957557573243790533460423122365922256651403625951966497126756298508925600527110756980182919702492526306752441471718953198499455250535221424894521033502958967558998285570819254348854718297462931004370766709054140304404002107967221115985658140088549906840778662951433245959799766437001677342038412005316455511905788924003979392898160587026919293383432221079147472807712287827229959928114202083462658917493954622320860549151230579890971509519359478295062301907112616176580287624337064285922325258682337261588341790949725227575838076009361221255126247622120322260209834402371661466710321373784853878236011662220117400651689535320235666015038121506429760647612889901280906801382002690708588695459547581851869227098244379647794472241903171642705296629618024420991363891467168174122756429349315272432768003807004888758977770116948574713299118251421848419015354554631807703802600735133780963568397142648157320907159572023647570827396358920737688675724874659479509027865782050193071563422996159007453079320075262437448134483499969580977924834343053568328613304504355256970209967200771345340404338087283608225537401995943565088642613185183153549743362633853665281200853701336501497755231206773163872078615019555197411008882598365605055350114343340348863606733536974198951402088683958480997159323030500755750434990923030948121386855218571350624941517832077977096733405024950098038605858845030467510608908166904240080257358799546965519813279894898632334263448014350200927880716229201191180487740156836984786486197850551442726351880802010567176549658762446394623093527871312236143954667694724133248811034026358334956743050185790511885398628379927836490488090861970969828575102768412173049627431392618404261925780868312739370665806275448762532003588226624313525581632931073511912994329298269398267307564790976421242242839936598223263434732108191870134404372620186873762898927565494893402352993770156762915561979124861744025665183467418573866722665653112002793749370448681637996647551530250918596431613269629428934455268004672558737694629682938390262624820868216310390813881261901628219939750900243927303277986333562234235272387610037706077444335837487939542177858892193433412876813395521484797142177571288300179249822805469046266911138046761186777077578302211629460349873700597884721404897505559943597193110907336617494052730962760643218972178722016431111170084319885854481745410507518802538356160786859725678187214037442663629753105808009347845552536561626294389685965024768732414974327031438573495215500832998398341623822159887034397559194174293729649736766245950957459782983858355253828237784565236535482021762613309834870248062309112255451358202125911723220923824242950775339594972661547961785131152276854924256297000065703934404437148895804214167047755568733162627368781165089387517776005062662984972620723429062533763862494988345027950043550704399168253567295226714667871333894445416475932725980891326347658085756633267871133021884784427605727733983334365587454553701456188876676426625680291432227652189568709171163836213518014025572141163132887899997189828248629474043863163538893535016768607190614451015827220417563389083628558267474016579826739383980614276583197418267153736782300122612994651784664399388215162137453161108284538993255507214645249946806523850116765818279856810654198422474616796439194478966925355973043190202280480043875715891052639367336064910476963951480899305439296560496991471357390425410095786573936458851446162984325346238343112462786384072040634427637078098829687993445520192990724895755829181967752199087929341010227508032533750206780266466982800622770944727620036344722499946612478591198295627321708425233756237580274048486533967834687684498289996787145605599549308474956673380119297088129832577154570335255138734654667783162345172410193656550919958595840705466419391526818782002773263408017513408905455816774966030920540104766903455832901758274328677689612984456771388799975645507710257033246963128518508201872198957694672649284226205912954286418942728299402809019990596034208434894493927987068885778892743916709941973138857307754424405704182348985994946271762355531116161865528961362893366487631189028478298260751997562312359150839075356658557260900955502702349724450890923238792855960460408585028149374556299121836309913934428487795822422479888797297120373821973073061996392882647457359610556759471737970588883615318260860656886268532623952394630231738282648998661194047860664062386167298009105806673001923134689098280534436719992947276885898666639785222636643829831299364049547166043183759527826014881209361691937975464977724694391233468228212955914694320794195466337590842757205501834488738239884326413688560126026541202778122237249335645465079865246472708260119558954331457755658841632122076847520200743842205068349773906075520030296405882393889856826341769169976908776221376173892902938636786842703840011527453378477168180137098974748946088759773414940607735626984442441722389965508116613536444081168239916266841894475411711253830216077008500205826135238127172351552296120531079081746831377709036421411091157059094811518518626667375118320916440026805690401700227724161688107012788039638271763302351385377389050241969853350005450254274200828419460522931415665257997247529505581978603474682415042052794465570716862655553372055692995180789301476835544566743479424967432053779852987236326963843669119413854372397545134967973011582921845122228168986650479993218537174942884990376545791360112752986054860448507300456964485675200553645823151023541392601778292109484028223983839254996544685827835896097679854081553033464713471631154430257280881991677580828838056685801746026200611627342873901622066030975303973235229582764817784170523576829873255059763702015455720434751948796137132298824356187904867201046722400927541043971543768345567771081050555602794029027345471823777285182280466314627655615794480328079715862851649171332874236283182096609994903542061835170143532228005627794774628788928667114765950803352855472782307271273475736080976695585918658744276945602439883651333379422588869832396783886560894405632421170960182414188972795273621004961482585171709767350380742185891883523974314942415772788826551419779424219446122122966688820139960864793785537274298193136171818461858785208774061272957296840793239279884966468560825694217760433659678729936228075528426664174361511186554533493597979466652861813468428535906068057084422724562897008614300208311980100744619859644194976969458267459167310502774404641698466079822382341103665803505251120560610480830130587492100623877247841139840309447183506109630019351474798239527999407205481683343957763965549084208551215346231824876771272178909494871963968444579810567450249400431066339536110842695230745449430018475542075265124978992538480302623190656732619326751589458164214627140518907691267840504290930411169546204325516860205848409291703455534558868055862965014704711342470201063303977025192414684019506036673226672061047302911068809269243532969226697732509442996416572743638154320012543053794133167350422234839685791716657359106894066297622464756362907529272165596958001164372626472444265321815090627624079858097590632466518534162138196117979965284364380451659953002375502593311301768042000667798952792394427033361246037531344321665667867761873854294731799208890506363705554492188104200734634079065094236289332529750470427797350949643123506470112513752980873215951610262787313543985316830923140857205344323447495539746598413903101819894253410451223328490314315014615650031966096188132828017730554641131470029591656743846163359035310467684131412766159252681353623579589573229788756507464616231083965224457385639177364993379720183807974587144563068500986672257415236616724265702157397885410422943356592016173653263912542149905396404845213432280030759143183287980430942949023141364065459184964373278313443718372240226963165443968631684596742437671024489206709571585103961960960578252493178495722997323229846609584889786274864565824070911534063403110848937979321478938924228822732102495981866566877448223675421866668362231875763199601267290366412542076931615167497333839465772869845413035257882966738096541759643859507269357362687968827116602815054213468218636927304873711336681476679881697138362920836657328399601103782995910447950536388129538030312542715723566960841501876049880266063003617830009015382645309765441733151529683439063932588592024623362631000631468497179080897318711292887391155500205517241147197087742589551836001041805777578341937811626043214110732232123323517883399370103118245792021141760900759635437307988586786867185716261456640888772239031303562357536277537627065744054003449245228102507093340319413444478007763233462566376727623504548709471483790496197394246803133336084995834283851250019184965068440287121600837746800019657121135888838237048176265208897346133945740465047973161801372420541530402851395475747647448762309353073679755973694224396248910796126471679643014467334997381385868403521239918381215837936638148395790062441622445129736523206266193219321782788242778145806198833381424984168498841341681320321641763654149969323132242388938037781779802977917234351098140172465843115816925696104283188411866827526321808389772843541291157006937110632389163511604460369198806777078894603702264357660908703702960434460609494800543004376059207284931317762119389332145561956782060330696104201437928972520521885781222387601649463316221862424445511803359453608216978881149940304487139564423550783732738904302690717101499283703642565580492932647688254420293272358596915913064151444521206542443106148732612673314360405799524647047499394638438367134007251742229210941299010239416320970102890166718031681358883961141408237261835598366952410642503005608658502478892737591509084370664094191985566553239827372497996594007687619030970085053645030119043697777846482847870761165032782193141836755654423009885058132884954705466736988389504661619360183610637561452050547837022727793925360084826587319733462496570566282612693675555129874065332231832898266939006869191662286148012129013755086240014897683271637908835121188335824450885889606288575735430381853568168966393730823154511468592820616010458115596660444276544300990422062248476414851112579274126524896225139773306014001614649899112556181012897247230539297510371904246678184530284392317126761076778442167266375074912202893780212013837830064309521166789658835562661711206965337529209297674972415482909805995476480730904304202639139025551288467262881999178281905847109571311744573416637352771584784650094333201249523745540435093329315989390395995716306848407501657605960275586621832168150296158740941608775601658467769148673411992496826557833079944710886876500975308158418591365077363799150343186627804590832009675868275581778577582458909766073725027310436526516993014435562372505310610066211056387650736385502398410769631256281236910641462644254876445668469489890290094539994407888104974504796738686460356262600497810598756165236168635861135415891276620258291006434155404193779976406481638574923335051614179580493568576429677115325592194326334856594829757273175516863613215121402051622412711086091471156165041605227779181039440098596857985279284053288897379725289768343589376641481467311935382334837546111670153164431005915156456343059152090701710173007689606207987082870456427444069363054320838700596489403012728487535744514674976760170025344050434036820007487054350791660781050582016718634711113225316277361041259958338430577466443173665748153905783568872853713212122041020724509257619933457485730875069506456990632719010855988989764989079709462602907492320725330408790042514713827663663339011374248141183495335293713609109037658902755719300701037489006285241254449639681841426692928377900499594031181272509154345951225529861369841537165412910292776349920695148034864575280860644954730763599312969134312253230579454043550473105464195400086101988375702450021597897406968114732868614233809618426241123737781330270302550545871901141562825122579588505737766552891835677523537828108381746196377265304590906065972164588949845257067460968877562110235542798080206492653746391471464783693317542879695680230067743879158038262765396691218872154471273451084855126678547786727104863420513676285389751795447553947191334252368706054699786298440240533299075764179538399067861098327935879877673118305377289840422200260567843728652560315583954615685000283688073664297231821988351741174285355121959528363417474411216423864097240568628797726760112274011367344320753655482113798297457087261199136324895882996835897298832888422181630573217347473235251137673809583624352543004479775026071927318102865420117142049994534755062789177591567479376099466260751537234190633015678244516197230185387551033858515839197339541272404633828370873796817612251055249053373364938542077146634189520344152501129430252728028702595765652620334869388577985787832454451218293575927759433464454802621453873791346686857200292574077414731012584151440746785278107839193173693180177205036462694954315784910521934365583928930084307951496977591580830635258009157037855194699134452084449249534578761297198293978018975606077776520427409406842527199903011082535534601483555357714728992992287034429914475928841277464507239953646072141289132454509328960267509787447913755819906701759029426795711565801370749039348609054514007915433851480181145350225965276082521849552265304463479784986259747674410156593038754758476659773138081606416455759045061946038350796350824815382355856304559271868555955631319114218970370974890704931223581154558551487226474309966239967771450767509946226150414802757247795866156485220816869897752324766542153783859704214411961352642962683497534850253596139900054463166765480473834836337752501914921169659972704994281697619134354714032232925957518615135799101223040194152266378865995680141717231361480842114183390572820177995088464008220286624982435510085273331793488157579966098354767062600343509845281347221701296000038635849769497400133588017676673029029849410624960756763184479832651385832369495751000633894009359782223811765602340681164109552315661817806375765067200338585892629542394776759300699116708946106431215517170786565736175559892759591565893989201888358358396977231671385177858430564718876492483923976941347822391075150321688324237515842940118444687023131751369179197962549945633639217086393199513652239459329352058106001492739442410426810129708408029410876992437474616468908579356769257558515406254465436577948874186446482684754719083322319599532111337265084262525993680658670087152641635411207364888155820344841818322203781704964065721574813142853647144609860151069069011921711788808395090382278629075833052250253460489469364574463221365452327281718890656607077668857316324444369940133116625643136576140817099293363154502676048871772051153961470912894962876721941850721619107057220172025337544128408449589026052265233272438420219396818660135971018025808322837385946358115641370160267668100313695935812148453118649527905163455262969548341755162968808970850202419920089924303682447287204841431720980361434894083621306276703093302774142233166573161877453587846200841803712444156830967371084345938989080075793435152300994266674833911779344133603601179027324924845811474516727495683660127093721191192204700750163022107517177181460291395707393700914703414572135498137352047484686918242386050759085994102658196895113638625374242751800061835683309541416858797467324295417372224163616109282955083466050419062516345434119738129781494481801253718811541625099725342296577188667505882197745775578887826606530658158637705529647952118960478440192726986544830321064603774337820319488549969468393700770033124940723323717034376648544077227690201317341824077562949098960373266344719874533565439314325778162118350920453770756992652552107786861140700734300366526868904081536158673931472674633177744522532382663946963582686074850343842759802695418809370565633329285503280636842959539140853512656724406969667225845750542924609387775044282324293533978855907487081228989411045833761366720350008641255100968925559617929531077401666287157430132133036162865082992098579114113561607067772978165190886186005702549930639051303620368933077509090049167706517754179848654448588021046090213905479385373718605572925930136246755558271164817634498771407105197540552001323712869187567061332356423585706749967996487002903327537009334576367520370436207711120112098029774773731243748516815806128445989556191409936710661128956040856210614352229467425518389290871450150234948857546136613025875696023595657027264359328867164597354824036891885701606728556737032442119517852792794987638193225879963785059774544788019298927525548218469860513970433663334506700204206188741168732711617512928657291804948200600212917853559499425334341064424686829801521682626153530432432571522902055762015882353291274143106999721430751613060358726063595047068477282049082068833396303920576199621780015314263242156565987152799909441863922804504516399043990799708937361977894058031645756238643350457957946453089418847265449013654345670634936255895659513725999460892893580508745769288316006339009923383118622031138437671525142896831913045155250951127075365510147675986376871843079743542289397740432451568376410554193161479761701924367316318613735314032488159024423213346396455289600390449132554007843698115971027513931360260645197091851740868657071325844508218694537876078204314338700347303614535567532138492165639035886245198257510752927974279707947189784733706383995560491345171085295198040622256806478774022145131378320931216353869088289358846258334380444504292919219482779938754376977093240987370674203820519688339684187911904682733080564344370767672030225365208336556714944457792643346389022920743665193380496698910492429340176402390286580262484113657588939162582454215027623851921406040250720527250570582196878698555488916539738763813567222308629808825972764571356700678776275333377906150437807355250830651880837026679599898704349820165535894381266814584144788190665668805471526008118292776427596636642296551891285440461254124277916210494302776804635487085668319498420216181274937577743635989020583370143542428117697135492673233218259172151372864444577287712994385077321424910730258544310284772089169697080272476363870461074600872979550334157657360391683331124827593762268799260061307389970927646631396492004414288025477417113423992548473943048013250406534251604689333404801714965215815362676578140576869190242098622834444589575436400401927196079413255215898522403572403138454769637155639199575314976057051452572590816913521499076303016148048764819255056312348551925533361777497377192401892082297182549603307437533608955229850540178884832998537426217889422408182192228002607499813763311967848007663797487057534736970283896370658812026142886094071987578604799706589420595888421950640073793073404250887637082664247895845646168717096220420235685552373250037932914967692079270903155909647942955738061581993864422053909864903115205109861590697002900524978590461013816044989913887770443186117255212342914261983551448841961749879324574626005643174537530376116371709547525376450135124405154134469229347483385291355689473709956392220255439878846006527627666026651197129826500934828081692609800591314364437327233114089381740652022123402563414797328773481993359550579232914371692838715001075068329626492860483472148595403869296307014199193861212488540199823980936123508080178952007676831462752902450359645408945934915222165964809798649332244287549063077761036483918949477350776246071956397944990697420372949362376035179056014582778452862321747655268584819458905289007341805147003999637761010623770561596884444175422239536607946311907506797308725920617701930517960042205912233729007555255319299866315229904311333314022387920400675784693548758301676194359347073757168371654593020250010678363498910132576338930901317632958079077495746483440343697758004129545070218578422731255331168749425690903762695875356149274387353738645673475094659007500211458987250193849295791633802754489260493170994692781501382937247128959435876157550452111697899287135550283037599141047334138385768454943437554290085645322924006082074573242970871663572850684719435283606014122426789223064221458331396117732110304201691687044766534827584865415896288795479903908736962295989180672123507904300466593487481092124547437189371143512809656974686479933223741572833400953713285459533648630378909080019280716168214073018600972552017559225779003564172028581373386822764160423329208066948993727210374529434187786488279845392933301893542432978874104324748685277255373837722338565228891305092347401478884623020421651047763793593745208202515972767242807981591682457553132119477915429987950400421790434377801595329098044447672293702018398692392331969071185241557144174034976918991861438284750841399654368283225757281145486171363343230094150107208908060621395922801567129436548749053222136065804582720926109225679997762559927593606297466052736765334300541391782352887680703622515044611533052744549930777028407045191726993006795273574390446631630354062275259760642857277185380003992078361518253776809828949561564351941416415263285869245891301025011280792573951846644040913911935918327488011678996869057721229069890962738546038047220972855795232009208575555326896684870186197151268655042002597172989845953140699375411944059718195889474554045471150635009873831965854504377792620845555291317377740812934639566854227075735406950933717602319264655368701781531592432926102511603009878644110035336364445642854904679561999930167293752378079199253028878679614264871169083159380558207905784106187511284259672362883498675847909429451036101007677947315930627146269153436933842642411971679892398935550457875615439480116225177762485411919435753205748398449757825748125310768488880344318397920327162990979987365452630831546699832897320469953967794976927508379431885254163709198033025749994019879989125219719882371782543421863574037169992911452522253550660370402061621781958250952586207732363508061999400711448289633610393486964213060290201741500775949135259018501125073484797786399263811793258172170913383059181294873877624869032771072885693786717440427794422853412604653390856825649342112074268648709763762959111793409001381780976722355898246897509035251953999608141607887870504212479867782130203961937473642002594698039782576285417013250703434584497554623085797402210331648092652970321721921815980513588104160040996932905106568699424342594991733546138290672242740018317021397682083418780350187487131142000476643285466805792779822389124676947922688441421232986648256865235870464697752193652908711389772977705700943779045136690874907783224428886488593138727866040492436696393897210050005849013820064222329319507167001516670665673302399131399505764272108618646406274385478141587351582884957002127795933056902743496372495142567712978152680153157749415331044645168908726716920717654538904683681122805029435293197957161890866709871404792764883253478010643111105429134794924501279568540388241557175957764900073147693619927521959725183521522677480377478993456973463826306394838908920329318900944060097868764765688707905342480710708271210022586046434522029136281615261417326416457435383182285452899815262979560497039373782607881897644792570233840274740058224944940353424160177499574862337259275416376017537905897857818699554772815885446678125456369190035105562113360606538778974813076931621526581513563624719531906195264437846863237851530016301039675557306332982410287050087186880651262102087288645676458985366956530484513176615996662808569791642432305892191721496944006138697736517526696329754631271632503543191630674503734368340671272788140563199368741675707309593233141647795854976225654064837535033850207291244452160629776526168420896720113417962695685522920750412546626360474584225721265695135372432757669856436897875016402932780936689547410069546150095008602368243102947070554577155513969667742545828537589475098996773162683736564508941836031130405296621816396366034725952295382916295642783592589897404765730682327201524830137106113220756439702083403401721888888474349223398549433519787171831455077653744820085402989892754249169615185853550074667803889540236977212469216841829524793409728251420191291400642364236446519387076208796440927860510635675643008737132627627178626211917790447888356391102725266728073163433372019198196804397261466544466579107708771522771624924806212511883549986863697657767053689448701049211168054144040703296815196209701270895307001463688022067759960829719011856265631618284876831815921671148296295794956171248432484388617933543581028563706209360862987834275521783056098712866360163729518356953068874934128227333599671141006649602142212904837849306196539587586511715721241161013326754986902884477153277411276540563863861347748318428907365161553321754997858686268154541880340551053681900536080058770138841524313294326538418180305604041807095881679506440216231826232513718939937875391604607234247270258906069795087814668701305872837126823322405783572713649491290855641677196115888060407367887432727597076360315342267425041786324503482376592770317726831490371839268584172365262910230832529808194858589426738845051980080183324313996481463893380475625482809226185220689030360493930557819768155026525090316138321393660335103155277734362552733509645549430004152330399134803022880678111195327264567163122275772076074143108943553540617118511724415424842196737370259323272775178195795005976705649960707565680465068835330780472344813418690787633933172678265590535895315418839376035650577486040273006166248025552577840705679179354279962679756715640223507935925753034189255887045145073769961645636916218096040306877140996296232432554779359862960383736140692594392564775395285807837634262779391326611880692712772534432344961165536048433136879357061541742153960965380909053161723801533497853084784059190788573159385185101505174434870914018653901396325351426705564508662049865980009144475534077727821772315491603553330106374262645515948214966209631050841622174656176215313977293352397226333488676827183058402715465683899952969523845621446823469333464256291277438470998376507562636105405364567885352724898365784782645048360853256185154973699607070905264224794254074919296159870425382503966971895805899905744535811541888684720144576491273216954856957332948302215760362488426014085416469101590252678197083275585158277441647852796432313498840939792077434317277644861735949077208595736903046002895672067994904866476212339088795562082543191734789530507971805398405665902085037611783837808220700651479922468989245802987213693942981621220214155185655499076822322996373321714145665494613941191978763943682793086276046553418777899959958060080974670736035625964560038785107513453768637988542818049296117179094788589178117013107475596120452161194096245810853309915482391157161907397209928353042146614209525944820861254900581916911586777230049049501198373745685544680514381975220411851546255988184439975764444913018855062344645446129148414672116521085904089780349723765096271949430646338949557137177701250884820623849798504296576089540114035107348017350929109398821405358252679554639716026521582334735579046033058603893101167248354718468192251330967842970690826818099155592702769668110447451988306368437690424974490057871157478591031527698338859379732486834969552955121444524374216792327277439616610939588462705586091239426399856494382183837209715694129688426594746536582135700329805524544911806083759332293576919789821681397024842329718798058558653375905052907367379632119998186213301662597398896133956329588540408986020684519426883591892866015623325729653827028927105622730382405742228906644325665089315226676991009204213752006376348488801093482482008521635079472329758883700386354668578636989278338984525935144169493222788585838915461131345810500051564404272070952098777121144631796304613573976674458192373578499510403723222930055855958618921047587002006608075643162237143168773586605183578766765606721816067467699270111538950794570162055030399518830834347433916054779320992172438806246611276251232966591340846591643939848810772934712699133308447582328662209616513029514632096925972620965344517141053551949499867837940075998865145786372152779856445346340548823297976619005232529430551033747191423563022844873734833756156086810527730707858982228659418069291792028618149576387594219564678799071379482332984939049613173821978459049090778459666751416988868771276437594942282154591151408089683199743226270682334395084632343130845208521601603935431466755300911496124648217807005132765581432276444693703356442315708841429513883800165499396186253036044860620817845727243556723501503520241394137697000161260845022296763940658431318787418970814828063638562175253629135732172426301986506625997307585220792742893419220411508845312989666336023689483397998276321426980510060687307219030573787555985907873467780689668621010149765529204928617677086564301533814828404427157113537783275468601621472269727798835459402938210346003044356502736839335186519854285019459384323560826425204434533310880224837501317403214932548700881477070468964183871981011233127261228386478952112691844702794610493752615220751348034963553080563978154810545959417559045073097659281602070960578322783115668458910551353259732850197796020705978761783772803941714370352155747853365658655851651631121569489404270120812511298470615473996396445205991482763349386910196787296471287463653516463772798010305388839827627899874552746715471194460535270547174764490150181968833775973912107194969079851163080344093713791487398981511100304092963207614696122785837895571774418311089914306698556950880616050039403645743178555165231332999680878680722830787464052960246593735885293673689724702643143498846690051770736232392925236273283297497662372805047822611273851296493710596206633912506587004421562750377962832311087438678611319542636512826385622947323810020735993877775460442672158112279550159783729423072669213804677669646734917618709887210102889074202590797948714647536668520688238840774820101984802957365199925889207649282091444993832219489883365139683563305428043253688355047933094266726547222251934422401554507371519041747472571183475598453584592102651739889148316432546641457218740756047581260949179688671712935470964321859159538324439936838217317026114045492903459435574845249036221200328299280984290943714488012803844233656803013322560423514767913875682791987293976285957533702816750840922795455024377919371595125593092688441911461889354267866638344298270810403926556546214015205637481801306411063598289971945456060132458668248777154795307420085215437071957586593183997428695083857502253491453930653240870428359279401487757734270799032428615315468126380838687444042268116569161434269128273154496247178970459190283805711858524129730426700732651346014886360430594257090867655890754858235667815133014819035935138784202233288208722470699578886797945803112614107557464811878737480848999485226376799112022546040673362971595776480696063845227944448876946629234566889116075035953368324576672735679522592186307930524342741073192128616627000696834175235094021281069462758369485326143779087466611147507948397094816631851039749428265149581594576848598067753514056982555601652913825516188738800304012553927580293392299870046556483283963161021853926767373424670849503817840605889582556564716891568690903249457815917927261256772093934934314700101297973724700483454402617922553956283865643279160577472777985675646129519585574586023476197812921255660812105225074058009896004215683232541303253509692759482817317334982217240007360671890505304157482134484322471865580455697432448134140335901448590333546728865939431470833996320649202935211377840741909167365230275682554913679469482337358243565901830805016536484955407378780999717123299497007732745225510452034360415012844950231457584960773261378747972570865489921660403802893618444604416467282320835193131318818542037636216497245724376533738267646096172600187898428803113939009333194569764433126407417843522066419894866577765184948260938214266810085956762013090107232831285784468775316108038744480086358355376941495597569428425254903413898010753655217878535020573378933372402632354346211530462715683447165872649224082364200484927136876792543545037369263613554055457201527756552208982480259242850424612243447928963516220452994994146949277863105907374406268548603623048266829002495786845194763431664220340296262842024550566295089305204372154594077191640155431098571172834113946669200861640900928926023602410676423898508729296311221425719242491358663286103837431584328239388343348845604682046096872597938499839173922926650382263225691958970154451960321731806418866185804679267682998455577647844041051817975940529883105313451698446502897809044072443371510417027339146933500934572066133645443544458482322038552350391620063530220010806618242066652908223396446296958755480536382686057911468607612009889949598347686924470994154679689435190793851662710109357084348860912567139326139994601514098132732627201454226259834042546976938132780888373124343107841467647468480320537683760486627339151183970402546729126891918882661334698541576485498456017773545908114389431960325626566337968436992441914490141673494608061629721242072689412793033070896657865740180351614303176574742711368520660577280075374394081004083462634694469774136946314527984496828112631933825291230169638641523760545558088617944950727298724371945505102188037929145797671163222926955083119415165112687034085688082765745686224219186614376024113228553070114633853058613330781570671952397667819999823714960471159476144184640627554756204967495948804921648592683096638260666135937985576413022942576456406566230756243630486192148290287610129861896252100255165049538399882782046324268227051518970095737094956904081455700294324860682429637811817063248195275600374625607868431676728544420370226520590189032606508417703330084186347747431929074878714491850359049178892169876513098200574108129113168502761310175023728580930489472783630300375164804445701339821256625025198212853729245441598860475734212131571126852200835306761052762515949623912424196060211879789627012409081799057940177003891035623100935511063515730919607417017862647487556237791124472485085763825451641008636040921549364321295120595151588211681930536402777263922883970142368664946966262474771521552229388082354346013289570968998655926284799878401378172201571060704228955340318020770996805236869279162528238673964439516469332584223171816212073515044710207379991006489805102899834624753760202776772241095502504463679434868018015103630403428087560886582047934955133176423566845920105297160765957931799699805278530574904216881537882446994454543874882443659536148446950664949312408721864704829542752748385290291705875185700043832086581084190471494904165269883235900520248075818555410326531431412099268636854581033134149280293122666415260690409820378636428337880677111075964501043898449734291348248934552454970376610689248966036467916783710665833943002004704635656246284360466355768964141562417397512030980670390470729929270094556021547085870275062642995867124637507579950789701431811387811209769235682008316239430189553427059264944423970718906953144328076712994243892597769295963729563638295098775952383040522719571860656549385598052093315808650808191906110464709400065127978811361915328681357225602001868502556884836338368309830043247797638182187204668623956116477062362240155220551111973485606286385723913032445339280170817508837615263951203484437078971936215302638149554560629129705660946861021121156027851336837840812647627087558950915396689615920170553872083141937363129188051628655697960322783627239496420305815229222422371741847705367654943240938633798355746656783355329776185546337521883596609457789326791612681877737258824717284846726548966329046292465007847501637751675545572347802637991731521332983123201635075545769461835678556129804988017353701330500259551138383577783408891660721082094334796835965244726934532909084705658920936465692247523159503742972504448900571106052312104436681967319067167290074509463467020674856099037218787228222324384822805957951972018065089100459609930779312663219657049888304463427506206993632604114200550802597295170775183445510069221894615259789422350029692903628214950993524873110296874729033213740195356218779942893563414544402719955072453429497105170050127249416536992350200090915899259925013504052344351745945874115666141778448193216679491060347699923482504815477822494779254141626876559365195148838053627294659825348801412554466570388433389170457495405512715223753093892424396869133944495341641041195113353882901746355631816876043010734878040782040864748519825864734014961641564583153509474114689526498633329814473973462504426063627218431756888321494327843439368560844978555188331052571957642757926612484767632760772551106633739260565240750872182263113031729493366392138048749501772071581997467703882298540018262521916903432837181026726603232519334436061142280669981826430757290441561727636158468328078343901332091855917472673454714285853551757902363057946711614221314543450578682971158609006998588512286959655447304788586233212089028944296756367017729715641447967657980878169934743132700403157646049738314668763513060411039355439358670209773922879008827375345052782675108396599747259843817639634925172458908298872844739511678533174661034785489221545830096010020944416997231464845511252166503373943003705846296230462510135283627245198452935296394598989090496018859765402151568777330003082570302529779494687521485933295586469436295770049932166633029022041064094047808241829740768899027111744413775062361400073682573190767086364317305789331756683233599486084622932118533818566960413813025001688392518350454084083277384552216749415849758560076403998868143708682235739067736150092973704632922464188639141701249030166904128814344649120665504094393775080425993915615280672772755210809322706505797659153053381248479134336483190785042283136061281076766506498076088390765168002261695322605722719642755851518460543337123724775925522234500823068701311100573135860020448146647577591756417395752478467840070668311025705122239093995079463821704850626852131783740962873943287752552964457829136901238735525674827271126538635022037881708438816806147620062165975527857022822615191188207160753723099297036374225269703455067816299323868064298749410994828706677586730496527818404362772963934483109924551200986270913188446308353018429698976436876496489102969967667637298310776320630181052250619723517906938991048575600000445653659673174254071380825966960327899150767375989347155820761540376720315936223570861614071828898872881585236567666814531202419509154240516242506021747100432730982033060098170583591178951655903721074804276210166820159865174174262907038500688892525194203293872952624190251588345508806702420672313706905425839860420085003797906045974085522998489426727717995963994633671719057529051980254743225285493089343142820142970489408992846198459347204494686107206438677911565841582272084191602286126835276063921853060130403696662421145891085528251124699763113409906940983802361738220764124506581257191439704539356297278308083990532066725066968659713357635424477719814403800171536665525640989496073937827389511991670905516958596269477817835230562296084283704065837894722325754130023855530372600785950517246575892122539448696570770885088666619365524815108983207539490696692148032912579383280848946071571602621696673978712420740169794688076250895854126929021386266635266269823123001100806651632116827019953070193132576455505364465658745097494878230893586885024982558606052674804231997510169931888493161164520415691399370323423434833534731996814165601564364302016672425112021427791448364853782292538129768282928906719906934544442480623156575438508555332479259403414530429379337193961510815070815433297485730535709798463137296234423609716424077418256341233006513811736606839932295186853963397769500541110988112610387327548234055423141820143926185684241886177835062033393968953896388017717279424774917558219007963519274957407718468047881142477103059266601964892134332911654046705987704329976977684047951037366568548874317374617535379980353939550067278013019103842690970627384914075226095081013212089100390437856566221730069778421696824311259769411342719904322096565970847734683143845697081308980721324317392689612292092252110817126301849692919386383983474747043986762140907041298571124405246237166065680469845105744042402461440490687124321228481909075609890932543166147893882370464434105368410705611519351573486971421363891083659971013406675477536394191895468553788544134078660763984324548648300221602967191489103279087322023525684990458263109966625339602010894232891712683897513741997567007811102600679591241680067744965134428721645119651594439613186259205973573456229056976992800944817311469773356501141457724602516457818189901689342912539081060058287804381210130111845905321648628083059091599280196209286009015002924291851690144647451020665182033503065430430070341718400930474251068142037647599469562123189685967840133264938410169545875706900906022488117617941694515481438670617495833989563243349901354971850853561196584313287559825352468374882708429238805955975921428598180589781897444967353266646705294190980219533263058585812187175710751008959427299436273447988601278705475367090157328764313236222972892118305050035797995136640398281253916332446860115979598593750130035177327533847058767490963593646944243454699719403924020491639238007091081812074311031744138405915296413607731955417140041504559837153352052639958837516174907302162856736720547075483048563953742761838608957917953351259547677305254173574586115175165937317398916583297260809343955135758236893755876888278509012508521553504573501630945964243082732998841405218817601257367166238109674752529842954406975309640869016679334943477429954670064832944573448227155199901994286922914299682911310178823436724073664187033440298414324998649097884506837133563201953594598691720328097189612440759745284805610923221910959784605475724497922151828984119439611050817622346737041462615014382947921167610808378106404384048330873911841067445016903009672808451775743991787211850438712081644010862777461923631478948358183008359635695112300101722780096215585071113751078739771982508931208286599553076746883481153408616781290534689335923222262317601999310914107176332044884498686841364884172694906924540545257301470353304972255632112093901488872755232596593600794061316522287375983285832373865287801628387736828707982161776625491936806562161641307986265083409935825983554281109210745533453856619306349271624086800674445900369795202072488529044282391565096660066033795891808061225402490799533263031451502005165595620919060999925682431949383051739552910812154246965419204169681593831936432286549121917978017525552331932746852227696317965095457272792289067685703325839211790976758880941739788447273286770095262898996878919098924837820748510587013144293896317047517122926227137295807953619264548329506015097224262502948263078460754072241335390077436657567835674035227595823464242820911564704234357812490804941750726647083939209142955245926044758841838159665359648121579648236735664134719118238316448321613844514351860875577229256740733266364969497862374014484812561967658577916928740101622246032068830542373111606054338449966121136486865087227295105897376621155105888768423993988674117141454591784602132027325965843427486636461957093901495393368315674709114091736702279585701143421979735145364847231279711971415319380666335075485523874896597766523602899835421276491599050562855523062801014258016809842388596859649188050826379892794694116769724937238538577606012959484898702965361919185895163295675608200438789956760440739663664773889525617817227049226752894942029023692948873089923789800178104006608558568778934252174173283894309922721142312142133517596240803603307530777232327315123462239272350392751152733845147730328323515225833984224648784328362098477698059614321996558801285034589219194463102135556274827548235202070676255501142796117259978486942318265427082652930190958112361823495258267113818278647758253557320464938414130513026329733926160799456609807270847045203671196166949487662983571360807875704404108478842953767210732767675625839691652092612464568575106389109624801550085077302126282074962121286556459934877725223904905284177613497367217316946251637018062381434971981657663315503129988092201733229581933729820647384114570717594287129802142087067790654455050466280386741587428247833347924217059768619305927407452522032912082136718259868546006534176989623161655412175850887961433554907416698250830369575047876264940752978847064103654196823233348589080874783246413099394061607393245601559558310582835472588166852052348093283560863043920528664588159549778782831860314007611316790922682959514934196439243530209711144139955055069550116408852081598271485950908865690070287339247254683573154179461272939242629002413724469257008761370197211417681892205127307086442098120959710614501591391273720561724710725817067532237477016352742957784041330190318147409573510837471242152939243351297412189965416669945209000672250241234084623856513583875272660922119070613079604184684075977217584394354548497438371757670303876818674743778399565885895597371767303723461572828919071998467233020929559504014951506197156961173134514009213177714413073128006232952212924287630362828291211878947833855543541671024148225374422387461872915330735650174953145318992883541443365678913131391638233721515025167463540619560487829465221538023101795181447355286158326750893128288255508812590516626977004550452753751760525133783917208766447170506573686754121738908549036484725287083321634325700574738375145324416556672561709705353258968920706860260923082541987229910413506244345381515720921417066296283611722574862098976107348895153849483006738822719462496716825745278409843760159416979113114433896929985885371311662150207208510956394663765380342466903124848311063479269138946667552682778665688581860383530328703373837094760963825216624620342065319363961745968658951400393697470588119105948113370469209415254629167740909680560004224237359698781506216421883521979585310306467419035092469080495955763507493987407726477993233449408695825050960803658222115084532626805116293876341846599170861512713680097423893640258619163622881098133400086195654060744866729535862968263509813363115391186021583318581769724998073375038162824386942440936397656353003049976026814851746657687977743075945854830015313421437785805544979545397804529565861687933315821913126043843114192311250987593164187426511452010639615712496620545840426584106818577744959844493257425484491298322077000114489426558427587817428605859312078261887184823532181525474823237809582328529688358626348925979617381322748970655894618772819334991461052437914001139513034143730146794176034431649668535066340804653634875680482998804015045972836952666717640613779387713816993774724842157101299318181205419006952641844158461660617777860337278049609456180567183135790271930784585994599744429193219074874022428398362251106703632341509136516578441442366650617821802651791189538800451106388099285375155454851903329924902589634067003937039639198835927515044133929134749649984321350039377956052521762416413713827936074145620457499617813374027630455582701854506518079874983385357383558624934250456032637547000291810443718146549759788901214938721214132009720195598949521293291068004939754512836735565331627630948244779162193524605802399837052010692649569473439499914070443622130900032059719735662222948498160645782560852891699028314080333715611842250466401213382900751886780380193871057438899098139611253651178629531265799461499557968212387176490817678815228226957438748182895183942740893294479445100987513704751952250836868382235683877345019162721992535695268866388391012445981880475031530888270714416926687690476927382161533767811236301434385081171482172817093451087719026185203761781709073831877291500443883108032081064290569224591360825951082029314693278143392495260726824514317982074345003154117873329908010538939568352398802494295508617027208733707339657258943192323534723486834274500552251848828804415749777774893721318942179021674299447196824680554078532452999016604706096713386111695724395999793253943139838835678567374694228551951333666276811754090637371275675577532966763275472872016593447275371783567511490114300178914390995831601554386303557432705017671900492435302935938220449506654978036212640017623993754840036337072264254612775915575467046457345744301169667997130269086584576228126260027051494486124082845281178461812751689584247365801800045711859863148088844508803505508399425928306726485558083797446239359273034252163891651566937716042022924319919493457457003855969442545963730512575757280832865504801706485970806340746109854166190661701531324820460277260933816169199672330506264237780235956399200662598577742321767471848319559778429991187503058537534965478137579738648261587496339873027125749707799479500798890941120529660171980588063256333785096801946832064286758065823679831860014572233862918104286123065919628889494803467370093484427397373314496031374219155115740192429708701998138035468154003743085744951933791253121831619281564202549808954081969323074870801516435108131207827284452355375717673163413799438952013553090442380195810764446770374291408124252717330857334845337372598781791782221490824624194379101161637717904826558205862360995261395454991263124682817941818230490465137638176629188861103796363561193553951971417171804629841772152698125377049751836036647890933890381926270315260092418721901739558951173388439445531466784851960323724749605611605660153414062269290391941608999829694578964882048625358112616194102064100976272018622206973240607234711073317976235782467673770182267036194893076182980269219715937400161648301399339282015736316908924996037275148738326146125774751595596475130643274967856304902484553644260099953203998957453717753738292947440206415719220606264183637098667223455560556828306894768649711840714729841594368065396211993960586416022572172401349054207020619290502433475792252322183798664586273142611309269417370718753315240720705213607816849382295087626415115578138989548409910003303645350825453441000628212743974163194059394988979117681665750609402600940606037804445778276269317207352363760016055126833029119615450964914697513657197249879475590344465203916475112936104751138959951681017523446502024146501713206681482818850405282854778544790306297355711471852406599561701467498125940991783347940825679791777348686308168292167812840901395867373601463523050074206415661103969118204454305063954365642438131330163834975581337017594062385798406743063452689848435073108356483517530105204302077671034334279859193059139275139305636762116037283638481243745642376780885566827229024826251931290169725189081802559321935641213644883885839682503576193173183351773788389089695252514725373030736895282831703335338929494041256233502157811259319580943812136694335187839487253119302634599519031464037566951790309530390714487970279313948891416429941061478111401195293109021136468833118605630443095525044352199665684128844240939671160552867375166481171740494036124489025803403458940022101216220958757481528976416176196366266032882737970550685882480645465703300973657954929275468806942598743959349286903223308417070230011314062910857168091607313887296071017694189568212396689765359177273731092907793230941188576846237301174524722654264455895157554578099807176933985722940974239760445596550599659308009189422954375493321010228721015961922177576410030917534443008224470418990121051446552879917601909897792439423135706414834553567431793852792455311635400388737133999914257032469717205136039316464100771953344454335166056949534888079368831894394014590435242492199077398816376867378268739022767042611051412992736527694998617127643080048846378874469042669452508075004426542629215980003199754164273069946406214760392745386007231150720403642007588077727078460966341338140179779526007264299475863100915758116985955643521643342220532587811933688237224221444849049820887217699642322794802477093035118502376125366637588037263694978763584596311542190481509483482640629183466257035458555246270936510115086771757145347759483563727233366546427844274683707711285412085901952571667740565789782574458937252628276191919329210000767962655876880808616328196461043714113413050979963856475501467906467011550101083146295212010922023873514951822735810247431572827011287660686354419343582441119474803209762482087312630241887507028925167988297802643705851533749152812320517924816610635268280002960095936500399959555199926508027380863201603222056095599988310377551280897055306827852537007791645328121277366292110065652907002766561117009584648120571006374499042178464988478371332531465651299115605384161789971211165021192522179048688665466788847597875634297318897653526058466642500096312816000436297438743060858059511896193140047267421735669512755007979140271075364067163345068983902797054324752560318526475846862927931114943493150504071914831395253441120138104543525959210648491179630018246891964516738454132263992665679770514330068473568296138481512612799533478885133786814651658585134223708164404374289391924801131218053649993624914869284112288824226286395155874038443549724132123033585587893821626694201529795173570946089268181200925539341744277420748130959671315942078579339754431026497463906979563116205940096432660910902673668177092343933314126692302280807630753648649490189657986851055870593759222565602332145798319994886768801982229941349141541689320636162772908322031678489166491450427323322579221097059019792336925710102725314524727369481117876835833930961738912795994423392387490488020155910833962618503643518758226962094832630611921201880612875080367268453216530302630055423301715938805035182620341592727521732626367311768501273044856775029414069786075113489248372369250981814980425555870076904399807257130578789031725198341766475083104453845325521354355584799355554264868821341925287074001395774479441141238128632541408610005896244146307542350558293477614231185287857634843874094808513541113378351046600732380867012318747763171282386950430157820087164080745329268303958149659686671003734504170608541699065617361693601945031095738134825116691629705172636501277794597919821198001602367945301401870114911437358666211248878949964532506307292364111796053117126465176116164317006271302220872614119198563344346792126333635486243383838023793394966950048678214792002616630823942341467518122830741446756449087068872969048599976454226833454668707785072413661103227896872842478193125004580220723439562088427290414877229007345199323751275836884712878517647062824940794093304623721181346223945998855811952662616646237873836927147377036039927851870076760454857396162330219575096520204849525420073523145229295450060381959084178737164829483935843502426430932857336869086368517398415787692538386186779434646325513867933635255557303214175648580739370398514837879143406296378596335966766157585895718743093006341011568302334056980341997140815988164425723215755658176659803874329350166022097889546828550803656780185823548528412382302691660395442060555817968159056971229208091334234556017279547614273356318030264754693159842315129345925330328795240266642497055885714787064210639875380642278923454591479900746536500969402103540984178793931045126750575793328023392593994794048641655072334403157309927101022328548241237306661878124060869740900298190815515521994395470306554643236744644085422628621647793096300737359266822716560539460428517945879809312033454772108293191448354260206261663930696030963333031388100674394585487325015305726122468788725328936600920235031386300543654553396840526726141563413598810061072353134282580598886979616423977994616099303752280848983560214302179197554613595804896094408185713221176900507907586238259911969613440474249541203047614947142628973428371478596132441863058140767357924090818216790254244636462283780609148467828812947631213476401342030860838845558492991516403438966995991534055910313845944101784286100322540267220871914901042364607389186998670273148922263023642792842108177981269190752752300789354918103196139060753721467340327367974085707046913907427255019290811623925918118491530619495333767362630668799264773653451925329960926089353435597299325789498690799529430321478639682679720409963752884963220379279240272501307441795315664853906694689278585686344132922770828656190577800316881211360956827950898294376183013108226094558460960443803824070728001928364262911327846196289890744550308865673366589006511298037712762743820977998023106072496477975940491879648042524437515594667972613224687103048718779204024636124092543912021395628330001362135956104467232408033365303131903207909590751478587866903334088595664760209548206938788442036836331796041313377652449313482012502091181025523423034862878810895102548769202328292184566893821577816974249472748423311660268429203931284549772423232908947615566534705750954072497357647855684185060472357525115933897043074947680280750077510422787328210983442930712491731458700840021811962099336189508863222717159303412534455364505892679865850507337359574680777254724061234388749694110627640469345317497254864329819032972234206689392273090343275324587837572323300043082732170989448925435170250533445935643129928403658269127787664927384514668680015915281022767052546805153194428866068014581464194684932481763995875894026909311093218990762970799573627933115940967185990469532389655440620534301642556900186447190955431632098641501286948937618566590456174344064613192414022468026873765655755947450273214591675494529540956712389069204727923294691725196260055455817869673958696449091979928902904238105839316201981527357575094574867857589191726699312475079906075395377229303473829873204295690933754208023537560544368279117084864832985923032195159385645911765091059107283426342373651582155050887244479737211657373812194816710746379542466674931397459217639848830417861773875816847302487541866699137136250548126378280331948052803694508251762981861397333680160199730944385610041798374920757728206196208651547636336165758159403269224429180026945338320064746997639377000015688358228872427893205204933115588926737649732485880739604463589247272271520994751314528424284696718549459033328742256835502414061441544881208888058043630281900461877274630493984854630158967602176417966372265469114410905241005407689464867634195616342970102972430590196099725485267166687951706637662710067994462593642715611506592482306382783382018358851095620009417542089331842138713739388443046675259276424867056296205249329951586911313736154771912337309882935003060465642996767939285244543433275685440222750730397404884284885576387827576082513349011276510571257148179776424470570944806781081242903001294135095084683279640649876744142725133769124535364438723999983312458924647422113002690903853201861074753730273311636968138058691253535816273157572716395116054859898120292892801543803794342626301876850209215290918707400077910115742240669491298983529912487411174992550201669026921837766084021570892759970220796983788190799065582721391196003174229487989691153005430295421553113368999266502364844444374730420031251038114130882426165460062995215921216016010054499184391882066012381717855195148162198189614085415828158896218497033359860563758474803287686728009748914908835697905987474286958410520093437883310938145101254305899454724156171885326852719280576862925515861992557366624434132332013001868688242359162780190281446985278740139056676312882712472041845362207738234093318765464993648874716525905918315283554572645592933999628739269020254033701057611874779399855758457798319494678052237905111866843135989556645013043587080967013648537322030492192977416616305856330232419749065950951995707836594588068016623082889867337002609440937888914664887451153877196664736689530719521819055538689474989068920657973750352884070892980369396498596558074560886782429955604095441306454157232093955737732318112438716695191632804729222167636636247809981595479664181554159727076318557899488754181522165902468409402288039477306326920458468972973144672071874894900349850646693588061797052780008046558463738277350798127552453951032279161014988812438808608009704140002971126355593614411011737308542560292351516151754312278380824012951988967737203200261874531780465787939792826291068616074273992503931362603526786367917731926699896221428611605087042806168637316856632633498411402900468021585286607370403600661196495637561517954903187277019394574544310921951059588456612956506567764426678742167765736179605734913405793719079181807410439174216040190978656220512487775547008399275506833295573345398569723859417556855707539695550929362431413632822955617832533160146340998988518278730420337981619387176110809794099861514284725511250868466016944883345262835041811616493074867120348134520910513140685872403761801122013381348158803429267688116955654039728715890626408800465999300705280448067160417347914534747740643688005222556119713371123840753622871356607283425070731103904460849436881472878586254658244044350596141746997767904354595540873124828130477218360772573071380004284381913621893820422959228011435674434875756083765587894291388669303946393808541431216645726167109954361166816971186555867819241877748270824440531461758486221100760643804791473888979989869707983776034835092261698900471723341402893236697101752543738732174010906354620318400202442256159624585513970924145069646541921870036920392437361754381042172303336987854784798132853602712878283907600740189208304487990716542107229005333712123121066722496893496468357800224594935025271923874978816760344237192940111496720774261573797551810924909101548798652430187280709934976788632779529886550812565750324444206879646786328188588792397626342225917237140058253437073117969528855687082783003473354718868681937986854419745742651902437680570973083166380951274759406094327382259376656269660227906366616770937430426554031919273002542516271474263461964536595964692325962561294450241491619601203560189003678531858737098149783667364206097421654124988656787265284490490397591863216313749969386565029606967116567598317112499165551238663386181001747275748634289827883597331034486022983215119159926424067062191555792350214319471119304417976135067117367424791717772813163222512761414028349856587863578366414497032278693448708823348107567446056045454475410358379040594254718686142323622279642599147720690230216569872706961594050358958430070782272086101499478791037127225375291286789910593754794153157050065429739501987102308655315999094962375434549825657772470570763810631386318175830432815305235362850742134354298281258306828386509625153214263145041952037432435815404416605235704558087155568144948808274108454529246498849594214268376738361124527914148782309791175781503851505171716378091653758178681243804803433840741884770033358147942058676141258150164048477372753498367730950812946831974700405111202799748751750595399478307571251721966961239780927745524136717059521489244340238454373498915991931879657354959149059877050847838342099324258950906029052399232258690872132223206668971746810802717937670462770908012455127285735372568440096898992132561473710502502758027872246924861726634095247449457693364054604225509915974450999972037419633933128226322328108629852602792655474188419351733451016846292205873591110247833283954564046111437192884644032173681333924557382348612981367075949748396930827944675021645800296324412525623823368275870827217099184836741492479203964123652438952025766743523518192007845101777918585456166742087908693399255829990593460848421575504661921748995016874397315537882170528224039569748213985939717486678734561460838155360325237018192067292599020065525622113413895438327283872295824668879547664991611500556330790126796285069231474405626649391161935055522663342265702162378567536046022263177611202504677876163880568067682079745040553385274901045204585295965740232452866530687724053146958005379439850544991974611814737049463703932048129032034025915976124380592209911973758296706184311484399639602913221948529892084980036573885238121919726056895003086810865645538493994894280390925820950087796463930754677638377955618364886406409797996121774893614658501930695861425356017236137385274779108979993694236098005710377466358530919255165011338980895874741255518552261715643343875370588355376787917859033687453125264838878039594229117956944798036798062808383425037859622896935526318948071514435096420203663242892499739796486027758134478459309959694110181231499650192952646839857743824140752987828537728802613977965984756615353271264923140413633974022996393790113529139881731350848344467422028448019668548463359777579004288938432907948286214600921989544524123998456346878718786406457453467643002358542957535594462435702456414616247896539292825566261181724505727448695259962858433065986224425791696377898604857796519588438503626796975064626431349741194291838143922107379987000644284935485464874276520321188293423984429613535939038901962391990186985574683356432211647530397322557803786947653256353286323285636121217863096160001295722894659249435421282805647661454628754415506974606595523575065299949987500745578558447962776287421517975103058741879670873687890719435179491664392539709732459460680643313336752628417787809195121665764315831450000732938961219617586787031390178505422909578441337535931464989383745190757656483970996615675809770703331491080694933167253075997159984499750502084288051893483072733060637793843857721295658350440377660829834782496162502746990421338541420544135241783705378108017877714840562291529795845725005923612080270014129070285844628218986052577015346847958606739458328733204174336137908359314100521066582227174823504521059721250265145422692581126659662330464350426757528383850828721016247646544312057815104290917049678001489088281173039446183873674315108927148150996267237918540166141337981190794997528106271189003493267325949697679179494498705238178764229083277805005612757823468376789127364689587453008519466993933537584602523491659045005007854488143726128370668951006133880099876652126962437324357029438114531937936552427197965017305048509726095025755605784705398860009290792744418012735840660236505589123684027401739965623738590565983309662294033258345221419931402737120707674892413049220148418412889196448438194214442328938712919666673805964295995990788124930715840761761013212975110489386527879321342029228868945610740452204480903377757805332290210474032664277010102538796007734265954844477659677279034758681088382492167703880743009213203653467012031058129582464131924649724900206765141387341496356007919173006609547468766703724747342766365089815558613223895319790350662809540294047999366200519204091745684103181811312071830458384153607275586632147940867188731477954321314611837959034073908679215085138652874481981720474866524644899895958231153584303038918247493870750191606444274657957296774307740178783248688555699863552049010685301889640335218772513488479933812895682124948488148173391786813417288414310247871148120588116991738640472399572870637916714520017140353769135344679217449517704278252565143123187358639395375325867328622472708098737578357494943092124628763778602350330329909791474423661404020865296752760046439318934122281581495307731309379415971356129005123626916269848731979041784677042726119411257234182875586285038748247766176576172606926638775681163718228015477396492254405250800848388694606672454153579935140537458625403798225720872170800289645587758777010339440761432962134122094648738685654428928380434820255396290760639296947725813601842443779103549895043681271187203582504297875227009471226043268021616475677001151871175636037305631903936535704899606009460729573124675879236059771193264376732271505439035740417125491721650889227672201678675238107880633522671229419516722760137587343548604215171180542756835792105438785253837908726973070972771913504147544088459502373970329049717566223563396610407815126125888564927825361257136732380372640770707198787950317384362793064306038455247386128146403969852660024079640865525260150464905250647454762249528047834335724559214636019997973480605645674384597429720702162824875451482824740016458194895459006246008849961968624774045176752424408332519618407025347678427621823428668758496775280145442498458238454750913600006885984022925574140636032034377936482381441528250031974427952676961426448412017555820501137634151803533603225881907666070694873348364228759067597557195651065297929099365049605553973329329954696517821219374203555006987156751436526423817234766073310451168196675917136638093734418101921668334203924533208632321225173490315048620041299048442441566890045329422956475365030110734461458941008506835318662664072485449454130671445390727020496773110048491643501103284618474506454855767188713971805157069832443310686468798821883111139612896004654764496513871855164750526028311000127242051348340849304225551842095384936106493724266897820719171935333231576051938529277536329007554417169117457659668270967289105825632008997710547451406903095974738923262247619114132303360871274629061139314290826628173177472456147545677472853627557724754985146856731309774259024978618224738837526371994562039914610254502507572915828324413132305188569373366650174638414845815660461070435225718387200674115462964618685305860866268911506426625590248019681104923004431738304225741774422420815819293967134438885264354919582155840176382363285750011613462570772718311601797344036453325728106171486923280629523569917052937078066194523821629958108780722084698660099173581597300810126842102892529084700102645788399066052408047594748533722073351530283246945636883597281370687929709290041041417977738273330296100299574981575319339196843156633416399243723639752533698196306041120474759231461947476149283293326064354294492840446042222924389740105373384246893400619655100053911789241311352199474870192813705791895199192662859771572196202055713055409675102251723750589904921847750801209819129893175204050316485145006905718748998028546905147744273123921612986680134945716355707378329369948708452409438068039370065928508667248329356942581977674997249364680623042075921379549965049425283571215800725980568916736875509143775337820106710096885195134758749709450370802472582391752245525135999156042664512724169767195798024726115879727149946422415063481563855284886294080854453603943995350274652737592255195829474142613699395706284676349724349407062472554519653349410077613095523312798929564908779256691220651575324908572023626295583553641278708728331991036610356638007734655138113932734460936148637215767195763686746059452081231376177819475291053073070844708996486399655466860179346538295283535946806804438684876511158392591111899056667760044948383780856883010899511101061429510857570302909617969006077931324302731774557304006924548885177307611446495567202240258993372537863077554675773061723043778215999496019947488690918659334282834830453714992093212254752529898460132294696933289772775146433582028365282059429892155230488829346498936910190850024216763891846259132760539734396662350470811897245454957108319620087989684616567993470382942923053079927041509274086358642602753047821757764195292933241036018475037078327882510832557642784376977289213103381645137324751169282074098498321230413130792794838886543751506086948220310435456563323812047328888074477495372754853939933427182961028292935396802407448426022686871380137516861306762937442674578230808177118978502778169136393442983855843757838064188390540787852505482076938571039082303710587510713287477838829399111641149057485838349632041360127891458093497296017023933870976519100312396124524292982431256032270594618657386576875784476181700500990891626530206697907935288593680151668642368918027442403397165098111697896506084497762412012715018742428934393654165358900331436947002828781062105016041765523223107225141705381305926165432168140725722298884343657250910218471322068564572991443705829394222614731133437880269083356278145675677451243326623431606225821933408460885640629551943261661381839757441993318160926745451295711678094901163830732397563514834759384425920390978483534248724084321594108118874918384635136081442119342924011327964922642427848666507396669759746594240449861516028672264589391441842425283964698496809815948359214746670442635180624414094666654175599032746808658010943072064948511332123933346983469940007717974810790490483647511327142906671312165178776534958171589617944485658619815619684119545375693932005846552563364545105807557257005512548804632333432360881277845940027307930894856997613042255383720711278017990880545776054198324990445489642829202447865496799507522766885078281145671415811885824387628613238861727267335004795742989005674035152870378117855133731407662069535662457599770528186225123483626315452935021362409461626118312976227505575758103193055563212546283412222258246493025504799903212843312759975769734466364918450147623457177084388695712061431417228720641270584463602700643437291713579587263108646507807459571361066328538029224509944487300953241984838974128429587452945677129905948021110457138554022877543290498133639993409958865986798719092759385567499793186466675885906377943202444853362730859265938619864491810676532815525716825338534508500824425646964885837354076567702113062309424661110221013735748377954841505530477065908221883403946148726288868281464013147959319595593138626031535183924996540757672338267484810051601108971777654682812694207485454555439960742417153999551721930741511221016549348421432904110490208898422360650943079636791601027998697813737457349426153599721786318413637657057031150130535892816709857946744296344213768654484630020349815424258475794200752660405352243541069297715444383444677621738226656660885431313293630511966097879817422330366024163838667140833418835519075562380846717172830041537546477964414010275309668040149519353248315119355574717254841193911821689624251570155617852266288290932275650627142670657543783454788453466174216940043416240213169546617869336266000293116842310406723455432864988190324892093974530293226447550142827057597948195195673173096827319704296301604201726958891359470338653404958996321371532752618979744280462426321548593765521291031523557137532502340946007259182127204081033218877533342330716111372037656592733561550184811801006478639109671220268156391777185972968476164275486040522342617514588774361064206270687836189241370628171148147698432251044427894283588630930771257287248281749938436649794590422834437612272056472033518733870981465662509211580320880388160181996542163643301322404014531833365498845645582250038266021635244022336523646644562744771675206579849844292892830782193171723913132139869403208871858653208607956773732086365065716471791849764301140800153263620787962828544747721760101623690571650024058272982525685812056563295724876274849898163974117842761774602009512526216032311310739224394500964769489099957556393125236475777267172821379666760179623808661307388482044015560901036583077068697702926160208577873319209129646699173530149559516175093923082245604913490507775744182267563708917765629910918958238720852434548525499906422947743555228072359023503479476543385181917841778937977725520238705404191255048493751651680830932454796242340527456643725509723525879295285304251851037730707992437824559454956914776132459369714705314357188988521898453952935484427078135863715033493694173385937128327577451739305184374167349637821370117732659228725317762002824216546693534205105388377785236996686914228756342132950248443121676705405765220447411820035123772448957268129200010227934632904671784076893563974693214005745365449371420587558555010465847562197872929996716365412575912490491106393160217152944831577095999379741437715036258855129696476029470282517653192949061294433474999116764550862318479885610270700398582074997218707190672122948943556410410649429571084514583791904002703611587458966175242935632521933470614410804968314639781659795465799665001191942272456736176673800708093178948903331929389930007193744206524675993903123588770469840328191156177537121842624721322919643361417893483688131469533601403492723631358673645289340861500318222072034198465752634897760918255272606011191588460616568152694845300850030940123469697192443072580909182295225804258110067081014487255251975164128665967008622663697626616140057393765761356587828550105733812378097712326088585795684786727733714917515579153702526878067806367361100150199343289682424760286433242977848483524311685327513369591406167518143382428685755541625538651632261850594099730829414153825973219079619242379612680724304081053181412801392835462727171788777617014288616691327811801482517415838098235888401761939635399076115929615526217297042527701417027739575546643831673897183577964129860671262204792818749959068603877605887279100277346693615925072385318462754811020791606620607362991964506533913963504544152650456853672851662094006038958106884818415063007845020159337075453023377820491424660714214094442018168450857691266732577351921340880085407888567804216917249377555474255941398153633587675929063293859447321075522467668120467037652176415099361989565438091359807345923189994677278402581831615750155016025914709794309136881972154032138930861919842207867172059522714304771440211129404085701781631458647846116472371963295955727544973649441987496828514239797631120124086514223992370556049669631872474155908111043160849441442336184817184376666335801614206358577955760252646446205728719644363993479318247114069091840003435036768663052864972521426106007860741616830006227513132435840457826034693687445897648995293732432488806817076114207276912604608363113311940302211243115512874587028906942015675124317827055009374514258631593795688676002297344169156734967075926592465836528772970802193184232103191764417807366276594702227098767952299437583391335299256515499422974087759888137184193343126874681164769042865383098665962558070458811909938177527066627990428936749637101809969522289241887254600271788686737168931447557500678332532628420353145573288579522635880759784196867543623628133175491978588095907727008662916371283167946321617108223048469763777603761299183613596460012854860149033500168624995283891631822222439370209893621532780607032379906176898236505617713136037249953210394794940601150186786460780645910732802276456475990053525305573376373042830197734011529144818433372681133941240692839277282615470432782288141587219272789440177448173968546614336042737087257714934124433582777783405510016415859402163749005236572392069709470914671473817387246354392055604458981062499332576429911805195070920446090366662147406674472490258126465394917449390751894032363898060700075144426171196191834936049111669876932552157620005183642236681569588185281043593918266433844230754384695843985806084934536147158573293875853422653812937923614650081405409264613032707477981618759266152849220127723801990394191782640778498068756534870874343909015290862350034743397208597230594490537938488855537093926310717413989338414243144906322573542070773449387620440158603756955402151550701708512653003726551280425112514502099297137717942844935515512521172710149200443992004270808724461134106032926583401754793278311379907226411238605952201970689306219203080908937831382224677401329179875461751688995612422562852919260002805318900711932695403745959771717813023845901212232110638564940367873845159373374398757163937670422664222342282597674090734319465729218490389484471412652192933657539982368680708359039238383425269211387898636671656548841875445901177411586101022152977424019572988047788469891606419962263709140435070194252340948329948084286340376553876189576515811773661706246260377910498067903364464350123695637757722632620866129121949552033524560679004722079216951175143841355574624995868737771950043415079648396716983934998626333253871961243487232554450676852685224845147196376956128858641635935441640865284718805605172172148176987274896983495414975603909098508075671440715556783943873841974384812404431409808552290724800332301434770303842291837115311895296939134768119528855384726842655903516772143786796658365418664011041057638599979315167304169818521930182128795777063274588747047303579589147115477588361759913361094635118119274952540805179551046291201508490683886277525765471747584304372284933183459003510367950957331208149034274670075704090825778644640865226316666393885758120778430955529444662330437034682167851070205798561546700062182496490438706484826377295902199047334340598733456990241719829522042948608783831622005084802545716858300171169843444885554669948892939457463429500963488828342041000462039078485893905573376794816925590971495704188624431081399859221901484860827797253705088412076100531130497136009695549539514243513480429298340971041947475034677167130609502534416047103473546035229141138397757499292457578484211426549815231169557436280777672197629146920699994954738341287023183761950390912773141742882332378678772104637047931270426172908755587418100060254716444254112580467993885342487852823738113886636886260245221928079207146587865075554197497847359233289542099094520869369328862418539958817422369561302318735850142123277572382783086373026282460030779969712531691282723563135532554293361522755786082115280837541772763933594839894809727576445546673672184472204639322427602624491884901720088234263776649886175716464626376657788401626872035835150250932381126804132245277746296701138711306176832244371493461155971639109910836226885388848470379998239660418795424735036635859521304516872709809678948655853409228442863249489360013422079559687409670921107196838565582053081604815190224085606214877412355102352998581079274189214723685203602121713995138514107079374902532543507859972884134839114349522198649483213304900746014643512125431125957394730114253118457091422408072612210306331872567179327168155609249989038137333669602575213348431548953618884362087312748886747811837398473931375007714926901146221961579804706751435050981335283641909759090614464729227662129370246470570908744501080272319698635170249417265180383673276289174186382214920853922637638290730594173963907549588865849168186491743776278287261919660505923924757388365872266493595243832978614043782282882817359631264257437061195680129735603634263779356276138037507909491563108238168922672241753290045253446078641159245978069442455112852255467748361918843227001031176128057170185742428689709624198171952527181487629757121654374519885794734985742745464712600116450127527634521157324364192429187929445315475304109569925311295224043862903034261054083870478959993403901828985959368535288080104315272894007491044397735062635179290275757746906359915285065025337777612997202973429013549849308527850344135195901224443924163989711008464546217450272020099047311695583238687950585232143263991340378838145270777918656028689506886251408291193576528599570516506915180568518891931773118081930735989616555331965582039770723228096467935083873394484170117158821679934294154045391995424346254342502943244595221874874351197384103922002156408294984405866014134236110187525330536920307439086515121517730923311764957075393315545850939423704542622739268170334016583566834348142636327558462603254217606863052362572187115610303382539294389631328183379695577476096403281845485089590845822705268170075281478023767694145913955578639338470161334639076612639049646573930834426021788677097536541328571164711501871831234174993116856564912393352210490028572495830686650499770920361068839032581472919225313734611055681440249562513378959004725010615057100757216096214455601472137561625387566051080317449954447771119581134843383907745510072998882730617713930085636583522290289061778368119375113141116805309282484685114239433091168037864176904899068094472888969710453008983844516578561863293451420669228530652402530136115598795816998278868414818694858836664121833388981972494573124141687282296331480887649117984067809363777463565559472767983307830262411310511865773680180487183947862297967668195867069806602238796941518912262356865887234270465287767451581734690469189239845333299387921363224783906988418728673978293185906626828755863804975613445750000632579712034873117728703264287297787562353017598249970386543594253355329650364553922981750141419159302741916693706063457009089835506319763769783076107383164175550790284314166258813064919425921662197140877078671258806692021145014658116613440058221737777176268476288571723872553614814051176990232646899981608200533145967280433278842400253258730041395687327444321936613289535997492785539716759577498988482871411159658932261419806106558728916134669742575200811762636925826086281544751520305884904530624389975105138525325544793622792530915196243380735796140913881870992612007217467885059900814071400849630842841551934648462306593415319893048128188807367412936102423157880584779828225011841111420300100456456083366306679145327965779400237636222828648451363396755086381824202965662400853962769297127354194089452344789369351918091440551325258061582477336633405493108094998125606545985564559305958523865650594210455954620033518934261998300567219114089300574665521600248904446658157480928363234164419012978212969955833805446477375320137262693521212143694627504983846523655343785970551510808086723334932377327573224096014202821682396149977834530268805916680237490525637335368089022599415337782263005142200706733775279068631546821390442325994137095845775365438161836747726230257916479300623797616373794478866892400643497912635446631820477366622282467588891691115925726967627797560101584677532742025243534707712073202739025390577649572008971849190856055190730709199841190273773962776933924786357036455327614484229936534831439778929454060120568336111903016040692408792140978105671534008551150384227277526441424967685110733810550100420744265206893542344157194356585829257920613155014401451824191633502576230235386713124342948075546357239971874703803809916734132135953575060937404015466180142208568560108783680226062755812707669138784405234397211213607107139223225871392287573006869255665151472771021849364760622455112494345880915356234405524562292335790366912768789411890655437750824084294914061304497229340992597225029624227389888338944181098093958954907833916739718108129242804024453739337740133414998908633989712439492265531280253467323314539350850948008302258188905192112361286146680695432165416712265648134320230199140978602220279368669481579616716087387213379424126085703450556332262599659777758539848726993686564716032715037645709975567912859581813406688248474512687168899034554126037896948741680239748743413511909555141384910430196319791919253952917016276215249227127484401577625236704511878677089491581245120967647487012936252846889122075446457602997510298267832109853437252132062928967040100409408799180482251247132903644745343632370225845432752286486633224575003967077327593900508558691383493973417560751123371334264420821341915683470947890621395796425182747950967115592508019683918068352915072801043588715474022191134956908051016810887298936316406309688867910335731515781010884771423985021893838237162989998720938818578417211252003688358268257446711426168264371432330345524978568785536603213261257360630925539256322650175050529939632896129908408789114961871560882185716662237660450530041454221024516696713264973207692238405690855521632398938499509710715411642272495523016110492640766395272802848843184853105170856925384919958295352989315859838057880995124024502124098214188483458656135509551945338209848422941781252049760583881320588648813154970488076159811825981637453446270953107864008566403698620941042837570774960014351044568781546111564369586006315270442675195804471653211648811281029508866110886589848430788106818781565408150456070261134225301652983157036935331211676842816920603082781962517620378977180578393365114884805836746670103696624736344919105569497441623592048420142327132490474000357617116904044284064197213474190859708767906440156985200092609451820034725468632019734946580577380783451565184100185058882635827548428568578190335025615188478282788005224498197412513049063641797744226146947389467471841987882150242051658163932789327128351340160109286562687470540630722035836278171192615088393974654980121650266581126503731099528742540137859973082272629752043844585922668563864119173314332796659546273642359198395640339640861303844436870689488413504874966120763952592585717663524034408747041052140706452101749651299517510618396595930716706276255675683071561769333314344474714320747546368750946114367160557659218736689415937355839413875913084047774001995116461647297840971060029863112647533105233309316895014763791611288267218656137501933039145444482451458136426660517091117589322091442808786054405070685697779633329018060066102634897869835722060005580380205804536862038771856864904970441561598385797312124270484732620213786607724454080700689506514697721331013340196576762974086674235534931827515252558799567909263547751803220391276923950038262246707859852534212583819926614250072914762754857541609409175418316089763621005209548225286419576229421867495684417150899664537626604630613190218008808719323036293194150020384192148049780784033760640989310259872667360160396222031435008230546193167290660358216804790054143641917100430192810831259333348760939931907046819232512360128654142994185682881079541904894258099248651711736262203680866921398399445321287730662600383777625642073171816239830298151259833176249656534274194172326119533144688971137552810487639796545358454077138569163055976416949311956832913023111083199093117455684501665631319168198445827297682994762451937232944448340173643764066308654463656976577218438915585250020339782976118137502716831571241877026104787985139223994892285617492385475726302644401039482994835813479141655214457710715426818506595687008392931669374793590128698566874589837704353857120618768044013418911536794082359574663767434152651578460536735218746689755695302488777469477050605782943378408670488050965745217980792315327028766165766825091263512643445202257144564770714371518690375666961541924284688172824005865643671019547538385131663769194831865193455063323749841817176509122466154062734533397542306628686654968719177672899072645604022305244104228952597467186169956103652953126906707651833436571001206178818958254690353537223296080661612962952165849449427782139583044236346390696324337881241739618860751476638965176112481617467871012389947472556092941936609118868287992629213147466768591593474201051072326314052081972704644005309165656546214380975829673273226229067646002343781908966533079338809313530526444449435970897824769615628608826590852136702381918809974414916106939077403806634011996082841801370696280071454369409779358313430445468692114849876734759655907675142234141923437124720950298070689146059727442358034346932109034737047695546843234645533533189007372871312707685567434555044668899657446733384762608741946925709418012568892545704074790009540359293957517271519996930473870106511011094781704416409060976364774630804599987385423197819674001586688671283316088225157216759592935959068412622412493786217561845439621073195657731818549609999504362974689639008979712473902591354971796682570104741417722291269443581432340858450432706714151134166842735106854585686845722347999607799690127747698829218426767817322054840183635776362217000397984859348940586942879961241076946003685201359239410247071732354179036790760642150793541667159333781087676366428802777405637354519776058654469757076420071867488418185576702828989696085504558065480334004768250741463393552649269108532307110391365588956634585710243671058317060581384533400462704678926724130513001141712811843624544636051834081682945258135887171788068150120045356864388131404583533915399598482397771179955874170615595175980076419718269367748015976982228404361933172841273434787678151849411547328339881348751960717887830875528118983539124985344425548270180274514880483183272030252130977337981801234421337926046346985595078783518465306991764784365799244586211264165514523428736924787394301300738968351951507558691836307807675991363308992394289467806865800373630685342202666654696763442756123856047933423107444028872890384409065793944983013109344446615285405363458898991277547120633110714251822888956889937524306878168644169270213795505384776391113891494235374748578172156544223087778235907199954316432036130173420070992264498060941745567756881420934129928143640409772119636099157434156599589893533239356488747917349764350778167340884020311800943053070143852932017522724733797272133202032553743199362011372943110255677376285859894761077738157030485664919585828375632130923115848310282026560130154975894134293914401008488083214404585010566194383373817719473531554630634291609458260659665470783964199518336223263856672371349251328182493344156247392563029016664184436991807636232998530399685033176717590807612756309010419125237435702232718427040281899739277783627325432000135493242655806370107535231486979310161693229129860019203218004458551271782275916463149737694515561483969944571371917525856468326528194091291804769206246667662024293877950978024504445021216332208844585565281069341007435923033281767483688242528646839388994710611132421071499384985986767874983776839109024529539890024808217018343047345004554437155593848163299187479165368500568697779875979500773826844156763235813481085308660942048966588194783972986869382402579936495417236998452491273732362533153686366720815408469728157117653736126567295018384272815683522427731595740770004687715913292756771826698577494383763023754835155883979429617579343320749544355052794682346565772488961507766878297157488840297538944905537864404076561766357771691721879604756988862237169712044364190496053880009124620138220449426497790687013414444496241731374534434425206268918931162681855863380477294370457331542061829608713712285127798703429670038829304591311876037051068479425207030989215550243681888804354353616708826461600935795011806857451971564227268689962598796843665645094322822343690088356320927630378589102457569399305353717914574682450273752346692059475766077668710034431921843150172879649271852878773206122286250550001041526496093990208877014712140293373098372126410959695113083523616379579210202532156418950902556761917131722662996970468767507102057833965703254359565225623652113454134185257411552216580809458971717548089837302142467654005654289404842196628244294988459358529662938619495406482380631998374991833836574306880135568437867015751662701753221352012230223962025076564599344797726949467982303529396742037601903869754274904327615696596884302395204369395550783426178317515668183729266851769730582896282763930572690298970450221162379059829425497675306255052445443446120276668084688637961749349177427749538166899842229647932814749137290379852706099255667586745874901210879115214366858561391327825105437437287975848906888123614494544314530157200345744432570160103993039509635007696364199141933263851671077544582873273282507387136966422764406959021978135882510074763989203334489889677929475774533929533223926237837996569350271512154598239967521947369524225551672238611522900287362738969263527926867499132675180745105809453994755696954116825475802834926664211543663865915189344942281127889330526482360647890983991682860933065634862042624614814985822939323685700830938527833791208109580798936766166860367237906680832280526920545539802790091266962620859778566433334815880893493446552697614207742071706589824709591300455284465555838615982520912301453753781850729555170205516435256529625596816006596131641652384699951430396834843571013994271415857122125650915761943524465006178677484461044788880668356003787563477999671330751026790648763269966645838537841894659625950628574442237148917509914546622764511932388872833346278889655287275156267476312524889489699968690737850720193764893688375861465202515830993574147937818248109101052247443086774912197560048016589022175751339777668933155789511145779611226573484751166587379259446751326567568301947803212572301686905149385031545724294644497787462629494169090625895175623351458159449447501255142951149897027134847585716650830899693935899966454769325167504976675454359299259648452135665797618696777357045897119258204068071985324145324141753188085942581456360088436464053837744942025660382499353858492926797346937390847369761488214573864943843602174573787850868116427897208949734697706581231917946330349031442073680508551960677202565424623595722524942959821606994635733057293248468011321110877879344465613647645389793695935695089253370826657384026512421358392432664791244366140722677623943052150491585574414405141687396855374928483046383562343288310300754075024352954561343996456469725786670440017383598147720660926143180754233971195025926969941533695631290660724464472278197354271885140619096323669614854416132265950042200916546208002851622106758460986737839051643617334041106604094798199028160375927295624118884258771351514199304818353656733976876374508038414364982572868302183239569381879014558688609864740475906664231961267724497504584519491244115603980005731841015514786414321797050355150118863485685525380730359666683660986165759415496044474645411481330703359380413455582644251415749648375068352011493804128769064774602595363951288776894595147168302155400826161108740471455817168249750617498997637249414686648058202183942930054140848974402868628189148153831001618752514425944287954788638906548217416108280358687867458152896176217040539082187738981046248774278001835902843626048351005908991170753267247837682358423045522151112831733909650124671285414332328947056841185011597086742235946844296816503681255815863685205431992346431921773102006307290813144977672659515981816150010197219361469222247058539129416955124748081552312179071950571235326007282874370428220595779642563179321942146716029528674212326861950153361297831482785643142746960284137525921864230108763531353522831590037341280180134075059113379441236560151074325160703395178063511028967972697522858411972602847248353479749424213703962984880304501046253663050968710443048920304322523867840569049248597349331073421149218337802876429860047432174340810365447351211830934464368315975939772129313061908074665620442469558759224330163158144659647217526262833047711488739877370872634365452350106168960078106322527941647468956727872335826224067972715867970314232263578184261020538578523678871104352142082995461143147422165407233515521268316591602278212893986131378542918933578366728627758019550444945381897269918356292327355616989405349044894511341695587238123849858266067525629629934349316999558607653547829564936948321110337485083315012107676078332696286107891567222789619377393838200197813759540944949846841088385225747070873249030816170987324767044796086187955112210027305552813981985317661033750807179606689762413196404222741759204155935401857841543642454447296926266079046059275831616132208712081918234066223142505586610678409544460013128270429731447006076398959800979295712997075718748595086596285550678012749980675305353320706078627788146164883849440494201902334142541824868353747947655830234000629908732721569352823216157689249496899909319587282122898837801938147656092324435532824193406924105706570643917376549893373051250523297393684422945304059471588790045168248786989808233769215171652107240227854817244478024355054464357428796624161361195708412263401899116502766416713064652424626962412765866980581889843873862600455124843130764450187015063954554473322325703262622364623278037100130972533518431789308092653256786575838379591075626445679714912484564161148880051881965066016117878771703050097399960305590599567964479704393857605126778856301455852934271363526226981585591446676497212677912427793617593498844721779820430372248268264830482261924813912067072295851740831475753525772666018111168310854723818831184290584292668146491101420712848371509771351127011630788090081718019942735899549649581376274584704579599273073045175451626512584071839391571437155396140547508019396100886015354673257850557588976095571746765798981918212191826622280672309185620987666431168413549552357871118380820552148481544037822860602268200812722916956135594239081225830279677916460357428121328978186233223994264362109635770535725370119704796302728702486132501098982786685932106136299944966399031209344725997621657841411793204860366784446774313958966447992340747552922370911167405185094264441551603152696140759915294170013722848233602246936623412786327247609405817715387393428815175497194780261691791104390175847317493489549874537526495315981987107686839636479700658234509637415405990757645214966914144513615453555168762707082426751427549843862256589177627404668614075326187057260803919911795039624093078435650512647984360185986773148407120331158372584604559402321634306886778550869711103556874343910245196060437285573246748325981229078421350608341550238909517442762257271589375850804741063533757983081348683837429618005709387304381172577821904364493107819681200845405471854569846989464790257909814929081536873423195453163114218334841317386214881624159549296965404955561284484769978870467237597814913194128053019332067544972137822284997950495795882556757547069970320426003190587816582982949512776861639057437316394372033359857125929943564994669063096999717351201644460734516013633378677321663668975050038758239805485090758228655430425473512833500409015200215280946675061903077248531952211151810261438352390038742376262984962478457065129719607029447966519180440398487901273123949823044185127772340607545426853669375113971486990563009186979195274726205790515339167623389486779050862275960175227895090640172912863889911900225746785718375181817953229845901699491982129860379941933907114503519680500435730792148435270032263111543137882697181450789124821591773891215522556851412171539352425811513241640677919093367171182006679544397294117335367530714750872043393646535639041634262852454648727754652070258943834363961295228040537392228854797429805063339002230426192037869886319415017039366042999010455181534031237559644006423699577118097465130031795357210696851444920053141500284707516224558544643801997222808763085887858824385424993595498419105683276712388843494228491367664841271430324996318676916014371481473245412779502414151237874989185258856239469536590572406417404592071552632059658962380754217875367174932842733392620160992915393118561986577499051154459629129058803693619428394823462226912546895515195151020018309658296926883176177945997926598243598774155365182877930120585339659526004512160460343310121458445902085427159783304397683621871880150817336781629023872232413613382552088152523569101914763699465514533834816087541236513896414520224091527424565515992120639895464802884087185692864152746247687216243353458194884682797062793700509363483275368616470081795825504117448144045836137202963266021393875760974038777000620520478740823254556440961482093452130179918085188634183654567880201664495174975560038352973616789872169382950985726495790602079878993967492791636933696131187776800292546990822065536647953893090953413781066311455875365254055450176722357825695808696515285169099762251776604130619064464830478319911414521241310586303862574346360871302984599205585859328285196582235940389601834964044214411354770032330490899484965531090436682100413696892757815455477588687585154139993455402402759685530885513513027169661752251975038210316956525795621425505638476624178097741186834218317799997462613360546626662487356008411543652992456185025454093054992927647126795093793192789107516284244330620250465782006060454892489548262797649661966905321712710762026696515760890441497681727444711112753724531154631927850073954664990970625741599259847424476599809691787746714710624814560987874740982847263114525732469494269747232842501150252537870630677976830853604143461014055415856514340797702863976459602275557962396386131470289090202402205762786725602778457106755970442902166804175120083982442426055187981382925218783378505993589988153504682862991001863315082174443962940243160827842471538428120026244081916167710368193650392684147088154962701351298249774425352084401831570121174553038964996969051738073209640223148165346261699191851702746287641777437090941372485138845065879869083230828807804927815423774406753777244237574246462399407728417057117555540187217967949992101788447180214116802512154263692664036313981567707519674431306900110128810050039716940739739303967305180046537604269872773011508504881114796403864079912821994824388100133685131669905529894998143107811662137372322123237334995434035196835913458736618825729794498253836321555373600610054106495144417535381895527251067316775561061789294362396235711331679797386909475621838500921817156300016864711979695442212301600723244209140794596582883101856551119014608803990148188428732062300263302185987301084110916330202309781363373165407025906816772612102202020169343399920660013171938513842484818862137220796737645194541988889005106471884619846629028201141404887078538945253618866427103976834033818757917817076934168358209581971496205297751320831111784093763512374008133315015562377954369187620550255220045233494478198633806682325523483338247839614101966128063867701373053712971568446515590035679808696297384983919078179706723580402047235556996102067599386865857616418151972885329402688707073276318730323695875682034766609258606889912466368391963745311941895767973239514242935991282978390726399590426928201387820823703140123510573415354238889809905148388236985805111875859966284914976500958659120754957366039976583498759653999204117962028700226556115244491789721409882235621947338689161588372683247180664461957147262691529102808168880649834426375549295589973951750155851739094972119622320546252503084796803907630684641836589238649449775720845787913648213174730555738582755649857086368248663646800124575515337052455216682973608604246699975942728252916669300660456144512459196983053062300883323453941525239349950637038178404460228689809348414834299145199848458183304396149836739304204958254102485558438847393117256217463272500344150372329797351378621212399706565536015040567596263981472287774625503377969854064553038786802169258240091103594648873151774014380672500214767290105798937442664142268509208828429541952574816955490186650850972208253884626944870710908113742359634807096642101538957457600246601230255012054299358382125066717267768567711409404042246643257785766378950034795952956718423404260051033718866364907324908889195725164249902340748201249513106450914032148841535562413354992868921194696987050333048935204472518220420089118312739028329585999381990256384608889562038944132306421328458483755435242510410256104483394042809935761418045562617496445477217570069346918531510644123248455429155087627112766935304922305512428949666500070969020923278788230901660778846524107149712303058259590513708785663709363840133831290342158991351020058466734231195664267235307403273797657163462781800076000824329454464364329759821024909657887873617795379985065486214806199999963309204510547404654512009460432523495963514372995010304327514935398929041722639899953238200823022705069102956742901557819833513590799484060078082837508007355283938664715673541014819968735759145090808982974539152966549755911662123530262472696612733039607471946481881310504980116261391810194616567818647387670967752613866389578825982957063385337704694379417163080738749728248769085940580764209687669195800065523377761127808594008183909306477575229987025667191703853811311294863733734849297996077912826289517031476391704300797056716574907489507583430742207899841287021931175485299386177392004226853569621397263814338492197771176880043960515718525233135153440426040927928489236121233652721050762804869343153476638656604751729705810410894553543840834822692520416820888189762821415654690769707814837959028203148274952086221960754590486773869487825812155845548293219496420637990343681663544234915207631631527912381842647099966975455893072944398120324123293932009180208657285507965738187404452200129817428784651439352356435326422955600459317185142069452611218149002357012691118622999725204262082143310029095510873585799003320839629584469713402256027303897020729346738742678752935779314617813044165607972719042419182068325925382048813299651675159593461457008680488334738246518644355654638069772281250138771249544044768232860995531027938837273293907819955294729949786327220439644956545488430366799892547901181681188060245211486293051406934206134512477818721930168804947670639346397255381987624645415702110697273409117547677803268279301202910956451099614197585388378333984977232039072807616759417547791547395632228511738868381583151060214801208518108737507905989780564631020913522764554115036933924551251355886092417253256872756392269024295489538906354657367027496729569327362106204627964534090237539479288582856514906778612528658110637746493094092953194847623219799904658369034159286760848422425003425403419191518943914923628709760592377683261371040679861881368604496157937117135973913296963891693503344654383779013913442448669903418571908801712634728517913889950893530543121429753203135251522063068604325843758754526190559278887990989662344792687022937408652374906896750252229743256649445111450391624978224302892451618047583417255871871825550813561890482940405740896075156724911455539109448158868459931726285231296790987545851256745730940230780983479332425322053487215408209944074732496893208625539591136296924695033582008100675717343486725948923907693568229935504945464415078928189500816377486600984648116609436018060608113102784859194674346954133854533410673340354724379756704710900276845429914470623303265008987552903237518313361472364716825872034205291191930582413530401419954692474465563710112715362419496573260990315254450133759181297907154894869315613194914683587366821468568658304623185635578473774399236301936097670996222530717698936399491685480077750680188788561949468223324685846678761748902567587654506392385965108563690155279443234172474915392308394829497045397878656456895011130788862255473634414642450103477455009947051674855192089494243847642332199733781855087912274887938281743305109879682999006767203163649845418235872013587846645905941175284288483979317570638807574703859831495899627526936054510461088413074971733856030812323041761467952779397816687855548610647342559373230789417831294422384835562478174255385526694308552706647019608576634090678094558263333288230169124442402244256433109979869414113746499208657614819661112328881879307187177760849899410583435915559840951821979704614600390346754031646086116586626895339042052742561017673285044577396244790071036216984649088082060802102641745195588959181596928567825139643270640651945576231678911551867276558603975835344583307365097374772269665290837195724382285303855471253365139135235966104474283920969282153308683299587600036972020721239203835073848020578130999185895993242529052480289373965372355101532494694010711662456991211989866902249367237162291353819228863903630608027802191665020198980254171921412959784967787212794374703050711416758163722170237003083142907307642201139538104883829351703834608421982187641531123246008734749902122522947753329575184958210844454998300701907463261040292766441920745229477553790094212001224154709499021427639518058921368955165130307651368486076508059196248180143202236242329221400744899230430935196782031747130638449401294264159549225423607302941948472080535611627884766492172296450501974520353198033197886682268523941870685204436408298034067218160403871786612428526285313933774369617013781106694264277557697465407407306801049453324988040852960220181322154891016816865316607830730519972296776272478266865398173759632897177725058578282709652504750629218783254607462812887694058998778196855462692708192800337359075379217687989168273772744080044530988579581983701644133733796462741324284497189716773076131587690228128221451448054868247557106544639566076939613873173613349343539392535527016770695901554414230828571598218224567121469007707178344730337390711750446597779755962099538517758253490359559127403119307672944228766093892139840428634895812084154823479957125697256418219184315123034048214942030711072334143603594852507855230400456624347756638488218703137902667761488583858558592988726031945539778880093521170559951925112549002034986132704705884717875164320477457024470032760880960233191451033368021777260453918812794465692777801916098639451915659025830147531857278273995824025523858765130904655038587037709498819120666039245679988599116374564446909299475874779055400815175449858029661340919775283406254009747609903439437699368132572831534815516303028228507202183810159797987981036471543698027105909402171715327957041415695297183116912297644956745328960215528580651824657133832245196951313287025006002373722808387254885889356436587534109951693652409736323254662419920496693866954773088121562156706386843911763799070244104360539269335830744419398555715601950091825902633279150284027132658359665449394369010494829844885893306746861203659623829898113022083466275322388509513746657920069364471636291436968537939439676937391583377536151160549726030271801768201387490173794630103189881606694679616254225399219606626225813915548761302046808738027518005406087076865992660850181382407447892547265579723813913986910609285984094060663129673338794359848317284961840767366506739309570866652524077576362100250632778740973074133930269082097093960285563802806646424926512217867893333982552371488827401622307949993544384683420603662208121819917166952189611207008244857801444427757889696955397940728985436532578119379631206896935541411534201845675891408552079156099262504059110929441155520128141101564696314367021051004370959143174132815995538201273829733676046869049065271605368750553140590375440971390016859282832942666657767898649351675012717484316809085757812966126056564608408446386146362077847221194329081906498121951575455498512323105807907453979046820809151797531651382832064604266790407350062756001334003430780983725193155249031292140074996442856501051952412286023363574090696694550059992014677168323552414225934727090952883992940619443815396695456580691767007314144369785981781331845511299353624543190193455693351929687281134274262614845140092228318179835847652412197370019240748439303569782758175564054157360721235379559423926946691269029949695609063710240212651338901987759802905459351821045442614672667652494039987135431740824421739064383066229173469875303804760152429716950355647527151443694113664318358144500674308202624549592615967504662895778961005736622944203778340283594599009838592586978721440415098394412567072303951806829776353916252134409640935796406340254126715367240771082122002564843823169005422038600243593151285267015761234748464257950116850803573333694185883590304859353550013998400416535328833772444015103380320729795714814118571407756601875202469944745107902397458883793568491405909054137165695561585972611677671573928539885053791042136380728659922152737248052218023100732118368240595232325274647889753905420583291895875550161355621915818993438132908867098139665356999721581743305697265043957864274524605878098848313573272024170252446194102296444528906139351824921263168783272629661020072406825165433697511446308544843273997936719237469756789018700236136028054772967946121723522445117441493642178978856794533635864344057001535426984891844909361829448350266421581109585643101925544632047027292551111724030657208317328281769952830757503904413227768351125786682661327672523148989903008625017652550346143230895170487951079447910022020857767729065531172067457293451310463948359505799861428976023508796687910722329020531188428408323304813659327980079552814859941715488103287339028394781266308254207849397299367075972680969704652535088398854050161821441276288540006218270172224900290734520976458739818214049596115226729471794757627657213235247102551806061023767302202106813355924776296935634373621875337724774993758979772613775753616954979440451600340333533029554069861567030269016723319745726684544055348973150815900421513339814951022468927193048608416147675533705407907856826385614118981404178695547057806013995076017120263864042721729711837026295844464817101006004649111433261226173359224149961931044567053033210438480696732214128852864415957338764706110302501576922378414481922925134048377364689401675106219058664731348162016489280969094421033112015913230110601936449004245067271554187882433946485777679090200587360268759808514230608237328874592689710283203075581095682612902185130669665476100895949944982223546358815491545443127630055654061026758408068754686857370592894941496997563162776770429316350872122319619412724224448581478618893471097371734218684046214125377643467812882879893318454240185120867476267083081570109096516414365160680374253655690606779126339506355466455360614038074090990825085500589984884145834152803954905213210996008132382564277575174816447606982084675347458453029077553518401756863395725063951862093047751535739392194895554823955776955926170560238022661944972590282432025848973929361512714519639290859258108264573545534776899862549902402891851588840321419943418220339227338349746457516709408555474677569649940855974050950347817009291722899072542851518129459852249310514647505583200128114882537327449888622331611096060504060158027684915087935881981513244051228763879434906606917794389670445817460773903523797512546154619555685296899214855673674387785856123899383499020743659694072532697784699556278797117637768423641449536705471093049486682875128609704152195027453957514399937338429309629928701368949600209967204832004801469359521118862272991537522083263769730742286826054415756502579952882052345340521380364326458304307021138286273788138163512338867846013266463735912859580951823315562184677841720355999617860589439334710961583820902263983130381778171134068284424956730039144730379468492506423350046635772000295338831880690231341104553449085512547685094334237539042035857824844528230666693344594126595972041143943894616935678430923098692187765179981481660851948650740088097037296076602561996500825176804375760713403253021874344655769055034530956852684914247547971349567248587768619996549271750544828969972234092695645847178961492866891588458232079353853784069698834200379335482559697926388912253144487093620806258120485137344410228705610523258816491962834663082110294994896532640904615325752397411089751477846998969012715312178343336738750207807156092873058692231643617192169066280860563261783139868979245524838685772416109235469331925120913381979452992434497801065895989227538761850662527102328666573639629370449034269123187697086112892040109798214651651370748819280979367645011714126326719145794153110783853378769363610743330031029497031744070168165452147229653138314826689818273030169261268025218845790958402649824087020307677621696754769524113454995714766097243563811336239209716636445233923901844937893945135146366606355938620571839767065939735603663964950029907090798761420184276274315509819105283934197620717932622353349577504244672834361746079579947342150456833000588522048758730276672945951553196509514366460144368769030496012026994955591523029796499112750228658462365286058072850575573984766387077490315921407794736459070191569053976711847625420065809476542521042628913056337989829274026440441358990467169373402775906205296647744178857682272645933179567276939909452384154112340794743032668933997589142503138939116180712405602085052804271653766744235375357693482288556781586507836036496209223315023001874195534018210299654642956795000560105819345423762162011760434856612778054597143882552898350624361063437099894082003252453183298964151423252763981054944464448533241059919495851635121625824825060895976706632314852015822432292047346495769708159422147375832770041729212507815806693865764355309877600355865611616833133337877877485673324809665257007078278692201247836187345995854346368567369251852938707042732930835321792947268162337571893934249431120393044243797337029899314488543963364317304206788124154417098901787157254055717488700098753780994188137700519305854087216125823125018523553280125762616227925720350116898572343263067117453912808939154737274477151981705747200524724452716009546837784410065578336387185865619896038765692525183950343082511182748901041915617478078888117959863742977113813640896493729823045195563858911434577190571743748652513483227049635965166539817373464712543685849232554605479017097846769153638494078335602407159259754945775709438897538432673716732855166401103369240705062078726747872411381399480574221882091523096347146844198681739387674640427836352375970591794912082401657359505667101925222214433468380534358867930269194865668511718186086635077203798579601294147636827096154359496357043350606600918261611134547838006918853351522584721647109882017708409280373488873107774541664542469283591107870623742263720914757638531968448886787360831484944387519206967981230034201432466349989126491379557913072883160619879421269028328646225099958175492819787064316429695983448328825017700283186492791142401080728293553036088235250291880402989923242604188005096670351175895813207634708969769439118885045367377793474809821700634264076311709797466668873257750592341006810508258881644046829908516244694478317679077437047383035285087847269477561472540175756231675928139680490376740086232714805874092551631933512829562567304591875415878559706452376348751313317282788640311850179122404468556198725408373308256777601597524028374893185050519912443478619993383461154024988957645605830984269782764922815052764048165325632595303008914668282177224306774303939320692418348290095457551982970225567188847001613795591198803423788053183459600294572993390915161098504317969139768481596172965040005209212255784570683399611558514226312277239464771398610013592040368959165928926870968794083914608151614929010291236713314553967259723931634668251442544838841782042671704281453477590670476141281316859441908158319980770876364328470605989294598414950131587227153630905801217164687359896544396426088676855790158347272008029295752797318060871705296466561308105499392301707767324118364700737396827764297635576149390988783092747298175279508618324456808109089188392627679011569367241138622379762012843168206999950283478091772868870109506602113929256445152606360667074110314925732904035532153682000859893996320661891576986427709932299499512925210334429095857562692745745978256360541082285966107718790604176440974487005819413265410724647887230805193766308799803672030693964154465420615896092497870147276009542391018599029665054997154637668266943981200413937949721034179723521169444435153737579259534082403763811001453322771726058481722907602440391022853975782305232224328737898408126280603984217240412594285804608904352106901742921911747079188688613051761855425111628116538238088143612617619635736024302176826216489640004928448886441248446721515105014859988690126419149364442521344895503584896279204988594831342464639750400755651417045714340234029442353325920719416154161639077256332511384882629806390492503592748505645815341068831926798732136358842387303012454580197150455094179127578854102053031524369196990340071308681264041522483775307832883642476492112637871722422355124083959336307368265930952324053234040430891450856181240907339055897147975397456637517154996043142995689747914242394752295550662320648378253420610751013191819935029526759836016293923467643230614538689300714349489018994876789343291835676378443656755678394821908616980132992233103086109453061194348901974310037858498368502307082350429108056727814207543758307412995923511221789423878349532258691194623502781247467772740831218263655954977024841227569470816868641118221412027538257845263582720362191840016475381790447906104483380237886895170372465489454730146599596840904199293902389959467669339090316692663493807341105180192336207463701703861354774875418811734373038313091249732830783521618794405559071014845256199494634907507353370682166459927892516124636009646896680863152151926020024547411959184248274971417303700482284710279991120950850181349507539513102310804906310614376606466205171654283101068580935633152108241262986503410710715610726557241320749891842946493871868787645186233818922359210958262813964241208332055168116054554574627599952620212999277740813092739545805365895919436162327035152981287634148413773372477778987047642199863275561359804097792256082280482428628891352850389202664373433464027171656938262882825513169029361553518100273979892951689146585183590606473015420222874680726136418066923667163153329068775464157895434468973554052654076664397823331808677038629282345133999642407056747953088924182418170922484633638226997561618396475122271776977488420049524872960659463952204371864374447068906008141758244446607980677999933952733721753454560162449557979619906851332419395153489950727248965212847393068872573058237224571668252436652780315887310932636662499556582376441443613029559149812520152254715946141771526115501711511360801915070995020202264030720161312740367137042175292351888265759623505521292821618158301831561053786062228840085554076530528846074498623290489185203169014210714671724787458532677522412046449922912876340483914649679900767693191290262589899788687986060572285814728371809365837244181830580955073108462594933248726923664683751076883397256807790888477455008886729300135794503965541838526988527737515271075437291131442728194775592138061362840806980546600428060039938783824517161624555829207273769822183336984574575764384157449577144123360309751037367851775563962254032155877524403061527833115651321555198988303693478800614760251879948017272489412523662574724982994096333339789414077218020320653746168505290589254683620918993348742613941654680545972797165659349175731060506794259933030151183887064156911946124419579040546570266937219454428705751953447791249077460097189821625247034983226435657883108849885079698070658445331314492219816740496998503182339941917922462819032638718311232035097871817883514924182357291309934889418032508070221753549024012377625696698334104332634431494289199744491678739322022153847972804445354179842415588397065534775776690593236641325223320044529845973344498778236049322402089079542174029473498041095137811995978253760585694892550174649703521331673375120496974969987715365217010250704404523401159983735015067021881004650961180688612214696958297332313302487809068909077609757448748955787809918717952836484786438101494691233393627924274680852674499074797557582497937408637096955599010559222432693786515740900260808597698190439345100093476401208133408420184109776995968199828081862845819733195762372128925275131242528882771541806348207254813070117375328597713819876794356684177412121666132036363816167712841296758841585243084261945950351368161391487182998495267858877850845523420574026105506281677097696777509561399073630921580639182220056092141001596014518363308863084300283840784772376237721196885819959387318151035651243980514952473294722080970535030751658020126902568432925219290108120781109154210982123567640837120764817884431216767095803405848798903051753324106523658579185165024760783246063297221574601540837562258243178001253056134044547701545195123410506816192034956509024649982444040767231884681630498252394554802786862039405800277229743198590100408894114632106687185307870284802990867277107504274772441312118467608717150682287503089923232267946654460954737734351954249728971382766088205705555273416429477779182358228680486044516197158761583167160666947395465465863208179076708618900856052805954683152185024402461096576144812192338395990291793080726754168343460546094715632440424381170522343587442443580142443559612296402544292759981225741111965486826923482993599759939812620573153067706679672870093705306314283108271759368817921481652359922029816560521081881241057056737782080048617100600723068418304220552620683260166429896962292687331020698469235774534002891161230773531515283715785913293977565948440019848287928605702614961403732776000886193179137305231348717242072993075634158746483229294152613885347763945379012468259412273447127798980249053718482757564932314245419309834213142580751538151732410079127117188562406922347318882049495910419846695031297782927661175224014111656481558593351272456120162067322593413524315345350281203292871691637499211130969784521017538626421940273236967822104968860072930782245126800469975666371290774231641720131353926032329940618171534622791955620300430050617926664071086123660934175141224302710404746508584029309327649910474381000560802138767488586235306464656016869783612676382591155452426646648344026977431592966976102558189838559011120806444271632511231514615934451741243525266808346834546376064983971098365135052769530862151048941318056558684619192915742366080816982147886226062131191694150177067926324110978477822199720748800566387532874859191477949019727425329622761794917462484171748301020143154145647873262383584671802958842175021182169179553375051158283827712712226970089297720786654367269189475735992444948086494798966564618912315392441695858254156424867254808470169090907967991405164597286912460338299435673345483895559149150328926103248326184553090987529782955350032566260708875686617990884732894444926785576316771463631401785742191240346946212995433580264777254844278268770253585566238266680958407541980373756764043377004927117131096146328309014748091161315515758294667190645032726066902838559874875563368386166555078769399455545375416963733107743984718805062940962406173297205459238546918478363952271120717246366192537256493281979143347491880012380936703754055108702199369223997429046591722808980205716827642450684555342247368164073527292455363981265992379853177343394791237712761757230747501164225055640659998635905067762962599901197253103625793039856802797343941725502485301220556424622066809851946293363740137800794409873521954375154868008644677798104165514393582224295659284129218499647584809754524199214171068976912592594668092949026674402414328105534427931890051358024490206069165490833899451814874505677742195385686398643860285733701642515600672972316852092624925178212453835370977018828331581428541900516673960224708510471534702232224392640450771080339216510069817403192956496678784464899364742240959584973194643894087242837597879233965598978428084117833518423458597192346917797360387349589058659450044181112074525477897710570579132509824241438806523618657286667401566366149160268752744958925103932486818103821871361865682177925691363178989014370602102776519761614928253230013807905398585645991564312175207797032809249553927799805452966625321897748420381242635696679443905937606951951127120015733884924776770041974747418860219287985666669976518504994200152980426033557574089241665925336763145869520437492993787507856089519423682930395924119732261802531183203344843032045410663964585744918850456375472111882934387206520682122754293492020277560597991287788390480252211195015337049301333703061221315310503110449430914387727638755698706871829369475604001949952979763443534021033106733972348306621298901841728928379099244823719054445537884059079846240938120925087419241697456005327974777569858640825766176558048895074572137165389962200679538297792177379297583054792958859730874945281627256895451619623632004756153938444889556927871843950604936110487119722753968050814060583522985374914707101774744494228007980694352579349953952576456156852323753041422553445083457308700161310255381785343285052938705715625684364585296670730763451691729181556820218839365869932075402832556397431717733420870164139439137979156603636151449718313955378309892646535723724047029277989200216207581659227048391310503259179097641361625988425981442911294416462190480055615877890658479048662253611764944663614327785053792472125862049569333822683277760569167759618763711110825636885976899157060025614586225924242880268021589952722875387317060474417348280668441658976242478314391673029760202270928984789743098220815380426142866356299870483537566368642617081459021119564152592460292313006045292942755494741533421755400423640042938378901559428725109600769724025019237173106011367628597119234198317049691305353376083673771121316873133627014727788973830597334934848047322582315046545892822526609265160491567836362540167341682350405644187041511974969804023172790384770344164667857355327237829660705839430590077821196038497404939185328976349427436999422008422249786923285087010549656040922379702493035907026096028072035251456550200402615263720972460309653365095745240834544412346022026067520835713065679375997962689174579071009633277992107347012119499171838846915932275451384768158985386031817807256940039298495102093718885224988391617813587600410486085746357459912421400686193339866633162920701357096920017460640683486948496201146191761274762866462006626121330955044423363930294140369152526532495311552965962182691286027871207480166628366110670858359394503570966537729975657921175231091837863212328432531543401777510685258215703171411028262097545961500645057411012727319805245221496511553567652885816517861336846056698587367617548907261072972045829642745769344201745293346681403638365456474814424466117521134734243938495192922165659047727797473981289307466957167801296791466517923579674201561760710532271228079040906111867760213527280373876959796897080517251859639068360919389987789482360068042148079295383816336238703092169518896513280226077366537920475923883497807678821294388342866974051140857392739610384494819724656914822158521203174720234171854501671909633840017115079890251936932909232358757850094269824300233325854864109946675495738016701375145892168220688911387913200871820030346853679046314349415197901291830910204879180229847091752769600802156011089679655791285791667290102957246392495399524768660199959412931256302733692583130294879794041747125534805540346462458589867191083834004216000290807743041137302243003100884969184507701751923562753448510442137697589787003829097221782683177032233476193847399605770035308183573906161053701935063370763131290434721909363297956720562027018540532768845310949153212023972697936490031014191024429868593894129847522824980290485782714408809410840899277406296083252876805670982084000000456536787556496743513187387855207826441213086176970370442793016881649603763056507000171090745454259459459776099989827763651909916215683165034629155730331508192432193391608892042563399255612110220103485196923856643044293632409679526835298323481002694702459148696140509603919315340023206140650905016412848891380863187821979815305951641161139725043543749138511516982527531183448636785708298389366917739395039396250912491027958573865262273366692474993280684686365884791078628733558079499231740844043825598238192994605853637443152452309057225651982216111229012994286892493180702862741640808003432771264866833144532009142886601679028885338825252584820379616809606977614376441873531370798286178997569614203422556798643464899440099062131418704944240829688346029068461430663279672872266629012551455937437956535234643739237471120916357375972296116074322453947526146788612026159699653459067341254346288830101055340318687336853546157579789730458352380781154335976562202448018683873154999990927977177640450739374432449054350568192738532563626126436198377243194717682414573619317736933266161209276142906332134108630702745077783525412277415969317142115758001219666699919057796862743235777679890595787698374512359810740221231524636933690617062664608996822598188235710415887204893455306682891578621749844798377442153775951566059865464604498688251332492112438039659262214358207238566654338783598493330812143805742719413820836053751628516408239755646564368839936310819721085945273195835735136778513419959954874746272872992371545203256955610772221207857530220773536215715884871637599273302765546274700263284825310421832102601844422496062557689595137310038997761555578852847772521896015509305670551941112886729205521354292722955722134329548203266751514157755650237734508004961111161429304571399164794084289931226148704363385960834777912939399042559173408888299122880399314851855989930491118336905316345548004321216788108749336784768453666550263387058160325921972607692499614401749627533620692012593979983939601131706663234276821859954595614395999156517619463666398102489681505854904007973250100319678907614382726115613156963829458596354179104775084714075261557311085384664286420418041467990274020170152034906641470198364596033283205826462308503009377613448187312857787992796542349337827968018690149022126045461406100380820834541708323880700373035072740328725560508139582094529550356214968400509527984931385814308618758411438768104127126415483901365360693546257811567817712564057049372797208504299879579945204371282697512399784090987696225252233185761171096123683225638798393606501279035578103135999644356216526393198838542651919521462439138463238105309334128486099969741554120807142233012928297566415422058895416612912183314940114218800468761931910764968827597198457621126075464992633672389750892880407047301802175566760159594024209954498099513175260508459680501289862532736517556025005858897357593576025286045539422678874426451874550062265412825410135171199224653073852290480123224906817361027310937729219172884405673844082542403243161928948549094313998939990563923610711567588006515887595422745614684817000777002674158513529839654777796437236750901558502159932492485530276658236684221077703533615237998249036260524994130693545990042039534401322923777290599576249561115258802161199502681785658817367081841707106093357025203464353697383595904248439421140282156351165785398390655064650012185780919927635075031786997939767982307233304190500016514058473255376735272567730372736641874756838847722498694021963017391347079618759896198784907356441310985202950205464865818916208907537369883667659470944799412624965355633892104557844565392729154720456718345996225289736239972113827025042870373111792307228010663343685676246168901864369443881350650578945095152674246073938343487410394681928578879536539828102964323046407036110659394120495141234523724598451489314648023259088640110742304407030290039436332581710705507720410778078337293508357461871993836633990767894551327201640654353819136952767976244453733858551596894356635228920340312684239900927719002469296052451285596860297031377694814064739475928849044615549645240580338522216940104416469048870901828164678185051668612493284111780140886354925234007323106094231323026613690420837090917714532330032127547555812114607626288198146741871092896070920212898536947034171347847424433234359103893704347917947210040703111881311655788551489637791891384375826555933964915410604252855544184231371162504760066671399326284945941589580376651373345836222716880141443294879379512347599543341294029435645284447457014535647163837130726340796222955901251723767319994310586505504720646590580187174957660318925266595505167152140057824699638018056839771524476983937698664389885138975641746963498248514761351992651905231617352461595282125462479381324533168590368031101052804545834735911049827146115069838398323070524248751183746548395994657634293245972723683121807777809294430832372477611241986989325822072445387558166416830484200448180360399733430949273668453819113539432727775897584236168785508611153445729069403704538823178235741701076193612161391407211470808168638461450029521022029532243204581555503820680497918173665713051572691475862339329783227502916311929553778853870646815650699334105964887767429751297837960779734035708390281886081999562407436471530869523574165829082695179011058545650110641703193079814441756319864155132692720879674977655228163591821883224833708117003464571085031426024196309421777970293087864197081595217523695233596114569800292658689657584733868152603260466963311868989259866562481903198560271515006726269844371140396043193006542642154433736009830741606351027213304120899885311789650763732092340603322794876336337720743581954553490297749143441280813860614145833607394500914942316711912068010366137387474583223375897696850856118693323491058311513880757982222981163173017937838850245899195795753718969432037644058855638606534564481838413513401281862462347892250955446617617327763942975785187706658673279945056705009430411758525713682839767306972060494631311439605434251192226443637000576819316559725321113674914216893500920576372052951222920080634608510111339234610609899208599909769455653123996174728959879296297168843705467116838133983690713359970553430977149690640910007794972444891848443022014861495831042350260809810486310638123920761865144145191846594878473218983887314388673198771578170618980261832587747256939474988578556924161697378818711541736482409889112019468325250313362934872357115995440035095520810833996621245336105506104305686896299161930036992430382156931644362651426019090354420513502403179653886035197479831563154371638640200693836001873828790614341842458074279144564131465549471537601678693241375118390953966479388386730573626010643883642874231089184466441127458627582482735685521518777248578187054616164257175939374461386304496917327702430562546487235282502280534818928267123128218066234629111941130748319692536193154229777654543450557875390868101900153135761907145801059571843803291559330004828740912806551904510728600931219015675223772352474090639469116936458388373910810907292914002187295887477333102516883828447562938717970251596370389056233038225442731910564933828901024530662563971996953800660734851798696369670754684761193253734791043457440158214284580374026593698510457016965646587855966015608102618866935771519859592017069018517176832383352606372607050419865537637749410726108269380958460057988950487209945668594786188653989837245442546214378611907405537722837720699202998784637528494238264305069300764009739916991616669420230298327691221340253432172728423205078148700845250811981909233081742188365621841792685752512883244245652881641477340266842085787941829092447368300573012298133133981942254713763602567076275460340765827441143051290499995367118992935716463288738237397846384469907878996201665143122377400450951896564782704002740614486916320868252021455044130969061453101575829827579215745876215199826241839321405377095681682422117273846588805010939969515518044268417292341389283503409958973026007463399370043446932550859069006923631393852522193748277766030719420015549600023588545035526890442664299747282641698152687206152179013318827852902996797608415079254323912984446272798845971725497568612254354379091670753912976217130219502595389895946478900056586761233065321014339425694937458354795420684544748156452700873339889026136561635950313120191564735003756479574697766390046968309754300281851263748603194973799924209992004470066048959952835501402812224458266467724353122068935786898530165049462652397973443539728380541813103501510412637843624173274501904801512675945046732424738925498446473285952539259089425321746505312043621545012849234406801538820260922272952765061635681997249046496688653773128173643481043956862901334441047720091053580695538614832109838690446857256873265930478970184164758106490286323056255960050497846966509104161613101157758624405936144998093990117219206732396722256068733929025406917523016137469709393226732274544949367732347182991092653070868800242237894106519574986838670702314840083363052909544342509617304861064045274104675065485895346424324151558515067734510219170251021685849509051681836820252089717858477850534720733924141461995652173501492183091024617630106519323237563264715795895295130988915793064264649932390694571635779451348241878318658780836301636581453130407108036346969921907899704595875807479735174297986145581153796121093245831276479653047586483176892554551338200175109901087395151156447599024909713577465946783995218134254645385100302323079773955992028717803218016742006749162216911631286524665623870953981934982732783829690421597838293995131573231248466829513157497671283865309110420827190649452245649785636078321651036508822396256373825509651964196691981709108223439865459153169285139202719955566391815015742992821131235776701599988880483234646862194564155489726233944145236621427865968185334314212466081964446534640549551889056701362615152147636641033909023913800402508337661148009837985221816406292441661775018169915652347326320661279966895222784386627793157093657672562846491984078550058686882703187538747882692912106903576113002895298617260198097261208803768366264409515943382438298886816370387547878955335359304629867296360144651534336276172733366745141697701110129361039584237594830002638277083712838786585318881356127663827520988231558828306729641740882493826016795896770712966747858177615305251874813135450865690909792131752985273290447833522139532669025976816874660532744661473924929102206513195549470550612304290807675603090272324370538637920820483094936178989400320391761984724423513863154250384427966030095500134035412107620062783600213677865957972359074478299202761668633955859066813693491929635826321152754497587728591047883924172896772750649380715997055321501261855591618211522958402351180532371020291620360715682212991916685180593415460422672887214305643849045781846722044677009404842640661869216241015194701878670382623134478585771978299395458087353776717830358143980998093314635832757584058388590293843513356852326554640275794204320413113938779105417788686213540186197457796510525557962845347286314192231765240200008861144327506785136428169438387937895629293531554396842467212557877679320332558621085275948533560807140545346111406527464131551686931130959136252371299935945965867925717344064406208215155140759155559199678812776373068231329542566213480633090663285493753676307437805799169541743812738128036725166458980104644887076684443744553566518804922278202285993820688584843242589661293686312122435416081255944691032150248934277856852139139742355304973517560017079071094695356777318879045015108956687125494660911486112987789590743170237272821327823378637757214646893783676536453926178973331301243096919088475761020337054630763971329939169172733894148717669424419813219388082679681577646386762157267867278950173424985366411678816746594256084069312017963548348299247323452308565044235289743354996828287556448160898862025412404690449797668800228457916627774820775341339280592170828416904592363978020972896637006483061036509370053138369717923011500120384746749388109213727749023474332927676580515769564808421560541847450354058231835654151129451031163486501993412878343938871912525758888913850007988403352936414638423287073066490678122469405061636261578788277217577791763597444090682731907889393419594015959101430496156744839930842333254173224086210638901387361718553154327096443694458155215124772502858951004343928333991758333990558931773973449063388781770315730692558051481110117705071411175435680215156352073539607592867302176126581858594316564017190026557612303071856398114114916736259445930558258968319532655573931208994587883148582559688553200694826205312137000360890948676127582110527569817484258461350267403784279374908214293561034884730689279641969176121615158907206049179598036317150289332474461065139559521192659863573867240525306722895285131674076922116579222706672887649429098117129313706231933454041284127884256524633918057624211240119719403811914923796999018105986582349928898575611889038675734691718335112492660594284267016732414237242578119137275701872339861888087643378686818516965008652341957955321762884612368753947288426948110414404665312388465466484801410815761011529582783375853044859630348950245056442006401528266668171142994831205447476110369452213751983602910518459257393367852111698841280567969386046422165086924382111260495030774645026675348105994949340867758146149763042323058941875306280715644952658486756998574443319295015971974658673427161186255935874631559440345295246284047443899613382083700617747338154602349464279465376782818032513853632052619200310469735544939131652281528629588756851261673764869176648875881990637724192683206501156823949236810683350729877362292565523657461557575172309926574265920385165637025330960413941404823901232992169359910542952472900148741270103637576445658351384629544316378826334625728811001363176010779411311384940316786299221721153004021060519017870464586875214557703005214460861859577284747798222435808215547582048980751469439393646964489716206192157437474939168198690782444421341561340677103577928567075915316170890014386052296549961661796202662919396795146372081474031219252373654207366658227138038530413883336513079016416911883285539649785952134162740231883546268111213167314889171175235227270613274394386845028112696676364367664465081173355530297955319804818832907265598277592587769866689549094262037368960485537313528593355297430193081243350439866576646812846647516086431274398536550414205977276762486484053088080166316826147006537467043217763871234776636621105042023235742354386637466637347810084424540844768939277491671527659561313664104402975037678631736984267866959650183565462364534443057866024166122774905491063435817016783934319410279920281059997009654911223231250307083671526984055533956299153499301184032541813580102967159010346243544726051714143255047507775083240002639429616548070793319125381424652608966771221046496005582951551273779012227245378900648944319881762107665234550545205559560857860194503751039425779263547905932546931086055224442964768520490694929518429039084369279218483404274557382752869272009211075711713924810325838960258052315091709434202841680129463617763251559442454983303085167058798661009162079648652383514425644170420516163888969993505530831647037572238003877719790584372217511652121339759068030191619748908170587244497008781301623929984231393526226135099299199369916639757361815268445783166401561634994147920771763067763210423987428681653005966940435834927658326704733346174381751909087310891583415182116538118671010257798693572978038054911988002460794186211488459298640231754946248152529608262034983117854834862394069360173736223743901117658289312795571025150333016174053621238746201246198900140374642941237966587163030770714018175226837526410918310744138159367542653789546732794549626927537199130992036322487996442701204253315821967145178595697774481007157420535988795752856063359423063093944583429811881903510272029054333703398196829162037810714425634022306883151090994629072248843738969487261212162242662245118818557571322135895689784868722703566674381448387378636510983464033304889951420679730378704934705751449100495763794444669078242456187299590231912695852561148342200580702921305437771925034665182845258989958919148680637199818248271196557058398042394829998517332989637747502084740864135870124472456731549884974799314621234854438635444131076922876277596675819919162787317420203898710048596431585497681946418770695351386000102039185326043815347623218769872880230639524894371010399907758818670540887121523652195327019861159026571661553599759381445476849329268358019408933387425434946480750310230775312613079507257653495788396630916505371340252951343985706464722759558966271252390988019303518531124108330807325134291491903899592338918519233949587149183177065297913111495069287312710607909278057799167673023508081596617495474255757839005276478215544223559345231596224695287251026537532595469210930219886819517866267731227488153868639150887421455242555903925966531782500546889772622084405361571418414084581597157884111626768365738281853382814674354915254124644197499732854762765976123297822972296349332452697586415140046178645415466449202466335216955867370440135483385898663493678197202499797438786060782196213991953579959435861528790810990818331679290741082536038163616884222255096816956241183521906122358028014365364002471189275306210910326533591834023781193595942164946886172616006573497787778306892341978990610913466651612830891714382271535811994515212328715266905493362086187595919685701436477386358991270713226871324662661248563375417597204843835167137514926763601437164608404359712199955574754743103716263909966530776423574862786928015290741293432903502161537272002108993939156266430142179768078436171637425127300573846616588413558625092703697649585147913185747334927463786321541190846033266741871120134105139296576436171253415921683525529366286258395316098511267036759050825499969862890904694605185475833871828295945216235163878218299454521886354262305931970968264480244866497331688766783444658590893910803699180972450269857633573130926750139858820571412736586599370900849725037710879419374621628480749402029117432600422586752413904272047110072780045248728154074005772491735599260838429806714074129836689703344913771137791049117645440585865086354689451250158867257997053433871934236153124047790946057723144293279725817925253106156968996344883614311951896521469792138562599436828772807612564892778893184669467600826713355593733695965302903280091764644070774280881453026455552428222820300741929168320385224165902209176939156477480361293236459362360620002895336075217830305447696622674558407063042294248423918547882485423133852667388362946334151958496691743424293282235856309648880551043305114396387606457234984751344865160819335774180823145621158235460695518436096996165585522433129751857137808148876716894247627831601607745412803337598340083886509639371122084646768510795544064470930154391730267851279838530540642932662392050047186901332851044723057778069797961268578296995315387035243757589054177356272378932491885259839515825274762897450777169085288911631024688122229947659398606219219297678185921086893145342674514393453431563031500834136074552593100064063869873588116047564701607517035817809715156912702913314267783981359998304815821905048654563381039313531528583527656798161798715643738359319967132715127556914901880170839690603928313684224959584816488286579227659185309442923368581540390871103771217929771343484790305581778903738768065454551710238695731864217632612932179279654944009272951385274474055659603801079093754362558838756989121544064850250614678541578296138089967259066853129678032772574020198598464533021188770755266922273417566501628748572556762377612254940777733104067977658926624971134509470640097730314093761785800131229259581587021730569597358402639857981711514571175004740561753784893405358211375624115112714730474183469376236354881786326852729227609872704942214317403534862372769008071947619739655251104692436059697392444592599209689315976615015188109926285506926863508215011990174845514801864602971183354671628709066564937046377938175378007301542276154515298933981592468835567560427361873785208958989393004423170462151017687475006269187479318396487586267150946289496316175566930223956996603034255408027073688600984418761543024709788044143415169615507418338873701504412847296125395633997330800087927061968029670232079434858872111068599546703996335699987066389408925694253325585299032121441712551668699027568110245890591559087199477752941377864975139373518050942343631133821389745365690028101241081108366047790428101192961184912825820684402377200014919569612928866848654943184918148054785218565062284635709389281779895751642493642764292529473140943341472660503029414527442931205601237474014537621066209481959624065939941611199521912008215490202212648825733099098498549263363057537231325377037222055277947644324507945545285717903745807627946599027542896861206374425367322529448584127933054214141106331046001124783727385819871335849498627347519329864305207210373906085842883288654528387858823300239439177689107606112001576705026201652105701356690569596519895144406634055084579694699724931863434166719632839814546499954032071163338721644558344613542562810898911848138314779014282148855109386934138722885462924685050992856441181621732425274685576008063761535576143421787382610476609386127630148468721851512005158175502195898425653748963997362985063643341896905341220434696188150379739867429112398406399184319151407960753895121795183546256276007341631221579500913380032987728071177679224107254027254545251631134428818972309189158224637697439726157325211421954453864300186124656552970852218820570613386374071359391209216679998842075378281651597372653951434393350913404188297277494768203214786642947867267086955687927953720518453240884843164377986856393512195131154889179886172683593131806991718365363796425690285268862577009698980610057960239563511323444252678453907000763710812855147035055743345101196947250099944638440560462221935536760173815083297911536034824572393109747597989600032690144031328104806821780770571337956683354450577222232909549451620689885470779719060850751930782794168017519833133882606203764010177621520866778989385965606375560590052827525968753497605492495319784601328467733968698577077217994067817588657776582427619257659221712702577136832909717615862106868879312752040945791390197758594768611431727450219510120073580448581611453273675143363886498572953203665144302409796233624347471711494501636815216913122589080036585645937652666911113665632504642465256166873742546966378490874717562838720799808740866081902573840809693806643623452013695327879044915882372461305869704674345337570911515616710756500661229926485736671426827757668858798860818313657690051173189421214298826178719741335425606719955410190586412888770074253722604479709046851285753453141557995468986857082029102992358417712801890071183873287287280852030846392811241694641111583411910302955682710685782048243676541024936999334425650814908184955755573289576195245972346862354663775110808312073558251295984831072285105049235201712488811433319781824931741261971941925729769891023490523350801160305456144936773717251873804141598623962649746401725624127977083559221793262682917926136175636322354113832926527924856605837315431728503496370009794818816701738908665620664968018932034776023216665234737610511506054051474322869148029990767494736974753941312395574496793877448433521315775022333597475616884725847843220902794155198878804007561347532257196153125176590480301471110227307493531799310622032567384855575576787244408490021355085741713278931913383003655240212336137025464134960326199350950856453652981956106974642505145373610164285881349094312476768844592737670352931788755359484663667746785498842584567920852256885202171119388390044960255750555117346656060664968178620859786058193525106883396380411112334720961053352300496852999046048289010673646457256523900350524896172535119231727987397179173026746963196096822932765216162170438201796035076046392199378506307113747118877295907095953124939496833824944296290936307376551907770925277885866766488911639706951907027928767970627118228792945169373584185458467694837672199404107766975523390031033499782374298470098373855965663113287900803431878277597304575633479450844944878617540306811750725657516813755592526700141883094891766291316949851547614028322115103524246838583137939239676056913852591707469037934870350671847509042418940953194127963437092026416851625858186971256102633201733143645570826664379843022310813655158424650703849876068623633303809370787610439319140315720160910488945963423498926356258664358821228805506512789499163324393451588815418451700580947995288036605279522918220478530735591467964907289431716226619296138250194399671478468277372755709251784273202718546605424706382770163548223339076775538227381291002629589381029132296879909393073539888607398142802856732902645853530486136324890197141004728285793578567023957642641174367363963609900429015993667217949307218910075131191898807975349642180274859409697668391562424061650461378507351992830778552807194224003113162277273930039690070234116170395886272030417298655423460687759118331161357683452527053762327025609835346611062381481389916820246762754525543436916254819023563395741206934504461371106198820755695560258272186327519115253997515099565242727466966628220026458067133023315726734658683931281596006697948337199904559597276974222786749905292275565340109948143586465896118706495475348384631843662488831632011544066818123410923531039375273996580485400878305107870588437615736333551751063770109823060768863299179772854036637752591693785806846501428566264044005801145071185383106127571230800613713362446307111758492255513563735776416241313350964487199457026321132164833802162692834587805174700007248536192561161678694087914310051226413363601121170168752104566094767998774251382732089771547936068005136339590187664369806655402941569774538026604430244280210610558100394807944584044297190922259439864978361476903738109178065078123669338562965643302597897100386573181165402566740134379035885200145870174294269134128874284132349029987946717386451839370644016098912334173220324717793689066856545422155577766967035422834213421081342663577103717614758897224022831472691670669294936062194553115255569112287900204487282764751366940935994332944434559093769333738111570998901094131037166646141842631743618586283918851274242709992359317341552991942820632416213895172508116661441844952897347294626193950814150841765354187162961621078120238042172831049448386806261027471076744902164055623399431939105238474204270773270400487072941028995812058420780091011152909813241524699663690749483065511597422588015669788543400563519438559721143450384585164800591206268300670645813055631532506824786512217588954028489725239084000873923923525823912364380830632844991591710966827527889730833883180462600676612828267697214394187115551694681886760663543890355320823071932261061935972240007949370516922561440540574163932549560097864393134978062841325838920150191652567922589962736348650978268618755590767594165605111280008870028179497240713473628281870114908753062861925971781977830884864127559275500115470412130832725954870296647425912289956121930845820899511994060765476079893237265715932892469167858189150081321144646924592809522995558483406162885782904341662584461390379922082760839128554910623024297732111166671919221282638392201154983207118228245230886492581018411250444485149476662025243111142893779179992657262392323317202400207528776551514600402814806532366100203035753834942988040065059850337710056537666468296003596755508318038547681388263774721658241554530185696403297924695395559079820844614174817265934589680734445431068720666117040013017839915530871159808260403431710248100962659499502869035207947278899151694134158642873920993230669544742138034971923815569137543822154709904762033278020247757393122203197454231573475294889164930351737018685974667246786412173947283555760963174123956735450940001840688908207660989073863971815756589175685961024491173321673632591087810901708478906905127209046903453486251010747797499280410968861414676407508146065542112362228284433366814982364062499621635042554589201822230574294009550568975942156447302913676890091646242445056640748102071015962381030048556827418008828818060115875835016846048440470013208780409129235897753591854369256379485986109294936981748910281770786744742740056377988680295580167005489207761983621154768094616821031237848757737511080838068512709032193583315677003367460538631663811581111090475634013916153191173067136862214007110612851397863915591196589319102441705532997363894122238263190544271396869491754106809422166021888406103350939331424452677600151130707284403851472515228373098303701340632748645371030282141296436953963884091651571389773467743624213142009884765504418065896962728951837230268887514118714469311191186933826996291576223410024622390956533002098034240786849131922919968027194182679357897937869665135572795548621004029154246375221125527108326318315907448853357638970695294065633998554159932470144471679251694643215816778997011053844011455928732863300343190230297218824527994673781463724654859191429750852811909348781947868065843677792615941256283184884855278151393604968705914847532228117556149292539544302022532585070061018947338384070240001817670764060729805281014577621196222210802005924401973772005300259864131293695536405397090206472725506063778817375024575720105052769251045526891972078204426694726178027934108677905619819611700465715803686464409178393962623007209290104298207336969429702779152617465526308268120660995568464543669397267000757543629017793775447948815297224068286755338580628989612986448230338879741270183076189216539852201830154187756506873329699773610809326759984177544149752593066620881677886959507851637902651816598893561366867183602657149162260008786941853749319737775674292151424300589226693141225629611238665826696469660304182701608368299880228885718731639270892427942869658877056907242674597373492286093126842083034326702361852123378862646004468371043247497521590448012608454492052597433123049037102800582479883164795516706097237451747751919564117409753138713607617420116962021713727141441106396968170831820187994449206040232982903945061192328500884263487460504819537065898891743690126668187046036785027921065236963882382662554023182841842186403291841505955111756040495436870863383852594521858915611387716646240916214667130285655512631726821411852452595436134458903283636178328781492494850700120777029082444133575462993423660448685263795882430358937726693296896224739128877962816123376501269392156371582051716888433285859522488401560177036796423297875685867723164666772553295706333146311860468299868194843671535169354399730701484410493108115577970465963950281065364410570068142960522697748099177425099059139369894621559895875346918350055037125787813711767836786410707939792591426452962520837971493754538350976920661504571586399258354487742462623373041810446586394503560980736105443177145653159298708647033919270662371129840657926099845144358152673757244288536317269767452449630734300437981544400935642283928753468858744826990168388970452354030978882027968062446024435773813856007410098354209730806359949337526486081960787971134071651837116112155282074399113833569950989372521766247304516196604005984968710504323533600480161515158263173367616314339076510071908692903014634362208343685461550486858204524499055164924250392556892849431141727902940062695799785788175235020000795244333675100562861806421169662380436954602263356246516172662890609753458561513514229901931207482006387361721319128247270386247283511444552771052854501305881244082578883054918466857257846001793412520737327651612991678612493785412257130788536787463898273043718543382254581461895981202064102108943830929617163228556350220740228034713743272355065687523640817139637503596970967033469850392393114114721095350673772887634455401394404850691510008098389893191501105352465907528909633582618831625734321873577011920448190720850961533746269752096890406961547887882630970405326579330971463710437306347869354778925529425679741727099831469821316662856704728583747875795555346754019655360255975684027433258947162311920212368888193021311128746640883403400243210720350517980858324300034021107263558444392561776603671301809484486554499009588564729702724938938244729956369503121918619771993343473617324369361303498761869032089263206983032248870465610255991603778342382542264115134813099420300148212954059965330813482504013676412267928576803499275915129242347126402413778945468489937724541410176863979350408229115553415540435290601903883741540334864263724170965853961317616181443269323413067234745255228440214310275952831691052076285811878397004165102328918618859685700609344067961679319771463735129330539005146905840088608822876642286919089145027897094450747683831259250647505127320109182637152026866920918850445580734365157563178387935427261378525645042773790193831397090245932609381004822213749410098012325871501292529925619899912824514216698052731224339149515649342980397103844894803721575634628523367365746209085949470765336069093058430801912547051793289392740639848736905031212394059515765017763895127167312240682970051384142185289995537248965224661557135157652688020176216571971397967668726213970633754106525083294129177266469321735468064158579486888317237386925336093413016832378738472958631503607109107003743368276192342075246136304012841528214222804981062894988420900220972859436904694368713595666425808432216633802963483218665940086366711018590354898132681259485580200202164231146544580274757466887021688076852029262340222545328954605223344054245833534606998950421540239127930234216676332893887468253146280916421784639660120987016448367050300237380277486117445903421791727857641447681743757260811266906096545587761265619433228927359442809175909993702546704147671875342529977426251765986579454137159023112291679343888316779804445582855260649160413865036529486780756980079678778530040319004727772530367086550530941630781252487935396018722989005080226091088181373721894224044399151003997903091087563952826891039418041442192178744606005899909749291897380098554741114116242311111355883279693955649470930086959503727939171253860259445442513093696233909260822452747340050463194368267232316683876828404807136755121149543979587651137298135321449156427592747564920739256025221997313066380218618462552011371478302653942632864228364597974497806604961888971869009237643092067048234642790585134268114562622461528541467550966617110869390751417876465256427472026345384642502044212721163097589629806051140911741123217620975873203557434384895564529146052961164427082625943181264175804524562571164038014287134805968834167050410389945670173063914558889754973981258575839407906128746290560069089493579059805077079921639893395346528397514375625336219581161053875580498483170741066940419707415482100823499543429100026389239296250244204139346921116774168158218791205403345608780732392638331738468938175853829399760239944934374361799444704201596581382267396047932910669317870508528956946641444872797506995054140711869477388727401181398509289714513838019112875838672071529562326312343166700414801287855683142899750061631389936355422354517955924776856994710482308728236095336818454519692399076056910398812720693049702743864153778962564635288802279580883211848902807726703028940768978641881666950463259253130730072500097176648163345561542465967113874442963157890086303821188099087389492613891890475321032018007239350554073666882549132410475981534639167011018008567133918884096502081545732618465331211678395983326978426624942730877128784979097725387849433539653494509143187273453339803485819688911436141853365470321435196303995772669207369800483646335791966215033739125181002560847430505265545475391864423272234030166807287891234536110166733093705116662755003588120798892831217478887453430845989074627793720073615178950264196649083189988344993789755918362605611941148913839409303788285184154631666144093104347944366125880754269653383992839934721892800979511232146891344257670933367563874372248379683941542659600485147676964674441198577084446404048174420402156610372785429031201374326874820653921071033241155988968747743844056369616602636824071736483562127691368874102247635056620201523976060718200900613210929590418996139977247333082592496664512925675728250415606897195600211076152999484661147781703040659809792130447291794331404135210324528900343219161076471073704184672756109742304250314884236969704804599562938695038361620631221573222349240770871060810173076398348882929240540178046244121203980600592698406733925055347724964544014987954536280548584723651507589666396317561181696737269926742708398278358203304632713900298461142953088939166939647704746755723801702198866560254315566709253768012228240635859920439951256795728907477426103509795504868602344992844667370165605622646826650231767558067650637626477211463955736842606816491674766948812325158636865460324712232587616501937753128465919917226338600445284681215132155755380011087729670390780514763181897045245809986046773794851430821397180640232673960413935501669140379181473868674862171266528583152123885680790785402664311163576394598840765798898175018822235624286967780484958022232734064009807861336987010893887322663042091119042528051880700950279588465698874042802201208193463375876563574245549780763925045640535573389247871271645688582864212107836693853052528591946946393016047580897312668020926237199620172267886638601750121435416153586752266878984432072746590898251759024930144862186381585237522545402980634261319178516260860063574464634143995448741603304449749073155496694228122148021567667711622055599414215728630116956994029292436084315563923945504727017925102544110515139298960739142378047243917553213717005165990265960857176977102542866549624758790238675019405950239197879174388723671798774837312749395550712205491482477138945959053202890320874477314734941061864416128309286760701599306382167562864185484680145589232334856404815849997655587483774823253877062554257592973251598766746538113886154751287463031725438570118029530574542203367631247774712072545445989491170393476135324337599479790171301667512781785832680635450770773409425576716313080450188058919925925493741750092448034204225403561414512646205598301163929658559078392256447111733753946535292905044148967709520893644720621250464712886709843439461440811480945184473810300132276081123961668423310049220410947813376501354365328572628568756175035653064852527171162642982259232105476660792673166852093749568894622998838330307196897151985305689521096454903750044971820459246172307688504938234900141753130613609025646434168609091892587046468546661274122439771112760849014525404128792556762434593378851892211055640312981942658471811934859511729649534322206821806410587543154562387999787237000101570685297171944299605038207759270993916481037927287493776881445149602770533433573479179434827885710759102957417350261269837060761394610783941861104466103536230757144392961907048887850578454744806235329926968997470051903094558330889107589200150947781776767461846695454833926823519031720475296948964413479764808837284053165984206370689680857872343116203529970143915649341076111381922883327401100445969831005832767308870121393920765146367260758831181768101274894893904487877275711858347279924413166150699711942814268040632033270966386918636500109152609742128099578250929949911126836813358141439338735223632053718659361251641945391601680101210587562191412048661869562244595233990612689596080321095074986807618277065013884519988900131299395402853658292594928730021769091611756719514869281972251865926077967105751878424758368948882565870580429609776108268525174439891511892539848032057194232699234218489831257864804186219415143336638701518685183041133078714674957230898855799149279813956974670980544785102782147053008464320441138735675402978285609080269792973842599928678497224748111612569562333175263366472469692911123951203603640801135381469393009954962353467318095044530208064433804672392329033761726592360131662705242263228022209552707570090358724540813530487358980106665762338720657669366601693812883718030723376584721529450486246304602339901431246529713319989319398253800577509406513889264447901039445220111155913046957092291470780961926707254419841189096752204610470364183367769698737062094566975282736803607282326092875908065860830911758376437650130275025886970994801351299147838655554211804899268056074719142845694296799448783772837657977207116393129713758994169334258027161871727554757837225290796343396627767011778280478302793214747640863377328637979955408043949894462377846370115862013748863856805743217065096982138712620824417488635769459972753529793846662218757745576085843633871358055621131642955722557120290267740497259231295413633429941914589337097897138425889696910424048782432565435469294014504149895878520602627962647861013428111529728524671072607901025813600735960433087323228691941214443038520924813204198504349283326536710423708483219628457127663837255881208112785558738490063490160585485584136515603392853222365561493697898702541911645508086220198375184538196756099970207588589722201475597705151311724616476375068492883259679547264830023854883491708143473568345756419442140684856317853178299501752912618584785731262310616388091657045215715799844232801280958666822107762591857322951734838901018276779381897017884997798267038825062354703582545842985362015490748340554964855276428731443561692594160427697527148595958928483471691984126124719256142344238127958201528767616592363652065127554890712129829462851440474498443862521554273492153355036343820685638060721266016038889997237755654322555772364200625921598299293534209190517858040480472044312621742723226426161800655996291462371193986567344697035302853401758767176647795421879847434246732770021569936701970952106047730395278715873270379143621988498460535813059882167722172619038545644736271896476973677971647446932516158303353379138617155379663006834687432969239438676394759170444702149286861274072141343005809983770064852919172866551466850685500578739974423393087821892614382466122950039572370683803519104176596953372641723812139859125230032882423459125088658028475488469900787477289484004571040960901451947436239522316253051366135227286638016075000069415498736811946246061266967058096925503581930508046751067805248268622228839477370683088052056642520483010181118796183366034003315639730292354211030670091245037717538527075264456650694527380152005093851224455036209053287823391244596412812530395427751054353831466267081366811158600071988488452607662530775778380780098644512828357222392110728917943218419533695518233366799289550746079269529851419199160525852575262506880520977717645360467753711823407760691550402527933545811141596117669835933436320495585371880861792279643384352381932316937076879902844312179682786640570553883293164163898974448933327392125112223926627331016486356850107753526877123786598573839447287263541142337339015671049056610205413972332782856437573173260549534958593333513198222257605561412552613660063969760627194234987176606822446885443990702070608964193341667716868091075604867375509036130157755632725366383861620595705824241523765998378923083142859166889755334703194647947264691089429480432806639378650954157954839290146908877423791326558440716485493599624467058080775247153726205836681468252218991746356409415475441817330425750965081403242924532272242068234314183013640047568819941753186088148450325163537246601620415601864192922390538410005149317131227227817078410920287645825505316081701467036042760680694018728992850660895579378973459904849086510125099129608733490647988430906376931956504152650364176115920127104034599667477463942938492303422356299951822117358751941763311776454925610068098071034532266537998829384304069877191218429085492210268732959243469698033237044194208240606508147208440413301015230412997336277976449288472509602876641657839984710348450285876663987589309498428788299051928204395366193375763853238470024560510475696477102348543568350997300183046131570350586318876286474215000200728021624847804505182914553908958688776060067012479775020041499800144075592231494588618011561129300701536450878811051498892232106589476650994335625574650987798546682788574641907074978790205907643301747843301118069469895568706425949468759551192736518844267456570237864101271578528608599177110299005078941018702623839251023918295586080509699802159540084067890643937655698681192507036531067268477663723935671630385204777637414583978844698082638795550515474785694348899165445036951786841673410272767880915536293253084022109590593432840159271445592736052964831486149023012148834391208380088802310388437242881798081713564267716468504540522166272105079171642750068141921617178807732728213534899642968290507096781457904599962481497510679000576099136856074423547369492223630757499882081394483197649276582599450709259744450876214488936544914896663197750491823892476241296844009175374129353687669562023197371863697487476585822094902460711882015072809899760113507115092700308788801618887118082621254564558385088730752824084014856790499729021254827316410911162428432613924202235377922858738494958038283908354656491363742056669153050880288904975196286811636153137906456841616738448640860202156703303726757956561895543273836069261443920189818966066325205071254757586400876421050937389137029909289382276476589423495697410750405780514702911431115963460440472586235705699251437462450113503869208471725051818076431690287749513309591014533469213690167420753877563558626717368818617169737038110318521867422728578726592207409133247061505890528392701537595069476367272204449904551376248886829552931038790577167438326764938990352364511904110077216054968376934516494754812785297976539611440794385995956942966857070254618003207841245862597853532292768883546705481555435290448187602761348049033200770421156764665513317880890760974776642617022565074606960819010787814315395664873716365869698017202954949812632073588829433249594885257552081852062052583020265464454403478025926205858009184483421618442249201236740309090993440044640087051019394074325871961596415206811535502625060687881264065942128858868926111338580406063214767974248096955736826301389064223770857021177401111774746416814214353267346114944111487412555230327871313405380892000767381906017457181050279012747717649992554565263248881112276894441658826781645837203578314857387943177131039773734886339137107226762676213270847544504315837780750757813644793872797682431508948137313925717116833452433054605968809524616773114003961351772501983049603956223715588847305212778773497515854932813321019402672304157176337180240819241630988533492716791689928032060296715956361651484738520538335713309291182276643819543136710895991240463789291083360302420267632952639308069599146495389817927405266600166431431416323283336936554468223618665493530850357504550217360605143780601835984531496237705809770169525788682610730700767547732637195994492736999388752396385250222522304579449953256921394028860526392905189074506854586303129422873613776137805608314514820495901135412343970741475704679108097903727864570581000523025525722868940356233163651073438830483515855546202758386446665532771728769226592372398578684373368742637741034102550938023555821297029832806101970655874972426559068548935822044497122895495360862252866179490815025952508731898577017372169563341425288029780309468866857704180391142767011358111221213709531829213366620117859897940029427839165222209297236628373719511054573089711328918579053115048607589638215938605621143488681913421089873671876829841854807964047544294130910061544922647702223185379305789467365855683963696126356380343826484701520863272557452710445671011383573936151178261349088621506069474129535859053841792752584932784336875102035504293115622874745229081836065301552315046073065639408987831745210468839074073803014253952967936694980145239611393318802524065470349777896652011663795291527326224659227271262463772594247690968319949411434151215987884426614335278141154563580499158018227655737508017437631783273890172654520250031985615573421754885516608676070392701478563740451261680771953552770590838401850821806547522281022028171708779665361949021561547372011414413936633220218114872994614740876981374089159013744573445165982165012081753847082697119024127610089896827259929998663822109211605766691420800135461687612567046392502646658274615491807636715257611443890087087919377089050096574279721923916328105691067871031518110865541185686271938063810026379292896803965942120298535166371712457788188206500813675675889786389253234296907806089216180359060887711071446271356324873145525714317739120996488144267360737854405673659365281125580897248679584826997678885279597202663207292925009958152719837952718102649777012495524020981096283176352503027204180085598326530542771986655673297798233221154450199862185166953082742334580318386311300324742596255241125698108713432197150756324806938654747620403091720529372266684419286719440301091552696609040501361919546685023689700053043434324065510164520543509641585592995627629150608303284660982232609530552344113656575609218183140381487901002363337220188406621858561717712848957171354845698851763100993100589165537654784844136348885458757321586250362274018648440537775510936742911333592073850274004289295799420356599524548171457579422097853819952762186098610360465861675714245536132269099471379020699618312963235966815609368643406489315459789917610154866270755652928601863809206635826069582013277332117658516505043317705281853957365009068409516455880335267036174068242436341110750245745750852186028311728596731961841450859498908569259657071279778684063958766335049609770212442868229754475438866372705637817805168328029307298968322381745643018369358879984298057003022388542623437726787371035956060801824768307355702963765884671144683712800474967054864506583486920340166930418603784169930561318214139254310602533211938139811502108387907853909544592218892658425221854203826569201741593785669851340782887711115898756605099855314604996896351732807002909533977488430242853864130837645837910799135274235970810085757412748000376733153099586967351030088907523913060838453103883316315347704392269442203376827001585274734514715553936206755540296502483479944710292625663154634700479553786132481393960392894846231406504531028228189430435653950638851412886403250624660283005621382565594267344962577031315443276427032772085225766373947418561330458041711804578982272940241339594940294986449436241952443415639323486254133397806118585098392758858690115510498363626487117673328453943758002103641104043268499442114712686596457947031335477341035108601992050526212168818412140956221153066607293317870626577665409126699255852751211233578750324522491486953580716474305771962164653966518102953407919726834808158465757076358465021189960144935140886228897213888916051620012699707674168331726194687836202543005232143063812668683717960091575694228081959671861670532292086397302522924301567086935204810378918976687231919137898985108061888551067697644117601597939333527975775348851622208196179535934256987812110335471000833051875098554389852963650322057968343459473984299452520708769845788083476338634306305168601894677406607505764867494035749007689877510882918646596466655204468253747319298477811577386813283488666477337588192735204166148623354079798585256985098038822599815402546887207765785917208064106253383515291018257807556219727430685891539745092571052244581520832058156421558360579391065816737808006357639613864152318660007913836250504928916353422112568520457434545579660307689939365537835883474137333097149984993194348923634938707416537327162788095990640240455920019174372258023917036970276155717991423771382183715810479733975037476893203761352215817216555860433957049414092924684869667226972312655116075596591523219645537216046835672620711533977998895892284469721462370374125919330892872993349920771482342294161259066887150766321646382976103353174010800483770846645998233515348409432319814369091906329933869709421694553171013265325597039937366326367666353734743024383631234165115593045487072397439194104272343378265254811235342974878447666764940350964249264613061795533952742386074145716251674160227878516309307827902843440145791036744316434153263477443507295439549315896656756287332507785973959808941426043684341848084320150344099939038791977288468445969888014141445704799509360683900040586330682761342535280483075774327537684701794146879286080446403492723042812234412543970993343662026925805432813079348733628630893836248051424755625204667791078701612861857479032990203552647597364818456868252685600423160478566749038855642934232777528607474897734065001026132232109067851384198928663450940076819268603390790771860769080491554158528352500693101999867649789241311198953253459389807054123615098506949083445090962177946879696236219925484362601621791618183387971314655094707389768656910908508353865337211841404984513490935827195235487648826931866304187885635418776521445222038788524528881482971607310029339924430092923944006364918778670092656384268913869108189996833780185647669703716934042287289625909814520537691734337593667590523687998954890210023289194739302170199404877925913730742609183845437896036841466903244387073324149486458171725104305366541367131295667846934697579920378518007132563827088684731374101811363893098797181300684896376674926310267991485619906184121767192796118671974239374095917240715692343976285799938144900762459570698413071246372651029388952481213073716874093845686827782284674902211886085603571029129719502808729451688890804375681929634181958634274532084574470537621482680536603297187065276338185673120386395373182851837057771002200473569293127701906505455334705519611676496966514928976665194376835277537999144894933259798939955715615695577482307426640117602921657558056845708006510145244808710574832557633970036661458335867357093010857132255569476392315401756165419112861272229883615885038399051563053465990033330519587607536854482976623869694467562210889889724381519137189207684745495013371815294231135901412461073383278294211305763222395484823436282158444392485153783835659920588762494528556562628119334135332417957598055195703389385100487919329142043658111740634180093406338388545455789720546753105554362344776059825891540327248445226394245282883017059044617583891897788434126779214265231263091093546148594159492475143708935065885755338432808097478905890329897318786237611240256133244322201508389756695684767783674618142841215099366059908248979124560836263729136903699619768911461990165766407276047731691443854477373303339743867056118397596269653339545039034115901611701036768897331468108629512659302657838537321758742324267496808486265641643297993957489063608236356657839204143644502841033745040479385428827816613838342972116703607194909406093504799969189191895817479577342729876110284226886976080504824392382285092688202666021771081561483395853738322501843916442144440519902481027053068657285503270409649402107153526596223624712391799630289208843223396881047554106482171478456078235951942998833891681104405443466725968169826626699837064729379253110944826307486295564016443531293168019446247305651678262859006578714984338398948767979730529006269664108134302543773780765153377443052660064440081892664575698103335343380195846619793047740110121490053551756334227854657126820971688661044362043918426735936981470267270686500897364055187347840405659862694964860900093177839528624043581379634615747814831701594634765883569159397002534290011335708589727843058316830128520477317915712589030636882976730473669555717330651278969903579395182442996604311370480907915016483549641753176071401941415069875255707539409114976190430362876748915333834523189115061930449420621759930211748335112640439303640043782514930964054349142554894177213961515073466900245063366142780959185423548069118230740352771667518072026083437024136042412223610546785844661649113549300592379241527875775540088030054947172327826137396209366569357388311848841019176169836729166729487219546090998188152407255327227655656615622609699532681596888047287982637969720467790431766768631996047829928306420613358678249574321023413178680816150992377316476594802800632412706327811974767374073154993823058905561128184083303140767021506685969527441185713212949831548510919412668807133575380615772903500731899942200825462513774685587658392968638598063185005288527108111510671735478399942301970995054528117833296328270538766133196719623559578717989888857801295061467579361542819220704604580162421303478653101345364677421120410826776131104291976094002520748256188834008847508291870323392453013983514070827667206842745969049607037226939333914209409134171266659467770085923547418019393887925223371641084927347767841719675290592153185352065021216526426407777368797263270060182530945817209810464869341440296180237669408307932098689913869294083430714309677820716896920952469570093507468934550280783291555731968683755946166122472949287254605035969606929023890360382007239162532080733606242729856462216608451965700649167271838068414877954302979267140062905629145106866069319862607268960815555671627579747136146042961080942739727429634804797794466941889121729803616790480167434461305342173055361060229437633922340465294027631547004634222104062870941211760341935316583831020564411904637281612699006173981843088082298437016691959888786240895665542011133943495103698149557956808410658247579250570528114561658975863589137570667711931004176980116186646238953384058014636802512615580696389796297610881606596945548451570979085044189512252186341350362898171966951939897590660421118163626329669091174787254728776407769593274807220907481356595213254727662869312841619043487835064414242279259778649577005450627527321977809802565065607299776082601476256626994511153892532284328742236063388916268992558370561868245797181974214142266015207069241475976312112243880803911028974348293608507775697259627855784329033150834290126962704730615485803105954857837398060193725110640638695465361902052527984864743499701781074241082243873019430144823834675759087437058244567982094329840019359953750628878240479201398255889497394640898185741114730455258873231406373808759027143119878140286781996789229769330184547911214346100519275472936648412636882258068893535302837069691361614993822858956287712545024415993723154655982437500438224732976367343467204816789382302134641264094285608298247952341914927598409297995336566416853259388818321065773895294421571671334380082499977123907220083508780129333948063892614363242712120772643554691507988615848139144710298809750976298849539366489830948682229740255435496032932802567144699951361168180824712452543228663811253332374529662290967337057044776537178278947231343091695857873378450343664837779440158197865038131896051878493188482892389226295705553182576088578897498474194161722737746291519607804110101414119694039898558706505311002855458384471892384240468592043798258144477428442956128393263631445688988962537138309481178898995494881940685928228755568974389281705924231429039368071076866022065089195120787418321734231722012505404690051407439838307170198297918998647673980208753086935874220027114995346816610759668599272564444915274426274948288362612386940434902735335864153151965817519655625856070050146464480743634910706265471912080908076926427326255143475205260430903396500583513048591537500124473074513539876860398488465722698597132485403904122923078458652174672143418358435829715458148080364385502138790438749993243831247164314199869760607911477504991730928316291808639466030881238838095994808926642369762462532940579022614675974631473167481352546639640727500729183726123681843452718165439057653948906802466857497202101377929826310840214547687062580335812666153516643878522337780804367356815773105947508425427766643911030959408469800100470377094366686484447268908226104275062113761818101180084731682611857394061576275218639746374034596839969466525703236436561535849844542449005716743809813109204108445822295956610921596457698931576652978234594209824763208782579500071128385989327082448619206811642487019653107908696479767751764057592991288385926238133952223486450855125043784181778017549614431804472597082546177937182176986451697858448762840249766790707940321804066751073781855578237233736071644740906835351381603780584617267658036191062103930272377813761888272465868366332713586421037625033371732631554850825592916775800905908570657937136756404955091970274713720986975363452041603919855938907553248959407463599625054592283294395547840990135724435271598520138718987835822638294273682916057918407249894112519258810222250583153704391311019670074162171409977052221752170252720774666665058783880589851061674677470395852149961004187142131309371822881933744378678915746362306602914172243464508238019590859745416490545399986081679361617521825153935347232979682448121426979377950684449476968164093347233769190923760035286098694731888546874729719739491340573205342464496801752746427261413339750224128977680545929369288145846890650508386578534299704607946499269578520127186358716682159397798418743065330485330216411126805680070163231917866373733614299389616008155150757387140183337900308350992928556416517070534026013641054738814659888528063269085992658000811552816427874514623527463996896412750965332899695105799045513507549749193975194741256750892332113693752394384501377705764573719166504295171284990007394345990989781813132943484805999838334986458344158905221348875463056859710909693013256983001794985688854660042732452957051142725812999545381326508068481313209286208835884943502632676643174349139326821793381856415947736848812483518906975142212915487143254936904711585126099904847089508255381331220028365605281558627811876831519767270391075082016957422855152644874083433994271369333698791846259152581427937788039324566639360856552880169532469446814113919050555574697659489881724093856943850224309380492438798840576065162059822292420757901176456588170097323343697298990693761252942828830026181565492732842972723403362317553522370301118251704634474018475303476196879305013023507697222342901169023783165019770295333641632375745847097390598315718155884082700512227809945500758269905697941781178650646516824018451305619931541164433157232550431036414069752323887958789071459751218635138373944102514527135021852243561909391029753880611072560128314680845782871040809957142122064190535323673551540683466755910463936796379883133800693732955060647983214128138986201528454581706713644772443123749463858237324545836043675962829240762720991151055663798699791322092414235734814328304345076135592907386239278382864394021734814443151952581803705791032326108230110576092114831023618572872611300258794326996885572029727765150114570670699106338471042993776000936999380099213413920460095597392468144640415258031425081274563508357874338391557222202160097316374277973659901673864267319314663991178929967052111083944222419914561684306405506331429716701571061995689614313646961243342537272301391790393223350009238959913448121298509329076964477703669604931106070428006026505743266816857323489582628103494330100848944204276249874911253540767089333704827122849230203178098168944215717785754551933767633085056634354142488844164466234749644060759089730779939791348144124666251802931743446196532596191489313834867654372524107241934611508526901544797831561198111632530890805098188750872412880073992999658369245712754809625331102863176108702594349989678793963496425188429082412942453359767771466959210028684149140363610686548622651700742492998031297313677611365991427549980548925433496226822249177528435334831371270235256547484651441385486179145297462381093230762585239965115449372763089451485116716337146099431334082763648022654405352800947692478221518369655140129549076993628688727099113620235032826742506802641345500628970427321308466921710574598748488111193880463568009362472252469882531921873457037823471056550164007359955675419009856963697523533631446630117099344614431783684410085088678185014584058368530141381907431082592802328048876032477624220062282438473917620735569094702195993309930160179226166001488625128327475084463676718379297139109827481650432818096374935343738666794223824974298298141267597741304837587334018114978509583155605782326988037693803615121287282886847553423079957491467010655159622256133641010917164027860850319709407416169500577977077617427678656187939023727313509939249763536279358692403544883601208813550410763094651059259709771722907629404303622633151447659951811195213047386731114123205962052074589308063033390022297825950561743812654421001028144645382665781651757128316657111267373255927324551163947732732147603079005268640167035746305103552001682845625161296954866942625780628875131654075703325405937249215487931625390144415616328224010008867832454025312557082972966081160089822567474171259189320254960065701486777200796403170222412916305301866284543028576064068595844390445611941206598568382809215380532427477322279233356788862115431321593429006000312663965051024333379563773364535382502511825403103844669857656680091507515572687505146265652472973576968729611926642797300088876147466301225396199290469146781635115339075389441388223975152271040330065029098373047466156938954758490877117365766850161456512451813541142859319748421976345333104002440956470762076294155941159145182103201139822375076268810148742861709063842012146689678121367371444241023126555982267733069187882391344163896281035248036582944555637374939938004487283938484337228084443453312119030707884800379794522427057948778785623050686343022643329564753483843252789373908174639260958855093228099663575466536435258851632667761361612116674431029259425659064379667321471118685713516953814944338018092763527447190850997879965224533110604475117029884594903371375307995097405164431793034394302536208250974763699553664278953096824056914066616987415139621492803508658263006287593720861850561546583256321995470686748678957360601630235684706069930920274052020251536152552723177686566270507434220032742838679313109210133327521181660590828691775485500319229944088563331452919328912271438882378598186670151359160890956016251640127556388246684403279108555877999187529163577057520809917237701869261013595747034840383335110024498783655415386846667879665879805390120121554332576116010687224665566250304867941016153794251569055841228785314272141712062577783839589796237175057654155586112760836227352281060830825566724936765360692000648667653043849436758827192611221115598348208719140804732031164560834013617161354942760648229052251303712104744536988844605452710183256904406325986710386886340646139975039348121984472371201436320339545869385253245023650025012138211350047963061271657167249796179430871411790084118030183967130978007674743112934227557751102808769537849323689171321132104108343488027599981246342459804387391272103769540349726517952064047568571046554574172878835886473405307882245351682971782409793376683111572734448063429602029883920311941290624871986016036268251886635755550149186558883123008778200255463976436963982779756114304157483305608513192560620226177467037281386157103578033730064161209531038550316525455164432253243486753908757105008444753738800809874169136883126448817801956639813250537185973256936764669564723519822089005793975292721315513548207368207060773523863826698044490889585762876390620551619166831301317734277791465675452337205493458579366849451984132210284494979039752281141009055616745683218373147066617622810359064076148508548867044442209238408529723117714482269243568853014872269695224343288318096693405995925004727669095646956739566989552055911727703025387727918002216147879802609541964089939560957100486437513430615714525527305178142525940814926091494979376519334764315846933961128309778218771692327583345982186542408326657357837957817778726184415585035389398049582442897206378106523939932175270362891077286497544235876159722197890211599082735122232718264156172807281251541727823672208251217800887187238313783064279017207510970801296691504159446258527111371384505171299129163569922744621908121019363962947189148209084474532175089076069171115344052387341156378614009589713541948571344479557810941102123299009293285769115970326084080307862760117349576420098649646284119156586754012111604284303358684490467688113680322017058901727139373731367534992632374188394869944081596235787718009705155245990160356664785947048195932417944127024167459895670189009691884822152284900433503702546547358844253177616194164033878870404257970636227618792995798864252773251620251434475322798438042533548858439518864268392817402685594903880216726723355441117230091029296111019835934940322312883362391825198474921297252112296024802717859048072034364751040362298124654162198727605477100237957377259481092497967424368997907384577142785589656356885386963963822465455557886217315132980382552100112753644361817596635810174333689845119904744099125073986432407739797451474854006526293919846045057078023177670414172896537371177747491926589540419387100070446741941139296059090462681679266965865773935977587302746572883960028225615615095881043428679212078053676081751481587538599298661515049762742041925925237794960622531600397457495504232927639931420122061825716784054822272569364600897105467124506620610562839571046874694656039908484788171194036479143426104387719072262951210774595386590037161814364466490260053996988713528163566600977649931309871911090037011035594649751244437586733480019682255979044461622085138625167575535433018609436600557497534805723821745597102497363600123404204754488665087995562531052914125584385269061481541432167381141741244688120098185300455303367590607540973526563539737118372812237095611013732918109534599425727258592737082634369853141666221434524635998051382171913125791879986965146309232955292336708260251004731309742282221166612027733264245398067389777249654526312096096780676683329847578933289282885423007834911438894052567336131204370168359693882980507924339751220127668912778314915945105186490743275774429741349995953073165275440578804893907302700772615792601966671871076056902364064306441229663844814218313983280352827001414905446893098436239787707252227214263676981166226888799489487915550695488715636088122695525989037893874700002429119835419426508800859362809621218767810245240980670282428956641184129767777965334992353136471218312604702614939370032278407694413759543927657685199979176130988810678976581416337442714764279567311547694583447489015804123796729173916514646944050940211121638729258702682608439357903309198384687694896592240232065311028538941935771267374406364772301109268537180254697812397451448746045655850678137108636823151869289908850410044684570709227073328186033945297403764747149575824338582341127212997404906191732112793305629214362998026631060674682523614333664266949121415854923956439527461294683537265860040084215887222348730640195571227238168282303977840204179652328283164628194113120795652818985590881490991641878630766643507115081338546361822257053651567301357954107801767705259419665437348218505526141067757174622234223366113441247443565762468061519490462327658044338194125112929997030406872369424990279085297923341975261134917729943056777943118342153184874538692366328433600634904768025759242217766102669092967279655969913905722824436513679176373802414781985561182788967267931178775384956252930492615023977414176894515347545797843994659797653428953875136241428771695585649646099926753270045600440014748654291433610960541623139927236871070518331349090914337935404576090410922337223298604663710470615987072925234784826980298923799895136798684807037414148491681656749561390359198241369970758213642448975965510630501054956895547372278165295476042988490713801795165369511435244917435438943115966726410890219183783823649230924561875399078433951305787700615049973647987806196147953205519798369421354362567335518392866330179657629596446758440373257567693464031913617492485285979719630818138670686692830731488424294213882025121767225927053032217936820383379605487167235111600766864026927292477863478264700192656417601273831388741826914970858592352111597932334862770256627654467249403380315620576603341686999289141290353343148445218539131592214496129091404956156438235529523820679258099145359419851811606653414572072058946410892682298967347742739213738412830475491138026166022408060106958360481482510331161358255299337005338935138767970859237799166465527013181126688308784917126900018100684071227136753395485047887715073980615371450652578697662818923751922022739196820149369883154189552913646964060455909057969980796113633635207232236102370644457057948286422613735074449995712088304650570199436212431713167110433047184078682388421887741470331309504060514696691955012322134126426404918341203973319782751318837703539774954320562592978560161024317024844778354962313241045053941827565893278565045408917590563002351168054694866368627789905719927428778101298032457103247099731956668898694323463683547920215871356735331403200798917587269147724481356300409537176340919587090825352783638935652519334964008491631217276229334593148197257678200150773948332478122809508914466259822551045246686346809845919581713664659616296387033280878987837698937279903557864456413584301310473741069833561742720595962979062108595973769610140620602218648584731987336380085295988250765931689048565709307557326793025638576184751354150507224210427373554881710844288672737263432612865246125126068504960964265125938560988596557803156301124470670438427423198031513949467101325798840478272099964973192664724296535854323418696298378148061530324738858660087308699055597298636563418635688724402019617315092744641863016454278530932523753646174823276127986906215108729492583335361045933816227687072324410191407291573058450987169934019062762175817114977100347218996875802867085070825676924370390700095456281753429898911027967672654157972383866790363725061601742460427392738306650921214091802753185899218487996295540034465296356063476370529365905933642696329854866828917034139566366713428860367263742708418892713918972020919697789087162956877027377693129736266893242877653488760854590753534000224300590455304718924504269463646286602022213973593396175419052009317047618023012358979055879834586069756410853709410451333474733120586651178735651377094858120864995259052029334744958675045887894787669513305709923117739528957467620141280401852492006584273561864357825688819398781213029936946673859905234656796139350113916801755653428875179710558286370577278841214285791019085014380233595803045724516363569105292086553882647781218018256324149183042594102354636392951532114437866652164139720165705430268120440376588227329540889409707891248360943234227004809007592914489141552700376181707897397078208917026665337535217501436095162757309992195910724964134954563668444593385726592810225971986078311168612561133228696774500485043820377450687053608131873058872195612305569585191368272422938485854438448758281840065288805254546035772120591754658974037247560108621629392793560826079809367151954608442239326708042132239893327420276397620468339463748367019330196167513726560039992676722254161934237466015091619515536237856031928754599294013723076754721732253895940952756381316611192361671818078871435776688513566077376814476156113153168867501128879819534057782494962993257772909362457978130935611316170790833840934410178599167631832603625360692910473139011877187179874776769979669087173047841898729450721996017928476430780093376458263611430424485911648676838472640226111352783237206113009484064300529263334701568990681010692649634317769589467013337682152613068885863433294013364751087950799571786687106925008513713311968128214209261420421608945415608120643496077835025454148687783487360393436767195367295361027073455822171570995107142568180605281656132331732973747413303597482708397972936076544882799247346810308213497089083076247188195181817723713648284603249223333170784102522063547595116700893828081827545896899605194176411163596310976624367377821506345165076109567924376627598956882750888357285520221924775217856054515897116819262809974490649547776419511400874548670889801270312973826068705981834018048138654950439932563006801222766103836476579652883574490852776130506336129404123682690817421596795670888216385281676790641559455839908080744664718968017573003350439153618481545757584056828151524792523811680075968681540924034622035223004625029327444558123865815742035379946041683063659501818390747825366306371444655199096181589597223096582608915504361502683623471493971900491186627889129095050474790352935847527705798707386629880294113907486288054453209078965050806798136429818188514690178190317824675748837276205619605901986928329955906584894084422679369860108484960034624604994107655043673606997309511540061587297437659232881481762046901470504263839112043183808078828202000845740367760940305467621416161411075871494583458468384731376704977724588552427909939835319846441690217874316289653601161018725343613172399248532174140836087543435776092984257220236064251495492590198088427047970127534853742536781754105756127562876854739789733154738786528857722800574014971689648644002066494359099224902502527654555920130320394443690752826806047163081723616105381364733459778539958270039240634548213969676927283049520850065790501283261898536952055317223062218360399837842838507375053559984565467966553919730262899283348807217852090229482702222692297087647575896556366227601687955628985828118306884884714685166803175005016531803665694747995445734504302712151421819320092728115881145360334186762000086307033690355987610453103049903736675082297974312409803991218569819595640040374936470950500851914238863045189135383267457141683617287122265276406601758736159049520960297477792402514710770740643236032077805070082374453033416707306001764434364311026499191215296966675434513903958470882519829614496930728409068530339147978331136094900394729541216537109471233531264792024066828012059402137406387337263505494995509710272567333374686851733131065375154232766052048174450412008080068942723187216518258781717977349132122846492064103961373065582767782589350658546796788799559050019869357075979101425363672007181126332420060983880294899784743008262911204099189051704515389017127366783574549033201952268893077767182492673281645737266653312191744331546640892737170729640531137843151818348218715405339735422375364268907098790000101483016852476036434605706799199699672006271875748632311839792903307239155968688063277475837303377083068176084803348685364734147581651105746925508252570723084471571201599088713497053138962924061287799997912975977043680070437415413890333681119090449026870566907510798098193361052004158388855160178396254762199692577994616658157801213574084306884572838395534915117521740887848678130320667309950410526902203972142975438953925031658247002934469310240920814294933992468916531593142971393616579481587419186263472498377425847316000562400424647202102405234798834074024173175124630346731114258329896516180626716391404712676804530795209718884436981567688434114936916645487688577638423283994201907189906313156233213785059794829305105277368294792718323256007903410324764810181792773281802023694192021360134522955384491177882201904973779671792226471267687074372574695813021432949294154010044090161780654413021651093219816896975027227484461747527241558710163416541728597534395423605750718737287949679504358367942848700378856152685173065513898687333857436516502405060241776099422294327496301257796468879588923546768173272867051602948368522326050949559503897288363249116840874216551049127577117984519177547512666380124099208882085900306216340828299259629889685128513375643718887305371337110383117566943690858131149340220443057701278070680287334633867263056130890930050659069457974656307729636240921670035593269229057595535778573503009242218127352234086542784707288128481017157633177910386309392640614735491183751245030111201241812869980693766516438829466998163903869285767023689821552836164812498135704336551666983785437281147401648152090552091255480545471597569228082193777671115072208230035227787064471034768229742883719195170294487388439288655235228593862176406356005803334096173124488828535014732540034859738478916260637885994573628628548436127428456953763718515099675149480438167937060740051792500004280242664885641341107023939545640931391887022933668896253973806746503378408761222914781691208593130698170331264072841949280270910416234554187253610836162269279112225828946464814858752646684293533405932702342793627165689933471836846642671158526927527421727555116519875255186074227670924762351670039809449651411852198254419169500582217687617553009488634413618076318445142568787137808253029531719656949518821348041178755293798492392999148469978360735680110111052949015300799430894926805615864730588694987169451889024843252220696973435802329110124839415378191150778994444162886779376652456656736530990835089216874666935325150609985554925723759621259128161334260973610092620174540699503504972604288055904556989026182910807924564391652306084031141397826431719975589035060198601860340328902990435801706439797941441394909207612779577196187179026898365189242086982708257830574214334951634407101498159070540710617026938328960993336745705162268167240358101935953361961423066676180894112498020071465574608940176204368690996175939578790454570043560062147046731871254330982769197939903180962257997919838608643936506002949133565842425181541276981268451979959515211600263910938848990114655067742719781527862300769439169112212117324198694764561681538753936573569989309265349480823164435080225069891734755265424913988280857320377830562406110294497588581220543449345370653231527376894572939409306710061907864246192314234747369099797744567149160379026888084510593310048717189692696562294984714951762229261696754636283260591332967990445389867254262280318348911075722199958955941072015596298231802588396999708540059372558104686311751530850740124075690966345837583693833582122606606371452600798052583136260806097313180868580807735637896110568552676553283745511851641143929952038573885102479024079055234867607010326656667175480793218669065638834461674830070245605440735130195578459609453689455257562134909565521897729384419037873674546917132953551515793342728463098344161600780730624037733851259443844026127077588620230961957715540799362488553866956673906502908350866869759306392034527482364487368240901976255730833840434474944381766972928489088743765023593810213030849448971159491218201054629431360075492915718180202258999821760244771253662254942248635294205334904605259804984075164576421623374255882845711769805607681702511728283471597481368898466805452108427263763379115461939257253391475137160788294625129998044638021405883737159164518963476405553491537308185696383507164386776396837236104396828065251599507366374034309744295196470497648994876995612533876294084079231769072587622691494535161918512271682181305080543300251377936217169990211262793579432962844566685920478982030027880285838010306511574243577929920636577448174604119439771131834508967766902502577620014665794467513700885714314206195867586360052330843986096891485778730672463925533789260208912698530643249792249454380223226337848616322880302245062607614213312719158704851878412266880961335684828185749638855426176035015893679624753449650614331680435873792172871527520329251593058164008457249634030043474637868891211949749766791971851182225291668824748999109476661227556435745548098415013397376232991951640665718259795699640147005995054580138370209203927674449817139172123483162426367173706940723160899864472801944375062184042737672273156547672390497996327227276840758119318729844183359545431363490859118866195389829556570651389456319407645356883460798363846733560728599288367104703842321803494699080691689542753780437301071474942346002611043883550103734789373591508549404611618845379588855324076952710191319327498876351683305638388063812202798906730480540531203688347052029335849986947339255679129266987684243914941912050001812968314350599797334220203990713179467190241306903810677685573565465182689580137571551897781297964621353580224824350919893299292910927806777787363738743308888163338097947098166989545253157677248619775449785015825383295916708039102051425527811865818306171094443008211261868256889111645202757703456672608274863318547987140096776021184274114621854799904805339406684881038646233849742868478137513155615509137555025745025774107664366037564189130876915374763059474448109360480929592427989589911353862025755354571108319438992817776882746622225822883656879350167418990108361241607880565114453130588641233711881803012775257464015593996877103656278991738377927253083176213328806306841048269018526146507714540819609257613770557666552567293393670533992157705560750599602331821246953529267824733927811890275916695116760009470789420133122721045655338063469031738975653119859144821277874074606935927633074976173817291269557050379903954913402803854428626794260704979132899597031954052305070504361259290154830595722971927157971302396342980108546924211199638095240040544476834238831444094076595617836570877549469902436871599340335766405975147473939256470782670563303837949555471075268765974570846877677545323166435198131357014545089390882288328707927682598956176484241476346274409224638449168348311156644827393145179698756876424890487840367497199984152104999142054969234789309669707534465762186751116785754575569417500060255846122043190870504818644169262025505883266602706505816228767126798027066574514788564202768182375256561841142492194627304073371027891099371838290309376684273936986169582490959844094714040903981808501319927352451085340896121230780586361657542469212014550595528174014747352281511132088459548024250870076997371413839534767783890805308920186470588126258813247480035663936845026747035036342075465293345737801132890481928546088550699021602526740773833931461807504596293495184693412771953436255956555733477778969752719714561893202577834827235314818634428185112248585052086654710837644070359818958931757822401618373786870700388437534059710204562242672754059629798994078962267218020859225926332107082719746836287427228264252304826566230502116589786088955753634431116539990041697493753838715854128915273428298287233089611256500030767049718281201973054185495725890178907318051249517774112208243026523149332353817766445386119489213865697106866711178897762170546241576079926306745636383472584725820762929553320507050353233862997941031876020815416016821478074271744223726745255300266908094669050274027914063475798073732624922959398212533772938713671408837114016047578755657005850230606930988012120519442066173953179319169454370504371324715921467572289152029577768019982606525044167229711559416098804610471090276037209322386770812939481213933043622895946883401030671379671005237550890681302737564402968259556754707220398976731573117843664054170730512587783874727510459862606216622004705003344054093091783440919474134586572217552109478828289851341756873734555273820718290352088174522611210041974001196254503561744240880056400190672915338340311975992071266792644615498223510821508489835137043630622145514383479475870873606686417013303027333343466586399312598753107715210117820050521075662166202707380547474415394013063380348393894222249199436094177613234483370959354206475024726408226298143115865745483423834973830056777450571287394111885570866803083410519147947101088768320583241866198799307889505684357252675022469274206172327789419271556803510212628948961573976918604407538707156786186321696822582797116060528973126557193786216437881616960152285042160568403692090131063840372681678269091545734879579985264509049851428401833063070969177047192915916074598858958162102089594212232722212995802341616638333440897004886060893340865306656020576888261955321935498316673556711556596890409004825511691655834820366711530926793430962916324368172960716878484482900562335902926879677705238734045129534726537708429202089822381675855810001255284229475025616931222359579395705661701791008703685953983061778205289210402501798648396895559525889598829350709984433968652770784356016023419489188217086961317367503626017863709503824444527353970341763371816742710531354345809634423676270685305213808729771363536295527297424019148879184575777475583637295873735987257574483679583778793537988399268865450306837251454602223005828764438403848076499330574046536323932752796290096831302676841282208932908867358429927906575405576058959617489434182262343979921834148851760149659016192638843236422672723536771360360835708027755192773014261568494774074863797441852507757540843767567982005246372555363810186983332682841394901005312293691476638587310776329545044398660013266003151127780872822876793729725433097878570012377246698111115699255536321881192884757377272208546599268776675206953933050114690090593534202766166915228451481684015981940638429386465272558591678441568926826749585910816747724028122221186279655667196329481154337496351603138935276301208769778637310550777570692089372923511397711082840103744230699347726130379164906042658732115368998023560531295015598115989775467012156102745451712250595150314711101252694023873917989639283039918744890275647185837268345582888950027018484770001532452962771949587207153548162451409766226503321238985025217699188912188950847569749015601843062033835940595769003869851554460573698921720828112174142703426846058077945348576307601497886550173975174115977882570223575882305331983078616091685250242814383823148111931651902311935361684877630230338710235976255145629678055523195676549337554177475911654203950368757975136333569599237769011311420597263546329418516989655069814409725549954704017979927429161679398691578458202710258893426974820712723367768111214135528594354171191395476404342787727217724978137823467657468812181043330485598233273319716021586511001959820753142092217971269794395927454014672529749081764201982287870595394689066517877596177086363846136922433852883628800980401184058382528052640959474791352455650944147412176838399027266515964902921192202132888928175197212410114706597495689885823051158553347515142014666803997822166537341614109730213217613730293882631224332536815756976845766578286375828293221848122321727798416874358076157779000195586317169870868517132353941651630870529737420503202608919442263049718841443850946418169508657140568904740879517087600668887545139465969028664588123133399480396609858616971058250741982387591174576149225695259543220445541949461042728738724518558708429104656442021441432118790855713569506656856667164291375772177910091359121239403056758899909574804427708432161327846962866484051048581484893727976992921415011871225662245310582311054980828271027804062500353720710422114563926297150698397232451863274396872395946717536401081032494840740444489448494556480359610570439106303981585675370383288523183023872603232980560444717085642931705217144584041486974116202996452244671258189053587900261570901781154628765985057068296880921469636677843320408000089090365652098728804778163060988173680723827784015280444156899504176662989429302406865408709000869960903230779049473396693786455494105229065881834916443780796945871148103275116267963973133253400046050518318170620154513144507773353058754863685289268808898545430622762233488865386605773735908381243227068835104892287796810874180933202136799539358593014638012902742603973935787172576493626765820460152252830496537060499067319390830509259323641285023271636316694385115670934011148631012813578086960886996968767269312105699158364616440866411764263282806144297333393475791313256538139112042733200163660950621855000918699470958464674527958255288613248804179685293399688121493607064606268751587262382331191436369811045555339299515261548752711868787038058861538211229764147145869566222721792710810266158403896220456440294783860892218248494159285867959393741812934467030972624988788527621256492755789249243192106281129421492667122629349672321285145832903115868299688749224152968601180553112064146996399452400211299109832765217195971033582584729132844162873240363631821643152590964468591515733292229481193813670196527156576919769580466121247891343355580613899524767400346518782177705139422211388982719452844221997148091122463177594832728486490411616330763799153295758669029104539346873439026539073567914090189101850814266488014251064041040304704426967117919500677451595220704586315504337578432607973586734214148225988475896104587294237350497059411302941193142684987746946274740623585180608830606802713732160826784449052377384850124773526184222610812565805161432840929025309140553140339795039709586940985077353540896994307063727197397188795698965323173897834448909102831175999160447296257771077805511963708530996437774774559069355274599897153277070254900346241541439378232713389682750220494266879406605737715666097357754633517615838630111302619082014633595523944426082140520056514443411568349471915820924751224843428557113100339324810483733597206818241631479960798900327768153447903752848802333681135399722461694474794612365637744589416293545982136807808676030056983052019852193923541605644145012405557042930495908433473479962793041044317614244299311020921882057814292832855118321085883372167212143678850452239340972604175385403282485317633812112925902962954729088352410579499051854830033334903600352198185205615182238778774239557883697406830442802272227976793058632246314055975504305310345854066640041656973137476193515574906534933176291981302316610712782513788805887173944700045983589072827172651944909289349640950601607503431982993831787475542152881138846047171757213996661079776647128085090444064925001349989112232438308931546554391542237018065939876888459184539701591431476598279138178846403855470364813576512644174328825617122597798018658432213874489666415195631139003733022309536756879628126945590556803822571429040885209312224336928536194125865972586342842795940893923519787271595444379398676411976880175406424520899222262370717276366144996305851475687426840864579018054056587356836862563025837079039321538408175208226987502127157406876783168094044783909946028478621371181135621931715276700461628816879209934211334638471513379120822459620101352331586736324076224405353879707723452087517073038606943840004977500140065570445356577420906650253621112160225479071923420125977327035753292634298383764463616976166333249272148833524866154475041832178485644196066382661727700026925583831203789082001672418948835872283301634626673843488537053244523829362322319531377049189123236665646607119156393654015615506604460385084665732944178329093537347546068830469926694153112806574358616107893007306220003467645059043393745300505601150756768827430984624555485905512187800013937906314949475714336575518804103321871012590271135028170123620307347316396628341079627516719489764404292635494628174436023275238395096840340338684551395372610625230868121402376425128182599033673173850921829825073259560556310587642629326912018684280653652953118533878883113696840983737776671316778484775753472593803810984118413024781510456128296624726732590850686646086389139095238933470782435716257004588840405278755719372143927040887070120278312690356797071231906216766260266317292951389143957820809860630298288630034130466980893398387120390648507016355466258378858727314575159284348201043794916388122405988359709267778782398136563590941894165076653790113999459478638864454838483142013726065222009563139217608765689274791426114982996847540782124360755073676036196288978154339290350206678104520037019942095351028725162265711422296549698600294360312839630945815485852958605327743916425201177128505063360696816435102998420820476250874396363542778650971344058470949803324970031165999994596810067612970277330448888511617935414633655940006136859852795608566947017978458868121369874425380998448700386661372390916323531715926253612352357740474093057475219340858528919123674615365227170522525855513491639395105645365680861556307839529292167144774128741804802512442298472013957214656006282912684170451618255543851283914253879189871149329083047184542346753085068991394644456444851008623320398169589882095187699122436244787197810681021036760444693474228135699438003597623602551490943170563286196387652928450593162129392029932708549906359187428439807777594161128790323186388305152287819002773291048028414944460575088042699761663612295684849711383670743537338263239654255340898828195387388437961104625157529547416177715235448304088176313876292504255223387976568193791595255749186842667442025981759179726161567048976414778961369845419603668562631752219088307774509242005750320174526679274457279589579538872150837640496177849105099012079580693060005491208139309903918152919481098926589526395955734081189123315151430563795432974850736104661280053956628342104902839737905081959840617502433231928072694744677013980809611197658369079583613453935588265273859034354123383318661072896213058859850871653621781864102551979229909438789773123080655128673173637460205593755896865356180092466224120373007329839330749740151146026967676356998343041286646686536464069314833639748325790028022707277271905617628456355252343788006335839784394682224611388260793176551347877053522697766994715486620229471136673007248103731505671955616824951843673489972170460874574018514892942345167106894697220191216882937714830381717687128891594119750597809327383236563385972565836244410153996885686379515836600812030585460268196612728201067913007670760485787031464031619905706856299197300968688070738463420551773047626212043824456645347663179406500964719013727533696651646968184517815287806266468842644291945943278163357885681721024197767741332939056101881015925269204554651448594599124175293502245381137993881937359027979472408698241318664509367485645996142057562063922882819182454071142615676914922024518702840056363836009754437949867030417941721898509376804869246939087144146383881827248964127347384656621972430969773830870022390599835845431592840222607957458701729326179306679992203209553364397330889236236731725718784689690866068215903650187991585267828760515480285774607230379105321757435824831821824012312275842474726680660749159172248172572132250912004084950075856412912835200208417870057119793094319700808050647691868330332919004396851857911153933449283169066437627352236975242393633513151237044627996988956834580972608976574808800460679821207542602741917935137489361648661248532338769342822838299094588577730932571838880698094291639919622221815228824765584475170084014069801676099163312899216472713100813402296536461729686472430342378149101071848269413339965854016075519594039708861722809969248756469378115699806419513446982629933673374275116619874141835179524165190400248288522512282581541824837537055426375489856076785514112947682144441971867341003517314531973114555019045866791817349525168020208589853794956560399249871600490086986602706231421753584434018848625293451942998599561970747135956898962307756965859514957652115319307999148386997476345330781393860777078805256007528203608710349070486885974537214396636181027720180999513228862538576616350548143766348426950146765818439279683339611954774406432354995808099860361325998144016977046789402586968320928829348336938003368761226040439118271657423318991067257156486226175788173510390207113744180887727308423815268339355046388183128578449693178085928180076227818839396520986505093775869351168370239375660099126958671430696281624794993482971923052424698305107595236412168232025417188994832957712200407041141541698734769402833160118197606580807780547375716459264622152010587572972666436215847988655607243258884285014136812123214156289798852596169450196221115018124161468742955488146245099827296070772158029354652143647680754677124398844384917093152956202707945152624153091779368249133297804854823312505824552464639962519344303706720020059953803590742882057554946195920864803436002601983798415689009591726484648430223042879185204159266598278876301882800280744388677039286768557859429405503356869153051536672773893486578518784010690269789733683208824872711732958706302255931625657788701208816920305771592631221318154041015232799910840906986530216966105937663299209817848299947111852263155381554426223546676050979698796720551953819741695259922745287120561886262935177032639038979408032638553094747444078340833311287051297074786774644911929622441323909916562082865251716610830974001854008112203418916891830982647700775178297163008174880090581461794877535550154161623268485671912349142718439898359284792451017080424769670146581941015616018104642091467537525791511097498632704511149471124071971832700464696354356642615982243932435656781208146006736752735895727392205112985943846901698803837710293307006643425268208345185544751694787751308272999917520917021435047054949376863886061838952709316501588845866877854615537748299446020894090697145424483927966780162955926743554852085178053430431512486843271070921293237326878482061386619807637848327898740582051825943138090077036012812535185521000757096892648597244636439371069569398427514145118149411144614282384298769879445537699960709378880563603938448603064731096837514431967848864653756318606094694170943619092161197328422191975119009285732048808348988555132067906909842478087285206084927770150534292263443303735966006777132571968022262996394442905467414991299312866959321995193381769816450280030010200390084644271195928635886140353712490029723535985143527001316034948367465526829461365241076693765905127419082263724061409983316566905644761235667011083224476815947634569590616387533508483299373863722504240569967149134401336413633467855857875746031508080547422286958363634716047353557019205504223356439829421716339297010611231702312536500480543046048536085296455519120621397774969291489110508406839457382538358540681464492732225433404485654338057215434841454240740036574415857351569281501994726125430759175918296190049743342174498968097906540954612191396243335020071964798752938667055828605195256003228984886344492900590208387510950533708584326116173665693592525013749871970014017241832848015390808633975223074655521232466326991967098082112745731717497007570413116722796079983711042785725534188518648159274198287177145793217184271769449557765898069209703079163730245952486372372950915376248592739799116396524123932807313897174735847904449364065285337374435017237149701188341998259836103757055920893303658222099151086031093446396792901942885262618538012640498369557688278224842541547254753913150875886929618882495248144721555620076223499107281703515764158441957437120726872633912581544557794973419633330045290140150664108599706960252547404146199656212626410935120489149714959032158161945338928513443115966961241019658097056884859797158598887142918297644590941980888750039125598442808411361033074089740712328922792727392207040983618895528729136959057395498747051603991912661593313533014006367473150927788088660241886614347738782352853092326728289545945497455811134504184916541124287496153644594374438570672483079943705412705607768549504181500367345740354147128118426049733932195696201649991767914641897210225531613763105211194365645632826067398948920075063203495867416015101656930715559908676048918634582702688450169957412444199854647995251084322315789015866464892221943138220530610230937598870561419400670062041257727092600065455917151387342718184644749775696507021800059910404904596567752903465494801399006771631329828667388534260121107738021727976940118958321231823137525752154178459099256385201795527580443315762113416234177368335548198853980772572255306038639682254082924134774831988521663649224892913713080192613390355079942075971704338998824953217529769387443932096855410247804731005920590996909200117305576383459394746113774240312992790990683667082254421759153499535076457880897112553239986922246310450315148507080391419374607921735135076228954610115268562342338857512431832560724418005127475591719799409477907449988222013215983491959940825185174944140668638331620530236904486424168760897470818240143046816046871849931922906869240335755004444862297373211828510569191889946045763696636020240330268753755391237262287432026120798996626690163303317763180237773463259182108101163084580304901429849605208990957230996187168854402588085729294946071384616103619094519720414967677670110541394845401145459589864263591953908896620755394565645812598646081795020397779404943421200772225196369759627263097244686292446885049942698255721270966163255236419954391144626462064060288130809202279064344803473715855676134396029567928185304028687057086230943300402139165336878307976069148579286810827804069836632073097276287782658321745647410182507984558070023353545350294310564211475159512920437936363158877396521533699643413886226427528745947983406503294295896908652211995326702772650962243576916738274495640617900151563777179249768325814539556612727618564901256374867674969221821103732168113567067681874131223634068610303227910448478275634723618727895950262875187422718122650291067897536087391113859133793257898590953306973679293937678590528640608247129917350414918860669317566407914927634775049161777229699330275117973407831050591751218606142302433062874181439709812927211734238595596732575243391903195924931476618480753087782983893754199395601712912554826102918766147433904890479559118095753524156401445445813687303824659528080146361465020874431305569828389708840487519541981147141702524853646067206664806898103304942666602864241331523887774331219039835412513398544477171311768871248969058131361508171400803309393486326918417907826408364776068936751815745131897425343885767674403623671570918223716572901369865422446558417110042176023044551847866478102717003293808729064972812130840179676165993788660840238260530840405368473183193924902183851405115977789156586962844520576569289527660562611945273745062046023843236882812123105033014919890874227277859535858780863469604957478040384750179315064009996788998915653448451836346112003242528109865082175967331405529876129131209046835485525430179563107533436793284163526685007587673547687646194615382965423163383254731310203391690645347541741375455138220196386780734835800334134814076555650843898847038359877575904396422025079256147215430892525500198677999313253387756423261634851420315954664548602644853113763515933383698322914047670967145048677428375617497633310029693515554516546287470686820065172375415101881914250171648480486052443198543379381786145435314879878305855393974506677845242799938696540655753166094290290194282237978142990429290496856643427310483499130663127354779691811944753755888450794027744374822636774597743507017037498551820515470134084391622299608992636747943931674929304110385001921997247899302657936232259229652356227061226451388404647423636369475399313617541666275263703457206900464558551248256031952789950842350575989476748443196420982362496201052930962941158538943064328946814861903779909277212530558729868810551963902056313095052916343531583820432792527332969115315932118059174059635959697784484108087705359088569336715827081933330158829724647395755983675579215110984223158846470453078483098343561260230976718590905621971884473960909923416259913918862663927887066782118670026788399932068489341622032833849090930666806703023920662925396601403833735578117440393436981251368462532133152235752128370499903962899761009366342891249406987684335556566985105134825178250021185289209565407175521319003212689982757505748180667092630445355236670575388032525601654760604113719779892707047806781191154317422419123594689057041315933172387604498216820835500512365117277354642875412510579828535182274983201038729522794720954184369227211746385092128720475383095518489073109351614615073023241411365149749110632890211171505202489612149877933605264226991383825704371911952348194781831040306895459974524199210740663068640109878779892776874428871671271361657409179272053993840911526598341503538928827552717370533601697440363910742282330345999246194347372635467193701229360086451664766243066433942492402874451545658134436506520801005132408664448637693779994509613375010362554749918780674083381697160420770442880166145355363142120145473863549081799895725254326180174064493329076690588088546366159398874321315965700826601631601238410782901023194905472664956997046268528525981074973808845531869809641356871016247937041040898324602354260350730212484552377152420717378164661486831763937124298420233715217568496229614032099820838497244579720524612859372687759780035365653801350387566070165670779713821195332407080675795972854663017957133520568317017187737215244550752063593578830641810274957114610534232978961858980825556952785639612032942287836444726040835984436989355954568574678443420840864242200939466135478702637937577036611994757414034449300522735275073526056975005778791271085353203959165725315964159842729926418490829410000896645572653662164745178575148923079278139863646618390816377819125915023047156369363115990995970858512390149171333435062294340283342550881959427907437388888802231179225983313695457555931807241866017263431018028619553576718080824519199957774902303735209987075251129313768898131199185941659399302347545761685620041884896678752207275176807765473156605517009738772345810867646315885273932079211819199636352558677986134793980039074726802612270663556415817401431639400782632224933978772242650596726929539363378866013215458697749403205727408167723319286880285878134501959395245524467340255461582057747430350939604919310588238401748542572930211408185991978343168703726427196197188722823041963493130778847133411610787969966687631043465379778636784340659829415860688803202032369729315743666563537201064157885123351456720267797050288746997261859034103888779838823989431098493075310085165789257895294622089933325057620156704232157685186173516900395131179430743245635368261386662552064265041259283482739271518006556408013026785922929453150208688475482319587043105483177762364739925908025366037471076366920358568670737685819311661978124364327447520019050900689520832172481362934916450313689218975323842083173769366778943223484416591849308502756091736899693389002183877190443912169630003166968108955131994246573802811928377932366705350875625787024711996405525946632246545177985733437655796084222868493993098011897183524679882605327890159493316018228799187166582430979001499368264023475249151423909486160141250667985500470464276482957517755473915557996349565477727776348759897435781905325674558015645524611256354290389055639334579393381817710483050855610745948502193698266359973259318654983808166882985304371050825118915517201437597242574826547288975885370651669765693884389962738878326241838477762349307059453903767034043222118274588264059799842461984861296286977229218068226633416449066150686519140106395384223848173325989504681872636707526726457917678642482453476635023954399026415936291585246011568093498769022437507902987145636985815534462229316970869142225957427715472413226800194999779719185970668185940439327981721048943796097999607687526032646124952721223599093274814041389695022202446635336955884835835765739489199903258932229025748867023073788498391829298620374792906840315631034311955575553107958754925055249101707797561520142456303989659143630585353170865288325919715647671507574556044403646690778270163618783969338803207510222276521275304730511934195957771343096263515809513836499255981780356893426144244821335982196136655880723289169161374178400932135489224996328601510825541220578623095556455829298806894489234918982653106743696959658775692139723328105380328916323254582820822020511999159673119841526439489610668222225499134054788280313297417563650564768432384227732654611971791463788257649406473694804636970801145712167645907408767505911802924285079326704596041587648272822182319775214619330800686419272112095354204469798967073557750767581001499055286237994591230246739796991954080182997566164541946889490921308250623065959054020699698259689519880805032625856559934934983589443291039022374911908686075103193977709656750482433940847785347693528606106408803966291425123168405670691327919581779208261413616029688042104902396225188681713880061529858892571335937163271001562913939127816717924158234708503946137389161174466686104696003103037195066700222410498599259396925169216177602724782927158904517833050719733753172889960997901374308328717575056233144742394889824128933727367959503066965809745751288163398214073884546063408623356336741241963906921905895497135357449386432261079045744116923061819047778039701930992044399952602961315898662431097237862475680181249248284359596315858627976858028566538555952996281485076682430013890642250604142891486246703826851189305722323634697932738705124985027807351751558579196917266631233545109590712772614661898110400270105328354924374546395646913605230278652135255469000385176485179226108366723279546296472665026517873652255167402685245724133621099254951360758153531028392433596353480644890992904963835167581762628751543827567900703818131853883511045375154448231703354152680854359525816714035754317880020226602338119038990874176162367592772869351337289637262974685467803416476093943123480476717938947148364088269898393536770165035405512810900065874280478803922759933948088534105381602942972941526085441014514778046074114406104135643483672140689873456361233230996231939222109493961602373599881512870154706831820215724520446965403795352037600499851618651987676102937985426664834290225259412878018063218213365510642432593398639835765454738144695032835573511828337216521600991274803501544770691085202138995879120363277045580960867146375581892309751497828984733710330238858961675009322752944201321032906284289496916693214246703916061349338332819747183437334680845593318643402706233276698548384446607364737928083434462270796169421532061615669597416031821419625204003387449447534115730382365161094234414760322395547795969040079663684850919119135544628683212157767812089938527023849661121292760550400068147854696726954260301505685866856899099576828585963330316738988163277433292805084667931140711020437396204463457609651082860071926028989197498500690087288675747125403370496520798820156579024051299331839803070050190157005049826933063068747718228215944445043339311603107436297513890814746423916680535558389570294216936013866024745887880386717434449559972154007164582773734456429752168778634131651687850077976666172976910456015381901390185931318451712618874034661510905736891034783252501773851221895859137052712166996307252738551764923977612854702594582836931192088235304694508793788421187815699458883281834902487260237653459402211253103761231160843532436801421687391087709480969238148366734735609033719832400081773122884700697456522342959368852179252878287736122046203312792043036744668651484210231881746109541207991808386397680934253489678259187361287018793245086275852336329503044888108189918956112846521529640097308885933195762570593172988658053626890986848941502377570750485905312535974140368454855702173928030317248827140869669514803591767997529504816556673757145442756297521073183587974048166772410740520149664600548414980080258108792108621339705557243091510212931764839289523849126712864529416039427767283588208242801059448481294178005757087663445519553838488908348351771248744602935544735670882629413090496101230173017277762164086342021139362907142077441314842373616610764784139523985662548316767830465592629407112453587601499832603606210834634239609611580484580479196421517614938814034401135203433663779758843960403707252537311920943803695203127969478771387909752937657216815996288048558298719699038869662307794936692894348195429543627044931959619218732819078366526662179767811044936234973131841614996783354587766949150907208375497769140091720384823179682868778040255437925413190113682089933506023320939686800334293350143527616152692971784539717907461263462554429143150316905710271733308008383459681352369380332889026500276757801991925415859582569149681968324507471927556292940790953988332827399970578202976993598142099215137926172617147995091404326390168525100649322631249188681744948818577395409833977425182450255078226639021527009133811726436912582661086894006315110108462107460859542309503123335556571332999244316902899927513124601747300434024076930482132186509376974553024548820345596812874692772437042021842974183986651001273542452302045297306221461465240459864236800793704640388939883221279976914101983210035198792067498841217833897009869645963037229116938803385905574454360769482412157356154165869715556283322799023886650581249521479808693749255870985728298595755805032654782278139637765838655930843149847152467518796929649255778806425101311435175399886279919016975865199725664680647546547804963745931866571044304548415463267623827326133627331777850503534689472056008884283642862622328606680994422689324595913719395022109470936311894682601185300197041619824124186581861780032129816216160097061308200536812440836674493775131309234401214538292672458197843110766659372180572699264246974541566636752957629455743067555191366241830575523111048535576642887656906705686585529479917649123547118921573456363290203378501430885126314921738189312433388080450003629732304006191506096827555500395556378963117743099885666564345202601855794287028952779160394638703477650698169894990825283615413792942056203448440032828022442376681202937825898610809905363112213661673887466247752872187000458160362688705766992658950064386297578517587666227005948930485383129537695104311641561160626483521275215487955376253429487836092513216195168527600631220387867159076046390826177439871673633259526277475690352298910923019966322363521729940675054635873987598516063360479807449334050350848791407967462844135430975881962293150674070124294565482403729971089690446217916215849643160402228740589139073540040029292832469887117165450831121847248900996242898981518480953518500657766773182026877254304886268343525544606557093719839153858346315899626021216561514135355910146809069315045311536663067509200563104519561066205477558200015684870423967073966121599880909385086960636089573724001440675769519761245226357721506409154029315496510890598468494086885397438714693054242397873149732160898261317428332032731904003003617544620210542136524566343077164022108666491835292419483323079874620544536264415653367210853219382369003488620555539921776917666794750663539749625939572005323796979112304453343954616032367573866397600961852246988853868557673258239745132489481226694810375297658873647852710367306238606651331571235053648872550103928093565196067537400731207944642825941283271955592420637378945218588374348007688168367709240550039289589095075870384515502379092434539121849078104307354197854780068536488916868763375682591886698547074713672148045071024831414303818547570330630656775224294500148383436427093375707429553214208630010748214049843845172890450054160881148950552680378583590947787385510020090884568038122533634362297644956944322080630129296580998518519859532081078239435410584446923448672758503557133318772073684395385739783341515922995640899339800603276178778528546933853327393630203477445346041483149399973163992334045486339228113452433064678373522777380191013783697536126019300320432300264894127519089435889579680572470630370457991800952262762797839412641146531068215394935244836523225523891299537409593021386894465765459887648828730314065862890766797509526897660950489471562105746319709201524245101923887684016302075247607873484122646053863161646417611952475633167217412320545740811896228039559101554412020070603263532551844180689812700646955199495524588332529379028164669102834958703794414578681374283542175584415186599707867325809132633306369040412163712466682047918297679888265340648122171681589532673348675157006342957730898269269555723363950826664468197423445716243761684678745367067782419063740920604808110612855434926762249367937716624355056216365974633863490770147209364449767244855414889180550765515017766630256307798920370762371354747364548004907955609434082055283008553595570646172176716305396205624947523242264433851207834771306886587513716590694895308428197732718662388522908233455977419633495432540230856187735344190464582861819132144810522022733018940325966234947098512984210585710699971541123515002741442288992901372734283124303437723283465593073171654272030099812876195875243180838433674789262458344445823655046934215755888334097460912958501720558904487563889996576853093374193865992931616766792584480041156220664417383789351081305166687739141930339193005324486807095731270934003107298167269553679511863564384480268685477521438966157096026616662753840350812517077998747612492890485242669161947385709426508853650819855259549906028043534882273200569978709827437056132698780147120554962035120789131729259924528147246736408153187480855817636034261003271523442018651028622400756311623667747601357013228311367351652337195094823459962015968559125140773954609232369964974152752683119789670920205795574680361968829984505813197186388692959657681499616676867524300034657503130005483314316261032534621151397987394343942916251214925039700337645042971077560519442602380879871711629825086131517376874923276878015023215633559224729981415459314685146110432128900964549773831926230810901781865697668735676789377035408418462646828936701063726056224554563161943426870332007992401944816754263793141628560664193727695709518802833081150915394980114239972231310883979435087439111999634750213812398598015529770508778319825152759932374131133134132023108520442348483972008917257734551977662329229153222374356696028526266627218999898718906403520244528740715623604193645469007545362211208537137904671941174536062198159651816620639471595707104313836421498636003287158159649877844458753495232727892809524493455894124380412331835654475955130957890484631565831181261901871263501955399953572451044328063199246923919386735212470031059080893482464118207235355744182822608611613878113118343674585928771461579611393849353528170406375492495056418584397088119172129440287568525676720157700966543315523141903032404001777563785897301799662501412349955743136332392625681092771931691518312945261886810358645355457643917624883661971145266072361989510101833313283373600893314951215895802127744406503665693261920666990005227458148758723029135297221512582815246772698332648180958936764036559365983372299329631049408512060305850311504425876770953479087915605411644234340510476903495086760908056671397603959061923955050075619657368023693909374704754673450588094994202157721686762944375210308035324405475841880310600078471648757886242010777389892798364402502088336629174061942555396524293456031595690382817881653345970909617694387445242806834968814958232676917149339808255312228948255391077554382730926628253929168712679582518680014904174372174626084103210802935570474160482581249986461299672665180255646742969404982028039333508470406799469043842694439439374254343222780326157588405537284874362300834012975109597299238709460778087130733082871939925768672354285614207996531552532749371808378702246021977691854942802205112121393801982303898454839726363205008984302799805973118986644558836806967983944814544416678863073479455325566932766460119660973114983366801952337472868815095080714449365785272331591476986880652161651485915896174814128601728313767459553726320435961945129858488222418574034219528320571247098206316376103046654799559713731562282641671617358113570774677415653855717314694443386933255090521590855979342248240310290666019966522729871854510912861898107653703021798435951341286563977750997034694259700018466004294372831053612424944670605242364950643218054478119989425974411134504541828332862715859156925618921664084731655996345808183960030803898026610150060291221412877034759703858045203314467367254401143847473359743896901206993463184596367884914987119741354794978665998105706725375996985114443009387614862227774765050001748872963831590586186946722382877966647746306773439969434958263402591743710906084188390362803857937415723315234487553103153233703356110095731321859015317469287665312011814233532023416115697730715903596568283199161490808698917479412517449519172735809817702547208666439775333903694223648876693572148163428897124751091207574397514933867407065486122972682115263495991610877478797191678905706518840394116895778242707839318875022604184836252343300775890814563725940142246152901243810697853240595769658298772263065562507052194761376947199504982003151688678774785510394656875804243086255782710342740570197938681091145347862011532354988481700404543065943297997050951760770875925139851551016373540218788663889142511470669809033479376501320962621877806657872314037169650723127222372201473707734155869827280767922989795323111212288223416683796174765086672119274178860975833334025748620880414899953711061435251789038250813872867498366257544644589948729794370441888827709960378184115649046473332208844335344530462414469751532750849378759240252946173221255624245735165939990929842439201475215101522165369295711708414236856448486401616824735168887903973023258438968977311979436472785328408919785594236610991922727318973164360116019047244313464081625871268154902272827831764278739355159216348488322261717401517527356027834588459114529527908882014655415393137420817044231360842732417913305253411297426812638108799118495211849788272287360591714556637964936096484940364675961682349225507425622697481927705880030500391879979922728921551716370198211148523526434927683160037032339341930775542868480718220901474577379389329621450979218273040913971407584267059957978569625675285369074231260346806036738776739077297911051711177994076782115411200780398141429812358099386082445210034872927654579083230224491374009268614658334959580416482151437941814383171885975191451935136032522700907614403473418608156471857596754891193499626463583574095908559218106804232012138353222861493486090595379228598571620669186389319318004465964220298374463325227061737129868035653661557462961683964293356189676629361405295608730902827956151152913949412253170080150705884023972345179885875164880937388813955190642286497901233157492398162790403901697110008326689557666742908121507771823448873279301571284033898624972852936772842108979292926565730663915667522064291778909836868911918903888384252247496070411212999442239040811632479323968031553525465883955074315193858034789942574430579692327585382374448147189692275098746004224824304584263374167126265688578971056431840447376344827955043081535803097096867497965143961544644752541989262648839273688268316133469967591515296284211741858438251274145087511341219383569318367504964999925488914876332934018838891740459966998261316188797328027241017721301349950289475891885463874241392982357766659148827423586314080256476233903633414570483963013906882433538041401492668747417047453209745471220043801746660952834352475348535029049226656627811501871658680145346006250074409997856127625002688753781151949980742056775001106724050754773285725907902392229886071360538821632339437014157860281426144736355306870747475436968997637459904576784605126971334375003204437234850934325060233849219830646671878825843939144804632166348785284073686034683388114914304262432066889107462134974425873224226454296342867143682110205951628044424200645172658752967135129841386318204312208586506116880256799567877026509799009164744793849377043359328648388824452325002514634459087222722686526305585213853308648028988374984430325758605750969783557821234083988008098690207911223364006560857131571971157489855537986749974599253186460941189993544010887693095393367763305558669310889299301366649231435644318174546190469968197795003381393929886913025885526992025589060657704612226079783059413827449690320363489943203084067885219215264835905654498458374665706329514955485176312492494659910826237953516622373377061130469005709219793546999063167418882128520923359011827911935646273895183778114028553894585966234636570468477745371403982425504770554943960442181093197039162420869414434002558484737714449777634163652842783265929658733546780612726584492368414413084080360878080396273986851444395919504095272586172232659858469300859474974746939083280462439115594134179305556196880183305886635324531207470646518553907561248819171726487917909414999383150567199605233883101680917358436713286561988255540560994754661199892675280396551110167885693785503367454540630482369993393839009806958857736847941731397957265780360220569078918523369121571480601035849752013813874593530409398699853659753562380313897829856971825257087762339928977663001052550591248519865564040900844919971838203057115289251446035438266115302746872655301004644237561929184185515536497147913768985925241448307483597109955725017718334889290899048268825971323109981157833533218278714522635508559606026265978498029688372570345291487129673983176116600415040738460638156933708509983351637327152736202678069413164501006874444874452531070146345546488248028990473877204707467252904804377920540593124184062148450741061404823806631814325495939408326387864029149710235056600742124182152969812298351270398556749348567494374701810830356394865082011123311493926014005102176454359388686615041141852046398713350634925544790056578528884943440296861946314669299511144211509769142109427800786660042845675798075255460307570433364375155915559847684291635687519150757442988043670831378503864287547494185212261781808446954968123460988427124243385319284727648719383048865242534345897437854794924493702680458736991237203328542610267735932103620104812126831139829313670176736725198701561662292552428100561063029725319070431634091168194758282989554688040732467879428611535672625578818079520658188660280740347113797667014483725198975677567438500689357054523553969765960628698525805996355109152121101391123084568760207649367913361594022413780108934319884982811418974546052937170663761724125902627106689261640182696960711006308125123303793209434114540308109194209342390332657300905666226240307396338839665535345028031846069997094886625205990023786600705632566984711504744672159664769732337116120267512480503589153072590999282544668493099165502912694078177078691086671232287521740401733589206830534811429562734366682540177204567674596099320519336812198200795454876217219736600919730480095067545242109623169517590526216166121011216498809235312124965094790085373036355192297890692681385076506328564639874664941556700315420397910209773192218161752272886467259452207606541038417273982352925941207117604752690126957809321383794239748669106970895496711271095580106112875233935411252745442822619041408525432933113225378318573819932856436782078960958422292359754355494885083352109533708427550115168071972995851793868373918792108914891867139478053171410771894886680510296275342807215931730897449978655831628745690288439888106260235127398280437403237309174241245950092104100267918281140372238615817662682892305216116152546947055465278762857345767112050232196204431617363781839942363834401756961741126610103843269742087682073055416483350260167263335986208210185221178992395525669239889630671527142581707279954317681171125197813407273763586125656825979343767259131916412814078712228580765921556240680858638238939323165876312017871874357778830308619556536623486981635467928340113212587407854700839051538032418284416310544567361002856671126657755861247694472429312842927103863358340178676279152995672974084390846640525283554272262582608815917991366251783403382027239952916927020868838444528718751887252957515347283802132630426589378011173096584277296245392348912905274709582216523327504112787734704654178333141392096987153908895334756783757433825349518583080723354599977784502792814762276772027509544178215637040545546265716276871981253433202731900852498512874660132076055880642525366862687893945110043365664767615125650891495699973810569555807233890414261600037489144647159692909959642138337794762236768418016476550921296346354376857296850127885749606566272155838032440182168785522181164265819296635707622829271198656883934652037904126579353405460448888576250868537808590655794017791930018784944903242012925364620310555069034905515329522469161362789539821388607448470002295207520788992572021966159558757759191804412946069623646816806436718334009094507405785742438806354463256660472390583848914368161625659616279979041758054628742744661957165185950920424079137313407562385502780574123215922839019954312148585819431794813779655944408103591675773208365250564921651193667224352902963515436070136593545650019386934317120290067460239782624942721820318535191428280266245839258047119112818135442168163951957254650000034046523680748375604849572098407341673992524369525761383204046263378543422662446406847188339056377088121483370138154935755990056135749395613316212492584641402656055643440906212558915077565493334173510988850903199906167156322555956942358328634767187997121167182667015370101631873652640312537270873036828666883527352555404531156304379269775355522258719872663288818676372978736726952297425189890301526610808692435637962181889710135955934670168082192207774100362850194534854188972148720023010566020334109818702777238980760991171105600492674237397976268701242742847595859505176478330669439964861497566913134597914309025034348141257321168515490733009657485091313875696486669130118173061260233169985659613606848328015774547679243696726496154857797522591094354593634752503675836390240232623971111622580994988417750907886604574956014915485303497868820376204479815946262793483490369061669080785495420139226644437870644099947439544396839559585447715794923884371107649313011505048325053154796051095721458314055321990529636625714995820124788139989332503444694576018184872764533860055473429834701505892410656334135204040873882052241727768079845918566463558538368232544302134489114283809001597363762648236716953959444986215982917743982905643735012466804833194054630760317465502360500129558780807985059445967977121828038133613423919163604472322306766307880507334005953654075876899354751661428925046281046160932102448680378806133088046434129465358471377752744363954259221226824686320353425313502634787692755977946882539780887373619079281631803087602416283503789301446333546913378218035905520518323801982714110921608983166679617350595902104621476821933969616947747717354142410940661435532827157577746689056244647315006144580348958001863045481198315538723699192709225280549038686449621864080988934173547233937229915746419676072967986144344601210048728298065951865318550683945359337812816128482848538245948958642658202312273023828362263525818647628241254694906968470645826119041276174419335394810012803813470336566279659059850379825979412701003308649364708767423122644288926161011904631396711484859530438548244801781234807119151880304311144359763661453715798956578139512416020779329152819246000993327595356393442011526909649696779128876390027508171204925133970964693089843118516504741976261352644012408665000134485059549176739425621741564520451276350988249448993008628305215549655657930368587107910861370914597414800846409242619166731974725643631283334834744434471710630985872103918842669857013882077861228532980122721919979331701592860827935388640834183650338189226856008433155774167586066326276282962283268129722322950600833320929653807365538256875167812815785397591631264573601410136528863739070779464053391279420300905701614940577705437294900878189925419270594266925325443377058187151712694945356544414412766060999868467296379813063353968339034018824250198524351102228555589551133715552287247131428759239913965369306990362941700146635194957263768978112951648591957134082470414742088798452365994219066126000503263418391676059212446688082844698988183612213107655358808584875715655789250994316895849271489466749413687078324133148329862930262232181189128559233535776724061329037665546256079994060887434259899292058247057953476239689995306214383096917943048282931227127246347448570373237544823814890736541077680430892445589156171412194911696754022096060112316963521323649855090404216243848612290810938401547626519205740873317179564772821240335728117427020597185816602899216748704824762102632296693242382231364000792438937575448503702934564312904404523831375587573453615185613450241018111905240426761490856176139840221714847109116740036003235116066656359204568206243174076783543273350541216817843512688747314457323879292702556205766663869232955826277536193351371482641441779784791746708687117154650561131961495641926938951153847965051930979574126956213000820304964376987315450255126447161830454996935914337382377855346383200896737900884072681757799607651862581818968261323601766336953943019346477317323436184903188039485666929411501804517737659061496888699955157468874732544105525633886306337156447538956760256212790196923758108940989764314643457761494029088113213344109971657316442654684692166703265048585574566660408521029627679883626200144474885229549364161114209064005582271636038343072781024115317400850653068181441775327208005848861365279727109552598440206521991347009394414201234246305750181595342730489144189805230929380378194719766931193549939743458796313068299953867597878828296154944832239819857377343484384877174138183983117928240650848029771227310007413632446112766095223725061588808988849095074441560804935015765018634134252207160868405377872958010473224118020953657128502977119835110255691783139219329324927888048711282990188322872997383750489128313458104618844559663908975987763616220966384423995519248548586662469673698943808683279457093456495429182823898325138961677111661969203200616957745736917674460564541649064185956561903429120978316204620372573590028847033739779694284566060120250679010815576682709005943623071865570154488763472892086021935711345085562825978618687714812019290339460977238463685531495446789344935945586861762461526140130990548576356620644616343504845901431673947824965224402026395230293132041286024502865470870217172011419398849153512799352375841559740707524232705585032126034565396804104103186522248464075781560403445887888099338921022172109022978121555260753121531578237149672300056162837994943536982546073099992706862454270616415685217228329496180045777874557697767424341993364197230395366582553278242117982397776024392839186613122774512306183044960587115814329038379848727385771593948503211163294636236005878876990551984726981482664020085739791786715291689597590680654524874994339258703476803260437265750053152239642500544438787317001010609725543716872312210062274080866126232973138909973523318588046841174260261464851764717927704316252870154792235260027030628815303193169038407861875473821459462245566518984163983484711224797743388977735918833427012797167449996819431327395026726483755536661285832745560607415920136067952342924401500560536412877441016665629645197047626024115641733117554921300469976625810724757324546483089976763278058944149815923477567597994430880567750444217495365722815453575798749344420622054196668211327092346865352888288896185749928398593584792118645844644574926540962672783026032787237965478850385691131887482316764917895334091389060598298829061879995465394725949383814904280509169791300527485530008780201529824791047606481062034430232885487734558696003523690236418138521075206930092442245017427792405065667519661991231483648243351703542582587036263231062794674819908766525343404171249298435033549042551209309335616900241573442288068396947394643297616731631164553109656964382247615529923361778118718405941702246439965501729077257214899956165842704132842884609889031399440732860839510658212526300032837946077940432946545026968633775250569182328768881588621812641498646599098862215966896164244438147097262219909854276239378137451234948073521460697462785262365165799968796761280490411623948108633952899223914010939598437806032879115058821856410985886874496700722760956897497874916176905207995449054748783720885871842101141532217164191622263165939147098900855978594340268960450096180839110756699722118325494592214457877182688975805514122271425601112844943626249733583314410318365039540632191235752511534900252503384390985210936942423538394272544370434953028662814008464201214824835598963642262431271940223147350900527706287897931817575354721671613598396604352895303582703771899451053239692238470232731760657495294821805636341500425114297222775316920109588056286847435064120632880693486028268678938083234778632688353307818878043891252496546615572334996534220520993727325144951553889471504513580518336401231301708154526533980469390764879276597838129846733774875200796502990568191301897043831727746149760022517856036983080618982115068189364382239418399220311842788205812963097308284198980465199872042884871796066913280508027778312676345280561022332867513733543462355239795514487751048203885871126545152828214509133900175531149239730817139763847500758445603645076349414984019681947860023912750554848587697999366920832963532154203978478114423253402301323093848833063913621986254940330600221042102711096208927146484280665964933884400775944054062423039196270090582089424613021853617926049084888325012154386534926434248818627201761352535772104455242964486224913671583549741936212808059713035765737784400317210572985236357652949191382330804816089476461417633860490821423630856510168546353532139318395446627587432945817278021284625455474172217611137038824649616277491152765497179201679520438433381041422285119928138745974305864333625140521303543797174348840301450528555656149282292347157306920926643891973860768109412013343074610942378752621243351077918405449979106899216274634217458383971627510098632765783572777628770946495525251330932180018087323763854879755772486294066155100726673882200229847980293520314763216309644059906611357752912108716572259052296052771750175010186525863089283227925159129429790697594163140922840726351829329332253208628891077187271986883383876027390319601485558387482328380988480511946316747096432437651498796748408413383063896950463923258028949530536965884872657099977151882403825622740145010952833877113656654231043925783869714722913713926160646909576751930423780962160453648650676400215249504973959126414354968088331043028799815264887566451715170110952536440005718875828292132772153223508516105680375840341740831728761085599448415087052934552779871952775491767844344867362104066618046320389541139720596254953900297316879553693548682241883769791637380901842090056982206576000380202157038457128479018980987522974180174057768390546617539208424535534597792104852788100767864029005888903497838012758577370369731082763917810955429547127992265128917671630560994483857531240220623090289108256685723067845059143276367661974718122484942489165548517649361344734842526245350233928818754670351105364202613940808177892424751588002891386826658242109179184390684775008829203851570429275259875324160231721213484129959743108071285297430693198880934734651912247329511050682597776989538463834265469001198640436318823768420400900343047947919874625825236600763271471978617216919189813624047499330054404818829661813182386561508052588777019802853131195965110030399852083664371277900002977172231535977533886262124510555871341568773780260142122240139829878235717539912729328640644376081598177406603413101993034753155322715291522423604936675528221567747656805007845665751026962611297999589415118728441000215395671236061357367963516906465800877553341170997917932289550011898040956067105797015135562403811801029092902753391085147641207674513816103733748364279592399057587627487565367610867722728883274294014904122814078178236268026108991888111552296222360704848506223151210168005784550587552360540910432806857555101903460707215832713138458830168182065987583380999832539021409946165053937864043939830079047059104550580388939271195430204417501545269892532466615256598074073885609112914943658425865134930703325695956808727032340319327008476804563611337126801418669205453548200680339991329028520728523473654064136366319462271761478807150276185065437549830385592066116066504660629929694632705562154699925976951609614034824808277005280768300794837643604269133486252066663715293695154178506486612000187096726842633608599544788080797849502034155573829473739429586321387460068218352763124441970883065665822044872406804323749989875771724432006288502560541722829594549219574443446845152084223679412795440807513007473572319348067520744163745929741275806520630394136142661784718668151218739205883131713731739628063276687927178887070315924650299522812882503431493110596736170809401911235311856382970944255682766084775876507329712103572386050402882872472609417917721898095126342700807127319373396964104330904760562082355538910514005968559379251617973218105581529354982414414676350357805069120956105954663582988961995283654415432894181859298654192353474164710108047341254470198941571045734188093196678069243229921861744272609139772047851805840087769404547327524793078953851261573754429050046952273109656207899783721182482451671509946415820640619602238314913361297518954182798371209647328461186222307391541253229197170253777544592873830301512672373306063375944340327707780348863158838386076450761093158572831266112440745465484485645266125951450704985499556235637970134184575608125272220968168633004417559475302796044259550162661387712482267338676548490009745523619958583395668363413351383209138696983899860124396951967819132783785501112624435014036545847731646362910737510672801260490396681000847693064842770249193304001881680269763712354528575329834846540260926074428551928400220776533024266503394357621111404985848380064257663361113264858475350069275455919532697052035737850749834561704535068502609987842871134855078577314080642443200928835849154907958311381927202809101205777470952881747665420882603595218716887221565249934871713885602279642941651918277984416535273745298191581259072370365508731320181698235759859795764396385904776764460606623131079136686882307546495104680472907840103078601959321100574659064147560739371128709455097813562936594379527820938548015124517449708367543178490735658076775512562736387959984019492960606395639273025324004840560102774062704750093619038871551273707258616220880158752202403096733615451338440750675359190642646651593167291470487880374089694753951126754719468777829488929721962879081899700971254440512494631125170213095499448167378959793259011832839151769074008334191719636789025266806473024052345485993351546954320347530011561452738253763796175545350052822156474542495147182276900844416749045101367992134213476691611514934275480548837439609511878974353581934945587379425206216499310477688004036599151236430528927779263633048903403954839029532804766886988105731930835952780675177881992989160863362133761192139432652525860143926298977599340341140468041797225671116867268857437998220453715837286400812444854960230361363246545908388469664250711549591884649857015983594591619101132846030608982253078310592434386469567539069062514212373432871065551940822979330522304200872800266543195251473900825509806324475610592094099008724607660749156300732692705999898569960023810899078798244966056691781351515865349963956782333456817032796443567351554019087573464776816298659173126185038719011214720453252756923656737083987021872658660700452566495753342915447124746861562357873515973241691834124008475791125093389692872688225873378996587381614521895600528184358085845411100198568993434196145809420860342125214946692848560379371419544597888219129609996552285413523006441227065720350379902029774251223917424765902694450352959294221582458708428168264752452723031836659800009468897311000581345557040964857930084698282558117392591606129504532566491699970339929552385469845364711662403984316130743289442754530045711991368291004910774849535213919288266408999170800054039665496462581670570308491935638246804790314369794421317568045859288904605643187975272697689206143881517029289033404320985099312636668978469712057269023741850512778499192947018211951965037374870482729468147021678823918020688209484106099026995307869415189289718785984011310209884979937818335715621376332935178376398346464734419088168193386471385959040565571374823591344230209778387643448376401734299140272310518843426444306428079192531467372371865700661897694798078492169804310422900858749532424188184270913924305592272778432663747154710096971332785771307139337763391081380567483335819058468912826215837588228291126467623368646396971175141526083116332878062999309918676721944078682303201725447948652608139963195177295400081474915200399708742399662334205150157755674206425786322749536688652628192660255144328477881983630753998106212804271356102531812382591414607326913338763351057586324821155170078522223951833832611691991342358650233413337270009262694000689416529305138355146726809239051360339991020950219572747756218095161873970702807263326578534728860173314159214513272028012676333439613911331248803490515747408860350716532484339538481387516659484724595064787995446341285697779594512040423722420947665024820131603462273752265915969202160613671427975838320455056970746577829719097448457620262085806060536288096288390760910295353452548757899497662014339597041181924943402067244663692827853021971231604525903156624068388491804009258070576647381255306446390220101875618396039602768293714632488629323876086171428166352988472425794317399048555722751760787185349530660498004111651113348487418305973482819619714863944484502009455530188776169555803299439413683908012775100151800056558288236205451757439741355013077317032929356218803998024126907753527761122860867750150801436791679822993809102055392038246731974153873256117261922165990500678281731414628647455434653507788698004560890160509452870393914631362023282728163308917603573633612247616675470386098315832344642062698184611073905161675824495916068138149351623250122649086595676161206736575622133024848361027800403016166740650046407801908115957421369124345425402612358255894023207392797711800644654909035997987800348876247825108070326846276263118124719551187763479478709585648011945076616668089192608377890256652676332816598728665879854357618697437654629753163543759687287730826621418447581970096996425876593455813804497977053928184157031442218224650703501379875071353718074398932451496048060976054601460428989288176931937368699474360734496848042331458287369309177623608570298377797083679453832281931819668192045367413748996419448692951137334811543746007813724785350708255900409255819889675326016630587760726366852115260569781049464238305508772332833431122851298731388998818296200718656659575356641632650940127931142412072921705919514448921542239973292287835619443174730384846949742042244383663028843556337160839502030254227324707173506100818371449002550380860756591625007926966696091695081205039371707161100702620620367198608511663209336380075971401955613510796310690876793507002784699108090682186816406595497989806021312250236712907091942687560200957936912125372901338314979663346371896252210586167647081102725598737583279793891343862814918749788503005047063637815864786684058737419500638311920847242934442226560821334880033700824731633407890663965177199116552823195704680377692729833711360508782780388854650985383330615423649912036541227617889179578496480127587778345757323539387114805272988066611244759832475434914061748724801762816635334881279046224892202286742313156889488715676508108224448869285156975323853376325071412798120643306735584617588729705982353566948527746249149096910195324329523133678905022429523076081957409174932684568924406628211056454309225533172628044329847891454761887964226199386049423367424742861561498566905986842586316037345713078120356405645839132983749491245780051966922683263629633407790749155243712331603470410610637470145310600888973655508850254769620858175822215779930207077956390519084432017220047106339956774295414061326847971867265573466183331427296720827445814824698885549654634442611698502424584973518033656296964891246728357256448463894777233928473816614070059190448627606567117203498124056268314307585649290128812972813482916371382623088397687466602741013869138942278153364599422428411720723378205392105057762785081342693532779165403468674241559237473108371765544905776840594366540519353459567966031833870685068365461996368461976073245079682314121394703052077527753603779824516983982399185881595974573422136222571695600104289362907108634640611365986513421552916823767098088386156696837753494426524409448219700943771661290170590961852023679903580090961131485120254606929306174055459108698794072928959180106462894993941507339859980943296970278905151566673870074961980789112231937708598175115900729841096436276448972281451454437816770924288498356153701017444087752742523511948021378519955454480094325960421702323415903908438933174933132111949773631658048554692966706100276888091648197624283626627099100481263465095408727169183216133180972073745158995614771514462413048435376506214285579963999181811334477483377091190507658885788725576425383839326402525123047296223047105515636249263162025292167999882234616657624389956924822163105716771542158822134320977946271177805153334728047497010840043744535870578211202735860329328261350354850277383101530674769781212450157391690256855601045281828475110527239721657375371534000769517280387909383217195790570769581859740450058287336443991581574548328837813987048562209472648371857653643879384101593677011888624754269652657272833672432947427561414351375554238966787590060757858052400721034127131987325830819758590956716024092844608511961740171358890053318110096133959191430838897800401159740914986594910730553786025622267303224900530237097085607837473987887326704982068432458958548395541165736367950559261220418378424507547462961212622158291948870048799401634864304274221263014725821946394286633307466329924185506925703118802880617919922830067406690730741008308813273498489432974348199585931214996942715302819903803490028591387697416237244452058408157908831794697204701363127448106262040122763357482475167513590653120567147231957612588025675391547576246078564555429872570082729389585164347785035182638868662740326041451850397289794678198703726203141009708876179936205166456786808423243254441327142538116365264368509960885638378153341810309225487473337170897337110686711632655670337253236653450794788406257517498669103381647522421568401520352954885729313207129817151541353130734313982382517882659518816743073973229240884011655339784370047378164920597044853692618511875495451196289678445869156501834090080859114516907552051956529064337736045487053326989121804758684920505460050843788060324925698561499801245333583950779892157619542012130104379096717998201562608053018489677352532670950591657157637425619163962338494656810780608095276707748572884040877910670223442071377334768733989549752111597167690584438213270648653457472481318121881199952868431798218722861919958263187362506424503621166212389720583658602381672732072417398985877147031106878378735662353608846359391107608688735563601637734974949283777585030249751596924936252841683686465385280317938348587761356316211016339659811183697690601261585144208050350667459201207578898655687178018539682385079111226773902697230300405500177762867104491501990313410297282287684658732977722565626284185771592923280573176315697438929721035613326399168019306566242241556243987551125022483388468694101227178277736312594817688138810918129252880123755758137802852416437657404048180503979162732729024525047658794084563409943997736561280548801635988349284451804690109193484020058983060624351358564223295284480087991328008291315537501848558014677855952764469511941972340000669403203131714263414504896421484472967592722016309226772897625312383356577125176602743570253486705014613723710564996127728633932626364780056252867024674139011607069353811796962765026600882033717839116796704890247008407474355940084787418433240401143571870430294602466660739649477854588847197150333718448429254206845578795925461736370401591905746607712333304126106146011188774693230975973020174722441503850208238787281970820778638059688198901074688477134199045641750609481835070820907237086266566423608557900981463677640278766247086730068521528578042449705499304095298347867001936930075954792687200933449020433822718044384195297265625184989395262047718366343664548462266352862776890208862663455856790999877294325287198683126275929919758456864509424986599431588283141881318041131974495060503989217462598328570677950108364581339728698000465545697123019111838469457840231142922327795654032023020397984795654524243402775015724440766820244900481778511396190950839953799027234099299860691143537704993560675390884868917723395082038070858203170354287280271252830368383865301281458117538947659207612158332141619195568737445377729191088352579106312872383083081606049622315547850049024296889787587328784997374631511114022132105884170995952833531346307932492388177883234802591873851436501847880231185168869749517812377110054290980265175655449396184274402307358382216182328161110762838744143931474651074692955354337030492072322996639380612429668827845883165496509517644159869522040813452012856766657627433560240675077978230219727466573627917821086815420948669757067216726361167086417798046562403826071919457559258693869110290747448253829433037764218582714135059329587294046372458595721561000924950501342961946707216952754037329109446746271004101012085438284631668316443517078492895431123292213879471243973804123206912223586980287182976942043074281795853615345081860086233615744535567873791452928589679714567685199028488926970635716784110199214834339161048516157102943979430071884786473668062858375399277528551121967100930141315164544058366005845744238791834186903144007804220294447754556233765183474643100933712308387460420684724931895653088548249969603885374152302468098970554471102765966228545969637028139871367652585024921809516792296849416392593709084100445261066816999222565441925481398496573129923145150273285003712571041896936046106048560393917538535890870452151486230134986341480249209396170168186457601638125115061664147886528635927992372244539459951786397998857598660452822963222463748073836059709738339327091936590894581109561678231008838684311089225425783004320671873871245888640924912714460253893924376673404604001296030293655106976028671654220583754070578302634682942436326823260747655730008886493080836799167462308308720328753865206645900562939759903539057288183677084148800849954025408684069204240352990423439121126382322812949657654044665483839450415125295574564851463865708550298436696955259680346387487838673729085232629353883029074909854513008267370123201766246415839944724510883189802349456138503223222993938166129240975676403531467622211332806044866386686643269942763559809738576604097957704091820176262610585752979273429291052322216500014957715802563293304113193586404932723497354380307801434044847530017813123070055335470632786937428541587253901849450727611463672809831799870218492444998834331850459859101513634996090756808457297574030068455512800416613605303685590223752854530999995548749606939047019642811842629598342044462582251661143627706931386917363651396023488107848267484260888705884020855891628915241574708561234224872974395547867611320496605657467388037512881731424924539133588374226238337389998545292185709703783815665472879327181617777562237665170832389882864884519399132258375491412769860354626380416479269043644850955488756929626507357573101140044691396681595837468284099258653244084517388522075905732058617768845299640077354537075772457557482805260366894505373515830335739204441567964862784531073480971487745781515252423666221473753464233557415484662850229681679172429167274511252831858747444753482226237490510945737810944982318517507611293135239029111132650737728278157067755203256195827240909111186089752984528761045109770457685919324213457853736515213904663428132126484595342638490142039367231338128338718349211860456336544430789943942736044836468545917496454620752552980495895986568786145759291183803564588662688140290836577684924802174625823210954871485420944681434234483483435950490109550832689573458992697557903089052094464680126412764768882077395602595851149600969247081119038477936650679074236801908104493762959558075184348617523474264749231021014586330581868627444524593482582760071627483937604019134074576930481478136814246997238326849445767423446336589561525910688470697349316596284276004888449240112902091457266269495739094359220767568122589064779245565379393963722856323425559671709736755642963164364159103862744628509789575012709806613903400777180681295362301524258808835697429445603697656706086612965540977177758828736513444804852479697993484103831014274562997583695703599816073012881237303556343717594625770335798993039793497524586886304517673043558307153437306142694499361266644305482163290176260760335821284508014802347011123708423443796472977017972685096735776600667229500040853178660066689914901423457886584781076670875841781614536629396273861865634318560082232866593175411538677298854390792047752885814615860222248738582219067804623878263273176676080236969742948356893774573896668877203795925708633118455357299375930897553211607017104071972017021094547184110679684627645606016028264538925565198687521039409196875695551154129928256648677777894606095507418966199698622591947300798771109351709120955454409166070456576976841610847918439098215583216294702023544560504380791738087628024824787937778556863651553885303233409002506069377546077646954267475020577342006532128801833065813650021066441613848028053661528520465572029768716038629875724745023574120916665671913181721558987375290754907041060975961978016769901400821511135265275352472284662879417665938378761139711085649847983711937685901694703347081421471386178123533144592287008901295365464878380847281082636038977703531121701317525329178419940288544017030677577586946054056108931802644396055835621720017977747509113355632771764675655700208411856767852760582609160972032355583429500925254157303771509069267540363743135656286771702424201202406926472923612481014895571195616405813897018542649833650594786958651928133500106695411771847793699534174923513139285392663288700304137084086221532615549621395139509080415971979113464550207665690860088963992282326833374913425532005306727022961871611250222366029783081125587254137197280797903572011911089818127853538597901637788853286977492147790321541727043031792470487205147116527455395561673765889587405707187186568340071291554876423284760840479059090505773863209941012421804380991691385827111983516410565047436242753750658273648821143714450391493100041815186595051961677467617073159919414956642990296613146388661634452600071245258711616196914344526134524472579913865566259061161553920490051511039546158849457867179287331349685821459141183221316164563092662521905636702859202524648274624409578257621343246795959829918396424304999489019864315656250875754541379873436302850303358550748132748111346345316316461450041778975780264953488116561343427010406229228921219787638398649180714962075767225672929931595926325817333825495517503923747286553422339427560630384657058475397913823655788625369607836849634582898108844161716856952519938199184637345031663848269410062303048806626555433243021998833209935530553798792653814155725256850792553147949410147037751469622016011845753653442707438527591226001890988941416547960935605617297517910659942932237647195191571828487046664101743596225389111656239258999271191005217467877510985347607806706656823257196523954293097172655767685795473232530668130129844674570521597077035797704272006979660501099911817869894619768338126389228720859981967426563771690427946319982059768356844264620004217840777179297421567219605737524995219819642763237699366218852418793757561898635209082784716666498540337214801859101092204763872884816755575920338509271013023737597824193243214165512560007496595669994654197720848438680599589413273452317434721160279960893036903215694774956104565979462384007266484796940176415108315307138846861726980920146544311103003540961453717553677641329670172830725834659597068234033423770699991414984296765788828321843933715353720897083230546960612250010669771970291951688164602853493599612868424425995037410102085663358561078951208512362401030983019619611037574107022120400626633552346411375629519500089646621524155880139035333659105420553281977657281850705603712154742471235324498695563595524584897245946270997448117454854471526169331358794361030869628061717908576844945422258585543704760044099843738088939961342428421952697744178851138813846374572786563540886084116478436174445108363011386944082473889224815442114377834213593284556331348949083696923535712937695992641681012697641724671124691154246104603470588665576133750353278603214438110145791631129362685754168073564968459727045261583103684858502188267163635282006740899063372355535322480888106802983093050402007528263492490564449570051148355544745202295283102524355820814206747475657985922596613932912653490968310745999281099640103651285946698064428553428336115182755555662588059537428825151162230941949964341301552023445039437121443943032836439627516122562594561557900549935298290238962955884916871827191267479625279813632595065130193301677219766736093136871094825076329065064477502079941266836123820885682611144642889161189119231714303702603673663502394734911173663958302261303145343307793141306769716720128589459680533463469952384069526949172608339866736279235346400167777126569550410043254477584095950227150594323845032721604773833777863682873183229663205449987519020973766084263154947600605663848122575008407791375041477352315077436189218680529686630674332007475399851673846006991689901148584817393154487449297076959247686304660272474898022015129907210807997134017994580234450326317040975457075331057164337690817052444208608387318803758840131158527201613942779216588095501662270583353571554087523286910705457383337125684603774542806341844456293252542205853747251823060159301159255217298493571580800194747316123697507531641753707978220297210441639170971350969953345460597027323993660009487076728467533556592885542993668934043131814244231698108336220590740685160760037213569839695513109557810189277303780626058841147948513525749294404089455185140948923450985787469209998781106970052351666595379646882884197938084900645093410755339837081019037524495141441394463954232348271102691817357924711475680791940851605278777326424232567887713873132212137571550808432782089745552420859503861636388052997490637612864903090998906901710748849444257317923815119387248735598440061810709281877441223290871962191935089935072333202724770257096160947297180159087025036813830421346117202467722775631864945345075321763320642845575946444497860436505827941058455188967778507153825806881496066457874940460572991725197887336762780825237213922321799913908333827370637307472281055422295138419358003513703253420927842130641809651905702235709098071368588115084618824093631250474399931605883597399846852793432581736781652009680023037505509131098632608288942366940327796774600488717389422989368123761561853977808236953403895045794199484794796716339391989216161409708034777983999077838664206336773282457689341482705259265648967409688239233283853401450652537512042473336861293212338246297835292413079384453307602650097958591698806697592990143339037810727082876686598446401564406956924743311789606415236259096196621891801504257052171942915593338928002688868574999828151356521016859825726208289506217140270057008771395695016521319914965625454693796392504523819935237635852294920151328974031305873691147244387878040633839923017080851044861926621424562267616078220963334563644229188850994442978393011087235356238876931578287670957998077144972681512424978709465896169690852418188560767274902852998795684956914056259286687368288444977757756856474640801136960724965523954783744741932087387876296491132379302534822882818896807989666870764703804290161410772117577239227248588980653643628465484915062082630697342795852244358803472387998523778571882428781859709309444639268421845759490977423834033817943336689005429416153970508673158148623300161730788854276199880930556023089189758051709587770032262131056478693926556064217198935465218957800686159493348214620982271017077586497338784928642037320188793496254047229725530670410442602415366183970978903842972932361862856130714903966353973277144606259508146879686268817016024581543434610768072086409199378097700904460015952803963819966965894010596914457056619780447584199098881352674150525220997486303935259822322303930046836866416092474740864035535932276809569498848718636491835953089700649995023080125441234193087223006025074366634874964339897813031481413956106491011917383504335880942257231118117735595276464866147187363996222149205109422937232581438594141321562868644696438742501868211717097532209732323143213718154271182631188647416610446539655072919277206427102753449140719194479603804108157412556525069268828139002397673064642944397932935565135402394914813637624629112980009899797549956011829911706909824036724600299984326985458072459446398691590852754304936341625000971446334235685390550351549635436477362860025682814547690760854569862854987321635179273507082217608104632000303166768351093200082507173679587898172196965094258122687745764411767983547350358700512854679971682376039699690309299904031687831280899778204216119710240749413575820110403161343276867499899141043626990104150867322253480366786274612029291531303288908378977519250750894329748678374342694627258430079192386877737112346807410882036256860213153646827705104208882525885242576517768261770966496370088620143232768199180745113534873033578136787558985849107557199969893999659053069456686437248558450105969541509075826685925423586265643149541108249773250610471903909226241420702825166626761189351852572995605243409251524926090135191790472425496682625005998571281748702565619519819712271268046875703812332245703052954953395150490000887713652156001499159418357445388836166951503496371848610367988751414194814809344857700588006185383127978008280074227923026165239386062795963796938567985514475351907930428046076042744014429070175741369268736920960261321127289763809910373911811325344969933027463761562357076002268683495748404914897810745921281928233179043611257294853965067676021155134426406338828737033196778085846634402538059441406148067796532155242328510701422621337477575641267428185086406929782947381746250142730509712674325724971886371879875971329560724412657854205702491851521446539089780338872972827634846277507168770155623319392629659960541823686629077564428299050376579749217962659545329196231274539775904161580650213956510050660111671401756371989407374673786080262666996953588396712253947811743139260814891107526831672607163046158656953041782263433830645188735835017715587511032460731885092824654459064185122412071014754366368385292908849505165972569728279003940302768521041744596298868335772023786122144525096725874316520458927292894879866017652058642117426900518996849962080145865125226597656270970196583698670577149725951595842251385509871266824810696396861069064403857066583491702093032292736429945198358415303262014579461688193157791188970637385053701985851513521277833048366589759908693213274603255626058041053795465076732356834905169488441793233205979729393463907659874130660157241213977794286196891279210012240062960481114118674417036256952715375293153629994630731966407335982795535064403266533713383754659517506525922978671571023810732716105405874722938255438351978695232641907487420884149742907391336816318822256239408750901888106051305798861093419742141221354369844099089985391363993706123424939402087568776928461469241813388380287026138334901482027114325802547570262736775814730070387809392978298278204138537982783348844351523608066295984062767494928650740654921248542311854377879321646600230439671553496378485218902654481678336084166340001248997471345117292128275143281694079539125005021056108244392570181218063397819602257874517973625197953121062002764286174310650126738825942589756376808317699847077614938220278128685857423605712232625750781230039975166313782369377469130302728900807177335607183881788219106924050567701831949430487497382217433552025757644959547034136863784105885787320362268471244823432141124123947807695639998529161426494841607795549785342120190064912290392358195054511243256345202977508704191323691959033331966145084269990970444599701815663684485864247020340697092348451315470816020491058489181485091124624208810040703599670546377399019028378349824321393095619819906998895726957522997827716350291540169248626843755652329882467636363073549922227219714864471646514435798459403172592590294380077344324510632097736066493137256943201816719981456910105956191043157986289586495068033351854595042857574416214414724507259903438625734790919554230287158755242533324672397974994443146958719829640630002399817797620526366640350928668528049066740476509188908871411612486479947281020390796705436891133814416059148601464965765997638739228017363953558602711375807028265357284866950632537969328069596211312246270738710819147230549734061067932093818227612730555972299287273215232138897487435391931470805588242629722121817626008979370462494306123954100492065596145088093446810911071912909121190350277543641932536064519195291823310883844120715900440535146022949876162434978632274831945247014476874125073678019510881992164489691036981357666789082324059314462396452755602222246755357187122354596226227522951023455380659825825165842661697224563009150171114760050147894359973492283589999406222214783820846060251873703703348817821867920403355040323490037059297856599215389031773622922417163006990293096915987271741126902479371463142477224400099886532514090965259043210216987068217141121068046523716851792653280139608981970630542546691388798559368430366653776462649485626614664645876439277706659055082825331048772212594740499744234266983058086998955516321567111404590821024300823535987675737898965488907573186082255809422235885140879277724702868870962528926214650304043771853572494874039939786929231479435337021097102975049759134660481919287310799176341818964705431833147787172568373676816847357683818972138589142839444353191148754845133166020027324362217619089822083801882745392334295563889606242581162535903885509080770393669661911675283239359386832282754923474726377126147823691648145813924373341285391674248902304863293541383020525293515500303990845661963876599819156240459312883988580673270172447843028454480980919132712292004378499519546971897831511108081754863418473579382403032735674936279645256134441059102646447573850308302764300116184221670661305019026557467796901150146520259598682512008952617797944338514678582027399084001318874511540740194862163621453489334055187042826666873552229404011696694642177883384591558961240063541375312369827055514315610364724827196934592926312426592704115710641479748656145377191585230669933138616155131443063043184746452480634179140934060130050904543467861912363178846851509665404104044466192458598203009939500497434101394094206540493419582151483930158893370300707469611167227126335967840171455986006950057506954446541421976726201668855167414152976984979141489067546904442497259811772654748485341187538813552768077674542104232088776744720401188365122787253248826246383110309256027328341581307839302731942949644753004292657560671330668673204609381653483448753175797101013333409521763040198684607995278499988979168352861444903191627721334866905872925768276930669642664422409100790250787508400812878045975557506707098073933780296530539023878172792483030155243974260276869340871720767018396668438749785466493028998396781801677195510944218610632563083377150952503369138796151034620169981911502624932937467618273089325565562471595771729024967479503881808772380616458582081394258744622997628291314056680528664878007760332428962337436763550366410757976814908151824649947791929018432235783657177248615116088099539964645953307329856966827784554781064922448561429416598130163232447949599321500528142328234107848000972512181993977832563672055375998214972292953177424201174016989024635714150522430772844206139773720406028754727193775048355603810854888111835080239211592599280117080970938853970900139563789695630968108292108748572726074532650978464572126540935543485334186710673130347307723004248964133076732886320037537714571427256061366365883077355442628565804719543832071216526893908402321737883733478714745610991729812194603984735231513812804080482040304001789384156307919483527214771444496225762350855671394613978486859417934857265473209375661783279229042043301218760522645903012583985628929438641574857690538584962126272009913093935841379207345613935613797117493046430057520817762362731411269970128915889746924073052878672677716196844130846165656286875362175178524621394113283169150484840609178411548043658749660014440823329183609917466638759599985808607932172027102100952370300252524963783056671909476601891802777567438622025941198087927046538341789502244509933105233520962013814791364158335163483838989439767496151208546335618377769960962397677262409721136772349979739847017393916512592995713405486185177315805229770925314434787690919818945447335076794465625820468499138540245607198429122278366478590084288962862511905796327680314870071965353469338290629969635161624892674957503091052727143137586540937588759519533014098080630639065230930748045473099326005718548886070121739789303948009964494768930238878593608049715394989773683650413340514578334137426462041580486046103777231754313677900566179387796074928627543424080102700904278242591683346821606476724923543141662748731899145412513887522312305305634857173200664489267431846472793049939635820604364348407610926645314996430250361228063052532553570365962685546982009510472068783970659124449327737885245247280336238706444487770222127848110281558839339814920633326109939464397807974365901885854905287361135635897060245900135950651093567119759634766139934678269445014194077251248219402588351558986230711172364095553030018755171069991414242074680048632411927590171055597309698364615997289649628402270798725035116008144628807573005822704481801776376025215134058242957828346604111862120163051475369844513457916242438181671538536159124210843444816480833356701209474279245596388733819445955051432629619430530471785021101901563731586233651186319106327553260661103224977930432725667940079972786966853269448863394322030320628744483122224186330120914725636565062536554993495856017302962296844597697348747389384271103535110675480817380960875590703792052119415218874098727305591284470676687739152004484412933674053379252606149192068093569309334702904958487436703686697718983277294450481542348037617167847484230267253946123457901800068119521103847718866137749938755217786537080468340089033115848183900136403805110246426329611413847076361188227870101664170841281295530819883929505953943141421601938344322146086634841203096831825550078197962804763670561746108000897114026714731451947270487825289154585638789970000711791259070162072880527825639364379070256411528094406890663753199869834838033625254532220785883469457258156217303723430169643115363260439755835782002531973608006149833075730722831433800819732630017876411861818829284880576693093510430790333470831818945756619999137652865907222116463696358289956306560402462845494970755665916561123075422121966608486777334489708335065010778106896379168162414197590404644588618025023085640930997717111519390181905153694958111732400368689868448457153095351127645405861069182618841010563213612814808461351561036877956831636488725231420071263914019364129587684849562902382787779442044841393056943535282293824712441284745685896082726186886813408424372429667914893759638312036314449183726480924117965677217803753661522638797812042660563683456114156258368557334676191645251543035432844723609661266505061232271989589326094011222612845344819065871831750870577787401603271789507320593651218860913321291995061622835041417316015744697944231548118115360108346035708611208433745586781612160466506639337717690762242202537370822196414458804890597090446255373639454338868259600757118192669664824740355257971895228413454657024272285986564893951906289851158166977821127774407888338488558492274364259988566320697420936885199846405037978718743712424532993906651886059250642741678471707833099111492491005443607989326376466563048898413332830056179766650847812966447457244941240390923971195484043790978902929330518814513014126291639119104870456098119979471616219010652875280293521713825206333787091680425292536707169021342457151389276889209913894736386185866571994307846633521840908054565766441795274240364346820779136832067277972842808819451972568967351790956626996948259819212592479898505493922194008922638551490160986517225772419018881074156457035067619598276191161374801690456421321425317650285873235441959045109413761266598413124624751215164999546447663558359407020550551758142051001227550748823434756223367847163267673149191675653191500720517683149706619999480101849732293525725120447718732135963013943055159248366217856652208431769212240020436114731839593785029227976458446197844502769319433340716620263976512981474854147782432417682766748288744940128220200520075283633798134529851473647524033916026648240618078234059202299401406397025276768526268885380405765272768518297844655964689175948725174563069980453402066384834298339911543931568859365036119609700571225383640795856511451406716898506803509058367989470647929470601398714197793027876375031254302345218479682073510129387139010805236044635425713263968454378560955100286271152314485003690944713363979013158488699717758144402206740687929115410670599222972349135650953752781993432003162561669823896113928520622860802024920416942467999620718529351158278779335503870804724789527356846968750372383869361169772141756059234709932759675306385764833362949068794931497635663427986926639128293183409907896591007371922999274122744820701479391057866772977156351148299959890611608149890935186091982668051484173357223881841716796694217575811593508667563748625037518561807834845825331645698888284387563233007449438972402208752430656422654517062355658797773696013178806730324544638638695723067475985584408763913025013571614249619534776870601738229986746019548712557095651171665983116578336742997064561205549575591308439133915965959863199476261166535466501607339807857125834371015219577431516187391407000669076903947083750565234211643352808904581381609789713976719245045473030530544738087799392542359528608874486205590175770648338147016838772980359221089222854578626260814265076291340934026247836518507165283817828621506085835128698175137506054397896721258298162488692080513930761532659698698930713534394855078598508968334558730491342067811278951288902153319893132068469786229520718474753588637624825071281487957148914072335993052082144588656522321019591402400733019743710545534420114773073236587538992013700245705794005178921535087997595872329467393924634830206370771541702675186945183092311832191700495018733401209879755258068957744947637152049773076541894092173955498800060836831384994875465450669346092889728120421229876746125087536424656071677905235191661054781016904373223743108921909387792272752434585688741127912627661009852664033501770529893089389728115623995922091274719615862259693519565438673761450218988555923981860785018762205365826795309786619587311239491069052144460229170290017611162512567032838392006234935919766965959314932987986392596387788646948959286492442123761412281637921142656274571935115273305996778756107688969459571639688332476305057576415208731555125436343577855866968923383682959113535798980589222269825695009099541312728989986776531666792615125453381250953208671448999660112685040107448248739098119885382771451784282456924780636231008883588846049221306859173068659028020495743428087346539289969704971339771071612515546759904633382311880657005170613717383500825233609205467025427622106082981840974583031503273855247171248735297564216273876478841465170762080453218049969470769326840271741579473570918268539061631240501506900537295216002726297245378218588694857199482331175492514352675672771224496828771912276903996453726330428747603683173623240887072331140014208182382025362612114653176499055365478102038053900408844644671929226109805333083730540914050517379466835730788106987965401475692431133222812112279949082006769553560976808862376741995972925896343748049422276452965224891279477667542418332863661646232534094059407637350115172976404117920259367606529421976778481289437765126827110527433559522365768191712424145928554817914200927024494748284015702080336082361510192261414188688334094974389343971193559666013389691241623801543852673310967602143461587715303448882590700943240488964779884626996855171923074633688274948213872597828269680315066718942442495453715919131360497688104847356133718587235084979332751001935955506203173205915011239723227198574906390573068884273281448267114796109197873349554452184601319562831410582980864481254316969617984874662642333674632826328937704156914735633677523545065070676272867926919338385313752268013262814635109135278100461974458512947296244238414879563031792827453721160977820808133977941096237584953406577872019039570116076273413521847000326210316624460514448945260783315037203934316717434012826568441063897514902769497833750011197309750329369285200199790355753562264516295351105582455011829534501239533932312467698322490134137238015570460117733787848486530416171567953758562817030813281810357426576506973789732736581360102188213438103909963609269346925952435242150012653884924615717744348586197457391566541486900320743697179866488244963580261210280134963736365615181607130378560563886174024383179626866912239254116028305297518844026848166684689683661835400792936791171451205142650489389731759588417745529085351157992858312455084814336408539855109759342944069179754539669653663746210699889901079913389094736471732457441514675399226731288637618452921843370139541079661469502768022903076645483126620918678536078239568175754722265450799623439169324422166951774940845571991220234082129269533195266920180164228838312576849653002269962435011142575842576420637182763650186799206982777723689422507339778401013966454441889411953477439435127760802059907536598403151240459996997968939680492577663548603355577692265939413126040111253567210367372386792123819789682507164469813318267869595201128020355213250093512946336016984013342317332286021240089226619970671632839659577836521466581073125830553086661067151259590303314093574932042780793879763283293994614846529807663662250586958955011684143958286586226861804003174344567858926673195013800976338776726640468537199998782225303715982221528891534965615128610377652605463338065520892789686085536379161019475034111071781224790503486412639509191177237921343167713520369419441927681656325015983647575426445240461855863576411570166577119709335742127206802122094439585407647687125983741724421993940565054061602090881735565693376129920195713071469644909897093420873608799600156539061584084086950595450551440971576564461948480826475941522074691117319065901200135699547554298582740359892961159413828973831876504929227360112338046005498570455592769891002198437813989267313305691560868028396116734854871536323614005854591115297748227980135397256864528354213932262005415425031349086138116995967920459909001086194585622600011008414258735736355979557860221460877848714761128892375240478367932514335106615151769960789458349890933624187922331164957428630954586418490409155037735382100327450636639059182955646552183168587668699576612152684162405758322723322018698879985522269678591201692669208135167549416047516755809863380531536522691198029335795658951870326879286303127589377858893415113328075253803436553350754724673857749360325835123647869083706092846327634707527628690565361928188388784787863623755560607064235106999734374566213303016202801241269498816603029483487520645329278173806271550269834752643031707159677406804574491975507499817495690049428086850394046946092306612645661086898950040908322859363723368284009044997901141455316547799115128293208517623208507234697772088669112425744432398642084674396085288970861338823577223282352915855370654306121792908987977117201371921402791511948784279508563995989894443545768942362215331919467208977253730141005222091838150519536188345518744650479210359353613522133791748103581006252191036453704326836772720265969779126498388699685032478801558393445485925746412232289272875727376241719068714379952116759214604630388637301282236954789848621886582437785999828001833860260763049514037018816846313737196194839913763026596938982113717878001716954838117003236978529422605199231235239145037670151334859869247960868217334014890490355041444568586116712305152063797173892764575371538496384031534536635124974680154208656123125163449744439015002943559018554167933251843478393008093295200937901218819402179135961225915206564061415329178016005432707109822926697647785689576340572838392080157924546027391724701774167832601110452103471258255463301933902210969311244168776084290176524619968399239485791856124484805363157155919097802046166908065963720674927055506542307658154964150953626237234127560329612134857583389380447043866103983135372667111760291853373391541512026221024730202330354930123628046051742298425967770485724149902617276676820330261574035081278028732711442051758255598520397262089977870768383251067734946136334528371213254699635500140533778045782694011226093536404778667302983089542460488284266448897904944816254677478082800484728256678706998547559207714598202981191226840349116340948734283604879966006976593844044297541206467844717420537558771950229273403890928267797206419612650615115562760958111407903971440361483318340557234884021206718926867658297138664560282844616633351913581875396558301484933723184323064935775769125612205434375937204333011193553624246376242095693273440204666777376777365941808284854186445501346128719294085310926552290483558486102517352452547337010968486469374026611070871548708823047680262749402400879987220219948760544981886825607250960048506243471090168805107539238443860388975823825762830484443932161618788642166466479646790802161130459465974578424438816212848913166463583344765177370502407729111164192801955480305846675216807324348172981632553003454254820971904387712858922354748020331405984991511654773810135863473157256622769412665799631526515072019299396433778227947047747797958204990865252602649421937222223239211562578724978031691846011600577453571481007966314102756384846873182671596620743050321413139126255878514808527349604465742842309029676399750601487492939702166736444646655133203714518875824711924323710943726421198085350580461346016781032178027444327163547274354914968178375697276036096971198144056033601938670106619540005632980239867737416106780427858965013225496170164690522515927024207194882985901382064782889724590711398887386006669633578078740207305583175439975377860840230833484989725146563692985632846219222224167842456502299650301089402289127759353546159674275851530453119616990422084481327575858583414647586895087534271477681317233434756802293867483200449138639128437026962353605801195083884402935124241122185352766904252481817965731666559991168863284278953222407040892798601733042098309794536419117946280131668435536741536857847700574260078583695840630396219519066019538030817178525206108250306741528825117970940510626173787453650983500367540936960787331641915647566545817206532275997675062238900904730742434538617389264540104591050156506410541800729597301102559407770097094151859564642763899492615738213499065529682457348708718430618954523212991035934115620315306428109276509548974993844641020750848120845534105365006155368467003039790385278237671261768095331362763475970196331109857418371935583604517468237149497853515061334480819224375621829935932340476248593043822044275906136570105543126027198377376008387477323309484477881130861433523858522864347313394065050601466814040877456351877475260134990652934358931708629911242207765901489859905762657858462072331068760329290720437755981184915006991117975311087498260027027309767820191377408724432076886449627803358550706448702393476568997262005591806040944052262707926908320641071798562007450216476595912663294743781114941324271432598828213826060860231055778400568273294226908323229439585129889677929106528578066792433922965822334209512432800675680350203111732367667467568898504118926192135165769913519751799164109873915074121267659932939638018016431436006623106113286372619659793357898425474013891140808323805364297905821017330739529252659757325493657376921645344287121691237081252677168024995994022430374362362786818125849673157682249941884076666304355793663960629845297920163324924596272774241228642541764477950077933391674740166886537843047515539737873158966449010653816920882193586828505658348122128668449974313101079837335613045119103149880904242237616421922864312074726926582026391227756594858833963398487409415072898298659678479555743189364582194282918236975501320776782563536232709157868434094261562974776724815184660105656108340823429687601849877166706746949732379281288271885977657400652438186155239796753591030083033269852933459520249991694518964724909447419534922928240302492522174426559963390917588644392047433417021853147808648639186996645132458516084748759805962809757833848396949118663202616045013309035308980061103426095529020063190871702357108149796678759932903472275882900595650113040920967237007872700355875066629716350194807430919847490502647314099758511611449797602625961931322018225949514214430168878684794816304302238884993677197377512839671320405545390991392669678645046147497253670391457486600040008046867204631940627678484696618206013923568556053248481308720128033297400762305635021626045088947313953946347539453771714889565715402394149769306187949126641442941209039573689582996286914414734801914940979242923670732703889031647947816750551230073645352950170589943748703559251569281612260310857481282608587257613076767765208788325854276418732465980429833698598318803126878714657294448905264110026562324971751730530223999064916723334554503030287819776349219431072795550023036476927732400928061438569957391023751576671750847677556922664655481734845372095420285878659991721947625368150271655192170147391239322507184049685979932541667136195783066875544698297085671261695295678700396806115087780174450445600359217682851465550530350877557586219913436892378258792176166208530763439963832714701568919595761102857794561427054029020213713207530826020958362056536680403420584154627021624161069328223597100820726991146540460524122994342249463313827016954005312360198012013088842009076721522072664442918733379821691024474921776155521909356711352912226374214193489150700089825378879598287782884710181128109217406285972302486254388319824345648450102135690660672140347045635035961443813518724220534233723071537062538070786927831217275012214071442556560105157837700301527744090728814769746932257224445313320325981098571715815026066329691321270153070098690226097691252685427112463686619340171019520821113334825928041153227141273092855426717425962819596826470595162885882948289324048510957850375494069640243745958958773690095993980356477065049882435426804119674615025728326052526730813041389485355699007736142771568793224339956228057358677168650201615915890585856609553977453328451461179982658359045196776918819080821730282694565931438594323586545815934008990209761429763207095929198876493098433741939795367446753109819438800226340565820712922899706087745567302189264641748284070383194272086980781403468458127934602757441649309846584580939506817000093416570492571544942057787642847407307629229367204239588724858907845163861115571033128365825504951540591939617620172356824612862855656020932448221177957326395659014122325552593440137903874925495778471734960438324811731081281177972828289474273241796787359302061961783180130737925523985561452229944290981077252412278272398695005850294678896382614401985046634596095494879527695729219099723078976536055051978193935269221378095121112900346839241592380258089116932109362015463654270094662729911746716624877642452165736917144244745361598656563390426874622207348078890253827431649775678465545395598354593024714245285353089027138467810587975718273599392093218820082321739995681180454416151702127360501766821121793388648454186720772884683675859747946706186487944931722745237160552741534980207003388272585258814855330922272094416645188682525041593599535759960833496506384701967588081340316114823160431601214993825039468428661417913893927727460141983929594428906720730279858707936772258359977146647164210186739623950042358820612353134490700600451946221538846213936410145051547950020369665793328314415365175443773037535240627328876494793576195549326139695074892416191696874302742757805905541762408440968296060663924915262754181903716016554341843961757042648188777453873853824952543973469852687798755872532103883210894784089827904546346699415031730214880354374053623758022895467874034027020280966570390623712596743337007487988634995108233191574990116662382921344762522942413977243246978333794549905535399016612210811168155991809883876268097966717117104496471874363202899653277921066506397152936364366607823279936801236320795865634126958340294796444575202743329684212567671595025548355138502907713198908495235456462030293323210624299283818186794193538500409371291175785326280434269497273612635404755347726661416595606780450227955761886449198864765547352348825370049139891265772753019612340433801692251640974941278723719210792057959393303950031756764775123306540106673704864991889526636590328528305531983766062243107302299893005799170475445861250950226935626545058357995021172182739060723537076857936258213315355740641881111443889167388937451692171492413375086802238644462698643194124352124718893163574735554495173836261695569536971095594663279766846330737725906001448903691604528695808037148225955531023137265789976975640909030007890409416244825977026961062725558927132756509412557339000328914751203910916887364467685785178897771064478222247261026000074426744654362747469791650401573362816060578968625406074316463770340907253104551987984302756327833231915309489531070698793763550626448754079406211156965775720215200244237564515860814359769757521312092978074947445558523241429453724485457086658419382179023687848546308632416886572986051546995823434342923532740650437835210724880571216467593661491752685888750048045391958619282618762094083819112465575036335261888419889552233345515898651650050955372119244050916193286311024585014954171525777982098645222571340633303416902626242639970205078360966572582977303071761814278771692650204309443065068856868852864982627684420722506069464067602741640381007993159921670819354087843213187158002436736402756217050885870579227551515766975365377497762635857463807162284869435980766740286229482291707018244235864371403569988906549242922737309014404738765690505292919537979471058816782508190253049742159866246289694078260627439093357316250516719843917327403356058443798459489096933560620608458678864250141425960852554046984395843229223762678119674203896497096932739868656237447364139117080299774511881177546764773231047624602020387960127379491188467569488036593149659393234370374923990394614908045043717712965610307024232293696319642830421856180937125801179357979438498287893782555790779446520609132631901950779775196988155087522382677739116583719039927001204522276397468961877451236215263120725293843368468102288744542633864324892729896572838179760355918221683479260777648934628063028966237582802300388185280210784833054213799363823977335223979016942061482585018281607661421573720749484604882417626184351784670922924572253620198111181940592327986481421075091834941850708446475908359650219608793977184548026247856975680642525931995882233014388809185439066054399941598555304384134148512506905865015111962815907666669479278892245940704938859195171412183781618879595731341723216393632311797725160305325858904949537110945413099409146413602339514250111180435168221487059689171239561123718244092628770870709668001163457994431083592940580800123194719416668027850494447066151452622974396322635821474032725283503027183627606725414466391925233868706733383690175720755810841328769178151115341101766126339078803005537922410968887497935754642181659253780574547979483418733517683231165585954841490238958447437326041487865522123051889252338481104910753528141222759245097046950911188797344053380428504159983992730013714254458810910206047523555642465679769905156925575937802714801763387646771738548895977360717186104774609004849466647731765078011171538765392761318006820449820324394626322122237445954606226289086635865616116511844662537584016623744967082340379907680734132514970246207936662966610875251148584477253090425541823371772848218457879295571570989548271955401094563072848481037089166317675666124273946992885172006396985118866711996335465750252425241065623853635927882026095873950046314505129465673749307852834809007147005798310130624244367289208743047878534263903678317881302808275132185220123461922497745207647810965077550048408079039376651784168347682866344897957213303890660185971317284538770321971766280870695274492486982634545502929458222916930028042292081039762088119622236734760182665257194989131143259486364506756553326069510807709947790660799568503806126657502937632967260204583859356300937407867914554027829883208718191157632487263727997367206938921052318682543215411352691299410937275662639700764898199911562430212536176057765759265385772848466937228021028305700696557956580610381377328587117438315055292229224336827067502640001055454433602179670048993975951402684631989480679323544796192411573266596893000065998324151960834639258512065053633253465338106879403466933543902992748895927971582565848204476037826242138317676821529590500377423740373345862535794109591992111434171946336495301560526865946452999405492456044527458336428266504821376533300955768408054554904085530404413367642353115575082406976432041677865464080804250212294821052276442947326382485339903903879171344941650484138002040203249558043565979323109502221991555408681713070758383095458206374518707429721736076302647911430077791738431578768232973995053667672704251370724606359035867471090872808193317502074636790538426757480496668557394643222165090900653190973576862909317692312754924048116208952951381487939304338760442871429327641884554379009312619731856259090355785232249523032290747412806757511913794857794923306159998914679983831974360869052322222197468212434364248714043689415097440448333821451635040943251091338849368653088972107525725455897546028331199529259761392143835991152649636044586042136539199302078460113846691449973349823714911306192222054638847852534510809884301532443412403253757475582365659197427767420933891799696899878386571040634670349539999888345020504609091607749245237209666067450820614564956068844613134639855335380298782564547888841287781051399627885499654002501978065552639496453248558742118531788816659389935405200318835533667409482130596686135584276143947470185938777862661719945455009472243388696850656565624723068526115534383873378723567490236325269227386751592190252216522537953583299846961470678513333566088482671941530260818724880529773783451234854209068513207633070805296152411100148353858398017505265779143890936716449532172309700219849225620907756725853308350599524436687016215966378167948709514150591692210962097723732485772038634478769656921240011390863316392653256550880452579198969559784892005941219604064750223659322615515470979572703099323938535614414453997535906773697011201361265047754842037765359330165215565757043632864417910994603357705095290969807060298891429925433336642490815013505426790360856083933796654231996551969360647907126542707855333668006931845446539411848886590566679079575478939995275091176300841657315962718780278578314341272253520357922298220234894321330084766704747440915734033796617838455426040957902572626639336222570099157595284508206329797078603329451909368167110859840743687481745934261252271854056637812558029244150302283230695958682746371247424394176158019373790242058585386773006200736522121919873234465770384857918811514111814950608607184121391440481000826563676946080336215162655702622451292656974416108353947165290610343697458260781982593039513630698206662981245853452677014222534391283967106651463180155018615912354557502383973697193504885082765719459813821147050868928934088707930648440913997078343455085029688647570180548214330149341179073234214382614576339535351789412746441257991291388859001970067542779195875703844402326948464991586914605957784796210642966462033864159000480573494982746594595750239032152096750652348732700473751411063927591392749303949009393108633332146925239753454151362057510959020518443220529303365227116818964991564632109342127827416938109577335556787596964593302930331447160564896319553085598343604694094972914077410074840113268997093210678133028571150755655913261517865469113315581597588468924626213639983462746267737812747782115059198065720838186837072322915367403850306270280639792730239392631277335499773936671988072554010746839972811534660363935698992215383962706077278247846959130334150314108084753938990652566922669510966080032769971761840127978865440675067545391849928911475741110360633142288309270601640234690181826949049038899055359822198432515530538167554731623084050246958492954088561716360370918154935023389607155609378018003631240768299114760161860381244567559777834512964686299107558691572733514327879031666510227981692700572172283904628374619386546598683987834964521779207297101586983065512093748760232399538482164367418132899533526565357329436863958028816939473700276650490479577260524030391289776016351487137979602720453290826483221084427732697062401265622948064815734019934805253555543275566307778033746165440165999212847749105980305708018895198581043973220130103621563828229270169481069572519296272751161605268550155228474554152771440594150833522275510614778215881731428871828745443101410445301149964022354815658137317318302879140058871270953486582295780246171423838840262903051783743777673908138070181885730490243113485975005251756138506716252608089092467264608688419921748850213715960712483450382454839625630077624400542985448580021350051072612850692237558372918176021951678933171247836886790372379063430253227735608873056977614158572316963434013303267699154403598174471067264632264967628470144417041209641958019464794578569189026211261054188565223992560016299505750330215067338221841470299757561292502261580402092892340487449027283533217486087813992185446077082401886071394100169447508967601414467992451061768340029327362110559669309980408485354519645323868220063296811330668648408767400463184721712854980265308519658507139767320804242183969246947450138192332608525204199119100335368212603108606927705223415808006801670654712014263221148211545560409781498593918840455184980898626406638844634283350050424676516225609807557851311342881496783228530316169705296045456040767340005504442798672342416824000794910869721730634139396051319691371549692521869494287637810090311038351844096126342657581988110629823671759180778171373902825865092367389309573840165852145190393613870545834362704330527916762163303280251660164524082723948764459714936495641395082768773329063734253557571929518601512476601404593588118451347708723017894275279924625883482532777571238195001859293575068076542538772487325898499423536397084619010334318201715133703193448582082095032956778008744857926568094014302910877357441796028048486152106666310049093579554658134354410397039925926016633069211376110264822219131097097166503358677526224966955473428423571741204210821779555047498280418311930293890700184297289486330987727456895830383926696067079551823528512067349092821433782076532428942470479925602696102152845988471699054169399529858901172811167465580186041777732944031243889212407397539744300958436940049231686698461950682810330320113530115221386078016961904717569278375892769381397954548968287840161887519659713433835309526747022105541103017192165287866304322137377810668651626295831452254630319676510562806801216740638568591594506273140630635276110979537649033878973555084393573232002971167880044404207566253935357274916456784313696051023026042909363724994235818999930280948175471276119087209439861197717616870733915943286707621079819391026724158255230414128876471322717662676222558701493307491696871583556188086655337642061947749085379605884279640184479422797447551768922669497794748186205745436023766264343211951338016742258793929374788209251545294311053820103152295241262730470754980721865395718886760249830392621991262795774890617787206132833528881738805792782616310463938568500582417474186070542083595265835394434469625323887189836157405375332478851064715014143028298261620439794610249246318745246685449591654335383316460671413214643110314271931616684300141899394914047361620706501404833897226466269645709864785369303222559835470396107830084135405887853277207445343245451674254578327247565851934002559730638376707477841763517522818218982691311200926930263524711850672871350305322095296231151411613073714396502290120405353276920160052885389182412870975780104083137068889449500731066108960744933793882407832267854620027911990348965157087667004446134450288414855261545115796453108816840623744517585404478578990891861641369003233523487325651750738187486357394368288889711690590183323637695412205851625857987647543700862056772787904893396669797410578955472268793145823164424732971413391163251189432530792611007297766506433833524698155572126168820610819350426502783532116343242611735943883200729786730557826341034681586360136462438844059089704534168213725136109548631420875724709155063590297700131736003960155798682195436127169804098573184358349019154317046611001585264576526314478881659073468967565184003579615964892834306940388595205729668496867587117504702840583711350615725405807424054752389715420536535948476255291232563398026807278075408568221876667957874130845399474462152542979796356109424624695643270602160384931031516656426950593188226749754649381248663479116668386098454734098999470056297521568324755504160420897954391978594160790136632372793852187442542228414061380628631503573846444348723416026337682891730419519147989541290518898573242266386998131133747091816284432364124943759699121723361524429021023454715451565644487666716164970169498066074201919260793854539197915268311197101499999419090626154365780827385947762862892653418013391757818169934384921589947918931755967741053994789174760967873882244270570593543178618121560478148817162347407520328009224924131960908985984385001470249596573803792925950224005902247493677441601815242973877948373060090076899946500277544291213442403712311457868105334132614952151884177286034236331969301139811034845731200940223941152789635001576141386500983084470599682220394973299208091498834390977672113222778379663709669635346316018456509151585062729043378831154411125873278130909823236541514359987719913971413100392489147273719266398984909916717004911911619901390367274042939173221770152773638487779006405213455557848531685609833207829245710827495632196043674341038121747558910914875942455061604181082739029262985391932718981608254826862737551218232229368164662994103020721445565254676118467137402471784126948933976376359965087995244302764164189590887010606229316076154979576091680711641390971979311009620912772333052111330334152595416414483813835360763819439074573915490057104152586893651238962520959291593354544278140393430904455067272849189050358761902324520574605215850863187264561421504955879477622798717869099277288999820585775876825017289185404115959631281987207969784355664256208413354566710800526707231871570338233428426089508890706993137263093761008367713598733998223320825853573345074403581038038772239149522032275232122467405495772589946807248434356447450288805765074887766402907794449359128986779197049582867318237597542992134744489959822429449222763970589256491714871649265716900849463909820188925903834262664848270022924748018388716757474030690496288662927659851590054653376042390398717335434973433392452811140967529675117110883019770930171086663662400748676553987685324138816617218349849819854477278371018012981287372765576438121857047371833496336242221304515096727438043497492416376387904902556915325687836843008134010018622846305782262082737369810447764715595050199886272073178709800733654289228034850017382699190796953190279882012381857265107381085600064377843725348587542404881306963386632617146417740615244295452248165305483019161768001146200368674136930068279909870841541591955328242396196980196186669319229757184077277075595761682257660642229736392939370781398541406205824390763212935428964621868595693656153578882360952132218726127698314593649849273622040437230412543668991648369651698075497269305588000819175862915693436350345373705659895112860654195926249575903948580658254480147295859689866806149698019110022344277073019384304857903281467672452114332017126784376153861743430041990356061893894219794182013360036593434798641737437815080055849843983664191271935930548477270510648186738965569738737200409381148838968545718080372044165339165212341784230566413351206219344101319743677644327726143561531912473969086934794028437321068197167194255388760811183014675622551967515922136679672567763068502426740692331788194140114967655315963346213977956404019553297597270815688034904746766377581214619830635209694639144325110522400415363912908809106007267185694187563875766684824390524387241383302562366541836520042632898452704354939676756525948511573418424017854438738121718288706703814504411944808706252327816378333772163341132242229139972060606708479191234236611582750418913948413541200570160430994825144675952471122702172693946225035405892102409987704552451012261288891298156728446129808883544254914496661312097464278976336518041097295535836319958529764204782449171162716422941755505302258684201533100430226499714464156145070045922441358315479472003896992209270316601076099029027234687852596958642694013745319332396841011833444454066482267175525217918188393414027647037292019549736567580312146723235574096396913133012376384328763502740020377168409921742628083804316016173868754766104753848231720070643058338607300555411194758510894018556469137100428837126732010709366387838855832803519105039357697841687571114647144529104976181415168170707275580313035027382398347647237307171472947316831508676311971746807533695509163217273330730312380451523950396971198122210181418382162919598677257706356581012620650508981247536750162737629768569122295247472856087860407436339932266154616650258988606147972981616264652399338415589939297529760629799076276125094952744032770372331962577617685758351280981115374612140033817165707530698259366026306293347648391213037641937886908151028300839282366916985883759816419586393721806430293876885215001191773714064955026234861078047909730899541214081723340684691637398077281229032795922667886090282562662144498369223652285469286105101259167213387921776008934813548409704511433369136040907329738351736589888581086385735801204183815730071455458306501665094492686300374275446129553278744546701597845836670724980686384240532906654843531119637293580674545926766178103508371519516383506117392194942628715148355679236110471742543114629567095905263040144324343895059047139481754294914556433166440720698199422594804683381615110871041551746221227489815470313403761823951868833829198628253157906216812421744633588672043190853296514261725047098689462337545948502470448838778940230619222666402240632147033394707368655141361884657437630421113438783658484729907919981587949330110529413243023428347639837297709227727618381209564158236914165377063588274955382668223642895566080769739180642411252226705869708964976468735015312657811160845969682434328843422131526151759741887922264892873809084338215243366806396736077318671963576319944563691027445157578235785870152643387612140522171091561293750362203323491791824015827859670099274525654069258271040427743561133676819438031633795606608200441849640789977477030712284380565536978904602123739373199744482857641954548481256421702858600702521163008771300447366862757808726783408152534356947197342691244903740207067516902614368382649039901925032487475468674748479385386689942763827226958009511044415006531287876545581179298091939037567110764077834093872519840351325663387648786120345986576386112275877286966224859391763752486522615634613812707913996881239573040555862826489878268454967406100427550757387897126621885258407307609597461432029028380157201160555606850730216783161597773788745147747092477454972366213966270042885934850768462688450700234875943898063123476224811203770711616620452091445433459416744429145963261993060854033646801319851586561182735093534636120165619019752214692427861018954399409123126306529385002010420467636276439762335163072684398524212880353077960847131948889199441058268808083172184765927752474647384368698288245050891265357040778225334016450603605637547800993825904128593476583001702889534307662802728714283620437098206835898142260497509841134749092721789838694589163634218380429899280832915358175294069753214147391316378230774559313068841181073074831118772682860852081613524683251072267582257368115071163181618129891470159925762401563640583957980931674083289696015684626929796036543295437445842157573626097243449291742307287736891292619867875965903672008291069605268958415423882191723050805810430989327503919208324165424384913526843214176159780875163884028445649913843428837433496795337712242159884581389568513424740288025868838829011955694168261074367719847521272496111306978058004111715595188870440374315103594703754164861153628930489240360134908598340862985140661133709271003503122104354706511001320858411473345196012272347342890960947291478833088604787992163100049648823714709204807624743174377197309866310785654527063889208777028043970053360835546076627849386748711085617920720490469877560147502244066593350972354807802486647886415560440265492997052584730786020959000989185087075733673534843357243555808446252389903937999596484711384263990125415325976294135958065638886799298529029248547679347872538695737226587819293824907556013665589964829471644954808278020570607385710229359104711943005403347783744458711355797305830579975368013232647041913921356294520489171375958912167724268828833374907795187253227122836417321982111034040992268542232258179220243462395701643759443373161521270917651005493327963362252453293552894492004568187711670157644299734602942246355729989016698076768032610195833338188256477591892175666438078657173912635985357037241959419280701240317127800085212419796177224565575871543365436567899760283072134390060253717282730667484102816403455639423940513694057184729202389542233513148956719873923249228141226224652483489543776804572698250862468271329391649291561680855872528450807871253996282131400625551791940209032885055115469354824076585030480505722734376718415041076920302903245514747138258336277360148577444748589441934173819116009727448045809945834662189869602404848818330485735589885847803498402268223452493026439072462638235455204763272419785894277030082069305977837829659472886224362906353545376666759091466078826477306829412371318528466092253227043048476736312928412984806638373633394659883605102724162199360922520556193775213639211737090950135212224072796779867401716998966574163419249464350892923842237192897034851982131799432773441028017325690440599657706896514537111869126984989676918704015151757894545360542609852587016554685336341959364914903947309427088018741831207344868372112948298465045261557681768836047542065059445407262281348893119652451068658821459723689792888275596507661750015540707004291163479801826573512206126640046208349757521125489039336633444649100977693593369068076027110790186344783266368186071275785264856598151356254693921799509529414158658329628011298439427249118067859522718774158201994362488446874126941690748195930411086492632310451785963689714943151658178429889728546097851803958191111832120892387579741590288949707497212331120529920235190300305231615523171344914656656251277852462649197530896930489984685074234909627093565098943589017633924317126879325363000334606873695843659363509006096901786580455132870092439263980388065424073704223629934288532886450774732122609552217661168647739208700100291564251860779967145626372968395705327933186000745934045998229817250053325903852894274916636662014118164645239563973872245706243107588085922655975496363736312190338609312453899210419231340262051826045254662558960492215316944657080978995710807103147551522075334886214873054810074733175890322071120532211353893811209295210756802330816373280985717730151306593037784906323415978855897993671952228725588778245494231467167380451677382040804053335167039335585448227888678054365465359253560129178130680512793612859125557827840646083206400744307533550823319596184570783223625277740032299536476244026404948534802620545186250869899435186650860572905279647529441581385487992974079468662347530824103195888809460710540307920151806539304604564054654317429042552952789244074742469709123669432108799153504466652866427335813638537699216014596963324447709578840358643132283941800691792721502200960143269466026820594802653468643892710976764651698109303611279017310589182566658533190117009024765027144832850301134784548284514079432850338036305649840169256456802807630245560423264949100725872103543565725600353035247552620913812029239266856941411079855205547310052736189312287039099765037200757089807779965664493326873617893824626432665514974794819743703935065514993070013917480244381204456760687234665262486258870508975687695476520280917648553944673289387690858399070720898007364692306988752280231424942839102328021200902616547724654782247244511221111051748396880941510138403391090791825379470336076330894754559049540842181291089416876340074415538980351574164407915469087311027503533765107402759275889308953236382883898191492429748250139208168719675430084817318637202294718589264805297288602813532132707507583754045846341800982180866777326484212014662515163678714227656861129572786978157092871623965640408059693887047594539789319589309329210782465713944966798203030526794122639834436225897766914285701748223717776762429609915319472880621937240940214367899683669513998813568259041714120571986056453473472438159939343637895020910023195458739710312701996455802225996455860454820428466303108920271283779377469199833736150853056844645042971363102908667358354250022636367198394847646473606287067227249166317731782892390585753782114525995930707225014240122933632660730233987229662871480094769754148116801924096161294535738010930838627254336301358813791631911761254696588828997137921507341463120227211390012780452530164359364895865284867863735793743064824213433371286687882655406695897059751962420600105693413829177472935544822506888086837217203168100953370637294006343457637601513492776582904151209903659915992236571275774293091587460668625817787011815727383623818492424583324445657035464674479810288426931060091950887441022840323888014631167137913178344460950772135789206850106379236158270656100902607860824569034858441726935486056543952826743701560235153324201651880849981608066250617527865935127038713742937523340595028835023733673647893535493753599004414213459507161133913391267518854290008499370454681338603048299688317239329678393028267587236482998318877981046293858934434582986750505589810993361105644834184661866342901368842283837157757907018710169256790274770726147637578993046745973139953321539058639933276652304015026906353289837955410683237082071577160018718593579577609633615984335921595235420876527042094308186915837422855166189188553698693786977924007432111093301763336667779132279658560212887071231368332819826984636123193060881813545652110170109513056228786335694910192802128274825563017514037091970449573676238883094476419688497573024256991291509974765267423870000620937178831077317248488825497507557168020474303816932208788781750233845355225363406101084356506273887188616377288557977667640982405781394437609656245363864818497968913217792548520689906641627917095831325744429574275482651028266840796084236773882685372655263855931678797842386041427617142378169545497808425607787717199685676618141258325976565570362344720672685678875583939106843341175710099972994266939764206826356184393924280173827454667558310215221535813599585254901732190187118534652456010435853026025049315660744832576060861808945788778380445129650713618543785474281825104103259925037050553107817607206234268806362957860485495292169709040154263927840796883398699954386805810904907409204585902852625810977597471062369088643270268741231490978709224293177464775873609493715513949171284394043745661643397177351052971216308159432158770455276821853965304516985410290149772013585741129659676004902843145950740379999714611334455221294654943889955163460515081333989455509217550390123709510340579880349578120658347073785341923833928654742079084199038253738598159282080228135979283561377902199235070591986569396797506736353816544508254750432325907852639226864683361782485690405115357253078892330764871926345714898007326418858253796986722587001592594072839155237706336414239079894001255806869390980566666499982663297913397624311597766423269035134335229394135063346469753199788505218493875900331067609792124576612927382752457001478356183106873010245450745109105025190928663990251985564166070928290437467429505754600191664291559740104027781828236661066638515108884657276029085305006163074935770264397561317672075771432748762447111336395402439178682302712187606347077286820501355811567923797841881894248904115422830918313103274307458028714885861285109149161349527552340131737765779703540900633273087683619338316297541767227871157560709850132250377658532989507121259017670931658457494573891293851080268727437866810151703892572278770295196624585222151873055144515126874934305903679992155017537549076248385195426212275153087522306943947133623847744537797974728761294945264496638489178914954942880448361416430469235370161137829317248476871438951972873693715404226513954297365768791896142784909326003542887284320821514351285215540785597454442554796758052439597064668506554385706387354340511770902378553184906054680077194897186934956310556500407457129198843905474644324013554260313247412007739776704984638836567819682961120595824098879902722290195401211541968910273357468999668549252302391428446825058743932426946912831159275597179126517895475939584716664413891304810583179424198071296761897602997214836526102650460637538511790679800662612031869839917205328721261485770217297632628999966679321899071782258917799732477618664508211093715697739897389372012511890609172305130568770330967179871330318830952442048618227756352072332519149375499161550513230725665932628040807361448439585153954470848895311948252261554697947961358820507387647219130524552796711857605233672181391308977963175000946203123674966285844446504146428553376887007736131586056556026815886033983133514128038620081095466379373008508355707068214156668069232351653818032703124666468633753466064654000937454236496454048698736977932007576416353237714930821994384718339623950453408999189155946901577309028088572585444870583902633195739073867921071897952350401505216348755077610312188478688109969025210370138000812650908847938598862749914337626305894737495239428167023584687570773351259980220631588477149442981937266173979035615224517218698925419704620715679222493764018894680353378549727373686103840050890907797136982611766744751134783149788600249938880594806118581052879828877739605064603333254906640950233139214951632302234210592509076094837624883475659356732201747130750893067228700132037971950336560358736658766972859058292498956799929372777161616396815792511065215358157248364001325843142387708450610617904523210015247663786903758292038490560834966872471413988129491987504600352891026683220490650696585468226366104924836382568737713504457761031324243864600082247508351621208353868348414106109464070250765018437633382036317951900288009204852611435348143528209397004044069137382492643254608306340500679827592887293983196141982733874303750916471758915413210438553984665331735728401400663265547348079763052891693476643350571855782338098119670308891181587522294782812871425844950368704314667524969466457788709850427732642566553370814180079464099806125086528509639361758687437305254895398665765534082787014314540668847632874367154340427794021290482693547812898158869309518390299255657083011737550962595043884479116329695638041189699361040473194753811766353448615916243768060795350573810141022010279199956971597708119955373183794764212076473855199802827399910122808439688157056741578219144447971453284765035701372172852139795870972918617557877740991196607840295659460633661189324761200169527189481574282227417398736269086221578852041161346262761345325370208499264508114986304286275213655447260931355777120464638799448735970369532048976766465482280905943081552060741899593160765213808840561360223649449726114602575975225026304133656461166558004034267399677838993724162513127613973358534781183579139537400158614106736181420752976506638519098680218514779536939824059466340011149724683401909990969560490485325370044486788753606554981594267433472537929796445572624402980069902562216857358990139403031005505125951808334514527196952421032706188942407138022709947698120728065751415352452524845799614026824737012126234084151587571743473723360173253290104668447335333191145165530339565216980977624653860584665631916046543926731330564797366480494225885367858442508569580135445895176577008568821720901085418217497508841671832571389877228058818605384279616622139356011452952335339546656016998693578796782940231753082733119768326635991800443739491820410402321696429786772980345591250972156675668952280403049919146134137921065879733880513389021789588353350471264347140947334017303028147384006118413001657276830544692572980568434761543583399208033099706850497882704597075167314222037962679363756792511981098042936929073116970914928269015242728363394635708883519921565514552302036857812448745417164261548421881428221149592536303923916397166221746773747926675039161416877624634835514756553831485157227014624882708948398658716325424801203169811912227172800476352505175035096209386363732836848355096484013136610266643191107441554065348168855347105632779749873948355493596071250008139038475511979332829494861580955633134545455294795380589471182983427719568401935397543582481152618461274937625466808361937671308652281123372533934004862308502955480906030911269604131335008628566307120548730995622711449971396238785112923243367833211376336333858512869297451383723038565804783720584783761091570105584246550052280683923638647614513186778737067460669974864118801154291269236544455568134022841250120944565826110609592598596522728350032243967673068186090209926310258743532154403784918809986072938280159731209674919521608183100620193702205177183484481583023815127291037688205094585478351717876343739550063627978365800795645779058935437486011244768410878904100896984119893222309712400336417825361530886824958870595018860598563177172108672704887879503626244568963912127431448084272925501654797616439426930184856376843293534127687155545036072188562537828117251124667879658840885144170895144631343747283753965459189002836289472406796062346890046755649271828583898164868775217006775159265388606211119934652598881723187866536367297951784085921385490518452184504340616802713231102765377102518970849614372229949927663830214740095043495795542512989864661971014358927307896199167724434069972577848119809681001098380252051835885185317409500062028252886697759516032935442616341323051096133154773236090604703377394969513615628610891281574994247507756386092321661517584614310171441490658997817064610622222395564231837515241825612105338111981456967181081697410599893267298550114227829743266565089088674118743459132912551522506685681087088775045255576531471868945863004772293414280814670881814159000710985632545963919914815814266232790077214534372281236464576376296675213565302391603889495025215904378949508116524473322839872661937405275210931622515691879391817276550019486700032845883964624648601333003682629768908524996467525702850702250363948469598909262580682303681082360029469418223849602714618368511238290570505697425445677827491071310335623208768658217553544606073163138363853118054320222431251048082819294213700323935414598650237542390315764444275791913790734804067468667150901901964071111425069624000699213550989950655486417746628825228257160419659609380698379675030921555570799634631129270079770518291817236162372569717132982965143398033741620897207880770512859387853609052852416889188107279315711903370873296732104722919986504843417544599729916200427016196787537786901811886695443216774596277089258689152452005523391459757286003502310136487661569609872351640713080584163898242050134502427391776646588187625959283746594822675109190705839109947853305481835257618953577102309961207579709889301269158942177702411830729162161846203771564572397683208606782469643009384441762285465881888578783180160207267897385820618203087860640387978248601646851004725356207214265756987369376381477420844790068519582394419885565725939520222444697831991467139119399035801229675640134188474138903872508991398856809470123058194064052770344609900145811124608518582921834882265155041225094799019970573197578513567014901618942081969622482190279661764744428448523106514045826985328906410604338855514292855517475373414092155542576664612834657243192407243449127555912891461866207945829942641615416728727877268509496690171965504548927513833220665042991172159877010460065461631574193352927233074993429973133469262206821741316488519559622093495879737504141056036124172192417620122625476633905955770909264353657903769867073140585797344470521547379447062487367236962245063924123704778927429307792042052799152818677955035591861337999350875897947247410208545366504308141307607767344306143517546750836050932642806008367809732860220918453112782311160157498114782631399175160739850531836263718744700359266837672769397864015425130928246354091176649004319874904806781917816127722891712166208186588702130212792530169407830226121184841565345672484581453504219138459646550159781061532744671887519060945157487819095120320205541470296849373015589275456235936256420853784900906512111932378769105978281770423971314331955702437815500616510054493041254895752113705732226552128210979216584127841574534002789435075669125889620856819022387523748799440048755627271641269860389279374873230351177326614483689842866907581588300899366864086107664007150415815811903738613132237401056129776261803137024956561844119906663568691406429610717364188376492102152387137825329215824044634579279229860285003487252446624255320395515748056960089931183822135146241111945243370650929052430196551011751141548571265034275092390578020077842210873381459520522552711275484740230611942200604200850139991024380900622612863670294241755493861304770940792659161878116389988113524397916629977170550809851874629136463563905661385919781316882301597191910062702026310733663975342299399121796806987479872570200659941996585969638701730039028053942230135646798886029066337394713664977705775412606723994541693767853276927244667098086900615914832298739449414589144244874132085379281792546440893650007471736701650870145876547220016597904663949585756830801766211854599057947090253500249789026876810386515398259507655615798206252281886551708199093772768638405615221593975851763721014424126278159129719012502439675783549740556457013712470356876944016362598479311303380363923092892321339475244469093224186515968489823008155958532017424711831231243998822319467775497544054477693401749191475951338147702989283173158401904303812156361022591229583241992022536894454036012393691743761300569889845200071936404278033085859527168632374564428039657076684943497834961196173826255597009811887502896495406196919113379998363653527146584980282445676097585654060194941075070416570928855556607495727468317561888695865160881596432838775748510835880615008255869670399657284058405365937591431629654924835474447211044867164927669164896361375878437858523955352057542884476810321318611237868872171211479587614089528876463879134490223591686491502603935683442263768010660971369439771268639449627819925622774124982395815081414505948166960024745560265733908202923836293661044234500680363953564323952945542568627767324382682044615406592843435602947660167582982812684849142865462347199073364747334340661785917577536000226334670465789449950407048133517869375519939289352714102563397606674805369725173082046100139875140308389895934461736991618949224473267613018774911104543012095440577484830274575947451590103277826329427752198404990846190793067278375189408572684040702354221531494643723571084994479071536840223109558458166020456251824279691349942307596946443700451721989801824480909825080142513104769661699282044944158666543379030670827325358054534646388527424594693457354906859958396286167619589050080311454006884879379859457319996429764722599329796656455777870649267292770320374125254035962407282885833201940932698532090101564098961829142896482029034939113509450886345167695087511195065386875103460820261823139556966241646046069727989125231080353392620669597632234444010686764342408731540924861420698679300157041463560818231643663034607490458444713258457341915061080212834143119751434518533271188997580678849701961099474865379351898406283553520988483949356793447466568861936527183857247214201710493509383956151973172302107070184325767555870216758634700254730921850127189009095211981540049743278456607840099548514442082994808770121511573236341253731572528513848867776377896972934724430799521819447083931669049158819506078059993968293176336742402510145012137029688091225121047876597214733367926497547966431527793413449842235658251527114336750698508225594113944676525513264131084354839896821920555800124330821005780037056806545909819934963281515499470211109033810410267124716961561944556250321475245861749113615470166889093516765800611430730107605434873418295804045585509228586414779696927590371231754358346332868897664893788227699992995137590741549323190160535445627197702787227868367383047082993475750594650932719000485061367603722089442189928632662521752621476266819340349449296371262169101246250275183329459057553267294285952338130244501459520615492373009620261560938084593701824847226963027019642370412430542755077570858884461339666914640346488045983754183767394311189611243523558051169193737840868964870726791695489556438809254400887721517933022329979688390730205199076597992591593192545391380616327015163313870560695714158546365531265501962050881508033827656730934400589522351393866603694329257601681624998561786518598461346581764606913936499693150472518265321349951278621891672534645505483150183488625733201874592057553504503146787762935399686941195875991703435008969042704874445236411870601010798953464116658593042677218564509021815092805561005663477715281010145758308794933771997467741503613720468408023032288315826335111255258883143008371511221488689434722810429710680531821930788700156790359662775747419579807002744654448727586029673260435894342639880725346547399044595804856215856529207918695740602753114414488268607744734291925830737752773806972412958011632677799315894406567918768855753040308948967300102619528998860942016136785510265397383709011413603988658778775724975647326019201858653146081734088802423797366429402430408932009476685907425721334567873468471063095637223015023967341404100827340727897969842267237267093861649055012666067864715912723348942970912676861195622229490831493827305737237672542346234440647333260965652199292061195324414893088810381676382075505684198421745441894362520957762421641216800951116088232215682899024872546672838286198473017608073221943104494231767367214048443475004028804790951635481945384989479015053197251608007389473730601288258107944430154303732754338890340701363214725198317884577804571067457961736311536104028667951645275807765113614236624248004352325179597280778307001780023883395371810629141202451833242187102568194047207929273390042067283085768131853088450401470937989289271554863927223033891082448088059984527639534310078232440947788494771460686578877975104878206301960764057290947996356187693941623353400765569666501766601635901337529298169860733291876181112879927098189049514116281086724622986544745780606648240197224663206825674954965911677784700929513686529326230780818621245148972555362290372348000936231787501991235991904559245407876031048289706012562800449316737008288190390891521479851607497423343076386235121905842155476230766031673955871462505331544345298462145018992376976962390380187302186720643701836597669733503713055733394823796531519418211487484076506702857865818463990272120024059426456542130351861555109577918387694228128089592143786791664883728310613029287123884004635789736427929413533074271067674633607412601950218371799440302293075631752674230583085440151826019509928639933104793291625001324625671879113289718432455553429432048921129006863444887664446764268834148317010229006988572384458130813581195721222993895244732547267557721655483435229818622483316162759968060186178414573504479107840648352472695930986753600119235160049642061445912149399943230471027965846587277573878571515187512227238737460159616624305115484194756207903048683022643512784904188136946466305891336665797047518281023887797928234682346509015507634896524997020631445787908881086211568287966375497774970670445036275403823586001991832870105995037229817703555151315737314639191064096773702702977322767718978113476618938414489843482089972244792974622843595576868214724905109500090441691815833085775533213395259719153963707530240876708125222618177183351095798753344249833829992531286094355745644632100084815049229850928575030818192002579842733587794865728410649427594651609523118766751327097896882029218271839338079290083334409210044590578130635637960533311923928157683140646292546885489942665227237641378002820294281846830739660297502727453482742183305794628743813795252598120113624071082746327027614189892899521536946518628493704187543776419858018194838079175047254878414175548168394252324526238989460583051743317025454637064698947534093622597889126650147325085619812392185945738484796436636836302223096595694205234910719001212669408266797251880757213738064973899326845949026289883073220677339636411858450690057498320161933612504056959976687836269158515436889040994102865740620686418438782216865558563170431457020649412847651627914758431261019882761990858783980225277793883406535091223696978510182156542660282356328782973626313165437774338750533950855345753956051006191776601994978621793087563177491448895014367690886890404575045886281823853791999591333035115391456470223870543815001214248087154047217296150814951003690206041425147914326593040809389003074857900070103677550610988721662389432523550765495059981816133951277467911594075194187827418437305003228131046958606252239336633265944878801895126633448705388200049620108256873534506654856667513369859038054170947404310498617796795658141425023539988050813101404553623185939807498521607055698721349342828168486055476991151365153561377430730134383730107402480369968963721677968207423997028444156246469123789954970822934617465896316318367348159935297472826097812070477845997460242418396874267259376458493748142357341734865931657466189130699127422371989486550542108807520153807432768637744670286444546954444701381300265574828158398457798582842148175479427167942932327759982756079134020987027716948226159285695214793137842348674941776855274829786737155516967461837326302162200540106813225445232039053794141157846607955807323525013744754036603267466200873755929375153762931552934506372103481086475313085786364759414878350418194828221374079476013943957657371097524087490496449716226332620088233773399976068848323352999283636693799076935300580285281644678559910347727495655110971685508527044566030616620798073338113252313751541438668969147058862409584431947560822802051353160599178686610313382802674689577336020110187819246840311610524829528831488298821684428469356814548292156079297303945816850059295124195530164973642422213458100072450544123404277747359552957443827319638268245129615144307903349707174004611936877245112614247291590756139734782948959488069016582243628827446411484432164907408184724676329238723379763807393092931771403269216154839946657140614350481013251397091506856485509773256715709745452894770378237900631603440659999865376094427138184270781945793267884201478801964630626614175311775003909138624449832085253631958336009795298820073375508840369027712998172848639052412218553264226033334823870252949449204528212077914490841753827566680690581980295163129903599552417836727476442510317217257695877460317770155206927260257121592663996488086472881308017258406894120884727584710319339293624925870295190144752221898091402693149907452639585269809407939206378840170900973220885136130367803669518234109260466590267832631627217889358531006210870388838369298124164338527481071772870492053261169520221583350060079940397598934506451251731423844237958782090209818520842917570065844755347949941312891312076655920729448512430078131068381732372520380693616436108345208872348252441747543798329268480695295774586696135790811957569086861942078050796738909202656575665089969823169540724774300003218077639510148269918122602810956932738743124068016086546551490763253633460517533717948508722348570355860654989800667991209078235435820028158065871812945904562417766776216167745829588227881141195602447965392714669612724151690510427491634229343734039188786404171575951951179871842519146066405835964529742200577065180471314582337040765897800151622353883302954723533386058041189678735110130780539042401093353374069248870182931663595493175524770109707318637834565322140285915024134447190881763011745149501177568306236860644677555403303159680313506680494743079966955224493263103672263342573044180666456183418084412234568704262239916994528411694783874786632277491930640520524468638857151148546463487350285589866268224965959532104261729957932249414728526883016158896275815908869208092050408159065187279337388985064995504492841432723891926170833654894372884958345175847498666269631091320109697805115288158586748721582813208975449410110133195342644355495604456818111993845384368538231972872910559544331960132663669967105755667079805659245348504961463469593089356330131416789219466855407433962886511475014721969704818230451125574730007360512389325148125551453853692518446828910851303435502904666905685117084940654422580751748615187499864147058056877056003914101216532226140326189012405486857707255268033675059413120070950925300228162749964423708760972475240770180156661170901606216738757492189530081426529611525904520088685986689656532992739855177627773067253883559585652569163062886724040570719890704740075103077026895532813931171297293546783845015249404543594790002416860573059289920592506261045542070974269850711395123423116524212711589018155952564435002366680017698368139500206249573030493015361499982527446694341835415913045506989359722511162117794462666978034878092015108559322708759107612735471562587499967544369302934561975430096699370858981566168543613284673821644101561546667273400889541136986362617884489468530934639872536421373035194857083454127272664844561891126319496672821151928793421577887406889503163892056167504425280146946511619555512779069119985439880472974926889126757682209908885369872818338909860963554956905065094486371375249283242340763373518143867255568243685275390806269341358676512466091251030155656512521647982379944554297612077219918828531805958383378845091612202512547163324773355916983817354760386605310727761367213491350368328583499888501401589441928211284548120786839579517200528062542662397661233967762929972574257636693081306602594922526995254267900294509270972293688870182313591326325356999957652159249579749691492312900848150921177845337281011031012876199460832641278272529522962134353526284147012738378178372535066816756536756276973103696786470694958605378027020155219170538251897895101056615476135825607279691192403242520523043827861854011149368285988983470626538068289011649943773220080817895732535276671735482744469152005561339000922141474083523991821655525500407661054353624744618012827196477871567886846307881019677344774019085561981008283769849147001699246215010555956341910912568932376424042583435215606002576810151044216702443495168744897116153896656689075254241335527814056775436932695865709107505533642980055152330245424478630893516571120351433749927742883880451810878925916931727277594058269068161951013263981108627142763010527961483920883259503044597327362612177612120596724908808384154298042420881181271479904120259118297757664848764174670454347363344212909733347146827765133529060620287326900080690581392151386117619104667937256123437701467924132921590717960483233027573160032450967864586837221133428384398294262211758272141426830944094064735922962710577835825649204031633778751500204377280740183820639758494406191870309468341490888368042195156664868844423985117248968860118111038844907655991712641715362791692825250366662123147813819996285998293463572100850956532795933481738654437300154205671696755964675549984621182472571777947351162448101204309381785397012949685949602087416711998583041747943140501454771412687994175839333530404730708258742723684754920808463239676100076965479739170306586689618921129865957514873514996341266910453743657356557738215328595101843090386352527065334324782471318921568927548755470657925797591708762107165795328197304840026148873975502454847439777038162412201797185878547671901458571013846700935993335415176410263241507896095954621010376659477786447036014973125206066485045690929917098775256477678401759593555417514519342192449303574156040030315547813219171860877120656412936764623775040218343012902379989272821378789388623497744715174882770518138140545459649735381619862785266930684849515620593362552610423994306292179426254881876166483167969116910663272839027213190733820490618204954445766848547088946291365968742096518395472286742174370878410539123122638299663236799914668546372324576827794264940275150357146790244499959818757738481574340606345414309713276286610420369500275237379095795078394800767360868921326854106828190539563562971202909967142816698142430455597489851121256918036853480506756544999852156204907487090290196855700271451651389110675349156323310240110191693570641260216887225191088838586878337075552609407671685423705884594653903425241037923209008601426425073323791680144036102369904076681269432944153543404621982049063201375716208501097554162265597915227301220158186003845997520516026269929372277103484105667570648407993580434666756432814246668501210526541232188474065778599309831557546666067581955886142759955949432488716739261579447754494827245160696055245042727606895086307117511840828234454904997770364668127169518050302236101272776542918492718805747216617709330827021387661245479068466532409679445315508824067145141411382620948398704211848537915669020718203862529690386432028276341973192463452943769344176908066514499036641785805429966383721812042379725861534264372074412668761134882572069326322149531564356600640052948165120114499525831510604408299505820888190119933982431326515939606814725056122741714562687339177960310065189671526539659673689384534953497402185295793247622830370312942413058540795805670694148529464728917555879456210495524544193204559675058520772316111767544809749707887809153442466125619789790202792448543703361718932282522997674233799231159777887239469288453325015257354413540992973741294337188727879243274878199529038821122852355604251765663221495627750121734502589557815350614179611924798066822800426134224056008651183181342071752385749923317288968024096002787581307243671191382088467513618219670338329314563603345002860083296538832458786269903323553848987694070437560209836322695035452057718359013532419069939395122121671102388538151276688246725283750574632516139255003158890438486718924451858693653890586162099905957800490418555511345528345831651280453448000045323765435100173995944545346589068927140040030241421543359855417514361066595333545264710854573144998387564057479088220138141398398108727313149432778815595369153179886898893847874693092760733883789235476602132244229094914213768125696104838257096366398939420862269900076632541509209350017300215177743583526253952826425033441874646806400399417262121611162770426386253387875582183966235367631055870245380920345598296797544649314059538024161215355840931743087116876471479670581705242823436576282926924169976726099301806903312720556151276166061037936722636419683572350859642725372462227968153942549502122035512269546450453703676002637992750476737989737224840863022130565304643790500277170106678085336995905631377058420594635883337054232518164841955825113671660779211494146955765816830866901290384848248828140964801476252610824491702743388829349077680554826586213488438754566266132217334143840958859883750198697437130994129213969119088587158571029225304731531325885064484264587649736526811203782169487993253413157619461993645548155623724204135386940921915437834609676186993535989641615133824491009162659851102148562840752912841349540038439843274299233847700239214190897347594543743170088903797821214634212557587987431499806126333791375850855846607416642559673903076691900701615601695067542551725223573856892608174187805899850692006226176456218674291133990867889355377324734108991937136800712744499506285527371296649917747229487791666659299249574431024727031796559725920283946991190282760457531083514847334351178238403344792845119501682427006290229330211830800657376195557118675831751386488414365548342389175084219200965979654915638809210178326604831638488925215871348441356700055783491080551264495245693821846334593365092415324578650503997806500215161294794344110268179797412527412218656269046236557378712449614604341996339034748942747883154783755420895086293816808912023307236665965878816049697111888421517220974718659684095946844201441393861872070291454106745553485278117855506519905705134099926179868660062603239982885670838246862388905712412007518989607261141322590396264284881980567983811105219542161241130195130962759687331606911942382732098186757700250828135942912824859135917182178038893182659758620330831876338385725404790669137563153290880709783132953432997019255564062036709936780446241476372832595903203524170710456169186255133976126493895179886955224621618104562143054470254728913132501384585870080529838981510739751167842255424597686599328724189475637351570186957568034088156329757952268239016921044404121209383965924486840921894580459865899366372821868391685850115335896941126692458875773976971239650746903519576106926324509192391601013796984290248756563990216601136302794888252843527087513634969941325661995741678858495225178079814062175713376224922920291656467158860016287698283088605130277920746564926318398215906877790499292651302565824859476597143129236225436123543287836021230460637068847388571363395743292230836811471706305471984473006593900401700258240809694023343483716607088977803977222222414700566190866773404452418215527107902501131090870182496870891564470715999350271761151453175663513131776677035188297128788642087147578870272254604616617960448395199141897697992045747158907012611927081035066409362793547152938519058659661168652572433455691878309027434182854062330515392485093000210746406597412206510385864698307411340909306157794954754568622413454889868323886508177256232601962398187778015192338444278374001448122160881929987899250576780279938825062597701028965088012978083539887092154180703336878152245801981008411244567926874543752086712804113613067194100873741846340676496770619102733560781883889560711087597304306268154036272449488848514263196797847406056111332644013614665797563375024669031203820790693206878278148701947594928108654307055902360501231043626130280705148383783161725662373841413046842072826825396606572335137658747925905020240678317766808444261308947310194092670702527983975336009674191557323198362632268388329476858238514694511539417225003971340048364348100401486245526808363850450542078308193821877300444347819485663553127371383994079797323774313046331920926625445362875913429501990704978296796989227375745686658266651663656612317074473222914141608280691025241693273715949089551811265895879646146645226375083835131779914642694022945599182422680991622904052406746741863782294542056595468236159662281965114010401859351935679450785606502688429873825333102034291346527461887905823967231420045863386885708708172449066008875324223188336521560484173070326466977710312663306429382821986878618791877441911781090540972008989993408944730401128234293338615833165872897090789281319256854089751591408131586122010550465734653670002780441519347290620992147027537117152318271063600262503126933599263618802832372580050603325857895936346600256535503688619159021874906181111707221631988588431051776125199177329892970131271090264800646182348142873609841586908663540115572979496623368010478309022118243301287067022886316198596503105497797071523565510826184845187261453038399323225410337475774098033762044001654174418515660024352053598444011421804160101638359440112220596696550828113806381113349379158967075028276552516418559184890886722165726520393256000380679311031483867959244967503708798079907098509593441079898030085622225653605790059001939494904112126206793793181379646792478985721477231481809041093975585355876785003438106167961315765168350342967674508189017928225390214595020335584142661330610722900155328536669658947684206439547894261034329174856898464483429977048326827296428773847467775123638542909661146710815355749393982037272368504563561702951557615974260223760091336423504390773438922973829738397310318289741633133565877245363709543083233566998487548764580721331482275184460418738581576309812266135180225206432776499704182773495329094599839988416473124816417557041772423797820684834156246213530585183598534809722759871278932701293344344685415219385036967991271449984614639833174820721517590282610552151838335160581296781980781695108956535970182557025103509730680620548479261896384067049889550019762446283582624544061059258190870611261967321714233494055463782712407075880891521058512631250981979113896577745181992877619463177038956787426460598217663110791741026686846427211719096196697945864347659051358841265543168460799098723741672773114271863973207761300463023934950545514815511947329863071761630686139718942881165152737012395273962435672122057233504374822714624274056416586156315365810576812623089911604361756118245441014858299408391117266301115069747851445749643186425113897636155250997366944282640545025945913636395622844346349353314113395021379427095643774136354289920071328278354934010259510391875197223944127540686495864419111110235195412792626972867708172577974299485318977735915691164381829807447081511456868984744102845372654877536528230055728031193622331865321064982727724830589537193850250905557422217968253370054340756492911094784890793207661136045960110771052899627452201158836970629732749153402024384283976646053442441168085749831077613795353956015754846034029751973433746062231299896236586150456748234155193243932402465181637543873234532315857870615201576902873675715790196368949128032697333160765326044803464939583960990086905547804395133581019932233553741712571659079236229318275931911019796026835768479722989857110638775718637622121978088548946967658407576933040101330297975686377227257958114736654160329541497749890643737665374346212386229307738936732784747792811523502779011728756914144353673620887388566950122306483777771219802932948208363854459211007556710064865047727395160928253092435509316888990178827126960511352702354224405161691689047330669419294377061100016915173073577422004733169386872175167407508304209495832887142180238718708169784009104115138155508389293665911283352200915464416652305435326866963385309916690720348233743038140769128122876510979651116546617398638312567170391699071079579676723662300843720916659521948860079995855907710368069256598958325455199095998845500095389647237864593273984946941913035631047607633925386692562800441457532150086643444459765365041167908028810275805073135080970605153467453726384188415121750512182303334164637565669034770060544589961472837236172020615991622720742839066049741576426943324337281246753768029640751042889778383091530204577031455944966643526438136725975415199622794308266015587251708160189159473299438937281157391616605937046405346105576138788496789912655160308919895924157846416018392176817722705508020784036824913247877260102529464836982711954929598459155074994977786404855223632020497651207069696331830906751614454510137411405862422499681225932249585528092692899633726358928842356373962273117051541871626014884134770567303979704930344762716440658639762776614482825373867507520300298428338625185918353539640567880758733870918470117527578062833055907759543350511528823446218382064463917708467489559307451493517126700167883615178059734499028916471205816212933770413400285839679908430266256135789251117875182570837309750719971618882778840527039848048430938738446931955996178191124529012688060828399688737849756974819614185567682326867667312840228353650322263250030600269123213386239833914956998530145464951366831033674779732676359127371928416576439476091222371780974941938420155512865747406595391619781073358179996315918021409141946736874641628155150497171524038026554447176196254633701629727676486142583816210467133749678645258484532874237041678945000318788990667084025790534624030019137325318841360400397317862392620483028456082683917294784681108352356415187647307377556914369630469472803189171816103747705216827708111993704496754947991519486190322214016144562578227172246366702653383769439749673890358873323423369233869499096607533627369310302339726505242372814058621196448831191910020981512473223476053702281860321560772891449101802548723840428897490573799468507450765184533160681013604678263843863422979568529157705711867747075274547060438946531236119060650228318181448024893009730181340675322101203025441554363006214439310865549141573636189912372798893306051369417148172860002175185476136354669677849229876697234508540679020282816244429267107554691465971618542575795842710065970261752424454092516316789023677485407499142750769288557372576746736369784260966797742584758418964589555890038368537547147824403088145381576592635079488546694435005224108083592883931253976283960487388764714895310279379904265029540412133645968195875605411430925833267474091972861132428112734889220080396277423262633119214689768677415697564519802938556898647233491760262353307291511908570544402342106554020026097236508381280909414363618832964630682118394906032773755475912815259842438239493709037161757972070568294031921302820238052251588161839035391145848522245969376872090725463204579325526930190959538907325959907507859315072778211959107829648105581364292586955924833889775444827498227306198469993057452097408639797555083806345890184612049062239588454185357569066939902345108700949773765107992167860750100640812842126214218810345061320022328524109728971059788641553415678642181080799859133612370248757875840157365930440203685970230027525463586398298861027081513964160508532321145737687974225816266089615948171244373177228490606652032189336638542912549479529742793500273403966655502145088676950557834332618113208619400825573698547102563260297236641513394312079675882211290173501228242645904829820344999004623365265348404515950554724481760159958625263043365075640438058102267980376053590119056515694452048751355161701232869896591840516318565876473891853210938914764970180340227705657894609013620700611051470689740659902072253469001352764086253161229697481949572053990007385279733309213323683989222325026949468045533957138443090495749607747057438038448251957329390370638310028346403319219836526399001523597589144641418241323017405700918477139504722390252265830338418561289673805286426265960216954673682311749340779099936110444746255412458792438240863108509861323393912999950633349674426460847480382875647518336324422091112170926739597310745317445617295119232767807366315547900635947879549352361009570921368680966574906412775891986224654676539323688805290447558064238184370555614758095945597353380632420977847674327253990326642162861800269418631378430150056998807432265698455729027236519558062345103366651362673532391318246652431243350491081883916786456036430861374767004038046058590096856131358726717081402418850217513314687954923724204721026602050850191913719767243816582918846703660725929797316799361203959753483038000061285682732779489389583308031542888637696020471046318531039703005136703995596898204080459932419886156106724351014888975898386986028571612998039850068234943104590981930632296912718691715968733634144577445130945463356193931477644343416101700423872287395966113835737589225372325347303446327332178367993900278863314652061483267999341219556610157406904105909639273361577716273265678509402799675103088975713565877954919874933240373206841575359255058302752205087248562450581702726709956287546680966933928229226699534259112537050444660811555324989424261688577384928058465124637701538464838975151499951845136687392794901791423350765952365246445727001468921387756942362459643042271441011516785954516992370997103637181071873564995715076340932069050189205919538178205432653172169483815598222465191775441700590499221316713308893584095120833267050016245585727204568306096330031598992389679020043435988304653025914728572362968501928356643100069206027180081030938448465671814956669693764715510400398603322782072839824793320385056570006722375512932520806318718604709735152732882569243849436636476834592485015533402939079038374381589623452897555559332734676048415917046270303694077514926842686091250621517617233917409971461727409140088191875001233061209375846714152837916600362961461155869948392219527505213701833287753045124843734171127366627933912448402638736288508625580883089565245453221599487298401046112765053315205700001461231833145433798377063601488176849945836346774521535010795670235544854889079288939282219321646788778197766127999561722660826063212675645887016360081409890173534241977616099932505691022039405402878866511492874848387401565631234999655751401516973950171988405276553305225472101605638667883779641645891115807316084350771910376397510039455969555824972893217680272651500757664141473224373203353931536641442959861251778294566275463415466499081037669879205350643620794832563442752728625229115189403703360206897345526760720523114074928628862724616998066815928086096787269223331574362224757371490180777708987655806719842519920832940087872827037872755460036105570769160712610048957203371339250183389704795750056837931210406777267270416557693441462884897780245094222732966993326597380287850485570987574447883105193334152437581291425269424843394042674282169534323659298689575645991054773104972647903907556017173915871815212080341685362104611369190274468582383284863448014412880336217111811413506405239443801772956135258738089668494045558826570274171548493541450206873594656526849783025679565295391588561234145830146152006501054817423332124635341366642828233402480649914007300266612139002605157118422302418113968320904960032179397741426537043727166458638400171403024579130291891521900563265101333828224919162574394650021973317568122060890590575277424377267510238506768570803831556551146081972581889233167674797281971720758229135016220752195498165936628809847204705293316769483338690645560915216091629778657561179556710410225314010608222126153662840251060081428646594850446743662758858535667381325004585103507302054692766645374184575346994206899248616946902525594352263814900656914463264409670317166616610181427008449081693644222816401349828128492020236138051776652551550131708347388302819543675956630855555537689865853176083193224715686374469972970537108715468177150571359867882642858229146023304099067023112708821833259828885732980179842495512975077474355104647433033584590307672505960319152525102535339282954675497645346777810892802981865586263982126291240869827011289350996460045085219832455374037182763677455543320140298035367973460489426256763290670718947853793325291454533107215669473160365622116107349690521168180235328947634944856464717641891011549272918520758793814288352299434082599749148973998233946755689885189966467593299208821560876424084271356760525824959990206262475129512225627628029025286875999243532797114298420264384954363758638165705866112686520545054706135029929902514129012499788190843149421531201826998702488281065691938971740205163408829786699387815526980707465974049399433049997380358712734299526920519166403175141487240483917786646597367774963533026787214717299581663238707725385333018102971749230021138608591452747039479120185497319349404684623654436275733704953845145504535124966773338498960422888004185161630169306114542252035429922013456047660798437326741366965620287155759254975161651888150317059500131577066552384473688756222192099010174101474032215369143774228536890017346319794081984647181602695805927448864237753226137377376726938757290180740021098696231732404809858060119419956712329230834211716959114344447795490780689159750713375802315824031702907087308791194756227654213727421575358506517564513068931375156653921760042088113174321754803076837047832635009654966542788860069026506383260909793249400125360199483819515416198142530422139395561133556950579561014094193286038107443043526988350770021901804196332385816004032844263680960769863361029562497171093402275595047414996428254893942248042993197701513172937975943267603502070524688150763354069805542809736003471765796131272211282193753936982129978756088751518347474624520134645814006337468570821012603221202010293556602373943811743194775298914825996409000422635378262056699102573844969918569151061126159962200596298072276692068463344513772651439819096480294540254766250954770996919160499784146667809808640589592680868337141390975445154803648058832655463503574761733655844023473940364385184712264485462146042760753225013841092543622039947896523455214273492341805881998794020097655335831018994554798133571353629694181630077539346605837763062073653786718042514441503848524721008056424935490972658427016954905927969787795952744210479173094697564986881317962445045544232040718105339539530083919568440757193813431531481584649037297670337176472716299968624030099843144932820257494679739027706500668467390019438904483916659679632369378496207982332837708862562562427320195960344444885023231171758599351848184817083138741925765246193706260811198263517845055741379465713880578797846041597966162058708686051045594064950868543993570487717582828466867817584513110081789453992333099883851468379448349573437969859527169664736586608033978543485562735689585994976401309917370850534385225486639425602925036211242028290778742180385014260964000433726877643681666408981900880359014993706915751886750399163243279952971242927078975302987064568359458577516140455409572820842645015610807317730271983186384273101693373736139714756460660132376067755319181039505147090604244892963962554704879060110147535046214100626961581555980964438708564173530134024437601882543706000848791414233841625546575994888473685519193251875453821843733304572708680300117761760017921675935656242593973368516746137455343776968520100411049094487345601009932331785498283486200634307164228850886436593059640214750622214358373356805801075366161746898073847635826646189812195289833867931041895263972860037333129881076322658398071791918626683130131099290817104788026954211104701275096789533967340258308046866387741760699109714437941021667093003370696241621797559676352249392858766540119499493358483809031064030850794626900453835567349638633121043904437529716588937056776400949681504395609598163991319681647560306246050420726989735676512586705822552697489426142246224793435339439967209847569112500680828809672448833549529245161861942058055933203899118068173863670459381244112862815956771767522384899876783033930043462981464651114648593188920806762994766970055151252926229042990957671876917608094805859760645213262372154714143719022024787584010121028289439369003305586676668630131247874276174409937492365498748310011069763678764627099581680438089122821274274475592097087024770072557327835024411908756506913059981669975173408254241394400086848069476023448334263498446795081815992486242630193531756613035294859024287527660790143911262788566582725736301714459437838035429580232835152710723542056393748934210372115000170021656352413159640663246661345914020868195002538761660271657374886551153745200593924660213541937731569194963814629582413020929864447033891642395723775541697031391125617680352883881248381864265604635856431097368341856872847721034869073166756583239238706502645586190200278812116662552664154404206901577914241248671012245209216929277990271177439336598482669686388336634640187789949818283482468207338754714238998640862042135074980370134385324091996407203613262459531170585303958340493271004913423355569459852802477436754135154434219246921932024191296080575722271561182498345877083623974810570876621383400093260413489413026653500693385054074169887936576449228820017417366373188754002780813454173633896168845800691903694540618488730606305943169040722924437898187562460320937289007301194248748698549162559428864737276657833755610450802633250780260186491982895728858118971722664798267118964503207244979251405483234324699796332286260755494081948341498636687407060014215742246890126489696668220541075476176018693558067021641917090523051354527090917281885040240538440146197410012855790483834020182568483670512781916362717895699748628033225295905799739818930923532175699575784842531168375935452634359107272953692994466345423446571832748042771615482233452572144764592354380314641789711057167672782232574296801963897718764418331021795198031511565174597947676893585110265611018458466113230256434306700749971579496168347745601851804081960482591725801302843516696773408148767721269845975452872525954317574204523388753796650180337205628395663052290180964784823648616087818727345087838002222320642469004729928965767573016545477725329246457273576123470173455890703215323754311244943680925988594199124128114808802969107624910338375480167651962271994922291402687867180326055850899536900278908172294806493308988198929530361378660896323384206299749306469650193088881343645008357282768371986006485722078313425096131610690835657859934530814461385011977636096737169435270327847741730432107059120594037088602706103633282335963081566572115577250413686312623777326650171413758183176278376073171222205424200748086386416268924142009956233428187228559238521435520068658186158971437279864689615174787287315775938599039486492707140619072062467444920355746568325110119069868720725200277545065142194686299924600053194008574564300538305278507225321333063359318304354710552219463164993735095628205977197533220232716500054482896068575107720736404776381452502165529468278341917521059013276376505338428909280219833587596991576180968444087805592280786511973934741288921519950825837915460807312627462729400724066382481147031338412539614479426762797264546201624161776886106585103695456033786848074893730200039166860078739550957984845848745317840015237557459906556153797080175809963935787335707161250579591839882229020420136024798005363433668820925210871321576823203555559635524175201032599311907106921278355625735944462523401608547572651957969851888319191901311244569277869955310078671515019006906874760332268528188343352007710726037050859428961902986588269325567803787030086087583818327180612900020479131551761377102289748318072254938972199278240828003628456535061172737733433722236630922940676776167346894302412449351677686079542590811618528687344321663252683057000255712363590186925941213006444750319724829484658964406140389391481040567151440582998846842424311684952542369545785165384104919600353348110091020787706723722839519762452665876331430089006223032373675772428574697711552473563691896211983600259623010103995682164249114035337636016003753372906723855277471761452271598160653290153387970656208342931926500132498466837211879937896474991179748321963969018421834147614293835250490145943088469856573416034080700726122738322070315990998844881339150588018858381364923099808612532924439492948869022431416125137513754764657287948624050355826526283695256923422289528711605139745361131203020234512985392006272315636853508922155551678784119041788680368022396267298335375960436257239510958991386170718234570218042898775649552268248770784457704066589032571966263848586380494030415731114719825875696619080809349189271077054800383012556927308838401052421898546532497577532926791137206824358288953037644396888132824403207045322200065467395185303071117476431155867208318527314543296499631333019607368303163501796998836115598044701143385437995863644882684816953803815059750194603091130255012915189843277300922048458563890145040989694959916739454553107091312393897635522049152828582979804513997811687363003580585275332635839983508065811753696066966353391170439601907230873334009253884259894781599515758365232685640714910515863757931357131763353193392939911628380557569686443013848602762702687940764937058186353919701783649799812425840160649145156683538928427285433708714729238105799751847062313875265219459746426055558660559423980320390715840806829415065182566797826119214376768255971896177313359205606333881856818873619806542704001943626252649935451510038954696638207375663290938090503313708658536074878273370234261116712879857831773031248129899671924500517181185755526157462782687786793636083636548777896408483598844201354252719769481758125420890046004424181021850881640026315425176572431490680604582259790168076519892746329955611944248705614240486756334169731399375251465330253118599061104241989639961004068526788058619758524406955920586803924809565726552008447862679335853727432755499110885690388616042943298977880631568300292462956318328645699973239094699421532181934884462338963338631892013483443795576231170804084349233256899583939697776080615123120093038480673685852244240204930664303176410875230739971670851126853027675422734670750153043362138624909388727345823503308716594372621606044690658121308088399946025664909265394850218898750141080255270211023680948012883946324897381273240835586886897280060135212718082413342928695340638634668911046868347419592108044707257555661516754336150763258787481466525029688337948081169291086189531068675229774107691630258752206170180997664766243631629006483183521928629607422825390052736853038242549486777625518043349199303283437184117539231095163215517198150779438750210727045712605973306926408329813064462179953661583077131701199903315999879453822031166796875903155389309328322206805355865245952546694748182515960002517967289105740332271664466162907510809742752639776725295838753605678387754556886073617008503730867294567766806243453894786576453722706828277269338988547723778098224861356315065064786119677479482765214244393756761309979864441431487345154063856514580121876179642658295292471809941056293253719076311490647233419702336259583072015154520674954912417886029366788955221450298341837636461153474288812459475572457854255712742070174800193147080025150544715699733929831707407691253005927458841853832495246632805477469535135032104696499490032489293721071125984679132315683388647905006530392163032629080819622288762914341698455400865471988241814221325992374283352127126909713966147420927735121507261380518821519631890106612730487725696918536204543325035267690327349215517019877472474997063176672854335302740601536739859042340406255131388889591646762941708201040247283468644184095010920370983453242218434469938929559718108497126739399173217225409383250109122160806536761729865825384223507866811198638563364488726805948684138776089861516201340421508279515804986354808972727930777671251368906202343729009688773948710606003758506063590598389738654226377641719811969532864943561477139453159346720183843281387693154747212467718665661436899342525724997617041716460586315846749424920584325728674163745472880540944728055144032111092662888691560931764620812513748622863600612009003694024239017824851524153919846405055885518242518221881844218620715106497154072896252271548850145475794620074526644158344648002028322451473753551172986569155224475081217291021604710159395329720507973632989131804602764490782919800165096522839061434634445871914718092494571553569876259760776861875418634574697748123099234148787673113838742067481607747349677832534975585857729273729196242254112524824364768322712510899615071099396938464270715018503414359113906048722323488698497828769519383225158761620109241838762092306543384993125951019008849406183927322859788336176873912521224842301654927638618284158768353059109802740435607526782514354849566002303676796429352110427483397163016399471140404372489629644554575123932613338434884870081807209073114467625543154306308374083447036041294702879233065943090439407247711673250208750011367265173331991207978295141254018440287423532691010983625189581539054287135690893959948060443415075804206581470663503929820309790412140706708449654976846789055338349219954640323537259010175479233375218309777825573236975521832661572215199999061558491934319062118402269894172408081130157315501029184117509748338346349311604718922177831958341979365637813875343013498603800264709615058741640238541097104448107331346632113110722105069244382808785646662740265675616614496558095852395689145752329567303071712837405586522288199900859351254417627263149813281573159137444241345353599180319856431069225632525621307574923494358909690010233843017272985804822500956384208827136306165620449133864694964105599531432396858478707552405078369898032514903200468652171876403852057112158787061493159428437864360945257909728883876282859437756998263575001372647981932563839904912058936708657397977396568246513532325983225775456646430199861737668019009002442125311963969724505819661720575842386198053736403512805985406505689265575547802997868740207562172966274785454093351463159442126364166351099377713270478149027275329065259306289192640852395387400683527001644260216703851682051553412787223546596889834357381905843462367685056063372233238349215257205788431213245631785110008286286120457295847044820208361430418789915319665717390479682790716730070652802325102979655122215062594282678006725981602695431481154915383107122757097667216733303034912923712925572187283669094283752996988878453273661561223832325204060783542645947549483582023722395819854520878353652143423585864824909801713416891494140158115541499945272080637708955907135034546140524652970504405064047972877945638317356082334076725832152809929419564286382845184298962784225025488731677569522944279890424020714460154703946176244077618189508518792352198007469290823487194323278583965570171598736391507621998414158920412546854904541530507561986034938141766012774988209781122729542001829412880964081818011919732795447035892452605516615622585686217112764283419902056064188960000427698666282084756621392812892038866539682539280366706975361215454194376036933828107174911915353431970029968375061958373354438608879466962606933243978841612858070355095695649013701980825927360776080801955374354500486373145270182272271386639567694651392999852509774816149079192401932176590664245716902026857284949140764247991426800083342549879593048592634340552717119507898303192538636066280235249362180480721072725472997478453704955691310944859255609300946872200906605886237659203051295052891561981498071108637578896783492346049357457575885913214197247925603168048325437002410047520812875612546291136062523801908127567183009319035410767918466521727686188845230129977900767990398953138338502400952184012313429809741975964379270452511961715292479983511194620849836574838604177241279315702119718489206057649558484628078543321735229463578156188688740914630584578107301718309056577986326650364941610254283363241516298491490707691724714009468267059145812628738914552164856576560608428527095190299544751859487837222829247434513153270467327328165846519396974900682476426445287543293211659689050173988819057905393728927008780597852573610727711678190109012588821229475784236318591540964883449038881090807206614143071113032263096113754327251336771445302954625942902706784227927984323220935382564859117107904365164476562043985983172732712483377951276797566241213895445315293271010566488476240096454684561990240259264813758108613030572298631591441980255836856593110921795091987850664044382816395182946377617808234009872469585898623367096233239191694249199975472407026633930478371218173503004124054215331422447890350682342893766328338704947420224409483915452139345663780306540606781600377912985906771734445533254117076211564231306270256936357711758518754179271696925452459640315159001776555967292517744299072009134902798298471678084778547237130687476952846074956631792751384485917909568084837918035316557694131275380472689139335677194115520053104701662515420637077517197703684384629134411104773249339441469505490157192084429702597329974531554502749343690268563490185916519128453766458868238021865750945510274887789964964725049839974054792354710197317044846310115651673070456806094433547962851740880854445692452032570997752352252301576296962788816255593475054394047240269975654545226075927939485787159455626795433942756021788996036333783928697309741997765573762910211175298584632582632621537215552902344881521637150685294032016551424078975754078363988130841922741147891649136964471485981786442099248462269826233860007063748404862997485695198457076412008034847971916447443877896709401565205265567719397133881314990557928851437253110775402644410300392500870472198034820185735849896022972597516591372768482658068995680408714459318014434298502043875256916075147286249198378766747401957676440937157032344526353116560453929016832532589514546396798358995658663221315976163878149936345924728087712275504986124982896846199789839673649582540510650564946362081212127462351324187787322947010322528805145270107765836402502629588622524507616653187706017804812405123643563065378613647167407599922404919056310656792668662120683150454925330240334253819599548825937461724551469128658757891010859456567332609242302463537611419991639255248699494097100714896096758643962750960999547577653320142593477981916530506251476394249615188450769695527057266259159361634412208380846251767971724293847510409499959505577740251473152060167851096910928657091004788200347229780752131166248731204907719731230497359094672778664443874963813585327781915510005151768439541008980242878496739950134212443499593298521641932489570567633390369882027630551364005335376967181206670723426246754187738552680060390782601569936686981764701142050268457484106628941926574482938380324362379749371001384404669965433769408577015908168757179257907788562447886508488383017982446165507843884702948471206336481882694745368841950872341881338479336722290227081056566052519567082767499320244421431313556129828568687109760587033029188785121719685209018273394596538373342393466340872672800325968643003945843973533380721255871148419193103757888033568612843810250659587930301628885575617226266479664927302543463813729487911156306743062858922807936123625802171706902310635627121794529774237219688313956811103720516767442607781732178955270178927743546769676000619732539365916664638167946297779799783454778971587909374475245546122522809159573112731775686095334767050925512844833258813738386719938004114771832882514007947675168272912113917146216513458975591657301888968454864770058614763253371921971560181054977711290364867510173607462954415844976387534372671900040420252974235914661788801454900599293288790308432217980461001195774475786725408986748908764738884363274992658133836637256386038718065723468199492070888864635366630715373705974788234448225962879349420098350390876048626191541195759328542953300624422692389429959267753646888488529396118215321006144927700930128909712189761241859687762884160740498078432972278517497506353300498708473190675395020992537833820427277028998128682327360226974206689028037634668737785157824554206022901799066887623346624657648568841993856539695745488934444271860280150184012148702114741328802480535433508016065814310830978717094408800372616828712931131114120191905224223257744265829202337564972067408611630977290062275677716125169065973475138108963887909134868194449726716843326156465965420004523044289376591548618921896127893478027567013238132838183943431916842264412739376179334177631280074472693338281822907023784602292063844579826368959528869021083126135595173025245443678873956807745475931144998442632745613981616679383425131756560520443406979864537840081954681617217404144217123779312347532244080139089015677657890163846114860004180789933580105778466426328974918492603544755152979698863026144248848568456389621986517590971243500805296924807957047176429489831918763611554913500649233300126654716742937529481980992528824377737709240608382482219638821802514371858636424708875782318102231125123045624618311372896820302825931161367492438365526440827400698504219602656343902211233672677737534171034798196641293994516451368771172319013219038557526108862269086770043208845824023446073845525881344943821651292947824731059110220494549621215428105595076598769563461006595646149668196070320960170603655848685671392488173932623158183272603578319898903270906879359780279401078211042201727568072215826330710420833117505539491632891542141883914778949789478428689215564415306937210310645255936108468545813332704778960288993261086333593038982317804502982177263560262610122615280828164926558367547961483670922981405117385802566268355233707843702464935442662287642861433793999968749988002956933605694934304966988010369998818370891337591293997585844124068899993707534725257252858915188301217258721434547094094259940057244251792726388694874526936152506203725667259527687763840002215343160121221126967168647594546999667080979088303382697476336033448641345708679987241115860969011618160556879632863525844027632151164990023783124479672920602389345786174551347945664789859760488052661053683671923895720624723014806190348663139508719073212406706131404100536749936060978572168847266388714209935281754632932587306342200821334583034972291522579880661792967695783778569358596761579201938675689403316755797074582182032404877698863077863723449946451650850415789543715150980590613845292497279017194200795209948527823354770326854691319522794512507054996834273289982427896107974722030625090737874422001742843898272049501251060076721935632144887617843396971679735754834654407380799605438659194183076897253569173899683834614266003041726035647902951109645560285104753643954125124971164094304877579108171009279764913374350228963433864228570478804058064985029617189100949470680082588694633080963667465126158368791906047843803994901587859089855039615540078998673489635066943470374766410408333104538386365310439020610081013770790136998660784868573066015760733285950055911633742700796940986791100180732789463182888413307385761800192724680238655378184062304218419049974782526922871658960292560458826814488678838073905376825988819457791582686523695586198046798241499271912192734039691482417196460169058646164233579617767178348270934519445902385868792416037323239681537687980566106646257438341077842938558357496818313664512634508517351127902914927945176879269081012223495904668357857967012239962429609940147094199284390652871295981989330439638725267246615878196839898988328044230010505209322612922967731412520169998938761539108272117038724130823152074379236706500687574626404575000169112925708868217728832898883182649208701344701196234312010863438222418102921051047217487371921926197280989024885195294971605205268252219461039428808938734807077814337754717822714471573178825417586091452672999796113791400181891257506970693557296315326881982307685337335894227020132518123290312844779301963982796382970679285421885797544613388608914314717780087554747953751968153699306063562829268537705738060659686287514482001369345488230398882949816167008891960733628512038557992313856510038087729356645766439431218209134205801659916141167856223830931178950431002193847222522464782215428656675999668132978648487434297981662439067290481789708232926332060531831480777945633872597755225683459297856134641294450113671939070559484757931740863034394340091337237869093695405842745990461691940953637113076434234725457352716010400431488804370302093238876912613078283529850176047250363366203610474660299691317488965138859079087287300492946227068918363129604856268976942711658510058241894044696305730605967004044493488632958961138443703431317329847836359120152710726746015193066190622335884514998415411920227435527316162390121992890885958216865532252202811460745779716841093768912199573356595164264928862712833610705357552137163483734645472787209896709643587729316797029740583117761804789977810714099360575716489346112415926456256748325771392271968765016383784694062871560448904048032810093885690557113795682875549251406280347182358827898930687125969130751037867424431998030869407517895244195106534580294590222287738195931078791279942983416763520559593528908289026115713292179584054988496904844457800793855638177708067879895854794136907140789570819468977219234228478773048342912082788181779704029837088103436108863380316360036634469508773748418701981985154893395672305958096715688797642041079240913297582974590696975107647228377272404547366303317684073707892735962183424262530112741250894399745277711886846596436553107501710526379501223831516096900111703722692897636237514318735569956996912013997503647796535296557093141537830238134364541491920739777552350504218912916085225730217695829217042353708236040727888697382651311756148697694594330826834853032672431739311052797480622262389548991579454715728626783491273897965957517399990258522605214513295186768448301348204217215548702873026351570773866767468031104442231833141804956032528848814755527041855806966842373187367561696550898181952560094986654808776427899034092127934117894665879921488028292196122839853326533796923865285756841721015169706796329717360660493950149149481595045784337668705610301392751205711714959928235596440942912759335311714936316698576232800930894192886914373562795655832752415720438627174300499540284299381430908061920458908717032521746870190373946614277950507507326970006893241630402089869314536331551739412621142077611960691182796653128885275716212649637874635587409389405351619139728222182140810749880587400402351290576306440808841063684197463258926374330328386424149964400702932527001564715747507654744306489534328837162796451216307046059117665457521232509642602225098307882815430225475815246083660142933897803734453219178347062040271329203178851052063398976076603933100044108262281172073039534551684136036353163742803787686337792863459214102511230214135187950569045640111678160223001793608784139893933224019659120218538184747874781156018567215323525988447154949646917271011217692430916561031524688143358717855105772420505085218071115582376475036653599711250543478647231102236160049236481536801977329825096405538311476557973730680373380979601454485518288948828825202052799223981795583197166222763654176258195630840248617801641497185280483869329467995080701759388680285658839171353236023806136945187314819526598970913234905874523434818629951704662780968693394742183105899555264135943276245211982913832506344773625951644254439572142416891191718045802912359982693610808055223966903647458327081729588124643025991720136588989310046266682364356898509266075767788363987816786575024834481378822570830161247789738235069384641998128804532503857018671727480819879022622133858730677767558193273366291353308925741308008733706308052849745729224702749133366017352654024046668315946866134357388696913341243474257869061705151499500594469810032333119521970432964383906787592068364895996024981452215429332972419676766697359427853294878296005501031273315450283045108629324982513559751247787804137271872388506768901727737257228504200993686360104553172384917390265452985573648188137599856187264135106219391876171488248682943406691549827670881965222098414841368149411100879187269426714181362350968262642181569019716199976006182396522946856627513100282240208273494521366464923372698134182758939246987363948117566804563988390077192221800536065482401767598057048201246503881945052358268618148840040478386147490726066970274158842682379243350810806659679723399516796157218611710708653817540555536667184658033868019948419700561190865681981838566646635674255730208218494580806287268602045055034261182733198881464386909960910217407143928280825129407442071174244868973751417784723527078465166658175659817591717571131273133344577389079367798038265632847990342238694603571270215375783312909210494906410930671402826345133197601524948252904168688883908899247744414558974192371441451118081237167999544736875711020140482039181960687808832311229808062773764502785153104075853358763850698874688740124146135954376316687248312598528679461446714929527628247235875062373614174224610572990586125552423691770385125314665091001774128222671845793147759756169152429228639526272349844561799175437025075597905466715209281071315279243165912556794749950891794057674402140266264232675947894789468381376921761450423775232094498529403880931576280590734903176115516187070913071210847254175616920410622411175308774622221972360929884957184869612655453119236382225867498125047557023277138813199083542205563703583417954007132186266627478384220754951705719266857194594730572977374019173097904861149839452139248047714162875194612473829053303729453722300049510318450795905520869828420451627071732954852829083194991948363074062781067596248095936223690074272732172306567294244964601447710332914248554003636914635717423200262614591557474970205466486800941440870439304221809887461673159866404112529913926603863400824046246445328167591158952389425345864201613493230455570761445726178179512578189909990117514177173269616191317906457706134663025773978819176454371466265640531814224098089578664534011699686588277729846795463220437547489102702115190461354075153261985293415056976206345154381772483844705194479791008122788789823387400036136069936339213795525080925628317698635922133861416278914079633396497715388048851068621320668164299136799570240558297018610933897952567046780380195541973852235689172157663202461860776351780350131381703869693254051697982053246082087950252143860665847286716232218111026967842936211755698374370271188339258601857756329806430103011844850692635801703290784926448970629256624588707305285640657843205365853435346129090241967138016571258190468120860375018254326479839920023638133131297390022961299855157426151054956903381848140388171142529941513430812577223803005710630793504285685986603306641339258396156349269114448034016395288538394776559040181541129952505305310737782017962754152973703499633123183646468472141170742208835035584818532461862394362067278729908637043677115852920183161904211429806970280068974726469128142792158059696113977223210196931289762242376014204443321214347167621500379641208049595493615179951378316536211511387087056401082020159236139299968843810375407610077769375403937439362112459304166202382031528917686947812963044756632320210637771516757234895882091382221225914002816272362848800966907515534103308253338608402775772063909688616185021858527875433788978912830207047817829240018312974862709864689058897685707842148004875429520552327972609583238716500665873993504577301909510188158335019439651430472758414132647594243697222350857810640399586063293349349282796214233281590756210836543014125154642268801656095170575245011751401035633543081596806541311880026671155274553445701158313786550092242936873475769857334642082080110526595348667503226586511983758654430128746402546006384360061742077721495478038987331432982182768141493180973048540345064967551668556816163497755696139234788378868909087105853329599527574118590269141747487933022251296522528814774005015951751596933414359204688313865466062154953050552809519510122174493110313206367645580471030068009124358239362566710095686118588293970723787160679864882581302332689539165076504047759947866656128324866604986999223900514730184765855413232944341150614645393489533527783952580213820261287327627783321227743032295040676339159576813312211047496499916325257435246400756570977401536384135633201343835354913135785257634363766129964711268552411079966745923151885355666853928050913544773911979326377643452331163184641328578309798717837331399510534727784476880127076292401968419361541122143203413653722139047194417254404407087085781621868449169595040977115716766790908889362028655204445607543935601904088704575851662839656176677261185103991470645273152710943597502276557373054250676761473552859843111674987803862112099649670236280021500406875515322340223549166602999518868403590182736557147924300526585190254086751293826257652123777276867083889974144087192086223038279077893392727829832747511571288996543038609474766646250368043011277542587195747835837949335220202612636610945485881967661049293780214189908668304894543816742623098245443994717172779498300270051015516697596474384109867382930422735900533534138372382195640960871066631840165858250475766943925625156308887271106254343908272165945308264632662953986976708996027704990574534192510362492804056895414467445105951612809053466341382722536387616842868822076586303705755029472074152503106445997259004206867388135502640292442608305181602886762392428089782350403113755795077306461060653810537296025500554269479722885799188334057230319011405560389725435862260803534990241800945496951563204822549055985813160077196687476509302590247523739376679850226005044826794437070929088160443001352160704315382190537574890781024414853734308702903435475770150938140843838450456592660915714461857341301667896029704331564818538413050261460120332766468233561096080151288608856568686429271478689352882334804242309177878739969525193751941312836224457972474703919289985626822984947386673120147187639987335350543816876368738920638692103413114742590216042612282590952663108391754289895599287038153636809568514137260486863136382869629529329625006679002695518442733678068021999360614124888754022543938319535633550701814707081233548515780494254090244466421124887767421514427984947810987073744908808729591146021847148406495687271954098837941503322871253791501182055547135015324534244966755362426308093877947994395812322241501534687102517864066874999012288785599265983657145859391163906204348864037878864020724804743422594983083037361794629440216714247908318929684518725128019980822996616532785364028834125732026126867815351723406887975607569608396593919718268443929126381203960245978809952688320378720581883996165642046347183375152851202640070501593686924270739413844911598301941044275538674911055353325420596517367953697448858879978660056021639260726055171972422949859797641972057502235559571012957910698707744237211487261171398325785451919325219844425185725685165639094872431638640084980902656913557944220037548331786720187187482756848228942828798634042333948789326962909602456590510152661794167102007518248445792965885040134358716310325746010627734923888352255911230667811049044804807120676623418099482117897836577022930424488270846807698200611084045224181268808534292045023383699354875849549509172242367722278308562039934805410387711262628213812828335758076513673963922353820720278702789840288796245244555103561954667056013042574021896439420330230313658272781143808478448164978724495289697651801813064011963054805215462688125718764275860091130155177894703940009733058440563475040273697164506696308366704803023397872451706614771067790925004717273706669851419404308693539422019692140051654180179034793697045881604155919344935867574504592596074892074830430650177633372018356544131561043836620765159571534611048010586433543560910378133009519909695588213668755540988605594377683889875614916920444706750557569847215015376533414002634977309800602858654614209707321182284448346489905261102370447866116896173737639588902182405554652338002152453703958527466166918424898376971636990664599969384639831052310920106687010271286269654184730048517140602912677798645234053008719785290615329800430673368786294412715794603849680514614185963308881563537803570397469293515997009948013610228523212174857522382773624486812321023393232263514507762857778721209571521256549191688826141366958965001932671543474355854332916320074291141471369577688156206720860173438821721004783089977778791168459654618400030971652427268987389833453639481255058549364307467985948037782618129282999387290454245436622654656223196892348980026435532425919419796662580678909003545089936036258809160797253814714742328818531805469751365920060219461773533458505484514196972019938074698021093817513843997966117732671367131184112501687583107394970314014300319997671186819231898345122618875514027488809867047381874079462036285003256202009104930574324674093915680935261868448268304116656023290311309154124777820231322994543667573613713269937570038654503022480567672240591958767659376458926184526311201129403338386186777472956529032471231301300462117141793086662947592479954505917255199081267965455438319111400447970326940576155479306249132069523782872085612628660114758258719335171889571509854413911820229474119169016896893854724859555373963259102104670041570226704421207684982659159356162552203525959374543886014004201927393116950368313683767889405413756490148980022264927221829255112537050649558480540153189082109286569201177915384140210148465111102912768550432379735851912776552080196892789319743128999528467831999282570506600881876434809267072673427998970280863684932227613189587222731479778360757692077077382089182098474946332468060407974455015400461286169994583144587197707828175736179029926274943594573629095808220825230170075342603656393209658660963994358418256329857579582415317638862252036330683211881932379648084007571251135253663442392808019639242379954304238078950635588510987097945722074009260853063166780411863364573299559625468062242153656520333390294460868736574680219115278851235162918621759288617043571387306718840372930490759040029494710549191182284965419801682626855105294566651387458560300605532793676792544310888641101564010672459822555840289767358660610476965909420996756315587749938340860946990812106126618804613427528820492095875924320877848796637333255487287527427080492743783618498777530844450942664394253056721255161999762005903910103091213334044281129100694200915257724704413030161759017793364506566846919707560513454695030475558926700956496176696019676976431028673542627938836680725425781592496031285210349833804122767205812812392568269792608900268024866284696810505287392435132264063351132226853028151679831555417118352875437789150639239687463532587421796713211999510288134987992325600370823440822684084929791459526301401222019096498540032895773199112524773549408979536612039162655995938492169415178400264690854058461715101513615263557395287093119499986438955210123106180802227914680598548319942660750672668487954123002340045772307074239689208968033142689984531801771052842857800907763264359364121618716238163071472418539232494176737511673980513125447444995382863469583286262185398426673214766904515349871620336823075599972806711987886084725003624035572763963263576601250980888657809701143656103083653919464144078495765541070734041697722977178468905282206304487005409482280022739288005118314291398203987139587050106819213904124780263256848177842151595109513805885146171949526524823196917517508815634180140981025002311066627225666648108060306343822328085085792681875135873192015125044714718935946853026975396269837886702207394754535342563954854124608089760005358891507118422829499581501108343270499625433571617536893484672727475605556487818827227063956965424008341401562983315670241043000134926404393710248122842089234651249593575565332097931082770238094495845644498631958520425143326864378258248953465369026885956854207581064062723326642047552079744657550162203698238977703975837990388565072056588390386520608750325451996951677032200803564264752696342038510861144374802051684470774065081736769669537652998358422455447942676332751970822803472430333331229162819853867336104083023482062282809040632871765975087883467065427671705443443414710643792337558428495018899759543300691860396545780695109656118583976194921463832143397519027055442421447687180017858922082873545034874205136655526095221196512195192511314004196742036517820022080508020054225745973335875426664275888754547564615813612623246905245378393167795754155708939873762823283570946077960326678304951548070251081710632465652267039777229152570178476783377575950433267005062421136362488681553795197482309379108116685588419899037770497343050843009120016707463627144124642223882548549021988945054769987432301369360105636346036867485397034446753777015546868905449211223541843649700659681608755402820755568113824380947557370821217330742330736512865011640070893680565779655980012260017351764645735929208794527032760674941807495949653662108480262637355897750157198546623655608222265410271427283913051908618942173365230621172021652033269717849429928561961352609983202125812006478422879697113170604497162423408786676266736419622797691730528289490586368999538064276487515821292456696500261044624633783781419108462538079168979589688350535250099296804853776780572300065382225467025960561537103110480106497811693248721061607137503920719331636159773199501825870683409079605341060425550874962160276294385853508062973859551191167721016887685543062868448185133537052364525874987658473529786839688429821879220285977748273793708018464306104013349717516245339552041111726211586819355929827830650841069977965443572759214984761894950668836286735703049680545125201280438733300012962198083303143175128577623877386218199154133051416505859159788088315993279385052660724629263121852917328326692118320457252565835415370840679580313150976722132118116931950266859662899214087806737673441813253674781054735858835106509281610214268000383158302132949519823204810272629883070737610932095829227228554866128960783281393752573867198404124647470306266144838438154703761639467633108357523081159234243858212555077840316077815768537227558081236942187695114255395530169720785033084778083750179895465952650922123866866402498063881467079246463834315500310601652373349877746189697161406107078185616616586965224144331559378661165432252766980498300712150289137395401973031513736431144039448849805143039824425608618613529252740477072729038127225231087413692774376229054140174553475262797119215758475699325782957680902097704774088515271389830098561115739747033813031471962025988841385109608103431349200413892268837907466575719084027576027972848136196678290802287007407556650100147200246567421825017058186887291455255339577481763626796466877570585625380499616987113265733352790806006158092898465885963549630665632130244560234005642876721500881548620621069310892369521556609882633987319309588765047798666002136864135884492813622715736187459231114620952878441902485784060827269980427567635390291571166406164005215092508115442227322867379175425386805659372472591163568096031457520794627055914743475003285382601886289551265455454169378153401793715512829496075352778001752632740900387399435560620196126932409743591513286451900627783796225639007536828100329333753852630491436589208792703804322417561189706324228230260608312972973942278701541312202908568335562958654899846129719026984281051589509589962051873958449099561459924552957816100599673365107323822080676711749920526984058377623115393993022984374642866835475785508823359592267337191193547460004242026503979214380894004782564542634514437873717626156642579510903305139437731586594197912099842459930443656251054445616384854359876532345555387649251499924801863938257165091273027127495533617680993066435183777984488575497426935126111923998949957529115970572276463387163503889426716776612570593606059124751642951643529482308299953245511868903857402621955914199986924005960249006649530815737002487881179251918166704762490098856930665770280247039729631313592713160638359535218979231057319941546871033874425207530114423518495989257930478162308872978317271475239847795297320262694125016559354738867022773205215529850262632444430098736259604039466450196205494671153866696822151217775428355238557567728773536527399654492305836605236084422435149001605471447571605122010004712961664989495739754620532687894097525114638177301776082973324126339688936439491321170931698086931251645715175418192790615218778732442238794999196309064342543703849677474014030869091904634312583000457060438292172637074785945449378049243178340697360630615628195200199231560867595285925771703169457387093437274747749326676345608496719651598285652091609896163884839490830376229455365454949066721366351990175972663670934654597759816279548147070692806848838630213006638998266128253230752348227904779941623672042757040734987702592915220003361285650869807065003128169445660377074702790972639248188017601447384742285085032556148136563408389726659210731920298808216099672426731669883197553720146497465543745466003193952768476847533615606850592384174924414871122130184249863830947168883009871034785314065122205786127367712641203874441128245502078204312434589802937071366600510171833655155016015665912999061141281481528422121638286817282805201304747082785133034727399980747396108233512840037068741660865992370280360293170475619756151182084741903586205003042194170469813752890163649855402992615784485334136804037510831886949609256793368978637895160582839229316110471864276486073602039486789995290795540096567781629350886998779185369805943655229893989924782960561561709974737517285350038638270630391979361308502483474487791790911982261429397460493179996174976966099667126350671674205912698112858587561197296534703764618150181117888450715329713307798881438305819455294524009765513695876723124224379903007180138034928405510856227913513113120781806040890548731445292992887819740234293067101708607597774636583096527266765262064283268554479353954912767766706858754130738235568825960152054139007358263569268003182815786140202310599407105797031031302779275433065900909272392766168186569009885103592292263215539045761945001829633067114107331202946954966508801272993010489942879180313743282691818153928402098644401217813147212902867069959465587662338459180566848531731198784291107470979577258870244351015747229202450460350111604371403428263279163720776478592269575955954811987896545755584173334413032303686425488981883756159602275042332085532744025749816908146880048047284294778597719949369908365638086172877996412059588864111415731249440794167045372406013107313229368585065838854709288390166729455561497434948953182507662824396431701777306288413969396314780767641066775487984511539152000086550838018873915729527586870928293384745204454553095826916419819219369326071003821436437508449269673380231797992493743356658686450328791152559384719594273768039345921478673576026967292662471422485955809519179858651240797456709914272397448678684066772010061993294625435363775646025356179018817334151125766021877721282501776156639642444946561220792882473604245985698243009468501725339544877356307179237050898901640221299753446418705541112389430772577528179801685423295922666963108395696234496156147608890031949264704456061668142448504697030887242969946019772334089434462537704251191524133499155026528055953890479052889161812953034937128292888896892440412181357902658614563322216444357297072367081015360883311664295214168080179349201013372765500922167887136403079694181788911151485113297176761299837984060046617137494109516561105502343888311189642562352237646481316971887949507566333516674466576288377395986683792561378396178972706405690066371685610883423558879788257120448164431697272955664691228647558946424299419478914746903198413223998610751960628911105828694535778846253857706211788532861900560973165117168860052765731276364752263918411392845373693634274757032050836002223399696539875533362339131634040678364734003031647167454224009796252676512622887343742014474357672924733895841500297609529606453270321957319933686629909196519028486080764847852140917370277904998176305028715543833394752795743919534418721576522611563865846286244750376373251408352674301423651404561541615179888295063369853363621307292657604294505215223810767676667914301370853580687287825171666874381354855709873263692384452908356201951054931752627728189697709668960621593691558596532607649220890063898714405931339883648331149019739268543645220038729755584325943965521377210836942476209316330495472637391917941465952120491744718494406683469779948040333294050205180851243452144694641794988163447114073337333247204468793943573315140616620035783683419565103631833695492560529129766639510239125150360547874718399480721727887393123185176690091244746789781163325722229462502060082532969789590360820665739304398942767659122725936965015709347482160204028636768606124426300944411024152645274269450943457045705757735899544615965358004275577769499360999155778554273322666945247099440513588930934146196968787286284887323065156670132225653910486125432253338338478317207665452397699592667646002322508269884883569884747521122546049431672024902799029068340642598906291008411555130865226170996222597610788301831190532737287492444191615996825814663328844251848510962898339344073253336616730224434771661554464135600360693726773039388825166371317208814529985042945320019991795330569314682882595066047198447658436935355581476711913444419637796694247325954196691431876572247107368467118539225511368300522016486035532241978121858042034294562094526074437150141493212131967128004018979499496219305018271305633519426523845443440762062202677902944961522954489859515435626109015268128755984224634916602399679295001420213031730744694689605353712877830216138992236767689639860786811799513924843329030798947852911747917348433085987970051472739037902143548783240478403693965758312918068711558342419904357375486833991862527721521575020446735753663465623780695916368898304779445233977253226744927342171921803171814535769823229804119569116383482646581659207054837616225441102414510856553719829769447417572438140669234598977519281432624611828288198743674947652778202471706192052797507971688545939990587895070669311600752040318912566446804257541929201637927605963946134253227656707449879142058307755422609038728012260172839496130899955346734392982660598802654131289053608193136718723994787427525303650229792088570728709199773553789097925403489781477246960338292040406808000949669417546447145849020357328186679922714700600267217399455179000197237697726468431237675752362703910134001082265893528649213478218432134328207029157826553806181699944399371807752533538621988325090646063167112119479105750628200846537116563323642606883372358557760056633395364335181841492507240093696586668185244284535743427524252566160203953151830440755000731148652078170801686096508323577309949965027660223614851616257046506581832689191504208417875882851693981385092944667078147213094149386174218623522976408520183979236869034662382795123295422259106738331416838396463249292076192219305664374300526451201787151749076508388474346509223450580129459860239137641752476000630625102544064870982679642988438430304387245126747927257172379225026045224156812456261871640375121154134001726050093902356534933981709617341569886027007375116680744826586654039000838131529359734869854564398202066709881038946808824752430055494908738204261287895680890272365812883477058334868287705682743655006672779107541427473498777212822220473026095679022061680495059882095527401990586639668299841401227869278381611070338167709652782174439043692985616228185363814347650499616797898541126935448999721403994417911923294092418715296959429219617916318693836870923142848795144493699402005142243419017742725048271196959704246478094161713225438643039651558573460938430730001928116447130196301726683110004414341294026535450470989416622140777947315740827183559254832578580788946622154233453531643478992297083205155395388717828199939531190727716694405802085873973343236185355320968884873506334414180160750276713923580210699623425323686145697905693419392831692310781808779863895908539725250291622656494782194366362729995062630880605484437797724877094036318259752828458373694931683152078164718489645575283303442721242827220490225386516313285524834776640091720653560516539910226140144008163124841458061372067093504516288523897613588824612641889586471751596196987955559037759947472397642252348136499459073769010662200671823620185146230180624659893441329739188404181974735096154625127796044634085508049613562560275396166799836176588871839031580783073473270686542371464086856419787662955276186098644061574806624761836312757643456095985736525743684830882005121604476411285412137587642817275076448416983151254328511040320759100947563423123342524311755981227774794203528285107290792236083286276668299360323772162016931061747259645399863657208170538755860292474797154732479572621397621267162075350821141176278497371997236405847319403810785945266506419329915917472151851740928775756264232007217981293775879782734574301222410619471239151144936108888455607525546727735116897201037572469224643844411647690669360642806781906502010973535868123231813842306291702819952290420464506214435663465939630157183753684836360457060278977282595073274121307093716135292122876247258175276518200540706096485437948253456972597550483163511968993578783242712901476302447539893914276959729736190371050500046544493661352018106330249579039637510170802420036245578399429888220838481490155808278707435673514216320053906662554901107133273595115476735852650120589164364329258487441766804765682799540605189110688519095531331166671318662226980232128643204970431001908205697646335177699366789976634186958618385471518551020619300190787636098067781922410186697541598418244540846219620438998692990337505871322535293054404209407094095708485772251206572800881753112306606206757611187461203654601898635650603411553619996379575621577650032509007036450504373024180767961137751998994126746742843587314325942828599290645988729760730307280011560921416997732241405006351554083272155729361558598733999117136151314034253764763744562910588411717511344426161018114420640002361395957061112346517929365593270737830693344637331255202618000134838932782314635668853493652646058750787291211439449040108876631893563241029009104722976060150073976066251094900319617896852176539139039660324581002266931280680903009346747233196824667252195914037867389434729643241323592489051521341068579238669649033453346258428805086642635510318123979126787927836168858791203746575375296409010949402360622992653250852275439663241548558127343855044727918103990650728220439337111428586387592558051721926085385084524086618404969281693868659099709562463061881267847760914418305183827493859383745589251087134146558766386028058243617614485782005906814565140765339313978722540265621658941284530614701972632820486468805610295804258114850585646653299464332904581307424639287558542941260078032316527519148454659363885638395564031122457845124433975576308057796487813553056642145049297498829350568752747248966017765672800893884971387353765031384284018602155086225981715863641363025853160141416306541835831124057853179419413558072283826488802164260025090440870380186492091425539976924307207164306629627241029788732120671721632343633203625268806243567611375761515204275198756513733939352879070337223247279171911655625484649699711643848279275684850109633931162532717782490828115332080512373159542575603091734397865568044953086071074612578332082621863331724524848866029335213957302732935575114075763200718380962096274139013317484502702080651481611994828660302555671618579959919745324256188025835722442906637424528492745673430802314297386194996441110229540371340641278186424617118155462818335413179315095239103986090652223427985913828617650931372973361388867073027891925176520454437145377280098998165357232655894145325283134697569643568951484364495169904141599136476925721922786744293847247973234533421625168386554091709843681900616082800236869896011181176486555749251193145956542693344853593362529921595249254723972088056742009458598471164027695847627011021782686882682517276242631646205365457387479989172640526213099658505878622221000283425212252910104965749153382598031813982764689578837000510818292822705995690656243275543176335345589209417357973850469503691876285181768227653880104940284559288229080612497769205045163204012925969981799204709628250120190798236025324238127112987678057571385121541282118821556616956957517959342278257662082178315994151521895562780728803689101500223173283028417937790027786180253675571896147463069991377613973189624780419545171668221762801540206320556002696076156690467684386498218892458414946812640964174085481021364132847671513350387495721846411007741247412135681819665823232101622563057392497743849218072643560101089975214604547722295090116777975203877904076529448863251612274100036835908440345424077793265938841382462903598819970639258122825404155246709782038205568178832776135696891358064540585540276633592498627940857243670952327479026491318954805183526677338195194206889271979013460316872029577684326733234948762828025528063151477041352499540779196563561204706066445845419275762745767372965034475748225133263173867927049283980320358468560504318361353484372851530600607775635284287631091203726903804121429495263756329072990426868747316454669089461326220180713567691636644296133412511669734609718646264218899267113510883044438536762489622068776534352289219597462304599473663890611071690228794033506407071201414699395461268299928937547881062708127567573943663374481761721665927029477391473834143623236689926544900901362176410706164404077390295932334646581164812940792264959559967739691920119703172187997565568324732082837277318757792024605547179999747723729442564841033104046977552757867555609129756217299043931176946381436475869382262428944260030545117985232003479208855876430290482121140551598956222611354006589539683868735512218823909883008776520556250975907628070406101604941218472928098143189860924244199778982366787357772305084141503211171104818493104120458780352553549313122780588621040892933809155169680675975186284906710046545477799854377907630927096607347516932381171054484656710231241308603023542146488430823241603583472808320853879148924568317743157328091980320199006075481610804982254600511852806461976887607603456934195896196240436063733512929955926870973495635262590692525712328676250452067819561128322955763543713211153460083251908037462430139019373992282866456131983351544667136987511866141399133178691293232479550855067759716774985870585631665726253460179480784819025378992501704703720313031287783251238064319333637952799573258635994843207699555866851968844287680820454501904191863631026122942760198563392135070897674852490097906631747220258750740959930778900703526625248183597703560442183183349051097358143406169422550820756200112449307978065916529770244939891545446925829356151809030937570191121931927308043962039026344035047444416706934270573836209037172238543238337008010161077178419184824034373099409504596101273401728671076954132710710226376178698132105570013736656245437781993582562237896971335813113270470125898538919419213211245236135632639119080314312258690770120912731084197968185282412488765975832948842195288737898799238136789107803367002741963377951360136223159939044578821328675805110061911426420118678507429114702405632926850144059695155739902516330847962538397969219439996577573570573916773594615881334030055640830158246395039581593213161286100580044356510073871919815903479077916131265823850872986651863941833043522197584587697952472179309487505590001524515841245625682884090757461032001570389308779132394290986367583418219360207041311953727206047882128155544496593128142077032634970890390174806737478140355500035025735614869841717666380702446284691076343191235073345461561137393025724796034757526787650088951664543600602954244388870530862352136099003214485559875714182531195188785312867459372772287621862913824185023867518868424933292478200817934677290064492458071195011577096921209285205987314734912108792848214446074832351201250000212816644553805318043033017332906961837981273852305999060721814748606402742002930200865649484176539092660646892863001970046874045350978429439479041357379472136989218475945834125297087722688002297555002227935191098625139030577219088649810094720021853714569749483340869569378908224387656240622431934046078823751447531297199049585549293575039935130202969858840176050661051753266040060173632635981929184330528065894598654321826688039135236167205107845871522741409264740804630936682830146084265015949213538544580613537087502993042156385004390611404807611416849955038050178665513561114066294635734888066012098722709157115691771554533194926381057181612184211165053219289058344819205326304211167364179146374708748579985576513980219617968177424332451330061500062109013130393244359601868977566714249156148135114437181664166880600741480456983681308285384435061019384984954932769107362363910805162986837052435227110047246077324231310665464006847524327514875571760332243722666608866854325583600758579003798926112426792165321541969782219645745709501061318873198095992569214303060826974856528995169918481409161619235867853374466012769779528302073231792297043105414219399809266321622678842311648108634057277470451576974865146439843799087103709664506307437172180676436052892438783550506270388641307275490270139824876165118722554241885205742687809947598334521111293422607284520789921115880299155720279552163140356665565628295753533175419265921994493897484500840123890046307305621857900913815738043993861332350230044780199492596326462634714360428991140204785029697345230878428294032363540282829036323071309619384972138262103372544486954568695580338706876750261097416272683173448117074853258790635108570660657657084218763383652499657955421212447545308620710087298273249528295188934818888050505428393463752460562969489159092563005766899633580201031286948672973732586355619307218162738778073222856373106158195965292997069742446411311310019829902498796168554505978387091849728941682243361015801418624029297107715026891236883591827941589526402225135198329897365977765585147975862337969975481573370295907846989865766751090761071964141748288234083008646108336789891065909479912735491239695401532278185177651664084156631356874186275554535354491960019698124783013961244226100014246498416205674682457318915111004917177366330911460312487190385692779910434225188037068711496423316409417049838655983518659738688967611341647775062899091440104487111108752132147024331245426562018022382597379148596626627108186163634037191421639720542398603640208776956118330289410298831063251629334191994461466040458660322288836119040093623231820390728637848416046830015230190159882195947242670654491335707895610178644839824880131101453879158713006099693417510127551586720125239296930826848359655454122365537550665267787414302649828358773292229315247333391333367356057626586493873463850545309938110864930646513968006472933996403334334242956372329833379899112385261314782438231427913076194527669610888797193348355415327310301493227754664140331948897861849342624690363645339869511584205391070060499510963248214242475193125370522048946391719592582183319297865699179765502032334333192342063659972988938262049790573170040684227796999908859629142117838529176267276914271643292749577083823019268708685209475071231228790380968671869968155823736636119180589092218007440384444044026882075962150244055217684468532599142459051713945765150070363750159722530210518375434435145811244153473584788496213022327835108826648993753357639869096766801418621494320080217172510003860620344017245854164438368532916712461624542633585837178451083969052330052927554692378235141150755831318981716665287346902465405346055745529096096645134641345467001712557461021541997676720526785192468751541558740663666353112596539604544727218135604842206230076963262824649328928599513270425917827815315589839729825922354739338434249402335717603454515589031557164091790990645471704838531719885624830675335326015112393299090047462625807703138210295134503433766256711448676677682273739062637070677916120489730953038096136642102022567526317258834026897036425758194092612995276223576405400926887759342629022032667290235354431148266648284934817678910415207825807473627233812629540920635669308448044098612300511423558465615219770640091604306451465220546320634987931908182105751946280057983115900956539777199051698941603185109715276361098142451908089186452741880866009987438204381072633724261013345235643833204886441044319019035872768605180250605110563056945456084813556391601552292127337871201485791663932640622605852797156680898572424589225323072957117057601555331159574956520107653467697019110983647535067356894467669833043409690093887627529048988749430591586335315503218789224108555830323192148630290500855758380924403384216513024616495579008158949795611897852216007728263116412677277126996494886219737948163275366921226092240341605475272884110828185700936342136205152039893659431104517041683206662014584557082370481361796499090440634527637021593943519271068089140353206748329888918329909161237531140477315469785752863395881014899428124248076348558894451317567616591170286729336167125628476649246888213494935274687124245613236677997317741522309445628612734545999018597606058481784835484075967904145101540409349609226478271824865664926831342767143310068677980229581938921420601788320255501880695060662565171906714164490875928025452706514333307368476220241079804361077228368861081718674570152178902112373056561411855832504704202584743619785319903537506032401966926150952922518878029892432024513657782878895233835242022205148206063636685169474984588409648791747003227084062320087278484591855484078691905926411998605698485007642751535840479811781620819373348001689280575160493437756802088552362640646789748469670736096777395498618489042663405506071496030641669439769409407860145513788761371973204193365939923310529844062526323416110905296595309179792554968072284066245395788711803803940308266517343326415903561439617951202516971022265330215549646683791502719224510414877517213507156643100641244893804956566406349616759179586114446913525345828023328344434116107309689862265576821681321181476006201029684623856264443285948234454167179610991199157199210136400653335242660976139444019742103292069158232461477385166670535858648772473058664144283231259482334687514650961431463688788016022252330715628564647378855438186522414922603174451817086871264759497426240001411340887299491021168588568298491425625071183290830592063312819325143258677074078441360508862383805467495189526082658253247911213795950367871691183524988562200353772472201918028123080273007519609017298325002793803271556995655476760093020898278178951808057335568596201871587506708700591141188975696651947752276830062189780508613996911928496722274276382069462555426826958738874614353423001997516502802316814384137552967254096189524874632733363625999304639338451184765617314047521919808920456295612092306921498266169330354386423746514048883302355900127281394362350616330032534643148362866279844304239811928118604521787452281021770020791578287376209855023144361923947645064005439663237516746285656349618312186629793921132755753277189367366529160775900013540634277962650925402847760804037000776212750883780158065965049189031042234285649365927665006474982250686153264387708504057720712576755847654790848546282382538156288889828749618980663057744337754484097871562036133833071488586063923390352866824137121956711164124864431237950107985632091888474140395578118377857148046551039298948669652168108203735619462672314662295879712803420385899006754873939926268684627069959480161803508924382857497155425579435980859278840268343112183338170028589883813690369667874553909121852467457419710881117192957122456350124841499166949986072216710352435456044764889761432740233939925876820561973083624678499815733174415785057472007315191104236780409701953249248429581267310870677133450256143336256881795509097138321429573096301024663880852953128431978360549898988522963840559816362456981961483434114922181645010819094117159491036412081401406172948699291605327063179813692603765659803674409243093019623712678691645786063977919362827243913838679001070798824693610908422833098554324580355387454679676113074024703075643061523248572350977729382276427267007877296402627525951540767330354691377388192852384289567146102423853976986913206034407568626872155094201131388301452643294659254028521219170014884957146529543273138870018952950229120213181318657734971805211127989729316103063020387100952920081091115301608863715359854129901683981155661729261730893648869998003706661129888824514933858477147349783800353215207834031462047492196358914142895586019543137513366576498505185431162825292178161283491819265299973747688023311661863767572067529720552204480830422121033393998468293296325353105642261895406738700962801544434861121562270670397575570095242144220423772836499576210796818689750435960931456744503510876137579290883157081783582256133876398610721083059651367102841387013763183382310353700343904591570889543306854484305627355550953688550636163266213863059001250434908863273692145240927724195151510794942391698719628644606504988641132839453810437086945544740460029037311310334236589723576417443271209245779460083722673514527127865323537677282798329851032888310301396305631659894550135792801939957110633085830165696963126396709575406656473926716174383598572467437242739009781445300257882277111415691472303747393161438065264737323211562087565830284075302960134802001868725508595171519755478513700901351967702784417136561174985984915113401315469428228692374620422297541434377757076299712489455473953751944661459015213958219344250980734806188247796155166162201072517163567986863320426455621792649076282279512410492445984849065079862005959453493204668940324466387948115158794563494253036160642504260387025022206578658711263457045663494533767034662270019096205163449066446214753565852537261177357277983626589582247700701579333036878547688298808943861776379443023740792543097071349027609426461102669368214283047059313279369913439293720665184045652127909338553160513909932685171906998069276613599940917495906045780341126204612289029527772995686130975843160370690665288105324257718029882907961488033945783050428656654629738182665543377177811424032105438883429390763036652860742436627949278111764629460586466922658131906038868573873303875553187748194408542052796749184873283427696263909365086058285364136425158638883945516638261709741606387493210021624856508091288834391875108473863552547590015922755270579464964623454465952566251027866349652531900048120898219791233404606790367386768570811012287394872483058245406288813368280308020186683928315144453239787363709268597825248042180088198984716577635662779932411353960137464408444985803749008879424680544341991928584585978158147717543411163496608259306344343758669471581416676267547767692048133018465268491202637744577776113046591458698380820404280150178560628666048247791254200193157740121540894471901850381622202570416183409451574401589421230959326273574904478869095015652728951471358283949945530519533946599022635568358302532906874898703367841156537669759348307724015441754619935893263747262646539039633945515622969058028253252543253604162936506099669661388395796679566544542721831800151917073237924675784741671367608580435424141418020681436757657216708869012851942960871739948438436574333555237963518761116543352509376218749576721156564256794129970844456428145890517600558806093666352437639668325376668276607552793308233859235844373945198235747072414506447607379051905254546173124144111511684706717482139001169073503761894539118030852704664503840377412901060939780068820852767964412179608246424410987210798572707982166532550925513639767593692034475665443186077826595902466952714650823565688210972005562486477261871239682125741967023403611755943594304114686332820901950920719081078849398079563713396057449423141746414570663845361359648273458792919309985771580543551564500002590481504858108059888418928382722844924998836528772984913239051561910796851152247510982589394557209411426459793134899892883706234917225419957512450233613248554908061039248978890760010011662374069449535056731745930814701351423445687599542258946792766106706104385122398111535959862917075316486259496866458773300975279498571544245955693972100653204538848297700177818345292148052243176530833693450737748430986291066759707546138543833051863722709941897040941682842440046761211984157706639610946455842479379292249293477863844879309300696562334206818449103798277793757924618113006470219515026946808079787499726138239406011935026069349741056352895654835473195871201526351827066800612618958955691737985070329566357230747935894712235591106534569909458976076608746289853853436173756177147433017469071095776545266486954719875018160252754841517238972307995080416458599462577774378090187475827919018099352835457263475569058734072953477113418975115065296843848668548644264569631906216077621991152950751264052244565822749642253722807355254449887698870076616450500110269733339342744604980673855146115682041115446193393664706879716292086510482749896032196373789314213878074655590932481804663333077270495317748843714566993572059770815680638950839653063496319367623491560966626203631053666025169463616554339133843456912628125535860519015016972741931694475330555957510973019211027491456304768078270652987752543112503548500259785126964085898054730705280157870010784135328030958334657260727781492748522285905122214408643913910622872189554576581382764176710850045825225360475476527482164818253393848868226678492548134438576893843482221260201437432669253850927062474846156472673355965491254203726316924350283898760329148063470265259373840612768074157615999352899706820767210026145458511723931480527300478533864814630303090042429503001160680324351338759977186974023142388486956205270913650817481692929082076831264979549404506317489712533075355528163874159387917837143550796395197931493365005317181352777455588604776603702667175931534078143725138525787062741882379387169482237427291289756342797813565547165997790109875899027624824522691055892796157372142947380190380455669371759882090790320892411455516486840691419420920313987635993583905728195329675083566161125815890855006537057003715701895531754753118304866444605784653867946739065636299179843409097255786124729628030126351775121954889997044982229223569906142965973218122628449470307374018953596562419648278046669917693016988324914188045802804399981379411312100227674763013187474961701949629167564807550922207186845561383455268406108379655860490097565703529104660068969858271124746167272042958647468633144505745155497052620638580029010463902167306767712100265882552954652463993144228052318241269592505749281576405430258698593953447788418482299463672958227678442429752413245870867351790801581033493118226376770651536155978375193656426398388703238859368249308240905029606523863494353100984305915853593559667539578084601889991356506261293452870914601257354277882639784860193215646382006991138314438080932402189549454741971017247769688107158645412413021183600479844205232686136002009040985275262698125755791921320733082239522346577237709903092860393463390921821209582512518500752059554627971433144240961730820864120843531452157823197594957953739648110809113538992250712015261502698404995652684090132812457833409424511172452828713421921399533082348448654634716834539204955061077471088884146817134018265158440438549201516606849786337331540287179222337032060217467587202861433284508927863267826513606035465240455544498628809613796688499675012825642206570366119461520800143106227833546898539398755980427694190848124967196292804309103583626038321165855966576871393043487334667247979621307889619132575383444552866712044716882192998686780173715101514417403291046652760478741083713897873370471469301109610885947409316541447477951788751226741326506740175819050212230439531919358053484851968892528951892813472354838484729783938709094774752233004174853300779113740423584367041388533759870348419650697216514092695904938820359501674760886981416647399599769099165319267053905503140930601497209949329305874510940121918415358465478944301352118884841968553296213817654380090946105008215348837803360579546700299951989006086694800789146735139168963585776867399839387877111473212454518325067515136457552692650414229890968203473059230262902175400874000608406106634073675677680623465779791592988988590484152480506240057277792367150661890718167273737654060922320912681008233707127451129984522889355642854656107138036061577784202914536858599299288538370918628705292254801811113405553956537169787534468760815001876347641116237382968597883213880353834929975605324052066831945986699184270792233092107803807763499670634659799004610835726046964555089673172697117033261431200101801414002391877045954278031173148827267497851568355223641475115143292538545769694142382450322052086103580951511822892128226602496037173576811611363724687449997261025819331016168681723003392181728030115630714112545387486671821478432022994140933935616489363650180804211151462079366725191971367258244664444363765978108397509346671688630794086012492547892703706640618742034906865767350460576680162028974623067861587423967418636898769086454322501090548974434209855917906911237243001946082781232825325508507964475884470672374399212160380351006873579360915452999385163900680838894365876003218500266827024519721143478281205332381109767410519150686580718465307219890008364998458891246576344239617003498054991299584548302210026187031943388668851365994076711218277980019399931455707758455693868926575913012420190513119992256974748646194125260278910855223667083458697394131510412211691064650504323872056921779599845395049931794042427309984215650408993347221625077251459618974844973447020783362853609870910225078252044719514469730749706517672413861404233309104257141101080804169058428644114226615128850896383106250767685981566629346928752539500875467119417632164354377999524726553296265582672826040819844351595470318520393488984335600646437056657035832934942758360729702683777316726025163131965969825246837600754816410898787357410331559473725377138163929535405211482569128503039579216124070989453075554948116720400984022133700848766814403057002224988113833472210113294801377963789958291431936611671350034007247450657554476650738074727404253620414993178546240306089783671980881788097989537529551624717950658440726518436145186830179238686615546093515447101199844149271492876503779174754265393200503315489837478938820940698810318030536553059464643050637140476759183989773761811572771061412628961867585597382218853890141634471919246065173075197838024456605611998525426101220449028097359096883529181969013127409005492794814161546723131128298594455374099076029054887955946363554528995029510465724841445197346170197275162878603934825963273661901175349808922017981980742642797539493043631923047728903983548355886404154006336756962870072299486407605806742897748030709730523448266377030411010097894638493158119415231425993790138857362579368779616266968316351265927715621198683406165647209442895481366705214848974762969723499868845912293777347013484772705075976261910387768383568688166578583972246831851118084728557711693691790460619980474169444148993847551405187514890871545340734868081566056311562801559193204233142557502876854542511512919503164640345888539389895303567911550046768807873878968161409858884757732427198804881950346067006904313899107995965254469285837891310113250756262330371984581495585755305019093620728563335025959477055914548594354927106798747240801024557291736441920380308434928744878117886473334690532667599344182681586746424477017770917360857245054207830781065350316764257705640037827259081498548957138667636335174600021399894965508370607751269579915035508829599149532341065134699611228821785004403274705706695657302209470662125123767909016475863845090102945559850413455106175917791320626751644812801006792946462502784431743046443994198917145940882845901951801716550400590754863024162474234909653024384718443582770861043334430967052746941205958107289043473635826820260482516046843243960606796298609164041616270622641455206899477417908827639840221362606528403958024722944866717684528505904100067082224422579035937930944139365349099400390720193045487907295658337292966139476015215302422418308883561345004373522359211319085611955357443913388007472062083913512464127864752340271760235812805986796554769916966543219859662529279711177036583921144942911512017575170207310706712626067872719412664016822084425492264371811245726016746050659755759857158271825491759929812589722151388414943753154915825353824582521986975887395342626529267575180000050481902858747407666906016210970227832050368419245798053956466856617518446751049323452680964870315250821910340617628007436742251891661383191547540936563991139726440241627106615757843694668354586093499695821758751094797321437256706396802828420785172341344871925601674560540410898146015251900381614828172908839676438492697508394472009232545815425008529794063684684245220293772845045543693525753272092159883354440384669337993597873715537603952542500220776537542030941698314202335247477860649087760066876053838361663349417499345647518435705801144841715197631681644851153947813213101196849725005337750289194853864084381745677623074143325607913481725510535836949605655528904955827445172180784661097800858278029052286525495113295878767937951981333813937323046927693276340565089826348909642269987125045987777254228530117712476758390236992443404670614217486527963394511553746748265549099276065390709338223011236272811578661195259358813245638324691094914433070612952535135583695107631322785278872943198376702174951837937514267809558648482082856323297296564049835699095308630521932092073701241239482567205085335304914953552857787490325037187200814077363520965277695176626905888964651346044497410970885682908078801206827403112287574389995578229340647233023297099583984259630146540105161243777272416924262326245050517367511709892723110742990837507362583056299767640348315922516031862040256160800391036101610954811588375943976636397153386077003820049230564907487718596905498902934295711712768164613014452372754580527222398723357014888296420825229311383717487035449690257790363471634773506451628087725882558251678049216984314317744756982002339050368405426504711760530589441975159183649607651507977836286016659708886898102822895871387865385606229588454553859665136475566404242507009669177408788852094170284095986471589264538641990989914052588667795517196702970224447522560558825538856413082396749196091772615942576954461886852700375809393533538512973678126692771367934651605862140083556496107134326841716596709139664980315203858661507297627807539475999665208626900727381396688838657440582331462582664072660519027796410930278171955959606776141954149549114309992134089259813938861023287782020175192295463375256470738479834011445007949473064635501935033841930221228634206150406896789654202047132781436921660869475336264560812548244941345761841504691785869813259219907422305133600901461645458281953765862704551730460553707464236797713025305148610834304121719982962378270634031430180320139873282832329577267951586821765429230265255926982613607250373885377605725122298432116111884288384504487074191490062031800600779208836181559699224920743230574753659907203156519281867828170887671259134924507252326254992396880589273192325132697707910105087264125958827519196075737326256642219589296613829344058860197580533738518845964986794844401473280600065103833018387003584534574196973663360604068143993060522518529133753278287834263022947630677193563175438385951358322572669844034869555962504034536423179405719973849115321697397584950439282504215405574483955169307656245895440830318015512053786789857617912074498757222030074079442461737953186911771106142427492069461924441181135904541908163237270512858915857670355386818595912027123131326191622741384328408786630431113382179109311745577025239797534019713967772647631887443585434119693022598889503207344742477918074981487133604059668045189650724408303771347517825231825091951766226382444969496889710033876045199093827725324467237067206341687270659211915242666697009057423081474721968330419533401812560537624922211758635202609872719325516955564824219870371581590586774596175136851315636444137957831000333991546995316109598690446292330836889217580344231599538580849519765548276194759637323857403100886613266486918600410174550691264100940694833770456735800365771533961077644127157176752213113762892459275668951031556821781240218175843530151322859787925216782887454910901351650441471889720262720355153208317502652345429391127970407443208004862494177139467738669245771613963997042971822528091394553296845584063262572997034911784090679028559450370312068801105318799295329368952126934980765272055272936998009624757509478938351034335704589772396670402274473985420482276589093916747345990358226806512105996707665919498902577396098940060921594929025476941859221455838094858389350772040028334731282147005525080322442544916169278118970063286929240420415663104285572550714546319905720503498028572155529986662204939388206141276696226428498011361526687060324276426967627416218818712594541042328538668846308115100920413102760243356072876955090886330949753223008429871726503465891855660843059719900107763813822777810295750478589680438063920684411246356794011355842707709929948709625666800570951854536736925546238123528519755195711842057919165473353740406840951950439010808355605673546597783588813591121166416253880673789071548925829193426887899430340338283450211437354218007960783822666199606954213394191992167734065024188222111460691339398283079760406434524645669432423005234852008403668694217641424420009269824202168263253219258505397448196583348758569186473288785658938812399654465772041903932823508438449298471622247770244358627871285318460852070663556001950158713062304220787250774893322827550402131199605132549239537137162749132528881256187122208430332514703842547267148767813578753654810479234432943726662000419717342505957366952747601601211381791076624684017736248631179298717656293882022325074008848571661607520448844602663586269763309832631933516969741822146254301725179942364480318896272922296674854080750413033969830574070698840918290634818830636285119354011667737025462509289232890981379297563378499173244474253520638935142598232363988964475920090808715097577861818265066269217285547190238890446653640157062901891446607563804750932431500894246282858529528413291157280733913832527752597548238264344714529962106833804568888563843716791270908238119101185689262218812394010814409989201962839962750208007870359569168423613117640468119937263759016127574446194649565769032322127041579377543211437436530267939477931088050650298316825679127604580347707336033276679723357405640007257987722390693384258433544624902448563083217194458447549271554127027399506603935759644000610307871267965014716801862652987081642639903586381137322309361413252821585070750571745468850736154220197241509499931647983406634903001492410945587803701028713480879340046692846305794296608126456909396262929201907575167184105457197101236183075988057365727368924672995971895365109043074080886798611918596202659712789495419167870078344198418810008645403493997562032700607980332611620128504935959397050967561522555877625465394646974578550336885006995503006852159696911271401287378386092862507360553074921558997217656806962676640879509152742878913397931665361564768528740387079310915988732517004325388428963017180227502705815842170320019150807119673636374202332172398252754546231951481319946153342353163126498309075307671343142392934043619767702990633004230165189163167297768079957226688746085048376371669126362395156490877654559302718216675415228976850535530711706846497476911301900491113335078032018753537740211880474771392349199952878366988405614639792869679615514625663964316126608768666333508919555572291695625247897071913849624034907346700188355550412033499024630459474932852663897578959509670214193228939120841549558920123212810421120743125795407302451582156275150884573267065289872068309516387382632668435729277132411034556073197910975852019964415493001450770104993806636991682786897420426074254568451228083022130414807356596623282720592578419900831974627723036124740487276444511224850370499449656336095432172636945710736428591795800655423362890116163604132084274652098932774396531292141173231474391531900891911196065009957687220616991639673068689571946260242598858900292295780020232915711945083014292637864365896048601843815900429467933861021699397839208185173882451335969408124804332109494256890105319422526225179048898626603822875912977616264304428620424984599758643632765069762356551654801360905751324747928497507255863671861847132884176707130698253048042704423416089469840100772669751319269420492385491255037894582785810430797817684172741837228107008108210803685579062414654959038913073133467329937964644008710821804148387329180786932032154894566141828353115826236522083925708534519253089885081749475708010825725221779645697905762955698881368889357571393206482051420827697767246810757352973589344004191919652122036759218398775039685351236653153207127498729149585967796729744689571553123131249085618654764252381487281406658173069495187592761876437830615699943829047637318281907973708866683922357338041336658347934365390555809663902556075287460789572488293132345233151297470256266867650258159618765135885427651597967435788059104718450602164446919429203576479196082783407657451217053909198283208236387372084222436365136495742940448618560077920253486173589465260652055699748876873207364227092549124302365167584489382492187787014567495865722350068244903109618920750088280938366582775035413454893210760378017322460536302814531760373647738749416272721058861495085026433168494400913126427046491696425070737366995462576656179603903494141538836375762643524657742269919964277131402978997040996068649404049663225172253544523856522657215636403904709226376594689037847537608173159844842102501533715259637165957129606420134169380690397967307808759748195620279558905567444584349606624948841166954352909910063417472411817532870295453837957006689892114294219841178827968598031667916990384138113355950632849614541501738644668387449960321647848273343639206805610453433830671107445450926908682363008929582714945041320546550826178640428368137965754945400778535640351609172994603307367640740813132934100915419814851451528752276876262638602620133594728827706311580779225359094153939813049918187369433971357829082591704507605089623523998884126804623036641092695887960521095123007074696583301159692157790133355655468121040008451205981517041164910053401230776964155593524725795457616766246352072036201590815608603828930344978303081324265275216837896623835652772559846640382703773523970258449685332502132017447781543710420297724974481795022822384935476242562088994114364126758196231461996020174241124432814578238628931135162788705467008753413807642553732887049736149209440064812422539235349320062083621486562474873079696151134269112523122646281335350415767273085242293497992190849129448315138310054439124743470189240588548845883680495749781705234590938335803051466965507401604972864034160790254974831781691929329206920184343974635112405518984502332546008864812788827935276838730267502233981564688167878137459737985773150872085989412144498411354689228714028184703984383460700368928885045298600840453737986513725102750186012057448873067963591471421840010015620751833225154102382707270969174932107750877310626046213016182657368371779841242899517170631953215181273266268007647085530464647292937466665427499476288920598934459506519894934315540255558686964271477239147878998188943124461227156970659564615429078250547921939615611507536535790072613365669719089097294682113415214200157849246433112435563066536959848817770540113023667971800418569623566147406374154689849673030140740188960765767077436140599408515881625083002589857605976685278524795864180081751066198625741676232026358547505945469476458206268684027347568870787492621329288640675430013006710069165657189151218460014778361515558634719939926586151127549523061897644172736955493852869408879415012433315074678361277319130067478037413606317118817645786913944974747148227119243406712856464663496915537369178205863392867197719794771286449904051673179408500146387634120910867838997856965771135494882774783723828316293789658074572324966695962064531449030759870263253166437999606519453561178712410319907264855498781841548494885316850885569976216885763566945989817281871463390603650658031379111981742011730541408645748257381375830141143973726039767011773505038306995569585715868214246879879411588248328386035142005093404495020072825759664408618357584818155403932792576545129725130625237028854383311270049188741861702185515365516679897334225070216663701471389795689983592119155759368068171541985225671727260335882002660010841210309107174118775787156535321692525189233738209313039860512065046507221521973757433243224322867635492399818238853811458266884088004839267255025775217737343951935855660455834392872990707352051039746980673029631694988545274192915073399676017518713155354942305527223581636315623279070602571451443588111301541266815802566442739692080137227796429190903187178773438464055107612823382283125211965421261835957149724953014967212165661743588644737001676557519913965329881978249832779843474259935091261319651240884421098887602762603350618562478958611427003111598576783107710058995033195790204464666166452827014448628015567110405488694755422688875356448899837739549493488326877849387515476820156213806636250477855939404272841132579842336741555271902816571054709089722227668168265968852084286682061268329956524895772083198652274494756220341649776766961087952924485848560126813274428839541125548834216389931273272223639614427534584591803136258539315035259421303160802464950619189943652786924028453316256270877964269924561263934611038730978599409822633538474443744467566466851597808144543954159969205559592324180239187505297995761578685929012746441394622292105952492087167940027400119711991550794330176972794271578413039415866500432235005534433676749438349092485235547714337700083261877926436845967128609318523525613595470911459652124532598512047828139763837340626829574285426111747504769787826493287676518493637022836528551321724820445924865866190379130136239085647724706191546719887503722734751155514323027095783083826056636295680818668667751606528909163332180302858361766259241835938569615276874196844902448099868982967251664409124207820869169140172832021671266334635903348216947435790537831441221229909859412072156974006402799999134998466016480991221636901807069273048073588780528811959747060738344189021731356292364178715978008923992277886830192684207616066570079784034366872408626975369866661234765824777922351480754089579079093876991045033371033174166553382606936369667856337932811678397255708056840776407541332648015297020058365145731595082483313511950475464255502058239493372846245722499659027795345039173173608357397053946728052845046936011104294199307497695796342121865432064557507735669486683033806804923295509540492686143546430238462307699340761491830656000394235749453737541894236891509257216780119224577311889798477803395911716102510905075566312425203829377931036230253461663407341568992019840492043854919109002458710677870573878814442396170991027737801615863726020958676709760458855612792924554373671621381586263313442194935105201339010059410741734292659266721483155910153692762831351073741230240728711936489719600949023997040526688044594729708739269724909791431321943009289383424295264071381967971545485319565757841822828443354377174983655417600350327830560700215369354073242933111856771622983286572252207523160388663364345968369901804718245417305234443704417822945270841894877684477105780892075366727880490144766798372124082835948810247976512329320998773884687938352964161026833870570660313167293241664469398589155758320588578832171829206047911601615734844390895777462788768251303015517227143887623819326541414856427090191557754607347740797714012293963445328408110098636034789463251613588318678682129083805079299732180683732447135545076374537202332762314362486611161038211127248129002366616273692585582305235438515173601695852041026781393954114963771667529262751319864262663179059777121508382327387133087126273343229593376888322506479116376227659919025761832519987921439372308069234760703128544232172742381732649613409700034352220895508974782903182759750023392259327621369283243676517155261621981167511207054263047164801145923579888253873570854062604418615845840756464585526359212282314550496215252382640999005260993361797352896713895993422560163061991801610028426280359043474935878799369280505542962785845468861999301984049562966934082618526610849211419270629152042381412626001277658874641101358025291934860078285355734251780917251864759522024445623810205668103198882206115725454925743329114638372202869690754594471668471007038085974616854671856375803788500556937987463126851090611617737801285923385858929624739837273880941233409390944427971898567912414027124646618718341112494996184824960113322996855630437987597166688062065896699981815504388845351460979837306663451917374343553500247783263970590746031026732030906772053830675942469582638187720853606177380851784865847574962537835624079952305485105478255114337874602466233421248074274713841462052658133198676582580457426393401268604564889080910919196549535613344361242435027370660766067648777840278338146136717920597648884154012063658876026148845295593752675630637942988460165502208859618843285521108377859258520267138098345403569872569980092563756342925787602105477923980598683192124140841734260184446372343088068897866958931539875074300442306444409147288726498975344217629601717110754584433379646430765778521630635933717325454184948757709472073379528435503364840249252818120282117490771059383257514514991002304286383196706827542211707403055296390031610769224026071805497348397432107868773073914572308952678212784118454952433022594417664379625073959602413666827407289796379645319065301395583125275063004588285136030415414173237561140982247098344208382189383342183697579088991492631261711794572104184148566393081709178064844946093967388255660936565580393881387851232239467359426795065976927216477957861368765085808655599833555926973125761304245118243819609465511380398190892421948403285464638076181949345938116352564341474092825555560468676244875142496982865862971129012336733656499420763981307533976069383010898504345441589856689701022842061077753020461672090646945625106278044351512136895179048029246692512286735003139052936639805727979773446071699913010539723343888233121194524059816307639590628641679752125015229570484392022900831578860903087976965999193278762497467646500390291572968699770425901635967934930683453228816461849263651289000885521550277641160901040563605538952402463046620016534885983166529102529535046166406533407635692858648732774824868400588868391069920740952077488862947630283443876943340612553022529998928089000678924938323464853847299357027549874346789765884112834639028197650608287959771204014903120031855413337529908482392085895778663991599150889815771317189830499123087789940598274117090653910018944717642449853467037301323235686522351338097131907171472478548420163158484820023758306425823880153412628100537190051141958163077435755520686767041371288207123594340418625566903059402425743198836623627313781642834332391761758907610008245611682965100716214620953714458802590748394944655335132021969652790304766655911320927264206372755969915107324756719510655671945719242852932393858359455271990850992068968778013628039652545137764425280357092664891667585295027096059168879594588931271280276113688393190458183635606959109427833829514341781709969193182671044260157474798628563496477244718917677148624874730794428685243925895719933962415971236005083603103212639334763996645674092331937285766189778569245219893788711369686385504736058047269273847342459217281361266851839853213036817120310074259140421124654420467962302405526868442302902007356426527094377793705566394295027450862205021388165702782938171782330969206486034733917137508546123061869272753678579018921260631514561188732052226065029909327142831879223855034070585636900088302797881354347872393497185666445868888217879900119976797805646257972291359460774068778623640476358430871953852902905823330504088554208446268460403189458258554691916245211740575092212281830435457154987104077795975329767717855383733374749226964909983843692323077932307048674280467614752991841615315684024570360581619753476739751639686062374737025014581642027926016692486803119182672465280412223848513290862198259863748846702291203393024058184305829944274123929425385405871203410396220599618035743590748780289959111636042050421398096408457631155271318077119415504103432168990352838364765590547812511008369985553372132200259283581564728747424561662851791641434315291239148042133727286424263917495552681997677224543279170492521172508072851740911702814907074441420922044070512358733618919768685456199504803267853133044490189041783203928950557504461979900536166797178759787599386180922251960472689182303595679821968271679849610083872681989225312967307318528100281442018660031412592344728755484327100513104339549502900931669422889322563100533694056209946399197558072107294621289025836331864054582219491505296009105900201560745510298894367045952640038758740077352414032988455597769082768304324779709612255588265699139474424592999179852184500443940878881705300787872454194052160881268042963960588982991638353066845537603600710080878026217491443140997801539972322155354204407726737906375141335680920615871589806990058218036214751816445471240375526737433333821407301386128976418565459183826160985048783677432712075429964818621909217527979926632177011562321398200415494078538929636679482440180627686031478262996856095888648874171006412611501040665900787637602494017693109832321727202248020402734429368270654132331150286870510583769252618559665757271177052267257657420223921661130578392554717638019558436761943980966884594638984527645821500144515323680676248071981284742009040335856297082604654478403494417947025290043812330774372982917112277892847655053544777710455641069393662551004826608750208499433787156590567830528975755555129070562778815565187243457444463613868259346345049223698063523949319484895011506030390248048374375233561958584340630059051845371672135606366910558178844786463378447487272053330765791181368766053607753978214139411085810243821919752464523709274214539972212151485470569657383889270182948444104387842290097409816194903493367708700508236111683598556841655416148227999501270200265447132742616434678492250707086262857311344574321300200786051009345363308464108317149032261372753584646695784742546982309671131622919844973817780322036175794645789635425451831185429320917808660812118059132940612173184852853655285096314858857598363431277589172600054827457747476279932066447300533848582078997890550235851850949688045160764987823282050753672795737842403961556284345332558678410733599328525661120444619489549343318633152020261342848840605090391109965254510113056587469563783181758822427796065000810534104478944746227296451883597171302695178799951819016376621617594703875904901313329298238958461345598066850217732302605352746027804710084328249088888528916130301743038526266615666894786568466129796815971349971133866771714269183129201845696768476795146036880429588341794199727689222088104113113587006014282357412332048580372230377001626147776877701020264879685204117043885182399670085337516866392882854646333811117518584520072910703418920091504026020557128167008279156768211706107052270010220792436780908986123812069907879131409608445330880041710014810115132097768032920905584064319779985010287406804952432555654579889231895298614225117601883199868132296592059046604641841012987399204255285187781517314113496876514880167513892162190115577883028433952176608211484543498822228385053729158469370235712507458866514566033703506916658452755062897559222984053445074389063872463075294887715180982145803186523964400865782927400662491063445254661300437786401643105298955833845341978073790380483507155815683352152686529347166174505361724842925621633377888047034553812369210841418961812018282735943590768158501810227787752316361114254468568721024430327574971459241349128133619691777252392207907607162255032004603415076568421541046897634188881790821848728932129613458045543451309554443106223503360148740001456362349435922670655053206905870010997794002235530695317341575973344319678433377665821416898283822109894415820874702940546792588236739175510855852527248236129684549371741671719470431741622598379444382510331825289917390634757154391467506979666455409813771086812232800993252537257276223321358276780806650834900087239375433152668170602353466551624520028218032773589409724182615318641630706944721482365497652285680897039508378336089513772798291115812728936382014508814689801328612738413398539954281816924971441231061574080126660380826659992924828409868055133246451774920043973551619835090667284939068799479418917727885952255132943592838100321662447505677449551322913428979195796022159952304179185881500762847852710585995336134721988904083133832666593990281210009377695925347107367332121821529400095845670077335602390734606049478390084679155499714657869835454183115002677714183873073121214923519974983464520856096617959738770964343319573400623030771767141271450065504824142382557669524467433066000622362605875677744429326357713180035357148599954608222394514892038928130348114929911279334425606035053176821000544797581624504318194021177025178871140229397393717514019862732273275226670597550456871523747475733341525718996470046552962304767343463556626591834403026841952299780392752514513409814214421689486794836418813558177182348450971231344546879478987600684651565478175357915510855913697216504878225834807221044096920370212403419725279606957009428761343323154221699759442396887436449084944271168570220548630640172911921118392519299485436535519818943450406542084383231663283916413366920805087874153819301227299600195313382139708512313076718789388176524124776780674136164856744041942097970188225290559390967967979540192637623845886183221013485824916639212065906939394502864862343617475556817796161581084203459634022408295019610030692277585662299348259778640274410744065031000007206858479301256892754563399729604936687695415871669633567484759787819166407912811277654763525762412313379741021000232195741925557975764827596024944783073297855180981518154049496608041751666789032914164682384604480216168090670305980912688483388406520375605541902047778803673427906291165452533695238224382070424547502062217486560124678435966654248754768553561258092093350210855022745131681475644459498241242979895039404048657509302313335848610009460669524806777938067496898393383281098299996084973477994461280032743647503052274529860980977227326211052154674919805371241891218665538172479588546931176500335731584037333104687810091429498984541946756564570843106669413306976460141040613946372454363345251974412762042548528403514322634286802717998841824870565594139729935247508787684168807546197893322107500157798640921595331053371824310601693076845839160178015984509555574649564026054389360947539664337119253292601960408686332112603937602887006578796372018418129571630236267761273936327588720351337785830211194328601676166932684889975497539483148192465609727081603729479628704491376393805232613212844721070885394500195421539974293136083724357810907327938521128895378252794090602272076058413517616769688081023937237862179301188709114259116787277988875139800469474498822365233615229059318440577843588442506721784172034662555899039767033933253373510535203770243328884125740086041711358545798976312091365659681615065614862097130309467237774367009667474057815158665357288688779115391431370933087550456991598267387669527077630378279931903749534235144657901804349312980382121788908466517574355548683523008216118829755749336471859017305805596585772669858305568814368938768817719456737577855865327945645867822934008698514659616726317407037544910237239028930866060646666954192011523099263827064311091343911069536114399059863696139737040513720262563648232074899702950537167607222647072847226315629668412818206527074727008264705150908875787689474067443607702301920745622845851145654469132843186283883129286325625670799572117965099059379535032260292640138960107680446789215393002943769664461342043364357284564157870050343529487119397241873993943776886645241075268740537382634601027012683552698408192566311461315848337825653464534436941560713034578844551088305166570509163389645790293876495824753344638049360992093960146705431517292293220245367483808436544223980316925519358238017607863167826961674252888618307462137961050052884879410604411854546031161476903973836146026427311485037269969983844310196346409015794468112646696513401420038983549543756692376647949493613371591833412654981270921584856888082641840522808524805893881260713781957587896257939561131051108775757101010954965801970673572627738623610888814233605246136634815698859920670960158837577890120840097889006128064798598440095339001955512153813559573501019949430946574777708020864781300358113492409604195678199588967730940564977964974617267106031281882729043576760791096175035407372795583002643123017857618077700052112329473787213235882412790099929081228402470091494497610959546893478606871243778806489572389309912601883542594970037930095093969731280330363339435997473148622403062515844822295664995806373147074294182671749735512432655210937732858085155998909475012534208257755384474807040918384194480669023527810756285692281398247898921342914732294886000743492652928920559825293989882487492673293275424761586737522635069343376297306341052387565761269393454466875622780023424348789260631473157484573008961729555150031968643108218697984313600828416965366834905474024355539683741397030397212407749224719760721465246433786704684895927729996248709045037446460847509995373690307175322209270707964061274613562081851892139138513526077900374597789542869098135251484628784775555608513546010532651382967023900588189337637787186195096979449472370228412793060385011204100713194410586683306698655925044732173782024029666225227078019233862722098859002653137570987478020143077955479028200509938736429794154618793736094168146666812000014096208786753193608902085045047713763971609003644599247223121659324295035626179573980938580096141718254756580866729407790414306861141881464452482914115612424157397866492060457308384654469070119534306950693205610794827475442028697548649213075854076598661693842716213428606502720791687800038465423710022195053263894511440056431222335527749248433257068598394102094132713712719056408156958905761000970989137784673559944541907378204621317692199263621675831404663124846165272959225506495018443515461070131200785321615967461249470223211485110785242311258340542876730668222008545626908541482049173973775152508056387214921533434079313766266283168388103954219310336644281381440320888276378812441615500005695100907768742532563987789947797510746821473949638525027716870319109679590619043894209480065769771759275453645317362816313973764639505087853772446775161495819869310818783555279016201811960327181163128448549501370169483103207078205513860159357349682883498245463089244644246208661038643680434969841071956054586892767142765133213385026584523470619199534458635765876652776434102983224976271497271075686788166370497954041523493689115532785652601275638946457055801949218340622127030220246540622599819365079599742885398638486637675051006261055913653732547952439323887986834882962578662202373113410191013305124821741533454027669759747619549938682356114489503307420840973356079914437484580196700406727716737083182722846781110954232793133314097521339528177168157166385045282078623552810903652128378056331445901098265855922186278170251621006542121683511849587671474790590583197871404632831490365756493680430308457184737698261901669240418267241378451112259875969072196376748717087568187258710995176208966688406099727093637504712161517890756680827415229077585889977215823569642891631368491638284440031920690630873307892780275464332108541251461553262285626321529910182468085503285883588555635275692105307010340287054544272839619280484151915775019909860370454113849136289291605239502613652255699047694655153437952792276099585505760654111373679022179212693233758006224077601107624990560082353479498753786221562119684255474005627497250041697454546857545550405328936423479336437387896346021622658392856187091951407921474887795029558831821876870107861441108678947147856009994780042552790521204220257327041723939083901857911634570334614873540419987638039952927605461857699239557443910516444058455201290003265721501420256333597925204402961999832417889572973200560043980926178311705604558238213983174998375609757841342862908898286338298019405412906058067840861253131843192564268334356907049956210183317859574527512235589805323995053111995311021196268899840873391721121589838619352284010970888833570349247782757262003371351086349852644541159937180709316660979144275804158849143858422700827865266125987276788969509086869988596637564810084995889549413012604721487106533699273831830362455993337268182957935192451981002817520478874510756364942792224465115552071270045743145656544930161301193938678357869492487324140394662185537712577231915430531443104860609050293847821660395609064372185354094927184683670278911772612072787717560426414158290603117270475428000055402196322200339747955848858111013900649488857561091412439129938604809147749615892925981195649176982394554429708648224765524845708813299081293793258033180489066256814763008904115083436676877674629574826181982113952303507198099473984498126239488821104887153475221463123810316790365064255273984746526364961919444994140026684172439128201477909469562082922653990252915748005806168889724875313894167708247153480129620185196714604614402598285857522457876090640037188469776051085781862239183135962945409955945676290169082715445708769230216009013693895000756781765707671182340588721429891730368211407086694554646879167689978177110268175415554054705548879278126373463114494345010212884256014215282105340843265921515815832580747344602533555619195603225857233114923631947048857551973570049354012104445015319467824510027508682232696936310988990514329196280184794902481779538253021097679523087333721667231706130746016821241521296854322010533749336588258950368714228242195355538378764685101317653451192028205317369743054363819442426976672247340510878633339299664431964906087988162299054047793227028110777734686057732179353493000996726237640925996173406116355777440593700297320265574839769128773374701283788184824616036392347510042697603980203529631957662169691584691334208112809524505857357085879590875292856009873826557987213467599730052842622203316789283358527906253032818875343382879821457121649997609212783674023459289741433597470813235428175141568751082694726594001194628538494186961052302286570843699540654699831269189722342654005208572438233987662685927060034826102676695019017032420715185501581794844385994319460689893294547447648587697681805571537877853554255446209445506063441266507293469968901579115236012371185801579240315144280566189172553116119874101666017123811505102441146102360199261785980030446275840288703285911194858241278650404404106737007887892168228931802404604373489548060589585385565131485779906332139819481535764544876601547807411832736464781251918599947644743377312381999634198943101091211981579301622100133011899374724978016014079016624852857873762925799565769144119754626375464793942001471596094548317225696413297776760223433016432968000022288015141952196560936471696938641750425498633865324223996279395007242524848307854599542324872973498174103615102178262950388566160064385618293805915679073123831506917541231753158611658138090495542004173790299290093203694363199922267756418159570628157444521736478606718284858998631947262400581867589843969550564953741706893219861512532170487864494488366245587155774673089118982775088028791415861788558567634654814907487702773830942064784322016169741341989066334738067214271212712119337850914619080556121182824609111604883744094177932315926217529987991953985027808780147616746483968626267436183689044529295318224380831877248523050195390847645872968868084383693000033040111786878287260302143513695968583803411932587472337835427933534175640516525393097128326093215420017435889098422395476698997449651338407611864532070842459254024958048443650087094222668801692121243862797562492000026481458364665048558602764860857020681562460926040140986280985576410596023580105916568045042891896158138863878258285577781657291307488405425623851523322563491797322540264351566969471866189135878546349392649327852408192141682947088853689782921851157121762386662653037301716583341315200740951256388583902228727202108890008751878653027620953056386872191221949653893974190697608753817362957753915673379836893141328205219027599586226669043552659261212499030707078013735984002780855899887281786033033010380328465096826288561547624154377554260222715470368629925574221006327852526626211688181542699594639557508903736743007236932361420746166650343526323668175481211515767359994542818636632885329429779937609532117076531962700328035613765925532119956265197976961854274468240339404329408506123198241362076594535664133174640003856833836000647905902739643885445017481427016653066790316161478801745995945967833795352932856376596691051114863778979517719939686378282472558210452588458382098074624879229581990368877001233833273631084245847199738416643663461646966000516876565130869822934485787545443801788363595623305518849588731659863554359665031016377832609760085469686668773061843551417223838853378212433465040107342852983682948642169778116493492030273387500556952442412021628062585128468030312278864602288683364751533364964912543566765227532759986038611363391743176630120714014206978814231717679769296006767576838170617841212012267738502795771340869446089424706887680419620557361998603154892809616719757913264392560845479242733029446197210839369941285894377776687511711673116576795491981994770669362643307530610176373817497885598558048612102769475481762120941872964235775346863593289925824610027833450267996170832655178028690565176126335246036414505333378397834837180849139010023953903743092366456080584436718965143653033809568461456417419293720303922655338137074522216956361223614112564786229122818709959392602365532109510284179657203468630018140317164480274872835125197440382378733413482908141529924874615353796030492391736081056983506831663701213510654398588565452845284116106584750620848323046691479813163332112959714647156644585386384082301290245751968571055534184253836521830007359212488248314119832214966058593817230615512826021130556042321386673818147991827966987115551143949826396991055782312184389597928619970789876870748077874881397439936875642340450328720812897587799282599168107428207711841931889747667435645791792824884748732688259545892460030718049610547789774890685949897726552269187150353859881907217324339860000569522582811196923928028625667827675608887915157836199889780886988344674038989316130480254936344145192222304349951830633977959366596007347522205633460801229819733038670879099102326103217295826074910206370301822183469120708506037421830086526979869086106446896958913865644038789262137176902644902964201059905389700699949378879450287988114562435672531147698837068112742048572214858741172325167355805124300860970786893338424604679130000407264931317394521430621168767732261540740814859955571215759169074855546849361721730386992333171534418128821534259482778278220614852214139063801423689379103620514494058345394701513960332036305766358809162224870192838632439001599196838675133603316680792977642025628811244014038524847257834749620018391142269271317857641697714268639898260715992760546775630136886146004555733279095488838015553548642004176155576651105571258244583091389125368977460932012356800174522089560681249968103892827746007058761035714856501384044226087337154510676599815083036233356087880141873944681992383936528093441463380348915774656596957936579664585546825485807909822191051840329663606946200247985776800069042282853014335781102415387846570409043018315853732456924404617616815411558927446963342068817218195123811305465587887834463363538489155675463811322832758545253425385175309100031183000643937248473401802958703706972745501406441798926818545782657310499357167601955038037359070923966461338559848093172551223710679282771903690426955306969541440527652952673699764285395790445152523666429139204977491205105419559773063174805374618341501407341032217973767162086705046902448613051345503366232172847794210006339428778683282020292049582819748335185989795119021005214659962467410952750135814268292716258140572824377882553238668474027470607303455739651381150193009938519916879553398387207842345503691144753261038325807118223953792412701231117333720482978778922745491061144793358191984386999811419626491964098638890000700821890224653354849406753910996162837158855036573064597025036350853855829078711689780067037569351946965324727516498553605800564536175705250839670266392757869889820072364422759644318477074491363781116807258585086289339760620576880897505854307763667937425948094930740199316673753427452520661607293274745959352925762898599509230881981946694799298637437239547750428500803723541991360644807212238145455441088373673323958842804969812923148479895790643657597053504742255270952581207246228245279448116294377643613338793544476105984998978882546716560335613751972750234774328385274256514487896352681568661293750328787715462969772174174584331073842686062159249249814829201188125199038306201671220553549149087791445557313163282096671863809395618601316071619258229109485753456408515935086396163800724878412424523714479288347961410098772805984218745486519018695663291599554889424622450419602038142723041427935401822730106024330618926844795937644090175413298898641577595297577018996678612563170944956051101107013970567020577033052157423997137787834675531562910478244307179887372377376744364588715387249097272885873327447911830629720737939848357765867263714450121874212740588178247257739443625163621887439568013057103434617945278961870999553914387797167655326141098702411139088505155572010502073073038459920678155569823102400285041931059253334924058441819055969190158389103446120057723597932718276783521100818256006393370910118679524340459367958335108092379327416136151834054055034247315557012652455331936596673014048580998783759063565708553610721371248984680931188704326942753580017164470665019118835730604404536667307138080834246019243540747784270031623425432766815690480043165596843400073192145210854719917774047844846305406350079456801269046140452046157924250957882910739249998347150653099067696154239493784555156337956856998732551425376425410062217558764752935360485531153851118316151048246091269479085147845437431409429747085029037424579029337656899663782023256600960846014198921537166243673058936886409022805338480890832458280310741188937409758251172579943431546553321344385462218093167729347793295766835786842215318650591900177361211769127608675678703532541398022881786946768012847987994872083963188952409079289384833651490289328325476828273952427042721231263757100424054178024522682686822881530834753464684961292841942286895494276106673336135200317691353935668842648109678716785313996290025913032614968525162717479857829182172060049599221558908738354749388011981625328726930069631488396712252113936565398028425003546515079899418914727729983496674990760091579985652256105826081040998292310085447631970990202284161867087042838520520155928149973644915232222853149373664023775890158936960699925258115329747111429183932747704707837651262554230040224190550010116040131182790783443706237562175707255280702739974514039396005294744241240745868978956023971319294552203601170021419265322555406943754080817845530795206877405961039903537963389006225494421795416615395613941610602325603633953636070745725238404268983745690417548760517917740724012032309190432946485144891673325163253058136786482014699535316309845199287648689883843845333897547504314125871386799772565777749937475494316018257644997668103295338905863736258129328738759749108192544066914194053210136754167024519344070478304450953149897649967159986735340543300084665810085373245080991652205970483302455240576739136349646725458894951945231249126463095931849771336651661209673550748767126091067779688899400827003644121067630284740553037567680911737114951035533948713240631650284455630606619900757682829319188852669863434135180777111757739231053767017738046934500692288357139174226247238803946399386149719203229762020128896641817696159440541669204987078156320821266393716104407672879400425633752167272826822501653433079708797678991301281388717830468518678453024573483536103631753204861385580649265344227777304701557766278430129838879962210284879227762612336137484244818078126983467882184825897841951849118744453019308977666497574479636642740092786352689838787137336238789848232074360242615845793807547461905401573816633076345532194932494547930151964422658125255819618485704948086491888012239704277085761211916793215825537464013054278750906066985941610160320210906830444530089338112159067894847026374946671357791808912069365489185308994247893639754044420904725460324608705681842143589503115604475988673999756932757967651140020808398065653707053057726486170086442444973281235101444774603090475750900817353707994508318178740830130784651408739745450651580114668067121856604496412706104533621439628214528252123521250049104917432511840046107092078834836131017978237148319260649276511830474850085484963046456912424632250427094705823128327076079115383316311976480567760846558773881660777006182088584749527239974314970808356651551259760160763604905697707188274962713941753665256984704635133430737699688776469126988666583708968241342155534352045337080716078831932024167676764770400624302471652741165821170759596601020461039657739170797872287051781983060575773291058028061020977591237938587454217415764524845039155213443308401249840322522626589177886732745285889629896916791815760935361842929178593028211675967214307586938296173671768733075503539538763636467263007047402280837756792148485570863254189696969218766694272823463874259094532842428869547928081740354058342699945815849590958756771375067751760753998619999403944866500332054861102357334547483273469644943984529165721160495518904129065642809069820403276898970481553270423244141541797827230536526793581774425403219332816133611553829197336687814227809263518451527515912036493670766080962481015428412437247950413224183013815048283373819412162800312016792468260741971054276718823637626793817965937372694731062587267003487993049737366474290700918691608911754882416199772881388840060870203944284132851239520943791942026650585969388338125598677758030880925394214844661070942622379351402860484419077563855234418067349825885514361727585517399851734844197041937572094270569856422903608722102289946162087876983033375165040766732989775688679381594019099727534358794356342177075008610523256613972475693010304582341973295312426213921987493433191870148371307538118679588782519584841774079029600238114157372195225893650310861193102210413010809837229993679200538961598971309550482972517412035396468263618219789768960928317792123547923943382074321139357079663184817797413933095675576346485099898860774318047680629923015243167277518847647753049723306479323718359078928035783938202168590309418942596718177787983773741858294477819756970759969791623206894424169522216612059842054887771544801880953319518554216238338181627466234632088218182517017154362543129706028667838246369496015209732374282052805398226264276645624466450923960331750445233330910254222516413213208327233362776489386715690018696601344632734192532532027457935538854204032630505936268516185606548434774393950147952480290472105494343285461281829093811687037636707581464541228286908670975775715171237905900263613333302979520496662766897824753749485188361784930676003937839813785723123870732039712286464653487977600177672275946123397018623484280629798306329434668641343219585106364373876757701303864030855652141507573240251785503514702906271244254004892345692380827445957250886583508407094288021772535746449714529944144016719141809050965207743065276198507009493470040769121815162386884863117237163100946512085333210982849193290090354473639510691654186234767035034444122437544258441435441511184392187490491761655072617377397541674569948463152346535881953890939541916864894229881798592589135386564701723831469363903781385115110411614663232590572596686594514880885032829243018692121624171225379441131466923716836799483066657866908300520684311750007483262035620213831830212256453248164418677522008476487895535313300886631851019771402402635368669487916346959319715075225113173563404768070778961007753144004545022959879496101135087322566944359867787616142505495250338932457592493588209563003554586336628263445910490504569442195771123410029354038941562612723840196061013512807150846753845603847749685660623853836371384573508711072043827279599097891233321485363682605731471336154936567825555458872025636674338845173502486970385563674437187614845709946629594843847461578639640898391691013921997694807833045480422369123356203451213077960217071286467209025994234276582162556657784909970412541118911763170277085431988474773648902733883164077660069692743904355052500087682877120991565737063165756264135677621756953516225017342008076790361884232548548900823728883581907030093276141758866889180388586404555872651117683153026858555544517429560988428794083989557575865635446326124407866877204790151555788411839697306305977377397936590602932838657479320143450698634774956574553752308295880720098750668113181977756801536615196262237010659059166217146773204950856535053776086353731989652298056768735986191136821283355693270956032286592044622176513634703216314341510458803017977761932169394326278780439242036321961562665894389967455679290043946070472035861645279483968868012711000778270301977097425582603066344276812762147362799746091699344629463483278804288980311081356881292245140302353796686277915670173252902410022571739226062541439573315611304068056633820899739192730272097111698597658457378862200280806418967807973079362336827867523566590646270023220242198113275266585232813567281200294381866229607093768127880462163332773248772242349851494623600149591888818054240116198592136509485897466968903353843200680656278697700480502544764041338035792547519938185853036545068131777596895599840317407000435453532182245722933743806073719373584449192125336786312817989115622814890749169983627393591296514860858027778107105550058740734374387755706504904243494014306104249036981657791092274244106812818486495767897632885993621611223907831686974957323105174866972976800636334854797667870455996660932797583694802931377995045755211847023594367078735894016916025618757549952122875879061050273168363314092816239470929484254320889705275177473502507705766054335105981309456423528080313657686931110045755694736515817710206374128810523706914614652029125512464601738135211733705535908822771053943607447882379700269040569532425910251192269869919358104008082389290149620181808815976348658404409723023303723708496526281492673138204493119922356339864691941517655960572610471138218563411346327072983002318184865671108787641604158840047407693987442357446096243880096544719518418243777410244420571611235194621309802765223568408055480527302123774519904910534601722409316563241276151992703133772763205436137102976131115027189173918189988870259624308820063129032368211895458771982367117994827377273558689053557000153755586924746475706911587122380724336548234573632248168544068460921814303680912365950314022627557024488966375847993774979988362734244863481104047834239371375573108888210653710843023053885651993921500837137058727948305498873287488021927065462886739947909210788211906708578322431353930299956986313809267389208824189268534424072879557667667428303114552570388071316593921157587767818585465667370897719324624562435053091837504074711208531919482506644800953462082070641567823605099740543686896189686308037995374284228263368881741924976683761412564002276205882646304555642437493606885876728843911704265193959167216666933257888881315760919573407305667363960330644243811039866563521642401784035536772626591848059620247433975014413014221194820004373892522351558645442002111234979024710621606222170262925457579160506475177952146410421813084184166638154767032549552709211382631114153499018741489333379115942266019489138662945410836494134475430076533261631567781941371940066445133734184734662295432026929463825845274306022002090383783120590032258072692431003213172372894741087498365204820189668949835189659220513869810383753735158979510948344489139203937912052372631917941947751779044085759194723548411931446005758012738583833513595899815575888378985108030981038001715033810726688913466812093882685354537150351352400356121868342866406281014458396449262100444782435570516070830867231527155206477813472221013779174217500131445992271321262823966716941882472716475038804261214376601902590878637204088186148010863921781587988636921032334676521648217480413160866990337187890246727014282574807637198350070121076086930336086021902033217703895496708594078737357117883209659119461308425777816457343845157565959429089464355560872160189435895061587009783438037860841222142815169224016145751547310854823024827601548638210783452652589457730048760656540863063016901014940381706961113098595488435340886663606206010657256129544898162497300824568639703967535522546879005944835664992243510499418240892309346164436466107833332268891927801538369393185242943904145271649155759299809076102335830480421684317134653985049856568966443441993039579783291873369312934829739779359748515898280025116907166581750682565600445712435826327947724065113719144572783583577602060463474761471002025690749529091982276571373178357446121345945061166332843453780554188913166900414099425163592008367490218793672801115823566375589026250978865417573829176738494231051360182858592328720928706651566775099232709568080109953190990646478813739990307399647493349642429196191903437695784503908989789467786917644056884357558664652566047221927592679685303588215081075275344065293303484862538061742592422619676397962349062678661201548096656087281220220174310706188104850812280780961865717797498512252937379714542614037527252805447251447005417709399809559887604610318762562698721352203627677181781871954536193215232855211236085405809482345535143808979813817908889065961014497316925653332678753792508547974853883766847504075773689510802598958458923388241927533089503982565839263842186627391432632753479749432753227076275163111049893128439614134097307807041132909732776313219339081012168430500277762968464104334511056250462143791006574457512019209521232031270659900092830006613739756009693750191848637564811644495767516842708319876907218389614168826407239006033537010990777090149314573915260815515135611516813196795799521125547470553331499423637243582296896321516726036769911159190801959974958974463741299347609948462538696823843847690003940249962536035370534862945549131199368887685014730559754572794326487041840820115736062051536281853336393815338610461608209895205857443456399129431671925374229931104141041717929609623170687330890212295968803189505479476319658495167668435129130179466994224960963806864955028004092784169666891249812787876296403467245736635582633638356561124371352418293199210770750190411241958783641383921597130129474615519744050141616223485047134366299718040998148087551238905770103305934743879366360184742460755091331165435746561385600721772516823119021201472075005837076644746229409853235065907979984826739355547318655366249958349956221456946649893069867977895588179110687595301494345017825250920494859226276461916082869393342377944071994844004607428090667599337509461224459757399454822145145639296870687760880535171037972307758044794559923447868509018577650709191493607260302140302799190786690600904334906664325410814247698738998483243090143668335710478860569460029244819496577087342740015198009787281865457489443778694229355857090628122202371286285931865113796788002077954400848734841842014810169363738614236854931970855592628184184168654041417670465852644559772053092632196892592724478095905800453124584388055461823629561141436205229510820986131554838157924570386861897423666186885427854618981758392048566040414186245523686443321157634665469681780109634270186624907323212034570029265749710533985296464663642914524476061660417397199147759400954116445302122881046158083209873188600097961952019917443749724301663610496145872322622900813968197483381873863808843383555232477135546275027760788877300559656115705482293762638430092064892654468054965312787815672267350061824113839662284713958493440370983543673198807437929058318799756192951008402009525274990936008054515512054246412397578513510783902919990200155957374768505507867166189282811155298081449290809473415915981048921205154039713622956808118030466548004954091157883382935145472203021301380843573841072120579655019852785772329541214795208013587853707190416859893200796434244650398592420599888872664351927016929302465516478588555259075078207084781370779673144585941083664267073423122665517236591297554510733971557347296117278438155179595908184957800734567407475081337147689153444870288311374863182692244058615022590036086595418137139268074817017173159510133402704900624163131777802184339202348237702380187781370338204367543253337072548036292637467758188351613496632013979005006659732364728581335151403005964448594415222776093684251219459366925643684366774594002917925318331947437665376525837490652398112095398839968643808686129714037289134893485394329737794529093521268824831562792100916186113142693972475257311779168575448410111203701537870157822934583809486414667542795424491518998140083651331045175313339320509387696441552908462158276141074027026911569719313391182587160878495873622425669869841616611775283793492108481717369632349832755353728282909834962908785429986229521757083030475983097652693930350211107360286230841424963557416897986958913364046345849478688943329727390407143010240792111173860380377479754113087252924336793413997634318672635605359125974806649666645710297493489109279749075226510366968840006320624046777377556672490497115756053146382102990644714009230149920324386590189432088187545543584714193062894667142869317012991274047252023558156858426528327802250479024292755189983927226530340471655465935948523049190430954521557190092768742461891118366336946630542603363457953450003128498960088306595735484002915519813413495426445899763089755658170698604499359504591775429222992492061131177996805483398767776291667628087588279004820168979116480849185901459630710283641493493404571083617376570980102854805658888241643704910749679539589301165159179355956339583629652863705481612879917719219761570893829313354756499066203343518633614841044143948438761985719483710932693495018441507023450771112331875924072568607160052738792306864505013753679037753884668491726489845347728646500373509878320763826631863093600023982135267901539556087851017205755503054686909649497487468678022636146230633970324219273041733180846660299186031041591455645165346232987774388630519809144919277073885697640803692240479357451926001404679695091218880379698010651280769681632456109942912101433417240547052254084015962854910065805190592085074242782860247752081414171110578688370345458646815355034297308079005187935419313444058936133696772968082660762043378504727685858126884270513660478230877616095623588597897506668594006869310763042865886485548615604825039574657113799770292849364935788177246398796066429846837840517419984027626473119302758457318998727018313972492909456880017143342863253461186393842851625487477558429047035423076062903183418448460898805445988063672549581152649224851595006654273293003043931061546033857870538784653064800867712231400483073548429454041953161154312892924539342877822824301887602044121929822235525546649951311061243335786975756939977307184673360878275879196288743665521608465245142154336738227501947944653867063694660802385412733833063015458429368652911681578879646871266782616880256800264463921023349966803246690364095363587847320518687307358095551819835364723711853923265261369364160010082061908939566635998891214112295158711270960145016722982614466776408029551896695605055841485811474665941210870223443647668676867013006393425712458624856322313816779589619738968324643162128979545689780908394242745668971313094536036090904918241465213619939181717238091973515407389048423590952606672673815412886765713166398097678997438534831225831048398584170745070268821911092294892057477620060293929705276084932923253249230717983980087706704836975234892326784349209201849102678613288816974375834508275598215880250767751472905029548300135999176800808436049369073484731146496728276210615042145223917395759085684466536400131305768048260385633744646154196610681041488822722066259707624918368837176391555435356873717157120685842760568539142119831497611254486437324158068082286983180868840677473443245580297052167791741234714852137201236738938644024413698721356147386075707299801356508850068318547659652477163325067967103138420970574499910312759406088367608283634335449919021724159173567991833076761899228664175172707497669714646601263525325484183356332659607380251938005082934485394759412653138679162576160363737936668127241855318208435795005510137088444093943317335079645141279623590053621681654880176373025060678555517050714901935786372248647495094489310890632234380803605777992097708076889399642215784229803921940944010484863679936368742366824655712088777475444315037884898509881389303584730428910850993830792494394583747564624735469063193318454765312927920517863596578726107495743360888485244433968618323229390050496892754209512322103587023667312882352708230265748278786017272070552734270327006270841116865705295785070616169428492136287098436129773620493542810644731817627502079187296364003827849775914903070350692156598548936142309315993004756431561503737294146500364472331253641218377473979230797083300354150106265312536583634902382453182688741874070467909808422628723016655179280924825340966190177109870712472191885399380902272060884577793333283387237906845096274586084205650403536414894851875981184404194845364473428946046857950886788004762564993337355511424418383668298752963495335524337048628838317417276218559703242718094227099959912659494629054106168401653409597664210659677751642451834359675499907886547223397962798461835961705747612826715743545866642894396409311497079236935639850179826159777774861609584067906460754442836120392210062494043767506579650815715210078477265425443838043801553013308975961660360318928641330174869361054067218762690268858523227704536502443529979348543990127590323253846870847246285998746569400732366749850891739915958779446256171727710256241843227234228912497272277887103265615668356924047716663031841036188679351180088348920004399260303488656403743528986229543482856478766582720322246153155682470677611577807182368743241526405726238072064735019454412472534103468531348772052962395799400319061627235553421044551008502232006334003691897877012146690655762691847339741923006722230036804565283303280515876931591519285962006211670389721638648199307277684029138622394395885779717203230608966261517567135157197871134520198006150221817181860512426958536560534223772284727054621003410119780436921486692860709432393557184581144459772228743314054445729700228065417232119221989877385848943671221911448009525340874400943226211392451934251829597750705642975449764193926399635665083057805068593643456739840684854185318359112656211298140719864407363494983569621575552042621562920143137386636008133918066360564375501957585724894066104132267501569871855045912119576746114225982587353447456035873914655357702411122698941465784969875741297825825398160626256311657073889643758604124113647855922732628423346087255883529878549882695987998982196652002323061103170825043199781650221486081896459057894334502138507069044708331487254148151501451044501872497696524318461736852156009548923431202329609328261414532177412424518794534865774412003954681060518154466599558409805473915435211505303983785707872105206182562361052534321824619368849683678174986573408934421467830268661615944655908022265725912353270327071009184140168125396060429806496590115393936148550285843936557269027915448157954561875946525456592356641749901566780273009501856138538589702102425196441039008223086573168507466525469586877979170703166719985299992523568291478453747926073808780279525709023121364318922824388117787265843075095368492307862724206974283598699516009611599526914087064346427590054743031080269307713821817675689614477508231170554757302710485995976735899832849457856866004249780492008950841219656046196496756993514113285996241544619059051096616956116124446973849887428413757403187333840873709105856795416719989317233764071391452369362932785065158403163064571691822913886583317727759965219589970369178184613450008525253635926046878325937726169580815165148141126992962349369435107456874028803018007653793324728582178211140318913788705112491313144643651306183336208200804982656430715004498944134808534840891282555193645872344575694599521783665535074602150930758197363519271181210068587741073468502860977132387564500159179284552089904875174171660861668050422911198681016061424997008527743177326467562876467324479524950873937771315615268373298631356194416884482671212095418479879075555362100872861364306882650166559169582772602604918795608262558350527611657306650370809820841331068038537366584263006628565004647602233017934553918784273978292423768236609843031102005037987102677732698781896796355399457647233193685221005823758734048823982751999561649621369587893207133974764958030967833119237541187126414385134065040594460834424922525180051052560016198814689956454903775556837838783193312434585940297093720630594759902172826666095134154904615458287428872631414691702061646928206032644904158538793111234259800184102866534764991664115581777424009302390303309971606275446859295227158899855038136784071453444547432923888333158662133209991899261497649641576883849747429356421292175897314325721308103693419500046225243419385492462601714807240127591474928597658238517676791758350377753255783105636628946626401218829835699708991897432735943988930671177811687371429144261603068438527887025982587685282500108345720921474233639919846399219108174497831720369682212767510165114605053902984505815128045376810728364799261656351788051318528366523943993629420853129534048042071035818486685884361976546246680570487933165113927844139696272221024952745785697732412691116153548787359907456071961876002778624581383276469223202142757327649894095216306762505193057735886053969783345224278460282685876552037706768803774698339097653702137897410527436336045804246386288340548032530534983074479620991631708267621573554717809214465422043951793117145787284964715528466320047934058194215207533677687452851356666790981005638428710914240631672031049741819587340328261896327747862392497375517203181160927367850796775685473624753834235756544015950016004282564223510679483816933532697079632304111849492881386602677706712696974164501199411646452810686524942073960240874588844428585323478592325888456848583208895564769720117808051945587623952118515151127566470652087500430542993770243514734351062200415725063594231352700728991350325150083780712036782084339490378598011048024101463653607657405839735400916485450304185924002771982603495788039253025912293445915567903023621942550294084004984479239673352509766997980468658545397372801332620410195420160744095133162861370630544395988022146430394997156256364942042735868473832012491361959899013229531601237063967174686571311286829980712890316100672362630650987653220679176470625290706348189181699989017317587833515891269777502522444340554101921984897618583146037864064426184888256693634342476965008934753389759960061834763905211897855257651032809177263862296296502103722861848641334842687115314802125070498873912259311229478413981149488017837271155217954696849595541037549713606984687937457211102542037047324132320573394553966318423892837372539077678906535492278701093105613415603893958373814116359031727452095241853480819668009208532645869257496010724917341893521718523197031122162939301265581049668554121200463829001484692029157561148858536996783501592155519697308999834692342831992317035247558581164506571328764120140157142198512141383894373301843615978711913474567562797525680599604031569014276743737016488944333307899891611143500083871863832668955145583162230586356866909702625488018679504570825026297362595162386673070139343125187021846827851335805747546816026495688844003236118055283406058260953139451803525717482279687006544220171821311132010553462900626748620509403604242231999879788887024346719025568945410222563586314766743468434070031578016288432429978563869304579053900830085522803686246990122220277719477462010740158943155790899362143759875926553091973692693008420655841461791289620556731540188232805428182452319915233591668622087110417988563622323948335549009222532757540026567991522784967266679464114036448057097389506601988624864176931888033099520520405169043819587352072130666804057125555174004745545158885924505276028328777070168961509469058330427810917009310707952565999508227219456793147823129423187231589376630807191635440243832817819753160389618839231486974955102552389243599071224110797250437457453639323151420116946761179388475443284974351521432517986331010556145688140160577132064277015333111904674936877456226451649873871523718029945575961047167692607236181083314470446956315241941807463699697798489353420065561699590092697715531674485907180570553360576160680441892426946640188719082408465877545958434468051505656018527677687169629277590327339901969402877073836995725929704650593995783537548216149553137280954988684515181616269193542496878922985665377391088361015873714249509367137809225248742571477517775914934846081131112161309730763246853219906742862500556253751365402187324831033302850473110267452179219021387319967736364934668357938592903219246347966332334569165951059248390890912563164430034418842214447076955123044906532192108299295062618560080755407742503543207188114901806548669072615060279407720388684696577057160552410626238969375355478789805867872780157483799106252215445907012209311514702243037666856363252823375142431651019460011628595805242151937898312291070148956796250662577617825241442790419311149961268747673561722914715007748488178414186981531269120372449875763330727263631606430726269567251934426757515326966686443140278272786631017113502538599981438257231204911255232885389570126932094663806833143680683517004581182291639810095060739864940978970655702713545603035028323818246752870091754723200140485392600967671748173513236506743547788091415880369256627950981899089083956441515462737433766213846539659088390512764066371059061788338517212465394735592377342921773039779574712342321471931398955264541697583740068724180855535659772755345858294305097038526781058402929433375154383378211564666785896906013610020348452345731472559341897203587051453743964428777731651458041329992994503755718386313583008286788015344328856202972814678171203333208437318470123749444482530654451874665589121712999518130771213521706782676540149537586725612288681167597276561132932009871401702861669571050547371087213033352943528850140383365240591878898573218851225086291768134492125361118635257607328674231778289459948437243460108515078067351759189200425754082738477757950171474292954029723052565500987440674488510288453185758436030703180105043468768625427449122576518299109850118710624026821302335641573648096709901788968079129592717254392742400288153445009832562096116294625787805255597457312393957514996517443004643452860242069625054424402283125669554373893672316909379365923202701275641698930318508276026799216274764372424846865489095224816624130260154874825495361068735034591249453081685714459473860550461670576658892501080538963957291367289891117304045666384984241363978752511474074916051337769858515203758213001102517173810502272657871142043639694687800621881173811306974396522669461591865009007864986402414841869983063978743101213682362393990114431689454030213645152845196715988803697497640799539238476835566397695056712321171844318560876658125038196801556544678379261976770457278497783977470691412669335526189656223065859061367027339877273832103931933974709454729183110734806139780528464612730442299054809354465523320113645095429953833231423687411412540294657775255097139384614442391339326962060211647986299815884380627323355078213369740255201723467016790639360705227627134408933809550619319284407175337685418386904944665324661324086920125421655811866265911448361258006148079655032463553516566611238477859352469344483413295123404828888047581732698638905428311061491991047932083104386544208513804857196710370670297684784985401076763993498525837757429451447970494944317347191785611980271209344578208279058154933684130936740814232617888122228446814543060103014323776312667526422308797287993106525715292368093154106040040958632753749944842610864691872056736275185690489421375998183769715282534878821002958107060242215351547893759740794632491162464514690876168168850927377277304316356233966610039461571795696359030666088071819711064685438583342990409876254260670737532867480423000044882038002323343332654887931523652812363263963640784112261117505946589566647441995774334182644331135993035214732778393379839218542862521883765903819031129681779202371134512214722408996976422136787707582452897513537858419541297625967079879369335726346422276492088208477386389088671649868820879909491605648785800192503796990720283308401181306973966304499201501486118656724891168259772403897638540099990245278057574712369950308445944903250028170424260721511862572998333614620361733981625946973189999826579198538767039626737529085567070449798486181424720716398347273048347391470352753066585473805309809627551526886421357673968127974925492701613798064690785035456225115811447751747635772027156855079031631515065634510824395518485561432255913670478929956881794470034838018305733891046349503368896777676850882363822061732961891478865208222589827611833010928711371999386639780305916365402750085216485744462673396342645524334392929508433675977398165949392713873724880617343417390063655314082936485708376061984030615619389226827652288207543325625475483359576197282080275471734283762225058325813762392205235378965937732834878199542907235551269100810435612724535949282825232347971503987648974062283813619759002539871202589977184153084688523548085434785456860730533748940998729767250864889545009917026737038285610266120879742635145184341997288190457942282814143893596062856624979678508179547420137380942863684793576304986423169498276919400910780312251718094873179469678140829802707368233204289356642677257850204288920804238592121387478387609728644063401478336685299218143333733293962245152536139183177678384982783801913648391387813796440248190406714571920608844250891835841621440392528312079543432625441160066011678430341765282103753909759544515532193336140508397812911678112533685734762864158442486848269189945107860581207501436146938852775445736692390656223105930805221209826305314096214883931064869815714238289549575850534842305392113884508823962426877784426478787874088879696365764228308120774572280234767276421711321949583132214858716253398020595996220874166395732029657918755147578885031183151585036270634092526504005929200510508937055167248998933420624966378413121631439298889147827829163777380586296558165109492941213747839891345263069468174434733444421870647161118578851355874207952081038160929893850858996686232192088334415733080910524120419304674182330568127263446200682512105762354500287307117119335113000386391904349615843636361158562902941033647618299346520515181084414904560999715076410212763588758048682150323078012560160080389768399286679599793114629034955316583194842282278998642120919677584003202451671439225704198385396236139310635983635287494484717373711528277748583973600854762124109081884125490608811545209714124771998820759081713244167477244426739917378318488712833192061253626414136730944182464836121247867347103597340429168986090859813486074344882574290886896428970763071803231009560914192031766489656915702158768466558998075067176636346637182988882501826382035139295969508563399679479012958370064529072117237680407991905900771064987962885334486003199255310704686844477287383407527815963382893625420525513355219301717481228044013031589674332616128066633434307422733382806542170235862085760895792228340092954054133576531537964257393899564406968196952389306954660305900243030902411679833656612610429852612656298911099491388108953268353830851386245165991695402808811070986950733921319892185905231342708800339528826296870305877708867466610838420474738258387082000070194681657021197298026119751561602449316196970032666501647599015994240546634340443147552263786689843648396210374908517056197018634768659706497131301299356517803391803054476563856208050842154691254954038688273805258752934098982413630188699102268218449775803533981218625227214527583083530485983974087028989333250487391804123480550124716621955903848291382917631684168624131432971605033082102239820706548916172862426255861165115491486874258893665537829923998130271760510726244117520560468031590173845619261358597558502123276681993200640782924262014554473792672730658962407405696349326638956634790283079751551937079139475143298375676848081679753157047277850566529404356819982441225232697705226626697642842330133720060922458490398774734795139317100461513915999754697262114227562656758283164113245220462453490619266894366708030437507017824941341415386268660075339384376844493940692726217606164778027131195083753104889980027783494688119035263108237575903052747442510025739434744942579266679075622325719411054153081764500160808410703686708451658310262769964117847851049648245868687294509161659274939520128836072482494054414324497663802181997259085836161803362507463920537163238548846059425604990377376443338147424723999326517630215546501934299222656308529474432501185795383694560342161851013274008371808937186755904125229141176370931382486626400077304087427089721553091019837427881569458322677962067414920097917748247871213650786345663533143903012178711845954347014893979855360764484098507220286674879224450520292256778786616715837861530356264482963052416843261198596191670246871037217570271187464080036312468453117735992418014053254002704518995214241063848697351582929654936612302509749459116828498478258922423044608726269343349934362546378840765333101275114320525562209184063234806065436214164837507278190799293673240874241037659614876781262556993477571888351975408930717384411638192703966359380773901533512042877315761033435949270378031789876070171081739351118455604957309534386207706738137713485833094633223944321427215769753492867518047378421529448458046126854693993833700891856498667642428574853761634931055974656342946442376994379453623139178185693386417511398440485729489276239821394747539114481807340942982677146098828007116198359315559242199618433090237485596519258444446836732334149370707122179458583711346863246403971580866050034590485703240664824228114315443168918131415785757134549778410021410128315459241227927925540537934215030737950467363475179823420313653435142516259973618141082756929896948518928724298043713221276481025838119594336547690784686858438796381715065481961031155512451413653900558169799735931685455563588688555112556914919880946702658443594754192900434559683588168562419361696864222460099969126062589456702145958447131313544281677812842559698672475045573503528444521705517593347421327397231235748411870636344864544587790743940443622098941464273066892657832729084493891123327419811257709772127058514184881574670044939603117892840308605830690425515262440671772870400405840982306263586578735661345333299367637900453029542258627178673149657914695745626613471616606764956305442051535285436721268801819462109823090595569906031845618379166513490918377196570368438086973295593709366254724787969450281845125768484296263542043295558794956936733134728952761683360023203172448616623513731501472943368164784842389784311361936598875618244868550261005586204458816380937020382118728200892943735823573586594944653332021193591634874464658301464747898092714949840826393979880955594604986385050974531084435120168958525176263236108795142992600090416005272201458407348347406647700569083551902444903037250308449423782729957133514082707916312247940548526107598949013103681626598810417605413972457057117890432452815274004980971384457566010447229654318311260971850661038726559275496300191420313839918812941566444036706019273605900161254136760615789396028255494268903553657164034918617857464071414278677225886542138604271617557857997559750665928640894878810751860706227293631931651301933655899734416435037027709867682049192884087460754880913834853022143302406765973487205557371467354596905869440586313062041060261714869885559371327063878646658051266582285983799532153767821650790711789220252468760120994287726984251850586945070762532598906508100829939234431144766916856251819580248183621641379577556589187314131412310014913446916819988580797649569031234198894618465647689788109611428552313121702622832595456198753419750247338369416744590407896755365969635575532209762184648839053612188793566466218937879862964202113996562187524498500441729427123253900955394125591719348699478531818430025639604374347833565596825603721276328139870131705079060617542542344446805368900799187954627579466150083786286116354577745837430101186681203476319386831273925520313409652696690150153161717760379663029613745592405757979311382061638792223237141160940886117456204170703833234121426852522181817311518959756281538823367960253057678948457384469586579912507755390750725155902438372847633456744573124936462832868154198761934583489186916162625549796479975751905208009109615744005403344341058609794215753827394764598677227187887334741496623204871494567932940818768752712523232508056475775945241824437584160441999486656261528033809584265835279424750201597432321869850614889276724723859783538725397942667773812807746626771323364274432878316892470061186307179831496274521440533930271781130317538032150424960842693262550752984038444729720570143141611834047274680160537647782162678720793733727909489882773760626648098568887932749212830506601602199023803472040791808820472221400435117593565967079986919125754677241681354215607030943457242147803576372963435232228930905745112482203968644621526426715191961181853754025003590065332537086210424021154250397295671547268345992477402354766174099588183569651528382092609590955682168410177193093456107540757717597405498456025083077415277089933810032361790451645643493059104995832677401414304880562895598682013180037363960788436178422373184309648077787526624952837177544382411106952602863747424138582885056435964587676995448838964109612599385735859369863542218478787584809056378680400090713658923412933290182606637320991580425668907514320908692309457844527963927901441648369845059152272936088494475146197269626364696831773384804287238843510532186015361074923632098434738591288297995064929208596083410620560727591973649586603732606845300356310232018795822642125679599194589492496911647687312963012005912842352851075716693428607994790247259149603258495815622234204495716073245496978172704958271220167359767213362140012413583913079867659371687062188703685163338692691787362913371020596747852056125484696932672403671548094323428129721809517304679181320005629389398872953692634545870082305948155083184567501257679614631961264755231041799598336747974843260530687686502252404191073630133228179449962330225894090389798984846509397655774775590688212109641823756121651064166152934653856482231216620160356234547132909186261674926941837487125738170385362099595687899238250639559476287432603383720808982172854265667954004821966037204447320362622173448756212327540294187569757846810364849054183745689310034088050524256295475237260416199215955370468920303650205240353451849273038912516545149331379338341826561870693404899320371232334319450001164360370785665581994180677112117767970335772265398813798665066774517564285485430855528639745922873919094896610559626153954934673494694628278147102855970311239588167380951623178615988872406281920309319699516693251094873674109105016449572085125914910686576140195743266251616942539979591064956403742866922734649822802009741419315275063180344077457591218774374844625244721526249780296013535344443690723037414344483489288090678778720800529386799801891493506592922056265537995167240455875850412073674909968534040854972736749720196408969379025897138731384412735811863122573287210629854015044544906547961263024729725142875214049790194491018884999704369318097895031614458388938403525566821430902234265953252443808479612272728121379485726630775034630874672529649598799325652622841721195550137101941560953866394741059266972353423823537644769765095614338896481962797052970834903853195823916964081119980501128411256321178979143126629347990948144389227161887576070364236192564036153657252338455517999475384483234523358707071738154565740131819270237515485706192252630111833514473217749251830592129391970884498665264003859095447271192034022861186839665060570107845751197933040736839372067174821787137250431198335924440530294959391381257093056784176100757156499578043600277698212464861607670614538454462027225912213256152924592922079427471258002247055009323943483263590511208239697821996262037388388124920905606963433258756668764686797139642627967123146242823179066588940488937201546656498548186770684923473635260863633155250347468577494488118464467722743531889060762120010419239261397423778647150453843580836803095424968716560197511005300379834583332807956022755174812824117341719937596078112592629146223641219555815047269072464298749274359816101004658347140635668502500818080582157534537039530068858148294272782303587567275928070092688546106857917165937776744431952776104304782551644843492613220234351300164969288018025555295726492268189487315463584552946163322083343929218208659485562893329456273841467839408563006145771604372983998103715984656589979238260197495817154029157179989068961380664520022149592062927441513856117222741897889724143965028829744279216443214795013139997054704133297240157521704941296785522332450037453314358388980860455987279059334936901619491654702855869161769828675832872283404707095963174865988836728647864281970133841685254607704375126050403732547366071167202817624187480208463522604587441170563311522975121034742014526948361361935874227229534117793072464381482706856420979789766336229227053177384466865307422354584137269361573409859722392500442189218454370825849474066849782050312457179678030642124295541495343935240540799964112766968747109804743989263229927798090023823175667650427275030034261997674469338053413061211368390688259021805554469616402193670449898092437900974649305958438372676841505518901275608238146325674010282125809455996038638332936619574095939051820867758157257339338295200174143686406944982030660241490337301250406311229666050448302342092055427873440257811247988082781440714917339121863744368739361508755560378827133148876942002349035228684495701369084020789880292081537905459468195913281037954823698812716709227861596340670966063993096400482838375081671618175188911840671468655632598215622679374072930754876619369607599621317379106610051610833192594438931456947792339060942981263736919414294121571284741752042871828511594210927489838324274583244309603567073123498581331027439375156414722317266128775025323588433016361040167480197889686601707771100247871980289464277389337904368906974363734075458521101198490060090882309719664143006067447653236711755777324684197372534614367758825297204872892006032433880713530230497022506378221003720116325439018037475771008301998836148789321688727407176238331961463606810548250211935215376255639882571207830044013019859169435452189652572789257206318450181990618572123480301327083425534204239534586631195889284309442958671491429344186433568918480833631799191533401541364823087988836212586494962397626605109298612052503373091917129463158371552942021051101451349576711202864728270453769474078772420486846487889023256225666696505157149281184081680162646010342732678562909199452851566053093056237978108372281470579934845382125235193198304351766235783441380839782284955117698882537517528213760002138449810245897252546407126600174931150552151079919161114220242967425677712405603427654521639436071039238838198600777730705196947208905043272579817642439790900055026233306334282186641095551819823941767485918309365904968091857139783413115800263799275569894073725977522949470929323222730660528747678196042556057002515263042099831273381518290024961597669936471582723401992242784112858117096044573468626913986020413712628835058026558690707836515943285938837709943868197567968496487657759213777046571232764889958399121043712573216187353095058324364138843003694920657438068902060511601703706023082990098668525982153630027434934254533442618982807563764204888342538790989318171382346858715103321799828171483889806922113277968420596056609931577367888890180022233344982137968970298692995744833906253969224703338434787256599495465813230182079116993543228342787999390252882356357927084649201084170752383231963916330863932063146733791370862169664416623559389237719409042389692059073579244090875504531943245479213484184124143149914752381040455100388624275442282608829796861694893695325530333862247483206230842203576847089863412283286875852947820265365323123667726309480720412719225461318325349018517079262652382544072603126663747354281239969020955190112101917668531460757046879746032707058868777577160145785495938360464611697101197235725149038175504928483683563322863221263619683660762585349202186460645007485737574914615175611334382243739769630774234362788173751641902152961520414723471666445087989074255479102603179640988893887596796516226302056613320768003801351530983291615453530229118213272962944744555301094152878290406744447483573983024591334325410380880955378846085263007244725534966404725777879836618336508251292835020089246193932595586706112834060458347175376894276591329898846996346092187922882588978033563434838105998447643499384583245540524784804547012525023531088527355738774858100253548843230622678076737394213704973202358156212396907793061318160162951221477899008542624594398503383647360364269273327141752411503614197041100456363091020046815272638192024776529990959894581706718398314378183088096456610054535007166391456866859701457142741566165616681953747602989344536942551401033452871181766177721228706506205805190733021550365702108651828913577725084373608377339968251705159016755679458685696536609442590166661827177757394105164190690441126969125923237381232521302808420748897541989444928979139940624496124662770756066285613248556426702539359304823867223445292445538434639640874968459637716212526143525356008467903316628476126613281811507343363783119113802103977956381713301711626305552888212097871018808863045619873463388033918780347009527196907791653008301479235907054316412891185400648776339756583039046418120728775481556106174757103711565034021770153041332246968116270798995090691035385871365462523838978465435590408965529467854609651330358055300296346665349854654123705511614034657333141092378137715143201840107819109290383108023941261278015371171426079878498863993668695259790934392332534501140171410605965625253790899348026638672974586043475882757765373233072368316989063196112248457323556312535523361182145872271107004242458464373157371657077554298735176000744952626237592913935054143709705497966678263192420080755040168834497199576318199993612651210516471425591703445601813713574039900444423442185104398026827562897207794208311527065548795671016243057182203683482634705982434333831587183369652470423580778096696017264052170054206390356963578310722765239173546747940180185420973248318039015515924851265270678721341801544620681511459495740539090876461511151470730403969354555951383619119284417617680171698663326597141948749991804286192602639972690870082895264620108749478251352551244975762890806150488368043258308034759790085169095666511837127499114486313828788757778453199180469175916435909737298880822257820420710880197906420387517146789900427203986465576543391904590658724379118911022310801875806027914741104265270615285150823018688958660872206724239523363789479436025319602504447142409667534911876490621935108861266154342116206652456646215043015981977813875356540419772656222792520494129148983175998396647152974665194940382862206750834593695105243941982432103201893723367575859516435821620958068481435909832817584634042229515630891038071780587262031108274663899436083539470782149614867556883285807371880399948824264573132373862025579850641187175608816146978581492718370300434977947417143056206666284587169350168647161633633950161563068609607914428510112172831786039709279604200304678971821826792270321702769219034166042264624721342902601505819661253930660638328417323559642686470198725533214735432160346028467309270438917281163845366945436643231502892472643825332326203031461020215371829714640971766914114442098510556910343003214865215115353569408707702904191301360811409069415251008049227612652396369150683693717861268628655472637340081416606377566202237206829886380968696834928833756257843865730051292950654250789670106207993207254436464023530638336017618958855709336962521982928730357079163933893896479575462867304688918770773366974847934233825696876205060619977070490014917964422356326948254918434241404593801736661422316357200456477815658383728361801843008017979270107901281639971378637840245964811557508557910253666454382131494101117439035549793427577954807608228850689899049921965962867837751901478955455263993560747221086770110059795798697780610699649019703499448542046035624693259755081381665036118446342153053216138609324217924605267188935843682682532569739311391488843885577896281104678841266905009599387819719899891313846186466838036670192580731267828753302146781706818973136475962459364227841223566609444050984133165932128276103296871007046533085752474585460940768552276079941299650295066727492749285958611358423544413999979059990283945314674783538575514221535674893063917775271952870144211330075618950678754802729409952031382815395652958461996021266706154399654871635918152331562841581564075414339397539349859297424733223206093362323249085534152556975266293292673217124874113585341456737711713598813623200869170934638531762522320711570739080701785791227628185162900903409661712409251700125077030208120530294930527137529678592399536513591701008597519346888072862330962990396806810251733067451504110361547030139068169278081077126884710047710370214975749191795559699260482452318678278758669449590168138755599568292298240528212844077337084858912638123381409526778428972938494797222932037821699816711943397675950504113734416364061143977639073793212724535798503190922080861303714579607024755547050493561077226059520002465588495322558381064485465129786157340567485804807935244826788263385199196781324371427386009678893250107473800158372115351376226295751879135766566781687794704331983610850778178682245484055268744408062348126965733940562349735242768777272392988017934255592359447573816662191696204219166793417397744781151883688436529449366812614733655233897315318034166233049635409803838799184711453982208924348166526357927590126735811583251362671073951175009239477168664013143064956185346937852562581765226141167999875245608787690999396679700701821819483680079073450480685975057231581532768046384405563042469660835324357484157860507052210395391269092507375588008356151247464850365404745665364240270328381487905749615906087707455659669080196551328998143479073566476340312391432668398371664198329407835308931718071442556562340278099308803552758610946578040801603762540906616365523882971898636661982715348741551426640508360196182222733207018837391738315979058865449227670989309716760310784137545905591562443330062853975056577436221682675651051869334690548247602899034283567043067594560067628535139823594885517090705634855546308298604472494457290966063486611907727140679942887035066775251471506683333257324074185242239160147386105096662641231482659631940639136944634364958642858382743417465169516296850110537397844188710986981064219855596479349347616450979767966603177231828615015904979396568227569120827937496025645206332481810031085993719694614176974752044382594270052854049200947879909267112119376231345695486971244938277944586500368085738143343642380065448446737838324418201469632458676581325317894959761903198037489930469122992783848519180546239479032455862829554220134888813727720411367924373010484217979775633041381287599008497036351079460605922833993741743033085441631243225108153998368663826896691004069383886298288804515668380093591284082304756220549673941203076188899609751745167608857609062119196883930351501746230783795039064488069924286943043974218697780946794151948535718162107993710750674369086452854813263305889726536626516604577098655975899669255718910994900665261740555634126224924976653644966324518588525209493241581700955328687919633988485664508169876201264962580175290966959029379329536274097923937712890560489383451097254040297021373912769919312906192185556336268448882530444399369259160762791078640102371232046806938882980146963178494530357376313004689651019055600268468065729890496178148991462661351632284288178356442551991196547802767233646626326853595898908208791233395877441133620751130634819069316430777117347246945561358423741629707495583130604507805969422364605589404143311177124509034101948450975465554891834050192823126703374022131235292136870138390307280494146358075599544513523643775624182724024744809878715466676138688361607272649945616169639249413620931165638480341636719433824294225274487621967579407258679711670108126824277008239254791684272302086590525525469386191506504981435426730916334239331530278873840200715998033949913819805140418014293476651266633402948474914287029986964279670861837863638321644403972904360999113740776050043303593559738188592262066029741586581980081021421461876651690693668034359880636705653120201779633550384815777933923321198007993208590351508118408036830285058258715643791016127035772479332219204227087276144694352119033354892416481379630009976823025875070067807659375012037003090508100618098194268769903228194930610442851677673857575873238167258878107858895813341983486318007672270102708822449191069915111102481496058879384070744704691569616225159811464915203386598985419549531069884963904125647572948745726357922932163862937689802826551008550493181912190331533092018044357480967523688015213028690226904389389647182027660753090689253181609190657451594484521681400981071359558991250400402122151652551929984761209681481613149176058137698895310584926610219344790870714044741706250299184174836625491977672642129552623924670561470181816841659870152606199081769058467044984190386231748468879523110274791739685031507030238474575476488660834446386845583283169305928599897022412062430235643230097583764837062428528588365334797952373552984594922931139492033202002344654491291310664728898381728759966010401119484563467537894215793744729268953707741018677622392183648262402586448237364839231263647996154787698356248228900439792014306153223488291565746089950810066434710183670224125784440453089744105182009656226802151557994700724516204476515569828738901819065556221884679793402445731190890910121097018751274415569337837646571195452167502698246572693283755966958235424883120618620889830892540452173689606150791171005758074769211358500084437293959659386020391429948734840003060337212019076807185060456388965414128837017661052422013027664779865780323856504610337678710348142087032277845746166643840552887413632934040605280919826049351465519219708333124330344127988866923165993331426418916765254685941429072970328657949521825889646099525994058348766762412867387319601214414826846172682942511859028089356217488121209269741219043346825793624165670145399860412480810846259566820630583865170623508492545458373500819040872062344750087839635331631949210209255981043106561137640781688616264934226616114093727751384420922427580127863930595680779551508988429518082520668676390541275377768382716748291758926656573094907701844508267779159996163243412728314953847741882001284457189416265876231727960821704957332682957067197001459664576663451478158122757970084726146448014351933781344468599988745706211384091824357147293451730337043161264903227425826887497926330017464242163875128836095957766289951898558869907884252026846522989886284815410681298620296320439234139235347524985568089321408169560415161647751096498452010239687364755578312428149173176419745414276604883534980884211313138439028746007772622142560048586438166373396666277515738666555872324285511628507589386343286775167572542727112214814617496559566936283037182775658387869112462580731458779035985887058119185062642623136251775784953517853251567344247065690708937973571157992430076031473795663934056872852892528740484854950318358015932289928957934393273771032955358919253560408228847238523885694945162943526499682501851802920104229359395685928672877573946588463734670878359129764827814022503989379208874192384628915976848247069662136613191754599564213325784357850196813036073947255190852553814758190991113128502337956176119680155867710265551551085889554578463889235807234397897489478164449595417208776382593292756371333363951687845367515676389671933185619984975963440414888082164859297899903942180825617916022109852322878532797678887174137181910995522305321849650245794144324700171549394099748789549128633430210622152460505801489655813220399468161998705491210124733748155383617085392919686170996630089066200580500127420193986476124872090506719747795883727634491574744906965392512451021900087353595050670150383530181893719596384831024472254461915153090133872999814301469542129054723976048976532464288078390210125381665258483131630342635739035559243019198343736782744284426125532186807435224675588095011479421318052480685247282469667044446742688432871674410301662892742038510627645565787971268151349573067447878199855926338140849418669735842910845590364335474142064370331630424189185834463396299764178606154056513173964510632830703581593685177389517131690963063177553116899840384587079052358890804550041254163373931015397307174071649450986685643031660689682601711287612103713958840334073645546379445923809891246279842772146989084054497938810460661381364055542707310857123945375057571914981575216010091451875033880595292192155234613044487258956524399110018221137374445702219514713676845846976345007815680732205309363902039112739912300486370935175946769328723621642213925826928938145117325587070343465322686299293146196864872797948759717180694206223962809820244114782125370311072253172168412889843851012295759520609232527712954486151273684597629518716494601622978621378760716658600528666405645141022431612897768269846783855481313106774258203057899869288009530213954495610468875224722693334100551664418333169342017089172794513937494490589799077498325430261767208907517282304898975396146524896807456501798310442130563579631362267435837243204254445968090657109171708809281418450026212698018415192189976122874060719043167274677145412829357913592777248224950928362397823526648825405350550928448020745394547995286421605290889591444044113716075051439072257394755000927163733063760927721171581516472990327534875650731683612806255307254905924072747470213723050123074341787272477782100767240717508944194394839672144832853388249907440497960195898158024506881932256440786456235230052984934738247236006531517146376647220592340147941282319050572714005589340148640082158282970362615566783318868146189392650937946230205099848391175940049017819128079717070666944562101974069832387925070516182632763299901091474022045707974657535073551472811809928109962494344621532971068366830408448788449108843425881978619233761781570109164431158296840781270173371008212241159488684160830966218259185503182685907590221538071162727954347755456807118002112169748938435271515638381033961121093733927140170941190913629061888377683340527622724132580600350852969613397156505306837435010649443336015413520913490948648195078920099864663109212529816627620175431463304282623413170593712177135095613224340807059378071333656025379406406863501642837305491386459682681719001546332562680127045922022574764945882275789611505687131050012668025614165132889839216181934197389599967453893520717684810296246241093957530027515959539750796977899810794452553308207360880683329220319494700162799233339660596426768996422181116641227122955325250216648727431573577282560773165968431442213478913468312090337975340323015427274274613556571344593742368564933930024777149001834653989430033506511647833488205808689904381511164962108397685369565920417673130106720772535071767270248587267249908593659534374766040778538611478544853650602135221208989172105038796700440477109020002826510017634369265868483580052477393424590340870228748803864953873955623750276243965778515118892384045496858066937213083253988959739232049722202237505952244573729414423641047772470934675722486255273290414984537692008777007338652180447905642713104693929419929045791774333137701411794865538882387357590436843503801562362274074659925725921115791862295310585300917699395670573067757243610337214348854982436691829115118164563915177923754205035975804820115009627201371346252424695161456166582284718849351805909465115830422235814177977054770515643257161940901291970250395749706155085802331129828646107600482556584347960616799418862942678577391906330325212009075013667022257229718918409089969518688072473229780716799069402741237101875697363169284746302917445329383045065530787171734122643237881405053488495386131931623741322503983504739997689360338127638463202151539086971062835110501602961131245034858806628181797670790533927947877020756669904076683120549784084293162675085231252856792952709717687282186721571936665519367590183714606000607895909455134666863900272352156882839928940777583567586178897705455115980920538943802542126285625283130403580394997850685218872894921634065568903375950045554317522570705924929041202807659248935182291467724852542331789994132987336791785139516924672549404216138514768173099909335739196711882464216975246875843102204758953606016892257170213739556930397176825001110953737402051543106174351941582819077195163402381807235681505824706654389261233699288825190099247282634033267892775518231743766031424514352852128031349476846066632426274379940732606951567427848536044773154442082776817583644738135606665269625980247126325563117972357156720248543458469388642361252640515412435776448609903076978310552160726825396759993592406430126180130541572904509882424517056047598856236383973371661510255489699201485786423946253145755300792406011303920085756929167071805355071157200993452158476569086138166897219105916869068856830838053025564006883039437155385157823409435789305333718340502718825521072398775759331641123838128822362377568516626502206770825262847523851722578812664462236662008741098322816802480743075545351826363490531138182500244714252620946357436215494604915132235505344409377174578846946748270980401334158698921799062404393780023935941473223161370525593275800866311528409674675536675165836060815580494711334585722926116547928182565924728263413710469890276430050290325199451280962271024703363692197343615101948634515749812425936107005588605697418847129186015010791051725973610796540564731205098436226844094706325207753581496851186525711357462689153811366684741301212495037205621590933590326844879883103816639696498910769934728653646818937881118122640270674533274380626637248747904638092278330611733263595745892044756607444569668491960848891407900723449452128234783893938699968832318487294690597030903640159049193771680979819416090526782340612392323623209913519904629786244339641607692363528843388041596374596190637000593288687599585599787107171814389968601323373562980276145371243042750633414623296682065500205668690655718623526755515419550980088836951524975044900886515898244633072184137793498099662428155799984770757702848129708985346579445918571726142879103040622884625266120088691130525144018027177856647394566166350144828533566876172118717490336905860273394501077841062110783701848375631491346475713373741949189389308557219487625421964309753820476611138418183322942094067056760613985343584425827637584721718877083629476099782916839245362011406988340715144962257027215428289081472769208286383288778697571503294736973262871042519269041775688902261037387646718110179678478368306334487530855752554251555992344749463244161124027435488373803301857913680588448934877484501520294511650944740430873572523299854758557944227491818742371272251444396102431878831147928684157362939944171087991506807825730008036995995715105610896573012796323549413153751001172908306214567931890591625840248134125767438514479175040398534384164007299250139844012692848190232769945679211193848828006646558621282261710370195995740849834056966814512650973706863516357746576670495928890549592748102437096235917712860760687508468139935377510404692783540649418473616900893080491482938705374839681707770331712938196689304578185092654301686912874131795311185908162979292117039376687957623846341327759429958917820808739885875658024009547632529402475844338517856893779675123201629996867566481560495221936604159898259156482458538169137818052487408938367453639565332083820478894501298737191727822961269108021170712228236869156658723705685219614062868728530252812917869443099566486367947086656167931303314493291142383585792465436266896833778415548462416308861880332502259244211943552281780242717106133715298110693174661941791498398887889254972288026060424254980372314289934307596976157848526512014351899860841233518672762788395760276940649808274948490336638546903629462255232772836043069223747665990445590291224207610582466166811600253007339051790890149336128695950710697628304163637184737495679920849210218617332257625713098925398433603499655172412042211208448944364264057526354181482436997311599115115860773238909778453547720102088895499735666353339716616347590365953032821659542185395460015742450845871979163436652043653208240003591798312747464364644762215397485960566731772585166428484892800949700912526574192569106058434783431866395842179524364314935604984153200615480642835338031621333413556660146634430687460632264005875181942262529985624062267777205989500324484646631387370393131433526456262496293317716915610594934122150756408484050988981609005753514335208702228184778782231139427325115040925274805636759147318419980476421276827048314654458831968338127270913953012378418514808922523277502412565375375113955708367638146907636068207626629374439608360482131628252605660378805559703640285888357609471235141097775631116791126385484979707473383195609394538846974061541066478174366935154723014684686969280554804334171630946827121671712182671532176210305817678846205218244635830874246462165319358758096993609078673658869194066021234354526739992252992526984914859850756747932813613228111273612472457876373326815532064240902323460420272239148760995995996212388746185134395773047920418340548920639590280780328820664309108038311344235606441285259714024608704183126841273740973493555805240373116270251161094323213491707802490155795140473013546250154638266331175664102047630694915477871480727831025565271868100515348458381807483843582516456679621446579084143764955211280720112264276875888814853599956310523739111363901904704115981321752823421245299631103312722193520275771392953530267037462500439518243903707715037817279869560429656591634982692116826655279477415023305759672238665953428552750563675332581424549202090423089234501681856918925150027613580597413417815774838782493731479429122798323530552227984943760764724681569887841285125961054242111580612642012059653196602346701242561132586791705081949165084440668637926103812754821850394966045505559877854441258052013302991054000963326472181924487612853985430715150732448231424046732875416566517470746639571563768876772466187996416849957347524049874869951486358870099257343056888727958199891865902841462565457069623242140958728048366744120842943704244763593947056377058350698994820900089997531567403710727703584409767954796972763720553127373835413535906513600168365136789807646049412364470076360698241296120411298637764391357868741811636825840100406699779831549847883413197803184338504311392441310569507365502245792922323168107130785336980955388339428720763320540373580132241221080590444320833876955916583096503807313200288925315726790902757994057146015366766061476702825254972568971067539578134626376186660672827209391838943053268373665366378376572354473418006954123009508665364468153921135713271563122654838644929692753223129580525946037995456346929318179097734204225602482013950952085297070805976951330459591979014733514672323197571327513558028227186467347754720105953527085591753939775281014225842833741604041473474680662172133371718510462388829277185016629013529556491346499563876303819600404450144964842685096636008037680693568641225411286377445161632590003306595964697741036349172108525000117570640859963616633081060760998658657372461076347779262951721237656588185432777545448570276143850132870947868500025917111155936234580792005600628618112956479479868521536018982331705400665005302510616016057330923013466571584705904887993233742023794934936057984452642357396852187720180958925213872116204891293639926891291957055184940096719723877088759590522310806114096267328197771146877240940327418003257420518149348475535608627014590589738048432413861169319073497639436119236468689518393215922061869957341315391419763680272447917566013316050589051036476261935961959104477528972519655179945616399278268595144831783931286054270678444914407500849588527395496807658498946957638648210764477488998609720952176429720017908328045845461423774771883745272001741310501681109915522305520195961692655635880839884017955420054377740463610129826997279460929615226200325576653320469632565427243543968071888407247376908283760143169913217627205755206860666457934113802008669505872197741352153242052530452016416836389661297102686741080877867434126035700089717067614919288236987936819330083852604517172085702091310400732976838266802508503725265492468920910666186967966972103419088853126077511394429138446087105054469609495489634883760960588582449248279140247523010890378679537119677665095722732973939668728560768574482303660333553100716790361331291504849256212673431033505748401388435794351787367812617803336572023157911600447227962370150355366811857074795909027278656910315648535899273916178390407957644919681533260461775592560831296666020044164383005432568136886913550223047236266927267015243736523841242998374035104033358522905751793924534948558027188359082870062638304095913446534846860149552162840830814940301107064044720175147483859575633732247324118956860208585732048955783329014737132258747802040730597518293844689536379460004808110605862367322097517579628546690458337133403884794498148080699845118680616685341096837467620398150796932454734818723903187469985401034745513041511209556848051198722760791620338985633763550888902292237155484051962125043111721892827753847889532644932752710392249162889487860232213097350986241614010721634740978027139622644118588955469016646402536262494412699208565891628950302860623676807901635755291549624353428528350907824606005789966340642594373256894331050740792102848968360238948384645356033357125254199869454687059814223016429199384244516058089688856053173934965167929265697625543279726075507509454335069469907934399414501201046713555180972907754970980251585625129913171556636748054817460646277269878609727491433080809021699868929665950716654130930295567465092599574211878597440439072397816170818018038589889992225177040270750409327222929423207674559460240673262100908412168885238883847274965151983586302149893172558921699786077031884110182666787115974072245655488280294066022038716202736120386051905205088853473329318292863545649378103435748007751862957123184385401841086881859685155486469039404212380396557383463046595391652589360568123623699865698841901701003098823678468478889141840461056859192043434287018707624418227121037844839463538905606483819553682170215713113972901402020768663622571667678801798742795448710725187647370577822952915106211757954331574141515812140734103797384623866671699642354933080427314943974839912369878868936960100736187931527115433209142718047446974172310065060229082705506033265969506873470083723438673957113444524395011049392490671640534847350909964916740401698688598772329003939875438210454591863394358278093184738326247169999720397886151352526304985319156280862025949753977628535162178391469741985364470350222290077873698256875815996041474655347341603185617885333768491525920112367546929619738377798592196926964786943062719865289901728844753887885864376306704045675821316470737754424033855128607620871419840604950718081429355070402675173047068756635962605899688365524573022747149989300767348381388562712989489203676456215176754443639905303311821012043427230491035228943874169794205597826714774668659393088952293574431675099491753605616793290848457298691231363600133137261503176390855586025152274629716804549271017488506021311432519264148765582912672852922439304108350181528778703331582139164345075202745652635505268631987769876499579580238673862553090809719697429817204055599401508692125536156827455762168078247960181663902242935639852022511147303924868241101642224792426164720954980814770135674808988603546258481783058289990880193620157054583627387922200967263327518440880302044120704344654128708072399344965445194649119299456178472872988150953716801254050366299580196892290204721740988681022598971296228473814708804316230035476023377573843767529191071845962859367993179422534754188454968604371788706281712951045062509834510317159698151368534817175074157547361146594772117300590301062278244626007967195120339746589439453895144671025655318226170414642402157224959687133951291158675652741797047884733339996263677019094628196059680144103718836858024361898578439455931681672178141207004984363459053637662965433381362377435546314783506793842558020275689432827874239644668553416318782253739600275952315849649954284017427562695291748931117292172812247527178160818447229619719384820562010101914888784807437431528402765691324267080015220490622490035119892859156504701044597082738700763094183812211661524042114924560161478204923458180741491741778048485245759017421663607812913856196750356155184118727915430976866324882316616293870949338421344973289433242762799399054189055106526461565461471945438471256225835190534643024800486185281123117620280319509481427147059008620341427477674229863833468955692843119019523940474339423867228754698641392934645759406776292011968041609971756166118563808145174228659327050984110078339648936103321234643521526321711418035259804256553932718457344757929078669446254663025424376868506227161303462812919185075078729386962814866720961396539225709852651373412051979190130321601333789842255733715733405531842108494240402778210627827932899123841629057544387238245040392103475320250910221165464365228200811584372553899600860010273970500062350585296309478096901192009228109347440505678977466982383429711110886810018519231044337815972281352920334182270209115737913427047976300558120635079936251981416590681065685362231403795635376358832824420170214976091661818938723847113028522335046205622994715843006086800473028356149690193432390362407116817615548505526722010846116261626364969887836683009883070510562692738503116601984028541766320923520839225810728472237720723048978171012984621724148955627102389368242975732258796337093469919327906327852414377236616118158428009767617021751917750729402425082995816205198517283008530680980792042288309093943867955945619017718539584947284473868613697077042019364743324499074109108975096541397207274517178738264139520999361553683108201957676372606436741225044674237521415907776303683862042550470041940598893790195362672919611376012923586146475599305152518791347814182588492672602478063447777151146714227341855881190033901728825649442223991804110288641413646723247730353470182075820640498893008870524751097255605268401933172398103469064775870889963537259587438753507024836465812293205854004117038696008867538364064744652465193881100881194258098188078202120494073733284169926482449329456947710422646399624088121990911609893983483237975605354827958720302529193494587485358120419371294569826622185099976810211157298701731876102551214579991333621974055575784401717234009149179519383468337295392496334686005316426029573405645813842245796364192380877598250970506114414605629904093016420989337488754937460184848223514478568803755441849113583663470087139995608895641060947137366315805665220240085374143213612481301309995057983940179453080377249921696355316867230973164657585755831840696259070663641486185538174513931099284526006344227863988387019309396375487566782858752014514402705032912200752236783148666969143056384869880363421733712579703010568142683913600129981992098078463650678635104489388818027653124034708777797812782872066895610518560634658648732824298754398336309835272520239209015546500605633967312480575082475494250009954496234300104019449359857731743938536074027653639574108620470042592169010194144054252696586620405165427124721566874141238110654418280938430450349597531724173808083167936454003012083076384913333924555817389577010475926138011608103550202859789572980863413829565942246599936664285633022192288223611693910627937670540556813298236897888346974996204950302930233833378045735528438877264739956450197844901088044498488102978184862122936631345034274350577224513729040364614235442055707114158900156187128487803366631870649915870221482912359955578053449886830046573345756885496202856156637586957640093252806601668776898367826219344539159490151280573076271304532390114209909235917676929182494441307569380887836181593118092642140769235629036322534514174937387056820915602591048968206373579420875754864896786369951053264486823228059963463346102039414272040321806707806147203851924273597155526486009563734971365681865223679921558248061696813207660664846137973734752995858430833334474228139922530011452745020114084940771070777650557823366567374171469065016093324144277355696447541302151998880134897401210517221589340372730096799416995671742737377769948382583152553631875292821913243161291108563521284819950754944966966919856672637777181730314917991045113285180055119801562725607328183847796656352647943946947738127049822135302394618453381381645619255629910494636652741711520672266077943105163094508668161342061108021123551262661801335348153318793668502186460598250648208974996050279080895633102469389831272966445268275888317304647685269532213752855067946039769287112386684388351597572919698010375716902703314279395909034579891120448348077513732759158190144579430524720965923471074755590207205493126010427341963950414159700020306352718288841628785422484606988177678125375599818604876869704600401110913519459882568947887807579686426208272215331798188307190160647784885896322804211896728408308802038521624838480350478948679800502743842722983412867772356363036672718229664350308216196614450001750647446282351348067591100012661325155513652567691041236239271973237774060429916574413272754204140465235268616611254065814194348992211909506057498593180735115957272204412288522768944581604865357194736356204760846572770903570895808739578534119527969404360600966497737125824432547566894478799715402799929647073458824890423222835848009496712609630532126348984662503589651708098840539159692753987350881809591868996238023271519209135963029392992157047221945853298286350834535108467185387346699158765613501888002135299511333899447456520601611644005920528147948555896807843312656440483359185858116989784154493863003510291002087793495932247308729744420365198285658465576820569668097820575119065149120709944392478070419577594887763812970047354447635880248386337368408895610278326001706678012242072786007911368361852422170387564042326890519395679944949663400591036734610527148857696375396359942514694898988679024698994337944157091277631966351130613861216430991336358878951776029567857696826025994986196423025457908891381990985915546287050495034392502426599234270791809967372560537450382695662230398199362108023179457315869204023573676413816673100788891117723681642916334065653410713118589400263863619792885690305933005714964773046780793816732493368343226463234360610739825868595396531118648334762977058429662742280450845403751652204602151533632752589199864374531165108681890164714104815102333984613778957774889268135786754600467412020628329830261376284963140370080561901151494693932845598460639891834579120097254461832537524705546684717591964773837490128357433753775946529118842097393164913258040444456095768245324577747560492484222420619855356377854267078176144616365667909905887985878452805284451375124974671819579808563475203451353423924740158215355915053618227440416041930285301204732243701177480899335340336346722205765029157079037751137584178551607905888811337122268743784519493928216094097142529024941629791268662757413143531232801095443519063989638493901003108109743581690153154243179337323226861369792108215922912321945384267489018980511511294470203205254031314982920303014317838055709963438604652126638203189443885835712541019811232610863397191351246586938618093074624292658761381647337410282181262767722770526061930510207917298669486371939960354992548510562733220475442207504186667532084551417945148063704505965688885646649185196223294685185110113480802769392248735429633610771324023350041268464494246108719738666483616264290085453480392789875105008194240329191718819449614303663375147576435153280838351087390233317929338648259884156924451487390586707602581911066015864856742863866446044582686523239903168499875209332670271586919770086284072867317270599811041224857816773742659516336973414700524972581659688349854343609087707906058325431546162423162266802015468005445393148251833438562782157414317521576249318536507009604660321698299450770664765392207560166428439327114720382510086566036843205288071646608167470016687893735459734375002962703735154397711384093509815520167939439825955090319388484632730888336135147212390133663731038659087433433500651839660782934969968762200639285170357611101064803248075608011519499780720076789064277302386694428927271482280678308861130019893676321215726495930975322022978343893020205026202561361812351836691041622024104125719829553994200465733388978244710278116872071915390678521758368657501200617746403938618699490607435256618672131330479948194404364017882937707898161546127401154393171614120336524458336455262655532368921372093583907184836245674279254701318100418475314787548072147683283520006548049902850421815140240315550504689758857061952490302503939980777733397775865482359553763828942662103410312447357710119877958279858500296300097615423883203292072221083160364693952438089141263367720290094499635914065848001466203289043999206740083510419580191973585551624069266378557644151800687833072995594984854318990336064647052540049569102670737471834211452880265026540252010873481175731682425242465484753864985648168976829963969712767661186063432086691342966210232705288909413084509579090182187033956843802501225687876348401731595611049215632576001807656333228966483091892535247671380615558231324122533310996111257520453511856797044625430718421802118803454396065583205912894901053865923390308298663436566246729544270118873432314693495004999231387480990007367545061392394655624391485183217779049488248707055452019606134168576679007226170675312513322110881993267003292325271799183387980812410417837429712950782900112737147610555852944553345340143009520294893084377501027645932367407685596816586085146573267680422310963130054661796757118866537377543354006045924629175458167753790714384126313168010363195744372705844265100943131009408047522325532613928358645297077918109529640413933860951912708841534909980915806555250258447736680572534982001679079262130086707107506016877910911400554234244676868523281208592178359457216908420511822856825200213401440586548351965996288101513041234463218747056036186283034033202582951986801016578802261228254698560156512892149871210934366447364205585184735078022912712662375897484359826019782676985551208540291235811321280890290620578620911909322861672016137997090257468273749997050970601960787696903770710841183248977027982956212552096476820067325146852909511643244994939633296201454211612881192200613153404312949064880026704557321271192444224278580950894729877899914245795860576440788544698770522234010323334712880186858703757726491357922619542273496169764039492128559600263827172176827806984501861846529521447849610085683725647853520853417730870417929461474674133973841673542219893556254008775273439742319957761536057683129862686731297947955218212507426403021305466865445302303925037672140771152778231370652540251115744658386896594182071749918635010069537217919576022001506996679104691863232334648501623167129783192484153762099695854929618814406332747314904081569862336824634669974013611356773215501194642838727648308872011883883033535629525241909609470052708849441207127014335366945764288410582176440943007944368736629166694063762966368496782228383908687724658725264158376651695056717547520667893878316173883175524665641836051672726230773682791087869288698044618245594014720007177064985468665273086027272502687652750192188371317061515303790307325261295959266097756726013231872371582260551562729241074602538340799809641717943899927443569731796089737256133572777954792136181406945029405860962666824997132223400271162118703512726859800754890536413798959656083212396355496273558809266243743802777741022449846351149632432011342912629725290726658962848733379187943203360350733050347718136729476626073001967830884893058902556630201330761603061005866625698248238928130697417853470991598742220351594808139978842276888406793166106629625150096594868059593063323777930862376159718957909857231430858260361637386863669440293146050861360264760134142263981718012251539532173008878332016770231106658184325528413991986145677455706679416365274301497974818036285858176349419853968693086281293721340085168723574952443264427906724454259580303514883632180795332354431444900219778336360876395525100309679543267575115002905869476953591203915165975657485616154743775532486026593501021746192646770447755828533149905211534046097795438046945701374222904302295874623907788543483104811858250698297410591590926277025510783340834912733835411672194104751925316051978769220272497952592189317173270162272703664930160772138614224766287940194930073935872374085499885963640677658384363765099013786740618044872826121108615329176976716109580263963171707924387122737259883959805810408055091864303963483590685130318939347009299528411774881245639883233636594251429250137878817419442315333361337457379648269011342082733783137434533226594569859663214570444552784528617044202271459720530066865106903277950073679616214240985305385628138066030502852861659271596199877933303390421763030405439930712673595328104584025122001411924119177368425977913158084328941840691695355185712423208509254259289256000292470531580056205728965828920776063691835338147957420098096800596591914358337193797440419708627833388942252781419628186853648508323765450971006179614408748981152949072575906212733216145616604444528875610234947482134649741155424592644695401741571388433777972488377499941522966867829176875844204474150022785082468648273212126845848307907178386063907405937044407168178547131400910931857080834531990807266385475372539861279882855663492197780656501775732269880093607050190231685527890094780334187109471998662138107338104628474867233066486854606640102979111980390200327678764441723502044652284059305810399077506226285086256816542970659369652603930999300335438363592972392519000629082749845979433174075784526597925882516377136543214658947265292059711876255802928821593750135562060921574473679119703706046163401844416689281953272683400224086423855227707791219026739820418218969987171807982015621569351569224181064122468478524767935512793817906704694389162258348771609803689676977504150047282195318367838705565905600781679165072035824076387909482515701828543336213784334307421508477380378168525592577925642710016106209525323064205284717124494354825909471731285190165625982198448008482949636092185350773343523923442931292941895230898767311242400409181751781066718756818830664132771038463557669761799242354209811941862538187310592075818141747281069543157547179003982777478377371479806682902963309115486046283015562782717585854751630516324202072223550082751565641794553231089708402127671737492533579963362643511546738087392109082485008485475875088443835248635747597851998105444800076129915867791045043844130365393002277059547415234525015790841477568510972140429782170945784066372446345339298191546831702382403659467718356050733592292286508475108179989072473610176369583834012877229185083127809276609268346074630437888374190681583430247629463916981458610127302950820217008894597542921962794390462487514641097091599234663889154922833610855865655239862545444669620143423621270220185415559905160231171779835555725242173315133902066977793139852480125035721278835705669320648758702177185892248674187131089677939378236477367726959100701880687173771905659545183763891336944802517080634752269946791660215312816857077202229603094996473347874110933568106294195378726945845440956557403628849057666078873366103241813182997628657188805783927607869354638949748792947137719390752210210365426166233440051893894483059811374747518728701729873052445818857245521948705747712644579158142925374162467054255453242109626166630883339355187194225499564552240058564235163905845773316761978155140105570616055747389146522425934214510860953448804710043157678158651357381976931696493546231789325190793165811949598380047793285560941368694467549920395924415976984306074398800196440178670677784948627940640097868104086733325970493370297747013683014218818517873381160144196144849358423942546291362662699086513389650566215229337655846768535819723813473144012797420892685578947811412292249914764988864648454933424543549036953620849048879130961590072920778568062713332199155579753201691582223446228248897036098047427039405871233449252407130128149279793808075656152128754706771836891520569066579549693612820631041103817693098728394460048509571022740685908897067141062640858204359316991716551584748298370818952576782148145801381290368779194078402671801620445158433500406662245662919461539332239631429555716539837571311440518293411094896597608867175728022495096145897449431821623685673133351389089849836312067238824342386384973067042829861993918930554777942102108269570634747731585500330789464268893268672691649944625346681150393378049003415598222625109118694306792328438842627229645386380639698894243694348455861643391781241845345087014502164258129118420822026449975534746010461771191160089199559109995421408554348625212939173780125983712466658976286104331082038847287942567011896696119060143350530705858040772272765417302214570657985801201530862232701399582329750296866614286598051402278016391640556885539025796975113162376732107435482925315300855710115472630152201693585309212060287306152205840273400580663302185600187077465192427375250939819129174869949154853766173649018261360592573482922622751676043643685226439525368972817992934928201488367109661906473238669274988721164274239205112134820772532700523923133742063658188077998516659279385322561079017817934691988427224850574434431655481979503282584162737907504256335684304776910560680010435040287462522231796020725939924555364789528148112821991470857650669315854288235820976504255968513275085100654046061003080547559167720459038012038774266073719620017309220353469268948574014739017368771241685469211841227267937738934751586656383497008051086257791776820373239076095769401158936778672959949768276349194574661441818922489917788186204100303124097383230405045824213050867808718782234784515518899600273519540704940147552693218996198856374247704798607794816351258652736800893317468957228477345368948213790348261151195872151663419933201567186466220139575160757918743401530626313103565019198588851404252929555887622238309293596144376225926663085582590990622083734275474887441263596487816169272342836000686022011518786907015685852127285483870700756585788124492766795698389211019209612562524577913815181896125064389492439907315818775076877101022343849760520431416159227425604333185866026433159493821501490825931078455962685633128710898451040590937702217492681493003317102807671813846489578257447150397718909254906543546996853235603464103825417335564820976224051274860415317907347328358145871490192179432352744596921584009355762589400510773953764564985579801114069340669626990327838722311585240383474757046714101801397350722321040578726503189076948193097483804834503324112711372850049049063253417271525632864791185315597162623275296663605009126873482778623242958234284407146619053939044013556112917871223640192589550898153024627619069054824555498040187353299116976699330889289611658621743405236981217656951268244691726886923794178870733824415566468615669434475738210926015404325098265068709032653117829164139367138014658500131083881353056207577381107072341279290059486980365675716015013255979048022442284362971058931475281177015068827667331176781435533621107994015489979906530632651915251212431527714093522781207155854027005268062558454586808156932302131138767881131638926718146924467767347421721752066583689079478699806708364697233188246730119834682888933920234661994774704641750903429329878050103515983946966221372555660538846242198454540168128862226077342881331991771695034280926282637570346736706230541675035377858072800090942449893640961457993680990287939977490873821029073985052936210970027289999793355899544763456731982280065216317598656276428902511407672449854248083869162892056520163544963808857153768243858992868875465238671351006609636760452936395192363526659645757313184410477685344796510609747844833064271060820919732863847660545605656488984779646992708816626726718555920971882075551069504599684745946374847049880126932649133103478818690182578816137395031953419014089709430578078012698848282004527624653205731304403902128691192517795105929866044052631152732665590610201168505659971370555942337980825862089439218967731074607035151059664173898195386182176694482679370917085019063109194673797533974945464346749473757644728285723683340538720784006198337579089489091623703709327082801482901914284362568959167824499741445877873599378545815126007289281490749894472760070216404332276184691330134317245423553539847511847406126043582815689511975328333905860556480281936594395141907028386970759247693051287583178763793417563055146290949962102491981349974348086793739474772166846741552761666536913802475159135532461654909128178330876864062651849698356735408940540904990772027218227479290996887634839914319621007527214475639403564552430420701086247964420546602413300507758435474623902639216468721193652067433955720126314353067438344534605418355599337961031659889787039281667259845908552734473976375671449334789717785056922278089346488440292746575647707455682820683975577420375666670714138959362092238718769342034812612918441456264683304627430062313373102545713862122163028063004174121035959823974715887656458025617630326995011469006130303530075147320293965856371287265184720141064941162097242295050523447216963264944639117721750330991774857783872868573505092719979901928002987370188259699368746908936678143641500611400022550556701376911854295995842667527131483689455702390997658872150122990279919751725296655523961557783791325964030894035534730473650471426725856853841097341531026081938593564534786510719901933976615375677857289431778868098756528060224254623559969568736612713866316637048651291017014856846640416445408699895369552665168738469912432873028740814415010627849064031047864777261740471302314191167037897154387083083091482571610390031596716824231258219930782762172711891772992716416847867837172856074683145351280401031865058215782510352062075344009229159817580360236089876072163093281472179576979230640803279761207198736479526788042976651440004505382084113607582031965126756795963143023772649197994788748016758407766754782110206818916987520795047659071894936438869040087136199512350117041476443408695852129560282626952726084755646262348359191652732853928265117372603255831671707085447559216273789106152120065755453813221383495044264431621208433946910910052997246304955134662909787051658218326324227332179341332942772009623363305336823412961605761080658133453632599707758054685096652023955962383047792731969602090735929254701144944209249023065526161678387182333090422380941381374590937190956425503916856995180254410892972451293260803980280904715141325903448850700567375730325015672388040209363498539743182114054833557928017193047093165275500557872443159852857487545780859258687987877131435672972981064906469806680294611712462930413020227415463862691628327041233561740437267551769444447218605706960193063235776593421702983834744800407231344982273682611157657951781954527187917576382164550457884472514945928847411981479755709168826022895616896383886007724729897623466979738015495819877891226897032148193197831480235313538665404028340235438640134820133058832682566869004777954214030312332737954247484719714905229212606156371928246219277267879155351956754262985497024764527716290412301170906234224246593053751824916029805226291216161274603136734852730314429615107093286199724424913788033311065566865614984295257962254940067508940076173713075296700109966732355342037334031423540664917164560149023914736054117984400879075604931350343609667777883088295048670448318446088919161982830432248255964036802696241617773101900121738029662860313363563228355314092612659221113406529077531797832829983325260431132059706743764605009043700490401408103933617217054686709445497526100024823865627051334198131872066611591705062436587005235224675932504631424053834207422224579790753687366898052597450920442077610461244255812684843042861024590557548002018383036739534960961005510400785829443517773249497082141450692716643451427834519337750517236173830183181862063440166086097634692728447543187702701800028259116336937424596615084828193598581500588863535369970366651189199223610401715849236190368091239347733352998375047884384914354249856625768454852608024846323916223798126073610204286801607564217800303453001317153844420105704384803508239504382948410739361122437259632646212840507634302577495651392465313440587219165203658731296580079123194769939146103016897519599464752976694901908070142498979476255055857908128305472829429775107815004201658032077886094265574233961821321172265288582561205912156826024514978619832103260710292727491684516314384225792545778100997547480236086562792274003973675754281898340534820859043699421793762868017350078921535363830445877955799852257887720526222850246648775059937793390734503289639939064380769720018694351146573541979132113728398141683603782057682665630425504775697596746650387616033910672265347341710828643620263413684643021047748984668485337210243298374556262187650472437257570694532524550410289906671921595085002859801886599072687239323450881739799651580397489349979351245835209575999015454487594357287038491035635814444538126098099133962376722457294403220012127568729019275318744180927922881516556443192152977709264677647517591676498909265922450388099745241747570890471887112528812190967969905144655391531987975513758085533236780806425126502297857735993624670970743945165136886239750544688613103286591424056219563622445615313742692973556852432295829147944437870689855283148872557339206586207855325874237631961289351978970770662265702055074618148051181440707974325522676455212703584854187997678513344847399305215815434890921790003149214674260412338624301401513995192137033802266874469896132425669579079643329730521014816660476051198846257698688292186489023882468867426472784415661183796570893210722256580641982681938212132303680425624601258855119368251355139430164142818763292908269549605799495217566571058445952077297301982586463949575815315034159520105313825113984871486481629039814406324991543760532378327974214893974513690148185657544011351761054529141130884474469354151301037732833919143783109540132828953225483631899942068426923957376289405933820437832642463328590534644315274128173418536914486093078054567149629643474869588478441621080358549020070679694585110279151200623600474026069623368683009735644509153112396055415545559462643954557348750815237304558771794420278137078176876658703020792339779638096788824871379310904827504597815335403480595381189033013056841245950132386773824833660596631035394517942307650058043706464516364990369355623229856851379729802401139147112069265066039211054064277604274367388752320347966973269153823043334261970425902413218555738475183890437868539228592688885176355730151708432997569742687864736969662668548241919898017326358528202509197986302439634950311716236755897128410187905413045129213864330063632951755163739909748161862978248132099221909049449014528376473751690508850774232799765364836757933023963215040311297127579577990718649859483907605434642617330618979703984343102063308678926931106097813727101287973658019594678999877747243299394822023680991628528265716916605119348411006240730951495288708941112540907290642482927227200573777360748744668777137054333174380644555694651518365428875330557955219074799750215597516279742624045157868687314174073818142397557833340108962424456660505929881305432995599734253344858448529340928323008013773406857153126339706295379130657977814494851009003411066777882241259609426259940453024209885042746548405668697071988328846857029650624191821683801549517488066335976629086746808319785517375447675963254681872676857754301776119916749688260078314105783827995948458190800394029849663681418131550900600136145976481307786295407453559744614926014519626646967307280278488571341989201355788366981503813054796081159956917212863950635237275867381780691721388033082808816199317495553886022889281697796891560103461735697244177159307668101108515050442554826189335657729174953277811578784774298525211961061488982500437066184477621151526894684183210183825319343959488989533266297392573393016150430036618586632876043131537013884550115718647932368392662456014131901968216794693104777769254248443568570770636811211514010048354983457385111798709600314840344886278777637471983165427739699942457707792612662547025556514134575139671049489834375653299923565861454265726505575364779601185544115223798538475310020488805048606710701097944296879737364618758714454180740159536839599588046247583788721671900527094787195770029743324742380209267187133983696607823847905882052811575595246436159042595133513641861283568300749340348219580266093393385211754591885856017751704035799001363664029727777783564381159711583126556382323651574591179456544377314623614060458052574946871478596968586674039249563307081661458440433694063684768221826078612494896051669244894648190046154052325575482202475143867835223771652450949343816320285693890470327376586468385019920451737912091860061601704047297399531279847272902693134744891029081563796973973821894981269216269517859842708108835925821825849630867009037344820650854071801224465742925655675303016391033239286591628667771438029840566921567834033506273445056572095572540055022886596290145137193855944265179104710836781340132244728600897264543805987869354062535102367422924989895097031120678522839992696566635048192141638212845941094289254616242982337398861071889371724436453983182429532948544385053894534587721882453532749058228076603778068594056557669550968930186446885501780872257257052861111556460383829604020281730527998669028299447921805225231605606119082838591704800456851376494389792093087128805232587900720943727649065869281768484782339458501721361304176141047008143623371554062600643284287886468334597588227724533077821772693069235627953900784563748632518196634698759951897163017600872503257644917133200537079053139290146237741235423708786615079059919689243318511186902847724743328288597335268122357413687613913117593062652005850174015365498791904474813912638476738813279948124752559658371250682410926475422769130148291056387008804262361129287620334742914874502257180011021447489806495607837647748648845064464944837953548986168022725854401518922454420999148990781583013166999539147643726902038796741657636670014862062081353594301354474065488439149405406647746318131738536979526635149037676610910165904497857267102644193678933149082716805290348355450286217050592128009786685237982132739499925283470784413911888381836127531462186410102956776802525887533717811143975134321360348069713944898656102353587110313430397926259103684900758606722647784053016780056690858469928569990201251178303606963834414281740780572821251768727670149015803946325840105020490929314427474390401788987440304986916871328966718908426226366957645722287901219519465041129170023773580976564863009617127998180217259420080554853146743899395665064349225182927190573173948079360635554020521702183661742405099564863710223296083657120170997098469484935482249472711380849778556276080065066739925924130629810718505254307229582265975547347573935457939915147002688091075931317753151291392611059615295132160431130079117524098628727874626702179876745632544736274936782561632654810627384174183616295923737349624925280898912558804850479559648286247448385388523334270153177369311698340883304846170059039572090335372232482881106172158268566921757627717033139712878539040643566805536436898617251683267005643919198989939895401588458324673185629277595367457130036459815375282483975786588636150659375174212738727382517408919032944268325280201554058099469230571087352506620881189953301596727125179151572733435014519623901974716962492674947954957509356070086905051688002669668011338621550213004781163951624168959871067418969137795392679564587608191972479045577690640716847221943579874125550289887507641045697904543471834778676241377584233714203769757033503838191864283552248004337931767138243115521473976032012536972064161747913292109514195456894592708426005162112494860561658590499755791322507917646895335826574867106350726142286022037459511759372430762709036846012402009103219018274565437682390512628045344414867170272832221025201262510779200445065065571114244429735106763221972020179210200817899393161162743854561068068186181179923918390848697139195314649646599697446278514432771434915974963238645093859031159358356741604710119541757580200075821170228874852787157005477059366615989954895962300375773828339085659603408286543895699898570948065227965348818162496731619410645225459186923277206433486212104538978601150397936980092448759340809351840115444709541949906914723170922074849553630086650779472224587624914598363095593509932617946553321186669080183790771744798510685870081239732236250900449325319940330743965657674255057726769070252529359444545133143126428427403146636014032404105714316427823261451444212791992838520436115156749361738637123120452841843997781990340626639874474139630178100676985407864673451120315355372287014079114337456400319673617364461027694387971083249293389050311130251873786485830019425395571270536327431144595462017452990530901172454317305417665532334209616903655553327444197717075001332176922793611139995499640243154200362635100065568737681830989014094070504444638560863652769751380306099074643439369589714036277472402347033908273131054136616217393848560791816576840207372651858415751568832454785943163134054100845885243501251323608134823350081543657532810338612817249642347629947119131577292580688535826427537445893877538894753214427478247481274679918130995885464121393336791202904809716668349689604912270787172637404546169899452675650132455634465025414270192231503309012129184189453453251997806894051128055018316756369262376471263343659022906502462596679473271111798241997268965453814480982680267338864593932555284382377605150583065725392476553159863815214667388450160305434595120161068464121160539281529057316648543590337031309231610715147859780548955742544957274151433469042404771343880842487861001014932489734405832682705500192401168175902353085528356616617237439902762370555287242595175156283857445979772135857028263291222302961403333808773915519483822389825728483701661998829036769611721263702422600086862287604848503333250549931110487400312211795564347912587638136257319373059444937723102648923962352938468176293986389598343188695770691975180383645928648282512257476526529729712295043393099951302092709237645386870062359780717473852344668859607393288160843642783212799848359401142751581863213460848897496782645508059943325361518235498220868224353152866191522969948327557927877809798283974843741396715829564258721577578285805083444105459877566160246652359418829801306956802695198239823011178348759365717892606556083452371665900988578981469136753096598430992924065377212077823617182478485576362511018391053529469622627055582212771046578020312836482868678221745088196815551387868923728394059883086234427168362749984822916791530290697493171861102868953400922503221269026099456609565934413190846282778855176597895017301023151788464955025687989549123600609425412482378484659814408773275418571791174345363120170411178691035687743271628615535893912135507778773747365837266820635083676699359927166015130817948176565107644083981343738504659482498131909976678469310919858082459291522239147449959118892966517621461586831151916734839042208338433511879050534843552169197297798865528360544946752307287350239980463705819482103432914396991708436254818199852794824361523797826151645140708226616638346419197423147687150966443231853991960512306216150711573595044567979792185136328534768123525576676380973716091127475948888798342120790761636708410526588591015649392653260601248594948355543498828216987091902189159020241666343933782450657027154154015719709228855558066318934711774160043493417950665487674500268172639583893470885329475128357246270029633952745337148890676096818863289288322093837255157820439330570188980787152227816594570057129987129456080390857024357502163422520713078234011686741786060748407939513476310344208384015699380961861488638886694211989302423663168939007703389120896893713390350292983835980352505511805636476746824952607631678363156804209037376140836377589630363132098636354671716566356552772142633493130327392482116311469321843611519091792838192986712602021706992484286190449833836931338163614261816926450165253606438195988982701001264899215021990013901360142746384779366375209189282366769549606444060874503718383722953040606450972868005320544793265110107008913478377416014830949855510424613896937929038576730491438718384604016903027660323796994004691610736951615943644820954014303635331011537616833732247051526653815548292985428926201159484931247708283996673579388173394212377184519620526141024126949936783449833042068634995807147728122067107576333958729939547476701339236363790849933871282151464113528116477575276451800999353504535483977278613156646847126233138698845083857555871177297558167608833175351560085829131083546471707872904599324556944472082307439526936487200564678284845216551409108906223367219254132990896688352683670808360883639621655252487608487709165869413129611096719710893689119283638386796408034650436892457090244411310194231748416040684510376454193538490040987468368799514902674740926420171081610879636822576724427632810813951581328119074440334475383116785805774754720047307787840932855044287015242740992810025211709748819168527088813031538942489657882140086896287811931598732967932505416378730116596687323461143126928946277112035413606332260355340960446628806096163377881845538233504583185685672567994708655356910886399160358994152355447287856158834201168789123207483219140511009257897998713399673861646458446610909807463745408396795561385856538634867563356699739737998513901149515315590732574068181899702126986811710363805431838165165622469511074835426956677101595406409305025174212338607943864575729835023000771012765815341026944407586737781254186435562241788334403824174873788723828586026317064726726237919833662603891871747113577598774780031516390694443502132282093867579049549634682620304937570593741894239394897105898691357160684574761768428239360558575024153474932468785679581059902134550818183347315894831820752846195274696755665537953116732543403562223833102898972185186523547342129083052089159481577085888454747794521157014215369354715149561694862089201563256463732403649675519538087263122718115141408882315312113982526595633458813949697583379346556818252329243397204778787948719496132321796700488841491626297936454156871370588648118174993543379731650340704840711885129637185643449709176381082347439909100018828328846358890248214823397823078156594399985904727112338206939661808601907383464899872707296465952199974813274137661438782452080456998824126791041956654675465796034489295611466697462331747681985983005303848168397066288015694536397659906026206166551792766329490973045785403039473574547086297377751417647590449910901754805266055011494943494666255201481349235173512811737260189625437789630799411181321102820970123890538447315572203506752418514885262466630841067559890435964435165543845951784044886597249755252883017120555154552254176052786294918324375403211954844527341209673708238275938427758539286227364365566562613590894364926003274105205297988224073736258132716217660987350585167428701990996237294688394626033358329331222488907740455789263251978762215881967909112890570308457817346905150983598882037258825915155426841730474003144377256019126397237174701843263581046855538272536139047116714507196566244160316238272031845973302512267571157578000920231055004205182313909869486635500428216084442940369183360532094773487322107259079732323072612226445998588724722628806236836663634124672873769776096946082345146399650177932983501645046034842762031488721359491017315454624946999685100092527306755726871302675729039913568057157154665005254852047815414109951319285738687499960946144951998049519700512204579152160952227102940460202763934274570662403665710652413603093599613024821975259131808061145110890927926394148138040243545947529892934912856355926453107256683047891242521228996527000898340475729526922766022556069516804473299025999168803177087387224319990262180184091949551513397330688783938635643590843798004898357917690405758215967868731332167033523365168484859919442121608175838063592235826910850081690828553398429771585727669055798769354490619717961469662788087995746807604658181305335462137997989884355251570931338778510528448003131788321256363274306055105705097246680774145501631304360986604243219454075319004021301115504476905061244168101505811453596267767742502572644088411530966405814261943237039119544469338391112773202495075633125481226773950945263113550535120544358687865488497058214567351480475739521321370817354480101555472955892405520549147272046057593812102421756334113368359572188095161534190016624580082778690929332885267649194862495181810215035765949667860438497514144505284345783151084823024273230963264408264887717903851244221321653540180257768340059121348516541111485161396165908859251200538360475743939180075921050728040730713187595540906992103913821649112603671764782480471913219024862059508176453648617650906631152656265787426725760696624275189908825092885647992654906313206131820280743105737352228662446755456730677727904698571543355684618301622826427843895554050059452311727898296225885877070578265741311590805103779891236244857858888317924040774944269720406489958878187381378838395295763459889910212656368337597821752677851422709953012710079639617762134509719794945578526936189501831664150807874910651025232881253835367041835761123594086317100860772883688655006335581726166209397396498553709293416955457919271265365732302847284771720179692014861100014732559730121662424031830848129154314624892937553078435835917397749451902696992699596632627523858298420596458294762654442366877060213942906203952785473416189023352100056479563985210766324610117853143715279620195606975997666305637677871159074896489857718412673132051723279415816597030885491131266481488385325129050422050760143382674177060387132741382913111419436008761042152139227097755839001501939676778322449749035289771716098486018203659162648719932059078960265680408163217341677966162012356979601961916696891131233099607506130218418855996429417338162245958397226114775606048843539696303336719285902147625349143206246141173842211657149365928508082429613009534689378157696247866110567912646523289994035997018324974977462678212487561375271181669613677015021947148201032095842743404123938827255691542322229810163501874808320502057312766281626267500076036177878353941314795368756005919452577737697245681989413870874078365047292862613850396724202552622742461882941892945980454985745354381230462383928323943668662264133319281007488632669899460231979969157866625664884420308283248258397161951871833677500879123575180056469595238312781684913042081926146048606404971975692353060030837380634719977817016873317496489747155782928561736763418578628482722370489402151508133183686027242203839543797418384184599415985403339386435774260562357483245475870458229244131952763150487832622925348616270959937819454291145656721082111713182957349933184360229641713590554849337226159041510709163420831492167567383625101795909557306771205872338190293271395336769621267532236656441840506532005173965394515806829037000941192576299854163591714823726690113629465943988903230519624321161190677942141382441124168787993793074716885386910106736105712661849070071599694327689204442627649262452869015400467990693056745651645663637757080455518441707105603979470039729564999325944489739869414526906534922281841237403305793720309246066961262860345308747999285156638566452071124875869644922047868024024432392056279646330238696156324479104116814657693683330126457517352960979739211441528314952804155269581428209696995494272462543228567210281503529025165975757692212732220034081761812526464965459938338758032500033324154478879654568267208054029658187507752602017998997870272154000624554660418238124628523021921214773127971604400605533679903463490322862283128062268885182329271174348125732061224281857842241231868716176496181250939138120815765473948161219477653973521992322390048511263001228517971185872461316911962146092634892454200032846674886329615554615305500609197110406722172162438902286296058268773664416042762640899127958094438947796974523967985958745184373213409418185810084204540372430249350561092003517828148734889732462182265391197393247479679825656894607570161874137133416567137190533795463153120846274702303633140600911393749840519649424482236403307315125648499193286426765127390794799492841337391157623733344067284018844753358925196114402600841605096612477616642058711307256665304200260806393710344309835673819885567752167289563947842460556942428616240483643205092429926946120507638244635912887351263297604508193873321877968321181407188469111644802016509236524200689089094089915138303084530342844614986971097527491136096381045573925746821342680104881344641263747378310234077148880809214002997123773278574247109927636050297012835754629945557969134378238918825946137241512679784386721161990104660126971462248733645959249307789929492968647330247974615561567821470624925623336698787178150841437123315729458468538954816438784009033958082472871460337013089831176584488702431116153152588715740452803588040197987624707602743149554498434183070200067211739121932629974873166772912541448772137707427048295803667121398572365751037082307627208017196866842319654853173479392313844089315814574599220869372145976329496802005508756737470410290611794302384451279843519038105547182141500628125187238846654045737445341210667650448167477247493117733423989131461033552490837123864852597640983261701631313266620256334496191480272299907470006181602840754487015531048802843649456580821641075219225452284960629452034728235530841657900673868474023739516172584924157307589132291338661417418511737648176492486934430543688801066845732335548334168750273436967468104276775095207994327907301424854934775042948634365803089892519272552524871182055783247287624523992624865009127215781776178244671239554806501739905196231144565428882750069842050710328679521020511847911808011023486811571718489966424656974563986078863468689893040124288780881171119202501720112976685225196510145191640194918122565807027657954469296652618558378878594502277194004070822861336943063717106639725120486348072782631616936017406503371505661900872289737974261176485256139890345725046938420518700630411499465291094399787100093443073729284489190127432644555521206963070143716192608167455711174351062132227228807155918142302866115258070878069858329060678895497225377971228288597976949149494201406339442531153566060730267573290841759341063340088942572703906413715471208277891676232694160429720584373415478476944209264074967945069256294621615152345421425780798955765904053552577860659134563985112833283611900107720053305610206838913715337887031842428868964405812789340831349652507833014436437419733393277120507593750282971734798971995028884991849378796608010725765909480495074175035097341004243394498390564448266049654986249906122527728066202710167353307830358442257719846300735046539530997698619217166888215684282713029980906276489082442000812568362460896709200814042595994542714338076022425660824213380067279599535876503079843075903104785728109782168406286748595353564856192208310072642407701097884934340663435813055213121023600308265787395397103163482710420498744155251211192169724698923214510140180465713899343691158740952769285239501511910423459371111835065960553893420064605530495497847145812305034110726142470260890385933158091412064821977524427416365441459950974715645192796455688957557686103452184088378780574497936264482293364981542075311960717135521638013055713640423659376514910667253555127436899539521847021413324948068737096877901837354297070477389785874285730427521779435811688477336384256449077650577854850634149684588342053175887913877387858499611406612414288656343086081650235726225268443453322593146167940865194562540840340320331601085348015581826541284224835511135927787199767505190630559286950619291196517967142821903077500418277499241418740844788532806168349023626656899094501796862730527382661228912324593975677516248558361915026578580275854773768506070606324388421435904657975631923569107512827321546003666644921408963721026014795022194430456126689650013943740680495809714300759195236807176005929173731325195014851825043361423346462780887563992717111019593238592367412173222221120080339264111235107192111550595112849240401385726622272793401247590313740661406072678880354002324612083170616671269172368212615322532654709623889877827979970575528357921143210303210820247244778750054760465083182020380606953982277515930178062247213383059869567480192166579447459569131363140010287881187861723252217006073609269403869845036505730216931349358308327645818011312239583952177617800662848397414016783607009162468314400696313310699645604932424943368511026244642715645268637428830352861281126851742748700730076472527510544410030466448108132849123639397917422789418283540925082675983221138650698508682332998479825029269978611298531046345527626345661725462761797125265198101676383225818469467284142200198655390713927406183480113314461512077678067147129117639743150617672667950612769031821668597417873006940964327924879187459669679050233552663134633865857608392160508974927807979847713244036448753887943005406864173131243763052494098594809086818312107501937026710036499384621381104408838204457583119129278459338120043046865952269877513224434055264834881710498262312698526166384867906650872428872004301231095037605898599716086496564068276981991519515347141315393047227246052639568332790284227478249647269606391571144621982645467520063907688532986437691001515214527119622527179903412993253381849237922164240803749922409280903251990073298444619998333390119538452028112891315385017261366394503054041680396249408169010195082234825785313806157073522649677614082623088579840927858811453901009504522985082135391986578638982208491230050507542950384116607653342454033836869630926748971241355697996705404156539511304192719739450739773106920320353900060410382114549757390449466441920528300218351994506153360526008294847213963794638395712719177886754645764765143131616047156818776384258922799704242791843585717159926735097552017750745144630819165632581335496508914409722056159984081905810259411895796266558853759128315526781627183713249368320692307835073121952118364569652202037309774044521991904837206636102229096852441183388273606022016678314962044726531575446241378005619370865604896976881041304596905455255856013578911989734411152003304108867930712442631683616343366988682933724691304851873302189626824135315565358154744935361565064718877639440625530035575569136409605037827255028406939151665658793659473528223938802619342049438959499385223502892279346263254149812120984699884989259596910849889307811148431261602500032358755313771181744641701420051507463111919011407060336666457752384527502996550311030948784444669651475737002618313765838790896581790739623893703418454639384020125000433340885026930444042105006721192687822934480689907967100375877451079463861951917925296719311378664407626680102499867558703346383083797056609051827748051506240382234576065608514373214536453899885128427103016815633011952075789515944403975120008823757279767923375089151703073330712723133469339576237776577275150043762762088037149082910333465100675271187834312629948580414125176686146871909595176504452947286848368200313417967856672093715084019360077605695314762038917541192288774078617162066803904607656176606109709549901776747608103123275261842529555498195909319436917616696822530376538843273319938907480794033559958628487757515739132684387777790658780233332606342276785974021080222511338144496068579552400010997879327785107875527415673851696164634572850524168910115905924810963956418713407527850852391501205668752779198136308115903986866231925483325028359078102040235430128534881848409864627068575403429734364999145056744305322250959119577693362598077910445307132261247299923633221217700257284519086730365884363521372393257003669671492381846654588402357448004790847890741670806803673161440754035357982628982909188150271138788804737447068734332429981058122481901141029157513213077913328152997010117188994187442694394640102644572695354636638788486618816155635924836855551204297051490833815860593276808964556663965188341454045681075386217595632576940681403161900506175553413083541494798759271770006258722570556481220795659115280496169004155131524975519358461477600370008895341546630459844687430869234571293344962257312133615067070870906331072832203953639512315093698782382119464051248463525806080601773189159254608360741897025382540684723486747561469689153303733273399802539334441621024356969037861231295362879974729877188885340882250413764007827175590553031192003059588428959594968982041044782040438169093943389297417598331292048488195524063843023567151895744772781450086208975070372592747391436977062280565148357746754613148061858519137697643655613498271156885452062786724051860478277955850928738117284242297350797699502279492422956888735924750396499786811650938323947890391761510795375261336100520642671580431823542181398754144827209950693635355415170819968081114159159478621277140413146886351503781045113928899198441832130145664128201213011809279628745846884549170110014574630262245966121656887121620547765274534324782980991822773217024528271645916883175319299246586653727182780483256713052792021771458914631991488374934858231413679157625233081260113449441408198518777686667928140711935665620092099396025506120230194993898858641615918131078803447450902959120777984768875398898463243611155645990839746308847186733352356916212291350298303435063927553830096809271934396381151600524367928763427589182929212329237156532451744365090841487198118771010084393317859906107831429761815624749690341230016384390427532274375664279888674300998261216279955452408343980311726845936783242691314613060736079586246993513938209801672779494841297252299534716155331829498781312784496899105058249697512129607657017637180029348576375798336702115235559726473217439784399031567603418270562908503502067405111567090697997144907029611815022661905583738779112623501199464798816300903014646089077569557733163673296093193739412595580831117447157783646729255269247455834548327414336131629224359672519922694911110443782458692425415542105796115560475434221865819703602724483889891118097080089765600649470422331085034925430817004130731902166368761546522334380663673744996097907358273940674288168273196113295867733007902682937473260553957119310147592683553351583148961932795718964174706870751024411032625415178529448900568255603159415711848060682325883914326270275516642156507101072072789496260477455956585767773299859524210893181459488457495335169509164201283668773832962560418362413255434501872050939086892886132498558535711287047111862981515398041727636912152088747823365965265238804844800574304275799776251645608570971068876360453097194061025802607757565121614958233192384233275698348892788594404199989571449287091156209298096368195573203297579839203356423149385300113441055085570839347680314861903923391610641088939420422515547566694547839658144510036610391604907247059144796433934270995042571051809031894283807548394254623873554684771998934420192630896357451139660038710880086032522414060063404090582262573362434550816398649816009327003138377128332588547682569331386666646733266362204478489273366561126250004144088993665555798828447677451455994824856462967753909262205045049783520327149181244659355729204337119088718217572815006270134762864576755475462450051689831326079559175672125807206086166908179423453792894922360155837842004093754842951824191506780448525775442282236625045042767101022569333144230684871264400043534881915024497809894111801431901731656122992861058670745120907931621500783368938161569000586483467957262787457791126069616637238305012069401031028310496275726818874776657721948510182694201920039480609720597277981604748354411917048592719497992466265725140376736389303488742609413087780984009715155964252746631416557071814409405189729116523325091857803605220465131596985932317417866981037656851033485150480799013217487585944422686979128663039457527119758562628337576558780610713397495231120928304003818967425649672082885559518502128924508459408326992276772794903571607425420270201141439339853676259794488228114830220457778643933253846216304121000542312605230949680222734290362999986316034102088080942632288716166485550243905893548114861794618891267087929816815811880711853395780208209652827536197393431461740178123193125824196990505152423710489791997618857129501483352134931133821352509969026935509908921008148632954973248313108186509250932973206253943984880089274029682076134513784018257332857438714963585200916290728580579716914253701724251667359867705883089679531149727330814347520193444030913448744288028368622622163186112835596054183203325404357760717186841764452316115659828549512370216226910721750835024357237038739039532293707961124109241520848895262673499902043100468315116958827413657801106901795212451439694758112879648899862825313543735969364933238329560217038885739016233050001014864179546081582830969834889949583897413825909537491609527097387003328239111167267385724016219607508789191327000108941429249405389070912293423212632555289096815544327134482126537186271258864242332883539085076390464337983272296263465409703023284738285391186676666416880887906583787262955482408060767655484814691755547845155356340875209381602414913958580364361373464655635981929907079373435504118045955863203489325108598790921247058301378128816926207355054777946581011425627444826832944734522853293451464426403343391733023788019411081380743893861150954141417301677494910196446211310002818596859329111403353893657180626973808598013968395153430596132685080827415673474377350333735007413733699858501531704882126889319848906119867271794473193044147261170530016312081314467375315298435082948537958890810845268955480425386866905272808663661919257124395818490771828718511775689489031453886960999981157569498730798083419440870303637852382864217554294687842075639390703470331352997146477202809207516127140998777234757556616302339421773896347558699792281387142924948748802365851406054100299792900572358537323894120500371852249137398416008679053368811422988359554497402225249399860863817484676026548988314293166678939134958011787655720527393787144135130834255199558203699090255024108975479272586157243560632431918576172642323434890405433613993696390961312429124739804226945183648968828943112921929368475458185811736932449908446610126847620112103949401193438646117475038164481251972454143960879295732553387809750918857292680985757985980867247970605437738446235173961789941421230934336656676400788428679211958803613619003523211339519396940193452347068035725826820388751973297390038406778574573885679962414073178857515870775914428949757891928267313345334177165364079124316876789846059048868713185454747430478556592895069916634988942729763087520044292675057871772193165078242251891293026408325712933602858539299103063054824949438015165775629863500293145937673809827818676800368998167372888072488951184975778699465667579103130366058448398759929081203145158229157927681732210921601548223455517353192901268972164198261751757741652618960771715551867282695806645683299721439202839494893954600735920307551826925266976283682115149650157873161054376425252249802860936385176082570674550089222837553299516206261663133102829263468636055218818348134308837009462161110781332323607368976240722353850013615984486716500955370225003845618804822327853158035913350990561456496165008994826861532390476511151151299018413746350033229774173410259988683688955299993863815448606487025838191241942018144879495496973474031598659175339522050389434889907417421256832643572906942963917709085502381212343806045799024791458651556015564016620278707533466343391381780746928171284859471011059420647575567991038430757053446574199492402503690546374641127833552511052110899430577532356905339391097386441465583198163926194485340115815598164845052641790823199443475361300657637836722197603349111560206338281830941028457318266208135109251514355713093958782932532246730328548961243712145801340539828484702732711604451592070948691003985728309725147892532052237208376279297946634743789023003394355923105064574309946928986759795777185746847212468693492620621859841488069726569830670277940371372479629959389259996139197540578484217047654547905503093718910035234356447254402501637660749778770079618606683945767546685108263036442160178218203516463109316236955018960699194454376034263667942721463224855625188179739436278420907617627673328489993375482956868544902681370265683493567668090106545321604044637283054740505720198474172897790800673167660404406447908281567619095406714415899413240681878307163350360552644677699358884306235156195343663972550425001023699007839391497037142510891145835897237670820760692672506244055949496357101948663307398232948614693001790547020209913197366678150114355741518416989364278220693603344853084333661466095936392549402592800081076292661419059093612700149826601055878261306211953356761757526726294348485719071966578673463294062318895806220036895518936046526673140335656504501372955719971942588000993400058357377399461207129926116546454917653731066946221496117135384810644335912428610365905076172578542145170040506555623584446652955551502817029408915655554179129026579177487043061792357683392843864538503408316215288696281833984542216342320538743539906083427747440306353970748891634348743136539188416970128570504086335661634881453654369275869168722972649187067746251063232197799117951916824979570216241945232052504131388473433537703888434859622910645777705191302832402876864486361548527645233589809143618123343898205552748526924596912468538760753392180536547965748594107565246306497130648496716985085987722869029520547172024409544620485349752617459850258972033325834087643209972220877356163200886266794568979057151639829688665898890164677556475976815739991576643017688049265096282694141996563860745250757864364169347003828415239357728624638047861223101527113990837008554083523411978514515231821663998496426317288245740797213751255475752138565254531266495683206748770360712527137211162797946727184549958034091919913892458772779147184147672415496148891121182565024962328613707225328930579541131900752644019750773152082468077306452490260917515092286102433094363279106620476893603053311898878361118171308572675459277688915381142045457214637596722730929238753160806449496175281926778309165780687767008907659294926395820935861694604976871880884426659390634207561119121788816076437730524162021444425987735400868763485890364729548849282105924820459137283708903448194035935566515034948380800761851651797505634883833697782383398936906778890153435785471503338716086311247908791977453044792292487978141527384012535161529871153637245346061611857151826231851487860004531643982404744561131756490102461294533371392424745117711528579157674008016034815417515980908233506846579906315994555160474228570045326982745070079009571846737858798562576720173864889873381582796050755237795219944871620309958407707913425419224051426713728284796105758792680740012630343246136780837523435222396307181417674398377704636508296269669492074553946455236252766774027943199267718942607328220553711525799199232116924146820293245852973493275970684338605034998774380475727743856801240954050004043280110354577375466381500571418573570405923532378353797750308157196084801393860491235697093332192156487331930243040705641343170906980772696317580244436111020037604086410396536652868679514604283110246657094042133771839998134827688434512281736056920619767894521539889987390753183212634668221153369421020541909445162076950337562156613653159214499606825489956145294108695018709345969833497422518279214837837174272960823044877866356768757856065169377946659554120065073462716636656214496110728215812383557885852076048608030473601635694708480365229492967229140852595025373499395345394341817875973700355808258359293843555407523065510835158471213409237809560003246541376797024631029650897892104641940221052995282442697342642585775189769806989629205659147009769540009788994179761380025388183137619823416745111201284550506608288392679624865410356146651191491619440094181650777445348934499747440773144969200616540372071034724899714873615903826055531903293087707424719450824390722303587449985110062673538268229441620823679704045625128910040733947025620428497752962595468595512942932837191065788951350361714539684984892032230107317341737957610231863881404063611607187291294231582301018291673096019175638969943179908339247712659263073548594289973665944430717468302376107737793105086083260344833378791557732022961620039932343918520115575115317273082265027185624916684642827373686916926750262770599888602875484898574983895389023485878072876010520657346298706750986534101136192905009509727340167935673928759872140304555295092671936789764501369233889293991577035702803954908556821652535264791140743464157543332707760250633580394803478097302829882525097635859328604451075830277055919717954269369413694355846194757726262854194482354905492415517809388048165336064316209611955969709459914021658547341755670079069943788757436862623229573326078507492327796065774771961276684667940747360049398459324466523368434980706287620609463161799077455326333263728799669597338384358925506225231839563160799700092348771541821894961900758348807129295385589518158544318311324837910973592684718104450222192576006621477160057704953267761612062865375358325956223740340967116644292313072316745099930906305511304317142984152285279175908983921223975590666838621386418886717576058138665848054915321129997331487455299095748314717517502633975482652900472034941190400679370434892141984238055866632839231029923598465007798788460589681339128547570050732987588053345960737389821083674104172115430068013547307871223553334113759944151582316001245249740410854332706776303815281274198402535921945918377294588203656803757625420184954351844480679330936173314942023918137334829544334011140836914048537598428595095000789053798710483432357466120187649352595022240116429990017784204124574826309240854753721844797335367960083148170720384703983208090772624150392238027420137806259561251490980441055575908527424098220639750632880023280140689876806863868239917378548085756730842953604514494898206378192830712840925695179108600500894051344356961408530125780159805885376325394815542106023077641237051747181332038953033519201533028093198276567290498753878631240732768047811063226064629028995521040063336955735269468650797702872089501527165932072840401755064622118416973672241098128623487588133041852830416269295690569255685126021914361415388522446994088396280996052996484035494962707880623625987471864034885857819635048426093806039655411910688955709276663520880362847050676511504804111249394531476827555989005064407621458916776262766663800388389951157016134792609176825853865318281114352232546914287972890027485865288337217218803678888985606515762264914296943801953971798436095406895662497127649367757086810690713378249906480243887859957581816216609552583885170310995343113712580669570439983030914727790604972779458130489718163497073026464518772569065103057574589007828353274728042761046578715735645989643986981542913966239326510725130336488846211339512572007653401039286613264550989891966619316831433207290814190755685538904421749876350194119899630516833484399951717392512982698714588445104357639451718732189009630239004481507943373122059611856662711936224983982388900453186340875511200372765685861068493828882904362747747125232406761567751208670609855785539699813720247423040454605182720955827379466260284883243671467823632648941592435480731957832689811214391928150568541037932832150343619423423954762302493907603016884921562018570152955704926554243128134142382638532323010268132393497100222685351165185341987724773054121661691905587211367124238772176225537821762974406194778250383680151587860399439900822456223420204648876135877958915062138016992406731247653806640578119037216091045564700280153649448759468270042378733670722418170270887500104314023384869893077523541077151995053880739871719105142694667951429140170927330687185253633379594182594997484363116794314821920952726617060025583625842580438141936018764436036760224092256359527357078986586761339882426386455007400997272495339677543565362606640649767069077338767112057263001989162689700422269317030420095376330442340323208485495345692499951384273880413948085106645919584293866786509171049429459724264208704812337367930316354816020437926339662411462256179919563219589020305657514350425585511405473580017301075010928973052595246002737932813935403047893962545887394519170744597865436694456155506876353018005371784939328834689950138983897020755429270312311995584031171237069154002719279420851601421728485719638927039291989888446049150917357239383012062826537068583527653876764975179284245361773915165518277346130890939813772329793551698303585204216341883987958215988437662932721712150868442681665147349336126906052150709064263375802793066538008335980226880835287295216118990749475115872596137111794226134094847521945206736957435788611229328525305729995465696006413298348170581646566136229508016618376890064613045181376626177518434031674066933157233224890404586480892244171163487107763157627634683760281293904422450407257148980375229806307589308240592936571359338923874706930636666291933301176447465744968826397003978389270415829186894694763921952426009216106208611915074153694357984346088625183278364393580726199203366260706404113303205489466876824612162022997447654476479650004124755766416356192251681329681208279754401691770431546421904829577982770852710495254924047183931757362559351449770722952577314191103618974439913932754029867936983682297146112503986743318499467559070556459935886697427656729981570952569537779616364232981151369168556288100861684400600907799080732810715800810181361583546764916904311818095192190521017926136454549455683446715402181042448005059826334045892821411692535571290937603488844013926621674504868835380097064870627386576398604828123774692964758896708837201742849862037337880977026027958408637877046286930388304173311652796434543729255316429831323754369728590540503976960564082008018352460640462370272533040562782884326048859232987385216751718347712049509720928650650832656640425950630309228251708566185009321662076298356293476670836257170080293563106354306981778352863952587149589878155856647052235361985044216015981886801133143364050415789338859382559797066314171711932800976824858349110325597754948202759017926430232906890127068272071996863981732681408239969968709776378160577081307690999046194988505688773787218357783516209378049855495822678304430057107221760912009228565325964393346630323708635973794963403511830442518917394330744899478188634194403366845575324392503284791768310961891310532335613360886034382130859244647623515811922139317759737479849690260794244009532695217205453897390408756982418540734327111620834886038336347957693229392384096735226362901689769879475308179713440121308951177818770900420881113617689692853482913927734473716880417302153252231775838282033872790738823551700426098204454288828450451414876508562049789792322974074957635828236848428108639035825743897233928375212123823605919405860860558909580506984886572335940466531253700107208146050714527628236551807840372745925158662511796632647971326989739876492407427934141586074743585090651371854140881458103195453619113263170632182355226888455753040951392292231746437934178327572897971851789933379295010689147387138709832394817742472434718352351457415462882085796641765132627258915373911524374544537038062583969559010968730579635187810587110564292923433066565754323975875770102986792974615543597678053761085303135820488186974575003154726819011183437879760546125587024970631332108493002869329944566680026948849886250580763627120996693829625525300985455893352831380615244777906424270551711127783459004249095923791659118671143652498304881574785597835996798394386642682896192942260726870249363054926038980844111378096710186605505006341334607810834143977490928872063678280575295536271813386129619287635272722805333275534330149639615056511086421817724662523903178754735319340189218945983627740966437447134231063920573874829282162719622465965584568002107851693165997901451014892235441153435842186899524850485937708497327000994996008284594408706439473308945413261996063298676706911479219778649587843790305296762488741014672742892007321024669400130444240918478245420545356778821216434660200432201484483022556812368159934769773668843561278148759212165065177916458783684188569480969245936861352988954654471662123532048299502791690993138853736666153630205142202994024509082674041336034306912685396105583054539274236060252190177172075193869333679041441911122861335633940068828237671248319895696253638982328615166481686526510825069777047960820502220889194426240802024373417348019062822102868344707000018000380686839511755727871768080792444083934076950227728386804896634410499041093354772097950110996524942220909462654019752477147137290025316401524505022452813140197666224556456033771970783511886112357868082270294765121480964940524667493368425633066108832830373432740781071675862360140403243419025335153994950162713480979763734185388252114636585365890968581788924418520684965442825904392745560823777292006855391974142319774096875760089996755168970249280959853424962158328751853163488069557183096806194178723725587767757140659171942071156080529026885994348472160224593757015661610498912369895414568175613225632756115440417526771061777628007963736748989240840235624679139087082085838314500000315426293469954446205591203810013179965143600004460049744715572274330852199581328635688933996610646710654711497923262336463607172785082590612331749254605131891467049725326964912743248880072993573364086704963236170374237578156658438879254851865418199120194389628863982998385781692329977605129492332317752384716403903958252992682452213338211040333901317480393092471673035913081539024661458159679504135941623266690590945886498099086183344346555368593931685956426439999451106450593886380182959872520738127210910193525307876433278652118896234488097382008175826726900857783363189114472208025714301711636674939557067077135071134015286153712370372003088678134841663467629274300304329489083902112931700795770579150911625764081930993325285873464359195647525361745639983791709209158346168734741053065695700351004056071191324285575162329797662339064820218326425132975331965596243737390754333372613990554742367893294625155089096530278693136306676243733997712443781513093512541569338416840028171858664207131237097936567633463983418657050903479177318025912198707686479903427935463553983502609586985233477266511166543903611188266393449764122322490177165798473942621588434674828909292382586599424461171270163483506875791228569507218033982193998686114967170036997583490932339072335547689747613411787799849238221012409353953123042028707054634765269927242863040353434481109142940746041877446218774346088032618054687095924473339117642752160324741794238332250443624182069432608109374972277577635956082763502900187428421197664487898542731571667318500538557799491838265044318682034088245060433429474207575284115633752746255834913222867391231990416179369400335824211334337645086464219770778890071449141338106371653621936827051545272531759989155015705438943441024187886115219942013036073697361418132746438521625544415929888536946764817389408924863811799348007154614313635055212384401484712234230789248108922764510751848887960564643554584078839683475855525422103886783556912907837778083368289290919181026579390921051124725420700578478820788944184173630952164980362868302602051428919264946457368783708582524052958708059802993739792161641497711262212734079834618280549426812067016097131708990013870387649735179591921523304026508560807365153970023805074995073750144596530386824971770247090716229420903268936679032250563071976433278809025185920933782736140435383032515917029243351857779063873415182966906464707367378075014337943840962640726940132078834460116844064658848866146826148718849756756174127073161067354819268148766344163478626988014492735747490737089058834478300745915659251464796979105880939842158000083268178688689246407569503719317814638724090027813024851833857743298971161731845086950209889304406810263469110339066684630596575131399273121933593627011341008182550522472208079635546422176094726046069465036004909152422709756993231902671592223331451382277602916231512262775744569459574767928664117678200662545731037280294208271232982970574242460598444106016663196756246834753335980993273122667128888371604347741629861853721792645759997109003785856105963241956480617908477551649494173910698017837337433107586100133159614419146205808168191082225625969641887407856677435644097046600361206616495908352917527129288728351895838449583402936113260145049936610483575414849631372680722392445046862243131458434736629448789476775075186045047476795065996094575393397865057803349500929427535306588048008698548696803364359198731449144835764162224618809000235030878851712046524081112748450191403291082317315412649644088893988634434724687403204400594562959772980360229838737050057768559805486162205776805301695885666427371378959082227200004200158887946250208747007880290979343873493753056649301875151155746247330598189304070145476801581477818464806938179230088756105748990734401419236715473306133993691314626298447796103476697761788485098167473867849553089995060841361561267563385980806080882456254000265886595224356936472430963555973619727665492707711006709474856572454936638241630829237715010541820992156042399888062159097090946366576499135918032881989447765625687971377496170274330888405990218649030232007115309795545906276197065610456656750514965312519447087821598340380405774774667758793982981084230979324258488937649288262160084058133974134267842378197559697389167802272172099447251145649700080539769183376571393880880528318525256162910397129744419375449997903030468690488241101380395085568848619801436221135272521858651679070342318158013398049759965470451936481368710151810486294914923847368279175412668709829484199956737630734130292136500005297427767082231360375502238761362103438083434365142173710783447300164850943302102770519642595604019643251069059879584447845953152556432618671694817700985029941347809907623803752078209888404157909331889987298053337809931101885699559492229389717274444198295543881256308563475605740802337905136052281852248015998921328172472319873680983327749914336707004138495969882728197594635857706509108191622517893474423343814546408912925839394669508061976450116666698208984655984125252930549582397411094680950574260180745169374650372933751568095421398760213626061777795614154414240982600319249051741440699199971631824873332424693775732476082842314139756332654399497054580349598278527150254921754295831626932899116035299400878389105175382717218648501868977780545703249100750419077834143595473177230912746669500718723672880808265981428191355627389742588898169536964456868924197103997721125490995979728062676284551306882624735131176629784327037693884353667591942414556136926638540352149720108592460785238346954362955494029644615529641759973873801976240105992587096683960469773173087630682673927810818399509852766209019349718087359265994069075695556850582147476244811844621871796532829224165750349223587091671120292801560664674465309006698213267700246343479711162340559282234036587681865611658445242703186903970084096913967661070191464542650971730261122782378910858040427364609020683782178131459894727102976709078953694034100402479411140551245625227843635094384196796773794906886760105246368593096346945077976948069553538945936736836918550918745919923888632324555244699401025421191548068204452931661913152645945330606988111010111828417255627304983223955952019418133596445316289472064621969166061037061225133353792655781897005872416857345505866016816227883535320027061935771927444247173639726908703025793887556421810735290920378331157383867575058022820524018266723990008328413195988052717795214867877627109937718488528852218731000732897352404595183439530131302223773610130595022620399472624564877817276754398432882179065914660993323127400045074039222050395857005846125213937011640798768540465139084490223989966365680367867633949439388776957650230512575433431433526629754642917263898188793986483827490302142569021703767708207096997281333552671477866156157092056130982685270135775488542653425592948309608242148496051202281305674610131346481990781536696335044130628590497507254320803082106279790678910857672868847375335819385468177527184071996844820669437329316300321779733276857180858165806739150863171004279146021321665352927239896721940706597569009558485109963570506760383900596424103991392902765777776151464918127494561423095171846658401257261392599755364139717314705378736667016134966714338442021883708307135829420465626539337676057115197328487657088482900942076324298102208528163550624296941234342413445780428842295025453285853589394782760717273806722536234839732061443361790882379447611792385749039897190025105712169293417421603831592117093820392133823476779833530629659876238453268021032280038714935189271466899179624214726064654440943743932446341591115641241519298091170543653363601639111205109869129830290608344932197506202547213161482764418408524384384002906347802976773685886159084670756107681649797286133108284261179718276543438888248568692949692631458666231162022603492852976260872758503989712179078128186622108160249177428424969255995026995128025199228290171132090177109719002332795786741043690140689186565841032780693288919514899763476807957700234333840737549499149327434366778930485954389981441279098530222765500990831656591086543536225290090076336220559797716751588329975210630274320680749348164365563073105251552734791800332772442804714994252371720755158079664097526140440638740601673827163208702140775185256059467783632386974686079104304083427094299101418248511332026380297435521557506596888250563336040995046808219872836594152625247260422705884082718323821068065648361232638659817692866026206113242256083347366527844859042524494046802738939128894991963968042322519470776868842507460397641510078896766412945881194242487062918037191905518156953096440584389149254943545594172204675883206687242231505880315592975365801582313935717223746355125637600269045069997726694106915840277223840299639158350273833081140155288909287468112617956232775264683455718382789079143047062685590712263343742643287307301043992717958675745516737879451827093245585921320318721747721200683779396641165170355852384951298438729161105323244039414272539367066931911382459992022860951486796493719605910311587298043658607284120736074686703972847667807037060805684772043799429009270093064334340974652503205465477758609414743558157466907017344318105199126759488689063996849721092228281330487074977400430970038711185476155740670417204408097866452917393171252261336415180210745086932420264306279806697856450114379637941144051160908198144233943217494568901734007548400995987366879629203040920157524546892474972217815046898138925688397268958087371314912463513573540503990499667593403057724992020496552630615284185378520148860340509555049668316341474136696484550478545119624547518463141847834109097212456183783581036078423442765073216226791307696805363040325187167047033950294999336528026912028485220803695738272772288204129821597000575590998249693759843969338602980474898792826937014974040481414217129607070042902875528267247011532222618186977598613337956975934098307364522919797393685416305760216119782920289658643072156706780007841090290148925969291589574308612777109427539430821165143653484945370093490599414555518005290593739728465488132363069078333815612854727814276920945042778948311309716044478092106240929190924713442813440769315173326500739233001542937924014177393583603560132516475731091905289275145389176704029560753375772690653313617191469836198734772558678404320028638172256599512723916480572993517233135638747004958473699081658066644709077851614237027417939673004553706842114255671044737469989537416233612258572076003689416923265538576107701665760201646081346336099711599149818942972163270245722578132887927016333940649683357047664510156874923724239056325241167838019277493141034631061322938418210211667858030455323918976133680634199886527075331834536337145773785698707245464761920524789169670379111070737844904881620802695477704465665937408517308026999580194072181236328437142880609348813410175125135329931480380790785643588971887453062596614538637494879796349371738458630985472083274965649762412246174242006835701116634524627055764163429785822414481022114991566084907665349152719348544484980283904543608378715182234285588861734229713097260245421854161053191750543678188630432481631208203157117789608993274213579269546949336404240082353369085972287422588464500068447629932834296448784530304488932106765284173360463842663218539526886404797724904159807550330652299524212814223622903979808480570986392729850069353321614795437906604730119894080469023311435549177154018961961682232661929182796908593789480291120430996416725103327521527241793843476868037610831700137688211859256694148286475901599134945112059004885495664257755358664929027706015936758050829830008313042554853100303062286253746845005732340689848587224606319545429590602614269377136455153670113237017119726614826548688721747122185661165876470508765188883406097057366526659543371790162189004467393064288435358684250344220074241924907234126979517935288639184927134447367839202484192501886188526793210420608158573005936239709102883829794979472672548821321947887045590916841655681641071062904781333873414045027552260498220682369096971435684638384875046085915748691217514440913151405612761663775724933149100465085060915909168137898454301692415992526039176833436935327781632723764506947068036392258933342966103815898274084441717111746992340110945918623827196331430245204171254318436790540710660301833898911929034205777986268818903208083388471088380364044852234197415473772560284419915885820302371902228228959499843018752967494307025609717611036503817250339012111237776718824696764351446793775770056802350102343676917044257675645660295544793475455923602468177369532522448203371977123317268472080525719931081264278917006271798565629419565969181908915054595926170826694069684692696052571701101218693193357721371929144602877258884730039529724745795681721778569827680334826417430400174108552503126058013666954711517153161765030717386909500957606972412502940647744550220749090269393763229539849573033243860410310443339377509432990976476679701646348520079192857988363206781755101345488636340924708050957202960452528159463030508450985950746056095638469720281736160037027420753354784470686258717736471093782863875426683262017847037421162623822332235651621840995144494878317579708253606954544000459829703330601659035992541837133463294762087883199033802164332665991236298488833507216412672535704039914516431365448731302945155971919590854839407979999346432867242830274014197393275020118845303974842799430260007405266015106502884453300008435666040909245802036745569835397291102691728349386525657603165035983313109785612862122143929284890507885669285866417143077905299058615705280986850609564096048752749293353867094413049722177774470768228835112384868406851175305607580111048394810721700417680521999061157313692326732694188273416604732525891963407594578449259815770760711864643064966540959699692851237430614700850932589316750289165225798310424131510903186567117018352397582315312328708361296485848125053102492873213956778930997942924418539155303127680177176343241868152915515836574203641746218125497217279404393238685742309618328081311004049202086632645545473146910539300697901307649018718632237309197460478362819643693712908079646785853328915761036293973546145268200216616055542763968128538438178162822162826024799459080641786846287626993716249090492689867344347363370875968827457388756830604802271676542871524592964442683283992919806887726124220114626269223083886407538794144480380777349068520081400553664194906566581349962914488773671478641420982278601972473207356692086453065770637358956254350955402282461086230866933693983994196880673851788004122903143494397187258140387582274459739984687828785120487876809172497912641497923374319033039600046412587318062518197254184807151081819970499610654878381386242917083307720296197104763627482861564851093792976223875853314842678815795055110942212497013974877023684235534925325846768016416487400637975724453790829590268854482242242230513457809245355859882214125987932759448515603048201892896997449316303980164712510311763752966359254052929060523155704490724304962174802745761985435270095683694513822897128501599362528862824950898292533123225694211090306684593291758596875459338696053602675946129193141085668120041573055269256656955658300249752676967817765653233550241969185388809598435960938482411451117350870113467008992648033082197148544855481586639890890073979633057574836478609777883175757940471342699755613804751912455555900478257044691625986988760321477752326705901562284686835960449973884734763789005819616914250713239007260009211919818179747646853231224036233624524834445583906460561297479105520095026531943567280867495025503721923031740382163807842434021403399799782510708149389998415435659879172810782989393758735923770885669022803558169698460443252893866277900157579905480262091267197194145491703106481663438485706715476322056823431692129974903243007433670093950940122794860817873694746863349671071786005315771009741974518566693869322375611678448808953030291096656381284177379184033927516273007628270999252963915298505352600848093925258682488744866802796303084478030234589914487267505921830853312883054544446735794912439966862019011583567341592404771710752686564011455578013553391021170963028212945759039067668603534244507458240792223899101436568086918903778040890078021244361090707211989183844837359750063447715456431623278332079097518425011452587797216417961775457043467165743176554218056890385493373537450883709189786999774098651419256471979843244904472228208691299674189441047098781095765932156609546860938162980856985241839503460494282043235843121798904113589231252663000324809522903922427086863068088005340878473679429327716748368268826350463764190959436983343642608627058458783020114706600130770666953243083043301288336369772767894590128882046729439682705006432809790926632521486921460538273168883013854031580627140972856148193042745642428879074208258268026993013688388391286923488348967752348755981535099332275846945107596164624802945876256357999350021385931367976995706478690275339536074608773019444442038308843378910863456577416516707787667253764892739802049433697485886284138083147272162228704328474674433229269263810253267396832486890964058373562334257453539280136961296909557788432472266241848518902316409555828881418000446482217526026435638525894685555317632362944914432521733760374646827257391445298293982677331292938390602876045373866865202617793630159461870198913962967310111290873581723800003257808397787411798214413789339590168169586770383351452694649756592182065124084289976699755221685152208017413458717535136422497829696434042213678948949832074640004397449773592523399380036136814561637350930641215516810922994728491329366967267335961290253042127393592680574332529337756529515570046191277779883217895177204816537853172304452608402921678827447728555801318164558057735417437510867179492534807041080671328747014973045232922238677925105601436991194007393924468214525120049093264420484150732453117094222104258881367597904476548436899343295818863221867259515669618266878458172551047358231031912250067369959678885271236769358830093846191355306204096919772443735981327310771206173862941249820617273174058672590297732956260905901660935915992053652895201934463971132699990308600383195229539670726823297155901030775133161642753531536768569256776655799721328835088700061032917430762935808440884805367143468415262886208022726377170423853699538566173035368978275720738685446602309474610469447772912583527282197112805429028453841790622654967659439311465755306967846688570093494706254153559095292604427012389714390500613217697187381974527599344583926930263992052648699893382136373654803533167988199214971951431863023989925577059115507917516062182107130257865077106719458911797428881864114323423286663573308596246928334076680725127874897075685225512612525483609446879414875408625883260716643863917124763461457302189682929823755538259488275175435425333057091387579803740301924491901825017506311567685177820705807072802385706020566707182740583294670269456782349288759377660442143671151663210403901176222165331731906176312559040982677151745032433177107113020419952339706748340913576547197533756274180565757346970879595481712003700944537499220531953362244570849416329985691802325190311183942703650790441579115196079583285888134801512051221672225806707401612883651868391484495815321106051940560831399507205801818998203491579304443735362321176333579008823013289498136820100184914138677719843213482506533239926632060340475670768812768243169226941468163281888823075725612521018712301126642193605500144694730408950034970018143260548244694577989617912808280209559795437969457064078524407010985028968683801509335750943357339417438900991220297302142306477963433212746111370833904541717354126136405237754320290505087976962710469308156520298427837240749616987205884509294870380870134843211839325658177287234014130011230739040880712164476522371729351589914309290189174600685715775881891242396243029245076087273472431422583446744126100350488528893461451944846085793324819394520478254743403800980834307201230849056370541323297374795783871224481861571757649372618578727549659143230148498460621288709518373324107562440483728027475467066067493197943646469393329700898990275494931650677605890463347491712007321440650405596206248035309217357783670068029266965897599230486280268909465204796962634355104567314820779279847780475549833746566686309456926676926367289802425684544601658687558375268105602303909627968832515626371571163689280676744766528097320881792531402608773723321818949035806215057743931622007220670438165121003162910255395181082107264900540476882446803169443888661216101513967499662352354604948633638482986759049152857843815381390007505379048675677852111753497526352278338299105524817184532334917717345770969041244193181127267781383242458299981063800788691577212621208462915537407395893530232808606038787847948515305324584171037663119152537413169732966543265478156992626922200068661566214782474196456145171942518173185771234028721501014675850515900717549656386369989916026848251512573123487015271255279556058598335504453446290024029822508894639462378275037054595287667104278763535923818698324548268417248214414353150322560397718039010448109662357673517642680755751186550116769063827493881561047761806534894249883609014143572844159369567748532381467638673521233536046904996864340308889631361154583672476456549192618833119973437123010525050843554979787136027382304003750133160564964857491358742333816899111948648654039918522357650070813875802794319942216298931344229010734898512093233492545251954221140522598223514036215554321326774477603610081227609521181002920091798130370068865278464658349983385468301849610352425933505680368902910387601331704607914955867396015423009296606957061882150468969353156943524391053583202529341886426883819138001112834441633589544701125746744097291680257859270694566623956114344973591358006979848294503503528733486688126277574762425833473340795675212730350403607341955103310295753357695021606178298476932181006253110718114227584669244770026287279364442574775536942283143354079841515577574009055363684582567316625861430598039035538326929440786671672976813484194799323112363795196405667724654952176728290289003256140361174388384026721271974651877321913199679732889752959530893525521249335987209182591152071579671975929913839347408457942372529364827333933730668250239301228145774038559394073287557753150124620617815843860572744431194076680278803022715984247749837731805937140425443613773674925273960928503023327684869303149838139003591591591511289641173144391946898166200769196535684621337090014916999349776932918873104316515877581300193772118466400251509321202671722950169576419690617379096914575712064072336678836081231622910835470740442557667950236559916785067877111263233670760851822877954752541477924272560437925498706874557780908867285613003432499686263860515138230638111074957731587167183895767144581502053481449646607159951979469174530727015543544136157529737987615870510241111825194454196706319510052899346330039593144161106155477267960981769628170508900649054577991707661586053544050380598305809072783088120860836337723321573139651272015280879368361327872821250686437305166941407248054983161904195239844792244512623202862272870248053291774274494584827401259274558288029157332758051945859626902309684447592562045291507141564360590846026070335752147505967135182278624233444209664696569036398111679581623152074899845388906260326907730272570274513222260168041295981961634584604949675080335257692543955438751250484627779200794806290814995712655824720333581848757866999849963394405387135790583949636970986611437313160470165696161319552593987804566691056274221795611194092244463643794091561990035912189276009045898086301726282146758261298765271988001314556568776457722732483637057135152830978459296683280530214463670681238774265556943600559840905601919002766973201672444836833661948851787414643598107467915223003012762515604069129220265352241961004500041306776756416102685333661973553375800771996941725851278541616064018209562891728795991167032732596065043845767975578495510830545252959083391184980364901543097348867419054988627446766650181369783451969872582900350874075124329414874767545407151043602508257253890721172785119607136070870641431564420907494109852506937662075901812462174247004693772344998757837853237832693817324518261604485090428577034869104813074638631688266895740127932691325032537050338464118290360718722614602826230257002696094596491770046822855061063647565846330647878489611000121069830791077585718635763289369428856674423219331497785165619924467725875443199934121787781700302194964981081543641120919655653426257608171699808116767952877976971538612348719976422795372992262501322816575650926449811335231123184884217596666933729836005205107657681196211148214083631763013288246154601507214886750579713507873586399637640778161282710440491057960457628699254502983901722214654379192457562676978303961835011042364893856270739741162139905372417271573379340899641911468326875106285621018684160337039112145986344243822898898290199420468748813460650721722598479306604571437194619022077476280071537370731120509733735296580118754680754077429484119483997565681420010861598584067904627964356510437572486894107249537207205046240578014450976055102578840447359938087418607555031461411154976715961010707480196918806446205444172222489599814842683592065151798207687580470100857957642011359260432778934264719875477863329993026806141235188668538935849427160668481951377398814080171330547555705045743045699049441711670384965727652699956937786114377301031826051972190798687513293596772485828364328074494510889599783478149605351662660703004237913901834025395738219075240559456275472075237057207013199419557167557462866200150149583113005001605679424227489112909991647816615617386679334025357580353513606262122728102321634174610694206927668689100073046316375200650185605295376856828832021408755314282264769306680367502724219264363113301042187679823897811885124340657994807848557468726195734577967159688427524660862206516811026264795416405118779458823598474995111456516647383191084596854847914401170778194076782060263799946241992804701063463760519029962483266707725806075113770949190451815672290743858081734789926238201766025487390291369195411197325165893542010333382752450905765784124827023663520189080080700394128991945527135654566665293786016611537191600975399424516075476356563304633396044172093067159392069932312425392581457792532654109941913199370849916760846867594875882160871279665838966610511845000006098823319092141600892958193878853450312785458600754637918269330651851139057570459329274355877829894554621027898914071627761962988109998368101945978682284725205877162373043884411742523437136458787872416444000004558882135217473657526794619093666426807773416668605924640694532350579460396727538474173889181423253091636762080108470326392776597101713445917017104357001157006828217819322614451171816408995598997072299466818601678746217172161382533300051215807953493744598915398108611001336152623916659065432046726239564807063939564630221710823879415605701649561577890228604545687718768366176729219670638542339275144004879966676071070249055862509928574636850077544586726017670863391017207407194214592025939408397068131550882506980686511821336386254417156095475231724872610514312788919844814619704751329546538575778928684375753070073531937524391959023906886825428067900452950610016263069280684270494856396208005003058280552460467251735506429022920732045128300764889055144740715548145523103712759594521520041514559906004359214058249137341974172423450976491228498920114169897156486695339357643275056958369621668354834067090242991360020169084049577238929196861078120310821276671118112831692132778189349757015926839488828998762507684678473571439781392421753811753980419874735776787817602543105303095068214299838937615256077233039369667966771198027262347940843489661996253167345722725780570886795383823920746467068433769617076938572556976671989625843643933414129433098762437630008990688074742409859317047895394740264928605644996800232652212939671658838504127460804747460074484340401588149416707562717342350962677035167468532721714109899714217238503256213267880783041741606641417758350515537985140011198067038892276238299172851162470787229753251759077752707141242917939384329601549168479884572740998840964692487346206341419159055098067850380476292390419574889339698838470289591491808841933705425586600484974043002657547466558828522704952062804744937851175027863695193251950288121547885793851694126395295724726049556252579550717100084373757344319832300787079134360950699993991695445048243714934795204228915035116349627984582181169655487805328106701710809087821335234611275226439275332642488048808551172654093650644331337558364715698606355701281837456127273187142845218829043824017707963472695530513883258900166380888834275805452558740777733260189582565615285398655147113222891138951939921033785029255593104740290672111689437243113078600018748393199590132510955802392929781270081535602119543603398384100724236226771109257777624943394884727411817120662637038705309872243315704506595856181771608010528941851789883766493844160574762152559572617078719782161890860550878092532637620889250225319724085523012049445005667492362978378894168686397890097182928300475358204845625871483260189249633824205928057434535334416169285844757135308574351624831106606204771437777012162184143582810833934965110732147205227423961388582653088374287644671006596723273292007536214289029019912218760840914865728075238082280403504901914861838124716956674308135012334616732813191333858133213142724502584941437293121977420798964678414607492565195794085425636498591079702499730313899860453408038136808514644834670245542321471910245991189912462171522382336728579891174914512516453173974847845885558637385531315067777213372422427365976579390751139561030349423815740700759479683965647646305471603519637910055666689942294640616923359759291554425383984648194155598070156727014308616992663383544638488133340055753264197638577241000214256754977026499460910710110885883700376158836981941927728474083774998609179721453570836536724326032156620724158083888240951195977435319845696511813147507342953959990543105235760285531732581817288978870884717390059995607257557954335447324078516688504372679783737060711364368007520900499626926003359997744617690870625940470274145806555129229584185807226384521913607461553368191558243857398714756947086668561906123065148219610460673247399028344440282272729074573892527469902465922819288939996441652296733371898982813594753228912731240956509314541932659269120334542273665075983851409010431800305316827965783059563132231791783179043462311367642143034673042023436465859681759190446897078632473070956584438950115781939992475370166045206857527100093253731672640714728418522093249901975733184300903984488027039467832731121006679951687400426664571837594675960208536877042644596768776675142858208617390681674825187494618261446656783332540372763703645881501134300021799765706455898462688026640477142163521077931562101146679874519386255469288180612317107985667482552931824682709135910014672388069901995425821380297304499078622907426210655569330760982101998976984579923715138155560151233083834582571873588045935324499131093760825297790401015794574638926515055687843830241419809133242933214259191177553988914243214673277565753396778533224292743973273826076457524371993007198593947705992244964694715662996310580956358248154184750867642729886702582701803400790672055794990338556999361873371901556944333384695529340949436864107988829496189346560089322425245376389505613015011565765010550138513147250614916663192805508147129714678886697576989816769811784753427474350118548006741885605241160369226096488056171120287398113261887905587133984192809641420929560425120659764306377394763667296478992465845973344454439111245860743313820042760836709150570050715007036500883803362001734609921814805908533915504742303222414197184550525291702313203122473636669592182337778733536074618764809503082837395856366235620708327274026217827665956567242728548106014351559738087045771192534925809000975384060905867637139541240443393343751932758722427059855607387875211229694692365939336621807697838150344441638557916689892283747784863010669805652611052225589107335421051853132583292501308852614227892385038391468156121843149450500765791174874149383625482032081910357201493031172107141609107304572690611594246598677355065375827042277470322395768888120007268811614894082875259072917300581528309983560712934956865623941523396893342137889708654132240610281356143742276453706258946953874871475431990610962297261709242044596639176441312930360647487343303391840617727229599638150332445618120901816321830292215951473301293795364136475221987826302740660334367150965465270484038245052996608151589386466097579491317832384290837660802589456889743383881012055128219192595069346685111813342562298890627652083773714589512860528385999636455430615431583510629377748727299322064993143396027256127696865909445431503279620793830245024465248066897972443930110076529836179897305926572336126427795921666107281572537369651241834502232259808103262403003005120224573466898177946103008308880333934787637018710914108532248008845023158453570276713365475432295323090894356520551667912397437986422256250504485956833871070591510399713886264416993529200763933252480409547460105528479963150020693995999041111841923035877373549730745199935397598931128275142299845090627721268310287797534315228608241426367311530562164272106951714006987895163921785509070839120210847194070227516572483412721672461772519504721816441816865260664006307485291265812517545999983329490390439855590361803625671849386263343999203461703468080223621923212251564200589388001772578718081619120166275818876513580188509881712110009016375443432646343348513782824725287376432954916429095742081613919554905215674727071573997952720950213753072461928843260641050698426378874839365065626278209602781973947504026474943951901565185627335042468235766647382532457074530687509221276827791870407340379618774411895298675348975340996323516654881238486847291138091023762438780858349681456331618327739612675578570831113774999669584043366250187647700725322057628669448951302894021522658561027958913381253489007856562452149760943513510323111157468855540552722499643438012461119544034515216855345405632020984517212634233872722655509724065583529320237268844778511693598202197093174787155097379382503923898792226852515503505031477949806898359948488658581477026187252956453321954625185827694460564496743265626535574360574518855577580597999464882550914403381577379512109083397583997660159589532404610418210495391325952254951416458416780431636797917816487058326031087476393516365411635619756339326056786644525897739672139578286294606908995506506846757582550697037627068242954812817229187425239727754380569757702946573521500357398828796746798543145177759424060858354785429236277629463417786406979446627137587113187022115910283136531390412571126297119399624815376524475464613474085359650162338706251194248631690351885479764530542231484240030839651804699702577547231823914091524468738434130148348010078563657251829574061305258702864099821080421349134817102861217016404479386109043968161886679188678694971041153019133151930615120056234767489643207455996661768698799848781066486501437371889861216050238538318716825922428361252241707046055323859142657597273303994040616280134740754248028405580754979089313472831694521413725249603215759693552479503115766138108521479035515019847056715516836507108343757896393428945603421409040294266607134235854352621760145335736978475573827322339227437022763645233300319785274431120979533507957941462884338979645272491589971992625700739671613535780307252179287147884066567224297348534569338050315216111820776480588260697848598804949025124091472956567502824291523879312234002708968088482676440037237940262886922247501093694137126694054184417522665180439459185192491206528878492273963678971930013910912193411234464597576644934810663596336631895429036576397840522186564313536913011036848195754293621243008223335215063198331676599248542509401754571453432402537717430100215336453696693102547191517064208304797551756892694463137719154113971451921574874150150795630918608680493617970533757642735317385727159206867511179656058557894399692789443454341519762804596820911406627484979656717308758748621876325469946364106439854224482387086181116332266895805017112183344658761331242826880319823191771621645161224828040145377671145982159179334548799673094820127229292406310610938554440964596583159401662240632367451727578480518149659565977296382508005125561752809715343585065339185506015682927366965057626893638055788185436066273929050217711247970838276171489802248449704688251478178797673099255297604782671937265448309165957215458042815662717045569813749394407720280140909453832677322027366493821007332728118228151094555800755489708918644691552819349538965989818600118610157865009923040918903359614732599611935185385646076923955448007127693805424958191192395174620486678108106465970890554060444804842138303591289015848440273875243924361778909901549243755525660041687498705449007279102460486287665849440319281499889636786704373958248848969759639034371504454402769105070375170870651127737728123224199912178988027237961231696593249955494670654777200336144583698244679423613278405282810803209938444887501703020231907425593388668676219503001246687492772857285732963831105636912218554870317393031084311124458166125007747819032762331413466928759681685127131720928438456473357297669469331400148625093219673709592144968616119693278681534534523629124697087394083121402280237890649745015686522078505802044840597764559786659370855327634946283879349935462567475474459459661681026233902768328252804190050254910369523473926140936467381649789241728381568184824522891343588266035911426641661788279942503521927177468963944537401183112951291310567101002234716005678104304499362610166849782184327680679099129332324613413454350103064361491896072875720702610221177808632194925673295200327635754625533311873053964842199999378259279886077546469247940624276614192016340823679951405872841210831283972746751618495325976663098382236171607629127522314439099478979623661024515670996695379223066867808568055365801888397295201324269529211908556595825460603974840196936008158710045734073865324343469293369698882181938349888306381196745935567885116279824814253958541607739029756533218522737421689965195190223901213199817434005771179307509938569016570539751593776824565422721532045512829609743887815903402701161778860920402964125668760477757474283802483079935051623370437370410753921172773883004904477133769416225411891732278004471832686817677392780637401979513431834469423807089708057382810916910720865409607212618778969156294205494020471964435709370646651265931808177234274876073044608908738139925742626670157248782975461590558783217660320090416066002240097203783036417790496841158182887837004731652710025791567815891791481830947373178385896316692850805046528940669194310947155463202922025203901012258750269176048365311256107422008484233038522577365390984838007893557358834865724610238155411791744827687797211947533971889045353754702724544302120525732095164257174486884116091852176811851759429309745217425595245619118291630699797427878549031121502477535610253616688926994584329707731076308299977398589585978160740783218078349718519522636413727626619859992212314183604077112906746429577627123900565706345036669597470262152423354182391780903468535748935472858623865046602262540455827628598999479185790411653878374364921202748537679995985279906682947107568004497451740777537996084087887301715727331741929135025392125469213740025380401793809177149823847946615806063267687773107068875217890015201674833042235582462333570393721167773622903906201679592641946120347631936310315833758551662526068964785059284235350516459683271901474713212618867877634691339584035185020870606967845971109585070068678949847966766068279330543033599602649818898258292518593618941123403923746716106946631368239311561428447941848069514029568632054695479503727861433585034125678801423327391175516658889990195576141140499481001174986228845178544872282960145963617638713053184180520960737463782541042119155435137820878566877732920061610493352692135878928070981244107865942069621483180723184638698705037273917065352621544290341741071518795299135437656229102264578465416090701169609724652955597892847595793657070556082221464110028223539336944050401153665442368375854884348034637479144893154184304727586543489871327639502848139857809606503817395192653069754497887022006386361528496395478386671887889491095948580795503907542509743128706429654136812428288430228310055697384123662036690356487559380837403011315844394101335335897158256698045378173234719523367346672951965094945788338460378761096109347133714265049861445570516685916442746500535189054869382405536209066183557671528330867807548365652643591878501348197186074363457480027366245137057081164050382128368585552707972074170048605661766776480859454473410900654932370555473450439907013034234987014436999940200055381846972390228737460887054376561768869409350498999972445321566495679777161569924805322950374907118046193757881369783141469793933606954926679102693041501772313053729900054645154471504767592336233801511219154783087452182988307702954860942987779019495215352352561333801389657397388369175733244757709622209337528186507927184378818605397453392694757886019447122685800819437894380293990719700402902191953946676021545841157368274631805741205519830820281894144135271168805736293409120589132774893179633220996971531468126255191269193452286757081451456942907570047095256478237308117715090700944737963432875036824842010275445374056397246495564226470168733069479173038604518409848486621486796316068301525531815107307142423214379157700281304318037379002390959532150055608288664185906051080601488360493734589991709640934231336208706729542314877041802507497968825714968050560175150720870698212015992022291226935235075091787766459792518965076572320878882769108012096884192184967593818649283343637244209999823572584576859939074794197105061232077796120540109138445285005442375992888674397734570936664762187714746112983807806678453785714241865119609935389103373900540612378072048403049120539618440678601516197906814221699751033772379597765771241520230107215932204981664357594035044120183468097115391494233114892962330249541873531257090495958020514613544983795744342077126909778863983053859657350642451342356921938657410700647635390654761693156725599219283483271295688026352147999419827874875024027619263949634682381709306978926849649666963451472875843545242361545020829109979061631488503238214346423251240237166001801640853535073119325075664303425191468080626273481414684457529729205433769668867386336062842260418443491429283308644294975247595394946027589502955050798991614482919391728256523055555188839180102617810655835748083035852859113302808985502786209000570159457952830036372381815835321587498054591966550871304361370675586366186938328225716568583541712908782246822208041048332088599845440808086039829006953440888780798958704295369412007883478010567255938508102959767126448230590888649260320258438104560729774756546148104042869660507080127970578006819114243229356675542760630946747160360234461191990482974111734524027947333531193537595520258378078299457598356499837012792263572405815668679622241583758027340529014664306286584917891623902671910618838175439064602257074619485827036404199616541069605628693193220842092242659380613856648112161550519080040419343803860360575827588604837872592013616899508472586417641436679062641096022870457038010463152879497720602095491443396821508452516470996129344022318820531106868752886684097150297146740229607418581306371089748854997997756717932315405626516654278169766446714623904731529249467464595722904551008180288136407029561299568192306841456713446452010761477724758483791444122896731338888558554820871363969510755864035669701904209440392914542611516727050345241700094026673943373529423703489396866124162385356271736875351411880717477745116763063798529345233759349889422615412599923795419924582663026438760773376369314220032499818140230210385736657175721997091053912192988841710301978063992525972910298743530990060522566705978764668459933059607794898508697862462370783378281963730987097120395987081093570086599187807646834415763134407737430004170336085632920286462207075502063029836316522312111056953056488060327546012013939270189831662519393879480187605502371789465427371521762868555159549114356540055342340649749915405498505043678213227892075299669720901446625697728001626504034679250747014857985082910166736748983711103602133078043483512510011331398870918626762937446158483410377316183703663831328969603446575753921396916473124422150921856161025692240990846797573272191442773601897654629612082583338465627487365272376864890667851739790323426951533729340108956877048628993736720560854595266689430533873240109449344601461903233185096370540446251020679128079831053611517639461231364717409057429176317922496249137896946144019337431084596026095579887910964872414262534604333489285055588992107230190756846459915681958419732277564818030030093119745547957376823925430919932814495621110450879925309846566504014247920271833608108811915008147672169780795896659792990105842381572853720561523232687697565752577467363214756075106308579522793714631484354175363688102906338204741193463769095459489359395171107779577170096782601138106461536400767850027805482053072827817646324502716252452338708409807705160657274769004176757656545896870111935120048319227816037243351298392981336280649222620287865120142072456258925244389656542811214246002959560072214264505253203163551637789430899809120737231523547466792491094565437068724990608882853773966162421744363962943564072760633881237756518073768474657990025301089790760550874484918114323139015651235039302450186323143775183376813669092465685024584211168179397839899985080425547305360806394755463721719961062254806452593498463806419993116017680731042584631064825199738913069466068320813355071079149627641370762659683916696220841150796380351182194876858834995289091320652263405183213030207108991636286715121184519078825013122003200739413817070444938228941037206394193737107845100937420162145877749914443719272554501731012774077285507485124776474538278988435861353839615451400253147375003183257205048729176457400199271185979836627014381262177531684942114554658414004006638548675071968528538701600479540933477818887809876506746615477000116475480439495127715474075038413811575463303143188069442240332874648208687257562060257770340417505751617754424512382038796088291089363202339291974423973730423554185300625490075105431239981605477198100717436027290900362664814306130273148077624325863685164395954950879143440770289860091607339373371104495208534985828464359256029858996954473813272358711812548591754624673297616527393286607460354855750749615396701330423175341429170350753308079936970785790400369492388337509146695550361643272322839791438540869389055070184497202774302868262417921325162079786408339097803452819002050858712017243653483991714182249888049980706010590804390067656777833370771578621540940727690703410530248184241740953528798814703436499176816328444189841282447710010291560800914616042820944287013091799648343009796722412432559400978015821587650354772480285129078516024568171524688660050869474760559027790004811302184749515502232784217912984205452732212963134680224325097126357965331832607391716368054733753470096738271113505713956735166451413829072108707352734768826629298270647462653721904183788034147957333614257149589570063178019193770578846499328032144636287785913689576514687843712859756340860463439902965534170566715065555089848314730915321346241088943313328675730677343739016870979510400433229230255229539447947634555648690197178455719610169288317868464898194652767641921544867320491797111514035612347592740623954790417080885251183467571513086761569840894719071381036686011011330857938036805901931255596643521761046946129817883888899504398705720885961522636405060011408520629096769960358823453133769766639576571508769215186511846576514715278945361082558804299661189935193009300416397988832866973057918373017095131920770919563049479190149654983698044987391968424394778793689140274688592771080604479218687707179467567389415089016310817926312517594731786335155527542209949593986143246765577547104008123015339990249611700742894991311152448021045871001908774849420015785502633793702663373978603485116515578976164182663039870687369390794281664103847856430172522852168480040380621078504615124228354345744764605218398532934698964218303317449247874500085639262120753662298829194253853504504495657124150827318388800003340446076593231294343507193377491559100832329799828188956416891224877958946284025498514708453215212955276442267350958166471774894210772871728334952546931600368202083308485725295890777713973497605105007176511122210869957655812433875897030465904352277436815120707777720879026520014849236012294800775200683946203205321327462381850022624679107559594983190750259399889434171749766547690582819826620035812775636026275147560633641486839703549289532121715424725971514762781570052620298927347958667027574283598317042394156732754138063362327218309302961288487428372805424021529763394092385939676400154962340595942776859987930338371141653390734038820232871117765641012785165212316269266488079483862607891749049448249856915803803959351890042186209011174497832040971544714246471439238919106545366768172254812963300347978039277840943761263651367412193055117813634091291209132016773884436595396036105512824783325122641680484437331240706629472016034703721759995283751192143346410325907013572904890655319698418420670748395993333433961163389208529399851834120051665452777153710704166663586107952896987032360798983799876312710762268555929945268677220484386856748516628130221542321163933803238233767978467087174970938178292301695527970381385258782961213092027339226729394659077075265776504107956633241473207766975201441594806906896940341200511428756296409917563328883606286013361437833513258005882244419273951413243902515840732151181203983160544813299410601687027872776438458559123851941127040977512145231580295034898506592548646542897255463238036769922610100516853912631128040386976121300935776317480913888862523660006727464188895347763927839639908549896931222250215555200096977187865161279822987059702703277201544699348803986016956351181601316714447919794728540170830147691525622595656510137535228568292660522873831682726074239959776085039447232477899186291976757345144544067835699720788314134049805370809703807563440833805400660883549616307356653324686243093624099310024244035085368538809246338853670020267340967868680643921432913025769027797244779146553788820377341621366261791738479601577856440436309206894985300016671373373140545741755163478162058313045734439218711788222157853865278449664785253457080905369434982447033463490408219895911845931738829348907120612641435681724448770689459512901350297250200657001600665803710393507084194419638642387843417674593802932148323359379992444333321302495096964418271936528707700646577005096464336409057774061544582568618431691547656685749585685377296792330141089104659365578831970793311108743858192951754168759068677206756365740914346741770262052768877597491061393881465434213853833185620576081615006386830494188759534405384911157615411694388750246312496700582770526674608780967204440820490354979668518564050706189864925705315084140190844973374927862930089510594867361999049558192070267051608677567075126755291240799531181787187584227077139975522454094061361191173602374125693490447353308179539337298451754511618328012118973455525522934077187993018098253690372503517961831958733310021860861462854977938377478193680720302462438131120893705781364772419989226652499162810955959395832670718268237732173392384538368405244667116871489196119023185736014398636785952667629922505241089717351605275135745371660791056285138804814251238533613142443527068132736489596126908850197665805261250901769663565734826772464970152885614947426685693401564187113985050117940138170763200333340652949334991710600841149274432364512922741748574084298701082091813252606458423231916962214916025644623618844035151089547946093253604474549010528207945322617609330518914728871235594523420287297685523663453632040820302634009712006887277585063270278417041789099489112477668233570530461369714191473768966704300450286603619593326191711989023357955888513880870084931504776198772152010444934061900288603339205895327781059489861354842012664948065211133636763641206645728407723334183150253038191761795685556837504051190609025264989474154696739380503102910598289364247458747001611870508303816287359845867126349918177068492901615318509902106310232032685662717387626066260152261173606710914131747658704128677611316419884363691995254430094827363495595446239877998204103936776830459811034587117120468241536371701944935710778434795783349943366991533076435019466539237190822709390090078682050801916132286374564764735445881264498248416569261733263324143078445543275409058590744101228262111423800674093518391260834006770651962904283688802647845967571994891677863451692389917690672849736920743875930972767436159478251121067836580220399895348429048467259616557010229902722366588834800965100940484836561415662059088058040607773441786565565059819002332058587213534598199832529926880646620174061026017016639349061997402970003866700876949829202858652539887064048452641484155994941285724180316063513571345451928110794071560233911570969030087410103295912462059987017522036514961798439717748371671626219457226591425955342395632157742194058221222692045014412685392288868741702399831867954954079119059058404057370895673276569165449067016118916819974185326045515315107467994020882310356481789314688530441696303618671258310213080086730841101999164288569405104701057369197488411785767085443178925801146743222320066575260722681627424564904445283598850079729324703408283423589447344673298549495636913576831021640828392622390887743997701846738663005942686388686004710357589245129137711695438498987134671879095308440940927820925937710672361507247804512364257898538265580836540855099306007508114502624633718075398691448399367116405351995101539952706225455394988488814047950723324910535322756854194928351217610072323127761014517698755913091134577479637321490526755965305571548325551427021739629628180678738712180709021895901440184957435419554387933810322253631085193139997343317789951157800127991430044751485267182024851927017668431567440880590329673022281129730798087581026694772981097634055127018641903695309361252111704798015736223984221606885109780785212636070326028129218368080644104916503619550637861613067296269811588471376169599085342443722599602305403828439363486246464473013903691888702952008965925838187121395467070552576863678831288954647724832026207571155924564822039031740664123301210578973743876025622142278246151364772807600395511264234295513082308927539132953566326745222999941229811639216164007941050115695035297525024219965765606670748988468797256833415894116029593634909885874538535396230470013992360056094129598576056550004090957114913771253446959510216578040914185318948218004586639779143287427794569171905901040998823499509143726083917481750294778544905694122642913254892270518554896815292232300125845260894693824645436715286477216585576679313690502704658784557975512384307434766782831183800325156097351140195684179405597926996279754581327885338392754314012932154098000531203085321537731713697796285400507889830015727524508385623671628536966152317489717170041706795795970938059266557834165253883655026573672392934743612756089209570865963813964807671145095200690272485961147053035626701563605020848294527764754117765358195317519757439993757947942581111711257759476055905931707242213552029876544713653642392232798964199116315708231454694476812023183402200758757053721538487109512090786156946371236751379834243257535408544069022061085687319974181105132226856899528113832268096367839830204774524383090824645509871978113847178847299680020854965666115216939716414593248531242953322079775165731672780760328057962638641004507581663755802180021513928655718372080678621775586103958510417806398863240088263329295603859967990147837886832222188605185388488760749085197934382270338912980341887126239498346762462711144307069558766030163090637467155113617406901149994404799277635222944119620746181327692336164844761053239356912177614368628963363470683253072760439211472500484678021864369999827993336521108192373180628816706556000229367741334279770215660949654918977632181229042381127279798508181774755456360842326735253967246701514952274439876804533743991923059137260113725001986347237690136046797172964674629946720835131405016410137066541459314366976605739483166404313835686775721732048369579492489095972391806820245040286905682673826520963088635285052757444326700709125915331123810763153543255148245409759984139991517602487336263592942211441599696853528300746102718057600120934049020030139694946787773470321550427901293305665395129877923108096843282544209497339030203918891232369470673811081301300192361094437145021889370673201908615605140818307468909684241331739778527495368868498462348724262384718349280015331493160022888860647076431289364639815874641363437948252883727910211370516452122950522271674406064544974460501396522760889243455158486440222977721721036301559747135437349990068246261932315763780818840565621802553468245932674116887213407091550680796173654781480808427138293046614151412810620072609111776392034736884234706063180349912372560567121185793686906493885980071813209451733483890288227992076559027089805843576536043478346632065119054497786717466520524500735116179571540468167473735690096553091970383830499415445289230786660314942098794112555390691738428485745414965389783961984686172298889788373940930080741639134261743807681369464508701447011608021692322753788475875231221808635170143163104828550899518240999173863074557035321387201197510840972824936380604847803716339466920280604980568449771309480714174642038134903165248017503793723297179902378239803409985353560426218698548043215399178472693457700697073745677169990901437891346638425265756437055780412738189534189122358292534778839805570809341339955303404648118000527286688050402358379177515699754684899130709724493853445409782407342498061103832780518506765124935130778410235587965925281077939671597368437532200054141825482727830443895482353196322403447539729564126417410787771778346170387886055702354669407099474346531016210522747363760715445767091430736354007286004189846781825468912791376392268799532184549580856488859666493301288529739620974372538163960401622279857930467412916478942619648493498915372242114745354823199821177501596739593996390943162698815758005030179408769828196307089743030316693103142069851585606435279840961540568551063248192751116705788738777971839412257494280718994625766483262647477809767189619595152699967653998054762721954099856530695080640082329287326216270426102948533507091314824271720822670329556124172976855290516853761786711258877333071707546456037081289495885517777196202047426365990802138695183473216725883921535624413057232297481309574269663364685901560954983176812657184929007105614233132087155330261268015251380605479287766559571577167897073831363418287049274554074020893307149191991117521633186443813711653555629055451582372083284919777488359033130722896458531036161586905587616560698391160276800549144192764541250700155877487303520050834690426118151566973718802695098569183834516953220646936644257914486075088279540198543099387602329562224074300142699512147160275279478039623400522751710292685132603179245822232313550551604059638543153020976330024387700667522296862917193978392795213722863384619776217311429533130326047258591215121749541669714710118091903729983624114313994719837800913329180015635020584606005521755204315585278500073080090567374004250716438593378247397602453035998713121092769869765821913063997417021580712721961781049418545480193312988478004294494911896999335964558925245470313410934596419126534039709361998428040684396568852073575652510300935790256648439530025859156248346360031855529131489987527640561246781208117052586197053401613709364027897546340888029446613437397167966753147603556415254664177960011787722679144277719849973693534993839978578275146378010205419828557201977354303607978771571883632927099276252871231882134591278128040519976756645478233126016815684410500586227935640938965295880239638407763503813499683005523532970365553169463960753809544199638712670576830655701995257163036495479309345566553280327041072770670285364010195083502751242551810529184283489623740510478202357899995056085462539493971475364332803603202863289108261754965859791784627821810250229765002568278856216111738527818241005784868181837098853864813894254909195649858946633048503435413747048873424478443329494366264396486263543771679903508844973997513542622655605379478469428671799180107482313188432214039739012008608292299637765973346535838745015218154687690405888656465133462327954274171917894480733804498854278514960595940666277945994296796763589389582174630433700006409079656097407514958492958134008914800296016466113826706824316840265017778823098341951551138910196122036799749937244240104916417725201845978008407590381486641579850591013441483136365908470964603241678930706067330822704814577636296598742281322013468382633778609452051535417109296782866619676793368307249361153607223632143140638685341360345681165348846129562646025396730647975146778701119987581392081798413720088707780876690013618253350798358615315556960818259990648171991064591827761725990477432824184612903346792522071163289308611326222108269513398681345092819357397753473897290952629838605138702211410039735000199665464451253509178321916019911878274889465154871596101726178074926192022795189139254702270516336741565693088773875745727107075991925624857449663758918998259629139313981488730592946850763665038459802234123751738181649869334866520907676413980652745942084761407409730071858861424074241720803754496776002494526684548465720659471834716763332822070481720028713955502841398516837909949348451824554009321381798687088536450072631711165355284739600675783325620108301382028382954230278382748031363410201531444273562372262489708278476497821385172492562907596762388304494857535983890276745414321853674105086974896758517267876610036153943174068249666486291875065747757134046638810274262026556586867472849817158782015180444249875011789392324491373034003908519648154392828390206079233374354462882543393691063343555485418882834799801332907924624401231698550422849518652211624539655441454819775184519134193898469648253198291823716148716452863844038442220224588137458687062604896349502053615591582162975405988963394647322957971127644613221092882821713251324761172168587148507966325600913493438185036398414891846572738656131660122213762215930320427780853668212868028926567224002747292024405352021440313454592081471280370623116285328781010698028842883947221496987981333567666108332395474937357155576075854182098382765113647156198132572847846537590949396535553377686181440402290465526796845834587462799387181535649117072965674274996348426274675415886119062928085694939555367271093855130837596314846044956215203410147198185995663817864303114273819309980773271052156430145688991437252758128033670045987268935266579589239269632551888579705117702587925006181550862973841806492162210899523334489732112237216091941621662406042236884547237716953453334661067238690793902488210234265376850061317900644664729264581067136998863637031227126137064082129609961771339913333752362374977278281958994815497477462512166822435955283887420490314532315313737861553695260303452373564107873600559208223146339052934275845756054926253372547592751748915532645644924754068490870345508860492866508321593158068646325857186426001075474308215398697781591982884343264266656526362740735892441355943909477117053471387161941280871733260379371441698488274814391201211498783774512965926468989001478697297122293545077792283667225369723418137414242244945665771697832088835548146310661763357934739893959326391221078349276684672133185917537210336951670003610574174072435243399784952230763740884885543367138258535165122105349934581745642034525082768079321794321836820636926650801558067022831852030020498638875436149870212068171024863814577475940903445438655948311612695238187019027438935897004621395701747163307843858020888460352060909285253362193870677342369532630152920685131543855819870811617961379455703086206512591140068934264684510239424666887165037378202471358148820601127850424855110850460243591337844550163571067738740421959535627184994896717686852120732485147590223499456484100057853293226995910657424929040064780842125428347006127319217353322146881155043121040213387692575191366860478961170813140037437670363149390070454498897181037726988702810869477793379127960721550224726451461241252645040038593120621591051281780858706749024040289127088620502831613169374710245342431137629545819223609220386459420439896233447235069262643496057821891699777695363548725512165098153855606028595064627824484743363567910757145857362022808816791296144942666795954867771314693812858630097659795808691929844850718981829934550373396180352898233430350798414786304204105581674666386270282130574581004277777979459804222739326548421802306696545356571716780354715548031657731557810243814872846017343441454637657080351814193654466940901695497598704364903131132828939547230796255114937667891720162399693574070527372324719116448200497995593310494563156912965689332394882589262338816865523016603474648569512974720316597425392882766377209167168275216090672494874734461455642932897412299132770848372498075977422223914960099197347754849438418877193071466636321291023874988422768538814861669647772788182464255809062761765701781135870084062608366786173839877113045536612586912049764722680283304634956144153658488260408562198856302254982532926519771314390688242116967945879071487860118923054661857811138305133854853620741199938219972679270776215047519223244626121664620178230950760607124296141374926591136215068423280881491012026886908805618175884050889464900786464193740931420671820194426879227048050324835043757732660493712815744281012209436389486292681533735573646809440816078573456188551948741161223931838628232481844414103674783151209068650336369212153031991936558702545899625607628789709479555954460210947871095676842987467007385964936433209633371356633026924981690714679968952459424613489785542586727193452460452802605410286504802717704370439093543990670398308958424512192758412574806683217480463766017978522430952099229282343856353159419100399320330373327778700184501666086913560961766308728166480068928673635178439828339764328299236785934776087423057565816361337086366701167191393138903379119230627091494273172553011544165041429740262097335741477646405463432544037937772909581293467453614421082324662307008891708141793219648122878618065223999746962620698071735985171973716337294862223489570482489697496260659216577364400363266719134588490311271571121811142376788955627429695415289985120895345367240103909320136889017322064609416755419453150475138724228776238812266761831351957395457708800301547307882694993526650333831926229132852077354788083704682794411887936850209139298516434216713146913670638008527786974960336324193945919163992204723497389862054415578100264170731442961383551247458071127946074676752228832611773488568771842065120832459612862601041851854010344267850111296101602581679961585735055815364435206591725350709787826198381204957047419214991404615664185539921409734251917637252811120598847586276139454891790527734585359581680329148652938964583240494885839267199167172141453337373094862883919856392619466315835298570764284109803255401799376802000216363000453686133756343760821790398350023127410940111818789700896918003508523189410386040766045246608964194637352335106061808223693104286133056430318873922378572023602548081952996744484915534734839136688766746067034152678466316483557453620751290192309046568629254779388513942707301002636755862778127858891864923968132451102244924631972319298482055789692582037315215261533498592092963322435428525493501143227960212421465631212747069638695468914277307843029038896216565603127672825254860032431568787663191707376034182406765956872640469981233773962906299664195735872494605731384230089504248286369791963558291369574516332894357962732021992466433074997202428530397135295842346119844766682437645032142862489429435406756372561169741553661969417573150862780592797064800574414524780277137561260888679021160911156409454938442457746198287892099402067754976982459195706999272983067755223483634744167745431694916360285470119024997667943816706547170570077945943817338460494778034163839586355684072552898332475818999235319749136885172245558421835113413518104199114334391312867424445590082516744086166346646029759785441795377114978445613843886046771195806820539698374602783563415059260519865405114355910789586481646010896196836368834318979948623154135971399876859401772443328736286674547342388922103510352037671587055400089014274518557342554390285615680234875096036901284700041671406849890528985024121317981233161927053134150559660934352227250450450589046088232656388906360394949041069880998944873614512035108774246454085637715197933654965004690610268510871465788653845468731973827557264837937465835803463304542198174240904584451658387872500377540536257232595589336588708703578079123131504423389070799931171563211122949912075119484965016153031475516953679487793852215744760051967392327812956171982149996840458931500235674390249243201619649877292311385659182746989536814997199032657338340439988235484325980847490704437204665460325887976765011892771321565535088235732952683709134476995013175918381267414366479800074392540873830133476595050036728134837427786297932413501856309532747812821993523176618950301291184205782750487792921871628754528850572812944650810956436124365248593561946338590569115716046145981068492383997996611186275455858255863995337791352789164332433376528131996615626454629691982692641162802989461432134891769570024494543839451350014435555257305153947539920668053375229814740177924708934607950280972272587257075000520841467284480613411329671533380760467225205722410888896388979471015361291157691202552358459942020042476155571840123266829813392162752014062680177190008356855888861722933224406678549081524151416223103601042537173924843417119765256523618956597795619859140483588656453405004179590498365888219630793202595417042359699058048872372737454645914130548797345955883922851105320118926380140480757657434304493239760158481910870368261456002355888284417066760205770295104641303881162096206834351965920198829172599241549728260773516921020615378273398315778042204760968168026972849123999402425367567818475547399050041484733113528270453686788005372064405388089676027616376401897702642536868958297374910961933019319237205015967456522805581025726052456652775967723291784284472798859178022371532248067453681538763413024090187794253528344552321360401621744380628179401772586361112534939035002529985615777262848479450353761148061934933150556047449407035978345829749508715127862344034495547829454694645895579930512705750906103155463129831988205976483719575892642160433557594591276996591075897971295625304204139314353821997732653111569562355521374425349886705737822967689455693212456777870400936939608736205882219274018339792588567837293881516485128383446558934402113949376086023313082851057602641852895861514051817059707697812689640511806228020636817940418148908010969916697043394350407986142116292077096191578167813206124333564810434977292679541486447410473417813759137422738658298998598612844179631310368287579278461462577713776171068164509659309078674870092489343306426939850458535361137926798108962227686780824842557993252132029135998910944123686196652598099536988637064602452564486649267966428438062500624966724997666939983158639463909303994066427586166581436717873801551391351855898400308307476534616108289893887626438066037671633493904198082146577484524533008963556181195316153289718270924114125333285046341653217303399823419621154735171339130965768583495250438269113328756515055150347977971576472183034043572381326157797313165969190783326788270204455173776621140137328848570581971112825189252318221503146932688124908736251168327815892999006112690207558504128284414140257554337022009155575395542691257688364263169889130572177506053462200725636271824066623945248895202578618060943449079975918402523239081522215237628234896548477958365815972785967804756787676202621039955445023907425348922796306152041314560716270726354965674654909351326366378214236156276633493292708938341259210449376595101239933977172489956398407627977702539617599231300148181793756938729363621797961799662816929776402993929182148880405531717589831957200695294846190755387702065216089552263532577034071089989001676407038340742808721848830819834473539033121345605137305973801579574336326214794379244930860708701452010233929371502968816107961680906501706132902893482110508588979761675080795929707427911692238433751834310772189804509752579560120886389618555150239942562385752421053662505714012968666675631591112166863025624768289898886761339502931054774573487460782208880934460106860012297563364348440094878790885364636300199863975642658532331298152233162851068827783278301641093457057506633720165013788244523706896238277907656163082480406578769491596088754354051736253365693255828421013204762861239517615405953957521799788015514792844685859914178766414501593615309057819355107460164940020276002158897529843824881819566236627731434598786188918749980934972574651426048394300117368497670452144174719121314696687325233800825157722316035845332720975845374309494354796491259911450687129794665760709881496013856047676420394161262597367851259881124955599710452205040404837026592398954788014774899955640544301249511858387516269389328641041106100396505783353251202604486736489675020470867108292675432342277608470512907825761125725176521060952111408770377071372862425690375446368901955870671179771102860934644041349134206386979536826405901159344090519972484200183569827901574948358711981579591506853369151767410574917480887342812921436082563934430862558156364891008671817660775896942114559709009867053345624045974724255583368707303158190830392521306862640944308071979349644553637478271423741436086204777708916278435020469870747259407994846815336380126295446978034332578125611785128878079455620373258738678835701796366506464042429085311122951153004434089062063653129660243413123304853922200394381662398673397817018780367896875551755082114774660667767202666585334598425764659977933439665170387523756860063081542078911017412436295539628651990899881428620866396761790366783720037049362823864557685838850218198191152983770944929897433220734527471358553765853996368609042962805072933938378456236152364835470863653380748633593879885074832559108790237902412438221960261208210556667831107785734738396950131708193087306936691152990674443368316810475483743474340628063530583994803137371271715741568422215399667803227494775997460716273818568049140552334652521793517684713896231158593888952787505714349280669043966134971405982825886102581132121721091355288195883125740883685395087961612106707733422233924073028176855578491607782495040460486941125402016104277708568237051498891873125754980274799468095708541467489043004713032662907167956026266559360789525459952974474015977031990655735466765436672772049681617751265785558205211490004188232232869805473709243626596573219075804854265545642236371302943030900942400652802499782881443311977960568471865039554975840511782191414599539708680784872359813269976385984522362171641972839438339859948436401231658755977547831950254472453606651877204143111159146242048187031527734497712056659695796472719387750107523045382823413582095575288796794149191206207321666198493198723835655137841767121695031549801599821912571508823421278225929350635070787558369607835145116246624005711966870036113597983868602218437609489560510166941504109781009894225678697844426597296762973093272268180530485483928131786707652195260036230651335100828272670475483226006971750304063758174592395471786465083735233857429283517906109223420336725722989907269790467687132540493813018656157438817288844463889284648469694008863904958691654203678602388606303792662400932070636103721866710249622360867669045438300339378196867395758328398505499551872771760627680746779701393775904551599045963977822645069403397093480200603981332247266790427653783099811107397121360773141850522753841988865236199031464230399051559501723885297156584343796511517838124984591060397611303246173719621916639636625920369017335921047380544791413225520750695977808827959485212974456835270504463254433691489465463576272661752581574640441823209711404658875890953277696821300240190841286319625725481936863341894483624634551502177615179715331681091763834896953890920364465108302246825034987222573980281117741445503274857927021649079847447001022911634205051126653306173965443834768135595348819781277285154828305732592316452272108030937739127421938912670755388494252142959019537774711270442223402553124915351929768000588033994737843027711758861556627234793404935896182206746160643576650292788975328717320613849661340511075537841807148964078917705249045274233629739065510882395051736985777300250362107073829009258829922943841807250985005432102301054322699490309031972960550020902130940172816577378557799572880818430136917690277934321390636039230474673773839616956115502214756301487235289199072196869485494845240314889763647443706934213533815720647207263280944186393140950184161887938325788712767737244257010507804677190781016818956524361050887927658605400583594592043183594855949125462545351857858203508553645660926329467145841409246075704410984767957421835049274800623134870603377521651912079184455731659626680349193908088727418961271568203061350110967983625408668655444301980896770392607589019198653467852697611356587374997106978788743576835113221914003646640938458545472932560424745061294795642917966541313994330610431429464042858244558170689857638354619044995069371114075627587145541932385968237419785334086740223552707752280185786093178691216151087883309894383442875851366673536977823565947327390091311559296997739788971320545474658493059060315319710333363474217519623956904302813116699654871954384620873592060163398970553048146145856728992087246865511892121994864386931681615390458077496561905900691083633443058007807818005452108144504443137710304511113765281856905588286391216659675743832268716971238916756797480889559679330412750448989244267583371484591148287453706972877479134260432065820861324375672435723441036594054692365093768340309020656364242291106236611938924505095356520920969784244676765943886289792541177917721684906402598608686521727238651578497934978855937249166023869232315039049054106511047992945721041820075697525176131673458299331283133703234117009989117599753004826702201666535559051837646983870734893580418668274586004856478120795350566749888964107135807157843287832460739489840773780576864364243014186721007699282767673680268353340938217361388477796125807117242724559640772429474227013604519042611918680504494464611770399081459721738275375403400025835193316720129394628718581702432291290110275168301229513985790090708696059978476535262652543210953281286023920141968526847616121749878220987109418519150166282676723126727550678607249339491091863437559476996484409951389397550429011275600042218839872186158294142122821873985201190093183114684571582687854017856011250640248259115700155142115096278235927382680962904663919275652797085425754871420714358045060297299324100057534380674964068928970652937303364297307882952082488076016368614985242667246001334730475339877184407446797352033602284770828526113793870757855349808837604815232605136198124960866961546887518375967721380461221300495334165194805577384650814088890266335651777806200861337486939595065552993145700322771845697035021819578299566171601065429521646165767329766219477130726620797491650517179405850294206741840057302230058000287774042751228149279389548989270215854183414956692934411963519482888153419771469116462706220908588725186235668651702122562896149649693846169497397950595749643203634124983478552473884396442199379175877669050903478115330963573129469763850893848277162164446201691676227827316790871413984528376374437467367175064782964885493804021945204158543793378859962567371761060770723688355095432146682059074574727219629086338206264111498987109726030751521331092140927234650751815324667645181201651366272062500292297433449030776737677772082903857393925124618976026025416356817908521296895927384762940438776198006897789354693359138812058573714819372081289627943208191772746499385521397243199191805357194818366583807086057970323182464338940436371289064340964449900891267908890955837645892776522108595973376468525305788540878867047051967131500427828678000726057242622319570097152917966480121684098276752952291281559601396790142652399281844532373991215283783740352506398970057380021116012324500249597251889121229326577850204408412072123467452405038029649863749313746553430784110573091014897988837269843717880756517870545091263113805993960840649241847124719440040971252244494626123035809164450494817876943574959372089601920147122491172824422433919230377251281455877930466844222113080983417189522924099631166233156612086099092584776198580160368322179793669592660311978873427563932429459657288760963845101477981902424084482297238357638251074534819610299365493908690699973841360667929262918643932457310335107529550457661365382933616769119999900542048421574073351129713200385267436525597996579664244629170191421272223327732722850984427800831064452981645033813069661273694957115935432671554749138038528072748654062110568934730592291859220477595273980865084780107570165701730998441150717342307885020350118360636633394167687275664539803563581375212345194818135323266394652084554150728549683040257310337608737146490275196080612404992012463264454770130848996428723777656327399331420063862084859584590306071360042036866099820695822580540691971708028967739291702706411930413579662729387675564508876073456548031919502364356568330920956027115374449856852511983166822317363403254110394784034107728677907397011532457577166262048879614289736922203257730005031112096185833269338339359955157599021170637903570979463284992576914723929211524564375710904783942617520829413398472978215765800932429845902818280497074484550689984345324182442434639849647631001629088593878680155074794066277204145703464871548906199058090044619514908289522226691141343978288487070233631191823023043537933712719409821874914967778333530251255106951843515100975453655911870134000078059654706608679059859371161517985479569908593115403544881567227115566685091644795238390149734431753689550832147320432675878638066130794020048934425590066583450739156654738393658462790806837551834270570440457435955769593885969930293294171507955346053879431741585375701650459218195188302177257827172087701490409307204730150315827798235004444370403342573129536427551135273833591212851457495308717244008961155785704830430433224665629365904696872484282001609580045516305442092414393990946614843737749991116957088343186899639529713349705156675008843955795750458114985411012018777759901805499217285487863630959451698024263945771663689120688700563398188885130591039856242061947260278832612733376311494917273058018592539324190942297959594864766980044435028820303066933335029501329218942426497069501323869506859180060177373180461888895048588798890221067374117025958484851624728964011543357813129662075161167615842978376623505494752821984392044117165369650596014373677941857214850159678070803886918338834348723049283140438772042534565030940080822385788408768519884296020930891846971525913067611757347049244894110288431836869408678128210661487922982649714556762877948553011366815389358634588440188341145590260351269173072606709950818884847438348196297296806964195716834025379931651062577064554283811211703970667720141961601956672550556398173099363125959715839608839832720701996873448870352483540902065362442882010808015954716222507957119533780779952141754127274080952593749047996181755170125363532440469174447823967138994708932116702900822119813393181976104263054843590133686830741496854153650883167565960348239307886848408493146525130906197736008174484189527134520060636629304565475615292738903350261290884856969575486573584874620481126541087726831313261943499921168318901209980272666623208798851714848469022242296990284831405365412747133038539531158271434156244167408441177525049111599617708147897433458810459033390652004171176648746680658561587721636790734987661169599663714860390052704052248288106599105358173817004050548326980807478506224712432115075732651056568938455630630411461329058813692048956127260815256886600494082805069278940267002361034739660772017997036657015207459741800885306658061511319554598353011875367566794039328231244217506258758225523449846636526156037962552815596141340530818492069461752948510629502577986392501621384342748021664386990506666786033962061489746536736951062745882447314943866203959349671597635262996360596083127702482948539316337885434312021072353350628631372333038285377069143637513927401931223985062088035245737849226925868871430968544344537744178634689090637282114488346897605053724179799407673066815821515910463022959865598207939279804711854174588682317315198089261134064848059327479082432635758240436134754149595717749723581226381084838475944835795932466550720379899693252682053948786011695462054655641399516014629791053886041143916919031255859978338734937313161104678148353984557364791854582479870997957614500545387908580026987782637343944965979594219324371513843327110858745976801529548201290782377005924235839815239828198442623075848616372014299527403102455535194762390833676349556589478317455513579825011180799341496276694780487417696449915269207252249036129118620914314456842378032805826862277080935771721921464088205151250065468098512164875337795838301144618055487411987332601566387331887997019212009299079708301869012024704656808776981771328650873678308478361264422403551560898539698806047062347797491185532682808494313751963371530256170719223021593436264541488576610601457969401663946377521519842582446349735221311181933518261703322524000925756393873173514555515777044511814019971799845693381868597871287764518167702718080987389394070695743951349918232743768979150305459022510709362117341968424047704980453981029948936346963949801004186988757612307511483474824720015577748113651873290070319814473927661431448141815361074116473362512062002363046376842315254201899030321776207531444441864716236718808092185807570022635667757381853130275559529557431268673715004926876641756346206337359757213862405643810970762769617270682317822620177174416456332950040094058511315979461033846423913885705337068783245958163500458385075061300600351030029897222457002085525401551365172817550420835275753318825506329522306090582684380877111572234992531867111082074353515906469086512463765641706444141953333255482198825263122872529984223858971061401085240390508132031992619761832211077748326624558667624330040377048565219223463453045080972121759110013686587048845724685369274700963281928861816661807320164035939636752238455341010321161887220558524599021600542116713819621382636436303351067352712893249591341278497238805860931763795292698846278156734083150003048605586632848730871692629634340821340186324251561577607897143236818002067389558106383182421244415470058139949608069221509866711327698821531309806846192878371553445636303141442248017166363276533511795762367422546832762102388374435303308829436978239836489764112060524791390889884251825169413656105729625545424576232216566104075665381040301052050206765176007512673632229158229445568053701686489893526324153940296346970125233331497348888351622884807337320471402513203411669498418218241864025606460011006391222092149952491334604744288076794570841960139793982495203648899724474450594798210277714046458982936069514160780670124453428698581512761084359362293145470168464254532804244976048846987793196485222315683852568107330279366585914584136065911144241203916875200355793768782585369387583047227552913318616351276144817802849118182391164213055762170760229556770267367399065313201013680494914726121689493592801480478886361485488871113682168558056513893326330777235000728047050730450441803588581539997326955594269191180430987774919788453805833155217639427610098573519054286461920938554057798480866373056823418670419177981195079991740059858451329717262293416688225653693607103917110137729376083980365549410666350910816405443644469346220993728646240005055860913067273107349794746835547723147441654643251232874361558937573408133029786688290120026693907653596905676459593598785925919612689086170316196395059802372665987018928457926462660708282003195346062830921715393988090395035837481915455422765596650340175423973641233663677604004312031360009763194051418488433158454660374733106030161874097406340121870638080979789761367756571306259598456121188136993012848055521789447550138266743358904507025236069014766068864533692868486710232074816174869129731982297323705945466724391854094520477354855469167439749655785627395225811535339297414022297095070357087661620892546843400372403754252967780753094588524954927750016160146489392878242451987514681653634374246592763245776487363562860260281809571131532195182121692972076005415475058276610789938494796263239287406361161209776906512997302734865756807310370324297680631298351786648637112293019976374010942371221129349357061873875929315099736758426027969738171065942644716229686700912757300800060045075154411727823606638355291459453314026418998290389005938631470185975838560105056042903973664200302860761551809554502233279976323137888469647133198493907163922085067922802777400939406186377087352086198702837049048006827802596302711481365942895599071560266141021881897486627652226889157830731393563455867938534816375309708040864975240282418881789633099428980872320181222929933597883350961469750989030482578706956921504921576637176322670139679686376668262765645669294140819357135552041109544796731288112499720752315835002763201403560258180252813730663884087690242221633114791725726998603962221612095628445347958209566586730805974104908012215985585923158907085164194648448829231708111963481057187317906591102599958821343393486908524965618993085723411383264817576216085362870951100284097095532536509130353316689284562618804481040380308985798145435380291624690608662449444431328897896962012341344173803854677773744623315349494100553610982855540970061442160169935693686891870663869860099961073043086813974180044283711837299298207308179920245154378934109984433046102664865431980200993891252560287942688998603656246898448770037552070815896888486647368017047804535384146552545754455429713712231390421623298380776547872256213485014795412859604754686678003279171369203503599398766324435886289740450143099941146205224600009683951346594465017548863362894441158196210887437909686343483242834157991923306672897482504287976559522733187345075113630593148887707956084191795121347405176118360168850239568859882002055547921335750154108513582480673498953246344299399863027666661117146058209340438398933193546005137265204917119595541080528844107572761846620277327143522574671265718295628120504554669906799534415148437379944736148927024259880568227184998420541983883127697811225373802146480815167447599389207777462458780143174718672369014850428604856127111808173613042783510921905003965754703086939726548218756384484393145809460709887915089872807039332619377354518586581078068299612426068558022585761998910215731424926351889845882321102888488992565032499098181708776859982932506202126694934365294316821089523439165388417053847851972862309040995593900096316022746079329890004194681158107860575722705869212594428265838305837502121308002203196900040032807640171242319102299479224282832621462680995764420712017521594489334829839944770723788437338816765987990893814343054252836603225342335396868539316966969313575815021576289564331870257212033465266378764998677096112109661894840536026271893022721467303195888197586544118615436854934063568181394066767002996357316468967868935470852908980074415105273559686017922096630705722980199337452399467921673191435154289066320299623530901123168457983023631661754346587309097120313103951487683579353257340614631704823704185284815324522489952326693119816608731300499048828043960194086429551009930213330967847658410554423148548182275721185179900752054593144192577368640297082693161456073973011750589019059031092330827093374883003694763538556404110158159743294348605127209964884008633236649112145092931790190520251350516908510625896515124899784367048771300910263915106623915984790521847700472844918031995512267769236571001356312039742128383172282097827481241161446025713163659965639375108507474956679118660196350834776478126178233370366597924901154575626412129175975554934106863891761678387927529398655833482893494493045257987255362866231024978222772752483109047097940242443380540680662484511719400940097625135554835495569003209705780055887183999716965478922124892148717727042731873348203159696446052693521142598679060688932944624479138381082241181200405878450444921041888179341702569292232612066916439627101701762753264870730114669514642763997056550146778235000369925638389084483183627837337226315977013134732911797652485261550152643237725030258344388531093564248230834538584808899990869576200812099433146093763216048824952412965906678293466264141870580350133016375379214083534721837904681282465299001499638176111843724146149887791101911835847495694224250958282477837474708919024032530867997921064167535467274722468545473374138209725376827652223185863038928605225255525382937508035657091004813805461919453200713161936302068478554990760463035765047894720963545549617951232695550577246976725334099955489133356206895213067808105260565884826815547785057158030189368070209682022466000253018971871028537176358760476761967504599416867051680222758860798027959788467998630216416297414258195429067503090393382025725246369769332592440504536759070110118314570793398848516661873497454691346859873618603680611182671039262122892112234204467810767154156233059207461253757563409531495632850713024660605688534720602331587330276615013281112142947317978588049421685317579818122030515889721985799730358549223086469199915611385815157119889613850103776632488228036942779470448626268177421976007873997325837712764088770540868755498026026435171268458522597589970924750867696219181586717658649970486095152458970529771675219048825329937376338660857104386465975264534322910925538093817045695921684712147396243945641857948560178675745905589652112271202592803711070738710825124397379072532746528541982234355546089042042806096989533913850338585647482993534020186230101860581823798810328026045222479597474841253094854195953127840394190798936741582528744386321569856733868048912698171523843200246671813421328032143916343799464463799885591957959334316060602262169960503165610736343949613774317617112052983325434601874363517224535171408608011415559709923103395641365814984485939960375611467379239928816921740534955590028309641883556522577597639747917020539940164091689136998855563843034745715115388297773084819029572466254522457458052125161446076417355053674079662282944011886952801102152207280628019961668215155749379600778655767573473883956401854341449176233924251621388809862393775432735100428601225380093118066663344483617229435275271240240441985472282065283052162641147912726626273698128072354537697108598267204109179730914633039900678465247159933358874345867193091529986629791699563855781458155881842392906678909286936958924515536015934580717495531908011511364487091793503848418155202107661731696643755143727821222744312056908993597518092148444739360979932052696225404881245899845365725557474036298654713725865833372575703976398965249458844360286756660697889962845522684243907426028680275787145540729812805152502063958385387593298789532511138467566715111234327094440253498335803855499733263354018858252803747988574129888110434705626046682783298954430276474279775474202444243168297612600467714424800542689525860822116185581374414895801008257472426728352804862242295244765003510199181530052781739396921651073106389666966612245472063593371476966148097418214802053983226560444677522875345545702005386343056834467298654953811465407882384654044788577753535691948995925641591152502963393832753053250993839084335340293850210569473449252943543834378553040138497270028329180452096507490128204470713794918737833879546213510517694573539585345100479832176855779845591243996429700422988431843557452999874698507627451705022741977189978079886344812225340354119299436528363689683153041106427917383162673833174282616471090152494033276265661178539088233198274774190524198870551931070514560197191053243778922778281284483633795068212321999538467708193521211258037293187007407063781736165506876492246265507440502196426437545075744804074445391586003394166772496504445252137551482787746963256438201411196457178061415484943239552117333793592785222283812558771168246569199170590501111699596502574268773566012014959319573023045329846549498175547027525360282303519744028940289908235525195103007821342713829794847460755001747784216311231549936384224405471826322393285082941375386329216794299574698031212752440147846249848229586700782426240188396390792036926595316184245886188481411476595608279506765916842770499087623213806650681052017912711241357002703445567130962599704634784441459830833270320879493132071751335489399131481696767037159636081296698683513183225990037696213898087526556070362461280746345237418758127090288976401847035171212107655775394834856252780795155715823211937847973660633351916961225451059744584410967576051999620380886049435678450917837081190092566656811917305212718511351850516504590486989011934078162887124977887169208423743921170644466656501068702117273595496693700561124757475042484698991203215982102408152401483415164125290833326732578908743743842698734091420341746270031212965751412934806077897247147080604580590475038176262983885087267036963286693085023102357015131135149368719100261408698758455215030536953085250229299947380446252277898230539160210905717683644457576358663966528983496201648930470766004827166404043966032054050680571547106117740854871876380583797922456899806724144558393742551847027738483310578346071975394481701430054331645512136289797056870741609844023744014650884228308928349213604349505739651592003856204303499804085095941380047892394370828451453498504735534561263378909943918171204310644771233944318208724335298930579059736755376798364039816418934467399286780962049681555600566468615884965218827017803767505854414061063390537361418039450860397374457334714022478849202280750604286321732730590855191395428018133729814338275327252692267883464829209599208940716862875133046311140128414756549380067809246717482554226266134603915053676831521959578715420639667732276587184064296112237811487171649088715980295035296689952401364134755134525534130369816438310736350108899739901351103922689027801447359964571730063624750173927435016930370459848977507803326618942636623824007195201873260791903777835081331467435157920892310623296675529234789127101237242038418109990812207008859580864093142893058771478083562118322955971124764625371314407099674900542695284495749610445308672634419004677423251818916423107000413218758580692091642242732342518994486647289593872792600136730714047219674288128454656952658287038224537837848003401016842820290620858462788459874344871923547149753694019517338299753527475597126962777673692315907738468009945939220777686755717859286686776407025848020749039784025659783869804347099965983564487603398760325379200504299590979585169665064725987241714573983935515530107878552962030820180407892018825334079667091663764121341970754058527445523306986694393512471443584572590748383001655511067204054870882944257822890079535599014138985320520393198499751308723126322377844606418001430198206387784423305850414347846145209789297033637796827515169117183105614069181286030373997750957966719796640957684061913592345084582312785331536195667985198394671684729896168798813259725053767648162142678660635075752837108716404401263930278263780964212643398215523300301551445025665607026139572494378399287196495663859418116393179456893071698545760040615886670418253084885034938217673542541493846299646088604016325560859270863611743290975463627817921783163760844337095065308538289540577023618600389585813127665914988706255855084880818598775739271563819377107236935967766698813210334260368651297993573819197976957412363864177269447387612651732607717598967714319364088778731825554761078734862647778653769798498528568815660746235266507805864049382931227123337657825162228942669313848902895971464691079153619771682487871266413184642901129656396597281582592103103682037169392034589233752309215941959129257746104759637447970217600127421606067826543718122299255491565195495673917123645578682666285095423586293481202794055013497165258945696538518790796606691953721227483047755188435769965547787706821549690907673752165298777640537688293854897162163009626856197027651612047068751449435554381731120989723235841516714968707399158991818928733915086648744801953605625445429230307012022948610127860421660745869588416986801399686988360300977622961419669884584103910435837362988595137147293625350717923385249639449426369595925842971920184482200253277591485521609594637690171541525789420571307382241114032473803424172439055833797406988670643579033872059341437147476408113072791118014046878139615060638659302700657005066480201176883813250333596000328036465547206882674754879627332611032705045459453123459060926862084005299800394245295466358640743738388146972558244512589866980414344326742242627090980310461173675145672948775381385553656838709421420474178518884864710102425939908603301854821758762091423930706578799995837671093217232916652521515107621163553862395097898649398487611374705384032949546112004552147792071181504394416545857509855755229813576961131402009788951194274389421619707355976311291112438574189729008250937092147504192901468858293809490588639100198743752051642690656551943959242158838821143984038485795199352762125047033948341081667289240846383643388091713263346203619634103687740477281496610768892998606863591246577793924451193811712449317502557316109535899934278106764787592828805911628670751404006128925385016884360889720636582679942050440383713637561341654102867294926320581612962895812257269703992171597779453061925205881669493032876769991734474365004425449213361919117224302952452550220236327899556150896541100841890438112292366527942501738164625492692928711948746975283026418613526391098652974839263341508939243332688915313784885512653216864111144824223760054226847227893246664707281464084728190705274307485928761984098691448405204287592199877027795728421998510652086031092382987253876654611340168828613867762123781757634527017510115613731585602402513465454744334046835159019720336041586593118887338486417018522205760274283155208680300720575763256294179260772386594946990725435521240677560061082042906308677244258030411981094980953450601037658374795566254740198122371248878200112032431313055080328437167233569420696483157540766975256293669268005586097166411141002277645300605376364516142662281383589433492869217484661927288170006270405763926448995888511419311076126065120115869433507730457743769801870613405983532865925486586924576339534578254821869060802629365432532586819468606019038140642367581930744539138184279542389002611244371385543716437626331647947244917113019505012760632170399202218555632243544614266423654137321878327928443264334502949962666150097432503290572175892019168777445610987110031755485420805576820085059569049392874310829383630798988010543006655677474467000246316573586837242962978192274730441091939607657217105063621447627150104100136383719840631864523121478109211768459567476097528184002757025894813704260191092081616470349282747730472677262158601776423784541807070660465850213361147798252781481210899290265399495394933691389500780916445722863022515046627841668188745067555179337876426414058373291921275978316068291116407268107135621420774398907139278610503793799876537945135484650936030424144996981414830556418138510073879090079201291184120948414626888987409300712732777322403296753230729920623191940519947653827893293165587907273804246763952377046376925856520732063131211021174039218520018183954172380742355239734801806112551821894404786626559002052598502812663477999111516236745637648539718619047281219996155714801184089104574722877468038439174621138125548577538337497282266077052584006781855898868811535255624103612858175261249828697955034950496797107207532892242540517810049761339838973332074246401349227704713019027352841693917875311657154736063004244256456609413138887767329378735469727206730021194725804473231052522547464288787081633767105559641834189962644985312777519748429541224562626464701981880804333122147782821727757317239875236977258368931641671373766774935095261199983282577385565100484437515225431589551745376486443969813169848853106019618202179777646991600956608687070538992060759246142055458889222359002539378466783483818312916013697546386750650468930337022884153744329808791228649609807592994301778221511130636094851281253806950475078638435234446572983647458784258779613410910250843439150377374404517138247440431514263322168553589251064802893817585643932732437193195415242060805660583736622326504884208851263685283517828071007951141982031248794832096484148569971045122676347494868818746014336880706805784786982055047023977202320345587195431866631485392568954275201684921389272760085998022977806142814188134706154939402914222891413727488555168390902494625132167434962412433112007826947031295458928029409008041780479269209480792886213572621984219190284736855594983902266023710444637498736416701827262580797925291144530956328546729906829644145937577538504392688179675007581994953898471077805319522982659810820249036719531633096814180538015130608545818714002721560563839291578600101904055062375856614038670377599008596320850988715783089113307863270010646206096086411622094603776578244548331558748659257887209465640973301926174129280034414105675552503202451290854081676369084819070630867795250079011582461824109168977920111272768046150027745208520929573472043008183518374141743267454785591514876782969610033446157562309010003765216200887854128632537321860139806590248140793636040779347724419724582373053803101338876966468853762556205394974995334916566662650866334001557798998935429814176318006081245294290764994908153736191241685393700036232718256533114388264883917934149523790874927288188318789804392052057353736301602469081496126111403975831726228938088135183869174842724667696282891837911530237018330032929374112577755225879200072156269872704188471560782227997492792055304864288988473404615690355275487704645397454752328970863474913737368902954264754035713983889542032631789027029737140392892380951184475121856348811985116569319385715068252679571783355513672421792695996166923420207251012242222355431844237117805706000240615679675998016967147593658983757398063148485389414450584415961956790184239460287908103434889960592681653403910855541700125555148459603705339768240327753291291856611967437665314226848956708912241800918086595339543777682083339354208094157002757868893598672582083218542283900028403135740761315374752525999403356324349205970410596006722110032229795654483222901983916097108315848795596323626140019321332419486120938026238086551273301159622896650325356719795400907146247715914668919098623423594417950065105817588242486274548684436079511457344952280766026099475398503318175190438192969377875823727531836304439665108162998526362895777023031293727739076423649403467121676819483379673595841587361399550211953625950571130311307674104107748633296339076185235434083060446000014236752629228548019498179195662505142608104909952996264512168148177710594661425048426065393512967385255608186371215314700882390284328759060861847799403908769876002925653888787675857658620775001459107738294239833428614772925749477013498808461731648620368025876477894820814053549979572670279647880135837709190185687610035936128248302967947891105926753122994305478969956494390398753116931619047361386598808996540563406238361457643155339145841168146640044300981695539354981022595486517072803682872727171844076392800506586807626401149747613336372881364010221653292192993036659527468261241351049370598531977033263354637115434161718144348750522878391062060763150296725195499756714402733075316287176744138810133025975299233162877991833533587934958118059899979183907881028602286057075289873164823534738799202142383973244226800954030590226149457017477575697206020324195038335916503000062891695985165206779854392491683664504334512057365114104454112922656405990791225544447208486413908822561214116388645438168667090376402695680408045114786344006614534809934908868665423685932484574612761406423961704676798165837907398102945173555363789156399674426797760549186524818796861759683463611599089349641741905037567368019621455585341023211939965358676230856836459254163705421675301637126005459606104530598927689582030048741574903197360634398531667098092281347789262652446144307932259174791124647474021928625597226023644019164142294668833329125425906158070517515707727460867609005487788206368850411671277999171737233878752052261527178162460353081137942465944877052513142408198625423938099376268543018157648380430017075733688703956214642779816053658586448350091061185773855597478617544049376080155371398242856122944903164497188893706635914955247591393113812072498724027875451680913029393857722761970310361421209588773976099383527737740869298957198285728240108760756954922295249532084329310145073682170805282148765752419527296669761296811515546310359401465186318375724814806426205227447815693462417167403635458511019336153009782298019912788335860864678647853875310832499105938740549481935046801160343093152684102614345060958126890967705225307132350091723288434385608999819150065544269137361562334982236166781563553884773179204175607436476963005764636459683981763503187990466697021497432434962498783223766504161531890815359313183684706582752819708808710802117766495679301408810296752579048184109284447095846688624576091395963590259628468684648482668279035670538653325777110836457636373518516215245025775282086247071296641591810516686723888784810301713749251404794670677066370424718332638494816611665913002482998743946581980663655025082064737056994359635231225680733531872009592154901719368480592998408181910720559694708986353131291614280628210604296219681314148076664648270600757095619467366867167538479161277589913141908599005950136854018092121187029281098718867035393835454625378113557738302908226284865113163966862054230557646963731178586034468549708293196459449314876414818753762433187482027471287589274588864259010071173826573548887752681292886745079280090494375309557052947807319153046416720027901709617475453885179951870991363552639289463886810059316853964075468223810800919901872862784937459649846714741175342122891331336208821768545601754222685583055363725716563282915184190050942154616911392195023665276324229506471927556053208537996334833528577681160346793119793186406598920591443635923505068051793102072060152803681284601705665512933409472615467236669294774346902501677587196959734182844166697026612234021329234004561244905875643165088048010744841140500726008667634033210601007394835132563152649943978575597146562456873411029592835643345694800901446289814729835358844372173364744377325886186221387552802994406947942850282581330105729236714424840373312900368566918908370773826697187812731613310832467427190377817955793054023214906795902084114505125477019149917012499309708018683089864248686340331169983491929886664355597490241788671078915385973629263707013612765173583096524581181797734528755980448815313183918713035561754498078907077772065303218001834362048200589274858724455558223550498686832971280276152496782719449155345011110265921258153381205361981926033624705844418922975154493246248120997960463203796692765948728766634513923628219548287230226445192101264252596096269687270550684048810464355301300614847432069058741389775497295405697676026664137655343802134711850222238361524610989236469185975177601400420356558526381692444170944781507821715624532825676164167800113088197722106430033598225286300359370530976683895306275584744507498269145287302554624179364449081776799833361790406852032897554096576905820288997713873527417752897089302389141728482449594056651388871952582099220449042522255672237738298758260823301559073033067529141300493228994658579785788493053432585227055053372620524162854790121802271713193081000314210549175652099804242941485322809911365469797571277339124950256753132625682611809569955400938198492964701403370522128607505746097322324400442394062812849054112571363208143748766599128178410624772607168524511638506883415611194317693328109411337126773063603913955856627511381237454236615919759747322702634505613521035514036982994194737315287710154220342136485795103832281838884878225772591559834332985905252716470825469908982971582353789341234070587102349520157636876607579469598053515876117296407603083900775604701054460671620069351385075129430072159355842981146321962005214086774003630672096317993222866469103833772146883909141903858181972864865164775778671562304739729114153899687802711554633064102852821911688830419472374927414431676975027578117023125097858380214945582278600925568548660985089172683681683068106650144687955950860044873636630950509786718030382039950694952273787109656975120969946521508664392386769939094037126966816831526049878065744461127151795422868950993848814511665306437816601197715769835062630585440156032805755173841512266007741517119753084795963675192846686348585263828466218390973333491896667303583413534725201554438968316180800813419872683515079603735897695113893392766826318627422972844816946503194948046198074088486836674840714807256737124437176470761600905429544050652571719492766007616419418366635535489590719448812777024715999017272669613114976632179957853755029252752722407679837186393499886197511945001593779995371104520972808186119740409520397798860627338803751102134867820549246612508549181003691218800499486859987252471430835115304070531053700324418698987870400158405115500140982931132907048348470122041469517110678088834572657076110702081499394222151250800990486033488754223831138461714584303970419464436997161457475720133189876050696006105120155483205118615973364019654253038316829180635809084738293302287611771607180311809686670466289109632469708799164116086963425806864728708965066025931344271661848824694588592236400019811961974669644003014782221306493358690904869833442597538397249957632418908862885966439493584351979779594028240653332452270415531793430895337018765308852336559352578288902343368265956243137696778470422768981115139151772006859967893261061449416171013918930112547578341607499125537508362430570543963923595491647683919883877680307331539280585244269096542721354147490093462301533622209771352546887161750689331275038177890416670716558222283226179920715291108146581013462122153989594069925908987381705405405533839853141643620575981305738110888302490699777758579928267328885365784706908890721169592302820740459211934537593536787496249568665771589847691229062458405998008439656304260242851608010062807849289077558164965594759839823829594674380231894966263046430058058760321099423602230764434643811867204744850089894029550904845825820913648409224241047193266635901709742300604288775872986414371537242072520177382035579413490574036138578760121065937565880342099688332115394979475161215458779244018709360565333624397595955119129427019245699584751090340208726589568382507688933426472780546502654241437231078603679486303879994672428569057572753448158833838478695318975989094707004154154744120382720036037628078072843258495381933793955370465514837030949988552256774494386748199188634243901147369139022448461627352405787683051023959155218080232165654375954678055146076456519846877025595654441300746497649258811441514081510485331631610897152703023846583774923794768893345738917082615354280424582913731527345833033477231848546027877743120810754195159399423191034441146554828662128754607246114415766965911305030810056922191898656656630709139089217261635119470035975005443472260514329033235728012924154808466753719848694470788531394177626723169852805412044183995481659701962868941956567265422041485591588432171139728223246596452675526477360061873279718724931505919842508113545444017839287255031039790071813069577471283518322829773462159704276918243764759480246332143810094342215657348323761196428243531020968375895768781797476241798265236891299578830799620720593075014990710920510858440141734358831346321824835565419225671895217346040958834144892842684812092143902733447839006449792384430841413466504253730054652737097973887684674041931015211767216031092095520599167318099958339985971090568145372542879695051022427851687416129595553413838212193574733682451018812943868749689230197755617412666090541614290109582878110899543894896286195238610089590411987172574655627167429890929563333636084116666230879300582238648518585564204598915094762365522826422266690424987344122141560452725602581662541340805009818169393659988676514755537696052348219974061532306164304550587835662676671537919248816129898792026196808316506737360116976084459716862375426555112147601291951687614062740311915711784867638953578785131952085070064393649951819948515083701554803680513126498979308955769044949791036673939113314205847374262805671134477978739670999795656590469723712228328980259469491682383202426341593325322880778390053388391201593928782670032924960205427633779597271955255182233090418134660423454405225192389716712090073812959569304680601160286515359777005206728857738439349048269442210396482515967721509730953563553257822590820069995462452295396967413961948671951656435890656914275905585746883225569520882031933030545266490959076266191953641293652520071835631075817831081008973037650293981545090530711773654072009777632388596504054301676227300800083490360284430483687432074870963011744933088096685724246614278581554540059430387621299847651603904677636980363909486871030196025306331082554661108150722907120515366653911585917344451407708595585025326595078126674606042277240545232400022116830621598728165053163752115057691314672325754399317977880410093037688095748335987965739534988173674175871809508457465300793258535939224509966538028222311664365422012784186630462715428256778370726972985365823039573861841726139511867794300258773945427686819485582921328552212757797337906786489273421655542826818356421821208108432256277605717271733733312746781259011537962869696847054796117157502355544738469026476969312766754135400990661290743110443502723845260509373598556076711276178497223412645434520630217554463247939003851395710232655243482109296082295283910283358243771193365597147168121679928804943632679098751441733769674242381435575131468087175903907490002418196088741530542695768769922473110691907168719085249638124674395469374853356875299857119415024864701068160745331654732056166311301538285457124796361609426107489090618002160696472654126455313835400664460668143014739009965143183038140451393203492108231095148326959246950073206433104648057277189191308312880777871130009624578879923069686672593989874470600150519391227262811631026415552062842830370827590668000186459117719158389951959878804893280916314914284888647087189117055945650078204709279102751744179756842171334016706868406712762061796497826754702533105410701628701896789448326674228392033681885856707982832260009987316736562890615692321420794007279360614997739085818815514594599732292134830834236559602859544218250364685527091761406807034101086104441378330649069305825661992982396186994621291885083272541490768653602017641160654903001494253703322862756272487768934736509022109809357412138711243573017595694456407922972178753766350857308152892269831298484888068739997657603804447304248459409199302533435869839476199208054989331879993831594826652897910190487416623587318816751677554256342157142501080972822570859739945172427242535427915951786696378219329084333227760487659534934754200570737173363044398341053839073745866397105318751885345894409124457982678780397504386598589101544659594265569120066009700485999032292589429145051826910196946067730535220534211411506507738043768487130217464433826045053282928747129221542080900862490629436403756534580451932871021278030965890793777840557904776162407947698705630521201093040072682884899111046305979615384310671545367748864317923529530247146090421120846893904593743788160434711439709188762979674152700476025908343911489372696229372527508020786281675021904722239409323328942530287332285605002128380099510883200554426111302649111964386496564089729665862541759147934845596043246193579822309328013990332120355083600086100882208577011650920398476317653108710375019786232786150392638092527859912433945108737979186174651579558372751973586257835937418501110494258055089924787147738391676049549736274360670190255940880250736668968252836434772062934161905423739535187638536227474116312460816773975404033666296354735487642304545171532146531099368797840989767309791139413193659978980576628156016243748852661709826910688125050528216893205074917808472276657422710347395097586257384087136269879510729369478788443487173969591984130619862917861480435990411553653586318420404511450721132097691628378129519038231837679288846074386804907325767950847426271418348156197055233011348217804174429841794195173912572915354472112014364237755872969113526086012217937829337085431103096099143747718671606955218799347722375434394523727645256397877017361915203302509936587182385636246120209771638783372512429272504136482175573268153647670512425844978069802870494089946359859692788958886925765812113347765187775710948063986566958127200912070059005591753716753385491453595332344284702656744883683656256909687715506202070550639550656946875721153521891113567142160558301396975680704648911240059025368885521687285538263576320823991184010181140863461998729640572283831339777614417814037478320490364892545368809450233269749779474453103746765064032645846238883670757680192426406013077649815235606553380848382773646410926755655622431594036907488405561871460715224214049320193738365522551999391889663668022216599043051944284171810051113409843396004415600359609078669273404015675111042082946758750057906271429802473106199915842194797219371743645229480709525174017515346204590749242171162721252414047416222902149447304368062717052839341234717515229494126596954203616850745709959782646091264345915029310595174224901387660233073514547850231241817301313735169292556451578197301850452441874677048563712544923544156111587156019638719341058730715214664290742167617522800503263960604363662912912754855863495766922405027433870014180213772738621388421182757291736115659859109671147084963650952999510692093538826732413925868510290321153429301694558156560886344052211359178703975461078861577627095512395955021554769690426609171567699832894798642663743565945445212513915013293384815283731304446713859325497747011425204353910912428448128291272782413519520225485122346391977422600363289888885116686747606702201169340027933219955454869070121158749417700850468661578937447627531260304337294334753713035883813661964158196777215795721819204995483082773379310699442117723199519348709524699779962749719087113097056039222673279579934333268126208506151952016003404701663805103715869636479717766316352175821343555038172567805464049536664772671102173417595361624907755556760025757678476093106282124710237586465942469730460660068127316646890625164962059231733278237744546486039278646815460007360877321726524135886929625693180821595459346788653998796139177102986261192115471317482480688703785349360639671529875163655632927262403340536309475413393228420453063011372347936015145744535642667207362026655858505678447429817777655360108192068596850028799792882560856904316282499069826916297471799950140622430476683253633571430519970224685331839249334408823101682500525552558664783995043887806855418314260632819688426630200745770883663630559195525704938176220998609887439997349144829557946178307914752555429054044059227281164840973387004563798713517064344598213922722430504427441084767249180598036795274808887085711057431203452940672675754151675421390146343443646333078255468778680377468422069009866951775477653217569401761330245640785179531462134528343972588856855402065278647807438962443879128245551787875814622252818043642910476420086323169345584648466899504378713285864668791070517070541500095825753853679343598470928237942181457588518253012236318711141688507303938282872994791175246104147715607185671556606795949884732251694241011489268312390740284569996763468968705211496975151538657885973224115691845600361040502909600245510032833502894702542533821087434546271710132750582011955744643697115631432745501852424272457005535400185131589224534733804288295473701939641447318249733319289542334231369264152958934674428648335828167108674485418051600926189480561399936509364404279897169003254754017476895376857584314464173110664171108079884550670140657719953190263421640579551888462125436455893962006877965043337806933377539601988589262293790199950653333920542677049522130838880575157628459868572355622203351226457888842696946774557507846856814792892599478538993444755545371287001860194804776808310266492830415947935998568059215564494249109372606115320605583284312234990468462798378761777118754458007309340720922082109664841132591084838508730790112253444446765105581990817995239837436199088790271181477065598199243698365922791530807078826782783116628529941065796921672649277790840786785905704817216299980439450654305551003567596623738447000556379699496333592833388563759716526209799266284209424566031941695175328837944173724205151374856766578975201768082365603448810434109694789605039416852282088244679501654058352707097636438374306708110423988758530019786068585254070980727451441763443629198915301824670072236063534619928805938797832459294726000375527627342959996531641797250849325527138319688053356591707182941981925529505314301386008258878029329458100620521297286062818956772557000537899805628747297935223438711929763891017148306731278418944889423131102898465666983486048816731557439622916233661789737902838634371821693343641591933029213028138833728983358842361676399066684587503261051454170067354974819436777105983280142822195435353176091632718430613278573844552166557551232642676639822553975968590280893854616551756993339463494718742412482958496725525563489978679219929314170789184197925402180268318071961207300383177294609712429822815666821195102103857033939800055901783854941603676446453352866087237730078661248634595667073542320265752024890938193779966708081986101254281664507430582663968265517412916647638833939646727530191196176133663939765679267416404247533541182578480025330819384642905685839650581807549068031920735734413831331945272218072120932915908085483948730036191702282289546994113450276735400887696247024681616549226555866878137674348548068409358421403504908667392914126184963289233432859290717228518112189977161104359628206423329132193388046829371714556687896815043441270735756314417580847784730889880817279495845946171284063139402868476256748631046806710053456512575318612333224468388934439703818288670494200573491321975661473609791027860950737544047917052402512973395665390935914271561280470061552172219106421237038523488173352852316639332602318614798294528845656395958570961516529754046995942788928448429226865905124590512894678480915042214444271834723855498988484895268893424060954634966267664689485891896277107525717269101740074195670637037705729393926724061547641095644713459239294736734772836887873599041558280130372885273178084511622067603755279236478215785885391795222418620063222919492539388926544282723671791353932353829515891400964173651553749818052693434303111564522823586691649138742045303782226289795844384188916734240140164366355321277240813409139418912668186450914399630659954288411448062032507569538589051246036073776979552519675888895765235968763182114150057473722451610003671572189778433112433666397871051355750637413017651482353562254601969269394711841525681267772912594984082287173980863280266368703256155036424029250033031853541215447109789631792488045783448018677280146999330568488634900451317710538679747510294529881526516164686351268196220930315214586206857177562275908218150991600230989611144111178741665537828464309909752967751910159476573672863329696099368582461800047276469881855873144836416333105070831258880725179602398688864131020072647733384514570271511880184769164878209269818968012751465118151580402923177785733276784361814320481927504583513203572786926662983539731346410430169352503375638332133326159273290939836911649111365433097819207676327531217335460909660473484066820392671548435367449792379713916180958160733119740024490701273744690560590855397317343531055641800430754929634498738641959455651464834377717017147876787750419106402205265306607566022312655147140329663726507647679216353855282107140012094783010318307875457423390848948346812421318529504262464952406509496206407550825290983978892282227315503024913238396326474274577697710940530730413049750352316482574893092250820756787274707494741920579687675050350321560230611396698348587065252223658352639975294344097998546808530825600851008453908584626515782350226682897628856271789704989259187580230759102865705854873390447619504689900988980387178276255991421292009224439618976688008406145696042762325603073512889741600852398258509669149419172950188748024862715352956216863179013635603182222092427813210886147850618034804218773668786707546523051608222063760952785286020810163245234096310246551780179610196953024346263167003676262614318175844633123905711180973608017296701331671289889742616097565957565681709833049338888829985057653464938520103006428783749752912720865727381756023598387409819234647795148600454569791670839404292078982759909298112059913056406956344313710391306025805824708223176048828211088752961070965039132210722876245860082553088582625996297199268157332259687652901775240274411888007573651609116616571533849580273662108256701676118076747467470451272471098191448318250653627528023507387077324668084820019224356360208041084011931271608094658453458976189504495175085701084805992959483933251329174578908132785762201001293077019827876873709528370408527405992058338451053168450312523067985108964857444466591827744960617197008002205302639086550987410214116154272587544681636607910215656421271195886321934877491970080059726415097168946147607335347151258699440025163083007476798498586767346528567246917350592976802811909622168724454700607909816507446975092911272719039643431302496555839181536006648534654928197453169065930466725787257994052763788244249367777529577739877290680584793600074272156562637760750464366334984483268333479286219831475723015117683390537393633102509230021526898570338258867266136188856763640962581963495926186977741965283499869939943132091356995271056954598578203589037828382429158351639876320693112849312671487156572121853565853387622225913937559771721328517765689520664908279819053401703185115339532768773159544837982013600015041543379816347770496130080441626577695489615576995887190053281622072998318221645084792610302064392906975343044155981388455672781982685411666963641452512429310761475784002448533043346301620720894928456799003529627864546500377143699836818360663526863381152165174874998236526784580870451169480092541157550698387717691275545874971588144609183202320809670500827008505666363465279049765430883045763143325127259888673865592891278257694739816409279397001664749687363013091338090964885534373824121476655253542253822820284223223566823444785255644722526457002066426615283844080916229175283513232952352474981012643514078460120499430579264920619793784200215078582749451071806580744087739621176308280758615329527023639485785603425491638771459257446184761294154790341374876338868254466052000670478726804736808334234318964871175402885618099626605467884126631760338014043245689487049167401471967343603111039607273252289772737013140439100377188444005315680493400099236007230815255514048161884953466846889621562841710114305837839694372989009636086939721156760848129361753422062203961085598453662870402284461211487812482948654573487181022805215584046374022500421281199390258739810849868770458929987765958420639728264124134317603319733480659446978556210560580190869926246793836419760197587961116336371132744867262610852702883934426866516620133068593143962106939503058354058900761484796985046862565913809133886820460811786760613270079627272471324239822032251045842916045825421456642806544095336451185074803461589647815944127799209361133916629349075442785737459164810594502841474227036406698541093576817113496818210318007529219433927248765940949515565824157539531356894177172582971398773008725367360065096715631103331519619568371374839019389227894196714755109679763006140962191255629844263088002290885191561311833526724238530876657109667067936379327899031411259401783940400859202351071942445474888712357155034896369478994670288555668251732748968568974259682688587872314634197714273310603669987404613020311810333003971428657043551631029999190007988716180391449848585699057190100185380926843907268062240227291140010535973549043524963323024928282335934653581662811224332334201200851696391551425672958880930251550306919141736761947159466284929451898862847545270784753895008403213608769119737190959218511965279860092540536626326695616864196856143977878013239578007391647071575876639239565753962118828500294050582229243863179672019952179834286602171444383858633664650224453103798682827288422062077353003467809596694227179371124004516011285360265622861450581583611207304927027823757643123856376378749610315649093016679929151163854089063474323357013093281168352422195380490375737452693217957249702230987317054751071427490023088959042968248915245079923408770166259798647295972237478864525968428429727830350778861168722137904618905411149441390996041920827973801060141916187135031928895002582101421178157173422134194166647682118386669018100483004971559494998899012397278806098442131333162861734547714167333030900457103647818450882757931384728521310558493127275713574083047253688504090814174453408899381523412943974068513893529484177976535115861433846175847539803464908868349947393456545566223210076944131854501016451225436602643214307748561969052856929636379189610452652178382749598733432338261082794366926092460840378443395677192007438347349304608821994456725118486696588847122984376857277659595830471888493044560954052502721538187871719417158718615662143016799191305046050694535758745594063708158466123354856441509282168035857219319041471827221503340674527320926676177469017677338088620391283873846237153190873007023474117037615555461495324301880997593543279149378888850733452100534702441268898732779356171179137515254694575950789928001844240591437884698058690195338035527541041443466378845202999169302335001166867710579204104962146742719476562961751839041043316475595211664756090318042389583895117163039763581750867151900240260042453206772271916997076329364463423493609629826781235589261734132031685599538902467985322471384941391807681805879613028971316096441469466668125714279139310906333755914162049527299394130228158383882380197795400347464416153905045684763988377618944795154098086337528458197392558119337531178169070503889677092099482764988760593989048750177841732213584961229058626108229080136776191644517709955932506199355238550232296261308472942317352170742446426754237961160028069703009601050508238376525689129478566428483896079128305189783853508858427107992958856292987929648802531182739918655653971405921876865412105476601185960035966486078911700625742017278972360611862967518798089342169252873453649239942325158967903939673749241693456183815760270632223014464452935831431042155194513854264312523894930369910112107520684441815180808788692158476099171572154326134569702346702055523700300459205458439822406649199858563099163788515449403387581586332693503626275297579909910226120821221921553037806574005827162541978247971117578869879956124481332309337601942055783624088792802134664614014641638429161783388542364143981092077449601307445305970228965162679017397944689132312962368350903086169491516589551196312737377870386427413682865451230491024597963431060428509928697509019074437202574269266986817591495433882128342424002863248651113419226728053605182810516718970672263605334450052987974449158250182637069314290849860373029889323301057474550005590629502231533143477165573279092970438762750109345499616268561404516024752140065317797045014507047400933892664085424153139135864724649671030147762594247970779880192366106619929730214827161778436417979893261324938922049678235772959922725304020565393496527881512529913798231630562305498889554475432616677605350662908451997885644224918015632941075764910763420159131099379772615456528759950980732589692994505225928421235948013378329493779429343516055122261292474369620016191154903449654047032836967714118592783925940508390503501659077625097856207688694997355718676762475023780302803184840913785296797856846589235660161770814655193784768874004361572071879067618991420363124758821566789547238802231555914310683055795022524947478638390860746193893772693073641679114013785787020334919121416847553672300611482477774789564735394063675656627173736567396316878508915899470957250500123779323036552178293525271296190584394191451351368958190313088716414423706204327898354197635903845399695142194878331257208580579415940414765698532885876673822289063457436894234046863068958935194276331245938817444324325496175580158677380834731715961439859937444040190275084673584393747234332626481573916668558886910958817106223392408681705757015834019880962074382157085107338819234629684247177882205905786663964733754451875288623559363892667732409451892903724194526128540465682067490461708403982815913479012171340100357288677775186052285773665585874469628116342698134687482741160708631496089687896380893948061132345007691964934416905428834334629780034481096920758072071708646762491951998942331969191290570086541789491292318928565631689842017991837537253015740388366929561959458825614354381335360389824929869374466203777520751510449535221445677331931206460592926179376278809081146277642484578215319008714483278729451881538143642086259195418705798676710062992842711857587926956315482285347987286012069511205708636440440967433758932169680727483368106990629515527016862892074745571063999519545788755480386479868839370162010310686370653214852459749992093837567080090755151347125837307758473944140145492412922139020940933904118182389944022332617854514439560345081647318446215544515787676166103661451931453466962750552885353378126108987910320083382784493182962027259012170337258710973783467232787388422952651239725104311248853886537718350037496024798984195008423986328784449028184672261802350175796666943592097758241098601057734596091022312431645745986857630400461899989300347816829604652716992217099502445807520962522646198891183283165934055038550644940285861341092345609073684481692704228915375466599664479612110724638353302124933833681499993404760624049959714581629190301841022998527549099950528251688848598610632084207826157533260941299733317000225220288292036963879167684961857519674336817822621827856601418853815701800383184029486826853449722487570494032235569384417029339799407912173737501522258402749306666094747888004535303294482282047705826904353562807133892275930988162616756762102263287798568876965172198594941114854664876039536294321142770238634007887241909798108017373905169984164448641303959461705219209172159215470178461062560244450661633217064201412239792224025482587900656113037262836396228437749131981909189415067028480691416377293955828637586936423629628819920586663716515257155794999929283560983799804682766684314840168686806839061380693772494833257533427256607610548664944333242558894001688538622594253005279910599122211017812815731440451022112290361531513943597302029868849788307153085904468995394693495372388297941667887157141343851506669461872514903688777951148377586304919773446503733629389884901680668410228240056774379516917209234737230651581180007477995018287332233619456754276741560583229100793021460279469067989838455162244107147348511844520341234634632859684581469638866317596812558044339352674466842855338556846065283348177012837639361690377499586439443222233092292863776723382577924053407029092202620221415331936313929345198251667054248620172432434284857992036216370830595031695060852003422863266833607372118364361347301148163190802379018663318122635009375511803395096278567619237337151639349551309083817719030794103367863109946822372709074575559904860941060531510037088254332331996636350679129936571663259797290198072515609183456216122366377964478713654929523289525136013326582861987826438782926715047030740276921802894917414123298072610698532696333607453168817208157618865149148157656725369855857112082171522719138056039074657293120813483905653687758991230962901129803444397664340338050732803989353746491275368648432626613523672564786957132676925321133053262810276986019598765027334906302778384006175852703699233523781073453195777422433037098732723169417407854204223145063640076562246509435513398005220502819292147971670760912636500059036958157496862510730105140827841226578190012295999268947801648282295473892782184887742821092956835030073866976686404648946692754240306825466724479437165279066819301590254803218487499601347281134063763835231448202669368860763792593887429421485967952739540815053044839782112489414720701896083031723482524396916742277589118653569696842927389385805216913403382751761153552043088145026571624098065874729568292212416184512949390441770670274354087469206859733378020958627487817254713457002125392669848621029099762865394636644668903978846809739568072776500063254304271257395475547146496748474442755214870955337482166734070336416456762601710250799358050780749388435890338177885539606118619853797087009763742064184433264863472693025506500320121804224655792598163077383712363602181949445878264978658257770617343298947342860888796534194381046657753485626950868968538942755573824777043561022898616074498154238297907744726910637506350757644482392535286228616609565612208840197884808665420400017681830683599910569603200707503162268495884901844793489883315469400022799156236847230756739854994274689240605189467595195674801357689029898511902664814997476922251352138749145878536990846159650043795002369237869882998221268303926456434129602256711425096983436465470991592074971017274181860379696840107349647672536697871637653300225134009140923984328652335682613188578211744533284345709470998168437873021401347151470679652734520825019778361686231021161819095063974518949589605124890912900008200954682962059826100125267049503933553032608499794915114802139919442573338313745255841240766678562164244119062193800864743579548840668488112112387035424463899722523173212086304337745337780448044379744748302214331358049602622979834026139875995773126101078741432169689006868822652240183923309536110191950084768328251792136911576779611291623628761427362037441253330528452096423631650095426621088000840005300317454489717884447787748409518145752878762083672787199446220962146038643638536147214818205883853068181189871478164073813749177758892274434592940237001658463388190715073787480140042596002154344313039880265170029343795912556106052001414913133093733601777181768986533804523800289817837840523601560292476961365184599036636622872531479785428221344977600539520994913406145918480434640425365835699021794781925058067240989660007228806057210121913362315837975133528253081776599991967487782285767522700184570531926618552831393968496916057047674579322884452134380454266847399284108965869558390979875443568931996059794748938273893748465027618653395887193984897323972876778548686715424450104461448740146597740987262037766575841647703867080001027905303214950703131348302926473504987013688998699618609138611317277138893400479614906815637371054909200341637030015003930021307782133915333776272529020059456871617430448406055794442431659752280475351737301800503709011354291686323133290790076704244658950231533352668139450914308380056840336384140399819126721950015400118223530303362631901430004098537653430052317120661454350710046263123840410533467951168886248356990705837495972376766639846255263079354335289313563280998166258269609554898007283651763623640682290238419216329387703856610934199897321483646849288620497099515985962812334274456759330518700042940639542140808156327861451532146039443657343954002509004849089915644434164616744958561909458097375448292196881343148724467083782671210345192473435047937088879755546872028255850040336947232302754514341381563026912189529902410028273210136189455658710977694946969280136394958264084043917589384002148566584914245219834835150536489117605217588941944777953464326151062837636707938257721115380828044382365625954619729256926154877279480304080710832798787551186309157171208942181705466716019265468464847972651257520359184757536655312347811908342381756139967541391652566773803569973891498039330505204418125385392091559484164796297065936278338732564675765615141566155417839298428664050272853940909534735957083432224443969680175546200631108166691577079083100711875617805317673378967780204875955109767079848812290156081335922586504420841806532014799581570644008760567377506544383615158161950890473564540149450269857623846179973430056818688956297865618548260043971304124524762422184243527436404469563704643870550919140058567569431537713622625805474036124760178742031089116535913549612836513801008602529597689312280330835983006857612196490827439553010760213877847911591354961560726956930327435382573351056939165448145057714140952196143114456906049122406029696692788598886780753002778284142979608929319967160753401329098126702635458442767082428936106252280256707340153847816987236602463432888298825792897958579801445846580834735157017014239694437831340389506966010178229440301917362373503484199864653963248632405794502733370138019039293842968305718069481056801911089342884916950184348677252841720188236902399714208087466816488203056458814554242551022379216389161717480570662539522464857848551134474229328227485378320660321191689815065749174061763095460433024178955041480818063223027823335282844687449398064204503920592552102100205156137887930908584490748389421572802166219707719830449993904123903621224639358125954623447954885690383991399286404804928169477455982619602080504536830143280169303208199262200948273004900694815327094711751392050853781874702653571230286318621064957260941136343675614244860672558532863641338921104574557725727410776066644838979457673787372098789629904174317330755145118251793519857506069749951707522226947573471096109438013708340454258317562526728685271475970486038815117606309929636539061595514734398299868395652607666358188831063675545902081054157053985258979094931873476426322690001102270528930881480725056604117007459775059658209201644915986398813393238025994883730294201855865673900158534173188807966121756313931002946898458872725497609763339948844648048911304702475624011282778296167477894212981374401244676887806433037133883586621971990865933637967570454172648707765787316195762718172738662757957861811763774084593223951536101099984945720414342988600716343230656009206931872625525517227417954137154805983720531376122446070314450169717852010797982774474011394682809578141737752754390436594480506774481339201389137406444203868284082089295210195509839194336278619683038488175695574243623636351085516634252926509961169111009588150597848993813817829483590614542598155200591490068931918110287295693494736741852734312180478757998834876071402314254328063786478756851328553824224599563796560971282406575844848908765866195168186136375520230528535569469629302959908423292928897485292247303050028045402471645123254114961810760861275602254474593611186102584944503792298628368306412716958924217339238550225291085173822538649552809120604045601154810508241811924813824240462087114570854667279671895885675438145495076634666236925562601978528503838133022351304325620227096925324582364233140376956078722496941460424611149792047382140405786439151118356392851820101654251104135287336898303113982489232548448227311361522042426600868309782245862644018242634243825496165612471532565879304682584756613586784965062902865859384802382171233160165080123960313572168335315020593608253692367828283596489700518873114370091282929866710638589257220491646008012829201956761800201394281923427152261299116164114783620734768506272384228031329850599906578711443999573110743561265835926858321076839313705394027800693842107367819399162148067354675757793851289445832727759233616808814161463663835777011028135582151915723291354358457412150737854049218051432211451584994713659930556396144355917450694410379129174336056009576861074135723831458976111343849714003376660725150510817293259447975469854907801751435506535789961891227795614249994154760792323300348066181590240144664833169089683779011899980599756136803792181136351586094612396718713851877783276243999724233895627836086664430562129880828989686364914814955232791012702049082671614050371665556566327396782508656627873648482944636712421788043605971678832828282630174029670981174951571103991084097879655239620369217273746749248752996565864545939320106271460034639528400104744604200404982324700005960696450816474851795973569101734717678896569029088763530397857421672703793918831267006417907213807317661400372347045760271858451425036256972362079282461269180755700276603096603835333859428171868874011678819767295187520187567167423166435214348128372964336974951633440136213552773173933950605207490334746629508397206621655591599323524075813438615696423188834002886841886334641653618363805320868359612198590764849576504383749930821564191972144176969303316902255531615323690360091206249717457240846658596780806921285754579268640283688892033070694581150666882748485871209917712529901330801280440036571950362601739331733372157899274555968346780309504200937316416078253768086019652330199388157203552978990756168180517149002037476909035204417940527450211383260501413872064959583939062082675653971461480897057960000550769120697456656210240053457241442164647693409568054141147357439615752660706955294233818492212968522672528879328972476795743693573318764629643453849573344008910914030996079121980427610414855573228825302847607351287055451126478199784661690308182015729515217521286605261925968893638555029623626859567961425180686021633670714042160315091828924431309471295630945470278544423686274341157660068646292928195841090071721061416616693817026143520007372585608690099711323460385842776846124628255428109204242838729702311595933053031265555359491610110262699837024456396091705021836700770865381117509722218787198326001852497997312807851640811918140638264263937772845921261655013427174571211110464176076560983306132922944532846774547734151943319837198136822680816898162598407337150166823585985927693231721008931193614767753220417758226218904938727254945398253623595840355790845453799938650309522426941327040825974583248059860120975881795182428847435947935732069800976048527870800219105300924790524038028822584252118879596953008142896761533514838758400729679309463073813792528004657541589130978603646436810626764221542521735373740281856073799619241513238142599142247506034230690494743087694181107395104530738769628274503555801986993950219101852543124251257498661578116065316042099561545756682280520492912682088283579089073275731625406652649402141173876233565165584536745825854575171375041608598897560074104318713632716655955618984912681516122010537703314383386204703927195958270640900260096014961250629626255777453350253618486108697811282148885776364869434998811811452632774091261499808641914145619078814697899654763746292360468695096831057992329454209126634165126399265248952930457326673833547656865635294572339289206195155482025913004275100038328290308786134960406652182989767862389685670215207219328080480332289011617685097667704692229571348228705019945471541256500812487329588385588270845068361105973349020726052339306762546394935202787006401659092443073909014201062794813741362110748483209169548331836548751669314792542254311314359421522137394923746977626023583790118257916285250045828466509581263064565037891643877772086401510872149498519974954854542357159328861198895605985258592323919830174519923185525001844646629569709826988003659399742800784851814663326445882796915244402274629953621543049090928253043558882490492547423426644481573450254477819686835877135098229353314444304913259882996186739127388844173951141955938009851089546154797983191328865221062901632897427202562218732754201316294612489213115606617847369833474725518313225444069406646147601155585982062105426104854915092445886968724051787038547894879515374838997843328987053295043306707287224722297759918301626590931920771221762637139779755995383902171175540735770750072366937712646993616822481416596422524273657374464791237704822596463569037958875590976590597632981268215037119379855590662657825216861032133249004250757372761527513016670512028359072848644466352875843383295087531737400138444480366370943237264823186434544793602236546214611113398691096622872545005618810717805401926459457759187518500032622271253677754991166365291017295291904235585981747956433103511467083654838518764511988123744908047046262112344247110594177398504721721456331065600623652562078660408419541806786252543789114223925119312625071891573788350777343351539565108237835692625091357660470868541392647766354324246364085591781411056323355423599133991147797164885352905451212655978852253013995783299177368619122503777274129304238582640839754551411782868540984260161797573125435213203045249111122297464111951172766890998564897363000835726527237183784246203226554354879822998027685075792711647373931281758116372644621581082819887024484780838154082260627498525506294643536416997540384467239837733775006157672786506496807397080068145682299465813965960031514048428919313615082225004280414908372642494089804207378429832603126293371491618238119181045006469320517644817753279059636868465969261879079233045756414731036136486150933958095071645143718483123850086108086448514076282882136344367015225078012195086523289358426017867102388921526182539982454050634308575097007868217645556392507155644846901601074627589013985202878977303585314689289112236723204449209977110112147448705159231158610729554594960922813161737475747030143796119722136568020117006888087992404434647952950200602341567734615457428118125780884764091528012802326783021153506508088166482273767019776984682005576290861643991125017933453581735478956151256074909058232589055526070874932733298328582436953719488011029028765527293606078774191386617601680844388087084573607104130355738269829681530787625661513699548291769577113615033223366471956041690152621724286315708875960593058512243858801932820842606426293153350004162710251696233065837945692521828555408566867065044642312693447861911969319563519087781965881418994054896026497562577868275290837888648705313815006104223667186402749090140567985300038202426723848948555062846214764506286237376201318829692732684372728869767305390140700595117873430818060359973970525661261844005596005067390117088923638271991340557165811263645701859291983162947341040011957819591066815135161495517594133557827391599171270300888871213026254136094331498925523869582292657021194465467076091516743985376733284878643422605433134642975403779067757784743095051968260779028330545034304992883151273888978617210380081059960907809329893046165242898434509850351082241518586963550588741583230107673758789417334364860738516385152392441800707084426728622339219622251744266082251803727366017233686228359012839627792359246883008890529216751169811242214386501190101854781273542766134942885915535044649934523221107795565655394600643247528334929476734964818823313128109887084357389664782122396262395296503855401330847676939113508808608523647738090120184365084760150956858889738653528796489893411849004053668124067006426535744915873594621160650476985007114989747610684528582226975407866915172936409013487254734978286831888915109757927118517617217215419041051425481094389127119347340801612442876553956939931199928647449117340576758030304458904334795178782360441789516196425517549898306044398107626338634165424373734922255999474974462937611206606556154144548961297849786518996258912170922571693939718195252854031457332886307321419709917212619941655038125463037063606094469043330828457623066369673598323544427546690433188564058382501695802214877664942016767550610534179868194481219158235829254117466255705733473827893238352308213822073734689193931433939497282296102190895100820973853220437154532013342372048928134562360086220694596826971212815931663596675831029161895465310527367499821300108733155412706614845069493786808121888551627816564274150665015008435255545608544019432097180022525075176755657500825894895188145237902613453504227853421138294686642404123822992330326414892158711177276211830457302631633660004216143789034945275434992232803966932229064398092904073187215040237844433182133050509844880187075591557445862580005929351945285403810633411453032660373793575945934684772150278955663283121030362162124964817684693622389945418037248019499611872463962488960489318697999723905754726250474856750387277109453600593514529430633419548888844175769882780221427432855193653894389211666204079867755064037302905909308866224489621033361268522049278686574323599112830811457993209838920010049614998673208081740563530774313520346740964120855512411793455231550348102746520786678042817760727547591756267932687368000178510733836719303516485927705100190863620869660806443202246912433412086735977184730218055649993520187083052973808269589284377854344290141565753139639236122122550663435609402302495293008028784297137642816088274675840416974235083844451757014545382839365333655405095190268185115947161524576992350651926312864841349511822932408900453450197572464450405833234763500610842158981141296450668925122725292823699227000864355094648073164842061296711701968286224453682355190006547205373504948974472822679248407870392217127599646419326579136741661499992991709571416335917787673106502873205266472432481274474777606725300651368567571702084140735082511552904058703929603514966661761775463439559460913160877472918523080529039201282081416209977283102617082379231697332422209503677119389267782604493357322404891449772918767208136606747428564988854434987192708977864928586527151062834054870446958007124699261736419838213067708824232551975579295695030678350108756774679502106875302232909947342230893434746975502786032703637246151529879747388186482478119799383794093343109675738427468601129286070688254180690389905689641946462997674725658656104052091654459795187251381124766032105480067682486030761963373764007094819430001648846762216816955554333195442465161788092722874157345620328559730704425847600924110500135874828675221402471767241626445020548401139028798133384609987799978826262120995213116820862897441661032325795395462520065101728715613291264441237006246448588409195886435332235783662748512564302262744621597379705474254624674132569993853451228006817148720843163036050827219579818848281682499212954476443748631395355151284363175057909193268671543381518816114588964363344031267478394789182718957754296914010037765995931965075690553644868686546325869258723006703378587533540690810764581073268983139381246896207523477535387823573284168715248836666241175388686730264433797252989258474584259451946821224549523757091099693245162309525700091597764076970441000705111241359257607758081585621170631020727737288611000714986194390936901031671091971742816194193802361268562794334487362676046564553827395228841301034039485057863865689096973238632079096884502281914866591943392776442082840225015758208021121197469466366476632806606662152229817485835483191409551339947389031876154516639584030754918539642356765879877668029497653227142588080618873870291299520216105151497508547726798241627309139788653062956127032049826445091513382911995313801938677916737904140175950438693752800238961186852071648649928938037514165427694876588691214680858920249003725661543281456471737782469024083744744311717249820704681618706188459947859434194265842560569836754548747586197816170006435351511841100842574742303042417809184480827623835219385771578510153685447847129619429647859134802099863153672959977324610759813902593123012162859698154433720182965810406423237837535364342198609771241100741652754815855112726717067024597328810183769078123042632767249808323535022993402760119219871736208905135879339460381465316795768209079986110004483493176738842333373682358049734712864941356658378168276625239152236827268076182235058281193201214761701094044600918355220976361048483841810537357892236654765408526041533981216065786478100074442176954064294328878310799672418161558290864672526916816447735963921366100578984999073338412239502172426096660576590280797554278351700014253319344756811981561052943225120006355865942044207060169898598266416069158399159665320000792649539417487820837330866770982607402638050245745229363348308213538812499340464377896817835577908642415419329398848990454754068479661481412989856355359876301143685838872611298074635321011018362495194997172786252361893309461797881325123899814050383546647993765650479450711653342884476231574499544198539004599172799721265594458385119910689477107069141790093691567123291158651057847978841249709235024534242110654247766772768234911367687667134705705687823992131125662392489201047647825072945228684879106546783144298948214717227068577341958981578871313719829575468625933065517202256718721042233430047195020055524926469074458139929561054618967650494081015345035393410820339270391923469830900718537140802692548814692946246390035559150125894824786118589064885030697957660909680257022326026613762149585890638984906893899271715457514371186420262607529754722974460008525380078489927127592767117476886095584472296261420010883810091310483672061505013647649508134648814716923722432766739793448068959604483921452569635250069289544282851749844685410370088278681029761771950821858429735869694313275337049216149167885617514593818647635251280325264403512877154631871836785431963099501643791896910220878097179534109566103877861007735839100116310397727240808695202489988584474704327647745605559320308852268425697092111616005689443618677566975040883214525891745006031535422452761405088442204226420214558727744843865109608869917101204417187214175918228125977069475400296990062733753047394035795189884276374461728825087046205125468782592571020711105965028224994929136457367801672642836960499430362219198398062855661075472569867779252321881412739012862282286349780800948224550361873719991450848161530433136973204668720277319862248356871429757390308788807048830835078779325027940272573880009257877135125325624944585044116584588480198785619216848567237888567202656073343277371983795866807344350843926227105129384374469507744843706831127689928213475486979512069733180771238282335530071216962222771470748267553187570942726767059004072813866353709903224209315900878181043297337305160524234901220666331353309307121803127051674961763963439417840044692632073479325619289804970153202729961368649006125387873956335395598253271905760707709346929360370712922900333239993599011406737031485415923768207672478978088372910989680635426455780853498440169183789147984628347964358471648375026050687528434795506763739276548279061980419431296290727808073520531282861208154536368836599998638506081405648717103380834949223960937014128977366041757793187422739140905952334520826472792388699333409509429156089228963148475552986332281442594246296797144820371571118338929687273658390340131615483756632228121431977070780487476854569343988084720358074312669272611011484509115637497445866984153507488668046063869157598956783917413686352792939316199177751054692129777748663889783554344576870093900576965511291498802637219066035555399840581225222519065263003595530694953558383164536205696006525179386987526509610435116980191340783455157407029227331897464825544817242656207872557641048792226986668479524272360167026263347166806642110257744145398885321223445576995268789500619357843642797418882249361860408597533643530269048052648780968479115270243423287779392075473309875415375158512578770685581685704717092142803932433751645668250240164437753655615560104126561997729307333073682644434770113390664203385345329687123784488499307895564534540120468631701493366733841958825641022132148004089963661355933935913968388731693739958211788642671529721396400623287565772685236183579535795080871656813813090474897604507969229110254102018457057622615302215864258537512576555650405457085123760112995445487572860462814460682438940218542539253634487201819416632540222209278214026164415224271100943333799938126084693657402667183628900357077236995526100362484940273581736245400208796968050835252448079168846941121455272104497476149256264062167144722513084371310749588663569292153426319022807255615215733995908038931622038318670061036254225436445788919670321539385640558646521446642885165244641830940124478981449665183068952577613781713752501310010034352401294049054322939891024239697551126546494465105313207166410605865959804434256256228972408698540293503647263005163700643514034862476232121415683810651098413038134620394531021272724512420177934668294160419628189838222383636866482111229751305280983888072627711946337209183471537412097866807568244262811831204022736069594590783725440882431585804653278067142280086393447871857851064449637214304481477895743829438691346394123055285683020593435439435945030738519643597559094928134772982429747020269407214123356323818436868334988724192500094393129576145340486048401204489197846927494119810198426172573581223088378909036116882441573140675201596470156563962135167675257001671757071937181979170368565864330049502603873673955625495378423055351366033101466586117077874885627242609984126553518369818018535593034989605647631658367979390434389787992774270019015415371918271464651503696646407329286251995192591877186069367915509718389995017127585289217420480480241926802545479516976217330311185894637236897812366271269725216014785845674585878478287144082650402887932952199721629953000518004882142054845319121444487138053982966457325337361789572018763396575065808180716959299717686686134939555305895029900283439911492359857653059467865522011226781422351999599529580070745916100645689982468592112396325758007545624554016062811424545591670726299526006761821505061868881816534498722533845099099812553464748887325393766724963776981630175174564347867681558085957362767809237260951294768166594895663951549137594304277700370923381650836309746513764704863771837602102815315151857685312755386790470487096876666130069993448762809199462566057029613177613589727035337946957223485529246314787329541583886817239762247007532065946764937927484897411517682030493379774078051267062913373228961622730989496455061107901324463122095558989347843524456075454245107361960355616614124608277437089690516093561803920050322240807228172408493753940155940479640669832455819892685848846615844546314867535915362500954986120264907086497124833221395145290968391194195321964321942030854057726469129242172916176430008890587570409465348879039387309971064502255096582622669497830530457677751322726828774901629369042211563217004506322221871299678275102103668000601839632449026059628217122896376709522869671638448203086992395948031793839083652633425937773131103263929244055047257685946959987910195042211103176064524471868740765333472752795554171788267994182100666575192200027495263883590411447004547519524656522996346971331397973302784314012106704022518270630904072488282805934848233610969954173282140245184956471904746612741291849168151824158119748694335721926711996317113422542535884525659280344188169758780884055655467593327692941548589702809254052234320517583509424019248236309489674525318358950615429708623126934125654017501787995971180291761930459673906523562396848432688067442423648178631371060959846360935045492893346427355136995055751868262544301770341929865239196347990705351639503885347287844665082105180279843046323008127623871537727250713247368186671202789269869820301835574193039091065163376019468848863529737841735810602451496408858985936191161700819970813800612748913375224612840456728899477934216887318569100731105654682303124561910720678884360388986376419573807217563264007969531951925064687649054383379229028075532791202060319010063634897907960142779571303653088659015920883152538754266597818047659002011819655126607417707579432770214551066519956920319467842969953168118439457719664589357562333605641708903670233830836858117325856307412666729510545697582282879223685454228978235849843974317275566393118041139077884357292912413725636171726289358134543515376567968722868817761025775812468164178555734448566241447561597254118454151786844758629997027386818239714409228833925647430789729669990738283495471030106858862153589652161113164284887115628087428948892545394699043078386132685454348635163990194969354514516043999285330219394576433731493088185473408083633510960307143685088483284485281520618526765473803106921902387845524951904238162811526492499818895352380651176172963296604775099737530831736974790642952384925841766927569074203281895393273692805188074313606926231775181613716593896111318293416492348574272659698148036341916868754170128654775293192054327490014073553183385033036081321107189119066601514080809875755189767464920967383533996755803951327312062880944573147761772110807435927773835747275389842327229666227170700055674453474879343249873899721129958735832659167504332789732321081047683683745130849001301181651029515129771346129697622379640151724157644466337344809893428960595706629155004249258507531565419425258492657386416729203956989565372993499321740973126527038652719005000592962944928876233146414654309274379375956597022589327280407539955205659279660301322105594620968211284565666405154552345882754035391944434949368046042875942526808131486506982426167826240622587900544616105266845738209639967770764275448611527847507127150053672391951656290275998778157364308431218003975685193477316737881485943367438360806746076278043185550315389121390905032577515223154507649744570434116956174328689757983414410415905821538364740758299775961148607480760327469779289816260090573254784697625189960233296414172758025145810857859121778570589406657953925175949484851262206496308463909033615762386906332045074308249354631150944721908562909213840702108516330363290996661170834936136221085923570282950504815736813666392123703928592131874080871105756760718624773988718175736259444214346015929806427039508639406762988977613285590875464758400509359338886620016173223575056802586192714397243358347115456893381317922470597585898265208763870854570824265813745001404841158034036701023964282717409696755269480822654961757564517901812632881519746343405980354345994991160788063567130591294272468874298466030380628440841872764478773816055972692545745862910764419215589221183660069435866789748691057636018194407522726275637801144334008998904396098729359702261363893519511795583558314372476182476059894928179695369206902132147718580224952981781667820805998707903853203949091300300264878237513367906757463030089334040811308683035014252167667619645237114756081871455319541275887873211769095022298158097789058325138181430798662409999248629378005955666836855228441955915023670258986629198403399341412383718893205413168757098228348740749711719542637474037837251987518352851696094576453628268327761534743971208232670116713740540921220024418431157481289536704765347819409378258743141031488496239882394448550527828878771146046209260774473751315543426223004832626187007187758364988156675401939179267451385029687158982440683268234396563477028771647477978489969705642201277984643806324309639814964734223070298352721987584319968001114188315964271351724509865247482477357642983461849458606149455068375652526602006814535054473733839970452257968698685362967789608650060033310089364858790012837059170808516082958744342551131264298072412917216226315576929674494970279253811588370664672778597626232700429834090876243980642572836760411735718972036847193145168433975221720529739473663785627983556189417092699932830507012049715394965197574915470000874578276405144774073774742880405286292540433206718776879681886267220699240095674765737444734938055131045050503032183732113418597738571882782590710782544983005006831227820998917211777311527272025304133761844336905767613198043674080100779597594124746019160740131565990783043963457136295013811468151390000828391204234785350757943804214687063537329195894847565336015341426781313399016703279108109288594783361788945594825485137663236594168790929790313162343944713042454515757069714870639714074437710621104672361713196736773639068302783404026702228197759867728696089341787927926055091791579769239386873710511295373579165028537274626949091766478070425542784430388376553362700597646475074396238513719714013374152273377283404225589804485882841253112191228370473567865354541827770358252041912456853580096711076401317211087393257207174359405773135123277617482764633370300930235141518291114973785315722377107019283606064860613586686708895480964988251090835730978802436342617478959725443955155004705127539919552997181666811539523721489570576563095426666495265608861684816976588653662422614361199945868099997762023686296591114818968994051432362037689340032625888381580107088991200632498764929524353087539989922621691646748310226923884655882642469367417730352516401803682996682486447378033254687955540733886139480593333717719954049703859159964716091292273936004102022729979387741850046639680687695234816701374397249102216551558690698067648003418886832567403671290942649970200160973247567635038138303858233738428824352237041111101588153811280713027030395688625843266644546280364837208730635660415085856260626513644439666458374963978650574941861170091246760471430178928505571046394882832849042035636824334280487913793181898980168959766659048274867777916798454318422919280993391977943387242727298849259882986822077714363584243391526182529077666301661573531874318819257505024898108184377949692210277138699037788363259251974629544606587857979289527524590490752604784743411210736986814439676770127010212388367607540373147359431017560606298356017861405892050321422980255380164815463880011152559066209209405343660791700116802121735618448427361952570437373802253971611034141323008075836441183063123634278789411935484940368808267860558252974277111480588181201264507804014286650982136376800878159888373537502402219789058153540330508351484578723240111368926558004227341764693219244402306026593463746763627412161151533136157129088662825951347739187927973272403752577482947306077492913092102771544432762991542383372055677856769564929056223638227702103963273770432598878217466337454185469217350665840446603667077617272801517474639086644428972755518334919693082138249169724611054759552781967090128967323818307844416264015875700087738929613715074877619080834713899411488113955924561657911657323469123082048901588939128395164691415186674206779685130252594683626152522858445898756074076662367513878464828272048558398077998111498528333066446604498727431609266738412121490020666516412393052458004637443047354011074128380859951656740214947168067011720955442890433113734569598894578047293501896418366816410555265727201515362281128466670728931669745181573481772305120498492285161158147303850509998714631795130136125839180439887258678608851326212772870454470998423139627308338619489910501933792599771850289905900550506051258495292680767021681240962819933818703359831348673132212545841843036381852142027031468871086612596935905551409984469109608235096913683364947548934279200353369495003547108164548517708819391107274927940591831591075431649457735028735820395407158071559384746297305677543352590079412053574842261624324011896699991463006772796624692497939991823788236477401083958701248816755604060162673038062482700492677552455738476768322937594106722448564911592390238666583199384013794580545510519482988787974841364786325611497793025689021684602923833293727950442131756199048974223338464522458517953963037723115136173431009235961657299802530440367376240712671821801896941041678946781045346335126850861677381040831308561709022268130900383655335357618560397145342100795195567911612763811449870947150150761985678024591042740583564257788259595252443990970538794743367933340293015817117011616048775987056442092330840127319355762028740162197635780673883655033738449524969851026695473192896093731625243613016503101456070104208474534234705540175204964188732129667815863231670706111263379273644992354800981278656088452882526251143727853185206472544564386951814337817414979690001378288154592718403751239224414359644339466764169903484842631632504652867060834771483131378088213350736646388073754615546165488212366775441426917406573826140541241509654568364420404644553317852203561347157568208270836434149781854210297978352508158601892814023246426731118281592431618189948395504628783777765100865614171487117289799652666224055745424498495119212271878891838219938923075190659204995610093511051879743157770740539018310701630647303966223182076207248498153235882599522501539152548965472841951878726930193637027785775607397294721676982502696490059689303909034677415359723587987434007285672214005335636580322605479385334712500589842851513386399619652424641253049049846786035976121156390370701897788028707735058420377038050062846339990705558167016109805903385713686992806641067214539302742804780978251055480725817640240160791962985530556960493351704812714471804711875737684529576618412038479466192296239997531920723491000187077489073674110219952756315903450713251344140786671504329914271346780608572797687418153221799305807571454581062619877584842394927851264107026143393397318609442638959860131743662493553702372562665559254286182234051392286650783569071174027807274146324744742320110195211249912847833155633528193851622612722959761993992869612620920187212368865030759647517548541979179971687180103373354132081375130174828557534229174637130895244468908242185991465749394480555463885969910785390817620825633042711906971373991720066020009973470194841732458348788284075854097084922859088888564047226366607839590915853975815600139244123749335510252038128881658741971328235616890658188439356671777870903666946133478577441714570269372815664176034192812724533301394700793494389048448784662234673772333175909966928072138088691576365201148788369400870481102247949157324315164786618849465136220536473032995681254083097954440611914011178038353993406464499578127767823360957296751527816708454340439181213794762222693054664632149039552200907666984866142935162488760064864351735593207975250079146051942966792273562297261164777012119406628429684940482075740659801265909250996893358774049843078183311379812260107948933028434217401220815466212937638360542897141821845588494129306443057991296213416797594981324056239067212914202080193825204230041554732424393655864519515041844525838999546008005315111151959048535066158458240222975307732016606494829292323047506326429040130450402449214612914021304979830526448898025676637752935258436864782087518156575987578551230046925928977033955065653142958290374355459186160792493943825295418690263681359999674009159008154277467921984761617307980946706510594329867504704801959018480273782740335271576088545637942083592822154850144133148161429540760197842004511755751891439467166881154007617902445028848666131616234434593627594845546642503466636591139403124138938362311379701936090546861036582334175642011738756784857229485633187658674604570533992291419064783003052971036922446171294004244670547839460202776816890722431330326721481560754081145079570137074844842703974528528246682255781250118501073202729825534767593655339496422104263406415386402801926938058468434700253349687693795847081629202901997268822662568137451984670216850870975854762345255529895240221809715312707490662725469108915522458531300338180262394349964795956525150459445732061754672542795209961461663613311257563385292648430081267085830725644958442268219096410761217133356002734956484992627284400149234642116961684807964280398767759490863107293725129392187255550837837101589839756470333553828155644155001339074723362227959540416215160769139925230335525499708189014265484786883971855924209970739857196510110993610416924052016320042406872740804522671112207384833135552849458342308085726298444423862088991818394248356819999803770162329123410831960789859524139474518923029845919088413956250313439222793695635604519354070897692405910298323920703329106043540138368377439470723402489378718510816910539944897402291843868010685695142651929113156475583979741244171489764461610025829943505381689977256602392477937493551605352683356405086444989443860540264528267128181111289109117690702261924314419031896569951504459788780019857106119081858943827234105548357091183692231141067941274531787648857386531994805919683882142258036709941153567129011329598776208483196139554373133969891782330575026150967155385015343203494328157158662339823737806701130843151328761371588454882605735791235913384410904137082814168762341476741225679685944588679822911390675542395821294604880151146276259752961449605489934806961273912621764730356068360251442228666968559334371364107071545227683822652215606063429054063814543014777824140163460375961339285038429459366322370324042014718109995379860025740380148161963709727978233481330169336725040827178946160573509142394714390224581423465216080952380804145829339056238188894811619842226949798967616874204843184599677331101298436194231786356155928552993741784845924535954720309436030644131472829981975018427338872268326573599568078013491138441839120690092942348246738256662290297248263023749456107417597144905009261142718210943009523113527874950602230060138460890331735980416730198806175738555167093236786618213432487433718462149994804577464762674209304832572094819952519450577505063284689138677420678727575844962064411100354779747265571386891270989036713334230345510735684533002251381538847289945796202874081366032847454077105289188031948952993057956781915053888856875791900858157391678698155631309820119235135919624277423493822422990300369837630411072520889015976021318015788492680784630250749671449557108361507638966089144250210798198439031099992850686109550825129174870405809377089032600217346719278586844998305947757639821670353094216083227954937756169991948194372431873400520547376992646541911120706989683312936396726393145116913046603916105696871641861257587301658776766389282092610739249386993950096361671490041031744734395109386623804375742247481826972536152838112351736558500286561896886054964888148181375079208800366257322426307448055347271822249036023164951427497369235625249174449360415160138134434937516433178218490172673600167257122386975428464568830178926642643949306542822621236872769546109577451142139545766408842319330103430231220551709050376873548259457542693241160208509231673123476504813123371683101850385416762107131529864300573013383354082014913939110016904413111596065513861995156787076578516312746368806072747695472726897185798643974190179246029385857359339105223808313036822805083858553583333920951042138650358376611845672170309769875396880913678911365011537551889792042994711580637999669831607805568057875992472172154553583547780736532574050132801170711199724949218918786417985127511611418914484390233211809578113039352279475197010244601939340920392745479361668081780052132162537940684276133155874876764038403329732385106385874908549395006861330468101209352581374138761366997522679424194665467150628428236015975557888433091866497749125965202635110738354828229295183067543678404035967656444277580539454111796410950026487780030131496005679361720316284172148383922547174590669109917890623369372855957929456446661255300420865294369204215825860641293142779562525544563001834217542102322104465144130468835648046699149232590031531206112360686838766377707435964761340222742152472388951095961809120205313159871858879201630655509575990458732306217806901432435948474859934651323607032042019914218735674636672746341311104770341329767869231775439184713730032305792886238025742848614368745926217577570962080712865902082691407546682241926986654702691022828507541129851327707431831331470252517489757977310490238435319536678050836038276174390689751352166398017521296640475276176914517468846684620902574732421674264828025227508710528371362810920072167723865256584327488910060762902400780434596557944681043029008439598491373505346902278503225802453045901899823354764962392580463341667601822417149511963909530703203557571049842221796390529220813557930993073129408149210000170451301572037199658731347228677915635840447340565168206830766983179362876489727578196088433618632650975814013353182018064825197935600452583385784836554838931142836132191907263772751063736771291706858684505210125573226867083610257473609240447206248550856097951869468375663989257791032427415698544367875590119686756629180583370733619075517384713029599562537947733709075500650284568048501075214392180118988863395728934123409475602183724542258477273389338621763462482492133652434711504403753617457296002550257920034068124286130616229628102761321454942532134409261286320087201917632431683180700327752647075623104845190594777867143979713581797673087595819988208619649914102779734989329344816054499063614287130828975335829043834127041649195737354411169772729268557364793762582842781720203204031011516831724237576957731162386169634791182372323282345489361959306161471559311326439505138822202631070789290176231000220824777462738685897595640962488541247371329859804970826644586083874632872326776399817846746305470225711660813450595344357989333129748348865799056999682750766523273601217633154569658051758124318405328885526789289975569248375221007142847843220257208502037985905869186248942084860418571653493282846598317559036718919008596163423787345232029300763587903330679919924594311587777939697226153169708777255958395132669175488362440011138184484219938820714540042870549119749041436005197225945265714271731960628545648420543073467423585555158856957447032134159834940806853456389269538426957742705034934853052217864104306724662868552967774913266983876055592462688863004607678998062827503629789440925910112173398984087134431345374112870091038479549272641419815819416101512584639166550410692025331858762766706632382142423857588797377305085873479831326129921276425894552537784690200444477816168929320672673311146587418793064149297771794450817693626592093103655923678764170205259713636449607181456401656293529846022498687913688217013956451494984542836907314437917466202331527500595868657095526931220302993320481022409791015396750132809037968533548004142947430160361705035034866654252831513448611959537493535564364771207943184064788674464950275503191407653286684163665140143370650819838703203067264885929816730698120665039585006848459919517427804047797776726466262580946587608874714946910419273040566282427245192348526409091709501738854918024734221683742507826943907115591228830810325157552415749391661271907279034481438091328389049318327666487238566594314050617030379793479327964599638879545130223116425144026716290391507728632668432685993193161757353905155414527773426029604293103223298829094884489890598429991430361554756030118109792727142252276503989568781359885624944978304926078619088611821059480177859425176870769265879967368302750802239217842135480467092638672048352089911637201652587654904081023861183345202664508657590259873564287350107826885303895547786773725332600043973559459066781846758545207684533129858640092942863773982927096927962410933586823460884263260136157516311370868923754076194895815235424044404116883346205592295814804111782026596887281958717260055970002914507726094633420037643816631215489036631929132337418900686701514050246088896083496890757728676625601184741118166667937059737099576743564100329306275119432893853842458536539134538387278952871120641984562156351921089141280284373605324084011077432859629383094999286663206006346723873755938900168288437647226819188855753579203504929648067396208511019595450820370006076761451218440480767111209942907459296532818947818013421558321967763594440081861223259881012300887565980118922653162728189004867742390112923636492729162252469521476371222268707270721080176553852904798668025096823141230781006465964012916085036892572827507324549175693662842375158802345874865658531441242249108918461668272992724980708267134982536151856045357134502871601189889396166008093411950454575362283302264462988320824949042124629186510985197974017847082047282958200180538304132990826369271948139117315445276870764386701056910080339833259456665532415675087682238757556008398959139724974253590716322419356961606886503872215187148600704317583302174851937318657829228063442599639179949568553545973522528807159344202186727325591229078158012976898683544304387856495285239726324528716135569288946506463582737691703760761767082273103914102746500186615899901803411227956072671622542917031030099477387774833212339926470937589658152055533956578432615421510568088978094954621668749510637061663843427388365163595613879929009330465098086414867252430413705192424979735025901488531712715483579138543420112602757637577485268089392202044240895171739526554075053842601864339043303451832021998723116734042745732514905246924136280852337884512307347250339532324090560179672654582901446046207967758714290876002243165943253245945560195512998114912652378191959583544897076585802081258287814625081835330877440272292688291663828678675176366233766090038176629239645615419200884660456391068852042159697917142339352758541085389614243779349001625995819397040492160588174836227758762259554568763698665268313102734409383200985993829505956289728765829712036698652468085710095951234272064841471018352806441816824869155405684482186439845660025674742866481571879345318109443349420421021473267094634746296491674986374967535951452512743953959669772225982249555731513810218195297803723274872893112771925294719150229009159952318178009537440211980154065617109627333129474793672891714900931755966552081682383677839209496100431118777599943004413528168317984871768932738733049812834115276985354855851183748915047736587659762940710741732552270761642457667239926343372302091431995092678737464719959120304383749678642833936979913746579055732515080254795865360329723185906227533645490045404774740012786253698347837039104301829968796400214913287735669860620545279305509335649618890134489856568075873749285946423585129631643966672233506835297890980322943383160275675574437435416570391674804410778002841303368437934258480409532051684334940215986182047627421196532146272447800139492693986978505313593755086408257811509142731376153190336684453100114238894730976785669089243728289333670962907938815202208476691646593479502739939590808393862928956210465483714267517840075053260056773150290207098104857743532883387040677228295302899877763675036621173826697864144735736489125978605659026855071367082474797494570009712400607936063216370727647062819660663063619008791805291279605067421022057517041784822727104202676512063276787078793335445608306071650290114692367123043790168789167053571042226603220624943369861750837429182480220372248556628848733151811936708670965194705739019844993041230649184919839642884571263584149817204454749186270988962991035933754210733022521188230991110070768975855942237184620309127801335524829330484445211876755015170605636457518040759293172179214772515369538069675622820171002375043461070517145011486371659917762617085770151051719603194044936548981305107110859246588082863568462218002072307490162468423533507857710517642169954769996668225787552313493279701521581019850746293491630905483292909657248580985638562054920053034017372420769957555844134393019315390272135054109703595080450716776407483463557821711736643016960583487069470192460321784339087254345422818299450345425323893545285656893909976826197956083238533442169937666020380904273416852212494968483892042158622841395932864979499855852203467653080624795472442582095260340522654045424576303819203849481124598168527779259123961390628208410803514313759812299206939976378540162557804478632906711445645567123877526125287435592494809333534593970285315531278486525562195945688705551910671106332612594392705366148386276787609026770223751254812120893381004275838147117022146289627532387738483177182994255447070214469597595557007106256985749290174825874048752826077488764167379638986246214472784675850536908280460493414132127667073529292916484951918738646350547163977488001417759215141664714723518637792082692326498381809040829607195347737299317873210825957351378538078198419404682090224170746608821262230419936026295605422523924826567622583626502587764082336573061245531317475705165700486970903739150202580381475194979845814801952388892837433903521404568400077471374104620321219199877869362065918513555755940183002526997156592519333834077106518529733594088428316558486959812291206025075807448100189418908304254774033886592377530768621423149988011317504451279651387191411955812313376254637698299523292691148406286692394289329687745559521021495109818572950904645584683577747047541272106599327033046251786974400401494088848786112737075874398706838907912631569141563230097630811292389052173124071817943197769014154710775904282255122450388593155309266064927297246092575492320654330023276515018264579591254310476096829935831495989710554565421887729475098959473940144894420978617217721300123759251294685709107833035101694857005066330202952527961352169207196596431799999852583270885683675459035370678476742285396422637864421920873134189769344437245221856615704719666821005409597000991344525090528419290724342624903125904668881379053487019656273610571164520730877748353795719755668032887387228405571522705909368075678619306322697627334200428036229358274213107085937928351345216955591699997503970851626250050584234987674138881408493652991166708480312243682570428065057141172470199923344138099734975574681141982641850106422449083846247682238434830714131206696791366580865410613158899911325171958944351471704557499620532515589629774714882706288475260496433003216203324670371569227433383621908393023753374531060341571611938504427655105490253275630030012972059687065444496936851306868053681964578564078415451394352733210829107550376972723024170382976767460909100192745903150570285569080463383318444172367734251854151750726133463229446041354851859286074558541312014026619440509885702656948051603479855134007948331061158204736090001225093571487515736865624327092389078300181292349427739231165474697662037522808023618347911603768813636331058877263371571495149976560873344550542407747433436415065103858120407446955717757751589523083336260912111707569564062717852486274966236232978837699928806506305332578515560572569057891466246558903352924635336448393353321365412603339643600882108604370938009678184837742701981316033232142562099533753519951470510473492308740619070876606315113925222556444685255860682323745604846178724610083479130193545619549041232730927374019773623408009367677713905816909653882227959608107522888671769214356171305492100074661228782385754363923160376357367254370534470254325403358802535749371043431549575594521666210086986686298670521141663067296648200374919847184514114747363755525042970070215588857798737320245746404377334662124430394037512515638109414749917531427419043202052335958432608941876638262601987478813155355105710991488706923955624001662368529105085438085981012427288748101101951537154201963118989471277351891951504146213408515072130883501716094144605783000954231512370244444251045221586664453417831436925867688514506655013430035600478762036204301463313672731482620215247488757429243471822636690876291333561825322445485335716502243342038362284221634915735906623063413683127968304480140293901682070240010866332554765920971533596708339040180282604736892658456619811893875814248698460551520962125475759398493057930228422630019650814306875229064593982552805528457448464027178157769078729300867782364751223608680954771178096637861720724470670216574325801963060941494298962150132987144494750383176483030308980899316214174905407022395564768698318765577442148919456345146847463458919909303930368466695674618023694315607140267772272650565128866938673476707232889519203340179697364724113801916079557830814633448473944489914799751391183031870494701211379959773721861403577095835210634220149302366606438144651171612916041428525560478780860500486130621621220950776549513602431429190538834266868457162011329373790979031399483948798552689186659197808340444895310457940239369233753343351591058808396929384985059190921602626281297957671420434366622835082763324419703629902232739065863743549733145781710709112551113255107494777180759933893236217225040858777300456022862531275172521750347503995871840745633733020097166674272545256961614084801377534151485394674300586300050613667940614626471804884289567432676470769629405210397233695762963162750676016366052538960511676788999786271508138865202454064123036978785330016099800692275177698558395541426225347376456152022500478008357108378228546625327015044063412998332653996307753071555674956504197451521786308401916515052442953339526741343206013964097697529876300693944096047771608510848798370675980181946795482907011350314085605190996849182949340513867626163901292543474592477996124652695937293097229992320045482503806652084272050809800644241888471362202277062383168023844796594516128632222218836319137007698771192501330998374173363836245086554658665392608921238711539841019849328396954243804211209191905683480322654770027238441806231264578803601202216667553985448666153118702165696094451810811353014189788167065115990372074132561005013601274420917249227923815563885350110678813441364606937776066895198006594489389898087814240341507394503235153504945201569836345104797195131690671077888722083436263069312996636610382190785958573068423204422179121718005210343781705709954021260602176250872031199864999877732464549857328026348424974970713457308335488382112193376545966443050021389535988517352775798595236140389342242210615386241754267875077326568824946884306126835832694087065019290029322476810689884078271461566776524884194782529697452617694280408005065829902555718661834208364330896831081302187224794246215410747158545045749889920271200745754588831317723950333443742407673566440425125327630099512363016652787322473945996948987792626824105660476042380141100435632862668324677105870327784348968591777392356465654192711492975228827963159103328540379019259215391709800820671450627271073284747464661706297268390260245897870070506447338235606821999139825321390348585907271242413928329029340931642741996370325560412894622915329580081479739730180418688658178504071288892602595678213635627291022827898084345991216134087980320923706502396505039128206700373241452709210592963289471162273495605427876848108668528233573197265124986757630671703644697650016146748804893975183402637264943532193509201593176198991463564219127710292919812494532754792726507740789855671164575168940632819268421197689378334925363653856225231766850402562191597923806541327939430483762108550582680625850710211882647067375665146567812750413677482341884039497598122108483763669907303000029109627929809355805815379617731043758454493625597200559405407597443892713675093751239168511452481620210757352115955503065881541357153770338612581346919486425169230342408748837025966382166257475569604454549023079843213981590390714919040158014728819778378287849818519453428066967848219469957498008490713180855561152197636988127160932955289306071841863378459729330384379415918992902093706420185498555078822248742282579349109857164846108503223777320081285478668937643276008172140848439807930674972940968176133786585659713545894366520216026660738638431238691315326814903552498876708588200135897894679969391953275715347688471587487651787552440995741693453166494116081416535585742171604625312192527928896045012549585716479163959759068255120106303043662585259589597805869165249455461958923705026735349713203007824946966111362431574390684012216772638251022823006172884170789558743002830661660028437425622904268987175867123706025467209444390305185137351511506860768453940330883298217880292664815527764335936240370205305252548139518445426683993507101228318699011743625099494264004616218062525188824166287064726537007507843467751093592120531479718352667495381807429937841858236177622571825328483713453316053059626080994277624469154412435192492225895150077466380287837936065934463028422412613717452890879109576583444603633766401633257225583627856395507998060944897334551058615427613630808861843191560982068777441790595877785625989073005408972629845340153804916201106178574808129252453059075428183247771797122158816539385850555578100234839723417934628129856159247306254269934942056597341410017280530861271824662614281697630181200864071093044676965329137216828930956541198967067925684400197331044221863702575421315201090805566601313346046931682299177736995546014806121781026199482703274557665232330719247993753178662342584725766824665540206121627249172031297830558493584586516143076181465071844347735207987234011580758343105879242749316569899755271210160749013150590460601550528242336122827116530742018269675384404104658767167910570096324296088999721713794009236356004649447510147220947669456264340259540015759829807423541726463636750489454784101382059241335023231648339485200099478048907299978490095432159344409386276790858918131841859491696529800360348337998270718864425326446001179990512534836454191718486211739760017134899699390870214674662016773457793566706028356662650742214656949608954243289701828380209188091606869992718479757797075524174719027897844669962620666684794245512638427755957590644907148846334054171357619710013334612916259803775957650100829581609376655551022507260538734223582005272134252071079387731397404116777765082068119480903082782638649026011171873382152624448610452681758876610510238301805393374871082531322258871462017121643986599730307082180568604316294581922186338233397582558109885026645526209290028839467121716556682710948561349646621518268107978857769682776571241467311083750904771233830824049565022031592965703729765072578746847713731542949754585915055070869774246210149978376420923815336965711374175399264588230810643928131531302756065227692455805095323267046745568226149951057872376068942681692928289730517337689113604841192193364447744105599579857736254567428132997354091852552930471510779951669896781809180742571424636407025856723646356325841904067465572379822609087269150908632221537055058272501145329949015776303018451421994189936060907655884355409208975926562811215236922371368161618343527678593395347276657727399396191749611658145892738456914001489525631972766141459112885553416106389360130977213662826211361245079992940355341065567403607232194014867577081381933094083007887857133117909736527881957361781390870082230858668677037758583268431971121699478529889889762124363518399765740478812660541906634998184036484223969127122024337845203326131126073992519586503008532705883981425999924124499923023857405043143856397159985451076636723864072920082656873695859136128672490071141846054619984950767019513721160617881356385301052760253974174978037921786481058105725625345115355063445909338957993302542777142637338434302275046642750244431452088349680953136114715649617174261274913332621224013252033842225454428993583682175623884505909788845928564533792280048272287326938481189514534283383959044775209195014583118352203026513723127275478925721148962660926484771581886665661961533766922226643700953481319513719374997485612689980437597675158911344118248941870757604418802435712709880596781850244295863666027478791121090223375132117663025350609457872955861811558330266389680023707251468861528660354889006684976105760615512848272059111421756736109512076510339993706836966792520434435130779622605515642613370842556847683885052746446184106174290677186408568297803187933393089947666082460647905149377547575141278890279223895744796169620636986684886360666520643322282858551815301771350852997336031143208068990245571851840529565738629645136822640635721316111884816980761596217137790785723882457051543202059407073521418866564190356115197822784103998497481735694250019038818575695703452438904043487869048650840622839296257503347174553077910735930545058103936666572907178774468810417769919342314816874243693995101839006430920099299152968245867864809653061241202341511595784071649841936578547142388247161489276988572470176396736907847563067836533106372980885033581616598233526609872063338942328910266790211594948090421940778820499473666512800040798865645320598808375148817942251072297965164827353399575183745615883732883377848462799213205890107004647534627066969171325609375640437005854037696199381016207665273890569857977939716721018803975152435479303401284487765795555404448973614002471986177077994692008791200883056647851739271331939662548709683275629831173146296665274828507636569033745355894165861679812700776955533542737826467839118987489223172309502517542830011661654749285610959727398921577244898372930790740031001058562461728495208537430396393045481996401659921668917421419482934827275824133388871966021327197755225015884057513593265947226721602082660931639159803680995417166564970258123912020595215636444452453382439827530410187084299869838444387899832440050705499667584860863236016692388555648579528999261478113532179618529401866758158418612680340588002340861377093225142159996838331164308243277895472970628952437274810202767555975843637160155452819978291323045647393045495135252382476701083819087974051003202556619709959748811994130931357781234184009138121395932256556763608712311026722157782594585347508581890020888817085479728022874654436487156413912255398160949472925073141393762643601574712639797629980607191055042835458159232920079724794982438040835508924310354976300773696572634975091058878144685843911779712625022245391014963589012933033995746141991575032196757249566876908096256346707540734638870293764608020584186274100899936178327945831661307419687673724265781177846683364421972150792667145140959689922679047364260106443876550069027790705794081885708820751133973409258243067813581475553842569020021403313999034077081646761784844193387396736254610752608911940239549232638803414497415786384538093902877148174793130187654102588776247940993016374300403729030851814271961210378308468925515388348013004897946578143797645266963653616262498331217810626139383229308541939206864204260229614881742294782119642238561709564851679752251655298730471072743686996001558040408222994585129335521939153887779623268962358051845060336138435248349749177481750443662275922867456834458007853652173861247293475861589285979000684019497479845411972609500145381183694720023948458096661914655555941600086700051120382968054827758694679184218889471546398377095669369474455622323328282707719903519631756030357338672703091376459322160732107028898991924656778662049232270753608647375528639029300588466234468109588726286105088865103849323390176752285508865188468253501827590207463646453569886831583893993349919435603668351270257162126272494412162284371047993100029050273062190688016977130886164924754618129921925527871313267055205383114969442636262542729558075387260153097140330861417696386116479946667257917751301835570506941328368256431936912332196921534902845048422005194152518445999744409998773554835122759642523250086311795710228565303828402189944762120709991284314770412718312294818592986309318020908416928984457220541022293768923276896053110581023333368201376836961241237175733024421569173605816682308386352384595526850136771580673099074400457793560282398150671434883551112771145693064809327846163825282777108919862001552615584254535464321947003419616794833609892714543147288968883782085292099722228586240343272544559607498589533412658901756169793227098432732099122501330354953176594071948973779083169877380028671338631721699088363228745372531374602271380452729187025136335144996708633432842672883792076191603000951949882824130611299244495720975335201463324521739517027954851125327722309471817669573494333350621512925895895173140367937966002214455589451692617343522306135248199636407884205621311138791654533248997267613796311337279195968060663062748427407025914841279744638989095728762300686622780450247833107490870610727666528147575604137412294730906945145100801606398564775953467140986702588933496811932605435889292874177273954508516360362196926517744840631313820374746500879320246538043517807857883147727179312582780709071617091317648679302965177652555293815015491178950494354851722177391400690846929078791838091093119756062231123426659219552594488692699561074956853656458584619055804078909506663962725216846299558803206968261592003249949963424126500229171011980655046039193168451995060505741738473021583124930995494652969921000871347673019708118528244018654549620511069739544523890876460200526677856845954158928475544080193939223739612540955871907393843549832077646603485270538813828166619703219831993620020849963116743704698356534040329487897305560828214029633680103890018533503722338418523436673366042026325182190685392827358081615939673091067800753947977729354875734996180866640866383277632793379328366781632304445385381979276220736632944082236479592870658296475508614041946422483876320092109315232600649369910998727842025303858009144314149071739965236095151556896047476831003726471106832601467342555115090394817919460001439439867642895353947969483471103190151010441436255714695328509399596182588734694454403011403793881151776176938571327485888155135383975258520640500094201210653063000515558964426693946080016771255557491703721483468596730379834630166101480604783199832099179218293739742516583953238698293549435553479164186625660703779053635946586539898314816636021028111840530893983801253249578791679741706019629941410991174946237262180844348376903633069594256036455554148440719265314566554468292867220987813025078768637922183940996091226268933362920012930160317144859804085574012343807981998054775881431192409475651297170049864187174269044348242341356272408016093115298128629878868012065725431425331440855889908875079293657631055452735405146672861635695708588295859674781237551326879735522501481992836008552597128575709239457591551939446966819988701544811678831399540108767415996802703118230903564012904826632158203287132212397726114683308921037432712759826753544482638155500847498973867222755276872295249981225344386074206168668329841474051843696290682410243251780824147086715621211052962046295926971730639865588800769396837943181104654406115586844427082432541618308759819604455727355214468971425149724767996601674103696706102500312185337772309414573620414736054369381002995683273637545712585424270317394984976954239292104221999449519417970094994595323122330677787379249406963754091659448263369507805151744673776282486369165381778520301619954543124102993775344650532713960472148512540754584400665211380456117289328386127537577410475677967010413425612312431216080207480505882609465843985566275945535913603525773287054839025567050679923418804498129249456030579015701010782444151815944549849203504797984422241315546345596586051709874095553257369528457987062701428170172366099389265397301973921239959624077816040735357045365378834609531347226019122618258881077796879212270299865518409380057325826648687723402017914088688761826967302586440915413290610161247025704401575692647011182627551057265672799498406622073118017933263449449625464490480492017953643550100582346300098738452010347678838266160095097431808519384724811593828069298992559514931671883806661063083513036784247114952385197273324374485356897227799223969593340180001206411409278884106452119302682373454677439894289894935944639198602577298789474438468861915662126707166543024554203947563666834674607858148526693677882751775208464559300468132871216642611336986749889879964518789680428370279529218496610781104984865705481469252503786199902271681167519865380324363170936339335761558730709495953221929273310234697847499158105864842478132085794850738374199377567506352071939009478774979092453168607519923714114993119017523427373257565395792794767221767402657965536488696938391029334956041436146270333111118561378194454604877067881242254269395052326960698666776410421853065910098300880728168260928614743137805414349242882128826032499943560549862681404331502230832871964390513363002470640008421629374206141523431411517141093875642608858591260045405229782054755891869417296235511845605625618922455908264449003664214711044700269857880981390761451179024115331738419398616498592910389819636272877465608311279924086481209889750450553283577692513073055627579476374804015992874485502047493779975347662126604171754813939342613560246023530447234557466478649271055892373850216463499566604395912031481221858259762946813491080894294716020427902212212731480158752994091365309577661973611463761254806380388900506427601606690894560944934275076185142233450616841492678042800016278528299517991275086715329191565159214696875071273469781367004744446023624862076430152635276020340789079453770347339458447108021086057918992502313302819661140166824316786289751166994951394906084419108799273505997845761242166020707294614670904176691445983806571834176264354064611907565708037853063601614726574087630391305991585307169018842757610112295573277497141586041835238316490549360602957088751338966496236704045345718470234065812703160365785992634774172768582056588896737295194284274027998515781975407380989566840412884322028687020348394728170032082687256882981142902701144604907768915476835921922893120811999471913851557387761762280063611892535357211527770243385397508427831366716012996776002517766285622092812609830653743373197599781163141551647853462851835863679945331803699189009057206880422805454439707553922298524147106781046796241759512186379144134421587022994123996182395737844945595553652698482536238564318985191448084673611911258570720822308380673927744818322309191324241943135149943559756027358278034648920365864328621197796366230790683070499530632243873261822546893928383755872524702335085007359932535159522106124732496369275170050118256449171560160756311273120994432059602897258546530575900602368726570284883957307075365267896372885369796734746407350580356162426447333423236663237029328155551193217157852055877276520803255289588738680401360714912910387373193493486324124988061968264370068557962037507923003742152418130994539904228008146380425178290420085275708572460774193683042492852829269305679255487478689584488337122031888999231568365043354265644404984748529889421047075872023331585657405313008555691907679486210386639623442151344015444037615188543088647260639200975379251239257187731557664520772202768804681460626657309608888559889957132092311643428128033477279905417330592706029732517579307991221160754507870597319306219619500950132046228082239693938546699787143324258764148771346417638186496354203991405474031989031775262239819819265293481577609866794748496741386815626352382048884008158914593232489442441286974745723179907749585599137858041062988314983792231537121011479202239837726410100755656565537269119446379543690901217763556522217962817626344508607056609219741102889281812746474930718777973386703996597161709687855044478514523593145467838337235158538711516508136365915684309356213183652391650492293247407871500296078953900514247414629656970282584953955782352286894008789884910015090166645669718012977654548149606610866694133276757711793018651602501189268339361850536744184180635323197677924561810826376932768656662876895423926824077919165175962907137811866764233338618627752798296246833676026012599543442342241770814680221758639383969146136951782839110831723599832761367777686844479613864722492663722090574467149185589553590922846079571030752439123260027956370898387932813552956050443169386072909667202232121039833104225833821572600267700428168276446040371887087904605864850680500415143104364925786093485449543088140689337742171644324210292482312546504346884121279910378311243902679702006327098334871835427007137560527303173357085061058914346118880956851659172137602040357523562123127844713598985616377565279518989266524767748590713522666627803192017894289492655357894636954891114047168555719039441795604315953235951090911886565777486600332689887646108294206699655978179292371684834598960479233673618189689803188221773369487978800207008973017212160631440477926621475747312033090518821038355362853146540217219178932618740616022615949285011994016064163352506724438435040554968824696940000624285561474102109431911261139985846354879940026146098420386878079928228960984744906427091892395896670516482794324493374561294204452133640647983989849208905500944795499070459898844143210111783844890448808999846692573418252408526501267325533460902475117387582188466822782308708803291651604445524600740766521038688094486222402239992009522259129546429682807318094393185255746554325693896310197618800219412652061682494736567222095957404913002268255408353079674230483936677744716152218424686640533750750758473601030840801433940514363756591103037966775326472141363025939208826156606155047496929292212304246450604177418140179142909304634834366993497168427636888831516349812912666630356057232346724738444937542407452119387067353390555950332764723815825777134826509072184007297757503685021730217093563095987382598858420524756806494260146196270715224249312071077840660566408167025135100323638136333982652435759620861576208638738303709135826215976543873506095197807362958688928418727205312197801706524391410276710612865406930263591678368969314566711858980391401159608872054459858712833626663833135354931666622433946774721602085452142901546494011477856503416251641379317261578859862612911975811813144484702383681232753725025767166278552627159808968704094496794844879944005827005018094806670695557707028128743786136801314506711637757451540150366563348859981196335670676309217674403717603038794427835355040137611923753458610597987575328636300753457777876506528573279226436242808435434937109188834696328445058304673690858242610501258968949848650850289190597670236392819405684769799290231147589818886761852561941013347840111365042527842610761825688444131520651478234527207209249948736419702640306487700805687227007789650516097293097036069651275396484037247516891987111352165347391414182124332781727764119502836477146853179111945231686785147539464728270997530631529058624860863180052167562056993339925792387207151342741355586333833479217537799471974426020202091716515453536856249842142871438342268407472317706901205970750084174756274836998857133422143027813151572623736923984492731168760227154980651748079328769934050064799412528163006924804295125234335041468429367030605138191946611818569455975344346253560298898851303711481190629391172026956009023645648172292341000236899163511878396387049246842422671354725288700981716094093450415893618495973908274877807826269431840310085051278721719811055524332022803469592924603940017861246267243871405865908087620652283496869663452886461688099883715740497201602421382622828029197321163223111838314606576363435538571487495192928239238223495141542623001709146682641158065357065983129574157934716047121181851893786344293269053268573129320940914799472350032458063355791212150986780996875236201225397069244278214797390849614378631990315740758017283042652320076823775045329083341233762302211710376682552465528035063220052062021505243467652279379433886071020776770201010005870324324085811537723540467180843370142619021523820705523489192803380300034680741286022120302101675252910781294293288269394605769933888110117450341058497740486219381157722040448277032894291327790834105519894483620190755752727799017831321142022040744462059605598580752795799755146622152704049510237341932088730042955639235055321742577578223092797718040734573440484255785306812974846879425153291143044307369102186279296943555122049142308953460679483931441407796878028888399394185834858030259553383829515239376760044230697275765947009488173778513663193673579985550193994832286990608433743744978967450473604250408333215218121242863312379476095399165879423399730631874426904973946322233570853791521757103624647124449799287093265995132540228825130778316221794241557451472395615280566789141525589441016791883513658412638950318648892619669380777786300093210810995832535068496703797425051696466036135654285796053325155300095902936563029797251524819132155723522147901674413678392202503883644792736634466330295008416579222469270563789883277907268964716711948402340894777086998242512117743098880882067029193700239303871909669195103310855825835563348801668611232235268461570398929185007478364974896578424435999078344832716231437751232041334325095928473050390809134123021815409887156924670624177879644860573082935273134916254689541376021828678567604588620389189892799701778688095239625527112993819972016667844643866568008542993519438062998070112793822872767403465339461499555749304389656533694329911794367451962552590124414360832253147124000909399218503742020947132032871329130450772702548524874021494191019757616424669839806165115597808582826818629020736618804586387466844039326131346217889869429771618967555232186135627674177728454501181990581959737205042738313469388990739938632273866578491242271406031128875753437314208938382223378341024222915090726288443165330304039089617114524411017226485841056487940269534121898127144630422850251409293844004953732597064299534142350147060325495173264080677481915953860816927182908178646956878532342165017409932674289007444990591809141043057684713251849959006984140103712812055828862628584362846093197007171442361565334985833234430077137665527070384899011106572218805062745082977759545540825639502690525438430902171277512467201162995084104051050584571735379869018702001129585561700303385792586957457875977554823855978806133508050037991059575462426419237874521634338621095961966455370752014007563554070284626870060353789878552636222335538570855776466367784260998990522202986627565134185686550173023366879562899896785018937141076313873168451378658204314156126447161797394048694676078214038621516485360597874448027860478749707757844200515468707466051934652361470530771526560392534113903847899915601302434946441932549727172245405712150982210003725393062213622148165871371048447869262481732933364897236016036198496916002780213727412846063071318186264162110344832892800124036297872852056184278607311332613388430799565728606585083432333196797316976118320553347547218801859057898264576776722976520211869125496802126112885531575178114698789388926657633753057876425369154749435578158080803181490995670916499018694210761246297076695619162090082468761246017071937577589216140118452512768153326148357962992649871325323209438567631066496590525392074278261856550329432819582270992350139254317804412478422700665503362342375020387027697487493848353966192117569265472550174246581436756404300097591010430387561097043017604641625431109018574059992145642832624806376047449681476002656015889554803902447344891044765713830148294061137532491893742966851051639274688546324856332236227197303109334328240351423951297800639624994320538655245340853688790245552468384002875381108594551108009404702336113810633125149901131790921885232014251894442778140876085070983202744265011036048316797104523531569058588357407139176670448261724654562356215933005032364054530100827997646673746903946850825320556662001993263029573560548952528061499615575635006377709573273850570918553785897256475053512045270542113404492614019173415687462655201314179565344095785379096105759495019434684609846769917099892076056411134361024470552953257365166826039757927388133764089186339300054410204625493300705706963902233732337805583015914140898116147917742061921357444553992213955959565076209801001966550313013740395147386322855434432307184986314183237867828993759120962816467492434982496586004858415471328908723553012296940165140894491107372938571779016917538636250627940218454499840320359477567143504272196563083127287501782222771166581787716779282244738959904151164900380232207503491125214014823148037279296210508330932740845120818224032077858762395536925305013302314293237535602852085851221184213168117444558060842115214206132341817949310769061837598184556953044785368407319561477251832275871464854570849165081149703434022325468563526270917157773520989208688120882818709118469749669005901216484294062804925155655469100177600971175950673315614344474572663795296771438711927082048877248509342527383933335765802848343627070032048320018005599698159414970676937057082176458817498472559526985541983697963749973405979446734788325462930210740301144432568863577466562395605577097100649257790888665789998908083664122141736039138582521863641085555024232953727057391444806185900952933515776978914598826488358238450890141615432641962418999207526583077251319646975450823668213918804750579174733636804885997460297678861766594812619268066278857485266492910227911716975647491549741082676759247744864223353555466400656059684748535418239810634409374920580037334432972430796592148486574700740541108596641132666692489130921295241744102900272270260375675835807458053269814310451224300986121959995354491881692629670473374351793315405016704648421354444901009395906402353161848324881437989595832987024590035645328282054768451793257437070820927983174768345819765929419001762662220191515156118279981993790390375176437452889117385149667171188607378364530010320599507225450085710506752977863303925868257570951002245546435228892560568762180933636196539899762451448960612712756006560891375107049496326745461997616291333817353379904885632639274769469983391903533945013417655718744362665914524939085373067905635307900945781778101324626299644299440943477282749040663635998931874710185709233697886581269739338516461669223361057430824012217196262922603914545820391405710162050978691522404094562533885958227489655484549835298765979408819455844997361022699986300316971037966741773191130892728018511058950115566307817682309794433799953970085262734403865122117338929717484233579413007275406191931225327065892919406468302079535980566384054222890463324518622335920099017924292940257823143903010183743854600896142859886351375254531105008486355724624897592326803847151992249524338616781567155080280062067109103327520498510513735542405481726934254719194962397506492869734012451235858066021377044347214263028881832176586123492528395136008902321889179970750179124910996525655441101119798707375954099765435955401927079640765817559649928897284276644041952332903153199216504115891684412739814882954723922044110897300224022012880558712888155055580719175687680438054539626394099814429868724142228775083440208600468441171854511317706411634016774713630363310307852417039909463306117729594545319628916819233305745620616640555004116644381675789194606537699326487958300147387239830223731588870928264893482702978881432785542439226055595963163107618702008682480441550558775261137762615515035722332442030207329231974323148539335090886480634836810640890883581855213904658871653597350767041087736940916338653175882024105939446569666314552979592162750350155888881992718446405658280766268765471017481300850390244285104202652821029493400539201147936562617136575212577104683442390145395481382423529408074821293066097112881682139379064231637595318542779684200992218353248763407851617388645258598055465945833455619474417721944447159874493689852158344172421574923461983163769652147976327895375968152728924574676548485732578034723682662083509199952200502063949453810767127730137598158003614869519343585938859897153644261865426947678755288430603597964111636157682896318449336609826372401705877868380478841292658590630824630731388803114210071210489528985455425132575817004535103011256261613355572443404467107706899120724836329389174086380658988087912465573715128505145938040060099084133558405670262588232261428431128762425196494683695669768605809758711175543832282744269782791007350496965992161146396933435876671746373274389342556522627832619461660298235289816174119034897805768534848769901943929057291891671220490221158488901808428976854014160651500480108776552186911970513077322821046840038538750723603149927931510039889386852053738959635285648310701742283843969983167279563540919714153332829888117123471391019795874179674172799980463502138303053235964556703600333510931241176298756869348174809543793637196440042223769657245182778075146571471909901273540569289592699003867150956227692106148295799998445959724518489777316875101624718576939174379965112774391238421585706471407360948394778890199303134041066683113025538101121967087394673586411345477245020897775048412613206769732122706466385533763038077059819847004498277971311551988686541842629466296429843124373932251565203425613284043232759580384435681661560794396395666193319829861759146074257842611141528402623931847727311455329684988866551521304676759425189702479670990559159299318916292711783523948311948512383277537721885450180099460416576941626528569766383930058135636575041961842575491370153212544580138921418225062890265163929590428493891781809212409012581226416839267853225063740592117913581557460154488624424218871103128117931214945855483697461507804571599912927753006446056303429525541053158053504884211767023885106481639107416167849191602955961908781226965698409282953957358945922012879226425071585806694993953172944585869390899730883601960956477117314536013546348790769274220070728021677669149019569156313136252838825445363369749777768151392440693758813386825242514384556119998609502910121755626103831178980965830407782677844168118961239263069035474952058293441364103020154207441944013003944050541547710441665395986681107788962994951003520569803475978993014386824578181697265104380758053046261540871939987855761737537428806948814081568144265297290659096875263037829942755383693578304311730120535855821269231829863430115460561137515934459503722495136341323151708096586330395139456096649983153144059698574317542417625605965391124046477626444713582847957412103232497623222920535564824522593465290814078093306660845851441855618994795967267001960794682560913102781670486074874816655184166448432772010297259019087819241407309382850369255967124023940821448481311375698823962976016050981356075555317850303658876778943765537529065589561188687171285504080398803475093067435041471958390907689590993966308427008923764021016116673622813712547428110658092719325980281359143136739728902246252555309958867794931656898105693647470694702883268427537190773012799469810119315763799124287756302632978833441863937025075042821545822318589747805364533261474180378197613523052367060216555235358779155969968596717177423022321331875924599859049636380246020013266503528900467977684129298059876049538544648223770659021376486211917737415518193715974904080100220469096308351342243833124572945414521732638670257369739578790184575326750546673074041611872221400772446935272880308995663999362214889188049780558387489930695478181291043752286207622341722308724143829855507144171528120626443226977721782626771649785111893833123727902938496742642432759617830940286116201221048386407455928676173185919404797957460571495665309749179739340051357209353666848842278318411918090767846922499364883511128195937427489227873222758867007551310670384251087649950752311925283831066058257770656694776762409182949994100790754572074371570623240411596211076641897242370095270329682747350556245975352716782115039587007554986902452600597455813713801547745274757074019489129161707324455286185186861213796006516627135370405093463753840334883003508126222932662431341375323149439310822826001140250151800784290012916735665112505332386111317678850941019493955538433363059039538640793552679166414261245364111440111254895473862720086597333132464281234916231050962496110233758193094122735025262251190644222083196375910830185354633287489844103884726861352707553696468253149829612204218016165234024876267147520580491566735902099906535623451384191428669171680415871971119062379041952234096623744938729329000447590883411100987882258255807202877913135303920047823810178106794864604547553160030432815758483465870211172359512373424135065718453748216543470547937025760563298889252204323068013966363725828112520314842256247432444384258573568406988297594925200809850683438666489804760397357723703870834689740250513461445004175354572289656445505489067338270182161192460509143131554297161388387177306201889740228915642098921316737817963003753888002926132889429557239933346330876009093659990349228098464856257045493431971018605094824224060633756580203430475727433170016977014956206957375868776941940718026562955414009242919643178030963848697179030787832723676159307476037924633433761990211646708707342898730918417520673383602555991000098533202148757985147082573508352088111947787874621366488688636662652009042472532758095845617836323997200974072777442101826121122598057157374416669440038254243136087885973330692871165225477610057028055948447334023951103899635321571107491341625911231168627679541930821432231353486143451221552673978048402791730678998381779905431595666237223601089252435396190666059494536404824670330871477706541653473381196388063709672656082754789343454969161567854849891190777233624481269766365059144535223904410327144967777515921432344037008822930164471619515776588273529708784894948428978757291664331155957049842539863566046214460732447553841763347325656783758856308433925819542051769352031387893833603619625473781669731739498543203050668632782863492217946698472338201272726434815457443900954744640359463058772990447765592348702544417318940765789304630471350635377483724385037820710216402173108910752788563874974073820482666156681863654503496148364730598187317601941510887989009037685036091886018551131035651996644996994112296497998209368715194278602542853278230832495339651305724783574635328521026249471825576057225775897674876243605015817304907775031610594097091072869086756260380409865293650996965952621615709017404622341853001331260352193460827949033963962083100961237519392860326014006521504327084539119634442016094497154566632792245199243296206101262241792547990208121126625613441588778243168977978500900893408162172073690313034912766288761661094706012324316966148432598132140410519526158262070605330816163011052564030502453910178294416220266480698832662621509428459929096750425132581719642083462164010808692950999778767506864593662083281794250655363684241719168330855456242492184609178795608728359128238835515623581103892323876854101851429911090144148356902647899056207240601284525514641005482477996963954679937361611582916257687434419147223090869281956933688755762597082345019852192395478361243338420249669228978038754990114296313652293508447716381327823831058817299353334345121780373270704971158919772195558970209417475249512291055930903939052726550573610153932903493078122563345827479177846031674384500192220510736214219764598482216849329176408771783708027393557076016539062775006518859680873447724005872203829214884888635274531569843366799122020916133241411528942226390891921041479212353363625817153143520833588189799533824597292538079830499030363094210583342939399057367743633351773813348066193248755828634277338997594204458619560162330288623922973700783344437845255197360396131133597966863903421081461091548354240534214004187334635511627191049861912693333245162162002635048386873960110638083778233900762492027159059024173799087809380788104700684240161101906751875005357994345421705951467655467809117579400395299182841596828177501905127038024416904638807180959509925321043763265021518193662094269231568449007827066851065234700031142756278953259063707604786706255688432365086763819200821875381594819740535196025371824488540300623897345161029861756388279516675981048189890365516823571455222586286901410962009088580749679137251214182134656950530556117988438148493344188865773412886129857533496600261316807976096861145828972047071677330002741439733285833466790185783410491859682826649641940208192263008091858723005478584349141089582807786773660106289591752584596580115790302186085050764386636956804933546400463731665342795669437061377522506105361686510953322351385503101185720854596190046999769801703238980598292764613688946163241502370030545999674969737197366100321770123980309657237766498962353731812948299843192350652477474570226947602286962160662142366144286936241333265976680965672594404284403791806242740369604002477192757303197163347310275590814933763399075940875977655784806149731048962520765825833065253178135862575727014051464448682381018223814510778466461053658565469794607774676332005671745087187398753106517065700316603210034472304027968233554023930549058686313360006970275997206850744072695295631011096254272192699940355920592611789268090499216809917456559577388469238142061432241612568987310438827375882125912292669982565017458305598059781975985956781021102879892663090080897121992519064970530809101987354548489447262974349186156193339146382923725855515700472481059623271289488357431679445407678624251752481630542985200058164472698574014078435406856462295024952728676999531498355350437959501846128685656520100186882449528582167737158491276909685081793483311861570247657701902051376369223938301594903406204231224218574328282864519089019015374906849145760451363274688415243550648628574766450002660219077736515288811564651897897891983004833240720312893724663127249131602357399833413350870977783331907889361420537092325071128266902705431437923128467677335846031928550437127401718099917320421528468775001200125858781405759573832350114261825592950370852171761041852802815830695131372623051807565614754462234022305611463945245257243696274895193559968436969533776200766978137988585240588659173802971206412682625861060833981329500371492029775760014150259214273233773765833686382951741879360197904500971080233664686409924738494992400523135850188419727002056581973870674330700913188274165944367946029952081981542341481439564738348874385490927328807993569514335014244406111128669146795299730984932884363139280210279473193663456427346125153262362467651817076021140003898130730329111543375212332517380102699520862581425695239105285135740794973315554750864116763439950722400936646856961479896599883512527878395458776200150769516068758966979188060919169896325865265780592625587483183281240896609420151625823016570937184607257338913706703440318357163159890337234034899009713710429149324898901296937113391929373695576569353997987103628733602887266698066395590309703673211200239137497437852196049818533124636263873525275799469216759545619409948972509886863021737272132922704005303277122545409663740469181948362415729992420697455100301001255938652861641946020568945896674137752055396540537556810748551347737684935114141371525303819780518863174406859409910853515395898167977581716123702432246101251487634089611062131978965374568508286733691963511625400531259988432738610193672468208071666232428957075315299658277054017997394906983538152251960502022999134702815669228002386573451819214280103490730285656250409375533249382810606697953069822512275096673384547307754566836844687378316445471080557155095233853066284686930346829551981378779768490206824360606202130995342956731713426233095395639698771403993686728993808236380398682894670757429374241386784342971225801584519445827491716296374660810235537509398152750731878828105540632623355465330201542908029768847019649807950296749937001326308829910107346616757281326493370807179017439522391797266404234538076048346754206009877417741496678778603765642228621618088284238902755149623213598523378756418680668291294411304237945488395729305787690335421951775984291137091459708432542051198931300745953219015539146610003392566119057354065732933265187645896093036471353535341138829497343341734032278930364124780119750470557719886616543173583682674381293832225006185310308959437155219222100189117084203997675248820651541195208503075656674596404099019826961825474033658707393290143354256836254680554769306322076734507066917177201445483929123392667055530079506995657273735701943707321629754515632498443010336837854365788059986024251120950066335451021664620964825303355885999638101140685401822759448559730652185583270426006255858949419064964094352636070211717085206384575841536666274880604793574794249580277135833057767792367422215548456945334256171672250285277866167290016747764194064240244738708687053505906650330370072059656367421372293160144215097148060487769003621993582122363488742081576342207728784528571769305407221475233873267418932082685175388446564045168250084223427298128436583893182519107848414994130120004167156413447752043346704749289934971052672446044786899372046472444120758039431231758592681427275007331768240598330151793152834702040690850114178474115777338612509223584259481457414158364687687076482309236998192549111374970306853488229730554889061559590327255021955188865020211453181289937264890030092723100695048671563399319643651513877199448352306839146823564935814326448496482156092205385983639628457539653282073557614463351001751582162723698271612606283905983748004417536661478561458881377619607622081342022324600666869685946666192968626704452232213733941081891584896718012867775753406700142424796381410827847642505313662296916570854553670130976342185000960140993125475436015032376708403025680693619604522046498544331705623988554880638174726889596498128711703625646433361442471507089692687750799574999722511126582960071758126089130455304090360706071323052461635640163200331238952223342225047268759849730576467153349991509703518772073669940753303087223153704559831895248081186140998673814250621995063727142670826792864982699891177075587007170941868173957394663079874609974995770484535937089626940444288336295008230079892899149413346011926899274854455831278838018767605412102852838510022316786417964730661959573247265848972585270190545191253667061347065510860426663416263267553589927277449566691868679584669311244998022223523909771680807436840220922468649068017376921238907323906390418105627636065964840873692134860687618890528674933137058533516173447064300792764428998515510185835230689399767356765100388753170973580478869078917376272715133438262487093722468133584879657051108726907761008089935983807088468482803348151485781604632833419349752182473825046874572131027062888301447680744930773726446636544759230586949558958409768728348653487094322421682827252334521979483927764565732801694415475413239336962422744420100750688326901482629962612090434814748767461063438887967477391862991261378167133012398330335175251299347897038282979705055348291679079684461697313408247353976876986530938261444475439624691803747491525404005517400701122351038402755910769747446504319294846305133820347581606653041070978319715397038083715498252521535277048857610549789876911940959894959580957969038624122840498634157400385063295309391229432792374088466352222760662330029313627646935712118854915865882046057171632030163303439982260965501345009774481982283949808873928693988686040990454287280266466817506145391488316908086758526869197428622716131493168343931458193243927733364482380798251090921874130714952974396706074947150883110822642396278243275074392564781878415097250605699615195419294842969991959267718783445411733101090846572627776207647446997412251559866609628517837023822110551440293242373916683492768468519087696102362882793121298602344668472215296208999066586849470580412587287247221544842005869894396787841128616082453893469509137934307680469789398528505228418927946798128464297464339287616246869917101147313835610820951795826911607245208574951906504963718740557983831076706551836459690448910541227177427782473331841019561831266428318825788169963539955763599854345518999228200152206452466104978714836512962252519709787318692865885609932883867258634752358247689766938844078286147428750953712813947467330725705103969063890483063323251265213338383201131435254004381943972828591925773570842041220061431944791518714009087629398834410560583821243535112918448744220478133214132023067312509733720326716152345131304015423623866172145073921951781886875697323451223566286860720103080630762000396659914270315476283588989194916362385592632605681856158967693455182145447417200535078635970325956400943586190885776766434770879090945605116580057647525888787340115005621247199119948540034052632146119241368989350225418401442037122827954448758738889694110646635766866215892123045048217442277366884825240751151566214643250621477090144281699230869605805344539274106535786252159569240679094043546715593349898924018436525422419253309070956415101637396485022791179469399224957177673295697489522604114954875680392717590584374121021984642591042193349758854216532298891987362980709870260773989471219854015413705643544515474564728886158439274113214794464570279847542331762100935188457665618109200158624161056798845646188733041232192001729206716897442393513053591095868444618221207004251192871236567237324752179985566665829047767212259822491783603617573401970652144648007677963048357456933338894880750989493169714583863970635391695053090943638763564805561265418658934078156175268580311260528660569661431988383165484651673823202482525896151030287472402266250433433907583536111339184448405271360438034840734789987183572647769272356439476874915009464726711574172423247583840659779664483287020011526900471114143938572150936417537569544463161088711353956388735487641054658824093253118072846330702970188478152366619341577026635965634628838956760588900317337139255977630600130259221728921521370737855272799573057110003549414223990617754687873399729471576048470108994378131673149831022169360099844679364141979936449466967339317134413935194444369447736970383751228054148990799615145326419577196305864021733454624934028141403036673015367058170026529761572737352599567648339960159201862597720225801903938756780817602835742450898518962745671553746907851315999342256788538936211154268583512458184344769843975463921972889105664148100743570638632347070833887372819920028526098277544471016416189126643435726482952201231253584545581843558252906131796325149381634836081617157320004961875065155001292241505197664509693585625441445863959395731510191692158750612470986898746110090233282837985206986209195081725408829330998286825831034532944967658258516166513734029240075847549466975622240062393820859195473395387792673332231328685123977450522137319592193937970554039988709456627173587733671503835189401015216456126935696994743750331147468563791465680607084084043380888721157459024286908126643117157161174455285999093468704449222474384857153280285467616617357041472366444666657197598594451418692252779317971144333007068826414506200204097732353222869421736290924522068177091204587528911773557107767811381812903263186632519010260084907562006581592089059675802160151454582289096598444400273315660488870508023022312245701516006925612154215949536114487455239008019850736001229951556301794004739179228136306974271574865600597002577770414230315092391893035207060017039202199838300597483206925899688984277574914320043303701128007186050528649730944748471381957508905147559317375587641053315819044129248421273866442700567774879895561399773844647659099078162034885968614653797855024545180393738187157612490891681668542820655646354399314179371168966652702689553612193988787559810113034900839383757486325827560867544502787428359099702484449415344829160962678248912948363587829609993743144533979525597479015061395842157271441728371336669725239110121475188993423480270917253899528916894454430865472211769444508586432796510712073589711197741933963870530990015258432189107240853257250908567283784663243778812482211860850736294572679579844392603391913933252873527072298706677415941186896420788364570505965538985064736965702047540891312789042426796108582136211176788853989856306300733412355234896878201250584079806311608563386794352499955340632166465053702631850191255918876631374755504661826748177393016355233516653609396663188029131611053383405750061988015116536697615656874916751857374588810503811498869062087187543647503419210721572365348121399750929634693452217074643210818359959809741324560096389173279964810240538321629951652645397693937950804534677330223900749960809452114890751038667423718048341751611702937814622733405911663693586607120592089855771145603518022437456312781387100119836318973929090657014535721731721378024490521475706654884290921275937248837921031991400547376459717097414470046685651335971346272711373911138056784779990316487890927910673211826329349265672306452801500696097021648818220173361307771386223870471478834736740442667954698102666736105760262945280834954989447836136613867679311359731210776322211463215332131747696924319022519170781790492716449892006255143225636260705702922851164308710249962582698629278239862481341893898007476339852688973385849573705320369914043863909074418973168703748595682385004171332393412771166081621469098849780896945247511805740687001844938662449614041220445530375636343541019850658058752904530226803323988911816341298319707623325380938346278002018438444190262414787931662962620990986463646924550516943340170533971009538198866295034693825673912446268060805894700926222338994115279681718697107075927880830831578192371343881790165037395731787858229004311263088426498799112987388725422051680956810089824843336657265416187158537816942700891949344641730205609618284028368407417263331164758660700782085505351213131630160603664841574072782145233369009166381779557527938421905927821034637869967344996788894214450569825453280131686439727134454730799009528269714103531548567964034398158723023726778188724825005030290472412168276357846648371510057616100118139700634308602397824104225023568304214015844761275804043035475775614184249528606302472807966800515125538642026254816126250072033201677099758440225559305014495540987560248636044389029006355296720917708275848939753215607435831066800394695509984796361516946246864038601515094324623183229096572198262792990924724466981860399539242388924158734713404470537591440312117007890303403893258216245484012030541594020412374058329542510609499369544710933661260276524370844998315049482783520426462421466589802964530700270356380718394132565913404630590895050465648964072787868050030923693376530757012353021265570259436173219855655776660225882535350259427164298038265612614456831543927610174829718197158615037377231008996098741845460556353092687705734078668954060034741671676375670721825145162537760805018558084409999211212422073521916204907744064501034920510383513377457121168532659955036864181651636863641156693059189261000372242730177129433816806478200456234891494980113692583066600223991575489589377039158222794931524281303888895295034757702321314349404753313337853124736174849194076785015217528489757668345244348518301716951135148550606458471494273171037893093858426115987295664291646432862415475276571047472714043069261262353245245878490115532956008786066994042166303521227992394877118520196426991753926396101797612572609886355645928064002056429945324432533529116862272954499383684920608528162355126433491428339313056441866077172863836067410856661219127714724426557530395221220373579144073118805961209560571021368145346936053896253442421169808519629612581366360383329195489256725250221175987501445340372054762366438969898489650418184669520091939324411080909111403403169014254082485019780517002839754755399564230588482431019520945128432496708456488547687243968917859820132177436605046022573080879224034111716214150590868537572225987194347907569238890037810915994389671396622001932817566561338037609615438027866507077673890332636793097597054396401625552185905328617159925049501790887141185125365357916619927094216130757448270771908405051062500957229686632515306328994786612733772346839248752020594511523822734740554071516272939722172621382394987873323836955344110864372053647778662975892582717864973449284721279806416681298536590438440388946530795938267802473898755177814393272887948184811639590559616350810952342790709718101988644342402830209576718202767885975294671399510440016121522671602128429814356027396592627896855739085114901533699405687635301214713465690684664506056741362064030584608096518326156024558485182646820341623559897808655373188503236904220953718555154676795144908307062347896615726701541355083707325292584044959602700726507700174966419666360965477728537732629947802998276530563566524650749630645334114641743249420600076958338844369772589145693505812357729622239678391450935149088719274851002493141165334093812051971885596836890081408561288285923983839761724454058120879205686843918501612787374225242002256605984957362586719474485094545296337681590890256661001667829796490153239529260364735646994774872428667089958983355469845046247670190619260013858761379526861123592368717033807627276336051821882452880941589333954058729711534485013940361062895456012646017489832418186070286450655017067268661291403983824932386051519884058026593341972120693452537338506483795078093367289664695030779910424277073357062332961708439537758470536491941745143290396655553865528931951692929550597211938555637515560271921519565039516715752093475676321448023559471257112405908993098373304358384995321794563930398881843039045771802991635323084764908133242235780487294629979006606205836630050981834241731615112011740435217462746225761667267170018496985493505103660508881109500302969303915717104804656588053400147626328013052916741011905269043728623612717427950555685901341037957775306910740260783630978667717394705042540484838972244309943976529223619217130304888545153220734752107769685689148204524387112179196071875937505976209960449875644110257255178773543375834737339367235304146654913286209038067675281902775877579323992850496417349650853825315752467435690108130457320847989940820755947153587587615389639747476098889856212360600714802983762154347706430479522572940072926891188537175723661772297682766600128927092477488777346493793911225230906960851282056898762764523746143635161786839484985185241952235650378273661023343406649728919262148564679664037385882848720676036723047094035064535633169940115784610111248837577262406684623479543838274742773174040780366033856731339531705653228118698166086127620094160021231113039741585574458369340874640183149577202643291676986854728840770857714617502098004216925195481079154807060696026307379861347379079299169005839916545593995352514822576427515742825461213711878687980661333162363505220094670254555914536922574099831536316118631956309299927601968150345136047099181589129075961366637067520810708148051719775074560251407777445598561443258254454439696115059918191533833346671158755835646574861519568275598879383386668346498184005315545037271558342758274210837241174379486870705474598972446870286377042547867106834779469304737536418355420157192864932663611276789660305585711147800532246478138056382422034414434973496346546964744690312874760214174577054967875373829773985103241640396371395135977884406888434886955754813301130252328928684987706392051619066209158984957167652319495748136449594494425637094181971985968479843484321951376710471434957005891443743161647932457814278420516428102514482629055280211417245389225371545847838331275130223647364306735253463961970646559982496782452103466966236203845284363352294478891320054658231414114042050846882729360244309983378329733822482103771448499995056195499278613894614487214056867271784524427761718667051561581861969862343016096117236473824101061180938582733189071624229187925347359909013157780529219327247776539211886840102499741080731326237900840585338690825983181960803754241284555332240000516430589326306202896887496724517713128476534974781014654576659268562652879242507873134854785397085051205448465638628748427927375967646878173193342520924940816197463230536655937999290505129171438640318383680227783685625141679231938395505175740874616425664423829165687266656820063926166698705376729405773195431426305876650626978419180204805888205787117866869262347381451514644581982116956372256736369257222028676821737499823881959315555347219592107198266115181133851819785503602562920789103162800989292396067950000606630121227037651710325997126884022560291311816322680493111054256752689515964109349523337237388732523514500313423145477970248451477910003789960077864237983117339319536225866640344642342064507228109204770454085606266672471488317322144339789573027679464205870877851158731783685415211281551160795427457178810622717674670617726490763774516707494687831333004360834543333233289544510968685723181489989188795952698795261882261893503746493554890055946631308663563434951075855995463084306024776333145852653535119273234067066560588990735798341202675227095326415618985436894090068301446714128483284010573507478781473264577295597868994593049966901950368900205714395026846014914818390968579277279994885608944287491333202266766015188868633455470253468068079105441557551676870190250937760715978703739013474391869446287415210661182996164610378855716608252479958280203157347638971999337541876296655451346684313406833009967519839168635777124705174497881461955358228109361877692651297114187020117104006852245903340770431067430204386535262516658860533333354522728022431921686896405134687353425079777732355725126521430687752083026605622998855882291259403773411632744537622448650689066672785824583566733829188397264026258165900671992068431285838381112220683851146377436974274350588392278325179579982300288669049603498574200037196126901501481629302582042883417579947251447379345353038847116091352618326817229874194804232550693178365017550802318507129786348099115116999051283628610325076148709536785662439289860702030396926590506747716368184039227574463214346110367987004658410611579554887327011426035987878513296880669576528474447865468148949071441706306469116883500772900393714798868218228907633142235948129782362948068496945703549670282286397367296476731292013597202132507812410212583153819253374723986535282386778197442202408223485576194835258471543055292973723497656422284820074071219660941995309581102003278713486599118924905636683121134623643255966002544854828136857431376625068089711995294533771553292297056816690067211049390847077115954845817777968410443879179705472525213258523896446229866453345957945300369736335768323855606272475035609204491781878077553634121876301954528996304044005877711367744309202898770830754567113259352985641144164566022162460028440146455641547850235880216132460825744604606613282665269503512949189313905631371891563182166322629737595094712891725945179412949343208481595994568764656611899182431527603224230265061347162442236101478150197331829996567201255539498267508299769209185222643187637224189795205803078028008214493718906594046835893070668652776687665420895866386426855962704496788570782060373420117955279310838094125918593680228369314647598890922853044293242071866545647673987362191275471696982321260372923020923158277458944300826595423416051558628099954887056990897111053622662537908780883182423133110789129145230604621791926995214301678496788230558908963278624554372044280608201832220353538829329851972389317895432021709051138087869262379302713495372262578571161447222108157231919150234389569610235913045832544370969942594815772005127910294152891525275455399177142010069078387548100880695745598203629128262576526708792720511886202312840560051098920845084214460156203677111250811447949772181623411542010752860548615185039239281182408001052204884250365606666093965101605663199659217312853721545471087880738909828039809462545788099365372454963300844540695368197227155373980476101956017461399560696132581071067763980326554862898483812829787501518186960650751373644780585480636337727792002624091914204585203166768327917806244661357396553490988563882669982589479374741761967954746269319289556193139644573147539981648445409608396787809177547339531332151680646119273193981082815516436045855596760833274396627730051944234022344924081902135548570341638226565341669352127270859916507995779493344666934879051225448541228705741900917120371834046290027871995067986810850981592202400268627532215323522981589069683058592916340116165840238990422814438720088988580003607390910486702685239880045537016832765201685016721657319465483767847017427981572994012697534728041157813453232616963724879190859539460179385681484626535441475762257868694918079804161992134950457725727371509105698236791828043338024257795757164758339718029350581633027901626036501124794539851178818997957676891491728992592530107081886543308936477974244578817904124033145693707863297131513107116819709398963873456644515828229163622474978451608549026837479815574507104241935844842751462056960128141840283639356341032811688096282969246450146452363013076289454491031914235108081937193463039456808039462357138696200876265708392343442138033547620657269011246755745015649616744418988015989774676123031020133472366242357634376714563224703561489059462329682151742691977076904348619932899456177703432730760222695517024494949089412277589413390299853785751976471872720949391176533402911853394280702395764630422854879158214847054008753724136576820725351483908516711480683926837246653424253897607945040662711467779375657354520595314536647513670262725474496200285342545330872548439021715964052488714314269550199849774519532740544355718868737200689105458105541758023601377997763896874505508830161416798105688697223160639624374996197087636527081715157535757242184938418513682220974376071609276462405489313964758880262173675876507111868885877850581767875969515347202856035406692572767472090020584192215724791987298058219096858232695930787999377183726894024381914492469135777798965103987577559742330542733986853506362349671531817887205752944804973905100821686397407488034040943347808714408891477492024461638331443031307833483276665873772471517417869551894537286714689754018854362649753349942736268076636477115135583845556935271099711133712188618378708523347974741814705603757658996106941266693310572562822451376801133913673285376105047380997123184122891847919157054089083004732716534960763233370809077536882739676134373948052555161615386062787155156105074715090948998023721036696881170275395331435294811676020919502447553926700061865886961231836198306604868769583502848153409558969636782469897950888244516719649145892844060362906362839312339990459909910860471216013426204962345566956238533314662699953357369030679838052772692607650362477449682833522156557247588282936673353649131040789501422811901029060053937598124097792708377209598693654274747939485947515097650755708775568059027375445508013938781801070537243454253169623893127128349490293365324856190681091653394897808322610808652195730926833312000196638211788300675392000209477720668972752577543690838856174617913358736815824060147236305270472848456820325788883479575393076373938030740526470228030068080833607847083663176190116635956260083951770279113173558175143406341451455060679964813103479472998101575101473869196194075254950322508757881601784133547102516708653553321678926996071966268013974149994614091706875887818275338645693660132594526152292808219053815733501547838989137673611427091474645419352647006828114125368905441737669513260529416050952757890414247236060658704492966444781786915445027297024429312667974217457891233450505361714071827133980716655983667406442427747195171548187927013736092670121483124653925245041241651579400052930340096640670670821262081026246296802770778846446711586043486115761255866512786774756420682606654393188618492141552865852961174161271714797889091582420936714678500814735361648572044461424300052416023344780260135288974188921884397955073511132289404340198664334728411083427517162621811272564293148234030088303387182040603595958441672222793158966733543968435875941315046680493881571201024222111797271380550707210032250201985232598428798373005567337465606888825933515361174216206228005098020686380802733214560858225051686045290186772237094799261834736107314931283723024837365845899475950245275606603163909943739397015894513880757463096038636192236714289753929144722961665002466924973732937354308039008084872649427564982991121797903130993285486468989004965934794849430072122513247522885884295880507353027398806659870892500005089506934989079811443389014641080109604545169847685831848648664894953081519513432703851906974984045950165400898223304362110673611379813637937059076894074808754719776415903934213316310087311357573807512568090014958135741609213185365942609644030135604769186962042302035305993427599145513222868324939563236596410494810898558290966565343029452413750360768302137138353854812143168606678304939029107962563989203886833316669347859647405460521035978653703903019623611717467674856735414340830178554093032940350791298338108902599370206653811913968349705079538853065203021548289381082872115231329813985778618086751492251662403309514650730415373822962239856379280677267848224813180858136672164384821673350597178457237513086243408595347850253155268264593221232830522549823749616344586136650847268063863745338476254962827963470923650277849677806573573242611474689149147560627847566816006295630942518191897647015651342069815099225201518477536499140412472323761293833258202828647631030859228918579299535897962060134528330073938580832842648756785212902959707265383636391850934347299088590259312772325504546747418609068105308256928897689389888777352867932887385770046209491975912206169854707469637281509746017832516313922691427057251788652757393545757357032211599632465543801770810894043993611975458426039943449176708447088506013281656066837543464481633439158332478372372568996348913071378755823787669082924888610125265105390081457643947256271318850204889972405926697923193854742549029574407807354639191370415753706140638766107130326271949148082710263382461551673564398974922320820937352636758951687085235495970394471970876509738627682910774601801429195011280916238865529753443945038768210985427975209579549007565043032844015828672090066839336379954939348487029617436410273000743438660178533870666823348774595937039589009344329418904240273370773553350663757141143255249929190693637089946564504811170300562000510823125580918336160577975336606222090967601988517705277164024520867563948549648576418114159850950337165125315744400716637549874277894191587750707638173507856911800173754557987331015906079732933183798747951799078781468133003335199094617399149604026682135085570232170539051178469160414914200915303606275060311615760817515083166270457449911774236813692788255611958712520116939452711481823946341624340525224753273123728624301438812377460033699239849591082593992495962027817310044301360933558878496660206500331323163535580364151280973964193208356611467091328517343002212268927651543134528799137810485283521718562894748580583377668590392789968610640087865693217193555867187660364844926652249314587715569364712198895392238583824448719686720324389776004972918799697971989829819333306280526554910357141396617960884866882182675165512090214254302476063678932483313287708595974089470420730774217865033218752199623661375303456010912596358359115107693573538931214086490602892885598039199329218394042385946155761884707460860380623841863412060683311665268677722022479000379231570926786489608705512085495188710759129021271250220613061317309108324792616189515411624336750502863474724089039334095683648110269178888163994198917345173616059613808805326616324488693912523593420215758756052574009163833351311974832000925090377489450203345899670244197572360736004787769340193812284304288263010607054263557149823083942108081327938892767242865799322664895241643092498182175051372227843422190028546558055626782567559707409553452229450053769578295183283913696170636742106900143198688072901201428707026532244598182785206185118200478375629965774654600856938142372300624486095190695352369396312489274944485460186756634980928712449073606671974854645317438641843565066722258234970480933175532361289886754626018781110887345137924883574152020783750388213138676529042443073493371454754191626079234667411177346972420634555678905259568171353566487515493519230453685744868765575761099549538365389955885421120446711382817858700317972981677890971995641728374130536318153866428678305027187216485329448689888586678160038274388815892655974423746433958000093689429796738893900205897589479074944338536463371628859509956907313054932858681915775758745934453007012151509964734869809466413307112329140509963332992304026041258719482088419385869325317534197694644260774467095519868304473226239137966654837837769133867231815902065200258919499559499132669857432791392454885657006887095628587045123059738803353293220703556880992504431074902003409957792690018169816610292584186818138355548839960199030721602158497203298771786181217162105001670165003620613777220890928763214965510493331843089104465209558673271165360452538101978308061673925953515535555309452199955030936720204330686859275907241164092737889177595735755966335184047180301179343115679573387121176836918982580519852385019091368809383339993548799223314486915484761373040100360270144931194359390640755661854411570913316450954754788909030548180481048492195153731078881816569442136306008158921130814002361950955395233549762920356258204087785925623273534726128128083870300326222077010195416797119303990403233550949843322184138264808880118157267177068055214706267113221464341993500481325723165332904094884482055035568949971973015590748140447500250672668681349672062252969353417146965692128659569827111824047537366869964038385437153585329295435293268218910021281138704721751952767685164623818972841863180399081814331049123969721165147761650939130102806352922926151262103036101453701897618259672033279539081800949952286028681885884175992443613522944911436453316918784806830012061697511040632983815698229812281986449136671299674299255860532923012212407265369447854196446926499139472590730042738088011127253724087943178619795044102110852207912427446512708941307037302851408177962810043328699553128193014601494152326378927111158772781315970779648391712384189554478114478265641630998563732797358867654434507992611375076390745200314844174985211174652960312200420758216746747503782246169626856854947957963461927715341600586707172626569618940368112972776174497489858597294365018803820818476714270223729927554192209431099005647881528090379906110503457671618302675183742155298299650124841848457433727540448646814832115086988984170467894004883192260003652915328226162608780659074305412148660477526669570958204015026998680418343111629797764168486740738258652214859588946732409059194501843541173053048481199694750264167613603567342513132589498419698698545934259632036509338080221410919858105436761616827311618166999424482907103417805747243216546362040874589980887177054664190936077438440087359284223398376499987082812219395121205418163851308866255788140780582929334497278548070119634455124034169411691516541741641088009767590990791247215364696106758694428247891333601118105899799727242322531416731678858141191952213173548187746971115112298683274665719477131930960265315211612560524663517888130071091468920096833202682358393388266388532204676534412604151538010358390921923997819478154208056511249840264293679520860136345761855987414039712358910283462220539994255492259739146353004464054484914758726812691178152828947030443687495744851935776946799838392029373945972732965492565089610420638498932725896441699105102029786755543299631207514269643468120174406428425185942874251805250981453414685773666009276798594099850877449351800534378172871058954963439473612669660877815877121354167285035416757543814423574886305940829197840578978872712965346200691586058462858316741064287182675793105671414454689174943614160108395684000748154327289115352316361755060193508177059817037001594816896152949671271227254112275765565542592594956658343037398145331868833868156116981079457056337568168058524530567947442726462170637999328902653965187059236316036362731723725530786366415278620948842553980971679253460979752698263899791243133209494436390765212403805279318845443845461152758899652463812333050544835718139383172168874494188592245215168271043473928825589142405136829651009195247617662952561518660961242335295191209678504570822213644394760842437124932887578630980233414235785418981255371124786565722081123534766991889066462431202568250650834343664984515823171320263774992590639800228783484753028597989888956685190338430975247886107553512840977698403748646589491654648511876511028313637409291127207114424866533902383762826675407897664480022680288633738945427734721216475824253718504391934067201342332857621182584773478392674438712445594511421571332819343057561900072679609251564011709632110641639768127626222557672914656144934335322600906405951923394555447855991129247722049485503202857242271666828368408696034572479275579643782782536943331961035259432803859412483596913439459378415345106749273896808068968969910781825355575489995826187774561367627363900877781956652060411506369351428064292687442312300819957839692474957691388320199367959213290361492687544212900266324621954667048821261909503483155414968291119250885622085656060861814697846264537055433351883053912065018193326360154685650167342290578458448664729973719171407449016279060698709349797772630682619571846678854937535095332427576259105786618202461332412721375472052112101844549900603553859508272347600592312695849208551007974847444809376713291837641469119455356382519325655222363677082479879310476099016616200737961077169813769062723350396681693663501607880750593245726671907637882739878564644545758033387283712859075172631245157500273507976390534472708355401418812531340638144930410429226311670042546029212004176960688201329360607545618125835157356842600441511082606007349497088822928949146504810927996619894287348619576113153920608382105945680567567159665759815901156098193268139963987323145328715832157650003349676875539140212646771945360902791520156089123165706795463303967593919740826874238590168911500475135180593859343447919863331346511285843220581101492717683871498698599680020257611956561840978079453962249003782311780444011480457470194719571891264887598304368392635373332134726739109694280126592504420504410125222083548050262277968841055744812137794455276427648779088654732318200146919730850649601035038147768235638381622019798653517154440302323223280934529476475726955262425018211503386055674589569990551679887105316023875370625034446109086158206855393616354322963791741109763387272447031615793783678306813874687074529689491555681862592624695112546813260339635054025418966366063586158654859939306929892959684388834527787864406050381732202852412346021285922427295407436049075221979182883693918250652298240690367986014074437242861693881090477411527554934079401520781413487524558892439770083214861857107404638110718369333832782526374578145316174811984794227800914034350527305531599203343917024927930891139158635149661276468198928365481052803073991507346658830558321495796378579773345589564456107372702425476226047583969550263974897954546413209436302156804635756222815025476025712453118198345025186322012613058217364033583155130629856740779167911674612154860749619001309016115638882462556346748265990325151291779733357351358471370408099859963111032049893123209266833861500081221093377253424451542994092302200418009493334616539623982937446766090434555643964484565198353141498847181697347706216620524615480550366791785939920413736655149858763003007048286461083168148398450680683238021751823145305076686530151230950331275183825081851350969309508652653802970098726030577241991527647933981283817343045650947309579085645844345578881487312799628114532866558579414688843101413727418775290966552082916284613120605684391805232692644178372360999695263914985476305163270153120400365322571380556718341951172006064116967799789904113887746626663134660359365162776212494528754548311829549793756317401614347258951261996604246205303925204946209730673273428600819147476985570327837245767752122840496537893004677982862167268965525233671612608525299133000275331994597297790441254132398373260644038673782594273068028982596707194520250438716269446122714428766019483492069975186576271213416662415788424962465137470353126601992725497868909029974455030692388557502668632646650281552602962226771246686525769941904495593572653056470171144888341335176106691189325124800818767381445770957061935891852629790392435540925432179088778285320356405587296608023604968820215742242447079147919980734112752835108925056437633047928625652376446081618145275468680805450698396078711752208560967075782876972510704774303899165082092444228146338655229002388750463984967727637507175150613716654156345769647337585357765676002451361781859125101575846373049187933164561785303336619117771627589583748670532759288031648094592893317610675359213411295230765652043950070288774957480168827369862068241597158955932696859374213592062810187592715267134566596336964148281350501883745713256433562057015909566748375439364654158229772753783239394572525986382102289822252061892711237255292024451853453474902114982668443026388688462041964278353566451428083515322760855938654182077707899716087791474003434793047569536669408446846385546412778253476182428753511721500436374131162053860277597947096865746193345814361829413603273591431469459985671353959143908318590914248517125704316630098909062068519331292568117631359098382105373396368674095236876661972498873510057211020421370691851449159424622489175085558982228505299002912285860487034098656064632078166393887923344026662021833652094258443383167251581443295299796523627165234977750628314515142917992899142363762257224799984996128131585226486654310062069188574012327181508047735595732365911703768099121412893876082534535762979433677493876968963963574811562397888994002397193350680658899482527735517880428997856997515798639455082294398535025401599423359556255850404676395321731594893186579025054543763106887585261320847668386056851947158929390494289045053096506062533192701496614010875819164582588981969135577947283414223841544562656867596508418640077831938928947814378456879652133106153375345672011652834657217567459528858430776562221957294633732746422058887983952955317466372651777143172877693287222396744839201977866413625892044210552585046692412958003948238213465479791056818156759758393541111702003760997177690742894523422580938585888025204281655655953522052573894301979517317661200335454674090862637020556941408584722173870641608778434418532550215310156626671693056506063920112778014215841678622095338998154191830437808570458530116577551601278013036609609556466058993364478879114303122730734591604761795702677386780584296258413294810452112626972692045207368015957075627563668755517174762510670139484246569506243829361470494710087400793236182161782171473824355359457060516332032730364507192304390664969094671657493755295314759897070812643927083990335698640591755567777344788201515376124850276555246014038909752954471041383786327638338051777332194064406302600324536030497770946613355204518391105328630219354990475083385597625109282113263530500389656978313983861722199120464280153156754345362304471132174292374370333493690944880976741542445231123107053983054704454627951786292043855261594338219613507636772634821545990397100592453868850970071883347523047397806645093520405882095513414587526640220292897807675195194553793329086218374123861023873381474654956301388773298016057094236961403332639733297859812374595930511583634259387438261309855125492834090342875107866832111523989504318438410162915020383660242924984004882542449512645963653430218730543380891080481821286036388045322791476509137603848920833593020251232802393260029281397915440294961339124518285799448641318197306742822699147686113421144160134055024714437435640128242863318713978465865203304301767617853270280348133657592181371894337028108026093944637309785592289803054951894975686298075527038788200554308627530901528274099715125009446835958016172482475869827545776031847168447053630057754918593842481077985489821501731277377766837075243993813658167947115276369412005426364208265492458537384338350457031655296805757132712995098143576747296714434960633862235178347581084681192130380787150796348384555864862534962789616544884104592982536131490942283374329626626590229932085547645491194738730693635326190102576963797174545390401014299141942682700255898832896753947321224094142172531144594885285365154785775586036726413269948288639138318284656045477125204734656334677423589462888151200900099081910248278935837587312837444357789720614594483545517516779634903002984092738760496572007541833891425976169149062776696073351474246871253888718443116693627753413613205603881292582645716064133931498535538624137692944921371271631299559211130286434272886970036281502505847269186944761669176509384421686749181118875821873089272146630167647445150235436054288820226565445547632112278550675757056698266636082835126559589698514390210963448358479175359196752190649587568124289429978819474211839476593747996215602360046189132645153893046291003144954296821663065756772306499518059546235633934981210959690287523573047566059590735390733861040373532199159643640517627406570776773787513550822586983799117728124650216198007220142180850870477459265208307789454152630877635517046688765751253351419157178653805105578810190503479958063221857957375085225187401321092527221608608134449304472127223019410544283942535497633042646754364230412824475282569507299697690980881484750837032441747843794359079975582375332378752137661139242479380239503920711080407314773541136928589285592387056673028798599793638579557877219302852827031792120252146045728282164869396443562067578824503107318168976144453035478183750477480484064607543978640071523390885309879935144452414093520293825175563942149294363235437960405537547538969082052830479266991798764268866035123851504330607253765087269213962785502607362903250740775326446654560138967411713975092534658859610651402209739242034093271875256747090894744519728554233140752319516739166447962191688987102058259551181373134319908645020741566558215085511060271625118703260745055736851439922070585018130886305397331471064115840358705391124430091833534064719788373206312918122519822398463272095400254013312800280685531285915242479518022683980035009587518111927732525411266093363764554859303065903952702668476901195356661389986376517780554994467755512471153923179155780185761912789897107761141334557669087123608998688228493624039897138499222879494300521405428765945902155828566656762445989294660494201846693238094912432979480302838286367943167699783982223690485552499886025590215418872040229906880409143561877173449707251750935067006304825151408698369611322229425680519850544615740467845136141046260514758447444355024227872405275142321536975387640691931880016836430278226503213847069599570764447652573269037420727038016225566528125996827350155331026387322718131620239413880924345233832026007444722276887402098212313353857406235029425452843317532323694661619259573189634999489975923920510724687034959717916828262181349715826020596668291930548675097795155944983464343212531693399011781890730477163692464320033529252378010874836509434897965830970952243360209044981545063176956225268050506805566349973492957384442017038483291036687324191262606327117308148020638460274056073672664449681210571386296803706781961090426344041397350185921734903932508629837743443811630163968431255555901729589869019464642929762200052804172548786648874810132235318651840462310720873280071250845248480896575255700731497753028070062505783688249857141548051482723159309138998740087221258406778461836062443311804873526150430037340298685566227650375203592887089537625380266427694192594195112013851404169376497596915155333191378182584696927854908591815186062354697406160223054335659705388152701565252837751027598958049273096885728198505909033014849659878637934595697339241846779618946543357094399081820497827769176552008377042722218678830524912349665614077677513171440673384725122933707936785163152114162412985074298369704570968334029989656614383946683118705571055382189298037692560841896077155106165834297745575865539392822449086244085299995644870645067331943665295289752723472317380678107549597481891316701009928352400596436775815175241947762341800317191239657990998578548320778164572588918996627477033452418773147498072977130380463170646777613340614258135438201279237861548027176837445437123612216452842524350939447070470947146691156890728871804064751092681144674735675507687248371520125353807232540666768073007324180941640627545143082012831539550470384693639835696529847450371407027466409215819596390604811663704936538463420313723880471040073220574982223101238158367021237134218292123978679415776717774389434292147541490751202342178865364520673017637306060684637637716406571436010034938847550442098407940390870968082558661779008026105938677629331442659946015480366065746908564138624849782404851097927858708643185129672480819778634699383643382391094516244707330533252484366000381144816431959017850001584804773623485720510619590178966424790216851661623384953547827750177391945572221442901261921628858814253706926737268174232254907452459532356758065803162536928095453902404643493716519418329427316094835437215939734056620300864572884564841448465055837743773547080403247496401313616754837435524565628478604128691592116181797020226951688634023047951334077005856471370130301443928400652628221068240877525288721052272538606360676271733609023468771615422395775906838431751698513025265930057657722987270177747657361005316146463074926101106169526873221365800959454387930263440317835700731138696136131073288302866789886721764567379946928175488367356675227331185147156496270516581493407210082963862407024841018563767980605957937015915571067375741442199350485664729436605257831949529166747435515416746439470235390990801125928068463896647830125045725249455065309189650936013328791329540134894631502581137241378715846484626360933172567157597725346577962541245224125125570093765571130078805970800960988988606367401144231706719074745569826498250004029147549281904498804458125452417330522990927424124150926725896024396402234869713951436754887625693382519218256725154561113455182049278833556236173758919182325965418544436823840468795595090859814738940524186227903601942223090354020699844822196412354217788201727509221601934775783406471382263061441167574700600692699141856749406160692897353101224564402734037447043567935084338016465091977040997637595585352897856579153372145431180656337902076305880991323852573615709704545245616304739248756221523810976862262318677265251968986474862324952278975205712256407750907077163060746872811323688095587763725329484751376218233539567535044997525926299427168609432668184063911331158072589143908800684051683719627721266731811147225471641528481486372371660217598729942233070541990315343562793999227254047657464733126332068645323658545476409308550458608286227792176905318191818549766346579040447627108521439457703878961925184407670735784242585612117921005922149432304234945343259269071040331589761148805344919285632502515892391479617000923210418102015086280464168032877881931062122201213639165331041491903343308983683145865283601247781368597168057800766770682334978900189467038987132294450205620912846664953976011707448563577168174442874586092658450940510689556675561674035963243257798394239798051848602461201271517141806450922051478325545289610166064719867975726500487165273553791838238897705079106389859269340788886033658266070973478376823552461965337772911671538297499266824243288986297204956939222133430799911222139341450727758843379236394438759442674980874970424066267823713251765887210100433127518662646987825101906340887500677422393723361685717152783054979009226982740981722406391387638548703025736387298034057928533978870996732482027928998204315615474583354359232576144845471809494352864325649709712658546615411365300850044485347750385966140692934568621605021138278187533014420151758124719407282846367916227179975246354608469023825661044991438024064346846812289311386094931541622511082788145617986622323003467694722249146746405473095793935871204522752703975440201448242013295288083940743446457439136991056447375327130269931292356451451068893498774644532217386023159944204302242362116439925119703661610560475703653152409722873084836031981026769830580443530516757807728563631840819583722250022113885378187187375511768727635190512184778554012729623621437322550452917028098461024399006133006732006605444669852353685545915274230564201758510664756310807796159744139781991564005893290492487854126649538151959645488441174267335857354294975114935433617613860126410975556301285845348333299350227581751631686017075460503953278713333118527553697214792172337974454831361585838425375516848239128743168657248493348882928321456286780387388223746287960828810973214311330254110150293765708216066257031441117554371259139325426299174221880583631072787708316978213756425293303207829139686282917623575617707110631958468210300355143538577259233535118162367682774536817978225819284177847711194425047246476273860533260719681190191871791975578285192316627978753588234144415521729753692928381447573351411441938922409187218757580677769667338487813753777483189478222422909914349834597099729450009689574486749646209676150110895567777587846589990598955551907241740137740208649777432812692668522518163291533057046195371369667080417754072867422038716702907357997416896611350106827494626081278544938364258144343791030311844998123843550187910172627385157066492609248795893136525222951791960173563248448261684419444196269199052336097962557769544059614964278559873089773717739556180662726123983878549917118540732566099945228862344666289940858917369580457349132911117301132312454164935114261143111571384118417419238474042038413936613182046855523912093716592722890397585503288782716472317469447018917399075957248679923594047893663761559696557502402443066441801926111260387360535622917095348904310397791331086577409434108566080172073488896541031005523583555683427111750454865141783706923927772221735839870279993457747137367211192555858821057012450158720360444217673129489949375792168560608798886011800475117756075860270077980945169845828047977535530314561525680327951909595044135706771416290718842142730376203109864775394193411098951407597993966048123465947008490697672494383923747813317005823479555673352501028570708391777973248330945775034692326024104008911054977202057587537037089130433873014034042551293787379749708797540024870461621409389732456983502599670886453583919133149731761530829010827418177291788479557185907603926603552538204416710005656004783657313981631357497932289083916184709847175014088518865103527638898449235634450215636242503439991484553257581394803240487534356654291879024742969646058953938455417478957807572492762626198910696446878681656678969097363191508961508777753868195318888628741410083426394809101346233369539286197775768319355736609323834050671154786465250232043300502033178046551085175573423965427130916971663039727739390047601505606446533146154053714928932268422800758158418406122372785919611773024369472569761398183102978530603566844701707080940286964660330423288044870803375228738286128580801507377648764844772960729100788566164012830466111685710067285322645972488230351688379937598222005163559846708715578497670564868103772184454395405008999661257473511235440062916337060080337932248930226440399372015594548614168410395040236716244630430219801165978279995963241662959355432948274197111968693139711294126971793884544946848216745611465839045151117629766456013030655986393252611647411522875583086017488745217739095212257212939548737914179137668692190618425417140017452623357703582368188187455557659894963937597553935262299867526673400631352440190632804178734803076144324284216189492123435219098488669521438709219808924113040281900644230098136182454189607612026706136589357391732437298907010094167029344963897385400339394266286232283593044736237795768936196909790455920785935358057137445181755301119681165489481973770587863833166241017256773318218260963517153985330054439935378187209643032022685835158890623882471102388573146562017451389278909871308971635030499171702854844309469031956443769762794337086886815717837566398063077083031567947452405990716960382719445926364038722665936354994852549227815300005300919859356767101728171036797930349171394395226914870149944037460701508224678995086775621938089153635452434507399290168615886177711807169213744990277871526825245954375280274027799393741319017059722155193215344971276426418488251090207052044390632275974225062721658890358802995460413232526081352402331964867174351817221915771751015151701274910522058390253523286437337024527997843482774818310766805725955385838235675822946876809460044170891033096945621380940025560598913381637901582520826738321415491834471038620465030048999157272581493568021623472784450433579394744032169448774586127631765769919504587056378906243999680752786812370875309337271216909599012799129820185411498338264265228966949613724940923971518076430657094284233743813600779228683555808754639342293372984783270255978053030277304662441530413118151535261187410554091327605367340144365459750751788730563133506509828499794090987055365304606769318536232793968099455279558191408957304571578522558399297764787709292099091961011159371685130161015776236428648403449522832554313773158755464735702263274137787079871241980230804546960946994356377764733887622460195511844126365143137772037575588193032777769100039563204233645698772675983827794120632847766119486982562528041688302835349356672796450194119278004923797038370861435177709628252410401763604346825610327099303650454649255424471012784068653981483491806684887113141568794967906253881417270590096235563532677255035179199125552569156654250290158286647696334280074074790635636642851801804510085914363217873936297367931928765072188996263146656275032998992076157960655614350677222581506354533209735716086496245000759634138835645274240287612477267541219138950953985900756682760601296410290406388301196038360987311948040990494943678306970063749524775299392407571470841950997505568598139656344921170298515460987975750689625341858399335559575985296638749965618960466864696024248343601184482923150137104830809261288434838378104676497341878256548233346653218717360480459101656927227644189568558629366246437485330400115896954538521649913759069746015751889638154581499225396639393548883887082968678166035727732109750097156291700044399470991699311233563054992145146234492607375288968644477546800118240314898763704506307546750032947614034246318549484188915480611657989198747180376122154508057676250225052796994014130059314818106171170984547810628027212083530121236497460194238158617306961964559876092578063488133779354352780967321268421799768515836677855141184882061299123371681685188215296559524136082756971250069839909209908857179113402572862183224775478592122492356174982842697258330676462329293019024969930314271014165437956506482552190475645527156007473827639394086783935993162447142834271985762534957217018217820156377314526411746061697733704099728783226794031046419080834051555468389598299116665457415997954514356653878306241316870863072544363619018697208741600087402901777236116164843936231685845328938209541170841115280951782755236259129156869141880461481375408318731220237107466652513778913577140483246143196555983705791054519837552201181576011805850557319502759493106490215187967896953946392068164511180039048700010030605135564759273747005541147046217207982302677236214486315173138042751751208635064647298182308775166805253962065960923894581007398686519467317738531087789671189411386904884892737815778308248203335982840982634260711360617014979250720945738865823094590413860424295980690136812499136011677501245119884119098220134341812756418478696470405378625335599722544892569858646524296143103257669458036346679778472838491814000724976926301223864696731503860979166769084482919418614913624425997931971547663512995557739403198810448646806211783579468675895146444294062499267938034482259274518347108202858818499961683105022859524700297503688041967563451974911008422611766964783842431922285977615618232072336680294984178661922483281235912890173019985759442777311226692463335482711470597065382956406815900279920128218052803602349880457371349716091054908671502840667920032546591985773253446516456783219193268978571814423654935292164161002379724677301244866572117847985718087895206575961679060359449598014333187142428138053234733684335462322867356705796560678415358357623947452623526616767908618473663987166733332220823161582179336876664686676248213403165205035129011609241354208739022815174337053795446893590991119925380679530180419708320927992253113001807106034513413860863477596796549117150585300197780089828002385953415775413541289888649850175155365173776220064397435520951723087698318749742696268705695180745287197104802625140808779002577279543598209883407094071825185365303331866498171978697858658279217820963341705412851709960982995548833954428881008709797951675778218828883945975429546562523476977929510523071754101141648077024180016001324501271098134051558537630321102137185730887511374237721243022083131545954765623570581465125215088408166877951709108473737903669493078210699207500680327903219042381563209183521772338229348806722682262516283301995025666900253522571686054188312666582278264639914924380737045285264029552949831570395982750399948240198937055800761222737416249163275786531035306324334028289825762968101873910951008120408783387999706705144041041420928806139971005616105728375983678337770262370850619310573389557502977996993671845303220117393503701438629436666985609017195326151324628885761471746212328479829717728509662334266855908452172637592776564048445976136144804503505065719148184700890031326389265027956266835876331638863185404861938736285307906008414744609806308363849647868251166882693997505708221705799645018317776591589421740382653861188654852444683767474527786987047080875266688551039340995674915527112403639023974197617880770034357303664161196278123845846297321528530310604203035978933040120308231783095324901594866434794085629870768026675986674025126962990657592313242281380507180147691952319823384724308026437504947186192722683512511251793018695417429377741432257682059119179072087323108226809550835844141788173955515361209294648037473520006823586140755215588820253203334303761282776476441260465645074405187625746986052864527544037018625174920911163419797563251026005687829355605111132483759495925136467037927620237844136678113423691099482438851934400187260106438640510371922969487279530966979155546843318778001889261993882604183515065211527650948955174481234172300853349371330925584703932358062346628831634701697083067748411528398294734536123697206245655503796681397165472196042246765211944488244916262739626321912523128164067454902006128126064887228515318094831798423215926156909226952077881751095923174777814269237533069011136352082643402962722511952374707770491211633558782222140334064400204139268960692089330108747086257065072197900656587247277330323136673797905358676673417582874425465511832517153662306121002172213738938928970727074109942396313493680567943008889821805785945772844195014654492896284387988548780029701749427078409310538482080151068314292406511990922911920042947417195004481507040099168981796950838044544779082132680590918636703346042117732787617311013098068770948444292778499275237425330689246997298165780739673969573404496093139302428281029392922417997568047014653184398011471849196999817590225126288491909938133389844068591477963924533894026058953715940753113597611982025345474561537841812535549611637433973340028041436538639653645935099798267623347353011959045060493111340141391410757504525802735021828124311349394881986772129794130987668477217355123881193159124028664647574236603093622213715181468542967211050927545820867974736145833202750815586185293773878322974009156438589018050381257897580626295442752645856769668763189468995221074716804585562228788617733052452764747077864349315075704217535328970398976525512404772072115401124501524615287539975037614806627029845196322431338806630675981322497143855447589337673672610318690239026086133513281946384284266310249614431792930676431156707061628823284937710174573337213558295831395611514931865332431495654228295137052039728171654314877289529374931698111109933641025029166117696629068984991301117399678337924502296505765838040995838163907145461670392263727401891490268945804173141034153249131645283204050358095203069219865150581130181374918085134648880867953065079235728168899911375140448403753819590120276367917101600866209182005376605742160603302994985028848296062679483198304168433173273275585120483325449851498301754758562335736701994093157717709487568944797198845943686194944527926016598366747012547575733376211109538233141948979449124316942221163548130278635378348211150129692435358523700557548249826505794081204497353824021800653457098456316466361699936489251115408924706317787195768845996607175575166001180349545267178602041952843106268295039268398496946897598462377526834017540070496064902158474697424521121893276728917117849938599568583829887676785015252700905548595445788123888029456193739871117834781009395065324347357135065543068926909634668217594766017615283111258248969787159618863488102884251823670762408229013315219273006126141234090403848194802570877373678969248191597979146847044890648075385317707976394902129021869046186593726494509892534948600484942672029812900526724065608881798589112771404856344684345664956553056745929542159280063165470409409242667300256708485140650400932189982655646621579690714522861878422446370608932136385772994568027640634435475211190712589963903265764986183889173921249610857495962981052226494899980741901084162041286119635443955017234905797208842548632238908931106427024906166517464634701173317312383156534748977299323477941492183242424057865017833115820293826633618663351207726686504819545107412109077930764360283818836300612661624114128199907651524596519043644372471194194449416928523795638704614103561666542263506469935813126921102798343442797118981015453777339338255272535804093747613158757523642685435479826185803102293500289186712849393151108428965683225004215197403109150629194774306041318064331428102710664498932478516544894215109740200078670725758012768725326956170421688660900601065162266646360847214577931107905448895381491387652843701469700219363834703736097949068981887821860937712977371186334789750773773718990620727676195086197596610909254082091044879468601344652632148954180822983779230332524437333501787607766338452040215302418179109044010101516645495950567104510316401849918557293346899327557600295783240890447360008942455925030449317475788495099084817180192398135432018521980890169939152250741418838626024794898763561871228387285117316865885780019488419045660857395008511437240326600503842966725024418245276315609231080152450721556365420424579991140734935849731006868144015582627151538244940363778048426566680152566166354793376956659963934005105602968870720081697809512622886816241725694770470293665666717121249116830505051967624949453165543888640084430551436009646948336114068933982362748527126033370976076141706655656301995780551875539066382278617998164735112773481021543945492730999688921403589945380581559227840552064941894560559589912771999521908951296371619984122016548252805708265963139758293003287854453983763330385528519316555811144278671391386655031010067034294109368982466534466369499788335304648848150398137443533510507558533145253891728165371015818192199374981079960723077504054671091546946845540362877421000558879874033270490212054041392495872419457318236300063220162543558488142283241889453680644121849362124041736168722788326962198123034712422805812902113881911089048874091017941808496572901771188436772512093766315821224736415576748229689454583320119668176374410959782858565598387122966868212287580283611075883695489557186805689036817180834168958614914896110436148138209710169750728997776280425724032300519558987855275820566310688587376322439002826070402807304536537128650501013526149661288466197062078792797840945462723948409779548670525592518215946616151554518029508931291556497444775415515505750139081243200671233204190574580944856260469812134672843775254571607392472643871147660480638602646983977655313302075961302128791142020970155149651071948667691859356370653146685681085139181429944542128433694815388832982747566514214992720174264574213388013542392421638925462688192728223666154955282412117575034481444420267059190835456003868653069303791712348382523957694676976595501895666894109556469718372144052100241711882183056912536358061305160958068274863386710432426548848812855020327224879402000577070795895901729715065054710552258126814795385864802739100836741600594326994794534388069364616261851850230172812034991924159668898172699520071539723877346180702675458971428229575283414453460255081461984843115362609953800692180616907012031016795110442312417318376256906692408410216152618787416565103342529825618257882506417156818312326974988566100115848385625702442584912413660262001936873715270919556953769940570684971386851106411539759718387980327238983141792666866184460892141484342652506928808211901902988085305948035353058911334915886022809013343109911085632060500234741215592881219664149157027054198207232055993973756798418422959057670639467820387621705431430781861057567622077856337883264868919263570999412027827444971086001010065709519066053044171952415334879858221113804457420467730006628279786731943264660363900008069912121060329327143654655624277033354375065507948600741025066218841046092069923752417240886466766837749355495467143376377170121796770383050807054127332847457200319938828251107132334241863547835947355463038247405252637371713962047074694495771507968301332766180837666653692788172652528578972450452068130046234133927437417334929083821665362716898627853134549971536713577788607247037059466645993828200597376280859457407044328342951270328202631139735065939037981905024393694074111966728841581304795110614494394262948888814181464729980869706890655805751137493909443378589070912661079959480752147764993861386956805521130850025511003944493835980235056213606311283994646365504789956951071481541378518825658329247907899549166255727118216476468250647076317067664889003306710924556680471323907711422502660082242244504992796529346764307786480651262733706591751404100223170172607080886063333972997897109577001858344552951680529397440010013217116851155599137382915482486908287478196779468906662106999645911114414047898433653675877180100982889484230072447972954639069744005612538220295782913836250806110695255421041660651807691349807096932691254517978498642407955896559905129641925066325739183873248574232732174779573304657330941212872358042990647343113168148164715263942725019645361424624964171385797891610403422424143763831668471570414498926990022611986801902994981219239837558610961181694729462080174423631565296441603789723858136846000126346573619194059532354941932055317353379251202178938065919242588398386831228503791364459962584996134176879624474021718597907618123038738533732432798558763161877934025189813799660683789428724959560076195092355430252374527383777749404024205243261761622428924342364692109806533948263639778868434655876514982323075394559073162551121253797500173317603558132939427217998613324716750651353614778621343561813561289078149648297540067255627224078722063158180838393599736433593442314516367999050645700309172876366853052588261583447393579427877374013770108255207976375195685551072315594414620136518931761236005784442193531674232904467600667098954890279290473412258812916089362178845457524115363128967777203040712408749722681908368534815900853465342087296485712774712786526697405048437302417086599007399663683850156689743481420187992892077114050868049736818950613746659214485843291809048250959575820382512762823552094720108885316332094347658587317736478333989456393366903591524000998748263250431047481685459255935219689288287873885683609633474898565583566941977948887628159267736695682114811940420942193610460946600537771941110300119749461791719822127134648131898182428374376766069026918719795594368522082708850000731412354605236971506605052700265407093484534265602643743107398232662543654949398266090211806711411713058662271752891535707673606356261786928971966538862652807310111888850244907625623534362566975537280529279225841428875501957700570991998845682728506930862863924747924244170569332319435612709488925393872566944546299311996160692698597229846072957462283510631782609094711584530517578696928617348946874269216124201286800389940966670342421080925377963716815098903175683351181521640690149020104884777527387395876726421280733979526444347805104887311620158069161783761024525981405024822117033660118714318086817424828826336134879476719307415680837799426456674684068056538522772528763822848999373131447946960602424017572283876167757464833662882110924986156615834046704708539127966121892235709586061542397222372650403103728597272274866696861976448997764955992292102575909928402650642054435421638801517426719382224339244668800506688067367561476815859317092726604835363008335772059138530679458304634750584131999710798626917225625869276736238356809829166208622733021776557853596730614226806263274965633144162778080630379405838834787466008864028687543659401301043315961398953296576259358592241474754474243862750942666838231319913568893024098554466892975936120248716432775271966075818577397264049587145021743543485318680561787798302472555163832105338762295238906072345203290229253116807834353304561969750305002352606624410410440960948849119110976747985569136710935244940989187485628009058356897524248895656190342332872777169454998549519847265793096685864709077857673839540602943064147616520010189995977475143890218207236682098536007320688506920659343144773130923170994823858074552763799092988580030157712308859052205915592900449937588030169045944438291337641630524420944551459803208763613083052029527123536083178218402241983389819353143909609404898025607308823803908732619976577137939354576507210170820076318057423989627657916229070702207785528781923331947506365323241875655508466371327779726605580620644789143112363896363324373293334025395702717793294312200622857606842579162623389653123763189914027466721214955645449810439508026288725390050033285685214884393691701787315851580004751890492076801253884766799018690197452943868405050520052204132107937990852614446169147497871414008909761428285775455145171530402960381817552072184493174091473389894821668171231397808265886573957325219712463296869952884137131557397819375216679221514390481703079750112922668548412093818792589442040090106267979213423917902634844912758582993729387962909822025243362589575642349734672272068233600041824237158857743321867713564114222839674746980117879788898947969838227331707503110063688564896098913166187788581513713235527503613486111806861785854246194673867224707049958908397972518955919698258677133681852961593693778143981816879685335142538524744107885144146567966394151001214270889802861766587433976827233720147375462802334035725118081325189621045406527473442466507212723404660309464223727690220139938389146021275573663186747910874269382964210735444815247668356877613795244775587278352987103013069635822436363447745311719931209008207374446583802624464432163464479129800088211038469037485271337464576418267367332019110806224149804278402235112184802111556416921764007359277001483687816378978255583720166947131034982099211607579092663090548876053797213185719680046437950067674664295195303356701192743085046153678219053613158953840322622222542721764882610759334922137736538367332418265634292235287762828636779578529467294010005091221834189921670971809704843314919647366412590598188579101662327574270069011323362634176083164998718399014204404886450888884151164953562778902108254349606888221216388865287355564452232236577717739336866813444648403748893352329395731621538943815317300901837828016521383514308801328093667336339887025287221601509799556432754843981164097343811379201403428651101650855006266011245621105220660629116969719825162228271199460533372896482210200334800313259937379442833515003625833956693244072322965418821265108231165590023851852706343955417189854434580409218402305118804254080491255390662664326373195196528883982035132064068685261666358777425151648993175956446345838032627060617212194525636798321073538020761014752219481813721461483157735733766135674905883666673147495285699526767676820140652871024576887201680877808340613250184957963452817480987868005205331174296623649804450736441020276599082816477069980126133036595522953863332958108919185946892011705864757241809662816602968590270683385773095500755334789434843701593462252816154399688417836712040185788157304003939574658003711553890050126643658825561348443208047020037889914176492081632467175682056496127425342089441466163001330971060215046655954993498534041320941946198725428127865260907396096226442551117654305134033640472894141427001090137268610552386010522977258090642618278254976360148686963392071301050245542771949277093871997025636348732147590222914492044871464726427858302902054301078294760739207140535634142117227617191714609256031455240388797238590351850710469553413323323547645658689205126934118499104072721133098055204824632312131868328321899434693129512304763427825364358294698815456025208425037805534999957644108257061652647931370762994336221674986951289814456866583862085424127841090101835027797808019168672724630539867080425862591718415378677839740817362353043143149960827119788572495922130915987500230910911040218965801803308172485509512505366243281243016053539916759528217805487379092198856277443005214306254168559172827802798664377520667328695011121974781909472796381867784240726834234984894698193113366604522782868524700371553113326115860934682536442159189641333611548316037670586516040589552557180855932721533377777856556485578664073794962767905829341500867071426867260512658342620829129431588827553415296883220588358373785620264904343078511136086891154199350064739329116277945455144503688264213715592921561179123230713185238427900091014194337925831699415299619585568258696037653679024177952621419664570372351105760273171445960881315875379392384410799558016349764862974561080374463348395221693928677079811415165205007505524269551282758885395657995210375282752370184979718672023033513439078723292274459680032583658879657462645894839893551887078506956966298209148320506542478152779989165195132042734948898411793958979751605228784300403776854870283760761012575904365533645494753940734073580931381376698351713539329359039849619188017797852190721018703680569471795793349326612996978416502133190067450966373964529764215177417007476123477488377335085771914255681270118568593531148734420806048400417953105751139781588221678277364648095969322283145637780607051935210981224222760325588461500508500028610324370075321660320887073424245692364442626496708690778526660959432504289226875634798051987236886574952016785547949452562148736872010060966020802129884116033073865205102521861988418824290222645996540478990082070099653800745545567944576026002685733946676956963203952059397781859269015640723821847447851353469540605769339450627735495446857567923006097097034733639865428773270946527310947722929111814020966900666056464529572742098589487267027317952509474284220268491068760829591014984532920255032368960650310294329562881227956340799622139338372734896813464998611867676987010162705759986475731435981705686191115518642406737701426343963295911497309045136882137849994647460317950293541245756147414218666237109711489613586726852231705904625589764248881148167135594262409096021049550900598725582695002519429200214325022840319575205710090697687107330453012203533965330679246773681650309596243059945332803500512143261803803782921137112489488079740065678422579272725423014451276801759419569348466191893804175855054341480444641559366876686327442711573473021294651289115285940212922515649933496520062017554303537390037070071655715365238800319949338457814691194699419439037087779425155980273391606193436254289886375335675748171041609058084775495000941591324218346972557273578139586741285174769292617948473943140575344217152994823896778589071381208841822127129774976293234664621813867441337947247543049573637093579341615529878038410918017354284957472573792432462884494741973618366872135597417607158488029988409829520318981483878995675326078177488186160632485725150125091805637818819517209930761857090450306773108253769210870036679820669558087664248350192100449610481446807640762485002044678933371114868068165871890599398898454929640039783738313865639733292339770424761670402153845614968522548821813157333112012568676590374693223657630705968376013129847945004862137027413592308104960093611258223863605756047527822777826970051054808174957997217790186890832637077247406908346894681997614187185659146025195915669487529120214708249204952425277172216706690927624014009198199330361055456231407576436228357836391074530727104892922303936729860524014462869364312182401354506567763156749998189024321103117751241197738764343159765058555597967505046350076989202241234593018796146628966468875570176172032086953781304303039790818368830586615738438151766786841863355238919981410211558926158860821152373309558721868643274938710119326729565894509714327437555092359922262068181671642829707405042363777556909482134049099452244951751174377182698442915018835452945022854000349552698326940137910993734573317740555802051303477973607866152664909168423820536521539226450133061516195494560600334910832723727899675380478069832415558226224117456516722897676566744488296682859947909125844580797361691413270283634741967537833068220995977523893649463087169152530272185106165396031436084318459367249876589896019877209694638090048881280041392817642480507839002349098217635933002864981779580686868936888211737049658533504071614936686133580598402997900894410145444740340104775918129928316182215623209434269838890151749718341281569027260641505367017082718001570504305010110837632252862892505180919112107688322068851666442606376219854681996328656616284075045823920640938739994889735964392093888445165538963176507159944164304447817141328005881296456167411383932298451855025377348328108204645729468822717644491325884647927074967157259308860681219815307851478853048459981308075736548794475707785891039643692662889551951898094727330941807382074158006848520175458981621495376572378900738124476759647140913843762305622768197830917415537933141594157583997527988308146998302014916274733327626142231551559307580487515245393122948345088949364263181149904763786704948511382907841932305695151290766076618985818126680159177447848487267846772637095134310634871910526803017198753205670739198120902958978062243068616797892805314961593104266381166122517721862912507779347917485794705405057540504658724813276170078151043186034519763346453534683024001051495317195496626240214734127325079931968049863909114893045654398436487079543632446084995833140490448238644731853348808498317156423086303232426162846346664449577675200755168983637548708833051644590724439216985535628600139504360757233109272215745679058757218471137130544073696299976902260962046780059143630493454825444055401027885189804678454448502108396313595169404323820463387661586196015640593716181418912460062949008964242632845339460894635499951092890424495191754816540822610920324391545994902211732167432700004173975247284766606316319409308562237776040856263481957112561690450233006910586801679131046249165552926251772442784593838066168743800356147080908200829375396119284530157897405409484807638472353948578101271604117400686868058942134675880472873244913409332007083428372511798290326543846934157968607541709780064914721695265892293695003733790197418498468396114570299405987919935471361580119634497845411624608267003378859311310904007335147366759777386514345707326304560178203602474219828026553973378381561441879647511188836244024192539418309941869427517864184853645027700766519410519157742136967933355651897576640878678877453990394522719928587299748461074072220577332806628360668681510522875690869699571992863218658655215035561584394754895125049291125694163198881649464409463492528312379806644828019694785265186353227390893702630495205613595565367209125978117288576395637581631091157279186887633549354158048532952591807812607637709799533359237753230439152797042061046183259392397046773774773927861854340490504182665366826089125887696439634033398401710781157281656853458076123826042644284529228130353765957144886194362834665520862878043347334602489892669064007850230049907784554630719368951204355107398784400771343408007532939315230713921545324992238478346114878643836884991186893843315336847701669832092929394323931212837755759178257474682566931714978741830053562446768799044930178599493083967045395500995623902621124491304225652724346168879274468439330581429259196193037893386918571970343172985631657291231052185152399331232958857897955942344177992496933770042218630480675952721327464780751236731971752054991441731699729341286533110817489265695679342707456685391797100482293225558648569337299834994023851071035834785661442620324651558648851815504440443497298132618319108744418837818148303621256265396907132719450109891875585057695500677508682274918766951445298790395339535188239572791977722345823781797561365291381498157845425242270108414311423468682483563096037250524091850044099312823987578055745501867103443152474112037670623997138848211687873890008644903960401115776255592782566075936287369194803035771679006195930875736990008988702605995532112021758614817271585457677010097327751102514264733677161745936501802469006392754190082513076450094580763869410708835286777139452461382835383479432307857173053954014787576639628145194585101505938831291040761300060143440373847375037588567172285691822300562518620506641454653821893017100110705965441009910065888569534388775059520924226576282656218342193671237140678366010493698013841845224966443092887929124958388794855212361751268329258336135629125629150137691788416322205300161573078328568924960536140842570565154421274710425994747667242814417910394825744916413165953297730377361416337418094885074371509889209878454182896548316020587761511466554823143245270014757117610956494486100927764271830083280888563564556390100318188500146249712445956573382750001599525247813907429180749940294810484601332676021766505141455968238211251332236454255632324691436800580736408023366985891841085339712515301401147053096294010923336415597643877071094450879247732465454757446234699693776136167183770379296279468872619437546504620855779868172855693595042853005217878152807690295995461825488659016573918298555491164560694894255375757053827581144683783525771344766751420615584852957044817289211861938424613045589375505238169357390226180933326216011330018789398992898854811992791009127118526971419046134052324343815114412368405300569434167521982019387489033653901422963090674752420251702103290972562881428443980079500331223571111303624404585598256418928412104968005394365271499420667339346695834905226230835451201317045271616471659851347454829667677804993558684996570964602350288840526466381352207291319851457712338020663754832657624216268668052634584391706106475612567923730010284335130935521284090875134078111809346551490029209094536534407367162702007736314068373547798227837487579216212742973753021155632915068225717739359039120368728045395879560403774855722469278135234082186551411528670147672137545930694872753596970690065762450282433298769994922055938231726280475610676910314329428896038546409037235025297268072850412970596621640175347584919775710330154838991925062230334082774491649901107726785651457617606301486272445749560405424854235375108147723276724875007019154691751078033519598065059915537011693479946276366596740753812850044278221306680962309867991349643697713037028400099944575955479791850372611083282347327505228388997118618441682084499108530465104921515651710899481558773901081365862701536049774823923592960508621287479886545325376099112571855190165397212607490509382415018300489630570323842743232637220707031277578755893462751867532479176757241971861768973669466506561049062358737886606897016908177242333409355363339861284755798104228817572428573908623573717034089746529435629522660388265343273688025980151909044621549868345836328730359645203842928767454805405331789212605340561079666463598829421859348103253417004821692336761429191743951484140770487936870262458801781790489687220266735305595555190944450597777053598054302778737992107601750486494193651270856625254553523322935208128858773988754204510480677313563383512206588489208129482577238138897485164261422412440241950120357311593977338227155057159863020250622916646478518082476549976562262721971368977804486074997034038508616080080858340659329601148653106495272008646315566664069797249912650082444829714447110188330003962711887507657946853840941197217699161997609361225917401473979124069884297384534148245345791139210305518857929259613913369297282957347702936949771695108920670429132108950009430732086206323850047961266217114470940991948367430027121722433595839623103892150073422727635843871852386758799713869081879921776147462612503714969844855304063343939477852329638486628265137160581699793119620129949103751826013985716831795674368620469920827154188854913667151714819273200049204110746204022082341645652270419307619148023049184135631738704071247842320456175696973972010721353618427646442058847508042287849625598466758908764152674735627886832202320972607624694537777741088779908726523898989546786658903822988746978734984105764633764621096422472865425966944346369634303681536518614566126917447019029249407396220764336267059083510484437531194956763356979721045610166581949335392950925604260414322227609694626944251152029644629605556817638014067003734302405801693677409529742873084973479694535994743823761615586783364178214189598210868183130832452930558013784068954891087280675540467483334658485831154774439824833375800485302615370962708439065422137132606154194206522704747432629220471457972535891269387614198141955738033794127433019671254791899780136751743078963144904808325984713388587138332171009010795613508909324535125258648967815278443565195777198301717515451353681071482710954526151051523871593865414019944713158500012502124120127684671465643593398527552876195394017099612080766968537843964114224913371022738324280180626077903801859098437230672517448635156491306389671750029214371238671280676129743445018872282103703561567684801453535550705911606596174589022159372243481632478726341092132284303805109925034499489443192345983690088770243152797881875229425452881592322133728122327525493200372656160434853862849566187806662812796907833718938554776761132859606904644395821210486587915669020426450684815635191893329816514896967984707687595677910941962076222769050160156947783783839891656374510780497616240001031917607086862558797782547744895918563160043161616149670875373791771865025532981052396722199645418701495724094529001694309544373920160486960875873208384981430198223732937020244124158444050847579715011806309082230655611081962350158113212703871371880832409729437472650606776065147669165585250675577095057304971354303531318866355207046328194525134348603243087425911682655406041676393747180586295551288782033205893772821981777232249157938006096216322442119719991263071714447958975743974749935715624284523845782058737131776861405178545694927232495720270817652293597555611510652096030615816264736391668675322253101784577879691019271916655650535393866262392831559090268021115162687105583516188717521153448936785948022566669315370256530920283742023995511891050722938041073871475519614881771632458485456384479355212311169609356923841377402895388612788586173083388408774005408963274359639799078973003541713494827815157517115918639363953348593117117844243810525361382608272467268014640942058821731606134181210252670003492539940755997953189598283938986294039072628712487177400025685656993932303130976402795529510526512062868486306070471316031985586409114356694193614044070288104363597878146891847296881858840988553023824844887771246085581706730304831534653702085195602866232776588182002021979614052662702642742037556760905442757581227265612030528999887166634622517865466656536526541031148991826663009678556722480300893088924205389056614868994014411324449171500403719753290321763930153052604372489544673416912902327827590091327715612785696683268344689675617074645889344720839087376123805014631807648050371812461207369625340280473623528906941648508963651377371219776777530698920804030403176172066318649770251963310583574135168390817049316728526860568693201507817496499542687924877214188422521203180303242091138842483825500890064623339227880461720078860948708574817914966190432330572325092499639816694003202210009104695933876718609039475961326029537705396189306347984775371970811481937621684651925862093801416619053447384317289750461820646622082098237860443709882848770847982097741960192565882906376966199672785521443251015463289272296212562746779815796758051192250636227485284898154875581542491661879870823510353370234649796840874376587988051710091047749246117261257520477981786449706785371915215163622522558405158823551295600439366574165684315567947695094728400295049756103605658990732424705109877438378078907055252250794852488922481758761775822801340549287306858736128789556148355918032561073838177256681356782802435962164890185543074468805180129898200137506828933793196847125993680550567801800581601463012427457766565311536115733638708364498015629518456376849574439281891033576304520764449110274220159901055612738076988683356925365046368327741327249100235797217695114663940960418279299837587482348229621880670033324892145519336139104221962555577744272619221307448969750146261197954127113931621983885237194647143045014071431546813189348368139736085843405076408584261172682777386752989303789413149512104274280604802663592576714860182250204216537080832595429518605838641476556146860123190292391569776729664052838368143561335077872085702412966118637018078565927015499488095465610331000228202399196836050716682703349248784999028881869892114385769897366366028518476900806937460352500270744254885663553025053467689001908084794979546147491606846035151507766939255748499408201235224251864184871111802980539246738859968005330151461968220956952354093938933126546052947821272947933459190632282095831120344098070440979852325697717464365241534778433136032343352642025639962942857014379495969113397625988673190732106981038057833722168429714884855847279089114373691338400821103006363383196080687811581929320263059340857466527539566142431271621487384185531919877155789239024592123891558573658210588314275222075807458585701095005164670358962145394933415601293872508686885005668658217160793100067427165631049666775437239076664763932082159255348958946272974611975434718212618250248687042523188647533842613129897086378030077247275871359234601295888549156909997281030948706596849141499369241386129246429394837595786564955287775464089265818907794372940802178060034017566264977853871498261956532305071935675631327465529727925706046105580287518098167929448383609501663143766075513831995499563182231589532796832460061611124974718649207744211993698576054117931399186254198216543906590431729624157831320153695824764415011469771087809997933613983908191523160634095511873849571426970505492628853270620296127463721579318197846175492390134462154321871893115850299157133096540087598375134398548312708031316932457343412242748106203446127870614259882051720474383577416487877096726225420948111970926904310933135917191492834565640912027484890957905054997014647653997202677937151026688666866525573190111690973845718170524747111348111733284519029118430306490658296587599272863700202461041024094260472198264872143663665069143297513836295366966797756874822528664916152770348604637842494004047654383491116145986833761879025848007030450570892481873998343703445441238590678609990046944587693689882669710725065806007485438853736579581218870284490191219783287160831376325580580910760961296031242739048476019916265549443319950594141526565220675789706873393218823095983903800049596575097518318510635222143973461621854453525793294173562199904806084155497164922775333554609975805755441213195325735822639306789319268706109760942152410879631328538774988031128873903904416107207191827969537712607766252202349560291467996606519931553548372805090162426367530159778901057698558053038472399250529269937843582358778755709123561627489481060750591085270446580011049941642110218013343346147856401064561728226199962957807138744644605569474216727222379711351451539944873447450529193864996758356056775248779674852277408596750061694739350696014602504396847872565578988829659081744905105151793249893256961247992284842522357147465273926007892244491972763751169345573774393926697513458019148426224759263629056864681342533363174364752163094867008810700535413540448187474709888573565933121153073588870002114273762802361221138207777554769633902592158968769111605193263899518251983382777692778613395544615206583758933116132392497744739004600530310980132159642046810519124067272428501849864122865616951617693896754861841314181565316050921341149546209370000054448913423686862324675493023006765820259081214317836444201451828381613113370790301649045793702441867139449595719726550522810167068876553070985350110428754370481451339153728073230396013755970119386433272452719846029466256320817590641172604983999671103455257765142731496133517618757908859341228937957530622508056499343682275374539147717371942167268946150681291459381802467648823112898763105614892230351621267813891516823606513123999975812905638892940377449286861095372006288745989172081568380131390157684316937591147854683608716820551638889192404498892336452772160768789870296721861323666981362742077313387509539726053128969470012758825104253229432822335146694274893137785248780698364207936599908339649832683681024128224785222514706904261806021987177090394647200064523800884562502623201303158564503552617395758118328350093401040299577353309118381829517248124799049876411403139509963518799524387955986593461688405419919747632109655921332314824193715973945246371336941019407819100254374331585804983094954806766397301926612069660335445432676705173064968732038656340235792086269820256407369938245571390174350103385278073791315233774818300715583122187236663079150533357205626131093623589284260804711424587980185167303208311116464920030696811921845518432028612294671020290087726895595595987176871688323971622672888244034849024277145550902696685806735142305403766533638426630586632610433147679657253132267684368944178209737152608805404875893304598584989112615248984183970552521064699038535755457141754016798624194671680084212530014835765241827147528256943933060391021936618575243851683296588821766766907854508417678652116616940616553182106673037985814628863179434289417415762028425010381772960163220411449927150219611804326225497458725293070470241545288617864561160089072702386868494841156014075855713252778076039517783869784544397799651721832389086159794668951883924698578588355557130800524288829326271551567202970645001598623867847240770459352101597779720523845117237054169190129282176182878399905479764183946712083718654235297435071831662646296165703389636243439315245913248418075156382303703055128333071344163855856579512024939244147600647747501375837033681704730753269742610603880930731777778538728730222019659784941562106981709859183012559115594928464993635992912782685071555317591567026795126674321771850049429306629209806784872444981597656812584797407480712864736084399689913283991062926344866174854545107885882369957826638599087152259150363073821421296646584549983072412959107356361387755814723209363105090798562841676081762529376531772226086840183483819177229955434999299880113596589702349980755347229308042937192837281589156160564840799099774791533950400520619480483069857508136619748325507341233818967607573050887272079461007138323169742937982698568636640625739374101832855703349441732548980420608624071954131593344581881214736113900562695767663328954004735125378086620145687238055326712402511584230568155875122404319514826357297726875767504405682131596012440638453510234366973499383657442856252755234797339761695625080142735417783295782167234687676913177474989236286190881639812854185858896311014998181718718828314634921870622296567136520672041052497190703156128406890777274473148550366463631217989005725939288872230473780769626163614212823187295016159749611860768832136868899022445752401553760120317501434013465916320381126015419624143802748168553018801132240773657137577628848512991328803226547233886644378773087955197790143579625172241488836956986466169294181051047733866275324039531057245465939848670812855991546231793145392636389367781921192354922457100572443022400734363260123246939653250705555315749009071656423223056574678035938566124430962155049625300517166184932563816967215006726893016207374225089248641063651678526943328993601612358149298362814437991668705301622350429578347986505062117417464288148700582451050536715251577501374316943479135466638087791494845725893737190817781909077037032333441026718019949880618754078656743776300301872378073176388634009578141309367495579347785219573702266346353060455412244372305858379089911124834505136440437984892985090310269065231114416199631969780828656524157450219840941736367523829656136560597662327284489794635904765358843483961175876915356204619506644452836810572493203406752294354735170994153275801899622427047869925358703186584933908555293789921621549714661858191135558744304576957156078565189241926817975653009555809225037568150935405714009115121668938791372203442087311386560391719109737594207389694746981096248585775186712038994121688178787751879782539695809232688405014325625718003500038256088948081598785879410149327436553779024390177113145146255507660351326659222933966073412181486684447373033497187902477476999421047053027957489226646594156033830726425239833023106474994473736306821987497428252304435861160812244084296209649561048261788778978237772985478189526014274973588752353716506231563630444038949276720838600972770768292247930482789298017200499549499160770124653218435332613093271698653481166475048252035118698664225206305685583755782375263786916466024162634018195527198634128956354917330982526665634306830891223371119567520086311631473602228209957245123952650476052147989692972642564392351853601123464026781844701238743092791859564513731033072344199569322731537931200452346331725132303687258227308511175906649875358306467387576911896759638211511527270640846047777302829832900157866590843973970339264356401355801968187761407307662301388349973376248368148309925668743492609029337013492309986988823936935738307581248601386994420415369167011009380338201996114713287919097833149352340527018485807637175771383179065899268372513948525725196516752510938263267406025089088185885014750638483893635698773712550740594303901327704370263715941963194372671202750798138628990593321566934283956802061774778950825107032104979025141273064841337576894153518413749879169763253139923489722597074614016023267039639165793356875765425121049575185240008458971012739914831572075585093191912635527609340985268359983900358591703180023862453752285612921529547649800683838790551746195602758837711678577870968229587052788595445305805648988883051226663645259803122113090187866819008434194758814146968525684639349098407929007750393915385861318446753530000680821886376153295360924203168821072089593827574506149303565555231986256347908616684922385292008118285850599715843498998156617156043399463623780783754208868979485942438629333573442092612006366074632354998956635386156392280738097042357303821327734940391049823944813789136850117665187113871655743301341467836864086869614316306745665357719039111415995748434290794428553845237979725312240014010448755059552236653940495932097713064546135014401705492039630886137405099225729276738317720432379004916187338744448002051972910239491723856069803625484810476580542275614156884209050056307831356045949412136689769584465695719981074343298913832149962584626325361080675619179642763842853488680706818225277224219355739108477147166867075959639766865994909920570973393995525729734098575133540264239896506997853836746715427534803090223521589537653475001175257159966848518493987557262208611780742910935280413579764699238048383946746438649257981757932841624453349631572260752849937709485643061658589728911198256909552474662779864782504158845760112848560639435181993349991419740560962409186086217020926163791578240575165402243490000376202786013128046953758561753929679575876140199157793042660132802455669625896122584086820151803170315541737164608417633308741951228208155784040901458677757054081161510291557520617393750058085673989729619956864553490159929395992590714481513946490888616517720854467825578404850540528326684691326243973129369510592907540060199650353580370949646873358801850814391818503384368936412527739906492207625895046053372216142757547963579001029073759003470161848310612798493235706795657981200922908766648296368400708557428578943645579788669409011444861918132096267363222385203807783792306649060081191821583208211091957119190398553334382826710270546132732947413130916914692334143862157135514708797577285497093887458165340889027427387596163791303783682552993094756415946179767534056159493031721340504635055099412528961222230589168011961329903535165317445552984342659550444142421281013093917975569520236951283926683210287655616591680851982526283059501533721698224038679723175143063626841885381520589622375868209257745475360072429249245552636396557804154951184022171890926999342537814489208025032973529886561536323000234112441248195032700544159170628231335154305955486876051797959903847765198443560073927276842673513263548708947185274734871099386199471005107385350177273758392499609162923069440205086799719946748132008445318694090476473829285071587550784544023149403514040919116343020550444302074351634690923364340770163689943284232843881624162778015798676226278036478480321264577053614479531421369266031295652552053830314209388379670701722477270688637051156869737742131382969203129054331063030728469539509272741998236355836589308876813729438915722638527354684665026922231089130757286371150441043277125304098195971203776965664068162521736055034174774153546384692939650596623835212672023208011276586144859525183616695611735162749126610057575283631368093524521949672803599011985020566931884971981646446118887861447390359154873632379770133829702629116689479578006839493449979935896099652454128381565940122331386484564778458888779508784136372001890152789681406417602095315850845883588838968239462951762464624138639639751170494308672241153526282994651148360438997214724877359805660895287774162677426102732798954842541100612342299889338054710647893159291969720817050713542029288450727015345558365972767913361801301290984039301958941320107441058353640506050821186716841498755929939563049637233857574434615197028810282032236268989987790599027417469219898170216554185778404014688343758959163274690448165208559829894783160137148166980985936478171885761447680839983861230944964545009564099257284813509470194081159200367224834409830740927623479976621909140688217673336823701664113530429475582406971994417067998793587635276340721834893795910444757739345622347163509357267550142602681779862172683113718312696764630936776441682336474873118772026744076904913428531676797424819865590219414915590388115551931838048659068494670394968860025660876128580222432984885376472315831347021237054080313894636093009152452832760397783097081656164853149849453021676835580469142559602706100242553799731262894239579512442339298374166771570407814033211669691404524008177991356611691178421980550507835788186715664459584768362382387771330675760229398016036314661782912405650262416697499649945528845217006161275460526237288544951442724238884815806648087280111162660794904532171337981590402015593126624184701566866357607420968879370719292658439487004261872734648242547559986146166074839921619027434532652168451905781118452561126921109860056463457793918300144552183397971660964714637400758799989877711838025875160452160562380185308761341418786285623157985553516022708754294863017505117255767332644759542084678440137174276377093549342408654610854562094043956212493405688336250326984995309399915507873263336567081314310250810223718666162126641682287639427696316770254217059908190428461660014115786605633731954904862556373375916318218304584425948489923025880811391495942138669485576530866797909392798842780726731801406793626961325312511203167828126739067634660766942166089427544994507822181152705709799421507874621905798098387152682881599114588134745081394455127562494535648548284473821731270410800718536223433971656075494669148781863006642625908745540968842178680875325529074727003210701905271998468663586918307374458159095399414887919064891832709631260167134947880830085195326206361993911350616702956184794690849729631948271003354974908105667903943659416990593687719222065876349524631077526749450567680588129408796843903783674471638781299967780454228597315552681544225782530253959218767093154811156281735059367978172031679288839383658937695705504739325395185710245518781324664897599119353773535851010176564020458998600333710178713030142155364717602608192908445167759779092699501938768117075237645154282982114578654394830516443510686154369872088596604081508246835740424771132429743997962167328556559787895101165236920860638327199216179189862092779085796518457676424475759042268858448282874415669059499406442845221163520607151843355963176370715008668317048166756140326856522388784793734026052413889210606327823819826006171111793432256844769671221674107277469342662831996161266263076376362516464713841970884022784206648383318477317889820334715045817763204371871120919612613006661596006306267531441208265645526917105449244385996960355717274704923546945688350678414479260462974738550245304992264856020962745445184685194762413135725633846078832074160124475508233804746439151178392613711180515293108746410979048405328197923711272380360656085103992716783804337708578147668344382399354727670541892690823079658390739722939686524049416376945916239341593101287150230017204852294890656502913393963474344073032832310595854855807426308817587037676449434016266414479752213013472247048476495150472428180494244852032595092385004729864998882091557523157519470784740388227256809344132515057703930347531092431940039466418018759620466667084942619746329893514614441223346517134979833067916977767633228448249911811902792933868971251746671164405429539177104075022450091960183081454085113070255083991989545106367398603584363469877380950963262590044985756526961168269779770852087175494563611181112270511081774386962090962132783067185904809595218148264065263742029072992521133836488481607081425288797800327464832526906682673351609742946210213317475478014741370569860293293166208138746247871228754347979171103002991661209380221478875981138687030383922100923243042775250261006687299938307542910902225033310939315972301073566967518348215202329879586844999752515547136102187326233209990855498220165685830314487264066709364873277055858228779018230484384132766648252947982545033688991199259412416466053041432074910023271045967776792699402277463245491095302214861655642626244235806328905343458508631987456271446436551735908325240308978061368805513369317080925775199378997238126759215874265349028463697074454820691306134963248062146788555043822978719509552680478751155066309012074215191633402199630721341538785090874065380591920479848717309219942683945784655752040725602362577756737640827258880329304810221579101001349530393787961948033787108532118284371957238265795183356012620125567305946888169347557076894626236461475534111613805263764849504148718152093453547014149765382457298891574350236648629394539164859861044888038460410297992120565348152485201195100938363832503920313747323489996613322962233087466924456307334131771545694637161931247639289631984913176264943726412094438973398290437299312680421995415705890946286721223397021612383952686542229819478839107590258294413436185308659222404776296515172191264153875688033613515946962296248770320194876624832219185508746732017453822525654708483493628844589240391126112548065837809496514660313748877458716205903714566062802900736830641652407943759168590307483128112138801104890281243217039816090282086324104913177185385723244858138529331735655522793120451813480915572480220110206463376973911035091526252182588520399372547983573278904473024960305869294203919872463261124091152433777312392146326105622221061642335283555689910538423093007625044210600446820525540156190506691601048325299730857121897113963475635083601712754673193041900580971534488130406348835811557451071862529155656173690787831771459774853264252742581148951004377723291393180235632508244400215777206307325068483495870275002640348727179038976772946283729109858887865292565530322487448091535974980958648659785869896770843601129546570198235482182676540852521499281356090839264204902602566206687718365911012483275952452532106561384163775353676588624507106790505448719692009962213684381499776047536818741731204282837961186282509623681473819227538053030331809860227018174731739914411104097429323643626836879583389890789278739456334804800329076178118491071163762937365837847532611339566226170819167346764868473511394973959376975582324936546704260987432379234395085983397527508507625291510980865860372073417382311770629306949262936322978388252720331971797839740820076934742561020469088376775380964086570286980800409757188926717633658256875502817540365805141149023445161062900902746086562858201889759307062086353608128389665715614682695721819443358285085205543329006682749829851729711049456888494977066992545961956116058067448491888001517393802575360876524591427035952033738265923382083516630088178128267845878903500976663280610260008244138855759708728947649903042438002261962659419041832261592645418297329670374368511476620826792746513174413030376244468914352874218425584485714127112818623355831020603494788199020781513868139639341241502506560295577398950996883498326973004422314419092767852628899936419957437818689648057722813561872843165268333022077130820522522805576540459281137586025075772519698765561048646400098171110448766850931201738837675409303374811222006133733489829127676036055370367856443409095283867926774325726769852470259225528487102312569252898421206229606086748380809266993194131040028250518951660801655008225056696415127124472716374147374448163991656493531840045687231843833068588564346567430897131475030393911162263307447028858129578438383266049412091584327404557914501695353707727782719759573741452665071967605664754376983114019823058349073491535325204619784019874026068041533767639451760496048104282219823731268859781269918371424348895795463273422588061534860699429242743259715003973560955302652557484745249338729666153567589641331814394878192090529473881479386386216648049537670239607180123324908956709015797192343107502338177215355895085970307258517698915121445973893238701770071455644398077953449356516810536682560438743508117798140284389137640558339937849508696461999428288530865019908146945312495101265114639941918372861070725432095374076027919379821880819718825201284079448974570443177351091070758522460440586912238472039484658621356453102475691540537058684434010387033279693388645276468525241724211730039476822536742419032617027761379121627345481370363490012156918327017801887796405732526311048708288053971568619450765254557379636886132858500520814568982003374939311285258394167020134894020812104973482108528782740683024657537202142191388433004422712928881111036071536934993089247466552845816873566869217975064756500611117965587393343964114056325855644719795106650980034641721001697378860479904089728664907271033868213618271876656097455670325313981040035110349434842488848986608863494265946377816694142002861127350509552372394716036449030819409220315272163236108014040745831433496596259308835372342652737408729616208836339749871911032602132894039023033286013316419372580454960721240441551403784537046198706876091832853166121070597311521518515926321219719663419851075583900935720084820463208166163149306045298245059389880325978770528961023510864784580819175437480388794732012750041427382670517199398577184496953329004681084763939267437474864081715008722524002504199487633671895001157420368308111106513798825203780362615402708344869765858520433547119118335452686470980929014026328090111738784741814969915010987393079298739577529212566720589048178788416732032577971020366764117868678478358811335956693035244834446223749594711900500470050102934671517861983229216689674517439565624933543318366578786106707871060447475686495947927691391824565779197409119292645268256987907124868174205437955001397202891279990474475433167683069842602738371820919362705788344154199403310634844041884897406476786841239390295934885588070169580279186684097040205730862898115739692945463804465886254617933786565878874312555567265413474899601495069921656652132456672973984488901166007034434899375513491613299040079712324475109029922605146040636268760055221459471107969359041635692989397088848112456961598331834085256345184721321333757020493776114380273714623923197442235634511459268880793442766704771352122548455685116874323793195347567106443549918879066820580849642886683268729695046210525599427641202368381452502047894189249063299953515551745917345116913124639050412182224279929803531776889539329746175272890194350500553902495345329412384411173126537269595468127733145131103376338542217714181962811026863660712492975247758424848937099809908808408305774500663861831761599412621724003658016966860183146790798203132524220596053297509521861242784415563258515862451605576403776456354267584723878595099264815794326489285515343444620252403367611621181942684241070018274370534625136488834662108440577131607642389207526245631419397925658315939194253609213602941522139769155195140482376336603660891578700131330956500831201544654503887289146161198896437152988400650663796965242257715209135492907563901292058976801629660431611933032167400102125346014500100214865973492778937608805219552194662600185749499638373413743211141454146897359893180870770293588069012942803748244183123855377483291005057542930301957027840414794668630387758669282964089382811879868156615414014525529298631450650879916753808969830611477927655766286139853189048104359771635489232893823454589668308511271745112397550695906188995984779942087797957876102596437370663724899499448140979881532875816911201561607657218642534163983299508782929591408058611134289774091891316714783389096312438482658715297229167730306591634096285109974806310751433933363156465898152896328392846714344075564661005766544090013344878057964399580107600406375826576720863921342207230699022961709082642855320410494566397941399835622061132598686748250926931033413110458694586057421898839011781464434158947340590950185468698762109142833218688772418927930873810211733123565690175022301283940534868554436130152275085018305647990279158874286097318297860503218189088424950600141276366215541355511746756674973445619672230365006112221065599843976237195546018498488956393613276571909731128896926017061058605070478888218732184549642526438911670062823790679311734413095820264551691992932429797567670140092518876567748362278835378542668215862688355971618835922926913419131694750253877799492846766684039473612275270870670948826770666715780504169962093405928015042390812195639684069631970359339850053923739216229252118607465826686589261913299422128954456178130772803403312451519120620359873487396333041702024662261742257499652337553102054720958249654389883499671071853799201785420976055321413822239237724546598140269092289614775536283480708528158591777778406194748145719721006471618225959850033984750601928793443195682539308376913399296454736223134545677342736793281429576040835822026339467740307480473228383939072363706822390713226370420021889227858667721131796090229193897805326953234931133567301489363562848546790872321460519291111408008160726667871747361101143360182365267632073138466840926926565629146852015416530166160962159770043945524612856526524241150405415430903897866903097616469697773410061699289229985757613533070943962343843673575643633811228144356581209603876445072965888912976320750442587954395495249594366000313944864130590344538050247411017290652907096598243627345125090622599102937242588476563578506524617099206884468764859222093643105012673065115083372257961964097063091299645783579496287361342985640957123758675941803277010118791390789611194506985860330940395154120486014436942832396754297167481716118368230767841519469609099636625277936675685059786084021188014128314087488655453204497457289709976448949615273570066546629363068515626338533257569808222162686467030286211817007086896421277291091280161453095045197055344287977042797957799477628043990095866361783485552173632179413893524623473550940022711841049307981593800607452481207319323309954429483295744807972878115843254091179126055513234627204012368185448526517870262327518278974496803652586362008572664941828181808187520015584010827864198890802172378894808361863069949312344091661995089495337364845642142536813451502617630921846710379139107920829850583218569699914985361408216794990190282280940655417942232797690529716824170845321948901540530114227310342087035295567072393591090253622482069932887552948408130266023380902060361411546094806153823672935369954412826980819058484999910724700760179288329560099444198164606147778279371935678033716952485292141994323158162655629095276246531269720820259852335088845515706573893296901614136519845705896548916438629321111106839293802221152203483106568604906873416461022712504334507370588455294840448529412550830979298012628612867057253063795033948746656857003094709994971455787092122871646696845660458424551235862296743285042924500206322376188924207670843637113090211208461383188080117168977065130910228612117108701000937245496584279894430828300388100810803151087928617623723685377437319497677887941291847754672848695226324764556752164122025092037773079889538765953733929368319727546144144930106507586411076288421567961308590021782062694598719994576469315751957801454591042561401869204092690056895555287506520926635672442548777738170747303670453379960902641237630461751540174638725702859408207064764024806501434405345873464358389973154708093056691624521713000276319768851012825955528048008069243947047602461053751114660134528942338566456053240508090344371171327699698633262327459568442124881046960650232243890302454711361613573407159660295758694490541093803574712186442092984357163493647036787283051975084817973720130589811997610637487399287497730485331217180959052922435910252791052924177160534970886529898929278406144596662359707576609745884856468802794506484003181406872666651225741467557174796459457871275196206452119640034794281533136995522255929823814892915092129244401426196498889275876614726668814838651084701301773584684082286786231648423555614717112340135883669382208032712849322650099214849454889745386754187550869271977209795779550748254467227560412803367650638488572781634970070201966299839339900590631328634126224965909658772477236576685670909832260599101589045844989929932523774027857439340195050822591262606492207834452535288159480655877180109958591564260313825310917920482583250343906101173743997365772923500297146470932932758710965600917189119794585839254154456585167224277660410574782790610317103929341707209213834153297023422818273537475000858680552876453890811750429922462874962073074126311895096310750001822627862015941424286156163214003012911100627770907661194025798073223183700962255850990460717031600074466517955148814218990974723817244281350826434689384134646067659193860675522311504922941857294357789482875139485696834713916322055837330640593952091615743215734101926457616736032408026407948892314562211612630882646811908799114237042018374334374108291744642605188212351246677405773343935000222127210033236437838942533447992494656861839679979804228262649747720895620534842890340594737392258844672560439057057219706805014685869716624483203297888237997317900252974334993429511096874152299504434978828761853642790030736984507110238021335863024460533400092414900819460310542200107799765280144549951049529959885111674946748384386596488270225205241785938992118958415039560908317806020084991588549426481297158510062871687097167849220750678680057984106744048517683665567778486523429959367988006709225681924355249948429694753030002767841188244787578347624529402001834317815593790013418236720783480179052186412661317997429638878346161814079520225820299391184555845138380130261529764416291231359175566689632221809628227904144465488232289858234199869957347272297138061042642193099729015419262862645536142838425215290285108932323869863601981736571240394008622049194078215837287530214243267133246813298053479293360590863252898230911269852186736353378282368979045075196045106460088296764399383824372901089996321714724494769759413028506781122506031661290523826771257918890258045102832261901603537708958817440143043168770865405256559024517737304100538355805743658841787963317747982712943514359442761945535175826398930367817351961879286450189163480634575902721969801539507078183992853140609341074416958657944517126451116754776077698789355296404647764959508740045293494045356386394229975775146309537373030143534788694132657242013184730273497877266735057835612808541594220832381764596003880459193316796072150934749464541162650932031903480533163142450720125504272568955011021655415475838518776967152575160175358165065213206731661603297768419576969805141794820671433933729281745027326293391627179542107661795422164129545622733694991301775851565438185472570898529713193954455809331859824465637968618327129991981405451318626197310509546318924184029874765766399733539584232331424474540938847531901422014066108264456700001745822615668434337002475409986576608673392614212256616522171053896408359298718454506913590769592258367107909692035493021044957705802020939425289267253372906281772354258671932661415665545303211942180622519308869343730883339956242151079209642919065536202925541043385928862593742196087678625589461345478847191768045688639968412759140705056765225255372478141478824161601540769787498804333281625545194155824551565093649055280230064420369760255833892272795444951416541585209696708493862721380935802108778820903809241272207023239975825434661000104867575056839323177722449385495684338973979146145554328080095363573505773415133489351674769945133094293797477195299028177694263862003070886370815543825934558537010587062684650206755570895037181419298283245125931496117387981485204590470151103152704335964518231464876393144165176136723250284725387095818562752274756431655862695283267021808767952334500003656889603871163416602676156824167217535393383294705863910684012591076209910301203350669345650278366681608325431297376765170894941115461374209063114293402758474961001723347656317577447464442559264234114518279633197996683428676136890163146407682491065710884782999545791292577492738231243709755494303585236580051226671900018232698489084083136457421300021444469454877897944266916404798211922435915080704339248661218439450130614098000753495879522298711230893506619044221790094519744170620112336672327901810201289460105977818667942039237364862209134592036547426071409529911674113798458159211034366116589344667543377045279158853603598122553591027954020003517625147919554944005541545603233771689847495945874037162692577745419861280162881396411215016916673311580489279932261503563828160494190998083418292452688324501973968634196831521357755182271217650550183730212297750899449413258105638142492255938242294636377496221019225199182917023858164014464810975305930601588978037465234364395437987324477317854840226433947266128232247570112236686651169190240887104615191329195530544994348637830650817978244462857742023838027082848885627457953018850885666062845159827854527571184442865953574424698719451992721743855306411231780748682342697163972367596524210628857921610328155725426611201873694600998540195499169729925053570083799339367743978764400873974422839484732952311063090952739290447050288988429177271801209162247218208891289322292775372682131997950809065994576610340855545633936304841005136667076346354518712766833551571097986914308376409805349853917076499019461095004853836979909193365246118874293163908553010533679578766666694163099326003064242370266666944127083957348144453978785363216526973575742905073520463627874595637705149676425799541388517945627246842300591074634586852392040655923144271876031716792210819334353662460035220523226410604755102434878878053819713019064438302566987701291009062005807580465011950022139027558875780336689101897272201098455984830710778122349416752321269453622250203953581232247915762884563894139741189402050426184523426983499270955291258206300869363686106347884412553396202749860703643192058923981453747161076555971440587781413624879791216188323713278875327590449311517704429748907280400754043149686266912160747842276596381342431026489408323188847050866854489508412996852741118587172767819069099363108571576167500017291311795781042618961519753159736446391627378890053253350767785509438683102446548552175910783238659445154099777237554479480122288367284762072246753227881986844186705982050818921537415828637447827113394732880033838735109955252883763151563220727977242346930179378909513520467207388446025427793599631537421317062449895923826648735949227084361337535002280062485102447915792988143600493683717027581154019047100101510496189068367363198974512549616327027027692903739380760702345695369658586723069743650809050606465706492596810511807361481359081582963385142024367354884241900030905023655217297358757982371373695524898401664022630826182409907298036941848453981108792923845643653324526996909703364886229321394386663456072302933391700640505216047298685971994537667776176014388893844138352940829584906682892244094850843960171825799445682702592475884794007839677980759971545649517517351621884361346792745733116007437920408707326620469497550305732543800849891105760379745868511467540875766137563201818021027325943856983158942284615124398876290465971062892436596904098804861556077564810368561614284399536525567720505576319805771805989753441013416793812303559325300497639149435458349864439136526631290472789804950172724891660148969600760034383690968176631135706376060944468672487242579027157687544526835803693085429053956927149745554013031745352976381661926682345677132048707850416552585706875706499811168668647395095771469622163827921001815076567478547845809604930097200714568897924665722867749684451128604906069284383889248803266569258922729439191973774379547384873709342059275232449211787017203884019950688480633273283145726549125734328858280604347858207366201514964415912506207115244613509170123554821944996843559375374521083556396787790220701541789444294221667957243480997061796729316468542539488951467245378967080638748474726959612715504743192921103904869279599057445603194611495231937124323179899701906661411693431719840359065775448472786380930833866175169685214123076414709307119065473307240638290189319035479605113422475479817059022076244434697106690713220176607578632233965533028923196276115029540522843413917129211457324877443046866229902435408636270006811931547264487974597438947944327682194697159474752392854439991589054778273790944919472654730918268699801005863928471100391840338782787947511991390993054259415861676619238389479622305306093476204368272005770302108020915408622989673021268367466456075323686489176746864139176509679833211709266071300765428990163605303700882510772417574640565501380762629007526206269099196164689694841765629320520681626102587891578497425995605832253722464530629313172313807298534751013278715801555388618340130108741375638523158190064809862598402641146418279178828606094765390516826874551421603861140393453866059536623899685093271636302426722230779881060315440961379373118470806222975647756620419361925542727906416849845394749545790058582531392426054096616470246800400396732462693767793653873258848114264025679512554421804095396685902833918880685036475775603964152557916539574219428986199175454713187236312490023441974110613486550994727556372785913820943022572052193395542958512280819800841460868406693401428652262365298940608266882276638121332649441831749205945787455843445487263238639213604609695509542594379742656167535798170587457093325817976290872353339148471060466772103620027184266419294233941925713515155652000252293823806514701941205433928409001326501178098510333931869108145015221947791824381653377713650668839943718706183723706082765971905772965788276634713709445132673469196783528938354090575624414798965517368601572799994293990725004988865395502770977898020639395632440083961954892489911542661777859273491291306675520507007343554228844655756021263423390080251318092905498998339546065093622893066257900804685688883315341228242951746154658964006139830387591427981950089756025419551141560946466574178711988620802764381097566284702294379621129503151218961705754232034837059888589722487385557383762822203228056534465053802319408988539043265077378307947357874201745931342915063836237934284005467854461295041213690824934391743532283671660882122849156537660397871920240716710999204067735728505608115345343814564304987380025562738161319762236957455701181563735708851426644618321206458253370193998960807058334177926497623954230470507020903439558330091013294722481698968693469711274781186460051544668313802031992787298361186828860059172745808306882544071336172728060649286718273636987650425457537300045335333228163268016606656232944169351767987044912154450670566806368072401164904807085973021989678938830247505912952759005875383991118131150318017389658476391745282210110748634416820378224200236636448664418926988951377349735121068311765147595963669672866966201471893621331937123529033211231069575013612426977992295338111568228251040055626212390665240173549245432614810090565362553613624647201974083704076974901332313025502450865745156378265600695460811439649262555561835202354074789336417025511096587175048537249143970787089957069174170497585872277753770239861502348107404071165708918796704063872113300928624383540939101318078807151534173735990658419366448375964836484989046042795381879929564594187199142142017266128928155787595879053045008823592621969045194241571547118605538180894371642487180909266571600326517078572382788736908486237254431314984360016594262876840438012693518190750850104251700754818213799745789262892250955050526180979579971913011934775979142459468892566071863674334585584172516150563441800221202649181814142123788595080700342488141180218939925666606152045900965984645474243671054269875404109679252296817034410302935032664253360148510082635881338884038867542658612121983178088437787791909572570922895222926172923202017760445675199707296194248659907390615602741025739977348698850833240979771652941477058090938141148155925250990650926401163213055080776464547159775720203075261084473543054744206288345367536615066263014420259178162737781215023010760513605955056476909297620108851836123493589452930157211905819067081831604646869425012854769555396231249371228288491581864103788964724285276749903650339404007182145678593680486651773333795855014589923913321730449822434374700409112051535965937603785719268407954978535888853721169695461036598334789995394302238171414030529853977501605400719570836968030855991063044477039900114674829598383382528643946977052877520819248527148703220975994524121364400770923649551944880063522172696153710179561986838514191766393858932884015536836448074362327542821156506303424053623440350115473714519453713521393079457946399776979478043605393960213951247168163800369082400823425088913280639678996842042927251154507050418379280782906367187573385336851376698513315571723967536719959706645531736931476828066360712327340779329877904548058490886637371846250573155121493032644769693515299824942656385727977893999194222947088028686563876253786006045604513273287616432923641196710253008892517776699084335371031639589877069032846508248683662326724459475715876926259351735744811389125009250694276387086828672584546992005238955269199133169529515621330638089858797924355072468315126230521069895644153584655984442091886533209571342917705625961964647902912885514872944263179089099665511896711170610976732576676639891693514911957085134156746348739571592298011137674151139184977474844442924217556317230015538061075522966867647334148809267247601540554945581210720526861568901578622107825366493571687169859928812957049336720925576408081305983882743850304226684537142098670677396114732925423799714111182134047592007109025302170680700375497739131387960722958130641818397438492051549331763150201616943545998181408857179375072727083528896083095369373344021945406795845963094323083652353359627999274857563494910101057266660201697343355168975334432577707969188569898925494852390662867738990668614033633802153804154741581932013248102169446354463361236031477488881232800974589696875120726958708218937992196083802651624508825671124304460392311662721071991647159045708448150408304729580015788392718194669188457864708232312257938377974805703530002862498549166396490138606289163065177528583373033714812211527804118851038267833297637840887267419675889102434736220727226530767023240092139664868325049165870387390075230459714696620665093896061827455493641354701881563238108583733491374643037652318789510191251404442326828072041629015942522585060369059593333658872189642638969358944901001019480386563075494106406855180008670220741735595560322950318934442078954588304234046965705539956748800080279390453182635462596309008609188938883118502618101675560130484603036751909528782695502276572837419352221214073425579851714005977367921963795163163706195903094757048766663621913279589911279678528119699331924502307253172192618729837670265568693365360913551751089724042738430389729061727299347910193547046106766631902170570383042125850187320993665991454362310159756683194829390492726316706461486286361678899855386492091819709886362193313268216469032458008365849960059568514879220511971950600627130483815331662269964942132414019166785347309850754946985134936044479086068920351776620554328622874900127255611984696114228561068476844962051413908011372882409871147721413139842452091257198050999086201990665365653422801100006836051239828054827952760053147580954363361919127190396462316270423729909819973079380444429847793729664733995871710493598555388598918557837945236831611382609616826742923246354008684524058852296592918760457929175840190913354017347320457861168538355965062775257588017845011546315296943922652868672127295919806317310155228358840248448487462679701286294145454787750415383744992324514548318834719054429574600515332413927653560931629012918058002242006781359800371359292744444419716322230253516755782543962712195971574484109315480469378544546094210262298396885158335176716879106095503738960656971485474162138540524009814575636116775253158940631997041321782199591274956897385293516476831576090885738225819274435286825972052661169478993971462211329337912348605842776087208424702779033919298209675884802354020154365567950454564518744204251344334744269412145794107927436162678325364530160559398861137463182987877575977918007608163506324758025310111579403539861533082924443335739983587947480783258460514921270266082520372740186038489087102363436033267627078352078828133445243499565388041555932081663523114980460140085916143358707953547004024687877997653136618741248488499700859404114011044239140884116134960926124506109771526042782984162114629735317706900193001255054031628655222053720121939831897030879522460552935605494331602142261151251006307546324390136870841982482961539378239583525044099552668464905673705783226801901091428357708785154358076605107542619167803400333545703474348039953235578536194044738689655292860301320552383308299010603923507949252773694108261877442120271822455715884463777652933404653096232998172138707128966162972228976000747266748416785868917817838414002299696233495173409379188286714862889538026228563439503961604952793585822623202101444416358647736085729290156780989025221224578225423661563702017995502659452988858055431806208490323108459025992101419798371773729029276608807648056441001558879873637955386153612087438601852554738161562658964790104144104126245354293692713024606849365737906426454560934632826505852591559524949222189372916138117159161329248953244418978147363482542708578417689925936043240044534415033207840677126598544902303713496114679663140742199232197007379398098535608562768098415993809167996575602208119361339831048044497616619045513116286650448705682490738470551421603311211868057290735062622769275143285694879495751925650535853656256014002155776964631118467044409970274016374600402883888387394732329617673953330341751275982225490715588754004133987059258578172042732094935197981153867991139932557137254589993659970625943878381821564331261666615727300212907621339684396736846986622068536700145340826830227836986538838296868245776206497837290899816633568360647678271015399798570274472323487589459265499152776908751695862572159344493270977490692144880880139580997089680417873095499541913581686543392086230482498272829781804890889623185842322173188659268393978233677175005855086981198277242167313699585428438261784415079462765808816751309513144147631899738243326782488494966209178822360761873384622042716659430856207892134440445230354959540011194818791428234191310898082000730956382487132149832649589174375559557432317422865049577768485128606822703534845217618436701381835703480524450404312253539582198089852225000530257684623721724089410463507662954259759189636577973736717681944895517870247584817946784409637145611816001946297513124782971078173487459913031776710738260731514844553123407726596877354113467681111225258275801952831318310822125287418694883222412849237195350971658185190735576080773439853175928605699929585857498381976998048785867852390768345349981940569505664390405645036617550102617012656230597928180580430752944852681133385170011791291315031054963399411743064189981995354309842891262669184736048996953082725557598117430031834145142879708061880957532134832000514101594469129555764685325632239905298591859221283030492034226620662654747290125578718138730786584983442672225697056108183360021152499329343420695636354013673993827706258061612136110711816038110752830146525920734383477550889674634515236756130157952486279906439474967492253913618383389175585513766208942145295992817185762543121236517587201910636881156018756801974228110441607003230518945296401321747578893164436834683995086848356595943730686869320743983398370697391766233431451747694616041753271188043939909665882324298998574422827986269367548518769858702755149722580030327872491696820722347570168553892247432245778966855764501491069855386995963002686706157589580451526047788112052133386255005794279346936528122488891352796229490075044235917384109902084209759507238265235729535583455961301188914249004158965889259115551028971201165538918793676187816959122653354182774806213523104540033527008002847615559721546967731982860561304419081275263830318030173786523872064761100151272883079781493020019833221380995991104488954882087531150538112156968917599554670752862344304766086235100303702508158339425685968234485184172045525485618952214642139199839581650117160088923097575725255838492126696163906821177205667288034746901895593803367074633686876730358828934400027958287094828082456421071964463864163297551343586194786918841640850923052759370598619965076177518722637948714212830794883026913279961039393190252344448879814716797323554023872648754276902305044516287393484834728750651821996408287088125200673168071987166045187695369324365691041343433377529680579665374742489441110277543160888567749746227256194662014219642125617175536985614767255293890080734628079578002838109579766011025044728779788174885908244436322568048762669075730789490890650927744543643742302343897992213546691057822313945895777686519209938388475559589942775272092668105563157617350929414089912798557259061259833503185199015378726563478621723980862449431840123786315766609060337065741414406349525061206452012162595525425026671473850529785186985199203264734576563680691539189613345883550915781399324575865236352785166122234161906483432818465456591897392368804525824560729537241399588452349696412271633865480890517367222666340092456453936996350413693533437900685455747327058454666782044410548043983032279244026167846352705680932140843596591212917840601477284019542752758405043344227444002969487467278036661552070851506104144987024890707758010575168186022120035099201996322374744981660178915441850591839270257837594073122345571941254834565758160864136837471169875407403869217558277806507742952093440233813166315586355233401290582013594721725025170245940557139930060856803473813821626903223063802522159268573853213083614175639448955224943009979475577989312504533616957926146555721147944015758107146367629358231090474770366008673112621011948952592088126068682286083133990642647888603916409228629202882175269043785186683634428925667900522838668427528281344897207511342982983335490236180941613153058319280805926752532502430705964122923241751360233599216973694141682124621127741820061717049394255400545210904148307980465837219627079547778923897925034314019596262769450183336437608414429941614458175690295143248012057779572410936272165117173512572345956675256550165678064848377360246870056468595145359159729514992555640971660290456729663672024246454686364104008815770458053496766907776560145749978312970150035874630389887055343429927445096528316016443288589442181074388623655177330369607269186507267993929457979155707409499902589583537289594553316924726495712382841510252541910217130732334140400768481084780598546619917295039762967447338475295139794361715904693713437155803586321562574803781378801758307366459462762538548791183109513241008376671024520537684682410449266065489838597063169101604540309210141565799981195252006769599485142293386756801256569224131612395231009533678755018468765050748472256712429499574084912942628662435284615008884263285572795537870034938010956670022853138288323690665205199188598870097298597887855953878059093742882822729178125349587873141056803462170859399478053513093954880924645371467547515854231677974427924783968637992842551331411458721989007843176860806644274139642669036685051891836157974773034532733165834367929354040993856293225768751704557332772381738323953822399058423778582895618241068879204316284794894451226957245260264365813802147788922993561349511620545871833539963651338340978498008843396489132411162869517115463319418789531860643326838691815268765361635430101854882859737800893240557956987479122941769395031428396779011341395542453361480011073756395015984256811868281923200947938017548782415676433981342269965021307524308595496515225814439690355839495908421977727801601095247361113531528250027134586711995091524571544133062173526141706356316923492845128433985258401795106237533322208981348822187440599055953910339102289427172113506519817015159389372789391517408882337818287815950870171917629823498790430982069399726748795315894591371708672399963336283936750740422918878915820211471526527725088319298878453937193464359727906571254551327253561857204979687476408673284203456964570753949400747276480719570777203619436538362145801341084855526707575276902209669482673530711760394209381694085264190528491100303354257686555915210786584100170848929032726026914080710352580547553183972796591619262325252213986493361830031021648981149180889958104072033716183201896777607700633124297826397196355171939202795993612611910844923548472744661306370782418945428985781563806323565002270569013137218190088355187076006970446627226936784665765814526695890392719083916994593223146683364432840753509035880869678998063208096189874416665124795895838874796052852523134440994355429779263933774957997485252435858395213228448729214297233626221353570548431865368591139064655028452852851949863411437962773332064188517789931457775836305988128073386736447492902384692826373256291374677635158239191898966580424976984474336335786041890192541134738982860422970785338960334928630539488442882654498201108908259698229384415244128306143146522225235494747260033231047790174855791261295638040629338607348414643960972069624624716994275397795052919582747447353547254635661717574881350640024173328559635114884502396659498460093128266346124025480680981868140476817442424812214486437288559765774305545292785026213782270976846925095357535977955841298894548118950583583610949526825126950992788216294217681128411477504676155070274298527038406600392484843680643146845798746145157912884891610786232086215387044191762607560282920407009609066554271815774390874657797563161523594345558930150605527708804766304031635479760491077477992825222786593088613840357208619716085347629424652407161976359467447872518795313416178627439079416099666233377353904996251359019222440560040307524656565591652846965668309649728120097526817903393337579157708096135598281989203378950992591184400498534228193287325851361495011998930354765248488240481852794599096539193069382063588138656267421412877969217182826686272373479181800283248170856477056754774399804743393108570727704684365200000102495755340234773676519561848653632288515602804623455517091227041956333544032801442069384147622478466909246142189399104560274620406243431559623909058493022966703938404731469507620997640725221249865531221869438975132485198683335766201560444341445154742691712395471451508726378681631136198236332851456087857197405455481783022029720891519665065738714766471171071395286864537909819150308160071952644201126282077373627076539226005519680247585964144621826217590746110864647021097560274375989219929330477728236173908920183530680331387373929115825073553633383401580835345105669511440531158293979501683073799981149828929948960178157012102432534658644777765670041469260854451374031003873573082000542779803155971115710769263477280378910417878575174088763450351937119665675102005329875579376741087474570836864929329951325558637654786477783003037756298072053778822708367681210845454413634055066241641257423218172717118449927539780189852984848173155823683658433742402169189187803726224514249181845009465710195761286507399846093872350637433165145427152539440997308456647153272046319655305330267888482779273559710301951506777541357689303473970535069618237345930932100467637111339692398705900692860285231529565456278885796153522149497834119715859607503886952755000233688534406677480428088187828765290411669551177795581708005219530766802270705280379951794422113808496114632940485664854558767778239054166778609592549041576447065812696120342601889754390152634113729724407428749715969260102373716578109010878824740061180607886962917075318986579171682373982305910928097399655765680154031048434334532929185673096512182090049061250293942054366718822827980093944781335511117517995274289140882450834477330742022355245381076245393515985725590509347935612448248497856251703226769510599227874650211658056316216722935307609753604054989960313263721907771327027523897902058768143262923872197863296312579466157749482819381483185446436799090980159892899604775627840433696416064957602238136201664226123769211966342805460873797630406229374354784669578256506063448728574944095566681681112445654013252153032359213123304882652962787116136144246910848051351058266940071900885361712300696465745256656081475511349601920927606174830723477893520294186332856422075576218470789824517189195561794449546536237467850528760018910984426667393441289601961151452965898513897779948023066766736398061196889192147957031913194222532598873458638900334887148147355683851789786337906584427262020739989353840087578094168257210207997663841058471458919070701568174686080049899107640201576951191819212136671421906964827836997578053545150169393297907209221366414387605349256130051591050442067947659637967802520323916506661891024605866494608831395988154974717547494415256943923204757337609397124316875186919820591222652500885364848024198452034203878830459087804213914223029338404780670498458369757819958565738430495828345880649486664059264632108950590644959755156590053215817610714768678973457722809140525289763471568441009414194627629791557847087231806939712046604861145879513969442771398500888098418791934255718195877885895276216678956799714008176733401506260089402899270791583432346895088409957751466642431447989033230040329535036977044119823267539724968994978068330106976230662649166440731769487378154235771757339042439672652807502535796329067408962601652671395925056731071184102158549364275335825389183564834211439445875557315410338584246943308930074447082008494192341003723089637846493001326159665500020895169877573270738714656988996813385890279605173630675673085820211698368676977510790265827443438122416821329088379026318174244414822023196063224638158289271912747124770428339691917798903166783617002489361312079249648562168094628665354185232406811397928632764934024044539138121385368182520011586721582394220279901845137575569414453470469620192640771098102681686738071542225501371967959513417977895507155923522514014818918679387501837507670622619532858554861463418845879652584097866987601359638467545776531200604046778268855355020365859739533797346350508431118142338458972854963832557566534075256609072540807028236122604821944316128872881877033037722589176988024473974541130219003875228564373213252866320471638255295689352312764513963093991557610050973374879731954441069730894024304951858932683602720754288828357952591501650194346744600385330493866783964176216337840306626892203967107987173932757101868028106349802360001199176147393022355899771671606445980533988578503715476579757137663327389636046256078003047471324031049287169046915894374536710967965201087643671100163799193104041810465240559325259061491257937914666233426638531691942843206158318598224235374075392868170917168904007470684989724162189189087950434522859787551784799540095042895607239928937632396284743882196387764987995023382115232411651633498209279128481911845776460134572477194500135982919011112792589711820326497254044244765258201277668462134217506143948224627498908461965156086767303408951431582705686571741010369675101888990745554443350492639014261422999863710133351217691456846128829915479301789933027839119607730617609786237623351809946747281766359690795412167203974732164673774142540533391622301258386513751790110297789133839612733204507437765816774033830314672549291913349060169006027484545230410951870422114514821140519815915424040617427259848872960374744633839366790269988548908225016068670252976173581276113572559479353112422765281480904213999952005905945291892759998493886057563021788831290114155776177261398990244669705915016449653779058218402135677438432742054920022017523753129426321113294509141476413440823051337140130197345627272037960179687424804587485806332611372044087206226351173417006274560112082718107053902168703541501793796537939237538113536593954951935176350475262133948657807417563897816713686697360857153860222068329526400433579954637970772354503900509630006226550662882419643673560934655272872000986972334735459872416010826668455566604682898697213593228778358098362108064309944073452289259081561872667711308890787319254630608921384378651867601129302405553253716530845645484032513485360302803151100576805977482360861633537906749829319742581905524682703770738755356917478558226200161762438752956046224452837397004680126903050239774039078532158482611107616018855520254316619815324167928838003429848518602078396595658180584099578592067747469098322916095659175066390324527352258669310372150035435468514498142623113152324150908384106491855509492468619138922938437599119502452969303160611723207487681215831854849148229596864436294050722947879567628806283390824498546787275047785063082161005229632195129394474457902982121979846678810610594115249687338968288307601202664897203568672965783494947176737897118252260778877766633782553378497256278301953443165434558490699724142433690474576415335443034074307212316611133262444683489270471949887263675395857202381669732658432198849400052021778887985336479359984014190259395904224557494698285564140726369302117697552273203536156934220834142789142518083170827305799006939254763729435974473999000545920492960139564364680012949134089340061966760360711448593153163005103066929787053695497492972733074273638932571744709507249268439282580638104290082424514118497709287917714444940091368647423222574833944037305492316969010213913393690409195452121861818861651169847157261202727128111066517601253512023201254836418481915055194777001103426038048729960999336970901864982310252688651177553567606363268322200777056263430944462890338882960064143243123387109420191359514044474449566293878363116373797998298753815088210377089090971955831020732224789165101301154105179105680512317639871081092488288455878943948920349237147323127478310328985282289696016849027549587941468421971407387735821485380434881336889246570410121575710921897415808412803439344381865780721932404434185842503748135253276599297200000207605106812643205406472243785337920948279971105489069166098485953173118701063909504961440569825162157344878810136403066294338217309313671931049252161988801936375317854321833279155060899580047030981879610206797916179049354687691992573094162007801908664405345833686575589253366703160087658691073086355526405872447306547926098965981769276197282731038448412009825750683943282633858766393159138434152239446460889452871950584126999303158394792445318176477211392233316440321747053220498361981278202016806777191938370060147293277290482994982319917814949204479513866866500105975867095060322947908690328694006715916560813906362983117123096962439028281384047115526215836498159751470787332657745787903400329355028577407254881831886753536103231651469165858914234201797568107599151718806366806284527045132512313972790765143208255501646691886786035647612585081209068645822940227625199957989720144466759223043056068917184177281996870556815653434878821117466779914298619337619051493956942048004699482565087675813142724566473808271426902169727458964050596371719282027083940945346484302297523097452393746791532679537163565812572165016334855812156968938007095093625427169540528295236411878051209046812384649189661695121639082589016719941368057711601535691179502806820461648549628418864824342152956031741465253079309393707138422937802439801948779302685035233996552989985233328704319634635448740550741586642296306198469596795977699119152716935486771636143862715203870399870870386817220687202086562333915495827416248663907244371315661076525276325109962622376227014449137462696258957677993229657144764927375795727290850520207348448945215079729166040070036544962519347686117014592375584972270199047628719004810209174989369847988574719776342305347234810030761879472662004120976671990903496976701361727726988136988757895517504434384073608668773189000930501848609732596727269733211655871366177469657015030620907377924985615119275427878224228571451728331285388018352542160319186945227892660252400670277547539515023798436317437422641232032217294774149620936699183665453114942114666446256803610866364187900479262949477265542811789786530136871634176062311077026135715997162630004607051650615533728657699240677204822742660594883254918053969364614276989897769332382362113041329992691157911496133113595973551016526509361623258325184973543643686561361162124190971062976010957371365722758293516423432777123794234842101128740148994096724854014876600352702933317372903506666573025410635542025477221976083491682487733217052258587985627246367830518500517899272842570280784274595509810269167233413155670053791136180834019371842469500397675304820898242329771657414846354069404899399870557986527594417676142360436649923286736389884419794769969790800730113252121164541149351520570231727807617678721012002649677857882331015093763822244494492840957498397599923605640959567381114121010859202120602124838029749585881449631709547199554178555254656610532296289438208207614328156513562415441098770418449973670729776797767882119645521952263632360149439960892296321792351815913938164665137636285710247858567182680973080357055208270018915551711114605481800705778226542322473825984847312389847134389545112968353402125646675906264728943708982571179243331947220430303513272164438969945148770982636457682875315803308234919057143867745504555884591989066720159786994768629317644002714267412139013126220439260039001532006111649722838073926187885185025419748375455366605263971667410066008077070118096646645957622748194587277921010875896851553318570667319196651265216800128021125317100458982923232169612375699006425246590295003725856045414423631429054124649039899476368972817464174556273510116912879754504156855433234231206951595455234448711321329807165449229267942760518460550037725823779622731358030700871881956173028754470105517676971455841285963970921558250523154598360506907720682795791034160548953970623982417594719895640249020213993001371710398857502009452629407832859465905006887145309896450241710601458969278279430173942207186422329023428489738385090803800829272609484689685013659219837231777713021853616459317330752026319617706408378373773512452124506967317050864602689250677094399190115802518003451023162713436492712507893343829725182236944356968515208729563190963930359229678798531832159799418669372158217613320409904098305309457131618717405877870394229194156324602419253366303349414855185308808636165864782137258431665815176675479160344938868792010746801920050893145680728588419017098327140337808408641333812921552907012040898713981151996195757585649496730953195550650191392236510739734368565828612307897011913108404754866419075594279149971721020711411314208664876650483660193324526255559681403313821432114099915498652402994301529329626996273735492742547425186108370748716116677712214201371850154156460798112041284538591828683469435051320763827068804243149401156522974671294698976959692512862629706900128291203763430736566075642942889111053512610457931506237482372518996241529004053128797145427352976887280389375746602472318279265090521252087405864474259427908500094707316995174559168119690896286467877633440892593597388259383370432861338348438306260985555267741877765849439741739107070494557562741007486046080668135055564137493901648747474924062560310796501376442959160763927729628229544748667989374145948191630965949035592091724172835259267995372780815365790814715597214990325865100176348094018942190347342723255842727685284984926477545569601575671374907717215091031963062284235739687331615434800784244434342402547117108455072860744983986972392879314039567866438389749610235586457429270737571955443002296679561063507215524478650123800954802396059266251568145525354075886169116539028500824367999165237343510839469776053267810759481275123790697316727640129649709964750049020565103501052879595538747025849612152910022574558495118876803943426949670756046829232325761939780833085416410015323531317180998586878238736784502634517770825099242021460572480268335557882818631280767951241982672430532103775071414197878007039232003031124347869192573886305372204017275146232613442715354900159084228924840661328722070012010339896546149642673368874759953092080577994684632363396821090663335951596984314402413305945254477114168204854537295132643066701727828824499642148045513354246453616894324847427833401932450575666062332441917031220756909866745647823843813071106320928486368501457304656574607960745659061037303619617215839583364771944399001338263403543892037896235691141468560506222237446851740937309757425340273810464747129725189958046660427810842799203235224314588576452635227287180832757180805528559681364006483750734849200607293083168751055663644918893090473358683473622259910325454546764664449446077673502608664576978909175348973014929047615645851217035354577458415544755065961493236941223373155919053299790601844542680420911157424148794205409694036844932920666704271039901867610742931381778993766570539684539630168559257706523539736211339347033232560130814792333933581392726364630109826952200168344039292872150943923347135233726648511840797500516848786323106667292808395737371504117315577896471271448914490904902322499994973321398983600282608774344121720058304742173902435644607067943174621532389786864403431457426287661449731616992199389423937011317553015776788781047909415853513608337741760230897830352746311011902363027800104844759421521174681182408433650009077569987002848091650771728341438029925523040511844843898791718669700429491194506015044939743792929084747214859468411546679365777506111365824641490400163527464208455276556994715214189810064242478252388285897934991855527924906183280500457573042879820029643603705277354913910671990506215729147773386566312957899608862751410746149094627102996364348031563442693275226496883361617550078678571004194449405404270570177251989532904207512744717298094680860699499159705712232638391924320717939784829864442752069712952539340417371817075214175831323645608444602929606434810461686316676015778954706450804927394817192348323395782330167076252199375221991746818429502962252765154090939908571181466555996049379222403009071703077405703636416992095509756856712271317657238018256667971370739226865143111800879629697223504921903781580932531173593371803316288272241387982689791777448424537333102377188240819509196952415488167624124814475990481599508412140914133385181362450924556166715464784681841042502122949252729116227029849148999031167621849056834862386755771346300645554689718614918733573138460343580750512831980714636498700152929300139662786579326102103732524092664062088305563491770922216729550956047846075125231839194291163020482454841319894100425173446212650744460842005087908559978175278770199101254195314651632761228395276421346068259935210612130917101066969955007892141896051698886150359482728768047022057522017065192212388867612889427750069652478950780777253753632350265159010168527557176447534135354117143754101451319823422992191898634417039515384312644846675245954255676039635226918354587860691333563502571012917389511227741255261446176436228174178364188343467256933380126674050985304065988181565191737296014903314194116165609468046914902158082527664400569035605203358733735133181613332932865732908348391466209130192649806002599102765349052243809115261392643014822701539698187696875131427244584453374365408793724592299035961339407539072568555133728421453439856397743373308260181510507978617857795834786088671739538788617526125253349707175378329870228547203810258779846192053706384105975577006426762863755502521071174098860981570102255366585323217919021381675032080972945253910629421918513773976675645619286290885149450132418360959065264476894975640511237530127189100116103758727102780742633460537952321517991021351384051383847641040478164391642574108377288174847010213211091900080811733638768915663344524081863390703729750702715415228362297568364940928687169497902264130929861724476316052054758592934822200384465730735593502003640782890605115724229902408239033041920582842297782314468294634377280617882080436223607083121681268746459337371182148349465715500959507403127853917451569817664534342167109947217864072824044916085900319134201937848013394853219532719553750464720238460678060960557968633846869347856261409511624789941496848448398155453696590985956118245326860514320691758536994118345982941888252788481237435902637386307213770210232820093809791615900914057334768756983175820756792327747166749594245341758987392204545453812997674738536299120091557414547784328187967492755924445412890274001603679385687009492415155581115579885229468612945903101871956165486160738159180949288537375829417779918687403666114566554333933117896533188836680696152164810427125615787358756672528765318383076588345748621788315092956012534049436495952192504920979124235861249304342570931225375021348809774276463462341679865323371451549546417777233573161657894294439661186348050945771253227118606836675705152818899904960332148827127799343538060278564495879500808305450279357715582800158181114151523441630618107401969703830545522008525872606193688312787868247984491888935737749364573029148908338169402668595518514152690064240992216269772375638799753567797034523112369060437016201178424842966560240012682711036443574726413562638758905334129747121070714971577700067829431661391058589082324999135362282067366955228896633498395139668164451033982312153727845828678167775014533404693915118023150160290516900153505809440869183163390092794392256957651026863363855844579862531210308201413358888324446838563262745626324722436252288684250118835586785087973916728885986956372878052764617931822874425230013180865815236280732013545060344904331888052801649794701503746949324981170483874804441258889754869021479137085558136965386231910127637622290833276561386357721695719577277518127758483982907836658811877197955734381232046832539762257134571751261715696379401155970406130126689836564234426504597876029869431441979856019155801408868733451277592567056741820058122372748455083321543575148767983417514125740557671663914092842288643725745239285252869264484438853846109840455869903359338183729108196796960431391539172232452091835879350454798408536563861695287717302402802707990931028712826103324754084556440420913353092676845912116987372059265794567711058176284344387626497163308752221505492412245161069398973123180596961036538155173231703976153264565592154945101136078046789968344999563478485129952313379473167717776854492667298494557655368112248429869586050799306859437783131132730170570459265873405085595966261967635647976369597825569597893896011859420383069217060682571466487197385286671235809687485373980528785789978831922034395511984362711945678250182264828825621380212331643082882099655624135245998066893647261204417943007730687682061310901400314652882524083892305693235516698249698267982246370229836520955423321113839259542141127597222609883765455433288580120921845543471071424758823933185479758564764380338979094978258563271116015617287174331082335342217923330797095671128920292584674977503112207679589690581532880782090446433496189121813309958134258651324237664169619623612162118895577136913707623481839948335427086857828978547963297306830715849811961550121848481985320738442755472175276122760854304412225839900302629723149127266913590322765377933319730263501333295670339572744154172798262453704133303428442517375803276943926681221686197797177173258068088930971236214982917334047304113158774036108210720577120540562232646412773522292887800268776800794097563304980000950937301912790001480313564300902913300233494708662623985534011972151946105738101267943969805425620296374487676837935358745261185212505263939810332014239435823893349271064867951628153615729108713834062558601584127717103614519663572601029024155084899427323579998162797865702806731194040941382663586843694673685067680654140909563995230442880213016721884080034181093138199665850980500938479274227800344415518966046187184680184409484376724185524781694656323149672236129110323064699789355223453734767882272685781527183372284605293187042800238856851771463484049946193619003858649066642489058688615472708787806514643571054448975284681596147028949881728798903931328670517100151261145125411980380897796548977934560277327269476101144286939753354411477923161170281198681986889063451892941363677361502432008708473243274070375538526638483848776760025698246631778155704301632848746794859213601838669748267580321035007571943165096024012004463995063406440657136701446895028853717358460116280924186204967385729964417927596606487858205244133041856174287107623690705307732494303510772737674593008506896591783402237593872053018570128786300043089385167930396696311705616071401762343271138368868237099102646159408963047864197158592098954008087175276244125076544071169437914828720300139212582132412259940244563758735624134803290721477252411761972192757311049468772769163841303293915298861977165150343475165751728206330261282047422972167919125480075805419280871098374849394510580614295665068221685934297534999490662202375474078072611559107056557947181007977413013972430046100684913505965086738823168851112578925800058472460674117002495395477873629046855767352991188118386422932515481598972685381858886930138304376181934734522663075038283174334221492931335660792574057499826683316164654536426838224324998634691267401187256594532086184513954967834131081296931844211999761655205835545772375572378329099309908525307940176156916525323147532033622283856426163494812457484468328953809550599238353296564898679279450995865667025545251818833357897233119183860296087511207521938278542976089675367121426731521446656243600396409679674672437030075489809165977914391939914132133272857542933362504797427888435922299807702825953036203975393476238871768841334292025644312374422923736858787361050748119338197368609160199628242969986008916358632884408098317387418287460756329426422927586208104796927651766151327758404182975041913350965659840886065895081425997571213478518281786930969679995016703528883833081857947542718495760962499262870142070650156987134959558553949238023146561255094397935579569320081848420139652998969971048832504449397622835670150460576815144913244469481138218733127611526416912571300113781913533258382927884951965753651098706133228367302585292497297671505251658104966343631136244792344851976348086995072610395031297669572233212279019861240143360518942089537033354226399108755701379408757430700831582355949142022698031588876388168015576112718144000787190169128870392033583342659473636338333839438538104821402799890154377081650351063981832771591485871917508215454099116483327962277365829304640322040073983923667095959878734670960577161875774068532385657357901445474093650031893276346382063232079491166553299158712417966205520697711529981913151680721489376533807438167654892580678076400524421025520174641530909637524270147511203439621334619370345049264637992309935975361433308521868506946945527946768919043100286315336354449934597540661648627782183681926764315950861104455853922784333832167478036347048022697525038981317914984406021641458301205879030993225574748835073387350501913127463365931928556285318033774280715693529453486969134090825357551298160872269034310689239560920348131493116682353161506107703940828911417464585960865369926792935803205130304823372832865143264002541283579007820884961916830590336464567280270819904873675846158933211443509799048494398899870967991837240891692568311044729659849426799403583612251863490603371160649159389818589327950912581951360859406266323112118290613835067178620473377913773884301930020726693212728150264257827768557664698806227856133449883181696196063375906709417798007264988338540670340640892999549653182864192111646929033158265760333044838940160338425511032422547448673324072854471076094548064404294484568051321400582781356418791740746088567205579959631520845834567073971443722369016761676038738344959252673211172151423953045715671144315679059726210382376496317738063928563120555322684609178539621011110694992382534070279645571121110819627301095082598443727084054064985079209275565863462329067916630798532707930833564943346426260441779158992313351316047040160445742539660909297022263604400802037306307096953310710705857092269604959948449555879450461081288108372018024535681733984170435399870842823808328127196882605822000772885899175796960249434236776090567717970554671919816505236739308289265135218660225239062938217586104230140899983020902014468750261907463101857093819983365152471957480020955336676538705619617683730536033189878652734247539908442666982959410406231628647892507496842525424489194193670975296299348871912217619056024430589644542715481954124402147022035276746725507895680843025623799464127755379169923410929744886778955427134192301058238500593229589904666403339389452802902737203176854773420621387106860684807263454966670194134514296363493314927951081157167866042996133749148195379718780935690798966276190776270699302019612502327782553922722591889446608192845314136293699254929977101074095974876409096480607548485998867086230080128415074542062534062743417492948669387594614199266038432256986558264800785065065927192772613170780064479747727354528417467243176814412112116007331756326254249844577704842235719801194401185589121850389120903885243484783938840739353812649293777265365153147363727840554114795028517730035994326434173559467638542068701993562554948454877213734428157616131361618807443154202042407958257656368166338891468684169320244213172800621407665736219817813363955540842548199661305832727022538843705980237264731392352294349390797072914345790032466582203911700324458968099464486465360480368809007854778737188804106371024805042815698980921131816748142155330859753710537684736867605766921712670282349564706835777517526132240979679272418591601997321179204526641384362681864081946055719271961577597534790542997704587960342019027388041098797732537774581041046878728162771925268988485000894258548839780802416113935686012614786003967836402070275164141356626077462704244594055927038860383498895475664314067442444522820071685217002937446466845058563305727268306792778484501638361094010160254023965363430884827310423530150962404608013599664277041843643538635655534272617261455539569900234427391488871521374363862553642007488143916991146369297597487615787113431228524650397038251668165570008193017370289842709223889513255946555133044067730330274791624610920266667404746203787241728550293462697271547362322508140790205186317450073394064771337532013471679452850721935033746569387265033769106877038736107836149064583268947769445865613499765720273321161347903533864719933949712343057916476419973708178880050352879860474200726299688369702336360613062000934370270127519379742270202113032679627003472835926412804809618747683408948944892326596964949759190397241596435227222153089628478953129286796032387520567602312466761677049059876881482087820737078520834935930947317689477046842154451111902099620171122827299634049097985163263125185938819728472680285948882817192488033939049120618475348296282358682296935516847092875474614469329016812108641627360079728992989336458390959363562789609420557156344516218715655983576933530341533935591814706082476442587820744641059530459845140575951461935434813506757157076874056115836446681765495720286423969682427022618916967652558574174546031755935248311448540991296895407130985483854195675165424752915005166414770971403733428543947285406594974590730114250085481188515803176318641110097478836677283423448672203375285859568127138645118144942557869614365162039384910701462244079347717937706828949202967570645739213338354089395439580527748368083545670139844167552037203267307685624026989770394508863560049784093051146603298461362312761096191111339002994290682652751487741196006288611480771305393576411107936636090029086989043702999997533869686480453027443802673885355632530271838554154276546429113362260076965931214377184571152876251724766721914617972798900933149895908043817783996078504190400136709354424717912483507358531228226795412078323860598686320901687009847081369903125871583648339175094993563747826593852634129591833325402785041036405965222932640660013248476237864889277432003212056183958124732698977933016947591714679391658141616930088396315894397641529436578950418304194245939561981159284649478930263939086761690239570457445289056807621252068765185749359916728864942149314620652720700091099867761202679632561839122863562390362515268336705496323643823765074654320953946536970061442685153659348184074552363360044122784467962813316197262939046755879467921566843184994195231812781793959586464302688163224809992355890723177203692799028078772496670675417339135735664874889414430288873734788396594740177310386025955808824737807136353643245013226658623259351181087014255671316327398290365759209125160439782129173240033639353171368499620833645390061777616756873833568617490180674060395156911308787161307647408127524850937262037766355027135358298665102347848032462818879330033993238810369409068834119767450696001566346007515118013189059241768843808985188399723692344411055250941735158561446742083156675967437956401326576348516983846842239668948371318763667674072095822168057910605290406389925107653674382456098221927189916245246203787421661236787312176909199442029999294224477917115701821324258119642094762768302393133365530619569977002291879786818704928062488240640042517868297428996080054062669156803774324935994505287698782315667045202140138272961123554841430575591986593856043560428159812130978597257330334874975864813038773722637810922614803526832161218386378632828498948417412125911361625217293811501766692154677547317408421268401532148851749937261812642444752911482368874346647161028472279393639645221903256443125230301661783808506171291937137610491356092026842564454012830127414838813379194306830107966131214646804860054004582446080234294693678024763872745189223418663023581259987977637031325699619272423384064139429435752735846243006056847845205514016600287515741465086788489224182243871420769442071007266788588680651680353060063838487531891927068993952959142937925905247891590523506085148695708777258400174687969787882463462081395846971989386117951716381484855209644322287191869537002348247061461288886486947431983117729066459495494842020082922898544317564742151326697884974445127348738498885088597235568987429338624022797737679146094058377524600770293977659625714879613969910716588478252782781404730722168771509570570782702515047772912923236860585538676817336583430947278934919098285220593218606767244781528075093576185610220439029042930583016546500406458046412173234706701919283165509963859099656706235534041964436591027383547535877301347608762995481013216730184588384877279468436731339937918422689658731987403480537790077562461718899431840491709058707260121452085273021942140232220394854622650524701850807499691558290666493996378841969547212322294000608451503376557904760949229519182787670328895987665240142901640696658004293823031246512521474568703752010593740729345664542634288032464923054327700535829037087800855021056425218255932055445625564479543762810485127264405116359175582379579315538799253711592412853436281578965888579752878773932065477167035987936657297272918912575138528448657205160018052366731392989728079375505562711623461961439503851019269413290955172213077954305702123459470505112466323332029577051166326664379800288600817958289442156753724484197978604895412568508467555945324315869224343667430370614773083640149713912082227181793593618944490104097649855545527592121105771100385895182896531721058745393516158399795379260540147136839426225613157344867271719535564259685770940032819594999782939734984464362294543716274966989998014059292747695812080553125290361001107582525508461739452989057481610795521892911284404277813008252801733956079957996677004131581826898248555271581886378002027697809311044197270402192058795758629569358065093078166440042476344901613992647339097993080217291500810204173208094166385297672860373493522792970551619847399529208377353813252317489170681140473839296728168539275390499427323342559861675137743158115099516027256237395118206946246765455416537273878717505900317087965657187664314860827829998278467137628578039044952093414972653893005779411370914909109080055039324941986650075912481857591607455675714681035112531094154369593591788837388449334726707538346018472132507148111897415808071727899976726169659590764684359897517707331435424624963876248264718072506929274290403326235735450063486181804227411023881022733598558047224166880685974542313070017030284310319432818212298205380103204103665399710127802430752955221664073782673891972251839074963136244382751705374336712519911488170817689099579600032100897048626094175729575318950411236823622001249070481172496024618341982351103719109580918179206055096762792111541847014457053541619763460588971660428817992581854763772605079321342531451302392641102936601975290340031504557057475448572680133541425065376576110014989768631686213999144560278796380964096544301387996510281899708370649999361526863496979109814450650232116005780203820145570420565107618489096872432439044524815701749440507136487031571695085817527750023329305285671451965674243808726953467491860050947507380018270870598816869773666480956113557545503113287534533802569335073521432864486828295959116887752195340854629500534962759483906213265614319482485102069620913540586704188892572616026777887030273338280092840049353405700500433552388580384945335891200913000654397266943428172000847994046628022695381519246266649303601204293729106912626970805212173734752989252696156470133315247395041484354511751877756275575815617490127836557349045480146874392940583619072545170520567004981682197802014885773134504528095197789682966717085338560004337952828978308319137132163859374351210764095579365785890111967528519623944002763045704497187620099733934638051479300039779644109139469905127597030198212583163898946254528336270365380569797759896766568840903103673005115418322028688254866377287950266091740997033452510231575940812158970800464762659767419692326224602609037547823344847159721735109862975965094072876034354562075025056599672191137780878350377014276864417829554940364574650719085280213288781186698163362217332300866304334893781583979898058121556168629885963860139938968857053189927874773850390307109928660051403099181138968989676988544110040839158055196643771424832504881465678007417719885806075503465466887098899024269322626756387501785458148053645589961056728405438658719256793993608207528854915651625004692717788387468741515390413381295007825946773441132045646277526726478686920334948717466484536077656426315087338551760085514863013534525753086256811834316771376542457023256061225469615155937957758264771495885892726426868671382129977668064532593305585177155269036007254805715142952863740769143484739819723868287892454304821233276726789996060771807669388991012853607179642196773559220596486105295038996841438405600337856380584039683885794762806682716565947052065426258796700072255245440032826170298521478196944651992726355833514326112810255658552024619431711535498664819132130078692302681502371167131680561484701208702706915327595081038712718092746198045946581481952433748788346655885975751567576852185589773100963127369918292396071667609127078007972113471833305616390624617918207464048201325970615206193615752172039353926432066701584333818994067155386280216319347292259961397257261983914628163559200719665537953477590228581265087847691458968172305276456035049801410607358503312717704048450423939621302843906224945313416255479878103559082496164659554239229743929271447437901963210125550569287243055607223156903901784067027385736691398025003941957677552317850852321094053977400746954259415221902224313654248522296828104005035153634839697582835123887444452861586116611858263115677252827608695410726123099441925603289926169112697517186089467225747829284271049851170841995858938413770591948548506957041756250849517499832707328112895794815079957625992471558508067235723239439716262742382431319939928903723616002417808178684976002184097100508161163239635705330941378994466595118840457027391964885639859551378146731977624117103307968480093340324034119611726896923677343622507362471287744455040587843915063194664056023068643603877552251419271013368341365335003518384957801285828434587067765278158934613678511820122318048199430620894173553224555727252223888443561168019248371226813028136430496358986808095160828430921641794372885048936163618926499806203490471071464914902941590052290429029886407312646103633031325715577762262849335303119531920261540573387522309678201626923373559190897834194940072911732305824983217116916997047084539013112273768815759218268300745706593490839982461130583818916859487848391205648474436296138190458007326785919504436433953906783768776556190370844859027808208441733218345514891250504959353432860515992677088588165498107830983827574226780824891290430195342950638243797446694155010055203397384587584327917363288551700618787633840091354205238700005375704056320930935075261112049467557010366051577515993267531955844988872667376414054785478781674663929130782404261206394473126860913922869836856965527822868867676359511223296364050547669974859262835629467196588744448781578891232362340269397631276411671164088382288061945717558348031243596527863574848203692245951148033575252247469309308814177568553825398656253056289003803533752946195383092844258374067815218953924376419884744137085568385121471741398655481838005881792718685930734570888881349466284826327836972446123984071114142430256765190297621888735660762573143374662370964339699992392536070229283849984585626195503254874063405024587520154317057162754186232496909207691162313479604275690731938764080555963071805162422973509903750686306512637111474297294070468512535837276874833458741878336808783700661301490742799667078517630659821228721803372188548829290008546889935967824527633861025086136632530445589276767583723736858290679664646715125945825345538602732682356707518191428359327593362748311185033020627101742574938976935543303878382139701713186684718316882244526590530195238246189923108921614940122360334166179170546087697817094794500613726264607311334152600373639729457850337908132003310743348062906049354587327929484739073428580152367567049644945526962590866062662801645116347767573070766136599515638300360105544946644313603778910250093267321500433107586794403039507572986991462339917890110749051093361640001387210623425688292800246254964477317352144763976857513450208319121012434471785913850159115030118304651586503318921801316016974261805853061338562890176156497228069072745385112660316365861034429062054325785734452749298714798553016401896366488232978108516094858778497339133795299873968666014217321937312900672167762480535251198331195176321239056661887948369261370391112857250399822200996237013750703150173520394492122327870558295920302831063924441798808873387518602950935378771291935295649161810028949468812576110804884858711432539416680258079965724458305358593899565777189558857350843513683079178469637055363044016891774137562151180622692539849307965465076765728552710051943689292250984931516054132306895456385299601489955940715714158493756652995410225153547451854625089743127711631213978075488351858858990182863561072992160183935275960894187133783747990517438373125393096609781355830159736347245369329178175304050124441815465033074323667206756091023423271113151763602258733685733723401040354089845017111288955760870428540492216045052305219602427254563712164516645289075241978769242518315523866361573363505631874252974581455841926089343574173135426047189806273201343036674877000438589849064448022285878007912280194749089339462027898190320077552666593739970658636693537234016127122463970791806976589501647829797049589670680510400810676409911678270988313172661868958658940391062300313052095570511020120796301882623427857680986829414879729323658729324529616712782779766559020923042199550915914273482617911795952905946799840208652550307599000148879372047179267980524324752294832883046075839419429381541589598644914127942699142096420726381649587037664378973921862659218396407210408891663630630131027732980239736900307977554328135863887575958612506225124684767033968525844543810300574970718720744556193689323919738999363345671442595339551093930831185922037442160670920769894489431984629938707723508449472266754855224404480087766488455747860191254421579848747502145434318207683716976863835356707470819082771077858274477292292946583797051909169196827749119085522569400008735400308048141642999181895615085902036549819668434084098154996556811687943663497344720023604775923761434908411005359208859897879043557695735928317558983099324938514893471563950753503116766808368981359040291561490375479667704536196206850987091155643205001741534638017948642882500751515940305365312668935462145296685507976700588040034560405043181283126146189121428228265352720260909404936795717357723737346895659430561145070796644954827587562250060546688749497913722227845059945865062509352821867326341139410638967396570339991056185148615371942483642557336637483261219224338599163328624886125573118350979199195002402476129534846473766225505919147040605042865588814855629493479436078212681258670881732467744260436131754690911344412665385186710944504075841700482116553206479137374364298663215727646946094839628367672018598255356760027081996173702041026193838430726033837322224740192888474186414314276994643458211605144887313451371761796391642904130260905227739578827852218335910339006111473960240117012167487695668930823195581827643759885040466832849513350827299093539816739529176247559227328457173949154758090881293479513375628075642089819720995033455231134781259366108542308039449709902638353423816329112754467870951044132629749822799741493762692552180810065253372916371331092352577058720689183795406302274345065404952773106073198071632925096927466538964194635104114279378279481554030744160552449878751173317186526207642481095903504847111807698191561059212127415610175449765601343237650282848087836345757996372177772354324988231104057356128634829396674521848001422980945458713691841261521906037994278717523911235170296328078722067052563256816294317370692914792622592653832253684814417832267796308428387232472085493155522212245447964526309793563272917225155698745178400834420809783265520540975118805923646159474393454204075765452873913696924930811474278085856668983629680609874041869271615390315463256029172335376694939170795812937338178931412595473500111497716032911538920387115939533202286605405520422663042409917276489624733684884629163502917735531835822675045035663457660978653230031122122237180120076477015326361453987592493324546641784753620561433366512503741259750319458928236113783408644319841747170031377247047600678999767471870072142064267406753883904922686258790356440592342198628107223925699320255511452256528659339558552795012745986364332700607319841612657098887053301311254679364846010530981320806263792897987468934526297662218649562132862446550091900501381454908464168780427064534557682821055289510425836021362684458016074394426585396748703699253463237847430774002143515861348634486149893503569371158463840187068953312260611726787755599520269198412474456391479695505595402878740109269460356960325003578193356630697260249226125765651110883858204591590229138515816101164656110058470182040775125496037521867656808644641271673552331717735684769932903315293828138127416672755915038440560116668410511472511983756371940413843530396209043273779219088206516560132685172257304567094483727209299548645213981309378523220922754316229769981024885146196880897092292231472087235785106547102262441264011875752784538698620888545496427273213837271648245521365889864134832236978113604983315885804063354783067129033638386868737574849078036344280164524771665372921557355989297639437406051893601274444838937145895741719371352605341595672837016982801322862601595270950520647611961706101110452305091878555668055177595872826126514538692585359951601737279643916107048057871840690404505290147097570127503581621324707280213041764397525875579320812687483946102606335699868113836416344728143996247748196584769308637925913532545385361020254193313105025608246922963038719376872933030977082060693144908438855697764534169144434921727625103264883967718548362616593869545656142010411588559742559526083058596486986816833616670003491251942059858703931583747997915342209403019760899238625537596041731926706544011594056777755649442951021508115024516258685706232166332903454343644088610125968140561071208301269427758425634941144171213092418322860600261315522785066568664492618420660770626143844470031804565180121404779502817543044411085190016388523298775179009992468455039685726097421321723648290969419827842823719204618368383472744686415199973671919272615071924640155653207319055796638663518628144246451684445457633724814118384733059201779148327940696294519941807706393164528810253205715669000762855622840513246810737604234250523774704283033666793329462730894344314460360801447417979350457610710774130863642095520811703001619319083667570752647103449344831864847652853913914935798615031184527609908225280422851621882984659794012361293762955518173662324485827530500680430577250760831883302003124147582136096154392921260620153706131281952020973961933801456879756618797699265828233733524024003370340572094089789414673185893867234501614289406957752465652406510954539637165192245558067525368642026401259572761007007672276451074479118432838820608468566463419480570840719787789568196736614041569363135491301742334061668579654521737084313711963813236166510911711635847017461588169970857125168013692992264594705174826100448913836114852344278925981143518571194194432447561164218894415197745165427867568314193156603289140278526124160226651943250644572544780488557850436816705898353755700977457347164728828432266092151382171609433365010444128847817538243246879485081564673849489517368883545008055893385668534981311649005384789887125574205916838923944755974885070592746345760346538061513086870164803189541543941012050004435856954729461087335683564129284973769628045367739695263270416286687353795341922784846000309568252650667078717239623638147508507817844618094200232162023523502235444723969860701461414718816771800126727445449176556154112601828626772453542897441724917670348542663084946892380720812745272901459914940985904846988602182018196757612326000454969771311204156454399831754600388290271119056456871904807579946059982026967448171107332759090997465040396027745334898640838822814894309576284388133175583479680438168551012761062409117794128107028445349509208185050383867980156352613748888233002223069959283236085985177195531193204777559023735768127481585514981805959903524990667892889387871271134432930084220618596140613792327079415690544642887352589463524926730395091270472815364313606880636899625847301081700663974806459299299413915651749504131848155805279581002873266629724892991215359838732947872401913700236050306523149169043199697451053732999621705742228533701395036372439173742189218835621183394616492330201965329049115818551070946427491796175932305968771458883484320972800030710263616318219082787533068339046577088474836808662201867347001029077842050073174699292183917191475068077547681523765363114655444473453596881345929455346016236571599970645433768776281147243669929011512939608202449796646077972474743135704871497584583266783873623751892382280460583356494872549033705736565621645938452380668812717260522662882856042808180591416517004796008100960671726858804584713219055556417724373067686230204041544432383403068308968916200193652627457963833485689812015890774864644675075934918409801049548308568684261270264877400678329877262248653569227683403090102333446449049053192707022827997324782405128491069336185129165058966454282392469996722681624624449770879149175159542091139972433454897950089063564469882661941952198262152451592320946517515238897818789132204240322477268929216179239552909293099396013526971722257979143275665642176026443516363612219054642602874921711072318004882108167012048926771444709319734321344066524990336029412847102547640346321522314163543073330130352959716878221665225547361467982267922452901525790482347021098854794834658965591576539579578245728469587238814937656733203469809090430655823296288438418914630381589213155621457977700843984881661473840220265134250814145104171949320170804350082066149331455219784752551343761698545253272660208287412007445267558712792086629776066422118700863091792577041029957085275371107858852808810806359652082218202439898086994119555629862946781888696561546371665123638374394037513906074033380036140933954425860192597016465790918226844954758760554522029897824364077982133054054208654192250557553445996659099534634118119460069350103233371821251562363726712952708576255077476267484391787625477322479091932863804532259354054856494005585482397702494748344466517933983725239090794547155482737188212351654513159383116906746893492397529305730311877189802399826800546494941304184508410468822106935666405079156711895809020446436752451526972853590315614022926028301045169788816994491175467753205001686209592623230825510512747033526462672652220335816217072712680442691219450483704969200107578395584736144498043924851690141786770328181678391685408546606409497519980634521310787895485269961369813629216233629409418097868509880972801163307086416244703269387106755046200373605401964375303472192712213421663031891663351266868890749949124014102144608254137837812187471969808217036843971869614410871187016031624809224211591847765083553951707079890054687658336541537789727407650158322910826166433447744604508251264971475051942786499023404276758011159467158601112022357771135900172498041870640819270992022161396192547820467255310287934661208829729790077561996346557642168931269519654590478363305139723739884315296085700359797378529180915430311673604769817930630383127773359558985979675083446738302402404660493376682992231067176149349612826342883495005347214636883948414224145107899888777252393147056874690795712391860708389820681354313421103401272422066509463042845774818398782738658045892486626947038051157186919584683079505872444488157275669967221134092934153893457743433102109133890993106911110357425986410261539990898798671598767092439837553355918880467297459425423078920717903145750263946616388942821609347695381339710499910424269604233615676212733156273979713792346894720273848646527787010426394979658009860061182955063812453379484482023430434186836060017477510268435848910861060574775924626535707908352215078218366210612121496568201335733292406603657054599869303209559369608395364121351836537989880958813348945268688054327059034791943002247076721294028965143220177704414332437553996328489022460894801221519001446806776597452760768034314726441285962039000386177702673607121903781751063748397282513055218935287314788024346439138935617283602422492681269636435846455827307205311977757912351821831728543216292819465272276055112381328854187339150354242436845412123224835594915757988183312735660884496278632022515684825276840737322459958405497107216315684301105639558796912459713553547337320839663931678222498412650137695695661526404791396124251138605791795859143405432413627269382743601443732290312788501448348284016691100825821816771935053790096152956528732682307264741163469348897810712582157548657811690374158051979002524789831835141341539550914757230613845656474471714118630153110032929465090253716865497301106843595296603592914557214212488793202228985843000269810708939534359350931729077451948726239901409515317468126750216188507832790624281511648531013993094341758134154827089706511800377908717110073385570926633699409311536106525405723104653049144770967257575514574901496167242772786299728620438272018576151867949901058619467482594653320230679613711988757564680421848457683832310602500916846369830567862066828107570063577149814887300338025190372424381581320875088606245724606215897918769041118895823143079989399833615874359564758851101049056440089759775919126951165531734936522290705835033677262187155413035030864725496831349383244206893404713761882391904967212414366507586024906578865223760208139823268583250838372435984216257668717442888624310616561714886419017812058511121034210189256739685395180244385810290513931005309287349063901542301406100460977120860337676699398541050696198244991267482197090036979875465407634340740023862777677179813458807447490747005620014560438283933359479497571632174031793829803138318798566415236069066778093984169193904171689583700661023457562207565659251285494572025515291705471530720975525685516346979425377112798166590836682863169000563453178329148511637746702143229076296986625262532900309996949993806814180359968712656687077048002122226050500765204188055418541839739123201558650169572457664819355198341651343501153989705904482550706143147713992729275560169995350577854729776995742564093279208946805269443644647809555639081426451076866245451810879984833837766041058135243839158496421235408165558211474845635630116113651450261670079738759781726788285294896911880598354803682329489154781014408152458605999742547379396780391432208736013955491414159513323322956026182582325485427939336834462716144640029728438956376509675178916234003351888888461285982657813530607592947597112802539896051996988457362508873661390968813562868615856834267077234980562784277499214715297025175444316167852179347083679018467039369898320570007314130362575897471367363340061766132019239957608479592106867113494320225354998546389848355822977596151905897167421298340693720152543438925769444581053926620118741871785769693275197606118148181457730493955590401560241966213102213442027430990037588315416680580185390688717133366955748262573827806179007242630625333626674076882226430156726273332363653606106626304017200304764590325612669413383336705826887285298723633240930241073502166818853846236519754689053026338584300450658783357924893319804193517154109965911209981824143124353441682639434828092621032201498568975626980971835627880570904813332062994961436995127199154629149435707691361715980215917212371952051306532780911470261462682074802887779195843160937747860227110687123230799282168160863686956402007003548211065436966481052144272397832554633038960604363534233418777482322852803488472699252873965691431233131902932281739313546776778272631387235698809186844566514919557300321578461562575765122026021158935652051594199456692612692636459054986178762976707147973592053461235849025183733818106975988155493056392627896714798932034459940490856675069313710125222657276756713839660198815800919612809771379995351328054590237409658101757733120104792298334520225483349924735199162437372579617895037881846824721013944990399728926062710972777818463566803401056248720277466267133279165037151187694238823069753032932094498680248188695814771618564804387235826196274555602839602753249112986435192576529171160001255974674716294546977415828571431186801898830928645895154232440204425432938280969260559406886387866767064311898892799394308444733536303210433304177353554588072809415037735889771477094295911115253944856113092525465904240649079547379809187215427762889138057320078877983524963693830050239599812068824030501527405044485665557411100328776734802405273234572799339914234618027260123705904912497863016759240445213660808396495508686967571995969640358425022544940781368040938607668132595869368601021159309454010014874565223556342550541243164212796787544064335821026058586475022881970588391714372685112755873761190594317642287705726553013465331236629270780995491396213211803733100570700344018325073973109042638225564421411078224007593687605668542573587684786947562438407951744983173729356556996099007812668128829473815240281173501636524158740361354942225772070987343374913800109704833634397482615681149566580507767069964221320829611446845561911674396852341673978993110615064819553028194854688045064128721642271288453319759971679636018872855019376110073098745609579199511553625064475813999349092319355587283726913577041904299665677278797102937890712646007872585134464343641912466973869986749543348360833861865453335310616839783784084871907034486909904184784060853988329268762209672304246042200773500752641201077856465282748699468139926507773731893206230651285614159706570673589790338865338664643686362382646106231880495177082863983511731530694220666030300584169045691640144835881996799303621832925205490218060483017099557601970224165803359628945968978063157421944779944949579778996932973532908258705091438410403300052352209328167881638344788248529162205648958378735456907296673995480175784900465762743780111179689653123606379229380314989070160144908311688892252383255961181136977725112897611155015216225004362074219830544787680055302246191494179000183776339394335440973806502724988749530032686376074639488487335526605527443892270575132942592577267440545899756247372888825615022509284961592103195615526254271557845196457004452811678872577325642441033524311168062348037953193560284090789656074288513003016903246585566990397797503634454822574477509828418462664089112827875953968818297177622283574660245611396826704805403289231154122388595843770637469223688292072386731976020296821849924800583850395429720924839701318201849481822690750658280623357400984569611100103534397313587011441105694947106678515187625115988907821801896989798964028389230643520383080521718569734698529252266226757516298982733622264385186665829258610284890862687837236098804950656714073560235269454609532097825319140765368287102399869913960096557932943275451907709011256934492754717151286208438487703937131768592083495203615853769444035437529776354971737571982925369301634648682404512825845421312763044636409741305111411512994530060726232617781675097969408140666662665666459387707547777484899027248044909132013953421294633745526769739944236720166156344746941331234073823158619082173970958052904931473609096631502977542347611553560966249278045978624080418417616115273753514294339974312709363863048608906145898030173675482577775776812139257897456595314797073000829156730665557835357586149756170502328123275947157004860165209385932469878847149417566333612381305838663510553130633276273773697300437326351060656071495727007087021366185935356322472036178803891588595417383584586548993691694538988938087552309681583086519803702552094908995940238336552215808680662533958536126391659125129387947184914624423656817649645064119084793455091914251192781416117482051347681451726609345332910850905558514786271226161802740873782514346798907268622620250432761906015584172334191670482030328454048180520602630931381384310792721167543504472944413098715371741788305363410507133944227459790352167628817723408565343149364262638391395336918557229070279193135871045904448692946063889846148437066392475675229095064466816855018256596457507016737051303197970266876191512948365451485940303541702263296655628378227462632541035112992315895735068531499979806242591861360722196919525237663466607766140314563243564372314176695562910107257504205826196125868186577234757366472931735656831651851426457769081383954685342655879571274914054247975871044691972943136200883389031726029477707396535063561861145522737111263589365638927220166551571073993382994146461223346798664505666187518016359257043458026866712173508581582630983563162394479014413254795126386769505134457216274825388513462442057797327179992190790172883661324167138178727609595526638990953144238746729589775027461393236330386103069233359745834039469870925765565154881098678388521851819002125920245367592622733037937587176598438110103528769789393768676993095531075380285326074902697428321795982276002014732419074770529759468981498454369195060563154117343469777682935938959721057373480845999737040492528838535010540369915660288422177621264538427254276730289246259956402378548426024950324319918296519815238536799628079199693017707909144053777630744592217796996667817545679398450329064993909019716713415776702496238424490119911634010386937774601205037948853890629485108677448522862339422046177649873748981007891510207447091704528070620698272471326715633275257141663590260687130153174790866438917355354304865707462342466294273778550930900488392868508365038909458482579643764920165654258607935168317826447054146791127409348848308035566184161202778690622161043576282472413358113213808062153140351148689662680819253500100339956153281714361086993983261812234595135796746346113917576446969451966446941296907885384821927551714650697487428934800124575251058345988097201216187391393459800383954751733947529382159515756482151065839795903581946501114064852307851262555710986891459598440883003769587134593357021995177618016677920388228381602337455488023433644812552135742393853948629860654510845366196356380929267949747351710324780232451022183503250767051076754120169720591438195322333353706861952667347712716495222386882773308973225961282884387054548715704831150281825034864682505052582421337853426294558621452800834099363168489033091316463216255162029775365908056454955255569060728368850978711394124973139541026312015609780957756188273735947606617165375583919048556361443239014513381571719764712034718875721957670556335665682636815467249861613666291650866404585867660799159673784558186062634600737276490781037820459965770118500543761098542273478816006907009252468336313025712553924468810500915670561564057019982307663488574506312515657523881810591647686274383021764969967770416048980345521533299387400037593153927732290893585279723900536827966096043421361357376188776731394309758919528256083862287843309514232391317173431986369783915584226214178275003384927683654130295803432074439506810868349192638219914675989704874165301908040753481567051764155912305575927946151207079783658005608081957731836267635797402369073387367999026132571525061581555467645428926068602885778523815300743118827318748116068675548838510194105263766772127883880754734059377330426331772758118890925941504403463104845093485850520742247829167081960774359944300837980150175009108062318464427002015422250529450977651863746166276035940367001477957042159638501203093502794206750287551557460391902977549804569553149924772875713558456082723269462234313818236566209355469006063160737826808134969094609831796732256303887277668213849457401234124340211345812073060231581502836478960158522697625762058822178656482302017573553277896210667324038813919381485494298915092198395412783963271803399641710759656195100760053215218939703170897863936050568916673164783895180532482340509909904450763150698149635298218621934492723190401145174416551762440629534070618382480897334802237720031937419902826685705565123391265409139961922607971504604639694271122032094310258024976471247139413740059980611683549447803890809468544291040109219148583896377485300333874421860976354480873648400955248996125785973467970341879959036390561648438810289393383716535722580168622894119047849166697566460752163423988961319270961525576483632171495118813051791127218187093948595659590452394686144975287633666910468234309706146697160839072603815414567817317386213514921398547239321958973483636712329889174987459476753316991570108383096346880938880201222680535644520194191989289821985417442731869926261385192915485234549363469627134364586244596974597880206623570572372293379652072831437337712553888874312749792538011217874153112336885089081830373172383385510638022292852642780478417940732375429213590968446034792804926437481115677714191970727818495070763458650528612875877468901909183860170833895457848316960311499073249364116249326264641501261445807810568692327323355206552598177907783116975604637220449689238606122705595773446595733900318863415859731005010299496242735024269857364501007567052176723496979015251645873476490810129984664939771651653199701684970277953641438096198057136181609493619351151066661435450012714936369826202889868195453649674442350954076530492969346683683842573800946304629816816007147724597424302880074197072784741379522143533559559689096350300687085839497385599623698917454531088737212288948033023073651248016418173425429574239977279700075612925496869311548197578409777537512169348555932758930889692846651516339166116888665495819175940825287889538154653576567817474787731237161114830137164424047919973749369539244342569087827431048214669573123572484778033233990454062392603003353972984182587082047898003108518067456492668204244905353241409345444200907968840452277367199296843559656288355401161033212582433326849504603765976852040460540883486073430999790059912466749558546109141171256123298255983220945526523210729807342633571187595165532543396610710981147595680820357003056652628958942961835667156510760756174434769202861853612165353004679938375515383951226711368131673963508582792795916580654770508373940899274693356595299451109048244144041508353582188196752791868788505266896148446497037239632284145402340134226796629989520794560965198664086686862685486876289614102687428988241627545047614866235576542858220805553183670072494332473830964683841982677904824114384514233584960269098312594824792532889402398624881211633206141349370726449965554919527225239515998304547821060069690573679532426973708252623786166474909376073106331996423877905397986742091948972840805923844383099319901914714697543993498713211597401099102001661315661522666258472777487308523381075955393333691813852543989212571483402540300017092507287641117371958707165174016133160612368422375196255388710614731447910143391991101753878359597711523726791490788221968942148451757372950728688724120516290957059041004089652113835709646466049993635324455906715497275192316036452829218109409960333962147491266728064417113826106885345253004550078057185667537513252889951693842601429414006062395806968476382119628334087396335234717201486013809662494953476574381241765574351189276354949499889267299551299109561243063644019609394504925794373449117077956970829933555916514972541036141908687756433129735014172438125416058046747885318611065785737138294778382612426572334100547390611743261576265661629104553111067186957941486352065551227527482309295945328184047080530547530969193861098924069220339550366133987659265821893826505220499848091065256900019300772803329737389893179411200753182328609841897092816807398738995140470504590559576974054427356782784677938299864926014822911844796070615804502060291800774877364870396776249753069360262167457385974769984474661344819623308861430832165467992650160621294897258133620568603859642878283951533136539360818312624742631760496760877192797285129467292802476929675612854163491170978219422717323786260528345517335510074877304234683960094893265134486069643818884368638951973061719425463140618055438211500082475762141257729675068842840474284727312629554061037119146127382124512117677168967187895439973228206300883277404847134892101587810802642347091970383129632097159954948707256904006800495119125470133924495715766759199571109771940193910047427492436701711395186419939620954910057440653814963639960833761974784672708434954099522932576210716261149948929633653815647972028593066674749900912376666338865086532861197446110801652877350458699176908325897189354093239156124268017095833829442609014149313360385850491859303529774206378795842874016257081039887543145597031043819650105023109592232437587396868840792658345449490987236881950710240033854478345280986843438349993288325117881264364847054663843849914097672520560340776370423872235489998002707822261100454587653733993626953229063702498751059190237868665113984362687226685047028582200591064963608556322899916220469349858114790195275572933309444962875196057945641413100616623187105542193717499563730195974593039008428023864712307203824691909642773569013995915779294622847734883838403302475152175303813883966985294595940225710784768645452630336535043579122903483822778813874148711358317593631188223905602310587837591239145974949178325291730736169542131465188891060518513073614935342114516941119486483356756253403987801893512595093153782136744160416454319314104849131614025058538580290595029045112582070802098388300513666975609964041593560075521217570366464179347646856323687695143613443010593396524389250735682929781687599958358790955600941338125287380031758134846243538359378867346605641006836843723488703868090224849454887411447300832172024737630927371089635511913921722837883451318585728198282662206464069649576457286395895651320706219483042756431748877232767133652613685488206070801000708544780718974332716636012564295228598730514476722271627223481468482717607222671345861232759702284649590600652317239549167329729611505427926130462667752042798816755022923685079071359520938535469753601621641939941353781125160263448976895776826292198964474854269621351364910138276480539413651121840918167594628099144858894450360110889577441263022371782481791427069193310411472033734070327693781292600307148714651752949615049967082231287825421088013737954299628178383363015244424585158157616626643423907507601328069494222282775139177741304779163478058264156741615715186638607841493164836642112227652065805956733600097842272207949497962263333083379374584006997714130616290337988408211345811865303082382716288583536326013558061643154395403821331183535632457053091682049648412595903163406430180222581907814624553856506660051174850782689649479393516633891665370885325406309169753942694297180491380987323664472534097837358631063782127071038021943179944024923821554320448998768711186719144187922541021020991803135942057699587609186913434217067978161725259051896024005560237737576597872330921873601063348871745198868211439040802408685191566908528208587039902666453822901370565135749330288425878385310726845392089786638349417630053046026682601098016521744538612691757765900379525716615519979652136163600958306384540334435305135376531889758006971640769589488521161317804228727476006960566443089885285423309874354671285842487035838728172100353893068334314216369602777824389447581330065069150947962690757238379241102828525626552510147135890380481309728367114224375971469994311009913196108574141860668654592129780838319588549123809892476508439603397963111948854441219164526150928393831424448325749397242877723245826413201980334639058030554423470084937366269987611749506150202591168042232181965164395468943030008970309493765428601233248691989997731568995365105150664722878955688910049461347812810416479365912568730446066169783754698079612410444801996461854536131674155832100504809030288045151908211599609278153081634565459064961779537880119052331632555175208336921894297907916040945950160216148560261138050023078328398341864380287546738398282369878957203910679628029719735005523133707912079168490680619785041098642749458854539231627599203626886536925935195988321808224665090248971938385539342479393376123424345025045984030574066991074444942467622129842563942990289889907050369182961574733162166223403286329627570434872775026089840503420341766078843605477877024172266524705123174466638102496328505640559031051980042928333949305550234127265560347920060722464173567305929142328037822837973272001161167141118653700565354078792616314034929720186848232750164394365860194721701130794798528475752655441854825614989601474492512103108275668723069873574027989210140474981013853990179523309657402824326274548863609926639938031652707968081389709234576383021205953513826097093584714082744855004428194015577149608418390701962319093373456987117829583157085575877446254766588447929564147241621191566902035101833283313473850445962116094413990448383772161353832391249176487720338690995724560352724429331879796474960156810920346806264871222378560533855155886296923766699053252134112211318004702974019608407163551391289335482998113266545709208543631792546699440240808977999475523458128335887885068038480396617690173164654868984334356298210712245375844044739084050189251946273847590632505549343931060266984460258327125804176024771526402094398969938795040808575329404841740771667566293735233117409819995525831639547920119813006347208095609295248691376922267984585304835260934870443602104469205552940978988384075409397170943569467145495587453885485973962550395418266559645681589510734915967929790382025491237134108293328826342343728397503119690870341665540254358275354839846457855704403594204331057100631247145915244439925266867328283342978043620489368685585460499712488421640789073248638194944644124025056882536609112059826268342538432940175260806756225414114554784421429110178095491582155108010513806025872306329695171153394275110181927592703214448690598190610681782196073635850325100810397207721683618903518767291698410124626349361544507849537076846349026484311121935762293549077231220218494113692374904681485856444683916802089132909498654386537488548237118414270100262581423784025495882682336448649673396816956519793397188853633678498801808206693413336646166348766162608115555228493298329992082830789827584551668894981645599187543513962703348290739397370763842597188196454992167755825447377873893557031753908454653243008490557873639198877276081638631913163332104727004962446728351603391133612254926694092743303995874157447143624960884656180398058196263699291665847895443929808130095820973532025662231571372210072504968679615776097832840277794618067557358008354799117618952359709842251120115157153341014383647826190797679261879651566987361009531262235897785508618731468365700882644494648852163658484670388168168245090275226751055885043898974349174720753999258843190813355198274262794482157337134708436744461332827150247637204036340063569316819381534065555757622624461689578023344565404881168639667976795002502379356531223239059023772514325781817680251770064069508938233598066436169241744296359733492062704284265693005832677233545010535748663914067424422817146964009813098354784064092664637935925195165130625773357926221216747938230194753171662704646598686434717114028638520653887433780448171152175290020404349634158064814746876493710126771501873234464398091657618403922050063490607351403493003089137732821811151026174852788460051686495666216734836934190451590404809241636328306157605071368582012972392838405384035333431954947744122322313897849715144785606391166094682000533962067812387471632392845960717604117838129792451194602809766690054600660298712620986673404499398327729213652754027997411745920662267085195894892611704218125727867625969495073298941987770429599535470653937662253465319893427482715569222806686970711422179806589261204280993680229140970115130403678834717364721758767952462610943369432845382201238437180200729373072658138668362564981158210033590902196523638783245172982594202829994651474086182659823293584711082689749658322533608074470123516695252234620022152901545068326268356038074296538748712115193387349293071929994006390313059240594809396534732805087006606262909911662844100635161925703004879994112045592277701477412844465368165602247959659141633548124208127798234895653134935942741991844943366891612790898747767130326314368901875723231083419988126997346775386372830153815576069377226875051572806383150825582080998467127026418632585288512827635538216398852323926651507042490607263299613933303512569912988648313392968391825342962338632205529660893455962456380222391767926576442804307942787199973452979095445058588590980958428642099931809462242253479458493604315799703142876025873469321142836138347729571414485126256992640763379614241617897084684899235228722919821328781895241498855357206425434535308410690223486765911215170228560566642838134893514327970837707656397964787830963411016213118585613493088147371119123996746117069358941115541372611542069863007057971266247907432320220117712296220151405517930210604903407449852745537660629547322163685247162493401687209309862284709063619253359712581099014460103240074738183417435197485280314235903429254381191776828181102127175622783572837149045247731082009250346065188741910888964277711636864282235115084416978257985564416491139469609080774587161459533335570636719889801179619894015797474176695959154847082295351970171201288850780650557469860731833612766301695374681983777169199509800779012017518741934456944088281735641294137032154295861062349834891056985369465863436456919765108865356228586494145582835562942888159119891321850753192086505083781623983454931620708215874691898850382245419812611215996601838374152935964767042420801318714006011277458050991159982725591458187710325905037935447377758841355545258186136800516191289149874230549614427288978729260442859996903845697734004301550565474534050656546393840403551172220496084084134706379724176783645978566440837013009349858223518748144330630100075834883387866495236651296761790814426471377900381651068099848700202752632967388473804534542283959793760703566506404838913492973050594583609353098751079696900602466738300991705065917353800053276190216131200121096984460836309945941715258459384044648345599721016488345924492042593525236661833599886525144795632546111774456363635507066624367214275829374320530360253362382991716982557587539027091155249893796685388391811636181071888305704155254747678508171422445036529176234287778388207573290105386443554041347457990336098839354588764653387485454058863768758438693672140330698033486612679631844512547333128654658756522512354459727146764528953530143511551702971580823451144450254236188082358505897395822095870904223708266156633490551495990438766914121884002648647230685422393463055863761227091676736715978325799227690455693675995427863580502683122018957139743038217460489967494535836009836117769037574352091667576631306965583510111100865873642187348238110543604161653979313512669871749960405824839713749775143461771881401041306197462802734904775467286692604228546598032555886990726728372392307726749903427367962471517913258202679177761848061270043452087768576215691358109538351190631041049401538520065378191845347935491091659044338861897744711022887440776300331432493390119112226482038929353900497387196719145623023985641347405061343317147320129353405304044090453040272184381723748021789811795497208542762549087127023978577848383759669765946156787221525821566597822042174227948804274903073550658387123215838964564065501537666298479631637301411671747838953932640223409669091509843283717161031661946612603996171521973326414144413154594187366664258979336439066194908122130347100988012056960803355154408981580801512482648800387185609325084392526746057885972769759537600386519464362543640675480740373506119700781685188700466983596224299625087460295067303811756108355753680200806946142977990019270411431237649809057710014113412056900841675865926161778687271001790724570150040859215755401029373009631263112238530104078733452090269551868694229582648110203260205003074205054795500805590422169904572238479367192929160989493307854594454058546810991377318148196050005925753395731175882374713170272815669996520452673852236937064112560334868850188909314158372217194615124014755381222692522908158701129232346736798376209061637541638888447389498728010968601715192258314421050273981039634451574915791433407262495917377771681382251360952186026854133857004995486964652359345470367986182413093567166267677810944524785954128215810426201717781177129039600366774618902899996453210651778981439760322052812957634034918466661976053029172294340538287932266393766259647915451318968383891303772673424225993350874279618094402287048593114558720799172277409287286581448918847395188739569312822106071178123323816014991364102221385284900418438577641156981506373692794739985815105527799309439779793460050417172583501145198558175145374608796516900253557295921396922134237307751423912389601821903282541409477124835140534379029333066468290961961373446377929776921562983628760286292881725920341675278593736947187215645361130902115459262112449593860712608847573075432297286746267339297762972788261194832699478167231202590774428263315217252740986262793097585909295148199820506283428968905348522765833789002708207324250534437243099106231527389331427248406274202525057593446818052823407726615805790057906717636401795186806478801534711257656111933646672656599664120971828079786327696809760883365837980222862934803282854465711454772214572933969321477490615902098680889268224196361091949746832365675224956733091494605874507980572407289429442212406515998617033759693637230418630180869512505659866994588824743470669520290398258920296128999893894480954412125598112206900732246581174406222617236696769538318104861712785425515902192681864518379556409953558247285425110327034865712014300419918391758008315388472397552990337091536781735889164600012937942172386951557921846263810167330661774610335417998337698826823537856105795041418022119075948173562996180354947766708929724913667077536239308460817001328436767101744005437490425244941682565401132993860092074853764674652581737778342087456606678725872986969602384228670109896541568418064189738178295973438153596128275222550525899209683693335494126009467952677418599408689750522288057704039631403613917618696691880109111874349816007201184685877529516835193137799732352263971741753154429430202886772206648751108954903895783418599450180094183060086780812502016000626994543456338443610331184036008618808462516251326117807796982607753906457161346684220231420491553396897617450057517462133736887443209286751458101811088602719326164301571872479103672637722198087837608677384287601189009071396603527562663577372193848001381274166205494267280754090996625369367816464194075518501354576051826724852409624630887792068867374516649035513152410245871566212125262422068383190302207033812820255886399206585375446727245749609284997712263541003358203528039755015860027249338718851577845024808472646896336044041583325466568045970433841047714796233059099887001694475755769484593309016527374899324644863416517273711182688161659866170201745205956014088520117530032837106121695154430325180772032685659109821279943971049783406966019103343186166010614734360710327177067254959069379263692803878774422529652713235969192634795044691604171129059614290119299927533560529768485357131935739539629088368981213762275396414713083334467590013949745342647488426413729890438697048830595245978820577889125997780555438799366097607562832756093540030872460781004165425607073732722771334747255615438477370292857416915562370878704996350486340927078855740555637600272396797627425896530643872724300697267459039422945527855551984695934996016314558854126920206724553764039229656880273112594243262354378369762319638204678379900022594232773526181738069761632732562649389706113091217173806800933277868784125827888691557386977042180797166667244373741196297023008939834686921889013740561866254605418604660737309813159538092846955270524044424398066152875238476420374855250410602804940222361286996684736716430460450351718198622547084257859445738627224365752222611866124125802589942292414774725717519683190988955592542084086066930302565206394347423627679051311766376143980190510398974099704196040416241618829875537139758146144676133949163482746993810031028494757975991155833215018578427579476480589635295074722748982885281474188190115520753436445791943714964254227609550353631184378302129620311025673543180175250241825029493778612727333746073055862716805510867653652532106280862412570017114565962683086815446575596634844371340898373504824928759596429016560575773937203507610981906723087249412727475338314712251545834659640566598564057061380974967246234040765481563089418425882513654996110472617848197111051170355610131548239765817329967720966552583649380776243891084713045442491784142068907383966829543789188966435542901456503667137314290894741147320256380788135677116710743718545680292042290786800646124266208131736561416934361253007111311565718770011602103966095002606351535017657085610166861094426362947632051895039772607797968346222062407080549802956798831748721033483946475680107465628596222629165667127405822070642534300222990185649826335629383484244302902736936660757752039699580821788498368107414269202645402387993735618706496728286702691686317280073137033888697519346715655842507733531194467527112108201075810597912503089487418783861802629378050905204442742867765791635399900399498838251461061850287981017291172463858231232901721846428073384843472696713727486368088689590447453523505803724460894392723463077702971996937628132470609893992739190941539521446409895281996086185559664057244498149689195124257922947728647350107421525950263590756148103319143890707836583851508094218396962444292895556294850399007338151200500991187316309101138697177434184607378316422262129492515612589557750963193100300034310353350003804132337454899863334543526822768012513349985385107111423280569646686975136863252884332518910833166944967914834782483195995001597330574336703971878978583075226416685729452566931230923919374019009619472928545371091559637445002142241846006711200215545342388291444061249470281281185532058813631535398183965376947133007773711042329606949485016305490342652861497493557744784568535188287965114178313279577967787338199945863310354742973628630984873271417982049229083937561767659517200571551321360878358135700248429585866983964436288961972015793955922678726702339205801670528089766203666010280195870384852952601323121943837733511928289892630976560937256376360652552293997565925153915299495099087694994471507797967729654864767608132609140533557362346939739335551285654494456065000066580494824524267014367584819107761302850283007545365272296711841912377833313646859242841013996352236420502415927140151216187029069255834440549686188082786962813934939045902747566670557892414233114155627733598479606068051684105415358211983789262657498319211108073430156537560994886257013382112628298422142433277937260879567158912059787787849916678139921205297106798251430039649949244451170697601803349760896381633405040146959422495851477684851686103989888329790227792805514093724186643845757921556623908304180395796914265811030500450857275311946831517976468576383072619134224197663523095649344136571743859597936525159533637238999636226207013827768354275860239872538761828538705544217421411324661457352153308698433697066643302716319793672497426402810382911008148155180035680509620323821220451595830573490493901812013680785431907293805080412569581481392229021318530332146329874426630274190695123696610428283359394038618928816095797059695607321517075945693350025938938497368452253778422102622007860669897640640010089994184744372318078499138973123979516145422959695551201563458666644372048034213840477937777269316175838576487587631930546602746541986706061449729335581890834317436382389378189768353119527447266175510422599401973430132663876350667439553984385845155903665543700924070754228328103725081263186041845129816652463330667529463681524350715079726529421651754065490609194116195415271841534481372938644318212257465899829461469143816013564435995148610759078271221900074971244727118010289865735243733651147091878495334976694447982490744118853330490520151556960683455525669441489609318227282268946295696400339255885982581314495143568040962224348250438878497640894611831076651613563237143051750397672000747412634113388920105466292965958715288055074557475036087143582878272619970380656350629062702584582745643188028918775728555899965617168266823173476786054197271871812663008114290886715297754253330082320415015763812072962724036377207704344207314572412350105777495326646435229486596163470400520799048818275415795761026930315426770891375370454176680731234610504770359508766565740032657693519200188416763938879785891682124180342841745306697290356539988339568043759170375875580922742524425050867539400011809502760522555494077716471346919192858791252586697254671387782172883732249326872279590108937752479366475450046243086098256284757131715732141414852306586125330492930124753475090253229577986019936179279278812602060154904874284054008591415572370404397237630849758330301651354138039153093073580420971014947331058535825777300595962417016450229852738262156699783871571186168757828825419478059636695345922930187611772792992598013980637602625646610384367766360065629509749901002102461472674814532663778032146054159716446983282394857575112378764825147567716821906876776452746142332298918862956237331354639316716779318499007656221580515306408743780223270093331284078895155917444553103814965997765420030768650480619488556786476765863409286533364193042311398104115644736771870658427669493972899975544215499481622399543671503012526725658662054339673353825057069412944996754710871030918496307132487812510016833826903021960137060093985212787070881069267551665402591872888372938294917864226372119478325311726947382055027149133446699712491799662201444839920462232993991242214071472863781565917526840825306574669240553141350881554514776761019066762930432069977229961295205998450450725565866177151290389133837529138549470494451576692723446007429597128538963711200297140866735206593526916857879891803738117718337301503404943837989464066879844592255382380428801784394946588208370732849764436427821261453538880242701596922140572847781540192966041713629027681223801876830972396265720239764146839435157123126928670618357719741461673046653122983315230885871708084790166257860040366995410755168781319387288436197062664518536914635797010125448356937761055254054076933375697290360335278232905711763371423105819786049081065839030379906359022888986048972991170232495690050721802675822856335221715434653919473358683158090635155106910686697103895410819531478573761742641493030112565894619221433677486908907099595730433477655519903029193148559225260109790156427182280805431814516976579341006183043328977940711154698107040996368478875320853188798534235746991365475005957429470266456057454371478161304872762009865063902164944920388758441765322263955207388682090369810739463617309382749061388768040012354374229336916883316319508738112469288519901172983133445656104436591219112377496533033426721248117548116298626892855756242889501776587117151735112514164570549813632771872716058720066350760418962317651747000366678116713207861399280657162330228328817870707826298528116207373227327517768345553361754436194387208250603758902117901649478573298373914901770441926580062833078785232544960815093234517469443150460154847228475138329962193452125287949664632479058118758937820121880390182186157766007947270470314131353971819558591273004895829719739933693144242094860722302535697632401762690384759848448331413359162919808015479934174616156973884092999330857328561161621889265383479336272974484418379524187060900426524813098174704113380858139011644853631542558836846664243841764654457252089760915800637204384824228830471025649702141910677745704602502573369264900057866258775568024967186415466046932457136072013830553365879365503962160967714348137024223297359085561954610932402326227534489168826695438110222568099532127881676579668740917425170536485080745698565792202741818978115977828614621761736936463810312598263107671486032322745639448797964886705916715484015468270546323316885266637541414288818020875072209852040894670872867775493471625297685687056766800824919664707531054507909719986567272232623782127341441354896471086566346183523333822301568150378464913343594521091561243486097786049573102847605702364621475654906434372231381319013750573655891878902058386450476728486458395148317073372258583034430971961615634807770724903496274059292191994944701566913366343056202547548755868656551997183844572379347455502049178359272513872199608042048492354203541783450415136063680748244655798062464231497981998518576331814696741447738980691510001552574143541839189112094512928362872020069918645397938242455977057334675469410032206709508893684016211481356944608442355206548832371574125365559669034068817450584881071376458377580368043017117177239585583491597987753060627500641019849229310407355590652271679360290312987791072204844522276470658212559342780152872216929897829980859631389278659701254655939175667352381614636676985602462336304469884658890220688364510074643520664283089345340948841596656839596891882081732006809259350482057801423405855531808956024186957971230185090329606303065411958640816507042720257546163912248126698660346670533004323931820286514084309551761963653796383145612575343112774477023796449300277936688164907068844590596085196858503727152021135679458331864423954691226801358580308854495150220898511494119807871580506976718818533734152480031965410881964984302433533638240556055024041826088062062764288653286607438197302134884079920789662773418035922283409509604379589363202526910314787617152273046315092893817063640871229268952312717813342711346914392775297481498615342696516421933293425089204277481596343890298800646536318533785959711637933007963618681215235876612952636737942205908005891050686380411118900991273914861391472335858215458791647940518466772062761310651117425878901082777657783017209512388794726195639893858606404328579849264488253221683470278822379703832398843314335142283370108585194926626688471424048678050427971944950539879510374855839635783922536980177562728661593076330214693712972079402732554298708854565759514765486859135145589146657780791627691406491742191169886079354093574199144218233200135937569888093556882511336892219280295922790531205648149260373367834596034888291882085222783872302090669358913881568642157684945981154359556229613660716526099395333898330621435454439382628145265578164263424715496930538152201237586028465781290489270170875916691110757724191852842028604937783702646480514217892318605728243356980142972593914521055210636804830546809111595653779600038922219167961746104057573135794098001310183320700433935367935589373172950852424359625895274045309476399279457437921942706978230811182269545448634090564964433565110343627085990397791799690248977718483635608355721815966787555599709020662905862865990949413149342615313190902129981561831623131987765833326901014426557301680242224901289209622863096221538805073188955536301155044070590727095407391710069983460778949999178523795156006601879888508994543138339423416622904919022343364358999201685143952639477268874477144750346932483442492660554741730390176440176082524008428966336440756662607711468905331406586925881322697988261974027721428423815433258693524259466984694280928448202215950548170255676563073497727654084621600154652196885658036769058581471828523347988055996881243515180399024030319841804685712322412506714185416229459960247970182092722410310474825845310444040566301097740964113361369547198152511908099363661803072687904673694736245082201413421188448212598137039956421609315956871689536643718602135435222272295006668799719958888758008946718715880991196988858512788961846731179460352578142229638732741193312983501805404110470693834565684104330588480882778079787296870396533699739280447119525366623021604423287064462179513918916459826927216118982507701290097617362852013275798238431844655937809455450269543945140892529709938977208859812553018590102580662833877014839497570731622391976473572499693147680969504689692644433849462486721486306754853669305059332952632061726410271982266375653558927106276015166142484986278086821185062152847626951270601921659788764855121576978099961198975889121016710936486300680932996928713708292579498118581644503048369927179309861284887986333351881876106791089391722714058785760431863453892301529819097308383556474524302247586684087979470069041726131474524453761881355875590523638810063274908514248813909129968904512948923639278639877197520219349753126050073308413336556007975643521017801723434753732234639230358724763986360640912953478689903763695171890865126759484162410399203714715340098715159537341191976612503668671325818793506526632956343574547578503015275460356566109585009277058821047502327574909765980090068778007833309425779553522726173531081304573787899792115227893791350559898946591242964698037957065435192209655418470837515164047247002739408946291515941467115108880651906522586574232242202719538737865230572614925047727142264704842551317928293938553643067383334931681658076293852506959949312156217251519819226312536849228061792339743577442752963627799630303699394302337660765891590519756102298764342999884720511350210748078071745071909976111344878333668514527904715454340317127691157708789358092639812760798457697186636755377622434782005099505725254794970163244861987010222075841410966614219881999346104918258591305831483577069539634407430807153627734990298728102926237698964571496942173305053332843026073889508507294501865301574980339341777739958510302077983766362304989705281792138201308126609581798226788222285532322493371124230888827552743786766424518343698286402179346363449924906338142891285545226419620525044246721157150924537004583951374405239540021527057581442034251963569236690912790913064165194421019103189667456489870936081847784694455478724513972665097000029265337466272905198957880732508980368449344388499663551141785467723975942975238231992610550986874803244434770351198582347187558904064184150035208590569667365638929597681466175525191129341493980523140990645504140033276676230298620476461330930927748478053377558264050176862859237009459763202052862822624387531452878490261989635451111916981288297813761478946316831359707489650455475105326806294850175528338384072863790299647892795293247388974020270617691912792210383027844800088153990062334145931205142931151639400438934645466254781291657913548879914976416299809914675842628098641507898988477192776830845277704123260102229382719015509709486131362493171539223768547564992561759040160163629772237118888989398412712587497061600768444926795971462207815006611613976861837615604898828514059734762128469575462783045440678518124842036676439329010662635028127675614620035306757253299172534946183495134244666325864671904744451260259925545638348808984405660833756859121692781028611942547251960187203692332021090623317021555022670823597170618346567193306919994643989646486796078215793791107561285461623946877291191623331962201004043058897049903670510363041010957800943764337387438502637628884885360517027389477983236102097805130265979148425839069941260388595477241993255008870380342333583981528150474022276493440055416218906462178523134675131528363005335623039176849497393558627533874354016867767940268098391337775601896772427554218968942814227382316886537408407527679137166694578296905315232021836011117572043704507221426892537128632235855950104829833234447419680625139198183341452898509303521065248489413812075023827890967669487487432814274706398416837261654638480352744038395301476097356738899546632549259078628818001017636108212676348647084705060390115598165383413093792740726889283617267962689925705334987312537242162003146876378044889383087879742917012826830830925171551780628164996011591535754007983709088978335496968821229058383089735651301083369146570912136555185654535168551432170310142576867285312794992200768559333396839986050136189105597963843155520713140608727045896574288944189863545657642612399188308094955774241786262894621653299859730648792633595269708891981697458219509996876427600653500351240029320432927402914984910643331746417121986902686499124796589064220485393738729749466632935945905029031876735929638316573327420406313818021257562470106518643722273656637821223339974375458065316148317510730075643108570398633839735127998212569116886488344666157860726791361870045649506773007128482931593456617621938799000523248354170072922088826733503916727385827009545365637316620551725452183975265446914550964095941359686330700017204156290090769170953228567821945435060198507358952720672092905721927968564409863719478477991688599626005618834262877104674848888147736878920488081253437541169700240512987077755536100242424059598324393116588752379912714968699994345891360316160404383743659424948512052640170673874240260722708977224483614126676428649880453397706484541677223177894557964759932492095339504428124192105653195145172277892203202813174657004818717947721289387774343105439655500217801517441405060181475022703811082093596892264899028993213130514175976579860924614567662216893320845750188506849310593255393922664586158807338627061818464870177453767903782024483535717268029826313533107333821146847135373906503877567572384928471797495255422258531976022961558825499519370069017735227386050714161551891568020428137059469278958838901460745252211370241516061302815465235002816500336373786170004120488981463610685140624548196993687710965200769550735317431994708929168678017306777707963382696308255225495153189415661039876601231459197057454515564263699096787711339082983044119444184434311206658340608494877463773551424098124556160364444276707496501699646381483590921934269703172617657988282425999246196480032598385572100555166757915114231278357228759433529817748684418935850970597556922903281399143756689141147215110221584574007050178735116034715320164364301535240389743558268611354310486140464883241381733150614167378296054555063298676492100531706463306093382046791691809938802041210348969030705692259627793096988655169034484501973877667955940854107191020004180251633971018382715761527885626942264785613290638328868700921632590790619009568557970661570826761263955206766138783516581388831192711084512948327768117961150381681035790131121003286425440096523934464689366996942386858346406637573001443307403912800574918625852859640813813662160442327630724068289037696820952858732577758497427872554645884679362951292510926117081948564300643446262070379141618703868581971228003338535895260077721961945470060248441356972529378941273014862776884863761012871194814483558117512178907786810752099831717528194651250117887771270738153320169442541007460653342704821527285384199997284173085269431401007881668048224849220559789743250931990880056901572427660037257482364684071290144174083178296398121776126370582567364842639406903169829755518886902145914879948376080264619697055639682535580504284048776361949071501674300830904941449782209450879507690788854496813015643479870005106888475677690588069944586626016530935530757618864201857795742367900232199060866335547837090354535099393415376291571535361845296814261965964222669983081197307789224470631127088527682336368747172580051683334053489806006218128173150785674615446976322552426538007179813922187031511121860250914173092221792916243679937830104012019883938604789032888756620134846439072993368379841578891632990433772521505402686008326090220796324512147058661823092196796762817433027732013900617396586837221878903445725296834790084685587852592988270708326004991141665065794681939745575365105562220848097805619613915674335746676133189321671165390727998938642444664207706913349251758985326654713729286625236513226519585590513031609252004450034884083992643480116220427335909689273761997188285550574741493513348621955663223154726395462311420617243418488242011250144483158284798685023073987379795848557129363432699110676982705438342485132331501033423395436429092372605935026966679176309614966247812536906209812149243637314831084465910011619087719397062898223058743343801720869183482792533510515462904144731477603669369582586740968800438984737341303430946530682127872719424277112487372390959029681298692714568530658197821392134569185492567049263712584655473226709189786782729070230530358269422873370309482472070463075056038898593899207426841927626814118306218905085581035054143632542737856525930395371657024918415376476789206221133856573877472025691129895267497665983048793446858333877706120661983013738129251291347381927033741612709113509904822453445544953458395694152428500755398325881556177055683461179005977559539607665577075907043304269655172013072673666354927829894838645969816918497776329622207053808518949722129415370553836083284844219009872702772934909855224231671056686163097884584726542672759314408123655872591126790627292394405477199585086338614514396480649263991701977576843101515667978946116959454978127599511209719793999239792692392407888015591972731768919313110823199724112903574695117686264465762243248212486254733170963025271089556440173998157801632143617271438540791643940681572606609903018154401025563558419000903791640776818984104064337564016777960084783304345360744841543107279467664686628861809381654084989613250974224628217520820177497391775942655313006797239933526384253742596454660745820354761289388133886103994891566110604386962905901621458435541285703682499406506211556666825518201176255072818732563966835012968215591755321061312905826096528525186795932159308975151617932068882746430486566428771371551766499222765851763107451991072943433224135748847639126622414945386941277200229658795078916466805620529838193223694756183421519024069218765349945860250951162219172492155165795654563132645178049145534769923074111861025702767458275061546547340320779174708495550775322027000557514602070136074130453621641997368394142814914196053608228019540879305069383905034963768207066738338058185844066054050734791238284891380324953127197473473986100880748955142921807259666505274690321664824028857055952673288641605545595350864306089206808185193555790317783469382890760031688775141563956117773292324702672802154330469949181682171302085902768868256744069453196449655665553500752517637355992940156021866029540443636031758408185744071847183243692437880981568534906691560089322386553334575137106802961855474989360601337595543228928845684410622201952008046352478178987572092767156141013714403069839487777467173705846522871530293603515573102912253753996013751604201701950164936347524085018154949251100531323973754434351603990761324389750215200431637146339529572435531299183650023736787292060915348350408482201404274206211712305627179922473036973893301054360267673256499559064739849952827527593062905857667491099633344844841426720183569808652502127570771809857567721195368665989380832983296899196533670773643945212958525690400283758854598299087114676464058540674861514510975516763208323718846052218811910760594722146784322235377948520332271377129647100581999912363161510887509565957334043618654611177611398355370511335539558316847234205461549236952967401888200549639541106072551754216979738860668392669743742621120064014784386212144280582680149649295040272124566281110528476222918017646554203952411610269007430747462561257776812717696425074261801237658017902322267260954322307961237063892619966769684981611986164738296647998262468734341694434599448012687108636337186702755377757463426978755946869422833211545275831636878307120435717345702485519471250238623337844146865933965725196484541266497049693405862319227479946781366610536261372652574408241986847259834707150867789034821849364068578089937775537339011814859304005062372025878399021162554606781653015223741741753996083265717905853306489060714463242245645804933705634124279587080016548144146098464286410844348586042632420787304804071523410055083380671774626198709507746095299730628148410375978525437369530901889844046362510322484419955546997170391176973264385937008631246415457772652042025576344855290612153861207140454826852264613706964770783550899063470429167710788461237117689643859732310052293230635484025399075792628150996323522241566951120575154591354989438531760192579410380031043513352719011887343600099486159085607062071442469989182618576166967470751504468945509838401434847677924618800865187332359780987797749636972467203878625311488097482521887963110700287758038981008520317586049665233861807314772893366976796223869299235710105299336223684097421159616938779604576873253839285471271099770621758840189657171588422252003945394137020876207516205563941352657350089953918842861435211744180161462783815098081878911284630187399829046229124991719221850572201915274824752037927786249856278210865050541072979136805719145891777465647589791950211133975336442649144872060892092554473007388748586755120418460665494630446897671738386318849917435965228340333989659829739372956119689827667696413853315513418713603059479923738204676763611557463598533112095250985478031532104925146434425848716784390643773724345110038595540617489331572073399602121915863058519807425922209596068981829611976522860408951724999220265373932727292908491948577082445576351944470839134044995983105593088276291478534096874175810740881703268981099126577563333757247301871986740582637291145617707495798960859211881461419026628617270997614350273054202217114850968243879680655093857837759188798660629051166114976717999026069547756946996246290707594910860946363129273308361839163175927573791642049300985232821715611798413230803966110552315272758403374256968516833761778798249552612969158481855209563190508385230679558812829983669332052225477327791662151052169749679916579325410568627344753473115814058061993214395370744148585213845326103225103845428589954101741564675587944581029134970109537911951337203912478957649776658576047825455795651287454665299334557837297197413340146437664114822020580183186512739943160052500734429261529339058621196254039740778844849224496675493860608613715233425039136883683576482129851576865629165881180739024456011723109440669828854397514660566003306429308402647922925832554121653645196621419018396024501240552276688844551966811084151809627013380151239455058848850730843694495086296817090718162909240075475688831412442363253759917929971617038438249468077781847318370940426825271842153237191745695654203604103203001643352212927190776944263850586772975054178594591332377951948222580378408833882891662835826065966768575272988731332690265755673459115198295509998256148853856326295827491517847076817055986446115416942992304211869793455771925325586320609514388994328783465756516046621742350235842791059716693398633525128027779499544087543056988686073663352419911032757170071228712262958752555581624742851701610465979021051523090007059161296123793479547008594609849794960627879325203579340443621035562298420497685439863671224458962664128242323837086841699609285710379436312849848700767664429518108791279917748412006157901205564631325216218476245047126865424919287765622322128869898616861388150810611185108781396863264969694234060686447056015270547607689381579797151119170445790171119715475725874308461389401018381104327254269265774429132969208605649556492754408035592855245818418839918256973857688176928086443340774314101657084456649595325005186837456418705435508493424798259314759422726738155494539235602679343443476060539944759995750589568947436630075767632198869730597062433525274444499426689360917159394539874954430702586407935044408688999493718969290151897090706303294347852688750508041523639338099133789892188824338808644477466889538162640985054665748993751548095718824354783495407951934009900401162614896042437448660285365417422948495995886708554566092369621384426051651563534863303704519240241850450393056170988387442996229219926658428819761438327250322588347562379871573411390673277588990517258347143687121295445764808282691713222457110810873342553868887914000390890628386020918541784579730778700997664542273212166174028545342859817526943928827153744470193531119996545891096308620649075037521380117174999099992052652222192792178471019872057004496324202883021263056128908047186807327452399111806973169872218706269293543025035830004168652266807214715857504703757507179881654852315102276960470721503550886319912514369657217163049239814970486220361184668578965097062871247965567132395314648539169902175141940513104032083088970539567108960009011587215240416557041340905823709742020023477304381693413480861608669010179476946084975033544310387617178659335627707320553607763155846667871197010022391629627594177559441007576248073238086397739852369617835771627105297779034676630634779052148654539500968360991035788369953735655457340095938534084278622781257355797306375279859805219451074221422490213646639034879259248567889438937233053859867581115450518985140510131907697942861207538403030220225998072405617576719727299377955280422240358473050490294204374041511040339000984655597371306308313366663316268653149967468105075896397079631907748083122880576101043536736641607011405551286517894292165010799131143103760811888320055075820042552839321206779665052077592181276447241080557188946925742093844484818780213433638012510325367695502145247769562700318836331766732560991092492419206655397034772647125191548755380792569984082093518747388225792873556240970350264270075772971789509522777199232594598585114034837390783283684611671126420393434845783226361980967205070943248892130971175324688835189472967419329295877332029001545063041662106807957068410747407681750129880963122176197578557682114811203220885637749055136194472553011146405811763528589055732384960912794771741208392316062826566437101252741476937290928947973708263270126742086572183579069852934075982143029273931392474879983375932078959972632257072426010755879377167043212632614259239051505763026249070033245596278122187521677496882939222064262989977231439565540027971157996851215964249537070685019162636692739590251379571461721523824917138540548351932277880342325850735820603386968204927668335843306284143829836227164612790635263583417673289487777268986227836560413180071890746601958842255229154974914783544046011300946374551188980510103426412752483533431471373344015773333870885777995140017502058648789861238781761165744959173721247277023912307842202264943705412986663324469388854456040516240356479134124067678937581103577065304802218820749393484217011966474819104265569783999293638148815834929186165677626003074134818015813243503430360778161635544606255331052864524893821737441859893274014662798713469021476491347833523631332154707335831838460172548144223089630791356142952291217688495829086436370863802911097032130455896559569853439436638364977639010745905991968748228073556551943557714832832514326318336429410598306233119984590965944745727807548871986335342794481342563720763244469361439126954141984943132260999922938421100138134682174385931996873586072987982913075520815215148474382418920227709812095701718130483410070093639257547140946386189882516984251513844405155893578111302035369434028648121011732296274491371198712294832732982425137846306808446537184923515425770918472457160753396822215065105875982646987539907710983707632357192509787416994163302430177379534696699905704797088864621688351841147320487002774962649236507942024863626458994637330512494836896346195965615999493958612494850536322025681494412056083444419308249488122475662984929029257897415593748180283126224279397109971271330916473752720157391368541536720838427856345775335511967353573844682160910199025482668023509479218224722032914343156759291717162712322426072896747833985078470005817861980452027286159342577252868250060065564408756475679468589607584844979774216428188552848281978225572851806198353639463464363716240513276802292130412386221473012941548515688925240652460184590001754643146508271219143467591493551696990430455788938810167266529597542368834647227688910453077247266061999009739185824067346450581131765255164966689700754437100830636589197513343364011402800477842915143209864651916745475069781416759037520809647068694834468561107616464546756943793734618812969772351825521397362422526635625538503576846095844842713822857979700592499775947829651978048578426900007097095771533644514226052373483998029346311137246403247992559590778168975289117197160486954479971605870872252018593293726937530678549128882284282087914950904254432938606360725703092695391006311596716433017943104251087591213560852913829242680922904334497138040665417356938024014378568308525657306508609122256686019789360844684950749301305935154629925634434727205448007040713635504224551970534575143542984863778406941424653745792613417175052511805598098405061473685539857245432456135022455376691941150562585157386996679123681027944942274047705245920516277561437312756745627135909801610906301771424510327672200134384208157976794242779078190991204786948071486296056464536224612484910616491809948225795846442338987499584939459837422971237462879867309044213182142957079937757800339448541338879253777439310718650532716000648760305097179888008208550258052976079307767024288960936777476798843181088240610065035622465531723064509391955962312346247773600208604020044979065509762509104897129068722906295109309689179609216170371377227191491962461054992730514388140538325303192044054501850798259913441056285219791765925708710023383545196892977422640111617856241783660129742535662394173128410750232359853693382760454216368608633120645187762084296343688882295505161758277895136909324490999704571733178009116524472147939622449211388796139536645330900932451272830661802785567805515131771583356701557452190097331399423885953462456058759051983888614884199669086464407833261033231811268935023381722140010616601371659749501737916528749906420534463319337263388805676690995210992048405324832511236495999235489060429762790801971638454415849154070530980161924288260942670513419703978390463833794874379812864337570809938231498323343063736890588734304198747155728344344841480684581257254575071147670265397441843158421088095108992102085323021984185411720928490923635806958575400059788119269007975688910731252832642926839698655056496309932836686716015868680597545084164516283994519465392244411079323459511950925021318217197603660613040276697578007185681148304565618694197207054028888988485204881506843148995616506216478550865520354678830355656085726908868837285082566462884030805028772359969918971047249873378745937685955017707827243868429371855914393870927067812514840403374231598606029496462302504999949400699598457214356937466084030703177296419301835305472192112823206578138928830382192072675849443191758724085623089464621011302985853664556891618805022241252264072088868014100860878257801202122396634258121431855585693324797758668524624148367188473791369480409840389925809982116979276969755777623973271976100103584140558181146399153474682709382721671743266630743226846254971962045454038505051096175030583735685325261235169435268356137407720040064593703196629826040351803404000537394830963431992985523028181928705599204588847423657189405965206695126665029758037686415459388413269720202862738309429134413150242392701023384788910620013616921271803829105693882558823299452808312681098087172855506628121831927214270451032550207912549237069568774892690681983807504689543986270194684882220065562904340025245661779553072507389058724309591588973720311867784484813546795363198243059731717309453449852351261419876903971753542139121684690374766761618820107657536624174860188446554540429518134208730312340284267808630753112080138522119866794880022608255631565360586863545714979185441103152891273806674896646277190576155485632215826749148090101770884972603504389274907764221905420183649842070374620714487005593490363093449997237343925501323641891074502719713914792574129706080462566623051223795614957581506745695479591647431003931138126599650901319967677820653677885914503622993666407230218315397000747925377802608368762595718794301016039402128824468593280123601620760470758878913030939844951365747818727803554793914676619028947949226350235787005107602890742577426121117526971654809942497830319743372408798400452301749079251435622410929881298289205032634039138794719896054581165161555856421239745147458439413956337981240821287723493014629002142647308569092679496848694256011101469794906588944105953294182656121044910878672655625882570963541741299956190084550861603678820308941039754067126047099611309640567720652760393692368420228104608921356342542123023989539794892796026501914799315326156832172519424358918518456062247116536134580332719424726468228491617802410725713218959825985443868494539568189603165715331872003041315280803270608509554205035267744648467914092274463577390286740595364826455174213285557254563621132132089220093072515182615262582715493246311097854161945365791805916455695703762946172412507303261002296909572343019893657713279258702888396898619219515643450635119685948849625881241621436524843854217763880445619141112576528072785086716425065463379447188205764435428118674201352276189500923976254223860658641871717970886224290537548756892192218659485015958666011685682301480239998795116761046816757955702968673596110076438932410180263285377729202357138243804168256447981189758851276349943702490891002307497913173472975690674611347016397428492458067363289045576790877694336881154057209208505061202249482661809510977525697029113512776240109366963408310241231768618591686968335695841039541983307530977137913106412356894793508068965803485504474134013449053106084578721719134762862564025365686818265555270550076450659759131273583350397386406809068721533005446808314314156396429779187807309480083719775313867331105391166631945834205654753959861515950054822553103915148214727302070507456176147362916727936877780451574661925452829949656674544397087113115860197805262150078337663656387242502724644719288703572734498543500621200114016269597668135255237245306535933682997282879169053883053240607157061346419423927048386656712281603073535336710485992997415991117782514377414853956651038566155582103576265213174675252478129316600313056471973875741729198497538529494407338168033129705319509698488472331215726854558524380946687452298202185736079233025440027110029559631109500797367561830892583743086918903243657414665675683840459668352487746251307570390112461953453217145152210701076929576155234770872859891561093827741624896178409778163797787498642610601656560443049662745684822688505573025736378300550548404933262025112352149468455347373296748296131896925716707348957361328752000082270895718210894246569969773456453186315018065614305686994600251900377424011664730076275494305207756309658232178768660678845276513879134885884607668063695615920669726612693171471688190226770664940402836625519934635225380991832218804078816441388986114567491403344200756287204484072811194566710377529857038244994730216680382539432330520547516388669753398799431570219471531067264679971081279448722270070200972876696235226208194458959715488022573587391365999002631615798581005012529033649595604756562145164908276626953804528498921441291200644653342825618511541488031125582347215771021482411342778565658911796970956858643600157383622132881191361827656300134056480853598420874655771650830867255707539164365894195301353681541464233129048908495953664237496054851813487637316651318411999140983540402208493107881781351097478263344096674385340604725889157690763254508630455930886065878168494126755397646680700118476199891883609439084117850726278799783441511734756088139686141751417911761794794947481687162613268129239392126714381880675418451658348738401656676237281899298390884000282608909024811582455948844222634541947418822121464519461552451514368971677688795732548523875915040402914348576018976296244083870860498579773806622843541700828697599515474821211936342762045887947699236356736187685230149277983870435729392169832379727707305409591468319144059343111545383111429086493113604664328783007211789293044362612419941782010457662311007033520360451694403285628084501683328156652888665347445475971686614057726815618680010546895894591577180879627196015907411206844549181430437577439119858500939747763669881515727893590377655776457250219168374102445072607843043399910974421901651542935642592184212818202671733481839995605132081550689479776206112104639336678885415036902438266846306925494727602893389951365709767055959907665285095431523318402846570187824815309486479283057997247225290192356744823472273852233310405340276848747241802093579878920387392227576558116888824073199441873964581196957359436903977836438339053466780504364006216234920806090190509748316328242864901888387503544251736550551587369360501395286169040068953856317987508516279643280664476434815003956623747895391324760752731900779858074677368883000942341125941719588325037353771344572053436231697131398937784295065801411642241164917279127905913237587526873740933625331045607983423802741027882618758147528542855521628993948819934871991609030649324691093559248230328661780240027742072607646207241789347598737939059662719253560570590305465819635494405960373318533932751627766977886942445413742896166558583484403959608199844511028407641943672128322725136299033626558064935238132412952792313194231844950837588515670294422402026079843286718077961670370001961611050327677961082623947786995729773966128505951416417385526710386618183447647822114393382635840835974056357548338967394492298450148185020874852023311577974640243953661939136467922440636443459683236603035879162092296120106524464362215644580580186164124827724246565729410717662097803258743477835685402868957250410724975780840913440652663917477155752726697917927222819754512156158390906738356940797634376834181728904436010517404249287363539922166776581593054172136764124845402170643540367843030209994714305422329097297209237787412098743776715045516912850083779570006189986937795537177721281253603173431191946563080883338475419349022773834593267134270455453774854108944632024093278974388470206366108830877378489675218651168124517939066318453094857550184559433127983202259103482347284321367447428389923070685745594729356219679066056029635643817026886846525255181764493484143165272819042659317033714919970341875088468677843868903741839857648076796029017858701987926105230881953583584569450810062282534693325041509192041506894253320259209215815220938023516032361899911159433006264429072722580876917261954511752045763377839388644711142660830884611020250894053550290641378403558790347631401001615505493573905980294327204856115612869173617839977657963120244614859456617700008523235460192299667318097876628258535871319633974779662207471847188068476208877941944726716098098294454774416127858679586112261524521716862401311471611053414776837985838914272031484539778907381534269726631783269457556694337011850913522611677564410835766629383158821586548088794853356839663457684998138162580840722157487414122340983468599827913564083483024549879886322380425700859819328795680766730167133171447485982379109613213567018978283740926267238211872556564476748379441971149736927822198249830529658711286645804206947153695682201112708958413812760203212853278770281914198046609035117750096866680131059083162399599156066829811320441970984904557739103214670370947916245646195175141214705793596589060611943974973758541441500010980380616488215557361973640848115127915627427217543440773217800576699002413638284230355720084343455487109509318761839181569400706997524038330930289866186688311119235382467421846957943662457144266573132767453849444319681679918609579519254306151479310196204346355529131210574777554967178577809749670687136603608887947727906083885138227803112217030524715198539342717446334171372122900595109999510755674375313466146869947604875296539263093005222925275129284967396258615722872742020549691530494243968682524620386735464383213908876801113557807270535672270070388292925084896312158704801224558537746441984574071103883749496349464621493962316068881249277544912867267014485890495998191611502044402952690169971575105026819628198856658255719711463167175356763225811676340741418041826590344452036170691044656779066269596041692695223808968066441246346158951385064608462632738602657520109028919490732138668381906701360571855153803417240296969557648535286145996551825511499238652863220444407593954361971158445571189036241524542381179630500265389886858328464267221748289360525214394328678901009107687305916138037495095285496551368727778614835476665531163012000670632593884912483933647295541802976665898340316602162788375991383348623937267980868481354054021110670487625313296692612424966313232859945442002060481581677731887274118406024723601059043308723198496675550428294690148877288421029198309981425402869381902012324327006984274132461445450566247150775379184044350877951272751708715250855577295830679422883743119126170441763085059677045797658529342418484643434799344294835092724637374050279826332480034941587138473601347390122333587726772982954679559969643829595947168779656603711590520517013809787176141904770725639957506185514054839942420119314604375279391591070941187438463666195827081119181488396492080351468313498077281127670019692597964575150501025077150400897101634612432461710200418855837667755401912775787181533445920885444267251829312936925448157009352665931564537219808739060139570707425962953609314926810089828161365493844447651444487284930823494991652261522393492362971080567646368356528375555286792365441344172732682746895518019828724944808954143394135997159606351858099999429260224972928233647175728985291546252997906846218876623538098874090079302684484793744250642397430546132724158989487533052499271909313164851351588529143674393725665024332187154749866192400408357687119711273828428585330202452449671989758939354964842671446335909839535851730444281108505052429990701845101547958981196230377631088004490068205467513313099356621735050400889597780732483957659922038172823767964692842380622127110531145757143629361714012310885014626383937335512265295548181124246588979182829921824117293856922039270465252057746454971860109570865335922730618734225867867745055248348948930617398677095721627089362042321879717198377022421547490257653118725259848489408791603642160380491141213260075361630933431325668526774491851322776162621763919348028679799636516096635321467381172819310950738079906913215417003182719848875674797488432730750237520784776016194010715438157481421264969298716145350666575840984030979618199729553044171324200205552361881390592966940451898044190716646366633013630523999363450254066448562672257131103738957193114069958891033493240627106303717503165966681297597065234403255613903939643737421234560575991187084612211700084737696375893725259387616812796752257560822867125240427923614065177439144526357076479753699746529903394581761267778364232780426962524493427866705216109451647598751947630958988431433187987895718922191035387622440785499415097119988108180254106453847197757595197112909061000115072642864578715244615014465592689690713552504467901313874045399063962905551104455325527269619710065181360171450019646707846078847712391022732606084603611354895506845775740201210629511706514440254747164815962178745060601590751045282477101328205598410640478414027935861078972577517832905365012574564090595565868032993434281313674040263099376254873704571057660833597494684987291090581982137954171994786422454911586242487163919819427359338719388995603661935915736267954906892993817575593892383394678911907642602137705765686206085731842483716860037301866621601031802413843389181663490194304903788723784433914985108423157280760727084221966499457178272816050075613611547288209013091317793289125108185914456645701872128383736274513621967363406752978491841484094325325643461834076338482255662557750300107471119538502761634662873937221593436478840104118377722569034044807784790984914468947900896620735604620129624583036761986970963576547905242976574239158103553280193224094265010473145898377342284212075878601622604784097927435759696739351357112989861930153374203553541776765350987933882228184888136920372410082965353238980313019133216960704539931901203135065362704150457785140056327253443977336330700672253084909958887994858471004654542399366379765955266496376145868285840743369894561679553574550436779365955747979482348165797347013135411904904688171325892133681769609174646634752261443428264367431483050188648523095343060871056933247079338401993252960958086938166953919051901891502735331343152875830898745236990020937445668168719507210221530611011255492538395709512692463197853856079417646585181645772063911122792789097979952771053341179532539224424674915775662030231534402901926762621300236399390399888969600412356894101716228899700556950606784529068722217821739820152244527686047005626967965493447860879545401028124717762279455332076596649573737627550867490746146770560171007336546603954282620176525081985224513086808535526203700607399636728162644594939887663584697906187755267232396378801998552305851119667291723156471283150006631051632262531401211908191399485622810030053124204144330076249837899571345695166535943648807050193744864727455405178821472008284249308276314464034105068460451220110415537695292731728075846324392358876140274044658571198406029737755257443101220242800128688999339242649323017500281287541535573696288021899042817075381453520753317889165488407618072845516389609124171595091961209425517726722249168519376677659163310959490686264940540957235826488464790699781243442698182146226686276210019345719858113260124681366041316301230493874852037691907702383901643056266722718113589699996031980363750861509896564341033622368814483465759532705348161232398380678207183789079917963973223868706289393937001134174571554995759354564059746445201174520483729450363763766252513216816721713338285255985380536871441061297534000920770525920782563478295524907236996368406239529186634837726817678555828266743882162484115311840854901960895550538932374776983192450059878403601543931454582910203502633239912766008378951945697380885876905089623672083124976590787576575542242080042110272609669749685673034807538095522408612417209743600025671163209604829024152948344430195265177331836023318522300931544572903343531776693519572843359977639039215998639786401603682762943548334884420193463884310477945072198946740854741656384933776972633177792495646683582654853608779153106801022653051859731545270960838154762076585890160661185766512906984499306274979707283982286776229076899372068653424860547298330602504631830699139798157691163878056002461527602978249392649849931313870733505949576927768912368403662973813751774426179046992549114739632501129631675653096472720080953039616220099827320189341134830844432740375616115141558782445729209028476184630974372262476497527457226523878808529285142065080655000115143874170250999857102230774695050241117959671369944556908893576242701617536363465906449534284452859392931633193651825536951012853384010048149866863718083385397678792082383626821848198059004596409042211460365734815520586729112554380356556969686251827156315719494536238287433416116690313303876540518935458359901170749918812952716061511784039524083780873434855257177365237116205223130615207508869974717487093515385733860472118300599405969310714288270254821717030522574926965728998075123564793002581262663557457870388629532397400132616190079370725198713924211622834992433925298925420689150844626178520629871161673144296325244450033595530199554893354575528597826929156265236872862208029869945727944784642644264684083148131395111828269582835404805113772502281854895467757203534308550621433040085882032628091138773946788812361541503620479564058609249877732559456180255681741458746859897379426106810974792746177374445917445189248400846599656744667779175881707874846285452978603763618053585334486627960618183199803860229403954190517940259936181517521500134670388753952586062242312205657324182422368533230481985401183611000526285736514418264800724830913165731015695021479457058876484271716180593231721799678899340008916365650594397199965802587643981755821567215990814179354086727963754095851896494291828866680546963076324313402702701620799704849467301116021512019024184424197024158575527967108612253078614276029725451408025550042230903737101865529392516533833097079411130423605128814673291767477211810637315634438444521079528328413445600794215062155050111684814092551985387587366705849276096000929442166919245840595355272697685033313060615516794332180960610324804411258980169741218807385644275650995575667512611263797324847268357043737349713028853296112833779603008463040641537863151153033227094495602065430862452146531754455581886557824738786153771607209853114236533369330341173559009758233479947869330263867015234342556779528764551272783446714771194142939799761505229956353119651898883211374495426741988032317222782278150578712117020742301930368090357822929702283499658587272723548006240252051006930167049434905804441742792938060427542306688989151847074154702052980371293394367164746184724127500979505552513890866002195396779255503183286844840822663440498639699508518619373500592748251363644281421756518735471894945117854404973996007596873568357095257242360714244313411183117502026387006752647222309614049939456877557358875328050519754775121978435881165379655533394229113528832026942695992487498246178127469869819948456165484908713823238066321503190575222652172723032132575113248679690023329316071875823030118841219932129360176735921456380278710348326670688542383004304866892726449519094622497900994088698626539085693694613593598885333542792551511572889928453942637120560862545077220098319442025077570004222593348867041610594291681160856653206900238457079627139718433834828518316092033389850010799043390619049523902802763966772938407435848884460836228385590453382638571250985943038453960929110338675071650958943832532747469547311742599072150440984270257833652369676741010961319722032306176870068648827459917615587829795134692191871365503675339026517966817621515097832512835903815673969051721282883662769933124673753067870477592511133612176874244029806966998376732567930081727582090767663195803224306901790841143407024057255341388192093239814873786593442355702794919814314402016712874821322798492146522355486221351119255601172572275134152107477989862421084333096798726752238342881287327417419343260408669045005661996000975050590620618157251694867879732364404252035983538907184248722878539561369139575651844161802225692305858399506806852446253502036804451777821106898988499847749252427765220776531583896098070286391948098493888261924249464078265082242513392707603169486484209673902947593213203017282244214235072021916608837985348094660412510276653997233893524174607333364785377566908137056752451810656252833049554107356593541637715301829074550453270312615814425814628657035248239617773344126432346410227817225339517052169574706484815569262607909664278462193651355110822582094789636179921044894198174869605766411129557773265534157571958259842256422070804941218916418506804345783008819471784252520275944826022156071323234371440205688053917203083517487368873760851964188179114725921806773200518509789455479836944549313909398148128702209065357748550028599428092007154005368292556690910112403704386974208740377312060153954217093520383851978662275387238468675901482943814536860290172744207460182383734345626484882523651270454484171831023909499984203941601464794504729993794331837662502142826010421301079083015719072721389825398266854969347270228914876918986945686735086785654675543219141405474833878016936941747115904445889796262655456508143219881990677903425984831703416705156643831625476267198628565762566908800478378359529073489164661071519174234963031808366826578051089556897292245278719900854462489818765432379580568550847783542564827811719241129663912694841849273288427527631827836602054429584552835089294931480161680396406616179534845761690847531924241606273528596400167375489911839028277763776654655454299454223209560177172812984167325117106433482832422436045042948819562038314432822777121198817705381281465740168503454747186080686579167978522036659646196666472347457279125484269241455693524998800361279463200671064513560918025925918583908529285084318300050675266976856154941081766162576472490702596251322490405345183752830158123202576733060333976397509169174924900840596101908788863249168688953887342424926581967704585056405624367265754240107893237394407981308801202313898349539878863456699625114935366738783496102797070017569519792199669711461435456960056851104259531842363606191920794534989130649268101911125840703141717690414775747938482503057209065041566834122581568050148081147856410680551811631931772760725900048859173695921883253858510940290754531962051684348939594832226516551655385478005598524567725292945021624224342849962720489344714349410195826730783800662015805358644563935407545119863943405072295109175206778602109719405145131596838940180203492730677254379034652984242473764582668254292633832741334646951999303268283408567499217143579809709068638767945202463980223602897072936412316755315049528202944513863360788876691123531568784700612866920489602794330574528065643592095363461073607057989373643251566684170199299003752409132517527377400519579088385783548295483075571952890376119621041742212128156030605680158933859236894420516361698234163416568578851730579771847766323397841088280383539188484542467924309127233532512268706406451559762045670653865420471702351470017806718928794129389180244276929461445365165086028664286057045277141409536611256340569822198164835882218033690392034133970742254610293482911710559262990455896934108292689479117036661868366939026748065737905948234150177031209280163528899110004947296218951241066897882088607881720252821554634880299073817498725798163752180084422777267359655397706378536650835400102989852057313988643531273590807112997985242042345708922393145745990027509974265626421609108450066016554426816724865939793980607835357127224999488790033142140291591563908233764537317133459652366817456120042742612117666748149407627443885236022936353743687381017114927555178830215622582777920607484298126899574228364198856429376549448547634651893222136563693138884924754719667595079243362463079397738520661425994009102862160673309832997804184690921277590669543508559887853250060973483018519801851579238019778294996026058639615495057525607744729123678336459311041363604613806952258199207861994256721254300052126553694163087454137308807711771928094764085555662506704005455433618282000686895475346439198989785287430334680775871575940159490925475273393423726295749242228265677130198541531651628221517567990108242310762996792846388895198536447338097993073458993983082779541687400849901414815230185445619861361062687065466881356737373996830192250348296882472314548606674815740741779984152710724593159041155038448771112096132504194523648672737179077489202874778822962054759500027977568240721985386836770246815219831890087943930024227393662724032515639111345999333391959397056822333539849725304033208401658245509910640335653704323103508849839831135149226760458483131699311541851291189645508351306799188672440005607658969696137726375540141581518417870015763188021081451165215673168077938879127249444629996967957074141014496537789307296621985079137308140849457901488531383770138351096556540963917705802214397033532575503548830504772181942315857622052711413708119577504862262481008621225657831820101683484922339172580051561746757903432881458136970395333469962451471560217675351805964328162670991751278234447848158129089688392179613352973312833553232947536984738472232748185276761891407148995909061943004567649633031986394725147369478935325673747279994857494837280065542943078170211391280085613400072413350794257469705435189855646678138263308485573776619574386857694913874084906346708215907244661072080037609105615820378219365561406599167568990743061810292237247820203099919644460214590600681377638292523072221087988347577936518939067857765906234769683463590155919917353049331246540640852872042427225972195568468099410037308523247546250774505439247465144785691109204504461836949225728572709845507434038056599264675869202813363772169085953582880197212112317251261070911295461702018925013468176510531928874621255161531192556859609796103111208076348886556260599077948668198488233923603975940015014880274797796488549695781410632730428992039874055217117774365080738915614774322340703142025850341460403752971967845134895358805959751525213980668522522562916210514561754356167191985807170251990831843964899002132873738739603554634672315395430871411799637232692934144420050652091515634874256112779870989895467833335970333864441222977328933502097679167532850062992031606418590709702040491410977699178212790546406411222846700893378924720092910588628022117892969237170087170218488213223025689474235726676027099614941765977908229371414877704121654987126350921649282830591503224950939252674654757634137521232059881539196690211809983780186900339486412570320874333530548415131284781639373707977378266337194983421695497579838571519882358701211804150732706653196377161306730711263714054082191191032097814046401943111048464019958207768518793112739475431804437151737393079509482247723297317015451031727224227126296569931482814385677185102118700615749184384012280066398241746824188898735817898279462650549536775827357921108692238110559798557559546467544433271955272140707685291344720180490103432626773566933126033888839801184235269002166176412935590667376540712130787860557474623784245173785919900405555182821582277451453406117146451307328046286546683119535748521934592134727799824574488939466035301103736755423046468792995530974806997311231811447969526177208571448260119886035078860808930412941063349247058774965721112115343707381458640737466264812978461398703232686876406942833465809502424014932206958984774061865857427605165735407530291706451450524112840292475547290989523884915396291347084802924143021318488684737642319990058313603316783122582438094539742843556075422322107176481320260525289677975072057779482013841723742401649446261474543849342857474074139129261568695036680796687332920169188898011466412348981658201005640884403409499279303468395012052606657500907066667712019656144244322395836843540154935581302165589452330240546845660498014085059460176927621102852499780681090006687191792725617826313195825564355836170158200672900033531095711688116692876326731885637641057384238332768406418301337301377982891178315875638823618612149613844165752831985683363651434956818236251416985745991880353673121369706951482752590291310140988810697709856921449926540222504677215488716563869720181462609013265147190327902546417672848105248703270883967110549161281604331337168515905867637871139993336091097306742545417115405406126396401945874926702730903515154194375632230378778738282907426231824934417378896579033357465361154516986934144833295344974505492629944322151061555468798346892224282087480756483918154568170112150796712882649077748278232227126524960796937833620676869730278965560294153027734793729848946357749631220773187216207766930111325119641209107977981226468816306173199540243734945057902125246699744088302637026310394729174080914580097552424714535011693892234594380485528542825057892091473547650436745318512095758809768029371126595160944828042953663320063873387097784537982960528675144118702282049972495460746834529613011597031323881607490961425383000815237702751594983672352342059673661531920358405941082145815380793664827263867558551564195563088683471662889106572230238405359225112158279029960730448644881460558254489149897409464786216436370876156025341436749747363376292721442017711126522918159206938559771624121493997495159024126835852939450891911368384268087905864403879365570163136801286677163491675541481290960533539141496464847483204063612262010015286206354687525047770641134008398326956950569540999300803733011334298402260167383999332201381358116140286712525361505921692645324773988313246725855151494481441746444866199955924744920917950767152576695076796368158904720480953018506821324193983924307040166055567480598749170454321674276885483233305353321742280602581603743110868229411844775983836942672335381800689024108660785879730316938475986132207066317622420807568334051218580087215687671426056090070642672302912933919680979968162336002453124953014998533506299126184347877236459675116461318876648054112914961163718273124436664847500926808102739569362695825731531970792371990864582249219866720811015515187937745481112228102446814368959248811423797921448900684025625597790291460344809374161880929624467416369635421913908690929813137488052325201443637962550379560630328890401751621233216535918383553976885552056686609759659131287461948604703273589350357881410663497214338707902666762995594690082338286291743813060759712862800389276602328422122232505611066201600817768182764741070082594927235720248327216317169749640856760239013301670083562835597585026535673390452944671560058918097954678521049618288169570179152300978999921591835413207032520983851878556246357077846298102518857673969950657682874805967146618455781343537462969116202032477143636890493118579014476056160203357893353619561622797153670397826885670816500080572178445787562296788262889495802372995105038489859528756585439679138587353469335245162106092306902217247058242425245165191447377501729660126375154994748512912222496108749079256077582459643021084117795635859555465370676926756069914011749952260217518513790050527817621002854249072252162653226169381189986591508877917248525454795991584085912894526031947828547425986150864801232453378626755371983457184933577822861709707975655875974726835196350883592675461505671428495071903151997675051835280875393854691359027604498875141434038752429825123327178945613193742329691208909526759410206298885775295368954969695760659697821902919964611318093081266023469369172656984374364150421261787571168662484646659083431153411610434321371491799867645042710706276242493634210578290236057957841275787522032540263911644821591125395309248313460522066233100457460602710783909769879923169830585042226140559583346098471053260138525264545459092885896765002522048869478637080082324721637027107253119995318243268082157909106594660650557801329360166094017233120806734019245376445452767775275062391854869697270319791665107719758606483304314900656941132222246049100627579262282560153133231156985640698517360169713995408023647973558610133366940568175762094805585116655372665954080143464808625759988256708604268176110400998551972114495705415471945267181940013497041236681368419124014079578294417113597645582678610780118511774465769729304110093007598596209781372805043327251042971494203602875986203945147780784268829333985384861631291034667717574474281408836251164146078790659395719557898923118344547709485973029013127678001633558282583083091341533098046888149115636101294236498691489916706986125823737675312486397821017365881976248425370610929869298462130346679483084473921702042786949972055718716871755260465074532736216173148175823876892512582803771803794497236457553196814505222040997479208075980989720835803320363328198788315834363311180886367781943499024741389537997423607576200512417584256486241673205588658812368137854060407210602501175363261283641201944501696769902782039840946125123008854103241437654669421350249766291066238345004479713669202519494133714497301392041430441306805157485028728641396595284701844761513588067265463513476528516249583289390509530809242332523156663270082758835259236817731499495453385253172309456212993361325664738616133305864795919036772649403339705271616885798433253778109594898027745675453746301595579787965048729691839261645930472842084283554669783914604443067891768877521851912272773881311052631844406977109833827730875979614729505248855025648315677576142176885152751475235431854022250538348316285256928079089113270940845964152385796678189606504978777800165277314496831692627914783962999923191261632078877226674399305433515899822351399289227551024376361203066666092060038105051023784081367808907409280686540582510798682063976918763965180048583306080274653435582930282919126456077699974930858730322485019759442903546306654397217111677289216288603802089750914652822115004753383085754105628943415905846592869780845370969466838773239892454202653803417018559652182528636034054333895332030088505469481555998886438941926286048676501025223425021117921726768798512060096596754612820629890039235341151803487175686246663061646926122132026561742508939000652108244646935779426007216244487933300207657275037861038641861590611055910116262351764897513508580338325578240815263447243690036522095664624601417059278422620722908155861906377100838715321115307489009265740772961466235294578462315760356506879114363702977156586812359667575234373189095678318622321098383942436339703374539088480827251917818999105484101198278801135986898981026740984426015706879298415189192367489771758566862180049114058301146715759145940322822394074025315917754937323001925809308025016224113804183458570482687931625967920595299483179540447093836171906304250066000592367668879040737993796169705406324070952412653431277233555510693289578901958251066368282155644566585091809643139270458163054743460859872164013055552036125181850656121629239690239547799899782806550512310617271509383740239296170916345764908784889309398024755907019373676625724438872121467375028587483648437951666628691801288983361848539624562218299242049049668604619050165707605102675897570779089010198462404442194336733389654916717460748398483813420161111255918066884969469769797718009509680218153344467125320393443324810590113988046259299205663401922428486775986384565847998433519692554017726846248936414428800565201558142074579268619065183131421759740739077794552660934311754121724817683255865581356557830252644004986749510673960294110668190509294943177569977394976275869601749853178304579983033154217920222850063170304910204409468838283619847638156701441044985558303525010405704477590546685364167817054892262332691346632377858111763872628192458727420781846623550548177510418780081600325645980443292419440517730719872522346904249769538804089008230966992334368472402684923886637780937412970055873712060506134665327226535410772001709063520910392158870004112420487129209313984557997889531464459304352636088308215666048453923948292403048855944911752400590466088795991916159393495452544178138485737198647053597464053706937039749483136426872747053581913534487510166155474385158336014792278646182850903131625923873166645009577624344174838611072965739102962203374719162507902803848492823447241993579774808563722946859238506913010835734698211477068284450251888203895124284583083219171053842393766070416472676953664018945316397615880297312462593554152462541497465205581898652832824805886462988567776446993137440564016620295486556098981770044349418923471107262538588408986469740414109461883328792008860452001120920077310435200436378145572191746308585564497757036804400157969150410090699201304763172122349064247264549396667631948130124303368423140788669005682523965416839006320300807003575441973514969555726867431300109581990711871409165198500309698152335633454342092439026437534253412478899022585261299446067925178087139737570619596005340407634345790288442585003105557456171456460478433724240532027233257561626273613411510253762398262459566922525915405196024781873847666753631435414375097040686778930658060891047053162330499272813883974217621757638854003311181917679430515428851826910566630979806997219612222206201938467645424755684935800947312348652715678916787889728838736702033109332525721274476587473642022146668654400804238988817626230780809700703155626450452505375121765640192515813042297971579992934253313573640305793200023828196905055401896259975359980534187937651686548041558997747220334210031263119776794178010790683857116981497244329546829299600883514515775030880785446514137159068457421781087775128047677848990333153844119512954547819382473748232433280515824979995787443191306206784263290658412105272622124486476947909040949782946169103410314867097263236317150090655631515696011934857271702718008579050235781715289993766515524353560907533088375922357620184985750254022597952735071204365692347255076252494594975537514473813211296559059581152693016001403321041782740620959129118986883436851249137291464133372144372205292006214879057482644135741274981246846762748602518539630181317171026336505780198208523087500040930654443189318015600939324837195646672350657951488831522270347354831750915069582924943305709552741699613515482290997804513785009166748843262794079401586742684772589860328555356343313431787893502155359742683346626333931945835590230306435866799516450650223797495677572760842594262370940856663408699162470037222147146803052932328452905635663592587923788620252494800098578850969431694270325040048022678612567499254226841576195934654288698801204651390476822693468554959322359675875541410716290022121900485318281928865826881468028582718439139207170706870769851062378806293858430450625948558239756189628390666144698324789462176404485624782989045172838987828922002825169403112882827581145239834998342476993238756288988885160367066851284237299998821580108812059957252386093833915346367421006481555131468855506955428040687922702195030879953922610391259723580943753701399623018679879392588016136335965517346897074677541372493787224588312838908933912068221921285486487051531697158131235923697021628251600579676931413444566495236598728516566328112139625792661063733815410758799169484962297826393833061060357978263656239879625425445091659133766332549885634644816041074546668998084298423962785557443269480568078618067211442322121943237849111417928882222690857469807209676936110348180356074630577530698859588472606430268833598403833264679893106896919516823039538245594518584829162884405974037282289003528556557060873273955091643301017820937244012693998960126646050307531241393138785416098277515451602218175506413836254014859659487378705295642969282886512533371611341141069291475559500657793409808583831506133871647585607476890475389520037823332502507726910229236884202244261991181516091913128079416556133078199900119209387025035381966414816325767591700621211424573019226495277499893224116818321408675681855473232623649603413579793762712726114103887353183067100131502728957282385178636608212275894216404424188132375136102404990092158377365023950963831687126669945265510097257822424645009918584394868487505879708658227606117487652032659378255365888171145569420899972237539605097863160676302999978694975569891848961704810276123568207287519103776085719833917187424268100210260594851398343529706965323985464021888066570162263299480729130114926988689978458642739518218677449625470819258328278991143729984827308414409435094240825058623481431195368444870050745662524065083392030915019795763533197776770509505623147701227879424637741717958689954378191450077024147751987849322710521705716868347226016516292517571541346829798783657519261860239707678614915399567965518857694919980883309659593774283802318544989732807515450925253278473573545084178740644013997413074291080918047300401399160105046909982757284587690226701915216005036436801173954930412946847279010353063236874618550208197288824309111837921191880058846484814158471116629840471703762948882418734178230929473589212573757265119691211329083268799317024821177061202303485307977379174593495492471946278087410420663108328560016675995219753222875866821379443119096671302847499461922370578442659738611146162929389042752880898005276620600954061246881149146143064204463751124599967940284617471433219205406109168747376359217006228438733443308431438708179204688025074804378405941900705564351447255463251174676281257343350460790018885415038832365108218661663123400623469546732073176798820194893981971819240367716145183228612262433327437449217160955415997989367661455902119165196349297507215959339799160640706621325766093855109343600413120247402811192349570243130431003208866557862361595476102412815500326468701411291186691742998910360374638602210677268241765705928444256998429064746233317877361067647313262640814101950101035085707714754163576642802379878534546162945246728007295651881850108208429596147751488504016008168835958403046208909579777395203185718140646668920191646588700315785507081320999186288258136351762353775854210382329594736194849937815781249930341606976543765248904452006422346550880660275765394057441668973155808475689855124056681433362988011515197743828494521798865907876112995320934061070340479720434318158915795199254315648163696988792464401964691598558698270849126117316201174014202257456631693011092390675552233376987559207235537525612551961220700714044015364275999788842243144622790383481388243774511590339077199778034755469332972549563083032562195636347315071492315733189485430195203932389024476609699700095732042484422753737659986210423013061135199844398632132767388111432222245144228059690173838076385348637896771266245445174097999507465306486669112101980215953135977930151531331579846374215511667325193663054804909230139466156603685527625416589587433579173607509346824517051492881429112644766260661576602042540007254409484243504689944410374907150050100572416986739428338726701355961640685386905804912629770235768771445637521219229752425965742637817502300243837551223605225492816202313221136410165845150472692099302455185586300691916949342894043760022966848946329031176914542285985213423463966146114304815820406981737804947032653636904797356621464925739743715238487082351118245595015959860318665951156590411908104272280813478496948846877831028250621947394913176560498606662576886366320574141629885090482874645361575862357699515036379885259941751292993708318167981554864416509642685789002196222752577900927119300541805798028788588916728911674183109496242261995015765146039379536572230461001666069383405735651755728968305411615027268085614878569616034956557310860059876518929439486653865567401338893210137893123205537229215568102009839257401461711977193242315822359536235107048721560269945045018072924963290676754104634673518951565700829926626893578749405574746272115192314271469793381546106509856786662013079574641605134777659211367516481113721145975907695237847590031671121006824925716374104809175169399278444163721335362372507106395528725829823206400620776254546194691953464650441386852376964286334891306963806776067752294599573985875768931556463906623683209860095187182039193245544892769757007324233245248603150594235782931945927990421708004048334024839208901864484741286345748453836991993003977348429147461560018439987089157704867737891435853374921483372033902945070042633219165345812104914012043334055676600192580906198480946146162368001774535440716691464017736847601963378792159529412705707291638358673903556283120354577902456992962029519032087872265158719689972267397185403572810090400346342290070961871876065063951050611963936003043368376243637566321053014579152165871582476369931402384187095284742028445479965918178028203196641364145026347862236703510747270208074602742593075767739796814709654327005923504786573926896006578557335131371745792567200321841175985262733961277834384805417181094954810166269214468614232400179417893461707818693461132754909548350708427343577483451033815994349055137441429784426402949576716073301448825456445311692575231232907868589987112961274610993040309848773758097583146760015021447099861922498294523021231659828367860299618723865700858811296113344796974848246278886774279556272745951420746975445714686040775404715422073698098111206998588238014168198277688800667595790929570835070341765219510223227494816797196578202773341180115103275903038521960589007608808946422549966531756167005650577163205183929930941876851179661478771126414654358882348488538534185462532533963194986321189399681168425455286679648289934800225760313299115669748027133346161267564870485619131811808912188213050228216466778496795300567374051199866773856680259121753040348027806136232455743067079214918729043948035355996640659100124674407946076121045756355536129420439678206570486038819886336014718927394833002517291358496251620661863861592684737804347378311941518788915456764464543408357252137166026029439834653967887653126576667099498976893745866962274320912647205599993611241774016885540709647932776079286725175091441001927093861420399595337349396933149295925749994671106428509068454841553227572321833465088341249307252052175467279813586243754793090712334442441847834273951418608463766160312954553381228817474196235830857512688134613919813049196718037151129013982568463464887969940823888077106647164009183778179209991574847815323845276759456047547555800469459639594235525149254228038801253428243186593825573301467466938715727817083992140805689025859122283960392485380361414856359068625645748813306850367791875878400245865947419005186439302223031796963187221012296859521372582058620728395898536892327212096701096593045187125012356243534506104089324280475952924611839343111610776857203682869046207142606416563508920829272333084788658063089707076512502308637812861560603610600929639269119631093963335154997512331301398462717236450465740628219341336120485410212519189142216740682123521301980158424100429688496455899055126013539343951949107951133533804944167043504991071765592250122285614082573511006032032149961627018259535338674554084272547241518962136387110350075873315507936803526316800588449234123432601596777733585716269704299656654724056846625519618138357820029579217547901792905961884874751586300656530091016223814702220718576392283356229484715617759908849597587553846091875168687991285239581424716025259961913200179921745562177780193099898684224352203798248871456754114596623344833225764707447175230296178124948708501187447131569199064175112111895587558471864768746252182280080374657841407432605617863179427065530929895146767412666594495913147947138230980566805286766156450197132624855576206297756980678364677422171960480764517576727391008167581560653570652562372992616442422348120290550068968240615292235691997865052871976029787316197469914173809744394184092200726892223965526120376332809276121292631127445756686483684573142236104097925091510400791174674386050667730600563435853706630877474973449278322889854223808587925393399987426897306272124811001462587968509342552490217974324703164380122891911772723870569947899743188870671331342012149794981217703528835024659776969502124066153145736470808201839824802374870787838632105062171089354462251005904695879083361152760407436287604005544917417264332866023799774224270655620500073261589450299403747602015533469040348820562493632504776726175983332126056446634485185224232866709417725289845899330944511624436664571942014918579267100883113273938467051477459649300575208481923301402812162847292778496366427492001500946057368006675146430165963873681959209486423752091804301243875156557757605797906139015800165627113768979618297443400159700795038627742183991266348435480329928696611390956959199601614250237528334563737260839031187978934116185153873958701482692021259383353140644417369874311007030107328397142302204718463980962350127759906906728577814735888254455163371015703918330047894915808951437272717321225725623218429282188141121799488966669277603838660062368740272379447205807491553128348456115447572924103304771991353316256739889375979785791421357220363014327611252946755953775050333155740358746854158982402107258930258527549528967874361255380473785823030389352267103388910934918860027321665657986739827346560740739995204388973847602626637475499257099571615489774309104863329446099727347138613292329752648428162698050773412476568483451308206124533578025486470168073340761965225860207548579007615847689823708088659465461607479225206815460196646823245176435525429196838198833544356516642392480224925206140396081629463864169925961852484398999855492044662640484546704630056595402167417453430626160443682504925576560866649915775603689340063564826916103097514666587085246658016030206728536565896111259184955003791155549270651133358477609916945613258449918414369368225089589541706343735384157238156963865309049929553608744979259958360070230869218110676125635141918723619132323646795659323005707422004334741716865403845564694987060012481881724080442799067765889704856685820776050764225663583143976074140149347327436146158872156553856595268384473512630335484683692116867724110441824481072641376497907316587825388744399169712711366661775847820649461797630990928470387368971383989159880475756749887874222945815447996189372774788991653915211313190150704702717539565636805454856748319445339056029914498663681747750341278175575471215367840735200824989848498307269347660677684471531372515299822889656263748975832345262517057043172177018747251396671634926878356572488888376228754681225825855714736390321601957468120335045582612065931268549736278441169054228163605667243420381719143030953272657469618453939339041157295578941019849243003699228447800796111575983449311748194231855523486155450716642467748144483265497597620532756037002737611183386200567579767675902534384000876195143601656010601067940735512833266214825657683840749775352240250021884710807591051984733217082980274525580837285647899820921408245847235931691147828880111890454236713673458734298988395397375749247514454179821820274320310714145149474010034559865029583578910948621343545591370285224381922304282138177776681140137548530972387845939463030578053923906688513544079567719231743774564376655500327880287426269090303296110211387372643678302055366174715113524562757890757814424992649404054900302052982383143139272133715736936951370751689157950389550478330747268763203308503881303154244324726683828962464853309477878614608757188761752848237274993556166912519422296723773372206978522872200835288831859631510511932011230316503189225872443680343301358189317681805787367303505623921431219910433699212450047976991409586252496608489985181229792014606097454382560090824427703046811550804620207321974120350115411407774832850656708781744849224683858328993073190012999314425290600539663708796048780965248175054050255799113638575713966005483827863738128123014182824014048152715403125038912512271106917715332106505178715431746192667196444812889389831799302834368596617006789737926047963905337565241952541214017593451574702516093985082405780459462623687654401158490141301648310741874633207075000150941637192106315874084040884328363115128776640964741671062622333152796072645457760797544006675903790645073474564473628041845980485675698062735569007899698405601176653732410497760152268012626510864178879975693214817305574616227264406564106613268940804724842340079905470864802885035141778140594770912113985711953189853986414167409618176569735630928951658314593210986582747856139853767238356735468785488545651242235262425855311050410282629441770058211616454732024050448768043061630899795571232232115387807165634699708356266407958151526262951530749201633940374347744799400878521158849232349283168662608480254467889753187914690931347350203652262214786801149415606580608947473394434257460890634833703119001648590551866964223422380106592706328568671629981532997468034925147324552471052865453098585497221488673397649759605227964370126003968203194392593002532949390778079941610474435106278188515269041776401239273340606818982209484390744795985023454040416930129026608630740328967268479269171993485510795369010405314136421187670928353553370994933344693806845579124424993212929610065361980013612844285053969895758951984989448911239003124566875106156010563386820823096445800447432926456792035187794274369728632599660939349687870259682379889367633755700678177497231054385064517718134832074082409089413982109479672170536212839295006184667229378211187558036145571401970772550777519560615627858318123877620249163936045914183848188212891507779607507241799124195315362294257941356373372865947861505946293308114505138466961979090963767417851900394329342890957818690353969680673417959894545779883924766094580646729094106560353931798801997373163451534642814349187186545040439538986898598479080850943637973530713531918728453004369063199511980955993251317008670271568562496297133307595249944901097829401632960016701793736892311878413271962130326360341684724927311576977543818823666747407517769151207067996664398699674184135073115793309283501969775227061926908198044155200213648321753526838655640144228526237426086875014298854932672993094538589774999123438802813586501657236020979005993852975357400085651548630263918670842549705561808895354636873219526746961521589210503205146606029663635940519590160669022609122174162433026792367411949565864421643655575372903436061518289237155973429500169753986287431066185201325908400952437451005024877349979196725428445783395323939018037730904666295345439929112116067753767643527750346764018965611325821013519111857352226031647995375561035446784879198267469891572320611260857513960384097180296311740045793562695594322159951440503258225368499165201219587974990383717808758864915725358755940049023052023544774762038482298456769201980863338535103582721118467441571803127367014929421717589472834586411529776153444217826624921483474904890964907545373399565581580260372411258902870386827962116049369960584835510199936177984311685239674627856357121945390830346583093471510123615917784630225615035445855421619766315411853699110804688022172851862283544792298483600713596378751415156194972089170483586404420605079593536631784905219582264933139447207193656053178684270132340123299366535837703289074346119682267086212051029970952738441231221046005267984599211475591404970182387779469545727684832811650059427843598818544071548955977022130372354998676128993466002796383650559955519516520376296974143163917162123016311996218393918444893675182028059822620699280990251900385046883028887893299567401876587575494039865665833650084644306347997479457315905374649453276779465345667048955304628629814250815494047360600453699257206324681175521437781610797694077224809859569978810767359115859204233316527097847545058976986231993934928034588547617595111607735844363628627387869368961260878042894984240518550924968605192320061321715088486177999170895646054220638962649122020418844908628685757101280504514002172937328688535131671396775353567201636997839043192305881122793799663177414655293762286496441944926919893687614240053008819689313203012862272228377377432112651366407806112112865701102268118212763853726772316550651249132428544126704176507956362647378842713883296135207800315050921056811639383957356989827279917117830097863899352204866585623210441016721100791242861243260813489010965964588821882482442677745135148806023742592001803625701490760930390033631531853042959760313311668818695144450916238012511839419680148058980741224612945254703950393981162676298355080663335860418522979670030723799556437158324873558719951419076276159463548119855370009742540943441687451182391291377844019356242886093767846053169684776910656683577932077404242800926635278531099904889963825839012737514481009255696044164466290666297387691922307088166110283674797547605623462246494197888964302488128492225538828621381743741051625044642837482260870380710694250525697761408970031604006958388397825201772535684716554572647204232844404833659657570004711562431019072941410968101678247249653429009499061914256076325950291371405249581197589693990050513872139213098847655907841348618955848931906157841464951284098057674697388497042171718003775934079875664018579858292200619831055244198915583482895364609290334990431884180874418445369331381352581494545590563608524948708002852630134187083241177536128448352613036100926669449116311389166349490571088265637818176573053205590631775915611473133314991907334087673759361630561973171690037392028452763981281659592951547989401775963863785061257776520040029367121123546928969714648818346707262217032780497439315929909068326506314978006884364481731110827498697045781595377568403911698762609643415328930641548429345568989576151192712209385090729775738542240311841514235682986903531653149653009786206297753603727968735305077649343335235347118551489730883408869049640460696491001909961245480372281661431316834042956747299133524837945803009001662746859769195389298498402592651641068694683328339866042416633887928265309044632739679491022011311412397419918738765353547403012120127795708229707880808614349892677118384642941361446142556320886091612409946165582720157633939678713679081865869923984837447338836767583318013248806986529453087741667260919582051393003394287941011401135730760668365727726245966680345808697436397049848804579184951795056939450704826825140732379434553728152724263784985490255025574829824001828225577619063044587677548393081148673796264037395137780169842164091449657913659923135199712882314966330980790127542672605883345232629227298898215650282979823506067203143169390998065228779064101601867063798230934807322480964020587528080942023645471292190611518874613541302139871014778687719843113680977388659321087456712039073562666808545898045105985474202367150565434315231987640245484927931282365099085306667727556459891075456761410788041700283550245235492305413537523907190618936154805442672795616966726017376598978257102674238982214754033208442379901421800480773275534546579412317958180683225539944084059242000730874052133871762850386130939670373374509706724951068311437659929606428401586399772291315536122245981553497348780840411834513429763736971672915626738664571082236882553884180674565965820565185303251533479167632871130490004318780825628173471916520476595465441118214290063051850148516234070095849375471151465348894761545285458932665631974269790939845272007840632182066940918321102652449849752109330088272331856171438780996199602115972165581989187255560576019258913353901664075024258137968598902923823394091879957818592678236480892890952662547794282054347207121945559484176164753217727796073550002526985476370246449312780726851182426506474763983534570483523241531606739103007899737361569070427906384054848485810478245316269258742255883746347989132101736326808246845226037725589187683687482966832416625782921291669254686225900922081024341182418347184271922645437928289300636236791086970907583579049888976415491217997501535914504621829220142512510046906195673869779473990905105036880650195564282301228585003848826752424687933570058919740816691968224463473006602058266732888185813911671047868356044388599270572477342088111025762668910227030765281604695291145215018558708309542121845987710677366871434535156677858298688525772452765580211137273270446347439191399478449743502518050284844227591849159418747680830057434450853552919002691106080879505603643876197317619966118398979640301147501649011258789424414004723973441368064127655983585564650822414256301827445829965792206935499008224094465515300502938982698332529519088520946084869530194720762140600283316416270596974318459202712845360093172376541363187999430480695899136030430603461723913089932337332339299965123655178135832527080754515812456739083193864818708818892576889027230162808901078292440530445379618674589933727254312027351395318835529218384990513773136183031104250673296788928397203483497609479833689944780039227346599001528507938226773153864939137291190709656097970326549702856623834076357596057576818153631230171843578091631937565305147716035368544669850293730442994106216380683316671303454771582924086464470276876413686967352570294679910293127713679138383256888616037089016697892601174980331534466558483959155505421850621203057859001875212178303011198751273100233949525048828615573686208258186649658166117857298176615721552503796656217152564166017047918106430167303104051542172521596697825650819051624387315795630843177722220691163710188463337209891212233261402215804809971214842500157087131218891264731491340857405112487853252496110965826570047532584011520831104965960472907307024658439851688789614492990374793655596651496377643382295269944439382988826493460723597485060067130548509180239353157900456530221328776176146587383113168717561947509932564808389621561597570899448200310392139530457518599579359356169820015722395514056901938588749245272009591229314808935923919246755161391426120518347730869683959279893299942181814628520068696415985201750334690377575865089984105020996770358432895904505254420108349275285209927381153710380028539797226780126357903135951540255392324613535729864565816084247667717972523845049007378723769458231953799026053106484428427336671433946615084139866756754329082065313097516018361918573460395061131438919406995735427721833874866760252146927347275108616365198402707685091495132511215661493021989817172737384965053998179422483712060001192122707149799203849676236407288653998439160941231713709963792200692457023491573347221977077806742987015293607516115417424183729052440370293639712918503721688083678370964717764083975410794178582795061949963271112384499391707730590997015910101817178006499780675073756952345421045023649458156666901379646259010373507720731955070734780213923895134769909267950232867229249642714082728703464516931846578044835664712997274154841992196869867387887584336117862147697005708416236705646457938465363287341467584924685614318945143681835592527684842339784141509582991259760434343601671740410967112623856107497178005748173521684913257907252013358221900625952270877985431333771358143746901549710357508911540438829453056902985531286829219299864656826109884277023298050254525814029317416748469747533556430621351754540044845388888131406840614560872978720719395982970711296829626119276116307884059335600148062767728600159022401724828306028871431825637083889422640330638146315967619482942788844202784175626599036062992540129600261100631187192717568069495450419608803454630925947852932105177121711462075087707345279207681461781517884504713665221860514516205219444062412872610351490067320045198672071009155988401533196855237842821807238502451433430336957149583460846634104399742033642524215191052345395059110931906505904140710766805396728252221162517718602494680909651242376910656005289854855031454392837320291982846786390231316933838665930230034176703663910471829310143670840746536081506866165953450592510039964061819769448708818399629779724895204706814465408764578736688260084674753017620025331286715941499823413997788734908909450579798162398928112806126966440324932487070666383610843725146478633464875964097830110283411368280865215690673046239758817673352492813519246970567124003463347595308381904026451070641041216047720462316048512347031965366807711333092786257302250779191957642876009641087045036912657880975689560563073800841123440711725590063030108648016929203488449966518868263583909912227361236590352327557757616731361150180602874329140746003654997243756954133121063714091908294511053902225690215803743877487537530325470243345493939808523953078661071053711478531617136629779503375101578031346330942860637002745254817470195581468243934997170749042450610599933520917480308586777305727085737651678940220330582087416925874902805073488690970264559092176442791541534134686122783824244951328193209371011337833147978486999362963845320267673847988943399352674748722119422415125232564020512915025085573321154932183289542671475468410668527240849607772710886744246763842896617107747403786500166686679447444494474696302582978146746195550969587979158329823492749300389269465521891718843379327768173959527069116588842999550530718242422416429899241552182398261861067905520490596394813069579724986364669490406535523930175700362142671894551619844386308318007601310856463686022744487048934039286709642956486678700072291064850899785454786650603832413711332841802495214599573915964885036783887226003068811274765686658241250599391197835285028106143027044564062812331348228182695036521311382975747705236216523956823469610516830737421320971970203209317829385505045858294747595718303393455031169629030453237220439430562173697712491420810280372270354726961717238948568572881432568671269835558239493527471392417702698286130681244909338069654685592324678268266542545044393993347468725524260888449028457861914308522962174171207137646548068693799804596286278763524407839443841364565431864661437267961297185321212618438264432782931364884514869433806485210066274124426034192835498414831687615293222689023077651865383901517413594016543206480670249713529962399507752106159078742295710821320674987073971455028816755409931658013613530154217704341318494176696733278983645534741069318101444471807991725380024624136531337147189140344165116171245937326664686931225889452443967352406743227116593253043868877673517383032606353902650877534498718164361176846558295831283663254968724523014833114494193607994460489786626271908152745559070333069937638866968993654857289819631035517326516573206500916930054438558916461776911968689937673793587974231937155053851475839384073262702394303872850075318964651177620726707507509574246965439188496118626017333060008297044310283501052841603198379479403787972830164930311565231179019447352793008172738405238991515280011654131409801112625961211191433628956434287652133064081120001702412672548795352476867949435834722386113541644537801472792639917129373900753892775632729207237278030127043316630045212038405174074493933102469525990522290014940475692618624306864530338256221045119360130161361391621746381079759135164286711707864015827097800409078749739160542744333843767510234269816827278813642449265164306448360511242263402330355700227603166846485414552632643977258433803533170989254585752076978412374846551790403241555742805157237626357535781225935249226299746777399682374217163635885221047937294111361653482479534002921412245870584042760232696232265364085504046280362403584099360682192701400812259105931264859404285261522328704894120896456401288365156076964222158679170417947952487664216193458196274569862800359173329512955075863964148658272784585009618752616124455501210362248559574678564319530333604619271846918778764577420887523058226842855284757111750808194868820564065456655256851425307939077224650644667152906367300030392266998357722653511453085644239307017598784229315911967185102440591868567540605288667486049811669521287343079040270772097101526651121653184117622426352114695048811303624922118829940348868207176021497827454059567236010110855156414528638522867305071394457260293779818247355524531209748863189540189937370196833462509680687360455116146386010185584345463131501804577905000507476608866528035532585428166478368211455195922655433692130015238589341215666161903835512424970314910503635902539085503813842378987196845248871285140912206967962832484074967955441978454574270383542752039925626757922668395797987688001738668450362978404768028561378492622660232392329417777410837380653276475188918232217414514075833253527492445343973271224269331131012364355333166820866754824692015140406416816112522017770412576516085613609055636099473309530952495267939766032944655397884408382737227403483142458543503190507313292765838337255489671438112428226417875907256343206733735356471409162572054560200893457893851326186582372956135487755935890729238408141995875493578447919821923519615226876419022697567652197425622184361609680758729482820014450528829732733232450164691976670799494970418958795746790927352459852421282480776246965947757625921600956542039380912823768154722734160787736325985435046548099682899828117959383359093988863463008912341230448861990123272256071556033239498990525826572743440632930026322463317652521710867322577434648647699385244758249512711923371998860116023947511553979881167345158672828369958086178568240615884635740632921000460482546959113043036464372606940751814351317160103445641336882156962021265166204125177587671916254591653871196081338782025718852119294881248126559129481888783129062560311310800277825462916688547500467001479592718691072435213553357978731099324136673843916193813054890401088693524787485629655372535550399326125042771735081059172900419229504890774390781668235188297571226808004582382014283248117946144374736069251065818552086112110841447001594365068570197786492313194208650971633346321593276800475679131990312719824672450822295225144821592148845881051932494436421134573923786723080064408536236893411153629623953665716032655467115256469197414865441829676171827916002744007263533605732538855843803657576962014991872022898082858122258874136713750014568920990908074570537092251471791823178393436181982078344651434541615134355749041142899076199101726879612194595605583469674892356229710495247869522243834254297042054055499939692955212012855114444365211912778354446988919931653640290234072951250096727973925945739713745886570634903419795822512400377627486698967639897316924696435022841253204340131871578680532828499644897269941842435237949032182495942522980747687387676769163282768112415934385503779104321380870143709456366824158620819449298812954952375867558128569408554244952279469029943327921143904138874802569207469624246834091270987680103172562493838711930211979733302551715555706490226221640248024179597467590622199804684653477034863545837219324951502627219690222897150857948516505603609059343851041408119268541040922312877809052786242621906770301133543465846804511609854029313109836489356207115838753485496278797845863498277551726080552247370761835166114241730608814824296830023276294584912686583686199234726484956524651834380210274097219129304918006842480759556837004244631228844022294838661174850617618647920306553156727120742033379181498738173147383820851210187378460810885030797098526106511304928281955081308793224208890057520022646871187549525723091775493081704491333952144916086498488800359177708854187258149474072896186067048527329854836704263251280757648543616734180284267869501371089295093187851388918670269426255162137605622527111288582115601629282857919171973739186275168590039646859551564020647646290725570514210645190391404805135862222699943522583544752365221781134960173088816889241451450883842324887715742227948984312892072300440443862051315815927363084788238341149451657555467273104552659645284589994153407236055572072496351735010053082421521387490999557615750618185679447394515713641190625269430648019186639367420334803705749132360816991286403458070521120869941633646810337055589191827225616326079428209870512080283189830762680547019059265313328759746225591148208110801850971844364158268103771233624327581159303607259765541339810514805163333957627314386445409166742820796946622206652820997249232240042503306837530806294100724656261139944068505795470253954315154744012230477035346064190792541440596746036718831983953486389506129350818110053041030241094879913487380716184555421426047361875329139121404633572327242580385662840713778528881667933427172237897286412206515115372886970324186096846440365521619876843485683469060079454360864092142569376679536949770722885286539193616325925869554236915543240417992844321154803453223177423610008137349705002656620570632605718447833370023853582697556212658785117833912782853654672595164072130908458893809511476420520492784409819688834143943733765141186719008831740947436696020319136378658134449474096608888855622955138387208021457495915879923423382266028787133433624994161612946747530309665197254892816900736890213628076441142381066770612525399242976462401555429713424848193325002482863010387464924492174631019484073871011721869998849543544474664845112438261876721359657901697315315176666801665382479257365996204341201434081188913719825911520297570093775421510030507717211623355844510538462507100508075017900683874794566301704963641922871261640391856442673463296230555701263718154198866277320688374754457407221927463406901315380772040686899157269383493119648630839628135536465056482539926374432834767064621676703977141353642812466580606984083631980783585908828111268720022599358715047577041060734699071997993221020474455475477547431911062704234964303494502155996246609797569731349252657166235838025265832660608473795492382927050939666370171536832939255394804369066566218590813669104485349661932401968960894003128348707544925483667419039847546194472466547706418923898602385998269351896381531922498262211912509107123825029526503080146604096423171942523786931222249047813009892182203029757577863312347309658973934671319888889734207817335811837157786425729700065064816386400602602020201038226591390823021385224230862015147277186762884562133229572229233457539621824990863156746518906852119878225746059183621082188732275347143916032342377775857722697244731499175400326159402464876538684135069656695560936605836749191300358063324221594780493670473159124747788626791854665138521760723235397222360939790794061853821478218563505517419110466622829975220745127450052866060854762950373318169903580213542163697570932927996543877509172687743930294689531026782272184987887640901102501092472448890975694811574967426732751873228260818543123180694978400440979343936532826037841106851493869955873492194977577717744888876891545812961570405974240907044035773820181535858586059916093927824971073368778012235027645704521605904668006523435940798387363209875331809444170856320018323902498349622812499767828506576477373790548060714164120136468977695142802191787620741170834841290947970504026734270539945171123912178104775857157178741844245403096212973860270917798283138291423401493450454871033426251274405563128390385644363131994386972726854067068282362270201953947691010823186024730774370375401749902732929136090422310633785876113089087220290369457002088551902257807240507053199801558731800922116894205532232975570628957350108166179379725727276841064797907036697549912081236915610037277046571049508936943527601441626088502103822105956823149549164998498243252179311562278102071136373138491889105225276218054553995810252827390690739622945446073409145293229166444520070813596986193149908359610284421878286971621534568785905780557079070930886528418800960451900022224559343075284388213825009659338229021626584715274928881029703535352872760763209568531403985226167012957208312836686595612847043765106509945673781942342331279328144287083454522902947597932848413992943546418065328299278916986672554422651363009176421236461250563676039809192808925757563319451015410693117760207866618781533083187581027245050112721820281076549146614603163367060868974116414750046529632095193698188207233873156382233261303313579273737292006162846865202152085180105047062356944376319358916001933312030041016017460793513999620596441526409435909068267921098765439742092731650732742599501135156481668938644765749566491062311573938245008015456227704661662695981661333874902898010966741091533357490658846114041329374500770121024688866391422918859794116087343436191961495128902792554984263810474922665458027024178369545299082730247593342675188867439930754964555591615309495780581618324076634974672168376807273910220129652831856179606667662014254837398057980874647971833968685190839003367347719952151690624808855703724952449100203943794498055227087939511285644930532890912518153197483374446438009720416552782203703340022598465149807936628795009049481294666510396973602955794535973945917312368113045386276211248913956404179059759627051735202606777516889394046615265288745767011735677970214136643685259927819692559108448061100847702140268609486728257629104853940804931758581378251513212850116710774351397913799592078859585617985146366488571811503945623161236230696585034191232515932390885385879845013307697792924184406041007760700960758223729016850134827382118002730277989086467379367787348408826351450804042116301631826844365054293763328621649780547218256053623156477693982661049729914450377279065046803194330341102132119367565896494894095093137143453548975482727950805649302123802817542066991959835314246666605215781892333293920037426241617125202164522137254895380913928417865905381079096139911100893691587029716152097536420926915528663535295217636622613936450254667688024804748909074953820360140865492368684317288436582412158946470784858486053324988027356324174031401771854971143997744147038592687119039890986486342599609057223013240051240477494905319808035342546367920874893051720691395781497883783040436314605938818044894418474350684516580752692807792001740282904535253954060814811120425966153026507694106569067820944634149336018721442396386927674678245412105187313874352996786298185124570622904637171486439593426884898172732876417922853019231913348160722027510359552599038673271153240902123826237589020066283068485144952540145649745847163075898014314195930980882128938940351819576599564339635091476024900798443018994711382372759740021250789666321040144621838086235225866103977390151849167377036442421616746040837204381665507706556685324822535598726461495518546118620667937736480069686073930928291111331510793135465240343916282728759295605700502614649519286054911416847555527930186343224538989985712386411213424321961802389536929400670918436241706830285041616018078946694896874022422537923782893344200486966676995624945533120773879801905505488030243374600442829667076432763182730268842678987990675784765512675354363947703665191725398002872383824053254023431256188379105015168406528155732020284713767485991865143684486376927505304377882670294155059028805337985643684105282415098314849077537478466232924601215507388579337826339924184037190078626516030959702303392672383146965740678627443745894250640041809336603885741110651832737362931054523059000334012286380249692148166139802135886555845542473483568261682132942777410707097556604743315854508852935597577419444348947692166223198101797667789023113276882567208261563754674297276540147679242796956420244998118706539448898288437157331150176790463306167669998531044083957718711143021260839584427244748322497091658076016476549776127294054730118576643823087048458128522596912200167377067377943512348359269927249709291386285650880023501204330172752662905515527159254159671782220602165102828643109071102254626590807082170235180352805292437879682748163242068955411429648918181504877087624980464397790876255475542546251647193447098240676018491409927757142487026722133097028109594647711551381050766000573722810282676288005167735888010754556981610069508648559901006001597888173567961157791081321639243372179210815407487402903364191090085703138785595621844298770392744981438757602208466155603606035554452774636605144432552394100821184954771442655874544108825965338211341444609862855349443067609415129756575563471876576182801074767916648997766677367491387242920154364907977129234923466000642255123554283759211013876379365190983560906404023204421348163197076076098157447787644790252867205283202154682373054271614510817176432640122025910735928660349332291105791751649040291152314674989143752036328746338135294460976560972959811194954283792454286880645386899502242638417674761839563129315722305820749964426995772355113839062675277523754430751351454233183721720041597020286595538527404548088490601820194699237002875378685636121980784338063484867064905783574578706929754428630757745395773562451442145271859147920354623975954534241995242083596802049080269240753662252836194157970254947818600933316648600835157522431845911239742703299198969169052069358611942619325918675166568952276615301426500679933999277725046308911957232936647856634940452671411592402829904359606512832032066410939688501689798592002694630604281924922868445219156510663753139194019273293822448414145945640358915536110283440767478984673111564248608844379290528584940213285849316396768361930199020964497740820177929906301669643244778122033461292557954856805367281835473284401947165599808381395642863041201386053262179096469669626858200449450220436410816973617706339980072229953813202895699737969814263023590510226059262614581664010357075261357864192479353993754862046962533793767626819898389649014757768262817555219003323553047909240963360460541438837686013292543078510274763021340487441995085524656220671689017151134223306017634330173571742353371490472140554053162974235163312119773440161696118860091677525695922664512049879719467084575493807224177536553811869995954488331358301930820727122031072440817091386782710003588446377282793328706358666710492994669386226976911570516109114165530026675824241399093303476187775629458768477456621196172887130414212318298920283147584179406174519773810383220732102675511515436202568362052842460487818313346293718949660937269954985651403728272175305048349923424700629388541210404019945466811056527323621578981611251077543096872271650722883863642782744999755817799469449862093228585395327096115273474593963282452442115923479743083341687872689628472010457177488173327024657539298746973129210308287496642469429600905022269541810624495287087471058116108218967587999370474011954220352117842569178155652045114468317473927508138296986214969093377758343960851677768947209196499706925600847563646737436051938508220122058914271834530320128778942443336568916469670116121566159315820809822904354190277501549128726158609499722843429133654375286725257504843193744872228259062528427064964934466909113568580075529156637316243654420790621581784889027865846523087953572941959762808465396152410667451538990452661461851441824715115900656260849043479761369071253061533381852867193540674469554346350283079409815719561204759906764882986851962405530449867255760539405093905502562081703669169575280008351197344841377516641857896615793494190786775256292852682511362133892315756517871751032142520162573332936974103973452370747339920011617384244915069972514521865373699102329164383565129022008353164083144518881328077275232732966628763319520202022856745940769182610442595235805333358407187325529202870472725654312022333778504028160021496300560731225491394095796426290203968525844431329969234170437838278799701214056339569444002709515088851193422937936421423034777880645751254261356944473697957818634658358758837616458538707391371494391934123680323680428730412988235710965648626404597846008529307629255465980934774865291235887060090339150350013061023944421874443574910177409440504036832456835627238819259639518855375982631741296338146892369641531949460792239214184801800107072815039594066286310255501161653710765168208782472603916246632849907653406018955439849258587214559846192051548703445180593788402298041132769655768212107788078899842893248642784510571846978835608312056861150696495432793517411110963243334564191338879764623039934698099442962804384293689396176136669003955584302815007657561147506153347519349699141438135066975000356214141926597365848161136285938148082431175239931767691398816691475747525062609130131042536899588920729513368786985525602553803541317738023508311508369517743311088083731909182264898952059784593424345947436735982619459405412133965936388373145331760468061153160229751436051798692116424323688308357193685189083555128214152233540617307723726068098401548678569270670985663029302773141541378606381130565747204598213211704451728915796094943751145340413422437606661995183465466198479601153207536466766619017201719441693294304872346097682658264195537925875713609282698302334133750382609130160918646768050566268822778585671855868973855777333131961964082620418550576683120146519719763919817407015308836952635278519848877305082065151087361035638357015986190829646310864130587426921781784514651028833683666065015830140087576326428077287348230522337768588350415500238284021520103809680348173397301920489175173475124725281637192597423197634923120303162728040047463917108328396755648082955588781065529955640059570523589104408314875037360763869102626850210487817132011110720442916115500479417009604711369041251720130045457027747220776287005308510758393628979976392330927702895919302086387995529917249196316118437592763645230397961152108577754710760651742627467067954148704069109372605028708006349224696469050219883647334898501019042535148889667421274546247968906526354920871651271155689655028636495305213105577409887380459162566946692815866105787512973512477300479208563243349529684441092768201513636813867565604214586183352738673783767925655312748338987937682935518910428892508009976835599875926900497867295670506262384286542727562194179479406197791935854159453322519754927726162646405957225023617337677587561632334358083337482586865091492085643274673701555317717571318430791838704518507306588833890550561499395747195160367089027150865489424335102376138849885761796716220224700936615848327213016387822975700882809043605406949345795136968096503182423473082536306941262050478652864210487032408342756987306184872800382430552556141642067146334284537264305228062292341357914421127770835993002286830558467802129066403414361788178024506180194641112246520131405172306275430020963488163102313269415490761280866096279032510324568209138713810337231168065569837572258407946750018816342997480758614322742448779815339162265373821085668095544252491008642149527717996734018867395569581319456381886916594757318461358950956158837623419587413695390434248224694522169750262524121376190876566696398536753194238745706840973882362466563568028802016866579222627551721442989800896682456121683842604318794924705395577785193071606293407317277751207796784363823268819772886690865609867883397181375567488709232622080364581021918999294007336956042108865051263674330241834769322033571951893346634248440371218763640350278781147338103047342013938162858365002620602729365948717685593804026125772139704258050399020570830269631331908234363023489472712214204428322372253964668990123569552337782346898550694082065075756459663138868514652908042637289711679105574099520913949949483546598938635264191958170869858718504757039397028054429425848589799081430088917559800415309923278709584381394995083754767340376627235852716830817677347650502800478719913689181375139204307637850364547246522593207313352683124645685728631491586116504247479217187629568093741238176093720581671751758425520687393415784701125693006184059210239932418138660281901023586065592273659685993382266096972736683020160206711201023360428080744521286962706758463611877503125270482560688687491848799293769138888938375246731314847497694664991702999390619800672864020754742923467090647016791975960857335908237047443552934273662793603256361266611983425145091984908833380698179178032429503437039192312702810164250386322989760648662250028251632960668502183397034633961318501280680470723107135426372871928833025135064932151602971659639125601095577551409888608909373116618596310466492598033579132668130167659252190532503887728296403427138893453462283685789648160848282611169414064956715066927151657863854806830858995468691393349476100740145578769893427802330512289312228355809709631685065111754402178335056708499005612427257804133359548841100229116597830743563992239587211526026547310542176065251281496737938266531856657487514919775372249210756795544329690961836554368413939096855932570862515956487279445212365163618051837475542862297809453686518963694592685670985683265449953390857154810537781856339583464532738835108640212738121851001550632864202142745166785456914349999282143826564639513738300766384794505601689648696916560472961974113847598308116836345925454096258286963478325933793248159116501679665414931588506600328806837190143180078851142916067351312911377524887170170027494291804069721274555459416401765403663202067969731405350816790779877073529873795526848254470742188921656585022348726524088285747999670720971302895646163646028862819288346823659928624860898505964327578396989086299998311864887870521169619156266837960154279480729876880972847837987258233247315290231871097441947429905888311056472697706983397348065667394411009163026422237501956754467254315367978176889595303880672272644898139167970735110968995481571882044738631842592582315068741535703524239261867639926781376880856743039542620304055265225163536171492830973462681392796149656207724478757046519917145992038911962888366932883499624232415422135057627790032559636572873591659606342320193201967129248634395955430497420498031949721715093961269950142197411550336943733173159358759939295190513296616478443536503165841007931361935143664686868687538090748498630423127514681853927322330781641771145907030559441017737433224753998962757900634227839952310980370841669165207152858961177178238577471331818915163543486640105897433050205171626014628543189931295383926288957466306034630491507297995619039105673012736131067291784259448899753219840630427750940408392521361701329934000922118320763245844626544941161672136524358955132333108320405003585540830890026974379687460065870608518584965000399980101690889834684162243097007023322177498478230114271536093652853574336283575503674376330901345821902316195607818920480645379636748149061767169349394688162697257932504431265278473021508202771525856210233875492377797354070091044941075756433165929406034419806865460835382936828451086223161080672927466378149830994421744090417991930346440597982027202691340556283774511147623193472404614038797222256513289870400344311895470279853594919496562970202410810329441720378732591183509833418999459558552330290985851310288176195266559015812464026875157146212233450374475419267745349133364920181678157543208885810163333057528561968713523846283833602005589262360922574725000416495554551235274535027334544693084486543147713959151199479276796971528930162566265925947098951900030349329921069873145012388550818266600341222674590521717272029029640988983656318657799387615517851628716978151056586889777864184233213736319762871272341689629669189922642480918397704380775896175749050663786430588755711950204111073513156645212761972735235940771964266902511627283089333076529666925988329813652163956203761937354119258159731402259510005907730600292302220245459624436501076301406927530059450394554073885347946255177484305502110806072774839017023662166503217128548057744851017883562980925651825632950352333384874962373713628864703476109088850744335026628117783201815512016340220730046252580778696134911404079025028246847736342562695809937463376146603993230272490474900839969378866672012440391535106008461759749248560679080163068948209379490117479433279984036110128601619524176992751000241393649543081057831952204932207537352541634026208796080623876742668839177435410371747650774006056392514059346428549124575100541986659561031187273851142942184107403321359164574344862025463200106298073264800119695535038564457307847707381859789184658746248646422187510141057837262491337825504167727048240601906599691961428336723082861432762705720159180619948330740466871215349175957413387750161448505418931439777115981306546065600309482511169457122710006841295528275080854720649322926227087938634854183294176924119892157098865022047928798548858851715895641165853135984560449153878776475535244954395550316155072916353226692790900269202539536859049547367277330998910380933064962022083718616424325797825804898997387688930193098836798125111641210184942061566331554058059240277270146871212030732488208957582070577514496106632365015639249495045033417146550722732968420053069665664704214431402064725322154235541354576563162663790165146448255588011867389013329975019228784330993298994954992641329923672301472563503481687114455834383771655011557450407660405680047211425550563430105186266813749960855443151533856915195753463937582739227667481607655442348126156251556434176399753823005192807961422980372721610649338417124907899791855239954390212504847861194680896701589594878467085093895952940526817836772270977339965863075963401585506537190350975451451821783459791023632268028696608628413651430872746474436092577445348752415712827455560936956940815799522331012311864052456165818661098672034095395242780530333946710788276540247941446952469995728312756869865455152370887600243734380827786793935433670914185325438222702451212456448875674801897838531847986667018897712595860856245580140456716035671196456532709738317791056055993745878777149093280406384325301451616382958355728821783787592007566418887336496923589625094802343090780140154024748451478139542513693226005786193202476702997720220981969522253244827424431377620481978148637614328353733457805822933001910618172027047708113189239442957319416501400216884424712260483589367077039081698236519363021096643785248872487993288999033077215776909633294227953587205789730080408492024483349693268478740322152710471593660868786440922617822711849994683834386741450114027093849050189429264927906273691728931750111267247084530107979754500832528731406539808313430867867902042059628409274045809234465026767582557655043839248498363937807894751897748283128403355087786594534471900025681868388335452938184498595762770499899624521645116458281845274509705318200813312037681787081855612828275657804687663353750763377466079204493137695952451840162259038122764353193015337900136605050132223681103148618445975862095102406300006736765152757752639097666739078895737637214568343025835416325092222164037628200258542592064586428440032961928372057984006974651483139898018658834415182876998984279756020064180777203332628973141947314301009008130062639985159772564436341530047315942668188730601428955941206257261956302069809041846415594159786160559610608012662654830502609729785785379555283055750038151868818928295680089245027781565055245932959138529786802789163577748538251789652825824936394432851802032705514648885904400719324152337353107597023682131375259558986132264830205267936901260117891739473679467227570917039342555527277562386983731990265966563051640234961818162794812443426306696773629268867387765144741757216435246256455246998180244243026522639480950205560507246885983236893251788629434638365966106889674840970945137539436533609245713941076401703157079199720906275441504310100187378892836265446519111407998994746947453559000892273497306297473554465356630406887383735825657633802140342806043148056473886294890731048566088730984791234664746608141171982656642490299880895568277255714424267638775617888708833786605074673330986817905657752428349169977772832250445743372917072835699094895962201222107225877323127367072832662651893841578805641633007940963345905020262446308194370745412362638829073187439013683467103103927053114354923474661162157651736313490571615651910396559523928713818403562923021484721821556838495327569782247971078313760565528926455217403058998706514902088668063484808506950764833023265532297945061661264248270294127832125287177973313576488143988763074148728848266350458420800427783443037111141594779314095270853379101548339471467212156557795231797399574425349338276303059635277960058387704147531784975654518490310652410818142061540515070830463395760237445554184730539652681308358844872024808934721744127919022811095601069945118852236394465810867409069418312172505374774931343351746752819513782707895989190523320482877190244567089775942723339752914526206251208696297485784796926464610534157054002813090044863451260827433922114183579943721224418372752418581058119505895819561950137118543500286542721276449298737134052466443680245243416919589845793285777612977316808119217328883505485596433451941472442136628316973012422850913153173369145863364180352637812592483063165373311613690868889468662677401492445372113656349174750900999403353252027547798063054783731321668107534208290962318940128231025497600130162692794665138578673987713306906437561476348523526585975478634462712978139012351591468751306523649741737293062895639440658100499827191097712813498744221818176284907366840471203409924760417280867850673428165468682309597112406930088470641174924481472161070568773165465058651884611363315868253601461129672908673412328800513371262624762604506856660709813596954874001389050404931724532185355995938179477576836524459341738174276374965854901779073975915112581358865659865550048488783191191360681476934894472197140123794987541699614955471263593531073822314699202475510745937423703812063582914287425211642591027829334334091873385851487997432179911880101600476684532198455351928613672380340247891278733676880444604284326585363478895044341001781067190910397348193852010883473459114513665740614594801990366206549157937366554665853681809634087930240445432136488027692595713539489745750925187682107109819906873053029846468478025499538776379158741917475571594947823134846672466372299944849251671381897157622045011790395766767625634563318443954976699535159022414608390312155391205321363154045460691054283051779792704697009769818640037328272690029514039983260091759916234052056001020820524811049863587130750255774486317210460543240494510861095661204768239463677338063513893065962114178216432773406804497839423592754530787822288284545087108601748934997756587449113113117784976403664217976366860521954780314078112070907440502698437173503698749612519514833827801224833160597909056156815838608867707959040389512826672164510435096918841912764376985154829295377725371368839999198164759281384307678608524391527453321390168796432569875233820008296509613288997532865419379572685756144307450295522429051756637435467311535432112702604705963167972663067285046735227780889378833538708295317217808210576681614852969396705415652869009735115857493449733779291683047124266808632466329138962266934487994875682868838550659761945406052483453100335065132832413167080896849656718981246824215203212003571042445162248970124968331095345892888325414984299429855191732831984066906445133117902985718985529572633898982455562186530719625253205253467558101557668067041213973300245669371848005174257083432281945494619516483147336320076613836426671122113796057838631839240311952775695295617718892033985899812952835701748255832504397514510370443438667731183097620729679222186264987237191216143929755964216380544598099081002733994851336457163142698084472473064656717136530427799077687973118427967679199562351060791708332269902300059833598378883277530366628073231286623932227730001254128534313399516695923659943701256682622344305828636302351158155678753038639961724351827688897411897112871947032060884265246726629057773451965359625794772850287232350823769866778940130421243276459506991572500652771622686618593686191311232511650184644129778420078882607921193242253699468116529512997310488070553905980878347338423956906935924357418219797174184036042984904726289299835790359819406072957958361851837839086954491181856018041798296589359332989630867535022959447107424400213375906132195504296929117461606591514426102682978606542279737685841616893484222134083101941961148726791752152136882746703674520729654205262276402760891728056226128861173468356547263688605695650498515028232652693448309672095185043955741714986278198864117530547650802691287526792761916152878944819176647845167482747643551950634903963152969495391322664353273408791341680798224312447902266694690690477181615475901049828689943261720059823376235283401708594828825228031781129975152672324079968559172852259150886121655947410448661226853128464446937496235690307933501811006221251161690875175981841597372570115860181578229205753916857333866694631062776197878861007795859839961793840391015626359914609441939646962626650027235602682429249595307470547291270891538755280956196231380700978699639701312455864158823106649325875812384044168810629990454831565222446332081234467039832618170214624579597617948723844776056148792238457986274960087152129764005990860170352737715812241819751034400838780762201884418257376380383700586489361611111560974933314399264057236868891053758508606819010796600488287903775686365758016451870728821325658254413664276667454784819720857508554649675494840127297450427827247072188059746621795458727100538402516755697743997295735946007190248612835313960817865638552041980382938184543936312894206614075381543329094457643328404207937060096929353146440704225646670453190408532043102268944961980620577350751707849768094286266207601009233163480388355243549825898720800493494087058432454180682839644712111549438564726870985159325093603966997210973846468850061290604360018511259438550326752159783510304683160459453476969350122697072840405781205237833569968015850086827538155632608663163564396672861380841637218380425157167094686333718100505282771227549971687723616462064390759655159515762291446400169377665462302710183616060807642400399598163291402110065412441828084677153738582557775748545586304852063606500195702932471679783914631431315443996745807463447140298223463372802041296253551067043635676515817741743050866976916107916085026468679640903966321318443626304945963862391459457839515835023590027541140167266441408699500849216629374389698080647341865757408167493611336544153613865476454330051145325096987211513678968284208101286923249256243548853758628760374266884094859668056733948849194274640615001155025989207407249296308843727345229615538449311690227506415371258649890629569568732333897705403146505149480597005588148577902336337735500232330615872735310717764321955096162780520201686778910918686245913615692337276475454004368158953701763290428460506135287000331289766397952237249279298342227116503032546639587503998590832592373649845070727149994545603660444413512599607684862426432943740514107323652516056549346670153484082880416267202298025453596597590242255954629700809072492940638976389731200695686386040835695649981410998141687309661801780619976920703126976200554993802373155304446105907690487770104346238722790992152742400215105843764266449564527606515295321188282646136617135011729787337714987777870570779969570038817044229049991922470827090429299282223971980071909636545397047566462226632013330876057805220030215697443723353083571609721963820395522041460603722190993511348596951458218755689739531265370527636358103572247248430564021236060375959680322095285799092542651815645075597666178787131860834582944284260246248502946030955182704869198822343540044875815510322955947943735620888788102453935735977688519587795765049060299834769947826277811453540459743646569685536221464493968436761605973758144960865299373953392950362708479626689959121776669991647618869637124891973551368467143196700327391850163423438360048566288332893693822529016163786580149510011354464838228932802049893633211508221451572819289849335703210644710414919478748250670069903020279712202006346417646580814080090947396906683221269134595854652354867028253229631168479004280667799675446987081919790959419082263164925418501945653009150151568174532080995251106019899939342741905647442254633018820945094963525040346454763695689762946979054482278036291504419513719452838846769383339999183143786603588606430255084668775820339868041430165716085005842839989828830873177241112835151877935786463316108282278003327426788424864471728200923765040270176606944436676785921552475066224319815857328036379704611664902603548191444591779207536432361673363916602248581959634213144330392149166840334360881949400759689849404395156621811638313125477453219819209485728364185232074940301205890266833993576828439953383557566724324431823170721559044308899814849899388232933163276001731757620001376644140541059011649669341067224979262368200453349573368349573346396756397199320137634992329758121145067263928587689115806347896757159676182420072564877889344113243306356475422209240825192150397116651858831896129175484778050609503662508258787462886514301463648596761427172872817152912771021077933329685487933192595715568012546879756340418118279351703885731640899971213709885359274193808224110337909620146898086238964871560588679676827449895267378876646204382529958903615306901992551018954149366530918938813550030544468141348052916324662966138169085665217277441790475044318273284420643639377873307257965720246693681463484623643704438248647697095788842625928021022307764885052226536000088683331267265059292309189986666529351732208488419095881322064020591430373709080653429712732028899109356868424901112411390433226167916575949966176002409861268010298740748368579046398569740810260508779918190813486976036360328533099038610948549536517983096931934751506281698703736130966702842689136720210406005055138764526327430467900834762401197337663335100734627358740398363556927512893771297264681717623297774323149361907873439278310152867417811780996202136988001878820289235654367377134689164833369477036065161875818564471262328320414239078036699624751132285885615829787684449874497719905702338596301242062056717864100846519636946163189521138728790801011378345927450842021197085329640482749620172487151929035545583132243008617053343213938997894220502472979247263082996273300853658476143161797048062197359026263290318431668696158188027925914140308167515981743626854211655664284154172737452187311875784739181592962895990624354721208722463381795904662932579007349950867667343277214884681023589578145661110573577887785350774350027607266929862978959484637822926134009211439021200462463646174276770050989040134787938109120786908950882044440362433533684442337200949471993070442982367811569585841116082013879754078456356844147887131588831187500274171593009997493049827688682506976290811119707714181907233421564563778438551019494530432883805814604729032728661546413458189510544750778008624856052384536822830899974906504992652128887320769718960502854742440824017366466105490463868364508309638834150000451160635376773577181859974861987885940742017062098239239591943357291873768567592648591966753407239177366156626617159321960028784277126160038015505959654098996464283802128730193197315081495824836982001684272462689397631459421363993279856598394781517266729265669214908868247334965616098504538777124165042567085206393512032564578616359875394467192651636963899710239981149319161816856175795302469110066576795729847668660286126844299836959962049298862977025129729311508690021656690378616575096457753695883549273304552502959541639434917592591457349241371460644714615298355049610881935759096897135357170987946713053673394229523187755713220298361648999619202393447315158465938325833007194514145015481559300477118069003780046963628078104577123497501842456243949546094012112386793572351207317453960561396409903938609649825531751860415815866716948514022816439672089930456185002066155264098847956581331659778703549654809967680059032482828245635037259323287217996155619051816078378795734425829249182254044176257450616185821672503166599476626155605355351307946124340119440726222103285863945504062965256141623043786059241501771658114441355278764805702463408941273481432254227581829828894834974993803019155909785288705816241769318253295966121711758836852789146185747663020887083755946686148639768571275580698535121624878229149744528438177373450077407442222949867932538348117671375053637356367117847039641829592113871934105675071905845574610560529399349897421101393532866402350344634557355762019889728561978511209669888324548341302883155346724960852697893629428100546253163523936941013930839895109135999224194687675091786141664869022767384258658724174549084342114990787711226140325390366351360835010010732382497216251697141937648932525437258813377723841371649931703030486976202453736680667858407382644593881462325997992737171938031578967112585421566458782234499858171279391518339648044037247024345559329208033647541730732100341249233747597667610115433044712294419032789432552235446164846225798688259447681320653684283009883101610936244020795352440012908993228390326324216605612485714297853732776162919412723222038571597067817041716746021678229748989968258337168949624937912971500084929117176136943279158082400417732474700843189505715320655504766585996431463028536914589142092656971391734342622553352892924362177843877813597753618982193636960423556364183808773268657329842498125426010742228614360770800264633355333134016727179704096381960455591193344377182828911304546646718412160010569232515160452919045970329487480417528770153037459797069382341833826413229308087022292164525521195654677401978885506379925355658508627553765956223379251470106994474444429841366012864447870725080242106708568408906847043870739075677808777680680654658556892085496250632204888505287242619714776942510541219443647960914453176756690910616300102677290777374776431614316158778145842007034964876174296080533384374571025537295528980861411204041432262214580925333533615236326810434623096989287890946021657743977104920249672225594616947445313159432910327078514599797449429615033146522095321071513104267106341244589727544494318057613400740115781609241579403399884670556300663843449146059326795030518186796111568168195933715373705343546116772691970261813804944057902924454534690152103534127247400791310691267438040229202241225274879750002607510591856610066376335743896898861624796252342313520532850569109408086994080083353873153865631115998212192550189795159580257420248541585881385913922384295779866013769121623289184855450295241946624532444637617981778914177745036812257360747529959149094981024155755408493118173016382900957794702904297361640807487312346977312159508265854340074097457430049578849896781981324486720343928030944335229201877199135747218754251763827370992612701133612991730008223745477347095033519840395969211744432141218841911680444245844360320282227521610586044168054968225324502525702085069419841096898240950909136846959299901452233756063149753221149632855370835055093909367133942549373460250501967849114993123338052786711508840014801221023485033948322304900625670623745844358070164146136801664444753371037306966727641144559854247584534809043689540075632857146883570053334659548267986835120317668436167165974118795774156255165893832285876765211789571246864632784248844277150398856271319233729144657205973598239167783521013471151071579291529067057131785764309070419596798419986704041657831704001262884402129588143411216973815941910088861089294419815164022941643085991999360798955102924114594701236974033269927629166459363177985351479483994772788232408625529759476351655055677301607431522740544056106328341178477576917375986890698897544282651625305880904189955834921629742943088786054619567168679479377909815594507669182595676503819766733788406075992478700403104413061052317749756933989316993334439282812972026734887647818181215296572055895289540637998282692675555673366499929776426087863472696244086762906514430251475157934293019294557870747137092392094268449841992400006140699703981302049689877958176654864650945127780757828048184776971648748539205668990118463449313196705188569569977380702060707233716324802978676242935710748940110989808076754831987096684933628780108718458309759923803118078805136332350380698674184100986499600311761546160899395564176751525939176025123108117826272945559415030368169930682830985286451943569470356931674441840384408533273009271349633833669615109022836077734570649417774906996407532558215080669906523888251440314873384013538414027290915714544402215204477781520521042368993312372346558448824536535564484291211478564375049850957658613314785464790063019983072928921942653013474497178286875069735323849538512597803107875440134735086321691508725773524157444235706960838545794589053763079595234585104004124388682611904000723625327923722723484079101725130477412340954729806694624933165174384003761574176362870952975875750185116932241544031002240028154483211516646181280513798597238890496885813454666868874599132654607001435148339011710346291740415725783886628192610233764799226578388711017861304263831983373848806229574729258160071764459793382556429770425248009095829769035200597007894590567029215028346248225305259139264867714759679261926874824071593645412141373603192848832669441801802982423112989236073062837826469876427956691627725814069603393477165090264614718888764527280908143521708542640647475995119544980492893524288896697988546126346009800472015286774603899941063388231801171814418734208899472341271384384000758911862797130796581469212476325559655292454458020468946555289347116488470997920850409865532398175916136036858551775452175029872594434294308121442022682158171860154290217321167225065533961601224305243136373170183318682750775018045363066716916762120444253550619998987338162302000299345474625111114078055903499306169134585934851378492018087738460263352406664959470574691392108257626045973081458875983087524078228502729113632822494866408040668128720810787021160344187739728557361836108539063049044584125455149212732461778032498611120313675247254166632049414577568295773227017887688530064121762588956992056127787067588553810942815380351420053011951604072317525301219635394373603845120739494125139918246646584860956187591315394418090845409418051089567940238106099588444070875502049755500228792803485504093755208997120961891550201649940893655290034286155856872143040892205563362569718131560689254588567701271998172215432107825872554359987464144578357718893780891054990169712559538159913317244364561703603353740890825534719929217433344729570075589310046767380017694761016435597540738082483138095183329916136586558448300692210582619244047384648903592662609048443305690700237765138898709689341028235230190268289648382798124407813308935349138511942023400882288585613586366990977648923436458828935974651044519061298158959546358832546788353382293770233806330229293353299782193184963405171553660826816339576157776620952199196863685040619940421790766760163140145334597019017876635065979667163921768609598813273666016654179583847036328294278160546922625964322295592214309145699877378272132868408741114391756989449641802701926316965222520540670643232941822927492848235222701671343270792056337012971520519465589248206813918864357332344344072284251663979461630719896278034052331311808730678146734825742504980513304187291381884477646526555770193055755128542063420411765374947146450406820475155752729562596428035014667174198038151397190065373443186305532126705726463116162769236021629838858660981841999518163222360305912879953165583766424356040443761136200416339144758692496231134056553568682312706106389500475104113643703115069799367352632485056443829618632257452006015115013517298064311168501295571866983893804332887380447757686108822602229699003493688620150597491092238079065269301038536532718400075002511056294017793963825910825944072249203763023143652820354183824635361952763212268409926919039961643669685239281192127135294196506381716674987964296534082165101979511971535337546327281628418748149161543558785685786715843168889513454642138714027909895778604999101453521410649200565198900330203944628074258303000107270078619764294767677250799875586209166206108063067578586031349148416877416933901295934488891307294954565736065199084905194943561104625601152833357971791890891412304062865009820916789570273067805316552151942924670033711373561504831114326785088540805713056648881365788329201108408867061176498602724310668667773559809453327424127875965586908031350617180619579791763619337976915037266465262653765845842923949028044985402202820427820222445937777847051778866363431244951924802099633972262111316580192680039371728623746445260668024825796390953889363145690152652947669906754783268280916068338439931325407350226035218276829378351091476769053591791923309432386596857456889982240804216110633987982305127599314778794453101259945350286908194808304065522179923657096316525081824741044292929204768135561645163845881773925107699575534287947216041791777629413075618134472384418766015637253676957311775128964576312106135816047140195748952847152318405562788071689871639261063584630325722832902270734713676356546019733092768377384272132125145725679678925313722143456922447982573206086372092933020652607040992558057687670297676440767242634449417165366073693167543817044455499449808186471839755807247469677194288241459031154023578213189939157738301855939147772505905845507022053435843066192858527250205937205129780624274308397335238786227284537617346389160965372932309269954474378628184547578513804043381750647391674588874717554601866471685150313879246281856874774638058733594397019754181436351074443099516429760771553540087970606992962291109531839567405414072603240498621976103262305607261021829510747521256172494730588412999134240813642219656170766725797244548725480831850602799735953522893386611606988078926483781764419052560383769140373642845787776055412660517421872327051372217029954413071759500866613071961187973551567928034244889688388290584888625715491826630222152642402317836586377616473888732688869447764151718917667496620457282059964821511858746909164221960204007787082258498512709429880182968740392197569167631347690149514090535065091986301585906757443779362945426802422994459219339979923007984888721848543923843903414980480424891869644751649650074693722058881652226480842310292969519708284997698527654937684054530166034993801821955305113847626869904060978186975877115845070102405202851421618320137956953313039955745255960159474139349505244726755029059009156098909530157924261214521632915430941941994290144659875811402477044102225644537916641236275371334102678630401478176187771521418426716771508765814837817642721831862505300398805122778777171901395368974625110891204307794742344941953131241238931139136571337020823217756341157761590101329683477692329810817091432791488989343828937910805737353636065536547776943326576648557132406810086047273205296435367505234883440344690190175974333917283698560524261278265139625266502165745808278951799216260880622764556499788654798697760005590275768642179106507089800214503737699711685410200820782355903424572965288423276913061754927840930331337511900393067195864884979935676074677633896968407363762384561669581647429899443319375813367700447844829762894145714659648346009428244128363843039746829006457570663853973184869975947245285463953283134452887241021082240988222956217522723435902739709684509750346350672267062387391310185033174776383844935296362135957619099893215121178341656706241575105138702417577656450867837589417912703043492057007954839902150258291175618862278688989213010180595232110765910242293384371169810860917486411650835283022834895175036083094083059524638952001018147685081204579079919873847837422110567070273422948123444830384890536889624428394909079755797786744740357346747513798262020579552189374585850736444887467138311126597203366530400668388551184684436533313395823127056118841484551561740108087737866934165429149196493593903582767410865430909490402105685282618442166893794900370208049098295258699396167005527244201811545236038838004909397117747231786161156837498735549262484625970904421031358960889112052253663922657893985823575499410614704924604825171621148003247420794187065717032538259678691285170309981853249741166975660211650717749475626432969789007397625164343321575217495341866459819127291869656679279619608140609744601889684022263054248369259773449948060909125589074526233377965737469065141103715449439203109453555717803225760228981125626060491946221528233763651784692623506263805119987445459490544591407082068054417989438553502718310442053712958283901392487833295812228006627062721484833946549390506380070665977991929294475576629652081013380982861186607903088533793998659139522158297046113606328338540062800294052365870204419106011298577420284903811250015801317933313855138223687060768024560103676702952580187237571304834213000551536207188494208815966958397822979898409144972797195328818811700219795914942549502759718450551250978179507879754643456947521487829079031629780484572859766428870849817116685022524661506058867415118293769033738956447347573203786386688408421239034357309953793626445828012151826865232347277126759534354773519156884076688536490613748996996771374932676372517976925487754574884784354693359838791788550494308438899345024716807886046838543272466910994342548135484928331330525029495613538537927232275862997068818139875199937324731736618813798204139392278740718121624672051769832348072639411425229139632559846734817494975068141104305645654611050460518002596434177525623362712599567786835196124847037041751622163047864237446153014183870022362156234078340169181557499800854727650826221660479861282630580723953535394411782351954054708954810250670929477253820298116972061531902846386805380371761054749202243125824350684434377207299592152006102438892734632279374374460294094727014232725564930497906952404405206478743192157730188866956831152144611629404329657621369692966753160074439583935396478187560445862883259417814042774996483193338208870318256702671515974094526243311515647817082361565985102678181715459920173469048071944804097585569309090936237422768800613060930434917139750912174564131468452831672209569333853022525065738573916792110154174719190367415123270430999003742539278658560622608596670532982709032366258949034152858262046001639989181780916244932444468859610211375326764415672697461439190223200109552223279709508335534375322780740407281754982464084889458421063308854799321689788553705806098443405155561036453716832164008701233612041957737350770632975181987968930998423156507038726602819882510699286606631941213070524364720894049317768744882797006047368884181546416803568302736936996727213941512023927528807267617673129538594150305752922878094091310155778810547001770959275153116931298647780546697300086352890623644292848225871537532357887698772947135446903989442315377732667493180568267645023877409091632452031293121152640831781158994697788150643454981239001518245137731370922688958647200405940783232566731501494560146186769023718504959914368914985390959383823921948823613959763804081614125886111822565262917924286203362856594102549189577155574630079224544399671826658450349207015670901110903616333802892220192605298783295435764368305234401408573998031712516830597340484530330046564536595915530318902419370112614340255601018366072914238137860948693635380950959762137281219090200050924001089195075024466407322786816084585173779989210131040828505608677022502915471051771029019028605849763651291908604355206514024258930161947192631669480609704931846151239441272484880152581259897515988145601954245042697071741502463112575029617728699723894585093774871314043556422368246382248163126041482705914362989490646021689312031608765215661305385657422877121755643936949993112765499959220463719337202987170854326701785903309414371881946930029879320096503064848965690211453961820651584386029306395245897079013287195126618745990092843151104073718231961765701597177956152357497126577559954510715702125099884727092708541414820299211245121507656724089940553848678235908129122278958010725729665616386727960258656791151320731819738091370838310445272132345390999304171846666414869156825584595579765534178733954839510995817640161339768003588519601531308657028654266005641420484206731922537363725519929791022027539653258336321134122322496915945265441604922191868984199746132225010125432170216637435325309472837195453066164028139729070395914346865823049895461928136458168622522829283958592797879504489692791046165568577866158000181193674661385677999654293863560893581197262238404850643676402602269513908696413072903707833800770873433695858895991707852815625421507564889248655634928977170514144384549475832519862518683221735263120333528682128090127988661543641249034991814479012447854839776749698258593442971690272468114922331452930873419261261519785165462665053631391131997673611916639051541485893704234416408115173652543276576039023087863837184274202720628441806873497861311583007569787674856849332867325202975326295037184054472709679510986596779493085706153032484254814482921486815171449885897318422599137323344414141027452640547475158672044037463271154312626261798069422689270399886866361547913533369128060721134494426818592360156407400916826453312102404127601908721229644120566141212960294044670741000488656176638028275001016300047497970815362854190439302862983541073865829855918023676445403397465527452703894811390024051808067637110922495344674966343164254007345305637089092663444382436316359761381225086628197394233453392224128267255845099016906700751777675262692547315366296970376073971893354113341782085520733377933737751714568887357249433124520412266441743387069791790549714187116354742948637332892701448078744164624086452926520015879301371798673335614957762655703479168176076141108502985793552616559380258240186102982173452189970621260652937983545300278644251254712804620094111995482965703207048588608855484324021681651402696262467248752343637178612070435985421849475444566519187729738923743451284343453094347398987129663010499119732835521500826158396032618410273857404488734128156946134772668885168043411819395979027041053899183944694242762897943222252014864642860436334568073459626138524740418962697803767578491001881551394801743661379417652751453113738423957507753217200836918902708424924074667023483301793045635806501343118919901833619794171234229823352113857802978982530408865771998873760331375884694348198305474038802459049242881958340971801586863804564033387905733939269057982929478116426051070479797586774921137208098275091863493550111576453538771573596209946993318367631813456722726760044121468637540285276386443683943633158427044798202032240806380649206842557122451187721255659633826627789181519210842569001664881179995177214248894809709984582775550521495520933741792797138380535108270098929729790740501102505858630669534753242605707297811509931650820753915590524022669145084480676114771228755944247036861178011590866111036970924267920069716139955993643662980067534439930008685458424443654059768104747290214104323529694055785611734130333895918583823766217263608802288792560622171364526529227091236354417287974034923814169754999266598209181405162166558067450978250112150027057354887675028073217134365068533044243139449960011733033521651375724156512438885809696399685279979862294433956566654001731796553427441873364998871039726524258599356285993111547806206407412778139668786140660986176321401128505595189894098266739744446468358278852824612136618453692344885714545403219103111500224405267199474541150826209323856041832205973406066774689799902873988099074393537678308038170095792914465126962386242428832245878566017390388233225328441282952906216105561623883715748693767696427605660493653897703700492968863856731475907270246389352652292000948096312423609689379534198764881056976594246289834865997981283601521668153495400437890308113214063704753838632215391590416912726831698780149931232342119465657197875069046094999952600578565692764459403503885440662497153712630678207266298496092784115446884933740547748485985112024420378672326035906785103557406396558459094615198074562083977160654171142006233166840353370039832855937066530781802157757194976452368009184747571574580683066959747555220697283969613582996199919445711302865365757893478735341106779535403673149564683659545723327848818652963121279221262464419142980309337565578621649392270404292066470685717841397529654832816425670105392704882147089051163251135232339564827368380360902313400502612302787373314925454503404944966925604933653992595531709985131647906677095335194456192372346293005383362088814459623368827146463135638322344158330945464923844363677638094720581865038879245172573911795150324403389014332029519389490244658204100847401755306571819208737198713622778538182938748621103259464459698456040413358053559303468819856027899901855626037801139654159627152747843809488594447225647209983913639724329179312230701019510212359368179666180370133444782635036192624169115338039464608451364154604086831399428006711544272510001136712789577568784490581790737036393270250985163940497027742263659492981834010141429608447063213280403885305013343133184363147246985789978861727916171329638452008693092236738701830174054053041921735315351017746398370908081495105314428107464972165927003755716831719790314815647140021729091540226779676641689226850584462332141860507168751708870804510447838439326847849039707524721160436914873509303662254355594826460381735269995025497474711192165534018744730862397238496825179655120001429885233449212875046665524425461035749201114805532780846132447059623924153628068193641896072372115434684622117289084241880329246771507186384085482432515816316089120028093112369465337826297026369514784736886725513392518387884525375765741708631878927380363542290768940946457982864938115390392635534871410263150133578539123880479571860858005148812738061761395554892657342676170104623188150357827141954921152690006211519213490645593499043168841380577788574492657732254505455206288509357396002542453848863500309346641400855057078903439172397327596021604603628586830850429184537045046813357816404264401228736233126577921760081246896062426402545497563019577306840192383147237300191657242495657005212114898234282955695354596163027095113988184407426732062932632899407211487730173433134847183878158254127267493018779562781142243867459141506383936031302182771366270603454515525107000388064197504076795291105594982560870349233772543052979479791590067016989408803787338619649216401583479720250765463437365611267203691404944475631005959370271739199576153660496286878300346176023633811714876735006444726780130022396727558480587667671277627325168440562076217582179105340008192158871731720316278383893004702617003255386594901268657564668019300038094970946580711062254037635368876847679203763570330833022615760599739219945570744959785076752106945791482925747453969703096335487297028943057762987884747277967981538267928100881645003170558047186294801883790687452652237193205147901633770441638366591364584541349502995369259124108687413436542307823621478080466424104424619191892137158042196575837666406997418069220035732264378182679966975958599700337046589159495450360991570797420881124237436763315809035834222957116058969044485838551882636450007802169672512515470265173716526739898320980593006169852182998381731442469861436774200836352008717749119090123807917985002682177584855276684877723580409841887028329657476067009824518066214242958582242871101505205599743669375728980192359494218828407276217452919837158240518306098358918096049697114262745475517769063348147966007536018310440405353909889870089031756088074330725359054314838882647885661400309019123422617989260077245257529063495323798604024640267047679561869387835524285908682861563085734682776720084098064341132696389638823819408627555976034209443958493241213070915582068868938992715061430311234889689155390965392095172838310619924524482588469803583142766505779052264979105727914851858193574884490781754691690177992639074757210697358268581092286033970524628516748971334244988227342746134487005715691478790535425393643239537400270441312950838621515578187864701046889104934026188349211869304311028839198785472526511763853175860015985251840991455193060518946473686949340000851660859900795112150732793471038585510396819453237200438633140192814121095729067428334876150328173222711916774203948719992309237401193867079635834500783700943224233322797655775284201934527461296650250158401031478889458754812750169929412534703000610598283007089252342646770205401536934971005036577162148933354507706986907420327293691597856785737469281910115631891598167813686272363599765536335533402870423973376703880541394024290099928606248552503977074397920299033410187551869255233806339409154333633715947426855523649633783933472196247366602323305486174671830510453360606257406126990821518261257501946022026924440161223779182483760852695987161205209156270050005762987694896896253509829365319852595454672502808192518583239046209782531123239517365787983484979614572920904689923522242922067272141962847445448103846083534990196051278132510390564585082905373898283334984565449141988200938672429319071100984365520934517245174729915173898804475969931054326913698146878676911448310993814124354746326890564362725461950148488745222087324807129094601519190725676532893825791733720975071822132247145568657090413584487452361552221400873490641852671274456696818782760556573389192170922403367739962495682378392049517012990818024858405900747513289478446589559858383835338965967552153672111644616268847926550460663927177918470422522135101585874194698908762659646330208098431379647711197818414007295472441953522699692236764215307908426264400198386782507947494131410360669169314246059037697581982369167183884382679436991598823111401719261491260263135546592726426418716723462385393908073115339677025531813307396657386925135786122830042882189249210454770503446984958093477819628408205118103835388097712169874320296793260607382769324238669288326675984511659301522937282262088701185949239543706352912827423746511175451122609378596637843584228922593583358790702329818473183534496355115745077754502854384763560824258289398289892990493402178175563468771968670875648418724835054625405405037495810897868408605958772020224009955160236982140695897400221765585407631839929653228032906959596326633697193566365398337676070011649686583269359166229608919180101585687822333340685366390821814274631548273993244304514161473366085787317861859329592909853541797581493959501064568361289332216849154631604914361977382522382414126594226570746687596240245459916700670256768944907309330379902823798929516298085636672808456868888038195669218907187963406688123329054871816453534186908188056937235358880705645022015866963388409193820741963714562137589459103480378432414657588706181034205443705516321412368464618908566982566830925629215845167232166742153749876391472778176857528621665711247384979927999116912335109486802502605178172236255667463049055857505797846264058858927592418817287358260205119337762846309889287205759802877597976872000655120149933832776735216972890278973385447151460453583199127882803669412571690527933717123749931810887803277389833350864717763346022182707951210577590248958789528140231164485052412469971306714632315517699282389696718679433999601883809990026493385971296555706792937264973471883938360964363526317862453954340356362344200736894740596407710714016313464133692480112561109975455217313079331064298318104505840747811281394717983693100653114917070251233883388055779214415789805124653103744146620854862473086617143968874536853821905199807256002809666929184033152986888656317779618984688580151601640945246078441134392984292630552225861490686613246791641954812933211685581580146514279248057395331249971863181569306312038321918365102484165399251863686822310827238584967399971177863826467296599561447184805301101535193690899617013951078169497424330663656152184771666314982856302431274039050207138540270376404920016270655836395945197765949173793243669594701415860576117045525197892419971444294248153369543106517621627273936624624499034591969632796532727173934411443321225400770009675474996133860602126528105034430861871880528691369135084092572384248582227743315066239083941126231928383468148861600973466915438129225095873510110117783781219787780927909620132815713361864695272741522196043779732973300423628155369285773965690572516318648263586486215244554257694962894884800085017632148813065863260041664511519515320937090837907486340041945195300148288882378605120028694316594378006175403809882527445655101716474689821257411952591762285766271219452747594400227488196745207418203274464430303602749588337933851026244788633498613323904748567472776975582243342702884901952163181501810717521376794542078995957787478254598248112782778631243270779400407929022481494321344310505243287672381586463571490076521406819905460300349259984020186813756844309619375144544620494362187756541406827600736882726876902004855612844711674873173249336353907470930793530604837528510504562757353390414525011271117160583847551371482163035035987341283068268355050473700689324238509719632219202899638404715147822545914065016988975032637237812180648634554850939008682795384670530794310718159367451954782939076513097510749783157080963669576515863131382644382948423456918971204522220034879703288348849172779680324417767186824160465683770277118176840732191861951017418873751972519426032844330334125678758996055148958902209853465280003281361786535334035197112243415464822787998703526483890914562492058086459210737918927027567598477931025727637873470416020859987454728834641671949520037546228043205536327181502783559756092288087364963550872457144231726802007146568510765946262653452134094671665041232720478459867839750243044082673438680615672164703060316007768250036712029380165954281712608331850038769414475230109732704856482256356964083723243360679409932580849606180990396022855765451856975648091965202989964140308908066266860460085891709505194902012855565917768217334681070259834106552951484666985797540092695502234810699236253849526868857053528353771938900767577639552793343565113767760437612961890543222796793329907963105339443716111573883773904114270554124115633385995064944831818672180819817002749111682933830526095351882804829905525062503590333588974024898070182825317567189823991500851051646978493820599229874457826751585839478300980409148459118993104674235573904086286315189830539503899807030059172242796797269252399497763021192876022083519509027855279451107597750086836315207451957842380846635338098517038914631328172185210615894928237757654511807262064909193616702986053000361002661676941179127997531184734368028327525867892299298024126303148593752437320876621222218593091525300468525822422887603011272149812970637077645690291427867579247160842673990238624862875743561431387207570187646851409066088039699895075193367070887808002156642279931653066175967155930380966208231267204718971298515155786506381922923508063270526721369398339790623361492214684317823365668806021688464960687984695417450263749057217863582283883945538301779373326160983460126894301629561697707087336321928827051989051959157109815476407147095085122337330879573752394814034320062869766772233160005718057943582521016826903642975927054245176575043508309116519629396452170380837126774233884950416442884139151356639233709868796449398127158441584719062425063644203111463948740003264086028748521922325093025471910306035305679944015546110457879126470526459354847256400401579788453474387842959184875049669870804302941311757560560781311097120789825213362123238660748161704466528388852941385278451923033254146718536183530869152417725876086119030775912815178966612128659424125299732828848064887243791957512796560957670792022148693195045805535775424665289786432582601880882924958703122366664620581525873778843617159430742437017476925954188535376479326278431227341818991138694362067716408425509155129650574044060673588583984266337670740923760124520050022844550517059874447402495778343024481375720403574256052959091480509572837550391792324088150122722569067187946736204705986787523489617215296224627139995784785076606119407886521682488823706220536677098637829075335252339886555542312025132105612883407295778636127683430293596981996571471549383628636070838007144338412919743571366700172281580087004320540618439672944110575706592523354326753941981803461320398034711900212850735067783949599499494881043433882109022636050204902221049712507562233289431117091023314395315055845488752497644176507137551938174735007411542812705708633678598300770304028736634972819982783769057536420284394329090297314610070256260036897670665554087145090958066989577738375271993801680832962001047912854483432716753997542375325903215895803058346645376321572579558088242524229776315949134278965462184460462526267238187166467466774876975806477998336135785674115393708121342832621076965778310571061113299565616135362579953575403665863599908619848496560530325346127461542451123482927701353253695821022054730244117713067607014548789030973314421038676747274614826143184034286514920912894333289399483579993140125494543593148240383682558984644233089327202487983823021677493884167863357842197292964514820741385804882454556705103065592149434022757695037894784132205130347340562303742424640837290990233340091765411103384168284712694982004874288546635422153210727351277984589636654627215049417083788917116459977659625861127122930879284635929153125457228645672257384214541451627503770176548099727232674253954792455795177860601076788616040628182377809971027483627055354571153911174575225651777947385669787643901896529408880804797256184437206851560096102913911712924248572566720497239540284234938096058468899555901130575502811506052465062296451700930979931393169027379829060629113716608232658712793366171731754911592095057687060939703085257247787569683019572955067943580182968684439632104690325393042807274265370632111898945564416415553834625762892310547159959636331228355061978138373884892782907577538257415247824668027483751929939209783815351363120268017415717819172520045276661261988680541522507517664920211792451483139238194255556327393191883691955039532831143472971579316967598149131250096439693951709217271351713384586029319764933546055635140123767734948367020957785718306820624666578667834076248883493981063162642787162200566028009332813770850828888087456730364784989754547447434907791340575830475750787622604982389854391706722649203619623156597989460342672501689231960770742978443939560214665079366324740031583751005306235313796667192709515967791152537400625864536264815024177780346353220611634564165514450053095416684585669081968688648606627650339489166369004446495381068095490929620570291874464568908567036844417838230745671968875050991894337534621914668055800073923217044864332371050473238931645281388111854221618659441004463953416459870896166127543395694147484265524135399236891685373925602973020856680278216999271965312729978267864893092287482526884621236299529437481914016656662548363576610136812127537954284064529011398836765822141407812043463621076285391669919118407622241994770422048032605957766543933896554900208480297811286483151606043506716865816499293203005484597158558950130086371968217416295025691818107973178046610057093121158915950686454672314934739343259137627076216292529206368949187364679139930349155137773111737807152852698614190854004309134074254927118697167189280513147368160191436049803323766343458053868881051336107869380630723934753726625100664367974919139398542423183405096361049503778004104000267144924095822592047824853029475641958722821677886352655993656904883726804976124469199534528227830565104271547548351643514305283797547707810411312069785343455022361085585651566532704132646019028340515154762716709243795705536515699838310174710932860560652932388250408711449972675974498446725656462433585320197881225698005631862123706215001162823958239212757313997095060809599120534980202036671802335150446237438889658485397579208298631642814320758928876549844440963935700412853970115627437232743847489095611663344081456770806657123171119846040250486389508946244851078112169527673530741409555590869306871861445876865500412550404698310358549623621348802324886489392364539051709779670505911226621450495667918051085379207912987827057932277859233998471322507119145100388693719090299211515215027652950720582326198624410822382430129137776043630991512211624710866523276667543989670097440396965586152883177900867725571946864291194833197214835537133441130608490195054799161269577692224835936099198731263644996723516224302796953486859415584491899639225740821819738489964625885501425346657155865383429680234141381674265129445655928722652067461890982661833327472706833153325902594193623588004308166634882080538756840799758152084004412900149015039141000396415005792517856298875035637867435135196364883819506490030287928280272241735642565102873740305940110682829955064535103260308196537707740784683049287092949168119651327761623577197338520550601042311175840738182963664934874911998101526474107858325811234235293887299782122301441748031301611779090612550823724706132909420218068596369591322324905157496172400831103238135612486133885362838670257447697441668599683836008263139764292351122895864191591411397270669426602624953532220563009069789565929283742113304751927416162461786649585090170183514601508431319619583535683768242114807825051295452957317552563229037177848876855256956302977708470737678627570825059818362177254939588356136966688204263258642344087559302642745494649770245981900610121959907840250772818153077527330352547627696708335586953593192937883083159667034365453244403297898775086731538163168682765377586221193723909645162885634041528782393389969941108690352455349626813043194520696744467916944509166361445269392660782563182847265931791815337085843147919919174112239466102009351423572392995200380762766933361253234054184848243314095451823311997745888212200921952653504560473854074002137489522066751893134498717369681431832793868444161723465114321048323677345917453707049682157873413354255253073563212764436956550869536352281692114247508411126303742451803835583813165019419206258329927846214418567766862877650252607165401441454999103084201749757661311407771768117610266643769341096533098037620685589467135386597762894951622046862979621173872206717158020123292172188119440190860108724347942015674479715934834782945980998644239437304484331545131832189364093558331378240458192098925139712714964715128113324535886736010379588679908858495289729927750160791184904659580974122031888631477945565451249405882219326843009325781611350573009126355310896853947080853863316922925147524831097368657758182588247039907196400724689442230198021312583238156885169761947696128194557843298067146410860883394104899934358835660072154368488092840018934844400493914829243031975425929504359001322363316676805531004484847000282326496651327110223118148993033710477334711615529091587683588399422738257430313043501862550431904668750111032364645166818176879245466030358837841433894508015827272508719389169419659198509009074655924303456142195024350215133627572485939438548925878284623633614513868439254728210104488538639303541937714058433423237137015611042649789714341400950076765810611828260171254274122138199305862313403299808761951932012295724918516037727553898738467336964290093206451341318303455469760879382837132361282864028546944114081505088867440093384803444458509712463263463905503921218028973499457933986255045643729864404619977609860991891338853965055708901619817834911130370523745804675458601161348890582937619268565145811311078667724051189743961530695075379520520870933999172022960608509593268221515006911195063746020440163105798567011384109554464389886212666706792627765809552160339040241050317914646064673693353788815063079065272436493292987761754886473386248656314316196590735410556232867430178280345917439463170392962574455961711339707145887393037916137271450563237746351091687047904222688490799462373775937174642301386162658879337651833690989903420011806045324026472694768711938314814677839698246915974829509827189963927341962133192235268568449576137997458341968560292800936907446888706541514979708831195218742073319266646611908417559659084527429980695650967365210477732079118064927362982202356009343158368655157201764144655668166582238186912827390526317728950990680058086700243341778929009208898474765994588669615386119520468605467236095379839231229656551355094122465874783305695902795578101924232304384778280106016185450128871110099798111754070712017891619800488756302452514164358391075346637601615313735742920441448258793897143932829411675306755236441997143629099290253528826085787016615698101549941417067976409122323566331600292228011416800758331985030091920116717587475217663842116854242332320785538653965289630915339164763638351533848268205350263537088240885325252370462107880914701994129692100618290897473829547911228021090689056083699461586946934935965854491781572124929675644464110099557902963386722822362504853221534683463550588307962370655562107103532560997423739239104877846475697021352737353096947899878082461429212127824565634038820071276735682635695926221360729533138716695261141458660310020900898758321121484250221395703469976610676423177581801004615149781419974587213515544629770027107466131028844436978552458476713805854638777287777094499026555766274292348478212613397385487848117063402461666925693391960497656568292843270403959235408900565110709330850401896554018374254540276283762810447631242697596685536818963076651187931417184076083618627981756057835409647746870827433269581581379679603543811706225481397125923589484984468007650319996376803325211329412758217327134103945611593103395168167626189190707036812617455397861564744194386231438084507224797030591786743959935146911067077164552128042755572552470339270531493740224543093274888192545444995940939972071939044802736764723374342599533257088726808559829583524823563002917203911271094245184118097626743194798876134939822305306275080292327788221043491200735955394182597278803216109291917524717224708193584125994590256973036417223014152966744979185282458142036706665832050367545950934753378447842618821296901607686868117334229429696506917000084148404922796016727319616317360698830499566999003832694998750098280621312994629089065895973733226777813010346146498391529936993974302044664229237861302941158772891404713185870419482592032886003297317115717588741270734565224920110960591770717347552020621741075083425983942163949966920956085366434249023737887629901291047690930587778395035438770755681255293108128019996261929343819774875675149403421103029191754166721396235724866222442531288925284715645602570805067738620603078060961753118508603881466696407502926326628185038161898361272790706027715033532887651280847541272588138270246526504150770417599891898314092736234734097290759841522637069644963413445688816700346936547475428345577601408813703264434765658828907512683296151680618221322917119476327518941389958853527140799141474721368688575226237443310212965884275153363409654066617228740305823555417591202880901507467676284767411334260777303628349069146144297176609327744603237918003321982213466379428133029828346616953289748563242506383493434613890691265527376544592941645015864590945725110769068647102009048998374156455251559218508272146399847011145427943671980399024034973104489926768702987465119630464796034856089112339275812875668740130496167390387957668568023479545553854108090842143967091043684150879260613546640322625483962729197634237869547547178981823280531220828083711538113236617242663260798511707061254966426713019384578247528795806189595147981644698894941695350907743662809554976307250982581530423985764765801358253549261063194212399082597140042705044364809689273224218243401823080136646400598724840832436199479438491734947985775581348621742942208281983731827833034726646932229137122263792931684771845656446630688803811018444332522240724560560160553588074333510553581224028582146644214915541056215743778254564857318317913234356502304060630851321885279574911121691756849959330012080709960442652589860398367959759796821470845438091056113538822985499221991045327902931095571196606400689902869594712179815254770543479822562019329419588380018347807467871255760458895922444919449029107525522460634682052577381408569622211683071052153023839500184441904760219545089362248188164434870500477825769951394950658988891910482016289795811572775424721177571622276319760033096821847275159396927810431387348581794992207075923314948081212424029628655598345452861733113233768090890222087653402484810008040868320867024585652196214490260076849825204676574394849809476127736110372972497277036254510423539241764479581196056963263093096532162073789723088809464672912790188637265744523886358475152384169166859722750456973066535188157715831863423697990377220791223239596069756736189598798922783754732447987058114573284080639429446348248825780755385788749923493113171722641548620803653289486822005266729187842093839088631469656821679705645836680322346701322840546385847909569524451028590775924796227143142557510103517418840572275671902135735993121559359899412117165734656206471951438489817657385540355586822728851476073096481589578696479962815265823433834458305190062679446128549771953082351280446703862933186923440373587069900946903345275437076616353262001652845693458056963493020296149148576480942957192392368071106778757570353627806756301567638813814040172413100979135720463827315444204172816879134258262524243642787897845712825478010115355802219538482450075389600297516431114709123946563346001313271943746206290373226325364622008310929845361856867491322699697512779782326636083214973592164763581288571035241919695644668340914930113468272708550320429560997678206861259563495108802909517197121909523836259443194492178562303753460770590611670041345701595864482200880697013481808545413398630593737671342780957347541195518311252143751607974301003800552247365701755036944838243183221397048584077559593044848788653002809032373045058111594325685228146525613890867626537074148544826950110415020524565370043842321878690699526000706684120846880032826236059082459804899369693334485179519341989440638514947276268417745229710587867129877136691789349214987589214823635090801677144625054577822085899679264275574942296538790398346876752290877953322940819612811278062735951373046572365707312346194937190186962990386798905647559335805063859734391369734544603619970536998094420859169827333610992057165993077436608959662564993099734749821277935805274327475483425790510028838180633287932814700519227637300398406778488191597925036074948285252340040225720479486333482282513713253258061833685850119507254686205061293834632152999775691130875778119753364171462065628409444223074398937201191649015261456628818141305292128674904739739321918516533953504191052080614003821422281892148002571326458870052342935743750421534244188977703367704255023451138634219127432997119391094597581689558150554569769707816220448698867436956050057418426561492710559620375318704305059413063315500421884909613588114995573328779527597946223108910534670574053354556182704806111819072324217457166152961869182953388922897926248439518769758879750132649722037694165607268532310582687817799493527787329828252500971707132047469584656341948534855454979280343572064554527667359564721693814100014510416427999693098275571507324482829042027262130269335341077856466069983489786720638104241025254171284216285547298711268409578229349905714769265012672852421710190477507579354635787262177419393910046746373137520666916337634299963568645927325123445988068834135483390994156753532118041915281156718045093004823319429022469260095619806785676233088407449007935004644153541937705241319496175569476472189590234801744737419938708644883897547212041471412005718037843343618445848012660901433383880292203258885445041280018036381232459451898521595820675439508347699424199985881356376580164432857948737830909195008594088160172091201251391566991549090208274326742236090011807043781453486713723217111360971158926924859991443136470948512826546052739033244387825762825466412798427176643002539315713223812589975809513192855311631026619743062118654511170076093336286224333238602643384752347978228873870482159215365074529550879998571992382260238126289874277864887501893530631497748496270488595900002197784622538620263417360828549970121477613264453543063299829092455083453096845395130650101268732295508029064336876831912142820680074838098586880512807464255753853808880230508373666876774593221160289119536731086558920686776382994776568752029771984481257044963964718003208062000527730893443214909087830353489785602411386410230095799661237618500384130474146416713445835709142426002990689964474043676371021922936063810576744489140133321305318218881020269878505874510323947607486193020545518250504198211231676684310879673164398444813316770257548573407430219767489644679868989258281984150124645030766992209640078091104424289551367927469920853195910855759365896525122358110413048119658770437679688509360133180873480979263316213748290186670248216682834184608852118827456034310262544503708749811800831795546515776633039527243402402921113282852403630753765929062387460184592024123080706350665815361164221626233851921908885049572065361309875298177704674729658270090684071522529089181452219613594054611777768348697462408490721737357145264881461864822224251738053800182285666832769815010810034317051321507517319894307595577002928588371930810776032693420852184392376875563958669579927305502562920177057145657708710778183360646657361747985052488927629873576482296396537110608142054323922315587691183461936848184090363053775029782210183499946850907363668938011002281387246172861176498151410118533677108722307392314490100385873296261926874144777437386910674729787325639512028823465164439742949486944047039566996452759351091697192612470586262680441966393686814055543622498600570265203880766598837001888030106195772875292271373791835991266129598675827483209402608977740662196374223817433787975699187110096404261073845896325711435365663085262073527429246682326416812530397002638934340379779577263983164668143483759870673491463249932780691843998971194562007903529762324202831049196555239804684743676256328674962140992337903770402330307038577168453555046927364235352338254575011931392179520161681636904287254996753135274282598949511143645924650615990634747982027153014964841536957837073120815473493572577950155304325991115370995014429029619964999802679390741538466706345098000439092902431569643100909166132418402645299650601320233484594376636558207656635874932515307191338158025965775054286292158802110455534515263207653546681524162846618252618253829018302452530236319804208243488572181192448846773014628265033887148367919422960613009289220529401782231301193478184980502235328602542927020658901756207199495848682716572775477994989600333270557802546718275588682932183951018027681984909187950043532187649719049777162840853835429559677556302208429892791462684408040158186021546943412756027061642624255066839992237270668110693111033510863909929787925882344810172837324366542664683380464865706291913829631857380724813505525531590905395797537859420575839262441228170253894038080953285645803490472369581856192983128743261672672700071357001204781550084209463240564235627580401667480416500253027586767261957530435176701389645287859163286886418928934388235638990739795493796126040884212802347661185069252807265070149622490305703423278464100474466983863054947597556166568502096019974705567165474087723513445834967869285651193330406128154207961468938614427329173016767416137175699742141226027146676284310523656195373166767525239513548832791462942368602951115743149694683548623879867450763460830722142590089219663277871894525367106169454868832005021262187109105392956144707585302555589519578511688160531215078186469827238397384935627516902807277654360675038460886895549683202653662651032491529722657477498916345307506815369061279712979688703037697334173980563649730620525972815260357725366979175557253606477521665954566166211546763084130361237884590313155429860768867793123707496812643437758910063143598492394638340178728087143860530902825700392129876091787263835344557042358762141719286526641534581134097664185409526396454345812924918585275219826029705081716554573433296899451319051956255822607639000157654632279182603533325089555378005342002777411415302131724443884020675184829751789443937164833704533857658450018019593249769474147977909928740630247823539072202742131397319919966830640753165670424440452605957914939434517914723176831043148965485753610076299860141168231293902195966822572332284807894208914284999843565737771966944712436162449507794083680979521184343903439218635416148199804980182099036364719631646185860519569562445981490725375694119867577460058422436359247874601850737975727591386533364466875567031587496807630858069482605902688995209763730472919702776395229050859722774186724086275976434074577593888655203669819936349072022640981399836049540106601670194655446631781951280583749834029849322650223547909809961383315530364951416178479094177874721629971693266132434404446413758160904812333381408392244970531300820926475747810874109204625025371876216053403117790782194579256074543185330466318328869599440423510224207934086120578481388780076785235037505365482361715423568365912299681369272041514803835095321920507864951369108539998942578230811934908757815967763079890762566491778819007258114505932973295359837999765609147210335289939052328006507235135920071853573817939747730969096509149026322484805171732952085604160481829017286239791439539781564156620314977540658202166867114316269191124318144845492414755921862570074643143939046937371740988321373582442893231341529751676749532221588179622310190274075849206174046390213180100835332189587997979174144273801855683670725380817406627060347122050649399492556830177643066599408481597163500372001077682380587295522367492915694635613478771471046898515182063836267971972415909974240606788666995219296078881373713075760044179165981951763758119582139629088393227487132896199813797130153963776384620349719364996983215136526699156124940201737361227372977095110608146426199606050071524648575815866015817074233189625666682828590514190270808008218660328127850957513202111392213317074221527804252077957340509046345811132395749749110162658880608594241916474380794719881273608592227097709378107844185843917238405044827487005632263865729026416382057921328937995293925559120480387842306464205957906170706020097231950212054071758256978434861053629791286993758481071705661008597416359951858279088763524105003540718600056444171492119145530690589759132516122424788520634557922174640219561354642831583615450505681401025123798049068075673524924805096114693657621403122824794550320205550382513455663918179085662301112216180586392518862894730006868663451336702227493192839636521824637104178612791518408310841627035966045588378915187090042745472705335202499168726658013224499669603682079502115879134907160893519722335376693174551374154869115456442061952579676569861056698526047456544242981533069565147568736921852511111675490194468369273136223831709977793697070025549007674936285946730005131058039022185559697033340108986259503328057174405821538793113237917187316202542142518434440257284353583801071162965463836259883353639151164155150035927356734514348951901219443074847042823797416266709343494331380647353876466175890065802637443042010310053527382637050019110320552710553449935818180544845143288158130091534437828418221968475814108812762494062751147959692377781149039463865458308941158396845917988087601603029788304209462334245812809640729821431814403392290409704536071348894525463402513088206363033166891693376445484328713750829910236382947070507323699981437471305284949455273136768415363375343212116742167792287406658035857781687686174241463428563935361188897963277426543892806228519820393933774621344150070082707192271573698835600767604945977065365434113543724028699029403818017412401679429835365367295098316897815275285888435425992595482997479293683434754344557770180031963491042771615554999995790664604132005195290506069010728920773337799215440773191932495267959751814718325349432181766956531149640711394406937253942241533318475050948820349792023052930004448937753360415253800650749932695069483275431186316332306691671187365920456596076918936834879720058164988086281116753542361028236015089925456976007488373859500104019765330447861749844322730451121251437794645161564517425790414632995890160131221341026525677196876825573589643166151430950167187116628875793584306924750928433289650875806876811638209647447308866077294733107648597181223416525162490300515125242462340149478431578895990029551527929987955769831475021246628909301811844778051158302469033251063715817136405667084218945615920448978186347677769581252782662592291344622809023706460412306123582309458351172187826962952483350288320879291786004311499942915096275653174845056606610720778991776946759658394432860779458564146623150990656525897777296218546107464120131083399212981131474610892498522284500980334995781401167775442755632189337037491693614194819559862822055273557223886221282019008715054298288839822233975044180515398011442884807709612700130131035480459049559466026442807727390711971743827475650405170668221161265279519759615813267390252499711253201055420777653372530823300666525787362670153746370024759376986876160653027372477683256347229370559087347299800670274702410216730940796013431880871104411395935022216355009554078212004758316506971934145244383052840064355341958369469861687294882094577621557899146595111768252802139235891697307128026840713372939797010514066462816238387257597723321382147868425874329730200704438970820797167249104997797728115754119783603799046347912407732476689129251348841472207008517726381049706485814606755458142905074970519486452584927053266863791499806647589268618165859450078659697796901293211912224304930031574173375259308813072717016144364044592835369451482372303501945593197461858643677555216879316652475881402309968846410925331472440130833861823950535848133028246998461003180127197847891696401063226290452013423113879135658657210140251373347377281821258156432415971139906204503437438248279202855102201476837319101743424040093192168396638358929557354071513057453934300525934882081989458986855272079639606754802486801521520707594997570887599432795348196213417500927097180746980105869484665312287103665077470424455958784353367046840460021472033477338648923662244950258754334408658470839013831041397851999151208771551507864121001306824754019064560036615178715716564999809679919040134850872359326876205596820867489128272288235203044028683547254415301631276888067096054966677082044605910128841295039715447089742287246803634409742143271844271632953779496820330668299677659555180967814460837922769017515102066088706642044415512217100422001866576962637157175678513637694812459135877656100890509075666770430358123504150930002377872325591283715277548248737214628366702708951074079322616597669675170525689869432967013282231166895558010142658307997925656910828543182109907070086737475003103879575555270410995212632573982211960475060681484115089594972118174069156680376701449200192369147079241695147199269800920567665439223541425391321603725923938215444596991996379778251673382090256859639548330209003084683156087413509696319774034041169852080256182263707373058612677645041984366424695915000655182252884304173953131876221285269333649822128608668108284907020811360524028889752025850439273190903167569936976327675903672877990985545082997795673996236476482569225768963496190937341783031611173927508468277278250172532938935291977362191460270255724026549933810198506619998613480743932409584084496564963750974334617586067233787082719653506346369153382270547367516192237140350424162119411213487581873299751500709548058754762083210946807403799389262572679505974728067875145595454829895481600380377515454539745499157790588396947703010216321694659921372203684450198547845553456729620617349422476341210107901466593071144803699436119979383830308080475713385499655953271955133811728655439031475385707145094678722770390910439222302614338960409571256736995117993209388321387653502043907587481369910793687383060631356302989017992583112319041906778611072388230313894216876392137294693022691743492510531624783880244719689732486938943470175610606067469119357787601629583476309796154619174306847038696928787682828354020938129578385102797296685447587288779669674715570502554029175899537625680677357718027023923749422944586367245504132187529928041587575254618589280757927107718140374801459465704660148790115922408730531129264137829689272525667248887817343643376361129568491808535403077869765233988192508159033421916744273162667677090506697100915789973851396611064460190704853151890459294750536881316468056075234309869070652281683677780441484724683428506960247109177155975070344193249844098248083686158921278720313392108231098043335868952834458740250737256127791160906662027396538424957937490607874591389780518246146555926629613512666062238949180896928968262278400693977280677895376979855823721062131082076690542344389080579633809464094894762827841908135033979849960519578862959980810528057489257685284064632955897440221839005934374667249167037539470791193730828156122280339206924861155936764525870216862862421116357703789199897625230022006596845275760174985709824421474409092757494720949471671231161468648647732897045326314369178707584922982638503910543087712834644410851287978807304048985308798110029073814319572283443991345122955792501378425930541775449952194040034030937466018626044526334135443113573578643069932230009019761924263843458619155769463831614454103172048372916947614454586698475935392101592860823163153306301190914998678269522173190656688995811113865709595600657118252161471903085474008653274508219402191580773315688889474354706333088952871016942948570136234992892692379989251049762879947017461878503907971411139117473320237481007886455617165831372420133905120421175785523796468509045341539617490973853319402149047817554895295655535133747177698564499416341299365090207944598169945728830372277238820222363638850390399177565200294124107222274495545781996030556598554241143504942174770070311206145185461350801022382490281724763490115770173756207704660961497523807781113877688694246134976775913154451637836694981643853677842508841662853232021963974350383227247981477208503395834257143463183765299776518198474448200512357204872289641972806526826450825527834778235949743671179740403162868997890947803854731588760892472485398142513452712212458358385390763656451153725038688892420487452393468454655220815359407179154411059367202138583488909856191760284702243513733188826300879022863143142936785674679539135178091822167684168059950307618350903870160745870098673194162658578485516138973391427293029620412185023103104493486484387811256026608071597747350962518816599891597695982428100628973711705968166085436242137444358668633833717003532802978064405859852789608582336940121013438957481041925014244977916655711354131987212896838912582782653898503447294759102844752124498314909245551966410798293745576855930252251125984003209281352167960360205117694411726160602652647050629935814682340017217702772913210529104748229867552111344635183322974382840274936052302861528105930156328902495617691254112306315757764371706298365069230413418471520989602623381251679394585326956219417976768869381134225573526491105957469832414217257363227369013096133277572754191338508294531209563250406734206602070462434255360828145087896758853687347153600223510602845264641583174091338604077297334374433543220042259241781886446510101816676326201207660248998289986817639102944821912800267527337249453494765213325532901611250823450159391877718329866237728500109064595395101219800754175498355074264849538334000685942834964433435173058953615926436998777575851079153961348267363700479655822647010933716928681431509840191387306752636678430189933344269023644859763748671795132772002449512187784681449429762238736840683475658874664964408437392532910165767254420562445867432290681892401476682198014560680516632030194484549208884874585805656272160710929465867509351740278161956929965734016871600141980830651461338392480135573526637607302611773549050372352472448971134641255535710896560463700000350594313114838251602561977659672551029578171168931437356288530561296695134360214786158601145563292392798443927982071273943482040799916021167962641960026334137125280718683114040289424866968457232271886431849348462275777378297218739246544747861351834940202257027353885591996126928767833268227657015315265442588341985978412430161764774277735951198122854595469780883731082281078596458805456143856407201066919751049997906568623293494145882486050860463531033356502347892763135846547106184921636540415754301551814347943984783285199344142794702560601240057179376523728826489421961335958335638449981130476270805863005061309673734969052062747509673131560414683971243367668755028734793660639139376147913676178201756548325128123451906365056387265064121859780606433624785223765087337791101485389175192471974283756668881964095433514841250244728360894901962667554299036323475750699115472150826654790410683292880886589361656761765684263654133199191920745877617050364046426135737805040972269916668221539530728664724478525290293421669897576973059041063751460665948996744919183203902205270010518225466480480978815672464261133958956775388229269804362715882341124111140412655342820210733163717284926673982806760730170915054358704720526158452837560196344092835886082094416900907036205473960012390122281344031386400148075465744251941292625149543134556743146059997322931973811724115189884414509961007299385638946338388372810011621105823004667123591956830608596850958698251482294920215401279721670408854490976058323450467829879328983544058399249335694172706787474831792962116688224868465074669553685670755670236685423022586382503965772501099553610319257091412965054456274833081890552259591816139780606347029165718492163834169990841215269342168189683404419015758218925942026652102345138671239772380008410639198578466743429391933911727711965889767352624176814898061420272860823354040959838525862361728665785854238924937391891105185913197728867201099177250171582039977862466297200744443783011384694198669505222710138557366533665602190848324108474760900313643212062670720662859911708679133212995978413015562715657118941313429535128002067679526017690720319103874347223924512003028695480942171704302863063600183593727235818621325948467585401088165860376133178662237488001122706892236007860136883900806295284781188974962609862978308732972889908082987985002139568275355125080522658556442222812233156535232045192858178164157670389084043367494384675301471985646529741916070882153633898228572326098377158456268100393391078269827558700819078248197204180275251079392985205912396800942521018894781205159478091999009837397424031220859966062359814937708789224776528926487678381622162702698847869044897531099543714119822343469914696594483756278039410014571960396596714811838920848312190128606878015524313618046282731996198235511650676570151391881283976857140544012232522480335159916172264650579536196577879174995532615165504814368937030264029609900906158592798099844287877547973185513121051320301109643691834149784060845028562770050384163068200393208969966308223746115391146956168997635787563969121806811015114221588863834551989211609591342718588039443583372824597952032602828789053050457990649414896083701713186754609947428903800896683941288259166096869078151689739404332005538783973171307439144100239848284092310147165781469406312882368724882551942591232779979719167368995903895578896978064433971605324912649388753089794942422630531463966062271712771326642083715979194756053969222107234727482404587487479096661757807531716542219169189840406434600131907671864458386892246761868247708570548110946906007612447484339061637439809057816492592833993511931983626420380504504113707225589592175329928224582105220051159865470662634455062342273557329278796673243015901665530188479260381114018712492422609589960873158125415856170690040321675740539147605235206875014733675199326322225039882057585321789177992931259724798141377351091968393320115172898722370796006006141796780680260869084875858569175610796055899556399675860117998268591170251174992147420276867025828140778190926100449577915366493641758400614814449347540969815493431306599081909007675360922613515922696002726990388646037663192181388848709754179620848899452873297531897593309957297525420712371533208185591325934241672820221908754497197211502559627591005319650264751516111288815400632491859665822060879856312971511216159752342693675900976902232601470646298608853139427969884820898815495517318203014613685462083495940470711148654484287919680664566163396444647765980480395908044460788056724937599702860148136724891948248474944735147961599779756569909153312610162157479062979193392137985449841104533646199379628850209522472585949949308312336405753927681594785326504655765800560573713118182952864077695333458378066527446443976559310853963341769171612605275793674350510333258422811337635922756606676044697216766405405835556828884871841321015673432587568736884705140303149920151104431380484921995178821137245371411435734458106575400509253034501700257709333130087695697618328513532357004464905311693962853636816688851255603163841568678987171746340960699946756350926062739915578101047468901848844446084572559086044464388970244616253352100727454218439978626607442389804982975673317909714317157186952259052911618724427436704034322943709922888583408455288390520320573734685345906269691306566368959872088895944412630742010626450062867320724789242341998094151285589742186248389383268430566642095172325539727196613106563469735393966711725673500965014935629651642602894772552296703530938148399969187255805272602513939417473190274523367817354727239597636577915777577249455418686273987344247220977145497878826746936553188909960563699061201335841729320627309836481917652721721883027058912795267511222785197844181688639115426207103504784424170188276394023415525557262410937559314112965321539942634205715469852318405301678955704229560493657857722236764825709032398757537341225788461754113798049988011442109684188069632725918634707046616326327640589906659832297851808279114130989742777868481862159561430755775027388951710485533449090602405730739490520952580434703872140177820982662355106065549809843031508447748071766974208589124039949874676927875848196307001563791491409264831184846095020843279482039816510585494922800144446446322471786650899757040989221122856227882950742329567996200214947972295014868312951699345374068854100208057025748291814141866950285779123695561923185268625447919812363059084615981655730005695628585550832903417798126392212927990094177173240014276699143571807727855598675252237060967408977977464138725923026248797446830373675962081506307492518692042214781809889798867275392720249476120413416824552441266886545791310094370248135017445582620967336546738217953082467905691869813791102663529060434912944534985887131229749924653306098827217063877814077560993814204061707357547061449251972088192008354461085680695128525087550795563879227708080357153037588626219034226417489511621570756139245782554294440358275856996512321817909159205502891719764520500534853339674205342254473163256113356843892618009361206694668508694713056969128008995247764226248374657851658655690041320345018694609295925261555371670008912496009365960314532633074188181700564436834486993720135833388158007762564011298081959429211684237159873631240286976718790410429978261401204054066863853168411449441030109059044742160910811561930143526669384288899008958978732427751357507224187156377158099061105263310781322720741009238437527362968726350158877125408417460610070770525807255824266813899218797478328659777869981330489313619452181497096147576696038635082950521443297336166287087216408780091341577413682566062071211035114091010400335462101160506694579143947103246046560243717227917972739755866781556081554158776845331501177530102467251713255530621145629434799242581683930775306855114365570749484923463527851249913242025841542531853952608735873737532893503548803206995845735745000025211645250109886874410014203090831285159357578120729963827424973710047728310595196485200187442258706378237292204995677395085867225827956199649674318123528503345964411209971586240578061390282810841550410912345044089466956991522428495003385256514125565275691673682196628867032195763748849546179410982486340753197760548074407694715976119350519303304052414253720955374783972821244059479970379439097724292736595429569623525550892055228570195988405617934082458596436144071029814755195287079743120306009596424208421922116229127977121252715958022707265345258155911369639446978254832415834341955748818062660557842189929866633323640284804221839010410238574586760396177888390824200000017083447025713967366162476355836970827341836805975782001781020733288155111426463981289245957893657249677524545162672405730894521148679030947732134002444041320913103193324053436231058876660802990435688252639852587929189356525510205064141426315559443126746588815156951150390592643658013690058685735965639350578485665590812632229132040687464111434389857259055431091801918931296532768111146245504333927960490211412136246707486978394125628227406541455302145283463524190819523900659383296891657822537359815823134989723501428457014649285060868483295135768965342820519709429751884781075842224683578303089766182647590557294227403400325497227885696802509518050936229311546171703240795932497042032352501735112201953443357404578739276731714962428565335649600901236406346900640600420874872425617643810573022559272028814566344915862471676018085589557539193130658989682642066287764044406515358612335062986176221738099106805351143538083750054398328677172777025010240500010273299432075885633512740304141493992689811407170812128929214854672265056357320894178829161001339046359972630277935582033848173848904853325748486886955533142792560108670526578653768436253855073723860976279678826302208368559935729678656925025695454057630975119960610198576951250072932306212913237161141750486573672299792121293146629334272260791642345317561232263972440394244064210708483567248454738897073593150979671932200462295460979320768366173421316087095996810641506761693376564465492614892535955003375820176539217133314802314802278243461659049677061044849524554792015982815905246183841991122124352897616163008381599931655496045311120380699985811901546773052526890372556494223016931407073986129877491003438393365539118586739299472400123456303893449562911585700128429163053018184201826123334209731491853603639655053384070779259942189715582829798995960047327404856800034046436743652420505778376154825739091116979429133108914780441501664972354084603579295040753241740995683745479912161211641232422432494403069151029934465445581389452456733132252571685290700771587610932986984944539789037262901603208054598195858473679243726244606309641983503853348028145992249699632501011435478014599519754824645606675643122109976587574106497854028906925443518789375434348684758960142732145347023087741827688819218782769725224008799301406073521709084384304649839272444827885233020187518423480743845983358912757215527694819192937991114286454395523875421243865187131069555457106419515094096724748648040251943869740466805375587506888743411284385213433920233185977674495748154825415172722289235617243667100676861709581828840187723800206695278184517530340683194527719816515160695504438329017704137716483644036578893714724468809017265853988196163091649383534438159329305930478413193188453081925171122177852625631842348890294145170831736002867413448289143968731233998687635857372615988139935551813409195800121739695232226344066502738235722275627057728762420512180205623521485988317829063050388424758263033476080904312518609843243206009632068466241287193894531575642269484908344014706742213838023644871379672982568341943245080859678274700152476480889466051025513603904244958074403717772939876652551474801225137439259996381769892979775117100434385901228523285357885310480075386274488492504805480242361543339443989429390623033682759365323132650543637800096680615912696026266295199228412530347842003554899527250745035574970164505721236701807379738520101531445044265779148205684921532779540218489073217926905967857729061635190314523314575356691390212000151852504841987365759901120576977881124520273786051559924032023422849196934969755006591230511213202540242550631626809826906745951221896110814903900239487735137354982550377192587539451981217048882351419531548236956699966102639002630984329157223203922743732263720565638575895371977947519328485467648584027139862832924410132200240137470322707360643406077177011027120660460765140444493281692469559255299065820057707429547691597889191179657615227532527664193112790214726288449035717378131544340290253620711035480421089047432715955070630815254260564235037566739226417827006673051941125382049083453913954055060580714243593476163167236397520802934976270988508095755989130673908011626344814694992638744083356422699394174262999723917283126397674505702330518117223808660042629598308831281064030755579171295705139625124359361095244253140887776503622327409011085581803570176812839347247738487458637254409511646525096147404172275878534916161962390197149153621931140176817151266977355916553386155798912940433190384457289637020887669154020491728074958269286720153635492965091503996656051156978160254959666947416623209562652105609244981522715054240183184605988343867942359786203592161572837206288320533660651033377998781714500351494475780772369969924429529642930950074235350465511892897500691180897535403024408673108178486256181815790219146432394838812583912118777204774841308817048745938229012968427007788621145722124184798471116140448342865293176303556624768189049575407259575388907180097391562021442765564849842120847186284606345204506024289828236287966266100177459057054907736432977622083599625814364191754187897065815763807434085417711203977576000323274350142450724447872522136681700176701624168889410613255163062982253101556508293128432815089924383199819358868344275366974696556049678518924699063807856586152442705225978170923425620383769089292628268313480141369667058442181844238395293201591018474477854869844258368661951156795843575008456356117301083882392027163369556943315938838269058422932972011574495372773915020472988100155661371301027442947566840782589834471916556555771052341219715890970962650751004272763041706918198653328041731370309056169192675366279956322696263999887066663597612376109055451106980065125012529634827463093929841191271748644816871616544479712306744730759927688211647928196522396061540139958808548006794320452457431980902120511292592930338968871291883911040139496826521282174263389137954790904881454169251415143285276994651996801275260511716976585184068568165309530767074916622053019794616790695232943043442800143830923133083441349891628268949696552257926778737245063791483113777434329583436800472961741555602464692764483012225418079311299063975727039396343465902934920423232858610997229210542155600177064962029616884776967125953783220553221444891364404214807870609174403308151872218291605467011341326139511252288566558538571778957879232523326067095695391130873751040975789128269340512459234492533428630728697890845804902968421045810047017288110667924327833532666602631794952684435942747203558217851256492093019977777004660172702533264797530707136300448444978589056713241338648555056328705349006097607274379192052860024388795736061033996041205141925639498280372560628357015648060509849114585981686786269476464773077227629474205587096762978713243884952247459443672408121883790402017324031367700071151623076221159829160399708557796776229108822178910967752779118959540685858722956784337003719193556460209972491067851647105469781663667447650388261854222047017554583416805413195890707561893802647807348206726662313112689105715363514895521956230858491844495383766622609893183102059942969238164323790862926799233534224128748638523063742072219516571880454570845047529925295192957314603748803416934787000639347737311561239909046644384933679660477201447845235124535416371753867561324273252166229785735833261623583904547801737271258952216165060677994253396478868313940412727614238670490223651188016026280031041464303840053261632016597555339202784135221512244104175703265344543237442618538678097290459203841556886853263702659430486053191520434015386496311123263995576723427373835044084107463324691359375280862223951569266500826391244627120559179554274360213212251849844608875986420005229093558583893393312898484425816861362370735916381988897023430960448334407489394856444104138079945708583660343313111938405619901611284546800142458006742190568313829795993405210751844588614784155465250731337768151559954611685662353111496217017429462488076578958117068237236382476277339943992618602087068580488472520006324985164846948871225317633821361564920384568024088031736775635154194026894577278453891990010016351991433201263122055506581735560928118008759556817217382196157819736300748545031079176956400531056640797061493794305526793075384499730175692795818687445552805178472575909797234284590709577988375750458862397172152633399607735179231930765428192947974015772049479396076855472475746258959591523128678335855039400306208089255204969852301391470624177722625259884183441564614185226171614365651950179773507392713520993527343764805957254762055078666557014377048525148944520326423632790985933036795608359497905569679034612298241529194207074533315773724263045529605204682474047966249931021385884160900815080897636990863895809880535951935990516174140847225503692653994531487658840026135094032554484706092466684001872985095163930894803872284036809241315562708746794038381102495151851216898490951801867406084740513178408046233754195716659370595628359787706593338099332491404972718894211385446209423168604610659309641927537370929363808987195861123701383526587126238642883886733840326979497206345826656199208042018665289934731628036864753094201202843096711588221056380509763557873382908682467880048866398861962003481846202969356530648545625059770209381672531133430146979509508184415949733591838396317341378322924579519338248633569293193587662077645877234794117799383893001878031235307651884894759075483887003683574949060813621985753267376376392233367477774307250641394316778057456212404496353717129742228678166050864637658831823139110649203824772843396338010020555230671120050105425500399032677218004214975876061421897030512807869746310376966461206914817800787986303435853954472170923099697334521819574643167249613545793910547796075152232908189068820520566216377071528327673296745323146628108374433098067370930669450928257440825117543680719616575428447843629327086554620696868161418757450415477430343885678878417710145430028521225279765952135382861750912636755092061027125318071701129419865688342689474031098533782633056315248649406758826333724698828289441197533331449433552038888336133118130901449574302799863467173988927212870501158781055619334704017138309870660975783533473077228073053915744561818949279069738812467589714664758585552153468209921574644207586076339629238579470609165093364310269467532345515123442332481268132322589988435530923523131897831238642260208332307708731462789576695216670951174086523666020581554989465746322822532661997098027015250530268506631073474401409537708986809716123588716334862537416766362861548866296019537138239805375542294681449769004701678289572166200332397058052519538993567362726888995958708108872514114254577896983036154411539345594696547819828140899266738531315382393822612137926058583960874152689406752210104991154012842157639507988388812487117183567842119026374798143115762235963199302565382808225770985384952636988808109782661983598654123437866453342652962388762801897956797523601412983223585328357919994743877071579656188494313378075230692056608817876722232472379711191423564607459066005581173913346624368886528368302719269517324243495861843656431023204079523710785394057998821468401843675917522395459495809582536432474348316784908574335772940747587924032929309175484784797979452224983003284525529690320953805035457957292070100488925315029110848067591948292347750347301151599965451748288972159939733326542876317852433238208613126751671851873759702991221772219491160357372363062631669614524800672774032171867316459831298408133110948257693230600181630123497485341017075593126027317482610524437177997734411015141571716816977809511865923609240125473911986211243102427529200961972797604381470734564017128547802928296248403299625192885947658970339672862813366783414452112158320052879627277000397128467279232585370698808486171353097874103090577413502308305288980925730190972246743036772764659890619802226173184677230364092705196351760040275724846435000678343590702484404112789996942506701614849854233424328812938256484909288680852475514602045021552063951033482162212804987834796168990019022048397092940225287495872063775751138569350689232356401185303011554335345428369469875250900936248254665291767676694946718589313264103676040276559307690856934233585169319571708103306323498856964571480205692429259222508024912824507378536086851400607927795461979436884119961154948369594343519751801932327920620624740475423166851756889772829466806228594710583748508996381607450093316944423365016183929215155879600304100297165125563952514845130904247301466452856896803367015542194121393734542475394788693259102546565720747865532520836907678856079331122956332734372127130354704412772790084056043986620297157374413438248688919219116182648697291293226730871338643539033304236703176778177195199609701019309912422559870466441278131618153790229038918337041204035930381999928785187032705652274304623609690654047811434409453966658150877434087811853027232294182792735973296869896668831549392249044476572905348960797611898902474876129146257540097208831770700261065756493739346339658481200589738125920181159276060476141455077708223548471482036357853219539431818654402644132120964480635447612638949230744769677188725657164711761100356933111459072287309066248768376192404306831811317785560137494345574313262725618703687965767880302246198274376922253608483902501903624885844931833434574777442969766761338489155636581332717868067812624328493686981509573299057994714830142872148746507991047102850975855205081128762312652716085768840559696880276027538189703364407414174436430039399147533415939041216977714629213960775191639521563401248203902558597011691123195603337895050800947212075388290205443423936246627778109243321966151854352408130337749839692916615314080303077895469884225935423183944397604102276801169952624375561105033478633209259041594599110773624299408016346976669515451306637994722797546602204130057855970295097783197418304203473554487177599327654478212073186170839226173588294927380256457137044215026164982308060077754559339280579753944819763166399558427996791806592853891583216552423855201208859740899682381704867315348580445830839945976138201737205887693118132024291450902675661312435297046403178569787965236632804320970646684285508553309696899165209198712591553865821414985154610118116779722057348280666122693367137190846383192211423190006868681553772270254515185830155257075052619031007059770497413091050923998037596696265930705593301288241116706999147103657503847958346235676179932953949832641723087485328648533113835914793906617313782893561720154941470166182906816702546975018768920503208744209865309472371185760560106627959503512135387583678095842024852448172537289052132025216121161104746742311763471739935547811315703467179021590170902699677023195576039029317346916176045138406563888342762061231995891803296264198742158186621727079029554952153765976503767336517112289979673758168415076109799080701845061326822931841519393377047751958968688281918804777051692753633444038940036525838059970502600475581551628344291435025882032939580260526789376475887410605898274775183834068668311743530212312085469553951491000387287301916005383911889466917856388282161140478724261646949204989545429432977399524683339810859036694618652025695777497774002693468196837731374462371580951998964694562379724013077966247534362572092645192261275325412634514079203861293961770881921038722651066848990343996794483118432438873146379030337955088048549660046139639348498628057685928575707690153489582111570156902798193564738266799592210010130682339097785004182329141405913323893267750132590906251833784129304893873602283294465381991875646222840079622468357172549403740987123585091648843662807691098908632960212781336540127481897393858771301956007495332299678826707228393401202081442472323241717370526557545381769311456301836605850987037613480302859805863199681666798554572141088308499191726475179795494711934129277889315030224801780311602346418484131319467162570265501960242727975857303453690830654329146548912819670280635925332903338853357930727760470336521248699296200726944737868237862385274842362857791131401300656919949159936290280498192356116389197358931688160336411757406505164590171540677542931982654560799555695764317378230694939624672718539493978901103321909136509323726711529684361567770158057224586554802186546410991799478890172087274962224082775593284073035499985464742219625041841987407172604581410581571103671485400216876057614689635388735012722883471464841382992843575612206407340259478416053276056005936899607850776978906234511000805559448148096332056067531715105249990462558901072244761648695119050843952201214980043447500308378638185043237582501558167561583893825555839935570682592340853117189737997166297122219247804326789180872561710628982469047771584895322599139717490035154797111218455859256659119414203302298185377157765394095003268796059209242677376507801546974560843822904815679358914706937578571999023663410004612065972812837362586921667788284760443800790999772315980296424641799411901202584963612915675916478723515294009711924190760853219053028432478750767084266316562498360606270974298607285265057782177558120173163156575275468309778401989430319764684297602874865967951497341232454360916775945647837551806725457737670427292453696235418121938825771749339707852643495500717930110058950449973276105847645476267268450738064234308688633005823228700859998255515211502996771242757997364725730613373138267849095864634866395161612695817584945365664429892933108790150635111683320465172058767397495282174677158668359130655707365810965378457980342219831424590243625827346926212764205873184765222046564395910925796365576776325499599794983249487916261480069052190388983263083897123917383458381903427465089068713150059974417697439133125799290370533080923396418455154085141185551566410911352883496905735095924970508177996877196468859990224819987610646681070537720053289550448427546818434548804559522702043787267349465502653257048615804871131184032461832966756760405826910578133569301274013210226072206065220289729705952508238535015756931714038610635575394646209713259720454779651834755698497796508514953835443512897461481816485584825920095673800102574582559516330559261047596775340602828642886879615673751026264408363075928638953834561051049746093942434196354965972115691885549234119856584731603626696436032818644556734172048386938366813034015859746790611311730005283509636626651031296371413547637346593545814893425967395463974212235793600321682010638982624982596232709953516312203864005999450266256932630619847181571090203068273498160736859677069958543630920175708451644261938875490345164691946552094235635888196870557305247798073696503616230930241486330940647815187537635934997370245861741359792751480976325350458429791535357155169015159881186514928973367307043592158977128700929957964441606350545691449653643242154676115106730757177724523531549381763207643545030192581694247879522995732488305916748068434279767165092621517844601935571116342133391691588843414199763750377487121958273507765624993621899077011567313951416527849808086237351517458032446861375086522500160375980325244640978383896400864139447828604139589129603025172623299672111340571763744835862284064795262936592736296913857220027753750578458674076018238160022693128327750870603594453759522326926742217985622975315813580506006704423243240930410032666060757652762806306009187629544682368704734198638539913789236643925906902852335271758862187663624591231083187182175283378170784461521380886284378689269914969260469945727993405150573902452056849310566469484338467221576362594682346948483963690638440696947891174574896386468845220892455272393748970894495822389860492312428354938466381985600512838939923809888937099232129891669077837668464398995364588561066043506411084109028666321138904388679469651597175683505065649348875726117757601261209549241742100396965041477063736583012606265352565900512622036366478602526584941643632173290930641148465588704209884015218519541976011290406539779626281881541851704414307990008958761406653860973972569233196264404477587842519500842023355605709874959447323467528169387943347267287031073299957642309167617731641853090423684333599960263755321182924108878757459246584726861021784466279034178705007774328608806460529882857376607410177706834019459529440088298932835978801897872853517670765268148969201257060935952037359953153608040471639917604454111910788366179614495095479570530403032993923938412527559018434674580070533979840089735477058853765852840848203184598951611898842636724192483025981177420293913066830223686946830939983332886822801556709548741566468164627666876330490793905021201354825593707849230666801882576751727517603233524916452580208772303297584696354168455777729759898352156735858707104667783294943139532763551903961662124837249316346607853838699927569689255896675574986523152073488435412481849688210353222992994559366041513640673549513832236246039166091366896986888211147933942434518230837645454816002943338288591166976724470061773522028575523473983819569871859851709689100036529608417780797659689642989533371402032606297722965628606859133896733146969846451869081997296197524532968500933767796578049476336770542693160049871251041892202016313444451989947404570058146156274209246810157398679247896525378626826241505917802151884123931881429967626003544988576054480776419121224633814149307581246138327275048326334532296672413573502945546434440078950883486295406081663676894535636928833369488293086224100408627171517921009008450274725999143220566457888529711666509669505142046875644249813380750890664963861683294579052378150456176594918158076259968283401048283420236542139979445210263873507870973317824278840292425040855989286862609637109676443850441417235779477678016475002060595581312102952575565232695590044641038001356479976537751873699197280818797495608154495531919043807107398181513876427007115526391750064579608090156723000304819431082230777952635604548126840161733163974751040457511861308186513677625678487235589580261831102161222430311507669294036415341044457614176134573539442412062863804313749252334821262102020855554228951989619266695096155371883011916378044792304482519812758989233604451706869785803149601199174283058972638754460541716603480546458530031268124144423992007912182656654459416002014906174568612442034567768354560554152145058194938421665873840654826006944533864613776091624839535675721817459829119664249944064428120839023073076141214210583375857085692636393660222786748245069990390819978064363128672046972198197217541423371540281560288701570716388348256644927233111508771917483983416200596006735476628649679713702864028593142962416436479195153267785892517774118175005730410512919234813943054006735928210324409377544787406472383162993548437086461142288744013238729000869210579511122085323205655051754588723974288866385891963736401862584826328234003059712709935677508597647963414148841381578747807009372081147668981618902672009785678902342311616081153855706815260662330665359927926160148667608341824379572440634162984677681863810327633828304793739348923881319993519183144014310139215270043109372703047356659155789212557621939161921176805752597481872571629235864037411025162211366987265302539131963541602489609605719869738728280198617671699040843763331358660083235300869699151721155715134899114737953101029634594399969883000290258626780304296632282240750334034669597069812057071460443412357187135862824143729872086063213887377295224777164226814831401092518642841812067288141132787484503678883977863593732186158325578246057239485765709492987397406488936083688216524508067341447448566525468511787284952669607620679920831725072578919502218363515260662240982259201292370738736174580629631663962428566375896300159671947887575640268575980357627803846375449942489427353092273679459306315186845698771200593286286530769064799897760557154894788567055747969673851604163861008862510062012733505589341720291025274662170801397758310447489389119606385801733079844840880839330364808344064743009680212712610331549590364319354918200041365052587985625253472246442225311613598948803224023937735875138222114958698534352449149440198440877746080557277747976813815407754773082027253907862095140370948019811255374941612492250269146384771894364278994739799991467760891173336405508219591632675515689589971604194296710054531396828025388054295486851047127908612909480367612483319578878314897889108418613287393782208022397471372332782183089062720761273607397759416121406060202899855617049461962339429227144077013894223069285220622747699094522796403337020278863659026973233885174489602242570179347452681701419465215520145152180375545790864199443726865789225955948729383246370764426096999900651110017697006943539674422315923496317853171797292209552441048208611431126563947816843665061862912861025880687450989561889775381680277112501745326411405108438504773345734686144363147720916816592736249894510493179211472091559003083029918400572168362038580351236170081171790142237870438653829085025572920890847514123055982183263792728844651429747325366977422251786387919649962099499490191505953168217097436555104395239509927924826962442038971862808425132033143587298668451635375246280584325330938821148281757529383072537573582895872297940058332865356911302698676111250562152220069256704921857790390154083425402151580545464153962242790136559295331757251014137613399740009082734652625608025672698165498281147286731374261042819463157691849812383068585051910925260356937190244963801939554065437660512549030348217997205014817823159477140330366086138874674014451073102977594304495863062445334147747484456115779173879313153427582481610375537360998409823164951026980633092651260877945088547247085769994648409273758902068212712932177104710862745625505407508958830356419897970180259886390203209141249854857301198731994706021600217547558537883102608415311379846299250611187558048336770206104274266168534667761764063426206564592267911138714892387112443217066222533032063814333160015884247696521086528003493794605845133603326966857963770079234297703712720400333793234797868272496325029688898400926981635113759447165351923943497966020672752786482656914569373740092745843660359051788932714317319343055975963961071693673089555637357666188416835091173757547206271244044250137188035068609971578030633401697113502217462567662972700939394013919344232469116137840076334077537585969622847647102128525000274460765699837156281023433903601288777165264884415760775776983225420321433243924828101786348521251003934228601173560042559960762262287587993739647766075949324632795951263050338869877522880504312003336698953170734759485451269334864067654304084384314713331727968039448786575098869994013909856169474974754162622177816527669923026441781359535356081705227112295722077563621879021234011837592150762519439534981126205973275619101062936486276748508020773361047966329713967912282265327775115775625041455730776287664726270583746544967752018587752053483995911420055849053302011118862597927023476404306624935689440742738379297657216292445271379380115563645602180505422468204809114266920590622115407377120118115145316611181133249199241317359780977401073733425868792072905813587761246524194034810235695340066630454850476762030941593557760223241008946990548874536550217639295963261607597184659070895391939749725256717782911193874900495359743233952909633677551060958709809433102429110196223958439422829117001290882445013618458655537328210972989972419898214086315073120916003551867397124349483511446431976156069633084302239869429441188647799527705924527045113513631110096393310345977820092584303830537214505988582046353066397882934646133980177383870797931133998861902653139818655447144862564684251959939570196574975786887463935778289013725295067969893532250811633022729456471271449864491570272915630609122231106759973948402209886948191370246509549176435815038924576461076981833625356487795696935022258876994258570062889040276074972223641559533110325497886343992582981847039507977790595844071524425670405694190053817793022956990521774278436310477122696552068477583695220078296459837248054246697656262241041710981008183582519506527280190183855943660246255852083491889508497507625738163934737910252947814937911144953232446972968182341769509127661940084008751251763540474005347128996958392438359751112565554419059244865982104913864820084977046344852017153411454699617311964395163784060263135120884335045138588826437048142823723505829586324582221798546477781632567278190697568648216569465230929710910836570736371911469092944842866590290775948053470928490678459499326297217666844494855678124487422801369834193045643515995597196075278418447625934563606698579579329288361907784458753507294015383114851988328716009541799327222518566644832288758381711458260728303159623970176482109735759560726534266023931659023040528899723687931132992469200174479685876147992786399352937487480966592672286459501327550171183098263454982169299437987434649833221396622939048403849230182383199012157341017160716618773746914772544876446084908233578396057986173998133936541566909715551536755383935349101540241151990934099971704820474517992990409635803584177809507215323259368990312630661358333759609328490595791048221836598659490153170074635467353405640103306560640159841682345120935172584334172988533413042611646857604292918943058212095201198583139712421948630827649080454128309377938635366134108443202595487638638179730247709974761373448057849243845286785370670526765071185965505307550724753852405666547924332570851319419494849702685707699102333960134048035872399047059324065492487755697683447164504749006020967541643330890823209103322750942170642626446422630338382301343282564920751257404550066582115694164507543138167369877580795233948581471727151835942497137334516574677708573900630251850663091960748922951089525385193318438221604899308972065350074067526514892097104661313433796953788126339281306248891091042764086050917747589679841146380307434313143967871767353476957245881063297058377675482006437405684505942181595526211108649302306366477708817905593281108313844209240995932265558817394029386321149311682347096621378403275084576854862943207903049506079343808476309777076511677776521525266850632551871313257375660788016463191971482061116734913742179000319526579533876245089956722272701024697540495417863582675556520846858124207992638737304626163593594824423672412342692523661611998721946825864577882782977369966516660274820749842848954228264621886766302305668224272700242527280290322682360011299526392278244581329233538193276030665444298026939325745377392183034354369347009940348662040278456158615677262464777141546420199060907073948510263376168656703628135908026748292607491603304962461626948619252191232796832308812887047198864665619762131781957214772023676397999810889295996322910037089181480537923934273169913629509216310208241254869486730224864678551178386943328274545729828611333984218177841015084119176465772422316410878198114243197998804704755400898593789500252628384776158220259514576989939902206250735878222772074326650470644235777294506333991774661906302009296594359130969918002445618415919909641055728909999257786552997254874436747504703424079075712692685294957342005511645551069493197330155165052574105205543927497619056583753335469977063229474042647816567041282150790696497928032385037301269704451700180308011723138577671508154356145156285283112768361617856510579046466335337635717664249101815017111440273720804363774976063668752019491611747331572792478723501491096487104234391246269423349122479580048045006686166270770622188757071456748962402563616916379620377568090465402690408792423561214529725875634042660903208911597413690556300764345185469271683102368447388917027784781034516057170690473643369963453131051587829184957375836124035533933852217441731085522336358008314380175060978765464838429205753811208818448087478097854109147388202793976343122076069679554153094737327024396062870520557685390965240702566336479021059417124927478462955632552147629019683096914405577665345279759181154402957605025372670586074043499134334365615826116776831747870118563052424383247761599051760396916262696613114098655446487935596877518371351452452450035799980625917676131925688157891282033590191105694874373445113067178939688074001834982382195092025416795245101958393753634105935311939858239147889083874852285023396583943623147001704529395555793701819512274751530649208394840346920827247171259988301883273244488775099398893594365535687335680954242901010613773174089946932369818628705172625933590866717220344769720979310201616813013642000507466023618916088307128764089843447558998522547360946950660694338506863257709266812095235673748829280821187617801935955690641613474451310751391016639892504990578320378069265398132386059136747136849351273698546306571369556499352225582292610124643475744682828592385057376649822837902702252972281872192180576820656161133409338782172491789169207352841491527045512618698556017874447710212343824611053729902921053315123900514250295941871956039122211981110788938058658487273852046735655280421631575512006743903381436543979432688675063777898458540182455713553199425826057075776541448573521237224077499485493359581311877521459742332883056014695167719537330659396867683133502614017869417300068522881814495395740425297261925064375690778995804022199002293392030315992504706885394015656239549526955955399429962646851865951825205132443703627559523373685475411068432739000087671375933973708229729629914748129418517717368095817207481053021854009775776872841319400014699764027252357150622558675072824097704367003446676061547348794137592572697874330918529415250218826649099101344311695505352148329677847636109772139973227598091130176463956871148782857462243914774427796488756643052934398577697532324121657182482998742419186749695174302346401809799140129962819498811745107159988508048872046521509142581418715830408826663552850914189277086593375117096929280665045398880707152127680499434322439868402638296696783462465743511630641615969402619485089023049287800853454216772016110140523390237719210188181705148150895828188324250332619970340252764505373796340819600352707476058366271613293981102738932150693424665252888529439354053289897206152417205279157112054316440341069119904496822180940868564093986581496478336766601569040439996593615909815588193514650095015888216334054466292382657071181018135828920429417425221009805835265506153344141842675413906722715390627418489807160807548775731631579180738043964471791800095907764366586658932430236757889871604240538378693804483230875130538709285512513884293668851174503788996196843959677720976595459057563951174233093190802974828854747713042976770078621069793843413700933003771985922686180270614972099076016229803474923696090571805940259188898393438633911437514773769021716269501058702835657342138694939216097709363624868096036949039998027513414999837657958992600682519662669287448233888325288288261080388742862219496399849196679314229045687141331973193527430038677627364936611827896591050462383260824603287369450428641216027124715011578099745116691057496873071174672562739867955050170651926271890666055065796092873781060165896571195058468741141723045096137486007159509200808994444244761861760507083335728193448168655561231467088020046932471867898330057410719640737372563156890878141005502978186324458135453336180541973842451529646999380414684294562462106044383471038693854231683645959749447709893569396579838443611016556909272785374544207108460357873192182821192326722998383470330962154606617371833500385340428674273086469685619627495635884010743991934258890234392834063877771995644393387748153714248128733484456857377732275495240556425003753769608815559156292711101150550166462394998347541832851619713624289435313392922450890552625260881244533293118748083863278463232925145586379457728962619772607212343559353121100957072340367658738640779502628193156916696644173257603536543860569041746826946098756350050893681785085070309611720669847840217650554057186438291460668611897512172965556360738241315780435974895909607718691581897667704156821356047504519104859349557857204372045980450821895368896956284443282393594742615581406984529736851908143149197445121009946279115935023802703073087512976310543746630731360428696269017307147884662900677559870509440860578503239443366867025581997050188313127384916830162482455247422927740629313518779285602360981644958323505310559131240317427775531041691705350457984961219107722748174270490695110343656259944197827595507457365977182036940705817028934797984490216665417135440284116053528952535648399022431107028803734831899084233932106721287610721971352303660726347267185468845051993795268776254659453193847419611856541273647406159233743337352447354910618268214127812806075360644381903208467508708893482000512107654187208889353003399097108893656755405300706698404534626668719737339221059579553486920389723690988141167889795956583964060076919961619356383144092428275743691854857759923565125376619377070816179406351514772146230473530864789664695140850212202389229799693550898397509384747650938332421830501879232152566311409802190695389256371128872821936434165009588267355063575457819267409936111962228921348306999112980325081921242958466317628743910455067377934267214355512160841950834545944903290021207628243131575394874791688458501144714168769111730677248930655211696110906720433490713182847023217117848134354023600904215471969310975517819052103689142182486251091966197224852186841329410710391046306626517910401217701242938154401369802331015930298306776909527226355954523891352220629727887600608485042369030956786540609358390637714705035272871679364702208733765199256463559413886673432798106399261005097176862729389630008711367949014855518737839035652297599860437535312201674047548335544128185308341678034394189690617339761434899845465748396085380241812928477798245507095791804896490181980217103512581856343920038328205741014607252396167117505363613713297099751522582656014211210311796435208597410421552574937649229695779618681405311114561750211848876339333252430711107701962722016667021220665359201987558750432871503576398315025117007471013809929634502872397056566438543784802558389298836721134107609922142943466345837829138074352745685578229313807521921867513751611707620940552620294276446713201809676904932968628274452606362419545960184839402627122459076366663415547911482014347333119440148393017989660692528783993566180885379117258009664173609727602135835574324269871144246352820603262988142178178526691981774741832151191072674567488163741355722323655710124059020080297379929478296079762954370986241301773641626891731143591775855814653613411172680640108048527424151851990608733008149803623108108618021324707789572961083115028818272243450330376150276981174549730770637784166451855154910971981441010606915354828695313883851561120650221850805726868612055954347040612769084941623480980219186932518210463953601260010794463205942484401934610562184585323274717845343484556447244573234373563499196375338226538959872330826357482052501675449196172116542249886118635907174651594808811126283339345325907687088753056816740463009661165313285072424169940041290804090056762831350688172143973188687860308364759701571034476208314156068853425900377247255086672209920167140893938092799113383803828379624178717037512825747881770426903830769193615595021718624665811546711780010100013909610913889584235505030299488807844695982782938840197524930346679129913000753620076464574799566090939431804912502861342750073393156706551513298206213714099327022238941969575672716251880062062635357093524853914046226882265520193851564338557671379128525080663699952329555355091840647496023937125788647263719956697997028246522551969545363011437929650436961531151632578836989714521452135093064940883515581942523131257924451596190832013702681849712892863058585760076487577571200340936828593942189884233126841444098734463455255015123514619050232736419592266852341642387298280930055024465770516165302169840192624721820889257699047143118393189423347997211128247230243516606937996280759013816884624199318290477868157092788994863783704428346068736438241614380261806813072561231487804823015345367893871456241862707638417588254228950625028879210857219176343132555514689769111839817926658084715853723105955566447407804607757199937263883686478012412205012749726230403561433639054524609409014021997281762238018637036116813847532578209489887940021476129301487263526676023592153418830663292035116678969481753152461971741931312296381567353048283014842499731311967485933114645119357488915188658440106798278943103025649406919175608474303825295008568620133143986519538713635498162281446381458067524765947437870218542426480671481219192770221747103248623952994372328220792942296367484554358766187663997852806842493730382395342365501030458888407368577597416481554451776332242254916920677972337891201116477734055895397656397594569222624052820053035920684251260337688488758178838038722100602053091437702811054792832693137716883648264138658512894625216670490560219921328312838573167223059358762647058032501688528356633299052813276720938063564734219235775453558765929581665837390277637642537509492431507977146173960968650736734791629364895281135213333839064408748592794880160966977538914860581818335923185577648318866802472990849079663415183225609950422636671666374796543148113719841224763931897416850647496361595528430985523165907735146354702712753561405987584972630434154658271365774092238224414067065643220440951438456646212171287888328356772403833317063223839512023983682164898330961327959112568903326929790376991074602162020155187680063027741496938331918058867078253356388342942487094222919267118635205948057949685041039115598965086392582047321055097069779612925526996076978801623293672630450707080676881712710166514682345937312133383876831282868975742498538695806648386302204224103958693180930179508216104211530364115476309263459706897818724756064171894043359829100154430065480147585998494807401007181866399196786458212011920654121810430111337913751593930639014676827113176245145293578899484740984765932023634950099932861673655461441420340694103631036321327359585616990344026538512536624409258181037587188516830070261117047595990421332923512634868239258531639545062923108002640323846979598399767419442522775975783058167128129846158519896822842735970351526588517476767991667715151911779325998786062510018923286927389534501055277030227642175737364811262816699228435859106046427073755920915313065260160076563683822665754795815168075555979550557580510894854840332451315889930548805432725226253456593566272253219410660414218652694182444795967628310698739024597762465555973113636946652686283090960359764205809005366015981395591439394332504445995945117098562840420401987728729860927973028137933247486428912492027625094739854263966935161436853109031089392219394655147500675669595312807558607173025328889080097915679843206172021858625515917024786405859404263622961301803049909132110021526835251027452593579511716774202026230725276967480438072004629587220855635257000408423072740156616336215988145003149511671334518607015823054478568198920824202967739152150581805628762139011555410841683803086018375933676137769293179208855296189515049263332991240175612209882001791653479879620949913392362045203582036004311421590507787118119874745155563182982305949732164141791575218124030350567073356498377178924849888378496384241200235335722678598887594221075830444219936318136451352344379267267364408108728378038040234093106948702807375083080704702376533660520384621994076956817563774939487083289372555731692964149796210149638186726024152517847297495803590234169271213468379454641112478379219881530126744611285448259182594519569953621640817748517814438776861538850537552829636940079703087644775520045842824586848725523553415356142505257593698447024228944034024266345849310994312087798006271421701190507063659671536539578300346500507281844037423919129984877002932680168056111128140963707542355972426768974072063925263165809376622612273480601392845277925462916270738800169620569875413997871845293104599987857442024859926604609546289462734169373444428895625271546197661015233205422043461080193038592849422873180927097371478589099755053156703997530777972499663960322160028787857540752538066636238726614628734390180359611738442692498429232119314058681603422483352080338812558161557868607532623176619856243972006951159910688300226886954432531644697160592364197095858652997181165848111307548545494165292259883437267265866314485977866468380921222012863446237842774814713129212325933343628194972191588224743963570740869185890391373764237789683693281061511829232549037963214351725826192189862877153272881244508770558315160539370184392708273188377245268434988526162544482781429019307546048198988651609888127423634432465242889531007003238636444169117161031963929683086049623355100960451980324287932844948024266531645383508117535183565759679396509432222612460614936890121743340441490710847124225667395164909154851609578510029695834949060293358712270644198804787439210369725286110345912088057607140819362767555466712255298095068729707704552802913312266647075864679307954689873666500686392347966844334649784237012584174315622095251833270445314961857448144000386129837079286035460453364322618958568165952264697972101025546806190509408047004584467127263548988715974873899207888157269607418133675023347399040821304773510598060453527020059521049384451155951731188335766171386188850004539689047233445291096490498303612611768553508930984801302780791008615830773337521131509560302028630557820180368015115035965290840693697617051658667550014336825543407404048177807904050719884562386512497904902610082379661650643645773361703259310027135455852223511676552945065985415845230229961183951719261291970939052911531009985268246213877820784342172214869278114609091725235552198113621507901098617546631888711547392515759831328843713048927490390905043272787965822525059749324009909368276714288805361423854794799731659467777405025885311162347197558981090567250441039059973299618472749820732733202136701382186892730868645515940303021917625403551159160469360606896781165701017139320488347844925206389706109328175952130172017177713559075261578025386504125339676483136522242419501843972665959670929791189084019135530536799277951096988155183517851874504319748053273010257690337434496205635320798787295589044205254998865723780819741571172070956832003694432729568295601174262991095009271586105696230674304294281429386225664555166931774272079631790493535886704115590818368542077138744799603742184160603560092952386607287139686382283893402731659433818738071116754899736729774912997312932542428745507118951594255462261800355232862445437874580431137712708653564745512736848972791165842885428454450754994370464337882876926189634532494927534595922421266942597176247401350302652825790036682759686774714028510183880943268427584749915589444193267524672938916291475495801894978918535218845241714988110878601157491118821342162351754362228350573382882643899368997347584326482510292910546619982768568863829843985427587264138502828125339811665729759740927398329799018319963841776607708300908837923429327977262789779399241030448504339990249920794672980548225040100623905053191613922251397073042891659845467872493863826932106995562404467853354695420606089882349083127420036004685975827342777066979100179980002375441420864131340209279107223432754661618618851946987265926350892501499642575470344937258738311436956370049664827188027660929193649883082166648033811092698508279233529700996285956366528865421364165361670093655960505519512453688590673203775248448920792753354112717434803119759460891123604041291325478987546884816645909729762028339106783502147602166428316211787497556145599128040674741192693580061337043315060135683125639994199759946463174767808425955421053561258279392450179270960071550268664828399453992218915353077511926261051706176258438476737970948606308331418864913396995067299141985631560089581441861807380131058722207978153086499734658039432187508656906797558125623126569076596649996891208256008291795112686624437888762940305501157623458897654489186161364881055696562489298561502182223945216984749191293955700585321721430710569975501648359940478949421738037270195586787868993412890922739219347879178624705826536252182170501879115700402448850457806962537692827675895187277227272916120273278859523505651510454780446787293624711515938953035407724494536198003581119663127681520239647298824299104472801998383174400710343519294543285156487111966528266850092015315932120864688242678691361049296998305204529798261199068235499000098302797646287909834990259561587963986729615836329411018416317829622706130859217092884926410273415891559396305903306499841258330406713467180600279945560330820847962357994757589301433183714631117575746819251761310510852965296420339497811068112102204938818022917285870870733958028467467595388232421174623231102116083059410902887554719273741679134128932196910892540157424153588821668993959336776990247431429402017660815759341733941302847674515014798670120384211457294632929869980925158476822265780271666422488206653247766077382945804223059197523194114667298115236747147674420711092095306382840096478639658158414259683458491010307630997498673662337983507635832701213939722954642293088767317953221732317969901614811568238605492251010905938320409581383598990826118374710721941381865923577340989287704925755085386490144898166042419392072504629052035624825421698734646044801336097170545089031474103853781526460473628222119550374021597356353056763546159130271570709949566160846825014403230329830571164380269438573982171652219525801570254226646552926364343502690967542671188811322627699217844675898968639532395982253357458323177542218279213634882111816539309297785491360791357504817047448449273753877144844857505854616128080806537021880981552693915086035194694888262029949496549557992984005673614026979672024668540727704140995630066711775309613268809926920781760005199341264436679541699326338845652232456786334054226933077292804974333913057123461239810295507198166444686099689526489175308001525042670974984313831495237230697784696893079205302475895493147347740059252923594372985688011604454399328891086551312849264151736374624045573621838422090484351270890313879949521519701610356250788424077260670496820436139289958901170667881520542674105619353837108977337325005946485934557386170519953235342880346985268767265685743640563114163455552777143669148009280028737435751771417152384519890393493238387569667080637110311786109772552115949832888956815846050133834202078554890844469649787423808017554961734891288505318582158468354951915784635787757409192380528263729702964765984258234576438850349783018922650673647462416286458795096463192629456496562462573813256503675260021963207763214488555550656379984985509054043141308385028672957218507036746194929565807752435534274134875921968240454518182743844443892868412955863945722311405841158888897928260556020473419431423444418027607555804917159099623901496839153427485237962255239387974379381141969521550567870561861738345490263659100458635206969605667129092757941570034868096638154853221730281089462348334423802759402253152002639795686782508345404250583607472794759347915540978366115195313447431364727984253243373610120960819638498253267116702679631857993003432699387852419354136467917632107700178092418519261472382803769938409770458655111245601644459533255337494031754608175665991631219596367700776879241032172191583690655945677783433896318365218080732091745371078276970969591530048692849093825645570966993723067126884476102873855037933086096769044267326970438278892916680208845713872336509082397802116288879411208154078432780301891492764784705140803050241473299804389655525147732269885691784678651473464685326560970386606143294563467893865092316797908182368766578157898202812472497727175008918521735260668822012647966330690614363607601119235843728752773152281782076722259232984792460750336065310574557793949510672718621544713491802813386295872399704779266919213186918638692853487187611596437928975931429253562604196395802607450327211461251704223994783647359932279235803150221302401925971085005516412500343191274143427673901147738065441808543785521123446208842053405349102655543712541119589413063734082180355660099821954859337835895895370992889856887173443220270188270240567988399967445281072747030379211190087749391600076708522913778141911725069570298469022072254908430095194907621567726156029238183569913760783806919489837215926654457581289522989419921459046655097718292373012818592105608848937767383432861834947940542770259821405163539976100843247369421221577584658711615095009488051068971440125608455737303902984773862236052519122050838040681509797554176761953220298411438441685102863086313418165000322530547472815262860173690490499292797955527112027725896570529096788109938412855165347492197937934911544008548062909390515257948971530160667723584358992403322103893142095957201893847408101577565578624576655194251105187466600682322521100437967291614587284634246899921071879652645825300306406301597679942605984795921318254324763931899370250711808596008304474887537706254315234760778758536312383423571900516809245479734105416455908414713618980755676122325270438423589775296646263383908280142119496735366987883552272101428957849381992064827189142162144054077793012455215308742670548589620276928011190017113468759200397792558177110595676095098906435833558308312205754129758591008308042938522403390290248274363925404460730469048378377684284437624371020318245868759356492245625796404557058428381577263282902608366900995246515437670405091124117880586269832088145660806253497653845042353155994010313372604586435210029121192499322737654059708296394340840197041567885642241633170198703103787308233767284232562988220981169018817691483818185822809511737305973267232848042824311418403936047083956851863735747672984344893507841389983362617991597895701520749182355205973754884791247901292710651037284049918173909766946699379429884167786998163926969784411312060990248833226493373708710786931266948466537130040820620556306894925853689726453826118748489547992249414797500453493575316580859290330481181294382284593318583819407508221170411832248265232941357447791769522814244251850755353570763557009285287676378589597654234925820450562304101156633838257893646556016743470687029570628327621426186915713670948014030312941688366828160683740711536563208513663287818922032983998433977818977973583977068754115193826742646428864479497392123019800903416371126797240673659296541472695565020683352633772495248826791490008489945414534375033901892858150226051328085548078722727247039307535146002771191032551159740202080792240364036884677192774602641348850145872512995651051268904856778129428315552901189733099096690235621377284644110836678439345041202914172778525625967140279003668869037131876234263499832162274358472149291275875081864873995646293461005337608764779281756340884703188242109986572318904255272898903012243343951137166263054885408223733509286373215388795809194023713076091221690992983970369180079480868458033645658146179967305809257068924542271300226476576919971182011753646131389251248555600674823160642122977434914814989069466458808626823981486106884194672042202860379290579754254887467776874875034256965460561357061583494532608715349126854617277231828237408490337256347581714701101083097136828379554610626179272120440121633414298131484398887492071309361442444866293477808663076714107994620895728035257439825943339520504109767216842873820430849884163539578039938290960599622160772298164260010672957021992520389358062372694732039334173344396038325021582364697255301689625144765572348840825262056248009652967978208744190166780316947505240516799106615088277683860180043963098488058532607118124786998925840449347706005370091511808125392065512226826949322795640513829657433139276930544950168635033790637025072038177297856031213462291969937219291401613489829541905579441181941334141944722543632728194813279842994059911051054661400875496261224088166522800139679549148846963471207609875307946740919949738803623104393122963013045576267756751817412636232895317715004235281352150927478984456629123177580126477793140256741987959686217915622248153644477690317192867708567883211982322725581017911119652010431051187539803815128641069049217779097426802465404673441854529607958731126979408651890832840564944649565077189634749649083125558307954987449222497913636850053528338136423741065488535505683432442798499540736121121362902643248854513465172835371293816688634305310975246039334351254341512921736093458391910548324681489811178176726065853670878102351963057341516735883046816688686875689535061253536731324479927316014935803906264249674632082054841296266459734768075750323702828595978688166975965475034525044746163550890693031207094795805009606177813355430826850617604495805600244761353997553546030265678583688087762546303604472961287253559432157227072446887930505010994975197910776867467032520316281755294509433303238046393296049279782137693932954135302454117485663434291889275317115526137832513197973738739935108919506564999734378595484168956620954033899419034560960183732795605954062632892450773947820799405125283675263644808199747754685231425040394068751889638399647560433293474367241024033600479689980290414969245481967269127585045063405728250358012914605691922114749190606813159528345410445425259888487216366633635572591298195091691543297430393821937730086470744150487868476297353733062937443987685143592319169362871405499794696320151776573180469066214180667066757752523224763358106655177017849469874378792666383775539554310878997582011743385547562032747206526901252889123120453090224443384763722833460435575420198163422104546821706012747414665953033431184569239133664217232813641516851869177121480198603548654017061995558836333024600581401652858250336117525785261341195324729484465229328021303160093040506534592013167106544007025489408092456204343783635757218391168393698819079155560864559507365197039653573668559653062672874279326217125737728850253369077018448380611593019610076757632240560739454571987599662716003945159403457852314760436553630472579352552987584123373393940054642765617323244463124014057097578146994370345351506007216761420692371082380953721347078925503916626060800718312918234607964764151635238271214257677150645907932456915474286495112401802830643191977755367525016175797757157422769207227494900022479582048695987632940676908406716341717210011575408561956511668043434862879096052599471322972448115187644323173747547446260094815254191102515178747125202463299178233022094409227084053697297470916353838639704173645309278414877834665143286559480193937214094771669060838129843311234267355093222528465156699174932509730755988144517415220301365966796497945980988162046476440342202096194066142329682160044864535425235983611571122994042841755195408667503899769397740518747802448457243112269816202890643357156189211239987131286205872935447627229889794373154743888301567698942250340193783259188378375583200705139054798503557739238213317443785468998526687700506907137907853136357540901095352636202355619014451543065635049117066710095157490343123754663047972041736382532038182139465086247570448286923809376864669710435826661342151816802545257119843096193599786941684137279790790335035054226210822153273567121737143501216830141687927345393163789948749825662117513063955379200758165855750412262064214018219675206554461103782490985696556571692337644490434575972019020706583998100909348806002005036313057637866630903024870075731920929601947102072168471358197271218328220913152077502476919059878900540027125918777683726780634714576833637965662627877966225463053840358090225847015119756476668509025749723966566637637264161217003191029401301382476565378598547750974500776044485563892870061257210541014593351613082432383893187981628607156836815729106055239327335315784696225931596777863014549520043485911964494479176366452670661011903826023280135372990183618423560883432614960538296190256745099116967155766617034343737751589255144062725444076385614563272394795016100621761789849566386205674067009820286855817183487774181734833600056298017565676389521886376999283617843347414518398076620890390998968350058459585464582375610376331896036165072592897151713384278555382669510568518449599068985567630998607389303482580555244658774531304063773843267548596147013086130534512753332564401376697158088000481935605238957082463412373960805993007664391743414805619906008392442636366512942562766465476108198883260187638650121205383048079967293784897966597732055378970611082954940186271202696648746126167025082328394156662217832408830309570869645302531950668918498663617974057402378128983273446513051066771630655338528552478735367573112368757715850665948050809589414573838334481818594008204494179360940979756619593599438731336234423590347470639902108772736759712571939884737268436140368435908579746672880221545565580597749887723412761866419036768016397889493464682952925680777673777045864132293293605411759501862225666215236629657199266695178895962968580586527355950758897239225398073849008740442020884662372571969742536818961478005330244591967433874198563186133251261106144382186211439164408168314733042190786438584283190030951837456223513914031003372488568398163002120551658375740577749136931815104046515863821907161039215212241246657600205783443875446668735280443949323067327708892601115477233415329973935764553452091298250836356193849486411225722535425707724498866980462930498189641825909476212072439125196781610068778547871847972310530028249940638702555689518072120700300089641500628412433817400154847556130469272615017148566089271186879199651128126554293495899163011307440641887832930918336723112823995893216358880841473372862938730437243827250159100147473017109912975344413308362873482865982398341067434018377853333431141557230839262191744204854537449171480355813295125207035838379297460188700475498034968651016737729828570233036216532258103874679066330794119878513016017310445234577975459800631048615584405253863240211052832110032815096214205805195897562336664592709132916268376579992417261448781245761912454318594433796978896338237916802410702970335159069816812069788270721115257577965449314345165731887617555797010437554979355347331942686834117900908543099660950846683311970510286487122713856681974312944885543287103023149624058343193921230848267874606970210839298518539165583559883356169816611191634083831647534368049792024574708768406305699566265549569885715247681316273081613226003945217895517628220740188780016047183366319706025088317826538704535380110858658722997089360354119913790013173027629890211048697758571681386010569671198268208177150872830685731192035824297523236402366923181132662772542866717223620197670713003669127377181971215976480686492732058933944770683585792037476141542852647006254358847159918038732677108581248711564661416250095733812278751488539444745758905650615102952434975119569811694920455290505983617338629919954036504286843010008173598748365803783828272991603827371666852971182911428147397259614528182125064338364554448545525407383939589068670995732929384983320984905608136002509302225230193052761149574252985148114426290844125421806452574645389937159683374128237042702042971728817537796074090203984164525723068086472196785228763512378252858360261953757519683467710665344598440444792503765601003300908657792913164286166769863783949781325654709125911650570856340426571635249429035701636893192917002195476618897221412331893574152275276692008490341721673704072597168881088591062723726164738239476035533927628181594936032467551369595637194878225408695056730616910966142149412930140403580643715036898225717975707193016140255708640361836813087867632848389264789735875873974026813988301150518890340052126152986886206631498674219254207960254369598245166105271748232392418401756672560322777515581445961588637147764328119393513761626755672261549228364829861043909362143742887278176992755969615792339471816289807048180007167480582709791713420648249659906651936170917816105511987694576051919513781341863417506134552042351720717829666166101701997633737493313201838573647915174770750522641817786836190554787169957532880410671475492494466136476961376600437685285262069959043667287274190090347948898152898924450269413544812201527838086572587558423876391696332903309397020164899465836355034780818707250428120182886644092942630865347791514104943232338669432013969477587198571908184301351716270713415221281121078421024539828016941539845693178031440346717556682150572610314041616875737927308696913146328570859460720407072756211154884129506010124045023966592860818478845345316976943928467227745076204008919627909058956017082611851840028014023357979309299099348129633486930437718931270302068324017447487579990523935917200328122745989474066537705172803687778968703283253223641220264382017379491252877368709940716952874910149757842987909199702077563722397567236740129203789029160721395023883574944005972739878439389796403729444958193724603055424022251058242016420519650563015991873531772333234668097457000547441299177605367726564657793204764862781730413402464370963811772788486198587443803956591056401541967378534884069101539714209277585008407405389289343103904007782137920367562342858241202718940721138125808571395270014959411158738262770065568765363291697424741700991875457326776527905854745135493480876659905157352582532496602694940102666135797177963203100209576456174602051238096455215817118336229444252770007595119782402157171272275530166053858274888240793058868483396868887502123652358441917733536980582983574399379574471796448779184300506485464456972511781699791530763967722980116498514317387941329446675466444894516479440755987367060231984142973564006118042320470536063046696950233125844624373965807685605630683820099385714372752571308172146194390125637243509508635842819637814262189701951112250304588510212101010807079866352786583477852645578315102126931162136338502688746447881921106319515760017114187795008744416174430746089199889151189132543236846811087653420853001280714693575696087015115546340556753656204656532861590501302144058080383389281905316605678164149239401459106155784998408599963049419748975644209912772710527684714341251088317725312028744521728933929545298844087144807468144781038019084970390181983724642266386661950568969749611068987728029534943411349011988875608090885154735434274025678138505430746027322091786296152559272304976883008724480596479752225062607904020387278537846619228819616667831925527522580144615517666954416111442655146951620766175030514361690509540609698496675927765731584539757745655464541452895848990800830770249542398046578737651900574206181755931375810234290344210267218033024482623456293515927384324268298750285933899130143345277249553271183300074581293761153012180598958476443170964702952486497978358295724112504769634071487878644873078196233580158329758279429280865202415755777932812020108414439465951712555222917889449149198887111444508837011063934169435224275500698794065227216213422683474039399515227708691410685695470163117137784749223530093303022995033939849173681297220928134037373175856021329187448527183624118938551784445363172575688460382333046194747622775477598780590553409727176718986234497524380244789675920318935108134380038615871692702366823860562282707737586055417068379590105964694082063735160736683979643508108737353024428421095597567794253745318452672856033575201951043354959599018964615336129871217354032059430741172935777875916567550882452029596489252894095167091679551194997398368996847413719996035219194080263437354154640940139827621478458662123369370551590947775861810414251495872997739329599818384850883812103146020038680172857309629595212957825902848593089804059284178815836448787813586785284295059692863629070734171654516870470924606020045226984630774467387732539528311060610890855986559719852146788167851481793439194362604479756737095568701639296913091474698318880835180802832761722983474051271613104532342926516224879999033594226169478106702663132406739090873231047827290438041300806403242337862672085870840771379064670737771093164258252952265328184908315421423388224072125707870796997945906163245473838339190387838776844752999923181444917591930276458457809406764161240780711909518547700065905562883398386951738484411127231282682282635154689930110851054379430051224054042372196076033265725843214305934784736730126436057264863640938514124499432000665333926720867980820748854238389471790220730417989572888526201601642823482213103075505181878763551332219878680929874709896933474631051337530434639253684565734607590262871287490904167255351192041239823177390657153778420284712534767401276657499228864589275152077903794141416140404017509455356424570618357283243693369313657057490760889223606571607030118729427456372976746099909912399306929095249219649374627185106988841390614354533400973009228427062113086527497108354131909817505738215181706540444711968728790076664229926113698608799488684487246436607352076098287611461917022458257316380803792267511116423325140011921852004320938375260120042081888783520684572773461654002144806876270107612706086285058399866736885642527197232289859230276622084838989862998710221445276512126765440725634245577186272860103083233955021007136917262203772501005203764509309114192481035884429927107798771691541377819698037080958611427032559528639002222532630998405291545459002453289999621380827717882592833573132920782673093742109079694645709532891591861305846532466119960100562809790189846642905123994944548826533825587951796408680027458829703710072645543107157053094750392289813949662355326304137749025041002195656325542017352400831691065936895529115050142036523574499563545989376173759991753510472295714366135156004537543196781299901500397750572593242677975538788075653061901581443270595753191701229832290761484460019701384887783042837840088689827444164547751307326933460982522078049338963723425928404905264777813559600710313790302938437441905574817985972957567657816838259138496299103822597336482807430070343995270433780991913844332722556199030349858490443892899008915819616500335455917052610525479859838148027724865301808877614435526647033335530942589614326834514010186171083943502675819206423311620330315010586588185387265361567366457462416142519086394581654538562978838028602265988154062751666214228200881142816722625866911331648667990737203923344863894507781672338896233838717742051014738716083680984658872166542201305209474447868365763836321313179242943758856347727825465939966152193746320254519338918012281039453794030918796547262122530859307831546123804893187001528144953494871141036350579706094841156684567111763300606034854066762240782657181696259141699842323146273322976194877842962482614570237838924856607783703572570708890267804147563309975513154860334986243900699249506242953270790541962717461073651112116174515162603147433363963858894511168061494974373828461976825826146983330136060554601494404733259638268034538790729821721652726819152127365047242753997721109888953564875374328495592684221825585308588229805337473088918744071518766211535961072238934547145544119516871773198680468549976773711083598815228719863442773641003463366940292813423815375442783809274377766275164766199054887225485905479508968228135373138547398257807085696656204626234806292076008984954433907919387328921334802166723503023644353695165156777223547302349962907810928725897550826007480657584753691207074196865922742387801005406715236188069427784319246603222969049204141388382161298120819690699028558715007374787380546664635176514120554472337805765765847425426762992497146232820063036659011592243727980759341763898254077206267524590580903200039590979271551169142719882359872772183391832819426041341466136294193237663067568167194238180110072856153732996839038950201263128465009552112262692894512086051108195496949499623933856277855543267412590732555154551681836098841936914799951590886573777762816306686966461806855437579868153363049218029320358413280592814590814752990999528452965653219318544186387424617151657668517569662824879848953977321055842025293927816351930085067659394714540339987684167875668044502774285042752635203194239414978835694386781761166959398105942905941103814985259353219250013601773443407967769210901685581798014636573505931924524769074987126088398618421367272272151593706413149080209442657203565968370539620484236718316895649324797559828023445684481652744054967424988037984318453726155030534027057436796995828745072980578386150821756767296503138064530707206342080124075734310313443461769861637286211137410359116529992948281339274685251111456058191809481766447763524770347112185034397714603986721235257275546253173433205248839788317289436792194076094920309082793000536542431674438536373145732268043447722253394156995147542821268498876211929333942430740485028337007374893974607623336077936307223420620792390415402889112780151805282304024346565214206053797248650166666109528899299046975952754838988642680569112739878770522191146927218328564001753472409685658991369346357718388902360367641868353096141542441617671771754587977119407141047688358835025283126849995295421031480177762409685250454819771558573982444653382643019703721945540359640943511267432551819077653029285360940929222362845560726529509249029051024810584836051081151823656539635538553478330107982990341445867590990299952508414027297503537710785388416601436701974944806502763295896491355091446303654969441141459651152807717680811688789900429801761161720958228351109010046119975430552408591435191989999300565011973543846093850584125584715946265034480822602284609241598991047836853831842700877670525192646837956905618978292930348321176258119798720583749435930350960418476862472026388037974232886500870857792524884299210105533739480844822044457608095366079767169083759810886408048342390970002465808248082652877873136836183980167746335365091023287902443714377391662163529818261883260809023791827334536027580351595784155864357861462217566054017296929008025070364705986293608165313218659904869398137848925719218575770667691930141716525123467031445589166005767765548563176294738284137397350287253693589693635117306332824244453944671290577788590183905273790215168344639582137220754669378658259356076627444317357456729531479114782226077823803383818955888746652001764989978261939505572316828242509705260591244472411790715013667164813855177298544385389532664810048254344817186360412266083319785871721529693794245589288520784507523736626964366949863510775916171559992157919002683380210923817554879847818954650354588358715435402890190874445447723931970427023989832566305764002892666942351344630607033434223501145335557083517331806445006765600735619208939712176174252274720017138144753064234944907287621799392770607327863905264028526345683092415852818294802974904934977603412985425791092516306910293915016072631136284969677073404568888264260630546067140056413169831792091977277719781949726086549257607082246084184359539443801894290881721806693458746310806502769805521817724386300465290594292839308394784958496854298748608790402308363248542839941007196952929731056654769954267203546475420065840678956355832150352347884875028332830335619394199251567951828975299213989176793859881437057086692131573206070274690123715038965770233974783075813302326759014038830543941829705721914538574367420867657453083894842036283532783295305210616949835317319302704718065255079896152004467832781542848470531748888430503311801297016626821822041303604480037086595176262894290062039656905501832018898994751502746023145128160430916378429218682499248027081424291494615035469907225471669658671737949610501330099321105758543754855166924868645319249292342813999840633653836892202563780981652464557246062019501975222581713660742916509788925329760861559721500350950221969839714889602211089316074836546083665740682923527845202558142309272718256132581511277586758757638860931962692445557060229744527348986241089437929041542898306295983435715787978147821337174074116269237163675375867282447679954245022577699658353342836041794456918831126155884961904342956430025843834447325572861636999113215633464129817112779351649756781475240146869988980543446025228618206783958721680185977791197658447431360629278064466999257195455800349322753408354980199822216559847298087468193375314856560752055533270292343960430904482626144058287131809555010981886606547224104778147591968031808467858805611468165462750527878016362602804857205440192962081954518984216068509475148855825521261330244146587037247510581904333983461483634186630444008789894280718941220857280570967600571777465571030202077966041842749630421860762174298004532215859892080987262640512957007969070490035603594781166605658246894287082204564538358522809646490752001822210353638070894641767314524073842606915507765720489514357797012900619303034455138198314776626907546482786315226612325095113727677958056835954735216140051065700936996994701495496824771014693825747189847169275713717080499405338060210742645887118772218445569203533427730108431658874686914237010895452806150941030221928130659254587373777595344699287892188772216113871310433107069673533502534670240379303399787707734008993470226179857118588828406761251233380150580301687333132198865319086601523512562849987607784652647221308250679256444837232497429984836524622873831417886585321796484494446847669407767567740683304276874411228223032141266529850964655567443229402801231637731004729142298038553301205914809172038153360869265286952264995317508299629768417879961023234780692424280252037757915916075534000342880238023388355121574591117084094481133529100614522731614840781680151942069807647233124847519643826752334535495285897915810596303739799153399013517686372486807116622175623381033664726456173898373409119720257398216735258738322388626795900984301692411175904357750818246502021341159797837032605451381174769481124267488579810207026637863238350806899534474023578964462263578838206688300794038284141861570816862542427843373461506031804606504681606086290522005094673838171186486516000219182687299901799137871749967020705590266910725443685993497550550991972244657572643279981352676355994821445973653954676654684367172886712460718826836557669889569765722181206195067033631043062268208338170083304434518839021580599308981511388157891002430770050285265330534621450684632545406708090314312076678574911531734403086329850572714892693392939667344581419596384760900873125772402901515519217893630868612930078153428985854760901415189256944874755855556154041243295116051975826033140644836298083241554579542187659691486365061884351228369246111133312364612775060007093254937259695428465315838505605484660155681153962335821359159382329824645576798665964012887929877184160987219066529487804419640656185156530596600608957556527579023421753814775579789786975202524685955347973393405575919766691666435771542905390892770573227382049189163421688749173387555525052228320654483167965582524571999190798490990246935257443021425152948735759886175288684336256174646885844296094600446988177032804033424506594176441748466588082469380625849686828170800218564317426900065689661335971107414307549470136438908681066575311618042936794715103495289232547296225369869660749981164811887054476466683743748049228884042203265047326800065450266117256478544785608563981158796010855656424622221147659031928830850085320087262123145964413734679940049720323727745534882548407842368052968227222285228468946551226676045066801825390844071956250506201634768360520769405404946389157213941449140428557903684699039695005820567201268208922876357634546338816948625813422165126795305851717837086006780496450507237263633528738432381308813975316917003249381622168978084916037875189224795847083378606285827920190138685708517281639502258227641402610341680110564658792986046676788970059892836269180878041570530150642027292643296854119920485350559308315887280022584924000113642824265122544362974484514857299942478419815757621028809549014397669963133719027805618070080635004469684083264586718374520385951269782211267654651861237607073362271878738219692305195247169946015487909554079185255918667565028495778984119002810653824418839559482737057948223324279194897647583222832053291110282805749893159326107926225875691400782822916289590873006648907963034654237079522168485736066343884365412682057994236768206722254438838959717745588281407895998602700913308197565596650121447125410743651206623363901356704761360715025106002672164237239499153928063788799216231948516985146735423072526804920723163049164598375486360646410285917614464713896072538494472456649395427025475062417565319955017747252582305463026364735151937177561246299656027774057443630953645302992174639414012514158027771668876572060096001284083100629566150052499146318137443158599219236824034655170085041714163307223814839208569934092412619678844033225410458413371140904463296692653234023433873824115794794939936774243895839578038229207716627881984459509732517199983070920594212333975550978316921065198626365315238706969532308828251293654555608709739766132207349367124034308820089293556482240440500774945724074458343208499232315902765140613220886422432436844854354049092092041581768898504462639545521261588154135155964523070909428760871749129104029306213059544761553419359940273464748402616427890657695413067068336823137167527687365527999308638596260407243968196145401479917724136766008011363034792123330451179048235304975836095861066203083585806225916416251001725517104220521746566475932511809907405690723947201239968360722293058125044688742671093014085020691306090377436726973293599452103212647070355119164093311983265772308633834166080017352486160218856530544765161344408277753346395584528343948009600145774005238450606408224113365094967565067861254243272139103163256704198310103399301955891329277585087907930874265160814136469499836751995140500544520915613532987350022701289745208632437185021596296233658139179326270480572693874306918743730652211989416778148134870531204204755548964318699745774689260529145056433996401573347071305514577037848595235567520470270588997988586326766852949614352089310315371249874547216773335209352334241852854443256214494726689142936820738004204305501903776787358338606162945892046984826832689820271478682409091564894050402267256405307315246346516392516800066566748453626225701109124364270845812129479711121219802461584015603496851169465054889124980525737470030366594051481134225524020663841072295814386006857871438521155729225019080304225936796524310882263704115932440982060390758941858010736694450439442254527979564249992275049314675573777932254252485495525882778251157475582400434680656240450077816409556224538297355783622860450037397731119608462985921497237212178549636752479582005682346866878093707362070894055335149640981487061832307708363841398743617057401032981947095599286999050193796746089418941018899365268513111802676888077172221219684746256017590742534275901498701626964636907347575425808315835970998128270232530096424939773122089932020783300880432795214127190083750392376058290216032805971869218705434848176116921290449621940971098769008821851848570810759696618717531609253443960468984211308061478355125281521782658871402332587014981654480873125726074986619512297743153326968586368983907859758351680110031533144977138768959332174627916408422588109827159663993474478221584674901902490448190749012317126973384769493674725372222566979599548681641508585820793421426642225529145636366906378055761475584418887374879119270147739175657705385886813523130576775515737636548309392092738380180456935153124844260701881335145963148553768916050268041652003251052685648269097320569920189152749501905136421795321802803136448895629465320280849231428286146807769404047590150748743161639385294575836049314801980786957951174715166533950784713351605154865869304854292334986877497741356954861044125036694939691258412500491817209462418946001201180292434661059282309485096424558815673592852138497916762381231670320889607734248735743586748898900426701385813054611110258224903615992253819666826671076811210117204030192601953008795730287294758677086137037626660600124703356993075702708813077909142974127622080451091282890511403738664665737256657776607367829689223390465118578389014647462329357192967901261506380717314546791645069154957422694944478273928514381483298254602784321572835198344384339418490918555179577536217992011896875183249409404769893647797082051103365500777917404891403555921317244371846203900609049900375842139114363331916715635437755649094677547025049492378559270931498149890408690365295475729182101753761661427787583322136256862074201953720296487215403791586036222416274716143749842085799722668306254509181452702814810548358857508057539040623767088254891995983550089146879687120202474417931619971296896426539800687158502179139578650563379657746643988062239714578090547820063396681388124609279501500826860737035519253067391236977108176502723633034379129736077676201680216864660203149252440018048921460690815633106286949364323829227037242841286560811936381808722322625901022382931677768778751775190931137883376558898716057362987149276374291623530000406705809591824165579532786820392278901555755475845147631207865843766852503229408431406348956527460192417399777111858923983493971862516468007054695442975087835861835488582015129980209508286310738004962669312045712295762335633004216722233033362615241311274892999154439403344166822144636847267376922165868188640837831299060914738693995148847663900203740401654004039282794859129246688571425628959239966446969077573608916742728422880491254368193918110185768451321674162337909170149569398752675981112688924663722991451108771455740210782036954435673149694089536249440550656344231374915261301493893338345860673971255631873879452730611580310854309704191301384607983207877561175790168488207274905755781216328036157864581763474994563389689542959965014891625908299028842129466381228896205513675305524786424580601243074576500794301049949448336132577333182559828906309031261592965769364692104336085058158988096898300391026588338219552821762112854195280634174594788527260460801877683674039226143914936421175829010750943350800604653964660256599579007831798800450131475258870729606798292978583930618388195614978664498698495194207538006049295895210845607989225160942016466155044440689337088851292889040174903904602363901814343677667345924762189441488175961081738207678087254391038534436160796966842766583781270857825985566445998646829638851023640195682655988298754136080015666049957073885462941642103068482561232663318598751500417604272088987440504216158896814475347996056052166315271000291353335927072526861123725424149702966220227751980430829435524139625630866796527485969225601095067062001443371008236753760978916978705410649860572373639548045896455139594634833066504949310672623775525074690467748076381628980996175735693989751917300443153206317215416191162144419570552065409850536133622458347788600744459276671055702776662756310889461977009492093133138355017489844324392310616820354394376125248630692926814339266843978224641871193202842643031775404365499036374172002438455463383195051577927521842217495295428617624605015778298348084519977819218896022874613275948091375733912907010119304454524553390581139536055983450621126047062817750397968115703281368442587041451714917395146182749292472933712047719825134784858959031507264403637778081364294372565394836392590140244555638751250512792886354575297643354007874815813981900303316883050675157327238653175244518059177596982802490821709124595349684538222890636320024824047830224922263286928114473102490927430353135346906571386919550487702257888419723170856227377311309808824485649217691638040102320665114322561483312096815129775900254825058579169398737872591297699387103415826523594564973968858423714877727837003361189789850615473566609268221678526740539159251439308033521962810289821495557855485102595928549553034605336699567354965501979300811751962010807828690275362417546954618123343864638240301321655884511084300914230073129824123572091840499977360325603266910537118962363180067635689451298888702528839185512852625833860916560298721560763575142931258176747099108088331661145739511653799220165133885278440065307929605407379248602881355353704908693230952243859993799524782289843618777430530045974569539590191727600438495049756751168305023626122475499107452381063950426079584192122587024298097978304369267814902452958646299359349156123052522866112625383315601977581337687844310947785730519036704045509005768694647954470966665602744655914002657097005740179858971480046917829070945904728309829286918154330727994871952647543821677825632058675099050771226388047470778995901142143593458854805376146818553488731161465074741953438170643780749261181865207564182115700345873702109034944552847285849790515025723855684694108410474970120860966989080482163552213629423559789092186007834437136156947757464791181264542849878705076343320253481776122724816640202882847959592546040698205866643114393659843873460927078975861493513475552606149915534688361764302723922884011863370980049813012755273987062830213399483716167038201794580829820751231939289789251182079448207728068472605675924255540067874651258958720540095806083994360676408783365442127635344548122876030459305966265856090453414338767785991153239488075377164117361440775377297280254069875220355531281196004082271287738807612438131234032655640136560338709051040040443836035349131180636025979405620121235650703912931488244858171689715215023870657238328753257372150805274957222695609134939672722213941363200448102259428521480354324143243553306977495150739803588581061837668182778921179109280659959442669467393576466357775039687863809494775532107519388894513311374877615757862558713141346669317022863896041509906265112203276809865219638840534882029434635309829634482494871890554265419156909826405704058147048938688015653955390603255996958868423668588528094983869497850458548681138304591949499914115987723617662145162947647118949036960881842003012791602741492855506508457177496348983344252366217650755906750763329510660731905237507485674287247110003323204724858170557963407336857438855226566948745509638685035688555356877098891187804297819845588293315383772519280626809146655108273845068630779907335492462252652742929362930084110287357435494803096570538272474901783299102056504861876605750186397380323952595136935692615223257028849536472820985568471275300667755880408035807885975982909773381523569844861013397288646451942697802317205627356896987366465481990554088671838132335610172223599027709466520303707747675929425550219189380960865946096883963857768890947435033733612060398961652214062200881088805889003776560606898608100771869412006605907001702138968814513679766812522890409432916291127224713669719552029840513679321061111819377273385023789903653179036819396908809583927303482004108916014231974819475342876839126184536940839205947610166889680189427481119369544186576185677169380201405087972825517484323784489962570297132945370810604794355701031234036539472638673062694803308484684431713866984796518363538864403813829549547782817416330860060678759785208534096458071759667413136098221314872087847807473489165089441831637927618118617957766129953683640083443366010618873059475362233530709368967517170645281387096562599411484820497623987124924074944702376845327378933602299952445766295532093199543516280709896215591806503690688458117586579538244526826654658590694785441374394767524711263956178723045515026773034713229523999608036012166983501749554270403248349198854435701892738311603717139770194400400102605519307707114434379508282680895893520110543127709767542860789699909053715832628947684298206715199678451831103084749605029933915423950878262424119107099693716610009933798703639089853078928148808906372099278416727029312764116089058430375240981943989646265890200857291149886021952115423102544007255289809034789511507097625081568080851558484612840674092653494045027474285352149767655617786881037459542866389893486857051681264964725061959227269377185006141610350995695620033072983521920705396120181352561147539620469392966053382959503591416244333633066615466345915138180978335730147189384385821382812265868924217274315819152575099499637398794231919539181703686758319443102107804546343755694373465688447469834118980566336797279160122916131895529212907243485815607725732640571749095996309452565181293414444572744874969608350548897321597389075664494330319416158632001265108069170458052902105626937838615465644571838657814532655367304864212365987735370258897339327862414682954848259141396064773128025408073274516391053429497173976705477551224550784941236786326284512939795443877850661007852489405518849894497587286457536648288687738505958321943482183972133567215404101045908876120787037882977974898601124291387540537551141041805729940121838161481172143847489325262756069946344208238174400767896827114220243723612374801423290899234794477326888389918428880878617014918060304692453913221864808039578836381326416065506276801014331990804211342580904487634442369005092449179159147223637746315231908717002073538717667927631068989247582083768741443672241746328898100865598386937776798559411409735477904102512935647722556566419635506104143930038999101352767665734164032904277949104117792385947240323214397946824519364289439465457097119658666777683342374201760859957029978967576191726858193645027827642384880713302715470734267468811270214324956170537843423150946075940187283117788747091270427683447953738228285987632854005489696865580757230286308676142367502305428698614592407180997579182636518436550027311811601666680605597605301303403005910869854240759089274189316072477622544583041215105579906119325448956263472483873948216048409201111536777485631064868573099875148338727705375270273815221160398086173372682529030201445039416071051222456796194527023026862776996307192793415697108688979036004357185147898103485617013594606186538473399520833201926403650072917838621937541760254493990256950255008211888436446031543667548382575929328729210030933798427639958887608391152272220976761912486402414686467656674722483106422642774376426517431898317861682324216638259499283338623199694652648740054959933214087071297753480426705254688019506495416851172643239887279814968202636275504617896106766528366372452716885658212583062225914845804907620407831461178937164989197905648833287714542319921211696638913422000873434987752702221863938367634723874303973727786404590114968109211391228096333215613656987751439713805975666973948478526520938625872430260786032846284924312580571106239382921809141641796595652778668258294610305183167862541591493827824368117768455656084093965964830633919520298506470246699885022622047489918891586294672512262383197309234755593978993080762394670545063758017412978257545034434727918864374119021842358787330939398453769418066576652492546327319882054097796529746438218843967072480346404348150107529772957796243210759859152811260619789630669776328505105938537295788856778198389018124706525382281736594464527085218466327616775452910886554536892102500499367162633955365842530068043433275582260703700327300883165537873505740092179323955297857399134374821411509610558744349357845143838174148236437824477885402218985872338311915520604738795316147591440934412708066183906386499664765593211927554371067495027176488412040098787734484824332742612463467592196371791925395417788916416151178950060434616400985264404740678468361898468985085081205795393317489852521722816612580432794451402292762506697472387773181713008746764984744323113980423043653877718158840014688097513212399315380694732840818752320291832250289041008278164662912838542789274729408437414859245509215330970883019036892799925158391734768358464779560985822757518602030769704077320517570572406738867154884764998085180838796463400250675718177632856783284054223505861387891087184495818903252057153928416016727782698627630896731987625947909729957326514650835506145087038006312665053844077787988204212122286983607451768296182447985890429472309408521982251945413402187996382003725342844104213068015073648464537618743939759620597319047173765524158207899576266293177868692582675039657664092307849718220316770084728417151498645711981838842564322937530783332504916436853873606163139191978790552414588135520177933912220948555077169802682858421089308412209451521993077067969000432050595963794219590854474086582645967704866750120732237473539925212898731719114986813716133771819455456017202059111859965827309558636358004524407945480648163357716986407547410338647098964157631965587070159403549783642579414707859711571533923232194554590061365168791984170458106457321464225807701207579889131215693072612399685456582719302436494454791197158171107523974177695569675284365759954338123172616496703815648161625703406355679916687893305493257638206436710228989337340177905819992707560204997380400817069726708888010579211161469055132859574577626212533125953271386387676710113248416306791166362055357647272664423069422681885548488734440527667379444027669999564972507964069832926821063076687299228592198096069008316020329627274824320765676444626291191767807297319434708110588907604627720160217538306827975454920665152875394444674115663230053729662761024697190362774225660228854552971503502005212631227658489551229169253390011801419469399259816531345510135647567398244869723838121362426465906829701908286704980889081580963378470427446719082116623968802950170554608058825293081203403820824503341420130119230357723782648634726337864361398879306724526678363026184379458191751817431057402862547773059549703747363087983700371131628454598074370005813230969217344775405466615006450155811090982361830533266922871446853422199076163648439252132105594209675557058113698788117434116925798714739362499058569291660781766522511123557381083606071494916710062871926033851761297488620867139197217925152778558795590636527536197582901536378318937752067776506467564179420157028848223967690553030365032104957256553327115130292306473306046216997319957377686990033603131989233678256623252083227399924075727439848009654434957092081162198502366686690454787053068117401995615010802441351455442224368338874031983197961597608788915193331133402209832424680909064061320160005135434439501417944737699673763009858114027339470855383823558415650071652482281339886091890667382073157166289583067882346486324246107477648189495778266863599917242438946486172922129779417054105459186946939823455971368210312073732553732528233942162341294453024018011509699951144985686614699444837199587499959234518337956767138063370639080708279392121138442401649520629580925074997553203539851250443379885345089902196472795628778023681076724391931121418374027919183400962504493891620717119857496216270046457734648322206064992958120042767962414568320197377179295570616454905722527884326297809099487330471289664372086221587172880782114032633287133860324968767323927981141212096182397326849380760982998055141286287687634344550019782225847463827852404486582906690548135912939086222818985090593175326979682804297990245897745719133318145360472873588575909768427234397038857250928003205422271243099732714817581266000803672289580961719462671791141410565867317162908310489350598180795345145031761071523798590834570628037243645891796765157886768764944974705727790378305095294732474263463289585498353746894427645559403306548915530404014545837728840725155235290372354496472145463022718049266567414523693831455981416227877066973029546279037305231973362984605565606212082874442377693480540469877476730086976726643971071291986240709246581489888391284394694515942864399883876455453182109050105230469043383446878797875504338786135790100808566836665486787983351417988756139948045229397964262839833290304526206745148580776792055843359958533464380185847657573993585048569613939669969338437683109322212297922530289248735362572965622067823382085359099360612980299547991244188329241100879747543037927641850667430803111464562643423905701974895223370386123615769369802863036070664414413907818143321854265917215650176095965227717658633672566694173832103524896236038985559655423047743576536918315079245112182588279901109915665166274468897178546193654190283949709748751994507685811956364275763607397996717269161442853094207095243713566999958179986212735460784905980123506089438506122324143629757949001073070173172938291429594182112498363562603435848602015066432661076135772277654842527723987077498695582150588416980099156322125305140226695900649829588132264148839038545197690310433344469400490659410467700255275654569588156420336403148116669312327222539601974072484681393766070952318991696074139137774196657145548275221494906116516692212927473622166639701031952726196996219768457030347154965524827727795124445745666919355223291681651453417520651656146653068888901347749545363615971583999637962006944003943513726986287826057648656832293162751979908785257600190458092730850104066906602551889654118488523583275342862838792161365246121940451668922218716266561529956644975793342333357927819855936321986020844115041098426474948562539525550141793264149856437847806732246596261654967870585907259162130414054277802140200660439096853043041963221484623329455336288037039051371964505005776119116997800285569904322752111923671073785666585076010221351931674363186385649692949086116897440473878300510720107948724684093061498401431825719482248263828156178692072521829056614108152599991148075371753756596516795553348469850193807480424134598906528999813439188992972154683968906531334281524781022489519664601857394355746928686641546739888882659044129971957899461993365845042106802331741272260417587025296527898479978495436302208745291082395805958290136944400738490456392014054407412575640755486659323983387968797450286032709725433415915300598911245251325981192369483990671713284401806660703432309685972423173751379908767074694574965004101830526940361825860563514839979582488759618671689653678249737911834620559859515398739868983684995032736316347351731616613787592622190934803372793378735593482703213656288940427066227819651069611499297789173203011816335778694085286216702684168477264500574958609655393636873595957393792888310959439588231359872206498426429169467495216774476282937045150105957534092003087469532465878936324070395821322518272968261081508561130525536962680822332854086404450653813096451895985332364731946472569601497167285895247114917731843698852106820865767182181968218610715124099843668700554930951673416043403656470478607466930391303018609811976491967653386419111669204386763939682206914195405158405548963348414240827445736780963469068238908988842999445569221114214172269589713622297447172272817403155966092885485577490299862135203196829070078861488341247731194603874729203660636750677605999698151892594288854694054631507692689137788274541586053716736349098799377897402403230819584385379724613492040446033235077914242136679598111457711603894241089989625835730018839469198995680838741158360567084920423804163764799555413979373887516644550926739056423902469132493826246256597767059784961457941178873848546997985953214919768844280287374678084405683649265899767745173921571232442271759835495357291302785770368303824047066879614913456808281768505818633403817401015237402132928884169173903577812557126276608020336707854548116156003515561920139412969650748902097215896062588462496569128106102718701244585381134483853392611888566801544948691028557362468862186566824560988385015973512503609876930815178139934219170171947482339338483349809268459227675117063010906176512219640946932763984714386995966537980948266391390684324617475901270491531191713510999004076174211792345199672434755462581238163417960172037406614158533556617135187397996581848691899440692612005031057382555817840689861523880950181304171499413590702632264337131091915768093914871583651504088824658663514063917284882171244471285870499280498864388722223247505169086155288859236738601273493381707960437178790509322791166436614051944997855421025339052100957515509598688703707522096839657894520631204127660648494989241701307494352976095155213033734623761770046758659551782820674489147383296377751252529207503313579922114636763304185893649116372413006577993473568018648213953657670756058586578503931555657196758184658121900658025449448907125380443947276554634685699718778225308145171243895283796560020793324292644202517802824147581516513589855542004248854500594502342838976797505419877293214464555451192344792441008725890290457447756885487739569646231174072115012223374556472906849632395094657551823389947056173190125245989267969344083917121357405647374391043532217702547028488542650445491927781873724807782677127543420509184837924688421769443419108672355970606377242932428791164580042282962237668257382323022660087985942277809512913073698609256396839811319475364297528499053210590579770694914261490527206304418571791853769883184168801287135662006117792858902870741963639940244059381417841389595542791621946970259887602012373577335981072315306281949131015294712668304011120919346445661981607511977357568058571065744897511922717047241811501549235768404661905579617099103046375471916190175195217063793700598349332102050486205821377701965506918483613077998870891691916386230417651616290390923666433903602755234039473180846138381164911243613088086759537807227713613337785244551386984841074919154144628795817856704547406325206395862040384420211501597149706739640030487943267016014646612532227874332401581512772039810637301772416048111667456192636702962661580772815606216437760390400056371175073726336475599644679125676740783393356065268678519052894658144536290580908962709970111869305081087209672029453762238309571709022988560681597849988925585119813665247469430293587354918758077545582679075928344415323469831740979529613133314885355150768602739623299706325296396234650606399030568804691889759306343913991277695424561784197770815888410488396626251105717108372263077184605507556516840148929682287647471158658082992647939174344983823958984551141766374937069434213526376076979492250018357501302745524612735213156172360808410830278031013413754106921468948315906871494907612930475771989794868951102933322583270496625871380596279708829042456409299452726957516807159922803513569503803340409967729187973708322576276540855729243773896865701610551233106911796360279828190311664402672920886933327234879481663883082302557034109036375973130170562914422144941888575656891909483515117138148881660174700754322561043799370873951443797380263966846078732026538988110156685950950132171540812668610297322523869790435649191192183216178551881067215661584032299544590165832327361702498076680015367316835418943384008275142272722505635084173365873082930079352275894060777866699225228821651701453592392030366718944512777413743850385502976818748425034783223112595216044588959497180180952349350372523019065469971844886483117349526007691043294634507889575216113225343799218178021893700423440608726011454244138630060699571513742488933205441553706397840863589040346577173161175691876401319843214147178748893796366854675325386086040595422518402308481072626738818980367219026310005135063755810362112659320070984659878847184837311036219734529513789372492985117484225892320114958679928250532149635040144431115810556747476685876746644899472915831484111901368815433459302319511273671627097219764063066264342679334284778151658905034938082646545931507085378266556425798530961093739516262704518770101147907105932900379194660405868779055599396194876381565408582304392611671497775617709313322334802744524008538412840285869826195558971012563194554458854761332631489047420779379152911168424226302576077411422468979867446293846949453891418644146212340252471802847356029311723629050635312677130013873062213178733021941627594731951743994110890239677477709646172382084569214863360709532528909274571770073007472270452295094292970644380086664157810148841958663360757014751932773720849200632040241737948643038659941027076707964339887775717596154658461451669574442681424368930855963631567184830409106848278073099344763464540999138059279930033650791164907924898373345294397070482492893327966334324826396775920717525383568669396638983522658077296333625836455790186967517584509698588390795434583430711663454947442698444070259498285385101019705308000533705894161072357527703688946921304600907505945530498824533878516350859331984454242240815503317776210255491067720987294343929996400404291354130981077371461755137775485338680680665301371674676683744544974023098925673365481389751187056027620653253277956849993648812528951806321190740321047570458137358919402210107952883718034735985837628987892217837151204952619661554786699131981172773085363440077376757876949107230432402687176900358350287696858264470997202766326650833252628825310470323192383192075383803759402526176828807732230931070581246093464799512507394003727384087729294318656471400789375814538497831299934101237176932016321970294288187611380011271998427439030399221497563348444854619750370245883985332546019708939035915166629240884759665612566271060528738118775798391272285360984012311636692107010656599816231753397268958439868393114901441542862318106902917553503584975787422728180495555901130599538042304637728065969223129945322811062338445533058046884367490383001916509957698530759587203933551722975924820889756766424225212219457877481121451591183649583942305212673230539503078522653657794863718550489082742499006734231096202326367575630681039334298264694837574265862326919709279334547093237238798216567717441110109755619797766408891658775526189679791504717522264236321542950971079618178102499930462939212169225257311395712962615749894773310293644012917275496603535637783135639158778461238928302314108599488474513209365010133862940172639883329490811368048862738199598992352882281879757236790382398117461452181149635357692250014894687829536904158937818055797015508456939218606897432365377231267427564781463999641833063275036657386090663541738581188499398533399402719995840697510610677169044254362274887296778667405605981612614595087240797586686785649560027564555671706279270383893063780130713277149448540370452506868797445150708834685531287293809732326931526960441885637552431409998862780424980111421335281737200397114866674306990247130126501155346462352454705133088657250479801949314745377599282802846206442523852182080615125150895086038168742310072611694946696270929007845757990825214097852565497537030828000480608062850604672861827988170169091191359990632202396637282952581141124080708755142006891627087465165577232088583515718002409364206327568507716224084228153849382474769446032370147153058624217504499760231317031187666161781937491512210518549690751050417639848856405881169895988022572265472195902276644144266804039193902727320870245135390319649306789657346828689518620485016754331745758945802553914986930234103080398244031110417637394150385236203661141814684325044493396659958878025301013978373107911906785375908648746735508358072340934349224224587917472362425190687151233563679415204324786242815248474036572802748351690675906312015075910772971871889324680847130789913160915367620557279421409140373531454162765728563459254902054432922661916628085183717746570596522110779476379460595995784366308965511809963140677597217224464088156376127910919960422176084955617897349090903755489496696920541657211287860651006424202051146945664550379102258532425016095174087252155319635726560202920291071537879221528179949440595111470326100537973102723777958574171933289780883349248162190983945400108387559937793347960658926511877471338411953444522191631881951053863059503739099242649652804317420367184669335042337763729366083759478648496952782787955384904083832425194968509402429569383301616484530609301072154261701644136601209258732664764726493478129489173643654446935061774225568095985910382475773807909422498325428433334162518773965204538650342081882827765255551981251653627565319764319605753745392804170445842812727876572955382059183550973594437511813567165809940470678248364104623311039621206420336263272848799853980163363868071227417762710285913838415299982153860400180773359410563158306550588678698054966161542281152438368815983287240536450058069553517208123036000933887276349287160383005112428559576270072225281785991002095687158139721160361559128030864638346623549354939926305449750180056435291048515402394772250765691634728682137011209070766426907641032059445914566684494099880816407072144489883537133331076633168144697809884096632367822893966892783476236163015775831182362303793977913110216266771357188234206218906870925027390528149727774086108442879174325852582558758586148902324740107245151545844671124600738208592596809864895251128679239927376545298058050772946941071836774776515391736589673679523665518713970630965366716698734621426202773130950333046962216484459557517231622895197116298543422430677345772892534775065017946081394218398531168326764070797345458574401624606109186645700808974128050112127371628461300092740980791761830765257244794371231488784475297106210711047121788349990106736617581351935282820620895370599581110259721511437690509562851474128455805751415453336315323261629164372733562084282431309745682278358465533496130036840218878829224432806539504320969066163552171607806291149133437236422502463339916173458378348959215699374491290158681364314731962410091552838651026022156765520338567269576381761866750013594558990842754713857725484930326498763119296242129332276705512669698263385197515930538641139258497133697288876659221570659947326464726787184864688726276613593348983604578037740483152460268389534894285864283690371763425830647700144930463721425823246346154312487879349524383845786590840223296146381946108939421061884399953697822949470703937485205761729053719190011446168970755282626752090754429368863900860491146220808809014113473512337328147004088004121775574265449413940471467233157081540996062677467929566230113290367050260562042350315333739949434595665470621676682820231035158225042273686545580403281357443339627182781632681404115053961920411751126077776246807082270178142660542043268693175363366183767589865540245550602096026702779646709590245930437341661017003288431938997530688010510529588356967541308990344107060718128244493714029116072162875308327651197439277922007318940211783099099093516157014132928023188934302022987487242474419209074166397594813714689950167995391342104318662599586653175653598621376803891354453612432515547961478215402522973332129161630759858292554259335874757586735953672640321855408238058433025315565645428553754081417383687152949422439985677298522199280357106088495687937781030921598105803065154418767469109565358861646376449007614712435737162113520442006379931253644847929020829706202206846754517386816296859049037614757659758211363698335220525572933990809502823785368839199250923061249908776534842195695118724111178551926123008149075125487810401109714235502368558379710406721092479436077233697782571543338132359155418409089819882231624723713298770490594877767203231281445685151098223623985312838155349875636569375646281710601699439253458129065383698938320984310697721787136872766372116486746214087777090069823487937811334226764364025150902896822044497132019003759862795636617869602381934192849630013872756242579816304082292394231346679653842630277049614732852121807322873247025707349871393898923816113105210669668276795092975913070867219748250489913830840432549563197020985728844132571555461879091561557458863371894413639619068085159778145239159931283467165403671169341847448811297341581790633267187011898262164637246497728723622899857618210942638132485347580380930554716585035514305859304386435098447889211876911052649152697199355336405062153879016227000194076719754029001148428944628511584253905721770821585775322836755223269440169412104893552139904843458417273798292327876093167884492655279423231130139495478433968368780279462968782067074385383569579749953904521933634595689802120873541181381170528794233397901897965456884075762394738561063801659196008659749775173410421275838149754376518179875523027295178810453632045115709966333069034567417648675608667387931576857193043353080877240409398993753142509682353270680569511226299400080874847607174871406918127459211070083477066296153876064668744333393603759928183803070546964382059205495210811008435197120995020798219775593250278335355385042668149971454298770651578496748453487215117942045793696130747058466976119549197735458086061821775921273164274663371771851528054575371847352747120882221561809403808397470926679838759550309230218247972997959720031528689496790647943261895924830104416756749488458035460585299991045180823215431896119774919869893292078822753228946583701406412302028673900364607904499898530596936361692962585458791087016606771951148019177931934199845946221994808149604747625565953827128441991322676920499508215045388481024643970462720067811648993344601951525710869268541095713209990595318757013967351587764134980315280104036344015074134026783545286770623044599454786468683881202370614178146074518493732587087066353463332510174676854730508110081624937204209663994737305140011027355082735314884378486625118708203892192223437540091915088412384434310049603687240468226423629214816547256999227707178880944597037219654474474815681855756586425811821688187724971095379497323757265784294555659647724027898453171345223172918356159288142618392621171118334912439277395450011868131307910024861896268769279930402135634531037866770153171199020484873980607432527185776445115907544999712925814617537083420319706307166920607070420496209580216453662356018620940755839773988192199418559200180215868696718830823020447626640084982591984048320847831766438230975395104500735686231747822107451212583869266778414110085724059129547870627063163855974201428543433646702862591612323616517496168525529101052078013094152453022318881025637276801748942308954838064444627234626197639893850241037445950184056544516030606384370491432463022860475603398668971360052496247916196173660758334058750339611767859608949017747823679022991059813512236483809882853791865519357679318334919212467309971955982673977046838082387620106103346019397290722910853568231563112833961885187017846935381205033380796288358123263304573097101978535309751110631674311483645941966831328361857248676916441258214454482216640327586450404951570258629353501702628237159247149177514295605351189413161491660759768093163374121557398019725447547925206647181268278270607291630335037935885204569434333751371234422824991641963319083233220024801692972874685984103207808669793309867381967652052679117877275157204885181974669354876751564436418241051892291340008408217100392523964985632955015506037319499448133168315958841416214665877645267010266026740289605368098264277298629671143905273599158951618485454009849569070675624891797187496516905080471107670462874263222698519596752368121559930858171916698808594165840959632382167471800689464517819358647980064005447384506862111571699718672429349379938352602233568445779331971235811074350810043980469483547315852858546579494950419225025762903176860540361214375214133623414097897251149485417666818870691827217619468872702961935928644624107967474708452635106821927469588515483930258677919388491532120543983245102968799423236673430596848571608994449978725867590387151021273402311040460694891362236176019549880027793927734349974308322767288999295876143780053615626019730041885991443806737556416572677784623501538874527925947520249894108639560803293577045923962915410212558217590708386047745072013553839308131460979479302497989697354592310900330856353391256245276884031423969154020826394242247271715068282666515903925605200618070992657217779565840751053715791520622107400802496562275029010812743564482284503361637964619566823904090838760780696260248204424460302786422895279531753802283936352086188855803691378273640373638903280035323566264189086494810017395807465200903026463638400504180969533035696546950042799863104487452602604086804076903784867676724248950806101943921844122101397601478947597627118476477704905447458903305990108940984528218283348200606011094463980784758834824276773575145781629539849276242353207084030000548415619006525371796423071409670693449443726748906462071799991584882671165379748948973792843117832212037649326379786644349395105299836857364152115908946474158120545045425125631743212252396884801164697473933781739865305957192917358328003852932633066135616492398933603175719117269259303560950941149903891700471299601865677604761656846569108714370956333136041098547110215244749860010262837581902958677089644032402296985020211477868829897663303881065482615726307794900141441993790140975773247837407382846750914525958936377368078274827310618454868370031349421183678070128404600179186309677690262986049165153161689455339993488704861370377868220217082172091353439990614222063054735170007968692201768157617823789392243075377957030615987436328737830620274121234104220477144206930776889125177042495054127159522206177499063807915233592395553330420374001498650692874776735812104976043956941227870635359430455767284520401386495049318819650081305541831217677607859477974312465942550479152249567956585683768995142085174817537251531457540890269611402916050779953259765544968444538260640623783840096023223484244833828323293247414692963956396760760036821613696223660714383480094126944033986008045906723837403597057989252327642770312515463903361232794262235028543571841136368773815423809903516891497273302397305043976275935103118447316983161339106711225216257262888354350417511594861491090577694819262389235800893471462926581690310356388392903664718682421325284722534966403331347112771008199160826538402634694934195133946252361535459984453331016218312832259894870810406770827247976990103018928831269494050613393911809047066817451474206700477090338434120465514603954737098001243660311833844305464293948262398070116616191892728636269231708564700605410910904541161548923927968790928814697792170474047205557664462758719759330506365100203042899664133111659701622056569545134793871608962883575292767407093927496109344372369450860607222784533183714042600701009242044307235419908655085182246879041973790228003048088393971500343450326143337414166374236050060259260084926590202299187220390895227770678194741805096354065473249491895964368307876683656575329848718401083712954795950738583882067126660170716444460069094248562137506417081604439254381712723720176885587612463845255562860732099622990012136969622680255450778590935651624712337267184005866771663702376015042324968185555221037761905874088455142904436554508772929423503900042321285487445731055763611788201247286813270892617461003253777763920291545979818647687918598965891492808171249361886317825232772675821717750406290566540682202771062928390234873555424988328276038720190539928753695157154963822559967464169117859950497879595462009908028321920293902089463410048853607734411363213099448557979207173954005330940616465945139812362110283385792819088345716346877814891206011934286332659553183582261827272746506310769018935892438652562995444144450441293479604665825720786401139606183836768522359573441685025538733569083176350632455539672832076155272265856173596786212118561985124459475311922770141245621199681148671615519142595788005894625821536468595973434485105436508625737754337677235746885462123632527486640991155285296914319129604427933471913555565634536464779503507352740299011578417105769557507124397214381879741550197548714575811064599249703449367220496648966168672944426192380542906814155857254323458256323581387005506928362205650332815674974989914916118443544246641523054353548958818470060186496859420493653885815771721737373016807649119055202591393246701597710015663387077218257450541584025643969704541866043809495863266929959779663881107879195585407442821965014799730980720867129007828132349347529153476948520656478930393894120647862960890155306987136271674545904312037203125042502400526513553358788432890403680836052836554585132955912655773129588237581250198988464728825302872422291523075472281747651407026292401018496705817341968126963091911276507584418996759169824562840823610307069444089402742630719189364868538066295905211975514107424953042501439904606046238223445429096354358020034998288056460421080143890772970820853337444109979894132626081316302015887534429077699886462455519767325224718595844880301897241821426260882449600777705876506332179303706468525239722057382764968628876256344031786405269918117540275611881245000251237327213736438662293310224433912779981328832877524900372017863005868033949179371770644241313019917338473573669636720201404548673851595122037286058873122049908642605205658918521103082374792217369298206200698384648368102314520970531533909084387058048183866224954003880078770439374963034116110880916303378320621039754125587023241321341406881671851409037867271726632381170221034726485812458037021894459873846131797320758994243750641268817971621693693260247025431417997317932794239589761558127621692254341649882393887133625936806256260610670525951191247434076761224151638407349044759565882302059343056999355140291783677650410732075731965359359091055964275403461270040212014680191267033830299163099912731778683990287321110164114231972234537893614684249897947732496912886818652087783983045477231048920800381763495928009436681177813851805102063600865977325805596792352254349227655258237255945582174432818578585692027155303923887733183170141978040420890270785517544011903374001941902533249296676442580662896047948040674932531531311174802000576387080118508550693039271152536726890200116344632597064074290398949302225982098141434413947883941364437455328052427214761623960162570351017424338695264909406757200514179200838363779731167784999842462127484992263817213250992403586597915355943961891742609904378946821252898549319696339192984567415649249759456046537942275354186196705727903323185458094734655698272774770413717546118182863238807562450281271556124761833124190719296484326655273048619302488376055127758242816626670428995693473646641036553769194981025230867560518160234973527373338549281024954599816563435694149124981696533132021317206474869961128545773602402343523268022379140857983222045683716775775749074482666266943262258052787149751101868604743358811241263842080598516990198046679065628491383480522944414772595961356660055704254777515298753427844778266674567363311977084018126201475517789674965162375770474392684319371285486042746620469750994484987460356830892033428148929473873592972991244390838551131243980854589786216572204506102682704548099193096724696865000930023203101527091479563002099139516553689984667032276588160563456014201015257288316902327313410918063235555949883926597807181679416147505201194551042837526423487410746921531609182834201339101881214535572101067897425189937802847388422051606123399941951990191607518849610416905464488947717314674925228330792885150857756686725540987724639518070015983054625579572707753643209754323846778368994945948496097193786221537324504181701421379947581254687131833408648677420743925442304718494618315736803370900671654981683922509845054748178460170933241421893271038685962049091015799882389178450151386778628850969493563208069721099227523669010882696377196024554290454390722721800827249259960463278749916640506961243017110687297634110677003571395213917460635928614000831403413095584351291207511750540393694777237294398252434970839186083764150435638047511001636435775140971079695224196495959733161054664797851576611772525086417847026910397080897130371159051718282887808811208013482056697219824204208280722367205498034137431426430317751953907872814336447786038997662010181636280597834068825625019194623571729985569411379789335826433005627192961331254861285961962390666196126703504481768807104992983438440466670753215961175628625793522138525633089076512168686222886383677454970514694633335033577847381793216136201378039047896919483610874556486993189176009052913014795742422548003811937997167689479333986084351294692603196804900153727059677995916904451639803142678376991449583521065643847954890540151854548724915040069295453325315619328453015995327690511714003357979762542271002983234847234187097591616109346843955562795095814609755301901953679858709227934373289102716280687962999075086119079712569252590474472778831387322878408142697433702819548773192784926073334178838948648647720410456401171215509418354948206218359666218315198653240412273597239109819250627935186268369247921993193574391974325864600225553458378202237845776980773397717519854450494748279326374472029377205831043028055127883721379157231998405530678679829329638546019836642556356814017315302770788949566674669553630262014489353595068364216907008687860942434537077546755381972288104507322817639505342400582332106610066230883027857985115234649881605229716343515919329037169276143302830625297659749296954526460834222961112725155755349207520414901299643841995307697554528101151203511767871831078166021445726760711307462566445455752441910106127521617111148678520246252587394040733326696637945594480561323945436363475427816999662275785239853975536766934015936590936108886278688176418543775909508015087465324954949613842356022923775716204448737068513633287344873495069228456051281047443824690528536751904582186807833486494022911180230599655670654905493612754888166098819326299197170901603779267624127921467171293548536018774046548565686360882509090733446205604411377505259387953714456232682339278052421285945909380517865495829066559260937373069594676340318345688518958782132041806192356803967853786415814122902732546781942155969485479657439960634668451182624331415968099128950465377021362575001770760750662663846898333353823202357689972541935957437527148746383590171707421668466055009112075182209396283057880823949370353706253941874794018797190482673529581587292840173771019550386770148468584974673392477260909706932684002843701131050867092127343844769335990655972986641258631624392314046138364230016288494728946684891799094183601488619350883483214306274212581665298020906912391142097611272762822819187992169298431159170953419702783121551722454163065697232371529292766273295651845341991176419889198462401768677879830641134243824825727526834572569459949422244349793552363095705706910346195038327058047111411420826675046510498270091973413688018826378703256518820181580978580993285781229117881514586895318869526534927895672621934817598637070320688357149929173993551667201325396974320276968327348630290082029260811761731507437898777584388881667989796012389158363181946000804270219097341274695965375599040404918327364686993739869441754011993210921172042399833497369158331696796864601365606824218568494689581563982672254439287106840370448721989346138051567531534474379011364478277736623509790213203725680640693459678096528549788442193982889166589483879621717205270885976238335228184672915742913890894409563537540859938001396046861339981800581662805835267965164778243946828149452130785061521792476015709395226652033762567444993604847560608994372618122364861276769459569569879760070834588382399500386679143667061156982027927814519421486398373955177019046619030790156765002562840371756423743524916966134640952874907795491951858686818082768148550747962295812627897793638489564571303039914776309239980487042873055969478970145664350097980264473125536368937144447864794282842046915335846398444381968979892271826766350586563954617283146216272970529619845278730347918186650328327315183245564386575999516606975242454149783320777255534901496466105484662741752297577898905398773818655748181826092376691888286220559043204834516309580896574526038159032714970486242641663579189033290117950099348283973675413129631561515818088447288560119959053520645823068552049540530122210023283991410780913702578583334994429643540515019749818149192243943194185481038499059992340407620190402527313365354146317423166703211052949865842793175009055336658303221281240176594325345109166911285185773160103829565256328492206622969823200595384914708372030876830570741476888922029417178898285609124383728584810100822407693632840305831356944911706828755534514188811820311212241078542308346828566925115815788243162065969103626551909998697374627526456728460261448532221790120617124837652676041336774547302863791134289242612754712343781391640163150925716519611965335307142817140316402433618416336324188046409860904887075454833024259135887538377923324557409548217547071023779223238263083379596192393815050522126519732253808066952973947789196353286194715342178747739698894796941492854377471221796971600161528518936807360014986757993850711677247576563284026816537873701383098747752846451954647294598117093611963483644313383226973960716308335247943035959518181976357180851089233890125266475853956430781476028815244280497841184384191072405353286496590181168620797838414781526302369230588449877253689974878188856481280752042528922337898135477934734586641000846563990445317357113134958582401472722711393728707304993163702453111834680295494672319841616856940605998696488223227673322115208308126320533635188429843520338565994897705596898186186832374396759997306937782198211924927037044342588653874229566650124721831347470445700326313065168816973132638637568485676335818378232424580633153818883176153872715414761570197926365968829937506681186178644731543450512988717517145630492198183424995871004840783431409943838015684556915868329926068615427498855404190159616716837586925902528315127215005683653419632577211758138340225111627177508001194521908955998670438134875623136091667680987643614844810885281864656721380579635123841921039791630777738846206813668972143403330633107247269147153479037182353059537734036880246961185582091825519609890025389664147194976569940867234097993993350587815883827832642707345792908716504992241223599904976744116239250496968969307818848340889587633461393322307117737183697948890533213041943474858268150814492224915893695542140715414072605085339479820562073415573052268871613267928309547154272508483334210775935831856878542182193700630499291455023222269857649834682536940916926801816955099332872536815452750933227858875404978195279311272443656195301460951509078822633506057415454827242199901701098205668721266902541646703706119770647921361230292468630847724633305921157928887290373736890230965772658524418944434468886933312528484967375549445866656694521960102323831933229649033488578246102843436280417241070161639630018011419317208396511719981550077888260787232623225126781397892474374604999538408404145011416787914140244643087873331986369886859469362548548868451194496663168175491220748939242594116602178982473181005361899220773865149454877046253929127292768218272824198899140722699135135468231360675321220751927360233840880345864843700982712478605549606628688096960824616736582082606545941699615769539935033802120003025632642728815565404590043356368805428918944593574857151372357991219929974733939088770455487646171443526059359293196494410860765850177746007280953334482042770315719841647772838094253007787363469618103211348334576745848788363561937910556189597371512766013350242015225244140336164350492588008481886057997888997865715200171886855561559157149760000178741693735342380664482481365812696516582993041355560680404721456426931854391032543743284436097613469479477892883984765094475162448993641575227326793298513575673157752405878715662971882690186508140487104674794685558078257470783698938586645102437022986258099507201588874409060747132157366505079007040498587428577566517828004636888511105575990209549592506682807583874706159961798197384602712353164048837454669200243364284014945195143979289733204598469508071123687326200978207873383966714616090562592742347828576888304391622280467528169791491946464309961828860022314646441586870922249819067251835707668372361714916802401061371065431451398599261114584530840658995190071604813793453965477538937951396035937790399632877526364852940779821722319991795035627938081387541728233597518251487919381444698929836686715702957953336482183967378370961606584077354018618669515164138875305394758350655194964354753999604658854976280691028972890390644058585090024631295615802658373349221454893636175141309862997194981584370694817234497481604070351433282119117033332594515067220766490684477758910359740432736514451314343263693605443332296418605464649124749084178618079181219649380132549844270168649471381654453876961888150101800657281569179196813746480880951556707517625743942650884736778207902372126074176841322197008831587065870274444124699722166749401314065255617104875634024853324145100654808223478048980224160416287420667431751806842259000747201805710685865410750222961957423294234234116273676870537126189551199512070450077708693181085701654437616856020328651865300618147848696929015425448515644987089333893127441657393168378197023446938737607723010512257964582307478122174942310637780437476451271136724391796188426095976493022062703358452213928126226117296736284474430823961871131610350096111761157113218450791983761072447533052166827837701158781360469738020395933392032663086884309033561099428351562835608185826332841861708148023532694543662592134519178034990849655406224585626762512755789815989570256895650209522292394067311440290261357588589623796294013998193298182907880615856134379960365186156067852633310396242621458411231249236711886215276419164948239904314796758576487137228108028991681947911650600858543703936219625850662992839531668263296145315844978813910540683137819279395840585459628148852872509425841023874279946675798593914896511553427541961746157537196658001014745954466646815705501142262111317937844429420197390953271911037625982525591571313806522219743202604342251491979256922825808401897000337869672337262990028796757460222165153172857259015756998161394669642978107679417191003711049581807540098457777527820666604810837155750791274170010706796716392860611710477089313400802645251925752037747777903589690115347872874237263682708831078329856285473880131618223028976597765576204708276479423801061156796643377372090901677781208951155622634333823830256126872680583730691090452724531381387015797860332733914796711797255946142393241233304227173606081411287313263729831331532243374086171567909384080352025310409128393451373090885640223547135464969447310190945732859598767240672069224458208197984240676209706306460508605175438134361684355854796526276058264402582709241616833762020683161066987703437586090405958587034219121530284900617426245157305757896412007650810706360866848464906618537480900395441188870601879355003954395600327290617281478732859433618919648113796996676106558873453000291110681422821927629705372038701631758024046424287225193350719341103245338877933365026571976142528952986813193288683409014258845377884590193029169186735413906249934580142277745390494850998926881047495749889137572027157071752102498267805129893845997788639222943213965407119462439401710950869615145200548966439183939382649219822005766813777732565016294860615757129012328006946019873035684771959241759443568097501182445461103469087493280472485526577477453119969136028382770874773261704224493724162731332683809131714645539663028180792259459447492398472256024368366307519817556544038729873979228874007994186634723753905133669577679118432227318982678014903190678324280188590021937017788229222332192682677457466742971704537095613789722789244428078563180272176465789035276925145701045727709994255282718033562145682842743285787465107238135082281863392617163765489706732567966423643603985213237761408121931377130317761160302106704663223285275218875092677201824711473502554672380517058043885117770359523955435225338514176047064503365638633601619348525166157640496800354456296347130548066731604018250703199592836260887953747250739631445424989165308390916999672817883262623769869540370529025308615067167536360178111482820697929233688972497225747849846079738641080568369090171883781897184309084561555175112969700132654353139163018549921947296315109693664052229679820780319147827746367361063999200387753510740930195066114995796319138226869103306460232392552855859065232806828439862829665980754032362327398607434627824655305054266827455000471289416157153403482568706104636617852953233035442401397338334573088464437211197710329741399792237924896327378192004934258930023461151774499010790371496909927251143784362850730335735567849792358681042096782378230828079715916074215749997827102688868166169400276400018000149253758239974162030820674356560336473059910577244232163996655752867808634578866367123590747914797729112883476969388303721424737713558204143108718275151724839879430904111414836313590296733427515255392064359853674973847564666051650352897630321622474520184871236117409768926025415764970414473014698850819665940127714624970971250052060400016318062647247465762941840532645518605558811153588598892762156241147789439455223321976462558884709909572714315123022050259492643014157384664586597604012178694007686131884867784409949269605064963172748086281465311584204145682347721260914185437305364301763227731590958069477959426475519923952414542949859054197401680697046940994959218748967914752412066583747285815081502459963774651121115005008056616499954054328790598875912578143157764543268418134375579304956902470688364984713962648737326677133139008536269681406408799412747068638138147249330294643362007166033023697290256702898901707260560932184033144987085605027711720542305647853607951939169937980645335680897811801826179492188828258843646879153237175288972183213943414147625899014449831774813317335657554490572146020614405536267014038726455673169987483821810084871817383598911106256583719960706484507113914960929622620156158604119017415404548665906566846977480566903968829862179589321717569601737418582064025745873955781966323435048574210184784697702466713108761381232600147628847437839070768934128442132217910450379769563672649192022253896079056317447883705811349696822464285747367681710953336672563100916715627655302171129812934894920301875968294172668800680753644360342660243583620086734682604758640781975556128700781872923951038896686733227513457579594873908831158637751460667763373802920033466899492899049985175936573468038057982496470604630217231312640027018217190718831684182383477381059526519138782455963185921930531029473891936934099321590757082646196082108587618578675659803765011579318033224134106338467030851755511266964753959768350703825580735626331885331679211151379146339593304567448977881057125414618387887059758662074754368104648445792106617836621819700851352994549153536266380924329443816564976878905294393095002302777742111646477187627144221435208184260271494548322448368020108331873318732304084531750678127194034274193957843099884481066377894246136043496021171919324076628612461296132719447637471275245261665713893788429679348942747086268600651583045668499628570487383420708948684639492253074851239901213104029034304531159778458733894343757072589330962854184355596241669741989534908038184689660481107347755422359449189048069518283805112306864575040912880426714394311282947801781723683956526206554379360914352277094435197362683418198853842500589604924760328330409967786274308360941568083565882446066242703105530068796372708307365720067978135398641306811369960700612387552487843304808553222744636435541809399116439976492191838696681843226109253387847422346271169976492588281003772995539133291548002338361480075280900550888898105478618959247335163210300685443192023392272158782197535698865295391835160596041158398612512057797032270378951193958054067817509977869529516470844294639285538802880835484702092926120497098143724195708155292526627393374305071216667190812180497570196272341388912617109570719430663656838665763599135252116596012336471678156594230774201321608086973956828945578455735713994254377437496731637650926226040056140296730889698717950350483855542632530041222687084258567329139255949718824553251214791907558957986237651270798202595294675582511696172727242307038698240029496888239065905790084619879188299621794362059680327966885838940610509156011722114949394845954407165836255942890406064742787248195097366341003219496480329463521930791979491330578963508923563614616641629727483716868393597287183122744091423029211358509108071295130097079020438561943232933379502989848270407899215890611545155787829901812331126634341353126254218377979021392706462827676622182515314266007584409038464014560926169163857879029400695139185543955778625448378954098098516480339775101928589002814983964647854594038243143346274457379179270845150140849847879822749443539279838039416228588351641397377941312160901080772538174262770829885448972719009951398123851123004394428878975929760914996734945113377404875246722967250728351825077355896955625939012420220686749472884783653085204241964286270731689553735270446244308986641573819188323270919944749934588134110287388567245932982355719395301167734750514172065135095147245261625536665704296077514189620843289740101023961546010993223970546709987100534900832995016974299972407746670813764966284560417053878116542283175962364918546103327428227563010530272467584432701425596141469186796520335999772254341890074509721695345251462199781593627961352480127767180648410458904567827052282373289085205357603974134442018568802247848117405683562213572563269709099397368514535395838765691016097536820425381432992707467385579781918908411233596068038723235861510609800423994262145814482013991620100183309871089560447920937925486409127409087327643015269253835157291411857987051965552056652463598603360595316473834064098788704120572561985874964723031009716035406525018400046187159744735494087951723241267719885174475559600415028100361040839732023073956180484183353657371996366288348759055271293124042098775425854800275269801748230413849817603384369538896862603778056297957435512396657558571538146523486391685739989362621397800373073189687446973468714711076658544763806987798145015208887992007299829395460559317812102787552244284609612283151191909343056032532506915844448190166506968021297640646498101293735486970854413175601551027412958492509166589356794752443998292205561967995388473885939789599968279337340947503982071492155339810397587952697183048382621586019040368856360613469083247361437255098329965188624312437106024727048358512494393352370770100782982844087235390281630528947711965016570278011696536471546465502357218700086276241087774009210336933486206016541163354884417717790166450851200306459945685299508261916137905499696999224658691628629427258574818399806980420654570564894343008560794354133892470847045169400125406773667160883880048765239631985093171706227775729019062854590108916700764104502936767972749377632528326733912519311858299991465183051967220853761497854058923698986807165438801598312570017136411811169507428483354634813720800521893550228865675776721662909384323899519306205846089816332483767858007902814440665933030425791001620316532947943005101817978627828024976834006136984070290894574707633618701635911102185520183837202501430707037651142300224978649129654797399942105866830924200404711217114550687292029077872612070312258755656949726913503194237866838489966636846049404493517255301535380703939405981403588276561139863951289047047680219502692832561131149542582009092514063840820258691536629394585123132099978520991398757016452689794929815612877059170687253962943209430610190449770991831598493234341484229791996548764798376028353463558306125189518642733755437369065035360504748667131522827621602645385524954751800079913106069972944855583892285431870368851461685805763701037933001698951342982882407938059954685428205564647199439469282903827911069841569129548573161220794597012009326137743118711755723976408981187868986124413108268202871374942048626692395288618531397142265792589618642332115605406378556426589782347485125951419899224749317871059600426830586525850300847021168418005734546692112391027917844532888254984918303426340563750985754206180375686245136810820133791456132373829146879575378785501954296061107439584785756379477970576099013499541297623566229157761881680734115500175183667203731125268187102316937312101414139590039228194385879333225909401835641903322375980137634649923516674692793585268661585053209088410902613524624169081387420419776267691923611359502919762304760797433788399973985286988942402190674879152316809280097877784724877037401905296881713517871207063285064830164659921216271683035021504991075349292527662745567979119344391411762141214593121815187018674292113883750377203112162489627712979671507996159233929270332181531241727654041333950029772668726652430921210951790775516701423782283909552197256092539232491295227258288560825412031694697430927174871808957261111824753632782864757109676074323225975016227559009273657231808717099363835953875943837567798453640343283122059940992338628929683628167377862698475559134229138253858654615771783402589428961868261064566627156966137177110156053446148684917985720941721541971150100033507687504148444438419835740441855176458574378242137136546307885605459614933608930318767915179300999933695451196715237532973658385859988774094245093226514498624655452056087477807792413531002364258455329148767705654208727879912925048786813760587244338933068499367092854083558433436096937313146340818940470382993293408219670713177718569315137062849656316420732526147133810494021221316759979591156761370080880746577249067354240101385372282552713113754272997068697711884882573579505392085910258425793043850346254223870227581151212817502587191578381677337279121355553132154254893895901420110868275602561927230472449434742648206899897272123347896817115235893347317488701799157108944007041273585965420812099057852785229564126114058929027379013812827907925137298233511959696088068923400698085286008303881821561532886952666748199289686999998859657556074986300782102389662512865843910308736330001197904770597694138967216064900006399656620134503948360496469371069905923766534881878529537517976020134357709658581619268368265710658553074193874128377354366867980245982860458130201681621394532534205476774335799897381341917702848030910751039934702861073126245364312399514123741855024224467684741723990673074168534308782780000896535643546407305729119336981868187849400915089902957795385530919206216675289902061937552181775196700249361202002733598054812743122962570511602636989107934662447314206661495295288485743642827402200573700263194636228215670113904735651822970593641346453177869709236797789618377451668132549713076275957908632862956106428193830511392879418549860929439793896851513716275771928541335184036284914218292909495160990298660854714348350893722084174856438998958831134175984419933779013906707394441318863292469599412621683361371097590395087899087246480445395013817472766146570079009657575059998083430627900020936123292034736984811920906740405069755970995535025264805329215781895735624534322596971598474695853520137774129154314757102309192786586477132829968892045643385473822717315191610657210600991001481164016923355966377082221831720458037657783307677936039298964196768927481840125855480848251364285976515009491309886701084659681218021653962489343708682722701202482287455005250637169116156019716544874690128802267729676139111038545075801092746742217898275060974970372352320771536772782868589753656437901128105351360536690094906052089640078535594599471047649540637479811753236132790589616268005523692688302214021648021121402498594751087192069668818187209725667807604976289998278342283055706613987662990165600883047870216477639495466995606890267410643695608412509181655969130012503642303286388163025081981556909074834957351626646611402569045063589196832349666542437607071572169234620122038955186831422579156230054834699221232054632414134240070729657531428024886480536494023784275343372744058266486317779974330651643848201940777223627828448280238786485026948965557060201910072754043895544970770918047992943336500822898598613117256522807250653044939507104126666441250044468876666967876230597867591398938935637043539401695489903358897257263592368406624547109313552781573441430752256239723743061037690252286736592791036155156678168151961309465938342083724275731677095281537170656468749881242948754165431628322917462536216669415208187539609792723321500053167693090853946258653438433572052644926197337631384907376734917799770678304797517709758913265343941408268334250546972866868234729902398269501408280390257845436042742910356549866826789960063659799321102096741519997984811739822435080311546835162502921026805430661139358316221699223864160473261046888002207840946891273859706591669341591595496885168390407693743893496625398189779536467661261578284802541300902455383105984818085549623986395547610877473258788201037998857157425477024073663951455790767279884960297091427813535418468587991666219374006626918203213481911294932376445702906004051134926068130045264109748096990657038748343636864393119894497233497835849854313123242049990625812929846950244907920117059215168649110798181916270659735505843617276829902010810825086264646124235507894767577807770337466420408251602739126577128250737681767397325085729318014402223158770133694194560322939721042309438454673474836817046298552228783731060852361593085301122184794062035133854787228567686131333742712307991103403926864276176960879250908849647241456559522429531044048289942719994510265358197217199071143016369804426845834961324422991693340790598515103388837187188105076897676328110904872828836024199085846281099863614918571283348059152753908599972769510285237657129107072445411769444902062911375432805761128649561672785723352737757701832264507199802434627026783158616999080338497071839836009064429511258561429458081736169401233777005726584145461277605215929957447522615932650796466856514406763802651749566846814754871558506873515508223955413079653016530206576293589999406195514977972622946739221135565698849203915587991825598739712527579149157150214147936698650710681381567249602652448112262447459632573579065749502196730252501320374630345254126599811860337233105191805543300108615120356146542217657719206090629414462075136914485362981389168601188577790915152242638036883993256793945344807070686510226695418777270694319758713419158861047287376825185748390114712003605005499403961782809467586897148334625610094007434578957615573275303937466540595902139469661272607989385527425945497163089554082870120585227394382305556751214048061156470030132927935053900194983510071967097802813082421444674128375656485225590454042342793600962357044034413649615249387233303363807480858868082109716784982426338992786195092806066102481933667546088845241676133299803339967012417128376695297879375948249618623789559058074807465653587842035519245523119816695507445379693404901090149738549069038819412242326347714310001283751130097028338803909015171441310449948610464504055967529800431508165792791413582962046924630893851186937630354578203636010918272011914653777921352798265312900208841377575858443354488330370843113318650825164680925939841844408361448200337571944185238282200198279642698180744887507919198605684435709370312390979498131998499136885430026542405235132176449070589054144082760593553868921820188068277066941843542724671562641061052888128740897239257084022078736804503078673351395994721579469583690517385728081772118188767111334401270958840452317044965725748113045953980753882973786720062434347473395190677568971043424152119090629173341895535707444126832822974025177655748254911242024130716775299125113730739710679139455856584886147613423262769253048655331476802007586812996388517199335368719489216222326850688960823317104611547875678084397488118847071525984030763107205909772856416306304040945214488879131270668758070209665475904989572462547081124987684915885243465682352631963518140757354945225776478985110849690070512000520398835920307454262029950399820187810769651920594377234104713920894241934516101102797967064041585293856190937548544475463462641370369537587484055960034542025994603042350363905804751656613353575701584258491155570901171596050490508566309560863181350735993966928614998582277544062037479960381354269563642019948733834103690651482019469433121928166202257518169306474416530476289608600090672434419849986905186316670400310019915288998004261655656231254993796232432278290786068542675195160228860064260283796251004290056132893870524341601983028566691648769829391396015203898924637502211668951029138970631349302450893078598786059978704012884767165259535484660605096181734582872558560706572749611725031679770828558928195379262512932248098668914834288563344426682354061743389830398492220684307562079462044193424959767016442920887867891799127353187172663730137364558891887372239788202802686733355750768285752658121956288376062450185242572963338511255847903463478064789728008836230496125300941893258120259773007542831287832357141189646720278639801444370558422541002560070482584106800866669259375793274032293040662104702728509244111412933039567688954568420439528389788830676463012009549329998548852452914922677398688533320553847863265780781210263593997122424725714090893369415962073400491941465822749419738090024533037923644705855073394708572231907504873759042598536817411737712859358323709756439949523742828746433045893773659558342698290714700975907626343619708412941528964871604329914962228951437607171896084188092667961802028150043183910911091727613968337439836170574884729863303827875990035170385639451438858504104734883241291984312397276884396687932845233373861938459028871562400572584351298012715392384786191357538668185469387208625738938221475880988305704424303675651135461211634911483513815384176289111316802736528076648490829300793849172850695589032210830633225153026593485663281020585751970885171137460621400220973802121249399314225340676768999601001609963326599334290371349822756255036008446412229764774666338477092780860449577772178923532402356712334124113128476395542490616703500558154484231693756522031066682620853512827081457935216742111276040940439858608600218174251211859538262354872619252327428477823553872076088602940487460254654487757587859436693422055773722615114079849742607539887617810301789031491554218233776341958350988508990894176714242007342820515426271921196631485287377963526628253445655654811864372727042980071714653577280097757587301637749150589005042929205856772796477361770589941603907655319192948725236374977385692605903013326468196621594675398545089764240889265341277200077315818402573928335663489101760172364073573633038725332025772329468102680786303097733436456493980293713287714702098936174367760592759278041469186080184558957646259596738896595946319246577071527543439274531636039816423310039253928318420090041248892098079048022513834136572286420269022758106952210898410326076909204487220633798686284805267688108435953973625824333164198398832784299144197180016920071294177956823222526660427908576285881670655714000472398267857782364113953424252013019613855772880504136395605856668173397144123064257458305460371634408226951439200382743911480096313408664609302271513492577954714671094567066493408674035706318185687677878423190468627109512334595843790129083181061586804583014555440144180719801340380782814970023259629807268447063448936043866515694794421462054218722624396298541885042087445328256802729298130410575409739851479795437937842994836985282834230382933236312912311531723095379941001544400895345933049182872592893929761531802011665460997139919514616120821665153294169632357993733008357093431214018636085160472680896939965196473158850437409354694705481782099922731007294913582044820782109867335267057407527182918919209500683461195559658684760148499739401594262273923142853382116395855470337402640797428320875533187624646885159586344261402555055004710948413135169056792100735650968943060615302296149382526064474642361230677736257981667016772681609306922613696015967347605198612722117125189399769429842801355162305191887269063396330822948871610114789260173690363866637885182016895160916816938032150375040385894394364595084583330001538447894363674330627931329068815371556318754440165430280983720859317035121764265594070173735333573265503275240463535924681903742191652047124411613946929309509420948373850389188099515677219686583336558289188807609485858980073353088045242058475100147494189982677897269669808261265336839498388961980469736354978300702692928345312401119300204252257519430063906571044318874754167819368090342887609085500186760962433479560403622789498329695270538479352395155100864049757736156177058682525984433005598022552216861891583918414478219609737151929301842186161798637923376372571116505702757675380280857876191056967920515109378519303277529636727538997397410522399660135427271313905580255598204326266468555917909762304181026400546657475349726238883750500566281393089980101988931530961605361585418633305243420436699993904970020535919579072567764550121432891039810460694425137541082861903967048508040412279345689794353145316477970424805473334035785499068227735707755610356049657025503951804054098300409881592577966802386658805116591706616835718617807665464975907965904076566810183128186593797091979081065020965584930898646980017111428148504753792504915611753227405605086733040393778945444243811227258533694739325855532585432642136795364847483391636447232934117961401390423949105551321452962835145101098424502210620360470759369492686358421124991077699916934248390468991250118238945407116161019265386166331251374454142161609448764799997973018942274301552693538952280118599061180246245149542152042523651448687379795039439890916483847956964777069894888075241412211902086966184704881750005397833831340373515681338480862587314393081808913140910498151105005573946718188287342475430013440636589083917221479820561939463383778982023322187464536696024872926738379614801959909772437891710132004567609655188462230548331235738634342741341728228188520552282173173743039821179237363163048322409242994578234750864571194248714436673426183087505129088292089905282382688109659579778735532882936360227997245181250110412357733399338120065415175536234268335061746303478312024297735532084551840893111645550584458587422783352266799948861233048387863910923883250652440053824812855246365604810866589408805161176639741352722174074296521757173008987791328028086369180261808477953207521992458883675217443698941817349395895882759021531062445006073736813060816933136963449162474768991148921781045099773262672100100472277360616918424301479752257801279960509968497490024898825803215465697569775902328420104248355828980342560451510789704630676529048526398416414596261007354744883002481817387956361989042901788034296466419537933197179518750938608070790070261947082349108531126685937053889898179326060846295013701525806553193304953422105477247765621522371203008201817959574255805163193130651147509920845604552822070655982318064651563605332220278592775389978297861019478442022086044049304967494406634442605458220886998676502085475406593391381922740823051012062931113315633219486849393247922964084063327000076130869124812763166873605859138910870385993425568116812655805348101337859632045210242992749906674751762799571556854618650169355858758309976519293809254771357210303982195616265524476847203814071671843561725479220246965481830112419707417086403048305260676254738087163528774851844077654631546820162413590497084027713408863559270762770551551343021135508191373796538089834740677562420005854882551871661358849612097757931532504036321760782203629245589688635517500085301540964119819176963173890478510523331052819786366433334890590705260503024198902275369257381137068985750100465509605273463240664510998100010243264443091160999408963685433700098709940797375553513924510050976717771937513328586843565055503304001967689495997380704983812605118239615507435234525660847056148921522941854456331234579486324331242309479996777588267891827106979776240016294250309349094401264109490627394343250637169307757471968337001493718827477536654803154834066956341730343881557628099082712875789141349700892146698081214712076402904375301952908576523544241666648801278892002232392327919516246338223256789953526744827323450950825838918239504006663700222243212532325616756931411177768797119784956705148903975400725879325688614515677572819990150857577801593419961359837428123091413533654683676668137111609402700467963616822768215870570233861894291632617487464578912096597629357327572753090424808763599510505378227720291434624299230266734230201186365027392131129305146989133033959988487946224900390965767464547397312167244022707461784579943261821764638487489540080837906834821805168968048649389765556328772302293233170914372275478371294387211159222087246264133520290437963882717135505850043839727590452743254564052288368914845110523039558834311182100263030832371528646127837663601258250028340847781623069883301569768307683884652964431894064275718487344562529170931817521440730916626373252340976557854106364686206245778427885372760033572084716751391793251185949206499246103256707287769059854326188583509188317954318751655434840318154413088162660330464102024538636559936488498535928928568108929531649239001257187501519345200736348493749143812495148387205677066628633642847150605768167163626629453791854848403407531081103751751895605514015734247469835222811752782935661011105184932054621869776870779524835021076128920852819277177560506034471179003761429642147536635169917474581769837972062429868580665345946678262445319867957990515146204314211806538144360595381887470452451497796700022945061761429319971763591533479098108426057561903545192667661920016578933036662779861764697903452459604526204957312641301686389480087675128540060434624818590973039205570779213475329309319610520246444761884624815906492741714254371616581493450265739092090835924623987172208437250528568476325663836919030146203766145333745272096409891161275329105123887610344964543243305779423957003557857819112580194299332179184849343057015022454210309761786256772928286487852905387826977377728699542649255907499882922080346266793146694691502459195362529123852554130032905569333332483279876752476208286694105542885546762812721214355288616299461764122868771558139301300088457022906361317719015011924192758412678838617703183650957208975215751547886551197909277827929271203935662620220516815980689788753036332102576277902836981464940184915001764087709090062965626973682027610748566437272188646645588499613840222190045619259603859925661454683962756850301899473204521887720227956445484017348932595676709675929993815549012813756167261942497900319977792700918888597078126100669407478698177501059846516026403129254458276385301637838458692718287510097525314854532528825639323199678169197608326525033389894499792508295302136807976655786220440806663058465109142156624401175114966990810463803230256649271588748303871272186787084740713804964467779567534402556004602373851617479145846314208226014405738155789116945462850098368708265842487351225710419286339493591379798543631581100770635561680690855744295023224113099657215556853490632000023652842675031110038217460021031318456419478833335291478498100931768068737012634592263856193525845862172741661020201612587814226785025149613283879763742325614897454382742453908858922873382449147218482012617132828530823199758559091021814948475246392560978027643247863840650906558357221311270495338676067033421681193137988056119639004572327453367466731324522699755434354573197736339913448568555824778795722782394821462784688690630555036811747616659630956221070415077402142130484985491218269514991081194864868437259728715337078406218839098455631205882457799721630014183181080904644779929497756456335556857744571948600901772002163182066071300777650483629534417966051703924491539781850790963760556708555668160616324716700073373759159366907217869214779069923249115606573894891538921705005023991228353316681076430328497035641613490941166072908212443998221523803533047449320282949273648241577657432341021794223153690405594639963172400496760137277812411720098706741113608399444640442200839605943936484412792543123316314149408368483549160374815461245095352340043207578215119749212996753698020556461875742562070937040968578918500826698425473086554637806879380593418492069036161249776937229076383469883928361862000983648119341125196301379909805245969132882728312578521809438581731935814107272178590231329130864671032264358091372214224061387903033856170044139396071665115554421577852260293338525358734405996226547197823817075140005366750137773408223003661502327093870182555332891005323420230645142481473878148339845287383953333687691303020216944467883997134796652945344737472693186864936082629704740829712586477158988491472408116200683637456732833398884705204551759821663277633562051294652888675676167413013877833835604069277805596335560908900779013778055244918937756856224813702458223085449339532354028917753171380656280952522030907084333217342013030512181750544621680000807986040459055961990535013721676305828999607000614785759958119632508141809801394708613035058679466799050828769134203102179634556372260374836322872196731096437221656587998779284587008320995264479419921241909951142178611923001894294746927950905039722510509646503084753467747680186924569134011575922114715575488521415971972632536474707168370584183011703444371934051800789471023458322203304149274044713307219702991429934141212430238643463359426724749521782096354004694977988440156541396558223211347885096924326101492134861687987731012113251640654196897810982991383199119689560806644364327963183180122666763991872911324201969557546079366382295452103509817414445431251530257569583640809138931550318900008897977987962093431526660863710046125410145866963740633143563366160617544005371060079795344046148499743291867817933973933438448399980933795274828623868420380748131209807625310314401309654421664544934792026201109805838211334238274416923380111941916556279296926524020565587430608659338723479432513917040743968845667529013590506733987577621651271205099929515855914514356697882236708471489926352252332848868138933354954013540014777129376541872084127955085873395536041890140034029467736009136342957473845604644764457476906156650253116629051861948216080221300474887075983150092726069232920948755234800461460724778839856127038649088142655491465746097493549356129924590450018402421609290406299134270458247330200167361507871952595997328753041185119174778930883519304640339994553340709479025562820189258585272007062543678090109516907426477245632910111448608964691850038525484706312986882275161284333011313437662661922536247879542971436494574647933953358816518700952476582599175585616900495103273085435804790380204202025525912108124993017238858911725083419589236658576695380523256636111518562987381212510530816663083419579489089358312146799223452972438210704382891495917166883145679873566848980534727433682655048301132631185053394998999239745257100434932518102722880206833954539090092349032422525319982013802267160142010411618446226793236785412712090707141329243126684222848261415496266187943882285522180149237427780805431041137956659877752681615344404660239122377832115694419649558200781290439959528185146478048304088474712493172284474872186033317584880329374389296497782682559509532914071886356534132381004098853728479981698797109081800265134652201539471941774870065110156458790282867678372083815471459010771626289459346579650476918506065124290528757118739092163799869501690463419267432810910252434531195028319700752205560624321611354579972913135721142388473735995899193030762229231773352595876318587342363267784050595741681210440215657621432589635777402575009511670170584444307146563869586329803361074757513674751252378428455180193348881535341789055134966692433468684061726421208321783385464484204563761904122072786958064973594282145431230435541442269050493529080519721805522749482932315003860676776060221004165511258589702499133960067443246211624690322558046393909063470956645690414615945535778899424870145298244897421697408126946661523544223561499262199625580460044003358065207024751366108135823311329409525678083997642086504173329940830654852388181307362219772872301206109633099949585507119818898946288794602200955150641242632734927294612191685097334709198796644148066072310889108976470001882421495862865948924004940579891265106534272624082925848755621580103180800017041979657658810765574798560542222907867794011784731205445515466928085832689490494267590246353451851638881586429868211136969256667938698938274743207249179958343451099499133802787849231950557285198337204646671034074162636809044586143211418181392084882307585214182358744554007664823491264692584571677579546066895843919218390980000191659239468385603715458723347501494354544313948658040083028984252662947737731142199152066968209942544767704683069139972417916053090257112382116449474045720164911282298601022306853333682951518307608574106238067196702854266860618003667559785405076661516383872543302785592091235106747421580697193369671451407749843824559713376901169502742671099223761320782276153371068041563308416001076741419284967861115590896102904481226950875134351686485632349491349354505117295992084739446738877572857634078229760610565469346348158985678903068372388449966576883825115159801636630193729205157816645702049114556882918226454775451102380306635458732301666160262223465578962049100805062174800240220382900824674554057115886740447348252782101457493376402536334728197263023404776957707060000556940192329090450209226929377366319447767418213283080728367352893913127771173081404958641225457567642645411076938461764750295598202326740427952919237242504707336619547041448474592971756321789328751461308868327054641525107643040368240450201284504331785870340064781432728246956516909585103626868772042897804136691263734739281251326962741668086563693510414571012270401509368941929712535396886569353397883244226776001525282757706458572481051321463531206700718427602885946691330061241569032813370453766572962998795358017622476247423161022980871757316647566164288457573423758619992999663767883638405969886319238432237792627240719344428272738121808399335247523200457168801829027458036048198667306923350469925000051023433165973725140715990980498000520437389509451428983742477632533595172517440531878526695755300415223849335196278322148988981887221245956928580026764332802213341273935144450082120457848082008494328722231571072942883111341274935887299180165526487215254545214548219145575584058682427972959349453441832265968780274095397770841739920525629002572770420853077764033492557377025062345187422654513528210360853008003481613094815647501804943933013969466220143639372021852157701439255703339511930893027112143016686346362823365892199505508599218069850979592042316473746179572628602800594912179976046190734093593824945577763441391729247543795936589657279289547683728763911307514782787630754206804285936166199784493588443613439306525277644078916066830068650151266325333031817825338301125068717014884226719896687054997534544865972883033035927581397606058584150836044628811167166955531628245871224633914363910921186490875825511189563037564904966335486516796204994129601417592392973915688252395086977746795817093864236003826627280492460557569726958785926700834494714087662700774418236899072660767038624671621381017023816318775895070557488576197736978771548689823950239396446119221075470393149626233019759866415355712923546910118013110907627806979951244295982005341579682445893805465149100561346176865260417800822845465039025524827045984172909245188382227420938555021313195345984009203094642645241300063313924614492401866217823122767502564709299463579974901699897284521938283083760310347066655161668647650637908708730110295278008794883704436677055050103075154443638846010031226992114926988681253562122424239824611911733971305263083327804180336244620826815437382795942847764437878112833714651250600770675521955875590751322996248942297101356928546628785163215535136383308764808642086116932645542716897432987385336968367431924766899374298155446447382755128824216591566206483257609421848182174114787515388955306427690496514253508549832357284532914243159291724741753741162033367194513484110301089097059644235380654313095069779375509870060121943681488997202366830736975272515148773996439613293412213840183422663126005785471286027114855767958577895382041469762185818174748593342854470669945860694475651473243969901772467721454524335917065057615728868824240662819777429184950081448182912844629183838186223029401428776352484346685673325687251870474588206785161156716280010776895287095916551098855258287132074866239439053873226045829656649054085624581196884494587133110247645714873077466867408348916235871431156463923444793786777429651959286179863352173034087786925040304473118948217072094568924050665627713553591078567369190540705628139038914507032542337205753803032352061522378548331054466596280897981921254506457863678540398506684881511734299794578045898112679919936657734120497015208224617693266857550124052604821573913731080217982611301532286837546966712104990297487353316688447707000727344175133864118330903931804626117291020299340518618987685432278365150961427064663155270281473188510145104954110798058589235032513595024024874746432110990256820476986593995851436092571581179248225646874247864619740398194747348851847518877825974672447040979834090702210545585672833548005691460208394299408886600697548153187541646768717877015612632209838364057339340648990986925445544974519694228330797521897692009624181206472407698258113957046046397993825895804216728517027086165593582445093075717379104191341091395057117913098007893429106091854418684244405987189043441444755917358308017687434956418339443532003504309734567102147417538418485687235304629924145504713507556238930279190948732252480169312299746112231933137279969844892783617421739827250312352618105144699356244155538074712605785511201343928819812512761348834615249680066810300476440966944350264812763173941524132569542604415346859855988462037714461547886902367478124908153301127763466865267110882198384935266440747299858253110557862664506491086897336247669625324545674372490624850178759863510669643118299215223456954991530438270197627582418795434003429705100329454559560779687961370337501380561913684305294083805993620456767916542457096214545613046507485072124861712830271679312230482278205837986883897276226534986686234591029024526248688449686381523107454772031004575604205469869378784160040882992541809329835716955366012043794929649089897730985514584664004494200278920732867900060287582139264906251041098663251545447787734463130104354311435629592669879451582450611541971026277234929110407857189071904843577808785654880785765188778911917361688916631011317240545908543600351058713327107312000468842437537997516481209043358543116327613183346119414768925244358111979372792604081634366203226116793946513532429573898256161174560894856899111427711614517432885164867779756104890876885671758606631265719795092481764103873108399454403844974143435274033153018116810784359434331113857386575803713464308139390130461815572525741228762749766215975933046237422527928341253324511176064301221521746991476845648319715811488088577715878950238643002006640009441480529047253298204096069266521503436286947849946392449778534037129776558132767307423117741296559222705870235778700986288059128018689153446962899908017045967534298908723610579287009075936688516581699490341641091857921430841115597208560046759457925920664826024811217802466304728375670421988924511504519058869057497618089461618198791074809384422735534754597172579709800890817061382644797907924251944865590476891722874436350178846325193624290704345526895846056825022004403169581191374589508826505869255404808514882086837240470656119237095634890127684366494566692791276681727532827582085645403608455636836473667464725640225748836997613229404246994963857658004198202558342784703636484165825063408925196092072573158484757903952625460688560168073458842706721872247271700992191754769672100425289451647910947833313828853702243364793532388641438829306551595976124565971891769317835732161548855312598710565062828119657440441766303723968102187122462440015195267189203266048932677466785675661551115084745511074992610494636082310387269076875563165483178020813062457630060920868033841226546221166957652550399146731205482667796388097843138925238224108465566092117168692522278440970113447973441276635815511891524655394319299506462312192922949200159238757108904081649437253401735622688553841237485698807147254590414738681672376564046303985696620966714951557211620371010004284972970414636290956702434377783311030692744224512066921949396264334956919563703375875489008801989658568048545778420420093128681189876795234706135280790185436587391293089501032668216793780894268687697375703092038700604998920427319311738071686376910974264716694340980261704039615061536718798241129205754902263273942133204778465731899878858307997562807110225487383669255502032965919406413779463088467839803390000945723955980752275660303584756302744890709442277833146846003233078449417825240747497070712756089459060968361121687229892725230770417263570852783030402162727241558516127579624499380686779777835998806276480609113862514525486521960636861771518318189927310549761028701941708207095288859572793220588313259980999611179282782271215165560538716067069057468521290670106212567571838132403370787997941225574702860516982265540929442447083204993816258725433082530596578182325607518797411440651682030604050110774235508937820829697147960129632008835959449838378645416829942434312424354397591696413988275677623443252859026821242613465190871832544092969580842622929297874825956203519500130531757598545207849825107767196420035413586018918583691061786243956356260762446605421319826243104625543194901062115046675131995248002620380513928552694093403763224138138123554217802549634050176540557539548114379963025647826077291044169785680766250942959919140412707729928212879386232682680643563555612921821815440732085883831029181645481693638731583359510489293723401107565866389768409065357282398906349467637170905405630231823694196876399341760812305457311947193664557802904100932990533695149083668966555611059351884581820664341462679170165692247390144006914770116780153770635845428794935301092933329889418807967753407732876425202784107371512409485678863037175147973975808949331291327782981884811695822301534483812267359560864803349483704745475536205152843459186953189773377594294795677639547899328988885861573512160998129257424874255165511999766464128854235484281349482974510857002806708481178671765156458493230970390595370356448503534168248417847382934701624494159111876904862441706640855868575392462688470480839296128615362821242356155953150567219080668653025970611161780184924354594112774651824489344211359227948913535307352376683037999270790632299497576644232328289840827639091059156770488535636123724110230581758768282223271780931831650574503495571835555504049314981795381141327110618665920021961497412412464174051984613120572354127998364943953601034677542778408637961189281073944465303728897714096689131704563476188797853170058453986066975535379334146483276980497643104723824076678969838690135902278404691212664831657633672503331236650426091070732993057599186364305344231233634803398151266297814598364649245425453447365489997090634528795281279023889139662526843654061461855791823411590347698488224704773627187264262398814346452437111107588668149935166370739409833202927085748365555399331393212760483261328247356168046887959210927502119831135380745983574764515799551471916859061450114455410628192632177052213723476813452968420333191569846016614982719692129838514923939025723788828538061364057484048043205048644068602193575070737139603928108722237602106391845416342375488183899868055395848289849902273801775235069777128966960762503129270633367685380079744885642953880075105137327567824034531823325330060967911809091424234240771112742586815088648917295507946135742509838449875807048162138216021944853467971022779674210609997170677489537834681008594300264813365472315615814993135565849395838284132365515897000942411101253745058649591918319671759128139292622838033309885823240696351919144965970348566903519131991121866838919724168653393753473223425553242886222705968223866028310122778701358502859170731682486069203806028391937305111509859414756396031318604805547290970647143306685400893095213926025233985458841873868242298358503308544154833292949335520087239680963377193213419046408407449342144021254856588258970945007736236092792395154353366316459159761098557318333507232874829519972211780426042346821082550891616567427555036733985539898744485597285748855135029893141741651276583538184125408366429101292242763654476072321324998063980387698737986568621734203296217946325785542950143940184113316825615763642322627364882883067727687270035323345892821872666913351434487148456366036191141490006744886755828525407236015492791276748903504829382207688833129773542225527036832663329871788999863107737503748840652818541230009404799692969471161134377452831310880856417564226217159177706424986138675350524594069512261413128643948532179034048436979546900010219333746101517593139588395352324015443486114938597435447666442005599248372266497694210002913650367118434213263649727707133739778704018863008923780469276462031711945175014160470979201117974688534292365294590955442236165632374888949851774771879593687077289163117541363691526204535165302070250468101090321650359658673765388639330666403070516202383434427038207911441182071534324062669807472920077640543371479658793042500832616832036126720577323143834058733441796275428333061738482026103110156145793746344152878253796750500339073455921940124803669603638542484642347943772943116382715145293078430097599900003446314592675719099882476023655180706703067434636960607193132296606038811611191870874031222717643446607814802878594709115869208665397376841038197687466702346331076128077041371125630436848075024109785904852480630502013497899193931738121032775068767003066978119955500577005243519010671067239438591139309501360682052261773408359744180817013436605867987817862670709834152332506780253725101663308257803741667778967044650927341401215395482281152002050969679552531105064734885951660233292432011727681917054020572665008451509141324547588918662368663869653003580010656760922258320113485925261865250949898594109987860266064954064123681332180489512382924278875387827373567517761174289899074839083988750489564132158801862870666586378023605936645109561938487427588989874991748601019579228202634733951830778676069757657063452784210739450638964290522195121610120824978099947873952327567843578987022823242874377835354236003412869059652762733954773581246314392520846542114632552616795394676794646804079550538020821428171196383032692157185070585290841481442143317627118415985543023957438837204195157416497123589968134057938099245662957859251304775686368847711842801579927177589369407158424011677722462323554572525826318125918687560942525557812526939123234481375124459710609080392206621785542972477889485382402415377949937479071959936399285589542560404805136507470904285547456149266958753894609843288549353402640214274174220843206750087640479157119132111666464577969835625443747675257139906611462385171084548931366384755058510134871972278292253372651467708366307596733253047293687455934108383042739998471860944046369980951499961961700178711984750615885028960233484588198242303230486243899864668617127783089016429082900005650949861286928407994556524887455725062059781885479513207912316819352345265709320499571028090951515214187521866456759206530649812740423064771302713313008864891752494801239023477271339193072945520749979641992333151585417798826971791725360253668672070572433355440624739015552601727570258942209065587616600040742839585298170355532600743127620878494648473279567366917880120918880273199137187798288391411374922262065723547584285542116817996058429919424421023569292502794544869953564955930079998542773114819155675689914444559602875893608295672625995637405483843983808505552763574797989405298574628628617308447018274366931581029776967429893401149569055458762563020296848528735892832701580000883995975907770900052598867652888709018407716890975834244255246597855525006362349930808279345903566721169293084070154518840286056414588754779960041850461209929209814021397288098289759903291759582529753784944010796518896893149187835883089832478061471697832355192135127466442013285750223696577131130958710679715883040908952164924269819398901602790656436117703641464892680380160759043059173307094841926379242443602571838576929417226091272451917717295394036873910668256895357057917969248851630936328582202384153626744254057861498030208790925149642987354634120258492540731575482142064637683988488931309330938071537035245961294032649042508119421049633130655401204418061192779670393906334227901130726413505238008922582846397925952505535715192736786796139746589740197811218884324278457599026593318696228120624285809511151325664835612670206249417750261234387486605112345119096975838578227329463178993771059068415094146518978974070474985234559915075188658169407807531276785807482123594543250849397046812044639980505653462021692418759599049541965404869426367663644111976853141590717106056922277634885678702916391675113563669385718356698243108133672444471634505553614168991831452525305288009956850414619133241100134617172681902918870269665852855584331283087846971470752196668655204274268195598011952026002531801914003672088329503749248781218858771807122925436702712248371265308509688543174640209556493899671486255267787626930256250418999518423220006356434012407073146761462128808246293586415986793926128951918855009825313707345431854237639750806278244006051446769315820546011358665692240818494236891541391978906599545076929173959208023060537041134523499989792793711371601208989400140142818297199810770223057807551400370172255703911632107402369035606829638600806590528737093008380627899499905218562426809939208376391580316840032789625344970393179979832631001378309835079470769121365854820454240887278564655345526255650710338412471113161513408120619334877760057635709949298896596962215599727761303718765461857474075711384355217468718721250757049299697293380482672035554683265426101814391521834177744219589662162684873892105973640180500505971544213578202724563976200171114258527115555629288292277886073228830357749945741313782068664096363066888573828682675515463616611815402400123235784844023964335107617745407064571745002847456636219813608335324951275793452095653872861195799383901867336976700641850554684002543315051577333549434679017986575324915689182191489050652091041559851435647515208539064312660515918363704315959670689806757651701434208264609013379153271562829214152043240111210297991090116638513821673440084583451759562053259246715486563051797234906377268342370598617794250339210063865988861543418678102365728657534500093995561723807284919606950066189435534847769334331302773037285029058539660634549812233074680903782388036200937227476080161823671003001629486965716088719079630201391449014334405538963459542037056259719752351681476595636887856448823052688734416337708572299210356593434108319180523501767482325913825956098589518443768849825073056567603177893188097782020952460209105635599383411345477926036209747953642664700854936522475973990963642488790010011886569459007651616079267687429632145093526267179771031378978886347719052896565885070777957931919999060650708879655519925216995442575070310238686636476038128119046257851042102538531961046936674063892636157067702084560945687566464322528252949491980953185407997539288285722704182917937731351067749642664703289207509819348826952140695202905142397357525665055037182245513429596086237524223257675515107978020403809250259310712663382866398186415535929783928081983790937351671773233703108361676265372112019428182378651721363359937951321940609182863500984647899719817864282730591512872289294742943280160808535096596282695875884651271701331321881592065235076473562583392274043601373029653233989011721602654958440452598186332230215814226252964895037833478152447312950816405544779655243856126124740174980605898950794502127494722609836025179482186983569707608905977121213699485759410685638271232357189271998331235535242160749633241472654109186692582207288822847599630307457571266130400166416486779351075915677567670740685895794007668245303340222969661837188243746429728289593319664942674342268335236130598794087242466424130482754397841457780484039250927115980721438592887414393818249657986355986751151271850744263584294111608586601621839791661584173119448045459565968761331071030280708531629596501809310379246848337778864017150646536538191880124178808747073933579954452841560473860505764240144215432982579768454973517178091813287882157118365656134941493809605684172949999572115073880450354554040038893955238848480277552997792806752260632060040658470439111434583486252539477970624280938611661922086290992372271977325176561831525126156260741567067664350269956555658067346996548697297819605740607647804401282951151432804540874404982402662716040403144870485555146718811611935007227201694593818815138546079546315601537510013280770788630820576633049212210978983895714744177336906411482708329169754480802199840567438920279553916605979885866616925111949980301978963185813560992407608888458515171983798469233977446666347012862803489124271524792715909150465140399121253586799804721740268583177563910094087426351359899782892306233694082590290763622513338404775347405746982941005045780040286349335938456169790405279574757818614096901776824514844649656607200332947428494503939435860119337847119561716187716602692815587835568727456215115472559861183399672461700391002587940931292499793760562354083941160206617220418747034399171990768621934809219616896218506475161326876586696738137037242964614531525277530424500847769432235057801546239129451580261747767412361536071450613593015595704300615149415712323642971347391825064360807413664959693702348049045664974570796382012704372900486005671819698613349278945519720883908882174472460253317316151654786499896314337657171803915593797808981247421447188687797040178793270381565658917919127380370028133350695308117942287744078100079796485546193568672515373420794854501151941770296023251515156126108112128476446875624259620133222621614256581092277828068648762631279016055776815401448514146979650033688319980789375617485533689429329741091326478787059900810116460751061052739843963727866454476491237671362384308583717406056635148552179822815514440457235207849263490094103787721788165710804277399252557952048745299470192485268715344250918314308510351101832792605986624810578251135673424902337209673459590019651376581107080671171702058577705394582662952170940882442647075466432737392786708309346837101966001207860858293819534641334524264623828781416062153863692773310468419650078408400770077897076015030774551057163186444598164737487584000001712266864841454254762587556610991037552034379848415444012449820167859329353116816032600453560664654580425024572266758212327057553211489164784941572323845220029710052977377317542038967298179396779711210430456220964856466135705141513077016622519732694622965297225113301311861014493599574492566248029370336447741697695453565652678263349187490307180997579393406928203821051017944303293908666316592797971267159064608495802282421448400114234015976236630461167163165915490795814707170610426783578621753606683552355752742936662653954520655600170148671037063419429936687820629560289758224827457193844730205169445852917998210600947408458968198364084668122040646756999206993405118897101240537284738898168538724347779854865368912240162496010897265455466872419648866798650105888533060811856512474242644123366284537449655331991655502220320405209967743278268477549839678027972318573426773362865851204939922853265018980439386368815112588672571754918009622349525399258342749673072041376912764087309677507104971489420828180894402126689756382765433319053865602585453572019287369442098820225425501525827928021966952756443700919587989621770282252907936627699221800937756444767640795277829491509620264736460681434819797919776454257485809560137471813402260910997432628393005727202577822359885062333896378962513305547444052921860842906254245227702726253472130480372972114749886636283829714700588420260755738161251816149215879354420435738963922707902763707426465401432382487393315755791991552475673028872831640726758252410078181716583412745532147698435167424106977649602743316940477522159391876941512195401084489706406852152128746116830728874780168877916190141529411713914400049733254950090966462831487867826515226935785984072787006209844380782874141626738447253565555150022762397361190122292041151323216286147519477932089145322520763711109568316760783398209573298629066531161109871454311618686973340732996645173853077894986046822966979300823059347574624266639857631720586919040599170409060212052424219726142690468167332348925362332219202604725574143258142258020188389196454371026406534286126748646384733803002712445538480391453859219667899158835032614391675991411014620155510178788998888372426504598402624180427708412854681195407585172924101848109435739579147099123611213198207610436027234467737835670327658713919417386515556743246010375301155079047734251664974969661347311980516601164005568902020855077332880234770258983626973275578556815503834225299751349081526626332909765939401310958391236923653491775371812026985267796704193226709554223643213691728195589405674006205427842775860903587733980723898523106373705345867928125681274614454389758078512886919422037616268965812483577626874219646660772972858942013641726283220746571938417978761051204159136093714542538904473758063869200940578324204674662115345496788041747527715133760286705329063839663711126261707487529395118478243972226160728829377262821383996817527811269863950981401985156817243854104274830135161601745429596777381584153782454595958414986463543254768362627390658161913671981881654143055852597454617748179775385695651100821429048941791255215891683819035070006451639182107300724442164918883179602195637821900449071956113447377747546291766960339957193073280990329088059327939962586256628558605731380310127883125396676748568652677384961205046556815410889623117883386500503669630937041884794253384392866636652337451398458402133279238190161317295027699779164622122387778706021192235297347185591658580667782374000273028829400567625560341320711997745231965939094514626087205156094165478943783051998707376965826739413594128612802171390571986652975601896884782880662998601214188394538004636536355676476544413754030880518806478966740086028437772562708480385409870362385988304589705522825379923279922792223328380495696838905807977967944052004922479639678837680880842418789826367763786127051278217658736383972090078882002730803333042312532846346557302459279252944587728002866183022955342139035414163995046300567161322366980413319850901322447457124102671506868316496275480842564918454385847849053535372373495777493456701956633189035596643234880554355492184148588134911116018115086377472841451268296653401922124684026340152669707166066520788358727009759902422506850124174815885167507120888384123326897291071417223409469279672971384340553137124137999177364523683871940062626383358953810719538465641991277081061573410523586168277862041764633221929657640030446550457853443785814882672195582005086196874580190166742963389589860808327772580454883105303857781965850927140909902745182251095782765308854042330252795699871686427832258448947554836946336136204480748875969680681564099511827866618194521907461679735279788977961960306076977573482947004244822791154053235185393827702940482520675166411653579452605048590571436795454875914091042144874342960032665837980406296602738812437595910708445259881669008186674347177083125374801371104038539031491271431365509100225112986969137790502979003954159807194560376673359747307920815546771482165638829151973111994411153654298015895295054478413645232363668477996692863804620248449687647331349579472463295074343787495365097105287175737149811696619114993466718289179791608445331391426683698491062948137645291190567224535163433010730954597109629051112116314442707952187857659633666020797869435954530976243343450028991938383540195332720532586539195615766306592388731609044227166406749641771701937397153079788858832833693161927967305542724949528769848493007758422224140111393856765572228437471461559895787559297546744654101295959373884902978037106383493600269312027485836112841080526095010041634720257311528633598140533531888516508699704948255422012849079050794794355495826540656441332322133976153702829551343405289744321026165101025023456152735689058733946570961408071516208129147302973914606610744955205042688606512561773612419241183663874424055298195089259555315406355342997530798738480984336642681814881119164648682555230390032599725860468236368315271294670933687352954686849929988706409715777711382320883814698409139641624823825792835511522133982236296489237956554957331357620125078580075372898061967801990113388993392791819626115602775306176232136379184392476624338188393889807691403390283881278686209025658712027637809482220156435487452492654704005253102271666717000685064422059478648067040144363667961517513791346198262942827535245030781429442610464323192282369378000248725011037332070167145320639401026740535563122319867145713007058348992383155992087292522717146970341277963361522331242930463465944792310759090837023578976670934221968097309500556641193764565151384325360037603813476145260039842054906020580676864225107032775845984054545278171298054474261814763807548674173332113911107993226209739377866497495716575983859668235696144205036938904852660020464613764400178222366244311047103031148969291187428702387747295725843986890224681087262118802091044967236001725646039539467211135388131370456165096015477664142508188202444969889354410008645366911636405291281695978619093054491121883263591678807038846120276432967632323173338823205152269147714333992753858309755896531989729246827421341510150539668714451042064398662151075057348629452251652171738299169280346214894831426422175306156615973815283540141577590845016174022686318184967486277385396361099664692114329099055080815713132245609081897165324358560553252164946303899778255941467817032374430220515924093458129774162225664839384740473108884194420518034107745312314016554727834361833405729550552431334592144115463310544027165674116334251193544110531251897361992858379840583306624331984315178686554099236015362684793711455805588586139192776058377111782360106991768971163618469982656638404668780137817329270448064179566883056681142927288832265149957468778945527860630710191063328166128568169078125669925693500626442657209868585545674068451870190659832596031178850512908151213952909137985833095476895000454793972856863505890454641209506154660593137910665177639421126096954339621622894979841100119944233843644107588680866523569786814846603005172429824031964829245590586073759393749931629254428873627428657428442516930203366776974735706221388823663109651873501190975677848052758436868169038446363943242555144654133353181447892211401459826237134631381613807867249498173359317433458619894297611951730316214825293168350734131241414981438251831367900111867803146756903115571363989664344018105542490155977820056878217613448300251344482119640686648762773383715610387893825603333191230517013091394843056228013372619722019256694617683901040628160957367255527119033366085697564510026546394283197723340141988539489692408001622691211705474071016203503230697214762188244960443468342648559043690306669767128642254171547286814199055246683383317562722523384674583156710400945690292091444916382882265151397010058716249802188970886087473100825844823269416088233271287628420072662012466445133933749437180256511973437956429774889200762805076201573885488931781687346785247674515988482073653188669481325401009416550413577411472622560412702966745018762408731480025684629289615222484470611293321076458265196235908209157253059062426632152284818863970980268352376195781129468713372721750914579424227458991117983686538717363173769173174636391019776315432244645225239752955404482508900861236055570042826857785065635162012626134934991484075955107348228768386052264724225645478405601685336801214084208611220632910197196829835679974320695546105625285633304111452407540181917932001296033702771052254837250291649948210760276038206954719039166024144760730315245406718518577993089072105494318251925674253182942702363142082435570993405948837263401718980444608617719946083789938877117063552130234042087966544376730549539629279536633162309109082357568802981338241157122594420938910630354403595699963341014377616438235408417148554459011984925908830405590052966853265396446869938775823829002706769671709963273401074724294339779701868646242860838153846521018167917257530964355274708937075219414703578767229632696652529285788757596382452813212087123258567758809899376580552456438393624936335720107846227566276526055393505005115426397103986332709347996037794923389051487900650712807355674798027658547220090964356161467866400321675921154473786806968074886298310171205359741723592262657772408813303227570916513328946685055829981295699432219772383443503109074320534548805432762984309921588305249130309540991708189398918840119126886791404773843488463144047089608309716841020725472195117915618989059376044405541386383121909774319157200965986668262778631029757502148698559241506430207029908039997491564874155021229737078194157097266494509347251596591709680111883624322071981698553670609181385900974747495124853118744920974883842539765999734047226170190498738687860192828875994308260848631928744106275644147529518354926371388323877044647063340968228762131157562836578374412903897994849766357739887683002018435246471260018476476696865525375719768479382291681797425090280143658770344981464283902118130312538602575442109346322237425965344289584926404784928975583828272768407101234594730292212835888783187164786554453755803048630530392544932588843668226348683263873540013317600606140215790340987415585624101326041089042013577586804359460078394740134084097582297904572867863434591367444292254238148907348385057342268631996345601158001275128217032450578000935835898500626452476402701998249580446721914365711783920531998101050285148634324781517890724472803635879038922177890556303267718389371252932396522127899321749328984582457539596782810056707640392009536912482510049883548121819258395939821143502665719079114605955951133051078545708190513915830869900547106044599719576241334701888896257118979606761106466015610165064112062639986336673226025674454353096262124700277853105465527082902573871636553089798443589001717027861426904859073846344583870882784323858575714083060317811943981994391386362949863637019425057162902448391607704281781599878306022071018941389975669171105454092804609861455491760705164913206525370042380297024280924378082841195782746337924054982848448826393974206432031512229359049107065562540445558649044682307893043147828127202423695637512973516801627239668104484827870868391545354471501515546253108581898434499504503329968518387296270923526016927601372613010767617388864035699432076082674846420069372119113247349983267359514847527465276571879495358254749866378489582154557077230362775533955632030778236624848890540058317804550607673855492411972770128825695234830803565861412165187523897957485296336261227381244369724725380704921367129681175672753783747197863920816766455241956602482552010076311458084067362617089665131171166481367227706845847203054496995281592545996438598308460281834685951497660372440889146899590811590927229534181293237765760717973579531253321858777870455656800994917119726314538495798663195943442144026193189447890111737843711139401330323019353617197765655844656198170035604742267051687496356163512782189280328225052819940311578470630076167818676337700322976551626958095405267552311351608774024555259061780204832306389558830111950378492625173841737251313069706700747055158781816034078991125020463954989242036376368860149966945597097271250932595799607430271498020759196431290937946573642460489870444970353118498240591399385663253074149672127468634276460194221247964313269229173961854265488462674570212857292697393968241194465533163775235345924123379097258301567096527244170413812136430267446677363410316826476562910837885915720555786363784072423233506302863242345661512003175627515274746335993943546326960728426674190848619931822738725163636811281882114849737615860296066787052173335139486240343991177646828295543968562450947797314758655932731832530899626205468294716675900032773304508707146728548350272594206589917186822904098821837993023463576098389581622444923452566711700657248375899634233684138312671311187949176304201818796851986798841591027205668869317246422089137417651521557561762257108330649418560925392862817734883324207661602751089692881793095615002762526406619632903488316488107488950985856873505516078875216489385751042905676221257959832337127538742613796518570863860083852038850816795486737321505043750257527179617792160955057001428228404129108256796006530656049731748176043248357348001599624110023967302901061661728050382865646110407684193155569401863050394795380536826887828640672578715453219873245422676210306174885879935993808770858334330728412273987453037696619062808106555755137289518317521087111864056853801195537845713786440922289532435068242047724908232243640421629627532133748843184893635469639322285435002802177558261471619491562471502476742612500899701089282567391714580115030908253055492723297646590198297990503567360440017967010265764102895017015174736914520824528611393509548418435268762715379862358396822761464747504692878624611445494985478593410743765016063812989083921132423098799155885495846263111674987269628195381248575166531932433830293477182472267241438829869398022983498515897513276215596506246544872377539295262915435405552322853813790891277307086778270583958918397689121484221276065228674436187908166798219510606333041516689169698174062402843583950734749747865156747856526641945814904135050167070376285825512750073825075999883852404620728338501249225473820582900107771583714350998516213611011667715048879835067455554032090154274719073995080447567770706229897109130049789552937441723222291496994514992721575995163327608735546927878579178457471837974024127446346423139537421067567336222205625422729299184154938860004594950883924457256556626758858956528310771687238982572255314537569579427656913914630923745130526930367763773253131889283062891534613399949642028506824945649919756563085892838020772332076778692750851450567925334106058470555723966824660976798850977245150008804218272478987154357221037796178826219130571664880951686041535923365845148938910299783796161581865183911871134783654319580864530798483568967919087680550523043433404175310123601828733632417088476983468763585649531962728609463336786927554966967348751049757403704130410022119527329980562682943799285639544086752439393788523903509189365172219711178841140452009587437048462938199909472487190730636042741831045615010740875478268081265884168112395641551403972584447969300742788610908477218096699857196380943131444093893616011617269516896746930256823096618430898077774284538558665798956852074300614180112045302067986872709377000206469922071334658516079576178663135181261429105794032400765649776302420332599101800074163968691187853686664654104521578936927675884980571685196615423247050144479289489279292976574488195157251509379080588547851564301922968364272042103531380361415645210416102873191419993162491127308903987667227084199657906211912112856701620277853850617588496086710420929760807192338933361671513252309709845240119825546473751768631733434819014874314124474199487662296494168112051336014438388809299237271994902743182362901503966563919257655783793820515726435951362211892787337585589353679565283791405319933550665590145263387888376272348655282055312776823508867869847408191038338012322027649426906123842730458026069248560362411570487654402625678175675614256843447559331880220462729802664469323841237237968974131809357151572282662158200898440943110309762528651059005099978192973582029541649323778480531951095999774746963577118167730037339553220112290572505435718140735799042267749096679679157355396805470481000455535013197190182607352574003757726904527746159774559087371027267231116749844870086899837162337227599300939452449141761725987232415665119055104775113975656450337603821242123934951808410867433924686230465561899420259121757434074418681174820725864601964449779666545908612517876000202058579296274157817034563141528882262701928630245248185780743472532942314878286233412322823347805637825590776329763903712411435669771301766427281554325959536742449314929211886960472021957448355202286191576609651946549194422162626008433720757447137305949786108010346273233272950823189393491186547107677881951033324935427586692228141121353150408597712552480688276547798446192960416578042024725382252496188039915383928966226678404282684043555334106820878719387444502742093761448399756510864168541342737552077971577690285918456656919562987913636062122963175410806187243240793916248925615591099236942938851635785498829413534685015994686969599034205595893519479875926861266454147590202413989092518412017092586135041078124443556377404949691996207455650703849236823881704141438861507915295557144404724950581757914203465779310365046634868771708327692253861789203525258039387922856432136901861122590344516870728257888468238107572187803874685540407858015817012913550279179801618424718835936968102429548934579702273190679475685048843472140884056472776882291249139637621887869518063190110761240541271611882442722435218366202337182461001361639526718133708405013310752474634732919686795124428765349653319778261579464261615117268458246877713982350300026512882609915069904170715702885765862218878790397018024503390935640514863994662190841813827248273134532955642607920990888560554014659200804727434854581019923692232051267424956938746270121897698132863236440604118565333428172888855334209156285767311783492537430490165845371456005304505896010896673141198712358488762073607825764518323772420344841997465665316388541363099704003440416776215669239841509609186052932253005774784574936886336269443688825435419286552125542656782034038288235350721969859849303417444586101971192218576868881257461016585559038846086883781923117729710049601996203340227579507972397478528327529117745330651740532895975592814284229597815350579436989640377823711823449187982086445517726504661053435416908110926327693255869137636334214540104887733713961367470254108930779382585668581655298424111094691537639589825777202323659645968883371252015428650946611088239494060174358858320217828146650288275173405248414047760494601077897495323393653514403622809122806837426190084712819205665859518624247059190956392396217365351482415257420348928825069254768392465008782954152851441997491841890151758744293880635518063309983678104546342849684656917628592367989159582639314796283030572612717408518655376492289701313751881448497657615797962728154794991553876373384850370951671339794139379518106609013966917317296948102567112408295411824318770801271037948674804686465627148235202253972024577036748875558186793590617745011540994867265935737236153165633469925487448780134568788134854386068541866665003716763620375261558562153295503191192489346044798359379499861441375187846382746667312930344438541831140052627873070411585758771878354490829955152447980312765883582461418631335145744355243957177180196205237177008246195866218966402574897804003602607918376958387348678365973900615890278437616332760782160341273742914958385263278807041445471527367202741840338634561122208914552921148142327819113482118914485598529798360528572925143272951581048363105039355509571418035113740863851421978397608248461603907051422375277172696170483295889614273199081954482926270214165944162707247421911276415915068723865452685188075734070200306061488000622012719789128422749336744707055631352314032904711956687907366254952370541493044952624415800449245149277855011983305210567369245665555810962797846419970777217798411908869219813699374423152642527061077961870558147934318269818676421353996195713784877306454574890906212468213054188015351648416468302579822981440466040935946951249204336097865930207605941462466180959726661305998460077419033855535296763666165706555352025808521858040065281305269930845431652223503863658588189834918933003186131870065756695938075236000664615900669935783985484575141562037122395071771850012624525438167348957504777768762454687143395044192932166981659703251063050449708138787294117357829839747268829225488171324554781731558897760184163401425607373160126807043890937316094410659711769321623738738753440900784560414575743845311982268460616781828800047675273887223610169385140829862955281759531242509035745099360534001218286087953020393428854845307448189544240820886234202049635145500935226934863229748474431829526044679827143342935856442771495583381163382423624982198212364941748338661201504892507751006271699629095614829715064685413017821015229407084625474193496081779331970427963192534693566032833296607178657338572757651714322487070500206635714368629475391901278045468774281739744990657550487274887224645259806197126961742730174413187445225659141879034029675900420874530726079772172487172610087494411380432829383772684592393655107018328868509933350661859544826737963290865921825696449271278599721507313714924257341671279191914832089351939142579580270127349412909416085724681733871284414886575262732525576915423812808067949199354592993668111916468922684302809831627278038936089678102980476687590579259026475828105593553832931103909572026009769501006768574758102376247605204066132097972376198236009273550321634353666733922740823001769772613847904726339529768273643525164193364374116851640487680328756795307078993309303553033022245725580755932131300931310811220552515179545372446055431742164015664788966526278403129772151225129450672522844793349723352999597378471419982714434771607264144793273933190415528018438192608306632348127307974311620321306367777923010036699913765579135844880372316745383828871107525949498416877302164789972001918280696347506418883830846812101822678168494264627493197007873468613672012438327013815306074611215298939308955536918777088960371613907340813458860780960391161347345804760267182205489444503986669259141248804551746607924659410999901259216965657390839729593086468753513889697104585824319558970689630438435481053844094473132754527150018733397359060384133780114612804089543253042120107996574779180194882919953759337184421999570354163113466947183263719959488977510512461425089548125536078295679631756067877076097157096980971890755798186364604334477432031944360526934507288075142832152116045201272929857553831857154627119584903990627007378234798184092400151985828675352188506138524887494506845552199661387844611963274933201631715809352832681138058304397746132451176506138764288055610459737932070088275004632281588841851122897423499932842124475788544263167663764634254322693592507016585804758818394267608641233667797474917865893211153974081951196758249743325567403652026062055597634668446120498593149508738871430403399570152948016530512911366522978691168427756218034488480707958407399732546757888695482539904014349067419763117439029370371688934046915699262086566906886132189371587392386346586576726441934300781789420728911417402248297612086784277622519896236647254497778735364260183218909780531457031999027512078781374261916672284337320477585626022091376927040833874842718615668124046451835527050527584363429103498905525301640141696586534127200712219889022340236481649115635518474794980869672764295181882385241508524780913256542089181105378364598784060213889704471109892133479027566657609560866360891818119163660748864241573003305549496456694729779203942104900568116378832379230619809715390941080483187968029075286084740019402590494263497313282368253169839392430728421841816110664392200613633456012417441701348539157415425282824772919458078285124361509660852805057884447186471481686072119229859411819256644035340705885277627612430765214952273019576902750861106491747183881177391677516037017064524235102582426319274038938579702274034730481515797494301078010940496585784027265644019819179101061722416912241611640715324092194779055627652367649535904429376662177880801756302751655453735143385519147281910278628248213605232889352322559423720492417569032215156592953580649150680250027086120800095209361439296545330842745573241031584371982005339570313484265779507591964413648392928323214131659965226574289150216169799351063773197027463486065517800926645620562753680721796109133810449367734500129470560801455878093024554425989116284995735350635535651065971933676907635706445152401893534364325409589353265150125538440425832515497503577572993510514663731278927822197415773661476000746743863918647809296408155970959787311033246195296935435449794660203235108411870941115963064897906208399970630648370414427163235833695283995534242818352181722860628640673831258695436259278605308989370831314687256221125273841966931185745329051990189640993643066506485032217781811484467172627630647638354346370799686618259823676533187563948315841903452109334222446723988639124115088190140302929328926051042624846251522697249628102621392481484906700076969935697855648494806589817436763230609749068506157884774197357274044406154796399295548079540653683988579131053884241596756498997905531549673071297143242805205980736234405874784019133327556416729554967171824826506306863567964339147240543639889251278368576262125207748275095586664203832660601633340726528320638527698611257644852230236021803199618240350853212211632162087178643174917698512819292244574458050375852012091687537032172947424548868411040284316514234121291627961389976844008454495380716701734495773767479840210390466302111687491190806520632567664352516299262579356045385998877706161266154936800607456510786347166735695404001194067673436091967619354380782303826432228623110144516645088580708574502847172237598470622135627489844211422274173733231775615538554267343613466281947632955593804597574638083705417946992718539817819076348067856155975872946686285630982804014555107374487820915859370572064070339596484667915754941429211231987671733736286546799583049891655831209690468813205482547401267380681242033109633264482441759387233497602271705603626606018664380654298233488731306573489805893964675210692735254226646958828103226104214775137723871491502674244445435402430331495137784796655572753788309890676597975923921574995535002523451019069038053033623800849602739244186048813134680776634764149987534553126039044786797584183552003398667871305614290006219126329173847091654801482432874850599810002474210612879772857532002081451250776502164270664859614357105929967300209116644243886586253192618650735265203891909652399573614056296001118927038424034587067537414555047325459067073683093167974914401148595199082817456418173905976749103683146718831663312227061201780905130803814682558590956464537934792403066231003078541292028544838406558180513705493012339814565960436322322777827979172452563013528340219572658279832964932381075696435398064694191634196535951439245753930167848781535375517061916479075512957727138106199049117243064096590468642378369567145779831253065070052499823481904547064409322322136297263990641151140061512827901089831001718025200306160504349464354632790013023694922683921393163984567444431790184569101375253132969412851931347348521028308007700142383911621301232477065187406136355165315060892713103035000422180298252972655832123525759834070060749625436761892767652720380230935952443097271497753247938382421870497544072933986267075745979297567548054579854322061062387857158247619845955739227125783224729592382659243288228725112216296811199022719722795499130156009028838981689608695823191725659207187864517623284093318275905107439731598847825423748674077459077854952366404360138993705137666082494585902806028034770068256895638426535461477041850366721081491367020492853391357164372593780543015816766040071863054106681068414929605328643963068102762038405707263579280796598985538947663807810617715167004980286558230705546615990462473387701553670991718978254317221991732645601958589588492067312119229838425141661786216905961957279776088087529000532341020644885161141318620468898190361269435971680114761511960298327731767571750985129250683658459992256669097517369238539297232675318045998979060180312581145252394553642871664764530510579450225754979297377255462869126508972063482935857828673211627557227853788259183979043698207501416252014385883470794060271821634689889470951317576298240617868309705004206434640977557974646529357324308824152002403594859462206306990002389846193510325479631246878043494962561995939067996033952693688603101223502381487170877588490591474647235795528422825098318431101738793688059338644836601686495581067921569885094339756386227623481000722099545159474729415025129906422073505627754039676452161510406163828602988958285354970332763317797112889858822003848395572676297898952599192053443524342991961008630849076286361309725979917794121300190816702904054039587622074958275740154910442685342886850151608455386311860597111280232896638276548484581316457076183028898509236199622410248154157620202439083797538046791940769685918689344368253210850630320486006293134656794992612274241583978446980047882719656117153229680362691139309159932949106249334382921891167204215235296646392894257067898155781298083661243830730349943902330520370358179845544316298921940921170227477631045082484435224077140103248659862958589455363693817061718851164982091350741870730967244843306244520392267633369461324172482328361279313123653494914688683782883324470616818035957815371851463237848713032703049032854953287397942030981935983199648420003907209476957065438771597181169683057249163287312507976553277560926656476454525350178450155351940646403782427405290143526316781251324361788774587426410504841078799246345639962327029921117931218547670354034938722033002039203743774708411945255405323391125934466869816793431239773164827241705458833441470507028847033115724066580260335930266644512734065006236846228373049220623345974026557598202564467102631316449161338253770405585778309495764545639080666460824969745980264046611596380764573458762405577247626777033139221908975240155481418786787573125136162166610859052594090235837180434234425868070690229024478084733845872756831546445058769070340382794300366295287101613369497868948052630349351235641609961214057654616919627966721037877343318914214128428497925537341019143916168717666222554627085999804240698130314687050541596100985432136674761044347572349875273169755968641055368435594786662587374006414646940263710464964703396560088411614269811701231912916571479737276342688450289160323647946605998567927100946939134209934538526422303681608107752881529820777447566720661116272662672461073877949042399022259306027182266613987997217491274854221268149522777282897346929403456978029152740834945579425167808632589191325782728460459002642694209024142646117322813471736958393701143950463248233023396753358971095661439012679160337233358431427561328750180533911612130116496020597727990208806042465666915030607426779109439248535177596034811238618695711184510742783934853545585523945140224817209284962476029179614652598517404349138303320522303232366664780822376012735479069996090185007838597846103777515866679565146789085115168886373935203348762838965592864152361144652211971322393643410433384037195318104137348855366084582588638569527175487720021062595575266259620263784224394043520626348797810827902860053210778707539246863977316063452296082589548610463871905497300498189909805030938523868371938847751002249774454570466784746232293074416200786736558671087643942405017491468028450354159622978475555343871351537169528909156008941253935372533772423315235122383847573214226460597080753324931222757903943699727739583542096674053350679681176810687401393421526825452713450801931708280418821060838384638165955001832233116891864008183440369847747708523905493832173097978167558546598651185303075433535622801895146067916771927150706535417087385425746325707507289315496291461475528337233311117293060924155127837521258633268383881891088665931003250374163351096748546271428197040924852533761667963111669320448098681465213472887992005329957524174179617523620020462229717806916486626586875321467416279644654720227117981141278510318295016917406016337423147665362632283429281518528801360958787313927496719352534597856095857622622927069057918316471031947735200001417033102080324507450097825867601890540281190262333680132575995032470450337842185964934804765346274686152745645142069624964496226504453295204282250018299846700500943744371078931360490967959135914927849653324322034261029215321378482378457707955060084157190756254430542929626919941276457736730313299937449243568258318836588993717639865671731353947610887728016792905683389713772454805717864246433878118912923041442893474171723610005939947501408472228851824815744197369216633203726236971943061421786128417290883529113701720925469714856364253649028310395776335572289109855952980679645558559619608298698170386782536523024939470048001294997713966638423440165487731803285844874577324199621300491844159023347958005028429728714750167936320902368179365157489954764951172629985574618316810529662088426563233133247310976300062597683708824069619062436424238517253827732165619275421225335678378598462649635140477016734372026134467768344028182709366159012761224339480180052994365389741308405776752051339607313771348048853803404787258534702058773438772702030127583773806060384661980706255067366422847489533351624034855286654625411607860614582454558755956096313143490915482643336902349053897702167114766988931720305287937285499309670723058883818730012364365562567142290707152290327082948394236592500754058476742315273068197479396956351700651267069817966071720737065758470033977964546756422254413375442066232126639212845702331231558749115833171847424014033689802822611260118362712855091506082044156897757896620610614160605043433992623693433138090487312893674128446684535632006979636782844284984571439621928729526322067787301087154241958231199188954725604774764673738836799050089501544554054516691529522314034918908992256398957910105562245484502784737066823775892200131849890521888635835689608457714105589582439332997814865256541221776796508211620150553349254647744041106655800853514630566655075580222855725362590926883265361858018912601171745582744703657167335429515958662784449115355994323149110515387077354866966216155779255890738375326087688583145721965662653738455637289697567306845903723985559904454883153731749506140367016890835388136638095349264399966649965916669323794420477106366830799452622959844300194819002264220163321328338655955509403055163884174159641919721461730655056443715305502527313757290127157074623218556543881007839082108539070056535727923054730999324719514475223722949339006162875030000141706455285508543939314187885660919852071839787684771555271505998023052528985367876870746194697338475714460068850997686598066885652620539762069127813534997364238326232389902007406353558776338833374091602856914860004048580615321835084014976913382771499279249191855772820715703617646201799163970124039585867396837286364617200889918447362288980050162075486012963302233866209853982167348425164642596095657537242337855542746725434590284618883572313311868664895218600438440595104076963444854722404693157263315003175168347719851188441297447721555828546771031740311813869686374474396704982108957633816296689136105700902777990844721540586336619756737583689936437061579978267148212057096405310584099850973805844944655241227145479019217565672297287541619664233544961190843819160202144685491817444496582512765784938289267463507611696852972148288735323860185652646865988410140586305476100723315911158296719249231721033212804808512167600235893385450936673238198849892579337395801308041225023270454837657808364510364926456625036469536603136250597993492898156278570819047228721981443751055388253849914187660344945659632683354906528784808107500009057774720072948532770868154608047248113186850488448602099602169059126319923528734205254404037322723924113908283608412286922339735044480014399097614593308562562006555192727158042341555886135489601977324748043362047809542050091143045804610245582261157486243682986566277693201659539780706994072332297928825317612936545730158674265573518472502527837447271664627021554259277589056886507100543700227261684579459915886435096872690204357875460127407905050333106428657291864579286226118463602582589077106457497696845828336032534272848333980611606919309465492666247626893438070498690172719738027757254480743032049237509352333816601807452498361926332558128284726992662905984957336398137885352380734495192556225238739283807888642751184329419799918610092948752053035688432233989442419095160499260615510672467791527198871421900197698922205766546810820880229993247618218957836564103865906995976284487366135651922354681156261099194507644794207855201721061071775661426322356325365447087977796430102711990244491777398518479623701566345892709347734008363551428148932448255232743040958510159746722496376745766581681115924963089268106627647684632171797606542877674820285584285715830532917233536163868758706738702832317408647188613292780576294981546388004945029574157262965276388464820582550625454920405327384258870402858206806266384610520951106634131551312121899460769907166093969511584687122517247673238655424368839664107929155034246297501447652719431019759193903781155814623554595566113337955188091917984479663863779017913624524834892474694198771464660104029979827013780170324179439848921455468293258550452855316481064893048675761570450484919119732299731385569026262867648259668047319706086794450686903174883402047364872105394091399787249300422676120974413128432909899085348973130070100365388870607043503522527035815191836558525282749549630637038704249405672068583666690012696247526638787572416236332378067973437956334685692101087827675671439249561125140488360288559892395176671901809726015436971723322936868565212164729209392234260979998700003106983955670878165970352895128204778645566910674871698543418110767052430517771405861171993590966839536912891891912365373396121934423839945169002647781895385621582461306661180613807540325238434789575009149065013979780026046040170713889971495769099532733349383505345701624638221151941380508458775058155900911245806079239904245398462921348821131667460779036054295007906069059574512104452830253154730582216700724618589116626694888308384005052826014199406184082798904840060653262747257848205980822652622949910672579503216064267620408911208118926428060513186820423143300419893330181810096795850043312511128977504301501037621280326052582179112456363441238800661478414467819076484211600524388332526084988771692307683901308748107350081656223957788687501249792395148539686492512201065498862109996378107522860645532037198526402596314171681124767448211288712386147198059949061112653611530929384255456304678060074967764499831579491500324099798207723310340733355006854526707675671446750493781383911850870632284803066391340663626366004265020863138875370017016430344723551721882419987823113939046127468853018379533126395575845677406901883105530867651408657517771131942916259160584833319068749245007666113768412661592043838841504649316892631436054714783295992017916988799073030134958849576303620546784882536205770266514368403488952140384633859135706035786044882789037690960525861169373020883606064461155084092025574089039271022202195503272220567941658943702090703476631109483162703921424219692841715962806449227656605214445319945647491065426162457625916433625389565795839213786991141113286093910148510112759425061291399318744805310210615179932393232753885104656603372719000582149948604363676784180064089694078561364004412929340741473026088212964332655314963531862679796915431039598040590278384159772694392695340639249155932127544079575125850957215101727831134552944644056865529649265320472927119924066398941605379937766507556189394673144865834762276374397682057331447708758734599238611717892262995551862666046221949983350127902163435447351375705687345575629095524011672011394453428796411501274735144952406478218517629088625436596892849095140067768369327223581057411624450028997323995672092375847033386423663512206616545823668700129472275568255539442260448058764273589604916164975269976061460142071284861604853087073085063555594004764431730056288019790336254726586208700100474300561643767143556055541615172166577876343906783671884319389946703182821220602529714196963604050843055743199208511762547587570777644764186246920679306583964222478392524298264929928853835054230094812190614167763647275801594454972148263091319367018474310069182999478281648262869971836368133633522531244398481554337611567362423557764538624043401597035024492625935393801248027168264798341956205459265926320873585085306026687974919180796058348547961908519089992219131958984891100095567062113644584760238547402471099490694688757387302620881709469539812267171084103036953839713730095151361852601243554178534203324708311314467706406666926611557165097535170349609512169542547132669458123538642934761654818871391556547350416555859169876327643199428349475280061537269708784937216276750808013411122973828245941714468256440261676385632930579586562236704553463473168305720981776480960903093376235639416049259121545394480678069047773651415533536560388572078922557279250179326746480269384889783108974345899667242555307548041809453083103644871407057512778436538559350111216685462250617221647855668094475462858829420572871451284131876768742457108598038714253037374611035344512727193333347509782447839327242250499642034262124474234829717126078986042106725392418734409101611163973360758037881358030181807271786136224409416740648486663318651817402619309052909394180863847233526966662764885635235969031746358052489731609233869601752297522807884586756899570998818029900550458785540525943397192932461895110651748182971184551874954034603376916695658793747027530854669907189050838075157601175630099870887147144447399908857521098253521742759717987168878884393605135371487204789249488368178746051519498750200335127693774302207597950248699531463677813351679694556557124519698569345345932629028042749413042001347937401170061979709980784831671967989266919166579085851597324684173097761373990060387160554931972125495581380968115337730443877437736194622457919737503947748433465692042271872446760893626471264947330141536427127124862894984040115275663395666436366552036857814195746207084311637527143016375050099075379568681889041698671714795734121176685104070349807938391222836134502527934602980150137413425002897958297306385483900803628450551195196523437840728449594541120898464855629641930309078525858470837307676679218699774124121851831317805281761845120941495725266537942145606183008186864769555653383792239959363643681749412164872144409053966115867099016724908770916961434396768041890769373048904153971346933743777926575739697192766275528744627470338986090881350661315429753518825735562184137931445252977355328973311620831643812070162248468633468067521188746061677144301635269871614661866504488887470894325760256589609585812634329290070881351080914602058392154754982996969964639290855729041179600197867624932403928283879460897170015561493895471116505336755586747756883869874250844194246549922487692091439419560256650638486526346744091608424755667592724903436382804161108112121758609497997780119441944870283198797078731984094599640528644943300412807818675021637796939522000647260689097555587482990117003070411759401675653514392325808796349341935850023909887599567682438009758743695112761752608644994753337880391731275923870742157866561920479643870574529470799141355793706886899681459065904774424168085161778279370112147157387641866540542288176563460731057353618351545752951136360662087168621714880303544909789234195952993718868641931102218827596867074276353444261076021223919923923544100729003205701763699492196667081749796971672472791462256504535044099260791650080428392441813446285032060080291607578218236160845232756252326931260842823386057312948011272375665105118169972797439913273467504507812812750420472546793270699889799066531384947816154517788021765019031705368140304213836080376231769318616425891975726674754506497332748952001544795779001154548591884154202714737800608242333590318841247480587047129759421950280842886194686144113328274671232337096944549216513371668558310354141422569496392438462176646710999433517368262335155782709298022291403031712873327889002665057986103424602293913700465174663070881358973171008214386399373980316241760117768606377209069919503837502533554631032973117584538559816452373080786250960803760593767107029389115631530613371023583909113163285418105146404878828041653061742606954947605019588425957176343935491913686385809433248372934256904015203788899320277495560582352377662406770846043193428507193641309994716880651745195180823303867374358128141770523451022503625706727942524460787590392262891034325470567957122309895275679987939156268694164060254334391358191919370426030354550828920904364075908865996224950955229132061248727434731575808567714149779411833329076037325194076655769141331874846556982676507498341330498904286945805582067172958526936532250434502314868647175449506223230553977162503830665695815134609003831795868454671082280656443439675727779119372172089147084912820722619387663766963715819049483539019064023861859934611564681396175775614962452845621812070556630545187167762706984285708416900784158418768676971599094299421183040824762254533477107761113104834775814367056713734928086442118378902496302235056526197332771498024892929844316993786013341633015400011605065001051070212495457764037780758155515657963906908713653452461954872011827386948805432903532414444366068696441107631346828453359737543358637107089442079782793752672317594228286644230294753540413383684664883729199732744599724067321745595316851197749797895068120071018180128442445937523681222690710981038446677979048931119753940051583931311992610607407451326120681921336334246783571298782235239061815829595027778565413763967040400907190954650863437358912081364286120123889130651026056489478533413739264179257230307342305447018608305480169150181777920182829930546867102408390413746808915186551825791107250018158669554752117194054385778509822579795388646538405434941728397576946558645401302086289846770592680635375048573542517731414531589806453550119244576674602027168767325438175856123804672182334829001773510641168754903301555457119549565502148897650989876134311305078987384584875502851945032986787749728013593886601262104564677487316263100844468196240544909063738410004701587973328706130576623760497150009683950656955503002362052671303930449139373138613839559282865462738811732080895523579024573496626685671706861357894131592567222922180794175122232893947408504096477205607343160107326535243323652686506746100133899484462447243458750635293637414452859655036460764533338605034175697320833802075469175816114683975665169121798941431292417468588257602924391544051150964554387994477563514286337045675604446979561610800972612628729054786520694885984384274173399558997763975614441433162734719308408350253405997685428926267453677154150340379468496249014500530549619216067375920001953479761579136300492971842142007816314500773348084994683898913192648418946382391847270508328437606294398997321155483574636256069248600530806674830216298817525597483020956021264402365827719490169196929421449465167694391505920120107946620702332683532633181560845268540024237057585731995522558232266293326475661625871264356146352317220597207633404181401472297982634382112459148873347211799556322446199371089704946829430213065018045637919279127414622732461507386096169180956727186878070852360065644605135581298404335592906437958681428310904346800442704819855057273390472503530927772447869430352278503418662254072794483691035291759517214970950983936315300770697753532113235520532456737184227477564698187659428438380358085852429521826431088494996654651217579171311997078931512645872164126603870117428010743791358797839716552209479771655177968287074378957451954794055312534490859499563695972208037403353064880345971456093294948951716620917301554807109723544194287589814562768041184612957309140551672036163085186342920912167779615734783303626405062916945599994807810963077646841627875161531667543828854400634340672863229847459585830356625586176440632783921499106313836743064518054312185015907236496517853005671824238989231152650993918326115838887222506921937900582254257184811403424166375255510783274615109549405343452222167340715740523050385057904987904322024672371397918034818517089915059185458631220634133965770083441915772575759050564827275247537153511607968078622640882386121720660824196465642850113100769702949681987578958170077026936052718797171559156373683087844205761307280315678856344533099990105153587887387892864337126047487294674395173014467738308682975376599475523243850733581845788932927419140102295418686517156648584789986533498869752625768388390700680765330306955847539570822491115068758555434803460482329138434195438252727164537542275682265998259465963031566019403510131657045831870121963956169488882708166583756714435930500898036294611791155230324725899497424258748899768961642957042454825083038094303141013905153545896216322052686113860181735965491300907621882242453790801980111484773800130194663625314530695644504248952511971812832883108444407475705337298115962923157864634996240458124522856260082992720813463903230519329091762234552785822428496820157752626568380041672979977012837434154910631904386731514365564684529590130055062972620527495005072211882961383095528257091234537428271043538271193807250594484876749244850911818586845608475091995268339413579542500025006469690816909155190157775698649256472134749226194192580475874291345797895122406878801334623474301176307665699225251388444140752368358274812485808144222158740543608479500322819418820867781738620580270674915626067367750636981914883035124928820869241599175311440230846878530287364389385333387044187730992600704276343974403279709003074486679462361593659527009175913227079632350530235577477500593603757555491577178414797767652707487865364432373172439896599149107795939797543299005110050556058094247254602673565275692209908044902261474691026836582317414278240268444081538908862009213647559984000795715181579368163614242062230668892020793427496781027290017619873318841393192108069487843732806222179426186996710321591730647148534629512769171604419132482407804827709511251623275772487372128435478961758066307027275237139485929599692658526859463218251526419748702529714540453007970229751744347539028467408848025279251119979139896636894422196816496108979654650791603666129570278831184181421311557380838586911544205666452402394060015594366106215937331968390613481925838038732863382277040239278235230850540346399541164885312684281529856412983571265759522656640205812218543381735712314443657253366237546381673175587569085736461196249675851089767783354994247833350220553517496120581985710366928535583244115080958873998305343551486058685751153153750843956508726532106776968809347270597550791499832948459727305921436366467889746257322206226681002773958575693029572011685024794295123679222138004135924136268671491006913128862245277039248743507447260197215424870518254376531991386812610266030561691617826345940565017591714896293381421168243744002127061803017181073667909780292112544688724679469151238891258279050343443594798117537465529188214914991109912903571874336703196118014821237711916106848093388889306558385411314051973420362485942883701367359358613328772978758177195049117090396837999778955782907438539046477161660156650399293274438215290152066385661513624084966663689285779537708880520054143661556071830634741109194780881985836177663370395372785419477700572872850812169030956645750765669493686198559814675781029889293530539811968224605352610109834127839658277581306351941311814008873426539186000911837677173863597813154390791027594022513510672573995571202184970717600911190832179501295416997250589796985250308221312050442100118367846028603094152089913121793431394284799440690152544967119476001024752076440934237142726123181180541319136158524259541401195886099467486191504604858659298638030200942177287774337071459816635035885353956645604301450932341515800906367538018335267213550610460706858519174508884474492992771165628344678390712245547166813722303381302485939689110318191508428210986706326342643948829554871856727034621695692442493303850474027186946679865571652225352953615485090262846816151330204262285263106627591582445026130711952049666794383238052833755980570395383437284908799965767019060591508103576261729502772476270069474595514071583503285762473994260407649610831480980844928860478104129882471524567657002047735382020943644790187472433569211955274969324238485377306416783411432176367967562652298035978941228091243631467598676207596594204238456284126689618815759161104829079452091373729543318947495275035043295601153164702941792012830179259036767361144884042457711101335814724481498298867630771701878707739607916723177945402589206765276501634419279369736040831281127322779974231840098064459446846406619190685857760048865015613281290494567241002297119920901218470062341955558496318853733792176560389040136705382802634380473552586902588266104135673492239701411988543867105899818072476989610939632418549635369280600222513266011628597460852287497112044378380780766917445399325786028615836368766124756449144445756408926986864843172487221616972845618696460292524607961178136591164059307737226947887162839159673812135707774027825301215592725406600335948122276456642877590127385412910615011759161968332839482037521254448280459005192368090541345952843158652118541861818767465359203338194604469513915587283860190405905977423889476379260783295516266701837717242000138991110563368845340849832624309733109535349838612975146096152526762386151528478746083505305302362392923376085631952725716750263275686458728095631330446087158422334160949702157777010671673411083795679972767502959854195563511414338191120186050200970765027879754668772167121464103621727841404964535255914420641153183980138830873329733650612460925087242538270200195884178178639669530308646156570731293017078017258181341818878147547312687170598710477784518513781760159444187806335971453351424086059996591810256712618392134134117157243722694568422692093489800720167776028254013766685908504638651032756333452020877289423267711408354423107391855241507568271080830901029939674706060755889997292494334979714038006583688334747137745573341987888170156166161925796604565822069005822292353828958018475202146256700406945669311531614702996657977905033787223697808971725911531640540758313267624186841505979050090678961915083373755370537359525693304002633816677833520588396182257207849611353016374321732217440505462889748161720374634023577473373762138898535732263500279780464394075489558239213108386125266475464369453520133987422736360800376049308275677468216143603727048110271544524271119732402873744189004530300036397066218967224114196336709876547317346885485495311389673164697673727342972095588147479583578810848405944863108954102051685910778077609182540746001814789409776484391572758313909113094409311294760293235594259656672481384342850683804172668190452407773168286348214489827654692837179404468132864455673591441365388402346212125748605266991640512742941987585283770777154925783469798487712403286422037542256555998308414559905241524709342968423765065159321435903895419380554052051237431161999608606060039986076622352801406156655964315769509769391340885537728475860879995333803428061309141418414715922059796492557776273826860054528803168585278508316403847401883711912667340791562383654358328550496775846406479541254957308592987078357234179714439340530707982627787029055464590918089138243426095269154893691536591664174704428876705432415021820827725113282477929846484811575733108930790538580750806274778966855058541273486802713910457344081407529004723457376451145375714069120304439718057466062473211402175248738211778337019500544928072739621972654592731228011713764598433867913308578129994919788205791279548442674290976356454217182774874721678091183662871848948071945934051514894199080523260782189428763723672375286444404839406340432617610025587761015232435108525817476512647932722911146397019829777605094224244738116153199978671901774503287712444984341857271476079908451064902096470087393520818601738444610989389177894343851584349895241438359819828763771749831030554475310236752506990342180020985383932430221454626216368293290658479898502522254006046384876929937274675295217538087539027331127232842206618752567021313837345925969825177651776077727505002542307416603121196062533957405081336504189160896464679414606727435924351176973132065125500314594189698850054068938511481413402904267133506730700247386554348973662675835821110340083325518180053179286811177455801477130441330787120896394062397264352285515272593849499935574264343519404740967591520091268743124611243565928746546901550356640642796258316245606238029015442955518341485314333666570806284422404174947431455258740794638607294460381692680978745266457344081357180221851769973805167324954928849248135042648933073601513011993367365902888191548726650237002402847896232886179698293344227367859286168981115341775403558950841497110833589488924594577483206839586938630948832475149554769542165962353357038582249967427025430593742027343960213436585564566704496162915583861989498391731607869532692311027683770219169537118994261834444758001315403987263164944046641034808369741037930434490442968389839417529181523505121342413718890524742541886431902391981762446333766651649909470901499700075735229424330174608806373155602543970940362890925255649941720401811933503864017600133758034954132292064053232113643958295184312161982286265276607539862943285938121942884512471726795180804957019865683435990174323510332736322173714157606234955236661124730486162674013148442514020324741177096711335942288322169923968974244290176156727705988846015138473312533674742664633722548278499987748383451897320018449903974502324786192703995155227356634791580542246720330377292576474874797455911759087094478287575024127708725237283064473958018627123787153737099515711805825401075629362283268669157332904331316507831546775386928611758603006235335663564254079263136107515507244490257652943654231864503403663520865960559876601520449900905416761706557904965700882824649557392052469942686136229675922808750758347925626315312210368538360963265604767482327762883340778321169839802079863035735593420998356890672562165075169385972923894206221627619316961824419381689330739530460741158148012597209905486677728900951384671554609132948739682492832153416187004474089001452135606178245336427547824016932954902665450990145571339889074042882585127845705401038292743669875623125210728363009158876658019837215903177520979112323674383162809029018794970433187928469627661639754492985398810213740942742232896700787298940211548148239973019006943036179429138505750010679993821135597350446406704174728367001555024798384947923458003228881208874077229077482929009040482481644178771967753576917562817201950784826841577198355344566983291438756360592032095119361517148422556631036022096412843066702169462285775160069481909637787806194074811954717427217393179148507525385937564112169133130740585965885375101806045818766433057833490204814770172930813259978236306111065531335856300970117465143113171845138463155116596832612362081556416763578154271036791729530448099840611471877510773189113962638689081492853688526562200833123002102108174647420113014452514171495716383898305604250627138390672381838440468859799759027987150753544777796020092839738261848615552368872831184679745022035815982963983616437078392162560843800339493019945374256591461692414214808449314490998071084074251351097721773424715961026064494366653692996520166951596678303680691282472148314475375420308087547478113498208280543136548939344431468255669202596191856723633763716392149829020627138118995004336405607410692843156363202269479885246486650684616915752349575357264219043537003794976691367468760897596704037279049779719956183410947481781261426242427461934926440104258035033049326469280323350377277815352397965885430122218252902009604385773384223974894444097681114164790795885651460405051257678588943159157559594583100701771331903054231062298640942868779978542552495358779394688034319636734544659174762302914900780725762310036009184786722846806681246438323254916992198567645647819343563050950703723589089069480838718326041097079568697806886664265002857351036437897376246838368348233808188567561802199049821309194759168953440617057290832897543809789751011484031719448520217549450775515183518357708959281529770971685921067315530951409510127284181663475485506847834910884614841935820022187272709513256443281884058179747441752741577948628543203076024173991497541964236506158907008578187086926905200030572932433412753617378206118245846364837866575774479380759725284116716062219165624514473851477941558722497790427150275501659923914541081843679722181041533462350147483751534246950821140268173077769646340871597488488715126410669418102608708578647005176864615394867303542753668581283322344888655787873890880034710902896107941773783551277062491772597583626072804865853018628641630526940615325555017838118582942309469511119874222466114390077938964423753839855945481013413934321594610509324171316235576674628981983435741840435282043705050115589798833635740775006040975172180244441270524756766760457105921062888020853690962085946412396238706401975666931029120208229825789659828874855141044174225278191079436629964214984647526091093970259286489931533549996831472302630166021484700625762524194380231601913825726136388793665730984504775455454616403404598117576563777035334391101112926703868333033678377292417304742021152844081472024636513685994461146604369853898399342239131598215440961475779301076234909127769235765474411480868831373116649307353392827845676358768702092130142000449752675458474819133476780861997826805434453254039169849862776879268215469438363040906294602141290274651491183790879860419518724499632312118822807529780430085820604774813882750987422546961293914390327056645221211137053306863364873897773754414523090474971849773804091931035609058025735696597211810558872583595860045667506242532523155783475602636182200774225297728633715708338352178155840101689021264320588758723412952815645546299307818640743451206388155310405263648358040738949211830668746390401732433614277132577428741336860688367924640098808777432061248448385817747089523253443521302532773575960476269078547140669093048027611809242349303924136869910097989343147579578297190230503277083792020950017641565647934508366871602180220271823356776531195608089657471030993068219875984290985229031562411801933124836257375475213599002208686213529625292249505364870371672887282812480047541954473377172901216803037971570334267678009356424223006701600424955385019474627403365149961839760237428066518939288780198084138225717453090053199660985062635190802844967764245349845972368875693713206199570544077587511749156967156715653687566546184174523582724380450268156635780118634072343608619879714284329585952214620745227057833628368734083295841639506751535188241128720167463398676152641510967114804808826801305444748750631386919898989661492695719023452546100585691999009495894509105742154798843628820522005974999603577868064260960116131674473954110645449996726318545448745441061798828335639777537861455140151078295909044876654029733825204928580902392052063568551298076339967136234685512066897343849930957598120143974934041391501982380426154511350445094571922620801139825194062712340719378682185158010747002190084720223970225957829586372823077114906776101432104619065026811434324411249523023880784071907663247183840401225150980145418705555872155839590378682915697968848287088397910731855904551528395772757504182519614122405167305145608696363078857452696777308215808693075009924947477607862938722842571783866454892240754829925626407863745141378003567422773764898597142232894161382859247046335618835615441835823841461608416695075195540395887182017190509761912874744372318107424445942610787757192197001186325856152196141148218586591459399161104375054937830503430148694734139748856131529177025598921123673492151794560503152438343387712348389281608180517490329408043739964818886185098474861314675048104761023618527111385135254757113407689780244937284054035457041132905371110299713380596508298564102805074880613947456098314430953996748874310080446979836906602074363050219996066657060164728337369371957313637194246353237424170968917873938584232522000021587377098659961243173779614191017220909920875159293470683515465913204987500809602295304916717356699608807933285345612350100826421119947320226244741204812480854595938317991048304875657419081225701601316655553570213435025939231534580617465774115839554519368128909667807543538051345169362867309400318198862986018878542472289990950276168937968732109708880674970460524143380573837652014403515467627900359693565070676650134953997094932828820963293474434783761603519688669388938698164063707390517084639246930090108460158477367327856022526031355386609448843595723393243537265425415163063336315262099932975809002751193114820857197669835115621839688423214843637134024039547929348207546969010457591016280624641022475598389051091075738301881855095345850709630002173974112365743970913926876262530516871043485004982893458162986140046073222653242522060785543732156360547259279875114359620721807416117865434145559513496718093189827156811959007598420642255972455423948564934026017397440324330456952928664386045772913840939432327429765052102962880825743545763883037675848587992295071107029035851718805215896724709398030756990394139659157639246064120357982023295259797032432338250242607274180744125151551668472907879799463442887135796380306228736157148202467069434777470148724363507040476186379816556886878912772969304339647963599707261548447652240022804186457986721042378911680238698828862903619908541567433210045260854701505743536395724234085274377739576431707942205811985796300412927696432172480633485163766254012185884428728499252745462549042642810900497921651764653310938927597170361580264028013753446723721737534713405765503319627572769571929264289474728613697078724314702405007684489242871174627736719177753354759684407568639359098214003553533009061566853072243859365057428168240197040896921891356127253335667156853281812101410823897459315897344248372439643833851541728537133096259748398130998895082464264442606576595094848458677154031491948063288352968839795475970654270114214309900561881990425862668903513861481746451554328779118565378557870957916345411717178772707721166629131895623773619052982689823664210108227437562777901178131728884325960491608010609144653659011951777856507991264601045856876915448455142797141089701428021633104232179181449478795008255021292496603656393184638433265898188074057093867234175623597479816597801206501995601674995691026798103381190117513142118572047897849248523689727962731941066246408878202226146936597914495634178570123710672047316052090431353893292927300533766785769360904741784941651364050070771343881787336158736642226394635640905740495840661049793228741909969790735219409061030319987007216644060824982383367481417737876149426650111230783526364362790561236683186007469685763991370706063982417246787488594316225673130105299648185401737980562578264988189038844409184900710543921526553491655530346012021746998192452682631608122458795843193033241674392960079547609456066173745413623709622659396437329966830824175448191195242217125166024258311284133566347509340773462548877504418436557877606042914937659087673338315105588437421923653484554696747846099366429875435753443522086462631858637714005512125889359462372423787714241013084436373833695293742442976823663801502303450145624149269609006081188515022601215941848793704262707675991008973282783386581458981978285599259795839514125915317037565762765745232733672768800320276596109701801024163489977029964582178304058244156980808320862487856826372058556636798326052131218511717791331772913660075680348357969272774594427423846961178568741997953309615549585708825633288572213623390898306858640395293221748694682477693821256138420946664257596586251617506020518078877076609652701893126488921954188058864472896934062599986958814558793125988588343050971313437583394911970348337185511370511082923154624974753889430669469124025985857028347975060111085712455896069200040221590169911936313014738916825387359772003784128492589719856256417790241958546439666372346721621244548872414229193236368240148327173827831579325555883562454710357830094569094684154749143069647265616023913193258645454772163220334773889165341465261661353797514034681352401193918999649598190566347774020923267894644256869771322804066563038801915317417512753038655420215861535331124705907978455057403462077341940362647527008525779181776124918877005171298753326763482466858482040743986917814928056027521786490887277851782430508793481000713813127288139496535875750148748001688931715395676923359721426004510369698319296392296323529156897327198713862369028115405154501878056009088301413793502250221876139922452145577592756451358871538534440494457072577290827210734428862130806246685115773982715901619431526240616430168398599049653981799325556059731890522303600177759016196917760123817261946580858656041830948742685996596006964095857043670556467047324394211366478220997804179213560466066016144293000654829628035045921087505105935925280483807344140757635629249014698350270117612025481228876939246943178822435881468647820261794133919722292713223813268139142300850471302547238510565653905513020762016400793842236360136763789575831640125631684089953848381946489553031206537939904002002827155811013506491504806337010399712242031678961979133065094522891902498386530671033628412338439556553599792444568324170480338070159961121633473406137447104028164469731628629004946638521264770322686077092360252796337674844581914069769395537078426704537760925052567350263806690561026513489626980740501911029882863161718808678589448342667855462394908635331461655219953789068588884899666218901778971961777570335138344973107853150738256745576225835855673965461340827764503051649007854650834764139975288748499240115652202567242427285932392591167479495170580995121904800829869047871534423869733638174370740982829073159829259422453862338121803396138263486534680857546062393145181542640771752328019696010165254583615409428337370086443658459295142603902397083419049968981512228339081419611955916819462253230553165253321195457898222399639151242410373396661052339135795218201023809430514833430227334309455260081829755956175343061169684725285768360567957613476469882887941567718069049274707239103561538015339473555580126265771653880750906622119231026140804363971963524129753765757299003566177555840617737509628424048524328383018367316350852682190930405902842167945132517272861955500968625372882525238947804124344150721111718636895273939512239647290245348607225128810920415523094341079610103376904067680016797406583262246529421081234909382177931653817373183241163331792237067892725655157718902027613834973275999766967643048131013278525466140494313793258779814799117331593002301451846880342271919795133883195465302317358579852738389503872736087278257392885211738544660631017218113678656109165835063673800792750964844063288405933581887575552610272928025980560141714996100064201982859865021031385915962686075841751245645048974721520964779771118798889756439917870848296218812422359695330672074817817867218987332638715353542669695389113592832943570296059467073707492057639570543166138812798313892258060109702910177981296316773648029062472078912357537718230981479665953536487340932935615281032681281256899939460290843001217578565845626949801199237542259029569281521715487043800009570915321552594813594121868755175312014381177597354211826005292943069314226021341143034859683946794178741373557359065256414944842767336582794422756271858173415112362581578743508763569844686799081992812064430933990884430109186232728263108452247694545417827385213401126128245075456821234295514037044144721717600506537394152702350721472737345409042133175563928632882970255567626086971469927081561516356724793233405321351622996130783625997449325926325228008637364630962818676256866056220197874185047486809077985363404136928359979626110525781325750670318502044086310161387049459896875181185619265998202741639584328157754226256218134978028484683783533125779484457272194452682773838048707673473527670614670206715119004059484382384755270820501209151850811599662308539985528744294691439155496820105079625196602298192204688888022172293554458665169194669772617542813080663910961580438623276015945617128006872132504021285114989328054790252497552401023262150248886177849812499255574971069918216455309858143089511449414842411930150404239302258641317433691060207835070812085015517202345595475383732317507922537473222077039018117308209514169512339607265510247825533789712651883822666261910273428160834612073215884113170434247588747400434231456060932091439432169243264635784887268328476286892038283047655804931292149486814303649707624043466304184976414125041367691554921810757479998915713752925425714421385195795778260442829677767256804235375260194656491063669286558391378312014281724626331295724479549156455334855452116319440910056636881590247993345857169568100323768779217176407318391828107810766483375483355372734206319181192847426462652025702634363949319157419094445308415679810720862923964153233641182553997967951784663310702633858496078899710352647580870876934354364780537422787619339715638108318772561697865531508867619516755319820340052166484597809946111658163796862392839514714621298104688731679222239983203472114506179934175962098509110262266988332483447379064857638990187844627491142142919851261695711704201339385672371713237930928385169990917938265521874075756982563654813072642861352668394742438474974120063435132215445200461360053883521228585121958586144313170353870459173111002027213354002280467672052680534874778185585639131531408736266285226956701305258903091379101570281664797452412123011705080291647909006198462919534592809206597881379154358962689662972417119423002664398218453569457644124124161903316785497288869785024527966589452334855639698034400400775449406047806251367875091409047832508026479886521392694462787837258115990252725094005383450582400816533198046946802542071087801579472849435971222170088794278480255050765352812934142197199779396268176652624787400584232831393399271243299877682348320863337279266886146608672864375511897973040829473097582857565177160475977181484354211818537957201926425970129528844218359049889276126876790031084951404472828476521971272786541366876030829280244047672159977770531144922683576077096661202168581777814379109464330431294653302541720429081434380425476735187780920174425250017966370734581256144539895644496473339593440651682139648092893846079653886104838624378106745826592645794222889315549804489082514805602349050925867165540888628888158598598950641091750697977780202083754478986232076679156266588687079180453826921523277276550127960575736722862575438574725298304802389699077794037892761310347684675136513262553972669626558440568782789185970472336020446226669139703556256925755681617218390286270218745186310202042813675536711008062765113314935581890609029169028842375973556837298047338698191979358713043968393122018830618479281061303875976589159016394487866518112271933651557829473514731263305563399065847327447950518133192613335068350785950265755181543693460299265797217139293131858268319655831202077126485820041644404689990609871251515105473877754844914830934127188715531667225479801024375675364930242800925584829483550864182152335764841278279657585501986782156205673881984325415880333840517737522499727265281890171251588623917376634512299320899853684289989091579187322155079285168646137799934116641195248694337727456757421314254059528044759211185164512505786251897860349481682707869601071987107023656947496329768039888737315683326644133850439021552435166761750889385252702238965227681986025031098484421964762208889239227543401825603155651891001317366879029759676250934984453197414956186576796337061462485457152905104951665832200006906356374158840987245445786859998366406944444636129296730427225141136082073678724484142304330569000026165914279852385678081217259934644517468087455016581315390097505873299771735599087450053126802175530015096181870558450826196811499450602104847863213621106703442300918730481304637179755857464623353389343181980970764239621642543917513519931765190755062504197420657996736960886427461005935663837495706597807748521773755265504759205597368695003094539481951360175286097767942532182785835568564348465475350927191313929209912186251532433664989291214651066445974296296357609289689147750128663487672544392507211271768833849089569489574367696407891058547696214869793869185118700814330154208871475520194384916800598754483879922715756293898506215230056599141565781046381734581945319074525534444074383979795797596284919219025140794265609019259240872974344801150599877323565618002531460223374075173670977050049688344003057549069890074190726566677482124799366286439208931946053464686449044521362539049552123390066896264459628783187826474684269480855020221405694635181026241286382340840040994420138660360063848204304185627786671178190509944666268201594447314256674656806897842442603447345547962013655063563149521981279692630624511198105000681961894741987048305124081407274584643196976152801315468973346927918174660588943741548705295388980546748697708648803031411111964142081227297071377559897512471948962388533857529743406136739650406419325396101895818979712984421464551071750718261633176083296251315864035557953611949548947443445125519384701234097161714012843835988321825017821992027687859061108082131394785911234507827097472209329154257661523849508383056130308153096821849457959535960394731976650896675186000874709619429159482638219626226262922967829608126005831639686765959937511348395713705057548883662372764113074412860597058469894007015566079329766708918829635342254365009919459405895855748982212540813214862759125061304673109496408830346225563195756971110322264638636128775072547417331749074441690934739163045774065846306371735935448256044171969614828874928190854919930702614080606838372795711022192346615510427559757002218259136231724093837402806099401875158794588841901356394855771859343726627274800066099392582872597473537663575842889133014539598306644814522349068857403504948270919086516698122826660971620335901822386099354067765405135226696445223501939053113318194250213899990969506833827316864725477127086686475758045523633134486682641790649685332583084316091352436494329040397459679472569231466251753658003324842693032254328446421375199428553839022560062552120444539173047987433096139956387833703983886804597738118030982848393683565631250595663154451771900900302311555156656259991731477512847112933583978774133381638100960855146521563540044717773695805681865732768804691665742284800152935819991218610362087674398986525755460374697337371409933932359339290678678265861569576244129107903390972506262765287632308249373714888912891993364149103191731154540556146218209074550982538164767886666319605892033227987304700810795615236611829482361602522562234979010081848004906983460705482138819518491136397134949633435340359898439752644628481833876371277879873867069853030045998932202500827384222120496277845712975704220467523588665420609571264021068748870673357517963993564128801754657723812332252753161351917606641016200101696140537681813083096988081783674055273569557349871962913771223339457731455854579154619929257065269643767830213535741253389730250386615057339351448987053927425310617162790674972788761201056860949019818085059318569835955014874239089882219883925725512471857102464305686026375301162193908881807650123966744184974960281195686972723487485842944084157887463611355316414715633866782290387378659158926138067158334993556523946916871478422899471186665164384347617895602950631712913583939096002581781662271236820192820486850369621279902434322681703652953105418047166451125765656460976508461467724196225618387433766056873210942984294666460013103009540605912266239144262059890319621698485171176681310011481550935985480172718295626356295332813446417835379120985895642258651867143639276074224281911042612276987499130252497118141743240719849836643388180047562218689146203610340590253409370047112051180857349840619523205047772362495302950483854416929047483843113253246671996228472479185242887305692323556379934869828428033711539558616520038935741490511770783012689000860216078605791706615591539983925780573089773042791014219152006901168944465499776329107434425266901809821300355710079602732315770520735012500670876515362663750237484830822370780622738718126128822841182762412468567672554908793345544040549077494715213285437372007601726853314147817917748804197646204182407017977325702234482453988125460169161168482569720457181870345921546913088151737528473779755853494943053270633226754772834867236036755979136607351502301824161983632056250904908524930721718453993172750852727752595193125574671479130187956723692217230858165789557426447644548207525107870492692909110215661331431529410233250601765606745642546360556439344022709554741629305568477549969813947943606809954544523670392296665748595882086451770850558143050253521293948959068353647312526684735023569454706776274295016948024300822052460059715398767010620475091510531340950477078173638067098011793388579906974525195673059333051051416578665838108868716095439396668968193537665037121586602756074637915732600136687236493946761396601571077260254243017064371649652143897059228431703248240385609647781051412880861921769210273082746269044784240698000020206067335606016693506729736476108063800144105044413132367073742786621271380192918326322057733819023089365392850943856229078402818941112037398158833367547231628104261730861924060035395664835413356352070669120343474299976239552091718985677194862710080291245263383767439577819338367115780482293188168954866837850498692277735890518432082443864854011706676437257525522755736126659101944718842975070261926760615041123878834270478504665182175174548545779091648585621497099658573274992684234455575824807496912392246511312955455198743626123116319211184853005252862940907844938615202126228889951437343001495263465575189872437087006509918226266202952972185813299475639851659316635474977617963261896931194387264676410429695169397219990916309865292908867475984125292646078015184616282598425514401484246696970547606827718345542311477846370653213773113663114815991219749540189982669024554161906014352323655980974569539620067456809467297302594724570990077780561906714822472221482011376234216125729247495470101948224502703796023843775064146846382604851946789314049140687498426885302643792606162401627800214999495424327897023784230407711922779578170839928322741975326722252897433924207043434667415580698128747666176347359242021523010450365947827121730589301755602647309143360853791899214401574821038102538860900081871905770141240431799772682642291821275099037776040697811599537212981602954631809642085194205729428034940466466889467834023802432373056677117605298917330719446657597401780456005308209654840264729008920473674761568171027350978724854490278382779145687411662375240637955691112121166314903981784042558273379276859303229205877441878168007735479943078801764372926211945353946106950783843882569197603159790782587585277124424328805502121129960428665867276747179051746376252690043296723904773480551819564804285659941410871393338941517106177404974720044033753831845730733297222436577246632918133664425563224047511649976550756389113135094767140884493610634060839876489569916292692585449426674460384926727260690709755554247978542345358729515127693340455776170238156851445354801920293379025649643533036193017795295719708062518691734711016619767487053923656928503000127210408495145143026471073720503263153241304218199715257679603005560664771773943452291716413240716529686092919387896724247019530056553996262614030934761502890967288683921142963159397487237422429733765308695188809877912416897393851492580595057583270185401800564598507860108566575092339524918470638092817696350055257186149837321579215655059149478773985823198728521219517288504422223624788239583179158182573112221902890871717673238034370724913699068212549242391660594402983847283780108282834963256628365767779155763029679332051475320833861347064425364309177804726699366861339319497813320656891498282593436887324519558956437180694840973696228818306315461844661137806408692475865833331125201679318515304810988070470934218894052348104045159240816571328300636266717711968780977183424268936371634936381040152945393758079279114337215468587788818142934807059916318972858830537438952818228995748335696653041159869669797602694270842692697955791884288706000002697418027598677621411245861997610474979808740123137820585014512632427755542524060734728940709078464491214782161063051195132773233212304406336843947432301137471867347794005594813148148957815880935243466325663112029923491667727608110418714578251386946006999418032812885118789333817864671084063987519720167618211316981456349991693380230827380974152443554785309653706475339284996745769577376897260197117891635545474962460472113366689959907988311271534416915916661072473303263243955110646756192855707733609024539323026090715745529969860771513278320718238640872706518719431853617142555228500475566233349143977740730496609946989621212314607575593218381695616892475879527384430401898061303571959331457176416300915263528288171914122096190958997912513331963158227518294515829085809493153593865619185447209273918584948317074869704722793232229013845929084500543170798291115852904619468902280245988979881197267751142404121378744527096932755324391081952636392468365877395651618603221088384745432696924104801448670732742910272364830984179897645691437896491545694235044859480705106996729907964898283606001195206906944488757829221072364830382281362126552413565903883837732667893824475309180233962623457344652026194443158981642288420138218670200576961071965321197280963390350444969390175547339250061931264958168285035898375292080666131091450550884046427248902161657726415583581959128868825886877340072861649712456807545537210063782023431279739746103223272786524229502315569399300814932571071000850419895587994988345842224153564618561960523990928464842028974161834693198222809343664292935830430279215163782683600394608520399217931999431442542491207042807867735479338198476636669017614314368494893851162876992496997918103804293632166167171236958463224437185619641631442891085175330646270934449898427702115218587161016448805011397398770517233603354402099768742594404520104033342057777363702678791033600623760848395825066220007553214899069004781267968940775672560480953031460881320494615945516322287299264084281781597383734550564125042733252554552566529423925424419305296356847447810118920123935310894611649173753292109167687262339497467248611124005656527297826116957621924044354147313684410002384382287739007826055016076477134551872988156084210721024112541423950466502980881785855900205044966447950122153065332056248309276011644878043789846906139002077429376117445435974239913493855260203243564957024999536016767341612837006481651601709021263285913837747574775700179181422146524936049478295901319006238501263682318844405501276910499430209742839988840871194203636003125434047430661774748012062700003653845948237884299234701180827382569046841659363935930472543707833996000980073749287622654885930264202443853981694685983070973668455006978544557619862106695300345797497083880565715041400379717155303341854339230871984959986988972693456396248254878701095425876438960087609951580993547968474268381458316644915471777007425659478588851197578724720134458442260685279427395905570656137207983903463154509369749515270998359869460669718609982135729654342805827026019233628425883754891328667303302001042185463046133232121844754078447703421089893732962410434566251916755865017608213500219648283410300210669462781062676008643501709528485081488509217999422862995115983592583163933400767423236277244396310269571910801480354208612651098475892972680841825617468204993926885677142147224335197452519094802821616637908858027398230940898511820777548568109836728758598337318545634782744326274291489125296423180011726719416911740136020692972088012876527057545539319263844454027522603105847859599318113087596029195692280110447890766652361889469520539614118277476489627467744879314283950994075563178171145578638286083760738552893101380829776836664001840169584712533440441972036705745515018959447532306860923055846339150343510630346263023227688363248716992194511248285184932738427923189910549589514075211741978072525342497617795195827546692560168636518010798820053316819342024026467354458594561371850769391723708794398138439199713848211100387697171708221043721103816819907406609611853096779017288901604999133683068797829213300340845483190843313239036028501915722721518340124363027021727603279590891534275590248969789049659745469929965898224098969339686646627897657554248079031252842167070857518776846721782428483383127840816324743781417411117221167317235365455368470380060324851467463375745976354041771490443638642781579921984206128175623045791466448474931639625934533976486366097311462140411861553442117358391018941792621497638837393522701030421161880713136870841722922756249757784605672163591629717629194696394689864853337806409154343796766397006819939453350153441790066223591040882436832449145813695926344360046079485929721956843359144850043826300282606255937753575659172357657520460230596480274599747859003202531827894921588376683730831632139585703077519005106616584136416024445756668773511076436187863488230599127312220254507957606571707390490042122324424367017647090090033710907209612074124464772145125885074377911962397827537412487777212366040771849895911473763274409225951342600977127891259886894075617354057003301499846429371531506757974212525166273358890131147476814638798762685251731401133420175773946936330271743736666687923502760074166285380201222812964747865042318461585921702542987721454929264129434363872397573764162819755648632450304799223438249286246107894691501957024925489848543028756009890367544792828505451266364848402671379862801719095381941097419535984295376218166379591010411518530872779115643161156186324264398061758256280497371740999369000798371479509276985561117664806475324265797048374445512932118688511950314220775445295819869719027244727251663447348636139399612455363526145170958337205220760829157244809440610310889160433038543686330604571207754885767116966784766558795113573906881701557541998222886147911025172186612162371273660204251144291377261243942422058675362468868020925088015558499660251709330076475096438804818054795473581685862631162715450169479828801215684000925178660137645558892230555819580100731063993673584860687351684778836647210524550730273540607135955509301950683508185803488639311654517199109811314806172936424348769788369710945220485801821588069930801593221366107052178701855391746996585032557446075238233744885951323968622425069515632496283048910938364749643324424004030840257253862482403309409383468635992096044757814110802999368225457674051275469489710452633716650790881087138097499505922885846956435627781242867814339419785994010443304111287014530001164266333594666111142661351180204600540234214532254625012955614387864376755556141197457295554817002815350069458375792371626293052139895179494444190639757974941002834386635935183751122982324841717760820945940126214328842687031693159141801412122533529525593857675605646543234580411825303654740450280250227315614697820599122391530075285739630631827756392459488177942132535083034037094650470090810614671064662184837188051153435434847252274326517734510435463459366318445828265158428137842239178101958675129140910343092352217691229908705835390025883092575802803335704020401805610942408434231587923522137375952695530268948894859715456247889069360840590226479874855857298231677084388544403592899838655714574633073987254284968692205588408490500153146948031780393346321213169856272874516980341354911876053915619566026790874711915322255739118889686035618222380847367070546677492394052054495727601066706884044218850536971624966303563938977073027206998487303895211588971843169048834841978853542269852852680822631634381132085999984206581249668258673534199091845423702094280058796375236719713050092084353113471981455459571605929835105181912964276040721676829390639290593767308354268827434673671100376324213704738303511007092172000885538247618350182812499705286470024290653677341265089725297681523555367926187761177913770703964071798642182411629135964305691170927400122426673450719094053369558699887645972981352377224702106487539242250628891691044217651622647317963783595240157630530277451468177005601928255677716352882131719656489319562373814559441150949733729971380689662892913754174519658101138695202960932809304420398882529272120326652482850282272850963233552859379435944265465430780481876906842022781100946602679732183073834682979449336039927079597505748258077204758029206211470674081439115410736715849399242825158174294440137822477284554166998642387587294492524527706102417952152859188515335293382155002423742797823613309555946020765869816565790921826056236163069674102932847321547085010916040690524608805178037843991702783249120354289216344679160643494636200986502153389143701397723192559319162136049444965147234864107676338886757670552061337669193412953446787987182192859518348612177730773917729914834472071180598783707435885348333215094711150378795233528377213017946157412939420591459593750040636250913247130558395589281568945941987221503424177130988640285608566111247512071274668660748329510582407407018332200707851337885881575268777974079304547447229490567846404411401185045465316971589460167132939933626951582089981739893905123627596796481276533305890101071350302052603119842167056134554705600354697620698576911679592056385069952106741298519300043822007705674573606911794655748308862718466396415608214479024386310926888967520543352378289537811007939919063614315122780678040127025833457229507763884323852254608573312976494242642535353762595516430049697207085301394819086244814942535488710075233176578941863666141861514056111621094463986709358622946658934379275912789359307009590267413984433646567657751691262912150265585136219489482550251126795370056568218405190490379239523913378732616488128390498060227866903261270842734174234895781316825937942320869802255332660066554918065146211708681093334343492309989931179763596858576408689333184674916127748310085926483441424513226154552746018097881352894672326562161513564474691960725893158914009940907051737889165268060434137340584355894433598372685445568066087079901116428786004160696014936576386669741286486130573064389491624347826047702900691220659059529144346634010433280644055606711593306188086341727146845504116257793730738441066149724707166154825479103213070745151447209638761054787505380058422285615330668500358922524399236495818447866639151858324107678733778211657468040416058355636632503384627400751650363284083657506249332850503194705614338978729601896161600076298231651568419276511571689625141691711467511953253875907688771739011063064553122710008650173469691956895259335832315810130461199426291798153444176410515308760863788604393719529821257869122770532624902016791189936512023220453719325681380624050314195158290266698594404962662872113217800098575109928510056826780075574231231733917459723158577402094242005241084040106393222120934337969839367931533225357912867885553021175282798762186549163977307589063696278342359194455018115350872748225111055845064960518088765809885127314007424995995320168803811661149281787101941949514364628862484935648510944940478903346438509334638638498131444416642302884441915837696190068732653887298836353607821470935220220927856115987760667589588536256446572119284839043779108378098406508959579531589343607065427618445918312366842275938777624869014447694573929428441107301816541082958073889489171153842743293573862114609631289033305557413680767605295681157296697037401091737069879504249510498100424512240085631987765927681996694916800341922731191342673418956972851295522705074093320735619855724716551611219784332118866123220361708169959447891490297022232647298611457372203422814762638209355069656064494078985822501708278024123386079541644641173507271397958036745620857946112330254510700121659734669266663293915406072971507886284983360748783055504548007602694628363143203555188862293578837845266816572478034237496996644430855567328105505668426772666396620515879623173243605946830676644086057066214351776134611818376631884658136781641897859264577081812573096838627758409174251112007785764190954442479742815154355287391079294763123246227284889249007777406027765769478588953464064301555327057470021190798955364751977679647370724853385419209983134164395322798814483810796561820443926839638058683148904579131553930897501100776103343326754820610099159496301140342354120250806248512107931851323706972991422828018923592867470663687845351396637440375465867388851121022743613476773488198299396613806193682389474010496555586559260136493176645166829295774209001077874258732613881751987678605291948111458875161848233998729608072321785913379338204203532907064901527459849107240965497688916844339281370705860280302067564299991232213249152028256442959149069160514542806212914856578250814171146723685844594076204006005935962738394644792114455162020785294246476854822897671853102934001299217304292794376414360733854404748749667744445628444170008068644788554572689429247800558118709426660126108806423952240951433420339632971576754928073237592792003914781891806782354011037469043456832530249301035755095256488963197905107669535374280638321626733427045169964299656021692291346212992093078578890336370818681937150936886650553435634548770436854981064545520272274204826509848174411697139749913972062069421321038728597032853470028404630244913891346187152905507979729145926729608094126178163983193547784007415632162428624085545742129116547678790837685021706455590661228114683687948185062012609578413402049709971460337839164106104408246709479844482388477108288756079911815446144025204999911776155968768873604815067711236503641364455152867822511487626097998883765520878872962207640633819626248413295310922088379670873573219638524732226792684453838531313962303026920257831493506530661694585804315673168438543552095838280515088505220322284128992854006706801491203855306105898942239283649417055166614326477425634204277563834354841335337265054330031744987678361118379663188976914151847483768872519404176469638742383207159507002625988663101148253725653206269340218891505560359678199956206921201317635615158042573833744022165765023121920830630876566544078750188404611608850090988827022423068807022149267921530081315805652634134576040888762547765363211497550244799740685390354160641774097382234319188077409188707880194636052256191810475703529163391889913182746950758924049195861568419015257182482172252745039766413539237481076297642337844009967924979103814411240534208417067986781360607371916712982963023760983269452638417667554736775750020609599154433546031491123823017621028011735765526533008907332494803378980520933439006507271627217883819662677532847115006225377557422932412266268404222133742890135121091956649648507232086117346684573370497936705254258345453823402846627909021364064292290340847927132320611351879319707858775854488497108980063070253066590022879328309078757972467912999685794818077443716972014107009522182534683049282691691159187269576818030503265157854123668568712889258750958225645794206156192374669651550510838493496299430264437415106788578800579992228802376796420809176713345399869977672398922821475653020803696928590703873985547698614707983900513363020945764015604458847989730567287280264820116134017420886796882413224797751293891478733382398157697011183562753314582655555536842340224093322866471141374217948531846818090700095948261144506982935017201609694734991635945803110615735923453340637208711129189823481316636846020788669786917984246643509305621116274023620647082988132105341752750401091956165841014770923194027206926047299621761089520437344732668096046951492924892608953384385967044012217053840069713105533196106915041350867237904441271854180359432825216272189258216545224072427777905807431008277570663968425639589990720228773984236931729867738139237410662292421807242867070480575664636672601999306789760508511379334543745020768343739786219944000572241584204273971385065393640689652177355952610218877125335881380640031307731275646141181066928612540457139904746432595701866716911748392438196762852756957623806593894172634197340796883592389355775476358735317409378439879547818080784668341904905505929920694436901043459210733498017516160688013365437308234121863709679265879583653639356082286375877272288679481375408055049256738647849472301848824977012743762326892689652822021008653283666446196467890229872933362337725992508654187056837310410768157356818942736646433131756434767963736820001501025331326413330427675340516717016737597366131024013057126344601602122134106852204070863879595122551839446831969437377648976381073912612723690631165640837254443869326951234223430482247406831134817968369004735418814644197694552681218551051050218858007586411612438167264443537838824846174783779206995857836685933588970343543609961713167680194047194733629715252357697360681305319891706408525600635589505872765663180365123032464681093541463936830299666572566310799836690167618191630602852142692577336667998107270353442148269658092508016087199062901247381597804735814803584623148407897816955290839332002985057485020756267009937996838217316707379124369809494719983547708416744108573426269995278250559798286910666338965224402894860933994626182172928068889939158748772647326667620439259312805538433797751217296378736178399741961305660445734468687735121854490152496420346702919735106224581562404610644474956249714672981563179326791390787482688474368769551191196744430502627002861795106089216572579272222934742165191161811118655156405189977357741018027331186006822929685263966218685915721559175262100947916197522526979190264342484234338472810436966761711289813165567737011105167032255711026853273625771737137040533690336229887983487896608930843797463642252107867745911753317365501021990629357728593747254186076782201445857243391845535880901841360577174266860609178450317461240089954356372780056501366176184451477004030070381131039926657820513744600219349188833890115813418503937088101802417521060629002091266513116326798626930733397048548604838823885521303553200356448068969398938446671699884616896368720433997191694645335423822726826118781600283105243321822367707011889164294813332813000916190066643328038570695886136829138070701487439987863110099615022753291458620974838095487632993669084941528232852060872262066137459731369740378728673901304272285484591844552854201290098712053472009697117376173513734474319193572880365397583886949362827328328036260173446859984821823457307386890436463252217500889373192223818205055711434296146235372893255120904456189920373516707561346930684398355165741075399134565639345929483577590740730397823000401297078167473187508459044349997850139378776212817294839261327073307796555724308491927555560263588555338173314084815339170951618167903204917713036257694183025934441685200725290213235935078707278153166961821179082239592561950911198407120795737116690172524938835875203312618360254541446648134561777772486968086343166997000762351085392564592689073890823933509442901397156020576383903815474900492396732797270946888166130651887706962214276961897320446079891173688912034103560924652794243085127300197207777547587320032025632888082370256985917358431154787575083863827349104196463694001594849948809104506338324089549124573063861863773873421652694587371600465329797278706575530952451648888457290216349258531150519761893855403199882502458395608938064910305160650363767326556752554591734063912700130038955029130817503185519619436210165239050068843533346573375058915728008646212885204266180533767144230373465474508803269119524991933571103776053473502874923363744711094961638359891423711304415532279358721106739141619268805122377932591571040081261361998338453960949589475438521330546066366320196462134946909066233604750984020586954972631928441321122751728818930303643571692594368126858370654015720435780797203056206111491995364425257598006414595677442130759668720506144039865770927001372625891403406708185916209330880371061547535932286672146623959208237499764162971477642631535054384971535775341298952658191838308469808802925634980421459398800823329963802168546231519592019236241677530147103429389003540288992247400713210063052652733575629023046752343284974694597214838306408498574382075996274046442420713344044370892870944127864751094097152370246243314304374666859119829150746400384479377822941235688472126828345309887178353198587972079710452399717641354977806167539358107251389026293032342980848086282099379589929879815168824289050788088385946924641609638571999706142189200391015983798473490397351073826489600168164059873107488824774406641545409066155188089696724749685891161335550037619075531309412436794322283201822806501992628156675711469094849327210717957198488060769562211958764372016294354330762246980111878868424823928273247018668199692419242353835072644122022088750843640742440437935300519427293985268784407706779900380077799712442432470558692216929279912876001075706981276755212265664237772420310185040017645390830356699799858636052000174805022477506189093927074323880223987456181778393170990141399929031441685493533817196285528936514894642064467332666487694700540689029725677477541242616814026492492772350634980908904753904293522894796096665643562144867915347452044904072651754700696293715714432028175774437009654756843207617122188485605212252793106878743325789781259031327901726419029012349072604690065181337214111087466158075389079612867297381766807445450194603121710741620925878692444571265892241771772821009952764445035520864969015295572196098287480237820308699919836020638909649254190331074956622383014747449349021647205312546153186300538327325629427601002021575721104822607435011087281862690129079954646827295247966785047135638371511933815716724769775985766008366761979256059517426677147575847027273390597564760348731854462847792497845054294800300330824108660233356183488927304870934186916146439808895447915289096319060860250715951366659657367566949667624491498752891321304189834435666143197989376573407276245316619419260012933268412917698401533906924332928439002747387661644247371075344602428356667345197263350225958838861768418323070639784929630831605180242901525625533477807853228879497810939433377850647694904058549180259963488226711579816907862981796290302838874305976167249508387585063292134177201594949073492444091821334621127001996738300917794724195250317880057951192267216538494028898710247220356996549931944702689507864611108429780367712572297810652180607852860509685390213107071663783444401801713031869902316475530272309773329275861940798818615623624205072293956747578729404092134562107835362359922547386884729324293079883996642071976300943221207804548441639822627292861045547235989088194796959469804132617077425983873477225090874960340761146525331900415927544546366122485684343710644023469260433435530601737530981506001415509465686644809788518375735121505742689294239260178484537820051001229396220886087153043540349171467824735094213501796618562407248966897794430957046895444241230999058463827484836767240925112578639751530049704964073972775828721959930143921748680164413873322955315538666378868234993190340047371529371847322379284205223947717092352898505431036985373609719879015309213661364660903780195920391406073575705643431884739598188011518353522280745383979211013142329653196840757603424454384340823556948445169299002255311027727212504323445069727628350136448095353909404420739342787611357840220226924746301444802105622697422755150130284991926216919111470066351847818857620734063768340393726033447294503957672063816370222824195444471726607578647628474325977052955011506656996216294715760131012479240449035895995672175678169462555470844898915140145692568422120456987172403137571189205370009767545433268280513457449152953273968034709135464427498667855623097416762388763658718106344489164729763376718939820619663928322336279402872020394288762845659197429064688600878069505690286310138071795082499901175142880820703442848702029996030666779989368700034131198134980408383663992671411494519560248946451252854656689090955628959375832542175122064461055187524498621040651613379132837284508215579045610818336617226468847386268725287225021521583296623907119029219013743065507533364130723006321068673065764493743443355347991727074118784031251765229043249434340953292581505112871661895035447936163177051902032353705269409307912257872836369970487846575956593620600820462374374574449188292179438295270456218719394647726879428458933136642920013049998115962154097950752147083952486656656776301635075014149054871678006628171244788815198942463527305334044202449763974413998056676319046498411535869758148422250584552126611636332614191504053038741915480684385498174730359262333655621003676141222730721965199085611458388891970848373898789528961895369795680085740442601735447662161746500863667716526361832702471827969961300963046562388544316124615427848807304686051417384327782711675367017625670176023935116703774756401978492253297763332344732504833571980090541755922454293889574280496596007049676835327640895764807875121661591018063667171714238289424111047153632392466712857353277449437024681042152749729012944857451974013899174355929762234170987084076470600395652447753457626096141074131324879058854669224292701106014787239264990774589164494078882609958471913608610367063917667908389460060393825214723465366668927795076449214760462727645071306716299874102949793754733450384842493236925464764545529915884897395826783032964208313545840380315945041655921351801924800744660115976755288690157136684555533879483634331495552794135067447229541330088740621806108747583912468647632393561221322221031903937520528294993631238730014028319052906663165059035767962146530809267355229456779224285367810963943575933311041410170058847945234630864447929718095771262905541899755546464976674115098231828560351969934107749572723372287127808648117025145912083968103603056201600760408696358785450900357931722454173383061005553739215216753934097576750246054996602562679007095635301332745117457323635346549092012732117724981833145281830073847185757279490181291300730055272982327450024394036841365768196337852497564103295148640467645539512514840692908414929303801058620939722534740672943155903263562667091374184942340796953864253128381507757264418463513061863433895909071526972460258096451012663699043434433885797531885518048819923739672840771305694732025553246377243880897163627067829483571610081038384870097859264373476406316311268982296357026248478593870260848369321798104412655553176401946912388642321428380058385431021602707115997675971848128800329608555828136744391695351952499134215703855783083683439015203229528548331248482091017212580085536875378358507891062662693412968234949371576619560308757137458805374121790477723964366320987537877689377115554446929246851075593077093066175450175124195643723978978545714458571462009750871377296587334218399484723538810864983105571304178175920682039313375792708078345260516638523216773663264843262603479547953956061747491177625136594863657393742179427429631840155167567063171347154632469868289994722632865529133766139769363124100277888142633516333296735395051891516890879409000989490201307491324946406387973551018978852688561928383934035435570452933094086622038170183782582794567559128735969032943624645094480145305367322636083606361629262776894154819447979660504841563847960834287344787254188249082260064200048424626848988725623102510270859216414594903449294847144166747679619567599919113355656425568618949783437364189835206118679567638025879660038913221319608458682079680122580444775956820677702833652139383885182713542889636733656311512905288921245026772288823696093591457429609182217676166601626202559451311132052469222997227736440150826178193792673253070396676053734692661775836087667274488399733673202193642781467912869706896036684060463960998250768706366983327157659736378562741933716021422046654643932169733712534168691452592395842244781383843520400438586238724078924182942755380747302690053292788411653811480739064313409828599591490436895523029846629904403067710213331413490542381603155847180667499357750979219086465023625945498181364639255479577966832970605046661366541764050739541397308147580125588600038398264016684625643990946626739105424521955463423718302256637519082974527116493951281565439097597762581916230988735079426217171366014716846243260943716000289525823551565720273904855809821899829428973024557503212299147144955180398712097965232791710277928131220471960786618735856485366681830399591760946674455322752969712847331744762518593302661242137185758604624175834089031443468362887538660331961898601793694706043964208756808817689758702922541657998274652094263329829392997076698028369111640200010633054378603562252147141825221195430033140601053582392918295907163177032502089313871530417656408464568570063914197489794141907109304395112828856372606858630936213859713488231549183043029230433671809898648671545931815875220102211269479789457486253675335331742002776070803330849132037768657895698380641063289591684569034665778723775448808440438558280716942497173605225081318118419390588614499131303617215683974096225095589028139568995412837406976089271895369999954317679675558841833298643907194670290863403597027028753555123976816112676109076486281704911029540674662482708894803478653248360856434044963212544008924080493980062698523817699696853372009370014701027443528977796097131177617928195570446719154601373433097537768271465436138125349751362379531265721618290763979843189175645546891463564337028760172979623175472014556980908551254009966060491508542076267648056594342646266296670927012280839597616600114575551049081597713954365200009181166137217655062016242088841304983722206488458259973082616988188471032157837320810205456440482121471896118996671397450155599584752638175568610969207474182693796112419096776225033432193872144287415263429700652553466785020325477841919633633772241484821609278912151427280776358371275272358277599260582437872513307133446946421558363626586596726261625088073354166240204404957892838710839483411918308810156283639784364718005988487271597931808854951924416796753881745731375526428863202673328494319745767270767021271043486869636923105436017221532223648886635872053326913658505413804145942543965083352672739187155670892026953159733193346743109669215833949393993221425100246223741625163899572619484470641481408045758572148878364782212871293097489039239224254688386602831785873765170694550506283731568309511417403133201284748446920476248184208683998814270165592439232682009684199894877716416516377178255713603118955644787789569754152352532123695170155739417009357913598202364159378976140299247581972412509063161739756962311424965353932809224600093184212679663215506654313267311208984314842656627022266774276235238584865296300333915460451711888331831559864357972389722610860632878982839721503740188301419274572030033237703466763903155951603629199151778373785145449790800458057594181490174559769576162840383210398634958923542374988069346051605792821162934096701899692728361706977717152291704660412373037107038317349305162859998269004878790142099168380384881923617842660305412836580750535545807268395736606510056713973480527943768011576591701285555865913728704195987661482578207826458939820955688870672673956754948478620032747782604588081503029088764755388456967433017901357755074292340431320862539685072137470680942450398138122275360297163388227135395490822013598379212744441420752457886115620629232195271032548345470272890784246667279230504171032648892885266757154568549217729179106362592650634914964891447781196446234844219435671924112458848430290005150071584471419573879134944683589486073905546023992670299535000844034888659209459458998652110680484036664710759510755269502649269743002526054233641366657106905362630427221363297959116972090810229984982586565241586267791395508028814762837556895741436356862616409615673615813379164314944573406316164526376520600114028352879078455416809925482489818202777432036279196912276794522553405589670399066429556033807665085641865912032151065132253538038073905677943660393162484475696088922619738916393363989905190631326857826516239987636856522551509860250939621017848375644933033242539630255900342867117717498519305140473804878402901197322027391977750870281366232252766032917719557258590421953550835116281378073863917960007263142476861610155981182557962942023642940486396260117631702686457375538953821281039269359580216452301073471320498173792821722142582310202140268620844514514237314120166374480742238547316589796663018535737946523628678969066955239573654510700694009058826554970198497568759323524683024524066079028224702692365949960295972681232428396898113276258490758758982525377781775052669033474376947932813490257484170142213554397707941629292937895678167542406232132757992611279882954144256804378442209068876641612716017639232663186495065872438765756980081292769465413363007643929885409908428750665493326960474742303286275261780356470101995981136371174226603919098981155770306103751041218198884028129639961695985841860701252047132657419302465739827344174596284980964561597837330998305585897900684986613672736269251191425601069200446003845996889207687772250513805780660375122047802057603102499736844597705297260773055483467209726440594393461137233216317514067549511385122033943035221301712930577458478200770187478967564475229396717206158896695508622955119098613360813272983214072493327258502584422405250301065174810161435150880216892629355132334440668810654690842535812244273983067012824834475279876752104072617616275675614188860708674321928154359998980899063101818413794832756433255742945764372605863423927066717674898667377153886903029129747843636108676977848397970550965437875814261635899054775635022772563067864044459431957241334442244942529737377889701024974891583971397799495790065118244833739815326704751537030442312655087876968980907529911776283981689463985760894106582888553229564497332332548654303092798183145453419136274073961986020010543147974887551176544845312065462806124638279424286391824125586887523954352694861590192659169128490995012560523063529828065475451482938834618353293181343301845990451434331911317020205800441453863021759738839188117002867880412896096966873258013765849201105521186775542156220294666224948253481588299782747647038920779437338786689267759123015233300016240225499445036824049087265899813216600987993430169814921604989122199923794234860054902478552998068136899188912425978805230587229101080607441037532897319859892624618062958622721460330369086581955971957847754104907156618176745037180150883844904271168498700005545918135664763343662033391149193706299312033705257802860199650964184521320418878642520884479989008471547077801370552201110312413396237794009509092497445025339556825651899718430558713572298887210063117950498522798384360018459090063833040665805544185692989897509451603022695780658307887548191683331662746937481494508737142137651818067110105357113277442227812737354306536889586415745439279018555305805003929688120802920512212864626812914400040848673933149127623918469061306269758812757521831928383344060576160469322162581209685077497260337565566921894138080853344263902069688064770044385878616337428209308040420745667207067840184425733852041913219104540247009483989841808229767272508257828299760426501054195421823024364283274185660168797542438273215424017123738108041650850036642525432647503937927822893880798006605762253616343632240730706650171659895729092276656275050616316040165204582584444450357953579005614493706308171574836576422922028272819092178727652801375506919567907286583797547330773599942844371820706632653200503749661945222710750271934482771776362889209224640067008336543616856230235617898850739663531386896887472920453157590287261180059003095608840362842995061742544903315674928219381139030527645166932706695431693626432860868791261040726224081492478705818684576879934288543617765487563328999403175828940232385738204904187803304729374642844836386099346294385785736823264517891942349264299642485924225686231180932494564954437130270990369195659984180141356588721889979169660810349895097301912728429248409137485297390883098516958891044619802906006791834298938970954983121061478544018124679796918497739738202721051065143787002863750069186201493635333752534658116633246207731182182695911260072808826854765316884308891285123712542053598576438361486231093493381860835550950289202827708664928624227942469634200273360109929776444607661435732636212894328614945626158023907092603877666227594832979439777708531569624673568424521511285678798337548453072307344262242015128626387837787103123488382762860237040127977136780122675312348128709569245213201147727233003472970962392733252481837714792958069976613399578575550684724443032435542101483720707438281177104138914199167273155051451955093516384094564412245013725965578727218476615552060335330136558523840740065359240511156402266734641941955032549863432180892865964315499144505779758419479286453232545954690814282476463596682331606622790493403046981513906239318078088078515792963266689219514032577938242277687267057463056825221562258603017757208964014394982107574740805619489490791768176964523113271608513428845820612392533888161032536508423124362960153045584192923204549558658242866893409676792149911396102250963938993826445457837656978007524043301857095435110563598749607291124348531535288230415713944626470632189315232110809697953963013276413418830723015216944896121905912094686310758452532021596121681775885390592936820203859317310970650356794257987843742807158457933029315028405009377477749215366688396749194995447967365160127548876111523600469424326699483502096937968164856061304175315812939064714785954385439079048046064042025572418793178647352294970682191994392052939810131988005257610352184361175056520490334122153824072563283012761178196405220516307071472254677676934499637081461295355653626330309271112131328597659470052716726500331804217539815736682423187196038044015994157478155722053480353228467334733656573946497454067952325803637031613145026187231134349445442498742170397015600143804416041248497602833560590666268220324990931611914581234227331071234250611954644340103974292205368458262952840739417472580286740161842153273042153574434635569722549278116329449377133488345991631273903234127438180882246620442520448908265498926558228917090205651160833130037866733442857497350567088987645570427699150135098042390281466415497360214744998848551269671003595798600715907137868338250976703933496035811534186708485418195386377184288902860558992957722456796051886643319206162470717633828257138837058059367157780214441607877123721340500465479705647586123761854706879274673032793236693271064061823269032796823944578954044353704352303534368030299881997688055585532909864693600819524580681689900145347174436691114565963439443205307765715390372280229575251007910253041385383105416454545909483220106827005756966529528807659309231560736492545769916699113176508305699265402971245419440139842221319187384866225087908421174009790112946468081105186592347092735883456792883224155358633694282447175424366364328531688447691005905068592961940648535551079417362223602693350258230959052229568001722451707930667586083763082556111485560637755588826008945108644100140730820922069252443926832498935505835244010401437841864814656246683103825294089059481677527711177436574997410472352310748145559834920473187516531692403304400329830097066295902793114821605431548505675423162763936475510720777541918765789049052801831232713570523117680630481503424322187039720129732091966316249909114313932527555254164762105691379718896978891872924804981336393155617712671415741485905985434131053402498851605575833706751355131604623887433158420567854309186947834149457559499714375720189691859147279944807794113472032488119555841332620072859706565155211275510027704342589377136959652547591879275150023379560548765412703216127060037170513434718505159796385770441337259324362035533474144881961165247800041116938285900631143182668678966187858974692568812027331228551199186462418331782847585254872117815000045164901838037076678276891614140538256848770607925370057387937357009106068424480059577454992572478038362980612714030736287146207493791526678149862186821796078507594382986958132769374784896623578959085746373346419813575101630722675464263964937091929379321481615308918402304594930349693368242759600401620043237582188994966718308696417275704860953735408753164113690818570588818447310680081061145044560596767645600442519626185400338375387695054225322777127215614318353329815733015168478631458040989600894764145517676143243595803510755106678249595311312383295433111333853819880277114272018650197724748066194554549294934320983995437681824547378829432499619571017601096795067850069890750198979851458931795880440793894152318670827766805364908971605191598205555219531080714914495924171177427328595592958661588623135137060510481941941987623878717496182846682583370862700717526782253149302018564969407357429698458942446222131634871478626428239180358676079224143917088870582216531576693836620991960538654556328820682806593816879697151890588134123944679696537267411233972686007489299580079168048096134195304263482420616328891529582087557897587650992892124704454195056764522784008039484730182896492795808398483599675525712990194466685301731513776601868384087607197312898979160792266672850348157623300478332714104735886683449013977851449434041318198865690596968762742324315726056503746954926091621955845951014667293607813351933635054552164318456507351490884224204790516347173780308160348104578769498357309517925902227507181442378403161017857836536868271578037927401662550475608110207728875936892694049190354627117102246458793661947177150587367054994922334874630178941099746970934338245756230727891845955167168380834172834918653316710098247736764403014015991372820843279231663510636356071884623348244538193962204040059137570907462336884108462712774377550376676360987324602856525296021425337410653918227897582097862414940718708952946221087139122127261772978531222053888316072202775830354556723760273180131836724879824838742633104358530776484231088264544156676270445253581274391782191545906602727867592194541188972054060178110296563350816618205816540142879564388650915409189367185177639541995737663434248554247840214318270926445126740795119132567794814572296131787301320134154598670845572374093353319645104009082729765276174393040197746318411169154169722609219321292391874650501903004644380293414167818301409944135567780297842439251221493341344352408429389210722659441273585938882055652435171636678670619844683672844293471091205057828988395952345907708138355707654151580038000261997774455629335919904356201618850547337062836185809224245597170184202626616239855676336577812668177371475056297193700820551860188890694482480406543622293027305855867163979812044550011709236692827460092169215934647848126772174510091034583211043426908110946187151077664645432954916331679956240810664656230380741514579525708447414660750810839666717959756619948193924640284550494104229584065721891290089190185360727785953644805025710555145499771332441488847407212065125225040830868082532322591376798844255700543838760822869124294255259895789772895253721289663966249238830922988080668001051830192357015124868617299934358550778437961717638888018799880127658151701891095933333416512862774659951577752290693387842750982030604912513054577093455950745116858657300782088643809179532821456214175678278435638341033518208767994385512324680117429637092204289256630649747649593809269759626764394964035273280382919714005671419173899799051696065171092253685942900564871962081377181105350405973819235570966261937768809264666388580543502629059285146078419348781329705278851695183231634595816246511465162846268952942475203084637813672182676224477053805268197134057442052273117830892381489769316858821083502906629237393824797571693539227964627992389395960586392468526897947807969457799239831103684250738008606280436726600477763990109071264676153330178638456558464419486573459306169047799662433443424938411654828781939419722129005476107611421407612820419146711062544040245954046813191409167325862249659191851911754383536710460103144122384987761706509931298840149733990690381245731004744942171479900041970057087228887465863936865020658714633748143631231588563272171186636160358156969291391348886393227796947378081682185922065827900711265953808584633127907682814712533821684738312182575285737816774176152664352825570094764909019599444458999636099721824066272110901814188949306365211442765561555198115091652140472470669937062394570561755209745505957804548422413653320411580141043347819276405820167480501375798170312143194568702263939821161824349006871647400613294265076783158498396195699922473815315678718972238685747688707349957069563339644663930885619875278335567777143353216822129295056441386616687134154064188934017858741039524505925753959322694159391713937862481845507339208647881957308198517316326555322061098721497428715275184083223111720319000118286474827001817646120127588060784635029566158164155965215956787341934165561626631978923784491156415394583240957819100394215816151070456267003882777409772232828334455920389267958005310847805526346966030880689655005040300031572182673761894372774987775871797043144296525008082693682763235492783389517449265147809996859405636070509375013156600329349532371105812808543212384495411201891133618929010041189612951850455717673340252475604460625150682557387532832768447102356331387329608491926885793573771850917991264755974199106757826747216130573742579141601918730554783447708083843264973514383510115698677831901320959759509141047439708461854497680300292153813245945294619018695616828937477828089202635881431992784337561334479371139456520019297672355630164598730563101090484485412009140716758824188980143057330154030222933696244123105528176333395014339230267671759713763566021627754981180562437801936395684895727298255426659479396662729485765969142585178637028831071660944423200918817640547970684205932659046396455926588126733114116740788548198564974130783820902308817000411407906185421521243900520582053973216403640912202010213703342350319604460751596824214945866271705326680109558946782827949314908721595354969287395968529867944539410460995330454771707720800362039964447549701025588024315173709541068974690180261107922156890734674381948134249215605128916425945631121990839465569438559561945873299426316066539284476374683434421910119125953973432345735005304458018564890166111193178437380542474380832595426488777385248333927247726490825522338368800485323087381779366035679255246935830564668658072585719012435539456451633798510688193139360321461483467748644393628588018059187412157037879263187093258731854023523619706093217657728849535755997304934835649483316407185394307950690424043989085291482680860514201856934368891566314652023981755654254456610563363486252205429443089955210267127697278951110574547160901069502854001430127364059919480477610242863386090160140231442975093198295289888386492187740530194224772779096952261055643744008869454930590992755939978356347742767461531092583609543688898698920485992466513647470434331709022080977981127888786892042451306793314088161351467093194717736976457651550456207709240285247746894416052465596062214816263576745725656130538019425620656267933515506602949900970777659990386476475845410186063501070926738225667462604294855103747558079083647637185960488573426880868368798172869805254225053206281431581366740524798589086561719316501106516954283809039432464844727690093916135571760474699153494529109341160567348962223752248771689632018913577686028005755078019062844322818926735250756955475441439625519665289124132289072424538649054877441654308354385998476457003863934843705076697447247947614376098202595597934334165720454073127365356117700873088005873231914172896460846786161273551106807733508028396174495199772515043601763167527466164380718373993835025341142864362695553235662471577163391029197060163643774473895034635885599542343959206811396051824885227313173433442172004207331072511606041506365989122045477900217814700201109542469234626522005761512807897375485318163533469888472466294054427988041119199417848450070744640726013359437151477503701428454606013665020030844364897431982766938796564671221463976272666852438438302222474795848386757780730569091307550298346894307508121105064730591861590543797599015187993748447493335985331995714142367281185709328044451885783520235320213883807227201344329685868477030567027212702124319166763205070792778631008265342958122294489044623952807634132777886756971163070668049789991672937321433938437508515153065087922312911162201191512647247511517532463778905087854141960378758760669936914979831290092981032598324260448268775829222464997519639501849300470080767303188754478922842347786487835406035953770696690335326551377758878226137126759801043005251151633999704495861961280141023654887565729462510047650836015819367223351586284322282131473708892341645984083482160268165703867510717412051788218204987616733495264127513136740826809857727368379405864549576663589126075459693582867971866856330325421119098608966396554727560157180824416872216918910782166509951980414167127426298927028903128914529021533977735494039607752175393033044792194839266621563972510673987872528396722236474692200588937618287439638465620064476815851729867917036245999177203874857356774843976859498449583726385865740827328646717948446419187624364825952393740698620051649924312806529761317690041994079449661876950798446650561760257689478327678976313754576377861078244132647279051147054776806436204484603742167005869032249768266494415019545642248386313396599325945806621850405722249245470975268125899228726313800595618727247325487080589582878464398181303300305505977735834929978759371739425943484145105309786606418713847314492924592020061611216924464374542079294545055979463106119542323315599606484816091437312053029728171806410683924232667759790754086535636747916596273812606565896734268886377071580861422429810751689549359181784189175845457620310697023204183616865471755815133714272788650491995724753007682431479813852167009611230811926748571723795342310126276424092798952969860785241239418541241912162294570501059646513409363732200450248245790065799190976435746910602931828861414194764842282491476782455738476264842363297469441802614956783820024896786381425179302613810553630252391387243018116778503574101086611763409665584539049084725234130923332566599493560454276199465598082480680222702237018174428880437414282474252751964661352351759799173969223794711723102837164335350226416557247718233193644042544844689311228992886766321763213515207699161518230941115267208241267701409420090999742362775674806260527344286349970354887946096956037684950562436561945714996105647084162594846925250198541205812818840162482455236836786439824418753390035305495127579259155181699178638444610251630349434803382496531453820521463042698782100046733586080990258181874188058440730047735850185822396718032251123369779789289542916419188156700713144526854301416355678472684465549789719644287280325611701300544711330349223901673656661753915420311056050453159298899972103253252088819970748761062703653239422744272273308055700635021123310107765123597082190001496847257022041226611123491231033794414547323401186873381902526474438182318389937159505674375400612419112615368813616654397609190003394083438989252288533331959586630853151615710631721644266773596831189778607110559861015395413468810513690607944442979852217720803962953856017537639468349769291429151688901908572284090009110866934163896284624558283674973121171620512049090898489306437085086721170064855443522779814526282749315421710553469792148872864991546225466427455672714043891188827878589747488022046118537690954290194248882290329415697949326570304394519766229923005820917276246914782068089119498104211423412140599441253776500542858972299048143364921638643306224782840413908625633481156026639905190280051336610134458448558806952275044422812803456374776202135140320233947616259314297188982770156023343612937413750680145467789681468896556798697429695095703534132531587879335379910774680674132515532011263139766074152087353770981710506708966451998300278903278109148598200006951144776077299577294541290597082815582305591998578632931906969672347550129850939654303698669080157665694518094347956233352711134797543091784816360276821201831591891910566793014540165233608303872013907720346777317572104100128414188950505665486240008114079750962620248008018383041186056937976288894471316926949427947734698461752717223739309958909533568997086841874514037191295049526763438841779799135248027559111636244175761143630278238818687285441993264459603908051297204288904740408891474807159911271678468829581820893636340161616896974410798440039536259152039631495490031750486894609564471828757334770683710584228280246870731963038553581187200189361919196457320705491115335575352701034615718955053168172711147498441910828840084310439920933999341350646654663889991235474850906225333507524725391094466089772270050625791907515221901908722579070050647795596285633827666743903871938769480732661627669139315563307597663374979480753988515568219448572205616206113522626693037133885160594779013738564614667221666716720812779374501839047519372389995281306718459736412203229030659820255684718520729299279919062493103619955872854728217658160855049798097997663549412349795210971149004417372614241078924599230956114300252068222479550699869315078004606894840768558526705963648693888881810345218015849205602730466346787766165688369435186747236382034066247571294378523262305348788280451939723964752197653572683526388080754174349245840081303933958214530413870114857117740406026143780790981796619903072046569421629936606901425776068032414355988710517993179871685628730854620354379642140795276010605163292060686273488653171811797781929596278418179035369104274635761333309701089205418820714546763189359171115968846308099181675700435797189227231351234513146802234945113598675218747923598932601218699943549156608476068703013422618840104909045812796207227086245050863979578343621116367039137422740730459675632634124650090487209707792711588685694128708154066307618235568224166968196970342720930676250901379212468870521371235160673390401364462202174649210180590026089725482954518820781274257709907851180994492375756580571880986377456851868800291762390459401954766752499996906251965496549482450372670073386767013244386968840016969204066269639187573007782977964673510340739068948738309558892538882338037511198484958914479617206223321316258269194041389987437093736538244407306049451551284698215103568040262359036559029036556256761947528897789463821571105007717607670307359662560845570835526236851306295491951095771450764254430711355934316760161119893514657959469241807337405997109606475836609560599362185242064532496144470460464454516451541402237531413832142697124866234156220321442620386526028569303471976523753939474854982727667945494249302354681147626029451171839523279460856309068083097405778495708209835963411270622125522890246028155309182626249395145687108991583800463757148716920693895693086345717238478842215052729582472465772215362626384833133551550860648386438985586286686830866566827566202119419434097488349169743729936097185245014146697777166133328443950322713577290167788714853176270385811159675962614267507447866093062773234662845373294734196511714192593649583973679055431142154199498762432286257305873517816473984598755170565567108242002073292114442924295041743757517155678296932972800645389346016840857131035754164005622554735236236776563590365813418286584992394413721270590429435307699172051449155075069565326072681854043109063425231181719860039630951186356849108426876943775389423577445116358066060611633091045527782308529518609602349369548543490360663182594818504730905744029152221562195786658837280647483241871807348301307901897990980862445121331607800265752258931567957571306439342936030723544473121014139349525908495654756872140826718201533754921417205634313649121832089462115525621814062292445544057332139178396356808694510523445790675433812745748751652009700960403072629616229487177632842034573569498755770566459496400339515527620467782844579394040488486758671218221774184950272199335386939886150219127856306877670322677242098877841373168750893348295807176896140152213270571003445734028191101623873285892315185218744808545055667045452349619069167510744478540170006876892502413688736752425923723135936157278782278845269431828371609437678395808917703360635266698866597708153516421607893591251722282557458290037500863919441616957578373160129085643394994892791130899970664720294901622545471805388697410619269757251025679360272424604095200544434188042325598365404771757288748271722054047916571078255698549162339550727828274203347270638544210313715891877211950742574739788944376270471204336720264050436678813108158019011901627011642606186402629399947381787065049107963668301982670240406949588960736326949703122136280680052572886657332653529291961961198981663289438085255580584465449491223566044874665110320624201060096814422880208601247654388281060293970752007606006317720903658858165006574698717018520432733920776647736835465107662626455643341104126865128965200911772952602279820968660396782436007396531069325676457605854586129733823890920875648697789364713477436770230112264559166104611392809327974949957001752435588522556321417229196071758075792643127784392460658285232144847916094988646555637706051126552300024185296070466121230590488848578954381866117293632604454491165098675303984210644783478634727266263843139380274155448847390883368163448865456387419950536788720097930338095827843038577910665409181900380501150480055431943377785380897738884368849879582900211714983737367170638694639450566456645922873197521921524976214024900349073392416123723376953180325250453792362098227939382988897199991171009197310570456708740291111555637699703079950167959669593351676709511616084955836321628947514625782200984730160907695374357356571982856312458376470982850674205257746216006616979465585735339660472583989960202914611285691532582955370854449682319737702044374896972494301916111378796195706216707823062233277760165257013849614750811512727411892702692431541719261675962621497113443042202299940306816233348192536168183598997312716977108747204080115490003113225927835048821456890150320827426887182310767277627913693654620117890566344111878370176378762499499481835787850586922475334990312053616152982090848532633818827321904405511365644293637186664401673521056027077629897411890571723702537901565696029884320290134574512880838402778976575408662046516694175871512709612605884622197082386284177386223930929437945493537947962102784268408188972435645135655706655412997646545959894670338193123793016056342473081798113620508921175689052101835274202616147825954952051349272096755115611239031697519947672769830581645273035307411762169075939001834253559841533447112301007140122493363502522863043267478638806216228965881345362557502818999801913525670737731255597714169077468747332424295704610077784923407775654482068952312815846897699316050031102643857772394124261694104658736114732545833512971376990035083563537614086052939637988307200864417111627630389558753514671873880991033166473866448730331330464596428417879467023742353280435618397436229140700134623777272157511357164878850944425834912139851503436925924632100953942420319767149240093036768912732618969162264963935998650221461749256543070410491251898779157927031025114855183092604028798792760366604319601567783322496699734748776436160923880514230622989534915966071436863415085957192409390212135437310998753141836309607408245522603865605705287713130661755272684607447016087006896408094709497239195724012978133409388346105949981346731286262388529820767459435790744626386573152195732720562160201640533441102764384740473315861258302473341335393651248351145046274442086054653568808535674888660324521552905756165058937815467735031493695904707351289579381531993298977445600619810809387517467434776289033526035033305686823062698818771008535783257654481526917780421770910397066163303460512473256681237420519473869359762725922056412198394285369995474088881216251933970251720554701116015733586840113549487675250228195976723708613784853379115428775613025353333725350535593547077880914555063004835898721191005765422323385723740088853386771724951204297453307328795980842691031724788861086219096627363347085797474681530673801159023053972441017810931462208187854317204747196155068222545286771412021498460183531614721136382221462471263512821176205703043664609150303976928694681291024208043348147599419151515018911726720773445781228489465527137457600317657948895529887827913409412696629817118063679790574099155293845923480339042833348162456302781738899900637888363376372449974037306099470299807847564024462737007684493323370679458364390272857825429289999369820837827465112183468722471620823630193936990824261829076027612564820074667973532365956718041508841967890243827405812435183785861126646702261931170259938051264167109774212292686587776671206415162017208068880013983759656018622307948752103765655901654411348937495110322346755134801452325448231722044186769877660855487144337170704590504405885578623070267198934063460690892442144678833795848204063836841373886412675846348575694550038889203292815990170564929772021057873880410256910647118117706249559739241641307796289496336826727942051919988881221140331946531923480337407495188742124913307061409732500117453327739449852170582271095948228758599307584884454238732802913273567778825376451991253670059791869639886703889013045721184358056548857886270810373058916291891802266669177910026747190803196876838398745047335888631308105868448961255439685208396249704649887371696558964916163539513002410150965624173700265183341099653704069183634685229192571128886442472094154900409448060024105525501002158096611406278395402117149147136790059029533304802743351057800859270516176278111429321499129075216574779557565058263409699504747851091182349470183028037148772982387440062166104632310462525501002623199157254632977289520141510135932522934581409508662474694525024883246904845072695013710311228448932727445179205626911218504253630227183498248854320779822157818810806173212266326120365384320901916830164615037478629212986139028607792387582218341158197403461930747511998536626191189628671734950790221961644854306284203236405613824648363428497457400363219755939487179504196381865149353014648349973163617496897374141899511266707148985095297141280323078402050625454511648268998236334446342696368288030227513249798315566148662675614667114261024596796229643601329978745359959930223283635386318118625342420446820622665159625594411032687454286832927527608972705456144488605158165432958893285513749861660836248604253862107859523694831999663300188418873106030645775426852725635318675276327395068805488110485404590598231211184278515918884745280075092109767483068613907451258581725503900826750587718993867281726985545166221711087855584999305368425457804006653877408097079502124726236654173495346450566892973316992727882089526943305001359154407304988681183057063423631166135114785877479477583255523428505990901416034965738059805453148665129117581270713614903182273551711688306707712025843773882146835400958032936976865792840330882148000485277221061683383505885541951349127902502988821879428229143746067305568444286017970096797179800724192909634636596508349426024231157870151669477751465945511589831866954748945773803772720469054286255839790801807247721642695443231461563143316322557091372165919906317032926651134964191536878705857298257652500877383569762045474034039292272699081527204193293599176800845794851195871875644541082445761103900251280486164783949765640969037008790513340521566530151705560116140240162044547330596991014393611838267295706558090870263779178544661749034559247668804282143305812648324790393535629029602788003786861598312400885532632914278002359226495550371280851549170226428352827685008716930987259294320426676640208718486062271879755762817555115896900920220003327526295719627080041178231907016896708191195896080214015512533984942003024221007068544183734423539229573174657143428861237252752480371592630296677162901425293243981711954685660171705787507616821757491693074137954890302640275243879588970191015730214029569966657607358376311310823288021138455969846443385280556984079413781735168053762510483837879566670605019970419357950518038748070189827941956274572175662794191912296083147777717153577959106167484642173909208259167613335229899954252740645496181973229431718209398813952672928191054883833951939813371775196655950979044587377245395945499303744237401913333736213519578362107042547058939634235785001706342643043024104700155739156548488274705642261296877131530553262934811093076833204889805531271483538702438055005580875775816213990537668926410912304568270257971745703061964867995217584956356400185891220401972147567177650465202701117115449088962002635979195007969389973003937344539697397210799066456527977157729206490814824398185209417678818276856466101323714321614477949713638803076608626127763025777883250883407156116384618451184242040867160464770138089746177344402213377388113244728458639119473693865808929213208478099509066621359720276082241940122036838611339917211853747327049758736157533517848793413312052457195856766897321795141219547090562402691345528958558933280711959806037498259500601503293268049035588588400270227224126822874333917440978760823763014992752344023037295661730878340128925958839671425052505937408814095937396796675446163773075354864765034242370927383222374439276071894703164662001617606225569647317455578780159748676449200053048419517124711218870113227150931410148799663080451798949322450897783058532734614389696244301528175172230366039553010236020936063314542210747924959498245447685846769024545130023387637418007782798901331663903699362930655876887024584804957972825322424369922484541610597474979708955333174092256483537679708383504428995055433276000997872908051957358409589731848330586040062519903147173418047916942648768827345576676889252999494837105705412758169059338763287583780969022283573479826465461728481923476384784006890668264368439225165378694872760514871963794915947105066571553985786597081456462065696780480050689731241451649879001720477870646256209822173399374539422328227727267771099518194299923708101335399092605115770512066406340251750939601405737357485586962306844157036234631680145888714862867517828775688600984293589731201311703822560320314735811256621404277009147791677385226742141081748564063823400786109283727238840096024879325500786054931848845171845433509932500174014430493425885908622271378926101992624092908803706543096719114199089205080359010295844572984866466492931908050015072150239720840938924602006382777594968462146123231032979016113355082522756519822080090268098820860898845809880846196714606947701639176479068026523200407106501288903047997241913000542914586666367206164023558343370204940380765423883189334809750632771343168896835576468889073013426521500123139751282817179756802899121265799243413272350920924883516947283443899218777437206120053001587295735435566237890798167753587485623665536270572826167425200087116306401744041426024774870070636100266527537129806750382684698923039462413072725554095778000761005956678112654818867327173228642802829561961442857112991258464218248208665351991222575911050227102846858041900519954061106074599094863069550616000369747138475800985191439280362578633384914833382317486120800253522614236932722819895338675991069087532923889294908101307474094658972062580587805764070472406271887033161844488868674914502788720367886968812642267572975676536206852591595201059362457486548046838888907542364148202170587444214982295427277476781952889442679117404998353631157389383840972793539516642929557269795147607354831373551202319906768830220282242370175132116476468694090907303495056805245475598968343784210234027997504100218537248308395958822710874038403639747861837464327904442269065081088799322832542882807125723348985030128669004334850141289161391168431141548374215199265437679773178186631277739181560560457260961044970128234208343352247293124334653434186990670960838905854496125091141707439003835044120923906441106544513391861522472185437420946142441452425027883605478908561239528875111578666098895895820671205179926495922103871833396235958232642773443483544863639510807375912709564629149982938020606067416757812784543688193458145212337021287122565296874625708929587258951431436123314126677820384686956343154099437931204958174675529183369511240535359280704387768390502652649957949204136231575609097703579381361627367973576213787912965799209060834786002888255336676787751957668368450590945092709909720615726637066478261803670772448401188921654506775634517107716605479358407849804332672747358930939252495207945675026771073409117869719833721059496150962955982949224199573236468219978789166259387414593429813174463994564064500431363345976441348942878099266724231526556446793981973057261951955195375767165401564326117848410970081935351231762062258645701134581162793413865662771461545652468961081368648258592625576119839049168462492409957451308689091609712570977570908385660996604428771775001565187171286169433028923860678222309221195895382098637883915938639488474417989424598741074817163328689453316760222624157110344773729321483710941794774556510222249382855684970768289496958683890782632901574602436003822921222579013230602745491677535716761174536503905649613922029814252823698248342861431684084525333132103960925484977115327774273592277174410719915449163724451193551495038399737939099827782327779565262691577476228450425765053380426104108357957590864350456468819680071390030300515960898775190741318881496922944089028503000153498195337364090151921932858541669050681719777562058813355381498059884776765925335893490846656202854273177805463956144509126590978829361197738335071797124126442715424778750504843008794669969697184529067573857566360088982372423208747967803509185745645543771861701729573033812024065233223228696004369652922916680616012262691916233574455033410257003712038496890714733065947222318415401334726738606588571179146303234324361215948392425628264208618423311653030027685362731151036005068480363452316001471047114648701813647745466313347965874551468857503366302545899950025375998662226615538481636179900529110281677159670957141991191684544067555319479633983464781834585628956926604964093392647317594883687051504653751708787618748965591202048618366055517892306394563169361618078049646184285520731361366612807439290841652181289710428607252434153417626053400844515296475425537204432026998508530170700605810968879098622087834401027977296305162169119419771108724661437313690541974851113141244166538540936499787411811764032689713047951435772364850078299164842524395751402020806310600714303136546134776619060842355118481434963374948294951511004377587261396889422244685827349173132920550098433641844020510823901657716501051423985919784571273012494840982338990060416502768804290807962597419487742864041744588155492397099528772196906547553993985356788454399194497160393469705922266291206918033728123931406522671630320087086319420216164903423123581145976432385961263473459319098085182224294980683763845175690589028806886406790675890036171468754524494609060789544965854310402139758279347359945336936710509035504106454766071904583262958190002255197182726761520205826191139953606557421201995996633299436647222521629405168746112754136756473270090424722976018814218360030386748408429197897080097822459553015805914410238141895155506646482809586270331530369790463423592849393741384914786402101424903359610952621205564487753901502078984095192283358208182536216256809803368309995426949464070872588906885465248305621996261196337748610316157389340096014930691277517550153718531381419754876816789872691857938574721730796065177662758310123410840652558565691256980767611473845352003617180082833973642932664128580691911328836588074865224002795368738100625491833743235855673438449812596991974281487681068105641278865509594355791570890457804883986499353464379413777732141465732432839354102047028620518818100836443397508934469530206645483920545713451108050403099900560697438157359638532538837731775891119466388196782979762917217664817302774305390874598518018550227774361256766829133828178815076818570584822592819276582719033041878349724784260982331543080546223319155781958382488531865864020863947339616733058117894168330290066928489312496635834246219000423322716974820141831369446907137884465202747493189555610069136043848486187915977093324701315806137936594423477550188722547226964127174761728829230226264288768303868951169587162204963086980788883521387635483162121947761045633786215144240751659110309193778816616197941104921218580167286345069248664331113428386797447862205899649237759243034731813771840899958066694955849346047912272860019737620461870480849700638595528671963448296853846967089111929117463389419172321015983179065612357598261980281976318006556146395936139885116763284475427217469785194404125299373391902111766849766210390206694462583016510311178466242038976602126362933419590513399493087745504827121210717281156192833164793715153661203813520919436522332719709470771915212014687382419145929802595215864747943819579428330112503178635920100496227372104023334446663322430131357334564093669901933471779638841829311780373569783513709808136150451288682446985224098411579170583300575626210055793181324541365037014355283911278200304561280479707711544538179797868894118922748785657146587959588090356997855109561895727827943200620424794616633818109501918843520408728740290872326631267167379303086208766359032412688008560335437922756997932000010952227926743033023415222130436184751132749882725805492766924076262296670525361330092361433704817585764160130875271044144751239879115734040294908862745868833706906258732069709360718961514911870616669230926688497659278378473114565654396429416590756752023196611956424531307043560975189702354787915098716646581815511906623362154477041486176263283868500873836198854534631777644319800118481435961078195344744811111609933178056818848407590434958399007856616793345101485105698527970107802358816703938637199111453476567649570272736988992255628799545921146609041446466042619149337071053226237331633128531774246596768199470781566043476913997050495452943449864888464033524109493320022573333571907290668390649668227418622968114109415034233520541991175888507199568282655223952443119382076790930171928533039372849436201309309649490034567933525854219307543500418868379274830620004088738381436022303129087136266129959114810278100116692144657523191589199941155027600571473251019257177505813642033733470012262702470958608750513893787236361506741575055089168458066304995671942456992453444589742650987860521561793749513942281465658179746220714725042064569327713100385584800995575170229985199995188323509469673187815274281414500950540744975012972786124409679498304540194512309103724019065024232250794866202405152270837646062974793642481653435160834535020131530186917094074221380934543009981995772433081351427003645886121849233904520725760737173455356363224499535622631641643338111874212189529156057214091530635909088719342272831020806529438230632781125978970287864803157138749286288307701036638259099325231104805623726837333008558256131628659823789271917334528188134488235882609780589250086977156003306727438836027519904031158350221338919131229628005782458029756582576802773903900274470837147663036659068719946766027494580303919197109975904275687416594804248581447307748784485208419406777477155594539273850591949158063235392029171888954633356363623260793068532473379197063880744801668769071861173062217817548058291090675853673079988359088345830972707645383562471575188468613639598214924800973808153312410641219779412824620077890553875316254501872517137832972024656981747992162618510935038873611583688327177984999231751766640733750177535350977033907527442326976856191980904773735959266137544851633637097043212332698406460029276652904466372118328605754463651688447344496232844906517251998655369404726086008106087922620156789625647122611964506175210278415536292609012967724605705890476678288613251732186555921147961593559203848234468950196369267473128016394669608875230320267416950332389321135570458915319177527800494132191467878894721442291838782731523039451200617224798893002018004847722747913014645760993557054190083935529921875860102489763891724635378321006465721988750790580300998016338146253530203758157438994586958854015806683005302730073175387518782253579903727673113691483068581540863146824727266186452546293782348784650816986818769887780422279364256238532652078076099047454412216601150368130052864077047966539659018446063491106451550691892968460850264220435070841895128882873869337969027501543803871168933441977832126539713093781820480133007038824663508087294983235847912890413633358576901125581409204184019483586392938302822472793249053069882559650119785582865666780594470281217852823753261997531534634005716585273677495602646281580332115172426529899612605680865717371737057780913194934421680537530267301156109779754584909120011341517398977518865599709589193282156000940603313906475599091992557119303028214451660608190556797284167248428858921457548405801437785024226904575026668015208774675538858612338973881341844543247991040808560403628468971727572757699000515941838444916998703889128099448807801471768201153019505259193457766267062112492808418578510868260662063135732693806185297288851535461798810430302339683373915848264453174094023286674790063738686432056490618942689493052907901289237407553186539133660608759360511631353474184994832340108103827899056269451627970772139862929340995008572851474158539846952687497946818741428712493738044764067790770067386838977172209754447739889825091275977645724241571513457303974391312030992920912093569055111958849565477523828744874958966546366134468061274218655824995156620758138531999825229965484204359590266708264411149405812374073004785234693811958380942273595078500065588782892796892051429484045548084718687476593166836770044025360095995329222240181214442841279082981807947473206452154769693499734146424644993650571976174430070295138652357864197451799511511376167099194180081438852026826186169672285059616008551622845468237794013511144675553321999436896757239665100777520450497577072605804477987609270029830129307101499399033194107535825940332821412721482619531293077397178022078419607909018623878600943159890803574323010513024653812904767199104726375357135619868656835366540796969379713793245983914764222957888860317321631329947303841503984373296905819607490366537840195524487113151541400246931458203904631406320804650010916990926458724239892749548206683963661271533074689969059788198860770301910493362494392757052797257529812883811090791448651822801224186183069559536405852172661765739893237711693972623780452028984781213568920522085669329566353210008576633074403001702292771839695171756069059496040496482688951360194539760481975586797689119074044327797929753076258289799719672210519858091392597448184617914717710549022271006483703299154674693122836872482688940822009620498608451431226951495670936294685095649892268383452333474705751201441543343987193109760723669011788794299605561427321745927150912861999877993665960479918995117502368462169587708327729816297114680002937062163578466609618795705545624238980013050162033653192116466518984083638720813432836598486252764664419192314956341206279017161050861411679063241531217132580619701340723161351022332482774159709997268804612904697297486894838356867616823116020633196953894104048345517648334469559284968347454613640626112839246380046688890379154891761119080336929424934010458327972440577215105305708142535763577156553598676501403747251063091755558830260904089470631195400690451587652085023504838315307589205876654181093166001641380300843043548374226832477145610064671150631059151377009856795585394061305169664756062600475053066166654303870509138868435936519262758731320587353969374220216612769595511888588373601493605691627208551871548880144203152656839336485278584325756668296776295626381655582531636630218797554637803726652825848785117054824639920728477041104115003123584945882913187016524889408721915189784523316058815965072639755639947664254797052966120673278146891823197588818809219378988855986474520045366620381862135136844599052574513997065952699143946183571301358048773721794662545827662016965012875735239138312195129675839018969941844444449756129953939555362761011257972985787742422204817966759006002518842833200362241944888529509758974609518971189046331087620997748469855224450558294138245876129998149934819944746037453144513587894202648489321721377984744886508976780781959569689361812444979009181521060021642968650251473961923907869201138542703232950916179790521136995614756101416015489974647563450725370277515867234842271525343469828325372753621979253419283759301386026640119657224130377344465765901677811665879068917963954363488679090407267008484009365051992302862642070057316833957824847357025169378370092524633771350809331724824765836694744923653922818062407448903879399756787522028923278850151605724648745032666490790548015817459944148588887268604357783220663723155045978034322958249786612589210496990264458863454040650562184123375242096194332615284710912134364205986366592448260986330380366040614257486579165933595500223259804042710570263233670661090788566674878928384708722876388339378266040118630786115390568188040593142889648734524310879871005666626552867592597533115907920981544018217438957507059447452743011846249577747173427051347251944042957160344196067021474811348763152734366408268146093721836951529325744565387061549905226062603949185893112101850249227425417513810440218107762873519354309235325145525979381274422942822192236593099098336571390719448465775125006727370938537173572113681427248847631340189925169803976627414602191510834231309679091861690441961913409870780879026723070289520937392883824731597330483753340773657200412725790563461826791168881858574107433286173784326317399340905795189461479745526667147847775040986188796833871611515203781970007581075423098959660785031030685385210212072144906339404514259233790334605620664202453879535815723253162329352943563604547012623262330869365767494987307432229097012749359779818095719514983634826878974501422333714748273613810641271827273257789474706365622445694868102888519233274200919703782872596239513340248676361031779209807070153713377699734902916256018042516228317660505745233255615585002278489376831984604599752365896284352592384525137362231292591210987624916792951214320252653958922621914112604268299396511490212468694285723279015307713759847026187815642626885190747314155894031582316999221050847911521335026685193199755795336081072458356726196275700112124651646311657659908907685311215935597712585592435302586945600039203119922122591427869733770726785608900214601736661614189523895669471676539124634220143502972351315542116941721219568798157912693842916972107230094619094353049212802979816029678124843601672127248800767228629684919913299487829463979452722578324263029792190037263194041028837753332595044160377003554974742102216556347532473257881160225852397621342369488030452622136163124850999654395892831403556183197978612867712668109533431773064688200898089932554377217433329399106591836347844685152659886246922564103623905586917509241327712533688089428448930233319945637657181937013746988927487552468150831335665330025025986959534456180748999325248341320800344096268143855985648261263423617107619055657468851222279191672658817753387507425101114239675547407054246953197059534356749315609961266472412861555769929710651160658709280462256298692506361867235799543250924455561136385044454440946307747098437289037655525964038994497304832929015401552965545366280230319613663744506672150850026530522476728078542714177717195518208876992626671852839848866238635274825761484755936477690870631489211077611150256575718089625838333230780698709765429399362205194333546313051285904545110237041198844160970052792500450050918309446076772320126492541744785027392380867999403286015522456943381437919250120081669520348276708958083450413898397857407863408219466798843572015002143347949792759103528737549808688919578117191213342918712944019313904405871806915386871676301604034931420539703687887938853023080745724403763341016090662238826644341114785288538644070391912186137858133408668350018945704303356838762674665528847379282155351452365009926573354127181161058728893313952554644830213912247163729893868098889888269650572845639225065464462656340492528364556361272062454791922845310293311166869914480076258003151142617287891404873767837457742948247859529919372783643100991208596595813975575739241767569975572404618839402750051193197669845819554233258135504818567088183200302102510483442464767267122200650623189830372883212828401814441910830031242942619998022972631873941451943482473658659930392317439309866330905268182332266715310686886175304188084194628267609105629381439102757450905038259046241753387632563102850461612881722699528096687228324494181827010546769139534550771364536006618563659540908216911363727513204761237600972157794824223213945734342829269539850042408370923218788271603791168169517391303838019751270825646323104212876507659245658349832727001438423565024541644007766054678871825609921596388751284528890452084249324098815985965955222752352728818668035970946629709514514453454446970725047974868720125811239463209719065589473330892264537870372110498915158974945027201374528023515238868581795996855966404644396425507514734782672699783243355774271840459800577426753658320552144975136114436176393799413627837645335364200890245557519934878968521755424621921996065274819842369381730348973878833863357605340605006856762547872846652319572523702809497087093323344463213274594736133294266408124765848247884091933460494819335585485766459404662487278325360006208867113105419604067442531587391384015379581611331565161407749177220504455659839624327403148994881757559555829314308091255332446720051772893970271209523660033605156465867313634296962835313003923495050642672385097039525374173313822388312422662517561260102773478551966896698249957677101183758362062115408994007849568095302160976554781783991969164806766236969415905543746263404109224540151924564253012844074298173198734976245353860284291018102674407381763336490775294359910926943227939390636383451853887139220805689553804793566684038296287459873823764754616906216036832050188115776840556408267318282225223352211639441171658090606761632461533685158796993115456443282899023882752915750623847882805965330093748700556031899766467650948542051604215316482394183184679905009904582289245195442100268065008499840984338126410979868410200499661371630179604214135308204969869388791656284356036665370822839996200866719541287375031168677076071759506462973401430434153988995480864812925656398695306885815867100910633408292991263053653923538809078842084498225399680647243024225847408190061266132834688225142652093907213431392723900377592097151363448072571355916455187206125261864762972067551349722838806509879726649436492797885280084224186519845035673296139836771545121245269268594166167168603618304245548082165456861519346273668779806141353226411027646337980180926874441233573733397057521079991455543559274922109314190771833776509643436727699668097261306106508268017905637013105344558398542616559481354002768002523456961530528484968021495062394534241706759099451729023168072253755122310943257932921921033117107043778858097231122639182075423480174989002948749239131458472332130413779273536404914114805634245379250281853616740825414390841088279512862183535608056907178521536115470562232795669751586038816374225219106142110626701935256228355620059540846670370639717248704232147507013154732928855003921811948488181006536365707372898279147586462738679627171636419306469526559921181365691578962183450523227726402107727297495689760270488939243030669400611994607710166502779392074194664601837818748370404012981978056843320071811901845337069736788202435622277688590988008440080696007125025058642877982306681596701169966594476374238239698670685953743250614353542507219457419654501890127051900749618011115212782643242739318133589925773854626535875873843887793079898595089386021503855563251929963570761518924922773345824148223000683631434692927409121034783099480557374034656016990923061396210971608745020195191669141092805248264990049783651102176964293542596327167233138286516051593722294853426167861990741620955877078728432814587250490909113633757580859149555297232608627592279506381917349611336005254474761320150744663144010491804196448399776509058610968763127356052766765079806072024698140119197479574881214718677809142629390113070563786990163082632460049871510410925943703913775714095611115036910084094025227387221869471021319672652716633198321993502234816883266161314065646584859762362590736390883630599081882710157441498588207824410749102529551314023923875040637008279735011080392435223463614279195727597143491127858656928868637737590618667569388720981020894325992012436203535038367696449027909767791665133788591686247457382386945485276370866041732937842711769113917981576169480650516451027275088968437353756237257057373138099462994951066178909203580763644793780474347856841884376295686901886640306387585725019698768867042170926198622587765361694361464372430488498297184695621693905010719045236927256063036457055891293220231458189107945265990358622696612919179148696111117101700450570400372997722352395811113477746813176618920367501728708472208007860552506039809292095170917381793294587552412572140073329216045064449255486301207989068287348715644421983713412614245202457562213233607865724857574329103250070109847658163456876889832516250283971434068743256573315809685021332948928286417045455769902941369488786274216611181482069694665689756579348231398513919915640525964348027014961583053103389946409302832808823129509263412738623872505101708286602649570446334188385933126744726556759775172052485824365936920843391764540747066855261828303067306244404955818507687051094426462703141931294240936594727669174273936625867109389246727690777444216889324638682626176615855224416461475720833034803559239441273579474413801112844429551612462600864441975229578481082019441337810806459245384711774686208468802664360577101525967801008959816848013521599854601355895368630128932612017410017767633078514598387973526390532849271562774261712532049262569118260566766977724263735192188676462377845223704755424479595249299788377662738768398254912752513294052541582520687586084400483710346153718616054821648916378119491315077021789818887713047346533232473670071706082169302178087185817930269581879674890476481705745481879439299694885023921794115786695202280790017462175407945620114251440556682098467403128899556548646435458707107497027788937129526700800880924039503657475038233810974124155142793952166967066618343679169680977027985786348423393360467124434700091756430634136456010562889145183959476541082995952416197397381101670128704689446068043590760067186611215923473721382601638941559673970770878670772659871705313766879825197237126406258655558154582234513176125873868502347248387068354002291965493926427539762614198951914217963737597944206578158859731087450004798548773968944384096654719272094050244474799235972560625149758661902152211278300608273168607188450349118446512237307183304969531477590404461393376876748783346015596846164665733564719257247849012492028332074260673724946540488335732793669745458281905261485579436611800739282930931568290051660082226488111193823353524974924757529648975245906348305708852012825589478883269704121387052442835442986639850250428309058477934918336226590461893526056208198517990470434573256010045685273811058936911795595974635640237915022450570114302656265162077891892309271176167549338594256294071391385471267070873141495317388997949229742633203453549188210757012419446840242364310566413090877048649112188269517706139411316170283056165885660053036459933540391613652959404053553597432085339386149088424938523566074771751845501928457121954214951608189549336511630557670319596205033237567755740826560188476187078299725182921957053288946469221917033748702741594093033432019589356031972861321273414284884718684375570466465584048273532569050952131180032145011343120610226648925851825987953067553232925588824642603876756085551079985115240191280782330185494688378048918029812701122079140265807983507006990173248844520892054358841003652208533652726364968831234240647398039727412421570004150653215923463927877707033027199513181515303199909521373537400078212744360706153640057726663297347299794858228736912622174475483901443300579009302028484027783078441316181561809855439454222157245285704246843766899286753406791834695293162396630268205423954954282788489379604459237904865090852519947970805519893053227378502360363431803025750846708444276105952143477705735235396876234393681601921894755662564789081566960512002770250987559136434054710494378587724967094335706928901680850022901991571525900615510235174294486549389699552325435665046237325168372434734299610384647346097159418317164955669815419017636484762395833961404299813069564418996250922087774657269091113105851507656284476837164429475085362475787170863609838006707198862152403462738228479793941548759805687449885354854069731603725710188816927731738998824483897793254019589199591223920527836553045607266782824818092813395348267671832434405400821801974615205794205813350068090995951855225843940870777734042248931175802113982376605867969294087894416085639953056740009545076681341101379444719375022095822706720894123629418186170871983587686722981810902662472644022527588420961494843964592869867789669351469434085488181776069061463257539891106408759731802876317658766383255416076489984517093485662748053927465072895838417860920612834533624583826674352007180791141679739414670643091275046799338424671474406060528345058256777568630689044327120170513730649324202326429279053803007501444639986582734733172033215529665557893101407572118563512640829116423684891487075144968414817850586844679737044636469876854225558371133991455009779609552850463326969318406683271931712263040731343866217693530390526745862637765116055788767755196910720655622734833333995128813187791169344275842439823268446891096836348597288451842322589869045366524546971717349789650753074266612358117580305037329607176976085799903565217916723183251469375833287291865674895762513048161293834178142510932006601077325710680936344414623400175632999984678448291786268727882449224770691405431804132586133381526847313963231746376311443487778146081718986150207199292809466562272761269493864521393371155762819171086571300611820714897574381992169253022367998446446856568790444221736785183399272529346577942598603967557530713619630997846657043144769296165206076034242430562962907870596503041201776868975581338324691993727671217437716176739768575236779550873163343201390831955813562950865288147762339933086966119887305263534063214907458565686985739838654068899346955144258238607744052908649970257151767197543125760201724237970905662100283473651118489634660762164646116120160967523550383115841648105872855620581675177326156515205039413399065942271254929792149145410973226927016364677416720416413577855476439947712046612565232958993602918545114781222050066396255064838687815664706962837115682101797935440679766913349354195688135725607523403093090978881085711203198999397534988500597430082509722330657404702564237857549502441172915783449313057756901146357529631032031834938325109845423905835053342567033318803326879052096050177883568886507346425477376367783632558106516677522326873564118673929285608004426747582208703959049939424103953819182222972406770166603037906881028631359885394994416966234872084867449656782888960392893994993762468691523856304899188049142888424600675535511515085208747049236825122107684613338092005952243991039622263323784759462021124124803973833693160571123925830555072675899294977767895335067795870708587425463489188344771539783063345791740222299964384655822478124295736226459504593683842306756744968685431947617057677930201317016520226530780234054824177034466772077488316606527166000812745495008088222355194229425328073398624248011143510386603075599066526802478446643288477498628269827981885593362872002726462435427986429428660237192797631988251367153815525454377771793824046377329382425765530235126849983521480009299034195490082254750566820487295065743360471300739856531377984633958869482039632572410295091099005447617295608301929096464356343022611983172787785321115964183796200678419759918167317071754149800121413435756674878759158463834366131232004019656102048634217955390680141594814305197505290462478079776781722607858806043586990995473504548338034201579448658940208870266254290309431337000451019405338527863288605472663523623557398312492279287703676375652448767019236349304457767784026489090111981510119239649859533115746726282418929433745395682387501042563291825897446928830500994228880425317034676565128945303000063145964070553967474129954935264067999242563824108524340801581289799408717800544102768610649443976788723438435811488939986649124570940203550007463126843835050767915022413449671699024074391809908798243928868401736165863663585157066906088290000098725906909031643517064664670175104713284442984512360565377094744018633836909106742690848122514359825755067266973800258754071966837589516417315831303909605465782570327309943613860353467617748015763843515453783922164972634689986967179736909182302461482172737432689259258166674131295487840850262933709471201371102678732687953730522926864283611897950502076194219218674458547142918649558825637181969343576503081423232880298281692853235298692851074950449960207602175464860431236099466701159293581717369343228027401344728698698734899202340617682225287660146679090336352899563413483493871427118534460340874524533231363355309638892607895922060195481575398905713729991245751406088649476271337350491893301292524412234120431282721930636781468655239164684323397351466490651067195830223957862557584516247333068857803732087409358180400474976887318933612293537041421960323693309643447279138228694980417774088980775873680222264108455236027248566862655037526711054714282562530499156479825833094261997221048471401477763754554687547334716290216002629266371452534038414583269859048391379370598905036125507807062908824785442051261755244077257879360622084258136741016767966230299030794688137134378499169398785203852977444230599307849668523134626049830675296018814182784628621859221986710105171626517944894083169512277128543118898696772312400588842097437493436390665888359874091326997159936734090640249353995735652223362883361171426806474855728071371124214628501769115397482020861447904954835672569223129160271886346617410273654442161562602454522974823154862140875255891515962847522154529636119161583036181890017022723010307574447065458547088376242592770388250052759748940256968146199217151334203691771675628273652333451389889251998384724845812541615231288656322146839234063216632769125455634376369340764628922717222970835130422084771195384976847085953977136474456275881444936842731611018281259536912095910726488098698547992850664913296157001042202971723671389604159905596122867404355066293268910086361962417422188072132651371024890242364658362105333596249090510424322922127126642646604079964398338814204964055640427935203024473625259376589997425358550584632124644352324746427662428165509113677212521468569181943671201585352111236677316275646166456905428917185092856846909004002045904840435742645628598853094781771153724933730106534899256012447628697347044954961467764706233798338797210533337618610590405160263254334570276876402785938145381925050741838415352121068741680392895087700744418909187233438498463385869694489100375689013774006367567802978279612411283287363002630075816059623030648049170270938177423682377090181238141539822549970599978649399610010772473504203561314157183788014413810013002638674714883113384564370840242170229119206099366288651466818404223562919955849994314240233065643604137843155364573738854841056296539458132963851286218206351300899970083639578845659724354043123757755529510371191619633391064777118880921879278373623787424907180639172754937978985777208585313752484804355441542604871243853187779341841591845280794155796456045716430251985075673594107480000803267700376277293997268411066728648758923648294890060615801718957653982691988304614977194303750194223171421463892654755316544504956636939656585699569352035355519977639725141652131249368178430252035296033022456978849176916326584844063553710147414527756173882759755988576264978223754248436272452493473089907342139625522069437130590708235416898120571010488806652855368760348632600310478697249397291484128363372975213430006752842248712661725915266507584352955476693434757662878802097084948248504260999153877843345432911825023587108679050338199116807289891434217518274449836028464470991268056513460900403502642220083533285170849709310039391129218301329544711531875393955081494524767967962270861712375308730684466558769972869441247733797849833047804595462115905642176201291870638442192544836523963944585730940757662632134494393188574919636836871008416803063423487266241879221347987177989185482676034187737753476276149343919896953404326869776142867281118360142646913495379344284949635472887107961549977330025202652166961414467215476041589386543381092994331219522231766143220383789836427553854255378953142812398550580494103477287505564000279876919421265184540233751259176634067564422429967679425215705813709188696847984394327096435740863359185198066387922958545755223120370306064177949535437550773106891947076793599449741516064666878360441230867905327320490903080126811477289121201190305164493273151036299452984865771819353580450866145327367075113710245431178963602577398347517971289501686069736238518751892316167771069377177788024419429571433820150052122452218218711765954894468318165492836185021931412313017938138798552843414530156381717582784327356213759417031292279287756217204864174708640528761582383222795251258193504673939725815484941949129756195300791833593759579315921861482040518671806611785183717176604341218976092659051293571670704298555156798823104779527454375575847870630294148855512605478657916479644676728336292918852394591643555423499279023472559973115575322641568076670666734232610199588263063471785046089365967460524414690524735969395791517596730294413343917825454322331447658565254008635013265001895485267059818178718675838569324144792518506595141082778514468391699139091712935199820486752761981970845578209682136464785561869062348597856616328774518458513536805496967495153715321444115904021126228468913499109986049917783408363546444433181475031942892716551202889307201449590574836865499047985828475712873406042272068054443772491757826677153042673639104002053408789457124311588826958692960462999036291424187859002267704262912954892830637293001889284756956099809606378195067901532271631775084899055949155517957641800430439380363130686632230474636701394810463073834958099270919692535156048360452208720441432180521037286328817990581780116849174164293395328382008902983845301017943122857688618992744648779839005082031814291943990852968020913884704649010862486753195166304636067045414885147845969521382551717040418985835082250806634562361650849122543909893247768641850484416221464083138395422740682140990215533568816778895942887946713943767958625957006017942554248855017516959171071475011659502605077731654575866518041032542150480575756850405715877794446285641248507892888510869593114838824297020355519226014608413689679793131407762308545283117940388452251155211563897469399907556035735183579348469768496916211601077899490593237038136656818204648019166441041363199839420252054233548212340171792900199998892793558143010290090452270800689988456647231393107914683381158023048415157695424818574672924478714082441052921700345675556048104824445375747327607119551926564282262303412580880301009022678834049460046283172124996786237836849995305484444201052870033834727460626026351413509819501823616441950198121510675036723786066795443145787294758575489452437480000053402516418086511665147743254771494604070367340936713436142037820008518418395477893654013914417923153118237689306687007675288171200007274918288096393755922521124276262147373983850103023338207552818098460446280817649530131321596217132920375304212724113361530689408027412949047251231740551478252450929888412760057512047367921559336338872416315938178179862115953635058613156347649345506598456730626670347339717759878143382020906691365887679228586282744675265707521990074184925604513148674241392491452048143323607504307539520836643839052247561020282847257871564699102357205454737557667962949468129941512088819119161149968608820469641671012503753177324470774999473782940010560926255822408373400984093636430985111674085226333719476645393804212533707074895508029676308196438721659799430296066496814574606139651315828938952257975316728178124288524627203972694353435897518459294622313019388878902719242186136645331105923516664497825620590963232691963006212061449569611473012885367130503695859083312594031252211673836843107358720280895582414389180334922658891866662415087432834098589021127142694969981683097988837842538321527976094525225963579612983523907012063075911820175139391644888803618241554228154569456888082268505568940923788929686860378618790319220319872835289045567357496010859183890849205474051775524666515710314150878969660763903141473161189627631437674920361339490999110443619947402802904111676220986733979289044046462711268941607709402582955581832689824714637002626609525056649038982504900196964701250519485681438844049849422613853732990045354317273315717336509075714185311573932179861836303568792269885450143717884957822737512700823950682392481003064307990580011724124326072378739112312270794545163077878941578466670810250762252527182192094630948220709016404700716744857444979853164690478998972442372250374880377737515835167455000428333990869470968726289649487904495998705966642101105309045524926774562644093901819861573889696568993376032729947263758601065286728288607487301505417447998944889937755989882706037480551534263953794883599968943995848886495318693347459940726545755852694472118583941665195110620823624658665712718771295640964906457991094589867149655460423323018582615409110715466371985642462259357676562206404348332865721257126247442485683959875138585307341998039648958133513224816466489686262211852575551451035421439535242636752778029143222118316439562682765833268140411001992662114428977224702226015470066745669327779391247155562450896032638106193396887877521233924761086541802965974003516261178545768592571306754195269277309533978636887806181828431974341459831043766834585229183514853421844816612591319052161390197405827734168718911053055830765962314918618118672775345310793747139778659167216355443580466599329420047037219244497998921673271473414967617095382338870530879094441503581975344537198873052854684105917206961067147550059192432323235293321743871291417610151685302143526613212500914440449182468138404749884987265250604441052459609722970824693861399751521625497548989221511445566948123985507716946818275689566400242073226790935276944647785436712776103014350793713362371441688839584750692684501054674287325481604229745341612395447167095437071930499011740993672824435274816729189561294177423784327105392359568162880532218320945731246728010329269144358642811044767293326503007603976511585303335598368822489948098353570936465726358419110079527864786167764062749737453242077036335374592340769691690623813253743154199747419755420891723862314618701455228171451932842665569078665030963044652683706327842713223095754095207461390727159903737652783331970092771188978570273439758628713018383449014560127630881015243698330302633347873899563202459169371258686620552263142558949043094124249395077511078245435888578604948845889456226934547909512177233383236007564725635467335231763266859189016138104654693700828757539319987593572798717247849809331857571360997741963508670316129467473647515478737925912286206254098755802966843414756836964717437339780703927621788237346556890184197835507860893011174649610567928861117544354000740030844764000897226580348520292272212363318471388754951301125752964186802867380373578100336896956011100699793985287445482851668201408875904677371548238964960906736719214614298808732764302985893847531228616019867395589838846775744723334721887064340652696129486488437401194218801344253810834123634681575265295254323717974454616698729566240591970660015655764939723609676245461513738690172798238755415935914264360097322945829283664135109754008713139596073341024742710671327432002514713455087963730440651848100996722423783694757653075013344504229715799504017282748394308079324400194028095601402314525968380178806950210741054559159084042692999411188536324844663429400857279038970014252084434450617437829844704684768857182640265456291174288725617164391383895658753015592760043392167805483438609818302128777587694668887965882110081874149177735836055092483123504888998820935485363310774824812626823669712094571815141305927784935668315454503386894205408072839509597229948447727650780026000941329430115287701074563379189173785943759954450187065158601176176707819018927352683488861336779496174198477417127516140961701311855059798642541184251465574356150437282731684389015529359966088771914100106049842029994060413366313680779876225087242660945919909348513074613006085326184464726729371060953639261164246159072404575294737610665794384533874868008228453363634085669352632954036041459934056308613713452353938504476466439625567697582674213269864573325696299415164338974247115887800246139132306702862998023270620225116015669401355995760660700379761480210918328472279703026527922967187711511176567816082887823768664126454539887848511286892320459644674853023294659334241325006559857382960730305350805194266271689285722963995334194881278706268346192381340244456372260714983631573430061444485272210687783682501344881163630141296885717425074899946054644210430160931132841051529676868072623446754777859958213992331864021249262471318209631705993126231934477957982393195377965615140467697146574469966381237998847939653669850133825958443850986031429069987643887572958753072319933673434740899663515788660828409453102598170149746596350744348853618975715909781516980313778639818924009008191373665528063815034898400924622104134097237990063293241580487949769483596237974391558728302117612050877532269126398296090389673860469441812135614609507235524301709599247264536963295213906496409280183146334702286389517287658468873232619872366944265334790633608157518982811104466306418584935832442742959929574676436118652079459785840900955598441742957154187321386328497899643324277072162081485984642963117046788038923029618779440813262519486420117728503905196913237847282325210420237005814680117002554265059010039891948829200959128309399789529584348482398616968229739573420038861739467659516418304694658593186100014620988649920837218699368642124614461319431744022228741524798811626112431417072900699921924296387746191449494297551855461102731962028253523763267261955638905013153507235028831696812124883459205201009175321507832313996223380268863509247816135651582989773518765536656865802133184018895086778437752629759628669184172999309090738062464908398300010926835192396325174696045415372205217837589272381872150272773679082443525914471484743432844129244641560398547569325967198228874667762910864327154288225192895787702566141477007473516419155441424877034428565168783529373781565016504487189375385273826665519961786040525224347889091341591294980265913272816867753213020305862967427567332596079309201580958454176825610111734875268575070798972108683589365141961634061756374381281505395083175849798073409054262175176074951363275017258807113568765604622588671443735977191688788117903843086571838364809198718089230668023545304052094721319598206055321293537082811558322545191038027980866591903231276646679476948439465793471979076913858950206876254243518120916722589371744562212701729738981561244093287834928922867286314124525913008181749546660939069701155928275262045927044480242198729868097547779739031985161235802662445707587480774361399374278132232728054366357833392682117103390708239074979409148057476686534581816040097059025789676151091976097853655182762600639881632265151975506598098725916043679916303966776114600250816615787990969348663831522419109032070472816567115311945226074225982002558085300425615231204580668744888425835374660741259832605418248208887370177161446554035956962041576175516566413907160456275458238107777284424160203531301628586728483583924182295602505987579908921073863422862378029510480265260525244170594914728216721325004375606433369793603632982831585619853112987029264338377305898157486063929613096063375690807655112916532379355204752633129355363615202271323951283144742031003342574197976290430170881133865330616052208937071774677497891098421408374463877740729054147562366105493319944337028740054132597163527281434329134049544719903972965981461437982285261621942467928194551729433073023021040329152711408510126138857914818606979278645128278205141803175306951458414962821445759129631670160340563242979166397805262793351102889485751029730025558478103692896244694684767514668350247986389483450607895704684222744262745578336405491598394282798999002802420535570465216679906485840555865428279445643508999850891860314529251080336116092086617844539070881816807162772790859539916250690476669798938034399470348567211940946327637087396527505997036538872965805337520950084935955000309999165933001000295940004023065084617674637923000608688953455183143327966693757156464356727875634539666190089882591596016797463508535538467850761451818084508323731004665785000391814908883859745170693955519948860188876924023756168884056536164174136601976119792137463242716793079213889924744059823857824286607082687096212183236446416452377992726401721457719150937243516764506298208580681833368211119998156368301004581040241078802186543444298943011847851542418496299368204373389008448587526233401096686840875968476016559360884768904204846784993388821438177455386922289979691854746999912535573235516287376919394565425173663598091170811776145186413383816694114279878496502546943767652338544953268390954695516307975331726703649949609477936364736687512888708772664974554864808102006116504221503699113020681116562898765684691435849763336021237797562003854386012459678991688073697979589907706921335212905303896676763906690195368672786904821995185954705443363581374485884967810110405728595087641458624823245161298067079915869661646772988124601265516850747242970863337523373239655256039296211847385841350209182486091982003322725575565479269312611767449871938962681486169442072332166200920306600337339827556295769668412703770468485436350318099158534456491798896282868637587638828145450873115265818979003540511297694820122307570948243193057394876507006468994311275436634513439092809349708068773159282957285162653130613492791842203121854825303927631509446343822631141720298397472812488050229690008661253222139955355859725098139209388442926780989940486580779219287887513963193249210000922661875725995032978916888869349847820591450947844001173215573652392260429094304983646160719849759170521291369512293116049397644227317183675571000155588193849743433904443856467553093547294523238602173901122572855783683185366713805010498229835857317066931193773925344999716323207310358259874164240754185595030553933813582202034573696404319575518034631600400180828924587375854174640676901549706377777691609553337915555893491147148710254593858151753882259987194703027415976320513244768405814601001846408297351557389296632269325207040200232622898481115368178197600236402100804355070280690116220175331434620609874286161715221851051998156096733302082681824926699712535982016042223760738914782679192594193093908819425787017879903688958069364672857012653503330588691372633570596960323625936461901227024442805400977405863012892313288927921641985058136454474526476844527904866740954390586048101417241645619561571742558603713604665572080795289114353208462362699509030515223610146538812144009375808095625506180451753683679722154937103199306007336359657568076673392778652076574066215465566258629253131027510312544054283740378721053335711336454728140404425031081779570778533015246359593268165033966931138997936129743429191212014015181779026589332211970902412130401177397216396237498957345940714818966291667322106625500229010351713282025137393706697950519873063010872609723009794136080582972436828850745531180424420726185623095278681603875916747075147993672045038952321343446779300173785841074970324342357339266003931709409644271855046432301964429197947644199503608418031809904079412476292688373162820997839703949399771987897361280104245204137553921390638144167092902545111517172698758696646353823308108486853409020474116513634271779011774557711179179914000891292503658862227129884802449497016789764367901565599082035597528186469929820690605114337259797902383929998120490736333593347555720444468133005317146830370389899314687247777672328006937274218392304805159022838739565555361093681112789550881227940216761338146750574476246035559411243011880884347499336453949352278174966453522753846837223776370051152812699547576044308189446170602967062910696693837286094677602651437869688126081162359001178273044925633461698075853633481945196744557321616186706300952280080539221927478199635024426509107151178451516757610155036784710870763422283643552484192801558738283320953691155945327015794785001458050621055686696615184876546138380431633515596760254628564992593603180394118682095256910244015031409133658234885026597689738534820857789776769736705089312186353177622668231801678848008390960046719337682269430029712096600383113576032589922565509656378803215937896096655329924313034884779661089799312104305486693689801764474965648147488438272060723965460438960519735232139109178322484102443301640389487934376635283963879369036043386182805870120680633896893456582359968137541757739208819079870233872847050972891152812716031544250717643238932375716460783076178916629358564173826554705028101969683220734071406805762605239463151399628352582863843083611144472387045895682778945377034554485839505931543258049065794440150837263142744018487124448867253974163302380254911247365860435762124341390453196420609622063474040079274776015729969879207839575043589340032618681049111479781487589586056622277724800287768069169819147581030684741805619957606913962461592318383332226445532332304041325110632665249081682609071876258239206690035719268291860661452529725798230784008156335834685134008307170952191889943995932981202638907767965434021421650401675499160515157713000005710363044194822127118866137231082472511022045651309113686923721490697851342140164333241385330918052359359990330714959522162465643444335650172382907108229519897988580137243539503371399563108452628454734416001171299377096309650424891791249520465258350612880700925484005222253788126051109162340179011629165247202622913106076414554301921176780480102366148218933662816875568047480029049383740363068194441652873096151495263755349299104106108501892285761353514876310392305741571037142651540547197273319240408234875865422289322074098852501690685539084397224517338129787536562215854926952017645890848293112079014630719281184792019690335027043165343662564312761206400849333551257635243364200278090095639086315910693624464046337770233378216368136934161631032679494786940022574331996613755154370691932894242372619783682119767110968019026495758609814068415303727056066151973661731408832748834784857032113974206864811220300442885317010485853191226180023614597079385564648684064767162811842371762774637430919720046084267110330281501446908084147371898532425199449580717406270968153222766086024021211168465684400953151538830472033849528472783576093869222825872326207266756916920715032965481135997140387426338155353528147941036498006866035833390730288754993148002984028967827597109940119112075249989124668005536869853787152646954267985897066867861115971857092320859337365312286826939194641394952247246568933371198848310162620323574667870714826788814508684931996659555811722616508162951330485340852136168447874046784701523750884994155416696921196022868527390747256311443946029696983071621734944579098670647878112633013672981755198826048892257181008191008465935973394066495459663658470527488412612798542526806237052485394433125114724416264192234549832517828313893607584832461637981800329750731230534284164804029390785485866106358506665548121393198040679856695645197170715292692597126070860429127904162632876223144419290706532035931994040666797181166493229884878333346941700813738392347280446781319243966815745837320589402687783793457762356966078547982030480056726971600844220864571589750653249559311856813837098535366944687755601265574513282619401873285192005356591784809709860729813593652744839566619274752972519372769240689079491470080254887956966867836253823458832827737236726781165549664681181078768155852220502229323135364903089095403874132973673366550869602806095314958598678571642768896993116449814450829138207667440490269891950769927046416944025128016945176632218184006609702579109196042071127413340157804752690883488840737350274733490758428289018975556151643612129693667851478535646976384751008266612257604953042438094357059815309258049094442081171301232258136048833323732831307503820567425954511514498701784779827934934436895849607164534332441571216000977245218101491920089922362802624026452430444532795013886581788552420332930513172521499476473478315858894448396422622568137978994328617220646960370809917565921775544051322739670963771474935053527927098855985552889207285749431731654137280865352772483626008291714144728357620205792220411146326878668120316263147432476062568051933770360866927826024525575012093127216758312465207986665936472095697371319032641773043139084117862672800409930851119152321582942209033559650022490877794597327816823831435794077453669324818246475874667656668508416305739111190581566411882166182335211061897017189301077514822593268024699863527311560834573612831615619094476617994286097392128176842518764268066475178052856760033655861805849193608441674266514578433428510814704639012248213829162886523680309831632467423548419907853230519336047254822947618191838909615946763563299214791799382155958757436118852374880678506952230335923145120643343048123368535286839453826260944307480930168423480423779684951420090290540502496050710569616683525646967606160844966544421482073649812724089717895474468070193839209640562523435060504264653776984191225567400867127766372054947979754021706421663486426410924699826377557714676701151880260396296820747332502127767017549074671930853703505459969982495963345146909076056014157037327671695837324616539734140182008263590305329237969233045233404753984994525221491812152916087765800465955227887725643848946815193619336672008970766112351430957194452156253663517667320150942900312014649582703024041470314979018208293717169642998936010485896774969558729186479786833553248991528934636488799057018396840674423948430665860645917042957058046442945589636801207754213205576681909123391801165467072600228530966582201772378578374162029997690265278562174091166172475695757283744710865514400106182318338826834656090307964494236774349205267640402705253847726683367678135890565510075396476605236001141573858249438029826120766626431732391135871282477842366996368261841790495033035989447094487245303483851248517105133177713691668219242663954773053511124860098980555449850244995451984663443024655077842753240912181935488313648867508217522488109450740887944468745894856320070281094106815945935401665852724661393988726164831078152922991641774896529809634593618493702237006883021900065623611015134397439655854952850837278699158590018755346132303934246757863930815496851533800743014982381738249441458487220157741762497395920260050468328019775807171363837569253712559588993339318020058064415222169998751972691535066360518080433344444092800191860420970732589905957637727430979121686606030630987600845789604740793192581580678077124335141392531868859327570515089318159215289281930193980221318314775109293465276693136254385908467922216817211058206170307960843137296749961507346751581151656138817490773874823921144856384633454199035674260641570160815743237727197263080867852393680700518590436384509259897902081393148490497299554883444954937518525015323396427865643693132383412122418189488400615098968524519353916529320674801942466428570624038911345874700724567542039198360839042999297176593060186644516337004164676118610958856848054571727558788024960059937026355137739920921427208600968917246464481094575294928463511304740822980093758293870920790910856013220242548239055232192273741559665286009086942743083528590212237237584548455413408350729463068799520819258889908395283555338676792132877868848629282017970448672903032967164824822101488972530673042452279587754628984284879862250014362931726947530678135226292473342572093490401854850579896468160430863678233937703332954685431135761178519369044151855999702708579568626820091188156154544800586024776706378490502158803466587977805351972169965655758756013940238417685296648208060618546901608118615716778919765805232301580483364886170399549578896469622821209387222606619848778809934619368829475375409494247007687414347065395222069138609218536491556785590050350441063285513510889753047699756183639716689568195242338158759512365971700817932401685891041826073697212375678808929674029925593177112337312015177500540971148330061979575129459250395106334900746203191238851157174241475067976237365214420239196693827931171000085639481302111940742061657505003297011153210566738800106957192235008115548108367172133143106154734465288639560870006344862675948984016111543686140318553725503199773358182382732563706313637860972153664332865474150721756224253656688525348971935086744290429986859189406051956997314627386064446191147220945388123769871283221768283713463604800826830148166474867943575513644026233432238124928208593487305065930961773704148615039576398255080928182874787017074164426839460554474590102945005076188553176327118791186839003556557608102139896662172653234470789494968691212002107480361386093824447494250241463112614753106671108780949345083666541624997101364683509901640491616856892908715515237504834514886982593207491732747225202045039572102770099360371759179866503970772523839314926373351359221348152451343778256467949702052706957577295706422742067639252320052075921300863748395851728610133222148040776801775079177186952148173604921887495017929355458893584800159062148317907351446166866091051979710162672593833689982500745021651905831387635160983603514102874420836496692720382413538291480230562715940267995153563670341873238708440754327308617593945198839555073085354603804730902359204126440463992338687832545150972935778805051388187560505841589047044592668423668009654513328034777914203195642523045010454742377122291739742574372281072457972201117263218690418555671377114642624021398377749777065963399498519841916017683057553353834353773087639073120206672424571464623422598343875748106351792500568091501678037850857595896334297027054165864268529035845848989754033232283123036938387339993076912782931243971435552029517956344406957291598566150269953975729781162502563361163633741852457709446106698754962953299191942573644887765088743313237756603107275258626174752588934057796367259879400635236626078918432244605261965022944750737615489524686314152692643835504237907679657211559716231908723051340843762625298295161241758769560736550506827839870343874212787458733405222264095537439192738732321951695044170726022153155446804924398925412342090811164285667325901845267959970917514477962190018824041420427555195783867278025648112908077390142598727835934818264130603795580252854025889660855818254691591252838389929435036949153947877480416225109831983449744064946131166146183695860792014437049115628513922746847584108891074797712223595994365429351074128584885379410740571868467344018088230211814037506171281173219702326510671396023074708964696161776545524932590504147136846120072325077788550129428941038215419527816760844328148671259741655669875851294373853076075559976875119028086999511708762555508119513216210971648445979274940698290742616656847019299938041907622289484517525312029174851849018613670976682786803739846924816627757058760816747422413295869919637671234804761638225634898222451551288754260480199015481086636040386451863315736461723767908338150163691762674870771300946351092967581107170022180435753470994298832261771331494740563798403762429805880722836019475405175885990266282561611547465217441899664493426563472492684841699667858191322945825368495070150315977744094595362097422632684212774659158831368721569163498341448531841711334778525869559291814236451095776403435032300268802459129309609506266992822907422417048285140910640846258054017468039194956007739505175534537888591334442109844050075021962521660060328696526691478781327694944361902694089692014558565458883396810977852190905986391468495273610093128528502684307180396444885412507196356150178968271355461666719897097086424388261090719354779677796014920604205506705796590004254500736137940465362816631467918146249495019760377848629890663981614124915296220484175721583896772964234041082426297747342200843649165235101154943671925821908050668681075780131743268826741938542011162139557753807668171184736542006839370625566231734723562121369379145290036109403408509330154402548103744766456502700987392423901369657995956970615846705291911496066513006775574588717109478421162557327903970513049674472667398206215603730407980867552347683289272321403432382004542882430386229183637432202532750494739148957995978732825357675247718042755901085657879520998794798856305675831484405039834061486929052032703823738248765881070732067992892064525306662665580286900818920672437181872261485318833901006233877893187483553254160046424152245700285845336768234082595941554063270399446116039911234159871518999942227664029797243342836576096153786223828576019208378946198221298147278928318579571362296096023412619739893973486480269996412825150906143245162296053821564850769963328910524420429028831112393924369545480292907043906433814042145636475052237544493890220523286016725865571433726098219948480144979042719802371359331945448267858732226804002580972427047440000971336303156261172872157181726924493956070595529005099677799340520832698704624983250878705594011538721214983042251935417413565680900433849080769886858405080729210518914466879983442978540103029763713458354881700162656972652882809702374506780094269919488198678243111153229524183412265104857052633183113094830517158559778652218384568004321605088006728765360179662566967042050195150482363519442566175550617239026926921064848840938989182375405158712062183959690337083173640647390725609972393845280814491444149557338186635412912547095708643418085564522623126623178663459607566496339239967334264559996798645710650376136019874174364307911669072130493421477138418335110002566780211151816660795648869858805294496485831249853586084652875565679307379691710190896033962447095976681255827812073699340360278977767769644785847849762289344070920529243248449281419977262681467577012300706320421942679270805338560904454690460918729217071103615171722053607969120076530568792372733557096128519512314301213645691282492390231153433182121671398748825048635108185992654225025260753929706113167020726678783963589877644964711703292257080243387238969717434137430928362543017690244115732288776839351954674483780345073068941199238208026135505928558619791361323740439447399700352630175752753512855475643820282017763016515934315853425398289451609607936926464197688057977264425240454373412268016656563393415123171100078874877609531883834255251876668844298566016391857933549498894470631437710845808336859987795689314703645307497686113895530997290174649946766372609082772104411575549560174538727969947656922595653681133876645826155804480319943176248857312467738702474438027640299921199652491633225012550099435408640519616070347812223849715283722627839309856989971019839439538353116095484661395181650348458605556651978644501311565776429947518716609876844635798127987420155350733751018601210478946641966162792633419935719275800864283405161818351546515933508959616846603580615721773041098864516787778654964913036242816408985039072875611249998030768084026514457258466741593565940682082221793040301896308801537703579626367432201973620638799852840983442953455502262353570185237906426625996646315342415552756084577316531668027447399296631096185917644079803862334056695731838048238965923573258652819903786294712440826818824282740317247880136853810582087940915817336013692852487388558004983331035225043899480994815524609088894439323292473787484808699446287674096899611562107705055543023756367878530661838950482160646163003042493444707502193843575981273157806729848647495334215482894480242142347129108355339983169947026630849233365477356732949937597640028074288429187449133970268082036671186756542740674334215487363022867795908113346692024113951418384293880287380530706447212067818375883139406134632086729187729473182548776568155410214298247100219608418545947787413093974013340773744587848671393067682827172852927648081649249744710071850936899424263541668291412496980079661035421578580968415375705530352573532749341587547912179411613739426582034660901820941607236175538879422355202203829726752347856766273027182967452757546248839752898699109692566306175374600567638335258970831738136890371706803374570101319414092065185528674488596488324698987757934095211410291159422280715637005779791504599197799724919476686850723769292801800766556906944478756119013105158796321185202527700460597231358481923538714421755939764998986230769718687204875112863614498819787190766037708863019061302119154171002540240793773413444683661986309648280788032235465319592139845639979829025550479679638391793423776103614774891180267731968807279217231807669213652528152713270411134103640154767617471042264425148200347909446824811542923091244306019251551376567690132409451660353538122276545614623610441206781766846806289344137381064481542163919916480851891301233293964267180208793596018564590907907212551307421063032496186432649225282495313316318047967617516325988191278322760418521417897103971170982259460513768430083841696871760941213293960985984400766029470642982241184224047315895395931748886818104767923120734961518039083936085073478656294666727398250222299685105658275460824176345184927969402707024065478209297274291855723651381700679557125667773815078643063640536075064875572033040654146043533982373573889472100490907960850314529243378794213795927669449456927524910931652105701127800420273868997315526017846027863918124812330951511736713590137292001556406540154648507490823651449358558505598845540295279539256112177768175869715128989403433847771896949413496076519771814959110937328359538408759089500891443518222686973622835728311838242210624705531303526165273716401197517933679982297365358049224862291623049369235612792656885264512656773455325939370829342158886050070639240713096597433512560509936414094053213956994244492456635921071537596870061727474986903929060919231354658720209245263648818427551077491516604214906993270105775940942302209811606126508665930984668409375456384108451285072320817472415086926201353582806410336352768227146646813147830643560787326895430533134646014506337891099113086920464873365415860440833286959334398407784641255568341710615837720676076802310578194936178495651346161624601768799311175724988150687821750107423287668470058183824267886741820147476819802714077855358995362243069442133105082937969855552535052632035883520120201328135083299795356599588362587035447550734559912286208620946576394918296635872583124607036922946682195986304291464276801717537417496415481312094579987488905683420223072199917315360532194036642852362105304548227418942028920879868197489244270018738121698872496333741332992299484389374126884596502240352472378612349644140884887536615141833189579506104066527826869894024942722439080753321478285890204069203576145499984874168235432339680808274664304811760852984467061807963539344243159833702297135079084665050013005585374972552213367441471807830755805107271863034305783156633165109126874516211048076171341488074837250859821413592202639678236954443168909417793526591111312146969432565383956643075212893651137305282443607637879661561264003946036480463076891147781857342418568959415147798168799604495285868270526792159249346964996067161827398952752786585049650924530895267981957378396497406208569211082407814116319736927708506945500688775735060485911141986214510073491021170267316068119958938410715791761450667644303519814738158989468462941006402075326595194673633343490189219474808491635007038123567801697846684292432899594877480302321369083087662919068403675963338245837407446898325124054085374873950970032874732610412982408153527482239842522756887422077146435974197199071492280039263458274793884781377142254449318044251472986533891198967326784319211049089145896605171238177830921375655332041745993127615102862810073189762025723429685025239057270918225070762928114071987890769152087067412398711899984874317637119111485389261543654265143916583895480219015542900154097641185219007251694589296669201635509678481923466015381714710903644811767908028918147816077824851079080012126258686027311343109938349781352095062239465260497747705202657801497377646730783971711907637788379352743922475967562094216811587372639935512449492863357222553467409083407735082373043158295890563850566655819449059253199060911090622716670112496575648077693206216704279641636108053419395961916603835994082215732490324398141958492503526078758017345992823954561277989519731309296997429808672888464043819281185831875163180757194712955288337053328808160623837360538666529609636748536288142680150760630671296727293329844710257264865970518884521100419416335524004803444899168905309639101419598439193423405934978089975170362913064193732399132474987738890313025475692041481726036536631993204375942025761466672743121630350924462587284611120423075041658075871338541438344307833024362418131814796656969921012949185714822608572169797434834837224443575893135696374620322915199347519091139831716988265628141026489358579781207663897178698300450958974413311618290224986622952764606947255155604829692466559717231369246096503238354688190703069169752812366698230532455269524116934760357275771136262881403557223553818360997120306268412772092910257695535772559427491683756989962729534051291718874052316972304090554664984897743190887025718864030973607525381674096062897546138684422662764263307311311772048398292605903697121565320180116340911210507183902402571477140328998804413147848028325921380331246068052688050056335990260934934899739131441547656789101928478649602675430124495787784751167658816504768210229701193402507343662453362239640991977863346077708681882812710818191638663323493612138441934149588705233794149583577413045775976804804729068207285185905307404884482584503233296775820890248768402308987900534462742678774244014772966018459176469465191663255753539784038326703214438643508420555311600244848441577482645629755836229551255291114490914498782262265952938983079542361406054694609748651471188231659112759358598936291925927409961371363258733137931941670599986008469254022140058223468193605119181032057963365491546263115845096358018220285089537751761204894441483641453464692026596760269423277897150977047401555444639303111888889844989879713981847582586399898088530561465441049568678370455756060444226258389608211083626158643141213292362787749559144121227449773794976980410004191030604419842160146042990464007007612949247765736163816402835628360441963971445903388349411870749037615026479937173191454986859845695202306166673862462051546510182645926798589140642689047955035724884600377046157548461387019407872620855592097880713501730063181045964027373342319887007724508620038917863201691978307345487055782843301858740276868228356343087982868955283238402877022812373570540077585172098911528997519538888903402931663243596629953000939987563421281236180502307175915870577998207485165707979442674269414100863061011987808949410354087298925707632839763021706472180429202476094836585507420659614329619385500795181556720848019968395325622496493257910369569759430534490452799919325156216016962574284642273482384159663835877259431040691155749105628853746134756156173578116621953746212490095280152022621600932501057747409809059281604051473277483900631571995495117779391947638384212876208412774193790424651954735029328304715277748450990311449295756254294075120293230097656654457327933212827593512847310012010231600534772235597516708078213782802261060121723293623361512818585670734233399681725428526297149354046369720612981229266876747598995136569364066591263349445047525348528410922632663724594325684569942412414097487161849520120670869527321990975121325699116816210231678878834806960858233616011027903789012513594225661947172945922651707498198029536193805515019560226454811773589096948610782055051374822021273342992243816138601765060612916594562210442149695230739252897630389010565769241471203045322128565639062319374472553894396588030961012729763467726739342914952858893207423365927656594513331633362372295844197900179165329739962202554409816466478419511558869954282581545531244602052200883983071734406674716510695228408181820565135421248340816829369288078643823247943045893029840152625863348815065431486642322906712187261279156435516211825369961493852841221976834749380804494749920758081647885680045194070898467988657265932771585866406232121936547223785628101557637942990769458920975723373981104694093162533513235257302593666189327408475346599061364726306320680517791940600522599701410616053586315453288810146850675542011835373073067014791400156146163987201418906699325440726804288489980171431318905233540678403566519011560175739769841383808678361312536854897725945256380721876296310217689843236318588162666888415300117567061912544961132286823136266726692151907183328391733446486766851493955980728052479029021257849518498894948539375824550225377566421185399452083764708417263290282564834160979962333324530664543217147950757288133365647235887768415091322835535146510181496725486882306257994706393375981391436636949257676979808238632011291092458856391608658272020208207767102815022623813695590552087022040938684787134716589185313582981488066753659973722382686628882564254235771336299622363653434623689249247186352005443421530686706086523044274406753869873155549237554051907864047481827840311026921156742106455113243226348541015285501663029629206940437078009898140883631491302768921133755631797755202612876933092534196180363680768539663028340911483335973708168887577549787121575736858605319541018286789452185149494281414490767811428660399159612311946978246962502443522627502323776982410253374965456785920502084752684788586358200678280601628554600511190320772631604124763833961688195958913546251618493622610838169825432244368548974616804823753219066183369288905628746504224932043285562164602207957929544932207293471138130585545783682006073518370865506778495962747352331238237541392887210142962183784116507524856432672810044850008785481457431934368794885769615445693587689219663742162602512091660915851359082210587669765168938942028539134406538620390974852859638220714232083115943123596616453979226172872910481492874205674827521356054771966081484668749238777778481261973152601629707859528899919374955894569723921521155419040409950856000740149915744247556240452624515433000831316161103266962500936297488035207626544337639548828298031990013879583735623080964360870933507937862478581583020605964331487292908170912932242059180042876268984104030776575239390359736082548918323083058633929249283040372489039071057072421656932439474569302770208145754717630114682792000131311846119215498614405100110491042278543157911065843180621174781694286654252867747652564519714301803796671908902933289086843587405809606211660013380185519204788298067485245649375072620613591224310554046846748779653473405626740605757221778977487490994098675842935597991555371627338454428006580550126022569390522835016792418051947951515522357461676158344719222080115353814641222383509923338891341619475147920061821325385084891225664676628072978944711306280605448555694923933901176662894682131928537712511722941841565842280605749300173492415408665445943115668866987567091835679184504724728152677222340848352430687348808730624208813931058653848215991495896388658812088043869828803097895914189782628214566942163400427351774394520418416108800283775061015039364788459497109063294433379239081359414871016824114092444658385958683456197757304640151113530807196799504140920368024926715239899554057220426905975243410263504320282451217284237216260818200565832086326045543145041229912551714160621539468543894842283745515845848775807478098770897366490112468058125214411900378417454485771510132888234911472029230134814109087878772282040849250720757808459766894998139621695766322076494914627078053311639462466486519869767741269167962836477713349892381278639417317775350442526919233239844580679357925405141847102308109606706847326282441522075885935310646774566890889028897458458074734052862546756790885516223243417271501060651414827187574427769501113399361008205321338214515691901773989832436043554816213360446740649653136294090615273719463341049575149383355676593220038712745386228046979851582923941686310994058081897058933893504876350849389551468861780098895246823282301521836939392228806420327364748030480238043272174912574297909048810267283658937008117878709442599170006935106110728199729138869969737240304368914946615486646382750795890989838393132261318493720314468564102861387376991120974589633543846636598431264557527551504989200380624974073877225732780824219049347171715929691030384510052219790679340198884909208595829866904055568287401414297587464194168297927594615188057264971957811532903481380349240083206528557175994910218498859651009422920376497979655631522018915565202956577864871843837392588773382940282450644730273129233225576081761000676139296783620473269241568606823139884747687458408769125070468572140885742926980769083915571186431759713822942056304220748007475000465451166787002767906782334298049721794796686492643655371559317201883025105114448785895585068080229580324082437297034930592722386366822497360520512403462718487750727741644709844083721460519361792080972195718970500456059347711408052867410577609167329680791187970997126257380314514872254852261959938473896641327379490449709112009251253540086977560592910375444274122990661764737014109223049808785609623837123824483280667515194374855877171045467988196921919929433848224263923996451470432261699109599454868129890627335953605987254892789628828787325334634384423994663446014132812799375252525951982869511499701677293591398261910765368321277582656624881723424511572766407603564484276586467540255730436033360288354610216304594333455615869743268066570520026741642542462769099359347691018845431804506042280388395641704792806491802430540349542106939164102310284672776848563976419248748023451123550775689563534122836500342168272811841708829298663817421054589013809031698027994722268178373166419595361351096114339475984726481390956003118303209015522031642116879129627727394071956207488536313202104600435307660980637858109128332519350891459172674605243713295556099350131006038057161754352083054137265613301809650540831101602088175865157083536174643659878109747646976126216735001095811826859764852336173399740122775490784272662680349346072541217916574199690228029932265705788612709717208142797884622298428289161033518455203815588235716866312224412902580374279274602337770956743293092916577693055939950389761395214795924775232846431047278055111792688896187793062672594883348206089203803518323203101986973165167772649506604673390922125252491730788704750957510160223582886217730756048832868666988009009137470721112233315429807518463837461925742652344633357041895306560406535787196109031593942160230491337138332543715151470580665077769226957053734706594139057981307509391040446740616444417677827509856447950252127316575064551978996930174533418803111527685157860742524717551309432544399970782411430395698895172913908481974173732251261806692948653130067247698856676001290723022967834510458685930569555778846542209373842679826768504764458516993306467850407288052803432737272160189122906363128300362955415475168060461825396686361472431637592846135981929905902047308931154520026896334040102387262224351853695664545441392969695570249455542157756433104987413547268572830783495792319777136632328617453853706192488767902055053690060045991502361305295089160440927669328350882830695896284034823935703173549510028746817853995578410862973652664938094993877622935692673246685880170415445382867227501144450502777694903354386688958579577269820403468207323212556650811737785525848102815103224845417634898053308803706034664292444656765481792109172731855251270871500694074801580119602985814600075662333716156296119313726137874971534489456061275939161826376832147930326839815554197478549710398108510836800972431904023817227776937161204861646325851997722840678034804947440088159719006642664305858012503065570335329081520477984413285093606407921387007043522269734245749934040282532391920367879183969781893157064735077528623089070312832120663922643132814734498062087380012170908032133322839621487191026915412725248158284238362152780101932651924681963243786830311974597072489451711237153589724192192281918311024252212639745842221634320298332454112839227417529599000661918365602865209437427833863333018755188296433434214170385397976250685088727848593303293811201434240864653836986386605743570195908772030691423071517782797275276528342367236725902682197486740064817103944988532433578439809129800501576897144662616679622253996779496389975551597772344190154251400093704046295610751599760582152297140555333022355967148701639131461394351435349047037334987123868399684253025788110419696363498023407109775994194137043162120442860769581700267668998404292744201508449523314574290084369140607299676848948703347997184363334054886708584670243824269244716893920200092364185242322787241349178925592753382149602132514950071358252819138104631682792941262591220577388727303902769817332444966688132886908119036082590750275989835614119610379171117714377444429966868057313585694411192825614110789873959508846571313373482047416348977920851987065103816156435925213730677937429504501647169271828816061327020003668967774346597683322665412235915439683939538365613652686486837298684996884292949284011387485292386273112669828716702718481136575614905583233082043739549790622263124021160625403162933221099868737970167758264598754338836062154642777537529669950125649812461179862368466537131910653396328628344756616044726423851814731904504772196468103086556548042184024702565297515250817711483779491465167745609334634454480162383303945290418849053896295175185918133087081935591830882887244436699334951084109075892698160330744621861522753977329325440118307692950709223019183375373175352159672363099960534067160588020542882296001707419324184642583257264016922880373981281278736273807593533740389379048254317657500072963519053974607602935240533605340803417862026666401563186810242124020586040366516827706669483221479716399347660441976334638652913539680872192495023436736244958751743022398854864763328783636890666781018938619580194136349015293602568915205203731370683935904310203407816187976314508169723512077635423365701715755554702110991886072571478009316228368178293652090461533929730041580873322231966670264463698375176218393047210604369936880260595985709549975933025984779102935852169162040810571250277493488425887327671535976304884396623059559359487395416071991969883916567171507161486765352734137923975906067924263455158058014712619915831994654311320519735472633840482149348998868232340538485368787783200632076833445435223704767538930567680173690565677354832851795039565827136633538416123443477223704384048024168535953998788161303477407130952367492117507896834500336270501469501651131168885965298143687691324488669732086691392331850097768089120975022277373916290596827296140023416252740492414030734436382947409914640212951528702911175092353748356745018568499832460428946126652992245600277804724251788444884800477332038369537640380786380988330830285775574201894604753167441502934639338010939965609538205562341607604077727268076328168015155167848742647639293455175233019732378100583491913462283204505631851667562976002733329197973919276841477258393279362292690780011394818602961189119287374336077378391532792900730333462600436313395936947454598222268299207211422349935198595201498676815296617153894262967086505489331215149190358364549972107454986868267662521575247134337733284925850391155775619938852201292989767739559324424491669389245484143811562855264721066798620238292098430987202083501355190808057529079045227310692233170869401911178828079265968603114994418161702916668904126280640605619432931477576380414231685687298281244913680193426171841557897517352485321028531431436702147582435228188460965853707299173930891102765367509298548917157134746644127736379886974577201967256916298634674794771278797154474739213266915848240695026156644200929226406595417712991367007656424569615657826190919888924997718705918459700579341052709429326622305771955806777135607863337292020334288563659029538206995455974650193487038973263520613801332103815255340278710823921824577714449319018249071942687946409726086637021295257526165377397744256626137129982476722466732424321822264169934328304023458592036866489740658529339974657988777543229791905772596238723806909383794257518344584792694468067938840548130873883295699856627918507967898468390060011197143268209890523440805415442429722940809257319368685569809503082536715787595750109145224137383171868340793148172091529860870730830050997177104117320242461033893157907202302242265962432862575175371632464106790602908539958784305525833235854682495467728240319262126472230435248216828755270331821755527195617148525866197651367026690173333581141972632829795158469332861352532203449990535847500968410190861182299176725155104509514676345238026659146461027000569983550597784911165428997308934899604085635611530742202488650217485759865976505437916693570630437776128584879027098025741613567570350646157399899178362198316081182681323306573570990872000767717945131931003295831148283448311589561163122182654805237765973940248204402061972777461249497231358500976458604378588530667645309566089234750986329469789293363563008453812954198538467632867658811547275003000998370068084755501627603677080286798511725137842366986494114522882586971317159853452365641397231445539183159033165651742754077460909167859782940198967472950628381545016410966080511132398537139225875001568670695314368124296903540297600207412301824268342745470960511332249307941546826779434580153133090957722515718387548158618610210258003064725235668533267240895040409859699439942988065448727304152662000966526607880435320127990065836272279849017463830617109504190646841464547386323618592142811274417702584881964772926077085618182080161868360783993677067083004273881417061053253761950236356450866411661176634190191146255361141669381587067686727734724460521530584533367083737930380985327452998274918599835919197788443780462589727333370734421160969838288255623734381676513808421160721166771345373754244089716419124526554001971041888559880104698268182393864827003702781343387990053219080869582131125633149012986686538645995017446478200313233649384237096480744116717124413105219722493738723775472638545644508575251703566945117527840479489960374564557021006297957829354486702224104411606870053079407011595310174006443787619855036996911392030118465946531689188745625350653573474025046134485893393286844666266540952415060796277519711471272888624161609528260129565555929072123994071118775467634816138385507887608342553617923356117923813882511848035046492977245239462866080400970324458237961349192841085733647322431521707703029312912648990326915502810753823991988514428291053210495888516081136844308159489080386593069500648359120811857894714307125053219827380148621615742414192833158523442804986025321351492938016529724420223836845286564311462249112411156814176125641546357337896899793004038785717931876894638973739662597012626474163138937245570271344909010844648044659170826521702675082600606157876247984461621825657657422955948916007058902647387916465230869666030637667799082995681615241850026304254007587349079424876988808431146113812762053352565381629260240388435963006022038527450975765454383246516522216602435943995276302278242795895333148510194354359514514779930707639707874587225645620256537901914121031742996353053076920066874169686993333287268244958614636953103642034966251723996780779889455203897217029448505075377929967793026654614259765752602862652263240020140333845051582891838367141341315084514905727252694843381470136592109350653855836903397068714521996839210061514543392118224880225456386367624383490926970628535742041309879992673468216205722935156727041516010140520375152132044791984116437795225681490407994357845479962681081209919955728555775771125047810812981121308099178486235610034291273965646904830185329161240956063170853262242017981517621230762124725101077194781808709624248483833706860146764887428533537204707916801572966249453174528907287204136756902964988661000029181814320423453659433987562499480619088977246793550293441869908915387101094330492044465292865582832090763372779551756928939707900850105890269838548295048341455743729314804277184520144346194358660184983670977376720256135283739145183963349520571852578608106637305276337767788067498535861712198047410772720275278790409475495127321337024823454282900012361929648424743968818383822783156193739264396247870878685785380013758458732626779866177844208338120708067040741462939668930189299393345668506378011956732029517801821840419752375905611441569141367769092971333266434450117933266171561538631400088283671680368559495846622412570284130753566293228713349960624328227271492778497480092510959657491646101307347416400445415359344495842636861583613507926501814721711515597916354270075554535249709151512684839920008271936276020711446669727553968677216611612527911763971283885979588040552589047590869479818231729690599007172365776238257991150831832389479055414755286210014616644019055767125717664799719401139345794475446361171304760852234625337925317054255615262041082357247940240122379993146997874565406462021279914795816147013430551962637965599496557068331560829229781771608542410902900770955895689652239436975402416641233197482156012564257272038600575583524277279868295368900221638847856704099143235616978397169046777666365431475761421715023729553653068016058597344403606690403819004082355674509241198518107857879016867590267265513873732928093295911624677502554453927948315332827357924069432712430827205964738923784646914168051864035376047937455207846312463105235702409656935871797931481575441362334474014233061896611607929760549455078834261659901724026933471242205675618178672708484180088327825031867531731143364581151549209162612315061089300407747309212835480962846563804909447882388254169123690320279636101197538707051667919716253490229000283683191786632385867415086454405133281002929898879119309956470957897002460227316887282408222948591701308056849896722439349116906267783769296619616118713637735327948087026082533364103908170331213326756221307393281064950475509059276441091643703221590623316438435912678344811790138472387495230003348382306699950553395092106485629755417432039455452858180468709984392110978823390674860828237962383332359218387030396649005218234816027101457464494228210694499391843186132735484751311069831956147311429718453705570097349229260997825677399040262972949979055690557744361149114400196142916154146720802538010021277408669791405255752903284467782694578542207813429743311517168210037436207439250446261642060689719816863491189141118270444350744068077726670086995442063959919904839049328604430589729705348875134607105725124101948100740977504015597816311453661389242929541724369400690094932291110418833982629275488607353128212650302170617537788901797323666152448406248989425196090715155775577394003524920167213454477888708276499971513458235448453452456948665384669898772839249140019697896567539751105655033170834295382751770630923046085408028654943401990320551489869109014815676198747792762591093882198410072382692826071693885745174599490975349216932875975330978674802232587564442301802025092234193684334825537750358869614370829316708167267689341391262888051045910878916338294462881404614033925865197727985893367611382834213483325422234096178238458079999828782753331619129765485840823841279274581920392651747390383718805531616290063857229973836073578500175424919120960536815767507109776590617380253806220206280550353071124665272993979940416254821447047612472712144561022744593190563402485167888022361159389934990215411909810694422118378858386101540116396744174437568592411205442492422166605719982070225715320034581687467345230217230103652177975797384298650856477909388485993579181409133860237761587139240672219698531181963735388901977788361908036056228581904673949499718221161728193281731911645277510780714298791727870366473623409257618829241315262223981791509663770501445220303406447734261707543065593010681421258455337413621944570587257177233345242835775110637178088667780811061645869985590620587730247245470564483051097938714478821894145330490344554364948385396859024886845984428591016959835733879804018963809065083871971743851703390806451533620877417406651443507635185531756934735298305221863955014795659007563977812099787917345552008227321343236868810313585944290852913345970863589114080522416721470991171082664510850884576377273865641413694745886955340990855599651585887177255722032590034702992281058447870950672215428957753673966493397353198705881044508167152858845018567372734153189105503925437026518912863619985183472466321863880291088811116718927598774066006454240856179467965077378094007131109918945462185049032057249732320813866718692453378205974693410264443597221351579959864993555400785369492385530248030379228213258737973642874310541744841292767430763205321655243229044400782968068150080618962541223746922029888777507635855694594433709199956147320390284119835687696927854168802951610930794685095576369687600150964354442078723414119223743159205771509306590372404153775336642032663753378337926282496386104721262112609670789544794326139513063856603672678405014479607280015102146569311316683699813060519825364543981277737151605486133926555322912011452172919563803002856411612718716791137940778800701083112384785128758091207319287653431203710520937634586198841261623295803111262861819199284264030497427116126065601732265938403866589481766847507501563446764245156866358149064922470005067839653354828741675254264523025097036549756452121934266494680360638997864264314144149843153572488780122603511301964298061045589140597758822030373315278051957486838079482873383093049670285373496924696541267382381368920532285140528744742781860664693558352867161619757408146693756009269658262733661499604807628641096017614845663672096323451838088173121353997286085319043084468184984577914595702210936853105465830703930372536220159581823493957417558231928405358483476005225249490457823754344788409813853384657008915936884045525711470012773636075731706238436140458336107588510671902788132409429795268978617982291303396254240556433949452155390893271291225628752222925761195683534968908120804301570437097325838603124178219260415772326108075927194576375930500889882939581210187283861429829720316592873465282816247036835097434807705652646556119369659174865887504114266510737347439220182568793795862491330597754050998512516747123075709715583474701483041589198572172860464590283766763407353369870604550096803250695709074942687824036918280779513034806194909016287959368502458695929190217332047374603083549357992345493908180971031623603560790324568917978435881169968894421537864145354977697861869785375889133222152522942187624789901094310331178123819938999404714408974891860319273948867077678979334541454505518823813543096461793781711504537944314150960847209001510736719339440961564024302949104196712906673894616542459055581297780247545895722768357942029724670963395209095995560057126907511100053910718088492001036949880162603401738903440623509418305568224640020264861203435036131179268903150976842239076970176374387063702934890006618026518376008237808060333706031765775689369491900352971876920641352311010755212490218819443935898720517560435123703918465784212840793993632315839007484262891919198007471730294676302162382147838199137604820384259925083328362629253088435933595844318342494631465943343161139541000383582769368811960838736268832152486907388087045906886378571645069341792936634951136694095237948474688908734591155442938574973070770547231642618865637666015594438028617750568779925225220034122625881022602746088956209067348487174672741465721765763958419052870830084721946609029255067084158581727476219204335683554751703473975283425508582040168488714872500820658523398985202704569625424508032663618318644558773845284041945116439453763630265864499520297717571479592919185802581131749400675413893311381890012273677974493930416820181783427993536250326565798799968306622194570615735900879987188080654188453090731985402322369916585314987641775632942907359503436144526377328484594744618890348440803207162657583145377815185740991252762895796926424292813978787444100099254448909790842542207506042233877065092499913294432688204348368789639478817565523855267143207679261057036061226920291386446609003897509688617465417046106720373524629828488769752245835067192961863002872954242090382135641243303762031057690992723813602370286707916434553862830877156323551424144904309743497559909155177709394436618183277820119443678614652094422833722501472425616498693973402311134990224017132590660199149243325833436562781075719605822167778204358659181172328247689705960249107375647106473518371057359918424823204081189421981274234225904477089489629024696609283799312624605266751868626787881285949311812465339950183485642816131405896647178199496823154510741526553769325278407298253308423105864569157811767449493291245498555521394371388471016823367959681761669978487789614987708435108274289558388194982180798225529340718050583624731885229718102579517632110857714782845111975290579751285403705504638963324113587504455351847409906829707514601636798211747540872179304059225292633943819499981077934093244343907383015065825214999649463430515829078506169658920622361769652925697292186562141804843814951075135883696432523209076020466421628070507909876653643831273159556448821842404514079941365220300726453596450236561406963508464704812562864171086225438947524054408700914914058895368414332021830355956698939323105306805740916862636628439954839362040821910217995509826811693936512423318335727483630640165489213718319577596380620668565801921214565762175937358997891932687779492480299692906088458334797522026580582072360206662560498214726342385885717316242269257670721538165914033612449998857288199094917602762173239478654440210361874180497300862348629318512359999146293707338220465338407214775601438630557622826772154303390786765416924231470011444542209265961441384710283332955982493576214605095369607739493900815900937060297123780725147852337978080476083115470163412383404897893881602794514845922279976685305300424050763115081489052500630059296713111958621422149493096995014933740641058612688366981321578914865469562050906982807502493320502779381749298754991893232109162411281833988289113890209707972520149150214952736542988357359864015698785288026358113334970764615417893125606398060190535969943219056695680310725480324310447349589542383825097385598905367752179170430632214933098862103756516143991244927570549187900373990033127840120275085292664664641926522477095023639502472736879674536228433582714683861693190925489930528753819871307787626313628706467620738558652813723774438724923203296040914693692111945797502979203007208545593465448626350424868429741660085608175267286627930231155737678597417525822646055204555671904734885705603828859936933578802044447123950616691997269722162009335308680823880162281482956408162086574254241675216261442049898367655106392868617017600272506248782609761289382791075979014077162850775035528918698713410330530765314619507473109535170423634661071043952137276389606109430606185505848188280527333698172229829534641164053627204576022297290080387074775297791928893708331158069936693105130877005466434426140024152762016231393159955142630359376259269163780924866277066724931860158323405093353108041920184936543448114171274488924517292491977190127306946160793618471363219920377578212054294753373325889638750497288783542277722398915585228219943875185033877055050001493833184915334152012356262007349386869043100562045971499408553422147572054565918547284590308211804618663591787997176084643601586373066906400953417448375695542667806591885203571162795842480575355842593319892948122217464499526395145573572372031623395897204487585770384480062767470108196176425202351283778131233884479352352463919634577517552653021561532238617194958406923330740894601140599494274038495433061678106124001810186308324605596871211849123494896031515727965013404244295238712050886377165331283578103066111281298203124557513003465357897572739899443098482129083260635564895500202155997836220507674931828251342991434618469998310899729935559476840320665096605232817079700832424782315169822437264963330541507931315909666857321512100267224793258711331194353116011130868545842072099229938379925585888061194682876537838074793960601502456191130865768285581717793886126686975422279260037312028482925285295564879520631745097102275757839657770490909812519990069359028374178764262294596890178380743875306575720698687462458482683942500244506087698068034975087509924250604157124191365669390684086768653467181624718850840985534712707147366229172486171549163100190821929151186517806466468882283654509798494469220491834824860083502895433490169831322082500185877827082447660380727880632682694425215075666640634943308727904105726302743155659438203771096655301393064343508043558611607134631785755951496453002323494826146658918572235819966567658805463258334957633468015764655152319955911008568298160920174566128006480905572790195638242650896154603296479606921748186226135116075999531859984030059733663562066772440540402923097906315901453374489721015838912519635134139356328002623707520695402831254032166075050377752049950480052288681740939298305983800671231020299647617315878887691953744490621343625300506907926288848033889020064295263568086750373328820627892396299059950535723153346045650939646102997628024705155837657558065557385183508721487831595004416356493587687911106676294807266267386438643147412480860054019006140243139275521474284942622469625390092529673123579440310109609569416471911090604301613116735245533979900468015812793935707839472661798671275125943662447163274174711331451640965335314986017484024988258311787236693163410564326942249533187338732520929505632788070938313429638920796310692549281590419614260976968880532458033059353648733148342900228866879469525777833822588874589894918056061688191246913513373958887350695093397259814061014983353181789751374687085193055672883019258301051872713947580358453511382336171686144961104963032395359545365118279804309848614731448471304431213372144312976692884365198765127143400190670754802609672275681265071973942953516237832552332630992710127050678572968451310246220489103827761149085284963330403063248353166747564794492913023728674919766873173385117244040357942394532397313206113023749976370498437837417756534140788546052582183214002118245574949257619423545158256482675689610039593506038513945494756735028518741292117611966308816622521025687255674095699026503867715376304516596099176049104035234196859498482086654772229343220657956742559718954042323113285003834258622666696337910781872710105618030963450190108709220071673432742211082751183402571685846432369342632751804867028787346515307478138297215764099824563735108010182099084447466110936511542137470979188919964521267266833835540543739602181919492913846409491969728708184833036018306167177043536777838086437503770157204390943903099837155596971965582347903719568794013777404828146081036601226452540771050856912125887385617299018360287619342599606752649476604650829526669011009730594520813947420127307405101275795518097165552652913092478457792360391740213503834764434095983375490502400002805642825994456108634832045201323603605841523526145399356371253918713368057823190244543612843266823655541706781221595792405025597102511656726879290553053680341639117461446574234224690278313674878079525790638633344971498282928382221053314061595952677826923617921372508437497289440849050120028467152750434214291998401387389942466415506748231208899424073815642938824272927166365731356793643572124896254376030347709500262581887877229825430715620477845457027224462183137848321749286699374815041994588670855244826530533501032475466146306208830120180443226440014258425381644431776173060476738134969743054703488264891216055252512058211765997569807507870937245394702447412597732718343317472656839663005635825425606494705001121386250372854945784486414290505982299737604757740052611209728110390866216667442391949525383726303671815819861959937486962758515064571278615224193051485089057609053181944543667161565457996692007065322091858907515858776130509272447803550482030194153735213097649691619202265992004744538157719195943917586758265010933151510916222533427386597294468558443129171484597348610634295463696015392728702431160455181621997733424412374256914227213327250436145833624472616452728301009422906063950937999617430322490576516173866643789532750340094951536996649825907138345270108244082544038245942417842998842485364916758290431924159713766682785265476057892634037135588815680402318287838357200692493156038796870395746280440739691868969643280630681116501761618344542583131429254907171723831393711522148181667195997678965622303457424660102638389979509863514486994979752732934343010668128953116876429620048195377707213846500514565890678221871265271214869220236051377164696853140662015174515748818682503968817944592451037690780433707207056891822917356023433342125825914635925938205864128212736149119637109541115516804201185074647867661681695327893793291048244494299421101393538523474506075371555392910510932458625241717233068236878475359865543462986209623792879064281354475746741365923727391199419041120703359482985178285455615017083652303981398172046627211084921970597711677525396448518895965610932946146474885588720788348059543531453010125596467824618155196759878492782021930276242883555145105982386416632247565745254551647756678434354040935477236991302548408845172816394740710062635921040356656861193460664201601203748584434872565157299149848663334169278871888430916314875438875283380058414836029818996480158447025002837003479172278947932212194264959207277035867457004469917481147505804893844157446516653238472157316680812955094144776249260599050901200130126965967774049512202317181009742291278302066301260023670691225157524843974825155073833298265687474752718035734339098758547166425901881659157062666266552684469418930775465840575237915671570193760290993123489697258215523546620238343367784468488168067331903260237813287357623253953248265366064402723802671040403313900487707496713406095414164906248837302823103908068982344051060923109917611085596981990164992069987956775849833706048045230012789199617653201370593860222375059458547463965965490505584444318243425822887774462611023195682537450656241029368958034039929186232672445897226650020136029268516174058582320639421205726090962073887168287450332043607275757407761695975651410710006921809351007859350943926338350554044055586177287920244556873309762941899914796939874188988990875074738638718776715040823668110671376469917587030186456912846584468640381045161426200373567332507900484163728773551369637384086349927679970283091154160706720573008164883415397753219800288898201578696821798310968059182097378128067038057913240780231943765038653137356192856891730646343524467545759041093752257600320010418369390153100047073024808685255796799909908921530331020707781909856243080495099790384643518969391142295955467472163535135755378319045949085660141767920373425970248992542321886261234289942471271905381026783180940310456006139860003031292555940590015504456104150333104031874771238285320383624837727830751937985777651022319763023427725112348492241967153040118596375360904866723201924125803477519248061252818818921458642461146754115878497551546016787434754518198441273325178391483219366309709899010398200311213844805187278696703362801196892493698343729608863698452341812831433668930058153814830755361611589529008576364960203353897661136114173486019696212635052996574451092343737654456003522523764629904235294186565604650166986711349914753082588839986980594996667469429082189490491884646809655418939248985269868555960228152952507015458066646265403200323659756612337796020015916465874901516251489441874860306728633576216284776792261490813805306993795896862070680307420110048691338816587724395695601518825011447807045527563923328794408480612178900893815064248297910829428473288103815003825922064796922252272478577959728690073648812689753336909648983161888220423589321707623341970350303815029553226910942702639348546823794721918323651784347039426324772083057238280389772978983350757796736715822686663796708314496212266043656144133606736812057567230011710347064697547619087571533943116568078486097210283253384924422699950665513506155610934099074337533576183067077760639806184753582591593898884187956212624500992239725532855494046417081002575032690935208649858357376388356806773414416107365207654470230680482186839402503891395824527664861450866212468410867847965102710151306168492163642552888950119580167052245941353330235270978115204063850821073338275458119599728169924401341516955726364025995722028002374317285849242004192091601296514131688804295402373344122170917085870821791262867774550517645313675965954661737473564481590280402520472535643656787839234329173073291537137194780370418445982838003337267213210865808342708755542307575199697891643583291886549037347431411875461174048004526039516584971897089344123136059268404979492756417610561336768722981597062513364158044180066248323832585007644371521059589460406306752492211099116058439652471454713048908571659967326344052959044250309269115834392707912469143906345428906757826657044527521366947131712948724110564373525964180215934983350430136841961748384301286421093524429238079985573919595226461870242434927028150301326467956920155718578193214158619013992220436129499331387389707588568911604426604603575641633018638471701163988538569129592154514387605683206293428103207894450870819425648759403959073119965863551366668714752681818609713567876576057602093223918227592169610836067585418406263184874177197221229162305144399902806824586435256223148017356808179424084872710094553423646946866311760216137628820130421310086805688845767368677381761553542800594099646832869585184224076302135764280964972281769362496730633712658201687414649970272265981004804029901675415165579130058292584235756102812390120035609752795894995774473029011045718412314519949762919893865763612369781371929053229738409305926836876311396592379536783130490889103380048527065747424481658189728583539948120029850296792923261036674787033546787160271428381259739442891242204365869261495187046149064085600214192604235266488717367434719758236570808128290020541439541445237024367807589183405232849051013624298900822102595024929770866378368901470261805794763545118626268608988335913948527286215017090304464892872799108430310659850866010556938024432174812783292080079423186360776053148407061388584161501939577093540877104541086140435442282641152282283945018942644678202469191829383389628598334301697039264930024483733732138825533174037040013395822141724446429308598840496588486718041216569745327135270888088809967639032950030196385682490826108920885509040183140794832517083996833485686146530458636774160776530832155388961334979994408755865517735391159473446503809094626407410541339718109779101367467678382067561619100749196511465579048290520310597400513025904154532956529091335616286007916098108044448077585582480213961437784872343387247814027575886164051440100212249873005339451434871508249476875266039297799094104335897883528227415938015777808906009428729770360339617537409543462715927651154967409190146846252765737249767087346319478738919257373273045575893585448393577905056891863659580708675456390881262043136655320776258570648597499283249790769657191269393482650818150260024164982248514108973165857423590213632816125923179917454302006348732299215582048684916505236061769733767878378964136124416080113183216699381900235178901799637651972813619156475452383176070877043055257742905244330898322166148231549249317474218878649121829532754109510037562413070660800433125264406121208772627693953847108110738425992440981466353796296280189688116479536705883534298737924418911082651234765271969547670314695361148476423300629022900953952487781683562812503162130316984832440382037315565903993635491940154721045022345338029585133859953756223542611749868366811614514956461474347775554585554630635284396741099727275515056221913277319856561416002029151211572196405154305220941654876644168977590777252062311102413595436230565449992751796921534552262033621318513560017894563378158119895053999164101872350370524010973752457783366440123317174373252144049031934651466826201360127085781323159818257528432920893800491524890965559029975168152336919517324018706931940855812344055479555342091142797292637529950747002892346928985648726003377792936618508463485935444914709807072471886249164810466584621354415778232339980577511820012965414986170008987482700724458746027060295540382197023382705805784389531499223883531217556464574015302640909787712051625796873724141590714884467389245259702209251465595419830356297753471155582754136422493179897125629315044263659836191312315048335306668698160241976016861569468810657955339755009212510641475926929108617390996696573859624664923106531785366094237811582008034232876789539426311750078264098490909345756877599515634980521741029915794838325458323428146161274763137039788242517467695947306483629797891653335395162610213217673470697456162733341677875404664972983485084151764047655538451142180514875726401986751834596244763643627307223068712283420182741566932387202668264238926845575430582125203908361461828470268641461610621617772013976016055074017459429318188251237782949009775182285882936422119352219667203088393018148394147647619651740355890796712140557912673848701257792474506873681262193023959146335787969553347878187819649629404947148506485960807159624206856805274928727358372259976373397789970447410705121319538042579251214082575253609603168834523092536387590330003374619555413291386143395751939802433360911187949441984497575584429267286428898951168369745791277050245854477794629313493536037763580571703543690869162465239642476395278931747351350543516382161193907288106862534187096902418621241191593153425069996255086505621360107486314301249275969494173653553647835913475981999186924787717594852257635988879709526438645096650247354465060285814982674701747934640021420730098231428363840718546428321984873804427201666933929963914796255707509322987450115537442949170959609195263065636006755883640039275690816711571140718702898397749468181720954023310373402190921928637074697573815693370027026387049423544915550686038772281741820672169210939660561087823385661955869181330512968556605497346698382308493544880485972401114826601798763594669432213618023546421547652061916485265209483150695500267876795551216312368730878273623180006977577884669814915388298980805497463551870763784339075810660738263188488748012572987804151253534647632713014716488046738185847311389214444979782905050889371623567080472268159501742654906472097229207182936279148620671606574387211094315669258737893364560308062311838776037811998163062461480766417743732419925069499000191640957884974412583337466925070929639874236501538532881319563791669941183845265933171962819841213889623968674110749865760204686983196546541347421415019331153541205930372669319910542143584886120362711946381885028809163303348034657480335083613979787310067292417006300399457588143056754661421731959149825166776513149264083109393678770544086828839356740524012324921544224224291344793604066382856550731898662440165769824577570001145427150560388369944703687469700228808997734848991110855939260676380542984345830189100582697314123882078549086115025807764036393595591329433813297700024115523590852194760225514398350091703175317785680816543893668413101668928498009244018503277988770015491628892210646455404617937249141193050329689151679911667180701668892392122719439696434170734537338845548076457321735580236461225196525794317357947164033952294821703370896146746441346285100357097896432159806941521593845128508426608105781088020846454897576497303459671584203475366759765571930300240524667914690826644960291269299787356417993664165431514063281329431504775478296513360598563580138250280103757973588056105331001173906856551369416062835105419729715556273781119858199827450658705510744660224111074950869513865569410496303642770757430393868050551494788029463138073621306933740516325975545628718869899591960520261708923263369895397637457314599402946495820531501078207570526836318591224903461453486251118670011009937935050367973692907557800645767169088608627180763554072810145306751000779583497657239972681064753894562676630046538493699764604363439909224954782427621164466504254702161417169431311054985612550760339389473518193451171657398988078969817907939991298011965073674722730260184809944400666844916020389029758346038280735815551913896042175760715672851593263171057282168858163908731934601596962517883071569905112532328147159026943713217498854879834503965841622839659652565669346980074149352963906892179177261842239410748768193872927767034394018295069404695870163641336929086094898122892282506892357378907662455847977067575994034381687292900869212287155791197501287384233951385944946382688317538127794628992743718671706258781114195740121336209785966620712283299348692677585285964360208350977194000251872543676070150696174504674730996702414577901846597714799953902337795460600576344354235455209229687586536242602085354952429719872662808079877070462407107303311698549164651135794674756015842403382294695861425135555831253413894200149423239198221626710596641190637977221349447377245981092489347490348531689843591800072906517395315511425664574577453293121825972451766829193994645295236524734663097045157062992400918549586162044893867639122311226458727496109743198661088876114584266305558721685479292554998426984314670771602686986701629783470512479882016599497122075123371628796614576674661752601505520823166465500934029304499456255106276905969177007215978099956041544622954577615783842824842808367737513556748407873933129900552029484523467852757068890729181076914620274386061322073005015138279136447449975474441210321344471328019447512751851787398784135075772517255781297629459173495233240316852899692992590585156076895943708497716182436261752316091332213255299177978013611458325768225520200375957499583393577819385464052186130223061495890439701558453482315266327973732183202016915450098395118901878377409423435320660470542917217353222031189628622510929295285540648389689736827580551719176897555539677914175224181451934598385155352808858668432309676072184079572706105069490885522101899674399666680172283198996974767435671409062134196457210441455868276193275353840006692167878378617817880082818410801202000770832468028416753631209097630044212981750515495249995780855621292561249544434008517998341384285228440844546869585997578222168585564264805178056833547318680001517682859930042231742602234712557356890805456215228820316110116971858232484863582832805703090014720336000877420092452771835647259900507535292984169023669031437955300531406822699328392806104326255819486925648642739539565339002737299959344507622168497222646532475510284632221046208239887594882447899784613318931643692502848345383965790355832116013475675955197612663209660337556804605312414968678209637999445208723741665017473622106565913969423134813253341939580260934170133498481027299234237201848537725365348291794562463531757982009857321988204289545406509239263233548047342694443422977079674838483107948066713285021264454777537990316672369413927011454596108832204819999908579747465095008530433385843599110964313720979996080868906417977362866575248316474819856273016787231679213659165971237319652917492573873494798882522151473672446670359000179996774441478052491295929236702010514796015026934617604453133603856941336383636414771335120573376392439970124348716644814454568489171697044983979661943539529368452845482877643896525827398587134831773753077739459601844000074221188261010875615801273114504144240933491483991542525387364957800355304016326335822816880401091404817070873056007342553067099658649948008474149380460746717269644722407422512286927849806310233671573383730359202087209345152234538496639761100540638050242468233046862545391692309871779098613681705072707581028524559465167409368314014785846538378914196514543421477662336483194018023950033450438692222810187042245509152398934759551794093196833041007337265699265833703185142078025210366263326089132532152996580897015274912075550700784722836163995629372673561113878856830307501088577101188985999729834918493616025735803212981710403679571201143679230186420005788350090420961627476258486885881549217141624442584123757867524901099046101943566535113348069983587781813135588888482315741162750995011592047567330723830338275562534855931113017633629326148400410659915488313275910596736201699609764822492331585959748432634096703890386986675084271398539550041958515407256377430659194341696126428645927073035425565859102153717198400146088056860261662811929256399671388686893652995602153653596151195977640538854181629761824054107208760683589352649716960146557338637877245056304592502192992348078670820788220220927247082619416431327508699896391351045401907024026023394317077917089245887599861765565406295693716955385918652362578511692482216242488934589341036316153192686529056517175264973444537911269290084910579549070382448377606256251836141012626833114199807666435592407683874823334191927197209909027242566201260477888924144180206130950563834943260486118182095308876753421140124171289490217920507174989636023306595120616950862600205780474398222923721310992008899151006619356425488215537173914576361951296100213798482551852646261907829842787831112350645862210153429276310603057610390344786944135262011803783471776713646450388572102137148069900138339663056237300870364914803870617811035875721994208802152847580512023631627101408123788735392729155822628809762419897539674625074945261596673432305095326543392294255063932875849490541895481978584026936134823677118785251679034913441305526833161700718645042011131114875496403622190459548650690935491058310469651305409129371942430741969492289705171462515148674578849151418495675657315228684771680186907770434965070042616213102614071263667999231759160717384127845476109412151254219120278159487711554266666510472187772677845677117772089915947242194433101487384053654039972647294814004258994381256149368927218176758433964458674554477098361003886181281864667497749315190258535163050613444546970546270967000667042719409252038767340342345552054570168634708654424849641041650066108766493760962648749694478973044110030116083730324236089766639233793570009610963580552566867327330350579968071773377434056580457658902185097866070831447470675307082365238779393823253523420595475241152247394961248597742010745669519439885088706026835842435895815643334729638690709233073708803208979811922511995423034522363713465651660976370851836087506872437661609951401638440604828688837435145909976246015652505232813757762193250311753492091243169714693972198853630543148274772758349642150634161763063900296585569503492346206223579419414328292574727265330782315000875050980583894232483828240710451656138390858834796341161621172289685062299401637830141153405720491075172349142461427610815033888333205425929575820846977218339645003590282076743628207187273620129272877680574757988563870166360654612443331076023524717789317052256434141312042247334251520357933332649751431261186520049109160674639081335577754244624310470821404795778128747036499161970862581891286419334956892029728725663701865902576604935206773860695583083634891158945147564927903265060152295090941703640846200521789213046409388385860936878910355322144705101619825998051172719489498118878017149196493144410905865570872154779559377921757854110463559177954146665574001259440173615962173798939542893624574183787296420377768409523846833020297010466721949529738502875881865079680590932401595241554906782594743845140898790988412903751994435405371850428463516341268956564997173734893506286657466278867301170595169636774251436085008702872312855038489057438992352153255976612833069225394818714265920619465905264325625634545200647735067310290705365844964827168175137074134691804785139440492062157298990186109366588797734964869797077939733622282828459121412151137658566895422799023344768955747559712761219898684832872808940476677583460323117965011461627170801149188141093245912094227704249175551248940121020696849479874284593313401761657759153618967441741772891307962378498129234567796817425748048356472260649591677616608016934430126201911809764939755468712389896179353131669419575543870994352638423136901010053402713877185405015217089984876371831505231722907952257528269861575850645847263991372205692636568283941381069795842072000094003111274516187186920150193333809021451049237520882299006314059358920293464076903232987594312167711586632566373264660425616062412279393726320736140964389808848708330133989524583288979935821725751214734899643388991164384971752427560381965067375067719628666434154217406134117710534510864697096133051664429982665592993668236479119671809945865876796512784012427401145427249643882189304992328620067196930232333797607789272719945248289903156099673636231215865468980379570045629827202083985887123896224275239461389338290966513518415371311627172294255753354038652250528783540240448076835791288027295378121356969315636727950803227784769914995039759499410761416193193922263228127903953859832740889485570402742527713857111866483936752699279168111031232257153986995546775179007243178341764502409323845227941773597480821311914241275498055403335278433050387036461255126510443185056259708830847912679771091690819660767528571592778368020214021464265238050867130463012693454083640888056979507523722308151920247559956084263120731998208194504203558256224516376853117092413931317035563125272581690288755322843547408899981990194897860187419465379097051213879351198425401230294037173858026343676926650621105095593994967887622529127870655529564860864968748346492998188303276716357421367619609963968977386832845748953375195264885614537771656926326907694414344594311282482426491992465928144540789415165395316352178180390407435704397668405379305132666706446615685586814504528081797310505953915814795278532473451226593634802069390288398692925288002648922552673278749853169051101717425189008426067388864410273055629420589153489035582736378365083413157491611278754572890097917893416153515559729234207797734034324282244925077550722904550751436229117187055012372947408043597211307539086323727382194162778218661286417235569695512271118895966400702203027573907218951478837790460836768251388372726993432822488386344810873796771396863428411328394627421075009690739238089907636190962910254368584704143958915613549600458837169172095900259539899739755760843957301597297519454951103911051612816620336635536160627276428941821974238515293501687320499968122128429147476447510211301382458586861746252487549990466915192031380853461721063503792084132305172257244641161715484364754253357606282752602699900918036071275608186986760429628636045924118861236687661333058845438185460926408779041251186176728584915719449712447390316418201824869434820355372310603757906738560490688501761840383349601968329004914572352355929579156494227456100847071010393651665105098249651371011013605049175166086517642856145129958753711368305720677266743367629072481686024787521803511824653148819127121280977978124169289899743420679080594568399520959712070658121009022812365671463317530805739760225553917427842575238054666146776149917962302569030712988927673977786319020256832262580837981371277242625098058983697343809460333101715879691207519076279982443813571374983678675232166699146070121284722305826292344186484655481631577135563173158621810243347972223108838723539042193399245333298788478932055401555413377518858042761730118578257277442932850430621180014098627325245721388389357436858006615771868494948894099288980209405759658450737310175066072566429018395928375292863870934607339901271747216242815775783905621438984669271247272257179998657285440296030020531629658212389223620255415492701209820629381667696089044483204363149748569323623859921692023376705382377538287886920627033458596333286808289194419226363124224212691327071328628363537006374381081045048639505228954309852039970021820405538395435331158874454322868244137180414219737824898708579160838020018272005847634257213982258162757436772412417434054508485105438299589671727358028480423621547608151671607672210637912128354781675956502406452145009638034667060274025102946925228308224079960494092925621662005573641858566167443411521141258345905299322049886307993972871023682560327639187717288893431992066390036310029701517714733431019509591075706820851149520271981524712501867977727160712179757543070967593698302805467583543844920502023751308533460793476777796297741596983882747140932982888133600982930800149868573723624115834069000847352440646940695120097406343260074229039943093062279751834123549626835959640023393577435077441780822385425268124307723358527625684480763120366074194480940666593666143157823004958513767316641647148055493947110726651066425571188668417754643121525166242041620764779181868243643126225508816010439506312570723704227833445098160689523761256380944147968220482972198421744043737036480689204931443425220715607660415895587691226898097506539086906703114987453017114853117556429804736461049440651387431470934474246279455427788375705065700219330542948487850639454718855763084749797245429003643020651791628135303270634717814689814605374299100974486340794227568068345217128108352379522687534155661920160239140414892504420900241129589058301245674208467007131626497695351339948302461424037679472125890233690887996606433683580394435156081143980876335280551849725329248282296793035519663438274669925551236595476052554635226445697943560453591797455610896871343215387410126829171810276732766002224557618915540306818006533221331615652816418070754611492540185251368485185352541057403468071654402636476256492451647362450063211846300499802920559045820239331982728532187441088423335404670874547349229358496155008874185376643300746072940036060111280488650043474804409453171606897356568402257455552875098789857578796736816426304819483448188011742378469108323342390884685904034148353247637864094236154611862418726669772723225954905996584631730431175521337586801966569595993829372474139349697583272420249259779481933891646799298249138154109096330188386436902043774843954733945225854696738202091100332323600449655769023452240574960325157400611856863212528345270057565300364353824596146871134341781290429108108994734686957465922026556944084585871448271993422161805402834134210758645580723610955443089919959437780477471614479396572482567784603399144407043016253147019811723721585257721912576573635756426733704510532989367166068682920374506953810657996932051362997909480160125242534041183461007665986357520703684368062817226582742073928826877623170837105650293895646870633819243228934813578064561675186185445261738682774501445749250440882321240806940069127614909643772468121860094156329803801558941647271019770184564323027761767208460029048566669593278508329582166083839743976890645210554152185702955702333546402764002228990964355871536607767806084562624610064047751860208871353190074575481071567650533253842361584048353888463106098497719379147252312364819157199728485463926278104097175342994835205860275052669574462593366901530662705245424488851814421721097786741363150740525604273142469570658084560971813672098897886327103261774664275341688846220776824515059364791387887324013267906803024127763249171374852227062361944505018238460016708992379895770726023313611619385437708658921708429169370078132923478135532731755988840610321666865574860713507112647945101173323847992520569501631211429024327574312830738746515028483761245975885699966607254723061636812342273850553574019646899653850763335374554771845507281297147862149301968042183182149110264363987751950297404442189675343433755517700905017303209066620129503946294681709168623182447263644557208581269983208583890963144442746962647374945969611940409912258898835620640180576279753875170730817400257308675545036458626102685277397768725597460533068274535084932196055105091408066720348262956191027089053870415880961454234119787666792474098012575267538232223155043971702422441357294097350933492044404160287147039018963862589189570956455950202348973416048661058275890236742550568888465695590028160970439570465484740913950715577337121078020046181321063106209519605805084496377767823897598783246257048532281069177233354969152778585026654814477028062358621015789071952400866882350832852144521972268816763765104747354069392544172266508910959407737266161851011858153886071069060212578425113695010648969491354533197166342898376183330210027162099220605751866411830154426151291257145661762010416609591757112803780537140190412934221441539101529443794281294348900963151428935996215475224873279712446790893488112719753260248246231853734663197688370924011524714262642534628008274552726483365935229290279866141453230235106879763055925421387413725133706195847622952281690737969692516166173851995433905458547215413302124587906823775758484865262232471250727369781628330713226510609429048904003903422863009276137458944917005039569528162228042015238791075716282465854936374639566553889773156847279117534410904711086377845325117519807599007560326421002813681469775661206130637874948460842406889681492864160338681028717393119617916636877024975272246277547160109853949024312026088161822243550285827200737462511244387532667573541835443019649131257034846285358599278679780654145259838702686083209209243928136934207671886260133964733456500820421639596732544893057527724510539301211057336471476732912418931965783967473572623990193376141029684290906508132630539820057951502611092892830632554215572454952149174456263922446865037858536383427896510183762238283149579065476884907793261831911787779823022195935240074313879241042065726215632401528638542338961152874690944290271598131517617859441770476982036672306398303308167116616703744000049614592482110225029425154407140375562622119463661315607334926981013199061365265708119973580707287011914237249861626823279209371021423411793549331469692809958232520061171774409053057727195718347986694721231491352809503664670824019820032314389580073152396208408540271949207974148138697936156945074813198066432214705012052677538428681324882237630420053689806333581821746811100797403409571183573242126471038506502908494089345530544779859376021890235225608168157012030067381955142399638041401198292653682122557643658977584731099190572263922628958579877382081827889932342301089511998334957307498752446654727573440472230470130938186979457985703192432410653553246530918039245147585302401616444590401443665127941886664602223755594010333594049435054581861834806574389755749499600099960618669763381158027541139437937758166590997669402156774441411643293042308156582373537388837982874991151919232894673227685517737654768076053580318559118484794275791798752194520649196993326851756120258597762497311421333102722038378803901052420636128483173967385215752191219172926864900480078018925290997712196351741726014303254668383268131474593919128627067353995625616564369049771081273468500271842145274188907073016442076515162509677763106514207069073831596152848796260770233203613788655040506669836536523180138381850170715293254876658295721148972567885741238872037695210931406314316445330196804780752599865956060819933943634432897539123460226230745897291886015228059823309878412789806100282448479963287121531710738932877493135357560298644724503419887311387436458136762166703161309671656796402509632389325983987699188501933624481962546008783980529549014064467123105251851277046544849539455386540077730085884926840814937948524519468367416986248381201069646533950078824838484092603521253994815894598299277981549311480400602927115305810280202735153510176998867979403761767309826194818019972185233302391070061033383900409688471857727963574659833765885650397520880483510697763014939194722447358288331940867995820244710249427432143864978990423440028149635344128079734493382741785226409695290052265661884802827324903871319133278267788159860707282949394278815501220669353727136326850284180829223741260053130001041314360880407905179444347873814393762144313903933337320602091672738942483340758016949859488567324524741343918886556160151612852426169625508148232054474720507282819806797316873874105491896886529886164134762592692550169183158758617930740773154480213936311297607362337616334408266284841778912432514030768986030732944928214117537369992762304578894601027201250272989944577582990962449006451384724369764004758743603071076762512368046249972368556519194759631855709081160028371642713824109026538257803773114513223993403302343832743879280423329378160088777992850185915081258797745997471017674831627426310818117277570412097660864683068240316170066469962361893285478499502041894745932089673924630082359805779182968493091938786846226465240771009748428783025919702193773346925400140458290142116418201130792130040530837943007079345324860595549917657847585075383267676725232662753975217177348500512128421787668950520052430524561597995590819915916157055103407447300249616293297713499280245017443621900763560968175176761920824766026672787144994213012839729393228072471958669540382154547230520719359393405282627696051871728589601427737578436095099748753348276394166316002034264557970613235936758466053709822580097431771125907195550917200076077342773230450553311086753671489184513620210108663258755136144864004082431074599292113163381057459697119797322799339342494322059280639952725849265430720673145660902427209745296456503287020462679330562047068006055607827850741949986490732493732466442831348065891267660615955881580866305067874629630908503154675735097516789808837805915790965728852435534261701926120066959725448818506208655433540675086583065284989888126597344980991044546620507704649712632563788818655695125170032665167827976458804468111768407319830489824002387236678850482935971323926165586617472374369878462783920934362096274657504788219666119637356754989184135181722007438584186750008434591668962393138067124192839130908967730462465840739431904904279219524500736994844419663209713994701091320528331494088211553177657509962222421340153232389079986117985417843181640283631258351400642083621631220698238254991463235880545751560380664386669521778295638217561380246852613174780267153835602009014288554957061154929811173343846131316474773710613062459638702670955015140403418882674642055093221610690703610126803155701007616323248062546903710825566512606854852932673767949680708908421153892882140167792740883643779182264717420366179293413970747015405883179574930865000390045834357702827701089645296852607134164974828962821958330862351103415788494527543895870559532068663505250881208030073963653436272431888430964484883458433915092816545931607052132263978902861574553987510251826593481326307790927705061397316459736714184299337141111340233075064300340499326157428470902757419882749307435609253583317580501250405040280740251785688601544584331744551865395778176130219209838174483257927253854518794680990364466204481871839571978407212360044225700016660846673519979800597725264529300291972877643100887458683978510782718684862208701583822453069124158679784325960002188438813240847252672440506838572470715664642286823516141656573821265858358772501547406831162874818854238580059920110600313187891005225968858431055495804232098234660719367790246888666791913874736030991746522726906470792464007674772951810404676139169855890927510672951304246510520656306997767984836853037775876490990707319667736332784094244253973664296341542719629402231902156798054726833900296900314283253954544705595960797820787406557049879679486173355417941997052413030075639235456637430247058583788470999691988147558812349920986976400246807632184567434901623769624678382750290920843174697328501134969266768653280496921975324542500646758701698854072695113267929452377445646102430695731174282519960936977973884204653360463130157081073624810152181662691154204599993234411065514356714715696385666375985624541217238890953987386835140140929589847321413895346883427895985623820463045038240400788046193846673312473190032028589903533654902653460592624802252781609960148839115620969171649893653655345696990740661450044709005392178492193331067965713553862022517144979127907664055613899640053555632978005625957298447893522189282976505230624326322288679114414448496734087434622116302393788693188598926473063983612131489640976860103674510996321104238107135807776338894964016774492037592020437709920430678217352643294480028820102244053416094350862316771588510156603870180291460235277428086277497171747860853396454666721858818097432051392081053145585453091589921472614952105105277176118490422003025309088954668986663658166804299404722523254929492065302936413686355246272442603560832781165322490228608442329421872841162833112929404760503129027626367101002927141281441615485637271189261319698465554075690550504350217620332426652968384015414548456721713834360669910881711361902887436813380091089425198336727087384450207239633796460567653542106320742894782438434966544828978538992025335712671514304619555758658944076325536254833082968384191250740630797097060797729963664946740793433988660255806506035383871345831684286588840646087603130008995468233038785645095337967565032164157879435366016816323656215857233375701257440621352269271615061424966807190512570520076928656852063565070880332064000334290303938465358567191976065184554793500241639175995971358529100885798657727231027390076327065120364515123935114594204578238198696594256878579446781219813803375166323376919048037664463204479392608377845086301902302140568309368245905519783837967818049331600834616075189693426239150223630630188178691649141285295574617282745468642627498894747468914649043367391714002180712031950173643207328225223726420205310447286867411959859555554677995037394820974177992698266329155992321827932775977566470071590319287456694251959748573081311588830066128813002111630704115650792764870524522281653926678857223885735942775259903478916571016806957101652546593194094903520162456910691215046513834374188579183955737859025290458078880445660302462854799610848818515481569209731414500894968546892078803582964549324837011465633359950571750675583747614588532749591380601933316138369260994324315194339123193457800299327617611533496468066528514366459366200152876173387517962120817610553241215820714842491780488255189449356099525875775146059232157785876408805269554531404255892396475436785912161278001773491103424199155254121577502002577153869193512271409294563170182003260987254745314918603254752301927261683604533401153187178242173847722128643175923241771332607331472946745703520764766607866051175889004515612991380275497610428624651173522087469713220731776081355745760756421133853989606934869122419366875265359477564620213855952785298717702499385595445028758226771531161047939407585397281104631182874561851429252058602704236090873480418972766317785289074464124232786236866586747573925641543685386444201349068969424901079625240697890734720183504414860142071272366840014831664773493569152749152212533903330633226065881330531727752597448578931428182844464447230502186749853560469440544792402481421980036091444765996234776063056379227498561651315955149435852881852040436001450921346220561286899541181292484326304119182345011878632307679943513205178585977471568634481261354478312522790611996204022136189873866758538252787624068976272404442027858735385444206532214573329367775300304074186707140041908474379016684784739012538201807169736176150314789763131411766966934610827242323665158622734701175839578134013130247737014691802499846166627338322271537107664154019642901617059857017590426132065878965702930811891605468673879733938628463692507555407812145329713047089320667945890595853633725325935208679453767387016958387081791601742717119327979605575178566849349585524455448886411864058994639864246755076347467131375842923959761760103258326831756441300932079591101191400109254463587862507470185914914726572051776184950548498478290234566489107545066317110377251881334726205321031518238826975219837941697972427635667191784606978404575384673800472786905742602415033636478952846001658453811059299123509290696022165288966968263886914897438998946697972496603506072784997639694933294622555486096052801663210258295660629226615501682888484410638662348588128259933552983851729817375080400990411723307851255821059134393346606405805506219374785859059132343973338958157895461341215411830023237032246747550908730620325852362069243645751677851703461037307426600514321825226177510991682646160235533757879237362858108602621681708404944460805177303185724388877280090511970813516109808130649462115226896051415852930654318878354847462507273613840524112753166913184587275006195297981938594506966732671064796212854172540792698216914582342754868749609856027228410552631584168326937644654356748179957240752001803052379328737058405496284397215634432210096946897260789270392462540123540726910207109573729871541700985731298822241640909188902610429910002824560524176120364385900901160246370180384810670687702747173063570446811422172167297493654549512942919293168385251755588867034085213357243553757623309684595770082033303357123517920271394136224299750400605879378218456137627199581388406355166043302105833554065260559272799303135951730586778735002293345457794869822646700652042842757691471652542361347829809356713815865747676130111900787180567008289982989422703398643606834934564545742469800106249475156641153099160145655596465239336142589362269658573221686315281865151772545584636794599538491221352468835903803997042993141405234880272477342412039218773351019583267237918290466028434482495193891494533505110520688298295628653766790209153526661011258310731108306522040841124435026544943585909520574734896285722883209346467781240603973452963248326599221151514051485144468543910285645139835451144904725463447219126496472366651130053398262715621018183309475468316922115960435144725619997326754275248511549524531166647535382830001614549648712709167263125123428638098497089655853246098419586696549679701863558196210512818256778000141235078074833237125192608159158127948763457239314886489864314456124298797324352480155802193711131389259541386546013766533253678171130467362498702175002606965305855977003392464818153248104303777372430707439047805860420497543572117114920902849227451340811409996394967290361581914958327473406690138768661282996675412484504830983373431645391759609952485345879678301578713907322384750960308083665240167064258129500294129042066640134181798679633165640824209468321862011157492436983915059905706142120193294944474938672484322889092160619544923977744953766226913696069698146755494101419523488455751933246714442450044019154396679235839404141065443882657752499876232694424161551416217125178530888705284757841543063533482907491252271290353147766591970185347922509380385678064652202789268535463673692261055503722582930407985692691122512943793137815435210281321686307582361072534799039892126190390758669998960139218210682192822862338462048900099612156622969194812699776171925046711461381611460302965703341515777859525241974644110990637167898980416748355983938302502815441286288390151361490134375195431335126935047482690299729224683041395858548338717734008038642795468167256768792693589708550891777039248704784317337148695076344975727723980510190002844517757594253961219843317941064679428152735177682020620298164138486343551932847645297172535702032431235244799342646317790543129904884350482901545255797438376397511829335609014855768710723279931196264455952103880066955690889120662586515161189088286046692513019248059025246375953591069572721406169488076101632932597934592621021044525019583116335703583528967055530064468999693793770816256686099582331231637603639297717823101805714297936761598152022374170172002902934333322593530153616036512006171017431701368757675724670178086736942259236568521473734397654194367892419673234200671048735186417273699251433646826954886701123756878926451375358820721330981479031713472345377829053909510069384050574085360769176287497556779139277903675474067460036447365173297174219807981774923268272542916372822057015853854607108332209250749129260656263070722063247203187889799303769075800787783091549551578289926304207481778775324195306890664596987908504603271868676405431820616698404007227232540926347986252547229083628768408868507745236721490338584278036963740487902858434459515117828963774726080170724188831658814425628010268368064168237371750951132604042319720296463525828135920776062285163827484444874256512633633661187390632730183721616685882668942960365753669496237397616883711520710809412267934609883409417142407625679239664429578134773235447667104919226142571479872607884855123867684727931101106712362208705048937266236594615501704171698879650730075667238463687044714281644821434664900419476072400009102131018399503947745337431100416830376077314365600073782673558985189141600522573249585819809666294219009313440708226650045896983328975289346085008908459310259629089760234055878871525372713586501158400612335502920778191268296853871837379011056012338244845419798959893404136446043430401875371887868320392718228063424483138997449150083894066512921111596186432996861696702285281606262553561378138325834897526775331578840194255980654609332945793092309365687270881287674992304124529297744078751464331679543141739192051534186935103599348138640074140155734156750900078864293982897376080272490189382480930297241232024492414018890871812079242424150968346603707181885579639565510692958518054534755252732575280660142970531327290661264271870937699074977506811792540868188430407238976945324752976775170490524619347226402244105213354170610070969979162836476217360034146028748909076855129869671855116189189416096115624580670776986292652671998740859120738012613358047152475395002651499321331376370044973401910378105403498891305220553934847700250116303056936058230342151062771444864983766764112830528670105257549069178296336580150905403762418806647018596311391062320099995406265503637719656743842201357804466199785672850731569207719558004264506950326703407416806488439915539168055464267300249908773826162273556559259420874435887881746949047807698513228121496214001245156340216645734879105214539885544261787465805360882100886611006958867106532482124619104097044769526546818776910582970423655291279061006710202176875844509109545646075659437313972326213749210323075897980677367010460828125777458980175247546042456629188832965383120303369952751321242090208490855508001521978283450369810944745497651565656701446119655540197788900019985576586216958228486215064749914011065555842350972870141223236556181131725757187557178752275328841544651586999112710865622452990080015357751166759780541353818887693884292452148301127881513294879829666706135989461947635470725180627509843158191690788664791990248480512380132710938749023493339819075384281588582578999593021594691515695871501353031503893461039598318203478294078723784831461468165422924031666591817732701865988887032816455610942243620064056143285748593237327658410567058007432101060552444943042498891437832209700284073337832077417832099718517365683606083481452094545685782502193895434371111813559247674359429699160120051548396575141843702564360953505600732850081175191568955184714358239254322424196122442037183247872849085687251966347701864631744911963329679244712778484234511915891826696901714056972893539593088047681051862495237792596383773880833755118351909080197189325711582607477239396311699018478869644394461939597746391867791384029633431264182845681731235364652818150044415372577393862967667424200292889614303553259458304184322438173273243077481222829354563195723880039570131639234673487598441378681725347297003652299092060684263736390160230257090537695884281547714343742017900986483357699679782274812539613704877860490416985359556095766987348101519213485307012555410668161086946814115717942098128809330976552234681083538847049720485956944193579167995844197522425930911014625053149339478831613288432331077998516919542289951107351445253945533174579695074782243592211053903872027806225838865493246061995559781365069114739922712945235652465811776651724441547133207511999292507794638471569445318181383774420080188341958458789922010275527330629140236600206532586411146115851362144382742730411010059664385124509806392233408662929843609863435937364567984139031852558305271056999073926208573671537431014222611878544602995823773643381824768941601967664867575874272660705783057062874536808796209153091743651075570715652311227374295541647994583110936085603560384872992454316444355432057744787493838788113397074454727694438299622768552815852494662449330296388075669336716686292900001976629039946298471241745122456180910045569038261241251070458836483208119373898178762007916272638424179987300462476068506813336319740478940088133134401869712115989040237619318755281674155242514406737259732043403414365876402341050679664322110459856830076004640550442403839708213447208379911371233826014961582813525252345141137776448547620313782336380144005709830575541246384134545416354362872709472771348479578843244099463324463450366338407930936273777442562851030060029221487612238813443747554085161646243911484318644760580980162352065020399613971601442850059730755361879261601771300070860229300023103578226554974591329321252371102709490384745220750157533264808130906752615784509763602496400428456898407264076074718678056670587639437891930348910720275036788303617820283185108142718301655545173586012627372824585140693408330845000418044374153001220672779746602782677283601301411534839579783825446248711340457254421753298206767634303776350427619843415709634822341124791430293594464191759918576918755830145150667766107662080308416620378182363411220119438533083979575309577944557685325888975628854344625803271966494263770678569673961193730366802108622014418839362136287776264928072845783708434166975427290689781128910119202028439261749220211691709072300156207644852959653343744718250851430484980422459370600688324869027111001916131396202939339115851210229367264605877792485263291243871367978225345964488029043846395641398099561948903721366257244787357083366734849488663791931405586966121713300302847583068725659704951561218161881757277712185381850194031731775083958093816308777458870996567647719762819061659572010122252668007238120525391063481406701559781519359144642858874685830981352026049507630918007056968263934169949248112255802333819480487463757007679609392739461579028718680842952230525512990965966642066967691311656174188210595719615280831575546157640172145023330186511425353706571183232319323221903174674520793138585693522812142358366904043868567336952170364341273826093010581728358523731358190984866367605279971428062657112933272370602290057469822965519510341374030386888716888641749706785299911217912953579783251047592338809146481649214564782745375689075655083747320451125778222984682252538451426346687953148411636189080692415703602969047283545983898196079233143045873340759201134015544966713610940140421732876773401820931843617295347082328577362837634702998338762211956957423752849725992651937577711719802690800756005962125770530313116922390151783070516813316897562852445575612463127041450876796141735669623828978260202504064971225591940517857393706618899018198370708294885757961079187673598249622529517953672450703549620189051412375468926495063473094734875995479057890516062975359988080685211438855736000821139208078620378412095505251607066599270591428507175420129718747607560774737687469396056352450927429563965803321071613137594515592545507400407882193097411684296743585259762809678720378506875638285293348713286251431137014991847345528481657553020241805669605766081741517825477807197101540912338421413206620916685238483098709968286947487675303692016868969871700090734199628593503148298247988605825622307707325041407515550985015469415767432230894384878416775159336495964597115946779606861520606287892231683737496948274737660389625962167440503427383779755966031727403023506668654569527271532298903891575064417741895019864427852629353331391671884224621950908192996058236156165031420228294079675395952369114498980692471046954766996555638898799987977207799287530099947697382017467628141290855090163597157589719083695674153189805319485225448413569968294933441916693653618168925458003240576112768329877810836231881720373917930294060983420465778259914698291615608780925950163685359471538514485026197884360179363482371000312243729258168436820502708430348525477856091421859213940433161468065811460898314624131632660283471132124441393169540455081515139965978165791436486457040537271754320398820228583798909821160149326833663600046999600838151257712948274997536842228021410358192417686936199250972036160474400227922336364084121118443686677534833916559939374999004776326316515014923877518788877299868366963384827774909093823215201011104045072872471666153907253809633348992353404382630101312866736517169523946398275063523974981898492116712352219142425789512275149259583927310472806827625630939413002304831261499835241077591367259648007890093465391206948123734531513120643524237068014939862588451676537152031541819107618964929606792930170017551298484177609859700277696805783017988343422678273772135436515751720839173232034732567323424461297735493588683893176462588169682197817987669871003020007966467549136136083998922495918044440614962840293627083952520322865486387589556523853240132283023671013671877790973804707882862099378725824447088014057772046331128165634355411169351554844560374926139900136512739714056750726612433748247913954701881761347377325796395525857874862444265878458767355229091322690508532143779220960852187805267710790641133582879166415895126292384304273289047939311901608281546911730550548984997118899530795829752266154742908017980287484428381578741366819122012355046872092789884700556001900102026214037467095635302612334995341305433115621567397432083066595598776979756823595886393951736672851409536560952686139379524335306852675060683231625051468226368787886436253610656388993335209354657666867616698278058718699547898590462610628819884987762854352933900912404475375350535880426454565725831260259881301021255937974268422560454439364369884197256661043182804157533682754698645619254516518261668385837682998115331453145355058469084905529883042480354526552008208485449514156762740305679092087211786119536321711829340426992556821391846479805495804199293269152714558243545486670265234469816750187076173687324431300935740471052911212179349670683048451501583347165312153633166524470481605039082860736479257632063417093711373638324900402028645524704349189024131068627160241316680738877138600563825077476839465744155391863574320067108530385005330115368765023813957162260633904521728405726222909523334416889608500886705725192536307638714519554821586948426342239064257845882813758193509091305287061685643178776243726970845899083510636951707771158404231275504204732788931744937771247758710966950695440417927578740359632288802469878185422131165344882742682916269257642472667926749141792173667154734796947954109278123051241463228424193470220434031934121970871179955784888604188411511743814222600112510361118273637702218975294930636783960845858696283482837891198876739204521741244162305162498810369022810952090338552523290934617193088628159455102345520801578500498085540568378480357338627205317811258817473860124497786640388834153102275840543427049666751725086955725434318814047853752433522378945311825023252496370279135770970684221829674114864255279505024684290058621886515302188884249323808729506263550138432532521463650340002442896505930190812338618057912538005557148079702599244467089914425428026424737801143308202050636979171329860464738965796643105397576486442692090586474700023966502480035077304546425577353212828911331727474147880782714226613417035194097074602798888549500234378640150173070813983809991203702161755922161816842033119825656199649042565398079502410742779976014884473979535642269059009175399719822119349306312746987904340711010567862017267147541399094498175772106910037444809768378493994469078658038413137411724112378591791810009858349974037082755906199323323652614510586104956954324626228168421239822218781973222847545057342662896118734081365932152544205338411821151699705091877838000423156146108643759152348944159887284353363389515360430025111044431164164888690863983549585961117281796601102688690055420883007002235771192334793227970919599006402413475488880191632680742520136897973664260805284224758853817744413825739771105049226233267070738649231103171845689747234536152508024406972573688366354593483489584557610800587050791699832941606540974220622492425592424257487789098313254824482102038079779559183264140128374678935668339034513309695946710860216449874726257476615860422556851929706229840722421007668397462353724398178308132118657884260979229325344821016213547501074023819185733768685209864253143729500759231573427597316224181766122570753272160661983764388583697971297424750560157261951516574916203585995390897475261733566750447562226701248241508365624050269337568021691925081895612431015689228155543975792926817352066635807011180001148665369441873169182401482729376964324143115523995798930087123832108559819033470366738436666493757269618093990086564671288390335693879688191597193928723335459105244200045513021757140802267739519630979354136821237073610616254766230598937221987049795655485440065730343405593745588503211568980117975903668600226398966196904375064215375752676114898459369173991090606191799711777127039819589506149703089970205586021379701380064770572312285725410091568740950971924665712783445272601877966151549963296602577888380821915322602601355991127841612539355960388881401304590484987506693655933085992889356162642277039217054518275108572287878442293207632333662441953269387472095343486306485223123996738750177532664082656533680152741062155085013022935729762295879182383227214209187883237020738608109680719914176322341100311096634987000022662523993586414371865361166747102102801161817325771241759669947597869411231575557427450455609525131222981384236799167312925102513071361968265641891827246372544472475449156014094152476920047639369866642780495137536784781940821907801819421652820583779516958224128476295771798711304968441001251142535134030310704811967151253341688814657644368930740627591724176283273917040964906616018421139684918928141566413882905435662617709326962895379334109442643895054062511541835480773728913802457983687587586671794937158840804613680833179190468148064117571690092548962233024542704719872515985695337697476908436225244241770003226465289844113150116553279298945739982267107911524075342122390368608534980314864015707606026875763557538039143006980626548145199638435712790329482058130206982735297401507210996042860641047503147461105766877792622886178328310716722429387760536876792418709367553908043647305415065910277205501159493168777513817525287813148652047904389094524138998342612499717252707078191040502944939626391169879427068706804096882077611543800169004465924127202834164134499843543989708701632777042303044690366970978576236457733020127657017433929214785258025402032763272491182307949094338611485041638046029233343912662182380580158766104355798614436265818532204354011791011106945417214297721819830336444237916407468410767849406004724414759046543474548350676725493447930941100675930927834432891512926315243068820465106341401373774779600567645233553825190058954493420357464925251610570805141861780720999037085565426235450970661254210875518231590003412342574949856300449997390632388492701399009518189102228170796683583048564167491215625329379971180937765967161750161792367874371640736328526994864129643480723999294637203228357889352440472069938250510777874805620882764702846385037576531119612869128525811976083163181763874927667506598959976617054156275024902976130867103961201341649587462442433589306323228674823450832195401935366147850134773412789950004609290003269930254436935338021272126766959437616390052051391309603210623052355832385896618738772116246358161746022205035534522375825362385998754964536853751952286278306807556574585229893105363860439907946600141860937419770836561908714067112028692675770982050842990772655365359214472729835096210727227604177922014035771291327211200072971839840565434115733515356810268363110656788959915738323805229126042504911982473317729645278262003985749486997215080003267454897013849368558044419844894044289913272453696602953314979291796481877870620718738715578955560661981688505536065870354705455475676006647669024820796537686291058310026984859296489622946493169790922102270065489560068502863756868452859891339895039709384793087901342658215023872774537539273248301593275578190186337944702396788026449473797663064103034954241618338966854099775861215057201218526104060076282274626956436573160106394629972798291752860076871571503420204334650857242441462484009846859224613133118341918956975700585379244199934667059144233499621957729906919867125365758864024849558842080356155281169453077223845609105923217649130033423812389691144802264895624857978549394439184775583704713714436854488492506136632547741497343205820735392653113224493614631561092841418850046092189435896775297079650791764896856792907393315249977219699090007798328597407405121775418611345155450620492947563769739464043025838704722561053360349210761754968213086402620058149514358403348727815260912797312555190569875244020610780531765451178357772940587072964776369751527690016009535616036090087043929010333255477441386265531257992421327196086426966114208872192508202904769998057853566115813749201985457646927590374257562150395077905585693406657074640389816278161679620654772402880820051276564747926666493156914668655054811953124388082827065603190404247813032407831108710201959766105782957596457092691494492480169940287174847912952104126324201187035067296306866504870891957533120101433324956368385626826580226856483172028226537267915577406062725535828635353559942075000426837227937227287073475829931154018860997212535652447754724034624461662104914885455767644631223485238260796574212966711597350912383195856846460209046081647571553416533192880117825841987633828426254197615667953655061757009126026197478709132333676080340140979762742125019866399937451631492703443569606374996425159075402063247280603211842069793871516700500397718557655555769383150382693116095916395966524485825064016953285713748757036145303776334877461947618259605801264878610324711133535833492440325675477344414834665347155802426155798158130312902750574960683447062300903496343056941363633430415760218251905667764732018868785604460679456390723633480981625312427694968589436175422027053182378681854165158285562958633824026315478878698202363161240031549487885200064437085931281853009669506211712138200857616941026126730785676364985189671184910653060981620641001292730951324928262298179562346311743316325718508204885756866546550279300274812712302035180069141635626413155656215191897881709372724055587854947400430752591373404202015842372718095378072058738767447062961512087035916862632631752804016971978717043279298291481105925158176085875143651695441931878867564976713955935584767645320438067988130598275695540845093392776826167351374870798627956938007793401753427147869191522202776140005357561908788754207426978304287927031856615940901795958415469849315913657798158824226649250744503667843774509351341676366229631109886446733632595985956644016864631976224923607670144852420571336698035560168905890682541438559502232316321621759683661270676271160757265825395526395183089773907509028070533028809128570868047787309267589946563907382192603780681625713624469784633349216099471233455465977557627393472680418220080190395885668295763806562997327180193746800241614406366751672609171760458637564360148633628112196869238037551524805870826482944629665321032922354525574245455868728935165576789600070470660143076318964204247088890611892657361675293784350197549491464472709778060064127527628429863956882967510868404424885584493252942491572655868680051694057888404762724158227864567924421811525964494283076232913435020165000322266601988533379895618793324300661240892622852793818439913842755773171474775713023382480567518026204970552692149580280527819586706967929514235301225007992289973355014313100731897986548130700592024550068176151390521434989154388812325924276783775966441849543869759100477579579189045346915374776006261216553204918907057973539655241028198383864070203085327740512211795059757414950825464221448531449814968023898853800770751393185149183921323355921484215779906132653821285303769029647788682516638469938404339982724896068039626639726898446662688873930477636385020145851317522843931519202077752013673528364525034669864598861026289837795057020543856286460236955757946272834689202253727105266708751624841950528072733887065133181951154614038662209410475106906341077339830077736391813879347619098012323670644747933229170264403247799159595894157027476541718644899042626013362219495296822265927175704238351728197887579419266106653963349901373064697978127944215832027228629001739884304623721478347785292945422233795901522260004330911338615691304435564764160332753135539591229999125351947823361600052426472117518769665318736621546532809002140801766144262068197856764275863679138882315056841128547434677081063282416479514464514673071291995285929704952218261975254288254439493591865406560898096249632523149425215483792356435215966572614837238946015331387095149588862146742610876518851412694460020106413988031548860000190938301253297010221350768224321428559291698092821916334090556848147591155820160001309561346832791474697023268413463417138171079966263749386432879968197616403439738719188873848952732200048470084793833192292962485204899224305949940692926839924095957372853148941475820794059650242151910218852358558553459058176733658460144490815779577130064499755661894226651256976021609846225006286165973842350524483422040405930764052377228311573881193937069468480529300893528450473806550117082122802581653009951726546436482108012352467921718074167912440366483411115028300034989646094941973177030110211307653846464574449848281784216435038392013927179124839925455336318405472264529065203729128222667010633566057799525650076835529143905154371048141313494994893525414141023603723634231114110726634733870948057076276836417597340660795596634759894872984210639383547375481688318813060447204608932467097901528046669725504330793701006682665019959921300172757214329532598308300576765859470560467034411496805902302962658883388080885984261835608078898134209376974758442955466820971232332797968755768223025544138147363135260854513978048727498700061813089920589645822323132097740628568394057246419095975184053380923255602945991330165809865992061674495319193416571852376289830498605318105783391128983125066811876867993867473457786310441612929070742921635533343569030717733912743539497678735823199061292886858361037938180875141710234939635942564180122973151662347543256149448150335772929080149811806210188385032019278465332911138164558558539522420672375232859898770395090049586600178034882708825325213921078038632458743884971795306326650605223884247817758662126958863145686186863723004140848280362553295098829450972493675570195655784781214006764266828986417360362700418542810706189573368221330215105265570860791422755540923916920628762007043213259995281509850676587556385514417640648488473195790770317121864085719447027414264871881750646188089620798772101966666219824764226999244728541046731853285014343964290085254415078294991477128492208336864486801658534409137041123638057213485705992375219349079585923568104821171681312488638297612668674511853899345956974371346510493246029742459078858221986895356636529282622814980404373608206717883525495701085207511997474880927461435187641222157740865058699459536810579373640327356844117639909686774770228964564261496202154123573067836609169011097735935203213965146845341171541270684017142556202523917442962209920353410736337098789995355397089750008767274835915304703053815555645861642286088331741805329187406323313846575086475370194009145035871556037854893628588375385901138639592131935228959319818705706335415177591292912173139072015193539266550129930105203151964233681024144727479987754856516659804750581683802246603995922529571986892459369250789154382547640766747610183622098704822753549072561900206245520165365693755389055996144826179171580163959844958577709410208170102550690131238986455720064210208241980118910931295672956536299854079744157915998586309521912761840870829789341666654343568279608988187821456046718212299141463384957562341741339284012912579027631479977553753393715925539810976288698623330140342763282997886207434920663742835467934627610285123172585046308490355264367949239568557164690481788174109532174482988346137382323503391701575133607556821277155560945384350372218111987532780363695071847760922850091987639833018379357074034758817235430586847309539783457616989298986859974539572130691204615272262234445940260223728651936059718508316246139692104288216930588870232825699540187187899231899648726742580300663212482005895256743422287177764941717140388563090375021353406463223594144141487441457526880378450532010859706195251867021442313825264542442316350907105363069971227696014695148894377856169063084734696567594120842303848539082690508643944422943043570642339040984007363229818559856738366160811324644854503696899559418185184077167780765324398161388941605549589900873727786605377214893514238292820393219332652904290690053911422383480507636941053512083213769338711431042311658935096734404202596127580214064832038208511838146948833190377471180028063346127376401356679724181232498001699271668580361514110033065053231146781816909694404656786191389037782056726995850746733947785457924305336288806770568694654975022034500329014560272790260342894235085530101801439710932030268122909670647983178551465675450415692858536362082553723445669822385003489814499003068806330852966746918610455189909498979451245026836943964522615893033311288408459022538854406098094876532310692226024592810605642093948508075105994121156665270597258592809534703527755787509214819471068128786353179269441488948287916600075923954614441431055812949250220787282414796072305421387094131203753379903707481597079033046134695501444844795714969006680350981053389343697272308341862971283825304942940883952623002245040729430973670236672802731106148054182156825998558701226562064520758831823680544185431666066557611861532262777130605296286729169311380647524533542352341138424012719552563042963472278459264461905526870644967239211728589845084078907020390075109755263341477067651254512617190097473526699539873111589713015792325180144060457891476388381654931675908621811865764038384050599667737397987106313608155486285825143871867975945082825667938639699407981139011134937842128603965531805038527244963897415683030955564404836184705239202047808918367736394398927256486866814221552229665296213786842447515937219288116643379090555443479226898182710874639066039627008963456144457635645034740508162032589281574852523931973657191858287706579746394140717111944157584583215137564957054804487953357376558478728172299283220357205304225601930368496906294348125911868047486300637807285952549880012886644515786846447806210246033059229225875743467454103336301452956318233475239057258367625910704399745373667173953800706804380184383319949455965028321204019304668042781876178922005265477059326273624894986230705212949135929066981590174423893464918399050311348264932100872423132701067382384669018319165887254369494072353326955687249944581486091614755476048384105877386495338189538027473952786132985858951745947905483978770521922710174199572420113824646671295538147719855095143742486143494736466842335089611533366052127378868697414018794876328099048497600123081434690338426394876761366947757598243049702523759053303746325668953361186393265847869625272655979063826386513574399011274365030584187307480332841315065253908086585981728269757477249805006058721624797966952323313985450970704486125551905736554253659957358033865088072131607809862395995225339179197649461185452661681524813542692930750193230463041291769972650576093301278429472138266493794088328244122365149038284607573370259403729613953783573697336430729163683769167050471905441992262251306061491430448954411540579838769590961195395461879087639182376864099731238209589124898641994077393932934703284129585239410462013920752230744975175281009012793712830502439586395345585844219855409370810243463210489152737861026546336992739617618075789620448895317567659009553129627130079763797198665489110333769623577045365755276758665604882612852091922600521368286999971689382456703755027079146505941497115488848544197586722409899252647024104080143819053731051856939034387322791907020163440428097568401336250641274465767984700402584492322773340137042597843364198485529419984586884903645047471943009290546762462484977369224706966074771195222242103022371294207923840236169103087986766022322856504441638796810544819709686318068003550847061940817187889344814989517374689907442829812182353096458201615197043337715868257915724649709259130203412391401876160118052679355880514877760315732870900976219400367474287453827730766213721338620876953668473113624815826131971740117987564701999715558494236776666630533506474407831210499685393917208719040446121262605980318517039176146366240112029440376190268458123248385714698546302786124139815419514547313121187553446638434533965625297843303682579529569181056711746897902061586978861392810661350699773416564950161265952984415331355925311942390564886642440623455687946279142883025930967083619412695032637616700404911289407248090461807434135084335231339360383602136810602716215658941364543688353735962061528092531342330937783577858796633129946754666288569710444999189870840712189288341655814998915123037913600970797493032993174998736515332988791229506623853724723737804948941528559591681013813461498683654448783945887431196687928536839862572670510362137982258345366984659986862259543656265954578131545605295239163194167394234472549827807499635233687003059119130229313762240819698727218791306901200594630298126082957800173336372045038872823830214558075719265074550432955293861233532754425909827922586913400248203794059349471074737174689813349622204117413594924992612381637044623683392481835769237218118582250384283962458204141057243835774518889394190402307676476120101341316953140574873506210803526642976492411038153369656578838500866888847787576466314021305163410948934627090852790225910074052503650647978714101824931458904625644210085429150528794338686665900180464978776804102735305703629805955137337816496352722331019504261916468065151907032453624094040836633776356221470669967023326119649753876309398014584584196050847201595505494887295926986771516716904874617434669655464498124064572227899204672184236339762726522706488594501114098596770035320042402401775247887047990864134130234963426868342898948067232651543898612055543638320174469169501603485548408892367105023802670663505012257586246445012428082182966220344582560144255063691896637063909373106140646514462360544846534658652607098763293860218469302372715048460904329965843893298494741679378565866210848498047064857418420418995653800100590847407061259765269103862276973957498481922991350188452204172873057422086282180201281669684619781012009556169600895378655309434927449289761131459537507617915919559292048991243618269333280396354540783638900989029834871716059867391754833852587583738729233278638579726720939469732125213339233753614773143306986862995146186293489641877603435857451716450063917370703401999238581899193994578224570747127320844003831921426294145329125334259699207923897200733416386668026037775602549493264779400272144454620671628073229661374902718190784376979800143037404049888018376035686923637034279680051202235379413006642979102397479378909118483970674999674021143602466388167197867101732722602828043471468452738854132356688600603554173697648515936598948128921912007704268514614607326463265669062696497391319489929922548058509698578682236682706340882347548821138788263121908160283652962652711863748653611296804738534492140638319678162702809518833264991843091513198236293568860761043644123556903725540272692070574609130907148962855737419681605158541707534988801917603635046427169943378107436370391723032816972071961936118380878805865813821892010122678430344479631441217721725301562007745031015222017321486208227694273539023550008157169460946824198728991499871880082831323274209038679333360108350180986507686476776799991363793114753902029783694514805551379975113094295437493702063799985270279588559252630167080379647072767694585725761124895214654161419254211852090781139562357655870673706537907021515775675652633770380079950910377348007514665879222151612484927541597922409506438121434391862111761744396935489415581005542340545661796410572386003119574815093499602291641566935301817034361177155064231827970002039703301950755333398897681662946004492474564728341406718458231169561652698118506113451399242973010222397184747342463785548442796606493303833541772606882266985094234563282785073903297674693233532273184736309385948541676501070190755742270671794889231666979780462431008694346745647745911743593272263923479942393290609157979762554428419557847692459688585511675543493054350115375369245987984754163823588777230117432401747414428563126458278762950648420714433507650939995076983773993760153751088531940849251411674736427366906420291794611978290671288236403858181995713395890863643370927647295349156952478585415611580425589643776016496961410772629631121711112172589632742713729622135779846129965621263329098474261804196949952836613266567413553656361395348767164669274853139739875347045923278309923648412850453243914583583446471748445591581677351708952665623517810008385948127457603051379824992182613490845189491229953172421882809211847602426719554185549861474685553001413666214296466986136908285315348589292397294090376236449606527580288296872154878342466366313106323279579711781502132144735109190865948499902041038158198301170400004785195643909928228798857046468342125898934773443144054685741965378518894781172185228078641014876809783358980392240327934427389751328962805637916432778755016905120747279075829550813489475003714762862749653352630730004395924761624246116833237891455301166441845049650961000219075928353569936951295418789833089183649208742602111701956375895638845023253952366543474611420094337582823495528722184348899098298770944561195145750990629253848561587286870856299708876978566090128925061163045541999501245992187019961115253725139595102697322532658016281218243106692512701043261675830895548839533061446363395000796212461543881788140860000160207728204222306019885032491343229654529171246145567742536967954803524006801822844665558433360884537357927736762789505633202008468209477607793677828181338740005980961189416468846539652466651376772415134244624281896070098054779699962533565648517985997586535972491259004823518241901972819919291460330471197374933531425581432457223362030265190608980376429698512909858380131671948376601928974984344161686146930076493816339768113647046546381466230302801383167364698856307232399048580347229256552488385531446351148927510756824114365108316396641666203742666125492991319345619922425601657700589599578595085727948344259447355687786684749304492087167737864551340258997756828429126271765277183511307554590994490080250057912128094780566340264560950206969777271951771986582790732770384599740694701369014101192275422734960483544914918297698599044605829230201780449987444450465475358421512872888837815140281993014997878928764273617279403493987884563309643596336886702906969712746868925909790689199959116711595019787477917870452484477519135622052583352063241776363429814700612869642558251414374313537942642380150770623035324114870869114405290382453868483804143889709461094026425961899576546870613303044110445856487995644858412808807034577298383387744785860097490918022395629671246739994683831842618696515643619528552545686058666919472145082390475292873256698120920896844184070249191518938747878154010531000112287100527548435769930286281517889237743256270522491146572698187232906523857779612510925338344790784683215292373777381330952829054529420822729709280446483124988530788896241001813798608385301449000736048371802679405474819014396162943401330996075425434496551862718704361300770510940098288097971083344111875613776217667132552326687625629285774303660829829462421926216342883350216167449628274962846998764910310859780800814572107913341658645404613714389221757000983280573279222977125231843315484679927571794579367081188952995525031761460087962963148177077965842212084291181610371986372904101196019440270501054846700554768878891420734375366178794924700593624795074419657370082344320209008442164681827338189581032508391381098309650215859884673585252266182887196964420530176884896406715461826823979943605394570193451789029716830357609873039468045662435392404399932700936061071733734164738897481418180272859633233481342743013676818834893700692460890519737612449751369788975205121661087451271446864458420340239271545660919424298843532482027509043123517678325628533280189783550997072190002449207321701755543878901717968149549299682777557347097634808294671838222549801587643511558283049026242695920237356318073866486799589018223788634715992314679688292863809225094623752853868251569069231929388298733871837917245197694239203899524599112858657903075542579474759386809790778440459943555434249767863344271705567676176202455056540117525435684952086685319708325783263318848023613065792569590134317875370606761892536661587440348585744268795977130882747729573880999474370570937861503166047895568863245169771618678381898434742493691521617377753195875969610618207143088324306861591743464694457544620943970887305541028303980325528657127589550950921959426313623821222094857011124171370338425024779022502628030847007913109507826269254170520658287562332992911240747535055651911473828783680245444842916863244835105043080687647676117626418638327769954294274467675934926081084138172736530488075294728693454218702771225259729064768852149772443090223493666445437348444246157663002798763112816240959242019258214564736204600310779258555241721942481082059973406057985387506850885468246806782650693851939901013956707589076680558523569471924768647782881909816902117344483656268034151289172196990029809918383573705930979914088163965607440341597477124296641387504532197694386816595789590371477889757744105835497415510356459147462733984707731664437514774448884340897498657595530892170215797009471041589530956406483840469319532213726934147470898587480532732650670371608621872941811149280327440202377168606345387899908330027417108283264419674348603475721909617207880727545657351255894011975082417102373663730993804690726823278592364286019346891058992897752837770094091913135830803583573607137526918649659300466185573172749679961685620163678860122784782455273484778043801161654766778534633504412002894018423230592936177542048127904183565780280032231527064192381882901855136248890165167562209487933839896303346456360621602404222456220450532297234356936892630282417086549636841857394057604572793183685710534099846712092769152065629487391801266457689718618293225169280405501372739023978582195133175489473793144451262997431331940956390611481696282037881966302339951592665849600642818286428580180971857253877126951894478519158758438954595879539065207825868858143350195350548376143779752769095418008159115614443897676542307611584724737466825279485092612812796306411889831443690768424700563422884000514117120952174933580767303612758399779245109498076709853584894239393967468805879716480733784727057151264273006695766221440446990722423028715897140414913601896742031573253513994889675844360228951519587130263586781704129298788121821031273519696062917975427035471664697498524996255238902172563613358985286574378282861201965292268828592891361105203272037693335841315919284120797401289313417898349436116366541009417782906899723709379539498948070491449653360604003739620214343574424141657212210269930862153749480244240703224889798541606016101906535795374544286424318425924318974645685932133684403002624125710737407444687135905994378701259404608192494365630270809488154139210503087247855305630932397649193476339966554555297997783094455518508646964817941299141013665320367719725744792005145872091318101015223499109733099836459858426637772247395017428632870287001403994791358163902757401782328642619037893132161376936615477447474069709236484721853691370945121399286371773283624183315989571967413583844910490052411503067936197869648050882628369247196883386021452869726519589579166005976969744753711949405490134059545934724871810381960846851526903757660934880952755796356916362645059321267206790834140523217818901799908105230021224230189781436797451591343427297945269198991437740518204388245438950730759513637107375771923266318406084940270179292774276151150127145662108705080836092534253525129128017734084529306544501199394635920799516686144683511436418913109866625146977754880141495998460005709173223140787544567075639674483122405281769508642191383123001876289699845782069724195689979043001907326456653754915192580348916034910074935438489841129083213907611251301203118490832034778736049346806296285573155764732255873944385208845093514631080528023151401352815540645487332427966858246289821195172980972362816920746692924298222026604261343617512134820691549048665723609944520981549254790767949956719252642319525120725246254919437858820187671216040804596918880448265474340649752946562097085315163650884139395544281260166594700406493782892375611221494955868484231494414691687251069418963623651027369334604514976525921962845647228150292852697950132626178646926224849676489471902376362639789613598680244060838290877273775205466375063755439969075050969912494679384686103350892010226471286123498628744699348139577051215282586500610250951715338025320631800876203683728548258860501026231369920935913013978896126449119872342555581915909465041064807539922681146389710025589170196250289742481436706885628941854874354258763719255697079666643279586842325245057978635070215224311252254906215989841785078251602522407006567749399834739880944168311777526953592622055973614744211296416842921218709886364643735454649217489237265246002615597209237966724307670014900136193344031801912569260348856140772076935799708117031108893121352886341359581088678128775192449667734313727330882274824948247390394947543101442743865612218139661837074425530270529365216010244057374032493697553538586975071063950715507496648251085264204131912241846686960707570521745841765775094476296732565287724511646940321577062854132874250581707774043017951695209976318859278199395384886007547568667574531543136875588142196944647411136320125212549543036031663411495433685523606935254104355607352241243248033829830002796981275563292069401731062560031571139423203720011508455185652556741026236848429604101664894469822382382001125749835220391759994631849838956751459870368239283160921891022431962837095363612897202537359190846842155425119684167867143270119928959645667367994285284628872318734132546501267833825789748078970992007384852581496311714717439269045334399871949825024930406061282478766043068708856290422179060463581269283644675075786130253638236319693790695881128941007561895243819776154199449322439140175816574840188415333804749261166432494896940161838318917990033304813666963534946032259985380658370512619637150461622288056295342535225375714024855678517908345202518084482454532632803171262541861853700211084867416049342452053903594735254520900718682205543808100067877574631944281206600365537234061937486734155782014925268290385817926999155723766208947299661520622626963735226897153882404369114298824969529931201419112026127892809181902759536192465213968310520805787913922599603317811783745121658531607158375073099711351282271286781387133533550252651131361891835623256045413214885315239105095250419662486679543976047677953430278175231923800666455258382419590116550040113172945863411123667798914709750240430415150473596240318627711714597622072447829997816443774446692684201194111550107195211652649349179300988649189288171323428600360606828717410401465757673170296510728102998081500927323789598825873308345520965970872537251893347808105685030509168739991174796902141666361057405750375566561509762752848298605011202904351161251636823387792547791536309033092428820062721603736845908505880041879111837626255224974462335420601585832385690352329930228181277066316001225330413750417231365009954680300845337702522373812398664363765038599129526522477530119935957252125338963238390821565180805875434502220285942376781877167759929197746215647340151296502442247662636840083965075038508583359577969579056164509074579411612706980554303991021845198281817831746173879098653096875148168216213199936507626605395223237277251600496978906336339234470350971335572571856504008947518372225048013289936887614065148314709613250499918158125547742819233417263152489474689949722109260927643762485202916073265166196104751500069504226585338292399382531189197607314857025269714696890850100672054596818375879984160816249228713948190024657442585275784887010538850309653531454878583137355032183933123958028675607799456159760822640984413628600137860788424374636306905970527514046139882393588198293005192172638563521366991133682695695449967496122825296626302695837240866310276129850930612095426734799493824581477044035213552554025138015891351122545129113146935796250204040567428856298766313217521779248405454866606120076560580066578213349051733451363549759768673848003866862249488950811076508034238535406399014067945390122794950483989890717799880849148809977062902233243340018488786880100477609538217332977348805804417267463762758941525137957731057745476166559687443151963054392152308682072909874839116740206380185601982511249210708528194007041207776358483017802794061494032105216365763871320407350241643572619063273410981467891589046164804919717412910486838686187578979334572064037112768414073821179217723586484930735974651407766626465971036606956775951784980137339472563073523152065862900655526034332370794857589585764619540209592182609491129475247530757117188705197053400740154466113051343692060472014827482459842713865063137976087603927417570346677841343849563280763839170125779642415423310748200625486115948791151883543086903751687079805927541403401855772334152128779335263580313590477886605261438375698728614700169084661131834176445547846464176056029697048027410068114428641824457011141445789830683211619946370714627444349632971959048702674461715880307278852240124166565703806197147986584598858184996559870591302248792414488132260135532664082735047776385267934836163744464246437322026565127522705362696867878844871783609083024982017274907666833988535049557898950794902688857762467625404275902574101715425234354069658447454074225875172179983139770131478946383379319507200882216929018130068283776655080667437556946854122524076017771713053445820742241945329309914547387740319936629871406686865847263629094702740614691129607637633622961108850371535061246855493166228594738732894929382999998904893510138435563689390699178240401429776699682656231967787052637660717374421635492220639163681243177739596416939471321603330282528650747972276295489243307488386454830446977826499894630504917488092384423311636098780060695211681022538228468773208033585007983008897544689307995454549894105717837733975114970013568175722817979712523800632305976861077680404599052914296964093176593364888191987575447654480581648351185698212172337101379027792204396204056328974214363837131348071802151753238012698244034334021305941361052838330731900914812681923410225711004661162549693120770198892859836079036598676615848637945176676216134169528140874421619384924498136714789148828441380444216906894442335822936496048045514441775180301634148750501189905330380638256020658634744025354494553239682179739548365847128416245254254147562941654064018929310279932247232508041644627208897281743367405489047085090227361141844996508951965253264314140227175711432195112194291151600461660468454961129577471803101414583709713980953398186207481286316874977468046869301006848008075579533693574001585409032338284790623897061591896112059523457356403983307899483018365300649948560117212808772667703928203826151124701683923910837575467434622315547536565542702412843318724950297947181979252187703994304430213585932947499208088548332933064279374753006876258155349578149074347203492447008799954453760530166276065133600383194916790715590626634536306127058880884391669940577737496781525602005477507649540296348608489778858502606529167181426596792728384062312610468364151525060922451031123957174252384402023795413335929593672718018576246890591315140195021316324236620045875262156203842314722913714177887153377891937263361071949325091877165736004511194175014414209598996994243131115663840201150328202698136842820204047932819776905403945928159804307690369132119186007518155356427174026900575306186687371618593665754416638582136714095926306791659037850795969140482748946941055067453046387353450468818067036252164969009487287732064624615300647344193301144449449908623081855478974591866704067529536380605396602306687856733336244569668006358373867389536159300283942262968036694658620813888071062954133531236143992212351323368508193161144846526376159544522113311225023482680053245719272624934815244465863764508734019049744435161111090330004839630940712518946001961173626950524666611782341603354658369533963848521654361747235754817684375888989649500242365215030640175131170888456575011434749503168529425131426650765886771106557723237157727579619188908593283859539508313389151321097880824808010794304575905348908829877453213427706587399070377365043696130880448668453411250719066184600065867061869070830296138153603695520458390700541147732504400378967482430791271392143999988749956236688927984289024073298371176943988132821173473292277854433104355367189184681448257468634356845976760914862205511531704732428780937463409083928887808782452922214468140821353818913638386700348019191313131784667973864083965178808376199450495540761677679345283019354804198901457720451564365329738996395454537341077932691677177367473169332456620014358561670277807913601222000834709893564439934765036787211692870619768874968376367980187563102458285953773691903081211865907297542692419969961691444144679128020004791025355978675760898829216939448568405354003458850982256965427919020064171198748873276036165199993646895294101795230288619546402523984993342892886131169648122039989125815524317805793747832570960401765111212841000533835564156037213737154306463626220015135564275358408621807978774046091446480848413055462184467126983268193520845341051256786819550042033536665266882459512033394354134756562962726324980886876929446312925976424109258615970121453181872806314796719397227066874214903195187610006378825269181176067750738858539333150864982955793403872554941472939521826595248770595070842284141732447722593823385523718070887286209327948197880718529300413966136213948526491079896315979513560334860822436080994604225613865931188158985952710501594833315153750541376547245715859049304301180282156116330669192255202514257196374192176557656797246483032133712459247333764838649403983369964974187304340918498024792843222986721491112960545466911969593435944623687624318976359055361917467320511478896684636891297191976348119346094800550990771411116008191050337742331372636207295004488401478927943644574343618275874216197729091417642393954847095984738639538353488511592712128076342439715605473136601539972660625317195876116385714335242166215188512202583410617367040296877116575202832528313423064537868032487166564861422747499836460334492478289698212877917717433932941392419543121717667097839187491381721427519093441783438793442073712434861861674855784878217782214779341565661714400080417286193661182212101940226667469913753421231099204760140544918402893748924396552882383602181632114625187106563826018854249590460735562236601988249484727743214839889421412792952786095616235372499747919830426494070739335790385719716545447920653727197047067726390764075709820911871735332872315262235663514840489690777030288545039804029564834709381953397359033763512036591506141510906118684063615652041576132010909827301978231638329324383553945875854851428818019715834041469721395137285790419818633601314131211431175139973514013086614785242657921515233010578695948203005805445865106654915084945148299328849058366680858172821564152691914791054391970389628937641889313420702655582552689479354878189381706518099891760385309675129075657527901816076356857520040370360767986468088630144580173600587384094548710075981810681144225028007136101042895188707593488562957651250954319403755456807588956299816349614919952160897154040980604060242061868187085428227371570303000832623231439405221860767743663637326743048737079768984386543096125810306573438689977883914673362568642717946573853416803372174354208488319172187496568377931068918003463855749274773686996862698841609560258902180046744942669339861679803225098644603978300921436367843878587950828477202322252929682350205020858283979592898074416190363744280777023829382674449777022812670182678706237386471129050888638300675378170981940862286194589493832119231267347277700211609382086904250878350303590452161463815928442041045440860284313781857992420457247389886733218439599507975281356215698141804212704701180215445055376673313660931624111363792899413050831495872963020661475926817754865770127989611115855866577191392640171846008036084846108254915583431838704189687417914663699098338114793133171325809877365336206997401003435899520605968684712812338829816494802879157878418173680953877119195473762619490271087765710126540103924508950959015756862435464806875763788719425300877751333268214555146375546571650640602315886031084678331373537480108139121087623372323204381186095170137989748692171434609383203010930196812199169426139048783668039271045857795787649620872050435136773590382735306368786272676382972644562526280186219453403603573031942720753559388365023127419231074728054425336355449664349502746513471178546453153455125261199413725725393917619087735191369130970284216981086759501162084909982403573501174892311124243022157494358558816312780313340563313184703108951721064126770347635550439940130992183034587019368507536995908286577806569611878957256761526448020331266277927447984909204116009134744214702433616842418551956961728657665317993698988860405961878063601086970288191992423173145151651215281949525041905156559727338730044481585483083919855578301246692149610959240576902824204776811992098085764673778689161665140524673861387800019563947122148915495658556627748064606393412079673253549377413897683766503317892746027707072574295747688763393247631882867433822670827460868375021218123891615491062634842474112538026731787177521101472524199449814385859708155856823601799890556491700538042653504215977232894935868102085708172581840661106651524026645493487800536266685647064386336871545231720670238193292676537678530931891746203439632685373833560579314006900694541358175676090326418708484942938004149336074076918041187545283967184071245514687978075975513379540807278095915417936827567734457744947953793505500976057267119273348781507585389313274543561851764813130317495512601608341772682399833570398080416315481411057247459441680728643009214778998662755164946631181460417328486682508111897235519501482391540659898084155642217739200572263423481479215405011673320445872997801012792988685926016900190556566481552334350537540106190240678984411762707171278483356829456307948050313856254624146079528901445103002536682124526005269869373340626228468191390450791202165955371703840780674393766711259369956835636692448624175374617957578515091525386846777419968043723220064494465650949550597493123189649059455736001221341559961617371378906368016162042765157552965655707793356430268527508757094773697845986110469305005593480133469134544800906355503957396026211283600021907391746841456306346091000671173817927028286479714830171528668601763954898424796122668280424552428376793058214022943851337450068758383802837014353242124828347643872017283601595682606064188854137590799941074691958408471149129659638143072320052651373007553018214636093489073370107750018321119739719946076812349195153652147817526002154643081626052761645023192193225845577948912246022958737547197665835757319621228879509781315748079800697848685108761989522180192527636069981724526664060199029004352679342939190552418297311078543451244597794894190859959065211815971527869126785075739162567869797049986572694877352994857431708628954597557273667086040762228309386039877236854894420408291869876369030813162742406557685645370878512607544286986116499637732306045788768684657504655546037276690397929396324403237252240587212722992031176311785664107990548648799092534384168363432331824637209414319521402663205589149031229594167308717311261712146138936645567499435335822245153149488792954482538063870254441457101430384056448578621332554452862829551695153558902108382554999464580493115587701282973292831621158231514110461246877302937842327861146915706182446026548922905264423879374883867644974655706739815956094204149237439751426659403610282759495580580390158850769057644176038555621921870772916587542381940738322425820459960465562079810678469227234307190316286825367205508611237042174812406479920178307204183246028899367226011264190275529836360918997046482759585915675882998102078248519169732280458397664753044682435045786169296564598468880772718906706139936906399930237989181312356924217037516947788513838539853669654100260803806527504210417929766743184075226098965749948315600054338865231283288060523236571444898430290271804231915272373686817472215428260836147344522410149871380014410188854409151118725448538648455121860086416355801775448174724169636514928801919125644646888960785591867060800285067574569135141949368539666282975764768585817622235211461977577783150708460976031447647689220971782358314458422906434237815031908729870910807991844420629974250392722671872348191386247634435251484468784068183268213340380987489598293527421478451116875725190660874686800731664084116290064169151886050418094554732611871258137399847773444184298863514091090972290487085592588074694877294909552669726774448007601279393163640626372977608469978262876264627707231134234544517979572704636753746875792678768474973047237567133386157243722207640641615494957085376049029699471148438405635736910464979713791614823873642971704232969161538440497580570172640039122999892378274478502499090051992836915219271856182360462642374607023274213254388774357142305690453877912337962926045972401044850831401976342649052584606471045309052862037304428189827574180170767183297316408912987814148638272053049798171407984745732828836795943826344596995482950085778290824649273916415648063628124644092021394183600343802015412512853947404603044086077142979572997895319455131083343023911121521440006609390494547568605404081011435011004785939671415101431789052850481735623874431046026142047457062363223139128846030560993338767527325207548482035944731720477493838136855320830487631446548539459402942632725135762383410421931275011513608750953333849950868365892292060749617390471819027819766929986411342866387298758017479862937103883330447626695175963523041217930954121913542362175661858149352816525297258581272168639016889503300147124886776705115404310726814391091046031773212882158897960652793847378427189050753636143900180815015269190584232258374404782005872085882835641843605397414546803301248347143412507564308360892822326514547311575849736232594205219455561833904009149387259721129165733368233329551091401824722367915973440054010045280211730575194553457508914325481246367090481164761979247597375816732532686372000397585710431268609879403845615504438950491597340720384593358951619300283062613581319770035078211955879391468261197403124637962682747268407897856912324593601431590160097745826059691149660770378667105063718083887800446425419405050918209319904839305267303062611843303976045560322056167245416096757542506454257124268677326212778140326569600579806903824860163752596745081903929049429813903141472244509588572978214712239458724028942480769493761991329495492928721117532702800338039467418420558670774439460266934951391327098385794517763704276175565971633575789356483502570738495270834871307866422286549282335248453584822797260785327446495207512232223925718981766475283974174986597198412533643516153275697747380742971301851113838203984498380573062075262273908946490786622534471426586818982248135893884040216358066121401545771523305085731694358138685895935748015358341888445327355196119106439157485231052186524856544240077772759929100662492800270140949494883682389073939769647293440933753662855325114821419222719555858966494737519306856805222700093013349620134319528859560271947819403611074718565401137106580588216426280856745282784634293227819946261926290271191556175983913483054214084891832685476588980592748154317367465061142534703002384069380729269345612984573569296283248918475546466107402870665748638730968883350629548445173236486190374470883822036552989545815550018453703696329927014345214599793471822412278808692398200054443941619490536555152106252855523882206182157387526097365353506554097083807778106418281963853241611178087014301733577340952190419576802570848731899444555424763620201626971956333610822275311222885287460374868436365077878957112635694212919982134789340128171349956559562553073978038149875465171510603437698416649372467771749059891842313680767139050847694068540943514912940169807156257646697661754618466321309766499311596053532753429813396527895744654436187915302204753499125706217828017158461784182468464364919796626071428355553886274102819343892418774240643040497658170642952044433624395767721795029332803234382361904309707118107640549410245679007126685642388428838492883539593170491041888254034166363354098864335935115902718064749182933721693263445156048892513609432232529361713578666565839141963706895888612210337595256639751965590156984456143814368355739332954299977491062437815564417199412437071073166045030334612530738442986250808494300943243104847345914275876578851329601539321655452132238559694374430783617052662358987332671303393759888082240052946799929284501871681419256056164122452292315064733961830301703841829613133769123728713639446515255348371819222570675939283792608981738733212027066634799199676511493120718088652959056259431495606661175779883479834600348484646371781463793314625456834594970001589476274056679939170334140122719833320576878090393124173546485320923000713562239646962820619226920115914593496166442264442452395063337008356067386881326487548696815753002751592963340606332033451049160010606898066895733384792039786069527450472735002974341086643293036835733451299279798878194525240544990694098084067406132970931466917140426015503854857382866962455315630455313014179163728864051337627317933627667520312602567704950733057212733638259752045496163061889892901269321202702847265602384241135053582543492805255613172244273803572487412840721818726389345254064920588826758720546214565109556459400610232067901979963082518046409803047910400338295526667595788860772708798463855612127265936442884164567849955933639650653963113987992049835356937668834805909893800441264272188266704858500466144774170007500643102800772751113318326529918623965596070119274204448998024347938495740834871503268462846735654230303815334912713733338398084502265502620177907777753412294279468364779256461950991242987179814494913550468019819998264333459519952956793452589740421347595282961678327701636195025312414293083801895766302393357160211037449401920249996466657771236641384111128910532917097081994225433297668220104538201380900488295258627842444952089399485577872532758924835408172985139928404430977775184831905173100007376562723338029775631432484408339001850231674206241181741270092422060391370420156881947862404990470775341813876053562784780081955666049599690759116900669663905699552958902801850982609937992458010339611361834845892893907755809670726317338836350144753792126903111759774058091973775416377983307418330153851611082377806997537849750636672430645812465891236609422287116359088295460893616771959428268904856821251998470213596733539400881746389263713120470076115608141255526687539289825388017321848028979456082598270956894654297471837269527429503564712028513875679185688133467122664272893888399106064755352947615911392105402345689269722873276508066883158822992143840699320533917661117925302175216908124988335333982190256489813399802127579539090553262230696535083536789179121461913129560790166759267871336817345311606398087341035538077377597787109642899750916278705189725606641117936400370085518434079582280878701936530103615107467893593179969506414964096808487528792362407968523343997972839000111922407829655234800906021015414361140458953521594659568200485377160063679479667752374430474291399905831284190249801642423311898940929419866184951060898604515812377435440850692628004260971192113513043334545168580431002792851748125120478484838354372012319467337534877290738082545474002628206895013529121284482596557459616371582011912062177638374589707784018405429794037679726143301043448597229900970464769997611697340795768875812134457108674784064297827089941140741725871412766017882667411317301982612529640931848837378893317738089419878463032769395702464596807885516159675710118915562252263475098451299978726629171603595859435676587219287612834180171817870711270677729819959937683434525651485370325457241667215596643446634459283563238145584268861327666745289325521334605654813694644970187593716599384506401422815977095801748875303027502144497114681563279498751164798124937250017940952844591424587813840286954781180216217933510262388779772559792840984494302562816209117124849386636355789216153998636900497211612194387571835471472947452976180540836995835146608682125940333207945534173679907103767213549784593702571745942992907871999423280239071575778300415426353233115824313043900998056204330093087985721413216040721108655026655123190793881684208194390820001846896137843674181324227761445820956988815245566231092999172091350747944210587993454443421984715616471595764848930645235561636364248788558717012996503690041404512266297252092408871822317000891155619472643379362133068500483391953107593791287539267384182173114366832111971812136478953990690133545328353024002498641042106572145730140570150957704293757348056970358085292634804962828173322457364328668394189305797233334507449983617455230759978404061888757292681667435141396729016953284296052674280541167136465049915976735704395011012281376273159898806691639632874575099170472173528083402491634703120022824185158382758359199531696230945351747442707299981494510524540984038249893964938873644470901566483264968024555981764221204693958174689755791251262172117014829609631821613567468051057088499488460097704125862639270695802412587680963162012468927998031423975767688327740181786718303891976485203670181651830699886307624450186742703525722178489483998576243987699450056652175824951397373413518909091037950030171853586113789654385436617758657186887214191368563112811667081186614460258441057100353758449267586780143497906740933272644955411494887326757211081487872577524687730489809172284264380218570728461601011742046680930722386715209336585694962286841225324008901392755509338838132155931818137697835276022284022974966972863369591742435042884868126417069867180104828577459361291430685874344657859776454023976639059221901491967541069423952699289812199982364739278640868518662308115239640063076849522804656718631400686519518627971190300315492668567162178248161843267379781665785696783048095713441670645028570318375497435419927318782190045640747655228296323125761851294441746841884888205715685754856322752721970858461273565689785309138143907928261404381042132579594857709699548974964194510195447005641948943216563953987528610660232931553055328493121624634658258140985976246325008299221776357265873169243736553522619863043730394194560398646308318545831942394447657404405292368337287969568040768878374158669716399595491700886137684388544866665928227495080814813254259350873827692073754063400111581423062474114276055194723475156275256233058890873375972267102385377723399349290386590677195463320952279501276529741429561629460981738171205050105059510427406243223703053044576048390068419724299786075866438682188724892861403721847574596947438328156066415509693806375195679033935906435840831768420611783467130604501565294290391466378678174633430664267240921879556880037896030544994395527064416485003180960195374937147792379760267059181444521366932999301699783840776457063577522883360558040879322336796924687407031300489558601821226403500176430004809193672114677860621101110323254219293914765080741705286897689503761907936049290176154297384779655869847843171961748716699571033434228051399318532969280976779636191030256421630229147429596283975440439622857838164245087319696580239375915476489409077200832277198567757683557981329620678361958005400966747362429202534525326725531007505360325182195772956565271939876927977656061466735437362641671735988385652889984170408241033540800096498780990321436512278674943982972051531935681368259397163842697445634194329146721587431849778999003480515500851243017083372567185680436013889098702506952065597551804215524023862035562914000586419041611461073003825265038872404446811419074549278455066821341055474045796328903639306833900626187204374358921775392820632414446379778022701055965702042493139745668309786549655240332350358694302475543917902823820028731410270074949792767722779623362826045283574458919098551293194784662859731610421555691206918805679184370893279766986633696944723981673102949795331141889518712864688791922100498229064316325864149731443010888482402634228015949790255276310300404887754394879181711839207329595294372959648151544364674372530520654341821489779481836113649168672955315796410470860484265196917777482660251874955783614120075879617923040847971269757990959701846867904035055453043284627181998811054558207894391210718501314725051557264443343050067059837741130447305088215515966500437877994281788988932741856210498491207191030119880985923633549045929292355031830616073256729065862116101715372772906106089138717973736091354702806209285755919330314237545752891121527944020873523987841066237315281778860910164076631080429347352357382703997520804479883753508901104352871408613204031999198804880256301753705952837249230573795577169688988427285294115957518204895894786412073007257477312090173638997471560940442999138617154172711727462058258978356383933391251041311739208248374357509581510014128274468557968032078630204544824483626152825983294628123316608450089430776923426971320327593369881445493409442573005189727019502956789109468475996213170143661114415097679082666478710835309069334764107746395571506712312615491304216204863579136776860942015472470244558015476488427977823678494391230109121991724355176492388327004526697485525028549378606550687885465224833387635474291904330610223580418003617444590213624437520798381437151890087897426062153009820315257887058515458983883256134911911284584546616936862428076424933621497584458228951899964467248810703662390677930109790227912705137946447030649840324538221721153434015286210574702362505937547077648150337298356741165737026007968941821642125289223678508267206418748183785861535161017572165581057771934239532327310246280465647848792266546537395029490738465996231893906549543219911590438509007165458679146270867825502121926374532773381501978186129731732302797683487064601961574475337337449911951314156899947847389603607043009688702661841760463490653023653779846263955054842378596933108881385288029853855330981947011304819012819501020485334628816127855740179366287580640732995912070033875153419009858401730411430064115951654570400224042136271172560397944574669638490603833764457164873059464446457554649491985515684694150491913582603845714912352391788180488663534787535483793907568283893465102619892275620273232733944186069417526803364022782379108730798062749078928391448988249332347721291265123240103855906895528427590833185861473232765691243813675942059241244120174301416336021571148746893334273723081469834285540551728794880784608208594307106668163028819486339041786973893847240649806473699729141120035743219305879123785224653082080131651384042511208631507152753713797467608774396611782722615584960077047924319364937245509368115634694027540861995807605943116216529027913274465644311840606390013451855983763900862965192767134897618898535269007727404366310040199586024561712289540342828458932523933352497904167930314824047364133560565482987792356493334583525770496265223296985428464050008454076015975846517824770284932660558610523988147562299081888571568195581629761178772303087962454692639508021584542237445993424533737093074122638437407698071449419768701132483659984330413833950913906802198128586558565675666209005561201323985289495633876615913744856669465123207877110943937930491060225454856612583323768470566869333037783338921874423923605984295476161086636043414108980137346258595330405543411128993374302596021189034136700180941306639928963034242999634502511336237834564344967352768258472378898242249474671283447349378229211281494375641396682462474025250254049601635027386630930892523819263725338997829202462927855468311065141865536284462591361646786864800884153055016728550910794513941992744412709143183313691678156820754373830121598524742065790037236947608039715486860400591229822524152615169983046098644226749444522790587994286586603148385904379142522577041485734655243216298267067188009033093905990340220664845036237143303598928742918191558903279366533824587226831773443738426426078824476796007045922342134825242145461235939475489505352052237380270738638608277554509075833068409508586149451441129232704529878405157134929080326694796080406438924463053026335975947014022990651024057961630996911283157997254351076050708992223697742002546294627253141107149215002222082293247593797307844283915768411110929183216016547134860328837557285206207957864400077770080198164483950218880168755316025498216375445813691318800457120889172801456067375897025094874252495164485959637805965069969423665693550046821535121816405520812013816673315021631812018107526834822838559324385978911863812733790961010243108032360344968250987355376849096100342557249164808999121662602504918997742268631299613515809684550981640783888268881421799390571569192752496776449559083506882754239072176620037709940154544582301362166724920350421657721988877270458313869788175826528856512822766496934018444341075154778735672936497015015291666640698536862008274499629658272625306774806255242497861820986210378878736003234264780315404955434973517368897863588559409971031458086683155900361290875092745338064148519386833250487381740480103559952944437746195206883759306036600559955273516173667121249641129258451627879001846852462942540988030495671506784965088272274885498215705643477007264522484573531675432201935231877204842137993064435644799992385363891704033628383191521597905794681690411944416705728018585438724130574007474603173377606187536346552889795940545630290426288389859687882130418323786766318577990390013905700691876076228983909709272199623692410888074782946135694564878246520689256784850658316800062528752390764093487754649217314817944497643304696664725212610811923742553573497003372901521148773669765313866006862812608246834922329559125151408377944298682232152604985582285366285808764462775331210331983085671503619396929866295448849459066973726425028737669904630034112448101854839221684832080424464660844963968244635480510123471667035149036126563932210856279160037774390083498226563200873627668517578644181613394541460351281702333654882488856568272716241610322096002940750018076545736670846005451743096299797599421360729642837782467652779976856690029388395873645159624209336334771043972458011234155506967826038268225355963625605155861125524494852695164682058624137604834021006230347679671632032074893887983019357413396251417217392387868848515532923272188645029729870611975607067148460749452466555677766217023952957645244834432051191311783537008307340835463079626999129342691263576505789753933706602308002797099533953903066237139998943082800422054723937696031450356830271361681305272784646107150707967143929368390543427556738135208236077277767577420134401800953281778621287329750926633631015038543848680746131160331505193304598547273017946871614510180929847238585461029134371328190142186445572781476047663134694396629852425850347614919749200685369527950502496834370148968188372034748592598718715603961271500898207442147687601494586030667171235513360802492750062296805706242157039793318966538251946972369486992088207309523711766293776123367309378605241142251987660261081138269278301593832848537332832139403978222510545756064963864975981782782760150320537476777271891689778313773078912324421447747246111215754664628986015047367346955970577709896935046891251618650339540803019320191603808817544578780520462326690082808134358092506449962141983186216178543118997173393713012051010021941465624101027495365361532467864920037485784689007856679580433323106749497328757130983538625337861667948611025065594050419015277730805622459541447466940043706951840478009882911111683248670166083117984660510095679967484937555483312602236990057231321774754568124185886597644145137413734000979726227526456350562412871204245299462493312754040490213605249912258942404415015919032329408952377304258196200446665473690455706854891717682447644754438740161344174201457779526599562985099110543522697575883692174353399341303588517682861118682390604536056505151511589954415068469877252862347016966189321441998288954952728732036132277375289803038077528156804120484540385143071121592845322088747155890057665997287598884754482483838604615114707196202706188982375649116272458858040643245497801798655442035672077502938444319681512265810255134850586572187277361579586799543401298876337003580423656368340301913050551277736289880567147503492923239788263223130493987538400159096407512490545851388861287437299015392277303250320921440485528859969173462627480538755262538809908971258676414403269402800605746643379772323345554347670562492400940448824751592953321762716712334086945439345563147403219642404146076876457076328541826844891496356735391919518599683524160184511017656644155023485217438986201690797941317818988877687367797506309876978065010972814120695633267556936377799218421714688472762196877498365002312638972620881275226505248857337454520553821596988660802724776100921034060569431093532319275968713740584303615959736905380139520296040124611112018331059452933499882438525474278595478072121375964649884043960288254668837316581504889695777192027745679350483975370417129622105560469962083142005011209381064831634384285241443395916831073703675497199516592940336548193771345269713046673053229744763548169446834778383873411185932271889967100520312097634143352140594728712315743617069363839718443836898194665150440827811206593378996816918198254199980062753189930987103102062555027081627721412978986292058006054760937250909256183483755325767739986193223672942315309180829463144203721177790132849773913069460316057800298540751124007855198154231102190531554583893193712133155142053262598609777088601229482509182603028297777028459482886313277233203921357357935708912992092859836735326283893536367115836759758849059170037609208968266255255388068776930751011923769750295468996185971279519869817184930414351365890300930511454927995467396008742379920143975984623098522399668900820229521120187655154815485257026677936693844330665618120054261891532417724008346493736523039249602310765087334961526030725786212135779311810265956332107933075428300323948972683086465077201417455428827450415512598327603245219508972305989079853670659540680938774326242308208914076573002074830348442095137605821851425005808538971482685388581099453214962563384158501068836380042874997539092381031558230400778267734776304800208108952670701256363173179291226729501634938419208840218975453552517541451757737180843353657614592042389471124058762401392337771671645297014315525374108132346245417702739745528188626072270217918282991204800801278762307430314751408772994618060455544264238405016788528221315445466643072779754695813972418372992568445363034812756195920774440312201696362791808343796501777062164275613296919568848245904672914238084324157366193706470203254816606118507213769820751326903075192703364737059429857581370295921669880779917594544164255030050773809036786928878314026599573550909435737593944184581402540451669571641890933465461678709334239599522000673893881512877742054295517625198298903656124698705799104126234568456589737349782166335465992394983356892700858967564612740697531344655711757664320364819994360447053135846950760454912413710979179372795819850490617379452469557946883003117137388206165613297701890606804565468200350592306064022380821308488967907016371180668316791173359627551588133258777105209371992809487181375166823050571619812853576953264264693225385601368382747047533785083446767580345327060551573278041520367727285967535094491423048254810866781098304243498102072816715481378336814610374928612359208983651978683197595677796652828888825520099941765052750792086673509629904379642756472071564553713900949542839414589903259431970259882562918062139352725191289481985046299232833313035423278111846498197166062693934008213464232376488808872681940910156240613565574241577886734790448161112676420069547174955119686040614004907753156626404662314082371429781458737687189846390812479099081390055845547701724914337237969067170558514817197532736904075974683309775175997747444764763656689618859049897631789170422066386961783928943602424232275941429684709567691809294151029708913113790245397489073217329375081729024971894261590128048564887980837437722298360584348332573793326699105495288559272627589144611430127508905176640701906297168504966936451855520812714916375508612657047540606672465507239190967423608637619017378612107486449456735672542331610668104354482852266421494491260799333128623612133208872497156896731570204000939471282260405705427124277405247021882801978244121392733005510791380426505781732346338288369233860592642249289832700389213431032498284350118800151650125059719497977008577529999823507571223416849940742971615188923277096798756029184414702908080489383794577207986113000920035829851796723074250156740282923839280590138015578333857372832526138335673310216123762343488963454725263596367957221297378040295197011582622398293714999076620400472908120777693122168107122126398181845758816463769792829861118416842344265436209011122055922643534002994069724696260220721752331089665599212350071310591387430400553508578584951479026548401968516071597774188974504498359233648378250036857417291153052633063257126381928279563866172290506660627356060073013438429966481826152791698522598326270402274750859638333474757860113738248919687769334413432792927395060772778334193146871214527645778917343181101630981254122767173340807024535685252985025000334102814224627665882429383710399237326930987998987584050263397570866376560000446331233044554038566299924002825522365595301839678360888792775758068703168496241575283999648538033112729649556459829636477397246828952960095587542430592949662256528997483220524791148663659695467627786368169584473551833174739947240660349182541554434590752288286267613965743023285328661142755302012964688764821708418962625490388507988257841350125756344180524418481873515761714801490337669940304118546240257952402316520332705085060626755774273713979698529647516857972820604606010084928307406695181628982663145613236149549858913642950856715015989870655911903399510948036946871591300505206433928584047653523044657887645296876552115583668640552217063883651984717582555973522851584387604257645939432247469083147052574300667378858823121305621240470561937090465820406684988328825134808383039272800263504370075552787542804372954353431750748448576818760156510574838987650285298676614712902035178132380272241159799971503716023345766802221806078842756636110581867369007542581169045190882158524056723972845564746877043934245882095401308742422602150680722531702652522874587009465411386108947858330920722101139662635892462579141608230457326690196392207939404376145582423699562660324563940798243143700640723531401478335316140265103399369166869198395462514018708649521022709213580387949822725504328443760620626686593221822971345327246778852772830623901961814465281241394110832967975095923814192187875388485968797356006220745154375523284862448308151186198379964595484935119695987420168179733526331408741948784377095648655827547120439691482334740188686287837699415461990631210962150061908705384370026150376336752454672083980383720683214919320910045800406099095960686268216480593238719604606342310056068353899865692287389962400320952105291518846173983841412834262981871240119371749143212045691540782534025414278924905488994161315170424437717820619884690489693955345475385930185718909578734333842695220888112751785763412103684523488635433761796962268043607370275156824428689315171262930032657425319620548858564099541805835036875437022893024957354829471419136859771884192988927082024324401074630646749621952847577690658736496584635124817443842106383817278770874504951176556749008766466514474340160309120602213686821978959317136348237402643762750251783756434150472776273472948896619537276415471821184098057086047713631905573904141426918700966213381662379963977708322325906599421330435563160936776361758697681862377611745318857550888592677014465112087101626384616467136448677734560189258184639647062470469402092481362205056703511418090526889322595446244621006570353506096075363605506337089022317693559672100359995702272471646728865915622892951173398425049330623968681167128543059001437400973658831711365170712496807451948328838022519610600517176253955126384736177371264857081678779912712315690799907943686267147095649002806586837046331844712856208225572850985428890286702561092715208795906070905677503080141844568941569514153493532081125421038862079726514751221888038280261768440539472016778809222947969421514337880661888866539537200539791869443178117460108710012293896721613932047913941938679936246111579942081652191530231375112390524874829662583670875455135973702660742633968649754312127529717785671411013047177244266381159296527934760481251349903131629872746010996144243706372884996858497204149973309322229109008223408853850561610457375491327678335888431771609470299374603480351937139555994181274484239715760418224879214191051674139621269700495060333610580228712770271328670654175727115605437850486579072867555692145182001756783010994824107805197107448430051472609850613811394738920224674581066623556319782820080612865373147371480825904613702971219009253505802842856207910651984945033989697350728107073937855179719483579131742667635405341843818133192013584010445222684249292877495942031670370866396790349194130966890108588170804075528115778109860806209740527278920778652391425142920976640233216238760861717831816947218310671869608875521728111630884708265034113835199167192521872127807497447107746251907546326985980329375899520155013165425024922537273292983783182172923164978222151858568411983845196599054521883208035725611755913867123354134785283519442898529441310658943863559009640415829177627902070147775966884867105224981951485347521711497819543264453069063300797469742192169926155516989956570841277944269451778096780053518761302814062708024897962372386532429329426110286765044415962939873783581920473023104924043705168157283258716407944364906829357627249603807014123657308578776534250360659145311678751176264679667383713925038049972558240944787560996592814869682551077716468504069401598772437798054588537215551251075661671074347915345562085461996416665488346348945128327418165547723422626498168441842500004839373279186510427475287459929271032529999140114339103027525695312557599892098098834717239563993307334548868816983210593440747932661971872156980513233896118267566477233651881616606829961276007116736475685361529405530378451906498200690705658487805636299127965719253344911869504498730130536471855783658349898401308135912664917072140451572106695544649039642385745375052413189440905062398848263650860104555828753572965537958854081888698704582581764190967712666155839897332600236537290324553806404234002627203629662598651080619742696414416327807676413500646744280676041976791178250805835562930923033339481595131777515963306522241611671455890474942174751538285245729825856793822180258831602849065948656106245043323057782232671924531175924626168467950983651387889495632344372394578093463922607356655080820978780051347896636541111993650836579700324509284824507924418739860541697500796893509349320526876725498747280510825920248655220441817975713960015119007102485439450719610103269519409099479515251382380309422448970361083622507060500879094608779407536549556369169328191310294696458360165311885885059682023592428106092572610660317735491118445536173293026642615039888573090191938735706281614849135442028341263119168446254410586728127026659277499597258198868928165250107672277220490374699706662860957327731895934152474721659309868887325992154099458583475496616085744156401349097169351933328308813675673767142687902208154680794508362122481880348280576621833876982621253702594955715481452338553769989276745624436507290962499766631776180953049089094616064811457963613547311072512454026897118137358452699872987659836048420635552078632156718623000490558382329158738618929720651791638941942701688905419724971533096872457364016586236588034110501063065960037681063251047693076703634695301591589931074941476446527561025061707290328668464622622155112276419729925064085081444591248970898739853083233363886595644512220431269789149803339128378234991344896749727983143749303855215657560693400034260834260067618749351739657456131560847017209896305323164721325892228335881972192434667708951695507618921486343652817408511912372812617727917475352859356394771079321854382463008892618972859874909831801784456919529571989309774427388827681671434770993995171763616761565703102252565353841746838735854346843593944738117810996622194348041200836448320906036837546881693865773001575930138852102355543869961110015699515805958862365633673063930029797966096727538072005487023757023172264001010542432708886387069075218907054324897095988095687981364353381957993634362883763884829864424771497954038511390028177776196146131292911438894965547813914468611858220272460320172654467321700789563248480197239063104668339506136897169637037369884359072898483022544167189155516583053626689840070023665303622182223043062054468533364254692139958632365584026306653289216172735105110877697229512125773152963680826501480969210303407075316468138993437146203432953144486272424592858057876625424756055151871763386451254566085255681189740775120554311907931867844103895189291084703317089006645415821840437921046687365843490520133001877708197000421524555515340939686531981269858031945501558344678037101387093509604888565030706086052993348680823121666359878929419483408971477838606963785858087320995387842018013240865919882498843663306734083634893457887528895207887321526550265670512170431153146276328783121346083860880489147871063370046853503516860255523520668613970153051133434771821013246159180060864701992429341668331195863653285586972622169591046781969067433320781718153449381979749219084427815708264774246960523098355062300252987991771293741600633536353034970508122800802230056919466463046260727864895726598309518767485721215859372750185941419213235092465119715388604243872924852000685696867346627805840792611006341803727985507875883635293767805517755245988357459485284938210356613575162591310439194937789499047575224911057592551303237628790855418749637696731903698890086408143884775975500375610290430981995509370385646537561327607432458546276244691869965028299716750195349319907439509583668917213957015927153282837284833763195496634971060537146097219846733582641798338839235493703413842358818937823854920261140863027786937041250232221084984259922481494145173402841689762096606478396040533277521928361989287494744422660848523985638884088061475171442074188256305466342250118170496786547414924109662074685636949931421457676908750302153120930364703923305781297754138258367290508988465215634805160688193179367009307767130105714356847315864094333498122328423784388174410308421912603074404536711819138572170562103024095048331420762676150549775939975153117393686564831225253182378224651389945262344329625410712349401587811312355867533390057660606239704185647267364495113286095148171925811574296890753257151983137491767663083882088254465158089656856154578579097142351702501366628683286287849879006717220178297579521218338404915428756057840930597776911942104910454799839950422981414601474333045403061758324416614136243964909681457604907586629994707740814329144317917931324240846158402936189148050952675867089115442348741707280619774271771697272162307932029283720099924170946173013198859603539618770333446898177148392214751286725986792709856975927097932074388608107343054339083302889092601126796489241028890097315329189855184044108957263572967318902802348617578283006061677147386904562373568744210812660846475598526682360206271754191810722201348827532664336710991840747647322453437959216157930063632107344559476158811806630915037798588617791996367122607098064300423852769518443226229357765539657683937110026124973271350758888812277499566023264772189937606715095122422126001594752068142732032513137981970729160433861237352939794710038427750861379913725026497244315115410373873047176419989752689726013946184580067721324380769874010678089202427312469634960462311428100405615742515163354799230754015228562361704591766256581476421537431931187284851744414444141868193779901090682346432585143376766097130063480852463086408854190155819534677441290079908711009022132358109552784995307456935748700992023882594002830458948376036270836153991247365889714943180340166513729884423839371494449060481233726003095783582913351154957856504852917923242364767471125654757365874597034316683578563837887465143447959208875360721293184244754168674364594773580065409256804953779738807272891758970114157110148301329519565365513532060135221410585116130467557084662998366739930475047921296589694495147260330774346717371496588182297464774793545700662370308634771660831558728731391974139609324655155786534227585077679132975258625115204068972512589415802414615079324535024566085387619449179134296693841890695411035455093052129191459458133843600515099648769217360051840326991480818114637944488183806232331246949108155172252167908092750967846069136532633198878078702009558275561896650243668174839145904147514247713748518541706074459431217234304865869839765342638538234085933524920097543894193391492267876025524187691207450839811662404416479684867431767630304405816524321612731113273546411313651617527830491477701017184609611340503028312192889924820554141772606782190335547952219192937384465888895047301671187630186776406167186317136119476027467086703044129667130109273905429000793089803141899907828366095296615478672975281580564490669798022667623906049577789559571368190454317160762467659129349540993359079028457598000186838484468631899356399337366346772493439105157345256098446634301312755045214135349028036849157554189591147539616530939638614206934784463797981786266549735002980427834507129677883483456708171179632473187842246346697120153164062813559924345542768374050250819436471643355274272971730860864802914978102459552504666361874887639034667620365974408398252792346859006593031536681240842421400201299514514640489104663366309372117882243153412882613770675103370189198970060776963785001327221396994047916345185316248494068231300670292477270194345564230637391601145422762496758415095803812437988317044259058128967243715804235056206134874897338128882794850775045594242201039440113407275936994394450124778660289960834271308237725958264116646109140186726124348104115974896282425472948875008959395787021960641276409483092953863627462809097172863654321691961537999643747108638043184282322535949604035049481643185120627582146853675020706473503464458427358544327159002506721320071382965638567443442239670459227514260265598919356027349861522333433893416378119316219578226288116543000030325440144550960997597228023490916039541984600157342763877107897893680763615299775679337074817408841874954531450101477700632589674154085206001816383004926476282403500115234441345229347831088868710654160420458961725473813673569006452604827927974547186070257117049220273597536909950756648897960766554796582172132230166533399050125003992779227582091184123547624755345083827700710461931986299509100880903687198651553542044431302025210884902630837676609980173287215420225621957756174976769738423123345942286336172593160358251741022650657265034250724543677307471093620016733676197814991593375133467131326394903183451779793126979976096927040900488816355156192174861014575032959329098735075002505167782105928639671865136504381561276736465625110276897318371648694355085329540508744769282426554181063952547522218926495334560091492617341520421515568630465142005036039679582362835873944368944765706802643293709760310990075332459441025927576904363610043045009101686659435305249877926069375801565155671890091968272588799942731368620447980981982709977392030251113008263253989351677192893617091094187167732846561694626489296793799180691084463039850878228142227228212490152256975912090092386682246144871607734146334083576933668298653067009231718812743161324133171182341753279744770410455410706987985000756483800817603476171669157686849263333225173519483642771391087744759521546595244886428501233792141537208515140690943026671628055890657502104876481799770393927678247314900091401928141212937804800613923502217392451039383243295151118722859719644418460720231276055821505198363644974331378494309079628383549574180250834756484740978933261458873834399306037268859441721820878534969822596412024495881379881774683011644329337109405788003969977167092887630918869951010751379270648571584225856838636873641602594734300980317166947191108618210521967539770835460476841415814691789873140394311466652500796511389030793057995308006515583950838403135197205383531175917363655477138850698314508621743159533607592219679916590837443249828920739824930280389891801928685664690074214374941718148890166993444280794509970266589782768572702097384146074360220164809744493542417788839056852283735212686134038912577283382639239021537027683817393086586497851853347128449961912988153832912381745518992127301870842063831398959417381485358450005375301561916095575708299590906853813680938518315976402259657372947659017574588429161513095822083135584464744113477431134362743822517106160077036217100028324040767806228038337547145171307321927464592844314633589006028374542269551850816305234248868980340069447693459319161358133522205228377935714354769635134285126018215815617398512274453397939367118606544712281740712461445423273456641047039806130966019124869313046879240739660035959391942816157044143943822439402836904486337319309236359438717894409568707223741553379913040492517283023897054417274533782653739451801660284359499599039516149978523596167068768991578014443425953547791410087238926850051362898551867096551940204806601684661299812529154676442364922557885074384568897639901554391216237185405626936181273496905138131889956817411161049464824181738737941677656144870600872065146747094230966606122760984684593018041992774330848888429163112565964953932976722429952641155525753951601069995374786533178354031860429910999172757236202363476883967756704018887385770698984501697847992435574926839225706750888720397612218517619314342241147777833216642587444864567642713676232980573058893582134323664665832228640273544976494536264018411178604712198895238280775310556845117944274264697147862460936874654622958123941991649895567085017896187909538314059718138612268221657731851616321166526520258957306517874452731777922142685782282909961045206232489636671153231300219039460355299520013012118392330950215687019571004718192315738818109730720841769130119758488723245626322148658768273268075670312552521676855591703933585169840743117383839834878749736026189974144724631857287458901520330581555155224293596988987183710802507405305809947188305876893130956667198847707812088943140261986646320585902954625973226942459904936994383956765812727860250244147278638468920123921593869474548487734577894236388693440761491624363693615432581066280792926901708209969936869193930215280274833630027864126172971592733817901344910755846110238641408027491932016996665954012046578494747148111083189998580669433505181586604002897315428585150520163135594407829809687694692660901963816058662357088561074898838479300852030322377968903866057487048280609872793869559140445205309355159726799175516213863086024420655135847448423639166923395293513135126251573536694718009338424901063210317232332281990286680240376503738632407174902672591154236938677103098297949170933210005316284205321314797823697286766919471636897561860646698284778259891251779475026916979305490284303996250731029584573875640908097718723928871517974158413623169942678752220226373313310968867063403475742225666564457094827496550065704405649408290210462055690137664268656736134668148801993442446418665533303284005616262405661863139930597245819239170150107671834081998477313700900412942541586784911496272196763975540677650327855856286725663930145035168112796881945181013688630029953823709136423382737685256982380215441612541011961408424607463675195173236201403112715099971251104245390214617832522886151779239599515791063432040640054442293970265542029690430066197748661850933600749806967068594452234833334043101288561522917357357290526517683524861796764869723413929475305404768045907328946532155729525715246276372353012743884631654638590366107807805050095944204477862206991797496892667876161223336829625512886284455531901996432806333353824526723202405609790198513687867799920223652849054743590689604057658637527330535046498528006803533555155450214548187718444375427162991943422522126200338317491412563225345534456128472076594046833262243850515673055864508926624218514663139808374555017246043345990391752786278143441202962956796232631593995278262999499157006171631465036497537555720565339583262352381852317212545318085255578018812940806042042936799100072187085555888394286163572754084012129820110030731116551580720509521352434808182649156437552810716522726250342560166071122610704675263175465208771615226315318373235481668697286958892401466370707882943761536948618658767852127772256773936210895989863553957737534838199955686066521627918521677690187885280838865156570453969432793673707169857376061927081773887540473664421746679451803444762325237763193405799940869017311622018024192653536200030754318145425215259982421143039512913007679727823081141962934821717293946428535620264486026898710021481399987879767811521024002021295749850797499283166723821019865486381157697868587127699104900003148981010864283781964470884858062563170006245709091715829010216751421773489798011731300685349807138720522089506934414581839525565942697389526692459700151139849222399466359662951794366885851021695997135212737018854946583698966525824280724735998113699300825934595591671180637439809178555336413980363025924818268657751393376586079407846689661955576642193610372714660321730894325583223234636146176438040164394398131103927402794406545159072711745913241795729222569381218460532417641846895074834073930533092967057451067734341822438309088383441485100981716388151808731839523532902004423972699671491401935861295720811534756674317740878908035871072532011838873996928350616753870695764988195235236143413386781592584422930762748011948570701526456855103676750346378616896515018524317366708903000745419711684886015652104699715133087541198408298806268912561041993389755315772956891515455652080078637964867282925412206409387417472769776293686517567817787246139440550873959715709084878606393409174861046483546163321679550529510356093223223937875309233139536310229716410091226167413727119725516507680660989322939743924873087716313323455367333476789888975551736778836336064191273409084711757291454874377583617523687230338546723351871730682576512165534385898770189305411730101311492744086125883360156447672893003712647600698722026910058066927958795154378470609940382626763542392708763899301093921349518831069665058166582928205503285575991174404499247532488592459866421719023144227213390309792545797927722631341974157695514607633653419825102247959365824002648873721990097888076031563760347164254284044938467170838835856451134759009227058078231671101250039424500795466014786042437548882588557084342466195000734084246118265776835124350144682345566873546975373275236528821530472123792998156082747949945578879236970124586036137727106249399708722634989352103735189436952967697620952827043726293138622394759851832068841218438793334726376537742810417557135844081582939014414870571018743522049904322170355283020767271201432487537667990720378224286522570271062677062252100472957870255746189335590001293162970248103720163563738558351586900729627961252051014965388275641059645300763594941688762362478493632598322316925292229430115994364404948346540834801565936187691626279952293887573906587583900367345170172930853011579097980208266758776551926823946053191172933722846310811092484379800703481556794855028565022874628656328274309397507126876592118119515254173721085497808442525938624556674594592909328454713683912074768145613316699619842690513373492212367384651090818906932204237619120100042503200824732612096112527221224376846512527107830846485861807333654458047199927607350327060980468022548832179608508311854795255390075659451496822421536129154193306209999414588149747737765955772151868362000413419124792811290877436791766836987940642782931108033899580751649175579126539207808969550063885237544623811868240597630633176167523102993099144159102811426987880626280576306125002085225088647750634339862948376698405952932954722752974194989045525451686184211635292037847445156514241111004958693493620751365584292586793203876663300235576949880731695017177127531324317521742206398194554639175347891834407888797662199153442524098286255632693972672244189608002699898624488910070263486110057361482518875975785457786834219907479193213450061316370177262275358824745631018592130263578177808885170352851884026527513141307365118516963525164336435043833546124667153881148098181047489380124600609409099281451772870098471210115485384071801393261338605833751833315422251587577292003767740473447735590474783347291956990517524656284737008575433650135147391944418919920794755083741134255686091285587908327009211686659902564347487593830586515758136925788850044385166478586889647645588995990948746541673319985325463807764299879556391879269192886963714931685223157177827459102102850930534531712866591669382272126634578115613484023243873523904665141197372070722480129279539638166680436013051253859660676174801340602535156905564355698131060077795453922592757089236967309791867855376347119261733672782841700443396002300135762507151340273971014309459457453164948462613817379902669781269032832150283728436131699176828596257513199228552968932403907691114115704175071518049517572972452791578097202384939688810567955708911808835960989362277398587535032380188216024179313231077486482711025825970252443165122828176468627451035757406409953172624725357503366312647414166097697147251001785935570287761586853285429691833939123420233491234469874264495073096445136286550335457992057258199325861567438410792758264986945178464139318491134380804786165818285403581269381207764901660405083171067421985024551692099282441338735045244416143841743708815274239368492904601508448157676641197528594079199216281998437864627145639689177758577115949256409744519369180400565348288645008037519764690025471141278353394243095357551271789670895151907250443242809641830490207260032208559096406033425430032316142075124715633553143631991674015623412973364136569614314943868685932695185638458922767139299513271279516003339161705133025256469878745068784230165922313928315792250205268780291690787542930856353280655444638976971871426479710284400031532208196650915564065426387088311149285234572244311229284772227935217911134942340976015335203099440673524956091884289077467046977187869021221915427681703037509595870686141258511356606222696117136811164048698172995171739064756045454438337353589418344365388924708793933710247588392204941587677234805170305271533452577406423432372874849982773125324795974550780017314238113063327987145765848686873127231651729411904941714731418032057000070165921061449773066415348856454705306957265957387935847504936197312267260424880384620022376485150498675683213863964306025824099638606814618836472360820960245895921072696957550248126060946118892486032157233200184420273591884934177087341820516143674966245609626935044629391206312868407281060486939619095805915517741257163529163837464191848469504183117650134155794624427466042906069188988597151418520441982163751758047920706691474926075727738985943401264651381753744717101467738935028808025466790938008596747513981344643679101944506583328403201078964295545074679877760946533606930872155629583392799632576501702555689831779710513917017029412178046792656555507194946417757251179754712169202065633068170048069852313186763700128637798151957781777783522283992245709374085712206694080600901475670014683777476252984252819839981235084619109573107753101348030828516286838963067420731931676612515942324366524801046866881054617246362426057782467889178547006021778117428406918890074809761664386469574193603583310565790197581374156650748257542663566554199265237950281479608646922261833902223785586202052884939236264426519017924092813114906235073464053693412118117992732500860996866139985341885827859060019421799019825176075072973249283305843328127908621563499680950026340111192155718929480085805808720159451282204738305481052862890918004368020521799390766043940364174284550065402077232160169699934296635786856581300484994452487996313323255596619963369358808964170994356159238628820484101050411202098182439151314998719875524283930987077831686035254725123482907535127453563854185941782757498188130192438011337066750648665926575452191992099713314955712579390635582096469628839523863986777116113166388296977633184722941360707203930736798253665138478434761699673063701095965708029213979993368648142321753154006853778744328044079009921850780459834097643229708718536304620463260692273022261284787263469570616651866596354527124290124583889803125203814457751379241078520336988752575479941015352936487233629993150185959801317721719275393836440096374445676330450154771638109140493060038831014369748606077348863167618297817439190882102182373404583319138120755879916026276070520356183505275199216710843302071914699674853874690801876083164000417994003002316661835219909194244548477225074774324026806201731236468803750147615470441033698784916068003715692758675051200890820682637496732250227270267169383960635648839651860288942415413170184432704274640270133944109603651908806914683485433579284489593663901269786614312191243239476558280624041098177238206691069478261279120031836106784724770299525984098545222237859205234195526888096249413213058186112886124079921660804442220671066750903205204497884807387442644839631912239634109212402397005452693512786459612369324337794463316536848323637602467287841042098997238992095843750155942316821790303485519046458660298712124377640594424853538489479194523360285582125185749284398024683484351420996497558933794614272462644915120091256740660919554761945018780972468592176276509160922409495125598404955925388366027007012718583513677215874939913714786786234313875505740234621348219325116795489955086981211018151325377903219599623735078220109322331492324550363725843370748942870649696695865365465754931226875688448691575942048091155791607834743332808181961374338285400325984229384761731567727026379849564519701810481718904411694397956901977461172679829676107817722202234774100133132104087953019516635558486074915015525051568225979759496526805534063231623231926198503457278131178380746788404312119141717224517286736733072382738246703124148906404416768624985052499615079059837846573835353083411663470113429293488033828369961946773773018893296941817882212706784582694538913079647993862589430494670760456194989864001827015780033247202285614144217062292631024165826605091822050902404023764401119902605405830089863508121089585528052339303451953696373361725511949295859617450527047373361024750115196251307814073756782966696115090028588704343476672537453050483298832664005252254729711975796279871441317001138087141286644324376722537674049162526919714268610432699387945316199431016725525548736359308133692178078797975734304314910933027854140165251648259752510040353642679761635609678086780776754911164128247929614100136066196285419073257564966274317460239375387965050322202519975515286210394998974857195566513012277140724368349438774287265780511575089150302287666617474303943645968412865451330167496957527763929770296411775069909510226634598709114096225765163325076732105948959693537345254544564361293875015016847091283682364612549351068726567042557766286314508715455973014896681343369190558675471385032964923653210073480944761292406326804977248053008587339695739905793623488884491431800253097767551054027982361700516907016196264135682012630800037573940300756867436257436354770628049089292048079597191420845416081925986437760277676201526029945121633946853568029034363652005245881389861924488453339955543534487053892179951719231309009263412970765214911047894945861799140477586175486546603295583618585618241972717673653557111315193320900094070576956132044677680770778222912567889949540182429908683180875222664119052784225033298758882666271043889387770302413346175703367617132847326407629022516677247961261441584118185663058314532770222911085992081351821812198293908241376007719306950785700284623190047724037302141922445873540402082405794611447469772273254519533055723061436051272725706166705411436525015002172831148408604788806350830174171641342752202237276347570173223800713393777833341180529715825869389248108450310709704576807544952675352901103316849562357359347879711304734829713127893151430318930215251880210182585679638545536720667952539933519305604945290794170887231982367484726479267387042576724635124572323513302538862244650986763917338091575657463167945818337909955866462845678312070503542614007768417835391544525879524421780661020813250628519500590594860467401353677433048508692868468645766372292002213979888543291514654294253758815135664458067442426648221851952999408207381572677042542318342275002578139088413575889249549825251646931577285831077977235233836869033909180279931572073770867399439240542167515365851268201363844877781160035026744653466789742401641622888168091048448061171701518652859532055203562456026972451858450048098332412133634728495019219350836381819487952143386413267493066789082279584755391889334185263084243832684005946672431738415381337562799859986803684251663172778307842949973201601316757503034620128479378317647782730328851702430794299983221818893116601085359936726205661108207871494643133507829099029717231077903385721810150787966830272425745238910208849585945680592665107430975042612361843555809378304880816163531433267594149056689656176100130223986053056788008449712787360616634279683094366517485534666165849959990654111454578433142336554260827795424385543921977150740026202129504540822512499626734395137149898199714316188555717813166667287063550181022653662641741735099262379367860487662828558456229050354809339609375681655897175960336763847885117895822228355617626591459746073400384274918687433934628834409062813025766008911969076824724622360860785429038831806992786153190098326474043196080874440461794699638224412807150670805005689173774913118483913162191603591355426608024115782216616147276715536118975104070245602988096832788064239790059517170164163918579586163217401457701748065710336831248463567338412509770712412644577405127687206415862590248923544791737728032462273107195340538994405614423293755047247422169839945732070005159971751028269958299403170766908438091505282451847974268545333660797314698313861252502813664485133366863609646415001698999768583378266036454356178705382262672186912072646201573342116536718180083775584051561228287473185275550117989940937421536099145481785805961001932025628375826763981138903779444602951682527138271748473599648121998739109032778291459070527755573355690721756194672328578907275194182222767583490193903250487478488200110612577029366684947690107724159042205022714582947087933776359446374891888475006496137990666300485161658567565849223427097900466784834983247638718292522243083495364307866013099344266381080853691204006527096194338298299805562657367892642264067644792658482103933915983775625637523222145337497427934674511349581689421034195997205228841031146721166830580022638742303577147104564303168548933018793468654538252712271384632188196597722435943764821218583915776249307578497429335788228214364591122869101927962371020452005202702267921502156805360589264415457073113779505592604941786661749096076345107160102450829631647951637111135590986553870162807270524322567695180654139055203898234499990040187422304297012154850911175362973618014243311538925485370116261985846333619055927702741092836631726925169024585263788069253850773043915489006592103710481186787614890605094833276630992211333489462874205387909895537698249444829138010697258534212324657516240211443051724926737778090580561745840952562256433598508482014941246631240480556070273015278535286722224006644208647161338028128495594229703031829853814101063253591490591561241998857766699926021299268366850709930836281150180702995098080312612850172289383523705492463651266384844415677705089736567323331204841310125887615526631743977744429114706544373740469944827711088106258363484092859461233332181931705781404521951504897474212484048872722662654782993626994398547283466396331062146704101926007929067638672621191461198303706346629985585221243275783207764750715061959197498536002548197498698129289185420284178561714629263900798933068770888562591556533973997154229354211652106920994660210074786581007469660927301108075706104264581046342206265486019716534828840384580831321844855649341463198025951179761540044212735690047524993497858445710768087669105304889703750989859256248129387835912830929023531350155726424554391445297470924091784139236911990929625337195481818802356691323631476328787309777533827510516929940266089580792804280398317945000142349320776741346414896980234368926568410489485992514349807671085210772343471253798438807217122495439671956411302592911555719473093883306740187476761825365244015820617630645982952248828907200380990036813107043449603024996563822761493556394746670905671120403760807051967512254530089837080253878153552325197343236372951327787508768243079261420253899497130448990351709539004750587534293955587793707018671632858766619245703635120096211706270134424848101840823793650157665264266355865967343505785637937242072324008397293557948694327849564472873155070706294337132276913868786450778619499503785654473924956485088365815982617998035931859670805601010197037275176850325616047572962336080525997168738988625800370944842554633268261969782085907454749632242726465562449586920328294403689447024677218885044327803073238227813406083463634153388717800357725129196728818917939885991741641877691186528007011414553340950626307893978983489712159255220749863896302350179910062971318906456175909279535366757463487545908747366816434255987199240085681729868543971761086717095667658355322439837420401821386599431516692950544791453279933507377094854828030250082152031152113030021631160551418411354286967216200642831993113506041547645931499319383415451489634170933848122422261736175527620054354862707026069097344870179427039338933992233128845452468278457645349719027951173251246415722075838612735283015218732173357980766851804915803183406217874911710811855754785936927016694844707156653880646971804513154703716806488107302939392031261165071279569513588880504056937490557639434134467451890756037106349886061089046120203448625964606437207699408639925872212078596799092160523807551390999563891554991429060025003252835601144962778875526814855099403168471784324712075653424583725868210170984347678778011669239390024208256779416678142484382522426575004428456246304820730829797410459113487505013633526584449746549439578532472159100017286775406334927992131998251540344774401630028641684747788189241176442031724828441508659771193596968485342826914363747077990578041157331016208050895486568408202726818770809695992840482495211192328518684517018465897889089842030135458024722935908523221138596182581361894685688650111670732646888153500044091895744914822832236577742153004936581305936406672709027817971305888001520063319915015298831652939440430801383237772807674302043021495944279243856419572645021681108189427311802675152968501110256378278575416514415556514421035736957339409872630581134448842240624415549911335308791576006754752954271868603622513322864263088487600685127396845786441386986711342110581962486813017277876119716048989008455072662898550208413701513070144202825539438779472955612281140206437532927471282865321097592221092400528318037083748954552421746764909992713064555280029750461198169974501670147264323868718029464088131385002402000248039907038335566694992166665896644289919838089510638690281709576872270207201095252531822946239698837738226448434759015137136299945051533277110656925541188647344451021012868785793963996264862745654966895849395139454633897222341301273796898331630298748384901429923328723431610683239029381636457594277272496459168404232838369701134646166523444090504941775372306447282803617809084523203866280334099600269435824015485230745481744249695826394066695306569637746780930875588217173329717802311649343734231248765327957976672936924183807637237818557267242544568382469452147005907947587072669614584711917733409360423485131760663148617034454563198829988371908887035310308714241661105218683263254453088700016219729498475765751942880772714669449016110067848397439154632454241936976769914237617442611610674947193494094288686424964529450788822839084345427545873268279502957927079322236984684887956098894437312715548069514616105516010835843325189076751484030402919323488432966216708374913782460417901261978901935955711951503914083197972852198178433060131532335258254919131135386542644921449743734196627238663008605752799305017835826398392273362107593342014337546307721188761673213196719817262634995739139806607886610510718617987114632993594526186383191308105542623756035244815493264097644937900760680149897828846727198787741533639894994093357656015321306152885831764156289257900284505805962396142346240787635677561903977778167276956858995045716032077640267959534098981823709976513898179915057700259953505093203956727954898012565217584649972101139860416228233758222945913272218489211565591085034643750431011183480126943211854725211527280113968980091695761638536872442346271130952138063401898556301215906793683888021329615679364050816434161182631660422047120318813592972351755100434069959612502569803968688260025153541180854792073575402353300560142256438025040418157425954869382286725734658696234244637181137496901294203007740759336880006372291073635558943511118549391324542005924260653418404966505112426635545574950912110019304202828360887742489442180688777671084172720143513853355886347165851346892311519455106391153234481582841049939734285058250783554043777749708408296493013833516329204486077832643452478180371121815708776427107834371511380766307061836848456264675983946732022748539136535625312349243946255640521918949133043939829185262854374854078802051699194433119661695961708133808866271342358919204283244481232764932247811871815717873802590162468226034407360417288850889658109942210327877727778329240324920258739325316912276252018456016252572844134336562831229346606516847577282995293237031942320547810211922720554864815189826356816479838798285078123653966504240495999411981522313361818975184942544336401247294161782771436508685990733029945254174894157419180697252555160225351526461880046064511324262292324284130710649552763714138890424469108668938579633871695060707375691585747585701400878693927614016479479207063790955748753841939611454438579999610224546501668995026657375443475218405261263179829719762769214984862446246586058453857958022967224403541710799425138513812429637933190355649995676885490021331482452483160946951773620196086066650759999723040302681458905907648210105152733578834751060438343198217928345160785167270502916992834293961762455782982275064566322038910440392382435101328000920835503595723910542107362480806569193832257443710355980398385468972852213018147470424724795255046982547532171888485106625467198228779827930974103763707833297774364710593469500972930828430264110500475865801101528936816709841645723311872890423813226672821622874910446004354325291310589030225358104891996112100589791809280617137651393646978278472982467218218569937075154920378398428739864221103017337240229553026799098246818817112080121199102597153116315125953007253859537472025080205133686571464261011382362715910252328731782780707464182454477417058919088932715192992181209644068054253650175847176254768569218049860328390521011408534943102694698727949394069468414831289152414305478099498220852036847502475285781197843716093650749435127993126975791144265827916793074870339913563225606774705124723984604213435866072154623047402596376459355946541087474800142575558772352279584097064083192375027825520153678470696744167330076815641188247128424258631135022003710108793684116815710669537714950116437724923292948767770847373382926406199249927808352180326138796886188047741332294446860599600756522231538377933870048086807165202163416320302901644560521113336822455770808264006598252626794797341665970335768745335970117673268209882055125590807551778014704599639572595690729065842955432742812258659066695358243549574258993799052843417065609562180265582989107462282996114678284484246607134774915209341071768689217016103978863128227279866680636114764642494531252638870366630457208836847421200077447813109379873373550617449339826627806170548774294447460891981981468639706411715876737315892429916397840139359445512567370101690055671962307384758455419772242544394042734173613984965759608900776768091652715177047491475533159336410038757774575107265130450839591585196568958838587706335295970075199230953314935221358286543614165694950137959673655523218376285311778194311158188356599197766375798745572439123619468814025522278568701746474976039138687961699182969287333774517467032416951439253904461896439208895778977513180417907805939330728274149282169381425383149894694279220321552912575281957222850497656596052200239446378261696926767572549497741843129195762381412018001410662081387254282259510973386747516066435286783748131311005705158854762037989972887183158497383551009557488073277959280990715734290438633450440995463755202060928221481647218513283330253956674444309722752201753972863151705053451700706013048096486860032601566472247427000330633130920015476156181622107028585011089610866240698140643386714144439790987227731532327462560544795866217286007214535206901553914766172124544489522981685800264344434409039920224319116136264670486451125396684898518952655157863211783186174621732002482541895818311575690821019541084631779478799498508225145272406255568313594923140396347537742249472236624191458534161628762815704529657539373996037505528518177445087498122152198112028949751198629547212129636855809945617253655071103457218765462887057590198685406270308185786131277734446514557428083247226755434087623080226749011584320903321557146709191950406659758012703531281156806374226552935794788745616249402090727707807526293195348172145984470966637224146455310108250858461903786276579275970441930892501968456922345397708111586140873360264846370862016620663303957800314211495368369631707981785924150806525383170212372048010285961699081001998794272870682225244174142328331192470632013475542814225771000055744356368624641169731206405374435324123813507849124737563707358840199219399500557931225420193532678872174492147684980990480471241855264086920110048715485267669810409343947782328796311851401986165280492706667347279631097337621065252505449987264947914051338820781859868746779361468850252119215695284946673781761681044038123257120662224490195303690130979298072593338615293408130735760880305196560458306947272152263302772934749132795057472113843708781793079335038854959919990930852355133143205254446605268286782336743627598816605622096251290288563972837798530357408984408555246750462947526993960195318663028207838292652781059612080991879089689260002955480435356538344325964756333416294196673431403084682823451321697729189833021925734961277526594441825450373181760480931206139632487246929342871187843166747252016111021130234194237454629510013255012196803155392188542574031265653803897113473652285186222863187077522348040323833973060906987951439984393197104385546363283326016633578392765272042752072718181627925893888156882741399650294278930340770918119826253275192185141071649983539952090422137985290520248182637405438228992587407332687824270459133884685041804510183348072222097993929837403590557370327906410828530639840484287944547339272989500240308331906726223915090306676902012674998874617796674027172418517519543904499903462631737041751424304952382478466042779983118259043755213679631700438813594395351439326432214385090248036379022974033025856069926091769174114904670871598769500246241019604821778674749626117710596081216271847579690412522881002846110676884339689908513650171063371611957285532725617876780130271882114618930296628345931837762847230902849724180775665855412344056217431740508474689188208349473448745028522460669240428301055254601473477177139739800530753395674923661593439225185146461912395463181079833682531642409570749834481403552911117298837095666048582300257724794462597486536573870550913895459810200905690967456203000183070952676624859284534152594628506680556662667539815977007362530784327807393435908125602765262935404037531591966089113634266212024740965272828391894950956050902225931523585095640971543458076726068345277978088388471106852964513008364305383247635783836216241501282958144040033127050502664742177852145779527012681474159156924578518197445657708344741276032555448960394841328471378657846133166971784959848640510716247900636003458827028672370821483037273213331725095634933462554638080983743235736454056244690628517961481268335211636061379177698276892090661178643680510956853366074255218662980270692739123417879148834340204160986718928604246689583627890135551860716834975863823119426224743550934062279477760116440169971060027313309706134425243687590940762603952882043136985009299329168908471867400952958720710555268982869492810256779350879306958435822864862541656048762519878883665196798940829157157520140626872399531144100492920147728723833791368046315373737014874762404834589202464415616307422889712120486028959129433770311072715574794140719432134475274717975848419649586203922689769436866950425957789201546414678830808705777802336615996062836257435727102977374505133116274703870968180079092496905599711667008767935588330416842513167308524921612218341786676771048040638062555209213064814018344854555498492260565714060275759447870898424877849029856393010429321164021966050568590234874590119219525676375889350671355572083375390358085507495203576475954483896796361111174659510451184811097630325814954103993818133648644996602480303554622157041242451761043372610193426858218882672292096571751681243318046644519393301914582872875725885156082362878738423088027436165430822678168139632104585188050251218565333467347235984714232681753605502265981311790545078652497166674790111483218967592416455265201732905833829543119053525339060728786500797447903233745899321359047005717354292991184247526724554835143582198586148571911291294642829662067110664280077193701016636436472321463031825345220790756185480691292516773644240883967585704856088040631936987471963199181577306613464338781827093940201159662695964285511525588867617970149526392245925617871433515736538036794533563113515928831679366117133167306030479043148227724087855623810549156406290159517934943979669738946706570699846724446611372081446485597668409574255762570211974593407973102511402008321506987853847240645490856293726426061638444096296463508930091435126049070641845222118821211555524269989188470272116592702122649079354483145276987549998946059221622199324295219647575579843585587640375210225360654535553042947635838996960818038696841767879141122504233416582629300093925329681560851799471523578234479473074261216811681538822764466075268735636246584306357175028826607150944316505894066571840408123407038711682836333457749489685152244610352511902203513843327234998298726296469091211275500425322126410775914984322918563841712462936233306609969787132371068158285364460499807251964516066212355899609080953786797198698658401122887009953230192549128239692144373755695757416854470615650707740421779641857160640625926071068030802803050648602194507872635448602569030874036652505045706073477156334479603438567729985925149286828761324261080506440676790449063075921892878130303722922674313723973771530819261541379314841949672227186700565213008482510059489719913215097031300060488489285852188117305477120831681128322972138909843321374296761406439637608336872075550553989136011607405842633635179810137547089830477255933990782101600084242756153149058088394911056612672893987138916883131177743992268673528741017357956693590871219382023947733051154591196603576392289888501106161605348715926828273679640301973757465301573106371977436085080404081898649447505091327152976196856839068638839741050265739761656640542542204349200583244026040642428057303486704767674288590199191325651198602659143294830686434011910035795190065634914862419758102843631313434137275548401692204027454001722483484797397552104932150856157966736137415471603764310599408035785721434529513455872074213986954399177927708021001269365872815527171153665947591415255545027559736089331744276139656065393950829370769417274649820469632551164463730529510186041040329560944338492157944539871659899807536542624502064363599221201047704516298281868704676399284935249119509515816421014231634608492104174679281432130851248672798743854970778812400991556124335861408839722340056373161185775970612055510710027827527396035152086052204684254729622451457669419300679092103254725226352590633005155787845131818458705508662246818857650523657513113688476618224994395520390767497949271612543040596929439201727770613488869083928524451460458203493632325187673883173719861871421515435713932330560254271213863833288754595169611974345628680692822020951661775361405243655228409253095930705951795955606125344007030141318880122104956141207753824260559096716105044901215102795367549246201904333634057017967040726466736040391424213312309449854457566449815609221201165280127670398406659843576958670066841079654074344030335409226237091551859040140778195015141302206925051597790423970779133709669807000632293131331904785935123383942819590266541857367599125755890176958859112114290279541804908304281311556973855445130317950228695675377676141564134510532381087577195493595710563822325360236012515509110776306498215305838227735638686736774920460684619468345355015130541295156420668319770202222664466221244802152699310058404707418313052973425975532561087243943362359504836393152703211918993418250875488358966680271352044189370177229167668671748868296810570221402556763520194684221943282006302708148312985667908589669765456225249451272816999497021467721359609255774374313991163155502025309037925621302012676514159640645308403472921445741603373870663175373616464597754226415490193849160972514841879603553812211509898192710036287386609156607241213608849711652567836530671595122849608423851040370927520871694108165882998600672916143071696447898476990075880714049427348995189321263072460623627963165213314408158181887177973387679499516288547659397877068547313802889189261148139388164703031117585889146788543221430969157825006777946579189084092538928573091386818807871564210341929329648647027654206040368805952352428622430639223560257174459839247982441940957146191062103501763129873111331807787281634254391780025335236919149736038901418662785890215585501749086443026437762975667817440466725261540327344269712461435376349589430157855546407714097530679840774866226891098101724479774937047651398736670104890681959082517518138036579580194065365770282442245423529588299435493815146105134821656112913421951521694025955186338704209516895820982132809250773083542139600999024850741824692543516020057891311936187930731602734810674621148963347339114831220517847507422095175959999535739449543832892277770472160680646407035923459749521412025524287689769123873826207109676977937096182212897918797821099735691810485407727539214958146030058328804969666301864870654151554743208938797737042068919780122987249136301944565997119108380731233285077362858719194799266755867827070561164378890100014354441616933554446058917929118117841250765385030367382151942324168707102347375553167841974396674462109961290118292987047747241356451218446819653532501275241164676408762058596598719416630352805351452384027484882741305771735923264918065734729926328722877274177115465227625569885236398384283270160635787256425365970036138377497356394171353241576918291929810917238106633874887168330563709925890553813563775701341264480819067287032818967620671548201640785336901590377176259753845476662339616268974662001788931306415309529053577240507175553975986087445022365790813078056471615322098187639680048105130902644122934141816671705655433782797057456181385439578220885466252840945868721655072353963384624754931326190483646181359226009999412101263433600011741551043768720441995258968171138081488570392391868782430512047266308640250692851494560806963031588531238318558813880998602211236686242036350227946215113273503680101174599895655522109385067830421236698038190818549839593732733134337090032344467501580558050582939487999023183094784541304821118320000013975021303881070117514026704521453543061872640705577099815089146967929912801928225505967048222977847165385476384874907526135745874847895284669605980943777149549142180083032326423182293632223420058279619029359413775145126825464341205850170546060577491446662283777951567043132298801463388593718644432860901791335778651946626147204926157111161730721638281168792820872941538236672480512826980815595672020736696078119140892099534585203036050994747642564469860962665276834794558008044610361479580280132055054568745065157130604962314300532650236319441714252629267904519713964672645661858234030417924644633965750579642390934523179071012369851025132876120913888709924997581680446236348426092234533171157980330701777924442292113914184172901971162111494360637848605344164171624649646156738901749419989764080065001111933895546791320432349530682537028522549938690588413652000315617147918401940690058949619560764973319638257763292155432898606534672044203669943491863968258286784687649155159170426085927471250572377077397316354946207350513183804442739906774326828270576493710246806335105892469728960362712163454009486630425146259918579374978212368984577926501271678553124954958129123307676433292784829709921374055013063530594577592477984222727151487216830565244288991179487440343384111937466629941486096397233418464979948932807244465873839365443853494616406815016694108794532085208120946362755969872985365755056476735983720944772453461182092025646046935165781240219002897530962119066656454597467527577744867287511490212265655370415818644839081908173272681772255468614555398754827119717655453759438563511577332928381193392478388748703931212044353826312257258705657486845441519741927944548476865666761457479617606488587318272370828879248553221835247964573311660419602284398171518846048183798822334750347410984327958060932456971324750445473300544665299396532592310655336210117281906449687433053140983952110729681515286117680814758182397816698307839261682518346217219696135563356388554169829892450851226763971867020937503653958305427743119364754139900597546248488039744830887710947147143653156079463882167749307993603348073338083825026702698243715250152909180970963789141282038066417921614726724266828435219731506248279495331597026469047318112267859160153002310968630291005248539441364843426405172099346457915061929594916553860332053966902068535666658595643266418666617316645619058406770414024054458298622478450522002665178735561760684790503954417524373476257499627889948269670474956886972062353541949131196063030617020877195545314832296615356986609190829036618437579543318580637482862379082808877943505717109704301064466847138826810901716135106749781705132123408685004228705243971788892220520899092916988486416165698811772317670360561091811128070078371447390001809514634341004131770730557288682964296499364534509791066977014278443995905021569252038307240758774246395079796141169731895830081798942605634535766010718086078602511466261189023972234500378466022682616145896418822427286158624670480459631096330960072708641994591335689816547920381321136070642102001711460393851222511599286531814514159131139094984527689992562369638440092703866262185798764181842628655632373035976187073315490056842554913086931796408012133772362378004778931425024127890831309091220775208961299095580785512221858105893411078040009642330380745071010779747448738138665469390957984452215990386278180495485982324354058298910240514717861632011876958157619367724086354134694859443263423113562778683245378786190997514481202940507257552040419842018022132565968746411721316878805653405699966644611209252345781594133678009829937025038232131362263272303614713557316254338364495101400485808741806799049908922327810832821530305705095847676551288308869012030388164050775566068135229632238896836435786960755342025536522608300192912436493141257839562342780227707013168410019237109784308866010925281690191307490974246068177518231846386492389055009621562001342658034926896371622128337356968202879192745453912243970219903144158058416571449596538819068118630365663202835999651876927227386002830849091163239775322932836643940747176743040615570464824137474327505243648598221365855094735509578311253992306910339027470655468057126078478523563740447249965330031885454655351044151037396919971554898988764566411644663238700954886927164597354612519184903784572009256591761941013287374836350287415566302188548000327420090562117047969771516353904744332088662922475457461246256594079984453270324197715961979185109355956673490386246403509120727154525618598495477102794255474777304588563273597544690176981419538811330059063752491765586195009256597282000839749815071974458546312173048814374045804241256052316722499927143288345656006350901696868693269489666665198430749676911048175652988578314439081245258786639194439395536255136634157327392156946172827069415254987805345275263943217122961017213258080957161746059496134476771913376436052988163460101859839960491928233524655065129185480876789595583130873273255588130842163973521827927092751769945526445158639513855488719737975747101732742497482258007213212410077525949270656263387009877881547638668355826341811922797803395278990662930862100155106526764742897627632803801859720372430225810605272089295514728303835022788778525505945376695683355406729000871224271331137539178498107225252425033720157031248084093827346942174636292007540296309522518168988011562987792234757065480732068492726127006164863466180713400993509897511050408376815235030758228447378446488727991293734763587004980310708037429920149745232048137237421521657617684878176440653915749426264006390389137784118102602177637279354556603366086466398913081843572516988659869302163448148685501785407933382827493641418650332590255361012750785293294002285676043251379575748417625538889548638310366393284942620571944786136193298610172625319481000107150935453442637406816209232767998288631950472555941264159097540443536722122668205743822956490425359396751271934914798658731535205914770775885728344522894285945684903551502868872219217573444365319740184554668991473775684789785398506012369829841801501893176147060681916353792858477782233191344825179650058486341655783007509899728874571375267003138863266726223243354993728230295825763392853374039795042288129407254455254435112466312621483382296909462040351320522420712551077070825237128500610653380986986844283336298239187187001978353646313493109503570477117645213964032503987636379070709982302139365471329637830472711330608035656067277631361471395997487376772988271780535975394431728268360261551485252720459254987102825604771202773989941023486281883125687357438492873012631969508042245272983604224398350183864167033966957272178538908660031949033343033303969715468776108303243094003967080451750170224227705786622546668844045082063060369758085081181728630974423617878869855702989230184972264794598998195951289772667830768282293424959828176104825649095467963615591404024128637861573603138278613738392609784646261242057183045911118440747683451398657198516691967191236489776222428750699752750251163538193507463600291303257149813214605873546362231206026931935072714783499727545083614513523741346981165711471973220604653377757335669798539406690705593286161840712699014033848226072728805712845789945937774910741290505577186510778568132708346380677218332236387104217647493000173083756477561138935436630751157031589902960717790774627162110602193722799413244225919949810110293229061407790783066730616605029272765814403169618124537196662813339938416093082503412270503279578772630614918457559278688634679202693540133763438032032132134650155911286845318909736929443800708046280228024043883929680977528178646779691907564363804243416013801889350609843709345837130518281684615829328738215925663522358017402441885035255684244351444858398751723594380057389237064028806559267896809240230910266271367335395386922501083561388990745048395748790279425927585590077524820524651696560043402263332516912100084449199447444757432855466097570650262249170306413351987127122841105597941842050652355348630392046326785669111777769496221788920914853956352247225873763076004140786074561134797441484168008366788454192455644854995327981439289566585731463272251145305916856525040405731160522950044898029967204941044112505991569297635134068033068999970605194059381704358456263028910666011930949942581839330768003334336260956441521820388929764667271430232494472911412456482902873113778914354646655141728919784482200375831739291498715246320114064873153147770985111432634333853539318283588928802273702991344260072354190357518832630813030964695273536174959772658583801383734700608398750663196683387238095704418153693386781122713389986904088796637787949373889470230014710447463463133039101009079220192751887225548114138525174148209031455690149047756810264024621908740773297297137300534540179762265826433365000031151676415407655507846310504468223115878292060791123743360838268256009338618891912167439177852045903403327846718636810882559650863189790823928189057647373266221733594907138231478193593654782147017603762062126105944431755732525937979832248908419890673190764242842251760450514711041508825022018932300988724664168955655947689805540324475644670481398818820147880305938713409989889827631571395798407323971410394997021647895810957530424838922130966362261150955285090264525768226511528092553500313200075919708420112416289385809969073267165722753593999013703093732304839411265238963443694394562683942542412745134404355517098005058548419543489245015542159820725341967514469408121668911422185836256345167672038434940402298137849610886667326695996398150422634300602646762631005101717611705957728871266904453346915489680259080395341980161246061933159959457231843599220506940160201035384808214004418764709224373471269928312552873282598432468243603829200668655546790709779661348003538544229466481619708858933063016702637099201264736588686669682812744522441771888337571492442478253910306662802527470817499793234990067549038505584277819446703868215951948074548778528658320444005688324459782118406163253912515402718849331192214834930671359694125750454133471883678215690824634338904368943789779461373907608379113734647650864498003493190187435724101663613379827960646401381835480759261315817384037545378730080664626476715556859695018923326168041007429962410708743076322227578628354026703467026152366534862224368532582228790828730225893112073579006411163827532905197074963123504053884958773721697067250438189938734866569645423765045366167375150085251386511684809074333917887640461841039319097412403418483137367940520231139935216093556307010414835499632420885657899298074680558883237066455878285728084692767469632785284994323876314804248251190312667983135547554081351710109367005984658954743712385104704110030017008946800229005669034513992664803707761096903216502433101339373136023083954596939812099491665246485596566793063206649541710577998787677966086639701300626615013920357333026835264022387549810872648304129427179140026755080176176028729681533912246985663956549186540384449287917728379315486722777039830657314944351755747208015866098956457525412255502600534621382145574597627825247915338551969968714661009906745793989721104296915383121888706665144415069142620113026570066497764105977975512500842954574494775882109902431531256384036798673388146742565505069714291552601730905020509843282051174167965365548951790454882379450829299104109346462871156002826645476820099711065377673317410361137501225504883767491428663703385067927120767165757967814786927351149583063105177412663417468143801478188071215920678636944948803233622462308350677252272430950791401462544293409451874405826549109703188090102979238950393099787100385025291879586217681975347495485382304159632796634403690758544960671448280486116614938770619449281216256876106405406114027282350300543897893581577378143685063153888465626688716531889299032467729450138050722230007260661653734823865042527674336477625934848054980719821363479658863795078388992559452461641895648382711236748082659574776319251663141038958629672850319255306545114172351696770704646596476326714490732128238393612910887364657496272921494054956456824068737442154925282979521200511689350075573953243436785702649043354602203642330156553915718020173983529592625709789359608218347508454305328761097562308397159151898423919104666200519436585730635482042880467731352980214922653128727063998764758116619490132303415322034394653301395005995954990508547379231979380941345485315191290025500434660676469827213583435204657292871122900137728691518221940381360557285648495177391196933583147144578454705394562818713475390461438710048407683776186088940495739613030818318658528770694281986044033622458752120712836795464678301893641867422775988725052169501886999956249690982428332784892852266079100670966523156935133517761485166669115691919096413983132274503440374134199104135376970469500292918566921057530534849894913863937828076411703554052616858687240228388510273583821284174819974000667402274492713428798830540315356949720070520120291942093476637792564023819712901664685136726608854880524917544485876073386911045543224178168284523807798903598023789934681905963036802023343108876462863436100263271115660220401613436917786945926196030284262870774219114368997866743840690360977588299276288457046769374056811226113593330361422904580111275186517108493000593814802889918610789331358869286064595112255784862496070924821386163733290027641873445702560751381273737286710475324246921227136961864850302636260596123062493703593295650170920257370565963273159572662591308767568825473396283251484045187318533399648230054332076820689205521721131252583915707138054329181277008791111353667713393804860058599956436812101675346436406816150937552123870106991474008836777842426485692544294256797019458221747588165443043279117515380373842542650244320126765503314535158108666755771144200604472819939390982168287609170403536659297606733308397722760244717866096648299058199487197320853985642116459648172532977816834782554505648876293564236324755751019923186139708284917774555807569428224107390610908920988649162665044308126005623287709897574558015901248658820737572769010077446350643751413925019092895298371800375416402240210592413991037622966430411109969368297908138986892523811793419071622378572715530699470574022954736903714274448125237002108947024142051858041148264591162923222398843069182787091418492294032323331927706241041407109207014931203710615393159659045053111747435184345392076277152338197988038216250994538657447477116603093597576973374573561923299491541153681595370353875012798231615674471874569062685580993959804288118683210810201692208512338784626725482787581777634217582162160212145841664503969661599699215042393162418128412973775259936573333831606058335758203235326236989862198158716875654376698786442412377387683246714158316940012231218978877058385530609480425548043895326152547527156030974760859689275155496386336625806757194121346699700357866305460072433071064241372098550941827209860719887021040431541408194363140740070576593775751719040371377457182385311835942822744036145378553351994852014543033713501231904237694269120743518426256145698772789260032707434811113713923269583646018198124523979306314232949979623939245966142005286467121230289495293980499112430604595089238425551744259850436781849129406342925069727683042978207177322628215619500921301516446384558934078691963938759648839051746605804890018295063991654812355261226097514710703581497543175985831223259748354148400528388455967364726769751256004221515360355997287340054659282609511598176037922986336388611279800142861385581867261596280397797958864200025837864033749435075102213678848921073650442897938619317606132480554300373717408198401826438949404398017689137435063371124909871378571316619960738741248839087180138619557378756407986048543642160328634089121796991543964826811832833459214589572340547298589784791974881094112319045870969137978743383179158361216395609257762884457601516340783939975669717592103412079184776622672052315111976753553903216052190815462005046127370486988452654426128901182373882992134653278238509319664681199205624404329498317793381328228477296705946008823339399152453354876853664870226137712643072445664038726532500945849455832259821718711527442499566562444662370546033071366743924613195513176799970326477208795076453238131772575962434867582804387976972261052875100112490492644321335663309573559088078968985392864481206193973152181820353103537506657578580426566164436355179137123683707415941609891219080641306097328637362490578244167233446787965838759356708685488559885663609410409388149233798410765057007132388529397504917599543893592661220674313192902507106003266383281180731852040101251383422236121679164899579633790519904599265717201263868916905883781754081867996812658696780004472108555651493895063916823880313491618444219044538726307183461969132577973282272113366040014139476165377299467150925985170766760021884647948201235869138815010043275233135080623426154445281929601378803043073543009266855625362532222547453739687058230997797063498806097696925536419921418612488829128133660370526989463210106492620361150495800134900177387226026878996195205540598830265377088223884507986552821276650034511718185184016126617844479018941876665676483033176691651022774699535383867933718174895888187010683758416909969797420580496449799469649085408060823252471916944367543539540226777328724027580300791748857721062758199172430068776066712984805691475107444182765684854621606698611026376400197166118273432020063264055374298057433733421355415420163562050725530702842322772877989860295707816225725904151708038521776893835893140948009778674531005085235144728600604907327442778299626145466635900326899811551870098875550604863878004855615422727914824788096528035457990931565629314644577026216500955823335252210554669514532556768599889278233851088949832104581496021036468823898454147375226055413799318458819662081855614787336147752042432473359459646291188520214569276852454004513580665613195311108758674356272067994105800443561931579936970430899734442511654186549928298248539900523218999990413126932738601406648699859710317869523376307339017558053448879445419584683592105864854858287967262798187097956054804714936948365732725021466374496367353747242664299746881437508733040913310592595273012848248015142534560970405986113016643520042719989347222216247862493568015477603153120791437552024078525946484090754867956351635602682311450064750200889398148287972996581790626386955320316125679464131785457365786366222625033309500672485353425597554949672195138468065636100801520861815831552447269152158409724186817070073198127153650223701854851000135541598693674191167075792364856503743344468154524969757568586192623291826193122986629891157868194204862339589083867736093033587569860278998910428863511564070949652772467811457351216440734736779027475521705186026849801600825472977353986165864358023044790390877898902323956594315175592777710137512869080100787292768045302157771839966246474857534891211497891780079875334019071228877373381556969517276784266789255159190291515845195753809941692495162489314270211012046378709796760055314488001292159420628158710496875831929822058364803975799768610271558557441827818002610963369729739907760030826428216470470246749156033786432453172471373668473468990237744198229949693990767030091148381947072836248653574710352753601767903154300378085336818271346513271849957689841342844677452861070434892009413694904254624772621395641117861913378347958710978523601780632042450173320486450250751254958905593786339540805582623477207605482056729932664464196564658211638692930567364081077127833275158112265109108792447103295746041614178460648613857786094454653241313752098791821633124995243880303746234498355455631103593164012428653769604056437358256368418123763351157377540523711150436636857590192951649193599047563589501777782289476420850351254368420013010459445508613284776071819408535838711696923396837383917552912503569076362462180560412002065805473937626791688068588221268395639602185160551854044235542423734157224610296128739607407052308909906843855468539014456896481932158671175759799529142583215969165851901685150753914694696450001667735161818272687396528274971579195723691298416470684606999867799940710549792015513738458876477456109064692705544486637050182610236907864053324192441749833379562553478876659699855948686450101221124014801233880928824123434130769541987191510227881598666029072333142185708958941212756955486553464890515013879715262378941660574831734344432172145537272305569766868028116086591802824377866898213989054260521912017181054916490260739604781184255090076443084813871873309520055177551784606963845971399067682756110901146272231258427320872974057253327796147795189070493923981980274986455869767507202873393130320790258514867296285941581905660270661576960818874704295097228097406853559477346296447958567574469609105026341704589705583996291415049372911866474012690699452381327336292055408234363360947923398858171008276120266983859171654147978015178985521847546713108406415539627014445729136648798228117523772823239906843565351538872130327945599114900838070902975400878671877098684394692129538539421211115099157518743578481448996398804257279666623073569755598587069453669237009473751067344471080610008952992951182057165658193669511250390151870250136744232116434296920015441310137670520788676962515755633410687015048429700665163144381380643951551637868328365826842243869724225529980425804743853908142463577928370507430040478967492787361453886852329969779320153412039266281621549822842396233468638120891411660416239293965132878203315115007053848453536838267394178029251747701583286126973641144123390974146725111335869997170800093112471788359885760041254244978396380045904348047933469504211649865839751552774202128378149136018059073597600606758768584022582233664909738686020322137989357019231815308335265246379068815017159831658900305023980896460520034967123277207174218593844568716775125878698245836564855175510250842880444399567593313532031526257647649865776421702962224614320048459230328820349667205654882400246685352306291490237359234971360338900693134242602866789834541250686864210047758404691600561986937526824270335205623188406261142411922834830498876589129743573558091261787551538173206048322813206176400468076628652166047675436413412687179529485149330489819121827352535434387700540408221081052146214372749672205236032714528913201320855399499376879968118961584793426195861899566185620603418835679098634350802572992337178503060633327878934712751160661184855207956577203919620311439081276158870037043211343545629070782481199983806289083751480480424598095146806135141188442906025725548219853406322995686966989750513768710506824061274493253050721647281021947422581850499553924666991063856575473031969117416582064461300352865144078546915488850203091277741071614710271368763435773405584680122023833938378017774765104357257602446133931861347525384922957924592963976500918729294745378939763552945792549970437410304358794133607150870824701870592738877290578325792137621642988111023859298616926905205194755610790147214336786501460484900245166034880753933638719632567049955799380565650639622926445462185158435699033241284169191644449418354197189043073855423854812804603135495199824702254259639377751781290853476845809133674578471589537787681278157823512280378758152043928044136435892226396679851707112062212353291105755154135050173771813978806177571494051162425045514447952567358510225268500939190474661948361837134003168301078867231154339978551989908163243778490761354197017450463935766868823410552872169935328065817957209410140439425516954443746986332323587113958451849183959054510870753743704574599118788883122206904994682165097096615225880797941319909158755348690011228768294642035837911859208443572781139976676727387925366129492257251794928041084275762732988229990938441549167934998570798982522754401497525100211225711841603359802681387643768284234624321456534893733941615519008858761678154750394183467952309433928112329957979812609923651743246958780225037544283694078726082229550420316306852993657505378541866597143728938166254057575819053607292246644904667962430641033312225781034330152866910393611398677690750030326402461563140023396030841570073622335836976509713115923570264342040599540921427769054622892894669536455645273262832884745321090505979872315995580347572657146309115071560222527739291516972272188214764145536626397312638413554791546219244213014037312374339181589321711378003272557863721247765650494148285923045480354832536696598597965167741474206372389762000518598415648384159399028290438783780020525782534164226014551933970383803090041855530202795418524009767014888244286102128553902619531393349259732804346366199305946562773443317539028740384048533908675355750605319909619982100487176433047455022955235356132034769181084050779938549728514863620256658409531381290891758773246303313646117957051866237176266065679080568893099667363076120293881361679255577551471307917572811610958760585456964759256726239647897125851499002529041302944805867428920619286716702545195166413844489169711901424829746219648635135006916067776554963889312685309999405145279311436927327974234490336026966771250455717947904357200055129271058667555506006480226638406292195971663574809202174439219679000131359853581833681402699122328971060839505714621683560818443279041671677812186749019263563792976433538520692390399692506435189430462428508120821884786324676842489496631730906187418861705581973165091305951122225497993061762799317248163901286948899394564234074951721382186561386965757919305197801362439735276215085308466972198804791941328299709074906781955660895055391572084130105649828029336116260575831159561461133368390776075706925733762358691691986416372910536053786099519811791996595164025076287704113666040654693709439930630282577091756587547660608769931930709972467258104798068063816880768886516887372330178441705201395639076928104478909511035494719138243473207196744608773828575108980003188699816844766896828604735757839581373593224231388881595466013374585429425741724510433809056840592048704230330685940250897474519586329745386194144689934899508453122587271891052692932081602092427841412512984933083000289966460250143420181845368173568929994225556430358560430142299343373510201384560767030252549309936825830773910800813502632267554241538023495314309027734886378909227407877941198702422446405967299097710142802573552652150116952272382300500906490303106172116555549328863387814805171343268118235282846002212888187366774818461727728477553865507802583209764579083258455445332360466793789193991975540005907625678589205989700550876468293964778089104822785102672736128081289226235268483277765422749012306821556082224760372226197869755043392956026763920471750309052473388457701651601793854558455676397740519599151931165227025841830056096092019820661469756619294620486896383210753666220970923017140827711903396421020775302245825280271278090219922687747133122041008834666007841351863661845481898642895046887869236950929564985466816977911847958522033397998127799552563792566902254095178457329823911284092529630350602592526434021876949579820145347607479425584820246976265431140781505239245999820130803205794583824869000304852416495720230442592984998550483803553863063891265679160652847180620516137321024209012978726342737872080610372513742103737386855072079981696706224316122968975919721521295367074416132089059041240999125957751788226135128085395397633589341231139735018829167821353358539972279374694938726918787285240168604096830172360923994625635728146855556122697483514683541302297331549318780311379030465779425968775355939109874864700894265326721108263740151191813875373399752359691924027733508575808631202379947626993333579163813654351250193568596297795782526556322334742294568473749256853122618794734089455023181341529792258199816873554755369904185216774184815859781974925567374422633014942026291740786453741420274557583343552802140010021936636771813749125898585132208195226987369813760221551828201172125691345855504593976008543769896529049222488623667723879006639440898360561931747663625158351802941999722183122538195748644816423285139068008578797028392886091853954712925104917360840403692268043703385568188853517556209215159240080193843878907151089697308643871513267722829654066718198904908810326778478948110636647563118090408194235658044052491914275485301100157318311919472429136350544845059640053290738174216239355629572015053398264440745545598579936909202171729444901517924788730161269142504609758342996670974521011600075041381110863314338736932734866303312497984471501273482237034461385032035841428764363288759176107931980947428539143541940969453201395771837843420440718966197901277791413038548474450679075184592490212479994903167864607867357558888737415462809257637720330883618758529564388519642580313975130993032193545520886613769534571232159087081822736975872691393301880436058566109180956451523133123659502673447233028864645290823279823007795834311702176740384615607650854135576540840440185417421072958648887846307026785099765036851759046824741911644834693830655122727257860764836705361148899523917572973996214676499155683970348220303430974012907927943108076393924323095414646616081187504014878940902699891205399428889599169237505417055337084527970237293063520827168972803953161927664724608908513797700589073671312788794160967910802185818093893110677720854825165371985209194523227570734244267496256848163211548570820190357108869132023205994487154207408235656953109408083073123117686369185077924920569008640362122792775414376960677332276343042875672480027580206677006624556254388702939681622610653185510998665443550920141742010866064136184998950921936219026699707860472543744663665957016474825401622551973721678276938780161105904456155038031099101984658434494778195743108939259889968080855620043734697230468927996852340960511112575126390902722349545663699674161708417936710828530732188406029528997571710297050246202171891406060003718819875177148876417024916596077660925265492764701237162153581884234950578615709747929882262137980401306527771280515605932542227312174704351701121958853306027555948725740707375241031376892950098874419416516980889227799317812954282788911079245468305089134432055008150152387587543937447955970260585868820027045175098967843699023578229079833240267004013916815651796982068778988003263091568762150560549902803070377027374019845679319019697501489245207148730705181097638747762337017095667394566872827681777542992692990066683588266985867392029775286242571731800318698290205801579123515786029896849051014173267846569321425176443519536196783104481262906136494505743710464790546158449108180690043212879971701448632098104061349684259687787818046422966858874640601293605962001717237246148294053466494121714708867542481332386066091034193584148011545576884158372040314322622104553180856059009646987087077917081333491115427919042181015867875636145007603845709494093054762072244444386328870958381794663200900967682908073060943716486033004027902144829419410898439699460547054982124585083857198673919459826144493100961261818698228388515527123625426056199147464524184887184348204257886750353742577969686912946430187799208940076910260959901125531931975667610582506038989523789765143306554561019251887756524334436279456715425453023765602800931473787106803624115748795583385285537345202128274445905857066032728901394921195686380476837191819152245939815424158864227305148930861369112158838285822164035575268502084325149716015236009813899646832476858601692206651695716474173678787842744929956338332576180768522372085820644313795292541721058516280962358817021233057042751705500513219123546477683679695370314806856716221806512900638071598769695641547809292275608315133814530313649665467543239294780309163783876973152535860215222085321904474526217813274585541962858825551302934450453854010517897380995765556752278691253917530079413325811517229226369840842190856238172914486801857498274609975645268998926665934125075519902029475853705282375756089757852991197986953595326561367496563396910108250378812256705181096021544150825843050395939879527713800596211191410579949555653322617738819417401895951453785074438393229428399366079732664547592565824374653099946016309465586568997032597960683464779149233506793343923264622017835878911474980258763554875944744559485637569019132245531420054664155597180241508103226831874187231554254778775326378949518356447872597247327747941144768274564767522471312016720164727668879533103297964481396981191295283734030478054423576244953766483618217222927052128939076390100665062908343171093241388947411276328805418014450355797742393891707103733175261744762515403894423924528646458888350289917156005529187694989617491500958830509103334720080117210071895341695191464599439315471938789460175809063418734973929407984059918262984769633684262878326410762067987623225228832876201755248795031363732970063240906426383598818908432566357775631863059288276943678725814548600901764507010011005504835470213891709452847335795185752341873281144092358393393138588253324623295963806333277072597122328189526841133470946947533273188173901806455770246730162515607761180024139652385382097299965637196744305050310916143926453452295261797096708995524353597135295159489685909290094011108283187951810338331031410479906242473841602318672679954630287920945931376056836711345741088184628727955946933603860640840354541556362654742134307994564632263457744863642221924316955095069726821217905902917045736438884537987489669660623026533642807837940901454642453001311627465457671031712054545698351768549092546853146823847136925147565682540080462619009233133545458115111974340008869522545423176518342374003579952319793824599417238165750660217009636578573362885027438249788377710863247535243787935837019064804997332340646904418801137021766381164935562800601007182052420628019150309984434916552780753617370975950845616178107555843577266716897167916088575838520650827639336881000202519207976459910591410412122523185013432378015977445963681433298220405207768264154190052110069679669052322895877181026906179200210178986311583276591324520042693189483942932949294828616754724179792648457262885031989707150638095874974633204778534013933017657154487261752651581368263834755138303990263644450554378980008198460084819391100169760853593820686142050882506620679633190894923686938102354646547754377096771616485876899431774706444019760240769665981537414007216256212640804657825531717008110775392418618392107226610818714912363098771880822472846394414727631982933392002867898443846921454112960221913113881889449558840417250439381280492903894771995268097242208053284469559022038653051271803593795699983074107073818437254640194556352673163736459069998854429369433893122433480689397302573349503250618012879854784607789968269375114178386511022949016038668114401030737486601848783588904064769707547163676295465865240059378693652217588909556845802509932770191882642413833778004494060173773818452066155938444108388854467736968226387010693859469717283553925912291714550634419014987312372898638666544568755860996420672953406044550367519014927146381836126757712397117658254663619080242523600529792252443142560242608573698903003685980878698228070445060473523663226230021619292186755619809976115674801877768849302841397064171939437117191318849994596980535014591310790292776757701899359853235900889324763054690044050573545247931494496508804422021625725508628563560650389039526690565064884877440250038551702622578537858454361598736731851531651511052981975944924594576145907166592183015051022604317042872536460729109476053040264406859876761389271886479492193761690237502241996314923911280281295886483388301725206068359906900481260496394319428841476501026338297910178885003168221852231485480706345723854069717900280817977871927127002504233237652697327175654547563267619120967691336463433053057219017563928586637030175589872788828704771157333260602526391478329374736265934252445733196001038046382407329740607321364339019654390798317012208884693741595940682537431943127684228272929823186497712941753458988606055006193164109094706400975407378746324887227573960569638355972187959345360824076455270778078573885701375782934883246545567745738042460992749819166568567721214599956460430207138124671259162674682508067773718618739778669753297963913552493230707801692924820891650050742124003970945823666039552918856749267551469373906429382341535877708119494593976431137808509368996895487465499680790753886592368709234909500180491159396574167138458501161302551670339084667776153108082230051265589950393520224558142862920850718782868211496386209420527579746665636584514656817998146676971170223223101293816530520843583436917244515369087980350039147015178786480414505326812021842756381725445489102756349433135367267384500071023079946149950801574931998110599933167634270533818268680012645426726841215845012648006805454472620456036976373316414374683098080799073362902873700513348760523784746030312867403605552709479729976254621656813420858738870793138234367140695599443840345761078537934478540787249272720726146809141716558174665568559521302935589736205987519186986937220122822061194563696010136803082458025133515380251079477941984817887649055431165926419792124660529762946369822316380428187577356558689223441044873335752430224128948275660328618973582249101105636141139678928026222248456177504298938677480542106538767125726203831326773074883727727922973568389575732924535134624002770007817838593397826934328711060491471993196913124063123198888153602761349031372036869895310860024196296964989527270952676181088704977387749544566491518498588535075349160410380531082670380640181650985930421785245830552036959547887584259588506096843253297712353405528390565156709470234468453869437226464641600477000706676751744129744529862765794483949923558655781749785946114597375301836891248841584061801652578867415380604320278876895901207887655148765511597626973936061715558136285103434387349453594518913027928256035784226841957680435457066872594162427407907257999179152995699925463141534701002902880779551236533599000279982860004032687030386719590759663089489193582284377227808808405545950069480634959034436273415779173127546419727002343544991059719957102741494547779091392168703310073106522653038526863429745121675756838786786229353306800464792808213685225566097224380162945539721301964488420255251601139558040108240810150995991460922330979295521697205361738049672606729776829835102276450247416699757453470831258474253507049876478756642538395848790340918871188695083716556929727722463035182867868838613685577641025049884571258750452303194330189518064327190049223001128935696410014944788641575857019432591541523281564962748584190352756637686961607231862578003488193549576525710761191645571813975206498914095005710483214705442294516759910611768363281916003983760560301677418074079150908605688436239516530192887122732009142972031568474233041411422549803071158373883580809128476861800171644396394239779373330455844884292943125453162956050673041003740576254337472637171306921069676963301880686824070400467022202113023689169740646441414103446242519965989419290134700722091735203848259539425404599868241201403523592711327142402345967532110888809935858721512535878271721622791467501884286198158136431319278350419638593227073412868360444820090573338205028563098871387656003948865286218402756986108889116765414752155884934149286934565029346316430841786053048782160413579640397756260688395870189100706917130665274619719321507789919122499381595330220474743051383364950332069251604795745729116867773860604485371773824101772473805821496485720262862733727834818617333763464443470884242008200462749510102514433420391774958938541216549095096628979514305422458724562080273385594422738238317047394271756148033128738219420522192535667782418292927338965099611379766663019757550739395681844799367041979798539405632804468271937432915722499729006440772824926537574197975692174647957029513076911669520531951350449402073614524975578715144214128104027350915352749094193021670714084277430321074829936806929704502362622139610917509378937951505991813976875834120877350258736085500577894006720513870983945100360846890394277070640312211889249058512938321149064410707438604163347213073995207207640228009825819340237508647685186391606797408936473561259502055723423095818401374188313458168441824005023595604273005088570818569605253762900681788705596959596263946344834804554975082576966081874687187671903154080959291348897081926071715484582979855533123906034414103042679386674349023107764721943363152288892929017884866501655590532291797903544513560528173499315386513657250479830896109939476236716461656475099364146648908322072615854484202578868041791965746404246341851880413906192360914775653418146231758913651719851589472512823119050931646800329487216749734989802219559436913065773938208721318962399137259943558394712865439540252892042087462310085538461879799804621518078748545157962662865911996595345365275759590008231495777294243065398858226330162731281773022539976697391414034483866869489525882980057494316489373474417034035091984779912445104104027256678976977498605832124885392983473059032117177348603445559401957294180784695344084228761577122958270496198033879158596059438437936292882474462727639061910808032498107795908819167369624341263130808817310465760211887058170919217078852131201276449809406645716518083475193332701285274323274852697823170593484802180564029311753803972046401164831642319935975653271624669991784343789428997835089107866100798263082962314111611069760684349308647120716046711083353625914497515982733167826684509279021147412010276120199926981475839533233519462940659226345251431563238331703673502755482659964280299288148238552217276931418599536768513003668976387254228863914635190446817009093916729942600961479677464158144531997270761507466100521711744199048139055217721081737983462431563066318877453519847914782179384512980308109240624565098497936410415861105806985153614531154771193530690847816540943286239374173286449255274072545014734669097788274020379471433671506569227536323735283344250303804207309632107077108723667078848143843103272114808568954572124804043828420853150688344130858492348629552419930966189091244706290417809838252531281322639914003293216249789342406239519076632381067670847012516339809149821821042024290212732378412448128049771273875339830408117578786252342326837004701329145850925524321388622484081388678043472909113602936089612031421388700715974289406375932016941692117865908446507947034615415294425763122162418793725839407305718581977502609801847144557741336549974988575766475949121855457601708662015454903423497824877054141747153441152159602571720267546758265818406711736496482622569395585732249453976902633535373498359868770138416191713530809871673511864866707884364481417683178760556492794422511595740702129111112281454385203887000968312481954460432535441160827907701082500515233450322770773603831348121712532402758103580198532115118643964915255227555846475658089809533688330159530495489110521200064519372780293590399127145200941108197119778745276575352260071163560657040180890381009549480277212119024463551637148821690951928266677791662217960017026530384108106875982129024709282894303853900106139524216014993498773859428544823953350364185186656151388059310824716369279395207109370934327687947541158689641918435907292246274701051724080750881998660788443108703368679042467563604224887308878377430071521633322940360540644077328366167329513275412480548579687566380940773714795716370570573574236341045020372156032137944716867295326779998498505700120127103093439489305762760688480632700446351853270473160713705719600990480781561648125330394201748238169603434794613777568815006281322723075400522954934488566756094012453164031364576440507775023648477672648123856614110337848568943177003617001379868862421036249275108664255103368028483964655168474661497521046566703075301158425585437167170836099015392404052950190740137523073463508866691238071042021223029773709823225074838725226640028661296805700199892718076750641277274966048614823518769406757095503708463308469279720235852538412593802693792178514420609629510492077230284270172477576161380038595998962752273289924883474112099041732155276362975333414880530963626535132403788918132674189813182231219216071764194871875470038498866216898619021681804522406186041375140539548575190501294504873380336446032428744076721919033432427743949373986340363063963194918929949284372411162749162397523288078618854011886849088757763432430038571570644806650425311855063256236980024756282658236893495388655576389110211376976552123308216834117468120074325184684627953346462546490678793296928687711600471921411951024229348316543681521163053310975990480440800162852507900269064181451438519566159427667598886903976083188702576912774038622947211131266670918004790189120355054912657561835590470886220684147494888475552114393496209228618647965844770654116947624001656464849453191151387471927563134216939624650230509550144002830687938125067165430777019782194597359721311331552503216778306975965533683157353666841769181699949694429799858303397824017888785339496090879965059838167766742578112625239616732332562404106321483507264222044837090000353678520207794336694385085069294383057113009172610471886986606800971590494806461414049059490118771080629601353184656709935456960592046290808965790135949044958289082127560410556890792397895941092289379303500707876023001650681847872116091399626589626713230314416191677909784247645689656170584168786387259336122808880332881178279461446854594735453081018895556890729678384358356955826348302396805436551083998203591934684855174833949057438013661168935696573103875616338092322409298363530436486583241709252221879270261834338060731437230656837706139202184557970326947388556487351130698782873499460326906258178116047800633338315295887585260977072217466324073320748823477860302922586567367116942633773376261475236483686950674885226275961340763028804970066513612641041883750651929648419513023207067129917330113213281954368258722690570206949179086762651419163866604277275431788025742264186625073587427109464702248479008095017651974118814188490274823092032332848639845481827827093843937893451866148895190349660472300300087958857902952220171538635770794953944548847892771323577004887990782689179697725272732395652609744705901733272870058265473163905247541908721176093020491883743447117808389269557391733869870195779023494322049244098198629966397189066983531878649611124028280601021077031697590425743661061493147464073640501754224651420866659569214718535794775274700922636260294588982868175144462700546314477373015253932716159684918889279356870979303997413389904398283918867262778635322563058959111400431432167465779697510675155982334141961842303053019811365194849816241509871488701867561657258098767030343637666727216904447811358475524923558792823947239010061838769683492383571054081846219809429384869397321047976467654424098389647330741957244109721573882245742916501962735095300467424650037734814515706731338669686061511971234504981749440344555678509238914532924843681632601408529486232549152887086823530271338095121831704516555443332881811881770550314767361730485993652325154333626248001010466573374037242677820499798194663161812169203533080420402240506418958592113697317460343052498459866131232840893504154106216911020972136115984787730820493979648193697696521533371344175501089760133865313777427834204125378223631724275025007101970027556790720280209298599777292348999076713424155783949270469038879817384962705687498039659902271746628939834876672260599561810818202208614608824284767452294767667396440608716223632757751426206475385329167864864210944923519513668903665534693632092792377553215504491628631079112149775213317135333645983385025719715956605312690187710294645774721653427080620605518639798788283820613976740194635885478661948307366941317783533490825358880637823636243517488734898989510651272422897273594008942291472039292354690921475456143807026233856054212312032117055919105839547072867727566199256349143613354048448837100894852697186338600880560559354351479624954609087789421403340037218699508109334490691016059674415967610391894691433739004897205262217980666204825790449523381630661447033303601347310735929695708384750054716284080338378863539373272280546096445250581696174099165570614037842491862030684670007407141874514606345447549958544008962220564329283342475689847642464325395361917051784312095364814995493212161995638245017796914262902351346620075643329069400266342398056499688238685316445775237183169136733715083604807499559787836433436670803422087530088797840890852910660113773875301109646551876392611566298407306019396563826655406576236858428109433324851406991368640689294003290767451643102166877319033965521828268492747682418015236290469470205929511451767243905113064741010379134950926684771878902415869072086552221880369509230842869128872364859054513025292635983358852918441798209150774336695217908992876264590141373690241623192171635419779645185898268778823448267019858687366006581601464347719285620468673377329372933505820441732936624335112551987431011074122190343062032307757989205317640940052383883982071540414437832510650883255878758687591774638911174694942259876021191304406454455412217063634776670520504002262358407318947734008773515346824213868137159078603292737523195569998784616386408885705480476106956535735645471195254690608420134097248437572981259355863454006286519030796149099169365515841248969629606176366180704041595784509150888759283413727693578925607753063831990820487220338375056528043045757142072994517401684319516777377745996339782287093903715307120332271454334155898765679387699724537876113033978079286862295604093830143869654402499155490631273953918292522516281511316503819130291177016396326035141362543995312457479671579317504004185673047761618215234913396078228927961805410811145890738996048124801338255858026676359949249764286058543892272997060881617308325100838451452009678127631573577819328067186034489208314121725385041536411485892639742292649353541270844378909813990181927224426475588263635124943967828630183729668938825193110236156435914616737615709280782589868479143650188809433260526920867746296249070119156844755420764357371735637610335501921174164343304597314915778918910695655544541034649304365660885676085241595683827130107905223291860995260602586328148579107964828533096531005183109471638298780292268889205747798799637333480295078404509628714919597314183206534610765531005498038265427070087710839479307809826822877604719732208683207067674207347696140860944583097483885879652275779889220559841284748124243352216005157934762914948683042326227196573509047941018368145137714967458778079222392618441511833344997354464198854522708450508114443969582085628337283523950196100040963450261856850883804281045008239525812671267318623530628958357940886420513425957778835239508709397507034122150773747791583564758232332473593774300849831863000628632598481805885639383475167891887105699324099481799573056079817364890231725034713861111097427511954386715084784268800295217606334892362147371242560383579818961643641787755061440605619523125206506707545062773758572464116625291594501442926976052940338095692077903149451017815563032121880883671726700381027071439864729568875544982848956611884695339216639285462002548532060011946491149094302604360978047964456774624506668799908292069222409355530114905408999675295748240924683123979081237188452098819016008848175371157297406155082232616585959511170731800411335720158133527965117070002185778924862940067769258754509277055953219317423685480425362021021920864781410665625667867092251859221133721687548454654199086962538805388623900717654113179688728333517712583037657085812250751687383569560444404282373870378526985875474804801970564566200288851611982885247473842303522722340480292573982889538467224230069589255688110838994354026569748523143734550921902560127662975985759856009435003692436261033370035562692788439696691145821643605822033983735014874916192330057432125478351269587999443088725635462452671131790404775623570596486335862561209332030060698502968100762082190036277372631270118734708761621209343230695149800393375510677524681366898193435549730471934243813078094625841491202874047821961395649906517677402676634136862991918355834282583695141576088834079600203893176832818489525294727757030620069167655187567079247978924394456676165373299628528756923394897694462513186112559347230528404483012131501276742839112931519131491566627292245231452201882748119106093222538939654762947299300645024938146704060515912256400040148447888086154838028121857201734182545389111360422129392999509274664064375744599323514042687327178857253459228626285072949938632910256313937632309627440288947236526381622688325263326480280041657787335824126973120276949359817175664692090846517617399839957507707533462931053238370430969235979578006980109500281931622632348302603051044766978769446245914474928739111790547966154375148187583339209045362230314116148057994046803928458470110073251491478459393773093549954781962985778955269452396278568955190437410697158717399564090305884834972201198527219019481221232604624395975479218059647257430150092392245786523297097172433750854839430034888913447979607840568672166121560414525136319698747596437288305540198970833392546859365511194879749165127244741306771906364025397857326181997683537759608022738725848687802845001955339718362040919089030222212544365852701206600721530165462859819002844347222517332415397685706783879296736155425406118053515736729784395472821008404748708162509812590680904697435570371615624995756077874248446922346637985261880475726454119903662952845628488391018729443879233375187267706121143049116858966697552402220074157124554738100498856132543877865229452410257080707990103594416666927971385888855966244707899183740367516158520850778414115865243046453444207307813356754140004725135763027201690934277667087464920657203077887304355704480187774220889102052614832687103240751033147880439698301368258504796741169383410904022572735036390311979124389135556835599216862560468562205988140826676394032899764092741967652984128963809465624973299222663699749997039504143697708209352624324389457495450686338900785669217522038775881296529259177949127381331896230092121997786093081889343431944090636481825139720242773541469480037415962903623450330798042998744930298859358385355173821089477281085482308176541773463396490823818267515305048618732999426011244596191724840866311456334809209554084866233877125439491352437971984734341426959371852403368880808720023882761578062154157387356681349844262312905890765040769716848586575375465944447496732639903608509762865235434391040004205601424777247183347387912421934349155166404276099416199171281304805586361781407986247893256041201734193914649138425410726447714919381570199852301593074880060552281668261783536702129990412011984547343427088862631638434940828966459625553993264665713408413300555711977413023149170826784838783317420149475674241107542588838146173571130007118932953660062370154105886904657072676964159768492784511994366452213780417657282371054252130490861044589722940367747627330015784321105517452895810402062637473400184753874803513344218747024533057769867491497740207935836330091645276964249365379431815583016843527315315956303873703515508884999915121823188141692637406911044204211685045932045826563824408186298953130996334631412880277935805899780065714624700357531864852431553798687547882140287591900445141330452253087527012530161591800832247036705190207964976040489247302225070647468265711603987046955069539955826709198776059698758608775930384241770885874826974672234770853209405788705212978965525805535111736001264792758332461937704828378874031796741906035000635353704191927387966369053266803224606587177295011409639607871808116999893774073747132599262238943613185738033897957234270957090990567539334934404449620988521059066740148106717030326804459920573609655524829087341802407064778198081548883639842611771596145631413866537072466945173602596385823338317540881988337294064413342074078025078350427800199021784925468302628379339320197076605057492661955412881992715659920987435882316237809378489423642784086016451174673779893672279047271939383227496916321378850763472608309957493532451572506535433249957138036123168123308544353660517743316387700218922830448500328758176514363987889060352348797173876356506279940616743309162662672479552209658359656942712274230980339737916753459558327978524279852705417821614092445379955897374883787113683550979267983778833000390131877571635140910111198175076429123173957323737586785879518617243870295675347241613584523222157707663032287631132017764996548182768569838901924965297518340462596916508131529688226630684165495618972369176311441405512409987653331168654451828835388207644055903973305851598937277796809258045764340871014063186275696835693498321326104579059060848904182247252427900624556443277529502291880616251053331267936400411068064442581594195755610850543023738914567343920625737063830843253983142067179566309695525794687810091079748443634415461459265989894827152371490597914552750986113740212921852749809353084810149454922634336076999820326072047744004052309436981628412682802263403427127731644068441917384632410463650657055630304109917088427835799445228065777736795668500957844502830663983937429380865301242776423186121443437192287007552335652314472966606848988054068729059556285656563074905047443407863800795088398008178978361661693328533343655200362714988176015737900436413069269582078821237812178567120077507250296490403455246054650571671261806423877259006033668030955947471816666868352538607664389574640087178943642951484351428078377931722305423009486829217818111107750847759619993291124261422500982641143087358767811083819075802885212302662323037818980013092257029420357460377278154613325074306562051708926757140947651866465142598337122088282660559482149225334587387684069080029903644910593511342618718165887051868447486364017595757952018458713478070333418963309421376409774033493013504082676080249513336356079316036462064404755035555402327623915347564569955449636034836080745472104838186576799490081562012925133347393173583538906114128774094224069766627559375986649062531325450939497651613640099605772735074868350710099865188531833283429026054993448602738574998660759264713289153316773116964238244621584211427376864192526157505598424206438665343790982227009114158707243568921055511647197364682589730280222629977644071796790438346678173789555979177516498109764513255249040901777938271746566708880840505490607962115618228992735516808947930906513082339605700595540626724642091635941738897930465678923987698937742499745089798872421277152404457182779166299508833534341437105615852524607783531163019937439577099993977998710209386968700456265900235256416795498207942560325850776793447386735994804461487470849766963620367229035897924892119149588783781927938101121925930700907176542163124352854393655148531940361926690491830605154457347212634127605050606532580884669145797881457690626626600587441471699903157801289732058497859675903392788622983478905663790869875971746439264254867539196656307220587573000746873131686253150327978145218452030658916884073932251198441914869341295013538631924207810643649386212673757782299687612733442775607445193141617915723221110692619939342473962297915653189476562349831659907649586240887438046939465467508192666516435861167542863659402852131667967133997958364573286660637460264802570246877375020135873357769161425140456400389811692841594356657742589021872715050872795401503673183488965637880810982649635002376406138296275076724538744611606848194487201450232960709377521615765523354555713160983538164625035057464529008189896558371553544050705243892818444400177239805724284586803428351252138070897018305886737843494177909087163268152094891166078118979579889264437937001598071781123730276497170259179409173885667970068673853613591636045002757938397172100524755797267552803715225674036556564837594257994182040595385108650696601113828869950178005390453621402145553487768884378813194209669669316642402241659484682730978831174397905230434933241487836015895229522383146178215104057896946353920724817271269483676137802272504730811912277981080713207721604720942242154235011580320109579119980318705595283689368492554692278514086991811621866426402164804055852227209642966720886453725904588225143712435121019018089742885259114779354542349964716740334427652942649046672281439585396941144601919212500282849357521353325378322458621962185265289297231813134481637915063152374455169288950278474736476384390340746947489020203493113427867465589272328817610809127688390730223754798411727882247567651067833719397330256574726642955615519077017992054316289136393813257112894999299408690761548354434960735880837708757780678919980087290721414459465504670420494275530193637232363227617567604639062551681845695897518907970695809604474530315777692820642655254912354598591508584945518061196792450403974562301959297175380581682646258470729860603633549763748066853455181738931243889387323071398994637882297023972976796096092282563319486693617583182803622580691307303965898867474608222715677794033590208803158857035012551903831260300882037584549400775753563185388343334528173925744645442831543415576528081858944644907789615700745066983658535862006146571006062144918315337806537025784808391940902621305165999726997818090812020484880478528035928701587459148717468478677425913495096531032822472896249789294538098815626132831311001397691893565781655288218617255935378213171807876579147345863348684778586983016030387406002482027755647142107601353375691723691411566282881967135814804412394168338703837655990248555728964263297492192831112789387883491495712914078909130549842243445252750228488905112572676165801986891678588782567205939799260530562242882500342944577716838436632239343751508443307480017763486449177119458117359979481182583484520674203012077252624772583076958407528222168964602442098583287563137385551808938961027359579656004269181457985058489694952700535559666420808839655625482375924617851281992766214647662932291210204490322459490914719799867107244660784121303959666137259886213269239370950460708325583994146271798510385318836982917827225104447978853219682944450382932904411559689022720844864792287754101018505433357587353410102824665706901089964762148985897195563621201043083503945242085837736989158059521389219769184868266210023331355905816660944081062492134540267186532519310142360214418332364700489862280708976185139094281785927462303920638332089088233847834856641235102862878982831345207159840424042949404434302060429562587647546253960901106947867027806631313103795742493546862525837070219153094759046024584630393676013989386134464413755258110712241406615741964895495038850967923096576582448892188272641527969498190425045377014701901815856119566872718115003353811412176145205442687576286739909886252832481037523759545541974624306814208811763221566736134013282359978869488947139518616913215213267397966949379019039438401299677249957732184275102469242970772681001669454095775438086306738891417085304498553211571969582158679806569254978099366921249743617358303117111078964978386664381984843716906614621171958659269670099395576239791703303969668171942727413648305859091431441450436733507368930542867809351233531856686103070714304203749793866773237027172626870960389579757228395534230671250379119790278041820396272710277114204143060563098298925398673971130236416818363246633102102195403516518465698797692054683838372289560919511829223241971803752357715243240418817266676365711165027541716153243744998099896555353499755600388936376610910999168814159817845150098392156781427857889846698365310365919795386340064572677087864860497102021074180786215955448687607161971238970120626085400138267861407016501342797025798763874707905351358282345384335069785119950561594052224641813047780322131252682309164706219624698620345936058082901949524759704474083341568195951484151403508095569025629985341053081876380037855493017643896206772279337545464617988851470951027804704189183441944267211317810920961451099257242272587383805836800409024578521057077098118440335444705456253819389849549902115201586299175376114872440308655102902706910390092937863295453133141452244159007458391573544725585455273581865499621479664230694332323152475674532397053351545714361112147101136928143817250575137960452101602125208707858262825940327780083455406119303631340335908691711526771172621318817203214652601515925898237586932385718514058349527753234066963179608463944848999974123408915235265909595618831738183894095862381986605803341173531595327566577961666966354883217082539044124078467014337438912461607997149805653469196052847712949659452654245506764270150172295733011208027270114968177023998555370694176549577639006453101206092440746705446999006932995654773732006390934097576811756444511183419677747640314237758585597690468597836609699459632648218458091977931510410443650567661213558894803790445655475123649764861253686580299407272549187384926218767702541191734265944027291970091574619160808573251161551328311338232937282695172548363875336444311858999934879889669323070713093368292146435206076771933246184469371401364775369477337522483157782258939593899240796101296875056395371120443998053848001169374231971807239781770386584692040618323395629224044391941561144852312084157744073294401676391564961968692868527459319591409717924353121323570210099319154621072032756608115072966341364150205646087727348658402873453773441077794194781441507966625226945307182896074761903559140319886987853022127970608372604393893089257165446632219983001735251930818144354293907461094855076089319784689748595179381696642823366891082453303682630419863483595917962369315452076143257553773736961205531663526593226323344318233776378263610422986819745495346911252240892931337906440199856045490412604803388346884393209368246796288528832362921233199662951994988317146656526395168480648056018246322171629390278614131323278853543011473397108942691128949053882424977236184704814999284447426346908495424132315825364130591488707971161712702284518648423011417304044339101957995941455170351139474870944251517071889962480975072798141557651289920969706338948052974733695907299520172801074005909517846821459931786709654228243526802779293603540439368422261185532043436651604554126922215861690143247454035481232713451625281406319872573886334868846508944477191110723622461320908808143072034371674711099602491387191977897136046031796384134777154165877808224991964151870731627525757119007380737171377133841328758244906642703319185468830514830999463467448784860554582604488558958485888070164467911939260416513553364928846199546921120434607539229387500031052669945364559148977300201972282078699271922376897443844129568159417823950775449089134679378645654723549860110469120652979847407419043407723459556614296752507422819347834476153681126562108359169842072292984547395634013608780962518229884678207097554992465765129188028767007276616068619266085883212798552648835093148194677436408110733095657319901721919611872087946537594007068993457850261722002767367467372972873979531049664748061317619345376932996586824050751258577244987959897521540368800763960110199851044655516117830066324563711236628527120593249662354894904639096001146203613706977225551061296327991174475432045684229373802797821082770078610351418027192327026028954456333806190243852860788321585387774738985559509215945346679391719174436837874888334404370282464888041628783596875490020625013020974057398640534918374611791863663123620489146870294146920921020042984274300435646023305550136939227761352676013570847552135536102563496724957255409963720547844302035302629660660678301873018957282704557344583123863312335615858294115243344723658825747340997442168077433238649268823518989294677318210852462801920310254215467170268649198853488689533671738417240713751462175992912693500032621938704866292348578740814793404712263020048750834744207003692837457899558624738572009210606637918973459132846850465237252334390398196378937507119396724785671670364569107087152952288459210884586159630626224632913082600113504504199074676910801769801077535545989171819474277079724384085429635118731889516915076447310424329725066422081109328733113973576352771232540479488291210738330255606048942414032495712506963198187651749555637238875056152897310514185523630088137638400398487095646740611727946997571375326604157659226966505471514896303294083244554318837975341661136262542188011193375654160374789791550124253243194176110127830907791533819106163233085638803125837714555767993265352026525523569937766167104806047020382111650824854544596456143518759032264927229772389476696294471994890534534512758567600809660532720564373022329836233711971811198034201873984817624707072853960073933243063376241148176860597562477112042780715388238362498540575293843739958218129842488130655987861671198230356581808804769665606964951434124065891811418462959205209680299964283149935632996923002457553328149798752007574466842944887933882766468060004537739214899110148818674775360824292464379047204921537168491946944837373805181149540930202591342844196723789429781594164983725428598539586882950570653610509393884247080022818960171111637580097378299976988120659266634320636009804717216412007873858877771169045970987993989047144980086694134468600586680188227272494769318081209907073670940149358652050138682839524694311993166013142225839576361378219335985956602043821313701959045945353515563148007015499800317470627420265798476852699805254868294988273751024235733612165433158985831938521314846688366823233014748979472038828567524980008428466878805731580812660822309821350496076284431532666188018176981676397817136122573274379806653687304295010670673500311131973772747303068087749130376756745559864701146664254940379460488690063275172543594737161417554935825875676161138507045273539065005360113556601959992413132946469957413380057332641041517165530270361984400852416744211307188203567012859767462799689021235224777985430314482659009560937420448404598505651835418865987056113257957346495902967943565626556752378326159557900165231162336038809914027225922635854552800425088909167436601646359722713318934828896263645208908088323106766422658381368457492217439344877134019705244071129608942152611425785235981801851381315965623876474224428951536414549426216260665988704931298467112577721772990932636346583767787169967375596575337359430199906367302346307448926448309010691952623630710083664093689983597984605754041333647378754078283624584230813048344877499245975690018961538387006089107241187307118410828047755830139047781012559063633179660324264813785768303385873310712058503385836515136495584451549291878418464587563656312814768611707905746570907844977178115621526708512307034496666296441918421342174129964309156148534254398543839663689221727885597042685973382302457287616115478486548814964487315676424131325367196458745369539559388031982699681038808603182213956831584267311460555692673675110581843466397574594508169528671317606549467129175255017713918585281430231501277246351379270340573871793549739380277970384208301954676722742402316912559001065120505612337930563942994042448516251285293452538871361997323427724328634372094375380563674275764024978094347374419170712600013249248665417296431066854190121863758728055019797504459566673513539658136685429440731210329714656509419442504168403444790494871039195587237078513786535466694037790723692630928003333514967256933584032629756447472594779248205658263188657306952422575551383239473852888872145921976443176356484786949315265766023527040281994322808207191826166711043246817334733231728928594617695738629619140050070012820299278305589280254356154557326886639475199367539574836488267768847164310410801193359509889877231380766653988550478076068502793219690247729539668547976759613258085149617541277530911469251395354649489637852311878278142802770612950902974446878642567275211532664739402655041595080991087594187759627575139559008828959663527056389116691211433741986032385904255640559545078357553234766906253337657262490934541561937712892111881898463976537825616631297909970932938018935079174153277371891915170616078732787481970874878384244623602508902052948767740695174901861069824706793347312160349905291670778601545030372924817631695439411350125385806752118832707621102392045523818204638256703403661325921407858772077771448929453917309168505449054332569939630912530233201698152203903456022234701434194723314027970777478556354802736980407056844526535111874620737045757954853013264421704572200295475456201019672590404706856208097772016770609100551459509165795516421510518591781201447662312704817166741058978064302484333373918776959573181599041801317512126921595454758421581822802118262996767650643307615667880549026760532398526960572669053869956441385919794396205486100348930057716530889984174302954270349084076460573071636821480992796891741841875209787735666075921950799940008799486370381869800827664432255200689841539464888554100077788507526559284951009908127851647384589915091468505625199420034296819330235942781165573033969771247610557418528885948283704092620966405352307138768448118739024362302243186157128419306762882672256332426514060679373376855276475254456861805379196979269406917086106569501295275408882071291589900590451955654319472891765930748855983069068340334686687260094370077108332829315143618694316427340489368102924731806837235910675284822043236026766768597091489096422851869517257383764578648801158930525726096077743975336398063370142393626553257796453652180862473447382580041652473965329906498139468441826854500198746479453865165165656199190783937835522191712577844221498998056244063229328665834574354999188324903885885371371210482439174957664852294959390371138496363624606983078917271603112292267997642524319427287772677505232718570944297697603750515950855191351107312791204573526300827261507668988282894099566357101986161030955998013517906801450844869229170359709884896263398686085480717441147181227737082382113829647678269182394934421700424571119925140538347365252885697505654033786915969785917111858796955330467457143225589897807871830171021365121079914376240504721150641625571097142008901545592957704876672422781115300792978612853791104982272185607839610091780863659463761347067346545442530239339044227864937363648328697485263859367707513229271220345961839195420873570033584232514777665935794928900786308309366707104039766634265122376187592924100664365275458253013270296441513026204752146298406640407753864949649539713627118760714974595681144440690840012162938354240932000464140590769041130744147127563790510573514141502310450357571899539506203031305911761081165456952065463887028236873138532020934843047354860851732462552436949621347202650827949221458862357263626046488535649681609775207907934810356230985974484759401486709712541418299059602089263126539728970356565119236007638377136876326773374915685570933600784718659171932508377490193406242160884838638891036802618092232857930188804144628054402415731294206021061710941339753361579255963485441457858756778279304684847052815582127157795201341667681397395173456165495929861213330493262648661703441875183245167637214676234899568372719947517860680608472070736937537676981995671193140921381745957895808999064637293778922519101269622674759248878258192652814831246589929733327915773506489690681382224408059428498385689192209062973252602046044899440143704213436640392777074246322255665519005917485995945192114923384375238110862628794527765475742502467785273726368361941066039278180895926793337652355515146414222065222120986224346293740700824887475240519698581225492888932203864143331250850789805334751805144318280799898177784106401863183130592763791138152797681074496587763750066444125198781334677627345320495672665395150882910273904268651383518721765971860656986332829778964032710772767735577399125672506510226166551841267137304595556766693169406136557957707073721185045785815507821075162904812158145055159628382221625902695701719646245953765975078810899249613110568580988089956007996768389933596883677976708307489716889695530707715136058156489081252875695278983085828199464334608333893527268719327097655856953217138879382882193361624195980007868014517710315570844537443730137268564404247078290495049755905280158841899086043673391775613374288042045989404371938413788445774907707626822397944719359532420547645366844179815324708332720633436230898406631231254010623961136312965726909233355876869033214482056154928966045597682168246553864320342336672556511303957680379136429544700357430532031575838871169497849193598538831297931319411371386649265925268085548007379676978340675472521750462251407135734715426078327369261906525097533906474659514294339240163492939862890306346788237574307093127839150811494279627640760473127134167047038061383514688713334856076393614936882247940945791421893644675043000925910018891178242288771554272984479926775836601407361198852295756693460639631878365297691772598982019287294815754107060044185374475438017719762663475150863680151664621841762112120910004656224504695938724537830887742328893774367915112539228132486021322988876646450884226925995410790572024149593406539650871640213997577327718469254031046851223084491941728732504280553230646137134511416053356758165641976548856570522155546871726717972132080551796612350131271889897826633045877570506697438258271275102259516714812093459515882456750720656970831222250535266639838991015002981916211420536983967862794353197111751744232299302913782734876197732296208585717133210321584190031437603728486901759317978420701079701494917057818376819332778847671655726686893181493936697087430885015700170683455599773535919782298336419820770244850342741078602140943419785423760134941569589347422309671271560211153373165994206497655780625516524303410165269553599322369527064007055949901705516297673559506589517499968560909971242420059037072803488029756769703795716962344205751413377268508285153417735364052142350854789684707585777686159052446099737270245336056890981731764259380002450238992116705070558005722059973553515133914431985581471095819693592411569119874193766785587509890525254580918443608620242980117580203637901934285530725484778962823857116243084429704282829858402217043134265326402169945752694995126905189036251087844505595495386004090826009606670928889572449820412409718904126194839708584712459125394321703096516928929765800826411031492803600916634123555356589843384611938886355045657099788394034903093140665469165579644385695732302328450282622125304681719592526675402015801768070940877531668494329254475854455235723420517284686405062215355087102965280127550746907899750650902106147048124658140879201070436926036523935474795040944296856987166295248031460219179592313022152717193221404909298143721248344452487816687796876867195197027421571070093149840751017502002893644338521658191299879825832197022334337321464854266496081784693271081316903846352920346078687562126325958837803900686829131701907214868301951848654334164056458008628323018444136323647162739951905016224689470885042375506710295959401631658575321453551708054166819167451470598414057277282399180700388066584811743823682144462330891920249343856495471222581452018925138207339303752111587807066831103630189172714377339354809670730255140257458308629950350776806193819342855764265879579886832832887467204670922339722825870353252814906815750272883400115989255377730727530778809926081912291152591145461207405457646401418344897024117840767532882024088446716397965380414316288674221859263871989911161339430227866646037812040485835416104841048574865618619419703167180834323116480383541490287417268139146048981466460870787147465703945279566561566107528630342496864091970608280689989802360946561913646225849599731021354887481390092417199689958254146570356192371467352871701493140533596983031784164973570383156291300884532837848872990214116948288250130885537854476673901566593275063832808830402552008142841019974223952089645548791893018924873181006905907090296033137205329018718353082263513650692334620135931475372740192169036112123983885145812937261869303782326782082710296595329843478423488939328021151549827936749984291960421610344323215492535178331550069855317799873830867847608615506642259403479157624885800036626731902512276407693868006107243761303800614389034096048038050592522349470108412229166608185412260735829312965425756819408709100310089875074361229390014330325599466629371595422023714940130103933585555372093682501899863045820112523528739040191717025608575921791934805471980902328522451244154815033652182050804010477604906717327114298914849040525889467143723792226555278465020587286684498085787420646210650142436067167574377429113051943109060587447535429309708786637274559032553250786613074604862270626531867789950131829845285093508747723459115756885832941636015168018681190734240006200299734744828292224822593346766953726144285436624033098442115125438138436671502850012275273297875794828572933456073157478556525878599277280754045041443180295568515499748651295922321697565710581844394969865059694502010370102429089439245810921540918269019790025072002451715926364145608659584545615846805984426486625114147401647430461103657253867044992830307361549369118101292811176074678815698386281507386865348550446555114215203647158778497767211834669561588445252125490990869827175966692164365826396592499212194092027818651948699175179885887723836117837106403244946374810695046705660426294176280182592237812405382141081120973137035243954361622909663676785072000647632251429811476500560276942918626768597752836472072978855735802561744504875774319271815582852800078588822269768880934374611826332432745758948573135091085709221096635923694008637678920238928862287210926175238064512106019980571472412404416953486598059919634816957316712737292407336068977475952246963967744040344001228773269554467006754086322405779054336365739911689072771851589245059197090501292250924494782637448129864943721062470028934917794270351261088334278435256912624859379048876710750275697355084191952067249539521748876659008129217276191847981525644321451977935601336628339116776836878532972405838930177638579456341199452085079339880110134463722964237690810888334761635683500827623862061660165127548054225434420798993221784470932572857690321018681306854204596906424289248293916706148346109168284113348581587336306851332222175699992617112995699831187165898815347640140049817707492190536358260823518286958075762206296016091002552004677525882413996705376359941012568544902050754355868848309204655332935438698631604171888437904922817986016565390887659414462209182815517945248823003501089506887575458036211988664621082211489455903425200501395269928287577288519002999478265839313819335894328085278299363499779843954483121129515162332233085421751148574898758476610224100737619717410957638659736638894236332231183392062538078513712438964465108215804891816636537328276945478110070314779447022171710215107639351170549553442660050449894356175946678848272441473578260322306739563237910929061443030043522094290024367074100884226243635930091693905188062868088053931582362406388969973727634870131232894631561692697598259373634715178880358052746707706731573046349815972858723789761837012259802202794001485412640854179927233108837320275027310134063982433804822709317265375970900861451707094969658386030146460063273386853523022222198832274946024393809703665236274762244778816062471457113401469362878853708814282665620611765219515642008800347315607105452559788477952590590587866052001920217968286635760341497637703390202337882229272078630449059039581009384696689276279813795081910654780310466890325992529762658401653116735533976178920385307487009662774774625539548577580135548105981642827613388292119607031909281270038687263352204582749695302738020509680976463878651653710667571509945633623106780698838339978151113125434630635867353597566673940474669007280854765658852191640879703830159186358194988383782608217458376482830965027399714568285838508566380440701482229286275681489083383747796717660374831321895110156176879828063074528319421936499985810946518382343154157934773612117560338262697177913380885270383862404855222111009816044561809203245508135633734125465105837319147325463087281482295118170455588488536294905444374274910046754572781508413141972502672944942522091181660041087178887926986369490807418258898111888609917822349016525674974230318226968316820033986837577050103911964973217389723989477475989514245828091426728907943551620931330493903703424461945349075925154985203871111868904913307406529414017885468931017717897830811735697059418769603035874752401744733241949129279305470367385972010948026750955183445572921544573907158415584376463862787593755255368552331817740818733105262959741169566861819758295132123527584484801345887101260257063709292886344373186368906385131081765067757945271172755230499285592695065330863868593300294221657592691084738629942798896945416357329640508387072431147086263283788156714843386459539036249375547361626252909489954137935370319496379544368796807966159875104154553414926530034112065342331158104992608816664072040528535408509132709068871136440291797931238813918540542975696470427770083922414485910443126041943198593832549654230704214014641521926602166450720839136335011818036336472742399917258476265283046714588889741189255706790498056395718510753955912594794131376396551306656349115210784397573803683760734167414478547431096485582502376973733420011318996170904757561280727470959410177310211871571418074798433214312663864792800685153060334497241518524367635085404143519926530008317021513214984621071596517082426840991639594253701599978184574430738544941249515011245520630546640756475134604232149986635950440671036752576299147386414972424688998881431410865857713587410826314326958186202244376253717690655710374943307517627198651121433650049309035765202766395056835493682316095104447633782757017898226211537061257642320193344238199214268363276686240379508398270337065977710435350452761210539470382199767478626446779939422387956519104527273291859997799615897925525008564616538350164386532568345029942799823237027938838727470689717726078220090451084656790189246303191485289702766679553541517510515433824746729160858169227753099210687493718565800320928752618698578425264924042460164084469797509382846356119237802907387847599924809567573388600565773315985241465595583631603183312282315018068892051561023903880072224454243281054082987548583156104423556092057838329292985328200781576095138025306912290916900312749920192844803485610282187386937972193235211573764176593153735529596070799327171377986980298650863245606006885323631055872152117596640813555604721062831476920074895774900174809594585059333923670067495481633172213823206659613589787593948085662304186930059414789905052592746935988729085432965202060991747052780277370266519277143929388419839327690565380174097808117813976478475437093154276372121657702222269694480907978777284512751876120474286570725342661585692034812831997148445357825908406808571509797934353554676210616731407984463360396783697057064877164965004331314473146460700757126203224668605582246167255780341646412868072245211816029800259397388059955967609943339259016707547215235793012572639471877137620249776201261141227799913875457057127213361670130185949679055161412880432808587522303499094765326629490921509244746921907364586295593900224528631971383236877773246006621152987101586392308119077038712456115240065931559417077350005949217972324250274136134650372804769107436874534821648159240597916788633544978242306507980231177108962169166135746692410291045084227236752129613383789124755004770729568363527160736241267295197037860637159325787422000995623968050425491450785909496274427636042902364076997054989221317826201096770210438651159489400905529323452209483818025202590644662392546430598550753342677193800658863797510542202048762821546095357552881271514066446858549918018366095020039845120743509086790331693064707684915893324624873524980918402556909134597478678361940138595248817024526380678635243658519154060071631661971780948011009052158198322939788553044267653142689429910391428630767998156665671429010968647402777160199703993981584259440214026743535961521065338788173815554379193136090154188119880848126916978124282647799487860613887248681074032613163040826819619149974742087876853739187815422445031314104623316675416803083180730370057493389056894616807943221147768942243226752253683623106779549831270720678352061107821033579398049565974659106721283594572799526644244344384220043451384915616026405048793178133106735896354747696397587220822397899343140713280026611607216615733899296558408812635800071027513350292541688666749255907919698340041806715863131568658988791217067445809110085008216882417937595615362157249150638346782320812731801962702704532071727319892169880181694720350794287353696879324580115827305473914136414167154381866641515460762478532921830094202103758436043826507740317535987644035649897103196043663896982502312296776020142437902318932470270112261957269705315410557814243273747754505479426438326403855812501064715799072617834634498934594422506080831627697143489411454108053206198580955989132352604248641280445840978218405506091219558155262398325615218757637726771821889867542401740931182137384161134469569119416957461956715039495888521837507277258600174805489135842462900747977866146120993636081038845277902733507768204185337606465103190113517862486264638423426305299489035458116577635997648022831132582973016654830987434538684236784172530917238852943487908350631622582743310399571172291532545648499813240509073115441428611179506045505258762702233559705757131016907107511102117228984350276423136011439942618747334887444858771080391406827915227849917218255404903583162199749588223933154347843128841402404926615465830676933784907353131184940908581949167920264903575679229057441987860544257954864978961842311320049334907483590431764342784597305283283712016290002194703059550812769852895603141218044508051249775155413331707361161099259276549689094834032585873151317505078694381511353607735904775747684398844152844440109064918894133318882151733767969100813346653999516014515324931940375749050058154335416176886414429290226534324868597027747809919573297053516570527077377483550342150415785937012266279622254498745902510148155070523675658730332813327508035733589437610754005986492591506828053637932082602925695140464524390135801957645614265192948146678586015966020648798130933700897913217401595793333514237265338536976087522367681769986392267082112701073502401780381685006422477589890706101675181770472144165122042102345137700427386649141662175417490918074670820975892877478902446383881638910286773644321750539362232047842983237124586053833906468312696441888428656815216328051097010511173609342113686363466099058245192203886522079897554059559473753303779399224118295949964926881926940661253260535095498671125821060470440290177169318806815867224532001572927819914368759349806641637744145086551811677227471747505622597027785653909212248237779087232335999890239837388978133238191494753817235244971460415973193756672657225260290914473684980588390995973202695422261112475434179984700975050027078970909410860604090797470935199519956344211202652832779890511653065396135160796160891890561503460230110544987695704336893082200598563483986833215537079141320812691427574791014368447146124902160503145593449234201335480834574520269337062144496035183291908267317864669716047927276353907409721702340953860857119184856951144656486441259768074880592319738506049369270135724054560600387667812371871836651133935460583237987079311941432012753737546648455548880114940109317814936783938237651691557090208744716395844207133423288184854915897442015915647131082886234657359647154038503863757179853499869317937945112170770468129735370544976558876854135788065875729444145865401675593787011419283586172125438436039022671677144238731839923990365771453272115383742229862746295574712927043809184612304644936093218414404596492130821391357754187638578388338501307303012712206325065831581976621916852025388203588536147239230870920748531116711625236501236259038068308776996525810169701926356601813032117503939726456696342813243164776293973223567002667251300482136159785721738534392898099096110613868601041043746305603434552078534933083601412703818197507728224167146799547493454878054436083696580417786954500560112022076422297494386327419797466052277956430404070331864571847009433783663168705075895934835292487852871371200888830269317605213049668040848367848327494089395252812972584159016245933423034771040521162910451922389535426092270719485699761422508686814007510055385718409439402087873018759457322651869433160639924584518716239108221622750095855946331529219009674984966230361921686761248449964252683067144991839547733052834474242519523580854555040191059947073820944408273235793069103940878373584727569811990938005167643548932067749710982164814702362688811291964269651602196264792336777435888335155054747123043167202659362131241062531663049844067913930132037542506309909934498835223429627621637157401010213769064342879897661922772345561821681130577045820148980735014343051055705741028278590375667842842050608009033960938437388925327490365835608962923586995993168351618604149039412964647919383675992064685700769431263914577681767884496245857934488682078147902950529540107591606023995124995804461833845444637073495706729313421102168895988133085556824163386905661208400385924574789053827731041357598269533585782362816009337512163529768247390571076668266099770028284695975125082436565479772579671782417812835392349839133733825428273231567277361592362814925138652515524686993808507675026610102120226438795440470503199138389043192583101382898610640961385255063856028592537994249291578149870833827030618106107642728840513752024407182524469336924063680819249981897274501579672356117373028730082054371331933401093576881555664522385314782353080525835176170330399828757948755515158600151343974690874340025839585133266249942326635462888881255545415160672751286452645602056933381333937801087353858578632536366823938961691385103878322483435225394788998299536713170184670034977420707138245922964605763433247039550731370087685015859678283602527070087818095990884570751156797439096838132625958836957697830324232637042032314883064472919106335476750828184574929302197586547067663047107301735144257518590095858182283653370043095781530402260073463898312057422377836475037411575028145678820725358759329509960610786713371184422445531785411884208585620021744430828835081181899545827883248563461636525544595003174491285856781620101810181980594714191760891935320203490985934750699895662226306549491356377726055903636424441480723641335078544302434816390896214419075930904498034371719952038773692943559658913266710497596853168681978277458825815883542351570999406323167386009043768982263109101023470237283654533199955121409445621415747107345173635473772408651026496235491406646569156080137699176000421988812745253614027699934500266910909726466675590745031206347135708352420574035979400986496986280002484649622844325422210211486597883820477089893000317754999241455687944164227551960776714195750901417172767058311808936213151543998880926915227227955044866042380621612960511984338435468949833153126869975697751444384717892611281260873302619206949295800149034672569690520367570460951105847230420186650507319754092903873328864123812632023116177180652448017452775401162794602342994257388177781538794280186430635318713254942775779305107921050872361123409772897001813829087813488161941675776100866200607972629734999186873832227823210653651399288205560408210776414899051282520661111451073183998779662136603781385549536081331228256564313767467372526270620929120367856460644914316072697302925785462408806169721143080483315199740604231923731289974398173661916302662625817515751389977530863406606772579477743311270567109547687179689834416276152064213853654089531217253240137023516345792454019260041868581178934654262727791979175066871248738706676293815056861158672080379826420735435870525294781787429616939316728971767503347701687698192145470951813330851234752816652319296328764048971950368035361401067136313022375680484168115430574326199619681027725778124738069686943166290110559104407861075761423628708568315343131225127629644273317131002015347517196569112332894060067412174732327734221431455065559968268085092342566938174894406871193735101978258591019840774784886033059364274049702984505658662577784071658222766662340256710172289056394117263766597540532643007838650922734945915883003838309916108132492138250543133157013373253340501129035796284280556944356842665953015819389237975693025726724615407487793146320609880386618710877067825497014032101795260365170259273140634839425777771831356354614471231704945128455755802545402665540538056235469217708992465152550504033726607676795640697630422932525727031960638883581730208009433558713507625931586807713201207521511627595844181522241257187338452232733473699614765877350526778259069128342790507665407234080434783229447458082654501085746951248912594111653492345799305285721867069008246479723718256162443615087802124064112072738574053520120256686950998875633880040219020291703861456021991857862384282272456849416806064990653288148105189490637089033207326176125009756674305559940261019317863320874141621142872942412645594783134217282755114889478625216131775613872802221792517587842342528851093632721468776817038133323750618521238838550609864431228729467138574553118065262944794797909934565767229557964933604102641277482210602520951037646205820239268540006757922971352054396533572119612046502725895570907186167065335733058862932683909093593794374517570183033554301625669992714584025062273297605438750531573011877662478684675065623570436595137415091276247496428211794529702732046849059083717158151149196327562022078854050165825417609599661723169426635463597734707765214955401706371955067778481771462073635304972124107304808233271159399171511367629488478807286125335615193805736255107256878384349095107242636163229486809069392190547771852090993526243411317247411977140410407539125135116723602633521070733223039357102592109006936692860588258821993141353068978838397767615587943706703694921334152646758364839926712522322589830695370715528956007418497374667378263148189145979237426238325543815260647811192590637981327600502185592345956147605073674008846325213163747440848870551943670022539908597517170202805926157456534616788842790169874983183920657559332180564919097964302385259772118491289171877161868178923418376437446147734057391085686380092984636360749018170970640161032546057572721425984748580182385930489295848412534946218085674012841868876703922555007462580679031483991231462997009155988515951737947878178340493635642957730623938874587955851962583444770366622413313715090217953276408363961454900303030612259035771413886047964848257399198594312029465162340361599983956036641817757684388938861946618063295079068361150633567241819471165731015029905206252907887894606001777879603983149864254496555828515280899518098444575588261403417164967987441818019431277718601448832240781537917387980083824646965838529838635031296895139703015373843937367054154925089770666786356332070209947497313676110403712648896605061495280359794183785771883398581046918966605435528487084814420628109166855577729605206096394504140506119452769801709687748739452262989122052627072835439137091371056893125221233789932962995643262969103681139748920779178720551649196685630410377929544652888228307640994941176588082641988153892869603682459705187915519796039416393997724939258276909081851763675265437254277100692626578823846937080158143045030749054700662462498013847767978625809309464751271755892742121343341019380723325649224897878726148299207044883655726380887646092028571406532262939054367695636777606994573747665573471970134643310966783926749508585790634965914412849847795846396494136016456018661890227227627670857661431007890720887728805908046671330273849032325719635747123413163495326272100345329664197889458304351238762573675948345149711737858847321395153781676953830034704017176115887454447919893050853891136933220819645354720476563577912887877836109944216343739455158833406736183332541360514388072073782612832141203775896021228211328427077596314848657773164433659530399967154641704737846844674084311463665055849507309141373595497072844033342073402149522759501882105166796546558426120791372454381646507686129747897884420291898437963901803208862973290886688408294643415509548043591522506879332032164800911619337059786299588974643550255230939714265489496838348992510705047529319853677305743097874511223480907001022916438783313116593733522479385073396010233967182113334753816382851865767889534152771238037545017662404281184766488946690888446321131236283459157291205310153412390380800255450448021991129717430822944279962151433739196314847120929540695897746114687326477339112254322950171824686479615650647482317515932293422722778385764270591896860208301360262987702548171214394039638901811787138737822952734899280547285607245350803893611878427338694243356031981690658228754213772850808888455199356201567551303391838187815498314281639981770340374517069633134200228010889459765652909392093533747638261166159958298322573683797746481720704674978306565538338211751841268977460834770181879666094993152216998698529806799272810177119441150893252102035665272594852185228459997913285902140316257981472446113624956276443942473578782739911247025302377854648596740375153879606397856569871911286683274264618689356906614325803456729904145760364719642987129835678207698869185777240699270854665369635473991688250467449229720949500230163405887111362325850759465260614954626282049932657643524112065015754874604255508228024419042886380837154635792477796042526836517456042024148744983256290201369593345079225676296068481354773755674400158764824032877898538971046988139016587996270819162118511679507727195143774070740936790108860260638882270624179569563851726548837405028723690007082496272049310999192908389946047961625390264477573502558609938538994120949503880694722747087638559296760088437644298664026884134866473377977432591302350934313950295971030809458741970920217378181208249630956033751194565815308327237864173387777630242361987861080130554469858945503931256829451598253091080031678511169892223086531671104280416862971933263688732828591024120676375249999794514369844213880441281757181037948432135831912435919223207213833203156594082456491994470077404418368041182312830356027608547184170195606207641054847709220487773945009920572413018790514339056948167281515633667457008248777770278784934469599222875602872717972793888390651555366664566599152930530360209313275377123558207235302563852124578254429444678741285206578432755345422402448973056569357638753876260847770530715716997708762155734212977417821965256818069161151554793547272053435314291621653143211411188162975285342089688037446032560728473637919444407143863484646507668432518827962161584683254843764881242873794157759728086057041875108427085885191705032994852036675097766910480245735694624525470846513566009486039285735124669879957790147764654999899866642793640383412981899319987968282760577208004944950656617910214012622990180279099116831669075421078607235064616513044131680767195019133393739737860653816653748903684336980013439863296274011896406484558465136390761436430585717652657552568117641328452628114166303617653805127630888103575054044964521077657683728680266343269302610906953037272646837001251901513025458878159145548296484151635757705547267811460387356978102901216016339233786564063707803326864108549046763735889694429892974151623572658006235455255010158162075151761898855583507920901386325204326307665391405848870984608540391795760775939947500743727431353677241585846696927103247231009544288372310221830579665697536715867030740987743005798324936447197126838647790618438415150183909699860506471689429454223891908970447570169243211425153730509812816050625160676557987668476864129895117653261778274044121133295192053796850812403029292093336996950845067322850480650145993639865283048728664588042706512413444865068450846114769382352733765008099002090507068679554278338654528747862022039119530430224291365603283044864183222790681006659592595391870386974846919000522869794283010573295912064658806279443681791291343505550971627180509887221717879728797118508296811939994687415729258432116078754744620427377845831163726168432539225994399847430491385434941780861712021062620011198647938144122762875062818987673461591852317106444361857257246416633767490119477833056755462532593179810633174561788123170817455790296176484448357995420132575375405629771960242126058716371738737813084521169939909756946328194111024138063562383813079034473159872301579645027994725351977205204368167904045891250528461574582768603940750700819390858635007856101470323065497064358650456313948354943048199024731907380834239420639806402104255173207903354369628704097726203104676791763123827894296383557186914973975598366749294628468407070644299598230179404667663141444492351196407392856538380973352135638445357090473024924816499631946760825612006225749103061574934097126032876802309890016041534857471944587997595502106263014217007738011161950837309305338260035178451034507704620414550938529449632468368433028421721005791873335522038093160379412037683515171555149081172692614481436679995507800000177994373280921974191991874306677725290894344235014485606140120857812777356250529798092487866433923190128526232444102947778237515969118182556739734567760750444677852463867169515081124801820764932643770654481631784949126531678191578271939894801416723106981719476589531072004762003615119360500061533299500625940339036212129167092672447756934736425006854866921660813490544243621175364447667812014184238243609792141308863242190995043482027116609560917516220691303038732985956277401024393935349003219855805745917071169456571423281744678974772465689878384418589802283925437063648968545697877888256522188380336534949910965953567830888918892960368300067287378634914976292620900902165322983488910032122505324399810007936338583219998102485571794175890946149881715325539927399056695532573863425704917268923446934499025185561322900672373884572299217910367505655974363198146876264416418491593766316977910430799443955481069243248818680746693648765597355588745677681265998677177720648915300446449724683008571605547848238887430090956864848308710606431163808153728751828136818832046688632668351756942973562752178371067305307654114853689395382360816141846354461954755626549615269307012111926008085667382960861257372003044734117226445272222280190715704476897673952201214442243759170050793357056700120463369643366968202532312591816984990565098978222329282126225125484306973263542102730528046257184821052748516203833556174307620762352786082969319004029879244254680382277456276340658840350752541105527946588322873575789359875965316572046690870921152611821613708500991696471024781183752065160188695588380939511769439903998474053014875561900066616314855370856363696106006303954403980403188576207335762083873858386384531102371041107105460357277802859262049010196895059831576288886864139712094559242525234838773791187959061344794966695788346549566492358578353168365302624882923044193461483829516418641979290444702139014922185315023658368941504196762750602998803388171353673950983037302058102162349303812936307714890597518352032029372063097998853284698357574999457898194404392694195347325992950052670592108302666454167996995314307467861970037619281823779303446755243132677850504226600561485671219956779868170077522591800674959611104280714673598083848476453633970479162650656292939889352631135222645934603890436814205975014478951844358358554489214766449877891170949210898870276796642557011090472928892693248875620215653172484929954317080225515383328969890954353615966707838220035095451855387766551183342925979583614355617342758786531651375687345472593307327619286000716471800458414897414448372071835312571290090420309493969599339514155233892125462008397223765863794821197866945602555359136120301636437943560204316892060029345794843734039299249364316171425418541938861948213386504611506238498035332570096703180425136991968516530467953155445744830772924210920718616361065573676327099441469415305987297967351452953375403377175422876070258443261990555633616084836538234138660129305244868464413147840366106378660145454957098268326959857896233077014850167040646208513063113425474068348234141678484947837253102836177485246391012859135392025476730878124960252886939727674818989163478893691773030530994106307798470218153755912299323637142867727951654098923669883357789701942800314809012197127705687678344779817116214319413143524061160423527446558495076261156216443751823095948827914871488849428850810566013136086162979835040975270917470228513048389911952326038372695193275388054130582233406531441711808914374196176008845318540775860143321168965643708818899814114130537763543675780364208417380023078232500644711361529551847210174830135527779342779576729236564976942969277278231257083867568350132323966284962244881618253106165404429384309112059571714639713805725231265842266437715312035263307153646237722221711829237104548223347136640209220927935295154014467056515443313151917040618285945316878960793202840593734832939702815862998229330487657522717390431139597662192529851508428078253068101823153671542007182175190399624454770273358536942580091313068789548477102283325242326404225238010452830139955347211469093437152633074715141801789807871186642916497623892492512541421628624178271744541733255178791950513299611371915778747774885954744964213816943342378497759563161401958631689570211033343931357525250238987297661393504584310180626083358536580113544272357628375248986935882847005560762275788949839096910503222356486523055117204167801983481677699885930851625832313224787869785642363121542152816769280020869401445837187344483756467110317674698343978346767113966338766746042388644631162773238431784418820558942987627658372199334175711209669442601907167493592215382478368697184813589717965708716208995298738590585181476710313137743485042838763124591721124241302408317234742313918319434076595632289353181094607550959279753058224549039936386302313446090339530467123484003360359213359873460293057065058683609592737913289557896659602409986527593753617555315226570842976403646966567876442174385588570005877098356756040012240527861715128140411681643137916738548210630435595648159830024659031648062193640561833013723962063304084413005116830195825831937384686581228695001243920756266409175568842123644664541073611486071845394954897911476489567801094050058525058070324073745767446180692372485086263365632703931274170402113271868162665791720030133235082665004670561832509774627779017010806471457378703835243959060855209422667854014670327499549744581755459471691563466809501041013000934755366687686513047398584836783824796387909099417102536144344307408352814118264025403321285423500873252165921132988857685935079025209673286053357746662981781708546752795869813206995284551208539813664530521349805624829445888863221618471801653452909391044627701135798971507984293294298929616676801616661190866033850128282087443882034033214473852463022919743770146707062945399753211159142447846372798369169981184613298636166788635542737853981034122888092103062790650633494210958584290807203318939766000310483311453782948284786913532713790051219192592375247518097610722782788736465447396958233219329468234270764305014201624414241079395582909792399596894997971238109007546028852845906103904238683988979254803893849120340660289224113850328388690586272434800606458878396861990656198958640053217842078936918918294854007562911077606388912130367492550087794692167149329546241709671905457943389254044722775360035210558931395739626605485995856029618321104861964482772860436820213832568162376348558648656915614000985189533154626228774598302856932592006865051814553688093752458931583204442718954017897295868061839840498251068240902412345631764520983357950310477500811773712725520488925885651072098036703093912744915204553503109582434496665369924060760583831086308346987497655969917357593386670714851121074722620948988263670735700827411684107780474327759688583425649360615879652206723452102819156659512367349468012494128665796510398458973849545772181565133302510359329397613665807052795569715377308809145038622568388592579767265117781631237088500044861376867736456100062683192035131518235552872610863603108755180533507257459827959637548315088786775647147978038359953618539806064678769044992486792690392842497310866181034801136067044300449224153531619114889339173580595993575214352111374624388986361110343830050318194056239531924049312195968579879889653077908744949735336503748266488093343693571126867037322737151170429568392048937849691556945966768232028674251624740098678118130011502155932767159418361055007278158944386494676848376873981213501999188985343614785064680511306224143536205067349915021351461274126520942133298834636261622937588579962724005497624371462474401053230117764657532190082359922852554224127094809149313724597354659402181173213062757270646412760616494941860691379411606983085334788643134892683240649649830862477367228655205420947158062359978939156154165286306118809417450059909453257024291311427987328804992747668862881092593892666928649558847420401201260353627983695832588615037032635851572589208530238164219838886796114848365353372278877299980807850066312114405716137763748128551518184313996468504044219189469614400584082853324983411585962228225474483835295889386299927796974803257245184529565180752204596216292859170453392928966154514366446922791354490001249117630803888995166219380290586751193926282549546728053515402832690908683978560650443327642926968383981915556979299120211847471033475796281162592027909297080146090016154005395534367119562527499652594004728279787637086002474413249401739864067009998755165575367139886158738068385873226948715634681294935442544054490489796473145445494947823078772622424409902813822636740443401341180011747964207197352331468964697783800803530898705412087468119733070640628116935994610435509396617004657063091693961417809425922496886747382769487311955252346465802767074354639525752588444268198297318331888667869033932381338135657229428267654093576558397366685014255790607919853306088680483500825824860277843323183183236658313255403137914243657566142800806612925611060412644470812156337378352297663054035838714608025329145860958280221368668843806532845214278529585630238316997481219055321084376323727887963097725124688043838522837081730605277512968112384745038975619544570418483517490504153543775787419395855563052522416045061419080179515052636200949353869831171894663426836860170253976795622040504968241534510147802290930917128516937217040899740362507067259026289288125859525947263173900582399117120703255685426994994281609106488406969740644181676195841458830993017446109763238613875903443860953619279456322057237472488315151913656236680005499955800313091358159103065527521933144460561376742245788083275659985013392254334780997352704919218021393253768861126379523855384676461366890328564366944547306196408306743889267807961576760852825001035227118522961924258148040463549514831357766760987042374127872982105213086174516289769210666425769336161157843962831991562692160007122423122245484391417917141040395415182619534830899402098663288693002500318890483336102128536075822146360882168540888065802412357726218389033097542227517460660113468469189806288721202753110273959355074515680620595082365669321912804380161783320382785208061302342329632206161499864497065934812913395154733397177484451621982438796567944171851205705520339845945142393167388610709626118327230383823959349163600854564415260097212429332366512687293973037790971199488901694542703245826030690588899243326030008220930730756724634002579537129257625154593070713723348882668520256438781357700666555232671543465481557100951117439579664964203167277748049706711299671027598037492881291812275832729307278528133307608754593650968901150350989787404787399914915130731682360696676021085497693610597987200246908888115931424252053223386176431891941336321184977268431624980079930126125159063667695414424397993802827449284144393292053586435224516924384454687990806379227873077266187506494076651723259502375496000859539740503798948888254951394696208763516694177274181558042900371399864465435077090458112229421954805248190001149497452154808233425160949400549039460599700923977748100901918144694371594078477394802450088810757776279088936501099309872416728322655997382007028216462958366372034673989440815876346794523029569810230303749795095414026813890082170963297467689423650287563142283932842771528223888979863313355429293543244619781468983275695818404454427846511030144172984823917458514935149859064865034373849396009760308437824199333031882211764524771743401017587985818849030894561344717125913215734026128935569964813099014375741797478022442562347050034971472672181318200904523465474987432374345872864496084174983860379582855611557265536004162056148521226649914124584263270159444253643500579266991208870644083924446262105736977722787224862031246760767292403697983596973481917240679238433100258233946056787420157145223168109661283459448719015891738722904438668496091136606121300848115048563583274601515516840765824197533127286358387113425769455857644760971877915313151036107555784713608651989903075072497271747047580918874237941352344380163873628672076128061750152159389064186569936905722593010330720315314244126008230944067348997103787482311047956188564570418818510845651437674929759494895784464134362721284294168158866253166815454536994011748424061002918695225876854657886019906218931764579883064223494709594335943298838492809073349017189150507632137710350450974224212138823994321673569233505257257108107506830418302140380861487237556608745422691794994446097320301788892845147820346830236595087751780378744537840879803372055014586930484761700627756298826357411261201556084569987753962769324112150408883079405588194857121020060085983772137162815484101052203339583141292393414260243180160490386522968360081035827132235948936674639324085553055538319301188380090858319018937635101105201432998649674701575929257901541883480366289616774879951899863030572421433666046838422909390991879463634965997646769142279412643078479341367908692790587297116278931124373376116015057936459055251972387013453434796571051076866478890208477087624200146240345697765573527263662326730028718627293409821098607838778824348158736723806441405025084876633516771446177443035789850056195764115326808337854002344969279498095465845740173992092076116125281594364389139929538940921538939058627339723252261325406936760020422512911634747848792312813139117980194880343815114896332529369946944211738580929616499737973822970002944779631772839654177803887201476299917781918333815746939255911958549906471605778446006935432535935209917971762028728097951319129854722349945582266636633844615447603577405688819326567190753734353394819442274454775203119207038909094174214282055691274526405493791696312825314960071909413078748292289538630332929462140524886489329395874031474657769114013637475727898547585352146309573551799568152691815747575796842398845671535125333538996660924164505339897819651006414253334691544811268440096202152664111150582488763156833845137735280790189780015871864620002478440254518937794462875443170380294982240332419435291575500066386901294842001185603109742053331770108086766987155890222187057192955770253738906256903813212982186761858338921481443273753537156274071091933081826777855631634626639727351589597108205968998911595602458088134480122125007075832322854158873920424481687887317522102042676996184341651324928570952291098549488851666875434591269052741879073029036106715305353099209492976518136290356515014814370291635321630326282676282632720970380762102664069390789138011754072081850667612667758025688644549024486928162460696693911849603590923335875031024323469540458051694081056970016720134910487331209474207017539364202566819788792697904055587388613766500063738795015021430956668627629696266638669492507451333152912668884783254401325551610149038340148430052955893024361197721987558141391440515878354351348868275435216625551982679775829993892084126944293504602531039615822050804238739951454760058634032656455530774601631941206395058584608552304147622709535634163616735720716814507130528501729007260882565268983230100516850832435747888236233814410927011791345638242814676031010545473003665349437659509714022781051422702151963962670904923181916421923571490557402032505318132776193576731951919720470106481347838521531526013719582790597970222783642100078312856357093870890411698558600261317275249148712176633832093752552787424431527083079608994303039983914024257062738949973151491847691457463025735085651614842362183295326701109606041767468085509348936411265442193722519443642363213785767401186927990296572352132343006103931310019978302124310390758321843907714684174167545920530605557508507449595817538530970414325463107123385619114557532551036006050314883666790347023116190977829364679391182541681031322657773219819154781246646253245295738612883682389480826950445312175655164210975671525204158591562853801624455680968660978382129358086604995517844519248113919461037498592111196743587232057490938547900371039686238537105891955994326019269083631049941501437116341013026262683516955449762508767889902598776732950135569623776984561454823009044897927655260784969582169077948206417951277081277320273088639256922731465616370885602392006843011544616490381982562335224463276289968796724180182038414489140439181755055425062672950782965479553922959701175279418407056135226707662133156771408753318249871048974259108564515308650239824615917463375961268055408312107020747665320379870438177875548169103097144202571147319049705930922562677029719400973390882440950144961237349829262734587096111277481044859795573764117325889177312435657152437229869144934471628493680867266867884266121276926519384804572825527229296462474758109091987815788384142076651673217385934827408090013573840661269211931739092311706643473623816739267171671079812987610200464128199900657910570697991141563037352159842591058228931933550059361209403869083419097516686893055782931435115281443955480534527895896139375465376392008139576923785956332393584771540790139048049504507974665454413889339702672936315403255684817302390593418965382571151195266008316532919554214818575704358909157940946311370023172874899256622504059764121149225329767270734148658971228927526225617100964593606177039584660442975280200002574602711294076481631587536646785519591605878162041812771421306038112285571083095300880445003492447007582254216160851567500459201620895003399444730463418532853036943288420562632104061716607764769080010376290748427299121237469276324451649807463982724845546003385665065055525572484140125448761417752726070811016584556064302253025259131359177096232451131467674212756246389412159130442578853920734885785872563502344607997861602372819609527593042806398685269260160418253965551580201275926593272417288311620610874649179374810740930510496297381788495369063528198154310223532983538705871578491147276554078744331047867804892373370612237856428752247550813562545640726543011733737628000635341519131149369134208938490737186831879043979795190771381714399637228702492251704844210319372914681648732350157442641608574484926410746890206807290827407654644502936182521734908696523092168836767574733050898208390418052191800453317098805106294990233100245728743251896452693918312599954124475085863568639338790230349665857604430495872207615907041153008204489654506678510614263410231342418771914042783260494239348476008839342921811420503111073392976784505896512644335768036384593504265146827346207525475242937677473747339009213825640472033219558790695540042552845107374089490734316565824432388848874483622578753806909839397986270914455817615946477741684626465006302975839676525778505879544655975290003420392174817023073274800765623764433842747307241642787171431017754176255581565260053536843898689457823022952774710661057057076523286527045070937579330337426044303357254990159435018044286055470163465140813676107292539549173419675282011407963090293352179025200131227731488065468898655527186417656860145103791321777657178827780191986722445299488009203158733189983967872282944737638358146264576540722390465391263985091149508381935444619322618445760428975272022965807986372361400829631049270029823514122700348713590739692861274288930726381997526457458362905393724339717197680019550394842608175219100479049043823598425868810738995751051584859355789954659040919452229242665745551525873941493193366544023519284690171173287639552884891007770961603371257241399046462902938331268502242782490389345766402057382500854443560931895038950844271675713897065230483571686734571217313227093899015286134491422761579456371791434879894286443558635106512864220038998409907348989088469404032431712113294289404686293611770633825175146078569756978218664691341911006786217556760801629578965609427469881443508710111605908419696537495640521858438843399991204750287016941118391791065033691375258686353251928309617253884947028550024130434978316200310397184265388816894992793530209393947874877219383627372631034359542788626400034849083794433989583514683426797580836989413318619584059524262269686011169557331832465851932870908869158310801687106221427113802221204791151196811998354935682510809960208968128122088571484692343909815030237011843608392539569641330832258930436060495770912911487491897568077244555083828531993841073596118513765734051225110743251218341700573661238483917656188415585611048058807741510692292412208955481955288218796005609755993166559079280318397149862241593709059311647749989541883319629175802090683181705434442957375747178124545851741047765918034318047008014776605912531962972152104637053084862268848781577997219793675330610560363192291255594970751371744847343137196948454584931156070067497425069062316933298449078338541760332716173167258815669313104255623647134312359579255163172163959612570982680109082482743701095917615308546152130566773694430182162798175583975024196432730472736030566624652846025005014988550844029257299520061828211572644827607487243545496569235903802834168264188499832348304990057766541304352040310308144236677260608750736940552506530321810945436945872075643377089949524390383121844029472715453475405913563914763982244364943054517016147173800621878660111807215857933342441350491498786805629433457869245547495899135024090973977775791221912385967460044536244886344775232509785032047429053123491919999102901748778788709625335390188417655155258852102055464344775785834211580535518544734354963459593145599666045100801701678989740580622131987924429000800255066883557015077321805113793220892869908352333309758439298512243749589016184354730559904723178225997215624465668235612691435493950980511234260852137437306040420462072484797010155631384793586137274871145986123067420557157421224559889371801747582565111336411493117894522029825123464205240508972546041079723628877241687873508835771853886310771439222342577063412044441134658272122396481588502884566245826082791294775220711777497204935312904754184446648033269981895939515367231470459042846001809252473601349318015969750721050746361062243050383699165056593032032842483320348912192852006885579132894429566100481386616355144601414823866645785869284298997896951509433461311298594601153108441359536736158507472870929948722168128807334081558326359655371925955725303367626976263492620184649122514818158915967518961772408469564073110241672807515026523409885080522625349618821087941330666962894600438841573938345231926000393658545001942851599900520053322936049959272328267544700347529093763851635355930984098074534695492297742963772874854693729720816680785177651841356103766512608780149857952509710630482858791028076868647844429716978230286399433246415445645590438275700269398536120675128238126063082410699258921425855929897100806495802294777427372992814364947092051316978976638110596509503650832213318546859860816604254778400089670222799683352670750914741804857837271192950868556194649198686729484962698715197692058807417859123980992380856135334603615566926162279455769113429956263428976089822838931338683163575655168406495384943546386468329389379628026684486204747609635192458903980800286989832380019596813327968496359268958545421805994362541406453740163941609861614612211406971901442477085635236589964586090166223032903207661786319868671708501175568493980590523970710483044700361515173395520289764641280788832464829457750517500728966091425460542614432411636369453863747084018542378023570774856716140090774628166120794270712284246106009839152739951296631021304544091597917647180171443451080894271996920004068084507781450290025981928012632854432926720294220285538421242572272693318436382465048132575162621045288490685358084088515281770600417192323943496408842476094996087821230621188797007438942115690094860375186806837008853691713725561291591562344554768688595449943350848086494683659519641977992508742483584282267480126774007617672671873892010828167099883692578491007775107636484172993732374935770050987320693812255978461796709326630066448539055740754528823870405268099625721877665538082547042896833826991762261822641351144485836132668497508691794998998191757264360535700702307949447046067897024691848091395578128607294727751689654546366433957931117675762629050859280244691093868806603226207709139398740533407018296906920854331196751173340632604130687579474906801502266330668157324118471681456253471665432524214333337560819690645986494495552423257681750923302729565791776830713595821148656491739454191548173407446212755562165121363459112264310577070397701182787944041347168564655538966492775309343909195308679806870047138999408111408787549223837254745984887526145051089580056472051204143777172389624783246980263405576326631053601855133325382265306326742861890934366594047617945494410256098480153520622460154535613657979084308363602627198513774255458272224216536371458596089639116733324291446691797972556193742679538404173187570459654585212878868582693480272380494503744544116481402264412142479320090511878187151620124136348182559398375783011252702293250461867770958462483177102753091539459625212661186723010710701857276761866809487989023508066715875362570876927301225896835620163397423266764569670292042501563021364725053937948420309945045463936325132420245797721320197770056340605824461564423710528922218253481428710162157219394077284845288389752776322991476421043259477255808202525715975065447630641878595152596573894972290129469359951257110749529811263152309472730051714811297624174548061499408675983086486570263565507587203802706859487101131526780132698328553050322642663073914325674403257027953494766547626239926815538227635376046303258888800619401638492872368874796447160919959086244048921750014108711814071157258988002133470067086464731794551907312599139985532732053027675217830051069530098956486672516828646721075996545668314101792448310476395965477336665785632832297276254095908138596063715391564966886121616425941869683105703049101318666507529637426372873491712251740387612955595577415095465561807803813864160178675917113110522255319489329921817670125767000988532930191138519022009194843979633396432806724245404761278451133826016320653862922752472761460946305459502860377535933366970041489568803943063423173435653951004756852860135132977500018921164263924485024146276186051737427044635729979858986392228243815500224886004728384155032997796850333986127766061819888800220816496188277793204454662683353894526896742438276162183353468238552751829094824193933145927257788854025982125231810515454402656687140159123631671508896213966076417312814642689401427809043967102203030028743459044656143735740783360456307133139165101271207504182976410416583920842940276942830037921819285875572733146938589858458988368615801571983375228340673943904918437900496731271006857447611693747554237021249770754287187502994169625205962947421725333646144120336484503170791470647095375882957999181618520963232077833668754104609154818867881457514681306456610937580712623470988859634966277760595986529503695038378403830614971494007083390311436056150589639211832385632275398551974627140848591112737961909332231552734480751584514734352268406066075797631943300462000110417370264613358071580964793434323720337950731370042629753665600559795767492435569952159104023338514394114976359547129332417133872055978175966551967769459450797755985412121762470793887740393399805247327388265574786963131472723501229826405601405558567720591175151607020400172759335683796539196810798176739694048875477679747939825881461223304075194806072313030290108754937475764280165754649731774384749340596142658172530000627907400231786458717491354642216831885252363436520857099516720426035617545643963468401098157234030912961364162389696041290990349363126915516971566937281934885877092351317472813593670076700862861741416902391507743567832201876910214075226746632513186920795001102922793282256763957087904887722385806811268144593361412032413092154578730393373693319066935725614899183173599204150725119231522301914790968963289212441124046120225399355080306289097201377559457334766456428108223630784998685480125756531309557239302118933944930395065982375640136227254641376356566197272303611773578124099426807331444590849480896039899966264589875666086423303097304732214694336585646290817002309752876403315716852447499564097765557767204564939379658269666453995540161383395355788672782422092494590472581304887348119227406943708900177140041966958326765712475886871604600031024891694221860977700156378746475513738989065641427247681449401282070820660465351906510785687589007097892002542027864449763348982073168428263247428213710715380297607948440776180294798458285792288308511709488788509929555720440020412988627698786320494244838823017985960017788770265798735714835323687291573682101568779789319112803668907402046058779010687876845775876578571809883154198438593346400475607108664568441323400200707472835482705047385366609177523807793400084232580687182029827159111501501222138121408579330742792833934561192295672534432509738890631252704644127935302105207138135447408117414428844783078261874155542230354676450449118198201355609421276800326189188871682023626422025880625264766516215708983221642615717329763805574694521101294554658779880086914467200832478215544194762411633358173416655465392429874422983818860333716859332300248736498621753366514099315478172891235816919162854426145398825273983111947135769146435020905074450022511706274084892260768638298850999720862660905655420115395096297339760647533183378985463848946497761517155388742192636921120718429222351904186357771990372504374629932262785193322604752281999173005740634286005381947286677668451327753388112940821744915853010153578855715945828449938480855203252491721413212687894851516973373156051252607075568646582891420771550459540160822499070369969485634935354201046565492296496391298479003001227707969902627006121015422977304181475744470082311894368858704669847586221665287472479447209197099977856049960220323164698029812364002781482088531179490988686777172056408555303614439670855409982827100669976165823965777345769462750553707571883640459882188617270858467994080855447911562882781692364012695925190770473895745933615449314143268032265000678788718246522270633192753380990581933312486344873534645312834007232718483487259424697734597867553709625302487854368802080415767582318384183248059915392156451390856715535270843865325282847399477446858650911286113976785073014881525508488212236575044916899823715126356832558632105203480905213853464518819456231248118518508419041002041809189619401750458588581996687984097708985440664142711860310305756167734602224170833842365337152935314184308267866279444608039420497154096776044890251848216029082926906985021339421730435538101544860637661709243026223308457617354238576443502142110841480128651601574541157437632457361054989806986516421044934391467730009621323543204709473097561427256332597872333021463770291335510122118208132127722131438838212092551893218715217324624750217227436024827153913417027766236394876073693480980358134932729927654481473926347453041313745105795868832689108585441792524492801087517087397628977976126195836653140495209990673488233481678418916699680918749657617179388001069844272982373786822660367484708392887931887285293550673651755479298251376204011958762203499147086302755332763312256620809068529475682767305620866773031263736789198604997828408624268526707717727112266280404843101517739091770169258138056956567765822975676299015534442814569491360693759632869825771258871823808471285038058909869608646536130822290030351012124138709836606880742054741214677481179664981907984360338953620850831206637020645751982813081891454679646167083409368277726088236948880767245891370784524366508067822583980715072821420093137258608510017427323490420321553626857495915820806709513402923541167939925270506803085027777311131841367478870511828776370972858304452778765381756416721152588645092960147208861045473546443701435733929556766243807059279611058845392788131064644359290870514368070094217693707207513700935604716018471233157745532529780643497860999837739134843135435638579285925197307928538656130742370140808823942681584259998889309842959206614154202392052479327311184350555166141201500913790785090513638040993786797776948846243330142420928134698251969076600188096251167211489370101797394127924957330254210948886532353322112272514323588552342946187451943351842924551248851761801742878120877275378024526493003933073360755540359740166860411805174297078806216838516886066141091940077092910598475267262555099742766265733421206062630216168992336653781119539337303061311608943824690919134158544854288779889437236297356802533883231911416679109111636638498982782094865850276991599819956947507611100592494810951890242891582045571065682448084683660809123819362248112646443322280350455634803909776393966635284155696542538482060840154167926460786248366749525599332594526138115653978661452780858025896139468215751143636696700895274784556602669839837812271189397167212428885552482277030577938399979030843493109217602002855130036427576522861826099510711207621401417037982362906088402619259255129754982004776596858570580230671591580772896338862184540811776582569128100231059376692090252303387193753796363199204374669423222185123263232920479292753129244783406168781438673014136117760190229460013975141748455561138129016103404268624392253685822291485018000571811954077795226539664092425570831889953029154730516548392545174436881272586447666022941339658471745736398091685907630091843613146510300227848063263631095095394430033706008412238352913936834148727251650963665693763964814925426312449440860467468331089694962588259630597952270994921979326013451254157180605006788354693521580474408082016604981314323019002613479726429535769367744749337687709658560900930273241665479770474653149417205563763822344437930649367384334574161775668192470019179319048048937739513723162122636276056227417371825894649947460931068908444171716007284970236374558264524361080016783724176535546465274974617055500152826405580933859596190313585662074135165571862781009054519121074452630765864946694312654311175300849215494997093136715753207528741790283757783012257102285395252619349677447502087923863282837554760257776431734447058549788150200237864373945736964869465828223207129965879433676882475201220416965240115016886964569570472160279635031338029437620544411244915613710348766375301759922214803141662552554720459922825004843694926698728256145343455033306781287908334323067776081151967040648112619933329783119225947777548748755602216253872390347428379184097037060852327855204659309132519763521011352037502166480799578624422122296147554884824956660253188699882727691866000020994967839641008223100252666281211196502362505536781925349193088121294986294399073808333662567178673574653760942591731699689642372408821884139948944399755004688058249531696580600108476106201271774129123827339656522832136270143388362697694968672746958008867123545448112758380471781270514020880173991130053540585298659299930849929313818577290111708550335967318051827673726378143279906255731266078735359698491503913457257699943060782315959487470627178088491471564889814510667166533114283068966482105610165993451239493136842683202941019611206148427388919456600903737405715241352087105894128890741045384341765980831777185450355754320506353465312436462333128051417182848761478908636389344834750014358764549350862940974704068515255797471128957094608907548662427432688881232448244932084814513290410680454441938826728068390657147229898758164840846777187854321735151105181548012066497984720431535854942406917140585127569584168576335640034085168051040848159281404422711389849716861667841344120406634346434297731293784778136257380389279034628542035996204524478286612615037093569376108561850542449987951120159012080312251607530856860073639950385300971468833721104862509759466858628369696204824803944775183510178474461157957906706729511988365642997733776853126905161306871469987671362771313840061828096019552164999152325459499233624390159855708959521043733731237655392662576050810976974947759505685027256321670124102253695155751773446796234483532069041384654856066672254052622411995729089509823004804118333695925133728623981471123684960158793516414657636256611043463014601561389063408792995689868061237718531564400685863626897082521058576283741867227495419374800788963848364360073353414400276162794898947987359212641327835657002991332105827415628908694155992117036325904966903772912350380105277981221367643730364337451754935978986718111660166138629418064786565351966501331258150372737690714909653030311582767666260122903291770347992667571828503949538471241317508534283988392562731886379844580426260697917259724846913662744945086146988166998038816357409094487769189547408448793794457520790117327339327454349349186935935176802060354653446328539770857887959057215698026855561983742092973119967592061046613402206006135398933259276480353048874412002827573470764889480768101318699907169626542036549109801622193260075520216603289487877573643918254961086420909748839424962325696330177785627924024080683043983579927864421795976444416705599954762179468646117391326415905550576753463888004546804741496297324620529284323709094096563586658478654128308425479705219010834016816597351486844727754200721174523177246409085927253465121131960785346576864343858676087976668376921279384123931513328099830632704311488933873752757141809541806577734751339411368286866115652333617463479872902656293296031319595775975100176163542019035093848210980297436450190277983674996344411072354711016702393384066364362026386766626190577348121285805655660582518157765993372587069556271365290761474537489872225684971068700401273269847189653212596596240170331017633948537734064099161535814859693904675077213711707763721110982704487371909761947571994724279673886051091214153450583088881796929789066720230125791695128851862830576054555741256460687391097241213847192787288354497705279107183663352809191157993549924006993988823497453272790762273456677888942148581083281403455757149148262343535531598423227517038000226393633140970320096424932401934056121570751187403380220433422471288201527674801611970842847059340808379848187378438104633542204832122553023697510250611362576948818736887392130491134190088420468774968364686533174516798295323267526692740183946301892697760671971300411073128140991929227059271808505017069230942313191178025637329519514331065885934430449029086301699368243950666723516524214756358157767947661714472522542456664286380289229347327573827744060426352880152440845182881471048971652429710513183562302265661968797121866577996893160603010502321911903120363565672758405258966570695900457145957108198067728271403560998909752024198979499223119138422566590706657662413508344869640054813602069058874179421668710762006576723034171499535563024145224097811844378315323643364314639702631330216929922073462805478315228630618022084717233274208718182109245813031496460012941395660217067176653483903124859889620303736418194788703848100171668509083486948547399843869622092673437041217499197290836094793678521353606148904817419952943147325112934249838213597206324461460767895411197849117029589821120111949167554228767427620453444005588845427778464680955100761207253804825325259258892607411831617094452765395175929539639322840548065071722263747003901859649853491161070078658175110044737403690063579736202097616608141788511388758630893912254161488484624073341972301629115597563932193805107578562072169244367727949516349225953494176965886332846362514490394565517517583500101311674461507151309605907007499836779740241511513979596119744479994505269867811502656549533798309605787470612898146217199662643462569005524329453165103608133143225405001847592054691124394225357939978739836526353369287112121175711247801115489594199610217171682419313282748420087352790227745368441332685938110760392020916543770017066313872368925179002982588423076847716791154570614626089647034294916838493650516704869740403389593723912297935404602683806318483944200235793616367006616299503869314539745809523974997105560398086906148145573350121803173240476668970758358726306381079680219255087723870596366725690143539002068786596512189226360867571782812100249199381681441991198802661503525982582779531696348962027933594994995509197822758685731392599721178094925269718249946724863525073752468096563435411343512118551573806873086068550092339775456484193229855755979542371938808978687425747767020163139784659037820980628355508554836147494152506213481784843029687880865666672703841770089748776931114549437675091866218696561305887612105598133181728124224276208995728002542932602380123474254419570806091923175003364631484168390045738340125331622412905288145043660656974637742461071036794365253100751061158789342130530152133462021185175524574862406274018156315949814135259091091199333972287377379473300616391326578103270262972084282286806901138854365245689593094821562272679082321535329565490818789256849191218354345273809739788751568907374362730578216500880964696322649436423250015975824538545971132396425093954787796941537499690574954216648872391285373735218898838214114708160886021573452123263796101234652517114616973733448879663829078143718178738256686586036689964753767489114887435436501289317264798688198524251362569792892855713280366551444859749335066194324925243402501296547921795262124918472538647608320836158730760772037906408495386090571419185619738929536146295739527594073919009826925136473567249747088369574005570849249874887472173242219586097044764589479464822618957894397798834265195139668054736078965688555124303734553404218718760438145500053679813290945743039852501065783253542986721349366705133784881947573761743961743563370243068971070312594723502474065568733830715007949444815291091625177331373172172934483163031327009274750521085671303917932370852982659227560452080597796778110170949039013784407846729250320743475968226793142958159943738289135774758402139817102589488294875985338774558494392502355102806301764419241480232600770872879674067813554598348946646584335984191032212999042788213576832808754923720562487373016741258842125474303126251135506554580211284725127272959544876113141163087152245056441375757519159286091429357071240528475513779453883568732807652328689878172691571819494204415708111999944468066246889961695427560190660439534725929920379731186586035417630492639198496527301650600526244387482255983824515387211543298431255380122679117923707124032617680603462787400873899006375148558301068168012815874617888839452568345688656525160116392117203393026105226880821977470866459158367585832738980363892510957869396765749489694024599976809211152821991664973256035452094792885502980037296101550480494769314014361099320759276444631279557421806339802864695744606894679566424101489102425513626388067289746191953147370789496244353744496751151517283848667778362003713017597462739482185779936974199591877045923941940255147109741492449987101577476794418552987061419952409590190402864996182398100299639246581717364116118419529843051023555905796817905703263558675717269217892802443176222905753362994655363011250616649340105799258732697900722936222614564216687808479139773700379175581106828770701224520147846196481119832624728743460223369177412386460595381240767185691317247078429069554334077170527909095240565669519800146908184428021986592954188417609694282590043174751018573292449956862364695539869346166870540168856065182438874949196222804292402190049878761363646185257167194100823264204699841075606036948767022925949358799918302678155762067737574476182318023438570729368470184459492203335598805571072430594248911175398875727926444528376644622017864654208423328019925064517301149372918187148980708304737967349973687748248100453421972356944073742340334219306558068902428249296343263503320516200540210188168321376904839252309747679705195786651843776234435145613377504504323360216700113647853242516255771408764258297999264523330162929453571836054748651842774438396169857409463454970080722182481317877482293969535163593064653319295733155263949553921574928557471723476250564235003010985013722454230016365609651018663140570194734726434170194582657928655636248475199736538193851227034633016253712039996541669296032298939396408145374393972065635135686984617465062938400850581155826519127216139302359777901437540703715572756502649259016215909145146046825720519583479514692296149550900730143860674832288321856056540581705984262801527451516786051364509265651404104756590942627219333104042757955640719780961900212713881330909080622085414986893730999740822287871414174441795450550454225966780711624108368695845079401346566160162187504143758531010400910088752555544501454640940099729889988895737461215525114557656621243813719423305896207927000683575113446046490197836025005310769829575197742713856465209746154274784272402636869112244811346589433654539117384713526233138847882799428080040033584217375800139315694359424169151421974504193941690587936783298421541347183007760039707230373921731442585767208481737858038281516464148020952149895579426945377995238554386498204625569466789366225961812496875873895820349664516716126742092373243859917375423266583625471760581390031349943113904316854007870852232023380996364751930430568178999328857954737400060931978217772295364431695872585097692846678145300610296392432296961937796257776345582555764945692875446398132761103559649118702784810157580123844320944614335538502276267021417384273380829908853324470191755562557477688366491315730940120846293549494983004742177979159398363814341215057703944369511341612971444513433743724325664639114974916220964208094525654467871145860893973893985005052707807485149293853321930975574210331880644261075531622748129827828364188997850911417884989030315382702821971659680308354415036340154839116504528370395634769048249859757261609378641158037485667411123599511118386441312434778626265170244980118919959917062953849939895069848773311056725751327585580330359951681603562611735269990632840503116751254979125822406659353810589585513005429553572392319613544494033888529769697263813622195911074837426470808670778408107381444511574943660837088353524620551427493426305392353015294148647866737614297556985745258953537851248092075714550992402311522852729352097314893455773570029529929290319599600235858517844798472561175733820319368393966196209565565305814580675483543009505879582317526373692553313000438840650864042104533568112758101808917104143512194639353884073987044052831152917235042156334160609221216626313296491076170649775546238102762666098518023089487333161366486499260290576181828205149405307179248075760680438276041600666448483563104040590824219837479584622447248368731355810384120493002762300989672363167596083837414108386674426484572238869698311182996910153625696460419296108555238548671513723986180162620953303655207714363922751711157774687700925127343309602341117688467925230571935399379503071139768251897183465803755204963195994227256235945967900881228145869482481482574867780941995662382958982142618145946597508166640380785857699814303077171343204611796006545096183875501351542640057008483143329060194419053187707209798787236401027267063108254576322966047139312174306852292576420201729021618623885220238245438899856489680560852982409962673463585271224605637252172580380522125063267633223400155277168782825121462015679393254435119337145406604496812909605301998920755229100476459998506757400432339479848867262073416906608734688593412027672065351570251716204033932839678628742090180125667484759370612750285317820208095935751128587686605373761732871815045569328584659937775027711205058768117490965307920543360994435285383175350195529084860678736893648460683474028341517613120346684193901783617229782241912420394097620867507381887358552987065411024875030107140076034567386079936707427284384654170255226928403636309228969496222344787661930871881158088629809671516528022723652011583244155495540742773750468661614182704302667653640874378664431034429796795926273531176844590335992322465935491023753656750310778803535487127691762156760725869438401534059753457211371276485093281966081506160728695991399605112609958427406309035180814610689107080274778779157075647093527865863591021858251677293915524056232889635387491155354226499866159571197052160482303451169153019991980447951775518139629656502730043559650926885921295756117124659569178181783637503009329131118447603329040152867034683583340075094645116820206384280232827097945387210301404585688760257231936623615868007656324705362077572132335764402219829406396289775758378016462764396076593441016758695491498322427833799941537951975757121569370259572541087309885147781489524143664912005672366986863216868306554432147803811803119709233034793971139698217998608363137021781187559976680971487907718738423135332831906724972515726813821240809664571265023685850028779127536099677899859264938002016124211555692268463595221302499652408111988189683847798179056317211774592103884851333150082184211173056134097992262560273108130113333809086835878838738735079518184246298636874804320431677468370139205863262145060238891088708331884253852263815952060640098605543537885778060627461028840724842733532984397489619230545923958950224268580569248982940132240870956053754896379332665946635363129687319812963212201644790791038174511654662554885029015508401283698474148468334372638683776162177336719757584467605118556358964085960184115255798368595980588369802377299612863133778760735845334243676014511067942582743828497262843005993772978178332977538254363292399526755358414138596940542011531469430830380484205042491005029858406450560594330919987824608291275501565366525829321049223435660666745987676012477666426398590418022417907322029808505028181447921214841631925201282305861698352655957329007486068259133644045258279441816029790239941264911664729606772977936078085583746268657861837826375223804373284244768612412589356987407718844442068694119827753846649974053737223224815855487834978932830856926244545475875389016459586169292503746967822414769357841161205198783838144568517230892175443719612194352740449741798257685283631426842827190002453213118325080994499984713479361511992021830650037148252540954537036638311170551396780978509078968827564410673806553022416065973924658042909612121929792305311826661664044054463747796704631110025407043267836971853203418768866865288888721313350445363297562997349860214339804629020934916626995935635355950199822087805307096499707017495657998926174584814316261042278392983277182746714066525311441723362700597348928460873255554955708520050915351917117196626070656360709032160396202209374472601351862398027410108288351693993093008993124929991286473286711085202192424580823799809299245138357530238675297493779878101904429436855545926246906982402547809984908061097432758988445217861669546101720883537317473356296266915433033595262841344462890995755364280363700696972258094909574532143453754694228965434825155244135723934211094959838166613665877758773827086555948635418568261533322018493379746641342666602563844534989641716795039004453761177179272371933200694308355287805313922811898326300591395780892693399657542303860187429256250951253085235503617843840109652118131159673271129909144045177491035053674567353328094846762303960283425934941480874864473556329528605950611018437675795932755910855884320325215786155204260385487217860995790723254672769825650111656669816883481918889361743417684540867237937496800065657132690449425228720219697944800552331386161754874334505936338478449022735942483531521428275601730653940704761020742698307510815556249649127416909675487499563634490733689299723928380662856451606300841409287145130148522681283362476079574903379079242942189179733379864450796401559749897187803006462535434309829543611522897600648019633227768958204518527851426661899624434374312857432610515091765050203108940112306039935788715477883517513353484489432194258632374774089409630946227794627433624946855975568294208818575350155350500373084901975453302665564998225098988094168520420695168372052439888368451099108495195215246804176134110922168925692175427888614491782441449724513004139124234630002162568525592435477938627298496697443720837565729742569107696774423609257135935625431830145131597429280079577622357381041720530272637548800285753318809781967203814713235611370740105453884800601712814097489716182579688384274416282032697183395152590418217091767124287648278674254702599776654722994114795202337169707689506952091031664632912800361149501247241295800518163843717197303759739234921457623021163718839470087418466839542910927806149056816690836293850848185298558744656854527695489557194760220985889547255342620249609836025586951474264854115205210258196799972680806374502878175792633309966472408674429476734733999169850370114729017934134660442612289598227675642692574730253416047003080966448286397787745512469546235093596895972339222035542989395572367730955173333423109148330008313882300854259719796758067127367767126810774263527225973875509209365101405343376044319787286920677415203120259969862152972789170240294086599772907004631270031652650737831568782964045829210233697528948475434845896202323209622916274224822341666391115267568516879384109934365319540969914066374635661145766289518381112347042793576802548979597423292586559752767498077005827426292591601451209343936983862902567148758059431637019977634693584081612908963750646124342916348179818100945379595910856980408343471271459206844060170161021143454477092588747628095171095990040520864218867712826809511251623942758398337379209819277314823030369723685230771231101036070993680306881063060717323304147694632192452856049246665263366929983999871083720506302302872198137678879629393203995192789037390548419331498310010742808778697939372333876263165152645544850242147767000189099597794446540682411039293522681594496542580420400936831175471597202845538840239045933556702414228791916991749956948844888956963643011014088573527773865939913374548443520672740791439026133580789994802966855739521887427732655947232797824333205147668142544228365129392704224332324829332357178146485410141958554996075355408253036989221983182113993245990157706335565711586076580555672624080024454737752103474272892983432427372203927941870463999638393521981015306968933028929165574978032214324017988853031235546656101036801178593064280476168578011255864412298794865618552837163343267914113335720767147311791349659055428310181951741455207753878820384631818877376955438342190400311168053604455239632430809750055391195322537156246452942175036691001895658626776406281069613585693679380919490451374397246796126749391161931803660511721115792166762088031332355978784994943823826116564865832617485682097858950289811839038706938721857472269525955181249223464481202865722459163544144746014691823442034955980999574919415936056081297010595197537577012265914735126442263565185851013291195074968674692802217361364723839335386252172974402166486408554621231434168998942004131446929136718581921046101304413430391720693921630126877495375729291530807039619807972916391964281109141431962583845752571669251330332383827527847709528970263568457950176408497075356755350557623547361254773350574920214385980708698788959952974888732936845242716610983671868815303679333059627009496458461681273620345422987668483133266499954925971640983794712526852133454220833590374144359437162007172561571703440692087406336203577089452893179448621636746672600541145860897354884427864427759911414341020154879191473177839235381555040947675542055373950896623368281619995453876129923819233293786572676973871360301542828920730606599333210556218115509237878967926214915764776609627726565334381710116811475020871808383614896597528126290339123811850183550707652370914538892924930147844970015917293973215824568089466718829947449749670030771397991508150958849786459323626032814733482633068785495864461330843807028455818803071496965381272048634725419680816832052276771011510124305495190942507895930418119059561693694630770570337602495877276836849234335177742065419990532933048483191781104602812876946682108127486998525280018345116394932249909258285577811764280184675549637023445392548755833877730947674182969257289269296357060948851892070970756327750613924206398852693364052347190998600483099547497521387277893872751688796248773989896662681712175360682146508504498257367443412889315512252788947574369898348750087275904559907228957299528312419670557493182120788532261177961426643656382462085758607161323326709167632660509356077633269556548601145807796225352335938846005153800333387094901552844243515522767251267962673311811950910731932846936836983651476262730589612132497191567562067821645287774186982342842323835903593445212506663721670344316604944377017893111457678675911555377269473682640530113515079550300328014921432995623704375236843998836945316416661561462502049207802894181335000450169195181633332921419402115302952205902845452280231702103358248625160114134084556343838356625979452641268093294926601593816594716042756688095918610269960369073974921153188726266275498179631094798793670394650964468973140895168748210309373931763085308701042853510886642956529496308423577346395677266714780856384599903920140127989495146158311772585223029884662633679225135695528709928390669247557769140769802450446053465871824278282767396306612074650125828839801462724878039918296417255527806396570095235534722914364949063806182269923727783654635108065611704681422485394281899450735496650838089375647940577316935120875493966733901862057668579912660622338066068868266009597504206981463091188627581033727189756469881601133482732510286444906533388334540939378594997286222540380005739534011802140204685084622109490046315745469143166626573602941873591723798358007513212738434757954524617471204233261790387919290703476280219026981488715219560633741262640013949561048372451897309508717549577831550025316558727262083480690927697537416603360503899937807797789520901548972262041697533244230208281428395204361817984647186335534257068060309322559239889349796814634144031787035065765466546179180765276113830311593399553948457443292485690105142397150379197661374310964783246593617824375603178313365024952785984099474376622090275938986020829977704367457625633082840779746474483667990648008023411236559761501108007809290996350037060587136505772887135167697303744634920760370520170222398377396082531162061195843059686615986552310369620369334248520064539783417894774819940838096734539981279042621910571118691000364490474368447941148865108617060446177846092426353006886745703467745317989171949911915039229638305586658108893446814681004561238080055774265002858345104026329563332289310077369606110668413535580161190044399807002277746787599005740357965942222288490149555985008137308752532751342180536324958395342971513013116227199981600530911419089707589704852100801899783385203441273311306216563714711414376144326048940503140073425385004095645150104431598953205958708864092733795998967592867750522505192903295592930340945613431179357071475084644868773274232556432264166276061019907677296406331428739553320600841780542955780978395466378262228205785487985987759068540674084988239860702881492592492799823059136324915174243450687047958780364351070651302827555489588600878859820317202706973454948035839150546385409711618833720328056023151007677284601445175287258356916362949629340827519262107038567729085896951717155302923098182100542368474153702540720643860666881938346825074969640243017032997399280526004004381690246344833676991435637466072349191172903147997854764623238550364067339749284195228237820925006644656963934745405877464326010228987686881226044200248993336104282113389252514270075616694334236312170635159445084026245873591905892873124002644534743660263978593812547772259140209676318100294289732988309671288099756579436569658087402714168192668634148663706158170037537729584778178101000977148301568946506991256879064181514690020936613955560913305139000852558700529976396320361587110404842381344117471201570182250253051233472017100127957381059596013445289531359307219975888184036588434631086428790780835168469009436853906878412726278283659907736172423921130897717851920571791059564423005535220156760373245272399683940309500537302309264521364156896358947578339506057759182094034665627233364029146590827849569687893872221679818937598916916167168094026409009930101474005598699661953344992761001540474754951598197619949584705227469786989548197094684967544423439043462347207243636997356907320669925859809181282742497705452671883612684725113550696887611860115995487197781740332944994384937901125419182119655418032629338847032468950542390122754927896145171636700373222047672530729028313213274833981477427545725802822325035967695721102976039833262202385819711486169618366742286663994744308940220662959985773530903753738875677082186022801616437868171242281364601851920096833639134325965457139276299186923828808334439529805612587431651568242812120282376131823179735216454492956828039546163787389933380026152113275950008716684242665458019822199233675188771991469371964346133656864887122855751062396072335038330943546244519976173409775557194886436873830406026716004603415556392036108975323797448096092999032477689819027149394246442771139133605440842318824992788513265299201971112820210861588149672581245504233768950695824971066314559859790295755753348047533266304011422417628727004489752672387285211160888634572879811282618068740742543634694561465461153118271155541369998421261086911945905943899486657619939923032662402870283062900517641648358645557380379662988411620620243801654504240865025648782933366550575480287060916545237029232011149642449288660395261150996564420290847789739790385704406351507076786045427409726322408766606559089325548408936170726599147772795071965806544045698836327622029173736588152663255084288129653101408447820426626018861585770325376910236708893191832602819101493000047616709029331737709114039393552739441215622471099929117141582442540365976158941184960930040120628556603106437066402015363930517339893106957042342389988158968293648902773525845743789250031310416257775190978700762054110605937203147783270329506866297204707046645863734419605854349407304624757889268034404220158962581756348206968697010111831097063420345823782971047837184548729113103332806292145906179809498842478482300403350578044767381940273892498746908747812232076593309299073562263136502429037710470604055666249979876385733074147370941724396248445421657862480456920863874428346781750686671888285768454908257920871108934240801619135749472017629960250040433314099692949610607663927403989347699919578791371954929160376862429476473983721395158433941695164364513662433190743482571908314861677219815495637499155182553808364250022795323089822131153288066593922283690100033138539645171274511031924165181305425010219327843118318183262549183019683336656703419782586362464197032407816877377160043022847006478521673038243635225620171308078687002821858636087397045390334757502422315335449622783431125893203490046349934124462756919983612460260441535104333072822108034714809322597278066310462593698491256536606529670348851654762276505963009889025792582239591902004323186618103222554636000158098736310391616437853008301597499071969166965821702401272235751710945755032878795220327175152210654230385101538101161453136940940719489500450880542596246854019946897658155518506366514781325492361448060722120421904465016338864461143551023005206127237053832861779039932835336940214580468809739048125609718561178765707747376260955846094764119594891258025474760758500729702677258277509245016619592516869444188207666320094081839018214159838695536040041730531082317644374235178452416129449919159277908180573947272043220880800088690493516263206704203517425381937529493257356451475938948853094719900274969620867483347629532340698060707421412132201764059190326453588361994231862889311533534585342385416941700151030893939490951189384638219169394162895690872841040360898260558166010384592582314506180049016712095947807507765603199660651478344635196363992655480477018170502359206237476786434029204259352534506257516138588595430858898036778032871569924035849723099132436646326712919229509371156137334787418419531157490567613851195500013953273414098052934649701155631797727499499038971176264740011805143455833171837057853177355870180772544624172135945604372326476827599443437159492210906004509487940207082404190251813361164124568261363297963802296353238582085180148368909891835437977703688045087140160274422916988779053049419266064326374184759971938558719078830225370213569798999664859397415463766487611696683359691362674813507445997746959650965436017564550433208216889976209112517168182896085124180151672633103015093009937251764875192972324069731607163356698970917876809003932526529258161266826790463044345781708695937319346325367463149454667048254164789942716516895638037493779018301311064505212358920884015779129102265172490004700488396188532523667781921783274121952013202450602073387975697866368531606661548507176060629149794712536607850675434380415892038831804235213285004897340704297262004811834683425932189180389099777720158950498121250944144701092536288072792406337518079194276808362095268476625214210350331498691006367635908778532213339246565675049401767122107277790598643031452085008837839557919252963134619651247508854599305108495342156125846135764021552656096350741773083906284687723963656115118591948981731240997131669773959488606062926106301739916076489078097118046451467920909619700248778106118570880510557411018254570919163775235399162364408898291449674795819007541876108578854755690936381328357384314570949958728513323225269858331487252533212667280791442573848441842611063090238171522467942320285806472782874121782699901117781566297029489650147377930535139543334926457254487103317675601673455707140573602283131017584827987976069743830309869747432293482052896966254772740582341553792037277020505679391742892627468052755776094915682420932826243671668817248394047126583231588358067735152130215466184103338527667237891390983686565683318159209914575880192015702690616043509493120703044809819406565261223448198538987716072508546388886802251253523834100630567547869051179114670942156171097892234394095365983453010465888954828529813649693438954644918627638101075136757157827527556865665886197345023687059244962318431599461117961635354444066605390861380012974184824434272215718004102478875149055331164353961365529327754703883786648749533961131587247304522874053443062421915798160846689195705860334890614158442964492910623469388744333868040454753780094862411685370364530101272583706529814483570911985992939826309599922573166008713509683900425802834336795658928839778641703084487824887439218163349810300740550620008025171935608074666586420925049037615060038640848374119581793491200791541368596314213779024776219176728955814230007826810613692372712303762960015027996340037835391355291131862961198142050230834629953369496589655114709115338689715992147788092196780337734937227136881541200991225361644576879961005512840916513856107901789139498591479325941179070848512320581509477957673181684373634296361261778292516987765413359903419676963820347283696672532904110118826650856423582547476957444618736055895804153350607117048765394253722597135261881730403334634725176435857099271961022826164666074683034101174832187172620682479868474742520925334991432487086525944066869788700476209153266028190164226511336222695794802555170396142806437158234329827464599186736326999510578642958290540594040468279058391846934472071395049896455137086291625670852507960968144436713116910446317960209272414366106223246565074312210188564739892090239474241747955609592982333225567964562197255322712098652803635281123827021947478686157238986588673107345770485883616901981359492691837777403855073278859300508600664903079809980418285351406306489396516052829942191764828494986894003716522902159051375801559075788529972337521318873600756890420533839729165026747467813710271764856144077992350137120249603338136699164308980318326689286825868371834557316925271819931877940290770943443689034630489389620344617526697875660265694341984722583566565457737344181611523080078427790123341398485511252357017125325994704591734731079843343601418439366195533970308611036959234599840063151169666552664107925662910761791364520189408598892765775750447480257863281031676908751895110085543050256711966394670139745262397482495819300010522949744465878834235220000061415342673351581730528102134406625890219311589132753880456325086174022179530550337923476169138980196367321901112895279183625693196489121085766638120126451320667595982151405154983525692113728388923422661352316057211441581700448076212533463382862205171456738473684883603595751875661085037532435427319436120427496113855839320856679119078483772096921688360944006398011070465526519024011011601650563946585401041842936883877565891813722596169077031305807143535769708445462922886248932633372592159405420860301708014460363163837260126873796057568971264599299360268037924771797393459222809994797665956341494330307112024951100068436846869301264546963213543749141670365221754200681048626797365739333868396694744019262544843681384118768807676630777080966190220747783008643371400927270922316753462643884735430123402570287418966130925450781515936559201110846982253843835278140678714329210717791296568801502163118605966933450152370760403293291478320042718996900789885944853669548336022007700829211547764464344960975163451217029162851939291014861634062854583731086493868282680822825443693134406622647768253888403415522652834791272353867434492162954871958424786948696293049684512521142642022791717193521077690971777302098247515158033992371309021085694864720318396872039470658435685321670068255503759898498716693312208802609425926756933811341703064559668529925963770895979063346539287199784063207537675714600453453522145179857549382415729067792761872034398533591974340221013318710515209034363437011334707886426145713946040738453377326807138065533509050738638551526315431421382520929256948823840830356717392138948887095695751471084823494707901749646380681775734750433170597421856625816939134933822466306039835545050568452578561855493812856212070219783536882265167071914722174152873091433296457527902813311714812659966457433438772062633445109880816210011157794361761552740211025723494546760733771256424661029599279325862248507792026433724620623391395095931787772136888021184231951663158539380183828936318221259878053062833056551266686960832203717551781869442933985991234611014860710248902622643766243883504695282049117136873463140586655294547787352469404536725858459444689841113387458060311621740323149642821706372867429464786709219358800024649812511627279187294067204094136737250398143179060127672009254297003725149254081471976380498542987401176059472014596262460164957399349336776918845385601440075028534450588275896221235406206997457925625955577708123278611924949575063260998527636469037018599589190449801701523071988931312938008991004189606757790996058007931800460631203805145486248522863416890530304549658085490712599832133933300315646182272234696856308575322606515572729810512184252726559900697331718354077009888367115429180948282796364566257331572159373879907214310516482792828472006481735186315567215168200289842352684078871320400632093447678873218397704206911003536768923438604608489401655756082104172556866649766857261662110167694217772129452178867119350066747446845762933282202088531493503565280466776774272735483437805958991367398652685280092701512778376361572140305595607323466604998994275180212809293690103080181076744970027482054331571799929131561118154601990104360736691703404307789038448158915817749400683841530147771954267703550542118150626458421014136686502907759585792673791503274865777642977747058910034409903102778213645214153713399797448639633000242004324470062317501298783894350680411893844247360510807514034196273659359635227683875353746472714657004862651493555390557108928986689464327096653337692071798049625552475803590622607651754404585004301006532241748378714060844712879278664713426139424676744356053604061888289009987899237508799483476440775857174031598299788553864122066077254403047720026319321535775476942629184409085335287709025570800152748387348493714202238444207468206113857172975341569906113371525245714825261944857223130792255243468360507186188455043374301544743104105402042919761405694382350523444325846992948968966687210779217939000269108396227387364342878688266602739814645512117939586226812185664555216511642596993463866445085412785702224160618304001821092804856588865437301781867329381429328026369824491441977755496305516879368245699346052764877071086697988185436388206885850916715343998623930986210117176594376459510544627929620056605478729363540934102964068170166388269675988483768757681376979426911393896574605781114658144425133944861224551588793580216209629019575529773145872418213150441524884287009149515080849910544593706430903686709531197546672461043700522791227900404072461506986577584603529417311972226073457046428765160758637142258209259054190054713931179085894722493157630795262810263935440065322610233096831967488119920552741153726674426120889146696251721675866220439768236429046664772278138079324094848209851991797936294661343322109661431129912713938281496956085721114615001460637929410700389803296445251633173539169937373100950929233015620487484979068067809190063687227314343567936345244240391559939845843659342790982909979746269748079393345602992670121737767379758636611222888076072461183288027267676465415837646800556698163369913794363802810358857286630396639328296554957488331199458363143146148853648117503016705338368939213404232687142012751521781619791346400398659124025609899105182789795917306339252325322685971028687249143279320065134832491541360495439205926043239803874715394323734997235682438994996650253826295991951672810166715320525765603887721437074467142777845091612590209631636881841930249039865294094514049227600201361931586609902598666030304498586648736363558727854049145408479593451055221478677094467517455818255914316274664465425760518302265200444507287862299234466680487686060995356230749551059438576122909648474462172531979422360951307891460503743840094208196980535184275383162595312756416679472386285382413382680084089642026202166553112770973058150439491537543633257972943462633516817092834788369430974154705863398064366657880279486172839309352590322290161197896267227491441032839623642748379524357037337964605741693159110595720753858709128926306368712955829308300663623390380588609798216432365728837313766610080526009872624793503361360786680403890372034417741993440339094129162651551614185695279036385250241556951438087697518742545166136113991520528511408801478105370886273803048130613898480568963734279144983323646915256922397230956899241202850569671510396154961138310511571192950064865326115119240249400912794962084020499305035496994452664488852394214429022335031507249313511402087082585631191090288600023362709137324396243565001107936433113387953327990222653762967747111204463908946760930070414183653346050264112071731456633669892830503199985260532265046261683579629887327099087860646026488527004701795993220618741542470627368985066638751543344483305560234014887062957123018432350424103168322397863368508157500005599962013837014503681205570319784074429510600930637455247554706842958048939532557047795642763851589050367251215196295458078848744063783720680363177508756619290744251189425150880227847321726845763360473191998538723745043577430527196815189915485033448414980295967423037940751488100963752980947699165328007610453895450277566249613620916552663823294669197947340555617847025077811497583544119878089495484204322692444178184408289716626909538031085824548837292135330426192459713953653542821955217867941102345763233238210415465870384416211271930000792864755452100180948516291671209371130423821751719398834264022932033654412694913313653942399786638341720722444896814876664335471555371566396767436042062926322774966027815382073107943415971017122204172698288153832008883413944727274678306359655498677944038970031192325126949742917610834205379097966738672747038719208806001481059587073043488673377707813879487259300264386460557280644302316913076720911117892172578445748680591729155147094794716628119321576912770992595850524072339653670799665637963339062864247796431280551195233973618263458656492826682909403110836133252670281075348469066233120135308303720149076447222276988902978814908589889863625068803220225557716505608416278926186622000001317733769845162557764130178152468556707631518489688602956570083267451224899104874470460697815229112130566807832924612434070387405338665928585127739518760253553978916334180940510696693958724859903847317297190986089774553504740058464728526920378885467577404818961742203164297448082520900096444789240116268390366271883070478189430357836134389549377460453668220788909495972253784409601877126107246369349109370654852861018035667700992743378986105400603703937769660571073524947294181800458231247876171604512947000736080156884150621574755996648737792480665099725291553281095146096807596151072650558902018589980787848326604511603035364574811089614203487312579162266185339361750209800826550396589825746757965396100368906963055393515800029884018626579389652826476013156501255543778890323844808355686850075178602123940175834336626346650224052729887314040848368099229748524592162149384871887731769645775897444299400298843637008793116320116920399568040098919593300796744706898040790850001681528651592528586394834493537035646076288157554464272422553951815909539721978025099167191383161598470950981324088190538171471776915975540269789235071871189039999424854329831659339466944048627897125880490665651873036969935538806946292169150557572343881916722675092432711347008433705321494073059912895445297574392978326641489544970932846931639260086961436485670827936166374107645492794948004704183797238705138032398221575821656221371736354531023525822121683031048256016945205622403810453376955513067686710150887679019436541305477388001726927637210660619186804124421791750220902483205035637081598733146605715043327479225152804983377260932336824126581304848114176259068896710474059784746555877358216920908767415020128062542163119642177570440029475881786065874903456698686085265259516932167618624628205682247912485695724618299939181391213497355091087337418004208391600960463529245737627685786356947113122362443450138256719413142761371207953290143388110700184818401734692424617284416355679205230327300232973477949638459366510617676615161218418914409425007646661239184453081363882777007367028861006952009580833099624790345297426187029589477020132670570605320400751336891491136773415482740325851410662228796432625946258438310878730280642844227293110609324265792340319346360786944199591409624960788306716974591212951081825803706296787685015255751305872901834214635414433476134811206164817305028940989363094437390639315772034013771700376236409681858108322286000446668932376683672840662644816502381723800212036982658738363704850492358646974896669510228622835254707454646987513772667912561551754134574390356177195377447753523160878422710178082781708922462925173190575632426280850019724318052117357951496621687373187356879033382243956538231269783498845887018667280626868582434398174196012879708889968758640866947137991253992839768119229503817246151655824917811935241227241245944727771775771115301880806478062186587718730963799631044926139932122139636697121754268988734399207115278616319700565406469349303647181580189970168820936458010587041468990323940279601485064938626309062804122297895216717079940473116893448000020100638813015416116457339287084609730954068004725972014730005647753327446408718998359959810652078604099735063544055408718712245438928882935531756455646816359592767145704347568929854505353931882618833479332516922072125751741937111564171452703781850315582710003698506850695522651500023970686702607836500298123866485765085053607185806317126145356554110082679000257856211704241626866096550568653579303293481934217105791083965878960743326421062340968137317225000376176841023555058097203305332648548627350492705155646407187006023176342845755392076947862816312985349622411310993737314883186874584520311777257511117581085060075407278002387643412175369255122306758342992902147937676492158804507363957902041035637734251745723883440852090800979917312869739342505861661182059560756912984488815679524989650068135583411142122123982249326627453725895245219019004030875850986213376316209310386874269342459597616636556359736922206084412141542540843715252928669823436203521355207980695769412010103674976581884254938519987717120370736044219366115124073789540976897589947274141955563286912141052028657578534231719743574164705642951885842993212292762378364194577924102810801655989225616479993278822833948888955986202829766354095003440010174877321396979299696463403966828323904716863702125525374611731892445324043741000732627375807934480344136073777260593671332196963316644872816749923461289500595927048458301335597726516705426756842475677692766302200659691207086374320053991049177499527984799792147508718470178281678553525498910160441506456223394787166194883659279823372471402829576663854058128016039646542116861011171535879082732029512312328166872571759771385323462986491639546817185374797764220485537674786958381632245253195705942877378493990369821021981245252778064277863529737320621008013925240031155678918681119303906639805463727300748076731353753047806084911402625186039252925164589715825652760056167218198765206870246501951631895738893437479909614147416195940674499913519327401862781697585951140121316107949841589879977824002571897569263584266372263388272861244704429422064406042133235468498829990420051500770833839787724453842352861387148041740005393162713129199943071574406843674903980211797432585265280427893486097582727781695750696555793219943870459350532595030288924647111072487527229076695517743961753784525948505207959509086103865777598488702575275481770264855863429990612352214396149772035534329239936142108644642606254450112024885011704380677366072275139732814920594411303249493177173759822412509038845348121268607022960455351336465865827917279618318034820521087581072748457952740915366836612335702440373735292596874911997789692986577194876958396331711900078826324939918668556858597199345389508350141601021786810530196339884617138850916458852644444004554845127150383074560240266945858520727323698260058688288300711262609612459025102610966953344540360761711415253022333301696744815380683332638976730043137963399156061239084122885545948257286967558366806940503178115982170925011635160182238132231965580586240933010050541223018308161284995790390572925702574840371968445995180168721341268949980118350574910950959285922358247462283160872187278504557711306157971777810157253987521590352654745274124669881186126048471161487844222218465326553351647225349699571485934799157207881904015460624694849254583372259412890925071990154940392835810219254277608405037517402029050739160177669101099616740905346072849546918684515374712948484083398355006958033785806177076037485746133589217795865975438412245146253986699487285267334893647726444553545062272985364937256143521260300965515298105192306084526369428271505316222808141408134580769237433934816685687097887647763193666103703195573142971083030853638626814525504838717588940765569800477303561998087771493387188891454455323388773312463238621676395624877870708886846506930635118202384759716225692464439640350723475859399604048852769729225459121680850362844473221094659758363495755796789751141058065494516748867447670546820608635247081255292946790031813114081038901966126702424548068638481884179569792933352011988449767306686299321109630525189542463071232285929131625188440961301492269702697550667364793158939543205796265990560921596201616484646228367649650361791695679905466531949028960581975517543949292536211051707631915269525340201195787648670459096463227337568547375639292659875606017221648948726118740270492097012778974926948466124535424640100751186371370166352164981678215730415959521314579070187686706663646192236437187137041304581393226564021047271632314807365249374291346636770353941368672766156312337345307225600470863162581822566594457797291747642835473434450990861912687104770935819922177739801086548620535969299991654680084660743678068283991867786168450149911984937192301802603104468614799705622764358728959721785390779338217394569451127649342680543178180567019371674933138063987523031847931410469540754861891789103073669615853335515998491302144920034825789718792921955276847191902012269171138077844336650849729490195312588961585557722782244789622655463165740451542868676015671206861377076540737358653966639563539074070981672889289182303026933512817308915318252321837866034115844230604032571136152456167559325377675863678290528721890580252015682327431867333438240152027752235741056330719241421737425335644752405214990361656107787987279713366900786274343217040228629354364540038703141965811425718174173256007322118506009139444263320885912062021094357302093038341820233768582550540106926380801120543367958889192501167596254215027965511344061562496000755225129602354893922430905025143864612226633600461839913442648264185891325496516910227853990837892940451074936807369070262613141668935372550217464857860760086350432393374244094207450763567574009651138649102154354905865566604868748932561477256901214557497890699131838718765436944452759342739357727546052679017468286424625190841985663300621334663795778558578184777804525547179679951370621000926911096501950823818275073590919273511717318064559411159166835736176239642606676148886380220670801606991505722942238589373847549263998218448176380940397419641800556332132365379123355532149690599599944316201859152850002929004411180487878441823004082258224642235750133986309337174494396834962812389943468664193194662554442032307765364547575609166504575038699919661298716209748470308538552225934444468579841227315062349714353176089253582435614852649042722063040396239559278908190766892590880346230355178933179988460170625743803647286551185477836579679552999455471193076046246101215105005491874451229156776594566740191842313496087841190121694570046961715258216679917798599365477812983189772881480467895975679466487046502257002631166841049524897310147817926123618139792602242200220279537287159198583596747494120453484254094744074594489162551812786599963527273772109120245172687399522300639502336779409092847826973360110441959019348933275895848235808487999331335513170571237366456496707674431139744968545842597647191889030297869543492060077418003810787828517387702543431490137164562504784492624638168742758829869080416567398124036054951373829782173560329431129469889148402929718920448400761582874269067787223653363545427450911256481892740727986966307773740399493312251591654716386762017258849364199708402280075036102829436764226222338390762884902727843230240063420301536677856516599481426577485514455790050423511677114574892871647283924067070718954474290713993138409122711208523215404573896462103317337905655467665009028940180717421287216956052150968876457675664479056494890686449842345182050686701271823751053840829305629671315160196555692165406242703426501819732163971879225947094674143583843411262101681104703682928806242931286512787166630691042347734300918946109947628333840503704552091851744071741917536915363543886921064129316061516145881635105907449106804651592693095258163994505171310088294443188480891887429696605537379737323959490159606002582021787319509922409407733700877188097815632429088911200643067003390233991045896594056488778204535409260509470282641530762826528777899044819072793664761687159346231733576095565728239093909254234666682595410458475425586148621194166963449345188617806478023785757173685533807156592852734948089572594689067518370109023094519110488650360310964194823422202354856432635913943878567970656146606363574873289881123340136697973473487282056800098486825470673238090768943364350837989074822621621938396832483468175142132105862277099019745699607652081870140736505628185330545122928950614439661108094386274395755255238496404306512236589235279086689050379327875799774222472285419762106717311681883450960284108631671563280119915715081695325935971041940823913903205394643186427298900529713361008762156379432885207148676090802295480826201547271671018932604283326533338771066771479421170923313489291506690509379927334021907223145131402868235908745000157582996885342144118595910566040093434699426236998942683994086966565441488552763253382144155487996909597874742146553151292798766868030526492666544521743000330759241491302196573141003229163849913866128831970855959250420198224008311305732259028134876649601394532930289611929296901028201353155645715312548367740722682636568009163112038966749279765908737735538978597313404574556033503407702185288829080260596660575318268714343260940247707145636078850824752901848377078002601504166598898634761153212592017873477509089912923694184687582747976079949522255735228288019656972231294101958803147492486785148697746071469128908459663498260850806094829384369543334419133544102927435720751513458881250459536481820022016144770389696400084864924004526137757399615960452159577698533340003895140819865234203635326452227562748765007306812572001728543285768384007759791000867748067736836058061213910004076898758298534269475051044808543841841781504700618425279031455537962289138512225858781876303242904360034691577893929308045509751175595703267920426011208867121221898064907863150819787143718494663428741945880623973907829203683276146460005620463376439169400059860884336698079602423082409251146522878258289666684452019127418698712034766607379776501405934830515351430972937803371928881775822612135946483760221891360753397593781556498020321102605334541266080580860798643703632568571030268995846617837901518391933594494383981559817811077578488363167084224689561666636456683394910549506353840036536739324804986708179191293586486890163906860900579840212394783997084257494339002261521968985562579534531150415626612778753510489559376550757826157174566833663133109226054512081720460198817549004941261548028507730909399666939318485588302778476499285198978120832445382392168230068102333252721757852928857900264277412174153878735991305382523237829767341623584176477693161393173301708233401325588805847775650235795329649060477956336240466968990803079399999404294596604477962950452527280235980673975971565223950392029275583133314514172978608272227259512468455111565955366522833928875477035633612052358791283117164392112257803193190072237432457238570470457863357385691158208553683015781640692084951136278049166245599463985070606784510650096065424726725070359738718581968926465023443355362762919999274412446285922787811351605761989021583232007590601090165111310752529143513491826471061962499674556404701894559611698727149877488951739569756077443849884480682867878456219898031301138109529237420633134804011738960032985970925444798185614964799748072387056364295645834136463226229623223957172026586577493486389723597738837611658729983156032568111698303608204732866621673164981967969833571744502326071129284252725494731542426429607068560587946348937614053798916302282554135057057002754814436167124202418391975248048510640481546279960071808603004321679423055496416765849907937409616298399771940093409826204637564038506126375660320844667896035529012403350525742440485987061444420819571617991756755503232015176984284649270673574723076624570448288441611734271678202588412629331523799474561727971892266348400967608148725909351311512863480503470516214447696703632052516745169248676247900470096128484025884066714836750648868609494546598224960972323512828917513812576339888408765817165869324798715572428222609140542185307060174713545511063935336082847979669973292092636116233704765920495912159711017539301849980159596925287650889836032214085687811811376244665206158430736045929366112195581030854924581564935815458200347099574880005595226400443227869315812089531071519758911966547333185706697900421671222473314382397505668100745362889692452911962012062401608681733440348172871772365612495294688595293260928598210637793499116272927408031616291924756509503002512322411298884407746371103466723389287418026355194393406258106550818857911527441213652937774609564138568466632010272187092205517839196012275918363186521900196513029418079789721685706363471552736420682983638665360879204257083014204640906173990029564708569049332715498883495432945670815597830391383370473466655425655242621831963619055085849622717098494350883065004016008392659183972996593239757625277427544903031919828696682160798659118719133048781405785951727237209497252162147416529291242150107726604109271973460628781216283358945251423141322781349121413653550903946553176305419225110682683035005412207748415867719998527259799067710232200014921233815421120504572550180491821865068792948577950005187433491601074518439830460575984815473101850221630124618345347172414116031134500178303064088880124091967364618891846689596430473067138129220184652084895196408463674642786887108805644140038436636121765340930394731972333333850824055604329964698772956734658108038662179693591508414329299283961009044700542543679564933818178948628707836771419198326782540152721656789750731402416329770225957051380767248827263166741435387624382732978404277822100388809443648149505555635766685835430122641617259684090415119063536135956216064380773107110835116772723310449590312537569293340608757190576064803986037484466995195832491875901057070165361955371929361798277562906207923453863531070835441811545581111182968964970006762774171897964567981608892979943474001795829712974506155604231267847243209986818415119982151209795086505706428976975558393817292067787238334178078279227455339374647724717664489179725482275465928131432904427554523693942671131635165005283556164940287612549440059343734128554095727414574483761268206554121643648473138184129567589548013355250703340251616611429493103792802581386932509822286125242061648423824860499642527856733629307600766558325539420615619993030734318286040243196848677709275319921144800163741807812299307082754734758651058994670008501314864306439795133654435904814871138461008124750124143608250656204838483048273558970100940645335379981865393124963703762962696305416333169891799019149376832086042733788989543601158328719480547483207956923814384279624026502648011289824655876919304998587356261258678865873077720070674287984377056827838006467564776956257592761357674028907145387815507598274133251010898101302034721236347940282720799971136787799901946200116663484567923946248848025487485786521206106346991165526981174445438427904584809274932031175379699531095669685944273692285426081899344938704276186887634504421779679016856701392838915100639636185467322471663126479194401907473589782063553683362913899638489517607501610738118396873569326325588341380541421139767915915049615402204499140985995295922005900680552145712210995716686810248782031790451450254521820613205586109561044895586689127123839380933616326718757890690772685096591779229729902669613488100234716597432659830585975724402039003642382224131060066263961785798738349205742682159362261037396002497647985457244704352345588239328356060827382315662089436889810074108735113592282775036622248360729340953024804089601445167114851552404488368991886431725147136027980290513158457527357631569668642469586483433229710943224259470537413123092769081807882636144088989032250537960822471774067858487593885333729467627291784265910426422683518388348244884004090976168994763176330855941992863736654420804797324002107878434745048551900711468753030413844600608058610632922303362113632545318315667136441372907402438358308760146924257540907248910944065200022959461610933043138141173305504749846505813344485712400699090907272727194829273897744344989276584156636226483773572270623357404249449234516961039399658844445915930708477810175140775330270726442085608069557571654334672901457301512644772372113879943895358143887526430542634438957855329192601645984741859256940744296017536943777566327501411577003088111251123558184890859205794467747890747460648107548096051409117147058492998919038863792632285429093723317318590740627836340690122901327734778372962214694178940428093123770676048013318096063757160720166723576999734431067873209923367000493034962469285701983288313548272437440037395265227513783052084280733469592314560551049607877574750544116565169226651215900076370315606338570275094807826435641937968968513212983593062408054013658598883113578859609794090356334806281075711504007967164072423432717275290604624219332629196135677029950016526447233567761115230502510199154118578002631546186346815747825336302495542773701934524629966149332373840131328212282118752012244133890330433207950426616321903695744590979600127907264456882319684754239726625833133581419161601807155776500470377569156345327599350915551756552174053693356377570316373310015106788291003962738199244863088895239519926409183542393405346619785708949553170870399315477595874740390336362635991494484224776354047111462026617233042301732561384478739329976243227943712765924446425186730792639317806857469374144450723387598085913041703521603842418289895479439632642947395148698148028699965366374112360585980344574144568686085533394248074087295917681568194023842093304589616323887671332511033351939331722283443455748450150413464417321167596773590089189713910060959524897720287299546901149860209527636862773233082810516478443363275581158115059355564200824882059161648450750094424476564490517587239810242714652497165018405676616014987651410425195702799122236742324211280968760636336077342951274326911037256862828151638037576100608278013407812184692938934422749156015072457132877130543811819621146198506108225713234177173683858148185694905420672763959192255354031512579500401959078112087315036704029677101217600131711109872205118788411986989111722994014655600998266047510052908877469509194324173017304386038602773064163074908011876931051627057884305501159421783317512603436465854362112161396929555931455929981560567721400344442335457372944355682801453360256246422634770900748144585020522540042941481563995333272909889647492132788107750289713600828387663990816257199699669053118106627313219373072171719574282275110244415586637951205370968282625887371221819829882863714258508741165553386088483123856858812150825976732991292967487354836466775833830089427239329355983705338194813031903654996330942378593398971207672246408494647418482294005255610329843970840509869104980039879535361819628197463154439522844039440914718404242993741268174458823620428224393294289362183229702686434429546186056198481024713441080623762897308704441869771493032033437563681052288886461071911215814087844420923196099474239602708027594375535121471419320898924752065422907155886931408432531733519452346859817274155579604566884289872634434179985419775409587269501306745161358873197580288805486782990925101224989188789761372937829230134298369635724920868847991783484356620764289783114387275241952187515679464561906197021841006841283761349998859869248327564991503031596738253071754811316714939487068631134828724410925568597686830047630607270047459307804077244681123799747666690389539905585155719772599394197853503994535762192490993369776117525596241873576400842702992314203447963893578833385006158553925242174775084888802626465948887729433291440676077425956402643310179472910838455014068140859552973697756446717177855165823587930731197605140440732261841953485387927295264064012439429546798582061377837322820433936239694652224912892224257424521011100137500425928395346570436785894279507549488910865771641650465647684864048011170951613682656444336207685274404835906500470234350161822667611713178869695708332172413415160089552258680609655483614670203100815281578877466605020803487908623194220266498765750635035676416114415681629851514015356227703609400931961036108747422347516597027519767165665113636887017689568089070062645720213526264832409586094882020504349341867665181948357768990606978933150728013513052799451929976934382581403805925557837569597462054571876848167018153114968658759285427217530828527083060169724582279543826275569418628322094797564653241162784747680866875438021161611398328779210312388325170909111252966912714795324106183307473724116449879364238320668312504384442129908890497746719811287773605802595358849392260302361965008665687603101540924669013763426028302838000438078076380628301456442731907770038654032542023276651932964199294598395966753589911808389716730840109691937838981237948121363025896865145530396525063630687659608604871999898290416367128511061898531948994219387648224038340272053782199654955102577187692621920712456935442048324376505793994856395069112642395910837886536913939066684069934343918260707584891401663830955839358532963009499536456739606825917371152578184001322815077463647680967633503058020835696027554302608026214968115123274335978330594799598753412561888003684629767071625498003432583123146618444826268704570283887501171217520690253819102664944930594919124097746996825981782772298183608790800704156006092964063187000369857782676998123088379944200944909716905831465721307076228284423853142739426034286290842507911148619057918372713312054911859569828425766957984847275002460265279837773841537434277016780917649360539674403863538004389661547569889932408438923432254162310363186962719090980967585481428218108270334251184539172050926737614792292707954539546418272390424598867239954027619708736068184157795824771535402527675495553079508504217614859201961696739474046458082034002213794820315253486520469073444860143463712667301525934644007099167065961471253470617727804505134340718854301364295041193367231517161017814869668310451495975712603733779664952777515308202052597224472783027378394298920541527442887270785895366370835296298211545689942224755044323372980635616476522029419084515734101093232925520606458020520170267363019741027887968150454084695786691659328911784525521880092038886727897239829817660702102289317657053672657651851477189564137375523960945170758454151242269806732193361086557559880002576484736667983308368185321203088287609546275342329171670058552081038132390298652770443756097663841844297136442424351927481449810382354086183159391623323257141175074584693175110014979223115463515512796897335141343393967810405597387718332492082265390335044126685671743020751609696507968886804759648350069257029735957085996550431556597743376980417326840990052171850051635864412895624505372410390942587645134941244091012333372097122315554844391699639573156922642993926987245394202317758972814406360479249537921830518193298183817726709783643203784118268086245348691730167728473671014157912206857849864010522844566989210253815218866867222015344512653806845988606840356663578346588843166711239324214695806399919045730593307605791852369842619922814688452573713799090015104157066731367212534969238787348043789679500178679591366296872583126385343686182453491314031987628659506272680985848856594741308666716946341894860419083906540646175091168625911377047501295831426259751548913940915137817721405630537737473052439289638450725338949545044317573371994584192101934268333899313144408200823072882369915396419571327211526940348625469876984295780789393107375662907750996954655169836892289875108692122973667419316712858778948498690022869367585815959558326634074424685639473118758691741157704458181046713134187629250434015479493438103940851402980227018798497623889663233612084946561202940257908316997946404813405946850065703531592500487986713908005025387905710835066043802510790103507028630697585600457365009115596416194826940022771819691514861332115718622315732357862658115013070271651432131051197565270833531280513008155103059920053562402840556877490519414867716738967524467912098784475888947768735292754309486514897216972958955535082806989074884469216665488780729735381615969123171349298811708676341389088069237453099468729826465166102571452532959856157294081417466427165535287833247529259165851060265252156803696096370579355672299449509955821534511581199428333687530907370478118719540506379870038099052916559330508306222105123913065078571085218009381231367524208744404142675750445770123541212670845889742653539255307431888079600346766056577150827286246019089595625426446330477361195635088549886419419454150153075990122508213689413123911041436903738291561576160193592141381927656031385684397784095634020937598316810973259720721232097045552801864882056480903591905898184807411427753710381127375070930811817916635904120530853627235347438068059590634418341874340724530008113066536310955201706357087538598739455898499385086306331860136714871628101118465623391628266820261555587315646169305389683039093994130601291238197778199536105326460746997663767548293122442150938995321888166385503315211060344008374908158474158272910181545731083684346206243593355175410967139099877042125952312585666779631941604174958484722348550089646732643950298530934644739116548636246453316370762659049761823083612290705781457576216425468090833631904144682532283359964169996500611454547456988471042090082391794705454266597993191996548830768925815121833436468994559036432156536311307745535274593986368770412200779349033240624896516463015708389517005790703345937957402770759400372032054899907532045890336923467161172378386576234791181693669331393422056336013857782172967194676125108032053822245572888643838736810675898048866614700637192373676829686122442525304845626142114704428745743849519107428294909861076869517991591646871303631451425054276539009637886771214912236729703237981462830672476569353953531844252538668077887210166483838042348334677903176021920328294423399473596080190721299485777788169715139186947587648956262776575669166553290892489671070797475963938072215535540225676432261492924930115160950750091840706783892895127503016673372350019047461416575437217405564055437628339122942356923935358818194927017002982089262774430861439928190623215137835043798096928184686430794470897977016860330706835627521509065019486521022238550098606096341853404903088942886044069007472216830716019419436771250242207233282506183997017798922850197898694919040004752922823594364374603801452256315554154054533820921435524730117622488880306555884978363156533724238836941440388803916875623876887527046383436736479257898846835060879219748918269744394765277420220312249874439693208552287808319014424624213869707900669023598302116263455022535107505675467901222341437015627611740536988033410669980372229782091638241946214376110329192220158917642933955507757078725356072414121592445219530052948097673255243957447673066013478225546105719487328524127073330201066168455905845298017886862824364244305360968576316166348651820301375280214084852230490416439787073343127822581202908167672215973136988226961927208196058014142374885787926441469504308730899889726696015026351660610073374229969663904549776500955503841733736435623444294929084990657043679741731070625025209336788909868707335292598551384935148481686951389996230829630993908504878260927426002124792632830902584544141222873789263450289635127630329857384938334656661978143882012223530262894863055425683559612907243254077384380452766491041779292139974099062147176012433346277215543653172784238544144790824519364479089381035265297734804865002649832831002412897223845249307690511110046179923014252553278880930755646370529065071362724086019659774115992507363905993965444620853954818308147302494180002083202956453989061902564932425709980300975577872011459782375802692699989230400879471238594322505873410100930894681452106741734063726620874600518587794672753498107335867321808180755795860414655999713928802215176974088874181004545413304751149255635121202460897629704193484609153748719094471018826057890687770237023518416768328312018344000877946048217540558347419208094563002663740338104459273847459552345023047642139138876972160850846535069838201101740941641551899086436003635938057980987167896507440716148862217904111617967272839995920281336391620436791321896537698624746636865606776937174370882405942298062601382200564310148901861732942601073151958575590512625249915199638592852298926654439260134147029555070847281220189634268611437012565828681210387941348523642483156425315409238188985205134002295344662463459328391079932085013740674640598778510997690086060836487474789519954432027507704243701289162430704193312927588020713327374443455929346514949300595984612630761498973272502744754701333202290919896406676526757499656486331241201425728199740617976476272909994695946496665291286905055558638243971474504645341654327904648835817007069840484001435553790630246465948881632422098930348301793709671643645912457258460901944163597878106372205502959324430816277208754660633490413901439866667973365992062468877135171564141873331202413921739251121864010264011038597361443117604140702073736319064060319328996984669413617831296333264372030599220706209815921745117884611181983861576319183861557195563762098592507757110287437442845581419424155347963405962183403648082132030045473299015809840706077160015378467800029145814014996071722184506108874267315049572890294389702821368887963194329985693724478915822605691069294588482688125910850945220630131490256570509912884498227154828252356878929666445777048320772568018538920378050440031587109764461207412958286831859261142595286996693219459624283627751545907366661106431876181512432496880751784954749171806663077891825869314578101251534340747805140180331717689367810127398903428285877694630460968875075325977285594027407466584487403248743465662736934309478414510386374908290179401153549585983748846293131289084484901680799183070438936183292052539874290277858519305277065560716522408833717045732457258853970304882074781538780633585069257051589653375477645562551043485690375495425000750187979490076386935486165840759166481350107682640388067925139691782346327369698303479679352937419512135044787879708604818097346303052602088947025169899761816897011142169520916555122006933287986277711718151220819062598631888064257536204976877319882664506961721106855236665295919480728708849361565341739019898467844901131242619372670945878806972521319219080735231137256364253701253757119651135274503504663865167271998463400887557702965232729827433289720956302203961967279670225000062670341583255132874058150659123237537152513214729006363358331304266019213138716540879529873783190609496036183742467685877422179679321062304841796359219396603514287382596538531066639552418607294189088685772060783583001122075518492606217249642239358937198851033502597011768465215399870027123533051719028913943750638358875881257967832070960561689728924923730542449135005437965342077804419427924449389434723080714818092931307321011680940370253726862975758821038347062436958006961896345934789759266655196118822792921482294332431695249514651695738525760433358181664186796206677627356654785476934805399060088816270759227937092744888566392730848323694532816919107230486105755127274596140614194171026108053497914083324787921435854033698137784871674341835638760652699029842846815739990618675306498706393326122077656175711563119730189549528784435262026707135079120894471497778688058084531004174114988457367341689820948598419937022250428330263572602685910401049166008469160325294672291297575511750136310735003342583227947683426468736981632976217018057379887259536087413339859852650406749678941635795430112576105215628946137606533841861737696730424669333454546344612242534468094194384628765955465897382890016496535515750826356854670258908485283595532752868662103063916491918128846961745866970861719795234849133429819416220078816057885514952084194268003698901833067169567307450553283014558053981214131962655042997573220622380308852466298975003266075100425249552312901106574674553542201212698312160995983719680594774286486673050624085418659618764001511208281786643178462497891302455506667930965757305158773375036871135348851135806206794984772755199013486993398755809982313877325687825479269895810497618573683891156233628489823927007464014528916281601200056986265894300298241381313118702495349025667703258130468921257261116826988497826086487007138773106034026869112563612693795955360391498435199717440369539843215263825671649415870040839473142096568812817162949757796529948548819654716647738879821041486541424899079230831358753347755645316252764853050733111840248952229348316996361810621101187922123864314160938797722964998071379150489483859290218919573038220090699914585829486838101446734505814274081260381601019859417562659918850054608076901700552890414029313047310758163058511447857458759116148184281827078662034381183912064269701475142508754302785674842803135952095805638522336772119337436534568805881349700540429045190981607583462379250778526664305273949294427470897866329227870327389639623761468488359425482572429500645512380758525550828289115174569171365560869476428695376123661265093225998766391919460664496191384967118446779346363010440227293878126408351133809994393681914003146027437057322789315143285347799570966470394383868946814105522464576498560119105923431615222608521915477894063089354769417472782586286050570496230110044606163971349375341418037459417762584128256821119226994992886759055196368521664433359512152936670960605692457645198338768955892910682829021474641377689099362358152070609401631440503762052918529717976956603542524555658235153536246379432352036800795358533384188783682667457386697920586966562160733792803808958725202141648821516208146912192004297295494408877330358582610569582182694979232027609246669008966422730615775984493924787604603463358563998899545353871994626838434042718360487535978244261629768711962109891862741800012116255534129448631051081868083145251774818361507696512417639513579270352113820264511089284532279309036433267162503440715335831680674656644532100243507673441944100842799525008588561803389901030269825908541089306850779358836690700475936961362851985016679915292059965466576080577516074736342181513885702141448364911379267718353737998509057602762942591690283806324781308949352938353106448952190721727467613126086955145873817697355944700662504483886419923608470822174607309507695807603563166257937437902145796502537757796743764011213996905451362856219838072938853941806846886481616873643114098125253085713675337004181902445808904487404292273022121816239236092074879816604065920177596490000036711553565023451364226264892761194304200543663413849204151459403017337893445028351094778793412560605952303999986928949263501332077089220513726106602013180359708791046728040663673228826515911307062775014167300933959002639845047263874615237116043248241272900461548450776179588053771768274277241527154594965641803887024809069939460788585254376043572148665026322577197647158719169214315142708445806575848587010461998507094061848319955628367223665649547209744067029956632937574424660112958732335725855752802355982288897098909141647877419060103420858439531537683927142516677759307725737830546879536857021583964058315499902297796037184418146902857483220759066826850213503307911319420367979435704978126629818870951625897669245509715853247038853106361776725248258838925205113661213169793164170030784707587823073649380821925639453624277412775937216564206360791123164473193289775263803314060895022596801051702697637689707136876742921563185124588883654361914314923306849170406844952918825247768836051494416419095782842608160717231595123645214709950735442572398159106010706784998997949453815170361270176047703640512383684744315037624863767061315375899460204862853506550668211100977702904492250429227479651949145874650889508691882758154939771684556424094801796161390043230833590403102653154974187684701376875283503467237562337475465441551631525330554664490827042243179422447595621898810519706086342440118217709601412546343240517831643035873086982977157978240760721228755028376713178286433389855354566149523561538396658175875937815848051721645915366676695046161675208264567120833421878574407081575807703599700894005662239517474831268294740286769794643850610206616038625175044488051223933677049106165926553817900215810472090624072326742726532958450167387906315882637185244403092076005280307511588613201463071971749645480104696018272517328262060224122975123116575870964139622913624556603407651486550745118410884240139105083152858038489093801006793721724769211933813669810863054674628074030284993662549160606913568269488900646858807492030113361013359911500303608562964538513532167416628628078925004191653782840130246048053943421883913996982605247155140675771128945233686596856150082420801292947604096547243301398184131256919130417156097779448398068070512572550744089635718586600549957757825244874822626519632754997369930794288579659479331456292984463316122293385672173352461958423233949343773901549908188759044192914241724515244443752019901344354235106628234240046644411413104636349675569459816984429058014008233236455087469616426967977726808778033914322735374336463407101890938722485287717397267753606240785752105632685412318344730903228579514016611215125797857931463288728231996461646829400204072272055347369779562783560942668827421116624775688390840910303143991591863040959399522600508669223023341015210456889910307425130383613292591874216171792836711226832052979258613237362388942490121353913506411344829426402964683089061732368793232257442343326389539025026886978246642920904463310119831502971568914308906695989356947670662259228676866475843625019375113832312841774032939815500923684742740901869291245001536678055838966421958816781915226178567248700096343860214868763111298179289829056996939878708467901246733047268028230342722602204589072118135579689413994649999301812255386356591953616194483907081451945205244629372248964323650846325780502028907725667000418552088305927151345749782970283035193695859635018995882397037897866442573288219520961591131080503014776837518367133137643515754838691661167493762551283592823038899717327168830860991884376320417830695714889003213595938756197526215534445557410525347221338948380458282017080768647396967061272433629101489857924926142245953069832277181538514398867496601355845654084536381486475432739006104094544538988878996159127098355230987200906968115316219528503810922618773140238727987295323145561584572946389879768678997039905235585818491249209992824210741748923427523965975553072385360056401013119970891953395438326500766716884647886842981820691636624442559828861786087253045971925785542403903984410783176277953198011793074216004151416423917456201164076769387792979518465821794259987682501236097355608219018785819644540018766834572349667206124040343041232006904240004478172385547434377774500122567539821656145528506511837597660051571652318082333515588401970646626782397189679199000747168231989791512503371816488715188077495678357776854046266205215260717268421942524162476955457647454956933403961977230992090199987158159419212350728532748291106976368334298203577453857518807976361133758020731401980159222867500868840733571721710841322938341510890537955971992186343963714161038013949136381146177081153042844260373172769545682809505213891031606677788749345807946649970276986099290576934219659308144901261078577144035916920549406956667485572793887286314928704254189201407782744981127710465861242672554282615116696544278893366526408562974731311615783189143196787841475722536536283568104255905113939370720052403135757530015235388890520121012325089173585144047846335758635543740861103317253188791047473530674300030966078581117306664610443357837352437938240020095867955383148990799038171621404181214752320509313126133937587438889586436704058435590939698375014121815657630542849808397983506018235038289597860209215991656767371187236403643373379992262266334043344789964303325147955208047742784686428568283202136658207420578816249014931585860375778174957189857418374979962438507798287629110331586931246019894747614724688043209452526549496953470360560033714296718520226041697940503531177251397400891095046383577997412130351632590401827949490567510132295042848177277689246253462018482400056815146943266562400291613817074337044143921703428317077812459648723750820707213340077099675711590344339937982598747851564851568024438453295611332761250717004668495103882349734751603961120473113465476034447355044185839344179046482812694089288426358709455086195302590093035752331778803796852722374271053717797086085682151297035746847488918189741523726510274592123007476122106063689821234489115703168547712980744767968126639969696210072812463304519669268420921857428966621659149333514994338185580110105200621718137236172444833418327370697381569948267746608615243262244423459826417291543958991375880762348861517765345620891085473014444251147590806436248709688801316087857207737996129943157813819009685911749151734102248146643459001789856586145554097777563900417374833079508299927102235600271176028671128506308007257024769223641325378684360876107859564788702840074697117168268585316422939025057624027658821219919666658339600390889101714392402818633116548180888447563955276444440647275970393026315973572771796949481727799100992080493918350076266849183052948979084818664214412136542754073629988063532093552095476983183601524395884837213986231465093987235984213624658315090622726496880262007701554336519153393950897572076431071548008477248114125015108432799561527263382303448350554722047717151043843133577866291618248724127771607893617232946216661634525236134814481598565005902139594694452155111560097868558045420039850010373768317644955174760481470094231303070184138224835591617216873657940662265377692196737712504276618977365881821271327843422881913122284620392546143760062663704694254514231032960819939924522238575565221552172730127317516338217556483297712998170531707932007525502279034432992706333908027597497942822786813142875545198245440521293981331928196483604044719054651585575327978657399910207243092381473868003545246918336185443641333604767413646484882077141648455201619952072108629994747176489476729003790708801327487596948497787841074317684876103191457978475114782761065321904876512604318870568138278318942337046206164210652822763145930670188100104805039604407827154672649309314486072654477076526021742035798093675239647030311074132727096162816835780929456130092557376623904628979895017105026372989276663694537602633666722312062837258963209566205350288414538081864199898031837051558029002107695626398607441498449571065647513572310040045551280474792061415936158307937665658527019865700631363810666957679112853193727601800040549258190272917525211483807900683319355831857632088306969742075734850732539361658405816688631831369308924282571455668298031511403444596796810900357758942103938665056413461951282582687112456836154411042381300428381695311899887195204217675818884183713472495494889983195195684420475422017955829598575581634370668456693105298005875848662043584944786650650478023079360470609940394433982893181599723824225420006598649297943845146127789402880598754870263642879569527737472644241397221349858977847008031680354239360730381676486474040486651718828278456709853460581905353429710614709204411462166361529655608345910752403128495691372672431742029511731715404868375589565700776598563359752983719126555139790442372588858708480988071164370324560844401474659268464190914425382228249023089020135871783326249523926612636760927599243165027604790824347350385968070722621156675546326939605595755298954089116906374884069596780443326923658270972274226241891731049145638684250354414683445327795864696933707245080829028801285008172373450980061051636866961051329294277336575063228963268138777884760596105909220617651945595547654285562207395665566252780090508941896277301362072381866096611657837021499951994721616520663435310530140534995981953602110751719381558481187597883910666539516713499820799163553319164955710430365056855281453027539984536813198784107706316980792964540304339464096732509735109904565032522994432062204434183942011995856094441295820414635587660678022476368456425565009610100829609272074573708342194743064084718070467055809621986856387660813373952785068300583480832716333118565842932466088446545769349191077255037737040795843523099881343618848336546606823491913385246598952761642954601263743196096418118200974022237204253202916149806026466704029539150846150174131999156368849549599953922088414130649390759345451808007147244830365349041035290186991051356784302696765460746776409222699802705445073757951474395269577377388642059550689146266038999775329772399760352077488265330872207344090232056970341580873737950953057001337277958792013662466743479159967221063387090832359450243841026104233681398035648667310682453774965112610191669166849307242776071089218120242437881358958928854948839545835198213546692528992342848875943437210804143566402682249244479128638067900696571327486829783185063668491494587598655551831004741572213577741567508595672889974322072217007636789121880647483977096960529100073368744423405134253781070858456613778618159577591049513910298814491052926096365972189803407224684244261608469897810144344448139744398163171130959192861626461220200256942974933768768738740572382274618329163088584405363660922518833211303780141146695818022251423413373642672108175008389080988886596981528214364377300506605911599225334625716340514370612352981179768043299257842499322896515347019882652563222553839725597966041777097408111545898701179314052518540768781395270864728690630046893040143341074586384755277293820181968643496144600545280973819403468842088897415088414644343544495254104194100293780846608207334807370780075057954532377170321101783761090525227772980407293485549214996395932694613191728533427371992563354173147595718975401376917139874235440181976453980774574983534261437470831384444054205682826077985609094864500969297016934779866557079795926620730808407160072080142628753897870956486391175595824953268532972314662186116512468784780853753788630994270726351730327984526522743657919701526972890740202151346902827567408584159915542006803644728402956720477118402137665636951039672123893281563991349720148648485643306793701590486134100362238045006112092095778977071838319912122933653669114951374900485949525279346588937057834983391388200402322185119115150561056535107670725628271380763588396403058406043785303604140130572337013834010427222917812074787932870304938406404716896289002338284607113343671955819206212038553434451797654617107208950392132064313394414042355304546206816416216433104971854511933257130710068628632921728624666664384814153400822546731339059007421828635860343156137112148160646657293142083103521070036161663089728801576733622966059047259618592831687822415982329710081029617155307991408392952250267202420136414307938383778762481277114177931845516185619849138414382112089360689123853785152813055897285958933171438289266659509192425041954083437373236897965570512434856423385170851153167344726171976675751528574195248920117792972536734357936793440852960571927181985993921412211072439080604321260595618466226492663299079394036580599994878070681723942079919723944187755654893097829023215553815101672187345981247135330979596720189597778508237429948748248039874142182141029066216621744577233415557472476841433794988488426391434576854750008905395739283302967257033186815230025530668298877145154838336282086755780697954412983182828892138011985818304985951717565931779853004732590650076452761629882810187705639425027224697285184024023551799354253239234866091200143046464402155839568077239138322149480843167003112007971265483493243448163626810888567973910746702860160958042507315977942393202664464758436454833774178379175104755569017984062701597134809095370633326387982041849160184052571813937227524865547260210813621326664280860969101708739117070579402053268338374798046750772638103616306199342643896463759230907821596837105433820531308628577120652630194712697346890329073512528795898787546670399096710209555156160843073104490500366358857310063105702334767014229834875702487962795037387209984079206470070001565838418333103263547947830100126428585799886514423869529954470347474557151922834533420866812404692355532479548258844902905586287202599554760236755834508246492795327855249494971523529957771565118296165533405234578664283284725126444926882583393648401313817156281796238321985517110322590046546826052249920538050760750968221667236372820622980530189242494917774449705725668203257601973730503054213299577552230952032092051316496491969280093595765309671265500876328422212710496266002249646432714525792037413424888525946526205111377095224850891428536118027121086020256067926510259193556627172320832956387717431168975585940019597591812182303291380271999229994438007571769340535310803688663260620633039644232051317249043160096885407699692726093887845390809424946264491217686454796128997027971081522842457209437304961602775123217979328324648138027993276933609002080679675481623064432759143033413701392937211086400828241540396320693180707237061854473827406083529130845988150689009242550189694208331205928920206509758477786815405174377491098016870843243961983643734454320300893075433390523536068744131126481027137996657637273502142478388811853271371563566545348263256024203089849467030660657971880455586402889490029655234105712838846645344295186156787876250697350689345002698551077382565786811575755704598424894660918922437367173612685538759496208846093624922709698311640436646397730205661458370320225955594630236855203883604161348994656541886454984800162521809356712780108219374113887587445255035647488601271963095232242091268788004974410402581699850132844242175011443615772696837086876240569530514615388435129840265900472213590172856693189991050011596174840150168197294869285582922599857783979925421346155685537343309908602150174771885581608614074111903667422163473801518279480564623634203114406920879869570636143057033350036996016783640362450316303291177585656327859363627671957397263694208212527859627117733207864782949085878816226797873786564693101283327553308674345085200542083190092160061743113678585882447620000418770214417803594730446903000974282510251938574528394745331279759709756110390536068903699014134091290986539522292572567781655232792956484556561154178983577206261244676271071833399714759006670374634187744319743425905800560558283141012030021963093581254965253811222189194210982301374504729858188506093842738745627347357217249314150664553616654990809219375253807084036809710558056701285862044657610830030732106904036596267898248099570636182979194044305545375590138663689972062543581388361446892152230343405572547740111574892906772836873896174987565647114901317943236004158161206799712284913684855196395866976058676389988553780584366903105609076917317313892545611787415805994362060575749779512776292092361651833382313978739330143367076957197180789312413686283728621725030273384457237467321179612435543525807905257854640014051299396686703644573801053427508822824285488008334017174054711996214907875010838276923563574580793136072523318927046802345535712967706401320705558266941943471980075325803334862195765318033266180896510089284246548931811084383836881197515252378242193976994780018804966630877775731802937285776284085123011051740337856113453408373602157745982837660653126281970024566439141110791079957284395630903585338570871883493151802692051732251318470533140469475259665854931352894907980741700686102457083341866673719729720688727504197891928154717661332626053270309877158688017491952497643037819401011925111943248136234410828709001937992690220224829789983600352752106398274671554687839879379474939585692147511722410113223471960209829784275833207924994305453737293948358082331379124264625395247283157096481888234658556048287343991674554750894975504914856604003451357158742608891679179098266250372269732961529867193080318925796514982420950381704342278453516223913560497758088381008031466785471660097425050059079845362452995892093758108225404508036170083104397239179778843352732992571868678088309643040300335745040952104278307848949890701895407888114196455415437420847915020902426636530713432903898578763461308580012486898307285856818865650258036327157528964429044063040577470965824094409504807159397125453393585555794146927228036775694180125166744888546390244722375597294532391491785881800453987445198121988194884622848670885933452411836420490204536193226999095632973884259810881409718761064058859844308134972939850955390570540045426551237902213762886487026635842187949851296766831015384661812745187937873440807944997345368304709860479613477898563526700644756492768676440790506702073870011568420495612018678108795408750138410769289304408193657157973901250821091031762444311930629217895421630008115534405708708825659173289102861153488083153768043572461250248990606244521816599051647974998570651986521062408354860077772180887520784712455062116190704407477549778387358543546443417951633955445729016131194433342979990693780733948190488771557490789493125498799752720723106857326386772103383854294107997885143836750417115253617168118125715116949662045357993726971997933805797124294892081900004156399551169529975898331097849341155541839858236377784254761354056031192715555909440866429133317138196609786833664693202002602244121082775032417607710410704125784149085864590431993770055927939676746124147383998043591527521288536734982427079078537915308039035728790283623206503555538951751509908104244153754183998595229163809176268696582587668820438774178283615491607680609020289944357544926708482095683405934908533000243282234464998766444341975617487240181105336896639970495498794889964677863520698571730243749432679170631275644362055570071203737501669642527682547870505816143184144630287547980957406814371881972544703257166987311076536613668241465385881891362228646910136315692384180589911791807472752032328214336983859069110226279715587626160150476304936343417499553797082343148756217772034236052568088556278718804150576396020769299493105426691433695258099841501880534688493794970878076002977751336293266285231650247684843647676342973547559467252119047668292984414542149253938114338052862145130547667226565053459640144418299745756128157881795853329659874640484897327170296368978556944324948704578784533524272036789321474994018494370168723005805045702462307189663516654588880340345459961894305182956986668318778966944606952574950154214687005169273973241167889482768975988816101572955927009121022271813464055646735797849367219742167807523170182624250910037829377105698828539055988481955639018953545037848233064130775435352752896968246939462808184778362832257525789871423605728481987371595689755975832510046665604682028083545407129644809766080700107214316236977311664311855320809354955921011042248538487997981454479214827733727007611566433426477024497602053606824427931107300210600410811638230934082716014166956257268836471821236550723150110999356522496019028992412239643489717434408882773918416725960228972268186517063873634758131780251697040065613039230552431959504451682602412866886972630953564935984880967712687579727233091742964308552237440501428159837495906707357546464338638945038705901729789511463519136885230203266321900104217521383071396785114614464851442060383625114679062928228003143470857842425439139510335345852431341715605061422362629993942474049864265526065668782660812731374558031277234867912094406912041390902222868848064275652335086479690635064071842618887655763594117844270823521835721817546823781972275514455017613392195885886864544494929767827157988580379405910474200492733304309116016864950039920647989944856551170385857058052909088242690863481913628546898315506905552385180430119335757546589432847713915913204412479183709528146119369129560634639453532381304849321403536356251197715174266633820843356527123706005583181191135026343615964884515764357229926394063953005199068605025362315726459896389667866458796879435479852881801587988954245187416219004633658041593344941102158773118395724653458210020341977067828093372740581456690744898496924277453165965186134772643457285764282121647755393273178216890343896799764953439075964576875715909356608528457340514937238406445453108657005588341046941168642782383974986257076213521384753996061635013506013986224186522471481513367038288674104414537846860336300376066927259189357436758773934827703229504878253482697683434034202361265562636613933819433415996067647170145211077622153757153831681073170472680400085123978950619085373144185865497203637945040754040421498781944063343387212237137243857936460232795345523247330073423629522886815073953424022477765123539599241080384341591896758697983593012506641628083078125855659179813293740379166094360908113399782858503832690903026907126431829586009629633227235514619226952442576678850551516107122606850429146847519314614954137627905125973230407589043979796051045728621090522239894492023342860586351002117881340208230595792864063088663371492371302265448560202922848147089961368281189159386431317594844373104200003346933761404562608777575308055513686193529101576305292485023900263806671017175326523500312707825267989485357102599260181037320434287675510283248912714964638773966632171033802506220776419491615860729768311211928108986364618838460614686601288782674138554138722957729116678216742134981011027436536164851471821376297025826532420996570758794722876260169364682599791797297057340971449664201468981262863048214240965566531449903250721630199130800484118441256378147797200305792009031714765940175705648934479316037650242419801237748148815868456419903494522853145186264744631169354107236308622176871939515386666245245796229674032442407417481899650808217197610077445729765874865046853052850436487165098554158241794811937805179420553305593713203356277363008047002405329793289963771492282483097659757652362948738524079750472192624733971263663662354590752426763139731738704667146338214809791583642098203575459287878277021796254476904678838141729878543045669261315011990569153199500461423280506363732163230058369891521280296272117492988714944430294134706830300208552015052084392150959399124632183780049435773554490468744472972019561146081559504238495371655469130469489893707774801223144661586573935381314888273573661045058169498218646934450513144499954008988012909455549600462265135847789604829385510986507234377455636603007134480694631703208778511560455141404881469037781817029853798189046829865349165200262994909239535459363205084642163429165739573954360624264971878189673079604266938361956211262103601221591551691037815156119545216245810573093494034587809633913310269451013388621826917757707925593731408623808813732440689130323617318459298283610596441534584997854953427730867315272309902624060563884255200686432718860112043324421182779185979524262187002249669792171563231066624740366905346256703757915605884609342664022469533875687736147254472679965600091246042694421213254028845099964877618331970384531537197641911560494542301781467186632367889076394693033725338119844278286008007002153142806791198010511219952055149645527724791671571199210212612444409428546086386499558945873712128665874781745687400654620944527128448122698991287615970058574355977789560416475524194059481359044525125323628877313344804790259875589006253841607887375877046588417782709624904025470802999784945961579197162011577988651827915736199014795409978556093421698850229790970511640480362813896103082283743823365641767818201903928867584528712269697511830850108908771564685596873537629133339768729368863374654959528711252962590350075888302799900457443649102849488120262519423543103351913180999935068080269753703570821673901017853482145656431495312320067224807476836101586295601520010994991940979696798312747860771441176879903688214200908480006242722336695248594158771223933709314159917487277372992673514431796568732780938937776552416039152976269554383309139865876000187200346005519602941560697285184635769606065021575928680207424189347184386233805385406360830982443153615042920502116929401464259028133744707241940737042970118362751735948464387825863357586769610130407201439548485184952767380593612146398293822419931627100481561790418420022453897291653914764189990320911054603547660574407275355199388129086674108174610438704372409128977858783903785455732521177002861191177255897531518085215766890199863894256364873349195625189106295102704062569094698882802527356441183908705972575554707106041513341895580367051355421547968343025155109761328936740486031765232619241912081318176424618067895627516662910986563486068761567504993197312885250399579458386021443672090260353335988443892667664918176299126779184187567107234628897557156318560489063074102212429806971639779900982162334178633653646526199266706874727699966882853837979839041525003771866703037565776432357601783795390113602922584906849341078870542904868572704694633721261683015812431403719154487765642652143185286874612449690075100440750812435257861710936567155489913018589875284368102659627243484903939155217744019704898192928354958084029734629585090382979030918315542340350760028245375658690060819354576240929334164142663947869789129474232638536531183052467169694577221407607213405733787193614786045464268115638462282495370247967977577945829339348120445944052103713150043687055136779554750538984404174714064536540676381692048371474120887799392988909637765716684093170930858998723203755302842449874209663665083703916425310400357213346288815494526941596114303359420115836841361485283958724148869151532881537358463456256880850531772791232873402168994205958070564116632397078335588611692268674069558080133803806748756567952038466364159118791964617797403020105555666206593213521773404772336044017851698831105753676645500362217599964302040338608867964651609763936906524346009163356483096482766090951735945633037402971078437127774913151773983521164811828808028995978387547748462574417895401761791890559885735429558199416088196432903645178872176781233993145004168738721501705755238247329106747963177380118342994089944895140005134005412144847218708791498564681859629754603200518505963200821247172242737007224992531842680589093567856261082074608080141623907475500297890591079969652311618369522326553093929120436699629120378278553262491486808511778703088563319406375953444764279020867533532172865864412254649144765252395380461382665498765557742255351295673802780867465970571593906072844421134062889729032514435997029252238393940879512541173923951774219878171443972129471722012414442640271358446333137230402441554348052168966061943574410811810053213247264212200482679227138485933127080316871125783558447640913080968811916099826954913438764973930254154928977566735399373281388054738553252369724153337039178903133944571617468438892776224124926327815207045624388051021047019863499539439772848323382331969181326580788886194816272953899604827026476517789710250708735727673754996843297659025399734599013957648852524868076608035213083681935502282126925841836375084783237192992328319050495539536869515349860105497791354188255417451027872107888252676331480375331313187122219840499504838635545181427313503918409815648874626964075271776568506028201124926487032588826861685067877391375309898591860356351481964102412523051605787524356837655822031389137813582685474116522117245230836751389236452939709754615163909592463994848109664599135280011017750014371370512435752214296609433075223272543473341471703700393795413967244185665052595871171449683233886942312817495873442878606305935202017110293456315320681885327163975534834623930415631453617769480466100038914770201979122587596474453269844452527474061874601039932380781305489108569909439642331184872754193480733029286614113760880401888589851268926599355193223485171645131130008167408231947236215735532153642168540885900431193399141793544867699905741638877197903902219977295789570111043470615519822572297429940813314411998024437775408935741116085278280368592717298441524783285658171487663763980547875486504934442543049246109308421690992441876052430743047274493656292844838332597684876906019579612796561286224721978703011809886180526066882374280051031457576563303551637440660013289151766295618954910975097287331953751453717195146386573980858088737458027881208957259512985289486288842440471940125470760185680386566737119975777646352293289239332959985577446615915786995906746120090172654962237979849340800777505990765907624125667292353726399372892407357631261707289349501723066419440580568059200406295012305562127613953995624730352363817661064958542181512965389638341666396002256180012138404668806631608696714862480576882467356918111284102797641318201015092614708099411956626247984773136013013811851965910734841378262910342706668849763451184141106759784043341256125859692382633577333542762747174524064557507025948098829006016995735097150649353409794603847778653873590049492686714679901992663762958710380356859233389605381808057490937507528455555824714866391350917059175453918183657875697452087111303676790015546978692002682133681948865701171532824432151358133325482762009767472925661575604861099416227577905688589312768447950540783010259480550790462986382757235422683841107362056146387979255886412438362302834151646029473304560583318443310855081143577991050216742808113781725112560616778346873859714859220337780085192327744949068940065556370478839181306349403399486517044085260782208761036743671402487600861434184529190641354455174317453501325949997348772970587727614560004543728998426330337070708663591787904534232442336404010567372621380052367422480041369608158577112795795815614410338808510092981089438395943581236578539628059727830390594638711338081464999944063905867324261596270663170201022523526493529728265012916247809197282192631791180136490031136516973842383117178792729169696252469712850022401134219836452950326377236952625898259892675896147548999894481701954187862722435745926602898520742904855723036399276895159993440200601381367436208193459775614801800731911538566096708019440559987987534118976445390033164674978375131697002311553966486157036943953881720050942804587974222548915735622250201126628022612899818630341384745318718088969702285074594738247753826300671958008961973987878241886857227650179044027982641906543293253132343850247785364613276417881210557521298443008067729857752370579147008709306226164532152546834883794358108128097255389403297717847895170823006374166111655812532424074615441714492065846617573429641072808163859583526973992611114923570936005707954691991350350962956177758590899609835869633164598916905109856145427968760703141683863696288044794786664812831796561277157019597319057884625684518902265414005349356581294213560163112250427196904631341579423792368288218396177688368230714916534567559635361970980137691499102067547973264861198941905451676390679955673857842866064790188364531317362306175079135642297037989016524185576713448975182114127068287115245218958955170886525858537100177575299026392117290834425337681878480626171849725029417396411831736762788239318779662741038788276873008138232925577140879767738536191290427164696026088260404431204500074477412466746357597769265968285250996687221266869950233351467063639522049047249867433708980126888004168677239240056228910938358618020154733561060447626288564260812840966087660523676812591329271463685409445417266487839983338241479215517325482284243624726984494755767070521300877807283337892178030712079869455657473283760559793329562995654685563241396434876674893388214633758254660859305278166632179202289921667259802703781984873319034907162477791058976867697178773612069213205832896407086817392512263682518705542987490238672653057856784970761983075740466331169061817462827833120502318967427181325911046597675629768808153561061359228457898949849713847172428958425633173753968297310016011020212855795605323460848310592429125905165464227295435421818229273299306397609327291574347499489190103552881075541469990549711300964710437538660257393579439392087807465002738150013720586608715296486506802788802218112871595677382158516878069613582491162149803219908803127216414021026253729434034754594411373891543433675262708491924477692843215790950879216549730219121820689761475281156650788033806264104932040885094613392702684999728139715851655953625343587535189349747282474639360654634294551608844655969929291342299708490132168044806942511431712346903058123061029163659121438304363514148327495862759618575688780140023590759215195222449915961308202766812063449212146817886016989598310948801403493121901912980159949046106408037413382329586019359606007626705697356057499067270582101192768241436604986338615465714813169814202815072208267241735836538071707805300810348529766154640025326279572637079286044459774642039140388682238417878200881686975539018740288157875993579774203800185348473987703506776381039954706174870233818117091242085869052378547526650025225360850071160345427146023663526228314379137797020908417546322322749674952046561613139094456321222997237352699488608506981067339293434272907361352148852619608334581484164083092917296682880026241630635163430764033239035299592476966644656333495188714357298192413804735606073731181724078172360493219555719378841556770329870056769225406480645080703754929740065343481419316754947904831378851410098622171864931869776578197905059535024077614817401630392232187494005176331662771468675905843383925841416597971190430656564529255021497383685460807860561635235435183526286217233779596358739854664843510213576812402833874560495104060472398222994189394353065342333008337458579667044531714125973843064398554404410873114578668764249329110757458192710149569570482393393250947121790621701205064422589126937551791535900731598854060040584853219604717597550634696962748673897230242762473078811811091666593922972117719536118846746952386835582950008983990957030879059482677059749319381483539370159885742502598784070608550330817610249802747818927757301042083389398172506085351459782975038599869559950941677345759348751663420101989872674405706241628003160261231820261762417219571383388932603032400081990767979723108406703001765779755381353861137626234673721293527593036649338696387377265274966071709214015728169130291087350108752822460927514095395846795586849062015555011096813341323697129771129452516041597419026382699126405280870580091710836318444972479969507972719894083239358397025275094705700581124270370420508953815351635444381534323653530607806862855425346693993126497035747762542147449734235141371880889317067540114095930377001572192607174821878193678027755452005001740551539605007410254480212869446365683724409138297770138211440824001228625829269338259108804222505392155075857538177998642644926195961546703473940061269673015617401097256188852796521424326965699018967155727135671821121529865018112252620107093999599312112975300960353670990085965347951014652747794856158767850913383497607545742412774879752812805211190086320383899043523050605048457738512275224862225445799953390243412554181061431511491318239124664654090089427527808378818455239879112704326675962440984118916614593680476245750846906814346626500576964633689075966669203774547749676371871925966741894894723860643750619644164601141908978498704262201627368039641370556576474481447765039926537998875234502265972671519372958697260873939677147777048754178458299975587473362940751071972130814426811035642042776715743488033877566286197595308483957519237098556020104310406940572569315725091245071422983850221135738181397738691225965899330990083268424852172576124956014007052049959747958143122086811618128374236689103809117875807384724073174979721820494247075100675603387512932377583188902060302709658273060712476696460385793153177712090452256458621233457023531199273266755827553936324051759639014646961495966930689700018480887845190987787338431299351592056221919371898781883784453107956698674498961820869916839169830857607842479808653029026811178401218793265783275928818827846015141849623764561010295647487701617931532331388573160620943560417110148492773926250135339238192406332252628582595456276384163780437929891865081258368117815007828721169225263578770963952499657618082481523254959052993583200184428576660544594388864288292831927957125049485909938683813570954805605625534861297074678409065042112042539744196681964980738955653535678086841296309488555600212456743099002867063449448253854905612205719457349557113765564500004702743894229113767340919653115379904746832808019248111394958360624946641262997228455935915709721806835966051497194479897449396981281547249938536478235295996637013678172799279803271075649456925778704144419853055435129100494966950454065189896398600855264997587300571259030584994584243704252727643911336413244944038373777005317810567374658256214302170332302176590120939021717076821869343318995345869455669007000121303750697897651823199110248050451181720199409443141638357765369473354057528999085108300188120803305142190804310397994691181363801370999299975151936990665481315028813410114831538133794299453043226133772229999605182947826541331276172379545516284209004432887937333431905081940366723005072587694369698158306285424489186766891563368257627013025533666781438993585844706716686790093630394918417736321266305013922349593298757834995847535112866314706118572881728394992493081553513684046691604138189790632777206673127089593477546192924177474966568414227794258322363015943974039501197833782937210960147367096659547096794156251337627050818726464009462313704064277780971035252513859252675272715684644561187019363959543751151510600819327783164187021631189471483105198603889459974348633893467466470011047178202856410261678033557588810757269003374418334623723700440527888324884553814240166490104922327865432846112645542528030004105946695495237078598144861113300425479582583627999996644506337001938329883718797528113363427418556965286729110409857723263617753482937145226927882604192647422095942599630893131561057807743599642274195343060232264224360315183992390412969103889501003366052333753301900609364182012421008757439048043910028664395260797661282659032937596526905150364009861534963220547945127090596224601604661121351497704248853817782941611033910005972973312323282940840258082277693052328690185526325722775406185599394102454719910168656020025502019761149549222338147773728368738188075364556049913689215307955913363035031171344564165525624261309165276702064742764954472811202828558141660830730453514101774500537567403778387635941954802937669175521997524520572762085523884906704012413495633364448216700813918495137160852081456810863429443192160291323705711782537274792755753145391502616898971725638827019633522534428479572671026381347557567366678602991045359747975747156933686324464977478175058855825106817284411609089316625396277357487907609538098676454742465457076136868919371226624241525412233893070319843629586115220831488711717307558835464853236050302222847005232737612170842040347546585048461008849362793414673693712830817459468777203882070682442500524833135006023408500295575895924825446571960368078557596265033991496244675387256062991132176062611800567615261104907225086380449532536673837051502978438694230808688645779147004734239483507496142161252364105673108811732586762210083372297425337567095121352795846931774701393427370771092591280880034001213523782935270257099853073982108956025876243126503072719421351484057391453981754842482936264512433182509946445126795956511418432135472626001177448087623541634927808931543650843607056653824043452933695292176780634425462536540997716607668597505720578991177506713096698435716555333827386796604652208747532309601485491128589680839159005746751704751543306588319556338897658755527692180407190463461793139610186093952305542558233791886265671929415019981716591752135467064702190206434779446606289776110915379966143962022516281674053921571619976618478583736811278199637038925102331256053838973147004791881563665268652282323531634108668243652713497849525451525381535600996031286711654157213812290252419356086692238422917740300992897790090346324641558481549103093361647369984914381611717378274770255331518110570710619515340258912614596782764308019853597620578105608829944445030260844785760791910501425967152168808119573996920165301888448010024299377584256105428706411468820805378899489602604101209608606327423680440700318440762982901292568767023904576878578638815556269636608886668858835725799566397274100284640068855427935702910813252075440584492193284620516564234900404640314602200926571249072391522912728863884996522431841730301177578487719334311695798399473519103460425257485114939811540675837724675559332099669273516882908652680140628072894546516531161100686358179854096532986387010147312279782159485816465154732562410516440404380197026811210506940621006158898506190685543781438246621199747449007693846930014237395405035095253565430050256276558706879300675054113901364572872778475880601570187539616095611787517758843056034110331898129463327581393095235384366335780310990653063552739266907253980678291848407069196556266014613809689252125156754149627899467858444146201136158732120338351224908460220606291728874544905337132100806762213233064197095440252634376318530840079967424398013598446817333659467824213033917405460787092940915484311254401888109034809037992480280107257680681345962645932226970270723590982439841202074479012743864329391039954413028065470116146174124176052772126673459492655935919235800918851209509115243961127225246573782015189464213434280211333133580260254140003889604566510706455397987904426882109455888377137860484189435647924660720217435692810936700586952914341408786030703611004098366469594847781877868226149237343316455604859551169975922407089427946102306395774502329522942034654939862682331387945653668505237256585383544442113723880182978662929569194404386732102777397932816242564855002105161883308136001782410204628015426709189311291900266483285735295553666207953331740349093342840905068271850198539060936232180123669990192114358308352944849274981308966425452641218338610483284151174278345121938715495908005309842639147961240076475492217219801657992782004784971289402025523735526244036183601898494061103579033145640020318025718135286594424152066287796463421145303096852807287752763796860405881721889875244894481430863246693562616672457280635528775568851895786787275627252902797451075983967377620557200832915504983523330313514453197019207164973876517084680164396433692597253948157553905219673898882854302178639269114905017359069922240674070964650656190511599849793211665858605792881002814773805468688378315589984781746725754762229803992060502069432068657107130146527755462849098416312727767988549764208127132067423061311625136732852775564184983274168691898671012470523210597625135705113639156740927167571671233402325970616448737002125314369431631716636555730410640094035319811908455989550816437393774009565876092492061190834375318312283427015009936034136674031627721490212077750696069203574567293966133121159612847152139628709503879700025380729535616473155421503888942594915603294536711031432416417758347732629880332757430882933522188362282377374836861955622484251065951871836696533121556256612128546993759296475751877699657306217712352092129913075438504041253044441023574594225323990083352588434409839621095559808931725897274254086503480237316071605410429421712436231014706922991312781741512666955865192682620804999309487561158302380005346258852972007815231964407167806210829870004924364662051749582112857553953196196359421421952339675293935618943236712696971145005773868474752627529247834871376581445022934658189985797591192233742985557304347643545765223881391298834664087123971071464877987955277649947179655282645014734815332932097920342451178856830561963712873600232115727647143426731297222817020362963512327970127177126104399743479295338003593636514112315203536985918933754006709728352273632853091528814869666153545465412597525954816509474622803708805170814472496832510110931631721569863583292053341450055736461186613026795239209137029398062009033423079014626742798256895605853518258320622990966755595166362859123841400461187978657649278215817762025780013081039570032422175290081064508466921332887319590788577462388447069592649044073972039714528309883359614392645649099628605207102646035591758290091369524244714924421840659700714748570593218607719160986911154360978456743592233418587237219135917078774285573286370788166017628789403216704095141941743118605655540283004187554531364139553694352274148114831236848244629005320859912773141188004421263449404952474941733253747827626273035051286302279628576109902032530298202405804338419124892496042370621320011451360081534345243753088128350157414539969815348955300525453327708332163140993556099399182359812518069833953515105965060657112851277682376814495611670374638290684975337850441983429300576887441010663891170578055609515836533222328136120591620292855342454739902996199573487827932841802507720199882311638127258559337859915807065509045084412230584613626958384822357725890623621864678069405756276843812358697948381033457114597320887194199842210802383937889089797572422716556402595607353417634674013466761856618483757437374570154974430820478170662823573177749228465402673190812666421463778405145941763806752972540942559540476405436333168288209302291940846304414607758436938190069335700366324914573629887270313702205418287028904271959970992000667152560735225244097062258191011797907281496338104508891977478575369716425172589088199967600633869439245852594044881491803821806910801333404915025887785844717634084360672058580419770555130783563413996196059418047113817531498459676595363644665748570571907791369492763971345385625635087083115415479014289509106894491545536623851520518792926629065462126674592378867059196830220731770374192992636898433657902018417953401008217965536238804631449142390283026101772051444659021754438188474901363121495249527727356606490270988457552128031336989263986290230067441736534173864754625497086411122563590495767454659811798269131925050777507535839736866015965931925158386308764694790677544408063348734437942436343561190695467337319681119855071217089137111817742700859225202568785096544115426763829505477898829075669623676604610368315952728031892806172605079581310612133371601998446252175967868854580525756465922996839374510901812058365933095936081463304906824797198271800957488958245516529223682753854606086001491934095615967454881192955391721795355787148278851941919257306728449786178682756361632024201533934573335662039942870886252403274449867782294884607680471607692189657804027958337471787658477842360880273978895232708797816460232442640056916697198428306741018213632345849982458251406247748750206681564122889974302095778963754907579675625952462018154782465777116851040516682827610593940104079715096226961762218575641504550174234460272245551503671197995829404152171537247213740577205217069947011199175698037674039677384711390238712568974900500983073269688746016881350294115968441577782995570217972926385178752693223870842438462213235646836782345062770683548269529110574677034368214832278214761269120984012927323821648711766352620814074344233387802806344587659416218331940113796036430113629468432202241263529696801484659001100467211759563556133674502808729722839894779586810213691881176859107928721873399189242199671147288372031130035992866747323253821499783817694117610640659693811440011710696322915812723821935215147397874233594527654135401614603540978349778933770321843754381309018822364771301496282092359910583270790721373224140426421889688713542721091536811862797684629833927635385931547780223381044562509124469518950071132086256123012416370806848087978191036728427611996641963874331953195779728476744431534146667074725282736744749662646528824130698615427799518704762800056918852614836055981575575320048249169421778067122103662904907490305826991682481114810429484897945676901541862619675897576925158248225810779318997652697098030169574893875722879350900268050137558108015286160362621801473198513397507880707241185486660697247099794546650079076997809619435193892533041694822652419239069783361741686483210488852804508041324247772158109708698206389670868081727654919690473359649284517316192862944824311957466166301561761645987228471191195701096316725185473057464618750343100774612462471871322344670802582882381854248190616268615343027700805055880460694522478493963908882758351827704324956440778214731402848660871849039801712310359362040150617985385208892785119297209641913915100645010517684750877387304456792231718570846250354284767926788803829093907691181340596669695009867043976802344297120166676994979886652764712935594009687791711765479737624156848334373999722506125359046867444992360256935681318772527138173357147082366680141341470673010654070078139140786379271314733892859825340292113881034734454085333822801421847830131312452655054197796080113104727790276908010010032454678668869624533157586364546317515842595808678145064534903788748559439928855131242665142028297192492911498154480873801533883099280393660425468877998252337069514307166479584632590253075650254708138213436841861961570927586746405284918943775816781584553537337693795769397144465095504143515865129469970072707267222176312731670647896079433206978323979396834192860811418704305295458102452209551563779925898796301329940454061126759289825221527283403565191507051631902258199339633832206249122798297495917500587322077178487006504207598296943418439632088704113469534704473284673329540023064183853827218352220582858967593708433270693952944028197846967658656051905452125621505240124849565905728774529234163371791802761929902647067872449963488642534875218551114916056405886722691573220624473729897128063314800127135988094701448731460276424047829202978444910615105259300189393235728233102344397175379738374420975367304912851632546430103182779568389131099910545151971417815132232529772732611074105078332342750877842217464413401256200502835384308926403297694086459768138594154739685562722368255615711638128317201426240568785359188022995310064274280766108277663939033063746046737046254303939942776538308988629491702161705805982149454316546693495706853151693688708296170796996529987276327424793050447069993937192959847759109266619632128496139122057980275184899515021075226682006644431335366178089176548323202494319919876024123148326901397506341164046706250438658798333632542232153125118670505903615052790246320915816003169908801449419731541232896286464991147097072701424234017268916676200487027405145936089178634498685349645788378174415628035118874026228798402464609421712940284138486292124289423124044161664291460519206401139925623216474008114863081857774514571317436233390319353560634633587656803355319033213017184422906980947235296650759513438559959787267014674706708043115997909754318003888685724996407451466199651858282725185102491866333983959438872009370302175459327615557797054082168912297061153726241460993413880627760743269241638023713128578071555650513170378469295000614164035150174439032627662953976946253466261781479800704010249230065031199623477807485392163394299759759862435806487779875441891780988443300489602808518196132342719493982841652256587083998167852113972777999344840212371493089914907663338086269404905606148554548652653133261229210756929550734706401160285154180621805726751567346802147204012868710870752569572734990581912623782939187799343078880635979407890016062123570776521651664770955157857337333028906417920501462398119035244584858111004963391552733773686758274671662078642161907616775882902177357488087123746366779293132835857731298313389590142062305949645346965726339200888761130065973109624724401495736404511209126798701287822901289569415944776226425236381541689320276639086961766527259663299081941304033967497409096912484383647334568221053648116115128935993067899941820697351114055689255149713785227481056228100691254499822127018858659051636596071925813606731666370553333972159758191485851042905434124643177429673641483341372686893354665816914144517612305320556034464579409588609409728271851339632146749094532866157956143312125317854501687015111901388553676844261574006353852797896291456703351715131654531132171822273547342289809705455379250103467013417062645286865634050593405931634013350812900647412051614622245420949196459435030728025465205577523618119851378014046817588411450146111891894271609069841642119770755313283947960714567462142685424309845991687366607564869050341066077373683436218147810416267044631066238399867677609849516294841073884753503009086033154667085600746165447662808162449072469973256790963911374119173917046045438015497282974361887033028275552446402698536793649705009141023931641148597125946368120682853123867010397401884946561378829728941266107794482550177013730639294511955085062135681217084531718019501233392832781070639732784016351070244249793406899089006977390705003033323868117833801489967271660047807663981187633126115783543448603350810438722217829903208727067434718949226001101970293764369745712464311254070733166383243325225544611007076552738936518401503563067165541484934945842305753241266463918137812434944630412936925517108829431024883373280256427084595213895661609267616090546114638160755165424692428012873464521783804063052825908983634595681046037033877832546806839291251399982249937813098453767501448097653089436256448077436992781208792672668339949382842023519993623907547128179450369818727879124716350053949194233354606847479096091772564133746742077741906295903316422699240388078081618699068385215572567393070485679907805987888960640627448489924971460693511383802602501416462017428890294765679868699870908416284045257207925213967775637906960035420576038486829690289101258701150122569751573509172911070523451662757420551352465023131623227324197205287909603741341975669097956131975743784328898791593357563391121838099781689085180097510369834519990837380768492993846817577515172236377107945215737017442601885648657359726087588842192984498936942513992309004284414859636981047444905644245229282047006738454098579520360844639070417035808870217297097969573696284731316220468317268222861774925578019328907720011664707776298897972281045347479124641115747546697374202810204366639022967861433983199972259655173753540713894557157023810971768421529681984878885223593678637736385068825374821529161607639837317842915971702797963149668104681508803529884967242122690927515127081613698257844197495440704424661695219433151025695968632756657766153437626425963861066333427763200630049580134050466126354392129451713222275783117818260244532157659460937867585915720809955661131152480668405701735450339923249216368879250812938975766910531830349486509860532814250371497256593097265384055193119329866955413099579965487815405184927319630693360456397732866276317018632580110656835450289724561556117215126077106231987458211714087944091098494621617790781025110164540987507397097369382990996333484141171799162592874049682992943771238883461446494079735949185833864603023300855234489630691009003306599338216329933407078906010221421592630780879543688340195203531343141223332503726589964738686556478298758561556840428245435241712121917482795874423071813586760998523760933859457566401155490646849829948766640844083760227728220794128306231171491333095104653886689926508255206597916222376968101911806105180979322247022586147974013398497821286659186761555409835252409387874452412572527415057160427010892944331067343788669792654352521052258251289021355089951488139969846128849456036409564352287182767643644592351409411783032805542402348520015595465348012561051718725915608301374915149701325707000581172693848728085373767228566340053831553290495749774735168326273257990964768091469877384291506694509059111889992947976365413408712085633318823658638634054102630311473712942788743885858848495575648250995955364195514045199024511754207715533050173697268614152120450585731162380522777625124938653238150634426278670213853285270234090500487975320492640246835860829551198606834203536618965235991349591739862134512873358022809065759160811022424650860164478893684290466207001059507772746846673207640677079705814341345440753572882431322331700495427112461494522992837452194621847033836524005799821086766615479516022403891872594067467374311819608981607724954756234285506111081015886369474092171686638861725943460436996203743457405242134231658409339973357966714104320927500641290721953598443503082627610189922471383801914616401190531510663745599375592483966749374384018041072820673633479853731926223392508232479321904526433254887032666083217175579578937230619453514730221696198994870899459007688212668495167288357430228907452045899840447389114198597723291740374908500275456090713894936579413673912536175801885259883015138229674158491581802367564713922486093699039591114477877791784878274489009883978951147621769799353024569757509148640210430203160680341955397873593965905852173603754630161797103705591498094598773943396976340658187092129586103883908323994751674020371570103486910559637574580027148460267851082887674306186334084025976406305153464527069208396433542562318157302242248229531672657786641988997654619789511618301955966773148621796405860671744400393785725015855744851314619906225050755645909275239225384139629050595582348849212660494000898330614389470513821749012442900496596954350019088735570991649837288451123311891079981307354683175414571743323207717916716509194128559763846035526554176728889003303151995361423402814258494759757651109891149356597737521339747107989925983902665435891923246282704899291296585960882296795006998616951503829922181642488027821435705587473315226327367455956430793724733355480319046378686047993817224041996045526688369718770182583304200256250670050728358085133685634128518435038836086357895081663888358289769949505894383277267825232160246875199744473044442675983816961016321656867070082652369932998767566877890791241833390525701534673279054118407215150241506310360383403236377681639583330911535638236430766586227062369733694941715293543399951259487400908141806798048311049110564296489420518326742388461026766074151833520147634849205685244291224094837758323160957401625584384531769202847384579873558391649961341652515951248737693397955149135819801109796573870307723290934797433774952850175404260970747621226276566718450595145034660493784051126718712357085309103185083338554961479205122624875206311008149710652820335131117550475201910651958740567648188031063968982007700243889899704559498921495442400801990492572749478101913233342389156306110060468882455826434203475771427749450929937266405800520326047312240543177449486444380553410315970999549912471388605706908170729089027589661063472861702297282283904974281128206281215094264936952859804729188985508809810113473531960030398195601810507852760721934555130807381159539805985934826397690221797574945915586852239152499533422761863459036374605623145689793702976637022469316019109679770894263823996648886571686647425215596602451372364206930889641346256626508536705609328397556839417208369618763261481903025768216742107477290897517743773084448183810454963580943754286601785512643585873520875461992170009152819513661063950918937224256002101780022715917612909299111271987359773141532172753061291394838483255428065419377137241793613649918656202975074299443853677537548267396803671862542345169540451720812541122588011040945051472321566023151137862718101351289408232799593138917722084359480242868796015332131277846277049812287531476436286168391625635285718061854834740124925752131986769016807599253285592546336787744988606221860842597394265899230670679658106798130783340754207304555657660850688380508875433414983978427943887557065312124708897442474783167301085918715458647276459654679514266023104733688816968668493187469111281517622365193652422560686650526686045479730963228754269725268451761074902357869388784112396086971393678142766616253238035425906886915628907475094084447437926443119839551591825388302326707096600013748072042633861366726902300623655751861658492074692117198046619444445234841263194163803549160593203719597376465572616583749654454795939018149724636695426236573970641029688728365370004659400152509552538371750932252830603137122831275296801020426357720408869386403743389943058466698131783463700094457563674075584115023516946606750977240731429680004070810170188888980625317403356188076763663561723439701345087824483174287333262565459916286915643424791651036688707257512819612396112186725514593099732707796496498097593886399485907308854632340361192074113096729729714978648734965134080347248547160075792844966540324031804151094245066474369603212807320202943434949310138601997677641931818154430967994267007636568569602351809093827590170438545556806622254172751923120705240724848602978588543152837684478156012213812874316009537185544086337474287142508428277638558698401514369638435273501308886777580043801964748822446326297088746842234967612478960997219433860799359194753015684547649095283414679390788764977450854115781058485357810913783309439084483960199472712539704592709401884515861324162284251233241044099809089327088119938319003250599903450168817564383902347825055401354590801987513607803892020863858669058008192303686979103491445980589077431733377719302858103141475954215418313896205885675483907344351629969506976356663317866929922547649708942722441537254437041907882426090973388169353971036284875291685371403452560703637739150541344593814097342395291308356719819556934562420240962748398914729953503518488862517738476497798479179653961396892389727210977646441590040199207540665606397816318332058179427838914661085058186158870683490423153985600444611922289311111929956364601872543696636034597439890234453986140093549884919167317354400032043102414148911666474545454000582491043468728482186825353094618529779124685160934875283048641322471986961718263269547536734178401393643234925516943172659883022916801278840497865468889293674724609170169845423699374829143802956738723662918612760228359841732148822855295198319720771284391333253202026053556464309411757890274717780106524594818790073356652957734229775307309948780134576669669074985554559237028863504697375400007753187513379088756176674305052838075521016247379260239500247436345265070109141737609758159558254405002951226106671826955546962234015338806586050119179534430130628023573070662465189288398253669073209189583078453145891548995478019956286222089170877485641993552150425533885467757593509935780764892771289355540350614767650478860436613461744942287883651052725277403912546489873637403696952583741477508576595615315528780825903818858946189821923091027859443045033803974176764787385201517750522728486060169022292756455697979982237253180524925496872897885788354877152907963920068346842882216677473781428870931513122221948333432824783551798605535499127795331804722048971675870268564413178850888448098813911172972837976026102593475013787286031422522213852673741991726693786040547668971502806525504740421740768323079034978430008478328973543822479417734647826097082221136564800493706769542586655583466973941260675856199622019535999116426411277808361123498851027909563666353095270941294501611371564722231073271872735022343438512120326999301961138451195451426969799972026192093255748904404348961874017972229586916924082655600332656761909256559139724616955109293880082937582263952068412152403155508090247621454674379066767892415020072848267884173663699732304473898378148604040327376217845520504538565446491184643851203247017919083888642407453008684558714702710445224446396583580620983554727839471131578823228351682817553768453843687516847085895700629584805144557319348855569310773561488079071075955373053772206000699960902603082780872440532967097409345698645365006245633383603981594110594123133773833279828488127137441349045172575346514573777637437709040565179098386803718702141849407028834481002325855842782812237562768261350629580398552049020006744514863415218581231095082396003794677913918947415819607723729326247432254173406255630916586431351654402342260036325504366421015125021737778127611717864091995027951553667817035177596197606116535948224391390146835116792621969802080616670217502214729733096438398219262117008500650401657816470305225632710524447967574614043960589503784045679602487402200610412502592752423811467362482285403242753748689726395382454417005852216980433855999212425387012923683473286165364532443700076402852973367258962054304694091628390788841747852069410818173534231332714224026180237813584632158423545527335734281202027215624912324215772437148220519895861155413018189006828990194101603943700480369116495236547589076673090611521829419185620968019632685480887600569113587189953204473583651806030962260380963888602348934195281531633425884282333139683919380431958401800881076002408412411807086477752752886021195120563627453527871164913842186641229612798971545175253568259848238706761491033107800830576827850124881381599896403108736943940533375014354723791299019328095654533721383911107676020823710942331200789916063626214876661024123800553542230629673014880631184564654752013633599240398522584463261611905047251522979686606602273966143211029032409390804829344526544791771348028400510097704066900327524206616774818178299196162989133687190382812051820625408211931603459903941761439697384679989051348679824748823620185736662328910649155156337068585583572191691766853393788573007232730140720729931164934305955538937290818556540621163110061866489737829586756016734453743237898409358482180888913543696332372522688003510170236773893476621484831986878886756858979595030922235636791071216273956273975673765171155593346806113077236992609405062888020283943794983485789807885701139294719834730491377436413717335164309233004915443136774485268053358841113801281340025257399922799632454013168356166471383815928018274423368720075434186438041479576861579230445389349490553883454068417336429934518609634821002738418232516076653070742161987879984518377542991638184098966235257643495350651340657565184049835787851471524897863497787773913829451300349818612539960664253891165258741220017345873184745818878417570373870118322576500956565054169607556902217823680953293628639495037996775276383775349922337384242785001235567655637519078123064510589330186060184183494664163681887498598861813258296236918982085319521062357395775637478894923373939258270039693082489320125420137109552017118841202752052246004984761566998536340152908870609880445705668547991594775178018258102818715347371946773656513202012614541503301309349389324002129503468366961538936126142475494780825699440506859703292960157324957542953900941926031382764583031271760332079524034933039863007045249131055191934696942011563243508782762889669365033193140293848762518281304609524523991893266092977523942643613424412006360049876959796406503173518558342066739323922801581550358200130181648916507391014685507132966200938907459831939530648701154233231795321078381628801326561891781872875143698337425069617715966234783079668182727959419017951285735956690591954189302255295457900499763869829834178670696366988111794795369847019239720604171901751937790591786472775024462468594992373719461550594013385732486054776146055547750101625156244284949771513696619560064068946713648441979503052568829448702054186135631945603654468412212145564919098060654811397745038643677219185467513486706650925206532253407372980377204629359732445968385645467837240650941595588799652695873982505983423481341406405158110675019262871770891522617195865357803624715719982366528762087589529958312244060043158136081859987380549004866250628347052472708662749647971701901460057667414422978757602868908662691907600738152426838194052193905597464174450630652333633601344097861297788004341226271221785983359242776594978763472883933665373734783876279434803897524386660880772264140913474970293097156706153636405226087238514794858953576883156980762173741102666988131813432172258687826587385309601712125714037712068895712197612340232166516794053448052511473938533186541893274314131794899953216307574064181066938978838225809489203018860289589804910050336069488275329113184762748790349144479929242287412225815701150159858125681560662975243419774755482873540675451131681613366386286947287551410926979689895656148769315341837246060745122337413825420421013600716746230614574154864139224994214658204822793418612044503227312788345251929754438277798915802447427500393339359369826281541994734666945187833996788991933803295325601063156386771505566771910951757833094237106788220016537165627478678156723128486405153590860092943536044785325186849399833746274511251176952155836531122319165309396278016908929971456674889314923345644164630888935591648748826166760888319043164719524792408593859955456783051757176212172439438666046468400921319011612900934727599839127604962831328623068171409121375079830809947331982526082175838531415408819877423416400408290670735817361196854333526137792301885707534788343463113317056440446296104202440003376668141362600057569045274875829794555915257878591805482111160223784437057084717301855098578201093670376528778133790657804164741650004155196494689843631132796026854860623099308355188543588069387353750033713192983909250419616702721644943800642626346571826051665956016547109074152618455823025409385061445167428276839804889664038324511357153201799094679189246362026280836319435242274099228296263008431845898942201107904074887247142015725772386529131870737438870368272620786277182949084523307702176672193492022519734923306730087471522823623793335314943807992458665268962809164121438219489800637033474722617893761396917157459224793750412234336903627843311638215690871582112442199354221550290008764651510157378999386704906100308899396939818673994807059374950900275674319521938451303799945848591402106362381691601811443727518589267723010957015300293932947577787707681222537227997637477265186921991757368705603671355334613302089664580352743671643160572324139632956244016464282373492947176037323599721046194015327125416028245358948801370719543630411902165930556530928833358461959562488832697493701599598659245842288177343723597237559321348179015052144708590961639833974616167263783344515768114621860755708740829379400087314299076163459935847207541414971977125135680318066400326356269530698301966365552625757908583189024628474015767982114508164768623097186187539146906063383954671775333855676092306594223170962559060216384828660458057618220062427959393241677905048414157038440307148855294955281721785674864510596713403284479454558191410149762498224541578045743885961038527716077445589677938450245396629753616967930933137490063772345471438933867511290999993774745324690496175385034637608054564955575944923265652912699929652134323617036135331701324519861059435005628987999413809837156807625440180226012068429909988801826252006697944611677488091052949670993701014252715907581039025337130971894642048009061666954773177541733003537583883409631225312283726916465242835249961122549164876995205100700568416331693935392077513180453747602912072413857735294234761376710934959456602411416680788382564601086895647302530493476853339989139407256466714916474049020109120995131903686852813073200743658533422076165574073355590453792424753544985072906524722948513605279336543598768522673345173349362372779332983445431427313363439643313500561933035724928297397458864586997292058997858774476263495705539291223316109215337631166211264134298774190406715009835862430857663375790621426442213880907753789279222329215527118909416949400525394279335916910526114552148898271033793218153307145125464306773087603478240025491732676542557371227397322433098997241926890886725435332030612549300690511593451742561626654324989945771660430619174002160699992618875620115392209964331981149230444885323327962576947423215278575546710131215880490858607346144435507499907933301658599177179004447630230661847947002559470210248278270809948067880222679095407517473561955109875996817613270985436946677708391057335080749440066338698516252700070432976787938181591647101288576906918377339777963958515382114429205356300599157444380237081883617086411457151058157917814198209744898154700750072422229615330699539482312215246731776212533530482863092662475033750378520242130320593824408715056207322298054870742132285036961937616143897199262694785653150862079861527731437403581091553410559126500696177934777289510110737403952080413168251025548952389584734420339742205760430941028505238913815908792571625427768418653043140544859485465297060565029588868210542944041716342256006476885381709938874078335641858319100143654770086423859207129665539279410577599307410737766964219147671218878008037861906651762223411809994772465290687774672518208753281664360797211402536615779029359196909335823901474792739039034117285353486919288193872746891434009421474158816299289230077509191219769820667954965225355664691003522142879678732713938410050778989609140531182426210693326766485806546712393069459783252422188657183951494895775934806537559380289638689366491666491427282241814844690956885988170632368736727974508289548240728171713868352823451886685768190302945919189250594705770235217305758313429951580242192316752634697837391878114748201368607594800253491006008619415802290528359149131209062496255712298176537928312621945648168644065696584885761212181772053603771646039473557432619781374252381157899858459465770689281223975824039980216342519967020510620570079576673189683423030049663958172823451402534655007326784077586367870042577374818064890572817440932627434179746023785236797188443264146382236471206125343629901954411832676216482061196208634637304244685641953783229209673033400195802230221175936223370938583996639995380230274473368753850406609559428399019197327642502269646034005674955869963004341725000106389231415149313147880045259493911610290693283910735254415536038985411756024813509429765447584749307515943879539198510137004000771382899249807191075035898114468656260814231873131775209907722909663384784588806597289082640389383238718119895016811389087047068336787435405242381591778459949696684211137736319136138991322120811903741499227010209003225806450167573128890604249652547765558949395166924252041379639372451219573816902860076963777225367464534866606069428048214846451917976937108889148293307792183330184031317451691621552771830551069312302008694340881606626541616604447916857482561247670612311969356151713056106211832791944586637369524292756605389717142820364182477343606833625203339277541281865401560754821139072341242037822249059141430560290638376756473838445669667351602296852743905462551223049281747278163448219263971425553674370299974419522189355649983208894703995262994106102513283466973623942810715220583350231653458487154685606702880531527263258359460536978065048885579898860483780860207203148850514509403138960397846921874599943016033507391418892246725657167645422613709495367025095503643191596627707258238791514802567892412442287093723664490936403325604164254961472633885082149025949809616291550932567010475051370292646189041948841410430906292983920915988236857162662473853059252115459660137723785287371836212027329998227786733636319451262242148882279314343077401391855356907799933829849991789284940244766553530784335053381637644044811847883486854805770441582809752163920238115545054047204575684688993177402661280685631479839640932407041409521548372692893940508722793819029231408929712169885424358294726628786624055866094475356595285819484077693172161967338515947971472556073172973260192114978166018421371223833983443506219586701508695324874618557693368202477657929888422209640586472060430065169684423877268624441491123092659210127763999254994213637607994286050641594351699690359506494993062667699964647499265434245432565114330329257172967041176610960734663040495166759640966232502529445583824905071465628406115099634695413914913707323831197774763836411303633780605473654991924512365299808343109055680997353466780951053289851900512374006848211735328777682518875094123540327663910612458187952432157235089750993658556086457311071033300554751505867906595694872975093517602790659895660158467280362950005110603192674846577222329363402339416054248701327045150722949070006007004310741858937762443003182125156658882640159890383861282381186506668165605088168458249143526316050158796486612709587755078854787504617518285204697999335357223090929538588768188337231798544797474933231824139088335539652459576631810868851485470879746650923964311909994720350814726195244745403445043994754189157058572328553356597336632699649628995126688953828233985979716324510204110057405720320098921353441103483100377946184291263456343808402431683189748224318355603412681913554603279405132386608247499529803220954358638389681341825749567380788802577049296791273548626279541149044351501590132802871049768680672107943514777176042313427455241849542536671723925131693125325637797410768505863947454447945931860615231966738503302728598038551084109075694543785700885882424861966794591718025919527962784060530497880306012179956516053045482216449751319606822290489107443053739819425162244830501601185552819506247882192754402563087876005517720637845787219747977598646268192176706004822809301386128851596421724537893202073507138566812042579206664953622289404141361683206521098941031400700296362213259056366912908389793961540456580351910085447725313794845982857434278314863841564310955421477344905876254079775138444251386319714221257230927943542820002809483481597143243225076300995167205984295563563521083773018359173329539767089558048248705645629192440289852677226786393057145879659894529120682178112542367659460186152514904663340752939959652696727406837719979295810570139638002488366658217241294395557674172640553150834093121653745603232722329299453113261378699267347961894668270100343573227230434213148561232888369433389324507819347383039969953337330796771165954483435728269562443580902717728533719849834078769256568577494831592456955237527359003333919229578944972831613846528730630500293314021811318279499368162511713395418010743860734006861951607669004814270749035856927245292577520693318188303118911095613907933099668095347061743543620468447996795584410008520943711642496067981023984858473657268314392694309247454919575100162287999555497395027079439585930462712050310554679780637974817048794462588757499400095140684719546387711549975205717577870184345267077833549470917900875490941205290566313889936628995617027546326838340124322611630383472740302409138012567800319235722863156635187292165036271604292849989805469189606692813219930442761216034673744509890524558244964774656487802063450891087888614670284824787427117916931576766003079923384217730531542484772984192921420962006109675939542317578179931164359198840456908696943111102710280644738100719560632424003892451005516641162545023669373928522144434450045879382751629643786765508551598302351882884865367358431608188006471003304286148434878713085259503545984811611420476244989832960714121813466357254393978750534686629962320272479912280532807970629198481890051589839272856503131624747463725366562317122556454341250931009942809751699132169616861337795537922802269186854187013053377052184542280638598087374673405976782103221953505009681850126466316288247280875268275491990368794539865514937633543873772658914736676860857752801873119498423833387708173034485483901771604938379180839222662382296632348240837497947946866308800033947265949121897011589424776923769859995823619964458865027582143824437962346720410443524097590105996235502309412179874794303850550406415648422089962006425645762957234898012571513517558605637338621111593942888923329684011073312349624663355796055875524228239806238001019574126631793202495650918237117825717700830814776584687055160669082068755159676191772670734415382093120218539820584056108321000538072167929283118002664370478339096851715547334343889003178097355008010951762065974837110455638749347364689121781614085539028015692416643623899119562364538415569074651200653923197146548748270253199506743771517140775433032040910835790908676103552334691651874595275053475641625715898280406549344670331539981980275443965653953294949768928418599674580472933685113393376660817901459115238843895602056662533848532214285278201078343881663207584896703029160855215378308062039692800606191226734222590221664845221684093942034403037961714437970175520314068722285150709462125717690246656635237060658430353923888627457440653504079243789123340565926044449804750168479454061159581799237626463016075147004567034826080888163242599871683136823986967948333337268154041502285433062813364092068339353423655544418884875774672439501407182891513291598249655729860541620497089578200696536486758179337068511101831213579143954413648186831269633500286578424816608613242318690705929833497656441577573720817839729050030142874822033905055789680879908723348123751532848652428375608182610288339175937021331582548338353194823139312990972504795325113397843048886897896217627859530263347728390994127079320938514015050748505574697965866369605924056766367593189624785343749822216180633678496570900993662167408869486063796409396130191314004210269363011573357778933937567817247241483139579990487626019971468989858117802532545565336049265326685314845033944311698568123882639783958942147185862601350816976140888546088243074214452716110255476493412665731693069045157914077248674827799488339378686636925220770284444255437633726935045850022604937725813479555378061851624700549905504909966160236161823866540861216543038777870608490050335595248524564565030734204677598130345632501233185762827550890385354157897537523299936944878628113033578230795264750683388767480864890196599437555557130204733231816705001521730692788820617272557369374820927861068278381868779484868120384298405147797656459248482973760694304732504505173220000914484790296180432942078551077452804283192729517790324709448701453964030031302946238385820746229295415326112326225242118963013235697936532449370593869848372797790090783457234514591025281036285138571254771974463850978483714350232683221449836201718172922899665298602043284824867844573764346339686392645136771266243134761093292471992657840625844533175116632172864789210433712670455310569683393624001992403599666346194077935488144288650627844955246662656525012567501166670320985190966833023348224108498073325073736271692441660893618684995276492050037095897878736750899494099603503439349270355983147404436453707523095849788993739167142557713588879713463239639217491793471129390962872693538524965883228683076244414654050165145536921392008636398178659518996701717164721059691924390819151809808035437306732545624967409732805107995548326287947586693884343709899147852412706445682008128281305016013669693898945080902791699393969885535380197633019644167310440861784727277746148416583712572581687581346992875155395652881592116806697848673144603377774177885160353415303430611940130459579011971513450933606376576988913349361951073741942291786343158810748568098110363356018064773362675276212269037503055069981745022619557562933724654593512684963628267793461360572657503090130626092117425317536715341727869941076280003971289136871375432150283074354986548517404778487938825388813911104655321520626842497273772159918826464553932119758723327328088345246700916383429427449633086476254319590666324761312346985799602311420015494225522167816802287708608725143822763618777602690885501644605230260758850104918741778139748247850655363774189302853370133468877804461075972446232029381439702220497733753067817798600714293168916957964293528606835766699692682995797145144985790666161255398813391854892371798274391997060097416730271849260943995926880394465059592828196949727681273247439032206692635794169031891944558443563163985456652134319350267970174764130116535833272801544674819834578590186267644168404671404882129415858924760244044829913267214606142970851179635203791217344401396548224097088203316967707214997394261191838143008657211854818996575682797878559502762135952593210534532019238087210393692947221009543176040777292469927748535355212230436931857074075089092747162302699334103594550847599332400758816406493885644976758867097787278369666407747034953398609097768028506113161502865153932511478474981058608847561878869177946691207231729360117327176986582966300702235916108740392484063390941802150317521208064106676992625615162904063001986226861427678010125153922833843691414424096762758765546295498600695873367286777192678031872855195947875063157570902297880596066875328186702214396765681112772612340149502023196559804500603749105244494195768822537043298211982421602622827924474516510217809091622356989930714852012510324598072790200613959797445757207041128420271535795591832449167775848962844015809321861807614921720474064159162781766590928412225797759314617581405941311459015651653498265405348831381003501719775391397077667462439094218176088617077032349017625839003797134868149400786294574886227790361757739818178206354791493836474221169342273416491676444197864769303688952148869881252999726447869385102098491100241021697314892484115461147721698661087197667784961965082292719640734104089501989182412403240974938977398689263846803590051897416560173354552345804526216345634139326641620057279098251564577306796566482108917162787054608041249717860656376763789870321435340911902263836936801789712499036246532405206050968551071924314627204046918899641759725458038905706060593795343809131410767273544440063415899294952178138307077497968398102894350686037675965285148208131292232405699627161332454662829522895255969934053045803493430552903392422185377267806507550058304108683710388336144991452790320675221561196403621914760009019385909719171048307022535265906314740986968787603703112512789549575139979164404001595198201270878853189549268916320399452804398906031658920697541553161789649436750404136775085318591172218992805720761005839681546078580089446838869745591485128935909730040500422485861011588965469641739355839043008560857875426017055622871427642187318519570484076769729506332863692853189860630265922195307907491544572539680323922877772125271265745114188646981657281719484252127196163024192894589239977606615744840735139524858551193578998308226598386121892580541755341774550252490886748963144862994365396791458060969663613088795341252735846832120050998438450851463119059265676436546951544619724600904906238660882979012897173873436232381797880168498686283578534836851233593006218407738066631943443318408390349932899861652399175268652739178593892513594848603911734320692167764643621644313903481812647592311810397023399599836817257518035099548414355574933514874430551544094790539422487902459983865109495702505014307712187970207367391963729887000346091865263931527171834618528914971642434994634863886296754757786731835294898902858315162094207884287702762459460992883985733695073416691167254388833785309617280118869472989800146593595478765173900089499973703781486324279984742419352825142833122305111643573943037561771770316676860890441907475163181710020575101963085379373392695526777409899377911283774359479505044963183229240777353657811593136834436161521525054551017925865993641588468855028426749197647801577898630535787865191607378275567748892321869735759223671787314977959015039387682824235054581043905682008310139952983718828579317063614283346061846819357476100357839615033625921344079872730280109515743816547833587513986638451366097686483530908478681017883582917517801932161879639779645369255823274127540648886318856093725390921127636428067396234891963866883460812564017100511532336230355207871148230475131041425009278724961309053755398584177976859800004642142846971062387137597965676990797734389171734663032709182575841047529344140950617306803087590308058576961447883987238691602234432683939115930013369098437968478958867255719580568452775104004862032418235657364301680954507162114475962584299613281773781710131110576490001313799661380379422521363647739260003834845314605737428648463263308259682004331078430526906072167692156685762089369805613702699107958478191826468632329355686474983226537485768307980233154171408395722624721047103623384324890397566307327123768148658271274646185637451978532855989164801934532740862276034870528193619552754308371469733587825596718192645316898445588842424673956189679040285818095109970647415696387219693013293189131351812990702594993812341497627883852629154956609437458587047396131920240608715114172865207693118019937673300911672393890949306540702804753202494498090066324881250678570526126882011794153564855284316623333928064872320603310275879025974293808145259802046180879383881637698324821589618544950654419672412202508513810994686107027881201201259860885142940213089670011503532711574277214388252088222591906001843469567957713785372758198439685424239279795397868424143173182851228172930955308224633486574833927326886739942275232985112361393132407444822247044114196462122661388472385875593657137821305381375581718252495394816284296707064974835200112286014179325941431555819300925587715932068790382204113037344585171953422966307472098727435980853852531335890483316760616830230682846319343556150757816365595891626009411818360180539041750667075790870926365999580737214185701689369133400612593034355463495907287090401913626977165503242520122456973856195474297022936962397096285726805609707155903257055125548523516728061466417457146613675771864327803184199091444794483881020946552801204700948531707102035974739457951830836474377986777330364146051324528398843318402219765895892350216318704555050039153120412422691815915226372872154969134272136411229223975896457456256228342128047726953561065561582743878751898498098637187133601507072308864019652012220627751525771391321374118312296862087109080005191913804461427129302858797845825534517196424053358434102050598290026458952275059875091484220373902469032053097505915919960258796872183528429540691657347351595446250889685484193987921656858049123227012263848217088863651535867809049842833654343763879771437415582749909465675031334480314040630342422218406120398888962884515512928203279068032954071413642681540465072554816452750759051036723191546449991281356616098820244152750786315807859845861909334366556105652587857163563729598362928709479185421257809708778442263381325615597376772921378460735305651610030702776209735558540876857447845946472087399250485226450217674496201498747676971048176048899393847234303130299883294108368315545048170782512419915442237690061432203056625673138141409282202679338508616384558705827612986089578597843853420319746790387715455498629682206318004764096337716417700186439850007960756312759262290174000115576580722590840287376449069815204628172414474915542280456246387676057418458693519845988051597887516583530203917710750299508756731965093413419167406675310895480650882458006891071123222705962792478655814245604421005823815958842247031967765758133638964173897648326660007580116936712678395253357184523499605072600657918308447433662153738157583706357269071534427784594664058136110280207773416220399861929097521241660151523923187726017533348581018925328511700629941639648229674429805049258142840054127387448006185029436361787142109963683231617502023592532828043550321376692324828224139270328405549176197415806333358947358598525263399356009706317666054871738680931112541862171649889604942660667121855937865113402797932084446495148964872003044579409355952522956319515949578662770731148788633095825968386131207192625635330143128153188853018248761256584126982037751216928454206180469035144353515682852725572708539676677429669608206208817491742979069205465757232729762484544734140874158393078988611042907828716471702313468179402662081332135299797451551356385569608460941606656371602139116856255136956901573876096934939640413115219394539147554157919352494362259249057835520887017599874872406381420400522524459981496506279865164347403097520177453316918599043282705312812601352768529584045298225901556018767127437072470215302966843526321158292045932352153597915478097910349390386586447467149626113017620098436269816517907821034720569649707213986155335102263499533692848459392360380992414390827031460192522995817233475732020225760673950230230698884433487522415774393595844044795860321462474376670763801184660624587380558861565573446183109054971035767735977628384551456966673507684892625801018816319422529852696539942245844496388704830591730291657723520351878389080696625960328161328530300951184398784895651483896081158859172847777202320574107802739034292231479382579714021296248376006745547136513110045944753737974868403701698317629215510303935802902897252574040867798690530715965657706154766034874992398556028608841567193399010604354950276463230620113799990860287131899188054522792621204813738443539923433651888873327354544823551687593553684006603231707802383454786383118754406942341651618990201652555385387674794453908895443580490737056342091040049928081060531268002477126201318533714537419842524301732573519320597664354838370221021984480374080261380177312419647566167204341102335306996761860573747647790720199330299546023174725692500398746304877598603941764023089548298082585288723636902197715267393097180866011777188033819807268896121131205876336169720570105181572575469305705988040819043144320746769502560516074880969733619368973642152342036627750690391933723885577101926647850314411157231528727375007519301195009736858989887538543113445529921293187086392993696092025603326860902022604447891654897525974644911330114341102186097621223638664897317878836603832826161032607131673246008680345192309391302659695375758307842627526118574699020505091494086903252276378522506559462856713133182261313882321094059645211194754144944163892468978541460963621623234360867660191784657724127826010930993049502439764922385045668811196569142300083860981996721129515319703276860153442415874008802643811433688445749197796731550978971569074987093311780750788647135556178051165039022485164280967312783071126563076404051081127020953024142825658587623157940829030931112539964407957515386165872754932976694432622454409283984067014978778212236160107273273924407456732486092639512644291113943731250732468471746470219919611216666357051940110595369527343958153965605386700687516790529362138751331526654510588355448622334393602771963979081375861102523061037376511555141954474831961389864444581286547078728144260037861009649312546152591014491704637903004154578265072572681487924145055202135652325119754901079915809511128559249864172194913453673328616975096461742804574839734895298994180523795437247681896950014867389276362763336826324594765017858694674359459689981884228961789828047017841088773490737920062164722680265312625601694924319725132360568639975774588701298123026374757806473625258951205409764669333894701538959225052083839577770694345788775131420059364027691724867178193265255486808213940715818392553154975244113824246832833619029518647980770702067048020924128230021849189754825909085482287033265794089188338259888571161588553405765294831646193903950076038394261061188264048049554381615955719346336157790149147063955854080263525586877432289855258533332892123289201778072099518832454695172224488685231901009516538369343891809953263456732214230901210313081038224759107178209031014608854530307426412334787551283276694494668090523692216829597815074535271111263772593151421576445788401898074591143518938814476511018446851881940892294749958925219355175496962968963963265884001664622109491502604406139649991596065002151455474543917845056815923771563601670981263292505365091911396547554834436246409594733545856677275758960136862972876033468112095210029682498968661964425488549166696458338832141883765267351845232171406901623784178072991197811120717517862556597593461906717620729489076083775725345641124938692975166079282402722375688364531628800699354233004845768532085981232014405490987160058804346402579448463806825991509405984181757378921706948743809795314195326619097778514444874543485923119167630731236135457746231470369815955012271228738114638099976025578920424090949112435315290197072545608017490746635429361791829877729165278283903923912524740482402052210585823322947567252159725623411162802833620273472792668860795879251035228150174465951963263183857489088024308216361033529545202785173178806309250339906964364392315631491470464536071868385794348986817142283794183210306830927981326805910945009091709138068565513345733324977869553772839657761209149121979344334979022917512042056450604042499548488380010773071473380934066764232955175846234112093856702405954718047675482830835673424425874544946036298755562294850635364783246481801745212614414997892708633587353757442514329439317574909935426579303230388975745185835622891274860051621457479639303519454650926494309358568676362225709978182206292589449928106156839116407247628471273154938915845169449773702155378007955010936649221103997746275010604954063683090002086629241589337542385177706342625789614247068932913903577576470373362091758665209671700898357751530212635369568825778286376973873568321299006052801020306987711795176734539566673806860667301490306615640956621262720456760749590272159152019809464016192320159507255705067914260570028398660292226298690892052380337188763207618857473198407460584956031458070763695408532587969162673011704433421482198356391501076130227231149614491647638142301783017167214769465692840677106810197376215683654090816309616799104762747878710083377723904358103159145960029394289861094056294870462296229339520235694290818733668391830657226556312148996409007368248950670125582081619814865583735708742234851430468282111279015031601043730862488046799226989650557408016581820872241488078087444547007787663738834022840256165230135934527022209772524897013617770682481866731264580634630479144137991289027443716942233028279110450226088810891195740253151546483493398567056620190998642023935986257350157765401626981550114028282675557230567220637722511020888790792632442564591006827163225786529854100586291370044818527524677212856843843808483260765188111520358096346840898557494540310311252919336644604292065970116168531718578258127710442970120371909754317054345136217959667759181145427650887402632614031645688410614960488737005258325707377212041880013961120785171183287579103268804988666534831026113068281967443172129996408064737428890308498112818831647151501631750240692215604122521115631916879324143968180990813357222577389017258574355172985051935546158286820891597588525461648121115980901916794264759695816542880679120301186139795069848852322365364448378177665795423069582768337264308322062358301390704325157338857563011371788695898853005178174884605084058533839339708076019942631105748718704398577536509763359132136897803215003993905078762564343546712986019229200313992451458250557217186114181414873846198560219954834558941882098992385867677702587374445332108121129072614122175223034913184266136884681885478930766007932331581711005341876111942908043841013952167343915336399772474894901800422345846069633021936872656445828544484583296248423955263808165743957496617473246548144090748905926791154517631835138978181160543436881518381313255439021219168583466974183824496566073392366731913429689232261599962097148171176648931346350837829879497322797802873218241620005372207726304680950149802910587257803430697912507020382841783100951831412846134987750275797078887062278818694638104710081341142941662810346222806864698934701744505433097881055229620005857766033224808493591204130688699526313208602177946136044940143640615050625735756758479434731713391591371857655919737237426405057428534875863288340045773607716294111002557518062139224799563132215066171569266144082937185639370466723165355301403302466912374032395768588739916326427545383321130628216463219711972941989772932868884824107486407129395856692040786020547495100033463745090934080574453850284442192759901077649488625357663541226463130300343943000310714087663609610104466211442168091227638971866195785969763517510469260255988704884005553587665314957375844523561886860422742997102642805032391317718317571972244878391225486121392486381941179433374435372109847523766816665313432798326162970965047646042782258942577316894146962571613108055069356157887237292094506168804842622246906199158410568279774887571368990732279754107912464585834353064027932638200456648039868581074570878078434807382255048364047814811078713306275594444911503853013478574266453967640329889870908913058901352335152102705411033117117933229475951573524562864407077406178686848485059910137114209547350291201105912875081133269680081320873473532254061658711191235916200989728168972921281744525992893087236020896030654127492317600004280367341004621977419999362798792710811267545477467965263375970897580846462371377608986630478055321885334817741739474981750876309800438123699966822852159216054821461166297518002475662401062545829188758447737292483320871488275972718666002932007062237777948857706522739999452688603750997281097517185373391604367751115258256985691615157644870887118812522888634159574358143543797840651678644293627064633164771785010031523721113176440543695224098355525019349037092331886796838027791381139888123168550531843286780852070283404177691503599348618192684665518071395031804842790361820603551685724927170370363749936323354491473498349930234713502804907536027822510926785382152275904378346730814284647691170060794111795831480453980001988444955199197685113808067730949804967660895003915942807285384829553764635988004816318823410338155035793760807814970354215045590121984164860264390608423703624080283782372585625070217592008695191683381498248236926082363415169861046950297138205905197899253903097326462354457087632285513727737629599705761741212449947830516061877045080446484383188244047462666165935542146150655251257968365968213730568336039503645764125284753207506568771327015047049610623119686639249980037550929934859666460927033300759885086719044305893527890793946703878598199494639894314189128696282732966765313291199656533751423099945571321035404890747534566871657115943141357847508599083670137575852575827152908001838091340499346055046165144490456078104838856758101531209724792029837421652874661650664404125834033427598803817834509889553134383224370172557645097570438338291076826707544569142772455968749482508132463180368441699025736897792119606342148717237539674350130444259890401914286874343687523985666755268100409020389537092089309109256819010877631103250611851963164583657792366410987487620173944110136509488768927856799674477808721957983348242415614900173040056797188551640863944038145447863996130730677422937418283967843507670133332377177066195472232999282106095163813019117670526900548418539908361636942722791792650226409290187102710387189589959049601412277771184776590773552667297700263162053059976904748015448721350629282837022213322907839479507385855937927088365379338351138832271618003193939467020230471943264653170571725181498516513567661345831630272341110878186486732200830589603254738562865056591200553771098235050684801597176104486770906831719970736164244458132207767700981489201705681972712927629100584531112401312361886287974788414923601882666198014760606107799896638878357854865135152330374256364884744780362675713168917370514039833392637765948505964747271296850169519149500771384075062699457203245407891256831893220059522830981980163578291061791994363786159170999057058051858163755181992252014110183769861574165698172664680517954657153545696928710338316423820081407822799187946192341281195066908847478462785234011468955430791478163487948584118568166878845894635628997666045397707097043213310847949033559962527674234353300169651901632785891379255818366320437124809685635513450421228870404397776151397531914872618874951885006888551257363750224501620751267762943217741959626470656224440090875207599355813881735805861723491060314895859350018947397531404692260299588482783962404773559612241679116149253961670166532202486933128458722305936452970660889566065544113130311002208109360823834289864689750731342728430051491243566021544832544273913207055659218611556867348547670104755892372999940001690492596416052483905832332101862650854820433883934093757328008477363134895729530093588565855932464420450182527251779633785638424906807904791140840146367641512995121279439879803230214919176489410652837485739618360542019962931538333368527460748529849793072411228922470431542753923176682810981769988805789568127456973516321499868890147465063273375818932642032291212157965211163701380049645827443663303629465853829658967456456742050112303950665857196474504680438388180500058015984506410745150021479634158428157164520257796159145733887780887354558966836871553374332558862844889358050472468951023901597509951613347028350511326250518059659399658236819958082460006879657626603528276159535248997162145554100399264171040176762362021803707851419615642432731201448251493539248949924992045329502131127366583866483125220195672335914917537869770899547097731637698503415961187527517736921641503948745185770045351902531851512850749759213143669543310433145262652463115314601932649393197356260923946613429563225777153306144583103745970561872038727231300621517830632697052648451209273900301411228559526422137782243073597035759927995657548487348618869651473102812696449608935305382886707802692471109764400752785278414862152591986131168013463212664170045226748298466829461134107817507087254331830732453378021172426158951008109324641468198272092647560455108781634142280372254448449241269243890895467299873867054451292783993286570604762636350295457551168267484574920373822996032417390369573631562793628661931617095377564561696528882515393693533051937277088872306987360613994449458742559959525718177529544926118766316494493426752038909673262799699436023745616160501527605798499638426319394600115540018502066970909326178937707393416163199704624887653561041108589257961625086971316530536729322090060344760032915728221654442192407590948405590211493835907347217279836921917857768927776151066717051837476489755370913612445325259641393423049686616656793680094975987038788088770962502308886496479133480460188137667193950943401606712273769460505998733590339497795418487628900614431176487172570785669335119638175507696156338867670529584708286021186418950375082059815619284290065236641532043460426735145595356971599520644941820080087785526974532097395391571456898122239882951194052762628989030082109568314775887489902483140933849254415763778379781271402142293644774131666103790959415683072224135407248186168841239394066624985346979030231529637159550330125040630909254129674797383381431608223729357076738301797130309560258599360260107999188589343365529353990260174803671064570120330569147014720588076130289631473193236869805788418942138754494272141643020440967901300444597235603570991761067120227287274875241202759222158788565955738480659870361844136308123268264405366653926206950193192026354320181837480894505011480445801862200863782696867111747117047050276494778666912420401428379643210637162012387963176869350883306809724095210279035932064573435228398015939265719957586042496432294302826577713358996596095895493744158801187085890483308426048641894056493200135789067488247584876641277871575437689378391245505797041800267458703834837826564742838969756477521299916265996762565186117172381224261776895018436807056241682250037476759231205681069598459711097397796607293644676839583747774871175570209507843901520059763350974715526867895967714358647888688269502327127449939286138489443627634255471581415393692417190042524572150603781895710178356633678485396509229824124835066229177733706787065101261586928240065546035711081913187213130564651744365448235923927836968195208584629044191555148048152631216432084877476490711647614589678054465382906565444937589024288997727519887612690972175356416947493331963600839131584374890184360634820373868880977340165308171881442584441065791581261036657469659361741374570023685757898686433841842465541204613827999564891590351044856064014934709712557600682007564108069121014824605518187696061342537891995528823832798028640045442014204082842883968151311917415607069307314818738286693255826334493779203470066492108265378331533085899315444306696216447804577352779220894094531654366076224870097254007295105916311356920830523755470080937947298947649925914163717474782272710499710496199759042614245501858335057885201495255975243359212290373301330784551960257883815243011846106741698576997885771879628048666893314938931808676706619691280198698037985944290194322828089442990031589221226649392614608084923831419190865527020583488613738346888878232754551664812201188644064379302961189422412009517215835929174502572653649106875298176490181006209272017318485408998508668682708593411768427056762179015007385351113269913913310860257608719113604126147624257024832914886650398758559283370574737352628536431361938885015170723005378159419799189342110981811712810062895119048597190996857951785611931008318477316917926842438023885241805076277195630708029745080451251476435096964493012888948145130594622215861335909283116762787865877011701553682977906129509438486232767106892912304767020702971902406647463039268276022035590526822357653263472668595892618911108908393027010666100066278878427117987100770208370652066018503495931545117838310595087993999084608978051778511031529969280135470983416027085002928010162150646596039061222335074585341318410802355505463365523186539645272727400147883569185720009361241507563039655008405637428106899997759948553940820978493942152705237946564215044821333101523397549435204612252284387383670620048337491179730691985154652449041314885606663498613951923219297899874327471605020762627554480723287251005681877546868463365200998112918340037688312004830076164934085671865847235474555128496366109580889908187103143170621859173819316624292632736296287734713422695982508860854868862915590802153995515739311055873540352894895363354010002286747661763993560576493913511352128940472251716221862238234040658455449789954955734740031205734675571923784781763119087013524913138944322797263073731918809036800999284023399994985481076859073461935405956236820427376430969408231155477181246204158876489822482842983099547640688922565555897804842733471495615642607199092946956798915841873313881919543595463027756922115206287031645102049226692739394965815761883066907218934034077328455004569634568222973489980063043528857241064238447462272063018180232758576641890059965856610146057868976098827167965208969405111200558676964735853607488840566962601427043026371350653869991945755030795521816805865310535223339108062721229026169789859922074251522723303406589432250252636603620217663088012069195778762928256069070754610008416626471437622392942039271094781365867210294109322218544935762356163004296784662039587103605869412270234491826984388299159200818078157385083404657335846911545557800150337609404222611577318723794204264116219892182550812264789861385916970611487288027880396374671874407521320426499471698190526436954803521031200177021351913716861979911085994885597886395535660559522359976451733365384747876434593715521368213971730791218232121263840873876397668099496314807733313172422701457370329384385317937380771887699510085039347865952243370537650383051654048411048420311953651688938801549854829811509880098884968118129885660371616006884139501809220897397861940637593218430887298046124694227821284886058285520996483409899338765682426819976239839517063047640398228357627278380297624213778323254033945419965286988144730800093025379589050380903107365178316558387476617746608671571186296315079253174117499092260742119211836321396391903010905858008480226489073674158069881286819692906765199936453724712338460912208358881185984997641551317816618086081844349709672998969232408779511271041224226078114919298020296285397329350602681906770905925967370805963295220436030043234492140603049567049764725007949713289870958102941664495863441948383304987440363448600658415428550519436491049899055020545641077913911426580865091568593329946465238930814336248774168700362743876000350176965750836288600418085081340818007483186736867541948814003294420679441304164381299076554445435751311876162991875841709054336949826588468894378825010470923222781596320925830067302297435329924323613363506736667939581662292501924375711216140089151822340407149608463467682042102664539605549713117508769363734829815862874505404917228415107064950134133470058605868529879496535991867904984152487455774935422576805601400480367373698976025742747344299147219360321036121544249720749478514689665601930196488607586518797632262987216128208203939733837350192990690535629914018871196368690785860681108833562077474794882258919907922372045069260272247427680740537856568049671848439332087552649687824812215796558529505250733902985931816113662526149127876254111080558948069966202714733447665035285659077432827598556410307832129436011903592735697528893048121726012203492842680145677469150496091053999023984949978373350651104533006186635710133751474437762772387539249181937412377077907820555319528231631783222886779193517347267308179833643969994657638519244125185035694050736748351997830494757429268032494697998804492528155524877185451329354314529587056067964853838744606485256202633437987612743175641687921766548647448793384482968476347235753663726267045860433000048531114599202528944814814473610202398827481477714440846165952391392171223104524131685007795295125742671900266809294329367755767358881701279139142739262418365145494368285254956143238250326333102202497412643665990465363942442178752300410746766587144290179963330249399042185736492439727690174513316964212495427684338882510184333825620627372458183428361177488958361986847920624364660430527494775838794506202356313271004879241237472070138893645295177081536878013456273122157718365988091748421354531576164482978468308873313702859550938679987323139997956501752091577053852363315969052956335607573133787855445769677360249427004948824585648654678941014151671767846607967934651989977205481740105599755916160626434019786764225106039458238144922643661852097861279073550200894799518303457125458543885031751543503449240249290620149573255806331809184395229434399543021284638611559630473301286608932669754144022566775894656267500233917943670278546434763046104336984995219010153367746004368490430965329385873116241676199947906714198704192785245165663126798568882561500098486850276829124877179322518929618894716570428669844831957370164420256218195529179427333278747511257419909048693211638531163603495788426793086011830814477204164654734712200236277991863147850196456038685683623058986582260092782478990629812422967287428645263662095148964804112618266514040991953910531109339220468426033408693912079908392085747086072006017471119874730479413378642233159643796797061779051585336826362021025080500379980698013451095148510534859892531405858838149426195223885726541414478118883429353342580210142573147196871908820685350631255821853192337880343952079540935944192223477492878346609255060633708892774327133380150005868310126590234009985310980953789111554133872936896727797337983221499100799786143060418017083615265597183690642415409675654797184575102404788554975490466306959694984241505225304366791456716157274464481655904864593527357122202972707757858404885808854805928739355618564531471491543922005685275607034297768296744794747329354183692877162668594285864719853476095259392461091967374834831413730740685708669077616683259102732311089952022008090606645497739103112601539203784640133971039741454151156255962801361101716484098386202127180257986550840235786736853889961420819780967181511203373527084887931287947181563755471728053289806753616736171538822583619792742203637840728549861980891727739504147016039964893668855750181521726848433876135827116357703753571277204348709809750078085597338116225012592773309072540366765427819520848516037047465029426922757533055475267165568836414796107127870129999747609780236740197812421598361507129843969803936991545013850279243564889075122036259457479261754197699494787083198374895897157966741234533127252168180551557492235354581908619627780138481095652759237996204109957408207827141257361080289693521516950353176894133202270238295184581996549571647729679370294923323777717576236539133554301724838454675408669237224581837184267880785263312880931627738247576919623540342577390307393079424211344339340017994922555585191762747674271968562338720544888926914711644052496621062507742332727824036149329395188329702666244948650635860844339024319518770461895709469037687949991888758067707972893397889674772480805790759671830816974164637973494522432121026458700111949863629555484283457470205043120222933651506087334210415984879192510823051336029738286152924611457529119188871514917769951150234256781728114056990308797013445736598426750804254064137293032473655018947192184830517194779186889953107792880674552530148595894316028909243556578938606866255417875981379157426204936362349329146560803050294648902331894991340250022863636780543243362437818824481019868093957981086511305817826122784028380077105177976903810985889242129154138615524369383647375422256928640744565351710289514423379590544179952302913558235916305106851696227607483128406112889766329067667670936453918853149133384182444186449850012865209660002394704475729425595553656215765195638269605585496897603428103906464166604444488526498555528822862947984727613547407331062380132070646009113520853981038291652428962801274132398588645315786959233115832516163682728969512894190246148231142884368175228221116905412615149394894542516512136772823679467652863483296295253356626709358535073739348543973038503269091674725783533349831396375215852566548581806521351061287614186271680730241690754787311669474434166225981886761890659080360508660451334873890785846254577475396371515024899784557979911558367761621339540629848030035447509286854650206422604433672452972647790694006235247646340721516559299086698607308262099349394418514916388413265270883097946757623310906163085113276431041960669243463049630658639958289307435698560004239688376008234637128919321351083044079804709525546040501156664318620065635079592329065006594973338475038139934479299065717322110232132505837057773226435790517306198643830427398336055328133359977771848741596654772375433334341957126212910897603173743620505743156413901134141216715786529952460466440334117804706319882434801099393855186068781353270065710000392244696112209397014787086968248592923999883078917075325486642264884808123577736046872735634778619447262672581363991573639390148520690549773159284032517572095427418881103747568349632889086496195333448861531965288378106915211690492176016155028231049399656548187007077131122200834926447860265813580881067866404639488619947657450787724454787484535938258347822645851721441254753103507781960937918618261973796963818441086281474102961646035502296175649075725298722034952750182975077362290879795689618998055256711142055842255031589835543211875068512081040615411118264039714819458843462692564620079609496998792323812479591231993070978823103243123532134062967721550409846960502330018376803778964892706118845353602752599316305880450263854012585173242115607156433164364986495650796397123450371161913896485840290801956241560435869634743320553328731189217393849031581060514371536916886206045506105857639146309874410527679445661162130156665946804178684715102918480027763344309416698730622755311442625531033106292540391765170328246482234339669238739790609160985685622337370130188820096628640349919834319356116906982479153973280554469598159329450428274647546664046890557923829823542349122901959755515853869109517355191700182658032788092102069398329505961423944241915503535218984319222657065287295797748212707472608201606313488971502018633926082886096627255997207132032442659314455971270112096098384282188422038139772812859251860037403380923688313698347602144578851795716813601119345779858681846847050239430599245915853238688900357271765239689426540150593984559935633639037505530711461099229327198351445603588186035123828837099459589128665168731002254327616967606384826596696529639814346217987541458656536261320094131547632914694734057877142578429860922692394717846165263322384509662987342111757661080664598406299420779142013304644778715214136542398324012756945272591347118295946728101278036766374949472499190059532095171475238366437087298908342084923895362119818809219713792184956918262120716309156678290120852027328077025227516072599991456238124212034889487014916286477553957945274496986940294097492034563561490549206661687852448534129509784086406707027760407860940183778087889092201170801459870538968465269919617980879252100468836944736155267439550275767720763229678600972150193942438341808464286590555163826069215262228173478632353571538285259961868958082333705339913328115580503372665169635849200367063981337169612759507498657890165188411975041230085309371146745157118057562903141140389630295438609556911338660360523840092940259974521543620950765695876363788929030958896569308091316517851117859573912666981574480935360412099051302390742370077789144332855711643231947702093765228178818728985709805820577594003547648731880338016644137899965739510894845633807498587697996606680576515956370789080359348460602266562404489686935166387436925174345882717463293948302904283222212943261703124074583199636227770050257309472727056241563928829911673619847756654104626237889639636470879556007755511298493268112804278786517881630527564333597855912808824351466332837556138413868969579307193931401771397561683156241336431992094521011955183553307558510152504178249928097180993039860136648392096660335365563996715858936705630336622054197974021854176724169264143605680358247488983029255187285939506143880048307013246859439208018311160503091787052682548111775830404148992887800023778138653881192859538637461497128829198889360979925209479120625100282324326649088407187332405586846874117911940640144332491069684442844042924944737204375203224144677619142131670588376847541317828036945931726166827824564139003554409463825062935492788726070845444931635406828571571832504576932086977401482003682966622611113681290033726711520756989458392885191314929428069102638144956167012139862617396114817704657725226265905668584749535763342070736812936358154703798731390081940238493562262066963278132738127465758572796789654683681908697803905328795879114138595297834775327813442257710452537136668775571284699612500646199082217826222173559297665146937322109824655010553171369736482633586403907636468979252686487905514024043194517980211951920592081207946119573480773228067982386180929507842780458653992689108378374377512285591387131253035935739493883221455762955690076363329261579442213080967971609576264154151531532469180291155531751498750854794525278566884269383034201285944348185606009475732319935011095729410758019722051987071466739091350630821156605297189465565130290148578190031121916317417436847552465242937836120252948086628590105630945316465294936477004383491370814244925608280761928491943271341486703878377326220414872557823183840548901958316846267007257092996519869196377542553587392030529069429308325547123402254977659706818023776938474524421750218343404357340693496783678234174926821229793962228124425558388981124219593619393088734920817601756079726950990338397133260926088980502224375045634292856041660077688948902602596182528825071223410902178405424316248423445201792326462480454507740999280396687152301356822921127887603093825431319546899090880697889019039789641335315101758509693629228915439391364857586432763090955386797371961780564258414871948939598315400970563154599865561774895944184946595778705936038410592293042957869605624963728163165234613853323572890540254310730165198822184177502110559756344091739444188512108026545306063691488901852189681751944395384445781585012613548938725910314934499749038099496861734823135601186211051984044436185927579041720431304918737771748294258067288852379805723264475716900078940383524809423146368385172742139596732499684010984559238708516674042707608439351188151095697989124257979038312958696186213891262867831134530071675971144777686744170812035221908125033045940387829187637917831723244266979527754509196937430420529187607220004466787431492778383407574454559182164363075015858707949237015758131099156213193286266019086705662783687224138686322164089855914507819722071943308695125028784901210254538767561954721218978601085756095665571423504309419271887428631563908163268536533626980229231374593425343837738599512639049366883006168888389615491979462918172355684739569918973368562044289932612831165513160406932133321896493027107463085877174624194415376479625314701336445538874234749440667877542477275437366515807313139229640156100124662741836986987021603816428045182152991479726653172900288022983713118183879586914834256285658280642622102202555094267261391821214678391947885384296348727899214156393697401827375665054374295634297237016302837816767135438177995369222488771429377038926490244407858467462565094762559648183339496556221520064770406421169212066847775364230715450257377712844563654355532274138860695919686588137462447878588940454298853277872057125849145119938375077583496702993531170033240421138143158326569694254467610767983202754751128491990133354205033804431632605874376212711101298301507456663276497328260177658420305740072597752332866503191847901429459946986405530534105479930428296994752024089472733703661074879220366075265747115358446362726146135221493068796753750864631401213550245289820345264743743910479137663676590833411342636092557280815875477082488334286888812435097318671974667188212309950490221724473262628371443846849488217184912120486567634244122743171939600239938948424967283917792200564040964249326448539453192017551114077226695132833937464289233741513851648846659702496599068461771349884370131842624333496573357060492288498578794691755618355471987993661116483973438693916018000376934619899844800072167967769453627485829141426918149504344651364054771056104754397399247962616075494230364305794812326247236692554369268481421971759245607305942473291695656364843551013842288550955382178681677080687132531370890127976111098773812217742190328361020619701414778570689284491706777248245240515324895235156584175341893872335372074204259867505091236833477296069876125460740372299879942465492597894896737058589793415861948360713754359155186481762270693959793815112864560754117237812628529736952038235078102531563789986317464374087863974201768076684579246018113527790145603318437456967972205494763541977058548348132316439290365230561138136867721498280824516267606751978168927631257728973357590517889774047283220020978924291962603501712411183087309213542680740346629946915083135989893626781979793726510180387652805749443943721319636956337905487662334128693257851632970770868571421220057831813469347433325587028969712581328130001464080309677035267711858406222460678843256486206698819977903429585161190842199223088682472268634747372112307216635850640644986250714086974843445420296253356349563272436981927045476834224267386301295524200540599332337493049917377015583091709014111135809534582058164602438495862033467561655093630620212394234017196979030889183336866649628295456579854998087380057045237727164624532947599655334415532568590116912354430999577812381638331260400655474284951560939832259188043674690431151323867288977219147350122160577998692753927116532357599203636357851347390119433143583988076524238693670958299286142283831587626683060177354781054064329458834084183640130570692211616761368420802493036049233447447953363684944629330667317613915945986029345091969849316883688359520949283813304574706296322256645296422560624915282786796975282690672833790060067529809779200914654751643082018880178209867379580942270045436797097681223757856468208377902689517729817820861533404401944854123782513796596050962570332971453736562662891460451634562671437395103697902922659583690036084547785331314489966458001170065650155466148730574832150035167420099116876365001000045462942987257338440975767943971508332683661396390660364491864544581707626657800299104325421525216181923867939864206989131167330034527215270884711434213043768485426744396026394188046091068713852245037037002619993752586877600938134415917611429761576648301264806960596398652058820676367326405379059018041333693662314412695654722701120912351990254798939392092344641954282498567466303008700406584029261939824662776505141856734518300695013320714838500171041012070956643992806534168334555079696424368634880472765759077158994693726654365308797680446215247263223241703622424032173998195070538185998876497864841920822576966854026110537631224530734866854985335313193747730961917347244763843758698087670483301724275327684187626826289003165411012903477223696317460762904205777076957451244166835410909973516109351941605817890363989051524998538116040483474858181724513619943063433827522191430770041947480628462877063628247652098688941854128912493438934042441394660597179937660709155637578607605625277244451515517680844960764641261560301376124658911306853128293709233105789891799224793122089839163577810638594038924050683234272248228962297506872120757547505763646294524089843166679354282090530305542585336364622484685478116472125145083062029339806425902486637005797572843813095657713876211184664600114425339098265507669207608493107569261267002960220079915260163403829173913854801803800778750137172262337194427380919279029063619072396763061410120194349946342227524111945768265014390220465866446783161918458127725945898139497101100169225994756695970272489629260128212159321310002070304787013393361470584802924452597171785997105289140984088886834293695221054165578232937474640740440840080443274557581290149091243232932137398695708834122518288484577263177448146211387068695738645614256615881963405379994238940320046899651980562959458828248519888381658679208284438735980138064994295245413614206143906198961778260910203099342573747755432821850922069786484840451121547277374929553296269867541970927826445235466183919787432412456953509601969259678419087923404999377978132647535618714784330968832390798359024190474691781376017479693124272613683464525164251088759864820553613703707409264690073454343618094180574710312033653912741559683264421941327599211604659815592176666954402213643148350331021507751955492678998487891198343462208338327322806548301277857064975726460585318269462662538265608683611900183438286489357826239208077346954654097413101258107235101576444977607197739640639397904972852981601941592900874545948141273628962164230141627197294536807661025837706097997823851740014255806419406677322916246263531703064238013491864390343889439674847831271663418579069881640533361242640442377127922497391330552790520604730928343574778052187144436342616753228865305381541227284621696509158825301705446095535295358400506844455094434158635001294770925794287853074404453772458862822228835532518027541866184679181002909493790105681015092012447115338687112732809119900026861805493987943057289181371137829642132339605205612715062031375598879014140063960895722483403769659257686290364554394373381491074102073034746605428030868764104022336561056144642164759739665302857163530167460709944069013580542400287455212841636993276913492960712348391722449656412164561198651242044493002081912648050206974988931369047271398946476198388693709806358111193295967815471261837506320328632948252701746177861788375230754519127369325166051415565576237141268930044053736923018726830018687688100478913170584463189522455963579289991583942685229070898809997150642915153371759301420148604622699642393837412627053687721617921537970226573788377858825708385508634536083781440357307710447374383733754389949609812419581406291220040912056276694408791357324885355789232740985121532889881531779002674293532040718199341990430748584858039122465266136810357355372233584432833025522001597122199551731043143924384478499467737904677063789708647637344719742144330319853234567080636707665978013180941873722951884581000850153139756501942967948295243938397220590398777114490784733919641530445643612657170990280933136727906684057284024560760725669098952879194081618164370299219757366221901509601085377227799527316888203130495630147497453817455617435297582276499679323955657468866168741203229144167785168730017354702339301381406269313492484743869888539949528641358197054409607026167950815516610316661113759258247770658805851164273181453107324466414400418920551886848265172767953305215698859176327833142190978275232300291041103702901104611165869888532295277213636367808338073549827700012668718730737842760530996920997764637598577213671880055897353180948132414494283233744131027462869348712040804435779084343207298421525990415747775166990992949582498267715017935927978379413846441010548627260395505139585169869610999221869632167609817563230817976361731544394697565684325072785288859695971466769650825924091838249609216100991560367976632526212576014398610246977611847701047768554686677818381327326517609468217470926951568594470705054876332956800402271985332958484201419541597644729751738505533747026452208383229505871106214801855814108082069925520837813364760189832120882087344342772497993971241048083958477260447104194385348851274550518503101381155048106175551498532515117247377943713639227502661211420208824469409978880688889999309105859792745986600387473254718827129638107666000502771292354483201918146969764606153142223248056643471974872687433894588085809617002793345201350756875648306913592478262667336988518763701688507749090979421823842196572399495730062413366894050075509987233967311261942706355556281400550524643538243595013039255022010907418800465018994367488763107848043599395102012321591359975819363387593290464548136033668236479171356350005797818620849529478154033442754377221731341416791110246227003786647779184582803413361141380483425984269366190575127380617604037747844542057139535968372860658436614388385003131276353527606458913956314723807365387355317488673596657650350798806132747797568396351776764449652589191733872702382561904653476919885621278869515180570835060636190934461437643224321332887951066174811325154851375759102507949877300601110846842567533138384306624911527252793212456122802119173770851447290200871875431658938167680877150366573526355078357414991176969366827654524264570575217230058688740416859876053713596096495600812163507809931934132575985553672397233787535449377091939858395710559830554186088580643498705066893085786772131956512030686610887414821431703887998115135095216238702333101755980539120368839280431553549016091255023777828686718164601309027506485095115050623603876219342112480581913429030083726623552786958560297400687504142795445226963539863799461329195843527348239080860389866835871674248857571355567289712507474079539473960627163787801391208803110478025240800196408217735724981799597491919746576688638639866966429380627557738351517907596765867588291215862442656509413376765703167826763750808985220751105165959791268371595163405224902385134009809752374436468268244145617619634899780349382225916326796056393853778013839928349879551156987742852610786689715327864924188188164861325267208936435392719186649186851366304795680180702981952139589167200364482360695432148614635016991694310493896209293925663941258353980237503128499722918761949115377186200175883383423703090550383579931438215934648778613757449374425534450009514428280106800063241275684000738490423428213659785591836204101177031087493047253195138810083556770396342153271885517754276735900230733015623773638655325116940191893271855063203550632473993542674577307832539696373721680595690893062952001254185074448651840226373297797084938668107299376463099682819990028108844669846005165011297988357150160250925901606114551305731354543710865308812369831177056785081681072118462920985471969419804355220909713920605068184238545525639361561934369407150914616044018956374370261442501159495098964368186811588061859612895047296241583753278561775946163800111872790553384549659117187453843204971552844306032228049123429485567731001529312519188796059009680510208100418082903748612879568244014154157757137797709959082494139324285331620364795799350147948125458318783417738803432974194609873776545625567591026967404457874865581118920217574326522095543681169511720724970034329499356236309065176025572697292766065105805451629665150685860820081749519402869919242660498225234117133887361419212961611633038417619381898072826170704261847032512631899163082064100591406092600194363061763988339463173352435617744397444147967709953082126948993154677919762528112771453595493682837930512396944372829729282203738828858918075149195681867689923464909051497929642666356775685070367243427536558148946197077982447908845868985569687624713099170914362229435425634934908727312644562921325178815374081167549061153420471585083384350200809469381437636030183510098966504563782302177214457640826253788203598355182320791989697676180067577304322711024563411469257224343593965919517872703085808159922869102712086909375265509777596552651511820425424806469960812236971480387368291096886842004113369183135552712054834667354074738423606163487884694805619612133544318053525224203829118420523820532556640791506017488822065794845353675963406679547478659125976409373936421825858370613728424992045393078136731406233145101762339224243659569731014591631034846378855239711768731877103848669580799411072439514758037692362776663990648630181724059194734408258895040706783048584793930708451339744537095346779577353792755324778608365925800298419414416703344362830528325812103487860268317232889663576115269556849344741232439265647125401169177891565425088891427068795293961073829384395910995024660091611916668928732064927509827268562463877651076725215227418007206210063926075446186935797644804682528309972655480308713081763598734069495821719660767758271265491038906221222669757856999580292003674286936181124646983353852715775017451586692111567709827880086359540367394853805121620698374812776284713114675370139693182681607806756730323353710889327143936928857358768641159288922258261349853723042682573146943827896706954063770141045174578515511529535366954165932818923393493389412663422563302239376227299135664505119196251113410046484182500677483303659460444605555388826189216325566355251450599040916171510260153625566032141520447871823560888782006967329880519219755652422387850947865197266315844995287275062298871662207730503002217052276274376994283691990014370631185180911956440079117428239214899229038240986724890844451698887784725634165690255677118064131154381253611049521510853600597795812643325044863567467214929652226751617411469669561400220094480866073553425215776689980398503764036343470742765492389077380070805759876458771393852941389560685249911236759209683607478605717421274062099075769507740681289325507250528706887937016033841345825988854801890526507507347677640770394528997500030822032334435982906589590807380300367993482620493870796018477248417261810559260524151074074437296031801549263638695310519918308821828844080603263600277426079630514040221914108161174516448922544179512843697047107431155313147928037147819711448855557126115663149954104435883267764319939361770723461958619547882458598636178149853651210551739092389431577549370467669351236073880285511392898707557854239558266768773193829707032813257272487266287505141613600369514046215775816922895800715886079803115405977666223211741637135697720851452415318470773157341106341213225350594380491853876715980473032357040166956231050911994567444385128449442259961974560532583269794545318676144737493184570153771015446093679094331263247880534939167317354961350150404773303731777544077726090864475455210048262493251419603726821012795050237895885053971971043468772845205763999866107023172993285269941097834414026689162632788043022088800508940850225661390712663882337808141348671205924614765643296731064715786129398813765441996432873079683280690785113804704826454641988463582054457488763284604138855137065239940029762121089688569494659092826468687376451133517452333961356006254894730350581095943775208782713819242577178366750145610290247243319928327750517221453537968423657957313832198297040894280669453341578867890106192542420122376549615011640015382473754126919139128938935443572598466024291733578987698179149515019022599685499549590318994349329179064734252996767395196259712458882665767243780905801860918414051331041408047590808796320149176407076617833599718498919986781442180756192348468683790083311115679637208392416918895306739801951750141407129183789076985341203397067218009125538609710591772408524206602132038885783347586729120669148148476502955093956186518295288289297195065624571439346296714767321185265336215720151490088427614114049379854360708465993909438863705862072311762166320180858456547381650214954941221983633784202015323334799154029205288159735833849772170783122185682693576893786792813208548505415868585851018953638625302295607966810814422266656568428718228499785591945967648398936392369062318182472685252550665196556420805089916609494170700611305156780878035477903402486354351937193454178343377699742719767536670003062595532250305296782342027798598577102305383713400395909771555406691198458647453418411369874753060870544794381282478151964364290457544143335728948692390282229183131312326147451069829440250441561415555389157929950460306341291747762947683926097979191991341129381359395509857969748855687029590913453411187220448517537346376973858154922265615618505149932463058591251242618052952641543349314296942828631324096592664830987491420257552019822462377145847747667751132205408386963137658381346621766937713198289243820661444472303414307536189835915113312162823944936231040935833656574280163359196003399344508810979843512027630766589700048557502520352020835127356251566556948824482105353170970450267094401360253749735107700231195778890707570876657591155652962051425223746049813057398075350557410470354821201111865224397921856162732280846501896080859083208544028857735403065587139133816611668296093162353864401787596532812985629364365975565423022171443112215282461457174763796082895607689668144272675454261718910257295363978639551244564007282982965038377296735573544904009840553737519864842893396857009562629873843461160399119901537507429307742214510985545550892027903000695271177609295979388707953435607029232003102795337948055266074649914383051792351105081904189720997574596687159006571233998321063684420841241567330054407564276027123167550625585740368473104732770992319319074167504858394203203103290628199374786160497069023102687844517165275522839794826130130314554613083667498637564039622701215189368035903379819299496232698091160158754909119206622783839946134539876337031270117928215022025996874750637135500347486988277624072996238684808961507663614373893576861339328859112857642697021324374185233991389512331780012351949719215401318218001157032438779105784015618875131288863117409686379508132744001368148922507786425812457461534731124718130242360590681749815212026068839996347447224025342072969542802021896561058817191310022152145328966012588593778645418150572837700350064286503242048948138300942090368334931566136204094685763893503575713226793472126447839678986355214868421146209817508951297572569605770072998010835362647345854848932380323670288733371271525137207977703855897905417871614968555822384472567086252292809364424509955509870346328606469867861490393200269195822229219819401823066086220770804626675153235580805561843858085641728634500166373253653938500100260989268056685559943261908814397990891073737131478515737850603322491503103479115747755136094283044729041893124947303868425337115570276245022077784031728891373174130598759345307652042623162480587207328228393638710149678121981180266975538807902912119610152351043312262884228120606678678071559510362071057051197080083695723577097932576086981026906360085526460621743931729669481921865885323042928219627108891964826878141922067141622519021340432405397415767118147705674859369346292612894654480043351083821319407843052890189537860754248861864841351783977072840192888666746706779474833067460803999647982554730035827257082148516580763428886625156613370214706448084053242858253292920622236016171700680732085702395588515035356283051166836723998063562189821805271764080150853004473932085256321569317537958084836185060619650083641091735840813827680071489912023133927853042922619096175551974577328203020096339273025770421486556698292735671738354906018710766609183272011486887966543252373601393009286751775917907939275734317279513034680292318503285156444771484713787550008259595230375609315777316550594589082775936103093898312188319732999661730054972813458613235572934184715377191792547355117582572262585998209738622377457855095355982304770339068617000589506743851080341720645332783261529022012833449782131997700582406725076895995955396274109092639252575646294626798155747322848915372659911714722665171677528890891444692312841223237085991851135828183300147773318922406184526205026156631224275118613230997440255314702358785221414354998958160786050859005648110007307485123262535018671315968364880020332897385309485253828493492687122097165478008738914955787181023300967448973053314012167702658508197321347770509580181018444792267169059728420801391756217334412394937066082968558161885274471938469132487912704682244496973432051299054719776830140727849712866582313248476509759447039168943861026769311188929140978464704090324837930749918009493575841774008855801661472177553740216919299941639678893901299862786663913435810988015167630105028265203394760502082748182935252794400270579183550570741482200307434319669172201927902753019985759161486791972177385771454634464535394822292577326898164168684799750281345832209041216740059461961210241384362191628856643247201529857843756406030410084022699084583017017161976771226049619826015817013428535523781133249166806971080689743769551205494576483835084034356767348538193509209445583648874871701956596238039310201573606449933556318516681153309414296596606710539814745075606556340444594334806706256476562011056463276502948300885240817838264865362457502752323690785553412665898474490624004512321416037115204620985623128813122025426000629517944857026378068290337384579068590941089509317072251754095368119129928083185893844697907448691700811430505154444272541471704207051846485543959949319758029614203864094179773387466218755539702911733466860816272872074433441637656147741347153442524494997777599124139933941358268882676231035012806364991193949875137857487703054362914438497155265943042960442244497764431587522947346355824150337552813564041995334938158056875519731590449391452088754662581311301420226081560248692821529016620225693775119506858773023329925679852148896920507887859740999667369194766303274602825433054214437488203520432970264925074081469043018414193563689172815483647562502006968148063088265892112321261823052042094187534580328104896207139198823190022917639426933831266735110812419425937334183504843026832460826268651023741421292095915026607028381756212126179212080543272237809410879002188663235569876289972032547547002495084762163595019695010644244940138211228933654289540617581990225950688945181415949881120283094659665005581700797274435208072380447816897011268879725309352742353166678917812197873888902778685901532504861625147843323309212270873507627629565553988496159030672212532053155366373935326600099837693770161276844834390822422572364390232192063882426413097240967772528733611052896220660174402520570014287716078433523357695428934550594706243290526251377822294434207127876074174252325124015823219403632275735563678172761387529335688438974378681467533865417490130620120732437145048614476135935643179023570293425408965735254729234480155400486054089680364314355467082848535421841019047036138629785301492787598634778399660225939877233511486567475883121422480654321685621464461753928536349059665431952615409107445027045671197594116642513304837595189211229936333825723238351241773732954226922871147232876603004888853908606902242245601984396561605643961690131540422750360232063162566650183379306441697267527837496005745407798765028444407191905591013171840751785945141613370074884029832870175037496020928727239578133383043071040406228845808779135744515893999970005999405267487350231829538940396013472822036623719557453204629949483241975144834067636701463961153031521288188828938623899479371509180140281077478982979701629361845458669066798384615494368007630297135225393007358407653054927436945126508327243371803513201478391545617783007997704872328144179999934137728495438016619120687967205505805214628759959257026650226412829991358399806861717987963530806233551598041565058912161789901779858674729123541526319786037763468048007192007006703517967247286103728456591705284073215765689533246551456770413260251431294564468538378345193212550139562223157460673137127041689792885530628657263423374133305809461606022404577363065015141749762218708407758777952445198907903009514731858766674140752102606648534772276085826743779550353402926122565302635702963174235694698792534030738788631859829904731216304799197876236449419952354897959767007888680350369897788532064018038543069404877977194260883088439338673144106100356684599000658012473989662609229936628257821419180754424567884983220994058083140466892684850970651223175129333508267085478043653790459917372634343982987954882929815734145961103176315546600399162589918527903372584290945155798475582890222287294422236044880730730842375522097219930800635266760602656978199534009877874026397700040786617840967450750452813388162643111236693717154785375763220943774446031158362685860371617711658904683717820397201934828345722960320715470190767568142250824159242038718460766352497570145124854844224447951924953768702637073185463122743002557197575359441501984623517799008960204650350215836257588182194815828615591459884315366382708847071434298104185467333996613216699629996946781029842924644558118568442625247307155676577911055232648934556346694134044360670173192301259751400164856091462910977767196776261894606040271562037907003841381286682952159051701688791730451778025126252154330275301404006445778774033342715955715183523273761415475739480527413902768385195828443349856585908379305696473076580871337303017492703133911050113559197533607285710018472544972817068699501131531775137505078727977958921806393698686071007689510955380264111565479791148168295284297350828192816625276027961666100316364016359214427954874340565905945758703471755955965949102999509753563142421353887584045809949638165323786208982626090741330165055600716712086837581298198875850442631515341617301403935383415085009802595521138887458391855761491485238944009830709348738647345369347158669773288215265384690541027096807687786001959650556561055070547327535987534388735868887007925114601441043814885171494421652991115164516101782845738672873590267455834653908451464998539752954617208459368205040745761172400997812182500723715097611234355002898004303741039146077377592839562084453948349974588763749984939534446270543045583794290438838592686251815850202051653628619652704380465205165214199247565405958228446230455295519963502332101861733479007768892633054518657776607442246347812924469589688119362056513041576214534826201275682025823863616414341502376838822438013889779408214463667925798831738237125506654697070470617773691438169495522621931277478244701773247556135946366969706220426025401205810780009038103430440813694007677068474535449822679006654031904579810560743887183679355539553529975801600663924285232466876414178812796384113398041616604767335100191420892481617316333846491069474921081154513116718055077642079274813467290118003931158497484042817625895299096627548661247321590251704016826448678769136006454013252250162198217082815415481055903366089386460902100645264886217910033528959585760138071900170875441044018981447267562061073009967269085263545139761652362411165155557636488575702976354742291966704062297000097035059554132543339206224394214143853329719935119062893165342396754238721255814230220944538505901643737432667133256605811767571059778440529875805873939238539715115241439435277979940026050672449586683224812630439238308998608449945559189778285229173087129477307342967000750405805227941666657627580193634185681083419732106808268434824803104992524041286245042032741093048963317283807517556387448754018633383409181803682869719570763179291960752490424134024602644041314447623642454607860307634693322022598705104068172035653829865215408337497917521067562737010137797944790635103079250416360720051956333945320318815152906207939672820846736700375421545890536553869409826452529052832230579038847892832702115290945409055194593459370839894548366145604739663037086010693043122071977050933530360088921721660275399169259838477320219282824410706241826520925305224969741853733198089677344085435858238992187500233353217388677222015525912793816863324027558953289791678796900515180817787433642524474890521774160006041458347879124560403263207297047324514618421526901416342646624646078457855982363960038904964742567269068419029495146879923948591777495504890165660944963772383357327428004368619271924829324429407323793594688136265123495527110616303129267966673099161557985870168780770224184665546994540802226930009144284578940595170781149191133518811453999172944814415576920600077281089473460035452039455374862001922897142649352112892143796095156492529505186541142815225375554788337449945568062006474331085049519545723964754964128173638136079686809221926025673902022818573195709692247435670621753857839785175964935100196427377568449512132533302038818351587171678653749149423796450616954539487412905714685269135167383622844037576205648211458678803678327360100415090296259632343944484679852067272240103328567645553050298665043412488670910734719817605920578930954864032827405845909814111060306851873375699787570233520590327665761875402919569159783753139649726174844093820162639211545364533192005094805277699914657276699115693974877317724392341689967933731115475288802087735558493301521743290931595877267720588988579451604650753852712390110062364326615092798410318951743003369653793203221175058637353488195647683090745983329730213860403813689419266058848934675730678556992536345429546469190033044079248913740031328799832622009685801626147067754149185626287848111887124121618108852501328807401562257877216262670974135176723075595549576474079787875092499812690129733072299225496113630828828894449517895466462732276417641917542016034902767081967788517520083440368019556464159521478824499912035378398331175894232274856765966974194757127950419038466529840600674346863951256754037531481587666751138346570139485349254256372080274964915915496283383914795907685048865321110223230994533490956497602393388283078418603108391097639796230554738420046117281669400193872034481661914597357807145457006810719588091308743967522285412133746150199438966755350118259235706440472291147356881721389293706330863925541294495599466221959933987888587316314275581139609721867384166733244490826294148293744660617260727133505692047265467839609207905175584444541043264077596636111840957581205578643384058538100415976265456250507134150563405939072947754893031416473159710247856748304574850495838971838428145555067893872758914953405603017339205027899471827490906114420395492534409892659241457876902826028961741371499922370323664502182577670124535271928750144965179671779906502026964956218964011084486518469882767547913917801840710727013565874771101854945667877090021415168579002199034221144114378596709681184823388571072132887542763738417502831219087818307185968325072004141307581591526154187587607259066307777779216937856657884266890263356370888440085723659539586702217523941677572362969279390146541171358534740300062903464587539946848983388229927011833527579966236108102714078336234596960323741522293425653535066436631980911601919352507555717442855441511083202465963361891972150948864643843182073269437757599544974741479512919451741687045172974455781735370221786128668479937039332515321553897455669670480456822432210669179633043503701993308958322323413529966158090413884634588138021869683155583082214422236745601445868580804956818003146956331506835732547722339691152406899078658982456622417047738739835065988287084796402645671070124287887760119201199272757464306820106845032941950349907696578811702484890009300594644608633568868728757850747027338021931367126994544070739851324655231375937165426371188866438425021964275511163516952792355404222752814162289940535200440053311516585604215976950626980028847798323647910934069538523978199146715684005500378437717599047119195858942318954800908995122058248055430433881663634212423170660664467467076875353469157788802174141466174248555258976602541503249171465160579279541302643501410266017913023362502600873671769717592838139976800363315628892932616459507135405108034077077646911338453911639515086037226377427420102153012498934185157231374678699044527642074555679564767531300477707733288165317397203608886962669149799532002148231020723045678999333226511799309711996903822437084965237060738782569355305795434221913803958890824901259107749681597775607020501042730136108392298675574599280179384139113400209076452684664206525536160064027245024971876343645367110220855818107442734716402791602794987289582140439258045545742105236596510910695109974982871605258318355671768501047487248364322842642748490388412138468034300917205491496863126695860084637886662656546384550256221862008002515928956623122080233600551920877984834336221414068577310680306141108031968213150650643304088902700635947021498835449241906349475574651269524361358256966983448732025590311957739114132445244468680328559396925966317501150525542227709556981140302965869242552854608264238015432192194243161929858358541582799751403422892242662062328535743636029543076242176523820692394543985926360093793052228717763681996740977939756781686714045203757621128230441606572872199505037305557122652169340688998573287771153185086958323631716984453513161684073863238526688582259662944803904858468437490122394314864148693038244534997311905347801112193116752347132388252785732011221059197195634494624669252677763073091193258640053445251318613189095842136298030097808524046768502132631436524989114289445796306676885191451756265006934794100883169198826888107673086270283838180235155577185875818218436837805695121721032067056510555660088902291392188123510850615458550032092360125907050660381573365095493830213591937114634231566384567481842879476053365903855985031996566666900961539877038314933711585744837111060108223941303925832445693202158778395791110895491314680685671272418186951939119538639487943862200039828474646505293335326886256432661717634327776741957923533005167496559927318845107679644942993329267279428060119716104218538814322238290879063314459302264604856243957908958321851031418520173898383397531270538432914001862066359447136080807279580386614655285225752263062250315029445554663511446044600861642830025040695565251957062019591957007841755764216125881481367876910909983608748618952972238792368061087896709218385555889296598467590976887385823691630399258743783623206956051403097214006826126634406841738298594512523051945758742518754046586018873086525420097039105316076448639728676690754479557533805071820204031815963065138731996869019956599397354221790745411562689617560736807792967025873256778386846500211097647548856199201755392250179963290079383206280822467532663231997267038056886766172694460084621546574711674025842743889268092655545062067154278829254789245646403977306205746482222813786878957127854550672380407185026719579425753659999834865199010558821862491552647675707595664818042104904288419301666585214745533764272658441815203546279920266983040364495717614292172442795296374675284823203492440472765326152654821455089613747167468028539849485884688279695373981027092600691905531096616692751575839435464762364299848619682479940906120142356800366466574610131674282029313337927188641876370627583115796968457969201129235626404041006328809752728396960869051906878186844256768939797793200177407002470556927032324252133435743308702359767477149225569370170954424066924820514870863098662216547121415708147365754514259218359762634932334299722724347019861918455927240210148726526809988975959414080114313321636715942908171712947595573443827632252884750254214147953536293525547342353406080184116363371771182002997994784020968614059244015871087822748212198460572799661535064933562141869819089418558695795099130686693992346567870721736407246321777912475300291394074773879557460695977176147534091040992850004344589273361524447995558609096732474472222216615789549983543008302189309699902202537463535565541995187793461054152193529901962789651333439028979641788263126900250543441821112923950419652479435582461200384785707998634514091853293251741425195029816937169471410824054197667264261740736311969418564947863411249076577053454071575869310422393599770525812673668399478740592518444425873998090923432130982781241673249753931774985306705602561783701250011715035720631004321482188815678104565840745703194611758891255166238975466140873278799357196200360341774941164120601325090580273206924660363535203407657197879381908577536956324265231341196074984431362611899835389378878849755290939278518724673026163757647388074001563166367838013349176268065206864278802571109868391197912083972245743963504363316818987138555327958282445604922235019479422691364661611910015439446199692592989544476390325785868145146303983840934013040681334548625539491902509640191490563610767098929275344917327922659403110971076557032180148782779313648640745189873967099469321052722936962227258903508064170079549084057823611212536541531696887924986019500589915374768938149756149347889370607204129232020252464617887235156606218437243834028136333983341270668839148808249831196582648499491653024545627772606236527286768170503608662444596374545580344005487814826612907861843891045141716039561748353785821542433524920280217809755686818828055203471636271693384441706896455400873005083882076251986650482081090491883585988997441858137905640934757454058166775446814627191804392004207407353220309895473606089800606321502955538483977292524914643921452836257729716629042075709575511001246522189018426073096690848892439537682537221360853925111314780902574514835639316159180430765348950607159787185442207096013536822395934186814703047709987791943504623011362466410533112112628261525969602608333719186053189123532275054635395195363879278653824450135522097543343285288251548217519779873037393682914829459673953542102174255395357050532363987093099432435937485702464008756880484366900313484941752892774257843270348294755116516275284643230677132683379154322438299728014880665237606918539883837504540194081390171648960111665301297821653308445972255588057314861297286547119842112945284087731922642697954756421887159900972327189205535680101409835935948284834374775646707204619860052984051124097759430655473527127948736787948443057133422027219961546193140301672628259121122895708684426614370777962921320723071151417003071820397117119756923614074829235275635130885846185906330941986776762126301333513141314777885340119385049991044814852111923509704885161484939379078192040574461788167168219507394217370780800625908107354013075631854280851258930390050342923642746523214634224084188691820573083961540712101101105112171476268303328365488879044106071121963462597182026173506216231215362488561776651504452437314682599940479734382460696998902625925224879769356109919120646386519637081091571087433274375133358335646770954086177456551851913806775328204102875692048060633480644260651049245971423785743460443213580396728158148603848810538453792844061504592821156680725484713572768333848055919812555749994512395920188203945042752153956716123377582657191722149693761653159917260752005972424964592819632515960364065617418232512949805388575870741114849406816277912212852755538273885684496628521003940559855878324323566324233706993999248859608859113683991926943621632092789771578759196698891560473868092516891707401790398247742138147574705501571989920666300442788775143398120350907374625159900176824213649446437171965779898009880589212525234505914109282325865710092258826136266034982900700880093105269368919577456809959141303141724761812587009732220235930544664952553437898609941833518378608263249638511179305900971012380570339783356990953911103234235186595812696121317652118854297349135626768734867156472758119879412410022715915717972572845275027160910567946645536620354073884165783666085935688768900332733137401677404536703456166816537023733943157631540466032555693129834881735231391437395186519556492064430846036535954091736890246178829589698020338353441644602961012737707834661494918637827230930681940256061664873676227006074247096636133327380936502896908396904289333496133951473378399117318196445445022939203411724382123971348295454727244097042388773330543299051747160047017429486478663884525772589530780386268530116152988100394541628641018887575436581383803425939697613623107253603362806704629258034249115974813578957785884208645697737413399896093094030258106637081309992823410115998167950988992868305910800231181874174587297807692817000377568753883659212599112771501734005118003983007352881018779028054872842889890856232721857904581673626024244900559753272015873799501483364661696448584850078087722830625035731706276311677275523258361109495453783459001914673043518518216584173037796402811647581409228506640409230363576294524063543848639120190715395285408252134750044201287728426878138624229327129480997857283064901547414124118881140704362928749307785776844275259983120363502670117300213271440225673424775669588866334525981136607882879670103058825585229593843418373273478932817749531550916813900357323509852676361470420145856129563223560997234282004255237409779985347314410787015948119612304841448130678816616670350742467911848999799787652465485997780158881358494472098486864194450972016240608766219674432960492912887163654683992182308713521659261849730164690856415248988922584296731031680837965021629521345118360740715201178245060082665383502036482719694349131941998012239085993079212711972851153627875296333017261623287459717831587127603398685841635534047378819323285809591710477642488184395957372288955580404497243463226904357769883207483786398518070225593539565218656877652172841609094096446693800281157109178090000611903934273054384872950627870419455826308796660713713534447355113250475501605028836640943208780988318773185394113144080687667250335207230848143392509220596265320792381661534989970603801355037296823341538600307901923862268902464912093214456141574386273468220677350024931475614537149018898970935442486189599114635332280447877660253711102244778102909915303736301168255912848012029997172837389325278370282553594482056927796276999601542005124596870140586033488597717404188696640156857250537471160307057379144215743479525924923154232779062200700712554246754633653983373345524947579005470636143927237566933763645616349253895953756117097044993534591884069013572124352790968169521036704291949949451892726472763798448665330688219432022261549729589541461706313560505623351904157155302456044122158903368526477302593622101303102740268094929705643106263395890020431012852860561998157620532088072730340091640917695697826945576987982189986113788347284670884216111655752746226036545180758210520304785819627670011874298102792145231140572933003479418907245218428664116936474538792526991843822999846307284043876404597853379246080611483977635477494081101331869480320254093876879992974299557986865608261740692616150493486031447387441325270969059210788510656846863037989790121900859310688382433572822472020653866799848651020097539225309019535843476727290422332442025719281009489129793841695550909618043982426095132646752790594948606348017453096922065253756714305363127232755121043453929040447026155190754680279001536270598797632674243458648142209044438649029678399606918748548322177806251845433587198753172740523434089281503359928470054169728109349201930358116726560106589263987715921983791212775927679284722463128225237151698081864543900312530314024096768427738467761603135791061304607385104321637551156804897129906498592420362062630530309987071550536636741533246267260471293026113955900487677221143632509754669326161649325985831334290717683156902211097759929736346364113928149883003532637127530925646378715918810450462366741672571719923532609395905494420495237310936758883225959383556469408670705315465360041249059536710238086618468402657163324303727940290892203547155063663506003356150013446404024760093312587258886987053625091024094407994070445169166319068652948465238288884166864702916957851490371281895854161599202670612076648677209160810438873804090912491225053035280095981973787792027164031831383279411435671592972191305732020293948492158810963470801750496176739023471964066896304339431575745915633979669172907716723690689951848948377584424806031247651525970810057189805962686752917208203664230562780411760063603719447585140287708674125618366856663174913719594753759529761256225873874528664293312165168276686446442657704268489025981903247758725194894924114525498862110582738147267813619432914156846834901855309868068729726359665822094185729242955696917761281925122863355718717735005873474160628246573532015058777701338142951520904830765848947690379316572686570102993694035792943112188336850294537083779437139427781170436896101692252706934858207585541190638130786329073171851376072799324092356845665721371200806337797221506126221080816937261406976123172103596558111714854885625986041262744159705420956677862123946512714226062394748762771030152414718002544854660319158875540768330931287984284809937574606908369819256704326797575671371357297356219405157501877529063530382210938787598406069792237564340591588345197026522050999617199637164927824873680740402039521050482076636170152329059081673196926163864725616079062051732366025343374248995434656797587515792318834880239317208703675068404847641347333418926055696168531428429447797514005399801606419193371745290241764222452646141165661414471035287779636735009922666042401591832612656676833322864009544314860707687400508041186883768799053938423469582155452214670387548398947142967446635531808884681027994617260093014332384148022819497668455826820727257274745591802705845325893638763352322231579509341330715607388980183347405604024427904695281821967760721627615116947761674406980309759182538464673776204900975383664608107197655129723162894361678189228882055783766651265304526485728767688756801382329131621423160347869626165115886584716837723065721105848372880305801345011957785597119303893214792029353648180009318353012976350542704398464883652855581833447144666352411133383257814468012805237929015064374824704353001521022482061023459669325792870790945647812131805870135691655284125115079954996970268838134743459216006397258707461764421473051426604424508994200189787225934734488370548601430914358642309133298639850141871578685653972228454045814279091205338499407865060411187864645843347678683261204086700480265237457269388330806842776608720441973973945321772824050357914107752643605179504310024824284050852737219528983162444500867221522850462470656542087190321978977981654258782760296776661735756879183710580716002535086082436746987954143511300972072827955404050759796094366716749242308902263537916466538852509724755286078157094744720516874557510321498419892184855295316108517078011123266584088565999738540415254719699485153706454591949283576071922504944890943789906079435270243948119134959764710997625342237401205214795267795614191283087432868623636652232816882312259938269978456678548563562631020625574847412480795595428324414256619476477175134991342650544146573247895229421810180759072344471868721161654055670406276329252926710671059953147282002091161628150989047194003505604725755132536320453829609933943440759021992137383578423209532624430801363297549625919668396888573868144340554769715158976150195767872720189019210674198319856466720389396606441683011782390772927461614978773691461628227782819659878270760146264845371721414324910353390133570687085520221050551182261156668310918568948779971067726588293997004826646361558675146025681529766788464300850123425151716759184432625398370850393445005219567306164178628816332218570465512998181089123246952091521081138232784899250715777807012968681348587609173850582966923018275648135581921937052242099748028048664642589107231285929416419102101729276194704333881683472985646964167866490765581093210407127658533515139377517803957895727863785190395016338356355145349150090689692511036452443573890045439017648742420895925634288021338667960309619342106279904662321731053808690230568169652353315460828979940675380714333677502296663427851528653858376122728835641867108725686458316888891088047135423703248272755123829074241535545206348800779880812960296270303624608719012027389277652021160954479648089072430025074391140595721586567729866335211039644241164638553259992356441373096596624124043920674700860794418999582566797639184833419181224043201683683721551357884084185719728913129305859049107358837828466843456637209019405275651152574686664354241728745402401931926285739829666542381285655772557790711440542359446373734076086294016380055217945907924684875671486264344271194653040855548356481593024830972964758563292314783655333299566885762587279183980880351253749509732849392150276875976872492773284267311211900842819257568660373715580010645334459905572753256640250183498134709712803514556588801655030732275039952998997628724675826249394538479040319224410467372322386683165891745109142127774257834907166962609410536236135294078401046690573834257938145756825685329155796809583667907641874523528256599419252254215814239825690078846099457672283965796725699097148706792034897075233522438934925186164191178066901283475168053014414446520970779487226761378585918817455736640641704881547096412570638366482849382159547590105993370345940680415921838721253773792024444906777760404561285855509630916240833380567697202918946434238783680918216821246802781953888641649786209810346176861918487664985932628248091309963361429018952209678073459496547551772346934227203893088359261583033617615310190456483402671144945366206173792931627386137417868491349937766527428580293249388931544263276196129822013321415319589576139983981138096535296256441731987988799100615653816930549452618506750125622022490035954676476416710092985881320562568698628960855722702034192609649190032394283451765338179103054335024564952223279681650164593434627005749921053557930475115858822410635732591379830860508718697454593944602137487331928593581966208617982004186309766954024118774846932568705840139990444871444105695736335258404178777272256005937404425891556093786673888020156562816483996196479830912335145404613118190292861788887448963855244187670430532994886341167617262747256381403204371102963946171293096444151591740616283912785437585954700154396205347979885491759458579079862171746243845872823567156878016182319796938866877966936502112092551958913415876320831308799109370364444568976107984017749638333453752999507975519667161314081551518029603041392535499314485221443203957216228150897951589133799713645465023645023527872090700701118693461493984055014165299103378600511149480795583150907259725947600855138069243383834067826804837563055759490109784794438330896305554589894180151210549907049968999344532103935717478178770471323097051634577388338617600019977625822036124793407298858741449437335903569248856480340088726337374718084239688213755844382523059537441122343318389075212829042877666152384072527401811830579499614409426539767838245664267502342520989986998385941450753983714155172925652070589503805849306271243973061303059007983120200138855295028831504643275096229321326132581348318904727484405777007728645344553127388461789674966209343719050137876060307489830045265684157245901816588130283443435618914545366817346608504097261437706160076551512528048430216924036895854871782204622854063608411751841339307103324366385853021486907280916718578339319821863049645246207665748394766758394959526987794264363600542308781952496192269619134696586631122295868560645986911487219901100626502619656715889538392831695833984193068235776321405663862919000375191414185034988300214915185544056787304525529618880592679995563998145674964282573224448786779196379752723802801859063201012125457332442547972091099614707848478583889182888985912739238350761062512652494919778481884968189132243593411281424520452165755435733902722002858829730581261328196065695085414916324141141891871333464649324703821305985879399644900456313541389115300445150754147616505686969050750163480468532204476753281719669376768142072876201729186399497551117046745843057766705328789625815978672027544831265432607989342084612292051872595829600062196283971998094567505567886671225988905842382504567964564860457090495890674561440581458852045922856792029536377678696081515434850295443592325031785692329851400851843719905580828732060612499935564652806646433002601376123170034444400812540849749209871590806592337076812353389005056654230668982406678877354117282560807627729604999122713423379237496204057887439875795077454017416733415071791024830486965499099010061149021140936718902984918220222198754051526331633367067421050819998767706522092701052977125379876691717504080639710564842501731063316483802425936619032153675289699473973950270413219722069044805960397326257565537431473201843280264215285774148830713781939396138162069814090324306809446758007615960133582238457548150453668755095243546595078526621302918773779404878620021995617104439189873102669838007313138025587277287418104181644553430844593264724510834440554129080641104917458214516061334365250643891420986434252917373356343182615571325842441431895019285970022550318102604871060577092226674023507947913593499861594722249932847286245067010375664209036548433337831117682915023915604962831727517360716806756545521605651031127374051181709779607924894293669867801192300446887885426146414489230567536553417905884278224928227938089560585017859099138836676996185583318638304759558577452911878299001033476371463258316174103464109174164590223294131729786809458379106200263792968195665550282317451916584821117256401092211182158110032300747189007844327912556247133213971089354748485992421240153397761864981944311178939310895008766919337135475334222018633813915624353277364691592295053719459736636416071000657556896190386991039204560477450302027221357595300633693182528730426209181893541620420655228809550367180772693721397250969409865932141075682442547052195635869292165556201706149013414252535438848727654844120852649669984691691605503599821246926589337964759818566058219977046648218071270149103111019574975611821679428759234880087325929010820589656370056854875019748303224195442035566678288827090772715728403230542240655656279873478283364738035862165481582812826371435098451590189100469950247975342961527018879923297843233636336415352342905656687786908672924121193177458726582580868170686523269762103237405342166883894888933879494576491292768324723429608604085165691042885949266346956577322271856143917871736475150207210804818284628855658716734750455766695049569698383557516065801078651728415414832289923991314851624048259596269207308023495412657479517369293817824052845217180015436739671259832628456142956082887003205600528746015249026920902268199161109325865037987216969642722932783466505102151507380095218565152051611028877547190508520188562698000630348504440889152135959756751435916568736611623843708953572668511394724412224099822341787713449284472149402511941952636145554728145802171053842688928812517264627628610815832030577951574573674248902906956463037721580111791209335911537509730205580501202693574424037357499846800211366861082771767729453633807609943292826898775800615449188558767804337630156714078448610599200830784466763685258813402768962007112841549407957927214221530499728322515365528200254458847812074436369104822454431640604172576908328305502171097640500041299299788012386341736148792147436367482729387664097175796372459815635472698826584136402695062015265566623110824297507119687805674633073406252483616738098134599843793558152079640438244742277724951758308572004676917539577960787735852193582067896483985087081595588764682709867029831621992011571937853145128551841316092907086418468965654556612751206813260650042491894225036905177228339839538118695624549674900748921086290903120586780761688897221168219700007403707643751964179032291053623888093888191895517462810898642627792847259746002910945278959103641270057357539805935477764745261882111581211457852006438476343272537737500316522229849916828310297059861050544216634895634713278750968671351043197264226048230049908503502151474792991200333141705702328795585882045445157631113033442758261452598058549435898832792884876557218231235341806390443637317485898401186439399426660975089980442970944282104478324781401578428372996929617618864836452384590126444050922316880693260045412129844687874746488247254382740486410611599326402145982770718513146069122329220159870413260871580213004777056103022365841113430829115105323464558112631947066611644347577116792868530709117022587067029417162799675832528385402654650188248542564723702643352029544553040129736083884696828599604577650460298549827704605651123905299111927032723072144075022189974527445177330248554195046978722463062564532418723515648522090708260831391772632461589593294593397598877509416057398994680178837940640466903139119765208484271272499101947590765755931424586157699750137801594289121669629131291880158113574342152176791806530814308482186616244630026034520538475622334739840151494432109805857572975385712745639078603466325865273916480345680348090202429825161749673217566581156353786048978066614666040424757060258736982115993337629348647861678360099456795334896718984574892685726807598782846104614722653876187367653001984392359914729815562379903691600842855358660897138322199545536687753853247284543456372548981652301849065890430314619359316882102573679233215267137274931724792154270602619846021956673250517726728123965094741225735077394496435252806727110948220027800292551179389661396824046780881432960091931369781310363364129539968875246740077077865314963220881477262490689354540830322091020335326124177924283698516894769683418493424624562349771022042315559342388280512094037208744688417385231884170978810598999833454674339444298817263474369272971327044422410420476333707255258735527135353902181056512922270264318877252252722317562515939077898371858871083955597502175640832609199164434404560333983449792989879463614487272847445872564696979132579078870445333335489884528053181363096097146890320371078992524378172574560315324931748497158010286118039494594486115066275249974867706599852070383421009556015545234710064433591748636032957524877551804439544987195985253606393501333606758534764545513976458159430071952383799358109918861211132623682329234711695891391227986646683598740531218516957733677479993400788891537636265584945504027913014912398314367212768993346323490900931516233281199027067556179818689163076595183461572517773898531116098663960399604417608004447885320860462919733743168706892917587151180453152919186595779270809312355404877398641664637024191882509386311290398008234789164272187210350679970103698310662331789745523852720172474350876629330131891388368891122941022530761712738538047612630901134189434915327096837703063147934718168013971600427964801932691709821693658442934370681202847484639853157790370952073606941244692906463379452646335399945488166485220598151554479964777310802181986075836710649702833729729833716502144746523570341652795415027064938673462723473646303362763819583676487360129403920965702535938806417094784519127120607473263801436402568344980199618326970589557510541519625202169798436988977460222835956193553943497961570088615393639063287159519676789405844991945004231507556573478831144666170092812597440173276289647391171371544420993562267660114400934423673752064626354203619142613548735545989568768299177274460987254327617870041629115810534051952602721568781858689925913472984128706067104945006107956276255069286167914209283102415333236550148324065296015454302034425998922059963309296176612977374564339836153430084158746367518919800387594227314999653534470815556757568862222762193256685029804264297832506431660140587720262139284477685921839250994882869011159336422065892773043391928490711477923836190582248556929468166465974343266312615361118846583276155990669044791884180481537610940689314568053951990278941765591521614152255301912640474408811193512779559844432113335688586364654719554545077318618779722121121916474114176050361908771878987283863955058618331298607372982044491059702602870171106166705469348738705468042236551932600402503913283359013570415510629155947473584262616715543670070220645137304372234425851265957662330896568023377839280523066604689956005994369654101109916060841006038515215120818343132349324447462928963934516685914269450441760690317451570144861271785043802747277101364891897194579410137904717782490128467193615323998845208987446171098769421221755386398857116626165529258998192361535486924265082624420889787895728891123548024582567622053604463411941618357087784415857092638871567533261313013613342024876891305860445991877244512392030124949279118723396078165031854685404440363507485743525941519902333250685461837101638180774123462484655371714947222558734338029815104352937188291407370814448953714864893229274884822375261202565801980995727720034738643467760192460575107205806905366062261021368931412678537576492748053061526245121612761820401762363086789013729912475195301907171654428905905957981506443986502947425976713540972386771605119099222403489009137337992051811415883203607728451386057561056188849212845134620341672019315087002639658472591511397348632181062915139065698044978941429138410548584208023042393547058949261174847036868662111465908175015280289337738086415090018879235863069888947278183449873751828069954087818884207374208767812251559705716287575188318721226098681418496575346190924944497140606243167006061998577617691937923830628569813993836845899571183872531624679005064369249128754597100488220870500376211557468190347791334514393367469190484898414921845397495907289524402208836983536174687973399129192954086712938392147445959402614266825860534434609551497301246368503032864603605795831913294481050889950132948144771961941567311068455823150633716731629716977860781022646586143116305065731593377985704587355008853822957747817542316013789808388044835844921731059403814711493231987871560664792449343776671547629853073724651321291415158393805715692584376829033656655401556232723118790324921504304264459266882453105684106388693854458798637460413871918615401657943930026998766208754892212741203247907836625057128810433511364913442445142766719896119171226972753945313974182779610228767567333770683836304893298604779505038094130488102735414739249269135335754483419151224747191398617836631776148719865979117801896139068181124904724046225552702475879631143974127189144173061119393716763105741973992446434915830291622361478886799344478738760877364187417537404944413518520402383294513191146641661291080088846516916279538320913413592782837991880698802929330149837287331769586813989411934878086656237712072986203404117452125617459040152034566954453608000244970077917587477084436583819053705684130594898954259021719626218506979389632337932016087611245547103561794537090625200887132266036090051606111454423845595605456753571504965029638168419362743908440440132420498313397442177258037087638018562277494215746752272890668913776443623896284165265174435839916567063564475623249082851385149284723004519518313517661554512286767337473171767020060699623386085591090544133154995809466996086530407917643524408290521375412272604864807977594043780782041680722676734726927563872469371053706182367467137574936367649425005585159430521896712552551944739808810058913222366884921468905797398698160819194794837323509340866806016877347119453368106735999997417535210895392371429097976953089388014155174466470765123736432385537635861034832445064115300360141174201734044846454244099908705595139984176429306450859233934628561571773253381875357927021013487480184025941824480849924703195069541958614555221532770022185278969070098181487591840470580050113031219780648293028525105492174997074647071462140143481589155760506894373392850377557645401155008133061486073349413563521563585956648203764865230975837887094680957581486923093201759681656594818884732294194661329135927971267883916956831994809210315274735211945443114110819773716548660253286410778960436015993634140876219133998136265860096262498769845922813229027593014282995778788093840488980703124700822572324484922397993569564979662548596616640856643328084249192696488033122847110901632119054480367634897556166229263924311987093555020538956329404842072526913812357476992907369734409365930690463479600089822287882100529192464047792002791948474228395364918504020795155623632865309298906093275736764267218535538551549722264957721529323575465552496058663510294299870106658363714701282655571242036218423825660638498102357365806118412411301602964004520883568603245199398442713678638780272676439767941893518186567463150130681807481286805999816222743991807919707450505008679635885928396472853333375806991522741825790772372794762779616814648379406559425558380138407047102853742261796201150087851432307977912518650201725331577526248339323458799971457816340376104813005206381000944794633286132447790256667906382391183463143533109146507219733936552389177647518928119467807107349394503881412187218019027415370417583800670663593160447349024312274243550398150823616991892121673038824348150866029011575117204821494544232258677363765184220549187990487961686246287864718149348419179600127818133909398425756020145735019480986512224986458744949929252975252475127331659515973653830040847146950372376374482475768770911663849926765077540796963331467206459716648376445551024070743512885478247336225834434670226159429247754169727510646152640294936752077437834592743548794509891103173032016256553269759195240047715343542231071001867874396447111444258467009984046796258549910981761401080599752763136066466280193799629701891756799274240359073546779916661206390170338120190021199563444978887746465035071922113901115383097310694774561915606869754002129602360964371782504603464725042062963987992393144366552867751823040338074129263507033356045090530193412932700224444086885845883018957581052235799855717263101196931646891780082242010544102022264992090714064536699892752937522994479018669428221232099290043035898801469993657204536690506296876988147187501190887299532297745385247801903840654968576189641041234504435934139498344263296043301389783780733443193260966882502903498778380340689746438049330656042721720567784930958392798638980497621854875503151107498315479260570656648580640415442557194727149882099268063866673209814187198746375039439518918310836619335809600326302761338082686435831469760063246381589954425332743351901319486396844502411160452068720952704594436981390702780745642795591924795251431254988053797075622593055290478782931802705159669088758618877113503677104913739889497496103089500672717597687417361830577764817911537700810803425135728697624041786535417237874173980403337886992693551542016084324652782530417436032605291442820851779088602545623161131529177671499914651728813300407841968226564612337491758682547716822069187472554886732936523280080392722944031308440376546166446691291741413712782677109162013639960651271253095045266058887308267301491115035596478338473046050089582256001933126041704239765366388426555507162539104023639048120052828174429962117136614465534109703611989529973637168434914588216774154956172907852637769997845014044297786334635398307535579731451708032449921812043956737088404688321363246526078380555136948285239522841153376188561603903605294770726346891384924054332290600715827877401066313748946575377587484780129282566397930375857431410283864899247029896141807552836345794924446745721173764255680460539843427163762737280859865347745423933872236604845899095205454425821236816851616962513511105070488971008320381704989937311836495825554915897077126135481972177507218655204393769657733908842681550228285135171965968488737715028920758271935050818880157676808019633403254916160189604135485708916013711357033246687451945666766457361412385842669060829323812974112469831258421665630333636082810573514079861108138763041516514709166579091041789403893946861367873687578742360096163639014889438107440315455560033713554896577785761667553351765817216105518737269376717662043823959760727973533887103550818269110365851431752955139837850050409400236820185698085416950178204136177884270533851119932234452694730559104215513442148400331719235320361370749656503194369385751578694684555673884755748521428117864229144802172120663908435802219176629111867908890025294296748107829935203001877376977307638631948093472792741122471996494490169970771873047946075828381300139565520724108510889946514284380442499889979515033021515583435719023400004779014509002653628671147343980450575344256954187833519982828885238439334418272694947662510966371018412768719851652559122283005622772410242144341407333394450990957297611421049289683425768530703382860041775945159664294220522995114292074282283969468787324475000123144539040387483847143555447692018344794341451823963182516577206417583799641582318638478745843145170638242411401243874346488825574623733386214452506465664798836632678406490815687600435996859133901280998458311763506730068484229884132600067015004776392632308986699863964032539774710723743850900439270245579161486891076646674040224054921180497730085888723593767872665353330475866873207438708849492508238208059393054504143593431150375699907603390766221806846585963042845246959234389851497073382218799845471156790762561869611362156446216460310615763857390505204390301892774371255536027388190657279960256493121385898544557963483126361506952047200392960396676705056150564020244423304550193905097135168895338409701803178864225307304657115585734245660947340998897150478777146864884601527085724843595853055628262607409520498171039391499891958522278485045911354152061746745201397656450826569089588818583707598537014487982395950156809742268066753096853060002864760826426435053592868319246844256202148374068954408187909559372435700027133298355294973075873109629947560510514736182873900157389004351577622536440154325620180165982009769908852916208749348804862191102962862619811295111489160046260175760042831447376535438839922564600348505483365216203441411009824631878818262156462723220600586805712714337712667098613850658177615166652087432928960620371000920658789298309059966987015397358715427144770538718443556113648676999646883879888221776441743159844970574310610262530807866553487443786068210654701035313714421779756620378669398271775296814868291654157976574842197408036583762909876313304340520071751576564009013145259233749476453685883502336965157622831954103630421536820084601509045387674631770316445652113412338014749190009792301067312575169535131331211119568754319347025324031222753997051269305933954304093229616354376870389195670095692014371220350552044021994053275887922472225043189222298814243020619644236839509345185408366924469278984469138286175290726491779617768246330540510968065415774333249851460202749302247535587088811978216490215474872714807724094845403134769247374445909414185046037203251232684181204523624688267461529522303714223250496782671081771923714578108793042853610034369896523616863089702851949407654026892352766410940061711662545743606138313556115030773131323683981714291249844641441658531367306131924609275784970657823472857338182493328556084131959700657439498879530441845448595810114709333212068357328464573532535641197926651567581290328485501429387810439188099472084217404738468760843759303776098070897281568325123481266458089168856132466445339497605175118331616121399619528826934118515663062543681578728745654067969647030717038097887666598192886050053142415824065775740396005828731089024684799566206965913342439617083007227605707120245083694457295273775192807642488114804521721541744201569362373610026441164265296555281415201768824196220668340611611506795489201567965006315692189738786382543525554153707804958256494588764788961979489439397139729196093163560529734131482659581681144705359788723323648466193473721399007167447752898117634892733794444420733383976238135531060617244815875026877032406999038527148148997237287841407736816776561918626517969889231249124012729777191276605218616056782840609175159952586347020883693988199820226291151883108179031688311146835543367529425595351769207462944043529947345308011750437444334290520570028833602542801074945913188004617637761977375312504179203947459903715797711365596279738928925512330931750006094720344046128146413506407807664470473273614876887372385020396861555276839549225977010902921274172303118296509520130666262991091720463440830546838787905344756827017459965442674719788456778213196393021335842154273390757672406600845410479176102365200397023614364285750102949463977004713732145378714477164080450829438091035683963031229160846456175884316989003113816686250327583764252246452563494581592946139389637371824043467173324069905565435876451664358234556822066156580528458406950720098053138510397852780434759454711410234131805450807128706314223371477203044484103884684178349625733735005779528914569333277118403280052320216784881852167477406063917387133232673426106874256201770467539680142188828095620423969442037208413615592356770320258190196161985098377838365423077997276763354594311243559020706607116547495680391335536017864445218832322851224039119653475908524899108608640182326499352970881116144270176411196593073676626281005062034108895807417339713943997578664360715491106072132725889315990308189021547909945479297875433784561858330782422192393463544436057967802708719604485630884127866907630123016408251563690506213605105643122522063472618963866764667663048302262924374391657596022225892871590895176790566129957166739827256675463560582435067753270629408995979947795468354869267833108816639813487059197117758544258624762067239874958472557684721835302219049099321658423311984237356005993627688472593708057782671972073962278826053279027317494007120838728263909542753236141042760971350133835790659524238517469777938018279850458963488243368520428854253673242045871802847997583045306215889215473032374833778085095120573114160630074113527225952171444250970120701226303957157618673024284403460410908857008023987572747826099397645858526998226743179607228703349845500521000733494773234567120982173839134499922031419422443394078517343489440899077243005708181217590964256567534746557212531190831524134090561679534354375074512542349687138374472544847742398246447152753388146693516543096526766671770441346818407697465261584824994219588560830099337200935958370494624753577272994742439840064001647120294700838651924436158208315794913168840263105334196142821850453420831509202438301631223674246108041308454674842922679832498679647779821377549882001618234173117932221003531326572119186584528901590289619937495698199733304832406608147938596404772805641327310654891359389863569740868410606815517724634551679182817082384784727976168823250738437071791356272615168993393460242364265273606070015385167232266682526582937099697499030137067163760583347215119009359830357743799582405801296284333083853713278628158727342463461500478294469684840218764908704611342610394338371880676812550090873620080202648151264743837865476464546746609753251854490137104735535697344799186014117169942148027038250788765982034428280261059619525575873773253893031961109309800602313853449171280023691411263188132465783427144639887722221924209599457323691961412074654773483778780267442084152180406542512545143958332723379815527622991598848540794743707140858951777687788225689719549155988154610961745525091286854197912876221498233040865885738810201306497417604933040336206950206004051835635817395712465091506136530281767678343625206552407952901409086796963620841815098352690389710534075359632615905745219889240512661709967748129986880972874136337210579551952963000104677379949530853874230659175040513132274450317622149223591456772218892181242831924294682035230085488741543182183965035886436386900795127951294330341582022505305577373933225268586957363050602950483383362591757353454717326212965075618114858831903525080513034671585731553669343986338464702661602854198351540006873080671662063594361188258388255860120277746159733388986765864890018532295980615345924181421945711789173886047079477409810557973433715922140481065016278916238122133806557963013636062799606047916174484101555365357064610179231131300979439552566692022578424914348462218944268903747259032255278019410238105584086567637775989695457324830645799782407497247994694755595648111025199539729517192084783164013099856677727565750009687251018107962358090155764691159414579147122512341997134344706961649819755662704917503254961096930582180325369141243935438111622367963147801275462587856167105995413790165553687758710406309465139235032853761197749760187358471604293240842623930877146592235689934089729922920364928545868875422783714057568238232069645880926324465028433791254009232693870878348551866332912760146196299210842166077488912708910244079975531413727575812855869064320770335256831930384073534477194239105725893219660356711630373997475337729213063842369234173048674015193349786118522143489465327485729924929770484598222982706608609806796277386216312607246467214504026912486805573824470063783135217392642183244437262131195201779318160610341264558927860366737470383321207231208909039007812813072152600326730522962422824895519968738311552130946298017737736869298963049160339920446700137303301172068115722603599125793702411838015701097930354631805316741854164327812796859302245931386219234913284492934907460537069263319347077889353641800738268637898637931278379445583434975900726781139237137106139220962107559677658303300975198751214108434136637155386693365825555529359217427623942424545756053420681357726523345705731173353225479601964641980914100924072210371192140807432588855633777510307871249199513203155264675027990671000702089070762062763185924951087699394756058162684961909329314060540067596027633924817320145335433658546773685734637369145667492443555873918306703835162335531032237929395234237027847509248874859131789274213362602520273281201366014632426918961366484913047948881756372440867909964788901899547082432074735441494059599460236105533763569809649202467778587032704041302388970816468456074838827140020835916823367269239975783531982821034857394437686591620999180306512173326977673285845142654228970185963005300766700147436093161475928649237629003709451159037396886363916488598392317524899436697809116799693282500485049333792594938885397741025961044693716655484417985030799153820887162998463395027501304088902275642221734071931699146294362711511918967509303195180037515143865296003054588326305853335448584166725881785593204032967966733486986761593925084655082699196626439111694394166383468612734402859297817971334422946994785399477650099358500045631506515886094526931368394514161117180346696203730402125629434948548017737745272550071938453928672169234156883321853718444183741691453167013177721639993963242532194708170974397340488634009455286517029373695804813462930291556453276807253200778278689278224193443437972109033701801818218969053464747289963139017181550593644698347625749067722567210791703311692634411967839772378494500166851414969811082424253713256120090096463217833311029170686175773036718980457806715899588940031758167830929080940213255765293152826439253689760159329144348144808941944912323247987103486339123959056696955579975406505870896556657046920448693355346145372787878776128901879689416614526035453996864289154646909086161682917087707381497697611156544852988352104829823540529512826586861637044914137505547193977599912086271289965891194880106484504793830787950471871440502047502205716556632319334839646564366862733116610721314102365788381617417791746929834626700511705452627497744369074055858834063664486247802466710232547140028298856697394830834236754994067898990692565572872953018923965380744929011497557743167933820688408399497100696140913506774675819047589043520288704269298068154389362008790800038870584853412310916509608625486821025498588529009847793473005395340118281988298345897339089165156928863863776950509536086439371793059793461607732841758303408124373613225178096935384053025097311700589283789005267958070953193678702219304179651666805399512664118073390384205719188820892713600811730614127750143496493339571422168791471574213759135221683054062265116439602905318032233085142997332602881182989638324102073678360330765820893580026045841217420073557668711273418544278077980421867030040860910035032000609612642093806519712290758267833211648140194998297732641761642618388696024204975392355934795061601597860532781039313061135116367410176858878060535290007135652309967601708437368167391476116350250384837531991964712993284007982931961689375193242626195480350639270003791831023532272895664518993283144717865332605084068108241746030824211311309946869586091876218032490555715319363041579245314836900909557987851667482005216414259402946542594888073342175241819348111263701579876375450705790101829768096844388321704168551444542303153465806948688330508374592037763345532418545562592273758082305774819113338496054622904136408212810242413680640026263369826531029155973364255765962924358286568496885769681499612008329366835536541709226558892503885545547188540994367942806304095337411019559319610333479858869379955919025434489895897953229540150741128824204664020317230156927284985242197275063858411819005696223339079545833389446237799592560766067803803330113457860567359177821318845615750266132217578479847556845445737279918349962268365460385820940567266269874486093167652323346866534823135732272740073129148050333511233480711758500532689405286918490981822345497877177953941492586411923675085035071603406710073838675621575676990313180425657668231889317998379501705993503173881896737899333212194235309194968236358753198393364376428858175495357117581462004267724415743533915368838713228686231971273617962565008370726134079123513618392581051321114876827852125960627747050294943875287954959738074388425446279198552995035685840025887943550562186317868661193130510470108490804692261774902658333105043028614472405566048825618376019456078862547992830452664568415563778610950396921928775548512152037007735812345384109532184833318160321830994665791768847936487272891731653743556314095835076981212078932094756332423961761840236572436454743023158580376540231760607385405607525256773177470991720580732262520933438690485864127564148518641965038501803015461239880178573254681808970047905697916304496005118805119520279433769883826963967503770994567472670032984343126053070322837042115539790018138708396637809844072053753769562531903998209695031837350217877480185585528835540070154238777144362072453638199690431373863584845997297909264422823481010399551860055683219850010276734080771623101475268590928049880544006318826906398427302731341179888886851364511208908559064474981363657132119038254799875474428422540552966262363851537743808741868783966207125372416541503511150120701101078236219472386344653706396330470041494038343844609132301652815304295210298311621416966770335152771322135792603855510462636086755771511557134152639704499715134055231728444464052401165031149371715072079727358891709097402182271302705519798813890657187622427047742781994210112650912112637867859276096338488930486305193407317573007988084467997556914195821581306684520536764227948005328806620902675648889181012527621863583323163475537925845314642780721294863861517551154289147122820258064310495588590786558352208040502926951272078530494301237516791429892406795753955415425224399613401516428431068160349155417870568457142800648115714482200274453894322483562610964971253891984960159003441450677827455046899904024189033969278825935440903133289200895244868325120163230199268066728948315389862346019307555282254903239492929485157947626994909082739845905113388793746573869209389039201627431158672806070352323877643432283361630917855189647173127916522605129297916921741921885617827423985590473932690689832222027154394758787132422358428274291167249321052281293776290127917761088096716126824697819271737232670947950715536977373046163066009262122871158029893951036133286720990949915098138891187123112567621035302941513754200153142658860478941856091800505900944000926310346407343178186488156874076145654115796399744687419391892405661355266191539048326205587504122865045511744272462765867820383097289935659393271387207677160888254337937283741429545066598638270390893891995415426970990438940745138899553905947067481119720277316665698947234000912184450863496185406437398551953666923132544447260049101251138998422419407613327303661831502844163698985818637569139745014371932562753469347388627040867371961078297821909343220600531736658749774884129345198835588065022391970862323923212150700155570223188621772342976132137371944171026072183708177950903247859790194932490704109278989666459977051538504913134430393753507964282380308863506584721346800512919123922828366681316602220970642773015330574988576088154907413007167607791437882071089639960801134344292211301054033261293583318271467374034451597802376352894498722763004676470036121713996673179177906142469180898423135340279046234259066761960155992320289473198378340055705824909640771991996844695958270778713775545214969900317845108097902694248552614743710384750652863032459175635825714675492931104534792351123259511135623473690438498056900392808091390080950982378456790231147086058526662092028337001088639016081110870616714528320899740599835735680375474134918971985158454107350802604363162014480718576617359607263249258579284054083560826084992978851735767267365488086615682939978379244937842331585171116401005436861137874565103748885543749113366972076581765493919097903886038593997285439298011293184610956044424750535390141974166691556896333233379573655116287931148798149186607179859908520695243272905954451097502217409296186625746697092065596970286836463204324854292126465257713130175983666350975492988237858218911318646127273601367197245804017122091855507737043777901954576159129830732551402021659396805244593615802155954180684710326047127867438563333815632726755438401630458107694266537830152146167739893784577087242787012261301171595291749602245086697309734820125781308275309097319613295677635697055383502532787518813583575630152073483717447190348050081981486279209538565239329621386393559607546813832996948812402162375879753171586356152673761348831101257308513038054940209245670926353385885833010163555345866683027141687381269197770602890530839280897556572742712640955341870021532177091631905967224256879367796665477278925268683044180179399901676228093814596273724123416102467132752721851971325413631340255693057785420159473666224875957244259854628179954667507547424570179900279210332798936956761237899251396767090582530562741635672454438765406333664992938570300031925564149540415585264104580853922057196919259783492043879139656139966212663007709530511194298282720935651773869710725593306076337066146823345903520671645844348305532810218369009059089909859088633894818767228645460993878822368864603091912795526414360533722510932112945889578974748903682370930395794655900918661066141631056947976425887997892983829121591886009953385150009176768553497444129279405405190183768372311021090130956428794024693492963825141058246396266932551980101825192941376861792408205550477515790029858721700133926111128014746765736606092055249517303588172331730415730680542739080075020007356903465583671515951374386053016086416953348975393065058342265092618306803681214947473576411500821869573074866480744386594255592484342756628216508872821812318601809852567546616691209503799295755838878342385246625656901887432872445959541951907473020264067031006847232568495852698145861200256331042068201850779057914000131615023850549626960801269649919476476801306184115295775643281680734743759497219974851955888890586463940547928743318874287173544961301791676211132319993738745951923113150442875548382310711257774563595142025620290780840156356640044996650215309127410930892241689339568846621095003430420080680541081080995189267310000978439870569494200345796807458905518499504029115428904779442590870275640662866768204822312189380088370339975634982416706499383695798808437867618552786022645086064537062732569511215275412340098318095583323054086382641084641066209842325347590863558200215761094452180748427149078552850551565087400113477132326441477287101930456888461893643615202345898940258393954614784104709820600984806278001810781698522259169315961578480175676495557673222350777889543611878700637234624502084520308209715554523674604397261187492973093231081876331353668813239959056203249909996856643083419400874112922951994026728702363464158992445707280413263686123616679237229691918824191749117781350797032107914408306328628006589393563428859837924761629572139672946954040878249403321458104349970992877901904455584752918816613673193971809831947522338849395863591313997680379989903744395282752865371689997872395534705844763402931810862934177909034354845537402762575602675415723436985761020277639477976959737979282791523971357425870057850969947142857827041398092231035755542082059387923966249021814235442137898381429184196879762893532866456507439442648457977258220041690010645672507509841257026576354501340050104985739922915275682777060900975157391729319642571572316593345754556422535210395805557141657269385098728554870719240670801359251492360612783897189757378352434659596920197257238438222084148921717084143115885007475700094818547480750799361432856682758452521052555679583101837707309331610511708424442427356555800860805297953120319680530425056413003357985571743582671178171647245468437520726123299551526678122138100149607817398848962695357357261271603263208048281930628618463595997487528983912533676261253709984081127872269037947674835526338885270317036166251400777505950281738659933614951544350300166448337581637692671873589055852333542487641033535900730550626049658448577351669865038990603707335886802209879479489038692197238588638949108567661465353797046307176320268877897499751063390384795012343939402718812049903993451900717631726727069437356469920329006318695228814641304471782376248064168413286144338214315324773781235834304334726002511325431802861546059398314137666944139006044746277193933843914013547667047111769773321270390447386950639221801115397763491611655705409894950868947187930919658760850687262035689446702356375273915245324257811559833611635704150282493554711779297354709501516421749105804661784692351050646064150234258219688579532195455681436559151537018083741626363614949194654776828211778355738871261467996637561765634681891475922298539100003260845804423027906062051755456574885726885090849645342111947164544749479864915977381944308997156535844122403694584837508770207120822900322871539325377065803457167790433447187229313201240197118531320521387096462118270145116841358750560828299202265584289873916822395131929154818503245790778200749276052464849625411065603669960256785539204971557900226725430742279778357996319070396494900232159758602352004004614850695283611585031315041538084202670904928083139924556294278796141101922479231892902049060635612882487159684302991539535328660079389052504044108007923908375899281868805762318648961908228440332199377102094310766231749943115585085723334230976711094273293226430579096728441919556170973651153444696453145963733434324674156105471063135137865028293637562008355242301660493654535597029606024472400951384170515869931039362360861381311007538641969613652898865300292593694100514189523182770645355018841920664136885447931427547667555868134950858434209309966563888062282324476516201793056709799764333902941677772452083506296568907081007185837542476034382338667584409775408263223369581374043180711635790254307101793671819533872450858929573940889425416970861259490384431085583608291441207122445842702967040915032004059218158093494045165016467425517989583290770137650573227848414458733528964180898228417033573696172266532324807877457807352481628061931688797948887036466950710447991461887531420201539753486406869488294971965038757527127670285770209694161563486107237603079706738868292981373241706087909019008382266597600278644190470441173520120212714979149405156872153425171891752193907167493882504824121704235124001391303894808541507743221988464242765831582425754628699811847629141804905119059593948892499414219696267953764088660986477874683174289602472518110375242705583451048309714231196052248478486883165237271031501176324140140915444371787315789180248315340354516655257677809092544273155109075737441756062054876056227187493849337350369430159323583623710221017529978226174031741919730573276489744695890274488076247392064921097105306372310645714148528614907017928574368767790555892889730402743081744741298456295140241972953149940980014884045125192558262297456153463190645717844733877012253603290229966257247099195131482715057234625218997469618392162067398686746427600863166090832730121971868950302721537562151912420980540260276386811087465138855439384672694358201126029992348688261662119199212737685812054825459848341178671190085111548133406632140336463309834033229989004285616575040676370070341430116661524644700543096673639060759657246443703547256744217122914404626652715762410423862559899069427192566355730943729429116232120206586934013359443886271162073513958869900037016454054465376819885192061407248534731867345323951392747495778513400861833296232605043821631235592640296274634801639068305423297284558696180193385420903825953088388129018185583923296213807611825381848305756007226788517030081331892439292582183119666897061559856764768761509777327403149250903328805452566632926628218636886680515469373424885982494079768570078097399780931090938168943624827098436703387641277180258505951596617416767095511683863821131536069707513102576185605642286860102198640530384223107658058453816697435235050158270180134441589840483613846186851909684733946943172163732565616965571787667330996482744291047757838515721837806158897276809041000708884929106584927142357289542604060210646410233961744529965232982035878521237967527336697828151324842925699791500561248754865776041450860142739199035850503045853247871200122971689627079198979715994053647636923622848570691188704680969056199704516111999481283425340054591427443831647477038274611094270922504022018441168151662917213926356912715623194569170317549115767173917231687013890336019319065933960018738477642814225436857611248204922125379297166667731088286988670641444381418371278191089539640947536338110408794243945287484567654115482383351270808944255523329348437714588971451992076327774329969067898626431665630085416323733959597197868589072062931880154406921898009642197549390782412976550899143748768818666759831562926902241980972155724126801404899990711739656414792514503976351045690823369425718199797332457274972086448276838380958999756433543913430889076379441945993075359777749872797270384291585214083328223664157812903051258745099968486877080657725989141978572026410646067482098430083239706788784802549323418232331594554999104192781650522132625865247639198509629605450534973864619341305964375679824705178395717663570039357099064873752577161254560458863990550191606947635134389131727019276091054189305072961245120619350776150975493679550289281905714117326770436791962195469759041682448755569509691748724302162903298691534515352977984055923463464335794221586138697908887724201467334465648606617241913926886164378981916470044428848753846411061029678415195914329571593951962644454671763859685870728243695690677807738944738632484811860977188926346667925976154182394623700247313976258417294360331629971150429298165458445515872450055982552306973113195140633512815346535439267689556737458415065060685824039334889987988729112439359505198685525157738869385718000927236501362757984471791089413564913732737980399348893684647055509389938931338987724428032433684469877779958071756028564876071993342354660282608709962002075579574496984232054981288366187302191758439040901415945925448376691232044252525227317544030973714449770170729084460529127004693057573523632459261666840984943439157595281230889643950129260483275239860340735893489885937519413046807410565364863710639171525217325741737308324936842164048981584733965715326982410420608083986041805489600796231762935932767475223242038507053319226891831142405737186053949484822193235885611280621914415026645958466731881367266552023437223016246575963914691354974420221789409989339349026330931960712791473681984619365262367623866619744864113042640145202298802979484260249447332689347625646792133287777521810154892984582358027040682296253973340647249926584802479089996857787565267901857190471052892080997702675382058123738088440832374473728633104449541338666064179501114495087339165803227296410984935441072076611556807359966282778262961768719737678218376478608211649111864364777112078053762081005432363151285630993994826854617452995774601342467529479448170090469731302351627223027903722957715172428826917099183071977525762076537967762811411078233628295863497367466289682858921571365769006701097202544726068669156529810559033598509501055183315596322943867025742760526011957507579656987279080413509686334974848397688269855703369138761961894528392062624061386777844838300848708312792158954408516598327277149031781873441938719578062328834730567438044015456421679128787703272314230285060360979506560623634682404887498634876974397834995388555684432069134765724863524004260205023315849623306638873407469929175628572125165025621093198333513689616348209576294127916101754596564267553145389146779170678729324709950800075050201161291630397909517482200677616159554368191301128941610703667828888020893514961718690667828846548569140421807551069057580076593001277125750321343798474107126926062655162628438899364012823649103460640356886575484752734387010443712513886344642890802445026785222322531622352511753878152974310876319852160756382542911656657201031648559617623018660670803178659016944538982396691443674909049686224004449158919920238544879939864989394202500620369917952994970845488565151993432459883196931061977227230986499175504922089761725409338805435129721951974920569430334680274126373686165256111592127193801405473994630048394005909714317947016204853882551314777513327985595087057128730487702503909315774362235318497406952624613020228995379879159782029395607030497976472381060860251501169087293986981444578471720910675640866343956644760837865579363915152099232356849687232316406912570584068790650361696802520244198338906730117015492259072106561893892198783777769123013943357698837358533162563228816673087016589730296210710671674740701242557227616864416766658257103524339712257847499503487671545355751214926394258409429013947665117856000049112385136743630507433623817803792730739897313295858949798185185081475511767886833682459519119828750275192698245534417475621316369320045122028279137636525294512844722959675269958889326767607654677027030374304871374982522222785222790100491865134979783434366855476642056818137126590417977211678153774091635019642578090401161206270685138259158928983180456575028434805696285743405736456513185006485332928490047848310909912890194453567759620485144905543110430080030028844165140239599745311068899207636119419980358188590201250552955114743206953020741072053175319697626960981253721674987695819739931835163698980050832729616612341081187371888732667774726963456531442778318080019305714483673855354467815638819974826508012917246236077607812412648147330545830349855282462277752788061597974244582438408828939361573321355728754527685422917294339615242243328465213618618249374623466966917387569775564218580107714919040576274114135250805206185686800623182199477805416339763878353510711826884238641858212377060896956427375855067191922736730016208634202127811731464683694072455777506418063599175325180635600268734246421266715149994193641862922041738987051338934535728789832997300908353775428908289153136573502382418676081628902654369662235188216734176287214722225054290926688697267705866091694534245261280872805588173259942598401634301049918764337041463389904093748453361749608251198539746198148012153208523514854093531701403907236623397509942054080280329982095641252579219199756849394420584851760612726458128418454934760608311819881532919674101303785956648407083611970874073272311393224405646162310428440929400059696051065711393361413774153175841409799853897885078876077713336731424462047150445093762895828742915589071526991136007290785454966624894445120087537873762024451785042298965652154054990098031293004917391795188349365446053193426711710755435570354049132412673487901854165907514437767431476833947412120153890961599208408558451661528668478056624670423949216962558727227779511355983954318669153754721035431007177791072417060519359966893467770595627115885620162272741010615783884431320593899738963034991609502623609442931234907814172597917685397689380634534813262162481362262713011118027010186518731684556347391183810920895362979274554618241813274236086837267859121031730166897393494502711177341358944331028396029557614753609715952891118001113053555081034347047245514014397826434637390889294429147378476767679072422975834215821604482623909719027844316526397632713563370941991526983006906941185438877605597825945650935629096684092648027170222027848482355073488469379115848614546153072064950011494858495534863337896016112173946891105187186502644358236571338744040259706189207319708897485835156215419133210916612328326900974784035413740900337760035212636960190032727640542059127243478942385348816744255404759134299783215898112317257105766058342573935347680517624160079376364607347400113266190491846414356727608195886431711464206500086973475025465257894106175728735343312503228272424169473549127559897015010373291587664344973987431134870302923452098201432575426149040250141711282326402845339194987876373399666293218576841379738142969126896588299503336937786832665735154330364371421233836289775514694055035821496967956386753634205265285697554740013117635575863048624029341939553494227831909876138137512672488767951896556572227077201792817792110438395527094918003050251449766585274043840944715020644960870872474337671881579653183588627145412476439288550748899367283134508894990229915179225394464860154830292669402813619902129241955741839247883759460900232623888591097582785381856006399300280264802818087441885381836722690494110056425274848284487624608357469329447387760736238948871609946923343828535299227562924631964680609023718299466747024713526482528239713389098273519026823540530666051888864652161004001871631898594182155851619919815989808547987979276683051433631950347588140171507070006278320929659080515862508398028407174176336977477659624704139143350883230520914581449819683825961694692263629865326676820494060376729028865448584092647722557245622271590365393029009917233369221397619165499191459849789111194034165294939148076502844053154312590402721660482045853922381704351842078737133228352514037958940409415594251675353694245835926989905608209081797988165371256774520315573263068506816430256548246726833597295923347117174703297700767653667817770893393805987788068237398274720896415176184022832768491489283702103564160475338545260404144646995888277230873312900466097299368838516042411409328386552476803145318524107000874258467242129491716309067133086072639415561666177975055147825636228516042399767814194089960388726281245765716194678146829318332720408083511394734884481423076233077901797750875837218422085559831389950661555127969151140417817594421286489693697122387942363329224455733931427649675704288146944020893201324413380985374134027038560254038275445545632160246743699520114835413099781967500875301386584960609305130638499448890698102606010725784174975595731918722702752756275785581750284306380933972073139231511157997266918407541378646194748926977154946905537101287859089001554213297717667786903216137175701055137796491179924553324790237396450743225600602440814827846228982951815377968111495006478953446313236948122512408930920710553948018083744217456638399719240291054221877946183932634657523730968259997543030669264348960860864389404790637272471718158606166471987837779035784010860937395351635403613823390558206152034928210173808855724323127763036897697553648070870903015807272779832784520140713220079899297466664608295272907219255361536130958693832637554204744274330120667166965546587487642494246839400315355697424024257429017895305356246817995872702971652995319956693165788842606360865965278799872320301075810094732821908619033611911609355999879183485758331588370603267524878999837377893696182561788089430119818982731264232603259076134975492381807331377462957771477462174275949637186373023314836459396906578257264019847726394656360799791494104728191907102514107907783539405772642927111124639853662125993143946929525752709623048417695586771813189062572800062633802109512220561260145720403468440271190564618858770206837439049412605265416743944395646636920761496234471527009306881132313391433488163340673263308884997688477549984310875934844349061087264935480381258375815566030826294638669228499980217186783471613486656800199339552343832341864425281069640276312657428083602014842738636960362103940021486485072514548070918237217109903178437797854223891451810550134966467080710998661978965297478764990500028189273007496035248832448174472119765562106003789547681524081780940445608666235341941033990108061157881883813854409650289083715129073987962269910393747173321046480226998308898137745679420578486653518852978516936662140628260205001863449105638526239683749230676996951652903609408096413434419391461119630220616545496456837034607810142061718898716413853446128833127747358216240414453190809320320012374878974952608328979226422115785932013931590852537263231319831001345774403550568542933189911824418267630478296530849073592326859643501223809739110240535890611972562026462798160873457309234773948157799078367300409756985237841028514273854102357339688885507674430844000301732463648683888126207374839104068048091227303517604666087525561607276025366794556051825499922682878870665287962878557422398738452427772630363124920454049918295096778205810846370022273215690895657009053188518480549965185450631572164605659871818108871439010887614932161238824471629790256801242508625692598354787173959840559224496097089973373112401476820731195556225334643719965406213939229196131890759371911080368854639957624719695469087330373250303025188146977546982264149034707857853478024628207021879575506976016867310894364662855610124893712438070507979441241707221623303214502520152121654507291505680326256581923673150618380859355024195588130782817440635306234954042716639952681526895284106290602951184415154496585259364713823286858630718827447064880978293463385500053218876223321545789056335166305781000608175302904972188066113859736439544249169900014077937012724778247222480323019227136454342838506689152949059401952986814598896591541590378330911609321105352760339007357035821340530282388977568278800393455105843015615816433103205778199886573743204770373219756455247558868528195631930884277731357224700718429459895276333313632315667898921159217110418015049657452826602592105427744045855540422232727709602992673931733636819080191284103282966887734962366024387389808243247293622949595557835635213662587426406918185224307816724043963711605948442422292109147360568744819441019419996186175166388231647601479117032249956134191271759440654336352994633613603292900359349820140421951128386704178959593309636638256829907160018826290123397684629630354499240427306233451980005057612384755953062004478975035750143140324588561265330516499446081173583675699271057072173908057885621953118575799327242096141602166322012142853528923393802212776643775756189394784792305159957988189484506828998482179092182198536910896688522687055681885024605309296914513951381930313447044128878698188894839918991511030116820699605774104666353582979547098774836067023291342723164339464439905574192775672424616164661604714297208771711751663534042475394128239277997073372209828606203997078337014407155711702360902642573428158197326004117449028865937603001037711675213519200752223378731999706741480749255653143053450743599347620074665197226297741544749452752040572467720325132811194899873031896881051704256034821768608673850368135176501814871503562829940066563060809257984954433192040665324665032748593353570967314759114986855408989875988652335957618606464557942039137469730398770090143475309683380324951152562240160396526625725888335910332161790665642331528093590655990953178245812637344270786938229005975844222645582844654897721685716140441443447070303451661297148566467124691266951253237382748534423564809616702239802189506099925655110841197598699281767103631283551729164485832444211244433533331472193146384042381466337322502701279669836207196541148692418510585254077887705919210794395527783683322908338458070110169082139385697452843084462890893215707008498997953253647504763313260003459219650518312880640512314506393656247559660089403575570038666314486850067509705652936620561648672479253123891958466544269628209057614803795101045186067756760764747088692153013285869432753599387851366841059307891515732718013485419513509101862988448574669512789060481151123192445370213996685090737102263641171674073383572286385559024790854635028275352374464919782445537617392702431335850631858728496024083323267929034455631670120532735024477245369169212756199777704333271590546169026496371836716908553319600311684773494830381310827574426831125846325156670402911482262343765752994082550151994513292377740572280728351796461738904814175729987510590373587529330772381911691587955753653108156662503980455458085080333364425743340319131814586538579125394130887500919082032602282033962860238291539029549481390352584126826818910409847927464057628931353352911148071354700851802618318972618402347305130661829957202297065163884970084369102720682160718436739818219642759943912820712331980829270025234403171480302492015244888588613311984179730826415326698589074922423133584678702300324464370350653869260489503804117051598051200783937477597713672123669047404860496166876561547353405123858899466393520757707014114365204906698469994795663578646694875924307903158583336604591986606034434366212050405359169939527905884538555570147501341995698312517789922642503918320252254338376061686990895874156870082101793631029647168975115213893409904175928783267206361572757611708839657620472325316474205020098393132081777538693533376082459790172655150788459412764277456510671733806030928300277185054636435520586702367500923328812420064750904933750933709990609215755230207898799081998297250587467869469758619256988463749858823937291662964921281098861039803009560631004609954791459464762461233913766426123548522098347696999200354225098148771912965648153397078400781825849096411645370793096136629322606866501123940006170463188486368970481913840669917005388875564394512570614092489537878882581254701621510307533725163219072848045687113159073049346352959063121320459710747397034007691567431051162247602249129828976236556605844447681917972851945245388447334558759054772992276257619711446190920504883987916613755678628559648863611802077685216687691761768990938196141635181446607601025243689301194686752524847083466011748227200046884923181125641984776299456787474431454862381894837860032323271112372729660413268765396949632622099266932597550785662443041168297600939803467607497147600669454645009929039205579115593681491316333086239350779777764027850984045123221139249353507846368971495370580053534459623047148175259848838084057363105737486969890293287001670532304901216374513871923346497627626632558235703054957141038205429864581390895338736964647279171737547411416693303422217482244211273966723987371996843237104287931892829620237731954647624458821741906828187052306961468520549518498402982709154849832352089059147133445521953180005603487646170201109580065488135984862342326199680129376540830478891717847489948056817263108872734967090026970187672013259676816343144311485995728041224457631217923190828164331524016982014090431749257732579419702539565571876261017088774596954243123413185905146326767127192425099753764370273603449327073931887029319782631308857047687886223407531721303693897603008797777121842711018271301064928406814572599338977464372775410803504302878559114640317466658335452420543616846622447000095481242284973837652565018963524609172821314117279344403438661208440208640677438359360228757225893816708021192458139952741717860845700770915948084346155352726747279620853374591864033246568017719115477323416940756324678307213476550449456578206437006542841244604938944942963900685706080335516733710191441539182451230642687812079976954851665485005954891747362356181148344122822911161266470686943555548745893621055724930783569583442725328445915625589271327074669712663440638969962253636766985879544005701517352490412565423290089879421509174459236664675648815193047361801293183161322433986044638648108298604783872699409801032173721742389955906537427882783633167998825452741343094725654926129120915744463146972247241244553140017178486045129930281443161792847573000840137912704198756323019140924842592898823727371533447484049060299502308186034090564753662157595487694698835716001526467055831646589733537885235145445751481710877652478355049390364053045737604206260613624929910132483013426328691316735369745916027389762935269964453386473747672503402015390677734568539047880020119829194447976279845356564909925953330940860761070241113867136151555265770134330786931062105633057541452960912428775260839145719792155868543427222941327607223124167240728065047555955481413454101590671426583255868771428509686278450407888193074231217700172291129122984568958599576729498694882870258085185187271552626312785470603852370766339346398915819715482021294694823409659097868522466153594548566508481641979183280160656085308128992397507139531546639413137318946858118393093100298009956985531175087948776160474827581343711076226995477334077159439023540755583983528387135091030074130045499630324907564875542286042423773112986636915591651902731768805632944057388448651968287935929514356656623945136422694074402449913489644508674462966337870016781335966889971506811906465293801561176073963276097887333365138755440797208632892173101042691406501927313908432361623127042900291497572803024270026500155430136021000450382320574084040006686582371487695610634410436913015978743534624884295872484082243090822511321592227128835257014447878906711096851550162761182072278476510102004536561219647408823841663300868114749160067770778474023155928239280294044343506495924593527163307372295157739425847002372751437085788469431335689162108965142972894230291165015244245711874688517368291513509099223234549325186720061494049473043345286286557064577160764021829500615769032022407219411404468635783023828166650130021497176805230047080760767632919627664929806969556671607145863826011748043627963638767979692969505711214693516183345292219297464405373436944614392654222603028807817015747365276830087499577971727115986292391444569926585466929737699505656500327239938205219096228659832249885452821861866664384038239129859674718110783785982962880074595933228037081827147502832104016105622476955620006810009919804061823461319308313875145318050455326453926181219206599834303311687388656198893169900355018138175619870133144209870802786379537553208708570552807879266150063904627113448402545897492961972438321229095742828895793677440699998710314800212776755115263388062412640319164853549439754090346186945599757967058890696367467878625453118053280186945033062561842845863902898443878372296340148156884620374889364662283860966223079089851401204049415025679761805812736355228482301554227180274596439223364494837133266886338641078970973892644964365739859828964926324303428936561705421062667994087322478150463672932372293253457997112022023527105977845915354477861029631465207898535655738891498010938972768456821463909961709084097922505422251818813918435023581313419053431784631150357638519733827975570790577873331906183615358551106726998533526948299416092518392363090414587651345347697333684912163135455324050005591357026564802762564174997172479337448076497015641356151287544081362378046030956899028567816128649692949633035442640640804426950382974873997762941422170812528348637247447874032873045220749476041510533744738574566698128484140244675014603206122619281858284058552190401898551811454119639215934938714798429713946384850027101828048415602751730841699455662322403412970012248506370352825265469386202848266739356560893665338976613289435962982488880605709622603241377135366030624748907844042204385691067294552886163911421629485572905350634877427917831077511990688616353771459494883686491623182351798493212787413523528694864247515009762337743008591206563606008572174951077484395589352688515610403497354903237129972854352481632415794249575843868024766946469311305822781241787033600843537180382123444108545310260279100488768660890146895671880240322561337043921025592684772239727072722018428558195463440503327744189399908405069620041776456437555722974587095624721282555902100655067896272007997059134250778704267458692424776762576435612206488680322803738682810448119883644192269269244125607387263543818992450316235625712563687778050151930857483821517108783721426759860137119609664064246705564666983722246407056105458050334345893176328479964402740895812455505615950158000435442740718363014495951532381264294257243382723017210413809989592919673843505922484901395357637005670226480515430853641510274526513098491494595119954568559951653525263166668499323798583534054139193442548835574031051959416262628408635365746080855890774772195870836029475605288770609364532737541469078316498709202007265723842900132986399930196134569387857512909047643131053733728172549756899388848001364910411158562880053986393528797425831037400093672627402444657976708321469451437875519077447542678117992592379094738786387140467083905266385369084386013396763104097452889358155446430469348571976308913859702330200582089085772517896877303617563698346669927209876499045022768675839146963828149168332967377866732676274253527596642535359244800626321528038645577938852385231424837543060817082256043623155447655328495464316162249538769756087855138188263971461365579205496227398976484316932950283588217442332940766003751626047424228811358426965141076242620184721248769016933550183427856316975148575298349165979283318428304508558429028945683494111316715520644286816514449972272297439168298475154203960263635425620157134284749646869429550204048321674715376240905885396572281445002331031974619147327876267681283435483815988983095383251181137989021015170434114229379048741038875568896865410744264430539168478120933796535706226528031947020500262795339160002901013629501116355718972089548749819686823876291207592126168598410944064055212812121362337686780164719982710857612222197459711250527984962999701341354509460688786943831184058762518116078013075760986519683531896370045174510262395490723293644276159639736305406027431672426885908529970561767097712378670636853133427597264126587119513290886456922526386408738092612015007197123863789113185570749591512735682274208927035697423810668475669183457606941197909731179681970454431518478705667623095714555560994785651906230041333392882730311239890534682009363647557364914941314369270017407455569170191339615446744631609788634811540761882693967461405581653865531825952135727138164094712390969964609767065989008437680707198424769541892721970489694465432862255732504684787154674588986139425518369007356901965159537189784470376119531667453924916167350131192301667177205003365973213357788951044290742059011449989291187622813615207745645579595122368554964276956176954255716712325617379016579101687163897968526700426048525962433803348961832296691529990250973824728106639870991681491272081141378322077552160259658806160687170206550087801574419690806773109017889586944293753753721042906035288365527878818741182748305110927438418374104338551475899382723912484642304957875997927257866702502296515674144698743556574097060133267281022823436058582107952715395826627810623308152948089756431086813418168514542849467311510962318109101362743084337362545178197760827988499867810610590845817734015864629554357582794296238025198093199280975639334560916936982184457918081017346182109797553607160240256465885465621050697422986780696373235822516570202200058347725948588293732611566229922417842305407750428613857880486078670994514919462912360025298274907361109638504583814645316324796565350721060432133798550010100246004395723748009652667884610477662535435192940944204089297509254932578848599726233779655935246564242965398381165212089489750486791400105981506392537189245128490008387600301121008807412425241656066104618213668348790488907379982350779863746737069984961502705018111980592169031409382856891645053587086638794645660715577906841235263622373815522392316535360178783620958933179704596594582458632240227627151295159260788139344350302116801534953472147282512088164417453185671697378803408761798648384066501345360523124861978281059585752907956685537441058908581300448994268981141340895176683934174364871242755491835318608729796441198666593164948677927089568009842018087921410135650919962657246091045108597755482289259802351173502467666420226040748254328780740879446941844573438977330958118833640559006629324102583920330631667325640008539718121922415499736989039319449252008461611288212245522990685547455092431838216928313715415262563490844720386505555966005576492226000393028491893536634375348711915473457960608190405829692403980189988619846054791238038089855437300355272800537961738056999774100795746331819061743894119922568198882818044727207137954105670018989138699701408787744216948918109752527283143264614318295961624460582879569976853786655277663595510216292981155829085100953258809144270690135361032480660543791979722917322607149523082180040414152657394331126578536824323539397334903624396623342418799619818600427053396018493787263640691500436610824808559770877489090869826296411773827926822313701516731947728244313631136466339693527469042599667197645194059365289307448411635509808526808209567422848714952988361691297774230953321797632516967122524449692040080739034901972258086806334970156332455051360827397261506746818665353019962419399097157316488554574944725029373196901228034966950697544764889469334794871336648736683623859897960507665334010442350562608519235940302948271422056819603341270330638001693145542586132891841565485272955980842332932715631403080525595245732055581514815398998164558265744609811968377805149596694137803105780894413598883679834819414106237994026787792498545365397664792048390826799532236628798733728359545340901443087542598543119913319464619201308465445611054867925278882814198481783163050072322734351399577499452580332355921135986163992014239888208524077831475811947259771070557308170790661614687245916995862359578016956562167364156005566452112002987345046402774811902678796324146206602188295074869901432763628505107363569675880904070227301402486759132870368696419261538284017066089262592124473910863289830457640844111091927482719866437295321834555785731775919977745427929175363471786132007960745359478703579476001118827869192825797384564473814014510467302164933258562836465175941761085101024898193310262203454848658087357706169505663223975987158209970098103430847917113614752724030884753909370830666585207719169056589102246371218893376333392800305245207566908490202230664099879927414007304168783109656024762065634711718657129159448127487776163404211123447231543149034279458681119164290403358228439039194056306800570656550746277699376429292651412961465619822855621265417203627541085985947011704728590490961795957079362120246119414616471476985022456816414701223536232923295556390935238191411742667021966786755293997209891346659132724591715553860795908318540506995023060805928285748471958181350523326799198102610103483653717121598716400028623255533130021423962230134754398972668516907746996377197792511332542094934925852079315138669844622821819214116680006781928415701288423117237884930243051171489569721050057474354462768794144076016648444332396407481082776144857230726341685990651268181602924282674967833901980846929295635523732340800575548596709012598370265437642950617480662523457685225520358258663686916660733644198619983115984446444239587466475932081713132119352222599635063484023018327136284017616042881485392413402545304681753849049447060432418312252470768609344814665263662206227687840446373865204166760975008862195860846085502399074002816431689113067052131823002381210094337977306764325710638229619962169906694923621166433648591170526659760558117587827243957276517245781626417884417727186520528596640114614880311905855635109658814923555417741159564106543948272428230664491745071205702955706429946250375969661270333834509525257948522429128298730183743323579810344513938934288370733240650454602767198704525803562876768886513497389064127719858680834033608670926061603192494109545082172366222333905741867981245551327032297777878872645217175826476481711296817724407433368300918012428188407179960875545558903252681207132613375455847887099508418141901224034114216194244404263401654132501135052221193310640489749411140301137441406210938458609894943431524060733629190685945697599957161784296286017911369623571680138354274450017812608306955808236561826323714503430036300643316793085678925510810946967399105717064403714362390802252377667546848293676878795180321886505243674477359122218383806598936907422796817824058615384830395610907613598497968202643651047524407699848043736777672434784669965318382022871520292477276319591033658319999152517574942215633300614316420963398372774779445811655180074818910077384863437652776575107411878154408804457784165221040958919286410734406227249455679257586402354534783638446696972671184050726188058835353119366484645407889581440869781500456436155324661908814764044328035155471813622137352320292533366034092075619601785810728342168669702288884759309478541411311747708627665425770358088444433098582697883812213182032433955366704279133624004228502310940589009351232945779864904489933436103870255955622007912074148304862678622416179959937393969624709482835000327038596250191383231688873946914767382013881743910939966733750713298783538107072150634013651423893358795096719017354245557731946215254080199443750081009643645331381036155280705029328630459832243810127822499854484698984999090979091373368991857486207605682182853669756046494848605909879685468755591841099959632017826745835239832158393028344961554675831391133631305026353744086461513737323195631935034279447877484089038075344193010871821320497443507295462884783537636979286666318930018372999860533310546980681820360349791632355955626789304827894102585534213975134375891257063219536277002274566055230849391321553867174117266601519325696258540596729080906045911135190092731180327162602235300918305988021220452867780179418007884982548122835559839620669125144438916483353752803764599507407585356126471560692042864759939611534736684605975802967228231960327124854360429900485085986305704339040749852688682088338910857084959879860000536235070585044977100473898249803263688988827456391380324998461920104700040268312456441179391322040567120390680336328665982398737557842482998965795444456072173687796290948515818464659512063482366439170360358348631741847916742079491668460343067003021835999823943619365259407728381518624183569449776266640852741867080468035073478100931864748785167702987462437033060878836698040703789794607273333537601657289391045565468892981118232392816494375599634873924575167266727491925424387305254112462348930193836672999751162961370667325856276166681103047225280469116754743559871544464511893533597813307217120548014554486593169807003087922764128280436329633645958182733929241727292742432420686331363294613989086492758045181357881246049576041064234578586176769744291656395228433405384520389313810854169640974982159089923694652842808079305355364696476107920310681371097572610639384063600073470477343172726898116437185457070820344181827486481792814874576548017908635887085887871579431330633154976723009359027873470197796926684602535159799415125831318028903194105694236999598363752449883333951772700624140625383830872701241050526369842222089129973770379967901736244672314806016284841394262243592787936187207529543046990200039190054279881163666138867986261303159220821091574679851913187729450396256203526264559944803124355631665233815947321816577990781118098507643891746962843976223994205640803477493402056571132411780474856266147120511948637181848953767127978384081274023984986029242680058369423034378994687675532513911394913751214440625314374601152774128864721938351696062324703396499282546432937534876246670032584271967631550503058770598366393878368930522782115739327383240253636558879961590573983835313215880977530880617038097916937542093943687206442025727716297758748044930533666476133279485740309118585815264700492726605919351313526949436144532522504752852606216467069800308847403301695993755747433047267616432331605885558520704601619735374600275263812559806818622622752443930784746922908317454084325298132115865205788039306586233494547494649074594788259301076349163750092675920165300278526881823213333441732650536781883684124013191518236926628676870902240086527264339017506105284144983128279252176123404841353587098161369196141647049520160449261106264977326370275032405373784027775054035930909134740683449700727734905755416360861695579030509810155333329776664300692980519208876362021997921741805311995747424657505325864734026555687275055728910704264714912613596680567385691293174889820924841391666251276246810546489367995515176431144461261586417287877422884713505557191219665417209529416946278417873484621799790422064126453575075129099101725016886377364108820614901599490719018662948551387599621639491315318110289907223728297410972272002498044089624429467427601276153201374690270090412141828100231638043346767984775687795954995865541557014346194720884857453701493051336485418147018293007483102559443751861418814781825985440505020632300955013410627598763554401754583552584541625856797450711931524531594843552063745187262813310617906952956858373762238413411747196488720980012205629537488328504177870167036483969804986825591935681908094946624751991947257918108032225243842888754871390787508612326249931868742686794825867780260549945016258777756532069159703586432315351840555151620828761091278546763583199886624446530448104688940010447984153044832436924447746153028802744895616010401390501993679817891206305684983901438033167353293875776329619864587915433193216581721178136527217783590750862874605385323921777569754333225985191923048114889191204980577660640135751902886850325842274518788708974034196801700524499343768621311593599385567897193795838886375463195417155733020319105868355992426552630972821587228871852302228998513361688339183833647627481385910498138392624443996886870870408888507168570976075701870743818861647743777652097769311914046584168384624506668625365346954247900530860394041785344429994865949982528127938279502243671941709668687777234741470217042863040622825629360131995738952688013802588808612399708975852454811278119241438228457650556016367115741401418029383065130908449696451206614217406989992397953437622127925430179627572819435268007641197489141107017780049665900060248122970558640828810643811365232302036661002537946568225206524298901018149120053268602120517598554261066844689590392610504943981743522172770751569934744929063992666655401666348712714312509082102854151754516854496342518746768603354147230026531716847296419982623586428237446273586663254638873186169820243912060171593938053965579232532697231037593220860122856376982812042657611687090906111030111375744150542904214968364170838617666934730974797475408497650933720812914507818628459377675889436745880738496854601696396239567263653251634720265696590777221001710434972088635897165557735650196146923484079074818173553880640699892101335965771413118075580047733074384529110965134760232351910719227192615635322585239229401325162869780974756886175624274632039354202516134729432049407046884193386631782046276015873358707361228520912127801687149552045656478715096573245254361554477437012275080315248719044015093496029718417045299381985031733330014742939913521492026348000325356378160580333049387961514308386597614468889648854323369642653174810205562742788491512644947386235477253356148434546627187981483770630114151702302317488543680595900548953620047592510463352010819623668992573427906370124339075411691746115350817744783987671872960654948552916621705221186501953639742128204384810163113498131663352220327675724658571045280296458299103950978322837847540814504938245630449190001288909675460747568352892653645102473269993975418947598326639283049954502538344159722760553478037867944202843618752612738303771933354767205667448403813216765793405514664529146729234721716880062586567248734220828836776585303326518018709721894140805795420334803398027871203723411947032607107971169413559410206944347053942036765549327611092284798799865841303089125088020542587359529929243720020352135735294475172630340024372942211468726362676170725906314289537111290168346631893661055996824191128961048525545823309583214181869839931232944417615618086709049408170839082738718868762231292422286389170492111267775342387491112120566047452443760580185439861060175359515305629231882688728808803056990816117190074867168402224355385893800355312374392612730681854415950930406331995312053093700513845804497663828054966528294537515518865096620275444291657913581594671431228603167255008375418606864945096868592814269730677322861700475003149305480964604781283833333621869039167428948209353668987332077857776670604626057474869660512663168030821714772643150021092862259780549865957236762217136960732825834202743804264224804252849736642480841763226722328403131106679229227947083640765992620295852448155339427332860090161350115258488248493794122010529700908774256556943391247084879629577612643842974181120014885138447667404590383700848663362895242409354094025279604299372502238222427527309933757519287395682234920367200559760492929077100723372756695506434736088105166513236335261353405729439524767091929814301179580416274829279781704385729389059864850599018020195855469989116718657056691967955876893928213821647424714317443167403406759907579765492554146622045583176817463022877434647642806183010412054506765257065252973251463930331539153402713557005964967643461912331484960607373077851655564034440477465807459427047342672326501784206676882274718716599697999924197844956806944958945735167640888445234052771971092502163525257514162018761204368275828491636323044321487129491839281239392994209769368235359073459885969167152804589610863526054067994046888453569407573129414009792177516425640968977872159026316123484526677529301876256721482035518020925705559003400032445068284115737491560750529720646486413694771381508625163264278383844590311486836834949934421771975146577246946057152524834720528301767288774462950687636469114094052081666513530276782083134112203283539688912139297268590853796946507500748769984579354171425277441074411633178910136195206494813381379889656012225683724075027141064636852088734547972845319587419146583553019385186443705749539817603466615402875490964280373102734455083494548065583690398961996313049337105841347740955441680820730706691434357872824597812757394047524104112169434846273117749847394486648115853253410849581236721451442708781421646487863481012763286278500820943810145859888296104659027087051478570153586250275549145262783982708982371646461472625856818823495194875058878567411992599728569206304890869720580921241212326092562218689104314734669295435317867177891166714337002035600582461673529472745241337935641648620906308175331943425114002265557830408813503156122043224492635000328468995568829717117517622198681482377167048713532028072314141167513471051922175217753607543687576159053693281235430925238294095923884716765337215803515633278827618495650311586501686878171147715980354961594607277436661133722042571471903220402757003884399362185626456413039983943553773723852436455897428831210227042372616333570527509038140062215852710615631274167124540746636927779774482751259108631469916341307180396864060253041527823459060660836311259400782493409721902822888263375931970082184796858763649764546171582315674104601627014197259234154888471864589151378443779244477528107872409972113304106447465082300072597269615554007788785652253821868688561510713708955033080378973685505932499949195433341978038590070104668443087932456447676063673231321828334784714304678926636117950816101623988786202733770102157638686724912303061586856545208489264809657980019656500504386417967957697227862902698402516259371051567019638080470244868537353162512559822940707367234449033036947582124217215046073249925052307549644880787191285023440621495996859222940361373483467165404599041377048979651779623850387432366841043128528600230807667215466752099885176392830642698278845391084387351435294719988348284044475184942313554942013650307252386046769402580835196309941301460353253113343584848373309003951141912395049417987032076941862641761731762447068645197738092329917984014505844145311015718285243832329741740175602582912262377210211919651830395014362683922593249167258862385807472310169743851231343020423040501513982635069549130461012026634966741719209432315870106111927880837487739811035963563588078316204153874511092879870709258989685133833358402521176922825623934664677327587053910494452068344628393169676102334377165661327050352745459496750407824561496134201623029098202702848907670268777821533214351274764567047944419182871279289114788346953449915652540645588660296792887588040479114871957241984851411329517255058255458377730323263307489018290341535126180800668260255895599769046576979095724879241237274752172419641892269940212096383022257537039796929635127558660855922158152131430492096805786447043935614410546376759114309961187946428074653187862816592826914958245393984946897414536523897954810869806892531014415668108390637233432740006248517853130659235336034826103164185193273587178563598084761480776053906102527791744883046680656126728609762273148455015959112519362736730402836278486062277581126351360876198860163755861575385173031851059958322291446641981525295156043237627246653999108602024192264604768995024755816702472859720407578955846113585547154516348915070855489343530318853511503812361416474317141979785108824912227244547635417134246258713254355006644607460319100541857074522569067580777172440626704104976067160976781601285638547727941964866574447418050300362013916573597764507941983255409719155255672529021624799748910305186954014166615361321862766628799706409263936345138799372315435179418682434086905420168217060915004680003670791170238370218726262932522080626383522654665082022225953067435471034512390876990485339802116303883318608310323640017136108428928850289579575967458772780286668791805048040173593538001352262284431696140069974005686452450726951332507482689475317492647290205428706436959058215328977334656041495561515003528780240385715074725381817025864115811243764184440205911105006874958761124816386185301410948503980763519372076965269231058870193124892445733122032673040294892918732017851722035135111262433192166398371376041239451386570537993593871157505469538168879251105722536661555856427555710576250212069741495035046167982777386300565706597051032424858984622369885745152156737773852064913444270913595931160292707208890768452260212393726726906040931227110230157956028099566532317827163985231458590154441629842744165005510041286526511335632448611597949457870901725602619570885147598613782575279795745057767589437607744379606539455252307767146682483931508594947169262345842179442863977974392037967402412557410638622514244316833047362653594870188999936280771157032917312571235575855422317573710187335528706808979439039235812320171250818739393822362514669312578072357992823874848485374220334913917157860858378164744470718942061287570924846492174098239237648814489942110910861411123345801127218320676738527321247147255281717643459283541127896285720795294150490376129293400281734083484946738405418381002541870466380300609431074946875853664231341262163568959733994151689363314662686603454254354108111682313125648677155986123521613568258486063791380310716712080758189234024003620592047257373936099008780193782704542109918834086945955512476851067111052613747345626310071201996298031053385735705001983237942069138143881339243543866336147921206372319469293188185372256156086704054619304440275156072227467726661303641028294700218550157282182031597002765678366445428249408867201788809312263222896192579114881782559025240515041287285426271898106067809791984145501038757220971633587355082098607650570319905459432846298751419257109741466910456090654761801020510429767255124341336181713567133657961249094187242627459252313722951643708701597844991087930960647978205679978872358223419547280640582759053121337538840642110540980617589996123877796418489657930375153174733380695186710690946326332410849015764358543750913543228799928287030658261936587199635810675008276437388237103864141268789574005096080734103526198287231353163319006769450413023181209683438774160136975535908341251413957958936156152205777551399527428270215755707296839202724205463900222756925021409834939998960594036904753966267987523155129612630845298102777166980277684165546014862033372668701333860882206359679324173048524550000424472946485670923630856432605189932766654826010600929664175420892527659479356821756677577269590311650452768849655775850393240525635703441600299600976949558091022203978340114813828011300128648794909509861745932045793807399840787173207631336283134875935967991348360767475306785071509142437034935434240186704812542806712580855347931440843224466244052211457901466653113617043719183835056970254409181553220428810126894012508178256116929833432653772196474787610172938751343173479281571890732298111128444272583903483197734254289121449675963959370928362007091261154176557715670124532518629404475777452561030053825323485283412620636795605315690220295052128191817277895032551629969205955776350343710241292834573866517621647951396840436299124623056512563441355824922248664502984938743746964539795814878963417417620934568806744017663908484383932466686952300177522216077376980772617964141832994057873502990665331961197807980287787330578436693220046891987142815272284850536039142404554095898885283454228482679500260727844729250313225841441563382017932554793544865396263213018261985929856992142431769698362476792103975852887391801807031681779625110507481560078490465628672202385011967774816060632731413175750552747160728613380296400658378129409678471290995490170800063270584902190208524720951952325427936561809829326712364854885280128965917268371423191877483154749918014136333518310067162267383956987389991540494431780492005011897478188621680847093460323311306728384012005323585475342233936748483440907665896827138211285537123635014066538172130716556741169099212731063513617188098599498992224961243014357691411872331045916657662631675484504102246533106402466197712699711658624062263791678373430961226196315380884001012193132715872232586087391643482880175593010213710690315907709599362943847226533597277311825831048357343484014251041787595892662654367501084030749694834347606171080486391049598330856249066451266334961322015567386229047596390193831622304048702495990218185237523664008963708383529264086509387637428343985339234282930070639887481625833740405195040235520719246413778014380461457457867605516391034139314939344059948354775291417654264279019827263189737454857039446555585575826080033148286295900542031310636589283965560901006614019179646740375742315554543006224086094801634931571916297608668317486747143775029031853499762785543854488642843768877535319887359291726176276744334402568045830826990618241580131980333419765292382949960764804281497041823703765330892677738883070651241568195357764100336801534590983567176833218459936257861257627212383987199560873194866829184072229631925509644673533213997382973779151913494671188884015733517082894818654040955694715997507631432901589290635111093911133674374889238527680845366642882538409392698423526036227628372334434178591935874502095136008596858555935867513581580864892813250837172588248269431423139767263235396118841494641230986222017782421349339784879567743945102866576357314173121299820799193803110445388089240075301874316612474414083099638621770174605130852424988908700591353917809509126781489239280378994126802588312951771531690597094473780798258225458445620339991791185630341002277701114594556309836334374311332204089102794274816616210802310057990454994903595751156114727405954554141276596955702538533091158408815828009790515351341263818638557315737307210637229823586332628521352248757737957892679426096537975998996668719852434408837262172439313700486747318045593144439432960535270610507587884994495467425331673699574089406790453702861484693837374550938301232581024783807423805180460292399976244061407927824314755054425444504092117455506929061401589119488708823319604233240877401856204178486455997202388458464961148424635868159935299821492742775384363322437426411179340366605973840514300040328924564797067934159337913392864740463064179264807073928495797095384244393460843663467349402490982333772969892879420321851007700166826513543495289940119286999101209658509641003195199853776982678023181624876641206915754263180561073495459015933566564135443709176986226389476270499256904090043816715697971327354330442420737277613343632318313687184570410355362938424966136188383520447692564254033094135412108365230471406958356486749757209400432285038068577438195137260453495751833037549498037388665022340030703904007331196881787069760946961988092712617788028644757689176821349408544905767337423608068576046242475899574395528291243624217312852997349390376078177955821146670584467671166655465813164477466400005422936829901304493590669743394058358448964484426523951567606159708574282706512769033912641158962911019547003371658303917614263762577880439794115153565185974527436455173174790069613540286315808398996600359086360558477907810907169442986528250327171636970670588019359966218255570438344802036482147974184073389576590885543770948367027632964381148544334002727276969137004637721121943584068474899856402278356960010237957260953514308142096972211627017466538348628651593097765010791582641331811979771574241339377382091960218827004739300803131152584295137458467667745704032599724832452673012224624737626358953927029427810347326847751292539147127596252950716251670645790918568162718117768705806927788856597299087188142416251643668163280271933074488241693637166985812000715539503613467634059128590073839704354737278804411557579924251489545244030163088544447286402346513346476112006583670137737123204351621022848724910140141692987110942092646082404821631152345411545202409017761142825553946142376426955490052746528389665107376134487176366984758662905966124364189085847138018619596645718694074816451229899188250033073253541392690225318205281683839671251683396721066440838099102422989397124394288431876745992556881575493730086237908754746644328829756540130240960552493705096965254207876442391561603864632628805747530248980288721098203382673796671460299138609227727111029407639551018374805422925931456887529264461311480430443025301441747725486683089119883484782002586773608252247992724797518263993580019975497095875549315559393370534881004864452774995241354006593269015396851406020679796284764447755670280759564788019357957635192151501109655510118410288145751244999250732860781614289484846764321947735914810025675693915321301788427830946140469786200358453020199885517726649801903823430801560677279284933179248309563185293442581300643928064536794834760829488467123741364095120077696435097571135063844469228831738992916780690892218605266347954027185164804378182217913859284732672312726541452496441300982709375710926174941144902899546724375211328142573122910854507023638018958026168238677367784927375063908330936355871187596903524483701848229799281681640858301153241304698821342252057853286944045951490355906973174592987004103257783132508728571805830884155256046216162657315905131091611612638503375340613966354403754890282018117323144569179430533567842370323067768456251247653930475368624898733205117680842362013303151619812574124840112302757680989595808548759350706738692300081698139942134359450549060802108060370101338068850495798548065513872736392288259029698630803148051032532176702224773213275408059079043310391695288166065840366197582898787205422158336919486540758221846797520501631650545925730138287071615326312643203287268290161887139507747256958903919233083634903670342551404548221349447891290229529581030497727177331468496198532503975698983546839359779254440814728515049747899519692625708276435669874446604260906991143801167312499282134710137684778297699483926349757604749199674317555632542536481407037679281785296996835149448897704830377843343514252919287677516938553541949778166042456083135916042986226648507491597529814255053395762889770387329649251573396022709285559563737179281608841567527052125419090333894280406917793530513709348810283520993802370403226464448488439304973021822265112049233750308309567465788562889206379587911958183834767783320443051879316282898542142655650153422615689754041619642061829315924996402338169392831039198122782897916874354797805495059411809987805657360068258166420442088819928805103858473893711792427952712398826490140905058437296072619551338570069817898180053950261225660055582784008838789776562372560498697563114921057680937048952698989301124263130512327026792818982053157865175966162766834746702630108334310667087111949414815314080804856543151561988406543523228487422790472306237419804089680988216216415159133785904307923106977479796319513527277995564864703361175018796577000131422935883816272922840071037204588348089429767169967791345791384521476456434922389469736207501618417078021960283790557897162710273231046313249094447738868310520292836988475070303700310471910705473643033869171111074078342121824271043900556744614083166356436505874894166705377332150002111315922763399320192511774639463478137453838462769119777283933186159433909957551151503362521323267084484111647386171681875286412737994992238450531105767111531486767665518381434540146980519637197703890446298871191272675883455901165728900932943663361006653876694603274285752332945692450469229013979238197128675464914996129850584434974635762667390399886645230531467118287040368483620775936671245901620880016350023659066596618799612491389823567416793771574349321530092302060279321660468926888555537634477664442499404419591898772766343615897356388336787121850071227534158244976722261934305112053660286787753362976333072995024590611285286913485713875554294927302155368562247044304685137474298245683880502960585886908874219296782753389922411197916177942612802887100472447554772215300479341176839131265559472600270755363839561068838753472900387042893571352330012323294476242668706523010217164531082882896205077299354067785601755240395726245381610256093772642701276378959166272573030898196957066049963144320067829468599467904702295182344910579715904184205015873232994949959873839876218384843159169312969191182028996575349308000569575190450640126449942367967381021780927783923942575896806949498207047445952939058493504613928562363636867744682788548850275012795291847655298309038813665268930809942523808301272469257436863653095645482198306600431429814432805960113769712871439944763694129574722269246847373681537150904203692237232926720394433243638383325421014027743312819470131741056768907599682219115098423113845687863960532908491257838041558475819933017647649220414457063447877990671687130707290314294560991286709329980033432905286052081772976611748127246341660479720553343769709189217614017277594978166603043153645121093796684325672132743741080354263198217157546020801841644887215715384389631931225268440519110679646605033694851735051330799001210559819344196380142949686756460186384446213407435902108148734680907788260114872251792651586808247205473042235645596611034958773560295282815028600507213668978039364993002210707688310973505671395569638484387768216310580693089880669814859362146368275706033115586243862734666912269844701675085129879587163382827235664721663403564957548262225763310429175942560503955299680221294518350783653009803786525921744442653750709963285212286242655942962127931443320809312309671029554195211044999325537775801446399617140187285370818575402207227012191006221495852947847845093362570149394979555532711089435867369085675128609177483517276709383484638199274126534255997240969932503556591400974463767578004252161600360641359758375517236800113521255974468540600095982102625044219822872508997111281496422674676376703232910500730779373324908769855813524498673318882230438995895835315028149692574877995963129917706303319635528877957914359018315165537775603143121812035756184530535879921786183070995119817723659609133273516537653693844536327046618462002347902605579322925996093557722735893372898413810733090515571695925796964647377030480676180753770044970531627596452042990719700226793102009099497361394586278362233335609932080385275013906224756689995289255419288765652801215763932973164464137108738462068666783349717959274799358348930756174629773211689280679132861967149865780557009503826817933822249368634208987565582017608717149965227770927897319846867979462967956813112658034923402405359872595622805031757008898561032832051154997641250314077017381351002960899249484148156031915330514225216920501336800883694107260932246458010879569646590263927604848343540432402076260543820057568513242176929046817217483723919978552181614463587991776463077310755629610831805653952470532004936169259153486717128891572519836683764587270627887487427824976946742555541015464696863642312811366230075839238095477344465348634132011885048052204258581354529718917777829497923525980472848326665072896478986721936412128189776749292713025191996067821912573378178984455422318221286369826946536964010551818190738898798974361922000841429251308611925072247603235150768449986841931388634922603921565570367241366255471002287117051347189980083342017613269911976448256466968290505376678453904842343550991379623630722885607820278876733046570194612372996904013117384778966437999855092855977869672083994822710446263612686948178166324846010922320211942712354971994116829341783630091925275783087640652783496414223861154308558166053633192833941316357786991772689611034413569787393642923493358639239048727361594776725379481278104573393495405995760023859370450079792755200272754016668907642612416175119198287608022216135424623533258268861782046863841662026826743521068315478077617831124323857046859711536122075129176858084263111786457078451310172088521935843707846157006872751027211365297644588036609958982632529775026264393392791030969788927024786053698014996355772637772899980217327795443404094258094522430049214648675241425868959375431087876455399630609911621554222694886792736770777354985055156228052563569390785032472240517610037987006808277489976297869102059973269141265728110090778331775548835996183275932338836236306016511840042985888822099625160268122852515164468362440398452376280754961857494591644930376185816033822677959992513830841449932038643263222050028497930828652917173940536901779982124578469214968692374586410206103313925857151638897674003630347849922264839265359774237947295951745175821607526987505871647702375954755646916525214304894575766341518766475338680976588007143970191894918000939903868430223932886792707807190282936703479238153538374753767919043267164978694140968937200036621488511493019110794825594682205488869762591693044172160751113453498945575654657050094580189909927688069338420234260306170384605612815204112419528455653176102326974238140298716094695370838088755866518243262564071383803460806726475981037348698704913242027652597342083535813206111783129098986221704191777118288472171693134673657686349806639090109370310906589107702266860016794127718282217414011502050075448689230876373985294473899980139672752501815510058094026680927339597990501976104935857672085116120224245041371158522080146418496485510161504093145749533152777977865599042534229275123254741091466792470638138181966216489332173063898790957279919942701446763719768677771363432690549296408652857342969632223393610085551559545049595253035899630027257781450381410285613025073848936277020503104050571155714584134668181949055622518513488751046351895012286028917142026445003379140640182304198242857369755383557412366613642872676527063876796211788763370979268807783857371855599995174208664505371289754397136998095798652319870528677593032314972827135257455757752923020182615134672115757383723270825090471354993190731299583298931282020846886794239101435187729288289302762401441969547046070267203513246750503634747670272651842831764972472595418246471692195094374698581660184853776535236431777266591203295774112145899125576468016279303443545301172717409694834726753972462348380859784325986117254343632118998591226864314805755373706499770627935642066483475312746571664907134188662954288437832057742970579236267165503833407945167672146031411031999178094479560341294743016956231682022926728056517297418943235825835305767775370238377412251605067638435367437866243084587170101855458812174790489434127318955758043694654390288657012217163308948360663862881721237340693215480279710333554470259253294807055906196273516980942831667327210502755712166810074756292296679188670370127837410721822687222494195993971753443711951705150876836322538326244662396131143241723508057757136556436707283731409726841433010277089855916611682517973245676243240755774062317020212120614205525959411489817510943096984144582662408555796399403288794914218647472836517013747055133974206081827453601539377694899008958105126056557762106474636885636962730873198528497426724467805825630444478667344172088453445312770271757812500319362197994573355516424686078768513257492111601883295274147882482458683474664101965907683189555814425641818411709824030721612917599556136236109263517178287655211634721827139789329544668227087152647512036422050779047811204879464434773732786604393241919796351097403666702857371098250896007674082369590411684114672307093696026434325042595856700709546481358284157022651132925918919995183306151916591603742566441918885762081042124133928341174680385993899363017051740579038680486242617438948625171437518974806684058049372165312715690919783278532547850342549408819953250039222839068501500492833211852559474187129313101708655780221704915342797197057355397495014730520465760688830136341355742863126870163648528756064266979860653241857946505252144348931882337599534908230025425844327265409337601214137340672138124764564332900808988760893871139171114642729357057635540055805598815709584281185597272892303083684932889065801103268976953515877103548057101890561378064692056946813473551509006546862426255788915283477921812650810885241791252083946172943378050347756954158473326536035985634145733317346073207119444696146389027810125665505946511123311850884069662033941340147636240933350294572052169044785961297549302959846115358659312884123251578907464910774752765271407168037163405546680884991672566220828288535706064304535537051229307037931087792814072614772520464637723395014124838149854970398123890222050227486131509193159206018543135280549288582943417426497166400905218006631692696488929810073549712250550048998733577348376844341121179137836902891616228552416074697185263817639256252158912103984267299102364563064800264850640036956601247511604476009967941965209583406235332667043008409444335053473448621905340595782492828415030497211870159859587737073505523196988909441389091154708783075157604129716691401457087103204841442544513876099826919803429364822746730187826662653592250209895121909837036543283978073327892636090784588004423762175278976281834476840279896481904891731721157907290687222424162844087450365527227599728199415418998596591870619413799550671950194088761903724639875138681521076776610940409266914208648610314324228338846250439798029284267546200771750680790201859676470038688376064237898258827510055072014563133288414017225188281709114545797550639986169727105710190515604464561701030009511467211385467776980374818269977358935048036421348783432860189920689359851137006343621924920804920263896476494638812063280238980868609546091403649408454580487665934267957709385929299458423483640791085368882142466535033820475371026592168109575752083322025561902041882805379824541376340082338040664424542124577906851404096082101899933081918955187618310984343717280677513535678322706571736825523876973584610263283839499852699983025634983955778022630509434000166898935692890181504171874432148905390717799839229965435436242787078153228916353734945699554508313640519463770884780583743866049651633004443476950690961267134228761365060090456169705679056604566346946378749884071943089045839722941466532147572880168434176866222861632666416463656952587061507494180593807141561251416919131786599981276516848468513650858664298273239454420792969421258667136653250402571801990828932933339940068895436079577508513080647087849297256875364693454470508092016001701200797734045323586149874943030489842029881728386270763988385806364923822742301060287102590252741907067610834409640087251837652960594513948968008445299956095419940619544852198899236501547934768099019253796088814468265153627738005156441029104060865382057095923056342259748238831811002256083882218578998515875786333941106482910445097977130679690006374801348246277048530180810762288230615780752517300741462408995739584164086644565056787168156156706233015314753782951900535017494537209709905466147167116176569170881732586909135250908090733028939512049948321357963013537682218620842994393731078663649498408317569941167876445198175805967109773831434574014499935247615818536826259541238257663634821661501437985221413375782594216669202193645408278256599994982394151173297475190712271527864438246207642475471432760302962441563565543530500288318618071734891719898548713176624111859863377382688256192318094616448650049375549282768262020090821481638136220826467904455297053271259409201483682404161876804827420043560407650261183838626805832459593575477849770765244501192696725850535920884954992755967528034138445532806552268466913068686431918638275216166169511630307954308532374983138350583878054202955326431900423295085652023405308354310512591089686041131160096937245878443995083760061924674723365287863875114923392931945869600936299042499736532788755567095375277688537148582079077564083199413325350667233519378529530244165770075504467885615089729168128949767928194670701157257275480399919896280340316357564847016498110619293182500760571982722025306327032138763133879456037574722193008571431860886758078884401832124768554456432404760686005537565560499319863451943870114421961170678516901741937845625233928543692712788108874678195544288340448476012736040845478127311965858306300703952932371131958567230256778905759491383582355211951568145154868329660170109003271063779720159275026742668042414407941418864887885830688279292038304277618587699952425365069140532542110757253301741615586425539180067005138540065001272294309314934282445011238842534419665675857718306523039296561290016813477498320169902868536078079922932783865532932743839689154292338250497589575131078379624515096689297031084557177540633204176100070274761307114924476052892458529139172694798945746839443472481104738121205388206771605918094576473163896994919792662921903520812196481337332843660814044674189073544958692900346973641866494672891192499016315917037027672592198623696589215055773569139630825863560580573839462258707702745680881047017414307635638947884181948639384009434243537142770706407982647619994083948591258984106055601212944584384053333608357621388918874185282499515339139119998038640641827682555113556623270901033330841938130000408538461963358182724578490721330334250962576263435661504094351125035506384512454589121195494672360960542452756363283057490730988602910040041530128749716080457461612374668371811250592727325145224546403124919236802236191433615175615520150671773851973283543377099509043128042553623257793700750735851204217701725571437444842200482123383350768132662287586216047761363115960049138523382771159220388694270017673616319315557200338310937903330313449428165288189891623519527018526835402512634397687131605609077160817891135743758261687860158217807212194116868344594104528772868667896540549301974081155723473366769854946050871092641913938247657549849769297400641491034670715387264438055622995382550585300414287517715292193311899235860438114665609498272808786718062113320269357696480656881671825149614231970752034386024767460627023596665575625783101537873135552555684539060843131466379354046494040793842587645236111642751704520457181737571390658870802951293416311379075110339124046298674336692277093808351576025271384303363533334099635986563881424218343900805092055569956398071718026525391347189417742271218979805883723389540698167896758186160942322182761336996666206424278756087572157412205492107187505265810989428399531195323093647221884950004940880850379243852327855687200177682486503485163999006743973065850501014175246225967266830540073876903651233295278600257743613420559962786095824829492497858993334583377766033843115287384359490275803227712016618387791301711647730844735270592101836550638275265301946125276038098220485991537618707006251245184325758498091071349832017157326618879279148896814628009146859529169993934587533105220204189309030838328036394636023153793533789305865117154918031089318865238413311652703023909590416997939625790904379472509171748094398210486002956836183601872215686820795918609110304019115435229917217622242354557909809655559086536231030396142145511742856870396698235231181103685135191507867209038411548182009435491777608958801968634639100593311695558423345013806270810020337270622740283208993925709470975629899907637226084996284462986461178019916290342847394518115369298794551597880784648913533752864478528547229817961506662970547157080517884078459603071466676557964994138239193800499115257565776451674823276717910934740555979199371440843898976174935728893098969039320366571921911923514853712174933250491338907440977328081905657371678593125971307901457182057729700695493702419300864980754185660901464157465469226871044574112418441616920306759179904544333981379548321163355795046499886000297203096162465918964454893459014955830170786798655587722206273552649349041139164960994400501501614590733074784179470000926216688605759745110929623868331692937173741913814717533665268621066356675374368606579323480130167994141459421839903690450595674574542668109305568414681293434142969911574006629168129853388278383606846086999845244827717894703112522603468450313194427475255171028073192365391852047510698924189674122909224918155692966569878439424331025308097155757015541397417991349768117940065555547133609941256572993724640506747562276991631799438546249805806475766453219035212081674933843564654329383927077032418719854016397554112184292034009149107735150190746058351344926461821404088274672585934019202329854366954896944466662751342336314339721871201748209752686293098663949875742671929898322718538655630067551278679233598162984391212066945497778326945100808230935230084352928161598176675053581537353572081265104858541395770446663436719477046467776000182577650351251624022765075925122157278197312696480970162015992328823605870610419489493941251097799039599996945692340428488518949301756217034692350488696799279932656005602033672505403765719687855767518306421638794776982741691768580786607092219766935220525693049709492206026209239722027634705836807063927379911316330022134805097524352193879333574403870259473061085130545133451016899613582664021803717733117343445773269258590874024014723605949596732428164959912713663648752075207982081182946263448194342149898620708842333628500560741841090611727536040033439663155082049729965829947543272119321859616042802569394722902185609452006977180913827846896650009170425337265717645048862904956667333271918709228159948902342192927565470097532373906852541398813138423607376408315270238102914219265112057482154674863659986243433074832641491950778711133991673414816310654853079361155037873815714054820178329961489194024172487814891382218899861090675650892255290039946994309177018758472059867065968705921517016001835394645644245296329034392117857354387409763147067624234899715851185036982419497240282839146462734978184502581463480693906630635405498560475008315514761837547826868279480005260525912679255867342648237408538680102403177207756737246906574997832570486436042213515545122374416465977060463187860643563878080405163701329570102732638055070219276589531362646108723173490078513952092567903901493237064801347790638928725965390754473417958316480289096888623930240318749783847426234528344997653780109135225007588389980122582976815134448261346884629748680004270397122035474065014267558175284951983753440527711705371105093606043736675145327551731141883494499348072731072530978668414086387916566591837941675438622506081815854237202120415705310423213654328114565622495720023917972734026347396422170198575127495732143173088538769496807200522060581237055211631400418698641637434199631210955223045727036909279425773618301600854922087308871738987852475651382207517292998964919268711265839614957710490139260924362342407441243453464231656084770320033100681998018969022850920385960070218055325858540728545205284087620734762242557515299257584601306330581816875104912721278192004044006989826437900974547427396459487822576341228215907856758937989026992381471912898952130530885397489325073193437353384654554485857028115237535083077263198950859050668927319411942203678464938157799807106529621058503031230982730400299272511857622107554678823608521370568752089870067837157311956305835989205520670330009741643613591333221932536153337601243359284495404170071759584052296341987650848572843064264472857384163727156209301233136197145476375498434397769389473714844607922752619022479714015926186252363660646214930015637439509625222144420091819076265553572498313759414659465052592985548203262586467376478456142043777062350321064925232732725658281693057964876864069754704849503796408401175900804915454374862750201331879427788844187052771236935135987337937853687943675660816388320152806687048719170591869726702551304770531887983833818630157143000109932361815640141567846996533612949836515389442711855997988393004829053529931901879152465312048288493518184020447393112423891796329910061753596321127265706674987937404994454662548458115386657687158130755574471350084760405751627640978861666346793677972062175804891182163572192985654778673843058222300673621936098328656270313381964238296351875379552984511725905008951879090736901006538644177782197776984204480754792044765275781224009375219517087537932622692878379047249653565018470757633501856455990640255871091922429873631227194822658719255508039889864573650747649671593277432737583733808664614242601489766157755184852190845440994432110694981519377921167677272688301163174264243724836967639796792271221633228331641373174857727629171590284107538619516609923546616998251506963237188075913253938296032920682894104473646978742817826083435967232261307138970971118363023265971418985361117382449353881676209676382615156190863788677588285434731485020218856326318434543837952980445033080104629602640258245118883622671691176504728423717872749016196352036913032315564615364040395845121776914652804769840676275400119218131370400326392964192017317764191346836855058060757580477403943627956468366174003694608833468257660386490993348986920957592942534948225604489573617427386156884219851443057897263583344474191214496628172719644550312329252019285091993662738138068096037128667381360038738686346354892652451756640225886111741895416556031530168745729620109134316679869067180258775735232513846160095190776436773021894019877544019685041887573643901269162727316876238214753045763812431346686487027638799917344181717927032411962230111148526365282961876498927799118055663761842475861723697520065729778350833562312060030776787773549188474595655181442000281724213120947402438703369200803312710795398309105870338187202996345074626571053156699642780311221412936412709216907105290874647063579610641190796240577796301827728946837196670478582552399027503609602625660589416757789743438534020388262623993959005231196513440199102409997064625136902909731355090534133010944670787687787116762757203990851121065394861486343048325230351549851299779346589080904759044678210301041482257388435300277225154016501264492539694768781314987037744380967857070080932828194614559006755728214368257611102430676961148728729227708711827667269548603201233711563552729645172523795389236716950677398029615299616488691646082480928481351460972636376374199901956594109707496676642952052575827849437639328488399829232747260987376285134042234279705439450620202715636497182260327914356248131779076350867978385020747647785387349214362004235494497559092923228826418380266713173560234911787213428466906671680780965643727350583623003223119515983119923623192735576416397618571197350073180230934072750916619842446768086720279234763274014229566744696197486666524406638226741520485234872748895706096266722472807670597772905166834622796976549802057732967731550824157860782178744504786288594264792695733338339642004129261784674260897206564955599182331192176506993296853346933415881008431508188333635578381961341574209916092842551298751927496154494547045135434360846219475650061157630954913534696984508457496354665124374753052540722237200156725470499851382715633518572945547333079702166781319238409673817890463330196597816093370437978625845846548143572789384272023894868310063059738579300666929594237889517797342722981475144788319530059244945374336995473569085934122320770265553205790262927609705757911372938882365059147335179630900376156539409962467925044903166885631744137209935562788175721154854057940024332714709718044184649144114090492035534539410100158424515322036974657896262287851570555141718371969734993525720603279359391915083808006395624015483959831171444588471633403218633921207113053321154744070743033486877285922941071379847658783063462553203358212995220898806150308481018425636036788569835514621969434025318100769067302006128288107845003705314766524317722438526497654289628834979652726747481269024785028091089098944086992864961324481252303745204128629096150529916178057040653188141762660914214485659378873224675747999434334367123724383305337702376664276482820415979029439670577966299266660250439775573690262750669223411053109008456859662291656183501536624694753230531892085447032167199385759915767261297194028413930445857797447062668504904615181146617949793187310452132084554416270095064910467313185062341771418895749871640173352933469097020044994326048439669087432713121691410102545384320568102934743870963866744553412563175758746503520151712455514794701482104699334442693477312797744610532246075106968335421976076574327965905827085922193495196331763529345297319614655704439420733683530261809289682726272321179244068972282491426957758225304336933045408369353974986924405539477809799036492613445190562102639161320146248540345514435289175703865306261799817753649524077852423917740496830835362765979990290498588435092766861998440214543597225397824422914765794476376199517416549449096682035864298161997056057564278743194062597574219977586931648182004510006672837163339762035291950911784387196100633823542156205271356107847729207034241620040985241575443526301827509633545115096843725615114709069949393500611797801624331545821066894503213615256848502548376045353312727487417899541725986402804686917989238049710615890242773685730784882702715377521733865058213884498596153202632724256566942260752677008905141606358867068860792709264272520177164990727151721953998384912081290903586288018962684125771773641223711875328604421069163161360866922533356078218701045325158106575150528111235495641047564002376827182485350903935803029640105168901310667602678907798907136864949380684760404355179688484364841843921909772361885990406435138460273208327326216345718193367628064653525661622402149704354350952607871427443998083440662832235693441552681172279933160363529418358126686772147673538364475895997760135830828740116463442186753732296602638395541753847980595525524959816387208465849116750417618991886356297886046453539863392514501172033891580990532448674967599333915190765238570340617358755935457349597149862651013415234615528733236283312997712985151771537355327943032992597054949175399830308226169470992686653792689201526746873526690939926365768993365544270260963326346141923937378674222375093032352876592771360013680886907142047289737545497761980038514631988594667217513035077343449431905536392433937047791002030314898551680176262176638804681414702610436476140172332309498192047875243381843439542209023598810795494313822306898670726256296592841493753649387605186047097544818510199281613056720307521562612440750442471823743044777828985864855100984496856627403222142422487926032896989030815775137121960449410341851156043133713882334786643371887268360194324015509187265057297682931664057471219531502882450412689940017500604644671725586109141220708905745807478257849697730226410628217227021106267166432464895282339934654459416994162152193333599825859590349367518939790859671214896138565206284688990458356508812552885728174672103577178945631294398002048613935800607225836765229076520358933284744593122272833441543858528737442874712653892889267339396791263154670051346142613053041541712975161521640413649729587004298297352328800004679944097344987831793640818181214749655302552263964610858243015864609654064284885957477303904189890432379791754534390441998732320991222975798083188123161219902690116112037098189987822652474929266393501835566592473969109014096242979800551699204272478664815529970810755718847491607716554417722218751418605631812504695055795535217605285566605631183336792854673050962524219539395407604951064265840290385386888279065155116149849737799016453953743034171675470483724953412345252115060827682519499965029494939361520645198384073052845414762829654055867465265034276801491717107862321693636979641496375047099071658025928320105048412488729184310846029143330856235639280570578312756700758974242865609225242929750547042588687376953379206847152759711615151044018315615866999394522968122306310332592553555550493719598388180470321184253602450551094879665322459238287137937127667237581667603610877940278448653633634741970026271928368081171061173117313133490145455243455696466410943841438098014967732960162757824821293133020940614923206285929981197735708902631532222930227644563253571794822429821989126810324605649962406479483353163803893423047814875013657594702398630976746091172264715190187970589116185968781750391695071197702091675397269964045250865356858489136582472877636526132224135533447637012562438866364477470501772219898195304962384169157118731072242893126102529555276005449103238263726329347674337401219919842184019668398052505280334468902248314404885070501485939234641455864431377520567859212054416744372920029437273007848500029451563652793367271425076551567136284003171048487635334542429669992640674547414848762817594925763596024511550434880539545503029573524593834987056560768687927668335209952538571304182741267341209883863563776123395697001481950400010303867892130964980574602846984658205601454465739296757271739803909474554035993430633870689284751091819460665516689128103977160174367357410779023817183620648660227779897823832233262697783071947579045108387816654643592693084216142077122772356163375539064342436285516956367071639238706580296867842414084762732065888441116468792471670099237822636877930578655189392031060135816394850245376648961759621649431772684635739886091307889628143717741939514316703590938419241196589442921986381639448616908249027371779984028535968198916096344058542293775727164850319631978466238481442430494823111814986682053876585931365883817323498047094521933176730657548804858898129357295089063700098476750865455722983367689165319949757847903204298248518733416641799118274026207022380394438414510864112181491933179809596146583440375471389124935326813007054032083199789025208259901249313113995880555863014555208432713127265404779682925485943901991681586712881306254572786803673130263050101298301714662391990636919526300052246786374381117823668348357489995917464221792381111578396136630592205815662094042448367055586046239525336473636893271653865683047485792283773100640844849461130225247453919314899163735056921023060560523406751786268363378759648049984303554557181097102634056886055636231579965829538671446228892032106020603274935323197026221296402027552216473836323918998818422449324298185995066697732695874911599681481343128022344352786630580153747288111618588960388494103136703678981735952854554101199735638735099802342562723015368001981971757840113082155573772443138326709843275865874782533690873155686771962008863642369593156391881650526415177365854721910352387436598810811825954127180461477683591795138638166053946096217255918076654498448809874276507669933558963336796689617032030995153701444542931054816535305573998939268219557727199022969448464538086242459737714550686461759778976979812774943333832589856343830599068300196225435684948565016003572981592689876915930265152390845505046316245578278398958254695993003908392351242568241298284122954397557753262726020305020130785140284861856275117505772799372513714287076551425399700987332789463054693230645255794013180124478491390156285489487603271696121074772077340006494192178999322311830719940984479912124654534666764582558319689183985745165232640191905946298832121963359650194340184200807589599367689475575297528880965304612495496512848403441387341569977033077598914730507629794885922654528360726487328989009137575583820159586339686277557144494492858552969899881530111745487599545614550858497021691904648552856713518927376232092763501239273838029364403746697476509175515764122937265933205871117706931351776036250772922459759398383985684954278031040253515048130166473118070998311642005076980174150570748424765619842177198402873935177215544798231060634633291564505190976223184107561764852247812569826770677246665465572702539994337051684591827330996005432098083526180425934211493886474497533562973775196568324434554698570712372550871185858554326640819044492800994094883020400587574855530914570851203029259439613263129817710761541711718705772175692717447579692163500612876124854365167578610219174795299234406851450127700747583521628784690959772927080651908707355434088668325405097433587110598688723380466553045580315690777164185900129571946609588702293523464465319641501525301367710796103611767303578887667070177557779354361555503755178343576933505190700216978014146807407506669065964621436126442554311962767034485123475902372226913570490764302067223373217726121038277354740669648819794013399510643254265260255241690786843935169644504348945987264708203393489359100630344770778387328783273302406927806974846255261221484275002652455884119510943661132547967619948933413768195983848155725473292350550662039466560482308668533413068182348311302621214354585511281923653038669929452098224743187774562770171852180105485120146293418017726197736313118040164455984465423880398763618488118767587176637928784809461316335707128000195806213281396865913165135912832258440288529637177078837441197224530950343746456929519325218911760170076976795367682661845659782769837590152573036980807758833385377402953121753114046304897038053159028665832293097560877109635621632117396193734873424159574350038785555714754899747052240572542272791047230437450616470233240355316051833409155142903696286801349090217959159804830825199864988743601321680400313899607249269513143145280365951113690293606548031085790923715273070029162209511394278472999538334649357414040261574931940278604165582367720572860818541513218289072678086341425340336280823124229823318991242296201446366829886994228535612106495897082554364357707537083932471751814421294838893975939320058545764268057624849308604900569486466720796499860361208538178711651214091704105661011167915931256481228444646998892099830253233756798839038294328399462155761722608008065927251799388070488776500363451080817778496244537360619324092675416307292008959530595615316901336024005650045547858359631193244614216867846255786633766517287078156436220801531040395340557820384917658070952589361607626236249561067720932232448697805895825088227990375776181688798077417681442590262894011805942089028780707989360331992876902371865467049281580345146328986022142454610558582762975899046134448268420985246763166165978640127152806052127976547149444024243188383737910526293547746048802695548311466011188051068138300106928601101682972070754104849590370000575117403089552888852081405428187977614077233637332563818735040553042144936036220401689538462498552752711903387502910719425548406574496374519363476976439121168183971143267045651150331487674611817647692345223339382740828467283178375941889413173312121292476540595683368833724451994081140265109158181442362970873249930665935934052487111281927859345145439312507785653923228709036483196975652749599910823393559817216712555321997842469124878944347144618602019101748319149541255346212979107791230792327369698089951791841023521538385483835785660064940310565094804159850773671939127590578595411295681431458634108047852917844230503209993773705240532329111227187448859568331298214200926859795843298733842044496139625970678483318188577131386455668520207715654963995386318786352905247453352280742652914436713738559708692609404026332967444551756433082964303198130714263684547073514024298245964544289212055980030521211028902029432438611691911593611837348643920279766034302048344934556637089712229061179983220934288858257518818912676038339183020888431161502564078245621600957676060350149810182049299141406329779398067177902174863030759309669050948665441169986284428623249988944958965141065298774694744304602407265134846484042915014978560295442551234260685729498998525216376183047809897207395159618944496519924643349717296134616786316805194983794397701282723443135172220884816122195809054523593980906337798575844195397678304208430888916591826007262709529799765824814694589249756334119911095780635697235757823453036938088672493502978039359518817764232147518404409326132774735006883967341274180366459393573562147412565879466758799273507670163535710027255073603726472012071816481856015473776115593008353296635588092268469882658651985201494875445015958907907088566379279263010730421414123029904843453534208434498516358501471128462611299644431164965510184297244691105515797874355365772405480721063067783371162944693099291977644178082773670952043524862463633809085569128595490764865703310731570487638916553112407136463718532876075177869422010138615353891814656817888751149579963757249116078770310718696447669342775953310804100124647840951900544002033705248118877162291207066440910057899594849113733269018368908362442144415023100397941141103273337747790055706729663131320322271100519895114650630933171952287458757803668674689702470358672305707337059123547458770181121135991191235152557762513254423973867756778351596178307279592535062194450740920684345201479822913488360700298894565568514433975951580809607180501130375350676813365820268559956305783091038442361693244468485008417693577944608418625382612867445041336852493138919076718789297730074092063911455681627527046100348474392647844596321620151073236251782755791447432182462222919189837449041733091259471539590888585161383825447519340793322477021332027266068603307223270071103364646460588479280855363714326378592166855030777623383412160331304898995037236593873931984009177076483614379300459106444578245113334291850044820497809753486644223377975160456454654227990982585098172227888578344758223970939280883038704876843943036763073455348977218915553596828868451259714371856711086858165353927987036085654147625549257750488552850097134021092550113087370783785876201924736723671922587787459110629990712291346383766962494673831196401532756607232021339506691965075762934336907511076682014347040739082096362332522796290323411014899188706217357014360287594034956439392602978537325347785648636921220551824756097463043997604171795610459899585264392978715016135152062769759001103357151845889545164080461106240675037510678274121508226413461985322054881995872272325672647711975997565934003800065677489825837385114870901862993151895673964222085478927663572016726649919584149908599325588414963469261578394546232562602248761424243868858620647880310476587165468016590394196117173171466126596511808638303515571507193532816871787457582393752480970220653041670982726217113249656790145035003007856292891208658455244415804750644901058967015130519181997083872696441404266243576825550536526968724336695404885124615020993348974025855237151901296127852710007187291411272518409562248259579159852808889740330447152023078152691863342915240366286643858933117914306887839501423354874157923406379183634822039766913109545342843606880787597653700605261405170038518339858829747627278658076600804993595783176766336404512198016425693730744733843816433676435985972304093932212864589172824935543024815830530713911101248505367684103381492853965563288967767525937030367476098181971355086278751963348421498684747439325072787941216160132432686640390579911326217143169281592886274304141909381365447910835212733581426925353053439036581587120016979165689972175689574329710535546864127187368400522342339626636305761506626410086482240993739481278696473763180104599209471524428244813746018297908059136672550062496119879599785482808252342434165746474696582207362438976459961791037165504588190829876073231088918638211145637535571977944584605647270855774476116064309220069800494787945964606675154290337157489890701688449137709982771149784763623781085438621269044140322172886399963200762593997642880082827138624572522843410927791979907610706578995240160080384565186244540261542220928876560915877203751802929191419058727408424402062894689912980566020164745475057051516428845534222529001632572518881419945870017698982388207117436791602289658908209752278353155738152227697202305894201273583398272350726307706749028757255792383118865885372531316610901744196632540366453036133954795358101817173521045042080759238759118542599014811250123403629664519266193589460617201249498500005147153365632072576131774073856755246756112428171054524667531739933483727864352447298371136871205274641724608526383727406660617581176790509833028271930326772234906857907005820416149932360505578528085931326333406185050877638548541196056917266297690568360782108405242881984431014305224732398918909994494932104621197248359941340179052833127950012684989935984692418226369075640696251658370650525913667817093503609641824780764145524609090013639742341923701106140866804897711124601640271961392320968040750594281624482031831536197211727520167236178055488741886981872974886964169100231319810467069251460675442532436386969754892846834535694373157262811487232998726378097765911774072277024533996806500574863130701744729205898738116537791028065054730292167344350924810326532375952389868459764645462898180136627513465146007618748715554613996146526151048772701778882340190053010204679577019768421730571883851077524174359079204764430387806871634561107377961532983989244427401859021412370672816348794195328118414401340790732663883462111747254629357473103044275458855115306609000150872886119470627151607963944692262251963297075585970691068144842503526444765068308096218411723276868020085719282004890572850213807661395775677286370776389690641809633569830251313993963904447961410127224234024000150679160005410313613225198238935410194365803742382784025354397249017548813678551091046472169755067541615525615514852715237103532805132322676249615049934154814698865608801293316642817381903296260937578109341858184934290991505770992937479635016926800937860764936477573093151498843226187485436052243732418306403097168476929183114664629738343933746730437165900879125212726469068790422296451006625092231600638811995279826737335155677480352176643083595631239180762136928901354135512739019895903804410278166402841823521795718512869580653469049192339670410763146321937098698758854104054432710270861361147726722375802424291587148506355014430849244949340985299909181030384429236157610132573690773777214401174644877283022586905716529720371217107478058464817043620581866514562397228852221067159402015034695150501098066369971481867917146652809512419714444761795440715437861950509611534023812438042598067416150209753761502607050898738960263161271869492996925219757808243925780998042094858272818731540157927165609974398888720190946304239843534846520986967650133722700221030540813465104400179986378446848187699407861938504881691123984986924584615664356315570501349497416959717117932209163788929295302255944215822904428834200705863692922247014024279229132039671237907227600458044141438270661396069823571384430916367645820663967586575159328349676083853949236547769063931668490948668942107535382094848792836123802631543257175904693931138720193664031206917201476942364836659678682975225879578178945516787829908779226898110662883611107110324833947249740823406603704153351487831470055284235324149821593325714976881647804327496927989878387281637248626798718596987866516513149678118364058283948213734980023687885912674229495114469703396195709049001455569641379599349316368454183693625301925761559775724759608283853427934215003462750931067712118360544910243026156198699393439695851335010705159574175617133976754228086988031023169009372987660618380651168991113017324159499835452898840217412970346870068976921800810574996723785435439463317548885229463913127565839274439811205196103479947517700385885637920381622137821320124119351348832658504323911739580865899232786976047322035018215343669758904678835860113803517513344625694532624053433607958590938401644222309530824654169569621527969333039840566336874361745200527973734362441105127271948874060401698709832173782827090605783585390939409732492331445780090003802574036940037552128074285931677789076100489358528726984309410370407441744426007522190321400027336999185192270889435011703496841918797673888178510084153946078852519682579856764129080440637826590214933390318121475159212987757220444830050420105346748827055067836819638521117913363894478077936846719267355123438163393497714441598214744105555504213747671894294866815449313954257552351422275331666457066701152670588194625594205505440155862672619237261983459057590936346821696328927212331299670077394124910659375698370274143372275563744906976667133147746604779943071268051948919746271872109785237174787446560569027677064928331759543337205930724215787559209220356798116457544211606450710765822570488055975470208255327072498935169025471687581010356856457140463826815273770672521678205787684288983177305024562127772632927268041421054189651326552553993993639237117699433241397790777166437549556734002046070096065273650822630984251374204247513342920742654965235750294890438339026642942142017393611814657526148715780027666829493505651752598196135769542116066543416821622237401745375418323811773324441430634349147221961338089038254811966565224975664657448110042527042853339614144473953710090919378233476422750816078118144114267430967075959384405662716789436885504858892644746663249990061748579973995011234711571437528323095629254783238081441525306495204853262596087480152456717039883264281393824631124672609262667160443041009481319550324072585114877419979978280835520785901022604272447460566089947237220255153681701980801814548047591733034330310526100554629141461906730233644623140575747391447216910706384599985293203658131941536238404154374551072467486171757464766903136214355217486911674686351927187950141954487943279807326189867534110015433465436708722458612385437583173719865961328940177351073457812852796363196260919918338460714687872578208464133083764199651707640363791677268976096676278036403122138214406777687493079981921560391923787125887165439437733793662483356429612362378965201979942357081540326737619508041551000490043494849310782153273561425748315139958776590517542734172942033471655242531081049514874928900000715908247557525173704482711260847151317742914667901378400947758108557333807603654483426255791598719655397860898427324916315886177793053125512532562621543109367224914892496225248298099170878523030775033996277692751798946977226103888736452119685472314694118421695204356714390979154084191980258853562143661693546237154660721562428351040571359160925768528607386405983820023147010317229987987440960888435286761059195802440455760861288597751385589145829523258752695318965475107780204626446153360768185363989102383523088355760684770036769723560632451354250455856254296161942895711932836458628697946988920684589279053110138145882812572144597850909342335206435160451469836421068214759008440136338572249818260449868716989682389464349472497684864182150981106534988323843394817556122091299552406134829203273066536009894855828907476197564624981065767317172428697141699806243295146976866963275963662996332799558446101973159881138070804214974727901077027963639078392413137152699130281883923918398822947397637461980013858981821417402910145058728349048469511856250192384122404709580699069673605293661336713535753910969583919451172560342925457980019706854060443810125259784019171127006791769856441351971153110091571308167596297363419910191853996145449639816655500188851126033423073046661628032917010481523837323991943123314083827270203714933535242739689005485678143218197018269415258252046855191286833569874109230108280300486278270369661808641740290988576857458381795625609911824103661262215482994689959774418629386688737515794835622430465288992976399538023810529683462244544909923914674918107155105403485757180613967208536657370818362998262165601990080768422621441633154867073031035635726258892134773600962224523780706640540175440864603038450585903971892229228617343917750687008124647795972785636917921364719586295024970078570155376339672212230676243538978566993976326773529403153307677056736924851220689238393709738148637948269865704789831557907795366690659669006727629967129114800982525359084514898475976407987230916159498986944877885489399905345029415398544976614205979141184483950049251201667246240731198891196674627815913361363344159056268379022786141878161681682984113889920449540790362660207844631544728222621754934209320723662755362445344600320914834699282926546115058852514549388937826014271608921914557291840540881250001440509827004368939679762279110917063411503539171079945718425582889732668685839033061198010659829834410640256775406446582351126125979140678417048444260839053307153912687508634871442355732119383254301133422789337843029782999792820147823929910176893584816172259370795200446117807755213047778476518792833437812486160180209969071903211122214495242789763223528916678943473500485187916392233701228823756992055761630051505545548334293646686158562002410453933748549364029122541621854857572139974894549787455577894465911813159103043849447491059978700876325764890188642361001718969496335735974994841879754920872265344018740015837559848800055432262695095610376267304084230524970706017744751709270335391290384195216137139214099620132336381008595404014859551477380917719047632261129159979619802582855328795269926036773467272594873419183078169129320092031681860877082936210979880976489694253684210913604725837415904840364484511287807380745130731497222606730286368641059324448934069280289451950087245509121424063633013397752432000178787921237185331220206249214461778451564124190877369072175602567835755598349810970785480916926665889876536399421572382987114307614362134293739649838455907824426135504552643881556139575755051600354828133892588816856276298067066135200006048005206983917542896427031263480317844579851827846993978193514153045284457370429729047336925200446751850477227517381655504828309190651442620709307996937174877467689379461929425946204074787269877819499250300001770117491706659818413957700827957751050453268533530540747250742922800972552542083002716130196948099316740510317325305562751741308187634528098192173550747243878345946981818474500291809430034206795519249528642455109494073904172317226169015276939173830762548935027091960023555749808919640285187443290758449952239414734122808666862399283277466381947093946634645247022737673467433907906732015282514506636493547318146233886470639007746894314372514829426749493701348031882185383337473180288997035253496697169220965172372023185859556787937723337936877999941627230009106812891278212566956922053119405646641982362911482003747880769093653348197716385567037804601585024090614953322684679187911629200812370968508523297243216180193039239058639165760441013367031105427988482808950071387333966475657572147024762250424831591331651519331221459635219747257523912085881827744559952338134661099743682227090469317878030057859331437821110876705621703872658028848051297305039722746650714819824698635889515163619357047829972932044926389839337896568752199220101293570325315236807355206747596871223730812724697764835649781093150803287206635575021751823935203619450189910944596778226865920676055604543487961655452591838842090360223464557368536117149970270315244897193449552111897794258589921243298109794302126768572814210660597433452574754407405975026195119423085583129584059144165806802472609151541814696140789994677086308074671391705432674236145591760665813863444194488096656958945105203412741424541105421339059140676496567564448219791330255002114536588081224514179358271170285762774799244759120274518229188651149734026948750312270634872162495437514893005141573409830293034564480491758475224384532279715240203388420964631712320932869941389266702577836766607008885885779565259245629467929935119062447507090545109503246087656640245262281895281420677213930015669779917272385952553870148828340077409703913648049922269895717047385723990851480539673481652389023681418573893482111061684606806681017801112909230673716491012311137568640296329240589756184486812993537320751230319564273750618517904489995627422981949875157210267665783136834229690004496806088364436859875174254620427956897126602303589381713759623643153964076168816419964160047235624875692328781269993426072949450446554305046830985905045494047905091553037969594652522575107976703617385398844659424599813918067582341045025405884583719528138456743644763434770439208378843664119061675748514267306284382930918668851605790258620506834238113146318269990534359959007989077906491470636987779516827332678208310047841216200510917602801425266766266621134791812882817762759427466491056773309205136857787574306155707387962836723068164699872424236293013527956545094082714307665577921966794701429691015449669034130715132927927278174728966761097510993136618761827671366721801348577994428587822078421871109051951900124317260914585046346978677235751278576545341184368351620612332891581389438943094597200654382969997625518426641918922786166360617917773645400269644856793838446804835377200319105387953520153472551191197135130242185403024908569179945222149057654583910021354512145211714883722255030645528282474231434977567022869341333386046504092785677255506565075431391046588290927829533832861449748316738235015686823152617396265437102537272760676279623210175862536976074909794865640776223702131412316077658121916201357512474640463194401398940477014831320720256661548465184874160692245518518281334915657373723366851198283931557322338916279440032162798937768778400727785013754763470159879352264159206914722127997254407997763164195311923675599286789907503586842634672272193829399144496717433040144307609199392943278451657022570108613454126559692230109820189319101359200140549773563805447806647855379856243766398175580062338756387182824011380187466659887733197451274387867399284558274652471540429699613436947020501459269060745093239234946002114070512777311507692381393949113704974236034248457359863413781735706751156774022798647179286299868434772979750258585141269947025633990429209209292273997846812597660622367813370759238480978701867830923226619068367214445063739861609964096016241756872166106002064390942717646880245134483375685616205835456940303935372568581709565140202327579222347784964278835160309862335845095957410367515843041937715198922905455097042804597739075971373835769129143049147450560999669485770975772385745110523107139676931119221117794321404071756139120625975815641863747921078259999944576243848484297106252969788148304380277449824815814426536734395325639445803315790277374849880298818236088541183545518256917036987316436650836849790286178229699302941055700035978283246376937109997881175803223279482251837083162977726488977806296870171398617031813852539169390147822344369952456285447024663082075698879235980943240193130415962981564189145517400123930810431426420955692707725176806784280454910447056625826115175716929916044283285199881499502194989943292346256356111785082499437131728897419780182865079132412801961661124586786713671418070258232994905584806372723534082311279384355106282956501661411867030829571446382799759268223333368607904462858081012790986015637778610901717925075410157862200729581966315439886519107782146012606537491031057541648095760923043806505935964218756769472709997200948055995037958751141322646261795651687886822041791500563438616423488734447700733417113203791252561617905331436781458641752047019170357162756300877313203307755158567098244258906088211182585397396406126679064116492592835793188665986915418759923876330355668051884533564527146833411784837982104218873266444292883371671144374589970917458211730005995263309831672826114533126329663141145209074109001879191859884842487711668038674659158162559776588757860828658122760160324796013672353025233496807679128431172722211610695478173819339179351875102523993879049895214892020359787731183576998265370166075181776788477853781609306629266811559107177316158312870696393801845802360291724462982275732112240101184801734685763112391651021073180040977054460879257363142227403757638966260440956819734596668820609658989470710710390578266603597630102869732240585942644445165756045568096561505469832640167743553137549167008632439589995767180953308971476452968460703693713782233396985208740262640379903780421318838558130242382704485298380807225808941048740527988770466975823314990226866268207207649757357577051031264664792843016669262554698997154675969410856223361940060663509667435058352417556058447834391630373995102421664606535286216867304308563525044900720814074464275128442793487756776369045587842414669770208640115089228691221164912484107563269017418647955561642250262405763912448063292182165190197241144717196255988491318632350541308838886540568690418177728452465568560622920125969710365714022221155972799322257383253974842851259461336926131190825994306407578825567487045607635814250705733302810374582454017757069745459899427764944914788862586831313743075052232898052905503283732100557073594371684789064838861373407271209586319657648059014733631114211466785046809937380365659164152341493303706912131931342367978747829618241072290098061268685148994542190470295391416344653140491581945295520736939905534484764140488871248973756843477882646605089864329924991965779096655061193016338499768544878613823470494854175152502729847707587132552970820749198544235014776010340169353559100410053014943893238360994773682889175282926636282527999197026941833426422100477349998271944525557988578701095864594123746240122457786858777124762481778142811864599352954495578295107398708608633822027436042606027677231524091011490891838543104877052662314897306155336860457509209688864810252564697083852438285039079543534050250598983404561351023704508510457568158277193184960217027215873863005380381248713926302156673298130264031842812315528844536124128549019225719098617555149952243414543730057970161705321514821174802639272083723284348850404157129186935021448108407640871056356063989095549180879826541991595260262563684379553950356763672788472791486902265599961060609130388070119211731739546409630292975656506049746499480653162004032434197558979976025442692534281747801756133600587406286109354817528271773210765200073850384162666731612219925702150669526651284219491640740407979015981269113266291173529090486414736240722867414762625692848062665229757872339036920200114730815996578881471438475689607489106122904136666482542839115458460974352793313926189739154787778355322835415243127466261246798874236035307787880628032064137297174370526096221393197332168512974809432465609166265752797910285302766215649339559640591775047983303124243146678551792086174084487687589463582595241700717782222768877671255750184660776358444863842679618066369790893692764568065976924260118873603777563484722206221838635233433042982921658164537455871630429608368968477320230733865941063859133188751932056706546488877802639334106637317087462829943888594047454645394082684628669115740612030168853525454843994262945414039964065127045475462226792522298869495076878843142830222911118976929252982220052454922391470568589388221960075995047407900285132505716709874151998348855999542494741757843708258637636380969743745211671390465308186043772458457676070837344144073035087018833558432701244336707435331965114674915674290758513914799051535285256554385425940185095070773127118328318230741918695831676603558002521558148440079059906428827185107287336274888049503973758268212841101356657680378463333760576925327268686123353285550935525802177827001822583520701682774171213417959063018692287507131357584443521663217515452328203316670637054439914810380437727735706376840756679468744066873034559889619353270066758810375052547577310551887062685891299947996568286415372063952899347639497480862837568396521543513190056846995023758023835530900508580618601837164772922009942137766524787352731572650184495934518403920920157266539066026012878889234346093350979305598749921884367020703296971145574917140712880286077828719101122689915889064699946881245582060130872684224769663033656639968275079786226108528153110396893246962706560585579403276064398950196209397553286408442948826817852937469728867598949345220154033122259772024827008054057118987328870999472004886524910790146099294017894174858413486728293385057323527906906682502967112135569571228220896306814984017853863937192515301353177728340605966791302478234889093619566083335460539539445075266698432381552104917710739404708864566897136620095600450330003205198414302625681372399356943320762014325580541179544476788219406290845100208146830330580854266356720473381108771613485264152644400001254290379951970472967804472897115796832772754325938933400916474309887921273429012335204690792962361869217921007395249678439352637767305448674546288755094559567278060015429125301227927905362358048252138517067533036833119838005698892659218936790850865265872781350601101623477035789541106295011312228698300750227807450652033139800392149449363813752646430697363279898010391253817060687149552770264288060317097395106076589215308919120763750224238209621061667611406243491348502707016617416716778161292823665079770037640895774325680792367535551603904212286429427504726314270740803344745454434584183023838727327094645611093574653037607024655636838304103887833558924340783790522873684336917280123354776849412626452372345655053655119177599804428149999363864436961744082257334456627363666729358703464942569065481391646122005044820638491315452259203129553596893288934953593799711887546724659762903309369206647858950187160931746698248167406359005533378879403183508637225012229490535417395377641571830189071637637231135434682113562285089606633020164630521298641725958270718739775771896325897861597968129418091598816532441454690339461774031290807251563327572902900782022361013837694466263098219653164190778960675929901347961525311822518218432126325672513233684462175725513035395660596105888998264036585197346902977451322613188673629143316055341389467783986893269621748529753133463182093878098260942454658204218577497299804526300078974481882224994198913493460809046524946011485603648160797467772381575700463028058922647792180538291743923838887550569159425419407632047028023204079403331270907858010280927033931853632245553625084112419152901030989228462364783379810514040125275055298228262546897574993327882745740038146486355368659672770699017861532237921246545569083437871431887165847046602308449904792462913051133639977990116374309760559208757166502273157153062956687331772376798478455899030290931894794536918389491052041366886828419161061755017073371195228137869418825822826612131661125817695502408054141822795009437630386665109510496681095731713774926082425933259413910468137300027817181468069688720444319623186804129748135826918266981531182834375088419130332047639826127395925086117768246845339364292049331969671423791860164314671317123180604302175065765288513282852090370777642968839691864245751308860601221756799803243904612307170746194600711067846681412420951566727395779713101329770262671528110871222076312883866550754261101406195637191842188889407164624154081470719698235954771704764763935759487618796382265354702417950150408046160114134361536007552811040542631573631773921327801370254740876201830860010021279795030005396466164102493109183941145203964556898177336267918152334008572622968164302718001456116235748021046378835332463465456706145628337298699124619731352456331609672772090885047557877356610133983516964002607466780199854766780182459637514691266036642169603204322752610883189375104335201645465175281740555051173384934193758278721166221504784870351905686728611101937421833057130355542628346176281452073790590697141831590087922699040970486272642473320998432416082195728024845056920761601463976712651637890975880332441437665944380237238609134327030908221159791239384093038526063854599137639789122715036501115229510990483565298463197726684289119886001359395082436384373684391316042263008531201426676565093373036744912951577920073319524433842833041939568385103412494097785747072101740626534877083487724218548504344153195325905198572266833267983426745044870402269715997948627160899130124197683319558912360456032691317426439188718089990325129485346887738886846936552026403845925790100673672293871903444499374531785399295826239319205182075999345192209446415894920783226434486217325325812338412902369543286418382155520694809748077445922919515931671074276259606313665405071090076490181142845010613526007715520716897899680972275236023903236254332652398046495134538762813819147091590964655764385255223484028861974529221927547552932770893526768366628832374726239940870834363118354808925003017520642102223767963961587317040659382711962604276409789851453854152308336827098189844601765572422635737262694360197894584153125731336843966403096218371945644379914635816332062635476791350224623937981212204067161877016185592050048131604889946197040852685732031970109934524954775860489916974501255345990835993938545874340269033295282883192589401582330011463707986209199739406507640780128657195434463502573183421656587418192506799278447058441660675290149674845653857359472237254633581117066820356739028052145849483913394354229594471699286959550283523636794165405793681300138867611317894810861840569188953650543956970104426413528059691610857095283515961324398737562304738977549140274684625853650578503350168145044854528624715948291141748944285935366122238681161476785142181416454442280410796242110096757143867354900831907935631846049818399744157369938464434819957442054922959600188871280736321403483534964137328487936207575331870244841681461076878920553243403352039993341819688196657150004258931861373263454380327383844831733333647259515893483788407186823871220716653356874894525252301847318545351211964012081385745805922017660949613525220954026552903043251423897352591973622296685799536157475483733770072516501305064505330183063913469902978675449075591555418237276584076798525630723185901837577021417934935766428758996661592567340077057448681256932604339894099360169745880272082247943801933714538226447746534718839883650631805768451345833265909215167361535768341762679672142750932785933105470795735652617385823347296405714858319853194740398943347965492204866077252402913127447194886435092854055015118796132324439182663430626687229936792524799603172756364570670482771206158877563163432553345461973153314979067667374148834405639421573083752506778262527597848052572011615546381594034163431064089921478301354976458548083699753404225908069276615138809236226883907496049473957761769840055270804877876486156666341950329165173630928689058614196472426543553041663141608903724580367352713304386976095980183644718718031285201251786540544888749274933655347105440650913817209472930929210352160862628802618387723178421896325328344467556535180747413200290975897124067970416427903779485847307011962691946970732090664510028722441547872255550175049350870303630585410100538490601777995724593208026765408679353171536531956632816158386555701389284229043887289538506065678524367908759517493838540815537238196595751598860754931395064156642134998777910343586474976512512261225437384730975000388961665074017217383225735228057953460939557656724967435231785510056118005747182759939531100222433875309545124802371467112805436858075617701402351925013932601964228787475795141626916129732088774230402501561245481765383144693984759156394522617143789078604325824963833162912566877419049114062641533074546010367782151520448881341327592560579524253320886361528286525917664094260967840378787196856344190437794535372229714353698681006742817035643195811084362009669332835776468298673732058671883952437478877930871077315164204204801449505011205393816665078960176889318408651496148554519630668497972509625531264900823820836787139495232013616957998339953483734179006636534488587523985463331820162745404022725533241822840761726104985869408064489814064634429654566593005283832008075168277894584825860978664934690422528854709700525101401546247277016225082184967927371136909806390466859288260337485840709762368005142808579300061108781657452509966924210532186055064215617684589396142816291721439632134183257917911705177706154503059919496979087445460213568249368124830139361080410738611905649427088310156921629330297241933407959218430905193586859376001504614946194054176299277114635582032929132174668330401677182538199713816325992016010615545073854799734238344077402153420085993144734942893546177450789146061016910098038902682088766941255224271700406793632274538006043089823925835538615031545330727682180717746373984611008688879226831121155043911338832021326971228557678918728711331817602812047231719510738264620932678407655468555545307767878406212564506179256604133524353399172957196472479453729272945275896066016038799080393487990115756436411726031327946332989844520927381886213355807709369726898485682724496405431025544921648275456044953646363255199418698221823874041031815076755100733584721815488101707751491689682856099311485182787967416537566602537215922636068991103633262479217318143668740815101837350101445563485456169809748925743229087253970525396805468187271942477467813723924282779375147981952247282098649626439483093958233981373389617952974552099671749605156876355926468719917115844595312465339473743294639480131893728232264056783887642232624514125043162560528766688392429389983374675569244545088692634377811025210462273629562283324692476575747881058597810970865569705937520439362896153725346566332651153412986047843695330001336626856359966373267866907150781929826092464469755420350487854563167550900153797944587068601945530880760385215850955848387743898172431736755614223975312725671187694541437538960464765596555806807557256360650561585777970441946967545453021720249149717244624592157316114700363814381219585549442245912478074083969829330334517017225089962125441530266163576464167812475900847485579010995097590633595495694419255812969507539757862918267850167477788963728658583035337647113149541482134919108633905256818933121716641681499681416718014728370806738112590568556212286058605063156868497204801776343588481940563090254163388475562056474236067079495801982961114933713381520004788592820527960958619170453580833447946455817527146465062157961035449904565320596806030358189277584115518887205086371474888096931968569432559104718045368392507603211068553787764544352953583043811691290817551459762922434433128894112167791235067648134721512129428296563108498786202150118451453988714893310601380659214468981946269793746145479585567519614676400776533981351821093087836329034316565242927212055626876630144820828163325681674560456560105032624685132979653103284352730443203410069098369828506668855262354946469379494997530054886119566061069281163398848528717487009614986354308470884072071978297582914887804882239662668551011515491495749918120534573419234502374045543908316170603292443849653419296048104894558655231267215681917863086613113935816966818217261246310034199707370946963548776653172311702173763078835865376935843103360579651482374955238835149960017666484112893199202889727834290976229195368093645656047400295161176151080796925529205701900952482776698581920740673732733167465837954392908615583886283612574920779535513759872912721250269595987293671840248649511427069997755266840878449115494399675501361616358033171721015635668922462058458094296555255590657512875990850180672558035912646775195013266588942747625256438588886349154256781558004687416607900828109163570899717739661157499096520260607397543380931954682462713497684995509282934575991032378001044167385331487895943196824458236413331216366689876537710290999150898315025795923552315839039531308300895788447726980717032242381758697965947029211515896487443036601126571492773971249098711735531271781797073089880170520729133195448309530680232132749426444671520211885873608665660554498723706494642501237553691090150780628186859419257639697972933776261116939034780224333124190162336085357346302366257085967821695010571840170169267206913944349431256235104924253662443184975005239990607024673520040795319951971474519683489926985096211686914306457410858604590920778121688197149247457742854597174117130059492273890909044826530009946628419617210154848766650605773718371484269530097540070602380105566819981010500011677939639325122226241223844124427627742391467460826435977505576348115006061836495496376088803768155407605783385509790907414182289142067484932105705407537566558190160655982845038565059901695957267315246089636415004313404350491408641686806273593301640331105568038470778538768992399616370265789013664331339443053256018339408674369375238950996894232588070747497011609299549373236653471894308410619385999639821704671704917309008549956815718433197538202396352410950562558440871242953061670199662846374683528641586970951182079791775846919534280180940712968920793670197893537742911306578137630598147820505229690688765549305233710994069165632536121777465848534400003918095384257132311219130920036535472691106924174067763482609774388435370828022929007254976241704208977115012375682467112379416530117052119293954262732703897371452409895255494286862513220762490994327032289646144571905672091567046063835374836300065481603525896127188883666459875189734315948004177715568907320413903052069236905889724039755898463897775295965719900404625639767220012296807389912081470062932062852703701718732988013717371587537318682498980739727648331098924781852376999146727177468426026184930921041989069101372612585411655887036844127729933668633246841534040296987075848533629876587302311239632854004987299437249538674345372581026604505329158988413963279688484806150733428398654369445509679731928822058804907590147165477544708938590792642339880100165636938904161968814840884368103895689154843271821881169470803528005967077151450556534717864206780219064629441437563510026006632428053667583873210152245472790312121429399212078782069541414149809630456124338469594044317167845846786792676446774897562302070023499657096815753333259649054314549791188761760343148744765127547883667080191105783153354843335617936991308320141762155836502012860982101414866468326852522348082944471059472631755427416842913719515712936571310163175008421969518168767035981067077421140335041213192416378955881522150222995887651379102439400018135383836949980516317346527196113697985926378880417454400836135169008232757538907509647036198657752926625953020997870931844704477297632519500229301916210947234459467958791983097957188971778885964675065499411948905449194443125920753193906892592781082709589322638290982175648850141357199053415991376279247476127782650075694479050379767262522648720259013867051310803852034059699499645980448840715601882728551574362241744747346005885272637170406470845431380440457515293871845873979076246514997228328201975520993724073707580391225257101946935793385174632206679457546163989510586072809650423887537339845669212449932093001692528133912456459208189062692950337383794886786416219741138900295424596278317114628107468182563970232103906438537180263094205422625713735742500445403024283243413533570615470558835007836210445393588873069538303723247050302025860042518402680614898831125179160866641264372235626692916725375185160405240614804585386726452588278826010043407661187397967958324953721356079697527007739401226612104463882173733095534888584846160221302476153137839335377039273488155241089180607289362879108432213500267511741053983440025408520172368557585616611622061522268352365212089539011932504867340102143337516560081402667629803348272071062030955092562570221428652645433869165570891999889075486489362248636565208868250451506136920448634372660260043655475329728714188136965393818194619558497376822773129369725803490089005344141945597618159040066370962691498679318819614580279057542917822251511778896793129319101930228052548975875553029010801166190825485211890205471494322849246754147807837777915498558177785617768846034796503076875851418430609153584111409026478114994166899185716613371730164434139934738792326038829965722496140863002039260815322336307231942410957036663327282514606184588559205229033776610154965170427897680914792369876896815886751560861051954547346406502336499647252563278118590662523502718349699096939913807911301784814163074280270054965205375744925726679477041613776433255908560907067916152912257732087962958751030637108704551278908605254148591373967375698511332867121688070217618502308343165055851225415552569030156761322946343320052531135749204497830734516408868832128323762897381331618367886549796514504097476513062260634934722040661353506690311346897433841729665033709518791346700891134326213355605679068411277139146382073938283569530629530085638381900684472183416703623841717204456720390710024227885753212294254815900121138709394699214858841123786025300981698298453248518794775806315867003443833604987474851795382569359902835854935395087041753866580799557052276420767310976540357430193035158863299598907614424071415871114719987450162971689406284709190041246896299112115602729756658210790313515662356717300819436532220749611431651292553208622998998625089828345150994105474574174359161259631047648957041138088341860862784561361973078945950573779773733347667428744554955613713578294810314335999406889606758241335917998011423089025437794224098078006125634457100005916895235115288702963842975414489326804943821138583129310835120829609303515180364643413321957561714075030094250262079752503291996215700803848785003112277226691937868832008644409364410091334920556191162650515978390988029857307829445933378553268520642714334964835797537625622184475401302096345410672330450825524670626852929237497175289250320529612443105740262408378784435015271226406986756209842149534443851722004366113393354347590681236992999874094740441140826099178841388866295867997759672106782180315931595762773617345702265683118508781379480426800238424281176075583103568126123307019156957359085018373901499747925211359774898649510187641545538267371143420871196605332126789080094674028966939814645596850810656430904344505424740797607955717456463707660577436321156844447770864145799362773373761860089014191411036675399641289494345627303099850272287924836723447172863918417944285296526547741633653251503068066142596001231084420949432040728118109874626246039686163428834242184795772640631165821308950650083016619275832905900019972794283234488626578666367815217743366768426681810098419403817695917530448183474303457620935300256487449629102292585691384924994384292845462122034997232370470984617336441561365410028288826176028507920750289827977968182772331987579151363800298629021548960704526176364485255856054530800627720390098685937663443209417693714734610902539598470188750387208636163422653702305369985547085307632635510763226306448039335425306571679437751053569220863084790478813579899298664131319473475332611241002824349254186062986800524716283754567243629443248848705196708119815628151039154627666457546623695420339351167601477642649211193059755032635934900312496235862759989727695840651848293127960273186089765516788768337208480199442921458894647813763675884144915469192178405983874619096393775349849372856654078687806024114000982256003641021466543282702473171397985550414311278109825911484111250634353013238402490274854608590484323585274377651127066041107272512434893835325481109468069022497482310637296963430152343421801875545791539931927193865600291297255584746683994803719828733024203567248773536958960925992271532365217846066197579017805564582270730137079548231227441524761653864310990343917406332352367202760838567803318901888095034495231664851354649844881295836045074249977080042054511687849212037049811758916683267640622718905685344288636941463201410575634837687693783021419105686483217765412094160439557678297726854565723107833683267037930053153119241481667321755892290320111466828119479838839429869869693289406067575607225776785773817582947188900543679454307225857818923018307337809943657711415256197399932179716516315348434961918415338115252555271305949943919088658121033393780401333476549094611848017193532470259805158526625835066061201262660083415810928161780408603885309178092840872977424146589943304159773144639787993792571819423284322916126968555204703940869025535698007920303824866614959501309649021387074385963083776798613556925875618822137910262273415679941785784566976112908749077436545198354115438582069959276029244010891751125072080142298567965256387322692783897574284086219837225270234653705618543098747330554500703876730493622280933366536016750525155774600252870535198551722788196767311887084384894637079245321028520718251164713715442277310029132601353273193260875003062341437886531508156235127824362625167929974942948513061996068242987332729036898831731659240026671024716659594709974369126734389867827533428417375479257803954410972957085832212054005355253875414980470276777429851171317249774460537396751675606732609104564309562287622233432704460004831448164674718554015500823157138861782075679691271582354310783684387690594245914555860760916403197730185248783521857181017242127391399519078912018259097275041569337689050313195270545585451055879499368176615836371264942820888988843824056799575889092933619812522323045244638057881511358612569454888106609722665868365586529485496730142019499714377696236293984276476140237506118223793634230670509167720477762968309975259491949922247026767070429470752988389745504775784201059774691175489262576486265027867833344742460452912544789496892201765898502973654407495312515932137312122612550043570012417322316242520307778328711998619880347215315929140366020241059761619407394488373610818434856874162253986522286242314848225480421553254721002028628437776390404547719848637788132348870551569897083541649852548914199102050877494005473446299441456453454159615111785688634777012321440091888301556894293348778544132690688758615182582062081636162228774794582884695034817460854622950246854675477731273296717993888125265299227583984657608893446092055256204548769603062947592690788075394618650812008980194343147336126416623121505293199990906808329493632200890458479689099245704648806132628892547158745293612878658350517396536087078033852131404331441461335683209410242213053031655240960171202635650730540165469028963753345309099386904757069134195253619368773657907488219250238554325497614934232878467556080245076871483061387669837647860303323722077458606265199001910436499687396786775730727171767051753852466507470538309338396109160590380511264531679559466989536057739898837892176923727931927828239436437757216762326896350364058348894551403926143836366074885935422809090318602838408950908109235345532906307166923525753843380554960948855442776209573305879101642888501782274580304908066820889078028634519955108043934985947780529583413356580720771681727252866478111733458924958316532940738339595774472699824835251714634359161585324090466031593105584655015125430350250900936088477691633551412623816685023410802022023160970764356442345063947598573466169901971144531200074289903971575552687659827441770605013575847958013867358572492628309832067989015142851884416792796745283356303002845787426128810921156203947422764030112159899463987205422019243180317167109583606973421132968799015604889571884251252875278900126905162625499448020427930507147770070542913870546137017175124342822330561056869484420069016450356312169107757211732018057756234265754343431518855038878820909072752006854029937214835804542814550513013465075431557158324198071906100040055391826787575009529547247973654264096271193550629377435896588986270608609652933215847819233417674534517549770186001802208664414800040880346141563368573680013467251045139393803220975650040171885513576336850595827525756821630683074131647639486568524160414213094601705128325640174457694277495253052443896761976521548529706584200287752452481380540964977948306874297355650794248193380571567207828416899935877861208543901002018598979887033382725781778534268491434639495640921210310988224850394017131432554706870367675298616488246751396481767097974708597397726364272156408099580954327703708055271538785617097388505091181128034213527810252838620922047323224197885358406469509161115826800441029748214581263616652361133284593757639463780654791459156397133858596546485674106762993979735340396836528706704835735121933215841425350292139613049021601211478452966964795723105185413244799551886538084943622079401329918815758195014744332630999635612063694667192003418419776043951361340594957426681550233775612885084443193898816670889801915767834810791341330113008386921141757509825380484391646250582093669116077046607757646692704740054072261379317540948581100450145268341343370762467144925995835060765245206371306336354143221343636563926756316513887460605202054191722530562625743430968349562252540597187780970696467704009456298564261788360069604927256467215190627647413298899379939294827745153102709870815661169833663022758683510957937483153372312178936112806446192254508896665041976945272185243574204882580408668927946530717811625096361802194790215811156145305162316448921933292126615786442488182509876999020781854073028580040569701663143565983956812429066226775075022953922376089976826148110679673807423235869154470520701291851412169526361229347264822404802664182665295970715356644799233006316004796519582387218699044951896884444439592355114042583871369975259616750260619559952290262564269004977908721813197670458677634156873186072966895050726080853130368392651919426210904606125040467174127737099582728182333832173376310015736597853477040162191511171282768061747699351839537103909427766316424312180452951809564311880229013008574347722467050123773509115350172255917297316124184704162333975225621041686248267841651755893880610732607393786109509015343954508625002736849410655164548748557235848148545272938203195922268871512039173176583485731947272503488833795549752254670286814473367424753362330368630467081208590568408936811849247343985822391509972197391053331978602690475976900324078975006112512033710641173189505511426180271630649782519843906604459396308558031623028426216555301080364773226977002695223026153645289632341391354867935796532641287977409936535925242915099760069908665898666950530771315058503791163052606396416151050811733458756976772667227952262007690515468503055142990951329541740594675204708357495722688696733861868212268497444706928714601052874935110592727590699699796215795966985598930420561739478883125527151031808773626506481017413340539191148767738839976447731164094623667198508773393511688525398641130264719621832603993782269350797361879083561128547480279297117446962685717892510885578198361219582888726942724099861666764323540165417243373030421937616595249016939404113701490253200249504881512283521437912168980122183759957549037418384266716089436170907442426469807585369347684663800773085212526233388382209879730606237966086849401709674224981902243406164081558490354317884251802094691978471567005571125047652839157685332009923423292816308488483262420495282747207992199051441891848496549546915775098247312537740753101335892634233442459822297729056113534903669149041565627029656928879875250946359067910365452158081920104494729148094460594619328548631353496897737778622442525309568504968871341393756944796816154210705791641754475857709112236906143811988970771047473307190349921787482128031664389374001670293708519171142204383699022499409941371787953123869853629989748901809119894448948470148158869943532565890361717509012169058913092719056074366111990039498817138259861489235015901068184364161680541606366409718915722064776685590393978371853449896839218309099918088456736208400678040552236917919110005579581366408639854128667581342646092768032154493557156834022587924329619249399298015948449572587242865971270620825666579512396715912861306048373072529101324957600652488406383517199251783182021435985461331374249996237293772985115510062632267027390519662540167182137371400597928083759911074257614558739215412883455489270950758387146199811235646176621516416615080978351362939732716244805721294692013186011208924153556889306979237240122119726262768421890885808863731787475082280339636458579526514822327024106267688807987618559437872810857120120635128882136839060851149270559923065022216438651830916470902140088668614324739388397723367292956868711039748005417920865945972540686413287621952213351695890485164468387308931111839370173436394610945295065389504013663583946796454121602647820266039118998814244352144335648446010938255696327735731674083927634029542847902358917785239238812891014558911618173911242469393444812893010890834194562040599450019560476783241673449222545323238559889314110629564793574067422367466863932248198165613228430790393699466829700586687537241089103609294109674127205870740168459343452883424120428740790787006238906523558268173151061832249571845252887042257360917210002160390795968382751175977440747302894791284877362833114923809003715214764130180282728579011404350918154998667311292864313429983076684088418220531249010593770220195912154505818457391605503238492088902378481097271263754574892825220678548669010896585541606962837450197328757222286944435374998763344587942704209688344608118324641727015703435904165209115726813110386143973373876354320709628343217896139576484133550117161735824413061883522179752434353930330296085575180349968609821602315635009984650514740307217426124530610050319142975158891989212759417595460174116943954805367944238044476215377474165610222710193477761935596228387201473255480572223218777998457502458388007421333815858246101989148372936731156395889572682872239722791036829015772166279607859717217211582114064694876653291283970713768689557244949686954971216015980040336343759555595977053586304183066277570277951457991392775578466387736691471228783732319422660781295613204952061160875703461305538682206292151152760580811872972756001743189129172061260681305234647248652690136738657650902252030004796854556793372752649051441014178378561272436694934533309915214004852194326393314209350511521490295767385983914224547834870986889525829223823470965650012624052785789883671572164420031188004446698202054728088849178998153750329082590460740136013704123509899512622118744464408329890225778126316579955006033567191399185938537130876356469041462536107908524622278753450673635574938161354542526528791763784630157177290024898264082714189831163780414902120411998354740450629393161588337032837940725393652390063790080444054815943810075998265446107681062057649437467398888990842378123578322282177801384318507571020916643936448370906996780622439470953590839094409512006744888503925974341394459263795630455253358546906832775089433909934526335735566847270505137059008918554240996449351319227758344702422552045421375710053770036996377108706748581123357179227157813203648745092161038510295378867656420558198492469588455586594017720593561600777978440134609267196652565383834253689918663442115777296484468048271557038113646153520372954427646656241638227212974174463901695479089353504689148199911118817838740362121939636768195717831000621381099731402436326610939090874536043572897756178185039515783074900191863963644175251946733180400903119787617387533182927301660269896900673796284326946314766203363652238497574283389297634061896774226484716036211008524907880891711205204957655836557239308176120964509063653756667365654867287337422780443436812691045942097994149710839464187318298713241634615497033571999835814690950006982233559542717342564589034569147522758216060572157771192712607150378434365024061062670043926423358005114050608255075792443028454869721127306720492917731104757692567254427990880732707361531204853684442337327531603967844555016031567193193024445162787021723224193432016662039752365932038481484495911797401429296746198976158928143825789262203899182552611513852440518377502605187768760392216716001956043207784742996848131598018355664208135387804307966588478341025190647137331788845823290080882266276941897296930677857799459304394128760674622740596039047341351907158031563862618637923531676991576054558262380917869922402941002774517848764570866087105033697944811724998964018376326919042144351711677537746827496112483122165370083919851446112124327612316173271025161980018548867688847329367627882833289488591605206713786678401119680662195683436348999862055541304429470653150807691592614382315866772041166523577563253726646138572208086801906005938381232153898659628061859730626992278239985623036215891307816016734378120496249784706676369564160080067698293903543582136026834126911500983300402658561055339213091189777817509997971263897490165641414828176659554721459844995372329137807243986450442565306685396501380508078525083514904917124287329937811530506066960428398034843428379776828805579260120343244508354449952589722768572354101896891191953411303930275562168752313726905401159944383136309005964853374174544077367384448776658329623652677389943578194066072138899752445100531633417537894339740826831334028279432821239028998683789541388798711724577154817761670262278260824298826004838006661287711682319338925974439774145255594149908735023974349077204578296532025321864680677241903271310305283787469786161510610605101660471652661912176800965681947905748206678691548999779285559635149091177419187599649141609974423389245276999214366086106111421945504813063675293032003828776984199620115749510806797084379722741703409285913730367520453510827821482770997692783680046865811067339830031171628823145737751839196993863250898176029725400561575840846323039284087425795587096717669478339496253360469185750105146922437940523241607109084797628862479523346304816993171669682730535745781748072358848223921867568237609650185111333846026060513596091989076262918331154988474527522756149408291357616166702071583251054234935898688402843707988713444907339691230670578343242455357340112230897196542994860794094263577611749262220529904777529843303396662758196287866930880784404524449951603705333515495094357447779916872079076855746012826650110407242181634044076242797884045968396597925174574407520838626617717966701523873716964563766385754608674319409251087250182074808620674797665044115542389483120045062089723378430057003717028341744992387263941449741030523675654055929564367659792537712570597632527727212916725470082327237096953922937423927964886718664500680270111627116292647510827199272731355793422575044919852160447308963753475268893879739228682425716782751890408347025330730214533770862088257846669939147259364779067110250392841145018205827979492396502427060210100862963848125946952511142294187500634712966353543232268310824126202507243708709627105804665169157427265196145719922888452149571658253306771733756172011516434243038659533618994467007132056498677527193719621115982826857558085152717492148077074178965904428412110996615122886941074029006513538688365440247572574662866416984066836725293851052422409152505985077248180440816561295275538127633423797158151118056406424228613779268133409952203287309951810015408395111322348282501675170057906278990675172927435245691077636155864948794998728434274181379709472536520055050240909858702707924293534509374144156291738869207073329997255078616050630560000539094690313259048663362700725665299247336230474502505208763019798719750130074654867189401880313499862050531592090427328137432668052148275787708160173947858196918651219336481557629045764600541518827645888784026200445648645225098558603013997430176189149676908075669557848696290699553630849976568818897881551037932744022272494133716505516053494482238962497413844284259744114534316418175054133669081002229087613377968548550365068925465173465040108703603603059780879302853085559332969310434824667067842909381263755540472184445081274109214735270088122748144360967455536598804561089857925010834392689051419232074452133254817249278149481626730612490790729275119546739337738859747503895680998069571638421337499214507068242669350972792566453061938556114732202819284047583574866292485727152135451784212669941812703931257564752818751942333412156278415675260756758118771229301308886211285233819336566956001659438719524805859975967769750702643161892980957779649382900952852486541879554344828604907236767283260411155314230689821182917340927770327809599115710394990307037905721031828569955097031076331899779464287004109033590299442630725291840263594197262432232195654050454078997552896445387496280095838102030623733999959177552173461393975121062070435531120854623680565683118490709497819373295711597852876683907201984308952237518171854579522767841512012812971530524131750661368375475224981819545915136485135592325963926174430387012732261825145619447139499688419475853949015854050563277103235974231288025950679171993974447189243026543878086708434852654605893235110446012679857262686135255478802281374225100451102359641257272167088966653050210619423554908454757959533804131871511923394090694118776942071144593194826160421984952614380174729702364611376626670439128391266995904213895274226506895293425841570490018109915674585006857671702429576914922403186276228535333119099591344894074978268859854345768185029041226315560143561831684737946388742209516582635508311633557540890248359821607560773441001574703914213398635228283606813106937802066009746346170620058285706337029273877192514992991920068126199966492763040417690991727604379976786635643525113298290511441158461062499876041732127264506875117989897367335516506482120583477389812583020755854053683133218544635625820233616870660522552667775254553017239358913253368542992726866568334807087534140768896010066102512869603290490275016791608783948715557835717212889383392674428918521216730688646109123661442306609303393554323539176085696585120120211330488688638491967987613704817861402208305155511419346301861284623558626766973723976769555352340767433412082125614681406122940954044092820297574408971911378784330650123239740316930222668586826009208601943452801660634485160011553035622094157716748949965577572090691908473162465170388726335834779680904495658563420055706235367866661978114598819582955919139885351944270749167415893927856159637063724259335261370036502811984256480779775913307951068147520549021916281082847669630221244011095539066721900386672955227688180563192304859224150431409787079388009398739505608459799259305510085495229402273461944208599259553846913144250808475700440798934688235324119290219673266231753256452098498806346576231217664949045460099924331278597985940958642487705034047959461376733247390407904253545391334224072545356615300575128891922867833324782672167368114378229760511573426371939123112225725004774171707855987993849828018938296282343922708216565660370797086769979877838471793208123938666864541425922881406898278505830360046137188371492365011178143447522204118770798521518550756083417094361791780822798700184722091167457207351850890400240327530454539095510831231757700930744826406540147184285089129146565710717657704736406207365715683672302689890371647623616403832873572310850056623040227346913252814432384266374684970485822135089343883710721789925022647367978877169297228193799016878138936693517660507270310593922264218520749727017131921689370236159801101081402266238440712599504074575584264386609187939487857815942719633509729816843759389731075117747427859977339778220240432552202979387631866410457188531807160205845168428869639089519238371394629191441992493046427013850901391509359676292767502949690222674715495024469659531488006422160434936425495467271126557733351314478498409820880557887644333300638662271230418761886599799418004991908287168844587823619967061382872326798487611700823993924997757504470037308852943595108683448698480612242538336458001589788456290169103193173107704070212149668832589500394220109917231285821429002679332811386982997127986652050286833092686612413930945845157767896742236186584666484171442698826889057637524652855412763542412898622057505352852373230884818886852515473608621949210287489721862955789534414099092633304390459989048471705679436112205586319557723901908262858713373324956277480397157077364394913948856084215086119656139975207592268571897458308789119600438386111142209029183169472761235326674972468111649592036335571385050538022716223635283404498821007034495345971875624554994078842268878028547925352376510025954020746720306556924821775504978805638094656643282138227370109685923898760746778489523084268217290039531773103343320927362934222500085385807037030164126365142269031979448158607957228838294943943990798434255451888634462388928541758481180799916878351668880062636161341187974517919096613258395707693330254495613029838834315069893716652684649658086834794184561596246787235555262361626556149310286053165556925665877210299341233000684674060420252309389427128266394769300593638497070350231407132067858545605823220790830737206457868285449707258677167292567194261236546509693532736268796839915979778537452359506465207791488547692058215963835287036992703326364343968864071514370166424662803924490573887121831180521042562993639612175545311190365209881911432728756586626655728699703720404378773054139219473842911336365930456399587001156250550279079124010448922870954522989257483641681060167458085823133744710833458632199379047848512353891315175594946725178351888474949384518002360595589577136432674321904834513913798791928568793284764083650692126935752498657416870793823472309990900306180525411384739128566410752168683091715602929197832592019500715410481685360485373928260864156491461433109078788474882975234666375775452071495777013668951930156931526578288822655372454475390150964145853820853723901026678921431296175286534170853590864739919622745619067461146173218639846948984278934366239370609516329560653369290826647547785384115722506090170546237584437727784161096035423442342070035060944804974303037543129072816578679808361109049065168863621698307345963150974546449709856359481003805018002091619142604241812197664691042888204847485676414916260167648360470825201004813400386087755368892654513056019640690482707567480557963461452525153356793275864696357495449567642602589530718225862746375268730683678215752722719012422436716360192747421643072245382870017150508066987088998369849242887924621562588528227388403189153281423220510366545431431750246685547484034187025050817156802165953113997084366855102966237221135950416601658237063137308643041017821479004028931934454324501603099814589635777418198892708339399498497445345048520557061578171919361260156059461366490883338873304292949314278885031606162911110483249418485642214660828253534801308614178235568679601757328753357205890396709481422559838692595064135523313543188268449151127464714435230882899010393704542596835918326006916095197868144003205601507802493644360496790226921724975277741719955258904900160076079958173364180428441093698868764158752889273305886126645905854988114449655115609247352813526685608820552455406544858430712313647063482549379026568736449293266441057037169299449301263367814629327807165235200906157543992505802153151656463045122893880047579045532081176303447807784575617904366534520763335064500140772520629325227588735146783803147901300517824749642990122592803462815514062762683781900303423195563141943577018163271276287832174037949848522701519464019950506955135845399004890444578349079233849935747711021547502481130051843171306388447098875183406508328907899175561916392200329813572280555256076242641514563469994603542865249795816497827585998097405409554802772576481535079212369073568269103538687455730347468723686525796955001266243028961254435890794797480326091371121130925165162774383270959344385884237837065519592709112273330830268950016268395878007264994565428687150332175965309859692935207444794062769951740110928257412237111741573333964770065987551426915649114388370098842486233499312831457141334435452071646832611686625780922779942758493952066826045591929507409234636037172926202004887699014061545860264662035782576047726414055578091292328863060698117015965071409958969083571542483341823809374610843417161311994679029619271656187569198082046619062574743268273494357943678041481206406398485171192616133414639492543292502667696365825323963981952576817982187150551351725383350229295753391256740438350391690266082048346450943864217699871335170030575736015434310148393986732597753181439497729327572478966153919757699218373024748511377210184045449755621884092013942766564182944882595446023460754916987570381093131882245867562529097954283590359676187825903375249491065720015028348360276707302956346448447110611464165210705411178198256452800433420337289796959481633778432094131950397084178469555163697907900281768140304462532006539039405615029524461607285300608010588739747459640216082454589864718192344327262722480868653703191870491236911469943814271258684677527110340634645430122972162171574693931012260888413308071615817602728501106317020758638467899492790635771204187632386780829065506011940881948081752351809923948033089664556696368861134300668801711568757444806935440118004501843515219198332533109222376918341319491464510876395868019081915465168625767737207900174656635790262553878553006397555284024011519752884401445309761466079807201003296234535768929361532279217642130954802681993023814508414987980063032974879743107663059466835573307766282809333312344042686182410120005757332594342408202139463283310198288572210150499933549408777769482292230389024124138748769106159088154521589704762195542375548385029654397672823172022250084517005218257743154308952480628947563569456853454861996508874800340854606863209255738065579553717245788947718633685965067960045608397667008708686327781291230738071357401893755512308159344012377071075058345819978475838769499229790620601814508654267010374969091854043633544345208452051463120995043311418795747252580279313575690735112361584557751560368778341643816214025225417291260738671273960460542694040725384446445398520345149931021622651613859719288519749477261148397834837721554123117653005361303197571279991499811990756914954324645433083651670982742021604984976046810267400260032513140856151297705641056407741756876108449982575921008434194284763406916362918352965680375627872834194185580203884717952036264564366045531055716763686740848308167207962949776235316878595057604041399918914009473481486990324220305697720946592143627068361427953439330444581327765893966928815196940110723734970242186130225674678970060632705526252048455786757260248945866847012275495396565411230172082370252385571065726037478926051408418369862454682752286590619998996460107230983569823861290574750983592206447745133822102777805200379745516523332516621421260356934624498731544023276690307248241787807802944602887045693131715227456107874353409473639030967052936935374340154060579373649596209794191159789540114893249468711040252096729663470772234267984518719471028292389626383331187441929253196702052162290633735279067838064359356263060906719338145331834200211772046778487303744014713122254460569428347482776057919891636031783557864965349076455675012769486504722464849702397850822951536093755416950482268290239604147651968535706847737832485464410940743419434684626269778559057821824687372311519139654830014570675294958839141004958039501367069416066068229000641343737989031231436966837687782936378409162012981757065766340519521615848331304839348330352307615859610513972704285232691893921656326059440884080154050445124362809957934525921665328982764735595303388656158114069454515141858708145364901515617190670322218227696051699644182919612156960726251753539869351607727274812677116854803154430619400675126689472024437561615636598273362643844266753622413951033261335496360521428060882661752640397828470577057317094230161149918935357972640090686128670262090293647329883083142838753353712187316136733008578690612532735218043032151632019464625491201516378780006658335868837843080416764641985188747538785062702922929648924286001286888935336988260862821218404250278195877394066455658651764254796827833926600438980001294514214974710894583654720819285316756348286468840471398155891093206504019896089667285187987196683633131712444283207466216791266123492931314993597643917268876948361517967758910442335389437778766159897318855734270502612453512909594986031504971260898015825140146477432781533308485570300602480133831510751665233109986960322033984803668536602312943114087353794408285606138133748039066855405353838744440064021312997230553748300409454416554832450089978618916205908411285737083333037002059804761157290105758264702560980838615184056632380334887464527274434384952963844025770777332455485692077353328766377603470664683889551705614125904486241630626006473069606543170246199713768349662613539424965796577358334687516618219533947617339250811306491643970123852201100121555304823477732814378322293696068250834616560085141374692939307169942292972683315101233299883362151540333692294305655231955871192029285619704156470679175293154495034904449051337092634949991066205877514942777817133394751624110387677626521866322800324027470694388787864696102480589112869522012879379573045200406922735815918188549413492053468393008785066050556441316705965367593543929445819435930459710634260520580702401898631629342474734706594491488316044704840763555614245641828473413196140607993654043208086632156217155775898634896546351781679640785119204942614652749720215533357256830652330734507936214656654705982480759875742775635797593751252710351050779487334483847808914605145706666631261454266075390541472680096169509888192173282903595908756339146073857159350674172757923596432844309870164029579211630316974489579716145000333069173142579364515574251373084661717651303281672838130820253512026795734142049047493851245403221992861021200119457034792231132140342060250595279510767163048627903921604681984701942685574646470121268139747616445648853887171181301781185174122605471020370059366627404758818794479534062689952235847876644705852397999323967661824632307242165029584082743714579081345714352138528248771795651407593434275126305890203582392889821460116436818907839337838672440277477182330450858715509428451172941195665045210953100771494505348968680881293961098350367625765985379905633616710800043117207961487211953577161019028225078296035801864387803718136289604030709326280328797109244016834993381069838172541330583714320793489479983616356297673719939176195180465718683781554828832765537281571063679531902119674824055148560959869607650982567075662511454860354565384898144323786873140228059866220615509002456524437548102353647911775205314865851807443049208180337147895243639797339137611341061202694132908040594253856091985440455415257343547714030788054250102047688384425141969646181975835653195503390278441740934629410235258945585344721674978285664078366751041419620965294340315647054862845621377732636488137487085965203294959325193357509565348907818661671621841355051111378205788832166494616826141784976619418801416975769833391574089095404554820793752698376854635316392656923212930900464318826082966580976997904574414462013765854374338731180297235722019898559975552241586072739676004694080748693927801241819608957946249294467981584562968260381223748703672502305859498079404484969623132742647152702435087159271912765577271116256808226764649709007365108822264783977358323129686470260606946652393226832782961682680129639004580384264487251689609012763178473240068314171646434553465526508675636966511451962652997162549054922174623046191167972986166760341943010348955651388272123319479803324757505609502628710046262469753496144496809391436248204909813339372184522430590025095801872799210392691230657683604693102031017415034740746466990909845682948110704807167759762790304781118329707760381619994322866582935915205896553908923420873754161387761456823006901445060605504817206525333106270347501570737606063794761717812801990193562034918897383422120880986449923305953530599173258712467020749063318169101542630259925009728603362431122523881497050257445329100733698036413265940400656218218285633421055718986581301724232930397839168636049819828517885715278126330032537296424370118391297036158299903642450428514866341053332599002812769082101589523299914715401793744255833383447375100574678144187135678611533859386009479129536556640750873197291214474867810805385494592271028687211081544216987029554467848368663492713561875312045145775928874233372924546792727872032999278267642754194285767986792857732071423657974402695964696579965324093921389137315263753585913409409005946419198845271600624280207044128418544788395152188214257156997476550420462586275717749311218360315891360393427025189597127198307861520330773396839885482160049016718131593570649120443755645327436537199313165030504573738741153995459007863461070494663364892256915135553809328322879958108748318191782575105789452399750120465279242847503798073009358949782749241427937842356543849452474799127815033217599937208869853861374870223629067682958627783268783664469935513584342552618036217112588069710041791361458764132298893647763490057035860804361733723441483832742284541419199896650337808481834359589152471121673213519246519194860249094883236331562003292495739045865862849477501843069059443300189672104412838707007778857815638502125091172184334724246662410526209941019937273533119272316954602067727422012346419089986385758679699109349027885534374504421873190299740101031719783926212371546039988595493558784359744457359989721044851389455149489248587285355719418892483902524027483723550944865352276099043535094240188333927693569202918415188076175097103607673385405001788791831408335449886968130598804530779161510730059905494433609534057128541718843411239024782549425066522244632000534563639235865854181745437525662744257309816821197105302109429265346471099287310893222944160071310248191773486495148584150681501931574178275533176968376010432269680988128268280305235542990157682923062258473254279241547711084054965062462192188939844535472895321754651955587735334532361107618860487476972167020539704848989386070479218152611037284058710166636288037961245743554998832140899338060295701603367612117174457723288826874311107990649242563284882592591318682972803048330196531406508272092716260456529165864991376352920246059741605538603045852657742332100016633506297417602215475193804644800332945624599015211981525556445837757731127553125123183915613802027127406524592763673889442442330625282595536788584023233322905454285957784857752136989102357684675992586454010721403419643641680649989669247036002336428489790841187820091233659808867365059147562455469198209309777630691529364099816321633847328591473037206027105198110572698609749501961285361074545971908572385659872878256097659656904545564375132039657084075067088492679968060558594316476000370694308239774631206776508571848609389594662308098114036479347921452361971879009219783008122414691440577704196324762454747650181803472544490576413222119197798362781397825835404591986842801440308545031817270936584446421836133869930009369723342929826042553649819640541127839309647766859972259241518324824612926572315613129985021529445235389317420712950495017300740425654143750484122376294981993987878437175621986781462026740611232737733607947146613142814449841592305334447963254935810863262323575346833263471319058542573129035767957884388729277672143710421167341750814985701040541931898015532239705767065483519375012576795798496791065649025863510156335335287688337464047084905876187986876218506584837944966935331589070663157926716020867187946589514140599888220075071661019124107692410495016884172758943633061167772321837985233506819884575663889860054504443265486313461317321823690948501171586644412514168851683411297917636793659707756468766991017120663880378985384806640136830015922177708312311045556629749589458991388512778257626443102600475648212677199639871486695130119383202520916777774514347051389491930924637807939349142015836705564730479078866945014007867581097203624235072464613850864525289262574651656304563718237130797174845458715537404477293507398541003559065390389219084703456372568149497704436070795668089652330476824797081500750110563292911410678534891569122667007821087893922671781017140830176850092303406963173222557652961196505138516066350090129172404022677439269327601743872469697977991328208280363565509450416212422415233613807245980423655333033887180516457401035925772603271383680058329518350551504292149510506574002874718115987647691164610906004532945200488498319108203421065965687865973629006328142723888506385858020170413607889188861488612350339654301307226690413433413290486525811394417864685923629186852934789558073609269022487376025088593085019242492628638244498448813320040857140134301383250276615946195598599085714702832567230177063950118593577505560573227776923752813132061121594243844936357706533683664261060074807452240827151595576780866785034941324647144379464726626373958885182695329326013368427179039993549346461403267203296780990159985122484810162228087596098198390962958441749688105130915702378587808815379463505076577163123769363857600719002276268424441878751228094313618542521975736789813697915699772873648214432031050974452585093322303529731244298365956460989504863480896928735301204909949872872357747344282583569584050008642460417110595576959251828781315234247031644142514761494308451913158641674941327527716300946019674869857638496526272708006697923065876500706263570710342844044366427583169101640567069672158219541323522003451000082879345353993019345213292393676528187968610407288727325572956486457511241336287543864555125955934096889405006506620590955243589946351235180330725533317300000930331415760047917475896787765641386012597322578016376065385253021754149491693074195536746792349031116227329369100807664091134695672606774558668035793101086744799907579324025614514473867576468928861505683294000604786318695025881982651955519709739937074096165000545322442686589665645259714334269171027983312666140986116229668026058827937771103201778554794395801818039504217117415906736977841732267102154591306148958960195897384551496216474255936514702452602248818059118980013812800801030778296200987742689134823303225939856602240675443886048417304523299592224172425955978656736509621655305943053503948341838389503231450573703492871280758007633490671556652989778546236655674608601279654204639366446312095782179314815561380025362461232209442022899269059321791208137598421751154121204741941732823014731473672368319494195498973205061399975358960803955610723466200519830639978072517418879994386862768324335630669868660777277506590435019814913858003081300796986795376180648027472801829509214307714437163243672006486912999554633757827238877121806964526613015650156115692400306058881184382668517617957532635785771218261445641059909072682489254874302707214290591608067605258040925278094062000286456178257017173584868126939221801218441209518395754499902765802000649508240059350738168337078471298202049882743874085831614662805565843016186345808224573236214236228270771710646029947446079238718080834988682883797467657718689973713459328785440822217475525353019447820506913095316501954227511338775838578318220552104560980534434379925216528017968481362110107190200435336435211712339586876542809384806400983262627599205332328949592393220024427854887347460190966937109695775142327262917105075584722497088192612822209348520760597491184777486085191041824807284040753679023157336430722508258960735600159953828190436090629584097880993026098158502047400914205320392495717440556563573333848612603261324402495155884834670451265020205964558524316717121514975449994681345966874429005520311530465365111224130638958198848444892887564853795401953457379353179312311562702741055253895306004397615120064448509089884908892618768806428856397127127268953908910475438176252547412323937441635578780052787502241614666240523237900888468505464433385604561757623134450311831216115029178135031688518033511366099636939697932379612533181895152458904517522606711941636111938008859497401267478764092466135566393563276949226628442640994634161177572170113868790191561854811156221897259436124465199469872886473469234110598402248042655688888267070181898829314907380816256713824391661681442221167985719888206927131489909454974689590222260680169221797505575254523951709487255832312137840592932197533871354412728231758680329853607050446415418337433175705755209615345622673355354880317243507647794860818663772994444274951108346918201582748421114514999461719916913426243954240594047183168406459816784710854776593452039028315426792448154563292586972369796414893482910443808177261947798170837421449079305348697280785758442526510515689873984134420806526621945885857145997215422463622088037025707624474090444330930004381274319238660234452515560222627077216486580734940086556468290126852239729431160257001500525054285509291985228243817055881004037964667813326196391969675104595790910736658180942662352591353103390815296421533887304140998147405861844337444777360550823484854852521282830609433125115383165717109573594849592578914732254929663161292274988175934118033857561935516912592534217829066875851626814536187988915813955766680666865436487097271722888384409108277619898511919496052335248320435925208543131071120065258475043940464241952419343376886280405370360101492723508030789310101589880210748431231937916872536616569387939894992887974452727744165219152243214980730809175571962671883638547199020864089971400807485773641017506303930042481046247734595067098120056573826773718747831893418729315999217540020844301855282971451494526795897675758178341354346547081716797487276762220218179670752727510408504241416479077374117412871588305608454802460128868555983616015840539012019309627194006055362532265297369254440999746705463256166490337405799386376625459606351671721485703953011065634571210111813091223325720033104068059266630841769921599774560871865789406612451471024920714732712396146804731960784565963033308045957099474109336099437376155688940686104444059838202722129834921299740978098410801693638086464570715516052558280254895132972886298641992662337561612564944651992967015676020402670429144124633561993770043786893493618504135179363396406254319160583264051557441678292144977363238985116691826382104587158684942640611301935579960949792040547024280061566446957431336391814791976078207469561018067790647362511992358022582972925707474154313922373113261876583506668365548064032556528870532317623113676145535268386463886131580112288468550791032015423779549933249675089308852487024460981699167560202469754395109803282015017121592082497918324230436273030922804568583712174459575444901139293739454874749688297927803604505068759507511629411382866996011989482055679603732494607158370168981665425290446429806319566238228695379713752844239494911417908198917044757674816514068666050978649541893393675552074617671283339267047753073838795048914044166264692704189016198521687606853168228336832211915044549979986178140416429657778099849860693121681399146586925991554166622113309906518391611584790834661512219375698378628690919017082034733300121643300123713094051406726605268500639152750799724259516581171150509374762314751369410718645243467845764924391817493366591457927868765829410738753906499428017572314236041448157460738838193329225638123421225212067248520999126981206188078194559927126991265593455258569445656026243065248099438553396757592892295632139670233086637444132648909226456851829599085054988178731413414862896016301408445426681309711840686505552933790995863014691727383143949515503438570880116312962604478984208938486324770998354841356860800698024426851091965300195639793909448178116958073557292480013994334326796752659134483635377353234111784934301753247921486606200383288631605587172065518725251318769941364076761875228351987378931690872318876447864111397503033883188916278212521144691431226433284987756179084191045193500083315776592433333080012697360028021152044121219099789658728362439525339952233641732904093077949599856626369242907286787084972659489603894917290174995162922458634423892841397150645216549623306697367436640774439392492566030681489157582741882272239844708930036855522472994099240716539832745724112141538566649508192071341765817449712774637994268452869703893878088514643276377031107677402749523427645351416075443045907625722125082566519585872561046142766887568087193939028467471936283600942400864863151589759001848976486262664147369059205627141268586709617111327900198007295299171523073830136909026408657163518430741257625205550498850826967612014313466633681997999231149732647149582150767039157169242672425006536115871588490775132187693324607070631917521364774479710483501096527825743666832170374936233369034856858376052427204444753626024085814011131448628489743372704253772438337935800166401815968910859023186561019383346830572389614204298128140327228953426979767145521146779087809440316492904269895393910243986148021200411260138753360430184680311994602386641269507925538682471055581199158123726331538834017766450302850097241136271580700890663779434121765192449455190014143189049885455611974806702416170828580980898548235693777003652988337585995365708377094624180521345808592508835708858430124276910409713359671117904383164929244884579456389175992209893774232888260926979419791899387142425603388948924423740555232572223904896164826944055926872715404308148226340751153613192458620747171045432453251715770508579519791087473365264327234194336072989943069914764375726548631390647924547142144452838894746989138075015556519654254858783388505633534261202839658030643462701920780900776057191688393198917085896753037994519563062440996046047729629066437590068119109300237957795654050059159436089727613326618240795546335274770586533537927750204228676637807803946097207259635575598502222412255871216936964938617533854916518050319405347791459076575419992849965081973204045287956874379730364032280607633824115535036909815610512152926941440650289611064864674078167137377621170677020033574279585934075128110606559299573748276904563703000673919419370136124550705395377744027049539219500309949907436799911397174540591293627018081893497494271547818392758078399571284580301479200344757766123114719006608087017021829781656998508108236145758305165926648907104754351976397270469756655032700214192373025684893140044224083573936638017676866703171543015127801285992320817635949238101404150834516036860236375038921308287234142542008089250905840710090795606718282634565961642302630280423560130310257528544248815781695067074705744611693364485890096338103273771090673450113794800902163571358560299946005805560456228820519445080067623091603054103102443251941834089845571589040192532174297471175293142639112892344602422916807314622297501265345093854076376666916830898223033375787748626554520637077621388156999151363881078533004565415673197116166528302431627749542651263565791571903284297883894143410380515999884049803711251924679550714410337363170387632310150732779633928645794097334657180756426003531454678622577400409184457056689925409494411598283098378654667531520588435391436693194591084440589185189684486223068253594029800710295362958027872220477431367981207586815445799267692046264520770534977856557900234728524506004079869821997060733576838818158165903942515539410040810631697258359651590184000803820795400517002089282957661842348228354464813141080818181736127672702844577953522075998164533064147644448363497390810845827567205674098141110080294983179479878234895619544776529480712496834649763792048003178646394382282321290882107609630457814445988817914409530089506727412923658982494499595847382158417591547048186188406753199567372473976541490020187452147983817624181177942110899793059361010673023535421353908761720769756303430177475262163017585167995938061653098435102312649033910758508263698243076263708667241616136038718364760432278427339119006745028588703576063609646416740819354569526472054044221423027915940612758305772838087705400384539993845828398063075647317132805438203791422070311528564110533973000833109551131749168228605696076257341396826322376332010899009094517810147948827190827333550506584969530203506332410590893377795654793292597576728748429229894101955832802099994935160352104898356412797362780514788877925173611648406608554935870988739879680429979741712676827343682973847353151570777776036410685992346220002429377792102990599929766557080642216916244076662321658988798395255095118370108179320252800886332112275643301524377728430002604819460320729825180400195304572149495989158512693431917751289102618262676022820696169149849209184207998198254522391978054671614334754812295250568965224663318248298320263907724196082927265548068223052909706930621079116766390365113768234028840645171224437237987964405779108552334151478446459485287931658903852520533957913362914169295291495973101556547483380527298170414693839248806570061512402277768065088619312555943430637909214556479603895084376122763506403677264343813430614076660179878002920089155635101255173902481658696426609462746105573115564533819117369908308513300019619271071096432272103055976724435989055704436427397263400916808734662292399078477587934141477937851870106810575640790472452874860213639785526556504437330555099239199936919033387215744253174690717116822680862380426630865612436365049433330668076912846267520531166228994030493233659289536747564347229523192385301079791637986596017792310105629615707987111679706851980855988929199065124591307354031456021499612218404872300194254984540420404906383690132564233074830589772808971755912227709116890521018383241006905079996007100771015160330628768751340261193742970446013863066252988175449818062786406235151506948474094923315208159069872943554117921469356401680448652312134539408615140074588829946379199895720146347667928559319201568018955401466793959114433998382241739385511634287685403136268532638315195442556445015983400197045625475434657564247162774390512400227707823442068352303856121432703923537077489101680917113053189840415085805103288373847128558740671182119505969202992527835932358741676420745933081691563743896215401120789935938523021332949952321986801233767738806340754222934192261495702515576462186811404738935814450438792883723318568604155244877554569008649530620771757290504418507055038939950679102068787988211989080278754743369420023054115428822801861533394902925306676303266573787247640963249412347902370160373618159274747723154906657780485500680682241357875215097366961427075647201774136425014607689371152334714503059095246897152448307117415341531411585480535957331120417528946825666503233001091448319684534033144930024096053869583233574619794279017479428905938339689012218486342653782648838401811927293042282463078038602726385781370769142223278402793459115878043883776733648534164846098097889162321306199921924278153123629697509096356591645700837496285319772623315987052337666712157260066412948158650462027053712961931318532625615296932153835568369880773747981897218801619711937839717939141690385353128322532354124652428264397970429227762885550222684496268528265620182530542396356999915379343813007460025057510578810130054076578455462784049291695317577430275515220861398856021185553627466656195763933825432437277275459374365421042402295196484393957705922379432938466020299609585026098003382472771604541062413065662361281753732032999302394362310887998829758425897665852806948478152378698609564617287867918884796445560159078210799178956713769187612730729738776672800098781953081143854811524653824262436739894085823843044959088625998370849548360859878977611634831147912073895525835647056083785577554776177402994674039007206930615719474372842851421761365273449380594070237412115067467066487145463572280089393198796218165322646263393737994757972342745374490524914010458110115961252441696504360611329296086612874823573554123989873736658225101412961208748255268309803520106652749864934768249181746116992443857401690638563891746439379439694291650951656657680123355141137403587988091133252207539026981800098556405021623164550762850527347711613591301160167098411675649986576858852756763872635642593966524033483246618664451017919324891318666823309338306640159272666116647202653272418065731762495829804274641320902849695292515690617796393364820592823223516172175736691209693051992790193754863404561943821232906251625014923574666139348397982957809010866449260842539891379807416393778905502046553274756721783820167706827153448275466765198525339514015273076675712140223328696612288022863392794404819361691444112339996914188127837010164707226726551007412817134973770135723857182350779950776588034742403493219709926652856012830141644635641031922464461314294044655047080907364674746207379927177158010381680369297607197813571550166037876368577620659304367454623197739675281762113970715566180000534889653741439432616352308065578539825128991082974897311887557174763123753350988466893282289098412015709145593230477965978245414843212238384064938158836744639787874752074693351544543777011248436438586002202010575504516155055762820903178266687898024109956785748457342062678687428068565999322288871649198733694980995819140469118582222666170810937731660416008560623561494582073185165284328796701117050406994946942709196091978445110007569453220197874436178107281610916383655424743842780071847119552848926936385141653415198996781565679781121113417041533228567789314583828292728454551305525482572510542523272632008369419961314088920566309704305719048492215882399221231682690983656648451828020721459957417669741662930516942448868768590929384734569631372436383028169103587033238111564802693287970716755841463833046408291673314463242152456526382868972973813705354721103489512802156639668263398315345508716088458854897442146806703902536127532920335826328685927364613496794796576048530741633096163035291984603115499225251437351605957329028890198940225138723729175016830413179514628267998066221099645553045017402128749989281219505496337770133460105440139745560257809672978742991087105200174111050950396676401456611497967786339854606113672554680915675684187352156511768704320493446134606069832814321237209943598007423176046277963338091525565753071876444220967939117275430687446414764714332053318241532162956112256204234798250493610618546070033996901176761265418511156177952598037346569054015365575366643314425937778307005166843506652028603883496171888413742528598727250626444015455083647760529243472119916795516539665458975293600109562055358736228803516807264688982610535764589570753203613101433655910283770546070087340088724148083924466578378593890525154721714384972777952860780119181219559525276267549997501121704504922971637735998038525681490029092433441683638876972134197437477186589641538355075301527712993422129916225628012739647943199728112016489668812737730969127773037883274726236903396292957877443566630066224159610946850788528129299773403682676689758719341358597015757249228452066398512315766279269275573553403531082899515525159430203524821441933058026975083124685141915371535296555328758979831246371489904198067123498833576333694272905336673560134834574039662646805971182230233240960395926237878197577021403398480730125663843472352561258012738175820015550145234565736106063236444094567384195822197293265546591156783009703502839989877812825878370336341769282633452550108708424690073319573845442601967709970648615261867364529831292985818238720586699740321430536479223199896938158855774064356625194355050571893556963563445023696079292790754277485200585270991730133337999155894075346625808172462190937946841885907284682969467520938688586920500055616470136802015075175995893379582536435433694044628460277446231018160353589266276724568783865466381875718234797403812743920403101516793660355957592193340672939158416322532907851149349876394433439671246269723061271449998778089482148052779133209924964818998125962475517032666622565559274957146150224258645535093986171055105876648030953686354866339189515158241992739475266613447923607088245623836046234104374058185337221870539532755021834796932999274942172053271222778932030736733537570419867532131852150037800354151592451972596632219124255136735149172680837653477540487012094735535218081370136503422784469300918101632149007623595500793697920272523408091946914424294715658429597808534973625600707323130352841784943397896323770448472237355322622907843857121058508891016298840512341240719797209906707901442479745138930895887901193253621159261306966598646897184256426542517949590789321212566565536578934453787501587382849459077842569989662127832366501013865445024079042493956641209227615559662450192891653245563060677017664707427431851931300330452990149413390663354693560327598120078668729552560355392921053043773156108863900844720769729503251556864226235532019330112300395671139003500603358797498971295548943561992002461763917339292779744392698569119013772468172999655893671376549188416100142962127561196701702803965939761814616123074286633412918560436626516614218388047534277150582863689455264796259431864178275947793903938535537058502652187317945927633174718712906440114657600375531562309944104667975996963349040583744693658009346084308152114457646369401722701649336380283398682568659771985326269468944314079548222657277811587454631058236648438629242220538687113961543928678444623783088239229476043578019703925036120205597735993537670808746013638355943009531851082828322443942754415677403294211344129034152817780379063944553777888043178421448694059216003362873018670582182122227157323801356367623559404465267479458086110859727400527176547225223391999431689992990973049027671422673971139627697066344534761374546595761279297662231772943494472344909493610531442880225415954990029878062973039399051660595374537685497854936676808881315216385238199112300066156101355381038052867377473131248530205964724642986279802184461772063143340072943272900347928057576321116487366092283210013220998728843749851350529251903809415758976124694104208025891982094603990005740789082977913910364967432594012505452097945632204687983062250703944553282645057764847379860152434727767323447078996850689639824412392901005588374010537479779217364018297693356369350526773505657451604971304366501292455318172608687588165457046908992140602356119276449377734568737506640963525825959568426664718660434940494620799372368084108689515175486881364299088257147354547027338238736415370778826425555556215470242520060049545681613207655234334878762156834623147529503012927890949511674296601013839552666838597589187651427840379848459085253565508137185686289903949102912793437595608799006179965591525133863552366483851238648648700717761992390991093846133166763120453365651895039951228167003603121354140574800099398955736045813585550249436396928457131205076854955415382649036783884798795017199968299057204010330414885693818242043175042782912413676542693272192537776409292636215080116245410127088177479479613816348338525932980310690119164355128480650616100802815637259516869599614366581435019440263186736367028450793577535546323495923360340891773940412480869714595933779412373197335898995566542741938852212145067169123213389181575707636657354753909449171499041484284820996469447869225307826295870530314942446164086130964669236389887583915949534036978834793240049539202358187173373170493385611970758939036733832889656578695791176612036729757870377322346849564997423403025934705639076375247487854761054799387702990372862936481238385656351171397042870191379912568315615775953391231208063540936772026834326464673913171242799756417292947024087890606601541050939611402413376921364582596535655150272941501760785254514300416326684732394929239544298299823814457391385007550324435403258477962032619123510327305347358875364330144415433984617811816934431397639269737387901507631771329228308970199765384577543815144275259971942238508137542473235267577920655097247480246500695486827410307094527182481935347900630771337664365337986683639724591889569682502568414328643395314592200381515032702577363837984551763678790375099102096386435315592182357201154765133572889351773141083487657893848289665157447699960332951824450454952843233898383955559246335178575388138345456736670121707299982342635047312052812321622281857819075925772395619596936201743878093930415408869918232276111603655350360346183341320615414833494776754686171018027604794600003512435387332970485049822429850251369755210702627638859941138707238471990742093664087742531724709223315280111411098643891338065245516684478351685223150370565880146091463760953470901278842328957853349912559916018148819780858306534372003665208899908173680493917614404093709416644782900258891828706621816311854522713743919960492005045272466829169067364443411903762218029659497943190201386535247205042598030217622391637644813999915645688502122706363087935813510243487732094150716861074070376980460269321273259610520925606123980613660686587528475094783175101096722604993329592363201619133626496636671264983448142356530583240397918989477415708944842023835053976736225057303154965073963558593697487285237094502650092258250433844955933504364474701339386838680498688334477476275958703658210875925196824977513478084364735068989657898499844372272590653295603885318127746846768253781599756776115292886770657002662347779482119959421421351148378856425890645507647673890626703856265173355595718979445055846023791248730407098341419253359327810740466977263217010228222152912575594463225098622309742599593630268866842285542350303113523227941319885347181149016815399199343014690478598690420169332466573088327926857004751255709303133725834177234715705804466691714485985389823679044173636365509489390712553850224919764027618912241497287496538343538287977148516612809916725617464157934532030299819647655678767979787959643565452755874800856101545163832839767135944659814432226086583663859520737359909064535894079380560690249873048764089233898899867861486582437638841579067627839310274327325369712652234558825568018655063745192522381721373601637964485455856101733607361521459106939371347245577017110542350873993540070237740120204622643738699463468293720420249128043937353987410428382472257138893172189862394330742433985709985213348877585622336100864179403668402886846839691895485751779699818051431247817113083189436393216695227250016571934924995347376508599367318556835054045166413033179485165368322522657641230287025052704683567751084265721833397471072110242974193579322332454140039739630485471691451602788799785699917413569625967266418650123652070731797021078265252551245858093272687041819964059634481987052347250767645244141652773748693361627125536361644787876994629070845181511490146716401045981202939687439710706559504701708245748983599487880193141452440731713267252153605222077252706987315959349600262670540949912528658159919177800053814777369634437796176620604679592972420748371048700704149635223566371636797023957580072633166409755455562791921288169669741427081781926148293096595909623358446717805321292107289063994937678664812534163879074275462942578281973359277566986513489889313274789136432613595149705229416080139434527794620006784969695273235342168025270364043080825226464681803636098340942363046144159484198922451514935224208699648044698909262550338155485494019596957695471652523753598758157927453459185326073805173209739117712785798423803735484968115651073678702115724901152798299030095188079674339156077006694597075015227460425073911459291122748770903190743204216794528967538791306838526345030017411667233931332479661770596446740823938391650163015594489162118598412973182704997661219894787437883998990390594794605026873034284904028491934369336739234211335737089700165409981864363301638079486425579350110670096712739957861787726718997860511766617886942552060643539583774163978194680077605154808719934028727285312161113918867394903715877265240283549200413328418068296383155724955843594392430664106396334703734357527056849267437478400668322508469586484035832978453920966051228017089824253731061902611853251531278687853102574866361266711194554904537166552164814986462566054191368589254174055569287413689399441850964132305855340327968238328885296809215349904696939358961563893567203364471191232425932685061874951805660159688909971481175983659059011230782013199303822607609924188839608512554772938350426855100586802546237545224500397953357456193298905194959117482333264297730030104089480469655238029331340895647824621816033949902480375908654481257956900178725426270220593066377477187579044216322493576690608588708738615768815573843535968312371841054244559135764104335283024605162190009931192422475545438758386652766958838060440072312436365050223834218916540848285875231981306774424228928349118558962873286828266619031158609247447837706853594507752423896788755664684917809394753122341750091995188891700517413732485928196630736278904127833759572566035550203442593945852146734731423648229644025423532719842801826638316804465192898591954145737199116811684195312461451861159633645409455847121111435657307774629933643152645218576366853299693365547807528296222059407914153874189270102173060181957850011062614866364398270558235174295730866075606200919968873894586641326541392745601094876264813362688188391705175673677062052125789915373897250683447590374755824616463332895215676974909682418241867463690395037114088432305451607977886706940983629516543236426273106316789792001232358840643824814154274548549529266838752120989269610800719649968539604719253601594367706448003930126179587126938990224807437325356568602258133046167419526199962068137613412499484938969771249867423187843270335089500835383221603303509288929873972699401717486219678467105474514882349652716638177383115694520409439508278593033709760084869047896022386313477198389384353224149106093561666751538033587062365246612128559875983873851505288785975691890123112635847456677763995866157135247754621344344242509613853418867656534396385367202856575308578226414189558349873580453018508935807121632489565425005624791442937314009362463754616695671410937228273747141258591758971686851847478381884445371259847467754678656823811294804455137180529203518717854730997531040575779764065824281666270217443711928175293317251979266936641996409476524657361727350596357602382769621479569781462438283731896568763140727425264921256053027402106409546744841657065945235238160554404225013044346295280427154363234843582092634307864547013299940366595601871926329159805029302376847437981482800983110147953653087379319509166314530065787126713206946270051389801078893433422096118140453727267254047269243029861529774454226544394799184111631350746982875202089094035175492632573005469553173709097389054686284078330905714924953990710492311857821779010127989965135936918441234171694182536039262218463753361304600282255325258825240968129384575661101257822569461910738212636518670192643223979116433287165747197374765438851600448941496127067163688461484122650010913543498734814419953006113616049937459923497332394527567190772375186106891707844551657241014615466751556279698079162509105698574245345334338046807356260179713834600823147081357398085039610788113942887805547722691563669086483565213917987556430021332375751485284234212922472313617763501167921713874939048826036323299136516907363213351717305779841006920508051489392849230217040445296091338521524145961718487378959479157946424285523782012192800160392900004310227217356646067592228897058872637345985965263002142966890162342008974329215952172602507952183530740758341384854236914514673144018648230421606754374608411094653185569845764210170111449892478263224658833896277414029104355311439459814320174227449693664185749725867142961317788703963811276512042233806076304526897117714113498444248195224610477723428777132977083878188143614452013164723144985783012514000563048108887770469459672738222552676297575705572278740719417212124355098301838545577663450048735857789374294414593737402516698489092221218096254455824840604144099741510159914038547291129102355510773522206600219620934340368199774512591415747103837861785183518801253860272397950226336017788671990987497114991817702212509151631647378745037608429941955694357784018913729659661312507652200213809310012187896328564464123025950883101474108733599116727661226918930837576583914024807256306526819936865965448131088939861913166505962134360889067124563350880893419744481681270653612632949699152039355077209447475323241449852733038592287964048571064742333759830434085566558838449516526501048251537111618310895078661840250768373843301821487026311787598924763496159782717017316718616895579888126373660951477376100883970398101393555504327462459244152940377504728485290953125177127311080183509468313720851112653829815938624466866186126020342284812106324066611827626165754830738515751096540713036349171203624737931824722653668518722027773017209792629833610286972334023039323254574354971324248909070603753381723877351286408628239344953037997415371151176558716838089259591879711166081812595427081346502652199276642996636584478075205562305969125513379683291875489656609396262665044511185679022710526736603006859319686191142299338478303693922002567001144569314298998719404610089332987743411530597733896562359547181022069586015739869063842079985979700028361666917192449711620580417678418299900495467479062688616673161117714740647670439240982010074605844181130061364814267329502236748078886435052105716198464632201434306081234381444712691237031690619994084474610623674481035958326335265819634891528763540428743096039422742795389355636254527165664916135539347328681471695157798650364480667209332938361885576480195686339115479047573438683532553481086184090461266002702692212610007568017046054592607077989184218080639411547566729766068636896706763771455655960861983789187282935246030057634643969403566017170305230435717675496990564927772433919059528476629827723506955710324924633651305854487793947187562407333706140151687468553400779915949083999589464722459692958298983934006499119188084679339077322403727632949029264247972833888940988189146550576488664828779866026316087750556772941255076623457750535458581482583382935032582201714521202476586916292029042461072827494584417430850550188907108889069819178206737238928815940773637717457234894108064794255612119727174292851821187117006041841789447406116841198256296308989493984026769147809525201665901050559298241381621357064112648514406484066282988038456064316302928287918457312795147781036209140945726729588631876465508353835555528907782870559086825312002633909907347378456994016934475256645092114888421987334067776643140267912376138115040811006083024841191836380087165623388704418147714398616743853408503191468903496474141567404841348316683273485491159147357703814529452404825376003977289090235175100820006698420936117692869089899459805404716342246099315489401201620249724319892465336560238562945793335527676722119527968547411284293821872592952259746598864659418679969959161673670654184894180522317498403654623858417084676655274861744237781174526789300680904297278970461312979638711085803598353066738787050189650828274679268472340054666947926431042034570233397266135597189375716750881506380896934405837624848145314960634794086930084743675185509721058855716650314808725503616026406001686920580032911498908342531559860939577697720645337198263476207323931402915133490749605170021072816035418323337390298961781079905847135749931112458150042859009881110381842559120878045866114766209227639266957329616692548078355155523186384279728751004240237782041730170640463731787055519725771856865609742481985498919189659980246424304604503700482118533907884800784929873569328318248639381867934783346455067600777175057073995652596092910028247599628492797989133490230034246717946916543116704871425931572267700510509296098121952040458192264253860240254092705809245760852867856425926042517839545328512923001993175807805859285813422328701277581875270467216963586973567757876799600876437346669513017510093595425787959136137285079768396001126680212550988181097597142107074669412403378278299983383132757496662523880702323745246499623218955780005715448386750800180685546326151805045831680538398122740114712730855086144292829732019082205884570023839848151095347460368479528687552198185153685277438347013074508599065134700907247133660604038353069562884474005472229549628144577567838297919491030652213812029658164028476887121131132250545329205999309766452638921218898569514247660102803773286838724271488528161043596003596137869677894430888473681093526383574865150037048411094685024851225745041315582292174041738529227286918805602351368392757085023748806065008304222282042620766528455222719142918365181206229095651258193470282390769985984398721296135339654043883356743164725034937441792960712114153422924074545697047793016847741913657880949815870645326789216237192574023088712259361659282862143653157766195171722273996029629608353564715870530567233111244409744017238853614112741169351787778540260914419278797684440993837892492642529057628946768592110225016919335148425126069652219246143003660975711387755716980045827737036977786784370986473317625430078909812136658362010321707461156461808583170123450159341717866555873845101496806856420576339899899887774185482966796914238219173270464982332464206101047031581275938100719937064390637722739107123802540434848485908993039012373329152967338615518661979402327735059064789990737444975936327907249965829977191642597433793096674294926229062066890935120900043649872030459316051367002254914740210783615586229172877536786524345607953112132514402535226047099668535212479911085162104164376981306527493514666932794095876651262192057807135934157404059727596468510635707956871203577192806037299672381565278846775658731182689849230170983083482224065449080224488337172242869547692850514752750266952684089181003729329525111627280169240576112568340154517657963972634104859197127093848188463369286538300197901346632268622827557182499140171854029803663999215766147946743428355321443149702196351159677929824907325317265660208351856286078707310397662279054532354769767203800100147419724889851939131957818163184246862579905934220696326008699725054235768634569157498745106280304152859986035817869404485713736751644301035389878604551490773538234389885576048562178554250017854998799074383404840475402840654461288053675885809026900109388695335716159459676832092193817939564611381708445676428869607861623135903081450415405966055477203625496753156320107896600351205223541655560545280885924376199836591174845428725223133467420717234538266833890824760705311993612054929046445367830802131697463763559784822253923969148691236780767914053460786605922470546984188870190099568073152781142204869740823362181321354023595796803646738381267492184761808975791739980663013058346204106251346369900846180091531858509671150373171393329223648570607896769491528407102644361474636859197621318182086320432758038567909470085766179176154984846153464730768341458363532432819275293551529920153903831326609582241247882521099719275644196339662981488086303586648555053230991056136658945895514741983478805020073926056388879504105218425689105761228401431935107018888595908242845865449448328385217387186516109535226471018167623440796385218083252816566781183462483426617115513492072261395889115776950585386871320305871590160085764489222765204372700000605845241855019696761671620799342861566510692563436167452830116297415977939454266720298347625750375788366184429837840693623228558125822733724268944420558401398066079036213558969273241332957658286778083814155573465003289625117373920085643453256138713524245300572608369166766879480107873993914053697275287230324091949408501659558746837063831010297758882557419792221239979131645985788668886357903486872662260160632595605440736272680677402535842119742254301365358462312332454459087744727251156347035895204250780160137323556475973571963724867327924887444825167208086565698748472052589623886357653933518137993496566908901725773837995171928040737416930999677205629607910957917663493533302886307898775335451369122846773805880549616567094155926275114400942477489732852078791011527927248568881223998665768722670459651282002073635568392048643419486620266717292135711084874907835596695389833148891730679855725431796001611004903085785858608151911053252839906756487214743326859724844324835736834431252006924946071066642557496205185160631838711540018838653947976601600253809182592132628625950427883733367602478122515625213288605206979858217828048551635701504411042686274341841544939008203013121167375264152829856887591483103250886882889723688942951847826821745549634185236654527959424997358771526337533002436986960672097875764306798488443325322598626287248446290564726831944264412735905481942839975075435286770892461886947677525376676536372980683701815291798852427514297990625654122706226287359722592587234262763625505708434873352193292465699585655703791776873272573673820976734854047883386635349300175889035050889664731017897193019118366512189589979274489986941129110305782438546590235637893598079952044754923367820579042592822378658965925416164315909470599957650716336893666801206975355443080905990358254428435219310570613416520307719703561484826650855434368478400757291193356005351702196378110235096948044179472277426467410537478952679946005843378373979979087370393993944998527106215945999196736683501403069981171630162459190757986974538610988057274121224762863297282853481019768259910425277810421801972137022970330611327068732812758234976356212859655319682310011609302182827434950576739991178833466860719767161922679830112800598237039745635959599324866044880210103082678139496886565978705132082055949701772934115648764218132405244923081498541474061890075158974972178294363955067413832072094194661778282585832591887750989968285017549169995319923864786539792030205849729419239196237047636367520518820371462699817922244315040304392069769365882279750713266940606552845441856873192239887542739410363358416299247669736595953738374904020035280608021777039306966249199747011480425037293548155978726424477158878790728004995190033472935259194483705826289881019886750724893333782846359835827251297594563040423606501394448530285824421442408057694206593486017852649087188218660159041647188915978578024352975785670728849376351426991365685717648132147298491622169025840213450671288395616266130135618331844423217583731535539656038145183673548888796917920873969760340106754737381261082580222117057291474062116554863883868302585748564026143384210829156223478569347539659407772080803229812056058845296845590726243515347145225835316358885519098337091896546349559897549570807015782534455139898353919686399525082019893041502065675232732331034218812313064415947186637679912026189992743072057091425460783503474796858265862859818980487825367792192589173605304305097063596285241092586946149217097395504726172539678184200389162913438013126447083973842446557380200586162062182603638102284060257742491823381205764774146670059571158705973285587578016419640692260037075997290815572479188900290738863146444963102083579316833851351204014186040632604931701917500838171434494297835283687069553977933051420960483648154504207296746290219053274921134408769474531843601628164724080592489410993723538529628561025633425286248940326753357881204958060795907063280556397833990303558669922695789405663224963494395013577535712201990642673699134107710973833089237030483609318522822483385267155702443526454327391955276290662726432512704584597779555759200298711300490420566121323687993134896205600518626491287132529016916203247191360351158136193566068856669309827704578965269450023279004051604189797719300885189171890431074269051447934886918423437906635434191686001957526629578553441294781269810593681978740872845091902162260885837522392230229745765312695074349677747025076335694898112321320965292262635223147555781453673261091466647315644161559128181485116716492679642227566103238567285079542835854464118256298221387289953270704424411775473494088373176373694483620938775907324286796318597105187958695128461332735791289757236420729791410471724278813942371952750893803269103049052186903898544045440777757340815610710507986801249676239286573564466184499345759081784038586462496989673180149721936302996507616497889688044559566133156926419302647986876531351790212585410532840531409485028194948855014658780940453314065001998211429880853373986189738398380440253797129284653411846086666128438331273922203775102537644140249410872896207374691508713529930540810465097192299968661388735322543045100267875492899217932234851691268445288407640130279661005954585624625542296631539425680905543487576382003115126789123834628404678171254499104294535959426074790816239644407646166101292993655964178801761154366990498222471691753490056255521006367370892585069589653791420517056214105130636278456528300427206234842037700131252319001578720761283018475451085548223547611109667423027102107040885245690532599732958467535607492180475207565697384136808454843579082315543897313996811797152091435772994692563520012574803745746918347384365403205925339242929299897774933869371528530321863745308737885694122276300898987963637376065799082854864036870921380241330417553424391291539731665594527991331466299196056132740606331478057548970208104206194359342873823262422751488404603137992856823059647147461897896603864011873346526061449504880554909185181836067423608876804481106651232985787384941852958915941745472566909595131901368819847416268395117029026951135444016426974132332212323800010342526876879613371446652585677687263064117320661645896643040405666342190958906574856385142083867517978529899353952392971234913961776797543181574797526540138503167172049056595376960009111429093422303269774388268109665684010949050851994208797012151947681206751250908727142444948944939317010332282263498979020969708556659060895398170638767146405259243667280040749370657561656509458355430467808398527411466605705442442943086989050871531876534291303553763416181225539015410573081688384052576317702652466594520487719711648896984746367347041990283851595161623949459300969254190739821833215819899362849129761577650764961386865202039687701142610766066931332335125778811703044749528302211080755616644275072475886352813258683951701354460200322687609600485299926347300538353380226385878639438385782678114928191214956493426147369941881397062422499214403683979773452603593511156169679895068930744344426667905156969730729902434716135060801648479092841689927879262748505640634442406499928531633040181793118798896885811853821779944868472289384229010562341384183115620809056988056729831942641974654366608005720175179511186738256182877360015147976473117478444910639309737768770859944464558993828302892422635036792337077263035480987300774353391030270605829376523932086441488558134757317528821594561767401139487841731145348984017552683215187670075194965635748446932635458067039492593387687617752853230875224832960624282070357855511767468672870346850728248641198530784081460291696169889869012622995648374707305251242993066389274292562866580011278226244725843988395739332177391942604008120688658435781462246878649584785963526397661423823266496585877333595201267818357040215368936407427453593273232912517914851184572813061106422681047961955792494771425939525862850668969708414153109554428652316016313699373747933355060612684573159718065283948251626404437515236211175870674539119655065566526447809819754822187080168758359435107530971681124070641111412258165863195517410818456707661465545276668193985508665701824110412118110221099913914580886098193989125057474607292515115225262276996317082953686725010030652487708186062452483654145199737702810100519268321473499776047413557073359238462391614683053465484765597568994868731218745238137005976652776456221220327021723250812625408686849846215972226277126368426070467379976409824510775682163856591057217673475722342239313079263318173967388193017401135163565054909256309546273179089717286016990960917870681754216259710181430528130169251325081300621746212421145154567171839983512845088179388309516888754848601346406898999286354166682869071463582671704479694497681545619025224686288073646496666811895989742000615729309888954671657064673221136409328118985840236211116078526003539406724890749746792368022568359482043106190063111985766035949755920499862711560192754088582601575937593017458360368462377709381030150425251011044916149705451462131331075152663417545020798840492103101671638087338118258120725749297784091111638093411608963207220562122941029802809281588348758376652631111550151858069596664191629163815043601714066093211399128084555030514797156754672929177575871974550692436372953218340065444235376395987313980654401749130067138050518061826874516075557694973249191467296412797212848009269442200901313241290846299107666470166913675464510631386156021252655275493509337022633892420190662483474920322628160795469309064854824556656391783856320662357275619330786310547656723348996449804008048574964284172086690906104201744330802193868406120009354238243290421049049599688129862175257043734804242184693377820142805704413578919757837598760487034043324418647620610412099683557323140820660005305985101791277659414481716430961837617914511719687746823100686006314422060062115182936303768153441136202188953576231124745791850237437188762471549412047517754516388794499121657091165834167091776448564461882056849813094094373262563478767258803801124032242287696931100093509771724997325325838699694879405220012257766342427188137935649097293342478856818238953540338151664359611416454577306680139587252129942389544780830784825272960507519113825569568407554432145845616435985525498265497204540567842356721069740376912992321646036788994787154541816257968865091114777036766516060358247005277366753679186874057657956103379998548302598918778993452689490904361317517297875139525692551084816473606826647369369078309097338857249398575280453980200033445767455091922645014518968319737831436645673654453074052555274735036342728465038096901978479896540557433712805907648295019896072366984977549687712265777290245958781851187492794784396067462525828675275528868112816275414894846633107720572223801084942289724566948174842713277637165195308597167765927613804571484740163220046449688318421315231958771523748130641289234716146838669794187480581466654359345346397111164144797119257527793038904952207132833220998784925382798278029500556509461811495360106870420752325289506447611780165054833505695059907365919679333663280873931129601673838714187466108981683142122250478471325938045447750683925225775077722708544385695131656522010402795793717776605215840675243267589890984936145889747143879975395054536742823228103513952371060215065716850960050977641771381195029701846279859407226305443809422929840606591095516719962215996802580713304737649026179926710769293027798932558982814112888486099778286596666391411782129000318357144478415755405365197863668033254830796033345770764143870097120771444262476919308538844795731918636038140629081551755349003391320048313547053316870857058962071486685222113789574020731250951387614998650224709746504590590104157085991295799829029794748433163689952208849028848132102453858312077712374277365133663608630074854294508095942409138307498337821216009584628610419840060442014812463970773504688696082710728607249593913207108912862672821150515339144131885449017220422933259239916388777254276782195021736723265877437957705692105370245666773210245886646596084690201594764823840096825828941961105033237052139275268533569585389505075024141589434014989828786514564616115711089804018256004128212713529920796922409986880223908904270262051478853003348281387628233561620246383902884342776984427006324118390237545605536938131220763677869462034750873768327787977292231537278265645533799037328925413448558610762658309468791468699160121553847132210300768912856839505643194204199658156035458967957660427950009096697367747674027740061742331017471993608960475748266959039647753610576201782766009396760139905272517146432633017566271431519086477222394765225374011099057600166192813991716233655584096286082920120492135465507057166896714984605687890886036576335422323120304612062907591798500334388872826911872874936209567656804045223950746759876952293458686691295165713449215247688766221505144712894055813094847810924290562950215496004021363666778337751351052273090346625057942480010620537618577187134839775232914616682218224061368320719900895527380736350001220017555324340131085125638944124306651213826456523606400516121608893622993891815715018693885154001453155112502864037295626884403659121412419963172473344209420147632666790098984112635681816938194059480354673236676359416179494201038402760612882079716396307380402337547758414179643043325735590925128672926482097645736976699184425099784429021990642499011929110596156382611406231705993807700047793995743648480788712320986304967288314137699024223936869346996388489351574701008274315903905033577766460776131317670599552067905602743225187872836685880630611260143832775860543495107879854752675684859537243347697378467014478910253458799060161094200102322981153474948742282705989002493969771267102951658631612411363995159883957739505507889530830500546680899743730387084783157077031081013008426151205230413426506632718414395322548850899443409108040131865442640525934796137317042315788384228676686832859141645893776078272677956566637340062262932768026656508906092518689580136524313938068976982681784530852906185969131318075910608726051889046944357188550820462290580089489351668319902578146568803755051389399570908704104988641708101572659358656816087016719068739722818135109092200782441988994370736865084627505921166768716934315310583343867115035385083517778165422762130641860373709489097508476872495928890621002970486447058360166985027714271997534913801714861687413021579771687706462286160994404285735417509810811875572494328206311510541990756412718924458889247685750326874590483232278020095075972231263842781495147141591580375450678157027823496328262147464668796769006231387609125705752035567371618003319833581702518845220736599660610289813523187176414049252478237977142572514700997342961520053088988295556580160030107917360017188446726832342234598669735271057107286884938783057291385209694772346829688264034180621426457000337303650313191619279163087876042001574878414207611161117006747393747680325870705754993990573122249921751615375130816360035640004481687051907575791642879242294395680681181507512664682046364215013225618656032880735333095942675970054653134926133623479821508013603455201516576716297801787500291586887362765609391952511096802104357981426743059478591247917904368407183971252139599345335740016936064404024353235124337594074618632336182698467302611717098466009316259069802439709949204134729968993369157033399220614743760799804300623257794916334285514822921863240845155410795178113757662732944936733391007307529025077710894282275515922479867779190945926465896028971903751303088991344907912711785751768678828840887147137234660958203744770217100433228681887403436712879196864843188384409051995307387455830970457962852463945843328349012989615821020562824840810098518713714893132267691027161863814974813390904828190014586933547904312999013525965114184818129418655838263805612284592967217529802893400984744280102495563483344022288948885972184854533281517756017855392893175232551042622423773245719693780745098470928573570882975494061523914190691793706591140007330099103813723908066281712410165360956753057720768019326987473774455613691432216294498194818880084694036367477183333266496577638989692901991070846218017780061955315298039446089125441942179675436625765542629113560786211336748550385353373013919435996813285921838019886279863664433902218020907900122692558738872845721398806654908537568923629880813570686062552377984823705000982351441464214408561115910937168014867124391083002328951388265832443541854520805844946470737987848438008458907543249738936317348560841646689956234863822535439248107561461621951434852605068886146223352940229696157670689811183584340111096363531862209876243594378646771833225846520465382455132198410958959096347123839329719778691483095574125463988803381803708038892501486967382215710545652647023291070246147319387032451526023735660072832768210732276972257152580381476181069242642839402951337358392761768711053953989931850206006459673159345607913171571288719461773425486944926013825466900122687786826750673856494382306763102744359439408430090601743901129326132887296041621985628158872959896422826709143165540341440313128769405853741641444943463739186731987066368114753540629724309017663691027293521469700890522073928244616793580663461162172824562601707017152725838826985488554316491815088896314523509507764607672809319062463871718422822632276316293054913932624383072269542598044625864682754520681390075004455831391512589967328117577299066728171470614453524622856675807122367428564303952124348120237849298363608727042684142730015241319229474082597187983810883931942673057479353155881096450187080902969576977292630393571228902307945978717071211671011573795442979345738594337131756255363837277945892609201890341902658165091259975878893540935097747149095305216370614353171702675567114381323242175345167252658758961336660980906550778964243870446004451289743552277970776376287096828273532449809044733115466886721538461777709174432344080536483364879427207976472229320589875995630986020507877882435292870718661927678183486257406786548353726911763103918501263357508043211554030316164353600944161398556646128193604144186894337663352417795324389332574611261615693517075603928145067358274478701734162892176075523517980254882534445161149197229396140902773213321276197198583032728568114741442295806670974288615860503598697269505295071657396716238045010692535927488456836845915506726672541240549199137784348807247818005106323120223373745450530982254497187673238790059661162781532476013326261501391219059814705319012524467159140200097973964985980935120337586144828855240899327465902626050928152637956678201525101776262631316868496861258001352808423558639730767119160520416190057082844001560559036553416415749680412244695617453574893190052560748947244448462114958276474327821401536713397076411794216950548067906725377987875186659509185683277244253156739259906547237404510044921699684615703424019448141560245683585106021467063403982994644692620157864324179775493821924068297919971254326781956988467922688942642154851268445738483873488437057965498647070833686942570395360949330339244834842640640015908412266912281402675606337275631192254946229449140745686030778769767490027575175314699592491464445822685722526944384331104495177906117399806365551261109139241075628057267295328505252525734695458756393880024867910834458492637811186631307417049581734998329022193780492503203490713098797087159175571475343956063121695119461166477740277902310552186294696095341622646913582606888196318132756032109394017390855006930258163409112920145158408028789329939220536733740774324775442965359839111336257622605487909524855033954925648097887750163095416306934166755441150940222120860788931319913728689383226501633006645913539006608350544829832826873619200954675929898952150207432765794939721474670741925666927732132694413373951732941751700382188258222478847858173419360526233608305085954128975548095831411643535278837362878573668733482566955859435968951390683398873066005025340873824000311550035910253462849578722197561116353663335826655460097877756336821680565431235057678819162295271542950083005762030301079971668764357814324387042404157557313012390290055140802490969342759436757560712969756886593105966273830702003272159151052750080960939780958630593518428053951791181507296636979544763819127926360329941840896631982080451914768744301233669453257781405124110251081584294618643017844705717865630872936457474757820339747047962723479965097660178124509843747536350190321841754049986683469050773110742348964376014906045375436820645428664881678759669498276678602030885903531040507136292048072900579677820938175509048364542179065705999356022701282186675198018499075051793613823692791345857635073001274176127085875007373712344837417595218361421622884466324380958975896965765511838345591968027353683635810307915676001157361221283679064986309011573744066719038512422997898403781899983026648454761162982199228778955775923109684414625044402035366011850372508763387353153438093809710594162783496429551496375924014045402009691342898218845825135689689261332298588888513649122915484879136135458156152500423388028023571531331793534948454841730155804732433600136153049570230911404452380692759048825714754044583673954826674769730741990907293585575454407342969184163925937013371499515039233027221744029027068188316806260769008055956476775485001194629988107482373318279790947571942028984472182993416277857135095027057950376285621013060201208491556964953972838482115628568860706734748818542021908940044191284324117011381199999876280915453184713470624323404827268452039242321185491750114881820567017614383582474634685514903359458844853476394317688535029629583336063811910069231095116863365361954517562514812184186840628493889278638632548396435783986705648594440650625741612737346286665589676199992750447185020384785782706568150041500363167416935045855268891742536624932743548306854757475835705378605977723925442619005751500483867778351708460348614601774022370358249571415047179672282561055884312633784242189129216801476677690348932461529609189795839369416393781843352487621653578672036617803263884694399393024974827750621439359252201887493208716904127921356641636156946022691694833752039143233580807366047886051627209463226622590273175287712119528636576923032275128796303018160298420988323260387493567965743943876767921335221834583423883970762100278968111162843910614170170104461034598614423471546841893230629265025409631221344200180568087844276432300721647905990349310449758610868707267730386915574513664276588486578178617898081095691058233878661772651614378440010884969247032046659668398406694988963246722649062293741391101354681280748362144964273820308924399063889387833277331659457950438308152864957516673371108320594742665574937381755620871464484829185523345426905814807472800962424082100216385435424159720656846499923162919039265633820889815613837744254762247590694023008793972716279968916700455607080175054607673024063152766836519370086962146921972456548784103181868737729895510131746929671517923939134325982760473225441973844827868865110371978045087970977002335284888060250493319643478513349315849762915404159785934967080508168047462441862924816571927432941142360362731843298483305810196674995321407178547711097661015410573043014316381026281625917123817271781308434669247193967039349310119561365853028523930587829757411232039704450398061553864685847830338654657226338527171736569988397628556840697166350514727017640516766757785513738213670854399197589403587344966605114278184913042112362576684801415395609654125060390258851073258714345239724825128404712359386066409021210867293510068407601472070288697809959010376242013603951820207271187493223439192833189877718389213746403937440324636823350154658497313781961766552794556547280584234652735419491011567270613926434695894213863992041000767120734012177730082153305570765622538349846929790771068094656225864261534396872047180007638428014522773050361132378418282352230219959807601770378543685156929555030233143726350819796387773581534645253840809213583235355520349945687748163481238163992219563121592257398719958196529323815628304879185964837443586425596591336729626169626113198211759449213174075083880851758354230440840684930751772747472611797597902940361777261016007147724674696005936182941450576362009661197019860198163905001644303193012066590456277532670385922599576453168478141978953737658561149200173278524739411146164988537113351150198358919784644284961244440106363052138760060618902846243208248606698989955560202387377477376497142517245170486011947642181374864452497229709001086457072639567748150974508160236060516400488353964368850789775934848214175501430389652402967031407539807833576013297245729085642776366257566941863213728970869136058897277650706018265452276508308882858832827258180412618132349129768643462275706101972022243247506876420907988946280797613830819862928267295601433453819324110439250210024289619581597924821930103883139553664046258504034619180476224977682374708415889366656772587030175389705303492505414019006854925167854018283383855021685954379202909798294755168787636956785874769718844252728265771219752775686348318216532362349555746802584194922074179068341343166099065531755594565000262524775846806726085555835578779584161152208186817427454913705262477405660656126582969684292080882194540852695961531199286427896828414062712839057580491314010809340580976249876032291129771927892444121715239545479980071454526464141102841041171951050582634915210833005562748276313208020135530802657141763301332521132250713196820630880014429169790884876742412684476809191163977986915370611222357697932278296311779777307198722233250941552774394490610381056948270996021485355190930305096461364527133834756721587861319986802205465398276642166008423427580823327032701688624673507518509715191497229433694516521285111745116012201934457314094581764384622648836421114861729456045926753076272130903022263036823484679269678304310583078155754585088253873536630172840971548596932356271904243573257016878917952256548636371620259474542783837059689093407892602808962346212423181390635016502729698715660321423102118566253971092622090110599121438994802270297444831877428831022090915885190164475100240284129788114748505174389021278811714009626015963229957853409567647294934991584477371528765469872930349919646978122044288046836409051754010667152362762670650171406180262232580019791450057564788537875392113909373076563306712400939937670053184492586877144411584078398684464458113488631713690226863705626956466673368393305641099729283200737331903363839001992688364681800620226688306163841982293808687381922037056422012245986816257249329706384250391201219115723767145026673490675986798477093372962677171259871445583138681132735388969536739708916591122246237853936499648136734536261982400290825512866738610901228571294776988595766463897491849789323478612018104424973699656777852343487619106316781407374257108998001064817635204326677583050895469625329045776493419305981668195785057097476556146742488751116630394163578308854016914159283447955168106360151185862812730617041022546783068993477284734876309304625159948074407821216094664698118155953388739941041510030104841136089302678161810240238363540479112419857491669961514408058768909391708127969341613027178822539928680090172209657939803007112360732796298115925253006375161494698882583171127323033633241883955025557980588329103698354856754875722556931222838269133964801868229437462535570965658547156717924579715961252638780329468938667777981538300599067506684423595959830516589744462259034459377906870211669330094667788212605121090410952375177636499390902374659317768573493556844029643571242022498590666972195810548128887570888018957392527986424595490192945880821749781721052209627363858209346135769888951747992436134274479681980536725458854549657703205823723089590113368834929603365944320114942470006814082841232504321612284001163397043258475213436189735266941000154896932270711620893777373481622403440935343585135513087839803273718331398283080358998237256161613378531410394723640213452845418042496754665564114675658536793619960780335508934973580183683714405218366189156843398966913708708593162071077509600120049610238395387008302195920895892925406316455021537290518864455239697930802614107934376551558470205754688128337823253370937337814182437434941254356288543707943537068892718283303201645680883102206083188071343435591908866589278540818264252677177918740110105892735159478507408378639137432835438827602303477644039099518012795464429470038586623423933719807131949849241811342607459275118183806440319473571947191321646432176084079869967574224679259003323110342012566896504133870572898722834200542012649237327506904088033202718841730011250281028706291658662080925160369013499193252204448216300172990408856618717820687870661266270336046166851135973913066984374889631399863321077050249512098754542851487012814863993104146114607491650664667051427662018657458298029060799209320642738710008465304000344598462326856334755772388568834647599518532618495218975273938092691712058967660788521706978076366545777989968334288367856513679015449004551414677181126792342216219092138811311351576746131357085028181896586328240729660285288890271963739026168683395194523059417820411672758658113919185474056438917159274729537250667465429543661760349654638920617038675039531632236633170997904845569096911164060285848199753672644999968447662409572628382699477365326661876490335521811175275324113180001887176703562434939700860434584107138316367554594052255045041013642986148159980990155379618492233283339995637833804387323609730856182860591269674367091652199523683516662548323878102959648236582390255169706359413773974089961691491990586635180590034571422668887695682194171658978337911999296692822506699247282053818963305442384030921470025407242564410083253587755926664335384466905554557036588356131041890006181140995749998873848821926950209089727160221045092480524506509885943341206001117219766026185702388973630585080049796145661187349632244190984935555114054698369773512931473920715227391142153634626128250159845961247080367876819321207999543504814950410946955360566735460144898493687220191058650605585894696096562514680164026611668183599498933245484254233681542603386794780784987789769365441288669348672836692911321396705480699397298318172620718431946083519095725541230909047210917501485981914217391040457140767408115417291793881534384522830713704648975299872498318694432268978675138892222708058695212503876867005531873851446155816046018339186374676859233150938168768494005264811026987478317518645160444107885605173544426872919049466467848011839943832270347973044121948479237590642554371703256159003839114940673813345468918672968000756930638918050410584896772907005500181697707241584481043514317640829290875459849584332674809502620597449584563848760589802500216111735478505353705075291147345765541508616447492200096327441786561796239752802647544195766249810394112677215248893349275927227632735771877594424670476298428582940215188395378989471995356787445179297918348146109830221554450453914464243206838948064343776565459608155048408126869305948030279083171724993169535338376358211258317727056228310856143798430493177193105459036749522688237156388605133381421725245854372415165501273642289776291906453526046744718456920368153022256011454686018811276527956287108416463065183118595478338844176432879619930137965426886649081839783308245621276262105598169743915926595590666129269472590053648104691569196273894790890053032320387735977755597476493046566674862754895333143860569283814017997871581631060957650377768761851373140605520800501904427150874422333453642812290857981379150090703754077884368757713639548224779266931937919251202488950755520984905257828150912693686651391089214156416382160573922037222521558440537753645318935978685040891537806324006397030230483380519918788139793815772987088380549561390760281711496218224504911394241437453417215092513557559530381540528178833581416039462200823585391031824605594312647057314792656303246512451123381270616591175237387467203372579406929394486117337751104313165098195766190778135517810860283633322247295787666509180307613670668994528219192298493843118119208787952510381913078019799718252960503836083483775810525675710751545445798292448803098824681038213997335078503393805592143353193025751127601958289119285199623356012390553603300392684476250730918851399768726107093920678672904889012605011797000205887163695522709671669351962521836318253023653367804676642826231279021222707611165353545518565737891000044950164870621292878904468131773801464361205161279593125423901662034843373307197775432365655923623570502601300614396453879003709228599464749749767744869698382263646823884525525655536438587560437342057752748545435742610517339926361415698038918999996367172257803859791882209546971117607347453872859142085225642671246112195796376699905972465613775875910490056893660391598196722748387153658252512764801952632538981806399575013574943470558717388449598146778164995284213463107211372135609449361985750564348749569063483824569554271301096404230328084560109557971350690536788840778115953130444738255101349237258776840845212827288710543370547978904176234206635441162247951486137247387322664604332767313074953674522281590368509380163696400474583359378003990262777166174905835340626309366660979202067674588691428436484063702043827379618012157330971130348663560073523646748697031632354902558603819913879492490200586712639088287487708704411575091109703966350727489341938373071368205857656909960349369881077461295046296343062087382112240128859095043082312701384892145086144879498025582376682881814845809937155921675195534627769798867569666770281703980915562689784665287224961716525971346396027133894691719880077103649446345850279640990618917730693524745208156353629492783721097291927740563990411463257599435250727726416840955852209777653095294122392990735232475740946463313851029965522141813468838080891511393592421657843760759668831531486992622209928757607215796557928117044892694583247490169093130740962320098013815450409913622546372410327492323463188046755565198928867944756068412433678616368858102075412911100811476117697997571632311602265051684826381893097481307428293332275066512925418856794478332318338539019883477405982755940598099779882300260471875646858330257442911616675186245283712418587914695503807804211762096499291206610898017954774457948637716464001853018846449736685840565742730372322301799912282799066890567191182765962864971488111988566691448635505897266716218320118349932521300460203016537719595246288393124399372845283771289309402861263048863912591838793051572159279562735979861085612728008398726495728895577453186729473259810542836657864856267542019711783572268613879881393497676062887167178386801719252956796854621621417409794227847322789347865274199294266760844018798267301553942229877750149809300575463960646740256008777002496131824157329050825953631382486450772928514505692475584213306892537246517245593427990626644942516988294810968246579834381858546105075236665780349346600124602313679634083350572771757246495062529052581545063956980483680530461399272072165934117969647001987861439211529798772464569415264226456831571478351044605063408636187187737813858158026285216807353204886815302651590309185725650940289566507399911671338176893272861666727219522529903991327603875266885179877441639396125296440455919890199727914158030312900016284843678999498665643722783637137715529934557009432230902536497762839580167960984335849282817210875748645881238654897060449271076520811742252347329207752193162539362181206207944802491353146646350396079338110449657434104396623200974836687132156678155194575270326676023560371944018877320887542164572325832218584525087509722218984711735308633291375076412155458799886982264968291521653470504596746302901215951963534984717268306185260444585193895716394502861046659125903403805180664784278802640682828572614859091707727392415678677320832302694724792103575812138650481398288463077204516526881509906729902510128395407514822618398631946989199152794244651133046486662915957958941394588782075518778064063353083434717789423561539952988881317774694956758134763047484727368844048906143896440226219890225828482411672934066883405195488138848256502897447958836383002363433668629810890400750495728248317100908207472266075616157760135024406552137990565105984443288859943581619581907993366628068666490431667716431582053846974080087843590293329944895860634740203891525273852591081073252528716979867576625678964566637311900868490991032855893569549387699023125000773384576698163234848529020397986628383353754884191639620990688996893867674550883860487178470094445995990749313711399815158762105717343954838038034713074747414845275384833710636649482870811195893446078578353797017455391362786836195410215564843399981471880154893133190443090368819611384876318439119261419447170220963663783477538640291392008809097259283574720389086745394906656491528755039876031146621081385469301106075758069982426896290987319202696240654451348875337195559861908590457094361737396572991643527961134010923702141338593789237447294288814517255527397933039427918538958860788696662254509953297214203544680265228575968367967193324945932288098454387457302626591906391270231897673116879302586466266013563007555996895716353109509883104424971082050663489168337127589335219266698990138804596879809817906264139957222083496369744951798436059494229482230648398779865457990213246136258611174081897451873628843145291034873362268762393212732256992546193668395487207489105259196059758684533121344546076307963082958415524698029232982428533287961161632028267568844779837032450127044561632178684652598339977037449848941643213147255071792256129008765105796782218026560016226015546242869193266765557957697323352159862992213064363984469807210936682527063916806537768069533226802544794715478969970104009055330756231654475067338445920528266869132408769631454698554903204891839108481618635082888639410205162160850112852721243394792260854561236917911395637104182728270744444395566072575369341655366336850267598233904418221859124163835998161263304963394048265184929721572927478934385414649255668486926062376131155929363687938376612378940349848352474841039521659526875038765575353419957086859461976282282190544919855722369144694145063526210649523635064528898256788405162282242335825430155360782749290209283889165337773359364474915867199055278918913721286031748624482217989058055881322172092533032854252130615206385501182963794688625806589494079007715281594011317275199231253007721975268113169003821166603526802118180796737092405708534401311978319410033522764720493809172190667655228986849342130353316357546804159889242629576358877825631498929998882584305352421562645922270192703808285740967480073685653630502519474393617788656044327219798271509310831294342219384887059087393462586383399956600120003512889456745152623881274966144141444781443061793719969403157131366109809220349072415554594079962592797082754364605612158289905937566136261989212661572563727013204742270929698097312055642769451230815837297837877337831078642154612772622013310947286722366574033608354589030555060623970397853233720515361644655167238491510369028348254909888185972157220542575537840866603031939506356792579300320343440225303293579143342662098829150530937809789692942174813864114112691118896411271916248778740590940835709293090524853918136537148010168548980332723722240576133448585339258147006826940406331968218821447486027043175691647055853058039231195211810389641725307520344129988150212218551194117303257657876090945649704325775089147108646067980759754145923345856564849792842200187563614432508034541645190447004861880341520885785875839301495537030780773941823136875689865889799493064765732533045546650111475142043394113296340266009765670577051105311726262005708137216380143528925878887991376934715095657229557866665609952711838540755694420949756392926557845349297738988782351338921568854860426511238963810130019691122846680386179878177776185676058090324247062708791783012790926874137720323258519523744743441544075261391629964796295346333388589452617063177372039304858380306388326702832495599681002540174151511929544684290545617098453621147235438186440720953492612295624780301013831634400984137431798858522349015380796524315306798627082505307421453396313638598373809010070054097880878259619246587003938882518549753965683610061816391950053213644406978600777838503089515044833735102316162770559190588133338350230259607741647830092733519127993750456488057675175774887957699570125628783473893827687432916300474372915441368757875219438217256821234722165276440900469621833869388002582405706240972243376886292209000109261317020607097223207026134936709024290540326273497025043237758054577936508338020946710425166065207061333861213727975075470078730857960081376311567531931583879192785506626854097783107880912441410527681077670689131594028883033306056163223317710311336855753522764232074602318995896166513273553083597934823019064577555967733463017765260714016784601472158649545421325290307734826793980020951067916670400527008107192756906187763332858330088397816847856516488325080653338806608219127930046266802408343013041641450032616593115193752543163610537178107183865143829256069573642099291603915206833888604606213164359119676916484414596391534995395813930938838522274049825649700589945158772803792012218853766987853123718122308260155040525832138521197658771925206185569754662100899833902181746032259337247590614065698196958208213737389924975291962372477663740866239300177557860402049419072537075139799136072572723012512660017765035070486038065238184480400453627081861144089159423616015911717977381544311678163485975723458448496339047126310065054835539667481432236313892997058007728469589159876150214912456284575718963888817906688199309304312766471762667591664637528704756752886156443697854243555104476452713645291288774325299127307880581726375716565886509552658934701759236593731577404482551014421831837253007721861635927221216780317209773045768235956855653336094958958504239492462032042232139839841104996425672688195793201149292935047839962387703393051361571360330444638275424509521818245852236423964980191835025022597692862986139105892002177725449425019562263725568574385041028280146075521016314410897568822572372614533089856870717893776438098452821527884262743713691725163867614928045238817767589558316528461629875504633941456776167322965118402326698720128190584767172807958126544151909352439210794971772741593930687899491735378612119974147710037255409408930272205651054893993496489111013816805726715620504093441037030441951980506382276283322560720991430814129500198048470705847941872840462914184538707245057305237983691928368984801221356379623362862578566424445272637232842993729269895865949066032816558277260694068104846187554131291110429807814139832122044734960449909410487574255750342729963065107171008567152080646945277470968205867334127019435951397677133797826537887116997436920449612619742221028110177121721555267833165852272888923800048628393132379072824414136212985726562296445735307418383734224812568929280050458628121164222212948097148350911177984773769494067663266819174530604715926887192701966764422607538646024619035986275962359074256382826326076800687013810273377751506041903616724477922698027576169463340021927694353918959183529897326698597477637943570223475832319137317126446760426643730735747032077798363197293134239818796694374619416923176954861129444766213628343127788048052230650713604476401044931478649978504818841110743467388634685850243196337954833711662284748739688137663676978167077927521134305710418092044916868546922712959201110435436021219369934976338456618119125896710436599820013698230669106016790421400999189335483116313692889368787483719425494814239845401996833354115807097840158502216210864547996374794796381890678567520219215890892859928816450624962763318301423805144532950098501662557582109655479701375739672964877366333404621320434014219684399450561274316188556419121633363449220261078165986271125631214838066529374406721188119780550167530680303696925777461552667502565483340549584958358847672270745142959104207281712612774977401477210488956243562539531224455932998059166005261773663621717281041562311796576805198591174523315438816076353394839903125667433748224160228065103337178650427648920490915416855315106707218316064747747267035939728624184747057493098739209866941309070698404264161497041609945919370627440078813524839157546875218001055587262666966098190820442079561956763736734324371223079391214831451430776648276548178547896131429452187782925555538765021605328574756262878081945470303420395341356901615294288897270304730701830932935166583646027725714117304402356611372633782393953339072008776685496582021387025557905084649657848976337707135799272970487682883950958274562682023367991542916674584905381156826626256343454371601676298226287661369280840123478322584552333565161327330284566680482277763115990001012643480376036436824474361268760887643202499833645211003642903431470620587556779634659906746467983440248150092656246568047978127154199639642285919293554118777955870745768339239683585769132355304112456505034957156710272982570789997657664208569130221805454440507564962355320558648638801630612981958450440466764068756540435859981234013831256662211659070852337588864763158207480402191162640494646289750437233605431164828312358609673337410639880547397078761501748159380759159948713377576514317126214275135551273362995173821415534455827307084531715033343360328487281767195518337572223518554303945809355282863735151608630741416776531707881092675693346756546194231440163252829136602260999209860097360838629679289994217557596175949050483493178509701376044647313767875286006561284647664155549559053052802536103379941277645926844826264075627714203936810733020031022182779126317451621258795676134122213197309043465943824625905336803946060703511006396405647387630612182531914234695498552486097771632243517343244147589676952525447298649050527865142160328131343839598735428057939546356709190022232373632665744819991435942427923872014243700719038542426166351764192815130780284863622690550521500511279509721452812127084652741337332709449182838024082567965655436577659584010447832798054100197692095840243138384532091729114708439939050934373466777398673363883324140972423001260355957553168511039842157859608620167969444182057375960205677589514930163772321014143688275342980127408245987635703433292230820333494477994911764482690478198499541672198383829970610964086316111751009638078595476354592109109430128031897147164301214421376349427995849994343522246796829251070509471000703069380393410215296921508426196859821974676538560027486530838182826334791812028343240456958460006210980073206672811333832842116954177839449702998745429232738280676277074592625652584159444296683502693830646910051292893947508104436211579091151565912706296000793146970741168005243665033659356893317705733313335497338512563945969803883262038608253465798694461160259810000221670910816507376233321117787114421252165250805494498168892296015865455640605731499012783382583191897715251442976785225295336854076420504114757487854355031835931073368012879549808882102548871168814686538447550873275869200704119013542220811663221681866360770376269082738868413215083868668286517090743630392359866519240748736769572256552551781369548758406116113454445275125264733039513407588565224706071253021440582084157393476519676753489543335726824931891428628913833059016880703710774987673365981516507479607297322260330422787890143670908097817239231535836249013981911371120584148036479626845490700574900572333979018976463409871720849475190468229561893542716747010076593184122313492521314595552097334285806576974889179898788995513605267165626581938805044563195191047340848489247871693026445270049059150602603776692697143989748777460980361010452886913054810706630927561209428007369490370706799797912791676708494092372093076699494179154783443354316067328524877926428665793522148430303452968987810841637716944634673416557097563093689289635535372052943783548167754914416554390743622204250187303750646813746786237490141155533862847721504155123002643335184424489821733628711172054819329318248800591328804523265839318311387268426485846707151209921572888127206953790290150411369529138646276447046483486035278324926139202010073918134855495547197631384103033686184611054161815386215256621228986312459162882134870675543745210812454038874615849094608362726470623968595870508096891751629515805421142764822348526120235794870388445654019590077885660796377925541037404498683550135442659348466933051047077166456034924677808665561186334997690305529548207081456890243061652543547378935334359613987780086601197806591181403158543135398986935917067187289210714467262062210213517028491878194905043098916820631217732439691773211997504577806090027697713945249702683554517880392244738924543480434493609741720066285477123257627366506602089415728607600124792481462697340482720421060536366409383897500076629518295321192823730677706307616452692049463776451239885859336938757275844270295886956111462963452141876703524003687521239775307165904493725165405405929919912106798751913516782791638129510261567797898974769224168678761706387611741555783636142516737243794854648553278704485897542460301571438006186376409369955423117531947860380716661512168838457514006251764972929874401553769743483272649203799272256845584795376739224045391795056301462181518359437017747026321363555699241018977675478178693995650958465526004579385457906004720313775187701978976739385783725162686001496068537922956299968306071335915869661915970250310820312512869141797051146755409333658987955474724186663892491265003696017378857719249001710273621871463315188921229775066188407691525982005967176849479310909042067631677589229283052900534666817290561424690719623057494512269101425734737044495843418635809447595852642873707197543018186298628388002947243162601634840080078550447271760609138807536631975572692682041619967445725137227246942669334291883562928586001231624122025243132356414009263504209187890006934644327432614139247876019897690323169096259381845202135106660109187919523193986303945168781582683527290268545396995751271567360016846190092160584531901175801028252393498289122884693456045248031534732850245105063526393272930860014325699003336574462894758288922128826839514031220721697022142991614010240003111029621970505675053828815456166796363470288485611220961109974769923904094492292827026933158174215948758156766007947576717409889238550577562611202396223360109955482077761185389266110876268855343453993028200509078101256644867837742766635127391804680176421862503905916598622212997476423319520388117521051746340832443011952666763400290143127699459124263984591471612056565975224806346568932083042573533914246834979694948657722160514263781913153343325558748037325897712021316825128998491652147599566725457082390470286355473173834667948296748413007981851806250774891937935939899057682361391174943978087610272963963350691309219167834503840643840992412661553977305298312141918082575288796422312603097738930817467666780634250185363751236052937403877264028442044314321008990307782041676167216014577286118214105040998685608666457105776197556584514752265363730894620642857738544076835060052368062998284547882046040521575061800428920201782551036208129314638482653533667550083471806473586175168354317489349565359676923545623203919171964904584617082433057817506453925648124897010430257852500014120028990083220155924207162813150327217118549477651592533445967971116513341024373554633648595222413856790403809476076152036559603564801216263665416263176694768054591849326849702222520603744426047007145810756100452463030133569406270284985484647671064975134565985110162655025138689951308094017463224542388831718805315507708688641556559766113144042239516405191899482767143603926168141758375962869859443162902064467062155385468979889861044147943540141766530412489738209787836249005211134368958828079819041923003113346647719830989814488702692785788707672374425436931663433475719168026877308763145723780126776795876034991686724179363039935247654082413054672448153926946877728567485169700891651600067177086732442216628753285171664660967145599213428760830401750047075634231089639870041064281069783685180503923788791722571859789004612172066747163296019989860890514274603429933521905226095823253952218224785951581100258730308456055572831645213531216135231801259603065852610784205639146346364208910885970138681448157853353511937653302622245075970147450226527249685981506487058744943639807253117541391098240523676750957952518072693348348956216301260097527491259665802480654196146166486570613435148585765950254661857666653392351270904341675196403289977521510264788503396416103359884551491638690967539260439487838332451610090956550783357752125466211644949313035989299996827780849773630088700989443512298642265908348593771406793368487045339312353744937432738343403353599249435325441936353680817575227894011102936315423761022458048592773788714637510562741541092908188184459501780538002851669101138177758846657832713480682710510322819207778295173109424923151364966354466750154525492431638614221280943532134004670566229223326513084797537181415622817626436496387024434494240697491356046761217609233660818599605600200883609469413976868377631949485040447598223030015369873239242043423807720112641689700666779979858339460108642182825515322007812984296790268546459773614399321256872283965782483062068864569602539624831293004400244056924495507534871216312510474073122904555090843703055764877567766647567713202552832822230386458099248755278222431205183667604510891107498104221812703845222318708257052085912157723817325849136844817157301475356333789242406732176554146147325493417914645527181286220079424371834109083369089062366361810258865805182985232439238416608454208256585603066547374583149433944979523704108206638699645453492137723980656737101170577345591761779863553178775173771967515772340436495307705152226507853053077942834746040122753614935085924768115950859507353782728657228414193639798605903048891732450406294473455174495906100148439950134822049169171187035039766138770564981114920854144568558147378282475549820870595132749368996256785182052540304453054855894086782210227934706740005906814517474590157633475612178350482088956373651272200609355148224775294085993263284396123505758285068722734691700471540983051461765983093516652093423693663462725747233487398316378148361673765432407229595835458668020847223977973288867516121836133633156681469669944590310229286602177814201570982939814371724162888921499294528744173788429127861876227963390197674739496985464716741985249736916268023771620554098578365288348069929803072327416401747176823829693652283930594487093706386527469169538851685614779490574273806000612609359512950310838551690069558845955595475491794089172543218685890704632255961855543221888332168205492370444509116368744492295448237024837270494389113540029496019808461825626838472486135961331992286577835272355624882013025518613455088470631425935140534500076634433394559927057719101393867836580649178427453502350602780071519998377100766332533450070367977340425132025007199896468156367310839766381077599651146100310341843864182775852472823965592973103845502650038040911317076144686331120554207749183728373634824574388669531734827329130363719082676622080713118551054255580686663303194675729440649388482657698244387982815852461849855232326350704529639917109750751218642633222344171387098850004895831898535962761597701964767795237655700661509594436015062494087741471694730322493871581985856473575719089890115275918506911646822499046115634954717672911956329995404805219654556711291614774080079525220958023817382521690048524431941316408331782161556811084349020196101820090152527181333800214381987840306251066647856802215979466031855635533659379243358342325261548023969911035287958918307505995911843939260395590011497626886773227976954568739054713720527323006616611407779785648803906753228333524611173673263173526045665720266807853256092423303534616670632340822886507998075918439325149976063581172270100810603850899166709393466106151113666696662365823946695749064852355207907445364715202610549989072360819958484553899848763231182640824451203658045161005880479067664588581235247931451290585028914777242639273641386267759774746922966994089698774749919160425365456696768679802676689555520582344838202298914153398978270452760496980482299215247759593517586313233569817853464493892728265065392311259915874522216453573145192143666213622704483337113581740113768919546278206131801382776096698396407171140734940600457990402686909544297820967079789819284118829522465224401322308991290600392379731528385329345344618688924758591624187898323723533818818662589189939525563727129431976630874518806962217946815472643733086175526035481973382369756717231762485943882077251375545176666055406274202089363113809525533967126431808907219336024948393287959559429213381690733190076958327157480690843268089833129525543258927595503985464757425418975122602128744509271008792846204507777204452026161311963570327508680044385693213154168853730159988081323673492947158439039747911903977406395621952126799863057006926208211465123230265339182271702257013106910125971756049424664831039701916186169009169378072100511339713234322819411344437400920692410175778460695565120277320017448467363791421522177383020526810865387865599861830931254199558881017861699780219133587750549876184187738032295985431576462106244992965848916407832366400956331855388382298343286398947673881793958782237564515093280576467946693528879948111507891947675822818229979277521164023935544405974201147019659686526739150153646335447395233784836404686866487793363562281559729745846132250506766453033323537391406076142348076736704214860494907633313241889058534881308607594875702422724306468812917285241388810434391367003064934203858046044539325985391019503710449478002891324271098296145167182142055967952974075526563120536323913723309954159166619542510519852969172104150516690137174918758736639126271245217432384045009152258194855316450883917320272129283779552011214894976779711329592066986231893022216357616125900317513514915300101649351491950997694859626286875395124224340022145920396385842604735877741011447284904517817874736771693379889263485116846299266273667724202945439407536946354499146857629624017676478809192572669592777234718221137726239658189543027677327260877678416590147797271906300250501105032036031166780044830728435469249766493351806192353413483664944836954107850296039805510076187953182784347765797552466350877352034390649076021817299003971737299535023215218852160200932686601946050881877060601371754223890778911040462331765099471825480434212106707719834180151865609810362036015137011529878785466417514077021637337435466241110677441741018526005111278240069732933641094573241386333126753787427420186052334684167090723434957791966587411322724440548437154698308737483899709057009762695787306163239431868835184453459974693759371413996632966243150061933281374637853799555154044989714285543517108066829170911973266728815602682380956965849633334772317168789431662881563699772601808723023217184227103934475199824974280676711763280600217121566634280885137667329269717317405014089252231655467942913294964819771173826816968842845717031301543898263852486489925406251881255619708164556669110108347711322712822578306204041676208181349854313114691502335129669346505641725849066952666524631202439804617929450440010969379100896531847813010741871865606304122649504342111448672025375320095723983650261774824016986571471797519141940823232632535610994477986255525130365865700386028956506970929581115770432702599750773077746596996065245758361740518066216550629480538279087244399239814702312663325275687004302554915691534765727633163408265955526890564800149202997937732314918278608511791556168726905686181878044796497172038549192570505489635984490964032063150934770058329755210594947456869114260738237290242729191215887633871554479178065931998091885645714560621052941496683946786200682137099141440215523394113541822720216228514204194471903705529063860673086647193100789959533717524754415454475834420116933130287695209171005654383848564303357135186803295863113442011439785634297169183483987886395648393319548918402703169162342800759613956018095622875386389959064427557867635341763342040125684198581777512203437381107074729891538801485380944586257455572892375571676746837570999057245882862066601227696773070025351225729007980634069054778711609439465447010278302714507998775435382200269192530646858253073533629201316634333957421753506632791754951408677963684684412488765204366333625331792127537378291115607756603962700567650909069707563270044729237206081233241858325119233447339847076654700289815299005779467445061310108853365196812213573108936821296838186122372520505859309610472987706811368442992774620015348642052543886328822049764220148193520742963047473379242198720173119241882652745038493623565977482573333228719726021046165370133360128976900970541352636862711830262108219204789472019310657118699464843350931458656109141516089559237004761032203380521965062853564090628752929195557608185275427043793670987693132718063795096447603458741233589360647202522308492677867075377413145365187432231586541091367005651929652030989674369757905803771626878614270053924477922047355700356976143775575869033811566189307139600115959607819409114255188447852547740293725407637577412609765934016355260980309503732568040358909580145173174248316445465057499458713186001787744354260628996866482046364865954833621280087397429285839624180437442941130123866094406037946209659210101555705539621167861400612146148438248017305526736198025775256746656443780796172079291804154450724471749324384134536116066691440197580147855497673173147104107759921930555645138857626704165170690126313643454964002230057948475203438421283481327636236165228361523385977641149965401328202882142064597318034507926206997680676963417527735977390898875453649259170456774645599384258953708459412789845658688710848166330574977726433649383395891594316789047599398107411111231476115265455198248156865615054797015474207741128695014710185693455994494543420827348085946690671937137049137624648444942521124231203315181270530872969117595415360918890367206533868313620570177031036502654018416417832617877054520163071086651821483161895541324185427158642201756447340423156995630291096773359058445541385164158119567991650010646300188763650000845993819361185660646392945779813676449761224613940972387318481166220319206577654418366954015669681978824250527648670851572599224525522816711986040187808436830242846450015128739083398301298696496814468146073520435409763090620038375130222182311217001360451758515843488168574753386127079937874824494219283330694292211614247775357246172747030969020252390240574367577664111974748443271829376976624690697725720642104617165514615863935517598806481450700511956939828336077219414140809089293803821423745239074500483851028594713247219477524031961490982983764843152638784905940256745344135791629019692485421069469529825259985416428215714820215073875100951246285401465736709667896378406145156169701585853908691372199736064539429005750664850098584088336042677506214713026942298559743432072699695827306165378383540081323474621985463153131218825069643556377572129557476879745378007440805034854271501371410279310085091758168683948406837084720874528260366645401830169024131518129183719159740610152961184750735277033791347047409046191173610298580836826121020187027250749863113259853261543433448816251905883597954752916325072647720528600894669190733184759234360321397813057010550422352128130891336581229768908682281197779046820022050974346982175980793216995519576181887420128180099146001836993180948062292374789674108795528711725827204785864312370488774664241707196016181608336757438668379556558063007149682732712408367833364117088003925412665504721572167326077938646456105541910214113078748421520385508324678084149401180728876478250703365870700504718586806576929903763288349310483655213491042124359632992505617414281443987631834721538036911166774644315998281762238510797687399490280419275260082496899109547275678107460354348923508833812120975419967950295975096543800672587600277058302764387186029313106096100347138751817906863690661605160491088974086636830138344356033016196512708810806257319679714422063252512354512556665811207624755989036287282627994325195222619137345772728149338434825716698573556358190000524444689869735629799599558716412976651322176230323667289953540360091077472808544469107850743304144487145503181714335114411287164417048502292794959876001403140782527917518750139487699887805125693103890474222589994108170371641868382241523670020764287222272461730722064555552476632805549895200472010686481604812575457844804684294150849330615323227462664990795205665611808093934775140791801960892447239761808177238163992891811366469137799070716216993853471143834466879168940751749561188256497239299349829086113344353480298957984767955983646588343245716683252230439441042804998487444030991853449364383675245530361218921670471379254195188103451184251154197378622140696248817842717893120839167495400545603352888265682169399125855971379783666239221002218456156920074251183683940219589858391981165199988782400170097687034306210375184494927116115997355480830474562194890940749367655707541339617942945225551130270112239821937857219940379965393659225249154870024452497640089301733274067177952383091070046123044330437456165121119971004353993129039506499721830815385414182610784930138938443936754867090960639458370666674673387597827259127135006018715442991636901152275088056538258684233744978239791783068741420488492901253664066597774627629561995121994708787292818531474579144960814175933269942746452736928383981896037263775189497545717143295217837149358163222648098428282185450403974297113020612843209296757580588959904597504823306034361267117158971225149130616741479356945549983266942617954493805689084402405735561027624034377530315024505618552891092059584926643715910340759024609524083664519200415263985192499516058856328897856448521399893476930651344479895922370256287434535713372485727310523989433961736229768124585022474004862387827751051596157719248152638739881889854478302228239165678242787630269819674780495390985722529569303931535932432979566084194679493010599880788508919481596665499277778436502166323382671701375432543674766728518898812042226383746581251668565103541916167288375707944878907146417318026455358687654955669940865180020827715021577512387009342652176501255831309276981817047965658682532685365673243155698090403776885441742886525181584428915030239460572947547817181817946029712928726997881882298060528978539978255765408877093813149527576698279542973618756428243547991056881717383613179360594973037672830301640471554241815168819785926206427204649507467976500255215041821210229241289918573850437342241740797550990565342526517925320364517116507576677536789791834409640510892879640848392183971409839332999303859753163527408212100181582682454263255777397307006641702210801488658248895306476607851166392610658903963637148102252515875974167861510744903761996444789100247619871300579010017834287323371117082924832373179124824845494173013985263815737609606761828347832731983999606653367540817943032589881386396116709152012517399322014452190775473733141543481488040548861270176920290354090681683425018598587233496373388334724545552887135621298614577703567732666429870729574798267512260681194950021167561674662136880151753880767491620495203115053246108249053047376767771164418178013824537073250093316922699743436907717337648949393516221727630190542866413202984654450443177783919505688988390926639835121440677761444232320723171192862154306151228823480879098946549046290442453270065374845797348924875271418767337848294870589319538768010314523838393334106688825019089308524009006933989603776265214256145122662991269596963032016472006362322154598844167093277041659542245961563186370351900619109819519600593480505632628184848209806815986791332646632996983397233698332805604553545950999844084336871585152713142152192052555018791230980366175058956141021354733279626353639616949172197716504945652029257568844512675176021514249876633192202728040622640138718526235952413988501615932615183594524121295374931674207715909710382043494045031349354259283235420296502787075359075790382696363398331551007852059362861723864997263247000403955280575211853554540363187622107202106726667493976325468658070627432393352718646923219773427721417182046188588338755007362253187932418269485699677930625206722152933541668819908216816649784509323134983529959780652905653041714123670734570303498356854830555778601932871316958125413537188378302534111743303975362939211470702890900110852283092327335214740046102341686073863728575785243712890315285115799540167024524622926875085681259194736529699027930802837756234183628252160269086703045040653858540942654112546640188164408518285284156684704154116269061836615336381514204591492710662604271684343886929280566887737997595312146608170119468188896461572215550737879870646803548816473641239282248769643210765194928489904607409053072162818717329390731631931480440735958099665671987214662633080020562075715843975779032495206468973740864462540290521237565900467569621792880204209725633075878856722782911600225619195283959016419509094790986796732047326656428814148132875730788461529592967140618665856006942454846826729627155166537705148511423416494951413681351649886468731277972461713818483762675344085552986980350697761062814727959881536812964551902540441028778702347398836441357271291721304913475154732956314720756556178359288527964875270746277320696568305488616359032711286214539602363868461412610916837502146317637753624328867263127843483565357651571501351552549859113981242302294954581209057584229873010288956896903651780359906214474338042790281468385343204537090828437899128476899643132369599428198256443464790987602079176854464169430640695969489326132788036914452443351940858606342443702227354919725773634206101104309691017579157111972583408383012557970834853252543270154034853728988169729465265430000770954445847611118203277160896752712216316338755165378544227602195040198367913646039897938332141717012169479304246802835437727821040330046505957078914475424875261759763904224964417693488231781651909919031191167347132358637532729876158800557518174395636099129289117419029640740254097064471389882363647149507503927586131284494596522717390261653397832913993092057684629554675505020572128616224746209457649926441619589892993309018202973312636888924178928638296583773759747090491857840304636042281932472256377002424615253632194734932353250847920725092634313264020464455893443794099763180521154104230867271669578813341683993889171245011427053679374110877728236545789727578776956042446586412241057327876990042302663172789332884743514019222061461225176086578060902861991450485624120281434394723249656930587703739497050662745100739874681275093356859136109235862065551807242514204659790950693423554243376517320043001251789543651894351082796417325835215553145285688690381625605243183557511102968210347545671099074793493454165540473185375143259895642681178019746329499563154998864487515514189090945063277011338972047185732918577435522900562825118190109719588578347816927287135917232806594003459213137004352952203869789986380597449316199897070192994892318030393478731812044620265362817056985552356258181683365504154025121604090923589448840268309160013078659722303061576538823041638197491803381262668454927940862857969303952628246719267437708954160605216457838762150613634467841784615804135834284914110038510464237513173944525585736353440608954365252963049379996048742310253721657292609834415357495831632575277588125416904583437815070679770933587856145995075241000331618889852095417335929541726237577817544258348078776989841143238466791991340353981079769832882182166229289839339124580342424360451165742936542606381019989842182605716643150529212629047777321698174547548126927850323712778324173675327491759427757494954938906561362301736130119066456441929807953018276720086154216916924756884088235649318559038826662569427003965903495583445508882178391971041078915030866231638309732630154415018989790605352022952943127710741415666886883547037760845097755828964767086502451918309119076831510631751186639901384158420855391222843750608556641406528945257065736286937922232585564517066861546079488197298176184345663407868516067590900891807375840736710190422418292966921293528156514700828169080060868982197899454734590253807573216804574263046340489328062665585710677979381892897275674395454163996697790050020824131760152108582022467801056157888717835188111171842252892368846298011739762272972176032601518572181453770451587760643249859697971731675767257641653330944000563588700459570648313577943368169434743912819808266331810245023979333478608044429116929106817249918908299308035064857907747143770091923038432948012751434089741909322418403135549461001440597198726576025096612597865073401565400083290589208822651161188344538134239554976683876155059100073952408288133098175370565456761306346698789389560773372722866464369974665765326710737123345496598991932171268803588724342502733626307931868434012206480332664999257494692618933268402294461545376426033281600138786988467840940340217276991439332894653662549545259315111498804217510163776558982859437098973452237112848912703209435306177179930051750844683013031253442392789407304778634813541107863599817210100984784095523361203102671705903518317353909851230308989761278932575780890323741462039491088237055342635752055263539124508942560274940996851787425054538130672298997103012397676859585390597742506258050141052281941953117208839635318750099310424954404322569564569201619834246789063389497429786918413064757836923421465294250044898243196599689265889952140594288050958735402464070624277839702076865581094299057746684416918247227592670933314096162491248472047772385502270744902234240691248165621390831520961099716567481108158941868561499581199947837197207446490387214265930781133006238490052021389352334595852516788870450160495579803156863272683478706414000573428544021294078264715934877570678158587334705986982500703819593109344733261770167923699689711745020585544739202222453107119614326445301779970473536647820507914167563379698663701225667149010500954307527307330531149265720660156338605769839978054017293363001321458977758976124407583156708536145701391836660776907250048227293410023347533605515243417635903810684712157189628456609664073270512527810223147970352357529377779280124033187151086415725807320120295891234372492865698677230273281990224546781413692705120641705209998451862257155959959132821173854004362908127604913060322170009119362203446786970218433866947444163569877953619150138841444529610845083482290394040584275457399537196239979528916816112171261118337224121758430161932818213554056273904632848823765935960303334166962569152742880439715577969587236310518803357812670199966522127728820207992715559626557920625038006463572783776466487152152395062421715172903130325794285279690392789657702251170825116772295520614847000186147732077817957032400962861005610192432822448682778749267191703284881068436990884235353125206363361869335498971695689435794869831822927143526919048168924873070314391942629372555952586173521065656612380070807641718013978143154226931803115884339314671456008509300293106827806179733018372022455370156981433632901854663560846363623855413310320053437721276041354907401554811747080627039965451145999192959255329736035039449447955789566445613572528434133744636212875366130461382415902006867695094048964116678613388642327391141778307120712254964285862118113624914391015145181604354434871703948810667941775405334711553857095263612779874020262486070468745061377561983422898598341204971643296466734064161626101457566419789622520960333329502967460683005057458208430754389152861950119179638424355068576421863625485542801548229787604666044287583990958420613985424869671950106210758502597317436870391569771681163058958000713925807459120556603617600160720976409318973685518877026312678629798041003336347313135836203953808548278706255745531288746509911136525755079236151093073979893102330220498067611290222218483458376279935753293555746558221839002518715190926553239155089003108951427347247895769097166982414848600449020263814090665389559577171058945911785858874437816972685539317246105947987642823901409875255657447940416008249754654936275605440950960544404466337225359070587954762861502258882484731021355333423731343297758738457292451334429037563008923198568921054068316990271800930287619921044840380257259173492509568468415093259318556250623648647756941364876887855739797222091992819866297179046453948200828241621756955724537688138943383325340972630761240190938749357872769982563907937162116466254693258279302437689973107767482442193622231098562788696484398337639886495450233437704853622612967604194947377529330203151062801895297371409385558964448763839247026875967452868630996348408105176730801897738957602743750957419692999115190671416889918640575778550404814251470513048764148803216934613652730518053502009608114739556760213972546703235682378597610094883229723081596821497217680273439866740590444006024207471771927427555717669019259579246703652742882639451354935857482740450307948778587384786254703524832481947453190813497048549095445038008779688864007553106359928146589515853609731207270649222873990576390176083997695771372348861912201096827804402729436286935358760033938036845181281413003984877411753516853442797107124248466935938080353645688948622038155683511383101902393053731120554578774984200357413787671499924918429498791066662145120761788912420447585528412738442521673430451197931103121508156252166897716057939602596489697763951740586959595976142053793991592011650761935339988098544770513678590622868219854490314684214951790972520133642439948119960368730596555320426363526149665734612187325874985549549410490577743936613012775224672909521158745724309668762377611685687025592974576604821055152845904313919824324980058970029090890138505839985863656178851964377816534869088744155875304347693030669015381297525612889196645744998343997893255515299841666024125694865991132899605962284541106232256340006638163548693707167619390192441536845341192496947161126393176945093257633329948701851529374708552073616363724800508362701158745693226337124427728386556858172669332569122789902960410263226636788314103929706592282062419854351675523926645500086862037239679990621096812830931604483139188684342000912486935669291099164880240955310273499513071523443205207324634545310116745190965557479856116656379928975457677488017215567650615131548539383817812406659150937970333389730280686073464738404884101375367412505236540274906663959982339482292781580070395143578820682641998333834259937538969716958966179007689545206018451302973543218163361429519573218482043165786308847989453764583539969292247718282349600890469327875435449125398115556115343355431315134183515514922167960459174401006985804046624471290759615813779981464227040182036709284064595464206965656722059356643383236582697047558149094316075991708973458552925276046731406403879303761773093949725691205292832871624027583869445171580377533478544817688788797727071413706668693306209758436092983417925163025702638236311232591862392737281620849362168947533943962196740525689895715922292228963846853651871255068981544002026150186630576511523424726495663650788290574518919075294196558783121228850821858882335578718166456566041269983799624169881149455422668560826417132963323386126984294010394702726500123163804278140109878291490925357039033212593356927970956301870959878624522661585729879968267392853229616686935530198372508633475200164158009437685667427881690764410390066492091214636046804315684775463007370492439403943401841618220464779442353021381499275160403103614070766787126367924336113414185697336526676792979705081338680002126817251370142096655705548149567910358011132603019676997634537140374238614338335131149390128142767510226624711160211453204471175722136629176658894204699381196721151365879000415824156110774384174051192483874718159339970498946886146662406351952444033314024153568356506784582165867777105680917793439956213818218624295181198464385057908699223836290644912378774434156071216968931907654512966359611776095119161807433396124973278756235872469281926976361319556452939896338866442675949308754986342146840522115894473612497202876268304538664019035804539441547997066179137496566230392623394568036501476227888590554174006187818907959748558458414317840868442309715538582293249813267898087124918681018950133028682591216377598888948829776638588048325931331774971598156379209100609475561189108076164605559911059004405833571497476712038365505741104535026217663335606533086178577331219531075469124595324309900308705624937719059609067344942151538662476254061864019653842613189530179672427624610484170557437529659729620229733150689931729112310792977361901320215010159405602849669734629363132705469160514127971749136333046141667033997015904511977424165863249650709127959325366223581297746560407922791722323458566287568156544359563226813210021496676580269205864689400985994195827939468399625618586889027963740755271918769000875032651202406410134999759768320295730279412961874285645710161600389049839969581288350328951213315470365396776006097652505074557325874055106723194469576921163027376468726434734040544742696790721069235207456142079626737183979609962848414303508736782346002353241062542301554014210867494668464044076043423907845933078587865011318945196463210786166613080638422034363434737157222730851492691529255914371390319165439136261996000128540748843665146661033547401472851615534590380990524863343973161090902999297807084087002958754656967242074053646881595833885251659938949467220137515868546314973930933091024878475135148954213867521686931199197404881136632840128467654899580276769815370796364590667699690187104607218757316961340708415414876329639103996011835769317426302419829588554656013499914016225498454829470861393070341594663579026354035277396268550485761137793409464920618904421385544550980536749283714760211411902413482894450551305149103256233092499446394381899525391776211620415127457565546329757819200288826506605130377164790610307796632213839108928339149639266493105642135635764613223059106881955511131420043905346162921863395435573105453876540349916659687652265245450380881392177353414502937552654395846560116130880395353873424279216696661031754534802010174093569134346974769522648070318887791990832024650559879513891048324860873575145283378316084300007765127446485325884360148841042691030878366026077821203369078417255586769540781085488943799896898060915390538777018297538021282879618104190089326861115162387586928199591977746794930092216793252972565092126944680058493253665253100083429736127733045663552175043322392061166864505937158479743397016784597634022122706716455905956217733280753075500731693813878244452967876576438468400556436733244478076317342159332432989524668022245820206827445853304358502863202458857066564893225681696478982401597865423755842518242789048173816557213046295211257873211743046655804960380696929410861221364209777356223061643395714017286100475679253261270241894440662539420519426668414218165844263371065916337661814116065483428056642598305497122350665932521388023303511836451903603476645667576259044211928358713942787781067895335905551448047314628880395218706829337105741008369432307540272250070384782542009253571311848255668628625463066069064845998714251436373998616134595394781806258588391672491512963118779576217792737231090913264623783838506708029930014734321808546294672594448156605421074775482916345446972610615939094859650390658403997682878036411813629836228585911724519845354567824453943638716636396633995645651355082511693036685482853550560505651963285223974080684328097825259863875777248282960215129756209923568201081393276594994673505178907885181760064173315766213044385620487569509131547300832281715708766030300116573015254949886275727738864487154383643915596736645753190797403067001176704949128885198983393581546635370259218517770348417440549818460249156797509046821074352472865663937580026082989402340279656951376266267723690086888725214072692005638244317348669273745429121240624220427733464890605384251936419227584243529963731917675437669148565163413456751738834061143227209371956029718249386276607036565432226224679274575481366856502790486821821863895025949495219946307966178357697754787082798960667158072818911343968422716573341148417298983715498393703154153216355971006881817248636180007971456043988611588906722220562159949070083349406813784479331179535924461076001706303058381560703624863057510763592640874054935326966613340688626951324619523935188489332091457065390030142425391226676372581791647917560864231259853610457747876184367930721147349070667914046158241291633533445819545621228841035765271357412822306451706717548923808154082455100565602254286724242989779992765801952887555629242067811922856830088287488329636286646130965306779647954489720047949869361173111243523234461102548749913637553479472797476232599001420653081631283613927657762743873071819341736155222418148004355398105493969124838060385477866738595059853248617932100027337590938447681738730118893092610633113239279893323217611437503173485967776451765433017135467312230117041002629571062786331035281591820727160240461608337178426198381879271193480163509942349413665763686160934392977667893491352234935637879268129658211969105301831914564478258829677629372168190018603404372144356402452995697666371085239129556116841896264996402891576712085121545083605276245019067623928462326653483260672389126816083687354529240902871553945901689594162408631314639873389955055593996493595174223046212363409230845725812146227148241741528047359508623637857888876712345308465414737207010543453059126717795519124524283539093177394924046668234093091604581836161898190108303699467961134423999670649831307375709715508229931129353396717516144065412797287517925205849015541411390237811871705908400146572350625221544766308231441314948878296840123538109675387177457784611566123347961225686944265610634935948535680079513429505220625772953893300594708208909153405398655518679447259573445580440571078766859124231475456917308498149375545374555219562062421733051228463973456093994199637239104862822677936895744192562805625252026929318826794143606205410952220220504095113663531147521932435969474788606519620899983730541347281669351139264514679937636970272792198000289750964022587510980705838753429671211067439294419922972453623141521768133076986295145600017747170509099102841294670955903947957838828722140783830330438027732478784314328408837730152423240726691852478416578008937344070313208005372248648724861071045793439731572407335665801384536967591508995401715538279467191820451154094634260036727958349585434087743022579336006653166291411798186933782548935401619387655968728306815683787126152836262585859800537932820712003090602814084078534991966883803491589962907242823803798619057727965587043099362246596814346209560342754185033159795983921585227798170851505881056284937694583831138551384344143677288747132864929113471840043748239757965462791338492834867640179581560145266966567967994369518947215902216946476636034043368565703152779822665778428922725866616782479739755499657134422752970337628773270423849740460586416097224834982329944727705302015120287350161897968705729376936224564655311132443232049894871541145771345653996709105215381145035946088909383259444158566527905879988141137392967721418457607605528175859967107339432610036435018406291658105183108938241700922715371237085381604384938223113453683731875620169499814018316505624965455344215000145769282749782402788573681012050525214489630577811960805085938814825595936114718353934568594153354831170774915304190586280852692715525853250172221102442883740086735070513119631003201694852822142113064781223565103475899668070737974755621503742984167317864922479251489558345326690521335874521842658178206605218863628204897096922614154271540653954182758061911537186281704466808128146981060567360808106840669429004872856409079797505821874762773303516148792552171349426450635853754798400246256910777205070134434070981763214721630598191367978469189415700988521322204059641912856671316829061419606285443063108418135736509014734232073606016509231334558767220604725968001643990228143171339405343032871374669624930526233087055203672691128017958695688913497328740795993515452634414722863260039936528612441968688079168669034838996324895862978256954074234251054733491997789184598756457868390752367715249706641441033214030396946125831664211280621488152503379809052692902780175105381409325526691608689282354585519100917636477920661442155338702686541389829295999970895188329672362163011316730127153366723015692244703543448333760365322797809706868623766865022454032021785101316558503607511250954628955194955102265754334867231270647590291879819304230418998392696228776806129828238320613102511647532719314852587524296612280383755604549772269453897004033733496292802959569819258066918169587787440277049552090460844228597977440621418903179381955950216646097186468956129785747456811502141671274250014230691567558135666255982220230235365347120859308683337815712390228847714635700685334800303063025962207613594029549076699076944852548494395895761261318298128307071156125040442240162104944405942957050601675300323571991438547628766037215676690422834072262368603660781064863196774150384391250348529042050382821692031149133708352881530778791311966016415759573402053086260028146809803401649436740938348650095371151218862360744112779628873671718125872319839425445624278992891058065629136478002640740272986725226199081126952571283392668377640063719488174785673958580768273944294229530363690895253320199006776617077397370381753529229172851703381500537997820610692200146298810625129119043329628635666895410335027554486592713489311568807060658240970105156473269054311607117847625419717002378777412011947870163257517148474686722430084322082180028934542188677308520208494818565614347956379043788651988156010777982313028837168304981941506598890505984959802152066664071576240297163739845138354364875596270950929048705463782926063357956166288014838510540628017151206202037219503052392735551350163274037461913424935329178035464019663105618194069690296409100966799721417787518089918510286948175746449123088229360266197387505402524160846186144962066488327040674491757667147907830409908275130594741302206442779638892155072352875641526744387663321572289075061539161324969317155856515831787183661301311902139885355276814003956681782805044156758297446708068921629255478882531296675165239233153603112027881524810313829547839523313893218758260060226497790989706062808738065751978407859063662263054401647034957140993246796488241280244767522508027563466555270581541824188624431786990238149026003720050824531497692669344580925528343440817186771247108862604381508856520305471466206727325562749220042287658158091800948239570923324763943617514941449616359596382406058890725285817897055711814539253183490357189708902220156763736938360081090846413557749798101734552939356125222526504619694604351699266395107059027451358802159287360920611186144172421419082735524937841152076908798711910305726238260586748589726381544458360906560673037957736417442723221090628384504245639921449205279661079854397573128452295100576860808334657587551115241090386575459586296703337566110008678687748435624259142821040717711762057807246337637663997234616429423811267478081597617028482422418566763250938902213992909888382889078665885131992223242997465719123621472210709836075201589643479294675629709304658292359120371707707673224983972519012229159544389466630541157810700331758001836400992559547041298336512921896630491208056739408126358317934311407214311107853772385286529155170402934338731982488948708691700267607235730410307358003627466904458945043648377576443921186135476186291878316743276364496331652755794592478981824964499707905603572962018434249497329379879282283859639335042058305438825285758984950180295194199843239700020235256702742934164848957171694303638997095038173017678859294584185370766216422173877992801986895908819116062164777302667796554116383865652867723673303592369115809409001160936671328817504237992646956590568201128571434385790941727868266743149897230574403611102437314213499008963223849198194534828409991767824330719257668551984361816852488728766909679806951604721929638834889887977669629447010164587433825019954567024943188833730916125875866146688970092852007082564698667577999631434607921434162612218593648634465756782828054899786868379515001732141182608530862278500938482011586487290483442877236574798846251781665939504536865191851399473672482381052627627331283857935142670354924091888231743279482960269263641227542222292835727611558878881258861697628133218431183751857322796163485695804062482956398182799275889688778813300758886457246718016130019274239721245582689469439737765263843021996957376791690100415998622436114761187515251582406397895604096131977523468846961906497786499982074066291686113065038172066556380842468947779509808243903269780438749203499564204588072749340822169748203615568213849982947883392949155409355038444649346569697472601374817942835563658827573288104486549792329022946866206934440205184703644993827700943700321190339465505640286917277468689018010609824344477477251778916728960112919904644440796803837138430246461413104855142068062920793495760569625742327534825280983635869357215689101610501420366846795368050312096798592787074342931139881542188741091083316019140835259851916811385165987145443100542799619100110808357525938471519959802845100855265779219114209347499834818073665084846918827082856714080173599000389689082503892410535867517008413705425881956986731327466424888026268321460105096244952939307008857236003640377251250817409092259867072135697781067484184250429051173790723851277588091794148384162650083476986137340068351450367410509685594619771244352874159387573120760030082507884082063322838055188795661810305799882991892550566565381456623663073871683676762814729303995563788898551247839571202108574622198994038179013295646176142891007152965213360781525205906843535875930005551299745288814658122082527904565032880872991495351246116758876511176143398013349389598889094210850483288242743835886497868738651184815780670072300886723664070428629779504591978999482914181750401781186601036213789559684749951984335573169128845314388154848215226328226177986673333874384271816366858019214047025346682628393998133944005919946608436882968850103785583871682866711951294927160150286850320574243926772256967834879811003099443158927401371207798638950942576592366837935682804438266583960463174414458759418010842489920230434359614797522361668454017088314696459904571721682564595309546587112836200254240283966206216662236405036593561080752513140199795157268562199870219945933930720939626891890304851235971257486985118906023654015293996055235695923036186185409246831213710021645485247207412555399675944361183444426062292940462421409816734257153765601638612756012852305278797547199528922312705470264396102213725438147694162491105282481210163880511436392866612190497370819208375839434505135022767521092090064757441486804058688512367299171102001570777008190311445544467161528790046453187759979958884043392176407744889738964383053179884839275377599401646828201739545472493664468864802991544018378448683742765032513503644148684932649832973758246035834563842183967644752273292978765590401407232567039011700930730064874565841052556232391038560829128126481641979421353589539633898603630827717222872112052649908057852510692098718403334625478676118575221021338876380247025005616424215257593717821521718869283516100177056951313597755327519346382926788568988794425338677159165831993153640502110274703178580749200469807289267804522336682957374637651245276490388679897717498406119070268042975374224328502967992670901247181664223268012950807551269204278969551808585826864247378698886821965018891155502461293581276649433568608570999187526332958083219940028478324237971265519436979480769416326172250808057667971471702698151490581403113195596482138512136818099777236946650443694479215358470608956203376812200764380433661635023341716816735570394179066722275329009038055789568071654457973514603090117170621790782732279543860587329440902894479655788435122648545735997687922632271078865955695222590575709634172321510355386982834466896226484643861019262912294512961859806376583824575563092588221470168702920770861776321005401172678955657714262084642879583875463549144842698450479678784588170395942626601864135447668872979967142007284346590465025365534818224360548626775294700929202285823939578033403950461683830294838509839323835925188464387564980747851374067154587370761770480731988174243863989335547456599767301250179156605286566210912012555487457737336299723117795672840308401102279791421136730935129551816908697561558761421342255640876140291461224448892121462766274666784219821881568114934372769548530931480598292548372660169171926505210505290560641092112372145091507329219521789741620694657133419991377292114706928766445334752294522647989107072649797667040647494856038021444378714269453704303964493313705339835062505042553512350290332815416593833354109279252735552137429749534651870293678252415970247421131644368830513755562478780889074562023620809538878763614897810980791983155698223823600845597399112656173523397719520147945307961895899210634490288823945131259824353028967518071417547534198270900944145071557723810872091536547173896539088698439002444135512015052431488730266917856052763485845351612940957516465625754520074853936490157845876802383059670156772320274243156143474299741832967146501442480220554148867631560446367995400996159961817402881114297672824205202618958964936860008550777437224342419898014048882840002640853565775343128716194346588377792096751040241244949346218638331149041410611961596124390715592249777517817969377394864157937569397771724059234556948258519089764387789456906727935546894133511508723270533164919215634533797172753122172535566291688734333997186475604044723820539284326435965921813927991808858998226514380167319646622514823355993001402990924705831111659619764733987131733677432216109506030110467107906983963545723270700293258877434274540750249649711565991818791752593827841050235322265827311926077081777901638556319153190340035212066769131764514216622384950632685481770478371142620683156197533579224621242097067833483414711745465441667999855310446381891041304880600774997791196413179750323494144727642994749901049867016489802678737201275106759480240352247001648379250307386075137643969855831534740043686587266901585731328823789474511768828222169117354233486606234555699438792725572384689183639313889687357434742278695543374512268734562621165246087022324566328905834427314486409099844781421115171522853827024934478348519104976822069499728275514861589450639290620467743561022278325129095463580058086782949795332799745567154095375195677155878971643443735343510009539030382014166041669506289671827661042934614023545560400252721345200064318396620616393497457380798188797958295174629533074579611947218374938564395872353604239565434072728877369461293883228939802534397166735627657556881789331796296316656267626783848444467955413173930524623108510848148006196624623025104341590182086396377957530298462623015884243511323385949022473477303368963410767334002556015023985118146311182261954180809525084322144414243256868938346451688167858190992169630601571052019429070071258351502032532227570886783851777463193082019306124329307353206391247163615827219514883596255574849304572815033415028478443296723885733214146717227674075883557874976443365641507031423393103592046777889458894020031527655244152332972633824339468040156648878886153316609796641584550069424533089216051015307290069247792823944793233527273854837554024984517226097703241086848518476857997425368723508154070735457416278351674606098808180846265095442393131146576641966683495685074213775717937192209061123411626713299040951006043132495184334410153737706038564725046038503234209857820905263138830587531003020884968378893440868253070944868479189245613880954261540169682443732769192696117229169449397105826749872471760752942028994202569344295153676398538630947942713717878426152512905547483610026384093821028138844819080067895100643821346153873406979360891564718666398955804970822189079163701618366218267599285211137218916742946707887842019304034024693250654383073733922463049052094363928964661547300358983466946771369261961135474611139370863423345349832886560626378632572037802785332886566999270978745190382806240750402109670547212598649713129144110861936364645040611726020391322604357146996178827806066848339728542136526116874010750963181498718642661940795960176627872638975546094898010865228110437002516376877848518738023428402182416985457048010331000580094488663173541899078882811526241979153744321312075189895364079182788280110687416071547060966782034103449436064663015448747311846183801433399205454258428955349364725895532036783573604757350846559550710864959506030178290286037715071634140344151653723214508337881234318544519177737611974983056564752397542961539432149775407051100522851552786660134103671676364875916991294991788171392896724091607364626750422500520181270781833956596632767170164567296804160325388698733224585879101257901163598020897480904491547393584585611646380152117140471102056044712754003712022551239384299334282248493757336468435087371267582397515301894748882366335270820305112844918483150754066188827610984646583582812987022798594913091963631976884238665743140246666636854539443946526586667313169161376059489065656595918931187964834474763079809340097631506037497670813231875695454297051505601386742048675996745438567003553953738775703063296353083792198900923464826766161864459198545124693700823883512278300782409965100623154528484579404899740488911857005584623444953739051167310009740154398522513117017079719930624102054746877364482947781235794727711964760288827043148455792468105077433798386111804658496525954045305551013290703854930638929207610144046554996072082802621033074022346064622974323356393960931172225963066714267662021703385727573422263795730807425676561081144222897535352974510855169426397388615981506358960196484236672795692897207722166106598433564136316836657470080544744233723219462690068946955431386132021004014411945855123723531794711812100549608348599310501167741564917033056253256367566249536808290947107538443960053968432955202351685821598753386260426557928603522120493192156495532555706441465719616376120213863218763992780977441267481291428787867870745487901582222547945576608852732703657029698011714160590011962496943766317198182558922259785359797641943916231898515345997946625343031397783279941102438674526032831925788313512992904120425938562605692708233633982209543706483781529067476863806498644650365251364916449723643951468757902449214008212490263426698007249426017179308246810950681451449601329077963282065816442279842689554845203970539486932216023565663133557750735471585916500823061668084439677334164779358314689831250888666392523459960507367429346808940542945202272883755616079994699309199466785464486477829836521669009137898108540827683378750278493779120295038653527498622325488769659845660835534321563670251874762927981744962923124373548160103383514972635787962576271675779716868459874103224522852792764353192101409132666531131149515133476393827967770977101262128208261986791461823064645013988176984465960107869578105839136459394952816824174305279971991021472573155930597879995464772589352032268502258644182618081951713636291668018483934642510454575983561569625273240801084464218604244682311695521358932019829757560630582093341731256524387733802902411018070713597778840212303410467154722203590336579913057437320302688157607080052360934792189346425738220803521005563978606566728347640259422207436625813122619449793086605430001593816001817453548109051180936375368890160981828248265926704822996542249714276796196771244815214408055689444757114475870472281450020784462148556050238871311201573633018738181011202082645771294408373029650272242368609478485768668329267241382606147978786514810846836502173453144183718445476995146128094850395681390164097412398095996071549217988264054460367012202546476705830489658949189153070399289344390449062897145686385338480557098462339933520214296143256055327802220050310441322916176547104177419558229231741438306238941747620696875083185421197424222870711497948290854943727954110418847073370103375050928484709072102474463527584094643299357941993224620049495879268589209139271689557695868401135408886194285895936263388620030860994146927395571591546950134601498597630444138491195811659424602676120563255791473153568827120920777554479423985500870899548727683283965281039670083565191306693983893912543677678798044092818716501086704825323248517630677904014738179016124485552761337512318763792981875291073477688655969903903245894766026703537002145109753685959922368679549825798910703504271689751569463893699626569954368581803635644772529343561723242988183676931017928848316233708635611579563684231556970820780058971169719783232137699668201555357836137438032897772673054774296551880850554532411511396681281837006335467901258288008843907980348210317539616692819686836048861224721075309161002412004537961718386612357874694945734589287609198810701680995616349437459520891957101199452389565720423404561447307411204064265785973355062152203464283181553846770919996140965459783023553921639268124063816919189319529793823515497422578507487600718592192525815771514353946287461411960518827378697794286338895328186670756393634550168742853771845351024085856372534556007049983355436389426344497126429669801470076293795217726428103808235357777653372017947684760140666327286316076827769160458112781366889477238123478018082668413583701888110238801757688673281521623652491379618134139404145287130870331082335520550965094906025383233840077341390359280988057689467292424212841882181589695750134992917118850397013027391917445012276875245738782863759284023936072557728271499033489804446363981781027917905338942288976910354019387100764676119568120358186116917774483163782487305366137411825899819527048332380348377732290597623120427253846978277234496394895870224463996131505366879129788452452383410064079841579498973253285506286717403210064434467558553863817744349540184102091228033072211546391332859465957385296778640758140483168309813006895779548571831401496871555380998893381788899307011878626283936245139116634708258743081630035178406647065897047283718908338524766562540743923030094059139279347621836446553625120017738192811167555071154167018724291536675348681564436409550006976688970029305523067306031817510218000585045540938460876294527748245209719151807395352195330265429713158535151659871046142145169116131293105661374955712387571274755546773102989837850294503839031814582532888389881278046026424814253167858735624104048869972006861702642033698015697322487946768089203173749957749119392045354237050368029016429719659879593058845826565664044341543810973710237447371087795363422885567582526689453982016707010837330390426184913381477793308968843636805738526839548607587392284361315368620486700099855797152095283845607996951973387843461406965509365995914230729190727909892780040878417393918617975634566593519899940865769965539622452056910111423365663887433434590436532887707341416832874926883922796438656378133591034921587314048046818152430169871610738860530896541643523427336897067988143575030887903123534650828806008571995534070968276015365490928184472479763378081178813507646212241897363103631613540894906355557866049837497869568955661609051670383869410388819944995469332454885804533564090864752783512730988864043607345724296056022752865454945461857117464898884680385890864169937386839037714164637995326425564190332498835335785638828810512267988605748090247040329359202239993816588556367991655539995902815997555483371721967284421093655035051095762322997296273799029092493023816843092458810889107657488144777909970060100402378066543879781864617214768607030293035755393275105002322190694942284235901982983970102308484573490343622479354099859723926431913464429617228993867093857700263230171246251645527406300783760505859398307853589065392973936729884112016240529562770556765837836226202467195101165898516801574962543256289712241197366644997553669105102335028850380242164335842263364434837345275191299477772804753558975633706685298498186085886408355473392687971267688411083323063045934801349237547543558788751847682208531315809194620390808726462077435165804395102157801463041276442507046302224612947458829403219709813574365827624847070193905531995410265415132774686461371055373896801383362398867636901643534509423644910877890641098701947822693222191449270959342452650107693597105703986675305548534779586181477176528063708191624620362684039896390502395314934098072415576175866974108464384297054511632059047961952843663539379489968176090982672002626112028147022339863357271812650715480572866447502728872953546434286128000781933810546013206356721443649830585120699509072190122665357942755312141807927502331678769135506233690691653433740373685686838025605389155545323345823628297224312166491187498266283592503871699274529652844665747801603623359488123201888350736246835597275889412724797906710055373708578618724762544815217812002780271319219828472623399855320376738709645145653186409284027901211912397320494146854795211418083685144661587220441413494914941103539987314841607346554114001335203631496769531622374299994995448778185636197639546972993956815131272280745226484797609654116881398804343529405946316453669912277946030444488625841612155019462065789545568934638745950716024886223711207092439863007350346445740059013611084403499657254083847348584445540250748688577691643558336279603807076065060224276783880614077274728722051360449042318132278280307878940286635890049067727906853033898961989537972045310380076197020698454722705711651524341247617107196802622726277347735422381215842137329808128398083160214829999900620659129787620486250261810759242783835060572665976275153851330549685566588972644079704182850144372072562394502653125718117303998261524648815390779229700989783726143805110142788875421142839590808511298887583812708930528489343168516382815537759330105464676607244398585316564444698566522469829147148701919605514825558981744825018872978932920216599370379128446254431475787912179735078920586558527834839398632995620605739819886815760903490516270260057686111295976454792191806110403158962383181879375849875971038977952881354080616011721851928063627849911790477624137249528866804735495928080343516621740984986971345382289530675423817806342106923966093497368702293491831316729070249090984461999845298959695696084090817456662102109603602896579533136806195362657244956996584966973259343605874942757625444745519350803606278239358329703337768883003079724348910090722507026087221945598886070987751770751107924971087236721088530099391040559736659753332899772458420437224563330342316193537323681757399987693043456070872125776369170303006716278093713321697155701621670555083185085024218855036906582948454019810588792710388213769669871440369823768827599872545805843322226268870242683463058128311305486730274989057418473717176784718859121942825780752729667643285276061963072179408488988469932436782705001631004120749197831698529484808532050197359172857575789555648463514373891051899041432761273724556831110703299322452642780717171310865199982010115001317893306963858368823499708280982317162647229809434207691672907580569437652555294199539999464331057822493809562347725490760416084020025352942638202397524979909702838098912853056970777002795219364265577044234367765020975727130368130281413595527552951346952325083160702470580273159117628765280250202440437457678462543434943207337229495518994967691288752260154371373929024862062372020345029197879495460730840969903267468079128846041127685401710563329331971512812120537876601461132939523513656445057681555644807770135359756006388271603909871496682514538473866300161654292872365721652234372435937064232898086302953218363057396625432537131884751027110807514656569859726796242308984930532995427767095254309547110200749424018924906428441638689021840849310257992676848440880718759531706369028701533966033446584505947386883315398796445549855126003537946226021445401518236904032855848350438719952432565628691249455495768450953456021938891410091264754255814388523676519054499656411817887468911511683192995663372755556547319021021579823620856655842750411153323199043830349435885971441544242180173296443069138359206587472024609476316917330861712613355755505648677800767464846132638593605209460125406781642998900724489635322105188902330357387342112627782704167369825796954421108081727466575681590742714717594756163599079081222961754643095549805188002995994045542093012446339422739682797923606996258076712452870332145925755110832702155213821793191629490499342029730815821468537088811357130004297988800602750011180884375639248219860434320512307457366478287372797734132504761442397594046245984158333553237078092572079751216431056669101782994300094604796375882413671371941375427032456008388325677832415758897582395971523151498530557071240389186441637794861022458907811477427867248735568038920541287909761705785364757965067102249494730693827505198536439189268425914979986217116400251776949139750905573886898802476590758848643020973587550704357655661039781367394657694302346314191610126814388511318424495507179434360360541156968406508331785990288591423361517289691141193942447811554531625488727924015093571662763014266169122777057009439022087591751596217155614863813180535823891668921524873744532253733484602084591147777386634154091618311844108493852689027649558606017226550923327000020107738067475379621330404698841843092042621648639367344019820571464584364198233312689187424016845984400483841202801489337921596801275168676233885421594241395763595269870269818991352174790597149379052528938301271499505618992698739422463332517593889982055437781261954428108885599476820200217520086702268480897972897627513420053866874665776792248954659700265116619414949360839695586401362722440159263184100924448533909544834912291985967344248606911689159870592690846216730610325180657828358152633479540790514902322245351307934030799960101569413319431447399682945717058367368219950972833018156458168255043072867832831034448486889578238226031179031915593845577317862409533547202801267190749799996851547919601065420408540122627428555729900851068625439420140348606716285942171162252379520931819293350865626654633715583477848889383117060382646694650682333630139224660776130915801099144257329104680641684653334823919096645256708856023836206268820819297342419283848184332416501265231303223798889977761295425668084358766112038637026515181558778123997849406312426733070740327909663274245976378793764186326530780638985789889287271468959146077236021369796242539729821835019261127694031256902825725636263673069929176259696137026359273151588546135111922851338152633317821567323005097966910543334031746338140548128585407714455922255936808541343078425916040272557677952903503869529312919314447028375926278883748335771929346073108287932504058096815860625740126439410456247808710025117073351358436384774287972416826167326127984167566382113628428946574236982445659116450147553377839087676342481416290350183660301494180868266540772220622997136880957221241175228380242780039230812873548954325217018800787840838448201204373875237463436250017014474570218603506369182255500720079844053440506384509792628442809827096741200382187473497417387691225714317685645300224762338547491339695494406901004651765616876493182564259549155770196785455738089203045883175615288046707560265255281889411564912755283383791334115808253882894738954727344933594060965970934807084199068271089664721295295853651862434358601523357984261584498170858257384529094156514594811814216370775752533054367262370122815239219254823745590595231247840792200604202029889080164765518546771281664224730376041785736299617467170706422993441814971578108654200064747392018092536037012164765361827347850100039944711692723964821866314281332360520949686779063683336445575286152478982644356553582482034418110559711646472879957511066670296857645674342133625244805521522028462062784758740452008493951458345916677129863882532045229329815534969563731632749745026683134497436515921811330927614594011381219606973752032022806482638732639259567623278509316014723480839153293286004916684356452006783475733626707005616188862272568725006303546406160218379937937922200257614325571901697849834370074215879980306019017619782247412695302474409427511601297728678688953417319561299327274030858317648010480053150228338073954793084703045355783297558893239167080770771124051511690815846984066666314364158376840366194378559077308425703005900773398125295733884893069937040258196049950450397629300800811125596941642899106524974226000912990624041755750823333257910127871408101963928627642124034158184821208573922728724467290557400914416997883791941222495707210641207319252736813880562893333006794907446902683092101328439034801263180780214230046158760226096139468334225319766373261623322881393991227375609700466849345374505906032003267193136373757275601524948856600563665033238726930887815039069459615503812062733045108688210166659344150381609899176181414318114974761978622098440475619047218586663495068537094936015816696610748651793305849433797005506845273128172789451026072897648127232010101404813662384728445874525896867690447024901913451199008972180853715436652333436140984577022237927247542184636638424132796346362072206893579281554096021203649790452705175831048642448990205889764454372743877206863291209924864147571877368525609125274570700608316273644391331545887942255132943784038959369436053929188057193464573166446838551762476891352484020501009694505950055178597288768739599621390136494090175941793387519266240802378941349010788433361835287100756305350408119694053095896993754996229275995741402074291530092338222415696279025258929690302654488920699169976032841818313004714693968794640721787899799543878769578956827060189326665638047668449614616186797433860136713944749244735136923266205238079755712361703545116384038093862170611358900729276359365267590787487972168321582223576202125324393454242935664625994421823044059670392180096912786645730750539968752766433064131772060310568654658361684114827522452114105637457716582475033458580064437990134572248142722839075238711603475352311604413779095366289915973622492467442697533415820879053256645639988108197278512586814109770494740275559447880596899367877242623201508099877319988169835623125319691942035103444270203930966493637100635373122232769114807255466217920550788995048740979712853028849345321193794908010430080296307944946355848518388344110997592243639578915947759599925625713874397190077678204719845475248524915787328363784816645474049230176054891879775616542010205541185372060126718064722889671021531861435607736247598374952306808486521939893106858313010445703425791291497681000244152567547614739555941524912270223686857778609897233260613398193831929565556455334593742653992645174675759423001056443277392322733783208332139396511809697950728845190098955291482521481691705701782506010670828933516316131165682098929795501302371502103995251476272512606870999688410468800346476038760679139488862882838160220860843332491874909779113634514497832632831365140213019899043699567116290879094202877749101037365691324503324091091049730676816254747127665203165855237857383475313995056750478330738796402468875428601081516321980351388678434499626438029547265084426615807293685668148652415558868379303923521653831813339755917471826864387727004986964697710481799382211097922872556822712503181492311141526767881356130280712779906987982244974387484189120215566592876986166644040789380848234428227353976259192453313009597871291719864492583634163274522103056988981412308651170881338357193775952140894144736924093956966674722153497574646583956821528178139857816314323972084357883985121966763621490556511439934735442214885799758623366358271531726465024286579856798570786533165971388486002909932077542120284195588084215763924666952303202871668077147070141111056894442667109665966415708196688267645993447286360781649635897221135987393290232055707217481951214958207294216379656939681282245492571453181513600305342387633940961135288207631045621977481741608892564135752298493918602677965660177690865622076314034018711377474392340906851215817161441363698924118169787013889246756455785509770224001184515797655553126720112914880893182524480026611962041745321221881025678083180883118555197586616435643569215955189362189768580870758066280452423162911333211682475268031462838322954943360197712961875186161072869447089691549038911327938469670227018379731499272645973721967606949465546765726498322762107504233776159233796250229922877074316686695015520130342059053379235194719116559973909160068944965261076679262971227617066128811422355754157408899467600933402079459632077028413129997429477985131675484902853762880219858756150791854183043591920099606115415187382894305381902884367460967553751142910109846395030947766975115321283984312793685541746450319017701549607824366270260196773758599905839291497056071849052744933526702592133527553161758067445566522097034818039233972460824379146600163319784561885138283763071986383250591953858647296886081241981548728005528947599414827231577719323398846453230481995826467965272305190634625382836827430890428107600242230264052586633636662881756370740504918197824541632954745670612485300044595180937984718239714880810761329867808878573099159403113469501005025323228853117207240336852008453922055070731938151049041578755341732832305099064599595378773171570607001054416745189190335740714684032661058813750309192406246923524604515345140677901134092853244201379912603948951661693081909514299430333317618203230763692982163963788567575822626379568314969226389101383318351400441730915878173641135061150381635630368912133232087264006521463154807941436883363514480070526077280348106102203375108189955769198020094408656861087311729420952971237170283527735757274377830720964662877076870187602455923392802838228094952279768918403313385028709548197973606101736369528702653735730006065225394329593095163057182561755832620464597083443601348699531470990752500022268277877695311178454630910401528662176709989487451530510032531179273177186742471933341193268559649619372772921451045578040995887014964373513687332607583509701043328745277464288415827987157704496865652821439726865613476071836988088636472638336521509844952929437185804588658448014817375550717266000176470508678827629881178491298168936906973223649922917086329562934899426628496757487714345463246293755421448526432547652005271551404083025479826873652608910978398372589723485454879485046108490809340443802180783823477870683469343625584438191045761275572254123705471704657995685176546303576405092943892786159150149165725687885550276405136463341412093876161459207661117859582061986310650888256857586542556245652123932339061295064497205525700757491661171754450753106760201758801171169991998423459305822074633583414808259976801804595014304193247621656080612903442301313747834915858957605429831523821256089877666205491358925398354223187337716318139515840114839129005465448235168846957751875536811669480530797144233695121137733263271007790974178494281156776458644884573823579237594843609686748449159878332355770373754655309808735925454623896461670133848812594195431352781457895756405166256637804560940402261668319818682557184415283300731238292491087134430811722331133600757190403293448118464740734758261481974808595105091198675156264606892897923062671982046553097188207454861324281515179234854722888838763177691905607893043862968616543610633545988794111848477926224966072242141548692408352817407034904978731463976357135580525785848171383841167764316070130463168615091251768047325849041213484429214869914068067172408521852503743519133292524748912601700071445644602116876106161407499452687820033969545484483648714593339794931548193702609156543057284745968697174145117236652599180980666771456401072432182832194450362529175159808550597053727324912671252107602831962892813305548582977029185562291234647032556439402448678548977583827810284549280940564038875692699831584271386644286567323888338597866190667221163156645799202672541853970394581740596957682417335758438382779703188700986625119297496871440334433764629207189072301438200888999763689551225169676375822618569970847788506710045057466059517182286282918091154890085791971623980944723678257862423925682652524652571217505172178383004623802235451644697668043776151019039087502843879975177169637300969667266963970383821786686067782908061426424687457876462067593246034490923163187957736719358849947115973593698371408589338848148746660960504788609102291617762466640499875424735294601480183204693623665507302011936812493636990483564611410112048854618768268236112368892185334657678850032418452540321168531962959600275943702205163535159694147772680047763990663646897663654784457179794400614194457675753600810470403876961917614920976080992767858077348088858042294200414379470966194329195015666903304759750158262780447684209907501511546068709768053559665693058592750737193018339600744204253160684723233883412494928597729237734550768380118192105273115571454690674233515260616851715211079723593761953225143937699474621387172352681116540609315669161054251838959415339147993101815391380748025829025230873405089046477451907842043500966441370897647525890498076746570310313469825859039511960880891076633657367815234091681832467138016467580824726118119441360773278966851372846803103628969366855323146964133950172765662523152479477012580887524154694399638342804581338963617482856916794804429872775548666448378987950625808282830673579330400787842268683468695145759141270465489614539056386973541579680462171453058027874815292446770997015943755998007574436239748955365666629180969351413307837690069826729789210693742781475856549880811278215239033489235244057074328568907956536736393893458605277443027234440924844349563567271160821001163364872353107588088323665400605426019854102847420681851807423585624695818228369117829041035791173321780361709953834009756918036337762844246548069270731778827628258124654271301995111846155416101536766514007333321672237620761618134918583423325282304027608288451535056429155204909301248166642346752630080343561921501775208127313244912904883489584841851120295411952704591892024650688845885010270306348251139858161221563724306478601771122003186694088408099163318463945811700537071736656321587075231073603668577519945318629766968886851751139821290106510788441211237057435764951253998972181685463770700791246759203023081529429927850137831459693245528690779121858374448942897220207772206438678646121796719305359248365229230644215175998337635727777522582898875801713360195522877345855846866014528649285783005404250547778875083536453487812241324886081641094427600546651585967245631736813882602358422179400976051178216081289272651432003955087104330163974629198435531891730423205718849034958421684769907339621258976495912663935797870205929659473649140736924510378327448136800532932978176173939578683907911106325660133382427222266376626394639945934405826015333642285406590751257128044817410809623179107420433279786650372289026168098255772314236624478900424599042279171273431392576978113567494060992838667074499162875178414879496806501436273644907511575010690127167386553439674973316353690494231686787094005111248230283043454729046061828557825587470424936206597504130608817848012855253848807126566307417246822291628841633653621694127005134194844729899495475581043694325383848430172297788854087829306556835075850283862259637401790832384131993381127787624525648637823226369386137316769415191448458736307336577722485830003577882003243295997860398114444204907587951036673044980077631442356998437166862695648940077290568675132239777346680981675284350740727535980279684511232757118485391393983659077309812522149580835690765785144956752993712656285807734257003558945116326355917398151597468274096666628229110489963380995982046973817512539896911982718562347221968050152248603396363989490338629901352291595942179931167940396264822712952592750006752791954353534304701557771468357811101946913762795826001127998174518140693570285274591474607832014391448013047360043360837778995611038151851292514303806892995913700997821847070235747179493607243331964932500060453477701433903966471454253433674372047488845775276725178915231890150185564698265199538555608907229254658562812450032860184446835824764855702751692649027765965274245211228584310721161979785105850259383136555806897609455273527741333867035677456644841917460868102877539205179195756233232292164578686501262666527092116541197843815149664388941346023353033606758943065711139192178799182907527256852493932668753078064286406272200064357249742217030743400986559740710113953025570676348545507579662326106976434398462103230464348591211421856142869106328907293769194851907525541230323230824217388176912635233670053383509270318794754820880078775239966270575530825891322159379209208728539337100094171565271122958191477146892237953874786981287216192983212861170781721172380893149837314426239492435487947906118818782925670608279364713424768368608311914156411968496227027669035224936446810979106151385280927314216376336945593542463600319380728814990294588486482960141427190159260015806093688472594003082421946905048378877884222198687770904742158215624769879012777865166324929671975642027327698302255766046246451278561968216252368674679455810792905627831610224867439595557030702602533777122645865151548579348863753584614899255314388474803293505422639484560962442636095311674089793564538314013057387316737927770343256955056835343023213310088361608738986851604608621177773645469602322211711516012871315484555524849827411603149005574345839288616621338072647771825284847084409929029763584229545093566344638587601782168480640537753295397399061104883313606911067061913968539251961655630450076886368914977195873351290586859204551469275685479189462340621534041097576309434008813811446311492767043023556753484586189743483537592511186515372257203870293144979450097817753442848169156107282906000146819413334791998863735979543666744648210521732787118514798229176733858115352406314966411418519563988305935428532917286508163277796475201948283960579733614167812929714649180881890691009035799129727619766422970808773279817177766414201552276400966455712154022641471425007132930983244651819637046529363851290580560352843664058714346408224590171870563974173902389997558419250032810612393512083411798955636821718880323432175350967767171051142252583747597442634375529765643534795987107209936554959920165697668633005898506629358871715332371637521816495908958336630576862789349406711641035259589631442221087227281774417208069884659987489761943613855222421823767312317223682891002550190655251999820996053330089283967269725601271859969718953560576891940604968034540477123327778294603983152069523484236679442027156658981219313865000053039399230135996652066990342509184622351608920978315162076772053755202547072211891237887750869931792985890383695292458286907314090931028794927238623725757387905350446903209155264614758953640580001480202550245848197788029154739855697861891817662045317695419154796223786747488947042270926642285021425245081922495737880304596767162747145098317888402692001538957909015114249703287093573243309748804182517799869850984367335854319614322084428364095760698337660143516743056631505723695815680378086199289194686633879032711352655316010110662332459213213890171780884991778095400207908739023123734960672916350747415339832260037697608707097109147387488593933833755244170408988278441765966059311328436181077166254382496058062216420445720104598260093312435216328183214711998958282683111849580109536579343209219761090679477875470904984532221306242976190860386030323704725249811697597341047346920556042486877182934177718329587276271963946606100710397351978945998773931510158977626094184230269394913666869936131681038147608910190994549905936024107174025235411920915618907932447562132938827639084618763037260100928771593304989461451375478716809374910225871764126844980923754178554775525162479514103083108235188907991939915812512301420175357219633247648773916867407938580822232703363793073575510842222142229570163646209773548482044706037315760113643781698627493752382857203297028058723991401535979807362789478389648756354291588201367240249634851162337170881697188098484107715783209540110465585317264142022281811706554899684975126289658971232644629462765867704526993519427755235663892572636236380442015371814699750843395950282646632061944465841941146017387650565273483781376341715211536570738557388940215323309866285016270996263079527036750864039245941305530603407537663960561865581565238806446702215989602988953473094802099214542760139833406801061073197302069831241902311403779212398769104466459462926944358857775562383212557222884570014787557258246291935383758502248462588753205795636251349268389915059254384723580639280054466747300291404639386052073360201006036426935807809542040519739762135360345525035054058449852840486206871304343651402763622254632056812935860805308974996082662544137540496029684166318050042637392541545051676787130879309234671416845991734298387856307865708462727729590177013599265729399115868136586604421301896618035590261701930255690425655351661537996273421734428187209221217926831086239748090438692064861169921755897650802273228635223965587256441418507728338809885486075541534325033988168417079278787860884569981316149995206890446516583872913694523779858989084607029647107872491479743644699859507732188474560236487198802860131289900827550505535286689046405471078518324135381472760844463600190072841098648640793315706037616637567193455358902824476381288254489858768363205408946249741435045470314602816456873656245325956218429560010674208989873341453842107654066109284645657058222130786227603302257619289494861709350497641894219615848734658428541913898965479724939289510462704195807031751690047056612075575643453698954581113829098592674965631450417627710799101154059980817972040438228528807131071751862999783677280134633762459035433979076074794075064055193583781282874068591915669314509645060602736071826974361364436557072412305900029845993342797785634964550353386261015847813398352076924479781065094009382506764941807906031356042704458219624690998207559646943233979541839822806559034256004852190738004656090240558423835106497592075858277425887838817788520888012971208457180025862130999026237599096174240538858389837882282882056625695807698393079885897929522175194247989506262114556095031253210122278466745600215190907614612094111593993743556401636210769430688221645037604834033215390557928964296316858350933110877681832124648038885944948599440452212838680817029380450332528920111392000495117101180348119885624083841318471746982130212179679421296111352504718206060269448643027049708760290745007106573948523946342361682130689452799724450301280321285719917573390014632823663459952502787616629002531650031924829338080647959219359145336916534781400280001074170496014968967554421156175730824370279217449780542063843677971786234729566109038768407986896387743637559111831125331214217650650085301097776309140121590415384639763511759021994994295774078239884582229220611008638785006514286224415195763893504726456001447164587201801244662629718314784031703534834658585799496448335491955510672625624357311258572728748493218416311759979259321320806135491773268960962334254137494875760159177583930493078817186027024066200717019450359016120635876840285830198899128485942694981741946512226706471467071957075138722891865231888773107322757758226879742058439535302180255459864968168128805221128922899915395785905978449602515127256909360162311570917166984285064711030204863821438626472409204450951483212333547063663449345845708136570057982889123790755945056266588913454883584386936428570258292191237083987051008181917632856622360880384631621135474309232887887136980998530884614921179907601173445141940473941244599776640263184766235443423628604880790156338985863822417699609621853571230908043317499823278048216780894568730006520376154720231246461953570681324843071707268426351836716424038431142695867219357113892499835688641582866192511918004587783878081166880315997074293761173264201897031547322160388586979264522903710699200736919506627167051720066258338460513939476706316024620568465088367987542835454416519042607118937926858279621022971332206776078728881016267914720562651240844125619669230635923440750152155887407846625541874268657408857890791844282190171135841144327029470649238504966764504629824598684074835206079192046359085716419496349660949295501309460493256316535222431020873251370272966252007092274564937489957269520025269472929362406955636741549395919008058837797152770812954477107797659418203616949933111282787068333213171183113888106504758963992984267234622160089291593446550781765029740855191459978623222106519527887878048250861351351425599693028189721568807008683835034309496778911605055534701658685776847221029203706585789132395642566661633408482524254416571351041566951174928480124316054030035490924668488562784172540750458631026082763728923930537647584713502256205635372205230163569185724555588047164191959051073825578456279151374535691338633086314150214478368875474852443780878005810408591020812988726318116016368822275928879987536222270339850151942752056316379489328174834045290862150225941448084903281001981707697170972915595734661963098195952057821819014470217183009495464395860719496344604240326800791333094385997935244558362744562113054613231330854751362970231003782924880776999490795867755507448392855653199346710169699948199165356560942532393495499584646374500251091710436698379403539525330930067841992875750523961859232332675041244041947296103586316561239164397022086727716633628273571361163390329298770264458045774619772802532432921819904779607885167642197956311547958608633715010858989461448066430034453894344197568207381597285859830038072788885627863024438454142218474663846857142562665790346957430105088279073170786984711299091410175867530819346160756933858191930346079321211203386082244796635074477391499280625540723882829557375477243527834443215642196887023798508319495452330276675359550829464478541699703196046384570579444686178212015514694659674765685499678390082634066294770793559445877912910165818219827881417022537084275602011585527937282741548792728348724626801510536855053797543927375535667956797077620488786376570409299604561114592267843142737408764980433552387488996115333696119812322535377435307391536267781759397226450939792966076342985071292536027608359751285345142334797403962368102121847425742035683677963195045556976474642416849367032768300395743213196019038643288112632873620902523112377440586830228716764775497177096089045092579265658364781212333819202665310340747398569874783181569712490978980444251476126264228255730239381426796556638414275729004129884145416688854679221585248629339662605656015712591125461578879049051447282230744871657776230853998431240344950015725242382186689074030445124890651040900357002721097714169464016079820023136982820032289011614571718557346860181837671048668635356936380976440154894081354286620934734975864484174619283622421261986436893470488164068501541436245952643885341202834120264242138520518075367681545572013978223543404959824845718379697531710305072563166718603930707320271922865971118690389389867444327558307719277968021069643283570461297897151199137040220742842476688420676822773518212299109885707138581190302358945345744218376268827206670482765352670943523416078980296327448404073217542215393445722164438202490420471137840910914230801872063161590416219383431658282583693147692859986854128054707469622695403539428645117150736476537235230307980932687725799215175933708912411902388015134684394696000092208481528830401931778667925751940836111621131383427307420966229070802393492204253076026734746566245372693256664410024690013939143715407607524228271180472073617023035581845898559406788029618321107857808615503257221486836911259988728424959478785554961685222948579576996974824039870845929918091601754535374924522457699802381909057787168934420118502243671764981507818485496001538813916152449025490473664854167717594881051582326112160746625972553431729412271736081966281350532746821141137638107948924154921339734440475335799531108826722054754205789852015432835019735500958124853479406556783903842215848121083552683185873541642474059067398271872393320035542074484637758900881162068963525925565296595292697147946072014788266846516381747951410259319838457193737624506240071214241914122778928175735181222785331060270179348862474910798894746180742952101143535306197998755251986019974175667503895503614701857129925199986639694505615923097605077015216476720963692972384966850518386089072120613545944716860997952882395134788774664550334198725669223909955421386499882207589678946837111876183771341568322829325428065963662997023519701164336192805083637160930119921715964532827083340412340335885605563565405215927563052851575184417996514192564676303690370864221919851164928446014937620065157159168211288678464821069629538445263085313434481813349693710397323384139422946938741532864027434700998283288854056941429131863929815983841305599487805724361375565232794557660324455518794152860649862073029459786634132150934747570691361530733550020601535228372408977753072129559778646946336384401566198722315565403355939032241100989480523373722274685791928376712478140707163554287851409674908360730239826918408774961099088587868683553618545211854324844522912701877997195999802552456479161189625904968057026992868768665989047993596864199841136777411758273680164272848172442223901050247978999241910849479025628458053911827321830650041535857672177966178665783463503378984395575117657092074611454569619670015969740240754112899758731684912523764496295231377267517241145051009483447151523116074209634133990664896029993962461905680636052120810150639638372374684626277806903368376424233206185243233009991093006327657041845626903815945763166136448992027124626663887149801858033148788937458668219907854613143202289973346304505339472309229246506311607586832656256162640019722571744694103665442759256302812168009247603770002418999869926324307338471155506296042056799978230953216695888740788057512120075081467973173496936958555115590567216842984586265423163017778387711542758604545997258077582479078637540835612636836310578392636550053479361831329700433001707246560527722085435773728078078417188825307053499222951441178215206286551990198768194332652674402530915806521929020271668903226374618763125150766258736036180208551659379261836750928660816109824846498680819409977750255428598152283006327515540837850715749932308918279541960125150182303751482411677596712058681600040739914081252959019628292668616522695316799044621303884350878118378136403015480553090114215479383933637030137847093665157239655809250280158610271034372110326484330575169284037249690034099962739879577281266243877050958922852168180869838546039278389114137835119884911946046585512422708752472713681429497324978260793347308526576633775351748056538317334934892358754541068410383354729322696960078555113407528076428671884193494420022071254234534438559395236245461001668318426192652711245613474903123763328531451466268650991995022488552297482635993544010022186584157896171961235963246000601104654579992807457290047283439350916393525170654698160259711876610610417075130330295601911063119437949337733420742286499252242217900443176846867082984214236214507655838786033774413017587501994117414553792657951160993759997917302033938773348767606116934543382356677593398692579333262516519356801461277609938019947132152743888862398555202676552710611534373946295311262880013213598696898399152753501939031824762769029675172279928805323059054187194031683533962864303794476950071506381487656452364133090818108222436413483117598070459632322901688874160421323158746114191546344844175660676081892813023955041383942787100662348081974054396025672926493337944078037200249374699548070745546725160604964786240566322917269515718962547081761621246601812349936178364106092482327370053442689821750015320894282223739604897375235276333143963188912089554345692477830210538369563119944991177472136318587263605392693352934705300411984308005117827579199169243052092702190653200627111224219350826411295644996803702756096691652325413861015096779953788110110084249443582916934667690691152921431562792181751281318073301648719011558545395886790145544380175318905876130404815658799836888148245844000471505627227558879111357332194558536141312242744741836650848605679537867875800672074554387064519112053026208046456628390574142585370180740665940993545445939292004003908454245213370274178039166797303215823521521224811349240102421389180140771619598079384111989370609499401393088354028794082763771035394415587997394890171369741419191735896076343613061173187416138457252267748145298495096211723428329096388665972626681956932038298119818906437261543054043196171818298939106088953660751920284296113760419664814949211198587551811698241927352662622649838207706870432186433974762020968180827584509229525200180547240769714817209800751789939991245972527474743181487889504670485431249419933613459989451528382620766234161167856160799383154229825364711355940196311371385056801518412824404637655275786853457261222342278984585703791514386517800427992373065087505715942079248136153401891029309645934126525914338409453458039798879263425030257599640574658293687093503845428777091522532134240873133759644362980654197736921699644776081869218754789051119392545155164914571124301902109978676734448158583286395554548174784124425251760568125349572765604004835748854070113448780665611827443096942353031697099395940335148719076167838374605634935871094706733071689565558259816926501891072659938442444010425132976256616990869910897600167507262121326217087433264021876939449900635420927572738706774319714043049781569120746799343887945539945058017429638813314125923951938965841556675438931267840812803814262894410546842245697416421544544150021433661909899606474369788862997511481433426197152596984278713005910163101351706347696512644832283384761920962702355432172872723323455544795858125159359953773763492053676775666836069004451256696180197298985040892422557638905349553985770466918134556234503274160807202730025343838837438858250674036367643286558448149356075084315065051892283672064143905557035412468008873695297793472381557487451988134637846814563201077528809762789689838333971144216358913418321139777180010488159807701862256039706662685559084566098285383028072145524644702346339406562268169066075795022641637649419469041097076051080377837302726645188119638726089848393498959872835286405244278136233746760715717114956045059899272290731237389400105933045281427810373093676010946088697193392159456675662055154260709315497209988562685257101155526721505798107565324119646961428487865495854958186013196048690317209405941171432497892073809093940605588178855470102899439772676660404830950641221595605968383046838027048130010794460888180717397109134703011422981650453834129262424848750631152433707679611646000405598352113880300322116538496369946704194813093552842931236632607327048608775113263372360039585949159166249164706030979867017408463553539044208727498647822399779569598883925166278988393446868296836959565042891553713169444134370025296934792485400875242490945291466488434576250876403813396056580392920793638492249910973720074523774560720100306961828524178388480687982988667280730964861281427700141301488478843984580915720193098353076613980858709697093962751598451798096336709262093820609180148320518109477090610494377911109130809863768152287821645742501816850885095339442465962984957576620529491886915848569242783964212053712864339610811929171173924175206671416033342918520726444287446282910766199720211563848269049502753413768283286200458326554690622370320880379547905040427986594192917342363717789253980370497047501981978492529427062486081752188958084179335524830824997647735709138464376677438484278393577033636954305391722316729629841429417241253062541442006200969391216633409042914565743346989287535856342942904330181718838495029364540589793691019583125949656964452313349011383363921194321019267637115176956525764634123628700754403307563578451534741023272985364888958547418699514909613008738232647239233740055255370553077560642804934166660681261348313060647497914653809159052041188912961553159300726027923933204122904490189494344813766733706039939693525160857129304194908652724550267154550463177730795296499220194504024297709999349931684164830753056445116986005938732182765167948802970162553700197682528854033390350591422468115493409029176761275594123392556115526107880995303447167443819640010998213000169312541278317064494144423084161255807636634560133598236002126445445374720998777761976335124560924460050898872741238215912760480605735918200224449362285019940633072472221366532363685044709670021458640335908352239019950966381477437771899512104182913628783888258762605640067946953994098788465461751900088111816017372059372167664595753000432757600313981346706414375255252360275473386070030206947193135857969207724142686020432895891378719939006399526803350623223021628614789577766955585101755663646020413085759856216765543855035045493918882632335855102221901216897196594842103179839880856702439420769470517136529402656699476657460541556098078165123552294706243940679102626233204844440044075037923132969397423691021403709189200542206383407772554057553753251567807599473329252803695366556051375321644679349670467032029526431187732407249831351209057850005766426194108967586571813870241974986175206515116208981469727071367132611778246226758327952152136568059653688856164614424753619126264221980349663961025702128701954504685237339955972177734977570409113677475864800655257938186867074105656362477407334893677094512486205783795150009620328939075304601566911615451479963717928488635327788002849761001930545728574003810933258005297800068705168042127140881282648229463782400571719983874909790459731710688451654201471076336119401269118386449875561642056051015947532142395935180531335485288236695335831834738981892768707234722860113874774086621082158342541069314010323704408429075648273217433204951529480587967416840379184661341025070110449558595519348754779847364453769931039486272364977922010579094560462836739892218812644212382674897747044940121689528251079012587357605438308906521353866411035136017487261125056181387765714958836316507048673304449778858559870058551927552915570514937094653221476112004748947781926403120897438660347991553852603911457039848912394518985795682658612595434506668287123792979800676493389644901210228930537442621915390600796507373387021678124198468589178441787323445047002204467024246214104187478252510741259326866639930144854620150868036790195164878532168671683141255557017801933286711911133948055174086739291750209919680080094753898231284368736072564938361060630673210007773301738159144551638952893363417762453205522710714571458183152016146557391279531841848305192122891942022993128915314106490241564672830533101292007394628762284432129314933530840200519071209542386760461288293712543370358627813064008043817076399369747960182307002155214093002924807963571288390338507068834563757909616308336781818114786717444162178085740047513752637964918623127515619847032430030158285653817596463601710212625993563397633351177378097943166829086600408447944441880666817708442595431439992972309638587261816221593643685043883433530152328348536347400944839225379681348045402441583260508472654795548087181122681937220913402968092541054047038797682816068393006081573096585559556458231871725895901212903763444111779897331590955972671252644441271926063658506142436729900452503824498978089924939158071724120165490772450022285061017402349054076188025209938361738262749129829405222069184838026785804238125979424255273557668700431629097324974120403216162196696528911318312974063745488402006784181851622758676406284995316203537073899981503157560608915267689553060528364534767860959678540410163303859203502604636335941714941382599912588765702870784271128699789122654140689153083339314607139807565953880511648983582507429087718019073382053439058998311173243520479639047282111107561128797014823812077483494111047365148798180699635181890583559152463759909409362690553511391485530836156811458126233555450681149140413856772343765734076287504575442736162110884026906405742731233750866772769390349738002907939415990934290948306555081320049448467322588547232209033698066250123900018770326355786477416960368297983829606378646361946000633541849984370965024740126818181049361429931565549917058487403376486128226262606254503535617416675648529872575295896770397543220835541761183319135499695494570990042650897904252046075847956074356365614052167632525793938596589967623131034027982038731742014325554892089393220895772855072052608145171241940777030581398215469624385192397939817134495516236254853382056631831028843596488550294918700699479086689505892071762348161459887692169954107260746904584200698161987525141913424410816628825751049148720733685638703613533282735134931625781038740301220997451432076362719945740560088664595669347894212665334908143867394029075655277742352565813408328153334608697484275892009366280338653024490679394702798516759129045298814016385661844655844945289500109551310105812718854538812943264485682367114669067795199922587405102287721034373786021363974704028903718340301511824553271054692931134206074330947234419023945497446352005683586275860365179121336809401650762114047392283505691671654380714902072957615262155276599115639063038770955669702185640423594948978715008296399032191829843540370870341442247515788321066122983495148842562351266373010965772377827353216895181049556604703178725538261445025228977251721832793651339508688086981214465302289354088696818808412438103407630458964995492676115820841381066896513891960466670938328611921111192018592353289206792590003169917246623438663234191672163789312890766319366639068343486408623994795342783989592508482987289920928149388455150096979902520355228280046233925002750819350999073835854097216083109816230827275462950250076484126224283744280817227175121794590340326128302847014679116531536625163155101593340697631407669233116488345575463219592877964666787582481441990340343886528925759123765921987065580313905498282195751977224904199598238118772442007766408335709324375311519530085134213272338874459838532252868047013062462954108376050256778055406637434547200881341942257191371390686676496988675750246849812932721169686586307615128199768560950611263715685029696797239404888104727789784396102354704832612595423725336557341257483703355775200229942057875472393889489168304849284018254280511399952547164359764296607223765997160195459581270497010063655490426086281242913157392744882359162099208470673607747255927929916607750031115844147759744960398370030785173252261370130378013636357295226835359705720269129755293899739206243822617100339645721661330446373064866537203135790237097572383624872376723472147285687490914120038449477209474830292321191277754099561227210519350722423825283751017985863749031317996409909231433225678805756886278070496379782044370275061035501827794840104429764663080151641243217987186691410031354412057843991165179362187975545784454572379876146651082775149502563060281935759146742617795469882772814491579712829745860163925549089495586098719238344178079335274455187519824647487129240680527410352966233544310090591980934600045846210429216839083275188616751262669172587533925570448896929340108990432765841904665190724587429681090803979794517629404858174455783441339741853482365320070274270313149495764509500064455697684415921710842768487545879255625918911523739075030744867457424435850335698782561272462428141588154543873125063183602373158674088658053423272675042747372681426092283517489018818590819964279797418416678455201795399362803543913516504489162586010675678855477119520255539086754050249540100474419836502216975794963060688827297381946851976021231143993376790585804171720907850403722912516349070042450003753398090482540067795472902706729970226751125145744961706938537069888662547239105933567487316300264895523518675909183440319848109253347422227265710201169682360714561771619080306010155188366337335225618624283868985773011357928689500426393246604260531333121626110508543899688394810127537392369302455776975073085876138971259876202846031415524528774371867133327099070257885440615116359027234030446390599879351744387570764194027763580000124369739517115019814520735491723689540316731925240773939399689758633799184692436872366938215911966012496843401582359169769350750116849869686160709087408264295200381668693215362243381937997571337805069601089909351557930175785942777540459454763195191819224458537713386689675859569214505314617882181067143046730343355492399563547126903015975242441366683820865709300041120911255534745121301225877637435261217369912003058177039282981701019577352486334438359715922549088256958229552850206689910603155258185623766070346692811025890900687320476699442782849031126971011391781383591764927250666341578708017263911038432338886913947827119176918876185486244674860100923665250460229455636192334163099543260589759098951794822516525890944077543699281856902305933882540431498108112168615160746839282190802035293163217835478231987451735689439763224337815231952291516912808248902959815111776361142531122730925160760290076947652103996970030169204781970240476309156359588505017036565086361565489636446888925310903903877156643576593338871608332219129944770421441616115645522203759890088497556275609128127831895355548721792239661491421428962875725095494371341970942034290438363875783594948765429282401894121514513607597945612664447986822416341257892132892660008726589312370604430331793682961512082342214797518911978699149718601330184560945819741246799721098622992771167821159129698770474156175100793518048297899016738790699825810526314927368819711465486677126922244784061841318865915147754825751153696186705869866281703611054827980672291575539388824292984319209177515042884798942559824995217180493272763864486177815441558514058006882704483902849218494771654421756979558891093435587830296475088887526949969435014680551366063815567651175069648220785986157684852055166410428966974153325819715894280442096168507804554393483432776638382666603389415414762593406048274399302393240815395093546344201480609671076878258004763612333256040694854415463060854369790066075334669611522642190547184697140643789030703377394611434187844792502810497163079857045567367187030441837830742799906042565977818135163186845782569617641498845051758260063431032116245267027128811739528818693085739095560381664509476207005195515848809159793842543640166226712742513273639229084084843447406479840554413969973287378331494736310532279322364351347249014379613995212274874042337271142762613156882381421845977500373229743559999255915456863139606704547846156765511291562724172567103422515558061265378466784514672373539203154760323423665595650423069518507126769751017137799209065359338266263741009079756658069620309013359357589997994750975516498314359362117734461653637425700114351360576505817356665263126915997563967720045384182138939581678985498388940176437216438053005657043541785954771219435956611224782861301561451769793935141183169936111612484102363860944608216851820418552160193384329163864959125749882306657984222770221486122878737039262059043382335565320667454254040351837423963074867645946781780637627245482487005421690640423718700039067058677090625763367868017367885965715424033192491407133943035586580601269623730606021454865866755191296970093305071740759711111586412632993303397046471801204588787425638572139487099015392779141642892682046818056361694763498996674948301273362859280206995993369293272491202604415097190066929313464828995928131091541600831556309071017329576010421735274621490113789867329776965624078059345133366792434051231754924165173001429745828807650796893818883398086408995170564551991908320198675353138411171604881013215862817743774092494411183665617904406085883707203275601544317413868306386681391714030890760506835743491289797127081865331708205005086997318727796495012929516194604754384887672682450883842222852368493194616273950215994957562814487734777298125182999991875937785025128660775635406426821603028420477075333093755105142391138159576686224419393175633391691793478504942991830238375748466461925889725929411396707414077424297473530073207769705555331453252969399050945320016503889830661597297504445148264851892323080835462511854142722012983641251601889417032900885996687442129397854084730031385287508902443804016089115230690119037521347851366931229634628307833415382418164619402309501637279054237239628258194963479722008355236248613269171982783990577838655454424174944625966747780204270756470199486390811080122657209499437200566563799294530677397231469989718403647942489102615990613052513415768180762410613098354891704654583507783427021676762194112261291016642663800004433578156485080589779141031211822354598155154899734965794634626488834522867219261879230777018982349725120859877522119501517408475446784152490257985302079523691825741627811641699410497915444889659099486076650503553653496252278363581129574162604960026437658832564950033491252574108548342908332651301735922690321285377546287733605425230497600799768621314150003788769351969679223295817327363089283464775761164464171112903019837822222919769028991577759360920435632011923000451487559091499492855061649304281713334186917507642830058873435278545767360018042210907628622032490441769043689879420779081365705497710097702023070365242730769933490716756144488023941258436004457921988543642843678229293754536422979521125249016157648252610373022063997823193056801709332565698215907310634726152785659824336265732864269156968041530973216020407601237642476788402122046162136666185108886247481892566985902349085784592946370436622510554810722943747513811099035557136777662365442090235717495800596003885039056438377431322040450674443472356304133894351533732082226127159406144267055572997877244925039214308595241574795415708356247383510305793646644927016302057417945214577768612833195057325276509564493593743383328296961208852199336776749998341864962703286347076956631613742721097595898880877395176089697548421028184206041120576440751612651869261052351321509004334745301208288180258377697971220148277836015462845308622163453185899832562314371900954588297716840457571357033696535496492890118293886618291994684379639925161694351265605833406548188661637133432807785791411709020739165373187348902356947664027803654659996915722046784808427747557054387572916843521657989068452929775603214630194690342643759809916626254607801626048592236844304738056676777086483657809807346468965286609294580620010575226338104597250986614674920078645968390088014270094533735167074155006056244092383854174916637132929644344499222985053187368247741262233868720630261752871685948933344692291024508075125135422165985180304314554011692534104155205326047751379552649638868329589923881682613155673187133475355904033982235937684361374510398879914385142534311925605563030367786756551343816161178245962149602429220794493755588582420394267029788805152928626515345809026097565784418360909997681395523148109336020651629824699584778535416471143154215327744562916011040283768591262226738800591738201513970053260204868974013255273182482706916265107655506523919879758935038523348474837044177264480469690046548731846882265821361788361380054209047832000547668092758915210571623013957704365677021079173600886923261655623609123836116011221938908758498713869430524306234820399125381902370900503740944819654817187121827258387512630608142529708998832856987064850934912334946135681142023526250435711890197174951497459887604499323160210406955459770924063249777421132677108523204374149709996902019065204211071314883772207515818584014138244756798969321989766678026223931417947681084129515226539020252561887390498335266415057182437990555781791582587409337561244072254768490800973128169572144549701251933554661078648406796314151627974160438166809525585191983875782898583431208338154696456821590080039891107474638146153319371764477335386511187147177296989971661290810163219264008393327192262306897508648054417291173177140924421825497076548772973948964538213959934934881521179482475995585517157766390112223318320953813504006862580580339048005878518410447211769560191944440940312623296190923299166144972144931302774933546995459543559119633836193091282948613901745225043633300360309340737744704965917855648684343505291203587813376258767578520645217550279048895674898339222365193768524337085562904217541579363221639327184183348951582550648217107494827961366592783765509579961632768310926788578305539142791080773529104562835014005154037526093497265082035256812573469816069330572718903705314287809258842136876130801781623184315377705646367584112884659188681501108197241837496302235338512422259819722561643047627759997242674076380442297622600505481089013177625312789693722297947381433008712652607280053304669415005303738531175509084845944237846812844511215980641485970939723918368141559118500364884924307964581314695244649335464527595088734054890818178701863859289079060094982679546211035100480902730174744668476675351485093251099735160713545429224888678502847778262426949000103360314532016013642260309462530204783904038470947080461395709086955183595314125992945879111842966611293955145693563075402978483545926670494207753816025071218180039146835933240214198901206776503005960712147803361633123662360521870128460802257071171121305597556418529547029676099468234887711258953704259496393473897325328122806008188415420192886714202013413227803018868005775027798894911718818800777300816844374705613489868746585911114000136077982165705328907158519374279248442431478623094313307062858094986992953082888647026338861256394099869028331062225809344051896494828131588168888941606107638559967550584874847106348556074328985913510515222993518054978580465878162898781002902463927356996429835929183552255421202615033505459447005801557713042656713715887699713366026969878157545331992915253515094085128340209160917532165765181427271660819450330503865449209357394238702116197593243113892044848918178649346420921734571748785626761575197087574704921570061913838435982307142249933741326185863325808750050147724344787127536241556715452166460196458631358342337937440695592954246174203355439102628650022847487271939598993801057810042609025225127186502220108413017123723283387783409994154377133743314045620560502576633157424524362571915284486779945928057975947714736918690913285299222646751961652704500801075226606575777137258714970694434714389128282307996232203453166008636437853790002661086547288909121953669322255755390382496607120062723450209122521896691074709537410885706082709444412229088912560953690015855311318596332487766710278691632948118574422401573557051278319379751284078052553227069272509874408382990990423860895211850764997627055732199824214360101201831120480553410871907377492216381971813073703858750296129302695221388274354028855627653794408495351987081280971020713538557692705479589881311823793231516491128372804776270537614828167297175628806223751246988566086446822226094583408266960596919259301185131792932063101996006031340098437647923878597433998062687585508942299984549492497845076568448586513939244563492543190650471643731617158359701279917843131362551139724850336801357472917408937364726356681540056723013183971201219649108974962979600605044280940542443431839249257132748915693881479227047620414038567938090670395620210256094707382422757802935747380508710500854960949423405586926486673067998605356712991941641975096720858430557391001878857765612145771006078930158776926341387777230871734811755981637650126633086047677568997340973611011898261169558495092718673141973209648469565451588236871485957420259290698952575079621228601775848919674472053259813774486641444115397116081680485663186894564747704085682993188615025512892851238461919088194631579387110613894834565431630759919391651289259440552264913869155216427435229246963978074691573672605853997148282744043534954814669401513413891532178980021428937636296723474157374867200487492450003645343421608590567751862283388738420037698203604195075177026831952170706197139969125904619666707959804412169381928869443735985657337386115198825104771037282624776351711856950793101275575137749268634450641082067113592882611994790782761492516164613833414702310443741357086685537853039696317837571507294671207483181891905040579754909943833130233933784104766803875093678827485269038450492683189392061695471420971615499627501890031978904419310558808210355646043992165534116890802682447791551844314426956943813524343671808403134089822771645046550541673744018249454253490818170385647679291243605827398513890415964843613066375244277797275194996534150560386477773536506378787218203947819164835560611258799593740190395315569097729274695840434781687946785255445787099238707757610607469104636847917922212141070484120819619214980077087689102669998031896835537717432881947156521397324674676620648869280479765516404089089426725308493678864865894079405698433465800684441996131313289462167171127487374308763787049204939490550035858129664724041794316639756775961394596739666026404597165831745028204975443047830720416275081532320908566694328902692882727813516713151203536213745229588512450144607080933088710306632089706670658086672618398052965067181135277836577446269894570402331784070070731704435017947387641444138730256279321732865411903529664202448064433763356051446580169115544053548355419796883902341994136353979784523361274955743988514929059672311762851867297753983530752693904131461237286466634170530133518740536433513474841155139707220355633902796942028619941710827634729813249242892342283621530375358747378027692406154826288125351302602333752440216632349592104516370728519416229969767145869888816523309721072192287335986976816801117715345430222741398652072231478756282966908024909672512296197596620721520953057465852594507848742880899404117378351981890565868006079546962815552278828357229449652203509343870489372231863548873453580485112169991450068128411153286196113566085570341531529452435110483941820039757854828322276630167934608679530910074629446828183514493640210995568523909260783086186080429342168873415040839483028876598744442189719883007246498484759362760257705350015067076788779505290743614118399014754047901501250878604600313053384548548563118735334959202768605497015655744592176537762610328954859612705509172072553885785064741969360177374296628518020785325396367804147286817455278515738270205577133998897635032161028659553057769628912964797349124835113474953925833190110944900098345276597672999498462070814554340008981867078650054172055826505568773008865549164746324457232380480794308006601357196005185528535437311794703165079430270971805512287824902545564385730885750297189514295357217162645693302328481465488144889500893943373909080254493927336644604564993979196088958994637925309611603519761089558181267137489905533881898310319354365846733278553045944895179051798526411138211453628349536246925082840883428280621986362513145657818791146535050663080400016860942491882805114431035091503305330411466857764060667152298423220998077908967656837044406647954865031330796706309962120259752698381794492480542786792471613254552440774566902172492062413093668553537396233575844457577852352942053499519223172048618951565208414724287006451377763203009184452492009077389289851577732424690891048512139012442228153118151326196347552949369677190297724516411099493739273908220014183772440415574146838746215123327350627419562782199065829973258803672925539343983084274086178319883399177277970566995016558515569044202142533920886171074399047750469202208664518390241952245955351296304916802265691071367783317292605270401023553145931617826384940144926806687295983491519659894866256753590434830830795203060941721130888141451621734828504020173975255714561241425829540067134412658449486857775242784769074464851108593159841138807295811393243644533934180190749532960084829263523313484664684765762948406351823982561265709849930133134319976872099689758067903488141081089451566115529161118885799029296084555150424648033051926358429100034232076095526404386636701988065301735422188219086097270134585102933595136892931352547002852449742895605781091850783490032911669505634691912353709239896115280027863364870446580916480121515501905693099591619427347772041355860901388418651149882661669050875061049717153056824421688114109298934581432619313581242947902065079312515602219872392277810412983308486692316922057063405097213182793776711237146521982913108653661400580888307573301852378266122006895220975525270123494933447588712543226360232310384675292566050790898158028744671470661916372002356943011988070778676022941169851894629631658076513934745365035147758868254539856424272220962367044985406090681122194532374951057295031618114876313523703119566567374682859859837881445958395931112264542254237392385278103560616440363871250116418171318165517746605972108247319695009533170235786806011822184234326022804308988755578444646265941666748514868383213015320185366629042504216466256728987427855077180194099242758281481977924015858561940477454866369331240001226077391562702824569089317145818726216320318017402479023881124267191818498005435683183458172588224512899988021667360153033481362976581154835725807236259757946440271035864719641899120874590490741715644894626730791253011586628893365575521431428847276196312187007247795822571785863839839739564373888308951002298101214723926126960543630313886012474122174206296655180540174938023373733910171257170048235872621348529377382810184865334588126144062376701207888805882217484831906815130659796567050719824361912222597270670134122407029115921782576128810963493351268713890775626202066396447685189679238631581174279987960318410337225973921780602033554784884962776232240795393938183148584283234706642866000159489016350663455824283919753097418242939283055880097548802807312179252628434815104541534997600669781011824199161715110839202650743003731070146488141076796820273337038916668748531085034292911458499366981466566060240694763890489726022872109966010173533536147105454452931762728570139685691944438033139931483822349805293957127017520032365923147562979016638717355455130586677885049381166351303455120701097779203390604903523424439881066402651290293538855190842966726533060362800415155770928577661763482998554450934198248062746176983620093134983382577372566668070074307259435971433917912808937847756270418282247930638194385763073355507497632194975997297296959329690309458317964331917170889461664813727467397649053416055793922556747598177555980081206760858076735086362744209206809679295545272319726505522168628126981589443932299165787241153378520844553239858721332407763634792203615297732508752105001299731868609503739320257921869969163268288456274644348755223311183322582191065846573335453639238045972133323264516922148699016547117907121721631825168351338395733817081293664949749360711099616996944287801417509807516826984927559624890065467537470863621746602016857511885849051041651792310014530941630621909022620731110384231673114777323909131887901359525245413183255272258349063862551587400114550239719612511426325174947697277159885823438717181734893867011486473298905788023380942830919177967085625748931637541222268030572053157374795862495639659502615114941875160732487224583163676080827520882466161840310201851200606952821857503684867346612266027519044706773441328054670192655299401394808127543959957614704620393150928935353298685528517607304120318363829426704681328395978687792740989563615282561070190144190640893227587665955649145814459170379164126724127610661029140105509514882406498697500702601769243631407229133481177525641272105630588803526560684280986470325641847036968419936121555715047963228148792434431328803117265541281011625610476147091924230704173630437563501813520605685537867588349136336730211989442646783560465259182853227585256976821354254752539888526489214520486524325036659579708211922577415095085645773620584021334009487752498258735845045772404679074083886462144405801259592511529284263576155552840047132306147228842159615420596153061947642187500462829603384887238018084644725713753494207990020897096859295001569779882361242883043331273794818120316834045888719093257616653741029214866883096056864866341573778400147330880851745377252007278161382623226421875797396284521545731752669595137734805454678522968518560805035052737090258954328032449103764669987164761289522434545404042279258318741407858702519692712131006267354992088703800085128162868492536995750459357951721289325354845107093316746507722843406443894944320569405079775621189991180369470461342147946126936911769870351372231056544035417726561414547371203887829743594917682806835460215756118912561718965831878383884240863849499980886682933226238492092496922228736155944294257468427643475465014998356081890612834108869466166489861369289659306333104701816107557764153573509316416241477782953299089986505344986429428585691128375869106394528961399482441963367846554127811509287444308237402996977281781744571254446653049486947015391929197796519567000349112649150569933787726878538395392256998866120211265876986192944073583419056337092362897974033512149503587083379556860151899050224688675327970078364237342543684646541213651648718639758294970522587283583864748068531941984259635687281055685079874771673001873408525662502978550029126765879091110653858541760512142722045085972989792888354469556259584360243823110568882093274248497069618475427342684046031161922693566171199508161068611303648302385224415222002061880545070861218077946408948021212444622536411341743456507761623654488629116711356058684334883167114214354515931967238211228737609787437419536986613252476909827768709651578651241430432787393264812761770022318001010586760060411271075367919747285351374562442502673655079620893577954815331302738324289618472229129091503378299107530645124520522823934915387955437871967921303491015282513058938402951396190760157178460037520270681565513558996713531315862343440787800146059239229174156945159997474618384726583446183398791110455585892832770888428242565888878486724882372822654265932962811860374133705193327783057570206905997690883053312452672299884008138100615022210702190563879205949134770312481184339155540324750001989181864622876602615989628574879284644276586894507465326129462919410401080757335115301488229340446191068353928956956470760742904443512491499352632450175881390848806638688430509838093377120854433290805871769652014304785019569690432205217758731822065025374165245344023610806451072754097844200879650245242137035034377016214029995051356297006835158193992645889997833680910315716332215093843528479478575850785625257460384490806267033806135008432221857092612426463124503688258671022376458618804465957383378092519446996016905538672587525557425828076213323130048560497141154032129085973117319401806535372134312045434848023429349430636671015953109078366909891844778008936065074557342231272827051673932969525375414510672033535511029644682348393452952557004618657266788731189196135677368583235631290746659235143677781719313303552654568579655894571689312268585023633676096213760685245417022980214316523136674428936038222202253815086028655222596391781999384722749535169215543573480926109742984852873585630413971834521268410131975787978266419405052517582648015494964693158804928417769018896014496714524169384951517141153416159593284426918803078973460241558796536544236714911741876509907748020959229921455045462690033037136086698026497246207613665543761033905902120883010354563905155806627183747180646371842100223015088051861641805350606552054838587172151390772949273013106094786331223841562775448311020521779594290559070225938990649329942253080608692029421492200473058082315073296937204904389718018746271234674275110752808529799656217216940702711274848507577957859220538327951140181112470496534355484463766023412118761046660235442462823624506667101999254692489229563848459595698406735023583021963956710747254118677953801549931814004911960490709268271119967408221512632985575588146829111666221177457339385309907178224956017494816774586670469399868548547121053898884671996639010206917388871950794621988529934113999228260428224828638607968124171004477878361315258680708117512561392690802471128602988875795342147064074039359035011094301911212228129515612277744917134137652415504046424483390501819160404557843209697080978910424210637596132712868794760399631332708452551696786513382755823692491302004772826193601349724404496963608241558936493547803789082941926504741424247949652017864838529806874009214367381375419243713993926319505753613521713227670210847918402229151419598792040667000511651028210759049581118039193537070387950360924040187006725395655939709911436894759458852959361036973377197879108794990047682903881855654647679183712360765725661280649307902053723490105963235377080840626128498459549844615506694816694547065955908117084541055582997665160003457594667776839401673997032995663831326280200046851896527030905022542203256705189398846392261672692815779918622614919996767706643720282660842467479357308635893130157268366035011091726200927427520875873257605013230990679061853204522079323128348219748902288765590745959492953882559796537361889522278739771788071976182148240326265925767810073761161441373444035161958632553732838361080014443937001924761495616582395294994881125018233489584280546761853074101089166494779839924049519943638496138514096664986507953646662624911450068795306902749610493512009805966416629371981582561262642394355878801657896821084509928312413181867448203318253438044785672436685422301645601449247865894259479348318317664054056196247290667659775226910392772033849678979621354149468320988239677685059451869137561777098726016672315417043267586936579860463257615901941406821797439658560081415041005556476092073590346241973912009900924481886535276836750934297833003376837576190938641766149537466077671171510389174574232792569246805051214635779827867548489419498089728726302988524239975612816577434212770271881917394934985177911941558512043200318499944582492305385488288033263631974436988870339129661884511409988539395054515619450272522125419313432270394277880850046699678940677412989887874399658214840068571822310649679665707406866638330959919960256939241854347088029528235255570329651742624133625677141414723287579541214892195974279754529172461276983212380078610987361168783409988886565404773754415804945433179127393455933641977939544485979306165482990489614405325184375878636001075684234574140333454831401753565754657225327299180942823038292482375484447014606732627641940662704304482898892044376513004483925623040406874686723965839059442984804263331152627513495983519028216136680411250907382202388099565635829182415607156116945979630283321910219788908924215406964527210698117029480541981240848669004741848205730393945969171316546600519226776675650235211398894466168736935606983259031085855688761126185411227574813672084724078873896683125244131959590082203578632484322297108113736699097626915568638387244684935605725611068405061681420947765449729527229786146878397569390283747120389044105700531536308979261511964564342255472837569241289951321604495521082124284787258993404317835488595495902359491418533543456691973356863992797194936560611087754151691471368202073804514141504473014700593025789196467520644764379247372072087028787439572327061668084857799481003741159639328057357526744883248964702719727731350067679046387529691349671237922320056604142500704425232911307395450925639862372418385272140904622015911724715356446286631070605414075066373119271248233217748328566352365722588553307183288093984605314398123081394119651024317250955896334109618478966957586544985095464739210614531449940198641787401651982459777260478993453442428146701446785679631144987251288265414258433475987854746228341801322239301773557783252563699488014194869563458759690836606937460883840714053053854793745285004379146239525460452782484022360891083607653108812714780448931705698609509257269069300918996462660247423021185385928253451628714065708999639894358954833912494489383772733802677320023781134556084777897813479232934308544918064025692913785075956491867592592357173079995917852711296869309724910565506377212442769979446841404220559807059518125419355973675753751949836708508697581325834056222543740058547074646289727887739649343367947129028699652545105396557396614049046321855625267487199377758279108059118964013924865920045003367064531258927437834545161014109100024369913794024224644189004464177900078938825949121418391812939710594496812967721607069057651140391544838717942449486257450938955048402594133106351017649461185345830899727839881163339161240568165396227433571813409574534392015997883688277035336284857006579175184457001185861904613479424039486824164918761651408956921432226456887249101976780963866851418367097092198974669299272306465342016517404556267378274005457630771441229460384304802881618446339890309126319745316724291162278280178113117124373693704011578652386687906629051754662409058353357596803989319050913246099833468519871913136758717195743906663564720107218452888805452281411220470428921638844775871078492631426232001282091411670196763640285437792509245973733997981695392560627208472945095360590629936725081194400202866333258956459528915338657053439105748494391773351231005844758785540492703409014155952699096985048440288085279597388145655767862056519341628353130955052094892587473085421591399395036268190397498526335570873838418056588340318396904183385770082117202131913380493846101666583248794123762449398221440098527831939797274591396897930785523554182141898642519599676689376097107132558376928341918439676676357110066141909988248955208523495745471616378018339695135377020967796922526762922021569529817590761521473028179428796010881514036258188378204899910644099607783935323203498459862511710754852498421020808842957071999259364038980600485888664216159108919393748373321695321296217812853693896540607636269079873116444741896267153078527839114019034635050103948387998389126211214491091562957282685737086984647449291397165322855578750130567127166700324961504964297598565836852476895310464577039653183574887552529751810052581585552050722113924104268905399937304524358452043000295821754657311901956261584376273301630089781804163562674522277408244718158076999086124260044486007874443437756634965592952928522448866329081912526579179705619228648955098760736093610174349121427083969382391015822058731130515165660535296847068985738076919060598326604582477520239776691852950719103187337511426221092672296748567697106757121479325608921189688528471962239108857010393482964806909310740527763539040235652712166578406761959623076432138765640722964739359569582699760049604995445483321358034242907941432746991195513081824550089265412681400044983428915292767133309894481738402790745032446504935125466750238802728462733643449119513028076010958102869513115448825317438076850684560816702965603036753485649248343365294159257548604171192350359066735380944021626737647116572584988034233986009493895366735833230962813214789688789698046945993029316609527373395941249713068045541340682260366384543084613474093594354333845912362510356171036717291482074166074137396434687378604076398670786505498143186657520961626793997853908155381849623427878926371002315010851197693645959148009674153298951745752419555378397751328996003488233444639132395734331650971176611719971585976467249943282143991143305414808373669182274186384613786634151546585630702357396549131978246921748388473646472328848299719607954311682452936760182024401903216153413031733929753535507105302885876049279587780080694312539309481460120412970506362569169286207191194491750739346002838906984863321512230826802167284630281643045856786271758145239953944010197377327120391018099974452748359357743309683979692193214085125548785758744686726866845616827462469226218616538051165474328640333214071329137305989700427794743936044253656794680965562075233394893800968156294423821266780062421243012756145853374410745260929253508134385483109076950478576799587781353668559728330979996938153280037819625684428067752479229797070211665371439542172307877493894200563228294550233491473349984307706037257822661401474823790586032967854119947028436709388999371135655703433992624484016255401679920133697971707586090113859662653715535016611768565860572150755499076942482384462296162178131907774715437459876541566275927026233157115052350945268967699960336705500019395817354278972210600764279663065720585399608653405821089304739660800978122572912479863929714725043822051969488829486407785459991791811928279256671267968553042975032223842919875800977720097082354061776415230105930298390852188198004593873081482785420417237598289808744771571085665782678356502056034591101920149517010946834636844653368817604026731438287818431801873729277338004202757765736433195999270399282581671592113887406573559662416753831777393089968745847685172812152539895641915321938294783489698756899400713533536112835170914078701037404215056312289476794355013351901506361256177481081668991493461539384615593519641653474924048649176769180148726541622291356092431115112832836162276262275316958761258180174483223128684063163969366144807992193841304910347937737530799476051048311282207748957254812842098098085876467528654716961921369232905105028572595311217217451046339919083753416430301230951608749525144925202676625938604746500862043317258774421128285115629619128800014012962793149652099924767340880590053671696803129073888783510877067338713437149521626256986455667302950754795074450823721584477342048709126023146316695941778893348462984393136351809352683227844862420787945836684599054633005288556992414055483225918882526792359180627517005762402308433512733336081108908506150852870147361362577003747756461696759763216981922449974627537146151077298862387973727815793213141849243827186914320165899623411246259913292419881856704043223941742405448794668989594102106644159890461600516436384430355038917475668832784060052528611180847933077727184725535886493941265680662930291997288539386266005836728960834448790687201728221196151030052506514578508906136863399548549103908397226110580009875487833065671541474134838326012534423291827348547299963637057833413251805240883465194563376671798201968388425720903406376475411924432211664695635681776684570049932886581060189041375417834424398184917679979834328763987591890890162627087346537314178117295872091945087456172750762110580090124084597015858613305558825910615831179749737673203182006520275464173966190692373017928320083862712295387552747841525347400189100779569201071841713747631383190408161407027886602373649563906834840391561332006018003182019025063550499835738700164957299894734381579778095414969345097208977549812985868900939378761106062498384891190734546512906004780718569339286116123304994896719368716996358132674854668057319938195794442792295589099839975074702452720861294029658248148313611120353880025440858202674802862299581026328422731315460478771904508843804789861881679500124144610671178006243152118800874586504486227625103768718287412597488905376089181757241631966067743514103731082986020426164169415960752345992713762753506209937715751141158967385012006420686644342916200126050077218518285441067304257806363502603657322522105408642819317897084453402765627863475081706551886567764560640866021024174709911197922917127170144384256524716435897527757496485012473260703901170683937458259789429266151490326090913342218273017056042995740219129930208423780028109973942044229444987197693846055035497150077395647617949463741129091230182432660484663763461916369641974425608194808600474819185491765372717198316608350855658978153699439182407896846296321051645694635741118469550380599045451421173520173312754657658267845950501256037002887692793125392503750854055548321333030193874768124333415218591490395810143753565577205720732814727561523768046929941744531370267588898287354968661610480685824465217027517158376693525840950546874853396316463331727768539979755934728807751318833287039780412104171430610672571343631415572522164654361894873666403931368529412472569060272061555811049196446867915177769986046265818821309420790414657072107181246203192649838005933655182843785033611427874826008320461041287043687674343603613285281221147425729191299285408374534939147670687767375659374472243389582138614304436290613323438432459819574025872272420952321666339581418625275399720352504193871898284421580489929433696963812887336743351976740686709858301644085472285016659853132096120105070614805364690914256418936042439483643716116939602943792223300431778709614224618758280561324290616504748108823725041601324273553662512966091058552231694444505715912822549523343244250658786504955703844505725144725184455275302320501148508975935347834327684098845210818431709700027503738122372084095234424734482636832276480034561398727518193548387775348082879983853815209117695647415018612142557521658997692832819267125900213611296383581728341735844534270332222420729475553000434878120196533705944632936239725595940328643642989296176984304582907782174431165589192272848356816921280616426098657086607916110921051416649256325511320921395724286327317029149124233290485087264678970371958988668728443170058583485665708516967208958874502905053996202037387781463268081459295455658195605414575496909950948410223733590484796147434072351574582829605367636082392868923270239544885095040623131142970799823159947858420415704720140495336273603401019237652011843713847494035511515478145037492006502233791707352398104428424531121201381312227269987652097691936851409621691950006661583472643375325504112325866125276361857256026389369848929431822070481563911256184846515697390332808495935851835524090554109161700870535271831522946345568053328046365005751641775853421663943153756434012768128758901834214475726761209540464681214067182876786786545928810464605729006024917526504950613354324998679502153676408368344009588374713139092195126775288127603528352735120868430195108730496978050456211539219931974073097424914426831578460482555345533078139009392229182352950733811308185490361221732559693394303281875033338087790253071329144430053421420403956211798309886511667486549040940302232479875799457682283855637456974696021620491596603022689021147780109802251184097676186020431781552128615796525516897356608138345199704297278722070985682287658939017189862041048705933273998016320824888781755286967956157267369655011778390161463031032360284277409209573121974577022393641084925820040944036699916207469334137393113219503610361336271117363256236400025994765919803379901064839984132804132506763472739911669402126570865108710634117611320694807700316085651127823227418641204157141961011016570560050139307550036744333925226166787470354848113861096004739443108836959455838051261361419067939337999427398093466876452641398557816515880585670573102991742395869093831706474820826749941430916201975672678506536648627553385075770016064200995713487586963659888317289475718921276373310721528951754393516434516441358093675273162655464823151023990709248221720815367880570048049845610586584750860317352561267686917714958908083820534594617727684863052325937880448690915032980432095477637056814244070229407308424538924999751525845554938875061774822373121703461172070285162423867174491698175928647777522089772935844563146604342730207160168706453069892179208223492920318607779860774681872312968281425363943144553969989526241742721703130403821829807437906726780227873799461789809186111371008696511347301467781582551642878197458786977253687170955470527652560703371391326730002544648808303485193374032959615393600453272427910586461819978035610387573287350572648127321137079673011410251516144510562450265208812000689521992308394727729854481335490112253040121268611744536668595113176043073165740272181789353989034704016619674861247322794025019085825482163986590472487650154544384975464548496089656136674415327547193464917017385443774008059422250065129421918055587901431662926756860363170282095351442573096297904685473584146891843351211718720371109851214459482032764515344044287349887162602377471489832664946106706254458882209840160569138378667987457625060869103503162595981089668668365397855059686015094972885388600596196133268802779147380259889362331964204375424062407416856435715788018562412763625607735037502810175998745469846249233630210345146369842032963831444796808160096223066531706714992067509215834711068998497158095351940760662975975770993007708329957353532241624011134011353175378180163137405236833622645048612437239176390016643664222594975883437001036237004416239741189176836027494775574748459180529879687998740988328951397360268355637156590855283640931387033999052345703673098533581782212159734162089758349280424414201346856796453573877858475202530277836150751365929656058212677357187208918111711054787312184883744463233897656406586652386659266412297187528552295069697286298923344282375838686853177105283543118985559932106466365130239885709667449011424283424982716995857963755602951099546140453532861946850130936526399782259578759398789723672099496737060499763464712532324363103513765705761543273496387348242855691748229192495228631970687271793577621354681680696132658373679849362149570429412439553229384838119932490117581864715935562476632055611516246057982267166153609264162675941906089225916905058968870837201023532939624867896480215810047407038337847290244726563639650040402303262890383617761707726610307064869924953230688907163357690544093596062012941979829547039954500206228343788605162866202213071969648953605819327730024773000153250399228795789227759220263485790818677589161342389462562403782364697459412491821599166980012873813052671315017620415750005755774865852948572219148400513064286874648238562141285636223369577858291658003181968525777708294045382296794147150033083971150590830808167308715136042117308957748186726277352495801028919546389768938622133245985400312936199094238155084001897050028977656869574592104928314182657785660224248898995460438022563868704934273002192297116883253149805796079839506091082690822975581523307942651310708571518147818825531099844122091568764020629697742915392218822531098843830970808299646389448757843982608816288308525765763557622735581373692818696701965731959349868317255083238875003012618487038023544996952745000730627475838138334553535197284264638173607194002004439756670123980611336013906140222817801980414111440829511715388234849685964626429708988494340769527218617072423474251481887212584323066670665860537837442654190580835272454449989889812040608316499278137973445151356955953608223556068238829709678731616809675099720582288841558881731710133223381228674781449077088742365837583093101697926648168607618395286684678700628608830557329286520950109748096950303280897609846980611538619582880570420076068974858771476035508817521590285690391336328957733519889999841075239198300357824623668607365359231631690047950532647761975008086679506456675041507672409797606006804322846543651498235375039803637046961430206290982367755226817595062607070170081531047769130131700238550242482755926597054094778101942175641145139971713828581106522894937701078638701805547836294357444267393964863152045337216181231379277976371896093053216580149426646903054746054917267676665755888152476211132091568111400883192385313009275419503964485466572326797683662768472630661973876998050531850000352456072314104544652525866586468110335283999061868409803383659720224612660032555751836513415587363830006259837304753269788052353123007300762792302985144815784560048730555038735726149120065232077568692332920737199375592474380379348805116606287684949818682357207545465895330869152731504810570794506190215455099023306837443336743888734620054177137268105872451916702085320074398791491421841466475845904519683798589938812768327203066328659615293724611442112173465465800981907643278611159068305006574444502856340086834645347492759489241187393766100650298795069950444940835519536952355472824863794761109321533190639503096068192702933105548038617054766387147435073279875253026928367034623431473143692613824815244180211174810782904945882620058751476724101230690897907822865816823582954548355523417588257271034193797261164762724215252384420438893791559780147517337591936752437628764173967807447876032929598875756027723696678281726760839310121624299505056921312826658999713574998612264523569842414266317800315843421723013384030902481824254286938885260157479186650618692653686935227410803424584509359449121874037195132375746942179982612478518819604202099645417352293985568483713561912291480738817120597729992331597816362318912501435818168033764658916129928979687319128314065529727777525947770291270348572367056821271481915532937944958360090205666364441899136466955566413517370122066087951149369463670501832929166376441609824259009208620616673265860088487659174715476758539595638059605799654240531565084074645939838167277399137937164870698203171820599662549799225964512629553896800327642879430193062187586700379548266695486341692984969184508920691878380913051012448210543373629624055331512428975290346656548723842973502599807176104524142117184570917046552770354713018355865760639829503124056540719117427390001321348703409015645132431242465250870537943909995021809488446240869505381281873877362185293350629410486100153520546151294746820251005103742848622642618131972556937435026940169093873833544298615365904737770499567463951955981925828594256219112969959391651750710987876054825918984776021079607933839819599656020626909706077763069471590715802493337319855505371786922951538483755699926562975193766453550299712215333017638140843509370611982702028118017650938052716671493461227702169886450208722143655058391964411552955457311031841330260897986819783603069115282792512555657419711362058218274776659896289913455914873086330957723847044838746523364356364987972873727546815174837179333907230108724311234442260965424383257293405305107692604591830528005484526379009111151744523357735487375184380495621470651821742651986735034804933826078625945573464105421195359519423382925024145693263331327434756837517532029295447255924158887292052471168077587092695770494185398035047264227699923124108449481532412552819823225812483119337846256383501595790556510141804977063346475011035903133669682174379676552991843672093170078860544414079534354112247800217666270736666229316835886408621435653247871226581291512233420968255928449748926188113100739820513562741685568771180017726026458387673240243392973819253045988371809011996901987605076417500958442625911285414603645279489932377465633461425828134050167035268124821915483337236669591307373648017104126806085637537214381595245584267288968888069687082627083292241110175392044343968462005242212582046116505551790560709120664960225692726033751368105853611361246794023490481095620744794602951102426509474996093373241933028507381763955708607991169528910904982597631683904090280584122258981358276584781040415613180040500691472205536826968387353255618112390065727714759637844190724343062066702043601252765102550118820918252843335026805062706872842958023206497389211701913668177364594592743986510642173108828179587894657141758664355245991491579494439303575485840481541448777367258643632912554099965789372291045820379769802793805773489388932746737394553706612614765275527380891243134157925199601218491911601431397685943172844461978338798002846353286336600340456997244593292604466795923958237084923583633367377690154971018309592665765944807245930406588561387117556844256678954213768676052209091116563392693869466412706467428733224262953899195230389832062906200878405023936927606669082512105116777331495257102518158957341160132841086416432939976735242650494216100132849425881091001155500721729940711040654182135838694008957202355341789541415446798942939428413677285748061317160562177302340736208727542628920402652355966869464625075748112968340616181198191850300574228938266123359987974384282989444887932841274228999743008877294008555403848508296663474243710683556120437744250560246972355598774089378653142526753470029675171136771939503683059998115939362919258961986145425663391794688004043759443351446038040173925052928972030398389734721242901543798777976381633139500507303902846767955512963978641648060897503567958317914693794391377831457871068476619680200717211349671117818025644962622346155874083703508890067841665547083903909744295031314406935163755663276068723728113093310405664257928858660244766211130074503621836016813443334902271410962990602945600901259961857567472420046990633599714317925278021526141851164763100861035436283249298209022812307240702469043014992055994867114050793843719826804684518144515738564016721460773538581576263772042538338284177899929739699355341990334961665202542365195006116008121517166899599873192925559697264011044777915996410571643058726116383711521063080613277292910757703233345571219271491324650806717325568067075251805333946157266307996598952035297645699726170196838109437751843202624905061292245512929018397678790910203864343253989977357723615607902412370356335576759183316824084171146045128970961985929369038517600188053241816993830871109731680322346575732231136720527518428387102070153954327077613503634135941829404219303361241496800776774878618650092457685436275196380868221793964912083431116820045790331051171799467993632751787350493215010152218629753166866244091028164928369988983626845609637943437942864268292971501604777111714850688826195968175959704598784494453257651589077651186360395942518400000585059881709988695604596794152777921185838924935344786744923070839227223514307175383543009796816129575797556625043670344736998860920552650575437613526873733516072574351630785333088147760235491307274603182951243885400230545954593396553476168183511584097143126295215584885415111027772354016586565712174713650249675377031021277638149536098272736095450917848036700125453882211071119442838797288313835989619613828771539753163393488573740017599443190846361328851451446942050964873283683168446374992297370662958121498841442312319314547963517689004494912771393634904928027601703983467081900179821901091510385973844823678161235630793824129069123634572938196328611177067519557151348702121890623115356584306119991647103633201059135816794609796845623012903640471259363160545851232007009362251526611185582082012312021078542306247029482085202031832672721144515081527672744839626749672174109270196098579921993628953057819583774027624742466077004577368441627398466468789551645022287845190949975166538967270244908069176839918414251532488768094875243312304023893177684756727931205721687163606601717651899739103413429231425986866804755029079666308101988720703861996899152434579408556807178761816206051437919197383556959312083460362675557039084059255297036246435426661080415892541955744231634950884928396391359715988121733990427998420719004141255024019144806901946154212677449737813667985122858248361274165979750273172685854333484467778799726715805346464538767990510820769611498334080644584893459131161707354425285796769728673210597589450689005411636201644209961559844435516991213238275828555317879400079841998441967838850426690323998617939392726371799197885234091373551411651611120233603433593571353044702532175557707954738571956974222031950081724635309149528295897079817261524473945730949172344997110199965537836693294833176527012217812256784947889712724663274144368824441162833067661143815594586720235107227174125877786734814823478980581030031160250036468741223988803785665626527362029119479103135907138865043399889428576087746230554983771642801630071499733803820020821057445363726839905045581197224720558398963711317094864224075334770738413714908026528194254242489697769330592947862221039753212162933445905733581649646674616670456482611030136767349237064846943160000332693516065617964061331533208540667074086010929988474009462721058437659600940215237539115023822071166834932571477987962997364047615392078854169619485151773857585348764838934265731081209239372961603798836109392966936785754531919539609004377281071525333263369975620731478707724713072308304778264063464122240966375725728061025699968335968422846566533317911744873945650257069234642928093074924271448509197702298496499737745411635162431498078839448829608639374763401482586696994706899375885571058541073218347139243045904549091180874897919617506198886994360160686208263783809377540881977933371321760677830385445988199257754677728942951742095398632988984089283959727375171289091473337114925357151458774331578435029663717505228914324532806534797100058008192663648291624129577993970164221669709669208772757872207182176482989957462041542193667707969646730170826050087922457558696518429455793226964437809122545626645066543333842625299094491533443282563513926425343934111080328499946401216234181854617755238474757308096541212502818514640203121763852382827852163212224632953736968278197597044211081117171946871309489958137431385411169617832146915310253551538349032052928639855811802536290736245060878163103108967910417070054172159090656711725779202068517179711437949510693300915991887295004501922520129818628016156030244372362606204420176797126387646674977017080183105629998925047071402259755145654677912160949678185862697535553336635361742474234977471168985230494528544457777499185089453814259721608088827374207539739065395668703778389151995197180320200776100998359851860106789064821542025446412719973227112165036757503146545514310621983497898615486974735871626780927312368158454745093594676385252528395532197914556463230799320352354205044964254895079944502379335890038140044319935059239925021896653171934489441686948081503770283441168151476515995700369836647983719545895996867694742963952590078334467061437631106054442562162048276747414656588127454980032780101156607822636663798086531655920680789334286148196757454826221206186975847316404072480768936456230193649549137359727225791650079066913300304884178857249999327584149953128190175144353489711573966056374557149303279910092921395544495065648983495845865690989654566097542909326935882123249912710477602334551194657058443797088866664743107920932427030771952902431089742398637603961535158292779304668680980643130741956964499231156916521111032709630328310156205035332246317851635336284867205509234861822939308998657571270396137428479626034631686707394635686054816831092516168615478714845004148365977836982885792597074319668791992649402938892231390422606307681803378025658579254946102504818316852463224069078944110205399589013763470264850979517164006611981872563845734050621511360340312951561549455345134552801527145920528898907566491191139100393118752993877607585887702221790713888177867388143747887926709511310550643622781597108944208537568423136113931634307492567677681820303319928197733334353758941286468783309332425010792672985018721543544767329765592535714958763464310038069607197603647312068858156731566021411576864540084425851807609322745669248553782199848731299988583059087432525069888870028942178053979973864124823943249018208194886267427806368491215385610679546935918588526599670510601758729281722831825748401781253120340177761060184598193904032914482303851391814513233531514981916167449897331925878835112707194324775348989753931547318068586730257729461556410831417224662717909316532669922878064500392210304451039462455470170222311654867105496500198326017618441542432880335487778043023404602967973349875811416487545119586848494268696349803972438310868243019618770297455369707445941028089312405960873715388732019728608709796408930345573738384667485222361456699290957249760209174329737451381852820611083972632081271553277547051238920485591529144116994708246376207134638447188812736788761131164907883134233627949890839252848001662900219657923589879699896202009530159036464626435778181340210670747460975199354517102496100474429320454600403056462050548755926258029123013951968983920535667864619904967289001504600416170713354324715790516222836857564871191625824381769552797824342546589421450407653898391672357117084112765963835039358390862101788580568849465559174929220725927856386064854358934028559033187825772644021271835882367160754079901662570463700253508212828427299706286888425421262362517871528723707791375531057582163039168708430321453553927888164749082169694497840105228311879061292486287078841429686493097471703682465866961014588187567057557650260159229118343224954196326239875749083867667806523966989603057330175802830376427674584763398307232362427366850497491852191156747856528204561956200988775648238070011143598037795634621509746888316434642977788843620807547652222471061041834215076155970438826895858972777403315205843372823993517510961502213471645745157473624050644735268376568816454580555412453457533930007423478819182296053579922708356645065108931644592765955654698358155134606355338947585920008284571222328912658565889654083742175947816868425951423278867109729150820099164385414395673474059910673283731212892075329802314143930276783466454210024592942278964968877589765017426313464637098795387231567316171625656988610551081405697098469977513616762871600277615084901929929394239653987086065992991702227881090762654764096973525921539909876751124169715860638543841419853666311170446271377698713907563371435149763161141200949744776195566872197581193941660280980692911967645996615122734841128347492116373324242262129995374331807416608063882208037716785525354698825262550739350000702239283772894149377414260259366575583627384888386194986174834410492507060801759086946777357324860355452268462172313273476311559350299006340170293999178480777027019723139139509597108156920356115736537997683779648496748221879329216201621126005043346143155605819473142447547472032123220393008176866650816051990369887722528631094335071635194879692007091442517325992800319417448042746341666530532775655790347623660984994171993801365120863854366996376170541512090364355832752777663910502491351952348580597733228645837375973098669209722139634098314313665585422444023230602669948502244060899668087421805840253945432000844746241646524150298021219442305020750294859911906273438514290790919231794704927704639466528404440155525743936657866834515468294716145640933131494118896204435879072618919344348173921498188975011031492561744896683606111457073746609126451245602659135694300284306892050947968526590194934390701428350000618827015253562203394667565901588859914067874197884170507717200498281040834134954354020639772830687185943568801869744209030224288732587449895711079469365359008735101320191405198705684677965357596696778141707831111148191526320359143657141072537852687700578657193696701685352349328136825402436179442958660331970669555050011552587289259525193104627230743553807276603572258696393788475201204089009019371011545782405500768643401284702945194510706917772293161318255308291697522344220492762008731371636067068638744679491797892237120777288951057520905426581707198460166201651666615886473718499212251630713095936729478377227604018280284345649144266637799913012566462688082474071123606973577306766484533862076682891008787613186945359901364515072879106461810280767569866693886608235678709193123826114375408202848603944814113750314148069026655434152557664492550398614992699553425056827639438706518564188358410619395751319099406695580430913125543413493751379143796632629164310507277217619557991523986512196515535828266807863763991282735057830608759565393362684690154116843608827244607805069020823019239902188367462271943435942753355952358651552901844153212607859954196184404544541931659447044405515707333306279156281937918898896255369700051278602508184456784958511881276579306326576212178583957547812657395617017637966859778225547485687081320405922659222377205804479893171435208873212841007720949573246637234575138748991909889328922021740500745319047349959374802147813692418671509146437787310020574291472172941460821043136628743045399055027156711184436253374075140474998688117144929852138145982202066104828245963897952276450544475338980819139434335686832720455626811271244603546066607651038587296651583971168544050352635054518668218452622636924471896284434771560098355775532262042321137894934037096568154042301200535395605752793623899225222544205541347163289072054199188638167983872535823605941341796633826705065868154988232000095201465651597709339210444273259234471429618303440739080007876785188189599894170422625103851204841098963683868764017153072465264586043042463228511202732017171012618959224837995550100390878301585246349799143692075063360797356818438670780811446440107594931168794351102007244332834403052263558037127773172707467578345774238419642723190507276752545169949951684566368548341054009954600923369111833200739637408423907779454358126541399902449122613677593948178555866296978785746814084159503520177241507507123103728428843497627778515350130037877672897778894715743065989343358927253580373032386321757663108583900281095824874690161275481960049873706784631706182975055152658591969275844393795947707798974123259548746358279925944337386285625528088661858318041735748018218718780378397000485712772599029045160771233804513017379973078346443952384609377628209054206742623969218422050398726042244983781299531002619654319113432964722016232538530824877945525859807482202577878249220137226029325245069146808034898611163923702790966147226758221838397477438623734694592833228037822105722139914686133046685326307025797359944367526976452640622091670106903130900630887520746804738833064867443819595766936150707653200740663069932974618645804589930187955585124728798343383057081291513997310906401643177850853541047153132117530540336892752955774205596586400268850572322254847244382522148958626851840511906175187626890019228015359658686321948697456223143825248481646245680189670996841442247019418296204872272117410254896924405067617944257911274462811142208796364448264373110310180411396578249647835320417452141619398888815200306480000766494084501892804668482772672896068789991275658265392646927214387111988311015595135836891661147826283690550694395948286098584678728855298213297768433354786370216958346960835082781153669519646855874053981526009399334652034953319293862801999969451436182844366758934156093830845528110201316949641661526098187162836421850426580256327204547176594331622312909919778710259747860336162173897655744374540461449779349120498250634363489646908966138961435879675574398466190535368910730069343141379520324811901144032448241165970311631297848225343297666816349947670547689427384284162493177392908116048108741395911538419048940620837609805140289984187308287195988563558386076700299623958302353882696344793863918097831593222259840638454043254547669859647114329230644990553640651803931567185298436310500788974013609423581349578564461602452513730192851714014878254553106396189325737507155926361465993308870180323669364594035335663950707729675114894789458835310183825359031289625446128782284638262542841454917573946211360417483003051540532281852938059634177338739472431692492296162263335263614575712765928152674457533275995278378735825397760729555629585163667395164103957497072012675311824157970428432711060669853603594867862567267874716997665649099033847618106472661342104111647298143306249254233901649258190524094042451472249637634374918228558831812978254605534143807407630316137449027973730156283258982636392859568825255489407318613382937430680369740744711719876318377205967190650074648006212314781939051008220808011345998017592863116020946376450467516579122844931168868692257031329708189715129203151880012991826493644007064793182140811697278108117173164869493927409951154805789061940738516326088246046615174073522085603376803116207050190658122410703977173242095892569102425386633545168962878858162880822699819426534314064397513280767413557336806975105709635072778195327730527090452979291848880848443159125774947986898983899241146626791165655124150505097891087390748102342654678318796893093068149367480976158308851493151693903675340933486638630309506084218197772413322546985892335305612469045441908858299065615274879546134898688568251695646336573355495251518916291653917446843602640913813760859708361495746859365582765296640269135398832836260034429262486753189503340801329772561384101001166238457701445394549051130916763978516436498993491108110359544430643693999756187836256231351931748077104245580474364629894145515993433465922186529847095735789592558173482211341248856514637754323360961417326003168073489334515816537912345597688714733664989893759604026316024179277559740964265004063471382799753651595166793461831469021078417716848568515862556888135061826770439297054716394174733225794603885052179449335361909688207221484016476882510612677132848016018037553205744631846740783004669040812198988995761166988697597674612739311150490860162052794017522864438599577210432776323179065578802280601941274533313203243274343019897743617046678072188321652337971397741265341400806058645620331448535780576539731706023659715589869628134629380774938983164788654656419792354159352967288547882205063045788898600996930989868153743260193580673352537878537241336778854850063385145904369713222166779745443673558449712560088721368161895232372352488395496967373302178628198066905861425622440248310239517378014981848849818532636490442661327446409710556468515526418423229567960414343614132934607116445690418499030503797881300886595681958422099508002521895115693416466214973200300738721702360350886119407107660794976306349346468526111296606659219036408628476734266917365414408828879433084228789849537781672285767891136451770239157184073259715919101449511159905413490037051927270037168019239826575643727760502312081352709739318981135783130092195214265817320351346939454730358110148904722995726920918902204926418689603097733382870466486407746583143581639053493104107093366300349534344707839850229729138694384124987331118760700774496751640961327179489987909903160968733585414807926858001323726741212459884667175413248883861157394374306916703207239101896383006988141020101874455649409758664143459862661012424451608012082165605377424617388283647726554976224283538722436360493425949208790761359196389463215872974904620897159414949321637308801084331077258551493092298527351128910822460712113165890866291066933930604186480537387481811603763816029652915891733332408452559602231927466039619914108636046563426123208380375947345219718754145173042022817829813872188344194502753171612271880444928482380684073586153284475516826304294765338161703315619803750344890268623348461858788179070665144326240053175770025638358233361850968053681567830563316930670305802677951929662330446474429745664788786618195259438059514047973550203363009479677764887381931480651838465475435471349788931433152150049940098352611517090970662298062991620628468921484873247057296914502762346708092976465504196166442020548322190803332058492930615381012257767857342194420794257710026082934033550833682397312190973512244889860231608578837864278009537675181989976523006143113903012751882749939435570518318035877156525696954364578449738991853938029445460585269218453949129102099864037498088419910812482661422192773020172982242002650724255187654478417564038003752042985135266137595868837959354065996871858225158180537294728504468030225779684544763410739756924235903125441209601879166372386305006702553130748243000127169393598779966325485045935271428708241969720420562523276564468353013802665904528286927455531116208098641071467600144412956289759341573777478420409908096439500994098475426681495307121039362792703905917978087165958627082693201190106738044351037236083320634608619792198857067987965989464903974085689334518247008729756071234200763383489660756067978301490097299511913371102313296392889844952865142486560517825489067917324575082323651124206154637867486653137337537876573337192529213406040208813005722341020107581579277069111571232566846188957891511092850257557408343386990518550834081847002392117188536193493558483155130393755623765033463515188066461981440798392290984857761089469532080051498421235770077570471988149799586340279770074748174515205846253129440261204169916544876981863404527124657619362037640625540153621744423598854390314507698397282189794660840150760158886804412502851390324378265589447857604707534885722403666284273994387818816498560482028917029572728942789640899354993754043709616104852600576184749886127053649460963992448827604972162299390589425178922308883804925371612182604546919975901769910001385496003531844229917291136294528962227614798796519298191708117973144488368281613577905534492789107131686362135656363691837618159429099210773940260980698387006845024251689499274018590976842800246170972670602552798911502064208475057371470845422321658844326538803574144622338993504573433206569074589165758107377011607202130974263688894586034406682498869397439466602946637335994013453480135316884312236241861818533582738892417954845160382312447561639584193947943958872260199559842210971692989647120509261232477913887787188079596078282623513830355979048349329605325255556020109553132455991877324942847052029550483814324311393624806873597461390096631952432450924389026809511817265123326684685813822180385231250681574390959078755858163510875360558801582670729591975914129761873210437746460586651786189411245478798790725303423256773602018320335464072009661920631315023701915263720817901023074472037526166591536672923030375870748192876698281545944032862509329717771484083024497998257139904392328610584474387992449973721364662109942762872285395783389294246544804421530874210340127725540327082182843209912342682047850564821652734176845391232883437366304815093855171860901861389883901931021031162910203302567763666020342813301012871485000105029950605204038427357363340700986065883223969339917682566422438204736059468200846196649282433682999806943100599064036704678657834882659278230377433144614353527356045188489567797108156017614011675727445104124521006635393205820679683611428133788701822703692109288979995628348749830853818697930228553503979937220962006109414542177970191415113703173940942176058543527254944382155321078495817097337389969834605485342440480528220482527266183918941538807914589921632366806983844638282684643272149124110342334884120457533479430265998334427178607137120740546223468731729454914149010172784405085494603102122171472085834400220148517981464371769625360294315315073900833547330414040841026363281739067845147487316646797697301880670567439656443632224868078352391425436886772567218589614452212690360436004955576846269278210196236998810169973083129138671552978326291540964789371756120009811721679410180034484038409624482710857197452857660235516831187614416707975555962551460798377981170684022805548469833103918877604672158655762425933202819286599356821369368778053452133119190436283248942137398662028616593633671172671319577359127446884830310195358651513460181596354833575825113014182196622364104966111326436486136374455031310991779758730389661116925023318171862736168100932903716955690527776091137085309114674517784998524826089452071114425548647122004721492845817846699921250047080237859725231545851256452058697088518416885320938628690445159390567668613269449419268617420136242674309691893234330502227522796532743631048998080364528878238669105703710004009548233150544710199577360076413410077994878066918590011842878896084636392788323748949654006523139886647024545805979569075271645459027062689382901910888320712584231860112946521607397138499548880202679595869761234286464584474426774807628952002252138238927061875190683629272593723482346312235058245427082492432805160647041938297570118842098800013597864594249004904227088949968495124775219438319848417469655167462342336565635299400240852586259517086219364498073787999835895714703308757039391063770701526448054672347670656478342577152747110662778968977982482910917221939238241440272107261438010056592462842650526826147885230213201623367814467636012299736841892908221249495481870219764248953087713722445538879489554744530877180915203076189415623774986154391602997193662574200826080458601035642097764702806840751755074930190804031700137379587558094021303550647370240610288252288121568796450789118232989945483764328726039239020563529493517476265833163557805348608920309317363086135887990169114339086447422762722734214753931808059207915902365276846108634815605280752717324500602107853672667899393852435485534395879495367823612030939998815879977110798390969530100179574588995563563645723369400381484592458580903194823808249589004336282274430650046719497107198977292178749205047274336115260466179409491418296925793987787180569387182239038961487895668353835040738718856454123697679781477897908871042625630982330836842064557924714295127028415529953859922530329787567280301435627735216711171291867841815392220190309125035144721339440862696642998691870671925596656230780971579177887502308337994677573635274155035189308017627234657164282922783164395860648062298491849901008572164525888199345322755723180020432151365991028097793414397779983980645216095478045823439915340706565865830841271261229568313716713616901147429618493056995162368085926273639225000030661986043835626612724506055709524451878803033168237261924709074262021812735404716053066582496252505401075297442153642472689577825544499596911348052683703436508481666292302728857105635161292402804342906739889583793510465019065935207038239233699303300159687919512158124326365030074374164182881030531012183168468586355540610582929369281257859004576683595954664849679457685930783688160361810488889637370358465500764249859998249452605678697403390524320696287639004708917701943056758569641106892781967640965527331814922803319367758024288101942068036618638488235385672420246377927691120617057289034011008029870929823496639282481009828875928501157629534489601764963410710228182582183162567219024787242592643678425987167196969147107983528352080792652156664097272188748396598353006963967279206093616885068660785421551633886503940985425967745313760636070380586878187536552648990693705971147508762534029458948395322571001679897190149639043888783040670898381305888236262888004229277285212678141764580449337107341334343173197816437585759546227499442974037504495144190018407497836137634248963703028439364663434918129382287101272480759961336576126356634967912142691418025503300853072610280487590987651322462732462270926039838196068041431029532540747581904609753934687588444191349471795371810205410934489690343629353911091053537033948984262241627631389753103458375604386961527164369800545757239678307310230013100545588285960183218587427203814361959327292492114187458252861427925950918798404168920763001352767014264467692828906163468881697916357263471580183595277257847499726653813823861603318595749301170189329165044408212382096125953183556189634384496602184887211864339379705764225291020634370429743869114877191263213926364749651632591655357887043213687574393655460661150737057862044333300643703213711471070390203576886167616302724717836015001223850702551168131539535759555535485237654681815851500465970253108040497972210705255103519221813268811157538745794759002711068254553493033943958850786030154358563183874468972909391229519777684783307508360284608483167657134435885050900152248328873898777366821356589645824559252707755651537825308884633564613553761077473116013633280781166199036158065902634448621271118492357029574327638730627951431378645742049213495273309368538734903503068695756654024627913535409539016803860646866663225829020654225729579290173935808732971322160404733967749418220957293923082104779325250953890466550414621896333355763035078043128345490187298827968115100692048426824606596159467575751890326081373033596859286218848581631553690048644281255176290110061967120492596229658063020580899167098835875992909864451048134722618378566626661128845355855471428474272581993396577019777998214872980022718966855053835855917654346568013870252360239998125599997997813249144680845218398837202295731329184618282933373020476961377556797082596189374962246814030030634023761074829759881317560409284312690241309698564073908652943908454378154140016321558048091948009404592342744454692766130595698670924209245254649682810163771011265265248282833848880700583424854992142875551348515598571498886752580231904320438257668220350962224202924190167050855766809809164782878743295068334897106597244767542845195066945692419176901454938967850224927952642080892002962806026733981791859564590775091119103701596759643500237320565937431656238790925531729530896183586458497610214434959152378803024541138262413052896619971760596369901929846147237196980310952803040996165763265456498195870886738539104104476093885551150686971994987584499503650715741257187235823061153026670923888670373442787703070240690774614291150777557910322930657988298915313562409829604334359906994406304944616930186072795499545692668311416771211944503139579486624153049211745859498629019726927205272182423549260851744860190194242992116685192576675289004416036781452234156141557422810737288350965088042096969250599404564486247700262945492052153381123230769431442824484012070550304542903480303302143593050845343002102184564035155306671923600358813227166736236557243839034607009451203698998748083181625278533158855885339772428371597097034825382422029705142032240762039895466624660693091769808846295400296817540908503012295230064951209207737436407650566653935699693936105033741110892806350136552987681812722481980598688622841332492774652163152814380900532869985590760239163906932895625338248905592803676400017187906825825669187432164329550191161779912036165780611961885728249687860025861844008732636401917303464443553875895804303006494698379592964517808464926337970486912001657944614488920773178673184301944408572782389713180422999764523016067598090162748755699475522396097069009554533366495600749676549904162164307300554797375415046669149969254211846969150125696755173659032915331471835044258180642709833298534618464062188633733143502325771593987856475200642510839230006465272324721851482954001352893530877764510257650804435301697920573343373799769836805644754399214227821936494857059340123517193029058172766927878011620638063747909441087118036190997889386794057034562387238774911653502246968042860526106333134437323799776987961104998035762266114575772832264253006177660281288863085367859187438668589725098029495695527731030384281184737813464994510866930754246591917731016435201199531071910419441587060116241272107170299872154117834649805986960356765949729974227930643796403563354697093748004747865998900894539085029925730381648965028475042790549474642860220401177101903987505177059412068133783024113150722952181659207633440848664652508659338739251858939728131937074042270835646141486438991892912904634174598804450323825132017834268381001377675919702236705762531578912478037087518699325139949575990205945323580912689437009645157547916186890009237111296057696671644024835299725710187490637707780159509528115237308483485364812841305712304589764412963751457981587895480888159177597960728337497864070256847824013008166614180012192645027079497518915745536979638222021673403202843061310114453072991809681688697522991295221440186099953969150889428256179697542270300663722358653510648430427596077464029444538183812934236130383896746064547093962986840426070581327369317560718202133879119569571269264936225667826396830294801282663671495580524571446435903592203243860592228096638407693312983876978100687437621562960002439034228528544568908947592419172616412175583241377375103881270648144150658715358375413813534794208085012483452386309827869820297002659872988464120874254401120039538209798265220523089561546974310989764931735313682823552854721436773613081705380585373264325601354669931455089325721042885540863255272831148234114453406913067171379929829884439770831919090135295663525065817146277536796237613493717486596517519457280112248097993734092470203639268185116239381347965783786021855083649348303652399584360159672167951847906255050947868644839888175045448423125538377542656046426305256966063681439912165309092565064393371171433983143018134618362311732171142470466128537384639923923385855770798642305786242780428108687675617095212241566410898499377584536094297378394324760485463441743602961995998884325108476304884582228899386915834275320081300443570017042471380207766072725724177244923317447417741966065690331714422336442705321984073474460751415149211177948806127191708483081372848122787721444082058734589131051967574022724041069441010250841133584719526734170375367455015874773040056572529985408398506157281841959188113929891808016577111573919472321409471448785976205623751346329788870130016891268368365765894507928634943718244696161172938930359778912640194329989722131850802522284595241098326799466855226959393241304096607789910247977180533221941999086857703500484359649321109654642525203401488453052897678938269808392748837672673087620216122138044008637981117214844142803748235100689448575326154770999318380461537847178934749415634404897736810036165046143880681624938702226572754366841319959974806578142197458655570914816210690846261082127797705492652418906287930664968061757060051945074329309644928444572410722536125649091999719295161186253050057922172232376350371896172482989636206322240708403399107733691497164004107156491232897473169539346736881584710519326925405237206166829186402758381680149684308351013119737732507448951476266142500864769944743659388982530425408793178303519185503118238049897393486026007244579819013758186084596073774221017197206343539305677949807665456680386614698898035726512973302301752613130965789115082049570352256044621011955489816883247154363483474131451942147810801267000507042697769308622599601019224457152393233499760891131214923851401335679669831577571451915728530224948524791705467058461637539823422032029496492520940576762161790115068018179358847462910260213780265753172779476947094554709780024115411228028367638338766392023467525056473566722881453112388074390677921762719116158450179083581642278150141646429145623862078768755282934405183345655850041057550222948231614275940803545892066213784326426318114285226778701245296507999756844268403016947324741165234141640775425326069492996255914051930491274098870272382090536961723781220181411105012094815692189080337881175103250468104096988868244863377210554676704096674218054349680746060953173155586576648388440442660185348087192270072096829424810641834887537289874122004867191186807646266304587837940544069917724700799066275437271558850806936066276919687417398989580989231456029570348783122721762069284440534462310504982515881381052031006191085726141008592570837763780891032764673402523160942095641307109365877803918231315222539300328321276594912074523473387185450276729651637353234972354634306208887551847587631122877293041975975324066601983313657939109651482155468160411558462950315070200075049561204747607332387910058471257443438064373094417488876812882517378155177229396573223837261684760832791280071114677472067870650549496207392060697464409766938044650844365332563990719928229935756934474688440371182515656130771581542893848299924915996121055467242880371796652881407268988786390397259023474234591266338601649301474092842987428884701663353833965108707059172751942358611804078279100591996827745117430267407860917137752191477099296816331391235673895244333048342883862121098457361089768720704451492058295984758279890265744008692399478321066549018247455284279616701629493345917553975113402237011089399040882127077773879808266427831106246564162212348820153193607221391715547602019968138458043648169985307487465250700691215189278090455979910786992162323970847381855514277797293397654284709161954567449948946792695358775113428555982930423769714451710145049318505889833285776292243891707843778578605552876325966729270704711398798689243859990370919616990552810827466254321107081854638312476060229229874833770534860269109346059112802836899245671704243822295231033850460075970435023388114052564015209603805249332712931104063921115786040121473986194120517882198405438635522403735671108044392062594512954517798307060455891566204845707573868689579605560674611196550830302992523097552503485497651779382673248423827443582915754966457508090562879997458856456683144890190937527355158435522731623432005897794699358377961226348419480016725204889198717942149732625070935661856684317430144515261619918039852677334928208442762383602840008822635294338958746642061296449172995965559434610363752809793554616065920096235048735370229789529633573797425178035945986305756567701479105420566512645334251181593068793935167485623297883762588641981563649671397655794720411084586066552200752899732909863767449027879218813205139185717450501814404505367774601317588608833623572962481225019791900571615773038182504847922146684475262414917152887874847337125553744938858311403890259058371257464723648999716287277337987909062157447466183241020075061652027180437941400790783023261651299947947395868358113012672650284779154017568547478225366460560217776598103385337063985025355893197732014218722478013597466681222522018909131774234235426990504087066776145188581457143210167720321918007798539628654306391191707589272009644420223378167270271206248717717656412017591417589824659650479769963907365892923523820655154064485971910852796471695159964489533890452387512855704091367125982846736484875070457179865393859236332631640515116738952796437937267546764325139275942864687741207558265706988985322117379496650457092316968186174364555499233517646310466597388896107997519222197597746411396797590282139354486335389644651604228114728121199732411493260323697289563613057639710238074507377921799591711942172925334596689526075674020032770922114325809486143154521499969310034955693325511433077607335170718817827092642076085340070698997356528995276006912526104024039951955402010077209121228019327833696866458888636223844287076570491561310005248606276298364478643518499753874684644479657015479024218589090002422051235019921417673901911313630231455281029744274684568085379758442349432742106416621501034735165035135770407179799734061207813302675804691753064152434441849651392177121091578357819530266016309067890833465959301063166545307386112470726769137235760612628109365621884279446966563587875834044138667535594996163173336162002101273107156651703471216625157352676845411449081037480734301895895314795353187451106143198160605270139304262526059818408368195474453566823282444916009316648947929433739898066914706899285949163702901691711412074533459252816464984889531982995957034580108819858016253908445980815808490120883032014020491160196880743934541662168845638381843310294036977226923329860601602245361699795315657265323287831649976568507288408123170887973034702780117081875793846722376824405550499895725337212080513765913322961381200504163359061384233265165237087956375391821655956803341569935669182139776281191959682073288405627017899247870333910425491747536624509115868202546739316149726644173974751576535036942045194278305654727731726870940617703660359224320810416312648170199625901935182686970862030923631906930003039068831323072698179526807314709592371802895321957852113831796940377930992165170179864963262658743153576532737211615541788057715988144656574170647530169256970191553620770293969915814490341440378848985069787784853681322320597295927599675351984896693491640447438317917859660085821115550175135889309559831518480907540736305912370782808457733634823985499368518493335718264653244274927431276945792897733438925049785018937635992555107133156976742490486536850647294936557716873427417316551484055283800925114090625729081357332166333519150801022033745628370499510175601404253360907975455116727491943726417044269262693924319959642576539192487403788801067966607152612090426287685464475231419084183283664823030939882609831694669925357517567333358476054333613291485277467890303618948898765020997594492630406304141107614556134327246995374908373814598476826542099605653374145858643343009481172200883966528682891332130074757892888856821993095242944616333765653902902974312774791717930700015189732367535763487307120749651628919364780935064393983702980782096324225897267053499979217135307143745029704837584191829790423608525312119786582423591810926536767364735198455681244852532316423733651533251924271926748706384904882775083438856439667773308346963919824822959078107328183785181482221483666665349711693230381413335797598356715286979584272726713684648362891095768395288856625793897808375023120384924824860473616520205717883030497367916620420362651210881578702321513660182360967112925887268904200665407715778439271577398734346707773376403507508500895101807629241747844239118624363547913347734752376485760096741136534270293809262021839155906715061358459544869284298524594215238178652023619793470557088768993179177865683408034402727148443274718077245355957445066067209723172281577856738732682871919167406734323339037522148695920211422636155914413998981634203832693769982572510650909092775461510664800921428305689712293897358269785744744478602390713677357745107282968824287908735044796117939266083567398676516413066982870131365131403472620293261485439646485552647822588993246337368534130581079665268302651143039824204063914990811207539000896391539809081582638321963391655282710885954686803234644157827943735562275172251278833621555596459029008967391298619264393565316508346529657597517407274552922364935907901098122155146026269259686842281502661970293033394770028802752200847820440010023763413416033328692322108159100683940665402370841615505477474969329345278551493738523346710360757313381960994282881558973812690856814882748477280258175165772064559682196478497707145411798249200584733244751131545507151572079457153446803768693188229732266883281983987032755551921860595274523732924488983977722593958835970601542401245311383903675013193080051814457716868956273655844096807911346104579860934221592357633317280763669698859447039927927386336660688682534437887554124265205283570369715566919352835277547534791853320189999690382186830701667822639410697631371507868093702934622310295775231590083514986115251775900399415863589970895006998274576042729823747337568279951164373393370990343457070945231979032137704982563360685241256953033951282052212354490808194643633267528803589943671589787024545988158812657282417529427858199591751560675665336163159885643486287548016917184951489453445441378613283510366250567479603448058280843434608870209594909220684240426331554238000350827849272540368095189386588938213070811956378977079740481607393083634313364771504722333236210932382871552162916916460644920641358933501737323610037855080590629766979900790258701226634300876090285359625389179382610790805537718260891218767448959499657970804122009196808246484365197728633718267589461347696383438232918113173171205334939609609962074143779344237784873022345359836146403763342108615770559761492126550651008257369350921403167275272785013230250525575758222630856060987610369823989768067811925152279603509505547891209205398983382152513182147614459840781594390902624717576929239092020393248169554567248891902293263079919583783072721984823069020130215659283625656677674245780599574869808757027193133319530486630509266525335860076250740906363707439260835124129097331585818051786462932031629753441313266172281900076895673291807204305169508652337353205556387301222167548233123686929376929045811963228368062645966872959599126687888983099088546875667004144392935066694863133729740229255610088662860125486090820851380406360029847729377925977630309707592815323261118843734740737285332545334603931057204840624219615656849463240789513641548616563543004491087063275293088915520072925281732984226853090600233002549141714853573853090496625879673849207001599920100961829870736955034862787466096335750488191241070301705884867169613149780068085318649549231741269785466972400280934162679987040403320332886046512434148843292251477099134452271462033898238481181152575969263524257799927969660358876979534149351357671231475516356424266573780764516864414889252331858301493001842151135325482794629171181156767157095288992187822793566962836110275576398923821115507993471702946436397210342590377189053482467758218557488962736067670182027056185868463968477910320346608381675771060954526925226485587602732591264058220859823353291347922948279991987314304102748953024741642121118951781980452145203961795722843893069273166825239725208319606410353801607619609665041592903209145511373968066304138194652621019788116581642082406748788143672225336628089253518613012838907767570721820480885820412869773850409559709208874965752732262580145610606590800987035900681522284528773526541810345419579936753204489184835495985023477364970474780721966936575206056604181824004320982349158557726001746468931906556455404695507206090291690176751629157264698325246128374387050613171441987313185845199127309646855843273594640982322888976438455815920577824192594032084440162577505825887145990571750158048791514920091709017764291247814187360920975459017520649803604683023151064544451299793584721133653669203378856118814714620851808697630195273782682312626008653985848998718826589544533316742881182265711864520335443889184486312492786908560348792939753885936600888032991920949659145370246956220501569592763076964438674020938427754059517218412124592686808532613728368262411485452998529366299604029556330152380061928098888157141732199456414320587337883399831002736844694775596680964938356001214703783708821128306799973659486543503655968152334007538279829232323401378744492957339727451803838394409488906706522337760200984885158954729417453269914269586797222590804099619539689794342450276286579477876878267954017916729889944799870474541362468550982693973602741186898634563499285861117706257886134486379313403771960932517297953112625962041574738825025651434022284532245889946331116604034812486609883879716366526890371291960646650232447321835427113138339181972360594753800049589391989585571365237334345784978418543758246657923964310770475777396462609551815525241605305990596257594613373484662437826665495222410225536221900644225116673281575623371516782504080898731225691341178749381480778204771010205231103918597307275573779324882023388049761010341083877153291289672945855146755344850065642926831998850197059951046932307253314188057440436400561241219832787352682211171169027784959909762248789076762497958473741815495330327743457554267025391290116246623653375619183235651045630178648263298019300384264580759593414522608630521533743724344290059726345346784536126307583849081088234241295844735442983080833337662228935295219962791909288332390524908897089312455667561195572497527257568528991601785787042410200734255220723048978033190156065426488678841324161087644204088990144454106402741235080563888690806493579234181463762843447551270745990078472794250685627179510383666501699936084586312433802462616319153943139027042644445639974423810401787305347204645224081919676068558950166752191268506223598559964484798869711989417910146280454375850511031910570923442426351716133584130125831035412637133890256724049836681219908961101628183781835595786328640173447974391362499033167393742018304890962680705244110877293797119820595282737938700226735119980530568151355034503087264943418759495099955921279656812796923398261235449021467189675087958220850380684121406077654097779363596468970809171212231559331518161001675438859875703925106536191250907034985725834796623651337559130962895481237977481100895816131922767233560090566539955923887914447669990803996199133447799427602481067624930148718119216290262607533716344085073330521403031954887919621758188063131085557381775043303128869365625930056706673899128350198296272452956475279355473611619063583531069594256622679077249066220475773825577256690532843396729942870092957656942960348831438983142200894107695533875641920922857975661458161562226765826556019766389913072148472475592812588793326000452291592966797977080458893777995068523795244424818401170504125051593390934326754923355071933510923577520930120605625652376316701440166292439555436810248280352376902588604969873633164508306767700307968791077466084898785828023195889629590004738212604851882957526854404576327136586073924105323489701703667484145737535473043858963189145387949246025741694851362536605921110132934101995272456185297400883866109130994266879527404073970007276757034260194750651075944463964386448200415809850582706269219821156835033435121573305403984645149567136413524732444974092809534631065251320345680269171692323666849744558901654171852558633460717507380427673536734795010594496356822036110870117145589032424233602763001100871462996404914643060839438661993041556478114351471133670556183290368041175342977330744764451392559466785147499856644404631129986761842087540741120342324528517474787097709852817579700301624581989257630093322473662110955048988055589940515041988386303557719283470096826419442418664584699416528015355296099859026663667745781737183948025945821698297722664956506013688959145967752204680215947233814800379131991779712405713729031826490100446226902320861020241233362820786505515944286969473379589201259717193416087396194116947112503913457695269815718389057663616976225798529313619005896472727504525183769354496463581467727351143389605909660385738648737344440206050847728604584091640233312737773278028908750982464165199977132192501120551462354304549874134771143004652181529125176928852670160982658647958669704610701763883726795264140075655470584308483904416122850189905430529470423271917806032206622896806538018434064409346946095210014902440636207695108238860565753339319232128361412205291264224029055370371753993795039467149758078649196195384510599542717344156664767808076470350681487521095717745121166076388578103135102145476347083761357592246949531287951945681750379246318396515629774497581363372530698515017862569207444822528677484896562467550280713102758133330156682076495643121240865775574547042537295165146397704754241632107881180495765280706634759983995487509056740772718021939814703715113851099766508845888828754753594378355604736812944752709642194304034044274294423261205099205464894647267284278718588242643341078908108256011864187992009932467586813282181397504488236852055648112239769481662649727848577098111874373223736116052909819332767968587018056862217652710417232873782052936119584074406158320416756815716687543257173827563473574538999341717741186904220664487593546862310231987331469727486539987423788271940310829730996065618462768644676734727759664543652281104581512335931051562808107174633743314613749861756531679196959244462996469460030744714605338439509737173226555048700692212517610614734724351602918499976207192615985971520113236778259123396082124030004560859035370226657696188269393427595362687666168061391328560617885539973608228144776644600141482971243788233713400378020608160424597839775452453494327958714529735026807397143231721169903125706393542522043733338600330189716847257102682474294872127829923262899718493565513399524527943352690336610789930505462584546548405892873556476877732485923663379116925107442716533859397475213023503771207839074012953042318943958339157499034571989887665140619768845594973762910329216420939615055228452778689877890239985099188898974064087230426794137890258465731848267659272040896509626474669531009630911726441684711086411414965526880185622099834897635535792156805342845607378681612879442912363086543104190588370828107754002745572516665158194788030905540403619455440675940201701529354748014714379962607554330461560002986956598734704445141419980531862553181690646098519827985150185118497966330956999119693290534877060640665656307882521397757417664557601947547392868218621070257413257898346121482684790773513153259919832021856433815327806464105551089545833221211626436148268242959462369995450462303315892204933845115199825411306817790335629111986901251896159987011975478984026181340411009871666131003480238712683079261274156984194048208449843422272757279667637464742287422096201411851724291842650366548203523805304494623012852880745877179705386492323023107929689339962799828033574656688836399092914632614320509181677764577734409338632434304701277923525338250342235013458900222259486397856720513514220099322973026790169255610774954406132832663392649267908454355765761849265078647668847733182938442063905873622094108816093798518104544363431293960864123032051971729293126078587688632459193118194634812728065825192589509273322368318561849753492313715099382646847466244583711116474756910748023476931444296706693211351983840838807685386041883165593218332492441068365773293671245121872082608202155127418284090651995580159385451739745563601213893950234258092126764589642057698283534196381870436093153264368360919961565974730551400830678836621047130128732905961906660686298970271492744011737766850279814656673677260067287731117394742171296138641340552245013698718420339114783629254115071239645666237208807224954978353501708730553952310280659204632327566868323535019508177067634376782056282258614670570672731209273863092052540560810363590465219634542936641987606233437555345262612303710930458419475985684830931216444875216300387337088854911216629028546472809663626344541331761090692494966900041666201867896678061845405638226009676748809935861045469965753397878200455007687966160321862366881988381820633953411556181095769951779236221062452048966718936291316699410115737551149363679859229282349212297766591970729566388559020626238226609116000643834855296161814980597631481982417218339310245141261750749722720838821209993903167052558959290984495023623365961654187106551842748165366396589997030348439693747163565109036913810276740959870984655322008536312990914005929834399407805726994464313333079819531660494875743840067337637905446137423777191185680778006865621655079782646206605934300417448433488608636666220887982494558378954634142759106474443400298496789817943923496113475090722116296560053837620814501164006977921479525516220683574609831848165511112511484029003514172921723406781027324067130461890855949207790843089822035370712843480141889289406076195734423566446298312333201093879232639471425598424989725076484754756740897572202014237869707218230687158132811631358109110783034860496331637261340283369471940027331768429755350842055989525657563988699689611189348646987656471660619075647844381892533592555729367613939225296735579859522658717257655392848867392171828980403888761203574115822902068615658776275697784290503037079853316702317321946892851714379733986185232210773311952416904138677570369935164460138167113173317250499142916061381044619725998567628323923322644111476606705744038921166346819405120412737648148964634687281681353021629955040271077387577235863901156462107024502278976848204834428087629012846763367893341438228196385384549145638878130738922622479425688559263311883127215150790579988488038914080091459315848018097284787867709019197852656351302338168525943662302459219326698040267783566469330393082641354929207180489261347262099605951065150403680729839183914868047833656859761418518003061359360060956895652464843218343620365526251573316950567814518610642795539189822781395864564805052466577546794157930113135166509239509337979366421524563182131952794293082038907648331353252115270340034949280308367451594193890749094188858668474431568311290360296654585572558047534620822345892981570754662275016305513849048368883967521256553732968294065779690201652290016139836638654067083029393435968759193343741622943940646870816178110113101012998985825595599768555249298774233967439745791115608787439362158300366273098065708960792906322967963499296357097578217593452306915341712767264716919701466234590465229174042287134820363499678921093994503938959531761264251402994925691744769664552650040096723014735562830368169457476629316246754364188794924544061999507083861209857441617370810847019834428401598085483339695948495966304134832748402161119470068472091664181313729430510342251159221496231717812136572919830903761908833543173879943933130547985458243266960416644394525398668380208971243395626800171957742277489654354250546143885854582942948430742221633784855857420556329350618432579848415787054844155693411306280141710953262676003364971738907793223320006262414547471600164283731923717130761216668592825213315163533617390716412826885704426090763837215870122716839256372923716286136708668831518418786050836603833166635082416681850888868827163432664225439048847392042880231585400996765804984661233410207632339323201925416260144875325444581343634705675279487376896634704399266153752635623444794326920324018734702720849849653077273405962421738916370972338496098298753041560052806119571637105772884915343378386289925467630763407920417870355602059321918488237810293815473635565407696575015833160011367720820811510284023096895277359899173582171324632329834499591225833871098225907246194846227714525978461280095638865392479922167172826552319864944641973142386689045051590864460647878618967670612664250841580560079019636308552906059846917648731796405632821592122480796235862560407271346391825457167480057143071447382095731959557403918469622314488900857950511730502396332961948706486125805357178298712298525105934016856542718235067214185568196329502524747319797082392768275635132029796446076529951863465983031436629927830105321108069497116523456163454694944918235065735915755062986838379354586797534606247721248332907193585934718796417713229227683839718219433703087819611992618867260926511565181020731171779210854823109779965021105907708092829735225104204899181529706910586855935113211241085898477058642613118264530999017353444351148047779299301953876463072881400795464716742968797702626087690062454017348078213676082383512203357457362239152192678680148716445613375395136504271681408915477814176335048497276701814838340120864363707486297011201105507738728153228119254657644322826390581365266648144869000716042153975622954159547969364901211118595245287887857110205778279198717078033767412220537778870991294456691857539186274325907162997684137053917729446009556590763258889818810117563996869134963038312789136449396003317202056744160731862933967741961683394028123529580351026458938157880626805448171807205830339274682514008034934000877266415556212187488497068203987807298028639379952144101997543064952135575940605570859431414797270056395880127699250229562069468419266578608505391676099696691669229036454070603980029265044819693584520818694620076259654178464190764116087961776457026903519434349371248481765866181367512735402501928727089749552185768243902595085136901753917909483576737485209028445047919478727168237215702221469958068309284132483983349749739277357753038659826780096434151849616049658401497201815729110580396048144592877433671362737128513650974973568521159672689678942291533819250233415783013362724248987148887707000471816765639990002245633043512940086298341210636622575801219653542463483972836793096571134763348681190797496228176403485040257203781307996965630789188427466535146707829120590170595787867772588064089257622263972715173642136349567072788587736935987671690859608936528091148228748137259432041688876827464161562318869504775479107970278081927664599242956845981575058487680282197719633903721708187575437944300171826810046666926371282712399284921550373379756672388678721397535880648169087734327340778215599018021051177287361657161857821975367889423063114446200807396445814283915912194162987757981558782146458990874794922711393701449726609240905086033699803466982558091637097159658571521817591950438768845006061584511825312678503534518918147833937484703252008716867025795013162010876844373862068921182184246808135765782315224426323713911249674428648276059723223767668450877324446706147839673417333239750563934324842356466038879213645296201873504403979224793145738672317037828199299412012612437378073976950846779236068904775235663584820976846626699618259950341946533517382749767374756085301261340955925273408533322731447666729381169565010360024274879057610736799626888602145190686311888244729870117149484836086410108209785735704161776588915452869358311224247795142435461046962962645277291680219737739849373200855394636068347484382594691587709081895504167094594418730254769289153657995281714116971708335573195219409174397027618268638179979899537606389285852407594629992599054164359053221198372071304459410138007380309325659664699799014614559091119959877436242542493993255205606208069041814906853262305636729225292921669775040268969734271859053763716795077119917269500094599014732943970533140544583029440868418117055105872431624657670328413957796872814020732180019127947116828284908927222638643060548494932442340445903826158671908442396504639664924351615816997446229085643244906926533942020715443861574233905219619318102047026126742192265572465297691999933591346022210835173994746454729616537080457180861279824811747255734080873662843985721689426258140102279427052115222389045285284219102603005743248652457149474484227695241745540280854176088152435420092471566269367944819235466943892386019745937118955475904771927710007618708264825727894141230568644161637313869479797027268383029072441357286925497948576691165126274347382241251164425390385990107901864501109749899010782197308141355170490040017773822490586051837952017350653802984410118638907525401096339262890551138533432223807606812557722182109727746143313593034548780743630206734640044124334379513731268355337160799655226965620422050320932417099685532516344964151571531890679948796165193373950342285101686025545721117097378374286113055189866417843402477757050931588875530986662035049532287277440550828217859307172749763491660971284778939691630396024106178013915758038040594340346514780286118288522806893516894974596137210658592947647241199220117960061831081340618470273852415478737087979305314774529805257979246996287242404351360731061189940726903561539564702688418578890278683576728837399287430240193712079208937761410219209808940734021626372952105620984378512712442861190127865690686034171666780868915680284378703544969343929270066890078246196214113844324520723913864414541604122358645508621179367320596768496294430961058819405748215778147922972144162296260592887293367802527945671556686063614777533798796325235332728625169541560265681064442119838014978206443753138077307279704712925735902714666022178312352510800775938322743166622852375497423330219876361765430462462255086717446479854832560586971981924212081519739847029147756344543980608973864767224546272436412468558944997395799890819547291333220874779276304894071224678695994617220038726826625764024298620727023109761449749008238871292809505262940347021920699176121161360740630635061530293490907506871577482229440489592806635117834512376532766872070217186745503322325668460099829625625733512814296779926148703991768202977450616652316907642538913381364198177180600480945385848452937356508546607888043634909893726313380283597169655874476714227361687057550968320970258842073892045310914522519357021285238326442137788069074956787813290416625851451787550429848073765395948254242948529271269259294282909179616415107633358326664783961495493532776660314860004352324600701760772476397049364576126452879589908300018529085753642768001712242570121352197864299414525500335683058969380807673992923067656437322929155082578407844583572665831787365852600022488373329074405241229864895692973953203178780963803878309811007181787876327310953426026261468218871556807203671764059876047941638685719229546764529503330208222496327864479293338071425659333436575586626632005531616678050850976364952943974399566028866663664927022296710923386622907764834302191912101655451179177836274962384297159965424147890771410309504938850192801470641912149054990611257968041391902550952194764310252347953609577846603973297413826850086809107784382485106660013184160710687068382241474585812970573557234494769064829077387552443593109399004207072131571258952763238361986812222859721741859257286777949241470288568570371734569051681765249354514059150213223467212385644968907928679675588476917401055721125625292383140532990407146784602053773842782121005829115667602926519067101630078433589878429185612729082218836380719192729470127368236211948649411449564261091830682691297895768480616106815481219503554919218965944790283616214090059105690446224253785007372336029741348698478609557151380813481435318060198277823993414679841202481024256240462568189542432943759514567402559073286579615703788851837122505627905918453633806765210966133818914536001872022282240051170216074718401476838108286118698852826786806522941660626726108191060116387162548961529486539030177474854408988613646454022566776108153640066513618573500622235318804075935410456491476086406927519370428268161096489020215668862494826139997926937592991934116936533324269366551334673010849488824694412152024140733941012950664311582479570073856887193997944111759363856272573476712133754404595806023148663628392451958801382699275882182664858335679643045513787471105765478925784836136116309416018003398463133997105694581758423835570341208718000131042795572295869128814290565602403306831313554151300738109162230615802607046853079216135391376817440814245381610584919186753474224755066752831658194111680260090332566040063858711921758833916844701824982653419518781734012157175487604775749325610168236864293916022482915514095407459479377453342632591947117923145953160850487116207063850567442842082917740054633201149289552559848879215348296069886251007764590374495660515609135358314242722251923835838967818257576617783868653458107658258602676436674726485671095171393144442221541649213013341938989945228652822050091987471988872766457132728097805989203242966905126805044401016979201511286755730108949150796004197139546836664682921530207484491877232272873290643032058568056025572512988343681371255330695581305943773417911637806378331705137911444888063530130676273621287727191544546459613089994043440070379721546814029723064559389109917995287274236385051397332823864895654277393091358673236508998348408819079678713091261636554121481004312456654135599001880241664123188414182084622420051050633515982445739640406341809944690701653399882247127655669717069709621413922842209614401129847501619933858941846537786541679006947416639385877951143542676522322152307205209033633002620779824455751750328169997129060594948498987548424482600008560022482983657611065030683103114401070645717353479220056942375795928919526184142324077739768366447674896159303955643691144093474803017114839274777925190147983246610874794938154559634937087853331422054574528367743629125197424581831360122282291219128737517760818740094410997248101085383706127509769673644414720131925391244149052148594062564450448613913766925335085281763733989164545563587163282844080277867702432625452476986039623211612010081178358015577778207454824395287260452096884040908454265894566557050067692232491434242521489901107391097669254989628158866177729171190149414251060939049439704360904367864117410346971062768925976224653109128267988094330867634613325224898441214090791486594948322534851766178574768110240781262194809811908534359874140507143796084314904697209845586457912624758089039558275419722972130884429144789793588776775362915299297955447871428577128920155637639360495044839915665936379131678067549178392104133147817852301862886796060315952716363465580348678814804650156392076946052730884739201741071026125609912546848306642716472857029516696453095250090633013800274732604659417715402955494290307315591418838986995739676994058808576929160480430170862744696205651364681290499217071632166277868778787330720020158188262917948377996723127289491644991677539298737425708984742960933381636396614432101407274778789651238778293642770752020565866176108667316044021116727125694541751576661679185907642172032150694184378505656683674225394864739273476415786459130412099168610052249383888229770750302547768077796071896926324217424359810343939966994121914732514711136451368709538423855273807913490652052268945423989128735209517442366055982273742377460358963002551538067891040767987716220955624737365056217573851985216125013804116643823511766119456630247322692130320019321272006715958491706080541477656367428335090437641143528009358009171003150557388786102028840244085687410361121577434942758329348537650477569696205601628270106903959407399788900601208389628841211243408998390817488688918242723320534506525812936108216018875766622109743791267371213816157415337113409685836662413307239335609788815716189208112672025977345643185698424010248325019943198109340985641648724743888061929497791123118890307458745866391805947837459671101291453329813972640183287812917781378715714443840914059111052669691527921523421473437628989459687577292144664549053276998899726736681146257724088686594448515429693317163674603454210333169496985565683821571485389025079309126986386404885588041222349761498654972454941461919118583907587072952199092955792514307266488002344331636953795286912847190074093997501726051565242786081970963766463667043894593442179619372901215900571955409930953398402278070702096853752963036200548161228583671175081668680728348257875789403266419959799750983802535396632280313720984800739591144527617281861877638868636003626165320292611581415046030486764420652901658335851586617735625744887648806397914347941560704006899772305301715716082715144264212063203164280772900369130411639109294278657922269839041639155431448144503354011934578453317766701305211766811336519956611990634952181921587368585100644629538281682133730221821628559635721282738266436742632856674669527264024711924129154471913694178887302704961644747111081605217170894780723839805918172979035262270506923410162562439374315119151657855247944485370387284018178325372720762902838507226554850670313111474046655841041494610433931250904148423032224461777786888743057373230646721615995133609944923534951010145604013757864710816787309688752470547247567380632703100173802697219912413280470426205360873932050931479180719620016696401273298476643836345588972999647978983509506641622096574742155410856097624308409128443182540448343956605166271241211131886821865501217806205510017677451825754051097955504031228637154023158929944737535920067490798170773404564294330313510208785351669028217200248843331686405503011284575793424777035961611047917615766401794240802937009794745983930580823585740059173689058830171737100851687463030427114108246176560856560519455970885793567436662125074857007812787582721686620531371224350830412424491824760740494656506566567898055905121679171728142976851633997499869137458870495074735778807607784511010701570373506752343925532782617993347288897991416808209483798940397324070795658361302906556203590305333068902626176027637260014088613435778389080385126285149823346076260174582546084163155780016953635738190553598156302578395926488010416318391059052129322548043426218855628083390518276484357128392882846146956552397386472538281505534594604664236104472717087517087661887733154876696649870077392891669035412593001098824641300278067030059027904821782985076269027737328785142112349259851163200134059104085668496081160613828609210818155349236403382201594589870677789151257664056442988233943757556307336928192349040199120823743448300973442588967568855066613785338473844585596025171556958930187411068419300352746603160513633463641043451406229511085636465384393040179678633314369418695851918463923297560761871612404586928394249810236084312611105891005604895379351216888738365343699107290309459402625450268379506880983008798599191336975121461100796735826096606191051441742818158808300206003843535006614911763909155842665660530036494934910471717086125782964540511263921295223434807649431448942499664972697152324259911075296514932971129928353535572773033056009103520566012730342533235378773808925549372045266678453255200176498462022920018013868213304179346605425299778820872332621415044175076467978872890971345511748996984543565578974579520902031208121427809327735965173476514444467855741419716797992812922561531031731502575087573439347829279625897617166052941030020078725899307852534033164776330922174420112195693568019968738310640590068236764585830671786995642675716341283183660218636122528546473516204920742814485326766175057248189995957019316120498078889218209236477230385752915488515650139095756158083040380725159809404299451663529837958734855456519427059625932065080924748152682947790617683599430042217830854716491086565080662978028010402280551737051645515011975883866068497750544044603713283743748183614746432344985151224834612906027298054785304111574116911429345421224990333242110143030096854649903950226720273928406632926934202801768933828699067375828139670406179778498699405156719037412639681445349655271172505759597366966773536643933720946757341775480181898384957625324307358448988841528211786783452934526153395545667488280816487604800800290950486629965832486966553741266232012371504364433882330049527235170136054324514931986531726089830836731783047014117776735452246217787783986295769785800111338381336360997419245096592814130374729729568510962704578420870030587607636377476764968793663425781817086654577408863040988062544086169628678993067633179115996766511312959506059201709154539072864032223700295070605851049181374917182882764997824935443737625359982333268846760013715095455221006991770353243188600362983047219326551382350979810485507482651867697432073294030049917675058727182509123823125587213002497199730772295056210508145373352843282068187055694044732590429426478564116654133762945864432691949545837737738284084680540118133724321610427136546750947284445581847259054043577180314471566608680073112347805352066024048257048799960357897374015665219784353464645736207038318166585914669328590589531056036745687138266517739798785790135798541475122794293061623463673480824378582452661074538005091973700338545226769388726457133803637071447945865030921744272804311632643330702529231367223994262997362407341742407873912834760362409828226870720019644903743475820873244550302488003527253974865011072047940866262249620715001284372601085885192523400022042151530521162766586663174186811333518479734283579596247753653474363866403731800236870970535455509132943036511472023559706096294755023934633070211145915960684326028303803447543899203007945201814789398327600567694485412465390930360095626415002633141085419988732651861310851935892504987040411994210365559914210682558773432900393868727184964573564105883461128119340777535300467983039488177767645426322284560983861123862579572642707111937287797437319742696832709382815566785876133547930838112027543297634050817402138084868811728378171522483178288394863881476623658629838582340061373139825852298648462404828215937450693522048107472764610561347679641435517491682839248701309924928987115174818772687946563959373390881415489844668000229090705309939127225280602612715039669706666519146346360660550373687527654042835595462772111954407627431887762990217706214501418093671160091487603575866150127569178265038449818454612296146844058231892066327832754544603364554045642427800685782312323682125020311766702915189539358523941468690082452635685933087006373200399179793640097341922762879251065298920017160071964904312382374924979836951181719592104871271772763730580805465893899774921312155730704216826047985586178264980970204522036372730918671169140861247063963552155209320624736891239666362485097589095622091000230039114855712723017960124790015343775257624643998969041825400686378141731427215022344888673183611874467221821315687319376042168709768138272105896451651610689173980699828207792494677320466257582405618256438502707281901143383928252223557788682085109912131555140338941723273982822739627398506944209871668846426012514920099676435094024920272050607064171879406295175287362097436705275517950843492185162824034295482187854112290902078500488435204169258121220965334941501994582406421621663164009680242746327266388426470203701803428823734920044454189894969253949524366602740263224615488123972640444877217949346942261065365441153850509618959044222414169740354826109585503874715095917337727888990879699062290670715895272734805745572270968509042206762724557532312577411481696331518873997468248486561488256494078329076762559738594483165685171139918515371358190291089552452737458930972600599456788541847112519960963927225885784274349795799403219611871943256072940720405097381666839227517575743064352053303160704522880645369659403823857541245680431443238826598735678578515173695420832769020776642880175806370597023687589862303227579196369021909944459502998786806495949846553422325453542976772763851343418345534405451324843774233681912679464060951132672198178713416711333927614679793726083065825728760720676074073943669341830601955578364615095020838490156683890340734069645459634109371688044085959648716824004443627011803877938023776254257769703863947886070145392005680572866155325446763235095412675766691668376805984557245496838941016956658144590917049182314268922813931646616169734185487182656387633792027684230670313666495047307426019686358645873054462788990199611542433344510689278556692985395963682763129394927287011015849251018432547997237170308981312366465192193616763509757834672686417727762404883296483951969008043045527637054028913421183159383909126633651666070700338662093049925040056512271901810933003769847123612539320705950237701581355851668685596162759725494418219702476231870787647255943906088990481844150804497078987926254241484519085068592744693877935380720409191550839165951076657336701598644421249453403802866134324796600294038214517323787564258188319831049126437900566038566527341544459929450148594999310007018606132291586065013163853665468577511536880026983884023334354784237241069793661070471498342278476946084117289245479553862941475717974581469261788217075500070778125807779537551058730527869544227707648042522690135881102977331635735666778787005587240091611280598481425769316217655735022392312356843690378868599868370004440800785951949880263349056529993737695917734219202322334051691172478404609012291655532887186394108553098425076746930578894244514757036077900723698301766343631287929233998139458330627415807199297479361825574038034313463218016034870311569000796014004619848264227237630975964159534010368543615657879125606380310453786203231861993229738808659491486351087766174694004972350988656745923378718952864062279606140152893576083189415809747039571803754335554857608622638120446925555661498282861262880028381946169850594180835276484072292387394198144894235195966254736433110905179709330303433178628148391023459420903075175090837577929566441459060449730701677269867055943690318167035196466119866440423116896652933140206616543129683124714850986638288779439179222609656720539165938033738923857518039501618145168149868104052863011681540010024823751545753726332473954156069977340667381252174559097558703249861172993649956861422462648918735984369680024303039580142647329952758913112582729557073242405344784027374956203092299796697412317187258430527851444874420876269556030671107947103950373924694562775870041042038372238368638233525890193776325974791837141679637934327538380214753708250627552413725061969292061889714425389936122254270597890989832165600728610260533838136486599530181280132887559639814706408522513276394225039873362686961215421004966038145515195509818943618497218531053579351289330290686857413008527666125697632985886390174458966510305362859430645072196868953994122992201789900419075587070899145308333922278487832220778318696298885439735506939328859353847063421408477561260385959270147929208065139706235528920736068746984909894251058215379295994277329285357933465973991167257297843974001760087014577976424713279275696447996873158770818138195812166546046505916489665299004732694564184917486485764500460887450101124277348054576100380520254538052499067783651470154271685722041687059602261026480243525771694043508701666727213467422665396170909172003293727910720748343747072167982461765951379188439110835026072877125671387131294926230457819164510454262663086860009482272024639158717623516599610620396675944070354025763063827225556590528835574721897558684717107752190093259450781503486956809707715386876991496509453713474710862022613534640748103470756659632351527240591735354207055717463905256435448897487668631551419235085052512405969925787227058913619201869475932058714994954285405660437612072312104693121172616108623434627974833334007340478552471006813787871784609546995356895334941502626813449472960761503385427010487495975303507152971642906997538216846987021875606770921154379847706319286129124899568095744737850281854674366551797780231066116440482474732338200453241664961854072823935510790281596031941390951915994746706974580713825729326846204469112140984665560572328735097868180492121610585885884266999683266594218556129146526498035378596936767741437779720630331316858358375315313275508870552111046287850593080477890697925266505594425213221675208748023876503015116462700979780350867193772409346479560812069356621994897872649464252499115924617140574618578100607187144285417919765305320753879962920982422603527669334239872692813806214923627197820767866660371114351979257233166626600956046062154779041281429568922859164242655703694228598274444213302407413302365337038612758489749877134183313345063777023884724841195455034087045102318611782039368200357363430323392067139462478540162498831115871885666346460717897944515407561839233098946105573135341947764374344995980723772039262057899941526196706877565926996408570859702380885974135041595313719015775257013110977080425607451200749086990406842429522641474679162091591813549430781572814852292606611551810730580854724199170251316979708775534007410108994834674107096987623049600032372749371153071234615845545227735992575809848511135988022815619457988458587079018743770824696036606301346172288457591605136511944363907427138764007134085996168061381877334406066511116725764609851172071679315684850604940514932395892052867198267764767813745090208842711531118462126208919427858342836644838930660003600668496870296500521109089057770271749764099959635109512847441425223358618418829051395993904069238028417916429945345450294915473299640521674061135820844500427613112737537674102760825736632009070563893663686548486784207499796321674473330227216768304072100821540293385652109590324958471830140242615522616419431883967178097566818715544018536664115239345674696573794781385339503247493553038596658075169193681372328433694045549859223491796162492524190713370335290005226067094689964704719115242346057348556585376935534082763371720554777781948069792830392677576123634791821607960162692987956509261921952423840488805746203372105023119056721124192070365508649463118785150818253432878189173447936761359476325774591260115393852425556160757925857226220687441311172573721224634062209638713125425082429990705732720187187204502409360792345137915800345515488691871828886782207420846065940799365857213036579153280062321001774203581052016243110892458926305518756481746360783887447576317791357019410570461757837713163591691110065703345941289285374974386491718720135319514389966495326431064264950634925688106056639833930479065366521846823921082429436917161108713179476640942450758073995090858504471347669409217597658979130755391748232967005197529208783128739801795693456219541245285242477759298383416265912432261578829180765798166886339763929305954887340603671355480379482833928948510688901259808996772243789223262876726619023899104069883043889069715258810504641047145403512850346568476651543237918382260942592733322775603915863290079589640336485833287379220345913203358812020456855293522325479672515637465078258385389844102620037395240645010335032443742290798516854512446534076869633258901847141234398540462909815006241317556019293944691391826907906884188384856319147760055533839178367847197928583069460726751630903576849787280822258331666057858682980602162117474691006704470182440149996408866819933767396885391966016722771221350870830819397147615999418037105737041964031066492988567020470407426523892438935691280418815778906251908001623785658108917731046277814392517910532941500523673090539788642558729332478639834051553125999353353545937250063811092524179283837352711035246696698356375125253120483484671914390977313666096117176106187741666452844068205856391130390224936357723242372697528772827541580626871342090858658280863421884931641180727887805679236032473846909014806722457796454005837368893315826749991614513308116063350454879903208475672679682840374118427248729285694440460885836006853372288071071487915366376404949028807343712073453552701379662941059982612907288584311410650858828147119621107133026057062190684835049551460099239131938405503801621938537510301391225669180809080295311339165307010031851046301281532441026074065227368087271980539782810742277231390863788152200917633699501632651025615992919139480265231208414576279285514054666191463767113272243857235697531016133370352200310905529239770003724864821129669917534831649623506413726441346610932520685418379808543887250324551482446103132332477634250814540204072886478657861297086198136205792259520141832168306741404382757853820357126074056934245029629061901913952808422888076891651015537961548269994958236164277364385340765280150592725006344381867114657613641753803752076634299981107722045319640724615527709153888413250662215070435189112527017696619897596477813057518577467737882657524548455781098525739991190526449335983865926779346033698319275271190806193933115405882692252447995653633864755334475261438421887580333392891826164630916445284431650985734299213682236831290812737550932683987806863602721424364013549464751104520709621128200706864527831610518702616919982614304079344991820740103221818509993551622926855789046719326471556560911344982446537856837860417801433268293451730129386633789118424998765350367828628377698195150049738680462022043943007097436811882557222922651725026827181501463185272589483885225636847618420873149242106218325942218780946214179380495542694051606721413022490710158774560521163381224608232119663603510149883213330309573996130031274005264402636027042441514968718180855549936671932963741030398445277024534051345204456263389758933910758764117895511532965003223629134887473407038460659607577327668589805390977565915781550925255301352860505967716400728728769415396269318029144853826415984219936551395408492191794761501890474652415134792560947780346591801094933573723192132512967516138793254178680250891192757698273614940974923360927757238562679656666204533097099945272818265932572705174017564223271863030720997728698616399830403242048462991356874873856943217447273216673167650246924362785650522316019827584674106246771552453707847300771040475961452780515721347480765874627484413450802958462075936274316788569083962731050373268541629267941835662916507833473202844810811022139081150895485248674139550161440054510292340946416150430399257283138599766077383271538076351284905710654712534553492548645199358414362034437396365315693323906854755773305998439754300465301833832431046148189412209083267132433520670335068241784027106504181647096960433117427424067253062516197472706223554110289920153630141714050118307386693809646322835617256567196107694202537382676131199430158200444024908965080114557879787470863469889660516332050686084578450444178970593478464315131284948355616637730220686823771702592254556022445081521448563737314478452847760885151276345341539034824535968652110683121665945780675108144673189373710234792078052489541057420169625499894661780967125687187770316753577454537996315431306077181008994004362670150452059111625392344865757373442324615386592861019784053344415231821977145964927217602771782314706517862605410961359745731601110723201707356081868900557973373933702181897633919148953869613626123350083757838317949846869884101242617899149310156019170249709325101904268592027087012010229965979576560668797513256491808374938375213679755282653945731008744691832040283063398758334201129678604896685764672872296413688582948933774280700878733429880384863572823661224056249858237362186953899586212443475409012740797530316528726726749191685900955805737112922926093761987904393303993712845089550565507983317036795299750668238019643202548935204761812576617163267465547639428021563511748942932042336249847398110985605966548783320358994813790941661391867492024968820727923385556646177473543534874348517484301085456617534626512645001622055441325660621911823713446281973257935004636333583673697685487414780049416666153302527261368069780038081051492540326114782763673334420896158554907683825980579608962152659209044030878979718681709052737794066248103803373370055420837477351767814377656901180369686978895312358634169092075310977242487659477093064130967831357110750656273211937701305238595186122834262425792753611215893922548164706225359333820156755539625678958341757148010038495638523562087495819303977446552904843943830540124752559597845780328005451652562699781318707219607696343379964182997242434327879924100940558054039202639244636305691543335645122228606353805143291017849338790334909905016234622729132490754505868628796241673298832038837402266592740459230874773787203507848169744452288655598648494386127130887670742810092528705990883365970449398367348647701888859845750769980298347952747349835244998820814228448731776186424726864954709637526364878325868642312494091327037762762511287344142381422918112696379893751242583947008052147020848331265659936950248726702373176232893148016718837061010214900972171143685581926832820711926746467383036021051241012307715840900574589955651004157680629218223704564673544949796533464152636003479785986812379922098699635504666628604983628266887145150321675949559500541202442871654543502596309917320016979018381696846598582357012012634976760635882829236521694155557636966944550134129488176835097331278143995430337066117752122733163997422836437342524006843099433256027643013662159629816029294042619184419272782711899407068564284818202959698429220847714344601711696443867228582303576642758918890931778898429118217528351538786217617203115660859757951348658129202847127272213645838381926104106291951151189460537209398569342681157709420226837647237854145347873536297621225810646430246206125029053521803683178959094890128437799399031433467502500498193117725746543274760258459947192613341104374585558772389406391759480697556772255065307685184677405677463579144351204055073767756745637332589523470119442932254650405146457492854279830516557813981156106996915666328915480955216395566605576326714056623002099133007626178529309026060439827823919894526049129753955426751744679582565355132654866376886030471894014867812108636365077472147891402264266684998055461447328184934763482290303236663188311812665738652651987877696995622328026763916248289357134112426164537672801131818150311605930363719285524549859903838105828710072196788445258243575167486973123587833788523892579980278659605562201436109236167273763169686782361091472554844186538254693833254993347840735743910193678673046163193817422499163749846353856510505547332667748496312280293681805796414658047649158306757789558433009010539073958248833072175381930816341101298625108004523295512192984072104118182519459813524263983088063261964920886772618212018441513606392995557314805004024328821472546928345493300669310146001941755510440642959569171745991376907037807037111016810496380616954778893783299506517634442375567831705406390518573446279611307201258765815035373773886504306842567413654993689136654824757281735223435408466959280801800924019546427953609422491897075478356856774108939406472669527099844690034489437869613550172869520183729654101146759862225763746794347896719510053797586985461162051963124927759669985181007141684081918250198608869739926254400452118494535169375394037522950113222245455200701794220855203590356098461186476944952352362354477660731295408003828073385197336165383145030187565648855143136582164157801373529318519564836218313819288083519006516785375752690339701922713897248625400976483133475890085682608212475902125642832376011565528690927726530277931598769744803312791314031125925065358901073208134405174987028621368515324141658145189913718014167526134402265286113920070318313551728895869331940543079059993178269734771486765976695559511889338928095587784576635787672300836025468519919030341153930872300608881307809166032026552516699385652310276292356074812084478477914216143458802470793021694158547594073290071091989550007022505440432712023041264275899068451451363984169974795206453920391434697817753544802889934846696424303693558862860772374832602988959549671329450135399144781878370036738653926398479013960252156996369757820363656712934195495109416011224988279836551573903163274126061272763698956038911824536058025074712953698472941293288299641063466096261871761023609340221729460944683328976008858786537464751644193323884266235170946267585319219218991562081921417917142965403363064727457992624473676328109114530153769439775702220328268271372062655832494278123145189220872018039852562691765856950001914252960500550873578144524074802702087323684254094253841194957682033511466360603491339065353906501937927552463304908726849207513400656556573073583814033364551198170773342456245810163201519075661043232293017067866786492603869443102140764715951961700733277938084365467070985366731497241997314668769717778823849436469716764846270168627125274103156918582728380269678710428874071318785060276649599284722909867348610669053335708615193770945466570146632346669681361392597400362421653605131343123453894282567028551781708213473811894630025216050929265358158711662916585587989958988266561418711674635079107340716857218219982971358207576204227840088850574349003847826879551683930666594606175335324860301367592702596957394272407754181592245769784095545259343976242187962556272757188956397148165706277206703273523708996881074228176620991882693944114189720540731035022466912486245579632667254405344922235099139827263905210344757652474999144881244054217227281087099059493598878029538756958288835052113752477086850495811280381299371407066999319649307081396166534699381076190563795568634962384961327106642443544562759965700763073617225864503535872329176591670604398301662330006729848653951187424435405163777608418736814735994886634148404309222419420673362100610738034604808009142161073900232288313846254688951266459370689846694302642732868367846474997024001600430592121259242417016108242327783290193289893701387785792604463947080704935174459599049077781608765381087512323974381029633507828955714361389905575209187264172619838624249023587471936416841027158302297506961023383339245048941628413896921827781621733820559261998135986174449103810120966531438107819086716089764161059974929968316305192509448788996164394765443450639986054807210768633153420158280593570983018758309515813512590175496267895866806343138174147753749153647118306002822274826365205007736010778581754682091699429117564963491853064394706144775908214809848002451151548930706489330104475472115973259321573129512896770307349796939917490523083907714692097489211780794865153196938309474834348098484784838306444784733564010817351400574104569469350539988838787017136548837344751598476749478289898846416411856320980859806013519052055834414807604868456142800384975345729347512624335957850471341567577552462930654484460393413748732803381084255824781457946525841730639775250098493677647252713159862229163642779930716524931931307252809929718354329386770836170037340915031468813238042343357559507641614947588863555291344335744822433375097384666392173303746101064293334907512175872520728957109194126276025022249973059230511205834299044418066603213289565391595204383653883388182557099106616090085673072762902729952767321960905144838493958637641514105281624059850600661558625854139493822633141950916507261608624923701170340661008858131275626667805777713867787400299726638063620138936155107357125832364181273868507649171077708860227605882220607925415464325619085808515773371089258217661911069049640363930987921511904519020994818007313873636105505037557095421154318803957778835824921136049415548090768320974740323844794379853572615857239963302013319736157803176390807603181093937163512098138289029441624040687117619969235137634753557783575716119774175092224398741376645742077435467138302379222679467879045848914861337751911580685955881869502131145187404089732546853672203126781389918776794991777842228877325634304717592742563245848247007052938246832332851901776347761359133299477235586109143426432447414835323037755683056643246743697948884562441080146176460064157852710372733451183260452919346222751194141904315558704850515946957828108113178413137724857801169989784141902687035653881497217367917779410996592897907756631858346293039872804117109623255963934423739562347863564234158262380472356021740684307072405347479808398444297357248065600055837992187849795916761957152779136082038630137708556376487679984892420246029136905483969398614153279591405168540536399268671293187207437516517488122379085425286134585492994699880777576543019273852433366663498756452476918015661849619808251074996370731846560936670065004724307782044386833001723661284559030803320888575316780004586993651771568933740466478356003121597518556325366566740071861364832393398516217103592247459795119988864025917853583749813537784080020141090203018280086426123941849627648938970827296575592786756622729104202875032405896743589216029916693057477001723142906423805189020148310665794734649461427207083012376625628193497880729380215759720614056727075067522186027914863629699305204963209349054903568156198428035321423426228911401311571216983741009547226072445958076850320931390598407866460264475659162979309502736534201811544244270848899967161988226662272935749490781977163832842597506281593981346101246296161979353419753205784699408421143653111240046030501082428041634891463623643738378662566115443299714889230809625393197928283818857959989471046573179907892996016961477095549656735085253816299150128197454643470538332790537608700531323718928825004354108686644891311486694705113408349011501970726779823993022126064212196337840512868628302539839956140407120635862988418067758351874907408447820252781345100831776158594042583661922206106382780441125792808925518140529822770006176626380275083300569857541211058174953939511889563913005504280096669777195467352009213803482851371568646992996708211594618465026708032855915323299009969733207120595831491924643629699555619584514084346505073147445811254893071513606928017278425167591825726167271123712076133244252023945395886300588327876519755471775364937787884447724423546785597327363141806782045566377381309677096456269242412267080158038500563148272870628356892641084638482139601402033762063702850945843074234414219438395851336360258415197287069699944423856381679599747581351690960648910864748824240735621804095895851587128808166202769574966799461128756956331801494066869590720081971768702861993205758109785801574111316064458330027437346910414874473635462610796014010075058296274923828673933577757753507469094785599955744830144451672788718726291060480306853724446643640222152993505492573560597089053049524207900851001648469029398640113886236904438548132381886127734063652417372976440982894963527840517538599616568063581600208854506604233318320932027525350050302781160243337710157679333713228370904578220740157404141569160283257868566212412966238868848343963280529667141311218874922963811939346553492240004700661172341992777318101598556843910589475761460849846244097014641875302697602826178842961567420334369446665011037260847118965675789709930759895673287394608967213557595394500395897380240572037767663698878900279567414534567785232129615137671717037346848880264335513969853137574649046392334065303227588125871540706205018001462734031356959567132464331858889142819988543342331228275535010436399197339417906393870644502870349300050555928085227955796783288215260497665977872606191601950116800423720586492981415727166592111161292173848262394560384942548065381945836992710142241362049117300190212884405611832786633968422515993438955949902031422752125114308664512798068257642387043263561754548904610427260563837110876529242993349727281482027861902107879041706037325439724996946519182154016130895504564310777161243223814130836850039782395972126056340545552029933835069566459266903746080989704693633334137196067603159652541226302612820853682885972675994360347506728387767616710723057504222269693434535201226494521428365960443558221893440473408081050662858805844142011993385460544459609230455887666278741907168354592450172497407947247363317055301914672266364180449904276914717588680329732231452945668979572996266343474002004712782981474184116929798962466669785291237906045849560920987579929325810416730777441974009018116108328082578836842454014618145652022343316283557984137310104118125210012545997614022202063627031604091418414791578350000224168964370036125484655019250537569861564125714429109825299554272366694124100283765122311601749975198981231306241847615914445910901221219907636914564090402330128491178497622519318884879871984774878827551007972639185089070700351783662762183449237222803585263711291379999337457211850429248969885453467234798659845447628266999466635785391953408718549614381951724012881159419163892620984584354551661892844313568249931593185333562520021952188341709024790021033085632742103760781817109543207034818887697205836629288787144409588408375031022819208296750570879586728369884593425295475881471039412735343757404367726630413291533575343448388290231240176358139421313973166940806709279754526180018514184077327638326531353285676595855644853873423479906321429338391104047015329026634470341471646594424298322367706168942781788747007764085653926803671729464528665633770303387816632049677908285614560263485289419147440321451082823961379136451982744908619962741726507012528850651221998256550122310489041155903659082184791560595741843128658464990714018639462130229258097271870605156476077525173467215806471797488366946475859476773269618479842179996671661725846285805953954145318383970890734507377882848859390320085129819411206601069118810179994585502190836522667569585066135157768387707820386674692422501889803101051526409108953578651323125313642242598052973564663366172920970384585216778284378456428594707128732769791288434558053899906806156614970708733709161289553572916201152120946252486317602601090400656679339231734822609632499606016602869793962964981369303929307062629447521177045916206784604771831765786024793952411265069708010634919904959417813968374635185599431655139645988254125382853786960878057810746119978822383329533243411468345685035028484536062629803451748171775293616011753133681568804770362733443594849847420809370131862764559478084207505635925981304973790030815722281452868725579491280592886175085083554257768170804246869528175301218939104595176447917976923245101913699031256225101204319517369234803089121246410658875468011329737126598436349139188632247592002174324472037067494823938128978718907349023284351589722918791881874643524944696165900137558443011445332892493647014818799263260794531556799639506457870603094122450334936206098680130667613753753632653657707925884686560542372018543585151394453538218508368745363575741455572780013852578894851750485997930952501254164137890253553821820945982390217545815731974029834670153782261259955779510701856080330316614482653769399600005170511890117687276102514828032578993739185495965564434929878622744018876057805482234546125218094489535833911401369800990450587521004443246897225101698118042194188085421840824872058984877590911624609743876259548286853022404795375342826837063497862477355202316628336566179921950396364059282881779175138961246546273594731210120478329035782188819174975024498337726347744122764121553085466736394310864320324484188153540562084575718925947569737223743974150481341375009941807875454486915248740699801247007852209424239373336936137210301529638984387794056059833083381161505757819925858848130706359535979842560118401138863962829594430454346440778705933012335317709120448611166090135226444064324654720851667867292927077606454489701740619610949281405861349259226865639094680412348095203520618434221065227086516948254540642968189764085774884360721846938799779375642342308281630206572082460565512676557920940780721055228065167240796875058070148730279046881261392018528146702428730637952946751587734280212681884391768324525746432514754627377949227905027480607943114702694616637568016000682593422973769322300683819531876263345742280285188249519626456385456043589660325596432592525908086521482416618605341098981657760339719825230670760168135642354240382938997555154414275066535102937205239939383298695687772264390815534460619673046751768715634624900727071556239435071251820638066689124680679026745886522513549616521100755644519872676589181025683972156383059214987084173461976417949155386826497966828273213799007431878362847609344516194838473590466463269127199142687008309922726167937475505634318071734912318687663164585124056333356500129671632841693319457150549176437991228928787264584389083809130425002408027152943921224495113384775707295420907927931809988551300145653165614725564064745145046632271584814337630179238083733231282515005555443725730288761389202691632471293572972414891341520662749167742072337928557150568551113589306778637340176423152465279990820786321171109597923434698324362382545252161264115092800963329522267959396762342045832451080762886811667519613807490283593573813191918783802512068125420637697281423897338468053430050918240543609000261280277666092193189972987189651584681550596094052382409810177575232117207415885505476315862359417786884704618917706439441637341037717767723942396210875800537304619219414565103030676757953783884960025900500774992888725979117245641986369894886614181788772136523905577403583002962261003347887604241084239241849442056228525696491475694641886439746442970033493739710576929465932415847548866942237673084455359212769160590038260246209328714997554678943203489584933088450120060992180838270446727342871575130118716211539209167371661157403958278685527663771167946859313677366723486485257549820622635865163587863384561747172309132558996459620289428119771940425099421870770297759847873912161568567953744821712712048545290465613032124181240949726170527010759230702089271442097981106711646173217839040845990187057299273837716115819796469379170232118418907634410367043494814628844070626907437414036471306801652744418028276202376613031650461605340166573881623932853314137081572871622456476246360680572920374266237517831963322478760924132991912984540247674627673163178085136694311115325308094070331496193823423335050132606465578640129627148992728250239991038729017422647303086934344035044445950935545181313129418707066560552390547054762075206501883387126342249747295161597507420796303554281640303350692319639296466863252108806293694798948496426366107716022712058483864975103745825544334317026601848352974146443947420094242427638428215149637926465503116851526239780901752431352054832720005625111227213711153935254722854482731116076302004657872498293684341989435645526895656143338277025571633897661383765422571454131831626517064024211014885633546073762414624842589433831702286581097950420818768888128013008548589121221516374832769389625814395816680763834213257225305731558041483374935971701496410275851423368812877874287620321798086265287801424816813747322160717049112689777712671648030044038950959574972814881210563578763980277442726668019927701021689077169730973877219626267130029532234355789502628531716778549200425214462514510972736289208191575545623523266879176947628640824581041176208745902815434483207185109856273066904436785144358459583075299614779359015687648515674754193931097822821817564758710109023538382668887734450728442550155669337243949004449715138758054808647891994279181510017826963600434583337220395520033125446431111764428726533494351296312978339680437100890490788670156530655391438010008074411557805049623272869164254818661293766879739661130534994465173739621529810369030398947832017367643877404646462284522833454115597427471610504453369270196115112871257547057845063470400055167777501355810919362013620339683050286518853077982510073283185749161666608464330372539312167782066262986564733045736285437068371496568224449500312152112379242652825385825301229694032337405452650654426215102633264061067422911735251336167181115850648106303474560313814940541406453548974551988269225475422810733964437895565228609740449903165757703096408170628461283687231691174548641942562968801488457748267641619127869855911526121003401633291622591214558149591434385063330838960641882456594222647152832532179933701562681864413593328218840182782303655277467212404842111404626298273115103088142488214088706923559586147762953089635748420127652246588534579651016145885406341063102882639803708872153682778637605674035746188421048824700553224897794728309976507305448057117613499916934864263657302479220577876742810235314380434909677601198662388935941836429992284179380225087368829520559299440844616494307286720342345887218009201606312795592922029974803534124033063847053149687250587832595760221848944198554747185622468348427822981817170910814340262651210762946374975020352392074479775791497282879867436596426835492093425681187884870728250134519425927071123635864973326150633598604714671160277934707036592716291115230540957559290638300064357218428904040296358140727685827422087720574035005330270272730718030795132914687732427904961802996003103622633621028977400473726064154022910750056067808184189064166922590700888738435063203752565672695863763139650383364749087808401614828652646555986594876054367782990512077564328112851438388515172986815600969815146151004355481142439422094042944360705276435777031754095628615122227702051869510869940611791700021360310094816295093361687317580217537416848946183113756513241481993289438017062254005858893815469114760690779275656290033234824086184272752159145598004697561366032443457192675269387579853972905573364343022121108422184100950493568198442361794774464373973389916489015324593277291665439385807048080632215411394967754315364013237668892743310925828957260373348252647477577060168755242762697635051168380053033059068934173727952591474551342379796317969816134874265710960931626653365136352378998748159029735645738814887261595442592636672534510665073267110862991302497538266604749715490143302084998907726282231020229179312322520996167051289986400703100180326017080480861680585156631505047450684855330366864992693361763924318410456397901530741203017159174483110202678842462462922148232253036801286904306637594433690606277650556700853852814595442703184236878904869048634748204736727082740465278024190782622103459381287558724781612668327849488287921636870026851961673953353031302927415343394056452352510299255750096693805228951319599655730603075919753346548902391778932499223715059374156416803084436331772890874750572284918733751994254809287373684255353319904716018269978157244010562223007272913059694688541292055037261762248681199839648341965790506437568830462974700554763012290846644152622583779947666978745096168681136313047067436197572217130139384690368830807870518936851354563301982147581646204836184296262654255913096150028087147698412244614979730882595670192046651532527251656963188186291698073124807569312252524476851777335753507565032339895865922569783936067210332282983792758339997502634414000657271571108722015161153085106512707034695880259903213922094802168736274909792695352954438810343011318663433786746332077891742731131605574242184401606860023886130298577287640388445860348729643094890747643074366787009308500649894825410341505710118688688968158071832381258505399006589024600606578185460780363377333366602297259128415036639489893515441936340296305097264145973304068483408294929662666631428854600327357041241534850018304280523396667026815597654023323219347278425354931394019566928195852868641229969013681507326244471911066814903153193479738756261764978322805789306702717587757052640226146524385068603436797261712334081103860340190540459040940830942649451465163500871433121710907642115717812345163435167555262631206525548300148458827183175524482781014973759078421803246575193998066351634133391187230526438582225481080648571253163449864694069150679506377860390784217239238438380420824829210103532775920012182718084212480985187869003377382205973894946322035949595524987598965630922359322745192003911217440441232172771324222996713900217339770941400142869808841163666909763315575957255936956140880185250824395153126536525058970144564205172763800167284823770966202006673007397884100317051988378409309404796066741071123820920464845570754590101300400875627870141023787808602529512651276521213186529670191019746126032883057035794920105380515526475391640300398635448137090645467050231099973244220728401866688590174741893050732821321759334191095196505496058642145550631578032088451828570116923580468653038813129073479628638874546580829466486362618812659928318418488279504893282995379993072898473412047807067800620976535064312700580079525940914262296501021134502341655869213685960661473485798267925397598444800951150919050936215877666264900309775069362384607188620202196076424969410377476416131665584711523454216873658242114803178880706860455644495902262769146130471957414794129722331601663316377914897239514271335337501958059592481939023857402901154910000768797877425050507505389249079927647377116201067386827731146136297682358724411987911917957598218093479343810386345139711455106792433014394256731082625119611893747795264992429188546499811302363991490523472724395587801054262419204733612432759122058720427690228420712087840155923448212180444569798523389599679029174077513376334098796908949104682809796985484017941441828676670985700587569743465761799011618870769463323055880008937562107325599073090556186493252644831074165695708528082733867109520551904410964103942012176051081412651891635222590938734913829579853512247196366798798451128471666102704579679545309114477720339791053807077343044442620573561666348700022102321741286621941804358199172908677507173109782930920526132699870659061538591234176210621541747575682896245876539765561447602503101313381123202967651629676545317689272315912391151937500123877512886252633195103866094360734030594179249132288839903975357035069093099251433193784214746561182652575350653326684373155721724977490485923219519527267766015571210097409377417535503999477811298563911000047005483662524735960746825714554519618799904553572378805809930876069742404695488958093354157374305860416215411862926472604004168512773965342264719557352937554223090577748794390871893340656972055139204751242333398992025620524120687701781831843509996936573529974762164142691247983598671506371160620029214302484593705089549133541812838233646433604745778858696448842030986725253290076021060446555766980484725537944762068302221931627309857007357588440886907809662903529155836177730529147518732142170908782961362240365190653197434931133336917589365969381222540286096959523796299823031345468095163640232845276200520446974736995732099864799632734126648396544283058609390898775747560759992962765731956951359148106869435366990117657363487504661630259657056352122417913021612850525961507877922668284768141056050987930898846515610082615185053007136867964178893640593830879505229334479775648981080194599068904918478621682863519876644794249343463263918397498699067465440489048509981231013631210948568271623374849154973499171614327884318641763762106568206050396304343927702644074476298167128345475476216736644591791204895557222805675247587779836997844254995790501998518978399515987755090768616640927399930746559304801927317742697826416904005810097068050526207731733221393130682901198192221856511763907457678921440903601998287212853631118002021387500696463241723383466865170653103842831233786166076944380247176845753305675495674127030447395604001592624081764661233597055845233723714475419108343037992227047553559112539529160844006201658800645222077507728302134994663880532626511188463684473349671416286807986272397822586527677814613010844119559529511494192508257545173302643764781771302544871021407234807230419002985848864920491791472337744971565839524639125779618010600675056777217233078541915432923972616582058834384086815617337373047865734277951183114939209420018947811842191618224907167385570756814268710527146003370857221375451756998551700519130518904729909270687301390699713551000828692179641204858391248883404772379859299579878166877800369600625729581292125236295818898809473727250364596025865611339513483856523496988568505901523515946805661153972743976089641381521727937811764598421436896660741140538586649240658529074524497513334610225368145049397917780258984691305782463281438013661527418070848775419363249938380584392845672449549060420903276721331219165741397144250881764509615373133864710285815709619210161374235727801508917017739333078173255984836474065773348623632701378603584900828279074563705272329839900356808890406742588544677463357755441492903446897194108272085674567568268870248465762832165777308037273622843661170540633110748424420162631588044458302046538851279180484477298055918929342519781096339098092555316450706083004203352346643341266558602962896740096339946741027357788172505218862752486781117127289092997948996162608774206508022673191164946357004634690620129821154836186233591099005580959930872044053457071824448209623269861674579580861832559864464909127787281475166596828212649884085787613780920062618448963088053248474135457501697582624921335271732401049395301593908128503972003740004183680991411122499011204378653224587155162194947930710897805042688425269161036680610185038685764934456879376139904470064120674940965924259507258042080100064950836371043028434954835962599717353222563975675514374200363537155420210825028735575826706188583394799578855005354332169572288258119922768143993821250284763529902295768266928478369947358486709687368355300495437772559247775816272443900021869975207372364721981858146703669360488589641676710040219519252189701129877906331679142820436610255680537465185458465078104829189760499917555967830947896354252714146277626404393477481701844221553886980412340310263875926056236995223080979309021128083363567998880729172156891014213144316287760550983280265147647364048980807167918197114554497667354460942421469112530401829054845468528070064546338704251998206782647040889261572985735953265214505568806568226957670689186490974715574823254503489902213458396177301751290113946736510879396000153480949205955275122012148337432168728802236031273708087145224913761153095259435329541718752674986577476661756276350634216004254711902487074249069809331922693035820256364675730925396283986259925944431328075163265367224396139683976093583232137279153142737181818972925141751324351856976154859045769779904344302649416864991180689855215513137807494350596781592625694788849368438202166499674852315191952890979766535923700317647725856841735423914694671506165532720046298638130151743427983183828227279698882128947936995252865931535859567895729000156313918317166797430014391529552457278148922808297735445394018951654231284399725849870661386503354111804515380206687647376382511655183014439743714315322888740202492900077221423843758543324591125770938205688856795653142446401583057471407216619994152174887094827567016768235496218589003712816208058850258655848541123842841721897700754155048801108812766714003601973137651422041239837359893557526547627691117781935634495301195899363833501956238960788577584906862689191197155194515347357840923997368623084488547588361146258404532248610119953133797185710773787390478258922586004181018459707902954264205717056688732934178676043880499887700055604703567315866701595208565521547965375267961151758376951239286217044539765597527862761421804173756122415592903179652631390845105058003036746796301478252898503171935387652576174264399900852291363385435021397377303775302523094118514898722859805662212602231552890886161550174721469135362679288840825117417912015575146654962607119227570821254313520536729669248843224306663748038869758256722952560543142812495888847354447911433680705685520648771553341642756514815374015224675301414823617955735452024027231293325740995593667763058378767655337904474171031979152870063399374527244821542278024266939956989554827544343255803972168864452735319448841076736565765213628540636995436899531168408436098614954911792322428529686471647904529420263444569391635418209828076841132727600496397944518611192312538377917896768290844456473369726611885021560945296065445115654963210505287005443838194591115898482315465942341572079170115262796233723806940531225879031527599508337248064496178104218054580694350721227009844077194246397207813014232319689521219820712930758361067880473818199404603323684974513738535305318639715258310268358375842714483580651735381720333290997110752019830101544735830260701251629400681710287020396094859529545940673946924431368191954901725980442500119655741711283964412448044011252904447873415038673055141351369636898044223295974014676711857316572401448322175695419258127765048883433077811254108607670477018500769767890625102844911169925768930700809153715511703554958056639165102637304614907152763445551756272884966592131885604108448643168400914699923150077750061686503630971993658700959242757516833579295670338179479863817543272660579660992160140993050378331623949212450294751091423592375887453927679788372884096112243643701663512137782775879622556201012971138743276132228561316049799323468600499013271828135812384669252340862475598200599725529741491669482877349342767425759039427604119820454677954453004474609526371924616578369023526068102784381960788943811235074135170092801860202165662729956545519018090135651751470267177499141307404632253515536054449743600925579609795887440925734235540407002489019315824200172828324414625323930670554595502298762596244770582123543207122928488855086248826974492020209175805989349482649321936864560970621319363433395073899719148923970117333988684832157308300419468031148619388461615780452435803954729746911113847874454564541889564420414853231585940551597518371969835478456669522242679148128644855282752288378659097241583188107863985579642272495116079907211102134089702854188934596568256060376539204571284817196995587563574740846999060903481477198656992224457278370370630142786623809432165696346434158990130415983225504705086050758892112076398361554571917711023536926197006444534674110557064835776529442797391467609409240203910318397272565945753614251400249942318293024641387765476260779277173797955893956218293714805873588472468300337503046939665292760283754455449588576623009745030544145752642997687819380953079825285604317395959655752257850171639702121337625230463492431462523463117384194236423748820863241907012210909513571914565027910345967567262802951235089892514982159914993950649533557262493002671722859503686059995789103124920824344166330054800066343914761566098372330383676639480293166718777169149301153673543511530215492411693613922706798317043263195198014272433861918154891666709580684742966672222636394666502282252040521584997716790529380815310872224756125851284843365049620236880568623009859018246110578741957508670044560256264580336211425820489367814443244099008831073794117588942528056749156733522875686716134103897026757300126295059209409785382821265269355532479474876212955047597273067008826766389225615528720829154609825343904790821704022147330948665815429410690951585898794783307049316412218420487148120705142814458418056445110251173107419261427875060634331824479906788798665980421949796230446440666918722687811457360971012393306203807934694044262108774350451941381928649350148037897844640414728208409506229762485475415559181103141548109255024987262098864831405938905137907452324624421910140229446712835267655757290347942786364793374287511506913462549041072117014963923306742796086234401674020622720482010627045980774442803878360533490576672685898165051063636053566253641031053481422949070667176443321789598668215551579991372322430527290474039282169284143046509967821842828634226074051456669486758631325256322899950938941031167221826990329540317843799945385360977579196430355460999294403560888936577168211905479938311821817975508966341326563953683195583616569292309123552409977890601388257618744566864696632055467178328649023761247206158816928731585661775841432978038786496690230708105845757424860350513537001040168088223589457307205488629582989060373830618671239596594261980344272537767414192281176466530069311960089907510173128857980862383709611840349230944428320588025664052748012735234284273554757443306753187908292024658270097084920462227572432372637901402616261437003182750948156867112828404104344696019310315517935427330332327887219880077860002432041384247653799330837471861157755128489108990155515040055864756264279884510046129517738007247555013700740711722268867017008119188079272696445011942579008909438078145940975532462723617377564021898287878208196004228984606457636622741934703154521606904182783873172250874015966476782380909512955281306074388975978729224214081572041182954628069289501766822753532094257235530694930532877339671895512752378305850891681897267094406168104840618013951357352735702573459214534399958811304198938725106256821106536267896934371107556385997946375020476474934545483440349719499697002447488193662305072088901378888579531968126827614038864137351813491237093132339735556335807951858520506564158443735237867685498768326982793016298192326605292305127675922792775850350305276522132233192673710836163596281158705250937898231889479499209969585867436299291855578890557010747495510237639478666782893158165307960533198997750145539482447141853740577976307433747434205644574398686930152389931917732181903382686774902513996772858035003624853848644118215868886358294640847803808016003944748938035282623431826932704752421706864487161048534161491103336396750409050191361411312982951691334161647298824158780731552252674361917786946952730479219401755191236813531175601387497093270833078012826670231940534054256370391975590751009807995438753464644256681236458740561365808838972811643834972253398001541537226269659110215849211617850310225521215624788742065985073036613955104619016680848754399507097654957203304285528226978854686138285563624952738541460358017386075831618599202824174893123253063273344959328117123119549221053575447916821462141895088944057171643568154164759606891298023536831041845120176095366694472091457520303140426151046444750522846036289661329200749709312267579065162105717839069014445470447098719914297663191434131530216244881256133810157989785052707268899888904356249311463822858184153299543230428740150797676348200758432939421809305672498321434793788762228626765322964325107567258993475145999089235412946961736107381497201943696949509925522597182834250573517928448256138088440436561505312507319755403469658250113105895988184476318232977362120965336741948678936688215706087812937851879688209645292750280929071790988801531938251562962917316192014966645733297781830065847662220673037824493845890956722285322949656677754732131819486688856314024679663504984493464899207765768539451063062375238996697079110183533510920085295957234341912110448325106401502683285306592568871452071083506443719902763527527577069990730277823971280393603961141473432603788421898670940681714494852703970633179802436026010622472215259729590298832319336342803620281836559646388251003301451558420954240616827951310943904279397080488522429784242940476926298984156655199099552017024817569679983015219039380984766608868913033034127074146091690399407169671236046124043230494533079290433535020396985263162736037291957233166099335833100863891934682256429339069698846842121858724326567924798006028640430844637007485578023948007697288802228550052786290687687154946478787017269237724793448304192453732565440081417500283035455847186894319575490037659793032256649477435216624303626831787405849697524138172608286451547135471547473496802090523784421260048383814662216422293605975909157090297198351566518077723955904401735807480051382367688901328651264925371352270034999388035999230976061909166437530919182890546333608140460851601271522299265559360960630646602217640331670934888683340186807822598298218765454280524436303479828889890976199988554772599682928350626367243418471590373366115633551280808564068362456835776131728286773098565971490016589374006882072869849854282455999441894120742228962458993229204729572374149629698698841349547264977081086377634894974702653743721921298007019626134415060752256347254771196975649801617977739787128327324105366556425888807413798466826309879019079882856703087201196995639749949104903671062810008825247878981239172787608716636482695417819570413403101336804858952265412450433037325065465110409416671753269890368463643483078956875939324491165027208688402292629372876364597673616326913645394088912424224736287737776903413629458894029920674780852005622639351694216214908329475010140796297365743264243802456693560343711128974394257358494990144477037520407412687868742950559888032106501265443857079353328089455860122594328838306479845970834800693235950691503668172894041191656239537311284271339765025404721168750116838825392142207209740809533814248608212267331944043873006874967817420911522365394699048421055584705133616204504419510328352590688922529465142501459457509067038016909443214753373653086426852157684378884416757292485115223861811934462042522108332498216157821579343609991095034040401587449840638955792322997534918413821097540098951582899978246126696281674017662664057409055850688483277792836441593906080727210110020588416297005092373523135125488825014982416074675598466568112277728348322522228878559269915281541041295045926084882060414988099277555294246828465725822336642077656510241438193069453956013342927497786053342101737461621282334115104829779262845674265236338746470793162999676575311848166493093793801687872399817422713677574198562900066474662088765893179542551013457910302052902837490025433759328214670602736849827549358664720054661068374703591640568792574508190580901604667980886723623706879974165944056840830247977350977116233210953265991788087232806937014395372002952687437366901583596746334873992603969777381573674462827356252292892233317184125235108067735808736470809143967883518809310479227044286815050643628679874735636660681925152165207375966912845030620926946614951204033470866039729970935637895723798740566091763691954760093172474620393688579151333855461558768983213787673490982598037030095048106651437630858542666784889206788135948846261883992592157079573415320916206200603861846686205527266102650618981764138751984318342929993811828982972498987739672651124532897345205512309520212679519409808014794136315894212030619397557954441253851807204175976029931456969279924419353135189470899820320650228610153702121803884879669251700585306200847777728929986063476131711456629459600565672297437185413413455427285597375057586471519226413445158920020582876369136140695702113493221847897335280897006209776351094031717797018587423482985307496327255022688639120359255991917480076428235019530369379138213368488697064345535298218137589110656116002236661225493921919790196537209266753644460982810657161077171858241079333329903573790325914178453643755291589670306254245498401570563949431813153625830193948404614928665212680616268500885950351613720268853204517043336385402205097278775356418309555003329187102124982312657930833776826304527479121591870353472543523538889760426301020905004053965259205529214449462777745379252101758857402114841408064781149040309353156105214135716961376196719723579463148358854544879512647841927250859073873087349894852054378559312060449728243973934257175185590226716586668809299720019219042816648713491150644150947662981535167332171489897116280237854159989553301162916126942619121622417237920126707126619205988261778925608115107133517963715950851092314455519591933707187776610772349804184583656198864205285300634312440556336952191323177331959457603272020272986169422971698024204664262930656471461549883746602636277951846666813461566777459935239726491768785910412672577041430320726744939199356472676190246255970692168446930371611332389154683926241637289893558845923363687512370864972237532497616581263546494178017903486936671635830133987541867909804510010519274981874226200484730450789172070315915303893961761761684269026328198843470102642087332592906184041880389984498465299206804305986416616555908791775360079212718900720472947154524221267107674518189417174986393545031081234261986515725386764699967952355545946790309287129697890424644825656248038092134388821874280577406114279037754079185444808290290805133510804152187158989541099212415278685650788192519445305075963584828319659506702511819618336561471186156493551260167978186933108996725505863355213542940262068985127004954565958718061568478935630226529965732695920111123709084742620174247831985027760175381073531335565777099062457981605986463701554537421165344220806671053494329757253237109013998605531058140585880221627180180496509858476562647456360959855963442169534901707674931322363461778350190773743475898524508718799698118771746480750752991625104391217991587473000142262704031919652250265601518492407711331580936234325513095309609527104954321653869948609804635279224089866631581001620862530795947630696137863589994279501929985432037673823717777038744339898455499583353732060503998728566462976573361506570695732846985681705704134725211230628166593429710557105799398422326656843455143438336995810290974245675697144305569688061728508916737769804572991729406183644366838485032721026033397760508673790472377587095308723252621553959448362835996067361032951085794602306680824373377203292196342311767146365891667279202042509487430211276499226496953934781301135256014786055633202164075192345227899101075861213488186769536359530811653425180908746648392744886214510167075850748462004894481088312788574076416013942530869792010803581781535216980645761432071768719697202953425339524688528338840979981918849477237560073252674531322790857508775019458575832418337780914482183408834685547395959218178213366257220034506800992438051111316434899679785018675811978924928120264886078689692205102460786774013174283752313324896668964763473693541635269182374466659656925423160315469431692423741479354554027507721475983930971725346361996216416640443849475661343984316109915966026001039642666950184486467113483255270384555806083143888086370592285579050075245622987659267510529885031782795034369376573410378598354107359146196829639068233428060854848280930936929132043683670266684837829149304377607372195209366686140196940732344198494913595359608266060557933252686215020767927327723888890328513946516650412295066694434056635683678828008785232939968086070550322060711231225069168554983350890578108490416374085861577269569640946284404726261557733211617424715133543679955137156570833764958870164172760121075499840708059120614844555449965741352704144504287644419767403482278497365060036318315875312133259943797079373087425856147831967207352593535191214405404245298826799750677843774330490520544695056376446359776585881923585281802616817130161038705903365310433471574505487536118141252009004608604641538311048276970552068143209926036011122839069554344747828414665578943984495686669939024461484672283744548542079791114353073943012689092412967910919259058882662323017702282308749827375929635818313983061821217711546415903691599623043496116622702938907570062278321277258560779009937923851919140454053231077814534590784044552137860946590810989462763084948293434591958733325207344687943739374637075301782102734422296856841777713823845376762577090130710515808663375622734558732261964300420788939616092871901321401297757220251881809631955201404130255966247158513745437429109672858444227621333585751709656115759353896747652729266527776898038660408494402181220986219294445519213538890478135251797107352298186542652442756627491964750310403388056998615471858340471141638572280175318221919207617833222017830381750363691602617370668160000025112021019071474431842417213385536841611583798356511833317279426215260086142953554010012427409774247363202966828952727524664203842495448783300002893707997205803159662520319500571781748135712056897220973195677621701311655549171110804281407306498194098465654895806908868496999016246039857848594083161020283750454067721327563655192652341242366816580051387287033264073423144007907486163082852417357640272329791753527615049409682641050323882973040953450432607810674918767466902201166983305925525403848424270351518048118075011458681326008345447577399827074146330578077026292977507146360553397015171943868527237974813578051125427881900911668302255619596232862412266020825500474267783700176560012291036004890437754050558425491888582346261650014890656173211468855324699718826096534392281747330293634101987524954462257109340084848731070889664058380011471787922543790194303154414258258843167413761940702184699338548041424201120174259539085753012184320610544698102659388443547208002132012651787390197457210803400298406271096886722056003355252495993714146219054231455942422642138158487082137465505647682414686119035670126684503616754284072470133281315116746560529175472831468928318471282695097469563150664219872587557926478694742564388612788014789409234054790198634631106361380966552442455967947417627185781743451041954122330922248364424669421835795603825307890417983590392030285180786360615023461030025147805418058738702170015467359079479692016232388656599736415745439835896973691296717212966357113198242378679601306330775206047474488248578175240074057049352683147415425401293907996270806961258451043096691628284301868311399598522909080562123557222092148836200892754849789189602235172945987254277912460139796388710124797261261581149160681408592880760461988940011545776922635490039042163962702584853530604697470937593125246348157491762690915988096326818829500550969692474221489145419197802465428088373261620377715230870123349762342774817999769508648563979231905366917895679391420033910481553527024553161226970460277875334591308345473517155465015063805101492617233549702893740339363072308957642029122357917885870640466401539844256611825418750028062920342864461563077560361446226946943338764900156007134013237234823588902249966077517092277585987331838105464862001812193496107688613693516329547015187737658262045672208422779801094228732952628033824668994655389493020875072577266607215868531133262404456397677434548395137718873051418870336596956888179242219290660264704228638818930209052530424834401624114913171899024245993678242545218525511642394677902893685285278644554355791737384668655377938801428503051470493310231388309106401112898368867041732869023516653515001881248403671898358000469260984949773054142286737479767986117604316979532241413162241734814047768283946226665289523410506592095567701147971587264855587209227705147821746549164860324041679885899600876737173705998070071652328454474270845428241902552443785521712099688068513708370984643501496408959155263163355530976851872421431668887642362872453326857483185328598785638942829496154991065939610101471745985640161031903069530040974282654561365872847928753420828701126555738460395259414205451180914705370739310798845610433343724838065020313537421183095410186969011654166175540943244510715734786609259090949394252124146232197334189048124607386375464860686511831837474471837375879787407697917409474142273831523712061726469702361969529686115105559041771850764803152994224735939480545159326953292679995658022131171232685011864599025811160692465075415923916833392581714311220631970526689593860581372487458181840022013481379329357043240553378172961910360769630869912217978669351113024726011044551057177883894001957477422414482532626192118798466029526433062152950654369625744888842815567622481386348020465888472665505019034503741959026959838481044827088752324920572792739880272941647208179835151408396305802908261993324043068167034276673050260648773590550745740608942375877971536823307548289391671019494986192927227724742961498332147382459172884109159088949205675027405654898574095861612378362068388837309602318618645940362462418281077562734347412842080768556298868231929086706209271135222522899783303418181607538272863006287096038052692888457179633720657689237809218787146963392490482068634975375378507773201435664496283193825097054870786509232616049191370034194217678369744392536782905661453606618986874248829624986088694944232559444622693223406807790507400695322134449810481034913370149894793928827954318327616947420104580599219073968877011440520367198598664130872804494385972739643423217837841770929543224479628191518315110686597995263007720852863192873790670530202002664748726163378462147492905296009904866856740996357202251775199350583578059249749764832885519984368773856681913082729645863491702312844614842420342849192028292755855318222529308267209119729084681309991383824895757075039555296622142496995459822724833484224477589417702802705007007714686714936018113693543531494510383144022253395968084377719803497623800375512637453773066605172455869581819349926165231111273971287975980193215581550109283062659067528490801992598391325794558331904595443680024804946520700615059660645549199297533274453553884846405302649477287284798126522252377659693271663724091867329847484456482650651308032010865385132456996195934930108411585728337708311913920780631172890478794817175029913108198390739124311445220881420135949652354279016871629594375338666050265001264202543248345579922663737011644126928367701656579876671621992081399142846740931865844760450780136794067030492155049116779193245233670529971506772699632825579398765044754274918274508360943341563865892843680937106052216440695276194507143498098360650376431715443667103780703505978852944498199517377647944225498481980074607906758863676108385487107026081115126802991557884928066173811543104438424664479737083799311080977848435432230456892550674668335274066963456493307049578628371145344294923650189293284680676448905617462589471435418373342701086646325534783582601881206027946136524165226949678731371137414546145099124967204292855318858106189369892955154690297193047276609461618745089092868996487848113006213680673454494717497733924958109264396335792719744007697494759020148694304500752773155419506301378724533157630567311803567045936221161145747735461297722944819465778460048704613847820351051611212443228766767609662377363419804347868912816005493395583247830998211433842401274261729458530367911040592378497371360336475279229949835775438886126951970597746702244840293504777726875216159365804133801671640341315199810131949343912044423441888290960957442673377834003510713911555084436706411321297880697392428039046554766166148021673506882625789273885943601454998613497141518036777440072931067897308452540877373704261146531282796581685349686571990355157999922688671333203896498828279638159843604316361861008755889495768328550938166362789594398608442255116590508154020993746378640014391320008980376481418892521428868203958917709373051300057561369632185019410612762782034870856026380520879429289551001638074944020975601434326890823323176080745810653859060298617324545187147093068123260594127656911029789441221290796288507409794090603566601329422920123260316371287382912582779085535713703608452853952653064614294829367426378107995818332011619560017794913573305893141213077208112841767851425924197633276063025422201054904537041864776839913887815803152980892661119301232463063428168720181270080151717734563624773676914438683339582542705020638222486406888347074227714871633712785839734842003726915913312022432907085882855444370316799809486808723033477556535712022658063919518912009770625739974184655916927647853821542206950924622292847348158776408380475677800490887686522803918322846486306970704456537804976675492873959091049385977582793630995510540818092980444454017421218480945485863290445153876693097268220893030279113792178999178763460924384099643257931699148128864315218483738030270799828751905497953773065742765473012788048783150251934154358789336480595284540681204536471707936746912083525655008473606934523421662330856899771081814752892944805778498245758339720834046257190803474476210940815211044975887412089994978264708978453275714012750917887914685036682374202554338445081644012592949744686890290958278687970270457915595796634999487481776447967821734794579111830109076652219200447242254531669046273771609892028454777325458512476659228621173211299831494832104465363389888163577442773593111853985043138739839351925649918564538440620209512419894919771955671850355703980413311691439481525744802530316218187146254683859427366235522189464716426388414705602171256169660012026004725000308148704069361788849923097230549791354043125252203689545947693771190936506042138690285970927174564906289608013706160400967973840213085747625935403056937012613846515652887184891231362784385014471052223025520256456994805388754125647228873723032445932833450755740841206941058777070253645528819585953816402041815276126569779428482809183719559290988430624191183166151317569818787294074052301982623558979866999378038789812050271308259990293833240907249213719355039723466132608881680278915687060253127703703721223425117332835425316233451516152188829581038161119464114932274451693899851359342787093672938987931628410162301656354491476985802455855272521139907124100434749342226404851880347350167131515792287203713328979279946223508747148321775905007609850710133735883093538223462410238090433171653074309780282537919835382766555994945353536375622905877672718232677230607633430473568995490820631200996754549699566323348351435949558976727633810109436925931789434563360643437512066002255354332218417958361753951317761989626358503748341558168452781283610566955207279939611551076718313445885712821043346098919902087774696369139256519187243822430607296470153880960388375866322857594227221549764582279869468724185632781478290130229602840903545004353065877713336519985855443064454436795803701038324450532935303133408488083959075116196970973086154074257408458926199604431519416409755354101546071101257476736666410705179665171060003011735992293111461415303608062744273701799514199237022273849050575876975568070928016730007201275447224089561547051964204842873514042933760726541708471881661405687878718573252930874899415906480719850903286636195427530247935206713660447043650498975585576884289119269052524315351882920303359051020118236244445547273720627423529295998113918841840690557362000341838324329634366083089500435020738367108326248340727544905206015846115401528888102838212861328950636909167965229912681268629033991972757676586230629766497401768737883987618659872853086559693056962072838585835847198709292337749213253199590845607653331546942601404587138827271701505813531779321989179669992793844248408964284093038609733117434346647145292086366890213950795969295096659081116712881791995331078385721005612967212482513139925006240705989090922620818234525931821206255589097423347028013966475248116789542181998729928761600789664063499031435883269769920261908967090510997840715289739316975342313619041931506686560465273288042472432403315349195305805379300640075199918115081687123132636892799294870089281474181096554730577742523623947583617669739483769674440173455795062243049193249639462362069293638408104121251630881398723095117341174636017089668554667379175446580852760480709485322760489904609567250112807183709830648967954037260403895742526484155358248913293381777693202026624305835156586545519417557369798646916965965177249726420787534311794953382265321396868064281700385207171173466052738109752198965542736508940769391720160667045510716529096673763953951612397700832507431734262500133549729979439371966393535272340698552329591027331094441295136140293886919338291612335029298072262509560665456278419396698447517381917560143551816149842136060603221445294427709388296350043384418130053063847859734773175070794027202176987407765148438360845355793473977679630374845213505823338870874850992462945635287232636226193081649667764676297674870561625412915855368263091053237610857290064232737253011221675709870840146346914354179911214551872590664192702628175407822340565739660604328235004025817076305001045904875742452651922072876277812358272435308166553584591118529174571797786623175168703251368836797169238552296080110783319490530505578629411207601584292764637468597390426595267154925359823853305671141623126705925269949408411338169403988358122365506529338216294249210147598253046577527650872140992798757354059780156018110903592905698661769834755432316315066436474112559471516683156079976149576404431239208819647872253704856682606194548676767254899998754524994741425036028241190819358863014950041420810395898513273908999404542241334798070241488115890110003562175883127600887049786983918175854797130452661001886877005343296708017703683820762827763406552958255418138581257411491166722249177529761098562196132289720352147316867767530896127379911317444648816276002252354891236154481942116771714478927577459758065335378250606552861012766210161515843306670402278744631568641202560587219438581859497238081625642224624237793592593213166001673491367278094158827591622066055359314370276314682706816093090275752578735251715060006416918005457672599940696574583861192155625201821763168544101338673290877108740806501422255746790323986779054118875017043289377330987537114423736289751193239168980913919809750874825792783239782134520760095012255226827569293468475117049159544730233426240412509274927378345947175149944922920585257227034406044145197880453281751612486562171810771751720680331035909427821285604506443452858696415164896865078836718231678510326986933224895960985248271941444704531746994430963094434323743029619447363856191548139953614425497883177341475346198434961662805724506575574498017404413576012761119508376631168009835034214595814902198162428354718912684562908200858667564078915298804349285921266191919339585640956839616793311125355387011929384559620946222574877398058907307230916260615531802370732179584865610845644969142127844527204556325872147990422817812394712455228519322954336232580875371930544404639728918679888213733837629081293930509986336393328131201029782516404392163695004183261358711750670177300109624777001856715647289820735085796827160161845620702815196829122839264653598777796533368272082176143963332166261072943153137272521309257929572551784007862156695862224151596540162923456053176231400682404126816624738734908574548745819570305696505333846254431421530873011302960837108294506410398365497197311969335232833229825811489985126279953126842558708701311267495177353778420023500747741759785126460278622739391481379739202206905615172324933814656101941336052516965960341717043871979337931193833831335221859439165567374487157353081116420635342285752916284704455235343008697358070037460986189278802772755209985362919484740244824276183161415993362333885303418168617616829991094527689901782909781247067607891721434352167214695767886937759811291078304446147113558548533146362814470914656357634865502978828354973839668214275578796959976392865832123207270613254911632360619197329632049751479430721858185163965547873168389793562098922680777009544129265259977773413555837871481890366894495463664378943085910748880719669390928567785311971319025109533091212204130938166434825415050399324777274900240344783624547337537853378234391707642244744501480771338929117888880046770539811160958022741336084056753838659913213554863601022223258065825303685165669272235791357179696392986310125409274339200769274370479566123444540087340913040461873668723868142154960560139511596762091762511852876026572755117633915352208559648067571055844605040035868928456210347688050891529853391042478342006949641779887108677548044984901413935246752955379025517762657401349419097187876792349882686646804983834238664344717237513967803139036490287220627836346103648691165316423001478965851063676638924935781957518407488726752040215854365208220632792380178842312501871081642555349093096640482438227664431163458909350423178929322975277108330597220293450446499369826091079243424702805097544382490796393576853215338948933098500488333255060572012648298037296865710173976319303459465940888670221263040076199874401884789236831117992443069530071243522941791523705634306620578639302995751050978942701448242308480816149564685443830575280128826935072783435394738066102230053413812837033453456828497253782028313583961073720627296401078649825492562152824102686055499453475554734762011639879731315590644623081232622436071964726188885623844471442756160708205955548653711645370164865185796195707592696893719220240582922988809639357956804418003371537200850257328159335026285898043738309584134602521325267407529959661946109893726073461344160421851219704154638928139043213345571706341834772156612926860915522078709190291639002719284124581988370596220384846771135927945409741433319741333792367857942394949970111465304351083036931644839940540643589595322199996993236448803168488964726456823383882086217796395299856024686911833942788846646981520291816444665518288702116780955211502890584462490189443052813401808023033311555393296146701871459957264724361415666756874275700694176792365585540743950359591375488131422695919921100303019182711013166733293342276422284087203075552939864362248428011621451557020031720535922801724582170459595328014470625715920393222105165309908797728769184496471608526341820326708029250098576859349551189159721998333334836980953971565376030391939223216694278196346168331303481510664180007682933437917350406410515938507117294551350011556898475624007158009976992564845568729196727593927290683574803300382966912688319318158516640829986356035869555590777422748307916543652224320550609549239364021464843472277332651715774023102871784655178827475674931090750354467837850166759823647256004603189849211251451433291573018372584814331735873363424520654628435614797229214253381484982423979806204042288064610255876384471230489100594470295734892170692941450323836158520003922777185305890545527432248614309584921779726668491350941905145830101302947528046294320041766226607798572051930152169439136055844483448785389065777442820668390787508110853450745538503441233183382027959740243584853336047992743635225934192338639970691394607031210015450077762366533784939918804188730607624149691331073603474607305460225912156389331150538031803891069502535783954472678551585041564096612782655655629882698218659989528325027983869159878526512068477895678917513008082426604255693462073579176293536912120449647143679761940089381699617624443249349845750822801471002368139083421921054658064811229393834820996648492642430376080476763440025133451929831860728058799977142990698926079176654978075361974191258150492446093479799634857282038648641791687807594917029916983933741045375704207585353374109668470885137838325649469691859820219745004788261540313701647668246083365363105362860662727264240182679216787621413583366893534450104120051286999819409179285992109798431260374580763974570789577555304068286301750836611751844145285351059257392525708247138808759651876005900069266288651227813446906629972305007637265248220690225423414016714531824672970090781775379423505894129560731164837129406300507253379704755799648537651962204907788375425822980815720995563694857304765307527968159025160471980253241312142045923452731021753920417293638343209356278492472984739836288163503324302024797252386651669507622489093291365318176878708926598755161543459026341139727874002718752350941207433230255244402674488875490173749207225884132438041692169099178385016159311686334460566707954674712467490298115611219305741709250435468288698124677004127917253361037370135130609571268716007289506625846669406907246254910367087670746736570905646720839896079400884488988679133242576286350985701370668181492428929178581148621198738574707039076709533112158885889918456854594622651677654152212772497272488155232733610599912468059967885268336716101106488667468731810807055347316486796851186124392905015354966195230026921627826988771396395864584263344427111706551250316150048918131129319648082359904691020696569271386924314974197356440412342829210497463682946067465793992180253026965938711424829121524511392706803950759390481263000475601176398568480341607190011988155725220021502305042593059597764890855874688178783305793299884547116984893611774993636377213479228006361781136979363580735247053440781447386839592415622449391983168567234606101638533583807057342457503080612704011633477307952994697165552267884559654442001072888053414190278328780138159706200004315593627451904193777004083382196756009578664646535792819356605238428616391562351188117617864776738252995572108772377052127229311742594961948623093322377830712635079516866216334449933591405301750995262766764972496681761392428602551632175384562438077449948199186317456011289275371729624212768585457083300322378312470437598006448333782946762571013912342446560025403834136230169735828473139532688988633061862878787234769713396342533569463709622594629280447225897520007964348163985885175024477405118677019754316579393613624089300038928526888067817098438486974155575281958837010299855258328591571655935793804038123105614497215425179253302073859635226645127480999998133947550343579705455376440872729914586470927430705248276321265043863852197269121657429893093813153881906189806282125812427982764521499224918583304292410489924997456101138121527785574708442453497717582174417031862028618681535196709410136495379151401242959106804167286725581636590004056081486468613805193120177362113803150517848537869871321927782043236200677301812294908090827915535448737095940375944729766402909901682781566841342623094977705993266272885133875985351866080303364402566414662549670375061535707166800333994823422507426263500279304184788138101139201058420074381903347530103120883531995421333935792766541680087399977835264767570520682960946850899770032943086397485071844231602528394550233903834512630006296780545824916189151732127495927760902466222139113295707785985312331002903951822565542675631389853644067950427639331990971567197506496910348981609551336271453108282266119459574233164455043029689905456732908443152717598345601592789211671428714931373795673645669332452058593510219372220246303906811162177594044148265844963577515355801712061628294314791646901853810090169696787275015877617663440673994481950870593598442755065102700687367002756669661765046879292273673268007750190158654884670332691845782123878441802849896954823766501267801347284272885249565685634252774429692426759198986392633521489073636751655867853021714019255154221166848615886306472359423339418636019705374876851240413950472659013974094379287480865411204134509970561146762407812993819790214979073337483737913703156068966661242069795282871265452486246928488029324454347413238315208513248316755328041760106464492490345722917882365901860155777768146694646844856662242503058067972646097972959655659799613325656110242920362551988396041893615050625995627043503408863284639460812457072227512153820821544202943982089167435838769870962461540968081646490474245599017376158426149653333287178144777532708708155072983955868479279584180310345467513234400284637773663919333983473701278738832758712961246263798148883642063903862610602381829026480820600040568181571887654857933402848657147435752634675505415266405077178618201490313855484295890145058162929025735436044004198411957408322624634756416970274638291869166686461938638309163992067923615183978999366606495620708489556948269865831199318699512915538914878261953950342633521872920216167777531633875961892180087626822184733134229014294805254448523904002132176524772176097390207860909032962399374374427232839049159424526901351335077428988466382287780714286315551272148946530656274259191571164954989118820117581863218614791531355546158346674135460903042575457669439287277086480013309978171833696053185496893650334746975874402654744298985734812472962787592078094474183753505061066347153167734299153263312897431417206164926242737920253382608534547675702084901841232906019499575018254006286609453934662277300470363951765715860522536469392043950066366652079629742190794453993585989408935009665684107449688067971930694035109414378111474721481874947174173800321192892748284583039580527425602929767735535694228353709691585237355347313839455023105708509966227067247652036500661924304374848361830854173510128551174392472534119672504873183428063327707927011388974704725890404267543224012796222005686881501351372326050556066835413010973344273527399268042556344341317308326414795619452359271604560768568655456076708407456351918106959508801144595970851029885033370916228870061486614326659774658690217000622688753629600169494248707857431890385488208984755868934502979526139546501737130659980989667111219077322317461060785353490681958770940350605615295802763962850612280050952486814450691430227167697922525383618106508469589419339945089798434286004528875880683206652380180407149453324481619084780593269163474500255172270693448754490897495268979389715899384421033773215400161849959526150447540811286732393777989321554132540447321476056907928081891574783139533415831381853257162214304527118510486797569675154726175149847704187431885608266801586496232143923274772430372684941352795302017129156088743382913781134536776546711107920577133401171990891508851327887034589177284784318755754630856124864746328698404927600544298436787547762670955153084133521388878136061968670013684363432761184777393781270481171587051851007719698732529117645563631224506197187849397389233062824695061636377718048455050394513882416497107154265520466489325341946122811605986607766608883137284209743574297186649388125979928643083823708604367354604944994147374966236889591347420043484698019972472670293696465340614554541537720511654009826445371561415380392333819539160350583198062740281935637680703002644241236195510228870552101535221596658733362684082750800809667861051220461323274515602782048159403603573825644070340065925053690431950293169335794482471863385759157661450972473661966607236191703992550528782605150485652891557361602459212672263323690539465585397976437204421657161324581258350284557930389417309212366392984300853975126688474558271652954906149261405927555450818201454813691057559660851479914253996672785028313741995015000284829574880473512022852327965818267568340729394819027415990498136515727964216078546129327783870760340157970298678948338613949111357219239306047900811721496259448531188030079954823377173568598431804024227970002054588787890483581182723465011124217382503595556310440017720593352597853524723185208640823976730920266732741283672186359021620007509190241490862116333694324707142790609909628068275107132644127114668246618553201385036200296693158447019115503506620768132771877687530993470796543592281826398758255957423914016127511738158861751483890050343482217490961109592397271985554567650709184236718062526268793239144964760669389633819805728248084370476292233761794530896074906241141894930828559923944304136102778677956717700577616555508665128614757716992221503344119908981462119253684408824487339402286212066146041875503858746354925240179556789096823276981260064277876909714412810403150552566793589632341273679821369459961227909786997811002553625885796585184824757949031397097508708695904379493050371150796431659762296383002934756924498331338299336668718635653355482545947411034684114606562215313798203836897756902971998169495512462680019541500036120651993539670299925643709066776629263453109327615325308845538499792504605020654350828265334398454622504313743429335486350082780807762326815321799812761989584431923316826692195051028729549451112403862677420407374672874312524251206098773876702644410353879184794207441972063461150980231102318661787509182230626049612546838475220417591368882601135430503275575753776767438635511331567332655915456365000187792136722489953239535130591967676601921732407049091894502802887293248715527622146390954650547125037276812232965875495807183024376890781110770415523497037278621745769651449984837168877587640863558436219971947464582528770036686518237959887230531247341644976262766445439579812456710771220777730604492230383565450964524806798178608896965232665401838593944623291311303832438966494129600474282309418204940570285369976902880085578190838277052798096794949203736942601017399550755795783378415072093244025738033353607947252036241528488581910936845389199043354748476722629840031042727833310084408419782984744682962360795964032075335678395836035919677485717140901639047397453327642661296751400834161128233858708422571339302953826930242582796144101280864053505544627989058700552730951956166875205085780454835024745010770534058861666797670600153150667667395851256261039454228035745405730962516783727786895438490021522584809005518541919974745791272497879859672446008679021570561073026636236274676688940793169836608463429669877291362380727086592856857162760670497353864596089575859754109302360466774417401716905693319959554855507680491970353025306786241491158638742501799328404763524659443551331969174761402079228493246818646530554558584199236254346920693318087294428656319161568040036487033488102868723380351512341115737817413760810879766537609548072526806499303369598136213101902435524701910174822921104679695749855536980615819483920678948054584307510666138004281744436918609127134306442518347707880326454715455165940757470791164942062957778172464983230314555669557388653466713745481717932024304223980865256178693230970474396030508485018740163640864183173522266176680482036167658487361091995138894322453623158153822930814229713009792360765934295046018168424460519478518604647397269478541867051227984201924925689201286473826416155817045799619256131678726055650643595528650506115595100149096331234881747516273220409287440977870647099208853661781403023081278186039972147653943076044978644019010842237175265661905872822536692549931934615953569795789548522861535671862137231385527348747539796709177306706078261754972219953422867715522610286500026729065039866771697355717692635666563179989686085278120920273332258350089312920227579868556645324507468372525471256882196606611748613809336204049433234906535851008924476450127040165229193330494171123307662725355139796805812678326398708634923557163933911307197632989943686884270131274634753101623317811686654822067251359690552810363369835395311113486174023592565797702092911913824041660425704405496069082454672535381775553085987142020871106482266709983782725288697962567851877759686574888723334448859333363711880961538386782637167557982143727704414828277970112642517590902807215987297162264523973498616793828707124812403628177933795360523260860638932421174942244726714266550317675920475847397814921052782314666467595914826675551675402460716093626049577401607000718574851449954757364949090380874740476821459130719242877523957171784958152036085849148482307352810051391327940289707687895996088877145338415617679434180200770094996501465150669416180320440359207505755695239603726304299391752595170381346900558102273035592552363575239669980728592317578243515408556938348254487314992868259924995107307724159626668769166777145425402646217947308005584813462760821123293812955357007240801669357691613900072595724282825914593566694538636778359858021455958729425065627197700834327863834513615282042057344683823182614240216975088527977202363489068803761165616563053418747026476731474596662617750876343997673912311250993596124453276912223996835202306340790604313114697560711521248001720435732557763441361994901128818354316345031191279554169118288893659062528983320987869417792518627691425100272889015325839600631058391432775673912344527937030182801619997783039607666058312696614543881862672579560102738831834246072422134034019216358324258871239961553582748631132687915629003684174570908943737561065580579909438980451537884435056921672088944385932241829771215842734477873174321100383010922564053715153516842537371884417755255886962216150680811254129640428362937711198267088995004289058815665831476827642326492872438904332425398000902027365228070203263492828665726229578633035337273218699686578781413786094876223566636742611818300617140658778228192016746537278438039080568317935652161191525251030263834246982345219129678466803118489345414681806664038544676396972652279470535667006268868859688320479529030764332795332506764825210215101972569770276604733803293374232233696804742485736155169881351219897015996784434613063289746335200552131117986441218317830442022669535180295698096612603032088191415921802653989241626278137165090856733814131861937880506890301774812875428053047911864327087128710968287149815307052439841030824655313304984244619696103573697980731374740088532405466883500329075190837516688221626081699940957649784690873447760826655559338072187763614118965129089523550156005119190290403426612798515776303231043799990487120945459525381507797298660488064859043277389048576655777622713686026164867740769358470741249517018303971084131338906046892078760183378903608409444018505778260657539708993734529885542595876404539728996404826569458132105109739687812454603272202317520896916439899818189378702766056206780791939197489860555068611820930395200407047125735191345352778750744195387281865075603228342953977919340032339360547607432377501473186861371656209796300486470646672163341862005051407831719944840721711190215768999204441186825492858996709381030363144044759034387280592727136869193552056732655905663671504767343466678471646847152746284850756651500260064860108954618655058780255644202842223543345091358188076605753216856923035959934682321904427619147057557147489549093223127140214117222565302182019613226259152569447143897269260195885771415080823412063371404318512287173599461249861550485668308363317437520366825815348989210396837213833095978595022577054209992483231261092015095148917102812517443914096604973761024033148668092614134698039488035261831969639139497568574507953158314936855108491162550438084692479329703243336542792865434087047406615478884509504746334594565240472866029054251191885511943502497759967276289859859954975050296086692657495722431023440927015583950902713844130105316311659880848524298976852124900561646966817387185989664620039856548996464083993293496692870191596372445662196141068187643327985397541410069307911097843601430544689269060671757294203901449621325942271744061635646365222158736616397162824592607108925541018096085531696056489189551817500144132751554918549195814614379723848620679425239083565997628766596764434235312150496446214405519233708440448267092653276308864412581089395031469633543584972354022548309748301145086213775700969961375661586306234160866119968677440001778096316535899017944100202163624279451923857540304119875550923023254249854035887287046491841297572783001873982130000059064773294177051809352741530598884671916688536868040349106726203146048362300065977627920275181288291874821493089829035008174408405128628509252524225214470694523661436531958117964041212829396740052352369402428342392843254223316141795049588026140065537335412262445403181466526470928841173415714872035935592154523810257751144800528282476965501518803073885401916964518706785977039882064842163024469324222887275858093012535346357647339378687889827070807171046534908671503727449256861761743747601671926131590246526109757429388959215988858422819516369635741616568497587996227466033420049536762958067603793447973362417772165313623084554834987992006105501450699664927026099493444015519594987161388500649274109397140021325326249809394973883761718012813750954896389770763548893785495897721337708511077827190265765225404424116644544515339726216912218343175987253804662245312957974571353149126092965351517256739736889742023208767646805159084205882252696745743811944551230649453313825693726964075132859671672740144546795395138009619711926057252937245384100613097547981539425877817084651012619552090990158368323565462867727418706671724240337025044099273163404955438257464062015639591017535474735007976492991359122326587581522884754353241894244908641357727332065704103059279812546837194165220824077230391200192333727671351922047939524523510742888661379241578197692441232002937399415810831906383944943925907405797341483575125215561236943036622434551892596614413712536793027964954740071642061112806687717633823220789550233979106273139889209737369899354568199887691580787332163985036271352172253982126653000559530020878364787236822714056862517372582469065598947902285940536042661451529002464988952488702048245261317121816125983931484883993947932482280588286341219075364194954239191162185472352812194349799164641433868830732865579164067075093698803852932320771711261473298697102677969912670815414203627217357848020753411678844324733209116675336455645016426045645224760166854765244609160119316634281296863731680776904561928040334085661271814126852838864612978897242052943238671273535201135164981592914431632651306709806279448626584995081330696837767028087701451694618243076204656050173189717797238055991980729104102279523929788162829692932003933298006376434362773264540768003659796973717564277560341616537788723349770633892992385560664058165333766523686226627823722211802998756352230494025461908773719439472590720739036896253469366448340375287481789190950940482225285180842170285538658799862402119707305585499318325156482885991452543521730163937690763009902185922974099937948594643497468797332299605828098664112913190756260090385815908621739480501336634113548314743310176775427934533826135846872799012547892979578260198863702468921157179511903376505845097862713019831613615524714132422105335812380503822273718182766641404539246254972568051237693856133612303782987475380917961382647577993275522235573778821347544707558769639837862794570497530934784598125618763963464852603191483908392098681571004455357953822410097807344672853375466379689612462018000151269574599032785775534060563519695256600864222022886345643142179303122751043400494380711090437615934678148718041335084342043229730874851908099532264610954282633572428535041218268191490759193272510152119157779060424119573708529976110452666984726330566218742150052488610566539018146316774853817978484403737439282460424292749939898996457514459162214049243236689594510797204725241470881817117089486525364486515393009092868166139059464861495503535263052505490061126398198000582568375466231831690667758823692351333763011332581345616202526643707113628260218704232120364760556815289671419563614582504819626659504495870943241330740998128458505709703337918608832713427394883611179262694724683228651964198983887013047046056141057848991911729987977970535779655062804195196522483787584409848333405594342049189475826444286949293423516970483359814061731476107942584483612476082094972207929225800391275341146076643325185934237081498158261603564140239063743390530465521964374813888844268108707614284795640297668804232024866471791003294035577481579947409146591051291226348434733706959543774720465397295708536220469378038406102732707432379769424257434972304473412183178328294707033589969398814868848653499646614552670255696047021133518593758039687555217715218529190447897697428930915947188727612050746470986187587750495250567411923585626645982714882204631384296365735040302835101530324330111045354185469421594671154500770644740387206209740794459513878163971703556805707866228029128395121867877657809806713608570380344139535464437328106076367695114571063696062769834251451686841182631221646317760563703938528775881830611544502422926884920891837338909933644860019729095990830076991783803934025651576625018921559098201056849627401781583459079514273389915860983637923512446695075662801362253224278633175832228493448573606482956877260806266199426563715142246372547853253602588324017931980677596131854103858007002123579305974198590809092344791800879056099178444114617180963371066767819221233629502472228595859955821478752340924765219443679916307499355238820167084349652414994938021195160231167223282681690614620733575750012576367924070161969874019275434656957389141074428893729135554160088831483061343535401820047027790734124916911605344649199437261729536404957200104275181123743829656741473634429851482521205829047925810232626788354479398462148892384942626963674421253898400362800840473056307012220264346119142677099397253684567922126174153626668916616705936205954036133511973087341771690268404253911209751949267196483848541797031678774718691225415356647800406078821910827014936675680200326488004070348978305927274437544829865041199353308693464251494067693564080245217605112360468269523234108106463429637243772279305246716707858510867009832652661374489720099628472133888616092351122709262430692641636866294289884026285226657545657413191271733222802651028090805381029597034754247402781177804281299756342763159695428825657259542131064880492705087042808530909620124634970147234836439633414997352999503225889814524238550609473190023208337186168984365088989467711452988857964341713276025262004107689261351386409774508273756126606919341821059189920872007775307612514601212493696516307862784823620430778681825359811122672022796812475828702150799320049778043267015869285019038410706556612510285598508029119593102207438117729444764147185892406050153619492915598444646085351727486525238016958104811254684677817485014273945780850874562246826321687750147812562533906302505688121261797449875028767656496061752481305912829718950479914935716422335351413088528738897250034719160652811548609467347355029971492883699068288531332063131875963847503982728014910113295478016315895865873894442551289402022100992875536615307803495100249221678770881218739270393979357382854876234330559890652802709411383458339666464899313014637418892109940153160247385229433338091554410082711325094983348149507911723491833883071141150743196915133046465668097220809333980212039575570837683012149759510342723511844256872449208453433328599670409289858147038795407440544963883419478266655145031755992960101990453054883852069041686813800761600522883256704447678089430364092172148139303653336680817042910027184963472516491778656442549286850267222455217844336161329828671147364754381460559698959676992557453696078793465258988859010826085300012725690162477648270723869782851325420655184227081667823532205196763131549311464323844489464712476616936511438359601523905095718441794823697611216527527481214631437263891422226353105239498188658884966313141462794087237285001307360592432585828858378268393233409742349798361115134469054251047559104822198987000841991604008290297292502041500847019095333416366590442651377456917497147513507976200032980734418710415415095295963209343044014979847389411745706689430794731671254741045151632522870502738119495673843122932306618649851569394901059433349101101922382140843431804664603574427706827286349659797468832802814350236602256102667368799218779789008631983910824251028958801433680894569703459121210575117374744938126168582795351252375347480641970353129464016542532625403595669389474946906921780317707646487196322385903092945969617102547158214075745015325707911378296300197568267111371088634116629799953549953546730993580923593207780547136082526340225402774412057723199872839169559547382440758557680689102676458973119391837837710668792682545754598506375536905957716584787240819465506169536409074108142857609261957995509629291929042226607279012073230826137281203148461876019454266813216661725227422187378580910711165853285078900893085611078696684148802392355589367273672169360941988363103214243725310958542763075334446844603710975351436445829413004104078650285983441610977616660501591528155296651496090501924168291457706295990996595727074982424167742088651881050344216381285015998396528887510013886002982614457482339714950672005770477125364991109706134469412775959879855262044956270806061026446395285953679417610590878637940057053885812355371267869526175220157039479431093909808672155264692027826144585964627460770424179298920172303347517063187646842113253833027552840644081205724982908955640203707729758147835751953975147416224424043277048440667218888553875407828294054018225888690353645196524291119220329077283528924742049125963915730719672152751185561750085897648872364694398889016068330303137331891108552891924910815905890970899985507990457266712267673351581748897875680679287708197603369274397591736877611815806985352409982675979739596814576958486361659085817698973944289548853033494204819189502549108590845518769260467673244293754154424904018024346923222566180595899690990677126910331993618096635123772105146272671977963898215856087413528094292287310384928202107262246457468856807089201724490989073722428619671091252836056574067249751642636385690886660875056670040247104203973942757462591410439320869886666503708350287725551091308355500834933223076892494725311206365451009551569932474085828931834562992726172577120769939634952540816507050602346784377796575275300853767651294606989184390357689717049244504468045376193315894046122302373390859073928678710016436914345072942219839059701892204678936420681098597186707458351388068242564864198379992407249052157123459787870427974117553160051718573131190643619393886429189109251302715247612838164504887832941030548032432674981671036028613641166159751016845601822065212328877559309128547143909338502772699464170588476447609193439875491285574976215268539572817338295357308058084785273533929995947036983147598239585737118877696178731994338106224452962974548455621998452751566654382132723426266557169615322518551990073783802342205910781654458730080170888403101858041594732995493036570311401458975460490547415377990160827955460692363180093689532155193502643241960243408522597566346690134478692452014417387520198821945504590978943810163348117999102586626463756550975724993638729786767952054488217819657224835548741645960337010886122227871227813029224786450299647179945081851958278591759148694166120696542321972580882987122381362547374478406157609838360592557774425695070051700589816234355632212566233953799468370096254108799136183198451428886001737388290995189849570083092400977084206750625874380095353034767177836241196707092415314101973443928089362717281386778916204082789620837695344908234147578341379777224107651383672922151669603695434025914041039898240602243048313514646527726896845895936283206861437574094190995855937451755058360748890269399552280105162916770674709681807567236703497109704923779594219454042686287915389818689271636847524728912639464930305972001961504260200566070676571627855581938038339977591393541561521485051279820870919237564595541748742857596918200678332487683391560950439715063684470511064481816417882621692859573322153208373107526079127351257876981532738838224934317497291020968772058241151140998544359042884774686412255799378302114856156167978223566143023371285835516487767513187762645759584686734578806667089327099892074293142390221685028864247307575958749382643964925161674291762221117605145570715666976524509510238898572206452619074902285675414422478754862066931076155130144047286685795320281898906659400195811538051772354111490518016232229160055260324016367963695862116458601411611422224033811519166986773287252342033615384554625952876308353383705080471863037155936982232881660763354800147195833713781608144015557166915031157492149330556315248217014388835833545869817971266621834753831741484434761653594020024512044461443696018477429733242790323999332980379657486513246116930845942087111096029731238721818011407444727146454667125406918953047387379505868136897970435974437702564060585352328868362394835853251006313089065514072315913671802719341512445783669832497022544558111212355999854233411217449639587280974730583011751881259800461900191397982547143160049248602318601228503538500570092090073934741639320417276581760273213986799778389107151430790603382724927928663698498717012405908302183022845979037721534809330690819461414313349329211781586554468489270591295987237727282948576531446850822364136684006353889628481514859757941543461846991611105062944346678661303690293772853919613585752426589071340166145509770750947329852493953709971838707033369643588268636628536895000812019254554304622336610426880868723312715758331001504959519773090969327836077657657705345225731251635829618816569013727862519637138488309622733658814717469442488131034633735596152909860078804601469187758325723296440259827751489156663517689215117453029050130354586778991280945478056349557093330431561986108599967959905608673114444903899152660766090168250223280309140826546713684698619071295319020358731119118482665682611954501810209343906622035232319720234313220357530818084895298053391010614456109316457827651552002051593588117018647574024300750307709508827358026183642711085204358110135084805483523592761734016109170719048112632870902504215445700918192096820908801197860837048690018374418624758111312188181099463393904664235035279055153387745599976486744464810918927682303446060802034291169764836193984857790052078460806298623905258035196046210769154762959381637555198268588617910026384258516389418504807384227508015591355716055806038766066150021752975533724817852875145938127101531306943531397346143953977456416154034296671470411192019367048488748120998159931367053873527435453266221651819313591194073051293630249716092182726355546792126337479550060775845619577682468388694997906020342284583563607614510493167549558437266492396834647361659516224167713202635647503775936285267954860775714044602429440644802880549644225424370723067120671684463451960641644865130277113535294945840748238295148510895292571045938810232603313159555230366448706399465559119453407581458486719766289447384641686164322577037247185604607159535216603600764779826229757059331839582570365618210191164418781838896236025535827904554258601494380928447360027843811297952494830157843743614564528907547510709453783527691145641147629472667220992166328402787006261476115862178958648608763140838758884271074030064109853153835159447924310234885439638345186304354350347261920846630542607565038325913129260729584932437523342448179438445624731755106615320119619262379705828399308517257735168604529659934523092561721522427341404862705823281252633284516249682046079171359111727399489581703255802203943636816429236689276892209166968690882623959706847785844618377197918895855595253300292596221538364213351696940492606447667116177964470203281792436922498793661545591458937451820199041126498268463178714809199846384235850032576601587983713402426759431035944944040323051965716760424256693670704949870761519363309807099727107115290438709664208388016709223067009508851116028860977904873607749733835057623738983079477391002951227186506428055717409771453211831325697530462977427751866296797431454931141301231527434108290644261048169485079619513903303120898226302662055705470813117158674775218321330298022106929191852057475568909178207712709662747929456782975558307369129845171069695424918825763236909135080611703095746253699983981091911172619073362645854947234402896509639046621553320732652714270769589290542146908053998898506804846387655247060593376393597290514850256236819903319890585158740555276092444907656762971876908795791684654645433251075164823585478960906411512434270892166237353856123177810306507128245685502649610212028162525877530553958931786227347993337766390066250162349067454822748184774324096363191039721323665153274345716575140737508059374257813228813198291817288759102783282161022840329099014268529107964598027888910140782088230675866972094886911783357039463819787918613826719231248452087618360303211231205885534364106385601204195599164502035835324563847511095021990805418847147620331829395709760166439134673124552734259507987992035741766271404218831645145981634775945224176613463375956027099530416080209265632030931648668779133638406469777276996103261774212309493008546217852419357099294772872841100432055843696101461205665591700596723446757571988794589883445215318679700413211124561781147408080009489610653944843003027911330133137755061210177080239636821871809151623350572009062895823926137778297002154937141439967646823940930756785099044230707642311580321836688661306159415085340806216543797721637298213813222745591174952952331930776622723677285183724361785484491698305396310973079932433274419316283325914405814986601768323876290521191888526217280995651794960592166814817611625844629248679528766097418111971688271849233408405078914934488134917772703886877371880155627547386044163385296211506742612329144781985828941681016947856964874038799302941280612468136038383988171564300199540806669699169552285904356419378852962523351458258325975655142621526250278502508104594954969868936299006383392749741514670894199428355350889566531791220697721929603435476896097499207421799466963572313158926470263476615408558801826600546948312848373458616718301686412945940960297240968734114962069622914119881336471417267259524315122815109097938305798910592106770116465024334887666173387200527764258835753912930012192761873906398000839365730501841380106950302956262393460434319920541396517807177644881078522670478735254711017334989252335875990217090456932073359886151815360355039676805092276206886892937805535783494687949134364738950778894989045953916964183612104402549303749875842332862209309998332298659233381524835468112858194318719100723583415595756931856707709975104323329500709192717883042801925008507743905103351698404653178937880068923808547936632998917351879604026291595614397637048870972655361341307869397626006190610285482323560355361854981668160110282745403223128065058627122547940816346235848402653920362644640510202085867898906911718036252892443521362590958602624910411364142565929726260855508112350720847513805181086927723233792082725521477597006394425999961625724818474849680161699536522892513330588925848391709161588493681307323973290731876564729436635632078124610973452169106898151236045239419826736690845237470241524572874666393199194305024458607133484978076607079083049785431078930159985141336101363002451694839326276505140652604707046306635406592170606145149920095071503732216192073447197034772355724314296837785497447823022872747998163328416577402895581486686832333201340917342808816047430823604166736524107448485480741874824100934069121989902445892939651213119115682001872227593155249886124678752832752478053389877606483410636590437406700050136254797688618362479902864904699578968214308158636198161358667335723752758598439322353848988854089680415361329708683664030125468226907960847737408072990574755997076451791010736274502442313650128540535935722260614286787160499797226970368932162845572502169101921752343361349901249767850344846827285729491524188771058507330191853698005423169044827236006110740739163315545791190277810303104410070330464222094757502332246256611040847400986078128351302018923619135938266418601841492405627220122995070951684153238016841730384458853894561076442181396638709225515990339030468900118573749338120845076789581209269739205066707767903145477642563684915413234599089829975923752774877262715012127633769480013277336830525422319032859800047934314754776153458356507495476710782077281617393410297828668117116089956583885789522382058069336394359166917201469721669509283227807519583551552540931120004419589166331135249489124851218716467141843171529913997917569852821509797032572575003260114076378486677101833047466914583484264175843229602704618629270417860444580321716533282128571086625615318261087335115529133403105137964532026302252664580993152048840410023962353986837609787163619799397129749509843985152214797005378854547418126923816390272937780687776248850727016404713119110983172318242560173423871400720014205693487283815312684467264338609178876194450029667948476652330891253016856073261258877945092536741377843583640839867435361462004079103738291587778436336893459312388350801123350817072111489545059385317725329099795619282382743131402314904900822766781610926444267509326318129061703780034609999240478670580487859929980229359948810947013798699006127669237678512724907885298546569611961479408923859701367997303278619121808433869999762759475749416635525739010890364080113241026761823438165949508364941042729632187280599589898198017855067193349861898111615996968577877800246705816442422872530352130337683413155872684749100647721453213820570737735672019785497025057282192352369597641436353636078110843294880507483929892579048082171189794637696190198311735314306598744600212640284589447724209013565658384031553355923648890734144667182264265976685353243321207174482822340975874464894884559901240652033275983778352571849528584818288737665698942048849791983758887470906449077165708020425483688124432160610679796190323278865564538560336685576680142830469091550712697787832444943999963155450415438742185281224173127504935838779271941710045301800583730600247347871382272288924628289594059580059794215087615843644107419173781687837301409976355736789429709041232777616936478885921957290212881506228832161335320194202395443274872979915713658099919206333453680436300307553383592728347253356529968659430323028564320874194752188283593904336545947729398781468151058104955752878622400617558936501324789374343384194677102794909221244971877016625672836513313455566090582711950031715744575805768938828502382463826709498378371917072278446411368208516461717880206620112060825151545901573015849991223774272464085514036893656669628380159848067951636145449475978049451721870710614414535581075033670494273243314398521119034604119116090780197282597758320215634990069440217301527674269568613607171538365639054171315054945586114760997183723874473010235748815226216390307531602466714785524418512595439744399690751934409768615214535842456151828232771839937278236394276773453073397563421776032258355006412739184664396837919908958293010694052864820330516315803200270018266908751600372260960589865749107697065313412296937292770845855984800076367423036103545590687318476494367912270187886543998736379343577513402108789721870832321149502027006440827849965888728468908285608325351166041943162648277190727069866978887554246760752367386766672928616979237367905125299251264621113952281860877935326839574034134835459543725320459616235993520382727533645754000915198865978097959114918711878463057395028588597374697617323675896404631626235502851587792027177379794826331085637871154600402697844100906312044048395406710857169384646595819922963029688050748160258863074671124701785021351182052517046409979920781303221097305675397818272964050538082852411365856565980710862943008861480247130986781212394778647890442970905263170481961498459099072586313573015121393946290558481420136416064445727086922296428395210487544345090729630537657765413963190258639302136079877158668652789101992781867217053688901605534766054218803394055229913560415352457893648899704910730264619803931986985053042425939291005929770117656895421327527179836380635228618603918215399409961869453509913674343337490547943493444122526312959483752338056402292136609408238158734126893591933491388280016116923024140235475138743721231764877038051296757958226740616954268282151635060000427699584627977722839439136451732248279248996470489646681446549165710619163970975334993840416374854491719366407851260742993048292136313847151778897417315901625954045633777259186554515089753292339538610626670461426431707191049090131655592540838935192586779865018484242703419391891085708073509981359278154053295260968551403936163641978731849658417362318215977000823916924331538833952503217050025800928189723904480175179745038195257105691953648072586300557319720901295321140553106538512473029564784648667438309828186440475052694226066409028563402124516902078836165320141119802633248749966216392164786663036015111112115770499325071398964838801062466792754337218116426426461828182795716954375388384068878454093555681919708981502712328389322736635048413095034983451214276024443774903028851814396706721749909723654675950944710994147214867446779749974981644547075950161472691862064248726435492443248325654776688135456616371293413611728339302110415769617399246292766360290515213931539987523088093199594008071771981178981995318671431954269955127164434624259862021590369021014974293314414710482585175442489312987054225920696569659999301107250100542363690364981912686858855643861550393539000448315833490213955414608089171211918247306670353563352477551313728523981655871459262784805555905793495012674089001668370607508211963085494174088748096780328765953869244006942570193324985898276614650818674663354821791392612887388887140551965255655714704697455554521104977666855359592244681349247771957648999410453606274035324417986313171195636620453541315684349245464883465127448985398472972971697611656685284456401176094716881949229510989351712270904758004531137092626741393484858217013743246940142885753125051788119066296433768241599215634094634316690379092977985303269680472238691315597877461823524294350441425258396164793909107618308483041221822951976624223529073983137879753730481397296260480691340824229016664323434876785248353703228677288162847115168116678750219125137657076401722062480923579000079494890576922505622413841346414332454614064870433830388967626719859817765346469197934931240794771602132843707006068129353232115328875889786590716025904629907901754285076552068369896501344525837584063139447664248933667640708269178903184965462507735063406577937819119815345481087340662215568696880492214700338779489613277052987660710599542788856321155500341363248631442502349471718208586863756695316303985228033411603274198737883068743121627563122046850217246985017632717957528341705418132607115744545649912303568428727733536216589496515613823712511652027229753591920255069834824521159619371548315875145435087231732335743999496155161731370280708427218315740943711758734875875374346447207625211871883311016294142138094077304106441931963800579701625300472767399797953183657506216314941767741977915648730506651424693264074733507682845140509905248015883492076109295920307432903254480006934225785732978085227885666981368399847122714059646533183001291392264683533096087400178497245263042336107035804295779022610428165754999993609543619553031794677105151318735448762937522510595092401170248726582865433366965266301931825220555071784202198479769295507784770749411634334470152318833902455717120517758682294661071722135919657642240985641686826749522117622583964777614292619646596037548769600403804041553069972709119054839840095373223995529528527848152508029127921355844809628524650186606732363115370668781013887179412245469845787847193807889554497243732126792941219045827496838861952571679652037576610040986048473702748734903862117150672700093152164256218719061324270722649333865746698570004149825420864575839743392328754080331833725354723535764379895988503143227656118078080053144636721034800276308445981405283231855297463358306870007536231018735688932489773023605606512624911359529629661350709270676830186937441173788982668711080879346405688259727673816509560265404881018756144382972905028460634690991689379277317796676465323983039724822707687208298901412039029347548225678032401909624035402417147329149305522019385469626447389945849118521450964045534493788284955329321873730071582493549189528831282077187706565309292047941142192056264901189450080501543590625917280391180299314428609494313411534746140553372966100234611403514982607990775335265669170543338285729445128256049422368907689492419569944155400073197637186621102838233750153487193440734267841556532477339445410256438677328368354980906280958878908593498961105644911067891205618683282601104301595366464565512009075447884546891743185562788997675081778096113847034469245019921861613667912149756858080077986978464514159133665133170791856324283241316537929430034165185395311455048231987196623445973750133538253855975216305313741586099851511117501927159429181180565553654630787130149506994513511548360247382859364286972626363590279894932100740941561531452147467123788830816522120851491424406221734230015205080842319642072875981650638253700137430221837163302816199105118763956553569714457061453179618203575483087372012350820338600570250189528591955180960455247124830517607255804218386137873324637937761733235460580240488070191061881497728313474155291928627895023572704394387074556749828062837907206542304016454500905998503329267463010755520245718699910239941491594143344178750865735664934035827206805617689884486385722293642194058396731230191456531859153873393927467411981104083570820507150773552471593200595251373771806109568842587630479092433222475768264422678772379830040038120781798652034245640228759838614666038737104409899705518356044914142523306189701474263192939985824626843882414001945373428124890612903078925542232269747828364599562704344303777725525777573835360737454021245621704540351392240557094550099505558770362841026658491274780050179012891902160827961335808850894792070973835817741203157654111356810066541978248635065734278167175651213739643971213248175859077742573574022919925405040764359540585445885025182790170490112371825592561974575813706172871872243634933533057079505773533342170592171542006489320932874024925285478876382902461077411221584895674027330072365834856890397930750765557637703034425221001974556722216194413010603510279820630201631246409903792036680891124530899599447242190741648964206210039189827400594264606221124685329555719102578270874529855783979489704724690759687134875300996187959904470788898501151014812464396193039108158138423752552238034287243129673139336279293041102062467414216764932065748161154301600739786015217871688088059225853568776846668385146731996231047104503691733766425536128349815388807727808560637506854127505765905122066156399798610017784692871203891562849831582918083719337672535516868688361713360909461860638974752065167958254068192512918044994898424827200481859381282195822014903068953286567670513794828355972920772495853556370039635180072343720140143566993957068594869071687852165621490986261949328161110395618003063469384426245073686388207864977534370660241799168275512511130903826279042993798708009690107631057198077943734065024613936691181268025066273962824871693866098536215001392110488941472767249322426686886856404270547012296696674610236531746999139575116824518360229262265320711966184970591963891794389265933054308026090513725489954383481360144871322084332429322717410945170160300028170018044358125565118158015610921496532782430182128371211440356959736832983016236888402470202937323813997510421022031455186316673678987003197383460504274493278691992969804856222387083440135551546172882559714462544042052301246154418853743278951920345405787539521286947763139257416721808435241651594962593097466459609227085892277608307700819923815723226167615178931686447850011121987512006003375223727960765064343421548331870858793255012125879074583463035882736097166715742948031768737306675779750823088657573670499057432852063361475404311368540847482285930068491073818701905506070167165816143488329488638656569421505973529837714522725339570527957001459992371574039654349958672598466819703728226428005657541591522214037439981976268133650159185021839296802298056676645311492992644002500694645974559453287194058700858646936845591447266937372536805502586248576134298282246733408938836158011474278842722821408853930319888419860895629071430985076157596966141364986028790771658338341161977429712496896420809238586564965728968966741981650883473847980036431931695917087365518548188952072108562575702676606075349845958985757793962566474099352079460320270647571885575289706535011045672733332070777396447590397297772598824983254116052272088079548125001907786319220941833098147465691788694808858822392995004338976977813836294643986634411377366732907497182966778526396817966676298570347401549233224958883158024392930331575944624864738837003677250150695367615457433744622152521449326069706695526279888068072972666497400440178779084910246326029231895968414129911334085155674614899395811013900912743154085177131377008897307463424570377203481105787202981316451326190378131298316223144468191059114240534324643615282560855906149207350868444538190528994231673375181382896549175742363786268015942327232470309619444861907825227402216619530473587358503336342151827931609357811385565793992360914015437639844475493147500125883409316159931643809196351239174100087848425160570583289566313704564476173426570009300093454246277934009802718177595218995550431213937757348463549527551391772078088445713503211324428573921670885444919021046944749932609355550636590562032592545202215148089875836176827542157870331480384768862716861498968327357401047111926406059815454104578264697780278988499751051740050579386813897939269705502149352727985508273358098682204974637967708976465124413737692683287536724752744989805146274739121102294762641059092701825333132784089850912486440024095041449230770857398170019044513153028290505858419966127764785975217892497809753606375518716854961904294602397077085901038237505685948085300114843561207295060837931165815273894149227054502422977126275080335746798801077689917467103884442898291514417831188174793975250171937559980312896365086814982529522859916297916006502546385643106770302703830372558201983477269024729085795268335062550510920519835655132131014097869814820601204804150304792336314850964483637801870873730482347611123216218870642174030628329400528458568445365330821222814070119286096089848685327691775142525180542278625131450615204507208001336736666670041424977304121252795837356277552832242114344768831933389577765935082832169027195022440015021965735729614264008568100774883430076089720363684236943312596835833798478008118120630000354941296391370890194530443616425039670523054967750342408883605966627490408929846074746965690011789147431483065714896373371294201462722903232427193000619340954274642289324343142172107647791020702533579436072947668444033528747979308413460553645156914821242563088975481477312906078309853120325952171453276474209663325926372510551140974927080994560925632287769429589289741306229376246480367624284216712331953152968309490776696115407221333627577530407196363445548878064989989784591996285359216078416323983481675394842938762879046237814447994385229632911829353039209215180562884767696226350281512027213222566845982180235978445774901840778356653503386328091753537694800335492470681247275185491825927576728574660109243682618497844189855224861280417753826831533253671389560278945018871541571056761259881002649564454182111358306586387011130781591989065035679724732528302479072230407944440138170794368065798260953530046438918115629262292268595915942691118892991507677857104554645109691727614150152930880182239244760028246996565847888814432420562590048434659466329971547923585143529906439164714718052532759765682486265610003528500201012724836770568230597283355168609522639624134828160589654456203143563491150634351742468356713332229604942661146091110543393148447315931111491692077150291724931612804949790683414305793729515288113952593515095795230355588309459257135857939235739396057569982946836565385162956811916055530143047305262427252153332768072188944739466013211536983631735264819102198182663799598820083769766109062396799882734371672393887124014656006991533331240259223488041738358373486641842825231948634489573935568553153477729255777136895148796748089411391606170570292929551873209494426952608736269685564331051698505228047904338875608258527076101057254425634643456026969841038598152515286006980178278671409673021288520003599468275040599410648771126162235767324665470138611661862977629389167573648423065662949570312383866196904942972402031141240854737479451442196448573082783516435312071603157458826085361331925982307504916160291234227903817115594090088409305607793752853110656454345148026407022877675082554319440686737274855938317944801950711364557829866133237060375997199053900052729929747177457075495784768077398212029930932873374853602491354312634023991549985416818355458467612741827627094669722200382679875160995530132431157285503097574881078656280301229306753829360053984086726158385500264524798443433964492482617899801709011984787235452563284407693710507421418632430704464358324219737054722954695889680129280365347235206150761315333613054797966430232087173921962662594144157665645276863736355962649048151910319927683776739387043471902563134882350037660602118383449270566981987060351919383225760839822131556416386357193699699259576459352345732506405482359142314719459173762985286634625298394479522584762935636454565709991662927381381586672393027388945320101418584294503336046992061103277284639808872828436905347738338714589838092752075024372963636486143067439886714994106616353435257952490607817175630607395729340350191461875389381244956613657318004176593714347898237090088378945383407445578575738019594744818468389659462465939586439801174536124627154947847041056894021382052994393966888915075426394760203626523107753282410582057661848408596006424773933048252922789121817461851359177937384699678342830906434186663923960990955695494170650185125649770320321183044417761391396277220474521542564517659766001298404148456027819186453271012170137136002611407771330054472667183683888820248941121379251004478361989483099616290934850795143704928701305114708748580424277890106944618389993386411830571505746047281946966692925080567756254410913991254228163881717340814020143988205798997800976297209820506371245271408195382863412396822177250078630463763376279751679247519140861803631244421227120330858385698556040455118203332997887252293640350034305765082505686699663411094788213793336984153970894751487609318982158351610221259019837476122402923066656324258652140746550512270852758331549904037194114059201400933302373558319858499723838119135317109793508194141095994810691113007720870817045011527640184497443844289342345098212333167745165490110696044819244045340329951406966458120752410360928446878368336238783891210870101904392501049734589232182525350738908634523797094138078385252983122598408780501004093470445535437053752179226776500745803107192989121957368944578724750041853019468950307077659498459459605868241122979594549056907136626999401471535319609566865382110826981701460647222442331244399922656974617114280032886387990889929361135521823254134139382520574078871665402117588035437051826082395404129120936082972137681623257512544069812244327280054106931319869106370378062067689679006568299959457417182390358885790511366911281764644904506331011124977276431611847665776419435503317503024992026159753342401073405716535716935203462185848291128372835002886365032844010097698931285069159862328119845089751048111577017940614649456907516124532414196733518586610190631168256236201900392489854912740905412583121749701436747767831003782593140694496189450413456748138801735668902613621224532032172210798510417915615359625981276868308482015096816131326258976878065310069658630375762858971512753817245246430954167361466709359429513507903686516963874559466585158733824489061659245067175728568720235273955850248493472414228522841808551409304872541381473937165091804595843785623441860124453606529690367887578511798783621825424762098679122743192497632496701303424542472301386876893468966770410425528650376003168255792168874555150861618656969479534267737784664110667365214521321292477710533137829937469339529778798770961933156716984418168166457097095279466162751330430846112907598162243956824898561016430784157789126349831998375120303053496057698827410165802876890187991843107998569041466847271947672344418432442953503811813969765069427112976862751232410215759961420420121978544895010583345452072977846723070297337161965390338795211997409817365210225261984129161249270772357344315822895945955017939797139951902110127368200407504600330914440619436881385889270896557401409727052681858867231005015330732191745195684250881302638146197421550499617404733838428786587269281929513629533366832166701361456414635352224282724224136621138494460104472209578540815237922319065844152791247691590916513075991907050124417303881390778051118414474505392930942857533650736517148927959495748923143746058522874462748809876379211073094793771147408287185538285736103849911094660789499721974646232453611993106203925176603818454636060833869364189839002243751290292439986527515433685851423523915792796942961229413232695508420342393933910594794566774755130485503129884292491641515402063141124875401918723301660794436321752820965483981981320536667901201891195782486243139673652358513956141332756541504734893338415027035468082961186882609404050780256058532837120308512004376528668204668154059640407208290867664064937262932704968373869706589679867507302894469381490999575980190357687938599551517755847126917807676530598037515904429283977615429325634433064484234855604441591151601335566738574614607895212968239429478016282447349358354102605010787247765672269327345597074269768517862805578424381642637192944848222141832206794484921276956619217703816289684831178234570412963834489075968745390574056786486464781647634158831329923319134486505173841267905129227964102305067604926981953919069496126150755580145971822439145818497091204076325826128247294278546853830695295539285993249050946153054683468845537381487122867698840169480990172681052163117952260693763234551279256915033305526581273002906381348528356372216361916295680880364111586427825925046990379812591894584018639016363914808912640913345550752129140992567484970103002387895426844265790689864729226427857791435761796596734806043828102154197713357405064345080391988816547974349289507710062233431564432104047579757322566391749070265357806831295308566108707307844670498520110661374796100389037469047397153183378103519948120210231479533760156936622181203464022173801677218011719898983796163676923738600914215590134228738539367021870319749191832441868045189080653339505118831218352731844008340797758026474725240667522072939336963634748727199076217096075825206632945978921953756525997675577387052303379723677608917835112380228661996794185231149710528127688742330286114198619828431229668283347211851755635816261929020748562680201356673548491837013841211557847255081320690579494860171476499504285103455138859619102078369044136488264071345109740183387509960570114740843562390496656235927874021748896257307690787709137129854009733348308489734596671131071447440913888543936846482732034925780035615622392717895934895247771962549724741902487937131380851882965085247483617526855909295933410111615931501668661139228364700679775677133824619810624031132146632497605237527091444957933902923836356550695677525103054125198766924082254683527958711631887211679902084301848777863586337343371206832990582080740411251941649960782247495712569080284466126703006202436741713284322381206335792256175134297158090051234615223701285508329296392672826688606743422939016235247027939487710295803507122656446866761471943906934287577735685625862236334233968957069118995869979561933889069466901263028483060285082982990534114902356151109748091715609199097483662623839476754618354460461727905355463571162321309494794196157803393995449012617349618845803126788423001479257670796989225020751770082023676812342271370010289899975428390014540795943619140002192457827512807373349180164532755110741087584889318736343313126119819143861700185960024813487056836468855251283940170915155196762913833986749410960350723287839984659590358039935668884553586085879559315608984012518689856833646680453600239137574810441899046445062060016401611124939071395519535666595415710334354555659603369983068604058065000174707813892235467489305123340376077386635751297974584604788015265049367034416734871355217406632974587364171686373460862410453162056542765591025063656656705680979941057565834057279647163383679971000751782451896229205680711553520686866684172354417565119330211680760879244164801049475833988466218861548840672094115623578769501691811243686706932351382100721352144554593870059782572576370881829136513336666316941964603358766593784173857015639527129519853279241160546298337385962556075532892677872802145746838102660777395738368003392543234372384719141682306917593806132476950947503507638140997558306283483167508952334124000642991846210276598295071128282422439469385418631953018966049131457984210947636484627241062208975014800495031886536011627877406363230776795345753078479161263892484907805777908310823819898404503021156854829801551984669793215931050934252789869384601061781867618409036436115015443941367925737573462216231650339062155332370719949674714882650490436526839896036081005936835411310821207548479239523604305777554207032401653841439883660765070722276395432556556248770187888310948362045934305741616956309203398835913693301383021426493473300396509055879339712483051781517832726700981376411928316462554761679228243548419306249162882916115172414532271911251958369182437141670538018667820984600849935534280365229248034805475631539557918621277714736501706596010992446893460320649432214762384123606176049596903452318576980036207465676053104595264773401719474865706578280920627032714465340212012798947044302500697006709387273965618046258955484422909513771132396515732740578866754958276326305321811966801397870427634852065445387315346732629657243818440727735131951440827321779268010828237942952823307367882009383883850368938728278408309251611259101579185177021895725097903263069295700144584431311034537963520093924257235975012804660994931983496422477047906466678696272797382741537629769099616202985803830082256084332211137792912690615929863999810733121322930014529312742423396053448846718779906436623909424904813196765991269064293492915527682864109446685474643261769257741171369627912522372455342913567863569790982798855305486137742883637444364179154297116429600087541467103465625199917988446470752402004724048603688582891626530997238625519587678398095211826827761020882233781052421904121179765110218452572178543288327527688310909769529124013370866583040615695587778691771008262283715113286619683883001870559143059273408553838891214927807894227619623360325165630099392220408966228167679416131083759303637539297250711329497414318950122324608706085673435750333532608249016559013349746575107763044173849094477738339223882887757719809195462958063815798695500727315027340978660909409434941371231940567001903183179753355476792209629012639980659613556321943704592405679662961985036371396617142184254550140212125675670381370177610302953103015779158178051145759703514452034594036908645200716724436746948963139643368954876521071592721610068797553929802687527234194161107057242565574321965318154136596478591786422645216878490390187088176863947417366749330062821695758201638330917281837012692062619996129742389918014697655632227993561743755213243394368037260132125405487908542353103225018393200904153057281159577681207036466111083318919450155095296205514655065979364928140539198196470732320073664035682312361039849342839423128825323817501864220946681727380893973364035882484359789019139155446942476023125657920308634737607253254930209003506477899921113100022485772701495462262464264497232676381377538035749561076931093405989389247628190584572571853147885824535913322783105667967264219112898645819322128762525637320694582472440917348647037730847154368618431492803355576819403729219422315263214916191490000262048820324286639451880348425954302535475750079687344543275141637325786014819176072228111511175098077731913160842696948535809759122791004214853049907651641371404372038756110084629180345876796799557286723812677125416175412210041169880587842629889198043723981795009726512006312305346999221515725161494108628047081354055022907567901490962380423341767742988046419870670447780375480634368494943920266906057312763462635123989920261319400987892452290542647770848740303622373077951738029767046162825616510932411950906736309123776918397873806428326888421468903711285413533607860042277209540836482643684925814329462670239448563759588181850316036853319306408709379981678484765612817860136366347097432345679158938139387235770937657443954242156424470652403700159433113139999246189965108908092734597095953038532316776788711662118042003489010457529821491261009030011876007657388482723923851526010103284882894660701448737008184743350221401578440158177509577152659823561317471184873668321850402784021439834434145809689901914371214203409397536961270186083185393232172795653716149029856356498178807672191231957117534957588193616665924820440976784158650115153679225764694425429948852114029766786200964408452856250798288173526865211872190755152920580257264017996900895188321379284908230902948846214501344786134612375729393551011510979192655763585539019018038763638539721099432217680796154156451186538517719589195438425947058036826460702102783898161339747603976696618276076089095621975002497501722212861420971849716362184230348216369470906287542424028514888909358505903391951072748933114093359021080511345090682958624572178927944895238390383166794914609187912638496455097137016986262132830210677694262832221317167763104851293319271681577253428566257134596675135072287249968066572932358154023691692684853535154248260794820713311413413104353516472365012306740740040871698646121423972895362862252527344634046162620437432536463673983412919255241371849420703115736918032782637040255757333819601848320537058473474588082584305713306604686255126873390044168408576660684048370460685142697472238413401120792177166410378224981601381657078037990762627830188785472960028417302691963487489883611806766521308758139973456555639668240144055705477983829949738824153320712245166886673628409121676584975736169746016708434218249422985082334782160852146464003974598328110214154814829259305752890709776414452745926332113680926487454942280058646553809935790638535793338822568806669299837572239077424239241640589837741145953775058305685005649067564658099852062424300507901828068917952619165012703184977360528874907754977078845927479241489601945394384934789095158905366748827471875411334598684613456819256843041769942296008451533713449721343783217716790787149469272373476403024120763384413166700328041751336807632063874620433041677748961964245887645066940712450930834799536828163233816204951156434948924900241969207168033490638492724194633617379481811941116905786151743704617522189521002876794843056913784935794992865000347943663313473852629192243062570733861346916692806249442366100426317862613634377837509936957591637032856470378136863708394371478723845830808599624035304294080313881161477051336475437709259476806871681269720519738975339151175165607857951824696485321001554019949413656788411290448793210120047747173569735958090484772833244024061329677631495143396037199885220588623521716238345587793987426049726367436378688396424893024188156266813094454253436906546909795372835405974530118177643198990668505417074294794066703982046212850760952092942275897892252761864788742937028188703046520952176700115755485130509989981074237927992540772170378556288795792511445580186009396962004253405347638730468622147467213726600415338701759100637331270919212026523203604528226738985725280629995530824103320120011877624077476794776778286085389432250677503687741203702384382053865382653694514973139516229146699271170121741186649298298152616240571551383332495051445705272492288415580102613534337589860017115920669962916838401146617930537333838265886563891407235688461267981235699007635506741094520192135024106791045474361537399469867264871453807859786482470157900836264112223164046179949777507639689409931553161422424318590616213549070228565476960971750638002408217547496291357497811870771844187563585956137376590721819537386833480165580577889144147529632008218984976363935291915314000591284632074731425309217827901633923687477706663073085827686028348775940640040994176857166776203789898652445619553706533887540284666137444540158211915605093493924894983431561988112079132384206710320035025042368653270123217310455912353678408597193484327018498094256495326509821686152805846988727437459387664437843803459272003604519754730830447764404730883709535082117978436511013047337094352886680802074782776614841237906216030525979505307715039107365331683403175366726143444279362201249649450636313207458550698448616544238095588425825723391431088860617802839363839621043555294322226725266226879119538380619431645141316070688466226251428317280624388229012236050952511620906897271546085962647109564907762392023717367886559998093398869971353829417029395276986730804123289096680022756943753820785886874632280994672557168497580989397816654035634122661777853836964759472220944809209120429022830548956169113685495554751949082525428126602076239883158749269845361012238829079942652699162725330912949876461053213232700910664527930858992513284173094418247261244608125198600417763549265072400383804500885676825192282330565147840946071929597352710314386687484613672612147106668248915789547503586869732396451318711451938511910585789101209147485098718027918763631839166599464348110336370643639222557796732460060084226991035715338207373735765942345893186359546357299525998205925690132315436349575965392555904691168836570893446034195791826856334753555215668003133564757766448591892716573388419527609664905724567991203649671771404065190778245497410005623417598708658265464211896528584413930468710863845355661681427576190754088321250869373588561391101138730776694802097028027642575999742036931956178396020975602082140028987169349036370768212727043846230171786604379769458236763591992200923612957244728861629592351823084076160850266934696971034530780877531368537624209568278916903219732401984598929932322763868506827707014140513660561055436470878545483529901934822477650375279973504151737517283753196483255910529846193828355843243321231454899435294099241020413716077320574186646478788368518461653417446436456535201800545294111586388717709249688048126539381795906782942204890611155024406452636456768383395533451390388786983987727856697875893193403611018469926003967816718330324489808506211954175862277978996786718876884125138327618468609459466048999620458327841376286887723081974470991895874686498638050919018888786895573422202346214984047433046230355815013664127361756898292909745535474852019390791685582904014945152966098190889523141053910678191029706570107743324695255791420624559666275491557063507417600071100486663233209881943491760032734683271084551880454675517059357077662775104470901697070141191686971120076925055547626960621226737612784452015019013889391878095949217290876373287040947275783926740946706722573904329943949967722719115342786159783616421153947251841725840548967134014261633049747674881231791797703358674977285995158417311537051483745391419096790608251430105253694918288457386362397259839481874768428253944992312263358681959434223597730563052165756665040865545790127712816738981674848123386149877973695112117727149258847494562622867049596658237423044393097026659033330429201917918151790044557440373684407408319922500555269960846615372805656142756320613952354354425890943322812880503604630822341186352920117597633927421692851719615823918109611760817560024110264258630374440954430632428968098224208402282540838004900697736195266524236017961239048574273198035897379684768039357915939028990070383906257915045841498140247874473534858106810266567248544029324012696226207162100976466999983641203456936063925593365390317416835475141630764686531194797652578867079427858211471323630931999263826277886476325209961897881352538122414693695152066844216148340343118441252551594408350501214759520378785514346708325742776598049328526247008809826419087382527242775859730473210568883979876717313932392919462459493733086368908241322067156271075934733461696438831585477944984908826758945054613716327326441911114311868223097406665176823919832156025248329468945717165783084707994725019778505280519870069764087327416317827855417885640899428026803116595120804189242768516639242397034166062129586429274382018980014411587174393728815055727355976289375212246452322348829734556576286622499973740541111057805542406167501717219703071335059918638717971530225681000957456764295503816246546375514868878545377362802632839074603483502727914028405656580621682485672809965441455590902232758647207789359795575197129444145160751020379966806418787658938136315520911516429651500061852858286064976085586982277481498778205166273942083115058411330623722447552489920993601235400625326959808188165413273574828697073921525373037928701148142218632910301909645278796923895380976322396557241215849075474027485460540552381261564519154370623160326079627622238289814774210315779852907601745765900412537903097576270883504788790868407859119869787196259089354328866192712598486028449496991013712050330938136416939024251068511266008758485026230986912043067250433860569872731032020421165414038850132363837987599320072681522638143533751208220685254105739688336520685414315217285170151617494750814821193418394205500595382976447202076558351351385493989842684795322548582012745592358953986242228224573159727754161793103352294784388753401447846799533484985053825213046196500794090477990093412797386383137233573033848991709642261196051862065904118428390332330565042630806752287392731043704505907603501695870577612042064127108274103732674173609969016538181305013795142723919489467415565431836229733014772628718681025930303058839205430035479369020565802578304970315700062253074028127300830923755922497485012226549902174568869321800182835755743580377832859476064848695506043099154553586635043577189212056082135241144962057703676935586046074939544423653761963054216610508435038721074189630688763831446652417717873626834666475268394009577335865178407568206485364369200597550795243727861306723960734583471555229639361325358162517817745672438706810250504838566992149603906305993659908739374866317000405887392092946670634651762554086972600161739210808567437998770151739749480395789746627020139928577158044485050737280723494218263812320229042158988305738036725998050241413096647541706049260474607354831804006155794618999106051555993455927133614766062102265848658139811415853186835116298803604931241461551145947757246658895511089795027676834193955180493732062363890932646656445911876468369744027503624026046710199898615239244830296266408680622865647254538370987144364056206968107415861922699001249256060103387629355583950088463260776013032001382985567266822065049325849170988264146989977013945212883008014718499934536122114413358010821317115478950738946105522234967877964376280651463477846065805660370920878241691569131531815848158274630950526273221569531179851109145656142688295001503533629977080325756717324787514096669979194976701701189043166063486199983002611292625245544084022347549416114769688082118023812340527557890817963899937318761843290944814911876694745620102715332730994917811471797605101338563423759566657140678366396420819610189131640877878313870805741720472432565242950469384379064217883378737611524448253041575845066948345311958589451462493887713313532367347969556621254308334300113898242506291964504951955002978845462071519430209896037694356562518919496323500162598056628439803050524551463539875119227170384292227063090740735134997921033642976069320375749528730958432066810609943777158879954720561264911952500165786079890725849011359006436067599922283611211958783847074172695405056285458822826957695856068624164589103308253476576735439435294429499901731242203394872035590652463625123974153918398767715307900327798711057132657182383407731160146326433203816273287020816204137979556089241268076189033325885007705771352598483478180948498880500833347665387329004466815503786620130409423128192830993038786389431741371340596850680218490428745638216389921476679549679618062138518160797361586934591071980236468129682011832691987273594414491165023450653707099706799778476521603422500240699208636401158571623391945376143028621219563259424296778750523210260899792854001860623196145008322077450061862541059570930861987294381490932872795803649721713040952583346280917896371974640959397882909423605164948694640934391256687517477555834563240682795805870261136186974145290314621091259692626585554422622635153877630252473588558979963328576576875652520750047956692786431854356685471206177463576890446776301681174852359139392446223331280774297855659309475959983172998590392209457613221434354640557181379176363607210326112236310296814782978276598744889676366478828984522134916119219691657566301237481534262101267279213451992248076666689175066502340168392343859819490690943101729985064288368082048343891776697151154756290502498123106252008759675742569155866453488975713550948136986518985984803859113215776947129414478237137895948150214861390756957683506635085105045051296862896852367342575748005326454224684126405959782265048711078918135154382037085381749217671629953744896953363394828230621017960405778073511678429335737272122660607019270422862425019122190669300297247308019471009798888243509853004342676419699735797241078683325257709647677261280847963352801820626476442766653302789355797721295189092743458346414543207975211427597289470403781325840684492915694636173190807916063372633539022531121219656987551611356624725623181281382260610499375445866791871903951636964312347992600053115561002760526010911063205816750004324733630737252029611238293993931837387946313122357679790942151372016451079786814033966310411682993634078208117432166623474659626638226286319768690417891983249353288624681377761768944352054913448042472390607919437746218828792244878773234079785204288648226269085770066834923659985652322850320588383127202292886949061156773739261074272580935570526583038578326039209791159277800758354271123284465022671593122739006162513071988353262016725883116057095426765915627103880290764751796023594075882189502518634980010451394058544253032729758602853753253215102607933441417191895721231139022749069674735771730823921627115001398999968956503156305722395563057885785716254758042982671017587911276751272005522005646111085070714050384408435836491505060838575698855408594932390753875184757003053000124449932207512494689129400683179042610821600770815729587539370213846313992039527240946200630891951057314164800976273139222051683205244845064336789316459720135432342173245416236966326830632374737803517698353339103460575601060618227572035715279199768276900719288711151965941105421526720585261217715418815703012430792308977891543905586613073458167786776784595074189022512799705198130398395728017309748009946248524379519294102371855134035071975434874442951744362401122224305222296687663691542320098049601089341751038194396138530300127376436333023257840322493470098870535933299559149567065004002269467012449942936445662289836290190728205296105711394047374128603138624003005298747568324714373700852731734585934168233829502978548841258829765303987042457763368807644555955162133362420805503760267972821946592425385838151964980248921181192246853603235626090834820167702760438951566772459501121737135968091782308817564808969279992574642987784254219526808830661237439664974628892815384878381790335375718346959905792700267564024034556128197119863778026637815481790540762055370881314707277698318636430876301965360983531882976363222504000330829138062007267108802863397111607802423333449076772969998593560366628725107846180077775803674830499265936644834580291143918788349566086559914707839241899130728063841939575952889495980661491818225961330646722243322810719444337568921074479391600207523851056259191286175253176069314745998779576032030256594865101632810101719807260360675439271384478883047001543986568506857033412427380728483655685645601088504975926741960449154806293881145833548006201020570075048963936147631660839399118436360319317519425590106471172214064617973170773922814919110135791069618931880749898202545357145480528209128716523950139938781474503879904941122341461221921429204843693129406936990704432002195108497400011841671425329959045783930622113903794798273737559785345195671783922907234525348992987205990807633505588024612943586203242183397387682320218656213368838744326427109856556291585369947197789573446695044333812041022514687392780097151628401983091660762943455901814274218759133108346078441127534243952179778934948405792557380971538197541147947382255930461831786948042177033136767804010864623734753434360618949807626430393068455658385630843686891450622973641420893927393554282024183441143904327556033919546129010939958498924133349222422077886595343617068524994421040717766357342989205677240099171782364353983624044073837697776323333726961744022703214790032656953962076722163962549418616193315748189504636258740549033872910556276770507063039608915294957190747362357021966387349818572992398339172129891217153947851649178213634287784196006141237727589990746245222562770374878000678790886152223650049869400373848622475969520181331967029107786990459585300728828407135641952344688143982509947639298972686609424346040243352542056744922499789000900480957218807087543569625325839408716499119511881453608330206141392285066761549516708992766898717449711663727539015684018689858482503546765845047595541593740764172430604857053010510098972909280907268138352597686551842472854919913218453782305814075383938020845239131829935638319923473279799186262132635026944664231706318300090998499731410805870879393385084242635149744055289725067102784906290253260172683676446264790719939184592859780619917013230816884440534121551096009273005400490833626112653913893588855445478025909528404933863502698399428020758469988346362010994352648849334620154167154636489197097043590424564025028781061645706837411793671265832818018270235787644864084767584798225025266648467445154122343354545797853305369183451464393875136005960088825715489721830065457412340264309490194110257373541076945837594135409809939710683021841927552505868059593968973906183147725840085895968689612602024220002134978404930189195139583815541102876383266466786231355641841714826224560108534237512751630711354690698683105673899080960769183339684216863340535960330706143553385837110244742413500683101903379417648320773381673286091691971886605807507591894331325267924613072053838983511349329148025484390080196610040025991811029536756862563792557084256522980379278922481401434660157099681920561370219893926158869808432394240283053296449269671138710207048927970299684735240742675026854737827418473951128052391748093145715264117629439803833003885163809357904439945161859326316047463066881907904841449109181176614449037650942683926760208840164096140491297918095203968153691667900490103978343641032703187857012467291284796401521094646537647782203709531280935472425162930122004064181125868643825582483085310159935963595084236860880347786295655423269797660758688544790246121845675554867231319688282750705085017792299352467380984306297746910776146105860643617206546388020919121977737085482626536897856387168732070228374190928851787856216361799089245068863791177450793188236254313527348770615442763637252063137832210705763149842747628889798632543049544432074736527006987671304326555724334082792293962683828094095655026574147228821503514003084290012154507326953523430387371635926632358482115611609135728732106097605151978424007621118871319070164882354156902603876087677426688317365818780957289173795310887789291360822453247361317454989881789187755023556666309165228199509730675968204730186218037695079943671730995529139651686059828253825214072916693520484844194773392469173280791032981574858800105006662194286221262485124991882543911901073168993303087151498729730888755763100782829919765012672969470395502164604740549378349565993997105766631922879110222649833250286861167640234457461028755622809369270062477040915698037571151801243481258494509701962218467555071577197499839536511367573903815813475726753436109936291885533177462997766069783940527237325743939319736601352124382249927140454948088481289112242608441092742331837184018547100651934683674629025675033842030762277584912868272032904893938896558575447628812848071905766385100447936220839549828643683627168944987176585362470601624918518880444384978153346694215220849307834020660158413800895586566105162367423389253196196161771380969556053928923960107738047865947212846279070073270973124175480566887087257958140223555610248652137696182494408088301975356142189615398692687747627572398270725144397189418374464821722309612594022899270301478660311227387049641884442880135505348582442051664863378645743101485149191790928800811543637000261522116393406121644820928606585497554843022298673545588063842199099937565610435002855627758303732151233671685192426342048030967201712268531956932230554643294703508056503810423423465497925165367593852173201809453036973403500164580011616286887030703575961387320673188824683252219759631282685450666925319657628172890495864879032497652441446367851537768710649713476765556171573533023341479616675211073792041651758474708505046988365908909765577437972655105189693180309187715176464452998044906891421645346282958110692185776944661710530986195704303126717246120896750026246034029907412225844252633870511341606647563971811386418842387932447932952065391285199807152781339028231637575707121968289161780645341383600945566577111451098308130664151973763834445161351702496990306785140559645798880357255800879561784324918219124532164267409880159001839109044857259584080600929863922205855416004611450902578266912186914696678474745312041860488113564118603071260803668509219108163971966345754376168107081165246569546306328486705843368454762604388764929290797973461051146129578262723917862168991446546518208575289574115786333496555100902608634134362606653198769202436266588809639412812992337069882943739218108853095572840176651277566865136212831449800781079921880328989874061847755008578214495106345844030208150302464891584573674502605772930344455211174246768907008632482210041222054742366871169213137387396412489978397873106700312228653888326705585789364208097000051537814160111238922349086374161557001139571177352657420042518548754546492506359964389519202989788240886518880999417141504894566410729024495245290818244670677126412875666213667507268307093157620176016933764671566274657908854656053288401558947702425807157839190511607191357659688969800242945393116114800003745361581881569754708700536784782201917203287799210499416273837730287682469186398159446242591185665325652525124238874438207735522995937828422154399481370710295471629595817115495553758426990174514744272626636405498463048430795181220157124636350401435181203285693304883446839321957294334726784105551644394663056830608362115712909751935754458887228087395193645402390428367405241968163896117633652729838330764522244541993296092411902430807025010072647414967286977301616118606519680722010021930168460592152297811410277198753516019929696720982606992119897866866563465493163896765498535290170058826828925009689021434919151760840833366172621109913208351135805731544537034985267271236056591500628858552902035139530593107908226895896199029711635450671111306634733188816825092707819744471036206913611149961780998990586542050714824472140032576999459451320197500653114169868238238828123012864508656516660040001758290065915876202159531466810285469014167422372873103091737268696747193804176977279631867949199163767108624770099249846396958891185705471548913479428463730178765555095584527420437138830914965913909558201289398800486514578151034423430370478910585311362759751421007240763995542156220592582965200890803405127847253708343116369092233075483460138062791701578311802407029150265210120587010840431423814858172202659237200008860886232173237634726213528480137385129505872342108497478325173695394750278210972864220590754044414930444951559163663789248200401709699463895970313575207541756398363605988885340324391105371109464991022921908893641947948476312498920552044291700045160870596862948828962873758197296676928897307415178533542285290424130929957053945528224063844653308540321692109213989256666093757223580800350877137604285946018527049398611934519061767045612584059103306042704721908142231030297204901161338652130023110488367497792473309645997596494026534827855818848574063764581650600146201948880513733326454183771079625246702125887769708786682963924913091184874121769532276543474829521001905146146384946136381166375519453568270276921188313645282923328054256624529385906240296999458611442475370709714906728081459821580378033494695147152518660374227187154126983639996046906868072810213901505676966167985782871359847301095124445273169222309507809196710328859786516562138666282084102648118899583281100225893597184489810482303869112108244824880190318077336176487277838181657321822859702160156650714542843693261675159432135547021656819695533231563937045373172815337257322648262502033270795376627098279439172508652048673968746122808099651036725037544504279872273450561098731122768652052212754497615037113090352670988545121413215843160999948760903294117248308088198775761976297766055795288744434902820429969699757258491848445946319378479874908962947317146728213718912507675023958702987226655803202460301569901334213891608138112140508354424938583643350903555042532706714472870765122887129759667699598312390095460961164199459505624031932616951605071131429335641841631964843851265217126669225322856634545946881979335970579574533989457155624093799260734779195828163721786179724063184366181310990708697307644376047690284089887081630614238313697900713569511820133698915789283627567410488575986216255634623079146914157068593530936902781175849850790664316064984570415457775572130469842962288285656946211653495751162247921587881745877948850509695700127009176231059185274345843788104687231607098348146859705653641199488202568679336055123630330203601702213336821804648521085294158250399532549777228801141769327681257208690874604125637967507369284799075963287759310326207018478769081244593248210295696337903360676506201833563262091227261023427657165186539335498075341978482004760079192999986744028383534050516820250826529062309070966843791936462839374224766217049721119966148816571888129206332276394135668051066810983975276351902776716306470033592603731031181686986131896031353487383324651514593902426498729450331299228999758526483360954191487659296919534660470997528316234028853958924181328297293076757188017119220785854204885390538464720231140002105329187342094606837937169526119951622581748464861739603738017714015532339069176964220029065141236488348481310858569232426468968257669668754546073313495818174942614116601827285433994689517851263664603911491423512542873831187754025391306010856572573881288463600350789746242440113560543581573991075966309606634488705579271253419680564268979640826452215484426190910246895325606800450792736656070410694689564141294329537560925447256909361374722118526846333856460059004568811276785906099945047973530172650567500654675502892082493667227962941141824442594102225842981548762959884304980773075894177388862185772180647531540231778348176679206402830139672464540490902987377646322953231463255839835820124409796872574897983374668216614402598806089273697965404294040057750131761480093200084508947928851332806937401959583239357651248028728341008955879655668665000411475956020520797027142434450351647653993501984394084888340342033187840219004043872618156486134945513329797676542545566809643317020887635875898452313891998229655852395444660314575467689649517207986669589483546522316124298203977392323726927914278833704219134672262070880807975385660088679312245954324871623339260508889814486680381436665267189480968219582244708935416001229337154425143455511189624826726344611033359286320701544249910900590143515273542538580797109388194069242797829337831507494683454452460446256582215413934919894496836805247354469589756727427228315006852604929135026452356977935475453078273506983847372978608148002590589936862834462207162804310390175829636758000138020232306155103832665951389375796696715710885116281786138259557453553168297513796302964483300066298411233248320591184160201474641647899738843746690917314897304063836352528271840246111915971655574727779558960110509834107644346684615562211851839585320640783771329806500434792641133091164188125242869137735514134760983453990351501085040191230147118673118790769913344037804281768565844791081844136025460814474261136990232358198838280849890746752743155345640058063206437355728902125536036292316141677976251727385043840561047930282387008744863340520652193622571570176209345695143585785159823728383966138810965309695059462504206627492698960031961481172313648062821512379923693630576240523919504876453297315878906779225915530762263543154209253506851546905314170780013948373970497681987201694393033416565171574838532748727538998843569036978463694405948152557093368380267933281472681483954103613389206789184041446430772383942058363598311493090952309048202493449948008567260250486181925841248295062472535852390675822977264032325111543510553488557985454115742170545328718503909650568022993319951643287960860267355330188621131067761248471139468912747584683596628631087201014608068983273958688748086806617352410906956614938573811371694416520222697562386764452029262945814688401108249534428701740814697702950895021307989014000747341165548141948492727950644812467572735598977824733598891245183114234266000025282608686469988615208636298899608670157673816966441739823679856429783375299313150573412839073961930094710539830565477008187040324469069184427224764233245059679297960506253014207364335684470807361534993308156123080222525806765856466277199660931338838962298130284467648177234372522798458730386281544155042935292466469996252966402297380946155765647287366340694741891936067146152056841722087297749434269211498302007342511910047431801913134631611578227568506526072836731571237192898609411756288549923731077540272814204038728711087153818297259482109940297181133904336753167257239104265626404541438857164868129379876905114279069725163584804293338272579214050763464840073943665701484273974931006241277683770837231325762053382462105124853993185843981709183478995532921826427814522952577162135070917249137483099857987242454476336393788964111845252378334411618112838814223921982110598702251046492143378390686811129534976162180693161686378686000608135257202776703837580733400630050939914354108169963155797361251710484962220979005521037850434945519778118875667689619059844419669546811068034091245304057339233192970277970735123686631692209436386839240759294260233468740792456644506213790349576264953012870205722081345644386677641852135979366066973120469241012303481947523611773639435424283388697531993396756874331612829950622991004745286437301336776408401740210511208419261749914182529825823975770054480292627102215161138579992634289736104571278623788789217685749172509373658365652286896306289238333689570973329036730054258527350505041547559723289385339400281500994036623784152048286512292364125295553217445277603362335759521420072635439606356700460965131834232088044576438477607541450951737566930288494722614550803609658199782512562603177681289224006342061511233033003491642590429645081477532039070725659570014225448659600603531590858625603944028467858439224335985127754036921421803963417356960618864932132119749317708813247030371726685051084649359782461128781174915219247877295968225848304652629073429031708025720285506983820145825678983110542901827790934453286922669392055041456396593540354886981374569450092233020571183021919403809247088094269135241835306978182607289957882004010874518946928774285224138388234532375312557534085592496549335320421377070739787309581251368105713788307844498372217813465715019922936061792028713149118266146254448001032192536705754852717895561950038768796394814416349751673825124250246806234647422784956149585158427546505906465715066642246795288137676565206959117739401460222049003075656119172460366346155088493007958131704333465391559482434007788991456916894406176057786242655204153279880156824952690878822785292911659045951914224536921204866202599221134692528173903177752333325993713311647080403865026015024661703113807826430251393944888329033470596123697656551977563088260468185363799595620836220074569486795972762492760909947322393079805377297641670722784074539640748022125072292283501079269101268125858537084880889122953328330339465539166059003469556917092622979612378404311592200944221866932529682526080518492727886853083078806175229334700760722677885425906430249682331150296235022034861671393890972247308521489835776456625617772887890555790664798586356528668047791191245429424254160650754467225167348590627065596888689521187508570685439649770433855558146142141224882464275213002467864505597697376171679067683494782133695542243461978562131977968260582295050958212875410607496851901588891358642470741521303662901888847820420333988920065318729359772618584167660725115464773871468758578094203703587404943550109785084154077538275189640287024594701252734369468095343662474608111482997101644261944191808208547786374250931411294870486278835489273875180710704967285003284501449457877782536845009116816610170215434027409412710776350560254002874436529154386088036303657731939476599408899720695136540703858700373135891184212093027500164286714306052362731586621011944930092278088430165357402920195393120865087644061775605764497032435663942278725579464437835177997232595288954155807269775437385117832841434808952293820043181036340281820952838822180685741808267334909061930229282237021095907872678416747526610285202380014885172304064210129307367427836287151584069247384491185287468303812540555244318591856866167588320482058983641956907999694374368410471578979097339278029177950684204081667421326104347702927313241366339595245383306634402897856734942899403568031137012035664343345836345142997491067688589677728580031527058481435391584501372621151631175808892960566367256068215735561056682236417308418221430144385982019690917674358565151468950864270257930292819932704842072267733602398798059913499735743769640279527121530424812823653322921273583472431118816857422084645474201770953745830842611061329894187301628890932953529136092871909800924728714581484176575134395663824795128504558745795528772706235537363065468863946986878306468124943635575427373672474215308825137427101844001729953089565325435637895588766245407698032446063132984127891342456080451021744195514007420620532918476265201630950306892756957401985759660372040183855794870702108964284964774834456571519222391670186316953391564939163400868346252958996484699893813419792049609689215029344462246212524233590245098029037510966624353003011743039693167092688256915661109024101881910706125996883873885747154731942647624436787692308584514600458585014810969296005561222669442819040297446674733210858276073703672752939343242323729795177684909373270467768258395895140851821484557181151280829444035901394931168240796798501416246683070549780601453031912446542371492319365762260749079645241136124422724829838557999018452699016392174001847380785295244115059808999824165685854663082988790619354055011454169368219021748048661008286957053579827926485577477228883443183513551240898389592390028289754333539037343644508204026746435082791660368508786619213107993757745077723088876411759203687497928375209606329031873471696794668216533552256816908378464699655796339664204671560134286804643137846732479777930219260110865138727112275502948661040813933671770893373936314380598877837734033573018647652363139877680649041442502848799469825529250779078496901204644219429741581689459350110369801022067454456638034402905671682414755926865700137732243815756892661495887233307001187719316204302752114806761667250970707477496884345584270098484108129569710065962786547881548405015047956113834910736670183178866726374021433119745075059284465266743875352040071111508045829691967226987569809680679609121506109630798687449383690248156037160793291042659337448729851701040789722203122232229221948108507930671777689402841921933342928884465577042438903190033375923205409195087383115311813862273112932500965073390006188449482437778109736378842682060769991363145889441870221744637600405294427021171941704598875896777228520379966019709667289599955248705240843459099440924733488962717489944579582434077564729773564927609538607791775138762100459701682941673499319806951436108881856280522282361321936104801600094905189672758252184022123699117464425453969725692747204479091192457128676330038983787247811243617232890161288928255895768563097275270003283030622111487244385474488491032389698979406245186102751451085600710990822300328212998749461938280684959162030098298907465743796257079511708676311420320341188596251808121936068608071357026319744770040172568375815532760547734946973868490995271299430804290009650077236719323771062643388100020256872275101379967516114933893415219804347641781967643747146744552401832488611833922974963351439605374145268122281548696825746649563015570958783927903853274742916337649269330050991897152660368171717529369084018850186889163526003309791677632452533053668391665149126140010881673364072134319731201353783814089942871331588608037119885202476342467016738675915200585985004111194554785582456076493784034290960599845957245348367225562425672722898541448037038035285175530127144479326213123958259808723565902166980350484462713803252945080471075312430606232486547318131188763338372171117894534737383218940157103269981998304910509617203262435231272528356955477694941653829760980185584555328730812898779542134578253889027436453237883049141541430784223295913246972017922641367728918069997178364609999158666556981907405581038692122534756042842986179710535095336822348229922672531852632358952848788974742516616675772271836111698205204164989997818196006113746814545569700291537505390771167848322215511279930374420688409149241729277104600620511425763248622982923193126018450660826880907696925579236871148583946902815160658815954855807795120801271064437494746683153311266752034376562292648346535724972527374797621215526412264380403607831524906517052207930315291165696324269556154365622820398063032129052199441906247930163366365730295180149184536167203811005118523988903824198198679446304342037091061528320065693010274081387663641695679352676823790249637392343589169475704743241972694040973644688280622411708420924740440396351549836874310112436320832447932174558663593510314139835330846437512537811511804386300933074509603754402709404464872836055492830216825428659874750456724692164722716966251783625957287437861437482900839925093003774639129790094549578648961415248961211804552402252005503555041335469224804858803027205272280180515352181300666015548717631916128447536135486817500691138730552223779595450770083292046484246250281911150789374847361950616344452084920851362246049149003147288933986606608890429331689751675760011837476405928919370209271946157774309591444028217564892873908462233616994976758495880943562399536992236417164767868092438963655439361391206209183587702597894266233022787900748968361223780146335288434438880721571065586227758009883013746183136220978398528850090407978485484633766146645782508179707062333080131232667260482907688927853019383179632455005580552111841306227422619409176085786731392849983235414861936506791949942928713654441624552687104863255718126152696928638778335149594233642520100831547264775642109682178237740850661188820824203943585216559821830914988080798167905629393891343922223300316621756044895427060063702072132161574244472274623430430474314186500904306380702423530799681728121285586081681014725307012551988990110574708318731298804977902957646435855997690332957266122481914118382746872988315697147728129763322178478953803017015006799327624203748626745975757740946283329114825568182550518996610150811436497367112555075169951299289454437773931252283459121173804578712409506922900856529239973179854715678863372718313937782832433523873957880519553099134620370077230831410175864595336101310431908975391135281400044441721786283181820152009372160195345798625668040079804313725798771191492565397937950073793255930128353650195723912324373076452449030446899682642154992251953459339824576847961927777190285046888969990736446053587313852475437090603854054260049745032680229829606991932077071228765749709939400036758837312484260301476365307181734086137600782391433350310115220864988387611435055096032819805525563418093586319061246364581500568610150311367622769831139769321012589748123921127550836955732627330828792762333408022332110706532229781323420370882180217909827128429359763669452124372745038751236646812449794499477037873614471242076171702811070042650635846327183262990578195700438537768563074053940086792873069249381658167592183288310327948052701656968301289770214423491807608915057840106083752350776042775362388966232552442804773812301792424982711893763801409681297577511285872564844063606824111606547896786578544055728601122523254199634691747308327173072819176438448120517430806393333615929447399157641317454954126506905348133814130173600165119256929743514368393700528724287508266848843607833550058383518714486878575492310424414823345869075913751051931455275038092935675634176055412238404237913363681641196336801079584770011493375473528093093785527421661798168951884746360915947516571274712635061981272837942106670541909706855313246589749356660537222824524169778147928625737884508844263240810439351045297761038575199587202503499475046948430523453265723361336231142077911827649909135629707168728775155511499173033601472766958877200542001865163158455773463865257812404162734671084978585598517301008783733527269008170162286044567313572363312727781927483595539273924298655118396018710078205063741419649244604540073026154006549185302460339205375192249709577568553803494840999538069581480688137109558714111893864891169765358417279349506181886953466819305582132662167310243187085184768487994521190032572080379183730277953080257403440729018504402691646645209329937758723236165318064162745562772231193096909723462106765951298973990251922631168051501745517558576429741129191639360719623996979161251473091059690839739693648599409041393199532522368358570103107190229296862839532512850784022513575700920804389544896411135772316962479816213874786968012482281280591367783145471475569998098415314561626290120164258454762442924815852791904517688448390572900762547147912166322888274299593134551962734495518293198879410230570887022814547108216080967025440369126072950909815482093248766486430473800130182856673656973577832842421464721330885849603388808993062280899926517307092533619761489580882469417966335760885672713629687382793310130964769602395486356363588089240909995285670789354645667851912192061294090182515008613171077008397266900133302583277880155079737426760976740702732493742891429099305627337410699023484798475024538826773192331003591416169390117074041300312399508081140185733852478872557959910720342813945688516452045398505335830775586600393660859116641635586504535551391333404093258732680122187044412103895265187713187049065727913455663735048717738561954889977427819075219977429171618210128413070405622716929936868732167424564101523211702127268099264233207630934496219860551707729994241907792093066725858857091900525614658069331035799097117311209271571530198655756130004682953886782835869693649528872069629699665032323027727132962299335744357721577493975249204362041888852944871925993622468014749940895490242363053475232157839975796131597272279325284337980037598960579301012205820825691190989756456119396151972847876366877495623606081624494851941986608952696896608072012600395044468987884712571483289966270102017799661133410938324453735722194711544048051267311132211871833864844865545084822974283313974532194977551759646731842727707371565691086046975591027661515004075407515115164695603122932256825297245178658608540880911999276856804946784637098859359547943867532816115001747216302246858352344038011586869903870002473031525621397196109616712040791066082264793998713965567588561655366862129790533333406687732596048963930709795418417425048310558642555231661722215343650180662428434042344801338296224011307571912818279082693317073530235058511613839376871985458590013219693752560356399067542836193247205984821054966938312585774469185575866570175969183989551011254955928723718679796470761831812671226473944548735808655684765179813076378460254371578754585190358151165918806299736675393342032466733658475898336234503551871300127740198525296457012266735509928228609093550713192243349287622526579672355288767224282204753202670432555000981293433819656950139897463576130794099926051536980607503544852019966859478607223158130118992163092134141769046086272135810256020740887606766954358587992191508580493494955281887959760887058582387509183058391982971237400009984605303186769324509259759494417051364873385727110213562284992266223007278936104306192709053001023199057628885126289497738950906580186177265370948037273948440681465403809405008997834025320256488751028227955390186317692467421538211647896094596271897097319959376197120154067747522639914203121519435938751256153193464116939658603211152901365861878058255512514408642212474613266629818589053070545320691827476050313373620690764229753592875903908148153639539612441210243439586477509283523962036153509349856162790228953678835988605980081978549995313023269340366478274452145891787102129308029374582055885661842274955194666772917420654942166349836364276833539159142310538181342150525061130908834978473836369081192972495265408141885969278507536128109560800462481415960848722164283257329551189386287376366307504706312075665780694817224173316710520341668912312145031272184822434720608492774150860267429735396059550356803810870512959100608869677004010513997629685719126932135629080235980173341174608583207709267652731851252377978743630245394331048749242770662932056844590226662123467939702630077681787006447793184255865439594191691564194900230035866186740303272007920174193882405938507227355603910569466228913830863607451166586697879405756864446741698711712801673088750296650367932358470727377264129030057042004905609613927844728692894099671643140282587107289736334831098871198085671118990465264025340415889856941975826051548667177806738757825255234696013824309323539616018708931480162315924059090566645432016363613593007071699431875739475475057140318260310496717237307698161167413120716436592107660575093981763475424265184320315501579579001043434532690849319453835135834413756310577103949215728529119564015422562221749345516634875452474994231438691687063202209740643853525215240961118616652452360662265956894604030731895951189662640629526196103869281544721205870295167899503536719587783034633647539727317135055170600875401014014868473209465009416100440833610239484909093015138500206223730513205319291459261374767578767422471767157050812545178494316001790979753729379375250428916205765375544138502550156699495257955339225622892615159457455553373256118038479903408300662338247348440363589516584917503088031319287063454263279433141972681991713700025421087671834662294484972680000861433742814296236139993959366965637102806598417918151867069675022621778694686958558295582199617396330070318113286352684607944703427177369595541356813411453922190701724393253257370837168889289992908408735720443887880128806683061376799803391235565562464991305691478919523031471258252884294679920397806220106809843146651027009678442722528731577940876293113313874453068044199563062864427569944511028080726264060066417057207218598493466348687156212201020537956509479789200571593111098329064232952757051662691368855508577759968402961237014575636422678048005461769576022836128989341872084846549767355874972177448510329385906460718191914181663545405544193953646290037876993442133433943900688016622568044698824824121873985323996460237774759591048893335279668915315837695711038991122539352522894914846015399553394685482981817794333074554735483480360969238784962636511638676414043250010090771424019812542380010868003099238490108750516894800996837552299239201982133902717360301314411654943196699964743072410995332243121255271379612168497298943460773553748719003792882262890510719400795892013881362052261477701203246266359373417312432164666973645294606316215773439469606268379029161175542051631270906512134698779754095755382157069460173019221753540236106460536967055998741225580007767183869167642409076843324293904952552506752581790321691025602487867931288365221581071618618407437109465820633501627491566461730241359538449648547415541973689805740567514570714388191185407779409154880116857620583540572004586051731174861000735780293033246438765352616293704406415541717105381821825703771888426997738283158302154621075025208252074827260851695069509296372750873665890908407484661549887090024093133082074724300460345481613383785284957964940401050230577444314446489922935802328425385349244523251471105118503293802143094743535728141473246574141722089548422888751366709942610742055120044532678936366283599102533029190168735787454193031755436173850405667936656016816785330714418710207297311829476760377685844593828296459674514206412728717803134974695340119953167628247447594384728229754206164081129859324018340028848495777609180620839017888568974883707991578144266071534668709388485463711671720614111044144554240324479432798388926824584568691292432514341795530949169182904677761362173729069820048761714949749678749013371847911197980807657817667594610067876885463918757189721687825401604253872359325913873951314992359257995115505284395722167923691479371141624562914272954454609869096976322323453858215652446710848280068040566277175144973263162921263121282209394248867171108499245286201353507703092206845441515152389376603852953373232631748260526040223058378898431415145302144479915062695003676018132550770542334224178095440714105797359437704448584375236798758113573674941425544152718781573730221395860614573520809339735624483530794306198830202245505623875115493547773499895977533372785489993315351941308734729838024120646601141617877077361821834946937789285725340566350413965275994199507619441547577926118892395788070886039412827872310882820140657693875188506471007881833707846286109887609377599883029523717820344356691790598877959646035003289333993373631571312084937219251052318677069457495227656308279468667048151506119345208040026534485253674717479154069260090512085191106087514619251136358739371300889328920022575637088277050394668779756649693761325162143902706740438520917600424805742207448373665422328832189596453855636504918354805877417336794966944407459148743134625042859191120359888657749472367875746462540275299257812371736905659188033073810737589218355130983286107126023845074406345259091990639641885071796408240128881117011074693662896269844001613373366582967298614413933830114584015508900246359289061072939311744456172148709100898276488057821852963764998248946605383668248391550515200099332551279596716875173536107821864968041872309927943664029459642380612971429573799447589329502687771043670690550457110881724693833408224243969645500318680944318316772255623059779738942050401581215162585569429819844291378199400067645021645171714727038758488623787884053713060534377529834092273093400953281443909092665094858264197749594165327698558446222385112132198453913646629573443403953843810611662079570496566142012390979827440261729908070594685681432174546784431760502799810844007832710885932789862688727258883385353066251064554204465158223231003498374589221718952095529067348694595731988598085247394962883104734541928189344882379924549081516710672107678106057823754807706146604721076012731284524453123046425470627186958900201623399584821242290160700587673657429967694202698084598248713677176630558156602363253554199809992381973523051648897962242454871992150825716173797948071809097914444807635510054481515837806948859851948597931278002403641708849891978215413420356540942198682953147591981271857582448404085017251319224428328481222885423660537436327129176023429681517528214194438372128274340433089267099442368441074527093413944669704412132137305275722771382658344562952304858267624961335941351670145982022925890116536677031903479001742019445663999363356879506156894536233707055841089649256074934215005698257484166434537354294704149101207476781335109394282519649171965993043655485889626069625221912225095594001962602963760234180355557659457597915617695966327903747187992375548523736623389096556614822775131250179824311757873578351608598871212180942882311388512280547075653850104959277443637384705234566238418156560456249120096766840666147340008828683630169028092410105529079629398133773810592974774391289336766030202930958226012150877623468709330756070067147098305654256341455608725609858300813023135917862099020066897764787010638863565737835883676543445000999975312708096193770154952355314897320507820021621032026807097256608987934611574920268857641765733248195284116278922471996773529708716190267613752422160409048068545144124440736475231338024335611118689477002739432575829656597894766882226080276068544162516799858904077668067313944956927197266340632459005213483319114163122026292540633533172481197649888851322312500433909543433825548384210645818706828903383949486423551801184091405011543671004497429646585771858528549074753851766146946383424391141695549142117115249508956745324494336043231541802273211369666873979177130991185032369550327033416621558293441420324962344856526113294991307525365894897717807673340369845007304611258502914676712713947941882197109960969379090285421071077484246638999780221994802554213776794788158993016964909199380159430716959943119833892470342039183533116719167946168036023209948545630172789014456370057066379186955056531570204046352760469126637125779639899723672275230902158403033258222134212103245717648580803614609668648683413142462476449267205217514344651013993096197487854953210730300502324752372364089857737127776725498252865435420615884071078731061444264842069408742303794576624412291293383035013838250218465515498442656180913407315449145882740099849364362851084367590467675237421941935758859698383075455492403939212459306170328842529468091727162452659298553465089378548248180011138370941148638038695846896672106814325060112641243264614114543782903442052331511902813637793768344838570607380687294895254587512212323895856413332774829402955246814228549168740239071562276892297609870690213770956331663018068723599797057761192168030351270472885923890058090873091328963386426044302080979828264366960263875421562853600048157389145883426086386421130795039409733455721986396455273582606773312142699408946584308264115454031033473524143383411822511124733383779082698445314375486240698427545909609955917522531335893288082632271861741213335605731686638858574820578854713014399575339655631721036211861790783180573934060687176495215536715145008890107972159961454456260506348753310187897947513913017173218719035916327049852652132113757071963984243270274830829487274714184664310046161977655464733037445273355391585066777476261605038192677246211101363282783750820975003396249760228686847306569392447183457964077462077880270638983733440428961868777592887101672844637359038721401105700552396333440614739087511624584012248754336562070160854865885340039384806093299578801204740183734874121711943612190459709428293823610811453800846604174374692746157430077948450165629208227674811593210708912592754574927467587090545191705604839469419683052465838600530494708662162657993796438007608528238529012881714126888884053671730956850652559794687025179097098715706992107255028109571934190042790490329064751885640597621667730982236395676506803456275618716501490988916856344493987552070146424895581177503565529485571051560101119557532118880995657738295066727214760553565810350656904322568989065994986809383830173702606143466486283739995457029360821388262478017508401905414486870019895905976246301059902315216582796653901853670908280359563767320323889376603357648340457244919125369157327989609480170786679802420781007464457023241377726234053862031245418549582508282880957775810478731311828043489451656868364619443337441819484176744506511036909223448502830969046348774225382629762635233762876162038474853009529398111329914131416498668354542982701645958361562653573549487370353572973697254597895558899199309287709249504022559257620375880206348963936490811619810574690289299458498421656306383290214007565378641393791002192748149266330036147886400364877063914497328557110432059458417260721444913645340594940052371092759522059641437904689214056051159581549384701289658458728498481987080986061831935722757264602449567867975816046499706352745824779611881014489090288010910134122504186956208900782727602129487239060143311416987879036458669261439078773767060515059165271493777040194504823970114108282544885955619978374737300170275259006596130696587468508116627962048263578032051599576837540235783818757784029124065664717787161986567655212494579415659272325238824116850401598125829816123366291871361413574529854173183235258229927910261724779586284681983292102725593619933186803429800522126361470184398702482166225187605772365430578958457802938206368606313253703848686796200574588216038233361673914068174856729254514985388045970302533415294123000470182762726170144852232008570412993224576196905719125441878554879779065804284192795249571024179167789638462434675358093063184818387495038542648399567733807443715656834269091804536579604880329687292205429988097900505288193958811180520978925325096614694052078885073428393647155071940388892148074716277974524371776401648675014673957022375798315238354550337545305026873611220745921822171606547695978088223541141839453101776690786857715363695109494740197487368265273923585217818796322946526054728705241461995581347327971233888401946260251119009674592084366738319115068958916124828389851901401241819777958963382205722290794689089562295237472713199792344938427312825257109731195558829939969809654770646580858182379530420483410981612535719825275474907325932815764720087932034640781531758123266541867847969378467449410521870176950797138235970038568119737674491121438820697435624355802022389161071399377161238636458086450205609662772015164880756112580372895761823081363639096863359344605247973662040922071749755017566048176600308653300711375005769694483562875794497175606645459646700230507158912760887299731269317337140339173394869204108203720490748318961138215426424024191071880850479418461342291351429406336319971251264505806861035726439759978391377437714974900230883210005979719067447978888293141269002879012512899964571110514235971996139553948957077882857345406989078340888875019239564586339140760074814411698812706376375149074479197099525265441004962776780548874359416462500127287828635723663138765348091333696764081018330426068923923488314148812861092584285523302976438220387600697756580207054059267474684281544177684726786231510716737185424264715504610560063129961716632892170646712792116140031944400141300653510170641585652033868204248143972023623306960777504656892350263393617387362308915221001890429206472006152302244860299718526033592249132803937332184160737989208425310707046647827858615597503298099412405780910439999817420432172665957575234630814569915232214812729145907971006455762192750855721633007473322174738971237831551091903504393553588039789757183719548449917861438429506301862653360883737953213247284977072784201928666033686912755734986938947463540011464661378506922989955112934305850125261812246098145944106409695945123715789444695106078730111865219062550877242932459367684849476767230490547811602915448263925189992734629645932575701894780455587679183848789042028454360140591667209225314502196729449636589048850745287554210787647247973815427864938001718726101857103585370906437285016574964225038541984254746333202946958436569583010112428805533282734299260680525684203444604209880860310038038102645290104463276576904142306762221482826839719522230272721049882158153547074622714225470523132985896978527052051786100334397503088139855923575345798755615087994746620956609207578060301592993545612082634263877290775462966037685974752197458864420210185023962169666165836288657308574058191819215112966349323423207620709165056510283838205830128626640891320148784445155998471855835829214691409980174556768521769667497576443186374351050210309989611857529879838372343991114621631965745874297268334033323512717414826466599046024379313081791535160742841606928512967667317099491776029146137037669830236129553424687601652826182784722429345360479610190002421122120014780165479846672782450342737036706735778104752188526902911906124523723777698820113561136429800973685899512892054982801971503301422879298911649613673402855194117900381724707827321108801072477651789167171561929019013935470749518366418411877036420052448292302059825814563938909917799132172442010025004183571586829879816552174703990948496150474771702987868183902323282799856073800580567412755896776893173085528900810718721610446545219313514387157330988628502066467784047688730180591400655263780532889402419400105306938537611372395478327872213343132269836319514101632462884358029457062921600969149348324491551524391763273649802807340101687490106340759395344467117491340602967244715036908724696210032686276049376362202778219329612865202413340733931190690411021045917279115013350053425582752939566340028940988294018081584907664445073401813179325755528181281049663229978198234932585632379318824729433743453443215773736277038215672415056973934591452643331466131118249072287950318123971899398997169341722260743422570166633809902691144414205979965708411330530629341123437049578268557611822181779879573778913586017414421197850023747373778999668067043301905908919829344950589113509793525049499059888802659612278313620750209751454169837637486544922565193489756860371065702626471015424329142771826343842608874438119194727036136325969085280009919819950771752556780445288207014488393343481153547421466014810849981848669573224598343750947516009214970422878742401338177974906573820290958964344154113042111295400079132205422341381226638657048755352335077146354669471030540319831125579489025159722076449663744082991408431958315243428877246279498439482535334775885157152139287473208299403870834206604394088147661158737301362826553364029619025538345301502732717880175419319170805598827645457155585399617097181432526226701803746044611988197836521505249877432843541761655528090501529946380753143899152999174737286380782666936246388165310170684940570307658020691425499756218360564754213975257702433427849440512831670017993495626044091981464889165255172668442473857909123502144896499555599711560998739435529406061109775514089263973913595241521565397692571629245451185355861502746680101262691226090767249843491078113047475043234278616791217667906620851990144850452818252600252464796849925907835446727946747543456758214140024932242028593807212424335840809242156307474335425040158887952377451075009724642806546736835724894072336365611846543037293067513820477990941009595042410801279033103129228257457938348489263006358099651024217627766509913947274353424452431903123374883427159176413946196164631802851069945298389541388628812451892767319196929058776493980255607213555761375412663093858394357515473695238005099137613787162276187098484103117044400734519090675085952394700308313895604420610439670454626970673296509690421219032056535573044522286095437895581037508182287118102392690908576338196230044774671948453868258452949775773033783159428291539667329917765116602645661538452014849055151949804719865104558409912087991469800619068581600941253313409344683161592189313012755438877237989207293579447530653506216833737855475387640513944018198873880225960448690564237510775879561990225934497280907559048824329627383391669579816800279651788114653269518477462343553882906142077318447984300897178770607980214682067635119458249051569745667668841996394013435730339940833800413134065288903411944912601750844820129229797323308535528623014398143132331765235339815578417154424307223255719096345472448001727027139484512681387240182304119540942860244499608050946881481660731832980284145978390823116128801454006394265841972526782076276129956172512246835137135218913159416781214733172990751881427655019240369815381252869048520301850025199811175833796916889600211513659460366724137108497556094953097315948732122688107747669809787419325117248680768664960298126054731081930780322638388278989496705878595754020450395949846411251714551530978179905785246200107541158509300528786597449870290032382957586549539064264077138304902869542183653560724887000196894906525951050193712740335123511125103232291052229706487019977734356879861521928190395192605277254922230600434547760623223906990953492955095913746016748133291554928276802708197315413209175146465766767793071864999984153374222109739172161281971125945540447494430229095939806011669482696124148060245937423980918144698558176662690094000377097091013465153389994487365505861590374866842556990474341551126179767078219111030408843943353424312088992517449138712639553700901802735352338032330744347474208531441465037253013394716106272662389050480079350426693416456786604008711395764728903101562850224397359529094720061764572663030656908386227726609219803080001457996485113511258488191791858824538611950521554063116680168067764741530635995427692150822114315322212744544827492176161180803391723454197277921422431412204801265112669681232266327476558985050172368132113897104201421540224735615049373855651494709918661736562543747826953778595967112388195644033275265411431700945588027951644190171578791065033830698306877028967922401662586374003107689973324702421772781320818895188558605002774350898924408839396910029299580656710632401086889017438023581770601027627004606723482036922400522727389495392271008320879574145045995330772520835726894676068207344578107766153800776359029832024178986921287204962597145763840749922080078860501842499257172644337211221126775072680474042704742403003235799886089989018251654017755423929142365750724636697278487681904242534646104350966528040541523954550235860948263337567686866693339741466058746109532362990994005667195543706393055419390063423521427118681948144391080305783641409470770692727548574797019926192995330202365104366702984758582992628254334168462655549687831356051294130539670566326137476958452560832519221823549703597966357884802615876200924070592527715080725565966374661483797668584576912101600031998587359798494128869075959971235083191470077819818293688631119739721790013408100459391629801948687144701395422072739135363752934518762101523163115520609109580507633913451549708584770874762720790982443861451722438858185458438919045047449480070820502272909867065124136220216759848564704272312342409321438019157650832772531285014476145628837813527889366713328008288394548795538219163946669358956510745190809854807118400536138228007386761831915256986271730925231349069692397278846863267060117698281620623141512733444202648345654942613869623321086432225819953223765784625086019071821637627202015387999011576446570043816791161854141325885097057322068265578359702978732951731423722606446116247202511036670486169257612464045906279221903589543829289124966370908223719291807051576847984800363479832898045346095475685054925179743445294716605591391494612249489076240707233485123192494367319637305414369603986575975951894976142504255059821511339397094741919900690630858887779496962292211178110161748454269793853410787712148898594522950840995164775251296969352399979054226332783031897418647423673301303995564852962059051588653660957881003243739036400173101617182188038476183384672195289194051038687024023919623458374213068259293076864137871239787263192425935772579499329159677432620255833794652481254687534710195098838269215505811567021341417148280417137498307539369463430753089255739540312988999348919612448000061121148416819339667003257239967498186687031380442281422924400831652818351359587791442808346277136417296523754776075040548169496316841154518089470281170599200725731244432538916457460085365442779521270400515941184077074088785538577956268458493114512723877816413284835968227592011013869574348645335331119826283683985482491105168310163335618775824579682805184156682660714498569426746103957374107857716369926928252771936230406980093276680642379260070562376140635548370597312970932568611865835144215311835586929273621282771106087625080484039190252324662383192166302422664152374331789918664101964481978415413825654553513237540360997150313329474121905911342475306962231172085468970841609348363574592998831083147348453102611193126546447750522885673046633622801895874375348919907488542889995878471553785729909111735649790681886574162740590129194541728201490792184421087947308571455337945530717733083699415822479218677132161009290538549965708841069075473122668832570911079503943392577389648116468848942769077118728510381049000564411293334765993348939388965746492663440576072722698087997335263526786109252019108444431953888748123280236979352897782771390288100330926422988543457491651198302221457374557933877347700964041808314954906873858071176665258653259314640758323559247253639152659652280718523048516421167298576417624094921391684204363989145254843901582247593782137845885495177396702624915217390722663783858969435935137114780778469703985367828870394489159448021125771348447132393131535177307980110165242030631560105677067301599614969200800745745255722267696354594963202529464709942973777667673360532346308412444282107375589994546293099159544616234281302748689017788993383089689675237899298886558288196417033548204631923510554446022865348655116042782838838083387759348013739549463624426176543605531669314024503039818289972922956658830963990462938545509038666258872782896718688819681594186515161088572445123904548252043701767366062712264339884253612867616954846525360281473651711523608041010056775432683395143257837323034877814542459372727838551921278519060783322492679212840902022495416074297747281114282615195484896169875757799143961036069379502259097238370159251876791117877941559836007026087669812386048446186811162322054349353267170739065143703567224720221950780656825972706921697615149580034312260047361654665435238788652659230546519480435814026533533378915554525402617007841277602656284005573915306967422815912567897754321279560061347395311320064600181276649986114115465691282370971482264951246319669918218374770979433643486637677548178165532983819245553777403485180259194374276583358262344319631367377114131965560489045166953221165893736847856069419746935754824111853108626436037336133023645330246445125312991366971562791512413332114067583734871602785682476304251008472862768225029014171355929143155963750457076563552054776993808706170620072985813201207095413595308060573457862972359058624792951987448335576117500891074118900249970785280347913102248402672390340592145801685210044404220762542373156725324156169602680957818328305535620302066707279214576244745242944249218210663750068958399018115355725037932560406841430560135293525419935218798022156011764010140946300801677554684322755127669426700758249785465781705121042385378352890477774978486983575053593418615770300450965145019115344983667838594382571976924442070547318937338058196090317267444713716307090987755695771103765326224243408803987435279022388964532474905039289589646364242251459742277651833425020112916934532391883612280040523565432260962893531700255349954566670164801901477527764303265512685242135531155327263649690696386167321369828882649277172496924851622441232868519349771418102408157228616266443840526516794775062669244046473018888004251141215888581660307720069817594093584502234138957425885520952751984800192876747412128724559372502962322428249150760357840589232383076140989685396174046154024291442335312185350751080816301919283180841773923026890593289983080266247249138921268226124547882584637869440274477332742546211565219840413870464283655306803046406033002746876689978696850187158969078786342257696499590334325157049122459295116712957965023338986627638944742307182945150660700865442830155061230108380853576533571386995223834768744935488856428701579988816130423305575968233028705263998745645912768749355075274468094065453033354739304174696963386439732202203578500057614748178881534619579935748668731602210769611205534988939008832371326890005653970255639705645197237183017375925112837035907851236442097019854831467667607112381380144244794380878351136308040067734767008771341231672511810585905623225724600420218696941260215503531774583374479664414305934530745841937948629730102713678928191847857689012885826873249999636985372539356287201090246142407099129342521362117571986798471051335497148377427335616125069304309028633882932932580220707583955821288619962438641228449634939668133534199541386388035757008969032987782288208527339031482178554827155276055576230181762948492428007522837567380104041168434915734247869551864610329786257846777341531576973564327627072701520118307436883748603699106415671198746815365295292123790514431580383980580498186369420203790250912465742819455396575706177422177877388490170080761840154034566293738095848313034362345635939682192936197102761809661751669538144297977437859277358969999426232842694485296458603935461514561786656417793391798621620380040269740892766109250903847362665348172972379489186389470542118720151634177152499394717801873713739612046129110430359552285096601187720444820940256319113705121115470587240719981647319551273511984743394105489585914729585395165188590296153805483159699272779800670043916286838604300771127277862256897992745763118851858174672359459694041255529534182388360472108637206660038720118768930297211495692606646591793870484316113978198601210395083853749798601661596790536383447089354653082428170739314017161544407480662139896816435444240462816066686577614221267194670248682353812510800704541951034120106288032641667939102681290420716329254254809138893096918918986100491115466696408589981148963015389612275229000299042593470430779728433651889380728610229345932662941033087076366279613862296125015039558954381380763298110152493837271228627612627063489682688005342221159851794062664285123405272782188546618605656420073164263994713511122285966596027945202838798406595345450832523714468918030678004200553699933301624917586214495253992436718809833426628935324586126024478035735203268389979547829443081377748909343521368358651881002354815104178734408587632824771246380567054763287127178443418513600704652375627549365296809953474571502557988688712807184894967400453894714550738535162185721294293814341021672022353213020991874746479165999456469060431016710025513461828485397857262185937044375092246293621898610985398466928013025976646506917642450700361390898714823758302372495950495017613786948892720432462603452866728107104650297857838829012857457812316944458716853498898046441171827179344213910303320598578828546692348171258232681832215961363906681842867900508004110930559538692232633557824786187093189119672958082517744794594272856405082664920884134591497663940182452528759264302689141058041294037900970240425838647469053624562151130938981783696964295833044154108708154676991094795804086367694325042654098614083329256700640994941411085539958335155218749122227201553929359484954260335666626330760894161907567877837911893691215150285384074883860660345086512761811606336106822838531575435900353300345572438511045276508336205042982630724943996827653556364348838186096740002139467943428601959747923264797266388784876136555544630153763414887721241812632623781027886465415868133170044080868661103706721710501594626312145179727915650622275826472973072103728546180981731768415843247706162811651110078133771430303139809781347873933162510478332055053065888016283952335523335496978355846623388874883091966881064496415671667672108560968652226514126275915857427550915977759352028279797886729851609234420378914516328326236505529351929740107225844387281397102947272493844767212899769913635108245754040387765697247911680646713016091037526228384541573500420610894795070092419936384493284147742131161318057930160289939566241193571166795138708606179269453103726435653683415389904256587165349378715392529256898082257452758153351103947068294657227121032616069259095485666526971998014821747044463444797034744529046694011932977410779682721744123031871795233871435857869386430766979059883354965781644576293552080388896813759680887567293114806736797172063007775996369546447387532406471009155283797663661981155250934768078590377016805010259378740023978954147756612480962235576361667648648215105317242017380160505146711307012968815998863519336637098197504527672508521245906566331580017338186010519750800125031940204002844201630449326343534350075620434914074399695843800172644075581605866523807034641313340985480066343870192101190007787944452493489728710398028941082553512923654435094464068046923418765423763344611433033690362799506332189445758328828459437342924252961359848137038137741322006697420274972134756487476855635182299351347643444587623405114875466355276198967850175552674777308098734429626798861992869644583834577144535642267000848278321850389805102317340578081591423426151941929656049263854285426642144201860746137254242999543519301564499819373365817821425624030260024513535256835929550302575192331706310980560296472731381206853520665576269670651348653993729742654640390109885792130441266434881860739988760061659868929548438109187228068738825795514520599748825190882127335719171319620040069267465601111597690655790699001838632427929489713671115848871082275440828589868608823750723901748312717747824545435161837352301795180882392749638767275471480950434223052627223198223834381352730465153519956015075455302213305715146055225046447515832076790849099905213740165544334832981878559018614368949451136192177420843476583751823734043411375470973697474715725410372459680813336943955020176004089207425416701731869657766869738848241250919137730153864230349473073822472579696393103974358823701359533591597454226863208845785048045359224650925335598826478637053497119613994108161501756117521522899767283901485096466639270195814820201885793740993028608710343264197687791881890017284463956724935689471374110678232391759366000560792280002266532500893459404246472363693020046508171721620894933115423918467721847682380287064775916766262303201690886874530618660970463356821653358248710815086844037650061397946426141980089869448318323864561319487818618374477874899441066707873683193930368376943389503182187090395827341314257411822232026412303056362030612394507106894497744073982313395665719180618105750322897001339810547434390996120341711537950234880205696493476968894162915085999052740991208218428114206055245991467557959380321962955208675219009198911459166013970173449185312747432120263855729315533104408400573419744552011289608625239547825284009567538997061690935447594430853267979042163521145248886939476153365025050794950497432308776337655813689856563451275560242158796497136197769801110912747328005944012605486102724443014989657704395548489259248516002143362449246895221397172355779005520631260345274850275376243688462122486529927730146081131472111493161614378618117845077054931328604174241160037475459177919324807831962508011236740522959356804331163781217757029328517454994968517349259573695966784830252066536679636338494117525203482772354679451900769800256416349032212405505482782588251915797434454978334400329221954518506275304821665516908076850557635903567266612085526637685157165707356841261409286957206332453290790597910375456953030097246689598172333202709542627119729010816686475980974785810583875694479406546437980801083885449168477004297063647125106061332152451721012204863017211253818977680519701231479931673795142690259775829342921965617279381891505954155594694885957886803071924879341650844701249203238120412659845377655037961169442345221588335233975895962625263108510107463090970403512113945716942029265669949921962783644373779299736149254401311510168239077103598953889041965857090632711415035456887599842796112777939367372383489667282830695696396505779650975211440873132460890095051119372117821024999721943113807871566570133616511573824745310601915659032216929123376808496551901665189107378385913300565256035789591590115178234888359357890666526107326919262704334436970272717143432627169349250156848421254569809664848671273313837643237879053598909711327944791882714316655901136097247060376712951311142582801172534710184514107856672356380813093513404902200311720282296096773800891794252458136754174936052456575476816993543974232322928538672101688372377433982678348245614642181052936937104896846536274842217586855354547217326109059715940054950932555264620089141671615961757558140553890420195855858469001565904065215251918602528921812810774247922081446351819881717250028151309357764614918965959516128246356690297322050726647444193428935466063342669730726811369298591024591487083318998664965891741236805375703693240657071879206266891683053155683181381142249465818160911785132383423335587779904414435117075338499323513116905703290030602522788177378006086327466256874731601697805258133706243217533916925819102262133399643997056737785539700944842552940055893189531673825943575795238638269586479840724545888192665754272213701275621393970226674255321123651167483890819668261939757649514400629111681005870240948063204951948583794920104553689321075788312986178833766480475737522765752818600635022448991314185025684428591545483850411891096171811064447801410444413750420613440693354385593385907362156061830461120289084639739747306208228951523684543093640531577454088004910928703407177208463350909062966144366486624970549898659848053690659482777666371557432772982302957823770597557539457637184985230317958440562145789388937636206040303766342854748353186212137210336472945700936041160528284435023180423175909321305409152409366844972105758029184465975360717676525162959332764238980459586350923990524952426933494984762507222710877530555112097621309275793512957986047004570438935283017999728591839231761358020441939241261227421311612752169393678724045146140030702904573657871595801118268808168253193705557246885692941491992132905212160336727316154605960040188183125308043979378377400357082905588883249796234176096958498383240223395963838180398651779402320583416907532002302916221972454331135668302635944887862660527562911598992714704699980470201380534023662342712363594867422073275650256460441869491662802907704168520745998446968305073311111619876560207545772687358194124175101090728948381891533071305564874743240306461273617496009166187216815668865630812156588246204029692502460135624215257476575678602804103795045220008155122237104133043889818089867774949557029712119218646080787161286612043262759746968534443200938416998042078251192783378654434566980294755417412409492912469775913020445662133661279971202446506313956209719902629423639001607091077946686231645625157499087750897401446586073966943937591560248078184861214473505774844276189605031687375065089058830775980142731157917806568578182538977985767812513315257235412869697786443322928423637013663587522419469778181478155641824725412989697386250642860551472710731395503602569023797271491210590198717529685774590107696275331158748999561190626570311400609741430680377066480801013800539941403476529402272535248879063479267237563055046746950907909690555963052041001195373000642736853561737400236666133194553485157344297320158835437263916885273520545171999726037872999175803985391664058903996869515467265117999394183889240677766745531206279304589430889101125650803015235340194132244711783605419822494186578775138166138894497548554732092184908069454554241769952661916774976373191020495053456030182927366088614883087876244631331006148540955384743426835255393742539832676579872966184391458348947313557546740581782402547883650882741904887188561018093913200593500831600965353701539759052013000698655698991263674634331655078013136140494045261353704395887575004204459858902436465662747550580040363069063824313622318997658339477983205965459326655335982861159692370178246466651543617060530186087252107165372558966365253266220150092584804291513761947017788574670576318277955019787508832906692959399217697213267324039293157808632631458811387136444953000744425050638893772262419967750124733000457313495175148848944045771639158007206400152807203004598822825013788446186590306978199473558342086648871110700200618271182502312257705727285736546715653776437755169956521506966321864155705366904272341306050245642544926552651792247033807712435180987842946707526919675826173029416688743244483645919663542787724709647422473670244559093573161625750950006857525988963182895657082203345230509177468331310124965579608826078216739330690507117674084694782069716302384443303931386766575565920794353103095985554900395133509251886512579148621691351012055230621673131701970870381208676779735172225751811031925693663868132710428841208172793180203738705909527064531788351265456654755244353140509911211062834445236512368195134530865936442200485586632750915425737141642359658526083052436114975286799332097163942214419962493154634504466946967131507870807305859166432475896284919526151458377141951598890306092157921569564249629907261535919983057079755083965875388951876445735693726509144488347741055798036535675214723193829135121294041019551007475278904131931328332608936130940234228397600724567768755618743204223498371755442860593236122452829942001472827255123915185182263736790802705022259472385881514736487515558035343424301489720976839747349115919860640176361440482602772930150573699025694129372320269638670463719686961941971364999936871312343482533148696861009808272489928767962399310117723093313107657970997584475161083807273241230620797158713986458900950793869935899259493679947172266704019363222187512827897749456424342046234270734739884236884310774617209359204162863634801744530476737624567343048248231732154107038997899558181178832998361255352412125483347427104738983554040939049059692351476121862372640912256455828943190760750304974600507140925471693815421128783340564741695060028711749910373114557881494823607033295465722360580037249619843254142426030976532772071476613078683446402674039248774117259968265569093631142259964332112586611285810699963774792675122484483829583637011527678474851243382629913503715210112622835182222495544518852582519903746521336306128956426948754558991233468766101512328368117380821142438132413278399629623925942371476254421980616489330311180522684802791308969478692507779287066687197122107732749038851986089275947715395608369515090088078988590609579240409423829965795781679475138389678088503616384111039055616444457082857161651151291499480694644790823213685270028365792933901612086117280476571039936210663200132327952303972018953353313103357439929285782536625200878475541732731488378413569837462609183917733077630589317404603396276645379944042311820882938912277925762068684121019552692231156512563556614334508139769729158063820261534301491312657280883938357914987417829536922573453716910196692673603733409984900027950345286027385105234264124188280371635822540983180210461113997498447237250997460342297031198535058418046036610973356417090963197566383650127030781056381946941625661440558286734518854043891691058853775976605912581994367356541887894105420184653941078488658922707396934812377378394517593347394254514785509596197721297994168480086052538750494682062932792813700530837769032324269045294674727578481739983073648073680959863686688046813949548729096500864006095377664485476065287293825419161467279666613753216671253845075186560044201262152899721479628048134976662515856257732527317723973268225848247792314902282677083496330382386270625101947773214320336648409340566771067711100787411243560345580750268939846215288658281002831085613243838069859771426198633673818889387150996373455031932762788777049169432008817576080391301091931381347179686754319481650034984833159827904493324404752964806138621140496160691489674196022450253480672428986345950809751790751041032638536176711413674714760108967165213039557864176734806807280755779650503831675917182356264418629234016749152802580957493420485210772148960748451227814242153119879076471735848951577029747171633666920410567389008381176655346107052328580456215525739332668367989874932536440099898759780787859176749304068963876890208717789342242729598376858059929829910051935292832221622163139516030555521740609455407126106858251357775687270899021947252984288980603765514026934092763023068661549475389039519218692407925587494706755649511163835421974785263984395663828719677533510629152784544568982888867051047793923972340827346541663119523050137430956250259878899825491921205052479557279209048437541276934554538648320013462454323324911390573911704582400989937744692245358450574703367928502284133554981052690994533009836961360946976306018027590493952137648312377014565315850572526708389378712015600025837168344890490466219150013826540015234003146552358393648115927999741785249255934667916715868091878029207976593333749507799235758935048450402103546844759442688105866190339141268006248156795080648636908855918605802826414905403614969287133591640827088797034678268019345876436541020269962688747152279339278874145637637689016574580622532346986390736664146300064230351319349906972492261376601602527495962551311296340696465754435394043513695228411723670242428828816526004524375297357198184894452548580333276659154762673601245290587911531593616826122355028072139801830139110230922580774580750202130742141408969290378693944385034013596837686217274620580542169923690316340781134753767888085678303884015062296902750459611172563604849282924964907108174222145417655842683685208640948815427147891785480394559859533197965793083313501192115581560652080074069907223145545169871797555319443451165304965919236703661234495072238901118649835797485733459124376740294848468984450963097109719542881212041167295774173323393760805913962892103137003574290926085916536149730354759312816745741497864009421364281126286176580341499711514589858077220450969807593455533839130458419377966205605998548407705663970489120925492819259499014394520311773056191834967909001653158115643951697770035524136812594644579401966474834329111469803520902125848335257954778092674636895142574421095221128962056028018368032945908273233202125685176923608664757976285256955253131143477404301266421878362484729916652259685300087903453816569519933048829994114696535946126399669343749046006234938078788461206400926525044495474318574074627708290579340289727879351216158478192011031638274020458688704723888219748147958893626868690213925653281379124141192827650492228920439741300127768434410223484606431156317615239080925594527009875377154182177696946927575893074170395091186159254944585217669600369090760649272874921911786112483161833801039874451362916854541895620064646048358383399629569703778036877389509968030736974269849137947837490714748032157374891840654989665856080717707743496992336643432849037211536274939387348236318084523179834074433604296055766213202792890219944364238690759880803245042431193537190460758598085729995554559376496034189097057493649713431001389063343836085682182398733220914076914613528991323062560486357658281315454750424833913550131004608922128513509802221063513968952613822084077362193259567858071052923354465798934967197332050573490139130693915076272639483069504292122108897665176123351530767226584056059614534839911462981082339177752126797864018991648927664998459779652781726322436959888163500459889775144809923280703310943060009307637580148045895256591568242969554495723504152122157559758703230495246663533670746146629422369231519165494489422694177463771971652754199089855505196481546462034441090444757200116864002376599496227682562632787692222533757949835746184822273719400791698108917179613033746675055951007813405100738567208252258429265188766011172596156018591972016446006814243033807960184146225790422512226875533658772321743279658287898369997127726781609564595701670148197523084098534291029788698777178707930263820717684472086924981043698377471205886040626205713827843101017307040872266745945670004594877747700770773316702935700503103887129917670849828661261402281341590384005854012886361149515205186361600996467118108506454271285493064856108678706274941511966326684117122280567471843519716400423968061963615095452394596660384300703446046085366324498684833243924567802128724396561613132576014630234694791679164583954885367377477183697421805733532920639295256643560118772492601471984142156631453093420960227341959923617589681613808462591295952294901338382730485022215764802687215522306048385630232658539363604924565380878276703071297835341601653421505462437696536731025999109860574271412215801968991589864622364828662786691881949069760310411044818824044469550120278991846822476199211951315575906896110885229009185293321316258394002177782283848256415247901664600250661893159385815224923856713538626223303466108818130304440210311047498176059108003583856823205712559059852217771203962752146850629044849016386620877039054146546301300508816741684077961223667256451906038072896526224469919078981728176857540783671570861636326069017334843577580500220995885608198647210528193410432134952825859652259494761380381720193733300291486401257145004235590383515648180971898158941725312619304688429915551337106618530964218978171276854551127715067370791376261523925865372216906654201451392022599125520407965347960407411697957566255246730028090324200484939971420712079097644150708112241157249195760851172119090996714913792836147609633431632531849003704794871853156209695541279437964159317149478967633812320832076645431341632033165110202154437152515815380716408405380990601127761555251212768154152816704956603715150299427292569018874512075451895394402101735661647298950740334677686552807271804092415603053037615296655488136259661517736315293871051337134945628155212950636695238960163450255830554428630109766869930445092294921804777934964125245819321410929437761180754607495152275146143555382790979365021969777436014251162087928891106236739698389317268301114280216584672550527494669214698489273957792078315478052849301526755527595963627556176914244358432379560985111203228629753283058332399886513225287617070560632614472615258463354078488672131703366972678569896637083893549552689651095660576049276789524550918818881929605027933878100946814301599814272066108239767776765233322629807832751685771575006333802813423394838827617505620488290538601287201065798471191125158880644660844806641276860084322807253585784373859225430556405151834596175307091991608707203567088300787834133247960800459974949214291309897458238485568728411391856794672271576342741225800672715038428756626351881800878305672108554096206040063577128599318446900904378894364740616978490804250634763588453748801833915825538921367017320062559127965987196205253566629735473638416696869223150716393844175037082174975087372530632468347549854738756143583724539131700643307701781166032556374533664731311075926680665739348034501384078842602553514240711402419694679842589336626124088593501223294996447316487604608235903904467183724397674109215309677436048564463393124262773457633089824066329872982994661329274042175495464891408060345451419194449951525500600475641010028648432415584824626287428766374027366455204207477933358323481727523241763225864692005273740090500548769163494608661113218705958859135859407467498840336987698072840778709146308759056382430030666151185899953446626063759881995959732793637991949092485003848252063088177365723101985815167484021685635340474454689532920419210499541295986993354423190906951838782015944998415509533197116874670451537236170546984851640193318923242857216349867033857159937658808224719639019635289317367533551207943971048415303529641084348007890750841600657819647655632252205320921189003675733701686534194863715418911461502403860678895670102911204379572896108228293133774276733385406865664757808078626159023704341089117098553910897030229687442741010186993443034577098958273894442531539308523124533791791248543481512543616746500454195280863834640693411568069712319834999051786555744860756364491769796834559732976782775906422261717077604402367833453384698070062615989616284976405661511261909944862430492596326946210592142358130312122669594015772729853859492503432160905393441090678170274113462629591119666393433883758670929458298728940534026838665015784136119630819967904790729701692987749232908385348934767149468672991413124261677593690931544303924355540563259408472303375859658909175551791630983028657421446685331163581572009384862342294748226945980861084612006279718214604026600482411584863398840804773285643600035754908327129930138283842530228925150417932964115486456593758708778770760975551560074998305026657644911765235570203759520939042146810574664763735613319594634648979747847758172483801221064014146273541515429944181807089850065250295191452008273244851373480803056969051665758246324829935436553171208183082015799958447786304001200112928634993312025314504641633813241948482374146314721492391199730423018301017268149982639056683308365402504776937200207428270678878706518438538189154952768565675417168280091726367139078467615346202391143815240561703224046291847389389136102193190089897474363990572186098023116228701782005993562599011792678558996698918385901326870902217679859218127863378292574161750564856410028128040014122431634382305508739188295897797855509096974704268054488281066811341255285815352624215638722568409468738226817384844696956351433663938743722558952534162104482037238009433012190321422772369029914998922596766836576415114642198331756543239270628314665253894246684080874563054659488267115061395329337727586868175542053480135813375321397761288483457925452077796222192331201629216411702145534104801576757190338964166578421224441137956861167632693316549897912177957475322410649702923271451918465220348070233700135294424288204076923660899037223257294126183273427987788660468736885874264331604489738096643038373774989005972812465639885845649550389106130150162094226687163715661563799102791787988253823084356493193265269991410214402797001227009136712159387561488508815881696894881854383001257131082128675251694633529895551463858078560601793394184042752371169048921696331656563355651170147081433170055347985051484129055665563889964384248807303514652112088698613827575449153299986429670341715074383460263138032257665363048434451679192583395958228015210199039124377158119102748779398393425620598433124264605249788416569763667368366666915534890580075267654915806007346841494066713093307233858309239877585682554685316222326253492025719797390835884180161591492470863343464528641810500648030876217884554759296346488327413983839428478119954411372044670149165359647742751798717708017748269505227814696597802656156034900359467417543195802133622136606360003106364886494802019974392350836442023956654758492917154043320676664285514637842990673595868063699441439617125740963720032131656815436243301823140468902970843521076064654916002253753446686808976389885659881677823373280818105612812335820829564059781920229341305910962659484212812682035715375251549771189564684244291807656819112273765161536038200095640678098026362443547976483512457170672625014560081178673184913830166334188970903859897722009423305304962124221456752387550812759952194555142256470935502742176039075764738558153489786793440310490893305752460104490543061165642901508064223033138488183791974442231551052670691049053452621869531351002727411021894795830468893837483393801291636243923197548447035211775122226079061043634219396368035434381991465992760723602502502408521109864488686609434232708162549570929802597971424834665723005838554047039820688189599377211862013395331074360025426423493586312689024421501999464348300721913926632047565104018702610985106955671605568707012062084891869873546868482089559739523882456421406664341965286582668061552336739744327168354611170168169456618961315337741013074459242198164811256796464122835040925592521832998791460763535602418529453962243439160690513530043716577336288569402430277672078206157483999496398927308091585996898378735154229335670125179402247915820600165863492535175968000503312722580071612241734115654382298577115699577428542286339424890274935459979047014904273778640342488737467885856408231131261046331285028408994721889557291837092965067534982541810150297137749133038443322048096779643978510219921610310785843408675642912336297303578351108940947446862691364479679819385749917591754043798544343531631938016631450362287344651538966654564395238736692764424840967663922013655504078257044104491046161848011633001686615330777804991287526597170711489924626875818096264905727177954314808124100624760545645634251727770589410935757971839583724290834078322910220640455995436940745817975923113378139216054671878832755867453052206095285960469830726161161678944635043205657125400329068015311509913473555774650071481002442153340488473060644448064436817412859773088109716539164326822456472217061196663810227964892971629976408647717934121778628153999506548413323645985676147280265185547452968639237437747797522783434027693352078683329821429063310201195720213852062628496548728252347647800814326397892655066465325152429960550312703638705969249976559575362888976795238923058981600915896964445019975713495936582428673168878550960304538841930812712144809992475025035448993054909021508954037229222235834576306533872921335930753420977606321510392391179147596074438352381219784972445706803726117403158435773133802837629639629959442437272820675300691429175545930011235436297619548837313094659349792523541346730718885730485521457391124069215685160184811389380225792409788347058951411739067984243281655451710875857598420022190003745654873851317037804603996185630127523993167954581152804213565246330802522673137893140369653193679190545311304411044183031978766415446581766822093929458509360161344961799551412219638202353003581070637631985065898958908477274282496829971349097422112761132770367405465515428231225432533425999203035578619596084211039934038678514456569327730850062776229692851925387771998558213475981992907967082120325038957917918408679510172093228342362342284421788940788096463929128957249567804465702214303263533028774543219799860996624609945701881780915389969307560228468416839984945017345491456905562619782608632616094694074117697385749280127045506744199457924203596495091231465928390741170933770106246181035857190957043959067582691177267716573224817786632062546989660083197150943607359518452768824084391311815748741997229844692494505298195048238112175283534323177842324309368732075173009615574733305697954634738152279061828400894107101254806083004097321156128223901243356431196231392841309717813043303913083729393923085117422796148449506209961772454831324044010299056112056653699388567896242558320415691632236270539455401026156149670790141816051782196839753014479598145108209029775937318010204937298710979388701601648194859721855237229836572706449113437705740652643130284717126706252491784407699101017170710556552684278978893942459722233497296138925968364789882902913701883170724887828723477675878345378643722594703464993351122499796741458088381081498769590688322133259504729212522693677109280655493878472999118907534268847549860435523427989046112395231254233537535174342754016735446111620426317163733089406250042632563019542874620643230491488356644437514132442386462888847887298915074226979299502574248893115886127754555001297003351693362510027291067117082159750667057863400603559796286412379149791959946267922399824140754243435092646407242149526499922367075651252128343538244284866082368300613391150144021016911446551936959020797107374956214542481853191566557290042992253239658524920376832454704049767531128455377676726034355059525112624708012821605528390623485707622051267982470324609365194914121614655567359700646501206481396638824111992876001052568723148054752011207399948027667063238447798914204746500908066546844586092650390575204053477032035057642217084713398444666972060721318006935483377367034683464824181065981877767606375665281457949704312532373785984743191252582057469853439814909620449462648021311766196285255305279423556577803305551786646647554289120584515826453024962808753248358905853806030774498430255905612928011379573939429074787606577408231201450596236078042401688813211464398049216842439140163284952241928885527440137017815004685281354539050215488887124134412292864000750593501345982515584964735567455476250266185969298962079911466330006494238225171073382028105952876682339223269184759850230921532927765844306609433731186462332857152442877550393428760542887453428029138454664400540308398356833809124742341495046649767590889593448173741512752537366716327484203706553001837686498539936371384365649717595294372688723062471646997991104111615189558419206712348219116976094296998343162813015751240501462438026337809369757747168881525242444305729228881547696502347386084726273396573377843678420921567372708688516870971986108078586747898444728812172918279791712399963661041375251561893827437737529598479007182961054637509676820471018091423341469911502313809690894502244140679271505949938383740465042312372648039682732812278076400650544486816183291433542853782880258735934892944772833899361562552913808248971249876465287676943576692030508486356706090168203480665089642597110729441659313090823693473292586953110685637656428030808127992407114742892475590776990757499670535757818215510024221253702599465458840825540894676826012685183023484469665364294397685940735086906969699611318919193076002266177569712926091624078337634221444596861523517471120745173576689985154718386595924344431854223297525463401229078391826742393624108283430749003904701385767234457737624659898633738523948696321508307475265595563388851591541315464311463578812187605585271727710252375037335316265574358597585934394623127799213479400632993681345168897256133057939917966124662135569759249497122811285443620629590910954358384120252376527975307697695566386918640879000929970409439289513498409044922472500285673649695498997417581198540107133087261155248188004945907500846132596776562548448313586989788925818914456086416034405972731233689105311828344206147228063822846447300243094856464138698943976074928936402739016540988257824929644486375674324237970209447791078906533826767335589626117139035082536232235198932761554588781471140461264034509667630011336393576067167588488404068676251327268199596006065903518785582719503233669756692172069871888256211899913233906948565606067775848928777245677505986692642797593136762371534223916463111295084926177825956500840273899807613032703908645142958300755985984692480455443025719514122153214674670902512412312150104857490177099388156261043884084110070473729346917761647587415290059612187534418440800856070369059283484761307155047894109357597694448808541709905850548056531392403741330195511336593497299769969741233503531786193108929048832355360097257355077359854618045346853755154403812182491340997458914133909493603015687593085827717105437962115383832649362139694381772947214563061619632771591566488058006697702924444149463484221072766155859212257672412390492703685543209674154115235554119474875264198194793691852247028926966933536484031735844436996987652878992113018747172028971148551614183125852250738663678392930073542034138633527132244589696262145969212319806027010641837597022010168620768979266328489669484138843697746902894631991658728936619394637645022881449668266185173773169420017647111384453196900848391636704289786352819496934475881797910149263998135659428777400389167648203855043654545169594578889819167780378965361670303483171906494590282431329172204849265526770716348250904780047589141550851834899269648043049453540557695600022627060248269239793487057388618033153574280786443157689935433158963454538657675357003527805051279112525653162803826288147575939910598951951826661601019736009033343637941965805625491140155872726462764294049650107619235648143858487495278470754212978908988270538757917446164493085462341214593811315287176067550414411115631589390712545127464079975993492801241681626619654808151328636515629643766089957864442291697573248475675061243078876629014956711394150928460960374833491325896879292741833872189720765654489120010551052219290891261937593879221223159691028858869321352436773565166336467292523812796878878696834771284769997076384513451786655192803091851608979083967799184675396238833388761726402501127824681531476795434418414991113385180806014182525178433747193619453737347856320277311270576312301310222101895293870851029338283182983681106054570470275251296439790185642927508944862104315314988430547745290389169076218485417472127828551429045692992601850484019322985277592419646756122743442785684220090187336002870900361644396757862953612194402578119030505422013212915312858828432914296846907118151971949542395088877345047825312974172980639260935043368864579881777020763735176432982043206497609426265130066845031016773033418517721712358341614085090618344647728128386361155945386939504902882077303924553853353183687882488491472217882713149045552410998865873191946758300995474658695169180531998769730643183073184964903458370733575208251261822878520274344204814831842217631332478843476759464732937255890267797120432719551155061114880261027718630687374746528887297304950683590647009242692513390545111233682643595636454194932878366388664438475306388608197941702608276535115262534833825565079769368529389912367829949067630812725556726964405050325662201019000316762934187614659597094311124823864875503111386329940460134705775227265885189279185750986031935773709972784583860103848587520697763192950904939959208155645895771236983955572623118543947164209490293001006531731545133122452799771200800123062573764876180398976401170217492566476446323673022580491281871432114994827633928341213031510007438709960619089468121355426990704615903946773856089394793627991054325219347220274091334343962507520457433249245370020836629719453720006277227199939040887475960676327043171722266657999677789547833076155132815826563544103645358176390334352102389568300248081120091974633483906001516182856982527040709656127792622296712465537771229742695929789751690188352340210785080829334044157709914961793977026022840923693965698922975346045781369002553415385821105033242474254810510986728946821507356040032629433019255731734111916157427128431607755564705386870508103149855773915142964059254381417595385980558343123956600519515707953322927389859694764265872863909230503630150170363026249402222714664163005206372330654659857356861803862408497374741397680136286770104979731414965675853337472379871249731557948892060614016650247185891868183226032396943188337538871780393092840604028731324702247902718675809344219651071237475922667025369571170329417552181373051557094651069081363487234006373336032648149209781343992119898363357473242883519267797576843452334560807691323757723900977206960648567615703739217765127992514363040528825509179214659764299854158539537011742385857250652690282903028951945962812886993860376759533506494274729807211738691655431559696595079678451423687866045511861658115710709107503239883178696909601847254402925926229531331479173131035168522617890264113903572656653173049438001068165267232296474956991933724738410592448976855809163428967050099843099194452748545514907023789666915645568091133505515929650456939468724629421840190508087374725271781997605869297195994591937615504368647700868845877851173744659451715961090181671767653668290782510169173584951824418467761064234809977145519342279027392847768857160848771435713101469511995851447387604524137045854376561208879669669723809894411655245284829070197973499759072734710763149697842612003247698876283734517094173729165522137122218700933627929451583948541930864036013215583954931424320453438776790701283651890362004512188342995102550504210897796228169387439904384109023496920963530622679335327022320218024221503130889391153097855409968627330716819458056920283440677000583293524017251351674652832117699466728889561194317679327615690635918352581667941991593921550130464585347822833374472784930793491796782241595464155263643460520684579341375566123948177953303027277028893145033539567154608383056460888025447156372751188808418806348160159734299175675220994503532585519159753499216511630212076501740424191396839727598100664723903698913658980231374152304737280187794286688682117234626518491525854023952607031964538189132644585375819459932737416070616565059594503045994954929328554252863467075331292563719179694916332079370051990377455056751448342403478859060397100093310043763862571509170612930297977997580280893314579592885756726226876335454472219012582487584484710095984553293346216839079689178206176483380489448949711536945130437486919010759554212068081696760084726454392809129326190250677949609329961659578577253030230563131975472047576161691401010530295148585146318135072202177114171422867633360037648922990656618481977832634328329248571196260981870255406943340260185387625446413073751996988236039426321184409770252471780956104633120268199199632459554542623525380887103240735856066463780662136254490628840606782291354951389642988397447553363443186102804439453391029103874066646876101484762035014782738354697326732701588924907785408603028178614055403880611219985558920193627509109780946876168571062099784226094851830937632893764011944045546894764088552217404252559032563154512701302787764559915101758357872909510433227929433902601615896871210903428406118416158881553841573071549387891064121017709022076950756800550518773281861773534044345887297739089695317909272654776524733369176506101056526673664900072546561160250951157872354615614477625732882451284563197653364958192806320487135197751257398812917974553406111065906756319982521964405748128951582210437771834877271375697507962213285701344846533119306572952770015008641823662162016319582586162871286347062656696910038428747080062807529093422208654533675489248264064069805200473497491870466828163512147836924781757921256440905900219884879178529562179023906516310223377707834428125645813449209699650879309443502834974371545282620619164924558848746362861081571553844647235817910560285690568032183178419208206644958390901604059994366461820557691535771124132899548880319464164012400726381074402581770985973434640371885540186983788095638520792087077829550303495675792676639863009675381168485866447795075520714368219247282928001591336522472748222317441216538862172016605685693160918194079251223460582142184359099273351542031140516864371770321177562113838593396116213353164309314252805878187065140119123353345299208299220474797310205412669512193008625316728320014494363526911035340641332352873935093206422298955581499271705910977208260508687758685430654085223880789081005632747442071998504596276207043701929722188740235521826420932867139082030226995759761960850344084087363012274311005894051477689020925740834937374046780356081175734844206992736515128583133233876651699455764614755946829250508593304480932260376963455545539744202392091736545767119665941185579360889712618362832512227294713510478543783442234966117179878592012641081224453623738676665119413235078784706135230003868648485228640105731583219257454463290483018490765342147716937960434158357720837174353734180576564725058128279440543740740110698455888507712098540426170141060280062156341625034888820939515786361422371766905943520105588312183479358601428113975751793122194474235347511505332291101082439716049919448835076947727521340988616946002869739019766309301778607842437353369342062636187443770442773275770724388449061822415972443409671703352107731418027696788659735945965355477074748015454822387368761035514312514477632641955409576856985383492414279833598859706903848950791705097436613613702794072835359380635986053890043088758748370582607578965492367124180195770873826379904752642838594631817099348543591562781435463508929640883079414929554902664082512461128995681676789886380902837731655246298519664828556358733318199384934136272160292423098637776030782578306677158618605291711244328306290565141487420842739789510762631583271191427619941407469211410627013271237475074175531453146762385614657368407289915082233248228058556784910976679735993204384203476995641121560784613461242035075366559529123411596027444767573167653845329079057804271939884835982159478451796061579138636648667749029599701991102037963121925835739820092043112647358980961294987688778354335368696317774488024620285628257876191137664631184231529976293540616347873167557628520447012716376181579595505202835845793014653198267358407836003213458316649328315380481736309570848454105441232094298029280284919209252183665295169594949162186132767692716342793439194910845827443114222218883021835683412120077261982404963940025692461444275665386122307947675978371485053013055653057963373944581672444701481244708045791443404542641822350717635498157709331116901186762298036241370138259339497312566450240441507605057759875759804075124956419803423341907472127430762757199300072111203884281825715320556026761807596979384475586078893087159687522141141150243942328829597779475303485646179638807552865213024016279512328041672232461717003594741168944986231488533022826052605168137368233455803628408965387988794862893322741697881810448345339196180219310488707005087440177123037573129947044393464366278606712266353646471059561149097666979816849160711436222759396978283236481736556491924639025819248826009845480336094773993451668783343665641736812329658904129420496835576752006140331521543088964777940967359708813570136951990989090777474189690506847370915562704723824380296472517751493900747801915552331703494102319765465749304945991201905435692032426149439471340196243727621616196976400455309160372806487998555795328429882065560255543589443042533605843421775796428811311140838562151214586298939301350985686845093509450332429696339878548335298669497374107836714319165541609918107885528721993047306515994416078228113601260215654117095336672939876517391277905890065374491719233669368303900253389739897112678456875917918427322467181464473651628923965903723544999513564493306624331502107054176054793080181245121874515767851990582802134184832390231119682078839423374424150408500142752882529432627116861090404350945286881101536751078604223757240067405616073682715583376496956162848789533865454781003068415334851861349185173018705764350135541643226382733950366757949633339562303083672196559351981328904519654959141171269183071936070084283811912717968403648243326427718015836014051168947263326031479847316226467715335770254489980167152383301022722169173168485017473981205566757467356438666979284636064331428670325644807195848940436563430907903635572650448043034870800125798117621074013706028170511127032293605310298166728210042151987033393863811844866309253996227253269636251312078437358494193912690287981112577666352052808665795301658411427125484182570981412062889146483918772685469079765672390650970288571559802856049586074131478748909169643915575875928581222298417634809741354895995516638532293435275970616142895786803351362134773338073025605514271195440550115938542245572592265034599903545734075880452610997252198855542776766812112393273411975271317395271745641059376468983230224156663267868640939443813779200377243446563753999246952905082768954742613460014170529587135591115354229958590843450138598667198213286555321647453018108568013068564233897989063806932074092615269351186154223157140113446125238467938559085235380592949424115507104477896342328104490845725917946094248333773236197302010443022089986316939482065852821903810047530097722940265112137648641037895975928499013833995443211263394366384201871959829192097038849722331680903222918592504937694560091119522033885746854501541671312927275977814726272519909640291669213503822424339389044325378347422238453542382030024679011603639449093303391825271915969940277575009162516143043216878547679450142402986738742987914908568569091714096305755979793943716532356478150941998446694033344083341204833746927346424645876623508890805149804795912341807743341823441208642032889120551163420269918167581283215245457098040026902522041451343336085196405863013745211494800850284063327827867014173854858654222118097903326441218552987685025287152994081136409909913838423763561765219716651715040826503630889982020940654300780433354828865997850287459056720916650533929468087172637498825417594853941632569870752194280880805819021261362324925728872041224469574270373252909427156204760366513830442144714683854055732361967336251660700307876909874484584002389842308806179757421135471824626222872475841982676965005846906047397679803314666975906849272260090191697982246418491622786111814637244241521649861036353242132949156014745133366800733780362494040386845818703624783497052284494362329048046592625378479953575982142266460309396196137125153917740084387058706710034761841607796799792883002983567339282550760250411325273512225210115705061789393525487234077935433409572693409057746109665126054726342686017731235486464653792249766084413837127962938489263646587369085143691302335195396048342627736810332483706040930166001006986417303943957292810028056919004411346440642605814609074661082265891598236279365068035657495111137393318460252060236872692925530549033446311581841366944626209304827909015651931881202347439223808635511882190536189763902344291236950025260718374522143094569314317893956571897972201665276486475046356399156723773529683916793436511841917547924928395405216300587467002692146042405680666690655919941118767609457695357101499400221299150629635832285709094198333722983913455324530585552187074638533831776478072854689813874086865167633391400600990051095352465768459978248123063151024123763763857407154726642120825756477293219449354001140510856711970542847651559946877017439447603990374339048099067895306418549582249200076853286224873928887356653705226021582277721963518080412449955916228562770205289886410720713440748282637275950971186894197100568733746658622620846595695876841739066743360642693778481589211499147914598038568087531695006926157531856976593403123346107067459001409645350036933771726460747084996870648718481367995673148012495808551151747512065306090523252887580021639148035495528032010991367503930462148327661957376310665200717438270258071782123132916558335089732945682994415808352252623902916219635702980580920563693676561519321788150367431716429815397430619421918323793597378366435658413633889532314947175523028694595953068296163506161237493924495057524871020557456689362698362540754630704335003858108859279307932910398332672950344465073014028474383961380213396592181771367114610288399465346840561821460000380116466553560147494450968815996670618416588093066914288567420406817119475086215718601365194775919000262428946129152711044839861524023846613944775965017921808341851926539803435535185798968199101470926278917955190537084805693600070323447094883310564786020990933357686735878774696235939061596416982582881855158913926847536964517844696921200949305805400260674742944023663133377868867635819257343962077567375273197287015176728129104431938878262123190415090681071098798022186800182143294144221416248518542511124245065209474221258525855896807748417910496051791962763002666515640888825431699636680035708189039967070693823075107057244583543125872542222711407757557619888019464356664407810319630055865065256441879661732384300287830252454068079749129667531353867244615253819986430959681268270782565349775415310085406891417908338885242977501723376526640944073413152599658634658026089170566144598349480026926817266367570220594684782872802986310263107130665225489314108972269690690952193541740254987975702354148794035526358975382671408568232025907316805037113820722454345995984618840591235338858253081219495388082016338295713548548216505079581803297610924537043094274173297976589251034002690908054442582091080242449651885161464163435950815854101870794070481379844946764779416134733860186403524047983281147578680795440466201112108681238937787257979020601911413905632675498349813408432375260391301411973478852771175309439905564211934625987501633253896387757151296782320009162711637088889352810290828855430869324422455060660122456557993254808405544923562382728764083610660377540741088696887137009136199450369257830624750206799934309241626495744247409078598649554645116223313223178902140093032490624693630036158539640527990391220873347327022101445542327068177056200277115543035698140328552214258192074252310523902278198671884881986022452682655613439498958886346098963630999507367967025207508829852045899924816195509663508998622996616466319800568148339275166398627918514156627034819473564395354814866278326630186590786873725689850482581201728471168391677388437064253724366408575724554015034237527048292198389910285721119729750539676192675458172258663559690138353529193321552255499991490657525743717953253035777103445447107763434699996685326754638337352232505666185639147594698827861575826338678280176173612238434371250565715165063025385653831456086428216732016268615364646611966508841483982242869551971946685634195991462429845008507125397040777569576628289807182027371254163981300495681424181969630228988307945881398952326039141019911524727212558767683189293510804586292293183575949848450518132762530718224212919961620703298751355650280840654063113596497116990792200187217149393319769768959497666884960122396076532818143952911539835711617971137740183468766971423335770472151302669588791611604751424099586327811394584193631603018109967150243250789484034768396959517405938214568079591828608880993527912441093806734762993300610463812860378915077495895650329769673068077831998237266708768930430229412835069971535334646381079098894065991572051206937681817490405273551689053229295845323561566758534108726643334877993306376090661018797742915085852971542568515007639488971612294723052140340482518852765459595378359930850983862918005233191826764874570995822394925967642431744781987285454415178990996724848843456386350652468896380474932406710108012773465236242554912090496540184679086755919060615618746518818046471651766119196854901974711148808704078050970679064456772670974621313980092021613153100496402636930675486172281045001520578205474215513150883898836439960041040457798343962022048259483389054591607023138644823827702195765571240937628334129783819679143126183431099466690993471943405681392964888115481204704396594028066031331382583769787241031166616184587566741443770094839535531354042111084035195273694570244440647099786081944052905675851437053479058064460760692527055929728025765389130049934285408131723916609925665101200669262946818412833364138589687976481570627240538102672251871321008769686616474803428452819306208655511156846239437213536842004134406396181000886104834286190902728881274340189792331597003641421858253563734309962370755503260462586721241099750291263622779007137843827811281232594254888476406026112578938929036243215742201377567815145456068079439998077795641423622747972613247153146326463941586062669969569388864002022652053820029785715332601832883804989160442466172390836782801351268613274734044008861364892477997372465475654839885622038677785286650095842721838067589670777604765488791596185182008645548148730250893731018608510382517973905822906745944711156274923419116850506858716494570619049228830387039576323868413883617322504493919499941521686631933541708582258677461400143612257035675286102231137348729023513087151357340040872151111294539316627963801614370206055073918768677703510266235445650261744752245852088980256559952926565968169795322084913354162729519253689499118285523068766609569500774823331015197952972903400442473138435202197109021498292769291110383806253567004344943667758062520944834621076482211973213083575144068403310890085727075799607004824625695040560695116961445315577259687743244786358321931972639600381268031278159702761740363795621058178520894000719455383886697814093763789809199419697938287193577378322973051503790377237449561749865008547292220491757554639606880738007259259523882647690112071115857189013618540214327516363219619037637752752155637348877925161060536731631555818423501469862127788961758253985999612343626434526284121786521733658412328594878941503762731743574632999038546194582021703994397470992163558897954514905940379558396847421328867097384204102505177451542192573258796166720309727513856388493503706344832098015738177843745475517775493724714975371941327921152502370439152958707810653567363873269289483858126927664054850681993457559680289976059593729192565446330652236275061290243732529551013701612417173529952065161972932283228592617776249622482028760695015477787895858399680458665110337985610947682434407694781834174115565522347599431814716343765543294079964901877941032143798936461947235471247105263570900801962495622002405243489243445377676964844320669213710285884721861591349058513148258946540719827582884651070976424596668686722495745340072098507437930381624593236194228384612159603310256311806855359057692438883893727120979090104507951123294929714849899819721404031061543999526604114785758533001744105049181670725251300699699556695680398794890167817581015188666689869781285188061791747759397537049717469358859632698605956866925665620906839507460813422210710650325351471705836674318163193869383775130774734315420505190614095620280750365938208936621876388941588222111947040334013444250689317243339609355536571312129291122449195000154431009787863023721504160110658848524006860599975187702497279921313758751549475949801539953001957301312014819487433926325306265551331971268252693444270443656900611480720306729017887591655484633329694426793017035527449736202884246546410213669870581395206052920950791052442568251311603059824529562740584960448009884248315720698638397350673504424538118676086341575424415171102353460068259952294377471061352298913035510971485469157687413168826486753456373989443009323551725537410704321149935717071305892833626626745398788472151455045137009888304784670948500774560713634742790966975951425694070910107068512333389005496437695991864179196867870829364809003044252513969304194331854515685944252606199744248586968265589925279638879426739109253050443126914263944255991067177225541392933145511141133048442401424639568265694564800692395744417529446041116230747892554426304721464672627651233474239407798038364268983909650131205512249221399031546775714449791288179166805688372964489327285839023859908945270584693900601185163100554923388892015670098603639389056488429151012659392283208778352562980590244373752531801531660106332994900498384455847768338114497904431209306121643882425456434036247237971526540572719206296658144684708835466955224918651865915311608652650447505324689841908456418687738344407703753288588750089488822222187633460077115939345590022220109601228768924347947909265533273042670277954524314793678057321557412414431001655501848768834011268195783053256385642047607866595224573796290977689303030791996554884261299864455461895228705582502419194148289321572034519403045805352451055254566221557670451336982852983070360578434930396776546796800072622673372700547564667710285991966417001121613311490142078221340117926831892015328092119985653943383142377444982696697465743412912285783951221654925869339239923690702090704456285643510235686737072254055131092154267971573465690146949998313202869951839821571808484646583427822077432937917299832108533538598301229626425607009655494227555741912511105909815221654952467633730534637117629566238047109935728189473967425691307768736018289663349909826936875800253265322271639186504428126817380747701967687767278487914785068292905580246643112445556162633322801432718853227806893596314641683972434474739264025762000957129710841053280304766972795980054898157549987762203448167073961778659475266913625953950982955871905331025683492594720428512727619698602274032559454327688749186596240086335003505755746015060661151131743368473467385132270523998525885572279499093919289862934275688538842593425840889372402950797018023057208769555661170290171838780660244103954404741825561290077426036309884535454426570525597684547143389444356229637985419503897990155762380222565736784787441652364291897122833590759113944688306310067645649723438058830091114515213595111787076960090552007843797103598809065992194077201440225627655817094323276100920313473086917783900707036231784112389796261901722236167294303423909857883298586826311447540623986862651400803897675114534871238573337667185508459538535767803851265071321864105693327640154660925373765195664583243884708176355015881205272774994891256509226475264021433946104829906627773836985976167124415961167728290179076637480162193652517413729886713644638674713568417000543024185252548753809584661319199385033868455938638717372158585690397881283677559113033279131025617224243033275494708860195866181780689817720987373381803216595273633988326474166777255083193858330267368862415305939723483490828659337740785379214891990273432531506792714824419473572090842483882337957410959095960507966626819924651162257147695069133088490528867604312356104114193620765683835660969284536650056037314383891134023264851932314776395438894580428085001742555033810843688337672766037411124353059775212772204311174969559729522841499044528400237700405645422939880223117662302561844516581812039647075738560093824528287307710772545887017811936446592756890712823822326457650077252351225754972741146083718803298438456199518239044681080138989268040022395990027413869651333926145235764681943774144094046482219241071049675796914156001035816510575840236815828313970329946102051202520766219511708788891368585776489063205496805959091699681826973532850495101922823230117404727239874966177937678331820873249978211957099780421345804892786213079235950389506561174929676865511366556657445264672216477171309620845593264251593923990705411993741084895834220047271435502720301418475131037562725156935025297348578208023810717988668031892335459006914124096843074407708513907036570088386560990538580670725610200908399618540767538930332149188405059319626573515452566269790299456459589881479323870865577550946309841623524293692203636020862848859200736555168023189101586656976485849419325118637575542682280694937555661027905738078768541012875945358582644940944704501328099827160527201932201362586159782230147430273957768264953340058780662249174852666239444305859450869421428724051065002966490896857846929760782195577699500532137739788135684935752493549616328015020327130737178075973603905257982362727573457369017099928032118825414752474316468974945580895874488861059076277399178826070095205321402235149523679139469374857243207282768542485860052065578729070311356435829705861309924394766680378185616321084882797133805951925575568214819310494243302534964724815870095593876008776399052801795056367108382567454180699864193470454398785101909043775884683076066344635001322275580676282911636224371347521563224459140819653102153876025703168314948795312813936271571533376814646423664335832714585143847796310600033131673342960755013450602052584154308684812194386023028757668832857331697129914604455689492519371302520238507265592811032439394213109747738320816955223627323133173389955388220525611424514539208965834638534667378923212233684594107750078045780219677323280481231714092068442709827535234864555757013483316355993100488810883122954096936637614917339736802145324912513467268815856264324620404815211964518552395569260383100642887798607081709792854929597902187930605472382825250879611326703410204864959447335090384932788917908024987158950117006708743538454298108423160978600013195564448975335835004788503636120331973567477538154349744459238807925820933950558898746857091624135972051697495689553578102337392037531244080544528361482149224842548012998635640181122616062796272039402925145645867947118542325997188274747273482581030034875903066513961152478116604192181149094034164373015423894130418232211279340880220532022261329432293820045641771925725685720836908887960937368512160547420183096291397250682148820502428790584106826577290162484059640336731876896761450325509794125306935752084067504726744225247883559975311898820117407115485066708282852638800315480327099667954284996250853571409363298026711864144727295188619594809007033476346886632592423699561151827760906311732013913022956368060188723256499058216774314616673179921490942778890519555279276261233640421446328038372889542123124269233565926104937893384548127898013149744613019110486885246303806398214175364632686211486729153605643017626574541640150961173831320183770072995757094342610331370347444610530422544617446723888599125929863796738416284667481173019555883347327330088802458546540010724304924241652977523370375471312757023031015387651615787862767431149619636271993689378033729165220656308591332220792731354569893369997668373895968880926671558773432282412467415531754241504491451785296023496154431852600977623824890114921998522107005917664703302571661908050608865125405905046597993357379192003941865926638833805991780762885068054417320733375578075284839457679461983706350569327872841117869193035781283306231973318699951260638709731973660752614643305607043728486360792192123603085464142490404608845177533132134187644809322745946156205494209928882149725323181770029107105665452530434668687760535145913664327850498021870343316974814195701311250845032227455943033430944045078518809760002955735500841976227056949111869694939337440515710081722022978234064835883216310569609801734855956612712657807377113127972278310887927760565149650915331388973539880274365158954529867620974974880122674724447323482713944262750301880513012928953952310613570497634443407868438752810745170392620936400992182604705194996173336182171715747973139321188284143026788448840563368323170999721920583199301058084234517843728451421580103561466204233859048622044841642594836206200662026871908392102704460747707960943774311238856681526548093679129275163981497258716668027581375901520434303796819142967412578321703509210167069317320412470624674624946979091391209640566904606351769262982791271337394091023856331648339215705130511026567137273829191665531876453319952215922154124652343968861772718337394661438500721390289873248627717541705278609134775827979988320976430698727460963722123005588946216219586062403317396309250519820387269892513314161604275201562039752558509354562688199319688472708648442795219066789481740641576633952310410271077750865313699419496563649497409565078210524797190076670980454818937570592957107608916149142021508041260983690094429413483712877873448880770558634794084719903207259098632460004276666749813968705845840693835097355969967173871468739440856398426735330537145139631645319672737286841427015320993372799819121205532512460023782598930096321476135610224871856284245625782037987419314428566112328351358788072572645868202835249527807046799343120147443510000241782554773800455743511220981628705896181554632656761951337113349240216787340346473827054775865551497146317760441404239053147662799094097686159284862722680851146615203217058124287996952171203033844547924155355716384803835161199586286830780192532802784396605456743743867781690767935800875069648265648368651622319547363386259731154976465951144146357962825430832304269253961823887676052856349274580436919949550839664785752162046046476436402706876381998242807100985926845717673213199455432886390828929552331127106368351976014981449793549109631893309678836524553514747899957774258739814904147693160523400779169650441753615434202667318540775373200372071543795291617702092472821954142218292589177951823401333417485930067612080169111594379274618418540551589673021241834942473703633680080402006510432604179054862289735026918600173099014228781453237202062638465481565875978256259579903566818148403166812468324598048538170051553399585020753480896039420661169953856818025896486550081933353657831187837195574874857846737774697454497343142798163279236028992334101913958539081821065629352864533050595285617728100501175161741711516178418225403346488198986992306985463291917893127254206069890569892746382032870144104556639964963329783979503026056461993748228481080324206858594621763344885568311120961885344025449438435850525534882215522388077776343229705990675400413282196889305330960938346149193822257824066409005549572547524773610629216999325163104899782977929330380519517695909748733674354929857812530162632390600382888293795234378519957955300878677525186480805815384678577630953506272295824065272609383327816714455062261265781036453808370067308918662713367820089846455005708030287713567382912136651214686197283555022734854168182488372997824521412521790712795153368899696521334766256240249868680642302606040390137542656980134594920988983726870592831719089525579807229236515868378793417453273925194231560476320937123556395647114000492830789911401872406175901724928553479128016540738688167026947243572751376503842097625713748676884442164291422212224076014785827353039793737470717024495510068759265099387622289426800030952589622127589081751324227054703405693003924663280777780936192457121379523305362729901444218655667429169931433169427565877926350260232716223487426538341747741187853553316037603380484756600335019512416864874683272774391723685850920998062282451223887778245799779591411574629895794036188266454063659254238660964389341262574777168439787384583612242923262104101348046291562756306825259713834752613015544327423143705911916936459027011324200127478351334005193452540593648397123658455954074808679921562597916656356980696991679379563653792297573023844482791617488812648005968815393396684912267808836489107493555171215331770289725386539841392076574629084439872534694691664601177365757397770653004366004177510403202427608452014383140254349463115479679445952275464849631310010865090854518802391209578081198660980849982565900378137504576511245074263031766414652608343519744538260404016271408021486569538382314015119510871191819859722633546252748327246297648056861301871756203635155293127557484188260133400495580368247817621606261950317559674156214957643959908534603846113606215758762517236302276168368546380833821153772167924160001853562942899661461591113872037961299405743701077180224856895459230864345017631959419591813434913787574430828939580354195797725408961350588350229570709424417833735800344975995394155864351834562964268829803377860971794935046423684769110202764567881410651693643074944860446236004316599854889236909756542599671650886026671668579262738504367215511981149822213681654768867329237255856468781934480998237151238754882916338455382975393680515563134615200841832974957942414025500033949059823178099939404605130753517799076011611589257385722138028197971937428886257605210224104679854327202518920825589895307351271544056875922362997298768714629742510681210370931288075812163908571391152410731777855222223655430020902852870601982687886913850429756242699851178451228440233217758231325163766669742633639325181411170821998762046409635982941228252968956446488923900502858684042127399109844059327780127160699588945804876207994825663073253802637139614402528413485957837299337946238749087797809055229738585384741625428700884263031597108478625941965239939475138414863926519718317612438913881047064649952139514886444656684098737079884630641132923880874315866693682680511845529046227957905964993844115700480944243953832737821645354244991576211700831006949314090520148933921987781640756332002063722305937260792509324672859033479438651786892465677229530132455532721615434135877504150130603897373782789750094884745783563537487529427644846209888667142246481524733678975645231664884014742566083199010026672739580452767724036157167951252667516367292899465195697528487888735134937968802511584615772333946548770332241427189665735222625796897630797096405507737134566486476726450680892897796477648547918160298658155990143058587756420018726021059479169571181562233111770178730526402260361929769600647313974083766271979704466362829023260349592981633139471836533377879472164711259752385417178978701141408194001270251418605734414729317377470055391659401869079653040708211880240540918266677888685160880579457405692443802901652771444509075932570189303037306740593214987802027211502593357216980993075003171053027619561128124881371239901699801379778708853562672762433934073264026762729776155861853486396148164755676021361933445513430943086458092750876782648001553838952671070426096260159805479206998338780642461242409775658288962477080395673344842688987436720738154946356960814879837445896888385211892496909315012444973784882271765181213322639547793155646584510068250772954514673026691552603128146977122896747401850157863243903711316651266186866348543922078598097957095782339647821447605859696504225653786180796060974180229488209182585307448973294336477342176951430282608805830400073660552731072813167528620094090510316286865170500247039983519595455750321297397318422546904197316502421211587038504956843853654229473602043383259084376975841129946647499399842595241666883236994985246858970478631801002656361210741107149425120034456294545628200335972826749703173109065654702650547790770147503981905713672297184082770061931656350389902448672488612298740742007249862445263940861894234985857729979011919335457000776806042514122541287513298213684341520415666595115469736376665785715065226513105993716968899550544629074149972648522843672455133425005945127431936493511547371715732269023554422306081892709103643777766270681449315517656959691393440712059568981131910042128005791393194235842546735196091397065079021215926088503552010927908996227312564949373124981067898418900889540569272342350605791833816596839992638816192296277605086276819761723396912994843210230385286240032415850533176886216126880928920257798941456526740443435320868050265418718017017046212985515470256835154735040617883206080341782055283193690037292626400316114991844062099203622093645391505922827030491612439698263990195761281281971084051392003035464621022452318568833692012973069718954722511986031588450712137452373682472409733631584397522083491919543232970516464281251339107182738070345359972231431150570765550395220797910990332938190622637187474678807270048247511756604679381568531497892619126329392000158343849757917854240112508614515954586361048159583725414260384399499421448141371657628291503712843354106837619911474159522509785875710787510548030816006357448422545973933578333294347968812271830863668968694686240545392528721241265561106473824514022868898319447941697151710913982566293088972250309328906782304801296299011250164006452635717033886311280109973047664293909901301465328631939391786576694321006642998131069202021707439149821002407378444365772909394061687399056681443649036409166398080287423826823520558724327339789143644667764871099326630230831179435600025912535010841872289115263190592949114941685186147096054233593360763685816826472353404013574641596909874000811892053309817612747654507912100012371794318127272417287459695711908883301297920483132496406203028974417872631507368812243950312671857962315070681866140865481283064831657888714314400127530925780181488519294933300380100770688561230512006230534496757230051403087167551864497162808920065184063654150974971152801734408287681989503255869050968593576332344728483371420498649245250360033773937376871026948922700218491410564418251438245039784454424363943786465488152489454141620020339917971193784631569146194334819254479323453424474607816357185219368893849020329279413907224750908266007512309797237426086169152191427440731719840424050541102824255567464228983755620453387456543222271265331047425341537022538445458342690939117798275543942677524176494809394677352024509716572142979309084379793316194738841920346034881502965690952439734297112086636947466209383464366014657603192036096404591713395186837921406629146467527322965787827551693722755471925981680607424112191768688197273710764256059711760422447080761442237966377108307138887542921482568499498079403306100429687408173352389022633525088524140294793963357263208447816199218314199004556560679231290015130614461098844676451130972215433011018247345836860935013271683329860674506562133463059018144283051657115296720027254749964324228785764201587196552232277231668699598189294974823248113216262781841743601514758399716888626495800952266991416541252735590917216378602128591140684381503020506519738071630473802113322078176602651865185808432621887381787381071279471491011972028411272125030619729075853040221971998418401422470807647537860083992621564156466650843807424823796383588051651896726127889032073484684425219588074202977440196345472978117498325236657386645642556224271393455551312735713247380347335567827530770202077493803249822967316450272729880147250561890306370899169961063835749545307587077502206723713953389926686309665868556655317852649825098408222647046652382226901733952987980295627475356611008555490173668511845564781178185553963351257034265947907378472056449472695663520958046676351681812317682167809385801826564815390997608981776855007157721488359345267547540574395860538269317555077376834274241309034334220661343921941624998404114377787277774578698605426486149902786974729747126407541519600540887581861012329364579142889711900233054616028704823765071906893908258793478526585436156043302093183391782141472014165960004210062121678063000677540259148024955727611305620571330383005251851754652412877393045594659582498228351262396038350866851410667240940694214123418824090482759822950121724223606948611514744860727070316283744914893887688466288441821491126032154402603353933342691528798042628270560467565877014982781016119586641685797361752779851427904194950589472800261192759165725915271704710690428850687943209327677113752720246338448214575071416163834852541787512783007771193694616794922284956039103492754266549420575537744249839950550323178000949210410687778097734582347082964237208668487374489362863498710460313282194795600842624874682143249568998791841021081823756002298732835018465871858599563231898910408437748363247728241798110467552373307586231860800138823039924537324982413436668136699153208711031850640658420103982277886291422920727449099710724417990284916094336024709156127981574198913925150354525024252955607027145146503770303490834386470631346680404438029786700246851175497710822084820058319606923881819594792554703890188821038819304136428171137172586814679314192743165608354806878083988561481059866433192087651357971996591541179465350359349224027115596989318430676685470539261742044643066452923268528490930426011044316729929038344700183682268120429453358274781914407268720127106321909637830938819003627712987381860627205851304982799868374192306020561112496471745590428071137558436912431253380204811931436434172814818935877196253641559621460611951410093956404234390463782697468194726266085791447586176730053562113877898155909029057120680882971188437691319391556684586499047602090334765626134173819740131931698887684490385110491720735994414387713060410033957824711255057184111027099905236802854646118423496275632417050535465136752424169258923184904231943926402746872852205719410434999751612657426866284336347813056812548508098937372910854198530191599341632370809017213666110330169902149409565291381428353352590027115695854927897461600096874847378145032993041589817016068577112598524003593076932766670336111966722850967098621479861168568947600364746776796060038300159744135569594338581124249265941358101477401943751571658353454147571985786270085264976051459917559080427940548397924286722812273313959758901821557206680450538848969713145783014344260499145834125127794276223619863346641952520139009445037550404698558563826946839495912648617525392497584862470318478401016247403795552310027020790959229525623754591270764779990533092705720249783282819176455748973213737328577397245314844278806410683563071100390150988015007518090498267463556906104428229929104432197082330241958254350303387144639191911409841775526536148276551894251221214628186176028619088460258639294361989590831527101399972117093073303763960442496866033271992477095327319386152050341998986682994510214856862169488927024855285615633534047109684624390025370463188956554635028416668345858815101794909496621404467485219809296332366450365645769999041041293344265231691463761084721256918999970919981307422949200674117679505667362231709485930294182072143272943201477892651514773599368961019953243940286111450933194292417611772940632203853530983540914173522670145819125626347795976828076690506228953685192897153607694493449999208170803579814402282428878441235451733270866826889319953952055074134916330578658798084243726665520585075163976488411153633662632272363789783810989909996301447039518412891493402821576662105338193169797025735593568310677965367044817756109476791298774897486416853253071159161304165529104969748006609780528107963182131791156557020327677542219151127615753389720164411915034321194072651871752869280462968589103981345877846911035861693083156472475817529533405780154617415024385823217994406525535744055538688589137681120949229239895233978999356282864709174625745370835118175126588356315423722885960633224764987756416518065915035081677168074937778127408223000389578512605944379750858711953359997763891292675335383299271771362063699169088595419061128763090450160798127059673099895580462084619950134440328063601812943635945907293572051027490735861246590184726609569934093615937753762930815814671229099697146599773687081066033468935420785788004812688470278617516798177886763202520934409463391352750332552519109131133401497875333163642041589183212010533646183468322398170948952571704994011064300324141883923975509128340671795591357602524482609205718756239493054964429680269934427744241327711843062441925599872617121859350319560733071893376124699915509785928932854013926102853671326110667309882160356011612187140757206664130490635405053225840583242750605342590236039848589662756288005992549377695833557611203536344940948380554910074113199944264782960884880624230140927864320609809296514093581005829994796491680275729704621594360244271840370317598491496111867897755091996274097181903714084335815428124307870136440001079781561012909677321586180748475679836180530842556869850593112465611587446250036782956526707587043172643444812315423858300877210647966550918163590685338486651361847429423176344372914131300885295772729371342785110348624785864823914687560046235793670509549592286187497518639781094661576553049429355629126851531600496191918773527288908596725903662427863495950322028952321765672426264871332528126061531182850437814292248108377742851185245063402171333873460661308171195503671815879576789427716138063752216498204392879589989299896742110883223540552886511553774542379984272828901689967057591522998865627397016078405293592592344923131266561234048334232112976827539338489052901020242184925856715389950745377399218031620344489500107969513079905295768206664022632332650366059237247789590262079115263817948541861856583647499997425364614088912175631091167031186388446397993694014225345055036245221312927684511435832553720071466384327089832410761173196673034108679338148717217210146878396611083368025096712181284811615416578573538378899418498498302324213600466717501996122999023235859125104419006738821402669822966535695763574535818127663250050187462550476909102633348839088726225622823021430452763990516173126211980354281686092184468203532429251889524842177074450648363170160122185982296023285556050518653304244710463413889770543629590287698785786474702598604433686962116132762520764714434336139437493169250002357020126993731524334482728781941433139973945917447565605958373812153726950948944206474791440239649728279211153336995150683479996649545674063130043071247487755940166860196249309732024375927024640839385103387063760422837733375600547597014695386824003861742913597884166172854728145063700973772271738031127597802257643703030264890700677976178037315949412992636389700629565720423652051189311611615755483510785474803632793115433914651802344646977896291808815885570109604976529463079902655342981714778320574648849894594623948052059097986202195700766660173811119398967447730603760497833914046380214940315101302692522246205027525728092904842388283409926965776198829111326320240175113324787159027376087413352477257550835117819988837470743890430006272218863854539996884847125895889234802871579688742379897199511946571583343558870415568944409128983692924750219466140805576602376198227749953957064759057872450908861494498731622016630326204885084616341650795576113689133396133656027043559477596220752839476918694320866265010636599819023697674123003896846441339037409788735311301489257337783607738007790123055631174419225357178908583559877884350242996463441540635334134835515754091278744256511345579494580906278352672091258912056241964061715121405617274809721288973909871165389351074234181692329438302231163614366514913185765312423992136894884648797559446362535161209794918670800956629736301624747827523714477457286086635815855612166444952467852756305976904126246358547346631891308782225045064835682892340957874700991509490468530407994054907035390041125346099521319339640389258646273456476960679042855909962251962094079222901692421956449116564463481222011956887268625701140938965936152645977079222367414000788278273800780620029676550974476723818832126479324856016011285849984867926198354071728868181917240797332572945412479069060466323509229593862551629548199203682877501813004532565926767147856736371159912791060598548567076315251600029881304405463629159641839776633162916166880763245762399894133369847669655176810575900188488046777710023705971908780079380040551932647466272154788782299013002096480985328552105312185808884668889265013885855606415789657940715437885573008281809919664569246460623909545773423186915230587915081433949534186226639581164480159512765696519534060265596929604895605750915407053288244097200571750969405404982153749827760409864134899103161142915137202668121821607537940566388780930033940603342940221761853643521884316244766262430144267096605024389588604000564370949056859803138727309014201699760846439419257840109160016642282050167849044055887225529338721290529937232479256725691640954094787624614188269698089567941452242168999256578585855610600734029951857034025431617630208165049100148046876793180228419348226364462969947102186428313981132791648904126251811450390373657130631744532125598643144499383298984467613049713153253470539162855137145632371998529455711302185577452640461426243586098566931063120613416582034500715048286690313166391246900976003400417228533251553322030825195815584407743475859436475975139521643398912040304071766522580002267159437879419276585669154780813497834746382072536801614110193769400596266259493838271713435565502527253965362059116633749430025152025561049498865687948695229998379133675835275848611114651938264745759097364255593998343770944316945062328535773786486390227973767131271403706167458925480692369196279040219068285460113604349467563150707111484999253187443978591979137623218090934803708546122728169325756857263998780184368242758487638950974940753837630657294557661323132657705783301894661912652439817836590737793885598985967065697452349700651739323778068024061768028876626913805075611224898712998438522143300569744828141326197911846380127949611866253853901597851075566101552078735766682179746443122943429757195427996837632149876700445209855879526184737077545398761436569505616769867260286225812561952633315431666456137552590123861443774478033652237664514024423002226125883942602317936759372443633587089033882501210291655498882763348173505117982458733892196618795724670500010620660291974661282044579620576599257222295245813096453601256030475394332799391293887500573890023605984774061054657844829133050258766641173537163589991806693871956786495087603828743721499187829247304150699546427763868651521557809174578375515028472447632164727625649271134682747322437207938721824291144981606869158256455686375770077022895595118713264481674472724188630878461516969787827142920223701006640656146726926744878390774238337419717290799223821240073024467002021557701191662620892279965298816989346543427761516625353857234819595424714524153468739991635253858078968399300552026601989340458893796086235559800765665935982392113966108360853266714483469352182423481331416701563147421790053873347253360261047235981788449958635210983968433271591312827694774116765453913836648147713986883002121383593242068701363480957148310600428159341067081494564364576593465840916530534116883946912133640133393407060288551417043728127673930491318492091547082289439510979178757351755418359719334623133387175665366077666073441430695442300772636343880753731210033929067261734641906611761590216668870836628551377526539578104124294268076661399963872584507421798137205991537538452522054933670594533817870111707563118166644469127222235171078119278451524484102319434924766411795884441405912734049616075675498053044624835165763658309629624219889522572710652495107955000392944414396741427040288609219600820746866128355839307662186833525303142210151659134874445044188996795961472694783425094896577927478999414238098334373873672262153389025502885236598594606230490147088297861662259903853727852763153992809518458790556122563096745843576052262335790543374207838749751553155435909900839185251269874849957739110347937180433550367942943791024173451657056637390676594885461136699336224205543495358025041021275115071814457457047476997321063455668040474455511095904934301961673606371947290358504126054020906594407420637474697229380393044889787346632236487900265716205834772528700651312487799529813877704868736498342111012442627520533601188839878685210328307758858214807664584587730997410705410131195279042226881958050667725819179210144605419200243884608535494003256736326957633473300207418761793210882583244676417706499896009121056674527986019613783217419676592391787429389044616399829079617361927828280821993433089971882867206779739765910041880402309004283615418983315871631070425501118986398420444313009785440817484953200599125184309545158424858228384151282794875664676396328085142648459474114596449453377792544083243584186885450034176321455922997327958716294026048142392171507684274863514190914001081159722399204776844331652827491329777975228006191232308001165706431062228264058474299166399922691343557923812531720946883580716828489048052006673521542794149136259933211569338806096960912426954797386200582681567081962799520727027079058258219592773052672977533501062016731581634293235159339023113415231995417712273119341131321660352099898208929846989450181271318366631494965461098668488572118324086360685979783716191725619912696323212617098211792195885032527073377612969334686811126724335153790893934758743657951968506002317110896317229429287056757856526254113855563373430991363916201101060433398542876440092849875722506959127520016647146699401241448635730062529930114147691811575240516622075005405755133727981409911370259472280419308491998795347655054229953104531227842239681409897690208056950891433303209196536008699678072006381166241231006884210271521593731191861133091559537919479719228430723809831457931404049049203139225497094808905571227116955112850984822174446975084731280563532163390650190198937891637411097745761453354856463954474892435198810028003906444694927227114138826186833389441625868994247909850315835157935401941365245402802911960087645101177341453415380239440634832559711930301673552204708087664155965983413541230098213276858065203235488225781090247361306964964917923346846911579307176556721020808912266352208036241276184069922793896045297690359022486847612737876892039594101191080296284329405095690354776895471552750265077616484375862848679722552064368195612988452739328379420556180500262489167934742665218188524593902263604119423593619088316641923729863209758519579812185178593656173100503867066975878596131091813093068427655150460881928727541284799741730783330674533951599132960691675311944148786699635739433649596255881878511087928383317164893713424987499076864835552274774887843684965600744064576621705831038386264052707010186676376135039624688433494721526618112762619927880544913442284367604364851309253769229406309732077981752675142579610613355443613794985336872850054792724013132445475548911719436240229190939264326702970602091942372474031799105931029602972089974539130903729752507909788213219061063071805305120954802737119657614953528190635807254241889256071732037909907506125452331299059239350458396759416724500061326538017488164560644336306165204525618022620810825056483731515720336342758035565370627773503548459086195513283077412574304454824245871121520791013810610951003658658931146730244397917073662601803826382081118542251082786590729798429999993011944764857498585158375695074558395759036468852362426366342547059182231381034167310901053442833195876412537766492534542848720993946266199151143062318324321123985901075819043931726451418513081981291749808993323060828264296980524799537073957413351215846829540751851088113366198392893826353846636478748170617016627300700153651696853946481891078663693713413142653920235648935937744540108350746187321893445251188764691742325701888950974088901262868869154338976771455633636045654604048950459898170420279093429153565640450181872004525421215760548976771536012046980124073814533821632240664167932371154018390353749142058001153801332550094025762226954096314342731928411735229911999919576933376827560671836986392436902677429886524082995770762426529439962985626104664661988226015137365895083458724260279050944477349273429962021549704663838814970360057295481408215299753366470330548124734128502267319842114426080717026759762167839300076364824054811649712604628940026484433907306954224648636403160094443285221888961527652677865387985815592146643026298899363463640953480826394826935138208652149125492258473276947290063358162642881896857792160395449649632688772504104037278848792799514152573390875915568965138676245660027471188102113666501661340098252949951988976753349973078406729516396644639084072265309968922450219963459668866793942106709906143701092063052333357780223996417427129063819934422958093452518652575602410637582620924228814670370559255334015710380788633359444353197712866206853776400443735429310761700881993121537353765278867110263152710129994599032513593721685515814154866923037809354034714473194925414808097418407109312986407774509732306577354686464087348335849143350545726748249347428977459464037523648031968306030836305062136161056706735914874968819252497546846528455689484563451700971546845933383062608055983855986363598174012685813599832946108193893005908458798112632957112043067856610986220773740735421770441162712339200990586652708249803679086064311885514485861640035489752366731971806587664600652322317815642180306129282286845541600272316591225642181908457805740512339931048262105238343431294243339873146587006343649893199301153746556726600382140073940179881038853470589422052120157142850675870395993486796738356570184666285875752014850721657825107306815529198156090381198943176060440259928087359982756357242080020339524280310682963645292871812455401217852319894585450226004976368071532357866472675352184089959958353463832995246696478005255377646169508457550781212543065189278439618020401181441047811166830580226820670593417290704633569792857598019417950341596876457648338032468091056208682248060155561918310606127188311159126821059899451802675669471348268406442901510251729934713748714602255167759958073768008236401005769897446020019874491379186855588268160909632124878318457840097384095097457438861453096131103700027119714857964692590055128453868803433592409784828369965451423511834738077844753088332070415840730505454870076049647960731722553982424027665901159127837401263338000988904835817072441525700141542226041940223837106775410013684421532721731408848797575384976031570013979440859762374124909917209221406910002746123252443348849688641950467383167842649495073244412534221585733193330666119338430826340521604445928029303384831884683770164206458947481454510259944111671499711388431250784745518839132062774251109445348350549490872013378876252052423270460271255588652322223442554553673114922214895015185865668684285437644856857847413289979088156229663608425731392282539274137749643678251069987205421191920174228897732123835182906814475218021764250738593727376511638049289806629820741387373600389582879258388359086190441711439884860681354231178568141240362703749616870337749628532802787870151984410133741427188728598827687738910659088992519868429909441124515406980950049126097985592632518599247335869829076778688078550798658286067947326876330545169111947924375111348538326939228501192396354771616562165814566692250742491009110905469270034208525810985238769780802810878432590396835869003854576555404817766345999932903022804572703709373029731402450038383377187623756731858288450920807580458194483836247116963524075934966730143628275877916967392959507905910183890197436045712151524050991169024927211080163294671297702937420197448879699550953389398214790707157679619566764101637112741506001882553214380807819300057859678839178838068885148034936189699034957384019881647248030222043455528162568235505986328463579690399909673969038352054107873149510686433090114672434985047077878098643734121220238273931213237087219570739666581753303300929201863716577891781579905099182310205284933868732654329624773775055171469692477110971919008523670178884740892283373726004196559586465028085368145507667572354757558507624352893119992182785951484205001940934441585038545105627968571968429053201771444762546356252410487413372632122636394059724474464327080566405780929142479003743110340732915834359862022623106636922016264429088388625175739221779401998280263527835657318267371771476543262976682715431907404908990409319319848647471716994751170097199871005847110917168740491326392175170831770712184517734485996768859988888455146623734808678465848537790657724763858193191049551590796183898404303504608302089954096097947134736421330308598237850848060227498931527332531540914150545025927005145706424375161158682121809201217130984173241198160831257215462565688056840747592877447494891687160049698052273110575106002810174132163872306414049425641330403569433790420626450869132377830055338309765254543141245568519747777129022376917493009429724271230874215319959459721058098753863190409603993526601883083608791415769757275431781246395547006164966752881536013903925332336913879352264014256326344985814611274311149273616721980460785414705088561368601346788157580606872083170258706555669786891995855459874760888574550426541911675259484475125672678887338223864827024359531785461558853685859453238609111621195446910832333575305719624362704024833227506523365353841465242832514420884513622461196107614482311379707238472290731808761054410323143422051357241704126413757174187396764201088608170826458766653385925206585646666742763890402026964971766392137463981428012280626942736567982213801971101748057805295878676048472847542445948090816318817436572340508088342856918603166028058416238092596175863419750628910214356161687711784857234848353337641580478786825143887497005685749188924072768286900784515577670414326755650600765769670863275157175706388425036584723475790891855506295677116748066899741345265113575846070132715032112572395160247902336517146455640072487710143098546217355963505935837170671140628305568851911030479460223446736944314698720415955270020221417380294311894071337862186872447987953572186567521534994412305811476110839309903253004593297175054442714215708854630124386728095369178594049235042683540479885088685421875937797908658297298942146390461394758633073643402987043573244744038886181546382383611172449171376098557959012175734550980444584087253710772638369887040864195598890646970947073373629899102404256352604665004209315801371696658309008080552933099701273481260988076676502177878462029555603019488153589445278727017401155850296266303911421986902712964120794212414925683920622607804027302794671632558152256061014249794158216658788180838122092875832141437134011112208646306350394138964249744207798132543984510881967378365732472279352986475297609679851567769966833643655576263045486333870138308856521577287711718499582042669095020133492912955438611949095256470604876930310125297805342918487913507515682066499262941507826485130148093944065749543778013657051253521530410419409940632850722132513923167285651783116674219288725656525040903264197392423826231136471424814626587420049531360789001992481967164380306849232164174238674210686411629483524152832971668172982430554061357736497936467399924232577354272414627026869851691307363045546426109901610507007763576052882202910760035174833072522329000796743632050409595688184805835802657930446677916503066524097007981498594204492098260778996754727605207784330913651987436556856433333586263449438547738873056358761122178823029851239778714904938478301085621793737943091090474101229568403438559403145687276823410264530459469075584923280382250005460811256429537658237358501186716941503342987175926849349153721283076538821573832053781413682402546648884859088626725098023482576701907724546985617848701637265419818696582340067034525244170286967162668646295153725905329138104975518465587005781367924424664271071849176320508466875355321110798138104345224463499685255644835027373989710275957924613908467141465943324951905210968001639893138115713214881710066325289833079365742923824405928486144026523922323934236767286831333158466902588578038703980345423832443115453418488253137436820119951389068496678209029232265463627601561528556786461000849868483584455177024078433911943966070986404179812615010032938260264302862903635079431774638951152429269322274195656439231226070687663886352045586406934964483670720752203996109968316036338945571039000617736014684781907472671159201982612907009619677868723468399968911708245300991668722959970709111764773638231155221464790898306590614599061938252313544656353631558296718167334675451491886660403302695186713460841741153421947296966753459578420102570236722869469290396761914438007352025306308782331815620960600476780768128214522295669608661288006939482832879062567764258290015313410263552168816458865780121423397225106555850610839694085951868797470772630891654424650884024140682706429681885896307106975096425449430131663337098094528603963464394215516792329651700885952002202384784920068501375211490984511537085895535776995043837057184265677253253209152353356667172337381259317449939548652592642731483162273977080496485044427090233862289493199696222071775860739537405933280775284337960501473821438248465359674648186373231034129238350735433813576090147033363575135767970143861902124108224293478791251548260144022801994682468669719056666254353935616883799959061732609984305671259287563012649268025478994333536855127617693954665090267572935524223654652092047444325864081831044831483958128859331003477110886929697172720858516656567618757847245656673762220951797304145554312299445419639271740203037216877622430013148513987152682821234895250700028851579332928739455536732642438723063381678234597671248419012626005578636262479788025580309093225080520262601537577278842941718855630622080477668534598932646595784722216959651369283868560381249579481350456441664528452794859282867539826989607007284852758050163050113249390693191284567176683760501326520075485684201216668499959588258082910639602531014183202007320663393421447608761972229372154932862576370872834400722059526227678258857542222585972755269904389317210024151553968506493880669272639412495816287128508636623494283083975577207070849897909921187062789943031927866683818131840703405928646544490270606470277846205500439234188852671890774530720618678791790247246818269989324318746942046804449451798254896050758348473419383639327208050526073822197434667703334225652123873083403855837404699122094381201927567035420919439785805901814741141156052120788638878694000291960777321582091353567840891846393958169942694159810406184548824072255337984546685350244255355630527396298447790890032679485964229934551524003137924437538704689469898204142027065624862787246128454099884573752179138654203552521398491486972329539791683864595122372187559498486328154580942342212741501295023186230714745969812352850828122681554033451015682112770605382572805122312056814472816042051277591398618387729638848489761902637365445502899779160738714542154735057617513533029173635984248153930097680453651513650624963932912215851127300640515583876897972001705745239851580390337709918561552464946521917356936893865799700870572332341927236087304586610606859324721270237706871584980819381534869646739886522193577543149997046324415240181140274196687192717624739672949843440262773563495990210756735981882735070450628668944533178509507938670090367675901302513383727403246861518297824381437721603548548856669046904834612755634018122838098346715334966123936980430308537644464145226449138707258964478920427632966479973184656474674027510782982393314815676705015170644333392119170601908051899052881603672134766914241897715843122990598580188065351389470000311808305759949115732413190171499316728507354293604072073513300540649248749468133092493949298211743538041338905297954310691976668402077428860518738016259386140018495088334426662425078133310007469309685531027725344524833031564482580628445047903466948799246621690346318472131997661748657490531013295416765162257767817927357790041558330130119711771773304044726848019942202158689474657683823178400108531388433637853567579157236329842793048999263582886776707666899012688665141137531851216065509405487415161077863315063816419687898384913013998786834558547019266442859872850143619879649991538158520677663629950272568655130037474624307351534130806511303530574895373998526695163783507468078337351979839568283073493930467706919354697142472373471371935468221685696454204171189883005697902368488990955625062901699149316459371506942202776433647435341024753033842223805868791462958004160649024463795896107810887707005988436289151483897205296821233044553182397895027695024091628614954947832088540984093022416904826635126395365557967239959612806358805701236246261483955525753850524183408055744371768374640467715959601023856019493653567199359141445028825683586514809651823020710514387324171660795772479764691445288025204148128470824576339131253584414063124176790908047621058437810934953673312851183056732409031848048725870099689386320053474513184817719696982017824520623748878187964913972890380339521943039079265647611977972412223085644299569899465925509597020187818744746527790418747218641917942948072671901106822737608389096369603759894562491695051161866362035866448648118533707599501429852306252935261567977391525456805466958280037386272334566626505759849959800020802465665767258753938505806016615746176236986212845925526023321192009133450169246760875361686756388394656900061087305426687364729404222369563085574276440793062617490226031239935436811043267359297756190101439743461449570323403560993279618033663467716883751751672976753409137311801938445276076000080590658155946072759336969439186995093811723987927275808596210949322894897048431881616364816561759289638672462832009587676308275278333959423452876251442005518224870205749855390584474719009023365021421674319823007104339930872431811102097258425462376990230945285303790923829293228791664320403150039136477933909602172563722028868103425886496095682569072332693190710501970509511927134425464745114066338073572498155955448762009314760908964638077216256278434293820214670575191927599068913635421307449906902485991845147010337345554308953181750824136389025455820928618797916240449630480317232596396639951445267790168339550887234107342481597706649769601500668712218009524044363420697337006393954931944875705079049808027613770288060198711168958321581256457714001473985918130388197429544121373999256488606901708702264341538405100971096318352413407257104269147871707712864027895322995952088275560415066578313241915390685654963143856270797413916988554095998909434298195400079180661635180431478612892296080774430586455582032684304170301493987949350677591831617082381015255135593001694332668948477934929229525964010589847158029183619945384228394459059382190331392545130756802439827360576353551026967105322341468268843241805695767715851626097284880300790000506688070334707371019499492772648741548164405923517647292427758794789209945447683573013185553708132465711589833752223302655529509194739310185886924731126161448669720631643116603890375181626443232001708687715161619382872141450192216394723757946250806860312747927356785012113877135123556331416698556380008850521183033238487569654025336919846692292958265479991506605247345859733280017769727161846619134276248272859631672107425176557790041634320658180987354717997814376194274186254851029967487546760875279447615342264552877612391095130831587439085390689519362364533751324225437159809610997357029825321240104606804392723902890941252345478777587011609181628983506774660365509139256142988395612643903114737381208960625633882750543862614568492446447048794303475147867496255011970272489540271889706795717266031752921142135098957507683280212069899443600780800891281774331236683411754857953437220089434300938455681392911155204201020115249588418311076344469147289013564727800837144291373681395829988591027687786423712777861304797962312878028149042283227846437448540785261094636456120331387317606582609041284502387198187271588464004848756423727952995155406717762242841364128997796016218180249765079961907783965326795636315156336390994754047891540851257477970419312702781132606321774342612730046753063835796409853119777682322805727154563505836591002607412537692308847855286012621224918526949938268453875881681967049665194877473162189637974877996146904200489806808080302133599580686582192072624294720087887641945100806590434013355608832796396142605624655952539252344790060555205677424121180277388639549716593982311448450371221128020124631586042434885339268490004784515706268361016478971334873336319052355970421026875865243956221959954162392473887792632454395880979051771989147575778597247039304120962057024590120556181505074910666306109745310931326546800317587195760328059864763873991329085305696345726689732460799287502329229400407982706398459954125943580699006528042656026514196026546229614783587985255356724233138494724309839847643388806411549263201215573589300756689129639832342908339627776746557919084013018644309571121743689971296613344236382325281555447333456173824882118698146931050285066157455388043733046518980232477020763543811614740346800207953225527264950265360165890960306773029165383033296645131469009528410735136699325727413581201333105090033352492402415676059563605443619312382235610245231338513601692318086345692876034896643340183322549927777335601250501867886819068202458585795613854120238065187516976287090827811105847472415750285413121327594430665011168587682909495573689352390134702377446972458860289731997103969753299987400156327556868824006178832587209375209178893322154313108249875351500062712082716481361969302534464404246988481596111610996239688939794153400324281905674945351058126738303789277318218895260026263472110410947194296523194638346110546439016282374607857135727111043771996461793640987397162836129814066103450865461749945698626408766171615376712954248038466644221438789618497195355464885080413682837981073131408462489517045438274024271976767853914807092224822739808415376759105268287265041532636658588438343077255513737941388133838875865853030269542866540005084104132264393505081377776465608219949200543189032385690092738245999422176815921767301251423925244035979376024724510415211036763904013307582384181439398286003266693184436814604534984524690506335438744310071292033782425865461574930708346020839695009472319045889403126920130452332153505355249418690700639686522083748317256042076398071479383894310379116835866206682060288729140513703282864320510785854994522662734958646499167274692773651046143800316623856951683368968993708626180684779465760965083857961618048360629455138755434262508692622781711401470297109538051273025716928880942316087754644103597234879374653138622420962895338759821683895020157226126928247679534142739171132515313495164969415373070104021204534111970581898985287912927471853765498995941598021547840956921980063908803417401587583665925364818671508003545300157154014679991225460202350466781789661814887926606851084105675272586637107759189810082813169254393805635969433154962437613429458936109511832099083683977896527159821375602824410127048584961053570638868302030411977154012984628103870134366751087585682574605021022857371981831216460548698572167299624097034582603566751988379068211839652208996377789747644164430447345354330471293393831753675094664859046565508418684857917019489063990242422622076792753081484099561793730486578840143268814182502805991783931482985506379108683053962047740267615297421734680237480855664069548405269166721407222366195871922235562423908026116374341099050830088151978923181282236713904070858771285892709191881042903641447704265628048596179842711852791676608543317867517246154158908486544639430191171382471029589502722548909282244373021979431069509212301424990735025318750127904687809397840176481644032177021584118588621557906886902626539239301019247062136027086169177135879233671571876024374666897107820196246218195657595375427981599815830699786163369972138856218085821075232315301924804841888260888546016225598950864086908832309143793429230522020465051351285241067257855398248692109364710241127403304103563967932979031148045188495986035512194395062626358257558865335997981795880884619285984791089300924133608884799241863632395792733041101271778294052341710017409899425454894243618374835210197374706835776168792692493130219676362521892769315646991372695975905893703618538714455393499170536822495123669500205414392562558585086238407289038973746578934251305768604999257002277254301382698349750586580713823362990098572766920877952564561299644202214420979741166995846518003248484107548488744686371845583525349167380324487935849881824647523681022497532057889602314862202738898499678677090586673840548732636860412184828199718406962934792807141159830053094712312320446039243742859233628744943925858990438278309930467956576419164586767106791030716739865483692483718501110880595360698759006998679461922376438278468759167510559628555584073635321400639430445480943806844887871810055629459854096919249856588003865788743819248139479921446163717667693836791174855002722856141071001340486361336023901785847728202478085670335485829415326454317345619962653353877484210463019250221838351857274190954754008226778476598705494579985653062365778116264565471833170154102693837652095574540348928608460055548758538526784673467842017817190503700029661916333632429796370949284538515746240489631304450051330963743054702940196926664417571397587419555931181762392050847931253857485686588824296614472506191798008278575516948045218368609591520759442285755106206744009219438930239312474948196736361441870054339510297823003189306181329233032345174789782597120914770980130767338086966111985113117806463839359883060944920437345647343827394897734649244668516492278121141724413889003145058004394283392300109635573993271436643738836277227766948650375515348006376254512250110563474482637998357193089943813605938120360553232852708972031555565213431519349728016471153068536789327111348885711095558174609234655522846999412603855891412557871146674040528736176021862518594391041880884280533107414352855234130307238728592677733673868807896565458117153615680203414857079479109496703573319763133824340414715117941269399254551382451543836968376670423683328006742345533539485972646844096643588538396803461715849533724781952373025752046233423926254517772010856200557859904950032909681097216816814835321032573082375068044214099462172087661656372319035676299551154250013665760923540163576990768360096720019819613423186196061998632569669797274816047412140697882818555874025014362413392615595019555451205391137853637421067614537134382961022909306711054575664735380510035101605625211332947184701226471556611759056096056192308388417426313158950758872390735717020798880993712591541031210875059737307668785249075767618594123793694615055528291750981943930027592307872365610805536018721187176689764925566136096286862783711135434701728040090529774019717626856060310608742786667273710854759952007046690741553490080675580614346733051329555830497880080280935917503834422568447348617205878766785699602000626312529994387530050298190444599294878679777915239588180379272661482896378705935654935088475770325462684520614871196607513266512772808473422231909661068774853267839283262284762026939469824036940203950096881154381718159602320090982062946203637920254039371899123823254012891521492363219004356438491137394356020946139043281118809892569589552161596576131978203554680144161636260542960578875847281458662771651509303527485186665897237936262163663262260503742814930568628600707327991097099375114244669281370404517509521973558196442325254075497511296682760205762313361624521546426071898911002177457283099233317298154799351315999789831009822781810036643824612064978327505794935729795463703778778190054026223342324418651091596265586884325364228893842784941917095488465473865156266333176668125929631736199488331177415419299179357696254711066942631952897000841395252236394555648778045962876268924826267020381320191778178014459855259715751790973024093393127753881730746004735518013810373971441893149886454475698533826952998302122022077220257686664330978600484411179866988091217744186363937772266871333620747507605195067320101653959643075467632264136909654210502582171294090568618682418256279552081459852167841389201349491718788413593031188937410077334379804473380248471791228472761984389496867273809426131788829346951729288305297735069169789894128810639494585272890255156174560816704952480217531256210701537456395227575737761248838669579824262039094164056842873028470010206957734501811490218114272509594764372235075270444577472615745252459033583111307888920952744056736239910827811151176612971392882354502119125500707513280885399250383651315501091788560043531860053512932589776301994938463954274827493694212835756707838021445127646006229944102315549778372823916583097003064777980745304972018242991473821607938995071462802026307575588967123549085582962031549909020715277696640485349230404716051253236285028820319599491260586890462891445664682213870628081412047162409114695447014568993505545125068092458006425673269524379811745821080339121702807273851585341640781170538012908600208374052784039719642953084741176001838380090230443532095570221333837092708238576637014104008385465373879143815611213892816008479149455723425385549207930633090755012599190929745694319986381126859961504575721955646999209847589850857916973909616228768525571746428628751591754658987938280733536895382044654749680606382125341212640002595082503266092614559813954743348152367318653207156481958310466755317532506901963851304876882192305758266198250574946750759481524717345098636996587488774984936809401724639867147157320587257132029101802381031165055590043462263231799948764409964916674644370010980427168564007310997565570880933453295942859491048818846403138321382227913521632871060735931773610525206869982496200137505986334941957186590985882154548333543319702478875881577882468311097328755293625537264147037508699523596948945300697824342130465106550494737511615257064708217603607035855188805806228214023826435145550293679715888509275489133353161673614660531159811348685414607564918489211978978635656278475855994224925284167076227017034454974753485915220857121547830052576097264033983239366832797663359954836224226734669825337523296715420349676173929650245892371144782429989389862864054044470124416191094316066963992182291833643729072674919621342297489342358576885583466869210971808607511100577496199055164756008424863371562809137186735360713077785426124891078000113070515776237296036696980569014842490339233511045042131447544645566156088611202679883424320295896611701161769211900071314042874689997997801280937606443563743699111782513678634767881909984546320035096263795732515138264462133867374648313063401102740277454453839349670406923590334051721806791411109926417595691804936051282519492110269825970459332031854555674659541593229483625166666642721565817107634556728926508973596298075499200514315646332320002548532945997643674230215528548361466706230908970823657298045847796146762279059792290178951475184664513002200234722119166232337920399128016170958214719216351483644071242103076036556551059344369197276636645451874306958480733521810496842015223848056536584552619297509170820942612198098935956280532452234531243938746114790411177516027580017189307473463494901073581327150155539597537815019075974134737166301519124245314477524679127120162828552730875426427435111216918346260178107216260602884812279537309346034698538024120717633364055524838355252687732017906915429043142987506273449099523207096602276679829855869112425977597242506385329035493831908469318519910101349400165319846878712259361341628552312503735146371056693603004034073492482105158099625697289064229564124246518353988016313079534773085658030186905924411279893893196759329175625964492185066458765415311476901714704670860859407261755702652005444478533881751559627780834282663325903452223105213568015166123079854095076113170941380717163069747876612574813491627880954996308787708230943565041854616509122713924676741658042455475080692915928839105579207626637119094635384806208377668602521086347078316022559402457125898212948920991361889243710485730158714367563213531445452458506953910890492305355513814500039352819251683675701831216030528236602050060191998507602918904284806749469477636852640515956334221515648140734315086316314619089792120324977273312936992690700309570430402899136550628931054169786889263173457744969620304969467044707315574540999755494525513135706092821849060056055295216338417872014681290903986937014788902444071954530518626508488027337156890810793940609599448078721010113954433684191548486098932773298756277037005537482641069963816346611600174534405981789149716083241042437464520389095020512507935497214955398677726444969932568376691380805011448744693015456438876444864762230578248678563239762009890368133296644084250297615872452399677906561905526708336316382324346065440383941956716685919052362188216135428760875310942463847695563139886544164727253765650395760743332599167792374492618385386837597393204040481251015831955074094436919917546113052190066510422914470104664523811403315522336247152752174966861911627723306001085309344995132052131350323857442062875543428715032434316656806623049496707700308113489011273675576091323765759120892580353260915695882288864270273486753135789245574479455411470419123727280840303624769173141423993768931163443169448267331733552250104090639595192781088267198932755525347774500379846335541529876392386952817630383295314999211639084622220011662123038925342365723774101467819835245272401244009379008410822094785151576961958614114904883973111758062426482186004371232508694790731224173892988167525970954388472946054353142582271242591316093317460508064483178038220695322580753926057582821481974258181481335913937575016999274720307612567796450220235995166224305626386879025472003630994776803760188113384746164573996175017053829610742454200803895958574953620066966591325221583481224735443798675327348693816787804883209270272245153104917526065676356650533424411533550941536233130719431602635689953776956731776551013916583087148552611860586149765736704083309624185558020711616684414072058727193221178376083216536445541810796679089457626674173199143667788967866158263728965431056650799372724667621992981607212029896825161662061883662967110983994324497767190506629266152762966169056278534142498776255198575818031684793492989951700889272378419925928920251769340115532778736335311873413008617715717542267893966262908131065265249686815257551607447119224972775695645097067558679793500612298769016040394803943384075547099216350853838481819979376603930925037035330907364790076962097287633462165609218139768001376313776161938973149789639912645163602493685538202723792466020934298377173185657695402066044109609500637543238697050079579987665119265581140159446494151897888438145621470403860744346212737156288920768724114077156206900564636631728569372582430571605630256019328110052495682475766436521791802987236965891745998664757342549866182547800786055193891172564675531716835157175483100103244834256237190533235733061566682415026360447095923883614571167241525965541838861793009603714045038404961368722604250098815681725965830922929477032287978441131443889273489117518178662791334397040832235426478131178133509363262583440949276393982278382430710030563846953136060505180396146722465459567636851486089856608461415122965845752128575739085724714497219204533146976329204307193522976219839917000971318516178282968403053964799154841351014820661674892428798798010154987136318895771350116866749552423346188767475905898974803731232275744827589833024893965093705984042933589638683518399313758311820933988080495188714711466242034569681662901210996448640975518539685821588110936031402201167568752785781549352556655855177895114736281421488203969731018724825541231212128023052109426337214335979124053156896231371230022370059232477129950765060875605313285283007525022950780471500554850088268151908327008477497229611576355299403145494741778463074865032022196395797976745344130768249830525103573130096053667123931661512731731160512689089022626874460853050000152944095156878426688322733345631578213144193220625145174902550724495735045969856780663012964689390800023526041784682665796966510886137092610402556354832684126687258580288430243400480663031815944313618628873718104674743453445805780121151478729700449194709401482209105633669262252182372767229108133847221202346044780550349046302699473399143894917687458137732453662098710901237079210449769516229785375470077501766475388153115877172655232147680812444174512831089938917061379923996015700025224542380773183702825944028970755075367885547380684886463522890614864711431469725797557489326901530804762176328476916447939170133370316079858360791353518846831648005799462738119118522321469032885668345494612789897355203115603459422277456623020520379827463990122419950238619367882565162785803029892366292733940083190428118102627496447911778941527302986093027780040069833035172471006032292144500108987617533430086720410085849633406866016435579832397541481455480935395444529826895601156496508980169490964134495146484501188158823296110443556455044646230100292434260795314947399061604632145352370126825434788720466209974643151768335728705310488976314415139575283476698392918546636264872253026337662473924115740109847565832969976965358389362596648307530986499060400191892213583075380607236357638015110806018350777412901256463441345880403471857687931608038202263936984405091596277073359089812202028899361150162900308720384142415814378891856038978308679662409952413287579247757351969559307031822546717806998931241654024599488184560201526623591313721664649788336641698533421871538588960719483613697487168651486353992090043616353739353834101913524961190093188848823695370673868179174209464811781200664562596342036567538587737113870371692386933777865445277790381532184722878692820033077657079249028635524131226194788350413890382939900805060731234239761931679511554223603974935063051819795507175658544355019430353607578024645732117389752806638794242910544920716945854540913296578830674583003887869280047834929563327427132513882499054029069875360520875445753984545592599872486401479410203357150589800223844620821155340285000511667668100213291296974500628004563159497507007301763778229262029669921506245525044955070780339509886055833168384183062284185264767906723918091872270959674413344316767766897065013521768386787045177295302021425269442916108185037733596633536866482403023677158335066683797938220966543550535448058090783875526077649063729317188249294522687636295776554103919057913559642108673485228112192745710800284061514507762636103375155382180022271759014738407028269589901387941012151786888301998473347281969090726173455225925441051751674477613897199316747989667718900037991399975234305244760838317164219057856187049945564076723352218324232692422962151417732166484176207547796440520479106481642967498097741728227136243834759994152749871950024459013748790127576984449110397179449256757573279159912800048544178564287676797029667512666244563053505443841223996360008571636027209741898840262000873904253073892734531131297635755909017140204891974518367450478305350786499434631960958828266958133430910876409782995840615991847739760460932925895035197358811696070431326192149549079950656449156512540304203803447112445897685071243298313812301311329325678945263055550163742319244700868400782534590890468736198579755290409004783507070477748619497211553200137565628256112625818603682327536931735126663168891214412500049101905180162940627336481574272726666903540790508576036389858183298654996400890956325376425897576511662022269556095054589013777606014254884174187882446929348823158093415741689188865227361586286597180735988875974005269312090833080302784424289015181205434795376135739286297978199914496594966783806712732574243571291474358728177206663189303162261931131969306636732324164103137323772822730733784430663038610917543251285716474182234801427738473679680045152434636966223624681500782437479970098538468642318896363488269965951742016564086870679013675291809990092391821432798123916166454732811628504776019997309023938342750361694771096794001296364999610867553127073254188504436998619795198351540375436091687038772562728474912201602089857156202279620402858083481694377579192717529355204092599253791193980371566481236899201525924389172085138917038573155403924005752598160666433495718253546018763220454927937284167452426675025928823808709588696564294009223978358238749797467115831208922149840509518086291996746830012471609829170699157560989072651235447597590174129399101749120660008712030138182178897338663532658766643123088709349459998417424053331274304918559027870356974099488206384528225350019330071414914454733009885812639832791501793345219518752651655344329502129506231460122295168964833934380357454758589160163192709744023339315896508482700074135584098545735844470202790760913357280860106412412941521955942204290120126488531948664454565804139753361712505146175898011659989106666613403997166280137712638236350926618366616045168636929079970801497731218098565440871823695305269003771904216127139816235755432227043616831580027246599247802521314534965775810560833894769228016724304957664791305865763673072349010459916297472485612848466280374184137500192208472375987802967694169081917082458926349406316904243519825679081050369395985193508953472980873303863587724504068137276732872577784042199138508945906182222789782489156008229213900901706128366798422329623191873618451244385834038673193132304977868990038255332932291094868348875377725059793198205788283408321061838160134448650287024267726716036578459403114126156578970351120079054191717542494826860200116883988941281876471537736852759233545342765829602084832125353810588478039217207838768370125086475067286623287884722181077766439963308032603092820132028828800259920235700785413866463465227869469133719490710714390128968354926289047608359983739115313552949604268295808846233201541464548116546306740194661920765982895932867500761611715597091028334013927154172168275715584126048797786369149124632593798795160822949835229382243758355426111179751745071025301965163248413027375545110901277878794119595249628933125386827612799301360094628994443522483625918443966378030798849083748861193243844298306636395482467234962356911640431828172413028042960381347418341518357582737160052553789712445699847063209460325296849648704397127973020247911992236472470818383702911375506447453584051072242999185566246357317670190590889969783764674559066887635684108860021538315505987002893017818777866391009042391047945498227026642666868605231526170006062729544649459220938671008620768162694276984260344127727984257709679529693105654849851636974808727646902097709746290776018047552388757000421620576652372246310461758392445201268108358068286243410817307248656088048777555849912410800082400596469204650702224085451517412443791670375923901176197960367266484516629706853289899360362515499559083303636826756402768369321715796028991390287967420902353456075065250168319632312147020282259847663433176743968783977336140482670481923834096479957079595629730455773933850041607557797253440882183364343867851657493717404966364924012661989361618690674173766475119570975597077797454374575129614769604662723471548072354964707959213555588407878944914071156642802739059532908292409651942892909255012039346341445544279176341110348362780556217155920526833851029924341690826521759331141427630207564460383976953977265096756478795569216315988655770100359402009160162243900129647440581257820860853789943376837161321016560850914552131812847336758907008617671768895579794756784907303051745300522850367472751746187242477883572298616540980559403852286260518591508397730274437283526916853382465994944857819998417511635899932061826555529812735008810371109803887273098506802667131356775437304162963507734018342671678367454880607541476785796065099028054119102104231785244549866729446774738188413837120506720659896632911945736099160612769706924555659800240405288732225716687467103261789202385662679321118922632540242835323182937686510914589801724157984093918746313098798453370345345449192223814835774867641539799891105721580448315770904968238317183057675311402332508409606391479783762696767703580765272938130923595561507213423912250682873268950514126989983485536177979964049485448255958034118311343343393578072580863505031824075798387954508103793681139665606496693835540480873545057146386206460545995873895331832343626534479465116194146032564329104284549796896958924255170617081563329397588550659653332347987568064278595497157369294056252614246862165682378695133660961627939187634328327194212523793183725945519310636903530017097509759967636248559042033350572392838752980754252725468423764083322778167551536408233060678189510909309098881712873004208667236854081397700881098855245043462556983051098737535880101503451841653652466280099530810098428954801189271835316621183001851662946041997853324842889137215114124390573961046893278211895808092686013504603337373966600521815672739348999208696175390792608143065272598561152343088540058689511430074441415587770519404905371979733017883887836076731774054044873245648538376923601268217106331984344993828870951821383892436772384166394548558828357677053111905062992771705028253792951982769036538917817541929546544858775917291350617327049806480147296438069766691070453770497600014643499879254401088763162462659231730919951442450296309459291176486806060876006942488585670738269146611939978462568865019120991298074075828837958893106948126335367024337797281133749830170093385968761695613564988603766548727586780333081039292523982927692799037629925209723362076930218298071302721675811692236014112720220295312690897117154730907612929079981350691613280179452917415956340337310550018470316922337189591592850407123489548494683471654599327182724650805785567505630603109696430875947885354289537004023949084722309871565790057739922312819896852834384826743132817206216959812731317387057403527168559513013855722461486648104581033755815133781553567102189123783374861912246477723998450312462193371446135253738514094025429568684886841952377386168797484106418454395289978800349823116088209894384524759866910252666184705702313043970868492376235139526226031923744159962026832226711063395886407323220842430334014568874126431118664878520463243058473469345268459391978313135992788115876578523056074836497784286982087515402836623756467908448440034509741536708334587032145122838593856114392387960068669601600303066857420052473691770008341097705181899859349437586186711943674213093454768617968129380503256685978026913082435884537158993245938575858891528538754693456568248513772991191428977542119088847630528816686063567106833602186936749991235531135930996595461393675626982542435551016488997610380446817499958528222768527896467521591624494596869560558183644092973666584304112015470260781496446573163723005071268272442711373282795651427860966685943657197495400736214950442987846813807632820561328572098861144215366587532315398695047737174253581855008558903427857801203793763999102460429400499639353548620175213883296090146511963141729475575474656036271482889605122922053553898688757368857778611517186632154222670548630722531245832032523972529917476313566690200545665607903876136644403262033423337348491381635281998319328551019362329095206218843072844390908347604165630825659792496825190174632178246115420643321043013419363784711158898345818169582406824514058061771207452525812327440270267473887504054770877986589585386957453338290618407570565296662818950195880010792936007612103329628134591571720471772861799962815510213292551548200627496519959477409037887780313453336133815336868218698768944504992847930147204608155909259876634664152145697118789039107690383850680870207639750539607929856275664908429232464922988639989926960981403196746223406494292367168076355446113898307240113145191707581932320973130340152179494768843852328896994890431437060052438183014748912991883251282280029067009368331983695520593472298432874505761521727795647207091092038959467380532065961921899257186660989636199155876064524599469193788391795399494405340000211913760695246751867320421736839616958054236862697130928840632233218926558998330708401929160882865531990419844863674994638402999332638864258571267421943841183824893807041912643140551969933378920557179458639452217427320823663407626611059349455739028390585157554083293889699169657720273692833661737339519425592991164537403271099671589044184353837862696646005131221739433763615523625557293986411138019654028990184190583276109531839461888748428816724482310463083315617843956110610837909497521074661733717108037460960433779994282308167971046234056603213613679861890188189893957996011494014515935495109011801168226428229075109429215437009709330957540377109184832312455991197009376815160124932384772073171167572538738283310055199517141305836970201036526555937736302451035069057445372413495217445025500037381858563427151010934376982100009472320048243590748999304753956275890036311438540315514396680163835952257963245068030252357849077522329410213570128816539309322831706550124633610466505609609166269372567202521150772924795757456735218795872567050987892419560728715693433506180457869268954394056668791698212205844008978662515260678975723540332568353701418018295033650863478039097398028908050972803686242854505820379866338729659729461786763136999394941485009981239973060724464735422719615055237772982931883707054204958267262676878278090646507828606622447417573150030182247114460125389836172064630070932823247001585803524967556400599591013372996528418635331377130537498718605939433522305738907645425015193834967958371445473225915724178413311425866678767296455130756544443741421760681482149608582723193397023673407420664223462577443557191113384929010136960111815951057623555943070793531566004154838884300829262782131432747328582539308212112263838005593260527798224982935644323565343795094928404711546278370633213229700199260410609972424920253625259417996829612068613290736821032670734460189317607657923973921667352803469090493803951501989522679040624003522013799905532859304458298678363051997947926782222516791397263681947292783203518551481260685846692034986753793760853080447057201473563524199741124129260548015207635022621764287679545649391117622035204540533186564234329644817220740879021923880265597841747359344897397197091966768217364690445542710591937040907929200602037393644886827579742376547412944398475397092784445867363842176376320785160360041426616333465086239176605067476120983469919172234022256585129002191661523910499889049215522799397001364422185506789051481423551541009247353775389566091259060057709479806683097036809297500615589123556722437733534024955782858321116129565951838485583827932733766524234374271306338517267451182798439125533337605455729622239530853603473140197669958729553667234403839728212745378894563787245351581992854660956713070395271844256473038705901628492547542051621176043798274583549852240586530519956748317950402846041301028192072301038959790901716883783845870480881773532280494388893672121125849318377128922845702562874811540896425993523761570549582553715783567231142064353241824033334040645220557223550667147108069627914420646121645461423827728238215180351492305745519438926257207997102994160152240872705672286378288304469121891681146978359548414300069230949190815403131658090468203557188165764805649566498809405092645839379090651674499826395876593453235072364814722904651226065118962997177281445315029584309528292158642924405292900890715912375408063831795369633062879256899585318039317399198666094154775790142852270454343521238800315766009187082976882060181785046620634369987145869750088045487306674428703319162700483389882431219014341552890715557189761793979465732242290885880550647533011764140083232073131376374164202298212338943131703443862132411272141422390039378445156072011272289043732211870541481987854982961337857304852901309687457088545193810561272930056856594643638089290988332540369616574637982383626625059065631871013468573394869528759620645273191101388364868499765504221966182687245483612286807317789503454601347172272308941516932416568991482538754398232011440446802627120413133932882167221301223132015740599764719486502080811819521627827067556997011039923486924389474663289944655215009572469839380427368786287119987193753427070269975865555987973352518824152687536100429208204261558670459795293748941466175899458532365504956418631294912952993063242732867811335935923445288150146717439107597921675018380168546382252709890282151045638702192223313624647876026772460047536882654117571289765637398567794337478554215275365299119429673302108327201781011522985695839334132381383027946030531870021667198101360826527115391162583798201829016945806606779059396522875738799331302163268481708710719847241625061841441719140699187798297638346762175920514850215737426769342083043283558687305150092522174359578078418098988993303173807530015809972591150918696685774359628114656711854398357013449478047481962064054978010809263132527331585421851789731353794996685505251901420692580182196237558690200207726342718957839046946432348993739275068540155189859236627979917183898368425859206924630955961606805993711102398231144832597697471650299286610633623184050079434098162165655744372691446243741194631982490942185794654481028215120961956333450851261742871204522847364071843137733777261642578980591687680778305416010070034594144169275124767508677140367194740355174374530759071201240713982497670043664059859024618145781458379821323317846688415965716371677231709418783314665815384803094432202709516086046475495461088702032492344275220874906388662672197056314987623123209703428296313056048085493639136023960214997988541306085959016313323371290434042736629737902585087333092968493175955557813989288970026603348939216468705851500761354220007525412742863963288404869205872004744612108357465065939935174373957030596719837358811559741273278824612147462269699446916728700480607580805726384838575846272320827346058087818477044283572551315816021014273063790358317317277491957104802310053359656042295108313828225584925350887237652848655998054749015845205488856925527822439531446896722077707225938866385917717151644698204988684917840869837837391702118858815731107113831829567982083316809555678350059768452584956741117734879655736360716240166076919017125302654340470660049990967378757333021898511374198762296931845097600347289075350139830708075869010105585512619639088350215592644919318390773727618778494833348059343144569877732934173790453962135235020194552432432615619817984060755696294574471868571808554602249593996987746978481424197524510564212937548386956045220114243758883954801036778216678292921215200216619150265105910931257227718077828693532436008510551594311049726418849032118928405300845619334363705556618036592161877487176338050037662399999390360998270313600006501035148400345791630503058769628673066920433338560953237055460160369016799511705466843334584846355822375381959119252320910149863482733419479665511055525144866478192101365914868684942090882015910241457038622617680931215848260338244964596867547598780628730314521744339431346820509741375471141164886997782496423668529442771214913394301351212959333036803583668313302267446129387524838156306395788211144659939149083469361734087395585318520139202842739881267178391162654709593202311721970865153508933882438226222439331930644364408083854911087345149992713521201568942342787224972291150047050429793264493074082352755978847700114533249010156384901742768027469738497390452522369513663431473831994986446794721670023180080260150396341405744828295672090969821491457924113427317237755895384681693381041442575276118120428058828042439122040837334668877140188245860308600027825532923470925566948997957522409445463954926793883687571267275412397818990140675486153709074209922297981042408236348356548857942696788475616425879659390105328826457335331724299063761856378669948685132830099282666792101467821176491480861161621113483098887748431545258150050376267054691197649082229565340447448608371777171273754147835243560861209172597519594856355076114604883295788000348810674031626238553019457472515647931148716561351958018537465302043755437795390042646734984815661488999641127479974637475756793578549703815072881388830262636520788907705147869860463880546003983368244567905477467072758563939454364148848686919590114115411130030829698775448592656265002146369435540958203725437088115681420474971210431357294779497969391828329549854595143524756383121663449853691272000738515822137085549299379194590605460297353681028381481397308693688844490806261842940389812873819473423904325244890094946171195147912061059945368312770190834218230090364613371288299914089281580147734038509601602199928724667194667090725273090000671767536357130119801881856303888419384655960817541909735796665194262823893765445567699237811380291173768387807309053266731253028932562579189340156154075874369674612516653166243049483714909748436186637309212759074062748624470769724212175522292819815584887280990621035744248232687944987743422677490670209845916438848835652410597168628199903460858581743132713432594174050215439096994042127838398592801371808557574305448639775737412313802462596888767074766989082776002058208995986260033259359722890130042244380069149228995000167705193338703765425622557532219972473105031596869878136229231349166763643465348878491086184021436765275313168889506992408430488678788806388384523429466058352748200329443317585128329385893084111966596509982051953363802506919952924788451749321686546675528621797005914994520156741487449941773281920499933836788609208508470760776906487617619162363901354930263996705604314665079100661953588173751640243642914330291989805570026302022353942421818702490440099743742702077017311806761953476229837111317622748384270646850293436365870851720835025476148441195716763086149246401789794654108666358102362034854269541775157318526574407148914032631682455811082362624981929260721100282014673870274207902022093666393456726003688831035553769870120980847576925604362813370706917706856933002010138429444385902778199347858048232479810860738825101050603405894840759335237071543990582179455195554981729648019337862910403915381119328980149162084035429328266592344064898402613042746272620743159948607118751193071965277182348130078758171657658304102011749031582153004616225203258467970162095820353636719338301252673448843713028163126927657730271610475543476786833208405382867661803785093789448095607654204890077205604166107447512518365347555574677492047392584721236709691129048989318604808969966381953627675888124425023838957179229071569989721805226829814609523386163035935899320652803580758678317907225622873564572032069703734113685317679359946194131552252030806693374235158523892511906929630171713809277140294204498813947459703330689913693250764431019050114370924106220835260773141759961116482224031066718004093092060779600932996137577050336631498487818120819982054711319249509974946514830919375018688738337106414172879558603618149263332712970716269351469721195613731592584114184273873875197349899130441115600783599044906844110282974022761260593872778289817258393142280135876444910114874224336506364678229210106930133317914397899682261092797850679474522344879140333744878119599516310806616425032317404597534875182118205978583537471860050100329323793389429299851508934935825965884550902903735085164972647736669564895482357173077859249039645568775235127098789448441424986257281884953119556339524907076416365367444175561178752930918416330341884740864066034582336241815462731794082604619279334102795779743267600089945272873974726929217210801686700085940633374423477050467399553871615666520713538308953673565729281643060217914720570023395017753111046578361932988929589810143707239637898804321493689822585611302797465442969189774275676315542349412140415150282568585531329333112899631740497216222021057138431754812770822613376308120611587349078114353785772287226859457659753663581509222630512768714292175968183148475099903873028397450904928329538408192933371380549782180154717986834868981341454574678721606890491096985841528207096400726208754934751970806706746659378141649321103936344553079712627343941729421729443861682171075369457908324542682201558366027422321260414425365680963541800210446970147351739254543187430276782121048730163102123535715736654906131061484522898308837747029451785190558574218977078382938288410971229846395627555265397751715209807492695744731588832792455214384324100674521191961909465645899544548795607616885995022879059333977317335779073767395791459180953689601627578639979625695238512545160756681026632827452476451345835327964155169735876985529982789918508333470176406991041329577116671450551472831674441897109944808975324203010206234616255920815258666623305481184403836181788247105760414000682979087382778781596646697532277642494671692287775338364789687796333944779371559333837627294028225903349948813775819414134455671973990275520132217587926825119255405230407476365533909052105297713571632055390536012901788397833156715782561590686474274360015970821589526584739730894117297752296420072460929275895930302400554857501469465177400723417705111909549734957768852603195362675020541118354189057589281589616783977940225643050801153777358355882701097045773924343595822180856408606602435815096908976830896841105786466981916661867316422577481737401472800890844872889757754397367335140547682318251571123349843355196265663698215540164912867738269886700560936390327252427415054335225782075749702937310856609554849357468313254692950126205586514274684158172507902627527250878297434229948738520963255031700756331153191864020145801078514517194928988997236730594407322115660618765197353171997968038974946934019506950819023118729187308081315062679998783137679573444811775063975430316620904245281807705809853751502874903486999585782736280789709054262527362120935024412231121185600902905595088658615094312390021487045446850138074444085190632480180714726211179644459672652535481700324999246166122658868678091974483483437906399945722365980504246999196577420016281136190725899370064557474256368094794294239411209443916254545028231769623109379421763037288977578414245008854294223355524284413974447781421226670784974518179036236020525880116975170802302970035807619638894548439988573625269781612226005723071572943390079486292630959567192749666546005240834457052965185255070183504659630223733971157032733162931128390936080523079982970397958148518971994521990635145880456294683351667765813834495210970492944674175110627948240735034340887794966667221809800362840422494433013025102656745675684317834896975300510722492592756017881869333269126245126441884602435225309744158453508374149366536012631146340346170640656720854094726139783915949914359972241824900119601228789201331041733032501501920929239098829925355024474862122004775474068711768747414206237261981402044531399775689260490335165913505273046034286222282532471010040923956905206520713064109135452347050686444560967793504670632505112383713972018134316345800303467858384179838936161888897258823674329735900932384305524607816419139220337249780507648836761316003360994516070822396789804496678766861479343176514694099594345485890192630254415423537784232369360378458629425216868155726698770026225128967586774016484538533261850302455490842959856880078658136333799776960185299519056240446220753118435917713772799326279463502794682698721320284965404696987407887567162834676211443880597016011586918938921671460547219373957670588160394861087420634482926542336712425304518505749230203270754009535062995115423687623790374602922422575888547671348026767510231375653644958045543615221833566902296201819492127596392827590046345555975419157922126431113005030580641298999062006351210458307238143108065877618776922188635741815879591480942909266585862035775756072737168870626573479622147860064893000933396951946108786112803783433916226733207217523265249909658023739795327754521933642741244989016460371307577046796738204962025196980855700194877200657410552348797129072955233206465481336534576550169676623141646763970884092484585850764187412578799571294349200482983472380828100893570924327242636236162508765910401142810086528719857141287951041639529785608413469452880547510616586414720714875959268386562021076911594441438423864291103804301231146232834145576268506139650097985180693270144307305229134624921904924035728865305039578593626129173814696725877819033176826273096670477606080726239692626713179430570120583595106213125716329237368999818075491144511209349052050982203979444277935561546175115738048787370490260625995082822252150166604341612094803448549603023358352453793819067624188951783103169074915973720208570362063849013528502765157911278105781715964162245238439915340791346142321129119305460172141534197955739676896360700190276697395504009640072857851532819454476713879345659479298858632661527348400111856193150326031353293337793639677489880708649621246833162558057567340774355561490964124099340759079565003424058178883256389709896471374835239260265589576401089529015729185821112462237250197667229123244758953535764200592409977955048682580164277167345292380531026696448438785519732024188751479692220588784691057900419291163997681607073333376983017779779369778410327641772703149151890726102603088392472529338305305551243624853342851454567246264960041787979363328897378574824574207396908262436623163686316783218881496169540083146243813264004472289327881594739651565505897568477854527757714112892889133916663956595948085741056705495950315105925743973957604784565964080073895234145838246281651769520078803288574357482393833265436818219042117144992430165765462689241891149452349143059329886042548954405569952123775546392205387520494379784544857492035594689866228599358793846602912991320705855913028641228888366288765141426502898309038937505303160543105047879593871813875632036915090499974094372604794422076932783159466603790973494897405775683118220181260865095304706806034505670868209055849773944777642753082559143174250180244671880305483252341392062078165981456418118284727854200450682524343097005527106733203728669544657459090595100364478811644464561788586944039067895265437522320322952490719555000395608352185627748962581049914234996823764834558512464053377230746192480331401881961043516863015954138582575987793637271531351756960029364179741543502168306483929280520732864789878020924855303272719006983629573415662730090134874249925716955416397908638710710052876550017510145727085209017965949093577859118685195953415708545999506673617709514032551988269569853996531262504989518692112735030034515246003836151718058106892269949928886785092844617112256653432356146361409840487893889482902627772944811656497197305471358243093482700956151701541303272682157425734760254560665771349608624225460163877219079508315856889698495783122577281521819699947383058929836158881923408427272854672568927898096341764586596129373884533672428773191392930016511868574749145939685778781292880605014502856264089218943017275299064973603656128013361669664916662490795632856910427395618803837830335488714057579292730788459452176200734742470060882156477175102337714286164871396400159163715312710178258429188467303065988654039131709734367345434832355552366270280998448144115355441829877077720093039560341760129594689134835990523692521700356360267118331168630502384842480758319846771159459496525866673602969779743512625484506484647750762863092867954421758805750543871316404083290693584032329467429417675916132810903761765527599764828462030843342412177745400025970744036742804788018706975311346479226405317934983157809518707031690441315466736844970175588222628572133643323690683351247811968845641423694232188524965009446882779387980763403701971290806514420518614110651570010265257087812242599909679194047174798809344500609428194530606372469546029654846977958967584480305893008934303153741727522448440861859026692600541739092842447528618796323151350417796479340145121446874653907531116775687627816276348648985094340643098268940990991458830279355431259219255817685098113629792504447481647458521260627242173758937200656747701055230970172996164808646562356857550480463112324135574190013547495777442423161189900084703626392257365913702820739983205202743034819672151315282540245026987800652761275237906015622042091134454713085602290852813347458470359564670593691916488701913815350820939361286439538027574993876077709429499241633135168001863796121125307285950042123591321257197179990027691396196380518917559484070789604410070571749117935320589471719358300871723014122600311936931208832001832031340194880276366677448447063841317481206798720274142819753050081554346710613815024926344868669306034651854594155556001751747368215339228773262111496790822016718076717352430319377478073339917228940685948966966305614729111842120018659199655205512476809754151448548415391935918310999739837385805239310272322224168615031582107485552184369756378349624693330274546490960972533662254173391397469993549264964429046050301695641502078560663004567939994609392785700782673029168728312447829349875978004306933586894623805813884555770073824475102218676457456123023817849141943315149414989925136254328105018052122111940706940851206177326079221041649584495888554589286127748521042617614338326916524383484000027611144637073097798496065473796366350296143454482579041746183866257424806199325661185108147915781361395387882621572870997246563364233856340126759393393073544392427867125032272381308874175621016960121997085817855110466352900642492205048511778532962039080335695145834913402829208541365025979516948886614207031511379969306339322129650412089590022034154590252296944327295441332580071951353901051980598707968690610417689949923879481164686752676361763517954105430239984925056482303490428720882101098537729791418762775901937220161688497779578123157634838946873235381062554826869924177578621276853858455429830641938470287634569249111021539348360481421993100905743122656380403492088482303862655135025615496260177060420045481201663483991798761402434900263737828378251552120016257443325347451324586576386201887766230923874482944010152540144346646021036092848916159654263630500619118590308871616196739330162872423398403803699066371436214820715758839970418720194125763536663313582864777420267992240524955562845055504170361266774522761901496436264126295255009879294874630911212463334542073008246362164590825848774756981263734754898505735948552495626130486257274352419072534096638718328052851440103937489186419983681367867866314524510499127929101483169372788812652272989278175387987882770427177321251365612946566961265585172151257819120516230016118512853779567459197034286500116942438646702591839798427672118273541913284399661363019822969748237795486705585749749225650617127867932485179182154780239208999704232647224647074487470636377143572733255735591618895595337174176771792615664672228202845199998606195460507039628025323709799548662400334758466599616021166464272537702977569198860594775751860457925401945018735365654813476098818286182761385900936527413429053625201536558937885894049210652809950632243624044103617178498290249845290974299362679243310434598659809181997106778506595702102783298311158626892389921237379007039171889316558465316393476659769707688750654949017148203286560262571112394905611262540556561046098276391736361778071631973014194008869834231711206851073751343687340425788464213096601822290667348968951873443743211531001340587110506473014938063450460468917586030605144988775578961882364422511980702458719708797562082414255351749117910238790975483688013450900159287858571826844458363324049931293717811549033715346789076249625136586474369752084206178096948991164606692940486382344944786044490890475009331313259609923560859214942114747930074402928798364964556021564143566657498624662269761768630267911071377337160800318353497830829168539901430325556098527516233236641683479585288703466151055349143495677872525110286665402526625371481529637384901136760132161886804156364535760084392166501359467900871306813791973466161445728697899361494217642295254060012114438819654418411119506712314911023293400478628259680260150689606380899828158082797094246263907696156355799094225700531410298069248521479862210102502050916826888817339104299053701398149380822022442610014260164205080332365139381399474797786707136895365507999147978432406176404386612344148968150222568244022756400892349157452604270702291286980718548742006617695628976086419831551791278052412487821606531417952983178463843748897002963142057763053783853120295608652988597865786075559464630725380698533852712089491979991348008305433544983266387787455907517147546280538836027855769180880988875429062132824345141818691033169904945724757780600704767429469372501780810655120220842742887459267190776808084283460151328847685569914486056109779087434648770991754514046123208365781702967483229922787248053458975709166207948163652695853051662370934764900440262128556583278301069664919919158363176216398773423940120757080177395555463132651047895594902321821386115235693791879904559837873940108979879280049335649028037503778513286114354568726951694831431519560473601488938956015611210737850280645311855990858490078412430808215403363866563408661417544084999339211772999874699247850330126894256725855662772780331579761764863058724731052109045093173846656238930481508279957751032126370756125496567765448691467171919694755329284368607894213646116623322228007809348803364298452451852801718479078125727546393133897224165847293830799784176420627770603622953411268757360099187919652963026968062979468187758383763254618343688478160174667995753366842007775461182942035248008269695145887574475898758986011426189302817189388982805583146407510012313147716454328201753423578660641729481895223836308320266498002258483841502918335900010019815140564771201408416719840597776932219740847545630054016844807235478140487182997134630711566845848425991448156338424721685943827652754593957650462789734543946076423511062643423371583685184439080271072617777096778042818963641009489533741737993954616230279810862200320767510342514112734517397358722614272778306856444526143109941177731043004196666081236391340105412350378963198013338796842151694672512380796800378981574455342693559441009928660616331614856723636445777531299045954587408400053236804986677817075981597616567397635771870281946959316237346786031658936675085412924608894612686210722310461516304526625382042644624224114733221412204522891567445638670266985036876647686175367951129776462873611252453160199070264568642739688246542209195030086647039443992910598158829651554529424570133791893155766283744907275554148722988917045308202124651039397357534769786157246449821498237505279078616708158242431678416094706905594331227761530474659649898474821486960563307417465644179803018427498364765603960832708030528580187309290421849701376302692309521926992035339602840179667611694921564561140388646509212384195355051432105631622356407427038700856546440675146906305435111644022501122020945502667017494056114940338731293123948193631167185665328336252532743845567191073879900572673746355655391838827659810791391168556625257218968501960635041058522322695711551139453775079457627462566109469214555466257934558377336086321895897121585248122534267850485976274834475846658093798328349065440126351812245770022013019178315484715164859229856635432645705330483703145614587569473804847067882373331497691039238695950396586548848474284391322475804571115596418773893722170729563895303044478271351839324167494614143973841442829785791808976326395787854056240009747248990059659008362402755278237296858190627058485290017034088285455684606462993936708455253191849496905510127500549885535945075891576676629850059452425011151900395373467778171837766045561061968328281153132046988503398642366087765890482192926643053437852435303541504548009693745261804058334116917226667136697193808722785556210911535832274980819575184427426159691807847709643791929270700640048995084589755122576556887560161589219525129350652182138055477571453985251847530468698391464723361706647630095269770478737257807929772381081456468798183977267500349076140860250009876358710180420758418416298150520597170728689824693800734392090071642071572797990222556309261212373270559685444423185164858583069373542193629170424915771900194603804631975924505308997001422478425035551761721774804150380164110585530801607459040526817413291720108889622198001145670092203387835665295595605102538567864927700416230390729890946718747763822232374587570332735205537161097439547525165595006620161240792240500834801441812141900597700463388888750177130848489127165627867700582784889990847081836464465217234611741389794128479202283955042127061066300641777844862985484930185416266404950548288212875411074508644027803626411605289249852096473064228387539653400566676308946703476345379521852620591575727083000848651546978228912294421317644132183852649275076973732369769391195476558802942435055356431635099435742991008329083313282293399558082904518065841553217050467932003933751918380200752196045408625626851019454774905212400314694752514569130954559030023627354053945922281944154112759425626998100273854557478506281425652686593333166998189937080198964374466938272464259272882264938585555686052458241008803801809920698309187850215951366860110358412193654130027349356183177322786447875588966855162498128412888234122875898196511572317169832612387268317978617740299381588846362703183560579831484503919984759958397635073745662778937071423047372098980700642028243819388010784047382511250420418496492120783887943150635984028325926254431592733130078416683434448857190045360063589932154750330140905342371356496596469350078720092476181004774566171470309721556168740630917193876872200385874370433342453494797932032924238758721856563903620765313972335879192789931020143676935351026953860182357779395495531565162517080372229046987255901359175704434700704512327577153864950560994352947008280112057259812523931282573657781341949887002680451335963278308227984475494521178011265414982988203307798897413230083631067182431186711921213697053264197276604456088778349780777184330739764789600918866806545814125439840524106498508279561541926821372925632718987065807556560387454033577599146920325787965972734750033070932822520341949198705255770067598056146812308108857878875722275252423911331078711805589948847330664352406072930729384596629316889170937802031965425391066412228567268268273658572142756989866252795161288971122739252072132288705480283345743647361175878784555822753793245888897760655638747026035158844393476022168155355912336739702697555511096152968424302552213829955833682379876092099775982568578729247349998290999657998022387843442555595575506475256082308387900072958594866929307525658203563204241561985643343574268533586044452770111599195617448033517466161541609155280902614127989143503658790625187148555868356517917754515805858449352813493235141614552880244277172322258422316528589390452978273757520492024974818388136174531427961284709803089565295929615545659719847408534128074198862473873440401843270743962070891050419119182002526336129971346246710761565181476033625169582009270400166399565152577235008490544924193800389095276172243322083863696044012238022046352605192071403221046452343568090227412581203705505119842113323667603344225818012066144646110186591740664370073986094424211972681949597575600212540104562305864732934311235324534964322475363661208512568322776109108237216863320343695649601426579818507860236290176600411386647124006954708937247959155637564418832398752204779153568412689150107503775605152516024903448140167085062372792679819331242082279495995698427916616632723898426401435775395489264847214411994138868977897072546211693028249559226750992525547219602816594921739733735552950827769231303795318742661327080067730805591829239231196674220466960516543946254750412189478287490674763216176339220486209178810316694809856561210340621112048638094071792465352021077487057427414338939442581110315383089542605013223320214858114375250849519532175287747968587494391736025377128354985370390316971725807876582358245368050285790479118413321811488824076340406279107789390753296743705402474801092410737461387056164897180880210846713466585372425747623273162087637621208549987331106063488610510951665567486196224532880563600385581538934315707118788739342463871830424224985474432946237867689943337880582769959595534917412464006570405650119826319581740677598599792996183017380375056979395899522235815375062194334542960009236208916778361924361899109995848462249789610945628010576850783426093188365282120151018467068168554707991087748827765306766264284233096563972530382393294991778264383332251132595331910531360730580935161415871933410171085652903572214010689706804032076330303361087354474777698262888098867199106675413647406705743884082405524360458713953483654174382537926442277636076392583389840312525721957395932383308247025932827812852337258453618320527365421916697203841934462429701909882127771899323958763769028883961408447689864454509922063561861321348563864530430040979325504284428467772977028100176534784406302398456211998965271374456811142514171094099724991290326678375198518505070560021636009123213085665953971698534732140368658803347862347566874816284969294542904527688834814617253181346812571143900462024548408619125041145243360596981884165924613496670925427816657059304829155953178830090217749227182562953652456953338105133333986207417623545394594388877976925042481537647649905016433537179984308786986437732057555112427019434801727171281570583684508446017283328031995346302592732054687686641027332561237717510858096622837918106125457205351692904718994036033340581340027490025706208591619302527676262227286101685265061180278350114887450238379211233479000024416944520525310896018457793793964579096965297375434717528388134766015275561262085733205683758571427937016227669977751053465703113446531121645513561315106019044586187919574732125098721174648348519216705757691125310176358556868504421213879181091837336525773054769432300028349714104526631745026253831571025562163910041633628276331079090459565464695637040240764129168764466842924825458863849335960491643770397005982879654182923709507923206966996191912339501978989521094061344367917584618424368259283389723203034697575677547735092027562548969544737848009183624272110337492051168767300782589238654538191252972991282255167566503880638572656096455961023217707243757282068996213659142058714836727230031443464524958843731379594822600106510365098161636816413418707781948104784364896960626259584687628345133117851921540429584143315794879215077031746769054372488442327858262302724264087009999337680359059760265070548359270723567211350104880734375126388222934873122194891441282064936570764261485270685437777466107994164265796476017757855382537082222354658437736468305084237169468738208148787054063387272872244082354455693471988679748378766875819644435586012572677166262397945483604215683885021359007804672578460400559650771583607555958701201845526774111926089750434198994615208636513191356299568163996832581633267153605625599039249126343783762664635623055932750527776235064809906527013931647752239029488564992034934456341747607050242016700193162310271163408644992185665084838616141449716296202866358596873810735097862257794095328336798946016529001552211394046671974500936523755802239415690269636779383906540127208611974637898852164353254132605229536157363265681522401676463321264462485499932661510406608946339974465998195009843413205538910493163597055164281109714691431247949592072419361859966173063573863060398495731859909660707624248013329436324858644888764819380902327895828695636018275217870522229614811335955577781677244397783852779791077492071687555361556804807721380645521640509913280530718938784008973995704855781507686956612313823635675054176675442874648635588387149961330322583768660147630447920034327013411737652277338403401660529623179122790321104035546908675346932891924234945423286199099794714217568256992525342763735777505535727688549598108804644083005933053188115801826754366515394037026179404382472974748785514578483011671044381952760638232320793783308367804043234582992408125548100727216036773506174357068794655108382522795360131790642449673507125678096539184407776048661533530266133122503960254415354835629604895984823220120996701472631563411181537956845092431842701102745476588788715901765096662165234396854946663729004941023409793405580052839871613106981096435518078358164125228503206183640803606690577836034849585210717861943406434731951347606785669937782608145300003892283522754596585246033145806805233602428276145963316152779482963392258355282107009682949247492696898275250713390041439714882523028203026329758211898362200609723425622163848589990724234270214972648701538739525083389542225461780066626593611993074016474628807999606176804601519946093627387822335841905202451448939164269433835108139917082301483280724417480600837433941306137169618735751474399046110955643437728468155818161365695597095868142995047149265577115922294983665152896422815875885358246817470168138743609374842810366495947643898227673748298537458012996320896281932334200360431103436025500083184595935942767608435978304921588616532568565169814154502809225111491813021473738997788645686512301892837365181001275665640648398714585822211662172420336969949182725468882656028049254932760384906931067835379992004676642900631147701473554583701169798941143713062231993252825007274378838676275093542909905343681463536061270054979230532229845987665845633578802293395509952774664014171784886256904409729618771497814883295403684423487958710474152409599790891830719083729624341640289571831278574955742207622182354487817215773450034373215441034328652928492167592675225062288881619148280893641010176881277792364280526861587717542680685351074749076559415305530996262520739946055691813260187002000244462535540446299354436753901122359348859725488991431356108729053387599228241142086168233572209924919678076481496805148102015083150653881339213893089743459373040568223244730175511263703655095744385087143982421283634163950313551185534248224546268783780186868246154597632077318554341236009950929902281535092736124892813202988370837513407073971027465558116795194675490921656439106782821169088551259549102038583488696583314632422252194972250362102904821784143589615060915816431843934747884100244957497625677467352792388827316597032275743396076740182732907689982115843556500537651800528593770573366114924415505413573150477512599637871187645342874839377326197081495207342187149067553216108318022771753893039176355724916729884491106260630858018137550067182750318094605018702775289984392864122205754956460806665547179332146234941664652667733770566245553907538338190540665767320651430688615324182548759963119908120815941612481225677159117803986000244976987159210466361116332384017843105653052676024856424574661655126879492465349076604672623652270366925705693404923777255932442166805306271012946997308475357641998616617761825413490466520372144381443196435402882217691950238761873358432814243185058966324124644279654164821565714531715694090514227716256267549258113966753149937339837800430384630274846242938315152027587357199944509769230903394970601159869419715158991841892577877120363893938945974838905515680930599380043554171183163717039718915031146393156528462394534482510199973727748914295556658861245360064156424397939291686197989832542590360941009660011498716843281664091442623731494634281963675781564212043264659859355767936030424887628453856741932107766327334685017690377201404129877621347443925742931087021452981576470389301879686627466504334065630395359222105837597360174912029286728167792145346415067483027592664880139289615248860399494153450854543682920265215986140662978420694637145904858816128362747032704529889591859842701006405625522769759365238975128287697409898385526180657444327347485469284049588244500123066020619011404687436905060026530009587527973967289968047728008796379114833267773307026961000897834025889202001316397218650102922258884295820710678597509435909062012706040702068193533980414372820967093706978882617766091455574002541039183527907798657588469447397062693656318009773200233552369136090964943862969134275340854925696637270252368784702339910379078405633336785037829450044269164222852138943745427493090867030516913374251198780856598185104939307715580303517907721092184735177924215211047828481395452794050966191767517963077022039480246607463299920585733666761884277451398844103917505534109337689467310265429272506573666067822273394630185693328106831467315293904230530850880664777063227581580568302555155758842993705899028423556680339430344671109058020527219927249196157162448886179302113947858000907583476107034134587668960577065439328723473278892662392853774691042231591553197164999671501511313840979115745093219170574021842551902558184674001356916953641701103244682344843744847626831133677404879713393128964667017733503265144814675634040365607268036611145192593818122976230659102125524015201032360449063133856320266927401760278915366662635714966687363843722059703523428613709874736248606029041381155390442146800463206788364327147822570984872344727044112471874156528008470839195449354460578084731402337641001141663352699320395154131435260366430582580619838935246966424615045811662017435221330328024322759583743524331291081479535177335655662488090839515086612291671738421677288026576267043320283010511234431849158066401279904124654743283338399296288928337470703372682618699193300095953136165208511888763352915141280296498166970066941099327273865561496981907033895684774712614201699544234117132087343291584675738931384412528640275253287547673119658242458123834300300285822727686455529478855554517765061722358442502655659543846155592925864521689598342927886055563980763839811542244828000189004110445421992019483686582116917477066155669845390783884877363797627956904374336151898880622006181469394519380084188308222959144224642292738793540326435028231335595966498309145295351591712670206865035257542469153199675024947376356523099608228529255559920971447755871282003145451219855553174313503216769099528326344700625370626141451032094634675618830146005759803651870594545551096645824094066672754881932455489917344758057145359763062688659705704858924284832419536806693906080145718344253983315627714106846166305169229123456279746094041239706986086230522227720579233435536522212688228509776522601141626528297975423063011917694931007827496332843542157630974802211393618813399394031959948778175763452297281128377527391058768834616022185571048332968020614648131574532339166632732838654972640581559714376870999241149438822562136411428894258119805219016020220138596023346454588013397087428147661859615583614726058850091302172386716422535929675652859903898027911850293438545134092131861961956089885177439052965876734491822785798814387248588545057756099332377051424924969114741702712539923905991335196743610683330851565415721286635026307241826746095038124941945951995474266055498448494687825620863138038216617502130928275241743281332762365533577203981909323405248008319694266459354956812561704796126599416281124487165320217276227139040137893199579828853668971646346445257889691160215039730677429742999294449690473355521215895966466250174509995220053309185557909676825602952625632043179464775642296636638318514579923500629405093129939306244045263152460283890790153582770154526169502135224291430866266669526993035222014335388540991229949633651748621920696202450991637146237056398663880185043512460735349182371186635621721290743860508785278248776439895414226411153196069309140365604868417838361754170819751283956033090517584996096828212213748206539428469482946115664543633914759014569420140521505488967937735974313615740838756464207869016833973972544877611036503261405488071663545397448735780249176316836841958728196209901164708309736959982680577329143920437834087371776886450797491613099058479249428472201376205003316332591123052229905401589773392155157659247543339134973239045749003554431376774796177377593099455357183947710595546468108401740346898122318706685857049374743996661205473781084226733688131816996866544480492627051595651383493383790942951845111958759435127542183410332488582554132676292574165468448529897695291819869679992116882795457334046263800403929765236944595542844671883656765686411151239826751896960452052301946924540512905491002805541803375702935741739096181281304135108214978932031971465139789848197665866591611002695972055032084201709759758776424637074138607260569756741651715501542332401754156471691049474152157069570671411202953350218391396236776590713494371190836637072273870404465247459946213082856660529556196004302956218532746760820160719640663065378035087955620448468895586509086686562395025204807817119014486685503189123047353463499959796755469564480991826784007882435816316919937836216400082091654168997355081019812970270496059015582761445355214031967785527669314619036445227275561163121908011972834536061217947901483207683054456245607860676417046545323377896774953298298180703429812310746830119995026029313665137199678565778203952365257436019473783943311346506731555267625047178245530816197173234817249521943068545569136778205654942759875879693796821867715640207168431975129949097147509354982416087390742365034171273492497451006602515144426659985351990528186120821361474121785098928582175899707024291380779038737007247761098350263856545128573749081564596961496226606679600619142008740167814350523319135512322116143212623489564215212528810864023869082151508733240593273985463741750239480350779679573249876432132662867448206560553448998541665485377320251998317806027138882730226825025134715635139529698523475088135071317967575729590185872491549089539895254094611168988047722452212715719953795254750180614230051915760279393728431762271086695730284842918413825659429621344726811679290381815165872696101248921476577481540010794737565121101849871602741897160973352185528505342895863186671853709981095281675521102781627947790535632511165983327014490549327240208291815139526509064040505577726223482483298672670209943979796465940798171976042928547787681924286240236460949495554433980536192484533247057349346942167620935829784962861061999851314576491359150414172060742250721393314638353574543057744499663629748923318548768002210224290445168656072311581571723990447978779880198977895400636230874430581470427283142980077769391651076147767576753793986051708411183959009085837525247844202212766839861160034862573811776754386442313901972360732736400783033345108793326030020439502911667852727349429709872640117157386724630958191001359843144730793599628950805682712672319528830024337203266332319343231833258361018432104790490142437524796021361194495468030887537319198860005393326462314418788656091228060226423021717150378282389249194354819857805368914592615549633188402203763914394963979065051383041010265853047555935148530397835458855371935144277935335874760399521867199864003107712715727953425336335911383575364550983108913569813723330783033099956800327352826937901331460832617752761985631326397919814067768370294090800709113467181885247991526088156873070135366821588626830581385026059239406184929927840664087765543288121265853256518389420395207434690728063098286648377181510100204493988014408192361994393970362741175997466109903975970090638504238235170630992575615183175914135943229742038074624784856283760411325864512553665948845119374154239413073520583742831703911694370265090926032768907793432650642714544415428730309090776591432588619414322390448424238975584409471606757361913024285622076522610860721503325839324935715459964202970243097244814806940249906615790975915213483376949659587229495890291588458606384432335609454008698519818482340478932269580227667941477053454548295604685109390708725611624049722468378217880415654390561125605515019912547118904136935460097335388007780590041931710042037182077774233350993843370901537742299017414919730048336525717933163262901451574206308222828483772649751991390059808770489496879017725343842602706906021255503831982649270796677415390935596602389177514744896168547663985390018468501855621907890753977119075131600374857424423129901790832718065140682697352526319435282675563450908783854759192810524719727790167846848864335328759080498029642391134660134926848439507011693749259352304155132715907066488622118004864956048203826024717190892260164265148769766775974676622169165826588464771580611332051091260524909151610621504638934604220859911186140444404820431272948446661698135817524400615243388280402026292813818404500966691277190855822618503524024965119976218891519166488280473405017039677086858010940767335934952454880760477161467135516437652091607130466016284697975476309712695939718708547887956502862906291068252608544604447064244491972858667324813151522452338142131755386706183500501542422514749507615496105426717888353155100391105060149699466030071579917679018410404630206903361673493357064992923973022052153670050431985065784837172964721897481960112811194738263648578011469738185556708637819865686483501050600022270483375870006273795079560454539178870569479784267055286286811909501860617323895605135156121587093153949563354682168349245848772113120022785012392667225871481640105864333740775831831281943736048996303418227931743281195966992365191760413785852856048739309905832313068044714888414765462497950687571813340103176968666358052369416478345673853003024450174227383155806314364210579613589284520080434876844350096441530192134234305539331357331904270810579273804617476302322948703657194116947405132071364086615618191318130397795056798596017902314039137529346994735811128682542808708734135155065578620907875707061209189169313271498364605665946652570679691287872410222361518956846622263646635209248096532824479881300389601871288460213127009557059628439409778881392643113056761626191404040427922452369908161033573348503755734055250255822821396958011542876449066103102054336850316776818834246228671293800814204113412643394485261280899112527157439208087025084609837408020440015106280678684553759472137144955368512010910760940519881991659106813368536848890928039072709673186631296481319712230233434699566903641188603968394317589293467728713578830647913853287548569377266382806362335300288776928708528130038210203291898043859461085680332969361924370602568167940958591386456457193315185916379305777584184991376092900678551652508177803077669337159489879154970176548522257214559811549668805321760456976439845263407253994397359806306692219468023188485965457147301148011938911259520286172554273636307491014460247241714549241194843513595443732158314525199924089946302818552077323456912647083142971875636635461156098213241766322453481996370156289068349382783417630131207059061633204650052668033823696792353765746479508373601912533341574140688759477896570630431714759774768174538534371553531201473494831980066044310936485808626780694123493222573567273459572894165342856092746869211398346631485666918109212573841482375280659639684475290916475155846007165242538752203479821714610743947655118192306029145768049398066786501263397212590867221264359969339113100680256759290141084334294957612821286871024365360990605451665148463084373493737588879489166899728492812561751812278945062341647476454916774334501267693762561707161089248139011181277887321741045330217192815245571453963629798432448026644109172927074192394953728767884673531553298232457239417813366843250173475210744948665907651493603066933971996961059887873699297942980960544181668538513124826006333219076375381652039628091826658179837443315526726675540373527593477136013203098610293420898690551328226706581327685681045609647804017233508499059249050799696550517813958813305031855297809383778530569824672848854330870079897219281788725629517978308438098229613962038096857227719940788480907468277441313740740446113823654278991449984079056561493558812389812794771926060353117119491569548252342618102951086364521005834919984199688120124106561987323154125045287714082784761203579010651638621165357771770139449834034672134622997860569352897935688438842131812732453974027690169338899189097755853359398161482940634714955172612923146658150871009198735320154162362901166960958406105874344988019508515633855978614698417645938341309957436451613784609728156270304915130547736796391893304126829206509757721499795618212290799004198228729891698610131412013407791317937508336501436123469321178548614034090123768910144499762836379023026981372242787093531532461251883723476963083488474576813427010804613747252732311867463484094915144458783438204727820549655905662354865688773066911679012492397076137437913283882400320560644350373504732863348104414542476240990204299647228642544666814492096176322373096975503756685887079194311532981750056105653920543242025881549279986804842438865264197990379399775468676839350315858247734500683647835866841130504487829020526584769985975683441055879219086741217870345979538853270381224997242816839931880962732733261756734486144242361976741907542501513053458830662439330611253598442605925602168782622688863117331759018749195512230520693610226232844870124913470365780984362625265513986800483321947315788110235043739019120082828433347469386636538290194904109449064240288239741393636094865798908082187751269025948361642801134267011060465129570250662493453998824867807309842223134794599118225704172213893714581437711450696146156217321564299327936179676068336048326003844348927811732968703494954261198922446612088151987277094010827411879178509120787889458632608966710113574221301542334397135974177450038094830225650355007864528254533272594899847659543298259175645115207270794641413901966715613020590328042890320440129704759871892245130245962563176304708973486873232772910833622123231998561247204046431078313315527563994278623352719447794592757276446696920389478600732747719029605753597080719254357562807202866722934751031458544394368219305246439432712217067903493167900317057810629021586145963138125712980606995146707418105800497421496222724353503568197212585644052752789318511110573714586239492301766021070783463728270209713311736564098739729140713965299607302677342471568678349650391348438497872307501126247514049533396984874820527464437621845908534347804222087961349820131871849819106063914880665799055631061975504396414393065376817398739473847351922513406881897731256143400101365117163556655968301280968525410598773103185886027071302745550966048715791368461963497765963868913561300433593284013013085026977866000981707440006063763480129938098140424922267808982750468640193047549522469908063658430915291533836057785030498159933134772397671011188628978265822158682092030840921119238293883587640990577476847151973153383914131121598975147705421900042601638530171683161588776059820355086337728004422277040918661542138579374245884957615015772023021709221532593454269160436842576332162596777920431679176028210099835286523546762171741688890524299393454135013188601366883686179671439278632715597491679388406840511114261215743708123373730337752239205645186409957697891457001532491827528860668456144883552031557856078033785035806745642647966051107008025929989601482569561052404674126169482987622427760285844779733374567318337436987521786452751346460448988684348351190179027919743476165815581423331349695426608401603753986520923223401012972602181423293933471625214750292382395591339381296971945023765725860949686457209103055970744001012282828482125824051369718709034804181388840746395873782458841056517199837004966411296912014669198800307363104881160982588287500462870478155062891830543407913687669994856672886605361190276388854709483342041539733666745772888723193274426216890563237996284620028018330617941999158518090362916152111984512731808461256858670714820165424640093243641426392754397247109887610486103371037624826335551613264575875749445365646009110916517248398845997557729444435457887173503848257226340349022122575474115597041246021151060204400342552370280960006720794010041998586106079010661225042589377680150072786332345890819794746800744834729512463120971470525179117970691868396887320843922926300127379408890341464580567528542884074143227810010149028311652622051056737273259611458920744324614518397532331371938992797864803616480411050339125511867907254368190512361061027492292508012339384302493312910709152519594603144699988132038956576970928770049724243914783159777712488004706469991454044633684597360924773695278772099231983607211369327040755724171708230962048887423475525724483759979213324059560276667453515543685661443423269463312359503992468926867468698101883499127134175404855911501181830472428156678568829990779093389550680263211752794422585635304699464073922237324380958474355598836990735988275727552399265957396550683958581500527926532956567933409776195051078865024986621654190638295013060329506817429730183053106095944849058893381224095088146121081011099154482856788496318105016714120000271952855244569170669819950301206698426567377697272921381423520819155078067780818438373798251015605780768480522026303682051337931624858392122091587823736410519357289464678108340884430261765587032249829083357091615524817457370676677652716973943093784752196400442007811626964912574274003055040889343818126548077750657613565998509435380348293782445588188044816218792059424279269388013618319989939257485176748155474658430159197459384747473542279829089182673086486080209747538476354007920292398210667754860280547437225937522009117158788146649741725314839030356910348541382530087958018055142521954701566284877403697814231232194291900668803215873240558967713694607314679539151195410484010545604171835356933225969429747110928128228371920063551384220717537338441680846305565451511883084427985665461363401793132690587548885810430482584906961364864416550574146072054388049660976685298275548942088876621414833031559002131569520413716789683427421667907857588165364248188190790538577890415161309897514521758628020310348205857211098534843313890310499089530547024577664108052055408397063657020009435433934365427039430957696200728127952650926678807667842958598460327055462085660584097938137526487753526554963693664361896907636113759093565458858712897975796200210925595645554561069458886477296616287030458883720669771214171598452760369696427821090328646536479261742926847340271216703024261941926799994844151346089102669720144718404596964893759963958436933450137304836232090085196942023018726725513345428846535338990974919283855410178153837849377497169470049497477853598789795785439109071394905474873927092735633062378410351083582745975819930993567635227311423235591163897675145676562203174495108290166698485151467892775848510036066230098361391571968905409343229563002511737456947103999891470803136204526463183565240436372171250286942025703947525235662748111858826545120352109477318662935560088342244072880322753387340699857164233969346946863854561813721868665207087822053463888734442824518489985965552064024033115010149067884510489223733784328181520584558188312458340386293831276630817603160870487653132488219575379955440123322742199663653750115515468534401111003061496282287177922179820281519311628786935438021854446220034334807291754179359370434895729819057250612395932135087373974501440847002274830608789506038716430448783680223269521503784390084847971951129557961298920999670968278302141502779739407462167181119992824590660431591012446777725918976336488621614879511089125340971403831996851566177235048108746232810399122260032408716775189233318413516323200087485508560422062712584386077105078363850219717138457752565903347405613131313427707622123626639295060613624077890216123223312176896694627663254686744216092698491830996388281786871865695102323198068254282261410747202333784752573257903605446419424618890812621969404332907889345511595462718188387172283252538891531774181232815980983481514381610368736662610920137172604103057714549045757668549859418993376019563512678545430712627726312008662414722232476387943426589798627841757738680283950672156418850512206773457920430121846325249634275229943984244508367079493656602301559280265339311305400026527433310141651842350045004958347028991272917960086702745968735665096797010811588351655523988857969937109416549966039947053984479003928246902083963670142728789908720740853854004276805179560514990908793329151946583563498372866125166481959180460660481525161829643069252529990655645958692951353980089011727868853306414610540572773178436475531538978406680720506016111849834210230606810157094107849848092470471126878572396419659205812308779491384820340902864895558467204725913646818229905738540347988035791849149799055253222737621488072625089699207487400052764651885896223775526362763832636935691067696920814858091478508576829984043458474322562670683958678217652992085348410381105430987622335006907449185797089105495546883511975732808544498186151478210119972899388827094906231153144341822289956891427048515110835130132534339594932143749654173667390620389772343659553412003447676764138260185346894815604604924219929886628034036456608839516254341064079390584051921752980466520358309571786147271234471744690523329044657311536898550012569625281335783561550014323407697042356309958463798466866192358361116378622752695699194256210074821606547699190997870320321333555786789765862699159934073959215611730894597683455516101832521443714768083251657582485774810549293998036238405528050597194201619697704581453885561889066709810182446182338729286855230210324041762468695072196974410304997097069519863216250779097531774517534460029254027243825043745310151328419507689465931615066812385441589975141943401238909720852123904247991707753840014444993160697957533425357641814488225666608277757848870985887608995480542774639210084566426543574390139267276434647433145394209972495340564600241806942651977435139061672548524698838082456805336489361886389156848821417933917607985794681153344975459280889205122843453968021985947417954819572627190570902859551929815726022073620954440797775694903220759890197798389090300796138644429110237618819223818112991787688286073468826932913754484263657777714697607234969765756082320554253769401828978641358539095987627218600348098792213441567351630740121888742597509196698865255665110239764413830761046276281452156402169102062902342018318712811926837198845136710433450010116919135508365425267588084606435515614208294336221374257455339433912374702970877570160762567455273728299575058282868993836365031826462360531681406623550983860145308643770002465240773072252335746901712206658228542376514908829259156475172477063440113336174565385510051113576183529347029700081207153243937028735733664605992770475192717439223547848200443696686853156653177419435591992877111015476461679652333769742026216575177085503448837352397234676959328773351357969375053088573920312107988897675080013139078177345949012789291258346236438435689020993706058894183794451245625424304063831963141632676558449362565727411833522521936920825081531830135059012802033159238710265682327801728982823751843839406736181840077223438079332353463508316506450849638712090685653729087046765915052463061730571625202663345421036514496934770481532061549570072100617757768725618350518436686597892664603904888410510799617334135406005839192076899627830191032979059272371048570609899471966464147808737905706898381120040208834213650174665514376957273781136476845597099187970370671873375904862184238683618702493766619324314505264951534687451266675782025535234748031746825607818026843139555430114901822757211961048863547913933239969840630228680347901758258604417233849592396598268128806122401975236829169078088611081166425604122183402226096425806706292168984840293163798067907716000494518517044156623493132057807300389019274710018195676511602315702241566676908804561951399593330316308707188375658846301077051228676074215547352432198006204419929791347814949194846318548908673098936561759694906000771491008035973427310317704606523532601195850651471278681669158837815381539617383579782972759971687618691644005851493228595514799363010822697624570486046552575921517106325611151896430439541633001473682425660982287174865553306674760126334734456348751196211869836226042609260274758932345006095103454375436162406818694765975456847482936224197676458778455464183747316801435299017567130868791930389572287866965575218879888557040751758236617754457984316861238639846193215559717967574922039958799304474057154039345222537835131493589143688641645540008615905487270878497676486552010200384246276651410647263151283499915614222659834982814865000575846945013986912699220736035759272681571943173818599461980059760941175278013871329886010932087795266757842894162186257208902817594649639476165184559068137715386802942324154206066234664851286603479124034144531831952385882271376930567470063509295889455771822803196522705185463434539080108261974528704439155747723243230074591998604634925890873830206753570443514880379291312223901850643439414789249707837242458508945225422878769975166808934523344343136079612625249518698965143754923159572503963330096238256939444831783350446102064434185393839155576595734941542192373899062590140969241933253824545103424138981411282725159221077810628289489671262060150289485071924226503859014128192614176796035822954602736348855983859138101599104585209847506618908838477212025545439904700260046641670005637693874464783611384315915908682360146277347468743231584470893555346369299281954467001829373319821645444132735330405278397229302675827202864006687237808139037109493921701284751495919631470456558552220350001997456946671412661894623833006444699526388807077167058663021770537688643833964584509318274008850919514179457950266758474391788482449709066970062276930024634392034042980149571527624927102273679099006577776714699882598139136078475757568632144406798337792720545809974694649969121538613608699215091998626110519342877008489167850043468544394495419188951770373778137381701010858696211343920094697058166752357624457480798811908684844778952093699052780456826799707952558787937800065343336901211875886770116601548835026114883938191758883678911721547234111058032521951920377969045224375755599607403667953263150824153290761216830349769617325973234511524263141035648770465254763528249253338655662127755199448894710980375590462064580938870913161995635412206684996855041639037451250109203929943621069480354303519615975607243655126909500791610703235756636485514777405824148109223451544818488666261897994815156583642797001741160250378610856965694533358986869757290232059418014753108682571783267046200163431116636318673929616268559896374313379067956852821083219199881336795703243846692575374813738231560400107336808197632074974943817690791392610420663717770915085147264903814625341784432320435910911484725171052665996813759074649847830660585224685661201772155902296839242367593083163542623395038545071182535851234162632001634336005271664599068641180545851184035397999184020986039765644203091304818675950712229008814391799005569114253271503738282648664419266403279956612506232422463223209085366955761044604796418774844130145718048540107564640667331532875145255228836264846984102194570166432120133111363555549080053020913965511404334155558343174265614162214202260698075056616350234950871281747206897581974944681498164987838016977885603203908994947666381997779309375049506991247397761579810793579969059133066337618243154331807040285222913070038240174051581833500718655866201405955018723079187494350123002513369961128378942119045609843395287726978244201767647944867361282817790749744558834408886854207336477795306942001880598393323929733268392684264977563953381585004587935370626005883414185291722866225297466545969797426610826096193518488014023386080458595376170934888199175034245395588057595669456846072768363222375426799936074257498398701614288790143672942921493430113251148055094236335858997421846205300403416662718682324208675361116174661331651869809704465797032613765093280609735605173955957156957596770674587756446787086884737725671530190425935614704394286784829185466458408129405203444816376875350569440251788206853714501787817924043425566775672195606244514042697551499562705029252373790894309990352491789211510948814306395428274451908218676129577425427524192149139715070484633277411295545608745910368694135578794283264599998301262029257923229454752370428087957252721413811759556300632219594639427805042482316779189041735687027443194414146841525240361897394134725917901836865842655585281832112255366271771631070001450012746581675473122980154403886897681509048960266829016501741759621187357588744047609795910025551167502566406314196788701698193945790106400300810275201039063570704133964402450012267115697271067023268731504682371853124703888579343260663296673621169178949252595170108884886854745204953322213109248797893710424125667321673899230341415795672083153625911980842675585989938511942569381136505723240757139907274700322292651640532873460218182103606451829218265658673312159281631171574735718452885476534577197473014502416075064373161710668413544387965463801878882223795405470609791978095942106275438685543916463870107414152201196181257854414620382142409395427278683681522645832089711481315899006853032213882683616009837033055375959363453712215217862812088878892324979243789341904359141520570618365845660056552057454515740275627289795264096862965422502778108987664195099762695141283805783876412596993938897473591955092650555883714602181136388328576396193013856417057683364753581015923013917941068038925791363917526873551333220002794039489726678986942334651760027518396348939569971011487243868686643337727336298702977376244805353856008695028067715987086861369563217574595245064212379683878299364022477456640632763830950344806083679180440235625903763547782188379435816079748163912852770543714873527236182201048659324652186590559037079134169029697053240786356650321865925818302912846457883658172660928155601603231769615786734387438051122211455851095606638995664277489864634442079094998860929173462420524008809185454932728512510967958337441752152432813081865483653151802058939301866906354846101399508133498205059589922296224598555814038975413342709146760055427796542109011540533332268992774003910621246534512775498765429060227856972153179634216936741191496280023868698510463870195985943959337853476351299325389646352820435215515239051898286806515885060380139756940915858704008306259970961212652375521470742853017214556175632524002743339843440274247660314591136328956485000124832592139269980435979051945457550009055366935288440747942206437348320963520878358188657671328459833353325231116675568294993848846548635775826380669158958861411176017466810234950928602706039635314014191050271186432398332172255455292419933867027189711093491704846475127611088557302170436580912322127911876349815181325092323326541017846015044326423910739657885704702528652262337708277554580147892441430464161091685996508411117130945354359740105476670009814041730834016319650242874208667561947441733927625484362395156104741434320569434541221915291176866018639573358662917495505072608762497386395904175706163706495208899666709237495418584325614957515015451309064832003394853020611095575626178191814213910721136482427653131523992936206554159794250637751688898387001233234537951580720038562580735697866402683274831020024758099528732521712522800752872408180073878594348936223513763296671465810651736160292966194876639037004583164710681102126173413853241450484836800242900336940214991128881313608825369705691222730063149835075764180279609739818602527895297856637072157264370495989439316291522051717470618315541825647017876226195170380806721388750497664438873017660467418833162849798911402758975441596084391087296810199686958359624006299758898992323594828095561687644176522958441691525935124549578337356820770164944960472685098316692396014332552206649476860467334928905640444713927476251451507282454511249658498069384508322394898523699560181287609762157272369969402950556310070835945156482469147469615611490711416317445723835602226115879872034429671321453487055723918794251477513834163721637504556051243100090612733657350988359101142260989410696363812295924209684713375007672789010416075761907837927824078253465918139025012739153238766214761399001156782006258704348439799482995708560481053223614581685275793702302761114660844801814799055497624112629992389698562027062252275594865004049240401863100731240668918850797949995662560996040181967914463515544293808512995149308909232771088667509255063544142750296856486291450160189115681473352410444179438846127902173675277860117207380642771774488722342995287689773013873219944172247137499600457699587090113778045142691084847472739455969331821992748835986091974505486354286471838656992323295636540737750104115579834333522931203499429833668883250097471693920953512705417206310433836950971537560694156409764904584334185413134124501072660982545082410368403988826817782080136775910581651270193588574377929489790805723046755251971302448203941095389776419773695126091221479718977310330986966083815530813993447268556538629162015436248902487917147760537844799154780123890116901581451764363209903804517039191908702386473674191438564781899080157369032934397410041519318281774894094479859414731464379748368725114602289475196349568807274354349693443479941487864219456335672795792495823639532905549906541394320937490292446505842073611850275917674352776689445954674231637654727874140656936790475019908199801134793973776235150849176327970246623443428450100502929340863198812495855531380606909339090676618385667086308905027425778849118662279761257043248312075429891444924509714887044296809042797509038059517095236322502315537831320294550191973582195268826592699387713950110413281393809443228817598047273967237752839619332702845256412330412878072882327403843356448012234464829166029202432874115786285569545587059736618966027127005235866631857756926701934090491315558947924710811786178580975570178188200741293810680903252634083104750532033478233968774373081409701730981275474116476041291735938770256732929917920824987214375441706360848112918690432342686688293059904581103088578241100061443441992965538941696237029230867655152282830257687481808047231132028836942369436147457201715966852125249395144420758401320455411235976780823445725227289343672974930836996956951595864736937830201277003816822286739378209664344199793879709096412981952717155155693894287338649675611398467151743701057327752265147671665136001724965921441611190091260861966223021502416767156209896251079861627896727257865587977201242267246971910667212743838866691227348316716444209119938672335584307137340016700823393781407763427143726684567615998356684974135065967720029716419395034131342615712846541345439163329005599046959018448486526350845361852235316541730168981746193346651738995375435418986991527660983059161860220332435065254192277791123576964080523911350455871116052599830354095050933474275264669435443889005620368517877292632946864987284894581796517490189340053531553974763161909018937483516547864196436162775027163737785575976282249884073047893452664407965013937398664247881140049266815713651285207556890648256896068018511794609855285203076091103873359906857701494413465007411069570378774976755329900491659805621454712729969556089527710074005136127490381448447097904499475657816443851947569658883582244205468786016927667446917518933374958821902918110992994857326351549382525252752591649608867715007903130389108785747228332632364198533923903184718282972006947381909499965143297256426118947942115096540653302885070652377612868188247618722245734899940860102553608509309574736323996199372816148138974867339359868358325957499569878356271414679792081885585581724125144957695080268814291634755482084549094892689703544421810664831057111900837454067655432659857681410469126966663230893264437291564772075064968969604753205261654938515206655781991129170567439398788201802473637926640077389748398796980666536919536192306764272906039526553781204853795324994817250192468515647534900435957880180163354959972273981973270300735212429246383984210656494360809723372185014363186798286210621654211800392805146547497236314278339569175314640871221294708024184058525296171177124057990850714458271117014533797737330886048430105626950399122937307240437626417007239853109192250783455526340960508965956412850428784835893918028739109211852489802217906265086577956909756858325621707009122900340231534035932073782530904290747037779363767305872516918631058402255895753060204450661588502983890014729392663568011988367641237017876131210394069552411129647888872143164914191435035869182672583266311510671835157850599254384594491674576653496368101502928629714531893085468272034381015585685499436856350189649299872809957123516042438216087250341891219384904674204171037574159894284896684396750710745329213573642328285369205769790378301871360940278256111477614920323732229955149340269924353506469313011603390288225225705690702333551972357949388386914355291959400444212390968184835398727976619476691622253803625171306277209497848934723918730596090518712773524101865714078694567502661295909194523474990877945141372398297857061760096377453770645003712278458002761332103473003599960384348414938604901552105322179939396479857546044803147176564381813385433871685178467807309547727866642964967163051040359962792171465711466133595945393136080146285495269244770512302645092927292858930629938639370786344314072957896203628053923428718048516288646638363624371889182960283744540814121993836521070419874927103128534027019940786124377123687816955355000611795482359988165533559858364867391797714431966096324426555162486250502579926998557989118688179496916938361826711460030985551358012895766560480277854932863094592728232147118766029164778933642022515879063090032986265067655002842706436323821445699391371179857939524146792036194864211971850566405496054264883636835511497289105077179929309369015127689562340575588383441422361079026623876484405064085807333781637782922498212153035971787241535028600153774876886015587844230308117469068283163671480383388454283835631186133381208958768604515590715787467342135078474928855582458370155462481791235445181619440053072433719455855010898330196189471869669443474344481094289284141565998477941666801853151429725182825601002497041452780302113417389629361152967434349536333305249315383178644798939221252157190321309761943091377019819150798910799795989024158857131011570205113981057501846559222028760107722014813238279257203520836038907751827197213246703075071598115911190683844641812756169544985295539661685790899985781469487517145122311820367969719265999014618309332889714041103003740242257170788027805452072176435632065165798899011704917218157096348836795606599222979880678575420715250932992446474289566970198737439466556741035187354673757730056400966897459767370277728595996954615653174933160527543338909233326641702307583172238927762563718466374054745461552987494358376098016587348448062086740862096622456526234618235053040956040327015395345277246196357156774989429846896186083451479563816840992057029132478866426644153320173153500040140471172391248526205943334777401070648043355880513790427909850532544351009979667570915396547461198823209970242648433334602681207049813561950550790404132689095524352638406361411949340859759684716141947192493738964524738721937353252624931522274862480869072770825100680856385972930716099230473285990330028240288243933364615956378318400458338884383247929435645604578728691962041535756362450686151676092825226548203953455257524439808736643827580801293779455384612713874515197992947760448401321004612981217438707132481507826359052642964302882545512471465990699071696289786208401582508313312615239228459808185870830647640984703919564063496577875882751365254210745519358642278155095505565918616565772561733593308126563979185020057543366556348504403748779332522618020636181707853960355506548442513736877020705689092156112699254209432563940936142753407973145650318843515607626821303844642703726851882643087035025585748677889159216380967375373653283452587776047277765282684501925043878429283326201253649365212817115244664015810615961782285355333048434411970839048510391313622133513938503140442327562905173370758782306152731033398712395866726567073258914157588061722214198583942176515242908281308107042973863432716233935265346714316590931184997338794995367945585257785987367904207248762928712307597839416358936600932697958888524419148664165007934389628660519206370065046958614629376249579854946864851443210199084396790970379529534746537622620113381602949455657473772983481893528062514959330583704938671861974017238813029226000482928085747792566034485743765648309768453585551587658010290837321267708850224666724974210588044757144218272186908913740952260636735493392735775787064348418782587786635055818929600323950867292009442679513129286252831445027556326040765396695730125331914418300978403232364439944362600680349017285662545923370089350671064201393667287794331124254213965970003580847367386739266807547607160871010698043211061144903033657869769185133906303158590924382100900829711291748361153042958300625972698335893119393563169347306603718251709998373262060816367806900147215762691622465483094321853528153414020172788009853496187011366383419284946790736770041163536893332564132075830167578022318302270119202853360228934954449456784137948535072969406364553034334643677124478889663673489643285864098011757163397742207099602964122378120094018996935752977901515586898719084439001919728046175747885331362812944043251110817141872403112029605974008948163639084523649633172962730014331458972351833864667266531366626820893265950405982481733152834783947682927729461124505667958021040966827298819043159777282818971267912993383983725053449905182907074078656994991863552710706037894257607635336918942773804235498814095640078426518350199738947958447323444763583249864209576889919461957951536545605348443992481309548835117372856539296275514727962613659425413402174917722530392694370952063896967786709843609820900947564990069950730405723881112198352937184927789899429431200549561908325660237097445730680027426093978428139578445955596151300434972703100145277067234013774281569461004438700475466675808871910598149416289462243280129480545720469694643050707302792017529941449159896826261895910684084756746787867446765109371959938332802649506811074501504698990504435606739669437785351471105881296568235110077718236649401967745272545194831037998563395019496591945597083624825671730425818343052433019673027416365620622141864716536674403128113815493802591159990589663204200540911867625460334793667975329151167800221138042965889020260740573128636929433676188250154224022160240514103364201590645936796139345838137880703631355622369877723662106634826039999842255847832566212409761933646765650683026760436827024362439165783788436356935346112380823451883445136178026663653400510269190977377293953704962570475606961042206947025629075950550129012382368757600410228694136462171441117979106645721832815101951688336687083488507503408051570312018827945182043777732991970478744968193116040175450170997720831864140736725726931119590931150571767595905175127268170280227272381558500989589653810823921033708561924157721044801711341954949425131661620604140870510691368283711268876347391363692804745941493938333941990409755917440112088578240160861180038667151158708374802860942675990595003528829797040483939909397073797155700196586395185718985653297677092420513261243411264922387106994724145277605393495470319519361482219313109969484853156233417380765113088948646021104730660969007385155006916139345994087435354478672044069186623905361493179609408659462337198726045887061398438334292396856604102583398179352913082835307565171567302304195053443399190022282648739817991575239693682408196628274521520379513353356335562047658694956218326717290005548583430488972694218118461084373894001821384521243635468784185755070075665335300478119029509253202368905981904173086170556382928309900836687992109224052255518653407621157583431710029816178264501839512340150840778739301102217192323590155786862520824843304063539919863331270183758435022658884195006820519694466867636125507202510933269967745298527659963329640375118545413205879400850286749106918295052710618757953309746786430945821398835622424014684556778158755343147850727164678973273649905345147086846181326155681193562723794837683198123170218068207107468492548355783997597828532280785641587863395121643772314278856095630200245917390588459096900775363673088351053157280951092513696241828386537172042927146988978057700399194635907383036043258342454645194020365723558147275386693229925261553012193501161241635052714082620366123331938266174727664402153850731488440391897431484014309102731334034739468110336072211469541830001453275731188987029763583288037648239119654926401983569396614680756269533938773582166991306671317979870270677468975725701024986942754651289243520472807874862560587390843971521800191929112949296078572944211628596979944860558649464443528666963837607057285672064332374561251126784683239712300880254983554273543052629157136600059125261936870912452382052800951852862331932207073028590988140997338431445574077289493627254857997525038858141939381900284123728529439335723379155533992053357034575880391815332007128731472451318569780605515976841932569785133922180222019971622761022963027531397955428932769874206327606747347283143000515152209962955678904960428190584750125658673765409931046773190266483987369681817581684673368284252051182955219047206815126469017326902378820676178330801770029320205400859572317296913382705240937238791652769162408115256458821754780705510532702807849444927089589077424016404997958411522869368218578766138983202201063490502744226571670855591176718024026166699540350070978824037423253400377723818950793236801181559699120130424503316294903750821277427254530298400353218312358560108042118845397567365467291560434830530275009026496973505648082706102157993225892471303471142875673635677057399543934312685634436765108988915806167142434978509299480090651174868114478425140886764872868643236038084715495287633755835788084159792580038134244669152540790778432132168031590906850505965991328063439547330174591478192663870909885969267943760534212704754957433568840896064494483713290206832781792812116666301808083574271702163826446005537355208261596312613130365436890380740836484336863595170285183911209311735981419604104553374077220269173706493137646374899025062231881278704979162465883946952028463915168835029113690543098055417089155960979399915558400017074263937602697769420757756691539984419542891624069123634924871934882895708685559504633980172839505368446254949880559068034491714394546251614917083482902729084345550140139693825840930387314793669446878476975610321012631346996888442062623626564100161211578198398461664939163173810332973342196840575579051307591934460653160557530954491990415978623375592434680723511314523547556935089816738725573752075936100613614404012268055498034114452313088586003492929886106078704991069752360236285452309300990156709432803695497362336148129877840357243877924078967489206565004156310053855492658951993138321440077173494753129265546390368151807954638480701348739649679492344944587958813727738182432014585660222104127066977761385898849167836523396433099943298502070624623011173692527672154773743198377652332202117693481129017067238098979150559908083456984660917206610535974025082499966445838521985207151857226187468845771218873144994774693135196780439899306072645960063721715950487677727446685840371859319703660875999083523674272702922003081835670201191978878624791785312487759396804181142712796279584937976599943968484411271112406910231597204122350905758548448219451010443745702696426672271980389520681227017522219932577955059728912906941802530015023654864714929346816832027029503008953065550023065891976952639737084670607402206064104777612567286365014656219430208128458358161949176222788171016536587317992346504856267168801313155798107728909443299511734287040659256243824245622235054570510437607227738927676536436709750373076773424670300964384427199144332438347061442794110118833196823905022665678706674638667921217184454043975539179541323191709723297099280944480903252281301862810678920107850004515334665678572143849230246926012595316343356481396703161576613085953289222050393796576218006316782386461468825611460622506812460519404437371696354541505229983551197784572828382700785672878245507873266228137366140486955814128105698086458120959414663131222614103006493056142034933612409322527377168553798127657977407994589462548945229872695886535432713832373884532677353914478829463655907901563469128713980477798324573038403419659757157590762926061036356017557274055222921817445225166161703538914103937740018454642341195308117188716680710539825620061759366245491076209950363990499767262762741003136183951587417369151114450744667459877695123460525664053299631325643100750140207701898670391211707936005346198928522667043439466847663984929836592626719089334796531486361856991408131301014610244320917769405355738193239246316064080378909531343785724133274291215988300396940519399194056123315204924608587434879657117005649353820833508987111500573731106230960427820042006846133314110421990967996809003974136227148829024987581750308191527377947267521309237527747186911716555552856369867139886753231732643973423427185977589969773861067362106299142793681231520220330007496883850285266599498808997553988538088121042223177140890615384771068190769603845728614722157549670469015956964074297720466849328542930148579874934677109308252770816982499884617783100608744035977911652721243732550978147787268313159266059975178250711987227159206638764268552119703205150415497879636051352638552783112455182305120852377926686153064140278340534193326564758530237908892683365704026446688583974255644452370495920800778124708226986200255053051473064912528143002821292547055249325920521839415874505227137083822036964119494245797695953700028224894228344382863453994299882601020742106670045418991611781378549967985180908756643268495450599510406723636517583911341112795518676443824626932497945384698836537983564891139084726505543982703682178018471094870229275932598498534505233444244866698396503692003043498262784804335645520664787772197580188854985249716239438810433470695355730150462615406744792471549991606907419065819403848684553025512420089818157315950853756223473989352642774172072090172051721192490521956858047458254305239427728000002876238282597961172606182280448703473923850945114404213192631948923290843375863882082274533577038841185408396403517254720809662168664053798444231667331544842387042537259630986026881434593696922746449724555440284651176038319052839400581421144006626984454553040157768070457317152069854214672668476096154060849332885612381940935493082948332074430355194482872881617348354711479327225020883609305860851773264750658882197870366981306007438515358751421549522958406051172749530299918979778191171644190188517165019135133076142434133742320011309623722841673163657008347346355827773303752972393070695066371878199021795093955724793780498144034958145812497430954656103693735854564903417704398419724280116842794267174450931150502967003822010487492835202006135854358567290285525043609406472055577067369356995995753780162742104096260056484759351087243137602156785300606821784292005958879752818934025051889497415946334395319530628760711894443533096181035215009627200016544505391339914107679022951171259567903052718797517607261004546829356697429433996582955102157485074444392512203007405026622857284994114809609913128951094124241880375341866458905663118234626900319817809038022266495737383414153154586945036736052487764751875891741440318790571421182177917797917714899100983837739629110982382750808492509182704475276187010258747180872108356260538661911304788793852177896464329303667540022870361571961351752900676222143567715056372397144733794993282325164064687912365186443780782171952293097334578314840160464253721209237055856062909972096260692184176441727139896136574878449882053103131094402312331032995303350038743779683018937314122096603179539131297855904546377378254857223200665800633691591677438908996402221306738992701798507283424754966471553110408062089857037729673262663828574445065751777941560885279364023707338514369871341898220747155332181867041014054873902799434444509334298747725873496937722024746446864369340902583507334389425417769073358149566357648790240978237442702882970119078868354783320088051749822285130138968953968877555580416776242361474346514724805235132821679266899879056257963351648126121422756899653509040481838079210725510065373971056866730299884566558531400789563759787292781509592571448488468951037754572661999107683094580803439460527362507820089555198259937112780686018204991375240467984098531180307192351628836838844876844013924853962924116315287380739231320645046955667616255319009251788992307830687735184210600155387976916572525779819578135567904910037835058286210368603583008285441999862599691683365035499569283191834503233796191368695428049067179673167031389341736088914448392872360842235248263189902709496871428057877850122151070014533125185777927804423567194183272184127897061932159003845196579569890344653138128689614066164480511026518981877912080950949616275859485496985329681828483636795490880354201534350632723904222182531413494616570615290798225787600863024183564679765723345219812336051868637422061458791933969963322126907028918381657945442390608919153029055742289225749298373928362615479285627017016311522445910650790859583286709394415244227193579048732825169110234433764304452892748142148474071859358011995569394434420606293596080712018101868332557933906175690381361148774641030134117273750893253639707042628499207154244675011074241736993923221729584108461866637759499968074102857668596044468321216956057032251469415427409749363936998259616929776709132424966276032709655832593328902902860670463178927027140355309123755376053245175333202867943911708327437617885308321616125582633495332246284786468379895652145846534038894821566104273045461108903468164948006424405237210423216794021248562025460094213497703280431697299654369222857443224527413217510237663324932220469395215603493750850332129284639417180804268771668400749251168653478640973864430394609772014935141293172371753429398746524819226877370735302202174064569541243884787757940420608225847498943795625680822291538012440848639005621798401713355138603533563379049955326993331305026571176001345769159572276375140445830419369358745978496002038160379071017072304092128493617774543608689875627624189535889030874700907678109342168772792340620959196016765943751814686871763482807462120938117903424302218570027949076159359504208483069362711812080627680153313000296055553424494466133144094352186734306510310796267927639548052161651478130164869490722710995614509634847074887300934880865939465131100111918394126108080204394982152984051701288565051562313897869941043694882370710804332300902066024468930182728772327876439694294774059201627690617347446185326762209770849309874274511772472732624355895464971351711717759325556341184805895982151070394014027392163935513635032291180390320217711436403574892967835016370519543239533164998611425784924284258562329882321433843434270778281352788244572326554794598096112138832569357937536293439249045013118266636927804474719297774877872862642811069466153252509835856667242117295781303146621305696440237418590868728190259318220949070323794565640147033524837369538446093579066108197678433087893886826808178785464395042031010722191938206128886863846862275865507758859592194417471067915131465981133167367202038731679399577363730024522178295408705340423063583384480470147320325539688120642245013286822059599054634112641033815029895939841105730535423713422581284513223172105708724764576155965623609448737026794121686362068176623279600921671141236066570367616754841034221885354058775277088752443679908103916206853428619483215876480149444444715991951585580069666811585412784799746548376039221932992776038704649748753729718838271534608026824733470677595515603782233932243765530700982677714673871136723763188199357401443730901816148770766306474152579241421024094937659325663829227437654676689469929070459879663770570095243536835518305351717318792780296241281403127779186732060474998372659032803172799777524559049212395861890380639970913419134775679842336711752148784930433841577527459710422213660522818359971671072744071160366833659509384092035006726857137899151621585527157475737254553653749401390559344004591884156363470544523064209650731364138265825296998881049338105858397817802134424130678096336909211209757417541541540028758922419743325717516111720446949183588790487837855467387299459008903446461712693805763451393275634381484165634713645055555736941573999437697511035025147969449826306591297389435727539871289089190824427558967784034767321789733246382748404211253046993745457557384937085031077015338303771236584660235948905455144881974634578983196119110657408011288002208226683150763343343160514024678037018514758081336476285102711482352909875974483982725752798907942063615766408411137420516523090129209389429329673600806214898714316712394992657313097345235444848598676350069924691318452918440829818742313211703810738929618852416074345008320996588050580818680604772397162152586464724955589991405713036680990037415916267997903700397281369201925202764836463273207208102414116134211360470361523713488820300821366415412360972285485363750899536923669519444485417686945548612663113991575511185169008618946233474556165875010342666848486111149179046824751829015483477899194370245055320966489578532974622739756503776648058736943460452359281091356678571019868763500442273535569298885403153600321794034112988621500064436212134620114632545138411196447328778001393900880041055272192053200578130705845794837889614141615017318847998805455104125830837039898518892994716511246901360936196761225371717033181995407711954587213454922787419980028039177026650550275030714568067460663068956581458775422263819228428021489068878472491360782793466584268283918618782393156645615930309455009693688832113795733948490360171843207824515029724825117625843971821631807596203227712329669547703721729799247967207074899755369240199499125694164690423737137505632736561257585350822398380440082166215908514699379009267796489282205670075715056962218109564476980081662554024107064423242841745437889562185344132719534125906975180163736801784640426327204665602749943081956543153089160137350653109099154386008276842382990575162075629452241916014579501557770881325641937425511305310007751684091121004164335864373846027060290797900395030342398701351766007171000037856212827706145828197448553957386864105964059602878013584345424071720856688249842663648994427748563256225840174685395767848808978505203633688464562989418938119664609126799125404343795394885779713985201514324961864799804224606131294723451222505906372006118408598016594588844270701532984300615555592326553951244316721965778586647636554639068597772334356146331397766730364705888092324124519918154079211057878556753524366949486707798519173807467393181861374087356085572335096212605564237271021257169299622943814001291330204881493455579535800793270396934251329808729749179659329513692965560348562752040418777529170133275569311576995691305469399585916942868221947420274970207183213264384448978620519289088321198913963132639582540515359006466453316604194641270280946648621985847362727820340539507963738541597267781802089687582731233668126381636071357585754968108230928054270532215228077117120337151830349638743801477041909893886476157531253579901615419441866444399581304687005825781351871193675769088402027891787972865105843850184022620083092737949430442300873891959341839910211301263325085876045563549700996367349112099207866483139276031979096693043559586295145887894564486324664994885866470477224682961437284993362696528992351635233518984363176277648756348193634958649349400513168815244138237782464355610977207804335508976085457865787594546703606705427814536913997009446603359640819208163358626893731132417593381880280904143677134924517678525053712961939758717504857249541803558687459521517233707716235490580125714748490383663700631412921244111900396988746427120363167994292100856094326292975952632305107842890747215417974217920887023870057654631446805248373052278861993140634902780545358252236732627839030015167385153789177072758482809996479766048312429029680313060813508267070087545058656698826481302303935117051534236761866119101892499524665460680091686657857874126840134524287285964145281126729052620683094366712537132431493684412398263375990383192363787296468402546370342415089228802483351023855584582195679468743399671971933134079648693258806478099861864846997925724343113711859438814623242396893853427379956051829890983637214474501298622664810887105282882329329533852031273394007823174965802567402036251360992612345932507167429917444497629672301100846934585856122707702902931058078306597201167614135995896992377671817226179121346179231838847277769920637145263753350399660081711910188450295915821741076165475660154284656492372974933261312553353204559596950027440831352484940493459738538188030050983382087919104862661498666267945397773196108863271807160467981655143284937707428953135640704702787827248072228586565842294985129102276491898400621267615292719829866712286802589372535524712182384325147522782944405812310564337265767945854280309591606626607854831901045906491914435884543999305249540353906761030829497525947734512184645774943933646881673128844096803036988438142942543239565448529915056655986686358245832205513439660123950829870418338180886163802192860567458628860992939581003445625537007152430554393910938073192090450080192015581678994855696602749126323034580165795583142288548409493296902839150997240366656454006441057199333223319448436717927421587885387892479263637316894595221959098439347768452337146757578566785841771871347288127665248140034208299233467308322202366154907235474037188844082118349327286601575960213552954605011473473474456269065097991664312881481841816601722816875060671320431987072009584977475259370149339826546061889885749378414988360025376301884736230058623905791406722079011602963014420539096719789611996317738646646588872530234846320944534444997444127866519858372413415223000516343981171106895619033807489877524998579659797685347761669069719882423453918821785606252829516132395341463143384969315259079251618309291254569230236433117017148405216688508939298580219125329278650781468647029420021592063662281792199495025976120220205675580859969100113731721476004960155114450241510643673422867926804942967731285362099269192343274503043270674970585337327381225185271420953798128654085374020961295534391448047528141372532076515147293773602297429671917963632145682930650111108913704648175967669901566820857724761430882874764809858284607628262487696076990759494190748399962759874132653628038522639024429214763390548472226069259064068073823760813524599146045295474239734739820136781078590626944084509506378753629479729183424754288804351542686297174647241468343872551953506847164402289538554500265302277254708790069945882821635964274238866068638236879009783906442710616344993826191084979190120078316643593535801224247991490583673014460730235750013031785541702859910372740315558785277035721768409811841638677543870133832076568472652214512511417876243629118095673926189941971670264329747712787776754822450396186961085969370855155618138670680649874268418663194793488750073468461510201839757171933035624236449964462964006858495675303105756840710663785563150735697761303947944969267796806635434124725178835506627457392974401831405508634007830702048873124540281966048487790480568217571186947088704333631935986688019387883637447443265301673050586245992498586533405352545379095081333542380242285438316105726187514733170533944767983496798162781081335286297831087907677409662637792571674762695845547424826454077187284377927309861020288937026962085314148129865005918911133994406570257869633111489387333960713660350432684140605744232624467144742127212895533638714369142109191589180293510430190563358758311941084313270885194701509637412210624944233622331667800460938598154514562555410717738515899496525740808287120307544741263999483038872885429271768113544655657560286756137350967328972677459104100103118645954900310887646768184410065606710316450271130543119978309322718579075934708242789287597821000745490953971330994946686866259048094968146945965332359034210379400800110891187275773726735278875557556201061308734890781498153987900870404747530320089297412551538439061051039420522687200458752200743237864811784877031602087854392739187742130722696327312684139531770798231816096641409848113905441254558772248169780370584269042937269082378800993306573998593191541993982511043205623208107108217295840278626371670197903003093542607076159592426819739551731112702076042335136787522560173918292511572204793163175821146682961236113568722383084283409056793604048860477720611467973638679422322973679858819372115039128986840389272118017180895977005823261538705366048420394447945241409341156326423497630388351722968733794302606412342196707846110816154364586982077035255625653517832824169035468199010070311944856711017187708856494089945159143566108789127367176061407985367792169519128887772528914755462101958808156776960146794338977299382093414643375904532137546327738824939669507410232906580977577470311567865271010418498080753706784608884920306566918920457966756986564743239350274674147696517269006440799319028762239864793196831003326277902410195978297486418110165800700637744104360994337169613636252672849784749697309714349455380233341912794954550953107649480058107800189805117109296758006980372699732340305360014226474047390876194088936604611354307569933965412215933925064952095403530242348905171820351692828612226462645767191682288549134494831545423498431336237208558982992222457376345707564779233948025438501401907084699150103424724424584835105421277164759366471507899983761716813252125078477833090975965457747541617136872189304281254346364180177193759348271223253059308748406759249175259440610460179112527603482821805998641252804898008970906349188314541077943577140893705582095877024746846587986050056712187561627211121985924343299899191198741751460978348329503581316243226001082164554987870036432974611777134118613233316999375148182868825247951114429706941921219477633581317744321617122933024729534603168493394196778178693031275021313197460557811294915093829009913630604161163683898564349886714079116081928900102215303673910017138547602962180026542110682077617037531275111032009421441272580038081553817716245841518310407411014508771177569209119727645147185718869795013000119729769767786389718946365869307065018002197212525189666928605988195881138170835564650349390836421282522495758138230707329772056706555555638782477003719005019414943011044671720796079301477213523942440517162051040450265218309238662765611317278293476790090221836906056657112078041955650253240905326540727456343966180045168577370371391255914137434466299121520080984720646210456496603889278059658091665424233088502851453279241295503706473955711606822896306858414927197840529156281064968715844033772643312260310248879251297205089735740188584428835975216319023400217149645190332023831666108929799521862608034162009131803264235672781885416970526537308458955048969347866938206692357128406218739639202457868647935296615135723450157396328228881410845718860214204464746401388432381782826604365047595709544076193010552241086847611595430172660531114414725717323108204187661494988307940831735683072532003434774826173834345628137861163869853006655255552786480084344653065880055563207361132210502800151107914160689576023729331533910163851785867798788682745693700861115925069015639420096922605960685013304318862469487698178114176911829130410138755478749229607598202091215278708107239425246738747982759891188586137064230153616426875233083740184112691122593603148670731708193615245923787015830810396925944980106599548865309533496455082715614049770407395980908020911281996660063401419022495659969412475458592354311598355280029855914525119670334648805010488078429103737420623046262708147265723495690601830166141552791488079819772894521696576582365556257362901903304810346527338016717582798557458031438958370720098644335116992806875416531632394921074812369356645349357841787356435635304872464506016394081381529164078675930262012921419495867988506397612983912899427004021260284089607577553965790675949352182829889279782688881938350353821516463566997757511998490807397538841711157194111153626717558332314309307248214523699903932976193692546435865260048799652290864943126853809722984507755466345753767866870000093185400028487732078294150505915898880924865426133061335518263247836687189850778911179985921923453036023757707589560629158392480669215507590365131722275400182981611329470862201998996681804172575061885013764667883297840337732915458289435836832813394056540466593701906958928180941471398932034543228721134607706479872788277225712619450253598370960949602824766307580060953289967968562522485727257684518362932259389014013537280834027536355435723353225233361848629031337956729096553791060157720246373510377364612503354801322179631487718227236554374585126229086792001926061854928907439091381385588649334354376423257901988097267542541690923707168662372005032504207910565452322871747581456015156041587135406857734461524195085756491773367863085116792742494052313516704503665852396566661918468594483096786919470717948761430547300874001490594743809452267248110738577721224396843471679542882135845743716396990004101881781591574464001500230475310760227498622115531153275956143044772733977300227396494139711524131994180803599346460127900750785094325144568124881785289842180960207223171357046086572975473694989449192516425878667147470126186898433842371775835894472966628121766005573980567416571087384719754452820732715294317799132649536471194547885185401795116429631823693699852884952838369846249796736298411094804518221213156646598178033436529877054145602034457095146099623587886088953683961379946265758359342516678966859261052733845721308720620383492392564256924828521135212586171029870582797767257860442281437087139122008761389222975054373884170002434861598637370621298275025194015378374846107220286744943546692647787602051900411437355249721199961350156355957158834152372803380641918507215577814827960483119190194314419309989379800633497856102005486750511412066093189480741381151476858544829223224738559920387991782139993928453540997177431514543861716132939671629765460085693561346375790406136695474094042942287343145129520015554844996389337667451831191447559847016722419077396998094668611087003745171414042070798693834204972457918556103361885884213331848728729856968967267535381724070709108585768530084100336122010520739538915881617295136008703018885776529474271957567115082959998663166650928267269729027658193285571553552890679969534995690889836294778708947795235985931396693957734394665460808972284666164539268607656450302487504535255640020030919850638584166371217572684718387670596486968211886463049103976807481994619210319112374919919968701107889473882505520373998793837517821836699639815509833795602204230555563953053764027715791108471046740461809005184062095726570661999723149624445648467653396364869314465483320056524389185039661770018988238256688347135700786832612613022307025638566993127067695741877438597958485818294552795119583312928221195485023977877919041626654917058167434581404909657869659822730656040379942598132269676502019960992336388511735301948929180615764354775271967494354292498177879639693990541923201300093858010355980497163524569187631994613872360770173841122669036583233186790916377831641767911548665281092356928230451948449638610720086594378995469866235827894465322264086503230408144291069969502303166782617335973585749783384695249757025546301156312416403798553051045354774241677459729324652102713820197538365688035259764473509703286367910695924429402374244862175968647488644206866769716880464059114992725775723386239517184162481123519425311476970524110392567926894446946903468748504047109248698708238666805340040766570708285093841530427230043524409036616236421194637674101202218284036242247730036345025952635834064540775048774418783335757288061823390167037905181282153010383561042168761858982593110040363148194369897907702360310528200534477661617365543058972789813583920813522841479203967203914220590071056616564639861855107163579650486127734251999784904912515554530511783434361308776902251909131569853670241859968813761861477155182645973964906082810092640934943402210356842871212428523969361491733886252763819522548751131951818194111245718323801353986125023303390055722395822660297045406395687179239039548372138056304954308730019150038305824727023146463556578557413486373085640871682879449213439588770562193890359327496313335139584704133969157020383929461996936606122158546051543095639140178219327700424352598802947553759726317367320535353340941102947977752131927899847560779471429136159472924516245456405434364436715396943793641447218754450457453805214014850823929926391508408073432589765236537935173250088400853599749422216526435499738436091033379563314110859485137414850864509316092292132679850132658812195880337463671188856020208418582929957392674196501614472867639780445813592955706032451873450617501605634678894011371320502909632390402532200984106005412073970784707108963577163046335474731796464443057248806643791427348578981558107273134690716846461119948930273649346040141695403014984511894046385222325380978888346412512152383450872030941921186428614264855401444664416878103303609758960702871549408495696127865559104068271026091042226117790851080290833178779763876414403501027748502148311661614880204888228573781283618134541477294538350087492560812428276611686358003643358125278027367479512383898520111078625760116552971827513729817676725073710471870273524502122160789490049722086997658077225543560147295564142642459041676765575718645407219176963892009768112717864784065583681874991213950388210961784358007262983074515682230623823632789444420428405610781512512229299355622317942135699305206653942969534968193591956370462405567274539338078867092140411301070778485443517638529661642350271042667285721398667010085379253699058275842296696944233332188194903706235989780466010980374756033471052267919379142376751911734527102502775035642522608823054692047685520182628478354911990303413142534658471762239430507119653195689876465459136395033527355907858589352159037171581349204281551668316984597185431583739417437136035579226310824090026369784596207540707502062427734884694791098014017178929374865579256482384877116285858152315324102748206473499466393243359077353099875865802821221425912966481421161258495544492572272711620002761353362612495813570765177165662099072030582909653245276912746981236668679780605195392166345565627618199695791189005162036087714583851731806072505111526837683707332019771743363927296346643159775703916547425284042015601901503920210518255063544249521839014196098052023993366398078145726762453717354899101528981385119112337885454598620365130150839559432513763267510096208501330015583739792537269286466373829008194100077495241869208030959695118455812967256358021219726136365266797402212953734222082362814522929826562218480283248248822431933437132062282771644245651845833291198444482883505477138338937662844132937103021073351471929558710591922621366746296742428580409419598814079053489688826849534934896449515887313786716198096075706432079408467146005171003900979260995634910061139360006566043815316023542713609108293356171933806875222659779618807693692007275612759916321158653947646198088518557090592332982727415540244693226865455626468230434894602021783593897452021012466782382707855806886236220461314749205099991607977764531495767815565751446785599780544012469358906156447935380495799416957022909724010700613821703945395536982966162949294807742178639206812571594680422502567219621219293162585422773306438644612625196726983952739798477118339986884119654589035231380524193572921204790071850500693627938866414872875433231853951021796677162152752110223890418137739856511636094782384620926259082947436838968744322516606906987240555330626471111945417037222647661871960492042331689009819123217921676437468217409295919673636478975414905729280501358148559362597096938949591557674952506906663450541384496757359997287886088246259370895748406726450669883554171247624196924036276056593489265204315823926711311441669675224503196967957942989038338361593242926841381460562356191206583750690413872368507553145208244871869918347017234310956477550786301535858060200043625464252673542032249964983585496847174351696121279596670571017970186808187303111837434964769980818130017232753368443583150208876446532529225783961903499881757254512290832031913257846612795622064057777055411211220635498124268542028472301407594640460901820428910877760020140627024584016006685935984817600704007404599809236338779580347201360399328664902094058288482016449602779478847749514126901349487100357687124058298491689654086375230329099797135162770701679288791145990340187812567741974321245584279694432226576670187559048106457159138858850303156548867375546328306770241156782754667459087062321607095019670300915391113777530283440371023242626999544817655706812386795574655498818080310548593458236095092956771656561605012366589934266127481475784124585150157393649245738606794561583367648614228789466022137623668680955820107981162750524124945822001931703335858140830258598234482064362106136501302984818511951590662819039932602174832277769685210500843207984702125943670272098161235252839243901779296934472163863558309690059074959228747213438314004130173180674244624933414907445285656185792598787970815085214986287399838526832709074987414036508391688924055481536176154747038975906583644510418560701179490329495036268524051991103845639222792853424933670062588642790016060596280278777232082435414376449192876375027750413893539521983808491109817823988907873603228202132592146002687581255835735671848817754464831554310960078377786389845779354070823057744068446415288112078884930741180126580824757960733491767989021420701613292157826827043603583691596484562175374799603323295595102279242704212934581614454364078708333143718635720267511360123365828044356253819630333849817311273176029437785429897610865179804427978902399389672605666110636231462062420285292651120845943657853554202988616844821161066661260763212512472878338421360084742183190628616147097613578129971782177770570300489904322365788604289395977163856875275903361847453194432643321539057035245485621005351833395154879188164065799968057352688143500334733057479643051103944401002758358328242166784699976123131658611705530929212590215936499340796069884631385626395503280688724965511885439571682048498236539102435921623670825325103894136081991470449062809797024233689154393703155343342601123548001677200651166568870851464947902060112006348136706547336998031729507346961596874755648185060140227899063597741050147483216932710696276792876278985349181516084427201815059296994318859150983438786587739880223163799395831328707915448181796738825399795547592702585829137939864964088105899975592793536507687506440894885778039303566870631069281249313908356791576518376574381997386942793596411637379802827844155334204703832137994173087018321849934349764531738583280890501891652945184281679865564671238381197875306293701264311831516829641609398271988641505381087535519359145964721109866818212097789321532009388831802252779488961170553542134180031279934295448691587541578988034187150980516290557302837683900249643496881721411093854739577474999973525667741981951944511467525476745353116864857380425698442881873475669231732054849774712612370274072508016303074339891412492210071027046166513603579940362933046848694583158405754240420736066980681773746065109053866317518983323249842922431254179766955011975896049377193331478486514980800426478966675961568194561663206019831136617470392315087610206865077742945159428935951055161322310372677741499933277754817658892202492294097654570724167891709181768187608585913533094585511150041822213767907268838272307908424150345120886549036593195804085517158079651513168654471353925571322596260630874890437492281723178041057250148867533613362759738707659180335557555617106265627247953613306735849532173970099519939255425788701804969602853328597019178735626692656566790621133471265291486462087127878195395765088094627516099133404584136706849543603141345083057851319664598630255612632063418577704914077297792382174706561807204857292151849193049115584466109531348042363089969872002530956355938085351461878400908983711690461594313127836137799012886122392410336670777811851727701142590374106242221935917199709739914112067559447087149096417778614765662247865293703036619216676243106091273014950295263493736235829690938565173049826616062148676569948826437126455654377641808259488869684860319917192269056414147931888649212578780118777066211285987522577139901768306727984012104606205873885170296304015179172304277126193961597406237407017057348802456270041965634961255387681710571606008005330981414533755303200921567925104739018131844495651454629065583546144356335062543761894646063470393339165639745293799472970516093305820956234626160969374007109539162372435763585513115057648979470420547263290708630833770197229207899759041058382982178336395335501992012466205242084060895847885409942577459594434005648736820457031434250886391869836503172214083984414715902321143470753702122780686347596453711942839144830855359241391590717629535471506163609582828056901940455552873212126830955777860253945621180517385300877278479259563110148552411776686275719948025008667510706783449076063747632640245046340277049055418606484475041462786648663732481058285454039518006596129044647676689469065084147895380478520957626524787173502430391226464329051264634798206432935182342407598870738802721384875618322400901853466241968498096963606611867381514586235741861631851217578487135819994541903476870436791895479459633402209021198075618058442883808994091226221865680038327719330893938071529294506249226270931428857415637651936954923545496068570475669370651522068064400644956264071611604691965830784436870773064415331755598602030529356670272118797436334140473308134746771342379143095194542377511599663663424597889769330759975043909493266386590727906875005718963415149096402939091702791241257275218432942086783999011471621097062842320208464827045786674599161118789641109765568339919496082536211138765114468385102683413888694205985281933354640303656782982846100679683376511214792419249176588366952294552147080758113836235056638544351143669961319855130263671480237327344566928077668496836091905960034792510768463807868466374146895726346863825893671578892611681856452972636416967498136271489795581950133003279447743064243763662759948064350236299580473191657615058682126932843669625303677174376395770980683736620702353448620800188197267789634840498063827204290263653087157374069427776930328566116175595248070551396928326512652333855906169455661625759939306725102402575441497050034468114973741088299699963719997078249221631932604986156860679983292726187425773217485678042135515841467024200510202074786053906688161967478737904620476177954359793411506648675884305319964961459274202458035680216409068272270385515549671944988096954254878395088822999808124130517487035670352312070211999566259900016069075151406578582331261605953063584808656278936272409096762400648185595422771341290459094573329134654322070158912929523790607703999949779690888477988781093077511386162967971143992260455236670096628384471520137676655015497870356042739464346941846241587403753024293718898905455648758542430203151429328746558869999890607648264810508619533351057738751917644738045624515192979367295886323508829172922525744639270869672641586922399869834128336716517191261934955750807202952439731510830161924571277982289742616949099498255677695301359255745211695225855850228471787195920064029077459486080648431570268488237517540719991529309756662722629692436728495466081157645507847952490266356634872654602317464809923919679736690259613917615373354411894678646349155862413357779261099408842017915514501977165954416997761884793375471203273004045734684404482055707967853104326748853163403128330628155823633139966493337862309850144308566826835164688130199614067852858444945253553346275953288203568617418190496443440988537469198167889885871780872270966840894011216803367130299951936614955984138744678881002450637446461755620761705986419294895361678919082536941780010955101452611184524164783291372100401683720954578558617653586947655211096331038743503608624870294390654298969400941953683856514596515251983185023184571222103620065756005562691445779397637302835777814492414957223928803194144533553007852492842171819446688461401204598401801151854005761076644510038921797775356417279185770450039072508671294618536352826239989938502723207210457016515510736298875756761106856023329608715817309103316392085918958656871478757663431955091434305154974454890413708787780708494535780564220283010194482000642136754583717784439850862763189868230374314612983644666258117753991374838211848824325633439914190451739325911149522433969900710716834762006474214348620320581014267912960495613814955997505017054277548168434681003088943302929049747462634612261178288867074670911083095867616207987315365610598083488461256521592126462961147212196871872216733172656380100921162993971591179008771386328169439984449251029216735802499076643650699622857498760649570578926977446496973148360961883300380930471688177736074506060684566153703762720376729770128763174724527583163401379084074757417968373315871196336655388147710241024966224538624012153041041011279826814217604567529313543571609837594638204648662127608423500618560732885455113010543727463568369331720478954362406737278176942621103318152100587071178132009189186681448077456786129230036155987233096425247021997214065432749080376461689341362522179218285043424552470784200817487695487626842961513924934208172326041285366202686313468766505090656852736143260360934915072330973922993340353468164144910853918867298738908107922156496751408186844878550424013858761728519371812625737417622984516996251337923796100516920040912715090741517714394275150170989146822255502347740876772156430126686689113766194311771314520583225280098631444145316797263382288901668912103499517461360937373438263742788175742477248691699955807563811788239215031055982280983172995798723285052067562298692568565165944967906549174590940731592673426196234552010878962135124112219628033197772200996173118478175599467439313990507239357153796137412924337984033428525280420293780138539940903785174582947141119224640739185414380101322912302208756275117250090832449702055662780861379668405385955029653239916693244698492372942313993139494280406204093880082217009587572342257094237793686774918049438609192127288527913201497975485331007965744398785175451057882164346984177926174169978573649736581968542810283755665708654335803134079155348149931273007668931170121755712481689218952979065703408325512075331248412694315989326194773604123957161970314526286963587030652402362827859419946303255356359345460923250181352204461741604566164650896969216804877324448419126421864650257082791754219588730168375548805787681042454864665433491901191941078123313288326270500817770228403681857755409044252519562593671985560097079347275247955506769524962784066985995852952549243509295393971202141883271331632997206018204685570750714923106595444475495894788626570465398742496346817067185328770585517390414882778599145287464809150737924423984404001152986050288346663994681112995858790534406786658354191053157025981955118086412515345619231817982630059664615625664163902264445307839950587259298412450375353809216271610413770835774742543483187421117841299939771093022869333312571825824341780186830710326490457946373511081220232327827594571835513971554474670128282143603303781163215655483632487547157937526408325528361038355158926629768177605754017622564222177845667859766603651416240104867132243773818170974891535167822526498663940149212753656320312076988925956608339913120795445499671266598896920574435050267859001604431313043061103072458444934289453367447395694914683247142160154303213001598693686216481884604684479746994537140273561601266108804320744947832418709287609516623113240306637804925016432320067600178810982488003986249911663198265011423989639893019073464839683567976367208160899870181584497333837780100054060809774111939871678970989093964692081192690189475141762256368866059394442181463319225734217558037706423022685968551417166442374684845495043020454618196408851036297953050764220693858230890014551717488853078246139010495150446102581708932390689005574519477927402778805837280857907069479908007357506483860114787184327019094896207418735975353358765041869335097998480398058236416575957499367817023726945946750762663501011826511537264960010969028383061889907748435863649440362972535866981034761340493850006964393308369336879714071805194066051396041321209156751884316369675757132638858271646785602300373932293845802488904129524543531610005527240652715759574422461232129081423823453894877643816341399070841969760282876340633189890845474877497954290496690377621982151102725033904669305121348254144671749621647551040558869751805240419133967359839957662949722116743790320956157068714206736136416259801691543677711693151256200293397537032299481375593828106071546876345158715564499292243460046437412189402598746551036164733129144822140686094977122789397871610550850117107108292646950084114975809401047978794287367530180264395427969306562722277874883671926135965776653534068567130125634354444571129999043445214419154357433036554437019122528384576376946779222317628422341484803756865596469351493726362867259518161867374414965336275831133191351296940444994917961270392379701739645929413011809929610555445498783137503990193102440612094408600415801603227640228700209179467930225734486209802653287490921466426978286362802996285614292600409056323854023777389141821888555358211285173932988606564357027232275908078819487389079440259424456993303661622885468651145502933270937934786158416883713086670956589248040811215846976428226407082610848338738500845735862560114396029283343863114333465940568689628344058105785437011414226297214665956076161126001270933839555868107922636603126294685589399701977617082595942918359508635402674691913285652165219464288613378200618285127114950141325955305426798071301488591466514223128136873525329594610875699954477378103833248285496427728395152697643119367693435261968454705314506185644085243724546790184875919095094479018842134461927770448137974339797574441838297986826331243191533074765435215973689823650775228375019738903300505251759821461035908494389668340216674441140595398732496447267437886745476482145477793296765529902463693757703966158650007927919307971182039861181016175038848130569365200765120516378113390773943442611830993950863213906941975570835463895201538844135028325751518970378007435148273475880424976882729447284219250899112819211743344515751224914097029093852701457722521193582249948577649306285977298617308945745803842252679515339168249835217146525820080540287520181414707458486704133382647638192040522091151664452232998143282202944343441339976202880670637067458795386480014683066986207690445727177672110579896792802990775469661300867181970917196468437305939357303987293602095093766781249079714353276619466690715124430869904440181572392879352831090807791175358332093369817238008527855813516219348371298756971125378219679225814892824397810075614963350139633021737399928697823384635590827488025726292132035986102373180769247102673408658239855374780434009247435154359636044967849794071167255055873784055046204183136648545438115008248694451023093372681169800069390704718098368251400801612000191521878626880186064023155484647693522561552674688284131717997300087010548693763297271415624399952782645162440679285884575460171628562976548820038282690361633517712725177145973259690077977618796158598655675598088590932032416356877980948544550318592734477051322266046559061645000915124966993316335479128097848687542483716567194358828446224419517420727359955054681335200825673964257128008722006210788680231665845281147144334423999225911895360788356491009939267014232913179993362429936589952833923430255192922439138282591523063210838537619127232998900107381159444029762412257428014900103152686217441435667363269250290630923924461097061954812876759177023481777890877551054288231540864544980282055926809528716763034748100137806641000391936677105038286624358419733385983534890526238815709482403180445139595220952637607768951255888006546273447804815008172016026279338136902352518335604478181826194213543376110037823220815339703168190524848120503451111858988174744131319833475232857936395753337217327201220761685897875957891150497168835871537614339299161363702846824603961325095252070951482273765208694879120696257488665575263182233684414452692539498216744501956718293314637287542353580872847028778538009607337157896125290333534747918565366023474744072879135619992307114528467981670103609715594636333466696750250401932901223949478167807064827925235402196162462880668420605618905161330223512083527917941761741165556152721206790043570339156188971254403228588645174131731902811866435616427284360650050025455832549237714829267799678000470083194809740547088464201385223662971898796083565514918108115429605980138584915026402636437785016394274611070215022462214723795745004101877207972537845531426226785348909369570964761864321513643629314776766535460464599928975958490593371736006514410300378270980639767831530035039688635973109292687784618996250402011989022696576229174212405782092304020510337339318714069204905036354757740174153531087909627660872134026389620518460078315522913644270588456022676227970605497128050163855153654240279594842167695051012649886861278912188876113699666428184151819664039705253274189526234962830501465569205387173239534205179790600765677263191570367726609215201626981358623855792162984957957418202643318494299026377106047445917909268598545313618605007472732200015916158489158579676051327647279170545209241773655415399041092159537377054032754973776359088941688997068932754178156742347654215455392946917359960997019320395573216217587377808434629150034671608224570410153304504006922721678226354609203671699838177925771108795069855290038926958210242230786183803057420125902330562203138577558420377609229980665575870148274069697125867997335915738376949024073785596008659170946191908290512214948612936342500652813600122848177862700969170577508099228968760886542322064261751045809742202019424053988568332531430645463875411134888590191627469482603461798463169583787698817470405505712904188202384336770987195752744440210609819400135565308893244676504964165472000805616827785423308708742464136536814287554349234959933303375567441143634320910580440952760848799126879603980783013157381562216075299546657872558069668833270302277245277421616817721216000425327432828577597935833147176237552435627063201163474556453549198883406191703855603158024683970786152850562421410390294701299543294695232322378264827788365237769870366221269562962033332858363759396341555962437984796268915081774913699718411874060480542354195119370973915878451321085808633455223655445638276421967807122825385320626729877472821588361094967140662383405451046336072125283554690898111212296024801355750334173401882469081883100302613916715227712420254771626973492583774080195616095527158905688611370207395425073881749965143719669819618022545263653775835582969809064924122508576764922228985309016387876683354764133893509764629115132111648800367823694546998033701170657104539351864249235056847996352354762244063676978350064377904992524959659833369500346524550169727543963676495318765098835950823774475551056785294999245117804752563890914457819592621057935723378553454583697989251607975452430525197257552825073821406248700542996124371089915626884636405839652117743160080761808008768468254653390934514925238761770158493458019486701316482800390981560898747608618033265223187781280157507954245633767335040586528678358669739579017884658151236812190398759211980864951021751168711420114562688267083091608289092433146596157172640571278071642031031916904909006871253958430780083539594128680921054006998116710252568717921895442717787480675132714130741191646057305514651616913515375092986139792172678383705832631237065758233297866204751025543471186976362598824775480524502738109921756784388673533654842249174062654852967468262786124325789834065650756160389999991789813540435066685336713379040890928401844890343546497181239434069239410775063802219705686955805697564048701712468558242096721428396372724911257406549099413786149183649848159027537149338920760651525341684259042896115203006463535110817045073161277953969067652368033841711186277288973869567893395874908573675586134240761636928478586604660857594467410915598074776794764268187688433559619470600582699465554542042587001852712951075803965559098643686184729067753368995586804881042367528946323782276541216730155657949767889950625989987870226468340058415600795372953433604967137831523493035766074247588973137717129726608957904067394025101019797629408306584597555353804138531228919377094571469759270958259733659002016097073804949757388873098799396580748212107291360099141282941993590006301589623038862347512385842832373289127531264603325911171935473720559746305493696050412537944260048864969792100539656100504249199883321123705227803773176746924893427575976614550588464124947281248441929623745786612441976030565867341221146440644577585221771668914159923664590389891846519918982142252188301029283448228004902600567256176090418778196958310849674130888763806717838853561585652345126168007941563522163578766318313101347772326608530303422284136714354090849197738130713169505457487199997756324202924743796484483687577620879843514146098804071993635691532445406157968541328649458952270044819327020840852999564378395631230136257582769804895638332996483872302615938407616370184251642586936696542144550767444422416058890469202724157076275702749566158102191241714331877039470177440681983223524500599624046554175506864667082437048497433394835448360775979508602308531478034710259884766816113097669782333540835790421822707834194585108482429853431793265792737799604825462618045105898690647087641370382282134314694012904145730229285428935288855138507947925755717854689402980270120737188462928799547982825124038637295616089319879109654364855052393304696635217789206375633248815194905948691127198391392899489417883518868096202885430008655487409109526371700513424671796943869983701846253825760195691667275812780387334137607576802423755418873806595555923301493361514281835548816477512910067421664723991070302623233110586465782295660841451582090896947653603065998081785420366750353358935601934186303417454010812409071317607422141368949664594213952455726243463565107929117132127143499882672166390675179484729583820806642959296633806440321782251873914704143853615774313834144267804668232097009476195324630688551416919411252660862088633149299041890935027666953887170568834201945874990240229422010580958572382738326922398637218568670044718886960315530911595234374735941878999214054365402375764242394343817898965646534437708186349994719015155987430809264156719870678798183190837712624279267831723736747015830988231386856541881854660612189033659251710945860319669207231536558320930517042692820879301363211076372991623471226396921726301470477852454602206490000585930072938369339207852856221073397488435748457789097656009041542690438535946619977202092267756333405753600325372498632400374481487298082196357530182870376780533870617243145261525668789995747220463606214992029424953741871613279615459227520252098083116098658287776464051329241334257823097471429440594610579826960965950116423102680002858034827969521142976518556127568457446495406432304593026186064345091214354070139294550756396839855254457736809307800304566454212186389275903195436499110404492591324566170964277435261623647798516824801101706391116287112719631852823373259597133988791978606252212409537489238308776283006323960428936910961721341646217584677948766101351083313405591578016668773196688555664252768930999758937334425010599565571264108843378251674807934124733576930309839057814493768475010973942074581618517864755496230492931941203295092570597641406095948620632993312916316094462701993622502882716474747423981901933894906709273057521953703061065576508932793150717204068259045454338459936672163672907974891390571793710682238560562433943920304692431241841928403358262400610174464684766342716476612792427291458715547015965197841597157426521048337805000551425586452418067574374853701818787257043086830020228077653691872816601362319425984590341104527353070641041857455714857303422711483661120117997201114783665403240307368641514630505577126582978585042873595988697195401574845224364274177319438507803752987958034570177219465285802157560069872392624496489964551439592299124244631545043589542261192108529423561304094350725959927466226632045516986454515640367403277617419826411764576140365901091722509829922756128031385028309217244294651619663733278882201851790142881845525868376815667764418463217091286024419235970733057209705857322630897633330272924035672567572006360683816619413344583177313235986586991022537782050997450775214028486867392324206987204508075142758441027597383501096413750760189431018515002169976278245028718278812626525258834150547193304299729915809348104708357763396753445868933656367575777527592880195905003960803347578557720074561224298916791144686315182008672611412885859644630447642697102798088526964723481609520823215490609980602768785860125365267233885052857331698068630543505665558145841067656480728418664377418179764600573905054187020174414348432951454109519065248591486177994427319419433512228106582114602426833816701087854049215586522561755231833064327380577516208788175882289351113007932599672475531822524110356066935987450053105803054383152222079914600625282503234162743477506375991209851757289235586197603149430088269552795415408132317872515405416575768945009908439455234505777179543673932847270147603685698074273083649053861472694001376525109571709617896167524731524921769690558069614879305459091628176130051856653518952468071080545768258721109724188863322806045550827063192921633003228592403770423035352450434632667209285242695432167534583688543856386328142016798300561973425311100770149445556562423829916288910147090538646522500362306606852034996174583035479034033273019575901267339915715670927267557995735498993841461397642003199194496952836108563627113528507170726471764240690841222216706058424810903052412208962924588657590624320481845160377223451144290176131229244562128933072287981933503713541413331683860680345766092754783089234366004955852114991167529783787803532793406028671366594086966772189488707390343662667569317782626688260199107681054866432313973957264844548464169453175706984057568486190469717324397197312672767411324684061207689793169677484424094246050564587827442359835642307932876925770820615643473967215622231262443036205650610902986031685557328565848248508346818918202141646058869559353140453288568770830446803886969156570195965086681363883847375839593805413488880365439108063523366420059953090403819187585281691148554368469262766443893406867848139892300021494396935619933330697783606238523659533810638302889483127272421672005719399883227929983819753733712867744877700399872995909917351240929881546666240507639306631926011229965005081624939066089011904789141341662909897534076483121268878590998675358731470566292722484191054457319479176485899806992994530213370034357551010032134720146459808461440667073392835002583028289080353810101957566958594283149692622079341265600676421101272523481992574785987129489158381894625967743277622229459477937376347924846611205963464366431639306771327737118325428897347913398469519862869938093691920209198109655769724637911543356278771722850004693541892495117672586451990568415223972928211490196087919530606474323132368662579078102335381580901639734044226339494696252404406704253654527738949643590081389788752524622511291715547144484993691026075176706512877206417109996234603933619119633563027800712774321579843097842268731715375216264000058859798035779156913650511207898852840630149302774059323395288809036405506614177009948723047530847257319256233240412551150136306460501742933883441500806101751481358199217613979205632665583086259010469602760856667100516435556958082407774025240268486778598538771297763136915113536301934929301917933644803811004725319776671231995635926023245995530497115124521233770785524060100856318939944150491452901282674100289235861673452641398759858415869801029520374360620054093415765172014908228298111186848289269002548670066120716971475906327211420690898717215101164398293476775579297953684194444688101273260077427472288668446048489978794630728909824381705759534479563342522882732830066887054473119360991403422820473296324627689653313443736058972424380341976907532136389709629448549264369385927088524068991060352059349858666295383835900538988360217705943299438654085305714986778854233767204448070538987823961189566056794292651903038037840232626936419820893629073449411463933634260856758617971382504011539329478250462717396766839968386429601626824976985648224992063959956563735000142133738937253967460126787240879315450181501218107658255744081686636143035144996735611085773859761988965765953310897739207684974098519526063469082657135718552878126020747677138641159216650532005339364331670241478714034660168791357683191857121246413347684036772828555533095359823183701932561028699622156444777528602044113586797807578824588269147413914952765858307528164472530021860067821343660224695510873795424030142432881968275843616882155389849365246150254790625021093803553475764594861808641708739871736893543945859523726754567087325256722089725054319798778241961167253765216767456075987962976622658163515108894160334881191004672372351440015360582692151049729505364718816888639536964387010545668213015298120583685396439993314745763132474818974299935406047517108794393294505651524912682585730261971942142508725615665127564657969227671415757297494436997723271404412901063710335437893323729302545715099880819863755300720583264116345577359796061269043375953011334735521414873082283152445989929670016972274991560572262350762481812181784010002743256801713631477485807188432101882214286038607260701954214713727186235612152627327116472227785741236832834184680343663600879430042978645128037568825913592653925209714910942952266935180526816682218710505025213418626228820265232770277687911393539711151663414134089088589414115576841620319752807996224448819453525146229101869875082218988736716171953928897550430710399318967341636890773203419344485219526095705106877491144665087909491712413516715321290575529069995129968142606446861323595429774259590439043215151035840324370371774442853941015867969041946871248007024964784203791233014111994334395999742144592127004408646313990328575931611748325060600051935462332260026938112656525364916467473148507038355571767553503953268363006644611529320019750629847557900888002779319288129411442776242218288567410368270085733487933267010481545794973291520150578288383828801439703139879104765106339200157495995291267980486377448193718966066887485010735270604803925889053292237449765891169694269909776353114724885064835103674321564470823371122701370572467331411144781344347601299123941848781289356274269136213516168687199678553490396793173336478051901747521243692831673462066851197252717294489215472058193837833127203913271163613139356434299959887385162465881790343853215420879687741786387742105061269560454954203521231737681103565591269591784321469367932073966632547058566958731140124448102524632870165982242713152373244388899079712257189339258282151277119997766910200905176145184776566330020111350526250929735075499205115060561779517976519766472344008643853806833432295777987051422834739502798161499558118523226237430092105053517215679735381734822685681162774212566998632345189704072248178906230476665933179785058749827221867590752338281474766387219291583695768532178704745897609750875812305005377998316721998738676048942794226163505804820290925313755715414897995759095633405168650404289703223847496704218090078901194482066307707521516619989868001871252210590305682589661416797490628987547018296279036658296751700485098165697678571942010576602320940279077570068263467545282643897329162079446156566742476522824381064217480493483535605388139976534071211904878250758846071393766126686719387273050212936973983256074315039764935585822394360877665773128922944053203491582943244318504143640471321920723357928890394279676258111625119674438368829946296851798894160288851053539138541318874040979475312311900615792640810877831874679261435210913301897171625385510615485310967689660579460822150513010625253080052180708957925504927681187445616067125236440237726220831217847053267418930517786766948555172449096181313921202848368727364837224123412640356409046633574520766854483159274570909369858499294175560207301957209490980828707908441232559837001635485955149731808596758559170050856881498952471628248659770484183125489142768981358883764457203468073000728853925770295519123280911278193888649373570452050295187878007071049345054693489162325260439389195075157145856662468786178744710010400215279851903050568722166344128466936757519647522091237712119546933828971382223296544406739732517799398066580664536779288754723799846015550263909328616858283005855983455320393185222260267843592457589400405590230011692630348333985816284045504152487774013226313790791052872826416800613104366796111850186853381713910014659208319937623351891731597909171369383784058048702730619742320590214447275727245351420031983000050971689142703128280265608151738650130636347221455814201053959986936473323808788321131219637702194324805808758122749790283058813079595427236326382119759445036858238792034721323569299510856415906294858001913373436257032969345499592830667033500500957153829370944858866227977945369326635073462230571977977639961599983028920498790530403951661150874353326099890452341505458040570606423937999347391266623436862922165727270722274013784010549846827824461471434615994934843639906092750143678394548069419837016250115566908275384455017891879609999317335135440997727037451170796630543517435072075577343636598679121434503833522221962257241976920395521861475661836844054617507030978788955344841703734693379555235857739297857782548712994783508239842354989386160611938497016886404857631370721803486435029823794444295787013527297737574676790856892802620409515660051185610325914875741602571448024463681274937660493048276560267101724514956832060876099404318060754024342840585641752390144838849139466290969534784886787353715090172496667201950318521152413795164255268919865559624145149243528038757034252070415910984645720589732318674102238152669944928931002108396821903419952854360562578332456471464362374493467446153437524924667788898097338340884985145689797076040843214208850858718141181768330878565555993960080341512084350871588563018717489470583388140566027295351091412658942391875690479654275919468276307613351733315111522380046951817409457348709292998818326767572132599620213920163919968871420489302488224455055660284890257803732208972326199789215821792791458151481393173361357065052138537985324076826949183293861821406019556622371416425058083163269590457065225632986748796785016161542544470378322406513505961473200338122763090489283585415082109788032464297067028092035156422606568619472336113398472071456581698576123217606708048649664332785641966264052784365704559875498678220361702196051264638883575601248395267396741728005247654294917503187086967687054374390761250113985417207892732625418488640966768573104793860837763714939546441116757694822962079623776693955655523983607367130222629442404996876383958069138520828745891379278115335890981226207136258914776853520229267014553093998667763576833652624017438690914796192182942648833571256904447820030219366104461285813869472781634591395959728707444486859279939643956910556902777382997798297762717874479332997750823804044246696722902469241173361068086573556798962057066473470605341751226088726391386753228126474630199672320179539222563053381499903166053684179641242156055575673153351943020815038596047273488135311881709240810801187549299481279075917120691769004091775146021503665022937314330743495564752773599136245536460365285397865567538529676888476516107319869979233096200627985122141364147454708522703308776691966375866914156144871101025379626641745608374384293350345394741843767770141617346629511913060693268723761436065483997889551116364388221820745968265900014297583939151209941808218056792300154479200086367887223401709289979078062349791910370197824513881422426771354045213296137139571678109516989775329019854882851045655920644857319439301063713849154296387779232027004501484945666063085577001192925545373064395075736792041169497444448692980408634429524489675314656603746038480855574275113983068124175239879585139006979370207670769104049100057548984743873102822380181344758442137701806813302658668792086709760859896168280015009639631636020241266966027832960497386213321234392406461772247139427098016733351515226667156556129591303093276689572913675930774473450584638815571276254726513169202818940308618422712505619954794355419707139358870591473844836228685986324581104285136195890034230962988685108325382717178221070480390131962935063095649299768023080900220058804608686522615361305417454301498094899299940417613220502770909347289046909153430600804061259301563228969366875334202637622263740301245511701316242156533521741731184642027579779313736845885334467093459512134449139968044704146658418451946275708401442521061553779903301833069514786451001256202137299348405504100521440233868683098205935985155139713338974932625969923506861740958606977919839817762011173866790571135149471797854426253787891579531768377214421946225216425858300949141043819893931535761702898076382032904694127204688197857170533453946254960110636955300849381636732182476169393286100179778029371108027308003129446893243639290527064498025988695527216592261364932479280046653420573903637860174248572522278342742405695055871277943658830178548199515454628151069066530392680889824981126751211099397561496739714039816053749683468497294571241095841534854586564988491744388090786900882160846478854435636199658549026277999530672935315835090682892992457906776611035667657972470250164750810556180442567602921618432134664741507978542370156322088508322654830382274785570106998072748575887437898071092548350131645037946030910098064767442219558022733484126837784486942661275368032088381602372861216194887088290882862443694191961095880488187920536556567075207524301112710444330547339738734769222581298298133022529934762639907943285206048562544459422897317879563907466008259117602194795495968261526185339489513737107235437763217810748754835410440708866339794558892032307414367735587432990606154738793832958082247549084029792212504190975444028701639996235105517692288370902409033334620284029868617954988558666595625975684764519243637893988003449284096245836303217018184715323187880879025307215563651123393678483919949523809026976361060846231375536619304823495766355259130930545858339927778242636850428635068335515203231930921396255448789513481445953039224391687349189457944806714087009305132617614901141698529788327471339902752215201140874085551262736885994328330301386626915006983789972084897933436613465242436908428738801857101811484647350637879191096456460194030898254334450753061708805986755999594828212049904624421902056296992135760250249866159798353948143362488650535973286182309147590252532782365624296425148286959046623152250288234882056997664061950966404180808847248842133577723164610063220501309347540590971918646150970610591239907032521911967616895186331810392123695292506332558311169943196054315245448583813013034393350957038126825790641609305108157315410659233136798832396226425891132880039818086990139485657549419264169978153394698764760583322527176163861895197881288864156482150946361675192394123090301016800590163750658037050074106730487498740918285099569130074588849991855501876023783825155205549945762768845596752505966672384504828750111520976047826047795771216974422641029017661470652291479854208568730210395613435770061805440141643867913148211240285628348763609308641209356020592166584961019234043775717804353408043766967013095112787277988560368113924696831516837373654558742845811661513659335855358347261178311133817742452092340366604368970055164978612372973821583274968151381604156920432283715156073721846808815229444687616634742331805012797118039635871851238509785415343093498399869304850483304251900652133751547350698426742323643737781427002167876045899856955557406832796927622882240517264459647063957916190728134720850315230121925691871005285727953679645821470769718115034889982507770580886270992735261455393617481847256362162994705319268103070696539265808828414224912553086926323911635436494600269470926065538416049306501534847221389125338412947028017508419920615218993970761102947355019726353966568196704022445213227226864441280937878693778852056912123756179852692866701404871838439984286001527243870655907005219212160736597583012691585132082116108446461091113886000240810327324107100051450008678631258254848494806989414144531140573833301768722796352014281938679831908260964899597801932275971729545697926720133148091090250555269194733443105736111276530336862886894399810699675341774892075637029756249293398479226082223199655855190211329496829897751553297927371083880738462890158799774728339511086648676738383611171008281893045377768617663418943989595685222220481618560110721379609071274467060727478071756954709776038966650736348718017854479933831653234368258103032148563943690224079773845867183730455816948968875112826984486217166145111523406208634754260322460262012783791468055111231593086368729204966893240080719006189363927125368588202009691517487543450310931704600296136484532934576548281683783132718956453285392401972653325060161161588420337660226058419175543828870072689255815203050152327185191261286501210970544173250840325838752782648255293784373781559987912183219364510482539589033052679367894978538490342229966595324390504387791166520699926022902677543197533272647303001897357076117584495797245302150001947164862097179834725849206653521981649332559963717993024332411387130209245149894790788139106051151975924868854901470942311005709870891928295237446075865149006933143375519587210186196251657090100531038487941892828311152783144742321254100543114367122597385003764411991233709248192380630273561270947865381689125794590832924538716663137348756737390321598507442097506981019045620296852948021103241015862362242039811059993184149986526759279670582300740199306073522600012418479981166104811651302387768870042722197169315845670499903000000141778303326044192890458955246443281705736544987114739721233446584575385385868446052861909053750116722770145510426401351211335106768412583325141186773082718701447920567829252436961000705426986254910160514597645858869645145512659869867725029486049868465875537930267439560309042166648220057732714938162401950517813060509055706655550998396194463447943357285506431315056721474434587883930194170332119199270223877106520280467439684118969107470928514290476845363317005860586597781880714919963969372682071991644566829613242591628719195735570494265353200167017142011107132588274621807922914875621538338695785428811810524107437750431907983328294826733367571127216140959124617880559152797470790154600801881112557231184594368796408574315094419820438410605082190419588321528133153280482590511997788763406770046814740271978312069088374763266250690157084005286856939345296047832660266624687144431299577699543253158049423308089299022757710464351027867098975419193646473456944414002356471485495138205013134607303584446685077457426361578853694006610031447467163835390458389457154014325379479347081688379513234221223096327096054368778482889544146358472035137327629224366069489117456235742148583337071506117269519375563305692239935556555648866834368275831260351689299956876726931268412418635575484248217218646924648812885455292673419561864389613735133516089278794802295638625628076869449206385806791228733973723850429643082132950152763508606311926977846406450939557931193569325980404416693151134194615616973690610497355477629667456008040182036060729938543008697774313322639777069140782538469622350160466560183365466334592481254651837321635780298758777153563652283140500780370264895585115324149580416428953056656820031777423855579009140452027724201613612550904644018693343464657795316768228808000403464362351880975691465322858597883828869770607800781785790802614595675189157588283030931188836327213699265278661165296660916513029161160768641436672413605711222663749278741219015625804138549231392129416087162226027064308097422861498592148378490243039192750475017461968894569313628692723757816122967719414040942829645371328026369358197118646410226580751848459604834930192991337544120626314050001344684600927852200353213316040189464411323167355390842995116940630247238478240296631802287833422444757516974375920664797472710714080063376195296909856276689990238454075205730620825023950103208013157046882709717412330340053462567127690469334811869885765138927801702084336877405937308146692515845707789749991626027697487327491556297686446871614016250449547780426676911252340940830751449083978370738708344489335956659735889679272618439492511955294307677874437389145915002362562431001442973443092768067387488642236679596411784719830149407880124883012431633556848119745695011016501370905053949481475464489999245754507470667393880882773262168206588348408888496988730732685885021329465286037876113782559777259661240775270301377945510249055162814498813309207922551218573407673016825989394696176042343428233056601154639988225833976563295205322621910492198763779414338759532943452521982222103072119890079583706031076100811101991624552153029516637737109613279416194907057371811121598307008925392074165522482808528548050105463926001851830972171267242994824304563499321089662512505454104099172135644464757089621478847713797878500192703904444778479794455265804852162762618216975102035926403336640506590116296138314082310595689464981482894110192813388927697529798175676870466846721680605114645657823178584802425970355825276186197764243953554708578631649615877393483113087905974567118044914019883975402707919082192902153239264486189405432833333164238973676888645120382542660994222031973120998137851109876911471064732378129237642707019339705219481341354990568698694225687687880959026471390752712239879983566125789723074546911888657914059735329768518608888220740397173669115147422131237749238813967253051689279838673363227853533096333995107115740976032274380436598277216451009568078042244734503227562629280245243887598202766542400839985406431305717137204265952862065008585213021484491860644736789273440451617542419389978820249704384329105805562825016792568972011498267406712116638453845114255037870340196239545883861781555315074363672426388232464453410592380956548111971204135427846905788365373362427572016920920685868828571123712185455261644868049921618156713294295006155045244622173833040741462626573550000684258760981963066192499673919393648653115238331076175088251454550519436013402149663940232891736121529067590751298426148641676377102086623469852460764386777999290361802986843337045387811598389217032017371906954973052912671150023951834415123040780385113141317900958590040732210117223651002453128083400818592827443649716908606017039978372429962980759745661220672272828174824725135605070015027404053388974670259509841230712769677931209331859004551813089991508817860063129392186569139437371192370373777589459031153470177549836611156568358809670097905839139582336903621160047159260566617985783533654831679561010968306326334374632187318187206345643740126175161511530735435903201418027800251258543440998297632173586029754414918545741176031535215625065442485225260292682109557436123102439122188420061368078028833014504632129075327924835584462366909717580641114257757254803799254655294560422945214979842628875399172589755133518547361908737766396665715476782837007932215242573591350917010422870974206557970484806511331403461858241018489750067647727520929077814756522302230018753838693374419595696013508754425995298428229600931818769154674887054037125814483948630623468968928288242284689108640306665067904601890265632363967903559888732153540618789786678010064279609230791526214823815095904105267704328288177309837951275330634698054713786893162312236817750321641571717723282280391180655443626396567390142303813315918943708796094994657209607428692419373548293524668668834396678064517732914170239740800782777819282805432186941775430694804526722602621191340731716429047421167691675077168229264199127880314826950863379211513652521244471651248433884517423111970660589257626714356392682403607414943932764786945066275629302776147386328735747218881696586116466398093880316836853230153755989319204709244767298997806247745018074618475896907019234375771955692705604004499515026889728164510689313205775984206682209610648524509132975063449552386076716976081543454483539348243659022887415664745491524803927033474266335301260211584038168893935180831979255902536109261894102863329244242987449022152472835050738616880610951077902263977587887730163974558907973081487887749079243896561282142064702176775428601321178498825005324732197801663980900888479118137941398081100330852906958758804997343170806091538915708674481891299741686419723479300282739895768930700420565772763413267659997108246993717033213016987440575094842220486274303382238977308858827284052126767111147954741317119393396630412934391134381353430697172809092172541749307671494994899341892808388301677736725341228288825248715028246261956500241940387101806653220819923226209248615350177448473844096319091967284065140602843331888615633436657195275760065561563291378442763062879628822460119893688132690188726828050799171273705854394348066841667102041406862349539204933795948373563667056016738213616616290925763222909478227791216364754606427561284363056825032927481145674335111270403434468197304892973217175012329296376091537455156755165455372851695742769850474581592623572575775607273727368606008941066210396952425696137358463618287925936137034095503281651940757040649046694496615139827549548184889908153230126497644718846614465084878633809520074723854534577738790633571704124299068921060060141010655069784394938248052344193024189959444384928490454559837455481394270965709101433417224937144877407370518379203929637981457363531051158878775185953410736685384985423061666619402067163541319642130167805332759954096112466686468685793813213920889713698916916113335025263905016955560383276681867437888973282397764535451471958051796361476633214708544047471361719904528234883577451048844609940679860162476229587726828820483493790323138742016242564627709665742701041260878997917837247856538921557012791436943510344057876443690301865644095381029672031569512945545368984703986967727597299204101957310840273469818591872437918123826492073705012311977500700358039695858630404888537505627606763331280795665799405165400925141297311560626650083652381902890492906882027102758272230823925948436571471257071407646734434846688188307683904815917797479754417157419248718599561258124128450807473461419104933996273830558700796143865142029456637285686778036302466276759420614151411320312539601360558529308143038435222702437883112350546908768670288692720812409859147551201870455457122170280250424510893080497054960699810273832009322485592582235456300040239933856796314189646898564506712025848276494209069336859629074150231974555607041175516811276665745890449981823085439718959257206699835654961869587842085468150260975087808396390314281087060751914228232578335672276725418894455329730945411674956915004990907439715168939049750052527626866068874309789197836254041553263419938471456131764299838371952777457372011062859370469440257097949783192579041153265872835285519039951807459118382703500157514428734475823467649955697554781869798462015217740004982080904878445562202430325725323068358728360597729138143097430921838795833735226735605989666910603119859796200468313621281821973586518963427581553525893518545399682275496226586099778086493342053884260084210979269712311606785578827804836707389099176397151126646703418423717878803725243383559977597765936487788326382941851528966886999467750755053002235989408384317893503799558962406919481197882363942143174584498331368899085843669489263162428841628682217658701860149869707377736107741233207078304512453051116137811839251702521163788969089057851297753222798756827559442650115415224949920358297384524610982967462613627617609913146143299065738791005105391125798634196605527653795103429576998029912584625011350764374711723729263025941581152235782095570656469043782196132115341075825022194909669890337456612424171453479071208756790258769622637465717754975530651083555539577995066667250054785261687239313224042720333795404408339994861553256214289266661361217960647466719725018419007671344261288625213231693077394060927261673784865761703076844919379222105014306248452567833830519943556112658342677338604177943885927872301607005160572973832591819449786851379228563690268366602994662954167174014820106365159686317504821585390298722985221853547907485806177249009602483471289148718553369869694563540328107481950869166237514253201208987426903631080153674249305998789482314744129073925100172647420731785828414156268928605733467004289540319868468191012842242762288618547464369690620015894837083556527836340256824734941609338570617953952234654067841401166514325380071937885058552179434278053038875339582460292703381561943501197177652431570499778458602765614824157610882657154455600153404087719594712007333036697548667414962196546145819291000031431975401422505762633819496254669982201705077874790868924235520420708494931169229075637952645465206492785771393538457098652556072569782113178693005079611038141267046820435001161196960183052216337238432308742865582481896058985047342715250853318106779463111345688661866213777749897498850706641077881831526865869831298464907538087188072464692836064527534720314930373009614854164483485247360610266693576003006187220983774021683838595468849787543077301635806205871173694976440729256517108962074801892161008387275766295849820302972880391098605224959584512352692378312570037685642620844313168392928213010616375606860982320448963159350685314692772108450686954840719573266122941010418783369253456848917599996187446791512793255166578797880323813814011007160567656588411088062564096940235515060546883270922014379681050728749778795652481464762710771854956992053920344704007644031739175823155640616852727614822341451476711234722696473988166800388770444432137426450968842514533353879657351585084571244735873112661256906931721210271851628146932349755714201853716480084014229312936807726614852157747004988793293902408837535294555988721220237918419480723940179156170364057170188068120245100227448963242525371870188260848425884887068475290488146157390397526630326422379845268037793745662598619151232374742926682400013412777189176267286352505778427895242465344563322124525959195059313885190476089176077986175670211943075521521773085832170513671503464574788217428602715769217306642293420960945463109544691803521983779336305435652045550657505593621578998049259856975118947808473578173661629844846775334009430155202686182959067856655315741121661972187349502021868093626313176169371013730699294863085703955174809102740190472579619173533229912634208323029084505333698014487061269672036928604530932025106252296938657737915868896831120829064587729816435137484437060260157725582387205798892568917717873371190568425743434712708869533313568075918748729748413655012024114787549633705287706486429592843281557123455249802884153565804044467468210621505341264876623428734792114995603156411755225028936020829036216869880492956521606278407188388184107368222991328587377813151189014708087599781571240894945407922154818961452312457530233214965154832258701518563466810510456320719161802253277557533054802431386801203448093990216581254503688821315091813695227772329194982355506597742193833162432351116349654250498548095013568206957435687341434320941995561377116203676035389114560816301977414456943891622302772663189144262726442270723119629172280453858501213802403137651870061727215001955406214638078269937843766277398163129645580771443381503497523606175796664685904363535544816717786933133138775741938753320249619495444160614975402374266282548889513219494776595203273500632399848048404276436090781106725834848957642747910015372196473349474677218429302290601066050024605817117041611241019562074903497064217313277618207329155071490803789978104456949574467987474507008987292539507300757597408693415758513284751354285885472709319969114621221926784809090559952774082996975894085108557473202993185013024005654644585042673011697808114617869299019990918377900940365602861890932187773540764108214041746912592925845269837725015938014373602646578877519236818163484108488875889920712474450783829265505494842681766336625453931828519488232479851285605735815144677434167254186530206970319350206095975359341154944393432798836370685892816937922674978952998536633420038023246170545185154413849256479932900650986800723512513373542546071091855546872396721852343538119833868001778362330478040850383304173233207568840225697136631325415647911542360875739193274710261098607847523413756150165691803297337453194989038321713984789452418054167065076525093190273453466845235300810492268962471959816930903436395722291730174453875114326539662256856081163697637672153360626234856135987143798003414267846139123369175161130865114226592630980392279840483520343241384412176157563146869225944586257354730369168041082005053699790722998528791985277566765208008757856786749359172446390875989572346681083484847517749880028676342988855373152218150388246280257788044323077592690584500548515226647196622143098941727054511847545016777928807649776543659328335666132119582040272361212480891272455773028186061172797430109580847183901324422571582379938923169430461005782078180768355331864520489006281149321875277955610717974990707768439952028924285643357216354577387166167335054263826376000068208828819502669208216754276459049201557403322547984228868976478117132684579991633824136877428053670567902632005922571917646700422797788263617748701861783221620051917921558299431573021270753446872099421446450165571581840898147715599313622962670930592513504901378914459027883227521985610760180369046938560127292865156031898796432427732619479358605391703483235012120376618918770274190218690538141870905493943538259971318735148498507199983045610309630599157363658688860929338078487679346716436036813862389242154458448824633740550450368862844560388126373450451376807429506097492117854890764964566517445491859484087900191315799734706925843066432008927119656242391131905146074261315650730714887544948687925370855391859914763044996300453454538402097562091702524707035488177708019981745046851376223974362096510522567789146701741460786838231400635533735245721789948548990584174496528877294910240390500231757738038101388887934397092774263202503771783793909850864354249724499502248490308213812331195957206820140396363241532094128219195649475570172618302448874283134231750941738631880813118854317129818803861848218432032770607914754416563853680746380806754171632000701937261649262913124214862179080078517612787628568815092819784696575375871739877737632681865761486795474633601669697912011095881283837378020818766660534593803636381705453691974299382728764651866708710282416452671985382594813245137599490769942171400937848732419314696682543186426071001585286592312495089211761898935185086143826671648473588070192349659421020613811481331516511956859238896356082032235660260733503109534823081745490139435947887963317149088788309494697629864340196550751166606764334976266630880485582852815598490979337772548551752860963666380620080013485283272632421311930163159789545268247828017549641419050491883321106074236769916579309315184618496045972792151554397010043835462161278488332288694283414536395341238027821886584910168860698811325256493981966902772157855030721725919052708569695266278826775345123357917852298139732183295675562688993688865560843420059141156529801735809909676593489354536808127938609304853804079885397210506966263338976863067525083334483355929825208316615836597102203578894136018038011412100804448518076549185449742637283590261737404557155973957433351635671133188322097516256621212102352445329670705612117813260854565979000138530095201746010514083834958636780794228569999241759855646940722762166519801307743104619913688574491138790648008232919942962023317913242698673262874928456602322267060057750432444459530817176592920938824332973163573734322121459356152942549853723151372412005419873783021967154235782657936674895037864314715267001057836461307727344378202860558814664362895108131682139456274852681106149084515263636159324946590201569622378667563164296616300746898771893327834469985491312524211296535570438040787483075444937246303991956060661151793197960537579832949433712328131032677560824573879873794908945313886661527319223684602562512166673756543911768088133002169943863899926345105849275752017661004429945413991985652465473716952430051261503867519458041193921883300653984994047247500722109947745586466534125865075931014535541674302326631622377295398182114583499438585477633306249455024624186948485552137181549634446672880964294672009948816257428060981514054462789413429841209371120588376334910634376901818425918303310895088985344451404937716415274674309950642999848632273604849518253728922324080558702706185491080079880263710489225650791657890024740903949910653246197363150800788622758119870963420042983454076808657062758570255601645966272836690037878511620505863999575313302350508622432754722852355847415733489502251292683438419989010848418255759331238656784044005642975120462984761536068533265122257271903747073848927384483705896725867543999022879189151000918965136391981693748606329907452779312727961642285049594294780131668917836572455759029987002942185224932352304193927237010056098850040670264262527592948121774934161219921908473907719431287422548205836923831747981661603982985546139847066401186128356540344741995480646445268844660102717795127081377888434909264991319457892756748888817606468841825991469241871450003994833439121819141278572858206195479394636991467777918786270736064400916459206170710201143332208157051711721442429753949117120448145904502333229642896735322539877244433446204719279463633897382138301483232284744654865937015347024396723746442491672662714898815405615388182612999420102061511555269008749204742079994221521123215411739708901720870325607495473441717682739389041364513846667873237690197132696157115528599203717909347810153832620244567437827848566748190464569233924630478990318102715801103386941602156918977316337250219866266179169988554670469448622446284836684951193289290808276598395046826467048036302868066657125482028016478834918844186800074708861327915919230151423966178272304611768244065282517347899538444463164066672305242965454192852686810047676202914276783081210927504329815584555483215356960500929556917374363943591567419564055757268833129300780258682814462882118885526513690888856746242970421230450662543484575388506489025802518155937120546562879637339270159433889479345171928578439439909311999108461256287052871922568246835706112365182596019288405010079492909351815271881317471204917465012283210527384582543899418674528202705691360179207573724271636211351742059698026845512138927468361361164176479471485642366933889655955931361036976145499541665822318838221010543322554189733895076889559536507959109108132760345597871982987786515483567909331101937650537518818161269567863132130428073814823223487310972194835220262831773094683334390612688062090603774062666169275267188865591748381469358487973507296241522874433533249760916691784546511986862110836209114175688402055180114104926927601006517372046042050565237479656240346665529949279522361636658526298288690815417593458504167444516937140899246973996514150782960838362137795079032899443412653944433125868195878541509404817714529171011496198019464742831128554352515546821007281013651044440365564532414012730853569178133087739512157583810991540390133331818678557590602014824417813709721554236799678912908265994327534018501182374529502712150357424677677360678019635089498118400287697270377916146756794498053134405389915487168725563646503756236360590957513338872314053746976431173217571522868584752267868475487102840247117987138686147803132142458904557097860675546235420219289364606285340554447915111066793008564940523348505793753610279532114883716562381464045479911335394016474896721223485891887542297203931598903389182097992307320780445218546080403811667094279199007075510836686396733080915346073561306021445915862122607501381264267278522966122388557911209330896113361331341052309189476486503012765048394553236013288562956794076145281518240632811098171911252759659633180150148846811677713746002828460151181755695079869172074958441318947174100928251291977905159480153689416870415809305081279631580436014130617978676693086915042963570234633532334120377042815492877943722857548003720752316829810544897295621240728213838230312468600773015936041353364160178187890948803035168093728123727026711777289193990465551987533909690418986205424179337395258859269319725713630328270126525574858338667395651902070588368317526191358070174523578226411616820516792437610489132268847037753995343139195947449138183286978463188624012983474204327414289151099907456945969870886352728011557550397078711527331685706774625803395459660283358535219082153153505000741113073235782600164870428676250023447672720821882450912661436208604026851420017005935527619071294876886439863150252066486721483774055721886040899111286931517313280149915451725767667224069434561210194810525602905391846557167286917922519928833375345640308555835244201719345241188935612527631409001744364939729995492946333970037860751745836134044271391768295228457158064989949729927948403754562678824205594962394715585589786913404960196672078607152556845480964481683813357353429186383892861238606972946995619810357659411871151021277845947911300048453593479924298621962128956815146443351635430516454860018922866493588213896914570808373387972877955641380223375317721192478238614118869226054391651774664937150504427714439089712923707339286503259368612677307425705992245957430305832376264279572176524752361858759865587192279522971977587561549382363261907237927754152686219807702414475421604641882984136965369376773754094643682719920664754275056408512177746675932170474193111289494077331279768395590342850198678378191835280274336574310393308663302246205641767926912189072214984103227883627205171263492311432196479262317844847443542246095983750221620004106731595639258229830258044640848633269446058268433594194443599818057973870051059498996506098594055992097091684927972485635482911009999361481495375070396838372768873939593545276910409768421707427281668389579457097363015691397896201777218563543161082122385864440854997249742597853615160631714540569164785106892098509177980113425054390728239559559511209122650321756648803478483841021056037164296442782337573371180438972497125537795630588326326934362303772418011242736616376478828542299932877978917747100423442204797464809906125368224332590299760995787219721878735490272565645118541506110692437678904303982302947425312458884305649953573014989146353836228587253726536758256945787084959537234849592236922954855571256013246673443812577969116449464404037233209427570648583775167594587075675094563702111266238779375792510095127807983098674626496989052014910415758729389220962375680000427578290818683881073072295838560501019150543602368017218588060357473102580666508311372193516786814431049382613155360761886414138391647547109745836967603968841360243916895117569514319138890280655658951888534140675274056669131006376590294369874314502794748394909691626401862382377985733356337737826914737872238674535089481607009862450157091578761691853813966673306677717647940129932203725204867863112497901627409622172744619621114580023948647082868728456804712167699821017822772126262623969195679203101209210463634204142090659218542307428418663473664755318642482153519911992063237742267006347601630175080130573306601115641978141854918445839585114540024636585400285353539780466971854757930450453804102891444769229202771957555101495680030055430431059172836343618906576494473385314287925585025795669392354599112241012713699254938451923487097428327060084492064779023976306624896410697958818844695226614778346156893497256957514769726624969527581679138183691533691070887052710368783639929410667087464277373811581298352595349791544389147179259750004759369896300343393117105059138546850074700302495559074645611893329443224307308638253159326661938623613662817246712917894941862721112071556397270140750523905468401817283395299324998336005616482249755504489888815860573904889508691513487490171298776697612271378968325354820515505329911487889763494608849668515471101444473222105692491370345005553903027797389715768862156306612927892252269544010372271418669802320365490101097010751826293099863209600461637246658972605183699944244669210635121330001326582236456895582684265199409420960953898421621672084932464026173634748743930844171894360033321158387534125066787223794291582861061831562002616541227381112211115113299188151972076691328332252780552066393412690085313181516658066331672955731548609964402402976675061883816519959183107676479318823793572520673689851878471611638275255433878270802658743470528722912605153163249400483180347669700621978707433372584337630324881430573716181608599282494125683754538677623705355523804144473228627304654834448305224763469592540915466678198414367759013242645175701594356406150179522860001045970342926873884749373614102915210204812796835296594465029495370413103933764049025847951664402947519030325005921454002077852450533987096889016374776233152229227220477107974803492857400603722332837183599002819324220606441528450721761965245208649649520857206519182222883835190020651119416147205441484114535844404717426430296746576971307911439820619807154481999438053115340938659329986492361205666719909475957041505395547178541940010516693251287377224246112986567580668661314332053894252925197519374727558344617291432485627255884414005068341352333676598478465229387520164505775736532092781428934415676633588960255213095414383870103535053852396701884743660484467123215464567981160462381570052746008325426679017137990025053568707598456000696168838823883975796273330877417274380081166312378198240691464783428882079639237245422206250367699140505044263502408364651342479396346466453930038770702748890613037605056561840530269379918033093925217625210148583652852300975878703033047341276610123294283320555529130729457520267780226078998602884441717646344408404168558857332770858837010365116099429345414723304753147826310339126663501568779291995558492169878721259727282124949627029164004185700739957355691515889288762992216159752796242352456133954883329602061102057848615061540810800299904543132573457766308418815684794935395609068236396400589787101241538986080714510561968157833862912844943218317654206123800916311944649346800679023050750735517565583391262206097178073498585945932614417636154155918992789271483687996166949037969419109472451263476391675938770589548614072285916582652249098801316754757184114547290504958136916087793526961434500014817199366710473645245421600049471943025132155158831117026126329179061046775127576274923126163694260836563504743321211958763374198867672086551630416011995167900112530195610697513795386810091213013752852626950394574948733246379680191978772974691913130750597556757851439866825007570354464005653586709993105431641362375249524463404104610157735643664484136788504891738103159370861505940769264357216459681967205451106627271819156312877712329690002194830863628144595009968836023713804145651096841913968938467264266920526168456834280551877474279442017411790605387666359694443389504819634527277974398547578241531921691510933704765078390336620176361114797028889209758383596016209349073009413382125672217184397076918829181167283851333807924797882923733387342788125132488108354747332714685981748170793816850747315968248625377958721803452663533926590542807446318841457071724503535836071615537116940705579757265516451820776527023394403695332980871266495437325541707229367963312271512463136612882381630385604114982058416329999347281490964994960411961638315715314418406913557646821678393071669679148092599149249876807722347425417773411555094302874379400684303690876565242192861284045255965472427262280309090729321529920179294767778013784632061393108860967719036310728202459701407044306967338940093856235693476253551084792895076952808211224321391910032887524268595298130682342956418703158163901563365206694661931797402228349507495432063234788222015920181174626914848670218969547472893863777999714411279313883657480410478034371358344553241487594238354924389216692490807535781361742892704972947595683739748870087174194800474922414223568786372324632434302245717617744592883863772434808681399611132541412506540811649814563588330201108310029893365497937144643277644074398355465376935208317298671962002752577322368687703362719321604507804491059904659878750084600356844356942770100295955096118761827384604686226069458543462599143241469260666759427503470095430340852665406117767376225985847038882449413145586489975666591572610708753542957353712772217093879546466049432516945571024186167198118480695489769338456321750886186017714857301187077920492860733347403784529627796930704875775383362737580970758749343945294594756198662856211409533001502605559768965818655153709919900040315998781473514659514278984742275351460188995779076212669532810479221360250523750168668636312191439044308926515028250451534091768958227810870662319579034703381516023285532271167445529035992487202746251105469557232434883513059829410311035200132496809059060410060706690388849674924800678571689179653771497946398770582670169263191882745846040397951086565332966658811620480606869343890603591245449996584879654601099261176764770546333178354202397438110889969413636014741279123817607631792756995489235770691403837665922308243740649681850957736497077296950526421029211520253538814068673778561828039532995868905094576386028389497318521743099220974225828583445289898057896912415839262279563519424520951466074258051635435199032735237796902215803472776430226243049199233777522709982852296772843768641717181391163888805438376834622781218324024188375252579876467860590114527353029303648151545574983580980082112544451184833067973206992146439213406089348707214644064291045808852895824412582296450505332406503884257095631558574501099858326576525805524574362491928960048472224866759677733687768335312237812966722324494489112390049255923889868483039763311296972495672226807400969455008837663268916339796809783289260563751940980099390224987104169995218505317927606811190514471822355146258356990605642171714041762577234640459450318888290651202074478430795347564833286280525627143783015639343657967203988217421644290498998086339483802310077752226022659928461561970854519311891449267995585039436250447016593326906787214651172900078909454117263998274080018683441877786544652126793035075786113503950786438546624434554552542334122223395672789743565325189518455161608654750493075987212443645003149439627530376149960159724276669940308759919460952701887420409159352593439631492000031966125902881794262735172016958841943686585523834216442552008778126167433028612942315290375363781047156712309886317123581087988660809545271113971236025191806310286396131379600820174171537035380981673264398105729261358962397449559687126088142229727293472615989003152223250341316398964681918297012097449321054878496192207586339143909791260227465713706435978423488916597942579631948228518947595667727168162106213968127163858840301613841048001466917418770726370851411579584893455407256049160787414371121094203174911063823877977492674541147738017420356802189573865715307443613696577710183355342451404885809111865776522911434823088899894751313391594182980318630231843844631066420641670919844694583229740959002176994989898972564640473885600944952468661799531785554628028583187958118519115454875795453893031098194146903209023836384929811617042631525803994010995811633865364178380976857644539058566478363262893381560344813012285944797874559403286553883831790404286796020134988034124318147465337099149043067366445650985724168930818759285677623702774961398022769815299797787865693682577702807906213996958646674726706137192871757262025568270122981242211213629917459695342559624928755381436814485561489401559781120601736482680151290766250629765051391850898141643193641577051108238178428507653022759551247019307506604850081793415907837933997069920938108282502009838702975349074886703015944629456467295466640454962974221270890761084564798578246845444046668129277991195806119173874429641938080640375693227121456053936315808686299981056323237031701666414513762406113514761930227754285610835097029105333251085250150994848207092375559028174034853186519363569110115144471154629174084973180204527363769223161796450484313940551521094645072324271361525945641422178294660627350009845896898513949300276590482902302118503821697463965079515506362367285406061217033059328278093781074165522161853203012856857945845442144071657743241161946372325844490584194519302681409813329091956427952907995732815807288288084410003718216302580832682593407031026364440856199371644741947215930633314781297267690675169399715711524117924415889640499920690543846923177764849323206089488936200415173804759423209748621402150552254891268801106497769892726043540691094015280665562408733098883686498874715033078820324861174959850658964546138614960050936834626613572764689532563254144246634022006199964030068909175605621322156611254687956221830333793235415927287145840935978650652164402535128542090623608587437744676610506361704279054090160349681444134086306509133555681257153061583868613800395761768907631620327293804917202063370182327260150442891133007563597196072758830155373326697199900882588233007111070572274438940207575816543286416557991163345420288309674944505414286681625399357240496443231450393461373210485743664781693686351928110475793015081852876275990567494545288169232649896246142205579546932532700774454577047445277836229225293930362847071601080925925563866367174275100658659113423748294011917430001639741035183979821403395152728700254351435974948699357923727004800106399884018756324961816947230455667588774875803618250492928852598777050181550660526536039174936879654514492025756776107880099887741791981342587615437021089179166702107274992375249199251825770176846814351360837756116582654898701314298680150345881221269773138883981729927286227580927580514748525755571058809322343198657967307787923811282880946290570463705739717762305195331887415078791550039041606510508243205782049106825092867868858382569756384786982095610564837954533670572774732075746326931102161117232297360947923915921537433165969517495350109965336342863364382347255189835270268364189751589966539645363829562402901571355935673375280112470501572129664872754448389318186954549906676043977569312246882588137064302866896439858572216182348125823270534033091973445728413205608494969488770872419615815772624642279820634195229949764072854009077173499736277506952481743039556587251109598529893993383572071762928045287076570113424820725445036210323797664017835907044482059999661332754200074318832853083756349503609701025590421024348247765724109003209207902612244725684120897077115385397268463831132327790881447632810452764884491920774373335993387666989396622681413655055793287572906893958398059390818820879501692249846689737353991433848368682482943752403496622278596232554758249231036905996418719764729291284387256542263893625531763145297791108714283937465012909099611487585298958207343300794831928613719390183837382015001179835067076186303690139122710885721914868214761044620410916801373820213720694030579709424045131232674781332775595541759142709715061270908753943207643261739749384896594538719868895008188519254757910199326148093853184647738283433540078697787175622333571873773944387815882596904209553404413528668781346609672028082619951864251949197192282272628672229350571257437089021820233210447285587803151283967419490634828348261831601533441435375236002082868265710972721543483096821499913403373723271191463655455172413586439335307703912685406748541267755819015995930170754387143354258649822881729145548460097001437799861901873455812343377323140381705166535461585345231536692920614390025202101502758162063032637448851085161635105673053627742095583733948317149943255857715067594148484585991355179849296878859145363602429810989392177895587706912241184089819980072595039264372823094025602743702416262706208863625844766741231016479226389898773578328729449217718044181373398509306385972435319231928933867718460326938704883938457836068939003815712221968237889219797707458787655438736623759355630913271009518794435591033098325753108305956358702682635876879332885479150548099113376997196721109275050134351248795098795247708755185378957208811342175182622333129733838467942803225024084920819691098822892647281424301672733810154852305574547594657929265060931310796424520840402385827618069072363846233935186340227737653408424500592934002349010023099504474554911142365016536731638990343428202826586351578179858969565974406429335389954719223140393032407589451074102789647929166961800205939375732413561301735054694557380264719208907647293076001973634829566032453930186236955270209558264193510729857379834697001256138363312983922721714129266914252343810322151221823755422976288499775096250942880561925576942455525236132717847013630275684025865669510007941102730427293138933086695877758806079887650053552309413195927730716959479607820749842793504002016252658764105838820925896682379430107678733998420077225638586115302950522499040790045363150900534629982980589997285004193981676358727281128367849441046250424122084641299548447961993501011985994649894894131744129184448453173805475570434792572500848513793454869989111378409541688887590862536989007135733660825008535190666667896092112213910632675372984560994041350128940324234460568873395190644541232933426626368079403171735420968525724906720932800147468086613267390715259648872580261732065150604441266804361559252912775445443404940026944408910507003511315542655984981637603048179461915341789810552607461876046140708969494732781720962706054129788413431122588216910924542304723656644242735190230801687239296415349889108947689041997141185170507408688846095188228796793993027894133940216057103355502600269356578144647967280670106416461015685600247509394864825433455270206303648992459752212858245053007301046320867103459472871855837511116308821491652924258224730396122115436684193663674824780594584144502102210008352644343061467450249206303401336870708942483276515159757576955438804940974999698229686196783750475347530842785205633941577857047228563697206417912946184102056660962003127125493406033102777927469705379276989994499048127329890904427872032172220773202576220248149914609271852319165714674170593714995982189767762666506945778044135211301792880727705549157580262466079660058425244450481868193899674882502462937451125515748261650360888699759012120671824327548343034696866019442559116445268246402271824051696658044331174375392429319704758230367425648817794208807587127972769646825909251923655599960084646209883092730634209224565500221431635805071467211015126542866323446818734190053457729574123988275710348914264897342311125739540041041733440858593494548154536030058563157869899704012904531899942693630144951795227880997367631382664150060112458098452358779160858551626148983764880716462808067886655995938286523460405777555601184230092486898906243267338477218073772250512972858734239825327152468633608223380916985887186964398382894246923788348607936406558847711760104008907213585233781165974488956909327176011604298279958033697521196726367429467998787385335109014387227816066521504749561060915399581256934488995163621591475118564843616874914370860036067176716076802756045670217910676035898596250915955274222562742716475169365185714093026820953012773607030527620089344032175699827371534952167340858245250282051872120324274465884120251686122943703189198829061202831020232264922151851133341082938865764430622859748985538375282460248696060628856585246312636350600227931161070385261828232257516710847087349893640747299525855834231863008481380065816132663738877805464584634358753678272163109747482415584905336172667385060046456017854923368739086912386129155424093492936425217370996441483094711821115138446402737791974996498264663440178143657885076813138512725250673323465453787901134543946259102301458459404737013708264061899821073963902796920635341785687250561021467297837260095560911546037136794440518637136588335291256995809633705770545005501731825727764084614160299033448494650347677410388983166089898518983792201142426752892921510085821511195045495564041189364933753266102441783394150541727162549734131706245474929064131381043008255678402122408903143333673162785673005583167550993688568164800476929787233936271345374489342745184031892548829039908951582828954029905572082277493968017967817094731438390002755461503038969208173891302142719243920276567065204621623119372032645335208382252204763192992040045117321246696963711458457205187821415182040308552959223605219796559712007493982138445711634833928898903552697540256166974118989835936619053737601352684768278848253075998859074863750086824995613309623722453487927107688824609174419375047054348520707571924875917069112588418046240402277138653642315775421110078025108524722395916448253417430322341775846833273645403036521740233416098624292774313387826650601832170179751337300983924315556709078633437719437127269099666267430219199595711207435107657020593737195653242937333089238659672508046696975360955903997921621442074547021564005114083892039818281860432573680930165573443077973770950503423774205511143898151494716588443189938495611499127505051095328322456408399591065414362017155864262995012563424496379898608960296583755484759632777625129154710392407204171836694638609655199158060796122721785832479706571915939375922500689138495191500928669235107290011709749032301973097466422446813183570695735209838496707674472426794839626034127638192834932634677535181419530811240190033598225384800985050879802258837730515676628916586677511197592229235999217075273737781114276202465504865410176672739909048315981379865836900866848858962777327196642644035249089020280732461303683118805644304587700052471546393782891500903043659978784601697634961452975706312571416691849536987267272696258594757593288256204880230470685138109986763521671154839404265249477757440011343521570686046213551402675472045154670965890975427680098338534708668379492498394062986398939225283220345454411616136718415875718763834210794631678270041862462227373052666371726024433520802135902653611764218346128556356706443189733559567617425721829142451302575737329058830957720779749227742742710523985292846905995106893003632410203108134163946272523507597805002587286445910985677406761098874296005281004416480840711455132320305358531816714378745025498030956717526854956399153032565665987447843708205692739609482160952593165019240589190532559333810150005524607602385930378686541828027452021787613684230359594491471216554189003275783346743328505172400494857138608524992408397664634697716535048340268030668036404742737712032990183008048130678974097950831487613810133564670886106365487293308135443520102892959403443873217249468490339735318208674061347706965884120176410570808074134826130137749249206555712357239346370175612499084079135277918384114729717014643933089703340210901567648568188486698913280815190223432280984682054352684725155652315167420432642752211505006411169243701924171485020575219157103355885426156401370853581845653290677233529365772233615466030376262766270685840556453601077429766739541839263733201909472884613425387041110661054125255256779329576216476213344465186495603099368442629644225870880433328230840725288851009344891256292681517056747706374563205930464918081087780559962193722377412190305206534033639917636779358684347002962553634051414759422416015787378522316107441871832782304569519942841873419245972417087462938993592457289693674787100759921451130718178283657437526573686044668873863795030838435879609721005828391603217826940270657844013629358537188948823383616862949486844712853294835415938520944296112404691792777727841661425179737541395554332003792796037144301710888515115474020971224875661729057282512662562945416962019052483291939488384481955507915256928914540170467536749018004112615554432387832178488352645316374370987786430599162407460198014456382763362889528382893126085797148978660433166523145906104357877943573380704871211580742735422856307222478026238056379836986868311271323178015719796153483315659668278667515630776309211043123404328561408398870662120650197619351261888467003293360641285641584278429873574207556785914954932977094555308625591688871845906445508912433307596503236488593899360217306641912719309389048333297195243402793646349899052734925386052071483514657429211843297461614409474880467325886813772713423380590943130728034925310669251780942043070208413484075460744793810754497571732865014692774492130065534417145964778577879034434563079043509860663117800437641344542322500726934122828794036734877449722613831426911769044177200465045723309697925845309647705417904284672192991164921392422179198774751135771931313327546155738831368610778521015108771339736704414259882015457385014893334658638256629445942937360202874276715063312967238015159068072738923629673195395040225460462650799819399076207949195621299341533921216277564569631159045726306163347729006198784389522990735696037269728252054714572659721509619052529237766354164634891634202020098345305797838674606269468340566358136269095461561464372164663040629092409095916957316099952513216421751801339334780735200484342759948012128886234803538814722390438912067199590573420495719292982382335689168209764338849564042695269799072770236419399652640986395631990622870301553939681234999962067841769930070320025631110273591240021565160085040359595422693980043689157599565936337159886652547226986526409595161451179840002646152915253836412562543903992370299203353311140759731627693613169223807923357549449443337642260347028848918249504275338504939464484880889917092916707301480919556198595831657317806676753202357510011227354553947038681116969516448804025332937559003116593388633381985297999176485345482941761950271269096368876865342960903908804400583332853238552067545721071543187517888991839979338508490623059993287511919326815961122914509973016027873277945809793196509727636398147898341509232914129467277459939906896869189349792033576061762380741087160327264417130541392515591216467706728268557687941623592696094231219847330683591608230567998400211057011337307646754020175649494237410066332279681559455721441099134816012670740293201798420167511603653594366174780463363991563516753799627196889564391487794576287952636898297687593393566130119308243925538787676656223886514008036412079423446797993901716185036721387465479065278081617828649825261669150465627197443438491449956207341995777840329058447878086811557043548457623384215077306845394989563883948049294057789497177773483183424357157570003125053016083363748590373795173819191289629910296138194412110686212975456757181905200094710544943725307274764455278890273998323301591506257743384637796764880207166403478515250718031273858502412541127059720179556958780641175186922003065381990392397145664565095212012810877839081590809887667297311771402305473412135904646536368910862172475658220607483489376001624540334304844020828653265133852482094488660722619954855336270172756181831666601619946050024164861887748540927868372505132837097702230678790431389162000234569342181105716174856584618388085437039780777402674862957037773096741784918396815382294944026163956202242159132118134542218830680554916849765238776736108516129929457291808091478324671595514320217243301855993231661123075411939505690605925063153161556611316488401339250170423988401252736606388582264789257478058633387132653683224840838091021056453549458102346774553930927094536815551988925619393215868472047904781379074149195981257297859560813833318534794722852963898169012576416750335537255320434874198079695648962980825435065197896835522768355691783495586845271459049205752001925630446478139556037404852430260947586588006616334376634012903355043793117170148611601127052041544801209167288246488860600920496417854993192730834046091042925617767449105582732325276039562824077311019438197889579784342256950294222648052419847832559058202908133013710579706613212357502445938342614961132001002843014072139701962045167099799761065982630002698082526800019470343561448020040368678625704161207558249399118987287854697695016984390577155681755973333884696857375253602216367822676896921112686947055318538069006576486867088335578560103682093393906639581541648620478179947615656242016215035698231412173345516513625176505481638976652011857154766191253875641631164441651502967553226826838683693041503230214284322635358676295939315638569075578809297990552567055834801362557322632753554741568668177472378068837465788732452635891526708876065948427688289286330184911043948029410465570961839386138092592975985084479063101412933267636070850470818678934938692752939156786081207060814409889686478730060072118003834356479801161683441730650869319577316577757437444146234915653455811278062472758784394829021394294438181599221169103811868855519105867194886432257224719305599928524213224666793381263173675321530248880404737974975446661969903971936700661998775007148521462037224821277963386276561006094973351419389529190153591615500138148610092568386161513390356902020167602197570440097104902348710405834797201595505595881120385474346586039338187562908658220027527237421980874872626380087847691670043456704403276455987584525410003607804766683331664145018185631849357743628738015518173764231910877042903202313563343163230612695444437413497436929430033291758105571801498775271418997911535537793014157945208621780822507664119654339638013882315008815101158299191891069877073179186652600469362910882575169012970221688866821844019396413540933143259336016104519936661999191594488526985281545677658482387616520551014138418869041901997586435628978466973670460528436565309386662357890681323318625799033902578258684678623468964723472700604424811949330413692565240080007028674897196817455023459966065239990564577776690084838548018757936860383053033852177756287614995970054571492679632873786515930108884093378658281630204425355627586775099669833685731523609350075392424441875386509690159005974827430481660281592405810247345156813640199248370296563463809810378406155140912266084820507073845950613155831678174735064547925482501835227887715856469895734118726620559242160428597400829952665511056819332427854538874030354340801545678904732936642204181692859803769444982681038177576290663388925631665755015227528625187157028586445941418549217985412163234549122631591208567508792312735631978673850353856970852527234785856168151577936321008267454955705025611844624302732216369908696181305831947294519618551037814903849208166576488314221202535838681024061104002268895018545211900019542202780248486387500054470078426166136711836190570969182754716967001759682322650801691195249140341231146142163884420414001288133165878277570092187925566694965262443352268551825933601564907126557324787050636136342607995803889764852527453932044073454614417921562882803941403336155690443061713056070898045856285449324245849293211127082571556211123715400456331976211498466843777126695596571133611988737994752931193691709897847327019341298658328819394071925270910798627828689701906819688620693539776119685894923951892686060328474833838859967481893805179023995670160337675233866604468255567738132767820232206353480497019137366640974402651730070702833357309004632076841386059173527287095499240217967662894060105224920802226148962279509083312602033371775294682704677412913923535888186008938890723772767840488095958500340971373798060067677546199505343568499521052700683974861792477457845541671618636738643718266237753670086568157272165279917447582729947413348961757271806895096566819561907279696268656703611529616452205875843364435253259523333296409903189387084769690285229836156500995604969394756785133831269759251242342820480130890552854472681361948896197731212488981997873177061704092799576261040687489849663875917520016706655285317306163310816570475020528680793979611385452271335451667627910202564045210562395806074919426856993070741875573087806319777116255843222748988354324606741182442391319242557686968614275686400244028473112053858685680037668527957852559336036216762551541572052886410567581761073973674060928746364575885009716964365633741589971634700591123238778452463131206070145736078063375012350688917929217061448013082160899452289405926739318768492113494995044465961203268929005551097206508459397766716504077167444009008384911157262464476665949557387335147694273650950433262504469507358128433524609030642763982197121495829322211954647756200604938292775782892037473297259782024702354316961875601395045947804322406263515354207226929861578135476835146773578503373716475821121223380868142512829053183833151808628489782539536250633595672473997091665026581358583706003879883783452136289763974130447803966465195527200721442664001489232556435796876411692465602445119990812828455352628145745708277742202365926258011846123933033523297678705384291646778096490770699998855277834026957542192398868261167572075918324875091087372792994590350929722598143993088457866137860480100633124623002285315445302342394218858982046424338217809695541407738335572415884269573319841758420671722505373275891511570597505413410170562324872329406225693476970557795297048391260671368890583192730781133144350799470539815015627084889541461446655036720399684584653731404766980279782927955301918022293007940881658282669542252907863715330791134702636687556817044447312591188784042278876876974712915982169833287305285245032192971326664314336896267279813021917269158433597047833588743384599380776822751904017508894829923457964072679228782807899417739823723411712093340091713530238371117758101023606773003127433126880174212449751608159521393430013493896588760074918270221439964674169112670426605550126199709093831177647124891232300069017463895541342115982585961316678590643458648263842522874930284300078241159350675768749349935346267482709865194180179409351566911231925770799999763732953997012981457358735138909469343830604497980756217656630721715853319772365868036991775752565328882007381553086144652375317590137634163769702092501079438908680584275673342188502893920729500312055432015449868709794270156142924114296673501907123009578094633101321068072886499107830412433239894437368304809853444082776038622645622163654335947450448082768390466221551205750439968477866575651507286630614046950119404978607104262532064226602757019119480218192592330840244226534944814061615441520959659142323722942310567459539251159577261095121099769759588986806806587692730025421190149983609778801714274448718636072989664571129013573530632015662553576331655401662750565537328117810874715957920264094877766072694028879871173836545750916168084389923905828504230185330546657707779088255670939827353230266430502479998483220962118656312534334639390107198197878552218328631349534185763565160520236457719955479345603774380275428736576806981197957678003632099570283208815746371601934768772405279011471449128296689656364829934426304424213517556978891893036586149077412039809808428368908114278098088520673528402127879343318776624138330703080746899513534212384637291300962278087957461880637372589678949349318380434560112588551624774056981376294068580984984281395816778809245138311459570122050630586964978367791013231640630743532969664323782731037667422807735658236054068348788931011144096581005749311045857132514322174259470282293396739322509542148467170977391848931370191968388058711011465526752039277422353572939352485617830299438408363843848836762023585590692099949991822956666735674726209639613413573930084844174692926727017978937175888128981975466883201000265868796638008228505613363953044798438285660146763098509407079293992835570771910288441036611015169393242576029993948750439437431474234181987461544101545309830976064968857299605134487994477759292446476423102295811865601872594962844800468388619927966970751652853082245722177944320317595269169352042798640630260274148148858618915143878105989848625645655570361888534189775544453296539692705630018977694938875319237019053180764531650082929687707957407770712817028135788182553583332079958935605400474936288850569829432688088734742346835626121294568135967829143172034199439462049607001328829379213334631446877203413529728960998684915436534822983115719791414853053355304120860853810443328695265468690722907094035288430989615891841941755419755139629245461297131795388074485868007950746371491696941408271553831240787403055419422169120470562440805712738726079116781217039172213892604919718358071287837475151202086267217358717141697872054905785814344896365503532935180770298633002447308068961510289588136904163090392257391042732140276057649276502616032846902575787513875239966889749145469137185401091305712270808414697068035345534872247177170700015140093560742176430835173727953309810940070351088142533572669561777177724715937504926126187795838253337722022447914138952092140693304520503314756645164490186042528491536405481078262102887461245747090253992386152706937747460474809543838154097877515061941742549298508855298838265992495826814162888031087844054120228687232413367327151421237582190117827282308464264733643087329585434579060946393831091811121599994866401694111647708664976802183079611400562627562543428979801821654949133414648044252450179237039431416620784218132319377264273824939011629350064356084494231918723405542445581018222949684867563453707162901839374985775984052333656468220493734205209423963891961909422685284473280643989780653916555588949591178512142378205574014511244544306129481537203434416448101905958637584918355362996378502077130441858337905008248930749495824277483279028291434547069329482986684444728349743674677601684507328870511941735066508996437346380959556898914411563743077931331381580053466344733527832537869884437402943047061146263216685707965922884213984206508846408244915004995857922215160763961640929126738589371838697134175978650494991471052609304033997966676451734723602151881253586979510422299353058257967533806313032860504500623314527732176774650171671557053076024318376731800653990594120563291548547883852006230992391696000427426942351805003942044747732810069780590814460834766111577909682073535151725515380560614724281209384404263242663249431193277387722766144881594589584723246566287112446697103209699973773386770771492046091995419274875638065831636705458552506176853430164600004942125775797660112368671722090190178113632505872014981286165419805144930921000673796971039048075901540338539609349708154228612843081369061485266992677301119519329302263722566836067758481808139049210151809883982709633472086276076643620962441657818756782793560615926822280840832791106775712704961768499475757159121580710183475091405825154919763513271256459435976135996477359937103966147430813684391848249291822715537287209664455243856961984015962580816883444850702606943913989708021188015506255329103486466323493868816349842764833686136884543925146745822619828178226799967065941827919503222680968385686485144728395164185331335778384916098587968868250968962472707053598859673527320950091753069178361659796372267428006859294059532748096283107593112590282468277436578113053131856985252274445281066899691284379440653347871297404633154242300882130080266483487066753852791517783891747485667132648501439615323102887737566845725172223831889611272831296700668367913882467860315370987550781297340154451260561622813094753014334954996633878685349940507044523576745231494225087243316056660918478286677380012348514461059538895910949275083785107955977301949267130024043859624412243883783502846456174053981203128213595031332574782466507055132629627501630598208545536128274283518026523599761649445402445269220928674155766619947195413858205424090957195466179802820582642977291273594063598844370823190547913270650563799628221731030805143415514360491494345582946403636727755604110691887080260184989164287522236913575997073537726729039679951693489426017287471793730592910978304382016411517355294248235462398236886286570133688934217005200180068656551144898437745249937270552635895706445058970614617380053853552482654201443865434496313813092916787866616357248637956882611058818120094004820191431338377712416841018193764181962939638488987445293527903603293767932714774516089644118595716832054105192654087889953458178576729749617672178015256010504906813038201562534283491336808609518934102300659297055216390238689651253987727355836935403931182063544162415398340512525468834644256078068603959029276983383767917967541403363681368163632592715910240688136494910584808041602234707883036204000164083688569304698604249805849996157363549352191182484339694825087744183045994625854200931565284113158992444287532247953524033154464341115478739649582359832993272169982972167874781847486807240488453341439055923137262926779071988981319871217130757750607946438405097550747024546858358360422940129858458244511171514330572000879269548232897268328808400472910920108083118508132012498020278489674243000019463355304499808833498168116127539475699430094954149007030956614938143228489784569377113938604738323467830638466009407078836236114809843767559337248743443335263655013309445407459035164203063107249368319932800332035619956950167323396793236704187628191166503891590637054834426148748142583188351201447272718767807163888136589881577851829839251597505203128308311145391656031710086377974650293021796873650993331945292314505738413636996040587312832890994947962062920541441239175420127567477579176211590744576719977003487632308488572234893599991539293219116586017752132583579652817137286274902372082459174760858388453049490485873055974051084168884384504002964566647123470215965178961984397305676566779253692789632554783699739125187512607183766854632949358353695399751751552768782441455121837546572399489450602083833369973222184516699585586357280510402241466488754692377088531995502080798729201333484702615401779999521619535563490163078834317680834127166873711530272809616780475799870610159662267873436500457080461010317420848742176174267967687588937025314128780709248579913030508229048270585457197866802064630508969355024332617866166781182487365323257439451530430705313587998380898084246903945689086831804563176461416770394141550825265855815483860377831560006553390737009358482187505360096778828934166640962922907128860914525740549244586783149365369388746712685018629182326166599452448722727363432383151076397069034302700596360144176155404888160794889907797081615458622587551064212084691382021677094013676937209687729230734721987668527215372042560503390577265773889320787055893239530390611875812220565610614787920643176679871718410905368516126922499242687077262350995298905685376166617442399284900986222832752054250557338029310257227895816729238657547376847115848738793444861700293869598146685833260266592148834821385741122751018580081807324164531243183908282618630606924730662536697223720691156438284617078872381034577553144142387947773522207688681475056126220758987079614845287148124216269243972410589069625423118752359811711188784384117519956052982339316310121609371006405326148102399938639751671716311718612056034743553798805176709179622344315384423914094312681118204736923219513012264560675879543030047327367399537603742482569509951741444500884325042341493036773972493880860290220015951153138778638137014241791463815366486436190751457928805244502409966349564348268841701483398163203673539924914526902146440884914099210964074331503781044049312042082939796008287035723421816302556560910216819126104851243214550999005636474271180510706669701881011540845079291841041865865175847605578456414800754284528611549320338602163569405355358350108110066196972411569471613473019104420335497050797342443201807743352970434082899762289181344857444642958923193774103323031618231372087434498569408655193420455185301298222819405225499849508232641589133738876732132916794282225769097684541137024529802957338978522512647480536671260543764400175004070601102655528317332706381393952865051606847611930479734066573690798945952598194999510441220920505126745088766674758965436543841311987580113027074179393373348825283222698845644288497159985141102020125749282710012537609116310729051099708166575935632599412938761412809285245136893595966748092697860262581684400925065148043422587870768674851039626534918218527723376195362131298099159868774931764321564075450620771603405673943971969268213184248266612217900699911322091657973875392071995004155492010411761710346069748035918402992808404539920434306315937699080633594109854937423290443213912828473778235818514331471404537524840316307868192167457426659636350549207713569776280391444504158864170683957979456571619432104216739668306227814022718332812603058646211000578457891797368897250176430149600204663246396220018975725135514272976068113667955016626392469552084303869879267156044062315836505672456795758067706434931942445607300226869009831707781419160577260576421721520309116264110240142910289620073039767268331508385117646022292625745190783285867150647257959617011945938870260242023475027326468298770027137661640934819393441794843270662728830861308662237534286032292007268746937295724751459127207675499510192302923801552863775754959350791554055912017025686107767468654316997893197419022033535253730709114514193756576468057676195727285070674889072132686533108146899029164449794229178834060030944977881646347382034089356748547364098626218034906082046192427252608748454718110893123494885885893753534769216176091791853933818119173104272147129722688438041942806543198818369383050737017013400795652173852128443666347015134432403349652619249718905214761794250002593114546123744084639075556479415169124106900978949483714410654138321552529946017955891597810700227809802062783004253471217136257721556292949263744070793006225752395327055304280800851707275234598501173697702823432194492672123139462121763113685443667484620344457058664010154353039207323999504235690190707103683237089620060391373617185073942109507878709590953978087915180600855551111115009619677362829112813556861730208276406573725461046290601289415261098905236709098541445019067656513917847640144827388871624531750001647252561959590133622665379951747766500873968917354926047330703698866748567276114563575694984386348255022693327625036290510814186731416398337807800038903629720963846648771538523762939881817678601126747124259537956958247896210624227772411593362959352719878358812341853879344523497359235973137481204654094648880188513915723554374951645165459307143925570233843191296163461719266255233284172989541057569704895400054837676118977880560162344512224056243244916255229769501820067167146928545824250012692228865023197866582791089645759044534950005128194900593178962180038917186111604281256739487264738959934738668832091834771193886423391886798761047798159939813971996605976207881901991176939183310552059165668548762160770151346856227796702065474831626863121096173022803819968693727611342259378818688613182279038899937781570323342440957766422460823256172448310820612834371989080440377077526895071295194759848377576896982255184492920404076532705006727432588108463524412179546968073527079339052636175379994690765451717178342168522851396864859588780224794242387068182413440455907903841639722918089705306820971600214422479886190815479361984901329577555460630629692092893230686503624255072981301884384288380090784893025971800861508173052413052087428639075608287711096166239075382209317633472649996252307227808502188165036295449306739742780123571583126153003183830529145777037171097713450092368034292150062602437101467513883866342307851205058096895883954821493141622768285669268724510787836689988546510639857508430753534348585511910622823706828754557054793521150540697034155293419913711503494484639241224167392450111445102945351003472740091599477974775245566890092579598195263945709636911327599542804801897188495771507875123885465299663139666644480031710581177725004722323786834813460299483531388434687745801165255940445570772841002332229567195291571046724016299056293209753039650032023826660943476709335051200812520238797068404439687405635777394867749176057313298580581746838397377010279875604039017183556306824094227481969556346609162461430759890797475301506008815275388125128935683549113564567699554893667754408156362243988652409572066793885090375991935444099242204654524500517708993210375776349244334489261146116947342119884460168218279308312470258417583262173367556798738816877372774154268991824252246804307783059954431844441898013628509711427934806050868404143094177310282607895932346943864235649663531943172052899522600550343767440954007548012246041054657268120967902606791085607920999724655626253388899287592091544530223294586918002979431882448421556260516844327326473012054313687087162738846173259843203810964204836404912192120782335885778328489622312282365782896309019645422122231497671992964101514924206434819844375945681067386822674417563322745548534523179887637158182019354572563754261904898371465502404925141406339039356793194625066058680279465734506185144408661514538519127710836199220021322155196887760097294913232202249527826244624701143720190423976492697908710548776503225002583337586710106742800232889587367849553107495386016306085347115583683113387720485042419533746802697919656499078377772066629865460683221646689060937459271330404397695290020651602535206524920435674199918987324054957853403255331184965084026922596746617329569375536186778043803438681689654604040980120918489465496372567941449959741943438382831702869753487158303862956402982339010041450318577626495846399299871960484364947284893090295592477236095670564264531533882906253966381848436767493314752832288223453316222582128154358789863805026290668329929195843184444380425688481354917584726947669364167164552066041767253365842357970219528691281586347516123820285659257316516405675150741723042936558328986935894743444145148874037534956142688357787692074273956201444897614951368486386033873014300796998994542970749735408801399532565118772456951166066574485052972660951539683348706196322018027084508030095567988566057170201886849273964809762239496765892409127377678935049695396724777065644163040369678603149975115101319953684766348439362666573550000970438807561514225972824396580926072676225100990654528854978119043535496980146949909721533104553035130453559871732869464296298313978620704674045849387851170955316408342478280645369186567171337756516199903251206242674033810041454649462148510444020958805465721601798540301090928161023680090219802080394581296904555511948031401823214112294092974890663123689335437367094704345603728896531401857234107779164573107960196242235284433362557891988625403362898965475797478398367761034852133364351739489086411604075889807940448144490090465115128091394678800319211391974175283839925617411804874308605458739605599032655330655917076011117728574709795528400173335645089285311055652727950077483012448050667538774858727305916537109037730609019178737925814473682056372163197933647322010113109314781783953966859161342959056718702301961925070662959110642270775864008049130179434116597041052564252092023385063282466986432790667481535404334747245009233226351931430795178056763658120684786097641738010280782734650286517678292884208319002154785171429607485462987163350974147589726764132271530408632705862490172936821600649923473364660986823299814398568065593942653593821385868237345861095872147573325483333964208642114544186552679654226501735761296855236370682570428854082983299399864903885232224676523870123359943324731220700874654792175464006767384288560752250748407510279520602569062321194133115723187303494626763708695118112385379644414659632642409095682759564104153258933043344502090142917333504543645665926479356262703045319911231861972458493275782648562105114363058723908996149849164424325862237952804150086424410822232137306302624633591462667497072859215825544358464300951188574866554544309942403434059693499594132559889611195447503813416401917296466667621482502283485819933315676122901571458898179258346113689176994335589278323281949204693894171542747881748737720848997198223331087505576886778346520590246649963001404985585950523319571388785832393336915478844614166461316293581090217222931920973659807491244009446673910078553829340149218922301792118427618244760988645816263928039985456035520922241126159634627981907109849853220551156424225167359319221744972330508976796506642179540011326141375716561572896341834876058270963461000555076286920374118127863938915997630198572343264644019642273251513768831534170273747713063114782025216798978027850632819029450061475610447562115189922264500739244169853310247978017692478012242414605972010419992283937802958474725692977265705579435606925380186370340128441607984657382572680949117486474797437970784553161516146107018424403019073314927745628560551106114067434244506646967496436609090929771092304302739564568392255864051188228414972208480390373462756649289806924741658224424842083250354434556498093085904619193348580648627584377719155278799953604450374683697357550878415418137032086609356256339397352257376504044838659734117131326442232638705522157683494735911257730366731566084107872872199427220241186197072198393574239583880272380302051497534031030021115136639349215250116811236081071465110176916129535752572435801629416691621064908602029546245074889283396898712608391847812651256114345067188329015402980408300569349241147903678796272091492303340147639120522590830060339711154845905822396949132781181752356508965943364721615448221557190424066806065581159549283179414894396303904473614449493738692864931001470197901908278346188264872755390513433089045616724952511492687083595307408057910455726736809486408758933776017601966650006544955927582823235376631785575417917837179737014102251400891152945471212301698833735953512276128525613180879123116921049937263811919838996804145419017121568290227374234163511236012480925734206429431789844072252493212507295139899848522780601754028782403468068232479563089551164591595699524049569048175191969475096773892064118873877297887090931363311110560929326060032845130606478010324583238766826432750158540883940905137377848027263469696896337509045643740112950363014925152828107221696890654917940593090101935282147686178649293800424096390501128084136017665193334680487323415579594782008954405107167670519596595147071333634088415189089975642163898369051251580135138841430699833108801964335288178714202992858183217693385965215720273017893185863056945955127819128946748021148897247671484114773273701782607379393881573237435252912926497966321607590548716918843104431434918866982428750216135496039794763847101108739659737616487625038927774410742992202036182261529542081524496860587454764648203595081511950100282533314153227026161037445412640174395408746178231477877426026443621291086737375090911061346046682931770955016543681942881526132589924055935590351267842311482589647681942770559827378710404521904347549536753467647446244164876439122298351349996239537874522295283159998334113188708997610186516949460168728580659281084262477098082445452654542932118701174509198812838948969775953343600701186351801051084959213215175151690642378300806185449302860758564904094635317091185286695848665522741424761544078612862278976277924584892236165503861654129619671325425305048216057686163376044052344901181064053136196526924831463071022832580860747843485284339872406472771929062477922861025956068717455868818229401894110481145758361498251758069290985258992188990277134372452599491291152209493296737984733165480806427115980776647140676121342065750751886225875590308068958472699212114922285510629940591846773236436660781356029067436484186049049534655982541198832086841302737546571498865075896469044498342227026153054291909184724883536115059714383719909084718913349463925665346577435821933702477975491079085228867682848414153978117274086337998069411208837856399752709129019601881800529115666247645221177758079756163308211804046574676844212526191675343665207903856273792727093278047474444119190321475326131103035651679799634782149337904358983837736773816918212644548312949520228740425350778162148414347345943628297717543718734346785109028274861481170718216204509511032142214036851929126562229531418801035993455533069727969781357290752724406099075714883714644672421089120776214682682059304728050320005271994540713677067336917117385627171797994240821720724315917013094161956453159956001571690213183692644909711266596444801248562220849050388549649825122350774840299658139049865090641605893143516229600775290575156541143694297144203725732657830260262982316892173022395942773428319621601897095290415460535498030343945622283578648184662111831310110476481611767670524515236719302905760997704490122875300651474424728539907918411144766680671089167684013194057822905536742736248590046948453073498013893851080258097580804079039524742123780747725840390671226335685725616740027045602347862174536727383749505529020054769116688487665266882523358610208874588779702249312865183545536558401650373300225427768293288884899436822042341677981519646157570304877831355394987508975195055857052639312292805485539339782407932834286169758008211889559162855482096879467248434630545109151885710076381204375927871810897267892295781799303866044075289479853571736489210072886586816931694965501661993308485578750427209374198229053012879955130877016804135760672527051518434370696234388695658434057432542252809712532939363417193888526663887939438354869320616619957097425889627344117791565854556320614429405379273616484747526306479584034815992330145131813639148465196829822487930493632650952971770402227505133473448200141723982513962775436811289353914044888484427641033028725709016995833073612817048850362429818712651067322185434721248099081630668425112834291277847018737474881272109878185527420990876571013013540193258400286038141751406258710155672787501490411014804414097861565834567464076929754212149285646493084687248371311590548335866108351075170118766269966212656153221686540750669938323915569664217006577188476437683955310096957234341284746379675362364825654140064326339508584440460661995511843688226831150094731339721297127660269460892489604158702004294266738553047666153998273760698476219651781614504027968318823990369449221942994201248407500714403735031138690912237567446204349390143143236549854066082057131095903662888330556541424236951091858960679868542331728460743988117710561020414818562234570196871366095321651856656325416030367742334031769701671808873880550090194422798634790895376530621022594023403176711476581557520650067083301946611972837080780041435679877260476454641248780514908660902653536956371589601469368668361665721212026217476156407972983238616223784527296557817997502058354993842076617884737046452646018314370716293095243441965659774901364879554953392374532100803631497250807495677811343409277657613560651292845083473740954464479895911907598493179660517215247429680986379531077891340601482041449648459253008331253880771017244030683234622193997649462787033926943026424880169181560043904687900640374807443699420802107817759151271422649285987283770798259124002000485093424349804462566211201647429978924049652462793102742052415565288262391819793873979134787515171922045083035002514027375880362277798122484953112542236121912356339013699722791937843245205472406729195385596196723016257622099301100986059739561655946575860591515991577379423517039107047316173634897327160181089901917247945170510287385029757557951149895217252182918167490519468997193557574305568265917618907421000725953218697531589213054592208770543522084042304352571495868274964908373768272721375490697276516369423649986493386399041046916090593635843145473291225772380868501290973971506751866608652438230090998384604121401912995152830020341679849997026615825069020786624688940520150579376186083527546870128258484544562820768711741833483152470042712680735146596502236676534162213151138623955520878061146302978915936995949838458284895262162273709370204386771655364003315528439397092062891668826110617765048211491840535817788293097637738229761982447812381508277096191867660049335321958251445043029499885415957764554022634786781500103522141159652062035345417859970244598055133460110192777677490695295092712191957975294656134786272541935318462252828157178724749269814198592371017977985389598963665916087815281265757019134634124259174241334521278253357370374818834402951959351318817192272955357025095034607498210330177967171057821911892005213684767881064222525451334798880953431251436672187154713871968246644627789031700380059084104399379682170204841878875157946676932903233352206384949993083838154196949260434519354330913110325721345358149942026216058733295378960329952870669988615911492687715705366780491518954655838493203771512189018880771509376570964844869720501759434769792917717229605805407722217612111614995998821990546088220555088711332919248226667948133028437426444903270911559883185580209094050281632384833528537316594610133302075677250420359268463260386066236484091471688682485999170146711074758872162805624970124626015823680701787333121928504410545437228849264981591401135282806689154526100094049922048161309219349211420051869729141965297629077610167809356712521608288009596408806764308368783411925124657483577013848325500499521646853614942400870376746242934712186176977251908387975068907847327992661562780998911203102643122902686467032435776716809142206519876410049795961871332952212208734982199748771424509477001405387579280296462448647741178938895086405155391154053698290322438582139269469882192737007620544448275566225190764867394731481785487427664100077230310504176504702939270832027256231492986619182306252495701529877024444022938965336886115403446622731012251149764358933086735408172267812492411351573233311876808116720502307646632751062476312170274732710724377457895265983293861229481170815054987381028079844452142305953882156533109910623506005937682908504765252107324377372344981014630847718794306092093305738480763583202987026327312776197409159108512766525648352236306001414796801340600310297319185262492991455007903917389739213507206387389720647039655216658218049295944283951121172933210477884474704517256468301875802376803514153635782445034480518335068616022714874354794760095555115714470959874520101631083786984228472537257041065675972515787840245917802888994091188684349982669053695761778205715760826831971705125599408670918164784410789172883899834762424841238773803510075842193870563955442055192610111249070571780408034300787946363809531457248123354658013509929916991238067725478453118200350135390172359091144445607099905801358472510618433806652532710627452377186406548336143296723767904557963382621912031766076239579115787852514747427701766522204680144215066415983634559738280931410882634536864323641818965415196665989234217675592810198928216778767356848323759027448750025390094065697417206511928325997304602971032686460470936733638672199536035643203636441181527667825938409267004667799858448951718071671610228918897530649233879208802222112626691065945576415397372002331592409780118315383787114105273803599587480967087846135933875653468999198485319814580885496603600849439982040579793921344110037892640569078074408265636411294517047854700664896319122982913654137023188512529961245223600500685294829321637100715430799503849046725826635166490190873886319508265619838166702450185549970999331967185384558394713952637717886976674516385829879476383004806077492349439911738679409621791405998648450167284067795077296034113295878929354425659123797897949830030925303774823706663106566330169541883831525304497385508848348659767807919687621465841801180654343921192550244775069435817960418047658684458962345310659489704034418909118921489640479843689703731647893989770548705875870587837540030433353119653011883663816684596854309845770006743820055176768609104736753700815126920254175666855396694650736408276996748359446988179872749033577506946475348664347902788881770671433402478575355847525824019770609143415800617920858806580427142753860452303111031844742898944251390239283346957154819027948959367692493081604169269177567609095538724679185392994876221346569934377950115018347005212034398166546782035081026983179443089385399483525419090154688222778356952931793906540815448049442147810169052765584949465411978935761596929582820327156126740198592121869609341152186156655215296980849059346521048200428303021192684762153310662717163600255248770164430693012644718566731474155646709357444153793832715068154961250051829481913510691388824155760372065443860395295373986170616677741590046091625230978689424234204446075665648974528404520971675554437897783585290967192816291196902817901502188822460879085282704998199464931405520548321128046799468287827064760444527613230870216341132515509889496426602133635644236494924078747601416037241604120465418379229621615798016416979300422667059260692152230400239880056085492634543518824390364515041858255043585165632935693979902417931270322252507506757607810014134174899328392123069147473335502913926878198909062588598806719096830244361424360229623003318993501638278951117118216661538101676628754791076787690207157625817419413140145243241719084034557889331394446414243697543735466286483640617740599396921756022918891892169165369410068005310011167022501287406651003306708550841060092859836661768381429365295296420311497640292253055627561882468759563553918926331479966778194327087883861215674470436830322137744211380407284053071326235866972115650920042202959692576460258506470706162772721533584204599353056600697032436025932522851988442694646681033869296813801546652437009061006812100060432546468134017704371307849418215484081170341099181071119276400446392785489526756117596498646029085928972660655945072777187309132572726410666841467863998648782058792482561462713937187968610752477164917418504032909170592194573668372100770793535307028300371048022349549897540250894743420240393330336973124298855847478497020340555456733198691064404395840234515925988797483084227575742742449292771633730466327327278769309366929849233431284835021389450470934060302473645746637028558644296406870595013475285763270961427010727170747549668366051639964457640375088351662626132226046124571403270046807485421728110264163093268770459607958785738374087862556317603961457488687786920207900555576615017018597517016768335343516990232127180801344241725801407743162099450831129603957375512861756453178213251039022869393035941782513232147779484198973716563315307207688859339369443018439634464272563196012268644651735641465744216107764958911746901340238667075645062457273193118514630884912368907874759607762816712582778550555704879442729348829400036701841536369642486761190210002227896988226395488384409040291009183548126876896637868192795888793519898165418670251812214051629295355340851707816472386048347168765261990051652256681959875346965127636092246829638160485417348425739354533503200039572062604112585495046120161550493988190374550831008480004114592665533698876561662924606659172262221150225015646571636653891161450058302243147959121650620064347021498936734824088524557443057928353774688902286645924377247183175797551089209092578191550246309504811010201704483446024753466622559366736740980508985283537638034955239946279055803226531909048541896450247623254139084393026633537890955535427769586399113909095910761605369050836289722504332237561586510074890257884939629834523269858834587566518019177655214854886830854427330647708228778921257086543307233495680481287635650598134163592812687997689200848305618605850201516887017846908556009800714792330589915026422371755648931658787068441643896483723046117144249671167087822845016298467015837877910701865894454718020367976342621709950105041800491597406633571938520041097056720902080676075474058053637711246366531700049173924860092824205054130152371838638050806802006951108066885355464670572144884796784784446831406333007431033133229409804363485475235879604524382883482756784061979250558053410814456733770342129824557429748155554470048424802507870013928941607203161151184412812839788350433273926071176680307050523688811026673274975252526024159913454280836359967050510282409100281578473425048579583576747488503779635401497251399031918929695617466743300475996668922653978802626841281728119104542382381307150578036156331698675369343873553208948332611783558617771879288152666280072092406675006275614930614585316404799376174776775866500433099869902017499392016773057956789737869109501298275454187472885713679794089608048850688560374579599708204747530928039877221751461429033045133236843445166711598865026281046175648246991700257882217700588356615918043680212072361690171665105799249492535575333653489186934459215701792293343715718596272595295498279086590689059505833877591571781144189959419132868840984196244451145527057883180868500896765020923800659536063232561261330016400736438188608550625259418298672481402070367912405813166727748473128571374523016304957436592503310656586330775475279058521489192877138288181919002728122581562403899808152405894239047378229435663875959774191682372650384069985895825372535086985474575401473213561273506244804973023601561513236100606866385919707379804026276100330829039769169676188151097729893922988171067267356907208397618403557971960238255962627410058780969733071367242800481769834903498084299270500290647304862814778474585727281108880754197472589036206459278843842154134362729977970490483173077011478542644393542823709504900173006013844884163870321265350020140783361402630066756059060640047299033759023379990255714458224265525948597481027234245691360837308072707715232703094435596886047898235899702384643718899912288337450355644769478597583704314957416001301193854895125864197427091313574868678689112036104538801810360409744253202138252705374555364860370248471429466697716365278170623747209706817365671967449753869533356062985025131228113262890023594488747603039977990534616888528092095750964988899743598860708689454547275802858666543268210088361909992264422521371962789312972343557254273179120502079773070257579210885219076079921310378242024499581545786760447328430420830778791364528247521927535727661447515477399951636051319227968605108024177028362662816548084954308495813891410571259820209117077725961012578170526031292454990423669177379176027653468489575456123192585988087983744164196695025848945963154562269844884447600977893760259772506497220094318252098381690928875676727941860877802153632245658206274477336994781292464180744865057401889332399532980516388351771499959826995309682743948430706560712103232293997143942170252867529883966536103301339542285603799498467099444934334043146969114585270452028231299601797692265276812368219748322373647060685557994761822889752970786010602661937168759594275912371481570543955549097744010177470695104264083444808617480900262476752250820208502167779654371400108422284369541012405443083595710466134455467577102179561116696193262569934943442652763240839319638006289907197892252560102953644869392202638504369424849381173126441439032957594034428299634498720287076411567255214248874340638644253757964833266931792608399221912390076541349359591571796623603858365931079517594752810027738169906177341992088462043959878690639691049355099022688173879049079207856350038911551124704002812829703635469423478776200102457511791037355185393335979719941707282021144282592002534386448310984693655618030022283050392189637334949691252786063165954935577995649838590001235866070557611298401585696229754476334538911603541894539653842071677945269185431245659356682526853085257938513597549172100444412925668826400923350605291686923811546837487392430753751508593337632875101677321660299679332133547223411886957481774764902284134832189695932657448686624621852391720035011106971924083923075737622325525109022284379738076822842126984417280380152893128235340553844540968075032913401575521738440264334043505419263990068439060315068833141745402226915659632462554536130815474975203192225093392371744293333148083871943195755372525945362820892783832887533094266980084976696283232483861391549532828110039825066395025070495187017334759502970985760687013439137344430565732616694547573388500097532123834930540124954475864525645903223844036581550743567239370817446333965896670459077296015919065890231786660473574645331912683916427661126024849375500629216220609927323058141528167894103934510400335794881502073803601422099329466898361055532003668820548426506746209649822466887426405346670184289454774056307631407017916939247327818656050555583764716258993377914093121956989979563588454856110106965793412534919423201319029381126446446869288441243338459669264703898662186998374747721364199578173093084477160353992103063679728322156139209509982558998233966051362721334789936400850144283730587503868722424466946620425914815359000101903657838277791593611255945499664043223281957933911649711583115317828229377938223387154756873486890894932507371743277158633683832890353197003556793553382037692278146959147991468939628098290385676354221426577521947411184135138445981823120418069076395155097024030665803549086323152834764876615787878694955552800217057426351620226667359715686617265356752798408806615791491758859284459073534306655690101891750911285037363694215403772901318672412073043951253492453106417612252147144260696116240395573204266359112150222915933698851850659583163269469967147424212140719403289303880692420069150326203682892269548499858825965350848764868160976675571917975006991796122599131827184054290972831795699894280197889324870164375211199220847412566786075276421187531715789415615607057250602386909879665102385189933415798835070904186707893835426456543115505569229175917903595181822533608932078785941280865975506780710817127396175216147434084049647938983856767132777423468503585343938900857524490542567491533464955838693266686612876678979503964175171506091368000032654993054780303223579670621850564978565782325458637641194701225236042637705564121027736606057474522901580948898439570414445091073185140411134013908352441122985648670993867295688329946614814876840386098061091349567981396480143350551346256032030436830105129305085977879992794617593645542944583505929940944200442809605690464523247013218849983406464460227872699677280849040830343312388136567943662784150748996737086471630472870252833078958587103691183233030575411666143473750445192107208077613699603518213355806853730771908723677089320023355885362528951302604653211626149690659331452795009706535008465725109316364676101287181032756620329141638566170742585370893555730166381203345211639464317841863304239425863009026265097560629870520436172130629162365472594654414900955849343385800200894759740148144510654758645272626179248593981601480868260026950253474269951679450415545361561820867065574414928100954396936503327406730734685589287709799896345001296168060380064819825261648581017217382175012612016188582117926510898048298018693001628934052417496295298822346461283706811258575492807391108365369560474311299369772229127280695077309884563864897353103648633759127769944249438985093640277085875812762061480418703948206320147157611304119711240448062226837491730485257377734686521639308231218136334628838690135230438976142312430273781753661596603546589580197746807092515820201665802504927696008691013203307579854343537900844510595584495334019327050377592253733631088370611294896570317146729808725499619409950016477777862420074502138512700731167262698827442178064623671208022945824156363307750846052681737482735856821662621335647895287029833412440599123928812675431120726569245143882015880897294273622877629834408014925741310867786187945466964280863566811057858840796603507511386580333707143405993961563366549499223788880582874376265869298055028324577917791112001913715097106490707897007085133758235699236563143442967117488106985264867217060125604703551816169438105750543963545193427873285807266890004196984196941887708750008561542402913055805269993564885419685176134680566891446774103708680889414444765750230572100180225401572144513486515989546203913582538424749459194549272619647298448556074677337823801456097377402385350968543760650499894210677049723992769393568923179860982123670110540227897422944503276091896181130154138265837873830802021212294738723955190215449635050787619615428069768881556151631942720080422620256930745662372701557751075638592916694086902118171372780066411334927395749480676316143587781718347479919133236559255278253451429180583825964038874535215975483619779170276926723123454530583647317451038267511903962491698324142968476698289637056612163714362518469222369023058664297441539740284512822586866172020910842219729282511563771027116352780087180577897664848255145042007885254988805914162104894897590066188276063488916960541001058076057516500059859616399171347144066031417224057198821055851266850446254860599378022021867562346426876556243855722238725225301481016689559342007953262567914505125780755558459144079420184834220029025717227904223413970000674709717635314135377914915418141999913257940221682518470979044781596480173285447568031792897892847956367176234572298774970276247964897306494079934682347662500750546756249689386107275090558226515998767794861376120423712385522749982591835984997497563681687123927228174467506474195909663004026005796937804517094862758540142155957510274728995173585434940636099425918050224215371522023556868801133968326377443793867347578511746812587567117148881793739762300527276256080546738838162378838264116606881456008493561547973339186447799626103884128188959783274266017525559363602303157843486801012241363191089064087029537453661586747851456224950518315895232918993009531335679216537023682193866051866457330104135868789294536134623963857995058799355327502049353076527278888933151251585675907920325130034974402435200739951810623974539623185360993489933518371853801589497289761519200768508080121667543182029432703840173712526845910985078031662875527834717063901417096346499039131400152798934836369053218764183997943707496502820049268791745093883729971354222027401300619660184233945632455168668573911836593487122959351480874631296207127939884640946657536838552531868586788693936958266121474813074508049397710010818275052745980441041526615743679354552793403160460262958596787786506662861814131195504107797174480323836799372599787597779207844461521195066675033972818956937036209168308442658283367447439778122587538228101553467097464007317182088312116780665438547292175422271705766118799516208342080296967380456953344095896803968207784198700315294566127818055636203187663136578067361834470280097353533487723426758062855988139845022757712539189410574862244132796890084290590236051851863542107444860788708574050909188978065941210215137396865737966954573243616006047939819954249045715161056107681455374983902061967611080900182300527712411316176742106014490021287525196209873206658808432178184854657704510815487998483956634785736224394371596526171395354333352863724880070945231196790193478984945417006186462268010091936205392304262961021730586744493441700530619485941840829982506481135518063054271799193639254180877782994081731793356730778124276184389307015737672663998754135461497810393948277075533268258321103513414138776998505944617830491647969634572452739983176415910101071974324345259382113587543735665840585240669797959911747543608444052471961551885924078656668995988940248257066133654395738540511898517575165177654400272012730773208010739279007744800103081643085398818715247738296890855253582329465754807123743921138443929361244027215166087942553019579398843940507985901497332857470470306588737445289315486769162348076640287090925634013630338913061278813419023881596173096612753688896113068811113663052700615070254476473038022464577019503014711960362649437993060797589350868874676277233170057717996266949686649280566628677915500900733562274254957013846084622295940071952473663555971139121457391225632011595315694568160620032235457893346301020517765185857401493707381187390956198022797715969148890756486228270884910672350173868946220017554347697598572885705726740149463125006078787823488763496437824070675858852364409928619438893726108078037917290115444691578164120426986450181671902876697197433842004045865163303104649715322281463357007144659867622248584303744375746799352977117728697543957356560646560411503289347752839133148026389517364740320411678020001409627953993522597620795766781069451874191987905751984214717179976524502557394698679204825726278125269370943330600184190728244379326952243181594468967721179251806783334673588267747410471913843391727009648263031338143155881982356056448444510715651079940150569061928705859366453255114955001366704292542360006040727824776862642910334000205060153530332670008931776039647122670387300213381691248599744272105097720731538722536363727735684629259574340832589652003890176664255537639420848687638528629456164660331833005516437927667010927749410165339188590811479539553273017195562374236786573253293104165210361714851521036244189672865837651029350404151079924028684639375027742919215558453542518222741495035171089229765127911686230536597593314057495420295840992667723531359829606188544253895881555408917177497806115677030813995997366662860700540837437720166382928018307342902674410806169103407441629342665561138292739859029426341018144247432824075724466895233539755635078609437839991343464474528297168292526370568411385022512333286282631583247324026233694527870481533440165312020381352272255369548493615819273226133079508298061085597045099868607518779712132788761949202464414643925501674420372401550236168964134479460575757403765055430527483277842528725529670449698067690423168842322216837471446197834013779535305612528148795374007126814214102738161638493651211783995082287756184308376040755496657425891505329760703784584645370782353923385519789405328192058865606699558992657708033666300600089310423915918018082187647038644508751073014447596219715046905110408011384182992716592183187726898175361491649425029544534463770947343361424548465419149613873975286736028148187925816341498244982252288733654408017269927812150257161452637816565496247079464375146911823471042698354676226173298267038950997057549812401870688663666115958866184259347790767550266465237409975236764037312349834193218551369768035414229252505988725828265476172554344340301640793591419508617046336804531329490538913410660414657240167049408748713909568212819573727949202048517795559070496322486147175853218764406560413476910879097284212224057326741443213206335841547930264817930593135077925532075793090105460501082819776395674840517854281023686518976227576280165020987007302952135229845463528772320836438574940983187000247025195510314870337308899169047485251745518766609825252079620248484617480892194282175345399888749151715811197577230647426942422389611073626721067814886139122700545759976892637773680126008179153741654428112253262405844184875912775569616881763101282488697903214641734874345234042756148503303110882864255786419224940693086380565881019404186809238642219740685699097829996353791849653518448472778369086620935849975782698260650363865694010928836102961667570916543562645533685929660035068290743958631761063496371464407564649720501800971233206982646990445526680633330211986412651228870415243676576855997357512107330242559484056585374470158955630343891961140582916772639183187598769207367196641905573060245484681246756132089770444614910659817429871902714862757401437305010921461486052830705788944861478576614019752439459323842655444976333420817365804484729144543146027007369049431032829114797424993895555694893338298849126158747896864614834276240639497868601202283649420634987835773416407798094635960124967769643393446066398549212916451783669324510479705391203468889176127820616586155187149450696292088210377326562567581214013522079567244927352022632161470128790383081748902099669155971796008638588217554960290732338794139958867402202464115016370461118577776685382966037995882557223150493186922367881719804970093976815993991945554873387229043283744902044068942391703600818840331284732081778368458829299639295819096001259999232951976443334520831465534691276990267213776633728019399442499585383152388348129800657755127098209751561652227887607236886848634496435347394543758047225707932060401631814675345178079103220618210949246733582594997326988498804266760152508998956728126760255976530571360755979811916560406128617860340451117739214878758329689232625740655802946851943521613652126403146878685205037106777937499866935315786083635411969855192329687831847511936886189574381726570102286158394271493122552547630818270900666493383078943301280407438113815466367770440025660323422893314663482153648121846296735164022939524626150076693290081442062884795967023256414890677108107109446365344073427183513310887296212275060318438668718898351512298471387294579483660656385365035954787929821138620482097788582573370021977300440529068228448219919241729114792177948558295065181845899890739043662392078267423091745937490917490428187036140149187061768276151907999497005753333385059649869943634594411590523994874278688614291981051532262197108965290677218555103601495337238763805957956341000834225407120196413138840396301899774185930876405798826239283978600523568103114035366211681491999687041100285048403135565715224152101235506984508727664516485976702460363738698295532434876374470626232348867322493242979267360189535536686978037065667877549058733724169095558468106206561031481464133559977444254746957474101028081556106567562928118586466155289847793815202446699642651650995010569874550502664187203679223092388407717079800039568539057869247775991514214041784785992692042945428133099827444729522216700033147727462919708976378848852703573114362323882277921828868806406473001929952990425928010996499431642434726389780904979874500746109174269199800881429624224909124886303350737306255234549260540973866506134533582167836306018998452426905327115360108910186892572862967995476987129082840086000344732075983967185454003521027662694563708944134664856092626257142903154689699761164251150223727731656651872863004145317751941793210613361546905562823112986548862380310696815329033245939590100604390484710957233713867242091215989924114670891732204400509859575234244683835487724855825393663866126204211862930208476583406739936736546165751963913615785921522175859132847590470561085675362805019474722318130751882849974935985570022608411249207776913381981530422456144663881147198565054168796307245289318947066591318242487513578843988738030975799207491115244928755004235875050320657858460490034066822943065134002829568544193072741487073483576055791930865237653914749549926694919756785529153981223056652428905609800227301617197962257139521012579001231774284814287894550515803523388086531675207816240256396501094360853935876519854413701811504826165456373100926971207528906202882335867179043896206666964707076684889162808187047462486761110323016046669136648584204835640620580277866272152576060628202954154952227951331009927260767182773769811587313909073935921624393717270985547490095151418151792385209701410633047640925453270766385386988726450686331048573013666714034815943108131959840778239013212867370817613003994149451052436205607588402253276450087499619253398690763872540699598263277098743962001657152448613548717715699218075476344082563004026501038820357595360901513682979176721463448273052992239523662359242942148514582688398654783355832499465013566401422980813807851833814392024267991130612525995904172285795680725796040845551073252665894033167938861416261301542302587346223153001908692672565346944497326573244662512284158538057231935476176026670094813263119604240116538470289891453808394687016697135542722984672843405328344984190621340937662502501930534431585612518976034751758400826363779497647606043694281063136895002913252185447682663766315696784350630115351177362544596549785516560634711052461569539099458449700214165244907082564135630072298466239640627440464281325867976036689325962411307152429489843290165284978194716228066883113147937185000514305677341481192200690998674777821155309604604947177310551289007648423372797540585358266210959371282024638337219933345372407939369892864717904194679280740701774973495893503086142081077272641539959092171907600909972228741504157382442359161566776687727543737248551263532336650229428717074828015508220230826147510813817496170581954577772892612160593962877232355937806446909683308211576043030879680339349624117550895485246382697997885772727488993780790098031709024026875129047569541114456497604826624925949297245543674734432615734546253526699284637228049618690302219773051695776668809033404115589991076326754916879247664048513792412521493864252354381820990526650724763217226510779614929112684148936943425003758291327080880609958057680619577299479441851881848612786367944956020920007213610988866611072890503922654598098779113956205634483667680512055720417775115499173370002284405449665251888418545831282126670235640932569091124774440506540142345443962538660783930944766654722405385971461691883008881872026559096034654791552480117687463295239673258123247982218814890449238070166340397727893861770513896574487185825379640682817741238878407097538356706779784003685294062636878214431725870826486015869680683245581897965749605382733842705808461534407811321637398599957851154164667176406515054394269676064415587918465629882673992030385044894668520765878773332802643036494217020287577528170424049142273304656854147953593713317956284699917225343476410955678021438742779816355824263131525474330071136113899740689531900121108934627477160491452250859860360782844186451384763305241303710607914844063447559594255082572561112861513761354053725942702041349219905004556661437879247183383361653201871674420084346638914982057998004318972813160907955686110647981805751716418937935035137984495828851944762196125032450905373117629920459618706822112122093726527176973888746121903577597680753642903135465330443868161205258788570531451627562459491126815986314313254811789070341834010916604685876516511581940175095247941301271692063030295297255290970040137195768715551902167242381065697077469704015905851343699008077557335148838809699233432750649176138932968559499207937375402691394446011887171974839401110742216374088689434713426582069750672636858746722267857822656013974465858588713653267325387549764811299707771613371529869278172240676262682837150061940571566276898211287067278592176560395657924995320291058749985577275253856542004371888964084402928931989022803929933461879144780791286143538863913463541250230693328769450044009739174025558416946813408273654533137494248882222321884290992269628021995281359515394595427435758690706554482558664405359477820201125536391022147900284290872412583421409023273099291806391973462122943567228079719036136741136263792237177141574867584253862086882656883548322804160005362278014844867296885766651799180743919965775149635830076985376221674057622125963792778441038230204996540385043775615336360673235878689257887498121343804790441950244101115873061686524404572660202131572914554435756545315916897367905205977704853039288470964644026818503299929545865053528240135953017072263320126119742327285742551238510910778026327295022646177671520813642283784509607446795712347104402213520605521730109329766769811617220024683855489197933712958892858546570613861827219425593172388681231754868127064495455159615003089024620648586391592451362323189160854961745752535641505947595403149542848998343370108481801778274681987000094836023258070789386751718946930628265289617913241166403139170121763234323283898260832178926856655198923734901406908512856074067272972484109303533563965924870038677768883615662263066983726070545934229033821117459096193736544718854329005470149212170731146367367859943134752740239856859757668306195058357585438631557815775600847367262597502933983529475363297377877954775574028452558760842258442602040166170330874277600842834774168451739146839662600100196083327735086788506931455792841986050678302016639492594362981836099504231505974559364024031600832705925781336471637030231402702092760900978354888153386798107935591815206196705488856613797467975335038201186936221803677649942715753688905948191964733108792222814464279015012091435640449777228032591702568186656830577577810935966217527562570783687696350497003106098021671738071138060962712868363429053067792052683270002263821652612313139994456794643912830749566019633476422082286786767279043710131671341197086558449123978712320852954411966100506131002511263083475227516756226165985871848511251846593037598955180306880599547148186182593899432558989920535979363943516558685561600606727109751321413747453147045111496833316976258806387221920049566279068267009849379304508903807122501573192053782045630264203918210199968298108398977801041265785021457018814717528242465718712652415706606732394516990305018680576165683510426455962859184806452702476785607348264087761972330550906069944741785774303395803723429185122184645536106150472100330750562409126559880185435702534060505330531017128834146615669089596687742672081302120237635484613137253741526719348182822858757730820454124316889042471686358071151827602363420786431192224210981253657722983064192011240897410650174968420269978181322162493643771689316437729580885376675374058575043669386208004267518647857659952267971837011534334707676093805307636410750517664125644287762416780026477479131848514893953987582585364992186346212112919058154418139848597558492800256701957461870575141950835956184377332935173888275460895343943965045685529448354508550389427943411805501094471912124455091007291080785846604627212023356681660604259873641566173361854464274752043008805307552370671655806484749596195190691608816328974135398727677550145377833205053197409372155080556418738699583162844150739660538408716579028568840299906729558455279587083582269551423445222754683804102608435501743994069835047920019396958366677415953204890560330910471224666790846199250309502322219055183751861557950107933065310274969957258639716353140610965971007698408073743087033818786695718082159297022987851326220525383769010754799157006808202014278459838494019224714586745327516746219432368643308966823383390356260153494672751127833774248031140657207841466070641611566422916424289316439161517360401235384709454577994668664313799579541264808229612135720990557147585611046174247951028535708361440190380458036088375909711766100921915783343352124932973890466074218977984372235660954430389904358739331192021179011994779087612168014869303160277996373929889733644418429486818641709439115637795843047433143153888246488232078734768497628420200884054070596832760841904378698504252964600288979858436314508835557799037565500199906726170158627904974722930795655928980575509532056510128729648798722004820427686534217952827172120365500913770079100458118459705819596754080235539913628550807132211369215531360876018157378657203835382956865847468431166770266005729751078588071728578711152103769029305241601938792750275909231761352175258674611676219866623993106420049589738309412817170172376086351811212851947464664099376833948507962243700166722950501127679336858413901046178137192005721910239167257999737270528693285719720993503671392023676368621344605558202115660048026524703844339017380144389713335570240119331790534621481572706067916874900895228701320003984128512125650635134847386877623472579853907684009507378716414241550109578201678676647942041530697436257224906235000862958595593422342533018904615484196516099068244104969623892651816267595244560661914985595243061911514533006263207641366775943458336022408334518513036559685089855235326870751874461608286063918124513662684105649325055316033199250766727010813920273348441812906134242386052381087001072049566485454534137554341492696897064932705548122539414570511381466426956608468296728626689160498856478474383988203254833071432906099759181547686627972994577637419546618142679329142575637152613243675429252803785738656299570490440862868494611651966383260858779061017356803903945285076060454313744280225590898775412869078377115263464754406008559661138674776565750692962615528897105843844389095118831404951949830458637607429627462364504690787853859510441114136867236082127540069184638199635784108418561236103685197729991607332003906429053621964492546209263288305429718642455775964769686643055939099120098450954327191078665676291770004137437116589021361832239793760589742815145527211007445186915399373116038888053923614462387293279468555959573659862039929488060188614698085329617153776624178772916449709127148010042428436306107374922177727503757260180939012058555248059256996869977131875401712507688828471783820339961838820961749171209963595190004255145585272465751386307954240559722090322599379564437734037831293960831462003626284437697057225081883146435116837759457316339177032942975597887181201246940669248746080399591484319430047838797017543521728894753147739250944780347841679756006731468571892247493950965747213815481406305352777703815989935369043682483110263501756462049312326846421582317591353260936949075190844503922730712948624136774377281432882461274030764531244431745453462365369063433378315784926130231667312984195346369311703151989935809845961145463501154363814775210664910584133762582070103778556645773892952693189538232766754766300818182680321903224071939971043926807577304184492018276172475618228867188666968605152134014225108098763421815980305787259751891949539938136175591452030222129364190862330230893535655960447530735025307172605493626597942741710466432386935667968074774378952989709884483434386112136681840420432570676791613930926806429527387618925376989152062387094069518213929159742405763431453732166635366110965597493292019828079689063769253451907652511993054314566898064162116282474391784309535527815465520059705358244312954440944485275296979176105461301107383285377966630208123380463247877799813578389051249562128818563991742236008722989810677052925914466763335710274309041955706350467274331377865874863255393467154290923069885607060835382563415557849905591210585965334347062239738670092616299201220356787831538478924346456019545612677382119104664151662041278369750265878129794345518540578986179442121750536458287658259788316718013375325168689172276192994090643093406491701378121627457631961990278906357033216304322042383336389367929285436515878863469297704236335323211853826249787074172260905905049569123927239432162997331616104399527933633617226705977683954202193778839820370932822388885546239782429031246707984215542706175469739386262321102675769362232489011886657535613749864430731804263041937582198795257307543392260060570078509565631484600318648999905162564194213503123491865418619491290019084767440342072930488416749772672812005614359340794960830999064440544684538886085120625536397419865992673069167647274876165334408889280166684829208012479653133547730394730232652080218408837319976216426380180855411761553173243187419645733804535698554419460304479009106787633300843524714117177462094390683587158017383582921507857270953092829888771579884157523814934528369322501395522961294132354490562668667396927801098734416997901935542190196739446823351643284896995552320534513629773088636963149958263263380450655091114631228863806433435331835702693267736132374045901719280711519045469024080285825136367943510553171653677552853595490511542861031632794554335630142057194906739499210602198161781746180358015384483477200946995981338457978284511889191483525025005006253882250878159379518011204332199740812870377687958694127371147726613377795637509984082133330888028976851293267309897951068928429165937126798667519333206070775276385045467820270423624967623046326274517475680728429863528892515311351083536177025020246569707432581767740306832285154500044047074670550203144915587401871904149377395449802058950216294901781662701485134934860938911901099213888912638366054988347182352638772475023580620328696922260270283980077786803041940214359155376405562351818036363849305349984156908382581872849175520739008179008285015605057189683645949160903795682532711560827039951258541313472827185455723203165338216217131760839865718676435600385738463350181123937895969757196745654798781999619298771482015472884128283920170869539784643010633417285582139697574373657886709174675835791295156217721190080353859121547046089471175213173796901270418201703467800244127983066913415936353427976037765868580967493819171064541998103265883742578644094747085091324112893230546128105864716925473887045522370969460268265797115007191661114769140889117464742152307989861341201350706507359302161703343325865155720473830120299718239670305466745229248943679421651253642563703279909735650581892995127808419428759459712566465762966146035332284910675053406053879052358564073929728648440960633877556943763894155779483075340039046923343965088047612055415556590194152528571255711480637716315507153258525454318220225691452694300900840179974527133134671850841517001106926937863156017861503280726198835819967843031831065602338179668007425796072119157252763729924987955722529353260814596882516785002290426298482210167902914270881229909431351111068593881532618310235073681077897804982006271447463703614427808662132490017230413579728722525532187094247424632589597306161642491358904762137456828808366237249149128216094590749656326410514240979873175961134003688780095900541245658435510768749650970104683367856190360897166257013184827279831619012796910412847385898263535831137283738349552722988336162859566600848554684965208472203160650082942825636641417200205681982223679427946746473296723879634431392962840609497884347455007669225710389532337264062443816492760477720491416488976404520588998561197528562704719102693119850917965947108626850467535031015593957099138524129541546934451714935834812173243701957481309954420393712804854975121782083772332826329489471168972786819894765295631983789698754186806193601941264511465347769954059493007820462233585671150207945741838017031678197240598678140359940676451155240024041081379111759487924223436687912082774973858285216291962967599994241311989060236383188627300308384459072202857124937874044970773006764855435043297290944389726799218721830043860200098962086785581644433060216504827657787581045103880057148981229462788044512683379747038919392582381892755202732289626085897573001169212054734975920706841522536324937210333543014552973801607160331174725578053923115288610885026902024829919233778311546951290032332086086819571277779404070402594414996247400799467846731307034189192979850617030230066546019848345114158081362028477874791733090885295233929420333021797809214935976657554374853202994765853210793591202205817437535969505494134037789902105257582069270559687381688244595999328200854709552395603606768002519223084085797356434516676478343716046193089134136665818666425166444162925945791038032564569048003887674124274779850104876491117229754573356947662329757189669933962409304764891313000067126565284833485486382852372648597681318450652262197863366246666706155093315756531573419876199375002331942692601257403213725265166716302720766154809181319918152834438562833288478127703157814245022366322521768595768819530774348729481095062764942871093578460511847063411552708438197730091105558057104999344539025205520216983010285930800132227612371508034881516243498620154136221835264555198069956604305780887226084575450780681708677194016909711254625377345024213870020258658903086233319046895447865358911750562955802048063278369254323053442202210716729268767131301836545653898355817787134288930350645659521248055793659144355716135833056182168281013316208812599193440647958127076389350729628262022737418071615963979401993777054600130436649116081247518093054482794932270828210940706292027009861962700646785793817704361364072814346074413518359991287258119104149795401996839396053107672296113205823125465338157990178037575692332343848409159991631926834301875960225560193060879706754295604502402032292033516338589454433187972997384359283891888418720160106012756810585255049923506088232945684382957323495854912511433960386322966856930682020630998458901185398330415811124196758662627403037984615263078825885323948016554459786955423401821149583037730234060140808552693965428040662408731088312405541574782175299392549231380455333581433494891953374273244752105154161839635035252840361931567356595154835011064063405613241530504197139285475820519051565434126501468909859038710450657685614719796218045362752206696290033431756879060552734782036903638029595347964834799814793910835403404738844618536055107292859245805655806490866113158152723481649903944869171967406406969560176881854745522505426765688440503652745857020272745854596488969621200903028700036356523128245173297181917502268728441485784519711063674332492910792226306156005842960313747765791934911582999068615796727456531049711542883903434415846818963451022013451970676334874374254478457129596194005804072898223336708064478684062215137584510930882270878190831391737737870098822653018744057605764470505629181724583044920282843580348646084091065106441721734647117287315002940513870385645362728553615872657320656037935853542176026354320152659128330807362616571559425761928318903865785601944539048386378567370357382820571471435371329901530951998267069681859543147677597342754168881237817938594663832557734372736980820573768664529821416833182634205268975648516398110468242942070050386895135292180675126308091212186008060974821172879565620557409601290931765774179353425661608909860540117779612727938259080578617570233071044854594073232284262283871635308303521798502082422069304162065265328959505385638721904186874452531320145369039931773025888893661620356308330847670028968035862736820696966426880592938724833887795763617013494571244950296777906760521719568335797245581914000697027365152893356592993908201768767751285851655320630922723537075132510326224567462229894343818757579566625755224491746418091454724455587043461129131599200425395705094091210583171737230888143185795696708356287194965134964397490939877767012090279315196229625933620873074744876013415098985279621135554701387532042195692398999505335067022437847892459908356377055323173886300777547356721431754506820921150063822157678323948522282493007848621649507119283151572288300219844449517229594579960445086313208999383081447238536670732283385826024921128935636032108626524154220861936391144198477109829054055854799699929219407487014952511211003440122093399180969145510459320260345479486552430843206991880029149958347970066263581302545758246569777865046069843146088397106457745097660078582017064571507998358939061411385672795383556908614909224861769799290774344527282731724192251938451569984730909421943703791561234224603754909706636699073425926704848820783763519768557021771920883211403031499492548660545765317007127392465936758613931087508936362800750676861526711022831400192248086583280423465027812451680734296621083854948095254942465310138474442831458970409664629735492586395205126916323815277107324540039355642905108934928019632143777609300942693178822490836310876945358129459924025654799041754289189601153539950819108641425440678633940943229450834792856648665159572494012084733589267976398808285130442488885577470516277916121783862264525073956619803358926352474984760734609913548591695995836817681347336877700669265911986343969242302207049422605998767877458661541408078296193397960376616221980333276496059532758814811591030618140356732345470761770355328733659882720158096045067713958167729207997603141453835805434287602290211928610460764494068951198861351485149070577079642032007458955107310313719302179457677347381317320745113193392280132132793294104302588120698181420592434655478730143242848592347544404564110418268230207755559424420333575467362973389036654243518239863187306407854032401152441098994277895587116050470185470321990546973927979571494104146645684028161888101190219952543220778504522775809790377486373583222390796456918556480911915844365363174214386965631797239492013241846443146836002505352659872116834200742831103873800126562122510576281614269694427187100661244838698740135101142361939692799953386042713663399757858389304926848122063086850160916761828844300449424850712746333636645943459002892560829573343888763777397908743827240669857067362268887224331274618813986814038309832788111136917006400927225495414966250422684360961658956286068360054017706136136403725372807982655042713769052470605297763673905206186751231503570646111551743996115045869617914341112810420079939875367272978330264808078505527267077914743839256897401052586264066721337341475247526112078498103063823246034368300527574283753860010445809295974201714758075600417194943514936068966805842203872930876575227453680419123870125527009826087932943194077253197370079824459909933588346283847390512342797587173885183034437648895844354786846745099289956741661087174466282909408084108497181307561016174599543489315229588090680490681578488789536236989022488019612350658049395865315054682165073672793919915830005797386363835035409518732593879173395142834130943676900830298136984180211050901132962807959481309845851346296599480400963568736866493910363090138037896231365857913663247310892256698586917891615220530226617328573264916488617734063758354940822388361462589905993226247914819460345398104682776641676589762546139704581687607408912789831863665341052489445230481458140589689123539176169629989216933995399850110804936562916699474197341700994942438592349618114918158206082278932641819967218625981081075010491026130540005865838905188485766921974329570362178830149406713328953600727072017186578466068243604571347818475360783283279908519088536368679305571346474589537277076866984742321334121313638386978829501547909527508436603419829091956563716570041598685147805386093440925482789014695223970112540513672945035129087085580549854289371449985892677871876394058180659797214731585886546492054456020698014967462015365442365788835843405012783546618970364704368531432791143857830804567887668877234863297714421670603404056334352443299113940851679404905906958047905291855675625691928241465911278382238380830283484661256477678837622928351721023459490213924285258602283005158769161531520674665273721736868164065160901429585949714627432796304831177003335504266056145449038052576207735757970006968396748720563964665733307642812908678609110678419140420080883411080403394983147210079634251052182082739120442613138595674017941011251812478594321994634999027011484594528532106640466293566786621659797041445561985537726914062894431429544117652580176434177592510143737735083904230316704390884065943552488063854143677658462289909446234552967143183202283291348576537556717111800063514941098610514590312214925395899116431446524387337525570958659228209682990970556290930573975851485835493376347235177344431489274205082445434606640954352273946949733325155554230855572139561917363686199117094356289969928570911591881020327285739533238870760722281100891082629509418034291309319245855907219545598235815700872511542659521160141570451499478883670962738460250745254474928844424561739500494502201652581264696794561238302889610322601663342730765617870857591619283432038446591837456300831414689508375144010587179610990358678291068227103239717181661754395677061449670244562809272018512456984490570190806244851708074676629728330318152137658979252815000608389217600380146076577571894601515679780589276446555623898191257626720886365651463302003964224546303777012612483325790067837578080156296339590253222651282019589273445313228664871663619352679515845082179053150198528682451544461006182166547758735553509961730072280156369578139291561875300613206109765270552006828090593156013450443544690202290880466853132647030159906548399012577640950305554391627093374720607931526508455857167267150589629500365879789542108030847745067627493029982287920465953727578038264715419614751294741638400481570567248849018313672764751936495740452836028960804542202596561729244526070537273280151411062331292581253048558990146772116250439191312882531471612762676037450848851794417761318635536462655685524098651670004900930077169984978859528128597345132896170655953851116670163718795766368957221389302274630255320378831525437916877563264434603167512965492863385887911843149131755069619026231655586426910507472406101208378554275194377515343034363148169659904074036532216808626539747679712561823617721292706889493377872011451600545389587860417682497917220947032141437299181959481521911735091485418309019675540028650939741767752607246321651769801831714527931299191070905842681538612712683289930286747232760910364261104078546790031988309581679846252429851846708573521539051233264777597770991293056569239035160630284274634050949291088833537337613554011406452521023618247493986918098366091488003023284238218496821814892171644983805438201106910274125447799842850120461222906525832378443762834231460526113409553263683271558375435130276576331278082722730963248573470542632923728014444487556947172081324172107617914126516547380218045104652910925101298449129196876629280193708275190360116409241495156856652129623079941550414400609397734549222658356819369136050129781265039876095305562563514737139068057087054470340265776869364876189153152984175805240633898219663084729499313808235238076732838874728822628865108881441600280583401902803903241972176816392163482442430632911345508913514860807072222743982288001813791347737435300656730116476119758616870647972097171702236660048892751609467416654333582164594580269895390957343380101020483842976120262390824569331158306841516373310152532156321736445970073681618094602915834453351047164758774141052475763007440364019540683669874469242245589978202985846759715166855073477265525283001636075063894848988756688291191882972233706091897521439148340308408974589082476124765828533360655140634914259438035317115090614349310289784718012745740694290358685412589494101540987616310485573001989300363546494155201979585404492441495667370991448771637340010432303447894948736483188178945740302021302445008515421561750379884928364481409596076768211847373290290005495577848580673483672736859089649417264530322766857697612297258081124953649975221644844596633533258708044474937871800715314279399091601398376450031769461579529805471412281981594441184866234607961199507067154311675702095748326822774897178277195199923668207834059754005024195905432926098514632677209567315602009121226324274759957638590464773825099011756344243763475767956884695457505557799479082037295011718443259084173142493260603125979586835868292083881739636453598546936875348907145319101265894978338885969217990755271284796485177098445696722699764483849396579349929022843839651852641740692924177321246157355900583964524960734533490842632642540848825031211219129284325655149431824655924413374944122499010824670584322417296726997396209611487828593618013287755783642279258478658902112623203703074614687000227890782681946231778307367014303806865482256770453004956919621088099750674411911957870374739517962221263340375044858624186422748360010939366227637462334988906145684310745574403512032024546049167309239756813748018439328598852997041360496627085716014151133978486744750880609488837256263210231384926461144854047973968793824714553337138700773221583087071043620937999873581203164646002495223939613649550271292829197266993426469537891369165179459580058791861745316130384939776893629628606363739489986827361025822955432588576016539177922954135599556238564847163304566237572029419716489972671641564560490494383514605916485793676759000544310638345599781746570434668264153649548928407981677401528861399420705048904944352441184568616285110828853707948091815382529864043457108581217526913749133002020471661548793127476277833017169362223176299439228230782534555406870078126807999589031695477271220574372581324979504889552042543745201752315478625765689147941917382353522078025727935683915011990060528879313177033868137920469692562942750297041063392743486366704919063365771013689410021392317112284231095752913192521624826166306008756325141931554205035181287333788882106471013308978329295753248561952330960558330349897863222792080696493613960468694145976354609323596503680364953796679510875763999793779800045319043068792081590667149197058052678615378314620178639640575133935936665778236314753537143586134729823228293782948608462271497551955875961563640478051247132730080221005054540040591401930714102653157425821573438868971305536676412023150369207301400064159802938443342723886671268162761100127961065383026674962882697324167734367808793288413728461071801890675105599852711980420165776834861739614175904558586677697424146949528254896598209158264107124494105871948621900385027213508161014617277244913005666878394809471625995728964615984285247947098813113300740740449553415724383256069798556661800598409268854240655001179077058631480972922002715323081094048754646002728475901376400880479762182482749147977014168723848102095761044378004971343047552617595764269299887867665180362412807168314786942128125756990769835650947532984004488750830551384014759623649467404049683414705268227739391462425044801974288089911117861745305692184921603097914592266171086525986521536648288575614678737444362926565716365775321040354681869060530241204119916659008956411685897129478191351599898315804958673270010851539374359342111463550317250810550052759120479387780131111746043534136068302956461542024440066992465982276399385956603056828825162943185628722336739634188573562774618734629398660276629237107376982352643422367675752490855951803982280125472784422539215145029517531296883036361732472615500134368283753471730569478832866937049125921489211769507383785275150747313062855742207430624773399899309949482908517939393505951295580503033370926363552705318401323754518696509411701871722530167064088196757115305302090058103590104262532339222857552686015687496698800568209140998920588699792461604921320790148490345022863889446990158119420087045829090217792923121201142271695547227651768042714905170093775274050483450449073122581761675813494060210580900987624140976169620370488955115722061822112882054375242076996799790222729361443168525275582610748557323694001604288023496229003112884956345690484011194932628904744757443363954288574617861816101411199910783459017284262525673353138935931043604417808760771267117348811484212965123909535282248610041410126703510856825549877775347806494920114312716252868802619761907341880935170425658570682312047385169224570131368678592866060245408716750886956231359192216196533524480590209393530012419933339060208937144978117372969174251613156227650335072192729531892316073553856607504631276423050877482874325263715228606612244939264527015013504346144959013338432225892443934731600071843456352952074818366540845827485687047439119116811367020832195331443566808428639483777047404848313093285834518871056650105035917438230236952845553913320136881417065788411628955580583766284845378821179946946799066182290108479513477026679723069254817136307615748125671526697277387966987058394789546578654249849838009312588404463586717531580948412166408655269321158381723764498631720515989295328572966457390340487681775383052353565916392926537783579385365585733608115073024216714927568097605984781673809869871435414277122353325694566656310507214615066946974845546217220203521878251478055018461580233565996438418289115934137161601976533538977029301494791363810573143441539317251607699461550945709695445977685339680511981340857779387726781891581070773951977074585023596802085211668589382279268930865089908611528591800516732071876925254096098010559274119942103126036915295770652419950230856354554010823203075135894301075166525112345740408434897416101884484839956509364659589384734800198465209375986385677196636470440030149996208908001557726291257400979427602180197210272825303655593758647231911191771472972633271890947035370715885991557285191419133402148402844913376210398630845742897290028226995836631084113902876330110250168859199069489754905674385308662644722299265972505782492449901658738738425817915294764659806851341428318923065176058748397671563331012109271669781460405961447999862282102990317367944178093840286603511740218210493433660781676297303925162957698313704765035107152240306151133943350943592635949813598249207840360853846806688304452453173406225921206563791457939076430725566564607273272984519939675722082060790770922716280654083541952431532589698662990421568905541542765939003734389027114824218542538480650170139630063674774832885190679407802051254125054297631973281870157501559120815218030840750736967379571601963577325205316764342559800424311787840235066548557756260785656417786306575646937003553275083536228301670514503853071700898962795436232939012700643252992625511939726617308855484498904846235241220955621191325140904529388704886053557724058364345405696844498548460025846084884179759416245943274149524022656313463770766432590761363744858391337080195551724457537185617678569548559365529157730210046700249356145892404228692339290961330490791997356186642306787790681536924023331672665251787772924718368114018161248140484185132427685320279964949177440712273483445769535711596395269468478289519782202257522161407807601766327362022098448812928898708679280040715538536675342009170590801452345992583689005800650818576585353076732034624337158183544920845802407353516073136096404295567921818489904804573988850805075376932980411667364948349625087949536844287002466565973265581805329000118040429990965123133550708436343275733016755805143185583974798748306408253706895892792108826556499688244234229479891421877242178868426915363620670405197644172138466799664203586129699641649945902604934595897267698006132437296517546364146550208536434615842622080096279098082337686345310635241930076978680993585402062544278389763641064593022513935424946349797067259956607686585245267007581078792088799792051610033927190873183843808565689619686240028413535163028102513876277830514700508492110017334835974814119193764768963525689854402978686852841615142419806821388377867638454201731298215223256326132427319230637883386950331616638762881086462462521045957183484976833201943834002339874065076226541169301325964903417999900420216196624286476010838378643680483986716197278014549935889270877174776200194923379675710694744338369149418274063323651294690657446056697312237632725351014699076342834702536064145414500634921775758836976018161464900042833934976111431528713640082160452169968293869978197053787854663439216707284342705514007307115663881341345289470063120337701753548443593564524455708411323804641347635813642450473858226875267799742339020447206421750699488979341557928365582496806434347881802685242487035631805905907197113508556695939695739981877095070810281981397201603099560444210895521014989084124653052593951589709354284847440718551289374268557926996708528682406732973097519266463768418293133251065113409714580303711012215083200416096035758025745236617093149469329250214089914425701503600241461145631519067068590630771706155523239565728038080308602576412136046125139827291366934135504678547828669598378632469024913914348645183063943358046444859154164265506866309240973290484117740467817457372457509286076296539754734623448395847400822534653293784098259377238165895431515552040283919771344883642301840311404755474701992852452339565915648491125387326961839565201206486704684687553694461355341335296811669125774042926772000150773823933574913985991598523940716427416209435480052756275188400102620606256206555399122913057394810587069702340370675187792280531192135371968156243099893141073003125886519497586229188063551119641048674179211566734159605415121305426371271652336680122271801972363812132231465001570529496457650715719011374021857739410011502914379316207091809737308688758019138539502697680775784896429273590079801896115319822118457107172946203930095815729892099227341773060894162086744807219708442715568107663161606755075700228082174542284648289138199795508400659152180830438515346566790179148783689873958345506520759711620643925251020234484759626913934637492615433219222537303081018671127385442153972103091289771959612952064907708123591356593210518823299994583863668407406884142359540057792867601297070757039641287561516191624116903356181669757587562376209397922036560060297601350490024289286707364044820691313198799915580275505313392518950663507637586971944327215963851141211025643916884311910174050333004543734755623538715217819025731213535047001994884089922938877317573802740961198566397025106348622617067769144732347796143511558858797445879827404238421726219332288762383060054480445601393826569827304696115267607707322602148460306416024361666618132024064183047939520683495354147695321390253067661493601579289161359150945242411134005983700173176577470393084177620293544806926259527427107855640423272416581677851479066141539942261152056084224833418437677334195963538773894714430965327829176223493214717580025860543687192586604051970661064602864065180393494210317270223131266325469658114477307480482152206599455703126007187580124173365576585912659723908373269177657967035278237346942044009852849188608645610269549665337363879222841575532728461020082486203609467601653157933304300336292225138467872440559441908434178687897336598906888999261229804637513532555950819771922726299399035334566039803508428561993051937822484206857481201340581667904689564829482150950649920645389263600738764522515652277939842161127400743981532229017401801345150062941504922154229811369538778385286930816094928524457208416188066875382289766023766017959658896549110454848679401427297034943204705839319035062684783716881972379961794664390805238760420508282098171983608930898743342756312822752853623305864336345601773341520213289486617895885674312652854048204130564604373523637130646085464674691363995331477279460969900926237641699696109789873620957143335445251310136624650938466434242101485651865692103998181919274933577134267942922757942318212945098773801789387401920563508598976099747801218357904738695550483512444082965083803073161798602034344245352619907473472443282884543498300866222629425237277960117787226374563059078666195301042239550484980317271017839479022923849258720985011824459269704452531370839659871767579128775545536774359155367177639131038777885872616899404628105532576605475134858619561903045337592573642186944393139206065009699879706986613455621848881393978257912601277031025894165380577562364647121981405967369974416130499964939090156117474160119684888133434358265308056481714919564976564953008405271330796381926146261024691961827392798100338248228996054715527469522723613099707476365462887564143445088244291738189082443409797226513628393282122055948107409516547843692779420996138696078590938941771348176120797671807366648760941229124240542459466339165547627919672991779407152040998898031940635000061540755116784601100309056406579797911076717922251099787608588401873234751148157559390343506241172952501985970439710916527573268451581514049843105789011760225696274353754677616564389687804497583618234059572856883086181216810175588262521969751577852624146847147297733217094321564111546114445876165590406959608153471999322336846276718889171757762968891181481413192942516474334918126177539082957113558125357088436598596637198291573890322419537746225086971866986181184768213566512145104300973030417616376779352900611484321337053830735966514592909085392506580656858946550983795522879560136880705159970146398635766539185890708435468990419336018372580044550021978842360217474835751986268912339504902789051811838992367456965942170692817150050021696525654119976635483345489589107710447981016351570549324499106750116699901221139165076386501362946832103226631360227956054990280379979147729063076907064210337072568769273192037282216157865969005599373131043381576230320477653009738524780873318097816397804544604256882984922954341840869572115892898336053853434928861997780608742935056416185652984803005300998494003374082145988833856730582848406866997373591353129892066374412801808780152945555237373865059050848187227950381524495589544499587076241512930456087969673185116757870670247832727477806157241206520081399845552159999586105773531151300115282202944559931900389858860841863386261812137235028240862150560668766635240687684245636359424935720742722114078363818860793869091615629273101980769231837700973304326259441057489656186568767296571093371762546733948768478652440771398727434154983297388389443949184030878646530024257230973641569259361027195967875568244749055525123316347345920103525427659999519874110496050654448186587671599464119343208072700517035412631634485062583231968463497047719177007748376811049433931939612825938336446591335485206226284934645739010555664821499585172026900725971162127184868297898546649567357333366079414606988452594958573849203438391459058612614490693786474219276918714174195552224273640999246661189666432978596002063946268758301612481544376238196827556040022396269406615549441930901205999428676576444470292128351850021826659964444712857887987402769821541942939818542506014234826689248498872927104280409050475815454496041558867195191180041373260346991030221066318073153841622234553722172611086291477037726959646241147997449977659192662241704260821996135412827322365677325478414004983058364274660757352727488387406873620266361964504499878679076394127475271979461496735870609473205771137344471837746765090086642391121063195210929060875401968102562435791625800858781828943058715712214023969339205414410812982310671527588580269414511613130936016591410420088419146902765528098759866298493739006969233114069943096285746824548425630980396629130460759331579750485926161387523031668364132261555047598407239541678739177817342117576878289798093102963390918480129617461790409431712254226566676184976140928283217146491195835559283857774984505260581895371214723057786196025360637220065955014219444731713201255029765748663459531493501803479512633096357027064051241563290092380356652991899501433759735016455195483446471098450890642140021633048396507759988597198571659483383296550002927577125385447947939166781136487336910102416927061633013453948421579216911149277839312927471903340052417672878756421261915238657225958890231207566849939524334011049642378727476995045797507198561289813416123675721577637876930221122147807375104409409520027514908914575927638795301632131155629028119624920203091406118451879215458447032058006455962032245650239117322499312965552002236454285971347752357175515319294716882057036060600950766945452121580196920259920898801591869660739311328389192792666259079400636246981089006674720212300922767848676251420168577301371701468525544681643559471043227201540706473970528288775853465734581940672238064279172626806629256944759623270273040657849778720770412278520030149470845082966904144885961258629241559128142843832499895790133508124161588870858336625355473866990310547444039386238021836193487808995013843061807566329427920200386651311113711020783085793752396385493700773287104013402065432977549826720488699573454307886285275879561015234124335735786976950444193214903146814942184850698279584704887261397640026764625622445613235690052361215812570218512268699096553437863060106586974148329547619882047564292338873125363448358732743370307413155317800044867470971915572776849864654215541998105891016929624938540473731298509528128521527833946858783183279897611791093560608932681509384610558853656559516725661656649165361612639333276804834005747956051606914985479875251008928663438506109446033174345268480812036877007384285510855862872431774383348527748073959688656195087432075764441401742031339045382806591959946167250259348707202058252005728116573565573835752478480023213847647190592598724358014331834535022908729265117211611811553088559747633402863142984490265214614003011966623197068087613941500703433761897700523524716271763172707862574629289070267610037657200363957139307498923191146993437339831035247231527408452754963679727387253138820771210050235646491517376611661880894408705228220688575568955178277601824189086171965786214933080364475983247897742616404531363133253680761782615233433607377714332536723705190400694658828590145024831647726871317124376400227782261790147928280564434025300331707415177874001709740149829728955778996514391463268049690357712539046053306254750268644193665008338381499380219800853055547721650011239076470659621008878515367455930183221221301677363473178539216397764816015903269344540858195838359630197072737099476892084799253769390781694064868914522827616104385880042715182626662420834494170788307058655538910559905558444067859348823490976228232557989755012491393407320728922625007252572449827356261873480961964532114646738124323670474348413061480907466330346820615489765873141043250459811608407565152920992869908745471122176506423530144184039526534071740633947421371062039539995437481844871243341428868105226967233586341845878240174453648186041277354532835670865643054190304946662991978357679018402258738907627855509837044244158034470928645969464153716319345943707160123867326878250218395349851344241202947940172452980584001012706059314796138387322688682082917999386576305232480315670730099961659235141835546905074983436929335276488860235138494553360342269954495771104287202628228904960798690333746875141803582663130664199002096936945937864930307795513612086147865555275648923167792502822177113660732347515141156307511771162002432951479561252376317870650423498238312115973101618158415985084779754773457880950455728774993872845521299880370387553955734904858980942350284371936782857529529055634588141666659401480319493693933920148255155456852609840962275568692563305748525121379286778147822977546195824808047605686414095918320870061095827993777294375862807359590785936197999210450598044115250848516265295698535742337333739623024669788092690406046299941743012124622541800565136361694299909689073688491712557278044652753083382193116016835844774680232382054548696280152239170784453447052545561782259769845205904179961641282807140322080142005284557381143403031494471653580093468986070241901808829846987181550136039766029185411538560750947113389961965987954340866169859718217727184769109714603299980584230142406155093018099256175374031801699739710670797708937244956923131212121137335187939735208924665577246441956552862204468434239060123729616276110999301312531969389507696493082612840429345298436568106466965129018981050016195359867904427214056823690469276043046438271325186443975216222217905240640561090369156717152031995206963469871169749090695974619942453652695430132338650646512596362061313415428105844505969495198944096421747282157001560334455361062191739723038156359405614710985383049015303912684232635581167122484776395554374387486197325314698302223933062447647879185260148195852157675046588179211673100557681468891384789801920854516705082766209732410081488898211093238913122336667447993481091352445436831469807336186944240667486579262366839316498057672696119810330505215629990187908448524995472995125035904544775561419253109368296865952694509666564046612098179616500361913116973311576705414137737431685025635687374798998954150168625395942805466556308990516741046697642600838128244105947021520290110700324337159907005064302876882134071466103518158247922907415642446004932432510768576473149211761888220649965223359131575785900118390107093255347141124085459573235719624626827328006548483186043807094920726003405179607725159813707531970083833438486222221985785314583966053151650158343938853693101393630175567199504801079022917783208906513262941873630961021184048056275535315948712897457366883944154910667238072799183687479813046274833201425622312662413794518758008577825906483662555189136275175600504093790628519706758860299981179247771194224408360044050319602852446987642688923970818108124834029818175992946869586737306564477825953236477591971931953749001548079954016187457724723650338639057792585122538000588155220685788824909057160588488088412798481630721242627675297706010633204409898867776304369490823877868556862155267201481754353994242223813856902591112560883491031587367384638356766302230724472940862654134423747986608844738105718879170256913814560119719847934792046362896979799130519268594892779453388962738282192331418319693726678272804803121692872544227438532254311606593204642178738632853373257174829226109599831515671130756464210887884575403937649940139419227574245902561875495588232862877448580181086468717103247544997820950251759389806844643277064378389328437483011012976792091770110896997035031911562221670816668764182634275094046501760434991490934581497323823697715064857905059217835233275572278537101189889500528205824276211093605761949885343846754474462257321170104309324538420030118642257400613341042541794782444268834870574329283726372184652909808778223791922398347147915202443298106546811157030649361551802536519599557941254877877679403815655516757928436254891376723052697994500640400909754953037571075827661471328357497960059271237414225218891426426593636514697409017442796662233940967133736618209256518283572164937147939625592322189731244107589443347298654291590540797090801842704637904525464527257025896506394007861329340719196293665609265266631049462493869869452883581431408403290140815849308761246198269572265086228584652185297564022795237923665719378696963742792621947304672430143738365563143462589094420413675612375296319155412385697216379294058488671016421255994563487971150260693966858109903275870612682304962392435476211683316061466670556876443509702069727101025460111410584880670183075530063603839890783533223959275297992865562377670337814319266874351518590133183850990384788869635788990235704288968724729882908391143195537528110076977846982266446226075474844852422640472861908452925302557744850475513481973556350277334487580686967184235810689278744282862379675000029257142918540152353391880377807820847358059947317461341564117600990041673928965068086901900317074379483950053990802747332866012377309820734219639789283242134069286061909273536994231199235433824790448506528506965249791940804134235154054988618335270491787644813023856054062430762524108840986375052476508176668763869758606566214474986663169934203434867443364635023659858580094861996672762159901885473842328046844785632999364210868989726151469309441320047631566241728757922389915559685817565775260523100932651564184461928478645582006949208067470579014392555121213456080689844259498787566764791406190935992338380815871398426688794168187406976120859784662097879966269095722727078958982651067615952845449462771309320092412210985381393954136619830723616278820105236420058755291125075316255201646696392340899124873261672172871665025354450879141967570919616525790416271247422509215647796848053426783259026737353675136843594079739217063302307935597224311471692312298847878942410097695392056239320344624427108902195649051356618822184100870728922442029497078930918647342664072421295710763781795220133277251871455108381325682753788910359934045737018141127269136561533477765044714945840248217846201225375637695648458065851577736522880839176795042742813827269449923559415276403043669491395034282663260669789836912989568321108405276622531843846998370388305848929976237809074732580305932713237501219406591603809296569389154596371257863068380984592271804883589511826902364930877805096659856371360869756669259300566070349875196419344332049488345833156191849777553080219529240244434998847130995899921391642982095365971355648033297330860435847713578547201370273074514893502398611360723622909213038366531590937619301159739213368695249712524530784443409713603893453102044614529701980815166873774462848637631782434057286425960295383106090565179930042437189531360715759950472536639111800890679452904699505366213888589276381648355076237970962815274437937154902673431463292661136410027495314539748215449810010496373151573074547986626562303063518627058938918435031817183432648297415736941506007757290680782858007593336602392728090679982886772168684973180759828594407413644533917246499318444178060064924738848212161419427890042805460240356819930821163431546074151625671321840048570588287022191316127264966892527042675511602377016488634577073696868481782503351658874305209355992631378888159923561193147805034246019603245004723476005686532372349981380970976026215018616910495894102413616650098670381227946484415763986132594134606032965408391021302035943395216263166329319539980648549461785715470351977943760905518246575371701332159937571243565789847771984917126625208423438099474774632661282637420915850093076032041954329284649860629707636031513811382955185803019386850271537183091943945200211324227221741990283776719082312288718777843785844973534792380227975511552708849038328575273529580371679506196133924093478420928717872092488886777854326869148546174332403247398259686250740804654337904019930579570580821055798339171789000493726592962897928448014313340694519054945388411163470298813221743746630464183569640116109994699258694070881723645497073238155681675184906401640416000425185914408588515006714435225861478340004638781028927729604548711673262985301551386506659493044703237483261521898320020228992390549798446655322151505620879884486277839226670312080551058413941616354575052510409782101428313912523883468987542778121634219530787219110140759899673228053631661690212901192331068951946432896293384393981863756251834951644656810375414612049077449627041173729801387912525621127560497613578815555098006040059965010866970053000900870012569872986660294466320404975127053193597875027599125575568733603048960615238634976077058075830395356180267600382549800869180306889031784997308025800595517030710937238845810126528388033068643260517162061369850284801705518977447685925933885971338116845453586498733607743311724549141337289234059247039550201597781652676105987089933579867665293602087096768534323087591670283791125684412741194512564526822379966308373885838654441320864371386792944217685666162400684865291417382190100033185766929169276347975558365838732583299914511305327633554510854839674732829763979219297522177337231893994164327408285972846044491461567330806187895193745181521474513609942182600486166626428797862685782797592395385762002885411564940746581878505399887698439546146061759479813539282542098282668238298316759594067403173080997099248184684679228372506253344075296640931258237964974939364307436939376385415775451528265857815155901302721670266689330347030549178411529817317089845040836573867252666475719636131652660771381748845762088775618270945703392460234964634989203298366291310955471978467118747270151368717719343852703253507570194838998421257895336457026429348659843297741261533088882107850199195627430700421796036604926342189303548924278827940180650587427066440969887262699634638206035297968257734906667313287472763254006203170084510565344228457483277967798995201463826827823347563230500161727899305242544236398916641576830584403268999790176747592715657913214591065094899170713505043782614927762864087521340357934745435046827966717783789243773467127608967975581934626862475393278066559712185355135700869923514406279716378601399609591914867463413626168804117993035255101755980901768276646433694548393267352028403160565387449517019477200242673691206364623064713710394814563986338808592051778647641623356608325229258727444871746922807931856056644895151779844523761258042109713419554661033598716671988834233667653942261062441461478761220620396967488610607945366133943063571365372527325073508613785118062615913790378460535969465333870995452902011347361674679259221174781950911492724723604599632019358996082320000283933285082697935687799419759679409340449818419103362091940183010212798747279543557380628266517708871151724771690395704240993707011664965987485521037707976860850415131846002819936262869589068744309975072113824676726311951374011035640474897917888043419364964418295690460933219816559501708844904058596369710623368398998236110177586754896907419618156803130681182249118871397181570472305762609728971358877738592241746186222731918016159034595879837805273151391491930958396344496876989541601166574886172429762859064101968829469357439433579663779687712999681270850502756269228611697096319631245339889372660026673995919297534535703750642780349385231157513288107386019208447750196024086812492604311775686595325371804940752840477830010899952896070399671043231552102762063754306454181463571825266327992495508362542541946541826414222156027382344176083236976511772811967782813819800202054466496415359326648355187050662712234246353484127778592491011083995797530293213607924782073683922445280609208302845459500908341034169259993996837143464656247120475898406234691342906888874481025619733432773135555887330094409958195910651451693094480348391075390522720855431673199228044181743112142344038899711386924280959371637219750881920995269552933567798418766251277261336108345623560535603500713612999561303976027837652829742640939911053786092619280159441934894151982675079225381814169501304341135196201559049891194580970993170586753894425477494139000165850055389952597372570284296218799015408992343853848888275544577429226460618599219878049092051294846973006414527065574441014670374180855628280955019629262588590269185597138576697498102745113309178865504004217732352755012052335166171579128653199004183839017677614283935219943075380511408530815722301021794038344449806454597497107180141491740336107023666967165393973123574585198820802774255880540914728319152333088530771910505837900577512397654193637576469637283527925518652024210316322800517824022036226035254642871262748164947256532111899831773243536054364670554730766772494407819311168178445476724586524742428475580274212975629584429506860422425303943326887998696743006755273680393402497194078081710524228418607634042247027674677734309480584236871951156117306309116239210430147402071751447272048255247596604861787586312656304503168147762255028961040650724821678074796627335966637489820512273519030574070636886499036827765684085074274738292343644887445462083435594479138849024477141952165778585067112985471378747688903054134380255855891612900895853800798880117927553359319538332101896052924637762761341511281634819101325590515452743289087500238617898788203221117245052369348298367803663504964648943147601664707961224340866912832571932228466917361333078822643305128448694287843537001229018788492084442027841599493576221638134516135068938366795629435048955676008783502611784212436155354234575599391587138832468196266926378924795989529377740027540381614481993283121614492709896498064300401242758549471322965140271668997355052073174945662348020780741492684384198739597408240383337270238723167715688362951671689350360537237657937414214753685579418577551782872079467406211399585505918718171553888114382157422783342022331350489117629860577099697799970220970712464824553378134376188206895650832295277229185666559879311187343479531030091492439191858222178108583048260035299622113551836310834889537535795080334330692561592638872301460304628251345532853433017115608004576551376148978234790438619496803518466777621611176949762189337245767982038602774486254569072594838676541862338259398547280789652587415530558419387528715412421908996959965976249293547069058591390718577441508348263083694976808690020041531727579036541420162273190339905982458480313152996951156810808259567963221727619686762679665869763115969897932059308884841546207408098191143757198941396522475337345765731189460096691550137060679828039939837195681302079382802577285883287418942669671842719984893544644458749652615244011234303068780988847312656684006591815501371043276304024950297190461545161797122905781821079123463465420324183150866899381109480256185257336948393921867816760188955597115719738335011652190132782772093963395990793566479895395280666813480470235724330325913292259178917683207844829944386541170351941466468931839066340995915624214449860574833603150037288528731612895717132538455639949710656211028469238049188365421496723869957998383908585667127918598607886105182056933579821298366172085172524065771043749020415745968709912655128923969616238540220787818984569203068820110672739062531893320910098105510376478262042516944038132490507334479193233173185410229816613887609330218453046240202351565638494403561998698372691853748541306350506213953705235591789304900246539989571779289795868275630169357591723133669308137318259326053095767781189575039411437066081424005413595444260353165281891958361364780641473804702786404401783561380299906844581532662210062488568589817135020084521590373657348802850166276121808261242971193897458893098326680361211874578840060859368444982998683882861295648092343044569925633918300636381105531109940467826042724800328961072290031231289955930866292656748746366066811788194875084885955931469943895088498513499045208535846358802618664831661506199041339405253263846101482852522690489687280024361455840827364261461442015339050934411305938278112177244188731242958381419633310252084959244731883917012123616692610263709531808813440134767900856579771852608586086526131947972027675811183059098261606517991173107068153649280748179490920346648076345616310234221625697006242503877414383414299884560775986166567037789418286542736492869495128903511717555501635548923846411417637184453959949601373924601252304077404785949194749479596893270793919002066669405245862423450259481073683154863714419220749379157478532999805607890172651552935522201132980670687874757512879038810500400953217553677334547075274584837906083191404504675756722103948436425270342816003487929708449503196949822588718368927704453126241681593265774169374348719176943867261891116797877262045770307794099767403169176138970873256652061500193020543338421411801883661246577333739467571048667939693174642239808769276822589007235789298707895765388508762594577038253388705297364720596594623932968468380697405564640771731443121856027456385186471269997321671913689670094687956179927060607081027799776993632384110596856473550960795484355813539598854032069222123910239731319499730656419096938167354822368464682923704696496416904656063604420253809718024851320866338110529210020525410754365839797087940608308486043979523012440215898065617742374983464545420934863200932523386404753662452188023950297623872933642746217868044000884863179812728853085677563296674083737905858513312163161069138413173373974825988472519876786653535950921829860209193938235397521804258839473035054927470196038985628251112009051385491489268502484735940706408518165157249045124026843713324944616481713948977314833168733496918848860436575412691831774963671451544987984203928928153930388615390157527104775987086713805539548676961112888820938628690781124257199461160729130740813879357993905601802977985774633899789343254101460160733276812951432565276378928210065191151829144526575766383879162322527698575776751654631122712648690885528562721255783295955118882309524093127502989969722314350105122605400183454562375423136311603872633097233976886283633920750051506307313772061921573638462815490817783726174078642487723083198833757382927548628060184480278604716527905912423350769669318545747479005537837110972847742589540273783904736835297807189162749718259380394140884377217703097902404748430034430628256650964929571838912147352939331850649268755292063514034521293696004125458662164462773935228230658816689346935233911337088408306747809073882380916325492079378907021691416286339952159953776818009120154570353365876783951385033308761304642054173242663840537965721118359747764531704931271761028908116777624505015505057399904398017806167100691323029102065001245991087547467946477070483926014857977811936407749535328195968450259286131842654423944259758467384575451448760972238584463963585604426209409173852906074108874386668845154725298777851501169794986725062212876443799412796438602304737915678442819954898484318506249903633616131024409927867427221446539965878763148312248033353720429278575779015682728136540367742973708439718729179650846540375299782680870443810648697597554507337307750485916066315044313097842865872767662777319010369147160157134007226816890203723422416420243062793970172912782238777467190234656739998771185848019682109369927649523554562021605454796494604106280723871700332241371004780823931131467759420564255643689728373551838657064409422107391612763858697110337057906092984769457697491120387437545770277089916910094285197587283258735570929360497315718610532057331629647216881217984670506002022111424267145582628830588328958646644570807784655404573556390618359693456406594060185126742932341642956563287849220407860409938663831096037740432407872904618911046389979428525783697251797297218440100182982443321560751757593611723294154631962985325652114835408691030521664790589856860960336022138850768986771465775191455549499664113559515311402882119230769929764946183353920318311749072007485599486081122372803429750116045484488946033303511878466900514625084496070117369708269691079124215201426589564260929074727755810857520857811636124821946900634941676948559032856620614946244983263284874636642921848435969114730461391604172930503837098123420363273889284534916508239137325054029159427919059349334380498314653144325746552462754365358614403670760114336598762625176697376483415893752109728700154042802333054595395461624524446592659944356211757653598037884669632084800290346986655351519717525993665384077829172514861119797709742383483523834567316723731784182910838618047492617189394838457280243336929513801147341960996136569627222503226738343703496952412958357231994114413392045051710783012714881647081670755042871812409299804700088035955616609157411663148603369501904160414213354548044296427278745528484655407487934902120518917125479450644731502345210560088636916870419160372835616454429527178388538165811698639823274192096262395314508638758457770783045779270640872339547685879862500009836859341471496276713744486768069224479440947582175244961935105720724026272383855810209539476452436768332664497815050256022763913668140708403408203568235550942939076101668921475998418924562826373148791896964981021212276645066365272695843047398151683424829937383449225609011253026275309099244553033176891470632029675035462340609774457517833627546778885301266758061640028418548987506714812566683474231335773648996531271950012638371010526186848938980039723031559474153710017361765361399613244972050019647746467933526170027225655008579962390791267796127105433584401379280141067518287244058311273331820650022452945453614450679303987029134265765036305391472576072803660015372048135867263856300184262745354452851752841423436352965355433747822019568456852279602243446223797177365523410040882808205934308625364235458816130786571740629376373176395659214540778670220725097739452799368697203290121702502402408540228368754429744213097567089424961093185433485010858551060871842507000328332015338542496273964201068580779093845187688773743752775980831635222610345914903364886869263386299942056061900965143813661724143195055952058629025870017855021324826963204038797081564941633440717427442104275500740089019776640615793139426800884399510703082377194417965753140855087701131098262573064128811098532639489437921021585798968059132907114737224261296169097419818659903856962252244152492981561222669278438149451751773137600513102409437428569445018138008574800843095921944839352455063851690929177874454448043370193741840811678657751527894909495140682147135292113791478102052745840175793421231921124420294507839758316273503306981223138694029130649832676259249878017260730971676939227347259386197143697676642200132147484962917583020983379699291821513415169400978618694917303459556449961543506300650733040360522048467701747316491012083378265627655330153623941459504587843825648892327481408693355993675274947843896085604568841057718661182969569477867366229278683358610129776158424698130074955035214482033715197151994871745543635418070757462299889871115953113344716150076595903552398398106836804515498741725442562190255189054933371763594021407650048289431232844011932766177084404912010064821107385440210981616732275609843577376065768543040387691507127430581437271200757273443468566825421207921602874598002752576685779061945116593112123760039305276399692537733287435645466631444643890037884607890088734054292532896273156698703962327542375038281297372834569449530831585057551684557121911357081813715573016770373146702676865370813811109118576197070007864326391737496309251870239886714077869127277627173953069119323497979266054111161510885449103596169797155340663498220443680568505473612124893567044898095293521630300829373957169591373593526479374590666975802538388242269430523847098085964314347198434172439927253797515960561246661224714644473298913853510704351416256977527593485354049788610484713926022505844998319888274310090999694352347900766160508371992271647452306417533089389442891551092418004248552532536429384842548390503593228920831004327493677816181888151925233828445271749491360261106207892291606779077827067149201692443341700727465991120117082231054525543683506315247908761571342043000672796130389581701348086201677035902534176339408155150388942846152296340272733439865515151928330546651795594693594357252219316631631779555236872241579104655172567018635125240147072111525492280897481840449212719434133490858236354695840464587102308513391152980464998847022779235219937517587813696244333036978606473699528406039660538501214253278821183746564611177560732577568500223732560982483608594775852908455560020107954968173358177388053937383517651278162590586375129725246863377297958469100938754728754673163070274846870094548656343866765790224944295876009883980437277578004733169552405054468349865092872165470809995542243365019901735475238881583258337715784670920760906766232056536332925121175975854033093182599776933886216468569072694982113290051445484558725936282671343742634520886478971164232318586476241159245555830225094223110547314844487544970916801732431891022054139198462260231687316664361619952761240448657076426747106589826978884622460078380214586472980393697165208898129307859662701089615909627012941651807308698138979801849568073354438788988025957469479539326627040999791819049798816202468362688224172066053581792371940810788280958243163470963853038756680822076184360753215639774127456842534333786978160833864553351320188800981250601499875785900665984519422541465500198764080626431445339866630518912414673870488652584735338432791126534490868334034129496237690315277727285694566037555773021091903160958108105073223441133895603256044616796121671756621151336945124645859574445054652849308374796039154185262685746945831482577983640674167646113836657062718796623341961870544286591854481054025024241038829623501203653959442421407250679973674498026019913633593047448909921208364754457984536237560278882372234270214171569152799955685965257478140279287255143813922363965518065534307767894412041991349041750756569158647101050743135627041377165162624069022281554506053720345687164439954307818827264116577115967891397007736798904030756483273266025995580022737364537087165302165297161880765749460776969381740184811143936936667905353625938515126160311167417569350163394110532971943870069808288145089729123032683851254493722362726028568153916823830459889998533583195488303902441998852258038707417128354941538440964524065678384927598879258102042176754463455296668525399812431701013446451296878291822346284040342452075041714743085438650261212496099110833213820761105871058183155188375122973982104213262169273338972931284495031485249808739628517664263531093776751820689501961758885748842871647758808244537112335811565404190757105781681520359409536994384574878913913262731072236080320489685634269519087003322051632249483023641858478143381200390979161558994315048184465438067930940669204721829942852470311788574481542110762328534451016632406483032175546898247861104429240684242004234691605265607890614799230179866732281651008780061662841255020960928654872085773889024527564928192397689555724466777179109209179146693834474734748756227211958201939110185160368102087840263452917513760235224684640922379797161784553365640869345535892866489020408155641266995173855612090688274249694447465819304093784583821581495237476862118647777561817897379315085329168185369838605123504940421230363165812481333391824230076925678814732565772878852371103855708028636852511084486421918132169444635735482735816501955476053738332544154460523300534309265438850676725930951057682844459192915653158302110372687778682179903734904931123884161568719081414823981319254583425287901634558031508001453576456161055524946425978982699984170402073093743623580803063195242762752891388351281383800709505541616497275348335146612863310439056368505724736237537890013461999943489027428619983202816861173617269279592600819940438433617690453211036960974213834315193346039385525355914459477452117421860852357238317507124260642302929976044733264198079651217291658753755708991307733692049068446312511940872401369192102667105460744380107732356094871808160123985161971044950598220919953115886896567513152913428456246126181273102474485910625614928052388274792660221505845471243534321716838249727656751162973182596002180114241356537845128792487968544785086797462047471538828865248533052526883270269438280792670695415056042721626336182051373424062651000839069049590678595065241559539799809132536928351101868705935272884353941754971415849552691709396225686434390829105502778103198110030455189915113075249981577870758419732861834995904288454932766607932961088078182165272609593665157523062194825394529610977245885859098431735417015784149548136646363252548779411903635087996771659019259880590058569002888412741248667263066623469964962575571946834658393667025020971490853978612678814464843500049858396098592130743098643360174599613076983039856870236845218964566329019737408362911335782847059343707694284566796769417321235580393397856183128149138900741577721184786830363675696797395519917024048352040392267116103267699785538841839186882617361576846167644688840529504734692835595326070108017544054723190924812709489007141491711965415732364377944258034031431736803848765522120528707178054305605364675595695183776716187251318367221253591295086217751254977534365772172939142760341367743170451497674629772161494601989856422962476469509233961124999767986160222182252360545897127975651518885688457503623987423884994446916607367526153520930003607372446978154701675132368088572860001056625538353537611239701870953517003935417256363420495157637214224555783836618914549053139540709348429161798859956484965693542408451385268888528468934718981640971030205165642623395503874490336238948079167606820549179497966889060419187787221048642092363726512485819776296558857781166260259540528445646317026389915052137307528447789753994591231347567183367499776801314507505468385803988346940918798524093752412254611060708689715735930737317087254208612455929919347127799008918793997611540301077678721032384475403355932351980256015251267408760449849674703328622046429480632436550712976557832345933917691770098019780193702096598949492901495683503973778418578592791507984832821969489442918061604229271885275116857650226660920402944258520942296043260889023958779772471434289231748666758045663209744523759227854824997267175234750005015209385210745524033110443798301824172686129933474390470921921342730128487163793558764038188101038638892481422630663213695393037829696785892921715451430915684907308159846252846246834075133956814725267268364297310789132702470279658668896657061038565500437007420597455759022254709090384347346682718089787395410658172861694510809640480259041215969839687005143140329145385166338788920536709513168778672123044954808507046638985950149423648535023881802374560817631989633138090486798945360816908946589294757850410117243366484717826095695689163287819714672771803612179899552489786919514026232188942967586142557039133698522256066864021291681658883632688163285329060653929554217904307419679240216915014882036410829780633581480450298376269355913450567806394526902000014877765280226037514941698787510901954419618089726779844007647741959817707017190594650719999676231028642079886267359883628808238746577920754369029403417285934678684727669280347154104241227649874470042942570256760539699513590466756800329977000895542975083594376379234390637806381047185330652945389832142201540844588969761334043034766651349951813056419336970030601800174465436347256018127112769569016576591654751256406091370822777101446850014802047774958062442936842058071803921642871416990417743499553582293556081931785450306641084258232307885802108693913015528283840647609417686682480154122337497058254468843520489873956169864282703394272631149591271456903682294594015123780461691232145988912984839280013010135952302205103107968032330602617897036409998344221884973791288354438934485952223060084751681179587608490003943393457969977238234006912235619013064940343914803803465006963893654011086978261288814577136585046498445012030359408986524955003258959173083036608885579812321948353993026933972694825754291297522770135218295017054174030213176788235993075796130153205556653387552181111925562013676753105027488216396021163130209823682112532749738436607212372641811893814281986895935781854839357978891007820776284038986792814358833868448425088604043601179036759034622054274038805402791411421807142877616081250009496895525781583625882190462684367340890236927560515210009669904118188848980078028564505546851305321308367062509387088710461845574239370725572734926614445409166929208032992757716192015422422639835041864077816531259336684901285402290583043836337146789227170911005886450813099470317725622368029982584311159938378974211029024475890838772510598957901985765787225397017839181962298470335713191419485301267986786347936883347810174506581794193937754672638803890420892103087916923924519660479652780183987552911413531670950657721819349197738198952638779393940288025588344093837778717177859331070326588394808515161869951184733328911176951711187199520167117521588440795749008140076294512357474461059813258447333041742904700258142137774692378572962368024601404488507501059656334610643233160152144972703900178469643752847338983284523013025606325862388695284886302284608301534820564483687976460457001001248445685585335448151262902922142179838047817221072783489308194363728210855105871659025478547621668750748642750741078970825592146171146692959255727589176007968987296222050297009422763240681803886398631556383687993861113339951175745513725745547010525079871949870107775190987827162155388715401298684631326158781401112683138316251615593432287260999039857661465736666472119151784558948227590429950392621865698132594189949528968468273920201312372089763470655868594201855770662164862762229380553378291510727829783765368332943470532400545009842035863944283052957259903747820570780719054904082597168845112594041886863119002431170055535118523458720985223614216555981525624245685661296850216447927744366873700474953835692483741203614971274361338781391987219982699803965820000664616307146289959820796396579085158299391825852770512906826086241563911051680204601258313833365047116176376819694345035389035963395118819185523649600652170295548721636151448794624350313589165884339502687172057488203364332245372722507905961618290130946152654859568630913659819725520982529024971725067709569631210834841114506774509368310782856390139957842985202471303619419096569141928955242284197195689459386976014337429216730363003777440752851970329819678384004308287640178960933224028509163652920465907490437979205825376848389318679692958007897366652518358410271595554957993706320904684935927781135788085883482719238290621387176022621252761260232511954379440368342392626200906923242693785803905278211423963207839623760863798835535142377832021761109171020289942810503793480385014603371242971879389121735172538093075572617847029018005062821985272997264405417123015374235185463024028320705888689363135073999890355236245920822659830437197713554079954057813144722969505120034009967463289013521920295352811978428677054473207034408974904533529904085648275224240347704620528903497250942783062474657470918395619202904985506540870029113455260147696696805474577241867880446696483666780826337646273631893847885830246115468512338658165852712270890953982832653875399964359569987562572159821523843344435116555254197137108654484605332049354234695586442234848877001308601939755646691875346682334264193856882136879119678541930185775317186864140859613650329413645196605153715967127999713042832557073635704940857357733493767535350055438521099938912621733258807520646344371118172318546347742767016351181022379703664348131618439296945603919179130866741712911045839245050020637538331572493437123606224589794429438059450646407086646473230040542521794461692510232433797922690430620549275904213852517333398966932666182338381546355021698528003895190535919718189219186674211353329784837261458403951774124551823613456278027810648507159593100042388649485846545748364167966487093240328231548910268618243861437910028575346669031788097199977434118082671482176669649036513621027661113491050976413443137738742154437699724389355901109504603196102662413219488617417804886723076128963623019810160456783892917271177203302063286475874084731653051609196988392263383263573218392147424540075626090496865577170970789076699222393965083616699520548344893773527754944684176375243640380187547452357291227140944933171491302923772134025899483769138975162323596041200654557988806824203802061377658560744085125709563025465019505090304870560309593456722679628902286061255862178427554565155662502606045272759701110117049751791776016770025501602738461903712268084548069635811930987223597567208957866581678338795246971301614144359755136965653319979569265581945399053599324637833137972902721477402895385104732641019150483572116075390163969055377072431957461332857980014955156923069736961447604889913783057157195677001061857555765329390732693447509546183315440277825255905137162785285532710653766121761038640443438015683140327237691351224470023963853982643491408800154274627972638381805641354067944101108632001611850899514098194874656680315129027183504937193217718172695583732026211338014397030494065195183972111059383906823599215234529146184514039590116059264984407820654385991846774966487745837956112136135444519659189331086225482297240325134000687331914005927789019116952889818722395623465383444065922928123887255233070659604419309435866977594793917362777767592585390857173961951971640906484426202706375428359492503699084811547473066769771302971049383428692280561371854025235458739520777230555997384598079149757629667660198228282121109507002660188493177838474617219247073729725748730700665289851269615961833886600070557232907639320992556631546253154239277701394930232347965556084723031254848164609438145726406858811090791770720450395424838463447673458087151940371726212762856847915116484776672703909220536017622810934054661474890931465199301841759286250554346010344178425155682846598051865354005908636300281349873657176838855099111245884550162306127963421312132765039751441855289193916852507812844241417289347472737778242435380087872159255097061698286541125452695632492918981920867032775526802297389388356148559601393644124510339681394912481113932830148627688933384632123096382668951465364485086824419609026230348313599691462688070018467453346461907541938125153284720868947131526394028631083012606403992131351999717213799295756903182365483382616825425470737174290103488584524582549118315000474790993183554126103502868939186092420792751839409494080720232867821366126057014079402729009133961704156779967583607505392362489633150317578125584979779168196216138250103357752710053316368275198042556347420060885247228346850072342414602765020851907455868143419002923211847841862522129199067741593512916013083153731458660429845562660980678071109500565644345006540395990044353405153405136064521098996265034307284586311195322743411144965189234674750059956498270655317927529271053609550026098979052360094418977850319718822481149851244713706302585755180350505231282952092430849275971453793801644790290739559285474110041264894460419253326562237182800065071212980809627726700268534794862694772344354469276485393544027580578090098953568465276643988560971210947522535037442871513856623734869124788079393948129962202481353872216403023417003645595777669881093104197750306797336378368150498005585111474201398918788522816908098385262511138981573998873191293001940866339212229497368448228030708311711079615980745353005142114704496228793192229664072400614193798434682769980818473665241103183316778899269794407313583712695666589033491919321099125051157081452411977140786789157058726219138143064803639757737818072431837807241318039318494622126368642925802944141107446493678581649770870004776432208652956458583616105071924926017856630550053242478618663955887919192293285040501543268782584344384146683718114404885909660816963598591772779547795579869351491524370487773399017859433811176536853660672579495112814379234693914619798943694177399206298648677143979451693865537617237873574926643036358102156509099677582015013468649428568389449016336025474496040012027304023832546314009390954869952430120304739056386628163017699516609658179905666331983192740572806986661796950788201560981956418944843656928168750165228870106240915473069595334932658983859176962003615501238829953873154759776548221613945985689284602257613790618870819308620981825461832496111521996054203752469718387447457054431902045071177969135348415918794517449370294217461019178665332277663688039949112683275745913760540539362065171758684309124958633547717454007659247929124194540282821102598764128236951598103090193959193004616527049525455234104127301705504625738069692423290753230559051621141115007498356785882703877131248769186054500994032030642316341533651122351610274407374754898844727987720105263887932595935003229320600200821405286864084782093247240659786140702699860809247731630522132168921741820578669206653656065092869338527377201706913719755031919394154096963815303277189537990984400759754135494376380018371689958459986635791702178214607387478591982995537546039586274055863951944155421931856778463403855332075653615992458850315564633421682189701646042893520676843450301002556025852229800107850148275090784596968575123393831758626477060509994247315342503398254920981614333609571265539991876769835460846834389695800944163721399249158994293805302360416310617334018460987426463956978555038083906480502330547485451967602357365466083934097518749015857712073988240127812671270662620195330023078339781552674496144851917074095899329190783520548786778304218381668227410535861624864085865220968775811479834449766373888095590864614385553746764324560053672699267076637066808402909848155952325112198089310713653259950299859307087362036278751599395931867810501298785662728573517091101972430696055453026625724214242250763921072489852172182134055541579413761937105901254225653491445410474232536962297526616914714861057648861421819742176531967071207579602138959786384704862411659221410095389834226890853294398529830103842866219544288174472990205938005803955876720747296238888759348976646149203932844595930566751609067220404280181023102759034878647688005662947062775681411278099839153805198505085229668533669913945506592171300734248143203174555547933209150789151703417641545972060279203714109433074247792281388919176989131935572574721076311836552287874260268156433372350054805246869498823853752312442510167595059423653920209774970882825020715480226616856859828118557966124499709480005935900088464539439177265389697562221886090484528639999252383702211498682831530403928405312191622968706992081740301389059782133688106750006172101558374791263264700204236206819590440338924140054186426891869112558585876590020843839177109671141374805348602059694203962934158292983160227343193738318731487307950885104109930242294119648852882185900449716392147486867588752566895695207788876493779460037587080205463275645005599792175524419930262722810599703607785340829660678139156564984967699859560041379907812595121007421686283389760890034565585315874952834362504360073991725028017608999973608941651382247009841956929566295788792041561351958080097167622474757841508077802999382934976477292419920394837299234727557196477312974444960717797053584348333998064006413229199416011042554607417646231061199552931108856032037567863656542639498922228707903674480695683691078294025411638180541926413355387605363670782272621703034390535746110923835143826277428592189604845486178734301829557898470791900550645725884556793543936451091505272971711269794627136076513035655788060331592199880256561930255171171150878250253044552575020230388399354211117205474930999197170243790296948902484824980043003904198237469688971326496924173079557581968676959645415364781572377145146200095504335921359620342967629476757627124440573266291790073092875634681568884885239413669903792926151446608938299123264649295751914426530314446709999995553765762683511609975709731277826899420614552784529322157783884470836148401308238457610532034992043876497370345283379651117733022531148612388863465772401975528709275148112778975561851298129713008132760822551308607892566242804667236192610911018200024560298206831937623999926752799986401002994785466420675661219350383487315345493747548525604521762211536258085663585021420535174213160555042835556826398223169299206868943565723820289649422011371348932721085117221415153646045762846479581483205461312742652029715310337602916922959580387242267791890251585290300969487406766558944979207508798578915694853551015507360129437004065444494431224589326787985894681374519058784221031492719607647890394829031772702250397500493743996908887828457355054329084936708551317239371569103664819454568627041539521062749640303228511367237531777980168589065374067420072891471708308077053655688895351905118647821528921722110204839579494529109052239806423881718147057597937158060091704112206712658337599504330557253214935065778800343617159739874974876087873705861038234333293332529962077234668471401131393351098198715297984660187272480164866119126009188634837323080327274245245218999959354470555249991795075689808443457403153229065631711486616612918810953512322652841639530297665035494951168884926080273464018431294114595112413008158733076064884349722430864800079574190621752586455706904559414972937487798462003717736181856473509417498516023980901482490330232607019700347584174048789564416793957031764199570840118483522759168441649054114812920880510165405722489804733964688487396718914225483977422748134268761313051679184482798531166149402182230593902369099345393605105878336226770549157332765441309955929272723845902359371250939343643477159353903953379534460097073432914641161733521805766626760178008090560827491139104107606162002477910439902720325293059718257096523616891189919254093341229385202975765192036798115474800922154320846772591323111352983622701508686277279347877389625884353388890391713724612295150814835748455025941935638038437574196721806583466912835236658364209190337330568761641591732498061945014941820567662592975751989685305467966528174624563665623921340138622957299318474990603253579206102717374271442447111563184521921493991130235998782099427026459808591789870656713230723302116431892825195182387664981665755941835040603512449683664091664061582508305651078184709186988358799834783654207545416663158107954285407980742327785975639148661421745885700255575677675228532057286213258677458558114197122238923983329606314722945933584068825566845917038117151355963046490128529156651158732807837541838043638606717428797918685322377406232284173755221285375719102069447257253718149328234527977722621466810167357838786142282571385649679668832679009704667444175208595644947138879631645324577017107185729046898062947602632568930946858226174667866889309228494115655432723410160574303457699079261767013424872769536694358669033801374357819513256177735433868555986079793903382896787317541360068614201580626091490275019004187378385677365391086765468275101843063195520132965033026431784426357876930242242080194280748737393797255767690921221345929403920880439313968580764062767684325029887772872932931740765502750730221474428557907549644333354036510273746386677300526348651885291527789043811882697350967574657165327668024435242099286355124213120842460825269468609671664987685323130337686018791502436389039379010714218288091249110479998101272576245563067833958803927825050164788738508296509903703254572459152342366374703434195204344972473147344103718117367717474870731305523942115696012406804955080278217377167162483337712201544332688814860886147725372138029256348925820942049128695071410975243125025640065134512090239319812854955394331224787045080574644706324530198152590824539281969210610550564663790201868280184480782979400348401589994688366069980402671672691883421457359143815535308872483156888763092080189536899929193821442420835176664583531256370603297915167349381485508574927575105507216823549317488969194661611174711704336828071528676479798901115748494957135992369730114376967362170971128063472208578441741911257427618781388878198887728641666327817386835816155002459071235945859909863995679639203187516573096627789072046480347485684740255490950782018484328581666253431240547622751178332198608964662160034498900757090186930300857648535570246106934963333143284817086402743104369092663797195494706041940577149012931723287622857403912893372073315269442193675434715331627580644235505111669264533959920038001735352113274771606236355830392927276198285202118473705161047869453014563774509626379164302114512691201284105567241653777817934022297478737959296498608437477068197677710459479513030633801164360746630382040282091266494782186668812025280117964418331887813516165832399162886335715482451920651348166437175723399767894240943980617616218191430858973427046638374039261611819952301146971517568606419668156479390981603527177862258480261106656013803313690952907491052679909593326109552713136789369439243378973305180718255287294023099024395867581893461674839776233092072116535319242017299608022177444499904828504276001204739855396883854617198592047252434529541604127124843036022882604877890357869189034528091366651116918065329680409331410569665310822093899318683747848972311824123173287525922198536803819243300745773059317547356875274832680275890979231156151564169108431204122441202625852086395972465415681031128154379401407874908623099438046738239025309014067575732614024124034659979848625330574651024069347929730485214727274168288392283451665236886565656392544519854248517668719248735872234218136099743455950607252170842689003138238738780455688772038110257581719076168758796836070028847265196692634517631797841743100539220312933898468505318554704814099914825517128624216478967295073290960722003192194529533426441481410550934605706760167112757543279002971479447980838639639025805733273723211084372751607621944169828289006361055022337223535834634830823473641240248901638074369857520630987513063445398999953539700033216415857919357755646079432139170894108863651924017918370018855519921956646797041904569989195545662859162842382551606407833917773673369188973548033250083792859117625468547531339775135607850917035001371119885498006492970076095911248335984945022222326860489233291261375500960071717470033216322031614171964565934969084859322162528806044215938594789571768679359323156358580301553806999790989258284270489946996033029949894265646797434924706516644741652102261837204809110025804155977741283889650887225691865039231422188493412764735249658041943581762058096536771824654500147694688006148366792482146101336453933343215214011466366107626331265965180905668162948134083269457597034125136839385437654234379339259234254264913363711008837512026979235290094808805861994908813629400820995403384784095138185377394632862711867124765360091139259933101041667177437522929091497780788866601635865786841397290816894502342425471797944512725695533090282918898175353270336506077568095715073802092813724910939829790240174180221922422072870076736904210221007110283254408632344134738220013977928565683485872796727025890490061622261442676657903040370594807156835835204374985018737964705392047361110230718414136731921900586047710553775839301348389997884331380307829626288039318832472458667504669112822194458815524122835535372544357520391022888130669771317809102132492047025573265405974364379210467359185241181591330388439775161732798922861964563718111969556615454876150536816596776639920415349648122532591540235742045120883081211057634791581825627676908221105555039363034429637962394467856895696290422713069015007851302331559532448560445903386956478521227185960899725446991464108990768066087982978136891013641526542458284902560901281588172374785147396009345456298064716464071094129272852683537563065371604499997820410113576125140097910643191169654665855675774369416537206981686100713324927589103029549312094540758393655842262761822755557665717771962504994543909811848501230123484141585355428432901849712886231007711735964076493817098132913087059422865037410331074923753850183201597824515887879028285982797630387221358112944780634461585800968794939529316670576526510890070823130052652334081031076623124204395822923180289841062244581276543170581588859262748606232493240303312735530111114229149398225410035812836665925102729862166724271538703552260096662200170142397807913274380677406390570230633816187983125969149954737219485018549876235711112879751613060456703247309063616425984485188546037716179837271047622837349981898813083615350464781019382367577287552848297249378953265466033671507556354449908727237961705273077111833622607110724779271390111310598008611167075605001772782027236127584543547841516880351405491165520830968664487261481132151385915307360893919811278320905064727231320684851208761616819080564875578919923274621255554245683441955890786876168201453066118949838654691273650956897984896360343217708601149828220849653109417393218936962385923853516863488837325147879287727191365082647290618887701184425172986802046148801286989776323067576272163431803203888595325935675716459396505138989158601147405694394333273210316386134026711775433880947134570344951596240295087143329900239963642402049366225981078749726951866035700944143162054108947953234372491081176030789410842890104733690957644040430577634300410889142730513120388934291124875742828002306294450677356122188153047226066346875262829122918372425069817820796683174429873106188535488685606097092107496157253310174020401920479535692137094993956719736283569362083815366508222319294334475034602659537990626339810925546992097126270764986348196082475664819868503598477620362179699512717296498056131054142407025002344493905618499873624256317591006844081722688566078108599815143719122153576126387480850803580587363622420849789857554236836084001901685637144202626385478918715767109370152842892903080905275794029443420882228774425541757668068284611775396319592760650704883728990313102347604443001590209131109085380406671549649050878537030105225052834440609749681225939775494782933062376274421794634357154931126976523115970572405421716721086866734072871839825624419734268193514561781272812563854880488980527461044038896684974559230273312609522351059771946060592263641513020533344439023730708922733429078013290731092163119556807723045165142005252114500964623273893393521244880050382239105337646142646550034202216975199640663621339824542392055620138892127481282858688165043293854567414139681616655416538341702551704707732944622692139847105188189141634204908634075952901418113170136967250080577101553129520636286506762572114847942110268872091673380827325965198777791075058769413493045804530984667080154048382731285100712089735258890663093631715580235173926000330643402447237443747131906612913433844119939841484501726247917031207189379990889129395878890418546981495444007143622375576528700763156911894898934928902552277781802432491399918663502398540618118702739074407992360980694636830736038672573798748744786286441205234061813507850008073074566282526929547895343488415029870895054641965252029459831546596023690023616642470622318204015477027700357785606200493927057418295501940131872286088919096054336292619308756053282265371624062384262952956893338842766054384223166013376617892641135867665565821432702690208152583637329862363390121922724243760191763485589065131892275573169136535950035220426918171849851976845525275193661660173404075602181543289144036084163961393377851884200139330283574732789274235861180616955177477554898023549215485215253382114018185558549449671657023681418129871277913429649461569238014937733073357771500782540830085776669997206952639877994518440861955629440238372707247976527579254769265153778449557505331716072566829685735923598077614405472071671737758493831473592329283730959782301839955607865978066512976969490930763259837933488009968568645657202143252547449772393527826492374584713732532396908527709979238544219195923199270111184715901258016577369531929177988421196146642302259224208392320165333937560129106347735446214824657042141425433115760911338976171906837431454663489690871226353032996595029448520990514225561431347631740904037209198677636115139239194287584761130768969768722974399590095830222881786975994939158619934240430705895852587227835520475990160008481071714876937596977475351065378367197279097509218475058895159628252934378845480971602325655054522311114856323956694848672420695495861659805491190156437674464195290418854535874139292007568004983362468670217896994159406079647579697978454999342296586764826405281218997109727799256517915496919061126780684699025147084717938404592049221142712106340675981765565199625004443092113226895890058330901327219143690751862464295236485523424775881173880215922811316844603238092427550874429903782484004080509556631252525489255334184636111993488374703616156858402232010139059235328600593172228638393938196012607527200326634857422067168586040794277069613164702785509177091906611138088183490082149782591700547501051689546320619307136538119001618802249455803312868252623223460375254360611877063409618842078133488750225938412852593482844935258382324993530266674751305733694382142184883554915925531609661690954475979337073638416774489673901324778302789649284475722018923017111435030782176735231676156936084909389154452021651698993261506709302261057231270408740425154644006102068045925780648809573959082423016784905811634625369222502916974986904068832606208612645479211459940791485147468153678909702835831667966420907584122302529593079958514892274319098141376630976085511338969354882551625863930348458514423646010056005378247462754285357253741823727452014209869793734086405305619317583185843184127259707076407243406966047527062154012625838880833237794454313664555472031219388682976738547104004221669963269863427360500003563826201144926183670964003556681588414552681631171857625030024588483716873820921211668634447248888304178736949543849392920605532481093859200845587125127308135045659752375458545547900496755127921029547177872009916070047607224396140828735782410478043306510058735540290626352822052225278824531350870689766990106582300802872433442452894911671101458199415771925819645676611150638831809043234277994776940998445579761340317415250526676965719236420122706851376938666843930923221235418611453719806799834109858967683563774987498850913084927496043029180894368822085299312726048368352422326477094388232119001091126995589354438386267490882537485456473681288419909572117871229499398846534530194258367703673770040176639739769823359531700212262081952040895855578063333187442040859295380822972807753122282675421707228966679961554585671981371969229963645699694782112061264271017696259235006106007674204740458203592791433026819932906061060393945008982368243097695330147928979687194202113113967625334793080682011953395311639178556585429276217519800385981451668392667307903085939527783090170626583279069657542717919055410418200152305115478107517672028145754704979128025238487193529506246621623739384419005456776492848287572592702527634357835111618908739543727875152907244012302128705116667422806299338324364016917827609550783086004975033193784544526902307940449812935239116247582188250366425365052424637390556752263849044744384213613326816168759696005071380041843608146008518668551306953390763690414136477912676757400200382952976909443721837842095150455783745113929364595978437161764359910120408339667020797971595150045475547507791618147766202125847002100463938564369120434186085609411324621660668729098126153585749947804045026809683026107653515838553363181560993980932317647311192128773375884169708421232997004094533382993312419984331813228723833569648557430760627436018321218309984107192720336930245605943968895819696773247696681017033493077483963977477411678180699461424067796510390895084759674418329402154308146233716356034211909092371459212514188079345435313085826602224370146109900680070623408269379157403563649457306507095265236227192792076903864788828101962965811368521606783275595394647043069117271068305249727549615312528667052226312102826138194588586306697094850516066767180271224897680582666951393142213477059772426358662184340530490554761168396128968795422487873546130614792460586199434335536541703983540954740280871901567385267000261085150188975659253133283625400499585993342362146940793433944935493384676348251020370829689779164970249623894552325243998407527241022346297195409206519466909761329069772830895521643156716260566005936723808164994714941034982166209634675783277043642524261393824247416081613305363810168332690278533971341176121624168527876292156031916225744347387026613330142387874077557732193740805886998915733181717213075219486955572707461475397367123321985839506801595378298425197061811424406798111333257291854453673914338404697801501034805496303900769730226265090497097745410039193689117854955771963917541385118725628045566816821756666689577954919127114336404542670977326321895910572162970994459398824379947104596105863021562398836880511519503785351419108718064837080240819316349400621015327056502207847082001198277451314452212601153741380969439350298110155069362640561111365248463527373002010429203784977430473984477718358990866738332852836482793797272009302639077827303215206455932792034361141519359220688489793267556273151014535406482774718531319602515881861829405804713124735913002210942647373845467369437488793522523264045156765452846626051946191365024283204284083688900763427145359457533725146887368664859183567437721669328423925542753244929909898258255514083697587568835204079440296747087416521646843389427555972476983982998019060658282113007777125461103705537671674268164735571870359888687745671609004415127703905076613393515848195943041000762817198806533106720302915561589669185427034892479681911421651721226589871996528638407792814005247219759321291165102466376964004792821109913859292780802374254233759595097156990378067845138654138375708657208430636469249144267640811748057643778683876582451688139043826416131645613027632633101955738936633003652503348285169142799567736320717865040221211358701590020028275185947459601357888578234794589826342365346574880307812079468414222467179073998157475031368983142787911567125579602531504955962699070271767500552420636284540538894189868451606877528821509477255676467039152680866837213412480344930306919513737681337944364529742465638390326317298505146828078079581971579979860267474682577813372884144088137690155349175186602084706294270765381232870823607433375909464168681920661096746491294360792527410395681466734511050928695460471281853846996802287336333742279029348045493221897073716022837089966004447830523896083196805078940457988596130405685435700529206656452024073123401314566559927238449642927053737719981887662798266329257787844581341614945419950761590456075534974775324753904174718102322533885092142853505036506884522774226420006286122554447237377973332264597909826568545483261939253906920607506014606432086222864217225657052744502275354867311033074427096038263361834404164550137018684773646133621801599598307122749097288370793489693273585092134349583022553956456789403512243464266780098600989413506741236446607461301469945753962378664814045491908128030028760097274996919680783775481352565064737760238497670492737589871219382920194438062204130085020070487320599642086767701473345452067881026595837049691566461952703712432302745258861859496712473851069693947088964805670434939501216514824797346181335845255356357005720774692174707373863820447538227873093509591717054623694439257221135849017714285626568832459900284562259214864066672692459250077080551442025747505678571199022198034929845977405833395265688692998415743618558056566964042758935217573601830251288376793501022179554592826950767915368707347427851616654621440928540292872864349108890247750851957283241999705698975732909334969214818259843806258788652631461330182629836189449703928216096685750515501470929930991422141353683698974090372985774830451181154006725720726736334764716582098129917205124390362956123208628790427337795536267496743728057729825357994377657587644473365686961622092141966106870539737452970233835410253846335818206246816958585067122359395015801161374922971366819932471257767578320007834407684844224630466899817674687143223941052670327727639531984438516444399694023574120858784328585903674530478776642971049450083742534110497503384803805521269355681421436641394205656256340559599273465067621386761927667139772682276909065133119068780718538014770863430355073189431479228967878937800460297917367066042866496800035464280755803913406719165478844396165388087661997352036546432577030291085146990994993266760972042910305980404040755805835799511125801205733399585464877242446300724863136202829246592008525787178718332206832943938536800766899410023870280026608380549766620468403130284645252797422035692709756723163304513875620820019917059255770626794197580072665599019360968168708947823760200875024316469632454447335916259359037783511962573283683765071648446537357418193384925004684199779356074803167719847709628532673276925722295655256954678246723096638595785039797331094045862161647491165145554869936145358006760514668289352804402235046376565275319698453421743448553760073844656171563580196957759697946368559374923962723566160203516298298199796407454842510367058317585400453418468697667945987238666974968929650386647077839713493071874053095240369285614249047494147420097174519527180443793940302041647612296237178508070032585032888882495886233987543149592138408631392091686104706869524760999769139658037536086470690461083364834123088284524468108394918989168000600310671661858261300419124797135254992694830452650506656016733332497190823855921221758536366366696923472999228683013925000088612700750843242657814440043195220100023846538094615569358269265748139126545412184312693419700299752905137713935486204614853534824198457425470723215313456719505647055698111078390876005324696131429366114875510612961171037882718635853661048763747048338764558818105766023512622463804731641491866791232813710333024151952481687196509155244996630162164715053296275575184463344134173248564258013631941003232330845991595579621466453521226288578261275639372306576158124654518799041003903324130519095030659817051458625705670292277406862762394750234179553602620625932087724734758765091490925438605348194789044491639462518825348537894036764968421167393677659609104285041724008736318898231140667836649747951259454906129515495575912190956549548479965186148405522855394582034899449787765456487972948895061257377088733221616432310169308126914835444007447197246264484594684805906155980056107906952609796471645619227823647364320198280167638999200836710743547704687258308706410304077652223932307460410463705560583293723380666548843201868264860477838906244081103295041736045525006464468755709011820031041957099732569611599338171942605552182765759620178979766956798898338845557269244391304008737194960543448785675691579619356351963085113653539461953757216564466528384202520440717417039879011136556773057200997112502743351655239963713453488048035644474528012116241577405099639300792249783495073544413435618615148107887011058018089045911158771821868591024332572822654860659702286380848012449227779385885857702648343513114187530565676356951190962271429569712290693485782556898869998945414600827508361744084607956184863762341130706088183073961839287064182126592862010157270155474894810021085289552993488197086727920891050390429769098692799752518803230171076940555171865715079793801739073233064163714402101112855488190023800943863636344574079345416155531698925223412721035176983288017450484366086643290050721209983462270336831411159043712700388891773782194205408317733081241945670713665276777799578516957975802564062286992413679402388274110526520162137241625688765351230017195346093086785127568796344987740963242309902062057006103680031823683496081316872450536472481748061471021653866716306804635653054191450287931981979177391423749565216432370407937631711901553549395643389216510416882550522338865128970595120307925820537377543827331246834621273616499532033711908154074850230100367827889808198188736226210088542927288968243823455078328643248946444132153345730317561056080411877527270015496990457122358660936342820891901103627353693526377745165777708351725136130063613717180722197702004203370429073557179854515397030858132534723954042950711258595317422853181177756453110045984089379843388082330553858108277698586041340609345971947246046734977227916980703137990377083129394373848010387576591321509364845877075323816617637770291964975739573944169875874844023399764922851436391922168401594706879344573563830127522141577388044321794875222978192814302010736238384513896208426602242630109118884441606134875791685586911094834818450528360249282103184700526991468146613354283533354202668191813827362420592442001737943502701823979415634851791199031432810516731622499329096173084767801228359378265161152416620150623145268051956962237686709408777354776681832254979548356229101587097588065574236999316956049305208011402763393641285434940857023139659528659390699611394828964663593226663433999376323773677545375465080858198322921346732241964278086965960182548353220131645569657905419595448464236462790873092125782793548955521007485889789825262894275025435115752614477765114849993630118239680648720035525396344869672248754454812251956143829059812435002116631531968548698533128510401689275758428136794105970023695655681529255378576119252762255220029446273508823316210100257070437661465283468227592218977860962280751453851705686194097631776772578815080563568221293555345440870543020613522667053786039092468130575189447287710198371754594880673035402228740854714298468738145406647936031716309196108787243717968112814574713755692083459112858232545150514794369362681888755355946099816392967065150469520410821913430146245834727409131049752693796327376079410350652072129111988322675024786946930623961493345137036615298982390810475449932822863665544383522406767008636358783271062473985394611839145783773220454755447988474370333371418385391713022873604751142088390440557403296935644253936733413065715234852807117966499731608713701971885424628036058737219055662944615114524963996588275279275276502257400200222695288949627918931469635059739391073384809744563248598245269511102161211226384906585263323719874416249344905705536984992343186676422040191872035813461820666238461120609835189484642613294891745505601446841293038063021638167114480622867534717552555200806233443632215538423009716852432208080024861313586328320227705867714165723410951248125450331887234888298357335016970607926433043576578365516522875069947770797344671227071204617927923146364413001888616347288910213036945701539938487937994390971027888397437540906518606532302669727805239747756050477370942578098238128093852214866835574588799216031398731513826452924837076256161030088291225696198819035420097048976820191844003682535180896676747361247912499359569728809955898051576708708985008006488398940430142105587883498666586643932904495024554355849893815323104894770243770781117501653561445577073405965129375290296572028644131143343317049186200041730469067198097422363518388385303955432213529885373917147650836589926435152929134797601165117743898861243069644325912777162894196928722110571949108754071838202609382323584153296486382025998929344085250740413858152751274381459324202247933429120586556322459212598079755351510560696904689445383888204752691515171436330459913778525916362545119041517258180753222993829722336380308534478536034901866698641768441186914066386725833873189900114513931860462048959382388028971526475393301842341442048600939717285030821546206734502372716660384638773780615995636848529945792799804625619941646870548275257895889019975408132284546112261176112137044397014578492755251640801440603028880308136326615745397978207456010895253102585782796446118324765900784770090092347330139226418558307616022444461248619005195221101092604272190999692858127753920981059579957338690875668461533183034372056684185275190871484075943824221915464428850132872230230393347096208209330710380845050839082493359401201604979954098041801886587264133718208003903919466912197600092968463197924599808300400869264869428376155449850441068858363124089324126721577762674238612193545590233390777317679070920152800724534499543787214357491173137539486979226603520676735913812457811593275113261079659179122335225376086335030635898190374210600843919569837216794791619605784795342753858614806162126402572105752290547871306097266324762898531452298389874573973433217905300214901744816466808311857694251210226539740792496615262578806812982343173967540272965022981253370890653962893285983675481084918337023146728079140387348676246950326959574638032960435882610583063273045770096899114342436073661307258807372320936257583531970226459880813837565668859210026778266035124560104329693603130379653637356704377954469758497461748050802122448305596146616244579679540239858106825779114948095318298891529523109252148699296828839996043665425649452079866215123808414124517887860975604534050561639026304862232044038763706185902713387700875056419802236377999048255067414598042311081523972772019939823808827628733671474799768347303948844303363382975203490757710838231805078540151277642230995820938322317811039214741977226932170777401900770869217246696040756998038975519872991777590663811912971262362074442247742108048242875619094190249058502719186107189805765875002607309228690987569235823461781097495120908941840300384797861124151589730090786922892533738070968379984361830801017125478008889771485431811244040798571676833942775757495207801778921059013228716572294701330848220867602358490452894409941999533135376639415923612997592489119540573891099190784334965875541931785408235876781421565357579383761326591733051931336862664471018527866435293540428481424306287415291781665394300610191998263017543176685841706130736629088427019107466708137134190655992854179359972443631887932159006447738481492046864499583945992498017999273070009054035403127620756246569049099263006539220562235572015743146575553691712042553585070919680122629926158845218417261947714575252788200707727526761285235036605101022688769544441804777588497637060272697661529200901536713337657335527781198532640571425333741184003782451438359161499297471686870107813289146330107504626661340836660474411676833499371626647505561459432492561876205449116038608416754568318678049084929468625707926067722899911738295230718380031523384752156175847584571668969850957540365790333729094803639520100723996584233781241040476677468862842594687926474162408415555730350780291493213751341088354474073859228527134048336984508046328781196742022896819141334927092725078344882769395736373311928446404692752162107131090352206069306728441406782501274747198027398447744442702410153274291231705629484301474579910482075668473668332816405882680034209000622971381161997456798100646706517170162419414549402271413552532363340101010669911489797577334020054607681263068273739018630895276339829166506615489652370430552702572561003335853623204558814950197293606834133778860681917693638159623386554280020777206740307619756959495134576304634474325120154951149808510431524605191724168231242012214436427356458120287703172424780160158292404778486771086395377297199567532543191123106765857543026075524465111095109560336432520577328013298601785503053847154098104766945117428739746162126724777499029390332857442317114961793902060069639076979863729575155552923539307205701880078440341306245249871015549726298943017456360581245966555009602665358750744513148929240030469593162031266319196842185364733259000510271759535508609381261884149449141102614596441124382508084690066385980618955308483484903200015902088452730577362321671814949441837073613061825399420896047221308488174103664254728755785133717971600113190978286178150325679202674995038207522215292257966654579272136744383295011723973397358609533058247714989404019236507434886831766863666183084752753999704847453491103458121327003273740425794314358009662810555509795771134319575623542560187802984416587042311653833217275040669749393949849345589231416677817448514534895214331172497299967883493018102373890324061565629120627610984804644238554622951169332905165173430253208172799479018294374855391512020964483331485783719066790390620272299534812787536054619580944827384116890870122725359724476277827056393793135467823383005058636961723702233616227774949877929536788510548243552465518292033340430755457613348267586466213698780462935175028876359008269390478298987222738212180872892818206316814139421581046474280532200808490432982299488045298710623600773556382553606996095176882926373060017325160418509157064785998694847791435926637574400444235280239918414009740112797389123756169684000360045006341220033578153234986220467053976115558357614143100287364282064478185322856713165920564849887729727086241417202653681850137396053228491523666118550995801567869270758346472509980747509549776231283097579229666512580886982804366769133064780987609295344323571770367871322215975437440183317557271439257709645934573234686975353366888947419279109600492293442582911654614505701457510375075448960386933287593490796916730661852534726444906170847548384569369864927431067307660384664878614925933816452269341582259732083887479122407115033180508771160557442582951307981521641458080996688150847425537738214365303184800271608079346564998977143450537103468998609145647587527237116978063995352005006028252739841742585092689333790206948179994881025664347827784114065823556775956563475979729511150931725556964373578339020124367602496488678273712256947872110044110976491589973946141563470409690341875879662487880670456519275762587418375695468558299939318381741959784915132419635234709695003719606844684908974376116348882433357903332836200237955689142472767378502859461703914261889016984566415163100541599526848743765415995419913105817463196480224494942813327893094511447009750851546139659559855834707282416439182469559960101607569835043198227472186191037056628744170096083770098274037658497284876355087888994528216375172572599994849125430384153132075141062897132722613303720379175608826582914811438263470192305562270896979778541272609488631019920780364508296313600920172405745591212490883958525528672709581284728183871181847102892718359747620905317519972972520435791366721049148520527800646992765551779763152123221359944516099594871140689690468990203405171917275256734147326567008076945743340369291367367020257484964476469935325023967198002996643687662242441996457436640305610788713075100654965790807323246252506438987187495088356055516448354850874414907056218039083105278293313669343804522519119579625469846990821205130637793892139264251516677469400170597922168435864662138365849993345986106525630057722856426825004202375723127029242165227093559724321830077317218803262731716069134719957368875847531566750941038126194011514465088272199364807108941397250367942164498612458941742841233119705057037347823325146812658746643987030415847457995745442245224555788124222749602432724632388124691931452513174553515941333009433174386157553353971517991585681009349791926211470486331679498416937402763786736789352833558069921921962271464010214965087421724432581202573198867329338614720846112302127247070954080315489121443031807694272222069007297092075570914244322069873719189503286136249090327678063840171705837525529504837330278032541337833538852242098790175663252706302940761750132655016731322097771634090667626046120498277357056456340570384425411944322732047968647388765617889289217115775068803213815199068350814129042924784145200782156099793654205950621864418604635739066661355890543847324598261329304364659187817677889048719030231908939556281792635170893794773473661560294808700323122823852287798002564116291271112715676536697315946588969154189175216560691937136970279098563706424001640865727117069102899507892849095594498559552989589352489251631998433712768149213351661346976412537900745419792798390616476879129504200140737018312543351115646732307508347891561564904948634151499936321961305783214690582668704068227966067190302097101017411960437438066694474745607340478395780796182364822796904737469017064483877706000406046036446364352247498278937997083010788465827373881489911230703866108903039805260360375804832438326883848795107821095041279860297446924382837291316505119572035348495610667643037486483336271918365378259868771393474868327047584118283579631704789817346222359194850164766582096465756049366100933900665030129025835647764516047696249790372214775932180817169787246831715365271173351436813501602247222553890036354670424690935133588444647731616874797241449115719496593309092421719383932451449216256589489591244925219014333910492133203272253236262526411498267824792859016386631133009925176574413622265154235181807965655649234251498413108636552389044877307736109974418559110532553117710500801474110107159953025605229590003037333543194219441606315328901822679424374838042905984834234238623896532740904301164171176749082714492644255044343098991344448417421564158574160940848586507000967678032833853903961332268425942813387903306087921595275975172311767396632903291883839412681385123470634371326618319820974253509361619785136986801330060525804363482949531621241335631535178712518633811554679825155638136517128241666009701789743852372885175703657572002781733821981685881230835028895485258536398757023233635708987005556154568311184485195820856199255295511542231662241734291063653802914534635908185412680690132668962284875740137870157886953163075940282913795827408431162356599080776009418286720537514832411936757309882148605882938393320587807363080746690382354658490445753008593727162392514857621080127524949343904139593693511136227652259471826621685302376365395724883080203053293279034384939100944909051201667499986798640221212701001635887362367218930034726506584916798450147097247610277435956300606900897517128799339231350986406174882574331171849664064810287937159252655457138079087535957274774484976749664216757075560176349878960896500627312722028587807396672339901314183764476514233946610202143662889137894579396534177117776977171127204735429627690043761328198686062124404247575932583158870005896356159403081181810536564184495414844998215959110371151276605317515079758032075730734856744713792781969169530822608760227374872566433161353648742799255033674443911206252105663877908328859854657813642314666283389918976021418403707953932785128803090411725992531438608588669404048134186302840388590642458480445914953562710781969231291223593954512327887425878765197106664698711044505646682021078942794066362004494473407905790618819681902359921447020937166640399429673502421378688222080149187349848878074377814602573898636234129609114784085432882243102967637842933756149567445744459058632221942859287130324936594119263585109219219254809150310685889132328679568685367915043234719203952757521368155730528018133689262638792532037867950968223739579827600553760647080726013696860539049298554797514036335273162843776860047476695710189982916424335195811794922357946390412071356819126128546411107380905753450906936436748133481567209186120108074767454667808830237600577688428679542582479616882103320974031097238344493693118617343715207470417982161554246746482776635714896644645698114282361370255437394093145918297470237731923903313415087047881468362114936087449114567065663781432427086439567179600230792649137935175697706801199057568718781715686081756025899501526514116106276843886710544428942168539719423604451354724745388756202788647297339356829045573854405903992914314014876928271944690255012354954133919447960886977875819042566488857853728477292032854798129797500155008442886000305482900597891432795437366094610589900228318897702599223934446136372628271941673453474781114501393483425098220929161702135886607024136419643193592121056176627721961169530127642115336415548057280681031743634893180757443330090476212930991072854307822768764407056366236481760863992697615718145662767472504641193579316395638609162542193346182503131284682943830804300356697977340262695298512329874416986993318544368835472987480697736030626123785456241197288489518195113815632967323792952342563855434424854285471411332935142091283092675988697724455869804303377413057209774825429340810712131081798272587982675248636438145942987583427742541366106469916130473069509273508877651107306487448281717624664769539468563793980901824087997341541196715767666747950369618602736649431630566698577775220802893700102316862367350310359674227047216509522647653603389126472383816032355007396876843663860516539904045771556431477367915586363459833384907429938862847612543709022859829340029449672181823311989701992198627640295286562079953249306733675777722755261298033359866340961084535242746458876629716943446078512860310668050470524585337572378884592215731182612917377892508457516330811594288263294342309466869682609788295005192269765589573158059817999076870291282664756389266249081521765202906995832239293581118629504871383842878338048741451988495012684446885135664132700516956554937419609079769355557598236416895999389407358829834678951743195287816241079536510890410111286949347578897848297434202954001197153828969165667313709402166624619931555172143457157492633030733265816174104035668915248661699245275238047735012097644113155546111811527328415836668351086423032531041568190286827137515810512948650128545745814732226970997260774047220254276800707629212149062195979133524359291865683310969808466280539950320158705588919356422081291738082713957823463063966080714846372322131504801666232535138571640583138830477520529488479254306791588501161930103454354569587012185882980685947049347417833951160502261310847308462812963672673100362628438755421609448951353670150216638553748884585089816575046835401064449623409895938819154053552421030386549430698542681425609235923237193743629911513947145843138628072175225677404555954057579281296732895478827449979645943844655538104817016237215738522484931279535900776541813134737309087797239553669143212751127937621608284689618949657886421577540346595586252392412899388188465921849488400877402013147696181797841432148586444124630759728843546478832333842768306751808336964197129895763461716842017990999033411615131249097827544561384008405530000534103495457461680887176734671230691256780506000485893353922789904311290297311377380735811565767374541906441392907438043087475885904968001663759457909138500708259690918000081431079737680599560100402336884184935104684261587643684749475498266667594385618867263483743845532925887213377784831172213987835540941119732675282298394361001125103187120068596062664621466191463512555130393158335781933242934200002845795182848952536655399925122172819193436593576639807856746237949613594586577035885806385851813244550376184575488961601513036030387398179048098864025968240310879845681268085715930147421213320808733243258443842590847401743577169231378582754559265768071243626342412955398892095313635625167221083338884080209920710845957968872372239623200966482154643885361589261911134747128414825665904236636624645496721689716517748505069686821180263308320124228921310582667107221068832906111920479307419318364309824661040536098834461423200322308349585191899832170774410852218134455979942931282425949868690929510083964492463644496082134114064766960811242823439541359069434183735745467667784349170059908843397604001338646147491704016937917596368332132864011299685557146822430056404386467030338815936130100457973081448381614494834693488348341822253328559129041806499469708815917845673469234675859387006296793764619686771275330923219794166642867387126549649123559073187563582452916263686225796370864343198041091606448526092657653984055105597854451136787659436361887627213775290471448951759303860595631046933102334064380532119100585646421393563214365784963691791777744565697700775383919324374471636388836948762019310000688791643483138894647838399361698289843807548835570225555238359834722388634087298886714450715171302427818753356914615942930400174544773643964963085027971258257765600129093319587169507889066298628415375430198804659569706060444809999002661853362528789201961971223572546850441524367708617674073210773120046370776386319728829403933449362358048854819235642380173066130258841413841672452253474394316112306737797182351447016313076796725540649537175622984627149124711509252386363971812801783543701204961612803492754141735096357688469863360914133300321277780634078825036870782292360604012879969403668362139849920744438780327710687106096129622712746200058033357913100814499667913032108747766799175822899486320450335856394238219967740679234001573575968306554003498578951180755100339359609865461247400347353241049272775920376287382700252143383258673934591529870908136349938288408892672843667253062099797486426935270414477926145413710713011703329797970463179189489634545869721232255671870719506074303076115899379866918227962073223463238710818516852779138757828539695667141447167988753965897999885565203890667981304574246068044561807698390384275362097724022880024591797548024092694025803088183330721452641028151754126070107562464438776082063854016606047220356990183088873944705677966778547045995797555856133905501369588291267274762100730240628687466123353564601747710934753229453495260090457053463397249022642109650262804446061667056317286813420699804209149227254369953571711485888201394813666278764690596110920040863453369369507829907921338530632641295010139963802079692509145322247328671517068831786470147819521488801103428570529810975897249553194664516442770151029953417901094579193769676225673913980323165019485680584862816678710491520852069115513464606669517025725208634514292974245195179868825922687948203710456227337451657921475387065987069287511272955902726347594149450219851036339746810013677931595913998661479331013048337269068492687626784161868994195578027803575706900356844883264529943606606936827037841524233010261353057045760208671083038877985782452067694462623828995859865364956090664289713754459941494332008160411442829679643321597120188322473761961997020597538189458139059282317933834395619834609451731972621844240465710257353723993228902863558571337042649098701940953133035893610751045500143907688817010616422072728965530277321756857198375026767765967014497722324569789885753500857781762435539765306657491905071101770016438442923029040669346069634111480779009380872513313774788366085977368972442082955447241339799231556905838437700770449185248953656742681157483400492496007654306602223409067687093691895278554973960916110129073884194076770917804386085652545344164526759043741003710158584247192210268644607736033541521706996395343296358131823982240789474368326593304807585194077797421769604964235294808369099614583402491926177531843780333466564917952111260419474719840415723259855799928462645823605381391276111412821839931826145431565124004953442396549268407437420786290183085301927250039463708729054056108169710595805752081088683687667409360589330054409439320523187131950664359229276629801624940738814258168095911311630179186338749363785929348131793747878316195644011400619224704525221340067011911480886665296617619551726965172126964030559687880819320737970422199361594577952461923335534936988712174211174887737366783537479412441096260028828499206695009927775226895322624162545821668950834575196817262043102775199632230315701708677712756568294872553501289985089409056602557819381660895409534968468508652038402953175301020603920382069486038631813946946800614883499396427829515585593087600421647365093423372265398677036761736221167475846493685512700527790422997821527908294797233481791196614199044650938357730409536967708397057263226626945806304528028283598244275659329248952096711133716051757281566881709917730560621321989493454427335250860343817226036721703200916566739829215802684485951965909966005410420587221221096455955269227306241862837441657772387231577682729247482004504099751599300953378125287324461356041334509231475406179048490261428748404922443837006157048530834204536509448702146101810520940073729451752809518244533707249121889708571609070448014143785324641175672789049058843132973832087065603721817520067788208465005056232163638146365136229009942148219995267010591192187358862332401003640760958474491051796063022336802714774797829038122259008756564051894493239188394923404543287850148569237795830611238707941462507944913602890516933144642941202210562958348597407492208311257028565278778441667151476182312741090272631065687636234494114915369132253545585745637492823032295791902151183470983183771923681919337207659658203941683614874401556018558675526918226932482028602775181271920282812974788209941147616180201138265114656871193834110053366376486719079966265489707415717928031039429642236207863794051693176905673397389530533181413462847326500737377376787856640361654296645514329039087960066733667325839216315271947257914452803535332101736671808602977751673291744960900707343021139153322331321584519391467146867085492437828445043581364840934856253310075586444277589064818264984861037978605564841911819131929487239639226255792067033839966735929124771830482315973269534664803232192073991147922957257336172429390122859634962921763825351414606548598670660253532547416490431316893539737050754379590362483193462646262831742511296471701889762867376243557133235831311707695835807176745537083560100299236887123731195326704004273186480338807137259738604129568474178761889493454179476284185998872617102394066071963682279794601781057516080530307630066336688391868247309878823347129079644850221875036060465778860382404912489850132968486714099579698741486733904054681627462262439032626687409462701114191512986254975803809855407287855135445829559950437343358425573638411627026018658413348542934719969821491982084804104916187902712499002068726061703964345341405015724885094360314644521664408839095121655138333347082453736172020052104959289908662669533483614997162562283441510361920793011221457060189655691676795609347307498193019826500975624475401665639896510386145444478631471830817366136222165924246921592216957452504923742648331889898043402134351858998496349478308697108852997969019419359225224930967080659368345301438702175282747204975110080789786622913637281493120705024243398464906228492793261360997300957198877321753261358609484695991175018460634598864762990078096329499141708372059095362981117916606035171554317327408230927579046443457035838706776912448963643630397832943323301936829287154820998174378586588879193544052931408396855603545918667249134129548416150004599334221765669705764533183649060978638787440851003642672633015315573155532935533030643435530317816621172966301017706172426805743821793057799597989902661805593689718535983773038439823152620321613792507151497453106650154890851341127902433471387722082367007668623406876729673278809130893880754331235372080356576999176886182017003181909763934298002839252715379611796454869610521537735084345928064141329765926601442159498342103769569166630952630474681007090180169986585270695916356205756894953437041330629967249564034134161018914156740096674080954931747593713786866066715108446559776792978000806264212237121033167329029693796420197807180446584211408900563806495106616009874585845373893022090292860594628886932200653626834245425306036604118331573419257415778600844360893179453204370373893877813887892638279493235293659805717215291971519664779192915247465992742917832041260053464792614319797288749343901733255722846602525817351070294239710454065862400174085776560325255520096995496755032985275232325979657349666165522425486925450062029628573319728696042564712423261618129065172195240641677046380527063424674738560423791564255442543575315227337534228963948561581184353338529120320814423873784448502453748886835927981756064520990829065657695065413618585464070416405560110797167944171575498051071449824693472631896188230012749812842328376857659348068844668547957577426897824728311661872251072169316412203502170828232021207425178740330465035157220952613420210640375554777995681930323000420166759631546947882616042222501078985440019373901989546637123914731600798302708523624826704502790470261981571552195072142373194586541468376695232892073185465301577313861425110334852973938793861046367427692977979936508965039821383011467620922872097280381595918432413083732187390411344287233376547076652527717073657438433873926052443699559161673219749065164453206482442383243858370367167755649632278963783266727576028971129450867596000274040239255641659063190135771916583157543660972194535157167951535630968447037420366975928099639383353514238654975313116768938289168725804291980644794965202902756390725796589209007473902358845416139306726249316757720883466399241506325911037813959985609007177262535172325207383794579156704187507221260519960243922846949391290480195337701161102572892759083846118410678323883684749854846871217135237636040568517189376845038509927934029923803140503805347747654435680065353039967450437909084020094356953096417616848402477053351254413598779595172121949015768502017967685763223443279061248467693065449379830400030482942146740478129844481083659326582340241812596989106655241993545771888094645845852537806868603399150440330912894804236138502876480800860862268597409275155065533438563379289663169451655486847729901687277199157120191810302091550440653151130265630204459458070975983045258527508179082549504003063127418436847111782524825926060843017242456264904330856722393462309637113356609366233924642818048008015440083049137410614031751190494535306811265602114169205408943443726885435071224358068594599163245182126515237384868521096769113585509813604718882816483143236337680955571937554764572084234266032567562199558028835293961679298344158591037606541878808828991853713001198553839686101991802720467057993748627897453372181038251361418300449167434164223548653748374460416659089435653576781603222040943271448781836769921917438466316602241363895543915481796361709104218941557065642947729837142610887342721850836132684687615959321737945824362737685330077134845934933991904856113083289802385494043112773728002516909184162184770271051672439057051887108227421560343425922358446413385790208027075414453796852641244141068064473323118593848549211341769941336361052259423047711215132475381541138667062130406167958720432587321349776972297110994824741446216867014371281569121473985978683249386189056350289875187448596414112324542602083342356860785933020283164755148529771631884851547942948186053570582913548016136980972864051834096956440955889424113382396743020265154923185539528938633803600568768244316970359837412403059943088330091131243295829345508243165970593454060882725387460484089209197938529173420522711946168218462844348859917939769000742784632426205062749812962711391362942832061616657253560896298726527378838483015920577881285142918573758983592758696541561396527717550200628302103941948511625921515505961274572587653572275339070820246630143555866424483169295095015302947885560610639368688635350721626838331863988341735627964580368246453210124329704862723421053523381693269881433316727335811052870340568725385301248845207056257520285205007452226637640695820866317645038219779840574378457847107576584935455240186483314340768413347110671566338264316383686740128645570493346127411148051878905715599611401508716907896041805099601345577712265637591046579365420371303904333908952639964364339892558926401831666062729772917588418153347533989137977916070675355629777456943274499513182737850812607179961371804077661583705672399185390871842921466119972898767046545497970937250852448059396368137920415908242429337845287668658066443558983575185908539043237812644314959370095528264891024977373529146105119607579254966302066384690962728604910325781434351870256816239799530236829687016246089742136294437136709643505873264669987691761454088987896137351952842684497082298389651543686559993267049039235614471590312536060021871856676679994687608330463194706111941786614631970073796793057713872964445092915630455403967821116897534982164216598447275937030052647670512402406825342195465532409924507575946062919485430165884320209116301839620218576082993000489596051815583743774535314175192173741276712669618369674846655053883341000963133238248741239142124167410604791288847211730562196500168707319531579386006339720402594592495575968132395039209273035553215355608551285249778418645291304110301988209804027698704642186227637572830660144647815206182669364142782350914104507647363606727449131974290336797137515013048171912448706652762139372231062027368236797177299990802973346715879507390153477824569555412730899912622272649042325002204932898151468618217665323082451380193712620232583494548699476416335808608327058609559080572884837511331026046810160036579370829413131770329494081734145814261684759685345537933587429056186917794600354189419885233734162465382654048013154027267565735206723834771699779347955916185815486467956923405684113088744479492962968423250895359246913642625936432602822989448437841389512387906196794129110718473750013231725541687855840576295542703436662676531143937118358401666172563481474713417343345170869513845694986272830212467724823175837746014873534989952979207851348203979471558093761369977269489033485075925276915177895310407903043000725990321294933003326534860396075216448418692189085001964205696354202058220513124587566220059515574928663389269437335164815412996236063917143682429682505755725838616392387510708620165963465321429910964366679014524439789601869963226706620673860105909574027857204604121977743075230611339818778677451310288616539736669696090601853689954439072136331443239597447790793940854516316542333127805820248777970200076246172266960453827681702667103555269851006282926654822036745987279283065156524669463124438426472958446916515804544105409374200324675467253487018074354763959813316281762698311573846645877798049901441626177260785808639971882945888657252039944629571485657671576506902995507985145980503971337097584102728787110580366730386852366712618099117195961703995034323318363239837602542450671309989550755386255521197976770328842977103620002531298861592588094309831710899461112596376326298188993036686901472566155398341863359489444827979645715613248625260693037306970865491444775901149256123163941808687934054356157660459490849313995365915263406436879966179375542514059367979575277698559309562435330757670719445082372846602721591703537073407433712832376109109734715481220741826305028347182146128605576219517919438750083255886854317255619921352621984881763196035101171336491081335159844916886386888728317383974148613658733150362201560342955253016886092219549370770021539099126953324648407428632369692844071368826650529751911206762270843892064021422233232085922315388385000720431588893369669027789994447584719052830846760155985929747112754874861270868075084447147461818037726393066995470720245842506144175057719687740051904535788645205518024058790917605763332145712854659355549850256954312031418661978537073790656178164920689085951737151513390722372513746351444025606027911041998385993843575992495651755664287866215449558649390993497420925798847123110917307563187378840124977645870961233055421957631573264042515344683261563463227495224211141917409818272680485327236184849228471582493441658342462954512469055550272594515663564106265732191120506860905886025941466285896661479622751440961286301719414465173465517171424217166831267327039954085295710006036418470725936094804033010976562195640386184013236772921227616343164413743482001473780818726839120325782798407231685627633733462517469027000069228996902396363923159418221698546720607701905131725204475954284520434444054471622710366582555756213843419683969517060481108457675209144757012294352698945245299456836231452504539454026916266000378484574121597588868718081061177232235987413970311665970313850857863642605309601606491299901753806455526744100869255610829734895940264766687762037873663708064733313606150288985428763979113501188045807581070919096302674483164728889091953522199219483577513947050535583831211799247311855391533503871226459122970721520930366945765593993543744577243200615182122511825898724604466300295284879746284660574811716734026144002016153143365256856127381960962553613879333836660824568148026186088381652976993730036398904167465271833375530466905183336962386020636822193556444852804154102411341947948521686961392848812276754980010127800153529202550232389246764050735288747794102087521747105384916759172048337651591150487887484581104847231713863608292457315400364861559405879808283283003329227766775284379161721114882743960683705164893245996613649688264202748206279935598732666942375804309224351126208471423461397480188822110856691437046277781285350338501261598714489501405673669214643278233141288022735761388257679682778569097278575269652057236591444354043604533678622937473979152316444827952995456195937102712954306248515874857414727980152413285866493919856292690328791494014088959830142668563184752215846008216358206985957772542799743414859485032912890131423922112110278012704027751960058941924986942608947609212726524019967238022056633381835440033527755589383979131910969919017922232001425407548727354447718428658919782284754672840793873019757356997716097474484823950294109672292882603585841909532642730933809584008376287775033493917935848622256364845961283821789474087231402217410347128213388045893267121436633600869446458343559334674712346161820292879102106176255306462143897871427819081941754601318754423011062257768690776566748385563793882264891019298980397071797348803095423717810193263591817554227487901952179711197264511078344929432650934785151978315050520117909880358998530432037279033844911092262043437587502935764770277480113453067699759372599082598468737243177889700014896277573297778858654759635192429180538223064240595659154587286478877129969782964679274832280826839390301641019018700716815801270284910114429488732939901212287895317029337955554204136966480020153552746955981604168127483150218845534632966204218213002543976489670347373905783982229240112351523879112175502578510432549036352643046411781367768535205233006109975097261510872374513803785162528702579818936612129527588926920617377791182583501871054151528937708179343287752331037944657443439054282134037239906970984904660259727030565558674292356669463025877936625692210813362583593787703874497278626573396601483386732930775221857832349930991232803542341316114913318499536741813361237238249999237368026900656133271181954756867279430156179057700481527632150041863893874166822639533994520447084829677602934572273810331375659898983173667039021387649966138834302102138319658259556449401000067680475878332220510946208291240935238741072831127795680373511298028684773888472973819377477890005000319788250063655035387333342438613707946322660485093496084995545031251769688824695287498824795014593281147304797873484092508694736074713765961910050134883258448448817890308805195648281082680911184417626894365910274711908277844555721466847698225525950038044140528693980601936501805910305059599453231375553010412697485297752759745754123043259397382655057529994529144320783002170696795679153977002227993088741123313587955482206182470437624800133024977620618847393119909829205961362697251264160072319590488918154419850992787698949539301679503850001170937001030010542444366073099838717504047582122789013939863733512869749677627307417407745131020535605077668230342684033642593207580296433214229721246957016947769944585081290154696212620577125812000577685015970119890470882988641939157282329262830589634719267692493873603239519239484440900769111111372477046916209621802996747050580469508049764979501738702507449555112610328120477412805008860190360502173630805072898803432591865194592000031658996445637304361584589269786686124252929088736661248962074666639905293654812225591137718592513870540123591846241039453875974306817111760848315546541805774018716319348902386080539810634655074739040998543428884798351797176373651265047325264654052564241255587957753785037402726408953080938752262073641794579527011752110385423365588033243453258269448327527997374381314864636528438031797394182757437970501010637914479455875327032862598244458137611452576486526131764429225452209515171722898276283519495200197771255690542265004702232967941340111390938982800954206110229406726140482872273390623766715797860148064162638972094318227629810984401764845874012250477877682554257256184584710226308381139685519472264046891832969588037250490621843652406766493908384159326595114637851608244042470703826069090895927936375568911744962590856179827615067163786098995992630951044088229825281037151443774435227569417340775929907658536723210424521018122225277549548193264119927334322177914491895986875381688564156546019396654833752694977767743505051615828657398008577960681912940601047725523679708795332653507333845514972203096961113802647005811585013429033287984339663475255906784296283590670743676295726590335108069769983723400952103617616527792940839577220192941693629627943674672946854290311729781736671488866124961016642679358078062185896446771693751369838471505782325274009484189990632999212104316073876469252057127696136465757186705801434851206767487743329849377068055110662507874438423220550142731295055479812669945490681046430811702941549310055975924421695998429709699117192876942394811277260107016031567576809292080646518428396545277997391754272918621926342587351764042176275489588561605715138293772235832196637764263175642725241296887372033630061584359227957437607742141860398736449835797254267106276601838650505359711379187941124219792048790652814496857071966424036431376612643548678951773911067451949911454248250839250610202222075616099815176487823580955243557661811329334576721551167880091719021918851896978344472606210620101404183160683996058954540374084266718726036644464208732323099852489010268713081866858342546610513366488649802585208384492233891230299255592731056440018549075677899357752419122437389896717476705351811963950884443318414671872099484944046745506916601818125843072482284978354844510420667193691847725137109441328737857578711788205920614103506425673694044232398220699150815926282778244625087578927028610289280469561203909355094253148444013619197697165154097617281843126404211438246186531248304386653988612306895333397388944681418863008949764938095891931227659091097308815760722164674911777235768594099208529342435670987050524523314228730895387352572272343895415135288285436348549262263844876789716187523576839237468029334084793360665564523620264683283038617173366071633038959139870024909199672680347066850140086407827662623600348710794121417389297713055736198781095319265294674750971093419494352285970920199274827561117430931967514542725738841920343642678730703010008226825361920099957055462708832680097506078285632735373349473834434493435769208800939774388122406131150314058178298627540901191253018675385087236351267301303661801826294558770546012267626495246634642308549772302745904732784743429002613402028211547552960404322433422217017379468917218473356957659688388850640970926185311692675505206997971705848533302511488758591496143507690383917742199665873316988867751203632554151782768710382641804760868593684321375766408440147537179104509557294877504843527011270716719230338671304516656126462530510577630826735364310287203290620711998918746361206928788056957413593318364301252279099402610586092672666189479186315656235306350441399354434945295546889200158493212628417296770063210025478304154840358810433247020852253734880642103366625934935681492192589447689948624948918522570960345743878174965858094309706557353074839297861690762475173205420953436400626388540357839444812287766012949980334177993801618372623332040538261255410737624409778880062612511407252260663947390975233536640798533006249903441206351474821286964535352930479950159954726926430279630511079836412075288422704210855265981056762979091899642254331869984061153002434722403559274354445452536895129780218700579817674746579843868800145628895516593166707609323012940234906599791311970524738837274561556590369104736161870596431721589618654145956737567083757317015178256926945296240418218895850008073169477919498116513006619222072652135756982290998772603715800550225374221432527207564571936006359632296887477815197310103653332120752174406656430810918379905001150145270113051479727922261787518190145885517420143341301716726485436950359742337931593613258122898187991954446147890368847786202474327167551417173959568021524037254905846071357640118058097422606737804701729539478581871433749919509753401150184853318253038101862406813029814154401986837575006037547758188535051131921710085785305558620279419594908674295178633150321522393073821391590536615245410974599943300608400132048177617937096935163160530537088012309881098022261718496582818404859721206121956388020932089656352558956708606503013424688556545988272527082498953395751547386951557045996206177299870710284455921900640874316926046380830919414537837536849140358477906086638204930515446293965722016504276233221696721228351103934047606023112995032366971053089556997666651328644426660403103713428784387073588768774283934654146115001501205590296097821172657455097143902180146131354054023804277238687199232455790444606227473375406614316642977268364378927786251776342965018927261318595320458253111245761152588917546578817197262065364769281358883027789891493650789860497285502505589162997514429792089320743100417581372149842121616105266284329430069930538020768269041708652216862610351475989227670863159101720201245266665605844182921269997559079480030321501133446703497167331811920804448138573525787936608965481155233014022205763555698683068578954548227283450063595510857273611183331891220553680916781912003593475295947038057013130192041918752945653607203916234527394399684042139447756038399420162432486816735271673433931987515045568256201189453663645551413134289094405355064439371699112493837982454132501661432669985975769181207255297266301928383326342379210369807839482389859694157818924114547720027543544679279676063928873210295758531609836850059563068806301141324808252713931315995841507951982063578728766151391396921400000642503455165865362720806383477834512896681633614123939728692597204698808519971979732690792325689854080839330815880144137497204241737851669294690615030376222627227144676669301686303855191234652098196435427929636261249010356589158476018060264485450922936777494989947117564697463001852207361674991764197301058776315529292089481758084684795244028913978931668872840260560896360004595515360998985378928111431907704103790505861097129331623547280898361378780776526879134203038777331459391508923247520813024942435814663457507352995851314575482066854492756855304429071069404343834827512651875660439802217957372809141651574828172033783866151143123884188173743756340411716245353217940533367491709973120489291155086097786246107094902891253574749322386321597391980084050391451622609843034636017097556606131376236522442596741917518022631490008637394439430916799370996070831605128757434634568051298466940532571187733433446327277063710123691251088841273670220008046571418456022925217672798691685970460589426388262398007852354277717845606246061913029875308879218816033032467736498936789060276873669695098792020788627749532721213002270720801785378052663037497320695867709729042989963394798548102065295292318619490944868580201829396704763938668936468603267788834636553037166668247872193219097635345384872961687616302323332040495036112571392698097002517257112468044454808152082414936241952738639891142568984708786467338839282294164690308844720028758533419408872162322484486117627140630793026469154163733486146971550774850273047548978429407872835382061709704530963420694450220178838117180690804081521924012608734508679468644048414691015726731462945962201384018186692818187922782014565591593330382374817227216752319367898582909771053282859556863035721546789084829129041257067031854306450826400609339650515630956914499116525431621461030308051846767229926084602802046560367342086224469635683439720493638913515591373254584901235507969854636004435176581608037075928997963253674994965948558440298743738392474393263589389576023548497021432107381853622717991973032144820301459696686948160304860888364512069577165547514351146172256819187858145219325178844506450572915458223575456863178612832280216685059134133472438003946362721534052202966709516878068431812303234758339821666436294702104251339989225658833408988686025569651271446276484282263141936638917209928105256836391500717824789576402533542408965004204758697569480364201046530615273783258978890175313412443430185308719835600919776610101366126305420634149935478277104712957621221520930457461094897896034162876493742450507309175821802783853536361591720414345861585254055813322394083152350994069040177587787675722308938698339070054085404978320706390683976142430431652486742712270010808892053900008530852672780811467309061397709029046126228738553612772509395789118626077071608448641087911662673620791297968843087652053494709023553096988240315504255876335429630999576770932865294905965379321047026181348822295386028931572854016654215362271687741545028840648080402299896013147959039749347840675390434857000431910970990271922400113510054439630980016918874328004735327340614910046017086645493947547735615157886971641328674356703999054590392429934681702259697905147750760025712790473197149867476177993578594009852716597769619404605231233627796949255694532961215450284869704315265098100142660378517986705175500036191868642850094257444058238118748462099430080679833084553992820047480777426251131540322225243963387056539014850343284547411545867795772349597097464818572205039108391956553622670985347015874948195221624573719539963335510646758984567783047275690966698111771417039616380407471295444261432009015165921517669995193013165991293166356480023698588512834428710750770421055237677710266163691369975512489879981242946271468935957204911578294473997768061412187597886560692987476971193899324858950570344737496183505017413754680615027131398479575669578211031754796527294909475106691475400173000919551962709794158220473718454507482550240563140127961090671246466210124290291002353466324968408299071310057797735575754988818524102622747415766678065135323619388035193169377822469598750309342833588292677223233092226390102451036385826285795423989740281820155228188626551210449356045012084276214037582091125487659608927487137933776429115962443971959918794217658973885464781828211481524310833932227076888842068462120759088007126766830298530316500366148247491717989165141147133050488810209561630802772918972928452543109047261018117631955100213215051454764944126030839541656333137304778926286213229622390723901368761252015415933295711072941265751464301828746186721388976064423782225371038250394320545244345255817675801474139624738868971441178170904722908246331610932842345644946596295262093429518728249115707967444286882393701777134559921895648547506800713710350602025530331128888386325065131526676428403008742614951811033642410797003128669380188287574085314107921237795438069563813458248867882944439733348870895898213853178917292907114424651903426379731823483172419447436175591322459309449507519693428253326766661737933373459809335744452111683582142741043333504232147193847250609006790773953106350159299002069147632110910127376307762330069377101727253519125481327911614314608698035474616046906412198713092577177708065225707218773167621892131008606851127243699138452525837617845941929498401277413323033428305157759964924470618395041599791516928413910069151400061928015799568726450848959407995592480858834771896998624352503087145894045010197098318729412666847281823384183000022938659740076366140343168312175654036314759455210685247121359633266748532258831587973025766197632495416519519093748757162716918610590929643416852912763797929573074896094761042217750284021090507066365236953512980124342607741263024239482279015974349291636921011046341670061058865758391774993441738402196437994869410258984912393629207324237570133144587638195338052742863611749387739711762011886053848897456979021992109735304786757350746859704381571862051860421372393350110948045749251926570662982866692124230067105641221212057008395629356710975154446625695762895963258278955921352837293172077079966984766924571422168267009934476437843647190351087946552706395498223550400610390823037865621980962001210446265954659600657361851666444626368814719501420462997336609601868639785195850639299450164598073272155436366908395185806619314258989375732304969010404679115521416140878390332518716686133329801580897815734337823021323525327368775810964271193081765835361111122972558760460801331483096139987907135876347182934032024372629051605788307294236146183731556374283864058904313961221878628592588053338437671912762409336246844099058015595418742876372782291838085919323102549217272276342298575033207710378183023287706177036714684623005517064343077210788090802301853572879026770113424038534766316872191526783237941948698473545141590256754950848244879494035634720905843292554058496900566258268536743187347430032669981424441466278745721286910082911141379177221478034944307282192010755588517906638471331268362913164640063166794657449621662305923403813451701087553257383966408914249678812595688452844855319951255667906793627640701762494207129076955643412795361567389270772225469840070709158864188868157312031394584971988271164312416291454616813864741443459930672021385676419703892786815940642542517682019525196507780200616790880775527165662325883773075656950187527462371697222211854324694733461122814204341540360553190307888493425205960764883613821886811303721553459491699851506499815951730630371405257832795152839148029083737759124474769784132135177665994473291577304856992139418907049276863650059747951906664431657961210285794993557965503510934115750131983731756444842296640425988813483142618764715680404093376237640645645408874561189699763577224411245270148566210491709169134569208580972104782752945240970292583315218050182300365324776572005665156819366954132016144119002554462165593786032576658081298647124153719573121308296175500043433728371882308267292544220808660606288930170344145654444804294764986702529020758853430679247514573919579764067990838564310204796304896377322009981235180267848704279079104672277273263031834332791696462176584823213051115516873215422106358866768347667316640705625023282424533353938544029387785783731884275979470946171414066157793819941003107576756731979294132247492641968088858319246891508121114046272985291363221862314557800444226926225201791600113491644693650693688689375981926902135855538210145996804367275045224734961186502435299782900444150171838075974508344269258233170739511806501062073093551528963675091582176704462793712790198312534183750297662559747864767971231265457134383767845435428101319504676741543521637075737944939164059684349219761629113766500173167814317246187553601807379141888237815612384320195499801961578054882584435570908745106132181560994575613617098435160100729636124439104500828395799076348239705479463776333453085197341169877621630151010077417037480786360126717288543394212790217399555504535240101435280729714940617053046435700959271355340792475743767201878369609314010318934892200395337064037139734200374109913044435573297905858047443359537009856465116225030668874915866407209793669660031357226286071756814949840446607018950940217259974367936339003435468243491410462385142655835694130738867301252459750564247705906672352104857275512252065217728432889419205056845461062572505739542649167051759683174814911456858847356057144733415995526316474400252976377863457957844029262867206048390313566987579304491621153521526456429156834045906857706433666753248179003749745901931149497206348709408573823548073569202029704186628521309471342489069636320109989688908103604274393895037045947975350046630551150924620957647053825916072286088713375165704279005622815978489303027932107117823646748698073670872828399588573451620724583782315598515142879711507833211526583979733696053578038068889653708725610499762095705264150732201136410211323459227482086325783365973370072920256695466762846537623800950763039523553640947433335460935970322829578296625406864833196863951390982479548638690077048966388625940974132152527884131802932114210274052405769347852685638068741164713714588434123662016645773988142206268322629110120970365494613734684984017021228256907360251318714715514773778103276014612650529425768972143014489962851954859358643353250153108416357448223970714715309318374424426526328276610934768642063767841035456834156564759461043188646920740057338357593390885926674954531639631394165470787649703621875429394827553143254417722346587630570014577801323733251111351965041191968253880945869466071299399240253138779790711522528841892995980499336420057878523256074758075665950776721853946554414759594344777147389763885676829439873423262708723623810822740453719861427535994313456655517905461547235295269565639502757626276178434442937361780282472174301132120163091681036464922273242318833187264210136356324813111086208444901657450364213144278430039557417479296915248155954983080501905408947676191434877233327746652492433992775203421707278708814641145159385896221191172001830734989774867360907415723784260867250803730379368531621646233504282999657731995911934219471205693270349500044673565244255150843603782365592230488595547168990000936142613335069735956037786878340799011848365908382988862759088506519591283838998577201765501706700769020258017848812200781417264653876945622896916837457750569222841827474201591877578454523052467089128515976309949061604054928716837287226408732233508378852251221246495775324810609171308869529769840192188828484436871919966065304503092517255756709044447956261342022254356816559082636434799638837358007484225881411500772300027979614326813360299626193036988039605472267504785740273991099443696254499138397371059191211598700848096462870073728038120143065158753032784227792967815468084208132823599410735479333304164709683266094826494383766343821567639537620466874222482482489154353174336765199768831004523829784422788834628833998678195817456588131583391781322368993834618578952728692179034598513030096566322991082644773743358040258811495901865385979260437262089471113503875501380709863050805830662188486026158771913575977839336597454104701775837256029814032768709170672191945320586502475375948144337350002210191205142510548780224018876055165118139246740655344891029445527390966806084531696345344006161954848148924773304422285344088138904270043316984545615592513188609512822055614568895621606650280275887285093102527776038042308897405217591416147550089404010040063858082868907258385192800406552251886119831195396266032492542494687786707135237990027801980726000801551051012319761929337594843674058504724692063902336160298219424153421518168398109056429100644949781328534329173513965935525844311735866284755131876323800590576455027029529676277899356127793234510707039312815381351657561016382984090068093429137114750156422242498596804454130635265380885108715153823614509919146690902170159942196355537353873692010820001510418738322767697132671636652145796275713324441632939866603738674603134140599557079870201850782005203288326491972910105205643926377034191639571144074874778246602218369014347473220573532853697679699574204973232203202440818092665426372250601024416335378209446819206866441101545538930523621393510350125605713541642523273051515657383923825856798558035683188958083558068300054973145451864724505223685222751849089640328395013664986899984583210400540244421638329122735033842659988631496370281301787880723400274201720069627601399207711917153043350933732402253955869097728509374315196983309313777834808539694658110193140516087585133892893544372421665979447966135087452284294302172556313486081357691889400623045754020730871049316300289388687776433283653021892610005475171215867512692046323774197630988788680681983168353381605643371494081105341256608950197435779104977778446549768668294865359647379437770999748788029873132574303362934099274645665543945034237522069801453232446594305198996632387293940245279606380130157701897411976328289424962723105100312626742948818831347852447059882771915678314314044529890437071842941062520756412215542721039281860452967432472223535063353450416378699908526535424406546074152494827222593507718001456659212463374455990306614623207811986815734026564233969760797768201724838110041527725527733606609878464173322703822431794916347547995509463234801996364219193112039444351795122691355127268844324197957726260063712938944444213975894212613843261602604385842045913460917351036851482546554488219643580685334397028885230266155211493514909982681226278334478219185935145219429910501940965044333550393623186116206549616900642832028498748600966879738332703416940411665576980422003119628891513700208652663016957633397922440466163151990845684053851595655661581489911384214372502146110349453098072035009524696447330352344950088733832543107214486180344291604517434907033673120323244937673511803873322479498904060562338083249350429259171959073243587907337838157544129278730377390541974747548762788668015783867779097271880108726297254305329607948902955255028433924910744862673199855865099190637735388592113573031424762491257077538621671180004151144102941501011393525761560698963506081224400299176835621271676341584011261014053786062580153218468907685885936585727339259152867970387096180887679794329020488930794364743394112862280563949170297898655375887225624989050415164474211362303603569134695232709575850510913684627961057776387128971812222979104236786016203893769627718109965276843053513328960428068473751940120586461392103632312990724142614534918980174011355417446249463475471742095574460104385939084051416388926342753705322559680180474968642271752694598186635672501741123481290138306931379650252132258868982437515633708308829242166272742699743851859658635038724147538096376927893072709763417043255426370554298003256660842729250422584932089855048811373846818036943612390215665638865155881075576143180624442760095858660572662968966893317179964526946060885820068949146702525409281875284438886499061873304928343524898182143392597743589447054262937157291847947741176768314622163297809942108273347718894202497629142565351454392598170914048211011239296317840104482756360532475877499911517954987676761919051304151190205321504734314282175398261869401091546401465104199820972917282395909337998068183649837070819839543263490240930437082014008100096862953034148838215941628537928176646991507830843083559366247557380626641901802624848921564097528143703177618895879859441986899518990897390772561179495782902788224781089718397706411424953856003557141204632616473961175798937562103105908227621043070128483931818154678107990494131176090511411094849043287693510288945165770871513374478188569277557447073364228955820484416646513362509741447946949819999565890998698327403084769235922791355436755217891389533781661494045828207816585122405107681813160453884778581276335224646752090975196113814372705275244287064385630187855258767004921506875474372904425293081864024548325882605263083151402256084391708205812529209955467702928981435001392444694035773475119102028373620649534669408816521447170207165462085361814485756070125032398392132465826745954013463247385907687272446568961661813639276930245001847672986133314253938436738901651998759821698248962504704938557590200860639278724204485315708355459653682172925242062736256983644464304105008394426802394719787330583882937360295875516809336441496004947755124206677635790748463044810782408250686170392956800572795749728198915971853483031765521834185011053019758700718698834613561632697224154447341597696765725650134183405402244993179072878549793976688473843907811829698110384969150852196436351043136316328205889561241412359011606423627187055568663852646593632128277105726608293841695796966407624087893922065484503684327815209135144288332660226858644906093042171939426446006068513527240247428915824444181758303296795857865641932072375382403595806676397319254928083511842625446599284350903035921133725692928354368503555742882374130130865039537597073484654247880750212378439147391732039759545593275842086774036772138105008507204948916494183863864725233790153676607276367628673905319028076230437021527606007416473346401436066469725787910054680091098631965939556567340445716518296979528718863201588255135214806299700380474992905030366882988004008920492255065473933066136376804330327290875343220743992160946938168411073522680447637764867283541008792487518287435882693418650878967995415414641693505479928622330826277817674513200730089622065570546154548019553782754967571744603600376202226536330656575927515593152710264368296323188315907227419312088182797353884450169935419229359560058321847768314209986857497674949615237460114502402519287758969254632857904630576012415595770269164218028770237232102114594873653947814173080189025442979302724418796491722245447648102079278770406995383815843905351014455713409986266502016293588199774906909350902747990161131240324315613115002837276435554186605790963779175128167196902902465710553908866361314539643618014490540462850188098050988045416646658915632504945488622164619584610797889094608434676322913911921547915395973103161523867192411949240618774919208733631706354562568752297130452878736351271021591194227884756827181911110572423843483869365322219609589847115267323913753955323208095245910130002090518843300271796395772577644035768604423457618053335972524570572248071740156801325330766290853218785856086624365719502810732877185664021213814671083859099554384496668816267337945370823692948503601947861910271708341708667998221053263972645352863347331157528464187525777434182293634540300276307754250230200938216518193664707683161961494049376694218956866904062894378438453479100583725223664726143676977921269925422162285178866503452913399693217797143440138938742174665501254603169552195836498737182935512205515909349599865248343131288814682567781703841086451933559860400366074659402426770141106492156433745415049776774065623402461201223346015723519776379776573105958763878590794391918491586510158358288977781556039649342935322257899154174616194794368325274850546633689585247220153951369316164730775456482124188329936024656885596747643122215863378214527885603769270396459126133358885000554415095890167574204170727819155471442402287752861399068114986984622361229927471458482945788517012051627302559765819836872465897267964478170509706101882512584248672972069535858272146808332920236626122654553671990916272669786646950842501152917260188043084617712114529028490886231848102030950660165127162484281594087282765503710735449370308020699917028695041262665739860342386365215321188615770357991197329087041176360926052875746303730856228847257786235389452210853006509104517724037036351571664694665131628595062058282551464720212212088955468143745695229025314439765353040160712459902258113299238721551244225268113176314900924131729436017130126286250917422442014266097084262014714710369850351751438398117443842346225197696280720196731527425198097330313107073063920196959270852441487039780216664966781780174375151025159828386771037405240805577508820699988595352355767845211576021499830737694609209637839509658867319895243207743242676248269947200471717584909694412169053734801257726168445568981536072709452105996824146098023852847948944521708448718585162451171512137407842714345680215410463677429739740798216961868160362015879545474434838327975492790096750559940947530901193555033287138087415838553282213059775212272799024738221033592495269036070501160903044200535777264306153614513268212205980104363489636895381890946061223161765234857187365955238346804426150756534511722080073074464516306115433406037825021738093203169928665113174881263262592812497253553213164772014812341295910988417800626012196680454807275520948971414364326533650742917933699023815160749217152246747082414837704852951386042419166527061266868760355710526971358250630067707991420173368511871264981656563799265414208313782238238982937897815378081177159277210701159079232908185297437362763964346860722198175537358934557778235548240029841126243997373457711232228303609335283204706820155580135319960971523665373802963125593868858242174758384326895385314029789802330105582699395406053268974199180944876905543513603205776871852022361892318828690424406264027610026792299330650874436702132575346741159583283212844754411763030687434416020982074991715257265999284960361574177701567354961123857932829079128045146363613348043499722336311068514020506305537578806886073230715397555427187796851745008918712412211491752204090780319720279991748423046770137876048736043388632041185036939859642460148613532976737813676421848648639598417683806073535168642779587071753218794134973270491575652132076649324811390963041317708319881571786364648494274711573113232071509145499543340851208293416852407606761935698591185932674664016892843031313443264614598057455014163959961362489199406302852171214628514039725570956529242184337867594211542189957970915497582426967165404985147747166160921996992430826932854947256158552057775813117668312856496125690845727458131010428924819696965787569567685521000296087112441131482580485171641084734311183208930057069975970848280805001886705579138677689992330780588588231648181082992326748513526829463326299046751433902729466829530441497069379858911260902450593515577189465338044710229894141548132755327929058688012161156528427865284349774282292892628652834626898262948836935351230348824583237399325410221376997276899088913913438009368072132524606278744784553038075875510739749384616286117220990291069219281223818108087763084985314474742249327316005246517502129404673865165444700743355512417698045332566161751956904291469158185281061054125777129727319012003652057056063013832541805974032908023203290261672665360748416702574994104154572267351920482230328164805057384097190908163719339625176777027909540591273496901097050289934244826857700936649001708463429867884014612873313101220629572019954119903281874441598425113380585323148146718394306095548548132811416533596752025543122746931894516157967376599447827768888945100311271851111513317138804874030711073107173348117288200731130841885234827181129011092454730990604532069967454613068553560850012522001374496681733025038988645513883107957389654493398317567936492366246904587060062894371265751921663150395245864927003352202249979953087638833306725125221331315009290878007203022140236867580263384909958671333284043769083290170127162922485676847453751439975228612794944418291712126852195267826763757557933217649771651065232421708984307476985861689001327963652910161228882679386225389118260100109679494804064770045496884643569898839503359783710375780483741843593862977443621599512968617786104197596587663270880273212403981274387431855838011885300201509996059189550506963984388142756326388593257158743395395503408601282240725625717190149195519731135304842846464231500952337932167612147618973032115860695598164635250320106669715301549132440896605924567242061023900715148130853793960238688075445379833776501072441134958876144786912956146566719870647807427686539330928877184436584711759652875382585865506340694715495715163538957651203392592983872040173428562528768568519204246137881660239297469798398483758242161790018724344956141984913718414512587317714132748540281654490014472761042722833603127744139060671685023668985732418634927773760760035312260084352881379551340460711259431788409596535734431701424765179305349820174582342702816709911745690060225666399151950917326046884987464298288821267740794146383864172904966723728588205993808771080321195163102902861671691737125181520918266495814137273748443952459960438111689865779687180480299324402155861861259971204542235296184054097554133071450948604815636979420357068275955829945218075599776087917378161593517900903648560970718213449264097208757655203294803280331469575106787243653947461239879197675910410279011448758382522781278687109795765966263687874934210837664030414928747160164081050318146928812808112515209034037852292287749254477863487632841764521448562342750139458890078001073225036458286031625143933370651173828584457984594554343429821001071085154596960519431188310277090962458619989738979864036032868883867412244332415996613654217986513814070655192372730466950350008851559849516270922597710919228945091597213103246683829936524050081497699038331895702712582457371276359841649087800157098826789267848619162713034429213302930190672632673546377225495184671897482554947350719222228926017686091067147861774708020965802512176949332254022704422191327276623291550487293850207002517433875257363605374504915288122517718855379537635047249908056063488678238214418143836665297494613675418982269366444408612732020323895715836811470913246141763921433402278649565970695940459118545586098217327226726425654799163219269891618420311951220948039485279828725757964107349236489973236159836063037740970972978247616355009262655683254303445472125198152506577876288860711629600958355895941418927762496846064228101673364377581787381961683463258024834394818069902275126678121682300082536118130088395221080355171391999173538091279587374538653302971394396962737911782960918099964732099477627338024795614515924322686828438215167572059556300316170775650516463894197279276658759778944528722355961269231248278418009418540839273324479932025454217452616685323940167471144757176562518438949414631027094036158441584296219273641780003177328846359679984975625471121141854222458262050485319187538118241508075428916281926597110309131293740969829893706833213624904787537704478043249234300235154080798415132106111910323901429338387719456443414252755922514018257523215697513010587816120384075662286324735685482752391409739614093794164632861242224242005147730525501804247764796975586144392300682922527734569990228484883608415564821182065251534444822085017624977021301898850501336810921340369954931878629901939305327362810930158886996896170648946945998243843532284964900292549449320018872368655318257949172589152128379104791711150816732987120473799524675894042169285885981239325322853753145189432816750449509277928511633929806784872382009189385235522734599149776667287062482709758342939485117498113200976201111567863328758214506250576015415313683938236378644540610194678505500943712775770589519702082325607676296502632843441317984771937572815827485628963854243034114281388386053149181426160242691251054600671395775491672072279927242190426812404480871888516935062532827818312057626441277603425251058550745876070740851053592439308746069294771532208189317006183830735606303854175222497713625615958722316529400912629935561948370808861202639443840901398045915715156347592389458830819272332129003266734231191252037665790525101424261734465822131659816450064486066636568284418900931701133719435860248803248645029650138416989564402402844653085116786709148949131751363464934198428219283246406393745641447557093364155967842674297367895001566267019091895233221460615616010649315516151419946030366065021031772072237938743372636234001880945324266368474510541324726659561260615237234609076719109613568944875679586572921506619758901321498961778936437249267349713713398964440695202013359187893284770752616276000015864117404960934811115295497183668400528096682165443266886434948250127550578852368126928244264218081996302804540164280497624867908279539684989512783355132218119631239885136048534394964318994146723047096791046445660717272921089349058032934293634022550823077089014061728664804619285200405368419858592966633762943304936231552618269069099529862660821958304475168770080158180835144159054845848381011884280691336478673664153105684561719293698546650875371076909541438264708070054833255790670671667901545760199752765574222301189876870923213211020203827958795799947798093790221762295801513897458908867128150199604561496821643864606727761013939948280726540386717037600663568576321869330629734237572630358571913955542054859387626531755930420302607682221740744632488735195848806677126264887665264648603393480944648666730738133962680589475323829699540858090426554054225606522274772595671032961920856820932286949394807832747235797966305321475134444590172622561745022864545872344436641824303140090086549051036590227433213213370914395030194721143809177546784321181771578664060236152840469225944616569270553576744593413650811252621784357204909193303641378500356858317150369861244599605273550225514782116424772039789538463124448138379336475933744697662779269550242067969180835729936718861886144316844171208001100762367891790362117421473950151725200983619197696873354696170441260542898046327973582267043695509227116857056835832358841383086803295873709391344082834158106078178864197654269751609120084969918296780286582304132719043887836432776187783819103249088011641332056256760669136492308067422768972746863885091663459674958292219720263696748420522257633344683591432470438067195690832935149506545104003239582272969690530576328231503320774560110173669696608654919290921907314038440724404279691062388006651368760985118243248802308567173239566144250735048435789059166080971162053467756044675719954660611235699688127144780433115067926321421472082149567638901887419916539055867819481877166407879111544880384717367522255657929605754258341624634153117516391944228950025866425785467024851533957323414904693354538982435450148126108146409099743525046668833777781919190272239469153623782334998568860212443532433776500023369204005036087782412234533805920129072746583254409891273777952193418459736022065862606659063050788017483642597289027610223743042886504597729612858046756050803941968888504324637216300363754547004519335067990958401781370711692377988772541898751100592963237327476780838016470681489597723943550113858482695993732694052623377131696903260243199607969566240599029978367201326008771256883974457332481207103164336445953109789307512288220544065238802423371287744008458603562740042258782174213432511193988129713628346397197271634449033580671399442638911586125156619381833210828523037015342924817402790629490421433837332431329282634069745362077941570320569392753663493955246314386334798286221223385641821177174750226919645784588855095993641846575983618758512413529177580672157786448416594793596447937985113780714523459207311763478875484916974080038683994166506667883851455476384138167326846544229795306083741827542419369743322152612712184292327991025907956080059681782347354278989991204431889270415861480624833439213947797389133403383213236886496179000264422215535428017565907329110356216407061769514430850247071492758621719013925806532313417263768188397660501428800740529390732869222408005023630699799061636330103798983842077551179006948748608432832808913832826667303248588050023001541186311681180305015952084933317203924001069602870887066420910331761790802258107887699961313115476281552248042101886266289869259236069994267835181974519019153868876560339395704322795156641062810570826859062123921449395863633925580824651322769211585695902532429053266589544933565213459117022604445644835256942526691402579254523843274694937382329972254489343382289553213388451243040999682341189152880954821879464248805836588850314365220019968377923400291091860978087876295039338688573198054930742952035722532140185088189657554183386825361371692469247268619003228758474650010464330445605250492458829016820881726911700088755836949898634303426197857989514247126667690418479149781876151624377768521006787506725187801669872114537864751089059776403198848375093536022593727996932841989185276067553217270960569533749455878071217289949425752491019554290344952268201131879177128001998468012956208930211068573919154789965318183296002208006026244146291482926099139832137429799315451959632669775163608281071465503313050716329561767282751905828376844397418478909191957750507395572199430885673212198887829324912625529708916320142268126696878843506829277167771034607053565655613973025279210248047382806135665450771459721595475925052246361335205366030318765703480261918947272597535817877142986050762484246623832754728104868445483862303078131978307593536700079071411779470192061167631383702237486802113237291262176798358172298356903562871031643144879368859124369821124060949266517452610774241788938777257814598967699892570831013389807172718044635801168933332456365288586143060456319839305798377744249753241251830890674124659034035075278017555793798482046104915424197390564496017582403382484577327381595913184614162572408828023358935616177520508752488803629904364352819513179484078970153548454080348779518831070021667435450308762826959629607828804485014767539001751123631980538443428361310685771985058533365939578455352469918172471825414155586268941173467931096478314588633682127552542830459520213600831655359179616454291851742583402824599400741145986239600664418365639999397835097696385956158145836313496666712529578921993960963411580917928730405506194063765451647677650514413280201541153993222701313636426461257114227017119761155136764392868658095067963592915361665984468441652003778503647481363143819146358307725929083695575845986612826532450321653550922042021981377820952948289787414733449236304265542888409348823016470020357956621118873487114285335089917444849722515886164895304754163180383385734455190946830209065887053420095424116746776039906794232341878645233964236895912807741051256140510517206139829442759359526468380817012802606531367939852438239280185265209710236718764608191925454597176181423435539512410307269794505861515124819400670456892635114032245074104645661391840269712391367201313304656822227860294001237808666043819909837106108714786984896337594980357335238718957425436890818548630861620191981810753281456278347582086473108176836732486143013587264920920960895283081983331133240951752959018272013940313266606290248856853197208373023000240389571102541102385358622410094093068310137538698908039125929854260070905441941091127506201215097351941330415744249466105968001373890129644698640042432512250144014499074348970187313077097002208909630142723706043448620610627370112784558937500497398603769754328653956908764173427935071406800599859054471885698470885758314715303101589707750679004520496002371081404729407231747884752821787732452932157099058652979680051685477202092982720030368507737961142141267128405095888975411541622072451622651133093856463176659070596287074387184426588307649196734355648139639097625040695303485817033731242309799115277264270497613358939176774718915983051568855946234544202554910835164458263057786607972795696426155286204469980817390698846866882989844072332319542567726167318355832372864098871651673991089388447696905215356965359241072040387021739131815368165696509323115144927251656347326843564314759998670875745423827960304684454470447210572190836608605853919499412832264221095794490143143437850660446201252068499455295489418492162251455353857489078530659369818336586990667699959507441459101030696251339657613335646594664422424002631187431753258906329534975037031554284255233354609004918138804956272886259557521170725255188485795758179070790362999331365460706749980782945393284138750156070200902261514571405803449899739700434028729337669572650249044134179724147783932404425526379195726916326057353540472031194091105918429040864159795620635691674237182363934623198637940700325152940295833643710387094851323963521455900456658971463818198154714239448956307772442773526573996739988215500038971004508631466815859862327120888041933694584310369190989958689797811697981717305770717973244763121134017407139675704752151181402187831617379604596744340678537428468411353595966116858371592914252916067458086558621994507544626330701248249065272371778534540000045299785031070203128852966151943503381429710451927001316177630465428620250729237796809807504854878221127562490995337262703114322512926867551098874094384268699674154878116719557005841688421183692493662064125184511323837771683566099973419226138465395165638745604640090828489909520757426838169521661273954502153568341837670817131690152646510669868489756190064145135977700967855596694054760899417806542239688188694995925456718912460026669220295216670546932842442964214013203431338318300198245783325517657209970815607958170520181140649134001443035001502645237036612794263799125227504358916597045624114375539496504600928388543744420583853954609009842292480121441794245850605411048367683329444732404162313338054078010311160001463278031673520435729030864191924928948550772351878735507436325940471971275755934054945838573692953313636016521540626264708695299455749810833514635438593944373920100650002774597332060700991231509453956157378341885318561792434623121902201633996344862168126860131479718932800222363718950363342698793237712721171827865602945764035356173268648219195738265593502367489353761062762579819190828688808520042292768149917926631130525924710646605537403041785946284500962103256997423992052607464083360785188934276513792063280810642999923690891853969581088612341827459505682689651029693352656301479762584314159219163644609415303293178075668976949529049493176494904976567384929796319825590302436022028849309924124124754253452263838030107990912325174748050087611183716841736387704481461586985002791281446998611795512155058473277174229904857033078536861486586470754353089069287897249846533468141598395837208357036776638365254242693761806792815757780255760568996370299683137279189285177013892023918518632913180444134197193393336486439693427233931618667213633502281454112920181130445361012978607230809154497291513157579669523490541812359953918286555818554719953916953176623029853831032969922190749751965157099704610062086487758649149009085606167969724374280007676347506981020596982229487062554501258726959847920639465566873732254935542649662640425310367423542158668403740767472640183152289735477786266767380968144822537736120240979917660192437717415035325625619441244976246409659884462189215902289098734766679323199414543317731885852652955928730543330524956903595678124955561592878012939324417401654203580990776083432036695829541501894216174897342776590856006343789500932950980937601677905091721371128103207303870366162708975812886119082079477516096997493016077399555072818335630837199681408535402913881321347584821147812235370061354455899654955338227504636387890941757420254513485372471537723330581324581279878116605141308634360935272513501903570228112029661530684331933753633999564489616467624267421059337351812375893922588510663789181841080719008780901628276450683978823134690695414896764135342636738268725438320416684103682007594425514792247846325100015469118085768260977189279621254294964658797631053190402393043602388100060696688925957773436976747595720420930788952175716580197547265438434383421690201593412704836466403070258567989544542985401839210580422411015529461761688103238881930245330310942840082924919643224425661369931038225256757802493281400539686187031135981631259842021527450124898301461573745756084854152977895127231379986342078978680589280577121776448004770674707143905389409316233710414888399942810918349578268402283339800129912571600650216214593373411348135137666766229763735698561344489454997011850442598091849872627041077553477530409680807170573153532254811991811823906508614311072691761649229612514325564917718680631806239748792584862429920720292758883989074170879005625633727890851035303465885980706572132904722341743156170773794852607644730865582873936899159484049895345238294250601459087406847310292905233106537134333353839407286480161163476923977826943262761714643335039438298737341439877151312494653504921919600596506855014098931020746109688814462307807945298603924486943190717331735517231968165016950955843511113540377360365408909369021530777362391917895083290343477082285892724739614666498771987626459016580748550992500980016369533052543445400215822773782680420388067141604449485018541356304308129682366675789937042766561045022405763769479434052346025556285050766483285287171939908829458103033231949325332433015022018056894194284620054555139065969740188529750905333610122531050187801343236406794909884785069729380878524193985361538571594687875788746210049790672597219076051575313000468919843524801611410607281451788825325073970262891824204705968820550291461162205956307550895071448129969537254268092797842718872703384283877949373281550270555752462892965336616063743324799345720370108759512704926629787503304798333746112483904863618783022841650367403603359753114641442932905694587543511903142134273928810876908516621600068427325047092455474171578652316738865736502810313024518295947029792257952460575782059623480032257707233073004200238730480231327034836089183048603707645331546263847863805304766782311726139513195531851488950403935539704882947936788655096123017833846122633397854016799329272765616038104257681180080538954111205744714505236230412599229837202590165579569075290283260356337704739969729613942949119366164333681423034040758667877636891313166909654489404796178589263623731950715815789901226790845845494372700986596610788804241918147253906051100677460903162210132136620657477462644191294484356613698760909358822148353257022972713412086357067222545640143885058501981211469100499630613613128306611829290325597581650751801455420996548533984995649531587945327522816234925741724008375082568242224885995413401169632066922857298972463623273534185572717041633446260021404894908526414636992521122281152198052868287816387107755712297542748311644721662422299202661394273231231308825908388304081509566740430636287469716775999152187461110292355519985341931929758137706002682394165607148911522624234239115179733202085685071581010250779771904654586900543696934608303369930287877278579851750983474895630876431480053312208159232824368234195030876744858262356035508537542055835437786773141860489552773735297692750455359502073538665341301587547113108896529377705773459770627958293386692675212219199082109063847246810730393034115874609036263702452480077072131216914027434021987850781850764008050272365816456860082247154356749292323869699353261446612523962476400739927850957606411019567972187752553054992123322863319848267582466808231686385242547132826358232147253147436572920356555319076350330660414000427654248495195251751606861577533810859135427374279863036235044001232945833344418337941945885995469889912069264477556408532776168637823545566458682517026313181040159938037214738590427383190971379804704638721599505800307730436107228133364687376730647059424240966392927429189330478622985385681226586016783412452308249671631928091690525054342317490612438658300962601931468726955335089298787080385385192696672659811585259382271991839876842117683853667798929146478597716418078018006367214293105820397020404660954020990461181387417839018445234126896223494268675679812545668147551627148164219995072091136929058047935961154291161960505879742009257183186361921422869238015519590205404317787811648848790097350734678792727746996990385664864900193466674668409622089993956344872666790435795584993306926878144809332043246581387140068644808039510668690965215479541648381683656179654031080163501604073861931383499739049945129179223330551052853023776196687886509252017435414095564049915103962432488143734934347439649314625861999887912234857191408368580294995216949503687801233269887560444847022690855073274947314884904743400112131052403196753911070008932186412205879812877175445719282214091733493605388903249469553586776695993188910185185548479245283878097928559954925944214819720535876281770919551107399524581848338091335331385743315250012613220813606028146828513874836012107221572855833272379846915290823624791728614591231016607290687159239742795663867568406055770046153616600277082206929397488795958699857097433311664108452350550586313721579682347206362917892551803867585110133181693457881547919232256615696118076971743782500735909271499762147707630107454054230264805061181718672843668407302130012566965253096397939943424765235320677533735733138148740212836761072683390136527513524764989615048620586953007761708779713283946490367104033650785970137274124799373719464376308927489891768655761632770451293406259741501937367719433226551038443756071204159246555519706245828004651489362675578863824289746492827892693953634012718420152474242792807236233091484243067918089996759863514780964454248709383074602427748731097946156762641574787632283688971565569139721795160505653945272881073094081072199793955167923396958936841714925610449026175733790748867536375646960283136426551110027068315141854629755717545333412329227553939891464393686124196488838700681003716553074730759518426874089283568976901085123596815656839509170216220785857223421346276523018045887486460677716911977545202512858494382525225813316801707396720141979859588865686854971632118941308607746764654039244209603061965407766975628591594214629149988580137965133374404296947360924089748962103511263429503865115693105415104668076618682939159667335966397483769773917313361073676995894222116739956323009691169433278188032830259010571097003628799276361918778920021449482086932549664861978188035691574777629658359814025168388875042794593550337631511906680612230891176189566712427202320840249813791245411235838094994991655282469554667781638327775651727868228176375755476848047579859657814376549973314286283294434207006092974502896616448185452939392642684627207855716310847760121861490105649991220190454049051971993429887595586528203176869829644279477970112717817597828518261958451094602233577590806403702967771085807539670571901243042182676694390877130047182402296755325483157621412768382808259611843018383595632205787286413961574373387744395290755242478053809902970483286802397495222816654214089395410490506073131673336666286577170624693265913920709690266798821412263916927388059278031344289577409376761054269006563720570946622238216781874221517829405864892477929442303601603312432635626600465264275136166736997724256040648864765557234286407237656925740221852412289672128461741739355764474618060243921467278456225273971115970147328654891491547491664052473166636097592077637081150454848185296583012820123658903071455839113420160725433764596075702034090921402782107161311004873998258634122142442781583246012088814134164832854212347955391266084113071969706523465019200801437614939069784657395485501282241071010318089352333807101862397628278884552149044800852510677308791997844695859901919235526490476892288324223621167868358510469968977461723605859636722622376111712925854923994123044741167300555642688544755542662913882253964783753332930565783836105727706420558008725792975174860876812701003294717851116674309278154008023895440248266443767914216787384517764497874562352290883202980717149433464374923278085749473803560368591924033446765082555986475418988653365217952520321364500794983676404766781027315808213635503794640259598217721777344137059959979270992676878989303116262053133835369549804366149792646404007339558383790081712335789098543006096048506193463169848340872849834789068108071584785714271622158332046043126264372687560149677408034512415529657707168978698737489489824343652439722209174330479220640016485105160576979920128380224926412769447627011038791594134372885795849299880696737450694944465532943029898908801956039182214103578976625117875920627530499190694010775570919768812598760425491377447340830742189557884431913664180357409999502025637844947659728438898923171969026004358657373664005241795599316159065474601154135055045462695543088770229464627668557121461048551745861199528649378854955714188992261728148414280737351715627585152270566652754228249766611530410342425116005460582020863648485081601736524052317928559647106190349626594860759865403315409287592271877216025374039255187130068582478385756958445315929465638415161935358212255026465495332988102209294712958760823323269104911236173293441995584469959271021199793771388472988885424381222175413716340465201536029887159604617710732391564834473176088535715342837901713434746268472540038588339319773502111474272399798205926845574243001157742688535984959041170136668572718653599214443418684593090258138207575064646548958038405193228816078621710956555067631905202402536955957391785065594067736700135341720463630766551722865902781961854224270800431440103834391113469292492469744642706159349458435236797828548378364533716419434843306644354466569121485196357476949660902205965583681866758569426127717500342801085725887513860207863063676017724722461266064435489306304839101382086789339494774018424325346276242088761636288893397213589920806152957157707913664093863998148468038174096663246163076453292122298177963750840597471834004981598500371264354463907077832281832097207792435698707839248104466492654810258689266462365330840783796348793625529831493332940671620402615024222825656231858564707212899325339737021288945592846640644076391268446605076876380104794948218729127878222378365257779876179699751773251108597465091294478194173088613499674521523977472276767061723083070739969199040372766150315772321740276160540030336776614995204610960990220524774045215829845039390458588180637217230591505990840787253192290244038751858124736368859286184832287858303197850611213281451726816772963841351524779544788152178992270964693548651847218410838719006889606507456719223478185300399365672411167840601644041895890543496057555734048033955937367867585019119755795203542434393936017770864234919484905492579324223912698794376653832613098798222788699041232113621822131143915810939294764886724732223442314853867263746796275943322702854223867048702026439067132982073001151004073502595010252124026855244820808464953241532083436655692015025957745960162368343376757431672685333997812403718918846296479112985912274780280163433912622862337397807132932078648765705663842929505364913196019087650258834278791144667011912363723853275823374716155440249609345346131625488407439337979295576633336135935507708284851803011628046994615333830487814139350746714098090579442703816953902583199397101184773936595562162952328744479674617753928263586961539880879693460857982643976895914875493243359870571322992430218650074020628064806366608663007245340272989663136270941257855919415850254793682991156012508772537671836751571054341947864204925850117408624735342749643281651425076874063351282431212583637443118911861774320357214249092138537822362244160812102276215708302471408373511317304895104030274644294468845468585605017404108231871072809218687305694713884465500705568305057406727499028925556857091356542633004188569392812822975704549628224058870462828761366384707693866970921008927593446623654685294392391982984337879641604630621230068535407083388502640231229839978240650554043710255135768738412162314169655951213260720833853609278537257954867213536318493287655426606182521349785406873826577855230936976587177047076701932584802073067069501031980825639887332953140841703850042615695168394341099379603502637165839519941004944775879677466993604274172577532959487742049490830864918220259728050895948906186997962630876556965682914944843251250607133114793238336737240585725976185530859480408524787864103474912710025948648924064482285689810996935190086411435829779138629504764128339757043907266312541841348987899688470599301132438723939587569860184610967537253709099225839119283602478216327013012201683654183510122426937610503729618464553659760581011773656088718697044290874245586931969329077917373080296259151987351038746599887223013640978118535213373581777561133238589932404773673713303426999035260611374764098828696762058208556472644606863447452820653586628980840796412021835769823964783049216666968093487206999835386312716734159853665180904272935078968633167114474398820310245250139923457765216389734562186567721809391084578679561059553433054801412277853703505107590127331077686960775777674348655194567449196842425747516162850423624449987844516775144637009636897477629556012637269565613338714824110713266914835894663169791439629148656480847048017980296739015527451531877952558522483527934483303568272646231627859410566871943515550306659454082678467598228844651749067936898568170414708146885929160774195455205542923718204163649221003666367700884189143023290854704057612143542764865063127332824297112502787658722785830438134964406001482496263846891902379031840096854824465355924915562310132482016168800985815096352717861677782639521710629305832254907109688942032877261429426636696054719838842860221928432585030525681312686148118545942468875574310010307946309288661436312691747619150922275892971965558746286878560585985080647026305548913508413434665558521287949186476303857930939206778445294293845639692827833665552596860361402057282787683894425829780140816472449105132641667319180384457659288281889357463802734386210400937244515192947123535813614719943913361798575715348981720358723178690362967643756202137698639628884356279713643181517646781199948832056617257587754744049061978370958086869911943950238134204983048051205200967593569848265453591398174461512309554640487460295569430718016282800530101492936619503358812768193592926383318739821000280529813945146823250556067001821474292485342367833433590248837365940910766568601096051856135655289452058314243169892114168947866459817828362735298336213226060657249479781115399164707447230122611929059309957471827972545292076067814903118602690908108258548764161087783768204497837646581977457920615228824128581071500342720806381365954166626630290605144005294752763848124753833437868375249849376434622951664748241929812564086727309909999139252019618460505117269346357507166559452498573457585412555478070065943398315494020492947303356576768666990680523602770437404966287356212641829254084868517680590876177402358967722956467653236876423963664791291152823395456654331408022684276488503960747100134753666548320299277153548808381091193358203283402980132351239371209479973781295718870453359311984488966472355194069816924141419676305400368881504239508406721555164926848321274602194871395036880002642257139494906137236784235183251780269244530362628841608758135012636312622589500795361990180696120927493037863197061665050118411035422298445647599610116118183200333221398775805587997901517552302635692874366294161237044597372375978350622211199368126731777141019127852113507425925467735426227243012627272570913634395893659043060950751278037487352374459987303482013515682461028120073715946555482582285921035516395033329001695600746644357451803972756175563546722729941718650440874317264166320302775760304816955709277061305204868284244248783048781136732207540824734755091656298397278264863833102327800685380215170720578970584374124712727359705717558907519305340520391814830953238639560229857711750213345745554475287090454678816008666220535892497249854691221537385734873376401784879195011461281428508245100514406420171149095659428414737707393209618606930037837961622829553436934465667086561758365340904801152342261722290148347071472023848519411267397917629556686441212015284646261169134835587418190157418720358342922341569458172418012372222185401743394417987544770909715379472893146892292870827223296160336289438439584160402482155987227775481091698266552124895630429320117197815753489227102393340126845581495616472612397166536712644962395702651397035279881110940885866205791805933170465519268958931831806081846317281491000345611249118506402292327366118583388428413808657273682567437521015993503066194466000438299872601535086630467951977005449758766641713003135627846938172072152533841096627972485388702573970710551807563306035565339725084975000626445339686166431968522380435443637548710815479041772819470732840568530953099360847395594149058006583973484535621467225330111664379834807058700666064003147945028522258981943154891535373640864493260833631226240569494730124478933316486287815399282125016224080315609155454326716547957793953956139712008597245420012250460810378517814983356848875046753121767059190319689566184450887192681964266173641679683691607105182091303276968684164164901532923735761755126752234266288167515224652567101375387391557203747327180259882095674711800323195853702349262469650662756913979162069803740185184752737045148968004916798860768745670069837379229182489409641449687559658340776991717668519653078552136132616526677733246416877137561866456000111116926894046622961905130656326290558404834855047088264566279468153885255016614888382046851551284237746027719124222566292312445220844524474409062838736386200796845437693935804316390717823599920136017758175193411569969607012004813501027259225985328493745063387888141741600464471102903091252560485110545642809771783834234221565991825483223426466332751557405117862645183329295247625512710752077419600799175877492337854561922232796582675177978026996923123103053986353717338266870515859535446944439730414930078155150777142282793676992687310247348085071109582785507259496321975940465915924262873456233373513445266487689584042759686118968732037814532673969031330401688155372989311945198562277272521683605902329652018637365523144745604477981282543648426053531470636469967526148628243980679469486977290001787991789687751045980039784436672279860075219099385971730938200132734020768989427235630267800854488338829764729729626964213154927177763960202231542228229308312400691956887676151281665789048180501745034986125170141552769729394190819367629858641404425521428088523994819513923465360496924669319149483166424453892909373490161249207694937319165503915656892020249453775378707072378356419586442516848774764004017378233240934683344251967435778735610562656381336849620322415731194088530271955656049805178125139706567329670592116925220370663809101779328644505529949114408476179597201405930492861727876752712757932543800931708480756028698859003803937900316805470298540176746244174288796568400616200028847825900268606563715215105606909772735323232063588903957589288789631436177742062909194170976770808517705018222346582905392978369778274079953328599426727493999917113381602419180273020106623742304250793408856607283182223963468132997476450870091112686112696611650832364711911568927508663809243941939702808111932323614493032996006108545070627195264639831561045444579998074572914871776449920872783117991135037118826108100930777311771697870738027508100188100678170748991687013723433059691050060316691683358751168014048245750522717908184419448601392450312205786302971698873787718685649640615197398196877599912230372257713626125991018641517717931554832990136673418150588925462165182854227332328931759262245584144290155973383857465800012344340210617818635933363451173612163600901625642467489996096316904201016369257045220298044743379459207531682645312631968023112327359287984033736863648808427745219026153888672249136635670200014373952751196215870381206335276077129064433018424398931468226434000304374071262974615575289130887214483897192082729657842419079489221989294263257315033672802578696798064026672447943137665358396317828662814310362734044750308561834675052748043519742661984695127488675774774455292494373024300444396657139539599200952727354083614376883613295911010348844840888931146363528954306551247271367157140387532794577431115656927212209865063840672674759269276081100158811688582186827480469088689620826733695421490869189362839169564267243547176938122455034508982301137304544232832469697233255729908164315173058546733230935182054067708653839393733697950689388894608736014354903784232215197733297083141375105075498280821839697482766653264467798129642286950170889252787679164323939018605596472844303630788710822505178446314960406841657648756497072886632965366701989217510621584499522013631716227501061735202355592599921267249138466843094340977808956790663690457480173461269406904004551686881848893028423965089258371901518496361051223925854156617138250525819344924522188652374540528237334961955780576183770629708656011425813165775875665811625048239051250160253682557707366732489323540267577447040506552639525965125286428141790607100082862793724931593223389140121621276821359240244260103150482521834046983406666578099645536210900276249325326694967029625673140457569078131170074737211741605215511636011372825173418281003523194486213904868101567128476760236004078552631671873897708059497488095773401187144211980218565585089953163445890099117382527369942575272097221940426875369135411485415513967251180778067966334868785379592621790765955740082064922412509672713612184231756720241234615211969584878113750436639958790539486177561216399069069314596406832208256752249722298189009844919238372322193328682028393802318921232199171613746860273843914066756684415838284219455966043525452132652219401033615693406463046961441671015053274217645895326934975437847353772735144095892501980156829688580622336305866820526551076290659638265844076436251364195539054550129714082057781104828932691899902820141303537609949126267020808928937837619727040392971653245898382058271828766721427981158261423055060018943219821519582412416757318711967268958771526127187503721833510838022285633975344447483589962270976987627650549871099232640909713697658185584020321810051919089027420765242771522070857161224336505086156063684848472502794923277486377376170321050097182100581058639553457696109583704497875662434784579813233973855212772049161742079803523774842489285071314899606220659175741097060053500123039943499963113220140558386873339407241715193820986412963611659054262300991804871575740671158654027101299201705998604031586497889433212712481335559923428457563315149288027063561780652246000755242048850991417176605774802234338552657822764197867242073997769483917820918236427539007254866519886856631033561776077161584935376258184764231938172713766149000607703059881809155679107325569250142719617883027544240121871954359102341479740557353302931362742788359667991892649130959968866791669741005096114949675633015769374476694173493118248286129538355376853801406966092033905783082333473749906675310937825059284965843427730864714892558271861779375335648155383320433727335604275757656251096652298501658719706032795242838244763905717148653305392611240935272811384897459268737171456519740656275998947462712893291822587197602015103352560302539965589434807283652801790016722910263708633931999628254651594057595287129792134124094260834413452190173495355226503417837505889858578066889172113134888236968433244669504936717854248104076074282483708063719292192804637690672807219163009050145781621941493455642278007567035974292803004566478854369893777277865135920061708666626526018099546892243605390087931334679728419481601002165343266506018965510424626545792979136430393939422499031589682968918774583407322448979316704428582550871391089280762314559208102777188108144912737610790420532934796837641652932801644227829385586820453688492634694624644704265464498590127194931325431195562621245863026893956548096127158570025475217509971522773213961997705441422637370600215870882865392898616144301218806717316680445056397691741782501560688304614545925600285295838158732418536978513001131159056823433311500762456008395830378764092480814996321955868176255193086457113936753828594037230660335961999234092792554302238451020114575316922353647437731022211785921907623128793050774350440543006957159290110052884690204127938542616871194648199161854960103702939758572252425033722270300306172510912546271447823219241179827744580397533442202463545052017517826812290759204247373799000552287967536779945861625382086042549509839398818633986485558778566342431199101269204609437943675406169722883878332076259187638816513341842134393147986363017006635842863389606200772861874104349479051338640846804923474667292233652802935881967092310215996529087613406736729097704430152422326061702031849431006386928589096591334578547246343471783495596881755660533909496445978480426542765375513398262221780877675400455396059620846622803101025332397884984504587698944231907782760182674736335931963156049518464927847270388123064704107106522978020207490596127594721760645996345969114662454317056882299185146910616256094348548230373126172621529544013564678406821225972602252275798014088567616332090496143293268289637452244768205871157627429905126297479357120215754018990615204314086886250399505011638033218412783302676934896620517450175376927342306477912958857535184806351898378064713354957480993055272767210368109180747111020306410216794998559091370520143716071611004726493676481013682566839497363379832153996828908846278648461757342114787205408303376963316467731911750035734308102740798467606090489307953084613895561661600830144653194956268787186951750967090693423397605730851304318329191902296842559140033050344176322358439841723590897442193357879657823586054127100041211538328275878942359415727792079748382050431025882742597433134162136346837043945427752823045161560599029622241753809323826162146756777313378868848888620770276173062622889361294474885050697258774239339521185732946206538039240805727575702828768496025749280327315617636820013194283828100602454607962184399173059369429646090358001676202772337220562900899345892961206080478124357451583604139426701417808809717658822477010505818757871444773042297404606232122922755744959498755555558414266134230033118092551207722656697430020553110066069504381293953016389260720641814653747095553365323249231448139660357749695979216334113079112377212928610432174514685931430033296900513961064526648687236213754152172411166087426041773863463285228214494605771437562838527337852354949604828760382146191377332884835325208333477307876760053856137523032907134721431406467510617024920781111157059184335347395377131031719764087533360337310624867645749526112009442600101933496974023467664155344575420256440614964460165313688590004439104486536145192843198813047078200230264452842952612361135434340115356471447738427534213537323577201662692512336813230304080138002925762302643014246532160862887088976113238496486420105592708725329563348426058963618145614007647636209648569019177160272339874439345630546579312297291245381605125108318366384951621171379798872658170212451036066498914576474882484728028712550834351654380693191292367676698840874737834993704507902595832755853147294033059083430180032015679125830830851350209362274281887987860200962879272920331376347049253992025563189953869060406280549511448079922728405751746549517547798821615202417332927036258413614330425316237059559837366467508712914105267989806427419808406644942338999982924810678537161971367161703551166240563092106195145312184142561525441062975017402462553341864495070351750641611055881986520017803838558699086124479384979576392478578636218081849106297536232200242772409481798830482275223114869247175367660668166908417814724341833468284619822823887743751135611497017638798084326752415853345659909507590356785046671920884004311363053062856254773667609202479946055430309377755378080260774480727530628893793665860828309429438670620203328495920852815608311368136616264988193358566198871894627754082573458104366369300871996301139235577158009656446671803621355646936113279779376597275554877200069447899831907856804426412898349376999448758383359484544915750167211975327784794792351725977887416956038757986755498040321737933826645369292588242211394240088845720854561403249891156598902239856656863966529459337735543141252428367195005244779836600835749773255791042257773467755789121620210413483742714457777936225297392928069236518124009578799007289088959079916762741367841932820310048643405471312003467323630383515733855900021164643690644908488444398973829802442901632778784984509432875437976177863736845899848470506878211336795914409486128009678435562149858674959636053591912681543110413365214829160663398588978767897178687744268109605035414861180117527591261364656311194359729933449700884984902428145876275211279650671099154670131956020742221441666496862163223492168605592398734309247420874291269342756470941740693898427988446305571553755701168382739501112136875506906094564749239479192268146171631899874017928363842648454556113931606323116213172795683776565017227484001429440785164099148449760979223313207581762958197247926498442755027972136286206778534378962663309121680157277279238527338051409185015282672685563831048326436694236899500308050556190215224731877508785103884818046299531522584389664118698332625537896784578747528691064502008857946142690219185125269023541580438093371885364580210738093521125996484469330036460583591548829442086375120714238269987979321556487411010370897911195729325484073403148059769206092480958602830888803794034112012984271339408122089630257464658447234667549652506466141573150534247864479833685757825114749081696889786662047635505276780069662940053022891035279435328007611100639382598709420267987456791482258560728856285784215066356728630254302065780546338857959611178228748223128793464325434367410973530183895378287528610521670542569965343260454670228792923576589393646042072579459651339001236752938775075670075043182537927139639678021595549472162932476308034063770955626860096766181148093810309439432213302915005721837035963701154231970156096887614947991602170845899445890819640663750751807601444788462618673995946698026637711019428530597771735982691252328905720171089733847840588015506722925902579928589909692494652244606648099656473473465152890535053599930714250543519842059175392814721144756757675032186243836125501089708046549846549508340041632314486318903256667752992653172887741062373637762873167867637853657696706661032263170694468438282012754785984569357801195997517720270187773176625588346090166745147575259064047463314538965253188541465655413453040522808281137894670407686674451210481663367414842744983258220746133592667836023950789350733900263844809026491995869977266190889549931524079976343006329517044562287997422813599520467581910272594757764223932382189051543578917164528471320896984100134298133178621177877383122558347630921453055762510254783429281539924352230115550632011618626838744642831136079472728014800369231855520424193436729355189015439716468072830119355794942792716264713983513208581285845862312946548219313594799518655960067528800907446724302259917637032407917194371653976328109348898136960137645290549618356505995081765110580643549292421468747610730089809071097354914636391796045323377274900960071648134799062002561786757633728164183046868138660464666276894108772292729428667317053056564729726632264640440492208179975123002221807403412826485619582027580576066075515190889590282051684827536471477515807835430128820132802140101890530586849934878658817288646008215474342623512901559118947949692314812313219226247091345229305921839502220440612178741819175702349532977392637261779650358459742186074764167630968257070782173237333946480392853796095353514327836597297124513058951530311433581546695170394256695211848777851831491115995052190737774718421376962225952451757146329309253460388428093711070498975978340800767769003066133071699386954528056127814971284033980975233609223944133149561791568415179050538593959148575582887974237309311725890011480835834431854444400457122259988602791791394435719592240593398293984441838605714891936243217201199601333711726193124733949676996623550656689034383848905245524873157596531886923249843347437352533515667402174541605203222081212123671477592624358333174041796003328055676861739551800921517009673833660415966817723707200070458101586172954376551342258437445372474671299845953535118452177615160464537408671898521319389466090646713723747911868252996240066964361507097415354357540647175582785994969835416613398568129983642976122553188944036605033493021423358613910201576533497661472608666162107069691355620661155879615304904623978864968853537711698926830336584909441575595295050658972022018908203040777120355860261271897024718232298754822114584176033150842892068870820813931309023115310760902148016128125492286054064821450567794690542718981801695903157039319949612306909234535163200142274676650322809537408099792002777009795372503927607322736126584496669764821143723647843965983688177526317083505125496016939494564732380648068648617867071987099615913435982488696063033683319082856181405618872833022438746386265026743960902492276177640396498039422601714677471413339276019807685270052471035296337349031331527508477262214639513689468576364713013898841166586879396761230785649021958815190155709396936820328395841946806000736885718148099941632425072752226199674153020502064419319691775850727070880876784215534401476377111016005445001181507465010587341583835370414210597521107379619835370250808256547671707711892173201925755690295274275073589748690260943817330065912454345200234999574729301761425283550594729794960896875973605234304575298768271618346834220137297090485801439942209594641100771796774833952826717015363372554306829737265536911553140626635568296457852550873877271329528864832790578023702467097951657542102096886590771984334883637858205403210605923101079435732835805597855608369603701167451311468333016205793416259598124214511833161493524920936540942339688225123642555348082694731705665222673027451584276232037448710362148779775523294729092504808386205890356044924171965278366670657098454966693283701358927597110593273128250366228819234074232091300560556303605569451856807983486557641866513049304791140534930669691104525372547989456654535888794946156472655162916252078870204563375357471978851277911697389052388702694042747665214088353098966923007605464092469400944878614911140084441862373684548555942416051110976580201802642557640031835677690398248149140149195450340938827804401745889988675038455903301138161702626390450618830499322484480958073168308709648504929551683520415399143823330285266755747738903026597976208808453154472052492308328740093268482614571681871001817286859284189229393604255066663260291711553409395069942868539871800962755364161946721207011174111376227893153858564624179446659782666536275090292933699909124245729174396121852650047542989691840018131094716914873101344566003208030317731962759028837498255821724741995935941740193168094954002445949251906116487320117322796390962747001848869583690511923611235473228428125806143638004042106188904855496449454711798664179958421276564698403492134180087312084886252956119217655904180566088546031400617097512131772455968204354540251662082095886376711284063912606769417174584407995815667936292598968353908678864890333896025744007505101314260533076884773002322351562277750467215412639118140058006119523895910608005461771905461819325339993688559106286553479795678401488187082260420018856515915875843957431380572699824350394545509599911274395785962996757423424922537512568099372011375216670809245352255674582358772726325219783061482163174098270008223133959526396434571905649521532530132536495432762876053081881457707034954322211666526144143798088699858694823445564525603971322201657296097934128870989298903549923966934293722970128224594380420936746154576187084870362889318524633827399043566403406634820712708485110924958311575173358674881918367185612463021655385997418712491552729613577312192784275729883568756989606313729684063991176130892371739540685492924575009645617091904666870554396872891325617114537830240863993359944668035713592817087344657556519700324825600871854837693242399843835308625664560527768679499643247443982196692478262316275995158301296154264526975299147408426923950715676973799473642574815314572963219349250507337888030356812344682520900752836916616278290910681539722379256269673747924200829910710945552543519407980857146838237107753374550845427134622375802170388544669105558304409807663252752172319797845619606038420596753814962305691752863920867972588000805670431715390762727248138620804361863554121522974760561331916646280703950703451722926382977518002984680224138276518609090940527264289445701503517608412779831574906277539954718900382421932562306431848537904838758448753211255357258826817216845736578341805919754278045420430837549440625040204475755758287238562912333811762741871416638125141352510571799150065058674844493475977229359881814502961102152242955860852749944533518461000020475097222101678892859298529369168138131585724883617675395308379749413723750547185302206794673139105562976129170799758352780481608194607648773248767793459796051414422888914788562878731370964394127000445923777998086645703330773278750284342660878192945852629300158865679986206024269382150917952474079100807694275416260917702517690418880563509729120999520388725442525984447865991852691405490984404049498668381735837302771858935469357304469360128224904356691391627163481221037863304549728567858357052563014067627980409147077576939394242019236346992025810665507011824201090741654542689021968491219240761113083395335442475872591546731478481028553184754820978492857566109524801576397111806694240400983126305801845914238269568887514593808426072514820972579151687563865041732290156283499249322759181173352388150238212169193799354638484437798276619038220045983749790977397518149754207746398706575221715599119400605150988971871637084691845367628729304964074849917665957463831958025194855877638680406705071642647333541023279715980783233685790381454149855014395329562604659726648774744527154579074215099137517567609235982023542117153859443776979105956301788470267158283188660310926240360269232828559417760779989724552781021618707992151994518581587743943392217829837163658455817245081515292782280711638314654954828355025048901548415828461572182873004332171760045550439160720396537407410560735527940068128365304581338884451363867474888261581588643403157311537617666812974558558415472504259779296624412121307547770486100999751932275387437022746721353657030826236816860189766199478692102251844121611368477428180113077589893596533963842059096269059201813542484641394569684159632324458050748295155487173425563129771028350229317731766536913025229613955946974430462228954278430881956369737868660770474501095385198596552890726404620227509861058954049997055765291206007461159243845486241635625162379469857962171212749785719933055521352399745876655582330282385099761878483988504600025541678926754881057582317553854186274513795358955831501379697731076199909282217595007323961406037564845957494953971034145449115253803422290588327472822329976175187892823002876770116147243837232867669591685172120812424998484860619940253118917506679272637665715952792391787841520031580410559585526270673368943302929996039831074095759858855689881596727491982336428414910975631635538110911689295209157291852508783087968421622752419698763800413260277851722258760861043014968588261046674745736819889225673035408079023125138623109579960342277168527696571124573398808490810374815373392696963596616750699015434957711031432990693504380873363004343010062660404102457795363497504904040450807745834564376404353543963553267987444953265681274898526332088392199294224792873222118546403622533963679932853376803352127991181612286442660086998098689786779671686828930337498783162993683694863265866037492972227650264571181692166846992988262195734399030251914399402600582044560067831232823752231806880479899545493816839159777237388330623474592780902957827660024007605077213671591880168081353841755205796233414277431306680421468756676951470121770694698432216392815500992153228246076484158388578432514066114316546691486871403864208401913004004423068934312490404397765870485145032593653441239471480517537773778935580840892359967811363710073710434054646106160345638315572972920831623103682474843235655447866364637772335699328809668200813499402948575054103601769294290013060279193794319073955238192585465350596795439993800913252736579364261287458103170368319581069806636242583808280527146819454340509740384550272172608151370334100492056690969471621223042236877314329673443885884716367830146782771493139996226755496715835060850227008655384313871778021346358223054731923559622190700283249016710577115772929353124253963397852227088209592551603324942484652790259491351454116482349576734163540096383885501861502936416865175912796270833908678317811621709063880162779980667512699932900549636096041866783443384631732196489473498733449417600788076035063632473324908432888163668252678155558767649388142340777928131204761241398580685644870729395354794444731406256327599545834462250026080198836616541829626380743223743060846999772172437273871625809884860474162550912973742072810956852101508571542096821464644370406375201962001002255563518657865989375474247774010162033461706853571027510957605430121973306207630716624722292337183554263203816038147293679555507734485749683224595941295235660452969419391784990198283652376492354010492396606101894901288305294678470428244157333698637331866629014571531284927938438464110870847341195252943741944841322955819243327041817091347374017722792120901559755403091753299200545916638738861230866514566742168208745197651762351340926816210946755745215641911532651898073668506585278490837336335224108339010748921303432501674762059795360289804862788834659163090150064401739926932849033683451821525656969305879108689656631392955887770142757691319604802798345128196619048531966476430931540835693051022424720019437221740374084032693960456076069019876808175766025022665810084194509021670339836126781432814786809344328335400587604964885463134599023124360501404980429615893848700519647518009800181048815620753205260697129909834889357020447975610215746606486949534018331878349044578646049425218437819566625002941839416912330286256435132952779731042459041819100010110523627356516656157731352762695869949689350317169268988801124152327323299419675861533703315892854220755298069471291813590615791684028330339298430147700796808772887065593696348296536478166922416472676015178548881773825001415102717674531831068667856610219594491398346605681231841581953503138601209409082434657989826970798885412822515410903058712796274249854681002604696310266196862382853952607972084738561310652432368518871885922271850349153340428824565248218178663420433757281117770933619773052952444947325508030683161920813134277757534876211743293996164918052221046484429969442953170307114366425612105355391694650981076941990250306228097219591496039085467692857911241024148315335154869608400337091041271089514714634265042510168361275798082370595224677478216207284975407738600905088837610673411186129587516490629195203384126628742291543104637072177739928075094855160281660589257008227220381810584879447068744360205450300800187496970025738352169227165180750362533906377748043934160573772835457980376578430513327222152849626735454176627313506337186478599647544517701587666738626221130629300524149076850749747170506461263631072605467781534314698657375627339393587503568659532654526814247043753792493555760666303023384774232179481849165105351840279369004072397146915002659259578960467305408341077464789943595336134789518261801410465850918973645159445442103149838323414615896395582580018908910448529185105701375536874548350288898398948406486433020593230501933868835469877943860871809986178154034540628284569452136293159533006007420856475730914677070296442190253505656208005912096421564450793300744601638944552794571451865130452909825873563804958935710181153420307658639708194679702888391019643710479009251946439268372433484776952600968604285587465620137805150565352708515477124691314950651757720751300188819674226385952931825411460440775386836213969971208611959803130721307504874514341785601361382554566896758846068425304089464027061893204153690078329165393610234507101107669460764187837503308119072593489441200940346626890961146320418376293651699370833709696234876909639397109703580363790218089891147215237051826112986252042334088380466004584458334181870670689953022043888001929155648454150565266955571443359404392302423350802864302501895609443621675910601371972767224720745273470320392152767875448762153512747152841636954208519870821690237145865180766139356917272357928407292908867164066353404075680682367703269902841834128621360497041861258056000329560058405335987544226678248515350971857048987321544042596234041104398233606194879226542719921161336939898668512593866525031521715787499228861683934916083467320987825400259914153015224919232949956716727202141518567124794222916304934936085169218064653181039767567615222287805174258938015623887625104541349893080497986731876836390964748739493929486911515230585328062500460431586444399475239993086220049134183991372896724692032767642435877768222691136663663534702237508016839843989544966280794266549310407357198852777988906931355985626401594662603754636370900847744446687131982897299000453965000389260103718760800170405732954571464833394266851209298543382971505495785966273635773189958229256458454176222805820984624124940096226341174379135289394296855996004703837500479163969639510505544055598112065982382914440585867868811435303571596328562215636897000383151861751832907018561541804422627873265555965238990898165525326784697401882378225027896426124060157507300700177571621408500008838981570517292303819186528883645825422792646300571125568556599492463483550495543490736913220868853747906947043986976318962778969847981246110706315954048408067499767291742986522382061810482276573777107103248940708711621627118480293202361649641453059031129317810166333397748523465999502773095537240099191569931727708217737668592756414079835987523454096892461876864214107178173243994153519533759045151592933282516975287830425952500596261910712777609268029710550240163325311927347722971040242136513487112387666576119551611885709988796509732705175497959865427822255672554275510630294084462450582894780010706165987042153932410814428066372616101476220802232513838767074207691412329210438324241281087365561335685879744658146335038537394160090068121222668092357559226159023600401904259435656866128752314424032525667680275114001053751684480092884024723868938737017082154950776356004014865515124858711416261099362566329360611595909656110689783228892067573297138061819195959361023857359588328452753633023052107801196992983975999977083222806215925812799306767282710120687494697894714833171837195665220627622010196761956752563250313136877077953555015501888888457695610921957497005573845767531568639143337621376053708436564875902689024151001638879089147429268518651411332933571906787946172760632710190905360149457323759497541797559175104333869910846036686735220057873205207602140289012206415054901506419152441379982181588373393749862036506548480748802816331461793745182507948634740438892018496473352379017618793910530131126043235629679849885349558591600303723592903744531075695503168395370527847087540204792454165204328648925618523695186415911476655817454050966278008267178781555981177942824864190414009417739270789840096422612112229098771416329859722055994175775608407580815767420255524572417582020824969885685656876445930339628944916581931938557658457539927568490469774787284092631616056730475136548850754448639992358624932838260522052995684814082706687179618966981751762578157378316935303796668964279619834171834228076211073238312900775467154036928088468309864087892235690219071019711709178773670733075654965069420476904149075621617378966761567522037053723550486948802645303802641084039586281848930078976049398076434304330688021118899359447476811626145049748132768894791164353799488386026807894027286247037129655056816647591037211268781807297268327774497842491772755040898308345279416188041009725167581167526666691809589265705583258486593174952575455702344614139833337228358221541219053127208938724661493302362136633793442260588573795434076085317919293274353143158801201449410393013392003961958841136527237347745295587967892446918384803720679169815013509880081771698656173237978778559545266352281541796300627102044306042277364360950590184009265350218651989500913399303652099706804005863142141176867073216974121771673991532589937228502056259227230206426831843904645115736762262777214964622251212299878060153284697486914661714224850515746348937265122408370735129120635055578692996312686079736513860674955656827133451714995759095562736956579425000306110603510556885352524302632396081066213001025060906974299570265628598005247170143587958729597398991417340132171134056637266003016679575152789615056559525145943427244418230525460577971171558762035032603656680190719013049306559654074209473276514052274696101279407605560009365464011800434606364403856238560211889878613589690993415286970328062169310453005005737769538669172090079374113594091239542379349873984340710285915373742253802841706049876831457531030744600714398332104730381545272087321846841759909089132065342746340608488539176758553966324926373111801858694966252544995327861052026001115414244107894548219152462655967777887845026293959540781797696922006077133653385947120503207231950948128492442475370211635664133604616297915852063743915382959774394067934776509459481242418546959556538189382415577970053691273970271758860361406516345302565662094427320322853315239227705974227592056859216257283879765090794661896207842195345550045032074495505457116481818356718115571476065205728127038041850218523803509279770221108860753210967655636440388914735050995879997472203353111924196573687207123051019036056195549762049240644646294474071233195426725614183503087879304880333401169609623888895158873421013283905091918475417794071186802943812966086593014800036121658944959178207750785359823372097988060155763338303383281849221214996896291055656258062874576650430403770571950928045761568788843221504510898587788140794612913885854060654489286111360247373370905399418217194809318734807593470317424635426718999359902411680412545590351882143402529564784686146495059945279186839239165848291603540074424521157512578902049802967427406436013519237630114879480628486969868621876189454624465388723295497830212578981894751412821271869424849808604834972033448364756117157531302690924240452221858688899859684210264072404465653178538740730213175216608381987642506419267586793947420185341300504259511647865774689557162301140345247010125840462655500956932101145951569749917793605778514866183013354866121136062348483120573005779985873280333512356173546383869819778515421030937356462622800490718723540241810474469920653151631262514351266794016358055818611920266948664977611630064457344903580024857718823880628722042536785277563279106904331740144094330916690407233662854167153741631135470411895366479910616215124443014266831494661292452755920166601575166640255524833408105511358933841229847721651065671727379312713304336217026037751626974936642393183832643740917237250756621880374032036392851310002278726761898089767739353587498882747849303653045298953080842556593875077355548644480655114126844409184561084390471087915433992718346229623739727171276575128730097382040203539865712576896859487772445421101835832609649528210847565378783320002557290417714623401871502654487778619249767104837607733396460700829861143873103989601479876589063848955312775836067170491742777984638097332492518311068859264149930385343650321584111030865899047812150490969055474208482434791096033103255487773805203088077723338339780424640906971106220735743649103721831067135056357626257343069326428894254072414160220509379168540655989437319551546715176200053897287083278520996783222080141192593724704161514672646353831323101299476095324470938530133328330016137121758562035692406906682459422715381540679120857639732852356238451306712319280278487429155625444208473485619392173094851647778614420231060667013909337232657815615896348750788547534749102343791606603728117280142158819585697458490157573387450876222903110452915990910861022072171101695724951605657867683437975682296999185024303837966345461236954518723567673667300975936781536806487595509983587992454933171094492276909380541102444519012751042611588997073109831590849683128377844652516512806514452337100015446276191135878220067641958601477660106276486876457511314551534016525538945766397423631347811529435432984880378731530264240512177621102786808178196978077272768570457706079123983648248300856186333077991857406198993621061177817143994157258950085120477866344302520198928482002001294316258861724748781625843494258794242544293914578537300982951986042178808813432218439674728043873263814057701296901831051550129056289694957247098633778246405536837188624300116208292793680524092610335592115103190528211030651961135682384332190360823664031794015679248065891037424363640742313671233271947479065694823218642826790978446933560883958070821754696698083131128479381047477389190322204195677548506676702554692916011987883990335325301443266595979734248167160006202491397918902612063440056151188582565858547628024610033157278013602276564366541117208988698384128696837488545558824231015003012584356014759994910160870280924263132134243377551855619199393037109795652043317755082487965142369619435555477303661467330368850371992090840299341517886739538260253339289021159459690260841329772612845636365145371022496137611898935440180291692765356498161666628494837766413884062371209759886181577787452266129015335114754675021183081115737632758926102249258646306495380106130623297408206229050544044273951699950779017053611042479216536727991719731808030798049952496594085538208789819770039651789596175297370515358379908104283432127101771877201923829765158975377189621529654395442743284192874125489721197709545015505435145837162689658087469187521700601459732433341141414385519760583804224300615246916442499567373308774628719257873014230317314412369426833620513067882264398353222534323890577023072116652578464111899699599773360650190719836690163535100847731965793989960526365278753414733413543161797020805588090014675531462244229833891570479557480083136603536211651791615974970985467409946667087604367111927090730490300262644143949692255556360053083394119883154432911842194773859845140768225321675597048363413516332501377189152408527319157566098256166013937312452944019453988452636979502577351840893802448780310674912473814870506218983999542721419836765257349672706163102892130323731206691327713270827448561416223772299233206611171033963057583373874489907124332926179908965924245850909034923747871954410348962686305983765256692123197187654284254159559407613969993785521144919373189778374824858254618565440808281241004046018428328495844490055358735382090938119026681896716457894322525125268484903423232535246797718352286977229317638896430290775881481308794219341755594500440009292663661379866665006539064052222759640533383344356937344200470537668100161072033761494893009099567876159621040944141141537889772929104416593542040140097163935676341084938730278765002712425755198398504765945434489850254763996275772594643499498571243639881889015692537244414468218179772124065391065253508588773916195874833378097736777488621125416521851276689472493041131711798523911452242084914900033409787955776425526459709747443368882914269456208649686791261690397665731464809404746262282937265523884877905873172738072450804196873885732166060649809012221933391117005499750600096773203511080202167045974288953895766789697642326022201706722425485010827575356632108754925879330003170673389468827681109432456315636737522587323182260487862887456110089654202751365665192209667701367994775061142400308281939281572743288190641402234742910310674190207587890300546547153122998238326841313892248309001551246186709620473450275144697466385920291883982602268949965625514111841151971037871983589700307926755486293405875663731192347131782268311862059811968932971535897280919621976404087585697091218881130333390299928755365863552004165073366972126155803648425269105863396561927387160201748900468656875289039987112027089815621619719255646048453520136398121250526646071271852374192669519996328433612104455871252758463944139806607061359462903177770944702128340035926023954307735116388942889215843277761035480978712597620639818531844806085355468271033800310665053454936129848123105097840154794572984086350350921944787266335945472536363223840379819996580419404152289043625735970243397911338761870870384026726685025648120935805824963586624222254700729229320978340188125549872771363023168373937001385807686892547014191651582956131641491538499584994089766326281802989326192015805868335925259100846680714516853476239180435109083649098513983142641393054638473591978583106952903550751812869440464397774819124093375602781269715080736465389092978956497324683792079619164995490488702960834727668646692326052576736143760214161432357956504248270805299582541827332087695754514410461803229795813179544462528970859603379937584454397960666096393249562523491271697770013878798741522997993287891207669962925320784326399224749481642522572468392506326629160850557955856634061652008807733520635727651618262323629410829011343115440328849497086060487861802992460232847151305456392058222352119476146481124913329153223774265997664726371550307940502869139288376410837074742294929145565221465892921150461054589461399253753578551730063397968044067258217309067531566758466412977667688404571107834399545939355366474377551982848914494536510834524452152736004361233212921554434568322798659551291952712743037731015614513401562048362021537893319415923458786796030015034329245197733309970970327468075966365559994061874541787296524931498024702839162463363652188525323447575892221056023182623378659143922668889592803193366083384826050068524189403987398474939442375063724310810326630532780140811592027873373660097328011554733215513742806880576271690235379404138525453305361808002814054191497486064135924924069259646495156246706186983674475588621721489871931018334374814663992889814893424733658233977729398526888366569022586572782349251355066235887092307913517643292932516521077303490104553983833428071880736042263999445314705392359655758910829366985983855312154301460801957220349625163572925163823322549183831061800726708432132231723081107342232593411812315833863532951788317693771502668888786074855519788548381884461950218018414315682021898766460123508577323435894396775077390719781501259110159967683493390357290789905657542931145311909819515141532321025033529131688856446257917293003094124695729580561924898095225599007132579061204649829308080464540699695824390702467090484916630950696998466381859377801717920395733732048015168149519570097523567342220620538912614970019119565397269035121940696962859625160236949576821262998389814008866389366773029754388231041364376400406102869787357515211509514663252320503447288732124163846922224443802142451219197481313748163188134320265776116790580029104033614161880385542318342433021291108491270799349041817187989969517487734255149400890063202402603634826404072512122448893809566305243877959088924142680604303268954257828968070434478881344110297243939775221541216541544950429722867887729139026406706907286532733616633351774500068223531782963662947775036458967006696247982864318550264135291814129397006235971536183738344433939977603363021588373573349233958165593588714553413470607796232478778819705187590632965983580230887889655576112070442862626040195010553492803026865589508837111593092188276061943630068531683483063757052141775759540207844123634215061275905994312968157514725160984476548583610554083649036370422165752532908394133056954453801644286565831540592781079255967726909539965293920895573539011282658605583515005336579943564787292377878209526342410972719251415366847209516330353314253527389146697762242726927800961749287803475210773149367631696256121149661752840202011172272562340824355725384895928861499136052374497243925926279500795786783719219041762818786882603416054607070925355768786853629371970028164957815291905121965235016286036360719923696185107770532684462507827955222781002062046982364684222165226022562575826321862574979467391859483588115303861383199686463432779804912953484511951552424387762856626481464143454550350768729339712417678979881308851103918754692570612620095841747816662777448145685261720168942583459339252521145162579219923936875650566837214022740382638107098634096857226603926349504848695371574225051970150516628935635149164323220485303166720331914045666271185694124020817598386637746846443501419347190467870867718745665649223300262191584503150454854855079990892565831549070154173767848427364457860695642223038717534421172653436542524433455664405372540094477675418194113574407051811352165143269949245269613971565715645601402699535922671648622522331199649777189285215795231659220284890122234642502397295679385609274975717817760695166981543576168118069596986589370007084142862377291914226567177113406043318650686817964218029743628870976484272511533836974107331987316933539234557776134642690108911708190291473457115510278056015379472598219827032780378479422646871125599768485651914300283123077684698256767803827862587941703620182940558055839508845412840544615723253346171792293761587255410970299451696957044003483389711001757329172645837841331637791973544141408797722584191248836651723475862135021046526467065103158209735768063186460575041572919151094592517538522584598093321529301759499392420243639574146480350241802817096166566212435334302105338597745809685459076545896318621991709887878230171780057882215384366005930407527134856002959822846608838459774794961882994139578089632075892109411934875773950249557427852156011694592102325926168041993160722758575136639343350969041903440780540464795445572769327477042375261359807948762645368971966099786541700226044252741794472135303870073761069134986651401885063589847260877495866187781880497866639504124399787169254465474343608705809810470578109418710915360958834859130447481672446442934306471178097628483302284843189859080141705540086539199013423108895133148771241299470157245396816310810511560428092747312030130088219872705340072637095051479936605727460097142830508294773759087973732225243568838502541487774467779536252040477979028768003097612639383305271430069636933525279518340486575436717469049200423474148726072351601898201371055097772796915239045954277507758391674109989900607898887217691851078666605609168510028561711601315516144939212233587129075835241239452546562411988555529868957935332328321624149271942934009123949309339458663096990647086655767991116267841361165691532649289804547781595646342062100549304929025458631576711270282083389289874213893781191323213853587827854045527330394477562831506273987752170843574641558327456973749446463058183771421044221917043239331862933122751845981438320320476613830509556555132026182163880736801835674384892476726941751560118254583103401020975980163856764225879069832875669122028789796314412132249347392201827907580997697277050849575331351205848752209903783338022271368314021973452705706011156290053153469849562544721125449699510699555327353563649153022755208158056661426941673297338069799878321179069026130177134844683884950019313093412880661454236500244435435996560054380887641798022078764642566690479241542230222125253143033519984441037464513436060937227251087032092359452554140345778028927738111284162799778751999808810827486297760428252382150011413248966396186898671989175374218779883547593865296840834159000678422167468457296924103916539371801477941399917474487992609231344304851286295086527896038031833617049042668445960107164286520905939303993678628148008494480510498801941071467277745344470026774952100801616699689764619221834473299942086211340854652885375221676178164838503252218547080906270575482427838073950116236133621627434222599651528936599126847568417115529502906328930389648829494027158536906576015588294102888354567662948962245722790230417414267062788936108379502748303118313361538963275076264551572819224946202225693462526349923034790800448527441490194212324349894183404117699188263311245732929304344465866155036640876714798014459091550186862119550839353062277204407065273149669421645340864071469536555353220300592792571165796446142439189870924104772659321347659416248454424916045441721850023144292146663724803607490052085773406004864699320359752061879248814950328335196806117498497808077328319447667230671550456115543147949161522650843516786077924141069585846568769848072872421138610709379032881375389501744550945648049207947832764918237707051423361170061279326507121761227779069011499983034714429177823157955091809654690820073551386717388080845972644053576880717437231431134928857428055331454371258885238832454846597696722349750661603635103857414610929948743873387520227217891369415084346140751569607608151703162691831733287507818482597797231911762293431686057368747612532406322628340701989604595041313872016513776684597084937749337971819949235544053961827863582940807954834823948986413226563840410429974941706084481092730278828130504452347108026864813042189167815925275421600261303790559999473823333068344387668262084449550110074099755746490908710011102950003490539990196467404821411029518504254462236225363433378192056175824754066121566370186523835628877698818175231765970050317009505396305738203813886421565382094464579807323637443553346869652964519829634512520692366104925856157352328606020022908393774260413732629819300378058787490619936109809981594729435774334600942526873726964813706482981664184881912082720235043085527711451238327855192169062866026944924845156140627411280870564039219634579239906583342041250630941720465730054638589215386138718068135952564647664649064678847188266049493972754951179747104740203539815697127250822816516978397256559468186578661453891093949364407741652245835225878847853670723601291600897591595558795494401059907410315891514988713758948519118560375537610084741109407693650515194360455501546573315558560299472878874788783511637103707162221794746500718110214790584253590917504750773356300415425432343484371487745218994515184265471191363923471994231029267401195165983187362129356517436051054097066909203918611055867463241632007049642049000840023731928476898360658113846702523309346174879840505947066952883074675883009505634404452218161440826950133818287985262098680545298593225678460594256379692517514828337716045172943480423914397344303684744851858776705264622405126924988162728679995886989222129182373439297633707806573273880422190530097032108464932353902816889349094719522379280543202134453122531519338152720252492778523937897859494375288604196362584511204110464612620306536534420753838981891438920840198550806999804760415307513729508815625724258983454715747683030688554197134431852505877433789376939789563315420630893072149336466786248282486285929196794520752434045861556711182608228928428268255984877886695365788003212833950117419832489786802852489808373680412801508800047849147886178456950850682958476613734199082048453380440891371311673719487757630308011714105000344008799740337008415694904886782760654437836954824164977356829584394147584463794241950530367362268333431410383278153483030857641018088125532881642964224678190757489737492740073246028424899251502602978308975026987792425616597887661391378971795255291830719437479308926047512564783848004411336485356327795891229025141319625147581169834903698932397605767948881706424189593948568888946193579579846410394175646107390207714061754447318366219712547045322121736653535825878048450543161817625172539726939321110345898201648558786923310720601419031841293716009186509770491950371051375256433166913194371667854899194785547747844139299615896763812270465932811503098875262093248229895037557449743652764989068947073593447513452503364957109359846786070897520915621342298046815993821375093392690351320616571506907100238901021947802965387128429526306348236486721303679350738031797469748143716471870817433275063952623082125813817980511298559727783787082866988408807226823988061039548902147168481374197113631680430929976351245606305520103992723012885089105818403638422008091237023766416492276587283922338757293391448476935351563290132880591613313412128640809785036170251370049445337014418217952010182138076151334172360699239964847531422295248731507280168163312234825754853815721379104623548367100313572014935090064041269642003368006781275169597672878669828848880041065523125589444068480065854021574029538786214177313916608489490855691109657078112793294729051690779147651261403754613422018893745916214144124059050375999811163320678511198502614959688703324848675237101675168137763832444858115595176729875872800397091486932921482048666076508621903483915953361764422283117828260994467706355862518809937722860221592765251329534287693481812172254354778568295231739836463400850008727011509275960845487514630705772217318381506040629129361117984097205779549828295192899228687191676475544815410792264440781011084489106761063084144870079657395701593650628759184271919055363479285757293824613271741840618755292790520348162847335563141018937845013125287826988358251009324860343869727474195646715653883731366514732550518458270899000514186345426792716429959299560004338203611741043292255564223034087004199885880271474473701366521906129815181143511758099314886160308575265928877375716021845682399914908996843831467693604676139687829500739104722217392102945462029821635876676845323703230212885919531947208168311354685715436499076912755295469383292125735154751271270434427220351160603942580500862306490957660478214874799645885734805490652666287118356363854013406249165264842165026547954606472814891191799604824860968220752759579761921462582527883508670742826945926018438281571055228341527768818312424350170704534887941154971254730266745144048397894047687951302067559920181953760212753349949787882555061405289338517004241723136691379408190235298016009695172620281756350028231460785291334145486876303802162404225057415258470764162893472983861149509022285665109781639064812059719380050570987389641317958577279026407009841449984729207950624291261733560694004700768345969536002026978407808092904544582575989856726634078070301800321459194800486504309317243830036296814055045064724496997316625521478016326260450716276227756617157377031486530592793881520377378923071686162010281895589153348511478275470931494814746396399027845637752029160932680137437751609313332089819213642008781949499787492592487012628153649021550234635554479362422181141964915054639177745782179547255074582863449920575226431980872573659311428297361287589040006255002489268732699489932215505727483754311027756939634803831085329823188297157063023616754631261780703578470247144544985516293927068448937628607494615759849167181187914058319425455884770298817986504530566650430333185733087242663369481164287445620466465310120522855073913095980764752282761105200182859985866457308764003829704280837432762253824513180516305349948140470882751025306006268726764554016954376441716149677546652399131189959898300096391269660348331292610039411105696109233770397265288859777288439380877526763897289799290920523829888870492697546571619176055249447592646656474165808172290560110581961884849965521782339639699181703215570333125096613642613328220091811541214409190805819848637670804388480824965423821399219851813094988060695324525377739947771478927746850185348363235845785868835761693823612531591482709627896530300608340398297993064790642608215584834429067710329349442432288040026523287568580417750250562090751553656226768647837300565590544112092982948889623816792390245789932175885589121330263886874145120133247396044587360712640078429519892560912625054097406169677978394310992867467570047346111177500392975423697736166360967793829162377702933414543773807151603384180782239175998299791615188460651470541784274309427977884043297141590025666451201905777541089096482741925712482876245540501967854299254652070370828793944008779566891490025618593611397163591963300622885300581130681851285090520576782529346864893714480270614891974182263274345452260630274153474045105307284029686628320921597698566360069026942635402891999646143743372382420154539470155649724520913962664379877899480395967406479874546836620636767856127721346834381030279985792341715235614226250837717836057896160411803212537921693271448585680501030016954387186598121009348984538257731531169792364459459964097450709118319446214092618842652573438139963731478175184729955413661964270088666639540928948977195463483814931742546320580120536706720806298834189664386848970784087682649514178271716089189790831580477538703999410001104806374163083170946616261487751201995055624654331234426795026554619599872989141715475546994029287859861004664113979299986319073428656539445720507857686134617143727217117313808219184158528749564944244007166433723725307380694104140992473755890281138712775973759817032537288821562676565710749910557570304285124734147365858664958832431178463155331660291929137085080093346101722764003403397645101461852240952824269970605684312940011013526973522161676884369240241523252857081564954697992817597889357598469177341338122043098250743382342030284318079010770909769128510478667130405412100537312776626328225731332553387852368740681864833396955209806916345268570503619771438886459769712148419938691556984693053575814207715100146280242778172310794893626040825878299711651289413163948500819628463966633695535408418878624292818642930450338731764188911301790020829908318676375285696494515609962123493406576218093805752190736647400455387331282292597533331507457943954201354358163123389331034426597254856524794036780846018218439379175560271813209815491640483848872750326857580419463715183028731411000224802767820037414077107761503259641960807980890940990222458123940230295881353613430425301404722463867818918351908342016098739535617106451087440914435124977978113143786697445576364666287638967444697541888359541973306862014438984885345887454333685600611531932937138040751509259834345389334732924808251167128649230141183777174661947222037122653927433554221458456302063912460029702652541864879945118429210954118486414731796346111740806114514806054346451266954828570507483391880241518988094782780950620123514820285566333505965894554153716644631622179591901247780884720995158073553986910365318392017830167020860550149655544843797414298926194840576305491995107576275836065694773977822571422881674820662821718553661708685092754587718056633691289655091644110210428497261115445053079298838276484759343110554733486843990579781607681795032535796349185257517065190153312444170762568609198335745958936671781221731097105180585201272179875468215219267627663433642581245311332350745109956019443488426995784598102190371325713492831557248933760016360724571085614314805147301661246327645091942324762664302656605719888124515610344013663334324115302895004739381768452713530887365779000579100741918695335212192977881385821312957459250133893514898930801310614470687604989964574152007116566354326567659715757665886838266961734673286377488250711458723305708757617879530552782809633849591035400656437604755200468229170739724205396809249486275585201467354591818014245534931305663095245853170422184958512397257553924589396005334846552664120884819193387800852109028630007065082938640633375244448029323342089965842525744106922360342206966233559518235582650433158582607795384739554796078769276021830061662515896924486493275180832492427709255690867857706803013964709747944271033395889673522039982579334575881058867603934363717043814422626251580683327847660004736761695469037248578011481464727212401195402064964469437444463705820916099208745333299766315877620849388289417788707607265049966855380305354219328500438381160081860521766997273889696120021652788356175159453288517496539558680361725178352288853005630137161140885985487221864095322048383520262863337985582474744046614888070650022091876830767310052121929965652742901077053202125815395449672080111137581742259373990877505994656141074907190054459707216080658290946158557854612393859850249852559823162639375393967183360240199818351480626234477505953972995665626994328248338606602798181254900121815716719574527310783678205927164943215585346800008940946473644125428095360469282214199714860691495658855624998438504884904961790139946984673450591200803819687155802901906541480130204877378125792415345669551409291199295478159892187738086029214461084763644177822805774541035579862359796117173463677664798843795665190237002711782206740784450030906734251624196933156278913350860137284199770843222965195694838459112278058491906314330626808966518646139246815837383676734273698299329103327905679285367934328574392751570235390672551238082209929135134044027348588162835202805670149192566656890957437229006064258829841105275499503978908373878707109101483934061581916042845005974413027328336402898918540727546736606825913117215613445253845705854738848868606132437526500475911284461041746683941042567627503695742539636690219171645530767712388898277362422115402696404512386727070253045248192148083468124099115495850626274468918958708360769075793021919659238919436703273242685388952414285455882405613998643723017209631804721469392621195196497795390355823287548307062548678622365372833237398690968993394330543469005907874917397169224335841058977104946838366180910967293956639027999497349319729198609197500648433317707304227277407214439926376084695258275579609405380769786408633820209709049079836169256411702186685543756624393292336706332769914297278467606666132273686819455563007861979453664627732586007372147645902617520479250648622217926437872532897573535434225415922109368028019899666468009558276181859993065825528659202380419083152830152495605316888292635604680554994857297116444237910046622037026924327648456058235861499333027042238602192917341195439976476404062444774740707064159463064107793763443265651305313530784253454893647825599002597052482675708396817371456279595216982189907233792586280123168101347775210901143384056911097077397513726164088982667344386717057518130451365238239922155075902121104492629554165322676935904244389477473349412136913378443595076936873762993000394152935473597192531461358884040011716872109599606161490514639607456080970959576872416389425855428974391943614959985874598181412458162704243024422887528803270961639561251343772531475056539772789114529313257341099033686090691181443135650913982826350003329578492718253132164201246450660456884087795293909497746096906499601637754634015655116992158142544389063570182711224117351476957274294759729618960536879641699754728139667204987159084359849230405231123958821300563897516936181642013338438912849878817384192638109610831001712863728451953240720809834280216984573569080408279172644738941048066393000256424155536251082742550764604847793970565745341766480454487386596432752939553698583339343904810193387928575216952848016933542683576563524729813287111156614148126939265701414514819330448955077176563718306740054078386570711955816622338770830558366573531334460045548572693845261153373172379255937719757880084634550022761932295058477738916932602520227802416704257483348256164000588195008323080490570837092612536583436268850186986775577623203683741784014394979947669810955171270307323161056893370734142233252140141980405810471276903398993503817632158796451807080441197158247377850001618822582935987695299936107259454427157818614402710595353397668281184392844779850180657445042519101211472596819615529784671608601258466040788231368726546546734880019765827936932000807287980147440147595140933717986712680394007615757265483558894435918436717318486670415191130096901829466045972422188841342085468876794048096539802823783626967384414342703869530003799700107715962860066006577304358806469922919710709742219175099348286144672786834290487348819349590285867234393470289223785437547573701896803662742565259658113030275520246084990519913634885820596155686465407812305475287798109768571404760962853573520649200605362226631137469396426340172698253267685881776063473168998314077773255280916283233092033264874740344662711540415736319948816036080479734926320615143305174687143042806432246913119873568723634665547434522048287063573099240687002556520097750946493842921866105946514528030482370613352378640642408261022664654665352692994990355388140333783236328816652439352266760868724469002430262205856586444262046402563085113916238540049761602012121584065306899330208490489872251932610671781717613886338600087867096701808545735043349328744417378167936752125950139382195480859233401231218409527509354673746799366718194348395061610769173067057905250408958267473779518956961097140525145128417390774556875580606253832309768955452569582441908504768257810857134810445223505604186943561136972907370513151719387696863299682830661211207509914656528964777907644698226958392675104032199917785487546883738134424618601773609745946397166995507054488004929049598231827316662326561126745276767930907245947936153495509917815557850183338259880315552677908748227925536655416180678385539131422197332761215640727812354607879777687778757436956447937923466245232306789743276122581071798866342397971901257550554863473329723318356234374344960116895971097258768921696474973287869181482227025561791744384259649438856734370622749399760947489353025728534269949919538886909607550002506559519120159674673808376714540868479836376251606899102800278274696173735521375232617529831268924271613368357458464773758714222656747492107222062085333328949656104476812926372733992539510790663326323223970027467847917484958849862162120156674550879488779665937862270107672272218995280237323481777499511537695222128465426845180051665379072768730194384587139651719869062632376796858333008774616727001848013680840061284227848707436267358776634937102252781668042034703460430226014594040355736309205936131924977504281479402922539728831431375182796176110365001681703322506073642520512583088716245789885148580547749144365293558997985008689216680355873853427705274696929372347479108704683118673366038922843715276983057547766955626749802243307468531798559950818144017857774438868821907468554046445834029077900513275713358492130815745538344670542212732727339796645058978314600262559742165423022841511315711296479883042400701758052892292931782361532284953398652882816110542138590132488254447813621252932491590194623426795451463261743864677093268203781809008356739159706974009114763528447789152749779270715644593155696796806833710900662464141269512830516598746135782731062401992107949882288346211712989851764290990211359609277352554016449079921020810680289339201192213383949716878420431024818840184017093005263216172352426945418342089557021070890694417505112309147440475092254573535356895920045976255576006840541974127023379593552741486569745048931741706334819284954135166329624262980036598997675157966428061670019529096641447419353966182220766196629033207889581848058750445520333326527910404526487799010374704352569566617994593496873965563703347544154059066873133429148397907531490789600890314523303526019921688326550720782025932612562497622898596157654111834653336496697745796687056963933275599749219775099109091980693983681383482303183282375413903592124528292553448243223724271671465428532116632060642110107525957480900117132388505495814623849017566389290456843566643297899392342008451949414373098741062480147251674031955927810523642444358507972832174221496939199449597752611648174560371889074504144625646809373245328352941288228244987644741278063469269903123360005258121063256852622491899758390105581569331986416389603783889980727054056327537908075966812017160924270155409713141897893590280649494112163385384323553330515610808139935158797702888660144205293709621123538939139063380341689241907601706122642290372406559129404854964523643370885550403720515365650247536338938243530262348586799038350311654308641316843321018040755968194408127866239126297012697751491091828479292106202126791942959222357420354463605031670571078346941812427311170589352258068251010095688122281540402209558152873550985423294555033324867811756410865567170031815854518785289522741856436093722813703508244528559339126430202361880550336866314178736742624930723651792750789974480620933408260297866443981123899388346014707368353123209764580225241295133391802330410346308198458337098380948968916001041085943375317136264501747394426954790331262532384648518429787300214021250376526527579300544276801999258693022836561763845614389567825770798717616231807803099343450099345235114036016691262412937816531775641815111025770792051368480914473915530663630369094730717564501522619670423593123211164206850485742884374986036980796765425271085369738408324602891603853605229316795613862124066910044607658456883343474147743673528181767680219863993922814153759124332789376447427544388437828364069340572999100751916134097784969950047098465505864428426572373178287961370474657564231418283768632765479827829529170155029444019205909762810310014045378059786140280941446987684881616671619685534040682573910590221747857073115782918989175901101444717932220799413081703917405135683639518493702585016138269100481307963419707817205391343232655185335134058614231020021858294008548826084783146940476701273789642172607553475805581249141419189270905642337356553169728047875047665352260275646814586200842698609865036833492400768600437729487816128759488329531641938267052555323546460004435490625134386544439519854877576759777537187040785351318197094205660914014326610837506784092603679408788979936086539166211155925444372633976655412747211880713860447654097823415673835288439230686078953491540708267138635584317609939393172755339734804331646938031502072961540063686043268213054646643155801729687705934249471546438650578545371219648510162891630149037682937052830277763371981721536717381113916800775876905458117242228835919086771557621436616637386975055623754900165408988941757918532364621525077580331769787252186834886836627694324292102265000260048853313756218158757239224676143623667444988532251350001215259672105002114262192326351181271180616583263250031157929946513046624903369990141751146972033833511402047636162573927489651226752236929967596075312986494378757681954038312198156217320183070375149681460814794983913380229877327298478590499315817979447448184654843600203860319762992251684941116531885873312016448338167323356630768051910972261635987634510657474820901399292439129777175302891808101583743156401143861512822948783207065550223331328358933236006469629832306532333354501945893783009409045301095350257807968510025930206365947684108689807716020594940937475369815445030769910608747247303706342734594341216004444835564575974893340007090698079675940830014763532862475316862369242464938277171773993729637782634289377877891191507969017224468798076865463924220487282622858683411027725299699761569563447829446346659778332220329950415417991867409226640654259969099545925760762282855083960268286267946376653757384804322687371347863633758086088058673009467905380655298066249884144640063381400338181061257468563434427143031530098753660421354239349002616961949308105534428872717454042331165180234024314377638027708978334639506720563295993880654074152136476483740934320454220621282015116105366125477825628638066518128577026906394068445202138502826340277528617085862696471332939093646706349035120153712970983579601836791323477254321382856172524985020949996025499435068502165670369115099283814997275000589452696284366702348606220488429722101841390986019297267393768874936499745028472396078804822577536537025140879202512586327081644859441290504165502159592759139995366744907780834756331006037864903171350362866636316214245786788710983193045289190917110263368135204738667508207468315824457890236312762634780716656275497088990465955423705361575258763197155072717698163416280512848139558198191230946325925972079592821740989416852882381001325041699115427382368417207181625685736178638538704494646528832346142347238840861526574357689519413103872040424734196400025425960730892464538157576980039757611169723935864976626408758622358069230920936357319592233991938694173574369827934302354951903030199070421789984354044680148269750942845006690469343319112965166274316315982999727191298182150243621280750198564579454722323207326231212841099039192527191101783894881019784870114569435847057392029671032293584837058239768710254480049296069444641833148056929582558857263020323770809458420999031873093433931113071300986488574127938482283528522834753581010533866241884830680867474977840350855092378619848590686489662831148937987951381014987623477294820421200591111315189085986150406536606730002206491882246781331794741133523935678161304043203952144271123045965448375452938291448714111077720415374772550697495516644204857738641211529955774363044064337803953906721511611017202137467783464788378900231157897261262799458454086307185386268288641114186542850532711106770635306937498958640049199274526889853640524769986287772135743585486519896564456483278480730637502046048564052894237322767828151407592438198179411465207590720378319397732925592158962109447548268208561594936142646852904627933134888071216445353381049273402493067148436530276473390353179678952522476939749201130857977820395728867742685482746929346095414983685554613333334015002509013871661612802785050487806552058815517052291124809762276761435055598301007417659464799103871852738955309687876042954468035698510311177996120917382739205044979762802253451453258455878472256630181348598671148761394542863296651102190363678927758433042749392054179541894952103717706931530368103025695342822172297831684074762841065118018422221521727647091878633922237014388291330777917521386782447116778052977982798704662402078140503161885966863678658112273744627316803596487914820394312747303997084495215079875614620494095871875209981890850278146279478177014144304772181486613461470442280106310445049433410695662179214395902433986720268147480015072582848595679179805371210323492047631566521416923432912738422654386323460706701116802897669246610562068181447999932099358341204771948481948662260752362981640213496022285358029858336988563027218153109726917355525853929847003672596323206433267907830407674216060771888859470272059680425199984588707441537728993604442012159649228047202909406311211522507297759984854351584267001636885121460221096338592875991156161683156527400363347737357717409718861698740642361987576602385274109596066937780730627560134307455077834439104760511325899753444061354017560094974114504474760447334204135928402954016892473286409870140925219955899217642977834022357965237599505451330572249196111827362657042905666732196128864195805152946379169184472036780209972040983682558852955631922753780248450721450588809199996176709262298638584620655985449016432485388958620719015420680929605366642941123697116033135064645040689903751057665413411603927536712544830296252679369552680137745866826242028001995466316344532719876028190125563382479544230836928159042658626222438388809134927181192237954255781942470830504245691706162656126321239219192234068969480302199969425989243765986567573601572387163578949026134668179118892938476254168333337180209578233690053635773893116241711055225188119598794407338370782552510893737996431904090998325596431387426542767773476034815290258278029999017076941956125612336506927479022612349738315253257909699600207006023471863450983897089426398994948588197787721286690536301311202802637386701702438515969384669526648337292637905188586745034182928117691397320027489158389142106158188581245731627384706855457492720383338921390837834074252477293608523165146703411489593201693208135089525914886542626293186649344414712283507698378776133939281149692094643366557706045251815416685810990408770853801756723374707568303300542082077296602648344327782639718495277268551727647498149826975401793881703757205207500046879689937628283254358669650135499037563841954883898961309185709520589410855144887579333526255469062185756621324387158244850070488264569422382545050994968619589509512368415884044765858733929283243907490930158255312622781532875818053133775853454387998028073908091498636549503673639378918373730881610520172455146113777841341152544593217021554686280932311807177736371043825785761226563160208776290560341606921673291975318996844011374475573465954852746015859785658677102036169510075395509293281194848979889041270418189752109432382052337914719774522675453485271613751979959192007679458743660817897071561736350399117097706232274860478225331704297744487888463796789293586236455225203864346617651784516156230640163303896384530293991139864510599081406130720279326649511131115547504225212546674977492398589164639632429888904297502282877516782242752966548084198740770318336881791409789856286915661214064228424312950460935454093133038859834783214768974911677808992218453918986019139142923001409388986204074287408765093926871534228357723326649301026327941180653550976009370533439051190971339610919474332702771429328153187712602660278274088947957566294149264286321406459429753779307180945833307916212870132209041945382486939688658249267141364333395772251778177044297647276750248021622031323442738447820560581493229313873353440272150968000869278519066806481279637151473418309073500497143179012584290996766372157960444189791585593789556947215870705499606475722897876476641783718918595945152264320771410206692634289095294508685249985206702655305794429556054747260220878559796065806838657312631258198754480915457201764299547487633992637380185301546587262942575026143963594947818360009632837386844555799652561236582906386470921925129629188525610306965004405491729663479067867630825230492690618104059107208943852767772809486818010901962726905402665470482877578305820321445607565930215030984641192441186965870512718128402352666480371728866570178297123262655884292426989540901863765488190199735178388789890360778610178522622130352351736152929153408002794421288241585146824790116739430510789689753322938912012551554892163163759768869669443401712884408385422424078489847610313283326548455979639608638988987110854787578147494676404300570380412063495500228189032258198127424532041943713382434045752240210182171910836361963022669116516336248688704958893634751418224340352432955856656931459844892063378724240080529698950761534930203015714148783850910451611731314035781396709935101574609756011179708960788271808765707485141021460348741562891815469666419303427111540921757768282881062107659318685480739986148927154256084735414803274273386853054988286187595083514127307962078650528894160116286737958818805063269565136221869573402219420174469632509165920252030284986550545988296934314464257513456648179746809988781561838238590415564349185235719534810181038369558008488434377802622395812066535688240577008727005426446232397156691568475685555184316437008696942896057062576502074823704600328147961069506392037595504849473855249076616029313253336599834857168967704261549690031769865407639578951535858159618128524766808414921406243779265705198065767599820691122910699002992379691901685996617619819763851595474075752979453694682392825916833485768241797943809495539698715024969219800277544224680452633201684758976071522738305670682483962060394682068740270661778923230438196927974361077822115744533255734053295053086158609671916981400040606726148073220244030934142365077818509442782355732167303887263482197722457490819577045368277453492592016651275386286600371615197230277932035013439608281643125178280892989493552914655139340216494934148952870012719219012102703431723302521595326935018997118066899907852129821848335420056828066054402340395971493243033402495748628485484619473132615505436703013520943704109444832302122981486325388234521554031790330649871885802049376256815337734839259222009777235882959311500389185008535738970974815009721955758162980171815982332052323536388157804015701778671047498566010070755767591301346102800789165782966718868208497316833532229564159173971454138115582825481073998751260119355961997306443070511352378424410642177760054925582226792025194114832274612302836269661254786751082208777803860532311863089330550478813390856375351067694700698199813679828377890349773754870924061960443537061567555573226121183590341421223556303699576927260750820556739958193387195569299477218061072296498583484384806580315539501377179484076050236731996313876277741904744208942088726378549785445202823292119454126175633028365300645592610658716211965069200866272500996689777467727641456979230651619328959774631414899794225553865989656383660412374438568261004776105607288573785102071260716879276004598948981882033496800457058977538817458312031769951810526509056274460855564625914437664267825249161802146492808171720137582591676897199249687043809996185161223129503402957580410912685023976818302663073726675460070233385760998869261204409024538311627533118775286490461690726901206640413458846018357483619614920440620318373356929564013119694691922359958200549454094699789925713526471750809082323870890623129281013615514498337633990160538013750080360290037857360065668549265765488721990556125250657375571849107556048522205068417283273989827586201693966871525426169770302492357916570089470065775323039010963709869151234720822999159148162786281427180188531283218715307512996478775920825409053518021648522130377875577660737584252540471616708631126551765103645872809282051479715869013640850034048700251796601136042683489627635966857909521273000826149029026711863141394318671330978962977553426503953884108971791885934664746845000691960861251706646146387864166433338254634955425278542345745614073940921487317544544681796291292599940640532463450057539065207972445781609842950246298489406728584331608424671781774471235656765031122842438485898230983555185753760740604939952925796566841217745155128408629916347268159338453795146848854425828093286258886710700978316854735021156275415171708474569807207629001539585191385970931550223033818739756737849392650207142480733159235006434754395598780882147379770267576249006033148295492006854258242843138567920480143458765744357094397915256389718655387914612460990662513317150983184825351518857985496310022619538516382538251992518651036644752968275442300955634982783166954899241263599221881579073802126601584661822350000073150877437490345061178458991233648379950779444327796306509700927838729361139983982860070740241292229433990046148690815161373284812539677605878743256157571360229026830545737046861965855669676173191596371474482878205938177032199913680420822542268223915970261724214414384084391881127862601008993228401020240055960171546012203378485148024676932936663798709443681411454356601619632931846688259764389462478316164856054725648181834955783546738521173439777358844958877098104022139654721522684396679088982893760156429909146799132142319410165640143325066931658363198261110203966430527942151781434928529487282743020238430849325673117767938292878062310157069226727531311044149325468417613476113166064150125603659902695110528821853541266855702845913334657816796964524422300294156398260180105612186711202488070506233909409623583575898369196129471781477259906659522965547713551731713857489294086202103404262270650010148767142184771270686044074384419240341667072097173071456748890168157565405643820396927340902722992427221301231205923871454852326300071593177831882924885053712292869893090581410118884304594848328119568518407843003665026242580015214311816405187268284039610504229973459890950614203631227615750414318230378172950082614096345272792734201602226401452260538337366441250252870556488315130599351183455822020469680226838691172870638211804761033793521115979194713443731952490057373821164222754244073155738084194817250966461404547389695134734231264284489399655391092347953171332023397912086621479495986330288639766269864665718859419835347186994100927054777489835452711213346120226971005930303331821715925781817804616016571613054878426745491034480243574350999464892457079946895685517936326455121898500910863369684718171822466031692487367481485526756002584960785318784722470106471141717696490747911627966251556764112316123755124404170565918920465555361654415116714899695391313932955585220569777616031309719115538523628824405171267270921570063380358418862670935809661083110425428359167828306594492604139876189862755711827172098364961277141650985771796478429398823442656866866652467810420660710080333485908461250003648306969553530047326113341682459714013502378278458880278733583096729366223017083871700309941840494535952478014579295393530635218589358041866122041145093777289450680989481989780603986211906200011063880272688537717564079336574374454349238322712073041146801255658367565597449256785800577755466602729779646938931588022962430785967523681808519701168778259230380969481568450947155007227224155592386126426591233108937868381067902306091297427155139673430788723002804162420798406748860388705242129093996519292593437701541260213633371543360221408169844005225087643443751794399333649946159301152820737292970709412755660816789953672404390830662403015927512860318295739103744533513028306793952481841206571959491076512450093122553618322619181739723336194734263528011245265096364920973876798691185244728188957592902006590825168293162279763166169797413762317010169903788533497970579352141898820557341944319465085618478192965171413092735122350947814805059289953540355261055648094322706832038484783417860464630992707632958397547980365341154795492943235742320738942608899559954407234790380373532217039068569840858565580875797458241845862734807055723357919727742881048886291237529598528491212532699551663400764506922739474156842814963508124416273258174149837365108120285632549267636830029875049392680282422289557946409682562592599277484697773941937757112310074889865380463503967425599115871900851887028982407024369049744008391393532379103051606906145260354176327440193057642290259269983185678750371621427218596138972942366917356976668483119921437168832559882037280603412699367435001971501354264311605559647905415983847141427129156043418384802160043599760451572059305959250647750249993075195642246938834793081411414497241723806646228004571259985998621564832949583293107812728820297117172445442944775555490747598637580434060860915082849461463645048074568542673685766338206881287165121717068098598057745011148590826381165146067933284811920109703249582905758803769614721292208880040037426486525102383703493433652229016724124874998191236103650790111406852376795318338298522889657609519208042952559877645054932127566998512592872530223749567239139973356592023514795218120651078161789199413718649607609467176552746905293638958349396683467578291421101732726295236432515427194414709206904467292125213505205147249085892949635643001426544114445248748076778639716853564901822983673990726225875150916593344144715909125890653042425439110163088913719066375677513269739309352128808452357374840474113224735889492515314438974591025455986304372937353803683666677332171784354134499918109393401298036592785332333755457957221944684550901462306993970299716851523966404865004597916306253481404682565290325044579917698246926970481629337612940199220357088784215522895051496928888570834605199092110128769837891873146891433425429036812068729799978180204142644818181294476503463080082863311904530515207870115726278800532227163984873070974654102064403802626636635317700014697226357925357795569099912108798540842262093829547464229126517498706825728030541437364682139243987875118547858748712447452752742221478070161225482260018249958622024042267724669303082693555288680388411541483905266067033769842035619584158914185345070281629251264085013657380138451806970772141516860199226988275345242785924503995960113601967178916589931515908750190335387697695256965325571106128949837844787787964482369413253490048219694561646377687045696368890602869883441154199478060809552100343641609195365106169089275430828364977745052013540367771918505626734177378014840410303237202173030139415600861787788114841642934893579549073145082317196729904385919508533678000407135772861898189029480436583888532205785098170738963023493608689265156290802552287803370567757881305979839279587844770906047938509465535243925945844749493267048517280764893415463303682078614647720905473166272401543152272024928378600036383426702397814694483729603794633361899097373817185063436263894601010342878170724037046386556619684582650041208750813915993133663965607782611388226189015315842847342517001081937935792570302438821549048970592382920142786909170409629710240833801559473947412062136543842674888750951302290842902025189449859541567544476093653430154274560663872467014569359655180492157626347016909911056092233553981076973681822186895762500623440376304243000397980706664514733713464116554048764445978590277822252297200630810833576070527406419643564535798304219560165884474035149888483822812354867742917553238697202348050370706180635516841149721080933880420397754494079996930423294038367548334856725742946393653665312138153919514522369756588262053586849669858884570449760130691455581177081743879577713114982495855220950405348238757281452068146236958955721231374958976151621488922662719660475487647375201220087875300590139308538726322943816733931304494807551591177953635871477554185284796855989469927058038514714261639228287043900764201135731841501288556965203028958588082803019869335758447895790858865189276741610428609939978554273663590365017461636823148163384747673141861016265374177168855425699028046865292228251874545430966960145472951410213614665629445392293225559707824214089837539084149573456233471548717269045770607373223968008998985888362429282669352897624228918046818590308383166182297507466495441826623511019688091373459540876461843243669899430610597197979815988357632453954119025876167905063601181137705732669229771239541049795001985681119609313950688063302952020718314550113422929207208918654624679344792322112785495169905840438987133264211087042707559487070509763210127359566400920471891718006718502748785711515011081849551459027500579970999064118453158376536303302586903290172669612351516783410411042060574728106472678640391342595962952093841951937955228098041378960454051998585292516671285728520919858091913676492354392780100095937538783026626593568915859465605123921415256771832564087933591376107663164265582142825431847825759295694506373360565813598723507402050793490322572080295406223317565365232424744260782902482024652857324012546188843015916501227058804783326491307125602186859357650506096355569448835301257000546704369261026669362983638279324252414610328493043060895019254662319220669180771984458191035679894989949085006979177967624580443058697020510775034335026911291415110142728734237925975067213576037983471706839961284741549918949614222945608206557385022657817580063812370256647028432759115662505919022402756897041560888116024688948220371522393451550888144794387528366621763398214015214109685117102778358112988512584592533712823214949157853022704803387099664685049547797902472890872964635915930940949897385384438357484276360187913084500879226131712307717243850972830016257506107910284608361010367324994315590280519384629690015877625270975142561383645686356099537940623151793300825354547471471100139655892587680459142438292662088018791674957599571401050370316664424275008016365037302082190565112647065935512497555366394415929257645885376298891519299817148059491632956735459888129843828203573361584481496663509274611124853120088925403405635245616801948341404744281216937745202369327563733677355817391554956596514501118818767800892028533322608253313260156341596627207319444928756491984431286428603536617328131439326020096625091470338890121801820084961259841101496323753624889679172537490117975792059272629503091826766486588983216889956438330331003967339415772790974757679316040995482012702626330971557378939961320871805296526404119122349956887389672661956513769573203700267560373986489163887980893974009191590035401982937508143118306653934861373884739104827033116202093153438338976082755367269301835769655269876658823326922467730022108027282245748893641723928325201998522045492349834242514921119987062497803544556734944740308121606371309395304796352664812889812166094071096636440153066709193704921844972157949007628373612172856288858527031460689109794576352076409210581016059843945787519837627450583360418461410933758884850768182982124872911412021377516247881522458036395211607438908759607726401864856258963424505766461230277217429606584145615234870805209340394911242041999057230027649442865691462067328770470737492192291493117010171794506515526823758818824327921453247650012387051286506479914916511839962232730488560823640297060453548317387335627873024864245568612570010343928180197423427655706613938817855005758580000844093014587953398084987468375653325719700080026526539646407524609819804639143036727108275183695721040217621181968504457459178876569091884090686762208984342756838589644953958253342447015938104320426483175424183217763577686317742717749047739049175498275970585015827488260701912157853446894835473450724586811567147031200423149092628668896528335419877571102985998737866933194582335651338981827852036766220569475041371479101167891477856155538347716752097132694892991780960554703073519202622982730900815966599300371995815073969554197308053702500349630990344449570805958341024817173310554658564029247455337537457916498709460239462506679864523865962061147378007839677321221507284506300211326186990791614516096436288794728651057580877885011560823118927674284563382858282087169026028386636028574637268037099977873338238463160260597803759463396049118603810605276500044652439868266285485168000741116960158554806949895976152850214258511293284075330579217268986114142543786186869437019569574548163933906172260573574828148938484609616398654926367427631965384648561884061369738109374135299285852910973894010934740051054258715700440162087848904446526103973682179143797857180598217590067426728825004239821251184905475373370384102754982540030294865119726521569064221045155223739096931363821657975002777713522762536230147430100782633117171537052882847702492474189615929378313568880276628464801522006035807592746064662089396056699570168984895020987544586484751496628480390132449706618264078328542155775278427705003252348995841921239545358267966620587247100099567127240304997170279562592833084686212584026924505396766862427756074955539434542446706735562715445543702157175893929558385963007447144368576552003925204896313022165442535098684334512027039339572269105245747919662026596192201663368670264418905562161322223083834598840621879864899149704628240797158459222045723838471816632857842974046511795552820053749001852310832318028650829840134796944514263804243839573329147073414828965096230515077067211076677336756192389051674274607734305799988749686515983691910948209076766545201154213290066856064326382573799025970135473922230499285990611990820414714493332561245918720141117074850406974376641666460848927904373214470450258605225614490099320664249462872724796425068127906875668929429503972473271666964854962910800858462335833629847596153920414234326886178070846170023703827387092698780996684908131798814191336957693429783407431302956471523097098674021942994609084250262494251891643945925580755774341957189489660661437401371800442140311964994701994852043528867623103132321411734083910676314973094289050939071187450062093734263967886803071408284741319798289203561058774834972581778990197397637661065478256565803524376215226733531369794138822716563408774838340762928887594020339953898148266171178991054050196576137324380943140047495994415260683811330067117155212065083394937191022128889536830440151324737355018697491451700991569701355386240873091031952464128435950737629855192448511629854165485354133474915633827393338479493028643333051351365937629348506080444789686957639099193182555250563239566466562932849478161072638813548851797667392006970872901089804726447340465314659387629107991215650654992054859393847378576311620995236311312734051601612975889830235528331683182458735248747682469435056676315346061818926420314589049398549127246518998299419567321566490527991261795821473444898546881014617133371457574039997192318530734154595738502562409901988800476881642043121412926351550959089930161683299583157501359914564773072734354412850129815461077460515949036079415723901650237820205449163012506914829473227246662906809169060408802814596897414301594759033383681514510998790410979616691356659627126495368640701811952936861294005622648468001032989469422473538241088796932751819621478457005087194732407825881614255632114145711435996324926483725541126723904049120892306739905919809849420495485873302159488863403964175982238727884393223459450228556797568774775084666046181930677918778878693063602229535404277608959426375826361409663819276958360322172009400667532725732948043778741693193156364535285213156923810586970312300487613559383001678752607411512233308511078353488635965177283916024108329067620533042803891245311263785577775883033189598434936813371091388568174144654898685712616844893842697208826446389818537910947717590550489782226459393067992959276810586794097561015052612524179433680462973469209451796877817433790432484768772045838108698499204192237417617443286808100203801365407070322052086639384995907217571805337238688047750968038449033360123804958866258796526844075730227795013600568318304757344225666452039893705006197676806001048800194074494801756145367411952342451050922133867377862150394290623925415604362518916466332560343867249930806774394365171007910614462208374170305710535806320033628184963629372638767380445220847295246360243097186016095600888323537645511451377933427826569296973357351108151739105139268281265888865386318554892693837539311740242567309266629040283785190820024856844031864349878897614757602190691457352450975575236099323306527327586104582696290448383820612198870867982430886990015567615214909439401903968273925997005943229313550530135583118850455277417720234768440643314970730727528716056431207574323265040625392786651225873098626134429500837576093008869983129959388775751083259519449912645378544797642567096366305647020872267489425886373317841278178190057481072736585793140763506307273116065529645607591729106094183653634626647316977369581207952357874942792242183658387528775055823004723146409945714613430854166078138476154391832185403421275336562545691399073852872113663485156731266308579377253476987074624210253207767412246957910081812967967295324646878339780438675205791289285240831383496950430435581622209807737751790229942450404392127596613487376351621578679162952469211087334290376724200438893288044248006291921879258023904601877053531970770605836138804282241467649211007660422033889536042755931054722142478343405076790547035619244711085125491704378410841419551822071817159673232369619311710299094355473649192098665473328279612418573849752623876202814408427328182554469724704787001703512625364500106152343565216471746242498533193128404627686090312604819958677394873131211654179835902966440069814266710481281315613794948835537896230971014902205449089088804643735370114159355653154744245195566919880929255030126691031279541189927869522557190979184836607095979392166751375548974246035926947497561346836887045779675843501091823166237576399910551655003324335190191520185999745772405812893647628609246269986312254002298665930493656944983114762153698362603457414093308761158406059433107594717405540033227880674780247646979746772359184549474595348275923105048902481582999870411705296548671409566989443427851502238879696312202395562407736086393048487078184256460522294000312023183714734758666777470349779904983144373461824747328889617610195810377992689003844363823155058904730614408006465599087681250215020772308245387805358542390121130899753974934045006946699660847557671777127199188189114389206601953104032474762110508625543807142818570920971985601731626248371360562425720565211972017846430713433431095345780361374456879375568889352259955998023833285271882461495030122712310770971243445591487433685037711386277101319191153815335629576324383447577022805387107507897413934981979374914432306513739160852754672712847126850146933770428485254198795578599481096432850848014514894229115311724912276093405091790596350725686441960100361045510618951679064764682569331875064212193361360601331050910359669202704503364588325954483380469857139565465429378713255032816878345916212286564704773193899504549085764688574613330505105317028572687972677434428476037363433510952227405831269222047992145467969876236547450901159042301222521616881212486860087280634493549290505059399085137908895337884127337266166280919101789864566184876117272655461159324806687912074805516656762407547844238835666955226381014685927749711291202155471036871588301719434228139921464369025545974022216079419432269633844786269968488416044352352264720329954622579480128471398589361182719299035408379273067657236473363954860029816260185700702085890082038900988483547259115748567530962962201077912793540773485364836136161335373135548132021628660177837348966610411175945142387076730789288598126571563005984976231111946586522861761423764316717573949054048882838144878029375482419559084054991501064928841988703508467650537761212639655447374024592187510903899902939173467720640518404613045628398791853130587203247943024737316113701272373091430344499845391291979531569939919334386535073144326247757085872732819771423893339291152436969902284084245395716267456295639973919789903267143229863961534925122933540516287386542901034538550487758015631100943736223688814609725382517813565512790188082904994371370605607242301360230962518995711886138166403100048145722118569848072484685025908667463754788612140891900677691053058783919915083714536378845533862403172820478088090407818044527383792234287952066899150825071031691104145478518500664856531098755566708444577629309149717098426730240738380452906425007028215317834145980346706300903934411302383189430114678797118714703713074419304337200603538645871355949913446886450037247769139383536268406827295619738435342330813510274785698617046559809073616920783401474381467905469620422685926330032464387521558537149887401745129647730432960763695429716434262090658980305423620428785854942970411570743850453264021156048269601918448328851930219337087852473252978502002406018760051552841374716164598745038097668437140090954273973104870850604115509475129883362098905708496245613209863198606535054008931477373730864432634140090915542044258504577713094639687692154322109763939339533421270183797039199799657551228249374848810274511045316024222162615368808154156118595648088594920592162917120474383101771793148977879299629664543265927390570805318060997741831911046802662228582767912194347531488006251377907557318968099040009621304548098908153954798301500990057511683010801043327151823973130396586925181664057244332787880135378470958643477247486943438025313524277147328200403891383202742485910833468942071190407908127597458982617684579893644608497779113591159002892594101708104427100370092643247923780986727818422253162187839637610521425977547326596082560414627747581215053236224628404246530349327278168115463802135780491136792842722981891067408848716085615573264008610227466021584186036823827226572898586131328710008029562982871958313125046700893889629065306830450759401926262213358558476636770746505860270469836525068074361552580258119471194234362373409961003229154147227526602105826971041943997785183758325686114764786849615056974382429248989426840015860677015895880006525015203207766496402691850545001217842869980004620090990876815361039290716806230706777998053210756669266522578054804475102555229396150509039587632393400148112989393069091614232652033459895085300390399880114326664750567558781573555139847632918931363235803398503305700278155630029795706917588336320173757965341369040933485010042502601394848992800663681592633070469546859348569097882000098788746808445649461180762802510780267381178436619542386255691263667228383192584152310008975126202021121390653912356647867283260667372409446209542908084785348673564048899978491201875218119474500089997372659090219967230832850496906009955806213443730625036487805173261942822215608994849064297677380449251848204919064554328627698137267363010254420486002753880191284331157069865041932004107555863053441102698049259707209379866783184946639442928962978355217830577672448715937790552248857514127624553451050088835878713619300633683891562370634286399659973463329595650160888651297554973722818419989035876100100636165944420077969712724946538762869440287358394684892193755652466577271017931973713609015304598756309280931601525183279268922203540306010570694597304053012186150475890044003859644113537322925256041951491320770194211912152705747133496915470043402881554907834491663800391189565183032349246746070835589595391455702834999776346777234319645022433006528221591486509029541014637157384260516316586336354696352825833531649116819887043433026519676931847414768896718692852258929491669161890499234860231147812624625675824956573261350182252322787342821702938802333307586594800640602449014887467421389170348976857646049685897207822919770579606598545580347654265412586006791465393151139791848518346315970823028414751695342271522344137876975489418728314144409244661860021017636089202845248877308839869984081881378168384274450454214091718583867973398632340346787140292243822150156573936718638956014854081071822348612464251711482785956554533001751229068432605955993668803579177817181850630083101893716577496018683625849906437494210587209578808601914432946744354475477083895534781796604479748363085027819188298450261388626258118949973807310562373693395816263825910972792792956669155840493671177584774713297372842063161599686538038042283131166164899845885976752173810761510451896550546283597187249346797126530484686999252991878358876492002173327950044296151596362775489360727212419701067484808400949993234929902575309960760150803035945924486411084872878154098360434461655304146134744418747467170167432166842849825448278498569306470612115803324309202335887087854586653944639047736729851394466618631584103102950695973223938109919858614469917092415292565305251899577226471727409307807749479089633954773377840072034961345874213196274021103742047786777406972142304994906261652317005465236038854016856378326318267979546471267948759607025893075261564406364827175816385367089559497652023003880958259883614478687834568781678745472367773236178460982123672289549203128416178452242476833837973635255654032570595379993393992900898085930541778043026526912128344147601696151725171344737362750023237325595672790636507158770225892491705548175382664770686504973184874283933145866115909246785150875394780949809727555048379164312355614254183195417189874452397864560409112389020485232870596495793222765931055080134829320090070936628559943429822581185973737724653185126776218407379898764928613751929991079284229321905137530691904707435356713036220131869581801439358346051435580772827859871528895372298060937561339401107877789366285730264385848790521626225760965768107022092077448444860742720019209452984195871643629799701712165510025072041894137555688493595623958019442826879802726147635454196269748826890022114620175496007453400119249919565688509049354750240919201108743007556052280183429226726900172612794387998800723488362159692510235718515941623476175076515147547525867775334855141566073334369248115903530670605556686747658372264867796848333077694785774519395756191601471003808486446980843047041574379623245891913290566829694733798456000687737874728241294031537414898648192760394391279750210519965913638390417875384100611558961584366292152866300078413014231193598934928393426899155723002256248630225179751108711421545629359527574863380657464317164005194046470670974453485187917422265076716098760949464683436134108048286462656686189051542187689988237466417563762410528863356947629014985467635759454793152448067571856738464633209430257719450976145030807271963991195434909797014589268456181113604939557585248870920564576772308145222731105622536986625822609753475921670156507587972450292721630950963293505383130858732511810785362153078224899996025625558671895380963273419457709712947689244932704606081768860769283030714801909707348412379397659594082862186083973905699916805794898158900757888758046030965349689749150366420075740644750090615645241047409184333042092827800629746899669940114645820266253477300045247799172075235777567344699190843930081237196950081810643809391220070355216035429516532832921814460720353119763404076095022004110943194935167054642443277773236346872309976782156365784186561401680625559961867254629279859272871633095436712984326888058823558582742748838705019874637951996500687582952421569170936448892206673723543897443849929892266331583110075360586263631776926300851398547648728293367401293878676018114867694564435316193502962300885215677483821565090656892429820176153515606646508699310130514172285417725628019410503083030535472521916290310437738802851601315958805804139271417445152332807899651735513094174084218572541055655600038617418445574292615076068208894397563318984464539584409435987914816759168143288467125644871512765232044754449093850006736411753376005539540205141912435974551523556393781119797819226285133237717364076830610251473420823095551456480882163053987539533609727526668829293680051709679514908063632907144001159438321944174333922012151959828941938224951559124217186019492052364213792442535455145683660031264113153663920596540056112685139226945145855638249604095457819701582189052610066792373238915514648325102279372078342695204646958729679313694556339542664832523967660842907084230896499864247222798662026297735621285841012189853250029712542897043765490079965927542877445515480475271438471398400721477446866903127614278027930504669770658570861947381506931225373622410030463309950596126298466137032745980849572572723243926131637689423270069966091169250386509335281245997985484829362813559371373848531291296255503795786951869787191972338502192177066816883968275825905459114967641983301415266250616348651477117891809393735845701232907487230055829340688897679001114195358020955377061383168447055889737093965706433643175895379057865587043288711489070805221024604905058270788951410329031651885979518157739535201553072239213510854397171204698356401759943908248691403807406207688666230056932433225477648616352818980414802226871641907770434882275920662093932847545205482589318276704799455693590518457979867860375822987747878866277895608940212909621396110597809746890988683911690766755176146604069138292753661817291539222251211756604680639553085005608317859387278064055189909071118317641341316569481181959733593177084642960314488602764719470833560257426615990155163977494754670739713814085002532578697372635426796396228730582492350529870889671369460718876713700392594952021614019110242888544794758610920890706642784578031715001429614333732566063919310983325245831792132289674492098310336384123031758876299855565389570649824911215601713707808413479208513016486787230294577920443774343352714511886792909976464454975938084633240311097886663133728703652372624101135979083593658113952454104771395389217641616550599106370276111069731507554793889449783726821406486041869927962960999022301067356326723633111242582251157751392519465273265007394311266267399003706379789484509692571731240148363860942293845545109043303298845996063666928605810782801554233533230840249030360129436255803740434551610051936803335852212314500777725131217760239729391463238392022363308476079107802223263548883411860606778541212783266479930323949310318017874357226493364553630301887748486359058262551706943878194751932559213488488481737167933958639951967146942163732510921196011751525131549319205967296849519851065968498318800563082169754826943299103801465693911979193267875541621750062794833581185337917077605022882287792729257833272531212899960024060757212884072255862447974770926908405071570583711061793580909918862112813156990323112234091459132342545265714566726509024386290690173677497507318428467830122625437953988348224675445627503884439432464803468172574507634814755214469386440492515739182473199596108318206217549823520982952157037771874220365027340944462256646809296965724545304377066265771666179686579961689797036046254973092424778926205247686931023500130232157643793308408516141298540186449484135832948110762351240920253892155765031019717094704106298127440673670150089834121553828442776523473167594869960716056589597765731205704766760547036030617385777720263504816859233093756755099762980836034068526449198769937493711267005535937725970252605858428558127137821846080295712053771376628290366374405545268147732543083221480240327994088092615076441848058774696754281300938058723520239490338257115410813895835208591295013129046290463722216787697646454596055350478984842061043227647805536191897074537378450621274426436583157336502372457265578350944097312772627989077660517544336979976382342509122807124369720119325692460103095079131823917398113871153278548488963427006986272256199915301274957334760351958428415263868043295556850638752543417604670618380535741848521739224515369624030343267983045981895176810055776340315310222221367618574440775269634195814660561729448322412615635353725659438201090891115512406649409834096176520437890368056778667979367581322031705369684205512699199996800977915132746340486245063573476477214656518574916359394433116815177211668844020572559595785668907352965662944458253989392951842194296013016010765406697355879344768120354339689356994907492596076500041428665896448178334201164144152572846031982469229320859558327861324246266052306175626817864042560901290797481812228072871559836948955102057487363493367982509610413380929747596821981645681162803282940373760968447044709115483597099106218900920530916726184357446270154742809781543110109572464410782128965079526658113803339191350959368138784665071246446630755792345910609849293200779424340346765981855244339109891361355476564429296630055495091636985065401109065671163351174207214804127016776459555459936425949715122627301541006766435638584466154413976407867204163928581373566764861955840620277540039201568652258115709426254785490910590534191498428099300089227227305020775953686051190401853064168071580872549564723645983346454350761436672145162886551734301537773906302228809672505415122563158656080192634887563838397457899991870392378134322026692263987809023718100094684020621020728645173276876238250573663525957204956330559525138062652005764925999122639813817297720655240998666808992807573009564428208857820225665410466590972046997839667158560043346471977894355204430161134400075921467016588038625649007363692730325282265974134103074823657887910153693611794583918849291876147958119882563166857352870028480014457501520785618706098778586449589819214666481821977999207598114892780882738954986270804202724004454868959098997816987109736799364294844660880733134818363627876653751019918472578267992908617618138297677658857727228990526266159538955534647284657971298664606992181407666341330272848142271280190472128342545605522722337418667879328735905781948509626129315440028375358523562330839520767183008193657249826454524984887611569135787455279678739227482126077261964213807716187115022910062637856768070946567616208031196432314112593003378749848005752052456472557221601879585729571049958184970262009973037243251290024231373508917491607805278482805309043536611393325435621066549512477326128934775145585317872774973419589843186176760895340748275722098610413962571600951210990443457115188140340227149726754118776803097231199205068258204377117792091576419744162172534553037469542844645609205612810796083174545907854654743077857058521841552613302528242541423504315988670435800557269198344862943998911704247684176913396954930274025597160328673124306908986096862030906285149601622973739217442552413665418639235264765880703293954432472807682907882189124729287335204337593974002211501254997712625401620866156496763324807916484370484559496283181263668986122510295843558383554454773951084204473946492859464058767264883540363042972697780453225931070897573891085652064790556468673364262266470124202613684983216741215739351970004560517671970166965230866792003051403008215122562995871553293137014119517067505400183824652450904523056589932653077500079072099560212904738568158345507614861249952662631400453343182678806984316688466529822069616757044468322740877830602306981523191336154306283112628163507494998373607875727325172849424089717429975467846598097938287929464351653756560964474374853015073185864017603046117318170307269238528425960759727483974734442983340165047957572438138444688321119318101839740678044136252216600420315840903540576371999916476844731438392208475555163174225547610550706948532713130814439083596964050729575531214511327172156016165284671263288314010197660556491661744995009761922120915220802496048890443387436786537961842507970908539298685393781300318556933392045343204941437078507658159673031646785912566254712513898320746826341571158433522228302565908853791223909797139177862803659730934405692305847652719085168850447501844600568537143915972239631142328592552994029023744370629535965983008902853543033345143415013790519670614747853005116130235310434521100860064031756966135675222287822667536739674782261309287090484030732420288642794340711670746561769148919562411900166830551960631704144159453176876550213980920141582771692415767539399783888951534229757364535478484400325566797383122273144076345067153441324169640716547948495253077562201858006286090399094381300582342080708611593720682397619348096705227898000791957678789912411006621276461685252762871684921977015590262108597846870517018200191424697000241418391839685633990476286252842230199959619573571476142157900184848365043020411068199150075900143956566082254273903822655126717011407314883323854103549898648338594931108322516709350655488001501965032758722920684217799006842520699779227731499344212521960811020337282960746455687578555522263591902584393651569486956393422680895029750695055788945687135809575214268000635523247884736543552793087032452767258239054182954853529801908024602819402737717099414288457447654656164737593542684734163653610498654640923086427594009207161764134047424395807374759537460844381484592082823892356206868376823266437835211914452357399238351134664588607381969105071878208353993458972728673263715282364156615453615749203750271407480405730234052174138675453808606827533126302225730663544784363854632786581507814163537831085617787424345296362237544992700921015088863149729776479176253607228515417077895689877050859518585698533020946689280534210483677491220510781593414329242140269703712622902437907276181634758393526395268535202033457421323371289733845043136389554170933538762631928132437184695613077116906256097132232735861344941554583269321810266561690501888425947432405922003409305892500786962867307611877082740740782965531535934781956767936680977126553973693512738207918138693467910096196467105726438457270190803061394222180181402790531497607737587239819530572519802088689552271576773631453763185906733270210899114757383269576463098813765671452320570706464529066570901675071717138389940430688654819715565160798977349357819529055846640010383469974024909455767529866569465181322696687444547161548011403087797235637172435148340484303542544537125567986357286711145397209835328464066146478042358203814566763338090183608485944352093847517227024894251833939046250604566150216790537622527733348205081066644250858553132689446927269813068291744789020065687581651885040689063136303832778361546051613945417581528104520916997117118888789109278902447374994653660652206462750606800026917636128532564762849252358013057111402699020629539091255643229798061695098036345641029737333093726995103824658952606101501030091024275888239226053844220938153843569953049952107122333621190569683330712233214921878098463766502207161781159781770912901444309543803129547044420162581455185930468291427038649324261423525117006601654532933161795532938426563506995182779622409942991176748222930250962804818892543267257945904721622215909694511745186027601218872921132879557266018256252060620486594992194158662858981696493333493906917976391270366268374144987898044786582558475557370686966172003044056768416866725346019970402178809144870067701256367014144810883880537199199670587248901112497460109846796339691423524818707614359624566036642152900884056160021028600528754162667183643451740380042721415277673264813296085648268179683938387624378587658965756885208716605463305640884449843540699403967362443217959260745357395861940525894625413321674236079379989632294086134265993067465553189467163403393744830138429533388590817311486577835213369012360753474775714292349386357900341144786357332889945311971473488830421514502756225792922815137543633816392631591782249458698977933247603889396267413773540549233040039973982596220779199166173862297290382988267835372713107407254368465146466221933195042464664535358605752376905382232237266935048710580946154603006517189934364191416185108703266190372153105934071313213774930294464862115240780590497644095594799354530804859820333112001329796399560834928568639811068335089929258646287259181281845477453303475366384491711575298070098512350404705258772398144960612994470177059703085868174083159166336845822495310984464121414235217121930074714917356341438944595952886852296662066106843816665785315481035941369073537937313823672661548985297588752774078756857564027217597469226337820840711242164983782546232759966697800496704642962566101671470889411732791791144598348094778953708287191876379483903024800409365969534419319093113431511953381111887193083972673117760782092348062247412682758144606017795136348833400487208203503610429568339323481619602398614426411490275983860601635300380248274802964919960785436296541764907249137855563530211425555746055546606303793880407439827587996538154299946975670724787470730424885880663180888821308090963165852447985588597267779150246162168075023304661120921348227637377607888222292631101153938050146606278205129001956121051989789784914369201200143027638194849367666701998214053213307789924383144501464474660540367974677969580817873132353125846017300853920502548514747793521723864396857237718739409373092443667618242805664906002317606689877591669039764913321513555965243512114328490171785261273656081823410383582297022639654374732855970848424305157260485826011060047349869627104829879984576878801044841296795307315743032286573216944129322731413650824248791496301368931487958053286878681260118565761583345783344947965912555853905947956918291534816100974797238667698502470507692552486691415061504861395692267062179873618063676479943789416540966927199733897321047980039669456443914469360377379640419573799450099371206303641901876673106440249118278752326096507271060879013051133088477581649815114345831276296931643120045714514334791238989403514424712206751289940318657816163690503907227696409966176313868545657223155710689300068323838282137638744105375260490780455113026273694894030167146893417418733209280191693439191173683467743723702171752674081694885666973963824534889394928966094862794424805571051395102520767689784415335466058647807161190441716110711439538963386413014872395223081782500505365085055406288419920677134139455386374360586233144490108105528899804223034259666585876355736934700079426847081348270774341074467067680099055407129845782528836991193224696793982626452330088957545519210178484653875650148434905500208656380816224974745269725074888110664200625544184668917375799406869102395392538702345456770717570479263248237567204843702530537276310463372627005335223863691202757280014791360442713792468944139170605316745728486734162747317176589906543604800831119271980081920405668963859914055314629299622037135905406149586948389365744851370544295646229513290698640196626979018928036589197785665294833135111587413893391282436976125547875578119107361149231634263780488079645339346733948618479334977574818538043683984101716548603075759856675682491094001591135141255056182641236453840121419269207540124959041392659168577979666223790020062026980617823839895960491787243439031200908690949850270295165257873187478490137231863132855212578981097393671040471764778532489828615561682611998623684598203445499783563800604549333965072529437315266284323164400942771930943454945096497304553026998354935448725875761491208551394786755976287274353685762024959074928964038624932089326270600421441478034099741071097919090978551429725062378796568426306311183217496089732169173934483934615420415298154427746978285609735449748662105615854987575639317901390251020203205631451959596085859485223974821033044266796096148826031524841758282603439001585975032560414447335659365086936750148150439298574455269143968522988032519478822010587709617910073669214875870294249626829375870603534707702973468299038457093307112842774794713432683122133945908574855761004480310032079416203780395855162198799581653225322325752498167562426304061493895288747983990179583698229155321020472195298155611014728355922429771261283789536577214929155817089894640554229299524011428513505245136037746870513932349606365861065703431717185156596081393856739058198478867767725200173450624962718353075083586776955911462125816464632415098376007201653201800306339584441327436156174080036307537769763989344793583457007812921998442158380589629867139833438607614331645273013038816320567480933318953320359313379516027597579708849844986370318847914206240629622695365130779706607132140200922888653807123413063914869533899131752557036919687888464398243483412793964317362750079676481952885167911416016820272974156502211207654771665261876901932820829222577941418549001384798544580296447053496308076703296145646065798042581689091501936999847874104017932649209225742335959776534626955264312188621716646995558403865810506723885275481386470988615197217974718893429526898108806131171382418434965594600347888382013811614313642117151315219858627394918340949580199534484411217540468114028532972406680214942511315446765972949911441037797250621651013058333490009878029693058535424275667225016291449008732447267804183711233386962966270078806451491621157168645208462170853531341789046619028133707970562987107918491878830364146269253244765200189224956944769910705260191365755699266489111818574261919139238471002028369932985694158631388356556606216882686495685748774523428641586230367137732469512848240387497087623555722013143019478211890706129189584012420757074315104242147469280546392461381895785886889064348684474721938745856085183750533033841292056573364863975972164383989980900866995038423721642650014687235373260556018324216557380428505971998420245912213385568702890107421114591587660658329919932900406101704498144138370730712164362715153456497186573669317745157665724701041512065089969303824304103575706586906380801219270524906805227489961945380601145603641040895716975468391494238111226939565569720877659011837853310017073364142643931408103776704334769072509047941902325601000593179871038743361912835693319809249971706924125308941803132764527418628199546754999762971671722595771300044631683870262963077246141708422521571862400779061559172596023882713841374205351272984638894699611648103556730363405736122372461709314545309424082827146922004499679979128988066746615005768028000410209233450214192815709704398007672753215904562573634331837766636435026058800742546991505674847850638854634426455902259759550895820326708766265790595983030658936021973706039424201581393837834834829156543560821252635563726276235648368069585096062089021498289161166803037199384010634515540335621264513876462120988391880607637172876969461212655955443931553507634103587290724676631412700644564585501197341922354630221008526859671973210113014637152068220450413670225778443617187473272913408227471497713495760477974628821257223758836977819090531500805575067085026481141979529686034220269206476859691763943658553253575061093184521331075937342502148201440043285380515002721449731347974787671117510272298989834968685085155442490609704926080905033590361893092594757675612706525675935087301672349586779697955985762336503203450251050025810823237720923482963375780980456326759553271818888471323898723934247128403518206520284341896045309214634443950003006354297673530430394295193917975479168106440221476673846075639424493323673022162130989155272286931497768402426624693067118172692976788077477296813479849276604578091762648611106025582237743530263490389871330602600459468934209805513999860170279520708135848892987296026502133465860866748810271002434343754647526365573944933011457495719352474649659716784079615021169928586012844656176725768795789402149664787063449638444272001604156027937599808819746969021715913629116061481569308292134559926308690164607208966827503342188091782078868451036822288593645060518512673126860891745128248603807485185009209712716559005100928635009645439831336014102424255486246933249007105217548803393541676807811379341822783316402746341482875060271855928421166948727906896952689473561368637200922719921328689461961149044189983736391202296893800084944752823094417511379142400163399970683318858793815972755789975785988369238962847992693126571489781296596323409135919728318643754119641048480468769155055719861490215334663675835692596092412004083280063553693629787679274641738819871857150519552877738989086475287293297280126732667127662596947512041126623492663357913494366030863617713622882941111000818516674147089495808890906469499657964609845181737784608335011910538867215427381642403800034769686284986149185244723102568579171745596300911058868819042736493600428277773118987462084751566565314523381604840736620787826102929279318174285688899958532184289882691709987093849804581810899912922321965567948904629917278633028859163607194024253582989224516822126200755503340871427355293044083473175936921378795200216275425916145508631890953322038349943441468047079868945448274774705470299880569897047746505289646571589719615647139968926885794370669928655289853874432588715392760904341822954197645771095386900800090823722398050608709168753222258453590829528750826394079032067153715745943390219270286339155708398672427969424303325534747897191389666575099724670872520475875667699260821692201974197067857820343974077821351596335716006691188839270097298168260020777131965817456710957687406220886005909212875318969772977376516153523090189753823581623352609526437436854647659012705742117277428561733239610638711355906201414150207155109045298343500449488621879237159111325339868327701812601344782670971501578830221628847914536766738367378535692262596777858148248237833480413938219539682015400311515275109892824608573001330678734051123818378683623950271220518282489117537945744755127963611467109218607016389098157753350841633145450717558809866969307591551295892379757215305277799174512217110730367194192723524826362971495175544268382546014991894907524555149596160236287131592144193775943781771257374944836989145056021295180050527375429199194051634577059309573939086413303479112161459320223795133468662755967145678798599475181281169317100683717975490337921463861499919962693886995518107493982577824773067249534605803695194988250490492132727483785376615938874696641189901114969440320986404618227283958688209767308859990184042176329666484013941959204029951842555768677326903988660996452132746084628456446058159337818490404532852221497679404673243851849584090117515932312179899353884028789972290091164038870576179303393799891083825184633925370289431635765696050849851948020615522973193762316117246380019409617186419050747430844387750198138499476724840961745731713298063066535035010212410115884126320257333119732924737101573968798231771458010082015810585903589700388704029167694843045216661046881301162395444641692813500280968498852137073435203476137569405727512560642434190855692117436423261689640709128732663586332384389628696711105602584376908582516144343883590196300077041496647147814643603783498852989593898314280152865592688627782014638669688671889502080917094271478151622964739063271273162300983075284060693454496228886747040203725879040779246024825536513977028972092419744706610823243029253648958892170028239260821620289530081932049678406009784179409334802374924883828119422705738134162784542180183257251233544473744430982870344709278169278576933590714690683121917461079661207187108169661808755862826181149960271486830466080847071175859891892515550168549856657078192110776268565253932368640585916522735344949454031495278366482231507634792028524467437516354361503036626591146496930190770613099604763366295605738747514992310846212612187633385347555521561885414109578950666824030372157292009684204792128413971260012514691899617205233275614573288934470478429443758063227463988689735256878536586633754240416443060190717187728060738378599000247093747700009207244853155874283863271661149201232638119005076325099548993128605387830467864853239487616552636061068071451477472212186097678805753810082944660225178082186207059194986233015009087207529762471295665537453287998174198640700136042781309335154458950337403603609340746848055348483930921017945616203451894793160788649281075235089887412913253172767815603561191917888045784636983087601431854529389478412156253891420573282633016190871282771322723676086069188763243559409600346691585854310724010488531686350577252150951797833950425810342188638931937910689151970632706695900223771157579489188897727623883464462142256270136490282590429173023548693009186255455481440597908946252774595500869040704336385591563946804877690206407152864764260390918072779926044860710472108380809206608092597882308057287049287626079000803764965360291011876587427341607830329206988269122547079230223634258315455329401008757439760389342629401196141139454582331588630641781668078475112241986859920098838761523601353973042615315996867039888562783226096158771911499953157897117744483908011513200659744519858020874120890667191292744354166871015350000549540248515515762936005368717037955975268856676757134457534328047433957753810790339618895739533980480945385160120032357551664809174953488856051665355746157175166580905064529149585102830519203381333753025571832513488497041095207200949851052685431667565761460506162903084972555518724346409702532747585539797965198064892670255691921639866147717787590370133617516208886056626119935561837170895847691955896419603485397793672466855210100266440070666479215551300058786158932379632673763141120096034576061719612917519613164180536741726290278092259886293748600376879470165353497723151037393541793606651077390314060715203239510242413696853281350231877818907054105321909061519240875833359775800027362195914692822457305426412552104722106731319153525028032857921122299452634809902664179757525432530416873881296413860244879394416176774884021089455410413953049809329572110949003991762636322623917831021161856815520330128319593851574590910802678518477298251328621188067394326763590801451985236318442224157488506427078480709953192543420771720251835852855025124313794671724376885252745772831016167037330180447933843553815244467226296737013537778094931782639801448801436247179187097411292618293554485765059618228535909171147754613721652936402835429769021323158463456514862741393818996895030002648266364961273043014215365686099209382853918460426964224447267172130740506924667087249487747673951037902584278839991571600640507659627022569289682106608705225609892406883465555615170193314117808155763103893174460472384390672004360108445926915760887826487046679342742740287371752833243676362407452282369113327534708295010727607856547750859470035993248788291672581241295116809536534614512200026496536114413522189473839388087841138217028466072047956654441242754770406029156716573707518246159610872102563040720193541280779797489636345361205241576147448195713043271593542105188151357919561090411504993498616010712547196858998939123331982608081613489080119464333348635268881422853453773981317598525139252110618680978722101277185658629702606927948666211944701473026296613947925231204202489112046928756341123385093360785271834954932572406949549575131386888518168799672420773970188239816396422360134447219342555229121995460578821384860920448357003608250285428868854624086652961766681074765913196715037338940167968854756376928484670927219126386994210202072969110921111258728520758953924025658956352221377337063105425403356536843400491990946985073797809115180599126391741543941523816087037383674850440092817149035279330312876604968938825459107738796676970362222488550609993395516278877728618149735962039652269861295303731621722057683297425356037769713031867242438711929891718086291032729194752956406405915198337635850565677698737913918308298038520676965989593071190526253938362792887565753798444630679793689553223596180728156455841711891028031203954602435727641829071507897108550033404635260206511357038977828194156267660914996500598804525795058086005958693496758368953776537599922696659868532559156818706688526667667842294189116681797362487997005462298003504823625327107783768871540811820911901351485951944950682717448890480787111499004325481714237035430214238225767636483176956398700233378173843104398974508628661435096509898128388643598129233640244720051481911914419519505272093377021381452434592702435379658549809320960340172367270833079844860819663113901907029108382481952684799405078897709274766146132680549139910570606801892235477533201960804543894872802520696949866075348348745850974537566922104816834515089590692095930130083097651553929190870060508834033369062207609147830881353554726870573389397826192031809892618842214584242210190389209797383577425819610984390350447489534390018115726101396519489562410280168250881724221998348541808374692560848632367058142181966360413509662071499043965180494562630170588001216063957473333403116681204821491105830606532647046489334974936800785481095950270735798845399984618435048845556442336348643352577141706411681914915670193445561034117403881066585800422232449840013181108035369180011311141825555677030078786770517882982620783243104416218294298128129276891982078265165078275209142658652410074090776634905120661865764035046906140586071257352454839747961110187118473039234084013751418714368010445246695233250520537474116701476732950109629133460791027284291249531008497380630758393315516495639983923929580044853182448907416329021990472368136950666648980609656304004648350439655374812916478434080295365951183156878375563241531968293705653583634892593550638094628770883543837765718880369618755110496762874573593958766845945569033493118368993285745314511762817419952961827605011405139908337635639140501612413618053782194164101684408674360293760224947086237000343162742383751238265661404205574599202853903213408977180602862030471197566258683020209421622991914215176465807634188768215989788804467232373307717017732936630311634811911787451920632295778526574168840056512803932623132597450849437581331287998587021016901416419397579458651883213819731930975614331609448907618742549413205639158840875199848632084387759343481960287631607007791367952244916940480147670176306151236563896421795124220008917699751722726055184466991121203124695641878779143891075579782231788559211866603136192805042834716401710967831251509222473891913172035806540229799351815198223425271469145494964687456724689929931945004308401449478303718456086544423323779918254954217292053988461866398920340713517566527440592234907123227488462320072894558236119312518656228665471992939862317935806808764914389246614437636963711595538922674036022183652586462001729964200996922493884677143780243935326822751876903792454930897668629068911396076909145532025722644459813103598609961867159714891808204191886422658004549820932503403606113833717318859413066355515844530846543538655076149331925066860329193959347558930653710842832023866521273494100731176782205019811584502590514147183605531301671878837670586012152146252786988654952395347173055508790879707616023228942578589587978463891799961474223382123837040362364574070615030650624811325790701976620988463185386462425690308370261154911193359046779835907076621451509120179976570044251171688535259415894353239191630599992583001352748665679117675687249669381239650870328402928437845325835132757307749448803112479421383053885878030112150445708909179011490269392518013665728117145143822525986427931091235883411891881674455353612041104935794603260837982362548853808013648909400207805293165740696694367457468848456423887312796500659027414178620804560677317420914684515527177360399681125913570816839861913745168311342158623475875097307227257937642259644688920362277176176030825031008951004235106720481903998683342953358161637891766364177936085069803594076119801213909663476496548478889227931413423396511396867771570059393893508370685464895089588384843197020607035520478890444386971377349937626248142178047125673999578997817989912929301922564685693245350112806339307142687569889021483169607022792051012536091798336036495949059516885906291554622094428894735905181241725398980653584910147030114476912628608602197036051397011225103551277309055031757698206904061566875709814673499191321326668053751599122007549132019471282543246573011747055706655296048265427988953877121269907495950626996586880163725099416885174902779637145969799420840848684699284540088632160259400340164310569546881567200340422072197981213031800111678376909877516989150161735352655929801166610769404120335820304901283396456458141767491842265873875957464495255344026364843015858764461497148463490723526625687641420417496358664668279004519596362105494935411292359064536861170824433488386423263436403073556949242041834063711588514461602657115147390550015768024752812502747690927690301644721160220036604591473378861317177367313774104079880689358750448828794211491483812048191677744096596769978861211553226619479436123151541733089669789335890220966113064788009369709879203149538106916019662932853575528501578940572165592129752778333554621575362177668626586326346833261979618177498169961726456804693599976238753264102283760093490998631313934351515746211608668027339514834040715560270389249420683529659015344793387286213157119463769607804118595647755396609475715146702691191978380561133481152948432303968728785226956738071093814698654749200273065659087865681958524604962915190711560085672158370057231973315143394352650929195819210294602246740234637877106989812568182245986478999688489480071938937560805557943207801698489406040004248357775636170376380748626113910297481107254439084711517555694413322894417671276329509338593279706570232857162699694887988563699139557642075388164195820946505626679188711862997396163984800193972202783081962227905772436577751613061272031116858933513475353982971394079195083596111436488508141755120022292882679864825588938297501893745185077061602547506883995574829879233303876275599219879181440677193205422435902547479475133580553389408020653204240626276587262766321380696581230515424572557153682831758623425071432641872168250319102535983822667225556126686830500992489715073247080191583753875442381219383948955582650104914213267009725563338101247208979642267337669774906667849785644741867030470687436618471337568536109673551506762033803801600577198258989606390357237109866139255554608965652205041397760523015081896716386259401295121926789433098985178909337973747488369101843009320009456155419608832448659169071834760420096707788730142784783077704404332235467438629034896918170755870949344792682634225400214237232932715199991674289937952778988206834704138228261341221762189237609328613529176834701694094836199703899417331708926201425150848000055320384623209404754864218367947975612518536518899732307531489682309597499877970936508556420335970137970436465783422299722159943052219512805540261516916505865392160763865508866128632445030845819048386343305620601656156057810133636534428058140366455338231742404784849211280174260906396266326628483096990350189760618594637897239950558689770196483346831306037445033902587892540350978252382921321623522039656464053920161042131333072679765521539303822905423331894976688279519186390780262657443878330250214487300533422948538511258994046053353723628837706418041270291319497383020086404531286762685661464711371037125766786078665461656289073953021167156490444677645026548002406875169960656758015535239020494669182802790880403289693972236964148477287303932038867298338084464319697293890341067428675803933125363926701469817447061591266872371297120754817573200724198234740308703209445048688016563829047958160758687864573055707203151845401479040901141941503379531196581670401069989264516706017523922732278495667928780610869812578169581038884759346633741213824555929547167909316390818161553610590793347747790788160302242751091558183001469177488010291443909205939647338867636041571294823953553868005973579473398307764426937346170557236186467409894416376606059619388047853827162370971542454629829019938608230936741560443729015426762747545830054439869310431212754421249666798097265428590185061975791918812907537708907341422279093234431500961863584214572527254203752997375809021077430660939603632480405821220692303547623313364243046320286421130301088877160921398988129930737941252202479646510333988433330141012741828302456133420060656316508271546557441236222915056289976063815602053158532061240541222427309705339239992418928098451982649153620949326448743649899935918878364816785348768930314998985601110256839111591249692471460493519656545846047232551449740729735061749955903023637410457881187616999845976079789418976996851618219949144344169921146095550573229524088401101543701797748478486062625451394764876924284819494386017780618628784906030649616130611218000297431965800484924124466331729213241586020275872369293920029201072359920776731641403002031859847766195824115155569666832001215075126282240130723108253286618064666827063350975799135051220146827097947768884614214796964773718268829826357666066790637432619844861556077267433738040026645979668213962914667183451373239336169854043380255826055102825048472448905120985713401659068699640634124761634917438468199066771979065253597627340498304872208723553999097006004336816068840504359568199069674732229541841575435149481629978480709592588904744307079457793964780630443162361934433941239370366193816088100046283977552841038022232620868095384148661738928262545843166500302877025202465466701009999767650546341774446932395905763988424522231147849658322598731159608608828551231169939048382037393017178672181298314190576187239251224261184776238522686906308508739696756628756089398130792959172601201896467818269314858717383226520493735699554083649289459418241738154739086292916120108554055815377590300459793975877090452845880416458578250309376718311630920604941695751946714587175295841254467950310561107619355714482732439851715849583871856488098255650722609338789184088406862417337581173324085742927907994505251278009931282779817966957812733891263650094707969129838918415628841080251648990633474144799214929284868155461953145572755574360977270682591272897328021462681009592255329303507595744828315460630773903412785480353371373881035365871529283423008732284138545293192261694935014870139285297860052953380629541999351685257093642214142872589448586607884227217934187337386941258284316346258808038012636415043894110635367995798783985267007682748826112626909830842771196664980565609542113795771786554780650212386438957944003800241256419953246475137256794007674431396366451712311136703683365432479324869542950355067224138920125458789908451803979524921670311245331716073059414991168969504069541762713665476211996526773810064085479538056736683545191332237556852327564662382078931557500545882924207979099553367882318234429942068814990488846407961796712323130198752360207984258072566057023848644411543766625761860099321470202117028476235480710120650364751516250213047739796391200172487032542950934122593338109499833773415355756931554910842212324987248669792085891292410074300519882521230848928811290570902434172793751191498255834515234101229253579612945926677668063958481651750581977395076447773111929990843080495530435923473600485856321440844145898635937628049718947156872301588652410551410283507018106182101687693945523031942231456256681002253063685114719164030858886167620384747943598454136722487458007424518865027737341675713427102457722241592630811711821127410277981697467907881983918938462209557365639492504703575418740250223652595572612866930794732824389670226092169521083733088088722132709645947028385350064010790573914471541702542624252417383413391390336966598924500023212911221046019060603350504693475631879060130392796032625625283450238421856535486114151319287693519820631389602979634896274792946775686153691119240740491539392099247271071680907037437182479416985379687501261865512033353727113509742733477995572707994609781839260895746277875111632024581190536874928218871579321880228281603070020838002138244438275287247443456769747281225650621649349333551273840784673659401827682129961477803303384126139624753036134463559934503429180922990922096120466545166403186483939388482417579354908878316654174608193774608738754995909941878877573105024847782400941012654547527532801966543490808701193844700730379849214688308234697326797134186764791241175820107961258916697704393345101283728002067777085972343814435669470408400354299582600561697857654232039619042964076162756479144193445623637780722451013775472396574702587087829466531331394060663437743651282893265570503821662834124433525357456185929842929973123007433947039735323628208420938905079068708803928186871577715183793714802009777219223540758021172296177335751962389049393879402029443355944125192545410979160354805275051734775761618129846931351970732251520395566066577610323158074879678455128532086723737083946927746758359633509468321830911905349321909569298532804148557758196356311237413309172687234129479223826440354637663631618028754435468641075483280001508074107587216791628962912128358202027294674129129435483609339766713861755153536532545079076969622046170910882615333839404500371779741672695985005682374440345016304412612213953242838441490330084367378985380202959287217341194683918092885614419300661819045220621984359517662407821138915778765761374542915791367355415590611713660160522404366608042782864923845292005339973392598879642402959874191382620051901645013687620776624160797736367542691595283237352325194988506799965240329468108374655423183815013273462584542588141705964325454550518870045027310224671593486308063454875537666678879547373269942241461496815924187588483209358425237670710076949395086741177060907299052046492893583767138349211398957402142934147424313789719059394358035424158818101033455133691392496524845736593894743563597369296023744500034577198903246117393542752735667033108788345701724364383769118588387171420198043599488428992895203486076593172719207909799713289619961864125712813320240686046107536331374316827416533305157168929471248288050197872983480763237047213464824294352035795929610255893025424677590983676374071686746430897777883258475218715482767983969004691826875799402897239401984604015506087008513607088736804562506742543428409216418348346018540914573786672728196729447061925866747844730249405703945092548967909365210114516532768821197275070766016025050366367545131930007799681669012580558541559231386835452344800902117163051673006261758863763129888200180729821678729973045575823773313736515014256283114959945725157508129907559814080645985171989890108048203365689057548191186940540817237803627171413696811789199401433538791448996180800901436267635943090712903628396045865051994054971612597406030363096398022229952874396518142857000469503733191323753624491909952372081231259204312126219060118901724861071303613090515110502287396737528796292302322982622166865136381462362613082700833641633474607486318671497659723894691002331767875553826263775623293618012624212012800173802113590821051739897609749978060241902677837814631001297606821898003920273046507122328314896785980990999160980608239149672799952825479453145280870314075152344696626010343941872259457759259028955934430733608641364950746400872288817496449044553328779699421628620306822883545496955505297615722239150793445514742187883915042963315076174538191179115042293073133336137939788713810011235061222936496108358553422721500883267129514534148503468858233207916361161019549930089684843523258888834439028614561444970252643467428060842171378751266816493787332125083599542835053319099735708053800271144630154496860626576707516767773552169634895675190024352831819539045477567930580281402136292480174082126670831117847465860078273680107522775902564653644631912816704080288842627039813623816475449788998506517005384969823545558998876833258916660616237784081404178492254656361865311099776944583008451384853723374583198697572865661859847777088029413639677761065080476687300474186411568188612079250551027097893651675591229987981986468697685502184121716334177274320228428813743698740173147010235355418275518738304050356379009521200453594561867402592088305473061699537384406804873196682157078256374730713219597937325563351746685180742962957484208929572851936566524734690505262831564278949107818008579833572948993013378086111453440961074467609105071927902729710952830137877177195913914897663640342901974638998846332287566975091780479224818518687230928390103902044925111758746836265147386770224440407691941962549659908513692058983190492226557276578608660075785904508101552443979150610167193906828772260050016500999969778955241867665465474853646094773427492225050339084847812102542192290883704681058461578827147722916887760230822393691200143980942473429783240430030205760821926575804752988147317138070129330491936550811412844579947704411851752701538305314946356762244068838257130705327575054957124607076908983948867705266846938335094811452875275029311782973110879394884413748324317613141621427134626897942281207077404770405376765670310615662620231226223277748662046717960100875677863030091609730251412522584940550699977271024526619449847602510752368204392351914156523005340846622841741877922808078323344625523032686003151186121040707250149666653692382540164383310081141639980558896699880036564354306731394053260878428871943274229409965073325705966021578737074133049152499423338283839702515775892420999107431312688307259737101793336286477984909371383110115179076739691194131327118293556663884589133287411262003254338619113444715341837886919637357063219042308713422678990847961160534860015829233789358778171393928621343920264496376515120730886409299832869931082922487678851747145374704008680009840836312339891563360650752000337423498403523366480765308504012836543700034623381945448784542457812765354018433398415618906927906302920474385197771170430524324522123572494463372292794676904418297204179272660527213200999205557519401810516597729935085948430323560563072408547523705359394542561410630647843315693595536746010337959666095754485844483650883615641652429318002247345898158449269063724156244806283818287312062668758043327016060418458868003099262379702395238664734572872902592621970676715548003983828612669504092372736238987973151567359146212263893179039651290355049461822372218979498624037527999233421512183352076593959462959298529525323176343169497920080688009110810393005002512923244048627216117776875955668946932393417587147487407306826396498039471959521578844683539139895731917183202888718875904123188427267519296417488628339619571601730787156162795429704840635808810707253003581882253837370033587038305388769640879313710206821011076348510065618083210744405193479187875250758776236723917809569889467081080979456423081085514331539408480648804601373995532023903883291341057609384674455180937166750501189574099090064115609055383689054565200547497928081475989483207174976319598586588622005770626605299347796626577325373946319442652344602073709601208329360320810740865941942743612776588926958758278622685759644109074476928918461559633384273298841091855098977498634711881186413907227358013758480604049743550808565070920301016870691125009755261713167249157152868415848495574152684037547405040045470546010527739192136784682985893978506752089215511443987937567737557330661368133445916346256184888213966228346306308891072941566063896372937171588448650571752682281641683281425347343979243911758028945725637106811958341097080487646208205312054900016231355192155463252572950025074134808589496227023830907484479985719219637179907560230149464474438735660892950508611195754635582129869126119908744448881339912447172908823868144022374113548618536323031330951230104265226817854003920292155294652902379618467259588965572940528810487163505629055426480573818037305727867261404228434436402910342903520752732197410727553627557502195169182073675863852256190601130439606202159904267021121205416252142683730409727643909307177297900789165340483285128744544518614245026727562125287076508580058608551879359492909412811955558763077137439632358848727383093273825829114600227909219426039338463224943966435743870917940079214523640587865917289829558190555696026666231145122343884137654443250092233577728180224813984009469555477384845737109900150220588226525764619428631776850447268039181036627899655684921582249859262603965735725056251373621631101608558510299064088708612171917086806752250324055122473460667559722293109935260591008514372642004108972653872257310952159910373440421393267171106660543717266099058681998545241022750131161124570725876387426448746891562804594415895019386039439363655388526062416043843932519948184103563170962392133803673022173040104811328802418000756599532790843975169124843979442891505962093590181148107011125835613791454944240877398978580306455207183794235241186047863704850283242366492213756331766408836015635487762036104169443797899914653536218690645011576241063582429765710876289159718462651207529851972056314334296588777913228896296467360617060771488078807169029284822110597826680227928329014512022003217972339646493548705433889668021204390316039249053508216876027110212393853440243837710078795661837295041113936973679725819026369916294114756890512774778955156638964759870207681433623740880882100085129279883307186250360979376820660116302442880354672435171023450711683966702143735664059665080434293674993157185076749352858313670269540427221224886245918131404594324619110671081299048558988265946106903334836560565243873717889914036120387721878620101977991708832770528918299178109296452294082550489483642632517734646532001560331954006256156414347719534039348784470163844282573206936649554451701002032617207927814330833333446025703043830187788679532433121792328000709757331991518340024756469470285767324788322257877315065246618437071082279720063644563423521337418719254281517535654776046522951820260277036748432134708689603791662601088201720047711103464067415658734118455905920404651175793747607660454896863690807985010941085091436666810019244626950363630124070475239093905262671344147489486724792131484150708338142482775737454282908898341770854965678847923887360946583103866156460977664543435663901785179589491107438136407745727922379575856901367508300419782976501266029095372142606781646355804647312072794796172358238326999241769015697250336682849335947426827960123886619778571484846764283597093547387412757138345178239234510462735737142996238049000137557903353687593915337164529059211633349893011729204039074562016566806170287419699841281993747324844411857978004601617517280082202696642931164999104608525879122975458135404094499854831994701124049935665710803349248631349374920534015786876850088346281848944799147131505113125490161749348245099833174392588879718787050062691932057838436434766471195638008496734480758332636722885310331652611081168862026187192844092912565975867092823182959836333811429314951171340869262794081976589061411453196072335429739586509978227781486166340300635039221289850134170308077479314989008031885461130732293743737375015507495251171817310875383473537658528098840792487427505208194321158597045889667844379353267827134879795578308711820527460083795968874795248358157378772188608934032545041271105749558099835221260249798831153278798396804890441839278262243804586333829349863490692357180556716475911935947126361517303416686326115497698919674895608712288418398276304783955266755321133962742970918920382162033616927816884166053429323274425405620022650151253370265649268753201762225903631005801164873394958488142790088736054653187643509120163520162241647258548211387566578668796586927562034386431259538105116925989964404189803945796423176109989822423023547849879898450015021535160250151870557518598635691580314271658452983102515726849836343662074747993922210691013943284768546385994257656466612768520728557658607874928758972572894562079012270120346770498576798837496938161883294485335213743567191617420901432700847399599279473745423165807873508398801957378555850112557492749447719822939477775948981443135789000861956322968049777977347381441099865988986248044869222163224416315801174536778695049268973777149761889737763669912381606216129833191909307004946871002532880973794489577347099870037640617709568484162505657570037706753572885876702372948077361345336221751943487972489865599126203708448299468295924717148195629856659738396978403384863801819046159381867078080054687724932888774356864596963474215449976442277956101794895000600698672991004915198822744750358500971387731710363668851495860521516749186130723255589064212528798844650950094353771726297206660226553071969065621046869136201315097490687284617518650770092714849077136820990730509170188687311139986597013942812743702658696643899199975560930319984170898520851846518517358117084213535669332461175741981340051743869125846441057738206704708703842124288436301815267698651162487002925684221760895675505644433847329308230448738584250762203347284739392844641446350302816948656641107451519963454347677618348598103805028121044673067594736432622610053453072667537587506508814638749483283780221519053034735796310747672171223106640334120883614034356046335027922253867761840082438725950996774558107624015626843341715701013064158162767262166365083105825772353687694990445954758834558823546088778161515515052737179277817868512253591062630320716372291036068839025272025955315804141613539264618549332786735264572743603480425397377714487533469826190448491554394147354872296805771652950881130940287100435717154225152735186427606916196930948696432600934188821340319975103804350683947940473038468183001489193173913779155128485551789741879657743741062895669824073341076417556156634998978624125082799484920030217781765697195070285873779898475193754066352858513608123288039212381413242685752980325806361058103202136984696532885113079447211301883500040062367673753712324509017598241617128274491353850516570424092550059350040659612095722342701895478956131420404676786605980305057484834257438309800263711645608754365283667509041541005216099138854357582302098865175854894144138613321745838394665565299146839638829602436186223698125774617617400081991635965812038414458586337963648577348991095516749979250174925108567791134607554329857643366364933541824917562387138589753092645619280875655294721842367566466287404705663233898025752330003771054731128494436926191205953263015982969477485454927815124159014077498210524447454181108800481381443063180071916476507115959079278473504071589485046073626114459705749381758387722923778322706422074264558357963994599725768496739256969034855617034775369458118231381225933343334389264651798204026641129239574384333489316494819114936805949337557387236629480303169379599636171470474681097036526650774667750945502765851120280813460273401381264615947103914104249285561916612940110233362662646873024743176467491722005692216629130675502289416102830966709387823375567574208360546712117213264593860491587837467472304245796652954835212109433653237697570249327183243995259559453927148731742344946844171012989164634768382018614863294885987346477089982214253243623909142311654977915933186501561342302177153195550969570099671714279134515032262925308786558326616991926166254340239603218163956379593478813904497887754334332985972318171867404275945501562152482170393923345019621796602691429383552271872406941003122801237425077193312806638936503963465432464244015184045790927870483493298719124525817408485198062738897408571183378459196122614153122018036765933733154486742448332378635451933739539839754516607495278642091782500917617468571579228922164878690051731504502527870463863718564099361998948586813796895242233183271750830076187494590918433660158252783865492485063199353598158896458270445505941661532326096284204860728851282740649796992804262809600083720904879690516626549688289006879091557282081762797852101688082164932732897961595365435167602771699056808110556683954610539762104595609652905276829509143731281594202222952342630146043610474871343638991948223740744236055220869561490926303112063371003575908114969379050301153388163408844829344196434154026905966819179501641489620455380264023524550499274539050949382108844916742585110306448948898051312355186019106856933976224904998074053208759651330519322081590943287359768294429380726701772344240328426636480992667254300394954716521628816461307182355479385303508375329044170328763117290679782852530432895659582659453806145650851965561749005157915065538477192984713085056816373638331475043276754312408872554221589258205492767319084146699810717425767981200277381344835356371590183117045311920767295426955582358355992969359104520056589035733041521742599340171218647596963091656431498148156983321651889028952228554868228146216813060162739340678472784012160561102618153722244648385185341801357431352624563736242026227009780393689623070537027516150926954895724610188904968443272264892411653720384784503007874430708331390061238972668533309211949299336908961202571252805719956017744066066843452117491633991820406019650502670617926057052273860934975500912219590707768823441286754476930524799734170774047164563898155841823289046369190126043413199632982665449123226061242685871581961518544731671731899082254522836676109029233816213581307044958826931993084899750320206906407472006405190459438160764661109704273974412583392874523766537221289960205984453819307229855614212873303258273593615444393788137099960470186903267078492747146498765455158292585994673317107323395766940267282909601346990035240530080068344362712030316602324173407329797546639423060243526874540416384103032378508329874779353934063687555436827431465713776480699678524356010495347541302130334397887674345697145677857739030178819493249852855250063719495688280931437587191173478669986032915898417211280215911048921738392542690576143510361473181969585368671725339310949888291714751636937638585720400367040037890181916805715735805886968958096073941866487436456062505080477054231041702318125934538483397915650779002214246280627083366394853054583614517201567052018012648226277391125962154350713818057048110760301001873768799219213895975836468509885502422655601157491729916013003944594263796621694074127628551873790354842067602861898628991025438245922925364234696562516845868597187080902692893263406400280414091921491377660364878994640988800045693936395518930217676104148723686390208979802975998814872748070572576616703375274689478997271982324331024535498556023451710177636474086133849068525995483194743713307094248137258965706325608422313558678193409591298137007880027009433145740271390472365536094657488807271749322204663648635872314451049611061879015254406424638491971960938696055289791729697789159778087735907097034282339354801842945595545433964506404083295184298341823996401104828283019431887830351357793471966681451726737230324680440330366825281403179213591008595112430897803323491921930100251941980050568087530160808149686190983632188574778999090038383889526166738507353914536589632214706445062479629201892218282209785325149397817296028764556412922989371431181144328406160632599677731731089166931095289237810328100808427477374016575615558020351107909182575363428076019192626417350001809434176184094974709145592233551722376386217984669610628809973921413388916281506378097816494835250830028476421699351254696920436792081658586839039429551558938538840822648106424140595801894716789631879109463090403120564533110105944558155665272597425279510092223278560613621833447694254353077817334869471116975382569799588223482559523967897432094618224665176742615030529588467662679454743186289823046914697549617579981948557388670068509046377905661291482807159222291462861787333071029465157703434156114056882238801600103525711662361049512507616870743793286220028558442960877944876917956442378019806892605493743014797436600516628642365997334402498422775170512893105158147226911362334958695162650259643465991815815174390280782901263041001707400688824863001891704917108647653306999400034099400745338024319565558686128921633099215694496927119072286203221544408659348578118714269578775229567315694192809721592803461198785523189570779734392314878364481353580701646446432614378653805491917956500111176860665926443974381083281098699120445203964491002509147689868964112533476597673326939736327802697141971119177625866611911647093387119527283824343302033294264546865545882673059246287549020659293612181099867895466206509794491968394482636064937338953990681845576388718245824994852901561293033901837411405837790767688080601954459000100995679269451978373385808671151913028477710321294890338007814203495255860216013022532410292826759139353561429590950719067370739181161516296877100754623472695730343642070000704269299017499037838149982293573153753492492623418284047654626754864718007941876540789665344630509365823222183321586169350960836788617186883334201970305150538323269938991519363689129998812265712059623922777251742776886607447844929213019979475232947005840125062224777059201741770159540431094575022110377724314954756572431174665985839590191218229860685027263915052520881789349877835301508851161876172939630877354466726291910078588139941145541091789652809466738880766874936360956463866277129818422418792135575766260937770002178089256529645118018327149913582374359737698462895450441880108437154693577116671005341300707420921562993253328589800096377237733401100606528199645329006663105928169590710831051192350485639559417745314184972625642190397977507942033031750231881843410868143179996263940115232594020386998193109187145892469854448904649634578249030707829589872831373381679234428773167296673813307197931995315794709820479170919335487674875928983338046847170025910857318405564607578445742083761173389021354877485652354853777435786501058985049499372216261381901049802104638658000781487217125835107099049507871552859207001534505213655959837285440446602686935984191059772478497051408991807388187878541938645531836376504304179684305567629704726632561867875144819957894314715258937758880130116203696770752877616938111193037263482156714867892674791442947683634707087095833589201752805242206539720105046137848847076497557458577417659156494920316939931154839181969652749301845719275669524052194854189685465671886458497452719462167192354511858904727647295093344194728259344645269731978399289177818904648436482785241184582006890196453551038561108920615256355934303577842525135409007700087516033427692766195617747269420999626894892148026763753597029245278632132832609371934613177380605159417487609873092017124998659822616243836310630180703821449221002537185418320817901038640961718391531426379157170476683791352755354555682660506827607691580254053129144007580627297106674048839524360179311246462974418154705761100505263463832531156437363158169795625307524938650532866756968435339436420401997032637046529276693420846596181151742211909366033086788912412544979572809645507471435236199908973161289638610476461371010582492445029842003280937553874554746334419623588883420479262847024634758380675290912675765568096144653374879300156764236056193402481349423269066186976714333503854139661207111731854437222783164402135321117914475480266118139024104168510755612319091965286415453541094201790461524343443884047650932413679937007370086708171645599189642625240600079460259478492517282787334082816272104598600194348322164664738094074200615071615496963649571454299847879217560913689783317157255038985247912454695750645012316183437535906730597823217139878774278573850976775310027333659204549072072998935396707735786944541999048495300361314782912029073193688494534141318638661926748096927902537622449985400216885010605189042803517529460810604084406452523346126539011386537272433128655709326552928947349001914731273300652515963045832480899527686873481309919078471439897201876835797003237587912831424151054285231624639079792355558393849109292760287045688445588804633511970616591550194201447616121657116524165319322019919308028542475174442255232565611213228773878852297676879485363937099568099176859766375158836415407145597225161339339628761063769451443598523591968759990989668434759017390580175248070841833018200095131339394940442336679722273149666028353440499180205521601709766869379822015976575779291053436286313778312228662584493494729119501170496541865467153845212715435928113304146294841166824570279949442454206113753642942567147504887945210574034176767446441975188348613289383582217659490461492185409434333588732428461626745139872523288148392892708037358316432589062048155670187563395645968673344361481371599349975452891457755983101560689254561258160510679937389371822871501537248273269894596670137637113913346126587785178136578434635196712841451163814158427256471553002837827002883124088038521706686089343882527762128445787446393907660453617349513053210120504443048705481605044630997102683828678323040638280824346193362230556094862627648989131527809666424817111167066987121501259449337523228741295918092244691871798342025400959844593189974435034765282385866058977985280788948133353815321190845900266769868256212012193521495920288564551904220202655764853350080456232474571213060867753377389706464377291720113125137646170307395543827043901653744155663052619941094275101957806008628987809399034559236589218198736871755630275315993808836743202454353179432215634507362462027948029335534342657170355134824187598025785719564060419698673408110593536323168826521623866303833567209536742779490125597369383281096565701968394492946428303172267351399280688642129306753709014378146876733151084616902406856075136329949571722628461965511228422793668891631925611827570589683672459177559890381181019529602278953773787673233587531412104165930417583784354128989366002444673366506170252292238438349255729916853469511523595144770838662051249928043964971511938025543399767458000540565656443360300443081455616308604575021825567372677002507699379317060580054190279401535550596985772011897164215013390057692480806317951822225857175494214235193250618023480591759622009225839865272921561180909429711633226955411071830502307457650039465333944542167548479594040445395110839775713558267090333130536412220594173933413438101725433619981660410939355694145784026416958563426138344694711116977287672181025182541482632906832664038101921538439118940740759397648695259552940808957123107184000138528945368658150980337442968949662663891729677789413612320344951026450927772059775899773815095211858867895955067007637765890167214878098647973854622651073662242717576426276699234440008230273605188142412678727530160446386690774753757987978074425721843519349184477529789278343673935176347674784651293707014695633756519762529134033256889065651940743009251907663195315669561449861335526888689842112450383333465625775528564775167054380675655072145972139833850327173369427759891052474983448499934794467430446710760033981363890372696355795088233157258493100408584228093709402582703764800455316545600904815680224439457023026182459123562954894454662976419398640954943846241171860060883791124706380942878158532374154315222749074380354613942316030907917367935932569313547107301594289873073348812274362197062877026666694725683011240243030017185245170492402256021562029710507423471424988333963097933053888107999623350030980772967569463520499910760313691485594260734871024766167911941949389779607010844106473869005142236887005005555393327809074552609196221560017035479546378177552060415734747031048733060159683090852112740397068197720095758453004154025865109232473471786226769523590428978090055291823566742212004288105255657633867404839413702969118729390959704421559109652790320417241010264876663224975362629446433857179201854150304915305172969785968526594269445849729103234727380572577943859802792342708401543402923578217808793759642926731379996623631838071932059631761589647169925699007489555975756508179285937899636928890214087266723857313014744315179843181275784564068828971259275355780667126815604940300926482125704211934279342281263907386708337758753521358644735201902349469281583484820624609714130755184959993941774618400002728062219266469087055557548251393694665183085229715788165778400859929138650997894062557877164206309184453401087462228694015761569994754577104809219122792463408278490128881040365339534343611205060431143054963097111103517015374725466223998164128782802643369345603312010543059341602768187074999047450236506673741276040881036525585882548309689169790388219265965056789573033864685454643061676414491957051625026118820433300301885313374696521557353079563681583160411641300210111199870401996266057345205713290198390040656214113407247805530779576239349164691237502150072700339471375923631922495305165277928127032977809330959091059865241554685261304853924476438175118937057327994370723831865194974684307634535107714960359491625446279388577331886850335224128809198055516196727051363884470899800198630029624615109166676908135708875435859875834306065364526309138088873459207629111134465419375499511019228350877291811539543144445879096446748077705829595682999222299888282787832226470575443716900115171955565614565669169174838997869449737029096216535816590951882357278496571154722467890404505007335923399969578008700912696701832074240909756732698102999877993749387470139486325839377965471111852490699309005197488351714177544366043480758074589061340468645723269092166901408870499395644644970030450564571775679871411183016048649623536038695465468749418310360999105452408330255940839893760249463164605316597747793214920546481600765453107082445370207495810275383564708400719569537328783575679268871021283775609014519900910633428456931953918516515604221787449146901509927508539042950056117501048940380243965497105074305893091717565869998270287009113520016121128189680886338346013090760304747016740740450871600080028861632189233261303677254189410296268564264963535345000176112600339488993828870583432430431627544992373819644891096104463687578229511109252024680821094763102813842104793983408046994835907019883423337813192015921388669594304443142842466009377235270214523218417733137453184215401659287108242511167677812520557940503355636965764994660227305535560861621754002935552238422868428697198371840774470301619076503712897333805304714285837555256819221852806545798383492590062992183400212414684370910352512352822486793731906831453501425095007400517681192253709165227478335401086303210571933400332655034725238631573715192315230385964196650096213291445654985696819650031677253524045084238853323479289841564715966990718110912749682207823810158391728084084010894559750506283194701459944991046903660377739287183591528204409178159106747236867056803297790325181873224733330926295622169337374223785930683528452573295043752348659028398062512681290689789616402188702504650061255203191425663709335366787578878934086017294613428504910337048337865714660101365351546221879637958037962090162747717422125829331059706107270610145708036526856449459304868398932406386474024270532269576954459563320031222131494079652865509402760835483578921066859590554894186115490124146256560122520069677484303896416348891184063381426924720630730577209647489680497551631641318495317113379292556351779054213724398848778366366141505789200896357590995401628661339085188250983382381663886537107079531325683950089039087905879071123203269222758903596187279306730431973155916534194460828202712113997645599020861373763183870813797686208179382162144452838021466165049893868319381796535291504590202030537246791392322300905020070623236299501186604632446940315056741424268878561595197901110666607806575397913900382512643569353578476378408940576274840339883814926546281751994210259834521417863242403081819331038291853796804854517248121962669983951217329396357220729660038822076003703646823481766675614268661960054978553716412101576802551481148976986628578072490551561860687465687380892526790358564558407909061282711963206458314693081477615864540535436631640128367494185729781907315935012647232934100824411392448929505193653952536222598658835984295236607838867738535755091481102868004734157164412104599634727052904385305831074220503121771334707339589567593089188568008277543654130615148017135852496388027615961585694672246717903647066433920953706902275806638859338299130006136967948171069860802880572443841423995638703190195062913455418166475344824584204388032464192509349889416347320015970519062372702775395247024027710815386950555200399282682711278817036944918808244779766486983034135606376259624827195744164531123783226220974257620699446298384426272943451858551225660392658179943850790028148139481268229512757675954773733636655396811306866470488526570308512774241963308859887276706827981302584180900612075071004248748869537553163283046808523398574719622092872974464575452743096011648739818919319475897902252245818197033617522238683728671303460401496639831526288967100031258649107688036190032600368702157212484145083298697055185737248412944053316443219107544027325691386794102373078666257416810991004267081930857528131431161072662697350799479307399393440464149956133121096357071578698833123508510534654480202398976510829758691727656237977627472280956131138211139080817785115218938423458066459446208683050305896498437451068009391681632546321186180202050503731297850354167171397328308095142017817721650152494337201693204496953718540807541620909999942701844224984253057869584542915423569282399590825505472240684620962366898703315470244118433663025312025193271100691963113465642592545551712522338610451101371909991288079095455795275585637654758881359099890687408998469869268552466739896958964992763981731368230378450556943629071698135980721139242721977135445791815602849228627655151409728179820563471349986295386941015629253377523235596046121717918241327315968839243025025605649453083241059562774149944580150500813504620519332312034089024350322535702538195066851841588961076686381657639210640229751454815530024785645923824187266158543813855316493405603364797555847052362707518326848355102722522983961385846846056315049154213502074031898531803866261889970387912423261028847414434156355867804746916800746344671737494152376913918772792217506148417209423746313457571692631956900116896737956237918311537619833870021739626738237549251664961247798242566157732890350225671630653088467761962771221567613460584798853091445167965337689525087798117338178393296671469719949344636322727483654321486782764527414020307969722749254923163019175645761302525988636336539686252929149652731643718994924817532903055132715874479355372829653708991343989030151563549746948445189869342279055932026026705251136973942098861093887311133768117062782061741723386621524862882666350113775097559137209583109561915418855347739458539323087390343654108161639723443283040560050179259202060607733091656726210983612480941479389160659876912230557364065125425021444424863405248289151351536704045808745361084840667742768086368633806703584854919258546596273367973090002850966531856688211142806094625712980668827071439183584682104731403774454986655210091052869506213937405767761595166346736418694963175214849627171295205676708622846102304007989701392992493772179727898770407855957037705189201555762773791608035915419754739352301526354860369206763797793123481692151436542962444827654621740979869998560371211180501345903875575240840679781444638552180262080548861880344097172415176083352588115537611182182607270021221481638491627689427212133385979943241647097393347300357984527677783531461061949346647809531289851273700952802827330294152597669865682544444597806829413891194810901614359168714983010684077057719049568699471833031971030055261686926434228640299909721132319856057441265966308847114014065452419662022373267932526679297403557224456725330863343557502674759352714559163176425194095833847027852642194967269234546102568471117669735908836308283912731923725994047606132316280774834459230230640489447350615380875678071038911476880961519662725822635804587996919267957308486938215867457706791206654850724931836844091895677021095056427306358612538906706984214022438559160712122426047615849359865710906493601485897026455419536697817636852901867107962908045082077237353921298177111630522267985667885410391377188020999656945900893014141172960532708551401126364122826250366093761783789624257768876469134186451723741423549295272640734672533120571598201495702325215998044320517853255896217139717235108529808869402939366770288524241090101870276214729059995215758595275527633687282172012314544408062073996390555141684579611386562378664547954820397302094571166199729797457810933362859814156403380666856740241955779265602231221980460697267882156212396910000069149591054230848701503656120823819335336470357437214502734482444750826349843186190626752355221332743559873707789724724893185334359296088273932781195773465981113768436849856925630268847507134113161154595942126284358516530849925200246231954044249571369870235901365055985825308945252374356923902516989039578041779208859078275124857975920901434476643965625571920707129056574877710656583316928845081128664409701909403052154549100371700102101368434599967539369133872002628971848315733331565549786818407564558029527231745003563554346767854671540067749807285973937499148628617739569660927354496155768995533866237613742795052559039070349060565170541314422637854253843682762160416565970030244830837347450360362904004462496738426009976533516535709120434470793913638600388247105574649685511225726668387218011412154959787733340012556286343830433445151108748376669556374146581041447709788453910447489082926483320838008516924559137330594095962943018715987647514113381911304828271214844880153182132790415575403481912932916423375149052151428954760336539906384848911992763574395685509813073527748397228607348864696954558804658908428242691461295169814647872776429740891152163897731919676470040930919618008748031378433881458844385528232591386696676142980188187909680369711967954178856247454514657497023805142035464580043165242428854625606126838525519295061907977139864770697163425459915498429429394011440978304845620336921578934059000885998660657088035459089928269408938071178973891217171690026293038504826738568389297652551305003871777371033046171628150054566413476426145421620325765651383928832352414570436188339958302643269501717597489555507777487525895017823559072964748227946945632883214879743054377748781815834834460761826464711406259969492128774840208809965438008192225867845741717152301007732798860557210467174798880540431820876303277522886139104769446375739208872653615478190284711485696230352252823173378432328186867399319772543489497019670686942948933751021056706976600819377455208051930988393931446885912833150164678823673125828663363675062114490411630120948844557254884656053005989531153025946824009242975859469756249603607705622876357552612744509803168573088453373043200614391189547734323731136473130858096320934430826255285917609839338298262799733147490920126203318508485851897406070963126230329079086723207967222189843390663809561542286705358671829609754751645380460623085178931632659929629910675238357197989140132251131650822368781114222712818128536810903688393535169468503049036106974902158590624270488113462691753347608710540383570254463872316121129527180517993484288465210216997457322118765749205356477941498848082370037306667555124975877954788448095227201157036218524060572501696264694682616217192844184929704352520854072774765338111958047493413225701881317151740670401283952439202550803742555381665057886971914537997358068067414215291061343877589445211116406372846126361730624564068222508154092719783035379204669125307565567765194523766345705509140343333590687382301004518209933633463517724637937931337481554907783423644529834793195532095824008962611495569089583194046491848083522858036436651468269850895719070719189688757182187901138063734762963313208971059788636094912342187091979172302972035142086751556476891370027421187197639941378335928026195900191531432034050853309554118000557293339032183135357244854422663010774245069477472724031634480782251462810195835092452229361732690349519506814241397068765800645149506362042337222215190365632743091151680371999648680854089388964269196120249818263458311225814950064740020678322047655280623369992269028647810814966221251789248054118954036679981511358244677368063070348396304666427443775182988620454182893616441083013187134561903436329213020505432503094834733344266696867596654806885464726464451701290983897300380471089185937321295870360634121383288481834531413812156108769232228388368790745882489175428592368115704413480995560056820025098372804984104884313724831493955028954551108442019682312002891302531851041553864248402469729935660581731448910085150257695990674754190214960167754665806214774758928644304538383365961816603562675789922371795945805911658588844000247316551912563120118078264357716856328244043335046351196093232261399308067362902924557755756776989026541580066463090744604159737905474872613120670431068367152411909576533420415319005199355103520823320889427044859966937739056168954894573446610666633682124097847834385206709329192806527225081255826659685566370739369693327718602169182228345323018719764211570557552429434131393520988812317831971004034678751639640186648992981512857580154337769111985150392412611844138717200834499981639685133067446093330184716895925465596567041673023468323504131009163862741781563660215626947990137089799978606502183080343493900508545766258019163089286843016654496073983880290846881591483394746485984285305033809364746405922142356044223195667098496556715878731385299727632586965779387324509249480047674737943005613331085515255368193417714683199563805750823914432111675742022097710791792170495248575155851731844551418306050833316296327173804425550231963231371558596051860187517785601855922998685415160682426973391798583139154611354500696826333924212945532516275575649057135310362218988470038360067545903475355606384065839773801267293093396006114053776228655651699939510913839548864372009522723622454682829855942074725511990027161346610526871326983390406473765028252837220884244142253181384561896859568622813443147544779086418452847496425890475216696099846238515542707783169214414840996114724019530756738513265853557027811047651842777151038325455551624906210578444477661037723628327686260401306777712596858989115109808397566301478087360933218081778066243801831407573449722150583493105758651974343230337465170632073863739747476126897059543005026282351414439681654304990249376940857246045175522055183542520729995777127075533479422431261863501917507890655734370289247143646817597201818734541611794560361377934853787651883513552391702038245401260521899421513535689629584445834798403142130516233987178166839378737490086729937618497174633047563656461768086025316677465968683396897064143686000348355844704544904067602362127893913412900703280053028713278675628399063989951454251402395697352409110694882097093664244477100864514756633194028488188707925008986199264182923820335256333260520730224619353853063598138124785236928522829809195165939209277578018820529183689505980039267146670041648994615473973268336076269208220086946472064430111921998318873898889419726644660041053730339423398225908735684674668425400729641690624517718101904413279726719822170524519834068531098928843238961334901438314564262897727811738314786907622050045729560770834024562055208567546074973596911379973451270908977874891457813343512399369798698512066070521053810512527660545615801023571565961285614922858787702215559744348020992158492357641122538853184459695404371600880343242703656722061885374860100476123191869621383660079133940894227385008459626436275824006226336398266542783353467367019739900705639449186733506569119752788371594321220269830439171715127163633107552566730676127446587687138612152224278562157156911385219313393130583446284097406155174065119352909317476693258972877632347672031283299310280822025181385168333769660841701135612571797287712089264151481318724014635361499609326292320976336851436034578471405401364594463431258177023369754136608274815840892008959683181812768872948416661140179172024606295237047771047254913005042082495389162216819442224344568144032437037431053065705023348713165529141585214089140592354242367055206111858161441740876384151463499761714086232039926030862491666183295932389481307424376764708513654646535943150473298684621455711034226257477828441425553829131565458636299655327216856450067684186607545208025965364781483033901219329757352238537951083196555832005612371663741502989192436769467512686899318933193015714928911952831282527668315792150855144651944995324027037216432203877665796887404437067207082282550212623778888669921402869736860690481347502068427592283550186517943965906610158757051897899755689099219935915740128905317608617493109116761373721328443144327073404983101809881109879206896571588516095113880079345446033035064178303001628711387620465655458924128280183303754267049193440019498259639450771732315961423803080958703738356548355221154834859386870428730225888833795327630084615254632188607372458548991881525585456747872877393426802762794739834246242641259940616247149910312275352679272454171737404896785971396400368352391690236334111877753956866584966161658783275154543387488408988395178242547875386720215046943408565127161022915675035183961371350322515086487664464678689606800109183305636110599463842853541268020156602927884498994534871066943626165682145784335253223455010943095045816597661744075386338103212044108162548785513003467172382533002016780523929948932598926850055920787863923935160316023470172088264864220757108504927937744816857127281058299691446105264200072793547491052758724869315931843881688823123735112620628295352567266203462545369409547052696971779882305559717715153606673060900140448868098199791631886002757625022093500385940253970821083862404919101921040166640967532210196148065227012404631696966232748658859551760159578258789354111352666420770660352408709074382301274926103347682958822144716648264836890318326192702250049176495001301345470087118912919651828427126741858954631361580995511131315986369407524682678593157830639826787270241840325041143623513602965855945999281371971490072889464559538035683549712862238099871848901649776037445231313620466889579942284121863363281797987133460025560056745766517270031722129942808795007296712312179558778052576753286770492516582404011925919479055125876322742875238199016905245513529567525198883262434071786158131802896866954675234226506947849492071805962743468389855215066852383084827923534274447923664948662862662926588472430508567081790382004215169964841337584813779645474173346763928841303394733102262347912411291204604774552857788518605690003000012640365406103894366266120761296665792541265326496731434901447321644314943160415281488548728692718866281157043445511897812337269306614054916813130876284934487816988631638970875759938946755235561374052551706564227114947334694390654755312267615605466201375545454778272786248264544346289524951978905064953495236962826787195855840047664492954257999049598981917843474140051713843335920837420660579910760939767320733718844052196403895549507143371557053862002694721632119724936270382145747092265218691885606960412756977975950847127640459449836530062544191076707186489497109152252612617803236727206902887581009340886961250137389082799119976062877224128692197321856468960072709528974378288451700151412429271364987872851826681602732577120247103750660638848113552086469030549523993541165322619937253408038679554751169895244043028658596118131444380927165160235644827661834181120036659103397692595712742034706559472471512071429598353958718950636619516983606835520917883672818911583160333248334627238924133621138801656412640684710941911705180832450511260153292400090143721015744312244655949479579438739356242630323186209498024650917289025257952059395197870114961383216099941398059024826246964772752956207221733377633914109085379488414686002766806700765032354564152021142232448408462899872966745395619737891654800549367454941928198032254364663269311471249894692608832676618691016015361394181036224128967929067639614237855945356631710331044429994906644935012790863157062298563113262073063445271365361279273678634216951947041420968471166814478601633485561509640069331543620885103005859055391735252778746300261258694571507470669528398292494705369501219209173612214118505260183733217784942289768304011798661518755518166250201201402138225949926648543075817501059408769495831140137518267196445285751413319272751045547819030560055513513539379895373768755087885902789774089028506027172743063978496956314140895869638623575498028459061911208867002710503720125897990860435359459935634896753184497022968620949526343165764256268655785511288092608042791504997676666865571225161133009296304940224185943927588870597772304347894492075966219697572588125316705213011889669576242934104531963570257777858992110680673217996214334764016350627886427709904217238618515875897725043433940241559114945288499177294119947619945768428311571294932948108437526549051768360649662158333633896448036884095028031942192171044265911258494748241063395800708896285367843722542209818030615463121377758909845413697621388283708287526814881443079581338548222922392190734107543273388509046283047318451532134945157341961248656307594553185060002090425526721000268598271404876788360600927686317326716957225012584755404709230866953499434574745991384661018234245840599716250472958328172451203570829145340586528274689528807123300030688284666631616275123352165148700110121945677012503520710159725253244439647262546315446292414046259497903717292460440581047700038892442487259747584368459550702302178736234921237088951144552541060070862751503178457962244882403996058069119096268861728344936959820693777986477403655823050997935815735676779494373507396616459428543609428275943748467303134443487575684514351715664661830426377427323477761784207719223424319649870736661836576255266177585942132024953971723132610695137623570681171113942123945114807139336963507481601446717338967976336059596313404477798503271432563072014304043080349694270474715668491250134399567867614277477307591074567154415856248732146153340889498677772574125892370878335966420594627214601155964767305639722920359406371906919858520987509018035091131249972947241817139632000088295750717620280358457082642111147175437843777144934342865304463705068863634132708949061478660787427620894454914656250069133515771875432184163834777854990544372168884440484055816333016722627343493149637642534790212279016523727881193238926624204105465453797707125029697347449021448902288500439369534920076371211877217595574943370123120127002134693392871996037608685864076669368417757597561053808423103962733058286758883562120181689329369028981583839768094825332554009836542910502584823667698200934591027054413441775785025517470213715466077683968327511723484304355186542464157222759868700339591428548708059245878523528541593636868733020309892280365767107168005938860263481765660503818551303455822651912457112017469591153135088411728537300518914639969668974001855481216121703374565312806764666252117180675156630233521249563192500928524040040330403656902392515319500291788830272983109060610834292611810706624219682303322526859406591625081087128628859636572374131804215459677226986573863037936451888914068437824166214569749793643784780916310590860086913988393143642489603968832818593553893918862700455884548468952790568864605906888403993212356083891833544396735449899327624465933102373265882004204556964486258942211030674198460210135704052688355593043886484329093229085140895237523832585759670842496273312299453872570210166653376182314175113867841016060371425360150355194921278303508475605597178360044364899592432186077791758538025497973634271938961108675214250172471706019105229311450066010109411182868795907568699556094117620442581128055747944119611929702520848697728163733600554160901025863834389599337912101763808955224431491433276068521155689803230471145077848717224846967815613263511098487305660179736022632786618339917941474725715155196545998037622439053035176932649038871932382342563301549190931905472580401651077287930431262573950052672274351005723144700667047668606502804685136930637172297012602264673643948195340015129433118868915159987666101895376158309198984048143874770561869599216777545518776500391418682286846695702895227751896919499214880689232102210039701628070818476102606923943591817814830428632964576568520811626457118087840956271802417059096465117137819276970732529400744014134622339451456835580899941118419140407781909111151009900499645796940671681567711769757358023241302316754908899348690500846538827028016775254902407822127544810428614492084480738434484554722069807156751909805433163080771257254377588515907658499892566423520085317306287257533693504912108243073011687732544179723194593823305462505948206946895418794886207363299909523039649842471278643013347620743494635384912835723642965773102648407533295876465021277440627593795830320856924360046376262862204120927738076694305356685715620756633698650721171319427608833642785383822335549455295764890016705255936508370470791659806811041360448103133711726485319495035661889199430397531839217392508624963936499432905128389244951783829545503861049956767679646830342045138305535115785036912385994308229859317997336107701967469104981131254493779928353346292455511696933421905904243193617159445976755965200391459305186698101589301721749653674158164035555906393358962980982993274026395903943033300716613497701209155929946583026444385289761195299281503270728831515315963655538922914127321752510977441789145127080835459201547926211876775145722548860134181575776676499666137489656229188102734544975936499963452531742289453600263418700046969923416228750532979465476608739516725088919698358765891222481433629327701775184118418513444206251458555624931359371513249662080540382534646987984396886935049927511295492046397358575672682874673849491766539327043785924154686910812828562332103709556202441800943394087768981361312091932409511557844263352997956423103694599174314645403691779623592362188982725623395358835119327711448376003961399266058009464635948971166015676653847680145171378648668489939227837787889396405419002989431166395514328962396308013388983308571106368257515125564935721550903034720217135685744182921853909797436050320524456294905432375457481569871243170158722180092282618760209547324438259750275262396831056757636275313575469780752523232312676778176335270007092267813539667703206205127180328159081300005489492972139281323665565428618129813264006751079496456177859501288807046586878202542034548763969608598765030183207380079477585326115412497053204860774659262636410465960210423077248573211665447971209493873489415739597011868905112410574555970414886641688238652856268766756192314827207139966920849861450443288630920428164059271577625997528616816973567738648616206598945124092309688318254656484904534230974936935082996418186255774862081905776996253564336796160010773982032149460543487003928833223351961773950467327332562150448013971342917614658535107939297061322363236139767012871165253226349205249011774706272716915548950941796736946095281538553671967559829257280290047543892493285596070182386505863135651208047874861396780522765343198848430456678522511528474915197650558616400877325512887021045563771867948429470921004612500151704385146206393827981599649191827550559990232249808654658925181176680663715368764396943437693214879062631570397124871968811447396843798229420929791625546565869422593593930440976723606191027028032439363365445227879940921618966546268031710025342489349752675683624964283296976808712303828983822641924197052943592151383122089042896590587890622632036834942162417815865147766087655412993069199687095317675107832233333407280901279210914112887727836020350437009492062886844646534976521586816166391605414203877651585306497161921321489103532908519886021157195961779964176176532590821100957804702546834999217386633507046245026314286072939797763365864112710622267333822367217795620408793786671787662906344332591365311091498989638604690151068235078100839924404007454741330554547987250067456185108085304826931970160683270505783003193598126482077692557027194797649788259429486478108722410931282851182442946290537577390730701003039585547822055550662279493799651451663051120792737626094266256255220420791775485779293702172102664559020604499718147133482983666368152760812444127339189115135229448446244670144965800775359598351759672721859926067315854828099320026085629589045489180659722347725041301795759977546698889489965399620475050467862752198377866425762996585611900175105131651871598156206156936863862111438540641628381561347910708659624942432603112117454025376792734308489762368814256544034651015896186598629445197311711435105099428588658696436988134450637130641697588506354931005881497151102710297944781096405096975454917603850679635560271007111408610893683596836534875153316515157417844020798302709298862072131981567820679969509099521159786898278134754509948903778858762572658251974099651461452831601646474083003740327174520570605169888225185013507764488040811308115650998618006154580719097315709438580726871328854043143190998194361651183629674372426312086384339400976594673223397468384358631609819013194183798150859167597693590534263803752733937469101958860740363093636085017620949685838587453810458275749455720441073469329047290982771778483442225410644302877166282885855867057407639220253226084919516047830790885975545115490249092238940415148713494558837589546151853959411560566546796184831541269475462745316319701918428121071698628070143340456272905595339290425011315298324737393096186287106195416516176852425960184932468773306753326725145067851324216067522729388730182741721981851209598355029400231679477150377040128581201940056630132285962874037946694024385651472557564963312563872935338468785664511030296285489043076696826016873519275660257060807885516005035228504457981286753331142282214720876792878266547739786401905413157136584108617176479741482583465590608160786241765921397068771588760049496128290364048337927200545579890534483323564090127423904845134423306103796692074691815087733286672113245003803355820536172070038405382758166696868528426606122697949062626546485480181025827611071730607357379141518567484441542328440324093426605279144595546875215843238678230524867781327365273737794627541248554356871818665944086447527228058697100219286122571681913053115379408005765754415962388771853298049533162125406948221629363591371542613764514442787181477865398613254334742822867169361735123173966379174765983487020373355635617377820561111868820353905553320886810076627603946041489814583567850586774361594807878297511512934348957670724596367326058037105655100373468556808431223107577381635992294656112466875657489896041427893702570323767582663908118613388942681141046433508548864337409126169044864157535291456634677307714149111932790953786586866381522200599359640566374178926604694574188641362297199264315155714268493919571725695423595556851755057722072861750630859560411416623657320447880830324286895999562034850167197289691249607201691244387861542259418730485218506141937618481109496097273493581760888150984546926722665492592149034018869534816642323667064894967102952160704806304227474299335280409495774599575797338574117930250543984684586077480841084012049373901937789549664078683809836842159644079924481990957736087883495203258809146815905243637395155648734414043727008411967038680700388498150313558918095447617511670938402977486511508043020493845968128020512472334519002728771473989054481170414610102848240915745794985395630765548403341434539437230429243327281557884814911019492567757566772449214104605261885631240654403944828603073665533388948294049259368326150065872719649176190542390695751373408261553976891721865810736962617980301149452852760042295415732066044374181768754231404882207411659604874913367010208914960433124898026987552540385193367575519467809925001671137622145535123936730141624840473881068659213963562182595238575996693777225711471108989147422239996346637156867669097670350042703373112198210182668726553130635811280284134776870886788781007474451783532509579663918240326957650173308007844553513873031601751291306351106561310977110037894884598325547636464419326031255056941999789725781304312404623937934013485679905739434662118314535719009744350717295847039357135185130588318515283141801850226035338385827689862864682048572488631841138332784843703247486819682327341811280041674813696624754711987243107836214706170241456600104885201998916494759184737067247682043611415044926627077477434443850349014602476968053395691797315265888828138180384656605604687320214676237960908182613695392325340191665829922999411619431959469439828908555472931308523209736031599183224168077177669216238924257298265123438175256882760130033816668218695883767190253158351907383790294028330575716572082728874930246672109346116814626392186855004814585996561949407615628017781976693655223007256357575011166450134871079609046846699046015535591185191466683510613838222706107874518822793659469620406905783420083425948172694206932285306301391665117952659922290573575396177057120867936574004589462742456782213004711435621300339538373537117283287675783247953022957405314680536049512278746485282243950410229290018923533454870049915098676484316632267749845948608525525905934626388618997113977794212226931474903587665622192426104436863311280324449281619874024232014920172790748238989955988955615108959427024281600227803618711256795765660566645454903724297474951837797191591746975516514441455064160150260100032510627803957328672575381030084611801603010428173341708333182109676208513974853635852748922673934808550558544148730538839050430833467753236206969303797475924624239561861243275335030123323092181238311531651553420532947218136512466348364015831005513725743443992864067858274875198378677082622121923563732896555839734059871674273579846446375703813206370320626822800015585664331364299268544830187031524071477075256674943216651545249707948161621172875436976238897617457557884397734879561634843244540314892877714226942624605148606593043283604013268943160697737241620713172359445444295011397977972779931439783754077197076682102355194200681277001791704121814598488611420623417191899192536103942321793760577830801852334331226890805150703786979627156437857348821326087813091780793900333795376906676600146811865197441131810382964510389841016947860406978447875175537187513737864399663477072394276519139124199873872056047041223263900542566689504314389550322101776331324306941520289675582516611907951787907998093848714089857664520897635671063118504956218402822122603736352485205966293570666409097993063658246652657493216758501063213214855498080026907254838860232826599509038522292481838416776370066375813537636248002822512375140455347637472259594165258172344655888482906937943289538806058576406692568847063374717227620117856346853378853615454283139677069624895503687426816230322932808808275416614464608812784552948603949488091499370678759383100627285986229003571615971001886476187729615542673723102751082079060299011950216344559624959052302693106495391812026921752691991455662907908081894807738181579187436972861267615811849035668345514079898469368979289596873412253410734039154085734751221412293725331858796181567237324122241582853593696875272865349700536423973538469667840193790584697293397199249947010569011929216665600003260258421609111008431828345218374195380189766611614505297166778432905545746371977567354500170139450845388804147699689940128800479305897473048892692440353964137790854569174403008110325606320316391656509234464866319799013007679759924480495820124879744651237577672717424699083926923715437159667019423059905305818591983861281772831334623728734991278732629211446056199201313388480977771850170621290143527258590915529804566291609595192564867950217646386374430042381075435291981019886120961165582800447185456700356108250798560288711589738858571534338658444219832280817507976810259254525070387997390853661038902775868226922209389565732822895249002329798098698594014519321581268104429260834209102535333252947799160219015551827592562258823661126144628998097561722165800038215029570848814195849168805283969053567447895313360964860779778156940420659744346729897072552782198139259370109661365036465282985303963092420923323228301933692860068518004223630164515971609363228230592423132069264769632056449049223250343964836247635327172609345303681949574052361463003800317794369171242214646947808875068417476320941002895714486149209914772827566604496164884670735353061495883762510276055434706078730091066322544002649349970928294145142353197819383562782520331508011669209372477536041474455925684683785747216570181428454848207491232255551001075465824444698666698808619852605231945631679286144851081192058538127110914717896792341818538913251196457829334909922215496078834062588535748663472014547507605599000131127749288025569243900282402401233899005725574170546491617923544207134086166406984952797149497846311647709662634893850903287527677634573354546608915771965256050751665674471642837619629008233601315661381262831918854563953222688105255403198882285093207593679893550016900632280017732592126825208194953004559572774640812779565983471148480522435862498454546207225540390308563161301753109597996737157135758521821867637560155752089988559040258588917569441667376675840844332508773428147044793175167670812149063061025574118361222143810654804644916224885384262434344460166763407559670581599298641607994964295190192234052170565869123379206335491617916518462687167180727849478918858651188643621618316229848655533223331412519585157725985874546688797025907731062146399359659261271559138173003847919075386769278121089095240868387167434551046495381728044730833548978912813286668163021556458150730343922462702173524094582007756085695892326295887798823711786337084518979910548190978882439853483295259505059012106660683784771618275638578205315134231398512375479437602763623279741024289277979458162553256383134222984108776383603507664968142421435003003037390873078647434021690068444896853003885536152097686521098895003487247079977187259123315632191501828161872991379791582734520687723394697307868733151439137812285858256783409948777875355790765280916562762117535892759929271992289031323777274097428230937097824268120113122777108303791854287009417869229917600829932853442652308056268719043085125382327993557987049289817703527350445775215540741519141937785646971084050223922414979143982831260038569089506555790964681806939136794994211593658886154028887935819108085877915527621260446035985327546001616312394557890116357195941308452949472104537667708136062824337291713690251746850036457357856816993835599641984905185142311314853875421617029122888961786677012423743361191948869811346743305734671712302929656307931489252359335871265962964908545989871592156062682776885837595676750991170825198329611043029278505208848638226596836127296113135408506232007133056543446384582135451166091632068364272499987209926644991783788519095539775808256896070916284374264886406731396693106752656865528226730001172290769074555708419418382047874132770114573291273772421455785523399476606475010787466850399182107644733873282810751687373546854452650116163561564253324817464183338823600841481837964327333664171111690446255219565935209090772730560233938209147622390958510363166660476417618435897338072766320003529764935575703515804701457798823505364168138443450364691020796585426346583528535860016734045904342032566719989532470966050373724114808451735767219166118418097395782128393818460252543232642123159723474061180137718403769730633262206861968587415873042114934797936512378586590628986313031841389853094546669999809682078592564410391709993178173131747995823876127655575168459602283458201633609372779311104194923844849108531677644294483062428095372942604404458546644073688661175654286131583637721052473522103213216180194484811393064172942612835283295944449587275747633152433510143016559893593489095163387054254115726836052058412945728354175429911541446297987565795705304423951881224211295764994082581954938879478547202197466254413723687687767026530633094238772850749829904036315669783640713199870556257411207868918370788402282094830281561660213976871801334633492682527138004627673826349209626588145945802370831434703095848010850126230511587924638339563477472719371977612686248605466222371602459702264756148462408854076191503540347367104987532793001911939772776307411102428930738522757753603576562752510436536847491095415365448808929239877201458799403470922402208194993122188725083830688403219800328282160476999946969569575296814872229420091863097684829371442029911082899242634550833480659584080211316711549525604687773240705110824196965791752303897984448357755465025806687493156584185074864277106846549301909880003260276594166480002372621111406477820877865353499105765748748538697417733619262079202792018467034491401844082852346432536629527584437377928672521376594025811949223433458290806239072253143773391968551126089185094316624684103659792253447056286035004792887787166574257646549922781402951442312614277024324242988452543248077486555744249668933833240858492057015130093736337127444146312911192430470268350138090948112016266226286086243335531412600766215377969486941851819255728206567206471264583830915057173838579363199592243518986158796253400431500690163203593912601660640901635771904571374285853549664627712593927189252897230681553662686529698033268809392115804005098638793208367834114704741000159546797026619841077138014746285191839638124027584184960104966859782859453432087804220714716231831086705062033490529335516381774160729924117494063470282380798534086593288402472249772596628862932515885975013036243625592494648332656639300717577022888824290060382155470184972756972199978193572449035792396669575181161432345595170840926400752064477341829165757832125890728070711975215415022269872780832637114642450550426097693617755813894266494025939040595480873541132360860610178673370183325264714659671870525360929437659547303431225003673424191090577551990078883925553684813531280434457660007045554472106188760886408337624597643750970272050469812308087816415952540024399496590031527991943456350565678298350767169097929700671444752906374473162340831231865713585138194531531376661034234954111069572622711220636811182021149733329353339370985681502984282157538393713897647799780037229119808807450257598422942437875885916885046662615478810772457585168539722264913543490031961755249645513546818488800071718950628659654670122542462010407441452148315557431429465015536159758749569057763986388430263549514867950754774156653845069107181947073915548578700870604379250228637438777853546854684036227071860707609878017361705346193089804594151086856809780599056496003412495390273696353963750606468323515135060547829238985207921889792244092221271125903219423775908941245411670439631137021287561777188800072566661851378291978437467434648049042659873092346337785012417501379918975449579899008287617965946441751080315544319173177577064291783899470056603484213611950491719673664216749629356794038534811177817386071221456565863998698736644090364951918853835807642029268051669858084504682745660270122613616986371769435608780007498637500050408131950341602190256004029903762497916958519937822279607345842709026756676480427499750996675783508048053499864882061286268837399012978494999105683053794224757344285394211011927147785179546978122540075441793528461385458717516680573580717248811736269129631511923003784959961189202713161109022449048569623564258618410629146130222668128645527937555928035991952329966737916288948802151899778727353727823108803820976947414596904329361964143212221752641657392148114523953822909735626106188228049165293949951654008857699720472089835146028064802185464296956908607271757272075029460577097975880488729096970012953787707160354220969406873376070682026685954478929889156006209926739598975431348939543067090726049647012667277274906934097662393374576045308607271277596797340070211063538354869006631266526266951236993760994208255703434447528740095148340690965311646314616130865030222053217035218897023220444119908070811158171443224955679006134366034875304899294798170092095743629273364065405564650124062369843915437204796496489553656201377173665032936654885939869080320463103702489100389526997692593583749206113633320799971205671225834638050638540408176383981320042741903995193975133075588828309646802863029270424040215541240351300144145192716611739134545925569010918320971415480730564139017615565326928926690419894716603573840702910885408379993200128695084817696569832630537962724028300919690488260019086716786708427717164439532313842033023746990894434069491623788184158333162283456284910237363585610872640775944846129812881644195081394047411156971892291368808164378413469765508536594330346109240447460827367273076618898422725753630341778720140288086720152360117112488857140228059592854824641413511372641820124931036799116286357763888043832752878592017784160495083501614043919327165024229272431163634405753427026869258926548329423309605656311333359911386025237104225302483884557880435297308750866311752972304963059823999723899117113296257389839333895625140816873656925601488965223189392552123663268863630444610746110796124625438301066291227798404883271922981223702606113911219527132388095325008991395976537899831943330895753318522574077489826599868311810483601721104361320383220007403407199266974101577181423990765758774442717228020652649718232141580139053529127159438858958934561494933970074199818796991197797030973421088038265373204191616676552370152334901965121744766324177745447830461887362967488982879291673879371476919683847096385765818568075871339227791454422538765000872703190170871504674259774900991545642845089338403395277717067898125978010293221426853616997155599931594464471537610239898393432430805098571819388859315629727413048393230806020442702347280962735642336751341433393331558640911270029644249362386420225693222629661421080369120102517230322038419954428953525599271443914857279056956749765484083033722170133238755104673071527437273394309909928078211848371621824117117632183649925801012490913049356541310735388650574955408257744140455663711811835180162820811907785816624545433792923725394754792794792715333627647623161534731020857339188200845692198596462213341470163824301108347868703599740427795925810065469822023673641074505258774885549403751974209175964882797774096805868433354226964603905964511276619626004627329288115914706331440002972345472284150287806523892696958593244955445763527026409785762156146805179654615155981314870156562062960138129622533806343484457050314721297011125391828437438230108092297232792523806154898500691621378888359740480730856415264368191140882932716232712881648843244629050379876984371523665017783331755954760209187366373373076970686566084857349989505529753118939361017741037495561114061518500121423600440334835359772217018013261746783972181988486610103512836433784275303823709250298427554074810306854376616716365709720055649670395884948666353133631805440544777312765345330665867667611745575365681525752108253969036389142539392460941716931072117262355915286848836739527851791583722447194267669615048721677864329151513511431732632787988810509408925712718899058397082732928246795087307456944153030127908603189890930956295374157344307816194831544649142909053909413855891932604790041755460209302581471233405872264491255060537930066466637817568448117907406304068381065766633201558781100723502853648755361813332778152597390375399197075987855735795800371059201835150637338639460376608174818548048520027145287316878318278537317718483558747656378515849153094957717901410775055488647141297334804133308307567937516851316982494881500452446709426228536509335178497426459558953991163466453607819452991437614085790624592251077707160527089401376580465755151185018049028313955475268940842021911508825510245121150295394644215802543471786251514811913616770617487045459538234160866096299017349128782358686165194846617929355324116718418217304568498451891439068234999133709825550190527527032876841432548064979238661963691335222901580114446815984157042046463013128673205568890040698999859142169375030311319309735562632919232064578739104444429883513817855056812621275048367267150808297713918026650150646611141345655750306543284274718770908758288356316837799248609083230362627720364834326760394546470858943053406662547743313550797657373518225343028960307445880398931123513984205934696534259831982241264976380034394384517454799950427747250355853859021113721730832109089841859786095574218450723555127452565765440608231792544113714729257112049468872349441763100435763344816879726273936468197082712996198439656390937902443443954583941225645566927433721254660540297010015238483513416132791741576833894884830887638010211663336931154781571311490325226571399205043850537359706826129603212592926359023815047103640599663858269439031236254367560529863371551404420357104687128492720591353301464339174645199893523649323285176994543481376308118483018106990338097188638285648494032315894811729980544751870559828668927592457753859002078999563394743248738819104824749659513849214894302512781682458056758041708784724633109990004602781375442530316403187289509358689779197044541361836474367854204909576915180017041348558929927492664443919725214009879076007292209452146554000873623932907199819060792904488624426238612772653419771146063844717066075224280898449135649660988257469247792815364096850676149594053268984498783121829580859670229497478363063219438989984786786888556151018912333411281101133478257770051734740792249347596509102346855556553531962108937372122209188449846990371750039288485719298198733038300729149995628100634843138431428766514572158607185464499065625823228083753353848830505181172800881719502149161425276454141235064600378572773623431323574452399021830862266500031285603557875299916612839718096189943945070246895582184155810386319059044694656031963117949012605391337578747733574396888952328136550264947926658755523271881128976064547345735356113034740041345783616583251115741164893405529317051028454777141492397006896489982853234859335682120827169063410650822805936388673635499765474324868615835033528641865275098629446443181340729892782353879673467312202013429087636116478547312618756289792350256658065630334122805104831683514397221742204281202008084082842593574939247901961903715929891848568747971915436015634705116488552305043133967113956589455499637240671181642281820418028709362350230362142388529097202053205668153071222249019405169253386009789612865130832933328684219232404499444760595016511359980447294716953765252702696920995860133853604382126136380030505358709046623363869560380326562791167545752463355841992235002492210804892998521035760435144429728869629479207457925129839632566944562053091547534755829183215225450454862717232114121245481688376957980452260070557720757608806156477733841823956252873137963672555478867318845780253420096025630066790108472718803713952570280993934089194843410375628911021795031821571666916634178319282573412935589914682789307852743437449696617210717442708588645763295288401303057556752624852912561788861633870984136809830552764365542267229733521083429568837709410266433947934271450657769941126959289196673240303676528435505510446518728301451647682662356614805408430290797844445962673586039915264501352574056804614437006827449016612223647566336747771285575625074165613763997243719850110517504871327879295436875105818026281805759859128696608132000650514799816754514033417804269442841134174789344565976032835781665928784634496035517320960989709077389448379281030973941170756118263858345415288779561579557850092450616810062578060201624545469615205992185765613142116389767034588259132409680316047471405280945101868754383595097352084461993926985495430327842975966543350618634731693017732028821665095140415793239826457305225962389968370643440191454794615734040994237695420942597923849460656593961305620957814147287886700463979071384457806130037067190712227028966580064173447658404619087347961383937349657873063284624291868930110258110469995149871667751639985373124502748271941452550810364727722375793884367776242483314815522662250221867038921351079079928768551798972836381171975458873471633695141271117223532804455317738838701251262106770983492786035758753891022258572898272410362941854203168835242558031305224425782713634954063244029467458167574068475004585242006942921219002633571114517282198453772271871487460901840169147595755613732227095731023517718664521058027644389681838288429557529211537557668710791454574598977873919747537923700086903490174632915025201441725985362418338415450275488729849325455113847328129135770343328816720543498781081601375324144310511644313774123416841445997244961158637025983433421895219325837396023396129204088419716589396213513263112814186649321486670244622578222183048475224267839645560746910114978777665021632152744832976910559699431649170569750394837743828856341244939732461383109060194375542806162460184549057429776088066802970658264078373632789074445948682969789660799370733242639736410040737804035777881114394873664134364393005078622418791348128782980585666448767318211290381169029350348796779305266183911325639156302307340273163543604941927466939063562437930441109632839115230640016109445894234063062141169681272886609593334954723913248701868256096195395312819243031892761187136725866297991471447615654751067485919379196822815096149877491731620809698407822619232679220041266132469235083550270136665162961256355319974108216979168756207285263387926599851609844006731739421388195397547971786466696935340752053095510630965384280871535581405477681787458802932428616182782459906756916557287265441737857532609405442974323061728622475990700417303100103080751058378185067541609312352315819282235540483708206868685287810625577546250387179865535869606762009545267955369653959514627947204296187197411002935757326973163382747464868859849824055289084830890974473782840414304171503729782543920953997534776688879942339796431488761617204571846588844758717216887383936172579731748231824717202737318587116789149304117239969093770842036517635211203439557716764751054588117612601792424762823385109197178066741712405214244064152624925547130145687297674446243173761377327678637756574642081920770727753527124907569643097534763872614497484766536683507156024363635216992849365811995489518992272634531459865473180507722718748057539772832272643722358014526982359286729003206116305719736846959720011170173981193310953325667105862559168399904080976484306570123830378121584246032485340299853805861009035274914278415986790876042055901201280351357521254461391318324081647640282241089724823940196072678359367564986613705798189021069986517546707774578920706962678125949783822308740821753195482714222774835375672559086918829776801508703761738960208091328085432472485796114067225744211046102810327506726583910215305980236835989944875683896903679422324508616487037946192580478617684083780752454133293920313503125809268986759926630347616878123058734712116199546691560746505989590171879096512828116027347170811775775916723645034295749851393338171699233353174419084479687101611857783150671159963286659650648575815637504112375967836043088688713629774899875276877224879080257435249031893853580094045960775473269954350090678745466541820832667856121190671031150607578933667551493153305690160304515544991825315097881602217292937622436257085319768476732733495083012127059964119025230630621560220493997958454869228511756070883196351932240739562048140069496105176462984470092085695289786982617087864772184618267383072499757211244456268203827591265874732432233639150216358421415730881172038194105711338079649976663409061600544334690234612174434158157024363998547721807960179998356668605613986603176298886887864026687221921170411603962829453676554899984232781434930366651688535232511111399332466516750261621833031997217222867987928269746541509518246262402851645291259491260533822357221755528807665711315257981153267536444089357890032767962933447562910622989231911467196786372007278247456873197478131349388617886536726637215891501161694064157430033846161495993843859781149503336777583888576796447167772436368103553247481410519082176273507507609222892464420157612725248635592060593382373118440108384283739078252071451956211853661630761459558924471748197626595796090643296238889345431310339973794219907554318867977730146264766532054341493440079678909224339101623511127672070913588684969220601974631270316608745097380521200332770310659293344909720092754113433750304696022214191763480390768028018410249941883619447054275192070391402060286670722704569347213288458650334367737637817764680657851681550045919063095201670269851919469408191102665178092664423171031684121874935551637567428657662319970733241485241326364416264318116250348475524279009672713255277831994146679976585444209494656563636668555752422766304275662236353882217316074589233615774706912178492071033003194576933877618685615491305407202998708929586086802968014386107729137939538459732525223966801181990339225349625683182165203093332539214795707286861470556656564859000959403261548585271626089453148405496806502424027752422715995473404692687601175695217038791642641474491495323281602899358383597152335049345748091285511900764845474768954325301262312453456567385160187949366474158138153311169732846491184713444351545769178159413993692038988282807457389996447881183012055449909563244568355240449316972665989558838722612857940079439728835965833203287661893575376529100599179469031178976560760537063570805229398403647722959049380042997533645494708526469446694924518687869881278283536578154686277439126747717930431057008743005210589808904359045601728655606634016993790708589200785974664486021071319658510834620623199500859390772602485181556813904294452017519038637403610609466413284165617664303628699231526105046540804626216650285470058338904539640788121724544011089164095085987439000321994518085752904873640808139795671536475842769889674821897663434725565284879612326749003398994858823932136097558754077913634467803999789155603868057465091895865402334381844381487878292300980752801770900118573622940212955884805069316931824127875023733705046756180084296654263650266942274846040351664835992358490349493302646875194985994074635428927368827833342423683807182214085839501689979086152041514969737937646358996934227742546110253680897496539492990951264996669170932153757415894130963802331915081688956323749993079727211420387383754575033180360531323271967204637790541177239337207387311136796786894294070876157472193493433178464393921452293568587086618013045177500686477865992183920755995665718540454440054750010426859416636782712470964586546136534177566972364673327184354175116829679748831039255108821560992861574722603445010553746369034971521207771024586461953249522191745339597975965953585657208576958744775902537192333150127931542638012910795208785730929910348737494144201445278155706596934460199692788366593065021180670851134523954131026341608446712312107445970411909359292169643239346010832656829008024900113232574902837680842049046278521237551301850701622395158786713000453422069113681786012158158091320681833841837106735201230070436481149821550626967773604940626037604956020118380654764663438727662366609507256309959157270936429247477977557830717781758120594985583020370924787087859495396975675387303831632747421368190686744303681175244191011306485451031879049926943384334429616270730839747839074612084846192048338791784632421035128786270581937668504203777573843353915947191802964077495275538684040252228179112860500902154936315252838016591169636448107207361824074849314520006489951601805508652120651291646288666345339803245312118817897940951076522709152938641863747933891975941385068175482592569733683267278280381916708519927772690473282504959464459683626052446832811978277570855239760015545221765471487108557500789004126153796508626464085709850041435667821275926218618174059428693752321139657570302979485083042832996875214793744191100993423094238979681055272053149257116786544430686852132378460168681540012216880525030819932568478668952416484618241903900637845897728504654812409957263479420923956801434727746580568397849155656660276077518853773019016825944735026873159751016958423896756204665097345388961223581614143869541148385297083943415044281360677967076903046885952711182611282231680850357686378635956127921839010292023522125432636181058923823736819512132708070104086752809396635660227499522623270390430885205148879745981568697510280445507116040276768568192016398375977573107193506390319948906286704672367131974054807336328181835945588537541836498900701001573358866377452057066957177803921771641151707491182951677067439884827171854279860342495425569596459820490858480269048351685544238310499197095172041317268192087254256326779605519967142853553517345481857944145558326515932882603356529620962232645793326508426617518081105089448608466188906316434844742616123223640893583261722302173940829221131490257426815060226834053248971293498996343874571143951117469449148616211991572864850686339414197573710341903962426015050803428582004757248199997484404485219819293348374610416663120815165868622983678448496463403236121147552628888290217805364160602589118340053676045179004291392463423009776381112488101477318466458052485874683495579811252684847663840971020279109304903666866585683326625352453856873258187582660781669871127926777961883835291013036249885055207745304824712135149736560819907339482047714867252021880326610601893546483017393732233284058989275244267842456075720679254210975189083834808497973248502705787821879716838481523149242232020239884114548897459115172399807206221772666058933919130959716793306233577014921184760031117369719254778465051437433230010780639265049546746520979010687536994534005602646563209487690248636881947973460391884809303847555007039919580743382483871237395129801781732604487133259345250440348915410843735411670818007304040882719832767698963231436824747030890046726560487277912913146559068256300625302148620161481838936184979009996991333483467593955005666681672893867259243918104902578579525935044633272129254065465935805651584521795175446851652211896503707589599982920999977548800698999394964258584404131098599091347495761306819158928501481547550285165713407397680643155169567987198272995107346856215090147470297420540532748376984142203985578704206547169055903902733442613671349982074678946676117356597411378712811307161850647356112200716611102910315879975439819644346453889863481716698260152402557686220418370498297001560997597452846643806056016310044111612295421834591840543277664067643076109838723920693742126142606915794264978758781439955304901206939938264152994580802109576472948727354160885086120120569699184851291931751434967855174736122829962269823426889825324926250484598714450272848106561102229748431536806887631784733851330422211513182946887983784973567531637798850833398215201530727966094249565226979842201710029847676102487861443894708237242088910576937566204493118919475279329521105272257908496683455143560686522434707699725068213276461517407236516551651949455384666031482299644027212707809452530376133271773406511239732981259823674682689099852850135897891680393881599082036745380792193254600859135831028466301406864242373136361442908514787494491806676931513342745555093361028957793552384898926504072864785105910706975280819785355463240195257354140407167201212106979333596309586588717988882601985397630621409501456189111858052440163787648483061578539278511036506156980697141419453378835252852592543851920846936649920095152424642136131386453252201725619342029480480477326934712681486359043327099623369592952951224634794636372297114827538614631703277765261025050789786028180538143155035041715456942265052705415465120294375390657039449296725671901506757084237693236299768152836756065477888193587956700445590573033456324523932374546485780713535488745532491373582427994284000539634679735734311066852149917075564386072082441243577786535551435815881418283225865311211148131997220851728271242241081603234594984194312817285451475208348823968596604967928253993673018827288579390901377664694921889310859368424893614570536544275768025017172701605312958777246410541588845766884753529043444021311396427359890236026407082949840389841644227443739881048392243231973801157203391951420985152912546560608334796404131084892280745311845111482013952586218458732300927230788778776233767893322551311107154726827334122299881905869753567480247839285222095698862470792464890429480213190101078877481025526407824496705195143414160480255497134748546544284117256405938317262931309285555883321162656544522261114955188801017755580193540584246142233187649807672114002422939614816114217863462860170031111172238424172222734994676710799242589404086397709885663818253136030034487274790041745066740684340979233503268327937276392648888943327276453606217185916345108350885541270209426731653409887665369136421897654777586741665570671222825846114835961169301233339181162535307777323687358160870849374094046323253821055012541454354299415992470893603955520801319107094843672773863851752399049519950720968731687045150940671308580896089009482870934134158118712162376764150990497369293441226172433825016654918911046953096924082748306716964263065614280148737274962406516472148936029218405845537972849936909489208957427890591624395733230377400045222391827740032772508217872921580832117567049251757013695143540119787254246549668430164275196224374149047486691877381621617783596258728037096164102009267031974542295073713908943949145246513437430057099303824067010693591802028317634057455799038990466371920109173302517933052335931910997914385178570100810605407487621771308181788954958060994811016886716394931564456735931957804863305755377858169461731264380171489082434766807886943381023600178781337285198397138146941099309728639177502931297899274458193799595191365514294163912928757998296634386698310169744905797560283539067921936453099246453471739095835215446213607297460851349184409257486891241370283258384355242825799302376103919173333459081634188417604730613330395085363939023214801039374397212066297100088562759736295442693258909375261250625351791487470482029755776617580947496938404324642847127879107427737463434632503000307931231696098312125823416984079348666829287059103887123705775791105899330387047414395775161137544977647970264469165635170990418594414597800967323742370966381186087101391565357429242712896703941627524236867431291188276917541913967267107664249422383151183534042401639703962769784616852835899924274003891948261384794809509237046025811801911950036886537809842542362378543552685837807376544576092135821259155506189855135280256739925264512966945703657158111739166059292479839602537488736154256792051214657221535644354408268814176621696375328906244746829873466923538996585993644617616147099903772025239844741192022283133752544117810535674926252407381098712248065206001057057174161015262759706614877893291911327130259004222242908485706204886279211604629644913097127304297263134175100717898358180815029362434213925483716792888174585418769344566909134847614378962354365303347866881472561098719303138406326748894191544575240020602178971262898825060665150587399259793283537274279668066962592155952862227866377881653079728042014223608228523246883576464863877816541610300598935683058938552598700238641240102008730238930199136231456931735319856845566027129091993707133265604177299119020761775137759636413090226908083720696162891194118742112637358736661798513419689490549063977189120163064085568259998395948268280358503876279148281175962874032529426751253680436256077371413065415250604423391602252069355719732365012353589338101620744677126891527868339200738071221275930065735187109646397905725431758654871599436850613246975258418927983829959583234888362665447045182356656732478833686119137481980930192588300494914783553427144033260372069610317886095732977913822232374768305100441409918363617283466984869218485107942029279496994071281447277502915893259357432299818108356319308829786857936001446299886939793185586059678273192237648331323141448734226932797314198323908484583394006822734138477993532158497446663521401095634634728410806142170636815132515342553885074616801915341310292738737383362247977619361152860621660615534734791549340486312108185398279044952386946411366358523253878561995331214123083453456867824221927784817586397039378455720648839536465023754885280628418083085317700828706833145155928342413984090628455205020837912689117764315522335933872466319092136899722124901483666162227826748009190980826965914282971766369455889237088307847122477623447992204542691376216948820596727563038314004556584952054444996820978305445439513000075818925561418600830605516462289979170823817992780406692439778369401869512922540300104376523128655073416677938655602144381960532330594450720712204990326046370416784067121715873826034909661822040073942780134622364551361523858278008056244593197428149096110254432191370954707593977758222540779566319045788369206276309739880922564358916535111769536494126142556282245432721598544656287430894270308251315652506950339511935375831100428409670830691374895114809458979613724470669644780097185365764953990897179687941013836696255833595906608637365381158098869072388613207107120180177112670007986025143475008494379516031245428120912222201752907779149974483278344258250720215608613221595847235989229927271361635219805706939938178542573716817027493323269302605550840755813650310696433531997363187019120478957471115499543255253351304606677221067160129243185607916068451799451568439398764260309079163626517664433270614239837810037663018662843753321927011254044347429280799133163087836087264069044456520415571705795037319658924900565609523207600813209426813524551667593699231229895284320287919028569943388529674276122496383944379352991973533142712045184190727981463958448847111409383740014209449793224923445361918844088951380258035738377909704794836136363175026462594859485368618386401719368306576559164233448720141340522537843662300388049321941286860095919616713708085399926996759636654892453732757010573961093498842184602839965314971355470507191247971642121725833461581986330992167921030468995620026116679277836980109064529420119756787576818891191467052575354764903588747488575054927416698917213456796504583056359784075491871964003229177608137815038842244542605387270600987092587702085718624658360319079137756919441490443758495734498151997602260858084643978004845400874990697717226240391938216425283751138702804221548374554460739021957655126753083367480110981933266247490513230132217060400020460856722826047979704467350251262379620883805647928992656440226119448501428342667749272682256665547169163593266144092983626816266087076368971247870897557543027283802162130176136271396478423409687098069593113069837528474646275622282499593284754873892881978284656596113874893895377658805401600833830875196634031146665035540551206698552560161088758430530005388760244558109094761265434100066037091453258015323613617729320568349409339418363444805766923010860039961924179410952695513547363399974747510156158305293826694483490108000623560905724348370746060135118909215886255257344652403236594895613721927338832104812376111831986619217370926098607359797120406572789788082268150074107382943108042638087851197131979275434838377338235021484122818716472225530054365895826098659956149449418663101328199633416853783810941456480952269356796883761641921919603622621684629431218375041866325009914514938347935488638904329180774351571443749540430191462499302092407373308665567693426629972652590393150426023174714290982638675226175100939705284043259925514273707738308642283356465262111378659635145636487797294752023728916017523311324262354967351753948439270593844162808283482330139319930248756210321960809789650847609723825174962712102617326256576551457243292973511916327579643272327411859872445469977842563262375426430289481400317750388641130791637502017095267945028149424887338223110096729418159383311996749542027773831757058190168109789603841991952208175651467734323928612612402411269046727567743816221712243849768621569199479948457583344582326788968429257450942066293118267086846332218921753493791197943736818256379427040729196149585685513162431704334458133070462000085370810389028781550273448793977335259370700015329821884516890255993997578331889728213373593877300163512566327219346493184197915576062289523470605743357137923044421228818892156518933299355556023209437407578389008873998747529365643968667223965034765324658212708829166280859245138865847887914833547573607857957099153051773370516925925732794958367143754538360968941164131499981223032488788010862794182538059478578825918128779969599026221059410012741002669584950269938077159802029958275600068833519932937997395363973773700460071126536108460662244692384366959773722042158924900301779250668130577176870089615031411253799149170649461543785822887614231390323759829556439363786484534377783278751222956402144009775613184521335867296165526805334379832690245340934953774366784056756063754925085845837379714273088066859761689109442904984873547280708878460641988855592734254525747372139280324410784247248791119125163955611435195737742519153989127317823771054565711188264595072199405235961222755470189517407258769874695814686306012560501907253254594819644663721615469186174344010890559765557447745331239878510434602010102013090467354929812621759917948329122947840557003211481280130614636375386907203699924841623786393625556051997948542920294846754291538860606358558274393076905027743062506477002326407899406231640745281078088888659506984835816043877026951425925648954261385114371003292290895000013754874397260438222654394030417511435899214896912313846685136754246892429159628521934725956541270670283759728541204681543141324170443398370863322630618760277180651488694391510306670918728110568614136310235868923082142647831105006178512365722898175240249909593762635113932959633340472966946139732549817800845571322090544209573845222450539522751020457013643799032547881380369612393611768986991058206170254187292511139046968006542621727016788074121044868180062374314381639669085562471838204095754802342752657545161649387029767754661241839821077320249592719720748583973299786141499254344327012205192071764893129408966198646997146455099451440066667680390815726626525431226937362908197924962252025149502470555756687183777830714792781969964949206835796967649769035649883972999142586752815087582895790890984540655415075969548651184766604276822137537391032983824265631252186970183573630730594160901137747434366142600597971280249830897025761573118139576148291801857368839611055569275682322806196168523051634405198989155716761239180783145327914999857804985198278310222077464338156338391978859372563265392625495609436671280286914181439719109156895931656244478641709939339807083807255306758536440154485759101688478338272901298192946210735007676642067157934738044652452152947311700288390030437378043121037012473620690746403857966994906860648945990877162025302443428231381088085509195862342786677321570788464232191509032007777043150783667939513254068395224050723053955880279798186083489153237465054602149316948497730870264886774285527631331220375982303779403106281163832293383135304579758225366009812135582041312084000631678949162599249585462334269188835906335771847536482267741420216024570518152888214933323465606514301798562108766282021481208741278571981190247313533316164198405000275158729279257537809074580246665557045196163883607347209702326738674126009624608284579731317185444647860060359038245187769470328315357969147594312263762082294771234044539311612618724926645370847643256472815747916149356081341838051911197008937335853525767714135484543567615891637040038619562089784474377206296089917702430554094636603793270945658181500422592327876922177023476857370050794135795155854563666635240848825842451277268414422323653860172895885116465601487394157360327007291993331588424990395446091273351670099056952882949859298814138094053977144335693715716288014904534371367628892757092890247502605644259564315013770898665517217105775061457944152812470434634310379427915322496709758684347731558427983096443465299071736881164571140396788488731409289943285441342192863866065800014695287682954286434309914790421854992051569159748941706647221201534461163188278045895697334884708496499673267077044184747034527680027650620209775700729058929885052573618070012469408184012934786128615978799541113581208780146847370506201586548689442636366852163442718367267473398149314292121667462158261942048904996363685682228885388578162307890757594523955665168024455973640847548544805433592367931693864749936473510922008222229812376388044745901927988513417869040688399229805292669221057981752848581015285793178901195854792961593859240103101289816081930783891830000687852857369285216696758880502481946084891894886002298026775529428365716371551808994549477877007076307956643437406588908269255286995618533054582945068962574848359629733697517326337330045829659145901046005258713183991713483963264263691440637709424863687028469345943998011394066940847998565596247825073799506018436452156248920797009537700762339632525543531706627203540567581000294422592511116935470935015380593639021475048272174096024182020135670023495113502334064326361988187810843546924049054974633280620608119098336669436624424934601194415842641696810710474663094275737600595437021941053018028900867736024674274761873246359374740743932674457310711089181477372415674912431499607001307093992215378142052130560770096647118759625270216840290669731993534865020232491566111372120612663308210697135033451630127942456855129017687257964966013852266679133031219244951772893194942916223741069737413220206135759785964573566628865377363657288220704203953539859925154090138061187463092923075798445356838078021318899795996828763248456061648995534549863196688747031821431486315960104476240509340839152618121092926011561135658701396281610737937185794951735571806122194995815718057448540517405317217792160159616987578640321669327513813393774847277296357747035388685348103536730191744167708171642211731692192425328924488717486334246822895095217613584722297108811164322481359160626214504934468676503487259702932292330462273069570670399264135936517854921945796077859033861150254391999497728226940340600203287715348629884744724958440647001162291612914574710516497473139961577743273706640903725071796200136259479916803735899079227258598777161994423776034000657596014714997915360223578554683327230836744641904832584719058064217675309252900232966923025165693291934039736582348714462445115600906565057041237882272145602261266061683955409209212711670767640091026267890236889643818407003063834303710255614358116925201124671802730112979902023775256627784374645628148259215471476716413864057121967771119457725327840901565134251307471264543787970696402698652621165295388483115361248783919708860027093333614690142041655058135461380052083296421350693756512356782952734403407871008352261024236936513856882109129100866097313776497526967649599235654784402335134304753658125492671128097297678554654884519707866333752645168960499447865077134703665162814028623224799562798478136667033968068551317415078508105144730272052231074566817360036312774450046750876324975232804772734332710022254921143840455516824015069581090330640998113547628707867080714877963834004031737149272450764050722029695187615880596366763872471869163568173162803091849510305445583810319610968077071216938069127240981134588043793873301960440346542011099698396417130900659005747192588416815128577952054626645352678317178835493952077602879753894899297760671202161249539027098712935213017969097651217041564966017401434960252779934659632461697293106799292408000729373874610512814258688271810792005646752383099131491098355576158490492138148378766980498946063927958460818537026180709596267509332627131877578418003450998466788232977649735081736307093408499655039893136873368551861971223707232229289452880546825132372700875720872479589371551769967411799571834556482299192989963545620012995642391768295923070319398910642505314522149120203010618126877105063724493768444195141657435047369776895739452262108466185368819724064302897071752172569406808299253715483270069822242699369166695391092178221935400633163681133943009636618095670362554206996153745272783046696297077259163416327363903076750572935622857892784358972737127589284912949679961851615039644532739150043950236123252851829732276035983678755190811639284014967086273994903790613753619404884307957285511379468915567297716935942912625118298532632207758001420134831602016124237695625929208233508520612182657523315134797054270752941806205961485895892768493076246977600815920768543094518065848360446245542296272129109366900035013422439362466945353308149315298031547808768004515763316898743527131760977923698134444462753686656788301806480665645464598513063876742484812370947687182291006310796523862385771386404718274643047716653310877177672929448722077238070529622033603128682639490014970929636676215862839830927793034284212846513496899615578304077548412364572017556643924508334733157205272115786994965853133469074622137975602750568124390324825777923139593878637683529449634393133058740926463958811514109105468029772658645384805184275045289479558627377255428908422082017707528639537953729942537608892315706267949413630542639679547299887436958185697434587129858600584232855542884875831222144799466530400454430683905731184922559323140045065816961341020552652273221703767040704541882658496982291608736022573720139565350542014589982960456586316954302687331201712900365396725102062000614938130919517630965053394008183461445339235670935713224046661258494779413127118152870909883556315928930398876469900504449188127718111992558304971743280862866255263963871323713604336514505110076764911974269128449679415526755213838346545156797205121899681160987511170365768982904013490627266283167608949853447012220341475737090052832747042195569298964906264642200669013256059385111544090764593123485859136535497839536514757719341817439123391989607186307921566488892971103582142355097131677968662950510914687802605781629705474036679039434405823625737365252430738663934328611067765884306660729324970117712605811692266438113263889457363015795257327439036575387232857907748632675396487056362389790940568388026651160146721363615068653228866104547223780387419332150211527353845331490047658278419069639009009016256133636873482923379471490509900474005791690672869167641306718575531567905796231749610481323045201284086470084693499027632997245401295567930319822865972632182090396207875848082488502243767891126811972888009511115858845891326610701440696435225380648498204851376814759616746462723914068289334451521627101171115000908093534387580394193470655229764420343534134169189189824673807385940847456759064979474240200881063701994231128963681641790111039565789477081301402810105158302980242972312713567157300911263043009999183634399129406438745512276657112180630637406503806903756806069411491453392449531325543240001469510011489121328909244264477596017467735996390919282003303731789180266979839874719979873115381488138175823015515684735355770732204663667604791342906160138104605853867506778464600874837593830676611983666814828578765958695294540345332804820597183950399057552048809348950952580175532298305539434982559004538307076498850605614983183429595411843571948421671063132517462585357951516097625464481544564875552082671592886328497991418415152085872132920629828004699871185729775191143175590321606190098142229040111259227839399372524780187457428752045448875388990241572562310829825207082638557664490726244174947653508547276364609798119875058301324215307619905575006838924018620446119289867818555669551405418673463135475289276331650389822521300279003953062101981286644912549843069916413107653980739345240493646567098422464597331483522597236431085144457466892364242734701225888495327663156308986516414202751671412031017320179769354677006519913616319857207188651872809581348538931681739853018679728254385015527418992000165439448031456984883543201727803700531023135431274875708700037308492565724988298808153994194703686837026678365468186425188851003114114742151512181222785700914229803246079028727969101969947342736554853141074142134022834645919519791100356026240933692393301880227316923180510591416711306872352228687802336406505237644870203236839658402571230129547899499247158279492577113314157537895549153072747605196742838250962719287347501792481530672875616872545058316222339809770018442841143623158038258620542328617827630358718605713914336903503401718445117443383807967176059321742431000687144242855898999058364093609351143362790291231442485968345863173889892583912810885453267841209266592157755556176774609996884698100395067262961147128802427204147171645725821400268785329650467637278850444308792868685737672432484353229744590681583736595604204215658063684294813575484242909802972746209647180078587945340028925285511131434472375585262596098766273143610357235425359089014331343935869514185790694346493122760890962355287154165320513928961542223347924281752434506583125005616709948550403467492003446897622883403461544518872950505892211499277298298428708948327668864802601824674534947622779267672435419791022912548290846546611578614979617546302419213167061132208726126951932250270189633997094857600486792610800630275071573311112794514898812848625282252597095790164331359043420970503934936624432612913437112925387311509864943513843097160861624335359669802258638729302384929449210897496562790297899292119823726709946745052539833158549171157468355389974023434461843312233322581876885054435427971607499489188770105706944477948242043189809214646501568759433575954048089823864478057471864069737658336126455175119660215491440031701233881852153318667931412458194101250179877705590768839249314060145415280278317955677807060809570551717807700937230514404633977569630684069949673233100742615579261562374511818046546641552528367640185337672237677932440132697957783179295821294534316516246383361027206311654099805811921779918782388092503880356906308397517451164684623985782470350068429288160846232670386075147382429376910331106668899268351132906806186877242256218488882071180969963637606369024228978606311986809592967638210993731785446095554552577541031538655682785981388780767063465096458494857409685024869584746452754473562063985314134342877813795564426766535959579901377809565361347851883262278049643443054677699861216857111719642014901231107204159758927153400791059850324222230998376140253269739565998384867955309750296629635589055701895814296327964386514818175241662092716369175145323275349398521987146283056887551766833467744409180086003979976768312192444111642093481345243612325636917668540524710438928866783424901572596303133671473328311327534617572079597954377969951501771698418372337896263718774241016947083835827231068855922568459727304033346495137186000836166369766123341430197865655787284433380489401946245238208008789461721901724801165348275477565735336610536832832662180153499985685282421961667024195413429683077160195038116181552708202713239511746361920695341856008500760124320779241629863392246125814861087967190449122264908048185877462958263830879468516643805815702586664672623589101299091367917732069195159717205002104708995544950602343034191312712167684510559655549316356874011620861549386887694674905008120159486031216192607905460434111269491759394706087132680762701312316412958944314520222493059377675444224227811117734527393556626436611428060027608431902940707026091744020805760277433568467829472469317708972680710605825642434742305974833853917110768430622557184081159614132519142612446849549787395728780385820407184458008071176259748195486476155747901244288740817480788417720918069532619529116943796434937050210143536298307197256840530731438716947521686476584461063060859048215667831187623169170344077850107538770235375218950448800504704480448142621354322489276737202953025664131534621684752880292983999977500633156798220698600947415021298763560103420921120102822690042624209329398907224398941252242143059418454488115443438341275722375607430170128681861620598947510151100774224640962645840221555595784333472435783092821503499648416735367149301714155563526401938460084817505473423310196488334308762645737656507350788787735683433959899128484232656631550256216497042888545889514704534154667335117365516658480042811173860005582670554317547857984669040030734706782601234756743186154884483232876789250605080036586155164946799075632487588263036280790283937148091981985607108856621421893883401938680219523543294273709763250493362242781573412054588719985568521440457595659189383609482679225034829238976686108470947018586423964987865978035884249836287984758011952973049418621580674796935485564883984881462593550361301524026538987060260315712979771444315007528462564500821425400946865164050163902816966775876468073591552497415399003039594184848062056884324552697779864789811781204339258006928682949022396911984842797377538788610923421856727257293617134470127401399969209233860287041856755843132895757045189377991952761647377576155906562733703309425345492321183149359894071996658725971234453690602726764479891544410158361108020385448706558419367635168560745975378898111683545754778604666488065428664930529490409935547265835891023222899899231829087682970488944559017012344486712020894313641707592287818488873878548505066154155964042823482029994300656766435707875767589339985894642653613450550204457885339808653914669540898913477322781335361550296652889570355856709970737816122571785850970036163384101158917127268282653179011470833968525058275074336114792253912409635942783089146171056144727133811909514302918838105724209489539101210505786294926496944200298174158830578581956484136447840749756484626713690406841930847251550984860715807866257766777229561385846897380439377765032502404001467994330806894372461194977437387165693010729640552214431863115839937410341620907239242515174543198787138200541296795201121297042863992083404907435650674499639433447289571250766458941664556362527657892276823347924644492548920846752127424000406897411329477151179459526600109526517163740184706069219946167655616939173368251338383859723064213127559387059914184940838396649285812996502289028965470341453373178283274347567140243961485959650045093235555787415999933500864751732504729883964018769029595392327009110199212867584890526631908810739373955769797038784138533695847285072498491557046102967686605554407199792392483230673775792610994540486050371757551135420377385383144671890715176977152995399183238152654136850541988522443274790065417589687184030798169801877841621204365886728211475684347820294924261851250424157404914114840953359584749680153173483680549389324924139808319407528446202628993001282984643994664892386084656174381758763197993481295635684520604211306126819442330156280903521163514821496936844997041312360536386165096317436223301657722436250670830229079525632106005616170051819891500810897121154105985858299842009602889101492216298130957628559584166915934390426445035298723018775315167101109009777153730082918048843195399759787304868076812856015138683480180758863278566082872791399913107318224947382284679503268133108810146938562681156241108371304674996473696742124594033980292303893214214978058736856904893897442590261580027749101518566364578569712510276304233770594454244560689805445595545128809372974563820399819941565421437540223446999977674657603272052043786218823883696597681613798401403950119186639902964114609862633653858157336096055390473335933084841421365060479559829930133029391265236362483108374102488863941938208843051815257244152043554050369316007314338894058966756827151579567451757556647578945156346913276669255645834076126541267105570161404443989501452071744252115089500104178346572388438250005580674695589225058426716749702147267985865128055666172757575024607193553381899936637086384244480570016660092880121231283430832295471378700423848870234124484123949628688452719708351404329011244913985416735400693894984433876902673705390617569161538155534605116947495261201804026635036636784989813645008218061513694619229222943614104697266270218059551189556884134834639643501478172900244662965912712969205663870466661810343393306104509701611288334032857734819501402936801283305766707194786751461875980437403061597643996675220236781857999280639578926795806395353789652523842531670229238546725353476767068526085575575972948284553814620748206060531104387470449742167938546402950718587865403873469153373976558819464504438400420989814098145577717050484747968822571887765993731179867233775776163596183806198510677834622698539405402691815300042240384681004469382706037051666616359468301546598832838790419942402203905995818050115643437511261593832679675881372800406036208840467435645801462663122856324551863973166974696181027168628411466338703339269992204019039554037258159317923388354330979971693617022686216133111602110152187933524484431472901664070270921691053544429637133981138963691364596421487424771901082796690917706605803727626124726014350249276836850820718460087252260428161409437505039511276921826522463887852053691320503276880887242820412874414149879075285268878236365699275553280590154619753221918235980118749274042102553309609951014181976362670283921376154368316121856852472003291353628455396787370685662774687877045341026082221147853547928271697958263274012874506696705556860244620319029897027436606598885120827976778529915042984196839434174721732952950567619873124634450570605767335558285423029038447706223449428983417912780762178618860420086459561108630269845300972950074339147041046879332766861808378961193879952090206496251003780467225271954681121558458507686364126047664736502243157419759943864445870502286718376309052760275193841590425834829658376114656251078015372603131419323571367680752322015464155916415154627543251180934448385203272218888008767129776592843614368631071198776834180299834117553252008219426577560622082634469385805862770276221339968840271391951599379684503087022457623216896386836660462962348443002742726429064420776830957616943006481028744652988734951716268281484885351946170973479721627000594164636367797205021000116097316983341239035671390116857125380652518260602011648242162514870870045117848139772073145946010995687250332492348480402312485647066479451483084846389060223411581427631834793923723434252857229392308738027420785880624299974333405581170692667530346795486440924488335409217685505767941506134597846276716448866420465442087179069278181219864829824798374941408827582557873587045175405304997846978496923040453623989891445517411604305360961151002171977058559839287795719569610288899423886083090003518791289990337624930523572194208609988490600425809792346598841936858778209597706736011137013051599683465256425605818409886214778743981749762298649126375207758945492510346482001628403202744985597856622879132017457632177662441589167644220794493640743000163665490923581427308951931400107238704644150394867042008256130923999808982138761284455613035470213881206477460244479727980407594641816336839668743074031407117344462206768876278658649106624230416095237256264579406596979866481647563236259608148988956192413134416913838895089091676898956395507611400762109176470448949874909505045149994342702759325885023166199066192994461602210671332065877916319409147412068354381936207179298980832684187788692614608567058755031497747595122972108976509876475015585042125606750763527232457566161610243335606506339173608219393028903008758187456677736071185779305475799003898442929776035143517569870191814838277921110409459178951353870775335105132433511250094891168161431685382690871174916199647074977091009273700627877734834359312498494447199841231419169578208510312180043020982951195164959245496002934067436769815759749428070155128340353796105738606125815686978713939970769490974591108730779479871083038867476507289256236676524099736580020761945689990198354919039812475485891326422288769132099944271982726173673283037423769979955101795921087288823278609362453801397594214309613751137440004653318873712771420560192102063742823199789607460945165726182489467348500093267637772942111694114227574881414551979642528721054173944900155911589506676096208776209046796264038406677829341194796915742591875806257474342289886709390523359704863632807409359125494808903910881366272010220358703677913744361736410984949631396168158800003274738925882271416175207853018042110080503989858628823612538832136891693293779937227184995997553168503693673149046882175091770853280528475812669417775809856514043287011670475900422084520945458568478952583079923106773310675223800485177141783064442022001586060535746727998409785068393063725381336244020091745338119184233022481454803879448339896357136041381891238524397899803618408250196213656538177012228893456407585280501608825848586580416576526580747917696971780885922977236031503344888310149613406849544985195679188098837617456029198694575215046316294960797754911064868848128263962855986300667414816112900114393773757911830243416430428389198795090613975655915605115453966888006775502175220728272311987225436608831195071487681413136079584374301473154114278701798767906963414327290898562395747957024281180315277323136744249605555470561897547317046383934919808478133394057746464485453854386792740381372080401130055310407393429279003572946727960023337764026757011738764861907745997234133929485673163683833021925695078727488597618356330034063587819546650768343684829205423774535397909527172382461146506558054884742832086372746144168780426814165583535722745874027828029506711140792507859301259135069458858062807139856570365551814103247293018273382350866914381602392465614715561158727880901873092534594485026575933149970854432806760186378565703725979336932810812622782333777509141125338685423935395251796430534377605372998791867031612823866364765034699095821159868643456284746620474368187162437214136953480689364291542820618459548943407789347676313489343760244855182212500909989415529734467599285739415495865504725849704219370860210112544207768582858882310311925671927538442738701756311541550070745632847231161617172043630878466437425227944091965500304707347088668622865371866206786348151463205405417157294662373663132059383882110201218026477386151544389411567221714905688448319119050584450297407030087049099236573195983034769159945229015278160985313620872284194399302323389892794533013646918834892662152009563286476382493302372057113608395250580536986356429031996481729385449358804975669107215856418010726959285700131323543522687601791761822172429365268688179652921827872122538189267738812420840549354607990882745298823668811033358761408134308297885350580820531205488875935411936680736796380748207289438869354040231246294171338057264840647261540212473918228132676369822336710361625952618072787021988937837084175609986958541865268324624973020941870263187311918861164724809116548704756273316057255901695744519812166238335822645366887500657024483588539107063520190633920486776026602782332297684854011524898964939225267537512222402386773145130081235528072769516173598199657704147992551629325899233665586125791494881438242048588442552081635580008519747573505764394484934563295132053512704027014423543094819921351510649883914566305834085109939190864111234767627265799086498272172906635386607444921995617665247463382321468720083819991987926363292555384703583127132897073448969989956523195358953231421546923566009230681708655105975671340063046312406642577916841882020883175930859216761007533364492754411139686015440716932649773838015093709119586589759391235298473352053203776277016851647027233781676711159576663991254750299091097633683095827886731902715639594379471166659937931091356543763392373158489652429974895138837644177016701850301211077647804956757893573265823181537648206372901207150015648920259041446243595815968475465290761385933787079540925105195847547822602559765715584716662208799066246004066215270713294986141328020336312481998118850377052338495623432192650696047094979058501289154628253931817222206281627982483489024955259927548101348562584423943786175510493799820760920266460262934243223557514842040411800071347921337352883533658503783699247626221739602538052514367399502952749346335482312258384022423834457475002817295549028400952750106854956704568832836695792852291077794795281968824863429187546353037772277368281547823994805499849641304848547534258017928417666699308860973276584739409050332072267666133944983002370645025941531545489221236008003864178890257063558315874589372537764364775010882147318701456868996721944339692699033781730573280969159053816983424414972811459224634163941278918917523792091304105387008566750863222255304942287622771044238838194534009067805784853605361706378433895945132613571687213421138037239460645974932877850938541958927632848210387961784579672846411523973483340042791102720648061414276272410375661041403333786404783993494407890991026344773940387143281408555847859153466523028500135557295790079778521033402140235954704778712574870931692326421373411938827643845038093393921101129598046898314384129552594085168618978892211228820668895868044773758065145264578808801448486948632283152182881579133874456424149474069177090833238851848867463539609848354624418066038109711618597229098176527064318270622180706032265836376299011989095590138112893909619885527062661076670105881481506888429447285940411502235100609613844871375626067329853735674064208151732074046156180459811321813037027894453260367068802805513118519203381177204993140976544636018400885482819911108553271110681809459041767324811529874349184768134466467749658153228285223663174911581055792685641083846296127326813166273725141740094710370818065606804397767865940116425925103097577358105119880989850928437523129215273094457544755541749652923736050387912603393769265895973843558575467266547654277560304147380698627474617553920040774563524644007016002912099760842410233323654888752781207535121097253761963158081033816261741598400751255795910320340017747008398165422303967681119211100078117977420500871873830644824357924141642048833900979195713407073853967196050138884006368687607401751629278984292767100520839855867530685014252241616835463095816569445662426706477481941354202289568750155132780348704023399621717535627086163571030795888553878540738609172245647488877006082714053000794608540174739495227408973986322321592206234243034514004523046339627837229777334478222677002311721606377432920884730805879964314041172717085526489304347684084752892805496110087567933945749277489472148930641477331653892911353547167689438607968601558512047864700920824175647862888831417558780159442286795298081056497326209315820822683371385589862921534071485508025810722845748177550080915066035833038958773968255053267265505186367927044473275751726095509954467803457933456849271632640850690249986101674655188504397971888858283957295053427823544262142814894609172745118828823222827938884989722339562561439085101023498966825163960716117140095649254235747693190159155101596745715139398659592188996549123466387998962661796168776705566094977835797519172680244299423417453776965851389458900657615231104026343466820970284412793104568672164868995016577426157782934082384428225680009703440696887990522830288276154954891614874229874579770849514051540464508287882176791091847205853401594040432129705563893425238889181580933467154126574525751107735326049061022919516055601491081889556879341027719828933828597645884356948464265450224640277615722339697587804219668757838525590768518368867975772579204494638814149289133086238896848557636546168075755869222977507147014295490738375186767406415443934233253568674566943140456770279203457990347575814690335496939307134023042633268110715523291670182776976359616358589428196465081010091617280708826175397627356247488230025163584475904072870817075168349868035768021528693554001602750740840378475306857824618376335536261672457453566633363843681531274866897518296088781871102164635842917958602263144380499115372273959424855031014322878691590750771695211023146034284467193785772531986384904297047746898330812459818669938082324589131524348501130867402578779420608630920013851868902513781656819333087315166015553203280743668493087574043281055149915468280084543726443445200429762991441129500329331116538457946399454287716972714871904358114025527630726345534958200099934874614578846960401742339010219849794884768226882771504099879238850801238462256242737375651214718055334244745743558453544897781613300147586855402472362745339442290372990779447065877484700360515689475369671435646535129741351777887985693767251566651273690813985130399133336451157880137471571918177097600050703729318813617472257613526456477841322214321314370191556520975405155556184160198471734715666484830598934920692578185628171332443010670767895077501319058304069608563967951198668613324420883304437062842581377669701978786686491512550465600490515806397888631027266639131311292267581373393693673617326070857042170282069765015095309594350761607021388537644637487517221654447641672153556420545972714199814694862667915087677755410759941179709495804967381856219528382268986297894104094943865119320312198694004348679355782844433290443994610150774321191684428975144763306274557561091051995945547386215265211664625976251312485258110305010066345252085806947828395547917867337762765919840754128605347654023831709828926172875083665879832664700894839896958026690209851308554077387485924661644375124508411830374543861624547509651374729697260313711932787939509391802811391606809322879157791297396160396770084833390657169269970046145319400859743182220518320011884283194866649962188754964995594407302051811673885997702518819861989811401933735377675068368445942159372271372691373037361036012707256992592823722556833273468281743305809305902071500812056338383797837608972995340400638718301044033785308146433851248110630671126586211993772702278711511318999688997869861518622527284557719074119662936144848623717954861260797255431777862608614069324058407225214579378754080778401679214384226956170745346310623649589755131833415237018980011968745328206904730314488544000515444980521680026257071298131417777749629608608770961942299927323873103714329169384585106196503395070171871055042476941987187375519617523975311640910624348247842148555561624967860810060599930199274243020531051043680563267858701088574551488002718647623390905795255542296051231759256217569508961317456482193890892366393481094624085367766026138157231398402891089552620607864458515900011660190249608813741585845374891487860702724859834985822058965983746171231061560821726373231604642845766480493343134873372014251183829544122963853715370925359052958310441889453738653124197303502180616789770550436734497813923102680689599217507629667286930150758130448370024535061796618790053361611189832016601578889889757672972347554310999515776013429534020323028355876886792014518685499369451538545634596757911875277666772396212492506980164888861997796421219612618293749832613289064814045033410242441916806983975557676671274193243417255222474770437444811319701253594880872023999420270511770327191601267819926059085001236965477764565349753042519664199635344614186884971825696632594530996332127307103297270785568182158782103714678462568257050674940457321296074383090319735468844736677690774082223668874485345600804998059724425625857801350360265978347825265029749118439849767523776710386003668848557496042917403704367918214566829998023941092178627842187693539566947365302729558358781178287333317574779035532963469929595837854097747806466560946104106196924203637126050179571749839455790531680055428650279411317966172852602949537808162473343520203266154856999296285545847695813534872226008045611682171334549577221076984640846470380761723001274293163760219985794284910781717980381736706844075091936520998129309110455910843751299969876428915605455823192074421358476922522836037486982302433428458699211927331132238251316725698877363784073505594040255222689609081824549642604511026361947225660590122136642210314432791043200261755090673854312438635614284321431859192953902840055923594348391705213129418521622490626298743941043479412004757162653363852975656999625556939471495024830137746414386441424841679590462574797150454036779151493311016225144406049198146362761824908817470996608735610657122977959321435324935410603099755769758621955340782972580879688577519341454871070183085181369611925058592222843598077934238613873654705868709872739580263475463785343763862270774976976710007057609558502603625291231452621855859706531210703409565448766311359603009791423638797454796860046895649021224799944343360662396252469482582281946132032116763260456722648438223730477990039500195324075595191458021899121727449652395666825234410125606387720080396928724940199243461624273802773195039240350000262480196372689867999197227724006908248123511203699361618800715669413323043249864405662021512970130168193738308959965394897423140424473416310027618487176754024712277748210987085908124516895948266520459303036450186609176593911888440153492764445796968201765342352555010266326048241755171738936715013529701390145687630330252233082085515185913153125538136094452970557539111818202048871997377190201592028829740839726754375959435747263578758106342712244359982944152112518711242809734798657042765631215199857324303841001660652699515454537162606156782122976151471946774972180115390668581183731516394868843494604619292440704433936806137253761186687258108560252876905299724165007222857407451508230563209157935318298279767356557374573700465562309100708265903007702989193384511839945272411697364661532432413829342364677233198713854068958437833396665571564827825477855806328896320882801289285038347646962831058498960485273700711584400390548250453566904693070932013832018249334357957521984652680798018938101968009043577126677681307561868431911305232152502033815047413860159090485964689606203315659545209020118403988122620700380970147309330932436670333376421631709826707358607549929829314491559905670320002268922430990696679163941774002621721398417458829504806961150430706264379804567053387339899829970050338267564754475659652415414930924859262690771512078095546786422101709240977133312671194311260291063388340419981501192721356793994153558875031905484840471045313816523539601317957825708678040161304291379691928423424693326024069975853943997396711403403162448661853973491567469938332226513640206900711606203552852114316311611231962589959107987065652627341547245531606003959833752411669746923915266612087304192041416794469959331157265680187751003680018600074519383023724198407063035611498453066363895310338917926719768404822251627455713896892580437733014916033015432529752443988750949901670999125223220096252314491798092923794617749351746210565344288693924137085607960585599292968238071153710697887085316378996805981358429895135605636969836674214952828323820948572884644656750713151620100798309500346045944042654711848275373843365461027382488377976241809775663012756098154534820828986102920011458277067288507300259273808163432867920982286197656985017542616847713998355857053066043115393447025456092711923214260813779513266153742541753141557257035303216623855127291622730033877772547944966392821711808849449698868584652650574175582298849827187666349186797947348287771713667662565189280473655176649398593564152807865914199349246048810333902871519212414617283478394076279048832264747639724371764710136388459066000348709242955138189783705137289647261087128505284233496448342867226023850353181060332120229722514951685418696535119947749566485183551287046959082961869002997151088784489970725123874191701959620677404620591067804427198599732920462177657771828411934870757311992644854020104651300475765994846093778733607982779011834668560871069216052994107207275486241767791933926634469924696458244571313607870834714170052761441321113944454863955509521946637003803724425339961556177378342749003115019105391516418272405117718027807911107202336641671748681956283157631919356816236724743232092569740335831309715112767844336432809670489264299297023969396611289489515651774450784806087008917261995939036776191482817314053070689149300342871393363952877884150588275484336364415689968189901219402628809628190729765126155114673831905590626757539158600824290425490060990650000549124356988774103997792272993168515248356769882284727363657921852195486634707980693963893572146413051336105159992708191359211166395188627083370536644368590944997159015469265936312479376351264392936158619283607044536958528668542725324479585914216943214215787924961748847008741038717813189488007090858387043745663205326393282175066973908242688039091473896768080056494057469419799990427661122074946046227227510151958026035853938216244484315831906158222938450521011211961261818397505530325314556148836745578404818318264708907973817126891480160721771983757639828979555595138432027739587977850735922283940831387009273718959405677028147362171749665838063110207262291151135981261069702477015186359458777584090194942103973914753372990275286964977316337236963237468661694616579018267355779295037493458433236305845755536573266603504809327869276654488020893469039589744392987094534877542669583783565966907803604772795827332140521665392919063395258698312844068244064546486348844242971493270879681277218155644278330831567445225919528633223314818926100771432618319076048845384767920885328780610077447805788356731610275482347732791318385214136493056139550920528500773541223931966099141697363833681922456310989337569539342176234057158173722409329211595538405977315087243780102253951042377722687499666722668313578202936150839285051470076046839125804807929646076691201033706954675283094336152219359919466227789409058208774793880129160482522698218149013551664757037031286563331426279517344911530869421426304985395130230246209677515463743547921273391985711302152039227048547896093210049422484624844685669494068429576777081617680307038076888430344522260425153618614104924192853983162797721376478710600296539058892026098413004948303463197237970183349477914249152906393503833650393620732080687971306498519061989833135600510278607217231333853835680691226996881159070984754015552161109955712499308163625084260586961090977648809989724881189652498362475002614159733363716437928072666366838217077678880054796037367954776437493378942372816348968800620457574869664068239636995080502807496618804575626532410825445980663684917696316195422596053409576085756300585258047055540870608832124667882983853506026524936957287571205018021670379687859186776182347818320233075459259912910634947611105454908832294786595598505585354547856361971876048485802103666555356269675523535569130359147675228470459698228397404225150249911284740020974779988676378413136966706686417824348525704376445532132351391957955648862009615282441775608575791417615948661692757961696263832877420911159455021233537304157236202562374661812328772143969569449357740863340828731840060964189407794199240849969372680015529841263814632653387572999660640258832786518868310543552793233653680253049857661584473041301839855948820103830062481244294897285895910098527623984411344014375934640696930625203249305427405890150481235341800434514526916003094980146418433273699321337979560816283869234085905077028854654866388452663994120181471561918583795755286532836757724286719892252301387789904114725892270771813616425286723550393396323265193598901226525635023255742680177194396997621435301811144114651772521439412321273926074219908391191522321834078987384827099827445407017805558638602615412125314108401752216132731406859690077725619301000381809008921835812136974357092153785882287185564403036290206090149157788385654302740106596314470086583461294170027015623462503664886777588647892170297165523290905667844875668018144956546164191823175941928600188688604333246216126202614995284849057201806847885353046635014260451638358940211867606328997673184900742105075474467092991777264469570694489768243642102086069943346218640244086601930834132546706473647257033291152194156450919541703529080502588742060290707720551912056766636667418302624361982756709213841018636937278821341866661981832857547743685203238763622352456424387689129414599737521689506026933758479671225558179344946851141672814090552171149757846341830014313517186176656148508210645076435627120826551147601749657724017046521833384368488939021145107492085384341668778091077755840426769970312144982030289986721209269057355645177834390777329233152503162133465313386129022436009924271997473696767576517105812488507585500747273547608791441914156520077789204582108125551518520618453119987077011632261154756420423095954708105420031891369733343747575510584572710793484612988480562332044756148008279101459000315017154626776637644005707144103830972811134950673815943480455994579217571197151619644638336061777267338687364907362758357423956898752781881832588235682490339393649162491761007978738711678158205724419627596647030109923152365054786527932772137929179662003652554465461942378502363474905223720590042990560424294003516734555988267653258342945841657333560191498205538250956110058367193472654169247816200389689142395329697708922164558524987902538179473143357606404686285634387942070227164016293631864755293706503506731168886930972868071960532370568842636630431802741729190040527679471882056348503692013859852465528630007751615811433460958453546127172167078311001507650644165733207081551499061187012963388721793910950527755321323240878959588101175667467894674746775722447988215156036476917374144370741170525627695578087302825509815916087832785290938830351076052155157479678228669277783536012557948720853333149809441997020356053758433835375623991650141624416278229927016790263251481170237949702297671123740348671959245809885649703130297236912360552955228843985279675150120501783733169747236188421378117614491200633767720089269249212891794495312682247108368763648543063971072347704130383969271189952663811595249832782721015784997712796861252860718749198047811977255694272576185141999830243896417589154828288580274191750026434329367157098564296922498490209273402176707160749091154548505765305365752578965512795460616770095997908675350396557289870212509570008112039507592139095748968440416944919876898534038257088924436180048249532014833498529863189148717193516672275277866896838923763863746344509969043778531719795828744030270744915486755853764800168901642325056372331647510943043399363253995652261652769952229978757500880588283743759853555823826440731384540707164662427369811932659188211028443791589866299008521512978560641509610198513128910247900505847522137646739530206368338286810563916383744129920201913071477915310467439194386614032884643086875217303570665645142861284273600845504491464721318087807687478136717525876698538008106844605857294049821336703441539391863276867116574785040335408808793497167237334190314547998558786470702875542170058698669714126300079096188359374028576713945214367397877660478696758926277241587157413024564472465043897751111278649364881753329812739383427954186597426387356991757268399611024708205265882923055918013613099368481167854277789991993815447904632450106645910672009920282888680926432805559086424646683304733037590159800218314022325425083751405243948982020433127338912946115469761804907579414263280355966532111845501835094245656603238538881281720943005490479798300665709210900179331113336264466497350023390374632723447743292173616762515742767015303584846567662083921067723382837619520259437004524941100380937277049250281437522148218682399578834668972204996928747846740899399840691255197336825112450463954742648704516782646149806552203831433868576884533262852163886475050945639910723958667621596732903832040846724329601410232083191273327606231313736974672738099536275250881055973807311397624866897024770041970884925762670219496903108333726555881343052798761621935689870597548297877529422220019276284224598626430481700521675002719801208726391844070838691046196947406426976925237578978280168985604677035148753097435995463222669302185268238222476002669677429392147713192975028953258027962243551440120339307459222248122582625269319155411403461223192801473610459845625629435149823616001497256537979628061226396205311302437832766350763312227660671323488429463042441393475238497776034972943492900540714598029094025832395662972148997547046620243733622240643178344440906099265952956180766316416755157822446396360406384881694399714982712880451114115721364128975238788721307916229888772128849870735531052521315528186777207089664797967229880301461845860715592873611716619346977984050727191538622547080560390806255557062793723561830374858881519322837884025991896565075239024647768526626766628291643294972729536585934337772661557809608039374271021959454059530803762867903299810303594040793860892090855641024054040083523154884591692046385893981164541503076499231344425942844299734586614496683016736032778994674849232269447119658377788796783643623365520460213531252088319052392075095788192104945884630691152183118603737372867732022310236751711726659174586766385410492977653217810713783802086692581543503457256260337576959331561616624748835364225599642030771825070545019640531657261865906234470199306037794937912212029159855278333747967709755817379717579860208382914847289090000958792296224119519332754486484543686880899672588553963311928699324721497664745785306073189480517469168642032527311087601716280641905260275004997047442361958844317058636895141508867252400501267906999511043469027519043693579462524860280345762608273171007193642971093949708184355134400080413990925485150454896956547375423705139077145756689639652531363451764465527929836424204987051849974034881890955166736008420328247220329587843387027132774087385242939127052857936736052567349415310894707595004477789151685240749391786060902561043235008030202270388278297931045282245121089211096308142675518208606805919411929304701103068963438569584635998271997777428518187968108486238300732929724447738591175963485445021721789471169348991781829929268718948304204790634696424808044346787343608671635995483481019498892168179549764904783506994547295343212899121396782733130305645750783496510653664580023161216735916967900562954018771144289922964657858885230302891830413369848256583079949369867578863674340684645955062376011587203228674861400568569233226838559766419026746288059832127548158131804313048655579249268898732494968800336218794397452859536512716381967888331330242433859880199569461808357197881589362820987404227925250335092029253531135629514436302091236161775900231824366222909814893212011676166939393765806746494304896092057066763271922635892095270345312248436480149814557220677288471278741735667618826757211119895133413006417605348046659377167385107888893529681154600315472708583827259420163792783435286841447414399802364875949212590805595118422283115853658224330976768349577744684937512610118524184921146518489612411659981397779545665513413571638441017118582306551821713232528064688343160894998021290955061026214273023683979055762881403334535298677227941984593433838818253254600201418624467652212502590597109789422411841737549098107863307237292611564436943138227756916892600744507046563811883165121077812453150912575507260564801300429034257566702712656858653502369753954013145811355230456666436631476775457535550505783822291250854234783132916782138587169430356183418980303211498046226799710398311169206860958236593835933079496441049667587162523661521783314934741029186128597391668355589541933961024065766972082370674927632683600934340244295047142772322316678032189159302839182684711416709122555371225310289034618775869024279318744935249003037008069742734165191091334136542484240860648658429161997290872727370863085185011489793186801033737456206289107326187406183066381960736074549726058577683023178653982873747373539521483453745106972387372846758859397850883629520268578482637706837820638129883793437479822745711826895274856752249803089657228261080638267866363119321965256462314226632171844216102702316462359865404782094337140477388795187877441265939789926706744820068901902276791338302842528466346030849722681105631934316715947166840374828065387098622585860929443672227006008366386265871149380445919537724156020102818030821609808284535174622957345637291189444738383286929900975662415443931838757876454851403097752524781321502651535818453345253356689170097460564452644936350998855381305199206615868827587143753565203071841356244117634767536197624112455132089852489484247244963917559078376422914212196136608451659124043799617760601309899526612818089342741083412999333227126138438877808934097416986513295065508881172405555844146975048819931965181188928503778400648600634312618194095002250661095627607207946785914185159698230898578620047600051252003909364517907277815394067634789672495954229261452671346756796558875362936495156732571353155566336386459855376190696242858991605733479597650777900546414655086845765234470198928065791397193999860683952683979862979662111621014662250598350785597709114180008246332537730947124921975797683237334863411221287334702462256948397911778412284303624508472985737541054476179878348146120362240235014415882215470845927753895857206503647820297269732107341328515390742492418740590270953154908717426144927501731204787945100286383466631881646952712793768670726611120163774296294557983024837701628995522787914335801311487905858052717782329418063880091818824878919858828469890326048145869695736465521297123486056090712186854960249305686874295996988523458248265871156293245204896411593326171290211769522148534519622319888660264938303628573830714459081381310310484763572154593311897748755240421289700640044227586577471034872577950405786730532079069147046718473738981693756758785477320352243383148179514789359119895984904436432408505109159772099726802716543473219998812496149575659711252169346875772083791696967698046379043622672807376534310658307528556165304290674230145622796544314550545743501444787776564830032131171105415195678863293189907525534646755399564168063566284509537311640077667450938063005130179929902392258966392397120187578318818274448053102667727035622245473116494934636697016134009835133293332883505239608163317372482486154086191911386840481270199870710246881085077187973299591375962379989681014216007649343170549257612710218726351824785836148008896051108313555663310591209000528328963338514010670956557275346332668287190749146332626873096291938385461232140723740528627051002370849664185884580712634829688468914626159294888320908577679537696629072751398942251603176821080285759809278807089469455434633079364639703358091828792476588474156654010985288479921817609094149968742891500037959108138726903701486969351902148839010447037506375946279760757049038385917410052831291241945245917338492768136745860659991427528258790001416206157618464744501593514942523015128168537240184795103852739755385905792742018116312905376452160891062328020262472427408323949091806535524396935198003627806981150881991588328733457727204509808546919770451191948654632384932299862929626505596358240262746721725902971825038858037161905314448585244475246085371667459431851648588886584592803158617676736938393907942361583765455741174669952809313629985088634614745393630842247456352376315406897096599987910963977743216584167770970654473465172839220464559182971351725191107525476606245225945746148344694859471360181620281050716938172432027131204630694364519267409070245459927938650133575154687125324788158897873417645810171853863825649022478225609924330846031762379357400589795892539642869740198766123909748284234602712702841368512340229802561799315655200514709491003386415256733904824581881027716804625013506240183707565188656316509195034750827012942419422330275175350634926432977770685749291021186279762497073722706865302235991371884213804202382946334827257471681901732607092232541197158160433536374535705168433950086855119356423368572493959261911212751086805844134653280824746271145735830184952672453185755768770771306364514087016113574925990590601092558795798134169535563924756306024824037598165062883881262041263900876386395791820139020345876336939507421675817399640428157827931982771954779875274472935693908418476271293821270495139434447758516936182155941170457635734868452807105648493847364110002563339808452092272304930370041145087202304286536003168767964487399931855706996596424401966376160471118199938833108229649410667656245211521283528467495245275472239781752161573830398991694802807460427053485370362237848308910724761881391358023067742064810457696134059745867739249664147362209129374720081303643879136044361309478503508965622890829764818090574509450590114579409153341181715511115692306984540828603389841468885149170541408941566713484645134072906389875455262331234548802664899448682389486286269926108852290342879951751712887230364594549688116924528288586901818611763291467709963516347862974842637471115769084046525770809307333059871897733922651050889504187505553165797368684743723547359107515832296281454929577863496058850404051866111825403775316813510720801046975352740387223600011813266014081514047729581880453548290325691257660743950180985876903361218529611820323890399037131322199575433026053283606010085575693885152367828340074865128420804573001791082764076896432381913115585437011946003924463412761291380534374708456218821461709438140227440785638582847288056885484504520189220807860405586515633774826586600027031604921555173208693932396004399311283820616888651149779773294818842108354567188997922506223352764479707549591968174888918532923741245384910879308340754204644698493191321197542469171676794605887804647177899422487437110888357774274811942942708857467236166419852799948320825592999412289440267388311773983068800092282032874534753669172111682135342735437593396397839973633952014155824663852168308440510799042111666279955745264614845229046496157926948406418166017648598017754889884544259076578448195798744900319149686175192149674477464414488299747847685369553375574524997371916618921455598509907660298273746848239482157537604965017815235970817268831567242479781376313725137647599517297541010840502429355749277159177031565588813674583748083308332970926741923641808049900653050417281945483450133716866584464623018361888344553461449578154759322983309019481048853239959552255902273303988488422369601109563768745233808328454970615776551922168637057247896884189896421769106368993454998391141033250597721864432196723767410526344558463837091844272635925868742991669995434507613276885707850409288246779986099426284758106593606716724649263799226498975318855410159856674564564810276315931033015668852407277811075252663672860294529836731505441787539551267494503499147635865504362724490704799182027092584046746048517397942480830507873542645939179141186000033510546073063209285285394205201797415554382467798259480945116311401133950924586505847931822069107769409853691027164711632914458405443134801340325080575702531675863598366093057658916624318345950968875466841617600802428409458451975195510648427299450429820602479239844759830577781582148377533424843695014950107138708947774737425456309708792116397726269929402750858169920343744760956207876002807209696097743662122038481726179658263906411302663450599573501899703003186315837514035503751040302342845926777698265830282691425382616722419756092820156901865482459143963416275004681462010510178436424741720359578394425575372325143449740308126193315768041120358127737297189685433793906921710065439204876573938256213192753616298038453369608385116535466386563289423715259194138575180266226832551573255821443265085906742768385117139742950676523433226193075581846025490491285544021388373696534163435920210794498363555618078729946804936553449374367964011441711501264259130467650465134817802057709244458132278225541183493301256534743419358728078585837087937893293415267467353634511768916684758719434711777500867865174865250175002808351352637442137503089562636466654526679521159105388677417229786146477764542577445371577275808713569323327135260991170106562141925394353948531663002779736168548533873213928083317092925778482512635420701499666711302612264956060672176877152527493367343326873503979193264571586670230520371572747056250574558274840800316976175591099797389798113706359314397353289718909374653832116376895664023486736611575186092357480500238441262556635191315670101600433345697682918744841624112536793704684821630584982547604276767516411980744549028392726173847400646836635784542760718256539586917408059875838018194155025835214253280317425226636243829445965392504173332291885316608443961146685615586681461581218420465173128322997785314911098280232061646421268070048971228909435143762499256730589593700591847944959303603194747319513311870022783054188122875345804853442538197572509568212174469673032453176400116078002251666332309524141366524106485731931142900429869138604982914175985319250733349691632169993812126544528411560486134812690944661546279939890014468232132957817090187874506968423366113541516692026510277320419342942705249424225638829824295243803528486053938903661218540579876956423449979777167600523463761786424442854594698687829519156852605289927653526655775778953903275648291689263214048619134997260035056605247451353328519318539101381428207630670004325291827589142629374506554640574632421797175168549616730017477783002498422348498140123700596197613150252813879834454901196690612379913548352152905612924445269818818554319957517581156852040071987386506392130652436608865339033477689041307446907143768783919134530306210928604058951509585569082193253769826666566414462360699474107783709940148124535423329155659721885924937709598853837028628608682965646950863334120621750521629103533862634220915201763802047658086752234716030390391942311904943180208276371564007216971195515654875853184314170583019080330614497051314803408822513470507312760842054727009689603282982265165282740090353448614052576089108183478289046457372112999453282376753967630425802683731407866435671938418354740070263821177386886065780400421357776920003267482502502187514966796987368781320725030541954686366006741735754938368462680020589462478118424964609571924486337459598682933093818936724995605523159897008536187411637551562922551764238755805229586542018949545242441276949682612687855182828736533732458636429699369161032506063445389471360048139473756931226343361492075783103908525800914449105901198055549277863671908159168790752426932636993810213928770705485857673172263691697311806748698793580890510890635416000301458193204508882853643277066333118461521787563158442404182947141692129565726612336011815951991746584969791081563864038280336127215443407175640838920391426387714267359554424634438483477428466368874949646576875168010719323630247352240929297255264933794462969574260341620719446509952312094702009269428961303474582417550797286426052362371801732882128509861580791377529782309092065193617093980544888493350678121505104457371417277053964323990322783827650356775701034289695939128087938629316014744021273155876159786016674490270139324031870804820419523281902908727239625758465280774389225205691874835501806334555855016570316343385621666036522705760867154396870026454086921835898642197928977181542724606636069352237332967379960612665496436584221470575545902471957658481913531722562780832572629478704796220230780208478213203800019323892696574411864584664633057779369964104058225891883770237923307312472217692275622761052561098293570905433427345503227159425581351397245048379787801398677039065840220666576620852945513476098227335266803436473270695728319764767211784416790697521477643907644945461287952254697966024716266605248925596535170543350027511280603412687235148331089255821642680783912773800841279852159529169382757744069809657797232551578467723704566669200917333815673856184916043136738198815569168533181358676474336584527768765002798015657212885006708485393511581295899266519100023099003392722300268823566171956972058937664657997782538501775725155367693995766022470322745885699851114895005441770921373786595812909602237473880563156684836314604977275287588857927459163890168840327346339679301063774820822934153511176258021781146825115077341850794094491808455987295420590745164915100678761239988006083088399960729852647097965059868763480477611532268161443203961622237798210149379825764425737333415778886297191269720017358918579771806473582097672245465349874116565740273953153258131089795020120718493589836529825400980966389179925182236905973864782866009804538136955350228541624425697360403499060562281243298695196980545341144135080133302550437672719610862604673968726290381104119175931514203240843460672954206026462450723577523645815523793058110589682409836832329041622557683616368182884563542248389732472563595947855146361181921103328774033998769144836506243893934347382073801944065336801072186831994771338670329932986939063126156409395010892917685591030437380080116393094393617366576091760917635327508352225282151420957847236843972182997048979372300311894734885636122246068487273014306645930780454506556042913178063282231545047759969836118098246405638531211268737266853625219780688138423069511706258220911124475776311525872292509408407158800328442508377863444828103753580630116897096645220363966790156695562294139056680103680614739170150838009421270572703167261216387211450909032904491457340574247669428510287227036426871497970817289450481380256193410286856537364369713413210765195889298491807673440118477127402620432284841665682257321095370983068483373583868770429413847915548961135277686938315228874466718486532310145113793358751958696555510128831591884936250979435561778694872082731332942700233812198125007362467413058402850157378801717790049968561935457777394964378251588062844658892613978282520238254476337604500374317498157064520362788113048276757236691941639033126445112520501456712928022779613445778320302472319317138586360088625034747481025079864507118916872916643735698006205986178055313003385040645496440180597197506024113712340030107075326749850260960038609714575443243420447239012160472889405873742743526495246198577158858570470836982201521870421102919629570007599583476792492772385541591768894210809816474263296174702470335391925983180800478809920385341425332161229523738111978811813649786245193720863598496879740358164381732990839083630176145582229553569860135171765566189639935754412308941951864881719444491958459380825350632848708826536222514104772813771232066178266626227908305810523637644889652748332516005358182228364276293300651472381755287877098575139365904000419757994540705788351242713281119451335602264999297079224061276872887786972698693960387997665466796775010740589559141363112825465553898475988828650377369888140529217646447001720764968632045831885374023408947032281747713027773637296885327245400941205233841399660190162014705647828973738976368761264743278284209043687044188583978775986974522213837875013949291730973937825238496596360758676023790060084170053438157369019920417527651521561363106766351179144257516577987596249454967573921332510239043806966143792357400443613592865997881501888623136403168549028097329286207298156518747851202725139778280714605602879594191850702077959611724569876789157474865839042784309166084577126247963084915061843961180435873779348213771197959241548250131877755664429293940756884776501603624379728586840501772999751353159324925077185460290605777590105866774260430428422420248734215035023120954106485909182245540113823986754041804978535231698917837840145812795644148572641608596881103931010683598524695373619758485086064642381700519633066194965422594606938819260384827716516107852508418673717520166282498479631962883447454355563600104058473604320443400459380929767117176251502879589651209824226958202528904183715716411323067299313911865358123632085078028076777690151088769452744265224891779771836883333037788067311864328958496176725988564253670163183969065604545601646292028074016861564891437662743646669948942492846037080699651734685540587853981633335212014204299432768666710363507575381329708462668184335663428207809823617128960588744054716194783386188556431967192640786878585654735512956902892380863883209438644115186125811519694279436097454114392107032782828025553164516065000578715634976593075734058141719804763547941767731811006675303784188284810460772116623646045287713854138180119526508656703941111406623416574302106943487022356591779902058471295603109411152500560820815774334404064739857628485348517649454124807964904688038244309978539593155306076295618961332044885779328667438393089804086854933421021537166986851831934047030292903242952005758419972167122757913366429984191570997056436378847942750163707307232873410673043645450382517088712885151218894235962394583506587299127057096119282614333889829952797490540171827481809507059091905435510549030625887346425615925614054737042407567919011750263791042289504924742513455105796769983297490568510138003902318146801948749425164518030007194231248324304862084763021012733304648542849050977002423709832032403125888497841209008778474379766662836582689703928822864796991144292974154295211347463457458548924282606645307263457555806862563316386553084437855136544532862360908824435612022711423229218924344570145626476399588512782094276017667802512471449573980180327475707946409548870099570828247748237707816974112899718089255956267304330246808764699709745581924300224682452043668211481732629228318614321256419540602632506358337514468793767056462174284218605862438909850304638976593379707631262980872561049772918721925083602938028785965304513475752078094869360435246084140475395626452939280363008943760464570303939864826526191596453877091694150604947537923933409958991287987974212030509454599684819375849077567450168193169425020497725586555380097194069815984422023110294687557519559592550786886296580222004057726304380934169712930971258306747203055311097125535943925165672928073119383977323491947836809565796964867703864896213647630544013929658616186862325239190425487129621363931970036194344821420236121644637158407100330298244443695891181348648405248150124474163659181777777064161427142611498624833533557912092463466080842043634021068794505934069305096493529750097520429778369571716253267326985788137918523935894254681152081841602099933450788103113850592057903623425489057656214304995602284813490149258006315142991037161182497515939043229446221945850106243063616541136529285885527370656247765777751424467014487515406389774240205011244540268301271888699828284165117099809310804291782084211736244475971131496755752595644449997236493047453380450914814294033255390338886506025374074591503176686750036740012847633471514801897157976086054261047258613346973914673161461187361756450087008281701009830297087039706561100805731282456026967873074217406908944951440924682333197304074532396966993997177423794401822178548783737479536842142124926127111090639330616483047181977843632475230153853368450526411811413063530504801587173792047363476345779281078542615230534005915520965156891059494933333931508713355326580535607631250911623311922475291614113472845220720330049425435720144350096624174718804889756716798867571603490542506061314783359785247104331931118499696776304980109638868702414755050752689794381031871870751336662112481847554008176125004948715384540983467536853778749679461340427248391066832500570475721068834484442335420328475916564522472447916538426274410327209628689024924924129552511733826410331057649111980059350034135081837004078504582444854679598512352006091882636197097918854406881927723346886314999253940986755148164836671575628686294810744548929466452933513777979661277100258084156796620512502844270782279241374984303674833693276237399481920465576401372985135622910798963739101123687262272247352856747745452103201560359786615320973782748090034615936656209901205122303473516546258363204856850208983987744633156473146648501061469453496593528565248507593549275710638790370761309964453615416941222517426944159902033579655434340983657582350832802361758865732583332047334408643033283176244322512589028874670680833190352455762211957696070599287575856220105960785318578337281461520805432948255268433164613781699130395285741833181870051695377842527213621583376516439439248820328563883787200371149640094290131235530119455499110898781090376952135196922477835166261178188669944520549665805604149831217282540374068563388654722480596660286913214136049821194753591246280658090667116329366205041048986874634758229646437134753403126822530324868894547988448857999916650352135650915294589412808197405415323953093240446994074582223508629110261053093016381203183470699811898202909854592350001644633223952497447989675469179902045781282234325725640000089207559834613445610790520828437611224453944533537729500184358902710497711083942600259926075875270509411040880111842626410925209024252964900710299081876448639451731254845404281379872157609316098024654711391147992667472816259036937983120284380255525420812131903695860614131438109396801916771433293245522243723326198845600348824485844293377663508252880778407326994994015557701426353091598475647448649947009300600206426777757242773783484689446249002853735165536577559313856633519644902634919164701866444952905137763727139308083493934751683472375202858311629051946348239641358984764313869618503677593969861144518858596973879173345700415798528351191321801108867492513610982239146197602487806141009205770030119885946790484564387639607989982982482874512601087208240446076496469471478041231524113453399891823976249619771190595564608087452861469025462687030460159037555459404290300963691955677818429912579286661814487321467973311594631351976638570818055569041540251541781581036646081235438284355570179034444446425974681739195702390804589257039326294510983537927636497396083290741000744419364074602405154750746761556357016558362301358520574686747940247387586788245520248508912940864683701832688883099857786939100876596943161395889749937709407637138102019577238212480489457456106956539424446516756336319750482234244403332188508953335864255616218534840663023254090653349394206150697925263807079308731016777808527949423394419487796853398667037360285484375774807441982652966336191715351607353585233956727469996849026703819766803954482111956932979982748863548070395162071304728068700394629101426489760863916013012315608654824149377839224932045950326721966107441184179861895335483569791216599482996435621561868817891026875260172501019325211971034914232720905538631354400943193203347466418305887034123897664180955963555645524646064032701036225673374897266971267726703428873774873712380235892476898828754969634127423012609605360323080388635688463515518221017593156643093498654550569697889929163296453248691096899968674295787820839492691378474125094642300970691055010622736927124227747612323808363704134905902961469415549439295947345935831584760537389457033630979980461904151594139996300137603424086143151843428460586713096281348943105445570554371124574638161986588455493108569284976675026145480783014478311515650623593498099452477201399733554139323218040466557939456885372180234364967742108226037383379730737158482150510349594082624106656605022689910043949023352696486963825604036226949949134486040252497668814195947589304253861020220660759971347868623658705423439805192539507793656348539874521465035811841366982266429423822358285670090972841831323256146337088289885638922911905750791905905515750233151117545350418529500988854071687281065590049705406245336075802380655090869576078469496604233660014940291042659542203656426954543143456844712518809331410571267554292210397619975525465871516583756815754409065914400716092158124959672069281667591719915286491059010997241624086868043208734278090445124162776341047789545217495280213142249299464248747774812178222397950340669847699052156799400744755745227144772705089023385427027162903775491350180080697749954473099774913604688140343860299555809432686015733133085897941423600136120611330598484704542056707268612248452412932738358094990602093056803187903944291540326488740887549691321934879970985940900127435150042358779497754207025910047713927215800859670602336425575915932870113172802398323157531396093800672638020514989186157652940377149226144267760878950959869449812149660845248157764010821041958824181322867424869104766506550371684956172811827647996269380515809840880752081820652196895838778827230812104388133061527556167817989544821226341549587996262735905300198003941644113401132084369912773942177001240000425719936357150498518785864335614936049308751681152061996679182885567879199981022668252261069923006380311921348752081371797359832140914685508496256443401039612944884347152868728015121903596751359790920960492200646165651997723313432227993021092542348566032404322534153375650952161279705689194904520729353847760955986856907134195335884206608409326876657095671405473631442029139200518963804369770066632715467535121609924445531371758670546368864032483246408116871936176438602268123726025041792549966567274891595658994076524216379285621047509991918480390297915962630014056635327600176687746117928225374062136398036585410116969064341044466089555999271062366753698830378906342668131424411708488128837113295733813198992618600090525790538592411802065453473583188609061037570110902559165486767310487528510710227135135256951252425749273839379118851871176951756887151350646090470500557271479423792205902776346355391902961547959467265674896333544748893704894323867959222932156952062691267478330513212256705448203240930373756575138185145538853996386496486740720011824436480405120422766180718464512780880910720052489446772902696241873130236414934282478649304466622916963535932416190079654656902118674880411588884156737383917183957040770529931960931093771162977778388688140702689890890374046206453669645548076376561187915274187988388202851827580471650914048769257332963103548408846687343062767711125690265475698686334344638014302292087677448988364250291144236397848123985402247454023637613977866830650711173666195229415455113535880040375582838864542579230833574955212598066296832150922307987022830352047662928250036360550871757011724348160044035843229688213881707923454278870051794578819762843051710891930379306059272632113059742427800873909127199833982592850329641629981025166894307354052197710647978129762846659520978984133790898057138070330524359863426711765569122834421617145315047156294138872850081838740337470377894653546918421515138173421263246483427263837473101460295008409799515181112610778060925376772183969417590773363967413901256157204297606417465844695086212703860824408530888686811160373525976843733234155773300250246388580074520865429674701110148780098471716859931035205895984103649429541744476453995939463029507940761121949228784889734400833594808687510083835524579157268989954427414656684166991306029986505674361367541431059348387277798782309277243768553977549455269324292104944286358361493461477181803238279762491979120166576048940338166008409144802036049030226803013079709555263946773265494027909950097269333222149729205101474968114041794588316209731089412105414468517090880653761740956654064462800548118065033739246962801682984429922952259999535548832923194697586693725125065930378764456996242803070405683824618152774209213147143083024990547176293750718949499661619226263652102800594999516308702528514193311162295582173988433703482783783102599472318524573492156027329281001433366292615264144405446953921499171150952882683753978154760773833989697199819349581160757646215921592135978408173196186789282836685022627031140053359998827517151062477859637058147810620378263298248745485496985585112351282614222770128099746139587197156348130893937884385403498806970760043375211161663093304937556112629065989026247678919339719057260451945166165171893230873434569741282075235174873589952110770108394505079490262833363265126402158967758583952991991826580216053207881959800001064317056974569789014893647133692874245617761575654131655710720670746797148301254238271229987695676908807098797853150117306491746651397353637974104441203243257690271207459948102828955689209270134776410026510916112967816695457742923307741317136709566961010210694474057200108180322725712702679985884358372813398513845990360065587836666306177484945240684290879836908600154481805911342175236152722159586847787481493650932408008008050275989925065604339352170907868371029230692638353495474253461358432327330691319942545998309843114531620323789068908044320696168535685332045685167466469478094624743201910113701842489385254671520319853203865769976111803307681792735757826930039424231439593300023048676794614998126769582236413918498104367095093839880544011719175996645051974555476767513658387127621944989638134235484461254605690433169866164488684224004057727809143765474879000489959511707098362746209421433440619521490327453825771014632416143479510470770384930425688767316103975798326429374074016198961081770072049944157578891882865219454317168336119254458821822084882086257004502364875509051618840008455755066709329139318737771390359630242527574327441142380775326394861778666498131868172919460680122647791395974127814612658251875179701046632547367592559125053978787192146277286025278758981105839468213086211779452070543987297440118921529486271503225133399257018091292489539252472326826991323609528307992212022790221953903131932817278804021862989168515089811544547964607103070776690987391581763068687722097380696263679334775719254222585731938088400020261028393903388820795671692876854825251719834483162042774394903973463293939206616557225808699385286082717235173292688450630010659071823142140853842125662552038564857543831840433372282794883071491215594511891841900400490608256577328623487224843002472472140946996532554815180552119682017808956322361515580000000849001248799943200449288903868485682414970035144763674888008170941993825035849705182270557814673657231034281866609386178364649274886364820099318477569492039030477809479687573256534644317064302797555724739998386260093901846395554622445918989703474570599436671927430771882046878107965612793322578153058952660845221619650689652356333093954139311763766530413722092182942209651751506831018009336090312243986371138116972040202606218970093265271151724641677804253238631994528946421042901119206026928940314374629705374620368672551170706988465742286804653879706055316657809020548943540105681134476583883552310866879299766000616445632492788018864993406188510428321333381345117732285980445612379778707901022532407761231067654973496321770949215858360539566820408735116198105798631436167591050668282604067026590181359909020890838531309079479800771440591750560724183458282822769322702588416293448855792132981073536315666927099274230431345705570912577873423369399247144502333020905616294192471833619791613044041883730463940051154277395802198760904070233275821266954354987913257032976945894636539580404512975492575309230739305457828471010596935920845196817233847048150907953919867476350017004703229693255033092394311763089264641867223111759371045229661615949735126040942785551784618044643025250838922605132039791529623906316502177657766092620247023685253156563385456727205408932168327796014908259230333136902192165071766309105608294532970980871464035618006708766455848643468011072401411131879474354992231521718865212297490917703585707567919354726864091203528330393263470153914785283648530542997570583327862436148043926778893772684759959269786495072415930110777135258600622498938643277706547343301429820827547991659296425603571067353680689009249497574653035565520100297019861260452622065449362912633658771175089955370089976891393348946501241859018000723139316937774187554521830408463757490676282153089648260201282571848435850854511986974611628286913695608394218693048802152416129118646932642703510001191097575928373110144813618534575203793815645016941249448917052725454341915250632292394598785180259322964216170025621150345437686647262420215386572407393946014445257610336163151742623851378897987875733352851143656820880753562436842852441160563200411184697098604835951333046988250447282043383261251569968692967640650188762211408334245822933059142906296148510773776109661531999961208276957352535016563569990917722778174161716442333155154482760306581425983733213803533914465414311281586027692560785309210518022293451629306430711898600903746520297474784017860935687117864592925482744691659179184726584804406321206922991714123133442525323664747103093084466269460373751954660892178152600449151987120548158313967048625446563154869457074330209521453503785508413490530090519672296858716418282220529715222476558592135827300409429652782374294898727425371732710386304920464728765414052601217411625372903313787964933146425001266842536037141475495639803119165523418832529281820637007587270570409379856655412852581263363095237697789044803272573877631488786645471256536509573890936453101702023942348657125180834815700710172185778269491396386371927988965642042852826630762831718851505970016196852066029939584425932308612888279112926551786627361322101350615713188497532074807240513820535109627692895555083039742083648149583738404998345827124584658474214193541994200026168144774351788014166247186902255139928258592612622887119765542121857282692052709289591482075829986905852197079023935772664008476185507245923349925810351546237187293763584179140125854719467448698984222044649966576463693557492577445515198348683712165946429520333449659137184364321811499492855430860834216004461515035038205401514790724777326934825231473211162792650886388200404194724577654402610380989097311526209736467316807497469424574241781832426742638753384806117417840274952075269089161726633325553415971688817357395905957287111954387874090952323792794236253460668923379349908152951530692400483478245627559405882203971208225196545292773650289022601063309147509667299600959010002297292333940382212844259127202198269618402689960871071575671006908181859616415203178305491808602253223183806822955572873344590178319306721176212627647949706991132464440108402056734203852589204383646267135435025172910349356112770368434090137240946221061898210222888872444203582226621574727389230123483348321816887226550890792992716930109540480746640014458484717974257978220789295223420760635155726625318353899760546169406554597831911795127690426816829576308688094039743427967069993997165268465112312554996004723824715161707524640451888189049458544533788845161650731020258122730788958051263383193378318713539141180244421437117194676218775003619802394987375222353497742776242967971703091481172212552483169943620743249569008589200335001215255591256678331792991715426073080195854521661665927896388866382412091096085097425240723934314984748099672042565336709620685090476823656079039165119169457124555455622704550324747345137031568354812318362681098294065310347898241642245053971462690819619722733416850451398221117427499481738465609097362598365895614375905810925888945686539770990193960777568382804611476929327127781554663548456911856545485308663483783227803344068138177625479011013595232324198134681736793984090648612617593741564279039670058151267336841067066966425790595934252861629995546059952650505395136819567871754517528949626919571099676962659238750594540598426635517077488212446079237193553005290473481838612230473292542491866588312420611708576654501278126004992647148321335608636482012335469660873818412016727494630475250865993354096788140947998659543100921732104328563235259466786186106558923752760987729409715075787275027878505198067538762367537463850612136660000908392903515301170322333769703085548442346016941892726992486993380058882691546273546716015358043186696712410880304908835270413515155041384369199178568855308921615937095893675115229760312350494930312143988028220269975344218944288720258571538111260736602293622599079467693154713931113733480086579657442273235314984431684217374855715931236821834765986622895378067888406757945388722642746122930955847415796686478115053082444581163050036237860495313527514537059695830415252751944761737241962693593394737655148620671201376407631634479440006489472620428014619581822870275196596804059600905102738051666204645322778352988406297732067099727914929171687095764150948305362189982303968485857729640888998481555743099820951636395200432894144324757776934879419090096836135963524738154228902379072203532953483004195136480716499675514541912246174036162049605964940452644840369117338925833278598521716317905909399575882659545420163809878996469901350932833335060814505108909217052175620377437364661953546546953835017542594224934139763375309123532305687419115617824651786408913185187049367060044715623579363804173889297171912409769314407813696304453882614061004125394451947867427367243140689187054781571284249623588831976020184563738764488248140284020983764495281997475867129494488343910572918593831743027654466231403737797929440880659060460598963078220718636163517122664127452761487132105023446937951876568319498524107000960396765109291239651483688606670790375602677418912067313592556213397255265620400214784432996276850168952251366887543656122213193195045731949732811034201974784313195881744323236841176167936378400744231610162027174249277671458082649612787609331260420930596671057522795959760924745250033105759038546804529120214966270670222773473226906289883660186704954725024824829870602451404016680271590340685572867449750818048250035744074352693735883136177996675428110250849672355807517788828536563730574831288869334590114175241018302541707035883354820752077173603790056647148295925015038335963891837579160756403122796603768883834345517524721578252164956152844387415617157739470817279017034392849356395953513660557323920266930948067619029835849649249501916431614874232001570085951485390094805800301389946535698649601516574162561033242710440974004635861496517404530682416961237430370806297894450895339894515105982866697209177024592696623877664778391256604417763557888883811874614386455704622993508901733282709226166889047422048912209320853855010354328094774196244454425823095178059742561654365597748800835933949825904833141998478438209741541801394901576981326130726355950397540269576643530141795039387273125531467217458254015466606364405400289328129611997933907961740682141041676205293919600076519078609946531076871328298919008800419521651154669918074356377827388960980851816420814568010229194673401908416908853853671295073677647810118013972796216774498483271271626274848856447006309914072021240392596400093506475105608068962939654999445772138026520644778829387439040047263224370734119226923154768715684045254328414516668298886690452534706320931032418679530987989985424300643406695850506360025377577631349170272322314692076400519231717158657133258486251530767331137040235512409214934111057495405224944926551342535559190558474780207139499326114137861764605163797131804537516802442601613949576483005675149275962779933093758697347883274026314729575495387732740662694461703734952127186708453612012376582063007394245652711137026832520646107696488122132220871685189201210378491370368656291703020405869806876161376458503880380783856700319814332503943692842163758273976205433229250671792343434477433243715000542405597219937906233488240973746867359115694853119293272385419540797037532808479073423978209819880061046766889228787919673190470913997317974367648102819035533116071176257902660773261573613896760244866783414229381769658526832678408199253619821473060382595014079431734338612296836350856882596171787085976421993843842718097105597128590456858540548585052638401915498363806969971886898816526135354254215958784445757502056534657972364357448287496277353179993199484921181220457060751470932988669081792390820898988931664932296592798070290255806989623710135812673012221783704717576598958772334758711834812489353600826028145626763337578318440879850504419311414614682944879246369775987640845014071052829808247429898068291591208087491027410504523149171651401768484434793849751957006761830513995235169837798788604039663823965199295801291960330058105691406435242832781739680290669951564091268336946258162526804103019982381831279587527813497300373916829874757729186297129530981882482007253630744310327374645007142512342766770677347611838587245552947915898151083265572163612402734403813071710724393950838398854268232635822162625413642855900904191551552268617747342353875966001250709906043263270987994841937877833724252500995598573937836814944441243302842570876872966507434785114863481280052582233332399776290678164900596323141518149435009046334638838642428955711623302557329655515294150597521347943022722936793358933710982541028871569894417713190736449358798413235334118671543084050100016899989358546103610530608568713008046428535188259694416680397322134915058606361422992801551410288632179390495786894930756743629555904012115348015633585837077160767492730062757043744412361910343932371443085667211813160847732911963511940049170139991000053641599403594167161090293155083306949241255889416044013416155720483619980137349959902340506390541849452827063542878200607991428306579864712378006624161836022085040005102789800161844422471449004338865382076635968913142222171637933190007557434808702530979705551807734797249166562277590791862062343155279402421491674580443405022965418467431523302717235674842696050866141598714146573052483917337030132829232651456382754371077342097690456694987935210074203105924118365479783285263788795903966502481036455413807953365443667899750556264969551344178267308619562828559666876328226568515663272238494011065903745003609677916998047854569191144845762013122997448358801503053703465511710897446846664204236354232078307950739686635758344125424310603902267040616086103208586060452085390249796412447547230963254989329226718621534689781279188682057181820858643142264037613270190320548243159914815901484819906696830027367331828165831037455835951402065083755239093041107639328138498703468788725750493236061364650995055889409661363656763333199906683796361500393640466379220015459763937181797930045242471409120012557797331458545266250215794675698803971481349679833478814758239985842516039439438242871358274896792669176312272537057323438455165250220187785620528436605048953379095000567939121170919200300563390238605680583103312274216513195669643740404351147940600441383699095676908994726238376428465923890743204043222466075324499424678865644678010065885039678337985791019702292388062216730473291522698159528106759013651297265815559138027382561600040485273337054600597261422331314912385131027996448684403105713299892435945761488402937418366279462078669722395499786352564700384095271149823265122370266496635643137967832552383873764851854539669489245863792859929848606067416512801286126957191620751499574243140364863340976128914459230843273875160401143111846146143486954179640323222807382795123267361923748969086185441087125766459221156757829254285887810131605563192952942709053345054398999364314034333892364801571564112916544794900518011560823736929164226622204040032964192793335058160076222623148082876597462525099725884109445706240256061620378095909811850488018474868498996867398731180655734336317063123756250528608934337594337890159537274793380340734774139057261150995517537887625462819239471404922735615700072967183245902524770786789908701599110925345704832068237692361405905899243618463092114352222905804446928347896736881510331141725247613270637603015056215985660617224703468140869213835753638010235750079327507731732434939778806714772507121318945648795502873376448325020757013886305642865940192951152581673042827369705170843491749247993566049461996475124077313817027917495355812808636014593702169259932490705502282827364607255203111064332264510429663892116110218277371258359240295842835945078749257811289425068158060565967985005473522005193437806536935297057166314457226330765860467249286534329746372849054174832049319199755290828735697659289346118668952939943760465370588250064978201194473620412124013181485777507769585750205793924741045664855219661040175048381869073409500639495139236546766091771425310828404321360804160962662688799255685682898194203861052146358200756899765123061575052461364085693541783436119963021573621840498333793823920766294840215955316581815667842168384187378000050014766991254303934202073299025914668419963203970837467038014024526857428340800619656532059733522020188893512926238526089395328287467098343650175255774406931805809454472169275276077831971721277945652628596303387067221809467695890324717650112917847385651087395324619590045683843806461258782285188723917615635804404840237489398151706727030233125634171532470028058779902211264868378900941210877570755028484353724547716642221965818423170832871131481717673303327595443478599553370316575127973261224726458416917065245811592745999204493536969993139414274775798976753710195629091403508987527306755468257727428410221236708720627591963697623643518089414117926295273858502131384561960829241812478735159885359877948807066488769781393435518791676814480128514597069730795173545866592130292493549377285068717904682295172128390483435302165299113392166462325315120340636815605843557636807836422335674454034473901770241290021688741613223453087447908550465599351275905311513408891527917456904029361400992626227382186118481451955901697190121599907985540363688869962067612334537762966874925925196773177645591100579297679625373536018227808720412159719273800456393798872925936303231643542382510209281211991094047745079923283429065609483363958137004459566056534432233449282204459393859422471095133329971310331837712541275410095943819993279371624187413090548400782553283518816142905133507067845438349247814648817827173378741735070173869576024699902963098850613826737588692740418075365540148300423174390795547742149027948816165667394946095571219981055917750206074396566636705298363180129316496459383373210322007217471988805454116502344217513193859248895816375095980858554819998997688496657924931637087956377425627981212063334983012647889266287743832090394069438062146073435679375910470990113173568174894366252032844611093093208133528613184689996682393009762309257548667476224933365075457427251951273323985891926596545948846250769908444184538983531017159107470210503003507411377473763735259633465287530656989226412719345488005863723301660592905453441890973553185353292665557743958464866881759104932878984580547300234899595939885493610428359388793618021454108883428459605767260476014775519156099545417092520926731122128236659336730112814671204749010673400403720260454748638406798336123520202932804787476935840752377469309837884335153580499244187123305949621502081346532822203977765684975256873637199681813093025884650379173604605085469932212236246587456604674549904050555944053776856489766114417873239743551970895156736396009430198698202327544230628645496224109017192533267286236978795443454988972964997588829736120314489875942434843958340909522164717100771737395093504508473980794481153677082218787664344993949130436846280808688336631941935171057265506584302731859386716393116480168386079414462953462721408278534059141849950557481379177969086490116479795243084339556042932898782447186061792584283598696895978683949879792546365303903791056872402102332994871100593003739972767086408385590527157733920531146736245870628905354306836310570894453284328229343848525697527070721008551659981881401128894723253092130385323397054633236278687824598120019892209233233287169859300801883933918812850487834120347230987423819985446080883335784713079862332646153143969305392219103189454719661353358118906361195200150448211481353268338018068377839254665084497518593667989880483337022393627897395345808783941388711130740916626827552873503716013258212706313020094625619746456173666069898744256413533156845945405833574613328791149134985407745857000223570461874867049488724088563832327664035654825729163907457121268232978034151927957842548766296897407070884122968547489818734008379920596612005757722738222721684006997772341788198296873261376949351347057766160677979110819765450236644434575947591645322191330616430277497106146050318168300463268531689309266526115796858135650066011513805500694668763521940668621447629370527258518844396684118559809470339533004830226965486211177000942928324617070579494721364205208479002597126435605426333785833503088751563699228649337491549035640498213194417284763800162418771607450148441581158134820912885626938884445277468455008112193885911838173018326201909457943396251986465389499550459735999486690970117709969529217219245084820174273036540835793795592487797788211248877786881485244261835137160055383496384825783268251222770903301298808819121987182991961756509652167002725620417459741142101325282489378488816580083803283937010611323340408531649039830686794371404011776985588012362772078017187365676574527264681786384662971258870014681204679647084640241349004642929148093632670875337452196309168436269210001131221512023526191897574022019789705246024629434062938582122440118251000123745363228281315335580414356731937483159063674666404414456372663327952988916524230291884764138077256312696510286637002598667135377321872263204839247146075486359448753684307042704076020978905716460430271367904293331042911587430962464005826077911913346620146787546662243636981571747387293472845791825700194521241936712268690912453475071474179350786533640241580491338045954652494488509906762470818968944482520272223971143377561464459752981775844480825132963194805424802070061453139584412288028393399261319422117349889463961558495680926010195260740699695070944468632553122421995530500578147369591917397126574505689562542512903022179342251610071193947768223805445871504604991208429377680387141666983348795676463714679353618332052541824850018453252182553613134271719595254727297131671773878756465600599495753487661876892161807460130356979889241829953137873254807345242376801962127821590341125608044995688231967697279464817983218688754519704711733805199272143574059702333714534003455742728382765556447603126763892304180361298013463083331611661229849563267341523723158139190115425492989994856550363841450985932446371524962656524248084261922935231964388581735612580373789278571727986836091883648239790834779035129902771657405275446105899455353585481695277687105573737950527116368176439615073696483371881350483969835326930862035387796382620162501644540321420332812711809232840648283414112063887307134123539510753904630868624643413006422238733118890149072438495708335232271625271440691209964566176076631415049409696764349718758156211619205038349231506173503854211346220056163651872121824667474647129197239990322969757056073583311376496237151540563334991367679202848162863478113266936256953432318765672891358544166425376507570554662448672420162696815069755538222065454382186898279470138290185022467506959522621432788467998261079721659890593266341874675121122479494318662220663743134332559624208100231357229472381029925435907919876895401816705616212064850278107121690329627416955907805439276540824014697169239433183918073573556013124211987690138624302472186063195039710927974103340328286743802583711679340672504046132602955509248927668902753410471940277057170926583499130402659278102901285660180938443153776273638496685933629707593071422975973645639691100297960123555453751629593129439006204380627310144932013671484672532664337648839555866707065741659401382702341972948708630347811746764961816144820137399252511124755509663529676457713297884275364269056562374677979106886844217747338155329523495332238687000454262233324301558004568950237384643731768085462873727689445050814728893762449354218542841437747289114588127101753772745226142727296944763609131143124033773876274718763916495676235152739542269974979354218245680659708653167425051840323963924141696392987630634549661171693968847643446271835533452551356141676121445403238155444728078651750356167333447939627997760327947692049434213039975591363740559936698868839125831454074767286117256972100132831408110016978230337572147001700304937192390692674720230150580495693554601150734851924689724412897992669881170963286275090253680151726571634809444876935026109355116289239381914316219293656884494449341264206070174958789202818693545460367811030452139751399365185092578275814516088589810359156994837264313762270622794046833617313776017542835095032354519139644434094474059006225877028132353847120415321263318968225144232214780552020063864017140864820519328586954140757972017065404903863072903735121946257190423098065549520903995526701495361038193090633101996683838407365288545268794753597913306724088985374887159678917468828108331709284415735725437488333531065476792011131425986156206487422048831623414390324214355772022865559476126841381422976550472499947938978645647003716816793690192395121034675117483730190321229665383504722490120355352222724428378255510123042153762794264322962832666357931925575191357191740442855964028481840783646417869392032982398669297309335569281015257996080868206254004501733428094451669269013336869323832048259644699126921924077920957628451509368117380213074618109284986136769420585535082351271908854985552559715854753158789181562482845936355729224995201176718462437840159510614054377292713092921791315910535473567466146819947525990991582183586863900410169551655240638231301309048502912965198442030294472023948873629267991080379592908883293650282287872013016164430704250170207819254459905224538654005354922601619927964523610016422359386799262113036957824768089530032679395450053259068740769206129026001128396401019726636160585756892459304450960422600382147681213273665295644534333953423704130878499382681687768829045421164485921984100724931177917535093571515401593901034751742093800119322989299742473178403807317320191547739366841979453895760513627355028759049123571172381306109299441565758299063122468657785777052549836704028807258116275069849236696995118001143391322912009794648181873588478188854418728106659466522806278146750813170170273686312486762100324875527860798422196133643598900705188635488242156028458141477702011800517434657397933531492536753528667045617910085921098125340748353765524577528628947901296477066325408238391062900307348440966939068601122603392637901000854591142586732277352575192758195024906542124212234584010417228246820886428144276930616811330783363658966287247696931058942392768656392904101168296936807240335655514261276561211832779243167669456136530107867818203389470082680555172881187173752260279037377789125356549658338569688307229853393862380636942908709035969238454100625457799399873841347377599989997329255767000689263371315414002806896994456078557647312447434711133158566348156430037682237296558290358355141213097384486930690360421923816050744649861737024436224303174292063565648995899268725874377610208263076890296473499035696373322073365718768757727357346385984362880956821597181586678941637518339289625061085206218299930225521993041292137850921564596646347585659136024294594154201019011551797143048179878572939297591739458961052103976521088749357012063265818754858012102932434914505785047116138011129831559118878187754919813098877889218436011431304011609463536534711607584599729080928859818909442807625449313444685528754041276519415753015473572636169951044827782669461142488142012408796297209141199405968168107878030938584028204196631860839484287632502715316717686060138335131024761773352295904480438371407675489211455332533126205349479872431361032620956500555206495616402021122950141265955693262925735991323416891366051330847805259958213510773795995747628503498737308925688697569569573500758157412579575978871468044501209169597166873003265058689753181471080424461685138427414222687350577074855315972487431098543231095654146077322760085159162516513042079932931485281988892532663218102798836526398618848343410818314056788733912754760266113276648648777300015245012238584304904803833540034017800745787609249954048837572864861937984559280768615026191843663840393327567771856836440442120790614620317777036980089491398055254002338040682234480889117887680798547592968081520900259342687980953116385396079187078384167821792678664739690120544417683007877818436906918023049453878262106644035405960834510812682689407789918445900032855540678478816713517721858138521329123916883121005811598703748728657285168092421189803037081889799696627440697457527324988912161567740781423732199893908912290349185046698575216627613096366289142525187121542106095984997091896129902904438196412678062584699901086359766007477289147672647764163040073710549253198883152983899200645352604488741300809369792401181934328810742611009717352759445492684288466542062569059501685560416584013543735296725301031038304109825492304363175376961013729007359703957722011131167120255653594876625085056006708822931119422298610324989694368115862704032575934692938707742912512247542737871204097323301459850594709073817756696724100424907619349935662067731652096699881161398980572994361433877886044834258324804599344049341290636474706294805739977753064304055789637293348110772245551331087767663945570050960367347179055054772806458524218824286404586533684476718438786871576940803297221318210463531210611166324781722849386546921298303088819903190109618057220383990112120422420186376749943277524485759575832622016768577875357683341858946477770910056848203191124179457642287925984421948442932749931593155488983594147179884185763511125446728602264505638775367898820384689352572080946096664674667831326927358254021708793863496453541208450925257382679816130340751104310471521156139401906488952754601838528019441106125681724356771752924152119253107274013537410737549860681336244364141617883705590717964794563681107495493433627651854361888210854726998119970731124798118896309862466088655139105802301569681642849786535682107131539455159596798303504307251050547441881541077165954562606599232137713037036780963050331717481591826136586738065966101425660998068002302061220332338308304922955790295970945147897655801390662008378168029262519436901736900594190412052022132502679287675906613679419757375593245114922981211147482566086791551165919994443218980651351862832118941935397014760080496327514357006036324894172193243636652391938487454977747470933086025039184462816893682381162250754417302657561782916716624760312553048300008213638813739744475216459919720894218597899432659281993307033466440288434455214814015642628386999194738149514722702534321478586286117167599296831328923838382997816347191337249643788796583882445961180707906315692836517923948075436349543512270181555911529349431912394904127352270827718858489433321034161561354731461202037033110725967882690283757116012328842041414614628424003721523006923638279940315866881401020841888780491306596430133190523100452079497042929823670435484380729329584130397792515652209621275306988712854115315368684236624969000893779066383764376828836630230037045887665233336483776751376628399766744161060354714147374471198885286668031180078219954350317127110799744133514700684222380217239281527209673956882035746269876658835883312711935168916497206570928428088690620587903623774314367845627238055032215248799387668437055781670076795019920240921016162479508258503234399233804697591175770802558629357125808924635056445296190879095210079830507563164511151159036860834126202874406801123918558095053576789857489420530596691899717559221364167005074998539712991288623470134028681479786491197697887247532680856491578015670828518420000884586193352695925986897863483202131587454876785317185931520762881833162224888622230078415387943460757678990873771991002873195745060329936378629847306829462273750563835380320404464705724812373200900603425194387399456718702018739969592287410711392850968442472433602325653510240810163733887607656614886283415709676573160530860673441267117340294448507108078242478224850488951367408014418304641758402103824635252424397986480771264829622675223108001236984784196804695344645034018508017939224321987307180449184846652823708526126967630829092036076599794112439906211496278612893825374396879622595275144222229869785248014978710376492360036522563780108123476955810935324561771944226189494985370706698000233521787949672295779255019069169913835679648672918795865571664173841197362872712113952606940436952403123878845578712052683078835684938730303620533180106620926902235522432843048868193115386028575525850247593152932967754898853209160822512268056645556926150122782047754431528840187975979047744180872804231724497425185468638797632624328700590530525605540922506172436364091532423516739384613466895883156117697754739379782861027309701438465782534434529038094834635702996018536987099850136371142279075369449383664166262161161315098226334526863954734262889240565789141816921664048564108033397516067654015684444946453147691792085750871059182836483157214497782407617012939145849428239637139419967481364186752514054055709159976668952672908010042893195696440225725749752792645107004390682240695930922610567256617376308681737461485755126442164139395225646780062060412468879650190688965486096400214128627074003848240717332619419868083201740370036621877950177478430499467613199871553625355283318588952803449521123508046264606716696695539200357897971941370181309953056130730874341034504452671106244455451566765822535369511675967027246847429197791153828920137790000200285255316448834031822076409967217208449220879616234399193553623590517540918276134704036437178321287127057505050804834045651290360648966178274941270290493601600368596952564613915382420574601979000904316551312196753633182867183446707425050992035114118964238506374659755900164463781127379192734120562034641359519776973927382633153829391718403005774620851683137420156548141013643305916192446232241359935645272063585303914628307135501916998095947869305290700232140360822947665245293449118930047738003384070513337351822236541014405107949031146256141517678782869896718658929721240189442206270192404859904183350647415957997451309482329810242867417627371155052920853100403326536630709417055162003113627079681718911242327759799158989318798793733070066075207552371461572913092451780978220132989086380006102732771650868356813761433740913510830504713213581876951566217939299954627241225015781491466877793043884750938651775323823861447445689254189740193775799410710116847969638794755633522867938101719465881434607381104618188921272665099313272812707816777486550403775859750701382460911735416989595812727976512601349257983897205676711214317902823676944731123202105049876164841284060529381735606368861402362493778421419834037475070462615634085627223934503640056062010496559850677328058287656095390603278812651005890340703047062040725259334294179208611732072358823594688064724575863413713375270821461851457632263682505772238983752711057667509215762187697651497852928367742462518896765631565797206632429775421537326645698342754208277283196779417107295320103743374401728002048559268031843546745897405024940555958161783483368557812324060890993839565263866841224340765017467495015259815242615465186846677114279216809508112533013091603716686418436302675721660682535030362548359741435423405977635990587480357085911303121890433798119320072156505800170752599377317829417088522660967959467819379497960617418210998020476679746127902099431264948739284013884563613667317210282944303401976517589417054744532270575469678979017028774729220861230899856041594224787684778129834292999216840053475573547799912272113747146128851230579650101941266514808680111477332876247020168704232663207208870094214761412754915210440874029494862092433478396192861940825989277759482338024055475721364609668362953886862023084880258138978988627227643971350535567275726031827712318997094670369133172530323265977732041822130329460881582546256139013655673051576628435528840186458444884060656086767687958853045806688052289899642083578103951694766108987274537351761448446447193915530280119252470702838725850690291921985835617500627082259442286662515612656252962023471167041976475465681866617232984336693870896711956990304549213471056503335568300290010818938700748896057142633500094673891007778445834226570905888114329947978953217929778882737486443069052271181194608720590801859705627609092999607991684005239768093644916928547447627763892629448925348581637244790504621343885685779031972500804920864757515098487731378189662133410791757036680065209457889371594931905248142511838263532228520957365281684844217111483764118413044955018826265947282712165988317117705072861570550097566031946140451683810828590251732953491827009360793704954982152842903016291182843686202756266779337250307378167872293166728128405797162116829322133977090906392916778558654084598681493424269569423969942864279654342415578234077926330446138162897112144458525002179515358618921307542631919321167802309962871188744331565392254716177657315839253835745422449136015548891439883334184993507778255422153003149919986283255294509520643047308822038336825924760221524730060688185043500392607062253688211630719087472412872452861305755596370395835809013534547661922487028059814097433781808133860506992155491149193441456453745107922902903977831404635994018148775519688680720723929189856122163309047758053779502945297469416007840024468711211464094908862463763057419391470372430840972111736153125462179041400178845799983718927467665742414021365642086383508038702439592729376955991522532393331489278439511044336370621113191574418709640074036615703060357440082054405149495600374604837424403507050872319458852046118919274324264707485163664772477686949688766551897132072738631116396307514798610090968683464866687090937797796929661653762057349471761100607643041305769871254363263322838690687185411532157812867373148058546591050709577213932935951443259450240267550226509341555776022899331945815472363193322728230777742444414645214620389250628825123440373270886510009588620195931738087775186985932500798534358652316429220051798907702491442972865013638574824380370520208720502332910232916962225330629013217445247918818363165283912633965798491866675500579826877048116245558084208048404676130530618064214677107912702005829843452459940671352437707113166675490681449772284294518596020734189073611702701382438739354950479547310762924833946283306692343979444087410506518955913377372841660217104139746386219472706198869337514881418873638046653085776109747580163886842022626236627463477331729458398219356183181457900193309465400516786022275294027856667830148920662126556905651586939333337032699607731007943139728195898706482569989581213698615607593978506387634308099913326664595525560788333224665272831916637437011003342861100387377319142501047497247387482547952860059558838149816908900520672653448173425499252551086512463649404503259683804027172994694174263108167266180806949690574073211826165289628715935370349183286608804091703901461594529206481769964570696805417587889745828835941362993745448486373612328821821361068949884130348677202560596530235637957750346223973941809804308869888333223301660300241495382083061781898470091012901939773628576249281320276589060996094821400590537458142342868849231145387842325075302295299524276819313301833172848952577775647271715754673457468241296882598254245651362961736595898979467972165399317709224651951238034240996539113245063226625492093320595828117036318752486777816424561658196841937107422999145339223047499508257081442850494107567852220847475511483788301897292789426823804224696546459137208626811529163949662494177995309306596119892372418509077944756826332441251538305703162657558645437138442604402932665029527327176628208360899032205442763088763847227166027339234921794906591425799195307672783774396053833688816867538879277200452870670817082518191780853267729133238970043597501600152666294009658228530200691979228419741681999193276715031074799183924789754031471863698795103108680976213570654155557588536645038799309319297395435806975525453338838946438919507239028985519606404512385837892739177240564749546334430090643933046340306693855363156346243536641548864089065844375094642704811796277585924994642234341855842027404090480063902488522768168460412328689433378572841302099842893705672981166386405337710126328942540137546657737283264239385719397977119969642633746006825868491281286963314024139224734211286746639063497563394793801551897081582791861293634127301188648466923503320515623691098906934311824284265575438932431528742599486303373480877628423819611537570559302703817156162574987417060477251808988427459227096551479604139459991484370693398726733585046983244091076066796550597832281821588922790224955473670249112366261973819464398453701122564440766038957824164740915270857258287644717946902287258152994885202947523984873370621532440804132184997995859322644305762768421694309428996815085577252358741985165833449264579425542922127045689735319740396995545212922069344950240175190123535749055518997037191653790791844049089297013829550871119765511127580279661518975873984947540325872049865913388947290556698789807324021752751855454324217612659606748968244386545767118814878000847609748620695772168717668569117043333374535143592227192360925346239848421644204751378186162117359719713450714602064320734940179641521236477481133738122583782931907573327628341926719923684594965964807351592516330439610607980902523451802477226919812058464500623204105805596809959522563185103602330145802122618070919159251884706738252431737887668872085789682481589116221061259462366198597233906238720970268370927732553603029640742513723549656346880566467838240136080349788405986338486811207093875905185299291265039292462374128015614783092277874246910467208861218537236951311935306129645432987439675533900382703943049880206024958521705436772761188658745257562320738293670518146316302465083921725054867727362234638152272710867100398355025090037698801797480136395710427107435583540071147205151349259798228545790392255899457027425802233015708298338831451835131400249923491958007375824726725172544719625770739148277276731306396269505575901156647130607847643929798746594588397279522034374426712655658828556797494462164302240995266704487055760194289078569130731704205835542669435627286363356958516363294515469835744897134738437794963105225071174467045853217221144351963600640632663962574705716428270186967915083701115948275437341731349262676105420289049290683702866950872308661974282478026641760226351302845334212019764693838709386855271184902465255485658692526846048844245510413876067258945489815737322285084903553194884751546881518142817868780080473811482169432872878402991736264323190232012343427875433274265041642491738616405720391694864092837349209643050093140887658453188810055208481461965898269687464778772443949029901069538352685836376628596619212210306453963291428057069320098487120821381929147916114037924405415472188518211538033926479548631872096787727480651219211300705000137913146971437660828145992884741244944636845302473180462766143762822207446445410569647599427331900086322844470434369084799107960189796953263593274970857057266929718647316320923561096871133539025211637824910599889772385845518779125913011333392387753852476052993961211485932803608620891230620029363940007933079319509686261318102667520247756688442137692676237551112647273447958529683689142285043624051747152443742089874476978398574104544415653073640496818560564924026893427358758917364901583662834650026245744102861041665183488215490797925569612728103357883348706574641907277837957327830981868032721055853802221404833450682807832096374699698918240046253007014084391521562030517948620555823493799576760350840278709334104189502476362765233593516959108086502351066638179811130012452464460825248527152854297050747955064537042042401440770028248919412731801839894560726070112543845854254014536140917823245718683951717326571171400421970519595281380539484386828974307461686306076681572539339129082789384431164628820073199432435380712818858719427661901681253405080327388840863167916235293031998859806580607846574928443899246704449230100131419039151702698410503759614171372420690363922428780675072299262840669299456668077452047610857386749595020329502742945639141380902549822449620686792632857236905917132937061536206595485316430220978087732655145333582111211758274799401362901432413645590720499510933025991208533883318077521815058504998200965731578963808062504911354494775391674070844218614377398415933173379314558650317197860225463413445026862305370847706367968351416817395574726092456863326249606631533241733996971698470876576688616241382609927088107974319666195813879226561031202214054586138872093869644991990290526852661062443078347129174394677347755158076839641757242156794275361151652418245020158704729100088663137605522001188572657848607292524035124508490074677062721023980393127299057513905237597378984328327283401928183525704471665874120168377459799167215636576253674586769058152921922488295106128849689462938378534341023236035798867011932411272723595211015120846890994741820798320951054209432768424987366630781929884792270700445895390095107712060752092753813620841424740510352002840480644969520731798126074351830359325551297801186362717595010336469518887320688707820779503142916401293563408391712853131245770919449749364495629227220056268053680106617029939786230895234365760460904556889689953943797139746866718851712233711104530810138450227009076953209535923031160015647808993292740824920953440100620612709849387112526782754018756716904523781163669708886761333685866625183352867632268039308664249746249331180945592766998804157905296244115929414565843672418959972633117005295910689327990865806529074812962639844219249373161018666550072497088083498568215332106320770267152430660813619415580299444614790570054439479933967688065175991498909457063038808586746630904650779784749692122374979353527784456743057946687147307040472162665268795435162469621510406760012572288136732430268217314080895363396683818207627271648155054528610932860535295006223457136388959783420393281964131009262132100033711050262660074307382352199464382399429876392869830412454266586038843163788821356046794982058116692794163595798081886671512795277643182230850120172185106192687835157843012596244352782453466703075000179698956629137246612360044391872438344194927303246199491155411576418477314875185402891464826178237171014009368966494340796651317756847025662236017058577351299868000403005444987852821682329186516024774119821258705201521622751319154433519820593246455899743192358509055880775942760637195536173301547225040030260895860965637685504947972517732056090033652686603635972527123667522542297533500070117484205841198758658166087956529947469656051908384788730291860698026583145952844851779147213442217735240694323272925340137877194735070389640215839356465238178368140648979445735576618035299768447396361477899144071356841418486751768650027349630560456389917479034824343739339919559572268131659744398861025571721912708886362905362390547679143697483416117572347647813610489286968724071394593332684729190428393534210081443883725936350819898394446772153114221890017173209130288974740206792589883475845856501559849723078561516560616670264539331422224689206285946070937763656217070854736339614156364232986474815230214268683223757876834683579275496715271419701979478604814966822548712626161601812569457558347736786510990324281738490319442989159689380207887399744886929932152584995743377700861369245253297040424505656950900180614783605136858709267937695547926391932571969938692809978649740989700194529365423889306388228941956075017603602121362654307976432702736830594504172800873282250686723190178112393588034049986632630019336013837420454164454434124940893935930859954033501678797564752806287124589325618184023189999134108225470066384354897758898677146824248019042131100451320179955221826444849346914299369616859385269851511021212360812127774353162493548012401713381022751374035861136082039007845070903347920215795073543033351894636556528630360341963695269282344279857690031879949016116192013606775763141859348413575412593734002071647905767631685880506075270697897971734082809018747204376644164728305880758381533170137523279341909928249047968658534167229955821540438563106189602300151730525016781914913140284872168652604366113673458243630823942975142052837373630762001258712788894158184893404016412318839537121044657145058919170324395489700314019261276811836677373617658706299701165599235631685136283897647524895859220713960110237460930217378699198122312767583273000335226838810569799819809256620165021126984155911904757302619459303916155196336086617645195278475868515649226098138891814590849430274707812252680494471125071250693933276555181968378508523024857363489486576120474268986283307685521373250050171326266747541754816969650792749826220290801533410185349855372504728382655267431302288617566024361390204982280909906595452854773169433254379505208916051403966023090645739879427142811719502369643967476831218756925572584809784560276504665342854656413154683612066489986038888451250513127088818123752369561180641896535005060339836792305571678618179745875402041686315498693518000861259052974541122438567051786704108025709117332394253112461102537690950325617150407991272250131463288491442955508526353907572770166350554496480394869547503375625566809765573302967119921074595395546229793734748911472342808370402593184256115724375304694928160090995434063078841268345812908740481449040783324288184492714308966954725054107882859905817636939915589339500757761022404458029561151203265827195154210139021999083667385732233846815707786807997441996428389083391913139039576860811506297050565184055486466771854127584093175990068643888949796948821532008014150316321447237064653387169129526978827051664374318112159293195543686037989922337212308147712990828938207612946886408094835678851905666475097435911316309740033746260509889872923878257744360950932935986094497333049820830008268458476794937256133049646893749310670082247549814954330173429358240512584402545401760991047043491904933019388682066134423505674501761273473221544685017724564261315775860591671224675415564855825681521676164961773663438075673862296967397471270472909913985260603642145653928286726679861965140967407100590781272166432241210401441266764608266505565683096983056010240264649369724492519696299116309231724141498639043909562278343310487852089965656018022309259599567771923050406399267327895252601762419401266003688736435587070183511461192694508902342650526051833697871352366240046706662163989784776783266616603958817731998315341444712437819397856390282707555003342312356633334186755103629683633349084867881200006039611570503654740821427409950989894738925420816425775062143421837942108249640334485051486079303428540052111182800126951443412905767988519731390442529571385376915527535187682868665748215113749900321687282103235922090647994821719447671727491188214995710072499711199002348696171623235001151987773359045546753436782039012292206580023826845078440883444160366317875320700420288692670299979221414917331337515362389815361603422836837762185955481296949782770986771150730696669230998903538727804901655444555073324977993922525254607713816164485449975554929533649960309365569134765855835127507616940955592309205295572037996290386430438193436029646165314317754090486223624077823792672159883482963039086676148210860593451760000322212086164657719223953521499794100191419247901299062959943809398137949734893534691812643204553610005408477160578635931207627926571263264489347778140748189621734134993442530675812366775542933862546403230126166094077128110892375021851178355110787496837195161850924376029577649364439330966427859633536460982291450898073485990614111888870591410617874078185026918066804205135084201466328587765346020802129316542450025155838274981627254652969988116086425476155822149594941434587670399833324740677014835374290492750899331642014144807598596810328976784377871751346235263530594557399633484428330336765537279737289571987442714222382050368036805375871054813260820263048003646743742287814218580177304397839865450492781726279017424136009088921043009401559375386698515750489516201676253662942775426265449564560399172227594533392620247286764484607552339402318113619482125739693103520663992760644847130448567894674956669003428977111124823477339260937543228166172982551984013976437441288979534447655447244455300560175591923009864764130024291872876356292251610683504399853088006565595923496986713344254989686124367157834337437497995864683992193938736771475216020860211786741383303107308281497654837803440295390021017656019501973055319019803891032464852915137330190741590717556130307101055345401319745484896292315606839452917387952616362114954901636331917829335189147897574975178283496188355546736079679152146787676833780362638289507765034929770397131981031083867976384752689389318714552783354140227347736477543694997773858998450839408821550295270770650566517661656782998459092351270293926705079154422286129655575699887494713303427056969616645754778685889325279106216724618679649740332544813102895042862478981764219782827735453541045718393751250834231863618608019976163779332425731783524377830542202427113285673388027041638255474640375859748220924652679679465757394503286012909327993347399290454153773213475985109895069909724874055705646673645610350236782322376119874765496394822126188410435724876499978689072963006768284397531596212611160456990369319878776292664823207463021129279195532774042949063644084997454431101875544380195925627897285812749867132864524469378702357308273672602701642430664591070685999645108404422146937590355341651408502087197894903189493473378160411683069682078140701667016976918099352858399104753761802171343658654656571796050784084453083967830136224060042568369589385289679196896825281029146130128743401962140426061612932506184821930026088939108858147801202574492855098464345183151118770933343183750370017846141121978926096538620957728375310649350311492222287108000603928856980607460687475535540061245935733706724598893729321047966894244757328145649136740984699279126078421712619816801011443623776088311199223135216565997354217056356822596225448394079398290839521972876591585303443677323597180691306654511971487840010771066070566365086551563629038091451408259010122830180457702604790092235676161442961267830054112708216971861065349116347590477685643506436455782796588108306776962854988148737929518777117229095007296647026504706116276721784173068417556402693324736985733347735455294828380596399825144353323071757772549396773819917591870530216583281832136811190744636070446459231156392138494491388659859408045033465285800346865962963378079188440663603738764568947383259378125879013289137162680525290103667076407628901618197434869984012153694883405625889776509387767426226748768766573978986700963600182138550514215742940289265374705215946075203109529346482881196456619667876159223560199987899743943749437564849778347838694297942915863729280353838534947638911883534571434195552499829649205996681984246520944621689067059807544619847198331302907582375929962680929438005335839374940104943187474327920942337511161117552345624390768160243322829334534565127006869697035489881323267723028843278635641546492289877151473930952897143491805111097763054748315558186768395495991591663596746370144375336268227829990606706861076909201115314151095113620680231585991996631859613980283971239410914019591584156937677535333724913519851373340355889010195560777423993657569194730654742668736973541127742718751542440518270723058890025454454163635524276295579425043590966488535840074877693208127335203979829164015166668010474803716523653684553836166343163226852713752214694167351654493230578293309021596880905642421718100992790090591802036626476638776038175183643747762275175663268293078977662846052942886037846914461389492861391637322688882425424412841399818715619914732191435203626990260291136837743091003935507718604658770347894538498004331041431209441775007746404772906369182059104371552965727879368713054832286715668575577909640500912986041856648077955626986474673975333796056782234625962283767437592729651232564269767103229080069112695248413518296754140213208641556814131873435813071790155910848653554344581465902833316556496422086743247362072348367346087895197512535138617191827606275360659494546750242513759189231164154410455534472403674994239052777347201437597143263067443489830167272311991470971538112725987623471137851836187672769739295587681668666042863737719710042020360098458915821124503301301674405097997082330507348127649676601087495804688359534487067270746431966915172057658001239064414758504497519358225864692844400411557000149093880876088064630344955207163472549067776417432690761516655698038969222244461351747347581404198127358696571307477609375729781288114383191387068017917959016853327220983246133530303166000726607344652300807353955037515579127557534128794159734146392400500501479627296127313390450253819169644229966241019320387014985805419501531896567947598867810808807914242224947193818219613169227994428867258056038484603226693813070814108554771206083744870902861410851711179317465147503041367237515352695638527835972299254619573682772619632215641363338145559007994634659752709096934067227209895979824797148450745692417634525255228430738701517483455718814782002303668687630414439122974447090208158222532137680046347701377654479856296594363478649574957522866793571956833156504313647474591597822532270134622473772229998621786907212412668140129770720100213002335483229273331235136626608647708035181072929863997977939237265357917021206517099343166994156568421362133538770149843822406465645960054441948400252088959895575894185030105194281638326842091762092602061776805911054515765886404261989858243728382362748714536337573717772562887500937235651959639465222064037094948106719519362614926375640264971756853129257362326422555278778203820348588693363743364519899233353828942247813549874085969320160264919338889224258448210594122294549518704165445193565651253026924586803967941809968875343424970650391801903170889087972230147182528642227567125735541353921951760509763712904528458791806101886343876801688134710980467082710400467956229766522125011542916668739258415789829612615846062719847772119717839822693323307641758550783572822390500110217769091843182210750071070528305301655308879822081278076184355173733243447554265239958977651060234950826567223618778752725421346732604588762556883686473982934783654569607181983180073925838155031283389474083326397184176975475016416962523271086950498254590489836632544364356280834773887494833641027921675609585963918222594810244942847367625614620152502971293923236120736357818056186252340032109145414258102437825995913752169344861677331453664396676158687161418361454092616518661432975853831101160258772581206142657079282147892807538527812263813995666855736385344978815417347783017922188725570700218522549742575822006740542012775629846110800701070147816927401408027429870452468187198644605872283135539289713105050783954348376233915578063937676287475064230910116011328473459661257470442939558395945942162727580953025706636277975789317185017786072375443323886620372771904755277860646084376741532282891992728299527415943433036911418470643052082108939414795261516949155971572583735675276830969694263026806515585955348286525041990518930337034398083823970671504308793199477893876129588821302108709459146639457376258393522393070866493575524354047543716980814907020802140076810428500722043844515728661644184012401122907308372109949061934636932131058219311433944906425503963184321002853274043429366709780389875110701639711605695494063694868325152267575599907953640954304380310802854366886904461773527707591662819347112105295169536687389526227739974310638539352458397455814102506067040633564826036896850306401912149445563021079128461314902395081138488222287635135099100360854836438763288959510482775966909677446732690414853924259801701466746358018219415543389295102444056301490987301020971512099554482702160345895575000839941446453345643444592348440066793882184485232066261330290419650828755640780157893269414280131133230265793478230133120210729465865060343880493019292766122446088056649601459178532245089556827875035060394296431377437096797937869990863035641863854169681584936426874569932570521500089589140858439986216621485598062633483148144653447998179554852585219160523025534193486928181903598089969902842337709789968268525824464097326796639176013024414586454248386790146824398795652558838333960668070259733200963382548101920885862662289262548811288169805206203061594614963736935908084401393311968866923915602605173023896476082273175795586914464933279882429361975877626912039809962036363784198186354650261273973118587909551774787969744313675808153760120950836257578423706563743976653616730281853801259511058259200207410531578925100090491686060051174377338560169785394641523132700371619022667005925690351891619821416371428903325776196525017435917649747865673790327325161024086706038307732568449997870815346919889574274946206978582104400753460929001320002960453320646026213884569867889110237642617434444679515969187331718833430328563471876609733941959611522355792491427954630840872242983254031078659579523242792238372000164760880369472663606745818878228388407094419753790531257036842064229501423515878479120354115931325495880997733674516246635983466855772267826590323797403834496558100330595497249448732344751121805436868124213213979698715816552922098497532974547710882225045895084496180993822904693560614722684576046117020678798512197875166971621405749357257823940941380679026287737380610941708689055149334933660910982706805131583605828148331534056600991495066360430392083595008996094899353867067176639160068322383044916755469020954734184508867926484455251142954821537902697356829451013242742723677598240699315383590429532689481508189573284983651076146975530078022854683562742938312806088319754481935468636955282312907724510166961433154342301854713369592582089447905286543556353424885557634737008485988637506142619103493425196254526427683481771705540134087746359578030808200755786394878877315639368581970249704669437834855769953470526092547735752215159466787055438064176191480306037281532943141264902454336332066059577407834040751638867704219076048903970758796969703731260182814964011179409687934886289613721481642116518583674635149951222457211708496151045233670713228980821989949030269812862276744404701662686034273513517581169820060088615244883738659491672472740009247900757268836606867249874211627363144931983800629278234782733260313615813837564197990310415618600981586016760329515057055449742796812892255048625086125887532212595674724775646917620250798634457691426470098161023070694381114366047198298297805350942572607077320674002460544432466292443558461825841185422555245714692255883300582449354619266826703574879650322047906786416021889718765895356608656887945161752272072095132176404323887290135725975517661337336561194555307133506099444048173735191982894108369888348868601348306837441475405480369118606049097726112333373191694486307090292995745656365962873056994495193430465471882597628073014051108486547748537553040483404423673064853264202069086287750963573639782979920670823608738637220242819975906031402335580791689328999843574330363077678020451771973301666130950840474557100847793783014932935498023662447720548912137453421497111678306255463814677026592735195114631351343756515237353441049731540167626026142303879617701507153480101790484813460207501714879036679828704116285397080312615885124097361007383705050959714081916592659025062145276151039069363903897072764240050501381679590628292844691459640846294416023709652696972669995872364483151775048689012480229433621174067708236783378274768005105014312382432992662484361752540203352532583429649666163889097394031625083084979142381757895101582499554584020346382211904666878586743969132798370645055858691671512862224493625868583139000714883671537648508211699055094444500544879970706937718192964406867336807197730031095318350865082032568212924991047793498121786669658542065176219037955798292048797727196816705906000296167711183927225540392240223127065473960383050334285549444170560352830518540605030006544840710696169111272694337815448121677190750641174116575698013875616374159523019191062552796656155928376583667602105851059142189323732726447884246012787667308949583628904044473393140090181164908485542901078897500511531820740733124457537879626599534816400427750846639092788771258818517187093335654495599373690382833405672142737099149687030699141881351745926432196405279361264461995061205548019764567054539927850577495856261398630703565963800970324706041548514676622161324969504070001920195630983083509812933221457544086646672090599210233615550680091122417807028080806819446409152099687591450110258481760286797315540100364503486470269492591100707980943801863082856337705551913105347284890140093275065772372585367883624625969120707098927650626073260969464853345927323707110797399218226905228365073811870957708367320757713673430836321656976852108689524291603346144230036603903478338737332820325428471739276468259215709550308576054779973892703170989826752221086603769206469451007162886133378845001075072104919807646746472084058690381093126320966919516869793558943596602217774661939418315736917359627900326357670211987086130044708846044922986356074368550906834246173999291278394160419643407586748357962201002825615014540572444672328120538629267662168781486436906655648477586587884561068125307576587576899899654513559194023152383956489291519794479870280454027983086796947995681838611287427168016430634043130889982234506120294173355804923771907463264275956581229021194858915500013327791840191898282665537415796302909780611644191478477691044349832808518022866499320064186801040925962348544809036149102190337324441866039484014982001007056410138300956591640497037062614389503973341100416955029391933480806441132908734642752265475640717288931340330693224656423069677589273794129909582000229533845326778256236836438257556732869978396874232004725559533588237651229881122723757956769891089194825362355431008338664655708898926560295106144703735159838472992775515811185759331774520875360392562469065120184691817273782344824002130594116393119386404634658314490825569955802365744193692613821437240361033606240690765635714590403639559187329747816023616868195181916556510081794519837029737055347691861295917081693265137285949788109819419535390322884711275441651178293393509793960561917933319623111684992664815752314181597048546354470638540823753007654420802844844990970913477893635709700235579167795864341951372596116789947489190038513884180703952268439108028087926108831962808323408898062503562441840754175277475602942132876264478975482207327699246974497091595162383455841321484485334620507085988836420914944079169600968494821094862435692339022532019991696504257607094685187310989566373641930450912016619786511199070369384683329701324868423665934887720036812727474735019133865993354023653930897138749163561824901066143276117238321379799104208675109802283731549329513317861785579374264094451044296039839222431497111277974834059892467562751953052177553099547951351278002541473198616606192392240034524123494754295674560743195514562754299068591436800129500215946510774821844854739139760726529360568395466238279930356823418067058964026376513859106688831017381472029277552853312298188089630630800689758336734582881544227174479938275722981606956645319297250097317194245238640061766230994358355958312178090372451847375066791422909501719649303971200555672840389306931690220395800683234931371736933384589628631515113882431372669171551395550494943819716250245111482246952755351332549350891355792729284280026855186230186419381628565392606037402291460124217897197573463912743089811679377146196412941386587688549058214029244124619330942688739236200577233186399654924592250667795534708119707461907767507226217450764714154314876860646886966193591304877594673310633447215854646098782149260405481260390679372594878051073521931623586661382750411270464478806582827852459714997466930825922268913175687012070944893396592494255592640067795718755417524198800958258463052294876590065312466248375446178828135162368090978128136205547706675461398032622469284072509007802580162118350124938122779878568819574976460525024862749569684554114139699643787688113396882405386432258926599286294760357028829290927920471174391289249697861023307640111126392278237485400702341900144032626351288302896677201942387709381187034315753921453226555956925942498498467453428888068167603404775865290170884160075133273965457550755960843866489010726305259378396191351766982921663471553458826329445859583197480776536875211579845873849111227988438130179413311821998722974416240585130649077322020340788515150693015038533002474692290866584501905771098162712610219730212518766737771566911786911515165253750473725395690297054537506032618427851601947229355091157468606003882079584424466958220797892674989808735143223239198667422388073985959736452408712995310618451242125412977748727310719823073511572516151278744000864777951112456282732725795831823839944758696911128466933687824651849664684707183735093459371273506925015682324831693922254076020093638489991729828338194680492887202632083011795281233725059253481808267665862335925855724142487990650519950849116909616303790395998932349456079126144578724400991268927658198527438135254136170390170791352058083992498771742404532572376866477649666224511220418583279985254538341992106596189949373556567537949348587889146460837959231048289236187012796523933038020233236112830806753128775166781199578825640491807898955933728692431013186422293141036794482007811855242786724998921214076670042784937313688267322763092458376375236826297307733806156180274766044573999783383268229680879396788260877318444556518331248008682691851104189117718959993524208492005166900551968779455846147321371365373304884660516979919446772045187760129762494414830389733183089268213360096927970869731919249308837267618823718110959820571395526202264618769795569019549842396636440169163214964525543192272432524255399116065173284907175486015266611429349174826216251273704469028447743520776625076672622027192952109620883444012260279383880620251385407520970602682954337253363272962198668757744416864797844009966138995192888997235375124981540615239230962686474889185446162780875314453552208844958637315453412106503506179072044179335748344825635165273709020447103992896595171360565557693528836550427031185731845980671108940553859073348137144839569400859847075472460080424862877028364217007742363587245704684112641357259137900886729037349444487079490560779001372560658929150840202430894877197717833032351291773171675261668036646591913700157234261664344227592804227503276736107842686141812352882445664481256048267305203932943362285089712493774264479371969810100840001194215219796632484985534376759466070502159662824281973676756078174949989253514662050817991878151002805281855048986814256961755960539905239403869003710756794158827207072870989407665944936239907855872155603551094766895792505642419214312641699030227268577029567802938413052077939305403833577062547981457901800130637833883353262935122705384841399995414072117450196613718077624404582819215927782618388529005724635114771044083160369317481129736807759190303315410293731917015580340047502557382552201962001893446721893229538405761465174904932066044567372450789110882241118213106948004907643266702257558178650344006790276415340764811373652779085665852105138193866932420798691053662338935209063482618083531481767696836765337881884807013383664938241660464670500754056989233213394215307716856831243704871163491787040169658771850954546035550281624445862166694569467404556658557064777342623910242451596018547789272177459327077171831606545133668733997348950701990124903806173457792695948163392530275210707749283263699034994016196406609514369206769472234678785147750181941297133816421920128337576959956709643140094246050541504963770005963408185803989231364436055280406601440636574451903767113046380399703368827203005028688593465653756667855816543058086891944875607086234197218631370960627011034242327523998803881695222932501319828453922615668026627079783452864474118143262414481876418929029457740650365968058346736154969760012841754586266524406787796051651399944682370762417602986886662070565000049537745645448497927074738838800736238279249280102259339224368248099246802509741378346636525930303302394848950421530562699954737601391087370565289691702915991078579413538842178650354568680656667294532437591549747356774517032991885759409380167519876965083081850772544268011610515968318968350182820471292510572548903014086236930638015682340111893765583630022403211083681481482577937308701440150022487901376854483912997655220628768550006850471046651063276847797257867760013593062008021378263061670331349956962502457436709591226942701111331972847030314235914115391577904698702773423781595027550185129741665968661174303506411434725291631026366283305347266229326047952673632119387322838350469142166177121989122787083185722374442034207607716305362732777605694003197736824664987966068603223738009205876679316108633650228717249409935468676991522522476601908601900205742794984849603101543596009604497917732757177689567160862212169029828040346485920319611381161766890771407274999616712788169822288040888122641017795955717517756031125269517246614498577402778243032898913829192009303972373765482485147931789061186374827649151582652557253511806738480971872444611873047769124897327541854186675576770611692939644040943120290011698460027200029864569365290588094631673864057601056141700767632726580987487387176685233200781040559124663058145311573450878266110151475461175512358495699322608779219926225402845196037791100805266967047719334538297619494392271267884213862653958502720266411009505131927936059297337176412104572446481719105780943314569608346105537466096220498043053605038467647195395653164794192433006785480580965421311658266828680732944197452814752428168091222843175406289748948500444418354979972501485054152104366820448904044853526724416725085307989882128506279116884709211515993709032406177094521389948172042729729331358987218071167920582908622813986409768105662997278165248548067044126474734623599777253002394240894288349498909950647044440258340158581046407959031737681574029419736173663605819415684230842562192311909570876845210359053305224297840068991338169818822767920287572635703807372415579919715790153114464008796451508952732742897669802078668311804267899456228410305818088569935514923595249987513495073103629873035402383594774321756517620895106290986998624677231652489423898081013344619817997218181446248668346557913772963120004222512940235517799737366151247844493289166674656631256033076356716597053199362468291207962513989311607538831356810784754908252578116149028704968004080899873630652146161388115888671512655072633633774490899501200697008121635727920141800298049775614091715089837264101021659307590738509210804913591890828731431018345439928443736153097172171421175058889427652931674174110076556998819766921168672689368346125090331304547262503552462504550372337109840252555193554343896542647893780261481590681425646381480806396574846874717011235260706746033172584983859259593136162741166024101998250495949791512667541737995196429081734874316021538571359726885654527205143248229281675483668656956037860296121996759943228691493001316262523024517215444974706583744475395221735644746441417587814967242318763550584524231054052409980129362606071919331661617481693154130371719248751291022769225444958547650748812198400206032311161080533167100857608990660157303462359325562533343525462710304851323531564693177324044182000743088590458276171381576874042258163714526001828125813888441307469778237276267749346191541005507555988753239533206912062010913763921798719921078857043972442005380929063721866419170404252658286054095791484059440587785590694476683405367694524586262632431852677261931776300595260826107810772362006833661875598873181759433138404007312682934373931628069897802797851282294767820794820767045643928517857699562904496552399357818193668650735479106878958819008429621956804381908887788742426570287886745124721376476612268515296469466807867484864564964274132603756829128629962971591177262794268037477658155533953281536538767223139862014887589902524995932950639646918393886072221718466341454605640681347927409910455498525597068784446493276553867279430230596393575580774107563796675915790544704914600236756676693739043876841827554582072542728432101311321135929722854002721764039964954892230155243505328811940811393812935785323911338937653972276120545759499258688211020721439976663969276335184826027757457588796655640603968642940717418548011689552781835930017824969527394177903529825140215165471420414813042671707288936046861913594276755367571784691147244429073558186524983731332168299944708712293885497849890539330733386607479464349259594716791251189631982330494391249418960704090366825415324743203505964050544543583428537356898299488725746984779330623182652870177787921361300463467393766788386751261198301745718699748057344195019258209000534292722122999866172182896003108808713767037607438209167306979112284539833567385129723049318929660590726076873235357649387933347691234588722448351674412777412225653996793678544009768236285776758776001618176915644668949191758690270666958679279538602917765697196604523249878951247862978708525465081507863148534560347743048136557677204313697191638783942138342552971102970573185615465856400740844894101075681570125811465068628794025133417353204810437827629765138998410433467569987805036737511318073300074184974453939625006081506041552316685801354405056397972284194827995557101879114004868842128489697064316643322815781197085686853464073264476502520329290353290804461261486461506639339435292815712733851591967286397972844028181427729113115904580433379941956078568604412549597786608549848722984891172055833205806413908140116457412648386886337069895518202018812086415069300306095146458244298874882577243483422949264339439487620124084790721062859385738838232163849552651159022630322485255467327911436497454493041123034886015334912485408173456463215915350602618352660602312772442194902417347069359750816178712601176144871315080606583429221051016834010157644517996849017825057857378911245298333019806283479953705139202810299783851745492035911415555794743053150840532111827986034916245589038869884828812781171189542592047502492058631475729877194646621941403791780787436862421209574798165493638805122158880497637311514798761485996386398865663899548540677611080258853368334551985820860150841895149902234690187520968976265892060550398432718307881379998718550575848658863844940666908685662048773635216017851091570439662902140321476592807116705836050408365448224049629084584703408634010240036236381716525768605978320977180537966307690606309400369412842352992223955338560850270990442003010868147524790939061098760437417182403597757746354867172776533653256054836761624501359862845213988033351561709127982955632765718669259144623052665907813434878783314304902607446067873308494838571724400554206337962329139700482608857397822060401815270260208728716605405891288399682803505001122834542268745707521066659381208345775338776671675059850516654872744999509016021329251537655584851011900593346747757368776604801464059138929452183210003932482809439599347602054785388579775499239827212663487495660541738133983919048284168229473522480895252267666363911452746987441588847369072005188890709973598548117164757571495616328211276465589523399372505239350812066563831475439581192039046937820793837451588301087960564800308095928132678929434554127269427167751942632476166996921212362065937193443001300335773426225826846445239914328787191345286411920460823509772374050592048285609831879733159302995059733783092135908360408413219256268175872238776397454433044633502021279454716766993072520910636250359550617794188192249064192399829447177542320677162330442265443503183060457947322927933596193680061485089335774484529718446281875983003069218100624155732803142957345985087749228241372878740987574584228890794979803012006472779763532185414052477607760039386374523418004031159290430435245036984809777508679660765395946358609282371766042847222554405070308859251170555654671936425241126116961506923011194264347990486225011733915631938774273884026382241991669977454541952641464098047658956489441227707015121671225197574879803815392050147090972124278076413009984272032757218618827004502959629785151005261544579053151527610008086052795552946954651627225953095148002123534664837353300168130006389586920041785133209659399330138425647625992035909300878605054115434031161507600538028531473434322813845958914230048429911045489557557351834493545636652575530175103212255142980994484182186311734335367852651647592183279449107343977062798256071561289232227141603605992533706168046384294987802894777031409370418077303527298709182904255974389781532001276950163584174817840968561261073385201139862454397296533688479306135115942911187793385285162817790685902562088231344122172461288618136035140680719681721012179524169688173315944585923859781956921602025509008684619855619062619405935210121568580912955344431899064860844261526817619205092241476526905987696283741014262894281910498173367229485360856910335148377514248422525528882719733326350084336370624435950345130176872393596674300979221622089049230809927289616347532348611915009001603656397278687079269518490486937195544199262221064275209937030646455010674393038062953187743273160678982652907774885776761219468788331218879201099084826222647316118983912364507444993658165726953845623124246460031549691964766786043778015775924701356433506197341856773539611427392029615109518825213889378982640921356026939042843480994648399700820596907181087387441166034639065923105049104052542375282877103681221415685515156682432156675399789174225055468655343741827788470916627037977044308126469825863106355772143462825670506642986699036406857014874547144185077653013027203394994290114845602623472072767063873566509220951452439375208260271611086762122057271414455474518698131747533110873117875044899561750659860465150583939326491295759281553456042307567661703479788417072863147890356742658597286254268391051143198614654289209996782110828441687875561893798457844748159937357268738930441663870038521773299986970135765918676450539019810084822207447562010338879019103508669266629011613881032713595003911446465531871616742364632502518340967199725476344584528790111756629231082459940216625394096993753254804830878484354737389124025922195861787282285256540992428045938950513611078400561336258094894710888722680578948719446635920968342264656082775101429186762347006338279739726820229643925333382411478332368157440400768560183043431306523731453665046831217242874763636066352731490940438465967383289347992572071273270355963656500756996518745145519811455996097191100805661846519192880331507583269658852317073320448758409605390017180314008005451141744780508936311483301049748700911616995834259542488674254768445475990148585260138663257144610223325817488300821656917336536860546530964167860007020364466123321409204027682580707946529882315968984611159249739612261575362680646814350203739309312115398678512814958693687899809847387667635359004057367355680445893416372827854424028425812140453699753646923268044954769478156904871465410419243729142627322586473094453569846777295198717499466426867886285766357356300854285944430845226747080542399870866957505642150948306899287131494283662726580320938872720851072106561273215116686418663186064579577445264356588039922098002006815208316795256314934724512523871300017895647142428667760759927104112108111398137483285663203591791980760325150357791971320832668691038537955393929434684526305385223774508063735006095681046593621375311848284573849467139265427721390268980880057951049145710756746763975166176850988295869723949097434195378377488027928478314555440438652692627505650586900800202229476451458593279098665639100780660916893349484457651492756699173558914716261043826089272108223571577179998483090320255846359766312300730055736266438988938241070484400566342936047222469516440452665334014140165334230971555201576621784869054931554834529483532787329123941280316964899067850846515483498460972376302087098702101988556496102046517771621524937072572800534896673918479843157800614423936669561456789530994895613739984360892866987624146867536161591185843507333914626188791213732861062986717334945122230516846024781006909060191770831566423112495826915892709885480625008516214810755926319011710349504502698680836015560324104446469402267821907993186912787179099681017740180496749192818818932607994539177521430171564203298689247457850104629685442345087706526557618455547868326386657714947914364930519974158268167563096679906108066007150380508034937654979680531666359856486999770278953636940778133898177334258750560653781303050595159451510988694295797213474471201063180971587890271309084563357946868591002039675248773564663294345081262003505026332111055569678767030398127977466843003035073367454824575704604848034325517531481293493783412813150764575065552528743162074413489864108045644328958428687328049370349804954462499874334435547995748366327057672153188814403380649278277203361166464597256391039423033198190243414217480678707060285532084181841608235403871253668361791300341256099576311988709981870327679714999170335699656955330853817129823294835122300572529697201663375819696675226912316614052797003772663985192762302688460395278951421419134173020614868046919164251640776132526999878192244028825908873724923329737178222706670160539525600903922161616007931797771247426977245265903483102150104617364962873546426222184287510400746351639539679913741720385117726437524966576728247809005523529253061025472948559477301021579099700297281377150348900628911525024940803472439224442513901938306928080452357635594440372972012945519362710978870478691072170506282289814829842740519038040335072917763485259199026055606419252686635265034359638625300738399096526742196352650535440016464545828357594321307816170557393135177700405924710894166496275137225626741232305716267096322421888987303863549829055685137903445818655318670698860229341602453589962230213468013029637238027304771394984188816818534256384984297104382337656711965886941332212570391693567122608530161701993196938636556496467944433700938501686349289936221301014562563660898681879555506792106002624650512188260714013259839478074062423943150434385935198438474099273103256216305986774858455506754535939315132435543179849772301296424075904525134006201392692931361939178607051766893371560713147790959242140267471801313833524186278915578764772634405884995914574262191991054537377538414568353797799538633022291234257777786501981272660091594461610112601563264251480060618390378042852637296364569766490239458108530490016941156611921128872860674716074419683529484484732404300308994490464953879815528000487240992820354488639323621238035126348582825063982847171213762320103949917825548880919201948490542784777975453999407531654922471681814369699152157106040339039830096389366231336633609755302418913295094348865884803897444167016766712782581868432445697842033722442330429682584659545326901938308474876301345880572654661268583891343767819603322222000638681245443163871365038920230664905685966170261377405364834709135129196507196414856363248221790144465778144423125196046330761549507101816893951491975110102649916813557679327327854838247020735628738859300979275367023491525369058143942741713503033082623421044702862354290183306906075592328014868398906594088237402555439587332924814635964682151804992239574614921773089890316850872653106000340088929408719954160473254624310819241272473796607516809608961693666066534217484574338467316581165189826317576980016474835026327474142707941883945038898932657457180567200670209107544090348241607295626371452848557781752195857580314282086324935832862026378000349637833004267630250772193617727517045068774112602986796110152029164485690104258315039561613316180212051419113518461423826377926348377849827439154182851838594553610369265877483189511510326634208600390494267251085151936586242227738947862756327103750913144883709941621056430359089240147207390602821338425538673194328495013343654694969080546771322719736021536603703776031557179214812806953364580995877011744634770349118282570621868871962708976211458595304836959614639005291140014194647364946686194867214029311520839067909129959469634220968193066789797989161969793918888099824068595114283294969392435476134027504900616478378271240895710618448267621017738073494726505258886651379332104354018750076548442325208057471820617818183909882818695384333285542265963951668269421095288843658026020027728765196478171156486082071182525773404366728292866499955666904293740495186514045081916214679060500449205301553879003890468565323180004125995355805347527959960564379608042614144467471640648162986415878486476165409608145592249974929063480677822479636314742038365874861928873602223233268826659430512902645359415239551904052421516282827495897319083223571838087714732230557641352780340322246232703610737993374731876856201544165056342804773152937274182208629394899932350443357773928993774498808696308171961412062006097511470765627518182023989932645174359898841574680428199149388477205054637960524299258690045745739565958212229472198213910450784538790042557639226291666956808693745556596568549490469352958181583215849009148420101680082797497205762717361138110812940151984391966025934209901550569371107891373584326885890707112369811688904454428211895167549753911402199717827838925918591474463500498781770200082266267547721258073950462220836474233039731922412966202429097584075754214543087144183827328856301845320329921557239242158385966258525760402723172713901702291827307300270212985984234950034603587905824839852178559833754053113825576816016562959163276432371904363149950626351299102072064515498325632455279459759760929528797787113041001312582371089574832142941562029515776280335741888200306938545051043693915709571785381430914822019594496721098138362280107785161179862472117109908267198127996349239846549413858075962548598414811127119198208285809389668114785220069115731525936144691557359834605425025807815767923826108893708931088200519733122636971745581243705174602553954671023871875242763753880677281404544182398902039102235062237477243831634729069525264674690624793184520369089785606281241473085298174915577145276628191975494419875260536590978620411773267826944923111722675632063386652080308770230780382901351043618591355844684783067839934276526425380086367662592928812106953473254588323358202772081196615989765972625811987614124415354041782631366769121370687378063487175893546634154915808423673317971201375494974061040466707560845624301486799823868162059661791319532841540027809532801042644052213057676338961740699375461616464680160060760695962473408427998568294979692572861543258878072674372518627050788398540325125665056721269379018064928873299919265924012635001180206034979819214579464573281648823987078183145467545911302240192607604765576601616717554823024030713037025665229792283652240902449911015950401846595431581690130387389829976464938817204326109273147710298043456459707116244125883164406853454305028694118825166403425522446400229989347399576723354290685809637948997063978138109345711306575931507316334703919650267429163859703338870625311215728089707866613394109302445082195976562765172310728132217814015029190099578089906095449254565074153274564490870672263235716622483101837452145525926514807459634876014333359439654370398980792326788286938431553864495387577059865332053008579352842374405907597604299994857239532417017864998811622772191750093826646368584548377662515212493220582482054995540359877655397734132014059480849662420120498244167093976431832327127820298828889131501505471560573033704833580258726588758329932890826343406645880231345668770896706987212973331694807326837363386128120963277392988494309343896404517739539776116150594186625532292092115282522396820613728056087215572946563935874637266147049100661048638562604967868034344579101164202624343607679608023256087146593490584166830361051069638430173636887885853762395179621033541387332623382310207349636776408247641162631767461085413503861029531068458880437345186164763786943709444410516991788361766373289034390179897050298564090346670056301773450592839726617478441169328983338264713046605907481315797891555692505502432415683033988356830428797306962290118180330409587002217231614652082186515809692483044326601333510548317320621964052451127905865025065894038224690400927715103701952150059592370457689974066638928340274411554740132158595864410377558256427755187488406751128452211367327101871163974696399370813456417930556256297819960794132553096556724063211396207769476026336767837831646507868169114126991747703017743386952251050490259548191494465871223242064792613645773316880806023182279225724705650709228268519469221538436298556274583095045594333711948892822115851347592181291127633515021569331336330420050167492203508174189389155899610222387236127894623342824468826044771619103565026818746087254137241847572159472395638573303193526599386773475169895419221442916205946599965158402990970496665168747107780135116122481246809543004365279086071613479211339135687808387284342509149924513494594550167915529183742175171104782350510810654892637533667442242983946760178185710621071952240706392321601765636957235470026241850433940549636837427421742494385757331887015511087108746658053281006994144007661587920243629202348330291014197441236488699058749228801162932789468429479168316112117990955163681992039448061551642407089970254609495930795159571778572218405072715706567834358055650938131534107612430451249218973017240616684377412744679512236994432295066936818697260638174558618015153785069100968578939627453437441270922290376171816474685576514497936493108545258884418438113029648184858171934554127772566174288097702433607783274283530415936820113451930982648154899278516324702433242331698108785956853807906405807688796914935249592876022406358139496976283231479484627517587171545217493938437955054890206452050722920610667142418111919297226001947795767794431756194119899705021816224866000960811225664306676251782610623307563973447410641260225689989608628053097995223526065761763283044053496719458328850946547266960340911550760295428415370391832318471619512680195804960596679559508875059635987137062445271215947983893549695683146396451791206554161831205408222633504449946125585220486545865913787885952894355208488491147324964190327294195989506414094723039077442796974990113587893773986292001385906184983225529644813020496313614032775734224407780416731270364868914668563385798136187835222028328758812642295725332784093857980620881049601201404406256984939926326891732538229686505900753643734274515325584032641666889479935810133090527867982603847123926472806345968942692593897985421009187719414852764104803753592085890965557149379196174630545483353913329171071932319624843316681090878408960100319838154940585459265248999466918227715560375966481910953436407123356579517222135640910955666955936468355361360017645379542296247074735901963690832884434735656498147891794810605292490934320394052723101561877542233050051527979432740014507535578701735022163902213990733433267634378567159984073511959887248253750230674003475963926164813949386217954283790451792979174692580901332077018273342608172862180905727543585713667544612657399939160702430315263777481471253061931756622273202639180898134051557853787712189973731535454028554946609072803727612665386205445498205513112868703771043296112968291665549275418711381157919560424654159211622005341254643305926580705405400950492379383084049339288693888257846334639024575314564709265887114563162738545987654986056806173344408036962465528195275356714866352038521291431444868777919318690267805833464654784420136397482278750923314760817713443295002503907531625251564836258534622158814336187486721957014438728800460382496128578035500912399253066927745744076556421344697042412713205779796108643211122379250340141724902252251497484543497991173923059621640776767987468651882765659906281524499733517746566598562196389195363686018183534073061541746140123058547128783807167902484601917323145471072386969226979519273327267878503840026523729702178836887733592671198701014340719321261381783862755327888505632880260375858746134189584532576025719522620905065328063558171558103462605856235120689539731033266751503782272522174008696716008687847340717488515090381356005904817633697134214969056478539279202552225541583023688025573042884341124082694812070663268928283220551305228348986094654350557570106914140765813447194289434021081927753031933349331804184872980509272682409669991238110880403446815058993318528777020378562874615284557040451610059921671897053060559939352253409803509826133849620338614685878349445816106182838645371814504802100217107244551242473849377300915774165447714711110130084802881303834306202338555726323392584811384467466055237367808463622375521465607744797630549071203302894646360789827480023790401157620953826244444577229604972999686733655634348677385921252910310963938300645530289677493213243503168986585493481560027250319419330958458065660298886413614273776128870252657326453655029054827285201890780354268648942610036994058033236452555148999074017807947408024117516527393388978374769007794122843161171877589230042363948776860954294600083174178790807374627471329260495679236877335432105186688365366782357416372732339438615270159739721525108406234665196578423949687407879192402699478858399595527296188351936057689837335115396424418328028131485962326948941951849488938234279484741225061609456017315502934762545018363248885739752833226626514417305063580687646219948762282282728829403464025671035674884358817443026708707329042718403973303176560338570162865878139161265027530181426711485401626275335549304925526809811671948049767081909023990892727628968188403667078459794156892270586959260113200686244415813621495693812843124095757614102005910296652377983118534355800393420123254010403096893559280096185462328646857122277566223359519721928359222914710243769314252874118659940082212355748127154634134202611167307880149746487654138597017364309487303187673052851839727366425190689119267541660226440971020676378120834450362887664220483418356139425338486318943157533812106608347317067552945841434741115519177838087826891007260542094702601663766451847969245975978843387312221583696190217665937731903625236854952285816630342974492189912822972057427443148253168936889483138163690869882071989135917764165097443966079840525885487934543618148223939009513006583847635462479567206105927630386583561438455538548393070818715792642864958481036093361434900359816196525767470021263668216318255884647880477469891863484201206258323291285145345910455118385841360318231169112109616035269509317869022141172981916820450689878331895098538671069309988484718107248899876029110342380809813676591299191277606356186582771199767564555951673905155580371251472451396841099551404144460013841882493121564182485315486434943360837505843183423853171336730231719623036536971424470532940298253612595721527033804353082263535035390870013898602046551871683138444798778350450124127287385616389332180611376626475442789304179128886804478422294310851012136412926548883503581840644754303564587785903248993937352171096750252114882260331298072786703862258145736001910965460164002172357593806097409901748609601830217621334727877779713575016598272800442891274214380808683752999329312712227888286711807793702524563187012125969444234657789424282136646515598742851126626698333789231066240969871795988122988727080377042113615831844910200976682852918566235551253513198381096092993127961123695571499017485736874678801557492980455349668196360637102944917680100825783714704033106639768479268805465027221609788490634220125939251069436937644178272038656547964160433130505645162747915191060935417448719986898814134909165431625429239186452240074900760006594247251350333383462845228444486849258783287990377687953545665004272895578076770659021014657479570529383484717094597658390684736542044477029926552737342747474645354222743457047565611421894145980155954314023792958644530692047377235302475519674026831971645807460189277911265470604281271148722012108624204540733113185963661509975187139616398019263984330652979128897815659355769361614375192990329270716273527125680063661756772749347881679174057439578499974612198996127818466197130755130627965489654451449978520314306471817184561958880312748274483157569621305488012855873188145500097201205598617156082335938024640129867509732038997273993011067018958748036875174448445064075418257574374443187433830961947777903660939256130493867043036444785285852864925586135724922338905129607385489603238512950202740047916044252104319112225946340459417511141831926029234899107535081128531392559777892624338602577569111874883608167642379144479067284608272821654733763326912722339193934143386647126711583322628260406640801465497975319537842659970266741294505398935766130333750312039776014563290397738029112394692416391829298292890369951492409541966377026957898519328252215447312579560961397786319285105973086619128974633415113601679452916584747734310907303954066379632971754974576600475440873577872882854948754423400555827223837299480649536897876604828486070376079307509545676478938450833331985577323021585140260606055422780361902972003918641718415346690374321384055187097865814261316758860007376572528112346928517737382579707625903915963552575789577906686929665841716989536942523721366333885194437809458301229036830317088308701691888448643768384862403019224181395806760674934673511429440298320838424716102873966605300000629141595552363608151164326569363141228222019343936353047337534666433924210421020325993775942418345095836064677728717804826453478232556473457369389363485700158234042345332330790793035141902053536552403226148659157918814117097938351865278131812602903952808208408179275879818620454628693637756462842079364491013136279196218625864198827273196841594511468861014950030953106003171062961571851393701594393662157032179355301706244909528439475747238953161497485738727542353777640915989834961065559210952478098659422354558232638497336943718093447218696746568519732903098160563419662822955192762554528845150304819596372248755136746638193176734670081225299188439812105135214989118366817601630625314725378147289142825708829182267440820811880647832393704238689893080037644808596256126157464284767487009158028222009615825348141669820138514533554203254427111319663058349554303071019184248330551510088241757908798015460377224300747777773741651588524449002260153141639042008914453385767848794348937880622195133385615468157837775133247389339517144787974030669140271993548136195493789772038519069214100230959583603766867894253706494261911453747721890214991531659051202320107469774537188989437726036957762608711558128146394317546619799079434485433683819073326766389025508532383236576358627617392829543525424440397054123598518716690837133567116441502623905237747574111344487639514793725206846440546922108716918245383033543757351133389185444534191027720360305041968278634360003233950813036561215139197996307489125183220981271266482930796090506303707004366633102670726088850297695902149628706659872387998592713927564663618590226087137636273811580209947427770950573981029826969481603209208318930603987993240715952809576805824047660665110291144451169497866324827520917463720636587844323075969927809104407174992091878809541631489899811664737500828481873592388789581318751282478945005097293905013918029609224225385408759130571697226674640918539258270682551179719511375484988334037650413697606864706650759951411925260037455142493157665365796498890665291490822056961975013856005913703597669134145663069423553033058284749420986246394127190819883343559466281558473138812861531505626376469492906020260276141602361009802156157143305962240740989714987136262700070070211567264798416202513046442334807361219287030343331832461008532624710370400931070965443583054950732650585447740791337277374745588654652484875969246899156670040556599343097381688168799896449969474477294278856094289795219616142345609004543743298414068673160108819440913529418537112684588530293958296797388441113398287195700506530092803847405408448218399253479756712115363240519301638438842533114241432611857185927412858689284601755028944170580279746173951776795367907311955332654267677967408510802519817468448603734655168625593672184584930919712995969332938495340292584583485305553126672846457455540389291209274110207917350755261278426651310636405393389740424933311250373324712029454362383807735600293830168744212272389909238155053264728366682207643287984345593402359203508282237222549291452422327434496038202645203462823283335470335855022869572345368515653353804176917100837816850197883332188791750934996086399263081333443478554047935970584833813278750838927538231947485725966520884677173300117088091648032982045285530468946571851841073574382498917506225946370220023469174548822350548886025283149527672911398483015253020734849804496726243369170959545127527952256878453415198503893561928282612525837072729442928677994731446648653138579689514365537272217881822095448583029893625382216456186273007317826426463906512225400871729760323670442835479940914464926854398275614373765101944517807603323037346380602045221195121459048485275206160007216916925185113317418183838577821250848201990389332146372491778924946994166767337685547560707210705221803446577861050176819380687278643425227692331104252867349524145180131883359179288409959138362951180574183376348146157579490040268894390601802907400338855165442285763957128683418086453095951915830986228189039987689637787671889634701470205075843612297935158085149863305717427134570147550399344330056657711295935269400718706554387598131650032200161829547914133437869743475113413272830961873220222949528767010634603269775631095061171501502030574548744897310219501557406480649633947878590509353636772073329248665469100254186685568909106101347598793821499506108229640677463602242599842269918478428586065255541708268528994891381735904083988912025768358201297504666301061837509848227344687158327787183949686206948776995069948647933259844900162821570397208852034849696308209041980608712580699080514892141132881162551378370535544383885731925093675701784907382445518050188575879656225889225649869922017816884245108014380615754029453992592334183061231982431983379948664591388313697631372842830159421304920833973656087269164354739361249903263081174392816713332669040724900699747758379566317638767285851895824597645113045679042699465619440575056820348065118344678249060926326045233454438277745477673586034950221677395083066740262082001481810961622376843364846963471357996004223641624483593527106095304045816886520596542885141266863235379559258734838244645809815731535492104059763005714207398730873291382479431877434081401721597539196937666095564538409603937218457901625708663471822138874683721703375379322691181954025968195624664844793089821568325791376803829286065162333650093948605830804473383343083664362261521922117180429413641415499005879412952072884485997404110618277958984085925297608597510900011804338802411939933908009846102692036405296964525383761675593916547088427628166799810605860182995672646962619560858723084896860219989047361333177498934733174483492011288363908147775241610784180350500811100648371768560078752683407121805240541225160622369672723857417900732053759394165239335279870183114811734397267875215855065589822329003889777090086124009587639587752927092332649229644979169961834951427846852547694128706919341029675123561142464465519291884268613572493258929562676021225209962466113573492449996991975999229769944947468627769296326136998482119507783012722034162137130343229713876220831652773936184620822921540794683632170787877786232137901981601770461493581238693904257573579569200777214339255999789950691638256947629346330847162188878213967808705089420901307644466712449098334042374805449300619693639567085076777671951329849216391450082520354580484361896294431839030155914821479783014893619308482989066434015544451224266567220705434875203358553054889932915160495596997477137593361895290009262285117958460459840722323225885148799384996450864660387591338863673934581796744664252111534003800539700740243385540357680288694626404686330704457032011204488086635687660782569410905314210173299344079426012989491634358890824614307669619252173412297459008819727154644914174618117025232013663916631854612373033069088087553100444915284741125920001650017852873338743578597761734907137739799097976195758918354518014198872941475778380965165452655826797081727002210147788306696776398948823585651386352718270123089525729649658673172353180411809806104446101325600894786986107003449794454078101094187063373795504188121514368820384187336677967981654553210604902013897385547705805247098556278944367701428655397985737148539136683930271031216742675805831865208907731162523320955298824661236359042159095642591142760214970054494724308660186524483313274818928851040230509083297774519347036318299814857826041158115310763253927435465780327971609931055772408744062853416726841405989923475181302223652388571623506075163785378884370124684072538683264022636524231812213548931951466963371386297388599911630656167982430785284581422560254371965017449264234194715636247221079015557354785746814335133152505757339803837748586759604504932791247527314401383151669958907877089472637341049279135446473187838241521851643094476314329419519204612026721516321827481374600285498433761859065724168368593615545017727943191762828099734914840527510477792354680451344873276210551697370747565112778550374540154673672725922789254740271769562774067194158598438700487101153917718504863726943436388309333886048142044866528238961387898973606214736051985519389691655973606382785898289939919622024193359212296841272182278871749567624521199952525102878586143218170545409777776868333595542493473934573711250268693577482338093847201504131101293072145985679278072292451846547379251980726729886598565242218513166662510390472787680145813237927511492855286231679539549141418331046040812388456494724485874792280632582038068827468527107982547444326586979206261283070904323387695264143912450835523323210455234570019060972261532128699376657910003166958289602315542092626120352405879082388695508306937403734119702268406894354730195851016578750618412052601792593524005126166160649999211024407131696379558822171893777445571169853987813855291877023616524620348607238990738106523205903720477872880822016853567153624294478354844668217653409154641103658654678887412727440703953674743377226345729947989579544725181118980811302556134743967758726742400711171304915936861807144908750530232387863694119857880213011112743727274187994474342278303580847795143306802630125773277263856362922491086185376063368609415501826585313034837246592941236647762150316476850476341033943658837035514333525826619773191366110291217192536175045174859292550240412068855197949028256983057479960929404094406024196392725365959061069447931959134942744309675902263734526031928757117834827088006291707107217638581731664453827870145187479261552281186596771607604056333002740276970630157272901405819499014895304586646718889967710132409691824693413380273390487757569566075273236618883636438166291568855060724238500308048092193894005848436307126841991234228722481208106139739009550168850698283228995328697703895555382896312113752752849207715631775453135628719526377264523280127305044984621992331305620120514795944164109242575830923351143681212491088453362341368988053847786047815004579245524514575581694301283895107338673153704673048885338229312881113504961705322594343484384567308324341694751628372485462493837953880215410007868054360273030123406431368394018128878949060215624325782190169551259743342648346421201846453335878794411590290867843130247696613011921661961962732088340292112252901621216465103686761566003903876337550182932942391789926440938491065012938119257907648054026433430845333102541487880052156687407373066047227916734725882134899288785927940987807915300057950012240742348496979331230014494429218944616036417747101795151690336453172671536458687875010890796075093147590558414365226197739021436779941903937304702360005295602029483842096429156932387217092558909572362861449113084105096817186235368680055176434541841640661319222435253800140155690835175358647412033962923632297383681496532172540320832502934679047506588305334443996429741075416524565111159258006155993127397400189909372143880849242102407958581769253760553506752579282846594921872479792354954667611221938082982858638464974469472444360092466389124903012046273626866622614510654849183140294516650453819919932782683924720918594880040250991208700682390670813911102665830577759946407394196901092708721480486673359383235363683726591703822179399759823783046069894106866597778871099461545799512036383828926195664419226986113613592578800760717649685664803113346200836776031010891438358069948034361584331691332831621833335680755534773950225119658218460230381412141838664030749247761593269838547642412383945128080261186650034024855981835888587283553052847401460629162339048194867998170391813386482402743403522762139692870921660083013158292137863743384884769239318801976840601301319445043004806193293080911840067056512078543750336220227867839160107874907462666371452250482745988543725658981258610388463167931054093116953845037862613073963477518334015854878352545898382815954684823497222619804152201713041300641738586875984061437750526344449264084524988448416922453030153545402979710851406693344193900311997760187898598097736672761946510606620759125972836280459911544998595594597127920071091064365378565489432358828160490452921528749419134875598110272277127900424782044883594275759331912531753776515260746127387193106918519149954550491425299736936399273085822428184318916544003158504535458919551630152202212590987309916873218033754331079776396386218295618608039099187273914742423340584698689999175086854292958851607686923162359400864436277071546776362971569220627487293280239108019809970702451083611259684029923677889804496965751653142900749397223450322132459880600919494974334233493579288123236000997377587860214583929327497290107875928806357936668617519894352276126913510194156553610022849284576386317400238223909924104471459928324440194903242707068583404314637917598039847056319101411905636480346015282998826389872665282381562271620783607251175029912096307989559891175107957564559900770393683538258138907933262297054565948382170906593246501505223506175537673591967629429493377491786615027346862576456230062017784643122436323041221844064340947441543450453924464815149283072165793145878490019588115130480774465667650641103714449446984565771645425461809782363171229600555627644791845637046459870498545131103023283585379169424662164744553648170412659128405903414057297616401694323204350463095430012425596151100571378589839125103496090808275857113242464062468734450777005696174311793958316207079974610842987314851645209802060932600168970552433060438857455208036212693074087009988173400516462781598348371871257653444398085580119253759139598313438232835551289455116354797404578372904980796548353740996837766286883959576413472290015902296956312942033518272220113572736141407644353508221661510724414520158275421962479123034371928826338005822068342036613013551971603063940979473343785054301527342019221062310490753351485017989452379706717312053572366210813251883194588589758095621881282878127291640160720373003150238645899612711187244714008566760975887215094263574829003373777540650762180817285696214194928866083151380797014030484478541766870432475312322031307067492282627913404765644093076143923476940615364113477168931011812645545598091150455405788847713230535505358023641321521106243853190153974870187077048255988438404226787358374968885669521616353091965264114776653292416152692421337299713734192340307074125162533369933932662527599555484877035111968965998525807116909703618928572414646934624890474303753893431074995717523514971276898953756148382926048966704409186599687656526148783738066171822800517295578505000028437281164759041018346581323002270928218576328613225393638501924043288151180165594628597714145395161322830467324917111132635518263435260323494576844745495344797335194501358706976248271212992988220644738937865086204534401079460356786330482014583347733959183182906582784662296143750430270355097840990765435148135039124561268280845497440903307669811071346188579282953841051436022142810449624779267135688783369220257698220656795883252756555215967719946742060844411599281843826825957639741637498660508445223795365696047818686423902295962003094717327384182864856655290670752884834827032326762245069419701761868295826762193055144115701207777846364036787562598592570112932935120128353675456364226373397682349806694271144306963552438444069546114989606649825335735146844460486277281397212212741044259306229664413893590089542555446705043468593358608012160032512198419756680797290034054881061038337241214952875589006780499222961877523263111292880116376713800381452141631523997118884527828113137683013022848062874502466626804774991136377648520222958020824612459886043028017165756222022263533230104545790627214307200324625961298868226188937757849110521329401850442903921355494411448989919879472952654252677006347110330836736037333896940023423097468451148380127897904241313990405396667354717872651193532495539568683624215189077032522360359862086655069275435639980793115198663815610037067480657591177459415519617657367451840800095562439305402457525918719378664470784421634400461462132336879481518022792147759793693111301528273793114129125547649034361811118082595920663519954597266430812394640572839003228881531856908946557037302195439068456020550148048355650548443027648103112384526174615559105592836431778901181303104643265349435921056589377629469168272205198358325237349975990995465762786861984268902333123967638870590096458525508000710689124997679847191642230208394260690828577902887856400057411949306941262936261934015033992826412986770167562620688696643205514201689373083523857961000744648989556589858262362711508518061640830829228760199128568470412265360322357457249149340098465700598129790626676448789477074857873767645244756522423750972143119409001977748353871135319420965434024685413818331787410356100765120329710060368451812199914990455608699702625728312821667014473880741692364256250881940022720316674910404828098996038877843914518731589973628974859020020236163537348219116253248425284215863418759090567760412884375319584116443547384336811389820452466735581290505554461460076510880495438750266362503843425132766952679604641715290065903474641970303525945140632949083095481352928716007815915073149556499592180606333653500471726162893714652703110074951486615296356159828370376380099902844149849353008371482512018847745118705860588804083085008311387635494992082740648063169814682940601399465766003344060694264286312617060150636306190112646677266640510385482702878507973825607575131707879452213326402003146341797189628196073282482611720737046932187298034323538423322984011474205157251823106103695527793831361325395248654604299076858475778454118381041704427160071480527270030944300427979701021272045391637654483852996516895776262176963786994331469389080625057858393396663711313757215956923825376181376964719545655439108534486494934995433487211876015981828932005236338577348053924601404509031537209305711935392978856517691561239614598421252343431413686198846489932496608082977310331414483899974638601646267231379146411220755798116544470208899131419483911662335519504494592632969721455992988069086597959858865334649291812865176490659494284603079102928849311535614486251236570963194676427104884112681351297970181721606983385873201684423417830041731213336571508686165496910930550613269504044371779893262949389297011077366767243460214497051372180560208481435966750965783357062718633886232162125969980539307995810398534172469966996985589412494917073875844493278747213837239986057531799615775219970241738140343442127461699343262383675142910398965912141763343969833337229380759071526888649115291923399331226526624662032617478907755994446318225856821994037433286920440885475925382220365087524716968358757099616245622121835808365438839418194781414109612984039453968317257278822521310764578775747239292139460003698658319493076579974756006718016859698365259181034578019808332521178777171837751242233847024865988425447186556990474001556704301569896161221549316070007312533661563814919922928868555390508361747712086015404545943530259052409612138909810186375178460497952194525225915851190431589167882692658032412214548591048474351361100961519678870625058415664691732503771049916813676083522765975871255049551101882415240304934228801937791291016521406582548163760996102924813463974075613306435397415242742933105338538623551484975744453085024062027393490666252798540883684988104208113677137517959865700018149913178833164507534852620543425580446232772642883002613308350077791525740984130443308109808909837983022437851998936809161808348968496584255721879454139551659812295855339752298106945035152553416061401259604322272101448297345733602179185792273612760705797473746216531419642683865787597201628359075364203519742929307303667096785938006032763598234671117670208863510779644383180742005455227765434894146447831693723595346184680809982561424610391482160862590133763212380182250002393845855801065996237319336884088720147314309098523819068674915696660450194227422434804960030405696580631993014012688319238730102404020901580578189638010125327606077130193180573566890607512307140914979317186487740841226597913826393950833170895672093266539487601588329596028532851444533323685749901383269575997282232442401043891298043998807954948076764424144729286628350762105515542551567072212299876847451702746174406757243684041236358387950009164342907428257049426247532273821921701268737574390630040759311034868891649331747037622399105780415016606828239211860913282522960496075943629249431502543017835497215006854129707182574180597350629730603211534463140448980463594217644266652106666774030874057579773303195451304855196847094091240040384403162170882193395038285851773932348323061813164747367694688202598634352990420996063305872976099004591326611158319721086624742056047528345496037190010690615826917803131299039781807065583043816464286897505197076334398175873140902361232268876607954900630511631636106078628007792832783802184260460868566793764417907145094952487294640069180058560339093744357034449676121504687162786586078277899121053661914676549765808514591603824665096633282095478699450038680056902281584039369632674592891647869442424331649588804767781161948643074401483196984640584949368450682540512314377467357612427659084881965775314474421847567854912131021820174289060309010662102357462798804807256298794055106169313221716963115012015990183450212723350646758432073387798111110141829607561776240899913785295622297913182648022627959504820601234773181721391860237649539605347382043950347955210204138128870726383078856875524820566366761279675752085292551106728814706943838062489351787458773233755972728274901628564729911274806487152665551492944357346037995806300843018906388752156906974040562901400217201700433064618078535845561896793026585364272042039332546762148932980114469785266839269267295560510436336922270207775219835109634724438110185960797823509536457326240517794934458718784651463657112034482996508000966497674680268574998723963642350439714088436941605003473847356826874625789412860906967985169558695263515159676104020124449553732580614366443740606222768733348176406317858172796306374039188319659695545366976689795708518743101417395991964114530380835020235273205919589654347314379720365322940540657082893559723834001034769239730093913687232898096178960440023027940266886892237405398177325500535270697224463195350993916751940084317571723581157161409226064614752250102051842816164346611800061592799179171677436804577734468317774550156809846500874515494701733413766601781722222053909460341728556224129637241421847843812123672465255037049526631760695908908446285918417599883064274512848448988794059122394266414882795421985385100313788017251354393010528720928574669496062388474223876217131456020682111399280608218551800607448517934639320464051133449562140459566879117946220739783890833013032744750768194638928823038646442472085571294694396984260161723179402520106111196283702157860900402206565927438336508823893889680923849191304808530935987287421204040868571601365403039659296011754120613577607334176973542932214217989129364734343203462306179380831257033922021741741046168160237007051166147416020137819445521983855670787750556788497224274675646855761776298637565517586527685890934688962953895112995564838853060063836240699126556202473890818291175456240609172539895382398626560216085972217507780528808303502859057468104775133876860449842998882981505486652477790126445355205561581249396224698908403875534606394312254124665947218401418352253909545235785688559370396348867170901919345282897668544838385639587402395046042905793648453732785087418570668220025024936013117640994904919175408875708992297732235543981186237614919419315031662218511858124014753020823736504634661822650204918031064478641188523143843620447303097873748095573137453747685625616666071206803678204498822832767172305238554716780779912678976649387837890429895403030386974882815717844973737017231063677410102273370299960115832083413987894745516522357263275062048885931452709545414139454888712694587965528208652040820821872066606608770746609105434033170803066101575648341371672609301864234832114882278826810333306199852236765393174087475333010928928278056567484276136837265751959193727954173093400873940977996080757745517225978341950475248746278921824233079489612833332665009343230120661223580441048316497354894583056569673464632856020219301861111865057234465361010292822034857253451292648940474266206596178515978375204666819181380222754721028848064866114614924123017361421945978545777234073326074087149276970145841979917751536711166916109037047586687045883357081246452390573619322910315105441290555142856213589557615695033782617791800882736583439605514202395997838007197884267077357452114504101810085746046109403274723297328719747744680483404593497696878386135707601148448392243285870843747383582880131658738819005553394213899915540727337731399469488975538366826139068936643169377877599599180175964748561674769181155335416859900618693475178309312219669498677861506462994477586537970918842382610945343029219302919522092694707337693156063455602108797444768227940469746781171548926615226501299684344580150127045492440366622607480998684665289328498125370997552536086203447586266594896577167280632902525749718005767680205952667022627328267866146924587871946471073387861883878751231361415468800964166137764316360975412733376084489046409584371531698708160616975271232934138961523184843542330301057529193136389115119432665926671184895995461129246623594414338239087054430885701684793591857358864290589021813030084155360815741362045995277667049900721448078983099756624982697064856778335600903013719522806741820061188891847291977270318881997453173192511474770259250527406146959302666568698184006261992926673791218348623480775218516654000244411450766651442025297597938441633636048009899207197803574471340541997847718037638868548868041505614709255155623734093272684274053926405011332820514223436537140240088514023680941243631139408861195459781690846013710829388422928587134780304781740088836276563210911774587516711881190838745256815525561501792439430824432662866528947138970428315013994651825067207216460516362512872349264054325126951195729735616616443211038365803854266578893336305577046419626055349985152438572075488463279258508321473116469843352007978783974080290378624150528233451205693537492603700743963324932893682816812568466506578988459098544404167286227620170273373508325829156228621900389899979421738901327067037969896155284997306582471553823131227643650604047169576005423591161493874425004846759395779758158897519403518827730225987845352833649747705486037210392950553917942395626171801831944957245064129733390332462735607475118713555490320302775855190886037033356687913659196459834249956495055414633595916354406293460103827746141209468850850817466059938701687623196542781318998585908744063884644687444241043560436225654920345775915041649920417065817921358620566910362663156378729894767908458894412555100963679713122343482444767008916641701205050708430197439310235777738423676757383858741318329695270648930121607516036524619576963355935755732127645797393791589829684312342527015703631725772959593264657343814721551809414899727528570216090293422984752235333488423982234831819233177056572450551784918978444490030762250189684622050970469460835590602274747801360054759478001048678446364797883628027559040173613460035467820524555551827145838852236741803135582133614480105318180941248168593371788261785755551442937243850884160889628308106101453527461051255730800959860556093142925972384743995803223034234296123872897587613100869822785242176006474187671933156410458468987322377701543186390749157468522255942622854790438378724514611816291952070065104486805057507120130470130274272990379456830783858369080992859363837789197871595232282893665811195085926227139544921710704907676579607433975184469672775537557857468306774100840624494848057673180409885309532872453819501697672997837946799294061016131776145239747724925879495962454054614085608864097320795410291580233521848425923233551128320357162248136407729139063215487467611402192984954446243575301746825450659217990375875169764831943321413261125744050319067022077689747841636050432355909156197366536967049508217252128627316743674499340863962531197831115164171371619013741583618140604619141142672721425885292407784493710811537362069797415116825630950916775296124937672729234016347581656349961944623624170621820718036140750577120556523639507796778563098454726982255479515642101548720402876074730069054568930983900543454976773098917434202121053376625002099345694490686092530841969499266650526823545224544885864206926822794071164188947621633754368258943843764854864223092455760840157439889716545137506395249628692244622523103933583217885804965605508702154040379675350768784839122112036046763804363431467120141210710388910858420785858447364029047931989251031561983283006999845347003011893733338427654273704053662347054192356531167410386710199975178563139144505169021077209800616640543981799716768671655369976611116204600151307395048832124074002992337035006051916541053945745434879822346741426268063810312274876202251743986931230223241409448797342924184798599934326846644998524148542241009152052764446805274364091454626291066690874952487345436272841011629448836352802798689750968610595040128965266543299326148977059926077132548049775585894901738498583924550761120167075636423106472273532790990018195598406152967976616674568466767563667627183723914259411219462178848460161910897949486080951746686636409460312135897326856361165949455269149236475469656477792162829905958531711169393682410530653529888226670310775296638908280638588873101386669779434405312048103760003195414931529446141972301796337162818798091814947246955245860141424023580068837183253981759149770644833517955012870151939490334208137231321875103117639316561337739879214481711000634559487391274194458737357957457642876919109136203281092007012293698908108242720625666157950977658526025042944719908240402204361595407254109107729175822991493636920959761862360917291202738308533134101708381898040335106125731406972719188855772480997167521238476802077153698328983059206153189136966524681056615504768319671956272785040629879421643658381841047391898127225278763705170750984881376687365869701273384601657161167080079384468105864867537413461941325019016891924187095916701969687870403648128821359208817491145787125429713111076786434756238147915598353539176848627902592431682467242955306976077923139399286518601354796804163959913632992430423895800017141932928223841910318186372851981233094012922377225880981769242303215862071038268411828660278757548776825313568463567559312130384425056269409111004565022057596045220397675687685348327147799324734463148745678950817387401167364044689334492160129777402159936654749944769669033458198414924231849753083369179253646438631267340992813448163573670627593679737503877576005507136116505124460881051107816087170686749846926368926370244821209821446207731329319961104638065557837628444349940361690402017577596507704625699713769012850590557786063645554126301798104462075850622629613841071661882830073229991860729371457199577818263874500006956066799314015962657996519820524338695360202247913369960514917252026268947802749800821132419774364551858497521091643520219823281355208317808002716454574742357825961180411719066451318862376967957237746766046091464664066400029678945325040570233804712842490524106876082882793341407655672030079234670735009037136671397381043061681378089746133440249498508828467918791170593677624895395132345384072462111041421402835117501852090789379423898748301269624436831738523362062396630570876486395970759576199458589963321749104943999973542836996538467192498330823306808572794652639475783053676009196488229913984726016765015704154939323470786166090725266225532754924486860426173199577516260531237434792433313269371292784196771336082374793844032028836552084873345767054205536560574798434788078050393183311115225894686108329956966805353315303179679685448842107800138403825668370511270515206657015202534377325217824346885043681124958791628055863910269915807341739714731529499603099559043092096779937125612608558128596400424184387715850824603417393016530266142293458453799695419585450280787091030173921540808982933979587807767212454846646856820317646990179803777858961982950663884425358432035131364848812070175479017168888135307581156678344973419406676127089998254439424580773814271951188005580374426311763129678931898038967628275100694083775364049657226309414910893828622607755781079084957158299276482107540375813623383772130259908709752100591699542780451818527000968999344813790936325553339094246268406307742333210007891229988151458159193773824524779629429196108164711353427330507699339448800228005380991794116621540466956096795021066732258559481987741508950259186831044161270614529884011782247505094323640615512552891125384142107982020355318284201502646071739460643307828586777393568122938192931678249792366689997048204509627800143069612282948460076036359118947656534614602416272784890640466205796257383140355990640189696150773475310696414064016112720285012940853184234296012131756871263027583003872093621786421576326322093867873308192064051889132723133693971566912169955595027917406854904150300497373444290301874365886551135795325856365305108046288130072654561258039259709986322432040285709636532069241520541546986651207909257131673935240930825313305271628646703281716859723639491017305257394886979321796148816185105620950195856834352856424473973290890192023193755373942143700997967264139667592120826176167106489695546601587475286162103924911067109934928585901805869477714181369286455793979137356482396608089602120510506387690507704305773220001339568946233815946283351641973444781999933332372254156946187822427168142164977537494253912294461460128476269137131962010078677354695857076331285905862262526817672171011895940289951687324109306088411485206367945722226518488380146754091653295295243543181826555735844201473655022202704532103491393429385903994070204344905071284987682135930003335516148165023472738453574203999919247005064919576979356848810690178865630029208381289444423426075923651685590342206090794227511594909622054603633260734200246293079765563099643008641192456836351262411815141894332210734230110834883319447590948924688651579473071866756433223056690728550822892029406434415924928823426317249792205441549123329078706010993084977835722547723778897645421006306183927711029641074066531795484986319116946074542250909889552653848561948343945879462363796838944744400957534435435753756187859885349816312822251167418717242955275743806658708447362101841859598550194539397244678832734267869132786692628186889386645830396375659791282467738074072443804369965081824262102882527091760162435217114817806712725705827298851544759999365694978395363005353598923761344524934424568613170475991160686894803998158446559357149221582319984612280238514325258609893572080649962032991463980351469049707991599160745948641453994677711961746743534881237429827474282492978612912434748631828949316922314108916548675312899470147390021934232256303318613150997389539984243181553439562083902424691410288609757813951627770657368634077320284483926187260224429803046513887092202673262520853852474462024482104387993778487928645395084789413094879614330834437185120192030230225478729040144610501263720517812242899295293074805367083732034136558017850257278339369908287476086257422791899183612766899088795697283199572996389296757948234759246144058139311838809274824115203526658987990089767569347014648002354607284047496658784690552031209132319020747171945305236537861204928730950572844208683555069355122023977956024528496434797793225140561263315609993721124662010135832428429694188500464461726243018468548989038406600822958075176428777471714975797880628318042216242785482867836175209877341314017320743259360556454341307694973680335729448097002626403401781704797901235519932158274804132588203994912603589341872949372345374262561068424470865635194353413886972219715452757555827050090610658967221060346185911889288416544000888348457015230850429058758269991574131060419607548432645106570729352764162611888226724157250319871392150925293765946621194058633037434766420292169851166016445229756422684221242306957704084754168345342703945307271586443537270070195999661330883984295235807256699784882270766336789486999408341049703589919143909967253060895045616629909678671467466520938686196235002818138607432402314295170103533506371759467644454953420499768450588181899951641416422296499687229190077197256996842758196385426673169617960025373197366340761046815227256541496517475066376519043418919292072426658773163114896858590815983362830236536089458966051101757889790616633321283783318584034101246415559541474066973623665019718906052161497070526634034088973537666496806050706170938719504548654986355521234539820940027955682915852596607936032350034366652016203039743787783878245634109503952295818509133433200164478868741999023150240187369637438814394246619227864681336563161037239969875069421726522751624436757308838893853884238715131027454411981516374968900427799112352577442747708886063408430170875708834689437284912185205288605597998975194033333240579290627346521007143670518429341901635906186920517965873394172773157715334646143972047439669793660343069473165032191673605500625112563816233959739385004747646175985366019671493633946896658882879498059671903064839330977062291014400048447388447738164164494469767977299283784888491059024841700628722240561791338527051253234113794237728966083275209289199606660455439977868519392059923985239120494245841193671254727817924013839668670779801079352275120442057702603622685522956663457811723034194346879518994235114792690091104976660264988516527568602294171036015986712844390508670362367830485869173525345084643714824749700634295478128461430425072469617358414035339354276976159233544600480141624548513335882408796847091021384421697007153903897811924719568029873324685574341999192848953458678207066709627439357197034892650459589877578926874878242720927492390286198845587656275806157092161603393184176816734612351094221651499718466048048710436292128483430105598505557962924602736371877640896087109668045592647533639996226349096111505560958743987452023337261029796207703266794546838380499017896607587016861309204422714172799689242284512290484538001402610367314038330695668194406850178997961601440023318301157199620831883295944768410823787011607653851885124292081093418162811635365067683479630193606504059587658232072818758028469070218660500107146676310621399757753963960590525159790543579045500125929815174225428972679688946725451344340641783077678721790008186399749326425729048416012254373994362115124501299138248773151297057381169671742683354881344397248441297278521204253182311650678482309963002676648682645240688722559807142050749591524068097608803253348117023287128381095672763416916920184586941627532920665463621296888064798103503541669164947689861805972066559594698221116612823830956456774920487591827224568774596998094993927030921490003530509336597456601143665462932768497093433737660151046929936598510588913635228558890661329164711264562396801701590583849146903402106553895409074418328067107630891838458487960444663779244286481370502202842286190299732696716889844510169524860270744025037891498678155312779990697361318703648914516148621098797229388394930643757143177883196822037238614944373562820519534926823830876936508020548234010397927979452731890509799958871285961539226199869368648301499594499327482675077242106952375881688609460798216515027081082496446716293862786894883590638447325772929830525135247961531212132166409210601577210911336565986763769669163570590725814028688088924867009382135290101486014665012646790086835290944280592378379109253289290475434846153197373872113091345824650257600048009191786165319788828236914931534253919091240001313719774072454430487356021516495950845386790892372156046640424931912253986628984932890307298199257881646330188369187074746803626777223378855206131221861930829604597183451677409915377853177568776265068360863982366337230537196443043819800575966439373035964118668128676394713043799964108838499342964034442816298895100179234385250351763850822976165746038593589621040605765663036556392892927188430272406216617197185433238245664769281645681807327967488908023488892408384590342760273633624701525950011721794872178723055543418249838011917781423936393460892088819751354520471866566681099111075541294018878509974193412597108162331190422219057231581792503338969768500930331339733974242423453280836172639659486625710779542943977986761418899343171510784492186470857877331871337991816867122650602206419099028108870183971211477429441859138332981985613002775202742565570253046270804722221889015246938337979370564906905904826553438726929386883162406251109022937547057896266800707692143013657296177639346013168734968131071370124819552819528145105265862778382157978526274623977826105968669507517834208213906627858453540277841012036599451433671178177855768109217715076910747265755788770660113431315551975950812580359426601950584812720264356455744091157752128924204384979185844241255170225332806625590731884502545572609202999906743504685827719744207626164949971211190284679441188725123359749192684937346080898592305805269609234729125311355007694674360988893657643842376277781489159055710928770093109819692616609721947976382592773093995284255167175821289767250226929571829747377283281225412428147667138435002818263214659031070836894744050009103799997510315651231779631322410630272510054064403620495753608246461853122043303197009501555747081780845442398890678782722226421643022819469619642976172430134107906677936426282969592227644101941257721143279527304131194759918386592945404301079345858157594892128119687716162660108529561315943309715828903542035843689942556878167438949224460517602505655381884380339341828389947495235829788823490980031457810005911714765347899523602056684678744766834155204455814147241694573077172578812413419474692514906764778913614407130514702982659964187466800939256765479539694598394629395299898448869266914504596023023060551628094129735807202272212629623612245299854630282240450251553196953437470355979673564872456068458941473821318176691663118783039341429016268917529628580719295147849909742361573151376279765717274731902160493594995303257786240757666475128186293396202533084461069044073805362007318327451199110824903726348796712908469525858669096136461969282111255304447168148938898247460627601654063552298769537016129497198107834309992622536592337191842722942033208776495401767419556844176371170949342978897285667900797934082757931786810211201911785068960567054561498249933363537130947029707877095420493429842709997903574614666396709865263558655575058840538244545754089261272902460848261010945625549196541442058997088032733402625484590128463515991263657626340640805282003026906174972482791384501165721897280645463831799400216346434575953413597844546087863856408401873001106352270021455073272843911924523741353705660747769682800557409474659992303498203954635890531745099352510004813550604366626645343575169099504383336876947738833963562234845284373367695804621102355542820604143662501074980791597483849781672298361601838890986343746096365729521613126557028167000778216263749320674536465891726895708660986930123982361315762393031724837604493320469083583701906673912607719869873706697094268259784162932423803487117816857114758543267679510712054473974086105695034917415566919984987607967099306969213715780222039323562884731431635542960420990043561819845513224071027373595252746656680606466432194427228152989713812980266360034724283031423596087534351850745589284814486746870064042128358840370931974783757454805183753428348441150967089895318189008098219703967159242377376696084723907645810172214703062045913493820235053796805623334811017942355999608057175192323443312161341438624037469340165588766253414415416431402028930900445435932156589492165429515189527660604973611015717480660019746083339918538774333639581469539155096734788128809376210006350729301643699898147282215928858207516692690272789668644344151622276462785782124625242873398799479194829460507224557073091317058243498407367360653055715450256656537110349902704740504611037225661999260485093049240103182009792778412880362223524699798663441533849493362011589592702804642595253217717299420038721988329802476153344166603967514197300397584541451732779728241980764774082311298206693499711221274049136302262493722122345640607523200888282576755211632559291982881934143633304587917407744217463240376430393260346915254031692321903933159738475411847679085010145852449808686966230615750136309797991313876076428707176943817778105028024995279668831574228932122867617729398105272418226560669466257357646290904256432684978889821357408087393776419018450001039223886670873222487417716135416283546558664652691718812383118195845314428980172180979150502800288810812560797502525455336395508951915321205647533241427724719946864278075343747319903377782723513633511563677444818287494700721245889966693802521901200904352806629312350113304911677673958800267825305590185029240373068974918570442594948634887738354161007710254277772712958221206123183326429556678584671875279189315521069848341224436760200214690475911327735755698553976292938501651629278044874312849399884261130393082794542677944549693852952048360616487674339756524299910986957795074049123165997522827294148226393086977085969254118390282345534681841670383953310939274791515497535972971500204746659526993344380900864920371358809747222893843290594625676356679994690418013342804643870746690280203140661597531106401141730249285950759072367282736361411216811091493841952040160916116999642177942481627467495249468480630812505501619032858786247924228144510651824031908468918652623430275154123700037190999915334932713353919521951586828947026882696945209219617935374432552649238642053674801692250562612448006384033528621164808416123409427615635756586971736538009593599833233048654885172891784061989444276105573858859088852866196095159848986958294065686458584264165792391508747399043287496445248639158944104256424191314234581115383335595432260208980977601192191350171270749335933107656963057883652058658900470624485998754860085012171735492779181000403705360168036819798477683167318182681891795757756813277396501020793553953118913366200098188184498577244419713146665143768559027840887852166660888307941231117266438238185936846176197188155059597354711378719211552222614970592764190947468784676617949842864681540475920420599633189921497801333789727974044499437918125282086652051775103519508023920198967184119408699789675466831736571369195264891779854754962122167505868735515192151794317382645327661449764000041779533972128447764922348832099475298337057199140301432432070479552674451169367242740051381765329942399074777475524283825510741796775776134432647593620839316590899578827149424601559072496991550128447140388660550327576685540836803484511292998315883464794098712134871238505677229567612143110797191279048860207623311247110210150456907848359329381302929970811495345137722316603583727170368094369516435888600906226735747986584832226616730725311726007669071855547447863414478197138927329280753714722899284614546062574792188694529725735082740262844402631657159223752349104077282685518777609956826983873036969057440512563314231151420614204281645492643468208158604342145140849367069832581697751002218472474254280113702311752430828760016022547344482212836331522738042295414129241029292926044724952792740584960904181663204312692890770770516675213036835994346389330161778618174993007683160343960729206200770650314521569711076553068114513631186235666986804077574075553730455655558264302152226627543545408871226534249600104943679395480640114126950780193066618270314898076807386854672282274142777938127756163695062211821938634293088584547361713698993741521509154136207978589447474630684245839325004190325955814119241792588731124427963092051333578256874547202254764596789525385009305512637196807975105503250784923516772591925048703980628877417381332025483434897154169493202155288655226225857037385614560840893748439373323120540727904900704598612537285000152060787185902109885997525161642103299072696665186217228262130097307563548043656004202226707091780460816690976229827397129164723160192197246642154539876016284293554596973349024433806754942013039647687141759814937554240205179620109805894473523949638429108652759735803504161997309755993610404012013659667012949548402510867985120037078152301427678471010799001524258157239388069505692789035817518827647132041228993178231098113161653300466118656633563798188037861010545131340045023543881265379685623252985357257974913443502841569545365877848062310348050292636530745253424445690953400575327896340313663111746158485700216498624056613601940681854422740705312004230284103964903363491575481310013270312191158430531046789498814694359269426272982156077793880426054601423484006482666531515467074983836224511903829833375615438467273659763264984494468097717732126029373494713715889931848435741911117210138255416053054631161189998163602529072254601576777015923556469982680324895252000152156502282538397662535843052563017131880530654347631599123020678963053191990508804689657337249418963378344225798855309812238589474424323504509500045182306391537699876872853338994087811162742687861158330124273863450953004662553291122583891224343780598226046052804711444282005908716382071639723864511149856679661410762780174888552566261283594691113335138448230907883660503196202155072324180389117585083800494283808602742448805538905425230370404510389875344463196629492516788368222158118827784320001144145666547293199860142957316472804998523268161469321970873378987275147398274194717627246570522724784782907893681622967497294534959117935612121548601161109664608858287199185224559475384270284426898028083645657331341454266378926697357692329090169043082138062546291189224141333549750764812073381071395506574030846801709764314556125492808327478555186291806056369152298017795237425610110270893914725635224927593131418740567984720227477982511114240694746997751075020747008564661630104705547988056860591935622231751776127388013542989095059377112416796118075674729056068467608444292701423019370570883352345717468831243326618141042043562784338429897684417893304455692383593892611111040722801166365864545668414804806634993212132848763690243622508393516732562474927911768331903826837629384327139301594043166102340813404683250402517824554951299626142653766844116854736198070044340349222196707574632639758799924682444313056427996267657876933446056827792667026488617551611208891792072281906267183711431898162608888708167836136153874543757713816842662348257694637591280002308651753026831260574021012800406215320755967906573042109303109998755335126654955693621466944605416995255462852078046363768194675180408127266204658155094438833206207191940570131405257968552182972291658971944798717346470450902235893342919420786373409083398986103235583808007233024087469095854050687391404640006424393086516884255260471166363379615810485517265137627384440155424697099960966996867824789094158537801054123686755568771847220334171226017039227539645863616813050538751557146497138596341420994028814805168443298198833394584846632683446717225524735429923187430691679244413302337583728401916691368630277846959903562385976951697860811984205228277278444721084686453736950164428067210684429315364377035536940556730313350423164191865641478632254651431075236991277207180985486674233601104474842402971604944861848910689993030617184491309890539600721493242358126972422916902305512831495288506182889462256396291412007856686150073638986983781980652035655180487652562982528524536348242876554215652941933553692254878488208736571771636699298888842567334439052494387237400145153501163475356319246696335937732262957564484776105966795431360424285317088135357236009895333329499969390432621912434211162976878461851945489998302651744025203509514665763895143681906009851523320718397614530509473987264461028048998119350714281167606418958910495586661989790478203086150634924744782111523707987777283704748705809348797098642904976655719162097129683843301980875333796644340032349605875471956505753948224776003515169170613224121369211127999731662691755127734657654670232346253480951598240023168094326261391724935774712468253540569152329609664910334712065128517207158628382901422160163112145275446920441234049005721967031739865336078740265149873923547083310507563195901580416537739666647701061299346207269244315570788981739067607825356642937648223137985445510117354623607072779995095777353546002571338132816126279846757236756099370627229610386468408539306942116765197352670421293653189750024129941554498829042555992876784124852066981736206090607565439881096705672674578828567864049150161955446608283076296508690301911441742210750686549518519556805811030608284830372891234090584492622592980623258173182231013185726495176221111088429539754386551915139721610740179125060075807855493696865869343686274252969150035658612585061558551908851001271995526229735224915916644320180413935939129641599592445832896896457001250072016269825351507636295483103540867128345517300874437603810658970847308594333055282055436022249985878335670765420302568637579643136159210744616484159651157000160763465666757067257227189966137598891465345262190074566013158524207594835998185719856570622615000589012329865899015896941096571597964581097527059473075341121754698280289909051062169000680794953656751551008696155403822084655797880940641730580900543522440686385573899122316817552493144621890839293835397188004269411721227941610668967589368122416302897046020698590658308174470387475513541058591305768611166379845473871787969674592496628776399561287821486480510644140050760687478072410827518120255891070102962538146457861006092511260657794592599470373060443978513830734554959187359083400326948733741878495543795118617463485311297713215095428599860236879801683447874934060848208968516985331090364187516667961115585378034878589579744022866433219394825546297620073077129370521603511940196217785887697506753532288309579966245423979174624466220939000844716605205077428986962609308457809048963208111335308652329304693796036016077380009718481794815585592742764170044655137673870045384114004108512145741949834896690775309704793544685410589062971664469381173784904290355956199425937883989806053539597282104844415565891250596116072440702920857704402141643368758237897640731414723317127005916404820176856865968044825359424443498833981955957955842722622393753164605942380169944456618450374831799093699643153286227311266180853495987221564321654519293511504446763700702606470070200563496599136756943572502227626447424235735594217933085277239361199117478812221748718250622648613589315966183405349237145048355987627420922627395764166322673916428926764147069848107769118315379140767369798352523165855053091763612906285739451001770183286716300857363269377207719438743370280264381927526775449757569021866528969078339833742241757309467652947313748572719607781516652434672837310965302311313846252049526464769412005034795592085495128175269574146613644551392245600839016459265573810591281507122787717062547630943115970603490294695655889884286019910408920940189670391874411828237886811593539867565793736180115520210156169237138751242860546300729274297134781851302948052317853232355978004139040022102385482428447643783256485313624169513397643991431424524052451408779201599489395103614764912371696101144524772531327720078436292805939121910867091849576415018425765498776062941277240279634147952871164374246089082925074445384189944204393174911050634029953754573086462285845111406166238194986910958512033111580530846732085286105263925516703005620800844341744853431560583747351922959603242009477198642124709769417471077356355095136755774341874276830335615615506312676640509778409404193171421821246918688530832794264469308311659778623090170980484633318745949066594498506230558254465876014914451913557437323447052599293367291696946769429295006854856273281101149396152284964376157475465286806709241630274484701880678277520908705954446585893205047893354459172886485464765171965845230199768099557941728394859095695470458647819787911583755581208656279476865940592265111370799994046467459196633799384089131633137673567672185527882057326628571711051312199610531663829141437822658661903117234700747977623719963561997855261010452581747903511871996436903303508511961760053609572435908615207026085412075110508335656378737882476489747574881861654812746928334330634884537283254081371731193053225910922609776082517610985324629985597019483895686099291941687127484934764629806778883729277374386519176525080514483563632613281189035190741292988483928234311860276409896241507925323186002645408826127005738783749374620137767861795263082568993264432209598360824628361331042884481590116209385344279379091566700211929012009135967302495032135494691777290609598372542753694170776741220091262187569713994324635434491846924627479981484751705549553393900194368738006799799825658761174487634714181812515154388917566699954190314119611827399518666042769904345638639320005645489282553489323551031355430179604841509397071842407304762883201290911376192230291316341204097578404786989692123499120316322646475027898552521511435545727379672046957621298793419202998284544820559460349958058545902986701061625294945351173151299790780817296178020664734001522999255326498019510746228291828762705998718624255871170124282369017485022820093294273629159439059081298068628126125276977336673774953559880900235455998883086778392276321587574310468712770844694152662144064936873536289003256867736248922568554673116772693851832744713396020207354225652372532029412503465244267662678202305853825478297369492863155786528903548792882599734296030796648607495564024614571212963357848662020590197012859839641809746733763331265636002645301032624486805340040053441212583396609187098150628032137245515372033894966574283519833759997126824967248227284032962478399401052712557713982915046971414851767485138716487375939442314238488162275820991524618496927740087723819326269606678518615093499437766260853966147466116841229028751200199563731037864972688398953284951990190357131030288765556991660843027240476815302689918449181326222034046970492626006061072280576652806446553488573824088685596529175967886299490303285874277554241986061651370859765711618782599887910607312712168049810175482134439683634858945235694173759563835630244680149123586500632090505556427633143792506188502169447475222419296066447178457118651354154965912348412520570951889526463832681767509058619418696487343127740744765649763801089079764930492452042975111511519690096607317830759156115267022230629120357372090044850933431390657702448510605455640292740824732492008907032959696099119862793980834040336938251092638248146900092279106401723120289778295244023278974038048366273394923311781558663090236213873744624404478752073410889915971449326107489748895209165135267477770479815315668479918878219424238258415305963868509100287953368449803139311589002748646424588265286867259143275227421284985765343910134655077042127293420237690028462256963760666046795384983208412147752787299694291361718302682634284440213751698133575693284115973593993604553207505336070455005863703403506042529979979567825121793352567591320654133222507041633009884526608752821594861096355308570726786636535510988811062966774164509232119143187275604994893372638883510394833989845206842012195093942815220814177670225612721359136025535892448107657073358888474392575195704917854367121196811336890032404143141144394112913252021072227083947497346145658031395117936415391219860189594364745870771347903189695332682799319919588074482231637828956645741798845055171752322418480527792605342294879763417463008085360910547110814193906568219735356308434207799034750740574710692959749265427951238192087777896520254490357720372370939825522614561426400924807614973911687757537579837090715454759694608566700729186386462282967412555095175952418149106504997612039217368959797970946333240822533438140867958817177469739414982678033791331536303319907085196211762497621277713701530316338255698718274721867896678131637243253625554886876447560881222398547470492048989670922581717719742519023030795724220194968599960375099229470633419683341557180677902777370972264112357408368873362892434434147279281452006136136688502902925174730062552135150076192837831508669751674696018740784747808227223010685699362558193813300583742850775369209446238488606945115833295092064326730222850241540771603878814438374209234533851119774216691264335530664825965834860960208496608792414873378674505308425883063356901641859629745998398696582624715925020378915853478293377345949892318085043766499969503839169600108420044375722155863236129748494322438981118168646091999104954717522049307422114490105197285364441385380078045681606354254654645412111376177626012709414842824297707412897342626109071127183382108100189953549852500823939930439141266783267854866853610377808949594299263845487921360437523525605820881688268456117611738377537042668710519017572913764482670833158387746699292129901034677336200074473175520671195618179665117616025116351859296818936905959634841995662717338936844484764117472727531804955037231733684785802120548188594176041348659362055531717766911846715375332029681786376379469272506368101284309066085542376771096889322121775429649857313324426219064902591932336328538831999911751985723144870542059319528917480085178343145223673639557118639453057856562977169427732931928952064630907711483617482052292743774098796467059058947785555466447098857836451053363334968034670796681228996155252593216712626454196813046739032018421847418915378115381874735143441280839249353602416786695284892732548373798564457011741521043437014662848638905254764951315350986679487383243657255623883099015170898673462907946653079690590101424761561057903026741114779722334772961712998901131228930524375956064171406152171308211943660939418615199626854122702176354832427162546805011588819168612499454226684344700310700600518866348926301115166900479646217525684668338614011690227774235651783004112854078198977165400323829221042640127824731445967920683327585671766115850219199174152936189380657409866547074244861426246861075863292963483429122895059048722500942151133023829119773521945959714386122228919779341953053349708371823164611800585276759720958171806438653964955351007829376542739532963519281122003573916611060440809583707912373815478292164133525405134810746203695867682989189366702460900920835816848678924333431678892409512570097084503722890184510922634133857807736883763058259791052059771320548141675684132652175840986934816020351619896670656237268437003393898892298946074359083956671185111154316936018976155239874404702323285686213166677476180863106148608451624140618645089127737354404491120595202576791047788511239690209464819390898028149389741070876616135227200440006243319559055915491321075947458892009752632434148463514503157817617598112037678349097140919870655249934417095800782327349478488299123834542519565375752944556889019308629243111746379657190396168166760594217252441724091709532312862029576344768026890254620186997409878104621526665487679316270521888727599438317317956683854885747156545112329249611243792386306848956743178591328394996769855000907916184630718686524092256581746653811717166858895775496681477130018361517678684494207932438525048839717338261164372204851412590973051344074545117404180776704127542063842846808943782113690622539314253879516893005566709075422308947414346123585036089247125788928344462757920933332845290298290712309791207576189914042702603005934356434510412067170019391083224058204423259864227429291422747996835690810118992989491039091563172305611757022132270164589497411015643483515146746781279118897202975930319887665120863231823696222635358532028105582811569064856463382068856115551413057994109418399821975535729282018273455828436041142510330557246568148726816356935054940860501422832332728584093829496464376191169200948586859100821906488928030407990736118909315244751150903839134062826388010874172305226089284173203836579006928465748142127470599397930867032585906187239328836352414048149165591613993608917770376982278820906980043489723152413901585040774552882518656985774579015543684214223296528085537835008541914492648202901844680229464374816393471112470597407370459765721475679064484647525546202157613140633003094882281130814058744328403828163945718646929653013391598381073815305751851975351206332349636346571792323717942951234956954891035935070767358999548778669543794798169931508019888003802374336798627745340229347693870896166636932351234571241422866996647849796517655944737495489338011157913151096644199430259077908803798836173972877067658366116267303938096105806628094622886177951651946377319960200951875661908021722490380586173257257370173576158946011279180693995352622214476387857942600792718613343526745858772160817956757953207314318683418367467706572986992352634414415645531428217345301316867893190572023273939975799670098303068711043831655469603159881757211084235610046846484856559435513548498969152716579882062885532250808841931109715246532257971538541388263774603068838305904741123065371325699152899068150803543556972054444803626322886291333167878604497244958790740831463787069260562661268576821923963714599479385837136843755024199004970878618109148459496036567908911461212930272037585429612757786815525430484601190056067483095893807076832628732866786359966940070169069554280239420923450698622342736041125735102275269771236243572274548231699192057022408757605207824299023864921922721800994910087167052635025071860409222993115368968552488332803048605386462499037249893607456843200554193055679564169148071901206235246397123175483063469108763004413971441413667487185220961466974108288151508572690698996018829116845874950907059579319294964406913862531684267726043561326830099356918929819028672358738041365491562571618534615554037496287187327268799756335298018948583800544595437432158069682727571534197020034081299243550484765864644562519577236787462552442559905530845269575929893010602225365531534230567278624924572908412633967651661337568874748178462730517667958657793864104479407867196603025927986596389076872252321686763325465557157099165287072705588460970519235111524838539482024505971777802612010771726497272043352456009966498878389036463685405689922343554614651669109903106821940713341819985021459797972760507010444137729678002209466934789673455326141658942844833226320970298707387855464174596624485107328053319842166928994533134734918603703018114175868152668826751111769581885901051986381865907418024125908269573039553303541138940983585986282391816494221081297226757015479086097275027691563401442171639121950156664857941270265805289407897120832237570650594263834918394277911658197950326816303000392393303746368968561278652978747493963626415624072233348857829290002891220234848180968101282023718451491883328029328937684592241616642957784744115525713503910429090414953781665755596182553121769032612304608607451189180515419827560657690460542052928042525275355708011720876567740280924952687860579424244312179415974038419288619005941178037557003194192032212418132206129323387224855782182262885534676767396401648349082590098875829091913409760439223641399397739492342929569322239355201642029699897809682154362374596645772804434305979811161934402578425506230871151427095615860291318452312021413792919658350009631529790463493608568540683111462974791603734160904117430855115158070643259401257103662128201410423710239677548116718511340344579016588773999715760354495896486403575876690100026961947449127863018991294446055854204572197466257474712750297826045802354773768864684890911215043539493604570860158028749932191607743339570695480703054584623281551669118568638293186221566879214465867110691808676137914358322566373972650434631767841404026615518800161111680887576067548566548577677376981623070939508930568835979343292806226370895648860971943723157657763717784241336841668128336065119180294798610484512046243712803331583712182002563208608152146169294160279951089751119125998506530863601410831666622855730286389821856630356625744333021005594576313178959201287750410588583724423637785629161112961275129573653001631471911715921590613681977855893306215551673724083151906326948266745112635981076515604700233438638307275369450507961722506990083001100057526945291232152201860025313763934979746562083772183657709895364215109466187173674479649232189535849997398772616200293293714848445132886099324184453939399954417051538340596123020384677932874572404284306050876656446171962380914588592005864018478085955475950344633429542878429404446551820484621226038765828517315205224902787142947166122385986678150072338077718916671912936619785302045434919261361988127075112160749124360374121638581906882786581285080849440040551525213596401559259770327654927578217787700701600157415196907307062831396553287531123744135395938589156214525141857667610580061203131251569756537359622332736024325827632481939770270679264593172693387066767814654298295451470641549909310507752312472660516379647027637115032754545884468035083408177831990207580540903852382907522917786831900526353145577155422899042635179765497857174388293099382892777153843984299288291344957554547210655571978482291072211555581131923250048486650862684429416076975522605115721681573805626877778313739747670172606744434009075099498519314016868956990198811202038406966243212697668112830864325290363650052701679565922599411503845741495373219775849273655694592770517341076310831955891432053106528438283530161612689828546875106285018916109402691689402036648209838097004028229063972098687850461200173819937431581164524272386737987003625222247274654455586322395093051225520142891897896865018734998751827353944597969598122435119971075851246016380954311403756127729406855434924877346479157173932171393819967757792096916102651809524194723023774180450718541104162627103906937817891999031145624520459648360671299484149462410744782830293135288030300432104576266477034624648708169293424409662530922821582395536409932439860431473296217820652528615466226755735945247413238837133934702504701000003285671063931274472704356576153766227025887863249656412522628144096501239395451932639927161146797177500792929323967003285771567968462654825195601519450339022450484318693358299729046491276580061964603190223226841459890526818848116581430458583889788662136351236533544521879501513873339634521016278365897625991688682117104601696558803187843154818061699164300019387991576779757052643451841458059335000335657176080339573867703852579592707215377088682545409279410336160355443760312645981001373737669394996557337178006441762216313938748196857086125045984645843871974083936162294013742294008746137585156009241531989312103374395501327221321250411554286979047159273597150882368668507124716207140079414150105552658447242608406171072540595166724526203132132525023537722599319040220254721343649128284171227463905318006619114542387956361461662081649875093637008626420133987941382612049373353698673382926437424569332068773167389549638340325176373769403935168988636885759269361176908820414945271782697299978532894586918443155579437067539130685265686679382800540927558785373972192678179915546917073549305504856219989226588889530751029013693966504874772087467876793869778690913901315091966242727524196887309551128813229093753468812300846729955099937639013190666040891024484156887455409403826987342507996064510705352469181314148777085583063414481535512886545879772985474915774737219686558736824393567757928768187427545268601905668725842781516285300874044602101073153110323913183246462248837943598286474241220659616774628985572699300217097745294555618312278977277571796983541503474397699318546155463785342206748280039692662809921790496074973813840715900522686927181679422831866075545798677774672097829188683652044769313195921200489536450580945120057863806400828664116098958894743550543980150465327765073050340444619472149968072365968980434109030466090020529753727471710747920296290635114495460048452502201916359379636472448774621401595926024820917816030292127637248422517038505872263511965079298833569820971849497883224013301299578820722385688660956695507606353471920339705905392395113740599218823492679543884075785417119315877425855946757997060069420796405432593993447229408911454145464893828101491568095572433153768042538781999638305117842980823507526267149295325775344045145761578502557294324147176420543994513449079690854728692414057036434182033219614997674299733583390511544558304996973451427998592781685068990580184737344841058948759045652849175964657272129620365612863634793732578356304285554678930178450586779532663332538224076864981810304938262757114889962455797876548858618365380613854400723588177492577302648253598878441170784574429459615889548228703127459759043920153676841616490806729258234586208839652714794259111778580264087477816135015654370690378739575996766961391764548287776774887763938414541759117649850329422436083298404457001784120020545374962065574005564414471998788978292777453216627154640998551473420661006097272836901835535050937611889521853534440984859722489267406418691837995711427579200423170800502524150953244115649563456681174855690676173248078944721665823226578280526089532106462487724783379157445364324561189166279379830599009481976396239723751202053654026944377392502619406838959033353133792175039986351410996731378037319118364714047597662870038480337059026451115672208610652818765114801454062619718462740408018043049223186658927031704492570794070425940115418620932739260738012468026459570060859180342280652589709846190224847983332759665947343397269981437044290751382495768015151919650698298294573449401067408373875119756481328556695107390396533647171363172917226096002902488016218790995524991541911383958426457543969449580893610290301178697321686877666021528362687295580818978862516028072300366865498561270706069247019303183994837437193168935932607714411353388941167577572893187084375898452847153342712780777144924594398244549880445428915116084922285174173812922280081654206498739656960964759567739743256318405456956120636919712761989416334143843114009621136304837289045381453866204933170629445219245534850107302134719894733538682715473553033955445017915288151766419615038209485416881074270763024301899288129569820541477666347464917373521461847247643349018176660738533416298019861340849945877165477125760320922522765417871618369809732084072634494570611525469631851194969390165352109557737211758990122294837239393082455197176523667845409082663342431095151176320609811313205632577764556953068443357681230354203122012030477362676456369904059956987353507975866023642411773113614630824368767450319559306813539589000357943139442263205287620168604056461213493125183059019783116267001785433260461802941113645580883613032284405584330937505815128272007685458652009840966603422767334672482943158780518542579834542219119471800950413577602781907097379824185315623795274433549254840901743975448552535988067126076773364532398666012378323498789850499143457741438785358706283227312037638351767618179607829815448213725371647106836558430638619312335243401138078069529959294054922027816271467548950240439527911399588379845689236335219972185070707704442060026974478877488080306090906193115285105547119257218959216865013764154528604786450135579189883958239895008492004399377488941790697389010980585775008291820949446074701669636127582250804579342588912784136749267820763356542669066967268120978793748222414809622895988895142434729405222092396705604657101242897962898537189059118676473013199918075911185714776992315694340686053162116784893467526134896818023368632886276168645788846134151803938176695566896880736373190558798196333010563793949979585865474213969195755300926895574253540773231409075391919200464699183602552665168762740003814624067485639157027785824556019242390369673542824692531824386621926014092924042112863114515647711312000123217452664382088375213989739690402929809271501809633744503740351048906626601230856133474976588576474493327759131461125902701730296446413451896748646783706259569473900260096000652151604291051259095961764181957359530397245287256058660449822135631006827171585781625374761719882452519040713675196043956226605771091451168999580379514074324026959356327907507223623191999183257251128234905739519682012510365388068789698036651796150000698241978503408207181182705179627539472591924281521672434280845751378611694114416682759432270619238004572281014231383833037014492176133083135564905142887669610946009532269572542319652821249048320740311625482490996377378953817264232490200016710810126996685215660838313146748196785636105789589053395741456993727542936295127176735267183890370001906324299590233530652158008625504504791551627566818483386198284680531199978108327803041447866633239705120925613031141303831362585676597367639582156483874598676578926993495316078539075641503092800486219943541187764240599585996465168606847486781035247614543721480490820311778203213600227641413554169251782319861430808719228141104744136231707136167627132006635757780429359492395544047178443562919585191490331201614826794752826012192644391719656910647600094131909751011571451271099545872243330401563852908346969090731041840258210889135203979942818639309584767110931164700490508511791037204631335215906552786904657439615933397365797628225557807616882019357971400278527193529851598792314516851613716885534590620060710760373932846388289077861624014265160860457217905522694535387441032691888079317167593683746364997216452445195037817600986758077689362262347632375325343958324164480907780530174950561281931516313250955491974818240129585607350660668042531208262973621059316236086504377320527131408862390048631177803404540222191124819598178986394366724496500019769661054643452995970655681909204540499154004520991053724306404951774924149991523243874902526997805597772934594371403057245053284143906605304985153057508516199631567802782274846321872181665018279436845704677152615228080726733567778737876767511000488855625154602124840758044228449965814924045385550651719265802467846399465932177826769290182189114838016653034380081873164358646178643319861379065505165114405938120680273133586488484948522577763183242625970110864774430344187854931994709802917990333255236234644012298489785439184898242883459670270270416575688898656226454711400493575724714516368043528740094987112263752065521305490737385395941080997531913748543533202683375704480507429444985924134888746158631741678677595710696915864100805962352226549154178130877096357333428933659202934245879326144432545770052320144917890763991285626978961401787323458284819649568959234341825289489399593485491872693906193489941873114848024415213438406638168737617392464071522635981586615794579894894262984306412593282833314132314809334931823753456022132723636608273434218174366251956508773628063872674797291076095275353211252492505998517379137169772626212509575525541515993928244036809094961677594867681893284153830401203609247888411811295439320784671444315794843304492873726494377554484809982145612455098058810249704577742812362609794315675350295158735940980274683194211373460597455785325281936930875560731332291742047448046377817452046712299026201644725211553228458961634132930926573138682888891209009097039903383799086345296277900852328943476497127510818328806279689592954427533788483867752519120099584408074642131045255540942794737243736638723142463065226134077960198738289632127371363945212412536433790753227961026814345443532140669143262310784115639057231820576913159510888127412976028874129814712705477981745927117530436410045075143927527061711928282086765283701341885746714441884587921612994449536902942326040633907136355432485992595169187078122821491670046875222199847429504108535940347786843908974092324944305066159413363096416102465213021868764039405287317950779466249829766019604029996706980326003499889686103663239716531445604783369634934996383997435673383069756622830155683434441921912491442342837069620941754462070101056963729783657739983559864250457702799695400796286738358146026168166694613097604510307275178230549323022911459425239495734838822316001175545760032333572121140444699751276708077257992666212480106057704953682757976546698750245594908530910803526786698111595341665273523083297338847751220830554190053580042936842187274525551422917859439227633467016833947604093857736414293643713389186441464698402836554415975816308828434637618924136964055389052805590651366067903738160799959923930257925657087529516064798222453424014467882772500785890608598754323464883206945996914093526614232059730242971365347871628272303033780444236060783310535518543943799104072108159355529912929878927426410728694809755478736776125750522143720284373927913376625967647861332160378471835819302104505680352566100642914658921317916906515993983032799629759347020319180091613546366096721682925661222366438938350838093212681185776927313602686110808528912164125442630691032819533442697518265503054880296901525186010371012085118423268626801708284632994570616400473510647878998984630917354330176507571949994481257127366245294758246249077603188208368642801819882411421143201421270650228807688691906571274628670875234274931096305120433599731744086965260495499880395191615911776097877767273991503871508918983293486591382749287209532037578435732251051921628092397270417349827538599222355781637681565919088272243705918456071136304310234462618767929830219881867759684259080104134781942450770615238371960084368858046737347183278129261642476837881007308360459883592425934609252105801766020884537468911127989768091993838461169207280045018603405420222552844309650471356021060253579747145040279727391161690721512298496012854337038602853138718664864998309003642267191999954103289478284659275990286496297416334576341176406963968560192139353044940983034682571183362990967138770387251004223798722360550597472346592512747290868962094097960406248908027750835224666933111297116443216670217349110065719293534401807001564854086175583607722650488827377796103717494661640891847695697515795880178369274710435958770835676695424693343590699768689246629125607737049991339287009010435154515536077989178665023153801804970937266474501115568401532761667946199378760228719652245597974338384665604074987416690266506330950424206821136918897820220968669871158178809722654584218665633360680937331379184456942563185576507265899571270798770073871182036883785765087922885206896194531051641982005432425738389853849888801092487204552127621846840539886162543771831838444014887443261030990102405878220398274156042351675945726339418560372506198608196208534174605929039906888382306262632436829998274101028573974493394658584942280669572872986785290273897490567016745048488491738972977041904245440486973190984698252302304949640652264837377841107078602321295370384089166728598804395327583129796105911938426337010882581362706822023109300464426273640821843369027531345501727628115031013026461442316393514831431071175290134480925980857293581244245594683928364713981942752076641965937465872666889178059886158559190426136493743951399614920675042094511218058597928805160673494967845894128568657586387107145861227930610556697439823015408529206547472731447345012281429141340197034051655240384165058984681670503750370624991862908191928690575166147962746240930990837472334449221252062482461319149988692293804739946034990248669657618328822280938451263804907780068952794546152485551933729576790551931306511593988175364735526467090662511872145928997179128007934210682868906138823854844867446282766229291255292017442253265670133655779050982185576888612819650488018932234021768086554049285694224706709645184988392279234620590482795605325185644172147897682324761541940544735505959206284851515230957895326397956290972370066064549532935671388404314826127614131577415969838314376285997694399475599410083499430758039873978881402395063225750308783621540023299258824567753634396270596351543577057137460614283320330558367292870732785190518545244396319773310127441822309352360772317430994774732876667149375504031002063812642807211522592539718999014629727423392682171368286240809608984200477275335256468443558242427539439344222412581856628579415693927552096180398724083141569657582450892405224385319662112368074031952959051754280318587527827165417898382143359684632106597557072919122902246801672385747865248946099416803444939079003672418452319255333809586192896395749011280054684985304839518576079098692641012611321098195157582839191603248236809946501332271173094268054580086811405179148873406903206978998416181032774409302131632054445443116187942439066256052857092553277124495053006442321449393933515363032991033015081327060536487276154119519451608304281706397230868419562000764577369858240049427955316868100476511327149982039880499702068599653327767442459113383576105272770099582125320123591587695448311402788168336757070029558645003733194048387062495616797689029938539396958928614091057539700342682590191689098456637691358859497891381734235301216399931639149295152335808215538447592333845796826159235806779894199774101324088258174537461139159378298050177605334565874674271064114601954953307282783667870843037819551901815470254450546290412608866830891768067215478022811691287524057628411619749564739544114396710897766503971692637181653748798464254571076363101290912710926340704845706372649304292145661991052183685962547291412619453989877959091439405107379418732517521567266340389676086917025516707289364778509316475301465153375204429903104673607718921974291065042959033032646552539784802784335917980747942043488607227191083102220905710873782067397222067131525168412767591137872902027460789341796022826424831432775376747629750484029108333013796845088548064881479442031071944140055747038851299352974660652451346050914875424044332150232181882883993067565075522858366471361198913009262150789184981628618863801772649180214138682439277388745322003257479804406531382505660336303315265803591377065118878769914929259104607000804486097459707803070186905637558448690263999134903217709231423104576195291217283261040156729426601379314649989047074804231449834622850832800922394697513239611206002340440516547887973878465140179470852802442771370235948387897285169249160233990449003814492152758039432506685262728698605727986051192157144917973865146819789539392429210675509761380506350001340808684026310014097816608607153361524538750823259625665379624811881206826438709958406139678764893696256691534940724142419247725126451858614556254218796594968929584356853997307899032130834006331968007995275609406425110347789449235394597048851121505463055018268348180739220481819646384146460695782819536831825598343315123666728516480415222594654762516245830203299622618327284794956518468794824927580481238304486183549434952319383432913341149577695405064257642532729217709298515104089764003665878137893956200976366206385394050209673940759716255058652606413982051444908515405642718409037553445556429951010370304152800925299400020283394848518449361487508701234215849196224637175376711042228514636569365661040740583289643648564302502804431230676455487723031545930327412257074036161050060122745859382241623307681636810803793626523837042716422530330268009934812062330989869139331267320611931811679724165430971752483568748001484802630185632719814937321315288209251161664344862106052585897138850054019980392201297428938717131323542808140242130662340245861592429016901018130371722633722137152392703848328800667789028719615934670023536148689481002995691864520887980638383029074037840985315855845131822144944921096272756983389737489246843102458588755628614425654194112788934256964660997798209395702096573471900018763375880584787648272644356557502487495892914999259747545486753618996222786696481639910717832294021810102623053170003683135967662001955923489786824908803581473783939035630123423470303682648704521135023917091225027368410696986166321301145100665177327415000655456960041516216251220121447931109186359393264191103847887420192743940381827974637258844314189493112319476660004360489183940873974820939922002846778236271391104751206824270658413381329327180027809416544804709535555171979961789866910703596338523758706398929600524541957315928583955306188074753041527793880414096195950091336598400495358832689960621447326311539996787915969067100401438825144485224971026562346985122613535531528994351763456082307194262847621811776340491657455160496513972342155287761957205640803855106401117199361550783561212854470192377404970973793499777575354320686818180885502187192591988466720607648896693039476705193402442619798733043514262401251587959083524948352073054383329847692166511677816822306045950268183506500673748447822229471729789002364666597596960565071151160422852017153181761351990294526967869435618849410836293071164138979644692517454886019633417478477066148203175082690085740234382072811225873258178632414687026478879889134744198550932942799307179160956884184080062792693568287928121452058188157151298396206601333407510261538461215811530677505195622835395970160780272913140171891156703995662222956149726325206249810912861569650923926908656935765525189078016407620029215303931589744937000182839407813357378689361962406264773633399818010180179656399255092842514361132140807589733866662073464485253033843412219602253926249912498863001403041891524753684090036935903313806525757637498346639977041928952665443947936912837281736543378808473831897427715148941663295512314895759669750625062878272194763747113705603277418547728995090840946446591899203642694200098105928375424405745495479247353404363807033582047262034617109942909301421844405894065638491474188280224157442249706816117690806093765783210475604831250400303371850692072318542870207478071570575331776895928294745939282881542139465195130803062052821577023567505899876843311200531838703888870841174554148901437302029018579183505938133850226034177443643624991068812936533933325965415291167831708996937981315075022054993976388235633551121370968573178179834383569803273522883459488748563185855366737076909631402981543487385029036454918997092231188190331187625692027564382618387626352670074639425743837804783706757504625708537440637194207880495553453207254318249988632470221118962194207192673818643410865084768007016160377282045797710268576001664354648521533138771550200364628932346637674249938878261602390188169088431363540912919859017411329751086055777607365110764504992746018052075312727808096984181599161704536640824188974071444600554159558612085638705703926189423158279375097952408628618726905979900452364111628361318939328403784171744135604251841801983153609325299569333572456169831920416952830728614901661771053900294871312873180877370331914451882733547691070751628340600436022475178219102338336557896501208193760123533202766348422079772236359364537260636448100175875506969150249890504865072820222734173312363810038790413870503004822231736944508782828884675638265470592873077287335899178082093719955879226525352331303572110692220430474403820973957963813989033601203534190296765290369559003722216880639427615001520548918410220394216423522255904948718461312260506902238836053838977427458720076348625060485554415566559177198198580189517519087225739509776733863259785034442971623018955820576811290487584502802691844457665847388574412164276915931634914966541535056180867417456221680622046073975063086900154719685408579056376715861136898083452687964778859964877491137055694049889622854038769229570211804291138616580963527790923457873907513709156718112799749331919544810170265882285909267046195776607514140236807103109012234000128753676993386788543962398178829568852866246887455319027335869144631194698695379158227671404020570954119126108634366898883118792656772573374694101281425427007218571322030404114863544348249215576394537555665925603200131065713283682291307734697654960003522674897282903864412221878721672316980684260100938676129734874932453741291773090500587190204531445656406276223846247381733761780657400364886519016403985853566310471327413500572711438557555283509601999734107158197350931633394476104659374533710999018814439351250818606486981988499325889012214118337038694849926156000326940589670390701533289321583572816223010498376907702382595878665363211263833345295202992315574025678846017507187403069689630750162599395135467528442939705106280561976677884109406245072632549473939116383143068364345149809620189589621607343121956133826585752648809872388718675702653411633342473685171094787851508914324057622314544476980507977154430889101207041340035704159338996143894969556189925415573271262241409892588080403527444482369556790691700378854784762444991734130604377449638514004872125061114814530521746627206329401385940832578749659401841173783092166778460832117861258877037214731915370500577932544649183556557294606715707776357582598449518462383230968418257342481133343151983971347912188338112271674611865482851606717920420117293794152231267039086851087395938223588445168836365153492720288612463954592650902759481820869528453313754771779137045878955979884387922798311817915230502073041217049375343943960148939799821766338612971064091046643050182243211564989668364954849136117706800879301167324015709047655227568190178001930751234319855488154317027784629172793853642239070120055936947381095809568511521225628476049729068018274779552525574680662353792456262969292490844161212789611898960831923477780154877200378250089654363411015674443501716122766139481730272934936651134419477553426927461906217127107973751130553528018549122714028480935652229294290924322158781461203317522186560487271657012468012213084768295521116251363400972526353015111124500310435552611604127361329831154251990064753599761110112197526777558428602512267275160672098369668073032222465273935091333254558140599718465795460424120549201389004717843535890580503527939976915229176844196400169288391887798741279096673319679418932974333827315115891799900606009140180461518185182711218241522687935704018002515528062569662712519789177574262077004875425344430717878040249107318376337915515799411562967434861514643847026989860216415523071215342509507124579885013851937297908133558707245733744466915084209412358642826889689734551643578746929903268447241660752413907177602521778144229619969531447391513711809238316655436924478006689001003131727269488705583300365945952658439921588627493682399794491018045220357264933987499750416800471356209602635217348552166763451921936079664944651441571348443014601933746380665389397330848927169473763991158477164939941352929846196882416149407256586157151198395889740906598066938080216467331262208980720003816336033187457106957909293523190501838076085188950151444236192513500874950945089598479325602596629422586906750579612988019981157937885372523550047431394362109416151535221338896765801077407016515867787819157097847318369544307347020043015310174849060055035673901366520545993080780176051435931795751472050074522672467964788480199850372049059598094314328444184115375181698348762216704241179752456028405713351124806050203901197158258949319250438682998676647663463187258108209141022857493978901561501665176589979502758666492214997249070696758502299801832523938879767418925242882283961925517131019574761253130992365942124696946632077739717295510671076679510181209760120444928398277742138747334249922546010408150097883982716226750193812168432276377789975925233064603051042419196052138142624545024757683564869604106220432092963043623815571798568319154515008000958941661156562098764824824110758046191103516485702425392816610300147430433853998696237781703698142658901947452738567247500914787897393883022380337855580690553693878150036788980866338643132037826673656236737340061428006146335919146107652439371480801342493012801894798312789656748385069551398173159759899589071031830322744802310741215218630894319884488938675100629281737483840913994470352106743124373185010893193464047263736224927808781707407390139749787035339107524940164121339153369939134508351241531762404986695352960140805724504062802239259362621506984778570929040025823086816997480976247259927611996798088087449685826879500587325923887464595403212724380429865349044458998964473310509835653345802008498298849903643576524990602714919896911497866455341606333100748693401958618126637824137811327197298080379852314988149438205234143403141491620065990135273016082037080055345872934951833271705463362913874088887276151798709864927135163332147670467228668820932661831358818647385203573633071276385668965925609010935159606013023438824542569226293504200355641026194365036080374595917018713124960598712243571200534957848851800608246163059193864494627804086735887273055352784068953177955440305799221890703512226353296999666303641507436447446236914550938502813473375173746269827350278375408625257402783587491220667575090274369628257232656017789547337500566863388405903825850707157649749662734202976668024739394484354462277188922626208043660208990786853248190468986972331165392139900571910123366962488834538920221381793002451392385906923175859055196342993821046271977325270796906623479449841538240658462139628835026884248215005644169337564908903001437814780155151078040869354454402043752093118822297335573252921770606330567856178219430169746523572745626970910415819150331684094974277267265649658056213841926886000181998794008762931230225859052309441398807810794101688014571515568409412121381110910109849694491716780096805207663997902128135850025132850131851485129878494808925768388001203827656540093720441827217765464098037125854453546314995570975447817140963867702675777361791151350433020046050608250892869158521274637406161040123980209888833915229368234823977257243102034742663617122106979147992774504398257838939283110763462998716847379429382480396268893929520342211632201842380444295037626092656651799982405923479751018802970639176581567098100351657970219177981601175565507271997052562726191369013671687794915910563897911603684577322382437018847852667301721089229903500754790069888654703432841932979012371214083928888658491227905027588137469911809524549108679517552708604069923399759015735861234586309786071429194861849167987390216410967732007593683030973592675911939260245313087104103916674674436860241466078573084639976864421817964894765014960608653491507727783027981609777145722207729268612312264009615531294979130031492614713575926653148121631638967676653021936061755280910555730150935926338324257386827222402949287676212796359680240832786738177354832334653041049300376528882489941000660667054909876851985437585965382614689384070920927143862873356395711760114571394676216679664495741977578980512277126413772003908724384973306508774804299182944819893839287850667222156258208318747180470063223327007339660234963249224607078011529884038172848347424591711720715348074347065391707486951927822563799586405584237037507591661772059718750694806038287631200132555169637280529803020067594763710627488128347859329894726676065312735789430401773493007118011079451786184453810672641845872511680790843375849244753666083266088179937364396561836590746831470638051516075428344667723888741729916787697426755837889049649169863435525621148155289553584048632746256992132931566711158037835728173720940278387648831931763962965964151395019927802279615025996676801093904901535850105905037116154492269689280917967659616811940944685478999796835483195211664021432967578125999387241631772252353913416120371555455796139419422606044394658969115171524138499897221520513777544259874754157631882504918853991694033726841134166136842878330874241185606218207705175370844258898038481503959656523887519908943876667509640843362643046537343898087110746698323774898912634881150189399073384642564490165886069529056940630218323332596915987970766632463077414486934463569650261988479825002588211438420588760919697567465086031819374901835769291585353294518052818060578676291752333512224149014659999489883094284188166776923631827545062494217120644067259344908128383746887618214374390793254622396508725868732838701481409075829034125174647494788842132876680546743582481257983657466508068207721364822431504333028349494983644538028616576808006375246337469291128254475863015662577956556467147669764430605771717191379940840985861369690362647360474021904815783203790653708615404990739064996250940916825903975069862191158056744221094618882921847699022402884419458894907981246116221121607872148848173987845032392217484636500677561213656341945902891166043503120592047233514908539866175375719806350349824202848278563430366272572392331146331875574352850005737345612305773228570904048097318323605222212416449601138467875932204667834837398710216394505624624480644852485042772895615406504838750971760197797962228922969517049445024716030515532677509874180960328891931114807895810546195364752838272099608763943718769316925028772552743080465810522282468745627738728493270857891930503332070743014253764014706894541463595072771413554282398196943992023868922724113029807558116505882682929769102161804475849432869898261440994086568734623779103366645413331546055950710815367192923130427457145786882446975709544338960036945327796381125631669157667306275154187884856314105336638034084760834816140675660972426415271482242657652496022558734547718273240916485879142368080509708353373749969613234337894732293525856965502282210623712444156357485009934409174041558375872565394450721361409882109193212599613384363476803535685355064213174233613854660875917678319937135320042787662669292229097305434693465791705747995751744663635365427038665266045663784300144805663702728556619891020152611231857213477741609917795346422567828253705935817887175321919000108192785456486390543461561036188188689103310669666616164702202448054033161149396591905374139383308146597786357945647225571548050484861007653828173440590625092676683789571300313773985170079313084199801910096964617663167483164685075826292219065286237011310810407493533005096586399464281480944459597395288507872586939193313983338018091055560355064392815241445299932622181279829388417086065134844578114456755338031925400709655884397799847073817889519998403094330748645849900924241017317456972024579192993175205066098231139333602439457370369112962871236886671341101460181684549028181408210562137564134177039807540124354373458192908757238028977656454571923101037382671023526831525756725462849115082045301545653368626734814349407147617494903409322497756093820947103829196425349793724634253247879021325108541009238149386454663907760011784123546591389014238533325555542896079514698646703390349677248227785717531161480183660820957110203476551345708632426199612441325868248868364458658247616357547616903931210384793854165448434047837316686812071650520223776155973268899953931620078829594214612748575188239535570206552730906440566734682552594251961806160919562734360639350627059257120644175442837801002751460642749232210584644776301909059506208673684800218527007257323646682167204568413946769309063138465321365000147231902967968116884872583687106505588453598644295213596153877192928761941471557471154687206258164561294201346543599826085231952241934223661673244036184313435460644586136073572026557519153067308562347612212204292056479964054555290562238205037608674047795661076829549442804030597379372642980432480540018934507531542694372421905814501690465200794736313590479394169646466887145721075665976571051988642000805736047252757156417595428358326996177883896170448271020242347821979956302568819622142887566499172778995511384656212923447793563202401386379267743620890311390487896503546238742767632997142529942996287020443532483373756096070809214913066068906312313946474653401631737354030422803963609716549192394788315764321761269822664948665516949985074660477343368205732121833347378974029184381522507507642884415146211373439321620863195205304822995751033635729087964307474023913435149952444956523450759374357961769172987973981124563540943391353977429744686166217158338350660558031873041202199807562925328060860507169594883871598144050911852564155480277320847348206574057230675494389353571233403352408165553101750630053917390974423304182601071407644391821221501713322987994143964317931333745582214308231174111711658019080957162592563673332732450295274178608714892234766917797198419989451836817018057094676084418330206563162020200396129175030634196948006551078192404074015533510064090626690943549136530825074248494663143103390958295779963767218461181586858824050353925730711070157445520482203936360914733990475925187646491551391826584917770980777591856716123050349078685624860941778036491119468942854206570935743064129865082732301690104786867808843945075978489030203077782906761818050782015908378852650249450856656277659130020093112201974109736165433818132862427142678677240942402844220043482613355551197247743831922592623002605263752847622467798475845895851304066608828062907081503404956715267700554773169448061481942370971929141918127963909585684549627653802240124299083653836129913418389766297553711474073228453300136929109356951876874756847988569984092872529697958992153857475654862114705522286025182540761656686715571808180405866712843464187079805743109853363849157098231705522669139580183048279856151686447252179657306909857430896119958643595139350842269477651325880822467005356881521572044815717977305136965974927867990058081856332283679922798930562279402875893545120254045039323430817625016230680511163796199730416114236429893079743752514104567984638140960712742442794516550661974619756288173785842658575383485454679371798252185772666137171587579024675068756714507261906334526958263737244115219652852321580725053686703283474915490802663018833615755715301487182642581992598080980084386346370566101440902674384409036436858736172466996102264919425609490443897107189032463883991624966866948484734194897411887736183308924043468157517790517861430508261680893667975588125535723202012074403829454809842391811803664969095602055361136201631074773036004709540514797236625775505674838494357479718741566310226134686439200840648539795866688543631870643467049998577836085209705911030957092772302250753143895812429034596924547596075276650868507056036602998819547900963029024082742074742213602286050866490963461211109955304079803335975183894835790262881704878296399628860153315082661033767280900467938051369703730955155021532843343785311321474510104755609237103912509563218803989339879273224050398714866399901576357284775342249608621389694541096049140870937185091297511867680350542057472420920691368406361712577013061882851216916828377013699862218760274976804022175405279084652924951130807395876304688736122303908304508760027826046395528577401560990366653759804524590169728176360741841008028191402167595705096502002406738919232944301587933795850372630274341903810922570976322024042390925157710053431224783005213081092663944038851238529423469241573483748665279331997129962001963437058258884031047225834665126432301882576081298753737375752059999075497429960028453841242970723697825812644248081736196221263543025815684935055562770721849564264268038649866762115331465445783040067662330567976355729348190993706593070969674348989023254331354604821129757941164176840892196463273554414776694973440777065307149328608815085333695500185091141123196016360339080969371046065068521569324609398473040008766614260453414361765713191379731702707084657358955528912407914887675884336160709633196988747804810441853058320372613244265314878745607680220815625296883421899324967812040380975938020234960330871966084555047144590085390937025424313834557221385961221038562788843668969122070514940361429885331733559063007560737294714522070507699183361552713696161788542939676540734836145062775601979744663032551055366401296747301278337416552200653826462252177165928003849807118124027438054141202885756456119887118057207733709944523494658477761467867448504065458952540497093204636404256827635497985567764659157879478609622232481830738561419296330874316224239252934977364146322960963796383194874707684776697402214756993791681226386336758240721859701605909406361939097969508233789442001890840362741435341288350452751810958037093088821879776350366776297957616589953602493959460492823218304833063152229488174200713926559617545215941781664110563165490148237156414774153178111752316980852289519015233281810641113924245019325194634848893280397229993662254881135956874544920588889418384118285032858459266797688718258974362303429175075879395178759122181872462078673363056982160417799059315701125706479857851111274109542412719518771549556796085187800609062791457620160481443093059691663875648825541350362704250009373743106946925875668657078320164880040875445721037637440254290171506524980644662489249113448110808286659067285634833114423046329697088744209051480928424323248104467304943679658131353451076720310493889612261563986666904202169132806240418593349640767511911456207744407318901473642794116595457517160833940099595831025517270613485162383360733188409377644686602501546979641761557355914109559215626107247613909837564354992676739932503256664097477261632446414985944400306891317903906253897723700660384598207527916979181599920656564827009951940374530699627712473565096214110695720702631505985353166560072810011315352354894461474157212989658517706360857331304772848306986664464695661856535729260226209524123170156331693391617075608672610488055729948952792617190642219196776250678387064472486403678856337205418100935345258541937813983287364978155059019809587446693797987934316086382982128849550168865075691555742311294197969695273364901090734390034868765408004249482881912487875696798259734520394319523821411930365565584424791648173115513303961092148783336487152456450286755272180043563803237697875201460696387678776961650862789403656181219723863978619555350734645069084846722952286627313094323123846372742954956279761562330839283013871603498470127093255646067613291919897029400665498829169632236883283047327715645714772921017025523969681790613005924254549832523479249677548416283965810419165614307586485598763210715667419463799006013808420923670402953820053573696401258863107938266580446365792658010433130482718658827226902176154365835969639581871688831969088476880970530353553674779844931815183413822361764369168987988682980758838442952268415990020522483060480902520073851074915427223120114996130712037252029779470908256979630834256950542364339688638243627554459767099324759201684119369316358852881354783104805638618915331919450898594920624761042045151898141066906123936424185575604080875003767480099186159392540434657812306492944097877014698616538117012582833294097120780950297680206998480951035415340556072951094312075123753915686710187816954326737970152359669473048952624501603931079322658973513846623537739707811732035079807510417499033089523969282207097912568637639823162163573561038777036201338243610140561378324813101039808240326426095625252675984134802423447385421765292735022021617516760924260614718090533019069639685309552421012159015271805073264407173239035803940778736679464016097026254291383089133179509342136653410351854621546025456731924725341032768137802804366239148893362422201125635602392860349211427167507781025205114794904123829590896607269354369153181159204240879815476225088360928164815108561673641356604040326709657025170956097139134077311250764377438725759075898201969018718733121456405833310793656772209755181015505708795069077288615588851827170496194957625570732183641726598037356974843094667772839837274410124713173748847383164447612336729823303460157665819342675325761280547756911372084895262122906760100487038113190178514419637832821690904553160690057982095402569347570441202449536508302331655028958918813616015435101799161639102226737060712571225365941649906328784662563769622301711986385183411100016813843638977525878750801619095292605686870671848085214603773949848325427724400543948039510537599124971139273595577006826086172052680344301976721455711559178337222756722774514975356443173152094039459823897950028793367788300283369508934345682529116695618362935990443205738839038812518015042654371587239910009219873668425361837704871508607249211562693942496304360229981460389562936481081143717280589012612198532787177426276222183945683227802313017826549941063016705982098399977490765344966229551685037093198028702238805294764520659101485187807812298153665084001498836595964126511661800956640103113798037710946349492617796262033746585330482613446901366695373466896313697779365976040149865766795372162403853931574000700479497020351285266583766491191879285215265020196223777415846331842444157970098418446951181101177475211064794433622410427519609072645247160718546445718479632073157545694582842488250086064508687402238826099592266000971277753937981424799019309944400537254416647301977495566065410775754867422287884870681936127461762194198909525694284748670346376597859671156355452495932336279148796453781783137866521922855774821508113246226718131355907760797204539060012189295586414915904710670297597830020176444221060652112609403097164050649488777466926058018341560353854963536518483366635664495296505101684058244325547539304835974559901353466954821999841188419815760771551254488532444175468983658941228338621921745342707870075107373398748715973877256371469930382452408350162735579348445070325035927023364036932969344258557795126349885520706769500665809862868057517631664019100711923255447769217194794996772527844781006636225986091598141251844284106443930126199125532179679501705736677950496245753931724713891026900463260761188282134946326346509464395894507700867274987175705371629103137741345158483082712385106914550782774708442900543379414468208289742351514849413119348298386418746496269707614529997877676123955136546663921393842870504088658078585418963582426066254018363332842506477487640825307872294944551175183722330404259908040046075932857535243617980324930284781438308447889919091672132180010599701275244864705883501952020201027718233108000293083464371048268571491806704155019545848497352287101266942373991986165970999831654279053507547769473979937952918474989901268847011611350156579314677856087407945843339846791074867784769621650026897733950074359946731323071467562715497559515051840785958799008971274965525010096468128264311553323602981480642005028873991390533679894833329213613115934545560622202048532866188483356693877605613003387208859887921561797906629762681381183534027007316989431215850886354084998158555136124073569592059205979649693148907424252756210101054199855194178357055401875299840002691340911937925411018759351455080328412555506186405596465023166310942924844702700240709301197978468959227553306382282581840910342329543926461496864959252817864380111230188490592819750313760882184493579898086832615607428655445732701755502472326803021083210578143294996034588878726454624708440877168702451657166466520538553134045714307588887647858560726125764571393832213090214083717514442410372420841939366476313748903543245545400161749153919410993216975766574725624472386985528982611220726727136857236314594651408012840273798677212110035051432004131903635712037949300023866704286831467128458413434680195622642599397785464094230210954014420604571400765699954773795131265490618211217783709086758591485600810884507115122822860393981281036804534000900870808129771143906527657658000516190496040907857511675858823112612216342012259925506603288153738753361320929960193437228776074116451151697278789116572766620064505763200945095704302970906644754928625165156327041596539691480533259036300523336428065510252384011934435509125416236884006752614069576962535471747401827502442664475908396095814034682154047225440182985481109700479627298569032589961067837367984418405866758442746123466709991895912052758864872960509121934127929790374425570855345191078022568556854411591648544159671835406827489006942103882512979230599020003531238510776281404836908891454296522992016642572947543734201189711474535452036449340106850797559295307738427449008623175038795160953878712229769192692369592954274598828096496974654176493070462597553513642156983957891611888651517408134364957791366800092866197728202342555092284243529725046350392135269909187178609204277276701515325447729971594401353862863756635096816885730569454435143284228277618940434658438868783943456357544567835351950610203005941694247420172034641128135668822062791741721832799086753562562735323576900565819713954386098474545390107219922198694859374499666957515167306750720185311420516729459838487817032045319420874743025368699515882470275163275963596509294920551825359544228660913660101754122404621057187673177214787317830497176024588476878884777115079089912700714067610790092314512557568573455153535617155378252795777752561474444056163313865475544267341992714807633240091334127398057578075021297784770468670597469678425225957954714113672843340421125908187390619938265599375300348825118105068649344480097858741444501400301157888221159071677363285018884990433359203300404206632240959345942050525356974386060459737642184600363696973504772449631794973461372800043748605314737454325191482460625448889933660009901305197699789026614089413803107585777166150851463747645810427885621070505782291089160655620575063010517484136848829810033016167518458357107228732820898661416637587971226833122147425776444008357969429522765326120345460523712220689777803575892997254694313770122522388622732502368080559000086881991120298559723893677475040162659144442508751338030174815477795903957519080596505128573474167554224849992445052790209414023351207533199205556239340529787232373374788273888096819210959411159974957908907960405490036338995099197060870782906046389513377194900750497736589432584240306311541702451114211599451429974026138589629992919081434267062764174147728227668625986297510297155410188306182716546566538409857792302164403392458527144468279256690697554231917956830057816911674351334669371538611946528779300152829608716262456496968342497298123276061208733875296173570797917596556403839838031711940880481355196444701073666986816234572245082988417123067537163693386724035608608490177032577199120143671564345178291255966606358865356402321520737505300191470485979230892707926954260133904565603874737639620980873666607333034998237191866778851622715786214981302305192898420064654972802217843709182999117705878374803799377053414338328838248381717275585371102140723465803089525633273803063027431635636027481908012973977253288039865762561592833768762622444694865881974915665953504982666001910499412903969060369652768015307921903512518376608360331064712573722211720761492635766412714641443629025333270422632075141010333831684533299453940818253100761871435608844483002226181625229910124017825651945619873113697218422687385549165660751993486070976198429875511865320076485199547278937189090738947523423020772115076895133939804032230975296742977270090226673651581636811380712487152175497156168430127744110885369113556132082603038519888263671539670645585791880510748724811521359560906061747096630383416733410260121928575285614042146022477981622298531441574804948056739347416969302934842055209234907349873906990098756525133369560300599543852486744492710981461695749173094927535452538622181169462760908509724201760592058465751901854971906221783670381907575502293805693943175586473699256326154178334736062488434002176547366570187160444824910286921575213949979450400775637621512849948844481620070231029302193093700995822643131782223696365892167203601674073617743281434673485320707643782362040573810121459932034667745140968990190678455083926053819911049887511191198756109481910707380975274679022805465286394516870913884613438723294758429142813498619406271946263813559485441531349943074489521340397701134818559763060113434332750206871389234720730244187707679112535945377854801703247255179228422027278839635225972704620349764874647807143179782592864325144916084329568484499435411251099060791984185427000930682358233879511909528707193166754215914476860969232897360046851310424406094848638152226733530875044426317809853815216049461737500755542932847578014384568958831189197722088161594801968583228591534295148421811496547005737331851034033508161865173441817960329066824002178067541225113685460728767067898369681116482210312679169858061586145089447038354441045645272791604425432774312929054912157987362882531954427848495732884667807656778461410330155577978142025566482914211256098375728532802613180081178942051646321679444398879863251850502751650624650766604066354103879145398764538510254336965988170005167381293548402842726197191280696599127072229815213989066369879230953306940837899330386383360417513809581053203240268778823750093833987251462808135349462169068058788966346577446983091507863621942576312932476554442139942576922121294883150134247480573368083969479048805355553805443982337460727439190085031832139250797952848681663254458222460857236231055379778478606865519441906643375656523614357200533241620821560787740370928157569876963751305728925977018079925425323873657447799945862428991870715228814318145308041537226645373408732848367790028456763065124386542859331440142920003561546448999053112624166787908748326319039807788851318368436611122733207184014188292969332763550263363093692591155810892019354734031046356826046012657926616237044326370981910164989258274893305948791791393717333660984615194774212922340252337152661133244142692357012910705741345763651533900868458056683988765321069071801094873649827107340514260356129439181441157699127227577023203715061755092103716067137227688611778662287934800584226346326183459442160916233616378536123680146576483186607456467619131940702253731112596999584371174446567694747624975457386582957052522704874469054522258107017796971767071433067459246761450596519159442982591017850292153633422847796016575950488370822007512951916770536790693526052438847133361050706250715747053138680082353628101978948829246158867290230950715419185286671500528024420980013477478236814387425857140642920939811563681193598569187389494864086793061000760306960320872888284044709326931800669165474364309969195218580205950054100838094500445711936910791493769786429029652665013827075324890133854946532895274362683669360134882969859696242524950077280378509678820775081207432681563494478933436606386992558278319288270044909267268419381688520715737261653371778560878352712198628120537760909721158931321800383070574004970693793835080580999781424282063290291349033309441530713597558879383534216357202288744583944415760208725867304898555588670468690891244167818606565681328772869822841586692406392436613712087398167735956900780310942311721027574283527637522663925852237057587705276146634242361365249596994130638972788999637088980308155218751039635677180843091991704612812705316517920529801662478191549782894412620697140156205035363844073794095844394298013397937777484494467634474359212146663818615668332739359563560849168650265845307468563064251540795758050082500916621041479659854206459480641886683552200014000865423246167755147844043884920083521140193286182072482469385761361394669899874406182829785276669088449629507536730825943368298542053890812778244594879898458556312880049506126387811915018739245517327432192798935848801287162970405626815066672834716585395550578931904510048382771899226168878883822070314047908600092010824504609284020465336964025724151223649939429040085424617421915207947294796941615582849808231987072079019825165763085508179395492049216440986679020269376669243649394833872383052332590065065796641721594037479453193994117219857322234795971422272142598220869248901499070785523201184980623251004544985414558381963583234807161188761078328817419181231806624358403892273502685832064932441501722553613932107088672329097516170264304286407883822988826791610573913705106505924570552511771324329879955358392443025417858745483645555943454220265992097727999348419804774115586760380457238561346016220872417977749281379293188728489782097410097191661729739003884494074407362865366465364147779366532175699003278768481976701212543407330229288380007509314747640105635077064613179783059369288136247441472817835916633569262307835018210712956100451032484397332396168153234412136445986491722271705324932031586314701661773919926962692780569780912255862389849114799916576985255420829265149961281461085735243016543858481672004610525605064249648007580506909882047886665208285230598182233726625980849522576217597491500005435413437877684896862221046940059923112528295433873171043955006655256578162517374732224334045751643382504942207783024521320031158933478707869893993429942928675624815477639763495942412009628368229467000667818732747013310212779897638302371795359957437731142505879955503271146028673146425609363987781181273693668929067690516949280834142933919765460466555233885458873846620763592784721445066682679139537379551589467540256354193934851664882316901103935979406019971366007322676720105004454195862554654300759745649709375503349263479593011479266697072493171280655050204593217689843579477084126949021517474448747779712384745827214525061952754453505505750209108474967251212181737615113246059906421100424002045952671800864250087049950423333544886467594719570846513843352746756669163825122405409537758222666336371155907208784716821167090119068046453238607335016049732920397282620078729771886073925991720187751935921008444070373939523127560286870654245874784812647678809516787774722839967360836499162928983167215394971546401574412349653352110301195291965176261126173118330802311346972794842416739967097184717758483738346962697836966510249094979670846228841121781783791867691164431075720183487518159879607200432920478754535212815271834321400705454742027775388102362211348602558691754265850635699443992196896007136697592407630942589088283970681827893578814888185193035245345910634344230904434950862847808189553876332861051434196833923349267442651984324928509195116682442697878609188817116893453498443078204769964808918746790918340722065468357230928859398573139570013734545773832401329077867032671584290898433595823070942096902734014157593602150427928493548118773714932490097610322955857063167383824507788156075837837976036156997694695716318366699477993930000237201021874343852401535777972365558362673531344767277478046771979168735891144728619335735547171192772667181079299806721429012435256550234518118253399832726087316630204451871113468342665002542710740049978972863915185651172094575101522490275810827494178975674676996530182588043375611093563811120250196716122416197159296536588129014700465644524925576170159592024888119204125835341352920774320446405490727528050176238833915364092602909349772375034147350343587812920797647665125985005169847755789062746721606966506724813701062519603897192337185102424685877567861453294037778714169395756496868980475740673591811570093773725738818711810327848376868574894815529350192927542617928609359390558188228010790507857736603783392833122588171205453859576258519681168839666559146653060942255661323203522751247739607241606631668524149807096707335416598123266741539077164245473229673249863560979720913775486243025500696616097851476350923459500305956462594942411303762974010607996005358949034137538370946151098532519974581565436497385106090829362075188103682164224224683073326986031279912916186100931292837700617593261576540792881776214537757331757911496715026671594257008359786079386217037187615800576343645484844172216345223418936957363489791337933348246064838326966486055907284293634718191694824559041589297791191355287554631182835203532850186083815643718567326967510461999710420242456070800384375355428849412242682024589657327777813321872433194498271051063914583355591254391537011316052595539430883125551606295259960613465480612834663012383664883179279796000298524103043749409356634031886078242178863021520865964048980369924898673377984960953762015935837805357581507166885009128042286691679401973694793641644042387093986244051885130957876208981725589266291090282698089929703508161387076854422991084745110333107617111158706722750920724237539935253018661104580655517126501680148561519165138058425959196967826378258702578774003026385165510821227097004785855007954087043502858016878574131456710759343681631750681009650980530356487814056450255331116223762409397537881950580031553830610425630281914324353007773254197792462673344690579646168637873625982708244111500393264616395867339543015003413694190337702752422934258502297085959239278294900404061216414541938402034575645632745361443673485409397707510904305286648135815712089683644551416366230509886541267496744048322302526043240733730667550522707388203545405921735315619537944209697069646916586104029539794932478376590816773055302300514926024026542205122612807988456147733959455449518593526478174595942565785382206674727007190214038492703722344250927922455784732389202581773528512170803457214598492020120564477136419079281615600659063738964670122039599355967221662035236095094650507709237398596085957228151025645768008317371144017077848898614960461513771223994689893574701651271165718941212926702467643541596213593497119431708545513995022718900728835376262142520152690777257697947816437430211095566692494057949780682209515161125499463180746657502484036454771500372557723157557912081810626973286751812448865439623754588129654469183386413284745257275657022126429056123823455511090781975062801521443869256547129830198002653601765508895344971233050679932698240038835039274082956057858675882436753730272442957382651744694963502961329350827320225252865629397191295020443177682220111859306686260350335628321910856026602328022530069990767245810983747753449396565866576154715822713540014099888353582191346359021656662657711028036504145096287414366230473545491781495929602312064458021626695269229147630524446944810634657922220556627559747195952303570484085491915003055376270136881916776559800050568887099088858893727636585720510603586777636751911981509606010430090206060037285449390145177580893973334628776706811022372431505094057300343038707262540426560866536107176118564911268507618088711031305174768586816572653705809549410956889172812668330642543557922998683906406968120480556630096895923065692350676589502302902405825433390672696727410893845960955851640487696217138116708027233395946721292939397307949535614442164983728709807974950368499513429306804784201079234239959728358280500460503711910346016210779374186681942436532077403817074270707102741330982760641881299005898444729527559880388883741845045150175448238030386356379938863734924697903323554351903286764298259986440887980490405178704254691081025309571666358647280474032892330895942913369435466806366441789828643556939619277298387469081237021253898902120997968171166369977146916431554339387149206572983501002650183642816211668787626057046838372079510464091199492745817940717444769675522344544534868207339262720782922309226540125956698116919317800082859684147405513300367005136674481830064691446257881824486698761362146715131679911087358960898553527668198371055256368253086743786890973578764866556264995999291722941895732395806548780036025733776526331612084617038550928386045385509143529097000277351554080692844881109426709120512097644865199173780651759409982502148566564982707934398862233995557213207066523577047625948138324143063374455534942763196761044421935977740818662626890972506953580147549916594525123520555080079945097257095735241087162727658595486861300519025842661356268593655204621095802762907581346708267820533634745834110790412600070661577298433159577662801542322252622760760539612772014559782358610798838277249596888005616424165526773479179210452287182708199441566898110748528503190377709215486223810650752672250569094572732026656696541544434701380903795924749840794216637649723476992772866536225091819206088262220527314692583312466573281662572247003097041980512256785293346023968834082124172952177271398958324891166666267538812387286419077402355519174089722463108835693192084995371790121410455452703718089152451748800106014330768637241220472587032055836378854353033228380023022039727700057880218255138390535374422220139221097830866470734255125251534004188786287830853927102966568526509009114801782826282898022276080476758204760809314277834594606229678126470476104054678977785664598803639714402293496723496813071145155121410098868398644957432446448425853381926461946151812170858543915817957743568345523374454273283491084956633458530652692885596571380397387035138545206434866371101661410327649874130543431955850971906219944471670701805623006848228056364356064575268828568290628703294062607498406370606928396247696334597453442275758299960420186361358787779015655613421956173013431434833699712677355318238386839774234172714333949688004841868548356121603288904407378026874071091493310189453583125030401049213830713860055811170824211932571928339285564893494844761024529561036901259708079103626809429291786620818662092409050838348939196438075361059597108293313630271402873647679037876321590762429635348254787162973048219815102595275224199221212128838486186719939730387614995965664223392263967587932142960899472096832750820632620696922487784536046451882281055326040798806235000621234630682495306114421224993975738393559298340038348561622247595423920795912594426633781536783471339651503520731793957791111245663379908283466319898912188663551064139280262773215561730028871837919899317462172289161128266691783544895114957258062179213992556561766759451850180463428570669870798913046894831972080944174994644247681354697162954680789346428612323472002585555376413400224335255340542905300188231752448831188866571519900569426604978353388204194800527944008098321147356394719921934226883849102781580028074548808370253530509190047865720253405229505640746120650385993655906676511114350442823708204363064894159908918736074061898772122986541093042896042990043269640188894059383527323397841729410089559163560663508942885165856868334827043021228217368169309908667265483564229172220559138251173092911994123900006801916017952690677039737401641771440064377673731511965982429165871059157235560098859266777896537333081803025798399170032438435516313163894075117873794019957186363445004122612290044577177807792449189931263934294531958788939801002918382970881442480387190691915140816208935379614470016131170911243477774163088394794019909900513984895680510013512503700087191949840169462373903615460045537867989654723012474142854445104464342537456252451399433480057372734269672318271836990722226039832846466021611761014795682249019579364417635248430446967461629637155598165248498033795754164752415587277816335558454667789985394815502187748760220047899973158481358192996387207274572204643164118672842858744675711446806111716752180649926453755392953597221150661474660805162495131569039252538743540141204491320003654567770096821826633240008990014756094776422105496562214376984142985452180685884852435066698066229367765534120617329799208334770432159388937793648400851205260977018112893246989300935713066176496311831501146956470157536596378605017489952537587696996858836045604162975953332858145719733638008886261311104988646572905158150380987258320205567247932099390289326619230717649791222148657255078722240610663922832412650403061070464699965448655358896312192023064093205215261789715789179250577767554301174023457095744412994066740399651672174299468179591585487865789687714227702844006651974529183547708717715450540235148529086215595838898547765473079817959145545247841757358063392705474523142368469050240485551285939387980440940947759319511215895835875618762576879019081747455941922834781741158164803744058070444896397401338859131306358287875823442338493334875593452624970671098077646793691301376306077980629588469490130499411454418547261248854646766187360204768174238554674424765567834949332162210427742319985043751796319792392743931397552805172905294179714371712637065737473301164863544512654307388481041825276499855876123089846885176603550786201025728302822250365712336753321007358658678698093490608401291121583463944863936142833130151112105647270899325413275889250243987837836361774954641035166246669340532183220009094166237346987214211765396874747036087360248120194583033922101584637065462203512092322349260024315328820286811268571648284621185269037811877818368853683785580409760178093417162084475451474895405388010259271813635508063290344043940720192702068832883156360073076605649894826449018803507635783377093639933291812442556337461523090889157737093849803980623675111260071579098913065935986630536313236264904858739131775844517412658902742587583204501573607230863868701797728951161507373206679152289386038900633285508267989806613532685789677830160918039995636493431561173686759124837422383159595708317948920809661699018968366966472179821164421040164516150154383187140392894949157128674881319719451393118361386000669552405731377008111538941032933417583600484251768406671248390976075219893666824831155822424823376635772715627058980305343911600533620781151444248143948658487568326646250728991937325179209056449641245543339720269160452318172254626017586136717182116224725132832842772351050834366003249247781477397802910593896026110910005296291506097121497471681256060614206104942262343564308882055349122258555222495650517059835989310817932176269175847693062446806169507644896000075405143666758809417561971180603776192787002661437932453815053938697766789034082434651359669971401775990072444703500349258707790295799162212288710683746444462624916776819417844469841084428234821774408359780807949184367411554553446314566870209976427089597392590701987940325646037406854750460178953791517319650187228458444128418516623335230780370421890076201823918821076222124387606387546818211411270475690171428133888901425728419887360471756551524783125761685747230791536802415339156610889152787399381568124627142819729360578462756186707193204217567318721009893139092562741334013799297222723435194971110518696053958535779843513383596391830420657016165089511147877306021793566914178722487215362685127742010584957552937291012820853215204315321348436856390861235617126881259165744042576523920375782150791979269166649137168894328859878980415145876310879700904793849511869908877957195930800580551933921914434231662106086203830765654595262143854994300549997675867785002010610159483090365757267733724808267905466727519305917417103062358995302759412276314448182139135723344653936863543083406170577535092441169663986016986216220985222194012000065319581558383704840254401661484593938535191683146700096939842429910585284053514268385870938485582647087473086538111909577685268337289522084441821369962497577279875992033409768637272853262592412477774546820570082166692101852886702627613562829676402459532315383533841920695026267543500137003132762796354972129378646810232812467249595659058620182981367761421165586868117665904286728338259193017672647634430727520668301146947631909074555446450766685994613599310029215306152230246723358307393816748643497665013368283640992676964664416172261956899393706149405288854101222943096397856628407755270007755473029621660978280035040922871561361465126356201804617073700463835060124401426717056833178370430498657408686306039968084237311146657946182511846657404838554488200748825644716598144145884622059465501122508481731050436878123208454371313513175671204695110096664489762988909793709157078115457529474332515863493571644998035795647856156586345372198832812002181602554524804291175759108736681477687901809336273701067761407707869220353686830587558696618029652098990296992637018533146337568691372638697444018767769368188279807329392294471903509591026911432761500881914657016082336208247525699887201724895080017020818369803060927140262020648697801960801293418275193545142199414993797930207771252966055715249564245415389438973472097677244047155339995769034958740069509072052282169521181631088969107398781809305317929047141504808457711633791073491395391450764593160951792231697017454283823196678964495584156454763002006727873526708820935567288353381078448553422630698385909715871696505951523158700615584544963766575255858935857098775136441862618586084484699106950527419542352444999158581635221022511779157030652216481033172414585076471227545561092919182069047506043660052789278309122821817965538883790229397253827432685699644067884845084983688754662247254735338840951185164148640972980265845671335857748782655069660763106272422116443765250301333521909256211927089303198074742824865321715743997328444290904198794833730144733689079779087986578031254130467858454265602740487581230215399067033883226378749758550699534951019951301693422247766053660138436581134458270650120699288108095186518218303503686918759691280262380177287398041261998988791966725357445405780250920308764965102326933128005720759182344519415216675272055301796171471001378069882681390539828616022958169422020170212030086701053946396990247664642198411856226930807214856461685338056596133255634431534036506095353680135317662675836992644254311637607558103619768735815569368993346583206798882842575935959042567176145563828854750658015565609388172359749305038776296101712361515447377427227361196113864212274663609902824171130219944899861755367611492261850407947201086939156039907565565426206220996357509304384409488769286977710252072961389884087184643211082254246435863258989581729445652867274226143399839441951863337461742191324890301925259389906418446268596654907565641946824463750815602850375333786931908837163208111982683871855852345751421457180461923223173070767057526593292376296623388683259237087250744587916242299540952886781889380388051664746283102321848253075575861825165787641013025602938329830011429219974565742070808587822457008042634614160233468490971375191650008622109616481507293859365605798630215813200970870515451574346027101802807624307952011407327017159799343277101919078254602102006542802748118676830833268156084482862324262383064652297998631717997211009369263821955269448725191790602780811973908881652852171012913172633983426884187316021973008600325647838615490735298030848874964296585052812382401627501026619539011421986514945996470810066318468763424251485462523910880956814672403543783316389294041762231349151619667852263249775951125474288122526218822126276686362286902952912201862128332596741253089404980377215217773286047635494053771960969208152979476483563115679186513883904769811207867709498150806479844861836414690103723831609841555627524887693054274138613332487202860089682174007421684227834044040230253133366955678864736416079621897344488227825349648062734574133264285504530704287680586997876107185246133198470684532673460406782435165589466384989697639501560624866348697800305770631810648657801663406397356463768239736548638053899978158389720988458191347544158983834495414907365910307540350820514689532661013176813711950306505425052024867083280130309294377171914931637328248556181876600860091560922571902045597824568424225882723929100936087735642549443255294305386793571296721015991742639150696509650841293826803798932156829205144480086941901111792257109476352198724005868860296437847053422677098585568118214117725675348835735984382868963252115155466264630606504932535104310434361110604531706505900048749330105140936560688507966212244883632303311688882851356550744389943497546162016241661384327012790749836985923061271760250241124597333547712805840636929138667863423771913282497520072294612652809482014684663951276735080603378623078793355233710056954638908330732104096922890836810413148978672675928570896758543169932597658598534065721939120060703339852463444882230008102083448481132073202504901793169610634154118072259345234586349245983099114744874711507325081146433464512719095726162812066793048267274496945006987304220444326257440743597787304810264360297545385405149881672182875058617348374275955444870516411367439330608615815803118164308495350697565819195673989603489024933590650260259512500480214863047209361905270990804233796825062825850929595472097814311536149477151738341902412799923444290950885961338853968143646763861475847398522068092642372960891608126248831301206253401961509739656097355085245663643335218205947899556444179990031103681348743218021912136287913100624853458190244880233320282215923257733677955065968222610270138956679803041421765688361526420791433681632690147427894421422805930628004037369217158323437675819506567895476522731289767610519195973311589716235588748851684864665183394442202621211125326356157956119449020727999893098757332056201715306816193714424068933625534278047570256018161463647649302826343043806369657872420583156797548926041525462589862504070057257599653700656477547006024160627866794785938102140921623304332234581849738510157499893957686272362677985401528597379423236568956896320577949187884588644717361575189108463639044501456967453747533293220785863373916733583157127469408757679047614171369963053967190502443585196048148239636701169545579828339904404066677074636351752708255690572784117872496110843935259020860691216588728583922178626259773327800100926776917364938097210564964277297436018386006644549899319643616107691507535236768277300068883252471870565645010598339812796491705212515462917626586372101499050199507651308054370417168754585175443525206809515704039456556653364010486807248934506941148214835175404620949510480177683217635272904441711567981564734093011660971622797942869295376442906188546094867141688869462719795656181460218498912466303930713303267034262744571290084687901806743795992476828475898968775837369635656074910092283103271066982962423389650635726230277230298442933841630957420487294698839394584918707254061786251097056451996124752996452126648584795302125738589859801272809780434658848172554826038754522835233725312309311409962785467446175214308765403191468999524734793615972412441900683187562898209765037983940012866115259152312663474703257938751466749600454913126735189673376325092357573767271789486613688636634747706208358812116868083175240428620135282669036759952684770849530973353915613182753345860249380004320305002551162446489561679324505760307512594999013053183657300267835310030397219531023121896610321805625114869279816720515775770053919158325655496314779478510099902072162587444622673924687561992298635049412091990358356045662260006156226981264544094526384006318889690849022635823599975459388235058340152552365969984160695637797588740250685839711399065301523116373471966928902774732401047913435257133193485596862400601809692156465087467733803756980336913937181934175066682584343552212096322526484080481654532842033651541609644993882972624173659630121065810578289436395617433783850120284309510406310246975245636799359718501214304505547567863541265861066046748903960029378872200106241224903788258280444448619799671020517590060457730403847826176432288268846967341031332501981369136252144942781277256076660967395000022589032698235978927986094430802464598937493811774417836680488442773580976331563495967192242174794100145323877257543665560624505657621118405030769409684807715450028205139664410197492771932134819663751586612937378700060771961379683496703003669330621208056999670112600148962960454554203761505375903468246113373724559055454521474477931304224803789592683505871561310573823732351005012642697389908026361509006247095704550165055728108688022244374960757890594365464028648667529022518631138909304073874924540571394280762614562090285558785474425612385880755803323336131179707249797470697800024341278984670613377340639043938607244374899485544430500930541778017517163890691556894199912205833950326732925148485749385612462937569013821954806219204780187293654030911872923605146138404376686786991414046374517474359747452385180773563928266579082079074659741183459109190738498615471045299791700710030140465261137349556064553828826365329127304601508683544049579078132754702379625395588247593903651202015729137612354890241066788134531074839165642961783702293680802888272342155545314247233043265369953320573325769213559976243276935014299459127435506278318473432827871135623188697334242203976246508631790736911549393511101637294630146434806414181678208205063127764338336101711955508510200528082348242471089307441612001687231307269374166511234424106455655163524278875901185273756484209553838630815684470283654254858159084759067198956906737977349421365898220800854599702277929849719067325765562710981801387142146740797414884703519916682054482549166474071636870007628468794816634236428211338237839688005408142640269482440353629738779453846423256748865384582247802564727449822757117064420094255425289388912267115970760112385698721310626117904924230108772973519410303089322448741657968582278373412608465289525456062940208597187456521266562312799620674690161468765129465008144402403954880718930891456860547527152948110822309511318980053769964292769073310287153263357078575726643090202228820811672457539148252662937171699355124338201489275931354951205082298124744560166261206097213106014729064649845372731539415570522929968751115767034578224590615977691780262840661362743411261456212997641168225921003039351068705487181068341369096789595192998815416565540568458373297625031591852501942821603208780382261517101057976546546202723304635142472529125943033263995074100321679932644593044666467753925367162848301912502107089164478957992112894732965469652914337016178643162555784118256465724719747453043835583596519927915564567757577934269844005528989033492301625898845884478179890893535204300105974153550013595696116762619165418900925792576288824718589803514668462596435560474371464485552582826558682427329775315956465203177937679659936365884709971928078341766209794252826345786690520819726994184313867504295576460670674832979337140912411498890572562338984504882232834985322518170099326695797703902933197674571086707695773154387030089029132730949110603620580321278352447451401862939778737704112903237706033415075499922394129111337062857271510463183771645707480986631787207520108921691302167790117403873024250503628824081663256013235861191357683228198836088385984087197923842272630555496061081880372655042178748359174990298232945392250101105564929537783617258356497624580664633199901394723495355232376505086009146799761126807961462080436797601678721402056553629128854910536847085099470986311989955962304319476740712709404307662025041116271834143769474450727953473865554359437711830386086505289935619880018458007861545294306482963302712017706217226730579143798034452946696960635456446335657485398045908669162031701803272981974650894354527794329158834457510071039147792227919569778171458414687231989885852408752713049409967882217135078122270627166502639623190885127854704751880792302149750745149134726495416557744059170971471140684569422859698238228197702952485695715263369952578072661891567953568198565338866024919018353276309005827915269074011150297955190585730562566366082687170290899398581555274574596416017501437951429100637555518503077735617970317063142744823418355221134796859208148816614651801269121691750319864082837331495118158275845241509446938292257942083378644053165984243499960543091725672578345150373083516748057812153042995353358732379089286553866553614903286726966073274051826783678951159898318939410241625066451431114509113768211818633382073399492804936460294427736903146321039888926830951438539758568651631467319434408125449050016298961928785867270390899735631006640688009966747655574879519320288303482491320848526427755006515345585112414542076712260794285551012561319653679708945569836943101308012401849478491636183920207002601195043279321820082187585885226632003000346138792188058391154765681795619001728005087540483873721978279658421821309474627935098937688163520627849661765693812397777337760902262894666042507579164175254834644660788131485334127503709763010372917761768117788006895651672074948489083781819640443555868622776896573997813541293545772101108433969853786479998281822710990961909048320147671215024181420915868371852629325815323651171337440459826051862807631811660284313134373068873176184591449656279331513936831540630179996684933219925691725340724641071393323324016183342120721122550290186192271906171044557154502692653862538296891445411763144763003279933632735378919907206719362306037790824627967659593498069387855684841551772784361328676134247564335808361999916333154932087630394240683107512831517428282740845562268899531619340686893271283453028285749326823536467065714403275782062857245843441372281101983203279227697094437313153060387749674074357873759920152523759845730853334764347732766199047478890917012046140020874480248854966314486807652039441448263576869570234966555913854930764729951188531448860662532879743367337801263006117436151121277502219738127937646483344460489535392834535014242331858738057086397637880568085280270928047637036542118220284674807203741962648124677079940024907520685146026563610047789991932659017917290605343423244046943896544901215640262607051049512327433695559371376718146899708464717109450198652211234920333792244574125486625247921768963248244457696809630536499283477165242814451888760652153247558123692742245666202886303878276865215763837405275037604380638818446808996074720766333854867980729298121450468604372643342211521897387253030925021669490284423043371988625053016299042190984234548074030588481809253058785762936761619922019479965944467956613098260298153104812551889678303491420895272210223726187317318407142782182402536635850634635089295138195644905429038895935704637568512321912706981042241092349091394153925605212268629354088277921475653766859553373127190507332640077157864805432478930475711487529881249814931603922163345195702836634775192230042978236556635320842862335640300261344288975280012635186794462030796463362563863724633983782022454002467680372517757930782459373309371436103604162181916453211476840643513180271716892668952004719074731885787574142726562998158089694022086450562455670743943923288500707437929359844826592367613366665485985813375056975740956330587569780534758322737968532827201011323840937754419328698491769317904794239738236292754039417329706627988988691618697888682496043266977135163315956656477566005223681180749328773068725009106574288400161825340275686742436971339827990576285208145316618445086320797912404029536413166673340537946987344315424794059572780400869764214687783458550607175465786812330481025804922249414780209653485020246197292204385917794462828697871016243783369758989292673723437209593282840008843960606427144391480828808480165704540296828612849518860012022342960038047968115933878203419798258663756201581374816943495973361555490443376758097542236696734695181566225424509693682718648589814237297361380663800334900356624580444045268610763020014266082675678581547771902886137706545311882844862517438198437875571511943318750896331931918828559506773530676254764648379736920725575429893292262081711940239159787927889130601517780073290855358862198670534711363512745421738923935210394016463702116684882031241647810023021202897201752144508671690819629560880929830432888170703673326265592658784882769045182490191916385099219591816943086437675350079612989797122247365441631816998336293808749038355667173080390203555114391829290303562388350334197807437624689948996697629843093757139763349566292683339335845855742895976935068843611944972734318377857326216193045260211009988645645101454270316912941178526130500703047368034174394887535767489453881760970547075221564924880636704076304892418730624598478961949697098733530574228028058316833638420214979409708848114434211756507526775187461772437289050573390015957242897863218765215031307174624162179485256947721066079865116090669645612532782517545220214150069532821911588546868963253093861900899051184148737877848797382329143666803077076814648103644505800355765936141101192433196339653270854018534526376524341192360512187287713965235908471838775103261319573250881166048028233880375159353586456702308070352471385967325321307144720169699585766907607405422375750894180560349371110736556128648216270874128106375400985466520580025066179517596723454331920622355726765921526133562851337763122552851565355162711131920054057368443237844125535350839036969475655962898419828080227982235697554943673854026430390021066660012317439100883603777988986221966925652857208394992274112336296396091974789426205684942479292122010656022604240019745543430701961454380105301377628012484565866831236809792222724299394246188353946612646274727621876272090128113530721586745934571185397888268644001967663067575896345147055833881846033579167582200641717390095592148793571527968053501615530153093326193564307774062251817058781433784613829449858705649140662042175958262417006087701949807242291083099469429667707216387634167667838428201060495433287779008767829239598072242089336166003173080891091283856515139533912424193195791254747659625723253029989291805197880173583004787282614226108075255911344457246321481982618712438561132661332828206253292572745726006227129974470924179246007395524078019869655543241932888717760973636832996091088301535668258959919924702931258325744025218810928278391389125514538280882954383722473317248523877401046638950110250912111135239158501969998349276275354098083587299879684443877939443591399972913887617558746162187454611906564886621755351889390797014738201553595263740393116069685225422680591900979547085547838469159969676323736396129415447363239215109228600706861533216341491160361535790954817779715354325397277978273418541512913791081177401688193497156667617354133989335529497786456232079952678579505092796551092386948782012920520981019743047959892131302543106598406773223054114432609836790398253070623884953204200041895587436367888044215096098318773370434617698349661943130170027625319220479361721062302048375175415062325957360771260626758638756029464084427487405350578466112615401217525574087304506113787778194733038321580711661739500515417461669025787314793590670717323134464360714077972484818935867781480013030109269008719763085755584924667498742320605411125305970059092811358533319984335829799231922233279008890506798636957204185663137322062413331295754942768196538106325804131979569807665299743979743599777984118869672448078457389365445161130493241724608126012537964840788923461611171793499472578840732511523377004084176146805429682401629348536163112604122235308027902380304169438058623155851254450917894119269703867090196914585921619882947103588663011948480936132216910514722200824670855630572467032043895451739267408995158706235552524511238154901170757857452576443975314385792278077672111126445523241851822385624072737235892104588748781796559632340196030299461698671607730878695012806775641941673740509623818668386065725397822021672261697231018997493112526247523565008030506077483462984808439972615616337101295991314299933889522107430229637714925151387009469384130138448297833809482566501524726090358988657208398788602374762345260809597069463874202971464631768440583771540223173604418830995744861056090686741845153334771261816747571131942108562929683135770646417348446976272626164664925061356008249090860223067180865780847087351939775342677419289417078127808536951292619607143115485399540655214552134731152849030446645163849573046330762629501396595026260620650394302792772638166492195260644395195153321116419095538245196897269621171449973198689602596021627963382522499115897099445900844906891073069533459907616841177772530066650111320801538024074822053705469921064133134989247357875737914848377174144196725529982650549456311740943823613730163954380296775246164204838381209853874446015079884885540132999576776686599465949261694274280116085541879289609414815261732239831486144216588141299497572773610425819400870232343589669578209888120063856811170284890129339710229140033857327172489197196711863682625246348830733850213762034468327699643645894561183928540864351023053582365002658708539586329217584962237751460055697206104260730054128418141668423978532106860347711314304417571036141001547647989119123052362821976892348839919839227799573595880021991441532239387280256295929249795282129074139099890920477835072332757004059543743221476178822555750559360855985907565378073854773945468631124846532044184109227625239101864692608449648984948905375326154960077745923667811153834853080755136041532687383463549411578634883916445182700496118885288295294585303626760899302704951809719501403709795112486706813583667510282175761198579475617648947170965942385263264436087376842882871709163322687127709015271538087595804928052041205552272528840389572521233336260115941188058682453589432137251114578213605797213410062458526929771872607582134309422406783919677708098797275113897839481229324325560391117776453500803809988352483185341819067702721814293782852000253551583026675817827723109858495267803029326236623062498163531401065344701040824624900051570089191208986791812358789827801151079316977535564612415238131515167576595284943479739443624016281209776526288520404166717448819349518107882136869162872016263862080625449163974738420632164739500284576381662114857907911436568153814495650789931861621981249383084299833241797160271201981655945568451571021210101963015163070148367549254584082110260897927060195880775239041552929995416034995171006140346068205332669431601702668152480075415563693409311953429768069937402015818715495321761901209037120169891575176982857925418490663385481316935142441456194404641414301230982783442840318298007092560112239900744541834941896600696129814480750921245327278662981251305139868989020779264982376330226943394906055400594024413196813983162281837044410284368671172578560242616772557108973181498080465023338821465420766972713536148925052187888368754142376629058486661972773558430355298482188398858814235360806711488632131645760046883755816687870289932614936889528597958580457321676775977845749233579975601006070086372443935362295914206550623493263593004784008391539140953474726246863746529465386271178696064782883317569299433987737494491740492449321768588655870871098227858001758654250306610576223575956759149209912494459264722406070367441600246317056962983814233340819050533492067972942830480922461008824703829756636149525027152961690141128391427843746148546264763109299755148899115669302042484941811833143293338233047219198989745448159805029720496716384188070289784130897552213431274408465249337969499063365515262423438618279292173255545226569827604307554470240707372032834311620649299550343640769622402768628838810811118693680042881976369758110702147475107399791027730626811423448376025893817739697295339721179016735753844760502744051428914723739584236713751730831965124974057663073873321448881747197078455847357798974478519611795819630421381141911866238482693311739732550078350898575666293694932408995771222631047022399605973006456462596769636932205821548286738829748191868245327549441832253737003022494282459056217110628911947299436958947677117627727063975245625409687716612283874104451580210330028071206993457931581053481106940123727151829028887042806781554154510781694331249772360900449043049833250445031069544388650314557898208956420683741819875103753764014536738441120023978723376809946404144665878459889896781108985926201199707001028874959055594555665323881150736592528131698350389872479452976739249064652774202223375836486089422231839401425039492720728737775279396299507909127335956217137459895562834002758219538507777488783127434846666003038111836741683936218576033539543664949335994185320494044474805109486712006940119799581241555067340773286477081581210529907011962958640061629742894294945310553991766772098881405377239619572410986521984162892210275476420745830097359486281097479803824916697785829066307546217230038847427348850588002062722232619529426266340075198819125122655465416954220823762556760652622327586036298373854073287472362846589377112135308413858205711826741780033222714766140986937763643180374162815140170089868966416645648587329920190329432749734217951593608510844586971475089038591385405734780217542939112218179849427970409531813650045499277864842461463279561529117199594776834290315513205721102282876971601777798995243734010449777806521038217460505594648863605969091061496194929571097784253120966559499463313926729910339904851494235445195132805799997334030569255689610805489509522723234143844492708803499627137013854671643678742778130281494674555521348601113622760074554918611126380882849251204627306324416447762344437180368801181552426869510603155463000910073640100131644760515880074996392728067723883949215546905832865540348232515016478235381737821636660468990115920407816257820873472948182295090095852916165479618464361726815955155721056481354409671706943965134467008127996213807985146636799415297402567116623826971336583378650425177645875982482104911153105085549740603054649030534360693819142513173839524585114079313250498807958351248645877293941913946850370260002997642600370616436643952401859200531451666294570066728698589967802169282246546426090961064624696668735932163225620436659798456125409966952668401884407986838074591065353004214554713823032697717798734585943496959233354380435589199700623738238329132603411785294440092204616409690467747179219047333196454185847705340928796738159197069965544264333398001734115723098618218661921712504861386797021637273450926303876065927777110660245789591515313668274208359463788971183173023145597830067548020403941155154951662352824417207015612550215336701639062114386774940882254738638422486290316630388714469540016639235895363630272142813674966597566126816663252126244231587467235026853861452441653449456821289370681309661902119118720173151568812011334921733526465075549349850452512617375795633934759917816818132744070471456917565646367033993030035533728798929448393859913182761709879372669381743010284885294633522223946118989723248571221593937871107551343627496911961256497540827877301784369552847979419322377479829097641277603376096558532290615729366653536998920412233546639952832749115065695935850535791149145434042117553248428872539128808047358985302080134414434218611033356269761024331091070407251217699408540754833203663039248801377112892869721412033375036020386472618153445913246656428716334561943268276167615719911274384476839365165468857774212715858703978172393196378041100448023047403047474899294740037711952596334701697236236315133747071757236089358712285439465359563819999601925939557315557401905106425526857089399765639638621414035844014092454946676578045345609058503573738054521531237992510549209718781128487892927132198194306851851827355980798320017175721991805545439228758528489554476859237530693962185732454260998664942282440937181435651235153517224857840390341289600289194453532781612404486353978437583818864724646120445593780408932387509040735744689788093322752177715071742804443939972998628835138959242400317257208181760230840193209488469022380163521989517327757121638391665761326260530774724069438776290133496981302939524165446300558855519605664752931768859414528691113904139238766983602861239033126898104471511383076112491684389631894962309353394521144879317528940879285463955960365523915491496012787942711187573800294744829035925141525293716660517262180147281291325807726113920056547575589195615638775393434694823986077159202273834563185223596356543141311070987010750089776839965637379956467398791659654645046297981433308343353089720669343479699478369614284786614512419418977657144445989587504181858829149991571850870818292651863543736150499005750362107173397949043673057064132877024565299718001320330743368421817480718712209495173297591379827840076448564305993454449882091114764545924355964540971530508350545782079492000749267796143713299104246396600447824798958446316835782865315467008935871428544404637876192612261539541575686044122657714855676560068803422785728375286010777746173204067970602909471360675438376712669466071316078956825553079790313087529142262267710087637456606490832090640096627442404192040308035841069898762125890511491470834640237163712925916347863240746918051275834565422431039178545709024617014152786775084428229649535534671888867835819311124259479597131727125247150281424669255514598420297227352242706065366506805971063675611625429588483497528361772683995839050258154975532039568624693478405151377900149158014769397460900077026718702405567068893911322806837573081953453029287001257375686448340648038581030930838694215025590189479940022539446727494404752181148134895853178071660650993118758954310707646350750220280673156221675884044603602969073175255669708606122424154511373003023991010004324665454562601494391055532470132135615156864374525525539871392673448766202752606421147934461275940503218474137978243385961437212343522549768440551447099779580318534785851489231754604918652019948470156172563195619303792146349629898171597765840712831078672504982160004347276468974048897086205649463542127537990209209664186285702421150821818185179329531556148385013639338111308055960748737308016106301434279486067512715088304874832454247511006254049303588066223617940542196004084678955865642208040672285615941542334569198474920022889651344782801323866288495062778656179773879459217829876637408995420449155359479975081339581612435834367754729995259382178654410952000738178955170983524621150642603899837158494994052769760669604845058052584206644659266429933864924893818978595019072036624796584938978245589521915819225463549412684663447542717436581260276835045610403069398612579813695551417432611740015987312112279935371108667984957945148383445703138611946900005287277218135354565377178491159258902928334956738187490595869720980065141152197906325483842949280658229897850314687577575418223919114873786917527400588917757160240566697983556044949365573497531085221059763589265705675016356960968015629191062672513743513659086727244178324538951867560456094993453927684791572662907786030351009464009198588566793099923960202751084464185490920026021159170759205044923388698726401510357862250348195995895907802484685619416919586961151264194591117897756688152398317971455240395454754885204696234045452510540252630171622324316649475461190467927549556010585793461362747907923087439347224317995406147123461067574494785271326680376050397999381350009937221132249749936397009461191738854023080947844783774616873841901484340234940052087360023312411401947807481453435808689593063661273002820939731153955722322598675703435228955504584158376053012148518223308621903598638247324032395036977264860972819174547688113419036861136201295621734056994844658000805524649591891272257907029062219741011427269595808880930401273444990723187414210165592590559663090175865105665347373920154461906132234706007236226775717082236203323313793623766944650567419775669823472464335545726507558765196553802485971576988181427564434659189644167259910092162360061649715454821094031835937771394547009965690129330412680335180720425995183203863863410090599166396163095523363286522557642023208143971648162588215066005538020198290812608961009529667124005053557452005888759300563720066834379793281465742884070130522653343846436872466505245881146233939276630578832926324933732262046814020742868045672753327702840577121871258323484409514078640063521388364309982471661147841642819397604623897519176370312393722667318477842983656681964547862395463508928330779035298193511259934206356029954332748576194138944740061150841690462184876386499825394511676982216972137442799410122369258364810743287794198502848935690484077844652328568939924075033280859891965427789774974211273213616476979457830369438255116259080903744595958853887252003514895943970088852809456000380376278044770103366451135381337651795091393512517394981470401986210133626743396625078644554408690218165174452464264439711544385996802860351203443025045525327214067520832715207332929534747930876636058342109779341910273427677887312300707466441062584773492611380438879443341750160098483761480844254923567894898799450372042741720954118981073155951914093590391534272086025028415636212964482259991104016215203451415387889060798592981586878196481067786946941807955146436576472444556050970268905845247445988963103630780445196758057404834459142951501633307031469607704356731434384040249602522163114999054720850006128905119825898823194867520111616681709863909002557479568507370870943863206792254674733533453722258213543517121111726457408825775804193921085334406662181337253802821798135449860410405372784905096492068708562039202588982862842761543822988427109711835949100475548151081123480685291241323548285381461763770604740673829162494489942974141469988151157615451660811855663525878728388922720115774669468762737727780683285296756294417247292559538499021910056960891993946586143480113691345507293036925401532416242435006860233535181636534849755771468401509104700015132768874413887250645772679113225239371247053557151674450109154530075069503563717552184775630436929474974392380477891094458826156647768446885882944276207682346728790435059037771814284215153582208128431276893151503142244431733266459678285609935453643187357426821656981898292665186436746749092435344092672017060216677816316572735098109202631010730372951107108198983260985309032022599686963513639733429233412828272412286101184114508971360098611558669045928624998017951418570052651671268491058212798363414855148850880511225735467661763974225918562704115648991462832726534840518265151276991841171601267349970013354770803731728827585279887488458882184305964504708049059943437151293861992225997853155325453749072252031957238065559846957676040270924848499192153679592892286157573309524199528606247178704061862102291073983514339579559317895202028956394199272851777398612180874259523776100102886145358561075053588231139847455508889644115633292939414935790757103955535344557385079807639217249752311156397299328833293796240038366749346958576777587853250151115321191422805085118648143202979346624576354993232374995875895562954463702814240429135560682976220130543405143449645944298995858577620475756370730079666300933716193455188890655534927696881481430628087489167557671820262001312855822164640058476911425615937748715108260092163345040197073217894517225934016675029209235419461824081271610912902984560187752866814082643143102570252482145807020194807458099338056373961404718084050635052132136209769376530836102013178182327767209486473451956872374535566287028394034163204215301370259067577469577107876117883290500868453656200553241748546862029146223115489893640819208966111852002353781923255473555910198042499407604918477455289597646319123490919432101688872075042268308227435616838282110717609822326567481830335592820863486778254398840509773479436260422575640908959342242604230264947111386153213542242019155473890196117782304921173149268878206438564375305692844781300784195824377847843853988828401247527487059785934097222668490522839304071715443355287717993669674911155245836595350037425460893022661479279337553059894287693012850489579723297331671136865488368991851730867517283117174760552097740627872393115184996400663397075208935659156603247005460870454860115332626721600255494624911427447784740408682039979434294832105424272954413442799827304669551155589822478893568708898007115109639705353605506348578419067524382068202356259227284118327828581268518086087095451258801288610000620692120620598287254188168405025886934447661239013180962040343367672882789372598143439089143922317238227729513798510238077343687177337782518014935077526486050308509849485266048006419755841651802951031445240865354219893032581829555819960776407901055226091065527432236145715754719364633880842514674530762784253761111524806621040452282033081853957353842966229241340046043713920997147466054061064277818991659996230330855155497723385091083601512704240076308301003352078933722119713001589830588274213168817791683710702955581737106213907983790105546385078601712733520296616531554131972635243725113748290959948765553158822826307829267118845747084413473431976265061337886835700762434850579323246721868213794574906462601022539744175157046745896000179410642956521195166587751103733150304488013180124918844705894910216117692888421502519717548123057140278587954366613637997489977258515639479739458896056125285303609406876963090008661034951792499933788844028167090031203849009239884198529550999506226190738557073270591376450592933787650207166993874692831197647080442355532956274096443024570561772037613797117039235857935506440089215138449373178443371605251164654026848420965284747242572416863334385046950047849621294215586359173067384096828273528142585078525091385231673317671231889333433848711241587848442822028669498411646083614297869427830004749673609402066351485732209977284456245163634034915202267193490373530493389478363601780569082443500607311413887521487685814990273609529868129103326672235986747533272438174333561190188730535629766676831237906756864318583963206282865220097609580588377057577075680436274304726776835765683378523975945409895550917358955672970921752921038101277792144069965966155308766322087876026465525049804862915073246620950893334058009761777390664363563825407339768158101366830914242052658524937429790692555193572242200917790025005138456425795957636125399135249066352468812974522638475228556342192023686420136403243278208195550920961745481017955485046000471790798330665845658710502550774185083381043964873946298962923489743654191413066329268077513207097829903170687909010544748350113956737312275888448684984120357666184350594421165286182546639460279891756724538044437886569771452217549199834953772383662436941048931931993962952134618896121488678188949213681913903693217624541965134124702320129120484502685656408221372208973654968485712407204841971534626866383754504619754201555983036852885888943831768393022699446983198978979926201970770073449099365510030580190013828458303537092418395734916453182623697250455688259913450213533802570841268620576521797464088686870770543649977209854482804358536635348635861492459332777565987669698257992995618625675943177173805453590168702949188716406335200412943033225609369356296594339015737939219005621760671616475153361787917170121590435564213142434679768107947929969926203835296735146797361031065104454870933078587616826320218188009434220229033757320810288359867960079645552619584346767283396488416298892850569660384618433818352018474314614788722805399767109513804362012292109418575180090260452977167142373651387793930530253017629319698960552124022922597585109717774106489456969284613262581156443229668205188651172394334704972408203128069137091238177260786178773067211700929005468546658512686788457909310644828619681761340720974757824060838296321802684421566384279397426790872264056495824094513403406368574951161967723644596028593325276007791145728784341172434940326044400673872056160066191864820667446982697638263281134878142341682223074345285207403174239579644805232618134177606409625288505773653554171004845666986289590964887846746619432343461240928435053033152717451486731060089886263201861747713607473903697359544620347766914504148106027438381474912600223969205499258639177721917331199835032264618896016217275335553226667856359015061672786803375077186655054153413257274627383864486612580146740401142167537146158762631227228521247611539550158305920943442000745575007139751235651705070690246140762028342489529231604829521587157867761577191746325958510212448670414865298119973485095249250748116379123281338716409080227693764479011100290166217678641849649091737665299985101042071017400206892970373691159835839600534780358617746790173504384967098451870537676153347142527108367574861095311840079967054555547816091189674564224394901098461230029249868451675442425970007820604519780801515908392560129975862050511871787978825640713810264130656143186226061020377651128709385395952724029789991473066599578512701403604979582262036535148838711252167277147390356662298506284873227488892911003712249618901510149940163692076108920835085512919224026967335069770028895477312151986679323107185680365245066036457735110852479684361329089376443725313449812126063958064910247102940809657371171643232288685525747858525070532987893966074857397445040296490089409266323849892976572966795480749216031593724858754924055323520971875107149324029916491661883724610980460145141857915449577051559137135522614117435606883289751789488124434787713940564179213305338448713507616459862069843945593495623489634843031159434180578626370303886548857203615213716546076084841369441126167521158882551414731333330156389972791697069198383296391635775682421590368580217458434369521417602280577575565735586394687866997690712559814500114349024808743318826884462350398721559811444842793458782281964874328647824080898347837114808763122598923309866730480983196677426639099443318526111176529226879279577609117117562224409191155065430436240914037045973127359674849095767201382234503579239439293932157274391841483092073300285813267509971693322106607653731468612089920945619724926797472866836737265541198875633264209248073811164929795239581361011077514076378850193522398101944074274758366802661892778655239970328565755205833460736265732302344531036040356054518271999624801089709346945554875662969655138343065005959958036030346857712466184496738922109847098114041834522785176890885836427504141474103192088937787528582191026338520175846883694865359109855757478822393515410071592916667522650123957479659447351211312081346502334118580440904127952415339163743314452470370610781983960141311519477120103940489474050643797215221373583527221409715893219660367629606270406967139172428281593153666469078525668226392171690196445718189149058297886342794606002025465175453865245805285341520755102573731025569240510400629499506175350669480511746407524976948507230933738190317191220939735782720337785037478218370384760562902499411561042010167093483694906930127019885803588294462607310200153817190026478435736237744962492308698556203196501290914782164196950866585236911417075431932329888413358081087542548259720183684878975379214337494387323629611452769246502272997985446580068663825186610555961892637499503441367345530337891009468586758247509400883463716586461447600514480296584292192462194175120031365306617187351327390153941521175125037896623852704702306974533143397473099429287709520414821818962444788430523179936396605246287392861830934517216021808461928954568301878165372623060303098615175249565665234619165025469579408272520245223630780459055079956308334715929503930873741449381824350187753650892668398902047454059426455567428388352770195079112836789648051565571625869052461087105892391462472677529615161313883275178392106027074860045823786780616705929598105758233908661792624608926588605152659433878304733670143620096802375793912349505685606788848391579170846267830242715167609211732427559147914018754522854327418116272329953217330675431359042319233664263737418201737465577316071065214479779716518517569725793733566157091086179373886578141623180264601345262552124806268415146143052668269043033443557386564055171014839474052153295485413323716456884573525659674671235513419653800884106431116771049510072014093284984306008955012953892203767588187394706831857831187967504264026536628923760265413068854167746654133542153032704179658818325771591155280976614468894878080599001724393327189444047901751279322877236882633437772347752195761227916170172535099087105865565592407385883521128353511937271597734594479268980858953605510790322419839469916427134353674777682552886542611381434177902097157861280023736948066268515150562472431933070688413281374335010828112662286080266573946821594881076495070997282225172820845520378406147065556449217191293377169890278316843818007569736364382408689151151428612842149011772210967414643998536290948568722859729419854618179946560884853069440401465753640008555904359996710258894897299884762579143957920856505834942374326232186368853214650859296009041205872762449759004648537349604892339792338711627764070767596469035866492236420503206368606326745154003100735734659553245530689469137363932901553250826014179986523163189850312509329913283069696808150795313268416173300993636426031299072194804420347779061548927443522758159679315858574901752160533118857928500326287060612539114135589336522129717480622441814867317223723177628964796928900528186921791969676447483164743115715656764275179125659696894041499022034807907763917077843388034709014773148221708165841302640799350873980501072138523092697137248311547970701009243288457196702807049147619995385220942340428635267745158519762566984626605977963140925843823332371000438440700026976725070712559803144833784566763003005479392328745812687699397710958719002153691998848741276656684259476893614399184478359819662497021378775250411008223585670407961104541601545601806392982297372607135877388349246885230372238041696415493185849658546227346284844774608403766708094416072428058923593004748587403156720260722097761781397908239578105456430461525098134121763641001560171263382963073969143010604970087687380639560812128265980179208726014966477378839580105038794511999712008787679569072928763087223295293518145222335419412779535096345000925043906135560902452619276046837272745207452592709047548652408242105652406269564084739506830549022558095897406746923935951554404421939851704714401392733885559236192582804467447088637574635961232953052939617149918199023292625621554103430985919140225806870162810931257589520877944369643126339580744633119892079632710299255130315929462039181294484490964864014113065700894135435961594028729751880945747552487707933240486596691076122340232068089347447486190843201626488150933816647337243938063429549734070084552017648812857743105344615705328786725315273791452344062999453551197551600026822648482206277587980054256223967429660906955019584827951447524834214267373099172689860438299252736000113651751377113617910876648138919175833469495038841944217989266122843183343305876084750382209636144650478433843767393520669405673476750333289151637727958269017978376237907697453247463849753804108636575799644079385163241565454086374447012396506512410783097634235166392560697877029350382207352870234637650280675138441298217539731602540322193573876238067336051123593497589251899715708292025157077257805543646940777652575432228934984384420636606266191480625727580122862455295287155686191844539173144984006838988019142065126888729506880401396349175167474491823457796079689881465819491502332216753159382413410503263681314980813164168718284997687270667137485623009233006497276821121425943148134455340851731635331113879097956540991709984586131012238679643969284145562308368607502317965024812564365506061833339734263045861765918977334519901291974416358049251801162941427441444237359718225201619900382149751246568161804426291687300043375991263702316104992140771995662387569248372523744103724503489207687471001043919903684760293850728540069253025617616031289827264292301821862165020344913423776499053300767563061009965480204541295890557336757718428604827495112440480566170293311652672025767416612769501842417734961221467632604443247568892333714391181499165538145532890914045285004345219460972517281180095847008915504675642099352545290449157293233651139291824059848442683072020636197704280723002556669854664995282015442545844604791814139357298148756024856259796426832557063741058329463686336165105812340452214039315901276024053777076363312555473435798063808343962392213920173253428629395530362666542274582218723106032447723917531272687512615766079243462708288710992397055234579468797076030172200673152581568589488444066869729477737487011914743251961463601810891890668390250856060506089605156601366134981019600782975050938358118893653813162892318935104057159830294078154077879563902387193549964558501056241682384975546204432145782573439825510118331056597331836370108854871707786817188870737866245298049347251753095473895380860897725848656191140088402131576932881872331531404906901191390126955613824012360584857507156572523638887122811063899879032216881782263718191557956341222517341064228582917494426748693071760863602450747734215406699995416327268634894523451354364891151084796974410354605561793615318643376765485127701091427028978018428256195089823587205832169947226825293665684051270413877394074383814514474582099649223995110130966199718897326975022930103510037066729266224653832148376835704519596212768384682089993753472752064118003925588333668463540235665523609738953712073640192203755506618902084661644760144013529603464016912074500321051529151144957470215472178979071632271750533746954706329980288383532024828159309533273357548895055968894775295438727547437512280090758551974876875001360928083837145958491149918196192549890336817065173570989155758549484320908765279020840161179394386096490387122684148526028090693111689077021794246771339588422622178732328857674493968369206863113440281823297172945347699686182694939463771845992975256535294752403644069411361591599384803642471749926506804659870356962607752105925551689922047470851254069471575614298352185764027853844357554603493542661921477753790326675293593217955173233900847543052731223719719281091399964924654878003848142752618935540025063638251148252276415476736266812496259069141426671265930555398427266597931686933294250516808365625354015109997694924173463043635941024093519014225393549024869232198644824483905351943202021212623408678578735642439177974974080319303984206425241602906641988050911474261493802507929238330860631647127760664345024554753032215530881995448223330089141412213371709696460251474791405438240608283189942039082516114116501621297647951377713936994091815167939964239903969878083456566203011999018721348665738390304235180323892955630971794858583437670055496892094000057596993777579961788973058015358173779064690151996211903548632618139308058788510958929985533993162071812763800603659806849456838179710093340743547901264309658736179453111392561917176184338086004120769015464010811456657433361603257085124803832259660826817943915340227399219233845792559886352483945818965997711890992982511577162681219259594936774273206316522429276449085775952373747325335757424072769215236139305756296864583529313838517322628474011427002516389247126155366144300212456368429201807373442965670871329802545952513712257068682441149557555671052950696038485654410663213880356732746452408644265944186406358469786996495959768042968088932629848285135687689443702635910428446205957794348292233647126427525697211681315316409393135115830547977102505339146150023689262234626590366892563957513438792701469967745457758981047807114651234166065239594246158617928441304999289452989286031115033732512785504463721161218178957253113919944321048464311660120507742234783460237545760575379000402913031255327164202468955168530317888284500743332562479208587905739079065696984368747250203121019245189434230162319189682414105989840849465896479395348420854865323622770825923042131817591979579879673641986673240360526918475483780528015444354682944828717000618911445110602133721144319635621626291536463813307497512589537296836146158645471837490926006712441651028820564569225521068110683109626329773070891031181427520520377772317094056259354883893271246655412814389829121039003443598740439970015682932425868958973126872356136645874834319401174429337969081700530147459878035705205958894111687127246868061659105778636531222610719474373282643373272077418358999592052328993644550765309972997287873710115065007417348005293707047710220635301182867903463546699530841215719407608575245810393832683817681807353229722524599912120296446642776917248177486920285950241741540940337429049783447500439333631614642600854972979477269280989811107677533221432592917896530999062115372404668899246068265908706981214071479369246815521863145079539099720973585937275884478647666321726132223655088926683249584721432824233849730468423084916442716971670234246969930380567905159213393664101942785772441158333611182043938909165147696305777067893557537499354598600000387656787148420801823022612154894188556171478344356177289046869591270318281340684660125802333267356231275810551923777438195797664352868003985722236504344962395695838332726237873245853525708905620263721635520399862302623627685388603595617721003356426571973651746026060902136479167548390185191859020958504765629409684290530517950881215487488086685690784845841211503480874961158708463465214956665358456305404610553462590655553624251908602415932919052830510212698516001192054782939743928913201348484123328595150160289878198510236373297740131979649898914847752963731414311945004415544896871112728280184268142603072238358269856586719581743251973906551847025142946567069356087073097949341992829093385452804325032848335670260748781156524510363472555780691598191553681803877321316220216025181435467930439573811044574679972160698261796232022401360516152728690800631324605921826428049048858231978573092072285520666325524283295394459273241638964984232058230312281223794856548909324577705901228915559463555694774859093128458534037891715524542516185979133183681312441288773310012216293752330480455844577105985743968814511932991592095451652065309386161837506684600201878101760337877677828995646462505094551302655022875484679655252864380602439725939523649591994610731198002371769064403970180426858058724348644126259703285044050660820811521458229073283442917211910405419708746076849534805590224203990575775855332712267455650094365035456405996035718787711349946371856630188380260371975701447747894223604094288064055114053952594900690469638302646449923496256337460058487916673020905150691868237368079364999925744835890506441582488946204799121001157527124918374287510854680536257709777230115806825467096293951781591332861039750482991782379767004968487266594546960899503267140949804166763800640275814239287760590306537106799336800968911896408874297866369421010173031506407836881975578657708193993360284282290788967288893554232672391183113042072516816674063445356865822204122134523200446080399946219553655964256779927653568531283874596907875723400356966116314746374168639464884274469568355853952212972186525791025262000771100752088179112787464424351934958582926663828180295312970475755508042727702186781864985844690095133538023541030051728772618354114773563828111279609981460226029408256384623589601799552697162524555677933801746520428971968487094933201034188905455805311649026808588598979672344334460902154610345905783646106693998305884428946115699108588188084017598969499763059664728574641971116711942274555638575567129427747474213919990335889651507198892038418581509461181513172393485134217263046455422620759365694607547948963918269644947444836459858680102603923965583696945473010998803361817385741688064835984237498141058502667281754994050849398199595566918471701360460220737787509906660464038218136491141513473254358702797977462451836370399722784806432946644125335140266569734437846302137061394348429409392225857813362021630917686439283440697583524076635846389726022930603577769869144084509204441027646266615214039355524691723151678584171535596328808091673793792725030016218443952571755948504472879089863287841206631232117271853774056072888841245819116005552170875067532293698360072366999831164386827962576760000683950325382826601898141763670075801661308061836442715800341646448991354807143836483224041371132846886305174217903456133413152606079258184904114083617946155607724027906913544111303237400250210294446321449013946782944403364395878361175313557598710221517159012199639568694829421899176602862467347366088446941515599213506621731508646459581250943526416771921060355685785369978865866190234529136544830179451688050347195219686255867843305867730665050490982481560841074605085123668391279494554123355074702809592774876314525837702423986359016678808199043143162032196313265104629514595222431285123348036730787865009252642433544911738528977369360982876863508320862034244040612219662710112203567114214323799399978497164396308780667668504139540467137282180409953289384695995013346599378046016666588034429234928195017469499416766776663872921414137232089116562929041706690469824569969368219722550075860965113330208589471056900408890944006037448903776279991590147520927466185983167097902839009820200600042942090186426383585575723791895881012116680210658845588320755557428122507083274011735351543363712054350505107695064252022444004596887343611864771250145332985313775838205389204817662621470929957983345856115936911526988249138642147299592848051340348742830968865335024544984844514458233217901680407012050974206260662659194437172764948799442051602931908822746894696175904108526671371161825941053011301869951686159241245409577515870527880844278883809610891450268983329022065193731883628950235243431319523084314575310927774516545437916029085330027523892650336549534561811633868548071812235065587681392743807996115373290394288671426254086997733770837808592984596537902722209338542191438794223419122956390590177307626849840531916432565533543024874842844774028329425831392128465801347832834567948322269935245710961772332867992109479816139136142204432825567299728082103204346168503937603953939281603036545601493003278367307006042643868201245076714931371752150330561367464321050630976911964902577945352239588004342194102863425434676736106443798956947611472885033885462773447809861150190442794612546053499231284314273928609204178016323006462809941076034225046280329147348939971377038990303755001943039717347320940962009826277766179879638037017978980769172422472215599694248293472776689348986979494445941095648158575397268759761785056362763424852002433435995129422637338574140305515705453881149500133801586675314111688765216948119781391551611834778489497734010308424730216378178521409153871801968620400949608942579173256268882392124564021465383958951126557337992768487502075172063988665381922829141950155645811736263233517316110191516691111489496625891092721424448443163908352682549951127145666533930982024448113495671932524035853920123231755990231092658509722870857212916406579404586713504259344952629779078253143930757699034061478403445143098827049282941600317804547981607482242214401380192517370424658162358157840609929272998829379262648196730094040530219752571340141875145199932690657227310304823187041601955048227829965930715417013844851476777851395913982830572547313723915708494994274163774875837282462551286693266129316028393351825209191350430698519295856442976861076106946698413646910557668516532026507265066162006895115497035137346543631897521435520007776296683848317976966296440545682013176246654962059622498661666497792492897954112870149260869039506513505149899403745267963512662583197946728295399842156584543525948256838993116797178300162555798660286272634101357241704310640022618908867131437016147341154721582710011400201146132051659343296155452462723657736368716050414642545342427090944942658970742136921731213458412573750859429018721754930913503497498822895370093669626172229440498640469838990304351765527479710041416772199742238607099496485244561035836137178336782083292113504921072726027292617579183277056009315459942553539284495436954387915491296718974493732733123432698097441858032454218273453236503849322155851655223624388416162147394450118614774909270368481414473009401086434740327950907061607762998972375185739165184952692853342840159340196837085956537257157145604379694470667133330865182516209263529081546955142056659761046218359336825747201887597086993070932337071290767539910693263995705628452569332095679362835968113340610631740087028027665927852841407395646395402523910486821418633186797303168555054417732472786155893007434209390348547221668363813381762973097025622331821813700964895242886150962991294508494241532940531078588782844931292807578604145953512079963099173376136926041304899197503565918462229904233789010108614306837488864668801334564450600564010316964904836879484876045420083760918838731052471811738217918528507398148945254586365559905338967738144162701582673871557644152747890018613492115537312847766063627709888940783383354031373879405879734669287037950321445854646912256163875264218143828061242881008558157284892230338976509080691615919966847004356216651025265712091450513459541635980806211265693280639283178601280462295168731411498459346995410044211477370641673740311782402190620587427646871193233509897869552761883043909936013126029560705698592144095180812868473231889763398190550911120563921540407801574235412426876011439393966915181521924411255603185127582433860954118360200005178005027818237435702891881395800721193068760351276157835835958243627227507264977171755920518053618126953023518649794252587556858533134451566278385521198613647657444963416700299824395991341562844981452202231851493713983481254976167037887389921599652720098904287500457450291582753325046034852340819426729965141524114244726049642241187060557846329563556578488228868657467320828790744409186435298001707883663390858210493598038771515031365262227881301900573750789176037806578141684899895603128534399825712342367579002840967440064251442019916317820373136522417508832459943984137261376341890968842113228355970759161309814555937148654489469032148938211676187189909715213371411483955796637868982930024894839825906995807000257097571250324122690073779641450028235937243067418542512814931886760538805700454692069245282510218167350832256657372722942198360694949123673707510734141121278537863559173488201080618219250307981407477388881849618683277467815579075526844778101967735987167052691477246368775590339325783534852478547586098338939480058989442550466495421280496398048448953384893466180322245152995038572150704186496248697753046633136676712955317188541370314790994987079582362132322645607723668599636576129842412377934198594987139192325778824427631564292024301242201299984831123580442503689667095808119093417417639837637446590083853468440290982659579290441200654442703924552782814497283686475272515914443702103464433385369792573604007472728100997120765653659253696317400167211609600446182796922865925981082076282968993480326781513820065352408151095369294805237129618395302396030914049832194748590287354925348380449550714235689119427281021392586532402026997428089724678495521148434004089292698133338730272197194545139328344965860929600899498802017321447613848817265522379709861013575074812938148656342023011616865243995757403576908448949789492177885131585782557637920590781543214678575161859157065208207952202072062136112362391995271052805523785589726136440752383678543826873671978482708611782989199326005201953762637942336357018511861058121961636742519852319247815340835280704018077728363821794887041340778312213505677792918565379343244088941656610462825177767325533378649775723605131549971647005181521967710115281127595890408073598633532055722663705962161627372558986094625995629416032714126218735133765111286157267849725641350694641551168147838198682101530128251843013882704826592699425815433230354651997840177303907792120682497492935461757722077036327724839668193943818139433236030526478781896574995000613278941425033119463302611045607415308564391878723257872743153444288605074579087241904872488025378696607797576554685346980376566293625334187573008817339809456781790820057881106967177288147362357047822212772968982325485097190845365572201453643081405663294723739164317381958650260512363929765576137058040018775146756740991830146329409662863637786603520206735261512827142270181464838701046642324671584238612573166326584371636709220781246354228481301379675115745919710060359515218877821407206713067642985597448199707650301036017618948401586908799480170545674047951571868819266879706106505912916608178509877332277190331190808799747998040116510539348587956872157504195502791884724160819012213310236278654303692411697579243990525728890957692306391507130757591082480630219312184119689705643678507263618405477278115958739596158986140981805094288556602178746220103082576158439470930997172203064563196620829175991780740183541468518981297284854696533774755299818889706323505032195822702067616283786795728767819583716918329072577318197279854500182262528636274862125767394744862174610756753327787337255154415589460544217317421914541942972037893014655743105292691482958231928482876564456712649127955317989557433035766850234016162562750311763840435035240124825695076515559565608762798563908552305255204541700751111059812266312506928962583224046714287409867373687438101084462972626482134389445401384043102294598686118276463945161840245262973307877837121004680565072865353653348004845588781958818037890390141541938645645924482606800996102701749765420786491364502968911717859143795709006403030425173008374280595290551903608003168237677916344593707902723918551149834535099296481723848617456766188879288940145034030301842542910975052513518189591690476968380104312134508662385021954021696046875029291763876413400043040232828813453375700621242932426055363954286195122926154215070281730250518570111290456838651865659999654093746858450657326182277197077421348468946758596734201332871438556412539033189040764417811327105147650002451746504709416486800563246174647171894029484209613202963430864442197826181767154157107786860847363599180524402572898766929757923304547178990523409264565993093842025184125411476874023436108480922990004120628525142444956280681586604866857815091217208899968584312893294419057577378595606724060619579892535895226387928484788539863034996413987976772677889788068236625102392195031195643741929010298675029965540737493805908437344835327053213761746894604673621392034680861767417097700208586650613563414448694229927795202869285791711207297488997124775795164935603504207529975336541447709177700922565485754936872872512564759799901858853001090030528918177512580031722398407188297209740769251870740346878420029108770242897143528846400391194884647078029285511139490870485622557317095630372699176138405041521270793932348862473381816459626108197783603486429336017499965169211201297700152623294666813320201964229573351188173982416961864247565269894149385288340910935644461914677206636943097976113645772941964294019963419405730975207086937453817011743512607874694576784791944506415904482959436974724843537195703317084455526874603003806413037795730985899041514590728760478553082053821618751886812231027032186903752880423593139605349221142798029420164956399580966931326226288607174017256105908545901945716440086378488108316176321340797849489217139623181282914399239466973783719013887806038848655420341641133544172887706982918082370811688971270972757575087969603344562017453751427944241609428005048573146877710403197985392469006480064461011960577414638375964491624493684532931595423890359287510022220209988215839507863709718088939252024153589011384836611979964576052574658908164989294556161077108361253470900420772371101708006377823636585615336781166203475600221021582967201130441707178387368091776070317053751208879561413869496142706419711521337633461967893338930476718312393058484365703824079928759716768985157526995343815892975583793684112984231657553756033970958367522613678308114352348409658764589875951823661811291039713665148038405704977381497324658991772754288222239111155655900157788879742925791976299226631689715874896605050749026782734354936421911684716099867292424162624650769375814634888851210462475043639199528837547862668215456710818739668158912070655799902925888839039243714657711477369536090547482148151291045103408153795301824683707886748820835951871818360889455435004017357260509174049332184731502611124102854359187079846655129855399080477803036819430253877199719207403904537445766254560851188258738888112801525572824214213343405489378248876713786559914311729968955488539115953803592485452149311638350287045512745851486704191882917589349509296693242881608683308902506396622569733441018032797606145429741515134573476298482092135442491448868664591355375675807429522344251450844288750358928360096965149235267219900622166034217783552256134598930796675520670015301859757111705040458870951448019954733613825562204876800131974019873037294542591214211660727598132132457541801712973481371094821968672479965792775859208040121326701338072690168019821164281681893063615371132062019032561667894376336053040791673313334728095608221744184776269255825499280844312165590280416376106281062632907953783529318789313480055707507364341111312262366576177882081345361691079343136945214838171528121340294685508549650112198746670379418505940376181030549012899915179545825598699333692360999543153448050367703763320263549822926582365709644793218539846558935921278718843232813547114330286041127613382702505576155981728061194677783005222726261785674236865091898700916512079792153706325431291613550876716576347371614011400033649017486636765598980974004843511729789032917158304483875877335408387557637941854785678352491658927437970518551321651542062093792488348238384244029159271090164922209485242395131769438264639210446947390068642905695912881920151438384468802027972748498768445259846951799416297338183982761420178905857427208608789900320549690686433305450032993253909360397015049438684105239454971454119241215519567920182038386963081454374166032874195365307320234124516180610377116349442231464957561378049399286802701567278848409266437908174205077787059519142913727161673986056085279088534464812107935116855651373175729814983924886048219114373723057073949963440858724353201556457883775412438187543223989237308140077906469952128645417452013434168740558191885508058258740871159696352878837385555300047470630051141641133248195312545744398268728157876905685027529357014709947666099076770441560179859583438309813085860311743464084680754145791773812973613361678098436407538289588224423220419497904739132677535127289835162750653344754094633469545962298233457763756272874565696739754525142686458772335390784660523376646683981978088507227356885725990611653730336415380077653176883031890768045730485799593076177036526033355889570102747046241070468800854470834599452189188280855831572422891078973609031870965138186078687035552766151249906266321282444604908569101020435469485050377810567994391777648481480783839241003007798449859312732929198934000182297681379497090159481465279890810258799972759188135007881146280412634753326114556403115426628070916222779901653021024933164351112235614923957947525626883843914081809534917639320440476149139367469474807795634190187006894224027321067728363969672982040811038442804413468096035238908634836605553535118617070988396654190136216031559481036775250502088942176702835082048879085361743747492533613914101869093993181084461242178902174351297028071729158354267978537772120996812336814481432246020824545482826398524219639206445437631959545901337418597416785654294685763274154023074704718473984312442953016305186141327623113325185695648685239762030518578499283732350703277464365954418964595944405187050112345932073833171570367994393827170667475287605258085883598917521271493989473884555647533869377729097144112732684521424103681563457267717524955787405651380779297406328258531120670622944113773728734187406529072087133496677880201215966536065003630871317372202914891097657111579348157110497308138586018375000117029179039209537831029610297390018976636335644350927690154579178329497325971313064869349515674895314823536359580883239826489045827977473295772387141694334431714635008458965530483519053798927530147317060518745084499964604664063339377130304213248876163318723079325348089638113948557878591789336497165125289003014231100370665216398136894679359705494198092412962566210179528215587677215073584432134569965307990699674571300035703875030399473095347864206831922298825442455159405102910286561919285605841447544066182216418852811526680747829473037722768230634706885887103880429813174061113514469136188386977478803075096697889570218411554668345291728630486246455886422527830825222211666724083371718690592212417765185067746356031375193271030805931687155662024079603005021676466166737741689083776276441140810058395719608547032965901023363279271441393147470601536378157142617948600222996500812469436617844783162226223817819266393033071770015739738866927809624342643714670429839877188879483027429171542529332930721245061687331551145182977899960152140307744347696195935233999184897472692319178296129646512635325176049088974883958118421144150746767015817131367364226211733943902891315040014469775491192886319809817543629220509355192880505246542904864513426971858781873278972977647337230077962231695297661031995013023735922952499374343439477607470726701727075282226445039065420414879794175564952165618808067438895067272168629057849127282762658425444708701584957898860509141476174674895232811489544742535336170413332165651514518513982139565424997434769792493301558582568168460054935714074989242705356643040695084579524753331498198750881843241860646080584561644490903333909101127351677876464214691501654946090392278758715322901944258319087025684177613411385123289484469965026641488315540028734900814978791491094042404664105584926284414829017227569073673206048733479607124676499056496545598996721526787272337895964945881838344934803585544107437588950017638305055874616633149528756994569297233720177004078490904653970623718226210954627945590433984402961876364584780865526830085483570719061689994013358974601353103758581518643800638897525398963711740055856601920048448666240688201701335113878402564615493520500074107311508618527660411280002057273810821064706044727189667941798365932120219781984434331224910131746945276243545828613054183438735119326875490466729139467146171954333201197682017176188764167719342196505911358007653551794305910050961973151770211761031156214356406202828208804663895412169927916773523057088986043852726375624088294848470954009941644330118739126140982322051547999289171129150681369824566525046310839047740220931657502409260386249441657547358496599792786277287598930204498758124973208292126629975248533271352621841581540700257628591107278858014442364392879883695909881378919347523085647586642712697894392725348012111776309307743168592433966741396826197214317592369249469710306932228478297689829559907569719855024776173347805849066076104016868522286496786032144474309737984187642482438839348514326296897397382532553496179823193689882424506459955116880747918945689378711448092090431631141586790393486972353415612647768591905118076452715807659515707908330049772832446534900269500857071963803215087632899837590581176035196123137457666734940378559258859678687230597981201901589847874801029639022069844134153929308476888968383741276734597277964642567223045763439261786314333129694931487744509995667219788314120328798907872749828417891773244007192397371681654590752106667928071188789862999166892307451177170285295498853860000669129704399076372802243911598252651523209943947420050031666258576093131104185068342329202854629924283364259848024645869879995036358626901514245948113034074122260158301304837260132051525587717327615218297711754812032225430017456451736090560765187031495763058146103223111916462108315224435741470021296982319882863616456481143597169264403363347379251396826240821427563748077025826293135486399258968257233046265904815868437595812380460304854391035766830983759736237315372137608360932461142616530368591406580807222598658505041483460930053634606214607082308966908568181468468094997761638848265971800697099341593606587777283507589553939247885944462670144421384426451190298758208198924593425627900072929932311593339293899754918306156800992744087977504886441716600021631168171288927464786074392589306882855096522165735239165443879524294286863821819464882084707204581304772068309641311150025650424071096138614924596486275958411085210608264978729547702393571904180242897712971865055887829115077194011326269297860618421189747102585950989767548984138270766224511710293932210424085295929376307617663311945305816206311852003098042658347614681701560391923139266296093628491142262434620023939773150553024668356560291573891540484965692062138822535769139070387758051714693706197399695255340618268898868872692525533660965493486413885043496353197517997622792485341246260220364588360306547772073158530910966913413855948155300805680011704635950573939614469162162933075830801860553315132809077772872892901862577139190420657320199931316161977605663149551789144492054520697693327908892832218056929631821091077681122276656429397965719025440257560514520883521550934545375647195854481377013464315470967947454161356558725531975752708682133209594489860696930916199010825982290887129675421613257135930160637822091389226297087884613368693924152460494940807016478870617926800613238758168717753175509202599218005652366325587955617854882543938008951303282850372782066708035805869515763084737683022881843676899324681728841830019505285874898341865756498961620492020362037589938229221947815889102319216067960769063143188623986354554793433932489687806928917543274193472669503856502226026913522513668711329065754840035354182557779899371659007305114396210129047131502731780130727752044137658164169349892133631249090658749853600554588508050900909764748326842852413437782783953743797069650773491459975464375236126473464905891788290473212932348871587110454156822996317114947179532667104034624769102587798614252476815854280870202518629631241421970742716991579388239998869134456963438284917589170099892960997019231191120352536019136898285686443035648503948512048264375415268525762897338597704657491469425817896035652221599236728363715026795538012212883259895320850215662338862008010887238393560263509735555228514388182741268588464458042668936686661856833995880929247458953805949818996951433967977630949489211259874003195357410502071920710694328779361674500806548079681041959242623441674209207432424919469859935643811395993101818685154311501619706987317235686674881461273714446614851998645599026869041914290007026336685312009974762795281090890837730352310754790489080927138821393463547579487688020470107277445950218333812081391730831454987989016529568524045219755215322436636054521169005537987090184232610335219580514376687632565133269372352320693569617054868808543279811652290570680704749161433359885736387685808149990308844508975093641044380858364228213611156623741811374888261115292530069802697396053359814309071782559565874019808588600551576994200750631056517977986648546517305964764982859056667905212164035588908967293413287843017131066110854796032525280930826298821052365972186569306831734105217498103502469028404553295109287379817587741830880524135008441391389576166717211290996688272833750647424120044594416348613271834633069631676226121052051023863163506881464083309608920168539762035854351774846053151456875346179675755229941317832568957747869054042755294021464288295353933716944667410947061797231005469362272796405088821757208304361457631729029630552796459234664003535060886644618256655364541183331137732909753252605961895552196495551475263976126011406277521267278331703853524295947295604094511763914895611178944624798910239416092361249039971167241160398824840561044779956907928494723564430562965382849521909240736908341260572321509792542553794242505414121870033673318373937099489990749003447600513465766123748991646497157220033820779763729244103900611427220840122281690475421075424140227444607500266108184222216575574481125119563286595132755500567242215183154040881126352683761356057950952219410263378216069227729068039968185320380583468357902361531130075688980677054023041109608725148719273838572316788113263965684237694645628200502753859344023729919434923285606551002515034250947350993061203204237286390290313792442410315488078628009301263370752601535286833556516427964584688080627432096842249492238709360501860922128225654477567955275209403373295396817871037927164560411602449744050604342552463470491295558879307764977881341860448817462824039907425000554878722094284257145722925713190117061738627574038532596162345593941856164466867789716860438717747011095060230336236812095279072478069851223578739753183839905158400795978463764981879345818735071715179355811563564409318643528268416175398997629420584020639881328045054797465180051405326932198976824486151514241824116576737004662037403199382864180951610750875106395926429409844880063755440982648094474316342252230036821945368540470102221823491165027705757402454484460714002286370897260776966203542593514979847792826762108598647427704677054370320870994280915799929738124212810733655956410826434538925548827434221678469664969964402864793104746220402353539977782966359083645604268286959276589040324792811430207959421512592190342477622698628597460186726981265900239706826541341180478248658747154904701777070269096924422557727692570380416545158719187613418464024536645764882397197857765025554043916741400637183607040055409987524644450552949011824014590068604325974163632345069794974949251047940318666564020836247991844178071012873746771070681789951364798803160265521016331798309331816319009859904504998053470101631310865182658710184565048556945129185855324341261192441137492470624127040711650395917723445398072072423141667618864873934354250670859395441665100480791362424088050631599355832950295499996471707615079937833103064464405891811570847015346027003811552459071207210468602080281756958110138965312357638003578329581459601460679193672851547493879336569118771427753598627969761223165578826941744934394134095200097038811578600715377021269787110246544671360276265431501948895601459855946439453229492844734809524937884265437355485312637433081945147547251325994147693778766415747492037652976585414839306262869841288368132105092308531746061078934979200804564274637710699171757893085511612547978396873224054093136952071063387745832120172998300666922307753969718888589073395008096533082977093974857314880900335595985049633375736637721952336559058599876365403487120672143127577001546375772183118496417568971778303373912105639844287951419332484135007854830523160980427227135588269934821478234495212835669977261780878041910841639438670095142192260157743904864072257597519670105442339620662233387030091908289322556968374705342644980157218957988862485528975646620884639698965848693268256114971611969601178577213711679747457441492945799715242158219003288997440289382431642157451289722838723685644242417768675684832232680100339338873921869017700686681384549289855347270532803485877093019294613993768047072487368168540976043997673253556063829333446603869517310179656830141267695015953403123065458521298665282064253043233589192887929807886163457033782042353228034320840684803280461213826037584755431030693281492816227989511783754691548833842425314192195268873721391766599480172351271888737125611804181693599627470769830872971062657960827018698860010496338537716603376209431320870777044351059124025990328415022915143173778132498032061246146333340047581541459873192148131028905885022032835867682240104779630645146454356487393963739045334994141302733812436763080692653627460786639094875610910027240422840564727761114960531281375731899841275692619609775088369538105840727380815154544917923800219260511728928871999858208870867211975935727725687237405814692151723623573521094002006965306844298079489256356956072705804141303170864262452899266583463757872668908438034615576057478216893429360279645797193899316945742125178088849845967816924585098602034516259725931780713349857484042095153234530067907412297505505277446128906486288453047127591841154352502294381454306129548407441029179067670616763167930609580411393693455361426925191356590121430206243477358111580493003439755145936359647370007460138833149081235355682117745562810518130956639404691141344576952889723124633538058686345017915583009041630070892418529502685392924644331410027357284276544500611696367109922824115762573420719275908191247656687180954769041483540431796211865671973360774108711139657053051844453059820253273164330957178237509699749019105076415040040759818029010046717335331816904211279412749660215544565922834993034882029286241336811723817046136185662776305878963245892472906971773055409564765881233251621873108599416682205641647463839993187090924509387731822953694086395518472106003618033397339224030507047620425581882952270137833663967187648596926139185789010498181117449176803495050488795707138635910635182961987306156942940551873356802291736336484018441455242156090335733992070500024438914142416663232000093261437150013388504325970641828484914115638278854893846978998930414392454847936943388776427470001228893923130639346368059706814319113983411559486205645163992573557856296188631933772778561527210261313171084321807616950077459977186690657854893244378114114804112363391413423132835038500651114917727568263446574573146465422855930894917600799389650560531920671751083471843269109024196077208919398362743150565488343196185958540484439138310797692195824824999476168573233942249569203199746254867885335422600657766380689680478704423371335387487981576893026831756947072101620068454229770064344631053564185716817340925850692216610022777109348087042471164987540990352611111869894708620442255610657162130943828624515425275058580864928480744818116314771302890900715750172863816417084978831268945076445199976619041070081643683237321140278398690175494957835890586739478755937877406891053056731696994060984740087555947373909504243434239418463468813473820839520108611898383942655051046090731747203955768804368767688819907951580415217469558852906288697333591572188679033582074124957477559120634683016278370020008453061622494900198940472106853782318882087786017067016903264883385934484908593627399046742141394345834314076983416945733917578600333357150164941679877865602390127966850010622012950807981675551158563698461168210742820194099541503999693173769355944758047030324995379676732706640837034480809765028469921165785256139391382710092196307001474435043386571861895706918939887446719103269999245784714741563088869022974971983529400422980466261534752462799552189769177590671354953119992234687543462898543167564188122319714531082524541338670126707796276635712560760946943915896848403651883776729695468368589822613304968019876037283171857380944459990999424748631403020575734915507204975158748873297650207498894517162350877978962154729901693691785262818591830853500501587304459840588705609945651945837907780319179672518921599870107385672000155216740910711518614183906068491209708786964377514340785368198641347765502478508270390764655802382679214481113720165631344915405321359695633577898208773055007528895061861656692642780365756857907623537457836982680658019177924184193991769449493018212030526198544061585588178778648427553205361139022884749022784331955449089479799109627107146225250318172103118729641557285465155407471553987730209359194636139942383554126656103163913841118103091561637428156235560490033308589563007887237593202414980240311917832858947506605690212156073065751316075227311763809716012351572143421477486181077104116443331656490615328591835828954233452149578486880591208458840720543860042066724597894773016154276164547978990023991533374962714918438861648978512093191536363378150680059650312474917378774542482096955662967580319209863111311934452040779597189353663190169407566778271474524885522315364305706383714029742893627912913018512955213291513421291479792412316187022716589935713846566417346413123582966917057410045583035810307400945093301068371745831140181445950126636685291249673954817873434725633546538846973715266454334852928600848980141784781431789301515412985756004753360777422155531119546421227518823097024922964936406051577632098367016723273169556718967226654441134811839953895585636331980090115094436981544994993371319873571403089670917256172475781933761800326789551902646553535839653984256142175899767588970844882223546091331409383544132471989327255879767902779284307725434231150590398480683225250042420120329772592787928000845006200826293684947067820689495518086313622892822540000736441084215852359225611835227564257263888822060520473063544307081941256072141497912613456601864562113052798896322619204761624734775784543957204261222761386818939814744541539116998409913058806638880021982906637304181663172140428226339303040867595976592111908414304859585550532998522336722632351968642412093683536071774764541750385903712118489932056162888646926676922735028337704520789101513390938825097532082236856534777435026712059871773184982066923382231687568542980615332154134683360521043902444122022222905638982614307565634233588836446425127444750019723408028724648215879238053234159258616648542232819815291266772832508653916371736407704524764601516031643843078212094972677929611725810918248306335336531575609828893826611604221282967003973354805026813955720352144969622122013837399335475178681528912017967433561694731604382375164381675657264395007208443719089400794263552703956578367608476948495538298770885298379892568169969249775573113076032231327247598781153513318732003629612205002130232370427797359952799402455540639739656103157121439410676109437580224730093474208188061902820005247139524137671987157906784625676890926959064561643890178619357776624509976815193218848070291182350132793448976102782350396205146045660988362464861915072070145162156655893113638518401815796970625988826970124955577769290246984497788106604000878097377197132728116003153324711590397724378376379031335320100474002414351900280391867707783910276393533174295902040372713681750713929280920198766951647963838730427913738234848705873347487380706093036247689743161320280763157102782055838733452381234440160701199024946289700365860370358980761968883521172487568859070230202121618433775834965419326569214563035712236522143150831575636675021202329083668735897050907409375854547291167046682498122277951113174151432196707663710461205135911549986490178292791240201077287890485806644930988658571948426170820893466557285788713082386335216176522233285100059769065547534602809876522967267741107937327904931786878699187972715378141662843129913765641809086072416972398805295765381899497228739558287211841071370447269932441267176300079355970977180471946352217238246852638077747267158070756700906056861828630803068786902973716589574061922738770619118094376054883293321730280032940363334157248539254357752257492439406203847734783888636710097430492222981253299713810705817460775142851004141578353523968063827586950541762167839950266988237015939172384145832816682427771413834015316140755487313179935674562008809172797796061360319246026420859574350384365779299891674164732292473413366011551823827829326805856532154934492074340112706960421681290090880991019522184866248057000486964770947168816405329745123104304020324713213739995457057238632335154984741826119101268639463881768094365060142415543639479173972469676592214917098201255467006396844471524147133330336794794608421299098800989009176674804915219564478736721043473019960080757547782161556274387412412985103132241195574147656166397292128108482955274760351634467352818627977874353759869054135913223144888045509382436068507654606033147987291303782014409674787195689095724800862558379182321836824340200856418368693751100317402440881552086162502376152797268586492686901555745968647380042373459060126076970840151474702766185950632619413386375792550762245536627876292303555022733914820595011142848552552462429274265568280468412066847562464234319123920418857883600249330158270605238365780304725816336862354380054596799926313703786200957117159835105321034826176144058306100396728769189385600732455653792716886298091169817717460947927293311098884801708013945592341727711131512055135341998320001971754807001407949874541090950152171228376245852340377185536657076328222785029638493622609245370620246504125545318656911613913253505620123120819967549294458782756997318738071947513547275231019036545838948903527222319222500883387765834108118338833779349120246256220366580284907096471257616211994122694475715648656606683219023757938328499118252930547240822453459609830157755008259815121485358573616322167185813031232213563907852957097812279537593866286531702801629687447932633953161662842969138191387127500488616389697605460299051222518477720392696762853084402246218365642009614115640099596312285552513735651584829831256461108777940668978940655160528813487050560052047775612621680895262559467656040188031983710758588920453255612673154340867780255459054786466773215924649097256948794495457894249643717800064901875788202973786779944743686590571163621350271363223092708291328779344622952442576804078982152629717213862663162290212415812763380382732725809684401607603096318095721919752227133719863050401129628760779545691285440682901693019399563605217246200880796715148483693147256303850662035919726663846394139966917297337748339567069450327350513425683552953728359228472929933685590546792389760135314904248721274571290662530990113843565860351127230122309405024246830409810349081766374375152432772058614244103559774252342777323374089798296175279193424664349714496954519446676089457011345775299375032679455329635623518553307863338136824540643993464976796966812533175776993092465140714332131713341797914223003045617875908628271937790708763718766738872059400828740231285603317687834369510827155286239046545835647625715260869678542858466231698460205180551844022283976991466735267442977944604092687371096620965343236703752586946385501741778521076009758563930341733658001736297507332746219635266695732411371258983306700305429624233690925396817020137453688716716805278509997389177902484475914726115830035764107931480624678401466900755613659125094148692269829480020315282570584839373667107965737443202674057122322931923649751122633966674420471406935521683606291744493979964554956163432737800512621881016932574741180769107115903197228741948548651662285674968293503844348383409161594533823225008232552822398156350616551709082065519577394491972017885396432698679994983333220447248190426731990302203331208638549500058710379921860116619717697750833832111758008220801415111148960343670161704460473477959144763374403283265490843741200491765802358873422292699186959492971187048743907695077917051909701033667698653779254783343532012010543077560981147463831111167599058442273326122601385584057119030919319534621686653414098824919611389761757878742662496534770686805834474634800152366579027016967383397923699858370554895550196594851737673797156544417745864115971483991741582748020493603172047247444564189730904362994081381567951807850285687617261019250666947217638153095873557599902151337092946880527501974984883274100614709565585515154619933557694509964056289145901290406786305044811847940549934925666774865178532210493038099864640149170048807769074889289303266073179577942006171643431475811204432668365580038335007466652838235620094749852583364246785283056263180527870197186597693371118502019343846756467380604953557192615221296237175516855869040006623055579091557387888623620343469291468757460455496837905211583206840375243775671755595676829689269612568297575971319934090241595481621768433184115469142891746583572206587205072095737109123847343587617255083917096224031725977752597365602839089027624269015864735839169731901323909734914787790280432716071538429039192828977755839532301619131353856005801127765753611343798519756303585340423790860397599653593384924506972616296925971938956629967766077123365751247194246121802801991037309543129777792591144011286088639147707638466717802729626290900617889335330031384892660779879883518620646426788811362234347502095854962087481227669346389867283320074750516327203907738351300423465793907093508009741034697092829462891858395616643920737513423501435035384338622820730123628461912125654607148891550621757918271903804945762075656626607402424512094363917849249356860347390505578870591997607959526525034661585518523244871028296137059255268700698910302362660586024376545297640338977273276636145432141124171746282701943075325191915370960675752560860511165000946429407458418802831066227867116606003319515397009500802230931747403424275152846162145058224707910237437533589412316432465690968433252655023902752701099351218830808029349954145088269327148913937257837254241268989289885320671970883037120866822867727754611847625991547803506319553926751339409508587898894574104225573823009668131424364204613671078449179652343557086419502444980182985005461276286808866581469775637246904711177512193488637233730931639987692780209535601881124962635268984470519751362112175943239338967451270078373017213610509014045919674697966334954966450105196517090094544908411108488954703419859825360039629609824079793408013838891338075925121653889134910918576555932136833796202368898262929394330450732020241943701221553644626998234263482431115902618230197427060652487195518428851696798061362403101702808034060294352951233536977048232356749226568322911652097859333045179685128977104185793088161813889870131264315114395866451041990746056782793853750927065373266917413322521257395579759323046676537908040893184909812083458327063661981247284699514049796629788758893496246673892851907320599175710606457294722950020513620390804374376071232650983899112312432364957795686245852841131467789506265388015258721652972843498822327419832679771970117829965977216375155175434047865458762292328364997776977517981702829152910438830421046521802567455990727860809041651805067425817978098471571253354277659970064687284298619829047063986074807910493762414256174370883987725543063773537185869306487884980504350786101645122166812189903809985159849286921378371017042363479065728463067261770942379451416684776203109958136847821676319450080437166554502946032986295371051965385430080990827992392850739957616175986588404082148370614358782229793959846934952450457635093738045035645807390047348650525635163461089215394581552600634516998511456185311639474539658035811437766514394436241557776212306485180302853283754975926626069520342375706433223192076804225442282184937894451359900269973955078421688798682406988827599003324991282913845052180024570418280087554575387148931964252633842990358736697039167573645121354117657936923031873794918435060531101054741557932949218331886770730728192239799517711755620034271738156470668076324206341679169397262162225421403784428267623282684678615709402146022176459486814856688093855877484145313723140678394257973209788901729324781345323869144000376002891891616413322058384046321047206295074397794450252111991098852987814459028946054628796635496400693340113481192295827107774999737160245809276242851058106376821254487427411856845463380710231352046927080961946988277012570648245005078642289854175535743421688068560990686968656274880445359475434335586468928383418434822823331921284581097505435131888458333991138338172699751834821277817318888520021612777653031176075704164714854483842989262718383622676916081775640802752471879461541522357224146721063742719172310227095632089811400000380682543105368312091848592946620457893255374921453030306406079946510499582033988174221369640542088550273994750515588491764751740980798817189549627645640500654651947930800978059304812188120998593025814333645718996206605234391029095212774892874060779868990471507857161792872995670667571050199132251371593802723798712894661179049932553642159024598840553771672991117157486345130498514754571855967793329188243961313703784616354041670369936285676007581198434040512749222730425041481281025049587472466665170430168976092872809517374821503120078147472300543089599519812037465596818460466524229877420123399739245919046716633066544969462160403846430985494641824042948236556026045764360589330435769448171845143673266014265313389609962563682954082616305936920815938104925495020929514268832582342517527275764168747856916875765621891430349803185515284055822620865184875463347918559784329587894056801608217705566991351163962834553982493487421066240264793547706152114876775894539553195124281410122120475400410773078956384625539533543883210881897109488179751431177709324909298082561424677717570571177540183291612307347522788050031597531910281163560449686497124940770927274794587331047728545833881821172723219789618811767556326905074133105876744216980892077941520013447423348204194698286068051914994951786971695757138950909780564072255649694219067297781311860642479794377741669395980164857448282440781316053497882791616558375502941120601931822075215055780889064056404274218241516276625238220800355886688999842764619661278910479626642661463474650461774601810721306171090201725429652517317968244601284962165186569783007851472752924502482884600143927061061619294243128010241701268059686955124574322772511843858063919400115284857953505858465132263621324221635931525324713421834596263954691373532119653435023311337084595933977515523250975657693146708764463008503146005192624748255753900470619859590010080539617927618435156808874802817847344246180964367934604146722301714009087591508270622443358101684545560989633723630836531288205586045951132200636082127371082858101296641111236977836918586693522775550773332191901111970825377582040569008395607849860092410004697994545979105026018986501176356386601904429459335877594967560120362749509846124259223217501927507470792491381821330609190038704733544750306467517118348553040493595000666611959365077351216467763229360389541688988004273338779583001025738071569191785606200877631429754433527313841880196513418648937654291348227154557580018104296756652334420114125056533897387172614479610004123840146356217585084249534381462882322219584729535327106205568629549600139036344554284890061214920403234836229141425502568256711585049007710878840989561161629889222112752844848477198484201390137268899775621318620899001285553602814945553888222692456320032914290567170229800119392631630591364188289138443909994313567866082688199176339083671466425599642994967727455756486246561957351641544490888283261303773579038077585371018684945822358400449278999183323242517437799951217263563917552122560471948049192436532288909737491860434072858284866238269010860657852461896940959863781497632875783067537727210395030459686484914434783364764630116262726275207924599804411107997702753554896764015846878842111929982579859444729164783231776386756746225577605518888317126269334795784867408734072341588977088034880767402864365591756418176104486167411912719855486105401679084633546886157604913159984262651213066640770499806533508763640169792734282642772771172969719035429857251289728051399672560383993472953838236700764036098786739383270749918023424237480687801806518972159481899120145588264540569718923526587482858916140793845640709784653113621337693507225263862378940615441976050538261867636475059091287684036976330772031547241470143555945646515579497523499829143085132607039950384098162759878258619074855432286148487242887784065805422764262196384286820584729167775071074613185152312413802564508267973987740780474797539666211710400577761516827306418090916001137502346526956413620965550026918051224847622251287610185487458140888666747862190238678571560515241873316401709310489046872023519544402773314654481132005753457530954019383486098351747932423275624772284820396194474976665487759123838724946485391334452571591774640160510190627922067949149083428166914791312037658861429106340445692314293744423197581299828778476528891503041518650645901041883769506870816313517220464867784319883786418618976172445885064214288568824536430964673905785382942379195035960994085265017019761953977287074452135450027506839758862512534950739367174571619637462366504439588629864026532862472831766866059525287728844780740895204611213660807187309344907968697575213325607377945467185950732278294134644216965448550021467007895560487607292269511504828907095016889621246387402237141085803852917656517892739185860977121316474685997013028435838029552951615849720212851949566496124730126449082991116554238946376608520374063231519970812521906341483964737390890417205912258992825970203209784931512591379318360834157414518063492131632108004741201822821372140390766207136974239299838394336332847982180795741872779980796579373063441896988892866377122539615765345630378008554235853291994739292701753100542478479927803077083764774177270062574406172734815094357599914036514580171647042183578543063022578054473640016920655613495145251822020750181104681685272602716564181044830014241934005792995025800730756727979963924878740700290884752707572809651562326061042843080601990444777197030860950851549947979879440110059032768113598628566962424857324816383032827935781184358571927885207209248524262093135739285645225868828983002044794398491672189129361301910993582087826563887634979722276875570776475583264814413509811127659111497867958089770116927647404985905162634180677981333171761612817021435704034993248280578113439078176829785981887616319521482120986777842493433896107186175843262209738299007435423279990896171304691757930639486170785028531638050633460126297932838223859511106290621566425053240761838412578752278504476520394534050949711184632175979076351915519785505759667487130913272218616261068265817566807607049633319731530854716879599804413125064279221780413147171126179980104235370540173288319048900741963305965584572901781457439430825535340305622013933293555119863632748855225051797003051397479913734075957028595740449786645713039095962897984666053257291889412886446740311221673914493643365588645525139946634614513916058570256954111204674978511569555392560059009919748360845670386584846803766007040399879513865598966144421718510250958118472369921813771450833659803402060520684007363206000722411191332263898154815861622318946131840245430066095425036171881649003276866582961899326789000217904828900767444421872790514098330224746388392826706008868693156630398228442683419080491694478930091460139896048509590279045112177896714745745446618290500743196786945622576025147082941974846680337230970982636650604190867259389959518971764009474900155530306959865516070839529646240177100208366569044820500097746339197419133508458051869236922793710868591234938829847837251676989834312864139482115594872799084241885620983183277705315723491730214521910608096269233998337770393218026030258983536420018493396002248420230551702728799263241830792360293783546967678707744595811584482384245681998740300148845097711828801284273563951285830923781688541023154343611241305794770855009443141460852418774953561998125479392870028900070095143334374824904667173342805378915390472874229713096746591461240908331837529734815755247724520611119843966180652753632398342264358693581412879053776403407194876298176092006943682493551008362006573477176055718559854264239449318964142134350981700277491972363858127801491557055787144187572932985050647478068238368968369339070469771548795978187552357462148161520662144553107191916387873513048604109541232579367521461698615347151477971180160512140358130873583286411698119417833179576588881603576498353027994203640681800112511526881949496302485189422921583423007329197298563866801272896878988569559200560569231828111662398798284219596549060573010234543175698834801586916925499580898810072909090253910688965984653689601367750699628450917636685549859088526721862590505912580615876716630713802743305383277566984463508519341316435842810937201310095251499526181651717604996813780671645727953887335873746625334807423239043646220706447741287567381287398875675920134743061664168521252281925364128576798713026806964527596959492322836214946635791420397624809546149987623930244820428306291135476337030522057640372676874493884173792543952654202093649123488989199766436156962450304863180407674945635668535340214459338494957006939578650685302384477241940787408375605267620034151972080937866062817741518183158222357592918849364640560982028738457365671811980660704264204273123104278895062195565513448121358245990688638533894222355545082504717956714413800905528909307572325527780302192048326810524109454095726747519528050882710402992720270956549597500813417919926412455020572358775881383821471162416383480837240164018910793387910958558015189657085836158109832563494139479875202734875661014139892271081722251701149518177019576518236172172836689142682437921108826420796384804357021772869576364684780579042748786911483544341388226045961692412268918676689296276248683160589542620951678888935714008644525018294866437442071964329986355765075876023006210892572474656986555634636028442565305696190384901450865921091038693476757236932174955231678295771217329736490259744893953128144027332224567618021155000548305129376971745893333392969078986109236941374799125424214312352854988502176309299827588238107094292206325361698996454644716099343074857554921747782597143024775335760738536484935667487663480008790812189754543473414300959573945415219066632730044697701450321639203754318160216615749062242625789160399227239584619035548023822415187225805420386186535021729630178317054573857497722036305655262135046649511276520279519245127990695016386169679818028260408614409456792449664651115963374879467400635614430641335224227659411495294911591056626778656933694188201731756533336695010156933818505062791745462527458444940992865907050127541607413614813546261272597972362883610363269494996220812744822147171782669577515330693190527089475161174975095957774872649408941188836438581906992558616591300540777539418205742785634565793365511070562574994894355202049501075241888183636249611892515667568011847776262836932858942315111484854091501885874529486880659659408553040763931502456141159612893957631965592909636098713896613778211586886553510594467801631361590145730105179417332869050806320377772833757558049196923798493755552018173837560016546338774721054686314930861767371310828543450784346825221488099157617340737157204232385590538397689056683603122668892709762273837177290796629942751476516619899118964026864603298792354866890682540538661715256228859505258161927651637331940664666049668878633893877792982847226910734221576979160916841627755284523784167885133393310166874217913496083208248070289738823878692313454885195348020163771768206719039693979439439251975775569824250896096739406529997877652515006342449667014688065816667195139406037785826703894571387697152191100529320623249013268411775607937051028051098386885930719464903577765009362198939282766636796244493198059911692858915660275925393054559204379587557981755090328895664822225281295336178422598953300741128809894168843804283382568119050034068656906018335915709259242672188548937039714103637194301014733773369705996387525324875744985518404722354512796179406926621846296384251842114116730668563454819131289769457116114090775515910051484249645668835827644145990296012151087385868219020904694411478428877533813953586701951658425275744566492629224086855659023762463019849368334581336385850318437607668861370597588740262259981050114722928803509664021674829890074440847263287199787133578726216612057380265885089851801691600467181479515176230326189267044258844435303217513502096246636060379656586473955206907654773422007976071243250705152678937319352912366966516335034036592566047366900355298672808024018087404391690379136715796648111503457152461334341077711924957728832869720318980216387693109791731561824795376104332422137790501885151755834896638249636439719015470812380423631913276127210134706382589447855908184849893978468105837994717736609711319091221961990240946040854037772319424113554748584708755212093327450238800224828283491416814440795783746544566273329714093893891370958259313512181282165011450905574140782333375108671985237737986374509720988622736500264194239088483147770734532488647521322694007475618938319689595302881380491034998892465325954270400150687631238605716069180853887376316079251542112873687586424248457887191687031543122951117596768263108131751829615816683321143139936399389841350593690866017073937881613314350387514349556180288131900901426091321276578737853489360539989816858313113261533817059147213773173357827193024864788136293713801593941292779481004697368498003946535546229962889515233123358560190362278399008528864258319920683594478627765019303813352249468941275247663969085517240602288767067531836555905030541599431924682859690952092016479607609012323586246843296893482052048996537313934956757551587660658074446261534191025470251905260415933850160976980565779852224923138426308578084847336050678325225149136392755061776740291820558431877834557844874969035336967429083260823692772033609042411709450550769106639933620176779558579256054767891437115380363572687651273814859168557342869244642627276021513362774371981388013418114110899384985202887746041300305556781927972202595786405660392753679334595972717128497732654091092530590644322886729240406357805604452204051662645059116512907990224704078110875566997641045809972061496144962236562765991416118318079021307846485684815302241910625860137235972033763967155613535364712686245491327292168013087278293558069861294106636780174195351588715384359989786121768146970866578905686003831432144833834686039330873675136708156102370545223567593842675005649416137090032374942348094754699533536092528904518464226370623001401109657109685623331485070625837204186906192628676453721090423602749377734514146865046405371392870342050133454850400981215521650238944726753632243816761716440098174815183893256828522472011735401746776894906577479089682491655834604663695526455842702754105291282263012076904913570585765438449954825837585479161187533555235167761711257897039855804324999448665903094713350147501277112890321264550708633577921746779699041732140892211389775060934968830221946015513622788811970665383495254849228313117591730922118588167859941443046235479726805232436794027062811557845365242237696975957584170763218161711812582569767172403071816644490455020437540698076197328432686743588220171933899851317671255042828660019086468403111047892700289226655794122178168914774196456010957726126044122852801226484861603547442011292449557914187938826318261373998095138628096228673146101307728858170948219272321094593688365478823067137059065882909523599140878053117171037400080295026356045042373699346437190832358784010742650018376168359512129958442797924951067113014865143226043757232901090104786789147976593418032418092815354999121743067344860606969922896807095100663377062308792074771573860748574098029370102583696457273568690991089298579891412255334860887486602557209398262959992993503719004638189848154078584569228804522363778131879141664002137164984039714021140848304962598570895336408149669072056032375830378563314000199676311979903273237964051930252554974921426972417278557017972989247236098201405188472894779706121246761348213046115105263724152876586557715819792277961823895018443523981401180863416478858882265707352307463344796994918942901173996424021900651893089077620140589569009587547977770167565500939677651649615293197029825113005278516979795456755854716300837268775354056029415144491767826488548793593768078141316323093136604651552295623817978632397391299737555621988503575426779594523089608780568438294627291536265997615501986765777775152437114332229098863217958023985102652745824328579167082908075070716489130283874653810892370757020782020138989028067163251895528763802029266205662968032864376266382074369200069232415071831095447948636099227389955148639362024530925704403341512890263975094880980098999540322782017035684282665408907169650582869320814948682486350947898691076660688106603035768419246755959733109935590770094326458285653130752464158982487581895704224817807885219105954686889608303098098736056577019563004228173704429923189383058673603575688501652227504309556048846826188487801969311296597287786165731816451225094612276686996726114048917309253715994319749918656120317124274735277846745184892063843464016021138984076978787584811323462305354919263127598715237079997731468565697282815206703173026640372366736868129263229828853570346800876291061187237674523569851269152193257134561573607551830808743487456633414870558353568268013699279431185005295576405435188105377484046173290807203416329105066035710091002235569521502451990627190804615033746890702028387166696047398532322046637767742787496694011705416375693964051662211501318671174710712064906789342211943001180711595083570879597770218728891656348338076382908206136527771855926865121194292464608770519880731283637177683543711561643060936956213097348335010856512236574608011774351501587963997127427009144449945268764875568617295404894501287626952909749453608134754667201546245845681481530924994481497724101861695502296642194859437647317538181141065764881794090459223384737710430232044817711217225689973157741246070262270012897021290319924492440081713757702345077252439672597030923115378238060928396558778100140849989100808410180634134588082885442534504432443912289652033234850487447196776047167387660386111097450800209085934772212030702173616779318435782390907056741039615392242937612197562544423590578195926360338646920240445934863736112721902619615460193000531683415658976294703767145065977766457987243902498594752811273225499257549240069947031142062756680914037629894811430841956835055629291410366497036806188792405162774143288422101015921462544795990520570304821708010655188435500304709654546842560399867702504428452339294827467834670233624670820216803256500321185308826268512393112627318699629026653936586517749171676974416593300617879693809707838844662656861973284467911708712424128556668547569298836708623602373826674862437407491246277737844880857181065029732603616806288632828085112296622989562830298974241929170688160460091456169469736826088040494258938665389283406920510992371929927922777243736651502629013893688566268526340498826389430857037298280758621542899240022459706903194885877202347173502580582315581498707417074065027633735465890421960284607558936492054787928448595749771987640391203932524441043679733732722729664449830136046343629535159673870878426561726723142741370667086783827813492378668916506881676006932325191614005210402391515736667229174138767132365683736358057980527896287592081120132579638915801954788077003216715060332240425719630694452076412640351166268086280932557491891679798662899794695667610945682404536292137139820545307430502495101680492512794066178302203065829812557783046890629177815499612219653860883824187324586169108347732006260647660356788527970597725470077962545515285547014279639651291153196138973910450093354585073306983757407651055063928860354901677972073695017507537177310262106160152343870907464733994825070212023585359941399933369345368160060433029383132067310219066704516623397442826112902113565542309204112245393267632220186161362658568555450813215699551376451485778588419309769370885082234046386364808563722212673354389053260153003433328721543267982223003203120900554937204930127348360015553600396674646220097885472808638246232629172091999500821550834026972092423896653408247381312977969746959823947493566789687556825044526825003033759822324107174686114054814726146146489275371590735671823175317702995629270975918339310495624448696963893097421062760468062645314249891694072333883520374987869069605115664018335706150709618812325368723194485697569875729154283165166055235000961828702910956817214335104634830843223401014801477004140134766571173708024211134411758460194498387451178271307239644040712141953822051963927329467930874819395161328599441314968254661477518785924464425159328388556866547634704849871426914136599526566633610479332026219757442815114240490970241412644802953516382780510850494254512184155250504370018444899894377675236270801473104131787663237326341479958336235491310365180283347652947721778483179074820117186733353190336718940061890047004536160075959040091504550715298461964670396460642099555331309907776642959462511239862383612872818919639562313820501111557360271277239001436138719014337932803281411161896500757582735449020992854828621856784111522112379493790616253023416095705223019800293286297460418579154498934594048213310061575376095011830758826649635550011338634005448043274197157047645295672455328489823481545566333316118522224402256186021417712349918537714965853662200373881460642090918932137852066192956841198483647158527515477107728111234088043721138484474975722942077768543934873102981446255735815072003989160774181313524766471677104944666583194912447473364205179334738222183345636831258252803518507969033753369043783558746477687944087168840318451501493187440433503882741354763084923543974498776988523097930489727815247526407330886479133550478747779170244283197980636536733791404629609731801154637978928956028536221553190200534713835061240411928166416662317567403892466134768591914851625785815621253648038992850975847038039448165715528849477621446938829252730853808589121720774050447037744085034642890884664990965337870936067303811364691913597971195626932823073017468371883526983373860194950784698583992419068664167097248766326585568424071524687298686545987476199459859767643892977301887992672675450585378983578332291762916386546181294291785875795137846547710237890342439652116810116226403404235320691065342720578774479949728854402652744924274783210516454701932444164081675685313318282391284714014274909118261996713807849727332135395275124268185151291481475635091486266507429031292921138719322848191775938687532383685394850833842495749957225806833590821906360999835709700388206241607225582047984313660551073067416525493374406844075153162278726378994066575085019626288011041429448208721877370148120000019502278010865971188007218197501673058628609208401955658750644983920497484798523869186277281286359813082616979470843091021562495629490824043957399453368998666323458734990050808537698459742730293048018021515272312009857852250826853517640926051892355108806449589103266577383533754309115105641276584910195211473706800176500884932001969143418671145849585250393028919843336881995551583530072038943035254265216491034895661833928450421512965060325228282329295800154420811309808362452807780312040842729777591319881336074894071487387120672316704688485073608702877838673592943206921699479913205687360579149037706851430252582725109435972295561550672591883954584026432452628576562374879625392847523073645512008098725311719690660629114422689954071377470684135223912282839045983510863677285652924792836515712807322395898929081674411545405459277296195291068177312871049630527803625545898594843614607894198255488748478706484576691662176431335017856128669762415215307406250615758098268702860679906084702800941413154015770674923172510364539495372177988460845678130935045635587774803200225378135748938376363713140701003333272243355690756665723946342859782211451358183985618726830150638307993911684455524549049171340821756291085564934529755591304329079394935203245541345981212879332498217002521425973754138153252850176245987661038067989495669126342291990778068789697179726608025731261831433632555013550285967584043521821233042123856935314775251192655964109704366385453489143797403785550016923398832531506575009601241941879970136757419873554584755962324283041533836400722422511359322470751836319415813664663690306332706842491616673099093960875060407674267387360839304197505575809190832025923298578388381849424979668006656168415032680778031896609352309086877424037062277378326492673566486194281593848087587488508908927780368288184806870435013496236594358060722390837740756289540418943380149738176338220091450585773086324610324996080283600789074613929513991365087801079372599465905973289025971566251633565739776674351014384698268558295330354265850713745755392679845827173146646567576332300499544393192259849488285319644032957227415105210620664186994346483455295810628595785487460088037456264552582229239867568317346732038462335736000173033643237094054694868469921852858499909983318793833814609233690115441732599977457439177878744855299829506050673647713250288005065587067812079547709806683335712278817337589044668911535215332787068377362405320135077878469304175046632152497624296292400060186904632370498524969266160838140080566056427521749108045188052243561544809876946866910267473502709397915591704109322015132310727871235387362675455349290980726109746614454470487396183108496930448872863520211737398668749250381741651700615136349060150239915576308958022309128233654711742064449640216246061112284784820671102494317917709842549793061987228787649296859127753941398442944190630558657442687788246230272777718913407382300506481658080511335912480816162801547644622889109397787843218696404842258715318176491739839670777400050739271063234043107352928562921981082640925414773167642504913902370285490036329266954956262493448412269495694131862097021554567778895958986479302180215719479815304464518556473664905113914954594725964057193616978659538219919051074143057382829329141094743790535626424703782046264433806808912835801839017999454189530982452846211024488387090769760138404099044596335629633717163993272565283652743660247827234982451314103282527463474434308325862552029379171706360712436414234792328282154333998795864682894241674010456793692959744216467190951389320145259123541582593836778707130351859711986127254124467141893183343566395532264436025290343993556933148639303869564746631636203292773126917670241758712998698277561559719160904790451325788931737221854909889123367679593638333755661562745873980544470770623699486655083392416693671172895430394888737945872861487399812506252787914380491041204895554533573769567869852544553123716484301881645198032459483730537440629908831719385849649000635573043485560541806802664675553380161572711510589096746908179033101275800329463816721098870447973212572954374137628633686944010095820721516224687161128516093368313970229455195507255124720105530976780791369746422107823275576957168725605443062504083306748624697041166062336374989720060276910176384038513317263190320170932785608174003108054442958048462482380876617790796481923169579246276145653680972285853212407065199671427618934878236830780965731005828575535170506957317789736564197041056624097925117737653190356023137046085482460831188560626643198055776936514499020969091225147422731890824793938821391546674982394925077721727553064666033614465129381108564738762942229938237372430033974792166696144979688385850549750295164665310826361662572041921094712651737185791782568125697681155637075637389778965386766754511470174991009204632781555983128407947689408736987566758573965333383313985813849592171744440550332670625880215513474343656506159029361837996993363964146042027033231296317572072678422949080971820960913658303823826555524371312146507684187370663992493052260728294019294080990614841963317264557416300121763996278362071597532398378221238300466979448370962769050721781378653725296716632517912304870012442692575535931644231458676869684095709261338435057438246459004329891953181446656680200797109792724018926770359780774939724880002214847979285016915672238883755847668477293304127943123333827014968513591588845932572132859146317504500956654029895398063980328550368579265416324552363197425889296408140517526012137306389925226513757587380564160978511439156819190820834374117439379424667733042630363438774180238139147649693324896747091862927236080912545599698397873706091665499084745942135519884901422650339687488945308504182748541705808625762322543300551370132156446112643611162318120746964066112566794771884801596894213986329691696283316047723482568774905869716410351674051494754431122573840346559769145014461498159835762835339699957279520515652405448681481670716238025833741235196941091866313814897841071380183087118281701675105284850070740205479801498088722101687389018738776073485855999556272929585251502053638341753128807664910591160225901759626290444758042152839296987059651993775505780350849056353642294575679574926682606811454039209621925080051899751035272799407048926742828047083023033711089877338069424786746226603432385346500874693234152450050690180167644374201353453587503168852262840362885349616913911595453296446794226197546766780309479907304170176603183350274107838544432198308501830722448154436201611131283779349654516580263552239377001077477527458766059214129346347351882575123217154907498812382746693308528796208014431144427886742193784647653918119480128268924826228178428812243733793706043117493745609942913440374869657367098185571123943989099165051603297963694617946025705350437117207755638429206539841819337472082702270189217370224747662028587820302672777925647332610995491702176751045662504774435011155020201605347779463047663085025017123018885105107646940649640982673546535462644037652065596856505802605255440530547562999092232960391778028935532916782376673271999377255214861551963534623569801066005379204845925301117635138314161181883714265748146272729928090399531465322949228422651777047255216918323881308026192069280288365332622758986709564513519724552289578612692684404652277702524633201259142098386086435630366757119397999520330772716908311953071425889991494611723378290678377023636989904685338481081180380962202265988646999778961107219878247861548120231420560785653519151274984931103535330671023764982645558613426668265174186177635910613226519523259384874923139892082283828572005213613060314655795731509534446287614555998111208574050526948110752675927736631905393452813375183878364111024595039941517007513513606798041690323860928735684115551494354486979680210887082002577266148814146999884280846056469723622258600651890651323201277504127977985595898996861586034192835346828482913926113151488437494942085645704862942507044934873417244378968982403805563022593720896372846329559880712917791379675796881219432974602670289789022059856674887010203080434428309886346976707672078183165088180994700657544423607679387212318207006319077227670845876624009590747102326023616933984221769845641911442360735954863314035405191764252859213502026401896975829452604303079223405751379389882834367860881855026982867601293808418069056784938700621225571220538903405690997425300275708324632641642213652655798659963766261985515609465015386479305042839933454538074298851977337606166371227348881988453757614058931007034736111905154853523544332890625289779430447560686286051246260441407845613706925485249195137302346500525467148424668072392072391960931212342191633441926952361284801241647184275730295809139688430515303498086397910885786848360091728731189545360442256244773980301475483713150702802365873054449773704033216890363621650719112885765797148431844009776477627946814470887207608906479950785793348326823520216645859533451098761788546790286456970643720554857500266264539299250868469419548196527539025619371131715850651831169623071712902102070365126220668061095956062778337991410925547145550200687903297967395919423321109668420583289963439779404441370554849784493158820669921347446863860887747087942517472210237257620537167520264436974866961522193138036543378196448087829537375782237520828952384491074226339195551769113451560611788749516548948123165228338502232619610809487078638934483247751151125831509417575490947101171541341246906859213421709756883346311831000732935459980408565056331827995743168457157667414455590554792454918922304626938763455121523239269026976611815540063873202132661953524200842970116867386618321704723647905913666125221588914949831340810065681522003022016256627872594568860077765505810234285094766303676788688424771502609908688992184446042373005337332053583217160474092602453937158046745299690944131240881219297625851785179418005138137177077064836169823594941499672394811901442187068749874408333354051566015383719774666106312556717799300221830415355855360541939703367581481518474646945528294420587174005330205741785717989488201478913374741455930666971771065681113205047084949286634826542023003911996151107718061637875901741601608194137658771793692376571614205806077739976203977470516458263762525372474327875542951763023312159586232288093383969994904756819635190171338951978430028033753150340677558438675584821002542398977942763729198287578684220210765183811253486063247344877794857437941379347676728605504303152607359264091754272552959338826816395230440365171527648627351934108853631367882888528418256703312584885184075972007639311910602983938386114069193160072838423076151714587917044371024788507153988628651023685602122857043914275416741288977346026527326187573707307046190266607699920446715888466396439191661144592802062867570668793857045247415376602939089511674218309379758523293544871320464653454745430024976431366306999976489556708383949015790494253730383273895198951839518827061745310979540179642799709840020304257977904797365016590093579119197620732670412488997941811775126776768336859851721367171492147248321932055164077567018325183677912928205420912332565444900899316973958866814006146442994173504742232732718914590053486349243547322758863722547447390515742006109304717977409746838127620146369967380273568389519820808026151766805256317576987207066523326927534152844143285666918684358079436963782794069310872534689774088877427809212978193129790507302548983513952510432066971274334145399643041268444267539184188767264238700619306465396321262304905801940694227271951271211081981904785307018469708316421356115446171485421459582692867340936758400987564872679865863275050067999584784358719814363199402884806678566002623424537240942889675799476169434122305146916274757238756606127687438236272972307464444723055059795904066111663490137870564102629084054008910223690321167353755130050507406324780470531727542120872056394842284829779574660268425483791767691950765483480077325407889088279913052080034359042993235181864211183840885531264394097991207079937606482218256317987546587060919518690897728076174671730908497743079290075863968446974354957110605762090409178213807634587450003714351696427673255133982778315390518436947912546390433093078969246640222004254674192124986305914937558615450223403193508651494864831383303862357248658693724805510479821867423581288470804464623340245441853005579758755611257209306478221187869453149927622201773894188189512545857968016802807512155846311105202825709151075650238074110069049244443430817430838492484979506635592661477662596616700995086457974094175303795959259851171446183960163810706351144162769096207909180886999419831024600919592979191619627004898396271869419862022550515400573627091345549692048050335162306966320594186310346986200636754642273080460230181375474974878544165127786895199272001742267182259081170601351069204386412404187273567439980894936783908397372730589237702541177264329380620251204239988485872002557405940142371974970376820392068451244425921999329426306449693397447846706801517483227453696732755537056629126310378460485864693090589439752699083553277410183184039551930428637378441633248879693670257214370046775251474213475843269233411945020858196517239657346638386681883221994823777590482243898672518178658006285453371482353792035937063612234300643957631879202062917112366281393871487533431556339079782131910426766200987856797681852623663475793891886832899931315199974847851572885857784636137894741984872070155751571027242978040986409666830687404647567066246684443098798760150058257391322812607622362552317250544437248303457149976243522400838836440602134599882495590782385324489791976325847132438358177037877493284475470139045718187471483230924898304246995507922112850306926059551414765556503016886558098686415154164424384593108922938398727988277417521499392837162388589326617039147101096886631903059516743024567538289623609899719595562843492696707874424775015144357841471304344930502198963530603514909995494938243964049676397606661020503969859505790843792617450919447513355183282908513962732698806812792539619953810628165411496579977020522655376608322120167566443383765888215279333838788289471397517676097188521331172147994279834452135155713388294806535744751388133048926905774761324215606528741895518607892678707759989159612915167358982682373117657773303551546439065480098783730739849699786376605334365751392853456839643540039046536473579968922792719136931291883218625678617992984351893297282722437153057970990100925098691401149473377282175538509653967438095363165045504569813928490275785373819479713538828276814380511923677298335756668288788407540020501098701012502883682651372026477613626807565084005087089595800452902389781419213219814323854319370760494115179781929749599165747618617036557888985280961714490129168794053154146809674105066600917724998740536107433728425312444250620051985911225480476040186499164846046405120835198819639230076135804281228872529461294310858938590001348066186736560425811920408143862521744024400850758480020950777553240404466179396927256365699762923764332790789579121536390864581918393839706662347484459459255974495678589417020647615278089674934313641480024094333018137364443805111232958652632976155636583448994435357397411902554574444717151303526923717752810166238390265353951085543777716428505090443029280534386864011841926431358038325919824130615425308921590029321417995071041604146446752146908125294564283413515661956063106275618521822670377440145749131630441889956497605814346432912923797915600363852392188684579843885315004623396467155357196233923131352555286907541852890822286172689876402261944377996349467598066599470583417361479066584008498233204923641463625793659272944715731579472622526562387843413563952650158465394222416748073344541459363515638341107407992123682953177307947607741257314462653500644731353155146655268762231280638008786816064336779234435246199192135792427736512843889249736947906128400261883131430516224129949572753376386393089238989634818384819699140668037308239871924285581856637911261588906044194658793298108874260971148230756009409814556210133638753085306933102217159842764802264634159617001715145229851313747316868037592973890877538058051635312323805018577928609174790358800924347133007375898665439832147302542794593212379309793353024221852518070675929788080204875652133793036690333589557436038126394952751737774786895690854055707580999409072348768412613916727411241112993746859697266714761168468008000612099132236371365786750030219658328216823551696113154274318265681026991750899869455305810921161666030014982322110538486675584447781778670190271451223916291999873023166267617252877278103438587032297435867621925411931830720104513034778300240965486014316941005392340964337937550500403985513714102242433819331295523254695988676934375597455200243996159810457742576140247909702146134305306097281493354494034763860618239048293161118575361307379164951724971010060547215519962894279871599512178118358977713634104471689117159302037912448026725115439666994047840480986625261501220890502808254691154895610191737487142525823796752572084036657820827802841509380824250067149576252695647166641054903425388165359420550739222434373009180020770231867856760224355119240563453126828007189429159846032249285222711241048484426672993062906197538635840364407243094547860715990818650251868891484028935445117651653340989096301358391724746857818590070537290753356475062250275167680289724756701797105169147597130813921301768091459458349550669152079996822752854055902044915770587521533064822273376932287406415953164947993765103853264200305149565467589431595998796046086912804364505469166355854693816718916689053684707081242783282042444024090719370965941029413824800502483457192269085534215125676627353964837815077979093905299174233954377879776882889463229963406167386136282620796514180419887132832429540974084143685679871300260663849212652990697331156297203534846121525673477682666609163439259530785745542105883323143790445282765558808031920541862783897657039492686132413146452568564709172360469949503608029466605101573901704089587911894087229064046268054926530966047246382639654182320538914166374180776345011463352486654765788578339200435184355890939783285122733342990268139564664435269358392015385002296999824020066800768453835026474587715248178626673706544761443329230113170331818549222215496451923583695330755942953331173815002034416998345874826904140054954491224899662769098818074209462999956603757670020168555797330471172951994851890610552611174323542263603868388702795102542452578220498245176031749459953548842392997627512623238444712336669995581832038147045747567468604399174234971145136250002257558659479002115237637104523604348526178591854316834924084385235464972874039985232913712052586173791259729865149106836191667352821607727635076874349145482691878231324902315778093128464635838665044054825288516471607540869905335049733786018079957076938676860852006380918656638233039334895430417247902121356645126620323851693306227949720149520132189675820191882624517437033157498367355462644151193481067944202575504441986044963459899457809683135043664806635089543027614999777011040051763009439618025507938972245245122298728801698882441575051133915533787038567436269355991159608111263851630311518215487180214723650612133141010487302779974723105449241770401526642805147481101856616287217904108666168490209797058705418786897364654946179610676919686735772020550902842977373814652840074649096822231717248660215848833736973473799476002212711650379646387964568989199189787592455812072835730692768572359329518706732650157322941093208664631443215027665179222313670866624807157082484117272537450260853010436132233943279440490982913329182152923708824815015990818155302662477805530164915168388646744685039220607651563894371988558299706189549282643393355751910561407632489544099648382393491557404963133491644514486599501607057958901625320687201201336115788174165159354704776319038374585075684732510861016863559352863816033836380116906715764265710076335814387217912024945888860802469144744491867441623762595881927939994484481755866768756226468596266089757001111874231935814719212425899718251956238987146423592571591616489002108484858722048281850903910851301365258967848924720513418202342438374487979974994114434180390024071004414486410754485065217423612444871956584879604741028451028141764644443587576134497098148594923163407668403016683538846198565318636212659478921344669560748701069730724014236842062861663602077067986304435534072690688542059433339047999886036615330907335769169212805587539220002696089101435577837853140802833141359617953903124816768694915995130463929013993939739693999318832672684920818950089769852206676699272017103640700964578404280434103755205160853562178224724826383654115189674897416763284415083131005766126807853481360283214425975227399446516541242359495213863894012129121213939833800254824157856717246443552692162975194920292770105784846077042905243174648652666230408311076258933644031910867914587395627771965765679938172635793913089073456952989309588088139490277572455642739557207178387317088277260151525119867001616592153117395008529800433823596839679774597283514050925952391228752393376582127014871462681358113096956171908399526105580535048320045710651926285174771683073691792011228884179604903443965867269561148329287377160297156713421627449709509665113752073981986944933285662146664098445983002951300039377701678114597574293516300977327372204311176383584523785968785330316825615288358203722500408052837211821801037681361121057879265615403138577874087849845114050705262991818579220417117139746750983636197632750818035909935125481717810800294870318417024251537304766506078449862317721479355305847695107245727513405299735754648998932614710805259554826155741602516263709095632707798715077472385000573320943897570251082849470632199085213592040192002339953474653340002470716476248912631124083384494951252422262444278163073471337563620341277688268623380630995389929107371594879370657891364212954326031900577371356994131092495442034179193939050469116829264343160286710496843380122597409361271683487648778693666519888951192683350632966161509394553493366377450877947693795018887356781311726155596541584811922113474786353886047881042497060035409101127514735437146604212497677424726502641902756647325057546830749608069653739710282025518528307684047541146596234448546707758914428715630548325918598526835854015378240308562095042575172865939809884122323946946874839285482246128889142349977215966559813143519935655517628753211307232538728263473752732312228861037359664043062158397561169078727519292244113520130004211455248028917549714966591080458100097706023870756754925292767310465460997686761448317253886047952804850483408732322804185245435091216477970117693162175509721302612409661859892311819873568104732336538748825695193079758410515865547265834330499347743171606062642311862702517871995602019290439504183547090578199471155026625608137832843904006327244113481040982364887498139521951991849195578685066226868824021990655149768903748327968713431228117756987841837019155699213036950120108659937445684915481334675346606238086995509971438266675781558299188490748077213959600864491150324485613346843755321312230078433202336351067492668370824167904724204339505189020431992168627018915629688335966424046806242767568043427515817140396439094400994542133630765678007867025352348186127127646009386550277127744674809836307655032011988696028893324900432409854698634300588945872866532860502131867154244043619345435933558119407820341560494927066413445312099367582083965879818618839579113279463625852544663024391065547969895420133457510425829450472324638722863606857045308805071631351682058602486616589754560831432833725141991692509717279810238580914193528584784758348049371575785047248873247187381297535414026791970086354876074606191544000255073554804717441267639178676516438506700995828956102941426287576145694701895065845882815285244805343760031928031246413031955184939383050995194197782933962661004320866770228192493748518639834983651076443224687552345334619191303682439211826311483056447524545996975722503016581642041442932606345679422539419264913810766314511629328363457860212674158559831991181100396688488883298067197623406281950589894741582846418336062067754352208499328597116618315624219162910218152573374734705213430902949394325225656728322232570064161529744556009087333127484851329140276171180987967002425969981704238962697583954431473366946899142883927650331747804522339814374999308232602934859626198631588210625267574626497752221492988229461102078820006024485965138663627381296226390464892851436604390966512720690886763547240555966337975903937530056322051643816006117125804761713580056305222294815490768118571104808330786096197488297243909447610502213304346841400275620703505692855500722335647263927462889241862812258320949511369326875237049914443078554541912197718166477513587077282645728353958210963989081050517152950290578893885352505985224683430619532671317982405286621589742869142445395832779234124956515895113653226168810840111332537428443283496096002948438734618786610472160708945523067446226475388378929732992206061973435494767867106117874620163244890616904150395434589082756242462224742882801783777192128024907152140952249045463539263282172480582599378820082258602601953944233415946828454058335191032721692942172340642473997225007144114395633725186557554966605227848213777407964412732544099151605833600278311428222121617542141937554433650889519426574600547246268365549030233314883491467927958550601836492827394829335257693823153573071390354087600768314012501922428775558794881878677133930574334964329891834711789112373042999250729370281633720429713024844110532375986175338452141269920103859603398816669658399822024447432587894166253885853719983318945629237909542533741340437422836162698235028824296220071035372217147112079532235137998697803231376796415262974343628709607735741446594690315223224718503449172786760771029190829594465256374928832618967455231393206824409030116898684597606233212481515781681431484405630780550829757924348879614949570397065562358437149968477446904614417457633709548371829750071982867901748607812099592751839292647879404708812298510178401309460516610122521760570762036301622658185304507010372053887735703986646399081348301607504707678917368893486839178643706218769962004694934740790820413670166341489469798123466483000777132202450530028641294807863146307166422127671155382119975168516287816684579679783130219739986894716990582685122820884691446733232089789318450669982042598553629277454296129456436146642963906608283127935912913523517738714060336866027414802818547532409917894252439052842838489875932154560501001202096076643009729736309954711028776559130645530644692157138590206771617558599404469664820072060167966556775364490841937999782305415662225885329060132472066456050329134617223546986923832621787303772115401324144195783677780267996585355631491877190709272649051541519762018624094086096413300429024683574068433662179725592627804276599974033414598112345511726701359944936757001918983616685173972996864885574563420266107553150905452165717726680078757500934672051695864827145461257985708133127027281286839259191404687801275466625405228542520423689985337080235374901191461531111540779393410432727979886327576537269037014091368927598415882829331425822741585089459251790733757805175400449294470686573874463938172754568669959891722004703153193301880437894350428513054037068745288420417942930128843730255417151805511605344885521037938048179268548789057376505417225012383735160388743890338525390659194343087635857118111019049550885585612935943544843547392714030160017702755188105101064982155635111767699150137918272791969266513204052540466766895489486475537074503348698168012440284394025664532466001748122226470729616685759195591800621083775575326634796812357750034098091485933817945151860860781276126806505183243411894279577285730013946923747754759786201885396289177338507264223578024929000029283292872061525399068097999494781056980194794235392900658289963194912460324174069645858992560110487316240508175466273428514628590655001946068949067159019725146779250960080631089639272831060987217259525327192660863712726495894708966663878442356160303922680711494182985452743250769940643859209574537093744463601479971043430634729758194062802023097506522083148049186486276108042852672811609677951008252380157517141456360375088629504076828485935157040459779054593396990106042582494586921120094001674650492719270823367699237212687911125971150633040778741451277452531981396850852453157193542154175716748032531112473782985790908776306260678680740279372531887840434912065122325874517591383153224711842889472898932405525344159333989412642674722503142568892436815634672389457735990775115994527054709505336701027824610406762129082652093439380417923581455547001058319508969514387352845148967914606954567472127436824834304600521508323574906872109674079595072022687875504982121907256872923481679372221942656261645527639039236280987413307286610476138961772364100579242653225018136937962286301848901763574125803065519938212453379787366748555373614579717199318657634271938631537433909820641981773265993102263095990072041150361174983747682844288539390857703466411487703730114722476917973652527796199531891216338251077540100950183355145249394251778719314756475802337343886547744364997851574733124246087545712669560353642640799188806843027436777968150415369022918937995420577876597821076181385014940509290897998098951265402731208591789526857644284781507923361680109891814629941093878534166870123756955954027896430522084111663027621419636811188453135008933227052014031384448813491213122034871512121167504520104943612196649989419904307793444726932910914532110677241082001697395134120788194839488799606975071946041420223655748054836229648697542028043772849494360466654522891224601096911247406110103642547291309839817861231383037673483261209581133944164292814226236409340347510737664797432495989733128821920681836077396627453981666323854207307805844877484003377689257571515379768660365208349019236784917090843196200673226777668411061903858767307390244852573068790801473274955517295473208384283295207692987218107510697807024837254258525960314396369029502194593252341745142964683903187093556782491220650654759622890736114990775450558879150531164623589667620407443798934684579346338375904982687596696067875851472744164668309325901209090513048181426429341958425417715672842381396170817350232380344531687751898470492098427085342234553907655424521148395321288768872095091045570690327476202673487800109609734375940064541739173457511106150290533998576853099470874195601912017557767578067171598270191414774981451964167056864487433173067165680929291797319644957824418541447046709883246648992600960190834892334420674563321918059523274634200582921076849879470270360457722988033872424813980941118319068040782602304801907550875282520822749137978429415911710252331204801245245841091100634348836785000055161700256149631011656447413162049589695660276507391268921705217270385930138011775896296289616045459208009070101435560482895857338009283930706569283444338654873055468587704577494244476347590516048415988775226630726038258356404195779955915949505863027510097357751995015891502664979943935713652572144727158330524008002177026401822263690206037142754437428053984289331365401882441447597596557577230677376712913649159348834181931291076302150942085048840812465600638446346508009931322859975432270263501862767533517802804054414353439215114371176165843449119237833998223862952808211085769091721435511297811766855618514978227163630063449763867709950885410005972002142815037528217023702571746534603042190858041131296009328811796176574047937429579995604453630086220479880443538163464476303998727709947885712782735420433794372517397639556695657159321025531355991629745897675098006897869163071024171550355390882050284285083045888425318582736173856963519134005915876370046384026252550913225472972164213088006362307239178325960914124324691610071389133423905725779484907207488537286326818546419716091207059311913956225684104462974976939339949593812933420463563971272555557584724101705978309677519209810674382875473525106262315789930970911001439275633857968645973760740434586638050169426461205117775080424168777239485752233855923696318722310729102800116660137751808051973500159396060865628310772479681857064089941077573576545272604502210400682530809917750580335274118673436542588838226664281738294976816529258421983272094477852548892072979412687734157611263310350847531679003970443361373638530794946495170283432024735490465868570374313683212729724027863972180584715854601754321278071902262262939646959574279797466261052686823029830056868332629053918717141949215859331080433481972549434030307064294006350571322458149730321894360703368431231909194362408253419284178891522964336847388197769853900574621984669525347577001729886543392436261840972591968259157611074762940073030740052356278297870255440754055439989507153059816218961131505041969730972829060606718890116138206842589980215445395753593792898823575014123474866720469356357357773806484373085732918406210849633097482768941126867522297552323062395683362631148916063883977661973091499155192847894109691396122653293511959787255667642564628953751809074494936309292131412764088851017042258408474414931911865755825721772836144977978766052285469047197596264766800553608422096895177371350086118904524330152123769374570207033898894012337669396105726953527814699719136307074643201853864071307997507974509883554659615757828497475126457864411308453253231494054191726336489964791203287817189338731781932491238234218648271763723022561720016348368584955658165112489954468487206936219577979434294946402584199390891353426698523277623931436525967083202637025092477681470490971424493675414330987259507806654322272888253223599376270503983061723265730664128465420482044399419542083525812731557072429783001100586277303990432463942270779149530320717669485722880124442767105662562792072453976436697457645496036607226893056115542783335407437757044552889180334765210535645380836721002905117496116750921357009667781874423147637728375489041014317041453597644026019353091452770066045986580755566037764513106209387715649057601501260885511311117285349949799392340524571185752589360706418036033731020587361035632720265201454066209203485447804181190676544987051032811086300893755861238070171018675147270676462751112278370321196384461215027925832460559045847109806448743652772766200388546887114772599651858489024096983884999164110624030860877708015911569984022900634493319045065235837735659026596323631435684947729308408728253312359981709452440439443996920648322014754656580454961488146597558465955210070960291277072374399460981769290988681914962781521201190396026442342841498646260812142371883726902075292934010277795587774178363796456314460339288339139819612445115683485538769161832566273563136644069416804106339791004268218065172541040007809325259657733305083458887224066136940206393184819586173210883551655966694516897846137759772074922759182084449070771936181199822438863455608103239195190775270187618585143250541833344137566281455315534122799621252236805704739814657315411311395267007353974794374563299629717650066837246031326490559712509841348854136754316326073263289846113081018894329672685743432796994537402101178391808837236796044151360499019063427414291487109700862875626199801262028405461935089077489604408130739915630162465710509031678383733288983634184782910737954069782231769493443747289605925755442251045208133670663719010646403767498218257039593051050494382150167484543163968347795207371129740641138484325122245021319201201218551905544094542080930003990781979342501788126558322439460759046700396788017735973634361983367894287527237883302656951486246706274679528094492939860015762208438388679507109086059684759109118929008703512124108644819125038426651964302678961611698618730292375622289551728748052490947328104778331767715184096055456598654326306872928505275878553585633279337474074513585197531732764369894404988535385937279657469334159293610394400094355929125285696785838782721752758504491979204851778612257670803610339546118061852791525580686944204278690917026822576790309032995426134974110747828114261668273227128191264609838172040234143103321222701970086894245796701865459213761984668692092562423322466805338293920365836290888130153419199378408254695571314051740720564976951374402645590273389043810221091598830749640149532241245870978577644726358177714878550409518128189870297406271371299307256196103767065433039889014518359273169315539612336202140238368756759234859969074388241433018311929692746304178911444149382892675501333378921523184094907755821060664538967125922613062005811390112491082660617653643428670985309784472981611445185591929914940684273170691816692311191354171486135590311571283766150749134170095929413592823679468847020397212504041345772209358239672941707476412861121837376671817835432925709842082763451082278226037475150124698803289339117635952536779318493677127175630051285835258072114940257933456888882366200477241711230714945538308293555652499427433916984017157836270434132239069669096028620591736027777448699317220884970938174998738675183180355544176693567027641242416781415416271779281353158575903353721167560742543655443435810053815167247720791319216499503111693529305950509586512187738099059540300380282606362092641156378728239827607446288999408688493787438352620519292407605833430725651648057061966896289311254646101132674903354076060422568901191167506650710971832504235078177407944107779467137799351339303642842493967417151461927785608341422468099889192517506284411160386160749362208546685326670041416888031194592871628647159129971051997277307750773960897215665442220740654850375094284719487422425884622446498232439665068644520695669366174205812818422179451144797004096245735243112025007683520639957079042179013182056498930072323632330886230175266954092014207926614974056486260270357746007859045168284905397211664283243985836620737074463744228998697921094374971679905200478264460001059861964830348614355620159275093536174372591974929539474580745652878776538020653376331331169812902283576960113860670254807753465153335524994031830023134854488840921679878472587899650634068685730407694512459344975625728380322254354932930198601063557229458482712162130518692968137607483265711934194535709942301163894263323473594943386273004173901080697864974881788433421563128712222643449776178395144536106963026944275137056711495212204356142405680507181275484868702809374999592046667233436635568346390304052334340378237086783078294395524979905286914787607643401870164511895534869589100579672335426397438821696629082214536615773741239584120147427069405859695653187229573193038806166370028399482364747476128873735869882131987744660192739203708376355275748153087855659126754877257943715686779232474530831192629140871729527873168238367606459750505563124203092235828175575656894365179981614051552667945595052080978584575178956602209290352836525025762801981716097073188073812620149281240779086950213552014877748820624601770932148837814787792182013134890538267174404274779397508889624827781172803782674831835677452150934153301876081323085242955077229723806907286786354067178739437809061347938628657782047922464576838204107557122275012720275412264628557697258965131382626362625711182265038141195260214981995897890151023974729940860328386563640407976796019020008037728111806955549768260095652227856299725252340006668201637005327206869769339632219144034884484629004082290710894791665086866485133818969484141888958340317228263165214846892571340212836195707041736551299920529229806461800858158553768798485448199396383947980735773799069352209651655510155213874153677335002579793920991671162451924555454137104505014898822014304377197920039917248542013913850040004223525938675553174752665382569014923464274273567575626238970623191867483548378832245249714780924761221815744985975207050022450736182316847658368507263610614723554119543655011396599442409307662688162110194483944009838024917800269677815879732618180081356128138576529330056370653598970443391839175051891855834450840869352446219417025833392423565407033502084057572866886628754260573963850384634502031214166510847140005740436473015006545485649404074307544344424371206338731297206761510073755379817534655000046496803249202625853591594932669358326129418722738540034100288346740645610462948417604297260800224583428201152387834747025550624080292483811285148895770484157409276677289678560789077305437513761174771312575767121112807204227481393246847822573450370077506705123819195335076582526651007207328765784888896983039397646865408278420848774749412264024874003121289413679136855962536651997244894442423381453265240213349490931479568759013201083473295015507135220810159144804833149297077922727196884477437427993967600924786373159052406445745964888547173097983513195295198111321524452263949385064866915353624490002956521447337095699509723495891673196782070690969614252354160460150120921930164363870130804227303813660931010855546840078026559934396541052980040464434673661690016545797889959462805594400762447438398424768045734858751010234877583612756314880776457938436844358894582406781479505334163449944369108367609810067534635887697975352643998350460946922844079528940516722027058988912598672144153536688741717749017002830736956245119285253029661602077879085896900434143184949110745849539164092943177884939563867610001118385904558950113636798499381899125962461405310901663908013171099891462171261587497138718558463504491305689297194422448764395543248087856356136741686039585280449829334194742236140096216793893804468784382738095571358236255341043110816058412962393216538600639354977769402058596960925858837133847781703580234997213948360430556693255784881649221268003710870339317377522434674960553166482515544776733912160067880523670588327672845625256901194384459588404853371566867445467702172937772992887159988240494043817071252179102132203887762990270939611064097140281086067698385446925846034763185469171666057121850842847372823880501984554882010512303840262397911776732650937922547103986215159550866653016706222429298254850799175347851148348218106472832784460706510948094935479191062701725060137000909175222740578471895198737449547082063450638144659909654104537620992005784454452271752418277277933948539777884455238634723581446142979226596233338225227303027932998363729860294440289899330401076749260227827359736194093959396811014565083029469266432483578582667710561147931576366208198502733806797589764505436063001676459466137403821497712634417260454741653520517768093394456542604522681801035988937213338919201106977321503408307690226146657228608568113876895027765043674722238715396487346379618718013763058430573917877466045162807843926279748132191516299029922702494390985169053020757552627303360560736598524875261330586808668547683280765765444966384534495172353873957234924415509288264068415878623437165626234480833796020923554456356045629922328843687175978327461062120612936181105078616435002947051528271566693814667659912437560137505956806971955420149083317878424349577702140727965410279587517410735468817773959376924192761012451149157918121430932028112320222477162232462344922729342511854029911698925451201839532854883687290540139207150733523984731940785752753852382079314477163947278521917099864605757383120227918697206594334316301082952568198262974757275207682240077284608194220164565830131116609862825997175564624878484956506681965054262370272430439151705476719278708429679298806977845437222423271389262324046682388502456747327628155804298806982266859590665910318388016593639821387473183345455114450351261071877481174875929848933336172212456792350584659080637145807125123489482318649093623987105733580164146010951156230012421170647131190610975056155194830736656237721783288717487648876119029484577127058211158159511612757014753518695091021255853918899991244355097726078513345530085784959698139805522571640240209188942502514351096773194085015897038898382741615174912986317740613605546751509350577221057791610756941763383560120728678052769129850188546255621985731161735441578327817288079553773675134910179397896481870953073153203877540307125247304634744609716031397258383017304966770143872289265362204808606374169578234810213537017828091579190882345636934292310325611283794930833607957436065058175905675891853508934865571201269325162999652770251871386840044686674634891750287202655607474953877624142801784741014593375000977878412390411016464787509970378298294683261367185513824067951337321947922049164402009063478988815659598771734262860944938029206779034394430077100197631016768639999081938683194394436225603907140359689705266499743927655298880698026228997292995458869800688727203495763227920484108602366908612594887438558725074509515266468080708723194103812954764822063800082216333239659625939859582113063519745283333162490103450580044338856795243550332413431316547952472463676147178928166476527743684554802400727499231523409324750181741023724768231254089692377633099492175338170869027633988630436653840627258607917385133130112440203635293894673034114391169114089008692446144460719019331650509706190396381513356912747646201693790021152642461428179428363651977488843490579918649292877063418515489284251250316990509320955451658762203495262516391951854428018609863702159560650666025405285410641707847129741832111068323851306900761434493514710676669498331236927758808468402914075337640604342930146456808956884713263934830278493413326181862601548582199365339286698160897219444830504470366006279531496814190727575038924407768712005316991331420428549568018047024886933074735264212800562621510378859901261031106610344148696005991427580782341541770750683491156816392625736615719547888606917567171851598409394742172386692729122236005996264927318738893158033909960566137812607142239651980684777548062189777285695280068082532909984145297521921037903344509923512867462145026242367984455627977565338613551981787637986772978228723484502629405253302787319069230249705875724190287786669874558225214814540412258233551784944524731088228703155329383187287879307810775387585868070377218389955389758774248266569560206222387430251914792725398226260461399344229730235125573009456006196760653030133793218332165858630340434617647544279972726251414955016733271105704838819315915152171970705893653562942378339314740664128080103285863877078447383001039985252502901518234785827308398015919620860170696955871020126370383475711085948280182727086944159048556709796619813602160168125072130747911460629262710634879544962176682758052733984957221637306372393415992975677274667681850412741922795971910841197012894277547401663598255832961144212604250059270107604795641058812962232267594094402953840493536033181445840292343922236635520240364594995592301506697395614116148106452193107994206068624338792320878089181542389380066743278372311634403951029968083804590090284622033611851190643979566457914902816998990645942333804286502865758236406738346154449021796687457782951886939230916525369507178503579503623422146786574840141540540289724611298336916538275498285015498958712439303070393416502266292331010658148742741879480149769436521428707601470699347700747563579172768130690804370831890288271286925723955312816896371462341921926908219117735001645959482404636927039491116970199415033713609939217563193547539198900540209125327695004721019880110270357117196945178424285401689285161668561218942443857994724409785498931383094663018130323337910987964667193886311416913336625369827887769459070031237898410810928973204058988433467236856798659909396973902046163716133385654040652651707105815086033097562553484273613119423260302623585413612448940804547206164480726984830276696827056230967615286346418607301771471740590720207429232126855358362642808381518419045534701556475739742801868091434825455166130346895242607712359666797604334548169985784643061815542526581144086881975175420841692597282997916168147532710447487928635489990633224656216330325301781592047769785637342608376172223436105346455930793982225487922287258825612657358683176945566448419385162028502623112512052287808131351225392227651417167332442264797582892145579429840644029123375297154676396497556584580666955995511620952049399114801729034567400596143667829819328577460812940519415371356374940341394183640974904307053960731386865345447899921373122780216050960103875580721697324064746959483323988237528964140545538787250474078530671791551592079493465849612094567428357813515211956132028617134283668714337694096454674539933805045101242641761033237901995114221956561182390801247275281296991282588028275643501724118284116335849135408266807427277516881927084204771321729091072044695001949195757011986047129334425072730583752533063265191956293852490194874406917400172863700823634235520070911833555875925974659094886823048811173427655419573121172536865769360122257455066787758542154270316505878193280628939228503911205613977265809631751941976708970483974594866723105029645434447283975891069996873181954785128231483462487963232338445291770385037274462644341390505806401648484299325324286527486186513615267386193478420133252073247482870358087735005677953922854030683049716044294175332323505789289118952017093171695598231465474206008834257171474291737676358425213617914231470767952209822078315950125021843418539800136430121538106823238269692525428274879014771626048882550149484028242184987822814026519228282583229753631783352005515136649327672192046022170563375608981518734079878133961034118538302536082052187554466374036032701913121471414669852831327070952897316311857270237714847668176320896550592994937639927411431717871067456597234910352630771408364006776199209146456469243399011408691376469506727004108958468969471579237219810011652469765382652227789941134181144447749593215525112584067330181459946825956897379943012829651772215649010104837689571458136469223525958282684980113687154613725787007998478841951300628837510876254756446702547542831131247150453441470287711178836646598652446305270164950675229793959205100841436443491747524514780637963687083626252962307011874865036983225873161317153691492959412793039264198508724332558737869543078873140481379888961302859415103987367987767704086481241547250400256137019123583097342162141173463869555107011026632708790851855284513217313439501365562683546179008188372736031039516976418964207307765381786813581558301336401812170293590570481488936971416315923686716632515171514035347100588226890366676148547455019425446635510765734539278818746121644487322527850061443250877644683717784571607578599204267969592431781009237059498458178531151096710853223257735282960837230553239089052503796174740017554033688168816079417229419272105928200118833924965178594630267810833669322498099930795052221121308126378800850033389758770680430143879956987627218117210335583473697350401795415824972972202491955565991823295425068666729056273148780596778658959692154957926951019744655264427356709212983730046995796595132791030055029396580332548528897949172411695359596477026666311738595787731201585409440214574958264643257619766752314174110569579112078460067067893575453620068222034475648858294066559870229383240125082940633672180158482538556918581278976086245514766648148123707867169588691369697369911322082319915952722689919128010992758268771621388723764658669328335192677311589763501342868804469962221922063895337320840904360929611033354698771999588696773281604017879258063160438506751413772991239997222953352565633233178959392835964338121627057626943555293454570064963079483478804969081051119004230258741567622662325303919100377392258966699015271661264739592989953720802038559241566515585151093363169545820862176943310728048914033665066321610638315808677692899096827311008677747874284382366073383087725394496621338923110885316187607804359644003577028134787202421220089499441998434019006036061039236240462014536590850106987210633856075765579464016250174299915361770003638446764180831501504703951423652600468037693937389753151816511728076801436467323112009093188326291926531509106792047750426546658265071671643455354856844758225524795666465683974977096922874443412489512609046448032305138240874116155161950949498339670966291770016342666238439612480298187979550107079084300563447633691066921644769603914549290141894634115657677002167067368535945851716550968073424475861154893431738123230492260952011633136290411528968979292810651709766409611640599633017369571846190156783377150643137890824474561369624162437589440671870662085397076309438934655782744640043690239141788939363330836101105308336799290947733287866411568502252348754184932007750633136588900887008430897217093646330036768700012721747182961231973555306010306931872649509802262685212963079558014647659835912438053948574835112034037509214253810794739947588718577556598898985921016604452380490770883371284935332454837793004304716943582642085360016039264587718432179225136378789771053739974053265967091260580146885870760792235067316400221791787435452574389655432329242380417052913462295584761238089600079091752319515362795228218614636966029134872680118524493917324779573651282890298072393905594362247101687335646838164931041412307106498474399959576609099593890468544752580111634352144174600596448329031647763223585692986647252148300908370516427296350637095821752151264099173879997160959883653809818813963735121424111884738894095274164794163792383331045432279478895858837569470470804280554609238391758409765202814732381419097632988432620412464294569724284007471693544688323704836664051453402682228455770388461921098919449388850612437305681923953503644968844787006597771286979157171621937731022901683058690376846997633795172154094070959902161051913325835864225384750012526564131812754656188622391349604132210093393304501365089735083198100633787597718545520061695902723875174695563808892821056283790542105632426361526410563704704410273619647402220463871624192351291872057836802547028213976068885255536470555848686384184011872526664375809584400415195192823068864783114926442009103382449696311606376019812490017034063624521278619745414866910510965420678252987753099470222316978337879146825911445941874273383419827116417187613877067384418693034173505381084637438822968111675779678176140389812818906231539616750711550081664221824090259154302823450422613563675129045816730781544558479950037043569976787720522465432381169056517140153341157045132028498438954964936448025079440044732523785631226799258740241882367282362620746639687436658381096762684662930303866748171857695026515770058820706854506819090178428595910230503479124608180248394368696788223592996935035400636426440517695767275945345614595425519476060393426568916586716462998511576667213274714032150301360627122808005152835206900473224552285862096679850984400093194840661919537935581125675979847118934068209798752738961124907869530804540603981379219327619680401415692901529739496605610356088247367828552341040751240606177141747295516754005266395707565558709717914473033559365529503840546279055905934512400620441981510874696133193050683321954748507961163887847777548150230235559592454326687518104935517685709072097014868631905829496141688190587047802495701339744953511159696892074028753008260970656991961191597732426861021989983978985340610869302263467940682260389039866563882499533092727618512474171585479338321965750351642786076908516433264450768841064952172359294511837000850194534880976656959680025723422855232706446663343801640995818954115686903910819380031400500831758708088883705097397381687549010586273108077492398236838521371392604774923295281172377865073444789229967526803642432409338260202740497891016590700069619600371877785761431934884545225523322085659253383843722161293856020162226757421692229775911417355440151978800671322254115928990403329018521202155374319787465436510236807077928222050475590422990872643660446715113300089444890735386067919934643377880206752759214293588360751538181850201377010187968031026895967713818364741204338941462058129587275610113359421498567463010267169457491597519423314694150854252269470839787262698732269360823169874022068902468833005780848218371303202685119026485135442167175420930556606413528062851380147562249067360781758321946972557854411502545977197564766683389313723626763982973914284881111502392894696978190879740130924944613849476232802713150631269553041843125483175753039762862051721544048741406611667817389347267743339602524112653667822091068163803791127276693568262310968755776882250566228470658912146908250371843236544940364362529042257790750798677292139659878959519751605871938947563824772297816054131282467525624567914969809775285015627713229211719909805263135713342666149457054945085199892047062331931400051627180607977252933103788717116049324206760826069650635869699938479830952774514937819253297460371011771121749055128258587833203200541564520584878410038150617606446405661273850461845910586268935391425252845733164495249916344882794266628272634061472764610936892739321306518379435852371018945425929370438363042014726410859656344595849397663635357249948218700388912322247944962391564448184555518151193267720672904382462220742351253269469865451633353542571018778592317837242466792105426188749906308260230083891406394514615082363609295681856884651616273237564152013357957685685774705480188308561591626235670105768512578981624539761983633857338840939295164580866503883364316588670918337424457163368199307822971312806080091620892230112550809904731027855973281436138814558827965177565270405600924139404692066197270579500648350865810645169689290739438399680312797603469777162039202713740585976562815818907597562610424525411267648703338783680213723463819354271987516587830618487284133481386943581950564401070513947021499654110310567255157821000912343392367590637356924441249954083097307184316899433528079185377744377255354332567283065063419012272405712968047583102334194634421397168348126737191972617141496645766495064519529704368400699177064570821723790076313661423909531323342996024228041591192202049693599383702438494722426185194180451174609548498080331081835511506514264670830001356636474620024282664574192148106136503571623047575297089428963397233880054192249445211480924835638356810269401458599009120215818818736526752963147867405085668881859540513852341551420301708594153449616196606289530987004996742803648751499971533974958376620756566442674706767421724280925060922315722637879169409633031387762969439953865057986706386719681472973580099147525694914004401779674966265628041609638968257740961654280743595317945452284793820484107375112279718960924808157798044160838160045235971235780494127627878937997323940708081912732308160393145166290942321180697115756525644897288247935119243638919744292120947273993050688486763770355483718205816269587013827457256046396304860854545944001720234834974646781608337670012452062299882741104485713111246221168973046502002171929886351617540972707135537845521669782445484848655972614030248701595832744394683533667666957751273252792042031708624575583934337541579497832960049525548753816970644805177508236356315128214162315178103257224374971185142290548915821919369197846069958954650719916308463885977437528317105639538221109407583894991287508113631777051470022788305368459675573564953865252083835647630000109058497747938443164887457333990037591498034173730467822529292883574910635847746351552672426777656584102576901907177552624517072583714265363460194911964817841493144692782471149392952685058059973112482033155316133571802131058906187767054846683155309166460912233711150379928934893704425621961612949386431655499079283805288890118278750705124198707948532890617602474002724681513806513969276443339070887339237929453850213730845861424813202569857948562218272525477812201238421570929790691742224905473985957531235718608716236984833799622216473043225730171069098330868849169630438951486180154233482328941027980810457853252185947234788230152508566505439678760279203318316210221192903684224360892035907551557384363645945901847583962652922967087982432761550696853095387543949578765225015339727930962559192182619290879289672077005095130294628057823740959587492827005732888181256027801586653382837029337205595126222823230448881865323230345392219578404370124660099492971428717304665004226930626224708953368233251858115573711139929561188721004855526349288750899392853356899164566575605043264048330132849870118421622605616432502826447606644527207179084297751965864585287751435385824918487039124030988935492720858731262063793071544003668608716826189146592507901321045776926864357433675473889965147937618838334610277699611764729305025113276685683157984070286743318715231116451443778180387927478008483011740452992002270860946757066839117491395697319830871847119237685005428748801604190798522099091413855786803011325301949418688109613603452928818561749770854554206587989435230382274720432234138194150876693368199788322830927419203633064798362572809243681648984274930633580646594808743266883985186282392110834118238642644236040092660951165470713946827468136231350345834322811734728629848250433237855785110041909555328276762617469142037097964441587727650991625736768808298343985138716913343257867642781045270350757434414415992115895188436693447768105996765520036519632740249561347789942670671209260469802440047566585696646544940734064385658412373622989307177450795072692697320092165258342889868990035019161865842483133694908987226834162369121470435868560103556748761570459903219480175248207215570096008503845997976305912317146125218509449050770279179620241629392496730908517475728519584286871037515980948953101685234060492446661257933326197238623215858484615251799860920320065406317195079242845302159683877379785961011131597447827322966447811753721607221198741237167025906677665101830136312490132325444561818169654091643449605970697800921290226361572714893772696016448577429732636286545422483244267497488994607268747948073779205478486289866849954551856215101234267815101139459142390052828594170971285891230519478539687783499847505189100342240249669092353471075338904300257276823527455221799223157158810322593279746501213054348090526084215584007333965673749049889751116259532966345991596075309535455978357135400081021191803893816448548775884546227880006832659603393051099367736753831872156074755711312574394204800221268788524840063322190087521034103921626595454228546088822916276521260886942160858543022320424646949046108092036928115023353475795361074055520764333143238478762258112948222177351858392263964359044574735097349624670780270886570024945283098260699766894104804480377999123843749841378732719702627352608475590452436730762035154447744147423905062125373374306700533186206755697107521332031191530547794106427935132127007811063229194131288875023811709387069608372399644585397547343163875495604991188819549871688565833589573486009628628001057915676430298588340023474902517661477121288471308482607135552101439528505316699925712306842285906712056830932291337645802026840488593486458697309515807585631899512427771309761565332726803953448965034572108720119880660610918285273588465636385576769436062683865894595720710122194433572571616722246943219176248237250134594447492335764606354743069402486232989470260905724235344947610411946601935071746554226573887671471250525732697579079932289920314920732617112597600028916243479072798046419241048780975830442219431500227815816772228533849162176760489034256955613886642530966709147405874481053800977653784627410430712838439612749801138943007142725952384782458520260809415521098048254751205600639499531044466984565988115777942817761558334506012501001808750953993265338940458803105546388686709367750862271548629630405842517494121598587235543844363231100043380418654005488436401170557852123891377361911147350670801227398576133825794821190483801266116998441462964364734946976382546861878367807188239709637478459184019508071560404974411803232699744200806562749952684316655771961119609547181004515282597554945133649966541418516736046183829540779111397685294530201256152056850788514251829510764191986481895405372617849488888124879471580341530287296849426035360217448990419364640870116890974786013882132390203436271273231493839322330691965347758042561204915868839487468286404915855061069597472336773144093269962689161081379174490173466420077024364735551226032523571235495683844226005303993337199001972418023503143549907092501927942123896966589220230089092241145986528130697313989283705689485762260977665287947165788201887027871536744716200097208990538091542788429248508313858659798280944827279357907818236914027323060636242034259629369308888767926127328659064617609868370307283495026485469546878862298801740593259693736237563114416145077068836554827226959040114606392367259389067009136278232889333972730056783380608173191207183765395657098128287328609084891379786232640337955855953455591913922309123498862175934494110766335342453877414344787230457167498779900566125881651398949723370586698236936504959277481249215062079705749890267633751797053598408760280778509205264145135006205869999952647319916724832027919426606650236036807926176416014580597294253066187564728236295611222399475410801907614324856161457573144778918611026627986191985064604721030443525797372294075195907172583368845267733409154316601533785707741709130165883200703338652536998724397444835140138983642213520123857396893077402905572808971710114445522112800136035645025557091880630563136633143745102565999287521062470310577068527220199487110944397043126097039986282037423753345906884238759508683064727402425078203388911809325243830985463393024075834136945910724391657150788160237456365229011299193103055375748291632025604283851232378130618372150369065368164681488700127029800021418198913628054677732692403853946331083155371836689291862430979084866814262160865254753185912392830281226453821083511008347171326744913720752251259491161281881214326273070626397301954292227555702427496404710670011118334359951709502219685979261685978429329370263089530538130716057448602000405967336475035018159660887244743926610977244753965418775610591240722623268657613069221157604676607307163073614825357902415007296621833395610160208555441586184111481024451540391307969473792635598445568324437961102065383747603048834343880908806473671077377509376800304421048705634181531214004747842078486209620400302248105070961106263765938951787349858800679497813863769292741480707568947505472774927199374935435212607971604057651480698626237440384770437508542963056438166380571730339523732607270226838657840973157378514629934628247461010178327160671969677708622063447985884350690477746680087400198129681680263657960966979282500665118045687204567552781162909903002493775605000766281819435505189329128483216257073939740203860188826591934636384551007368069678893923548301874575855703581973696582818859402964007495496076332890893682484065625511172677604723217586848447915542512094668840074057563081015179643601530810380929585917039690564182748963062690159914689647006327263546890243879096765157197186707528360081974414708347798715911759021336649400021084022358198071928283232955651386107539738205486721071765936524291278485545903206103158877206885713824953000814754342384698021927771683338495077266859006176302098181639397995459183535154284765004662660755386302994634022329609682879653035955800501970309122709767515737613533622074172454385576327911516799029783862444932543300490244265174848983748566018861669471128450356022362354350335847347751591779499688115079563826496671106361524521618239605256372847338362842050908170225680226679591741565716742209300142958536714578393206580255356156385992037926300766749765109386762472075127439452000882505583296149440424922388720334930330846992334766088443055253391390668863234451629560489868344294838540738824658687420498155433351358096573545995898993054781803507948600968566675766592567962572379842611144710663008556701716281493001861890299360610624049222397287118438061772369312564289173313448658579494562968384044996807423842007790018998444211515785996420734779445337227963063872855651728577971140906117083829799388482335700563332744128647186508399648182609834458864360675773468341390192220152512619574440092144117978660014866906657402054129692287019596417597147788256614080839728853526476455996433317284953529757248574249075646434587639594214488909317987250361020398877502966280701116135870753041257461638310209580945404992201167807634296275547439149478403238665224348316805016519212532289796090924771588817073611582914157363875728244949420433402219467549979965655621569171845310252111726317412491923085323984573747781082552485512451676501857816652257962145004396528318775444784796301426015976141245854983456602174048591774327069941320781126353733666813752078028115892886022887774896952747016317917417192734193662736812523713771680532467651927792363591888669458710026728868048918310342683402430256229324628119313214463614713002626761544820109029835932650597541745411423191767914199538689883749883955758272236317030169865858345329954377780261645234056052231022299843088761886285537144262039459189105549221092948426930072073937185831303129234671435343518051617960685633069688462665814440805114843042145246230305264522650174300979929575879866434183375163473168686924321089804044420957384657002548097506818249684361601470013579499483191374233009211027144827451642760933032673657603771768922685030949363766554268687144239389335921318759055666005809250331437039900747793099612506084157194637534784796019848287114979619923888971778913355664977069646955671977530936692653763755940458978960283486824591429261536763269433378499770131800034380333399233288942036557948518485925067902359887216750966314825330715874115515005233233235949481315810341727342972356460283877717869645200124775342168668642555572867107662367664569903115107051499511112045548433342601370920743710415341030010315897954126895347018014017471639326564939824265523692415074455329170121711815817853393549739087213732156801130798223119856696331703031135865821363558824280864892124813484759596960974283375196060775273993544817855375666304854903827616998863884712863357663948279545938511959255470331245162730490375423706069639356696402681267852321622585870185217534405415776839909840302883522777687371867154731593905583528885560823488375368658403953819944926039822019357746510513747326069181519389365925648660494637612407469010415775312488447199471212765866855476796569056507925825798950939694076515623914500700668886518345715619260161371460443443298834905682183623298155849255676637388386404090181137273371249219583480959502856021810169364456940073829726122300585935341965073091293720817418739903656561204139937339171543473507514278103377831646394002782404323155422243814150281568862805028880878929932384803578490656353636788979011239432902455575500391072165321691396380624925852019528793166894767244209402305217997640372998253403616221107460646847176818289870851893988117849290299078085114524800199381739694751385281793078930044578272033026154405745461275767954978792536320704448719770263128776507266695799295309093100794263484137742922098171751766456097848797915519720491350515798315756858097826146347557166423324067183937360026226807488299963490390566949786263432633431559808138086919455604224424832360640165310741239787155820459422227838956951561979043633950212326019042250845651778097535068906557245293810021371066795176173924619067144286993061960055937621711771625286531882304697626487183964741017922067755801537991702165555301822056140084521104515552105561538377776596033263398270755809785639003927124834173217320506844396589605811855398502067642803556439544407906391910632202298011424515195879939230004511842486652272101834192512076405284552161246059675419500767435271433182336509532068610821525842227132726823806496551247266916363590691729955442668104840222926045061874050621064264839008697315808320108639658569310258880557173390782325815901914154658457408825744083018450781609809513130413991457635458678699517211631515176037587626742368820587417020310153658191029231929267978662347831261226913780789070669667729189645210658796579105871093815840060029742094646260026489514500408692348928228572569615409405485491736220137587623222694432258635903224869742918782994357032684235572133989783976598587136861845787479382460930597139296639741895189156664457870664334989198381968968711899101351471868106648495429067318529717294241548838116967626040105693000880779328156130336827694760850327753006086838019619543547733710721552671190160931696668758371455716472367839555589261307194038385031919802551897602517188981033673592789098695663926059285206594379256481219130765318864869393887819094711498311922971881735553502131058269155417833774692043103468375718649484673343411702274131341942196383417272731220016771902459724329844084636376056638844873148174080877675635480805090118489188954572168594585366011603545182332561933824995790705189062590316109440604106861100899975653381315237481063632104115069534240357308435387376853594971040656192235486190062730053706071774258625687225660528337291865129864580773465729247834688274976738306322942591962358727591515818050606878941664553779006358924196948899786990846511995227965196700624981247850058536193516619464324661656903496702772863072583974111780942816084784730133053767893620403660387076367059066902217388489090928181445497858887254580038840424366640977843514571469860143795863174053002606147384813155966377051167187131580760397370151108279042227251095078547633726534595807958616008328194610206237484695156951678123482914268088336540897620412434149799438188077880821195000138013033735994607342115277413520680790753090961463185770106124745934073370315065836019759768048329012990252401762585953671299471386617002333506375707661765888479625580435845243856571804230875807382566735222936693118872988416239998653135874063656859794651032534503105381867787556312509671746244512058191643611282398012159057522646525525776692244224786158913466236328077076950506272460731944298823695317657099730782177874036366548042418582101238551229065467266210620362598277930964108639307023543580107935393956795203925908978383264510228590878033614014478058002935886864161834225950329621145695327473891552176309778643657244095444767176191714873128640689953236532604239905265718977708625780523313853971030514448734131154845444744424486780735556549354084354751651479995336869897486126499309368471294620771639386281441591155475047120859451399939414243453319857897694477742712980026939996274408968694612607277581628749571049568675966223436069194019647478573900468168598545561966497224741277175443327651765297766743196392175098103577148991459361366803012132569828980825873972366356859764178965181155475949847649480708560701769345423923192115792310790684690681633355587010577292021424060031073493631617273022026334452648573699903446709420656939606792404114625311103782671513312437844715985628053533615745698900842871837194874477428701087876088411905887493897689265762472325791532091572736870277184252295610359940444734773445686766334791537321430269390825514348881244995684571500930880891582540341688837623088817492740644768761070031280548023062322723142693750076806570437442461277926287464250095676459771743829988469336557634789307542260542317330055404279065696443797792198161494738796789049871764786457503494242414017562097547938497400120806202048773898830073097087064141785579057018247277476635980661179805648114120665489947795930287320848794937363749889362347010666076889612560655137227762726654765683366314907596172812095651253062703648001114492231919155020943199178380375927423296162399278774544652395958635505663407659179569889708421774448185510887162362544216099178004352330015838827458385788685561593482983041834844818948957606318369069638976998722212602165862719438508884141180348944667968924322145071831194925670808646024467427430466261445365230647708296597838773067743472954301166987878366649564465243643039725291701250344815481445702376695671505571192764748136038386125236735244325537697638900377496606313321078868883625796873436208835152559441514883499176550027367123293104419313410640230274172959021529709070632769950836078117618850611660379753406095630032527799855941801215480367898696775703963106685709011965504248603238057835792151056255926648450560969394202461010576783642984723018361046994723829405161468112281842868905358765367407576102692616874157719935374270341403452206847341279459019067829927725418534303620467222011955656405586331322859266566340008712191851106936581279488713170378455480937098772701806451809563997711680233115600005951256161179022047612014118922215264872881260936937747185790158216311107522092851132038691981781290500351963958141459696523492256279736760873203209908145686013040377305187565046693634336252558656443490385175983896362404119364550622408048088745979196964644328430296544481336826561312876281093716665594200665488835222203245518111806980774919525294138837519935273931535790194818538687416927754002237983617404204520474464105868734977768838041331957283729766064375445244398872744692963138891266089681510830392860634891518815998760771899600157664042917138100480221212896443289197564982254825512639895038233698487292180570222938439630107297619052081527757792875444055935124928783269632878355071030452957622425728066118860899908953322148115988925852271102574171612036434342446162120081312081807358596020616585518533542096754280610174766814569699676855354888570299169516963304335880608489481146940974082462586873666020121509176124312106601539068497946361337428734971886007288853204455407687538913872728299891152312450191306004983118922612102074342941251341499658948196726733162278409414808851805210803779031863161274416770924180960439135218800621889691734015444759016789882721893074700635721743317519483100488017419617694096412856068517611208920073471814140520499674702619883236952326640578826249144767629904330382769840688467930580444837855320969451901069256230293716875941279642541248163975368409619591613076304313723881574765055145725159968786888541692396704623629427632179770718193266232913444785955037089599911327201344862403920661099475883408669961561818507840513711970719273468955542034389788305319579899376725577744129299589172600480623337094473076302869912564048578169471961080155789254358659645086505751505034387947445184402396241961982829375477801484989329106328308748000624286739060718320524626874139080460955514960461545808025226218054137849925960658764235225528128826173436794581494633786867671108802540960528183584969213908583466003771839825862133374708361842832192365779754566303374708707267459700892958019789034648657526487801379876813670284290252307232025796821163926282368302317381389182527932648225449039295626109075124616290370755257055056750088897248512698777068559988006916175596916839139447652882188044937088972121797149619794108002373459415551941198850845826155892443858085404361768904260721258918209126667462405033341244434360857336904902145019252835069134981036044982021563707004017236536296605668287487053473568345594274234230470226679574708416227695615839464871752986677372439387920874164719493526224076024431833051148412766531215730554581947565642608829544869705938674887854345184179606393313815635364290713940181407010093808085822404060067186246537907746340662385026080354646527271146719046200720719321707266247601140650193928984060759139008332781323435869115886518995615188271986045386410272528741210515202156009335150343966929763365482593737996756425203877631763901052168132894628611379629555071094935722835926210808157816559298230576184592312168616605335227339906972632123572454814042902090935574747999930914591787887162470707349152687008924575490070848897988760515708778320605054290005282548724247737641755515320880923341076427482584124663280376897167490674642313600489639581523547275256466173670093629076723844844211408500212670166867028002942583557065128425493297991276700419878051102828084070158217025758604396753546784849681144251042649465189421218292283137764936739281359243835173873319734783876219790717981148270464147469202798233730310906391711954211626596590752037154822074448783237555507700657872100920342662954026915200006585933972893680625746680945235739038431164075198520285324569680436571096720546358511785642945069869049462654148853643820698067655447836495517076785121616308995111461311150981232915614032566277939909659601040381535922723240349753379530203199543814507867910733331539041181070467153098998295385239332150837677405286251852036418225312505403044563659775941232110424000924745583257580659007923665031575081258647507381889424763038867399914116597835450564274433009903824867018551939088308126987591992536220201087710123955603136032809095611062239066018751429656738766372729819671786660487506399764549276604047663869746445114240650395616354213332792647323206292914417434538763001790359433462089133193054215930501625957476076280017899612781943572359413198611388108353827833306169178328226054236382930661104917172061109621420075284362298101513958689532012004606487688144400685992810903055709701357281239313243893737325766607487576938973384491456348853845353076950724188799255213286567090853075397908395446599433814372536513992378541586382639251290960480658283615260444935527227810732145140035803595925877969316389777481904040480550228183087365344805672668367035517809004645329785893271172331738696654090772434172783524104101166583406523676999038924929988059415694339362974555708011213899678969395468158004799484040217995050522483359363590910381825939173708419787978647458872193481265636956942507721905406287710720607023845959787748384837616810367782309056059177513703806150637291019412322546164897896936809179703313347740355425266838144629946175524619700533767952802200953341197589271952995084110397507115591245830714543484157614459424162268781443294700602998100597120617244790552050417100478255114102369890275016528402016402281404193805019451665505384272155333850227860903094560488212788238686525640894662127624820162329205164760889271519108567916054140083769684512238851211304977560491323518774108359814626911543334962049667900179623979729385071367174496062602639803108957840340315000616369381393061528215476095590600056515198047357259370614597725404521544250900442742164965907943403759719687555608175551204679660219710550655650773970569758810234458863870297695217818606864400955681334177420540227334687253977267615330483104407912523856383917131658928442544756604700408528843009092567690377208006705583056949693177027842905080413846349540200824690717198856553303875483139015475549664285501145591488284697102248015042030942907005019923475124164561946745746715436615752706808184654263672956786663577247286020967102732133817553189303456004121863292181575398906578054248599707877595439415799424336782120097983074536351411142929703620726573104338289559481631351458515679048530942732975494234352331426345312721038287607845550078967839379599532856868415588519799762989237017463269993125992310845282948673974134175476626703516220630096063222466748392975259235641722194381690604020411832116422642851692868999064340895168679520994490585856934962050928957256308179620290685969635775236301019619984095441016726674783913843779635957144799072144604598961718301561143343940706141369561494898677318909610144882162335390192103725786880976470113860074230356004780016859004168654659106059988135348565557413809685645000523089643433960501549386722133162473368099850168947150520647814297945140256355359905057862983238810095094111145579816826048362816034783018391993791194432575888060343555512341139519765374937030931534126801033899293004502021318427889519426454418309620772151499725890912199661289432613357360699023893322373991469382224393175322059290454881586364664318397037875378112651050399169131573817616259145550724234794368294385642133061457470877248626324552834432207782126064612604978448670152765836194314403619762679272562976149905302490517620436749638658288046267588886476647750567230931303764887416658079171776562595669749940784495708344294355025510058589752805846824031923801306904299231295482024287088988872749940310728424368293413234369501987201680840623290507827132121577961731146011766029720136726771683715231253950397268172300283909977289515807656567163666239656266120584996453020085729218699675525945069917866767930784634802528852914705914914939543750783105468763466557409271682287244175472530031885402814239467425473563308108644324556686163189999607401573622847090677998551829203539117183253283058840190858255364561803351047017632321944430892002865617143685884432991762742936743919630937864590021862969175295612445895965920648893903973556989478116240583705084761840541138103726639208904541362532014413790313395533448921719138957444255031297955657304237025913812306010020109707401274848109864049081322864856922962126755958192475920458234789298670160472508281508795109082154239087644774383132255188678470211832040061594923704711719226279046294386736361001134391769267038980109615639616434849605080799734643998714853895708328924209272796174195494429236351358185971700823676356744873200257728035186047106399921639553493823977786310435594870805995661265080965615886788577747771184131328406832708749642965359481812610981597514586342240145451752157949878369817990581506594907070958527936926101904363237135299005715242535248355478313877154161466863540231156590636667747560980010704823543392149171293081147063532244116797008508087325613679147904087317901516989798004179181608428879992363965060990396348879463688208296818986907174531472013146074359194712130725754817189248784199936975880699039968220887593369098802189136581485768983672603468340376674571281550182205401556841455322508489632076697194024214050744373538104963738637575366045571946087061595413185224503057152935474735155159586787055297656841267936849625407950778521791248852198373710166297600826667062122612806494426773719203676632878084965310890667986827775445144797196724422777489827968422106227618659685195482823717255954033623107656757967427798769503489630592532413871867756943390525311321088336160387255317132585503891633720490123336661357229238538623033204442535400158136396156225777979564468172975149152430885633052563888368036672446311490192228258452570561773189047137845795835374121504803383168106467644396144728262034448307537381381834138942449490889399049103638833777754979404673953181972063610699737237601994808176421208910102568030367364549564990354316009662395906766442405144633517685149060205500860349259949188034713109104287172272817704492354371294389149082680707557226851062591239655238772675519204930820188494103928562609789806968817731484964471531073354262237549639499567081931383587433725084224220790515528254038803913648647094722937166102828996288221668417026237451011405254252391577986083457417540720536223324115059292541639873898000244052392554039310591592102739825735922406690268652491844575929937531456154002038327695878938839378827737826676906971464787878563129133204639252540015051709519928454215084135206450184295298381309045132824711734122119235740396667371895366152034033444363718051951392444108911950553071987983768330102098576100209478747707853725965964845740514715223615323794890052033661943810396431015477615120447468030403103093552057596327082924000061086413002894321615765085013215563861820464418331734827449115141216776865586346437239496919736797104065847799200256776166993826298941765272631715179928237111701816813141296588311650201321653816726800281301119596082044315759423884233683827429993160461924254996905877307105580374913530906858211646594018467581601176016829594495241085684748785040009808511711598214217606842811904038954860271387923430784899613027460554944107545433014837203086480154692474434639270847766644230434633212303237559674275762846899715244925757052885811304559104199131507256281869917936868808806554777430198007967680471099111840966766060860710819002720975326137655759445481800794806942176992988378795612045845210853446803716123430150531577053995866623721520201840534162157912771838968309565171597753646754751268645318495878423534486109924897955621881384457436044065627008132687239788778226602328196966010451606705987785251041640467281569414535173299674396330167791646113102671660390219681027764882741016033477805680271731212152884041063293282995892166939778949897787607410484908011286428073789000419303032248113885836885355251144651310361008908522379822238974803317717017412381863126354406962137302618095051985879059508271247770307663618609590844554157959228465241012709316305683404884760836852878296488016459706287725961850343134530469229187629376023952692686264891119939788453980807921981560860211842296091083570389565717513612012973185328913529627614131518519821663190003310317273867204921992938476183742173364637031309783350346085907968503793741773431895102313740208563657836382133875158642649430118322890718629110317741391843670233199878370131160818881460137816990873415982619348366908419928598699858357646748552923536828695353959470122351804859722875602915502704454653142546168619373512139578673142726474077751872648939103939427101847072096517728846389855308288551779664434390440756767595716503629970332107412784241541308730871975716998435668781636487125249693838825819265384738827993449389052887463316328379213903231971087866365169844370962324812054478393928874544650260643116721069481303034410408543166064651296602548364745649883130525011103874685327232338759404286174092851393536891282368955072113438832363288415302349428991959422849785657970702102722117191926649785033340878941749844375548297725051327523491730252750931389818331821365308647729595771926844268851162442284929137367527782563378850605004408130677991468562999023279649864329353296807849559769890521827092266939564514895524479949434605548197438640382642557850179710408090631513973936388916724902894065858540824342780502803045867723493136594893595210795622052099586800845759553877622128161846693221598398845791230748493284479516405046863728122948865160676832784839094207527512651820517093662708931511223973205380268682339187813485163322826649850566100872403306463507364992511513930362170855279542278712429627689321027168747436500962141587839957009449048594714526216040922616635638486692258107519299515964010773463921803050410402660056218230243690818188674356083965067176989665736252987675963848442621822632784976556171064934633962155999576131217175318358037970981004707093339041893103490937141068712688978491826167056601897928329230037597175445238216246846065029890639367458730969884028522610625812553299517397962847519544325595568348979844988905169280227509256626730466031449646305839380208683172953767936849641184525154542816889707438102590118155090227829741696607997503448579049696045838679990067579965673757107048181842884778649812673767797421232520229910460236981338767490560762473176401042863419644732325236517457294195429212815917881723341211531493530232190599961474252248155826626147519347124519547567803805076980816278278994234118965547881278236348257112397130348439851647958162901988811894443039585759260219366083710672478931318221216948838033656709322009157887445928564781871093319720073843343151089323458640062536645331543308326181067105170313674691719796075584780874472102131766197327612920315850190683636735190148077230401734483879685486627336010154693531865622347322411647205445827397779267381392079817193649333677968813221384066274225990684075136091359552627621856204051790854568345427935480019795570674442110407408535855839835102996228252683597000597463804694526063103348118864400889234215054986625683530246761362694323168308594677181385104051145036582922955700887183401460309267876613980506880439447788273261467811966627300403202037809234951476629747240775183613380086637655499437808925661115395800551791141019834581160225062095635735978026140757164261508874740737814461007929654956768618564758977118302364686219578783427966355340989129802329841064769608026099260566147772698697054513169332325076527188812421904401222669518468170947941340037533619050076042869991140671930982340588498797981634113851745622119118463345327663904108952185924416752942626464650046905047853918227435587550822905000761773643317393745177882157561838871924567755677258629889930793179782996975354742872639351064057641751609117929057423264509148716466932575441697085029630539568058101352117485396752991945848643271750643464202384332026656279724555546455225520092549952443871839087918632443337201069803305579961351661770196329327908815708895665239116360022911044420214907271633876640076460726243216134158531331641701573681176033946827133754047032199502648773839419043272359721969406744989359981025934007310601629192587242729159919446907446576050290411873901102354847368952028840886095840544740717163650338367535179656397922314965867196004330258360609042229917942387057007801795361841448490278329821359527729642462800748870309021910777024787592315611535723029246338317179107108061855017152000394970581811548592942842473138179170074107459785519947582495101195494272738692948382712348573746245713858426698182328993919978669521109048721023677751466596873372973219600097832832223293876872278128295029683337191085974777768186556353998084712673471747384209728581041228320090034498759538829295713769482888314607172811840543396278122966026751724233703392463824697718676630349005125444437962947491573842467406012701660245668552826816650192951751076493248538472464854688784277961942598966315643648276758225477280149157304540103493354094630626801331184666604124767902263791073382952505097526023894218332162417252937348433754241997931631595011333580944939497990965304977884505309610011972934838987648620216000353277698567322643784266034685535850318379702114565490452176829105522688164907039256261768375277054775736506960568679519482717562283191706996377719123139704478645045189586458395179271425824319663855794569861341675920918551232788106482763476186357089586303078600639950508599056079045717941087397960813924848357823131392821908238398574186901813623997960221617054153181530810389083629044819038857130953193130899815829149469655648542210304754231219682946087580711604623096732210199511210075574482958831403059452993327534959614665032735479518279487153614056482862198103956430961841050103342289211997144264393622186130166853558589950904758624106132544340108939315922276521994226699785174399338714410972275505607323512842171055671735360337337526652430996495633174061586972362055902446570250875239510211610813038985519474076588803974778770173166941468117822841159311521233663623732023022661182829072049051400055991553381577397941443375966763896441848407719921871945289360451337994534383388220150905061589186891967251129398643842796211993803933053173095209556848014200371027140044662222459146525350020418050037167467173911972128190760426678482402588717871770966377019339951419625561736687019605233818045321014917205584488967328650680218005746790693497565770706160618382777185582234902405476065439575389347909069889993997771415412152197764807641724589192274096944527590602224297944147752877514312478573840563891861065986741715174609013068812569243590070242049810620401701586124289862547677476466162360480319283119947362327038495380609460215061222144836174100735358037452158936916221484931192060803160200409255247101216596823622715822226764580050708160687939113984351225659634208595276387178607172006070332820625121096945600431633646966936780308050777094945349427185250974457870875268014046491147169585709524578325099374749924363695584130971270953935383191953803264065549980102601559208079711815746612690029160827229289712339247452305794143485998287009666381946760481163618521067885390353815577648004144651477502670676383309072636052271891556279514796919273522057766502815053915469560456636929495489555050589042983361496009056734065515709300093932548371965798070200342228746743936014614487948575860309772148650324872044521212484430280044924005307876888262659409972330401357006992118001071896151579913449171224350898396235526375672596716933585579952255821267386892518318360839214080855394324859901306097267989575956410364158538699766041999179878892173729668731903062723611319188044114162308554483068246219676889404554254016100591250025351777036663207825156463521765067469712112110062655449916821558289226380535562296296590451383059833173454839134557944920874172687966217200855970857538086246712622194086826631813976079945268330976301594012719587713254823432675864877526531136145439139507533072773209659208126965428942611982487127519412321670801640270697593995727367080516885356608437812152728207001502047364073672349786434255838793018119341634283936131640000665435893790805373415231410063395613001964314957396772122052744486563506569648884057266203931367962347201880939371029190782661711214944014116495953212750228092073835762656486876561357193516870038674955355671411503310765226226586918030858103172195120778420653794922697753294495470233058530941211805095490314671859162281832557712696576602205748415881092834908037902688426824065177868991888291361549978191328854741475698767069161062071681188134091577651971203583272293337272241244532214863171841224920581472345898136082290238028133763380836144101053673490642286498281980305080142830553515040179424494012940489031425811434045748105315597064071435751350803993786473227434750635653983609643936162132820173945146260691600104391896474654268426155012170636108788839744979041744770764962238211479161010148012038045289208018355273245275039442409795509280965828620760286268802539909491741459540924969650724997918759670510338063031011895800012853929970504409139085264929333867917121081514373027126819834168385818101877425023069646762050681767638903036154974762641884940362197201122018284868745695372896072271981358602591902307175261510934181694395311489774471276128403699617258916746784777986587028673716406253780524970152724772291212800448273166233721843907193536836516383514848842265039757399892100339887988158498672952131503166577493120268257318715335398014490799102778551065822170149325749018064759148345823381266438501952310887184401578986698696676204165145348071090490535034311431060610491047363198940276163017543073453767807991644231655799760549726716520427071576866828003364611688444715788114889446706702584464967735748661681064461492487973820566151057901596010245858970665348586868706805195110617083978596387148851375839141509898309196496463010865918694630634247836358652914603272197728303838198749197579793800638438377609573776845325247301802487501728476840651753041969541840116211713929010198277206593569636224241122713233018090911672373497039376604657075926011172131891222115147795837499915056960460567432979527075535903887344828684814199442135825827849303351967224360175726369321139559101386136205576944485344538278075473900374243104790181301780576124767836002842860959245718973940539505790696908766723844014604185031161606353285342593801082906465974071019371449996471204660618273371789830740091206221982224876537865372044605090996596408247155194071142631199808448792084008741678905088761353022655274837802564500057858583845073633172134469326714542466501287854777363630342681425609904183301818958464796058181737929450082927619841398442038986856942298800906807147808806192335429494875894620718434103055157613679368182325626648814163596882198149737068695903295228207682155646541875993225889544543057530705631945968613220189249457489244827068156033287639319685738351647657795135991816881740796182971833203081808252259315228149999538756154870298491993570445990411416181813221568520898976513188468909010026460479409745236273207705008697738842472535278181797940843598384486240550465618072104942478646247930776344808438243429469261161237849953424989259813298792918550645061321931418324020311038350267994970929241601181452264016415734981824957239181460523287537411983117755794717593038761480086928600509600263643845499701678578214255311332350711952640960348202986416387092631336978295082144564433318794285809137769484594025263828412168684882549973083171899600006705330839530130036647455719250071407864945804358383690853874023284149292277648921230338806164441174967291206139437244463160570414889321125943901548984049047917873914848925799388868222747262239684894227704752398055690346273676758017083894265131891216661378655018845815260033100133058806361810883288568702415071871119081731506635270121163868401961042309604592497030181688667382941619678692909459231447181714178535997991248925996850144766298018745918134420380548117251106077836328497787391617243139142182560993493880682760723127314839191083065067749898360145232650199655733629721154072431573895173995305364125079218527533711170906248955302879066544822924193442443891616391039233220846761326733431710940303622665625240665226973958384779030924184360179707814984711645746720130187386426250169929475181323904340255474904946073550543294571219518228928108525543236004253985969507133172428719661154454381831131610023840288131382409010118248181674839734641186332097517986698235298353284712628694231199617305416205575996529868059784128786739577286485803928032138263328096573605603270751091066012360125739171703347372089940208392570752156992732584707341581698018535657816011031361059105644391964618027575558676488869244445477987873141491432956729450680429883058888280315023780540798768896262612711531601566361140957971336096169014197696188397375917648596701329269603480851751329131725560528654436459050396256683535850025806807128371526259425850310962047101641392789562715688741605741291074462683998047452738922476442842427413580776290903459416664430995801474918728262298304164120431068675735132233729584795870593514420512622333761186772889299047599560596764565729885638221462351094902377892546006940068339897679954416941042483739128087672778066479747567979552046320553850912038366841912322605755928790985836743164030090952311650741926656534144204858208567054371382387513473918996766212479926670409053692330436521279170826853607411453218265701659629642065820966412350089638593436317218509157662976372972301100867250401012455840499348992682258345872965697393855800709194402782715476519994475197768093875597442067030706903980786030636131990681531658321328454779539362857256913736532156030496061111174343828221110556260668675501290603120923775866276242419798307601818434653329090981477887142129428937081738517880710355859551308980541565084649692101736636788961265007813733558898354314610763535597371928257167332787057518837546194563604974899496015047433408580367448263430965078225471868097543056400424437197847119180848672272875992856296545873885459145798481388543400379665835836050536175966926964980622194293013270582201725448036431663594637755282070110096566942772810039647783515250964695230106375096942475368888037813296002179066524850168215717432990598333231982492059745694181054873960240045626615263093913933675200025463496543531601659494902993796357619070216467937961949395561293861411187562191641415370363030538968407246971151365111445401581043991916903531974584500137027605852329023320740346650837621486885899455101274825649329724164872987314822975243740027330701663538567791803511049300907996989399546757817552027160908066935443920636587386017449596649996472112289129915241277308562347232947432048508781927034780388840350716510826405029107949300773555169576935021749777841005278239838492511963225479136244832228737324201814986001966575534509086126923973513859780260072127726329606347473031751702262477351084204732241237109393923870071915863217503573591349200077239947916698804305715833409936068679550723960920725249829635451512603059951474969824327295516195719674651361923805303103869956251247227993542796655803870282362686122753983266821746855190013750210828834452418376226422954300492599645995566207195912862065251247092028161173170972089001520311850447786236014720280545626820463601974377484752153907458809356050289776088751043437675377545188713330176128875310759222226359028832174443697588180554259351217451418307002361199392397833085744693300522661160423616816560942847703270603574013838530390432109211106275727667964696531093861127375126449657990207514980686728374536165248335606397575215689566202964395288021234622470229331259725952115852126264063352821769688076014338363057662024420928642047666087866009606442046936885212797748477850739789380341938864399575396798619684996505608118939029884892079207560115425477528795287119445981746303499774244269941652747314742744342666390743265010788862720281128228015156756253131961940534020807685300698762711377222327906443036916563807122979740995533016514981111126224878402636140225547800745244323530088889671631056025710739526766167697719544760331312836535516534549089377154561511263734310315865479873788237194905078143882058764910433924350071823786822192168405046041189784277656211376981407083241775518962811609272177224471569634376418107257339625958375605723246973206413921729734268349726511360766079777757329385275288780025842049801486131028729760756099126045903459470456223559409733799585785651928738503497378157846441127954541547402384444796408838843350609845930525325382286774880950784372941180891258793380228649618295698009371548204813134089015485104477845082665591146492792456587700246177833675220803175463736423038073228640120845511791895101932962835584140035427695577747232576774702041726606388248309334741074689213191505850272117841524835657469002487715988697208880408461702797520506146461314781561134710393727006352728766561801032250999977160091849100854651420109466001003134984830936913335385638236746886364133970980716538903831036469932273599187128729080882037980056457964249719700271511659865037670191610794879809010997951549352242918215517961029123475826567206249751917506742431190899654951929357095454328228307480366128817843218074431495111805526124349810085196996127368474408653416069236025123543980421891195383030214956114277008696903784002528337869188719909499572139861011276874790814902928370883718419760204521349338417312612228372985887003871997947500807245364112035277391563654360919197088817141838457471419618492792545778814385935767901467513483418941146319941658668554462106166816811729996427303621460362825634017215184913192684017234948740177241827464366762905107309365882540794511358873417733681151779932178854488117585497776012935850063539146831223738945964510575734183739779817284325398569118760411333793755592536408164726501004891967281510527892868726367285233153468932488138242137185723892473923153242963252686502720289687075138032879587858729401207869858308246838746521849047893691273146356841839219763186593108747504663098098177812658262997903490934291733889892154280640271561131658953959315534188285285142019736700794159167920464114919500263487145825776705845751900817422803064036737636983804652067927117591304141553734822497886501526488097826817305947162354311958133966660534319832840747211103006932578731611477739678375340602833975367971118642585050855105352229462478722749481670167160454488078414565306139253309411243138592438110055788558223319550847762546323328481968414072768679990061985505730330426356081329597971063409998708494690181652632509364182226975587364906610455287922433402710643634223226743258447801163198568715122617839718506976430063969189339340740840564047480663762822426862194662675203919549159684710206368213679962553828530948614782586184454084869592576074497591167915203608837835158298611634731550705081758787585911249463224264172864275113753290671294883035865532139114826199505203414105005941515841743459845407354645133041427218223618169721989264128593446814379213961907349939238442632753867287641488289736542205623643749590482399864072886840429791017369862548818153226824004923557622757553905549970660603266758650037737628574776097085892436037189828766675154265929298591194001110799103227968616986560205822704232688151603495439907238347171273389017956821038731809124152413903515937952590128311454541204546037912471051136819749184460900881989386403044462680862460516535295641756352182548155187618235526326269769980916449570513081339290560742087064869742388193292448127195199923264918575528971958039756337295688674523182750342397995537825921598750094329555502764902965782996562926666270576131702388485056266221475546343117331549174324026004109883964476641097649186106604244800028111943817515730247187311079965678389185148464851170250661230459637067510061253167053203898807555312240939769979452413291368075456565066993233137857225441125276409664147505798438971767126614608636633054691937331011923712275828138188487331098737632399560050289544458175864277420586292630050523021874428111022428491314083970366063611555321548954768225602854865348729852382518750029964590083102026562760150088203888828546339803955530047132288911561797383735091059742006259622697220666183415468411020632007819000505567648380396050409393047877247703272075354864793063847764052535967896646564902533130133947855433642020465878773170527116117742988228103415598307007061506611123181782157681803621059243704960172702889839641333325874125598675877644456962853350952389909706102596632553482155935941008266454154218296732856538967511044304313261674973949274215496372871437052107050923406741122490813316917391961844888064485310118638830672189240155909932906381347064130000555825328960234091894188836215025448076890331916187276956140615614062428294609621146035108673103606598003512263125529395481414191572128997221376582937296478737768593802459936999425943161947675185035251983478138883181211598333649782911878786134574252634529945277902217166364077519894469757973283873666045124063618283756788171742192140590757041025314963130765852312539285726783540496163152590359758927067784019588711490899682639660287321131462405721025098819421296796272992069418057972741112125931285876270916985105908823672135258514332716966186572359198656150589715062156824905956585172387814478646379863468300022818629938509331297698304447069620061273794762382897328841985437828113600982324697371677273529038946851005239160619523917573860277526887966824106610683005889075704552510255911082932479453424983684443852731434905679251918189042393103382042960238796585310451697039672633599891786195440184333613210761466059623739477926108452594519398959586607353346893172768743083118127613348193914758560456840441759423868696271548094201661196626950300186156879759439789490529626102564670846763971542270052329720748287925188288743322129861476857720698281630887539921059364389819264953061567761156671538949924339410985227340830464608914958766307832954979267397598851569332042486610600785099516503870236811799331695863964472639877295741973721867977584368581971111114180009776374918813701677491597585154107329719782022026319110510329377492579424576304118407526513262972067368140349936487585618096600479808945111543642154167125503001243724880053293445271558083910028622746110419400660309826323521023314470597934883772838661778434540880101583035626053687304167408364870565246722469679754152924823722139926276948649454718427720064139511936698842857105864458441140278614373043123079453685301066550023641739363558901512673937056473359218138247382613085529148284889785129877790534886645521717068379915869401677878839115375634962417266644809009154920228074543184231400692901706384867807360679698107219843755711543598698103682686214408025413429122538081604951460288491513046618529412212049445514249697319617034124219657367125147758605945745238261697491439750105180204231153918210249680582858865777455047446540842409418110540405245276202692409429542877857116360815228113148529915433224601198934063030632000239650297275433422825785357487481306593660180014784820754811957811156580233033161160131292689814635341284926772400776186644585537480273151823054701257695105528499756396545039281781356261111240727937911619818689032109974480046182639237388051557392736811236120442994133212450142998857910218313272911094544266806582421069245083586378355451168746753195894761610498274012142724505547428459687149874315932432954024088099307720315719523456587223331513067301651715427194530089569735696273950870057643552121659688255844910203261309703642036605967575183531647512238181475842263105371993374670013341926846448251117234519092103406975027417096834749219198320730152269695041494772778296758196823925842673172766378320002982239944142667195776452036320974488564868679091601521668827844669546556272966128614090778965123902045730841478218564035989829727735492769401232680125848774911817295359621607026716009430673283407884682815237618567217841716581118940970275345256677888818076738586971291785803607393154793617815103892916653459291542521272614636464994015656067314853203308146455305506703298360050506143626587642951024450749042704008703126801231114949298595984892660525517969644375987150309584230708066609842785877201121886757503834881487841358733108053501781716442942647470553444098394175287103266206858278774024604170343667783523567365300121725553127094690621236592579477158201826206112226226542085268349798534427809212070002411127861609608831211381749570567347666711712071180347683903994205808696050331278163703743994632085380782688452092846899011292862712689413283714646139437624469288089189017398762203991876753781967992902103829410234389276680692287681410694243510911215780475071901095625511271396791452744132358317444995193618763144664117915579293877616447440718626117385053094842120632636140674052905773549681264994681102234531892735513429917668897252232859178516085918095774487932660176905019761041261646075456219447191808150269128258362594879606491667047051044642238857074381377473312093926955434182237121817310961892293706378144968452508440095926172088098281470091236619288510766653499904332234942598666385076323319200237157723927228899601472673387747153642244490998791914610075847753365541394993112076526013921851062045345799092113309393240852402906756981205744287266386535267962833470108276239881391830385878753349381439346698582970216850204142613827497522728390592093313102913478077938841121752139894070022131161564974680768786080944363998754524191550881576262315108069817996528912631571451055201906322561072606629449920350888661747124917750698750994979854929673574437515920894749479074970549270728840638039745695473469290871263905892512104423630680725347128033548558131083043226459198516926813387631976663908710340549379415859070212456308050712144484840127108507534250544152110112861603187440807924334799243190883143485299112196435687490247143524301718857972737494392461807437481547890323826094064421738223747113371678072321091660360276637485607196442778076053870263293232803231582103697278007624631733324431694680933004811873528826152167938163156533012406560812040589386575085588937637785115538735522035676206491150950328370171120016189218888393540324481374141481025567301073307393024926748683804381806919448957795916391497335226852201766974884148334833192154412475227006139137452168590813673061853852773072744839903155391934818107273218666231488732931896992218907238772212482769782292084034609460059538070528972529896295139750619862586915578378746249782791186551089457023793240861056169280253087398629479860893104489522968506001758169033400713003426725325280462377638258835719256884467062847738395767962926005143743702386777110088316834013632855042640307770060420339858267037839684179456871142159309843878796598832965227678544467996934578811503829582494806942023438910089600745942705666113308293702334419680114725711149503550975912384739361457396468104676061706570909885127539275717656563056721104988421010301530964619678606840437718801690962485791872621723476869692105345323457456611499683219650189555228963500049596369927177151260260508486594602899633915598786669348674579004444994291657578363005855243748641083791096979339294836134702126792093639144773497492470004650989505708068062785630968236287298846514009358564855992388898337897686773147125591849528700910407805232736110446762031118800914706727857955416576452684212929860816350472895352729760510797714638441432207956898961718536101776923289818626031210465093461522132100711305418980410123905973735012987117720712529065489110925841526741893666035359959895755715829192035008809256962104011360512377095618328435451907323266229099415465795363048460844027695960777541475863522932764516186209941836631755849135182259369270032827530863679022414960993442982391805983876774841209665717726883980686871002594701892628229901164675103975763805835735184765169234361675420398392021297382444051243746791885845565077206145186629502014582046275245510214376896301617103676942489376259219888327535585759780282299505189564392224966087959392946783520790738147546489475108643249832709503532443011095471693629214597543241662452565873730768037676362577297139984688307255815145051722640204521997888792451182419374443255127408090864691759103558561180400704900460283510179481830293546668925127772596365837448387679068462292632344567447682012001126558179162197288726555435786349231164427017733910701439918059247754871718965056172139805158896179385197334052852439032163367576742150293625559461639438938553870356142601920460969338877329553650457829504856390044481431331888270021504125479933550224853091559207786974505705418168543642363524641850297219804092251131183217148363846406316665063050874531077146729042420287847809626564559234700814508986190833385425981658262188706706199594132207388298587724267260298358088138967515538337572030920920590267654951995251618104959175391464770633588601181177619483710105544994607549863580046422449230819992902608500228577638398927841456948486395994488534261836547378506543573375069457668206189006940102531529650980449611505425730296056750135193068062411095441491323754804298932010756745115281685487947111792897200829236167521589127604265130716489007004691875715829912414532462347000955761705826210079028282386452279748484238514735133097274839072587689955419068969079584471692260722877771816290915573674377484235922290181211238608803045549495557999543338453574131073915324020919764267459735756603791606426585867632733261923374556380759247990019840600168815422628712349581768263286467438212896664774229613846345740105411084153968715044670775496423664857592513366604732653578023428220737077659505097900593746444086495641320302212045409177033953330853584024241923156774023709220410599843617701623333429307406425470210979684725832272271660144728013370895728452591032672382769411260939464093876315202202570647400707591934944021132411275786646703649185491004267689857883073843675466204698552295597372265442088661331157985711496087274985404686187500792649318562122291689058078975231474447837422294709862388560636404899706049166349090470283890827250248251351014510405634887932026795623958609192490583754083262377552884265341875723494132240378789192634959784061730165557981395476225684438616732474837183823955306591717002117709010583968340411599913142873728568092287845619032712111095833366894233582406582279002738291346174738894150172365023323646875444392189021029558179866911208111583352771885613421481899343748161220688366004610559406762103489741536524544830979756974134286229957634229545420509311246189892632567121755446794937702430893631748152523598830519547430242174364404059121743646446809020259873085925489657121853764629067960522685815247491850297967485141508845566559145723613284388261702612064783467074333508489839821553594999136850395057715307754523312713084925199572405184590893954837568107109202357051683995270436407544848072169691024437755571876968594080275091786350604204833235643130113498121947958007232758955517195156370123762747186756625690603838585690653005331916209530179859151854668831908244314866450193597255857868598207873655254003708111984069909437769938072311324768863741933240602381367830694266000564025283119466689096105098321295525187231908728666299079535907776811244487912978853336689654707078175837452082592443432161886825430179047140577314463757281418280013437140247415975182104759210781018320040492250312608634564138055182762838792241283511778202574827000393629563010245157493121644064376243222726415191066781787132138810826833057622483268816437352090761347630308147240326035734769843365825807834965294165444137457628279319123539129907403476272912740633003549712096055735907450851842755073723716739706125502231469241455787231013861850111821330895569786529105742429168974333285361809236199426150881804501845195059191550474175290377325518448555297086314097243923746863900457904876837807455422831687012432405473526073663498112869789935374541682784399067439164608587945244235488117353550577408600457007672105946239938441928604528904605574030581875604024852103829375294066540892634049781243422403515098282715017441226701907196212792349010312534425327687901475003797626336388345352149898110943687176474606509233360801272384286892383968460789392859545267762150117849897165630514890797048692905521060024922491941529521449172619275941615762906929284246169193816585790691600104051605694453307280117982019881179537258094581315591857522465004086867816936103442872485187869936699620515085091871137726008694965137483924919954270279773393045680750804433195895638137811083158483859495622198828585582019744334981522060480445873916280073356922693774178772486235378089522812083190394655961450538407326749296870287234195965108605006430180325597503588797494149873580973987622650736228215144451390959708888897673191779458382016863803248062496632225925752741231969981985583103776620929494277002300885772188707717381887879550711637654012270673324103756856987561391652836484710078616762118621999865765096379013487232173575482304646242505180513485933031417797396028145856625897473046575069603923174649883987718772206828913503845201504319663591605824857998623742534514793092217271530723544727321588724642865193786375426140364784770811529798261623829429884998856365830131279499753768389795014813104926859710237353940520604234775387872011463119139123579096775609359057003418448824353304553919596941783568708350852929925646881629342940543227842750088417799392699827347367532738593813248992434329787914477062656619291659035414576471659072099482305887614392048949892515277328282403424495133794237454591331783358609324947380144392139034195557010536881740930880707961858356269307715147332006009210483261574929961724486068752174454478110410578584548429864224390150948060472146433277509962788669585304186502307358519325014956925409712382867068857427726652319197890245062765604588373387786247596964188501528149013519264582131986117124595446556844473741200241456848694682490806519021125845472807228995692985780852419362349759829916597876412146336197159493304965651091924657602237967169771081624760477670327551534488321659189674415608969108438667144996610188500168152593872733862678420221350341563083142253059503560438898700520645137090516563629117058052015127425351061798705944364991177563876130173618706179463521729433901441974193590723086607886328319124310050349582534356248388864377256236834537993536655817350354987022852869050745498071879192842887006725142814261774372494496241816947713612954795615482397892308151714603906946469110378611570579119049982611977438086194974266307553805497626317320374847018317591317328195046855866519733017399775295936558501545114216039607976886360869882616496575440630467161218288710389073443799865643685022438993088518910668468127130136921606312947670263804504105800276705917666026837156130757001694410244373179653167221995592308849001586522050448333678746905772964618022419894356262864075005544190295689233296615458823017366578807240050648229456715456946536226537890868353088817893800552608714942749649062147660844039735534332641484447563562824079599348340769329001079682787233513789043652580517394392951683227084499715103416840952578081866439123384762824812230304486552506230904439280841337187699919324982073436620684061347653942221526946939021366188180880978078699750129405369853899983255072133132301693236865486121997516361661377962535206791220878428692373570798486200852363502230277313347523564985893559384979107666995182872769546945221108380132070842870328011097468483811888071432788968495038133300561529199636881001869941411438197608070160391882414115600662085039775065593640338495213385649839607371416488464592820042943414357586665287209650918792445124094474900634193672513126848014164261540406358900136440750488728155756417257522723837398844582371714635269022660154712366540204410654982290554129613164638261694527335078695602435739071471543275846313581623476716559598947611786480694690218588493737711835350301088897548574409744523126884944372321152986049095460535625054019935719874580108240798930652814966423440768844427320749191725156678618148119326672575105596809831245901054393314106382013459180092162004238659745555869977074558967205177190618598441116253684565642354231314600167654704728120502796522732914696741860535259757785318476387681347178148041925144482143389061907347896674157086425886940641933311272925965022494069892462391259106434548042023071523287470897734122873569523104251028305839157357805458008998244173826297191669594162782483803684934401041008228895034520754482281358341126701051147026771301803610499449553842325301691592395399352358331646970320948853169951305993414224843710491829631615369220672419442759090931604438769558287929107398718982944709483886110950768552288331285904430084421922724335607605395900897376322854539762008963651323289211656449520349552241818489596385920983862273036380126001566497187280547311738226022408058273773452094541132395605982228206912996366567543400011356313509887161786959757568040163555966760540434586618584480708232040820967599801872716047686260626564898011287165828461756253803390967173431126248330994362989161071776831412539416318309386071251921940851161582375116317855536711001544853036227826046850663629737546221267071451546394170555392341486217491871453689413658852047349561302263290961373068383928474943094313854891234327822857253807985311077709526206301810456399973434493774806597502998003571282342791417819557356099150670705627998257994178029627598731624542221978122629888025602409620483001353622248659505896199537884111862959778537977370319382793194790740190223826630355074520852188609620107503014789796011343341395393030835257706249412479010621389516886505530810271358746039273156622431980542497443586255140956120497457461033953470351295270650655834405030548289080151381705435531890538922362719807674317530562050754269003320276361362401799881914156260215844739141327033003085198148925511606510054654408724768212655665174965541818539140508633231337902790183225645101979069398407413326937000127894142306146900663390734881454881963095261195534467636908956978493200800373248123410633093054288252176056095754229890003549926551412275472398547318241410160880004199163353916926269226685067027719368493769191168892144729186526279054129909097874001278743377904667462598445537649455287824255972987896471252069476414902560594984262232396494078042952997735387212165346918517935933413202942887266383936810880889149798486091380409011411141624819858306088386138313208295499353224379454629107677299686725250857952799015657799495703122401954604660005629810705068019657949044732990120079895642275105834982247842372971202510035220687476066057462950251904394477724769910167547207448741859795555144170472931183829831730881463876100298690816078686504077840340894755886627988235312959927152927313250372282488262735225101726446316753563873809465867519254096521262018180321733495339209610468710740827883195413995426460452820060303289203937111937023881915876115617706438114346657770843189861621821278698929434507085586060303683245972189843430462321797980223288339467666905956732159969148023438294902743705976098610979748953731679430334328265984761129133572372429200018041143594077938208047628800416218719776905068378324495220232762523928527614722691443197097338424829376669360659407082694136220162948873396877712944299638385118997737727683047779348828840503006157271997724206109949869615361035214036437508601314974507728210909859845726043588384508722055797529226817826569374859566631884534370653605163949657047861966859199820881349181467729782639517306278441757666383682858132622082737063765632697672675371700686048414799038054148915249560085261360647313009224093376268789191666704241929090161671646645255314767669072499383628344045714183818029035514986504752025063081596905490064400523073033237246840244916515138781625550768460001614806033250373219229403959224402175046935659776223272287307155331494983866335356888326054947282735895310493070985477124116662022409421497973213452732738153587202751680858896301312040037091395302537583010052022444873371716332872664261858770757232219101417625463624764076687846943291782275287954314064005431135439357415101371216120421064115389637908382704393377734988736694121310903447953602354082818051411745370900171576594523963152214694028758763764321138285018325954614156847160617608929495331711322070102461813868783905973112076985354067462475213912687924056006144263134470358030535894590315904093808162597427622602424948127352945300569926286424566033077003885332707252457054125245839396275493454532162349784653878776435582169579991234733919495250230862928570165687069552670809619194804567174586510760650363138123477157624896982899888115694576299124978128663866991755849902767948868512187259401746423475446327642698891904013387517349699656781918373608744139577507047032808585164377002064898896070764140408136950015055647237716672265046461591720376542340068260463915559368917930188695575883171142243930279683462675859206252644412081606705849450522839856530550587020207649405037607634629275302147224407553171613380774656734796346195661665129563576960352845227116908446381270435273341939088695798851502131488731216153604250724888138519910138635458784434081154245833824631995875918507420741035878500376049298125188341254385220482382361741155852975495711716797885881272333676188974305097593592769447082682284570734871647859019846225489226504285138764621478289630983406535645907861925726226572600665414801476629968493551183709269332124957616371197788352000561382637823547573792532007902950444747312140170445629316067343504599526246100053847134070909417794353018792576152110547294694136384981599448887789799513802541293447588684160632729744567423955400526322062735839645648933863136884633232892922070586286141801872722491697203647010007582287550990452658516281130408978918427783709410993101697026089126036381218940339237611350018819297168132452036405629191252896109229853074324825320640539721981305576478724877163592548731295325142122044122632385172035180537146559217044145973614193330603204876360910042852153734814906348566919408363134117801636232982856928543980565694083339721969142398053098541567661286396550234341483301350705055217008430203574288554887458357900909296242274411128466578847942431831145523842558744382410676733075045844334185574236087817768753253721104247808696872087999423157946930531950825519381145776784929111711459431408398839839890085683443904578679805663376096052843147731371880287366799830801397063032732053780768639605524330069719502486351997190476451834750146686383846278431703885758862402561393101502244364927047073141556009888253092800223807857975928776324974341812910231482321000720926358425192735968067738392722293766179209341752438618072067456004859281324593248383419884538618455463258230225443486474578648699755085899857265665289015841237152080574803294755544197291901969440017663978083261882952600662292602950953721235663603362395834103587563059707852072951598424590422892844799483658897534649926886471315957154322909659251314389363449744772400276433447090426791377166308038086214236617531030700044015776115139375464178325373354520695821494238028573663315670414091434020317205296879069895726056080925870051705112142944835529999397879450377418930897039658055087897898602466617376721631707220196994362466599883941094909152174423032564886452478602011245352359507986909603484880395798591367186207676190441949847500005033102026335814541553331351122706320784056875610338696594051636694518986117630599646222080323347828069125768202061073002053061502725337853660848278610528253234832929810021789090867864046298873935671132948321500009536371625065987693667675000323670259627768462248173942453033860523322779050771896674969605063786112590783683701931086425199072503757956348888448091884140340529383262211226230238126320126730149769830071980146650372846059936620317318196962441162403231559237727632677554081179919905409742488759372154034473888728944978029019686410392485647783310167192163848728887589111132365261223218661147703125651338311657821710563214704332523250914427765757972170783903910124433973360613661573042932619828339077194389898552753590120343873199829596629147904573208642052172119784438663914902884007232779029234043622454111890000124766171666907265681784943829506497747192832669681620394554175641175357730677339599319899711322436758868599859734524513944127933006185429791705264524880535881004676282622661188467661376956282379283983441635869132081563564848771588753664743639035937097888423212716959914719253898307938496485871920497508487875744739398603606252172915311198123584456968620232258157168425200219860957741002724013727562824577750379593036794258579686542224173470697530768900370029849306741346570382221536425251050133169182846089751405095976161149429692488716284591131905310944166584417897132280527293155989196628524700617823232693336036737812265159424484460146623554183725260862005662889694855559528445347911845286042951513502931741641468620372617653942061855889406802971328294046481654811943207637545889262176411870197168219130080920700218999533500116031874637617522183004696213230177551064364983751753272064760490931934520009428550325693791809861651352138368934382405412846364271989330619225840472614186670364347886013219090502953403695837246322487084427766912021018644638108552341661673928337406744442139483967519926157480907186168883195406961685980761936036220003486731004236521678273672151255709737497998655973018708427383009126414649403458819864745218778170184102341205840276254775967483322683234991677945252009379190597864298052896358546260119762432645298318812609994187478391397089000773818814056949504709312324507722647014534770655784972004336430209270514966514009618850471429512259075036299659657657101411369749366329377290945205713179902894078470220462540742061894794306887004775964757265866519113844074947646516575022060687403199043635759139233695121013551869328258426993823652311630750634517482568081235158949498863666304425574588658362822208052606706388831416367404600859667581735138860384904856169472703586516647346119304182668783339856013852121656411399179601010275415388687888203154493807980050271792312547091845336825834630187190780647856858717014632966216572585056932123583036468407340203507567516072740912928733960723395061763709559693813930303153433745963088448592445553343346745633644648776821637814937631692935131621682083880199801511857931242367126599432184751154408736006781855052164943671940317477131313345794264854703515845873904119354805878920275106032833823865692295647911670256654908478654028282385350954208457501122777097672100353095486701205897575090041805352088574137116265243052584819053679493400951439621680077368573686004551611727490592470235590589818925146624460754423404653060136818156510771049683187777529171973621702173644283012441661599552502867161374542191204006276141538010389958890965571233818069497600518128804780467204107841213160066813697449049971284488651489263624315013948792359885639431746157134722759182952172119789414742794301854345975016418109473059304649888702636511980101344359329053567003958582843568168916035291333775615728133321784779428372664971960072998752132317738030028248641926282538260768299169689801190670525424504794945382344566461671446303506421114448525149716666687172195840567797683236285233153212724686395743919403737617055151423964666692331736118775882623577271198097894198725347080879603630786164254284280852083057357903773176944540507061128778928198044759317322205831453928276877420201371397936184554016718824924026264840502685920482957376915490615781421583571407831353467903634652185080756504794784113714531296806421670085626907464471024220266447938363509571609212568682201068236982902682447117101646453815771358777689575430120343800918025217277104034446813839958718237729579760545532534551800489358777020853016386942108630585157521468281445450627106759229738616086027478611929699481363418103182445845780018218905678834635783610435795176452982238107682202223305476867336315873220225598627953468316550618713144088705788922195535243494212438372115081417748657253495339883132180170049402830023354906664606604438584976433610414316831404609615831690928883816147623861925318411417331292136715854768151081032545085701712891794127821285002689859648421233004694629473043168068088713440722463395590559807198578228771579753281896549017403001161012703808027542354651573618564186315806061295656267829425855849372866257007392712337799424838095639444492590320130370878350464443796478584076649667701534435529168340905526670295821993165604749667568388754859060993319432207509282124757809492496986110592668290411049163820810528421167712745716328410824508625881505379210970023667938327011765306737821509680727465639694900709902677147713233033810404041031500307090372485666198677863266606024730141107687752599016511377098911295678657712232119051926432305243121888835466963785592631250980479840868202487010920331310073139360663723066278371420227901502258876417720812545021260134973322086176234616680482737699170264405766444163368124252751253673081447780695911648875554831668344980570447607428777921799082837593250918640241056718079279643977273238399733898857528344381308026626869067104514712220781388594819530994014163127763777902375999283588144304928315098377807176333208391563664809436180302657773217573893112658612693462926933973857438215387464157134759445247631860529301219509553282513398827675538073161713215847582647123475765709520053820025884475868341260099212227989654762303099156686019151707119584275473864900630186902099346963110165775098056703154990476489925093410386866642096758251084849436562108793280802892904328191596731501853003411740323304897637674213177014743547490385722949605165350582055153229094743940146050241463727473741897150116072491719589099991737275867202481205371445554829355415899620128083173148119143974730354802771573871688447119934941695275568090913795009541177207802392302256629024972019628872551797921945932356482412670194515705376700922026958832586785347509006458113271035144207283153607192179279926492776440199847341196234332797701711708273171252385347576231255076163382756894227486532009577059409238507172189401137570850886118632292213484212363025621030325292725953399102509341884732159797286399327637167045852283245173357609475220801375575176181702973203325262719534290535072133127123678211217644880603970717009728394167343913450254241431418207968667413857577305408153865286184373526305751492444056347708219415706739837877798941744743248315682914664553555238053393594142240102650589957443044232874964709588112705925581728246145290968222934811074222099256693354078045415253820156536808721805361820610353875310893644918682080055371303681897781419961006272902618333543845554619746965091936243113278800772752690832779272190081549743407058048294869185166187613725128395429697153874517025209704487955519335679583513339462263887693568895310624084012924093207726299318042197798951735382980295468962184729325221902761382075647172228905098490019258202295352739010115569016464172778127103130806968206411525952840707540201014801533687285878786283450236292685207213518377341360236742280510804374313603586317397329543253848041581201679182991890659797782098381482361586457077771943970343014619301566399321576901177678516614908217398228692499988742653069885797444267514690317750227345914900086612229413271322383427920122552635902085516039136395812392159108949547751096880026720814852531896090281652909809421617046201910832744476290425462077215773835321641382396730935047470896916873735389160881547573143887200199378280312791334441367006800241984919464110137685985046152947539168155050974719721245788374623396386103889317117934323886543608455311629815986792305553316317373120493293342410622996672698695576052053065931653345886860657071146553515084577255331446863966304819645241311965850382589406971162646808437895463868238093118630520657035226189172421438678096948889490561905242151808341679163989925881500147821900610555646307965557598685827889462451145036357297644158368142766058573122615394642622356748466688480182935695614067975784747492973759756019851249975790727703684568405460742972236207497655966249416600755368415737179817751925867119679312780219772252046381463480259611566424270767637162318312266478919326388872896553509902341814696819652480298427140400072370008256230720058575518089321232517494282518043499299343309744557511497702098228007635656681863235890076303841612618137664782561347476181544384967353586346705526054441414382721069312199943339829006356365306824291833224143502939738213295542449714531732142168632779385027596179039538540084545685702463912725225137015492584568212843184479469969109466664227483639987258576576956787640719404272089848581851792473797365456394227003165480259884051442477827246012724612669463366424223946668984531942502980480937059874111116721953241408771150885172915138579684931883438789048592970319396266491300963730933180652310635197394163421923647025616444401669287389360549330034563588393585743163053750613900062575605967809572274445842822123674308177096648303202790452357817223058289084924725187216221106822163011712276688407717034046981813589379066560952498272843330654018820325134621064720782102384278839805317417830804701560269475650820484250322570580242854315919504049562744397845038769674956514404296436340980603545577439591983042087668468392600480998203812932479558459445333140033978566360630597961585811187457305644232102781334441375356560563613429752690135545482079004595269662832331128610105241604819929665049532573810251000510946502727253480244962460811621437700324596026069394264264635789098774498440818385476654431686113708209108900466054351634510927338163043964703640677840875571859103437957537554738407979010674978943782302299539837191409071405029353214407063657820818860961851256131496299712275072692837689488262334859062325294182602197306767561296758620976164750312352946974057539921449807175357141983452557728762598434276776669950465398612229064741979567265063878955062987570381980591744606286381382220024827828147049582919869573214303043617023603757664400298892261267578975361833675108940996778982324411469073613696315800680628910071571627823734667084476088583028200881755247674603645296164390824178516125292633655357433933578304860555687118444791191846364349305941440938664785174447188595622430042858072639385725502033813190887222459902060221243354601169252825443731760084772042679255136895102825563809581885454775622181727183502379401407902722535299381524690891924716033322565045332051101588206900818500006235943244044010776649042332364199725928506384653097381906936466350439950420546643530401825207734693879243256979980590987179971664180129539540338244825348485708429996033761161413022234635347811156868609497463198577721567034387036063783854735487122294806778951538493892748379194002873163719438576756648488723807351028481131969012353385260664666350236169270000309218241205310630613709466507733765416697663516722280629050078137036987309515546543516193485727138966452377730452227011428782216538594263349117066222263052920266553993870154405746010410167599638839361609724689466592185186942003688996988425892730465274502419424594082706435165930105974329188152050043480650305411321380595208126526531962617187082225578743253857426792507083047142616029434237964187371571222388773339915330984675692944892440332942947584739499384580715777485659861686526141315612353781957807743553308375175466609181977905452185296088266111751397177324052942987620455656626789574570248926454803488997955247420827913114980361387114638272550995095415406604138528218500531109961187326844424743021175808126944660006614814987744208947479541024846923842594230124826207368976693193805444564536303596552844230189769963566353928549252984648213456656622847062837486544606894984369606986874670832418497561890037779788967572221991971571348038310861224186034559717942335987247109862144808385612060747253191564935539661213118932748187055294775486568820039045621477133742106197161419221835255615470933691874125193324172068118630263009844352167285847257975183443023318213195294269336625964987474887035777401540615143390283808245381365943691203079200288021588971434852283852637214049781160563446622116523836556162631319119603799267103166603546136163121131775150885728423203301837950860253695305221394449491106927516256573965885847813083199683774791485767875621606138110652603702236162481357533933265026783981291158589422642103388053381035541351887193776019046766017502675809016277468105437485257092574352240465285654622007600872093290946559248051009660781877563454109292945391755651595857588369191452236702873409071827887237388473373663496519474003531644683381735294684802936057163242119344669301840461779165610675095426287591916352325787453400569024295818265985547006945971773123136895433358907770505006420441753150387424884098579226869081262076148622950766805410714651960204812049536927229734518858860374518689997626031066830662605291360930810664637673378449177277148799548983689925024983545758992063807850159162084137934073215942973965901599005088820657451527007590809610239295409315981021798010839366844379944378817838290806946069181974555352105609377250938197613126111604412151353712541421794275471175640709227815212242815511170534084374764648295721754297892834202427922314834950212808719178725440158484097252729703943131427039787656964762249258981699375784821180191909193363541786328620287688112742921410602897640077355759512775816775630655398507802481852853293638037985326799987394325537627864822161594597411974466760771457306940725192630454447360404917564283260614305233148317239957108501565772849700787245934236062312073585389435521049589281941511768010330012927551967079686349762631828518563270745989620637173850857900541374963774861330325359458860937778860804041544258513336142435003753663973277184867569795063879663393570966914593529230779758419367231632972648331421016991372903383064170494172307109508044110021453398600798259450773893624320138075185617958883288232570589968180199207695651369565615955044625862148584704354644643354308595627828074269150351061588215672212227272458889930246940486031178162792446883415763843082078589612962566876705437656611081055982797733309048885314929494355093722640578155929323314202922717645922779110453619460491522435122423791071916135428078378057554510482472714452870473592669995395407138851891811981225271801403339919104045473071915985948551827347055128155698826342566811447143517779054886353261663912732865326477253342366234002939228820254755805000130121605626987847528547070266460842178255998067366415177071036958979564826393792440845634869299127740499902999235378643536047288373989770086323468853507449995875957850118815813961138320998649585507784248869585880619986831198343034373465977761915268426720801473692457019440601130937133563312974440556899018248932084630703159566163283339043816962702108629420803009796093905269938186665672109840857894810458528060173804736393901767075745395794018284302804169093205476222642065652113461523679620956294392364835043093389770263699548445723214094929726495248961914059146910479396692704745613213646023661609302692978901613393108006449009824277987436599818391000209671368204119030873433440690393870664679936983258201126172963161000332638564690573056218007845632026540310755530027686218985947380015229837911143312488755126143416702612459609882368203955142152649046147673840489683717066883644635732581676932317433598319502907321801342085483266313716693713040502187487404156702109194475887458984741845325625808633748281559424024972181081945305647790725052817990726056184128735124048530883269219746924278816106975571613721204144497880621329023778728028344324037837342407740144280683306885963368436858634022343169482793719103415565257947396055236611860691568099871335331585614003374759353739547704169139635932437683291276053254966723950894425315149810209396610919611331036105156533262491811033323039079535495875240024769819446166011602920540149639042598465812340913533446086239533401053724662841777227703605715808773779843684308289358002442321895213394130193628339780267044715797971250885692341211057079557201875095812234615409402620654375063825362236583324809766673400815967472076930213066563058256115556633119070260971583986382132736483615694536200658390535589767581477103223377539330745171919274936130426188280034993638073616742949617411684868835245191649160676125411885392165505624743864292682397979849035387446566720628599676736271723143767294277962394234397014005654658086551804924911277256616579026615253593598201750767280052492012481739001601025766245110027607568654655921406197152274526430406933784644178674324008169186761977439262758273628968104810301909625079721390867042075986729774079906104348173209918457183143100516681219496598400662658010940180342475955737355198686640406075963812554254753516789694295541982949675748484688027359496027404696893541411154639617724279685757385199414683192289956375460668330015241173612600540716241711951955248865696665883426731149462126721965219362200578472084405353457214235779879796178522479552032758909035501210896212179886662886530919660980446407224231351057393132542668349719641568293785656020792600370916973923688686163688081786336957634288154542016611062244212107104393076166162308712515700811171850167959662000279842780684019383909411402623573427962172211896319340045608181859772192904677218635552392337107456844089173623637052373608459003203094474522452731236401509372326348436893915346535852610888123780019875417209100266971485679470743996580321060774758268689655978922509357464409972628110036175297198753954570275810963996835115405632588674815278915082820790389508595927334440582197247313265055336413694098028895693865639297781251871351889724921508700405492501680168655025091667475457553233513512179839621410036096320891988906209410786865362004276816562317715790591099406600462410529860726707809207840904357919529978168697106094743672036398652756990462519164296129267051146360490046946844631960805006845461277786687364216616289023273523676182746620154417719469429367559604282069610767843299175780375063715575409046294143086619481118882683507461414104191275308326297704232280286206774718800043900208409976476497306632650648531143108728165304177144482088760210792145724806327770853287642083175045502233754996586951662839952866224702194401372005985228149632678006822175935502802081920822890637120403866984186096660184960751485122770859010536173473533898353756131845454469088325793358223907985787099107006109621643159508463537883999908132221369641911302303447923419282495760642065807732117646366853281229994802173481941389474594278354496580801243109393993339571183550744309185247307651319318974782579975746939032308240833380351875495721695259304990165311775932042038969553551530877303116585022687923163640993466521059288744817540673931083239852511833543592476856005539690106980942381218591027143688961251660830473966206021801856382626773946449631857669046836122241234141910947226087791418376730242453469099801393605248057892698957649205151528406938748663378260050682865438533934909363706833045290619564710458954790296024904311938482380556789041096375992400355329515331153521355676591877575172148017218698568793415463813497202839244296924523675901875367473296667271149820236066309207125161432535970494919967728126186797868828566150643956420990679316156038281758380207191347790624832354586618805394803744019177706634923436596375173114485170000041602056129611075339989588472139600703601107603529421612543323906834840169446541020309299420488719209888982939803676326774651527533602677892921718660616986782349071271685202946742075433700994610837170154352648044648522520791234944734401336257700992650621728023332426193642359171989730205369816328005156772792441081306797492988002724940393927078434091299885131499280763407332805066871228878490982818135512682067440457331541851938348644907006027250122185689888145259525570258053632538976128755032333029903777207324768469515641823933871930142231945773165308846838625985651246951442211466245315146107949381577531921259505178020739765224108587150555904370978613875356880003775074498991138205812492338464956433913229621072092634353993987279115409996334774680760731168030747980894120116779695629130740826841078000942382080787647650412939067888356169264724464832302222574610162496826590514760491953460238244891780678738745258266727447772538027313694303602014077763469742361143712981135670119508589094438120740997873065973619408531292767545715371720741232137112701145342380955302758682670260647183942525003432535572681396860746868427889431845535631051348615065781054136308072780263553194286309134495374195112720515456572490174066557705024773498749754037915570717091415066228893614554688298884261697119059016794942911681682659741066589047303256137862111253447703170834231090881266678157329578126743634937874512937877675772512538067671476333354577506888677455074230754639478022062833176120482922556993459232082770479809373332929368407713446682892181445751471248363980918803866193472865092207728364143822884187217587178054489541229552442822070537966650080488830557854284293317000120387950621049997727371706572323049021883960485154402117828867913816232278076120633834442201176996108031976866197349914961433380259538698064614681378023876401331737043948279553129407368662175698511315364827308743831165370481447337697390895903019862856925281162964465654722832309175909125423598303373312362595189442562531056675869701958638355829061194728046827169148824011577953378520451196526011557277374969583369964172767280860831217638933500098414559626631099723946115979883976053828677974257840561416363531095848950883960777368933202916362424874408236924992854194122937245744949090570686838584763171257440411781138855483091864691086927146150786402826685042886881355123214187145455784204616786655384684179576168201175475797954581933206284386020702716206238185736860220864955357981060522084854229662600765871844473893429576525202026195577059922456255676771612089950207586845630611452606293942891077326024716947794710029996582071314938694835504655815206559682313409472337192634574585178524162981288801645152545692591697964878972327114347416606407419216208914093544512480779777980139043945850239664167674957869150465712300718953130844846109861645948827342192084331757976329147259214700411138598557759191842578711950350021208463835538945211025907177273109114557838900551301671980104410307119238165759359014234080063157025281901638103357365087040683076413282946248950753914295765032686087171032753906819351560964417765385491068439031424994668833077907853668389663468546520942510604996023042991190231526805937693734864345377637753242408033530614722574391516118415795245723248085685944868529102735543796939108394515815806638117958886652021960829211842013706923022220356676819035166785955754067210698829623434537789140762875423715891939147311104162351172073798284688944328815723880939823998577607448876302046898910346008415464596350397171517585599664363407907444003160533551742776932201579335374089047460262373505781322514058043919350099235240630280823503938816735847143087127870539156733111851937565485761407317323160733068549574819445901961783465665501804290254615654145529899269219942011456938639687894773714268917352278124938991579333281756232113724467965696239715359765391458753740844978250340582782640740516576645088445195976677159582401697766782456296239668835200875153105324264660885169747928561478941992632440073824776433131298620774706155055407863910347324713141375277150640850261959575908339023923297451891584047094823184614530951047151857577009161575295514841368171207096871994102493348689604257859007247348809737508200288342839401101395168002134827214861595046938595322561924039073973404337341485835226021179026674943968897640828615987705554582181260215502861637018493980543857208933282775893861421763642826578025621666433760965424893215644191096952101828695890046081966576870099599069251405259388406861540193128578974816601649579616755991177368859135033346714210076711797703981138761417330519839474515492148227310961907522099578830844937944724308421630302341238575790070048136777029907300859430133790602511155833760556038228229126349995599036453868840098587972877680007866274223641407744463409842049834623282652483966576824946820563380260273622273153103099105117950739220145396014134160225928514602051028767110869483761089468862208577058653706175648597079005166706400365221916216364942528468374711752290983219944482449874845271987666132495872869405474993878832323481959538516360282976197137991822340510450462168987554145035041604066902722786275377724069426750417544735594641966305244504244211207971474180363821372372044319798128511767204578258035475651329783732371428058331250931468262171546309656969688354816662603068925653395497679280069489865012900043461927065589952044194121682660282349465413726945541138526251933238074771609802476749928337175905255583109970816216705798985585442014914004588099017982299725502091014486637761430992905112740547761161160916200324988604145216886431113104522222915671660826767561595102057018983398694971949630216140608176779343301381684235200438846827572319595805194393703589860934131085982930764149344126599348868188152457577266115218663137684808736625781283285220537885558867570006963007164558963510932155723708615994192570454822982481079793204813358258683289144314408247561790496730577287222024487696662653411340596118112758589699810115357767160814162004475504474558258289616160203978912921849955604294912774520902729708852690341967610350836980905320886542941073827511505395912147581467687568066916490457618225197157115033969380194752106515291152452536918994847175641649079958434212051306109267097749777945772206386696393704585207296979675659298929711207485401564651253106171066730992340803373141002208436097061619471038220400278676406904920097883842104607091004856291936052347674420615803819980697771357892364497733775583267546264593824327445192332542740510146214761773029409912593930363918491574487173801027140889709668970705018839539591963780895616663748367234325969450191232793472032389499151657368131396757016840881753255849075871987647239668657943275612559884447584466164119094213126462650596111539949565292538614266444123393942208516205321664210581593974135583548909418085306059612301508164402017149473540883936075029085074494600940047767183404537029790503131136575674067950691936891137423541124129533559812112353625534633894359597677800388944357166613847172383900724960869071102599963036117483006651965004042639632146934683919778329802905642104229710198914069374290318074273214733813480698611021220103897266073153076936950103220489259434905685003026147335648965526622117275730239907605657202003369948319180830153007448618930459256513681213360091203156537459274680073177779920207240443076902678874027185166724858834763139153332105843971885154837942368538715768856887912541739768748937934323494451501382726885841981053160134401444826145882387498016217521719492218114822805565004346495799647073425391883197306408029748789643350521730268608286438943722505355868642416997000228475389527895480493445898989431725935684757898065599318616155418765337768361368486064005369539492189255999693207156235351956163186502659201613875607948572903771760312779236954519628018053996334165435405018523577334395864842077612935123972781038386571025332625793160082369681083447514310366496692968832162764602351632996627120513811215987043054936020665370153608697455519860854626443947248836407051290507675288331973288900537925134536573564387466567139033149764502075455002040952384071149324982678593092370367596189594717956817722508725906812666501569774601360510284703221424921743850715201590585108357288356660397002799600328510561139149978174942398912452103676313844884236551566052340373265521187515222688085719335822519146614741480884000437399823886067298394815387103538129444771009332584943394618793396283008733503944033652358106225493592611126855925393275727955675797891865491756451053409863093072931025118758288097347952230491312308772765463142193819455611580566684948488569155911660360265641024260288384577152410146664248077861882328366297753025390581651780981503372502669130702060625142542031336744609332181843660765952579658868642802711909268951891078419567815475096085141365514738810813987372860418440044233643995926863700703158005820034672506355387534395824168958904159014701746959617187436346755868497390051818142240727049616576181740039125573379322294577387990716867147172549862027682863983351933286961578488547880617249932619757866942595416397086220901369262576382263223978281929075464620973416630849873869834044735170389413632981323031284237517324431765312914478208056369133101588385895916906650401930609436343167541090715834894522229096155848157966330096401783238034098874157261185180292853303846958717444605846235421402835559122654123464325863705771988834715879954054915162865417562475385038440071844314484399130131200387501136714447806323380892557554032374044758506735151073281208849569278124838939807007616870977101412704228409535451429243213245480680445033917037920153461630708177916499727991925259790633946641348383312896978557016025711097810530051193612279079750741500248680618369067245914169292459571618822136329701297370240303240518022235797449330841462125000331452150827698893027189771361903603816169929149797872779061501676485132532108361697381987753753336556895607932680752464557365695565644351420872765354057593182032829290809376378647058214484194801070371111494947642684914180962328070964348245942433160395181086562965537985419812983706180573837805537203133895135162145251148806548558472315460501012734346819541221676442143145896005735380029478357522097633446188550168535795370897616430687444260103277335063076241911692625546220399990949439210652615295101422618264944804123564603777613191648613544391044241796505131091693494652176666761018705448246398635840530991602203650426793848952572146656844587175444380001140070239569235311971741077138534308237711442679507535070755475855193352368924791010294248149880506774847019239210088210186526409576252356301293763687263202322128893727337429863865997546006712763836054962252075950430672412559351812289944787062997743588591531936425368326839419233332170360593593863141750871862037678878606969276663343327631411412331115284641520716998777586437599938412607706290430836013485771637462062934507704136254207192533034232205523757337698048463382585265455975449712403446484888206042371532079247071404531892920840361586159121090001736090521708807482392966723871825902278320849631318871761667424401723807141413385390394367486905166025546466956986080889932085314896282821322734578012862285768495992031269115710321654207703944629721620304026077974211652718041772586750061916762278192793331433687825160417061885461748694154711474137677688422628671231433898877891480384705979286578012692991103885072144306777969941686423993962197114071868339724248496480538614027044366030520796380580359183584278901525137898155004442588410602404963868502510507821464515317248130633527404214707764435331904516934370213247957076953716967243046535632378147714122266496989841697924852445291238714108030427802960373554562565153243553955273569797241873169669982584215615304983237816767493486528562035248823423298797160598582714441921382949944314979043906591492245125829761549849798921752932884093482415844702688977939093904163689037553753416791553059782635929122050587781860641665451447452935804394040245708460992618682653586922161352541736570105734085280603231979556585220508819236421614569045982469660097221907782210808064055392880276449222217041212836667535294804265545326086288403001534929627195923480246013571010215604143894776556708444317799629416499124976933443714569062568579269610002034952830910715005228073340413576300140694651961642534976754102292583463719321136163533252891310489689019818266969682975718763135303447846737636000068504448525633702736016032539493003978128922462854481192054824388533861557186328380683760702268090018242917966635815174466519748721582038604649671529116883598283312268193231187292528001207002933469220836483125483074904888883357508807722051037302883303273202392087513057353427644748605858290294186172500934160638241575903577946229726976887505892403202772794741110967406142620049560051338446536722638059792567308502691230293425944206762489234914693919940464101288494045083575320238919346854154563348174586119198255559346829249911735371085563638330186631071237527533394043186946824286721037806030115578368612375775882772345027917948652319426612760633324575554349147058929676752935150289887090670269771585607023835965139119480588019080825901508414488068549803324031106505110811782850280659431352628310238867892939398983399596760489480731209582682062643772679973218254973157623640496145543654078623527616314496221114688243342504951282063615506707669137939691957519330683168140700840516645056958495478308954468811602020353880739117887588031671442436187585472259200436316545726045641472406033039284221652593265504333357432417040317921930450072054922591281368358851406286775466970058463889757322563838343796656802890693472636210038121465103118360348362175880357133689887760074651369422672176232525001102659968677979849323987382009058317927424397603665510645033679144141720988511667626594518630908692426405539407920265602509329311477950304115143032581262832988872718756982842448733860448937209576927128928831277779938015990887075873805248562034599126664931506016040221911797002745710024292236853780913481698758853493506173495276022016866176544877519461506488775658576511973072860550279892006140625260276985841700608912439019666551787431630888358829430118341988443306177225868940903700270645398393171321627152031168156299602326343177821112586376024207273242206166661018188933315771095914217000229962596757917876995583764726523540464104086313922361011172622424072440263425715408327074645606449848090949760981133971636590446567559034413223100248996215357144184943771206641185801171037415465633830686889663837458872296660732472973702246208565372887770974055362320419962457166704071962319570917977451249567057771084633919472083963305877631314635173549619037179862412579103511510280240109341604847481121924908819695289761079713644949414139034774564654142173407021647239643304989260284409292639001359950216900730408339508257416720255006233768989387337064134793818582950268853027962569227086854784695658194755354395299983807703860668726562166577557573466621967489817319848341899294953330195511558044661246502176526359898039937833216318212713019242356765907827921463397599587977449586244308193221811995576728090678447073994967674071426740053554722906119149149869211250665090004861792542748409178846027417730757588352054565673647368957532980708450212310437889417584601899237000769347627956032709305997028441421077309348143922461759767224056401493325473415160161160769250266322062981067622024776735455820989116750582479540557627399349244678535590417233324419868379204222302944454992727829598299131067032825269119007354612609493645336756640626733248310699626182806687149396307105629094150384670740967393745747941837079919711474614583921177963879752504094176510329095726292715711985590849393706511337458452879704649340579853954199983912319777752923664378185487127426994816136123948007700878304323768422686919146168994712855796642607972428112841910749378380198602877673194524104959170499311428671860657195935996175625010945567629678926920574776566764091105260746218838909540423742005968388010786850373813065375170394070361722105348951456151202667266634275108236239815783445519072575119449702479022735753537170034460899293176404741737720839912079293539833314331834303879407545373733453103785806168446654347331072171799801513517092750770041855112335209864205063273133037093308165928672145746641324242346112437792295402167230905153709520812912775103049497956868278410856968140453110795545516871500342082463387289405334610713328309493586705313182310222039569858081555887684966508169339637841299602057767051142383060957280242650038681036372107284373579303442694849300749449574043967644926676983732370729322042448826537050781992457051254933070098195327551862327034764919606212264277406764645432436927624792035363461538299213971203625078709435433183031451160248094166594498128455030983712104631612140698069898839206233944465621906187931487401358071710314818331420812137485753085307016817511079485638996534918759867235413044703869533902671366051391653907494212887531344336370802968108056137378360141221039688169507738544136828727680849357668354958420601336395691288632883891543818801447149429904358097556940024005217505700937453091912131879199343745929666395146841804976412087472877855837247673235171636151658632755611575584731722178798651802303469253637368839604869231057943007211005161106852717600971624664563277552168152720882631688017132716874631063438930298699380938541189227588908409947394743934415597117316429719969681664490552825712600983605694616666673706377903994000535360086173143708211790953168498956390384535008234127460246755942609626104398100638539441466380147492295893443962978173366218442578306083834758168668634046449338935679760192357918136566959217682341227368469273849967322430531910896219673536325077675946333131250766106154863477420525669979365427664844214393705333000050369597475585334432404968961240754552208358290464795511824542307527527404375455018998220242076548423940305732237127867597801426294776100811865236659885354978387466866319866845658572962243925352728211789504900083409611885514918359570247209915235479420908583346423113686551282945527344738909939210241981512892913483052996821526329657045185848879648538925838132901945973565116599911290889601552183132342473401315757087634321064455329351146822393017017626616994584936568414825974664271282291696004007355188426614434299994398827135541778887186978505550038792950570891451928079407444139227194636077663577260531887032730368822373340916511070028093406708418184528325231488925486235700822642886872795039335455511421158467916656750385929885653725043072511844130570778015686591662515902472949932553198079359401450701238621095289136356626786040030719430401640732090955578781062120242682144466441517924286340292158510310767722326735894958510577996901694362517999761857262300343778051501939953085135674659937730226213749525856573299912793278073254435105270731191364259562371114433504027166564020756298117080088377803767446828252564780245851145951834488013447053459441059811414350734303228041100211020700889098953245295131751260177210258942769639163512100971161076571145809503124356017786910299146459767320593954711892751532546176317891412853525435359019367956687412386739217683642568236144404567110965776216500919409542063328202436253108197757639309237258876180361344114019662976857034166188934199567655058033883188267840739024025119497220417688088943399434033655161052410500307878812447752249770749414464320920886954909247328306325253235173570475751220222554443947128737853115085525479777382233096099917219940818259012441402374296530368944701065346072607366405771011413252157640748631142679787217047854890321065619524381965450367479997686533574590622125789217532450325850314677472340472698011196549885554098413829674927212416440615937571814824257750529388034910292204477769971938909460161207064925324360114153559669107752842963538203764930636382561189533281395030264069254254376881691375895345470025343950079599641234235297847359474148013980053519854276738314808448629914299207721189189125100271304921409355372932700507878211483042092484474825472035000348208621383930781954645206499954002978516645959967973199797114221211334851699296695605778817462299333088326990215236463809747933373851469731517804757467283076185575654785960446447692772912933827439511567132032636361804285928376434509399167821169491598458982765453725465643916236331292049929985295910697649103413589686125381629774712170256301244833068630822847880265557700711203829129074842763086192893038706943562157311909423549278228755358320984648176435213995451401392021880067858527688539324198355132895643126066904342274206878094089125747540429579767974507565250653168828920751919065148938040163900349582976484497507147156500418143848230214693975932852586638891730819574166549840063679743350573642746872614828477902374771957537619602279121564939583737893066983201546587474291343984821360846893101821230673820223639512565935972704990869149018348060672215236486675969915963842613437446835649221625969164573642330348312663400501166202208858607327834973608325889789833048340170533495461290919396242326429470749880690236648714167597119670041664831883948816701412552385325398236067581188231657098934505010027782620316002222807781555036382792700103524412224304677473685704030034776798950998736924447262834703764636059397705653921932242194105473985486145745333029799362649286112429576519064839562297418223271352956378793319663379876787334857433939556366461082239211837780557523401556407731235217985601233407837340541223448178251818884272423315454514031272212233056389001727846833685950291497950079867091539664375198729859601877078625962154299403422417697399013314310676583727733280447357140916521151949572497334546837897202465336986640526276037998610770758794006002600528413723398096993460767079447795605491692251087857766234414011235104230387690844789282026940824805236127911822840211934329039967943002501445922517923600598804698666724361555700650690178689233655818366602762446958420892150556312510937903752464608861731669774592825976494030706033852744964618444206780252317244011934977010246412041951724904517967705297430942863300535430258446706752915523170870204916278036754048861333449887647812608019398455156515594686408665643194892317351618592332737644809921620432702542301895034629684543115585810194153772777903400306886303762498312596057827455282628997892014176110059971583766708482198535478338508348351527378463137538078044732399762904988295013341177939672816455852139146524393414457583028063001759182104521465310417924695579897062246212724319446265218514473623169143376632221655855946513845712846063766777284934565251486819984425084127894434850751619833375819833117272129544244653778969128068849446005800469710222484157781299063119869580380844822030860076202642799905213959469635304343898025652320479836298266417722728485289281809119412104507260025528963480256011133812688326069734623865489867492076227467927218614906888651189345871324560633721013150543470842721294898036740020289824172092615183291969817158148634979890761745666449196804056570921334920582483836548718257550048719290904588032783492675648400360339585928939939601490785131971371128867912577344626987727321953240211951291200822036759382197660652527259081193114886254680399038596984861546412193810582819399108723084651074752938102762158101471837043748913422506853141619932356251430246441691868643492817028320259630916128754604084185130278644094657142111252771954672439043519631470622350930575746029325817424907991960972563258685550050227869246300181053337839202128371409415564928508287897207705244236919348722772253165704031876682279782522555079167965914336465294942094545405946926877425041274367800403487037350212586627596051645324165209289925917143832098948738688920468115299253847074172597531564240594359646497952397166831395976885718278991106876144017877268152023166028488618766150319321901500446265833695474252930261565060087020278316997612014143203062034595427586335059383411232376804562664276577266439061366967590683037877725400861008652003235532580716508664269551406243806068012414486507169496579300552613591190233924794422398310321697385604089366614315110352837041595080916732564576617419076575038442518502939094377252617017936954806256911161862357841461649299315885572041549255981505644272818986069159928125319642452913576390729850632113255899216919803667399485324464547720632420738669809603033661443071933690182886818238940798389568675256265729658966719851793361766233184716616726958634268359100522616218310539307227286652039388743928142795976328440828717988899621778061705331392043099807037495725698011579360899268517668179382206053448909921062598558055503808288518267813830712162294860559577642337269716714934784781029026478312477764002250961520055645771793661506861488439929236243214004787180101623082853972411717421788825257093782665631691304527042299026667601603426196050468914605366926489955519123426854444739816707225681773209505354611173050747204210594853417742914006604376415992975732346768520000709776847143949325316046635004973532873033980438488739413611673096163362505631111253328840017100161426859755781828620230706431195625430833015772488074974362759377927673437487150612738647939799858689682499637270605591268690104140246068574042730859266056633372890252609499202233476538903974477520122943504954682193229262385750572543492844386019123459155684022175536540367443589998193852224819018443199580874567897657580101497493003887854727665318408215360297268206292171162165472809644639725208847372556046791153328744583710789066135564998647160152218580831161541719658487524174116724300911997616164725598463199832373819097124756564334355978412018275866037850412878744939112753652746690076854684427228849250151600123666114972606480176008402333194542428738466337850222841471943876515776357092685589971890262691017956259649489728370226616775657202546475314723130533521247127950499982457395577394281965322869347987113075465240266930095895715238840369321044017723953006405524411993813835423495901796257576880352157407951615871527372469633890590449652816596874114208658963270439095718348684771115544513644527907355740961579706868199787536178441465852617660506819155735877889425760863078961738893023541457243980114685233636822208878137885727048497275442590167062245850514494020010981617104452114961421894900976266333459284718118963970969810652286970539177248916398591114024230759078794326349727783291049254352882393662914759655616985877908380343816638218314705860110277142250718473112552492318699532757502462221770626843358589836796223459121512880291473566298428632242671799744851108136768228014657779832168786691580890298676402862502230524348525430062900239287388323581558384823415806783596922920379907017629136293029270320491681430097277258339756335055944803038042951524726425952749564241260274459054816701634892825131307011453587558077243393055147452335683320939762713964698830105433580114890109034214933044913837554710122500843724280288098831356643159569038606383301696998401557418047403966105053384874174759536032213575223672590766280945156051368513334771439977892639676267086972203794073934386778595075331834655126479176890304334141811598750869955306754034691255781662988801661205464651856002274605444007317123071113305859255359922126756611803988826675239702970821749877035180424942047033068262933595845532114933113484008697232349729443197425833410916925027202325379641210432771363321499273941412878345012653070062540130506153063944261292362451493041418726221972427554541728078848377472592367549580644865662139529143295925940563695962617905675258079072484831269762352094224131457931392380985135622475000761898237191959670612335070322848625656766197390538599423387733080113566756453468208138298468780586932484020679521009416502836901622901731282570276449736571390993779991634794996746007222580230399568717702575570625532667729512168385032228457227568614633255039185192620150074744302130427042645788526187503296807924801698900799168105530372687555226889755781018501825597953297803080622482275002951705588523372682298100606948282688206091750249825017326651464074020724640887793762645987545143311857583518872560144689200379001468673113755811554534361148998011700543137276112684658209796990933965998633859968250829801016735430398127594621663431928218728370846980428935961906298233808299424011046668539355192301300959392030699291299176991494248238652114863550960926169419865865031581858271433658426085470074487276822319286597002485800755328146655686360722383692066804165050505862585048311039185282568098839738822718083360649626715350074567394968363559035473833305618517484825191114534424001154207952642026755396388550878402694473257459439472101859540520894479098431385156589591759862704877077414377481945015831872979914754473657569535461242130743868785835538948970361782290725826181329385468260426398907791327334422249488046428028756762955908610755356327157275325311813591948596530704775482031683622261406333861238775892921355492729368509312838663214170061880682661674025141570213383857207786486237721802136738257578271575781394117125858201682920550470959875208817173350501781834646072174947593404541979783534755181130527669199751396173628248612779654818408611486630689812866785490836502162017507248486191308486927098430291833630514353899637182191796476882692202348821804578383251062968987025990972626512202350852611061494714575539063633047092828723293066008206357338607185394926746376896886697590737728941460883148190189773681082564626750578626335900150675899011602510740676000884022331321639055658021408310616601886445878412648944253265056716593111229061342215633712745452539007653228338257944597090560626537081435492879136824327636300185036996988425251602240733489271741874742241279635759619411017275544908878385324501714742246650829977198865737673496319388323219775339354374857817977587064120759634105905174958694989914540697823489212277873236268515770299646089122597991332951413803868677061270025393026525967598159950915800399356984831963743996753422635762785479010349448796620772958029766595623638129164089800344833007983276682247496506644378644915510889006921229974023939749073541559062960630824356787556575019350338462197803912307206625240895061013019478387818272232078713408656495487212345077193198747877373960560375240593108092436773964396023764866810287949694242453197302990191446441657456683194216401950824059543536809741958591493859398431040906869930194134235073811614736893952502604132583114399723427082623653778688367669825634876327804088515119327275395520155944497764925995832179429743214277821646443415163066786176710776100398619987475570357769045960392831319267347096956150637838402734366571823517054605289836191676091733828531455427269039209160020121355390649269384053549660749072286782034931557175531088941553909396923857247379807139212273832235106148477774324585964203008706996182947704355334201817894344661283082772237066077442482843451980201176130114214457936217355178841294593570306155131214270805517448930807215877253671682836292349063612422546682276321438801174213845761149433586248006682297818080753258675165847647653073561767580995047660517444271013048901276587534267567284343919795646392509451987848753865749723050819470519321867708532815819210726129514081996205371250563681667624326127700386801605081265477121274546778104287269526470207703055620111366094374219686768478682389074781864470367328002993299774837447528893971107410345101764570474006956675610607988255095955053742638487770740981703018289023323649018263900171706753729923578180009447075580938010860059040431885870132113742049182484025833096851291720152788784273793152143308833348630104020259959459570118791678981490881018622389101421473096072512399087545542769790742844984304433649013451952524355280723859343357082077585584977284745006322709440137536670528731394766375827320656393923743859652218720037506687790858795374061522795188947901678685464221430855211248058147732805123012242070978642747717917067829938483000152452362113230328498269386951959316958752714451519128418538154776618179938699728617112939855890268339601419656670943697287194758571901987460687157689156266511506911322817706183590137017779921956781273346405848976975879060369210274639050721275768002298305917611688248066697583292092077942033472636960776074792912046235555203950581394289695764392958350366490720023104409462319222107403683710490943611068706222036627347467961461124826505910282420990454949399676573932035520858923197466628733557255963277702154149742417102307604305459779449389454570560223117813452003145002844533200954390306105936607561477501033721484127633464693508089772050359993745378637436353525498298703353572142640143582226109860339373428702242721442882817851210210130724573103198655962780594391590791799604727401003443296934458713478167193951353370481342926588539424829647036281911708946728332199810996775512598154051626435143489438772048764825186225845060395974341135793806462442146284165938552057975874084678635350579510243652516348658765301114633122846802055559399924717668007959242417650254323821636694514713251994336177477556410771642993665629750370544389237425898172699050788965135564726044689305582740045150860912580205970360375662008399627039253616485830756658960703920449969322454156290990264325182686788672325246931814744479972979309591223526377583799984340858315976884802008081479021188328729252159102712895897217969380800843959131834654440964200913853666035605845743131001914130052886394594004588120363865692763090754675134947211660238894005853220334725746973579177522553220224172739479272724495797355061125538452972613099894627082941761223616359000181759772322118570819914999871818410326203533968340749645343168831399295060119840369022367186193835543171838707583394967446233838848766558049805490467271879118361631103340897983585398879872807084681791479215803680150247104582118315387940389158557406782631084106831710126977946557795174883936924521014678106898866843492283818175933248139369973840380402171390459890959110051603000443561590179990910443123939959324010812058811706409990176562147587380756453330081581067076885855658005863238280115756504702922743345560154619218744049848767113679174419176319369536809419594464506013308563817238498407081960257058802448949224734067310061485156886201867681519426196729598779817300745409872329174971544961565458525022069304672930679386551872217880662656744605164756571051860658487768953699217802849713734855010430616187576123432833229904775355867795605166068175928349856452686511091123318309960377952399647193633093200097101431813661782638024549133502217628482162932500116937066531376278741384286739284155010564877730036389900470351085152934202683303015419596534906260676143879027283740135435899973725232185529215994988723014697080272429339765725367369823462234331428168737896915987207001495195191409466000540630700014244119792290358781449003651482019879996513794549088897972161862673166571136225256825717386240392635693399879957797868707258480042414688292801965474163506239382813240254015554710939943264308460378942698258259116820827406289909652222988859800803776882646370011914558606625714348558537682076633585941502825374541799447892262528008044203876148836861739183481245535549448092905036332883426765409460122390116805739772625236379594068652975119753299286686565067582283728519583072128452334553503613079251400442485525888700620635052419211052103947862815766706351718361366924024267524199064050634035945551564317097954732811412425967463133292547407912574408918576744386903098004922563532452047054115324379019676009195465481284444334205886373477574418055534742917782835106500385050033857811735859586165705309042912432321963070350924545269881073411029899121010420769778902168821054704090262371845449501570158770823237030978333562183785582269110448483453097704256332155220801250565820138949625471115760821855403635177115756551112445216365348603963271356776118277485623449462704958736089582302862912076199310676220254804070043984906186980722440976131045549660528253323702854569820748149868729671424669245560271097489701216142014031828654451894151036805204836840180882476899914096948939265429035800718589937446255165834787281746984436214454945954438949661687976194482634335037732820020253704148894511413512384110414004890212518927640999597552988280433692949457129496959058632627489863620080848818005358481855973727623769094437662775120485629624884061344663506959873052045573300143637192437106215909546614104412340981575470171319247137446619006681390393220607527999507368134801584704138256266273364450635740947767158295110890393090101253189124205544994842220520509032433602572306741589379311494582502834994442355340163875812117895788367222606384349082384383837115836246135848034986212326048039211465002887800982011425351257221857064759454833060068013704687477716083862349935465496633873697104013974988791341335943104308477574704556869054247431691503183669316871024567102076453992636834737011064057611358286205708208116913793956462597554550926033790162189835707099647069041645206129807949418677528609246137831961806612479695405129206297535514582739631321210261505275694632045796867301414130048456952976780478619194129236774431348134486897611652096096542410497488044388285973950451850023921258146590010639686330407991130048847309539108139758864804939251580311561676567339642352648672090124892437862619975168987058627561247360602382271618606685720053628815814591568830970495096149285791459505690753915492474401008899106581203247913321882765666832692876846295291614153193440815929415690539331013403240818770154995941437008087336009490460981129802730305754840587993643803939476838259217206500186226675493742463311960616069181749226065710726982967822207704270264488401470828085934813205304853457384118315758067223338682877800722563660836836836475781791286499453358348476830370632940839092610114270732562284284228664190049699767697005071372619167536903045659192776779869890367751972817152899707510068018636047425661204387077170438819429183401871306099076842609209125026249813533727992539608046687229547922837207086595305492609638729988579971830176041209616279774970689996654399007925945919194591711618362365237401925195933226761195440462341986392149574669311948887340499701400095409666021946424604367537266185602336910704146837732314647837628917039329295821576239318273076280762205282366799278648218478800713488784605918146592960253155907730593571761445561679519065536733274666658271969953228919508700051238894630627473624285281536657624107159360276760838885278242933997211082882374944742714988713944484775634317109104663495073599652105581901743680200226624361843694546687435575557833439291021915282876564087986668267799732619312767461280398948544474554306566976450374794154202949018048603151976268653970914142707896631665240816753135399590645978461937415860093984732240379867718598887285933531208281440526260494367633366822662085431523281684240040857487317501090446185867426263975113737911363242207496812382859197364438395895221662916391430161214281141349652311310837377198228744376997872866835664971786841618420010018336868677877865319374246261462335472777923161732750657988977420205273916826586210541980622754148276967189505646612812485165788851723635999067088965192258967594969092378962164602097176713926343459698041309623245802296166374218467031865891333498276469892147992991665064576181660447704075316517080173053960098092004888135276930363095600201279964256208515110073265128239630722567152009469708429880859464223364295646512283389373280021155459218341386061507477420137884661282451169860446419791580952374524230731005038221716894249356329748464036131092442281924650387077389456381481591200212274281628095882396034704575636546295990151829820226703505688643113611728565508618409889908836852229673309283553952107536251146925165907603647342425740605174647741205526921443952976795272343407276206386640417100554279123291141517370976338846289505906968184308651658099890708664801372198297077847236516014657563149145685406805292371853809245531016379036114871393064775524318860004047267713985440241634367212602724101385901256892028032317829280679350878494631945307744571019990505888032461377238512422719946497551681528634616646508156107219938069876429359779040420173920873466337023744200761177638226144672034416812123658134241587364683528402672911834167200420477674190414767660972111991404418318929564175241331563560160408794491697768236860066068500649051038828048791998254534388186285317685360585510317989669959357216325565184277131420666026955533567766592957285914684075732239833832323972164956224427726637646429755436908648369940506069702372773542979333860454732599863884509223555280037168878217079166967927120066441070106076843431450353738282019934031770407044091193132775894170683503212087708336535608260634470007782079232115489029753918917168495886080732674689109220115455869258852025915533075440878849785840356651056956583991434087558691438051555587712788033608794714408224518435411065696556474204138971355409737406611278343281266980753864996774127922045638373498466960207053215260697720999804655378180089587174866309863055383212264705173987032996970794569253408607928204473096466852222992618972952692017978133409789903264494682265872159332575080878936925177893905052242796893294005863983061787603547655966326683916544176861598854416046872981419323529675989978004588838150133906090998540155714725797737452475874210310323728285596944655793927220892708608445141806265198933200107423115976205503449977235893590887250433161585496863225248257113083736340685854990045335369226631782399455937645098563138457448059712535339357935440204270611791485826943664357453843917251569960203788764777784043554514187424361260883560773648519276204707683933701996198052018389860966482484711113749743800371022002106683631592914040481626251791615829394112303154186739069908907973103097703728193263293762543375218212973768755608589911254980500516227022784314399357914131335552589884926241960016354700370402812762573051049987363084939172896304580590220319111627038793747275948524305807710610075403263628192192372300380843320082323690109991242384105791994025216526500124779363101769156802826141835426974171493651476338965365806380830294208447062040456114607690133571819466415727832275907059485369923524952508715742083048747487436231519224123964941051276812758161728543053279725755911769602337628980385655459784120541537429228757579979598324626975843949962267813434152388877199007309607375042922302514604484427031556239952288822046447562074137780952532966420332733898396422156063783364369404140958687884025018250692280432718382747916416003676079652513799920176162268792527738828708236296489479715283530560205248483185522262677912103003658570144114380266769850262423091081889384085395708498193916608016745442781939883792116362706615405336786503065726317001187630058578468423716477161806389944795482864218892667638932932128730393950052876985394223221601726271675700883103648764391027286814894039635592476105640506091441099847503642547155970808237311113854409788357621448073677519369060667982602168108617682274123543582135134515399269321641382446779543568488505134867639079463223277655068365978324862670292414056460292934399219833962305618183109494962794693756489923764560168019482465101987503221247113836216135494975572545520981159822336975010076193877523055212382522014954524048671019430555529264471704333176040895398730339749851374064083236953570062214843519066146179258806099253849345247836135813890758030865932579998414771748000396868667352811708549518360222081985415195126789733223126361899692009966210177688405486946896628449174586871921131852032016957346513167132800297919618330035988841227881426376403895522128620767588422200550693568280257502339222263731806204070183215529191040812423988859760948769606864810570715323651569954437167307166882520538301266662392407950792791315738973612408139346682038456670509551701122009214144315987956609417074792713741380843133574834267483579624286439313626171633654169634119319004855802455839954145705925209486742760608641985172488013639689576223388383810079957524028342000249427099766998034810046381892680680190061884873292143023552502435338726792334720693241653126382724791665804185435249024340612288644227063688046097414209070087514539969357942019055798880678184467667316701251860096222877454911431831927881019272823691580262993502430981319921579047924022945296224287294054129006155425562514868741485218386159458513640813069521634626338381669502880428656271482307678106692834700086192891103809698611838431544220711046559250079562683051933443764221590068077169580658582473106947489370720114997348043558608251745869349870419002661288365395345247246275633567843504827785642478766496125450370875676334808125234607457976313843583531527207571675876061930597995041844060111454620484902624399015419760092262017935745590604335767516163217828954542567609160695166454671048428755888388363284192963594302829205866516185245721631576076742202589279823399336249468834989985801710267093636617282681532496510385679137396474034778935178731704229644349787314039259802731819983644049359959311101928893946042691493305594664323383242249961329766558832489753144185342467643419211887167935559587957905717720557550626087967126951025270646125631547350206268196835354434522624699375321192723809519801229204529335018952314358797637149026845013050688698197544825478004411756061792237026132343938041668817023140978046183697758079329085882561823477556836024946584485435015490297721758909357518083670475348825451649741643676340053155047931753718238016438252723720391387367176902614019114166911286559316447171651153056358170191876939121893364374490919265335559869245334138631019325972917912413239525078496470334547330366450483109742028901995089574633817133208294206539616656733903141502335668488612107878300293698421618942665265237414714204381851906616935045830822489669604844320875086365617035145488258970037705179904851679101797966024685499445005404478092629593184028134454256482883798668542669701550163668641109744584691167307810804580678506200432059965473495455845882495985936800566933993476725134242054590889145100744717464356541307189555646609048300386164400227098536417453469819613098704075212354319687203617074702535764812708279876748089849501741130225383313624543640295991655044330063544612598204280982388387485527542580875497972038075608219182096664439888052982836055424000634211298936991467741008421324874680953688100912814723812443154198142712646489164487038244847227797001064475457739988982062038854160041372373189649874256113682281548484978193055589260842770101068260544327671387120434261518388845118145061505655761508754909854461952249388035292168764953821370137667660647739111020578800919753630256584111462657587615051961483839551633316210535824058622957980129092916061529253273494739302438566679979738419036875608252425734702695901102950666472659274201456770962414408949328077626378879048171859571490760009842352870714270999518572315870864327655245962869658657837773130191980175957630146120759199167318622735343478525388500866039969865553713383973124922108920561270790252920529285879822192976803407834490970312674410218477708365134688725132995784375668176402780930328413876706574023598784930614632781998678989354924012624768920369850592719164489608099306702148428320081128736237734429960003363318748671131098086891856266376885389033603121996250413078218391433258726030304256784855896863903585680660791083424256963161101241469162011012861753756193003573609835749523988875041335578953162336680053207099533327130210030851420719069392058462045848991735338044120632453303259611955246220466382198863754658525054489284922585408497700828771402042978738625467371939108409254533290535946063582332091269821574507320446308589944847324507914639615642709236578244417522863095473174844288782589283937501449423974086999835840381373676172833627549872511506603344235886658653466453090725591088868011918789382398257840460876411485151105580232656960359498598395289324909372110736553742338265034895766205897895250057167765351958997716928119011817458820590879138951734354759281593654515434041700315806737350516976046596656511402117365278533735502805928612759559892059316843720188010527951882601789753560972567494042635451443490970141481980117668229909697877540007213570303298807114573697637156014617435934359652600114833699767840373336672334475421505870046204018350509648570655592381563428845315700397896817608719884264472576087201641112267782747583062636560502749288374046072079811217812597211914378109095303143594095643501821555342274101679335392106540332716383312846325786682952354445763140724870727221484287979135469683134711590896867444956746209567948553241669317623415566151353686936295306774066156067811491343961952451571262363398882757252781136937712893936994413411573107054329476075766627084287966909476772572256790841506687671025633662003507301912403389957295121893474423297147816682907500719072269973253051261640571941710179821262846109403225549837199302189845716395147189523016513033554118568259977486918485423492017233842132947444800565512126868386949005347275413213192385034065245707827476853138197237742059780509359951995482998924982353549130111236300580231920989826002032151496041816053344564729350713972437182890895464493234949184052861534829811235644216182782542041291533282468277148358812127970547813638863862913108561084081208182721037670109390040844257331960313704625421964036414551714288036537988025255473808690021751715331292792663289604077279460253649105869144200841670789054403492865568470452548600055127824943407048614697531000107406752626173835337036114312686020382687305607565586841860628095061359642562112803049127462392480288533910024118740357268141807329736545527303283233685343772586351060248560034561205701990560192064830312654696917415705462002927425086650706535258496877842237302555267990825274375788912273394341785126405207923613098212482780077897943971520279039200200556344140045945233656730939547864546252735466937858029351651491009734830223558645351818869263882428969162965944631665689586326987357408755621866041637760387120509074691985360981805366294880370679644424063263322098440412501624556453694878284759596960846365132824267394031775332170708714389088523622530574795102628858610560582759995855978731394238879177354486309302562725226721763196341807673156571760750442807962737413060604000438936530410779526465059643523238751540796475026818343832822377500465200636677747808613890656367932551650826826937985774512185155419622603547984721627903262699656226040333953973432157561557042239553800479592434123828302908586171464260686864582817235949908571542577741365019358027232808891028842464286721198080409707856145735792362508763525014316950140870865358676580732591890163387860132328071618719655196271222989766686530807531175339676173239549838908696867602091358849960673247243445476689445529471424756697770784734382644037606971065612677554250356624373541684720547664359572043557005900842711329609005843843851443305858105293678970881086765046774019002907563404123834114678361980067585296553203985376517227790972362101683717270864674752602114893082628592016003151074992961682215532882316669786841839428425156039487522809074415319355939443853248323476209604149634293592701126694833285948583621075278526752965697606938834922130345202154250358732123826734790963060554757287214485523222615096608441091693222201055875862080740142290855685604530218471438886772492113769206165297137365843792133154490529175326547928681633319101030750315364417097365074464226497163761615690991193567983059517805862746673422086815791739019625527204889190874972649244294085026580825289335992561960075642455132805983217491886577130015959911737286913342731177419738569991793882013607799411946078102904905583222376032630625341533691958417255819319885500868009308287828212160857933634719791381634201615816215281865517129232315255733921901270660691639861112784814025416797444541204213400796230190077252708596996022221304291670411332300955274597052318642570471709439361537720253667441998699522108908463362597733825257068907071653584399788198945217059545592966788530576594559193372165801832799696974172268748807418338709253124427017879796080605505168223633698490783397306006942802170947165183932236242739833183949519124855714736724137210836970035535346558556114448499743905199159228751503522630449477473162730972959784357450237361901512894310919763850975595834314038007355919558904989525600526855065474840987155693422613812598504521933043364877102913270582443478309898000977072769462768848598754514182058025024282066182407726755830795886015154076219656556744686232257209177004857779290727909356200439956403854064150222754451116135874319239263362994167955586748556060548787683983417372102470302758101399238969252046081449610001494995209244920829847323609952055301218919821112891538360670767274307576861585700872119752734515840884671370265990036155815006338378267875816477317960663369711192869084236462016803124275557597638199024200571216793475473086666445929051741472114969630015067024416053542676080755293956929285690545710146196654406082188153892583410970542005983447494156730241322582666080968185338706609232009624833214899498352184962039491215115492296061959686208818781458472708619122591070504669281518876942125466337239741928603770393013186394764312135497045141460695676265257952997668457585950477287280578443607898643041493094799065846417224611963370485489539025796501162057401368779198726674059894924738898390440313285585695038021753843607581758869366940795444724453986244239680582167262638832159238276123570772342186836570066525932224746394610578102595301498656841740982020871802296503955935201495563919106155490309032481789311845271398622203663533271155029497368768731773070578250230553415468315335232958878187558482535244316792195502995280081105598455781357209652090957767693792176339336862181927094114183385327411702466839277342380066909572320230069763617004597996132276005989768998559810950035487786549214701570041645665386766161840334711289351346800927290351353114520482793611681774168360782866369612016457743879872839304108586561961566806799936776970784891435447669469900914797690804265138013384000565070271271117544379216023350422673773493824598589436498891244647948549884898606360285820707440439753563298929454253146946884635049487338698463478099191936036379822411779617594384536380382857487267929101917599188048675444722898626759196006746356842821946272075384809085639713369733914886343800419314990879705979664159472869956991211972726109551830919120273581649987979506918793632711036326666946276973318053575952672721811600317499217576544373182044919465214496723293476546231287328549265194061084488330423419789148947429080388186576018663727964110726346127989536109053067260190881982855395137351806892523638481749478216140532503367995748657590229983756108017794391507196167651659899106556199404850306679787859984038089028157091321155039163287181850206464428396687689990682245051763515901065498032118934533177207430707171445092788742782105944110651019510778206542259263625186835388153282920005162550621630525327138899216682589523322582624604825030655155350858422402668659090430859189176787524907426858764545509564728213578263479656105699989479584650840518160371832837825957114502396519510707832661197950450003086341963366197104810483470546027224250661905805437241207859274668254828882379834646101831275704629257167883538750885972836530441347522196540337165888965559002244447471357531127879289091597206435213300882170825108818685012634409351175749918663769562767265406132052656604414281395798162339508558577401570025406436970436008593259869861620726836676862129446320348646731213369773054452368135749999012605117445779193491890916068772189425855455321585342919904342399896067550052142734962265225991686522798153303035029969972467709234089170085468276021668738715773565347287682872033698366055701354810727158973751418108037845774431922728351984927370215099208273505527493968506462931278149173575071441199082528693997898726175839059752869488933282538040270194451452859164817786987302158441522498556810038857530967517126293973358317242132984011471505099412096556739756736272112460158968576325629517815643511533401097549894998427447166856753348338863056539229822578580503775418228291515115314741212124677153131881093465452713395895121305248505901094437083411565918079996081922039072199859556425554134031571769364494587769566080982501730699575493579010414311947531775601688140260398625505001396587978625727869722374123512263063672162496567447896113282582199234172426020313891201225407871336717745112673239802019922919318893839975425114591783226398490604706688356625770552105586461823997414816005722277375402547877655741956065745634508816969849654073835889501827474827448859892532067521612245337422534570029388769834415643181473552109405709277053468538580313788508282819730929535541154600187574066019952502261611553346142442025114269691614745967342321416622591568091471715353498017044224279783450480916462398613563772049046973085324009041822491843476524876678373610000039148329361008718766967254149123069503404005574729319173038598705714708625169398842818097659956605887786361217385434971179180107509121179274941524172135524078393115705392775859876260371483260642336574669573113694182065253850472813538581122034375400878188193853708109508886400860873321576419584571496323400659982113320758232579903779796809604833102968647572769007398241639676965578520029240499064617390327153062057973819820322502590052625336593167116657068504948002363304543107670170373126022405131723460878450300614383322063241203023347560449472039162691683012196360370267057723582506063339543570241740904310882310234287855001401898598860400468751307806572768280000173099875180806692749063574892745215048010493026592654224463019212060661720907231434702743772744720590840972550079020938788239477137400016296252138724841455458602325678358711282535421522933375711227843010159159398820011387941915535590771793151092107674303267611106329124224018339909832416596516831733373480653969483482260259207714230799228436694984928348665906871559454207162507700626914913072738309689065778714478118504922975813429568413270537840520932730788783801781708522350782886761801368926556915245383575434678890295374584703245297583213102239499599049999419441553680727382645690485029591305734511534061022274708817862836207158545715708012711309627244680090202408657792223878107520295343010673600231228935991844136567290684213706582076266737716446732780961847390988234161629750455860836746704691953454991867829482196141308530424467073867147006665204366011045514056817870735733654470962488829624237353544350245581788238492944073611516731287297012786098024040021594641904398816269824395938634572142158535515188844607737891427103896547261165637295062279609283701951291215110275664558518915907761293931951516913546686474656322463600173598783696674958200048815350979533411940591598509501379517234828349827804077894298134739340703925111838586873001417690936982006320952944386880728346886110975528162268438106667363498112257011565815834407415216373537339035619081453260016261009188012178307957511599884540242417662710645135070948277279891249319835318980447609164532366506132732951404287919922156230786330742876973396502631175523306208746984236337762844246125490809531896357091297956246230922861058774494164997455553271438123744391565509066799034269342473281674214446185872260568896868825538864098040674003054753473185935056884620338105115047287083564350469314810322126703813564712135405352285509599773893630238066023388492856676854780866160016386053154230039340579934200851182422271785503977786944368909508415977307991150874877177606919114378370064179650794802723585942860363917726433683997285522330838199526182070240198451808780004154650825735327005201979058940490854549541472077738150753054444677879144339161750455355374159859122623640343599568744460928117738674806833291291716429578773345408034513559546713629503745158220180704229553995736015312607795299403515630186492424150157100470454097540082844733790331072029550311053853624170244349028145722777689533105198857857769487007465155527688929977146222003602728958631772363632781925288038133434080953828270321128306286015417305361515161711586442286491769888689139286628601661243271288214757838722673200772058884515205183628544305301657945839306400003048376646280572684044291065618625347791655418927371516654365155519315609994392265717726217511251746651701508915593983068199006841560451765163033853169978375304668728151059954055825491024600308432055493887926590420672454655210382668271412323665143864385853381371562455097960981204572992396136870975890191249400320575332257880524957118023956147304137871484465372587128473306900208663370446430810022722994119074025744282474154178690131717510086282882363322660496359044998067744312594943462073949596016013720686000475373574841487337590364869906077176066539606972588026317470318112314170019115479164813949635184323018918711718222167952667619056158596614991093450771146651250874467154095135876910584789928039999373543374619942494018756711404453176043706609715512367825688081981416884617437218287791475843503583976824787012343782982642276994170986694553861314400559759778004297231719357508328455259945084284289059836320584081952836872176045201277377114468577819829064788969496849732448012023984748228161484372376187621443056717764777620189087211818656420907005211799113230264390071512006824371242172276132040617112213669838212040257378679727315755620851420167468675603571275150724188729589119173550848358306709801621658136101848688062696612926238124656529948197255074636603719512443316029105919427182681215476165438450892590877975870102847453742489262491584255493863171282472250199791101519762825220363961990282923405516943543263877551615033279068194147704016467370528402433521753861161878325272465130277817381052756318277165152688662337432723608075534686570523578798023766404647097016655196787760235061660553533063243241096480440730383239365284963637555889465196207864436693531123468898234244769634750859142023861521844763606122710399216538949626553677869118950939272403056198657216702433698468042770130056131883302486315198770927515575177817048934874799455819999990074424482756265240315906136143577440945562930488683791888948943773831877620412615873213499986441323491316093750035043429051738635868049007726712978913680383577465749708124622070941437117027524312268791355022769418975211006482317967896815414056883910222224035853360952253701971455130145073362848675956204312772225657273505088777976083129817232269247780184626018302276224128184778923736407070481384351537272838558796328852014189181480945337733781624921494015232743163807016371976203467368976049332671921207396366447248812813684748185813277075995024017099016749192404243508702494815632156238333832173039275591661289029795487396947231571428601440104693846264735348375121311253357491657278004652302297225789768902977981355171131154517682018859491742356257496011192736607914977292111084006402590383763027097576080124405678652304354876522495284760008605859412037604713758008630197204400906760732708310665542468145117964846283529811064951430942276562672492073764344665738721398945591282976834809697136453788758722541317471703949801510903635098908879306238038068743429346407081795509879868200670331906825891499093148921192253529207999153162525485920508954266943366309140862948676737090567154844115884094305327613307842445394426328502456287639593151576596321225807761591437967349945569588655801856156081961152769573047095124250129683391999838131327199911021706699116968788745582039513732704644486699677745889437500514158308306377732604538459294611877414644372987213874629615706564677218275917085501657552121435491441111530893284013456589538166747138664519162556045606340477247480504327450555229423283477660000305346844567925408888182743805361400522209576057977470410337998199752392434370860854436542220641116950826616125223118934778490858951172071265727203134030718108706665433743941612294153667798656650385432567652040986122396677189453732325993297192630099063553008612815488274939141589550095805306738106477958083944903541320895931137365915579565721732668321441399529081803245690574609329480157598754178263361493108761956257664090316631407808043375542594201035715237587965242052842142765196155211050416466639755598065140729003197281549320958085759825793129150343576689478949099914036774221832783119859951883873674387304884134284878179157331570724635036341718780157374343672288758157858779092360843847678755067823127305014247075689969687559131062737374995767177834442313384892060671738903123124358002564467820370816070057741237249083009029711079804930651861153473854985029355095923166557891379974455736440356489995710433733014918489177066848619567941631139822856362787412156903401984043755365896358618035181569413140386793248180468657013668037189973426849171169671568856605157429218386281430354990511538310015614075852005511604674666830160812696800383025183473671642604144878058657731136864940899980143772638701161939610372297156159576500370881102768811026638961197195954214203763529302036876386735513754598933465432722755611071993603486153189903940357593580787329491264255259183420268339886107185886937477232620869190535840058144762601222274769024151584573305985823377679056712566244923390197469326631572996079184927992701627405369116801885687328500109530667280522173139141015986527566512253514574485602253634824621206341593289059439166573520385061341898869997362856771823689524338084909755990252810946358808286256437003799397267494594422067246807977512763432767877819734155681249883357900266870736673789070364677637017292997304490303092169514915777941647476763111919941668181053169837381173168362885603445640969899756662986393547759448863361047082759626765401955999923352693857118601076300884842220753224913514455032173646045240079011076323243946379699804507892365401541647122108150291379830251813053703679076189362575922629545908224137485228506898588959420917265652589141020742679074249192587941797278779096529845514217710948391216840382904902559804257618426568827252243202679545402413899363061975204804812082143115998243982014078601732833403823044540660660161282552309138136338703144779335880034292366127755639055995713999383716889049518603206379936175468561083014090668193303170316600591388070274504275010011530411984570851038660841518002096310161273915160442415304980953821997004782383704069167835170455780211077461456237406554788806455706408832962507128455235371376222166913901873903070498688045916192286184847760407234264285226974292789794725223093819176108003738423550503155746726494239322666813599714293302603724927137489896868101615905905934049834026600152513147915220390846293026191619317224350638920136153193527025689450912108981469623520347248279153940226159482919190517198627011429229200210896817097928521164115255439221309348403442821220125998114641151539423602254482762429670499875074875248744179211076684870182379334805880746229035908570567440247216114358253543039138193454388470843901045591505164814632669361704861214330387787029784271628139661178965793406965967495304722982983613496103568413727726238036224883366912760471520805053709990712807594062230381453170551658795838278212456574254468886800683892636310381524675205004290845931286897752298573186765081221550751212072123420332162004963279047962677484967762316616347172472101385188163554535261502757725424484737210344754757170390947722404154402768990655554035472312920422830473836408126951022912433369242630661688612068454530893944586810722085817358547507879625868264029914600918650090452330735123418854458199846072854734285427614989561128231204897454809678822828724064780192004645034409953539510998069833584126434928895937084234123304270254957783856741668280529238792597712263152740376050722616115469507885942398341582060915595066236749762500426594914621161760399633663544850737343781376135377716568385567528845756065529982394990284881275533138261019872394719752347759217065857166923843252274672779412474273039789546331507934456725498756770588377076977706581881600729762535746202810224031994883965953809390158272621455355085967997620937399582897740354907786485485005143368880971001681682389493321882768618141679810048570448639452317087801828349659999806064365715259901075961283396331942330411031166028187386890680717750552266955908813394218209300815873045395797611015476423477118880622031211255748005666164230720457021603534059169252600208337023158967864665740310313606272867743009068042316703327219774320623806943556178993068729280005505944660328777595856146703450598046397864970654771099996756589353688119312267892389455428386835449683054439650146008757316878848584496437515388721966954789836384405808518934662175841601406530909489779354137055163545822608454329938567498773943012565520362062659235049927278909598652082164249518858101098366695936575332226776942957807136615665939101841576525307086143463901405935184139022536437705649046621110265684080868285843017596778700870260722730137997848012698104624979425727701082690605113672433480508903892017800581474953436212512476881547017424528834558764313254030442204574630033993276039803103977168703498665154748550954864413449630290115216197324124483852313303377893780337240178691825621604495774825564996693818700517571193935934757423357510801081396237546396254078215007906933046432370761345756755782547671286217415180077856315405588608483285567745521437227630591972652768538072138758034529568420038282935508745399285944391821116598690437489993023458887753581792744241663830600439886162455358731735222759416081605367873099859833671710230888615640324336426542626065625640211189614438202229631109874847495648214960504036696169229299181839474678550216252123909363490803134072949250806963158534666717584371797642649360280815888920359218400067719596560770742517742540985929572210627669659706734716888706980344528273739389743324640742754408797670107806708250700434282370501197153074880366532625077850967851608389340554853555112501177262538894029047737954108323922037341047386796290894900073674789836141769095518517463692569331273754915433730014621783629950778802714241654559749526589025460207551112854416927429552808998417707115771802897750862924758260041267273269605641523260182984841884103276588564186333005878494023253034275015884972519706456452101285803505495571985688181088005408163484626938182736394247122181084322569275028594075104675147075205571406936254385431480012940697668138291984524412474430151200421830917843413348391988145710028256777143701470035942625526919506188399212916237265768494204507238442741208531897732803178664577521234063510638149517112311791008299487512744199317536553057303757981034611785410486030718550411775577529824894687860693909931288468984263636522857905017490510941084128395829671423533172431434769134381221056319775796918994517155811520403197161144863006673518304445340011915417007912506674145185179388165412275410093329630711867728356316575719568308603173431655195837218497689447941520956402953532467687646278397688738461009935232026232206460260932185892372292775989022971069251143541255756487591950110302761519235317924370978963126954660418830618957941967362934835842473837449015780518217373994523106432329782400564342536036071949033961506800385780511025109032908434351288582605986222050603837435029187603829285859087335035230078627584599197927633543529599967852594061564820467906193977710479876441577120309757314932263032098342257660772289722405989604375770013706254123303559175800374623908553677570041929420139853484651719047595081260216054625537374772570316143804523100918863463592181403367078131275752237067453414884650117817713039326329090756926551038021956671718061984291737033016203592813001492615714373974217346659124812433411702020101388003956747049602870040766970871320070157271199345392808740562016123482398651319195877091448480541829183951632660960317937080172324214046155832850703624108497884461678026121145685526206267835592231549709142680193139032091117582560897097230784471809449016366691190308015524669968002623029729216212259245765286915478987811763115832784429794311411262605282236088350805176390363937720638739359442624354338925082258811200128405286942240671021644245969439538783324988966324543776701326214453540160484805572087774475213773833026291097741257242688412617614144066672120425633544652286108090063417636126164016036494256472387783653681985491116671823411017803701854034767942456915551535885778105430634733046700112655163906237889690267667208329489911366334821957685455110108650037885775885922991876528994294875993581268749280223133651484645240836937804381481992721475803790649345193047886608058627077294153686388918997261112348284653568079951020016485679949868661493542829983493804537428745674976368715641454743455847136167280900467574824283603642356178530807552142588119487908077202617602503617050427581830753664670394433144040323026399626775654207587838440503533547079733380568272862624207708001133989465451052312495912994120607142598549422309137634388251380764481863760035930557674589720495114494236007850528748119831814696978735965004428915321777346549329928899803138178747515648894522663398679551535498371982883237756226219737919070410901407466073781096883414682483615177038891900618018823886918511091649438185981540213487238703768352656192192264080193753662047226569501769200677803812217585129960557172941193881070039391816423976521276141083115788850780034686505684752307511053487106790420231591559193161634515166064601485775785541998257613542902213580691754737893926325365606326391681938542795279060385122151886473771385482101918585340114648066507744305635755315062128555530222620638551015705897727695752095582652607912837366728555482115057508930444416204069627227505209777766617515929336489711440849246223679100044898672776134125503157628031759574157700083141973132432439223891257166291261514627065229820476531462360544702609359824610553742791054027664072963666593165453320331463856351507599840487349292549902991213943271104835055390489602536826409625432956940940545137502490826740787740033067441070346672298059905888298359953355925053701319535995669399867241216594644303257439798025540217753042309697747745572389432367686087264375091871341133566034049666862937728974588435955485875675509750072317468605350208034017206058013752890167480917849707495726797921599565699433076337863826990454739416784453906810461494210278951138001342591022950414012522239281696923421696056436388677055929334672422486543607204853930551944631369505582385588987078024802048804884175219739913654938298491080992855888129013764977092242929949708514010619922467682121262463293156201238206075451808649912698289377885917372493289074581426712164444968693464814235484929400366170828959387880122645998325382804857732050417382565691627821615792318806474055595038322015298636125586874800795951414937078595278930371871740451667201624098945354666792245989594763036412628136442044739953147573534177930690519346165369720004261738760201598479574651325238664512128473812015180715306777067068198202666753066233400365986986766246458796489390826828331540955306956615897441283109224723121394900530935237996673007217613264589142996692395554232041561539615587960007062159577921934979718165057770076967574155715685844200353739459431461742846396724470374465236018336551534990069263141561001508636153213116475607350097470196349936594973540154183790506748271236686739121479313850729826033048478831992608632994734026809544048083790497073006699966734189324769597146721328661647563515673264283536616005862785377979922493103802983393238599243046779706589133450215179288404051435031434910513792381436626316738033649443383589487651486552644453291881350811078006384300921473229304099413213423884885192226568959177230976619499773914423414667429492731498983393858370923674673537994391846165249595776091546070639487512732605509481645048168186626967453901583145386001463997190832622908734047341136534146640892687586849469277328554787418146838077088905122037425771781025646719762599767339196530879296803926990479819248518046359520816237537478058575169609930784317941988298435431131298370405128799501985199241085783043901604243651130411802049524866653311453384651745865893639473726861589529709359093939071949646091198914646512630239903212416811275592564929793276048476667265959610354359329542885876103132728062138699337184780405868443297059891786564860381044939413485648274727563232513672528761633283811749789512009374176544591560362018833527892368806940244110085614454438899833127364490468047656673975694236432638456160436309462994662636960988606768386520604953991276348424926563011015847508131970773341828565608180457906607720851400596363457837909499386670691373804424955047974054263373038534343834562258214927581652819665870720343511208520698844159461444299667770923092251620680276524897302473617981885611372869048197869310142980103913055029966603477636602350386605489224440687190294832257234572152024435895266000358219303031456198541932313485817166843429069064449959552756378305264594589093839173193003492169641729033120422818824873530679663673423209372455532357713035856262843890623750830807687926598201278471439499152710283581860254059622786407376210886450433837383034189017012973947869222810056640929529955430373487217473752394276555330505814930345913351828206170825198500607711016175117643774046626972278993810936087433131996791187683910345251622405534833959424584762482642164936378192415372313344183210288155258353401214788176943602421787311903662046099032365331089594645515004577858886932916022086616899791087605379884141768492757328898525932344075066263845323350435232738753750088798800013175031306615571553178945636805457721519291022662367147021962807473426493470419041523629420190041526906245220509033680489070139948698900554385461029316970500369276188414226569864478875435294707353285833221011495343917371230660266850870643999543552557623665599994832316710190008634295644488349927254462357441279417804578770183980057303517158768936165398246940802765199979042104359294921046466375227163265488507499539428451002242323841216694183060445874371226997583677101197674138302636565555284525619891229866038604680750392273011252376825227744063342083358898441714918366869460951381422787743052490020450862436124931411552846367664914020223841754853859343383212882259851397965318984855833412303971292668453408132843694044836184632834374508402559485283423005739453351600060625437934335958247471718914195584318284237418679763084039173537589107180039053589697050552079734086392528879593032675454720375807246411408234726174020189158573375015934112071399529055844562539002156664257596767028006012580383564124398471630771753652343710115073039927586255038336431784835800964660984865804891592383124620007797532810933782354660979360711647661624338882280141236716529299894523104701638498369125085310459853412759143500132421455863146807209565982728296787303070308949336961880669311328852489355789338016495822892056170464699681292556729220286475917572997930953150086468389082526643375924958261874690552492723013423891955482589913510784817314840562585877717666536441484600358953413257449776078503724954137684466004060909846403963117978784490518911495277359792922399903394234541441769808820077174552610486271369743814000269900326195215904438815531568084000119228732020048721754737594768595163891404123361454779656945360287515570214870597545748578349572866535871341541182689733145307305266523702560324141800074490240988828219491760402770585242692841028245866787794316473735435302378258374632415754809248110418043281369263683329719102125570448709617252382308922257961399837244002524638646049981972752826925440939753031071350475052268130478459167978786887015564938595600232828254312683022681668198160756532691839698396321954682750081104558486612470071321106601735792604018230977040102317247786857561890556437809223432626689409265910812846927154234611910143890378598554468977754855425124496728890661151479217492425850952522354199894210493906321789004467904526620406851577842501303883358977436418031494018473845852866163245693045707370136789045113376510068886776253081096371567837087180239146628487475451065131459802999207161909186490740538952832268111494107030842399333717992148559897385011466942445252788067142292875896587037054990989546133439549522576831849504684995252863628981868798787470886587386102190433967734381249519040619963166907088308638189512183374632302338173590393342803508941602871171581128909790790574362237758630917466213693369173096213631983292761625402773178904852322533089649592872448141824579368369941383232760127172568747778816921394850031291738641182980883000801194209322927134529123682816393790833876230767575941617653063403058384862066431689966052543073057825643461382462923027992018684907534023888421148468181415810854925142174269590842689617203325389845478136967509189522953977807209016913949850739017430563847925812009251364614539307909206577065776204654419057296510578180696675521596707512681089390476080161105671070779237415337322099825305435882771769976994648115450058563859987227789154726318773532819425286592148644446439411376058929834026031742726874500730452592304328033279461513794089548465939854306946700790698343799822644694501750329119756878268346809833342715071603522998874459533129394066921262563996252587125280759272465034653596551150681906590151446078366780735723389765479110030502161500796900092826077650275910417496523452609384364414803928954865516683156663374333159177909664627839292215623094737031221255453303290206321438844249431772155661654350936564369784664650761349204641836418577656956387063228554778183315177696063375851085662804706231008104720028608600140193081256660106608602228043056172806189569748519383461539683162412833968461879097524885717710262292151866619333931755508979976701437978239963667353753432652692097727618896812734855216464904169740895321983654292068879776601396443050745026892308694376677068264217311811622211107156916106703910433531874372398260139323012682762338648849256338944571540064508490894707803614906797552825896686087651784666950819818605627922506401021037138616444156053742336813733535616082860639664328883251176378505004333369699243648652460283864845816714698211999483155465151155308488288999941269492598241129861421409157094683408220590784767329804794277529160047616215923844714345312276534296242956761743440960471196567353585317031388776687082620670658040497834891289434776989563264105551989161845979044437683147774989066202771693054979253020096376269236242470128091521890480771542936354390518489019760447044918268428963445059410226653013244406669706387458600324368135706911640741022086476346027907303368060327701667037079810190147899888317972072083410715603330344718556915371234964288548114271004515544237783147692391246729051063042435918725006336694315190622812877421235939154125938482429041021849362481773414832586313983980557494699148895616756170542323432018507920349273924712406756788042600789654384987125675320175096337694327147301571788655804299735152181657356917355692895877509795431033401231320872518746295125630070723826451829617280190360876422722997821686960482598359729664011838310446434001613054564259370468890710529391342461837785983844767838682912617252822851306544805721654555510528252043837883768912841937535422060722499842075514683514693516880890090664533377617960655675835773184879415717234535287614442286831645689451021173646420361579523537514381779785099182412711931339153205588775038234394751730780678573871232500567113809490070420327513726590405509957474844316971869601150940796813659594791192309669690645889668988051416489930248594085347810427279453026042342979094113636719403307106052256957693728600811350028688541706840336458124395164514951062784943963929242962785398941524975607235295628078759745471349207936211272881810393310463813429682476151256035653059111398316473421418125866537300510843903532661576674827248330673737763590173054502915098821091930537476479436456567542963993207899920429470332205980351683944394409777383196442568581039868238492670611696438555164890190495240101425253641811693651424551787409604521499768178529078261089919068272722895425780334500952076985439178998398225323673582101714286061791844256951691510315274578571430995082664639207193883122319124363986478384595659667152694676684692002177943542387987391482670901043641390710641427135773740628464203189841505308012814563324864850007819042336365054358513391396250467157490818173592914320714491741568469511283588628726310228175691424571960022123269596341291656272256057620580570823601866544970878802494236145501165008693524328303184759991311540915931612769258596143584760386799164866059505596665341280177043657542714148740026460837392947381175488596618359604638969707122986395615882590622926881888185112627735117317047495180135566628614536216007454116093271694993287010907852773378597815535522759945173621173497145976061568987041589804709395981892235922423946378221050262663831388027578974546845764777546141011433042915424895469177730456704070657458988040548163145232210885581856863306669798739163533068945068022962928159651366602370559178948508884589664068250860259132482191879332606994870837877311170461778156240471933400723869426766888443722351897466153278933827239454117594424193152337429421844823699313857462763176276668454286029912913792893606318396959504188237462847933152977777129314399291891965294878579486958156418643534581304303907414120267039176041008614488116956535250409453082768991363803758487955540571397603491807839396136158008654995799328281240066739212244666833728059873367919214945390666670259976588470007816740781804294503220097343159872889332506963531703729539606978786887847161448266610427426314831198342916049495309428620275346807036924261862876882506563121417003927275944266886488370647347357399840972059422706608619250495443917474239023012357590426120142918180584823372520273844796849428608133957317026247148840121689835481220300910327656014621781965539715308969364836862755864592022752713844504979283971291026042840199133422072840771602939404153464511358684001476171061415644681613024001892073506714062853551586972539261037529217055664755282191541939723700010648207560926172741988824293519405120064937533365399067708483104093072705658383280155505461043304104624507942550765682419751675907887585016075967925427605522236289821053919853251455361282611447305247626715706142814672085819161505125318216085723766781466324788559349417893209829285641618114027625211935782030623445048752370096477508814955462237100378792684479080223677994683248369455040476747095809417855301045921924670225112918501127344188831907568642142259832374080629274048264686413588552306691860969567379964567508088540225944075165790080693594735164049205120300838909436162953204424410864198981968242931986738494636809601283676813953344479503026938716806819938253436399636192440589501011337562031032575157139873053167579439182217773312906115817788654839922715128027640544454415242572805287947698613308390374712247175752237961023455503721284926560358867972062534755266606108899382654183931065979842420921889462750012227118238423861511061981109385687744774056130118905831702509711531813588869031465156306508550103863862293720315743629013646796750637455586861624521047005516576145232474798079382342263793802336932794357389472803886699705712164919403293563040060941434877065570866397556989059810823265428878997872941683511700165353596662047749589167273320022356918557428781697835255389626572079883647858400775182936922228958113753282292482355281269820335509194727025165136023065164274802309933718533526051978869102667919173122103654345119577802930275486620861576569274768551608177515741774213897337627171093418258208270486143536593190806242642235600842652047438243847064252204192380528084057695542528293781877943062223724853043049151452257668717889056694045430754168953272634288754594646389324980695901635696377590099477734732589808413249058520282503504955019192736622598348394522704748575426313854117067359478094664164730058192811299816681123342476712206940733271807286176404019262571339304058843663317172080680447112587864147247248945516345265071932606202537234743313451084861487043993170188621886083312782877882599113501471869624356781703294933832417502796096084428769904703242885476311150633405255175964458651388381745326233587978784556727600582246616501272092102487700837442068351291756478003185166020459600880273498643872056775070215116541003110250059320441277530667320131619122268387108469952058100681712993597283115135790568328747003159694820496211271163565244530568903014209839659214812665113454165895808346492663919474336171369754769226844326710653188533480156806973785689100821982908470592070297942379399080235338321419835793206229169499901019635468168296461896028051375606057881104685565932908580829650101000198825560170803243886303781421539379343137745745133851537046992113103936167200612471561955042440033199430865246452900543829016112548096852067891359201213632281524774186547811693689851542898786192751371749609742849036393087543798616062327063941702151543174981000568894897969960462802485976164864050471832406571695918080640069979164946958632988974380923058303916342218365631755196740969011648989860379402435145947131485880079433209677504758782777312639668970989745816350056663209651202984874675445140937671220822102967751389580275485399506414879200843467818385587765304117847154061381514684559879259392677903063154873407743635388188392846437901713009762615579032384925813030714426717002026928821404828920742744547492930369273082726316466596304471458513406469133295056557827509545505717740004357089786348731156551283059285767457622823563221668042570527659422756147277396166796345526305144373445189388301810944249005371401804623925013557735426051439682539996475361855005882304748238090740334904542887699960164830444304951140067863856359987238901405272184644206315549124203967522031382983560918465956171550288151614914203849885745294273561390970322729520393159525041076838173279459091216196976481899375695778800147020988326925599115017199292197682515403582934879335038755467742390038571504624549946920659516939028578975594130066267206821352876789391080928394648896219956897177006094405941074244784077269997916877178011383453480385782646404555606283261360318419225820347980281674183574952198148634507334490071758305776092757865742015389572283953290504292840905862189196181195362731539815406126825747287686115611494492852821921969042950992706773867061947564925594178620673921180247946052511196605452255319685351315138472005267591618282539544882897017759152549552072146066441725255941527460682180487576714102753362284261519259130612193478120271655446989100549120091709150110119683887274672217621409271672970445347143345989175214787208661656612130243824565156716094756272335509283335882554468485600920393737966824206399505459461754729418131684392985271528272158700963424682343763799251909750758496155095283563691061541100171985343992732048149133269777359079998878284890652273321440450837968389003720225397103151581297442271470696104397599462982069815270560241392471258671092426294450621942621146967553055232197132372269265434830015878399378040734780140030406111314222410209841976538921236711593337563374825905318763961653356802490243944189219361891910077578330024325998302865075781813475266854739540870924622832399958047230002743261210434582963647862245009566918713674745619196188781904950102350411610031646439493820696707719527046102469379699844389379589927366973000274168709356646654772219213589080391903944102570300961236939534788858311195145234067614432582875474489881427714758682517986478928678664231721953854815378541882073484418961527431847458010281053174458355046871455107821924282260554690783804301770559601049978315001253683632067095462696248190236718960981167340643633301412743128727298425120804511810098773940538561288165348748307296550950378245113788362736761193794530008430735080710993917508943931477817232414507405661970936229072521483804130224383307090203199622196609418316947263069875964402261441454718387143061211268747837279596769851431393123628250288452317798105372962692292986755000542230833959920312007108770495097060785972075808117084235542887787591734807838217253454247946771229560410894566723738180973178331580563829792185054082062602597085571969127440409117386781444686577804213706509250236324344554064233435524234728572108362028338402853602976461370028613625617375120536307258191222896411613147810002968893889616195686826127759947419736419420918527960642380900840983817688243452445605753257404917889828076732228744558465375651936224322608845657076948778202999345490355645437965343469116715902318631932162454420105823325526389598227391884826766659834363031517145146957220226670702040669658953326716826551823017490839028123559457529112788543118602527483028332751529377668292839753477461767039428198418585013691391229961610144051523498021586563580355812578489792019829211447370026961423678854999988276741015797590252880886229365237702039160973912280381266081723187599302291544482815388120343027652932910809863996302148303886078223915730471208073922905485090502353901333874804480005399725507554915043674107584249562045400005886842690896457823891120596857619547101202546623655848339910272647459156400430052348572077390356935917496565399352365653952117222132815604823225848621169097320873824862641781316046407323270960436504430571353701756587233828826717619245872856377706611800707557063369541011050801615683197511798967840192447719026959358152343077945954768883793433085026923556489267754731856537819218963584935865793888604008070745566361927216343437063749166737309485495314470578240368107884185062426756416335940229420326093263089066958480435988938010357957326273948411084911928385409790897092441572796484052685460113591601519301705809863850778933365789320141332501841601243301974344741643967653741304969051538276030623501297068823146372849458287249330691702141118949735996237990035734103493471611700681689831202093662684357304214330452467809591230847934061015382417446820027487151881898041706122333377113287691928186601321596817077063654111126050941637787266769266621884483093423973140683773379022435180495452322592477633528417528548182151487610702270486408086154543874764750460138902430547227028607629152515804110628893179519049562719978153114838058194237286444968717043811153402528781499357226489868178303102878877308256546200515601073819352467566801878002518600195505923684939218526529789327807485993473693181334716309511286985062884541704031243721277622660033159934477674619397245544317903125249248234472577965912656415269528350646038168383438125914219392437044362860339728194082494117105159779258749074028045310284352298699566491443530297355384308451475373426824603045835174558092585719214425983123789145203836708307841031439527043098504530788370761977209395084763210295361937067429384409160164208681918172568659535204559703518697867902150590198499977772714638949379963914533965795803091793931331309702821061410796445487886282303434837091882184559015653593834825191499008804288079806402227023213623652271942855138547277041248124838172695956689783070333486434934010705976480798097900130858988365931544377230603231292019872684328829825213194985274470360536377036988498680892139042958248969208453407717536401259488318870701263582466857499350113200713984293689331357095992423523429831147810755787547518038572488237943972831398286380746093240427772010940226689046840687315447442063259785595895128414064906356109174355192115645846540213983163700593361476090374373398882783075951298512212326311606681598249870188781288365646862522369965973392906801385141788855582953848392553225043127211973115109020045470119847991042207623444211351927900198646247973533936104984012387021708909559091542994944496769938395660483778062268830563169545546982492402397736553103752610263976658824055876085620985183839012656014944483142547312373303182750723548142890318229814395333002723662523037518196935605037676649253646529039905792232102510618028782946040277921026391166336652766705259867460421100463493968249770037696904155454762842570377379805901603278042343379866090794562981167488002256478658010403704397937819344035726568391990461584696581625176741005762069767612344609245586932964743181290386613557756227774522946161008552216684081123700897381501369315716384169137731719648229185044124513398340234952201763209243593248759689321647904829598565781643720771172509689774700483755508021442463877529842151446745800596555377969130261563992845457946808111101323925793469955408056297529414923331486671114387386219001565661404117602886813526101770087287713684572847990865758996051853956773205924975651027004046415673096208772335038588877172779005281965568490077526506890155338312292694153250452589196864551768837173517336226164522523959089874211211292747690995604618921423093570888559950964761108359148432371413138817985085335589778166304086992658424654935421821038666531723244343132611678623909035009715520125574276783047672380423769392318822616582588970936635425733591674967594845433121954315860148264034720954644306296226638020529836155305223308380271502566421867421329707706017032992782822446593484731649258126146064863162637082123069929092064960910351772098232385121023456187907729286766713739544924222299701125795921965117310923357027340322904360716465718691561282661261810103152312625038605613609200150540850271967857420462671294177045225627707030434637687813365945364514053710240731282733704277189764314065260718050948193586190538541258989439792308851225573808767908365181794430265168047637709078430815042593164891241396238360157141233743615458292832426031395498620947201953178819040170373395913560762569445376953975772082140102318416900994000593806173859064138466677894890922971761735996375304774644494510205620226415202239222940186967423519147107969090895419065321025834239957887247895390454409271549513812233749263279512369591940708826524863822561817759198451669518030341874490585179857851843548716085097461605612970722004949134266459361374795107656301896391511764643561484431706289397167606898044000737204337961567284954007674663665052993276137383899638015422671406361436303093016093278632356385813750391099921809671304733505235595585176682796559675779584734516662642215263185484689535102098950934112397078268858058477348020838490722478848519385102806079285719683590657262141800439875467140581638657436514426575983979963524091647608962843129441931584366708520901158111921506427576691830548435872888702832073320249996419458150646047456924778157728398112886189793780339063591048197948566649417679085729943755159742753365808545082335438778254753216048544721172542154966557229445618658506320829151018965773394813750380223573075786905036008025432810163849375490295494257803013133007448115435288431797396434052244213661389585529610594230260600040567871267750810631599864359474673428596608018418432144451028043913966747212085716848485091806181877167673803238600813909844830231437243775919500877595579369137942478690196099985088909248367535044682711254691781835254342359258321641889330414348255025595569846132142559916203423230909863074383671520721537778033602070601314956775421646745584088472906533029727929282530794268877830373880187565143137552847669299570323947037346702112263126792560304071118461089040707544561584498634758049896126450760934696771475103077985621537023750561294194767233295669993642632193810796706119775208387352783226478131684133425291241386666807992782833638622055935947030225082235701019519728992022069454624725593794763574062548599950441249389604250179327526590495050337637617768126639004696483640767547194052523183557703101938098760768315681945321132850383003140971267379299837036947618847138745962490920638403021626017161817291886526303173123594943714976904926586368980139450671089574488600243947644004011970219579001191169689501997318001762671391063664826463197848723715275620434544016010914286603295491044710237839698406803822935380645619076569581785336299727994828081702217836956243074714354052570571045634983427780580913933411787418779062571582236205051904721335382035262805403414018505799114539360617699589790244695319844414683232719726541888436518441193207745015627118635113347715950361295426204776060631478862193379449644875356437073171204279474480956970986792633516181724151464716555802271791362995093943906082212159813154366841872797096265260922174776359210308401353893185989963232026619301228846646687066191659379470178806610250282387677321696926301906200094029478109446702913978402010448202173780228203086468748265918477696240866851377264284349758038480816635720066137088690485249991262758090202647911593743758010052150640733337943372481095102091076190598407719856048119054921364449943154549437440599069196409663355138905615638866906031815022267770662120991247676756462708871926841541721705030544894531582959102378013479747217491134203714973252845458241674071010060282997019167779683756539734033181416721350262915721054080912481666345210684600639546597027516905471365954125557775596763986326865356700720695224509347431818537680192089960596349334638347691635263790409803016225169137418594393614888745005132075032448947656727142708215733534525305591725419130531959123287093899550196617463344278209514091112315300448531676282625642770285122549702162503993559943165710596018873753858642300844732761479775108213353745023935915825441440894882437763353193393944987908301479471828368865930289032224374540019711170833742195406853288489689547172698078660562107562196227639139788565193673645446717933294938514413430189673751178029428081400433249814094850631096674512898633799026499011207099180610714498222588497030312409930505142247427660342610546802787849263462390790457619764077686117290767808451646247359532924527216427540996098379602184449156254700041981239170323130923135699107859677292140725436493646411668877810507201672932661570625966774946028976394327599308720565498319437170497129487431214769965150424053710416019088137736653986087796566811605775990507775402548900679668332715590069804865878836520773679474585654089191991591113820646672161436313147359425524497578929827453315634239194749070645836209540252607562236875732379246783191531778223352123124690014344666188537740840165518125810948825856337879716267166693735892971918128236166451503370261602459041059006975899392032990046932859379641024806766228018481909429940800776669964158479373265847053401187191576880070490499583275541067372507262292592059985359616313469916290605300379007637119154109082068919145807740810925309724215752676674367277512140953685816743104909984809581171782364563980081405303698066828989433799574206303713828944031689387120977808468147580143602072561610487340735313310292859288743645245362182032110058904379397380779017079600107525606947006725587732569003513748823181288253287036554175044502961023756868528613615470768570509265163079583380797733157984409714279109187579289964320291101125042843595239330332414348848970792276692905906771838140164596121952167457363325394189651150650264470253698692413071623603813903443277876479652970733703052108297775669694141343776462923203832099482154066759075187755465847547927775150586924015168728882487516285029782047711726139833653155220903196786285423475388984565702832546207386236023489216085408651012827123196402050988270280192951391964672068007816025173927293149373805012799724023469503681925447989701565635234912122185928293198187670068238670853204744069379903813250261038003576406309604404553657018760755499788095455479617858076101756506732466758468503932434889885437349744843453536610759919066835135104418414444817940343605276350132602767093722699339256760297843534387592818181351486499150979708865579981045058180755711970190516521547635152446347551785338652438896612134491738107083648753267536595556360349711920096724133490794266865761383595269209210587266829711545549332852905745567591433562223497764332398518632207165205032264442367165379390212372874481830779959450212714953520036375028345801845630440293792958181795200653685268087753768407788220802684780899608533120923855894049732726259907960362119282292838465182163099280750872121222061534898684646751919126349827353035887856482121326481681242143390792697338641489985984534886503978916924788909441976057045723310036762412366011517549215467903786379452888521176824974937118000076459735396037633884509474422346073779479672069383749674932925280472087825265463774294261371972282628102868792131135060550508748184723393253193078442819026161591597619281004540995148114550559729706034304466391024302657749148054144133777891868585644614016394865735052839199077160312343671556030602489835641326978829571467412301829413020918046492337350055212745173910171037407212489684776126804891196854744307426235891725611947522468155689152633625681372552270841666638116753969002612082715342093850454539176481786374164831737997902971020796831871271803451898101277190176377251253376622869519438988680812730303428912786706380572395218284945170290524919111885119380713397120985803796924875067359878504131108086086333817677337145545829100986542439070692964465530830176152453951234149298940441569381736045523823280550166563725012430444496855358112334694778163602848195547103164976706422577396122909071136216035607686909965593042977143268173843641209028712807694602141751742498946148285940353782271896085949738496502632505749453198260256259645275282034669051763778870565730561278703849941661204135635771142794690555948623251086024524228592157385327373963626640953754326310590218530858787482502713370822277486294485718184926103112966231019348869217891712021501479870574558045515741650809992934820438494743901190095350741987443124892869885578261741043322731768173513840018298651272730493728168773249917066367322319155033937253117588042399303479961662254253986827861255974014374349439562293723190837063425050867834699298482968550172888227552827932628997355808845445404489936280111478021332569310923301626144353781602091253293423665747318279192617832915999607981698132539935037314210810080341371136114933522720988983054262808279844289772790910119260664444797665312169321054950673942282724401573572549683623812907138313761920415985567124387281777765345011165084350596503896909271446005085748937663750112300796205108304492484622771508226667981884795750705053583639555218510797810004149361991112488177375231561951578726453638125538537207143033126267357198787107030160909565411989779529134923869550934556367204792581210499936798381242746657373450690167516968768137705599104691761877875685714756382726787900454151124914289968588937568479355679746659648869435564024594977111492297869411192357159735967365041625146169265761820341459722671888567256783256908269465747263135217410761674370632555930105702673105133762732711099958708735349164876558858916100670587765525615501165621634461016401102691660368316956837290919226630320863192663296557920108781802412011431394891709764160386877057548785281091917091900507870560619256484652495690322750490319495901751561407335517315739894865220171674922877853624279357435716079392879069651364634529923688545786370239792992878925320536370545779208022288860457879753924302177106319156544893904539700217166214809831506711098818768671583853880433520299199367451906922923456832236453572845290464742141784835605684986395667277934457637291279834914841564762262326458810657528221430507161802418575565549605065800016219114823970318378033238288588624541967470418750180871927275293041646073701884274745980109223228378903028857350752252538786896918073800091470596412226756288047792066597706064690350060941239705797587967400507087448489761650864309455236048021869700071059944237954365786176445864211256173041357022866542172742460236485814838607369206262000897003374688083687889410712022341129370532295062641717363965000654795015904367495398964848641847175681321395516198991233669670113169686699935955089208745760848421179889975807433343867169751922393226773122696549882009954106466629859045884369667615396343584102850362437124348540107320502242445556080984101823258020772892302523116055850048553341107608575758115931488994812876584997265163980952078044409003118581762176352834074347407102335571408711757479574200025372760964220928960705919437363510519525984712517028264574636772454608378527271938062134763209055522940894142755695911204600327286728731560728011242258575852646818910837661954013246920712783807296068658658494891503075157539452451530093231467625735943730642406047786790639644467049496580079830622215259076393612925379914404756504364200497131374898493241601984737619669199623513105897878572658205997633458817890998460837369163820020436802955937264668783720109382918985128953755937190927574493027364629549095866990322894514457057574430539691866454359491602973321311297053311230488551794889453985285445671978215701087802090225963010440123254679993761435673528540077848192112166275888378263778158975606399946873032332603203853726555102266505225094564518456815593776388049273474216983733504903568788569933467994665842797215288500538183013461630059356253061100225063892101924148544072968811317332207155070915630832848379893101988960810221935802198063764067553558390872275383547186493538344610910216292580053408957519336416582713693153070819921098152661734112341353398954678110984549935333590819543663185760446418472832278350597049383971897145193923954168291105084463331905656997357060294539943639922590899978971441318044685714192391756467637950017929040824566510972885381511544412065383709594356942449598897862124025719252367768152331121243617890848995831666035499862759365005006949762424269350576195589581125117011137090657238527108479464309681559053481580746186195394175289333600121233700370521382515218010823772376178900395574800964907212139050381390831352597446417129879582174822698634073725076375011999290537041166660004047322177584509352469821174658117216942155951763930662163263476999646040418387967041086770545126196558969014741055675595772404564403585035256152335924227545136173569341331032940997419000349626727297838392298302599368275544010143332225714383795994891488554231355754448392513586755390143701407566081902300541177222685065284162969528483670565159820061509461903198669886160893108737269123652101047035227563848087746747000626003271454605993026715726250456057439969444254387783015592084515833490299658725350912558523010667578550482898628863898935439176019515180750489348182353647431062870669896958902565288653098222810061406318348955496363850110641247605378585465045345114984080520584842899458208099349693626813512172529086957565049563429063779583909944943902570988318617421562447599988326620826398243066795520135045802319144060565137085498167362164138776351531135634989773792186129638384464208240950853852492796512625056782166050657987452777904803016143953700372431568260292481301455181593811345074627035792349122512220149657312330815088343157320511973423245606727459097785056581310870297169833967167748019739555923408400420085458883850078862626525935062249838136505808226601688439724865555629525776979728729810822765276485077442159370815499378070461982084436394224603704808785541746040003481157128546580009464953952442052219282662289825994860300742054109578180527949237486538937832207886271397504703211945813919902625021233032957242151169879067085361626336028613151450001669988182391622613651162877405060333751624034374168256725124583078415566597989697008125462694797624639236292397433257864518405410476168262469316177358050581336103919853680428051694443654298757837338537479557054295144553582794667751347374801997051911339706456359780917503245720849648210997638109635779478482923629590823444822466886737340432247189290376976285820499133092674567875401623219119574774659442370236531463179768446969080455622560995139030433852809112286883286576555516575522496850268792783128840616489302155909261966608888811408774091363831080380000651590762648467116861724407633781570055948590258361994211165365654306191205247926748311136091113202154035539776581349534934701139816953766164205547133093862663893587439104775933453486525898981900261297523363458247849603313175409776719954356888051715155186653948898823504924321973407430903219957618631793833675547461742356446887097764311790116484455276507429150475180705576542900655460004753157077501370290753370016642174957245465307585348089806586302531929629429141835163453733874140128044608765217408922627988984713640855274231307696130550608507074524076001277725168458597259689808401528198364125281839192721127792034417766826116331652527157487115741844479829448550190154204678509181721046805999843057572974621929448042109611604159796480276221054367037209542378805578642466046759546547050225434718301641813710750765595387091134499392345512902616951125952099146277434241120212689475550098269074538656211065202393865212351405996440585327610102900738408379863272479629361298318707304604833163411203395024998503256851443601406654241560323566389178923498673931389283056712481645646918121529211716700124233046753266865528687892094470005805460900347766460129683393412648657822182206541023717373016598316453981072271502830135935774282387778383660764558260102084647050528026449103460687503902673479829437530617092368458398218401553705354524840851044520251600398364718468381441214633327916266742113051317968773871614154089136650227567536386296525691499648817706163831301853194425913422770631672677488292245030708975850672882478308502172911415867304012953326107405137478037221508533242010931228612067980782939343800035911386003871300220008898563694292634565091920924807329977069069866600343290158734300516539235956412236173048215300838012102968192393655128361200088387823735042001030904101520982208693819008860139213108892948636828726265077543828951388459198842217258585768218769207872712326919857468318957328995437748936617178131695832732723771638095281121157646989201383825524273224711015318800550978425385136201442203901839690651027394713138721775628136749577203268849303875198130067965892116305133076962854153291202082419932261793704368739921585912593142075343439556944165528435733787780128877882062566559126725009975691285437785015394552516902544089876093688940398468697807134860445905487945599595978203777692726979661471830392986935619042974155386258223768738771355700699000443899428488078203556975578333005297978775137827467542877240253964322745631443166737651387641762272217783666105345095093765295900827382464411714748459421499970309082995713862823476751625151592842563906277326159307801385688209868819538360551998203712539839189038816548831830879361437349647485353216209951845294683128538800101240517746065039757245890289653615181264372884073396830942923948665545551793919105693191383359458710446497756958990399881777669656146745697299673904126510275242934166594890174294637763184084035055374178587804650576457984990124720239635417419816049130745552972724210674884941897235348040791422637340012614695340942100776111735574038872578417153763377585423839165606271288309029349476181479720266088438994370962872582019225264377361654581853623730781776169688703265506821369536775563939683065987233571724596937027313568491560890672481073409136294295537979937951016023870879915487796098592383060637985377942847363423903103139868983327023817193587765703851117501916973548672709695032237823918059920872465428563787493144401291049035169832411467141579424662079984288438520824376206352185704556822483515585420648957537320116366481370469289691805446295086661310944073657447488957059620861519736894980712762090389493444893337862173864321841595782311659364340073409834972141979301100562055299784355967226253965832444062113479843236106013909387639531952691888908466291408968550951066028594608868437958140910093669458229558961225462194507520917128860313618476341601704474844513075272291350351325525900395809410008413585666664817304334577674654323415943722913548765322595084331697511286876331162975979045006916091243732068770567220584985986550761050914514863227832807412167294962959115981983147419081762584138613017219361093074592019284539022901875361783746653731043245689709021096668230606248921785730989463772524557029383052456641197196939638471480112385805140217276183311219305416280593115744938464113017863069356946774291954306352040347499761320239187135493549687951250685300347291897959327821325544472317153390908232767040861248679196539189718693006781422585804454880684532517485343381022831631192754017547925883873802193346173780158053299167607920298098317869062615494114508057091604682670573282645270788998972186127375573558406400362516496465902356272166363897367043716390040852341591253258158953991940648790858271370743120976063372334830941126686570199818958857713118182378001407858327326455720375340722615451047819813949061599717634462124712035347927274629214250890710447417283332969567365029676738306250919959052011665250936469301056715954027540152009674603659682870116616415638952526303779753972161772925242990908892095252828069717747477244034232692017643873467838302594994336466989625776579959027672195328243220583030547545670008452060759188343765328161910355236805422714610210585732891302840132306319451168592637080512889951379534820482412289659629676536494375473478467211378732292571262246079586744177180076166841401128527557851685033970237539049560758888363750635795359005200604012879210277975756174622902776830209492514544373050232995689399087357438809513434399012060886195118945851519948611112433134275261962957837075194318107230107313080813999378935241766508282710015427102754574728217197730683182443480139730699107385243581444302977219346593372312818579806549184208799250478553556069805028867652841970063552563268531670156557802984063864874059302231747301775476897375013248641397301525164100205311118852673397234559380277223317937795148237848209899871047694446817909723193648565163275637309574540481529919829721152948942623826572668691212890719211985422375759233064051099339950225779731903929048587427121068752549934141417422518790258116364930490527386987476692069963325589641977268854727404930185509778590875083893146603896598056644989350054759295171951860545719724525109061914311543123458317257007668753822682034675342542361327954189305938801136773973631890187161435267471565232218951033994651071937514142170988073231627389239979875902077211420890160858173780587562590750078577816461659856715738577987131353336249157751487745254401039114214016708102685046153439556028591776921765200298475894330165838005420863954690738534310874090632732170611498835101702731405337157966184070608950712606012535283124111563683543733313897393849605423166797792979817410618767883902602350569692173319171491118537703093519414511276100608593483040252145517651652555036255856823437644587820100404382622696316901776204846071595097066969562574786352401599440114134312869931554163821781954256221882007407000865287242174624916601905945076720188249944256814377875564302048501425222120389045964611694793744262491394882010468410753295772884978171597338837180013295743334543894865234004489496867329364597979240259309980513855951742939456265460848811631629704886052906364013520096039398506329273355882960305270075249217521906128002526999477245231931332817545391082762034256957036216450923662587033107466651846760113319893722999375237237762276952771897258541137374210578876373026590906475143136199545246329106319261967184130074874688721701291055982169890789218241943044479088261018668648010076820698168491668568872818641197762673266471500117514708350179299303157590430380504531268122432187529486888192036615576227183119278125665247112456002671065798516917943735722192143286591470074553570265958161130933394227767443125589953040434431744781873359515662625626982969272888780989419908673452042888174758303381226851948229907783168407996215726364383538662992185933009983478022788467979610761210618348695635963361458049090231018601811314319466264711172009209484374610213065757928738676724731804780928607774591257111970947624428710581227924929577477327758165413285594813411350076456114876463595506335480009347169562989126604591499336971412490462240105187775138136977341994947225883655104941394627690868756554308981201773659128879941199602705426362517894750766499210899905902299716127288518394318518442799634528196695827407414231822095929195337663063953081330826068618679041744410856737552984180306865345157341086996420249800764812216968785394558262130419700429360754097816210340988150432653939225193022891938027050360429864198115899796053634315209362462093511765300935953496658739764486852401539544502361738046790582434086083252474416181461377725515057319013881819493339600589099276759746395339905126072535304850768291554750261033731849909460154422198091147351208615599023564913234569066807040567709414228855759299540597867899442578933035409379742100974448678092215683663849324644271353861145245174712296840511367609161699719022509122265595159432563827618690664678132634872938612825736869076772473429415181224909050104377520097359879704096161390991771621421056170908322898279993879030087618578846820085461376445670695915308599056016429359512980026815066359030234113396317045816229519558343964287911845433600500750489744846192556148168419430549311118697640075798363557990695303700920382061227081283612259276170880934006797838566206439961670548684898074522891436627137168487778702363719095188570696717204805577377997290998611998912444899739715826504826679833067506799851699637373601541922245135113704922649344792750385389457271990178078575907304851528961719823636507257145107677934054655821350464489344516391419454365227637054973054652503993186733375777205965702020719086708782711719640917843924837343463449064306395931539520761684784074875615606772155309030117522475722693801058824884505054841766006615897771207893608822087090067908744978812692438690650593309199383351955461918990669573273220711061881521484811080633271568713767265149227421150842348567252764800901094058562521753620391820344802557161236509056406795696142994525046868778142342620957558089818339404547450379654264635095533142197151337253789128102887831729650329761108802786490127443210085970656860606001732456669627635063949458484481541574925980745230653352232259539815522957525237758923688723347273220522510680953632326908571889385831299456247197987183296208653509656638556868758739651884200826614206707227497646387125338841611423879994451627833654479912399246205757580404215908563003104237213261664768606826206285890630977358752861838384064590643908901545697006417150566783237688496901387422692694777284263499904372391235085454286336303608911465934962272077017765417271854192945495153951182543264155537299099857383661075785331580580423146358609282251411282412338784802726911894227366391101892362205325787639963587477057893728632843059059573571090987503489038114339702615693593793346607750953753229044192369082186008293363542571055316745217253529331774027730832846174114003546598470176663447527693498069745357554404946283912204940393042807950090472974576508085352021559756676705125196257666461981956624897174029657960402524863152537970383414302324603402627916762478143848197940698920805721998044208090835511691732763956631297202886762795373405314288335889200750460940017769666191263101475572867394145171532470046671482940484794537633807780791861191329547423024964380040856313956808867447722497168134181811930183941135990187944668241914960193870535618982878855487831473583817271723481491445656831083786601193012071411885756223312881469261143232655071107640617945360784301015525564242415794631007404412254986386593199888147848393373431610839917143810445855314613464375684116447434105184412285923296027371840838073399700470295748933800850194334845707092986014689130351098535377141966437861346652695545131237225897850477396873647365705212236691853484665920730122271926858840039875312524410417942165246413862986372374919338425443507996736962014078649654998154485340431067318820666941745136612177328660720710686895659425534688071902019395014989873625598145997657313819828912171019275899631525831056525155644400400772597321048696609861463116606952341806071836549939532926758482888942097457430934673419541182247674948542195551667082980146067415683092943004105474407961442112270188371232948249710845450470802975136777878096022171354780673622600771779616495947383254434446829895341913253869596776380009336580853244205387537441038430409186548771826513956532259595959572704076991718967913736763529252145283043912572252763870599971567273013821982759916173642738728237105890132483025085064386741157864601618406352892298627025823798217201875988172136372384462415534220739699082088556983062580070618440288677934213675192833546723477957633745520767099879773739315884665586918053509960263080895882546228633947258679238208953485207407445307914619738088463767958624121498394816906754739324611873917484754997164521721989559645547409984947730855060574991292869563636927636495948962370466987569456353472946908919231033448840637938232787744603061332236268205174730785182416979446888014358323009223620714550772285624602352954992506920495663830417413070274255395483834571789631624044226154742743129490972171956753965917560785468351135651855452291955951510227541915236227387292054847359933762762074106757419308192313773975074608880410941705729753977543800936711449262269466906932202047941848212209858221667470175571563745765711781760569644549764722008844307164220939205908408471451414940263130861922870963941060709308153813894788343788856275136477757660602973962929856659492470621287959964726817816253836253451312377114514444234347672493472507961655255460446046122070575338562261172365676372829025497300094068407347337067930507493682782563803735706756198990152760854214725063452294605812634583898506315174819285259222065382517848736732058430029047076027048854630086203846285192975126682877885445761815566120961031852611538899702034168752762532321658985724347656180011355185575809841075293156915470487343423133251363021755999803790077347262927177909461742754873002991282199197675989521198392386634794325110617759058022368044317694963567747000806919189230504852277723033141938828922269734639693539333627834469494786011236649829733478932835263151680918725821819518842799695671679065084169525984102374969152522631162722795402984636145059649288560588859518931222144763129820603481799119253476551831555822161099756266838666510612842284486921350338585124637007111558709959413612020481748728810979672717525257973469996828833483917865623781201950150507316602883543307628506898264806541862775873242496453368992863815228393764679086691018483020338316466578302618927399014423642564118490199015094206278019333518446474984519593422889914709253957170891045559828096255560032331659532910938418820557277964694778260461219211725671806762039821010251543158032863193307613254727654545520249037009714005486825570060694262710225830318761938581432575824573092841921961468553645872836291548001675434816084780062322279287921266485836115488799706731192906918929571910035515426628628306466864026845798865106927562002811236124516790017297087094713729541689747019964808329162690248998522775486987500455140477740984344094282580470857219112984489151682329382210835044221266733878234629389834184836844063239878998455046989014473504549271755798002425379121088252801522383223748195898703512396416776942021622390549638144385332014940726218172041848368699320491558899388609618954359003848996703376373798292256535724396272931675084781911586526295452240179443027459105321203502933332957486041591162377324289447866697399660477767892956732532033301574539256063243510291545435372986624900249971256218804874402942755114470552240492265012575584340020828800041580522936887686522108077448211590888280319991547608696854169721860542530410939358521192448214095359345357543779535771435234841754040782555697308231731408104863291334011158927278440193316497579567327099210705385624276363559361898951494500327709358602242534307402947913599490911934421158423601227870978750231320120363896163156019397455596673542406784066178958417150454028736991820090294350172453669675703255104376654202193564279527723106667262005511147735618980115893754144711551381024075848968789073850774505182566415466158046087112833028812615309549343572472319691417442075769142598472700005635999084567666391048145818917414203742127409521141350932162785423005778159645963166918672132587291546135476369611328248684864994633459432651402047182470665326878874416118502072935865574010499312610996902344740817863126575324404636328628639752353095562524037009186967863911423757167641400381823841229616986250032526106926841214398126653797264748651091869099388674289164632537363873566673033516794714669562449235034592292770817790219899336419208445012409718393032872108859861417872925973712342791777994863736007522189142289199818423703512127150923936850454573772074090299082874943280847858321766105113618352170280875150539292296412493815448888982356861775961762240294610317426616955730513592553709379411880573436091358518440122275690702280909615300941687675312104425518971734520817726968884696885895686639355360993800547903685337045944164956344577453078002935320280296047804697154968413041828859023725342447312952074628121334451711805156926831796459913432900587103626409092744173649919616906923777829484246594152224069287866047391270001151195037742819867862881446712355985357375501851644988319577824999083108778326583241773085603007727374746648128648697391197521218055344501803608329815758408593635875288266778104095469094547928403265377625685857392455070824245094260301708031212323812856328008754656361163262033495488536737782522816274872113049028122634585570757602352126859940921512113060905327397765659273139516218189545211522030812205274438693237171588583461403719876086344701081849719622242028594196228509752363537432982817200154636403114911436023493321646774122368534271908794225548303059864827851970235389065690509625120594321461715071163251905593865968806854384167167580747100498768359036647693607584176799649290711608989276108877937450996986127753346706681798275764915013100400809734798186655899751976074241808864811652786810253830596619352016763207261544429411757854698715711831810395955571015952134282513305890216530770540650495537903694026653247577724898699444815252038144197639711774194531759747227488942281359141016172647037267257055460951496750446579341014375717485384744712868956616892891783261279998984455759780952382630485554783873924655985389492143778275614411251662011596528748000348103979311211939800873368230592649288700897088019770520023607823443374655804266648158481154148491355993982921579291070972015047394372325230198541988655526533211230099871870928886842963258147334412006288868920086081740270845479030841523547777652344497999356317495424573577577533601158537358066517573209074709170721339335532198593958033378859463159045242239491499047317803930285613295859816574068846029559286525886446216865064973838655582672292642887635648947130915542436785183886482108358980671806658999701075096603533291409783532136586323530428606121321464923960330752681657808848536041035026106041097988078666829142426765687072317417444853798206374253769787750134106645101440861805968571992242378801260068535596928429434173343411224766066277727467260136739645153024437217633781684575417001026808988292019461526431130840246260758138843143127180137526439526214513027143329765890677304973847386401705248363796262831089805821592964949437662296737919180099980213735059276196620118289113412745843412052802102091622112503895775439979008100008819845077257174342242586586753947545210851949672061529446008739350107691940589601973878193061287726330079852408350597323370307943194814904188374915624659114383510661800150796680983636080152762073886122101563912377504710911467610303461907471152966865268102043580736091932760583739890808418730670025812978167937203002995694380912365362237844413440712592912171148919658022719881607090733199920606159376939776123047502680035473422328080604893082896460657599065667887348104734697215769051702504006826129427042337179681336753398908845777227513086417241598401872301012591461139220255239152113940963267129083706176368610454672061398789395854139996289976976144547962016550087529183803020857073017344109430893433600550150350390559534577980866177482681289317875573461325976478707420560349221276655639927140180799375907330649083959428094738324983892469988992678104836185403331258702842634355155068407015143949077734545666356782681184164045390650874453591210151814860134858621074784913352399883288719781127658003348827282282948078406656698122332415353399424781398126034507618178804373846401624649742916499688411186347145599794566868754371360444340455908024930584985971163714811255870764662387138067987734120868487290748511033354968503925471352730380321510117746397859136080011277581838367670346805369571115371840616927724861000093366981291439569334363592386013211288837304156860437616109711509083010075715785362159449377390507193619979119251438261194382113401533663265892524287398012419329147545464833610658604301599722066486742042945904247757145365421681811616346410242936373023904840089374618217350889586161359272525791943827734668911851156821394890869472766553274267225931396600261286229973161182183804628767942902087540034773546227433715722539829031650920736627763188387622111961831947957102474777241006601740457604450583760526159958779995384754500286239318527389041964213726960476563440452247633208343664142712008971635338656656148119590077255214833827083061293718818797654077953623248591090557684972508369063335665279574882207317660171419123061730829700743029634402832873954437714234390681819374299991829225156433140751799272561258077375311363690876293002776673368382299205832776224113358434615637429689322011428039835094294774611368546572433971095858414787431009772699434208293851042324477950877814659121132970108942116786237059651507004844618338788561318941189777096036828969265055351710734394081256999890079893492787394742685842441578393403573252644369183106189251071858047327420979744715165967534149322190445748580037488036264194762862561716876976769858018366019693081506612962296534621444038991159369974829721027347359749223199481216630059388713637092821053779181097415093770770794476889483445968515447224808803733281081152166907992356267449280975693573089564016830550350751685637624761081774392984546083730327149717043135916481225429209510884149431331735233720189725231655032533631416935315111619684999489669847559399700167243022277537434174709372097057972236985114764695611282132588912619386715747261069978008852235002814316987933963555270721361734329963684965120140211382667053123549228415940792755167121024507816675160454938762256729482806398693797006644818766939026650681641323940968710358057713931101865587405507311903645559718243332872261559322158143952191976324439154204106064259152861424049590648806822746757659451964595303961460561038459835241717303568907929152626144607067864972459679139263797645181980348750368917872949990358084662968152638544384805789330124914753558557928168487623111373850209482685195997153245190884359558417113353513493702005184257389204673742353687887889954676886399392521242062953846924094879121170211033761283242286167319669920366558579397454562036021019220749300437798042087047944995741661619594212460378903214145210421796625875156836752122420509392253673413001228846924122155935713667767302310579122098919503804903028872057225079145303750404461301262512933228988411344441141295435936642914199178529230745691823919073412048520563307816923203856945923862995685223454455660537018128544596747722057988692804052097256635722372203431942201532638197232046395521826756615204044317100522621559780927404099845675958773705878251510609771767782363959134767039877808762616430171994315747363154658377816176658349795474238105175428413835284994380904634571298942751974581843704363367379056336767547072436402488000358495585670603459303494971179987782339458918228829863990964228757603859302500968123386465052643563139154801742770616452974781615817318782638780154063343973528422617709972696662114147448102633803900842134931920864426920429847343045225161780745191387981746171813950834033674980132620985116697883309213384127047306637758871399436790515970597861625344035435664210509646587136324260386689961592195396832919804992198897166544736678329371932082686478886563116557774434485799873832651550394840188588757206842697548171667769386052267711340828015101635910780417139944252931816098006984955141125402378276702649166180784320830379958007617577632655421423155535611323295645569781063532702156801667087405355840485100502535828249173472655953648493959549315683742619374507369139777966076422776877486777912397422630832969458983515244593849388450195962556399305313048861684818286997324806519158787501831647969444982252115642412567408954998276766198051210198777448156313826923696909184399613980184652685475457317369840499210703488977537099437609946257419597268407065667633294898906992493597341186225414691649987980048043106706928633033930322985616025524367507213767121780259134943291404314718926711107869956180664338643164436058413502535918858046747069179435658928042174282181452647508102839588062575081861010748573579037167896640385230027221190837206978763304343587213883729961990280616671775717723049183699310429005118174762714487689884097344765389741553395212079433442129930839748583727023502305880741604322898644514169896904783264488079732821911970993238452157619693852947072296693259480129134597058121276960417952837788982389172258409778561371764916272506044667594838118130092098786665541257512462118528247784763983668386376054816948612468152134349166029343721139498174278409962678121139012812866260960785858663877747458947061172312167496296610386229011337890447566093875844986933152707946039801564144997219759400019979138432740847377617796096897919551886701451159392761115025931460176765175571457186834948679329642663693968220384884118450655174900395191118765052984494267392655828113225892486026674623408935012444561658776733326576003187173957943427422390185147821701393401833080318445633590765232166918778110780496575246150470605709069636917844458822983963409149636796830860634081654338796313502081913329750123061935821755700937173611548946363225448226355531041612000893713315931072387267789657997886233585822645245056829445065866641937987053294324366969128589809806080971724379685961646096092877584632472931309465688042148424727195233060950289312609276956594875824376087935363028553202431316525334504801997355099826579766666393010357016054981651893724580945505199861072996908016721663528580850970214288127063273879339619612613937737630628984741049620214774760115099250657355758979901888576952126368196428705881785393594080955140471560033478473474315627176578727591450493220881662737099934776078169014593914405008346533155420902395830149401175512462414944448419219567780160066394065128499692860165210170759509612903801251070647776252397175456739227870565977304634976284203690031727173077673969282065030575250631886252116469713976088086017455641173191123510606545528874289487807210286880336202924728266714304256954124977752080633711771934663968369342532258392175768712579805994528809838006117813588769046066371922012153469738086384250508946262017442241976096403156128256495928716150241050264507543941604765343671667577946305634651165987115332596511080498639521051325706357856301065518436358937546664921351426253607689643760177638644303425839366818625509453411791318741199231909541750112777320765252902910546763922141316924104195625614165960682709555286884823536240506986900075871418589409764321485961716255985972131812145376009700232966707878481830665519094106149441144955910424176302507453451629567338862659956508904146980964730727935612918139144299431437773810769196074012647368051632009852712575719216690426050017354213933240015515375511554003599468126626473308646244298972209323267976126846097129356335515588154531607937792164269096586641211227968567700299912665123316202416086082024024857742217421472044967646715694765815036236364907131362182343512196672377104348011010974130410533047215674412515850227240858646725871010437608250877791507135755810631822141150858670062098177509517614994601256199691872329281812781556430695589138869588234887804533107487449456303475410957480393699550439699957981374951335983532576622594865790266876311543561678997303155907628172693629861327874826664249685472096615553391485774893283993589436075716369591132625744948567934552883228709981548162402968692036960250294515953789565912422195955370230665854392271330621031821004285409586496470108866713065192085351031471867853378727419639766659402270876042940775428379114205671827330626564544600708507775431701086579095595412741831724837469870821136920794101532274643099940159417010448466147615643508913814128521987069508038056896627434302812820059019709347275392223851215867142834345476989405048347847100674222996928321762164717641540039988179067125401834240463363925979772521883111428744582975131473362944949474536909487890584114875484664415884504993993187610930513947134693214555881930375059763312616272636737118317689093772253752831514264712924173277829354223248139152135009503734763291591648280272970269285652450978365841946925208369640704431767977120669108404227416631873523365428058142096985407239705699488706899908037798886641151562549560547949550967369664676332190500095865998663962019746637405644911986339980659543938322857782145455049884814680520432594333591710741546717694432327079992797863000072316913389873603357719959398718590866521902565682120994534703168004545837316983861513455740173268025393200663065942340123275385600230001074969756064383419869057268510280288157384374610994595839091445427170876196383466247628907272197436198331614607452750514577296684954224477491716104965182194196448737473960485127907282435834166645504456791020001330830809274553208461860421958401190933157556823597662036161888734516277513760836268151385106081785373108879706820690656069323927125402524338910887007636904409457095448304899115983612863365009090627906878134533880152395626983727642392367579837209415168562328594164029768862996406578267164637625336509112678142726412784183032305410838392919871142833845060710304327497938960078228797601265692521772356707146113457036428747587058805830537696312753861347829505654180579345088695786710275327717835411328336997100672884305853937396024217025129669970371945554646312250321145058236045539825481464888237476689056249843560736548370183305759978725447156492657932670245699282924260245971087417260976560512198638366871098784654306512891135186525868675912630828615431565861927851860391135262882725233693099615917569176817010298765420779578222977571498270886329307222122369132550356245928151288464670281194069870937958251631911361215381414231220729841743816412698747770751751168571908615588112981565603251751330555725728758419270909370708060390071623921325234672171241856988555014660839641552906684786962323351877795232326169439893594757306104162737631878991715502515175011147340861760393391785435996934466899578763574400713961712619946063672130560313055553049424424330013911533247394773085505138282042274596478509476141163455972710159651313142762214853598077169073036926083553566079202401365485047703354228660452686183824084145022725287939892973337795764439342027918934238799567728159593739293769158149251847433397314255445691593109313539327313447081104508997586716373600898028331781120089016132068981228428973312786710824371699735293982420757779610248202477742239521457076330051198928909999005340292218257510869119700321198483202789437426896849596729638947093374601270389666707874870402638842380562027335281891574075032565830635906824030968371006206864884091976208049863741657130609818148691101126270468607687134854127944948392996977951974581178197114025201927684979532982131935492407362968325362643473596955341947731231212173139788254371360798188145099635522862432813069691559079440329729044502544312083286770243798767966481609910693979537672644065542525910714787174887589013172170150896789294301340108490156630421205004332476782118341022117456236844735670181839234744383925403472398078661306894332608942412670004919464605088423678079551848417464100042830306595518448906251684221715215177826498782317245306702731535603579407884049714819917933274656381396658986132614303442477539130729038759613835687070145092934766423446848224977445611818298482323198863954510465771582834067314056980325592491156259603116463999246562196479806269120167532215233477222328344171792491010161024185822748905951784069019208591727095286670971201700739150722458649865882495761082364404557580562094494672619199164741000932813569573429213471581807728464940112548056406144725079879889087989985681628843758473377501217828162796468224800429358276677654252077187974191351010970843606573597585673043231480105185930399359418343090538935514667201228635457874020021361781722667250624257495501907875655189254333497342386317501389090797187182573128041587042296881154634137043576109326936459523445573532570314865233903346857226115466501406317512750156093464337850768395553979635403288964226376052555904705600242724795631518362455956521927671793227992286391451341630582710057336374656703705558254583308520187534186377165641100428595925529333850375925195758155834627247147370667108077169836877928924064105371272781221752935988922611835858806524592258572832104548883598720591474628637104771946069460087718987275706935377648955256773393683269248588067288328037104379142695601385026424521352333432656925049187046755917141594670519266564456522721894820523700387075175729512518282103646197211087666302011551371160047077427881868111598748393718067151490076366613640030097104664623810320106935495497443815695651621818813739470970622502968193556048110873416252563948130403683893902153883131237502246642372205922123493593077693033121949214975510589925429594244440366013696422458551641098259207077453093290434041160783651805599134107707219593102275099576299655349597489021407365274282185398020846192002018804390065052686865059552941698994944081617134390943162123483750919273797206118843528957874416944058210451935589288640046950886981238331356518788319404643818720803103036080688798004668155945336464192664421844982312272626285630274636172100919146124410956859492298794307854701866759500285853247384736817844470547370910936989041650871967224403353943758778131887972064110385559242465177533748388083209714103372264283059505086885168203602708131936745502627142215329625800334058647103840473148252635542774918269661190525805537534189385251977581079372906794046793570336120099656927665502066247329787684284455250160821353308046753809786052536449896362757602335623514970566533439027201697556034182058569029440537049456231702509628655176511482492380734993785784742763960425144468909494152692228153883253178536784049908980608146500550842600345733310070680557649332595234682252864876015341572412509384458597362005507806672632042563960079916595118153208831116340398047852939096891548279475940960029775474053659588490792371499421780719253977520091945868209600860509901960626842297631454909991045799569222760682089794508088672703695520282985904705606865799879435696661778076893315134867085353057267176491231260163400654409111975871460999834853768642214872203738755542805697248608339297662338257375381469869971781849852269923281721950778635743655366434917023615779053130860447031711635038802150841007198006407579576333206726343807354647135053626805820989483454853151414167962795879011103742930937099749747918204867321361688444567489082681496992875932927258535503743586092623489354366685931353801217731380879695313766560090640204751052299038104050242890685009009152463867652022051901309006347664461453737786086481148202616602993267860779833448941776754463387575063017436834095071490567779934376598854573764224202442524864154488970133454886231045300527512856700055305462825341890788582983034443404614078671009393178059993275189927827937264822714225721708130801650900758358785138455285711533230061416233454666927775263060881000101616935398445695163924809094981228570052221329401410677626932106705499677610513354579110718685516078895293128001112785412931431520299739169193362157352411161427990429903998839674318677128645985416930340833701857711080106176155436152364496314989069721722144635625305998179420568830099285028876314788942822467236216023934386697849984298483442258052103693003853623496799413007302007136077103281523832420626189718459714157453716828304073448528699739081776972505792352629395559151193908410511152724566443162634815987722813624037460775491552119083340236204193148078409585857555923751789616113076527025644044164220113698156888466369642422206057502874789235863921128504126460346317697781593388741396426417760430859474986188848069121782483589900547349014201632424413469432033389148683878749535681642549647311425425791809354443234867674466407352023982887719869829140296015739289251142592780958518112720225967202860677346044579798355129058694002456244030347086501835618348363732363310559822149772158211372571832361567354385438429458607145825942605182283422967285947100546706485189124731209220691835268647669412771877160748627462725007062621633047343789441472868228813525587813741133509162214823249918183520885750354007266173586388887203549528891027092136475592929234291751393727356138477298434567200975161919059410515442394367196536023840489702576007651190890306952691984374265943308259626900408557297419245821330594942624786966684698746430554764612271583406913223436344231516794256091677854561786031381290810791365513075424568638493581322216563068004552995994007447861796770586259729696930415193028824232815169710631278601873272344545748804157609341965215668005653521778236129443034145030804239091425355357341285985798450727116594050610108981435950618462351295834922235021865250413827927344970799055800028965930559134004442272738785083724664544465164372015376519855088466645009166924618482996564178790168047463172095463301968441697095066283188110572426583235945176284819768702183670092632315868750266601368165400226743190128899120808687357741807297139720106052797057738007811458295596025596184197033473266941945578565164148819638137225596093816695414839800719030252790279409423835665819861089859780001454366010551520373684673564263245178987259071450019308050602328546316150314784956688471538237322483835263165773266207688473611515236157738648835557747067244313239688305994882355067923601324687170639163182330760849264058524378185440797887963239147144442889854926470205595043906276452472383240719869705265361387500957863775988641337855535920043501805736666667218810351720355678150236847456992724151039550329570727417527646924090061707296812215990184308654449773292270044547831338077390368426480963023145343843966425324675649425915155696750412537981508883400439248669024537705281681610449521253196740327474746765649099928866481115400679783262483820602511042748598657422008856012561577369487748561779728001697606436115347599588655815696373610722581249557517078961287798293341215278293756365618005966661110395770645933991661843479591615779418984134771132842923937871376786273460508647628926415351557190433497130711312707024193412614102689711104938507181658194905284542851330670872239610834910789052071114514059531851585158537676352069399877183796900587533159563163117490347469157774092775376398801849957605292497847871276486746494694156646339144782977538982333375760210876857888396102021514853945122990092882869413211931915794480882361824727025542171236236378758140862470849451251220054401068816784459171942097828947746734059018777297089391848144578401232264906648458369256154890272315361440542541995690871292745877858939406917157852987334294048508349671451356551148441724338328768132419186612108547069930169113180437674009262923182231481833940426187535698097270911205200140705861483717679716151201406227863777446218405521512811818980999928120226166560560468482987070819080828709558492218131757045871110274697137477172073000999007015270279877369694397002722984765887854778894713816153763088110443963310319548195387651686659905310190994047211804408824176661038140891850442197666178032736296945981808940675930939320980431112881454749834512869477034391898178033079055928867326561290361904571628237278505189498258552189696129268826321279532807342614488670825047967603653337220782612986508022237147504511413338917439971816395722605990255437600142819471675436750891965549874814092832114426869166531360946438605029881344777866925504249747758275449941034303102922838111189689978001297804310653504442924169185003593822337022090390027953426882461720381211436875073854401362219544155882780433170437048469496673352135853526545283595962218279929560540021403741778624647272674949632695328295932001097820610118153834318295892720477745452597732155288142966901600320631760866185148114564741533973932479880302161502976819563853880974974308455809712161340727726605660812840905166400483794194955311847020576614112789310028865342799522424772108562753964407135835980163585562647260460298178516594439900174014213981024129734757900413113439904110780583334382295106372924711126008363387550575093603738529428162831748146821238227899362485119986502839644611149961486229447696283069049301645025635983141780146521090391694258738574680937759616228724307281851957657654886889323513843548289069526870430997128792221317503667106451674646507099722054129134497238163603282937458101067015175120148464639877013188619581275966724045912914515924179308593139934496372641328408352327709518548166231081317120430264799689797058784118546614684093395755660204361310709147967834499555726681941325771942576835429118940415431263108241860814288774763889856600384134956653191672009763612623316161908491890717058213145891327832606374909054979813926498034503427814908876933369417831501384939958502233583491531188676216685096914256421921153165022322409903843454803929427050880075411138119625732296876083292922911571772410010022575896570388846220315458813808781261136887869844541487378190325641806411961830142729730428376392895885852506808965123465530041868656559679170602350031399716524965187476802118894681605063859593061467657087063086003272628788350330692778880284872794470647849604177013219454987801487411388464701400748374803348990713054069532277335795205859665202484048760071406255642407911272369239743213599868795124241405308411445863636772316247007980471397740163501028052438415212289516459772448540739662860864618931542198684265317711903306022991539230164455388937450910835990521171569651412972309632631425455778842346230387202059092405527335536859621513763743148482557781982707385662361976269181955354728334321843084669000765221954628132920184340765062814422294753667136243402816910918008268393951848688608096012751185818359077238335320040751706207693488980945140923385601837657464150662239390244244723009912030666218273245667078341688772149164510652785449338434274628835601160483007132666618378936614153968996009716729829003071115000473031024242594626474159409560338319718895435457686872431140092458094880053805647352443202356789881545806071788437954790244337768777106342815673810411366752438387754658235095393334665154643002736649231296708168875408121022040040700697270304318275207159399232949949353544490018749901445522027771747984317675024500956123722987358448036130959205026525941985365325530835426182302686902478980168023527754622035077993286939686542671546654215221145485141112620005827307444555428638933251555099572001822873067738356602222350422012565144848428058675387943684309938084524561095941251295808921821321442828704282412673206389100655198817383689509765735194089367783116892085718877410682672186359996568053440640320971812018200026986077704606225402554842487375291430858175059311124059002785769078861977545351128501402893739378147116885787154564418808561562641975605113488458098086959187683160670151244332957150512408846768152895654803695363605518373539303456337638373077333271449372387695318231341113962204614107472706214070383527071339913707404522818016573319754434455059064502162163076141374974469403956429287528601103204027729953240864597098492464027255122226920875280637860756574431923435044367610249465358499529773453624087397462799685027088645752223611699858664361040789587645186092031423713282051370293874727410855443823649763112450225840487739971701492562636809181650033590093221394679395953849820450251119376309480032148960063360566865552550091395370525959176376093753994561558131280841962343427399289123520392527042388637240923792940373903718115655114088210559447184383561518430683212572095487569747017622692306637631230771546895324396523241652396372920236196416069538678704349824237513628417304359415786603577454741734880925483819375425847468992487939348219921005108547982646266349365803381161700962071551808052995903055274227795955920919056314178739012568572412011954679620478434030036557975075451419127042356395437700714540883868093696733269091669202196713768514906613305117679431416117511254300479506764399768291334668627743882313223105788080195220775909417756079154358713595675192283205698614058591064459267235981442897826688187920733641601949330927793831217863230001486437612104453625215068447798125728111193640060675755049318125079765984629540794455513975900509053140434266374003955609057156258261510679658312591868145394936675670236763636392986834619784001487402263523538523170016328669577672167512565634001048314759929213704304089037227066008089642803176672867986505697701054103240500275423578452568457022403009931517552189804355625137686901003121520382227718749446008802683949461304742551927002507938096135435612450079753812763797334765779901703393510663992070457028753890552416664920586353826306081629110593889189312640559893773572645060992053238052304036478059531929569581490750409363578340536618872611312584968432457606073772815432241789662526725964676480254930001427224254222603254169444064511272840381368281230760212889874002899173351453803236798461485316642997013247353646444693847733738713408728703095683887824534045789758523742593708942627320106586108475047625019145238134592269276288898431695048196335986764173715399838037514717581019813000962863195524082517914052101545401195271706148966772828769900245108541281357880404171172472169405904296735611793863672976320071846161430892977763885006732823651456694978494160900163785976167039167603841365636989309207882833914740298383270989020030583472297715925488902292472733803048085068567858960689616327957313632856791310190018146749733201655514619753078889839225037353089359226527231484291531144384913042525764353621549786348503212325271320710289186913688984306607702280983470905039226956205189630847053668399685864258810169487369005378231536896724626827058288171953347189360959723126016061069613388001489650792998747212416819766889128303300818909308454477929066307778678976859455158324474222080560188905300662495257404634052947805477961281544394164121687775198056893285422010855401245448198607864641503000928444912729496714594702110614203170844090704639743892464784356477990391008992340631976954365824255728577018321015362789604308565981231797112734336560315029517552246636760400824312417937622465218090171416990989842057275680391206354988929287706542161569335827647456598268349804390428596769674058678595662798048062826723798013072635542973927496214953165742689403949397257741790035172638056429880396035890526399782585033562962873827846069134659355423773009480154964010424612344392607412591754266684983992638361277263505402894902732864706136837297478727537478896896460721493670175503962744774343274878277515539532138584713772956319029726651574706958565645529915408511049082357136070257346477486504206517000396220599467919551700032330238125891587559838124392256303381150819100080880293126514185403166504234619828333775373356876063900959987930522270412970652781205342228931185153364692178071785234967699323177492281111608249386394644552128301358416153111101876707447470255921115240562731825463764095025439015319075204058722340075886057300652632680846352798593130390769289284296618212620461746166877605231742773182684359337394254178985879978462639920199501963230552701956785010632367034975499208693156375245873537406776392139748560479332998678549588711689422246149954027640840133617384413386663760984302927658162688376730421797351107165399491251496427962126370332982084951176946846917294299997264831946561523893257253716139164883657104511929622424725406638501162643153971143255233565006609247914711037585041051340384710087797518712238706101655721658455241011037109864328262675301032848901115250098651939290318758705703543693971754306244831048355393343943473912771417618946142912678561768904993303035310997566207959276155971938635885527959635759468072728935148487716844436413213417138716218146977053748808508571741707128148006430603209590770760033707837181062620858036033179070758491332182523562096945759096857395970233937099043786913757437121504564932387897805040075165282788447053299380103979708199997711668442561456037709694129976578739945159317054524863609240880526818663784706554901396661478688618556990141637528250635068119895566540505562564967077701308384246510738678636635302315508825086783225408026065828906286259624122876839590625796625856305149291152359771765220258631254208852812292272265850842333704100769805437318629621762015611239345440943531397007012255360887299032024534612641516145898167243332649913233128117045761886788348392735088181687844305585769122882225791549544401903551106100761534440198954742673295290644697484699826275741282763368253632395467971617260768196567615282170833192769606167374759070758341847685759442785162389005123028228508081474539099824723720654648242968316973689749458893085081736558498667361345478963471315101067728122339987585241202987023647670673661608815338036058816803568039984615446501424862906370329958383356494619920175949591997312545281418392470444851667474891531910651862450384560397179993714249706014503650597040798560046779606924907553002063213123734083072564776450613200842738128469272062972780767258928452470535340352333423649081069361981626667495201751944950761377130307816040717602191030583309018476068288246704182036643313780058381352508904079416332046241341356936907038243692013137149810173565532621355379443297157706098461957722966546410287844009724324940152583196235512439195231708540335912033290174718316227285504500857092294707475740449439063287993576481426271178967550334637664757616838251809113564279929303373289498086036948553477470610310029800741128777339308485113162593318643859840101849159603394736815070854523404441231744062553822982795330176338139573825122555268475530883132857085080317935805346327150709494591458663411269832664927960208370275833026370000265747873407992763602783263687696044397455275475928335032654948207555996106346342703855912006506498018254538240152149220835743284354086421806449806665096847040922124570452721564997259228458050131879941244812200305034381186923216801634661134377789876473927467882893969186156250625925327975081328513960531591512397404273191806346773416440093452058509182518605161534020103142976413648395999535317724746663230327884938497870342597031493843274882182143464069339510142937745470473552130240838243559961230498486739499634189037445777528799788405407250551624300541287678094774287325786834449495452018222811738847501877038143977396620002913259199221653548239726852079344517830865097498652107004303616094950901840296780542945895854837202880950839213350089117651950580507664013958009339821543943436204495996330605435568449055597599595964564164054921111689972912586089095026906072702343393445588846565661441070434927779721066162106383737918071255729660633638479579592765243254975475594819590747332859347390814633702070890090916774920954842790482508574952687451067955262916934271739977483781717933225879525525689329972938524607154778245207297111402308429529938723253144323370688784191826524548563483584840040659293640922408855272647006351433793328332067992859200478327130902136745845742986860575463442337562730238705865437338904187186321977926865716040853705830785714365556613259215935469366876965597089232596965249775137520026623898235683884565263920745298776303317779593194431691811115578397413914984792704198076468356398345578986194624416557322276216726829818260008340491997161789257090025863473404017657172857760395588075816120756580025213457533555476801273812816627569669052225319764488789863587481523162757886291211371782274917258171676329261738329629588973878026267815626202085757260659641534999462231412971812874048570538099957374545198299196759439970645691137581209779855043076866514464419721944645174841683420678398137516422538670518135252639468692860573987291657003169463682625403493037303319636731019877475701854643767417158154101888009137396223216060456824825340948292139803542993860919981897020843462162461037266872608703640819654487101002077422099166178426845561104935335890472660264568396488677136523881242803253151327735961644895055096397549919708745056326625381497055341414315541388541319551590131852633041131932367011025545143138078156429717687941207644266731914037244693201042443919635408778697209663105948676274324826598600193058725058976464856878844105437579581192127397834474416258950908505135524820361932858787117733256784287269769618178864646947235257781527210048237356140002194229307529573978628243570256049527742195621452198146699641784970444545875499778140127381217504017869926296500009800526350017045244128957912398403718735961047066562590281451962427826923825446554847001754269601841224597648453794677325994796970654478122280462468835494143881475124975950459448195690725722883086272759369238145235579491091487774685179610650689332124501243823853595204837510845991979862838657076261674306242949783165662436256031305337590324654291864805185682828526144611490272090270077141508493519822739740623679055477708918234709048420437968683875643217795736369731298331526501280547320996480233368553916169154799048745861790714790803899142263189156372771631846602642544220894338575858011934769754267373175830858571398717147477482267750572838471169069806710755618672510651443257344400463574579315334890973646982505546941539818895943041798182179750296144190175454707089590946923002205054467312172751171577082079921435743675166367544127941414881284139791253780536788379849604092358969030774792050291924277285631580771028385060754390626317569299599800900246320500755791383450892317377200627881264573326067468578367646575650581905244767785011309263648897818485123281346624444227234956362218553925215978250814134227171895787330961965154495880451273713076011589113545937740949141412152476816793630950674657581444407819606700374418236085643217406641950586494973547938857821554203620663517001408057366384122251680322338119138417755918919414535094514504209726785252702863542837958518035702261414082293150252480302051958502498019538533897799830530969625566275291896224341948316435567554210393469434639079210336174875119846413769311458458606651573019491303791634382421380007836158702063511800821109168561809817690608231276038809888355024829945825400158915577677506672763603966297270802856404719273906438531427698010890828651195161722844303409169052405219443023005352990018094734224851568177791063352726372875739905338610054878591376739605712632197107351524826647724522929172295725945710336634305467410419579599383100883305858759273690451916700120969925426782353417490838259490190913762763276262957196809349995918183525112362986681132474439646265140153640581183615526855220148234331971972783382822142491214717752044713616747714746725083573388692804465393246384670488683908868208057324845597887880914201186499813141048822842823929328124789490371256094981722729298325392889271505242171416959349793190258819044454212530936210338406402894522653565373318112518869634643341611449208424245761414259421415655669208398409188295977582256652653528748342974012205074356332317639052518525387029123731130138551196878996503257315928384643082896167725142462239540886126255834304998053837667572136853246719365282895294555694569734186337066690010828702042197116222950162989232072374252740103204061536278768975898155209862197654430211683544049563595246288239464739259714797843995029016596373989690296066088833696519705358265112395635956159860088293374116337675640486232384685941817836190895871935031232884221818249986432505248634114746519745104095855719337570669783501742148113183013524046357658075266535062895894775156550238492892144112673550958177355504403001203404864682358188211626070779915517674593651662997565389514623217431055464197695435314429002262977353628422761768790488996909793022815401274598683430727453200514468093735515717455095655652859225257444945883746953381139121026151783905378751592588340859313244900937939348966533584505333446599906751501490744291308057292434240264873303228859959083442343461498009676504515375372240940023423120792371219776258818530832641349235692227140078708641750625547373158894596941072300934698549706044797064126240666143251041789080449785603761845972849906848351405514253670353083066312621882194785099357863814251555129396089365571848025715350558223263753369737100802860946323657461668026951189525524951899232448322075134154751242740425125250277603364377543040161599373945191858343950421161724200762897743674911515177986334796521500111276305957015950047012161655095218222939319641930336445406627310332987253986176864656226120627916445394917728744383934429394641923363594159791384220446535976042786651822129551232129300758700955708376194467994802340445760396053999185941387332415266642042888574560705983032806517034826821215787162916534608473330184222217871181614533651126885081854213934744655574315954610290006598558566000832341240736299990537792398235660665483494204063820503975516109882053930733779127458453845515502301445858833619456498534884316118943966148254299687505558119477066419111930563614963553438109419782330849889572601517135133349295832033128904130838953042903037527360010186866725736447991261456626265364084942997440157660402361564640534905781749577349477242902337294659916344171109942655453841262630540725064079200606662593947900579836650151020118003594840517931387703511800882714857312104132293277999565065543571685607170983231105249844579157286250094194185340144336571707511755683940700411805207055395162962391143566254839231475020972077053068745355969091176447144263471888862669525841139025257494775426460083354179234141989876158275683806055706544627161968357031557125737419177173893369893796450513471167091724941722129187290884484226689355960771967883505881212829453749303739514995260010174569154319354306940886185718207796452884228296523020136787464958799457033255484500330044616344456638588476170869726633722492717367890105641198525450372399244568040669919283906579741827603132301053883254593130552309642301709915757137366263933476919185650618250669577430418656104941812154893223633374380038257470082606070259133348903906921828253259556785955453968117711420365673681628571407071461295654893417381438987287617520982363327532866940669051113417232697290565004235087011496870508567160854125123941109246255905710842292998165611493233589342417901172396334161085955145098228581199841401230345327482786555530590955158287431168196770610496091365167028935128129352435980856444606573257802926205048810646005114308831926321733766436270740050966307602685621999254826325297193288265032989421532283700349884953002033955343635648525921109432636338438307331247850708855137185364315808772652305754215463608696336530571758211100484250224106289671030372715157260934263233852981786882206421369391564258555917331487958096522423927033279311058869388889935731668725872984394805096093079167895038243610806716994758183210958921079187063592083118532096755457036833630444739772453146634443280334785618728201718550237478324764098357596534002565446406046620306903559703567431793974148362312966831079846214085092108317954233733403864800874220971696164368815350955779757983213633194282706114353932586361484013179887930919871283862728782602041021834029540017519934755357565642140502076028468314742904933318857530917428904547321565206347576053884288963000323288403364133125947473972262750342294233111860930812486566729750048466488131023662601522569855864295895641798607827072230101466957092741511882854281108348382828815276116652953416374846686310320744647902617428934862668514688685471546891587648191908285344328665876101223295392211631483979365347916457186709220185840024806834735696949523959916052740602300035016067605251337446962932915739132890342589635541611102746587659789681466737382430721766064747861949753962645276695832409060485044537206840057311941245289263474217702331279839557854024122096745227269266888122047528499777045875043358436362244947682873927682985434737763537526209683635902522385006690078832843662035889396406240984686579015493560949641353793858251784898924319740551889279411019429517850473515856271354197327424954860325807487612438672157123136842260601761984215500540870051395306168034488218388152978495905866613507772400645518635504741854512428765164759014074108925927128772709701935223012326989217488320612396154833376621111805982761254671105082222525714724575717051255837844972768735444113572855314949441894163874546622510764943862069688399213267403196544760327591868344548291860284970511047459169285479828876299273308378226292629085289124971298141417478065829675084052827496804909673826671250036233020591621971386299186786484834502622506842083996199777531042439202162985021796070691102210090143669749602177544676381661612878014435375349682760024529792087315796873548138035722634424453379456497056877136013291362886045780915611432340520673233954319114419052632325083765328590107901858391453113807028788437554866477790687873224282925627238582720617734278613948736578397782408921330380824666738174627779503353048177693881096657982592443144455691272056688762493173944217378181018232432966688909190391837101042549651281343453465263619526400280452135918583759573925293067631200808775040683154282233397482190809251653520384294684650142694003076442807976070590459004108526769959156486326673130585670834309744849572800347793130385665817765809888657384042911593869526562424781627082607847735771473949383272173729978011970338442017890056838443528249239348380644191395681065205734440849123924258152189634692854938066885653513220078117367543645027859810564598694941823985755817680597528146742648164443288631903061637325880208276437066640305734122265661013017632953621571404935296648048931938761919842327812559499907465441446699611841611880849703411205121120767124874263626103730968476131568887193223683828703432815553710851556899059551243614438564946766160651477359126116703238234723710422296831901259198094599097609780688584997625356413689640427714056696030436028297501920101518588745183377063309644553641292880291582699340724747194716747054977424872863345778634131037942699174975736446497451194478356707303047717043545538125803371576466584438706691030690886280460039372765010685887421837393074713788089273100797941738212484771915333095668573771306464754692000202493175921584332178599887594676571494806429977106796343591778516751689827054594322977926147084989388648365376276647207910427103398451051696452047427123770448076621700229854267381206177784475616683405289587561841338218121723892687548696936291902354728743959735360833766440839803127277637131556419797547034772591735911595312654463465060374116349158016976585397408119992278488964240937515335783647674294416801003116125481922521912157694008686580025169465873685503167537843981624253010086259362499674898532133528123201257589527843889571307452522458565860874293769383974670133310988138448132238573075395107826013441774037447778045304171362892520080544768042157117478280137951121206948598714716417141186568558060341690742160122534801974872782232277628690093396609445133972803315158147555283744882812049047235187179115709018704154496413696020610718568110188072884130016688223770830135616137651162470027462283873584264491307134855434903335064731478664858861995901594304950083567954392290983408369601380087684421554830148408473424404024220472022205275861283178620680213184831551906592268658865733198416274497487206862102657848081755794300736833278963305286857936699089531756696123712721320168965544251880244902638814956953877674557161463643543572136036692281738485776778993737390746355186382082130765803941913697593994126083632368275170076073115909391339377571739524741035600906349184926388401930814008611700352720453479716562045556216678441742906839101406462680888314779818121695981991281383349373321383688843995590227293631770381188866956300268591447341847345792364024866815650133859626230865138479337290841873144273145207400669637887595784675913074143585162006230809544936255599585788862519343542102278586192700709719990519563949590980192399135948626879505931914962485926287181093008099267586760907135674344940133464421784934352472075905908735518285955330679928262782788096191756458461716111866528770682652255652159940812737936374615688236588079190639336681853565790604823079801440245534985238012005400921271849828238744848588362168148083852632880457182376272572661758516000148183000444273229674040612039864703163771410364456375834361595234617509088646198647636766495053617567713439482118051474155643616049249687774587259793072523879567855688348708186559487061348593844652623008253839781710156430928345276549728495729197067189407500058905053928270558983680391528327236486029262494728260818796333389452400574335626680442348273992504656813793235642829662497222528577684047789959457849852099228746919789977040737454621013048805942442033692554080747045635434168163493643735968294962151985108504446643482569186941837606532330914909451451847539749454884506859422268418780823276416493848925937817228395998419299468973367887361048645508710437019286461451186646820898299276313466698100940220881815013572686482073868585706520108582844045852429519107016618926999023633798224516758416692687896653540880456236482416463530256204273559404495713888332813087231408948040447825948919123450148745813376494040104884220816033949190234965952282987121886081741780650533089266996399046051099059847897861430733046555968505782619049810564539784363630863438578088952903258303001003933036172600866241799431287286517448073766976510864755263676449816220487829946358993503712360003600225928493523327093581634120982095689158582777275113247469640221303694555946618746469945300821492593156734871551615147253732874698574632550893311372231794433467184545477929469576401654891788386120714870692555943154036365698108775247649041197191836889747715749755144181750175282082663337708569120366835184050566911314863933329639751575255779122669979040693879043077161299284479256420534634086815385876692491342164590675288594862867302498119124411030444619616688365492364642915501868405436858607612654720925544572044753043940466409706454487431410772677777213475905754699193290277416582112625762981639881799599968428753460325278337071625780145536775501866408567969354079325032318500157514490536933678863582599115441200714464853713938342194080650302713837442483203353976558923986165120520718260774032978601119643558221013181978140268684049503956390183639338656091040193447765855678728215901080956557710473173317251329743434934854511970182508789294405462272668079069875779351329440545039444944666467707020647587095906588305578552365128275350846369892272126458175426103594106725852297500508316139516696824372319405249817064183281051652253046585969805698320032360834793547372920158358558088822689238675900921554012189228692224781576129676754473017210946638236618141984855568521215105722893780749940938016628307010159599839023546851821819356184147578659211216224194745000942867885734854028800309223030260675269373536676779450903870445334477789477621987170061894870752113116319482460307684131328992427473611804873109200566282808082622428726398842464449365760659122975819622121256686696661595748739133968330840665327824197288122621804484300921117188526441816411342252257359290170397923190761007917315805151001746957869644219794595602075944161729221961983103291920726065346127214785974267434502479254035068053085958871680512957347224979294843989205247838406784097970562827283756222540149997971896064466145464892090804535114366445416059414504737101399230800643024361156489258428796700965748668969445401089530579172109846975016050877245816981589532873308170274761948367161930155709913275606575976925848708131338969123907325896610256257727340540514172729536945085042973125157682824098425279406952145918364897223324121235547349642088274150921672262683669075112659684011612150851836144031724956246832473169581425365244328202308333958820668804532026078966501848638947500389769679589149277207793155120682566377624541709348097767148485415710696034333124198195146521377274867079198063255249853192424256634720331462910959678688183955029459376027697832231993387658739153551085241518928892645700345113814707297906582323059419514981397820470474568571599449414214718807808542006101560526018035834719872242895644017363594482305021251823329845467498104314540726674030672356065563883984117523372047243634400098613528112602708177705200395637586143259464682154576594548497667109167672454568212321502074112439846620692356207872840018726072957496039920341840905151218251537345594290750751489383861173824571141358787981347739926386791965805687176395438436266887023259008290467191157959358423430793831123865735210830154793365084024665257043274615023241990878891142950368105249514132490254621398087874614623204787346026842615007299014190777565180238409398178553016092086893748507289760369504987246687037508777815376440028594946362658451879251299176913381665320474193239382712354093657757732981325213563580152004805083746689989174280333688377831348778553783613890506162814056106673970676514685907258931364615489449687736264150953250810173759053275374710191921704035580999898017061328739577781382383848446615538572369318719992523641905677808849912893706396893598103063408619343213809818448916524153710646079977933645061282532538281355668311500799834192232787035061804734179676522207827248724392994612426195596402523743629619238963570285248840764298118364801059791796459721020513778678812991227432325366478817639446376613614733732649660578806033014234212297877551742356067770104237148896789466557554825832128964860162023113398322584797837136208737961963832273372787228109180299043434340361902573372295670792848801052450750990629666909552298413867633435112722734983414041578233391474883821852037765826314121077768204923146293495817686140012434039686662780350610276768426932044308212365977401023129182536501492543931264906477239925011867889723086213371172789003873841695953405631832356494906759854820985714661966601029294559891388459955540051013923120068960758005070056786995430522443986212201635091969289194512334661191839302338606604026208081282764555235833951793201112896556138517876951801101226945762759472010105447809037322702019032453998216823583347478939329341808450818446946656672340456095734691385268952926463763338295387045889069486937452094858199355236983037421595515779982973178366687443137497130183883118295657797538673941535389194234465942266816273423665179753507169896323131982794105343093968089519875208646292668287358017473884840624112368781006535646941070136028519319622263774445166225638147805853529560055541107985518081681785343025907956725689821031457690658837815005383155002187148010524188567503719161524554916420209323923664000726864673372317661723097594750828471924884581081267192413464481817393784750456511783220550601585430579105746206776738179439505263249329543285892724518127561513081270523190688154267745401966050400586399193390395145417914843096544233428705174879979321220474350971711723968779559543757961360476804316137791734582252559501653131687003567118730544626571666628521162973588135161247886252611826173241728391105760149092244589971084322261130605386793896569936177560162226252696543755364535457462215011515221516189770080711329107014085331122992559944984872979370301565046096954459214825692929370155772315061142537115610335050812281527847760494136924663652237828624673043856669877908537439038412071000038748571890760983475556847408121497546886148625857568206948873238080113354144515364929735091670755876902638012092145192475849022616908264518821566958190570189601976113748041841790539916657212082220370492785088009608402335518687979172761376898515631646407570259076242773223981386431064444600197695352455280499123209632981553148488822117893992989395323263635728542735349679725083692521159272312976384094251639295795033976449267402206995454364829803077867953219092854299673710342259574383771095425478001175019580879302862983753082980204265521717293943950474587021602196821254763998146908225384673065134873213988579739019106228403185902491763394630628908236976518468283503217302982682422524862043817975685837302033775382060259197737273193895584019471701181505623978334948899772175130601067996041210808419527732326633270796522209616859809741025975676766957651096210346142781798026729537435553560023584971945670772619917643684363791983498267601098779609709311138579916532015995752316456594764331262034850291462953342201391736397955611923079000953528535752648531884236779699225380683710340194889668358005149665044158233817173516837244884867956187386212657987910374728453486443797206338264806631988809726294785274807794598982449990230985143022541625051307176588849024304112757933757126527344807211609895408538337054197129595804810417693238253507717871978333836644861975578346788455813597580848520317022330707148452847389551128619404777382581446150945417257848037288968295199356485652679536385568849546291764577398972483703096569382524360264628211122960864914453959666403003647248507815077554483275353014020353199785647827585752846241599038195716731413902142997554945300070810644920714082489794581255184988487876798568870444112270143166432089451193703841147127947520277196112051025523384026534409361237248442098634444021626260733690804044369019441418760165161701549460195625610695276850180956699922809124968033738174512941002888184719621569698565917502164496185461846871672114814681708108474218619740714353869730168211707596155213788105927066043683039925802233402698524095575625527165284106834763619401914775800869561462271377643385761504947630864008181810416443441852180699496793798114701096712596358350204129337283534756585228276400932776582239927844446129480395725033340524835926651963242123591675094351344348810681000634650522526683061133952130700895402189379819590973207985498391042928269997399457119744348712585154692252470569177281239379008365147751843993435701103821959684650239530553432907844837094548410062253740642846406977670023325233661398536117793696281171394878987575971343015425081196446613023395440417450433127757914609626386353377251034154393705076539464252842088579478880266676722403411490580772413316498754439979580964691572783835994016985471130751444750292089295551084157645199302250981865067993857136899108545229938858757116929583680082140364142757381925399644981633203595008232874765448743075596264348511049667047108946825776037117211174100720765461146630572442287236516369589465229632200715366063901766777718142120981225891586400754916552310703117809177235779505737150541776828143911998904562847654343224044403772722204126297772903068828039041726008165669931280831915398555199302716125832876741005197787136806773239991530649602169951964667084896951154267993246410782787487000747046826840470435160698056598923907804940560393548690856188429746863391758807021334417594659961909395563490693232983197844217475965165578986553944074727767262181722879687866902780722384715591161735471295888948413015538716049722564669814794046728581686733015675490749894576567969306379852261871952132076477675421069896283230438068392963568586518948916034270899721077562850494278997895783157213279041378638693007987640980508832245269953509470179892228968226356759327279015041886186392296864127938914067169711555076522013402730567495232786876846578108413890522230169740571281758569746650480419459533693806138271431992830551989905177455623524297677787465288674086904614364154841597282265157204475434750642816329136427472952456096671546658811990568748083358133522506060757397604127893023085664163896443000672765226897022965018874610516159753964444517704030740606000327420399470742125783721250133268742785643924047185842423000785345368805301968025501180701332751574820774674861436571483593633823314083580521976459140525811763117987122844063850612490332919090446674088068201605515526918632172565512384313282437497870351596035262880058490546565460615494381927082568729532734401122325399605233622078504602614631373521557354655162007187884793812662860606455215242982704785792677664215246442510301008060133436822367936830910634726402153930689757920831303752409657170301900745408440241999205118940990842261771236604993821738005992381820886988186521502483434597538495826787547784335381845294988979608895843952977899641454249709425057067050936764789977801659070905604285451447017550761005154348713266177383672163540796924818248446576857067728335184791487769234830833114653948605135137894162625539810151162007826615473232971574363382304686793549068167697439364821861547058847594194109226851647276587914377402173071785877046415773426810764413243316277023469128841083826756110170176096673327697087571799843493347864166138680597822744068258713304444249222924903722241415262710876185941810768003310884474620187578731060240784381287768775738001223310412677769660809136321651221426401539890204637056611136833357678654028166186241626835967083275306777167429826666068272151105424329895826274567742693034226325151900162276524132931695306202573086820823595809449019906327905032766416990475334681707163550662604253358630434635606849538935433363756921502143517342476981057583149918739380671153923641368762332119905639785951340391508793423042516742504942665970930364591971383459641313141435676126108279792748684725062839717047236383968703942030167673434879628888454137568552828385771364340989689220511365981331811360607779495961876593667993829157138552196403788661066059304173357132411480832063772944479817826708015002936511642826212406469966293271894509133395464324044763564727018636637581082740264776759888855465895737594105638410287981556599154716311874434082502952509437172994087804927179061349655158496981595764626114466518982142668921352614107771075165364220916598514674196436768988278567593346982329545885327006027047453426497445418169776829056964222195445800722955448043492456321378496266504506051088659449531936597635629455207900012568052903203067418110810355465688945691807659300506867131914534258251953576800036285896600618899175556565151699126407443026843144570163454104420185849919298440012020505905690357866113627920632282631374008237208902895062593259689923354751362346535330094953263741143445622532350956011483725510010273292239593235047040721668128259456235947583342542344892125690950558250986170669038022550366980912166601758614361588864986036121724172241289899929303780253100867022809504398098714063529427221800450097281564938906518501708153515110345506862767052697042821620117424320674387516486106473496422925199776424515656306954785398174417075353997441533368560824427371497923033881053936823042679855382234469575080258509775221783187807537375921053239645137446640529121314665673618728394524114371266493142636862610637395290575466584186783477620861166502147365136939972087418063812543942889888405069923337989328068273225540227100164152066488689941440861836983509395679927159880013917298831608931481509984893447255758235494306289153168836944519100951607906219925726491435791962321408511965908605753171789873724852073336181566612665826927575820371818990630529095932662449138674880022061126671223031929005731780141674795390819222239161721943077144651162060459084043272420458732095818421252273880257515180288469376885718128781872110135176786229942533885321569279045250297969674954788511792921678442862148494512242151291724007976830578478768516228419861842718934116038027947462057907656299682577142547575746552940164989864315402733358324047517640464699193779647697552588605551949662963965608161754422432489981416838450701558429084605303115513083822672685770595200267862733270234659453078645986186779233676071868790313754098524092720792228116264393874315451506279769887877958090344682296832227626881006268604998185680651206835349727341201193154404105751152028722158886708471760799466264507068594480952537581080974918368374397054023735154323438614128540815748701379424557804452357421220763271126706923494409936357193401082923661132484504195204660635407093682399979570256498065467422979950089255466765739492450927774240446673497293226394080256638881122755316578112815864149572551401677229433173506683398965228072098925391734054120521941130236634251146598926411610329208965897301371590493937951525273544597034447119751990957721642994115988711153137245727987987377087022296877138390587965554909451634986265305403995792802299557852973765513074461298092696216464832268599010041343183060918549768768125732920296542526037383944889516208032832877835749194048959910456835716495575630843197013294577775893157390999241012216332117163908183359929728852520063001705597859373128362536655159923014756404539591178761210204046121590883823877805826737564081127048589766392934301056486533515414404196228601762630141991847095189114326883529796947750790106198574294799254488181962443030900154070861368506745504237076741890119705864210996806619710299294610573427778478002891175498855908293107212217797783368351442873363596860056229069914224424146139477940913791515991881550138323521109607247688143465911489812704750514558725396250209925442140699668686169436857339844612121131127104836206093163381216251051933916121968652932335844002345311636386069748689547325301090770599697023012843357987973392581498076753945438100875847527302927509210697086589336279448235639138084797380884944293765501137674761812822469056706480653654512376153246899952858474096460719071036258321071146994502121603176067081396814524772055081214259685653924036877189907606044402330313463994257233380940820595427126646225224093205621589869283803293426951572375364766003968271502419836077487026297005186028114457213262752025121759258146058086478309892127905053957108896557068140016499846789709528973825721499668671596658660134271234181715497294319362382371966936067609190623703796360048890200921098389747793091888599633357662139097441912869240737001534709500599584364776705260646259209183975592166865962240107335639962189078475336020613824920134248875031626430029797635761922938131085034182906654315413863846698102615019672797839003032086722925131037189356123777180378552521965048230881676544040410578140214401906477948467628736073571541974967311446183927561559494011741838258384515303725426647289235792208382333535209960667410003184556366701497867086187724382049055007208203924781436303933972167678259576802686342431124438318959028861455900903487288964160897464315866196162250399990201159531429270887500152390733950022660737029393975107525967539400316093917957703798096012892650958375723717377783512752358383640939169076535812328953747569003469955804967900344100049390959924388005812956459241017099733443672441434377021589968797291767562332629012266231785158203072641920030249778867919176914038585558046443416974809561781475413592272744626613300624697070550893110888519483034035897549767844828483802436008019491909924099691667108567187685934639061715909805707067027012981588637655486637142470760326034488111098069749528091766093203984722931322843682914811130357265737559673252040376371072370847393107580278195346134013876319411379959345861616697163864467166077570742347848243465566103488875960781959459607641018761117451101320369588970933978222549239609432586974984494849766502112260642478376007889339388707619549731724021425442204657153602773938395355666391124710683178092884909180569266271858363889059197101422550996828343768662345240404357005012419585070442845712889385118439180800248217082304310250115807152385990892312791874835237269975168551097069723541272653107519562206183243184651546694336034285995751442520567218814161403329701157361742668007151452687387378597602491901713301071546257161862237781719630119059160934283424693620034557577501428605417720179699694998034574800598105464504370116119157496889577947172975472627140802454713598704214411402592725893676664259105545637413956139901381801510739165651354237193716949300741750676942541633576226900800898825202383801250789733807710778098619231190699230809881041026487695772151618216788490588342259504102618203319853885965951584376147564469293858816539839173394120085136258459172614708156769741322278349899424305979226084189846324309195057100396675030490208747910662014924908072231915389219323408527834617024369333058357932575474574559493644796453179842221960590532955286423351005943414333565425837751644818764959546596359746296582235857214596366468143981751440864389411558732139270511633727698893765027107076259703944467802858239286982225268073860043194592838709093418091306185733600081877171842729384718211796093924365397306603324681165852289020592781503583977749021003162794700845470748993222331068181559041122576369432746535772100429604328380603169993358999970562284253226484188789736796240236733601075842065190356085030896631430401587779711714300329588614753461110588950624762782821572529554473739279666976339997088679849474687196604491570052957713211599565796404284616796064798044052310197563632667845038419575494466910522265705582872241422094451963191565835843613962545473784311969920880863216057118377061108305506102272539409293108027402130758063710990267102029382844143952010253635104728525022893546231168587993163309276454134779773214583795614090906866184331026159904404184264045545657041810663422402234799672476301697506751385654555123126894861262142022509520264445156915975006940829207619423617292299394801143059473484644022250810962578888221477987111240691364155563580828812252002031366822894848308563279061276807307118131407080212138763997275736902947852486325096593125429689200625339707803336528111251217050105790528166643537046417046655247716175816881029563269671085705526744451864384414296170912820880409454878252268521907218985571557836937793493340452859598210295794340550758372953620241299408624590993445818314229665759189834015791770348976029057105840997464741062957975848994135978761652509918884296509340762346481318324679258294979086523139828175776901332754278504943954130251179025220334561428332475163501031119478366245550489606434873817138605781429585467109445102753309099218711165762787915521500124266392439836767359294193062910919801490167227987534077724711637618797577840757914760139842893994469756867567299336609507087516443126060574260605677867030424855412827144018219044319076470517004944399028604686478504630591353021197732530646819422782325057093957057124259804921639816634646213071881578424473536671286770163039835892489306129952418718863813817972293208813896183087574490637754386865069997168728351931788533265094898970678029535284678278072035239817196702879549042267027841022407343999182999448300078123187013606195918613843461868534950255152668817968868515419993555033423739477424665684729494713506120065973309608988590059184742839573361066185623320605349105086868986413327798807442263651873935411215206014422801664920343153024591106606421177767041533009850548361187531512648135989136388822884922274843955328591646343047129969737819586584415651276098951473836131792142679273130729253484184729282244945240431886556742872844662123682777151260579568504344371962891982495169094649348790524958210821743738323981248925793360274100326434650860572222006532274875835391144598050105068105413733909969490353955590016607509018422794079823813470915030305757465200657385403989252315640600213462996826975096718195283763163686528682626555238192345731824157849680605554352795950936693317199086383101954624905565224309827398370358699536961962673008413010508560430315234080977519676220177268676529988052316881122763954739645271592356837516424568038718180125411572821970212326569689093744811951901261376058263977390717188754785912759684939978106139774079576190698493290084162899129751296027723909514314777963608255677911322561630830327854631604974288416201027228404773202828263034010702424169473420631704355096817240439305962764416857876574291926269868452266155797011204392113762997828740031795788492476559298814680357960169383965787429719888900324485882267183167680998712340894471662198217598970030994316889782825156085436157911917691744115757810078740495800901605465138518069871095749252435644276995101799888752065153998439312991756924089525309441277878972354565875729584086241957257592596006589400060476928825081481072023171263874507557412798799215136941634976434996380266437926146418793781856973341697508167860130237867523341502043576717060240905476728280160676605776771757207055991054539627311736685320217631366066587174116910649028011431538202078800306182167431986022593787889519232135689920075004213793159816794612191035420046288997420190285079879394080425629899229745772851225342312327377111308586617899522764810660529546796205507489895254508583501878082707260260327168221132166769164359464158238705589817169516762350897745414080812284009212958733020654238108201943851462160614703699482457963125467310395634192553711580682530846790546482294830258583219018295373997202440717536471337726317609278479471308960056381952011502896032784337185795097906007073919436720500687295995268380862676807225261495530660025699710739165273696270390770023262657725283001129086501109445807989417776662259910058914087586789016195500532615268324037074791220208703197385410100978111687257538144604817420381297367931515758637818089942677789699518285783972414091096181327438008759546574533878929365927643254045295005302154430839462691886977646797358201834595077994399740659667100455291696212785044585542603497118258764207154050119022612756361431473093944990559230510514531896348065880569771004746413179712835265050418019809067775396708855163387748231972805102809190867183124424020761711813616353575182580981436640641162329523333409149709593243048273687916782605838024700119151123740925578292180722432734610154192781857791283317375406178958773857924700945660674371073881876507086436174395096169423661610287011521995839517339764623300478135777510207579540207250708338264390671694115491689036091566242149462255861614762541899938941807352638149772987512425140168891295773855769192153403716491180475340236594793128901880441155724862179307469345120163098480836421719240278465221568476776950914674809904192825555997279149797018830479246919506426548129421665360827736356639923110897103781043051485662691299385522989638252154655703871714905685635573084508578029651224750138886968367866146499862399584910954130520764749588108907696252835563504116498820346774495257772474193309924980945526466770414974577008290199861866364330693016974250426671585069968657120429832002377102067805527210960785058534569831041528329347868526446218656385918711947270982293585317975871079836338410908908245334347061732817775014167672193868424856460674703557425062140686426197556352045423694715050051178964546113001837236815875595675590101596111788652906541420738011493536324199533932952724522144383395650427847660543660133610838726284504049593258901801106499863306715399103821923334221961541300537263015421337210178493528689670081416310974997336074945628239786120509361532939919568632479808949205310654748090394005575722900667173854025268428180658757180575408680313179862703853377301027906654447806211281046605568821923172673173651679233258337935508817949765474948618828551728739563443652683668333571600797173839548521825309737032594523916870108786644449518803805770928901335188536656742247904079572046732530574057344442125284909020930798834453433071417825574724159327435318466131320076698918852401130312481114756912895639303349117676662293427383749760642913072747781424017908179412296428414396967485256455605915052950267664660758345614451967070465350414950909606070336018881734371654458145219949045120303539040334249324595425091967665827806959753446814050342969842714978405608312083690931920024106304360201002667173815765136697635820756344224187741168183603335604218186148896643310016235652766215461915467853221680657407922452073963444874076851015449799546559899039155827960846179247178509910646735017810066032281210638965287370941860081506179987099860119239997826135548248970137870641767783318606664054900121187459014233773494139895107933145071587197217205194418245981430721310182967230127064848892803157557625336202205784322446167567502866005321241624364541647179712233259771745827616591400412209493609572650600604191728133029981317448165025361323913568224244374513212043546190621643484172672061678547107551954020443105964065320838527477992260939369186421377887912832668974872316114694817271044190649171262483437745508690985123195592899120194355911723960174645955320436592699741199770192847043701050047738243368226799291029302732260426821854148953923671713039022246194932687094133087355028652197388876926565475083960211443905296907765950714306822406934495937232591604455449276591085084071257410119042067589442193284615414235964917247551225853621757998747301406556095890001425822196354177353094662877823765035797918278911749972477328387909241610704620270768264106617875511434035935318133947782707385715880713105167087215718348888812194006357280601775407155253737457473803233969658837912175681090701367971381133986114765944666655112167357183469826034775571596065522654965620737131218687484774053262437209392012585354111069949653865932513230716840909511150452165873960107208345280638759768418101243599140042512401235394280080184663433374104271413721799379782584237637235699543189587705914284831911151930031227488790448600650542795758286398787139416291691153727252979740298315576746474039254395370726686110271737866617088022536500861657951354248305540554508627561533433252876488968144045061840439461316144370152754027823052690124014774429769353560535026678026214436867587278259292212023948256619348695650541491400941530254772443532921728662782424975062858801918719959764869867583956069571070787785655828691186618588680078482909353483516895850300418739271470206749184988217029284815670166926296117678597641286806467797022429811099680618132957625034069779494685668789082708695071150699943223981619798098717244715847179531632168013946586628354787045914501135627363252740741314977835185597665418240974567886413382242475787255629173647200357632101747749841594399485450111130596811424955749372378117205163952379358581381980546684956762992775877318790237935747968265591314557824722806713517694062052980831975390751097174254278314875262812725278452546767001456427111675813830663199428096445330385200043229044046226932677381911815151705676736241817395295586731918785881379282032097413793930206039036163099643674766355130780385736246841457024741366357491508579897412125783685500700653369453165115375704521086553907276153133931464129625552997090401311218799990741082743963413137405063428386569874928041890603753818402641132934642342512406134675606465859337235904417473266522959806819055793304236657218383264318182077535987530202044199083680286039582893502780961353256718696211050198320341971102233298124622489586346762061443794955413060072260643773278769760615498494998524698542492880796458842645049101360876457523974561688584431831760198534272897890520143126516517103158965283416290976628373604968819695469151310205472580711527127905831780558047185827238391337002168400191762216465764497257373966319559467248073916578361669819102328026897969195656791719525540179159438428361877586071978643737364592096552276728800751719748900524392449623498814733344457567556609172022731843071056941682950966335703204081069635612047968608501015089118753653903372858306187870969636714995439630756307928848294860257179418869322343097968600880880730769292731568701012408863085706649279999756849353778909462053938800249003354202099852816154564091451580415763835744135891106457696915959234585991123340806380110935444840680170012552821090993550896445334527724630637914483380935850835780226121666504104241617671030834292758379476802631745923003921853538439067079508112731375467503653407319403781877614469516639679872282002436386060321560673216159577830457813046166640141570737989482172743415046361457176045714939797762674223527367622118032245106553079932896367009469941481773340296123276664948959797050834984843641847610934191298822897594680569885254217195380507907920471564181199575510261548013781869325599244738918027396544938827353991803191706131437781239516917587840997621431149071894357867788576640967999354505603434461300758075119083805346044266438990433934858092275722413506766624753007359593126139274203944448514251450645466070510142614699836972115826748224105288973367694691826533780153020016383704309764287186539271223841595335643816372193141863257132622938932593441367747272548729456057362173962912850084260620142150508662600505656046113116231577382097983689314398285442900683811908857584011008211128557781791491676468566220897884562534217604328687389444446567695100064500039303682343400074948859523601272062314415521046820950849969261729189318228880055798745295114473259045051797296306358680685161959493509596996190640729474013784347324918101274653714213262652043208436456101678446645453846849693202323461985772560455826459912047475119450171490921190585582919659978990895646964161736839033722745335870451205556827933728029004780792751342079607379512011678080709981120607217233254791310294794156822608458948779235808420928191285146813949249716835091027175442676641311113905508639166636392929974005656034416978589728598896282949981619306889961742567276710174455828740878366890006594159907447985842806048129629934791290993413084350598764554373203003668980613796861807333754895053127645269196896735455596519629788386674312820806757869514255540041564740990173516590323285610978018196232356141221001919052863399884637702275337584687033317289984032339409589681346432145707384550825125597116056907383251897891771545847993887402203419421714570568473520513244582137371837178725231675193388679892928460367520057177626577752823514522432558280001380731246990911338718226418128780068313521007147410578274806608008406865117034698234750415307818130273618522482677585075638270355965111451688105697736461084335573129694538208670856610671035536022364233769585219830705410488921509200805420068455442543895953694846304290107719204628501904840569950735648567795207515672784890334508262466474083897390757092541775460966471785528098792245097698393717665366790663432717388772172115257448843372532910351894991220302305511902529871606526722441213642547637309681702737397165613204600221781459240751187322348306876503174148614975566774468111641182211708350676941305568148195485711631767593507017508595842695269394519088411812776588791416576583785320891282215150189811516244596934001587949948254176133412599766041877234223735284424618310860547896909700468794592232443465457078622215334810211548974337371893646721816438132480460773997755594462089396659110870730172012699739931090335682510880143422147749746309179500744430949355198775307911141070272791035560911298995999826835703006234669562574390902759800955069777934833576945448207065922160560925790837716250698474860428567022134156061080690640124490742242358241776844133317307255275038429572818176263648281650605697970371725600097897396701512498682288223192895901422440911024813634612564477530545324621733425046637828051734456916161917821936580457437626950194809419066005045555756287412479219833624359193768788330642200952978218047987074248172396938983986823199132579401888742125116677188016248877577883798717923870445061101291072347255981799111613127918233469523515612234350794223671607116208103397964346669385889971361898021593504314940959532856983358552197810167742473437895575946319376431176210075091856615654581248802138023563490389759983902520388246189868864980849480088285745380205406893112097474474984442563318371373449666021502522582812120759767142014278717862517624717019939327980428731370815637449227625244861926870984345584221626967590970525153732708178868194297120120598278749782373684009325281334716299845287683449956133224420905526151813789393227874802839211080607070753414452153663272470078986458350591279877843611200950888858527021893475735746043180093895702332799827081392478770775830569255998263703225889796377622262811420001816393495621629744271630288914208243684389418292645539643200916436363248544786768126835921970153522616815991247114350684113496009039403173528045056960356036839095282492765876661126833259388699236550327726671867452656772544539264872285863677948297536493619208929060041238562522888669939914376503845791684228076914761386146475951085158207179066596862389689540566779113586356623015490122887996250300245402431275994230546605904263832434499619046625600311070378520660508059952753348992861118177739977423208168255091073744592152358978243932263804972012741079559654397086480319529642756171475553649007869446619335776037814148925047821035911185258957653709079912033907063774636085049880837267554032086463871232898568371528416341271321565877750055231215205821361615323930940697328254188783999080543792259790343327525177233872574233505184375448684498350076164193120579875085454161580888637177325183657309862693219538085166508385180370091843013856332712512371368110108123365244595573914120672846281885623450875471648314526546647569476813643868150577463728730191228459426926143438750978253046320026343845335689140939438253068166613214206985467666782125479261931178805582348223407197783853236352866512511265125038913903085339990513098229523321372413664452688880727207452058335395244344368444273991989727486125779536165382117034584887158074403101593076775711172077272180186875984686676998999482787349128554075972127801791562891754256447974067717928778384623670048787970872988322779255910748365111026831278479279418371558426652595490982091632960130742076163805139993899027100251926638738466967756120302904409272789204626391169067200032192725846883197943594094218408148082558582877956275796348593225910053271214641808174934660412448784599722476078073231651605834161203155413829021845513709869478029440932062175333016321624728079410212686481357535685287757895335452849008967386766128823659519162617991799171014741924627957357112432768527037870037595343443601386354809760105017146633367655696932836003345498931032080193285327869124086585409636498218658869581845062738375857047990765954874228584779582682044526122231104884296224041672913337402599615660950335752116186788649298135364167327194822380823725470596682289341077565412968964761071917561909786156909124163125113165866969282820224889097878873639942146718171005504196412791184036567786691383473770272557413996088448654349127556502659555681866257895923853315154987987530992431620890254899170525007344529694501477292566476083214384634318615098854013365586402287443662545125572083914127606490292843827108759472244741042176518406708721332580857051863675494318655764755720177938423439857336709222086146600230312690467456164229057818967456814146960727843238459240116114581461537477349728886858384059818465841520022448042860141449694498903109979205890064253080739195910460943557698188835445424271374958156608984518888724517893346928844514590593758574055618644259906022970024211736234186932962289375418878152656549079335748945792413398172000511531003522623693881958698294894938132971289408043652359644169009261294747598177996014713384982744948681271576310653739192838663035872757885246129619323894758769576665152978334394550839112404700723605520024298409788597613811140354695042078924173811710418946554368174921227237301226123076796298769972411536088728736209094801928390775632661719082858248924973623406061590190514446131250609328181284667086999436085111449330446478040067595792331433674819753999156288386692301583467215345529771912809283169793153160043061257443511608384602794195495252498241844830987190085095622319816392814485621793711640125662652449257366399812344759624200280965984203516741286447483494544087703910564355983418846593289920516029957902264848083990282593194458798704831175566777938194612235865011033756694533950131906600650740496592835054903920659423022902994124706143538292710775263330212352457031697208239803019914903150745084998819454263950074392869108015067825322517376859585922317069519552571530327532557921940391746113429226445121767753424611898881510818605504758408458325233373332967711083452047792644467267553417961243393927502860474291486892002945988509805483783286000263938068443458419961643570115865005236238209517578737634644015320763284462925448074549269628624085153558093326953538903031223000942801883220952016947483911694746044875743472778410821622685472905638968291896734570712224825256608895011216080335936975793578838251341556873601969082013946391905989146728515603631352229332600568763747133584399394602894005279847681747460442869801749369863490815267113950847900087166494577528371130110454982787027278380384424648702974524244745940788915798117789756650376348658602212278990982095810076560770007048035801790245538413892592540057577292187853499232204508224540403717559607626816238531118157047696307675346508442346126587434717668338491986949039630685673119282322959063495719034113936903924449070942955395447412409204857485436461695086017425218537526592946182029947721095435653498022177804831639140218247436093876656832603838903620130745421699303209350713576369153377987872328365428020392863939906004797162821526339625140020429934572485479440299346773072945057052721549862255762086580969746618185769173648351902992801570465549215698656258804626880469803576829532466408702570874494859602608753212584523970522873891480179503718533484155822579869834733947787887382007779956178606940482071816273307039913912599837404153983321163903381454643496586242177236500016479200871645089385100634771200165773204186478188105635958005002320356099098009369845589670533251860204295799261615362908259569806176480904272298893682237807236361946905297912878145015086140910431609147099280716282007086619164042161719104255798852345175094632117079822617143478417904941413071121334364489010062204175657226344310142094555917608647730831023011573092318513937186036081594077803542472560009507544492486137816159007306874053146301364372231471477623591463652125495605722995205463745169117187429254493807881528473070593312831029958660157243565601059643346091637853552886712418129027912029197705139508316220454020911443102431700996123903472208385595954548442520483769393514027270367386297208253574938841955203647944582300430928743895387704786179462652428707527899559022068143328454376993670814119968723677533554723270808116028101327898620989092795192002142955331551377632849001766359784592909988702681313954101470061578226470938431507067519721227824272474746605266869715983762881382841962728507668281568640244025668168140098325128054359759745733639267113204667318205644200748830411239584258249977638531278805360797244569635048048548194983314694263718042316535425197133438992688066403483561335993021680038235571105810114080354791602731952773576411388352505174219200883097775601094177890343526094190023346920792193311302147005741400449166818813112464782036044062839201250209454451199005049432213476520280915822859548765868378027527638841972041381344516656758300982852345743676544237007699055553661063772064986155460547554161829971964523756953492329342435601256377516751339097971887493045915990139056308926642816864052327046863174101181096330331198471685693935318925890906280481873027456084658867403328718520533548672014406537005996782384710892270648053411008637623332262842012410824820076577780457592618785124852748268508830933892538512531253704720863914393394402463520439808819320694651671480731083075823760461634828826562773105179363211769145456037479564264091775525375690637618190834610470663816247463032755190102883732648566662026002820372031365195373516660339889394580065341652810194724911671508034240289781808224448735309250068180851339535550766891413584405907280167727697983224995576811518576733459228861983877226075313965752600351120025726983986309156454647866074945999887879870618288469022554448627142191848514697730344952664273511435511859186592343724003175903595677705948571807348151445308042479186460157602381335495888070980963050597531706710689603753638691389811182389088623232978771402631194208472666035747303799494703193758397136287536537554441903830973916812966150900980790474996752101602523586512405365367470404112947538898603936268334767879101954345504492771650030275972988990084498183679086435958330310463441112074302948017866397222870519811691857161072025570349338171496673084890920973911277441018958947141372213087488051102547161407648741103605780945673571801267930164323021029606765512580901215794347394495700797653179966730352832502182368585329135028403702950107440258267864793617281100721642690722613700241131157727896393636805722314089973155297259177481899997249015235344982237640187912276479627531762854405703208880051494287973277619935415635540271145177177671330050721222588968393080556179411090794219399740793435159635064093265651229134538545885030483693704546026393421298464520069982874636192729270404277513632729524459183949870386141131112908532467506953120853160999166262909695239053007440430754451047958115384932679648305061509245821863817408464638451866716361158969320258912590044466632195867143372511012645901910049533808526020744759359616755385316316175957530355262129040636401887262909242029351533826706902821790792345195776342584934563019456062151627576983948952323967960861217737955424747197520405425413988921755049424524445667269464216229487543297058674997331417660745300826981951540768923259575193186696002514048059814304824692761329878317365651644489895734452088356054931852851235782664675452045302315787089854506173542318829969586232576681688712725567394079913780997164247583524007686957636603897072000378638617124539064993155727597917140723793196159575785129492043688688845088973602821008933904008668751797948759488748244551170271489717667911315366240140886591712126534353054812706799480111594434879697338258802596303685357087638113378904564705087416865470577461644432450937805331499530471760636508300241693723709965337219450254437122675680183532576954755031339916593597875948220706512222827661287747787072773626132830603576935738921666273790025810514959836941865187690523415445776609118241922069880182385227863595516657728775697270191815661624947048893854947340133345119968155470164387378429139025036871761445375054340575365748165161962064156036357103738219835462000225091033653105158592697941444147177370703254431399191737246053637230870157202946649205276752229803062103319579036514611539146811979202194453868582403570413483214000404429668842529336881587384247245324652815974613339902142518843007303070704291617707424584576285212918989127548608161826360670898402000497174614147658545348277810937841223007930915359990540932771641839853342056235601568164498738700425537311307785386601892582550287516893312604568284636429579947085731270137033360805660729427513335560602330074569385418994003964719137754075288991889793064368323163975531293159508400353996527373391418345539096274927103590546346679010204589872564782658711031989984176472073497702077535046641911069371354349049366057585706988282372604766028176633556442581778836421454769268600637020530723927669158391550993756480205427106141445077398351940762037590703380750753205210987917307890696355979270254429735337548442778472666655395453294152854290866274646237572112148427522994092674989997927703246063998634978656452685394523329300669008116902485306251799056493898312040839530590584513002329423250161393544215618934801567011142915407972817621483720872204606845848619940587549519824826107459954905807795290481124433088242874632645904707907068456649837851118078227552674191839514848677885778127309782335181884961149453922427867651538992323812855310056058510261847405361937785039660655408803446204436080651195750163316529037859041161008219399336610017621174112384130823960559170917848258504201392306490241868529954627004000064335033761478059618564284925446400104833344309986638143674859543199767374932364848169011002901275240034262320277612449901193307325422484413006834170026212364671596095559958701036259133212398947377590783949412409452813390606549746552779238091001518553514831261017881928859157073756173582531621575707677260544303942130367249801653726308529368172878310925417926450101947018933923834467447044603996576772045015465639226955271330592983989614188088517905361706578252739984026349073785269110234629642661085118144418152762733994045340995314384435045758421939409225694583969828990193324842740134045794695978973614084273353800326821281398371451589961025698145178829272276378646742046529947772974480425843208892393661663672947297607666307340025418927687044481164366350514718007531970879767245741840441540519444570381716426819963169483150660233098172539379303111823100832428994811070958114513295061530422547615125052406510022647024568862119732547102165903807892839498963704136663451961047867972505810671407027200841193271399108074911234309854482794620726021127336359122020024916316141483935770563727131135092508097339819378846239381962828373098167679703986005463812227048957152136338986854561240307091708806428147186964972902862382883430771090788803204836588826215761963119979175930954609546222447091811834935255505874303204096965331419056684696139273960038619943562871318709219824291709107114487511196778956525110409122099288397586048384955847139972406931826210020597365957655052060310265100176033285588718194052410708433914922337582686485346457090757839258421040305356725936624711240424767196706289183699651424465161535613688940804003437934122707166311260801697802141176781760553185638934845582159942474326373361413939388409868245276875692606683756015645873839811769072822046875687730628389390692721767510934461655759979690763111654785037409988530733225600380981642193436455594820110724922692376409093996955530010683724695469143346413809819178476706313217129120037124519298171453806581933886858563052197600985936431699263150861954550537812295353307228353178228574399822627427039565461843095435989551792806371773784472543248432388178201231941690250306122938730598042144608239777876783727572831603247113439802038012347208088009763333983045807009508094300098924674233644503687485977600968137460349577297819284557899587758246780148999287485941974162919822398440125596579696864515153590866775306174933491093076811817944482335320425815917309949614892798688711672599748083100818129392016622894377273405431145425121611761064889365431105949941221390293146287962017628651443657388510052405784148822293775855406371122765484512286477816882512962380407905612194871436963748781931488214781515273861434053641778473970470725406093523270258333469579926222493322434868399855467223058263050898014963413272740854739133399458272293072877958782353638552324319507846831929769346707754611636301019696231866316521357687652806937603595029931457783146173853168996423502283242898118515067186665414548226534084435410138759867555488387230494594520179224250041206500047545009013950140329441928023890258927389842770957282958865750309925961311674077873765300137612689127638411653470583324723353941115534537287839232765764544276383343188033454701333770180059974488935056372702432850495089652979374925951389909336940936127675679781588335184331665931818379313000617464302203289965227775639774398440377452380776159956380857692155024894343126273000371405935614566526242817266336984313121368320905526772485382821318681713016009803897160214835314695988233975675348009876062273731747749746680647697158862944315473536597796137408104809810769912496049927581910858695365896850660466742230725325409224527307790372677575743062379447770323382928377946409074808507364649604133615818360157787054330696421404890175590748001626170628766605432270218944446808983543598843876878428214812226356695604048492897052037068473030144451626095839906789678147653602770058475886215397801163423405164522691967963863079549944778944433362241974488438291719335540061955243309519278059823811063207891064962263187268109770159757427489286829133629826887113192202850877214997381617917254692192516679800287521309432032174268761674882751026905873055238252859968501182173666725940029401416423948123243008608045770062374325972618583449967993701755934122616213572764068323735895172926446495396271425895728609223267396210685910856049132782135224489593515639079245381222039024256564321601257854329229863415652385297385913828626950112189926909865444368653876843626960406886987107723483843170241399904087887345735997149990800778151510216484154724059407207640216820477944506427845798038701391201165476629085938893027708378819000547955842181776736062134742883284665756023513643373934718586938163380917439248018148016026418425629964644903337132768780217670667646041445936373988743334676715991987692100823048478369184387587513284587903180069378444895569127493838826348647882524829740386547342205525469964880417385921519812117227758421661145149394690820189985031183648365980495592404405474818669569363048601712370536868074936255715499494582643676369476527299951626133743541798125431509293005084254747396536689727544169925803072133385075284025403805556118591679847361790114146890427063377884541374203800850132776228924084777520972757188479920531343993459033453888347438461874673363378721294993039137544459849196613748423644713243798098290584961493396507248148048200959865013889552273462610945792890745516721135600324219908084633529028098960847377206798724352709992089839813914103019104498410689395598333032213692363146103037016361479387101486013142952247861527123317568070400264197963728648813982730016682517111315762377561761240107155137519813081295068523949349631408438320294634655915365563882848145387195738747115836471414047294998556124156527920261510612331207902009119562713428851403291976682375015967081083194812520061280771518812560303620323281374653901952495742155466346966693284502053833812669802358793084273172608947616039466331942409951997984007721660782175986590099550251688222072406627539971245883036499349308123443951902479399361522377914347542689849058087107632848723122464465400094348369140967492767502082220367673757096847885193423534915491371835956468909156493432980104636735651343271291786613479296905544566303355577717678026704667171394841781339002878453228758989730990900753577831269791093343439120742425839275943110534196154801924837986960877698102540915592929443309581283358341450586083478674773367712793756656055969381084727072221068750939081404758818893530562940953312844429341203419660259877213076406370946374598839305120643175472205818434255979036472245846803366504870388620007182393034120769074195518880288907296240244709079905608383825569801216983196947241342685517491520306783227864958953732056675656433700839783604972977096156557702128562709056378473854647592812599235790615891960841751950163442726440361872963222827078066305576162003149889756037712171170792039084641183516624475291810630051920931877412383340753536928213041705522210149770494310035697105851591811882331051839688831265050756215060832562779647275879793754160989690566355084214608138782036186238354364690021252107315623512107886874471368327803953821588442744683513525587084497624006440560813877559690739254497332724516868351728162463892164949779666239924987516439840001310697028266024567693632639991164659057300435319351515241915618881047210797134349103711939789315587178903245959286990871939337250991684361577026872854664594404516487883374071164521749989486649592163175397279905079638683316007498752484139552176381205310256438815064638686227571331810474663721432092094268660225151823787072698229448458234849884868347451998590774423063256353353638227525998516794529092813682684824556373019928217423425689937112891022116400000463172815490665924594200540326286658425956823029488146032806468359726589063727075491749944741742190929130489236354745615164107664530998009531435534019538451292578934227971760283344435436820349912602331490358536042774680277912218526197023247055190868979037520730092310232048115366858521466695091417424135254993205381875152786373421104084539947723251189411742727485431677892012570293768129660415261274678839712240668739842562900089732391850735364517207033911267363010616412718609042610236860762270570304955164582499731876996141258707110784915249477098014414487748124616451250962049704006518946154536058132591337920696618702783504121812867614380771827120233971856229476869489705962703522364905789060022583804151207607934995716225436038949013630715133898610400994518936308722507804923350810932176904077901675516448550154921215871039196209905337188609604790642033907390757334844569148234816471485160696250133586149238954175259223623548322348107691062648384644469169941878212407246876019313596170222993020173372750413433877304036299533216953700099775746935334800219588729423193830154764990062620335941042130591745301421399040696492326611975278779852575346803345745767371786345866560244070438864462965770260246487260331216202861544109620855465345071335318720006567505236649743523879013438536803151692176624756205217025969132742672714801917566665913655157090479180835619009997493475728598542493357875654342336914948010920763467415535436164885069233415905899061489717943644513783965428825626771803974080008996533913185478053342780526506686584650034735421115415194479892075720011895216925577745503501359862233291910482484111805294815293110573952557970056142562495787250141151387828474071631347880409875261585480474605994976863973009926635844943386308804983702552941821962603604063422126580361125124911385054942596273093734002148997486736118082899751132662143089839868720265785389641809554167708962602177997426182563247160159550618654996276114865687693999183627393614793839248879444471871661814781330805801203938794263904519071847595356227039121098001131901838976333002010163511775877158012984507345798770212294339117825672274514654027871111575397662805557514287247232231075824858274725028709447517409518146354844088045765012453882632018488309171506331070607198245205370795170761517615794228424882117448361428278135660259170344918412067284845508974192874215629101104441273220781333584235572086739280020076705832256842596666672253630052210821957816651894304262152475806988114340147834657442321070599731330414316504861981265798426098523527174188716701301213463342601375346542671299773013054351470606486625777893108051757241972520704691478897549090525748655330744628481096236893830404227305496282961900472373857401366192340683241941959675738934268912426217756913210196287129330880669066510910328877222491000031696117397603565523410391660323520570386568164994808299086621112549734106132283750048911258909109545539270740210176474475067780463724764885860559349751935557862316644482265471149642485197030319274370213529621581350426938025764006134963036350937070906842149302244046013180119820767859963007676997445470486186852224778365511258373275673414934376295540603730941079499102843030746221230545912474998315441714502654333132623221451829237674491739615184880305795744883481579136963559605090669785569529833834401303650587941495939735759979393089683587769588707091112564882303550534365111006705932173743330143458592020793438665216485934048265415119511206393437579670900407143881491204357289519489652304858813024526751558930777547614265249320933887239390006080302793935029875983416894269573268492713492352771920863644541191388459724290795145599338230253314878641030561468294395223533600847664256920912892638040843840718296593780734502674117250529114386544536553789559517667258831826240464338905234809216688373996617773788621811037730903126087596993350731936317295176358700717207110484333733452148234436794759852019658194589871369786558797395230159783275935566061556622713288761826678623543195215989392095335426258733939960730057468957337262334286298977082229125932542873127667983741050391004582951734753601292487271460258926706035546914199540528913128254739912311800837539077936598488213450374095750840294232103971882392920775539054175250391779565589234094359444426968860021053127067071953811966244790106495430327169861246449929092197450167108240485569961950018568393812248029359482981012434962978779687494741298647705628762883575420586187066636380153787269085702531371007936137397694064079871282760251154727453728031776707142939327953685373179267081823713481092869109770825840225557802369646546184030651735793719411591779270568825182775179760768013069258511941818732592365806305835367484440042220795604620748167517158148173770719768072425639720769736748257840710598335451368783093483435529985615909886404292184371037519313988885248215038120356331199829318746068104754604733581943310049262396950777043939584923107503502256684582098436625597595003621705614091057059004217590661652311529079515979818839131711261846190359943236981103822813257664617978712353201551169878284146717407160874603994972317372549646694343758062013842407612002470545327936768752948517144919704311221112242312375709357852478174641033772321772279547683045619457512559577930135744135146731284737358309147098252995000782918532244790842760974241320242531047774686298553577198187657693084337084599678572105332506039466799242015674829143904874764080941823565544002052857748964297500174746137402730918915448604685425846114862573046941905972850657561173013358369478562738278060871191089192539447947627025089367388362415869400223115542939713270204852269924289315503328340290061762262515291697765814416845522089257401392138001800779683031995371997526445228911544409660801182351381403621395728329310378578655045943404015544012266582470727058354730412247789804314641368373237894338875634999860181894437556274670323310256729834998310289681956149742923523437439562128117322576640108847492849203295539420322021308334793677936795069147375656951533969546170212591645870146891071941971617196256807529210591261586609846248853990589039512111057980007090613165453042441543851923928755693301766210883912576264463613146283741123804368533079419012078269186620523072011073318617777374654426051499608584424307263120459902919244444868687682777291132048774252526927967313529098027995071321562389181837026875639526500557968117290633705789180996855541266636529146393695286940374364276926935159286585658578769536862423114957000219621784595461035227652288270632546248034911665508504280928194547810464176426182657629614956062298847968983342029427294872592749686102582235203497698896870446486101591553161620523178309910383766481694822561362999953061814456294738816007729429861238098481187747085599237471079492756259475699605176331272097224249038781897736864077732755054933657516857713589024118119869427951967903381337406555484456835755266054903840412432842761079924024199000708662228702470494510197581206644646353081678447545179861337843300039043087688110228114003430718424877761171057380277324080776192080185044048787283105017975481752352424603933684869079695326841310651160031803238240206015703080475020470876801732025440917773121955238647537838789054206624611132540659921689481210940909552177513759899940389083942526517916797155729559255724871482112462707116089448607992270336616315602271578959534657768194494190861286450749599970499952347600449297334612378779154701608127126955607109034020648571691082159276675121553635431215721560721662499049401840348077782953718154912068140812171498786465040913838869740195383241314955388774607449825938753223747670185316666277447126487436177064727303014534585795171020441712489714493572224755277279694101111763100005685302089149965926949146854673095123632031452177428540593975732051706487505560280832932858956052849294222983162412656795620230158662655862404023862297567435319704861101320031848824621604157475598485314275586609489787499811314534503454660180858305020116194655667790573023228088188589053558763997212279906471717690699193375863837812030170169282768098290005562688974099932063692253670035761106755031764112246381394139793205364427310166550684335275683805633304422723835645082956878597484762175180613678904683720341726405667625823580757387313052686686422598329213689546892247600506528476074448325003038430792366919510133136308873590274943258428068898646156625346297403542159191341539465972427676147226830657765862121209881557006862357764903700229398250608741502862312021111094804257716364543178392885701008790264582026502906684863092129239034663541804589579482370597454963846936442066676910768081328391399855251787503269235826446991660522843211594355734154064096821654767312260954664109030627639289932643988604926763297491168481575165027289810842123476821087886358095752406630009471599658484731929245812781877463689232202556044546775252886547904490614134695745170644604296275207785502825709870645536489136706228611054179772091301140626189486319617101606891544688165627701884215677883150163194417739528309955113666073464218227249928742387955172966634200057974148112012983311681604711218520110175196385560516493010779098158668365866389345243756722077225849682446341345669862235740004983922319706633984822942101859671889067723379163466585851465124707123850334437490473547148881073145737316447359076521270187008164251613712580622939011215060661423877703359115397242884307914642953166711264248622990009134626304074147003640817226455566002117111074569768956962489400321093480184758104860939840892469058728481086356104504545713008110409758119434876236348662340403053115774111934097244255146740599036678235437693607251390664852171315061901958781098349367301543560959896303501409156666838039114459017269049708101929233646048262012007245133170192841469154168646736006737049958403374029776899553255312998593477316789781721025464928217817930319141806847307954781210275974000111969689220594892432575974586487455098354098851541013880734348024658892837165317781382502220669044612826610779326342744206808526398438079782537896389574476491729439463117818300174940205307274996260318801175810560938555685418616063326271902049614760390608521817988936640896881144419875084253160116077791155366691088769180550285170590394981104516540453468032150415889784573429590383958617923065274302906009911158627627343808313141551786362786204912132385731578907706532731008641414086965243876891795402413260756761777395955175459706858992615231752325666696071294654988102129720396040758184244879506546446292071659077840505255181380554825509491298451624991427206899447473993129604676989973859057249610706733953200284886809603071501407683872031917880634551030873584221625864680277778355319685679950878782675236287321554730106125256840736612641332896100436886679111655696476123423001162670708992185173813175023105390841421684331685840694140206620569086065984148160005826027953881472548847187297501672084939636189509118170969289903951420587780852686539497311347495649904792091366494554535387428857431149937739879376056519220189056173864390010971627994979907870332063372443677188570030515589897642845740333704933162219124026496996049634834788503500673439946231882040352837479421709051682088806300295034564541543918538050168617724930700841651971131736471114532960308977399759383812781246854899298259563754446421862775839213488680597728676722688650511873896351607276501708819195035901028259853685527696218704094577342206719851612484907749956749528588123584648245954839975854049366995670235252299367288788947687284724703337701826810805490953954918493775205941162907982132885151109246820758952461594492882544958015494020320816232669369614969661987268364961137828727905744906115199476825116256036330566478335345114367526486190264302418642774367412880556321895782190400743894422106173551300879008559527371111417756724396680627920538708927381146150933187481686538448722905877833559017614703556097473805762553553608680830477695379889636551607204706640689978295592119631219272229598085085915359593444190127680052464974387530307247214314153510986325868908153051225034639706270451656587914051311745990342346806763463632609831648635969724323972977240809321217687165622615376863642130020341304903158015119433481385421279009526811960571219735762181468917499868125808337796025742907963035961199735634469468912728164609934698345495630379106925757663657879264223796439780739258540019257793328093640422183243990208332229256670704178355378054795898837528858749009838051871705237281522718354901477968785282263940918975179453292004355340763269231231775867719697844625930820063382198466726781250856926733740979654951726573761478041120849954716419564572067086262970583069473339929471300940346390230736975958806495874267631662700919162255900310553651926882859016940207316738855572401356732242037426080881403300004529512876779554163855648126723581453096592286629136892458737633743857270940018296099879802665071215811312045188330431094873694094287224337922136394898893716044447340630010459189987351510594624857290385492642738963717930403514432366335993833980109811538174520879004465091696028338557717738887789685068836558206781141334124541861696420680381131604013451374570264624608847979286594830655713090661713176441306618870264669023705510486391244163549352995827773198090389750959836754140159179938446311600125467047098681284722258177492331771678694662731104527080304877531430347778766055526363290645546363225276951148163084762354700729735851124015597149461600696018643748633473274033986819335921685010920958935216534106543523134084193417452727471804743492719565136633489745774257600815747412704320359329406551586266741953762236541010333063321846801769499264561751853908772948062619754850829876869072200596886282269779279497738539364892185168012215066397897741331256153726914910791771152729184656073471472230858351780663055171774513165929504515278047410745299651551356958789457145079190389169189265882624418105722893507432677889656732288903750195307605551608227797325728268043949785291206878794262052473582560039238849604723073183547004791295997939683846304237868355082225743468877368260719052187541766318623855901249517888349612602336878768943108862789443131476392856246056265679735915883767766313978442238539940880516517805686859439409593952639560146961227762128485453339192876259585023178184587327151103361064606735548246313768624282238301749594179188908528930793921456732396684324857447641292141820039582058414314140326479080144182435717327191553185126116275228018349029932110410808476001525171757071628684900339920419721323294731419257205326251690401715261046684072929534561244414782400221613976397290281569582113209068879849771089667816870008618769179474973284045688753779196905237789853596072100820620677250698323319472145657236959139729638054768106371464943831400137677200187184633341631266676726048827372935941929708918445120102342453445320202402935666107783588583127315953839299378857560691375668738827185362889078578595234707286668722779810734922297543285243855617664562273721625488498607537541960995829122721178975457472457283668662421438553165736213149142358798808372483633053562147494718273512278794483840278617930128875895459329532082547436184045213952685762310949506826576567326082986940681239326364791079430957629475508617523981301960885020592772631621908243762860113792740948010656430539571824135319893251484177825352074096174747902957315260045007092102127058022135634337844142250920098936721341903877952969208976083132336442796961225726541092869204203166684957012345981525715833986103139377879560651470204640566073970842128051502085542722564300947943720667909939738751865804801368777046076146185457415976845016603481104758989887527927200205836426894734741736087399102370429089004091412986600257286163086679619259402424437797226631337765775986245284338856558450169650683148659057645635176447320131233162447170388706687265161842920933751761349819825075693734714436841851802333790553665129461961809175073711336782048083120182084064460002537871338502098804731154993955075553905327168808599015059753052473406740169475842294372529713911792954622677274166752183377246908738995488662455155821475350046043734372502878874607932957829662929029504643764832110474722971883459434468095449330785693412387536092894072206564644112669915433095686066421934493788194904693045612343670596251669969203088323764748738498568197356294117647177031034867735071906477562879647275348672158512405170783563558841237078632060525044848139827782625542126039624742314994791742914313157026361064193800995933240173552386721043812113115868552927052858914136231436477056715270403099958800255289541743820826501259058612622404605929432810238418187334305921184864731944165813906135459400519870619256704136955778103254489924290451914624316309619021912813883015964046261675230307745977583085121033091434433655406155950479849830685968824904388945422437367106641927499520171812145651307624570837001799240876347450231052390804713539233572480226820786616347509543953382767224033714986366744921258734364412982896099371363508888872049466010117809741886444743285554235419788744187267336687218359490873335212685914511136961468857726011410817164102539520382485812129590082459600870769554783436903124081018788230275668962991748509195990847724649359253292474076978487154710105828656607579363249248704835780492837747229678650253885362585526145051529406932037458722712237152741265432553313429415697236795633486676483984370851849180921236858775236827385328774113418751130062749732997858304226318521912940124813549827065375492571280387226330494978839509423558071840600755344303876047505316165201291620639574699929726103370828809143579359395655200716742917235422391141247201729829560849035238626459091194318156548966018832575494255524237391537922597004263967518136241746913566246071581098707774462617414136225598426367212993460624054999150180151725639001318504168821290755994312572891677495800110940554183976659320789195806053080829029163393392514194718124295010967460259400926019374140395606616449416067495080650998805071127443928814176760103760586232573153636548349453987778757095728739889484265386634985628772397118830611013089077544042511344004514414557073100859385342343335202279244886415870284204276532640889717478468544359038934646418840694996090344138393154723298431219208287737489148164047817888833186846853467255410355412190459722850674590215234251894559804539638829043382058356200771563087034219918255527490691480181842211928666122283454875583000188956890210698285353022395109009694642259409642879417172576561130111766172534146140747993973549256549951225732469496721794747487558085148961847695454912663895290628236815087776390494180023731161010855481445668248353947894167372819559679659464631023149530278520318027764204855321666005590856442798911230017847062843269823839341944550572701663230597350553874568590689341013563644342896043038548174118841145719723068982280896820117333494075431571420954548972302654517573219974955243993017493346926426674516294532600393214787106517866499016806369947783501065522716013508453492818984973122982109293058491641204186528637184305674075226985433356937194049084677000663701829797867013270508414859155396257160536070830937665850930855160058951550604327484197145802716957066727230100188554095227098643899492801308110601048997624590414202330668976130076940282961777521086031380856371993984192522977896772876064793032104244837078797100227691094563955019251166090224652718855304211960496851200626280879542125269271362414037832780486772200168858383682953526234875559074889169259903915248412279599736378024113922869749486722450921386292832212149510399674323672364821716434604261995704897893281254549415231395898913850403003078720345889823706270158632239057757928041919988412489758393138742137979550200135397177289800561858190526104280029200955858674413205592580966460445872589240644689911531542165919979350438916952456211130600178137574898329325276981743156395994447180095057800547871769768713634356647020483296150192695854335155536516133839079699836275802399382758995153596374607260312618244871067056308138103857775224751235184003903542919361814916656478685161478723957881672729844640592615967571078713641417490563703953167697731816900147362854985980816968419655378530527490806214330204182882232778407442333483575407995574875205230286795379150502258950488944197533132799786387479148716155104541911053322978822901884343553928268887546714487739478421196350129320660780834273291425885434843306364525050104689737684209369318084140757461449649521332428421876199791977698849207856976680348875462172783684349889019086326099779178756786392418225001966035227347409116088175644748228434397693243122089932119617852491396459929263193468721857933810861712760894775058256679393991385563889649433834312842257392881846105636395492644269352246274348818629197378269691133409597125586741496760189429471247653519029797557330279045061370287109576082519050393597566557283306936949982554673851833546552438391897650345735063667015068137228700480005550782688657065311228738611182482614287864891998987258454237388393309829898377969857753012443030787323692066181665128269799525284067576488527375104455452636111063755040711547888311185254773649396035663789962643397804003670904102177870883962243555178462389227469451507914990047915755042174539885169439443174139494567046505580334252401096045415926711320523203250611051146795602247822603763230312297178552096476173090418758567696818456469318724321688283012439324932692166621843123705342746381259662227862890885461021928359934210050112918616104996435744928138111464575618104304779742975781201002782107695533958495727226454973528595487057346023060181505016448207758040867581201953218430607449962978186072206232566654380818327927906446589072908291471088847382439567544958819806173260188867556920713515597220120290281119419119752588597968380730756003280343992646874426254000192478449260338152081446324923046400496559140150380727850571255862090178797528488921577933906353693188136465024556948792878429884408452646407064116263633485618255281324117803910861213151262504383034762742753888511937501624435754343279256798299688934364357008266567831053723965712874823139539076456285188821658650916341369953951794102491471104465111301750080349338572723256728142220726296382880013508446864517299089531318364717463088239160466784871194224791071427769854390105613473014483987606036457758137754722235831922563907725356345145885969123423346992935386209821471497276910881036647098886832818116402828813547507491792029020679037783821535994820973957277170028263230521055744400300517912657235023035717611616901765564407666977424154778192029391301927131271362159020755584505629962924563107027197185671135084457415615321055196029675457593716567363421405017223136420407313191230884508568637333208121141877261985938929766845342114154824225132400474220857748784064391104900539500166656209118128460469541718320435882728054464101569691395644635038837486897507490041650545293891193776096376652709434111151430225242584403551243132208280097025889068674044146732029658825926794477486898938183465666323424096492343127349448847104593612665896700721263008937498032065624708995598275417888892171531655551953494206618932202132878572002794098081255395984598715028609077860543850118605412889135487667247637559354157388228855468287737629414957793209201303298181163479641163684585705546995398322705502872623161442085432840342289067481015402088798420839737960123330653903030070482195027771995409938589881503477514492780331844956239176010967599283025411129040280883140678267743161217371052029410165905808895887660850679966562122371175149216139012520195329112625853830923868400500572882913706316835826715168451320759886303774618934628090375117494282446647646648788359317848920426520825181005622425642950253329269385808698529182447668236270799158617086296102989318797570253875156574687429314139025654060069439161914652546083978751107008942274831016180680449210468562635207004742050036200682501535174273041703487589597234979478486268628971679827030123525509017917270905663346832143111358013126570032871078523899982438563761554465133837239725417749919383054869095306925465606761555855232123446128659918531036030768901295158160005358265578233007208781439239985013497232440510823767318196026629194290619061780417689837387243766946557694011092734600544361588216600254492877250929978251165414309695234168189917897118528372675925944849675210884398826239536817135801342449862540172942241541645414813347524056208130959271820223064316424146360885481373010850091985194014007638529065251015553619751762938241522184276062489288817020639496070019339445513901729899386189086050911032506647815686668536535994327875232518964570455897805314364253692773160363553824186468194051022135390519416595875980058857061613072063741770455608173579504593137472616256673720963621638370083006505255470715053867131694787078260968566100191522794116270814065858118291124321958964361963984341935356261975828106277984715164325485481157147306019961401654122031873733030662969500998233087485637553394014338011240355893215203796369569515844690493648330298109532051645406275584448912081979248404686409383177356077523700239157400469977714724454210315614362057970391545387394926196764778610161698852472527181147487851993426516586726253785502544489660715090694684708975989134250690553397936743653144588572673239538116674944030755767860122314916724975996890890172620666641067625974791111252735418757187648732715709766466692598034685958653580248567435953847593105716233947558314884374684128511826360519186781508965638577022969193300035648449436683056440653578518891028102942738197139484952503771802970886888609231165602540022155266023215533510538325921188168308693619245720966629862548813252130203905786712627805032662349547390909412999186690078204307421434333386756451139378439117633256167318951322365843354536017245209060175170632508574434119756678392807514659552665184661865675028370593676095345676621807682060813660592666253306581196019022585454703995117398556304162422752008849736699103291978132128779530868091054297534144868086072461522723797712069281691701732216310768797582020290932869548749143354905320364306300380258656207369961092684485292553041441560300781221407718853859460528234963819516257514640435480185655999919208031930029166731920949916549808625578682521900145848315584240647988044810748009964605162087362210929259717337939123134813367705147043404357049471940402808829503475804707500055921592741875623021220369046974436362936123546535228879096297510194395945870374459902753624035647432745602827511761628472219388510648607334359464692251047092630038746213566947373052440344196277332505046903142905453675181413224748118873438969212878737152951398807698262835455267083742695187408498636173901022034670815416355180555994147728945358431593264692717270960358257618630526862872778205808577652863737963006920352501343238974996591810725996836669768710940168307646536908408782807634548013233677598587418769377624554440559174836642612531205073234048194127473999471945885640244021258828505538705452248242763407911423679524279171993622664202929458281711376327312615104999906873743709436689810787970447052635600438424749228017577154197547289496094422526398616811522745622784290940711383990140821248311089207325591198453822928076479590069939241217317065303236323164791493963255709817241863235201489369121100163815959384282600939176121770360662734076254182568603079389836619060387464047558465139091057553068938435586117819412841999026721667658464592177452752781985962223215597161823055662755254068933171857377365653243022043834557623635665536595072776750578202599681478970836054318703054222985337702787478051048284069459935654860577995082141279299178365696610574630363078711825818601919964510638249034065290124786666445329398693253551878703009729900246037505500984211840647878942838928139291613723653512946631333343569487020284438940764999261511216470035673582045262263574565581206009338881811637489326676043980647963293301679213859657045150124994872602084631161633494224460529077609246853148822891155691539460831522545480176959729191432153757102624580496737117627326847259790288297073473156394280663351204894894633407576333983591258608784662533006529584208526829596901031391716719397968857124293590591346196010502152345471031087795320433804454832102001660849616106253344013413846756684530763996348467027617422017447925448339302774687103713715910636652857836343882427146880090840366562178800796034520580642589310523637973315342906978279407297947371874128514153744070822589535553490197697013151882204030649894670365140905730563206651175738441445032595754275666492093904578548980129909524240977388150405345874614221632465130161521936167660455031857198510945182125523263085779650712916512184495048686121319277024424022084751803091914862036411817312367336008084656557725934105952664990465147891369835136381350669536281483094322717849770725740152303769468172706308196228806964499822597951829074613739058190086873362616685525199071276170997079165864927302579724532791107194212692606713283711272136082274273532607384724273837879166697119834384939944214303155667889936606641140374968186878481633981886430522462314989686774019932793211306926646574262353285284720885876473387577314059830526576897782668169945913048133283013294372028465690670360781535165745716779636409351252685331927199722604519790328192276189780477227432894504573094956249320363936943934654617768468880300285153328279217787828280480457484747137288858681497746855986076228659251819935576114300192308408709290591986447842649370025273658219555254949079262235964844358417304508134947019693506600709152956226414872000581677428584808246660102491508843803129977596043425796683237886542923071445177478445797438803782868538735336143646571749049089494559197864219834696699505523379078340085162828529958482735819680130941472527704305738056940735159519996005365090474689922248247806987639058974550655321536153820538239491266292665873527020996665865860701812838272896172972577707740776115452703702428443476809797346760056452001201710455010808167816634835897694294212884853420348965639395660119846747063877852179009129044990095321621608692087633594549734492730760870661525312857130781542411903291275546504093763170700374523831901705643125954859783369164367564439381340774347884551995682143031557547012198295406383443722529832656299147406157699604711814353997190095048988583542787964065523294579122146391348758295094063936369915826910697610456028871092568576720141777455045400545847303535541658544949644458753092986197972015349094959307360543274109943580881459038942129803476055726582558753255960417689858497102305641671320522050785424517724391681177865128388535188370025718318956520807084532883351947594046296182178798619090909479146914499956550149443243685736490797008468466468666513263203417991142393888942807210427262292197609608382320536513007410507767686205124922863954070035788073427003132358104727687190092977126414512809977719602785587219022355420807878535057837652796802356041092653938530668165529757521539295635519280536405377421003210381440115607779595168638433507098341686998468835016670686892025201676908540516070467546103215011409464504094410491813430929107126412408337284051845840872872909849623697047842623874425449236302981958384928535306294287280164807336501423356731576836432497351338090137836216012555307736652995755806653945257979299369296145144939124093416286459468559673065429247155415981944476283356911682289877575039378651715244828022644483098155758420026532030259627929857527036579116521465371761695486599339749074811362454567880080364735789187517574746754259573866536895211023208885448435984582671404492251161510898414861159628043608821957892242530372903773869344597697901750651303001076979929426472744298193458083210537309247214912806616409970178790300466580324322081126554715105367365909899256380163062837544748851317240106323885425067222766734904467594132490243134155399424886423603512594757635787529392729155685153189228074747727067966295356325636421452298145543779266811823560144641312759346653209228881068281167991284904404688020094319303388703482688785842888643666042781760710580696220276385092969510239339665354527537851707591420198593840524145451546505880684414353297266277455671762726466075888521980626049792274177831603841314813362654631531503819012124483574003393203078384134765014953588469822884276067399679926594799061500913779131334326101433853173138574967912960874110473580898383590322092136499240672959424739683371310474159668492724497118274940971842316559800135542352976140109111263045679907926989591793109874971982598518055969258396288529625345476506755145134446797086869642284062090341481487799978626656121414956708791115151898979893549811539123140916902619760329039371427308672482382441649323677418003628632726706822372572540299593327103645142839787225325836797544286977133335501042299152632308315549622405039548915256040641627652642989482238601165202412785352341729556846307173327436251492348501814146101333748569255189344578889527180232973834063423774766166015910666477419257740154505326007316939285357480643917322852969372095852056933133763494802319322488720557975511157549388849608376482505827757912635283685274306955989675459321912105123568886800194977481465787990073536365269311808880341928487051591747960295871462454423106544115678587468974574809026788468523173272208489463860339901182962292850592947234762213460309823319682074580904682424536065453898534295619149458035862733247728053592101312902941703799906378270607964912944605732810061149060905703017850609377421697895220664693892871984500935351301657427631584307969411338293023323820111866354747971994587796065962943929093395651784468581711111795950622794335993437688790139349393114187944138364910325560426837244067909281252476482816165779013880518387807244958408762707022759154261980831884954478195190281529623243659527220566533917039054771213165130802035394895964800834769252730180039657913381141970757086681330843096132508407666255453313630411983385291340189063577291282408828507315493363924310390213205535780964077420899682997023629440163608310274096081778929599086553616787969959756240545521161481062171932932220513616072074732318478226312767875843792073824957053507305926721220096896862685426103574831043281687594779347672058830149517782761826022737120373929193201678948109187063897859756644032222385412780425471913763270536569967648272654367221347415014509997220981635051932472840630546326963234916566748656842931953419244574688300321508761810760547551880949802927705472207966138078262122351482406232445721738007349024369430808141100415695739049735922716612888009104471449793993359082420500784521784926366427156369376862729359567925018694731035086566803015667119799488168239938689010162726433814150248167122363819850708044700659287758487670373988754837617608684944583294323464757567173998876670324210993428568974307937163071560726449783436436598711316463570153293867724077554146803505828639184761345944975023594182713409533423503714576238624093013083070846556623153588398756465778092481816881169333334106513852869547420257507014352806254914204172512288214709453063517388371824870646881400391258880786064657261527487853184674963678108814522584916343257919807073906052315816937485633271484154454003318254384615303698534621807890031988867315272860197097736470141134387107608735212700164827223948321551920468204151684978494475306113924079698075296963474397435984355209729692593788226235192943362601433020071583979675156156072819003174628311807232161327408869856871361030842634342853193305358226946195319098497322903661022793479563280774794837817689703510653320101189605654379419131446085487902595528231616923935107484926948211706937036078580743085635486501061075334682377057593870531031086181992558192027452500552656058417815564605314755636400936389616700628879962424119793759842212355400978048960523656977112436238466636221231506508831372315117712588681401591566091906428389527892745326013807136770524710218398393156463280630161804977181124893687620021614821257667668267466342765343702420630881353478831230760016751385172906145705365174074595475466303856513644919294238944070331399383581561672303907075214155217496020783525973524719738904545777445845917163312124918977399114813943841301958008385139196237245097579052919986165845552794505089328222241917541174680700736618703930239919966249361659420417829562245338725518635480643151534583411013286470687092290394548277065166922745691685792546151552224528445515397448555939001386167698476695914543955805499493129086481736970074242892571914911149246980042225916959251649465481041352859033208818273753538170678438329244254884663788307195777856779092683567985843476945263754382658397841348465361418900117838027078283901395319566405971638715409269030503883911662847427934664964282308853676659741955779104621132415924564133953888880704721466221638699917693741041542929957324919942582862384880446687629481285302472781335072906860760535913060291050736327903466946861658684410643428195861178806126638577393596659216415095153642658794425603682839516589554707056893514406147693684156453210593789343709184693088064640100097379440830941649065080442780480006416819638281557858509601929084890173941592212095155098456130023635946267005328694816767642253540265584927291142416338126387177866139255347250109541013892150273997403749298823179946715604549300411010136357229891108594426005097427134459758296708784058561642207356441766602439335109181117422577403805001912445758597783502562636859476516254667084403661690225549389450646431794932596404762253736213505989162823689011094539967380502778693846244417263476322071809926560333444339307198603027319091286485559891950937864067872851013984302981447714632231572576977230763444714792979703629456462296832674136656008558914849708103595998431797448031830062220401631490833976600289926447562929407783216878986329271350807616636000435305638692444497416599848187234934019611715755104772724774825027867154343677920099679376967356034389325459476651852448355724948188281936700572411043425765682834285531158179916165858119533447981451763747035351944856165222976373634290053884535947265640426511623859506226665442621678166378682357741260793349696901047793874323173657960375260789284042114403035204987600019309602809553297614422414801636127541194909502191652164835402567536401879143618049260340587969832930954639528229151041671930624411587828653734796459586844465974376926385012092837954542160121109901868787413301639999635923842930739925823636338870291796002953074627998835012619446131377200971557418585962518253142354904290879721400917688430160519276412504249437858652118327791603919704150448010409473671001430077920992917193409932325262314191788651035623409839550748432547481560223526606007970331084317862167768679192709326492383840208763982383029281169921439350818614279340239680514973140952317281493941231160537181002771984269535729622196706907055894632821683640514379576049437808414233357883255809145614472802377914489926932517509093779069490752307527923680402964612639548743330329760741285994007104891439967203351803847892823847070394634087354759299095834927719402955350611110509473826336262286543599371597269876681190768990117351326906422888742695931615683565157341097527127840778518486939180263445571289525240927210324343183773867896791696956839977406291114176157165364969910960949470741986256658472407952795706764322445189747234802633965767286712708286598911247913798536259480090302907127864443084284042053507457761300159582524638752820351142047378298681622178622887091559846079844559103103016169376544981516133322169836569068708063881218664563532763776862378300500581408870182048305036207258281580534027374523834456395604818042807384472707234962841352793968390458403582590441999163398408856484237850046387588579474710813740491656246507510772524725720355970495333569288377937080343299900368974447053048963720673645700480425709182210861613053518209856758583439827287944599129075427001745782086944615678012314865909415372011450837274826348351192029758769417698830774979685316724749171222529583161171144398474310162827329794162500409636278325237414662520529924497744426710639637660457327216254469535696173692941893210492458261096139814999133300099746133168639952383317124236359344093576835579067368469207042007581660133872577702709448012230390201206561311488967314978586871786389540956258031910569434072074083631843936382051838789219767598596998224640497754316243119592719746069591969596870958043432097046453467264487887659592675795707324205191210134846120617515157881903206897503048906483450457106732401841007714578890605804877397599340210838158647040257237069565323461185725620951358377750615706888809415289977485155205730987130595550000664298536235062315340937933064020824626640709763821319751202489187121796278612899272001432660531761611361970187220894357434529213002580089769250305941537094732216592558218044348447263445044487929912991126192046209067380998297316577983065461306806661827614549073314518130326509239414628380973447922258101883276695810034193552390284986218122096075828299735517302649405661953033010727723405241849461664026133591826619599249995512121912505192893292237316792194217867515243792947270442227965398557008680575564217029812646208340031624842149050813495754862681590992573138544213930532152475680992735606261508063481978532149652208615011393508135216846069075480606010489494713040673715286904341838353720816526514970623651135885439290959544169655432732921655534595059475014456326463128125659651383972911332326772093772423998046157154256814600823449652469067714332730497566189582541185582952716667115524759878802013330593132658622707308754552961001423625687614977267425589766097923078004008870791706218876110383938088639507181429165535314409124763631992008451623576338822223865738919208596798125754029584259969979067113440502848682553561153809125222101955475315586135703106943935360357980365144310502681329818735609999370352452337356593079068491185510137459276209192450610295377677821908906200926786327188351439504234989423991880547983225108298993562204639160482192502960024481974934225210104341069437258668927410744057045042584526814110579592218414088238676665530247743373935749640781455016730731015489237456835796916210029774673405102079851712998963890735587150386598223955682246700734493134856585553628349961686171551108970305760120507375917644081928996112053953835514387132023984653952303762250938082676520191867097509024275056350966539552828399948904516288595299076071160230154349731480910999862842848735174861748737576837437473311857318943000042200379799023841399907794317878830764768425435425392847334693030725716135875526656888114151732097021250895571388011677632235183304774499751042984341841310506769183338202097166396511248031149766014775383321694976934186645343575854137903684179036999170708146702277919383862595407184923494282542113553447273405504337757541033962814907836870418661318327915406887241379747706919356295847391828939280045241242811168992445329617816906110887227590100986498706181128734948378313210818841758277828969645886114026945391306547780246156632813685954599892828489089682887569683722683476003940061393928818752117515976194238609652016382298776080267671639756565535152976829181354366235990324093150978127714039743007372504030328759702189782919952240150835976722031658838104074327143653139932004031274465769547999062470243309504947650223182884316321384712276839847254289190880763472862035722750667556835739740545197517552995519862901830120444293647800392903699626224199527564795261912323917823422006797778066406388065053352185160170848689360496426716694087320027145564490349277521215216045688936533815009094375064382212354276419728927136602256601226911156916216253748223125641978971381926997265617077356387256584178768551569372967903339934452834467381891374742671985231626610074270721886979205847404852817711859635191238290309620712811995979221389822634599909742954927105812148941865927241062011462431177020716868194616469923215171938210104432683380135848250117468874847889772647546146908310341212960218904172571133637995969394953507230198375794858643214663536724442489845511295362268361202048314847638316207386746935718661422264113015120610298063467636610794978992503098413506677974266490472907019229753177037951267252666763275451888887637505189873358044566122715955518294679901677244581245303416193802258984991425007953823359605326191000304675333683680510614515799944915955763988940088772625793848642543328112495802263744924623858900647283248924633842121339664829252631703745533532111717246497524195647677043821891655296107876415291997523788497668071858825250591629484478818351445372617633302422725538466336351984231528509491742633352293204628414106780812474704076083533639343113005649375061291275323092299759436921148637559369797990680804699628121269149949494122048164823795658714219489396327940127556680761297475288362064065788655415665955364884275845086284501576738975722363530607378046403203544754582759082483564276654411079658504692929340784469731686508869353155282717647266731222592723148771541238002001792819941047509482919012328063537252324080899703043095564447959269695137861565999609507188558472979247862209264612786694444784081611214024950295644752570490609891509369915891813851068075872961397367577023424269329339063907437059403461489471584324895639003170861571492935883490939303022983737475878206191289776881196639507037349644128067026961964296673791170558069329227109374564667157560583978044242686729018778577553026329402789800150758522077561866389100907745186671580010168403056910373033757920144331225041330335118628808895465125155498224638172546116010660807228645639440311406876567131470325496927818424386312969859052529198918119867567074347070288394847816445780531835072738626936992563490788636483923447019028734021595638386370185789613563104059635778566336292682049189083693715118061646692440474457131020756861519942788931673560107744503402984591044772663482323660273960603998112991163939603577377820312474927949990252808247290178395858884303842532346261553878370894864890100243598266622758264625719437669313413825279484396761051502011855258691627441463295286329320030217699957752718652053757010176255350549935297970366427481586081563179469826922278431284424963045750036932536189349144500622265139202017803929392229139800220576389111132745308694756530129341021211601147828208980340757909725474559994179643920703244163323494120683986153066650077927545003653021140112806959561531321540468303910261307619177333240378312174870797327979533106615068801788910686955616509034770482909385276263798866181603012702296583249143375844716762863518030897659912511558289064266552056502167755639870984033305695196496059098461797940120760582465056137314084203788216529726646422222103558485532004444728499382786599863787895621854911721778190493354085101208726040535874704218177289073861943985252948113298559913045691274588551099951993017935591357539779300855740641190725938903463862523857750221407389241250668870585238483406894692980097707124137876784907220956946171626859090456045368296585920064303017389958999061710561382873769849515739547224120644264385052234718785208736993786874305495133727074529213793631635515342737117768882387640649177049373993520827888315611199674894220233064807324393653448293988031541196347334041778640829598720755142546784866984763205520474129865658211437629323041862074926168641893324357837552014279934378321359626871366563205749434340021993065161841608096530661596167284995245166605271980393684590589122740551397898353580032945951621698810463584202899765852217208927519343055250471491748841698516867444640145721305565425195640374449374296061627402719076089732119614508817010389739487357605273388963480178409545279015388499850363513955053375569135633221303446729584067113186777468297187741172399004242110352086149552625599242630607046133878086268626525629470708637248643864565975373308010842201042659511113703369629412065816465680211064584141378768735537512919908379002258840458947057853302208653604045467538733667249391193604274382627626893525229268231776892087216548103633442493831159775376161728800070930602382107637327936381287723045001077310058063802705217350518665613126715038588757673445193040038278389072733898050409272097878114853672698439194663901753837753379122607475056925446707385910193040843918268984512851113040284028409326607056579905506724695732692926624003562054925718870942544805476941294794160271160259978975296627213216754073730797282881865557437965880712830378497941889015833049134064324213295190819114967690894301864661580679641152894098534400812741839775634183293718818087316175909823618118976439249618142357027135984428720361969076913670529128261122417919480100235286907975130495241463065040441375407864994175856776059936802954453211437822819182405538238240295972733253229337690083196681682476213839391934549252862740638077479160481580355812990861174025791026932273980933669187814831043570958857891622647481616409930066140197821650590590979418924145932351144444176223381253206671188055222868195402198755332545698265101288179572150191711153789748311265256399020732605431029299817106421615952956739801801138901731765201752148748568364888121272841518530574877145208195171745075834559757515529472019629254635116791153836986129457912552394739796772596119544204512834172210610533157218462979913075982321599693875269958196128346584034691285046613503586862424194079888306343902825305368158051667714905961550752859210832232462824742733459089051011817614322187716819506442160984134615787116836221928393958743401050724494862007773920504075715893884470855197482896493388158316377240551023579303034047831124791134553216760905738269539216380549123690879781404014851059195079308278826104097052915580071937116409887852361479662644449590256960038294383326777117229386495565418341141288421339337223664547000928382149334685279144567220871605980531107339380420782678468742542174169712325840161658355552362993313090613543385452616417710324161243409162510106397846518179446842961653782863055753472017274226229183524009449746004571154087762069660389771022063011249238874329790150887775283660726105869783591574784294997227530381363525891774458686787461550203667100100471110263698869225383510506651248469120199365761562007426931204390604482901399045330147103014704072062781250987541098583643550613176312086298992594806700926795597580113044256794626591822483000239688711789320327919925409236624751273584729480102575888871281704337319939497102749275916404416719354696542546283979314585820528904671137582980677874892840299635179515059474575719122347380433902827008321789117876791875543513199479546184071804480772157609901407366024366575664040802463210981435683239596790928261373448038473896941878171036750641666625773612432684103892102586009004102733246893841693685452038260845825876304614143297665332862357966148296676289595893925576633987370081693287598180418144637600824264684213402277899234161594380048838902186033151662590060809820978727246161419274275253857108438554128783015745044984147964098044087391209561751699115577686010052017116759243555292538949902163399363086178283943460112538402460250735308090147564990531087612240379259438396386768345070525350412468661647398577363652545188087184540633945495674074809441422393128494214960591452296352612294177137723878828814292558753665128112496436353152877714749056886467299717022861904982077537862840998651095497593867093706686201167116719194304853082301318655084292188828774849327923744201490442111683680029126077170430698066464548781658969310086725533831380424383928035880585414304986266623921127780242712791678408144915182505832127302297420269456273145074058320350056384890829251936556338786085944240986914819144421985588408629373058321767831318893023420511393223361090733903221848451067767681209867848499769412779428718396404644337455465165421519114830429733656145407613456721377286811132199726196880793958267512924449733957104919204676025030861210639978619334608911473955978414936680659345954294940574146077506901438477052458894465570882575910471824533092355112243886759781807484424290407649261210476728897341541341683600284155058196767854292802089688679819437698270404180810160490083521175333225219843066300824364261741175771668550113931657834528052082225681003228388595942681097548726289488631796949542001173296209434588910980834994313640812692112088175797911292841902992330846303080782953289855759312872957905949113603497204496566028341501118627281018659070657765847955706286466652194110279248670429908277299179321535281437390943174797334019536527785200923355733272322153130868815614110770780883363499654126140557080064143723760914902492554395641859404511833735240283494934133241320645111883501877240152205511965418982864514345823766558944944036890580015047799910710423306097645802128407887136296504174249970220901124464590685272543897196118203493638221859031548015440679878123553829522291338630814077090025600508337529770932388506539988405621932992116882280048074369467787038275979988629125562007998396301031130911805137845366780038168124701491142614834003048696981350539338424039420119594169801414440201240391254990987925989347692098060569206151864823538428587151056812068434141766926470672144340504195327647295658348767058735556951939689835375546888697278637485395050953338012460809882860943261836225674783607205505881712812452566923156599728575121172884833439407124088778683624896674623090117379561227271377350254751477976313662283814387455357926750337162882218366446737454805636800373822800196420516623871109217917573241748027624299116049236068904738891572029505105169665656187423180532965102778918353412966545128439325887956368649231415114074155955253253179815644812217959486583286898473799653991717236765040298471418565269770877624988854432603737038066985086442504028009012451087886478638570828285871115408987360205484909431405330555605349882190759664142911056255729969327344659537342028985847080944778932396692129754422863974619198953428214216758281025290225812495440097477999651499185194259521676249000570635663646028244196759812189238778087102551124166082945705262521188226630069565426692510642930191616195114655975828103343833247783353977867851070278496291791907743942205873572656971183639778423700330734856178601005921823369542134166300912029061547568433020134381201624870688247439268537978182440432680238889146608815117934597135037943561063023555835960988398122915888506589338222340563617589757310194027057802928791562433278071093451754667038623408465132489884215653491729966880692877310357225282016226376729650451557846477520463966753840697253892346127097787726899634335067918966855865575461716648902793933230271009734227745737952236097703323389502386778901191452717078204701243185544110050435102101403864682861422225775132006146596943712854925529675784475963401769264326457937022516352747946457304778532931045101903511046535798254580182303100553976216934631838625658326776928033024620922042841959493217049156133779634473888944014861217259787352259174924220668513899483643679654125751144393323434967529449038206930779374659942034701661530290916648492909695703578124787319783147385001871847635280606722308223779344497803184132043603784806811918010867715989525754368131953616386314189686920625551914273369591639067098274926410333072958783979607242809582866207724584143501868060665152225418949417598746921901532331677482524620039875452005222262881997207026512879389353422571104027601188420054283028346408326303073423855441357815211515279880112863658533911206391349282296798711939682485238669881616029448874687067494511535319117128552493664398491757088456666332215644875746027437737106401353056070450270719550368735969682895127284027029299048281785133952815879416669405436022306931913754005645021865444976344988581233219779912351339087202083473341644985726593030820461346737534123698262732444773495352639259711699795518844098635826032526865317746631243254559742914593560998810391025997256165998875901406393607103926084996817033644808832464595438060399919106159861525577996731774975236352817684463502492762349577971959679108042035982823587089450488406985504217142705503987569407172305655707227238351444219119262249580832217158699899277071431992158850820937327815352469326819267918857616695530304576261491691468515628073805917008080608437080177697637441915745430242872848931544809361260343527723273115914147835535012814522732100341443722996387452686283043291479581022218425521990983016524244868011701596801637412756947215553079391321491714175314087029214838555414538005076303230573845878212519855602958762620809788539217035104777302737389127234052124771261825784673224734086366674615917007147687846273593926709777817921449264237237026590213427055930712933660459552014682516417164686603259769525233383309587882641827295948429441976024254112271555469391239821940365546079541685729203965589115229699701425867917585559643229571744103075613634105230497389845020730773830605551250445449717242223316149503211397263865203193551077919663340273029307072123028346888504531409344922035633013075459178415472071535451895484422428309360400125089250193650763875317700273337811834075582892569305261564291567951771483635455294602468848258254257478722468660097499542967745646331584838953678956164962782204041297517600249429355853852154363870804144364741094056685072332632887311248185624439672744176587313545892643255335055755912543700597888493653301644498506521969182625976686426777690137083504729369898335675498024818191328995345621589139659186949635661489035991884337752341873757848197968940134124492734058057973935530056885463447871236613249587943123821368063116415855048637267016961714005025296565193335693525490063999004711019721439312353668070562154534910959081810384234368251549265239342618026015792362356121047012025643319959099494022028060893410916100828398626953411418883857778604141562592809023280797453323917296233160855809816412257145369505064728149322761186325752678727367360245659700672149358421198772152530587833797703723605950650388253140330950473862929123591717850047351981182175061651227207072279760305939609097827234176440736849321655735106832283731076626998987133746516737468116459090198219498130802776934959803933290473283712033613402098469602674218952865323539903560925054659654024979963778009069198171998246304815204331405270740754792986189533209864636698570410657786346802863658436624056741151868288771402991549269317751962336665687548502409899223597814647494055428218161762946234248633282047798306223925466243315743530431469585078434377781674106211690071485273925828700704777624334035916359996981984833628840720968799500826906039018931306717367891884619336386235647176102347293550296525862770928797230488100113197471476401012280576375984958833595905842072587993823222019889933257022679156585128183957054172541607061696879035626681693370246533829893787190661713946124754760843134050218892698361216662996405360891775952316608981814866283351171066749356748355503709282483748080482137678139492505987466045483139710280667872406993882397878856543510211994609336037835663957737170525887135487348646773883232906043034116818413331121473061317278551982566715331293404209865605019097593549365792299452166635684921450507005364915596067230658252137115665807303307955684061703701322047686151382712561594872116564330923087664305952347047283980195929669647530759069598804035957741789651045109108035145450406190440984854195470299389072632895852703725908300344785112559548896427674943779692672449392927520151196542839256103275414535753652340734171263700980622547966050842876531232542610850835966037856484613688900761636427206790698520122997008796797386614946769327628981362447885031907307469390722027670826320334709328672635692966052791276665358241184273761187184539323406912509448503816481760810508929341343158164895277368091455192670483121163639544653322749300712939181320591260855383982873316047824160783792000896669007545720881848855785274220847795475959693275357543290126028495799442449064918298572917609383968934997900974850913870221329363807313834441394294232341492671456579210732898469619288804996048573222502203598960120057519358368175287701839935034205680275905590124661922629944748211750197268691252023242588397396381975751653709088012039678827007475520139747534861787075080048937057671495305487217999400957261440746132680204324809399731767673393200568557127462068774412677260695161782793000815645289717457534135509975479762209313609593092378059986063722403351184598380357775687102541932950551204131123424997545555468881873015259966304563108784405406656364906655049912261867123292064183168956542399561571114235363690239453986274634062149669843205200052983543248261555480323987842221998245011306579666989679447393201783481190188649355924690975005083203831672626938885570687160060760802156296476508545360570510629413913055338988724346770187989885501202976517126375818659861793873350884964281463197653819181096011621364878190193916686032969570941908705614764703369383090905627114331422252402465258430597595543155768809772944169399360466792652014735961924307567560972181666434854838371672400963260562104568384742254535184736852785119725961913734817295785695807266667677931891499404426546154729799389418189366660431892936328963402227732331043196489497459636233231300215661169439630658341106216870759936350931220211415699290055882383198526123979719277535659620932173743432148825159764187612129775955668517258609830330065803510755900033295815670437762343206650773672230200879413114329914133111285207262484276898293031308715077310331830310841756850134397396527262976976439618929452421297487113106329808099947399330768766634096439045253210085166145828694870748397755068696360698626152686473248114986554875517408215549327167178047707174919102774257167155310406388305400840770557885521574138679347393772614298160495994525065819270112296972441279021058571936670371118723090877718461026413165349826016068566944816777108912141631631017644295675634540337103729507086635373391920454303476839870759274511038763163421635066604686562595369599171818208638903283193671385399183237383333982445415854620524687429952064011677447803528827712351781521832797817396656374751399718432369582819474413548694315828807013715426925958657565416092684766952810892260118188844617857385082578534996020499952713555099795929439210787125289212393141541111894172309969973084979404697867777063306808890693407907776414560130621831333105217439421385784414915084405408361895203004379063817238396500390978425780824248105927707013425099842362722637759799787521604176480326908752841748775269008146286878904988839747632171238895531452796806644630659283108040895745963710631981857373302930169347861115757013579602530360564160252358096792016078122205417125854739799374624586689866923032807348197431621847818668440042074192184206674841276419063267765725072685455089163423528050027721131164326898067269443852495331415201756389126576026548067469728378552496735826731452596750453697541127060590712407385978676431222527369485158059493713288364818889016250153403713270702988814776112967871520458380040296036924776994223513779411014453663784932653793759983143452701631757102208897043383528065156510175178731533448400375282455952930822604625206824228895360022731975453848036118503497107484091239146516624486674219405232666721599820235130894201275307886507905865551638289444624249777765794322790158612229428647097114618515686295086907823404782516078121171973019149359649946559312326860368051607994025343966920305230731922715136594348418391631227185150590103777271242616804706743582319810707004263849342555971700024851082311964794629867234128131426424582963433745553966692101620981759953541324194762306587554955697189454721383593030146545622676859515430813944155856623244910820454834564303736784525181296179397200823788282225960865601843589714293260707219461742754205862900145350689653982832929192295556400475964601042292611164257292526841518976158757259581765266085126753061061985287454743050643496469639898642752716116405238029792071899844755516068416604707435411099706958098325639838708531627396655897816488905944075226745379114649516337599223247497615972275359678198130969515123499890845650068859170403950957489200488087202995800535606681720061946227757784693762827492068475671920923276313386247677556545138448095585468048794766205224541804643612755550559181764339018616202802107391518989941505843893642605665796303111935092755911777968564690682910886685788142929989407870494776699381473953011488308203279863758360076713477043299625009058601042174263342955725568431921029432769694632221779742981863157758743671778298755305907133021152407508842485200063617230832294840961619193789158954746633085233178821488236764023417112273630771982572151071238957975661281815299105551818508778727482727979020884850606805397311587889711189635395214248239181570635722565822457985026709356457615081051226337391794123068196651164203793092020957808784739589741654354854936671028816758138351476873569917532328400846918213636325130219585136497293598074699145700131589521692915388084288189530948745356193359780954753416612825949238040247104807375384230296193367772060716961953813883769765536903101437938170315086182680900973051325343370875474130279884298125556216442843530322812361923837699070470262438251707584491964547331353529762435051154542162260665604391351428517933362910948547646411239818237402677828555857582433566508281597432984738760994145074521782307918715818783011397387579380060941520673201973885637671474443654716194389113594623903873887280939574373945483044547401137034416393302264816012998116159443009347756106342192887364664221053945099289385454569434985267838423878410366246877041172031539603878914217207324644107531189257343784431279193916214213137699581105030387489046811110843841115419467275399765458787881895759682881191541648046740023796023686405953307578089104343760638191585532151056222142953948720552240638644228513597973328878089705915763056140871418482543433325594406879273643713516038153883308408940970427457974521623474929978248183493436821041892202264942072159996691058567634102591237217505851263009393889237604170486017038534222531978000620234158349561908660842633819726417870382787584670092443012500724127888379532312163928800226222017122453385496116929540831174840246699400070453961056470655973156228368339016534819968943438138557536232902955188098967685242617326443887118958747925976269904017240926588308367922906006383700737340334419555055293589452455557075747341246380159438044723967065938776428644125729327793441910095850275077762921982407969342662518098871032668084387858340082705218979821383356281904235583478901653564714906174043432904592577306789140232046514137002982712469584069241023709062743078569933296595609338164542783281304514303312911947534031306818584674806444019662671257419144177101317123399627691904983109859205204733565299283190612527124692246466118200631044272080415629674578485256153697074033654855564225543298417628268635990979520070159744550446633894608148926487892100042775960592225474662904801044794361247576007845772168742298637042594168460232764993849703771653418980981372963092595278757397532187139758868896737797689694062997464324302511824466831014177584112973151007697151177301937460825533845323023435797574976828130348146140052529773566867293431788712716618723661555867007854523325615885935359360435257383771292554094861322173340881737138017449372238901982431471465914652150333858190521646654038611168006682953026195208397075196558387614747990468452345681453810855616361203742235236554908124848246264968356504371283994839399591569487880171010115696866244663390743908123466310577337668066897809316403025997129579199871341321307573581135946109575762729770055836326820576540821561194335017872410006728055511158775616656522207139070807072755296409189023833272639600301964547829926107417662631251477053290396043720575843513668483903957831450055787233407635347140126900735914698831156984348691790140375756808275282396082859922479735695058322736611091901062427933499518242069120062609110886371700484931463171081659644668993169231258440361270065993543293574671423477892186253013118708666889079945708503182230975831452296394038820743417829527868294089851345517160857865267857005165813428861849263621097170864826427387788869888173661024040410083690662901254648399393635934077877338956805834895064994022858630894918162183992795282517765112626588534558664111815048472888846284250478089908449238002529079081983695673855463157015410305451535166886941266400918424638084245383248694866775471225445323504233227520163953197261403957716463601582136966259808991239284260319787643441893802936926699362567204936918835828705990452015038368432989837989820509815121181408716307431975881403472824241044598372203612910032850750771548609729682369071227286200542614101275591460294603359206613188037639418088410165337418765191050693745044841005782192025948355299437107177876454238979928619556850179113775759844894801248647432324246693994805792142946999738154026063860230784770258567920277314387951613850367916684347132966710943644904088450787941558910261739940037622228588833525766537100757106075586371241444073350776955502143936012561274829150410488641414559399212664392180729307863513478989918498063842748711177566284205036107942572198920112242995019180160164462453440928035548167629010109426113369718230421661559384100792382555492229020538462550996457248338601149746972511145586317427375150845012474586860958072831939028723072722853033925690669827076563637760535346265763667662107910449440964872132621428341495108603524598895819912537733879685023647649589296850812361072152190738147460828009204609275313834951240737773441834935120824325954347055540268770005188954125746547387230815658068693488729395598705601226818190294477414235241716327844857587758010349809208117572557370977879382846633315891882886719588061536183396922336425980884934820280355689242971460534577612301999181923346092841891760294875175081680558564921518441560431719832053955036180216559094989067911206240245102944887461294487486817946114660236000573756170849354988043267558832782041473264183484967073472472626641852160551425881500631102583102385359194544123517942894976345560767394475775166011954158596108578496002550113558320262197202327336977984017903879841773972412268342087959978373042721139781845085415986901372430242062841345533133078505380168633754038594678492007376752927192544521234611652637295946139553059115388492042199987510971670383131134472023432525043416684350514680138409631188630401758135799634515369643123013010073014627288818322113874179540546709687389247265064848323743640340710921940953027365205469178217689931273355491323704544531219662303940814078465520820541479583345159463305959893805840559374056416196625044077083808986730215104794565835467151467897163724050825810778010661571601295570999342132386190125137381380029422230038604737632941604684970085038065963727232168461125420249822853128021391401559499800582158419950496068215127143686109762389593356040501028072599925734189052506932708085596827362229352871698982707010238403569664298580122418277573109983373678559353302365715373670864962040551501188003774920553261743231151284573669677117275215312617677234303021258716073348675289658177497837112569020857723994194046636534138274946208730032868106969914809826426163669298761030167679164724548905844550291448257903315981811625675173517966755365482898432717027240172563479273784763441468176297373208390396023582604098255280586710721750982393278467618567361345290662625056494259156116474434841711605852176412635304339789020883490041606066421569165073121161649729097151970293428219158613280958375106286526246165659781044704781730045654999374170929571246972225065603379389925402490917110031817739883143680517541908798669418919317295551974971760448349606732863134527047504772422123198523683059877203655898613361919305536565264878536215626241054843338971570867374521171674828526632184367865114035564562299236892804552097396685881269409412788375303848540877740439381136984149241293715078867753202540969730061326469534364103399257010998524393566301272019260649408468320470660606558311296191178283461106561837252044923543210920112300370535833777891951624703101294625581322299321252062356679628336001104756350280374978213265284866831108560372811176875557701569295021791717888264092780531071734244302274835325367167441097671889724336914030855667927962758450009974937532362230293343062158907669419989149195031786391029311602914941677538623934188144243979489221780835029923679887305745103036433363670602937051599452096082866291340694798692545208518453944314470947123257597174662702015030591682613969834993506301287592548090391393401891966829952013695680679090703812956491707799467477541066516271867582668596673820696142466377644932366189985545103569453212820306832972601831127549741904080615888058004607369991308592338904267739731854407379186963483963157381214337738411012375183900276574084391255340949871065557422110668305987707719785008360031355284660863526172426690250997214264530810779065719051059349874976879427965923689763823877503603579511075578352994160898939043174741531023370976398326195326978575714715793467147216533846347536990043949608304988465605737208922681638831924608801912910968267507907171572753744739362629139842071007944918064308780870764249973904067418902963369542452102983618497322539115512437717250660248135275568461630247069193740185012443421042924307478652480800210827854704966492684737497964254408255207545775628615727563909531899144084733376445114699707018473580250552572215278578774045143188509631994103927011280959620279167784591820435706928425581216857324627339882696156200045590599266278004533066779354411707314537488807579750206798282847730420615285953386560976489927419534004644646262264356532308049950105347650905130520371172117885569650089124277591211054891603655212012627821830235225827351312614947850331923207090087694572731656104574675848643831930741523249267976269270453000288131125267553870407676265760496964034763966068857219582422066166984429522914434273241392410158586334852809673808288498257043940114001590237861718270904676860141601197005608328276188272022088935087754590523619774880479592837999269141375185633963980683906361689442791764141565252108105893015649840374254159614922120005173147541367670407107905333019002765035708449192558884372494808693997366884602216586743968631070733915333129730335089696407662356438402365396367800674909563496081658169369074528606547304993582310632246416463721171175716197157059607364010272650510973484701236584081628976090704477857035832632455210196084044555312589334976533028610437999191948548677359628114294723201643404446590830502248771013548742121120207501547775762169243840266990457904880327579920534480145771900160489032580989979435347456786471195027325905834379979343253364682666435374413074813785589354273279961311037649965304926475335823883700129815177971814790435201186684222785914749377795697398545657401886782781529736485333729211822082391478173218084488085475712735443647879659791000372240015510807277763674282560939370859462455693113888352377583558833838395300816368562468666340970669650561038112222416115324230925999680880160513502018423606025219558763106571309007807784447422570527058098371840520007440741626753793750408994373404473019353579249501551807697987380543364877502837432062988338162626462698204153891058722771169581577352921601456163104311494594179047324750136456049416872648220235890897722015439801836357693920854279183745243646624505732380568153622273530099559485393728099308544689931204149549855654229936258665929975638514896373953215233881397542501872502198126491370937182070445093304103465138841541960911015126482344338562793741655227237392187753032508742053191793468997667408790855575623008558748667648956830735872102814877601054898803118379321243544985843252413574104428488084246108691108117416464301865362789860433512212221165327837893876536713841768225091292411818512162194295427797135880835390474330926093428049106648567064985982525518167753813491193804426819015341768553767516538992099724271630754829531664171270465676138506448782754209048200936298520060070530509899758942371175135655606007283141586631353792279122092688295660690231269528967081749104671136935938319865091714767152964114409060962778919782709152281033580602551276387522200349777104797274228709009849970932539354205698010375478964572506605528068871223466855739817172226396850030051462231520970480781208522415247084527763744280015548015396367636954538604633308946308662032697001600523090894944315803715463859158874141825414998237828219652989885960449272398132646180302401848385890661088257746147883591234622676961266221994651942056513666069373134250844387557618244275168665142913098569086468046665273264721972324288495548117697256138371878452420941703261658255751411371630177884147932721371758275180389431458776659126263043128129422521244126229407430184809028804031382681260964737094635794558399582109276364443400486714885346684497432935442256730222139765604602801625119296018289640821585969382774618383108718338631900905948124115873765198788644922172965138463404030735529394987275394885340937417121630095166165817902233840854232288115755716471548848720757656748243722374647237810459189371208643667394017712999378344493740414169128128392865605264415534782224663066443373204435007453500394773665962861706108414184826136247853023859782722299606547180905058805978222769192848156637360313395441784695824771112735647540547738945677271864610376243339960419006838188681857388319268332135540304934037505637859302258785594828137206001124974882590849570711572307347122715304641983940202770796889657217447934972056767179432101660615752562856983811466423749918191126600421526612933083822967640037667765636651216418524700999773940585135142301396487283069902792732831681222752736214719004739689605919001572428649190661066928679625287397465959157725289053796185959994422558211624690654363697856543332602775774783703664251934401172200333409669827944176667706748472357444019367032028292698987859812199105740483088760888309688493784736106838995014412315149412814807998128047089611154286210672595710623720306439936226250539464591687781247296544640337647030121005125092182304711963616818691111997923951196334979297676534042223413730621193564619565010178690361682322117918092490553493477682172116163514987954101528764881003998685514161473909398522809515477871164422529977313052300719040944354303287250125338798538219871406751239110347875671791098247115969428756470408433928680672354632487506422804216495447579793167066309128551086893662744404027436379285535726383002588818299065742080305525107114066738923131049895943453194033635171410807595896310320993896203373013861986123530442087860177991282281588788357550195427635807155556931666003072779325633662948445160748154727102370535342877499176078762668613783781673266196387848622985245420537900853170917771662836880659274234443669109784366695995016741372025295426240313615934272528730019975410989156984461333732208443936881722978726606753565693893843066920819250889036378338830855490892657266826823371538591142306839114180597756041445310362602345539869279125203076611595576669141391886360439058828497001043934611519482554565398695817323951958244041655389184265924367558387188511583698316546861667026504573830527927365041048026369028810901834562924189841600433604524857159329484126457748944157461813465263902548302605032461475741741506505842905618711501532616107329104013768912565591631005713137517272361181937389586862081689883144058656291888926195734398089408606054252088268763434397726226903341183496547967697957448203501383771162443459855299579727797959237409701097919284464824613508588013369125051182823429306398096108035844360776092392062051462308764050348532838495515472463054018802065128436012649095750194535531473668848100808994165698265268569446069850314624761271813794559925751193194397262896380852840153532895928043906782739292659358353744064251249452809225382190912950482431254158301723997498483643971856313480336997481908279930976469870177006793133169368161426717621794165212287294378365371470465898999425887815189156966710778888934337828563857030686442044061752503733516790467592892434618682078439616285912767291109366131264218298729818321558595784580152764993138460062820992592003909126413838607159143845075360059609381976593718087958700447356828528734059427791354438682425491791841120680312153829636965425326337221256748697492234926720867815208499251791945759818891280369329474386694327240075425751600289929773251590336052416888441414114091253813677434726406243319808377412345321070842493823665736594355305336186494176115340138085439523546871378046958321407724556659835369501489805674162546803159071384329131175859451146476610089371656131702539962312745937895323778012354698779260606449010523768365444286502290630967848812647165316238541442617413392006179520613542027501117283724076821689817328946287525703877239737783887864044924577812426529696599743864878099960593527112354585444552229143902167551147509075339760641746739522438317139046728766541435039561312498788258865981770437926109635712890781652873402442054455505331710918336853158909081750533956989883290796498329097866086356660160274087585990184176824887464620633551564394476609060374489749701807570703751888960301971447569757211724899159927983641327388687605121940017420047468515315313822114685932404107369856354709703245126955312326289606703237182341574357022973707417792130484433244759786966441873390827116973986959723894661371056469434276279050709004847050616360363659343873228556053481312920752174696674908897853837496262876106712173101262265848432936497174380682210985986639441130822800598015903390401101025521604547566000568267316342313132890597490392757388741175694467514916435657474107741709371855620429374647594801892824100157879893688264653922878742555819772056917248613506619546032976107885221687794681995112056977484048871796182036495296837230838770305179626289654274645877445229211560169533008917762264550333214723009798731966441676970327149043638019616854270048994344599117170214345309227915444302751134919148016008209429301045905204805416461972315787198265329093785626914242924193330091613353488781241407563862685806174338170244958729209044833724059225535151390200128180742094684156198897878097169849412233725561582276869567242151934206404159398669215742838780524494596468049968655878058898706268008822312418612379791764076902452491402605107333627013584186151510773180795113393493999403068140640774093382468027517439930463721372546528122095484715377371798453689213809847683843331613452692397935819640482245431200628026795852414680317378817532950727097610594262615484832139949615892540800130949963642975539982412749245311410456542734420658305296115936034878728248191005254815830296692107309994457235607211614497810972788038987968844364272902516541347230498117519857853554999861897105942692201134763343051554083966701775296009663788377604641166692931953207340268798881993865838997402933802151646651008257812247543945974929192111946181049976448544065852016758912471457129219276323668564241574211605416404920489243130476304713800758830827943993780583117146344933430788899173406850826926562096004787982551103768610428447082963663627928921048874227910197674359945730082753202300093048930685514760646699522215318732187769079673017635589808939252194790643396058492518089168152401510569963531984168644620792258625600001036479437318741987515744161823368784594237449340760316418363689982329407873302370184730703149972641619897768012651348728142449338114815803963381812267926680023723570247220528127143826378493568624868456126308488474633108608780454636197152250658814076488052748208476217093548625885394120365678767180387648672042264928623053605007435426720488734437217936001637863374949339894968199415808912511997760933839270308053721441266348856708778046822555904946349846820920049293804426515661820551031069227835161905548681174208549960985472816939158649543067998102768314453017481424744107439069046323972752609755553802325429139306731355204727537251333663575988965764225936234152504944132580998831069755864037846294633530378942949411648938409663101299623252058160076038942636571238812426048152204671402196468288804911109692192412979788395721134662703026096598029844170050311959462153403268609707025421697778186910571484355568409074217691572637787873231281974006583297023181897951490468239980937424881214448146163635544062641903127300859280431100553689610664367854708698097294511227330931070220849784430367313154570182240887404155605664127261849784343471348720509393424131567733739876039913278326411294009051676900681964639280524632048316652811751188584144494913687185124945136129634399237415485465279203532347130629824100366100522918738060069361195908971978702947283369431243012590685353608826814959694808752414086955682060978272506836708732868666005863134672443119180302669990495886449517615921676088184736536985656624704986547143800050225825224720414419612311253536086757198419262531138731951196214251611181862093105836397278805213356817014837368245755603367119148502680611935802138328525376880568820287558540439205163123041197794945354221015697888656620932270360476929563210956398018629122618471967169728913271237526468862744364080578272196645348357834049941331120103888427725770072006677583904973989535813589629815792949627251101381850086110957583207747850913503738765859295008090232941137213726858147104946605390452466504289209892648450046388021934926610622458377272218223471811361448686738899704992838994735682110864768868663706739110380012463827056552171242411697524416916469523575670908675088042815480237753765986573217291025777873049604893098993552612930821340218642246589746503042101095195844807092430867787348912955312529545596172491255156805364499631568360382723981111016053810597685953826301224286128612371709541507380200323293156920221320092334159604498275823591387257247210304781047670279246180519805726026685691833996796593652333378436488232181242307921801271898752558858020434661140631305142014870909097773355449875725987552048204438610032686208852484781320426942343347584478753705825925784366344449543190846450985754221697827034140582641540854359421566370436920148711910235397543122550883934469288359506330711184236663692260982088862713659434663267915770984646277188425424328651141779417755229507355441738541526809250178016216325216494330641638681141676327308428268476898034634934685409016747065755427138485688151934935742209288045797426259131517179207032753292301602188800322821858316980357305408976885099713015945384068185042798354707106356427678877840766419588822954297588460243622646743946242888550647564967385543215179819955688163897625954636064359760334061525988764385161265640780746340689326954172743314475471724713345555144649236695769362409465501645167191740816461115862445147212028695832691174208856416064215195782035229352561756484018574665588351624409689026653441915610743587907361137463615807517716153607012958749245931662901961330596408270605208967327468608212992897618452219101422596102075444814596198092419862372359899088024374450898692574810365131037838475947716870193282598850328770141882298060276987235169260710916334561465679010197994165913736281993441676386419098858458453608063306193143570461011472531403074605246882552151560185224752720192473747467782511471833642089267819281861604510753818431697028557062504459210942723723645129114355062053508000253691203183279877935326591375294331936137816460396137460020469547796040956228574635540397488077754566826844384088086321121006261463281311156730924976245743056525897242762266093644319067930107365830736675442632180418595690566586264952978547702857108686024255690718195390421979101540271705392072606721419479500498601106693430403193533515302187113229414468014905967296470753186070257206869502875688565340420507523864637842830705649996786786362274950002717249940590256366784200459256135069537560353581272047169011742488046958467229836665020149130391308128962314945568501719982568716486309961769680321336640170126510491267140014479838754597772861641124947714683063499304576467245761675156487708139820175351865834221686227294372135575274153924008867648917786210197444537763831158348934018138644879451131537588835877482391726679552135418981300363406679073684774388287611132318352334836905463547410572420480482574470186925288860164699359939403124114458705158536550990902507507051834862505079033848440577368854575560790475679492146693022456963306812370160579371068027504525683837940960479213227520991785428859517548193872095634773855980941156984232748469773905320229543469992958750983968318264122962405710884237174948357737005886335756526215605576613041447567876589650579897254684306991426386052128870291097486921970155229238681510161262418379272300410830829345342155640249762001008424048635353241358596936854257043682847706290345740298008281606895699798103205924602723585820824185797071714745679978663106120088698416481557774580847024274317961330997685751130552987584704533217387017274999894035406264949773961023506576562406160195262288899899113514175829589751391808736340442437696028647787852104721199823539970191288400464266647310648481566619604930602979389340089734074257037199593690082954209973418040464442267687669262912275977639828495079113408215751662175344717953387829405874970625641893752422682123833427910129666260720933006102200905386155285163359501585942510845406062133121918830766251935140090428446483549128500425471206141411500350975807790987583920289583750856783009533573378430004535708379962020405556229085550882516701372845010335346362818297331401589623600877642778922473729341407564981718726225964854938007010664518310603819218190912162024433333388988903387799996405040102961122714255786388536285693876047832682243860372856975745676464433623215555175191810723477726041071195334386243033540645683086720604583156911685940454695106984261010249884169523731826289191114507232129146986765956677889822430935618189139205853221108559082673302014729738795470484662034485522276461511491221549330397123768730264339627734942536781920968304443279694923761489597939566550335204378173871227371867325479141272714602860992203823721505929006401178909526702920488665156476545303313652104026512478879932880470628739898923269298852505356522167124319815631777170078787582250320094684795890369552183711541552243463826806800814018332698028218605171641832505449549424020420952223903727031763339377391130011768467786219094820002832327027509779212944840216466400896063107540023987531376402893100152998103559158004589183757184621771426783928576929269281691712902369865401480715564050023709903276145067188651730730790898812502660622344482892400121709040728364806407958348290665626198393412277024707865463998514995713446481694813256635733674889175597533669508034696517686483432514153668636992647951769944683295861554195290766897708365238575281513128356756935504622995553291804601722887184993477547050948878809854570118464558091140524290344977932041697540871238664460003597409916148247428213940850908646131544685515923358906743400921890365956769966133664174844989129464491578750528913457037574146872770174975047427713388137621540010615725245783253443048965302105820315865527897635392469697769477553094113520609042923687788455874473367400970203534121814004115580751142912088808978936751535264504297235612410170426406696977653217835241251722284721095242076833907563956247053735932213042627680988893346514117863623533716559436071625249447262241676567148903606160767080409667172868701592967719473194798370941331848267630881078243048076152055600047325799785021946105515676571121022159574496325123604853815562715137858305550357591865449090879580361168606706412053740439208618426463626100456555577210297582522138628816042234879786509844030848752947703114460680326260412007109352659771610818386441229995511899789265266017818991522360991185985021364214221354267739426230071169105720773889472375837340242332203410354591632827721383675741506442269417703457242427762322920871999634049633847949797554171387303218629127182142917282996245288958050634518491314800755006805997936401104386478072605201925580885401472301223984035988416887542857007082169936288909602654997679630552841150885113578197570678119529451044749292185457743164278925366946238772513911485287134955954860043463108538462774364098299649243171016523198930365139025761845499159973165568030786248233810620520237348830365842652345015158722140543783376173516170937371818568537770437870382073396282492151768406610300735193910204229020075003868636814996713584642245475160333070849890722657197513074330376999619803156256743133226988766991299798156856038329903769816917010244988885665677157726667789901877154604722076483372881307381921691888459106723072632786775611192899594295801219145296977843448695095731184801280638968701935716930263875978738238334420321491881395702423911270495157422685681298241333983656526848559996120493782072932687227675240344799914501368006267520730696014314139220357601991895026155457935511104418830560481453665947406063554632606245192396526744133191697102476184304787144824104762281919545136010647382095624855534845228536848293285582039865047557165156388340898694815595624281162519019408570165044767865399315962104219208255120425207450980189464051326132451973736090407087549767282751835742126970546951359326645701986661720747999918753935210606908146780141303514605630949513068404644711704894904839550043116146847357671911565985610001173551138888423971891867196239728153340153484637608962678928229084546356082085091811214372006503321467549383703882917822226662837650068683644584842734238509000063368789982653773436585094259978173466295415384611781476057848920451440658786178834893912068589245020770112858826976523100801639056535529523506137400543866531623428188374946757802657375156199287042622534373283748546854809085590916021758688441795712649485863461286252518996953963430126170475163797415847932783656107647000198134840982896927308648819883589446999592347721192902558583399344561584966191829037974415614491753034892846280601335837099178319151001340716338500335107838496709483111449895326210074417808046827048332447552977183857150001281233274488075941279664631945325740441550084199921762150837792414729550070461135733983662152286837224935307144246831462435382119421755290648261128300215984151114111783542864880999282151830242515595586013338243874174382641669867671485807394041311556901019275998545393831971680470949460120858887706232364230610223364804030662816928633861026629737555041176332682047363622734794904035555547854791632114714461360628516061104413126798341324611923198839306046114676327778074369550275682953841958804381414696452574293237979243855923690254712575786046782804794368447838909106977032266585523181637495348308482804666431135180820809155547070819902548511367612985005282401865371277679028735929007427636807403713411869898525987330744983820317918351085192099312341516389419579323208782361714170889470722747962134662548322029870209349682986808609861779419109379898054862206290909795937532491400734649714509160769391159331428335592018462915226715283847807383984020992194670978508471821712398017195410499585698792555646020999071142561144133481483358979898118354060402717622287638326937458167558991434154717020713034786704408266401204777259925540895543929573542884686987690988091614967446745637481636709172728368351215997272510926565898554310466827011796832118479708187521667243452228739021687915361488522782062423042930977413428497961700482211941071191577925630277599342601390355867937342280010329424869344616679221003743854963372102728638405817439471760169316257723898655747206256774146079029847215112018063517673998371111765955710754030265265762185456925257170392001829966191524062333598927723260037552687206146851185596967908908592973138650213436547478645703026991931980386538482379549458475474883183070931692093573320638410383058861989242933244655444414455245238196257916188169744396111855269046931564750093352029621698443163541112925170504555939323074381541835253706773150407959526799489171499843164308451541300285626385418803559518809232224093007067719686376716282545366654005396468274457858145494684987018606482343398404502465927335103429483112960315343724392945535749606339798747462907044444398159567485156779658365717116057323649474354192469622251678214906004934008123396113923316484553887484974867635208666283069901904810179890478618525339974701389153116331905433644770016688126913368437595899912668675412271931072202732286704226126670707913411514780899572567353804078623313331952694578595062960259732565898381640455242825171660731485269860649703544684226135263468345245339621384506250216671360806189830594604888725495795572941208711401239938311654387260782755092877309014544996663252315581136458298470545722095731446591259867539569084071473392842663413078854160339742827274043101827499244570466237563913701164661966621017271097741364443043917494085114040451535479342745470529141894534883693652603949538179029054382711920482609338803720750641785025037892167131061187622993590540838865150382032404378411609222893291989158451496469533576105310049371566821306580020105016860077550796495865170528211312704750522890742492199396695981620230243029289906920793988930687108856743597139770280153298800172133270281646567246613840517616181313398930173653496086735397383592856044411726739110240350328286859268560150773945698686295329397090885468454965956443551989234269171889616298707634264834536892519410827907272003868072252484554762163992106093421653527755793854817964064391701593465560774162907384091410561193966390771012727339426930171057486510988772780448303709568004133150061929556051441276868111385372649296528018764027541870505607543373199433539223558095430894129773703355191735617777157896822185486294257419325168674737665254892503354791920143141938398972423546001600682422685087339028746090360736129426316678510386972144187353087198918469685350283192504936590771246481866881454807369372322327277811282520866763460080781927351688438185166672644382164543007892022101080231015921290751173625733417497363694463041800526763835596621188375217848098691345769644321834673711732080288437281645897000724738589591287830366982148610410984932087455980318842128883240773216578477779060619043595887994436523797785612480568002337006647441168536003604475475286921282695606554639021929928998617357348911635353117803513922449850930577991741205810719369339831220305438644378405437355347512686096188368884921323618705524804682843520417368281713492885037451999931972627787051670814032985753995606814443707011230208376899612562816971588148017671038930744056041630433707739649265708246919152778331773310506796205743693524760128166931514900067943273409441261783740555474603850328381528288862243092194473526152879665442344229742256703978300420881092857346301521252973296585973250406963692149534454652390593303061610943795049732450808293875602537506739356714791419623078723047152375920831680387347922820836907154453504867086422043861860143670577829981321991240582409420703741193760856910560133348717262745569826104737704402864106720474674828028812620420954913261892523674966924837670799302143485536513464802460129683336727939189437643319409761008981060142758648418132908661093501891404714962755151892144258931061204887392491625824565731958663831322271778619641686659993273588454145817027950188017362150860837578360088409045273380091174991707567697869848773728706848834417267093456595633077767743014637146863060116516336582802265809830109143672248454622444533106283049212066337145243094522420818103287996170174163678267969035998643379586008367388154107323411261925282384284054745049161507325176599114114914274089634738040674502808017424651155056107429646631343910262502452642998101377142619357961916850865352851429348517469673084758677946790719272037655823704821739329679699562549753416985435147317780373454455565919316794505815342516293649691993518487260083573457025898334014592160037632288814729666809553784150690676295111063848249969571280405939407318349037312115815656994554287390278270498605616645921900131159219038968225596878198476162117100702121595014194773208758007569201030604320200258884475998550813976577952879414357398584305070898730601145413373672459988586015580025025494410297508008146549230363513440014251059360502610532777167692883202864618664414607410071261020685713356364259770233284208965745618633541622765696431184450475922609246049910963942803569241369883854111463698011808065696925883289384136267325344081106626485189673064624952828664179131539907432303386150342577638032674162244959516809668141884699056386174990667011399744727235736463688922570725675613882807707187899238662148696333975879932964330784424965221446046633902622577606402280676673459569229622608415876998628700745575403125394171746801844035974606163156968603943688087885773276322007565632863778689486895436149190366054479400893842481559141180383179301802850003707232853968067103050754355483041469475730063390414093163169932138176743919109318833201721638218211108842125426349171523367859204020269671355021684120590292959211410673392264150201948487095820473799714993902712351423984377858103513956721963730821488913322959987466690620606491910307703696796869148731786843999907428534790094235786724532387568047404790973322015017367818760915788656231431713850172319075358791967023923089967377688292932349637075220923215857109230526757284858039086858786067065981385688822420161063958736976270122114854560172890856859960484520798009869448492274032425024758711466223547879857085815728388693187225408853041771657047981040063258071505775088086507713200572675265497543487615445585042720399029441880692392159422140441729964937385973278246969787777203611925672919921165567953004042807686346212773238052373763932123092200091578061514604290817042887132603472098306355695161354177370733765214680829792950174967126030705853892513971083687944816348149956049065812352980517238192113670952475957063872109316644573546682243568501158848717848374574488032210286758938812522451534781081608594027667260139977096790503487369817226613363650256322554948373037908112745449890447919893154226087647956340245152793798028502885982273587680630315725191357996588176444240290747286711927717201535782727439893247620524474132214819400284475023442122345187000717268435863654870055785437020561320151990509625703587811782652330467771118348551545406371363925492956922219328362216520408078030993471466613374058300358841301463133239491324832571923574380113442636898340316093089129080867253567971507821457147156043744262843957626229176283395274143371404155354724195965638228330482391078349292883294689119017229054621274364252236553716826746117042986093259170853147930196808623217068968243013038125159393454950930294567147179678293915149916501673082115053724070384283133209552295465158346908645003176744341317451110614833492702283039393420469362232946067547918822555633593259997274178638550577501114447721054448095852340031626112160194013001228540990882854330022647865066867721816219580890461702177128064562627323212212136372339411264926388803718757287649552011216102337397694626819964694157152794526020658244820265512818030238482795073265327688354646687771275724490933107897432109607727680305188120839408202666839892838539033774946504843569319329166777740133048284938819719059968992314811021301324432743256298595334269380209441289225600890219735848704336701144039720611006379900929877322643220663819231812695910242576902390493650841978382782890175547197610550933936806598647088464214412068538912388148264392577603521096445366372758049239301397129038484274960920473920462759013682370076424924087271534107830841334893128835489539589734663790054882772353127043742868554062711535469360331139747900563949560800755052186659760185696878318503299918097514824016443955274900625399884497954670642327946446196566354088481445081446705561900188748085192857866793487096137969724761065913534404204858417655337057413887438724389626041332311339238159605917660497331788792441012978192782050898914293711229836298581707876930885263543351498837494642795599431010048270260428684270365229904667484645180353489275030482310085955978026824435405298757736463294515827513668094654312307601428275693063602722790544840041663619480802816022977345128239386720045572679293835588724763693812830621277412361595198090834231847520847127742204623000691064623261570114465260192426017589313947168332200405234122349124051640727861622578198369137530267608392659551376302573722812476066114994075412372574450445720579880118332520261247843667182013648634937237486183827660715697734415514355179367715644197774891428535344888138541525177612774976438347474103545117416483914053294768078329571458800441584977931057949866236961085673950340865481067235348327355225004314076609566098292902813347475050549315779216611629454384858772271434845697997639246258186863447269879020813539962048233638273808361169623057833844273690350738525256461477533535521436743553900463258431550137347697226339404567233575752535595180181992495645490936618291698002371918918509828550464222643466104399326249178669448452138301972745591395438177419499762845561958659832431305521869301415870465212600005053880991825345037552714147453182276025751282828278620213858971665613290471446307312001932956730302984974098443854651661118159157746503719163212784694903724324620116996318669973702874782888679744449328291161332380552255866870892339651497078246343316909933812969685368098958344191272958877063826681143560462102752793630950108881511322758624483295556066828307620980152615550133527949611296896124573695362276259950594555266402768794181112658039850128798304546625969464623559720030953630498516295473535574259432079832332494916327662572307828427383566856064964805691767573634429727288024659248170149419770671400165787577419323155287441123934458117603069247765906318237422931712574814415563044921132548725220709094802240807770840153980639953426860352209156578598205748862764665693569216208108880062071126263871042860614975725636379453915673857754184004020431856485501851504440532156474723242526878704670549596700365508185602011984380606806610371050539020028373476875032711035851901220148525762860712201784656267209315867650423761465907560857978211538962631340867977740353716009343332620854648190865019384642487233104460397306015840371764709991377508604334211837429034062119551069967718116563027153208471024541735795007907797556509989169076361375896466361550583471036578485034065623442749387438672773124307299252298982077840358293875213714465498275501252515523116847502738227247847072372641011271357214075561715444665983588674713570412487156222654474763516017331911642914070321296411901203239855608956827444895819605175856106390984970080829613465402367229593128202085517487432234142129016769119386226050419636942308104206200173593165875110801156685904544360702136462298873153727068777257899656450809226075676745202397703607957295072462907769660306744517771310167269767484964204470108263068474739134411281642938500702880763834480590342107565094548301032456547654832156231439614270559980768997856954138390565534460337021486916611320361694384003389976706114335301078743440284031876140676643660998652242843668026630379217947667937740259463837819990449113369501717769325860011322711985105870335612853172838786430034750448122265281061369091990735472062529801063929811523095567000232521718697419098775251570055947274196005490060886066825708819579623636342385802416724047993597040770179015397158190092464709375382057949993362331417034928101075716679550535911535728408969126176729498626135240125442146601538925396344657391493245817795929136586944523271451220424316154815013062595791162121416249520288611670017858105308130724799609471239570227231355478438772767273416707412920769961956865135291341571184386590944453814624496380707896316021578126534917662441461445324811362175259655361967396151962006049527812678387931058856862840280146865244061408109070014062057637082752871255951006968651688320078260677714620961287677581094696730283717881958594433997595113407228782575379486552423682956756801947495972902095554528379616138809155866780891654908949854972811592759482370399145329050173997975424645046407925755532730607895611249887892915947203191278649459057378543327504783010224316990052880142539665519559483840356388640577961941919801662348852131690415390410920569649648137022530095519606746894153166972998729873962002085301641246603566858345080317542678740527504801697342948187783093708396283307365430948052791616490522001721770379508210176229200990408919784660862248370836699809656599784933226860325702586616165303542169319031881374135967283997688170772145688601111918075608105731241581658865604081367751538843637977432134727046164302754074590878153453521336079074280931604016904033847441307150584777698053321263026686308671987152331458843849553640565584551692951137569189502038692520397949634754450689388794620062555230125099099628017802134227236115146404769817691172604862758230535928450682079964527581035697243637939605066509376026464983248496724991247375755453832825443994092205983944471097546325233807162360852192072989755180965733298814037631713781668310983795435967029721378956308049728604673738065585192565051116474449721022602650975350375896689495759891791883134560141494430832404174153885674894179460365947143388738409455386042698705118659615435258738148137037879624148095921705661679343359912304394503976886022694754315485024636665734889579652813891804454466265825118208349438601188834350195421828193332949327269131948835431295246773290813660250758398425587969977182219344857381909178132634642699138291241093322575096667139831022241483323873440076046925075260876716744595870773474969604358792333253497539098772839562423952323408186855395379940308593353376119591950446530453729215282359328291241315041456369315793231102255390567527792446807414141665619255881298489424425401040067608788791822218086952541662610733317338163273216501477189632417867413583477114650758759214349740957777994447998072856117740849994901733698233169904572183844044111218848679893206656480731508806228643782336475820988897923857921337580288101423461217502521808038764504855906351213891981238213244853438508561425260724502566337217193560510843714413166621911355796723368404093374033454824716715920094681325835740902794564806751634395731549739931733400884825683315419620242469333666021323680935126424032060547786566198182727527043612158187622676387738148812073198397741689973246451281194337984374225283068589251180597377412899402168036185272165397969926206667611650098913425514189902944331326600300516795034572062745063767125011489205036556952081998449721824244074965393675927896638995147527747700745303033483993179532079024951842871709114669014692528136979785846723173149730829904512850487994378251710719674511980824398192466982203151850893445540610526298763338954423854647687630177267590493383656974649002046565623928690871741416754186118102893249273516777909034756103706208632613432003069865342455584594147229733126269023358558500573446790438126360818860282100939201361043737313934298778536634919208813375461920516858019563080258330431073363777332764158795217386984667142185569360309440603794915320282133488836007399732350291757299241147316764298880174600644445569648001131141103825026066514547820937154729690173363989131320899038590066653755645514795242791906634052175018699669843281663195877065388951983461389521760935637743209101747647631591928817723122640361444906343820170144541873202399445630451815165842827524633338449444309426847768827426887555821207483842758306923957166965996044536582739205179562961683601856184373732624620280239028897353239818333335331261680988573266563158133685010367558629607801609030028910427761883593960892261223049348542187295077654102345768316266766000689120798692676437043495319783564011313629942591010597930518754158348975972976352285148715521998431660440279011323135369188415646563827970974177139984266253049175621724921703422633620696960567218881188968846604254949426299265381099145122184414398190874742968774509967387854683284066483935417562105508551506968423688498879756829483872116062173734043864191768438060660006658452005973948447423412877133503367509018046881110796953503782237279120292659481260638109775834045502105978566601578119314218672491112283380277881371458906451680873349894747180483496887214100969638421852882115290107088356459514444137529571072871980194777150421122925888849451146431414027232986281679814769296537293428694325037139456089311414366199724530456109477973413398716383224409368001006346836101393932012387244116822134634951921233538055201840000743853885812527350034544722438771659006357447032473309832607273322809534439623945022238301784774367290602036346751621095079018792816212344565391091283871915517627378143540680229621688333725100932292394928474267192298164050632190562777098189172815430523262373335124717456479290907184975339824335764804774750822767909270326272491271082393118385859425464671084891654852931663083284930062434928496901949369893417927068439726999897696135050417273185911660413702236359867869981084969519445391718616980859834994900620116313478628682940561780849289930885112014012464913118670935366973026729385599736618990281712544816048386076109070654627806348909689578180531099460904582819046054545199720845664198606226187345924355514612355274090014237465192659382187451423845637124570263132077622941972078469334727056150730537710485485342751459772086053016188681674710173260427424824596327164577433576141094350371196029825529473501147417983578635060926486740171836194229059472781795217487624580353126507094256821909462415141626102485132501981533910285487033927494659826189076759931590579824524355603376495901878734503794762513594200825895430375984774700783709058769904436060073545850350225197639981507015293731480475328057644658420276243505468792553308606603405186152303135985015516981124828036413271557782192093679617891029490770402562631565556894537820221123125785059779701912030591101617243866647380663374774839725711399832165680301419864273796634203028046451168085056654409422367380744133171523614608413363919932116854182568882771337081402891724404570776348183540181299286885366940910394178454518531322719920719581539534828597826720956966222761968900438830061139421490784312361104158404250743490817962691612206735767766746968306559596558790194386696611968441868632650529116527867163017389015880233508242460955609145189864827192056387169639826843169784286732151911823226313681801188920287268741727812000951847458527572563365103406002458228687820695397008870609977473963237537271832790574704676563583938844074088276272459967887036954602926661960223486848184126812508991650172450283277825013462724068579610931068454220079785954903390135626689389728510757727166629328377278741812283568978992581161520490087406409068751695646257388526577607449635570726608616098050886354923233510727262801000439878511525513374137781603932273768034448763404649414516235727693099206295608628130939426237622327102056787068327942446478595783278986600327990824589217294115072765002481980616424909132935826130500062292202858442724411730713149643956218250544017061772523356031137575568046288609849848478073260852440136273318090890044599733484290292720848469929876644019879648310452430106917809789572451767459645405247267918219274187388000054734749593544477125414854149606607868813743024467322349529944355181136601544301344921857811274413535389012620241451397618163655834170288384118711690659206023540219322035678957990779410117117105153521007837632475510996167756347732079112363377304301530196855736740659553103136273418570652810038907704850904521877065106255516863379784339320892329270857433306026245335803530358466903293802005091703032113522069226913651436211009166141599287475457624341709590124015209951722802086134794330357733414628630006697375658659060375459407021248782848355030247920170374474497245351471689894035024784575146752943065723570948169667263032215785028093802738416342955092384038889630161181644657787043344934928560123243692139876813473395839973936941139347218711304962071819086661155601909817857914282083942931785147610513575634013486714018518697745234664996883274030178917442508235637395083993821108091325324774977952980208997289590108050081907617624994222905792857465058773849454493829258867924147470480671528831295375146656359814937204738413095504963731668798776002080643169439190686331290092302564676997263497971270561308958027508546168176148764725507171799462732856653118038659246525861123479915794976959848423634135745669643491495544431249659729142430463048109004322986152484459488105741108339804084404778053483109462538672733011272877502577807144394215543062580543851959863888752559251905566162912895987458846979031781997159605885473152793702955860747738048150777809078470425066715860358555747425336462671990050985989647870911643666014865439751060929006780999666974224636300049019616328903304855072519593966080887657157381347086481910891585300553057698019598189062006613003165987789356144469738671605291935564129804574973204350612818486362512763421658668619870454878086637051725877203107612397729065193318510155473106696088518829850244004494006845960233688184915447969821882453838710970844626718740737208540962782134390924082529591779142655047338796749003137897883522828353417152791664872556762065635145791970419592393535484590099488532079097235005444609133581094820718897223046837046730551062516676321106679916548698504815509982879804530499326921376501995774391427492867230083067154935594249759705519741968116026781031173835272396683341407322254661453757055851416781410190607775205210325659100430113957562798220424680998166462977526775096786680744640850375450272707233537854740992444069476034590183687656772280002987341094100267923894482062659880923916227350131992255424108726978312646115671274281460763152240284710943000256486070987502811683178932094316123083074261691937302491688967599384776822073618971737859256417675820084020174092660941300661225469202059297349181872401264900403941251268506183071711418130822211346057639738181338323595677779394666688455418808544186279620830292025933049420672707670635598363225692977195996313741153072492710921150162178236361108303796400205118479222058588777876159594755356022437300068557186946010582592539237481738303404022837526061669815847541439866155118107188876613017511310936780430060624737972249492427954949714994041081318657031337277037048497658985975397050206379684736251827773627391224296311620136277538934041449426447020073889107127762849734575939418338677231645579342255423967594422792942493862239788939332948887137588738207751238099507302008724092180704620927988916723115170532688059201922690889157473850799801126100452268977948518735835117410032733930608104845556257462750504594583914545998049658710147791547359472466674183360658972754054945885588666722068511640894533912041809549620112874950361505090492628520054848701065329431585890740212833169440841039793020115652581465749172240417607210413566813307662608126970307678666601483852933946894926427208104184404699740557505504777009207883808040144749490101380990020455695909384752768214323755828083482078962577509858201569417517304803535424336649895779545957119161980682356058056028985702051990651896412030904496226819523543811344762815584806326958949364310621466023771648852114809710353119977702324191282117547348122194820612985122733454746193274091707636353662049435000704867411717104319975191085382001507546674449135216781631469275281433990158413902084371304306490804054992106973052483545726986677561701563012042516234453898026797178154967517981089947544754447192517909096859273031194204823852057549715454228590736231003446652799596099056750884400540522917808876035567531515198382980474211506462602670160104143494458364940136807594401449539928455721510658319142139991114785365896346110239627782530594501332972648628921954777578897035359397869489608636109828191137996017552462396551689945829520013340676046666031459204909534033855413526136649907198739942046395295445627358347920081204632623868525860395378869962051175847186277480241820487615191636059490071456142589975490774621284022221998430985764643947056786315092472491120121297824115285910123677957056099709470782682930586929750424074571270255400007349022914971358912820392650329474163941061547503782126214232009576495765676557578052894930236025416087619520933966238458004967724361062026317086418891837939553242042612578466422590074676691217482377840810103282813133832551617123703455513916477666435283777182449771087645195287461502089609012388541830461045861363099732135592402359571311276374543549776300131982257745009010999081629858383182159523718464866040023350096759199641987027015185640701254792914593319066951184986663670465590505385874592463607559999790095112346836635373774604342720678660918546182013007828081061486399810930060826938388449152296339814576145764267574111546448620513883723133085166395132657988388349883831312124988229371470743641201674349107655801341260570688589545302205122307614154434243774852729643329287990233181163403085399647391065141541314551167531698743624903000343480939917657896661598551454176621006375321117026130406813111699321348857534693412267883886620404764380363431497241816053915864837382520138691417936944821576470771998686903504948397021591930737220034530606649008411737006603187751171020337494337582428694679955247635926507475699432921310816143174225768832502061793289646869154942869038683778904440067426261985941935374780413457849782661088762978085726458141350643920368489439474657401267358565843668211353147747884813631574065922799897480541418314058142181001217221805436914005440676570625930972736485251976045214661934080889165145450699434719312022216984814602081173644071182450277364427155278750849180697985275588152836998375662316277210300489536890086045405007405841405818594508144154652399027697753943220485553766359240050639145500925037153397075170465129014117617120563778816869301468220413908120374985218022130227655559925446054923989741196098784147939272466774105190563249367753177847097897180008909381090396689903184117229592641712640869742904964647392599479416961934574505207766584498814351563456536191651226656946657438863881122248289255528444025180075254004446519603366356656310032671982176037253589208669378523687255229434764574512608590619039604859893085970260365287198547278257670287032847241237993120047788761660269879080444656449914388206998216728022365496875062428868044093198926774331797916618979536643093608317702738600501743834397357431059849134096487257064166044892853890789131440929170026020022736873500593996810268081090939111057734155322071362887131712133712105034790442314907956789643884235400232569897445115622489104200506894205467869109858374646759282949667559617825869719532233813454575832815013311062280464682608760408278382374082136923620421923829028082260188106755467645368995383726295727991391732468537829308328008618068936165156362644887838950775478629192737242946493667811179632817208803217663395333422057939365047014798862641818011760754607521402549648044745162212822211028415051332542478523515987917810651881345554284649638898708024270489961084871917398684270081884828648211318687953596258564560777299837586689409276422849211911054104113294961995190511409401069452762564819760869752192515892099491022169438958347257154754505735897019280573209012186089055254489492120349257526430575027248921108790541174228478242994570427891784682804989205013180715451557881636316952141324459797089191295985611919914768990921393163886515094875224111567663831943324724110501993127795444851673481468772358865843167530666718875232699556962455840713509582716382144188932334952902973897636953439476377949316422899424138149982473907407471187039935733603611353534500641927129380144808719335621389831294991100888209699646705307378183830315365605825773393688987708482788565188621936346940919035726967386790399809074395933465758883791902201838344804915600609469772146409557702810907012377552823348007476315238022063029162032799954050630504031547990666272356928691094920122661813113970207106501085621987487205177604743057701297058339426407586116891347687421746520002346779643755777662008729895064934461313628300712913752747122695599590016662172363375915054799499546297027975820747125297456108997853978735766505946581925031407743842035202345221672342894776100313985152551613023149676807860241089297821423002696456556540697661075161506022714099565813762206319664960267793011789514924538293047238111429249995759757240608565785518580189376546248271387936994867677677796526158605962149702332277326892313418870875661909711232575172233915499771299419107771775593901235805738013970108817779659321767213379394945763083356611261822046513981865975954098379638099643381747854169456768891959033937010464575655150010550868898478519766960313240207168023806310862970664560789192119718122204187076407814869034339717332654990497069281760095014993993338860389372424472462535226610797113084660551078005566553315799336546054959779655516531920458996327488733312329490679012190305508759257012401927610516158197050700699510314587300011513513778942369226732605759341542222306803683834077748490392213658253744588923472917231174112441440913076079209148561765068273993829725510873422688872127565638925299096550967657687321964381812114864043143981527909124144415003226891396040811727261627753717340797757155373762351049368579887873378151414488321750137704870919139671533541282369661096028391558287814797873940213347507381923933701450414250609391591666447718170792686092330499050256423890163569411967317566673067384661878874962659445184372416204651311757626468309701435559542633854625296901284926638570364468136892542565846282897477923720284094322767971735647417129805186870637300048099062860657003642863790651132569075698994759388408701975691672623676376280364978329178861467049578234997952713362353438921860166734519703980471844112005669885066815775684016489874841014671558688475234625383274341983696916344155061206780270536783753862612544524683819873289342386708338460076883394643721493117140703780299973391524407479635605144709516889240585338025042831813187543381855170692246095199423513904851358432123646535416587883721268075176895128387437093051046029643433235997050148645481537927309760302689472320252411773877171825221221305222343388256736303950345476305544243626902804374814889591765173698193189392971266546955832815648032452830312465641279703381076222922542845153076994915209215043549929403255739108606837251623472528170586091644203583560190899317979123686727357520750353554511553456149924431641953100723569717831017505915102211664360584952456791048748367721215662186832337796899470566027668209460694755647893725629531471674786355026124881588622361469814402944725600286755132280712611824811626949091141893066758679986705169039035362031270411436190730707942063626430930663326429157896176774889045398793499287874077137854127947222401682912281986160217983863350057603250815402850304769337045994641897600695332736165833792982463357130342891017579446499064947837429603186452998269284106411376062799643127355968859234338138629168282804678710599405837672179775974111739613144262843446230060981330675101756922554174243685633686515395782920209453099849972156759945602872824023577507116370574909003524054509032615972973023868997701941154867409870556169710499759247022077946880988356748578318776940328443945369090217959729111362418408347944702171044094257865313462405326338914017311085869491989007204431921607253547565954912042381588745343953801740878705597918305241317746521113121804547958709805303219313897138693031663758621677384672383085069715641268071435235498079735578399983662364274486191145629912605345253313302164664506242367428884403040467505252157472942916168663999656977104399916491288738164242006793331981678974990596765298911523996809345232205633946234738567610217201592507286260574758177891421969284224746145066268620422749996430139226794377954299863516047701932741923183182387238789786511366243758899819044950220393618802640404012709662850709411089673614559772951035979783132819873733470602323537313505731798347440078913927384595919007201517070148591598649425986589284310170837048640127165744117441985753262623031947155411900257105224382529177625323548295609731184358782846263034170772507491305440160527142329836852608540097280532819881303765408481060531169158411641904720592745788147776623714655113112429333565828830550756797226447822592620354203171134966113149481949854133052443104956816357128526635196374471565477804476529586737112031402381930917189296616013319309407591728688268153350842170456323584278974297422275707651548681881197238845628649217615846581952260380961322975072170683520360489236221275448518065104129523282939595693643850653124988617734418033750401197322265370330932867831826110009024909907929701139986191269042529156695680210804929167842919303787326432645192977164586483686750010988666545327244447356973028722054590637452061444317224277184880219064142237564363256339457421838022318461635375119184021096409646739682235698899428397038499349978168315098260131569023243430907013402317374320584480280219525956349961582691026786429968645687334336848420238826268158712060884511040058224396742131326667514414616983060354917850642773109775422705515141164110882733348745924580967475620112900868017061816952011240602327457640381989732458818381951715345497697238394263210023661406817942815955036660516766545761313008755798789953411336498604176423140885545032103244555569909878864537545232077607000004370392172612711434229025214676698560801913539646864237225788145720465444301462165921636781322204417388574989897767675129252325467698472454223161343649036632214743321397019346229265895667787003170350449294319226837084339247064804833598167510660887148624105281122350577555612505633450046251202675675662275848203443419526324808631106687611997522343690220280772572296879531513105355235020011129719880143250379297877639306865166651017782131861160110976828537964002136930460320874593673963076656535937863307349165828943880388408555136630545916239719771577189968345221371250686497379857825480212291153061887423225110248584790014058859357756722836763088309024916955991449132930181768447085934856961897332728149852769253573918012033489028143557053896696110506283467683429929190724262885227671597917635603576878534809239663125495070424559539104148103776507039830187387616993285848040956968405132322433132201886235719990248206691561303330470162813154216913713160080455024763102721592993457243257265657509177809049762220215774443304107183433288730906773643089991811344206968349863466730200490137544489566602105169477686935061225998981341409424744114296628889305115678605167442038975817116613707102917468957817989243148754387102001532687537591280070972540279705118691676289801872246068506504524533551373030839820602774447430175518456165369006717047161839020322862064295288053758036770690902557137438742943693302644595694820917372352604992592270537220158345423911904192498118380512595983142558249481679503195031972060551985292464591113874756821403830287470755361205080188207227227882876338664017509050231651580068270032226759207762627108955809887010247802692235363034040618143881789078370274177858901913078752576374022961827309520164746743256078650218025851428367830189484853154438576960564016192512349624416120579590287455388361695410402927340756433540576236089663508855851871341042414949092545488565850466376313378478895157330606549506312086019272486460363657457348477521100662851315924733043719836539408223767310117667736193664616667843806065261268980887509603129740228139548988859960048443663209827536626355706978381817379865355361719748354683458007920959866518712595829933531141298713323611212926492945521646235950946137702647555456875720181289485085758217716039970638100245189897006045683159298723835957003233181163305426041430049266117061308299048141643888022484367531528474448607088733881331247246482017373078515285771840120656432080455519696259042861810063514379969023066548001894123634092277154176251581625539013277771488305969922759164485415243485916007513227226088039075155284810440137304046162866147302751017146489487646724552570449824469178030158173031537817406641481405644554054725985761026026337541914492612945223772164607769212740742413351279481980965376103211704396114360397347605458667241808337950561819719080126929474220768765147605225332411426016372482799340756203713622458933188523535913920876279415751143417071605956627362639371502132413626896538408016692966202000309696506152174779701841067512714714361852387706054380462625280448393939860766557766584292975075348489280153314875280958295347846442584223829624372812179055642336868851582172178115713552295828720933003962499121254959379436979579129462013857176138256481264665552692970554758660546105166946276820862587308773884068483121222538216403176469553801257403074448694753891528984407070201576975530827756953625647395561982636402378231853677693952291697476089117387624281218967032115146506579984491004776786521652279636760689185878047955013167960473560301852789331627299528423350096884433905910142271285601222907317963558846947249842984466577155459498528874826126230090744160558320753516249132004443656657439110855583242662876534425106256465931955572237916424961401716186057206228049249933021060323600503524891656944999049352117729221777348727504680714310952900720241808528347255481966649703183805359165915893979690134329606079659629330696283571690709877452952003387221773864666861642420607226704829848365277041516371273180184540040443054024886774696380916671738808109066308748720030918594982860709274036831739607970464274773899890934908741070731903175597812489939125119604376500631293331285784988812735568827729770885330841633939456922521922894527894585212040493085246518265260776528998739072574703489483528142570942424321608369414392874160852143821915719804461253069898551819753544140032925411896168836022938818392828810251314986180108875178928237519956870218378290284705745349487846995736118845950488084065090970031323425440594848715329716584647482211735785775614058556817506155822669054106444262695214443243019881510190893995349036679238138591209856915165027958989196255281408277903835557850761770078148657411091847901307129729845898739661241200875544636971819478503850475111074721964884863244803326546643945077388385735841886323857488445459257962508415003534179363300376964968533176634608515385853430632038334364293468151418072524586753608886237123790483366518305234165687170266420739100267632324395324700831882609982914057245993199615553126788190687963867883165044738482806161894521491405242534702619172453276479967854443775023810041039501716061185647608886785710996301395973165666396520304379296202692824160950303374233732895571390675897388017260056205928522614133387011647534874022923862012113582029892006909902850627656892880304854614721446700452893378483163056195835678367377273739796683530808269695862631873699014983343055135332534912382848553063454169860520968149950856955234577025537584102320487769843969819664902661346406361224542704451756085236584362576267345650037003175805457387192789036911592839928568122570611403981828679253322974299853640340737220226032351644149017853610730935338185336951744767292471918965836232136722824015207976780697366411626876569063293828344187081031068550002549160466113548113965003498451331155669049289643846536732432843307527331979092178496304032047332634279240638070450413608746446822334186377814211692852917263264192687763286985323282602511193365419648391674374762008415057802976787335411612196659735827539818429962288270913747408020576979438310760024701297170366586883371648239795144432584893315100998419533889763949184957059215793544875862281487825951698943472693672593194704628656001510978190023466721437363228521576495571893558065259988878971161938035996733200374320131904452717215097692494069015993332104403543553654600630113718037047727792715312176472940433107363168082010124949672008950144508832312365511002637624040546126363109957124798799006496414310105170250556600910207170031399861382429976960545656759641510295297672030073594288950866619864158516351077299226501720899499484103453529101901938331454830361218270281392138341244437869848743370513464209132861611920733373634500511377793397812435203535973157234921829101738723235976208811166161487210631680583412522927558222398698329247721820218506336935857919732244887965414758836115055221010597297434045688880003431960101002448924376486485552065221544425085042480618941013413712848499166182314567421607057449443797487585070866516860188858230225930879682478766422507889534896871488157883466581801904096522165318049561800012520729836557462222750715289901994625688992546180218699850180140612144702823510432589707216818875308793089383379182893390015607933391894789695681398643490757614514360279199163630330257254200490890759388022006927901836574752821934261954106841276051036011645596841476547714651272358360572081525351351293388544630329093706173724248963538103692665826620948439902188689124563436571903997744194717835285264546602943852701365948374783737820510043471261312920187866509292201377888784936967087034368871852768450267119452053453942323432353169290955859740386462974533780321840993222385828881521116170142148385089091768003347868556229881613230162366121924256796667106079369520971247238774905415836609154252833866473523783122999073414817529748624882573505800587107716071006502823725394558426412360203195669505559793842410686629551931420602785408702227111422645038162067973974715513439106315157847979408695632614201846859274150152300507743223780809748034530081966060359337376531069174852551876109744054421983919131472215128071666793881122274473409195143878906960376846499504410129044178768375397255771408960599376595901859072880349899825437681520428364317098978700849035611510613337644438319495486809473725521495005790634143825291572559140617142515163927089406425867798593985760969106099080576926244376804892129723354434370492287081777561553789724502656559552972892491389107245647939722266745437465738362286580008319089756384539296159586456793757251817029498598792357831859670682193708504691482323640295986253031617697895945592469497669204549140476282231015560602561556621909007644706154429636436173797994059051334900594222112840431795104236579450381753781033136198435735795996155230802758188912248991234557504831173086795208751552804965785630989318705458782122620991864431442208618085953025037551920986520248903702637353112680788096283910713147516035045136292107945960795290675875573639443708487727792301268656886762470397797176055988326675733590332553339942851933190924531611178826332721392212313361066533499620121375131919485456437708184152909625088498566597377295273889271397444451876310646472086913966371390739944056773071245550388030010884102269618670619809346102429282214668236730524600103003413355655342076285481433384938167443109897891032311510343638497563380965484867889765589948094207912348715218927390456153178120134694501795003787357075456994660412506566503057442821978742397513424734616529523225244249212376487737926640099170905276048612924165174142015055172253261133056176596415134980460403269462206785287047870575137194992911353696782593449114551412369176463131352274002361562910889627376001013792212886182760651432232325267977986904856001205912843754952830026009994782966578702584709893212799381654575449520237296393700019971064052567121701814436763408756948242560904661698589838009543165786814487865916780190719488107264122053430928703997620339060208152487820985900857602981493132409098912631240165041922982186089776371234510131100302712777264567300770165942852632400248666745568410707652966904009578557828664077904418190475888963271822807692952967770116926842568928059685021533718489550515880730720045137455501988889302709819211580117766746057812954289735042944785717807904527211898987498193890649548878584560146814985382107528222483706819544741581614283576533751522021965771751321515656340095278897108750856859538964838662476257870423782274397727388143162158317740175330709483285184742207136460462032936520001675432884132237212905039770531209158238115724657716639328493577437030591582121431190131812939885104246360294910338190197889898581002419108735765429728057291392890749219210498169749632874188128881735435192282553187782150008038939732830386952128064692575440782191829664588140808625509404537374382426617147948394687265553091223119054848451042812246514757521795579522712044268963681218410979801526917670760423309615519765031520245343837795305823050772743374096039428941239540772144263495003868957558782681238093510041356040124389337286683602211044259821142694879050380731146699826838094970612484450260918484396864684052967477029861094169333500786897486005061865425086238207209258776054198528889288451550438551872328764014075338300774536498140875812097567334963778351134677981232951733538893904109659597340166089886915476549072869912052108677311425266536242466714868330871214208333439516605761495072380153839769278683526505949087573108754632041200510538801687549400851115928738861589297428537527138977684238716331818522693063492724378422446285038213131458349675995408241899457947157598403211240491313538583184975135811214675027550245842585163462759038592294859745587419404367467573687197796195302981781216141032244903106864660489136788367782170903207007838832845017198165573970037965732321192676752253713900911438223786957404725363319878933770204078750230211136759054911889906371474826197920614382882766289953007806637332237914539231194810633689418374069274205922933908838052275982107952511391403554497112051001890691476153191827757646186495584475938568917975931221353043405149861880802373805728496478262853851081353931712314498809831162504438719077384891741585048504802690467087032639089912851498291388425611085153978590083292983378451617063755949080673606770681286535866140571833790656602360447232962614285770693608957493953586208046748055094726947701818472994318718843762138996753203799561645273710709058728879604174793669990300158267660776494028098753591159742400892321659133530933740302736170247359880835734482894559829449691715215658076580296200037534292152635179147231374076689728830222420213674165369802627690292367612842081886451182677108980361146543599907665082795913281193826288223232671939508183179990788582841252263751527900254722732149571463252301584605912846801436429290865654493386323210924710349683573549944956873071204504063261758724041108302874543342769450237703203392587002900968004405503467533228013623521231201747398692966568706289476813517652889253199518809640733609610489983006506916008348292526509262094705628843241335623243363176204387189009454189558768511027174641894164794053057727480031226328113883226831969585885739433007149479069017826003370191190839848015051891814319411970104716088931495454077489763021355786370292373170799618687176816032198866006348587528038350893467154991903182064429779915101537844035280633191336987336506255656862282315783944079523148418369961349721131360891882921896515488107983414680090149589489756884605454794589621183516210752404941857649229422978790363923899560163091819053903342579789089744446070569637885765799998054690474128743675858811336941111488587409930810214857533864052183752075332019156669794778700836460177776378503176693209343907010140829203678699623966519215449433902873329873017329178030308988034324300534930116407757871477980330681407389784105352228288296198396657256118178037844184978620750329258117479546935882906886946774645939475925910065323545377988102186448260190871036015930423730876918066321125034424923445775467033537360926866283371136221337910777406280552404885824935585920525394975028267033929680542652847450861024105054422496877570442241057726558318870428957185609652269840371247220761503207646488907031599742342785915129388748633425426250684804092389878523678270384431172673917234031397783102716557593262809433131351122033753935972401344335041514829066708256970776947927562059232259506599343158526199364919870669242009046789917142733890991443145965306874702175660886545544116934823944352338187451384849161892393748707027985760322546930267028324341561445806285379528284671831363135749254403139627809018097162980353677632143175439351906966780833041190186696121955868880519461986308287650184727715114503944465484852459624776833018532761843279757677118970026463060789071196508543811967214054209209286061771742737561946579935512240380606921703698003659998649462442191338230313244586493546779114184437395816672425001974005478107787418406186978501170836453460920954693648237325153840045677427565291468468611944697548232933232180376998666729197347398531783785988418270886331928530415685207597399481215124960006078672931782813257955862563761883559975219202754590062254385297109966996528206845941130294822984385734967463616947448400259732919917019149127236812340995710051477087208245279316842928292049580250722887629657116641536072478749589132255421071419589055929504445660106660461004523782352113139835623949720587329526768836748989787953385641734537643665602237912250756983545168962112843395865331073694730785993352995397027431482276257063055695932228562941535815488554676241976782132956839654529492525876230926076619276580372869221281214934300828733284614921552655293194198892779452955366170009982103216416461347025249847384735052074820517206083065716932272989034470304523003182636906007971085176535864201411068783395746271097753828729554105805045769860231238147167095821553013430080792210789106031141016555557377958704380663221742981778003385028526974026507205369826775231392662295808265717508901098257679170932473344744392830828101639036768119205704362404865780802826159964297815252764507810729841298486089162176578325746056800435003496624957355143605280856475567856456329892866105276643219543535327134904494265412717514519754085509272665870979228855188249053798048390714199769197598542928608674042919681397774651634737840095518171171693680743141852322336027092812382458097196592913954331346329379184529596279896752593827339907137535439436637506965147916648005130088505141893923793412927096083583329496448061756956838146474111938750655054440263693824840151661329623994921432630591633537418025185993693719147571861171464668372014832847252611443877531769046754848245029653810670561291676782886547959211071165092281068152951491530829632735582662682083330444498879514249231468036014927564596538831759164052006106787230842489297982951034224847968666075614236126294740667375833582940623748367596031066160293907980065158516880098642890622563176929268689767460547674206056081850565176779086200622891530177608512471905472130367719462860074953637261010883312931095238847102344084540007510083346895567633969081796037968681993478811115429770652829175925620948082147085439511611046613188451332442806662783853747779572154771475055469766846856802335202852298810333601838535376675901676958218823022290120377696782351979341303483092769437581668547355469020480258028557319991143071082093163862828763518890209359911496183183289156769918020152605676888892357383866741685473518881992270594645670789805876046288641450334119337064537432162973860862546550987764431948243552171138407853739935945167164186432326866482652420374575320796557082970823735810819805627899406346465001721889585648711622061716056473427552221790825255034408952526263199361015477743621821648914500051758573166593386962232915675441704514644701632426422755866749117594686405496981287324869107545978922325927693952441101385244444826692097214544155884863114566036793555031404434538427537412781417685219893206142893057982651840176198877203596943171522548182169519669752021722476166924191136025643160231729390132701351113704594726607930660723721402865088479762644427598208972501688416832105282282122188787680709246763798421583051014443772119420746814017714808514834116911478062357520742977732893714049556681793203784187394543807383327177039058012641572518234648628600950736644483742799748164086321731941736697946119205024969101900634760232477841780065468927434054558109883024103217552182243698613996715872905263349855319859973071627862769735644336930191986965137492913728544465991036011999440714469255302687987567554649496281356814940701303351104890676958263107926746963280296025133061626871471482914898362277298184665990044863855905191168719488140687018957596359269371591796018792332352988314489370205259721525615251490301814461816814849935259654364753499608060348246472186601252599701563326452528705314936909775245616132641516854186559683046163713684624561802637481961523052358529195633547506833219677653433447671848899195460482541304590538547944486233152704240756511029146643286141399064778067830623197141513163171690904104124772239294458076124048941696429353342245600733352874039985734397702198889064066334895559766423333788353176300379442287542540586196499603868238004028220446950960245389397418495462848028310816547434428780387121657862672043478543651162336871951283258148884273795329409964858869819622391855209246640883139309155509485721950636191682499917568382792460354018134631673975931264401480111923083279695439227522163560683108847537710985420213440394608486946821914036194476895018477862696071474477439726728866036680816326425538284036278396159981922330518304703963306741025388089782338328757688801778552752518466962908495102464421207298489288511489427328200451435593644406270129698734163533339705046226980670710888829112301236587561609158748526320191157571610231713001746655204932134326146975326695882414774968315432911889035266343126889105261286166241162071091071614444787034906455163254040261416152183809238950897572666612281247654719691594164557295991465707359381065395089946650571895134841329501757172795303335888058111687932111994313805636679163372752439176274017765352284972607518378497493638952130966981443425034197474299367767462244328529801231265717409215801528260199532976041664036618588738749355590803495914019571619555263172229218515582741743963556249340971903293509983883804143372133196949527624113017065320027744184843199595333074604492602251214309795589426444924615303543265211175170101014928810825052789696497220687613106917760473005222757207919487994614104024299277799434827429473988889479467975960137258041534778839437396135365008715769829393630136455960337722300688636019848244738647561479044292225501756323400927394780280244533317652416147199234406765763140501017646614743343301448060546715416607485926009985119002525012149707837429993312279187515166677807215496835577718841316582610816974794896168073841343247389107818443196310895001534075673288286773004431637396160935352062821857416223713274876771554941165463628284040263960360200713736897542817544723003866121575198346951667419545890693722454464489032678861253241684510615292009017591588873299792253717085100024661622247406691155284680449228205891911593964307082549581098543317438991876791958807384749944329750743449304034729701964732012563051277468575556663906702576377010488736165750860303754684527289567821306259669732444412160045204716531047860462358832493235311322950241143947517285357937757252921873028578099124404886607682339774390670413098419678411038779236377256354895132845271580635949752987191078986254835472593064157402108090313048931337241617003410839553686000762426867428311513882595904808991470272791423051360689616984704434088133893538470500085898220435983155929194335075226361792766559214574991410478568159944693554420996377386242339225905538463832265075197959361465134265975943285792757398658517217718064325678725770225181545973878446360651138148360533947520874338296086951686976518458331599528611795711246743077265524413885594336283153990111118468663126057483616607248788631984055756312987487266017758516344401958741853151155637505973717591474333698653273303890491002879386050289613088713222682151208431569682401812749564233268297643306861409874130462095706434443080035168804358125909403293813133592232248010102016958949379157879313587312608945332087318643883567916304623184662867369702270940823258994563349606876148996909366189261201459459332753173217756927113810305089343328903220259903478970587746011879600796412754960836456390000126283539635613890055324114542885482710967380710837380935449131850079646004576215458073988145889003528466585332186764737972224683232341730715426438991219193347987970738736147198272611843439928223528694824704460586511111717412682390925380116832396399147135156669442910197110774735098928695951964428969548477877342746017252566159088278906296778063212947693938249344649632663205837614848307179865908400540519393142262226664250688738064350621717420879034407039909106264418542569348523798111234606527699314894085882249745008665194797318505749713675599172635394433407561075733719119523625991366408572133496763955858582423483408340602679625549206400479446121167888646247346868903571112464251262688703397184082376365060669841490107154985011018429559076480460169529295072499654375999438467268855271215186184266816415000134607907015147510593568778576378083122358834187051205597775735819174631020401290707842853244699929184503881964047541240861985131695906305397039100764708170717698874661997664606709606542796070926040353833553454649272900201036895868692225689257694496448886719729086376622250323491468509843832295921189127442859012149160801159762225752699610661175375710696176073548815684002731671322329378661228198236477071505831849335124266878649814278754948203934903611603200086330311873132078761419781836143665522362675299507391576714006677961911408834589132580934541084782797376558103159326378060171313825391477190314383123076614519919552569148263284900695387203923873927470323899839086090106892094260629215084163829679007822206403279658484671599991584313452824476969805114379574095077830732568644595100515242874963759279329098249768032538049670670529899773261513085941858684867055645483936905888447427258032097955845078964990233566437025363226986956145217359266571499338802132062633568278743085682779088428256501377775147298881335938827737641580402097479785690809719256329905539278295387149131776476104731500581353284640228966894400817007848228366439846209483007809538415793888912843420344417587712597330207339555789636608393775038814881760398232543302834781466619269698095148955138092435369872170570105332487006502954808401872347988233743438832506617327135655217551476478952011674162940166112097273710658617630246101972855169749944063296190327933868798236381273241137623056582206072170151240669038845398325231837567706520400219073111660225535248448393932522158033687096951255722508599219571949620697187016970713190234701797747437501771813189045466294278272357453247129262376134571251936158806372163509375766858738711423590188741552958186837630400661468389245718108938115088010404353535243566483661273338831508502296487077298114811047989105616945679306561518372265532178000533253056726434040746144594961287971298888464053114568821632891199219182026586224277432868111867950719653996449935648422541440342658186754798744946756954522144813824873086820658768847556497397948722470993283937163243805759111972756753623085437392116576224873636309826327701183713023325158013519465701720933018321137120021090450817040616354319074293235038128576752165982425471433460473766072370358008402482123795533465986677874153579830306277123783480021215744979504111349992979239192241736502542764745965944186610576871623334175226691455848341594202427988517215867988733063760953584919817216757261152035180531096917678863977853771422111057841811502301622506823449725464724142023498805031273247795971404495568051957972290510552573258708119086971481063869757222553946845221012673847960034838781150111061700620580427549594905573288192533187741648273021137460776008356432758212626250259226734978873277381693772232387453389989002330856468078405852667376529732298026394018299577279734612975339776220745101991854047898372899604360015027703361501260266516983889709204673136952329097034399761492423075135128693130613109936742120001546825549716664760071551032337571631818879446766680276845959616131769547249288948784977690075354161759963069978200200865448727673419357114804198151414158076642577101816689587485055350219072143299167573398372404644975211497137916337041805840588306599781899734943434483187135830681844961426865961476993955391720456804537476816333961711957666377488124234259245198897750139844488920053685886798056290996424471334607512062718592410295947695680759749143586914401419703526512217546156786942200404314502846505697520598603337143646402701044600753374116064420516164243293456324875959322577925262092954057169649284167567469486269544894760109591065705589503650769286203819964943983752356447090380392773868365755586406714858241987389808803300168897138863926587916586945917324973838643796744436605093322602906621368467444763708878387843386325379936571498622341758293065464651116048660034018529169091285238146723719675317421651923977837811682109440546912728921616158554004885196849846446491530928179055466652601685900368192188583549821690686132886758194148795189525837653892188387493783092488129174011983412153944473166730664219270401812772341021627744389080042096395048599281766495520859609114419684794975754527292653705004771563813994509085154026163535500772577958033901389097710890032316775974833641798417134576984237978712656081130762006129062454322329702552763988239109234908364273849559625263046170822049389993757287889690158825755009639910500408240343319035057451717547115304510833720455759120175117587267455235058788026950044053815992777525212285965411715547917710244601616560235636502648543676013167519433887754065555035428655326882442372118079057093446832594772773704096622206489737293123970466641974219502304538134025932084883087630188301505394088291055665473701256694796193274853769422710394026768414618540485725412496315461170094394432725928574427783086492875744867277997296313250580744343005354358754580273269555171483673044139688364349357726184812426649217951012596897309102265475645757805443937170816125132439855704779856070519315455336065490931473100499699650798690717672829004093677175490353816799629622355754471991295050405483651927069789887541767382109219737729514920393742341443260634798335733658865636204978819503589378003848092556265948846188808065793184037920310170860798304266606816926294522467787995057868781618672492143719693854521252279574503610512709579930766649657645547742909927855361436052563233943471073892946991304978971689215938453641610057864880756634520880641682501266502041375514422837003169127650586998849903545683736683102447086695317652007120490454318582775860033696102773856161643135061930385450563761728253950362198252936295260445829519249919031497620390476344338483944513175633428653320940980169970465389950100634095090632236402635800887374516763539318217409367166407921341043444137635198739544340929127155824399214462423148237628002311063599386567671629086982248194040289108257252731179951619177604059051994692253864008731556727975568780275804171887492794430273519817207394815950565987530026009035299817546297270227010604925607443454733720898873335071807079762008680066273232028850418344317686334968275932897272513748559152661057467149489271538281463601355238998082057215956326396959123897228330941336501782208236226011607282006473509477545519258744813848585060371331202582611537865586594842629958824966436626944292648126989523587203805316678195572795924865318515912658154922205909763191289426965263727137493862288168540467292687434021893399148685963526339290618887388767485708577759879386453043810804291180807611741550931159928959506585878713837633850890318102209883601226724743042263498503671354884533258264527025143620692044360134971250002665730365227737818741809306230214547265724382709557155425087085342182524167394563879175623333766510447559011187532182384619212283681918676757470906558421142917502976598527921206997125394390530216871465618781664676002895207709184963054000577569058218600515536692613984538569752853994101322637530370587834999235359415494743834495860638424708610274902609735112204807298157700749540022086576215207525326315444524819126396005948656610102857124902720501662229707277929304443117957169700034941102532151344232115068645670511082622046048792989669613426128539031655647362811899016279679094383047608477862017846842170236790955283081407545962239240330042305631581200283180926579386531417395252367610701303150795890475013389864957346951166914901334965996765295528683004349020871156738555691492754046163253164901242355248093866211590674859973147611302225076103025548258582946528730090608279505538550974662453949028916363586553414873102648740800745752532573614459615433795108394461905064742052375936363285142061200241173919670581276757071750924612245950337462870802706013028162328678001382036693445905487916422234662194824168643781972973324642531655925750419963382010396737775578829580708882410614864407810030790080882540801765996792374643595437797443735450179497595093432430108568348411047708599927465144700423277442951065202250312289236664866763490537123603504138891706269288284894659767677288883603280083273377745277549421385783616991212045503651611909597667835770886658710142179275199212597993424599183766954947550368072911393619434703831692855413817257660395701399720620791764916847759777874667238331710696330367709569230154427824444954310614676493985435071622955098956256165696696458093726817230740299880658813393681227366077700277213458395593133094995367234364593553961334112840148361949445559303085460809823064977781619729641536537034810475161564929614567716981412384005029770683469966356041581985336895150690988144019729497508372079166532293038948157061267732363650318560877943429452698089742287868671940801641157448615192079840161525768379268923550568766505362338165068860338855864982304331597156806922310330984651477984589641111798609330861683328393356105014119540071555707780951989282941902672937273311346001079726145331236094274045345620245698523306877056644486019498273325780357738166045639386286583570407574750955140969231232127088061843207666629016340616056803838066897691995795569086395851191625583976633333652421034445409428160880611854588381360346568245730520084222917292302167067422351842964575714813066281673386088588089335842571950875706216962496895131308929252735513473717658636335462892186048878967988259228222320044093076154249906777141156467281257141020867791775138739511010869916008343980713158324115550269896724012370080923574203065740684498887533490539789178939906887124759353872302907312006537745710265212127238314251499400192879355314681587840898448686761424331747581876599595328788676734329593002239122335793264114434876376765906741678881074413307292991928314017564332383966090934331463385798608092095295866394479877032663102539961655679438831811183544293837215875783592937023676887264268072368929424215149535009191579608773560188712252800421676674702250082717591918140967692116073634496823545549519134329050446034059390987521574411048799868199975033996842878866060728169405742162355518327040128804457015141858657154242819083458666866165722924977282500058318099197993090243932175497320663132288705252137085638127836760579969015616960094974569691833836462261100187736502589469533747620945895379866679886597319654404542824643595659158274983781256387022871485108856885400425733540831004561244790566965449256242518240487661475911374481081362206421813056175368643569422160535251629136950160293367728762515997007659446912061112712071106421660176216678851890645788672082003175977276720437157206296676846564074347144796316795899370695276342173921771652909248686796845191330161771361627107894958643402364691837760033029429322218078023639878177717000343859122690347835795288147606829746060803039064391103979260228591868239950075045645256024630328292068077879468427926157775663916364106882605599044457548244100102177751163556187627618399513296135040245193067846318078392659350379585449281334070887002038090149230946779300486875919508528400550187572924478739889058121711391671634797822260423945824696127111760171551993351334627542887071559095638417438993394639218379648378366002963051641578698082238285725279538378600204188543309729083676606579478845763230950514873460688616108489067499244303734591501086770545728163546695344835715204850701694774187319880119799784704745372131345486830855069045309996627080172086119010799280452090398332106459883713567058916526371865939037857564953370665942580442534597085950439778974308410751397264717798339672336261043667825868308417862068080469790091736172291992536149576583314213231613861530442632468799576623569649932811150538566898341976205805280755769176785600260785666318902586777322139851286270598150114616900740125631319866574044058913398712953550465478663194391721628901591740224739728548792114456560665420128988061585267129886157453052543053997183239694745858787249291918861532263835288825127269044936209915025577675100039655577712941839524411614865416954136223639303756604766390356575017070955034527270728352221051436747881049646617472121407696813619863617622983675250772998613374822579844374360275262690661134767799126083455325936755299732001981074185482381587652576694271213602770659538603216461942117967948001228399579787714346061085798091937991369041808080594073191910434487697516947786772783978507090097141344677423451728967070232403052746259590606176497368267661779047536995273917283718435947744158923534026640582094746162432785033496334914696199097439237230639840547662872463886687939607960785528604637881582711822360456857087369516052439458369967565623997163631656129764902447122685175891289339411837609288073742488508685372284333710079699258403888108865639388191374248948531434051016177555216237562652418613366663079494873176913756376910661658031657718455119069582296148143095016707083751958974856874165485744758001142266682004169027641166979269022064507182384215689559407037734688507409825771308831245966478600061283170742680298265126595027950705013413631708130802923939915853988419668790221613619897488302260605174631813416839230472475353844585672440590190894714577813498003842820140283165436381070027137613507521422183896711695913048804538285127476411566992790131268060027208256409399634117822025570200054444599880699638135311905874116348431930418200882564887469364787414725934850100185112957598934430163164797488422550333247987385115842265801120259572638577142446725156438440808793375971212638372760946460757193339583352647924969273801412733670395978535898166266076606101896727979805894014384109312420313653320856250518310990810198160513697355055800390551903362553496347953898214303376017816618747097587543895964080781525321961226331423670000375755695888733526753834376803604282701057775403380328615156833989719969154930044310293704239346820491176099707616733084582010560271933743433076524596101302135746624091035341609835356489001524954395402033662737416812080552431250071286200444496770692712974876598629091445082605129332973585072291678631801159159832807440523384016330671470295458477219170194181526270062047000226383569713266871104292139354996985877767727781800490823156087620032364468956773321513999828394406250350996780219931421376907568734529748813717703653877760396232274347666914841943743465843996877662420292497603944593942822662110281967072256152888399972152128451873990388910853080373500302217434884176390568978598978933715486939216611107548728182153722829323666108384750390724435715358098001790433506409317261557965077364569609832356184877889216482113929334257563864406826145119448142299585592699884748477814664144007578293654492203190671726255337602309966066327853153469227559215076513555646732988749914133715103915326595399774402124499213977352542935513617173716245125935710462181473733980429612070540025004488796076193698801301380418395628062126066697125290614599052943929774997774364629201384732392621133268779380194648219023745139850937739512738027730301831225799339562026738608940459700561854609707830564401320110168341841315416545831823473578761602360667265317438549911507250629740315700289506489423535735852355927252801781242996834474454694565396051390807633734602753483604362809391222156922657663992212347648779275211736486456007885206962552902291961556378684952559669029088740991002502947248394325405820862844292940271187529037897780570768350281799842483924795124980681579772111964442145114140837068749538721646219871734420021630459426986678798809834601603657388033410510134359476806440705324946981820862250504598274825305143887007836407106317033875939665087245114611895882376605597941134875784859592668054898900068658129249554251388102761435566406213706595676179817425712683185353637416951375988905538224147677810587310472371064124998364721713187817925751706359781302909558380819752444477590917220546250523410981261632780798617973149587062518360704922221908138137148528452432456690714789152595902234371819442260289717542885954892774310818329046502620639879287699498904721437370658171315905768799815058556598683435445763489371816064469572748525427522084606330885596310462305032490531481115150293475703813585509894989499788296786699774700349223122600558112812960406345437125377803226407149630015181726664783476347203245944735507856323526235932423118261035168422092243316712468897807167906176161999174808324411906105841338584790032016660739268520255874263373004773927916346607029809001838259761144824891589800179875417572138593739909226888673114144235083021686848361616260737359905476681342783933004778639883198037631527360770538043086747904543130595508486583424894749505403987538660687325436953257480398500127105458031125805888947719105747448573204668949879359950819044869259393780441575590580403934741023403912748724184935872575761879810117788265830920815918596640312674173747352108240120431536087569592762335821425025273841551153011869249544137749781325027281852330178075441601073690559344143710951579848895746629524710727950801065466531456053908912611207817785579941711441826659647805651317538421604603551300396708309493992852210433696868850166578359033023398777033315022958172748300860095199212751014478542683280265836184411761021746569861895657731111587723289443478472347583436177387455268643735058338683306617645120104549916309863717625919055284748895205683126539070194740635781743287268705391980523636687485682550102712757523106705866124273952555695857469199830559490138421788999492231994435790881254510829894293818345661416993038817012821180410811884303289870605241022389752547694129501689213042598033387707056753357887130448077231312542357569396710943009936361720867931054544151574893027486198958414428186158955772273958884008782089579586031595705502141806462403794912088410561571156688464281060561360687811894662662736173485992654145363231443078587834312854481152932102719995298159258145951026915025343565465989597359835559616039183403808487069700292572002360624868033985749925571940826704192482791676097912795131715625320419414240886247291363362017388244056468946988867902090426082722901156728193473227528009477167490303477461281028712241886443850554761106237270543467959010497731151562584178312823070766603650574550472312659313623579664272332245537759155265668020545125201978459486578739138768416061272436679911868109316211932433598633260162547045088737147855147242479178455115027323780609506822588053735420446638084180904578896548195455713311131019615480233964351213765005054682777346856742571469871254071390462552507977195428507301781826376290395190219482445684270391910117412503519912802876679398030461604765144708089220254650501312568616059494601776726253317879890740960421882014756560767531490832210747088085094235950118690594657670459365256476436162458486933446649264799634683807765474197300675808024439332946223506013965044803046165456115047857700264472818942465209770474273236877542340867194875365287476499261912466291840047566198472868594743030834310997604382435813696439305909835940085103245762922892092010013273205033735086869483284383442043641383980687611091283809966866582057337874512503448332560883413798768104434168211634394353632067482048319877527023176507353477394970622614469837451846695111147333701850930681288883271288296131036001176341951909654866838610056607490020116139561763637709038028563291594437966551160251454898082044545206104995357760872969710361154934564828465314686902972450033755817375140653172657968068112082770311276970562271066795840838677888293137798313905979093893790710590443372540289586182203349192489922299217779647927755814249373621727272370544851063775599762061577375634526094231063337369832908131255354403384726985405226376769506480072473151609192327613176132714235237452700511957087093887747503306370020400699620178218186806361764167991753802003568637898457059070160123594221150938492223317986543219742788693940623598701781921541682529213474653543521067849182430670603093597023256147667256700432090368739101981053318522678641157841154813562404336303324423315390079500908957880608852844536037569157517121368413675628597339923220632692952344053206970320857902024154227484275744722568965855900474562891348076869339403315900636984507188192046223356901746758947416269953175112941022105235163222408484683081571322873627349360075077221374407756915622266603361889528254601295428905436333189961666232278310288254721024161093552297800152896884393346463123035738457785043727984466971460898299292017758694307313637903452734532627514619304927274440011555508338612899398307688217516379209329109864891935913713933826501390850909556251285452937259666099392987559406164751590777541535285702681340690945722906655134324042065021987021379056461126819351474964604650066208480071917817781771682318991433066774219952104226103749284540071518811009062267147683545727986806850516436215480881822951322309979166807993931288590650505039856175535305129246766267284487755036724170181195497243159114201679135426213285870459937846668188880505361097964457677219924339010871251664488852984130725115724317252557056220271817213525594127872068913043868754605006641593911984512219870560479328702905411753702252592404055494076214428012962231524612237432881023164863589535589975956934364710292788271561875309548412798187659256358261393288303237573634016618014850718607019595760256115634621503530234083401685103171393935282275778465979582212708113690514144788957305921330251219965943428630001395021534529245236602080268039030778882784875851402675667467136718163430327382363712612726077748106868925815498326738470464658816628276885911876769679127802584301642510108350715176130361559748260767179525098256436373239083327777295507205790328271357450552681688555509600739107790975290512957500075018680639902428637908896516812587083068902950844229267187161468192426208804759008142454385586814666586624480170652728668608975897639121355975641449406906858269139456171645262307590982440813728708792665035001136567261919079035367587356816834927274617290998513984883540382047307109196724623488125692656882280753607983299647026795338559275712690408752759224621416337864896565657514760656246914194275082118687597782211240169307307394313677491690777478076074859571794514347103781782541613327395643437474316749775529985130706577571395958908698626576432486530262161314194428338492745858548837830264393946093273645623717487580645992357946900260137505415122035552075123732573956776043783987050588754215079910433702036582991762980219740045006848568376754461845376843465370523850905012859172798730087572023616666868502882242468797627127107156734737182932682617274345859996338050834722427989502824235720539571834775163204236559325729353090266469726649109041153771098265801563913879816842836737524518149778699122021568970487759154849138247988334665487948447883836548104120692489573118494218010384815601457909918770947349594987825837441760414738522697017926553850310190068462801464623680885214189346124229405364557215651296998068686046386253447200094676548031829434988355427721987451452622572018752836987553567047539078705292096191186430107350493204201039832138625905964289006569408296271457563688406261890533003313076241134208643922656377650905932991454785901257060784613677882880735972006131983550384634414585266608688638832010727874473675710319946096380252823709406913780354179903114683091922978620633409414890931982482477135565186050313286672350907391509038382184635815326415824848468769893880155595294097339448589049632554171318539077466337000222058892803980017639986497011027867439648810003614826584024259072932526022124471558363703893125372591313602211041262856493634398266675020253664541432534686497661837572166157645635655236361637243187730200799737358822970654873729140925112779980581120277379231677473130563741992609682518557504220475031731243832436565931350633196003171945706727149386489051257429285658158689055812168926928720871668875845567205696294106836130040181510470814105805320911553064468055902413465385294896965542473733124970042924284365347312888407794231604965689603445073629371451494959951001883089263817650413510716515106524296128834743462172092572365375251475318245553156632457286192380263658755319761846655914987711704152337363276978213869886031674187908913825610580183270698582845851255378744293705621140155110967621849253576364009896004041594587789697362576271848166843289949096188779872170178521599810726319951522202901869193734065664499476454209940206598087725319347234734926076760439368701170820913875207888195503810516742282991191962677317472438034375403306765291000715807935552452375652479559878120029585870096415428140749631884614562406191469386250450786557569612824992167934462588127764996165346942599701148124079846479222381651281216593469693829140179456039370754455257646798835124060885738314348191258250893387768376056393794160884619091532249884408642292354726749765656218905614168752765467820710177925857046632782132403235353923730838479398308165409311293314619047381926418469409727338246856487721883037888019320390360361442927641077842663599803252742399610200088493034157263799668251476752663854935537531866609335127047770620063659838151608451359721436644101030206445389302685677534011671124601411928904816755286154683807298169255937262165072538092453027671303060337435634254116386536278674860040449490733634339840236764878358470060769025103152387709333310624195999404610920417692240571945162832958077643811862150200616572912477514604929042504374474868111602476299780137621467537765075379468186139679905932698700437139665088170733361463749794347300406950238820843450456103276758298425196214488126345516418125096856419432157506758580611831406377805999104779955543633830471514208926968974209383228099535569727593391569064472157369270055214296428876866658265919819015580833776486694513135967780484631038873220454373586028350012023537501618801771773675664211897014612390294635297146414093552408583578580922542210969746511598885924776846586016361932121869507916938067988672335574010784905476787702606917626309553926472468978127156688689343990418516474188518706686394645541208388454330349197262030009867381363482272191403855150003678546444017656543240020216008491801205795711615768662013829163875008495092579722161400103584580313963050441491798559594127835096466548774801971788919764721711435093135027789182183134219976654314048053743540225720065595375533669687090250177772548888716864829530916697449852239897951912544703519377694275810632765670902916452472788869507235799904658582099420367877837899359320330377958665387623849966172762653658784924750691822619136971134656366609328104445541937228979711735902928715306728097246293813709409368092808672406322291760627729853235432993116194142517291381569272056804327917739588492700103211105189470642069174834235112281337955594574252483029506750249014029504979063246302506490354596699141237437917030462805726199561238787594980711681562664654348730122518693091759288950560753938520159242804360830804751519074685830729408202772969563364046250477068882571182706010113046735776565730051121376996394412917809792057466486820519958682417198438864239292098186750707560970104207646025640725071962901552064445798644499403819522445027647205815938860362738783566842047570505373004271782200682945900478429637577604135373840082194267835382066173456337933759788190456489754183500529194321231098686389556498373338159460581203429423222395249481466413514703150804746510939675513464255698685591625585094181578424960029339282789282370386910260608189064772623824841255439343646745630229093265897133302349062315809264183722670930442496221896576959086604762858441460930719533605966679319287462987389161833945361889823785602002821978488822808163148305333996817259009667237263609739272290523959788658865751364830208546347055345704664565182917606709198189412093992025381424198364387980463784186086859963765148683212115051156494649212847023162945985884674893088638749125506441007903375157998937210297912142583889294507069990100451050923726042811796796847805137527223338867531765320170056817861155492528391560345477797633903082957627626478152122197031722762718791452006346064019103661603224439124471487257801949569004300081666895280239484749123497932373864141241502152514532696600380104311061465534704799434979328911906110776703529277267249572347257624542455901734209485613105813200120961935601045077520845872597459775659097168121540400690259927249985367336600648304679612846708768553227569570598310979786115704704403327396018144293697768748770745806963628080531184223834026907146948379341555788429662593160903270150221753664627527999298671456148653505995796120086734891095812031757037877705524656681884227451773706887602866821552274298567106813509321273099276010895220348779394972614531481422994531256565277525628149758237479035891597829864885600473375465636483655133643733038960902777292708188907900979833684816818650666494099921114789207177622630075030919931730230460448580571114710967408522602122235490826698402181562698764746937298484593432364034471121159505106313686357092111327103139294978946748544825105191786899024913157622371101123874431670250059196758699953459456406496156363961438562311296484945980156487447207212342823455243706675379274462145859132935603798463906438645533066173230043811341147679339333016779313786061408807610306385747323559741714455706892971057549177155130834413225069187571219844146049927009007432225729907703639036346704576356008334261193610049936829436817523817364066472582834003458726650213463715244041569277851204966345077595927382219387543149241430151784389864683658504438387088374231470008721034019517005024265771181611725929250917539617443040339548870985590983935458036978339385024599681436765459293721099796023176582937694461112765844426380249016258828871603090803831982323121678236397615245578465189470445376776417738673876552736042738078740793773619545021743958102631388044533855095257369155402987925376181527915764439052223905252833533128990393472290556842348539264607201864440632467615524868730256510340113870315789959645995523056668576769866732135978908532711153576844243732646704568269014910813905009810948070415091065233103578743994629752651800767537295318572462115018811721325422622276879341928299469820547626899322076713400030622265287036661008882529113197893703969815100140338407788163691739462337191526968979671742930323543764287471266581941812178315606426771867476486620751191868044962485854066785681922404625550046831340130246839173871352785986596747628896202143851976370152743412762219203687897746408199085307427418774260056915674053062254435082446412602229455582451764482939233605728431777319065073067824460097010076870662326074264073980164541903909197577797899250777801962824586063611319145635878598718214880774472535662335039333974267499464447393562737214094295719248187461476083966800571221922303847797561763437293010581292941016930643000202769395997232090970404094373888746963053383157518446803833999104423208965460895809128797460856776896645420055227005569527111692990292618493279960803436263750552013938415224044142257514521987778540165876834444273320612332972052889690794092300846903985213789709008573567927281194842250452970857893034681385364342315617109453442760153108021649435801344244418850858953179784083773221065330636999834120756722741759652114242370485117002708420896443305497974767720118548001136136696556156367244579941361494471425834519588961448689034644286487668227968728216207897665541738255714602695396743310928096719720305971912191847972908692690013076100180329975847894784890516122258840344261827167486675537439621828395564535965861549118598983180014233490293828171428415621012965528733750940182793467721350404537537545054478893494887827707234151139359392825335517900001550558912100375986958559782045855898216260230455772900733956059571861208025114344634934165598941205902354942193735722065029244293619848853687607248395273884473529499088443453085651281293085259956505557686983828783662958233140112700590868120765442539585012376676694393099090273180701852481085131731781869122590627507288547119155659530495392410106050793639942426527538414097336677698444690944727113232297994190115400004473505763289936029218237038248730172835601699270334147269349087864173238497670687454228116910888518972394010776648763128310195575382800513025923775845440658723465175364130484357546338447950464536759447919515213683141960068497624901923787677717473486840808424983258655985977112604756174737410608286880655371364864982430582819702711181295856373759243840388225378795840350472201476141574225785498751491046942148836899744397127576780900951392006539429613178195114895372314467242527545932423400749990238806000359902272262216909035962006796675734563922483067863852923648184173400526896567790271793479943460576681734096594809242911777392395035935119566347710240492036357723889054640689999985363199269553276864217642322984721260327270962550545783178496321801594749576709965404971102058239159592136025633535826599483115497060385119320693386903327761149288421694695054588236257496556890850489625383632883033656798828738390173830204098900561391797146039110233519559780079408233298161985268002340842692460357853923055204556314481770656953246884495784294105180473840670997154185449266266312046336001805274629417937911716337711543274520307228292662540419162543488434213189743412007205662541182698184397586576618876346259205845466784948255631544086857552927897809641398092556373772651039449113130440229214881776684660713485299034106005136034707527911513562511753713263426051717822762716246928264873003155858062618823805820567617261301545742857865504920663023734476427477741894614867919348508306191846882391265035997588351875288436814716192126869303844066842392183742638261207827809808677184344237555881629585848054152166658161227839658127525105968702923714996610586940717122159896430760702990955140905821778818369752730288523985578894086679621393431705131413067743492783074901445918365247336032541377708926164573174586042897296562872125373831267732265852620619557692510802950285297007999021017888737642272702216976287317603532209380105862031704118395231301816208367638792282154400015843530243092384929133969333857598940552780747387444271941203706727859380500061698102506364521380372995405448640176230354728567476812339491459260153457989038805727631421377973017571306376895506250739288029951146297345325592526101387201923974249928992959173801852945728162963082925397817587910298942463714096228206394298158624808829924721207920066370604103420918638531857539141716152432734078077213758611291659305516139161650664453174021977943099754006837742531419332504104555571704134551773594033955771805763635258961086425806304797121014787203469979156407598502926168494622702949996386106665011886128259077184623352753873140918976832833454602359183230213114432253360987220197484738220324730572640346985977830774130584641575560682759664113967608743007961733199941353280035506990219758303154312721135188372014845977293229223931810490464727938652746257254012109851641101765200749763616063554071658984259083700108935780505662001768084641007130345648302169541891222045425206557511347291015184203567247128320040793268547096856399168838615356008574329917443916293511972219048077886343514335856787142194642578058985396045292416056627637132958943407259314702689880022854233700800435652501194811840169152245639391983384023290844707243044279893900379626631866515530001290221736435605548927137613039890892399075180209028109372763627970709727892318131909732888773326570366712151920361964412826026480017595827902877255938512961874230599087455262989506519091285031664223858828925064749325219464290260636939816397921890870779037585423611040379765578393061679323486884581548250853526621762294397622685664237758310079789509952329796696106530441543113902505708394298242279124602936399324746056748595088275100067133395133480734418001822912484848561353947032412348027947767764732716819111228252699863137345955311085878062729654660532761675114844182145392090686701684615502644476255096130544254908790776539302941782770687925638248763629476540709309765038709645750128993130783045236588116066509845370467476982856301133909633012437982458647244037549011226670898819227766095746168453713212173659709792356793230190584764491648483422381104568302701133340677864431762348977220609545103564382888831415601359547882326535093129546754724278502829341517445015338332258352654761612076591843592162617944883413288867140331495665969699795482225881500968083531312897100156620544281210316884463287743572984603909784390149423304970121979671523493711799060023274607132624183908443436581208911683857738349354274279303604054133579170066616626014645844185589634174791820184695671380748658285537656749122397520744060946352721193020288151486964090233678689201199531234231823445432594403834783670362505501245709222760401174877518386140017913976999173447333933735712878179934726032164399346755022928053910251407152036488472876489661199669094959543051577143064991140518383613001812796840700425991908092766465756668107905189831669795477403291023347622015710659168611856393697950951186244023350327524374960531183247707198660578310413488722977796635278731630726071708392284861995785192006810283481949376814609304967684578626849163786588394758458583021807089306369717128378119690162354772673012851506794276331124781529405601716634803434554115998718407596985723809318560353454446781760591984139595809532061607583328300755096526078149347208787735321884255459163154731744095131871915654136126504648285511224530920704876555120447498743878160360570960189171487060501649634235927836589930065521902684061580724294678189249546066517593387957196179751140779147913826958458403876099665983385226224375706700270207436995435636395984242148432081596620221045951802591369265292031510702893215473567708535995180289718430267916978764459058983654836956450682850101904623874430113290333728008087307904878682787504913356948790512157504512235090324063543717591585676908613070484286942274633138918461688699720182754425259244031623125820451639874652462769867314383720875015249240383586633884150609748091444372484141107202609441552955057343320609176417033845824061997112477977652506715719177454532124956586612037958065353439499866886379183843415979201456260473632202233094066326137621879249803488186458176139797768247033772506360007856245108444830058137788047965414515788940626203713181292809738501317847677018622569598695424470101848699671834459838801780389552505176583066537211744740531631339873721213617852657207998104063889636324092380472139970257232139362923644731784987646655294237702433562098303820209061426122448491926131107796287787921899523910453406062186681520832547687674678658038006979669715332782342180889623841603700507981416866467469219505764168067120019729736603452331464212736673255269394439870310591282052251140539593963544606749799078733748733509118472705194713503951933321476545912929880684616016984924964698136971489907492307907364360048650681001903454124060906967250431563046785507674853635458493400108320916888357217463745031722090871776224242483052948294976662821033298318926168723997588563370967868959595235012934569948648765789492387454167418000165732772534498945168594146894222641295720670478728216521824205084244136459525538187424926659511503039942716083629995180469743820121125210107429671814807710666210087410115862102376542381754120302781085875063638172270348831166657507788674300386301659067852589589379505151304396894750149382607930764727901053387287076867013776712997286424549200738905912021691071665558912728660112506418118081023455982810593284965980379392887954866512127829602279044942947315323918782610206781379713897327784753863474538836971260179817622170708598872943085970727709255391769201271271883306707936224223880868964949488411059219256401541727126565409019932907166183814624197325636890953037345019052225791542226222881127800618470201682258672920222967068907972623076722458195475580798342440761706049953734175842981129502923460330475244778498310601211026690691756989795739222323873951348721744559961747847940325712878447060990395061716410604658794977338280608438963399815230957640855881261983495529480697111195597474096898775009303869495676178211275617179967814264042067613322381281019663730677187370774079236657584748347605721907959705482114266704470817789194638369766382976949604235598060253090468658913043292918570808583705444772203957614516322173048190779583060052985566708276386289735256560799447552672815052110339855553146011849760391916432382876007039905901589934049544547078710769159458980931001607050486952677876666994822824053307251023388937218052749535287374417041925391589666780190052746952293236175817611743864489906660162077133534364838870304456541656509604141317740862431894756270742422683525479178821994317382501379852029872295289026069859948311606994598377401494074043813618524897848715545772941471505998664758253295838254204597400356391690526057498692853996600016926199978096425089874275304912649228951820124997853717776341426548870860772467838259434466645724125865161412091065701828415934734147255440006310327717450909221447126531039563178107505787155366397931899542069217584961556302521172419704213357332834381409921601104578275528292754900605584428292551719100033720794561992956463314140572362798840136890406668747096745227434141057691862796766372283723776650922964858961497317197772273914204317604177697307939043413143834249250064013045335231177158690020061115320382914161030743689205581651313530587437960993513010296849934498516445937866994068670477482050000641089451174475598735952070880591622096160881103273283558749008580532850789793910320233878296805792004187973065510274163269885633407151194980376346835493339418518175461209721003950355606200724311519670540578505855963017905895356698958711293010260554758043600221819373922673978782511659752341466313447645258998777609118000866731253252427759250382559157936978830536792784223488948335626454374540874655382419505047980329417245942871240015377329831095198631473356835316442875074034827870979371614931435234099306970140286604503240876230086264804121277558572769313728898121413466283846874297801750657047862910820969620335289729206375089620832187625215270881995698422983530893829614171887618800759018337615126724695966497390736472044815863008527197086591912355825261098801964542576907508302360590279708335456669675204621517473171882991038981304130746066977042332433592173624269807159754240870326811206870540664447771945198180034518809865073329409098794817447073466536279453446055989792900772226708977529147026625177378154205558849175344632738973357967025873461523324335946818977670222478417450114447668188120216208712248414420561093289352128079719452921822401456272544645996860150088500646238681952718142676391252247343643830551207196591931667833331460874041499481211003000521182866327156554779529722864715158101117461968220839523302402600406411788889423540283308271277863504788080960945235045901270003178272694870157029465808569768599819275675941521846925951307773249456421351581207847063099094529074372188684748781403102717726387814330194613460424660690358565263662741080491927590486019812617788831710178285472890241250588327137813796723114206164256647781125928763360118820186952116164490206040240368776233062996592346514740764774666299076694796023439611211968313362676259187423744349130943732715387409511174975112609021810153350482841183530978030464959534198762032703241370807744172912689064055602423226036515688009462016817326627640938324427558691061426154533617700964735071852325994310925576592337197468221033719549983137072558845593059133235242304912822944562731901081277195465184036082137813800830483452088700654138296962528452169827902740385944638386044380197235454512516237846414112069921052314590400318912310271137264577850443680307040187449812055791636525031418835335830726967147241663446516387260989658517811952439224572827153956473643019339162400761836360085156220132163986147958388269572997569102185703964116789077259075170302012178308550413073803006933434889738300262540263609050068523223421392626196566756219152680250066186194802516801609145791580156657613595361244047268434406960991274133521637796578156477785126275987704370421757563010393180175247086940267454541806922874719773674939750004972534415894387861353261607445005826883605827440214271616976904599505648572407751453529301396944107465227124286633552248615068766127240715437030699550683590578502374522128686552460963907692465917831951426022122875490207453515408540289897139294587038275186327472677072002959524932469341556184739189969568246246769418162525142041089105529795560142275347215093971952490067445832423486151089810129772437230807118107691241849713702376012208536953771244410104771378566004530590201245187725921146266073427915777640925595240182431424451378323774723103444981646595172282890638699664037711209980161924842453698672233317977483157452107303543456680434710527703793897184742765067469871079526296062830222960385595777083460266664850049628072417077037370837302200601517962776508805148112032691074246746657618305907173285815763041117574025648959193977361022473906295049163443897625415929991397774685748074082213763031706269828897868177987709603887653746180170369863248473643732549662399080083998868445138911899274698108085407431260716713149710193709442273706890556376050559288840057203048692717026071320182080183860868841056185104294470931324967738076609772747361374739335936643488305906362622558839880073618112163114527881401416928538266336403371727584697480260854079653762416950468733361742183362103819969262197939918350415540629791870639950754406943031643108735376249271525103968287408139818765318845974879660359638440912190418974139128009038899164283650776943227884517682723004288570181648293621739214227379367253168633727707123035509647593908658622028608520119918529269218833216203194759257121395106288417710041926112273358097579107331735255180064525169569419953468997299251066304414024273721290301718631006089863933461167807655770199606022585511324263945465857111046081106466548907020418710554278357482295593407375169409171205601620809089718413489162507485709474104680140435851177142393296111340318937086179633063375443043277663427001644394801925642150082212343787543190894461357258874959275103336911166416126455473596037278585088828022345727317986298596216473157967547743950391320308497710492535561525298552903525775306911560483298167673484705493396073868170041987383936536081846586761121853588745252454103253324513311409624605614175027630809973491619392150305896971974873489564924738750090792922710599712994508552634402860282835492106234672301304677534410879633358310483458967025088900964954505122555775136572668441677090791445209061793279895085294054865220412098485710405067613408111939471896304174317954209649705045639847464556913680015574009625815065992170864169147198761074881509363169144572150115379378831239977787104881084624820204475049218351382025008394560089522294157122700498367149075968895687034049534047366005177020213002615314525973019268080993765412328707373030550993405811694417401867979920958706421012178532119045980768406921714580080458369947067753989127671624589769529278670155392570409195110242246870627190089691412995024137196209356607455146108831170534329559009484903254202794835408859935543119102713034138023232614065873103542017706952433336436370608454197430652210788786509957978524934638643488537195258037721209258701079653557926177390365443994436591431857339348423591432351383469425423895273862230878148388105260758264631412662699346657114753601373827155668079673897621400172741556484990830512216103333801928415855518840789109306116373412665782618824612726149665694970973763795452148682657126641999830134232554166701192223325515943030832005983684968925125000218928571003908439744506902013045370528559836328593620496352800509596671282569349082006167301988964381464109977492335970053468189224176837564438793934453885953710313988087799812250849362927301540031067857598708087535740701364972131741048373630606420626037201914744780754293044122705440181830122314979495392784139481959547470283192277665539005202199448117841774858111435894956036549414708511569739783830936218817323901186287269530401494698927272478688690664244940388849610609609814778316389656265970005886758299540992874639347619403186288532399578535698508889981469817861084838975601567664078701870469905258430509586064858047309463446069494933079527956265450555759865977545623477023710601805476232422419107980856085774894942230504817616150006764772713171653447748667958420914912380136685495461495250421975352860149578921302966388081481516661385024325026886460196835606840473228373016321616957076026353183814486554065386390492436039088883595845190904936907213457894869718812168693716775719883097727233705782935484012795470610805390701706893280891669163319259049698451979637865719547831657132264150740093171344779602198875982636514450550255509837762509002242611435389323881079880483518057620356910378872266635707457856226492766578272010772233523746688775393364881472126092243645295603328574970680921822417219595139499013097356829441716295937789840704213316786185012962851262577823390004206751726032932374522089814087299359336012547307173051342130711418439614570179038677001378154124862909849513264698372616519974198214717288711942910939773729420263231916902060495355476760988965328454371417867432241747176793643434791581002925580860347731519092078880378535741095475008215812087278318538961237884220486693860207354986526497620396555468619375579045038840989127520578065702030536027554985717701772457999841835880026912087947379248143731352321840664684731096882875417064458099669062935983430187074066465685822294854196242131148247345419453960716758049505178683120374533970330576103938547155790118294558374304414932125564345712388880081040798430971049334444969884350233957623326204295272611418477629579268815150672666891778718395417604760390551342860749148115048670560211026922227378985416664099418527980028974822347037644336049627755728764075090869643000334266166662027805054496694885443624907659582413583448223748255325064617442522906604805968077187105532095966156228127222418851436580451216922641752868631671128381560020218471037390665121007310773315900538705552642716561510693113171845604515151312029683789195741074865462665769994056704262178919258166245077280174631499040889194909428131376381516868695179665877689906596669231062130148410129598639137962241265787293515604740050647708214712796957901355133335827423750568563334363227816592559835547652192791845708298882399581300672035301867490027128793615804651791380250222532758607035940119087984192438267048728042505010530103011703662744659758475420737060479648755220305193577415200081273925374680884578399821557509961301674667837878019244918844925848299365740663636653146313997775454955542187752104783885526950873290501011133955357305138666319954220954569326723754144946111656546019019969817738446087159733446692893021401211885480406476128145943764654975428674605887636052104584209987192684704653487949667124111445134476996091423801000163354298262887509607111233802612716781313096313042343319303639084512761228114058412844094738073988412822138353184875064829864157887337175625165291335939832064367788915616601434447553098057374373435525794876046089897909040216640154161112045508696042598327543031902267019793703138719155931365149107490310784908739968292349929189629069462609998915472724139140687466310426156798882270309810388923588651540358793801129567526584216286052232338672953311884758600502709393909969552261084445673231404433962087788855237390278127174085516729448735475667512257469842418508116840357084257265442433546923348155978964766112849194339915900448655167447594152306170340469504901777542570503966557484533212837305098476953872711628611495445180154575531211805940343220035395214648918197470152674838740971257137352674116409119309177260211100177679039820690119781302751779938358867465299126900586816534829929848483013664687145917406648192234820094299607315347102500972520021356999141499264847297481038758381304641556813968565074230675166376111695867397253879810874879367396469314647224381107540444648665973363184781371473638932141328134358173705022199576203561585347521355496098430939610283417298010840065687956056581200339940704706041964342598480468690586817246842315721606697325109331557015637640185665984013072570049874790959871183983137069414542088010086004145973092704120787600680944657426520705517815782704663691555925527083659176704839117017344919287845122283305637108090667458992138006932719864071701383246280352433467025233850220525305983740688777096154188383349092817188650461023274118177547504343084099202952839712646697418018520765399918477297672123811577185879170845325586958151792814791890990019319013828215660803697794470699736185707565483472045458065189600973032641183541668636060178191478668681678455840665364061876473367842027271904935638757011534036240945771530140145754138840744527439520593629470742911162288737086570842584454340072067429408378112979608152926681017500839065880483413211634838413782784510227806543106098625346354449270394399210951968072608230938240939472757123830167834363623952921916807811049134856962138824728158332297672468465038834779358733688224728949657837611513593446129746621491457440899044506611318577083324794303931514720664136279136231219554705075690165729633572491377511096028778818247772665535055318649388348210377669088140800044963389900766747260521633359591533164008875807789593697279338573414773971142930758189960224309762553828659794163626769483176014843242613851222530178757337283698274886366379463467105874433271580647976642736825753081639285212697702932262054603225345061115175582211849692734331914919503143487867095293880665309327109667601967792769788847717243862158980274503163500934815088852581978374497495290005790135796245824366694388405856215732938300870935173898745114569408141749190639545273229852526585155206337875672229468870635216042229646464683985255045030811298421011472711142496055042018599717880329234133313537791766146936632015910871745447139004401039199574093415488679222083171000009636831529661948918980881948368481891396803377306654508130794247908425618478750275176821487051305663926647743624732836243114455398485084855977424138200644841820036525706000451286908631469832291754240061264873232967948817110195039913216052568472900194043012058316548420523150011828829880154052994561782607556392322476863272559808941537888977117260431056784841958677296719778743955206426283105462299779894963526704209456117372771439759490767809500682039327761143246155244817747070728420128200563414304560749564071826800744055665952422154270213309640046056791380621938908401451815286373935899452227479057880884026724677056535033084259730310547103565048409397577407078731637058290069459426930792868259188521557155278318609464952478059977774985704366239932633023711402263149080740841703306075903272580858540805588686676497869476183560209996339971410534001820934246936072483846443858737183137366613614255498657589327705855313206097874746595136680393068040172563162685245447117662218260741149093562874335669771190012561994424983271296281976265122114253370909025351064365170062154561039274755668262201204648722057970552101789585796862915424529694973729361024667431258164947407001623676346616126358678793088737329372698776530702524422645520931801039303216795070744961332791604488903110924940059933907934591713132017848881815554187783393667906744966330110265271401178449736867659783357392113720014484410400423678567052697198173306355088623146260065494606224493551157373021202368771244341211190177577046793190053180308268053848796667147817147852354503935369614513925606896614794080155804787824387388973882942366064963671388337275546328957535513959265242250466121226772846534560438998881330011648873285694450134489800805043465075927741341233188582297531714797816040007213239744345803663824048748466453043429605199967189490996778946537362183520414822130568007873488743546960859353733976181892882282700417357753049385723767165566137312460252058109346199611056957421933973105793683442016313418173297377373552789074842784651405285669594331952428584683189543709239409404049586174758908604340722490190785657866068131203953626003680992253652595243940679828924091414070892267072313695734871254773850052121607517412957835767014515074249741901048547255744279679255960982574943847732280170927064017516197961280195402817589375575140091166190979351070971718276558368961222397636403387162403676500660093717827195059062146078642659150418410032338260352690291593649407224554341692109222526512485649419306995453342026238611470769019678346243275733151885700811659932757843707216268349898435593180484224797140601438373513886021404800892224730611899922828923402599619716986105373319953880762128634652194714231579610833424919151424970153306927208779190724859917143234649435586946453229965486359145364453649236957939119505338262084619278025295113605910959399606851072992704950911042323858608681681010829160436877672111555104762669005243048716987929197593801833833781084961841775587978198833255765532617655689868535999355552450881094223769552691753664108749878102013817228904543578734028937112075773797077951934049572852199706421953937872853789452017976854250843054484654502551437152375331256033412168060532599573699777008452126762442753199282159529500434773654180599707924925828305694173924065881304639118191642420766481124072344551896663978659818186078559014970083927682552628948943096452912342325140868509085438673144062492547076016531890968714585976500432256908733162896285846987833790336340675648011285383026599769593044789249322236034085914774375128593976518912004881245012963845698357566419515287402389745348834226171788437336263108550893552516666163918333435861927486800501446024004722878637400670439122017561464974472517310144641477023103327346139893874421537148470886510248950839419321873847696738554918430129984190926382026242677175002608533957864023226768516258732436917303256993144741626303528060649504737821428198166830801668173876307913786447844012152954837467474139764746739964633373100566195702603138477190045260622168412823015461466261485989833829503670550646048423477203994857503780728191598338889958688722977052143130199802031100255457684773176770014363787607743714435024398147865476974704523919256990080375132109427255486978148669814213786311512402736709082763015949483954209367386746135115499002181377853544707970576046858576118865828338501419783187576735961050589190594375249619581865049731878996758142575713079929238255338182316908333998791984608585132723351236218692146717557113618655625539757643466658453955732445486212290778832515208992030440119219210960092088176015215184780538405218902471636593210719784825859415362775588846636504332704813539411503613024777675454996180329954755834500633843457187327959871710660962622155129817846205873356355164692083552863186997728388670878154638470134482406536231676669361395093506139769476152550992000586954509234209705149262703784417221299341790193161699194410810636824200080403950631256956233047590606322146040592720672972495208228342556283389881815974888913217778711235717895673049305131087309098094542241322598700055894674215973443904430445051363941558299876816328137846763682003179483867601613050427265424660878629762858219258738940883719653866831024165164736236050920498434205202964564294646878490113281804407205567783931650749671272336778218964305671248084991411515412037361950672399504853525711232337890561912585262821929989598700376259807642047722847891753125994833692110155912914400267129168149180692262498399383238335714053866592693712556550905821347523554719563835505133675657095650239717370219858356646699754044002934098727205257990069664115776221141152670245338887481403051570498503731559475539870848199106172352878277080540436157432815826422735545078637328099304066923749998388006292353177002958048690122334050816879107382467747708763811115262367255041766964612839449566271121538246361028894403721259651735657546382496021840575063623504364496312203426100027891725104026114451710245334962562614406732967207858974471442142295017925493212231974584126428460398677498114231768204033200546642948303897899466764381180127353870822985834543577463631859769019140028033378497000625321374123102552941587260595587165834103548377546761120436982905834709896490614793020343958022401417809369323443916957922892081617713702545855699754400906651088917933101911782334403273440821183501147599026132329196698819273066873452399616847930589228822817752344070683427631409787632200972526548745230362971042811885842682809121847640831088937617963051055760719577451822964962655000043070513285621499789186731626281827322121227015370527241523243463103095631268243256538776416806952291839238240394566838504145254795137381996017762773264383699788846292038279967796609766429426363462477475070696404400661239522740879579474522162777703072414548732168318339041921031236309106891939623969339550980898721304899641901605956410531799108459736450644555423084243700855106998467624181776908920843507757693782672780781789916445550582651573840409799534502405704007872469602404138124941328154189902991067872861487692134843401064623865315526450765673314500076299399736252366243562096442103903105244257124164423365650345056963547709933470620947892370823207598794442340435641751825226994327538168937611765023072141524459796122496516826003585636040447488978020815091556446985206756465898470042493250332813200736904352482427058855840454845841167879901940015735129756894039149903439726012415683366669066108986351383467588285982407150282189879848558850193224376040019303090310468369596409030003259415037701832412856729303606694640712790783033620337665573241916669386183355765409421691726090863993464568069555072691941108053315308457872199537666427002013694658305911755908792708570831668919970649789784205586393875532410363283972777318346245911344108499512468337946828321089266511511677840354032673910757502547778996968935356349950042530303424459111967248980200082766360969539203286428841863132380908844093808434719945833975668049982774318867402825083525105061634483351338460011882123778549841663042135571115700122849118522671414651362716604703312492824913341951698902001980798207117313494764203905095180432955721035263049472993329251645938361117894382788219443007281727637980012252724399653091147751236142187671649662093767828570076875877503717417039356149718402527643653135110895407172237963483766863599233696454719166231960090554894262074297932306670593089629465934970735916824860355549236805603652284291571741655104815119990487959199553982501282572869703946839262699803635279628261520027059609719887761125096996781660771427536905468992577514718120237846619685446777773028370238161006601092206987706671182090737134093837813161219084569338687337024657327762259338271556827441584295981941401155109742097684910095772414220535489604566896520061855213165825975593385627952417640903575074177618941162217426316952085311480083388033428192071505385542950810729948868581534447001626157460686907739526216583808151274821709440687373589575339466766747415896255588497868202964612865331107453691957172091893114557723177071926906125045388663065259542137839477952480772860020830701867079454087380288388396872145060288907060066162145421003771753727034649668395958531324434087116942162909811534688068310676813276053723358138709925515623098344031542202907754001300941318616728834634121752994128258214045444414029459343822230299119644028014589141096683625075952484154711393330267899100981150016057297644211309018948360818499130623482420408296610689161373111035659393908252738115103786263425575963706293327869172284849388739224458547608055077259624170395217224239067987257068563684985034329145810110360852389140413234449517683050637856111479324570457507059355173301217762115403132630450654504013041436350603000836341207287794343504152118776467271589452533104361233648722923580359971695666139209539062352356387104818103946569053952768724387603099469694333748390173279400375569556123362023294309956866734877788691398305380188129456674517592398768164696756733323712416818484064307613119168867084271736743327770260327863239849006819179563861181933962926500857426124274201784572782102302061636208484777064945809281230235176590224998371649576449050807609508042277059065380810951073154522790677210471058297480168900402088062917265853315582760193411297852593128625919592681104805960012450995106325129137337067462652025886925005433083122846187077223020209873651693448118807304342020504697391433845520795071810188680072574338938478325081039615028643178811999013014959566431365216991724745300812856445102742419605987206756171290957922594656346720586155173565275898359894111704388351840204653446175175795260102340883395182080130419133341463715683470106684221962759493467832966985825839132732364618019235460357233657431816069844248515163686823321587773317238517870391269722233473477301478845721876413672327300019864931700869054637062003694367939721421022610571477006393218059279424696903374625274672462197904625569906566391031416949145546761954559594154158487228474583613257927338207294974634889627872325617893159149028428939104155839564191438257212213599020614174480959699562458816254137705883885464118773760846599515683374622567943553399226827803459946580684229124416059641146763860459717110408581250272561989322855280493036122059865999540254371711401393408025058195155345322318612442144715249527700203371612848247723149553329941086555068905561026724104857768711072313753538928268193568986156591233906756133470522810031544855957691179936263025977317698101324855544169583303743176660166572607612517116301535731976255190021945723218659806441794254965941512554531601059652714806971737915725327143369369131752876679965380497476388717283878401466449770575898351513956003966972308338908646554082567197932284344027877672335886207128175606996229400761504789540794193387431411139561122017151259905009881685106084976471351618089816713944117333998075532728008597330863076578922055999609740169338497803926912789111391613500371522607947591954807400178522081872251226403929351249880288120983637439659786482103890850242252657219214512901044806660687172894504046839520900330440898440540933618718812059236724405948785121352850963812853800529679826491954766348239918796895711518669567290933423139629674074950649614553183760457568092584540518936642202779135303360221133587027433222177121877766454714209961810013037518500500894150449256794178374266136590401768205919221136049259340122216646398590370884202054738954236328468232240075423884397719066060561876322066407964364354971430054405307318365557429987362266423257363013885972388545506655752322107299611101282156696111539520716507316964652128782945877933216599739469531727599044156904678102411259492899619387641634016514568833033740672664094974528465664751182480575778974916967724910843679654602943782394460835721075492562102501747100966581984981986300036110099504397508457547632165230854029099915248189727018402609014744214892921980274314176727812112947297249744177585237667925490523931622944445014474638203656626748411843662925080091586753332048017108959681550978233932520079854954764260776529282246497204811896524251486839181416153912096022251946749769477376751182109067462433277118637645153970897477294330877013055313620928728044817760672603297498857612669557921110899720931965525986326832187806923984507947446981598831336769009603257362130772589535704557301396900879375282897740789579237218426505270116314893508294656127561703331073941546612920791184145590805667649469447713704510485018104092154552285605903327754790136898309010704050502419639533068968143285948888699020340467636353576166585802202289276179249279179142609114147102113564849650090068204922272885996095893104288142630714761199466535828161070224094418394757003542624984569249168187566552689833167958146737479816937180113528238133041876126197006360201672512607475679845498018358903380439078034553223323144391987861217556214658034826217626085550717840263128212783523995588815472634854169693891126269507688366615894319661822721820923941983327262573826859357705263977751538129743008329446602344770087391582083737686293114528862674000289455827271726011719905622480266006496431728420166962542411200225248373832314356052551385699397851863089133596490962436728597675817828713372403190059696423975419745781525403943295396910418601590565128826848174255453220478577988988381057040979146381021541800875220813304408783763485412003734436876602675460645351266610199374329903282345518465027423097779352248505075620133105607936347096482037688207839388580583440636061055331394857962520705751852677166538469671078666585487159718254040976704600847428864319249118674865922805441310516024974464020335114041382859418515240549704588322056504981143797029335970532304367790366675740817771015529290283327978416637504430015084078935801467662400239047126071163976754729789761057108078950200964877935132170014760253870626999424038120548895125804775097133561457846611816272675795688188025670762433797203016395183872997473121792750231332647476963535409364518880705837225825612951119877692826584485031453282432620678597695458732900080367872713683786688550331380095932231255598899153202926678964278122661581033509920743256400210872276535460527999649179023312965826562900735446952711865418095369284635741091286243340526436581885464554679713154535312433108935097836778560566660275121715882133622989642935683346057410574117041632078556766712630681388229764703554107909112694302032152297716437177733641796664691795779839350846579711288246882360518485281485764446483577026911803764404550243246357229091070513734838524641053661161991244851096357547082551052558862057809758037111488545475299688600636433269201213728766375286127073280570645097294658391704066452333901328570095423478724033809018532735333281067876536562205488203064357018234670734436401011387422777296501413665301071051099913051281733389801653219786837760795735672864399064002785008587737090672947584042288636081438634453387479985249758138524661754471393496599774050433264882096380137046013736914749851234469110697239069642310014613990554354161184935253727498617291797135554501911705917725797402288137781998298945790362303625602677292940135475391591260677113130983776089719900458948700510884474475595708128368871703911133379441590221999843108395485214383925410707485517009855812843144911673697505213883143984088903405880860959633599741075648378673965105288969844422757178246285051282351928542017405609182094543599928446184394671614709428987304493645112084256896673429598083856912300149673937330899692912248153471100660135881317477262837328389709587215090570617599186153222557247401101187656915367416728237515858361919913954937948094139052538663530490854639489661957572573354439333614408961706022523704602585817445677730847032070965306942286661658857729763852101110974615534769202896834412025468157278166338261434864866453936599291475531248165154666041428312381920550865038321203868024805451955417538039253508014722362133012995121813356517281948923486608004348193106828244539796075841704834742713156718514637641416317084197031461782177318309862588791098873035713190920089335842059166374425734564800983378970268702076221778170832562049396874738635962953101155708446162308547212486447795041139530355025149421394130850802877116034149213810661895839800093793043695558175848689945567069551439865359744720949725166399220295129874277892526461676898212392682471649549538392150465341682665695263048182294758767420759222164726187701363247617814958263093373274785916084727492414219974986635689237386328907448633448006169565650629491507574121900584283775925878690174936963179448754356512821016572683404818044722633352420308291307745962102720289711025374699418144755406530983320461704499984605576056348392989982648377524831179843880974748849205794947624036756459578780933659055149258999821426356329620971050754196944682490051182843329393056060883676628501699901474463379676345287873687974877853428889979381630017341199445352924041408134591591063762759721868006675330069663394460296443591883038774492877132211307124216035541163368198158342828111882646028138634224599870984491944687646611798303466644288033107456431560181375595999568798602542316249989814036455756965856363170652875936660593420658468175488198058537270310322035562827395714079840196937982146709821885031922814868957431069791203217965585156790757840884267069717155200060986139880058605021501281361199307290099974090665066997826196937706764978439525626853379611684982629639782413294447393459054612019176394367646343829040653879045001536312299592043581754900135646489133518535722567154133296011946125475517754374286924833285375555816703698559376639521339325145091387800250991377177464794540409481139736578232054373415584420287432498685708012318444560423609168352496580059880283030065571041451134676935770819750095115558212087606063201320323507454780902086980939371608354593676380402805563510267780976621322243444505652537206929354827738467998158666373367630989566922844692342572242687291155290457793428703272629380466382898225171242689578278739615180679378824751472847334336627471674249219593775253176842950314343014429585112737886844200909886132007775825697788919007488229693992822031135766882204731199299343340547150719110359261118691706842276547879094998156567008777459387416246951325796656998512991074857560103948017155102176255069107627256701128070066488736950543394072859635153615274104334558123504669599174602732492060975439593650253775505418678913326393249110357975846188109612124188630429621342455695948321816319831616726636769429453514859358205172031569507901177726359537248823209813004136320634365852825600337332159115462597110275984191777008404009582778360402267502975247959316963354091924635279706287601398780258826392977950207903810464892317379437078581905476946546281885823191305236833626547971528713998287218155531578600201796761862179740082845699139760443804095761493423598078627640876650408027479705595494824001441824286717341812156438470917659991551668655926802761386200970020764626909474584181244987431673004777295368483424331462734413107798480432433452408252543365740404941021813049868756793800988323786427650097982096169433020187167565039510606230445273782296807242526402602319559964654482706778107015888604091475804955625268644828530812598096482010656780910257286197070160180089890137753390857186630248285602562835318148389096286117480371371047142727953637660010094446736390119269874383672369715906102304450187727500031783551861370720649063695683074733073813238458929606116140823623194264585661069893331175759284235498082974104029436406191467347742250749251133577538283218513508300190130397613944609950426683174467035519799554176422062226207148492951925153632050047046051947718314912553568452765210425774175289802988404558308732404755302324943274777336521363652493039540571460884252745901969012922830216038082793958627473822448113633732903939927714288968228318568960363945683171754985939050029251878857082567688917809338409109543651839342807273857266583941871212119305287081764208405691446087234138090548590590129344232985632225060733179820582899202345441389372088657110039799736954502844991709538014580699866585312827372437767926981162013233877330907615298126838116061613117034344393098767781691115334563957939030073607910417828334062999940352302215998936713502948163406670545218910890154656271632229671318436931499536049859894514152309062508694660925916128007504000002238241469499620890943231474970149662465015889727206450320226357681218344829761558403928422681136484606125356521880310979200392063886960593379249446666166574330037084286343518447862105555238785317897249944870997678741356607829249522004335095194431210716018932355662118692618224908595202529027765299076403331694971307828710752833947957823582086446400316484634692659624777668370748822339507789402257497446618025694755140557714246013926264171939437932202100815239750127384982259897720096021310175778053967418824027350717206181772863297822587936741245775508594481778304019736599875058511989544948320857939739723957481265097555062474001484807436872392859524555099841954728966201716719612624450070182009963869643993905365837917283266543623676409178639808863993588328892860126684032491499362361732453954650106119166587176358527625389177942583949445006865944255709617968902707185244739423094332385761550001052732230219778827497537838703937674988664128007969146936756427179369116686749558280697336777271119855630407149424737684354762668550945923728357850075590781382482564961760712751531522968783556016260186506753922469416883731225981183308329536884328901085082813911107644425281510962945437548904311233173480051789883803520245380246629442176307927308026027406725317005401352980525063109946447768127969883348036235365036173113356176902701627733040514622436747283207052464819072211319258742317731312856210435536147663175115276532288566787632553644125850624973252524728203350410350919438108869519998621892189388893217168141726179324510331231060342644320538098784830103227364542710740369678403723224391290682343363240413914844061233674681131616177727336971758985602476308850881947032321337378897389188968948216543046268685299595240190079403379021108736924863369850823797588406801996531329321820577288745186681631604049277844042176813411371174737358034251147178708356687185794995252559339004103780697960823350830473534818960914662341150795246796653492527011135970281781271682770696863075273113262499553606894491022582073767703243706959569115961801394329182277285594540589244083991687450035517723819372955132062966141968319937312066580545683075406712561941704930157725933253725209018731811280010843287195024731453878635464486150887088031825051759309814923412950390879148724769882302675279970646404878043960056474010216031252136376880146517405420539210246965576777656109246657501775304307604787670285368682720238617746823563099059727126685029303224541113865805747836962123996161724151571984501710374518875289760835210235390898891553899224274892675309562244205685606593851958532050159870352741957494366018861283196217613690603765396479282639792378365067915381050783844267005974691132289564214609627653974952782546042836615539723657287844066790002621383638978461651617208952436399600713438230801737841857503285206692492960646897167867049621323924008466438337314382920687378106821099638832457456886569618169945124648603677661709474559939613884527488859271818161495886472163114446640086284316839696221017122102217729879631944282703370297027732789702295595200156904493080242691693292769795588929733919525952273891653472398091706912607049405165806733584753172646481957879751079297359421549357881453268779796697465447405882067656802867803171182554262773740989020035475291598336106158947989662484301045399150392053453049961462934148778321947252333572436872749647977672885981954488073380190822669938009225810156012018780424819015644282527077094428798164962929734214023120914958327937536713920915087433963133664027397464970437033356710347374996634367291355648618010295649234220296024298125272614744556904525833311217795386293883204111995599216773654992745422072690152064399060805768300275582036516125455461305630544090278172181168417081973346789865374343175993074952855382953689294483706479473840454354171213277743023961205356103990981632352564349010857650622659316116192352791440985595102269846999380115388172592459109619578392800770844518531399016018403026423184746341147048084016227389467462887066519759320139178438227551520863849273984768845337701809020713067925900367433475904135902800507408965741937886616679554336092800029881291107535023389830396494872915628353314722856915107192200455837400251758898696928393282039811577252425883991031327662370400288155000740710257226827972459294242535038185762742445231889534007041909817997505940930940087863496349780315412962621493318645463371416646939187146260210336668757480042052710370798815999927187681628391854499781225746704623057408967247001064759728341335927720229718227226461099444787274287597721271402852686981330915028709625016512016950138657159168266765033761745233912364055031150200114317514755986423937617026459752783905570947265421392066686890611401817775785833501529099059105627457890502604848825313264253720672760368123617957418789606173682402833155889357330097054174774721530134720200515934674829596666896709241936164005494531069420655887054352538666258007207279986018134483516235053448773815984688778919954678060217638482119717114152136094214666476449509689214468340788591841665272225602107279181977350438490290685253868349758784751327065524186449534305255059926127282064656444976327073264663206666527108722859770232801420203787230783889249502618343826401010628983211936289959688638203920225100628357763424407506703443237077406229339275015700303103470447513516950470471572416728959073728907643515070595163358951968058004818876421466717787970563969091916199379914149331919648872796917520786355492162427089904177414434261770583200788687806286879655703224374706200995584893285953954422421692696087700224835807462802803209510350625838839829411538430967044010748787976082133622503657455246031037465502509941097690556010846471274240476150475553369174522940309046638115357286603049711915621670582289588821089785162325263577522946714275438925087248170423017706142864580964541026971019851714032947751500635190150565190672564486727441142780527249231247484946469208966028705805851229484014722533995328238537757408107161736194387225133080848269106272363391451752167326722264543161582755398750783169030805284005209853544600755070620351285563134726691300176847671635793761110765373321839209387477470685006239510644606894588171816937375029765764011684839732410269181856382508605559519624031167678257154590729286362903883071363736967102046643675558780978675247020007866652209907788550831786550415554814640521419468048442665295382323743846866460845090789678777566149709060556628419495738080332110746059286329874889678546608107503072520193148350312947566674150800409380922434849791210619567700991223365036405967691793151449199575214215050176973336535668063716953398993396113363767741658852640255516521093912623918971960502444681766385009833225652074787194814004437028211844900888768279315078845185837540182691027530469115109870660095224861174523997150138489568607215347552350014399224221363688294656566145792541382631317395877886431523201842629761391479762420717513397438683906500138140686395733741380974678984231725561003574255259668035529855454399747623736954653768826265000743610529745459661003823112259545640400114146571765259377802686938764287948915907729296073842408951284220188262782625336217499260258445762283982598999411797348303184754460772256658291135684405486292280996836761003689561914729263869194967021330165994339445058699770219936561311489039823631657092123237875357417010466732583527845055775431341814363001372504922734108621477782338653223986615800545343199965051071842196770523590678285611582886854149611310471419707303079070475956636478444710708666658866930879674854671671393789575718380863404450269891840696888535791303878603700801325718170318764682393563535945446904106654067103612521990358734439960236943985899347822685591086818515435545388263337189855920322951057394119880308127398290916269369729156087767486357560059458106883551534989361110884691043241707926801891363367163813333297995871700439864075311925512079485654347287973511673249383138384866539013393571644162808282078601237100724687096896372689812410686486441863311890200240142897618348709315002505061854107371228708951221941126921752596870954953937645263801620550086250690873980123565751969270458315419880821924471175539987020087669626503953680757778710123361210289848828410850681698135551608673022352750837035508094464851473145370772950235666920306655881768538398589561120429275409923588528073980637808867891432708923593334165614682826173254884815127205622310646497692081668735270031959842652363126661510845110607728717142480309780844275401055816187392083983501381430911921083867604656140430869339188826676873635924473699314412893319335422178508977552542021748043372906747722057898057192267496807357991523770172484464389156279593147123966394271548221894203438322671774673710903171332519266976450225383945651645905986280297484068688085067559959204094235869757779567378074058195826538680102725230565950428688325016343506493452329049764600759046437475967274760912037677997291817651444743671157394296028843083751778162979030364339472302169929965592616929949541706522715048266396810712024930923991866605814915385617302154314879185624071715895032687045505283840524674460899740395584443272244871515499514466164131758033280891554355511706291440818065570169514374558841996852619204990788648644509796126732261725947558597850137258771953920202710467980767968014926636075105645101912244176822521642641663091554347593813349741795670544880331188714070368333264650456237370546458210119711809730858561972140022866312697262491849836192940570083749078064517538354648308475219216749895594227479099444458283338609521211493297801555273188660370913201394412885547762540270355662445107607562134908972233990897040888366972283615869446752014102947193342344713570464861580708204874582400848662351197061517012988853695102783874715209981318204994095823451338434491055312106173155511300934452441518743621495526144739758314169340219031737267524717374739767516923752822684162875565814974900618436074809385840629991429239760252105693545592851165696160803255329370860603574438692119795312625300302463150920092550295098696966407367657192914139160141203744332076902976565864839123046211027465681720184597778218835161690502644942263500356167259448657967684355185059071540751883784561735810828559176880356184684976832149472870934943386634871008835151563491243787006660970910016438171824012741226788014828437617995832485019794728353449189798762136163676043584177847549549246633280605134921854075595573143547446850865532498828632880886388356666088115855868325154511665601739216079160208685321091697737476267586096902959034781560686124416982231124614930000736361627431931825966451197673967127502100399559104291179451180111631761178481665963831750815566996033876553903550759302991543756928111566687985626091908263562298120072921418959361578409958649107506315848861349515096733202664383195058062526073913597031825843698495903473822924207606349380406269972366082175014097197151127859483117880519437966351409956688404564162954188280551943079518239418825785789426760949277073347151309439308500401027330970714886972139293701076627667640799587266615102883324561695278056254209014720906179989773915800952372763775895627809489145803892545413351833127691620888542973551401858858879901953757950482029780387110828559407776097403106668874934558339901464656648364087884372909391920296562284454029855568616179419238381515952384795050334762232170211447868544171197091171540307586695656975518177444141176697886946015023075670294384278417359529546272396487182303107387203365387175755302053440051461494215378621729189168298832008846825654452263158295038532635209601066083185415540161216216998367164952415886419319823266138279489635207380578211833847629123369304057672801796524988047036530238261079667701141512439029319599506497749463735811000512814275966234327735474427835116259025796415619788357798955463545641879675949712803385110368395711955464209960414697170053451580710713024299174089067869090812859541512148482771391873984104240234173476873416246714237543485224478966571621691997065209717918721847321378924380028849513563729463860140898799190416678737806494327466017171698952202933761449333313910197101420753061491487358192675284134047713103306369870757151738459065725235616725265139311008276410686493957856983851772337977167480494379390132793854702131161968267947230353583399386251908218559883167735303932819661568982694671934744182627051510062059535326516002609608032212461109412118111105004922330796774588067206471067939338875435969114953573375482606814822881894537273492022583084676718866386308756449845092721311687850495658948645792650528087810122939034872729905240521039310161205036861523018312032725851292850491972038865437918549599166556045720316004601184353899185933006226537573741829215326640181755462240180027185731670374081514424799520788317871993394670671944762566989196730477837345407551804238983010382742247707359923930082189150459606933840383062993739173421538247578192319978414496972654493336638754236070698624308383118311998633726680061488287622489260425417808456186133675397572519947846784476476122507725175424503831727579959841798162690445239357358343921508329111858127692536232290979410912501139131445923276563337491236256089039580511559230289613993131795732893924109491293764366010482618593830194230347321550138625136569693480484552231042101318870233613711813122181349106536913947480969228483555146146545180038335369770469881926864871802829387715672959030108617129846491068250902927669096625626109208976730681907934738565451264964258825231534531258414965166354355917842853718012892025232565990304332769632706142434049856077407657116315488169339968014857629661878861338165958967366582797832749612333810944127566096535212670046582174259512849294435201385505950629056512521736930763390416580361330221566778364502143661981162940398478222749575313378269914718224317083922420408907904004098767757266162095335915512297791832138335127233364934634477625233258332933113900408734650599236353414370664628808229385890583784943466117454153527900030028384507665347896638728875858112424392943955108099137060475695427851244282699956541864729661763264015420853527696070094394040506161304631320926216564369254324834870388208807923183033554218114038854730723857187084931599548366284917432691445978811318848583112225808682813046892629326367892381988317253045170679651261533298551181160804218473468487277004586392491512015744012498367018542767697039187352348638071478084562118599944805679686295957020380313037921503533326105051598936100953099031538510712173137928686466410574156207081798305305121064166938855066067811986864555942785897130640456049142347414844571521518751637423861837041691552455629940564197323980641888341138310891460777750855622007445168038107552453435587908105708756918658472970404483455374753911576604985220267491158442974342540904712181376817011353633008545883504165052477547166087409008233165572445584343112851420290817260480182276723120446223648706855347297719280474285666567173545893453954084150286340880102875696746112097524507487079611788110323309235532700466120959772915193506440567233501041716589091238243914090729447468390347862803854817148845272040939247926160400722305123480548169195456753055184287593869268746144219799450626057025830924823638047624721062018800217044525848357539853674904038659985271401290795926826589035763868495893281041034776668665300020625773539807921020963862561923076345972556985300178031837790744615313740045115381203652623825823054277199537785922527436356459542574823823068183619615950975482612971952864585871903333525023704166355318698585694981416149756507410910091649998143433146161170963469650411854684196512697053442529369755782320542603727200726185541146299065218699282993033669644215110596072337119330997192837892551642210600948057687604113846007209241646131613593811018629803914572600718376645531688506244474209023880775474217642329206187596921222210832017285902023857380043590977082644199129810944306818541734030962054098873423419549966322508753047531985670052455546531301584147626699179162459801309545017403533516740436706701752432093778140723480845366327940373152714532021152751104478537867158695822377741688349777320363338866651244703341820208810943766617777872319135759607493346337962083703268672169935037685381354418866435062187554853722555771573308578864411182691078571646270722493423254244194827309148043672900183378492173058866822000496709882391179776717647939187251150570103999542974332566538502213046854523093318319780350283212990222006155457927762779374016856246063487956806771935849494329685156084120142096443469234465709576541243715079124475579053824788555516832423973861919546070653773466154860899262000173559395329258510474464917758185591250704092323559214720258963234162275384638260369994014843958488756801485983503872140946620811055486246255819437657390135955074085755630477737014764769458482884455062552877773706207395927297830024839476787918210893453909795924361054786769788389457594648701764705580432671967311506718349635434068676536625081058345175348006180593514069310687515594034372615052097392141903168557678191164161414002238034873937549369871207521097837218719367850538356866262676423964540664366261983385170024371060698684295524754320371715548099893587796844415881400815259380055948270464525505460997591386786670148920025729970413837449040710494649972921399356447213228990284215027705318996530440311615575265067184187456015463927602040108041311712268460507614084895321536056717756535093854636816242011643362142641917355731458026827556914181115466526640853462558807826956537696137666936155293631793333910050163679442345238344074532143805949637102595139868182477803211811809741179333841354544673093334320827998063099417243253899547755909885976746305940095842770305612850426523575481990174337516262250042333518485946194983657707993282718573843361971155272325871820245910512015577654203864779712704935397529388695613258130921078252015241272404677289563033827649411868216711429516365445823782553321480538799510018209073402567927434356520121021610666966045151196404703972941498745051378248721602114597149521863164749388349095245627959866482546715735316410241625763336815062480862264787930630652132994641447281876249876051868934022215447231333324442540668248172674394662421957728423004601817985637579180474736889186470508718715702856369307274658698002210952934714960160568276500067232839847720013634058936216963602664628826494978011924032106153581769092668123613584718200702725610430632492094248309760007819115671036372092176901644923881986532053418277816405688439523262777273537605826904223160972586423978995419279770600890991269726320142731635119827295518485082712789513193071053074464974921908117245832797647095644474286298585667748719498186571764068778239646762558105501318471399335743855773947257925324573845258430159636086305043577226335228010433816998889444351649369621114944540864929132223012506882623906189041463277811797281969691492673237436968136793275770929020565334641002350414108658837854635441031560267288731915334554063932318106753362634133951974646025880981123469893054926696554285688616284619228088692373020113291074522818123193324510048803549252169177910954612656799624667995114780912460872958827419010129603155560595876822132814495301149660926207972339195888402382650555495310863420521233898035836607397586616288927293081952958862201124921278194318925612620739133388034875640519244683290695811815890994629289572295939997085946156410190537667503957271882794221400956557154344181735524280263951632966200235310418598054635148468490337580084346181622127217392396141713346237673376375218519060851798269902619026743592630309175213411546677373055912017082967136178252304846266588622184855570536350274509944846728002190992522196901855414974621519555118273860256275337715003737746767921227929958893671591309748238058614609006658617505520360835014171112287442584342832341933414734967913596612278292700439220853831010720568166582768431107492242819214295949842120255019704750437561974314617914417450772865459047899184008342467395015357739270757047412158010783453256989960843539181726924250174088038633775498180277535339669889442083296763567013726111344749720897337162341663825920380968830822437023031905228199323420532125448713073042014225689446685414138399683777899985951482489023576983497653483343421393843634723079752350438153414357565682239781133303274565844869079483435408986528097588305626383927321475021381122899165696717487382618826162690772529143966274075619327782887093771696184769578249891878726785341887757726729807461148906517190723312502820244239061991942662623810327837224939191885648717533480908861805945395575407955330379640286704176085391638568103181371360756889208810349550502296124278751413708811625361294973016471749612727222017188875471914475064862676828453477532775440161932679066685461209986354301689848468476854032973991817327467421486917641417905130914456695636986714620919908880304218234125949909329428187130276598970265605960455532319893881784014671443082385487082747733620835554930774405740604548634735933023978523882500477138568400003030598216863406987281206468246448386441358761885325571302413166283925143442308748043684603051666523106157122343657379505814665593396973760014936824271910002051211526950780513924125833990625259014312424683114848272238100735789857844407065716886304732748614124089503798424671268705787151059052188781804213042826447988463179250318874442155076707051091179164777829232559126907509663391362787953017597948312334992997486923343861119882150994508818398632462293577355265264033461515912052670004179434951370977949754408048196697731021115842544927753348251922396073856744909273762020982190800147803183950175201106163565250455693637388194282124998823188178599966237773472148687394231623663689600234791595389292490897877659282097517796772024947935358203229579978922539413090993426085646672196874979568335581735321245558964504019804678815366675006274972598010133225723641495130729824868171992265171304069622837423481571110194280525948630220482462196599151417810953764208060942681072560900166730917441569121512182993921636186232311932270082028937863093489519054912618637330412072812739037787039917779700774472366738226682814248905202810059507917337504003142314301449600686355820906871797050753315046165739919848422609981701470772917647111554339030372043059666983162117797853513589345815198527237267009273549618720128754339723130791726170699821052761024232184277686288864474319780565705875665484569582579093710394168035651124084101178465011875749269433389483914230905327319793668200224474527218320723146639284043605471319710554106276525006854497679267603555629593223761689405888685981420737740027971421084154443221347647346457076374833333340350861799046948535267347531931217866157414022317159570501984074325575402374030237620685105236248617508348790333570546225768169476754536927361136742217993544434867148710691174896367081997751218783449285170512689924765138975663406812958833360848716789670833020194792852308326742795736315111751761972927437959425848872359310453345141150086167765835499269212915750798499793421496514836767040746627349573004760198626399215788668722579977063916116034720754908293034258189706829235788366148221354963143459868433538748160503666169107108467379235149317722046643998016892845780159486763973407476650321388139212961585427172497247406323123663838038200737849268470813100113732049297263247869746632686427291412285197881337647456701326209418410296217698408095876688663552221180377734269688505140320874497108932433134590548839202782263033326567363906706110598823385618921683424056158521584947776358629110257126693268580719142529401210382240344091948221928251230614508350018877519343656904271451642614575175467411731521049956369329978208133449947604256966035376267904473856091566913325304692862109988878149350312446263024132988779847934865718564837243272439130741395235789109001990036791232994042936255446659294987471972052655490796456516468495118175323327256546124107092875796870478488689801518270622416598297883994859514399188387580163456429638576216424338907007860167123077335405005073247828351565863969629222784760602258671546437568183937012617281147125733441049667958788633305161109990945285404421235830102989433241438827036566931519791144914417856590040236638650399113479462561386957973845914255069792061635148562847884716420487982900166982140426515846652398959356020617152189195051554156841858736129814059801740142864041755182747537868005140951076834311354708212399016425793971981437606959781167155826068015707937023489729099014728208684660722978139718749334425233753396541226511536220334487374023235325263710860369673933582839874275305811003728227165782441190199432067545283834527307394693788030900377814287613235490393758001991828344585647904646116264225613973006964103248593551200099115842338096286073521156026654456594491006999067125416584485242248532190280328626366717002012403639571401699039868387738877386221557239070280400086455609610720549624284035507826009525575203521345654289615219413084458951536727333035621792537610396494937738613855732140894946114455832945311679741120601145718621113308619199674050971399164569748874584510179172257243922942578671804476303605770068556090536463920794553664071737720655073697200864617497647070826335041101732916047448284439723371606921523453254714351284071863204074018308473936831351952500881209082185080068414033575157587929456791502132315274432877770055375654881848958260052938483481454253477679748066377868606709708853123805401554699145579071854861802178966158199921635644750789310455825069646070629397696657319719099358346221416960493320665573902104732135048439746337632908002271622447637272483107582099646294164835087636962782103630928368512764223044475564736424189855445460160223949759871158371993235646870634888022025926038615468885457492466420744139547602317074004091898552620466404797475228085466512498264032529350311151449409613561767040710384322596661701723769058668028877462161949908615798707232000598789900419356145734294489128685666852473647299012633849044908300677634886158685274528290847546689055875571825535424414763792989923077026185048222193437373533369973789841115845069545228404872964296223755094362287124674848225018966340903626851955628584769022992389958384565439769105555592231467663971386285560300667402901339864379099541066209556313334699258718675587736867961476957328543428898092393720519888943415343928375708195359712548551778412821002411505295690187855472158454230611792262033773976588475677874616457498887452487514821074953498561334643283878200914997357258901978770625438863342075819025146791556544972352503281622231014096592389421625444116208679946002628370620586467102460134290290346817902869065287688218543746447231882663109856403220032053915881118063646098316534780947493409244195328931925690848180650235713274685687812556310373522216639435404019670881260820409909492416647353063441144580188872320162915856004641133947724750145380324890099707115393359086713807304865312629259946256982417892497142256212650353723949659328484671509638122994489355030926842312682981249617592313417640081619639249052220303383728889258877677522829373804788881807449244130591402789891384990686248214697318505554833751564551402287118349406209335135333422153237539915265825499955214376221901638745801396054350767268826566835516316295479224470534654481681855930499605381058627502069601799021289718261484280821879763537064602423213114948430318108261903440568454687182982108452761246032813927085315029258274652595451197015735328987746022779981356658449184029395670217069094381464442230825263384315073911913252907204451418747425703376846372791961605991478740867879759874067376332883085774533775884545556535979999562532860432875928003964407050636767100225928666198740079588854912068634224531702003507246180894010632163270311838181054402812901399626257412724175850323522387049184325532841133020841641416966133206146317874220836459360776291592869748175351872616962836865410449495006278368924830968213476192842303401620136051016622719296020951102781915996637384515869820313355367424053928869623521645522662120577999602997115864553277913676673577815809233908818192345778708457926183358213395418906139341869702838700281221396424007019735263109094295623850117963636069039010509335087058713027774294969980015127168607994507172913444335592306099994572984194116891663910777227557025856372245667107114742990073529227509149335595630380628377443333163809292776851920054279271714115969727464684466404307673483997736406869950955637752951372347847268488934592983255953697610895200256303267941074228079291348777446908866274644578620210995459727186808227928872611701629694856395807587915186487476894887926382232531004581044108065956900459654871095787247481001871831910079800960049767257522121414853350000794269979305232185884345759994137510312733848345048284365282832921772619134651511442963201463044048804272434403905683185891254863308105040191268817897333981634414635112789423399039364410812988550290296073661561520786101302767988619760325428684496846973620062681202462227496155940283735561996642719530325385043186751103564860137183702474015167997490326331205532248418824694595912164189283541602738151124292309924659843588256293412425410127481931221306850504385862403601365384945183243767246032202116712549168300762639398352216433877586728739023825294168692177567320258796398206323481580244743926500234260656015902074342791022390105699593694306846519451998987345438915915026293802519523999099385896443318639116784523385908762881242274600687895938637992950527248302371360935080132150898965279443134995044538611231858678797995496284318673291356074789496198443122112964994647840337509074681424775266319759805330415695828701722188391170263927128344330797824352540012898097023088740949293064618928731842482737552369192757537217274253842313022289903760545780094535532352869873942293343149013862328221279973192624583666910843466196097892664056619098509584132647956337395278322361097223224616246464455049749481284251790662432631461449484067353419144802417356087059077661088751500424971871068680807743874375294990769920151092522061906672133805925491632885677415741448421330664212655326908987182955860312456677471442982711924855227473660256532993731547129059130655897223575005944435082867097567022810157622491454253381567477353493209506201866215709440442301552909204588094701123131980633922741152829831701994931193956299157563616404269650027018943743743351451879300448808207795994994240864463969508864464380732446199487629674976394486640583509048199444300265342793179404186664091274126410247319597598852493454264808589106727821937463932098952134399304005941009986566532044063893204291423288185597299982257400580510964725033300842417290501873224452352638521544934961625941761394553944490167225083065891273945924362539987432666850713616396732178974712334179824498043754773746843285053243571564187328059377965602616208977184591355913915283897719219606250494528114641465120611311273367975353680685375579231451451417726413442540246296912650518150635150506737683450577784499588474819871541002863328030423252716549832956159668607335065901270203619665014239017867665815873029612459268738009224546723820469259429178710810866769708280277085838819191812458258196070936958265133755632938015911469822256775008013160070231505690631172507612442370379855001475038431960573923968596216470574103907977611182977102551066007910775333929571709169320898840470663906587039768242565648291923706736951043406115913195760069147923621637089118447464114962054775790645783727816735091481678204704456380983953559511813476652742745182228539135043652896118198769967551435765099979555760262515317776630065495569207251973410438521751127563242285877060431604513671620693999939039191559144236631317769950876919926360636545740307574026349317491467599821741550004877293815307219755918738906076845022034114982739132892233983867260957520389856533651420555414573823368584615563058574110706975231458402816559296659517959872000133891303579943573275041183279475311505460798270945168135035884567136231860277168351634992859133039567487981224344659610791898533997581011505357425544092340421637809523775961578771661716177891326853969520676101953395480155746203326632951193829381045556642105168331685442553182854841890874388239188733001564285073579562869812169381839528071918607716571019369182997903327913128977513947586120489489870306973592958232538149239968984413895408949670566349711839077130438887790233675090440340086244704039290365202792089124394746055656880039917128934299491241876572576768004462638455243423034258781654051614663423909155995629957046737698676323953037133900450593168079084537049088510434964411634753943455260313608927948889059914933903022770946555996651782203838978152042612839949189304246211885067603819171900908516174862131102643097643291940298027534863042120815594567617458083391829420833097512730728409255055130872764020680151162668952892041853690997370059428926756655120279455833732658060417193382635854915580135830084231366147903319644138514000525039096444373229899125827621990589903148463124093573332245891939991788766912864806999506466695464440755362852596551595150043842816347927355223027746871298272176258510044042715825729846574836175910182477604373459020425270881154628511213168592881096575063360381496408147070696023626535864748811268110969092256903188535036348755838570052264152388224547534584744813532148816607505156998394515770872899046686647179286465977023868646416461850262162795996415752405046203229637193517120865734352323685509988721647909126647599331480049018229352645470364659516932418733942400523780557373349918211339429596702230715591662932380767783494147081366548047462060830947888049063912447174747458371790747632407741809476091064528707778413279057856900190460679991520154964416958500631500207112580531825510770908460117288341241100839119076781770679289805536334435328003913267317674191757144404941735884455405832515219707718926640546357983000547604513146277144791458453493617892715668633371394218327803887246005567789105890902281906453568194225595633243782613930714824850105833649617677552426764046131834669983142964257227306029516114601443207639510469038714483587554294451703657755319751345693395672876669994531082461719734558997739244621321238688419126323187592302201489496408422155255637035208591390958937789253383133864470906854942797621380623656998854874980904616647065058924066849225065185025472136103113283008049953815371854597036819947253347251001276317001742140005506684992594244511431028094000552923599068722838817356205249865696235888537671389795839993489805096488068740422070503606044908246094457959285642249035631559245354330907784196129739026554133801580260429648730316846936338873691822883551279698571473097054701156383602603662291256521261281375229400590848103969169921164594038605517551006580011977074877791047126084072102480999294691171436876811246546228855485077027836724842264964592114842957790203237315400394541837783860335317578443940168795997780024485273964362155336878426399130637691411966282864398823996627881959087634063507745089688997936388888942136511449001851388439732953376202533276406422629438246362022372902063910259366892859471225690553267010499804713568827256612444512864361293454580949572939324912405300626872797894872437515935540952095730038502059556808763017502611396840396589241609838575662327765269131439048122958176654212246605268635731039362184350883519531664722148262688462141938377450391521501602200183460150728594160625787494026360614246861962104220857167112157616233005440353523608885412687210632358059162457709867738070745949924016971822144588156935970583247364660523797786271005384122522530780048342807389220699168194128135163954555844273502761784538606883756749712243411158271705825113692627008066375705416966980585001803637352476726703436610807165007532745370369066529067099547482507788643141934511334789359240889918553822117356503240274655713296980342253688922004952868716197240150419575059615143727539326342138834685629837837044005626365807913625930597494872251145070833563229532076893628735768982540078958259161343770259709780552179354404223708567853740806442220379222986014371965131649666252624467953347992283956938998698471934836911184023727788465031911768847083849415300675266069284445757861027456793099039240606154224984089649700596429652961888448998405802916639058003474648772031313465895901602759138278248095308878800449862707566230360586918769086591101311804238623613492488041274756216559475936957094043603035240314497498546408327218407638119422311332132868635070842693378171803641099298098071508050018023694038784684564437606507821539830553221051098944098712701286719690975691265769201884616830038062962683263204870704969449447480030704736017441067349347668246697234102818212105512820940547397180773280382902911544682462677471967087876804766791338618057022711956621186871043247758221230495827158964439370939097678312292561057894804327713451790381699077651408514211180061452175422020228528147557085220136738423279908347700425356386014814502625655283177979464068272544743266695944419019795691899472355795143466323816113468765310289548106424580786766007061155820324423741742528870149566700614470704763587772879842705648577702220530395421637120368978027876727209223348674173079660570405145889289079692517826662553979045199910201349455319735293366547717735323537443080540549386750028153177134677596204564147258287413449987084448998945570277976609731552364817025158576751337180164331939081536942094290054307617532272002078725637140946363288625966018786770622271312748179348921647928673021569132084119430301083954456019181839099605387936642063646175416680633955989567059424124960597971171866802863049900881240020486811746477841446978984980975378317439060630083934755229607122914687580628779653180403172008840394559119319957639023526486534204010650709095406544315971893329793650800948623821769418269658786335960542993772897987035489838991635198595396598829944840654546183232882100924913466039813029137680898054351890635418879349896175152308637989446610014354748843488686465339794892715658822523331789926391375672505065740517267815770723148658147237052935500554755825745136295614052633776880502989733048108743785306172068921997805949124333442585396359200218552972111418231653809088531589285318341584579402234281288203985888328593156454771889457781592029430785410906086725909858289640594771766363367533805464929544360361179508498033919722197585530683667842768393027670544987658493423339307426636265357148277276988931987278054179571894503848575668197207628546516706613923923676382948511598959035949725233178189831434795830049465899705146164536990578850156088107094503197862518058737748260456174210952763076754294775868785793874739051222159000887598131646413603934287235813091320668267834675935285081200133763673466513787570529914373741284789612983948820535775086520691943210930591429096573319339290226799239737305427514725568943466788059482257514715788394350578800098554599861259296384839911372272842554180138965949356464655517306817486919958032086148952604984185642116198229978794750944041894678433803371480178521375872746852179293482022365052078165598127714349884172689490543639120526857906930723465427017110209063026801395502684310524938958819658781726528380761496250487240560842359881010113801596356309489557268293399528909912049882277092013043668849742988573401604375373808207005061340605376533895577075617632407306433493693910443043157967766336333431026884573747226686835302386729121710717360407652280263724439866663378969498446336803166524074969029927637994201094410921954616847955686627801236830618841242373969395404152335510009848766978690345707012019452443267129731927173780255929986660835009962770515520653868285593335025858667912721365644853723771126123182683268168464998852964153566116643722869721793173254038069526694911816111131785018575746543463722847387293063339440698790826889409348187326127188728600877271389484502208550837443328028603488275983722047541096459310237278632836862541892599890804447148332235230927507733271512214233419969826456094567049848214057746574322002426099620991036281554355360123409715358166977820988234069179393759752237532861539911832785301438798588964851575378852767219889255531375351435096067301296035570629602852542890714557360114972148580122722753264651994444574401224187531186603527264875213052290695731788571431450089078334245049021417437310650793996501062542463101252557357275804172127022255806162718856396995502489546472716495390950443394107251648990649660064938766933471896501071244905175498873984483237070491948977477904358865589021059267925689418335749505424543065026334775046103085544560734033027373758844008149065311353820834267963426973787638702482133256970016380301872238733484468990513036078621949106934032851210753143639626604354209435485132893036129336532381090359766520179636195448741921901011827816465964744100066313617006957356491792589938265305670092713956754664341064574237103141735392044715670206511725526326761474862155457985728146423692629284503127000955260815621601332730813088291423526234761042974801736190258033244972286017312022470979300510529947790179953292292446526188724465425455957912713480673378617411376511123597292892771801597915555487103810567008760851167034653549410592898669473524203472618143627351467372075458635438192747101591547521244559631883272423492689235492143120477283212744134091257380625061149860301099659826850881681320700606889507124032009692924854270827981718142638128226086853286084921442557845958312274624203945506588028916114126788155287170437600510793374721038184612913685593034782365659037533485859971884967777164093824391075290122175856067692902581633453789278580572539869324288651685139326410046336517526098143410256281376288006994282639546021589606274802878932415459593679262712772460691391736665268523089230082114823457349962760347161530905859480408642742548676579871123156107993350293956938269452034804826435798276816439341110819802524908718969048563108356375292237602589154988082667147967314766840608653912262709365180406840707581193357413583769782628869643539827403988914706612569119161359784517665987952662703013593781731311166759819405043236234043267600326306381190700983438262412199698170705824139146547836227514360404151804222129191567728451346795796095862339360034465885965506139966442622930517666146838205545277209623167077386137631068203023369623834589413424972272830315008194862415519559224548728868842935118098637678342117134382980775159284508346595446991591776724989595567689316071690052525579214914911321510210987333215730191492614744252197903622382173940090713159196466984516621631067054942776430309094780163213165976653759814583233962915324558550234098696447492752172017389115383309660322629706069515005979754083526061937342991384424899993087426067381604741665922062899886527938756297906569625633269371573676442318923742790213760363966141849453986564841350190654921549306838456836488962376829329476880356233582142838563669987076253470220806858152558314445384306612845336952828455458027224603070820350237161004710389413852958729683321971608181795935033427788594646503854250468627980845962297635770110697533771913757111116456672591807523993812547920284310437369119822746971508219032019083001481131909561809158832836110775589820465602102037843842144584540178819424715659436599062407404462549174831886938839236464644348720795270209282500295008472788834174651552790952805530779021230035315158901803940597301519854175059918775790489277876543238868520680528480695510876944527821864366830750255115974057039957743366739202595091954740890157530392256071553141442537408664693459927000499716441059347979326777609795846803667445936850199026383682243213224203707122318054082294770689749852038997556180872046774467556281825071537563873760338931559868485850254955633031583522604971941277659681849335630593670388599323751426579714737367931025970686768488418050872228785785769824834969149399323057023656514815007960036754196007339912221580393007646471795029660452303150143244770820188257529094794494396474078904310439585232124959702668637399717327474938234372976880023597458814788689158283144120642561998914021597417020174423597593472195985229054552146111220329356054837471860835537831381098945458223599839670544065988301561734100932697374956122447372841671970214210160479947677019370465885004249609599672839720613099419764745177838893025409262179742330661574082468800552722020030255457386907199965076816277862417436718694048575392540346959839027175911675620377015884377577784905783312731710084912328621064263234598724154413408353442355571272972555004859678016643268248409389028715983728057599669569756813624373509859134247852718341268790424907895797096075200107082237479781655518172219811623099176906153840143145100742269470590751378294719400894723120940953850257707002681125680391154600523558875952196980068980244913336090581848803309749071311030968702873021178159474977447110027000657427115094843669639681771049837205212504767009576548189920265709360145108337522863319662029003660706752777908914361615789426507436868872570564023461284650687943397860547078932853748191970044458923764607037482325116752369376290115989511882989036017555635685851267144224919904360497994888922131760824257821305715928921982556704293753065426605633103576856712350789850876850364885939904225536907912723630466023006859718303459579964101258744853224212058366530155067301839249000090388811065757560019427971186226200397825582249492832694851830142227737153778849626522419845871131342473165119023710434866474591436671876392480890493752840333068966145268634905023151532033134765286816634876106883749578957311707005155865046873709623649135244495661720107510557023923755762802888835081500552296791470041926935545666674813505263112855379007684329953931669272882687575820392101805046325428798487265176941237425628965997581618693464947475689983412906699537852257296685545974389312355402871052228296277896036514160767278332477091448754929099607088077625960811807589413217354009789596687178745280630982977228856928385344688460401692969882931374406471449871968554949293544980383241174397571884942730429601412778629252130007523864300580626973046993922797428422789063897928143547581563733650107469817377789512388501050341687346654397990675525174787308044769581266093753614051205228897608319799427466785914654415239665177925566132763876111952770657837425145159683122281168623811009365851577315587122178799627232653139523203919137341671586683852145144145731491495466902234409489509582091163181186187418157143044357116687940826660584205768114580229176213726103900064138259125570441292953037101537903863580076249458598773256004215348413319801789377149334645083302969256479761855322518704547698441916924636012664805240587204675301015463932309591750809682313498996965254867398796858554023821399897235966351271940913958372911074327972392033020663727447001378544175176275859197668908364054986078345853196986045182630260661149455206394309289228678859141025344300883639501463000471044385282133130844788840975600378771182232807186438801215135206803517620487069336872637049629273437800136505203785568760764174950205637865445619183071027014380393165133386631214714914948956043649712112808844959126149128372861442769291979988992876006716710438213592123431680132202454213135809209301052076588080348603867130397363950015895491907621893649563594421082497850229071504081036201750533673051099043858813713195499368906652225934648783120854258817999838929482136229861272142148426533535520524224972201440357424722235384875751118435823611238023201452690297737094054778862368599820716704209835099665497321989850223868070979244168481978044271331930229152012665471450816370763611888705363974430310924347431304401047764559084008324135850239393872567701424007624060915676301341483429370819803237752853997581001416083002558422524695326944096043495707732857166935656151899904922008188265298234793020818955728417556627288425884468243922365878264902561869778706403654830576855838932976778625716718773802874200214311131537796596024917590997139604022081583932784769598787064756524196744292093894375850361821698627258944247711195773540868911398432395420867337588560005779789802911385815402345484412138134894078536460862142835135931509132467296720351719203790676684301629363674755149497623983308427755763755154875241234999734290816202956982729893587337020832632544235545784387969466758616104910059088306434251755140284235272942070965509220823416985028551309140744665437396999680327673107998944239276557074195380529974637606400486698610696058462266542609129714320200036067753376663683288135152940814524206350565049890669487209113804680181553383645015255038834554785368693817295022788718053968472613036573045999377596477193245514164175737758105433800664331997459766204568561595855134137732976409573769417417812207425968785787029821892098212226499290371987786124650968644239885611833897311812196357535146427005963426568031050434804514674255164130213471634827319271919509982675104248930054130159906259439152559026168548908629028007407403688025788296451816680218138936645082695108069930892267022742842158649771711722786770546674370419006136254715119405548512516442762087316735265418338954974913422214004457160566414474171018869951388675994073916809323847986607238094315894188029742685612121970495822397076189979227807137329909455854896252384259889889196110828573535624642497081069209882725093139076190393260928072499223063046627374022531269412223168636667091797435285165299235193044008178599794021746367421391661546262133387550677161417851143794339123908449895142905878086072055610721554575144341120244847136188920650400858980039520757345175555172021476496641711560995166342444853873535408444629110357192705127273698720469731086154883497880452634282898894109985928433657795242703653381597392307907161125048206689454923114704780753574728468673018007701566370096929799172637592455868224412346544079951856270467404817432808359834618411032620319645352881253537160306169515324716679606337640912956539143198435484948373728988896431052746233075269748198038225568175574477170336479592387179183561401038006349100419113921686322128296819042654265905522587776131044913254029476848622375192407433265011720022046531299194710887299509041106347482132912190962573291862802831654435302973231389307023763882481432789745185686447630081211709109688313447249673938596065065833828906608393033788234225789914371301868797660732308982415729925503520218096995290059954462406083519194673554112243115555318945918386302766918172584432286869252031756812690389243341625059176517083225837714114109259266228821774123272831351856115129694420777045092686077850956022775361255735430167542330222296322613092157684569293528465583661480520100600579560041850576522567538444682297619942611173754378986059572880988546835275445624276461401637575841290022974768348266873998825751466293242750649623512791827985931529223191686504596032898508541430924109092549844139304857725915707888538102677418601585330866482452277679693442414862046445090376988065184623702450681895183557491092158331574917315374796168901610823635869518279791237788608377182877124529493381065860064604772345660730911106160825046274341513251441929525367147421978612330431070500812698573052145606781376197663071279150469476270810666746840548243058144666715910744918325985604042574901993886070451840372962262407738589048563285985439059062680359705141172364678508900562237228720431108936534448719701400146391784765369218149654395456798752447373543077514617631794054931076977095436440871965616914282048493102586647966962006433238930088029599338388441508128327168123231661007634127390692550706157761381156718763572555885919605018638171242015282299854598983599148661090095973282283454305931345568300617849735865430969978661510527922818852102077272746144606160084010517310382876591029275770182390957859273950825759538944240081372795499710041032156616769663412493869635345686755224789441520621392253393398658049179334847490366009881025334036429276484133380364859717242750732665354531547875160387202983462475383267530125634899138089185304407413863088024094894740476631752991034337044197245411024645239685238006188418095147380103851689219213136262175943120244758710081845531654651625623025213794600594124581719779631913443132001952536554442907088338398010922139712900061720085720223909948544523643405353496400833728310832466431938875999963887541583207206730217798863907120252278389140808660069099292153779668644817561451179859457459778188226999252213719427121245733085259911320541312159866546783872735924068495397209783123389859419966814872141031065664601919439639583106758982483306712159367610541427234075176249433312663742204529784466572155191400570460780565297459288809971354534857760649964510825480159127036599452622282753022325979626356041715989484843147637157907787660589067704899740886471234388987411405230351219622825923423640034493120787596429856551774840088089513502615960657907681395193352070936245827103535788656786952883060463305865093765701820134850853359117697126525326642771687122731697573937667469505186453486217248553885271209119065479618450735561204799642967569670828845820304355954401736789789682383070272509186535035157991362134682240877624097461381354746601033205941151716090374666326932061789285582149560112638319549028711942912623281165854397539683492642204054249523398822647154963333833640336886272339019345756641615203875557854495918754582954294106585140838889143316169733802606219529406809981074410057986657859523398721347220152042558497316863274235526474454519136410499783359746051486614405103270161377166013196136773260422357836529153046163511715577252974910005965598113302160653790423475780669283242251688219423189986144705132682718721535733391740664607296542588838193920834736251590789113846751692726583719370696436447741506345932277499965833407782789877756559202310700065184581416625846387718679183908017309827309698632922185891946208049559836544387962153758871919376085605751703141187656611322695954639676358371406374400821536207379061261556148871670279249654045416968665956361683727001874160999922635267301068835110017538991530917922484334229627589429839196714133799465597093615509289203111734971920154307587689603606374703473236089920047906177219821408045655299579257333480634225777653130062687701108237556536171860346944681713881708095261115659682328341258144283346305014143445264022085829352644986432083598285265231965290100455577692337760918360684290688419338331136814993597826715916257671617072032431279296106166460501042856964291986663129162884500991714094469395990367673923449825302182940495913126839111456168458216122856476738351969482941498458039413334349887504399608920636337370638653079738721991964061762336219441190988384747209170509943477304065806322116049350079883859860878945047007310950391554186251141991796594334797319725592430179366993909727768422113489605360814465179062022467551421076943336932615251678920316476995251554694717713198934958388363496279461309968911582086733676223138857095671311993904586094433674197255776891488150116939556783458030192827357973575897510222180207734055269928302087925187005818140355970179448965816691419253537414437552212410508887153549489294148900014156161812106874530343993801341404472480645707980035341243366721610589212032797031059643823833720933513214313673325800102592726995448680395466506789219910408528615319381650308676418506814987101109220837618084598277295721909668216994072592409999589715707170896833801321517032754284018028314131057181979283758980171857200747847641589159714606481716081795871445696772215311998519878644941948272149227836856809153851089302290927779758604577162308700974475361123923924146950440767683111349090422070266000892949582011505584509040363085177249434318846577644627012641692324711056929386095278527804332032408133258953401521050439869189556392719352322530893309916211746349941227099598469667044516284555304849875181723590018909263511149128031038688754464833527326819746664618758770226273056410319236495521807375524553532312225059511919378041421312716073368356945852012156081172709883277584494440982230031966996773538246704961974312640295579640588117048246915757251724714680220460599337212786151974374227195499979810931905920419778665829446345632735041732176139501784774033301359760049029622943214457389558439001573074003501030619934646071395148142319352986625306048207131103671239795422095525778474087148376951990020203229421088462815822960908538058295924959002150927884583778726043842812650560897350027919927663107227851205198835732316474331981528262512748829292395835850105416483376366538795493668031448409144316592338817492518530814083842827017264867320172990925866445683023695903115571047524171638735656944471071862111531783988812947174223525968795194262205993658060072925915170135563409484317528337291693161654067161141800247210662232451952358179122329169658008672780220942402902377978281217521240015174655862285807546551950753145618252451745738264979296261720123496499873522051723859853531138300079026059043690486209706976872954951919893032882280217529934542597172636107341076591506042923951357267559763518247127677870980953051893173877110659689325310456999652561801656662761922078584394102571741410784917960681785436242865068502229197170149996118783781312117223160839143010022355132204451367669691842941241006726632195011106289365328092332848818945391323286445008875296825276862290458877466245481356594291307699086949296207340282115984495165044904855936180569178295490092839766000068532322743351042761202475497499912068415695954847729652818233940836814228288477898290584865350298649627113601140957997694008453638085142613381528438308407001499787358878647586214685740336564602639029066395050730632094226139456285360085830400942514582445910760369910243336474802329409916470184265693413894817104883661867518739937087484331759915096411369182647650585673082327432889017448515825679639822819596460860708463996919323316994859755035703631396549061323188351238907685259669534494410552923238072962469561437641038005660768950641206984708039861191076521530105732686729475265954908690422122916499158013732679783196515905925142508545353222383946825334625642458808191848189895910101587710269063662557686875492559849467470111811196701451807372442913156321770955802029909672895065870344600035367254881288269724310460772640286302220645926449187432056009392296743953927587124681631899575316161024229268709713699299952492346109265500939651803019618172067981514781709816148524596270381947336038115134063314563401408894844830525730636949981232051575894724095408338888533367339315016486955849058186914740066586649464433983876900685061254367599250379157504937651832773694347183795296526552366355502466618721848712632474621149760535959761717827531362148878549161632540969101947037370143878963066075622323933328051015094466443473292454109978060843267799603278416088643036840889604557889901055441412280125977396602700224051180119538558670789155899628738886944974147225240828098864980947618491299547752300703901107329156476489053902950531797760167699673946326045395247896554978250518766934257093426276008346323496713665069512741809681288343277699811982707739911483336851547458291973724814885282332186700571420531141286973991585044654311702640350680255247800420570088218183578022086037741167979307065024289111343893002543564285586240865485453062073308097082233473121231251654978245494515395962208545228388799008486840664874352419461230305942904334909725899278119930874128773214754709223617601591469362672180574151126051982037596518933683903057498102016612306445358281111870700507916886243785470055290603154700791313481411757011758863845686130966360382933766370024529491499712328182357033002290865569795348899328392852064386842773726615077345595201472062238197345723760986838724323596991883548612530573288855974634233023472262943369891238106273184090577882008705389747734742599045897888895324263151490822022402420456759722843482687765207290307918598318798572638985633094767332644848574980038193704079573690003554239570800614851399939112325323261442293454091252326528386875966383729149778682162228503202618309404577872769071325687219420305477302485330278624307956425041433908251482628005380306441371732145472611280627750704736363485079811871627288591586592328525115782522488715536371334125415296092625132871085494399055105726852405989657861857422453677151326211088846910433107003156884795410235245777580397702516802444605818436880873547521597260812794606311744360505551095925527897077150421693633789092823290491094810375806151812150876154903414425509685471897718905859277993543149674179922872790879427904577311978944705547095791409437377571493276197628056667435453675955846152150594586911825674463603318752092299550838210145343081574672789393383892311867821648537255977426283610682363107797807751361872877179699816683292312414747467194928031594423861845035071087355249222091569834201548341261566834728306620911008442871948405863153313749663366028132910409398388638770715844660848094630545021784353480367642785115057440753042460175833897592866315088911338654446615644262423436737863865870521192973989939354594436441375620054562907012668764832170414503605657883117186756417858864860438002820760993052361768965661306912386848628619901561115210428332231885842263301846296055809689206244357087665395902788698521293046194282027052827081464629768284280491583971817038602249130377128715051195298906942680533116445718934550414612880569603553134107486104587838866276257612698517862999837050188563097795936059734863490244075805606697320099587408181750366476694569513054734495895597711326415503346342762674437567671926818777654713669414597142229396644026482758618254730930546412651046500724466567933531758847999457828675279995761480997092683654713977293057456447840395665705471283485475745466152243579598917430636499767146649121581896769202033182607483968059540534274804490007409834466659408057748565526202297024479108325625301368649476262274159204597440129477827368823519765422939135061126587841928774282397618903708675311251835331134203122342166395666921741725963714142282401786526326776845214645822322529153020780744502807283742607571763939818858260692429055339212115748502576731756953626136688754556268991180631914386147984883696366469418908125987118986839138564977790179791212746885741577434500486939514876297641330586934344729744813648901261907005258467752128568974058775515309150515496953262607552559396824610701255694405231822724238791082254460855042646762563707211152187301246541265913861835556455021251605530701185929465743226822962119590951888774466336326765337246391585797610011929531491282117002878419888595025250752780948975327510500398617228457517256967689611946921835968553787624743487513776663977252209049616628334097311518561578384004548954826614597362063001289878620513706129929449904607105385266779381797179137982747019137337621628161095526538359459858386911431525288961003079391138285674916783800963277699146105463265977826040039419238665803184128620207863894134317330180227995356797051312397045278508748528912221729057041168155141002737214978636749795331512050375099767970446576316384616707257025711614221806395307901078686575042517669028948278414029496732732104297304859136633188183529363718696624275542484040782819643997832286282933081424841466579987548654396039529717092016471350736329464921555956075023511070973172283988680146649100651211257899782397128761945462235743925636458718377112650428387118846867989273968816599338971378777643283224700930537972209575829722141155445395695346825977374361217421267322716611052780288524101860823700893761856992514226867116168894374312837387688422344921826519025972230873887463510027367124120173547531529399815119608096759645380001377839358777566884234653591811537851482436955297370827385854477883492095506452419767215261051445954580675334602821079548377414758190040771654670629921533115488981825345129861361644220072178109015725945574531058906400749492445487207696085163074078902050876822290372111858204223710056317320134711653136040157574343587982926432866715522653196954745820875490220999667919743434710272153874810481882826995277967471331489830324763707630514517592435291826182522363634653760724872071474695034898016689363792559834321578553394784284516890062605583525041692218435041135263811096792526874693244128860432355374220525600922836538824038293326634652730384513823184448664772057170488608608610906748131268448371397138600424514337389347289889080204573517205967182079119149725873074838228276596869797235157048761908715142949456904974500293742107055215038451813344209024020900194525441965676930460278953032872287376279954599389845161667488007870167636251778240977854726302910616701761096190862946837862893621107103858176619017230134527284662260018562416798374932666964636165458067481524586386397194919011810533189316609898368203036860646974739907040885877880201949256386386756318163274632392173897451685989835928132471603273856037000290798855729336684696769578888129453042004767968376194176759120824568545958465976750385877057720008359094579131154128440960412142776249561011294274778347456195243613092720053782786407385152931421059522027956260200939510408927245444310081431525518046406994341359630855519389723723740914470615814995745001729158716556198126210647311978151646221600640865818299172103051471923098528899883356105496247351034526813124711763643399532687241064922576412872805408941825328582706679824949392978645363951814107722312698523271732699566227758465993296368340039442945795750204486195773705133441387459887577890570887904566364870400914960100300268958440712774859591454681263558320276908119469581611080669058259663385628581412665555837770589510647139505353242810711613167668516424958516173841935438133784885016850853439279577631051917606905130384538596471796203872425306535442121436607482205023999186446958657561949222470305842721322994381172872218689801593600979413148122534238954690134564629159395306011978212623287299752900125783433735874576320682501273069241381572302695523839102596295623688823853772899701215306420076730265599350619985327842501268121456550841590341825168994444855481016864670285930184527309938143344436103545627732748124548837351940955812995257274400359826204266855485865287909554421109851994537119459087499630535963389636442952062240647243315092290604997038807124933882788875007929296577978691898227796237730853901184352258594527798763557850107799279985222869983083274217944655780878533573211210959785800005555074480075011875923246196202160874129662915117044268331882410270330856026208655656427788956414543944525159923289262924543740683453703762014614848217201623925906283045440197260198664926992286116811991713785144719951627725112087858078010962101401601653590793034132303674200789365152021338928673451206546520266366699527516189411016185677615344004961871699392756102492698473490974594414585612644272486777290720177277649527741779275200533384857344669355710022231387815706066816040026389148110706509520402082305312132235471777849951621404493793912692791218895896008982678761304120616086581804194921755483526614334791483613882422424260170424933841979590310166234729600639007202935215655822243327856069982219682890211320730894345065773283287892772411358456071234507548949863834405137770567556711474621141305459330630660726205278685934728858892675729581851256663967266353512231531371465711028662828655305341538689846954508844061391440398796095726813261592424598087143221165994490661276095247409537118317711267618618644317297587519636330658579962837949859289617871636659032700750617121548210574517336545195253602123280515424158593450996995360586226699983531740813576694505418892981311890440779966575029448199661195096073179256040738328443859453260161415608845440248201634841024116418797529133128129373424345527724223850081424085030367594441795732646769239637272805360621022060973037425344882159643504024481459709639276831574854619071104482450831144066079523780800384901669425837216138712781392409089244970798696723941399567172560257293825492638042958934073370394103333748030581192119512002730135985185148099948604308777230910533023629349335543613439173566757223294301657472095201016406863987034175640655164339526458292201238855442674722737171732669435831334059043130508694518842075372023125639083934862385360443637864001987182157921464931621971588566431609145276883472469190229507038393398247958869418333229806290470299429102378106262839001295006239213415734300884306680206180083913663274890955201672276947490371260548754072650677989251064305818758675592894668659151542637786289263556348840632715952707829970930396559295754043614324442677560696443518039314932294609576886520259779569333559706875987756688804218977093557177884676192813417970170840235196009987993601358187821353426463560643489377847691776720430562586054008240087535360169130205424628656567092184662345541918756481566848891084309678335648807785128270743062841937094683287535696311677989122646673401111768694453326980416552712049819041265574916309511152113678962586965019931024670144612542928020845819253585080525270759687192496631187576163486863246995251308195395090949268718542786385962624494414274374231237121622810428788760368510565068462806823407585589890967196896628217207894868695041834340658303780525070853938185096126193586704243197306529317427118006330218697437357649655036419938915539183476162800204325669484978063964584238097302762539273696815893230162887915110633972713322472646450222747434624594133354297163669667500441854828693007891539358452968225983406800704178284845193642738086506018133978736966916742929803308358934434492200676850767588109092441780501495683457716906827416910696720609993106843727168627332330109433406663876676770623864232483762795950119687651373573888099842001146676184377786796071667087398147411887423443046542765338573889715803623592796004689292200946382810272649031967950450765152127122893994110520850289943955001173748092184817836558106727122287383047279366832980837692612691420424507082509974697906276341394814699990787877407587113626644781133261340583977704046629180776185097396498739527236821795988454774644324641364602941385592872540608962017877091636556739725016006310850498764450070713665630368009078838740528667606131690401769398002634264528435772087470013447747756718575515212842344763958368715471914038489113343062713415474085204681766421062467990480481031619878948363461205272006786941807388746709343203019933827630002033753796204467491128083009158870412177398563024126615147362747863398781658006172036111427642283703827258023923199438967143735255984372435883341032238940801121911884801786914616282523795665407249991626022990589813596857045687183095118077476149008144333637446827251072830562231053931289275065536408354658661801237171794602393134533217605851669636557083866692036556492575078107191458711920313024353928473299370101213357190987149582998718354929858200696236039580520292168125324096161840694689442661713139740755347225261898364179901667044474408826854645638782151854379117118142927639290580324219781438373504015524682632210726974253420047780760181452865212245028663669016883732193354508213915549601389274450500781354320456541785003696449744120647550408903417934538247384582273672854048995526577720224395844192384476136829419539923188013102878312327940071403422887810176712985651931261628094208106092208281146286547099582459164571080970995739218135254188218236591624827763196815728155881134527998032897663499462126531729895632784296175654991166828512569206155097344809726235830559829598785979323446023873588508615324343073288684508858160204661491684622607350290012390351068850737573190285746150409228725401941605467740518151426142445921280030332114813824469228884968049449479383123903203630067390030325448057965480698599330600661106074600856639221992453656105077265214897948281534098233540822890371131620670612978081342191911014262825359737342936003068675657454969664640504305308774469436995125727830568110190446240122796160797017443282057306979487534761874780902324687631112958850905293774861000919129314295201249758990144749953762182264824754521986397945620048168860875205317610293728550033589064313316368287639268092592120128227451383028301157886145699528131076550175574314834623154506773634945988421902707808775500455920470190747774763454693349488565753479927838937644056874248301832915191810102254200458419245884754075494774614573198145448077300575757676494329832771012716838348806966330271209214011859684948576846517050783146236810709515539130420577560478036609261573171795272649928158689219187048271834923850419979797648842492196001093139568437487265146882770152032635517334402493350799559625827263507590941884342430272717431347355033967605351340709518856062995637232887623864992405636346796031289316925173369806951143170887144820574493387262161388889487985723099967631870130969000273090257609362774024362293828781978109583060719246019500491826621377232153990179097901375732286472993590758338584187839822311305757878216378437116581491570503351675765923672900583233846318757917360929289842804577265936273652374177496516806270944986000776328131410461994570119177287051786720788003162181785166832212370111864135300520280024443941051758218133229612378809923745263263924974794730963258702320356046749151669678231753021019065808592740419029552858648959954394804307113755179205205082927032014757788804221726909014099114247501831867552643788450085342459918142501249051431915548140728944602436843269107322467616943657415725488271901844248673123436247237159052048289770216798824338455243431751801634049284053402212717169175816377180763865182705966810231633583991856250312464248406394805605107345393927883111438799618796560850085228994259937430684665824145596852271742045807188829179330338407562926022361953376950042703253485851692302882107908550793252745317643468036308361614931402926961092962398090466487203954765939468801479099834711509323630796617585558922769220383864612969062849686509225841524469186670298195360081073393887704514995574433356928799584631901357283680816443145285408823438541945910601513974897642056208008475310825324374236455557277433072765001629959649899897761628546534326035128377261875109934088789434942475780443994888150930943912543431404808487493760041521460271998372446659442033669181107806778696772195258487478623228261835986327260074218999423048394403568211116796150616479019286654464571299213245209142596190438946434771082120596540226640645720981762021361571146465735238948665573239427621836542713211290487735058113942149422945360633402119369489463585256065550279064924451299488198536731377270118881764624377227259764060546026331835153369345026200292683470701882960752839602497449076326309167903381636511712696475303792733042056609819174874728368642069152208663347209216354485374748037147526271323282271433656413502927320161574052683787030850891800336139598011455305239785088161312598100312982904508866223091875509755568593259817909304528143670728263940906470292652172979296656748158071807718282647744172278274429412095235761411151701607104932230921111126736549230120578132727524389578479298156019952646333960356732317315574175737505918593051745761540783066205081542408662758084688289408838520267983462786878242352189827462034742512420224222611474399208962200729965533847644960621955930389185862268394619185786246668371011945615836272986519218492849332954400877209213620974136224532836289799164039254564709995453914268893979549517996849103039365833915446604653694916065076619688501813289008675856921616044954143352101128001438002726963774479419562525311055308935922941146576984241273863684653419644507627291361107421356501250967503977237204463622224627981082121351529971468346924887564310876471865802593095316773280692116599378727623185079206364691526323645526189832206017692305828710072690403008929781946178558687467579678931145731984801971903986324147235050979045012605615746616279125264432023948047553494183523302946194948763886658080447521325041801315075792600882159806931272444241054992673900081137583331390922497867050074157409960504848006753805526256739562744764795398336629984035751724060514352957160770426638486555762476141013722605227024311565161529489137298430847240819490174612695760969191088330990084926992616881823413934379202182751957544041307006108468388913534859629286047062673747097558884922791750411255327606913971665408647731958194338666687096552581331780146808942622836550584230749191100122830095727433414277719995541993552525792751189675792989355059799649838031562338822740933844377494896961629453064917337110644174640052914885116699223159477235156268198514192463534284380047737538976098007741127418146644241682877235374585498705719761582394285066502344519440652646566727113694422488093616534073027484369661700040965392932990620371860594986089808773644153462814794010938858293894151659300121521440187995607495581452388653637821148118872099852983362511375684411428128667396604206070863558920754258590766489734953286060550051005437531093429819246327314371596424295170496819906220391637260685181035762406976609959441483446006177154297984454349234528042465614599169461956286123953446602993080648574040091700116547887536145509552483881806440412076315608886804563781058651084133432349236376854279148474365732674557022334575176027943607471489669088322119031400240752930350316531994190478326102940924043702568083380622866564820510385831866211776810238142276629224789605692378542076524298951659283582538462930859442393466384036646472162281425462258277211029642296532858909299358229848244596413006781897643254172850657077989475804328983012363619581025483020860205829742557148658326272008297472607800135993680042885055972971439605246592147723473045804164082202671965067530874447463483080360308304618755916563218571163181440329566203473498874440609806307468373111556170920302091986129620960086062779920458919605246672206410096572247483704400072885279461627018715979796417676906082055055984448196685157693752752694790965463560040220163435873925145258298890364555147590446896378277185256048202888107869773466491132937942677506977209734078872394287542235152400200408234751503849922718492483592432641040637699577550817548976119533819176662036067727634137215845017669493310316767413195425308668305305413987089434271391798234981884479158952833701501993083853913818741426872524462969486094036733814324040913405292589527750674197599310532623171008269497020472486336138077302079571449650463195168413136872234943800794702706240915036733841760392123222613150748300064840968742958171694935068915258567819874385929805690620252737100457594911029623703003705710208775321168880795564822834988088256911090411930748300883857651266438254020308827275421907176530823704160395641953732237017253307896751693361299522628538517907261585367064191569999846582329689142262636367511444187483630754388713653431743029680421725697645478537549821640211642515018742056633738649113796810370766418928655186726131041012608363824221675730971250577641079746796109556683813719517460069141060322540514624479352012364405949531584959680946256066882399538360014928586367014607556700380621324667862645757846504810391110608687987844995580535500466419230099190155898952359181023316751381622778460018294217640884343937886047049079921585824006461980756735654347989291757417838492975869854691492422284785804127699445375715157621827320781057490623511897875596402528912146446661610917902058867720161663568778693057215167022544925720986779034180268350965297577938101291936716207361224683503536072711621037411749396813447671069044434393109963686679338323133891663969585960428797810307415532434745975982915752478947003197020529896149209408609790958789798862424081429207745594531157628268806859600589407584420271530760892439608386568133308893728152126639591716679298325510355038319206013906586052397984785829224703772061987179598191660312046435998126203877538848016223110898029920555702675585745066699109353503848458606430122073433864048797386268288945485646665290179623497263777866687720934779438060236788733592507067472081888657365254991543547921944920431735150740057713284923259060413389733809877216631271568350211740856197157709562308733619390645468945091296094010792249021242592797937316256754322449813354259762382059778137490167728459787562010038006831005877103388249536881016055489335188530315614352486389727409124717247879664255339370735477543331166854391297954424435085686433219619943940512960592298907902193217841622335143673320774731492492444507871431647205715994204667024791049542106387025168804161974718512000963723811679422248027129730323288441814716087795956922076644051062104237778913440778633270981310263350847881412527163450882849650209672511733202209593229742907288852156815246983322337920535081343680233733246924566258155854113743733414669476544780580125486843822947288523151008238615281309622845598229521296205095919712182329648051316478981908926389697550506085588879246526015462335409129048751850907891933527006626218035897141923203502432791238861398061431567293796976436591872492445657245546777279212984293091936765821034975172391494620508675172741997962445413093180799836891017456590957190382233845573966471686605303621507086528324527434989415314025795801028298018513569946411933717049834595375614021360122433986417397268397847369829287990759155494053479531015293453312856524860141791401761768635242507433128450082738945602622765410877424484863840249499323225543587039776906145190841828872781130642844794587464722953729255236685286172286387823068210420513034700688962609758257707149799425585135429247215833029536300912874164583691120943836516829728944098839795228411138356025058207998715913549920023562667849312452898089070163188328890589328505976067891166513868316920057575298550688961200010960758346231790918188683547286004189549481764808448477802474936018678150026712624921070145340846377968643583922726351031518369831925575198267515326553744969522274596256029725852192565620843947838076814984761096523717966522214218377767289531213346249773253545567631369001430132285657874385114707546456297817340322944046157718102063766833806475417407143925755545543560913610169884444634586632675750704296713326492821637191219424164277223162400605253674043065944341372258601326174415917985846374392811724687908593343509103547790323501619943138585685054380953908141884943663630808012204213338974822442524973316033739865885457309970801020644300126543728046527528627205913147314717892509176331025412242859615366985679702380930167742199925973121582071449522632347843277971419195475856426862571964452859995506278246961176994096150845270343462463447426565906523805757758793973236709189309916739889859168261169663263979919516962501513454980969827628261428608299516048654324510432339779112561255985071875300109022099996725205952568721966617432203209249757584099145504455077235319059043025237469139721247713286245430989892712661143612661168196817818605650825533013155928833668390903460193273319868947655282021131718820650428576553005834310421125775734478033759382554527211590656508432477199867716433921547665505837298795337667643861680144059655241597692468442837533472048939656093734178077907830824996433221539462821433017706601453342296256116125877156546458801588228439406805414111675041910355030636830773034141032324676085726376856870631148359271729459946289090277252383689063895142518415528426389299070797844642346605209225259350589083742328964107843985464511074269724956826711889540778054832732615408606342437214834550960091764354935329140223092168178351890218805993516808064065802675165924937669773864324340982411002911065607235093272261557360278085739164879719216560792639430281814284585814121170321580779280501317943097667426581630529590217158387254119036671999826093002270076848775157627408004463152151765430283722815773540341300284965534253419077718073370871243480210797297665501421824439414840549346498455871776473036068230727078933317552200346830543826611243070718123146567528235737417249507784481206132393949886278668706025852703167213688675275532946487826176862871972856671914466656847106117821588599831950445062431451312933430685473129506573814899525046867690464066356915755275036390094736177325971268488175530202259700044621738420416910040141709763632705366046682520238360276255528347866046627212879096528937218045181531360355797324741151540785953013094904931499088117928385266519173622055733467873767051662903792115974177760410023086439115527622016623610899711197222940359872081217318753755928449205001711890122913788837849699928585772435520777417862373655260037224223798912654176057256285709011048124684274895063346417473842002184830247390960126837591506036267275026773026950950631904063907060457889620874462055462925456855063365045434623837962294820203186213912156101894111332356126795807258202855142557914562922753892079768592875869639220209511078372823779952007248788377076296477502935671038577916565908282824048386975320516577918971159796685679833868550361432736910651768483704910043729057470822388378683681119167265678564792805028220439137433869836764710581482480375832500310564430492755085247876973236734874422438310895516660340706812697925592434524848500415897879393759547449885820791324967604496483484324048205270701682691421127925301984056207171058566953081842087554597071005247080218001915515991837440791320512332548503242769896837295520803124553643203282325498591908099984317075446345828182582443707897742605461351570498979373749697916693338480430558195115426628636104926416179067284466943780252763771597902676115108856599866772065954601437390611724320133830474954692942183139568099614293900269310387276160148087638786973952512430064391555023028591515399115634400046110704821563901865533205129443919781004621129079221950744980237764544267951742668355392129520546374903443219618488147604473177506888819107274405502620978319725256551543382110794278617528331811696477265981503486904809280852463091478890217449064223346032920829055675093734954388557352591738984481107861788574979716650833314951590467545327949857098956139183641338008842250292584968172679770589140099235111692617934472604487039377716322452437561474130563249785225702778868374826753358886406225677710978095981441880822227057392230179212620537906882096078143533238006142685196830171450301969471365355752612052181734124335428450156827219970008048653696639817936871069574710482867090938622547894653576402332261431439534810826530531608374002560643306740669008539553804958534536881130812504444370120026229834613697665290000937145421318990299129232942268597027415858014438816697799033865760837348086343976140398079381913591740267411829673368088140381506459068076541670388286869729235328438390264342991135375654148777846092176791240391616477049669452857762913864433010579436032820354748025076164011417686393746402961463198650078055438289970907630444465886641987222919214325285012797226767643051267737344751877588551346417569658519747569408125001521380893293704184335652179693808185110960447496949731663473858912030334886843117244864705903736572977184404121988843623686189990077147269203172690423380106296559741266421631923501101312713836444256702278097702703765417293607073687255861353308088691917274977476591930493829437992503012341504440178263157917720019893051095955896568058064592363671116175480717269382546402748843293672825779694411575209482553190678276364091810209109064618635074033514500270778680865986888357927210032890058720036231855778065221726529024819006674205290380136812779325152653523703712452745572540117730776603301999278727682693288619253608874662602512737177254928815648654975671602208515226667587944861919665040369963279012421242105767530420627171962361232226453760205443900446897250235734272156863390345841808172571157844547095010842513847871924006235132293838739199081049220006923375901873756000375361965091750007546879382703440979872014896798607636802486866752696504981189808753727067279964091802433924967709598038483099901884081899654233804820120247095917628356120453492892894573341818519484242881135898900418301415097466802036599708928952837150888484913045305373851097794377473952033240910986397611439700644511963893991169181527682290018084980328614030346990686120826644551895308964879547376383962728090231122531896394177981699258874511775797858894587479732892063570378905917391493475818443126813065044669003741175763579265379913556437527863555668071800520426914513669238121714880628473097471252028839176060844696544388949947390949793384411075883898537159912200414822348283420397935977950097407662934539105646079656987961530243953469872855570839520729128258183451199561880641719078166745960885810584130100738370025060077023423175572009505975222248790650810698910831632912067130715582171184570849330474572080682026286642822806346453058419235182622538995223773353830719854720678567480397150815800206817844043949584500633596784866807750331010268716528990115451805795209954525142663434386749648409368034930409415330349648414170364894464817324795695981515290141203651733954276851319119991441837135253665622932201828323947240730560935192373381519567144841571590686251736228621885495381924705044123995284279226460833553685992321763986677669919647625879745599945256937469680260530146970772013270722020382027612318707367799306161286158181616952402819529849954017257695345471670020445734865915838285374262972072857471923941421398623690931597987063985379896466599080548559927785233236720743068557052309617183113717108106638159105993724673777173951092829523354652088102553001465148692793477241944778981223667018940254595722588763535958023383927487154483855550258621219545168178061712982341059310172483867999596603026092035345720328625817933116135880412077907706871845683338948672479034660161714616167472009153775058603465941166078263987579989313383551548003941833409874565822200932933506913042650192572282565600198934677261832998659741512675876872074805229862469764131640188134961128634092612294606597435458851749812794832665084437706848642342053523106954942062973920374123593447026386354576250327054781259775275899384741850326247997321850582362211097996973324282266178535085170694967571121202258254068462586705059263306905288294096992094901874481105113026897086005022065839380709892917291237983927195954908941453412742975221234755749686129069031398673062950242190185820696164780962857903908194755730051683673536057315022706972898336227867787787978734996325528421291922314759053812975348638779696736039098440884983688275647053488363249381698993457674994556052296346817495017565984125614807753657747632661353946950975098254793376336611977182534072122029695089115550713367307430089768723371908806644448401428562431014513204908432940710009679133013154300356311559584609020847243828314968176647797806161703082910868502618949554037297961646663505474543595654879414485294642470713808744503745137994195414261322065103598448495560595913425446157599288896202737840750188757587581248629620221978233276525737423765128323733743289569830739094030339825720654902188394110814419660458202409960732896050892117665418348075774357968103640222313009650664672622437759520540987084873191687068745372060328850948361297937453837021276194628933258643266200918456352220191616969368629030831472377008959717684302827148377623797741946353258116445981331789744090813475562349194547157501102830480769193925383443391175508824593485606183369061187269651956964660118618354818509667635598266242639667289723432062886525796582503490707477330401174363630557838339935412419120506358904645667820967857134407856523608606728206967382953659685327522188384834120339325312023484289183695162540985076666474171522423466390714006332489838362202176808189576865006894281950184261760692507685445304062986141248038325349374709395591122367499751922572179533779345151237386489508824181436253828199679399009287466544139228458800972796103670905379562151324374254453986872497521675843665162452805400004478378331554083314492840502252885920480631566888530696301048535611139884989522428564675539944849399829788323416387301739420665879888681514537925387136194194923121465611962762809352124222641635732304223376318457231470802606262575987514071306912172716066370077393377397387730909111577477098460455531227278197248568696288170180312163929253886675986637029980283810595227072148196018378974530887733912647761823261532261237660020914532452478306676055611295201781305282761399980941619148471725927336942460515915750182758567172756888073735143630906972634617727314962857311998279329454453926602229096774964332021442441344034447685328133219883639865142450338720457292125231005615025294162072587383893745447785581080740010093281452425398993904563406625221441181252746446161900578232605867235476257969816424559685774436348154324315182787742319349571145265378773489193395240778382974803724727097119304683226291681222185916219036606585319969496250758771391710717181629305473506737076278398183065245320900293338094730868235372697549609832790861976131764097742232913733297826942885679923324674399633105702592242603468595160931738185461807992492218896944669539144223085487525332743204094173863545262262445021572437173778378175113220722980694256309978025948295026400899603848474211334285721288721534699394153767136004431138536097486378715602477637502677834318020834639583686575691200849492534234920944423294896945297533860179051800180026640539785414883285402830449349407656518594836686574516385160728208383016752319332627532423334327187627201015444898184508125843883142710355493648328537522594794168553925294171655078375707347322006435222086884384622127095376142636709600867079028719135504722329473706514092619528036234322272619375659222859471195020900807846599740208840214303358485450001422417969598702387398621666138306914630826917983055560636564922288948980512164067568701772506321780408175900630799767247670978930032367099372392379987687474364045399318153001412671931017808291300173080231669244609903093773644980032083984991945434732442100328687665112159670099807676892068539365700456301868936143672166957884381518107235634932473607812770811770812306429063084340076486939055739199375387130812280739838454020178265969660942503547942254822868940811401348013151266170960211031907063518715744614853594454050097168824464030994749266104848947621752900674704126184471801755069817741508016442980500274705155547042383409498343584543900019755770397375531740006615577853774264426156548060510521256563535084614709169145516884690522846930955390824917370829267508183474530035640202087264198044513235862893819840031290784770673199186094000761857191193313551163029331996661380196429077344453956589315833035115288763517034732061014749417813590260807175133830479882340273397832208737085158423013978263143275741018238462869085513460443069723484478665858279656284893531144198348802778177965346203929560452478339786369970396401677770211047967941009695978198433982455003223377778799427900130785813075945695977096052827319455619805834156631079981214660188969003779330290021285799117275449087218462018774033281348372250676924456768953792712073615848947425036492458476513088994050336419546685252567724859857793926913776456417233669081693746823700572987404754150012450995782455578459463506022057286924385498967768648757408450164460870308385837793149420838943354428377667648343631676582192189869618783500832304440933671104091478268779147859461419338828475468992236313494518047706861026815205737879373684994105828549196770931988127659493487545911046319361421400115836481589357480540589901912608362736708195248171833918037438643530911509645603805184156076088038686121965484901175414625854196283167368981986331861644012553268632915139379677175002541765475690389839018897521707278585498293198260947507776846071104826165226317336426694788023665013864150703033465940062474076857091756039705562505213504453942062849365956640918812463170173096236538800698311327528705089696635769819165797823963672741646933907715137702607245091541039158648292491156013013506505825977389838840233768079104668673761844458952620694175152404416635870497023358171562111067908239808391444691788109376672692127478637171681373509505669047856834308539905673012646333091839721784325566574089548854418390586596506440724820534183259568490554367460302892181670019456409335590484889167922532971830723716884318979495922463436750910151959168508626321066972280919624651393992433937454639753669333469526760349912256476409408988968980929415959205314305613240972171716613891198806300114312365764580721329630560874432063116044049451875007089423549500752104539046295934741869580022199717106682872869879074584690075075298409184626609046270592579224371844674039093645833004556786758709127565936208722058393887045506580512763251007978998636330366738158513847626277867215708131478104947521721157386872951929083998985898351684655787237176834322990508988464188928091337696168057617659088131434099422781889713952081494269508251213358268856828614772148680125625226399412599578186185727956692848253111277693809292535210131373181227538102664221980074830935474794135982156938026443492286436806487512989536772188383926798821803524924455958413529903778011966523866862475899742423388798006183076540506824453344762359168267576858532477695387451559616189322342958863159213627651879326274478548623714753717102031103318862798390165701268144524760920452208930359810187386027855864383479489469991080917968492482003988577430379338341008296816332740543058988578649851379248247943332118128494827720948507456330072888535067581983351011636974675490693101352734969774910655915381795118411141076676149949718041605579067832331095016664396466198523889899976658020270051784900089562990814121424223497695973565659584855047789542863315592451797445558324829245394845727683398081903364360489538250283262230075234405392904771553024605577356241389526450780219571342198041614224343259697090092176106955431552276506052701771148589777784400584344727604733119959931447301334990176585358609209891743267699469759994002124917360878205221346098086310704756191995206878789563883746158799962013592581807317555108779676955770115772801833141741417244694939126182898815492034554760600372942885269136852895319272126960635337134254870307417250733861092050581415622299683301620861504507932736589765206708124702864686796025632905174992332944404543380267330405854003221283832397660356236313465353197198727378431576805016939616904243190782978386228300242425777609698686306945734643264186030508495014580395623346883618779164499698514362716570090068610243486489614218917839651004591912440813016047998944743481994417805240021968774414630134516205677227349638403722876951298779033892212840872053178707025334914276849147973747673103994740264619223448492881174858238511595062343506990766840528073088959603065750836346105220465897845051389788914970362823770372860401766495897866893163653391973782687369332693703384794677180774582513235793782279122153254092187745000281155114326728307522675739532148588129492298889148052836275648771809996752237833090171529570252279574304155908530147828626870028652268273020417921785596492778279875889143806472033385717012022267327010252199182721059484483243199576010847464611775433749527091651005140992169810916841448169151640410029575376748767371096822277472514618312080849835603218218764896971022994576629464632518452206466661838856792787968155346780191250578564154577383809694484360898020034159212000167147862686723205586114657213356017370781978717758932280087291886014006668640720258480125283718462117747187664572924112407109344732708342935250769165342147277138702152037230241368079316925528898579930725603086323746517020464439981530191414174342264679270624776651962325112504737665763704941928921120168650828917666269003100979507519929526532707280155824248012480691077691524847097738719328433772659113175342931916962728294172778735595202179837679203842705763256560084118353237021673521900477384892186532402015279629586822796953190084882405614979192539359561323495605391006838466286099928846330396979420067312032294809666617106215041896144789569043199586269273243367493952387621543204981238354677872511454843869568676088525589938310892434350880100356432520189971095573821764163520757850418171347359716482088609821913149758672878936134251937450862192003075066652461973114660141366276828557357589471042507729438911038047065076440380030701508413057601641757293633218248299377622699983832614388174951628528520455146246123642729536032287158733121614203536672747687354520099397757736057007477176799769204239246754318270189498199142594841490949067357050693049712801665561311579328611119123991243302302260414643852258073226303698196671909397619826888064331407147812617804962141552371255327519162411607632784643490576160341439689428885026041315684806131552152018507840929144434148215429912789977885654186688942067451799751206034105649997130356209007003200567950469916776791887916026553420351369345765280378747015606920843119322448186606757330765846163376705684245569883126790808262889089515693797969811377138653015488672724461510446242894319924308332302276791431702251394830916827630358677984566468411490204452021577632092120833769269951969648087038977808935036096677400292356188345380161240492528820649003131942266597097258276076723592292414269152856905489918432693294700911772892595917486376279466993439166520813060711056295005414344860286091925234738667178237131813629550286481925888869248195505743015103540245194969064205131278714882370180649595514369043134981250127387374816947939703591611887422717104314297147643490250699343541983795001235530015298600725503402526763446984718180581343463009751696120397120312739698969304277260891705124342681839293566325392118450904004559390382394211874918620152212227678969531939135253691212242063535515786993117266885706145503320506588963539183912290736088024879666539470555371742371583371915438405354946657985238113060294439953260262728852581799457673591021478913590954771295871633493535373906745252943832903272711706166853939462939928337857538038723529865574143616819847381907142593216485012311825644951852887046348390854072679914766822176095475181366808767964468095018702610369849344913639122657848472261706302219503277568228942645744919482642618748080810812856048126086768253751570908818670358469652650780497159601397219185181966395353825764172394847181852171045937415949092868352770192091947529582076739616416898003506465787381718925281842255298822569837276492702978716592104987005532181084962384111449836091824733715934025009195230965454304510340084997260723407687891845592911169770313544039139073953338298018087645712648837615031542856122879350278584735793718232877425670061818795635788624561728444925581540223886789130472741585855280887561814770961026560684629422673370602176624622153889924904212634638963017845052434287257493399009624832174137887011379584446723210532524457800438648453460379569804125110782914382755610242767921383066754671722375637809674483807062626609570444147004430376223341373953604287226548528813688944741218012955415220957168341214297934892223724065419463779617020862375387477461847496144133731270387553871705726881129630889972207784831718378161471991258869160241564072039805296443051427249433525242530628072611924885836091253718352281902013523389734491933547129086123448419494139538581790005616142664529514956556324914561160027649426197591128139917582349706491901060563148260129739239103838870599310736529019641674343325933239959748959946097487985870616174359302215749120746376753046262291967082263747555718865793345224915714047874183746610830870723035924558663694218883430161581603829389811736630613515564390373889200598533117906246303343885911608889533446939342097767630676313670213732082527094003588308212487833697031273733038838995059207186726008919017371561670250605468656036705489532491542152245421032139466306505888375978715706018154986402093574251948098623114953514068062594688324054352216397365057304652334543110395151818006108728920679194567003685233699853975935873847479189800737584172463698162016293460124157624563560250910670169206560211279607029368756869517099144895646744987342110643501294161636740024191330434880545864078828485322255847496293773242616961897328938750029688929821651542087105121342074113198567250458638170079925607977422590918969292936965485036622148914071540990661392906375538885682272434993851622514782822410489014624096408423957294458667451292156410923290997498174013539419764063320563611587869438986532962409840460521136469945587416078966983756210418745197906312902996945660917784362352908831247420010170888315866617991786757298351849054358345771359314156933338912618522654751241004284099788500869961349091024841589125750523249517751641521096533608328999298814708969382047266927122547411841256118816022664505065924449735113419479180646784261676480573608744581334724543252784353117232732340099630666212191999218033384645332238687439075483968450435281029461950749145699417989471187514208333701846197619169773464548287164365262219917167282391998149839173469129958674456962172685548416586461271366722020437453514257412040698033047210267552412855324254184466656379222167853218004304834378159590306842344429233623258400303000762006805580317990598467985562954212877008724379491056481777369778584408197467516835179352668235080350783578807193566613420091190833822226545438245114815324416815278365386062064173406315022753009044400106952928810882873374600527219212798620645628117873059775559290782172881536392791509860464338034100916831809471393263525423501715720849010787035213155814854296855771552365603502679741055838731342693304338221906369291126053543143573548873257106949671725354792008621349379899914469596559377611073078278628213328014468358392791446914008553976880855336949903895046519636798376482510286789752790374317289007699456453102488464438108122290636629251302507916075829065640220405599582871345702493501225625861455624423567645342019366897182132777357209074466829688386237172141214757803220656750574900112687831264761590991840123619212017233749786918232496253264483407462954188034685643177720254187628019741448051260729119804656840495691639053007161770359103045080926976329629010080188805515623783068259862069922093028504434559484880420130765078295858603847363697910866354803313225990872974550058407735689486732580779566411795875466442459072163951294554002113969579829203752012274689096166906890623779417893753688735187064216070047495298208713047712284432745057818001677576103565205520450191879401860648996838083360053120110155127559834937378096265961150204928060486888012142953517943243730711392432085912871520535679114696199941148720207977320751984199555180761716066959006041330061024176527645681471185908242392930099424405417638495019352141584159247276911582211445654815149478296863954160420538115275504533491137553249390020107652996003223419933331070150601730616624554078150372412958000589155659542784003703355121105201085542922669431929327480387789592265038993353067322813351863333924541213572067044233628273565400836573181572851905392207737739340051016049712530324267224699041713649272328531030508857352254931632491381930156043067569564850560665305711263078046668706766960625341044132153769557362282675210253730987977958749638744778262599319323759987585430110606766247833150846847067147005158244240787055621889985511795887571642133396487224822096352018511618716713866925934939212937070966497100167957275524962614611430466134925187205451095304293694080344367107114217338155436831424866503375845040892229324316475158958304640652114569585200752134999963726659269972635644441383040189291066206852137652286829106135258341906921869277471124892336847965040011717538563837806505274828964912404330223516961765494042993967402476148372976440435158519599247490887366803287338701483724637655699238041328290188413310217616063978664031175744872290846954768291345229042352036849904307939321092390662125399566117426297970999081762181774685414833130051312186803070851430032690640826284077856042019383102753043934923692749331472466853672127727894531685035784801927339866506974407682165776333121076836672496787424730221088500157845149193912611098448183945440630592845775404090171132809230347443104675767998531882984807318044707717644600372952443831323518941974699590873473745837208557619205367837454560080516695043411251104333556286639653501473096250880765580043395644633180378246981179288823825310295689722815274646927565979608962830471502919726942248723921033704125612591129512496088916176908446186907065304241953048385445938428617016792305221385385067926083945670272124040987757288293519273692762582924241521688526956298950938813195918420581850082368843533686178197512130296901767336417974826652230029808594740719865511084149816025557111055620457961234375355339627212236321787052574625259889628573010661532576743893901350286596538374327545505842412507984640651134654584121372443768124200844259800220432209895017119328437793526222122844812671403352590795057579277343340442177178961221165802583518379421300301749292371654633443464989544430199010540591470621008571050717090890928555619961106683110998665609488724705639427577649019598836413508105895376716332338882137683367093734402220436050297790756040272154322111820553994131187220280023214497795747684144474533220359780384422031047124802802128805222976640527344179214880418999469339613948245516920761206164725702189869235816401582007202345075396241220936667379536063223446559522770715376343958132692075190499200380835546052274450057449824411522293415214668104031410109140869687019546866940462698408906981568170002283130626288169150973539824089459588687329728791800205476155073333803404259114643729628126847795532187715101792591619944984134770114917360879962391752706144257349973954212301419419830270204513530682917003115618273955768915089038962535163857070428178173177882852712179127729666978517751140688595532393392507393400484762020369202701335732177022864471066427388148248715158203160317745906793080603162640359943737417030991977549062093441073043602647396574681894681871113271213053510500014190823907085473916014528489046038896752305646518888571838499625478403811522607419412515409971473111430615701918290626812021206000867347423329252538918197487260865438608578164961328236869318848766153107803139376969055526585953328592983920646519864257902082164032306034410035482874077492976073391742957120881810170384284254404912054585091469983928608576600395048181775951783907190257935049138645520532199983462262565293927754096325016264955248803493384795378606030545683844705609749324695778392030677449962627231590805340952609086693913896181310563757418978323320387829961522356947799371604102158079446896616663846803756423013151172470228481900669740260643662035446967947473841606596975418336465725364498389703252592195429655957507339145548007040494661253601842343156348062519686194418959528903437672201778901084235971159546712095999622879214143087616141459251087062819527590564978077921542049068036499741453358627679850574061566836722618527632463311781153332815939500250972901144004516880216072824596245011310638435111434982343298099925545124335684131513507735585831585752415715323285476127613929072780604352034391207415334859291200542292967257598154187028776365779036973934331315900860194669906907599359938101463432691556512137397690838618860161187696172653800105690104247182823649152704785025600244750538196288429479013258675099875002305589314421917916334563080835090035380771849978821140025226278719139799904195213162233760923386977143134287182342421896847558876221227543906389983361885410206663941022379713917005318115751076012861009729625496372115951663417521758266770003796987808669048891984095463620060779342186449241700744548190555416305199176249327098731776941618440346260988401922901039018797876462083678166198727712927466774865059449286222598282844632520858391898321561347101926747115180474317223871155592531431800089621284429466011429458853008715770059470438409636158019443807896008547607997722072684586184804461933583466830727084407529708976664595411476683471672258051143915312620654451132129395276452856304740504518753667791095479726081900481200297142190350271332743010304763033526062903356104962106523600554429017882506213378771691057090433984123435434313781347125725177124250836937032702030304320077100381898918131803058680295282293371041154107001131333979629475234029308594879734908675171655080584817347690905549392898887883083225733366250298330058750703428884079732211882314326162869108073337735587956699679690047315882104710096657267613862060457696852522217301789504313141902014962058339940709147505755765553024946129311824939308933922747427090029428574697790460329327816854671645961319874099711738945086358161894228689988264635950463333464260449141150140033894305441344685356769026515215418205802955312547140513132213376474098149311272823026596523352118180601883044481256274646800024963459611810069957083281051097283465257179438607080762821876766926464200662830640971244117772200047415661400983698293488026145942442668976437422325963793967582495392130238633186888383769852400525821774693927963083764684766435264220125781220783696544008192002094631379382240079004247893572198105936377278672870110573944560239567151007486765559879287292753800081560274445053301020097127137038920807009432834106669399084443013108657116485431018547178953536587342783957293291767607469661066624467784953110290853259815111810428870380707783187162132830876075592810517659848442444749170643797179814777006151693978806912327438278503180862714089745987344392555503827597388268831690761471444602942217165979429028173005880264910859354596360610487791740640471333333864263384787366073837470053812054661968617803249963730143890694278971166195513472120605469618242837575399705386970447216968826976717563516881319298905606458391704878299782378932632723349573375109217149623774662644682341475820304855652815419169902664888587211477343722667550863331788382208494027976771013645502410208265150953754773908401624753026664883213304803184802443548277794974057797244757723701994263053967299496866467771721452234764154276723830870754387755134780524264757719624089893159240161984085410880072794889680169773031849195577712138855405812725267207981315062201032972761027903593648126320026964985493832097247954037416857095249159868119941127955011136674395598966114278564485502629195320918388090455278024094981182617115628602503205911645668786881947597144413733391879408674508189931805948567505799223694468358158458880791861686275434424685091157334704081196870592326930099215495091940152401664268393885986405536557522951408792558637869222839726053100810687190681975534633869801969438212642840283539477944780749153486899150920780486889095145694533009225768501860476251176914941699183582944143162471208666523889887620111820475667312993008649951744356336427902407548988973154647678193194047967773642418438529779506302253524593766639345392411794032728948541097233752836071501296824551077441195477670045184900719150147158286728278606676647953703083421799448816053637597656453434181283967510120507745080668870406234824736302781279309578399549428108611731871544950034524993299875525341047247195991363448666263537821581381803104134948990195911703174225662768223923383033894847126621786143075825376666970490602990706057533389881344660252196933322270229712603595267388435612254945567188050251833771657120775232400294761171008783012634049271364672290968238201626887647518498780510340201462284396983068952340649026437152572536688190934209199730788045221427052717557925059795310293508182738689188237178339099741278761786567678542960613362583675530094231655440135889912974182423223134722472872596286360958166421344014001520018289146665197431588711925019342645456639423950439258111144038069326828494391045048530361473941832087684681750390700007526294089429921710038724647706285467157899425409802756307906632913453450292684675335016931699668134002030332329342856693089829499386279660267358286397368285564339239183916139466799201768587937589929516969472177274889511143631941035205877257867387890460970979602681106711324738526731391621813810897831744849289248252930350751324915546498488916009598695618543557873541936289642466935799395822409745239428678669258144002113919099816004780850923365511872614469425532039875507475700709648076467531231257338198280312872976167468980830958983724387827603073364582263443559399480632852887538432990466391988057490881395595047189675741941198798892041265995551105960313138775914702617267321367708495980225846290813730389734253723081915385327196147747193529342729366263985418880035374355355314734029019214259059549890369699786762635189425334390525529215807267157898761098886640763712656984307859901475030690026141413685096682567561493927524664527033862121796261911229754361448493282305075894900394290986325992386393037479909098299318886892632031231388371553730957510661745097664896271854356775456573918243114762072883991441306977586968383556077005510860435586510744478206813184460314081502513002409866685698696537199293348145421469545160829675895600062301173899824102651159705830132947301478260603139911436589259391059889961327657441338378966535848265306115435169255305218865599063321277174655254273341211785800555124059340487889027426097329018662567882506395348055459311918366249730610094061013814132672234761195696825404695730970800925985281233685874122745355522704365547988849142163822812067447254854145004880141155551172614903157141150572846771782090536638287045785803390407561832256925336660823940445500802312898612403863198630907759327976179963596129447975243317925774198303832435035498409008351276269550916865927224348973361316682795673669391862552694148634129750023527103291492013786096558846250623342168943224067694796283064683344211370685030460159198717990000615394223456532534382092143299825541412724169986084585390450948379483993410819019095473867783617658364819087569778153117467909819122681198823099211780864972448867127248823594658257218343211054434009290976591994838631783207823217263778079686725114349698537703663775746129639421425308719261365029989568664550404576618599753989153373801509148756602001584709558155545425923577243770232225248620449748040917584684690102987435472940722543284214620354107658117710979643114745002355219903037405593384131628458779827811470963159203197912044818399123839565927481879112718244778750508211319230512590335451538010472391180402283551440569382566322364384318751643374528580205560437041403912719910917330035330201992443086116963902212851515967665380097439024960709692642785689512711589925624179513630318556828555759576872738454789792719253812769402915309028246189439754100036256447931687765445619332218827975375714000012525148173264023904592503140188683881997858223330072010658047534288812625720981229298562588381391488504924639283764738626572819714685668940167884652014767717019478989589439526195400117207983455616442795360257286719098086943419334919018205955277034462047888988160209188890964382104607639276660831761088334822273214618406918989542781666540474751197754571685248988897435600357920609118031604727152271788870518793856102675984951918696519790526215679798935614391525053324469986359852576250787768289408805141644154861176709494646564201332224743426835637968150681499944112907168391901110775682969638015733229892604645620587486031296074831934949819358542482396819616898145023971768186532356141815454178850568680402474039161253883774672526190035535552699727559339305819586154099616795391526147573032311964899937717666824263089846241099554103540494035172157651810032728407224162401654386615552955269122980796571355465205918774186040086895761053968245413890826750923608459808623316444117341359675541208491545601421891300593772659331067676700862741960192250225412839416136778413346409545254741737341862941095191578637477616308741235814727678182082269194735364665996416274748014296226105945857509228428795998965621644752007165655381592886013467750638216447601326106898725745905350592868191512222067693180909493142517655767159410937076955827641105958651295864857014512269380059580887882652898875202589263596189969670558748462922989153135618732055237240768542836601633491156435165367998254002700069695966646524336357923065261846519427908947305751735307028314168537645876703770211713489019089153726233207250454935884835371373063246234909196991523586108154355417440443856907793467591591447239575564155683958061728301782822801317020928266094383031325295350766664775162432657293717415870400602351770097537501226796383026861103942317921555910559438587177348673271800724534887019050080097064351994257734755895152009254529326451954168879600239648680367700122026289900821286302190999437264966521322611240539598426840254906727802653569887360343216415777219105655991510739636479681650397690406578519687134926317985767891393307881765039090927992662077464955340735377468602037017396546246453995157630933510543059196182118855025193301035622959807802976095267901507751131175302697502094599806443782369671706035230071643788322531740872449396094381937412647733574593292920656104991233518312880925992983419619097225504133857130147814155510490793492080437072571644520029143979504411382400496165610508048267597390707956933599687070474899478431613703151434840805622421204725434946184935844950724249334814803627099079799846577095262497876845711033760764037929983290822219638417870910482324762262030303491512033618703758464717965532127179730729390448613974319333308868851451165984131447634177984471908896747705924474765342860593526412334619259418010407254880919022794376533124165649207044839429357209823884258781602150167186797450660731171491537862520091810529186651775642604070159591895117184256650420001617990614034640148933904230086215968397412614510806057633259026124575976719661689289355654584910386772839871952780380399815589884876193732712694175186334190579480053169930777259522046400478542457065607512739951044414885919980923632488519467902362046079114590297948353582966099831555180354397909623788912893054095295792337828342338265592996739958546269238009665543307779449385161432984654171754661759529709774824847063378242325114209110713690893338216992493168618110251895198657641052268317530969861744727846178747399785995771014941164719358564115612175644221175879235412645911308921793903885428418166069791555658094133822490352647084203387122862713144444467565204741575202383910392984686655512562049639895230014871791991971011389641621450879045266143050930332540861758874800747085845516512957650175690083556108939007729214898436926601820701721346410495937295407107966234787523072632183113620135541386722905281639172195147527033147978221808834665290683550096394209735345442157364078342033767942469367300309865931207135269628613442996090204037026799406279549575463789089878883973941787095075851024396541174705769276149188106980170113966289019150794188216300175715395047053105776255291407404066670722762304231723830592891866175727892713130819197974202324612648848474493821361437314916448305796628174920491532749569773689123255095550994423580581508217514432565356623389958896454291196446465708841983958803539635443886098077143173891433319091705306292731590347671214421416088431102031102983645812319997904459348338231282464420231140158367352159004271621093350031370784011864077832937964745263559115514729599198633989764963041787425210775697986410616748718030560256208740680364289411258503400350101838464365905978372026841438758107927801951676458875655835374426990397388316499463607810177397553477647344853934610721475175227576613240687783996063912936707946177411195678307366145367093380637072195290877841182493835762076155048839037288341604469561114647324099305871908099017533590135694437667699883968048583264889323845365797531266917638408892926806713884909496031699649757591630457587921099215390032789109615260154943384316050079648257931809066642654773922677126742482390999102583394968100631072792745089522915189737924328424549452984184002832356862337302280872993338223606339665331420430636732272140023834329315359808703170359447985298718891179334745678959661174232371817239840980104904104607894547653995220755255697347101165496880958949247197992408442865367325843260030873610281068887673644453469576924023967434975401852622394203260604611331445117426705115758783963561793480491522994990850019975354327441535493896638440773156199725253319460273243842265779073918127489487033598299355473541736347849984034848962671250963301230199097103787517718957535372306862381960168801749822997277731970705557194094898902239599047912794705205829676835421052889470381878184791941726171770760017298786471365524478928798415176413553308378348120181274188477361948957974740419457165447886757546241175748417088498708830564271691580841432497424000014291843749833582681771403954037935120449268148763018951626938694066248343581761574254099110040249697733765096634490505601713853744638804544324376994461247210854657292188997515712600433292193934676092681666368814292519989905191157112978140667062714015518747352901083617210850631082265515690315526287443014674821714610293164374157094688752872829242644624702136101710192720103709109150772588516872337897198987408569679402770279478672185592571227008318561164138317811266713320626158044405591897947181994551159590363484524572019469601861251491722638267326480586960128575122059914230588077537121250826923213208459923212376013893157562237201779313128847233221159424403451309268857938325106758409379616742718348733853092230236143029440692076027203837943825060095629831727109478368111743517270912696357811764872611261925906757551675747905863629407325685193986178983036930132008693279429772515326342298743607150885748027392552830496860333194785174882175184066944293002235869940966551648556475209835276068282912526692051963143581073558219722491974266384145373311573708369227720684702781799916567156957470603492270235455152012026156071892527015881407722534039711670240959066245411960791759816026713556462005819431561534733826967426902490327683262159873669970587771434179362189416821670452150194897016541826736557739259766779482842593533301698634724041288964879428807533859114876548920607300617984892339359467477837214150856220834016629129250531148139983852334084988138637946561355892533157996439769817775486324532814677905859333602381561364420397509029336264306361536865102935611252983074849843077409278481250154682984776237453709041773623674147248466947243304810047618665400693424320536660811574426897125379192200289083066577452350892128954557800653032006730038545604060456290168803708841813350010324947327207440025516070137156490864551828830454177728231189437278668060606150017699824993862713968399826715114768526480390337998666325891576417569955819045885490238735077602949028545294397797473674256654969575827059303135048807812523256697559251197827427206581450349384940796428220313387648051932744255103007151820896043597560529103519167505378091143677551913930978693149971385885685725471511087262681755490264203848124436339372573313722775343712785520093229822257438578026577908848420161697737933539464618189056868682712712594811114991548269334063674448856052938852891735390374135801281082541188403483510857754067223324235803193495192483267390529893322222686331154887884288476883081409548713614899054419336253660556744314480800799419926042690839979122053606343316188685690323958347962457326518254463300197920343806745451003424550574493505202403405762667455806628490884106754210866570195884477048839685741266918358803228621225007593029701955518464402101906064467316801056285460117960067162842403857454639506441886953156031578814815080844052791766367624307992088331494412033551403849591627886047098821264163173282065149636170586818446121669504722875015267827263823264559109222619507537915266337595914640204572494951010862323071293465634520766781490238759251429255857611994246358248826584224010703449619083450149515155364442753738444551411733771723720842701511545222802531113889785380232293549079863112900199333119349727983913413719282120212829101697578316233179143891890988025306672881424855046491840365382495877735202652903590975017505177873145204733554022813491306642975600502193143481839430067606117529757815913510676366583763432062784465065401309116362954623111626757545448984185434434949791171209364564033449549375526555321022506144309656848767836758124229554705614483980233225325366752224947924662426464561202630831546321413331824413945002481817336178576486535498806070237677670877203908518053465421907128148611317230678927648054483313173341373995782239475112986350173652733656155042011759874841804392274640560448685208288633708511156347681493849881653473396239888176300575973307242458198955959600307356516260104219268771061769271641696869426864249117925511825276675606491972894244191280817784729939865433936562645193128698316727454930069139493134949635392815693822078297616923665502105839054531377598656903399008316116977592511632006378896425963371365687210089654746645207245013376213986259816187823854717713607170838105353053449695457273311266204123337382860186630914745491957005590764652430497951179401795040448848367811086538331177040259043457333461386250124486678185931763664118220556912082637541985947126648774003184984916476642313583439485909047254878139619845548909561247008694395907393885254729784098107318947825410586596283943325448728939485574101541255596665535328194427525873429040995180231235015922931745936218415655477568364348739986558894098402135025461812093003348823126575373325318226726380378245826129281029410873240069477641682976278912465692738758844389959623380741815573147773839749949013148991154037648139006829551270374007953391064424627586871884332808174946461557663094325848966684704920635515169017252178908781788988853164459884962534355843691152133444144881304220892371029773647903599639772876073580523891054087417787361507213439543893583668778546575235817233036954612034566632899018400837125350018177675043676582059370954760706225963807710548740706361202677542596617373901896376983801173444671179030090017482403670490232598235255266052696443926074198784527310869415291618576762682377149115303453067045596487120979724709468805125149623953609896618200226887616247760005582436061452021232442647999137280006706725522068716300345693233657100406219440069369841141375736504744356840371149746513670507778202916696696753251268274438627862410980725436871014684170923746960804579481946174522816736565618658898992147559652176838618776169773336722114227501315363508576571600603348800284807242751287015643042714592925056618440311268192374274288273687331787031327189903965455574234267418268387852389223007638151636789943388535140254301857176994245392834283212267432304254091929434599326024440807680968803242062782755408213399014552054456671070549998626246081246098146286144414875046139082470314144488769270744383764832107061251989102122116300764566506413466529499397448192717326759443905942936228632578640488140383804180691632894984306308181153532593385092791603594938037771554654188124569672204048222285340972925473094624716886256773030659731275310768749699745031082104275505940617030736571814549101261376333894081834970504205539196245885965697020356439643089467714135299678356976018092128751955269972807443282851151307492249202765490945477900225565800683846155508254923228340729799961672878594885639348984367557303593128362473837295134640735186075578409187996323751112723065647851904027954142205823940642089774580325972976422415315669125155580904934934811520430458400144725536865463652764764746361827253495671974488340588806182126674402895260770890214435831110084288799459697274343829387872801761650900749629511991252023476755202634108050762941141491167185860245341895932241737500072664884216224169688070203237902938813140108519774441697558078397062736346893912223189882917500006913983938578897595468736431687045721924019838293357328781154249690226131381596961221262653254415544634477737802964171790120290348085433617009290854887363850859075557223228255754883537523397093586872315104124025185764991359058272836670168671230940191690599044500894440548452458748645605725909644552985695284107276444380022526137570603638052719507828140549557367779054272525594591638049933395041963412691990846768967459209286344949904060188128367541846098145412703989118820856179546384134593722626913971747919107400688876652417877278853771199709344067114542979870681544553112201534362238589118971495375011771424966879278966082005590981763521264711775657157333217424570155058797456499750123004876119623442984308672628552555170797121056445136993166055085280699911632075393969121819324692249337198349451014321858749902496064926763092862381336200194558049351973412171026004782938810943261762514100762476702789657285796526575245952394512407210732020986042473230079696412679911843477172532109742311799832107640501112885088425052602273021906830884232120677988620132485636556374873761057996753590505614492730526328207453475778731017121109610378220719937800822349719018259042580694004871684651581323004715523752708558161516700562583642556815810243307805094422725540583473023618528217198912556421994497639020651546522535263779363508589384291109444332098023349648766288202384450729585029879666371283492258341539342965651827296124094415798541401432549441470801233667536044558697464871143142405256948921146299341174008172147256724636083819069273956794825177444850364744999812774411137156109653241674921964221912042024813342553245115641371735986998623388619542494740516129164645425722020307542596263457415280435874481575134167785299409445354290285246892659792452377868023909959382657152043881114001591824304839761088510867644949061393812468633493222782667320177053250154399785753696160717549327347679230537062207138206082452745680123839985406680911001554557012930513084347881024173432885209279751244306273748418348270971666098328172962797144760740751546556820634593168382676007306013323859239119209690985575521684712221583748754121595047086224129329382401676650492449501505178856705206228392347724610914330141263575993879956031145840501812913086495528808189567319719706589355745636752628398212575023002911920039901141588946403868484649409805094336866250129357604874254281999864761936743341796619972887615946470799470443910917250592001497758565483645148984050267446331432069011047631864839773225708764465016023669376166045251896241812335643523963894929770766121407449516553944122199432277682605682390923329053762706726756200312409645265230688313571061440423702850566434983141856365555043065690722099918478403593878839750992907586142566600072436894979659600648077793157438124703448437976375905457181320472718399820266850440085431746188033319875972471453950815038471396172137852406902066369192756682984716683687899788235909905567826074354694693553396829796565454916077724507220644584715929513244762400444235468673934077227714767210596374752946597998205151631511529188156313251344784764483073757651304794611921506014192229129155526655493793996241252875841740367310553981884316088374003402163266472736787322158792030514507313861147003112741900478451558546845565405555666844974212406285122601463521023794946565253487553417949532624949295501017619021396094394329143444514185607867200821368258018240373282379574744216037414187187463044768207914365530914729757879320077276647087808733576171978757114896445289484683700350849494177453371756810370086929282812108594186689404515674587646878172424816052790825840923251302866711436956464419365392350637243460314473836317548872795959838869207533445140655831624844357016287427940604532326289399811704517701499792446464189534718885262162121729032254347040792054682718934725910181203466590426976312810901315567653362984064406557046375280431210200081775812656513429104288449535448570928758749968322347814528215055443922331414995064982983047488796016271372562944858722427732654900160769427671967601202756657061277608102213447196475640046896114752966664198968324338826364287866205622459351468089803346907020383802826114913318169610574360670661691448037074841168579376829994757689082792532353212843531732672669599975243578442259462558807566545997557812136349001967234319100125335860073174937772989136922161401064657078065741667196489545696024347075358012228756433073636841043520037048614598495347961996606897625141798759320090165743725813295825311016997470759682210432359780282780996910261387928460888192680899874915239830231295894006271243444114134819095272628307571802514559477502096151752142468657930193518063509296661134679813391028915179974226169359975427168765962540789855824364562037413279465684190326307015449624736533847974183217603192107203511179750403691242825384494301912093789783810428797586341542885896523836789355040280963153763781561675609108395120443349148606403944578776945598049345419564496932526686326790505960890002021867587431107293860772919377617058018895831132459505544440126134800752246325493737848244031019684366128851928234796179725331769039677550001700089271714852385317208526796590158965575145235539782245401298444132787810518942415272275473136308292888056029198271809381701203253909171834408895520906809764385429821721237349665299336747498930666724129379293525584062885149547028833870978179753495992733774794507610012080730868135207750416748400136276400747883622493375011483985312092276296986250679984115163317806995441235375377265172718549761800701959633707555600582988038314676154471614562145684782422249690081332755956227459966986759580756639729279346513202130550659115457572324395729404657186976494933775160259086552596947938437402565081707663136010225867949112603476922610366548752798917694754226276978585986279522993670272856469424287906887456258984995671648201355176304623677350322390631403483016894937477127752287914274124150427685629491506047693578125291523137987711325120867002485953614714459262103004758255518017130341125286184909436141317332719402340118437569536054725145529377673085021318810335808787371574841306429031616370157245883748320792183313072204791617419264615269455609883016057728330836169564651831691822495624035771068960585386836934673620493947539082850219029241188887913021736158536953351122878607991594534271901769776998927037280154888389487725719793934506435947861149375178642320149493547053147273388527235831747165196015147984336578838148377360148147589096381392185743805975664759626687114787962631214887615892440304551348812656445823625490755113001816220847760323722594708880555061531695120551804151675764974909004126316436430310096472520409528998941569596443115511809294196139400502606548575246811975286723749119315778241292769350250686887506119474297267012370458693154769920761201819898841403361481972106910596399718749094733861297138935452812542012024393519726143635999817616214263106995370356113245566359898775987231599111076696377530173595468129465079419302527924068170961625600521102253156621983751024015703009575440621462381633234890900699227447194952644379408023605646553029846943271693219866583703491773667392160683797157176194590595948190125147479521612040780927489362175835640436206219992318174436626961088031448196208001404738048911382807000641812504435146821486719687436134490285183363299945784108246282310099653816660574896321616011146606141622750866632245517610276011714382081188584701050455776650562211091909347114663814594227658348736538066914866500272634700899775962541966712445290631366439559270242244630369046420110105762341719577323202897688949363792817607818391468414867042056983057707001066275600190465680165966395613016634797270262453285235182647847886620665989894091359963725128325017377585339073144931370300601056002449095140014822251231966187547105085595704402173627898970642431278055818526773659740406335131284337878634392796011196814719717907188803332979689426084161663160506957469089566306047550257889898490821690568896775212654495324325268929437187151277478976040820679019703402264112385031780212455175778657438275828763423074675045742116447806603852856224994056832300293716075956036713360345224097289295122701511866924822728092343319113825593297354299858806029145214966894617048388143481216054162147501309748658577491231255225245166021041424926928815578201609603744933919470116089197004307094295855750617717745898218576172653882966605160130621275137713664616352788915048664758580926293143950819045699500675392616851431344670308444112382753556839987924567809345743209547217891821800710413296879493548254494552159714964586511528193162623848844448695986922247617059215634189545535169474013924923013995791418543302829504516571451952853776997831641743821602667292022400436564511282037372262677454272136369095892924450625787845527596822073284682549357041399414139227435146446455937848471362679259641616126397274402976972667416616199187471520393085936647303336162273654537073740484903339941401201303012598488677851561029056341640799761632538864408224376229591977982461387101495937907414404801162092631307931236661480514689049475063610772304135035304288982169708703749822002336220191316305532185554280558689936067727457015795024306409428455119074481464038353758946035766351392281473286902010411870508874135773880952737925997634946341042683783670059461156407847495198393830122028914227979744782427536239035349127543261430164712627429217601050512080820290677298626147674094927095599036317259718528337407610745259921422190622001621056221213278724179214826021935631835979019765159136225354599452805602464719490537214073847518559218393980795916272031024247717662521431674271132613933221973923073811904166199478220284994730280550418231598430405386479337082292195757633704722260534815768635945136541220199069569483767285719794739390175175871059777639301801810828807027190416280619106983610046892214664795120850575456176841470318684345123804331394704184251936464930340408238001803945852214735205733129089172870232733974669802551261541240919954834143166004935812649451402666505462420442217627029259774644159712393969708129071213864436235329077697560165164073970737469859387299703587257409859673969732399594361717683118756606082639044152886124835292411266362015462185977021012945120035912879125823826530882199159954368790321679579778797606131543161454244471914602283480959936985990129996467485895281745339047510422565000106695216096077012263458685957824893850562270088127691893587349337240563111371107840451166987357277999048241856576877645550988606123567498351116888674257016129471164977508875128969375819377173415804543730024462939618062038069017770653944027845691649907658531605458278950961875978843206080853614977787934407228506747137891888661238496515132084836205288846243935135007920542326037640789139670045475213281743258674231644979908844291412780240831653629896953467556231349365146949338170707759187575272669404421485309591047328727138519507333282761436163596975407145165690727369250866697695103411722492332025970879078850956613273416488721754097400124789580272321137360847446065510254439479409768933417098559787886559109767453739465941190649185073973907269058485243544512358389861498894685892356024841086479587568603108046166309732977296282200312169135020589903849176924730595515887213159158763714985523514296752032490474454204401431676729797442178348600766777564992609627815145414832939759149131107535137324251060850748965966135665175461224764747541671795960592843855428436492962043176385881113358036086316955844912271986250226622980778511480967046533492759974484493027165955271335571689158309763345417116226930923840445761590370251469650182754128150123781473190124533282967080479329179335507936439953735083435727746989505359768777242891894521077737997949620194821101099951098334473763031037711237255204815034868968753265826873543170909524204031390618941235292160970105358670337740261134363282475561404776517282753560532178450439473779967719777073920023120589259475620318237337440587418003466903510650843593388862632555891451504298293476305985506521738892441616533240249489736783121650625858403675048280949958529172233733938456817347583144607756840846217182355620528545165228892470563044163806687535827291443194389062191085443251009261275378170676274584836328916796831398720931090345001701655249631334190311632662534745168941149090343427784403356232805877192472312084571997187207489400976002130975532505803467000066410009737438484000169258784248853472513882521824566633632890228771771680641732868579586553236783942669725199011820376419402447403769778870581298957320427921831498241772608811194225114848327008576379726986839501403187016707182071193406576578014636215280906346104596238663910549746979025122240897509882008485832215310572201191202332540640060289096146397930635180434744764406128776063657733039822844584003317771069561697128740050050659873061251315859791521868962460631021660300112206186138944225792701918690339197340678017790904873085604455929704876532921396258478221758088634928594688276792275184254736864960673383394687927897621141383609680308138418383486975874339757223723429671019021591153053681766922358696693569594125229894881103074847842736715296847952741388661343538470923957715125579518188577223895587638582126442145496109846854603887710994708002825290228281797186072776183089774105167644391038371669822783674283085300817878419509908634349644221389486276071571744265668166009343715116604087091073785500283722669162751191279282337564098950051281326523092938513420536450792806361292681694626680489073594923435449427086531502884760736865425365564876851564140332470262109824873220537342212511983635850193860887799251676462578172649246757971617923569848612150218471942584877801371551811722054878665317923216761530202757085060281770453053308863370055569872172201266273593510621804031020933266521866672868607700001196485325893538441735629192074865355058944766248124879299109484759731456624034985861686490441337417599379982277681027232416166055132934698943940950513669284907572429275260372637780578660886894647388403496203278578618725124154880176119267011811147137293860203325663356417098242210693552169487144956451982491927227576929812132416048791062598543092844834071403345617405631114413072746013470394509658142840141245778570945759625112727491119378179268833735990819880092083090528117055298766184775410019888227844865887566019539248254030020248009703358383107307578969248707454312077567782730421895094578589662159656802284438973519944504562506528993399405539326017400159138716261749446282673661661719955529955134444133999028060051483380871292434015024266238290505238394595924816529209711596275353596036084657248602434180721853826815737805818996761139959183720574263906637527312546028030389116776599674682146915227472019907102768024767204706074620805676692934876617770715936482020857196692218062028346331821217115688252434491845210695634341678725754820984705079318588036480187489449946136024524458496505905635684136344688297641745215217271152412742075429458822613957297306378304842524684198133820816877508809501881304226001305559821191794551999578384714597661278906276172314675538589858523484522500918753348884415703019248481995276106745299853937519526986911578183730740646916502935969554717446880418251421431806100514497439032882674139121633183999091033160494873545394198656499464290668293941334366185185590642412592231451228155270701946672877748396710051561620845104469524768002868595111782199840812663958586404455507784967011656051596288280563943804808203075890890781721666522949830763919531579164095548730741452246940657336045226876681007418708871023265182439993832737757015736339449243715497856662540701797505835061213908151183918441798751877368799978199051014094998672738456254238645983235024469101385755410179075415810163899755306126038686895229442377066317081668571271973627231575854837070283937630454690470015502466486600138453188325129983588871450880993763760006209951944250684978742995714555226635553656376488201991260774155036119994259413101884790710794350420469704141129055765667247262176744742865337135615041481753340647519252694990170056458544200218930896124044223915441765812377359596257607626078607300042636444782272536992764876496604499912551435976218198266051923563374608716187472902487405717061954267236808827016559453223398868246324137276941475972254325486531882476545476114053281960171421636067414079231283344169363512563825508122331689152525842045806870519142641201437741295051769940234778016439815768593407560204891780126221614420892210808901666572458219815218707927794081013787875588187658859791829721541218178385438470245188240745973784267334783720382298866042400914905581970638970895748009888217708665409074304087277543359780545562879646619792620542940412142241135969604007866321913408656678307733718905639330710716259179885006715691711554221597082225034135259314730173422204275321491958130641975525084750240591610220246931798643793955281734519929260761640270352701278042070056113609287930729632476260420920027098743870202344139179670732750089973150995090170864362206148930139814413166407936022987681005950535996050846225284063247918320955969968164210750154430406889109951415567460954702282303594971157751997550405507113791589956773971653023095968093237766447146704431622363549414692453909874157809804803224825990944859958827907159071527084034098519852589739968957298028179333154379037046544238435818167279542470466100597473118843267865070789335892288832557371436099895855111092998068390541919438377486621027232049215473891138970501434215896116421801167674637844091399652650446186683815176771013022812652390176677711943637758877083626637658153507868725287727846502833755228647745818712795111671141832488003507624831291908431728248463456308690867074482222814279186054552577243790877497931288983222790705135380560270181321481028115618475372259836020941354890859904697400895838151482750764938357225797808798868664836816192594937871324934426945428377976985632515241681169834113422402710620339953743105490643368910444931550466496053202484232617192979118473477942328259687485254508402952609208937642524867232346274382732097696790347044936275390179535436402929983599584498065385272543652913192652072749637653851820481410325400584090413593843625591163884908316610907909569199087265294527818076650104318533110434939512087019937130340537032230544664846688993718276431680447737095614117266455193172935819166154016007870472655720381791919414375280226091892341874786094400701523746338297888970608575046285645040962013487765610929249111019739180103545796357718398442962418906965599575327998670026985780043753652074344337284832807542727526532857430596288871794182454440578202393575853375307259004610325537728572715501009749807130670324466092291399829461184967344660947895352587777735195295626403640847004870016932923352881948278189530947372869720338148072188970464575677905762936103280126803030549927652620245662741469984887822183931947502993399375794423971333570485401486303359560056433660232510534869179053582596409132697928404768405784878938790376122457290670679182875472282006698205956619852323505308724205893211802101769893445713544254354190835738965130988560243041324382829829011143325873583093789403317847772338541737142865880413698481464286288626954781375543986043096191870826504252485870503879883930074922833688100461130906322221092989025337994150516808765607765453185437229313145983043327646956239469797016853666898384703698019298447427545400511669540937580099693296214800065213746178615494783466470844706752184414396388882270407900498176929703438385920644903268970414747029118838125434235526859398444037786245209837282841850444621513165459045462010227593847380769563994692427486840484484101964265169338543423831382113318263854011047976195312874209101301166493491418019274998485439390346364507864178972914042663303872659290073671851559919963334856061712143274626095035220248965690336420267264485584410860105049442353600926758477312979667390307389473049552411471260499725459079770768379278563598399626654630456515697206171686189389198238423730832182248813067658380573161033641564110678412918177404656448329830705595959234709241426351161258532023397527817860149330305175844617905738733513642136814902429446465488642973274845901859441749264997841702016430508105627594472463954021406212874038933561939912399757365068859921717368103327338728312767620763675397321123881798455688519416240105916085015308905209256473973950597953312237795097093589113684047981164198167194330756283349196297398078021162686965187075115518954965008278740504907652138892700790055138171379294874791067811120378772967345371929120679042414061844715500160837148543892983977395497992790550150769110855155119355937793120255003324046654419824285666246380237943268035670791391044328060140467896191116291881579051736573632375712872300560708994445940558576129588882910397124209074979176016470216479914570198738171315862691676307404005220616438063897170025290879394567448114566610475596875733079064978155585130258824362719064222749996646091021356552471876188980533098849201419379182909104451827523758408802268375797844155115605623935759882838830916388323095969113168775306466224438532906163099732847381256114157094458394715158064373144849180372845088187808759517005160433945224661924232818207685587244716420183163179393186600486006565837458540671216661847815384819055645678688479684312968548828223895962853681417713890400779203301356667738485864158579612439021088858963933392855823438928265198580393301442827882471419673106568513908432810138510818494578504267188005093192366562015749748921600091373272186249705781084609005278319277014454079118145040013774878111850142775319894944397991653917803884623805591475422248119718975730571906298790672074027465106918715939229533598833663918378366721531640152077370070640238954698836230416779997934236440123546063974611431589430611393929862843129963771674686441648133128881974334314691661477839396409046411800782988204467934599218453603477487482626973961016205415426129202104705508308535548960814087322193759873035363073902905589003680013520453585343186807521610871692296536398765715267420144804990827274881978867715929462879179732004458731195055882368159293606058597666202198826031000381128748672334902748576293332912427657675727818327980586404589170536806342694957947001639050965545227193951911782061072836185977820129718396515217745959267414470789370435288305515340751280464706817830528849443782524187792064796827967637336327388947360292789540873787485050301234276812815505519984138717721846152788762808014912207470682491980870547723052530676318990312720175257165892859331794799130924079053590597465893158377121726872610574332395487345736428719607060819874326586982420112184613619573536880426381469631208113474623696453502669427161854071051547652106786548610920135891107583634112695112167810838587312114752342453324586458606725219588459335305315997645504404305151411699580067733205289630780907981864438217224884127966946412235123630545560328543332626898724755058468442904173415682504428258605082424359339426887466096250587705288969298070272503055530433175166937102732488720280433055769967080113557053723511361130547639576973838411603072790604367337716751495966167349269098377772470658499533414117319746943345560323135085366918507687649631620221028835879509493745033119586430223069952503669174822075443634107367886965411638596487148237018130188834651204459436354926771548880774327137758111429578379249871760329716722993305362508245056131484030248528397017026892906850870085707027647284554587763615108546595443806046493932437688347038462967951746644289406529801625276323876052179435373272831070544549705599100465478396327176472468141685327667996475941598920309633877932271727715882697100349528878820564248483672695036899870518273823518060611012036447588125332811803057994035379558061817015580111613678177923971211425762539345061317205478913921115967091281579032488845698564660688028998357615456610217614912102399495722309743776463263069619348759314726019576135805969812997522536739160440052946497327202161579574651545160219636239273956679527878019270319279777763216392744781209659253363135193382038467227564266218435102903324715834622242362843895005400035379391997572542370726736183437975044949509830887036957817427618128132204727141597099360140319641567556642461414554757552059621129198031199760123917230291914509032777126455914128517666066760128262078212434940440480369125931271164945189875169733146204049224454047322938101876967923892099331294989766803072155151501150613835394826146293404420207039969354070462820682985309316636319927051935349503003468759990892244977481327501776899710600238778881204880988757497737595875589778404892054872522586076466136914125238727798769278551207567142946467329416187525474600394149194418126638049163883182656101782791774368002144528321150102392545503039134390965053121030695029419664811972196034393997648535289977218265347809035470768188554333246250311794837646931820416693506559632034730412378968803221578552005630598118665228722965886336158120661685663838270406074118718940044236043286894768864482620781592262612256804966325097716609026879606954745458262552547677556020207885488189798999604120481487480757913080356448186292901297812453998305433895345690043614511423367070916644024301549349052791373790827148199766649720068208162452783844516706004569490875198690839665913350913113429883040928276516680363016474725866658472199885670613324859426893352270396930129284158313982911220207145561229320730976517019678282922665968803923807725422991927822789604850278498302786524958970497740818899002710076808718209008762669220093147669021361033761165740277735836690580740496436132823818023406869680582505897416863689709448711319147076520250791499073686562601150910011246491846707171274719345591709206451341288091975007745939088779196836052882309213885730958110372621300215385854123750434132202293499648084236973582687056782758802118385598003371827746758754409702234399184677021461672457676055218404208146493944914087948972013058952281665575163782140925143320918016400698541013557266924011837589315936490494282736542613054045541923480389352197448879231745810557312844626166384280195546114906773660148139330721126648775476248710135087814979132664791749105900332515653575136895139749052401118590607862458285590777640900373093183655745166944095919159006418778309855772930633558441404738271132642080981652248111844817590496190796073375461328045641207809894727684377811568896875512985337132552686322434378561865893634698255706725604415939061872247291117892803561361973698457314057720010831683097143708984647770499564648916466486061722606735260710411337145119235489588819631370821356913287749988081485474587114038571928272626638511428819352525938910115508681394090838272305146141210468221976968186564632860000866782453106032227589510535489429932677513968844564101567147378338399651868072771304248626508271839825250490581396332501663324506159290569173335244969544609478608119656942306148350181368398278506763946213484724360323847855320754306506008600823258125411872343730609690221621741594666200032660906188324060712525243274232198578956610890629343918544665183820446411977991727820868451196308040551653634214024150834116659209311875571893269269534917056491257929502684876975207508470616480165429452731537073010325766990814688394667846992802282363543331713546608700484542371061415919156172932515733562179197470162371140637857872410902350233911985208864103608719070776234273650451770995540336918968363778730845717484113086671078623380793607324229769691452839473889579239033713822091837310952803176177438922857571198104458849668955800236753027635735452789605093275732433876209520779728734111905844722300223963525069153302837970940708211197960932754677609957152369594104506020231953570257488826291314202721599805111846510816600068469720811990490774005300567362619957817188115906424945044077657311687083222607154625883185806878948261679403758959040544159194312403036792132659405513733424435868050309916238360059962926410032577197594920247734711824744916861690723626897178794958006706237554270275550506470071677909734371802876222577599388974742935842713763842930911329080083856452917137610664195994537349327055125262161012860573349635851314153050271078075471877563249547474884555055470828121715839224022109420303275794183687994260130105018326193006663087856498088207354635737920053875134687321144079135769714000390939098130509773604151670168490545590307286108964437088750009326308341290561075132256055619563594955420151972775968225718323212144517909428057100107327188230382701022242095407247613469351251198359942010166639230977168167568942222194041326032395635021692559156765313976254185227681817386144616789079740925132238208069614464398785052734653914687892478856332952713193351165021124061756885417085640822622477983171196258827890151632162686688183597837052124740231938546405757669428150337084940091746059515091586436656562685631179492987962802866562139088791224125989955753153438060513035774847074591784636360344098125695242918008736949464009338889444725012477863564200241756396001629522129577978334091868012731978844964149270627397591554279135032117914616027621475355799918238836772386071401880913673014817995625147751380346871397751473177707610264531562549158719412481619204495591037783143941808779604152763462614263414271954718974297096089532737644313563104217608701135159469223442874995549899002250949053186214411862578856101995159809221363779927393348582658076973263474149267320101335155269775022470711288970734417462823134812497133375842293941219422474915432752162382368429749215846204972572594581824739330100200614070716496686465746444297980733734514002821159409103443588977534736619983151790496496627652572605937861939149325700154459425599026928090640520980953943950718918890118732424776330473724936135895505194787218994447650402473933385622670584109893696602236306749767049776519491160092690513757492152809630814327810624155032706749136386265556961593387218983564768264888431835918666980913796297713839297543256232683811560485746083102411851533045668558975749542195031293193496598145001026688235448520908031304020644037779345777681821084070942129656931326573461370534561172108612463325468077367110263258728929891325336623613066232223895064362210432774408173057929974340148355634347965955533785284337627114560111183518488309241826771528382708258354130627884659288516358142738202154690116224266556443292171773153738727651665190506847079790518686026019282508548959132134134660814937344174955216169196446539636227856630273650825649531860668858068449632659699276401635178729281915959511178475592655547481320795174141222396881424549719758154789210567003217434527756040034986884221687525404200312889496642817580757750702755498005760830162246785764206844269798971493285507473418801005690626206759432762495325584600785859597558287439991108435122284319837937377808371754494598418999128219686863337159625728261744942277131959455049296517955450742238642921502777690457531585234027690250500777250732777816141402665744815175018034491810512666957725400419110765662900067640767661185666631756795519021022592972942344709086710071677907819104152061299774276364832638338328429062484655120856997772079135624275362704975483572159251697905261411621803419721195218100247808331178055495974385852771780397842513918235142436829733152141792421787078150994846612869948597369130643421000506299819325630290524754705015436914449006863131072986225976763187003622456056204018053797504675154078339056149063729560171093380865786664664177903888202579927771817498595652175253666902093995861426697792475846620468238397171624717199019861135833189558955518185862170709929104132295604356221585092120705525654084703756542413664641424711227606777084167948435327558133640320564262490248728523961324022744575529091125319210682425037383467872658355478241435248859295348228768318311560111349187253241582692153801793773302870245791553878527957700715657520098412048184553822560894901913691606493376452888096982262905242350933114726343568998544220210307434128251127956650381370837496970717367869693366085450784440746880082927154709155808995817073626618872680644310669615850269532617906125581275065174012084436343252592516663703633768541532898165435244928807666698092063107442448184277424000841585287168684092436472355970134809413127150919530559812753121670065289852347169663223676961025921483828243245810745586305889820748684016238590701078677572043380704891408900390339167652464088863220958315831629467683235401065125734762678050315404966113804321499391979936864681329727641972384955585583582701200673218934725252900250900089317191650710170695454735670447795028177643197813603212415960640940708403571008470481674892980620246247361135638210539672824436812470379332387149737628119968537235317762336930489196283958537562986460165070278260859240059886493826296057589803307074286646433102201457793062113744900891033385483325293579588594186228657278129058484095309118803893396263735925140537291064489024649372413491643445784590115771627243942654562442499976749953993359301983087989532311344919600572600029397787332150911228673005449039763659798514792142806282827091241758297511304990729707693142186165985692430117759507876095365568067991844458029143660762231854755632535790508844020676954841643767217566930833266691423991465476723400329602299865753575899151917948711384295423685084133533071846198339906964244773245677376382496933362089469615992910642365381760134772820851873289109447407559313890799482731813095793597404131686114345519429340347815914854960172729474908668147983707597797748764209425920864012061413492717054871736886464333921522191870853641509675759852025858714064344370687321572206290789056004126686800409992957997083645751441207053081533240242473710063093884925483601970903202418734432524212885057436950227948813451914484228753605528178425217495281532322222332112809566186915929477172682967485540170441262703610223763349252737885890399811281005316155908169721114457216636415033694834994490392877542428353957088344039759596798681957752783480790486809284036941917568484370195416282983109989286081613139465611040564254883525972265416314999533809101123370824075344709761240808988503128864209568793626251824779577078743862372737684678155343063339191237048399457467807116456890074805881355803312270155631975148079341395407745616313989954022966499022848871178692325091394156359768871539024983120613487514989453277763305647577321167191138518882764004392710082512597228709244882620233355662847273663120821521144868045495318996305318478039447435532828329855125087537169991435027806803617616534141518759954822585021135958796557623953600035921044893546000615701435673117905434307988402365858476900893575148441484770128697978874179282737132883535536225627976759900063285900359747122242141152798954637230125173085910756991556159058226036947065318855084885646776167102812416582184839004824833992279807076744371040426070665245336060909676815948938767998532985882812043142052674632878534781383855105041803594746235303774560564172626692604280681296171712865232410801108299820158167215962640220689000294917606385051836051216594311993704672872151908636179405276290301173329039528370449103927147519032209654950333838702883644833311778206222605642948236273291891871765348342304007126806165805632889619234696402579241743585914762882193838031887096676451862210930183030194518908737953807327790697484368719482149656309427148750085092400867491279482824598067985933539950288787605129551802398333933760764695626921789077674955770993207678678580408551150554943039578325882969777453861549691966018875318732758881988001694031638559763079748785393996678914139064108225306840390432843907246012581724161663830036620287257803384412594186084529629692963973101091890268059075547730588242550315244421234450899066078555119860962680476430514471938356984452502237681684512194488574676909605700127966896416040365208545635698928457613292089914595286376700988446725456776044464596922355905669416132469869070407418934900985186545170595306361538629140685615819893152686114973210593021793070318787726226282024676912631502047933556451706952535222980712437723781415781604912905258519718099457080890886457448147664903372574812647155026009375436554230279717633805096243036153334498246833832837634005009232577954184007888134396177834996201342538455966406613446864414064238927238651294148759306822493526360378323170371513992893453851242218925422998722237995369334665629482926360910602884438148797231686806870210596910607759324888922395782203843469060184085030357664662151172571129036297249865283974709709493718968953098663323631704795460847967122898593856227898673276929662913676374101538277267675310532055711327142812869985589030227556942254682825255397406948492982355950357535169066826719420403151447249884132726895170564948886462288448357487508645261767435601531417966096891987887324451379340646152005052625966011419463355680449783320043219596855032580598288492067989836449717450513785800321269282400988106651414450283710064099919441066860410442416754450912063194755599064548069566705866121230318082588571869264506299986212422089109828067377994786526224320379104280017694093192535254874927254579760135391000831998819569469595726800661136854448376794645111642533626607339897354879056374360704977901934886078088092775049803780751290402282417225176919250733810601692146529368148238663783989231252409762373940368980403599627972154624253559792586890293667337606017490315105161015226700048037161135779559936368913845172067374266786424648972576158766620938252762425945824412817480634049776471968271853760135960561366903347214126725120999111414195932103414006147253666107141429120485115699373863804096747839015551254999305482510842295288658146566826700562091464131473386120002676300523515926590095699383242553336154111136274339367412913885406618087207212988140713802488904819578746796862127117504558850949561836875477176336799802068402504293681122198905337679610007097404610813097096327953031468253039002059558097551082579208972556440115555737239974625393906188025024016932557286210904361454241184212756129833777948311202623827805687041134355591051544987870516616567932311987806062675600642765755646001193970831708626644524851548606760085014354057688989455008468149038025393918264757544231512665236417704699696991301006348704649993023228228379054725994649752382244000297237741861323839881293799310261262752930372970686567586256099074041662587767921173948930887144519517223131468540037389581114728406969312987410304367657857594034903952910959277027653171739468197776980186848734196777273348950612641067798727717063835882035995902334241401854837433852533038923198040883939393204062907677319626987917466759244961386908031208049198819589649382091987996588315552617130546150326612197260023048381729070296304744395072468912147200762033182274094576249680501365891011794195031717737457710960293919506637018601867925937691131380074199963937277773647828410085398494978040592013598712554480308061822012064958533116343634237079121174060219230276538287200270545997232166665591579223272501548961352009083494195753050333967652335790952319485915053892903864671774667126734103795881288370775602730895144244892630628740090866239145387194890904816669764588700002096908508513292880475166831581592457742111984825751907206554756927819887436191377232052995570631472492829735607230547488129435558143064977856207708835886659081204744971025633277765471096040427565093580947220866725542597119429436393440973323459100373918223344664709227347117171943240137348982998495683452791849336172554437707927930560504389749619956187102436380497058247273390256368507512116180947023321025521023531222288155392222535917980006702174657548523156788073971076945627892191447985166030022129083100623853116578238317936142482018169273310169633576489185892851396102918189650718897525529069484764775058740709629929981845361977733406284720986421389201686692834435982626755254555240573920926082032853071389653623103061308866035360328311723988470094239114407133980348212546381796595369586539231819152358221526776368588864628151424384680047501538632018249078883959386483081203961433944842758201755711932345763876645973058019679382966278428818854846647189470831830326189667887382871164372501364973297965459612004959284158656990827605680663006461246400722974466325932549130085413542538380603824175174847782592207851136244456240582937894223649623554217608039681291338774542811970842824291645180968167220049888771804606546022739636092244677744243627984660961681412765294640124091051125662465308652619455447937315327738193317892714236548050435093853926834707196648256688559808887078025551160964008265186359752843782788519239041055822195630951484763629248401264134879424417304368049980283845567838307333583895343004920839399835041421064176335409963469878435490242994427928058098279093649859925069887116367202956290877718940242212334331546121229023610038791387833044178524530232797902772467388057343323998419730588910218825395270164110099331797775722198852605754806540017729612869002969707922824424793035691363722104068167918508592079105086918294328130579958257514473608657112101933333751103318960138544844374967395388036401687433743234989708892340315360895510457358025650514843812323362756061899257585245522722505775558897996932147728467308844513997931868663425004841518356852451542760603765398173355423127558084497286178204525951941705593369389243202383640036029495576601747605508256347784488823201054133397357927108822262540259869744257312163454680049985042315016342124918465978575756011201963066455275795809123967331539309868489533354630915440987075210860039072840654720590217462933244252277140500887108795105690919686464990702281161710129499330764655336910030162854114422451387293704383342365994667037442920141245430657919702670714739926784535884501554211313050211722661111810711089612312189013482724570955214067000441286723522383688410849132301888539947176096943210579090602645397393151708920271862446383200514680612021540351085440132326622523001039583844555938475490374657958762166523278101352038346385092884654134645258294609231126586275468273667775014819817455373425850660739097718734479599249360208434642562453903769104328892370596869007921834338731799417844147285523746890568120010008684227030654020005970360163925942253005257484328719327607781496867239629195865908267864417140829134046892764189410445695498328667347617160139316110016251762621800141727606998341472560241545695765519442146058706067543024653267272878403277553042462301433455726238256722733215434370211108874157019527476809308364573264901210923210315597099271107787867891161138588164305879393681784963379883335774578178002318254275240125003672320508983877975388222056754973093640292180489741347684688022481602472579466750284604054059123690354355514534286358334478290821911377573733869787162850444164086458245956652744372910487601915030950444935172249555334337476195239623497821359665653875043118788372371350628667282565595805678866235467235802696248401441109306428691992306797490375561120237287908557208004923816402810283804645761952400518914226037903996224096357642352027342326812573835863874655897097178910903004224293876279994369831864910295309951837069678396912600820366735426294830098929085100468827915426649743040863290273262641985114975276436130227229553232119749837736948275484500001258953679218171187057616136736970818353753367440583027390029424391523223764223373536423556688659016724464962900511954105534282956313367224051466152844199337704566755037625784674062874604706220402667441569703823706214442065194619180738519840215284691506856381626111484163487635639011509990752376436704650045341540768310191206440421344270556865254397558040493973016801135710320824302898399973701260336021362411834311439763778073737123670298462656497504823260461477747464299866642710917420398998674363738706077086798664126458804860751725134214464724184739290023819133497908103687434976405389835380816764555114959527317895722188541888111172644035174225938979141269992527322224645147120996618767515381525604501223066697970733056592528138408749330130372373147776673833790548009962708976596623868226250107234227911014306183160099287695773078680054946018018800995103922422738700031119206926426640782285019230038541883804772225284772938224057776601161833796913984146285314930745236855985390675380380755778423536851517213293464499908155162627168535239024259451325071324557211820205699312001647246707295722166509124087504485498940968303724111620151134510721037580661531520983012688652081265471675672136165932683828959578466584857114133229261320522786390621660518960468813953642464684228493999930641702494840865540227077450643082173663791437378858338511648619789262308224547934229081687469037147808957267113519669372927311061546309227832375193164453350190863421055838405692209518846094196901474049143406663809957032974556660602964112541160139372160709685287194685084480685595911437402123866367959553714837024078750504033281929508324954040769491922669916645624211136227275209810213278593264527957478536640599651433211986635463860779494852659260115458854744366188877281104675831873951320346482795147800224823901898791905373323014533527824350983019258795353714114204560898901669670259141461588080021716991438513004445090928667504967751680427248451382098514850978052343350788335070389219345863108705036465475438333300693039795486323973279220349460829891167120603680954220106688807260830717867469083112640319329794583881541655210530656054652596867008474881266130403277792301602527481932363263021432894015076920959336548916174591582973534907655671472132199655195023105762178106274113933138631191289697421292115993390464198420858932423366096672474797550512727290987903048575059058037436799823334855782659715059551256246470818407131868884168837042207534884605931893099684086751888127483236216757523487494935530800726680420166227952226233159895417697846415688160170641591059860388499138326217402742106630325481159183165402514859279886070060348651520486298172844172483983288152331414561277483034619563228697480175314685630993449907406615734981864482561062086048944074390402339884933689297916216578551338525296797087060769798177038672244409258771713359071862974005300403040425994224872949014597341311737723110541659431746203015492470645469039547260628190193034812743111803428327079644127114530907143419078216386244155088186321194437994494767300089496501480500652568026739646262700932250913762924254101984039208707256588799581686920959226880401249350608132378382139358028448135409964266910626664310627833761297970135771471636366968735160122886903431157093903980766806059106459799632530243417018093022588905895758186430494905240448151860641915073596196153055474333267464907700820612574468886123670746924102626363422941120009739675310971164785527631354377830482636377594690180602525932031012735496439915728415642500912717300509909735773930182278549006892337941063842619203009473906320526970084044145152779020166810715229265552116330668383491276391224410451594019722639542637898470569377054032216413516489460670163608171362233411186021964065244302180817976130359023710386353963867014028536836588084728714130403853015184132688768345882412048861412384391393310875374151055549299206813238335397796297343875256141649282583136984281831883769335654582733141756582604344467352420795073081124723157301844590586790858318236099152307014982417129360893480884599254268775570433750200952357603429874949787647910262459275552653889232960764280987495924113172678263847224658547879821873843738684953549012870410334820934702653636477673363495506615134452849476809543512760537440233066025930588230032610720054788797287255982069695735900296227072830199930970085255253656230036606238240205022970871549964007931380636890985290999101682463735285675677295941243760971711022432492201545267665254136396193557386064228230847147897339904413128213038814918960859705506367302951728174058615367196773200149280111282583872667550160990959864390179387609461687951471211292428901149413655293263877413504963814290633574467808294750258742790461088275269257122452181006973544930290002236667350543874596973263087597201489580553767933695434746938398461130402404522282400943298790122970908486287877299828493596742920915752416189867090767703956530746527252734993204864611163809704116249901121640190533033670846178100347856349374548373744759880872756548415276673273733418364543528445004727043736822089148346887063366593834349503620502960767119457685410665124511588248918397141320872897902826508787186017989155951309850957968487396003267582016611459207751355523013634910620450185318979427430457463000095079674024573282112426068407956514467594300509115863433489181385031389896449063911337180594730665043365231013982987224253802219221647959934611084093542208956019292343407785176573979639519009006207897012503397509108740116825219564418141725021057405864541510744771296346181485409204902404015366175190325986096827617052554205235898681385941123167409935098533249356176549851562989452239740932905417845785775390882247038544883082590126067380766548447927597081594817773899846857787362596700111157421904089273788628941331068543816007239836912248765144235335383041626482127890114097196491617528070343622383427208894271155371692779408730320678351198440384382614619002860167393504549359245219153524784424659696734311928332042393630758065181289589654029498480188587329238580073217145002963132181490280838534977551055199166196413087083040020033074517768498146966263448648729532262820970851635254892576683219500246806608631701000428972531934100227540611112574329220541033660612976964282009578546826007325874617131372549488776000400957688885436324462579830698567795479082736051684097166768875774308297837421151273064253923349855659414892946798996439796339677705652907984209263106637304768030333153923426601589716127094627725044619223072468705731604049309252558889244228933476727141320837894676351184574240582424084212350014582218894340663034441819843194916235230001228871780361793048359377811434509557340356137777784400758636707507619784814304012851539762856846139848797081602288308718710176476762109609006099764983539642057725972409089962771824372123354366192664521783022007227031312720434835163625557789190293782662537512252510035565238308312449761376884510126950055880597829633339988286961323208723348938515881362125457032788726635988739565821917911189543633301809454760870080757220119121851656447058895484907447852715674065458566398520575973989305501028279954915316831088519318917033017255961161403131473213666801818716202593713946926117327023489427972633015602205344650074489424037579479874554938560500251738408224106281564854349769366680234641441891931179110115686235959353470869458844378178580665660769420860178968722922378183973433611106705469387279463605422952795082367618882746341039401907494751158264871053680810898953616757714116764931894927238314900397922086575425413612376187511210993484486446493731723587891146363773510932794854027749270784762742913884769505840665051950710972084233478981931723315431413524117147729029066720669193904699767938621552374104424956662011631572452590137067091211139896134953683760951038101702326301095747078185790557497871787778021613047835591869113927432836260106329769520273773049819367535537263224454631599653369397450279679195969536478202610133582388049725086410152148177879088696973948642517248429724874622197999821068135119637929792561715519698438212164109627780758450691490596007229633080634163729255419105106158387216949885815154838403148603311369639400222677014241314827524663552503531863447187159298487710459699864728988412784784631250465714336966165096692748560247993537932069095335311409829016018932421575544425338187003403172298887166884061351976108552824965522412701934303866470692791089908636340382276958173051767027571328594214680781927613646346850091777553256383347073860672891045930488976300427832010565763499893928093802773794457834231839247274150708536601751508823467718789769412201556917302823270975879048121783180933683510585456647228477497651024393348072840375498857774713071785371305963422594413545832123090405573363149331918012412510632495653858576764782153585811495241286399262682131936452762407090124942704579543728166119769676163477955766758626987288861502356368071382675164092190592477787108042382267479756691798180836380597732319581052215756050431920396884376250232078753282473513458991602145465724043541009135457682480889741345115669000519945008247017455940115724791582282635071868220238005437353342217218571325550639063778317900613519417452210801323281647008382445921270015263167459973244921486518821304915338658691095317629986623919592197304504830668872100375781928269606706535707988427200516846498685224128316873082590848683554711165864982547957769567381786377706678077653184464706092769503812906483954995427448821232595917563774927123904614220091575080304768907160413156260258622736320816555668188369296021180137938810844453143770226514004700400190572527905211940352657547966173814817132507244608352219253504520284018834953219783719424906692732588588041949940654165698087322130793361407513428392219329705648376425129107858659964974045293696051212857615358820404900643671399015138668083007771952748455610811671276142872951385522109899556616128663947957003666378191718102888329299966332940386156070413531989225826193860531976194399408987025302988023288363619242250350315247133647048962654639913873548392300744129607980208305376442065657415202256848587382910996018242623174311107047012463371190452622303016827275571536033129687772335761521269892406147994358715391395035678702766559952598793197385367417030208313395428759163923970039394803759128882238753482690262134145454950376259136723417393139338534635324941940828327637526037783275217811600972239358641635821320183340299327240144654761253390848623486011996799180459681388644881932001538664862928497010672340230194383826315484242294152946314074605434937197280515970910005526751410431177892753499346703887214523479368449548570800062692330125368981427873562453891542573955790222287182078987830820830230596005131815318062015466232571159142628381374687073950833911923553487183663960806837183005457560801434203374104594436042987456021256425680338013522995952452276850920623611071887251424724659479905772574900919889732257679289522004110121010028881959821568961967775559597718481531641877837651136434109594307681803165525699251521557150009252261794327178195301186841508432374445541156111252185145733889740372679437907384104738430672885420829236686138457426455184400764921612315816585742281747747158530104439455806585355032064729758016993263832489103504290879917199203691071384233532801758790639281532900692336135645314855306110005662787570164859926322120567167632572061571771753223255055120545784338079952884505038605827606748015343130293232848509682671199369047474790288415932161579231940562979811418231727306688875371615287361409293349210506120124021401095947710195060310641512996540029327900254879523122067764765672750064838292432116213334034114106706997143916653076158724524836601604505115178649650171315097197072444894853822676836467818031332045062758150381757871211352227261370345543160266489077864930765731796899919464993178222412217545273532838883612164678497451726727777767218680859200118427413554771193851652043515192856403749871580049369104525410460255633148642328977583706109008971125427053057798560066064736692360572545076945133845430216139013483211291931776517263834557251791048853742070616656333197913309117180704244929305012009483781163709550684477473503863406662412510404087670045603921203015550006978988840599031416313390009069958409525350803197490732196945308399460975097315868785586305816454624481370332094851343477168858752586330868374648770414320626564225369586580863053111970353332791867588559014698573613202626131393114704187095669107543677280088612821281112881811156840973834523231181131089023250528826127282719480865815361053936140079776248094915378204160362459314492985148855170430757486933283167202522204250525142814450996154366039090438430345411223802034465298933119882940655024630776550702877917341360998070522431939480943582487510692869640275284467208481483794615277895269940435372731505401869309368782579098204271657218413607581704621154303553490488484420983282653786837238831034643568799679377864111794284496859811892266952486893644253699903441013282886384235955573352075997751468536237127368368451350819962047262998361321457724116251417090921802234675855768047507377714074238493845508652938634177681382483038195358701800888240957771278611388015326641524456124430598518768650512060763947622413969403672030502276727094394988610767725893607063117347025243631962786260542113917749298215489432058700740377629155337203464917878785021075242270685985287441612784818260021483424996430238021129498614819220238013304996136447330790750570507585765946506018498209007484467918329887253461265816796920614179485424649752055521275604483049079267319641018574309506881790026644629598378171680261274192368327823367503340170738297743235915737820832811308018969407716956330710616293774719227682233018900616202030937267560934102798352453750773717978315199290613177837637219027046130897867571179569580094505038054553868277057632784166240686797853595025647499812297860786598134423295605573877855993679690268445761651445329884692432506372346720976139467339231282146620545355090147073409340584946660238247841021728333857035390983136297708176179284242825879247239278868926179376677872174098694648499614977420197205475704266637970836518520525698009178951789943022596665103267851763326591448428743917287711343132503290905770931641100410124549490375611267101421352444991079648616121658510509554613134666282936170609270245298408698831143966710783679833786663045350854934960868463114260308845399591168713256889364410858013664327387158984356327925296939808990676731186813736088716195647923248819602174792771667955639282723250814470094530373896024076232450724415034060728981577739965572203969082851173272243379953298437545748106411637780637439982493438088158042088020045097435974591839983424946126246530487897018068244620091634212759317957803741078336342884903432982167444155032031060599201406203717562402615443621092069163606959337004476163674185193861266690496965334441308952009789951811265280248911412990389341477436607914306580613682690754183289532294279425420296787121259593810875869583138868585333593814241561750980476719625095788606543243620216687383317853780137401263869298362533643151253483919613311495956534537227825581382081986745465838692091283184107605808219405165322515739336992124648190095896944386469696510575740162047333623660055383338268795758624827632886454255330705964100232215573765004840959693171559397115459221193394585962332980349537483813393877636274813236504591953135810008247630815915384814886084606200307468938932418776489629860362332763209422655652077044472601169359668297225403286807884057843352930829764148684776298778197604294368045307411571660372096950700082569283284071221928612383018245826250587140703645451257355562590888058548666387193035130905263703384249239638200352722008894554223954941266776888530440462832884153270528170262097265152493248000870481508301857569445173061323867351591943497962184790653781279347474073069436546194643174785293905401637319934228957932693702094603251201170600686991902189814691584807556825960252314717296620775829960322329764294832259030535292596779651319601721826850773192743106245079088591880497119154980333939052178961604054822196444166634702529929621898132594948196846207750848444677659859066457605131030419106173842686501285279538198231068331793895418494484564505070587897596005730404036412280571875611990626726627898081636699325757377561563044889216666981085530953298632661150400459184682123563015260275975778280177628296174579465859584138333707400095566829435154029855284804010794446737276067370791925879798381315988159919197909642865488656197490316037608024514387840944338282313863120703982891941367516455545028862035364518494707857533710592232901681549826503042336228938388887783725581492067893626991784738769394071341221392461104520457712898876524854330234374910420891880617640116271386046501261405238116952150592271215013393191387426943575948943136803343875971985561976934174458790857227381303444758516117725782490771739246586897808007015081971006673340382577860250570860026312325562529072545941621551253384723081001499536454461846401089070892722936626678998925524160727186764119976300512717518805631186160332343652507370446411945938083501682107515103444543498077534394337824384513880704173292204290491027238349595113294516779841496622273183603969225664755131357799004555861136199306697755926986905371897181525510490278391713497421511401813314521818976450104610028409749883980604184308449939371195534448807933192580785385178510634301846133185286537885305027883083982690181054320972546949813879575639385066312086721272600132992103336034999604893916427780940247156947005357975440362196018308537923489092111473825638573281039503218783911904762970819913124141298193591936509297310155401389683820499778649898529652574436127303955073518540681814288273244060163307692544488742308259490427411295829733389368295871937327579373827667765452029086690385066980020091576912761353375735401698569140655489212288263595521947266137621047910208080605588744559069820149876778064824288155096979142770581850438651839691611184892630807077722507018117735106288950556479509741974199321659711252000934740891759541376668578538728575698691132839557364695342160034423892171677903441403648110087614046038161168582633542260811902839638827157100377052652934473737929180984251258257298662684679951924394599555100449621115910371720474489604187185751608983901921177427873956414836196175037098534807867893344844552027761835962592795500631350210474095471480748493886800034574397518002065340866693205110475556159448666453700787800331137152818049740795216765879695491186683235830702951273794228626996104527295704392917070604481330563818822007475442446466402745571741742888504570869562850875244355778244369738495062423847002928961653417136731823260910799953255441623440540299831934031591824962549171739039176635117718291648091451994035542249219629729883602171511118513247199150544223494072950146690772920861113554324050120772046347772784937050124401490335759675922405912966194725253745387775314402764787261100503766778634767869294203602138323538178938842521366281669908507304017316098051968997729786596167801979821428750177495707419505062833820074097680171797265168962774782034028252721004990213615901227433345492572918223111284877920305605753026366059608319294804809357701096449587575847819780795009405743477230797368174207653938852209329953135788107582874704021453537831754054728381017396635381311850476597121289672218703786615787106083743756542258164670850115239456560271252462508821143285074760405777915347263379614016530401029918332127385924969160634734241304914343566150173872594792496591265516868219119671767642196740294679317604309837881392414531709073933225187747767514608252412371436284478764587118636765793558350106671894595586193484487030883824716254499535788677240811370227115479439370374933605362673269428887838699816471385525574020594094790550161578325811413149575744950390901734431908438972893258923309421828507304161675164386012808524525709291504043808768817525480190395689585208350389410608245976406129137232103247783639968910829093867681228454034858600763777150255420785141077856156088867807789079693552878682901646152565682907641759015004480889436392965932117832128668833653977603256580290563592764265817130701648013686561389704701905491802183814022974438702923860176678800545749865361188949006793759631679647391883366891093738597355911238163201445965436660599930289770191321967741273001348370225318618717986779077131244489248705673886408493524263942692377629928920268934423694550206708760935225357484298298008612902237431662876954042695360928139385457634974874357059273892469108739898907291007952340885292251150905288742004631507226732233313236267860138236911934391285530075047801247022553507451519469941564123502651235064127326298897273067899251470133213789641937495265733176453133376005275384634547629280745804998004421826492852891599500095207247543314216802274096692766927143295376973914004263667311503857064682619020470959687858475477013836430715758825183764586743661338334758683693867367208409349932898638963011711262413524230257337639511202232083771044355070263974163387694660911940264146399676652119688961974180400531356744491880026421158581733284589119897531765065555254431132807622203214562557881135612149986069605338120927575304357955000777127548867405700049608312722021000725618309849564316738692982016709518416907764742949810095794321844458589439151637708778537418282258108129797000135201285619629618987239402480020748991629715217027095782379268396385564853885443210472647408907799012915906130084351176144002412630087814214957684045630540228139066767630310527130277369858016030314265779629116140984909161999308081573201189747531755351046457282650031073245660493651277464075481234801900496448582424322816123723375684228935311437082178347487395127926594994854866469034253786101929513188164087794177177187338712686562407904090735870872680719161535749628644767370279607828765274957282119920814142672690901789191498834718379072358347815418981692559928347117410972898550495479008134242053233053755618587805744729513156450218225726818243756288665092887529835686894536254397162583012934490263741378702972409185441692003267964683407823286975986375602964626133332934075956716468872507613119449056192322524043334075364767400138014610077750251962787537576662139979203408553775124429868900010754290739216648328226813832835628274833813290486412441684459723915022683150984069820334398058578965728788411070192028603929741557492404499004235575320598762815551754425140372695732576977076756724893973820184583160130963307844386406857771638178103826249511039020193691958304942974432152422465346039466996653765246669165365663636966850709236530927453841104742636198948987579004408072971003543706750995999889283244460806810009078675233372406173767063063309576997391847535999641275978426678273823027168721616266483370082421393636078768692078983022936497185801346603725280330545782425610710673738331106184502763407662586620300615781021523020602346387373500312407405481080263352230149063316419157125391510514805863116080530944987275599891514813725650852221359892864893392761325025431433512068681328295913714634582222762105400347700112354704134078797365295180407546744620378599043889560007401940246405689002634475558020412372604409148275851948956206362387260300028617200470119433683550332115510330366215762880477429246921067746154541927364468154634433953515224367342587663103590381400082691763723502726768556160371192993417418076322570017426837601326566507969964873538905868653062160383643451118393228179244476042764807713368406932429912544645019433998189979627395190821300783683927266752124954029550509189948103590373814650756692189670746539135669787683522701080459902539246429611540551449256328092591302589209890303218854926555112280958135515443421207158883854700489100892698703484068518065944135722473634310185751446113199817336439983489788495659055236874820010055117109401625703834040892898430136918144483852646817343391415038334083308223892892346316065567878373276700988153482266231866971871841389569291436752772837925438754686059151882196670397006434526756492937260287372794358386718159319154751961085412027268189958301381019656704726915932779976603032258582077981782761626329422221138124434857790452905367989307500761067994308549291580057234918664996289500610116265355457775124465257723571832116546417849282979741257344031411066982948248591312079536447171976787487619063156364683285904213018551948242952141509240001592227581928515196742808145786408439103101824505779043876008873075552781994127487166059073200155226942096115191570310432849042239826142317931445493777094559297052001715918981747282045989119459402637535895106760469385520922612803190874249987188748847682540402045569322349790210906253661533094597914713437420024220685689463977335715885769327203007416457291497191806665354269656302109482780466816951601421202991212994848778532535393353011562278671442494660236894519439811926462072096396630706945004510914451177742020872534823530311452807465807446339955645620215599045794360053484919446521187816984565384843634548641574601910043189957529703643389874873217435705814293100567479464566441747871628735601466230283124533547190108235154128026457281188307091874608607844569827610825640111572759088325892041777022391537266425705942042444339309527861693345100895188767034737795079617252261996862841401252794519294223912373734740846822449925677709872362998343738362175778602952958837499277106418229896123669748840343323861568242800584690296283217967399126752338596499887899841305203143596919123138191373560607442419258891379416327537205033388539255181155742926735257236714639207203579169360118346863669087602730523910976935511500781828325444302925920996336906962017103564969339635017853255171398268338730504052545914527593922080846219558226298795295189513570976856574603465705697227663325897426477090287148962221813409530309654483374594901801391775465914995817555760535271016325867148909312015573353775862636703380798865858420470677325437774961799492696111542399632774044267207020597163701389253470261865602418450221813046699072199897494771748268696005587120761856726996526295862596296021519050116973968732347371271878126177305783962292138109338414830322828631372674142290650249800777860786768049339283976307964791139694068605924203007776567158094789542908582901017638316692060279478947995023624753302806839168394540716214363775466713769820763877371914717156647070255735895827618273456474579792527248583061532298406219973035390396535056203463561790028839279289233815845713352157424388207065774112435677942522836525705986073781295351814797335748470100528426942241037448742194319900121697048984836335974838559870335664349626832348601385294963532369836549171714625539711118350270646357656298086249544449404334656623018213272150199766643159773275513703252373989832431415091051661381835023024477346809214882598470957153883688164451297645369328042178425577894757755447083553777988357228676170400501914831180066073200125891215664218548552212388509250198151652409351600829937401976877080645345502871933476190001239716342131625827610842053550372677900346481875856696973381844714881403747939543385075128717768323767072315820439110279044476838752560182884473342495948527563035432796118360063416321225938965793580163293053236881507251949095093835080048834640809086590115044098372600321053546317258438773481485711176846105011619291307605583081172627279846434987289069732494815934710593292799163560185705215152045848376775921534651704266876079956803903635835841436952932527247210789316502389605754605041987364057536283091916830490400358258648934243570741772568322584108537289903197186893276081289635683503109722588649202322634725334997872690919612795837655326015194011747612030138534055996848942081129838249997728409206493788002758626603262784122435088825580334428303280805099818794066953896217586770198752323715604809506075629931404929808929269412554909644430195370028446370598316309030211962747020635638967702475789369873003226118048111847374756899005891975557009233382988182820099481971216070834047219237478129355323352030357640242447478015126061913382906457994524529954962891457438443029600604075247081583343100142295198490204542453281799643238578354763770750659396880332667376748062714858074539440582290632605032131932919580601867887932602932554822836413932234924119018679189357892473758079765116094730965045493608864648124809984190506225782831794134592459129982647069017581638585784014410779813310386432681114136476606360759463810645975223739203286960642495112494665555267334121629906801769107391983090130018555576095004154843031089925909687278700745416404811255086600189002506866172615076675465117323885017724101787606331363558921372949456972316982050299184223534849300442682329316822370405980566608648192668793655637355872239023218926857072008876436237046199264645279524623232255204981814832493896926896350137143016325723756128721114592950312666764501247460498721743179160137959503581089512722329679699985735027809860268073939838464083366165393632854827524596063354678362288338472483108221096692508878366816598637251553537880488595721407789790091647866691372802685626996287901771136062965362709296981078270962847437396237556760637137575699696259000901435883617426637593811539748984563972472471237323032911583865283412321703937183417129910080204841705487803879109596684388839156319676895257892212722079177633275196510734837710181751423438976690115290222789815352218117464377867367863547057260907878490451094362328221625213309839391066235342637865495523069480238637410497340220230101046613027504582496225170696866999018990155815123039872685211564869212527568307563674285278342831161684568285562358814506886105732713565880960226392024706776586530468656559504595885018984697615619746383924935856840602647779196612499925661423202469227165133813274921193371009064028776897957706587469317717670820350621447046116873059654807590574104357194824318179676356261374644991952090321571497022615943845420369929128083262109797679139998165994641752105208666378440555400740351127243002411849998937133743107448246905101721220861948847141168172997526184005948328857253386155291788873576724402005977207145448868265182294671618431185419269685178059280635730722003201231854839935890300637889935964605020692994711685767514392179163916090682576796788864009726702245002579548024525218414955782799385579905894512508122608734368079992929142212577233988200006288385905378878482263374299393307149426683089771685348305541397238141587002847235987136490731763919090974738329229867062945674242321582516682416209747330759267045979766571848649690725245194692726996405559903949454942578570599768305620225985245068608067577300853833737102667322260582404467565626190577240888137361176088965982631642640436544634959508641450677259512447327075732564223998901732751570073298183227449715673151736380562232649067471727074445091169209337815020579514187722585269628924653499957985270548476167690362812995444889925259248500636113544882875299758038683965493369576948391338663443481050055305469184108528689793751916328153233962813292327734045683200980156008424394329150536408115597629060662887217850161910350709788841707902690265785577495595169997032130583757924329741557291349489934537793431865194874195735698338233227921009798640022632524284347650731198226251370331952047281643237509022690715884982106113224232484431783261909850941677663393815651053049155340147336096004705148938104467414166251269220710936460191058626246562320040046813756337724964867205320000132258350515182118639703028489842206380785170741877320706616350617906067780382800445604180524316224058346142327068621395330787328531601014334334615590629783972925846414889153630795051239810041952635062009229724611878577112619546229063211254059493939931295376921145387502445051371667370808917924988309231403283920896359154667996324160059622909016946938475982258599057056563558515620815432147000055017923915363890867529920649601326373905742619227419224249538825652297078181555084780431175589590532300515821916128094486363275318912379794021418645368190125036555448076711531553544046610152360977272270193712180145736468302399894238794866970937298963334954815556243536918986799078907340970943540092060604726975043368245296339530480527802047119578198896456728992655572525905045375853163120282790346136891651438564800604871601391849708488995687196547058006967578538948119396963396048151518556296169321058951216690453138248203802938428350915390938464816431726547041121131415880444124423831525005981430184304346000169761141630332140485277627287386081146699339407778227228955643935499625998688955111300728686902878959775557956088630691838680465433273453577611609231627465501549088216296261983589678251215825953971589275345564496205893685340040900259405013271176034158337832690871004727990163268774950263889778648051234907707790354980045938542271507092620669850755579695347999628479970886802469522031321978235891355434233529614368016542790024229810381968299302918808087670230710919107899172251155613387614472802601669621521478483418571071466533133421008800988233325808536238538502541948242975962851400834264113797686171282103632231936384697371167297824022219389762132602131278003222661680085669749831623769199544656788266178301750961424974393381657502793775387724516366226031156533709297801212113633506747044229113509303436781814654043514607484600195585802760419819572504888371265367184416282431500786743017775715081009060066174473871719903355261373197770962700880431599732020647187299005773728946394839050898710797357120589999941242119791835997585099719048908619233494464909192216105526005301967837608169108045608033319824618396032663424294723373749040535645820054534766759208442737895211738458512797345671526073231702808230520085950153718262228843357574240573118282999583339521923596639002671972141940180727645182472958445417893918483460537307651788274447101360435986489901343877757463031670711911492954077353779640044537455906261976379561269108773173320811820317303717321102679008540410106373607640220846315694758153749852528814285763697547435165424647237656891235393731160479907082139366570680217441948334069383288805416262544446651032172801801044547636642573257146885197911820976359609290404504265211137390566018557914563579806918343261551382057057814362263009063427440482363447083135660717531023445529853581315974197625835859596258784258905087840470451870552047706798160736326397198256424754376745521684450594525354646382370777543293103398735577874110347840802813379103121728940360880642279443309863422387057814447155428201590170804873156327561774467376265816801329940693168330596183587777837770950923842068647269889951740311770260449501680842952157273651408099773940119177387280599738343272592055005502348591505273068236115719878163231674595086511229475191355489500050995304278264399473222517247908470051155988713694943558793702660939117040981409041517546535590549147514577133243552502736369417016283715819775540269492333330507471249656064380336877642791849593309871694032460805037280617589742550332635534590202078733889682978351181094239787198921586064295334674726818207269478769715135251836794263238395366617698046867694502140492091078844033559280337957030845100064210667911084280311762013940395469530326201562238955373663651024159090858083006064540086070829304857569806630016263623049695793283896567793600014379996350305653340262216938964969191204014849577426365474959890600820493754144218183063487282532782918258789219440836487012030936112503107145492574264792404785433669390864932503842341133992719696016726875092981106388946077376114434373542907455261713550131788692871708317214582921733337703624069710456312629580679034300695477201197450913532829545961944915567953167201091435326425322182375745337433821480299177310147536478552426700437693826447358856539669745045248663148736097796083668657811647544065270382513942900887830206664443256318404659497010198220335225720295988424947361299951574209518261957172480400452205288514276098739308587043748367944970259028384035183953548316768429377784192352334074816944832407361420533827134872961023438614370212676396257925668165952893888613659233770612187361361105747948359699487463928709963545572273815982318505771496393690047479681919242285764173495876758902740071628353385842591104834731082870732893395175944239589229020604422598396967395051081243730323953949322202170539211549588299517035287975005119738694514521216289630081746050026870264712908910953285482313944473229005290960952341258266684081011555319440890825938298156859442117747102355578171501026567351479171232560977142191885172473335465168525753832215990727261294127225710590765606732293281068253646545982644030032980247862545031032000096919569613952828356405369840992984437556370775542379164907142249140768358152801524490460034035892443692491934924631161144410220594211104779055538011191991241400285073224868321312613509386546863302355409392273273354912293355127606504224047548423606820688609404747029446808094647039281689288932425837115462311701938165742914228209800657619237221324472310267059433738637630330345343078778248733038577330868816896528098867161789327439646529687511551976587225793244404902878236334391905835376701271368482947309582800493117357851763235586302396191737250215000540014440528652627947188070582937183041363314923954206649369712596909743124145534190177153808417380955108667787178351513944806862134273872276343517339719968011526145495342346247864422458023463660601235971094861491249757911675541825886753851283545517966905137374877300294170744824482200631822024323389272577229298125603111383591770172832790135491035294064909828988589154685747896871191348440221077338899687429676868168132651103293207557681795414157224076966571439695059166514061448278715498100549842259437772523880612881638925289743170937708101718979400444114563164562410969734509356365163401136808951859506223112442842285452430172807391424659256147654871657184438068212064812896789091134161195034282611251825371457070210044335733664344888833710536119363577935608509840267771702611959340977348241557438458094387276364551154161298990506414207699208688753250290173283903422570045941329266551193381073654530467444400420853222167773061201930274101772098142775267690756565793072234547398086781092399701518895260423478834260559327125760150820942619145173432221384764940717170373317512809506198448861526211021231277714075225906535453421743107521535623155593862593066787141688971533262164558318514629154957079617865090025250584664723703428140859973916974395682230805933776982923018393552422312737941804633546879803610624134608055861089424852180522301633126895583949317778635191348683799109582093916920331403427235246955680955656086111317221331832619707750273497199687181013861075870870149260404943861379043971946462979431333433475036587428803081019338216577194404853188719315242768421575962218083476263638050644759671855600716401869092807031037854844832121088732520788092671046674463654601331565794961834657741337102496374396751797587680920407982860127636168367454294079475533169956181435313089268902344375392162051475083862607153729842220546065741136554192744214733308226638355429376447273479844358689940261502342725863578767147287872494745316263019606923091382562076811858845700328984652291188787042930904776615268726829722832746062263179731964655287899512597383915950260204626617888738690082738224780576725942848318397089128360294004550591594260902184856117302149995114634685788796103690060958223269124245920832139592487696814568907134313123405391886460464862370985921032282738172502037390626468113031910075885562748244289594199566532226463716805085992442115517990789077238330126117463247732375822036433740414589614670331410774824313139043962242427454865944990315258660588617609800353544710457802826984220518027355006120910721327328565530090618728596697580480994629531645718582584277394227318037839518823565764323064159921723728632903325720947550783114829705146703146421200492905577088497567813852607360129771895479262187452665506592429986313240380665565393303879668257212218187793056580084860066995245136789715674247228123536085490374988005491522813762491695649115648165687606626173263150670665557098477869851531137965496718294452859728870816155845237742100975260695857589452586890562086566315695326495320058466692386930614266702240925405607394810274457220328788591583927741238199475766500460918887957154833308175812721394011104439927983816517827280034012849128305265408761820888420717725026876962648065618557617714543267789258429730962680085844561972537342094152165980458927025758498356269438556831068258396770523147564097672409951179923276019348826285558131195614006943845725543070365456517135802651832823164318986780226245373058678284120618279100825434390967701119388604352496717815459389619315948705158802682417994987325590876612006436524493601652464448909595126709099058029707629504628679578799525851146793365161886687562291644717239053987432634089072358027201976657332401648830244719969345546477723847637031104257990961748663615672786717733775926749110852138770450087873138081070481939522897102385419168140648770401783403630983415883389163109553562320990615297169698152554868774534663242882301859666455463945120223655935073273058164240635192449063410449920966866118990049308109383073284923697122112810419809714975492772937442123773571575954278770102174125838873224515673623133178445877777025347734737299840108821794290809019434936490174675812644124674020406555147441386323610079363429162859027397556756144041753200820832881555368066567487165590141075903106861533084639865858919346466033082596429238192958301131284223385364222722660649679423654483314766140000327263416596060840733428396220197048576402797669621063737226776509828209953898266369010765710494525064850051765321827889413846789420888416158728667397920522757782188317951662165345640630367685251136111239585431819286252208530530317719559560398944053244677654924565652239362318694605310484609314928939352656049321830685607861240394666386388000535001629296326008476738361132994191508239430500289937429008725278057271028437349310203225952113974736755092106230674699248078143626882149515300302019022391448406150388078485984760184300008242269576072293241552118480736763539929185816724350034980985131187744441622212627944277472481905711039946675789736113269000449153934168856066720795919983209551033733688427201446573406056768875843879969912666691554460469240289303755659421425913425351856926877980567428101331539382244108697003342670413385048424741501118431944473847829875078464959468310294980432294974393152484417682248482179192536210460867604453591574741415321119059248619214904850586499729345488783819840801887772118617232323444888146823001596797123310389248953268966129732662421130871805285293520549826981440222587449765225751756219772328059277169344870606632822591611875693917788867488689971313627117753864376435865477062802001697351540066040404139967448361131139967638940624269732331161940819929503332514461518868154418082265564269976151236208146376311936796085258184780512570765249747694245478574708820211024209280063275137649140954173384621367279361600439129480343801271586105676895453444253283307101329125651447843406133740063030833235274644856381001924829970903701216482847596429587785973710695863004416279415456739420573832679402348188024540935483290483019822469676441435106977928570986984089341686389707551043389461597851275870444149204910607725737575506167503927720380738207149277572587847093611262816434085456042184780875144115814116070235020224151781687429436610075053350035377346502297859029015094712018377987929761144300102128501275423308492881712805332217782815946340921985775652613473006232820186177768035877955424136238513093131289961767257668464142893608323898532377372336154360543687864131154034166578697875191675539061426292114265369331623829019571640656500692474719580621826282102879546140242028139106862425920426895400821680521221947234018184376586636778902390880710549274935748018805187600058704130809912870537300479906664931940581060306143770878277842789169660899746303447830754955830454418074127689172932397789367995849939145889136426520577627259873955325157139978906255030663547072878229286426634096923007880244800497650928398956782207297363906476866079188796659996548989296751619128531002864247554682111177573018403881360016091021956074621017834183318265085921947787236162592166442797357152331191558857022525960279673827764414814988722708439809352587612015502475946068054308540686301299891428301421570751453449434086282549149450229215800046912421901797923723484177111521872281519937306446879727248633415793602360872565792586676826427400387689888414963266515853322342611067943626228865973541951740165790807195207276224506019709014291384664237567606426947171659162795289132528294470971143215285285808434548364921335485693615155172719087833456444852879954543530084086828063481451126532653207234458702496287749555452153575058058286973774325502435870105100565953205847020093297084203905623949871897406502665709329073493353484684556986210505889798380123247146606809655351727875501472617689099111358103215518473626652745109614393025172303765881774398739236412789998823802112505710079554656211945481318551683426580011221120240802166308826794823090831541261355117079143122508239426226226772083947611779970357877578002041290068328852545094974146691111245295901487689302223546280923333292805631977001589468239076724781580240896947323767231945511029784954786264165088646599655408723633016784802931866551109363902117886417551850788101366062491163917577559693727698036986217592486787356820126556262201352093053118491534244513297841686477498059307463016604117845584642832256412263512541833120712274064741722680625756652734274634891557910860466434665977064444690760334075391219265749226855649577024247070570262677709816061711308634797873777757404464642886999899411578257956995920609947742610342276540548809038917398864380507764317028287783471394556611152834015484552436968320402052750427210672407593684439720101469997453175704246295263524143257878814202801081198300853619784234167802819363574269687387320511481978152236613778097768812844397297028502716008185573247482924180426640680584767985547029406144228053708416791324080083377076489205849579304066579446734650791722561642441442677225025651859133531365301531371780213177669826513872883695559502378177036754142285411307698264381649823052896610219801187052915239825799663928364074536825259142078969375766358175161828392421387151683255882658172025406394512317077789021799624871640173674372702907880762046966426542589583094056913942618844940296995845407976194854272944919504920312584233709576675300811180958418287953553581483394305367966359527794482199976062458225344079729796743851602407199828917724009535481758773854478240783188347950903533126735329453372169599829889703450760197858715311922288260916075626960955676774622818425544191724814406645631982086897593123178976966950789271425059060162859426728463748813049282451100923711244171040244988672674526660507951640856572727928173596900744008722871807635995295303737762192619251745663888301660180084894963446301474902355204384416483873505671255441134529474985740784619516272067024308657700844130888831451518069968156757951874169536032078920428783122418906003450427134250026861589671524471140819125206043053188336302104678662416967994480013915474369268833976265129349257300598654651761035039359832581753072709774159695653556541207728459940010765884739708077565642675640174004065699782460925587056690560464649228100522868113541504499922559337079615673062385628663305720852120897132424774832508876457749522723337254789471971231882442139764767896282050212445564329952749678804487033206026280531850678659072005689023674392624212609677379026890359979467729155256831589625865730523629679551654433742561669157339316966125860833124915145068121394872476098697552527230343329462691959785966855658490290571043629601612441943837829155611168577987928534197914549414343225759839610106833029272587142974960632214158336982534448357229334010956514040213644504687909935169002531066925875986863733390453132758673440250046806438591741285407006572667288923460218125333325076998293239837377514016842561017513633515106028064476660079128227021440364831671482609753441038111127022318590992162486325675276993151304109354762140663466909842557816231321798169804985166202100150362134494938613744300990517679809493033655972196700715279758675968504723714878436879958478469692191523994734335049947264787144806448065502499355325861914059935472513974652388929254196528749380819310802371350386386871320056531685901770665203198684368032628983685410617900887644357069847582148937825872205282322978172389333329031278376052607496847693798514724105813780059910499310567877360804549589588088548693191170682469968132913905812786974452989096752007371566220717584824296841306820159086601677174270126885395000194705067624993202265558774993883220916188314493730249814417403710937958284814328756500898487390064281410503478743622560803178285569550385708175422472211337908256044358350318504330071077433560107751053365840943921481126527201576665665705378807881465010344560909152474051820426920205386380428396217593315494845600501361314810027854985779322923015244090760628589212545901329423185118559809222199673605021204448239424791111124745771567755063513723990844147004178869206081592289104731448018128296433872058389841136036252954199541701903515157782957273348848184564294816261911694900671373050780504376515614307449376317908625672685087362934423593353380210447848525347503317381211816660504456894181485498737580141133968209837109205277950023193213186767928694452620967448665046683923466232343304829145206959042717050665823532938840562795607749506961049403551951602732340536234428259885208549920486923918902854685997038634981614890807770162028467081201813829510721341519351839927403407792853810440888328509905078321324406876236124440109360140813232625356962447972917135704561963162682836940797701023662151173505466175627402146758174239351953205618425806063493806083334235399439847032362268390164735199615342862673024002844751293480535698986736192197494648523522982442291565233927994788589323636671527745429408270439581088010056779614978391127856894112845157312060245108894736992564999593991820896289064179656995132059359855672620737427744948443456842296307897849135920161009234209667720208709678786664607727801398012115204682557667155330414457479729522987177232026770609097793138995987346666520051419440564322583711170795584632451585347106854818357042310971076385187850459455590981314720182086415467037018493067042366819884731911214367901885809427694591821092661763873914764110117110660984099195481166237260504558988984326087078996120183425672703519102615190173266709097958064748354025333791016797674732995182479254896010412241944845589949451194701714827129464386222778179439970403428565774336909198909861339971942606836616721776047906618542416511112506959765850223624200810564593644922020966106187723817785618813477270286732601704743291005955869122122086162504069989616515228953919690999711550400218820613305131700176364445314665681540604026871717007359013115675388867813432505511326947683957429072945784320200652742151896791905874320616981490826777586796080801525927814594818376407789870686639156552482741544668728502170152195928993951481214202526971771488902042093830038419390895455631621299840550394490487344585329227666270099981440983659136539667213282405218274514289050310433436255557714481874118510854954961478897029509901717026371119032297483459691872042284827496119111921910817602827217423934657588922785985192217001048914688406604422768984891527032716917524988077819754544983756219155806800229026061983545381307063872068745622153456345717394094595183851027766437055584089677014139031559757104441425033006308257847190735793455519850256511963531808776326942302066418792774764209540895154441537073631600613294372292069059710867420183255562943811071761636889974562319733399457010380554809544917155285323986347323726340768378775537620868737798223271814404709490755718195119611535660629865934704691588188673876107158710551344993179025193840371522468000380298619712307344820056719590928679971080906321911241219490075786106809412601312156005399544431524767976167998098059875580579663963188301854577245032833022287578839836301463866280336574655311696822028727493787831724759452609014375300704326732456631740134598443654347287433553376497623357093309226478338872710574752750388931087141076764093524723007253100336605673348216706182014684668439760449618652076705818205716320694304121418134939928023858128773976683251670520315868288941316435722005387298905380659405416171778943239499969557678461298769673099895939143594234544856345785654452970586190510962282112361725164616635898806305716221059582423109400215597705076462727398802403037458476261566543085666939140285140607747409194730663026662522529675035366933052906650491351288787910106349637998163567320708799822949684004928883829804626902483245348415853394362812154962504760558653762877176029880524805263849931674289834223521294000509986125924761993396956979377133613993867056062816306713021345398204834281498475590006132296467247170973337542594119532854875604097351858570585545656661340960619587360855518435443435563812272858675093495786378374376871622387308134625885117978790415011584784683445731424401921315847233940047278604216214615055172557686748942911272795248047491410034686492198680295987456043153762605903068479661729226740014171371369028598465847039167319130842195705455290502738618308816021509506115815024235958495313253863862598616539550794388195369960698281164125023061309920090291004455150995403995147495726226304208021683479880193191552348249469513514115035260962752919225030572476500951852692346548363469473840978304964524487797436566201278640989064875162451216517886987074675536964762005938195023886663555006886218498059435464227602458017106232162161385431844062585764013425094261051664791266951875540009830556176773851448790255501108340730172017054799617878923316121274187234269548945339072449537151996615314324495861999841245620400454938527489383808979011908080227558465971395181973164282108250159910362571675177512866626136468934934196861969710485360614541418099825567688816731357170511069664376740706924706781845931074271296260898361217353824316810425718123251653694432514767173965729822710739265182898126199300210350545988268231981624665316519690468930317829154187717912796555722025445802327015662867100190488876693719362035218698005904214908289268351588128669626913528213225280753861003921233622346819430246334046531497678033369780214242811602216559493016109965807083569107461927340101487897370280215159403789344684473062524707869002921671158768435494523763224584871355655462172722463012816979393905625527279987596637233118255025060113319871461099705706186986799848318644675481376985577020891807837974011641946737628704610584184030456304768538163233622815418131122961311623079020762854724351080122333877788070175523263549074266465488855473953877582530204804752334893752086924820962967838020672722012343563100828176935361976045910864780174537136459187168422828929802473248155352248277789695565842432487851397031510198577362585001289424708628658316823492646405632213527664350014299184487837070921023973715710303317496017027423755050537381067627531764990340442719250348051042382660085596438619379765426731626160798469448416601165733196473163457955472950867102867004338374371365880106580542814734561832582140841170772873746592386614631182281808072784022412925058451963059034709781606483264984540208118949621927563647450427724531629911877825175165735708933760057378812654457326437043005274366331541600643386778688281665492517816660893393643325749842652227417641959939998488428239660604026694894945340148687545461776894916220517597349425021099845958612216832324742327766093856797840897813274551269929659461856433815410467541831630358555659308289240643307930099867454113676297788406813357181136112062651734827296355410833569481671912125597468024198286316931476478894169435293882888033436421750382741343130022582434602213366158112068434932171179529846934049340673848942653394619234712128151062512669603695054903416500792166725733844939153039768649893733464661983549006914617587229396047404853508449803677951717734844642727783144159856747346779126999859510019370100659879935296814722292774862355310476740797382641915674802785215306702133064261004175823696640179220931723674557874757431177032721294689957598303377028941586017925734190884921916351277285174071247210118144754001269438650415839055516745114027464274623132999755742367043449415145229682009152580469761608448217496241753367842776439265241526514941707146408908251633926174587920200212447053755562829548176925660978800318118982115651141995863915863586038576147063068276576794270796943027762598386400295451475374380233635601999640367338269074260750121701962834614633438997731643219813414698356560445364100770677348633202843386313969580187770311049391776179546525695371186039958905520088766665778693418871791971359909863572264485000474247625321405898032177993726859960063805729304176186731112642709952130779360813292426156836384384005046427029936238336740244739990641797471840357065602056244334635023040819526237936560257231133519361113282130957446274416212029692687187716755336672304292721490155028549349936764497877530924375548539468663792862177692952525088106712345461905516662437857657156667737773445839165498311179019244758771046720657900335434921062686946435566734701364797690200244320257140685716621401564273082455861311937781939108806041491344998121077461708555606655832400505101987360242328694782674813820285821037711995407132055281040617150112374504473170876261598424396580426046126356690705444054107962642395330323939497596604296144718691190626261260915015896850778935849943886215594951219102132787525384841231197948356890396263094727326116521356086332942748037268462322961195100307987931376108053021042565888454025661113829385146567851467260455480994708508707958303566443150830455210211380776619181552337195637108535808125475061175112610353905279628682347220297217894059043738045602837403818894990482638177222170487654392534643275371778322591220110475294066466227418310673706728839574782858161022913275143652188990999791958858753503869159068193242137560321591376793020093838510273971949104282243748788858990792626972862226922856330833600181562952925722982651969359700888756369000501855631738370776874449130874508597265606249688797570784581016650382257802390611833464549203603150002102914136986963485733913759765939824897542846769405183839087982060041567934885275967989631434192125947124128742421486788140590290710829983845926899670060364714244669878774625209794973374738296768405233060329706010414002579705320600732072505242131950056294638169005609803681452287135656270380517810589426914442236802932053103038177854489697911840230006144685315238028416808198529812112979732803845217225389929019006478980624953245612349891219807622379438360950216628817775994202822738304717087759558772172107377237453959437844118159784000816196635961548632715081057902974590198188540210184421986342698629116925959376483794815961845351912110582881495790045083825761161967973628307301630292924211332343744200902142652530589816181686331988567186703713714488520401890449087070689355980670355408458718593862572561119713342155976869344797630677741345205975104637793652952956065838718382515864009206052573321618927934014323809205878110386902252830452512400276686700988111050954831231898530201805701493112031962937933640990680644566410289785393892524859320438503991830619638495381878225470729811945634532075343197838538888807544720265821710277399180822122868003924619512484110981054493023140844611236169060626451066643952024645763882465927279129483248276911913962245764959428118725003579571835162214896811739681585663396587774876533112334870540702051828378847624910402923615208027286854886465474812708389205330859945425359181414006866325437299184814088599591253648992574747642374894312252300648042369372768908442948177180803364895361242719958632334232719107384058654646344535119028331677723986958342537204209712714456065218298157336812200731556036533951734867042199667225302083491378711395780039457667051163009546627389429361568810772258972537278193480043089772425443760300803852347750420830532160078584125110364892684946985710218385473022322599942389249479314321410051925359330093889349595370239584620513019898588944491222554815097062279381508669818841645572773124290477008006927385795430863183494365028223999643487890538925192942715737784696202883290529547092360403093521521608972926081878665833241129820779835733670939142739205146798657271452152274728637727611669853498992575027538931649893792671667968225375271852613641320289004383842326708784314404784078887787214928264785993000358828222859506224273666573379407120869059232950214554648983487074998496276596962089833983543422595776818149639315491870482775802723731501366906673476097792856326166239019712297324599447108845590026215538504576275270863694730814899185416309382181310414617356304834277596207828129145275681327270130999606984382353566018423836107080849669846375995018253592354165875249194421424945977010860523442697118813489131918146566789341746599685886404883986599869735125895913368090751429295414573793006534722485721669300133255013020642144100815039171169638163912365825963101335695064075724077501188334685747438327610081955207797783045317101227882609290681257192930701276458614379688758971623193830735947214590328585806976270698440886926537567795376695250402738354613489519122424919890288794431990254241188537057567256389255741718091412514401397686838497705603359812998640869425064367303110369748828363564739828247421258045441438606085286428550699716298736904384795714861144964192925141500551928116735384994920966882335552118570069328788870569220462509192894283410496890392288117303318675646480557094689140234511901438069681203352468166271436325700807781249653345039867799580074710014047477383200052345605653375121596503477221840007608022566121185896278789691649767811260839345469564858489566156971806840958960449386213592624731022891875325613432663803184198892870014425115006802681622465542717551192084736435398580208646656698961088187302638958342011981543104697599139532219979587972649887333198627692708810294943623832748868912668942809978295584631021436394249752234261091382468092157235597956844555275603269626793601679340478390241236577748291930211121939105455165448892411299887495971680774964896297971364262159131258993028398144127294753666500276878303621135927274837378835102189724890736612259132054154030731212852105475824314718982228524826942438547807600080751481730241489895694207160928602675792006968819183114291174021854206719755481498470854757106769874367296325776838347760579059148888488382686548800006463854007612084659276789199116313068478113637503088880807261332446006089792545920386525411806870006923307562626069461885976542678185544760865429565099993360507847601159129963206445433121171224209791743813933414589847006838665219779830891451460494521373741865415887332227982378981407870425277835433695307699229124882396653794782902217670514205827717371732947898298947174838202570261564468275960445448212550979703548786505389806478673151150814888639223825991131181294741958124976813664802398364656268150043889595019349074441382326317173173407107871104604513902175684398359511410171569916773816597300029532971693771387424577460732287687454811898123555475637858117807621202484561059879306424138597956140420196162894450839438972911160921861132533682373919539446305943460960400525844124058496919815906242256376756030606098216996299531312097022084836612994839430398564608855933229160973119248908852845850601962934764465918085029842483253255721905162579981709095510659259638551794763291561079821464547891220484727829050957995920554142496195948329185744216759615435921513743342250912212767924369709375716552272195884144721474653946416006021441154099814576590389224010403358315220799454516254786216632474729861778770099651753082676264225922385862186394527069249590081587934784090471455516259938502162458949650625485067464394381666308644953847198138244359370340672821837925134865216549089312152328468207666190725329961073312895997339621316324118132278520835262112972324008269107570595260349819808269523043288476989932020384566993293952539413511107008404589068686716260740584316451467589899024653910999368910667050577059422842236825866882127851173430058346829742072210477137471081516865446706425116568059956172795246020100978084590420900755539621705100304902412953533097010089266780325244030160604617150983629079779765428028386169384050043499096044800730003545548575143389371089539210795356596842335923665305978187506726897559744045791350770913716591101745278434683519155706800341174170912566508629450625313686188771744288506342076481044549200000557485751221594760113538757938779591585100059538951258600264546568808244293039746179855354783560000106151681734675585541183435466049257504650357629619803565326737877187711437966892016399675582994701496556577203382432370011108737518066594346946077735199482736028692384215278541291469015345298037316614128882812035090786200935889094811532921327265617636954755753461500244851595428292838505841183208297870084666685862482167225984527477171518598738617127476949904403194917342103885271009382010011107681171356809244313693528869029980966131212239088861412108926887972001803299081320983403382688192805672381801401886987689608388157028673800470713133710510925853946317047911636214682553502442276165612341436910860359121302395771648021748681385261216438047089525916212498848690384020717336472220634382449937976622394354302124445857750202492390113078881326183079425223050179902714268460204983962617565572447739563052684700452912033490480603136283820366267659418954939357999525953712904594574602358537297979939573286929467230758301483852461522216594480285513982348978977420994151499307562959017553263989639561839917838483899224245961289501066352737844157507028143627657869876242155589072491671710875748714946920231390579416760818235042528547111562822070207531583544604800924762427259759677882923367013916332603080156286796987428518708937699505411170433774383615733266458716778204462298438450175314103002157894436432330527552161387280257816951639254303764213508106681981572986064541042165265180744090937103510347250924037674133610894455237893541443317847474337598420642589444965071358115227237616427355433127177474064344705103863641734589338686627986221934496731095007162586069280078086581199423023432335885044066194243039579387584660794636339996092226921872555454300107047840396772338332778820184311196547857735515330462736761792654818527358030476796166006569036402509243123045959168031602463485590589763728823688601150608396994170078074979773336009738279036271343250916403074174203785238576012206139899626861128553355419843129864812081148494196158276966426042423631874162860617709551520698547216509578018637312507125194042700520732921970525224553270386821288297443222277207811579130792873717946052829787395891824957628700097175582769496036225659896968881889951182124136140366118790753230644877303803286088714394583219286839027755981868238523843393497234324373633567399583416858142989600168198282009397405104428894920490378487363210751805990653153828382987255557029439534495908891391396746667429148345662305961280357385719969980024854077839572814970763430677649728904327861679738015613160227922456146073916450745109143223884558626946378482668209317917106253414212361786247724085896850099999072271605798653633866462442805597670681071283620870209674835449444222886264860240785607573217121986119671344421748919269619741395512053051964514621135687801161980456179205897934605592153659414374141556143218163349053456572295868645574368486113487064271377866277352064631661167496124854217084466447124046908003898026738784959940506436556626844702073512121544334895297510883527180801697965994648712065596339052608633175119211434781338634945384571693047999863101082509889577239893840399963219802490974135463628900815442468331979009646771982395662127371359312718539650371733015576242786764113493941242017349036149569979890396914848897383182548454331280651488723690741757139370017667791803252043192940850451983973813405592363884787423679995022923465257532080447734955417226643736254771001623001981935700361099919941111774495985554925854441032193584192806475046166624928007887170345189419871767396709719763811610929765780402380641293268893544763514716360620110704976230191036602298705312707889025788623757091509167485945855647485797386391989166087382381271419484380165023894969200109526434350432908197879317900638552429389806387884092110912294201500696507331312761696466522968238402693685694210004124588353497972647965873485603975474077594593271969326108101975197261786708093964990130881274094481518023411747969920719116405411362978554498809332377725166097697582865281487242236189038432899768046582445717064229355745175625995321116787237330749075432843028288479166216446524433582414842684500859708957634349787665713220655528130259600344324153852006339166772520778867899117766126763763943167567617607035190509420510599298600990204117519046841634432678194766685074889843090444253706857790147337266697510756899926108291656502979527203153322230975962905960131989130204493350944977647044370116818354002976624828778544497681600599448148150323443653174620304965645139852643558945534826361092657232208904663990671037646146311984051120624805678541643742926721368428297154020069301830750299870890609799004037573666288025093372051106061157086340810436078643911083839896820918846234579738181050102755588261100863951719914081386390347358675481052314571798288352578035277407961355131393401838529449390067894726257103142220517434746082262255197989818498155036273740952894013356476587752338832310709229909326617289485315156827885336714670411097747133085324481149041463992085929649697536015893338602361082326627499945145125604456384653982724151092667584571599652036623456046021922217374693327118156327610139089525438172331080273875375445380628025783417213647629939271099233484099570360173823758514375134475329399067097771232499727053078763759281810200134911779203686698380614365027137833368811637561894833499320183274553503817532336316824572697126927027904645526585153896060209249205116000311823318115481333632070506903772716912506038587545666466293544384320286355005286141801187632175485857909931206102805214944705159069279892219445623095797353156914625563575274140204221341794948584721188478511216844111594957378539402696041411924216809537927483981300045423907753914086734654346701655978597385084038369936129343949063843918864399634976425741911996198193942391613393648828139183581325764527578000989684080398584747430790882544787592064712892716663438575796257188633048881587625390775036057688310934292837487041951952258134912074462257394912270294150610257357984730020558248308354776045355403553594296790523699385815062345201287490483479299834618176896300410481480033163227999582703897915849628836781029353593844414989959095888786367295135580143691927609150973490537864957671142739895233138507262753545453183231904452777870965857788993034782109777002023504578461595701106966001037614787553883763403851355334593722743752294410109041611404080460544664755119470073937327122222442872712464399619973278158332385782126408768773724037318914811320143169708886798941184612552172762537575101705228148847563854236002526868924915574351585574470378402598395619518915151029301826558710138438026388187957872058128585992176529360262894446567942338520785859002715826826133272499387485312112585878398364600514804817204078535248167394796014830776897284399260217977575189637163463437659123513288638452338731006263630448630324942388750117249774274399273885657308821621849542421282483987141378642760356549373946351063701258800503248197521744560762253252582809994455242159046961286859866403828518596758901209498402706597813546346887334513836825776449978180531364224085827793066346875250671963864548141841135194495195491900497677851419214841850532193565430811669697807123215418540956375308280327594892929318512436547047798853841887809876696946627380471866131520404780326126347986794670411348822952065021625103416859131268320463818059157831808645658879055040943200960964503532973493953384117285433139957659098941388219962737183967153776744726201412579831041824598995057192877551029504132386768286513368979966941756693750881155650485200956605886411193214418167156602442759726913618673614885706941527239871999336305469666084646465820618668243900201756054089668381174618499637082771479495339945944226329045595992815327419086128012685922346264040000558773519987678427199779484681875209913004316415978029143478440136262851963498420938682281146116419422847239589404384392659779236071438048201192223903693203772072554508111355665037940705921216697967716716675271662028872162133434448569603039164712223347250309478976375901448757947620692974250095316658460274413645244947580278528180574699536724083126371004150016304436196445833403094933676567434640852580518902087444253172707936824219903019433726670573411342793579551450598745540125797180653083195799546784614242879540408170214141100408694503729353677160719207327090534364315044597428460142275575960285611897595505345908383514387784761107264171519265709153536174754286013063428531771044092086145403690435466681844540255520749505187539392345483397447998788964789643371649822893239968196736805155495613757140819613489640064423226783553474765461505504239552986971461500584872967453080617174455814024544764484199275593612676198201511227419629587339910764895219675158002593161681635155180031024066832792774452513259994068632559612945090884407774389017642072138517446992959265250259630490315076037313509198845678896858089844994806516807889495208838304511100430323044167925352521004799319032515359747143699285330499247970464926583303323268647941738744295164419059239510360595386685059959495615681547785302584941632591380291471767425009171574458624217431640005083454497031340444264590305259899912946842825833548249765675050872329211858824880214267698753726659588497198520842376478760579304535855981664837082536907843666499238126150953693539954647326693823861587239535941013567360468847357288432376027858464809056914450075280839931393874273095079129233266955329834790688525562147692758629120674036809102013282099561979012038392263003677147782508390495291708570881539010635169010092722466474049869921279751090199976587798969610667263649908778304208728908071373668828301845091378136331929966839289230783724131132537018453555427018922893135139495320194171236147862885468884204732220831393375080908291873160928231278761858925245616787610418289410030336882755466339762287446937312228518722053242945191150182176777698876995944974820040474166003802374636566775914500765715811556872030608941569824089482567986703890599051389885985539577002355005935675765833513106245723664730883622451868161234975142683290205968205771121677755721494103176263116005580594406271678384466312699293747734505160818762276816646988557887735485572465072418445645680172674730909200911905414477877370124656806167634899354122358044923544114611907324604320172587697997897707658912721826657466415514756989933139019497467368848108483082487879893882519856917646653387626458339321928614635702831880491355565313164487529713615814453725921002622640925547032998882207162320056233104122353438676132159907619672024249974254540399434301997849268680124487189342076584675738541506511451895186969831338893776683793143412940517364322815824910886828991044003008178404576221432460271543783804556892836357660253160322140524852272609646517553024427329421530808043753263790266668721427806838182690575909960124468685216138913815509648908841319013365969349131278222809454499583542176905620591101151572512178378066822807713842913051761439074428159254646479815337886298095161865874279347668578070056711389964845541452214741507349389833414009047305812015944125583094321564912378956700029676882086163967259726105316551335437999804502943038194822863373430173596984047836245543399788021104213340637965727364575934457644418642790094022455411414618223152806509931935615986789311542682111948277888027621704716947954547866228761536674609751885096977463420904831922333496551985111077993382667309259828825124581635464227804979582564532905509585021951845293098138763444668328874960525147932994678840200626221094782965493013394176633396826504821170860768595983901761504769818339491716858481188433856011808601972228414494783624861544974206974503196998565796970421476265078061966111797684767521677068635329275000014845937891369265262619202842702427199789855478524638417077184007809752194769712941816068220728329063572405612376961405052727407963402005014409982558845120785216301474030010696986790908726285267524645149990455623552395256141894645742995898778260051976415902645314256363491654057138841207298258170623683734836063185180529726776816675604303239991354214149690728207684264902375076677333327865057355804597456578265641652499848742826493630424493167622650366375026828720623239699931997305615058978732932621751784493479524538668482815779100910301906453147373173996394626045790678157962176282647913955383099545857691299886259636521695500014273600921111820544532269493982807462443107133651541515969297202970602228485770870008886467366771760874379720443908279135798580672048235621684787749441199631461283233944368024815173430081176881164746280309231515391996677562159694084849831793746855013276190129054636198697888468227593787301213640107755702953245104406560695937733779913467480876911763776455083693781044828926746598344726454963979263280485348077957948469584166426210575084815936596316496821643982972943075998940894124826174598314147263851387846855246054249311745412562237805776700993688178947265984967929139373699694503066899120116158582553465739699269050646614144517963421862923008354100357153179914603005359665030040988347426047745477684210405143037589917258089908315547470542863719924166800434724027148404018373914388828159918043837696341559930589462633369076364073551908357242333558153321427289053918676361334195676292745802651391098325091902583683036868017247208887357127025850401644082172754353687875857565167093400283277736548046497634323351561609574141216093463444809097716009313011822364513470402232793157998363400647314149232565357022004868072819727290553467446921972203539600881735716437215524417491756540000454957481826851836538635604061771041986473688915587821618918167499108569366205151468831806621173015250085832061254413596619639845367464957728457780663518387385773477656654998527662209237574713782493889924977211962740998990533264803011903393731839572752230354805228203098559991617746466862168996655461949035962519747144192081632731288240081151357979667892376697190685539967146126873191500517725143688970774286405080008669062892719698964873096152525513223968691188924123311878955308208816390042838374043380902931636404926936774148354166594406296025490741051104011709166154043944804507212239884761276606778741627458086989725706336034543997557392760333398234095094461633471484524497699872731261388755980332676400939115441273126656602212229397586521907639126557066654057467563468521824737069144358203468773994390836781311676722738983965644009197239000532777637924259278769307343377817077193742144671117611810468528969451598177974496270123685201392282918718850261769642560309996761525447624276665705225975406640916255803406193101803019805186374162223253430946919375699722924165712944937951106960240900814900934240153310850768613305802750335028563339426015163123618616355222883144231546443221962604536363093753922757450802045906931339964240761594378197327104972458266319940295533688125144473514027825553028626321575030616622407783544581226389514336489917927247538148528549115901632958349692492300576204128378272376491807734445498166540928711040231324789386161143547080711998093153382883902684686493310190804916534774510077078995896448095840918570856115732285238372263073883680671267539989244163746503689844912028354340458246648790824961686130250456166072572944548785549083619902305799724407808069622852272249198629146856644091083191548935364922117833965062492825113531917911305727635953223500510187657581375255011153647751918038492385105197450115660088341989632150317597825427715017451827912801517141336876297822831936949905512398226981146353656253935678335816144981024110061388080659899306124738304106250474500867897294930752170349314153783397162691413338287742152621094331365138835331670365626031244974267436852600111867275211168860663942509071922025666348490916518421608263915644845715942063745850017308395268205599888960502861230973509641139209137746160059939758027135092263758759903294148981083143685307170946945628238161579413377045489332918481007647228369173431189955404222170541628351091756803725446959561816945944200039505261264513224720776336854598950767366849763397331933971144363620429741342984512749837713936387280809076627776670621587276251070673516142682952991619675854102962571282880702717623908454570615109046778633535454569339643139002903363026810929460855896547562688338946088234135969872861060765701382363916122560900857661635603184776008466665459239578797431572690786300759455691692209611659961831150662362045980019245010558377625054645565886154465523178126677879077364047820292798949764173897034959340228442722190569829574706346323641429830818702240559110892534945267729222492489668013747308320151607747965866835115307662460500183783304408914908356036866640745588295119920290216522388791291945117631978558000873104630047359346250799066935214985272774641109069648550273579945568426651222901580146100352664929286267394708450929647242390526872199600196513981685166629042745350048134520574813535987074259223258151857250099391997126849872963810226629075046738928755077498328118300909126425552021949472055479845286862069311284364067656115307774344021880845752341082272902555240567789255249707664345645965076989544255535603985376449886990176765298814402687943796423025812752790348282729111408448730341200611125434630611950473309011681764712775093722521005272469465597718447028219267923496454591679673977973500592192321561606800906607187584066615150526987410679476250970793513702573152048761655636028388108293891249170643019437647507331080273080819374934051684699398905510739072978485356099999847171725968541373669561030068770571415433813820486877479258649896723739895791362945270826316539735000766723474861842137769383881818390667200788547328974695351280185209395821879366906863705787736966255504918415863171820083190891062695739576642322479124036598016092084381004061504796832749686874581551290477164704948756879103166439224106697332171034654871909982595669313623578094102916255349739299732077080777433088634045022053857048750059430063020162407164518806458614927592372845746923686547181441628979860872091462088938147230384932656478082134304341078515807019891380482860789737058803859879447877355702685110679381281679609054614323704587857757024883424605579908434918247028610051581649497595840139482453889587678975528076407468385136280074282244453362979821078037145215330492739984169095402841948984227423976101356125809074494974479844785516403728434278365402426376096590955388572389136012671681383008620121022675845043577238134965603384442996189891425257598606475615796482345102743343080132278011050165761435149493008940168048279745887996877817269779325031206037932576165472358530416672453901367625051504488493281043186458679923357141421402937531102701033581975179295893850834866022117595941406306994036665860750723167063602511757676622608100467303745602311861963559608420592449889699704948229880996020546142668563584138350877451197308653703170870333110798227039261830360963900035806328988898275975849062436155976957351133118145075349460288281758568798253690050861849088198854578367714372238393237372113408297121352623473555313574241469893370362823395766582557717896174249720137572890805833647992344716057945557717484805469554655508061146584093798237685521879205295043249566849851326469530095808382207270651020336497486936830145479217984484035822605665372282742173059569950843913627011214532199507724297402890276382957902820349907417383824568801141610216111362944811898279017260208093545262067693799852004047481084201213332003003683818663040253186179762770542947879296110386318826153587807148403423732737803589038265356949259628717321718528945852316365770826499171147229981962933245458818815632017257121489115554559749608048544994546498179542060573536231005333169860349947096066348588583670413331063826758199081960008261896359687794759577607578787458588325183329973735502664721668210933942232895717894035857629866986362961824517694192026243804957029177145134808445279637105740546584924020235463393411514662348458834809640851645148351706565574555588677948897952692548901031909404251323505712562943673095943692812176916382586182409079580648667422347463327439183927241139140439149576621706953599153802768117755732513930417353293129276545020200498278260290926467454286855130001014910275936099170834046043305377374633469025864897793386521410383790695290303690752947429315201902029516042862918738849941891007285489611730170468154608278394423522378896982472957744628164503134458933662022460690703128365094200929361050767871476347261317450634164883210434764916129267809074225448004669252028993294796687295414061749243419359195137327123267567000376550713758137853985314337968185135510214942011345630035287521975598296863615132745477952045935181539219325105602787150074824807947548914414828835874543589308924516433544224684615684800547380257897711042965429046691199264097775658424098469093684287960138499585105730907434738293708567760073629835241563564736020426213371275967933683848675512542266916254063137969655436420362880328509416850121828261610157409148100078723699169789205751278026390455906006122789917497867504611326605928674842451102272408803459874372619543657579406251464675505934617451978070340974396036422114753290190362880242597780893408160649861011102891316047791694117990713779449243189062366186775010081159141499416279978754839394472274681230523500875546615281149371933513384726142390708676286564788511828777541519718435206699291154355124199515860049508770663759259799604883637659315225376163260126704170447720608932096305756035025448824170981304808845126512006012956306516463811968279685429329069455513802721380870288058210093881194619325305796604463325956436534956395238024067238622835257809185141195865485070427213400100852896275315992879884424081885374647235053474120904087469161511651472233518166216912553234427095243910881901653552778570224951843792145582385866966707940345073108424455613309509028130693261218563131786741299754600924335301275030948603506847316048088072654133835035495303057616899472749377929790860017046613880639183873383689982585380653547504347036227816356002224387867747719504697204349465230491469253051683022846380242029171015359955624815086143186984823498290367668996924935265235327861581075862534498974917872080056531158702846500161186859709765462306100374656043464292569200366178054148214592708159684679757912430691928062674048209349422472031513750416162897829391730051157903778350645967051034798814774475109845378974944555852215824137310436774092077747542970870262091159319572763367006012751580920583954661594796479323921104540827163912078297282550192936484494348143695035300290065653957914607675544488999463837776532512904721487817398729886230930337242643796019885504965501959215059964323860745924887015330887508455524197015040246779418085186222909505672909216024518017109969267238268298350364995649584278732173132480381258332198078909438374821634745348093572034499492869802435009268104349311880039057295093161448446764243451542813019412084367990842644774072080663357932016383461421242853307119900863139562541028578562548610141722647855487513035151895499441814661381842920992346763981528270332358298527940114047398115083968265703187467041145657920418146705214266831448617931589489529625042880085232958475832614979367888536869314559307115320202838799138911122702866808101544262587562205832278038814100415555454894884101868040815823041728804419974959370220897687134698633068694617045927461317535154264741411102299982038569735787871884356182579269005549961595450139579039069721217024119651333368237446769603491543512392233261881896913680597534761169972277943929556101896607259656842004194032644246622559713847149232156537453325832958845490721715806007230660786629845564095448119803321382100298603077346324841446111202756055697351214970127723802561946133930431486790123158350336645480754320189786334798217958424688361409381171932324005075860511640316827952669887163921731505479102261106552490092165695612223908534893876702908983729132946329307999389334404719487397620716805526945889580146027271790603092491415451769997321028806436612651514132067195338085997887386054310509010809016553353633773779927623136448668376454031979026890267662339615947656889683138341315424146300828875594884061264428876087868874534109009599302540999429574464350560361711732602091657480510199649394422221366624102677042630027066586756952188750453609393134447190220971065624029416922386512758175935929160907796314479106528559252908954893455794692291757358788812820142244583421158515625825021346660924848039173799099074322024147439108184901740520053670569474057357538840623408112992453119130542027568165861320996662435601016931564716236213105418537426585090142723867481398350925779027446068064002642753373802585626096388190167079882044987463356120692157638719592640910947293866232985382409719625234342766043572850472066414074225487963662477227600525963273991410964025163747850766194541146527456287128841232800090700987222140259522880160293831290985979475281289537535754899399573187185386644623645253714060209350820335549738714496405363586539353928382800251835021637407786130317925329826019957918016943643129932576673680541323993772757876283761520319447575002662696417224486183013265270442650643652653309076712350418685853568889743072562196082892388884476571317098903001948343755018162038560044735752240945396284683882630063997939980187020568941342315204364183858636263206235712060488125978858780957556785555459551190363569380988448415268275420400021254239714064819003049450007492518792298684838285152794840451619839250941008505282602708576287644996834820816585363745996378852272257395137431764895309872762541829298210218973475773663535692302620295574256898452343609152189442794693196769659931364018630712362898478597732939250656590092655123577008727248588045018599431953400777787401447261523996606757456750888858471666774296534233005144417339201757119203707144250658411859448627520346351565314186234018674421038867531390631533100437049341407222697655073967669858734931484069309461908136636782274370524225320536963916284081708517684395082572969534196875155735017289003382030111949590238010939360986622029700096265509259599658054587322812483298696104963876666052388034494880202358267577350180988130243414366793551269961103160583611632273606522784264255859948284018991184391192517987360901841377071988792157554272193032096914859719994450878349063307618503864109699245449536211693989832128471457353031947046535109921956719189230936766007457568012286899467280646752789154329594720342315526396077033492894450896248821790516408999060209381058577496297627747007084109890515770985960641832939713407763258504293013549588470322618155401220476210448910692215156058964697831623241178076526048102743082111855854303833030328258476976261331539373272143844259878154392030750788015262229515466621664100685136346955350030634072842978877763542948630307056459055143747612994004573831567392267372519046464273359872794924595363436276842916556772804107532809859598860784279173128367571173081304845104684426062971172336796807189137113842827955204689190028603509796340163642984464128295705274222225360295238312507489269472917592909248981458993778536004534114348687236327287076220509199311646354912670639356154189305686632485387209377994760225663765169480453908054474207097476494933437344185443051145099592315503360734879966801151522887945353939670515373023877168746284715676312267429955194608422351300748302922145002093545706417339936486440578763513235877020160887025223085746556958606770311950415849154655915950117811377454251993084039404420650456986623927842665233596299362332319444901837568206188204958013362929808543258565031952833596148485770505204713895372045381905528468613463912918523701373851445561330849712573215224204890231944054370475753438173730744267821044859642227629079978117065026247634927985897094011679240152378221607479020605291461210620615908717685135195144253551263067812014595582506588175710254556256988113666531037696958892081350360531405577658579602425346308384532271148820908322410567460317943169202170944265079052271448450619756954801415875416923296324203963456341037791825460365399523070944703988658268108682600515100871175826395463235996724123115959078277353521924839388148208929070269603882104318570507734669634793034472871455183314420848996191206328735369748403045158375722764190821274684477060472063384830040317143793856624508208392560853247933270459988655359689854526360273935053130687837168964760372040160161916917018757462055622564228496546541742631995827182358466392979007535092271010828166822662251069123558528149486283768493819612330507154050391613097403511833034410812574717544649394690636105972014296191063625389182260599589345373138212160773864919977255191936042277864955624070488855806330191243716330073408764272401943289922917535836434872282912979144204468757400778477385381986314203431330050391149492264415972722811013710121197352713996468388053722193038461034060936628713282948326549027464758370465811834212948520979537273305877636248605925152758050423028550694803968942186488485049987863572816168897375235849438454704049872233442752054299236132354419700864508264111282117829357853378697619810907347994434255863227216086454566975287821118297852223179031129372727760452308063518798602860063881115172756971897252651616157839480644321862015868210012892595884713729861025989604675535691736339846357388114689713240205251061006707626548088895263139562325299384721715431504002645438088747363708649922596390919167595685877520912531119989555216925051563905830741075573750154318017863020949524605243451264760732492021681270201209550062530799993454526619946170682937890679248181412623088089423592938803726109239237223365763009466841850523653849424340948523585579409211990386252698565962087617921193724622607824608339441401165617632150079697457339405577568820396138533441005931969500432203990347903269180341472340583200823932110640178124669850676047065502419301753226082651389416030521207907359986277105999912785226027015992437895639886339146184286842528456855277239860231887836303420681302576897199720113519400291442568494805167175442290127429291169777809919267357117538765292619597595115614305753803381730277513547362112096045947915150986920073009396864909705870122309802549413593047356122923552776093712664579639323856694972401675030918590496903695596613812125732654515563744207750740121860195618360002980511983035627358576410310916738610686417431383899369078896751699797073571650114242714064444357374500807077908556590245869226686442119457912586577485056495992499580584833827437537233315936977308729147500921356507679147130615308102514631943767727993072641110453364903184998110036310666055206950881364993454010775170163324310460850167375433826448986355115207310072580671356835195250341045408789678006710179231160565858120841552572748029714455932798596123478882995860388199014558724361641110794018067808026280329351388863497616318622183981776568710338869444172500704599611582851915252432252453242902286093350955075739781729077783977449773823616882540740538299072656729548548067103306333265085054324401342685699649731363726210797796496386475233692814935650078253888636957025803105812514959777737124941682510685455457358229015508796989486675166070389357336715165563108476119523026835776374906648281182977497196326445930932233192970877815982731758741294002553681212519984929776560147697205311827033641040075412302014284199883541166981535681205965608697880752409506049408348691924471025215252333008330396329380172537705824736150800142776415585841237121152220147527503065473363547502295208939609269301262237355967454814724370905595769939508128449427314689769035315407007026302550440141381405891232812879374635299960035942444394706789603158944920872084318220972474773906944642471873654824473199094110281843941669784894259861892924950322454446016481684103602542882134958091432288084198127518744524578391065267638851815093676016738168739205575250240165692251065855554295531384637706365114546651525737153948353495640015747628954040885086407640375926991186908895599517515695410611987517431139644035366470735662258143209506521339892599148862718714264773050483895498251833546665686448241519471981637899193362042618564721756137258397418031928828161991723511320176200095883223917391800206858602126642295533631196828652203846755803468070669209868270270937662045004710404618390212524216088959562712037537887443835206574814983770221952960105308272064638960810696376754962104470172770457860044713248172922318657141166270898597169268853754314662366212130770022591238934994763684235415794376497582442024014990338374229897260919929293442267448703616482330443838465684957301658137444452234063738661216162998319482455406099464669344319554660711610084321752701692491621451954493994580796555303282998936727079404229172517854518669666475267450065306653506501564026064643778876596139648548014088235115381772492974055845684825613325855621047326996892333720187701027870673241258894372887163652575254099279912646889122052383043277439966872359416564611855572081072983087005588177770409628023133975862142538626451375546961016054978459803363315524677328360826522250539947003379773044628214552284461116906723915633364600000908151731991980585238339478990446942044507637555320416385084262747019827585512304222754159575150471944101682379911820561911367684256647393714974145346805203848264894223264791377272315093966666307569673300773573742852891473744058798980531881877742345234632725966482182245086907011473050745200001565554145133430360888269101969752697133015332038427680662834229993333281329881856390564220929468000845998781322107189568764495508516553872374929322029186241983865981698017896234511907976341681116847592587576265571144341327086015276974854425811357653588104590621109974356229733756549308796112936089596917056800013609521928080809832818721745342758160167681045540096445623348544928554918079754203833178519440075770297562499328857323738024831284867369415181005308409842961342043514950880409297835262042486397685945996071369095937898345198947703490284386267265598937818749803932418882840993613174585847760023331136343711176150259088155077486729400184975253731432972937053203357688021287651219269722860617377671454028206986164686998645490818153766475163083436984793876502980601603902653038637272340268051061894250722710390071167334160531595943733232478756139920835116695235394108885795665896491753922589109556159980399479831392106472483629213949343439676914386320816992354951802326530996723213441590778922828081914545487722643337493434337506065986781697028984532305094402025132812692823232304145439318087707404825757041249223571279817329876640287074028471411637822155710109106463803919475896141008324962457656492802425800774220647461216422137510930450907408576649308149931005663016512429985166251392115451577678377728757285988421019452720539804189497144577676121580186086099724603066235106047167373924956672337036158673938315555495073172731695628532693973750735525941216220991520309273990173215599602483121757418196363201174503985421619705005237517634309509841439222530368079859826711277633670668570183118253831008965328080053104973383096680406609938363565388730658773577945797858822458177042284049743316246314487647363070063111970304926057564835994269696230099258310828227989844398345998191510099939133455266993315903821508541672883902009354073542734853702789402868707494718631082556156383214394546977326487158466961387629771454966295279307144269075282805590248058415733514453903455971779341928812670759590351210224642052137324591186939319512085881777198859040325423630368163622692380824247250329144801679929173520014152621692163982041624505535506818402540270475730054075705163164523320823619932648705699814140353682187616270907454833583055375782697985786240000050715435877720906369726125892343679259092743001000160021190842488106200759086915250677445643715838535344620483061327138387139571709927526879239401013868304550804669057670155043970561588191861042791692906011277294948765601321356100295236414990052535614360926687278817599407337530140093380687887518041170849282187055192772182220643458643296304839239425229259195454578548574699105114334373140951380520906973112665581878220594049560347079888809502209759179804183651493595558684242620813693905105308555219868972324916615943785480756391935794863845039684395370140657365676330231823345768285977281456816073941450522710043576923283192106125017677818577085296697082774555198395673795972865514419978455281085935486863376272292015534406421851393066659514712319614356892809981322206775467485631642437909235145673823060319627815451867832876284805217040075850996855240660881904355587605615680170144890692599537619213066650573927035331626628431713658375523506871354221456101926456829116865545474875335364861703183986638867362613548739337542316385775302834865190217710485788015148744913619078917954831658470987697244139380968271495603052865024099199160900328487228898861116268975533105091235581658547365777528255310815770698286618304905462973872459290497846229185474990141945676515267968689780962694827671806409281788693978550890673001204083506171612612626540042219236531910783383558382494995644870721020832602208047897671591218389152697814960929099534547748437267555056764598236038232391547222034289208521099393554278320336044455598266328166806100367713771818595750347657790514755446122418101122539713130151490096800876823478105980261141325936387835008469413747394417785768846703743975360942082298104506925382295578100013680118737177818041358074775227528604172481609741292583372750049984920856540657631134861989125695995747753687945679005166291443038402674968497618303744360862195482318180542694656863149681689653160281693293535906496721700056203124513172106955500511893726426738975690429898470774607361027522233731208563778911312558168872796818015084389790996686027795324469186967603034450806251644056386015724582020655215330678587311591208140402482731876800212041457312532221750315262040059327377738810611206566767670189173374660055230458518984511966060614768998427273595109162406219269010080898782044782096805142070136099432346671493783087956585708850919845900970730226709640388922611580921256191537593230849244597086170643485791414962916425574277574556781105919750253650151865136443186116142828404925166270172512282145633141948367355485639118613068884088313498555926179217023695992588441842127063286392734781934424377931653285033277515374045105885393958534323087129629794183944171470153391096090530300808395340777741031828080486788718118634205796996094693491178136866887029999238396687270801859009206369398126871783537574662951761461189013443703384014334875199261563752383783965743994452572603410860821840108148388207673845502416829201549382328626667959554081164491353266591307675342568658760798980349475101406564728810221065332003384106416663211208774204210298905903434670829039987835459940412272382971007496561237427642742211617274619002393345031330231246850177304079794344144431774707000956694956975920167154335266459565297737451591897012205941672454294744927535327643590445244012428301568461474773075679669454536570939362201303938553796641677218940117324138773407664089519408183742689035439058720055597333907063597233172459540641116866696543429841749195949998672874238343985746581046001569762720987834771713433626826958108499507005554767255964650278868621690086610065401381211279815440109615183132518751488117763759236853225685539589052947261490213956168003070433805826551044413946145201715880444143092855237400536192873253502493984538740480301209148333356298837991222448270758848763004036365141798106163618080652325286452101494435938869920298596936289113889518588784255398093051091554982081511625231717235351828863316462866134147670608188076125459989073205419655756328418459645219669368393749520588302900860755082789255605597323650496337864001955397177207026137853877424554784144741065631617943939351874863130017879802488404317957491440292841658026321359619865093015268263708439143441590596943088160081613615033121138150937308762868588347275073418808243151173384925143874598271249980442699615975705309038602536704707034414648122775768626465712213274461725085026613896365757332544948322079482519877816720095853221155346987157315636406844035836042284121701481233814606877036410120823708993692184910298093972018527297991298073179051992752478872161233486528379447675767097379899220101898620930389476002432516935185963584796708323490961815395949443258094010456270470331170245501935849365650577156723264885903945863479596652344047075684597393546790776713707569022957279554906481568608774223916128820424102845187162036207477613235625790437617471507359165876098806768959059946353700108637222731267698010987965624652684114393274891062816465436838185430839225133687869075242026757763727353207438213925302208533987638471483905371206402807126410658133275230344251068547449411970389727147939377359949119621400982315522735857026472842140074997350608532888100380196347483262367017781235647276025937543330547961301978627373246658412547790984810924931543461371409971141612455629517141221626877572308621133663327556204653294405488895819411782462747919220487810368844464794918033008805008094556406602006708424967752010493967996869989189004865658001119901327681373240437048112168931080221681683754318360063096268740231790466461444441063075591035900000578859966139887569138782396836303847235904794898480632406121502587719285381136538014574508139849668086448600102463904658843394736207381120618847240392497886890088687148499359692675480712501440938280808534981435955808022538189496597027241166760502777364927505527961043449090476557772213340265147445718650698182298460526559984994940702005824163619824484540864776501034969065583901285720457129380356208201427840462101867395575599593579271419399561532804111904159742841289520223634860293000470055502175805697946532245323523080700293108194179913346852712368103421570554829040279670857304953119274392664013921312813247428386778885803865856140093541254512294198326679799016566121261382979535326992549552162799224715616656693593961388831699863268970845064735731915620818296878440241146724477209200360884620318833228305261503818625420021274491593581226454658123771811490483651511984826455104390816391278775994229579201381709570054511601735687274438084664443791977466477284989792854315023549763882530715248545195740899019576647444128515564908270229770681109303683633036539834460279442096754647657220920084424281160390294949527548946453728162423381187080604222690141036413158036144377260091268098531778951430226293775856355367586050309400582879564968342336548291066126454333593210214852589627357908553402221680800134838837247640642527825048740263856744309771409076739400202930319358549200625927862712578224675191930453914023046594475793831465318324085069234376045773377626828952613671770916178197632357740338001808253723779735837085715811854936821181830390346203878631423029648098636174970590692071290907645577320655751023059387801628568735864228884685907490719122702896472270994281871860905800401237843363913454876868282246357342521626229661844368548300538692460039190802966153532134761842974171876258140802040995497898641849622566058348203202786552690956104106615974758768006450805684215475865012942242597154542844145114541289592731896170024022673183647600092487244678330399071748731927656196896032758688555251250349950059569929217154846773877260064315015873489053131648625953474483732236230215406898319616177578641635403938550264749453404181501602564291234767998675099996706701665630072408997808565945996365576099161987496539728745480861022179617390489734035790644665006988884462354825248820281483452830302081921843341514593881969299024299245688133088071821228349277390954743438512199456501236982033326374306964945035393366463803592313618091970018326655607044182256012750921531358103789646315268077751609612878772596876644936625503959809878437547306325798530143496098258811283254416106736511123614950331906304643364287058975325267118431979807312588976994413985888141135003227437191029564420279461809420540183076295566721422119742589951086004224213259850339075691993154463002473805118052317468995500395857897196052821725665922288051058404814001006179867188400323530240304616513802384462477481401797469813008586260847223226117942874754393685403262267762432372241312590267425529244495934760539595625309827374371891511281495080063136942118244032908352402172883591214835048709528041943893913413615180994915950782170338024433001455553869212068717897008473780334834363949154896142691511996925312984044104746683421339507559602687516457182019587135199923957586880373788227672399657319614234323537520379841369166593256424238649747206133522831473585891043513535177502234983457025560370181403219786098555579529624897388152053266447312225575371590560606694855555194854749208130757220177697071590027552714982768171723470011848383042978518487365122385179770893902513936944125141132111342207241186425301814165778980854402061813872013995641936840864041456892150784933737669780680805646983420611864229650931946648499354898950159305093816179802641686221740275037690027549280513700177029469568903489938881375951752404501809640080145377398088273338464526110555992198378912953977980823415808324229311999286422931935925073615464368263436406498273577617411949161421912262958504662187892414142026464689763066781114545061615562502362260529035059314791750572742419898127138941744024190568125687170988524183985767475012356586700357654608632163581603169428814122421786558551220167042023560219176353757919297052476565892146882117976198372718019628470793981430493433229513458323713918058838778435467162966277706603242603688446720812413758208802250509913051347539250129921820489183771064182453973442150601476962406954560789957125025601789203038145857020887215484020395977561025647633963910514526103832301100171249750274939016597097754872628023604029754413160597027551560290518650871124449820631761061914878169829810331748395353446437581522391180568383779382614988056969600270316464420778618713954739001814454503893987372666936329204819952971942123035110250213845409720159065657112760142707203916648992135548819611324973465945461707931727199102624481505350815918448815358563393761625527071725276800291272006381549737958012967401230180216114830108311940480195361118611498690540989657103288628852778751945122035308675861625999015817085956848237634802610328608854110292448109996821223931187526435796578767110771842831903680834149993680096691241033646345011303905834791804028546558592863719445861368026613311977810654837320278083125786601733231360382244122405050376795752863500689912380850684594160188485156261518462277129004643461220806876292905157694439398497874739029809320186032832377799569502649832657243177941088485373426615735986784274686539272531807461582291945742180538512582992241231756807408604007319682188002597320062410366096621246833542196196180086876587801908483561199650320953932147291909023212705874202310894933944562311075373561161933113676939565010497752319687848915795979661999259128957304873444033416701535527308777487734121061128479894186527518482332641098178457409913685757799922013211360743808272617700263557649913850839864339935163607492194132368054312292472335313134360137544676704352292130784652889616249488196656762083529187178003386304893608582387334952637809805691977586448738249127897006179380994281161170583937139189788022222437327590777881865376881945856002406205547823527746620931386068860676996762957668669269685121193534052884134237215388304890030702656962120239775642711025659004651199479139398390016225675475769558345671687079381507455738468741676951571650083482062800302507419569258410403788396858886138216352555884333494565123609500779782761803171399878112498185316626822317518932098129804346995429717169641936198820932024189350643163205347831111143599279622974356410300032038103783635059202528954661640846711720843877788136572632100562560290833683160804585814760915625049226665128767466676740297438215894896740187099967443467941936499391249265415824817237147531130669646060437141738433338106746659937601237398566555981259218490079345277572335343445870931293846301483855195112318242441288112124032073312968088239100308465443123636041313987833189869514516320180107721446074841711206815325885675806776689051227340824023449745219011417800656145248324669178723627618752262732409672262345240529750998809750717030446065572416082900851894892076446453541058571217092661391989377898977110602058282097627565179635266725399955442925434823613678945221956091762422739377126661232228851709550518648023322054393690744680336687878075854682071046597063073254344065737473793989008546376292202786424157418245347063765404113307803330562834201791747464110817386022702443701242094769890215925146723363407504299506671521543464474757360344026112988755702443010625560894125186247472214286373219029592888812923361277229666517303155436527108757066412522294173363019730355536425562881458525075695645501190095045219514131288931291759243810194357552790008063563642669447178047839636069766786922876791783000134211155346150511546435753236225936543788060033152038357325119698768420723133121512629732693668167712313270996290101905940491268918192164371795772071843638527134788211434787229640548675972681129421898989946285785692623355698974397521513584121393619802613659124374438217068600567576082022547377603385003977564742407170041924866846211747516730744215563836410961437675889570364768113335876983584285989780532373473847786748063501122903948619145300754149582721073680102086085387245235485472919220117946759383704589940116979203237195217790556829935364574818762482661901120803011513770947291497587632623804106319747106052955498948527961392726427448141268520998195664644361627104278511016700235466632616815345719249639965999914527907097507327825151716165653917348377771913634133777788814923058453969678784823329092508893143986817172999216956231735245844932839350447300045011928564579012806206285719381745215780456248673834282776272466255508183422808485825201021194893122662477617532500042981386911125524902899047024764805889918949209986894072142038818607908841125658394850187462016319148435462869162363297237074910661551240124112094734010003355705638764871085603351090561408029812490810178744809106370680492586920227063558272421907561515537064733268003965956722410093817745502787783868141883293151559649480897073523155349093560750267144042140060736909405520968314798880990988502744098199270950797831384995338230450522435146752512217719643490711209980118184961208972095340989645451034540930502320176944492977901376724080049906438733221394802804259514172983557792605632083960235154029153587151479455987340558386856328325208237932367869828639127804967346622759502989178928037774425006337284464493208579292318787251470803020570482387354517947153957884512830511201511903520996959819202911356484495673763501133539776370169815894388081652137422249643225432964547462410244497832374825670522236885864787369297705662635229449074354034352282297764600674661565400721153888881161930140989010369231662504264820063527320179723210292266018990322422819843629257165682311149419278617823046400540855748388080782996578888444916887927547566617657788774235035799666691719080229725390131828346668586716597805005329906018709998568174854738602886798438619499219979667384509248360449155364805386301266272214757509234023465333695283062272012520082490467633191351300797290410200216000656183808621697550303046961159238969505339208335790512135261415962697549854325621099688026304558299729282011443038248395272172369972198192046341836795450935844593276235158072907048065268683623804680887913597971344516756139356932435004263712097160941660845777615667476952252342457406479386032784781795913432535261526003142836657751815062177768352639829594524243317617604348661861097140275962728328550908689609231880032460361820911077381414173131171538355342863227433531994128709015967605386444139554978820062053038580501062619785266969442312966692846871299984212976036742613647465326997825512150737619343223369112994795312221476671785975121891956429553997664811089676332077611369557479696873276394832053857165774202745093763857621117675460289926675702130853047757365552932754188359971812190091362347947672938805203521607557510631354096629690585604867735475301771369361951421690474967120467299013321023275611811141599626695474845338419040217835024677429139078550570809702453959828035786230792492821345745646879606689440245978138961794555092987802785403743742479952844651526274017516797886468915633912765718607487667085454839407661945329667659918969646999183137092588294921590273912162708209257362723952932367193215476547369963685128175024302247855501813759478049714109547604501793455927378025235659435603678250369780917138179505828930919684704234248914849904319510406580296179642578424085941002587342536628233699553036730487071360866078767119086661289279107353694099970170321453038640389330545879879039767367994010484470772276516090928491903734953838638107045561712107634175694394131299722908288585699298604713396499279344987336971684165726113648219241194497632376496609831372064393766324835444385904569023904595198487717167056697039039469649161550743494194939514682556059946040709254288437005744493042277107888899786357814385970463612884007448703457168667132461819322650498465934400981167717422018476963968692808908281499149492393584598411255363384087232284546287256694386139208550237751185283467349366019961894716356992323468545307747207579903668767381975325039655887809974917196497251565969446710849373834880677756246656415506041785768151973189873947286782436805241451471617793272301021552122325461309678587449688255261058271802614378836213947562484753538202909420054616077684915565434405975911146796374291416220431914436846556006102093489752816666639298314889528647609209386104087653497124884410500321218558825270947074782806208826896636118561266328634791764068201703241107124069590343655123698865870407049263627495441500095550577097552348216726430746970596809646346937918198222549115622765264044149354127215143600568202580364526262774490181157599019196028459398013283838135498464688312449307365134835036495185868898571391837025476408885398488289836998296429507677301435325944179183219158037722871644671843804306330694479796167426720132253457800462279045168046713278911382749775330639851527475405591053910993732871934551307315781395399620902537231423540688954387571414481914941076864090062106680041516600078716820420982058807834863312678142518164527135041196558368572575370499492706429419783223979732170712820303379061431626850486665077876503410004560321219084522691442480193792972710013838894102059660087745865879407659466726544678303925872985471639204338540839908101530561989538987889856680199869890619163064608112235607482538621439062141589096227834228251619985281376984182015932574053363554484944743306427951958610638098319878665304944771787446140335100602272601153534568654160185613780355411433383685718912178227544647811443489839357406269183937843469456068027965935823575317161125124154361368664868173311899339530953606858465410584319487811416178547355594580034914749258690211902596642579146369108081075497982651445168264985552559187458325203018581546569051776847434725206257362069767877646292410715772526827636736070126974365327737842340675389631475749987751241266801940284819426242544425917429956230388549615817249401917762940822447599064861978311319363068680201432557702719914165372455600134367487289580104507109510290927250603285902966622777969228127571086989825246662983254929223987174968816719966439191951403890560764436306576450422101112937002874944122909927557142764790858472480313838908353013031427031788491129107592067349755973991003565012705880584515566604227639896934170259018890037623785252724083445570481097444693721256436258457440600938951445093161591229821609342047056463879867740495158454479438376030808389777198239216241536091934917122432473295134729737504390058611425713542460719858031601127827306227245864501089959511247824178029051975528019195285784528163364841798693789906321334954836513527984082931224256220764773438092146376546195607163846728291689697150236140984535458920931220835957942464470612596449095010644530038130493496405550201377310502642212469684987197767975805709446871123436586022844896517638082840932483904187345598903355434240861792966876863565113013363928981466793745631790607979365785588159764732230687454934765424361594134204092603378552886630753474919106847262001167902853369549807600711070185084316056170845506498646382207054528208916264857213096313472970682116484666253193688073478693631159083426883990626973087500413488129839668433327056435541180580633653083881820234699899950418763443278291769941518779120175253368229832438685519228414133512330103981594174148635583254950292697802687586806301012272837655912318524010088594873248544134852151005592618999821374214975201194713172577318325737185162508238583120791057948578755035971896737846307902201670180670291082087633710747195041001651390773470264047309768511125473447461257326414660927644783319734902484728168185207873502111084464587545097526285657010620655563012229814189988121351747687282293601093124842912968460412130463426982694132773052426759907333360913077605044084307545683526256463695794811606698828016698978023298164262802544162164694227842066364105884609416368445443312436138221716835958441869450407534913515763542626072884097880427876927200833050032966627811708949706425228169665004281181795187106833396454982201421206537797493593171225418004337600886944559348837240649018309337630917184397525758241784199625198185442759201196225348783439316784543566876531457321175202902352194322959535333372598372659689787407799729170208653528560629575965856254089117865271774669222821480462391858678580197233691420614350693227936758037169821714410418809627649852375406399478527285416734547378107406298709668969942816811857965598113701316677093609498268248510767278050340814475151320150897926503670326838352697869813674543740343315894911289565813125655251416471789817377592135425239327442573584495633417387814170900053835899121342580703453206208647654377866003584811516489137152341244965303423674971358331523524442465981183156072659260714875160155799105812803001722406264074156576876384762029385213562957030682802444895433123431068053501826864230346287513707187005725120148799543070541744485941728403370997124650465179482315456721768407733424766714749000152403223804353388805396889900965732938329877584220520396118071138854831061146255975024443185883946347068734087422860847391124546256779919864208906293269271375862359800856467206239879309937480284278106994002014198722793497871239831900525797644123645946181917358809780501408757953924021378684514322840913224611698286680753663677604578649678790355458053536169407899004737271473423582116411054448934301503062930560825905190224598209216651520142230260411904582164999289903165836387377308459142940888301795707554777191073729054215274281734812802576552740919324669560229061720496203639119642532454087007319765553172774237911667578206871601879777648978507067591243049912030354003603955964252224879342082988481687646413723511120650224298265615012401826710975332503930488876790028948989647111778678109637545695357099963636549984474835948395131307888698869198711143014180872800356563211491157578840073629629341994196141512112746243439657603062851878476062722941653314854768647806440550913109812987012794927729074322162397357391751222197307340334233378264084330613394088415783677457009960917810342510257567355380312531828589362252937677291567706249949978678700326949265414519300389199540194353683620602836064986106423844117263942256566876454884307270769006409949614930543454780783173052211677917948405426837707502620597472969715494481919006572258920197772058328391704398020254576590574935382953229951301728503282962057052303187340479532293897222637618807095162505203356125570024098439522126360252785404913337808438800323031266485207666003346550480498087258259841941773879083520664062235079001002915291693405214022159687114214333478474956452321555096140485794179455678630689538237901066805132876216744251267323557255247370935719218420956928235461439877241320647620143726357802465888490389635595140686208431425232302097264149070401880347574590590916697108393195730433135141674464774272700464237927454358366148233945736103733365770188708518700670793056614986032336654655774817878194969917553335279603205214565388022020271240735019074538641757293001707431807286711772539867741986961946723468242653206452425090862597658019386446472363694405533908602087682017432923880837800735004478501253755111008055182579743447853285072169858791493777302140195852806493793602608230956241260626108213512467901530590596474848656630347651200680158870715218111851601593087892777666098736039591270733921874508664176295113307868388802400784263906272919943243501405436765138810180402519468009239742183779980419746625419305328562517551569100689765944497634407874798689916646142106439088990533225482794721945475531431621319230104672080247113249544777779554323317974174224436804597075889869761792890742771322805021926069696625741490661680873765667863958893075488293145179012080035707329899442986604375692405838584824856136044949784258444384929180610449167327259669045563778616466527692770546822068844825077588862420129502069139586037921426255439341882042106123030259911889612170773780403529638614804161333386635427827688938411662284861435110709344650213412787290238449746888603392927519194461318022829557500280979756685806200615191018863824643283628123712285205743508776378565772028955700292475283467575902942372845710830351899460219318830058239483944940570636022355963779334062597281482332626344733287217190628834109134973298993789972204161374703540239697095113797909860845027272635653751810548163379690867265914969985605892441991432564684673220367247469293900155933072417860020647203751368806116512585553296511205929718396221887228444613487673789610892989023119758865364989979171736568130503443043742395054142655890337330720650348081669579206554453132932771734710794022289585531685408228518807933948871070161142530591423478640311100771820257572257748433150180945057582917124569657298219801933658559698927083997203199833044560832440187871224299184646784537358756945957017911397913353635395747848684592305322415298744814959370098763290402233913370931934215453734508320757098320371666196872408727270786667245632901130696542600738729845181019748186951120195699987319038229114459450927121508390055994211683171785439045732341375772945102763931285170962796348528054803166362540989522481059852798671010449067464306238544061335719537706494469309603645163213531776666931818762720073550254342273304735550329265019942839297293554065089062027561931673702451168845386576335727667724490430234301553967815552469160853892319372172452387409936715324249052772507996849954422120285951290353889005080361609862234018658113228278708120719560909023689651388422495227534550571806275337687437696354780695784830766373091153488014989980003839929228796323420547097368276100533124949613905328618373305103650024288367865722815629599428059280650631575268509206756461975607873951910473715189089786843053987707919260261647468048841103904535494133145368112612615520829430173524695072456382976874553929833551386393961277478178125749124846111667751282208367750676745365992182181444400736372864557647525399360830685685753322292737471086345356086742751275445730254314817874776452135151092414759003663181744333309978241731143514252551446443418499104152084296138766591223787917922843024376923457961442266463440048110285976741789329405648515296500057995504495559525104865148816727166621819579923544177016193679533108048845148215988973851632992735843250186735103509290294691656638742740325937630053626738567543051404290152863551538139832193711598189197216653897197636395339719047860225949655793076647675185857268159029062674023619671248435272442036851845993362580047141515494223531636989489430229179709176259521889010282745381747121662055008885258093100705203413784845311607252672132049702846861781247823909496391500071703899943125846984892746449764993224847803160107189432136130091243660147451655993139219388525820777205940711402293164681396824169816009229078105412257833980286131305339508245950653510246463108351551350667769589601379614749185476658146369190629516099201689065860747183755175559284101483007421434765903533490857937663290415313860000187889438780661286229683871595258357377157682442847078308855509650469402878869554091940659035343748677087969140931632541944837755859202280527653781625500943253545641857936480329641462320271606477630564410484779766350427776544659689903435451923403923053094629984054422126821544716223578716303334407974791534602514590720851997084468770634738660026004903716748172391126988603351395817705302024760991897703956880424656249453191776679727339013401313653451526006335901086680984460582846579542795979547959762400722845290205181338496240114490098330524593091053638812407613237923982153188231106430811235819136759646162768068219131406986322985444260802737013737894882575956426946133619182988665281821171563494927545241214747621294091981041497025623659391387907349347301883705894297624570214210633625395226434564695736671930478314585462076990989771252264542807911145423212433365545919658867050570699724876839431145818409090872033198436312078540355095656682651693408356227047446708771297415032642338345023883430187301430711057430424030746654546197109270306380949101576713673334615800836991044722956705459077175083041695967036385844647417773652659938063224775759403391745911731390921684882801730653315942228144493251949159993412619095848725356622784815789629235413061729830435864180217917000436407359461944057233811438472197095794659818640264220924502749580556719601019355704702915546026655512968541490636481326116703153513648398206404157564736335931472349510969848596330690737427557631127554062082116664425323310082387858666417503978720246189747034701491431294976467425677727533428459673941717594140661166876428253991791166112719911707496149026798659784746297551040269661982781160355256984251097688838686587996913457313838139982470571773700111087452700694358446508152292170255650226962853844837788946999093729463633234765397583905178188267951500798726309238839357370587268560146249086824647525547985170076664540538771648509544506750529559005816727679693006973860351035417554559026144690754801900698765252653169797271543647426131951108402386219629470718715989150267339314230008929253544055547821785602957185043334546901878692058456281598591421646873422318214135906044908047103890518605219448577573766162254216861442928572594990889436770068349277704245662193960495504759623790119983305488156182436435149704342357610983068357726534883904890514843977206236285345014663723153162946242144038376804838132015972915540395336112248702886713689961468910061002338234802324228916931644819909829122340012563754900720386568338571917270649006854930774014131759547853999173173126030857915532547926428519188082839236319151321245221689848449556962261569450293593045769972423482063547076407678893674306369996676621610728118799519142340559667958019036249279499401023918403042274739047531299348356688772547935116007531948782037815979149157177420510896975251527954965215773213175551731499038306103052909237773922625311312062107941476116716414423208588832153516055239412436447290529649278796002837267812175199991598079423905334157319392657347945781599640584106215269134500934990372949535647696660434929643672871210381947666396023124022631393459185307233986994762868068788296591574389984976240627248820550923632990178516027225679597522044331097516830738316714824697742393287683106120978223726884481658695730631659326704858481948678081969287348769959710249985155680625943708336536239384286415035256229680315171949854699771950263699103162870677418888249891785591874150719701118356504734037987529049723464977092577216132168369305269880260912272941427216330909311046432183514684560037726948268996563067738520862661465004891404590885334228290918582053346166195370925743214295172912370134295253570452832279864989091520441586538050760389123818903279954234624250405394450028153424056867874141577645571396589029067353153130026702855659384076045755785668875245359431535053638479055363498887473098115894799619715439592353056433527903614727177732339478352179147069952357208146810453353673287677398403144236098296869401144087671632260151195684734610879737521893151901871283868141838152266123773360099950424220566326156098465719382260871914132597318683940458706821976498102937799945977882362075076315033433389206687409958683640866006087804848608558737475183237764502045804776298295940579927900808200236767868921427519429349111249465930242433846378411758033374534524133230558311181125339735766273021582989159547831082933410133475000275470218072336986279078528853915607329961397266554497033069114600505628938686860457262231342716491793024156738641303671318786448928203243482075583809044959571607111112994651287862684533665495833639585749771903397712635616750013933123543185274575465551916729446637500566864163530454930022047811512289559956586764659990165074561590330511876089390974843061496721904426134080784188330607715590520751356011359666311742812361804574790578266159104412603733445547720502382801144122441285057818273709575968197572972468473364515399833168749936221528811250531175094520125543532840757469408299545370487586601201779133030883577101829249950550806792886488238247468543530398569337033885081341100616397992119442193947586844702541894834140109152436216395550482257051387362632290337046861598179848094020593990912471928843540205150818540334052273540390743889657298923156078237444889242030585202255852816679337297054618182572421627291242065106066724479310097626103235370592892135791044299242470221740951682263576783091277003861411377828795097975618391634197053396324735742034273017544206552590881381681755149355572612303113375976725342479114438376358222221303601352470932477428267307955815367007890313937539815479263418107286967686092811097521844844821180026580372139412267932369552386161218389916477326261390607423806909355813459538086476062369964986566528862065776906524109921366655605915619932921062262101264495546964156925865703878686190948471004039779038335353841723527719772518978460548205652572806938915194261639564852841744709875870705990491062589174548392051274458656978056243847228414913473094266102713539398881840990904602180399066577011315473515567459149932672712856569747062153405866601389947877573226434697548909337756365597551812443986806371015123216260833203714017618201328192940957682060531304884900120166585854321419459590762250970055624815918595055965284673873584181114419839963146960032377075900199875331110019909143019199912383161352330208489488324491871276072321738760799324937314669132938107932172208369063102387208263773082177196102564942707605116201358715968913754463442293835631085373823137528501886676325782855087374712485500201609472701316760796262875306966084692812488323989977553769966119428811605016391739883276068999946001609553386993060945484684434757699278889128384660809526300065425662862964692174982197983255999022410090048960877701359097141867870095081648236297190270223778713366855544922337456017779731408169219647661495283274970644691856058457077570997736864789302625636012593315197803887023392251300482621403166283270267990232469915866250552615125684496526415968702027971353780461520769113673349656193341689197006496201825030961290812882980452666766563097336666036570705852395601746612860469106794679869673350338055776295990147884422165895289707759990147540328540828395684188229006209258207013483546146531543468284406940037867145204876367803013235135656003098548827378335906002414925549553407035701921509916513898248409510046371968373970654759396663543076061225556899686629310001516466544697072317919161255336044054849369584043290611676191365045309573033322093823683854084401111999727545700814513533663953834537877971439695991076298952960194147801839591550786678475565687020768571356553448856812677267940521267034246673885957260333471708675109740342890810196026087077561894318353481762648182517779618845977147652477702548868646486952521613686525653032938947619710741205410633038957951577920972308193341459465168546579431730505211008504013574005943149694371891764415768410616213116752538441797761047745910510009000959591669052214384389084767405018741902004303573322336160866965035943701872371731813065198053465860006725561290819645052139535866940961257758724996606254992423177362974686854417811040704600600754358868811321153007316102750231344164899893700404781615482901627154862461970544658228451283305105969995683373900832131585568479437057784761949335667384354778789912045403300655805617462712055007809599354533511643007197815119561564191296286076126187233564354930455390673942501610730095925834567123476479997212932457118697757706618796893366485340380572332830537520741668390992261597115756232147303893847416222954274304197517223018193189649378201371508815918555115327954164712290965278709608740744746740308931596018206344702131340722555160833767027692310566053742970930531436393884719686111543072587309443018124462517678321585035735092099682071359065455473075135381073439399349999292516744520772370053473649249843239220822967792026100924723857595721154176780486164549587458763661191810787713417122378983264170941494128177828814216222587619433684978303654368285049301275409827020478818372366474057297439695405215633429194068215203641564890774862365473362753247592284766377023612874948574171203519729221600183336405419598541663230806372581425406423280048207180534693276212446710673807389660392715198654289318242264255573038808598787592660957600714174264907867546511496924903545704552319855569403458502754444557507886718083358480900910170496017716286183976482209139358430680983330789803168625697201532888268978086871221906915318123860484392931574377959018417026080528475963292837767236931745065075194121089931429226822366906553028408467771880375370229783800797861846131630965654727080875553590559039272879790868232414177916120594256823019658306012391714538817981269757385324989915513446163475458770823556872142727529058909584717375737967231825831213992597689268974165604783456374149931728199872358441809999449739746672433047813567936223748051935269748790680576449392287386029449993991756059660990429203401541690859300278799886285364644806289762981713712093522988081084013537085704406962934370636541677624316102940660147610250440989462884203339834095911388019137653295499020238768522929169326721644738032762805459451457550033546453490267633652877799584673249291321582086235477784678209776700312069638545833094358801187702452003054259656935790667874410002964045688059886214267367401866610939184026545396330815994434385156298517241761027891567049600108436492019691005007760548484203034123744084280494190985165959490979949099476059461523058012039305586961806486058817683885547399472743825649203430458710828270781583994617670210930407099705835567410139788633354669032866958524961233757209221744146746322393302086474074081214099782196092714187432117640049779117991389540728353492550566529302984309544769921446362894908749985953455559558974786524844884430527831557346722135335953003209004453154580809450737290824016318979308560395711020849130580935502975790217672892419331799983101344029625271613972380088397754008893954811972351834206885122248809130930365214401826581676301518967590998265864465964642367664747951000425027031446343805418264590333448951313205150140362927023045587196756105488226383549986421651618354637982325944058246683486487904540535775634093907201327434903018793570634216038129685445129039197580132293038266864910715373453658015055571069670493475826315001764322459817050440886793441365387481961734039154542591554226743201986764933974180983752252796344101255563857405144797194177331722450638735346640521700960800787122141070957641372997274064146940820626576322804604365753653634704169521144638756555063256894299405665133770751082829838164594816991833738495189888378592976072301635573384316666207432259802274270153688417740710407053226417516059715425411304234064053550376396009939556051326196508608530443513460426155773196942330867658361605423592204885832707267540295638740778486821858872717910447767474815889134796728685052300742054144522815132331503219186281948689237524423381730371673997502309247801912768165942930439796022244184361784937041369350496466355988789627229684570105787754694274524700783631629457838295843404502091303294776717425054001590606287962542074905028661267421536171386509558582109778605023581251935734156100745562542653579012397026792585673266020981889860436063049857801754505336014149831103705976676400249082387242382373160800563777786966462580451719002992400413396104381088360998438963732707771916942051471856583203796198876661786198635799658170123822498895532644226924379919882697068385113390618001954359365707811430927160632934151612052715370661791171598967921007729697829344355567283890214291378364712129309605615062337789678083770823175573519196146064234005826333322266802413607513704897733006859371285562223225156567321846879744762264147568391278668042933900311752161946665671261557874436042554143379433647349263693899469827323441407940538122632045597506347331126008726279883819058143968067728369831817311832562239642324577051866546623910420789654933779311126137873311587244834445117826130284008530114962950242901979754744737290530620440841410784235296335757131402032710250230306271344703164093042822348140578554380973346257715937763087131678397098248283085193770495682740609933008064682488072536853083942367308860008987771563176171375285528100408066683598924644927214573877273219086420385934736856731720834262583912422704895317439744198410356510897112904601422860718032490074538770385744248408116100484343748725133030937568192758107417728526957326621366207846589173642823964997584386037765453397679816269474271474770759189901124518809589181823023084598579076282618721012698118502269390941595405302564365345941758644967821545148171338271474638194009886377984707778688406520577106909621621270202782242492662263334647151402596816003903504171679644533985561398396127217447606958015926454631703564741833911536389800748679703440057724348334651079017884181646099085162953942101021638229663051808628011639660537707333533707933645769021569935392980296534736434638218342576789445156118279788854658635940017661763372742590264472106521827263703392665582622670698709480658617846550674689404583671250758597435040074303627932935101353248084450172506747918688129902449210457422457813352062218900980344362136582390275180907745730284060064252906378114211144347140588517055252065467084038134393404822694774904957158042327740230985091050703670282686344430511520995315753783831518102648468550145153094427542727602706083175368324460955875955726655598242010454787488206947176118638574766806957935540281887094754596388965366889593188936376001423113801159047403434257660376729856625304328252076008846411409800610418610772936832960546020866718436409726647758657226886430016180279639828080383657350850313046463248310741042934355023003095187992646522059851397917307427374815740301967716139680864878086937687107540688233472275651291210327142913262350130345822879398046626810324643906330269039171942487239812181305969781950215117200468258332019813288628530442864561996592793345781447564587985272140495690237100445199014311340738092848148478684800343327713777392472960740099867539591048180185083514650280608985969583842115801232374566856180589068199172022166577106914051522785242897401866869323453584461232920995362790176249110549101200319982598691509636544526984094496596431004509416675147384400486156179410445702724446305256464230579351450810928041723974674338046658923112323298070003870573863518769091759545570678036844728229371910164922070278495335447207765371556550174389851753742725695340645339948558149442788853324495856552342080518997334868652995979526821495593349194084115619790070471741482994049512880342237196641155651012717108818490011046591838191909098027398870689564124124466102042223121681284674589331748251272763968642410029947376155249519673193930214626195374101574412528214519028815974884690242074920950797644890873225476816407348891811265935824633328380824855286601411011521537513468678399170179816189944018862275469866436189907979703741661906551320316158252868578734693325429690141610434927231949627285031489930623129157920313671616238881361622171603830451255092827230650875229527592241284715299540160603095053462038753812932192418411543573863125876043616135298161244162907270462265394127434105410525399120675202571486759544174741501465116131386513663082387399276820667736636309940976184774599414800723210012669349923384723191616068032023133716947738624577871889743200759871687276602506957231556125032201553389978239925627620268164657276374023757648194434793296704584812571611311220686634354438807055607015191192487318940642473648132862927549106931932140682601388121246624154940108199478619368642792850271611328815949158815569300763790428520780249984090016344637030842190425170369957088152909547896854880766760505550434590573849045926372593599820520891265342633380260751869916537492303941363947395060653869132568764363623953911991749481480876584660312699576570493396624991269312659561294389191672541628639485237168217784821611305230812503573057102595680735462242995481207767538664961728645965845941091177690952396073484936743161707095189991656221549308228874193687786071143374857510069479018098690812007976783743060133726804282035342850864955226693931773964004799846629968917223403455345284074194921303878706376119927810978454983758660031081355699696455882650609241696538548353526080644594129555892110450088805967120106425058559785048413394031964886849670643022795054089895588632298448926932202765175445567527625945117973066665193071567900153644432887687872652670349772437133211094147670872371251352594123882131003252662601084017902036007303788467978607684368379693723394589065024071896560762680562255698602020961127001701394040762247712627189186796552670778301314281805471373453051234384186138665686266153007308920621186575264203903044148560915791869337789170036405044880492344200763467034733806615650168647188050055111279156087780980651316885428750136370923315546928683863877281591232853504475217927498199066909343588297321697369268881229546169054437893022099944425407220245649614388092137537404961277344009026989465230252098282341714943293362741396827482386829088128613278442106153916171991079668063235126135460801666315593150425339646162804504868976902456096631629606013518010027822500599049115990605019907562949931826244930307969850953380297210855257167666470896056047207176459617297373953759271488915835570801933610960205941249946805321015351077829599602673334991593011604941220673798329729485886862452522326765046288865417763599605616438703544350926011912207300695708450478232255884124033656902904739552678000643472101014797846143428930245729206776135127242529866362313401892692770281902874329362756782534259087641889634151054103326450522819225026412048317521030578153577556896078622440279349747935693668572344013027044491572148926452373516254207065568700351696668429894338111000379588400618836516546149934768504420987112540853957961986986071672595691914124344027517418422185112117703431085477729533734654618692224345960998511663106502758857724257996118606169164707658050650607505186132782924939291071254507551949683659774145440034872416460645872043910899284486891083413197111944371589788045593564849326920798040536232477003855444878345496770017313444709259341465988190123400046770539207399508141851352317321545688764426931327862229326756198954202539877536605725363133243466734504958646365963467094638998406565590352888220868754651937896152814081165630194491691392024486895506126478662609811784228313347370754475979479533032116113046175128461874818204762447541920990212488566876229386738611186841894988495525818171730894929843387075691839936578056476951977517902647292806976138223822952808417252058287912779383522261563075555145250437252544827870398787302971694309121160752032832359875755752994462880846132131243914937762207430969475497068155842632709517964496375313493944277589463847698200126552112701042477137091700560947446349974309255907787832737523557681221760428508417611909005282904266310246590874288586151843355436561644528135844375874371123118314747738921287827407731897868844213589067216283163844536737412498465879104968530101932522763601059092068526565912771446864070850643080038771224760806565688499587156364468986715814005904597527534618525298865192707247056954469924260249509196466143857395317106129731317414344340696863809809610095001618358230419192834876154955409515066570382055985033336919010208332456699216322173896080457196270038412743490064019338827164735762933686415087152697845590683925042427453472114196466625474301032211650495823745231240174120089694051435137187120453812832910111719833839729394783512664587216425988595372824741467281196914738194973076038102327560590183444798447945356039950019519847404303754634618550720151909873388586677764916137120392660905584648648556697212868227273393238934371153797423164387980360273953565500041234943160523893477245072507397490136096454937491829565342860925600249427581793508778004486093918263397400133866920504280078483824150242962296767844895099503395398848727751730063709251198418476862863191770869005213682372178161740892808089845256756601508365192670616708466937552220524681602865114649902459430922653139224065616959813584270145012796294967238202762276216459223946367597477277556853979663501928857572181991889306168101151451297294127401648486664010543135960007669995331419414213271528910557909825326226104306374127559993325912646528353366244220536746119941742807807360400525570193692640859056404358835312972327529538272918981100933348739230646823443614848390208795483179244924457536917338347021684619673528481080487800597655724718531466799440408690741016743610141952718006183163696185995155325838831626207767439741586447125271064529997097737317068038402785121333943305116738125903763202084743330047810853958415596268227630637993889132936894523724310183253937046091901865834362849714320559170757936498704488469137974544945451185824827325203296078132583803678271615993214463000153109324446723761125902938977157132109444950159590338587652872818880945342816110865940315243455305117127820660821979369878421728100683810079500115349881503249052029665265076482389875543754291383896122368843754210130547576763235329738114598212353425984738118831593789199102898876771912244366474631320773729469198371814799261308376906191511449621202998506582583408829332001485414332375705071841852006952211157800706085535677267023584412864292343269032559932996043344774676695536856004485271565689342547388144889074335147268619159572292138414274221345923548485758095478753563722576587924612158505932784844008334391157807292088095518294041060603819056323770866031612335522301935205578073967258536132306291519706463081357190872197958763209860194491311338116902209439277648662916016215294590644420237091051011788347894547199334629666142741941302141547371899286308827062704570082466989257057703584517491499531404381942704787676229740885226287164377650351081289977948099973854900933274514028531404070061242995093507809950875268351957533152474601349489920026926524465081709542402969147335930641980511990326664715116047128139178441216175093457992461267143878707821898531376871109261033296221998143752854917680317009279142710043495569767332745431121149975755039101339212351610245645521978702320975348335343982187270455521973203037766554898457167925620818071849886724640445760518866809567067889281572384840422391648000137155563366032630519164691874401279626478585971273171697711400432226483277007198908157796492653357227995786292910056562902622664993959920040825352862722031970957953966428449131707620828037302154904342977634312615526544220340190531765630189219291074458575736702026736143742519538877893044979452485878767935980139404356171266940688247528815103339881855698695170472609810734778685415029006076051413190646436901137392504590683994031727142090533272803756359026287933771867939516073466286083353551689816548655379422680822864602066475152073779182175609861801064865377085371121471128046906161949404493051626229990613655696672882814288681276092219137101653865088164501541432510828766108385905129364417356989476456768576221167180443102583691924905598524804325064705992555719234829830271317377901108024605180416166560727395431102603582948163129746899207953853776022959580993517033807966494654048310114766501116055325780101338193678385759108513463544206950226895567808836939951754080590476663766056746352209038244402279033613724810475591631191089430084607609764252300767711352397724243620290942423118110749566280233697287048929979693734517737409622030004738694166748336351017317233683809991484373145014877187483614939600934641054184163833926899143958170554998854430351003279554922649922524080881884477002353690577550300524636542969684189358994358867238966824416966926944796066815521190726986468795386497666988868408071167479547401648029387921157976198641292476579570464772462453836955256755671059993311853312494894862670561065931835843284098799536387508820133782446762442775103879075601380499578614700987860029656254746014047461554984572573871567699016307609312177962933213308098102063262277781893975326574247827299524588165090444333031556291654666122436725133880233678349252394346171447952923607676577540738660363800385621383405528477822761150272520018095998059437534227348315031869054588821433364236436121381848114557545731338212049150203217607040577657454402204935848823136792400507136459208387023483793463205868824799188292896169768558539013147175527200347123168000682688242051106783514476276852882889349475346962996556769106425510307824783582424860183741969507796128986981913436357140558976485745797041989835295414828274299371477098062169245647587100334665577436709943731019708812020697545056151837916016875464863218436343790227574958827927720990860611487754138589784404972484924066530811088222757768196706305063461629931909350607059803099577099753286567992267229572400262061661357876183126736995069830861567855109105323140507757786418068298618943932666989676752519095721759105999698694182804796812371622923907066720566530635841191361287323786300134910640721212430405560603709991342684312317341851942603714048228683634892699219919887802986788469389722180198596558330957514973169754756640378768482537309700094716490223879740786746997882589220252240756220825181126523610402955809267303029477934396360720324067650068002923105385086073275874179984350870282235805165354695011468422715646055275649498627473726213023522891299166628427823347044803519827246136533870639468604880688334650550268300894571322114952785131585203539182529150689079649562618834352793598688036801998225612029434749358933238683462092115481160160825784390849255614945496781541631674904014477621608354390498889406969931828224791934166779418921696708648980049847642006790202546481680657916501840235914325282341219763402667084911449855898018307602392809376755997471153661778695686020061981354186235798001407324438282033229451818046921322912640527087047424297210964707001263336434521871383812499908091084593348065432417264259802461172288473518438994661296370825765746112740976845198575460107181008845135323563922936418911078319146954318639848869847021189781889074892805823232967416271475341108964926180421474905802142164935474807179867897710652661264479796003442898437868011389285583197349695421830546217314586266426929088311603858109417791755091119785177876411618837817460383870516091493821263281948724596950787026064112834165999426944971194130874664458037957760105683548561424978076388309819653817994836978722056448804310316195357379661027538156255872330762812934816152340772489525208603418307650681051810165088866462967918157003646449225435869095650233106743791225389103379207985024356917313110345220962634618506097761114624447944225518305192371443470086786645245605409409701110411713466557640698227958796299137324052733801538012921237218895537981989655423392835763964664978240992192217925566021585358850749427765920600719017166223234765051179801829225482501631044347227873535421619988928082973069869248856948396889271000618601436154927376683223730806669155898826962617537024239988945122916552514439275386237037816708448402009388323293753132999772917258722488420822638978559452129102429456804049067822479136655541131615485370038040883631561326263729593293587817929229020824246683382969765805502850226786211334990882034439078916017553378814128718141681977917294835294499869430680519757531043252149122885555436099870546109206213415926230988541756909789805281257504916967061317752363145410896644080283553988502592576594697252883852697853358934288157441366397799076302609317287403720223060433975807265025241426569395378975978869871473109165846217376257484512036661846522331009265178513930320979047976153389907143454503845984191918004430297847761843927693105793104704925460283172446159491422737479462829807020765340686400687788644668068065315193500043735370079404630812702855149038403622870275566651904623628251596550146742335173251525250693274312609142979220163098609035501320843143321202458459371762430080776649038942225396997778439077677223382773148721105509426266591059358376340279338649457461237527109874720331178682111507762598160576754527691632033218970243044122109228952107123138945414852406676475390941179163162546532872466855185708633379090062512819382390009569392704158653393748859726051228950076526720875141659981623258301377235935288036833566569468648574546735523982046577394331824420145503739327369105651091156700061081208652550406654832752011096019913801801784071701152428786066610736447933997968830822936306358074037803602653478776489799979900297465238687375126908616783655465741757630822135213413558968309001138414343696901365777225747654914006092722045930078372185008067849337741141334737451440442548977075784975877257441460409599187356212288551144289721934573990013185042209932014801297389397832859170203004305909809184240268312314097160741436601991401767464137569164301432421350070528941515056137648196410484311672539012867133225888664277835416166311573389879203227901253416638835583585538403988649492337591696834768452827102189501493585285503802447533585878444549509936299869724145963002184867048439175119958720955351743404067737342243952479206977275961842832848225439496818276043490116091762010979710529805306169701513250729537501584784030182330549243915749579226717343616773788054989836019026322364726840411728599204475830297309295740343170508339760116208393811039358858766785767430690541357083496891120526394359945613833425471461040946415687907960318993472728951452377536391011721191000949788698278084129001563706151201026201072558149402838150155964531092509320521072547884397829246909849005106820616105065964024596225505725304114146019554052496700475858037568547897135553692283780477927465216004622562942052698724965662922407831479108742126894972033688743390833572656393781109865371390458026703967077930014255801981763457013403862891284834566919988768081654885146312622229911942867284603330669921987331999127384845416302669885326787484392426424071120346472293049878655965133243334892440983503164695658416676068782348645813222936861081646565261059075267716327027832062971167313963577299677353575346839965913846510954975355416507659163165995666388690024246107945286081891608595848354633391369785174788177176531594787096812175423853888246828458082977490897493366031918693309120463984132800003762754086732349406649923707083489480500391622531950627161693291085596401966871801649106347254557693694953502937027661305722154083713829180124462453739601849528729071571948188946970210037202390960164660656834501369267774346066830806087280281166750355563486252397847231456810432243373733133833895549199275637278810486871194529873954882684193985825664761493346227447261268721104426321781173133312887404359070104110745943320335701300012785186869745871225186531803766655712179084371024787187057650463340356743593574681263266419023385884310589319274070791497499728827707863552341829264701977741629053406034340771775385567199526837717946409187199308217656405038081525556532265726605926497829246944680321902473422414770186588363173450747512329029992624672643119712177456500867587812229330923112931057536580109719059428530206028651226990334421012635248043742508089836699134190353330126850062105524274099935168933817978972291999245782505376575502038608164958968643560522480554137329407676343613434196721565500278492973279600875816715170399325479866770106587718473993732169670478931552733806129675084714826935402586011885695237817146622076775246544894063559128461538755290566238826502854313135754158468636386655645629744542577607013628294929333218029004851956998020646777581022145199578812264558854997753821989432025245245697204935014496376341370813162706638173318204688886229898650290546151438090950918093528311560792078682635424075467595815259377241078838334309492204697415122600876792808738026973088749387487602316130277420629320733544027862089667423595345315498152787493891502707194042105166852937283938374574188463423431531569636468858231614923641374833586530122012480143738123513855824568308791392835611588239042040252360102004016110248940799895024053471552595573261031023381607829415976915794011334057106013145765892926965855950521522359187867244288899680258555908140798784902572179860825448835547529739618013572735475282233915301475440926286721318112562826882564153903858109222723203635519974666002215875722977101010647033650854795793633685018451238285743266457128388664974093867153701686552508290408722327168772420482569154936718480131586679943660084283695891423293000932692352882994528240681707419222209742103841902753528423029282747436806909817525215883738664524324985622602069304900045423175977950039114244030182262754922564347313136507395497235167501628771742064830462068591779352903219843633462812534542951302934759128808068142606170165492550750263097509833091038891028026947998467795300867410075760482567838106932042783687628735856545645983013555905814810767924331745240957393798720951738179626294999122169754679164619066617785233791007047241919355960329093162156110164249138358819074597283447925904145920381779117104250110547004973957581502979135310008312119486096101133094330223077397467049060023357232563707340463768915199117661827190166121859099456804689622576135402719654627797833707274170534773440772847672374666861494015197195120737274524606316956291227278848034697698598775251939443838918844669383649219028918889322415261377294289733644712426108568143766861113419943707713655163129856123960583117756851055951820517710378377510147070282562801283556839388772589589326049361939556606760387340624111947466226522762275341437711439506659774589051621184650338567506213550586744510403827291368864520302313140951739315310927895896702735241588090312803067306698267130610821334867080697988368377213477020419966049405060575365545438277536196157912640650496184521720433511346430004251773615017425829134608139800717059993512925377065458549397909602125941548851645029552554319875015737460546203965987804096438947248993569748934847461424498817945701644779289350275962123442872564814248884496422669753580975258309307984047789370256841887060979187782416278124070382685063703832355602711531491547341451673803977111660115239632229470867405923237743828036286700461748042038327651769942164415483120750781049564157825796569250654617393612552367680626151615296472967130124068026416239303829609343877001695162777701498990399057924214888204802230625467763687455445562685646780779449940313768103623166559070860344623187990856956738684368447995100115754432804741522897397405404518261064396599941659578937961500345743614325320115732597564047797112297945950882635311447503649041983169804363304333302281693994940697033907774858503540491542521595104972748647563083342927222558461672315891920047550899132603903072510296708133653742280822542842737725417602177555720096664078895533231068244232237489396587394601887451448984372668201921651992461301158323915496261242759220410555273371078536971202592945951028961332585283160032402127944057837308146645642316883571862534581312882490509902702910029154167875737246515509369539257750491756351005308866761356165750019592332342660385725094117312693051123920971810190706811628657286470106207494967705437180002284448391025887858461274984563529439041625616231065123934661026964254826448248490868563217337109942211329210424837394401002863905407945395561299445808417774329392186278954869914874622678475940365082085618581367307655192464534679889533490957475476200780161051398322759287873415188238462530223562278353112697597642054715412627056188095729137672620223945221243391123670567654120681593835898874210582361892589513197888960529056778563226403484256991681165980040599070049372750794016456807868590770773002943511883899799652588027528455351427559175049711887080482150697638949341048306663173734629896993550998859497968913784040353378458488186019752240815899645006307934494514008623854673755214623511150725041517356610005084462588625233583733959430397897556992453020219652309556831464145739048599179977961975784974260030624690697635508740215521239391125211965979880408384565189809110590799550837033657882567242018242519999606160019512939123350970173451197100909736284454898824569972650207335676212144326711398180785215182280707987969651083108848764755492228122120005389565535742545938806682094580853701733370999776695028741579258592487903703384099107925528360897843130386300002734301601042241324013847087054438399206755003365022635321677939408948106084078985318571093867428761380856684648256411065741713011291386557025107705624972119505286508149139695883452586456517906003412596302780375028407349782720175648411581842905197968409011814544855816761297465822247152023893598686432376758364305431184031871188621914231425862302647727654859246729109599114065677418863287174682707908047900886833732267577457012929144102553293700584590700074382576524686594585375946505130235088520769425546909598972778594322978673067308055226475574582545017038294794058900232612950381530647257028487654964680396909032408833435235694790162285564908690707047649467359045184335454562209917228071329964107365657717968585770940636178850175978726426471730756675158858827843742621082610162206022070302374894738451286053179698612412904018744260950327802996939271006509164476898581791376146912754367079246432843342717421970693656091401422322391341863313983439369765485011126686250442435040771169219579525815329468928187853549657925433163593025401361240268771619821873616351249938653219036374765456909254970676747763243958734970390196803791571252914647591653115841800483523131184757547329457682315555563401365563116448966873619742455869809031214366311695887692837245120994841852965610600402573110927323043448349051366322803299199493839081757293163866195337495275326621955872868751509699533321107178339161122403556952333714114819259772711976928354971637724786683584514254578078018218903764363446387450684860885495314101429931503854971145136289679275926280214146213224280607478196567616350932415080865441379152826822895961156270066025759844885914531667504493600222985994080521419943489363728803870125581325164580804233578641027714549815409662852198635144883392767391340949714340533151550542307114889375935959325598180253690535745231050151111627657004940193943878692095474535080816087040277917868460970934164604555855405359128799177699125900478663705887418814502258820949823805624469252268107762085348712046639069738438496560171946640218439344681592824105864576025372504686060813203387659156993273947219098469169512633892103791463462036618223142230635386647728931946471669963901668938449024870185367376736363494665195561145255354651509037785471513789530676649353045108613540922369974376568518010905357191769160295508895746236816281566562414360526898104108844763856171539193207668602815378069446477252274264069225610726414530788102345913850705267707301916549278461984679253253658970991402561950361774353397612679876366271461949597980644969994213604330737377781670751781893745199185690652095875278681665705945616622620021301781056601872697909135976532506142123329727969933989958782122252980653806206491518398971546293126793061442393477162995763671627339951669987697987535289033198013733020825046490284600213528810531216910346311164565248051329420094298672258472829852000724120358871539759892927796283907409169246802711189472499060160812376473633244071209609983310870474445435416721202248274803789343255846416091052970780175945117540319401959743078786885349977619409628784157512482421756445221547529826718741743386219655978778480312041030915453145478242567540577441394307165772292380809877619113348088814397881273578439131235494301235825372874905880593175865255884112155939897242090973973294057541654138896368952523495861015348167915535564479445331748187601514122898348983230922253131943048072130527051958712999760911521654028730342108868445925346761557211942885185165216118082215126778700014434757780389985545864865448901863348810745218574991188645421866375429839075306612951076649550792517923598746340665488329311921111865034337382953059305821609996460772892860498847765016283653748691070004931878037658959374681066439796735668615446857786677648077987293638430137207614601024539654824039056130520982258626803117758996943634522124900136685927502505465458029334280349963864587612483487862249933589799539479807783520578413210001128422033817983594811524837358597880066499571171085741741259780732464045060039296595476459222446844608546773732347816057312900058669857283282321206319781747507632126470215408931282455340673963131049807623778010979826473264905650048408970257968945995614779196833073527980751815615199773670132982824941812426966770664413853869229901206437692348706891795569641798074407808396745391233798827777184121103288176601524277588745254699154303362991294946222978397026039418063070630507646118562279827347982198283100519744481481563654432288042070178778816741549662130717876438032118325297986364066685391989750775155497112952172217977841905317616505501810014739326800472224093730176493881606286921736228089719704605463868683954912980574946754146983346483073099347501750134294313137450757434277303372952062146426769847999494037744267944320021600240646029042042924803801218787071755931312017207151410378675289451579895472245602894098234770988469588772406778447583482561281715560303618631529879982375084778143382534117412244678040136447274505943916427451756260454484364423938789240263527085292701971702139585233070373255286747704851245233338507303285098051659367581352893674199789311601649867583556281030726714461867860115290537351590991262352532849214879350978259402279220735291743471830684350646225295016707662538526955574308484313481605120436489486675517268581259129926262321525408445542732301464964871930887165143551819881262870439358421780471544278244658597146714398904320061967746541490836014506785625499164931197344841284363526006558680382774715190262010603203985148110149998695710056626490067258599887050559555114938402247220555845109349152768258918902377621127039754819266478707138118418840852370162776092688419291782851811698641395413957729971110497097973479765580331922871704397572266550785210235977810867693846108296413243392710217210993482137949928283638548534809449484781279900018278985770234785165222667186121654013226677247890522729648921248797911789732445699073566111041801726097335368083668985301236984168927762300609163530990836073424060274014234743096946739435589874318328122251683564972336483410905751356475198535704303379498335434575320654465043986337115142114404020792372606001050704310382751394436709926399975635893187396920295672762780248301222986079549177570198104913389529713295146239742844642472795694690615470564302989433549072912015778525188804948578519462715198953632863864236578622297845489240497516790209858392476547419559073975208248670664914576135707950243808139608079606851170780127884691761379496785839366164639578178050250401796394649309873065039108909472175384778972277358548554814353241188525121995647919054695808676404876484984051593644910733117492480482641154169486463261062453043776744824911628326366821858171737201625123819787276493722066515677537070631889791975588639829975073754225861541792208422738585900617663988005778957184513418071815894165664757866361721024314111099848921056346104304325736854630773498676452456063939905498690153383617254518345604135406938793798450619714987815431135170484725056736383412596989587927907966804070350456053764325283970382878712495537160738811297362358358848879603132286558063518905518055331569871716974676891890954769790121271795804403496482572169205622711708305076462179006996766741611692946741666153502179952316954821393706907495846150604852912051303900420793349963398883015336837649274032790572673420291744883429174882674016877787733221776571112727181582578947745589844851921386534917846419663796007639186364642704447793699212366906205695574563519653442263442328590892325069089664231650797074236727395392317219266592366349367244508979678468665131330723844216041925252789656668571472978055775190118282526950294960461003568508147762949272804004693264920483497220105680460743399625776105538220338015325058332148291162399671667505124175295002690112112547523788608512136950324442000313599474715929849047587277035044593012475841356719172353323960388796389050897331167239821288434404470402711200525408529227307498475761518217695141407829411144488372022021279943964663160703665822746084761126987025833309725606749630133751176100425702196468270179950834249725958091618847105917723065287919693962571216895377305337568776184119537237310344754957020603457897768189655325695007564220451405483108738451927113125169719145047755428220537202280910368873321458025125655698199022606394504094698153553432723505097646129150234422524131808886149353865422746838240626028544432249580504744210277934389708211334326025082029770106904914828033051935042141304750264720462002483083160964408552477669755856384109920272463626186014812264923160412201885986772375828969444721320929617136959175276150896443161427952132213853322385146859761312946484088902339958028981440589040297168930667830230532027150461686681857770099209455641687986465261575559760112589618359579999572957559111386660986128983205546274890253992405661413104049075967536443179752327469829544025074518255248622433984005884849460812367255735479106926574595823593507596459060864630006454456349837593363401522300202070687788349979817888325831097670611658624727655725767927735119245935167878410677532731104830048529568343608506178251246571725190048739063074142862096608226267107086807164891259531396032034404013584140056610449625398196350902023320925533414052305058422519159038457329527166971520854640273254326713676631939680802561648779794902439489065053706485797646296287631361171574386944700576021014601157401457599114993830906422337194402040068578772785176926671384072773318706024554346380409375702490080812159055308644037877811874923321876221453230965613228216907091675141536695267204773567920066836633385533725362188971553480804650888660846071609450664730318655218269639577135043105086148613555195560975095118935741345169897950117626872342688115383876346010407522488714100092817185637240162582480469176579899844791464816859228868931536105917905781082015107422861568624259665856183447500849982888653282921592040396776727523073518574697556234357827847203611303110586676146416167997548055331665582909104937978304597035815289168658370592151375721669933302093674175950909518894325791312023578814027985103338522967551296220586677778391472432008329873525449905566833504924566611394775400120158645031633481706386746379051931418058519998918566827953206692386635274311501870205979969057448325136849850117107210895155256391415808813971541346589306825283001612372063053160476706555140133160298394778221415601365676116766882330025542234206244016209120363440635339232208807343511613963776823214572637229689814704163588324756985063612484659087407893690731970947697004619491350794020368231807591255459146415275531448564290100636617396182661998835604782677862821787959717969604534101698419427122001100339118295930733102672470426779826195373636725332607382220073906203873642245715835866814822531490922973645674857489122846061929840808371249254165491861070877030158019097747062907319375626068492809211796168689783431541653947584183924447789480476299334082972854924792992828842550081068460160980881606460761692570532573153341219545441031320233718576814904460968687769146622297505916422061843788183072474968405530093675745460824314493041198578637540833440205976168089767373330068863531958022985844866728571103409011161989050579287894692625303541682666728298676258205613721656674490489498190970288881513700890444777181661707809085102930826878912558209945239802136688481074788720343060515481024770410884081839891276137064205146769716407962755585839106643145369058044536717199551182945064379298186402072027193934430570418306999776579267284797199396112329302980377324496303278683530888429984334757559505002054084651545889317603339974510145934079778592396218557263182757347504379626302480253282033413944449289527901731773005580441208316842715009939057697023947226147809826393328136366616827924719146007462355973467254767796890524959889561123854870348054748731848389316363587520227844211937273428540222286587129254120418130461315301576214234962619290277534720426574686678876723056524588411861379203190019643255037530676447443273410113180097166470877357696392813724123888970852472104198507003434054383709567928790020049221672617988570580509849497129469989564117410821243549506210658963193071633477844301014353688081189159281262067124936968338264593594728628360450006675231585095456111917642363910976073271810479463083979515627974965239300997840671058803229821623223395288268181415768174208285344581186007659750713292946407746617829614883916413860117222356053309077361517681212581910576273023380746102479359500748190205351951073056327800895459226296833398306435005824248846278730756731616607894153571661288808193953536024164050729167273885234404228558499534542659821361555947252648687345977674873947094188990803424969144697440950452637091721463815332658649491104289646146207354268910919470734341524837788523512136509160780620882821074673593976412625839667042196113847015816309096385035543994921431658649765494206264756048570238232472465901006797531137097990701336413694561480724352706693287518327985631776097906430134418686105607182567942862513646775836684616567213005428176239140241447902601359359273379907250563001550974681306270049799069247682410869137230019020451795770769022486159352492600509616315165106484692990864450749390419499132664557304555405084402259523243894500664427023931757003870113169022812360720142721836357613806343587916760222369387700891056933668994025262023379662130878126564763459667304912026809752124165121024378678614891845803074882987359193013692165551973146235563059451192046976201875547413465943177742385125696172197641144154224527824640784865597411943241139746313196388268837489234166565322296642310065922846918465926950847607554278234025287950095965782793468736369589078290878790541135253264282405439019824232126239123259445587780500338621473638467775162962064430383471518252162127683184667407654847804530597458533211444316584486476150403306322096500981595078377492627382525172222850821010444523132473451973662965113532768085423920975483145404638178673142924554548174128457195148958676790607792455994896434219703342334098308625886750551530302207830196554287947914377267272948325005239551087100899508529966013421814257953835683987716422548644170838695537285065647428878362104083407083587544906798214133753440771698861994123148238483918076742502207823201316870177102818838916090355926597111999410121511023238578826534619686619270465722981624477816610016131476170254750517999480369010523422301757025960946846336654774166077195382600958655786599211281490098279230822306409962990018840235194846038401063673247123673990365646209176340672435156804986262941233682364567773690979761550244427015350810023364342735701751349287924922108346168318607528392035468131872069585015802871297718024628031201802510473692747015073832315753437304407759655598761464427050223596733816851413758960138812551715368110573016762953633265479682367841251884429023502949443296550584564976233411988418229111458220666336810693082103258047942266538447975981237536924289246705944852799118745780573762744285373207441066767310849457355275529615594773509706891767182588304240632375834829536128604871720007653809506237860172878776403773590940658745001766894579140855169927384383154404829024120262140119915632525661946899683922168178379400834928147480328988799401885587975503874514472204503469591561881269942674079346564686739560658163113783237825533093278508946182538039779583817131181274514585230931164076948242750753940931371511823790235858410671469387055860453602752793769685718595789593401839308558672364470648816050742006938399516429109097469196521478313419068829500832675647100422256924211133793479682395881375842190539560832777005529828706160510536221147455416896802122625650462802059805296163826075948649753311461999200937814234000471422314220722166992482074439370369989695338948151937566781009278737267005738591947290674526916878092250562772935907179846004383207755499059793191597864507019110480703621623296590215763968394609612019112146855907270170082452691557079878791077764592134532295845104833789043914636647932285997714569655465800025658295602305983995085081691945001921389872778499953117031972139742097212920763738556431968487006682349079552965372009004569905858899915514323226402937354577418068441789859111829826103693618584103440884329419508271700319814810277791144471641701356924099657705897284401285436664354601585452832244661244415257270303978253400809853268692570829241070032449734395484378350023092048437762421311668500688744522590865866161020432838260116285705308023846746312339963755901136777555922702697983317927849123003435770382412009228193979345446898289408570986256609551675937157783346058675519869936282902013224038721651924759971587586216428322288557950125414669550350208548680493254573690176667435283456738040065209742318747549710293681345441503316486062403412273467707763952116920595029944465388955062697847505416247606148978906410052779614371257184482428784139522228262291182782323044352669631754441253428571595884015730036556588583836662531978461742185796912949162409250225954442969096054152446037310018328183196648800479823968509352477962362398810683395782617327321488307675061874442072238138166619839604129348959436774731843181717052306530619504574016573533560805508751436972767752303014206579052325729336336313954310960898827762913484947773282885126885177300465194789562782527695509228721783193794048384728373609099700219480992122345912551124763658841499775928999185986188621703876876016415004996465280634370653409601916160791933553004321970552068190405547026542534580130623747426716340440079117007487814172783168081295495077460109912031107408805433593676972452607381955625739257184835927679189061203622358305890889285209225911720760037129251841219814211274560638363347075773713701842517362019591129913402560696736460085034670942165740256854697525249703059347247643430996933967776570979271263221330942891031422388029237698625825355553409199446884238794177443944158458491124930260696715793803341189513757713640091743498408247428882744779745658306919008305067084791266838747126197638913736250545225552007802541293651990754947564968025725700142834980812086862399873371849688743984746310957703432595632598917850516611291339416973609882782610137521198764959831402503257758301817684882856433669955858887426408654493293864538099771713885035843512170164177712181882622295990421894337101693012286610160975267458337778399735427813295512404612546145523372144710239845118164228906229837377346199715271943106414271457069024057233523672143613772566535216246894531314110685804687653092081113987575021100888664312896258720646534835244374309066549852228149091969795292304558166796488763999470066128068701231252453269354413657708424202929665100682591630356311987213074231254619878637629351647957314562991819908551963983658282993584531639532660545497607670684829060705657797463660098515522038868476355106414156253784144238132651611523687817337433373018703465818327267417515998341473359298161537858693891791876852284407034870157255285468859453264480404113866035571833870973559634515589115068629098625714828986092894983203880585514763763532045481787104361008470744092498307732471169107942304011871736081939879058833193924492562644267100653621849138042690467665973035901963796987878467197762899143228111433822578415904096525581508847198971703231291474956734027029540638478252807808995694768758175773239710942295774024878668759843703023015510358120358552577361538229487746193341616637692363469898960343801465332894028066543037516280913858784031456225839151574557372072119940485601884618244046208267985581549519695467880540155991259629656978968774315439391131765319884613650661215674906197683951261703395425993527280740405538245625933427983420778722437732506168660795921919296987018390111230163504141189421573435361419239664292246574691423484818423581374647065947828661515622889041032244960493950241910597449527846068741505403182882552275482736724792739086147961622931568484473416287275506637886243498201313677829101218847358229845779052232983062666152890685604988627608690443507611960940317124985711192764043941779928697188751529369830328574548474408124744706760474967036672980735715507082286002267627776986136196762756604105159327991967628357158022297208232184375016014764690055826391208054577095875633773395069634534768881361176631871800369786672639212506283974059327736322560029065057305815812644925308166710551649231545215689891877819851853520295486051517356978961927870857274549519741409255641550967305940146528797047950016360926032922177296758864791439989877777177462851850647884373245256358273321815357908620430366622115719363421351552937856931091070866998562296350253101775167594580449942919956263279216271915326159285217359594251882993207470126440209228418594616716548148983707634052567294542841311534111916516008128879751174632155224716321472688826570302629947411874186111294638350418068899434742945510015233996733353254203267138331140688476727571266814546807966035500941444225146952215177137969611264665270380542879641674377482776583512600588642573469547872416933678094973544381566282680179935565280645438833499209886669624769565690693301617764508651840834408049105193729671023333961859850800564359570670426734625041864464266882396287175300719507255924090958674493044598611423342585711243986816596927379499953847159413213059699573236952153995570709854129377499745876673991192340216447242211115669724594331204741728387424451105178584688321867549791091256020121233828033829772596355021288979049187285745051147240019204621595561711039545410221525305507833752199147488843347052204371635358511643748878736034496613248122595298844487632260446827457683361115036952679121288243177437183342016763279948312276691440369707716074678255258775047964723275373195545161741516861284968335706705651083587619040494246784809363407413014593601917932958763806840152785311412217637495016787576391571509821762885988244078452948638094025371063398622776328522003885224724685406487953758683207566671133296587897472396919577771433732636079559745846302441865831054571209878082919452100250011478114927672687097775047456693127846537134834503532649628125573372924165011860268319581952966998318949580004512678108409916903990722439747687896032486909215773820919103666040509881227343659909045257418886467661287365226643938143829616972119776396696279370330850705062012001788041118685223617682565843677709375085702079775374291544543381432564663497701595916661243124678082385934918886982107764686262196068249283444814483064859416268240033075801182259386415327479103966976139217396103803874544520767171399781328824499809756848207295336003826859495358536219271613210399147293902009803313608180934762188340768737644053034765573553751844093555230675131429814756419969975113368811739731322335314517765244599153775592841413763722890131168404133252526115666056602344124195613586500297790928326452701899882781413049204255088831148361796374407656355220096792645375505665724111705394117435536106867902702756877132214861494141205434972052120058038464576321139191509539669365737216008957384243150749879449225681858835783447638227576114264706990218894453681646179403170777213821401513226682121891107359226024855210661444474519376418323462548671672627205105223707305568585467430868212692051989918926985683932573661742304030004377916863985911233252403083250628771239734618071704962458113889414997494781431732313857605075467314781904014265218151536009474205768916815021527446934477713294665786059880891316362803922600124941083485705736340289708452691681742096064494930348035933505751957351980088848719972635479339478607218087747513229130065641614622465104396293760050134762023847331614736164154306995854970051222555292846695475546447654875118713292718108764245673385089139260021130254794002869288005752982923780196015360894394980334392598503511640153592598735106405224257142331433691918857192723619766332775757262967771838500064411349364793553401473251560504026740084934898530169029144137308696724402631097726048888242168885544125464721820179286649212365652604252435145378052559573723595378914659776430403965507642636756206430653068410792175402646230372862174337095920704028272242259672216805303308725118707633583050365340353838885411608331647905658817420220586510347469570019415659330790175440489509466120714747058628512540239662305913054776458779919722249024740102072956501774233751576120176318774692724340290453225801447540502009378263860696377401184155586389194327489337510689425483778963583713226939722738791381889917987639129793932509753335363536531884817165147134040378077584037785364141008374377689505928414694678554603096999212100099163006737455384119268549345481996150942640651101368029712483022433193608272859254994414042369674870047938789299735277833813903658451404221348888859045413336755125071493871385044064961129027062329304687295097077193265904405514508681936401549337709542936097485820249887291576806660723587072207511216371102277242693646909964790233663190174805012429066558155898944454027779803328025953800473835084805670819718310228407762088150552623622957793127287663303533075806062687689091006888133280415357726688170843992181155775205915285295473491360814429041225183869694657937040546079640112835293385262507193303608249531063395872631511734521767000546075672460154000106516471784563238741254027062638983631283687019718296300505243088970291427385316774261096589828381425181761890046912763548230356921202022709644090665928603151612890778481594319571222187042627978407625492151208162520106163206575836229157650899120310116785515709736595276037667856750459838199197910805506533911625331419540445541753288604103962417240805545850747859758807683879820646705778526895398777285647075488818263133062434398825857198095720762576696294592414236561709021809433009278021034650743995024241131485080307067520631379790017889949391163601229373491713709884395772772301683905170171454797589562549345126505863618840135069305768579519583040324196391353707263548353201123461715353080211298150480340389772493829444269824060396978391357367990693388478646078471398899457425759479640979794425400180565279154671980109752128154560777529188130525981983414245080084200321492659728115561054505189867774091224245584963025524692995805178860990854451096510345636001226437215621455121233045083240232913655418318736972833707770329022116815331995926254057728023894277286142126543895890158967409269229829609803879590508949479057599013620656091016491819826152114497407538559962495537434255045186520961958463170568826948652100653344872288980300060272058198712391308998009455722717455097466074828191485620918372637816062300545014481971532462555998142030738445330802488658132335995240579406662146006680741829202690425325635617471878592031370068158497073929157057767581562945708527780768148775766636682628118456609253912671264386241067963129064828858488626630809237415003007822670304003137985564916049274616727136384190998936963233164635909238920762846189678872199928629949596571608883408511048536442401332859665657410176035357070427684197405429528240597863031907192378007757936904138336731702014586104764469913556602857498147763163359664332567897299333434374851187542228107999810075034428975321779937417053182306690449850308209624548768036141067005681164850961201222184079395037388427165372844469276876167485126041931856578082546216372347419862393079942563436009438929481951534738083543414899214859031735170051261240198268663613350153301073023480470666588291850168101816996709296105842582539342391682172577990549036482481823995916955767228317125618878543255715011653691937299084128707727812877220052919981534915982742934592102419790852037164808011552772036993486791058811056655036920289881820090330757245564247602927122833060238066946657122764761689395866392013309929255496604847057637817380328720621134328835962682626234035840630571965249127493591551639983057769033543223796304797060930115582613907061868939809624703328061425947658969175186552672673543821132356089822134731073156708118153105109219372671159254208849344512991629960070725067252826939099848765964004205640154842325607455948031590765243212912916771083397984719929518348504627304076772959874568092136127612234924224017553430088591975856384470041217759785433896142238781649520535397503207810736954370560820968569153679269110588528397165514586585185800773673178284923951103367316228913707725558718893982423826324234578320273688745116751394295654224742462017606526326373998653128110314164858359381920646066951496413993123778307914179457316369396133592527136865641074944591303664269934604851032318438459523867569844894608246372835957171043324771173098711963318914428493915600738103239619384924988879738460686686833113349496929738794280024307310815143083448967955231185128684799383966131266892253930050096480048970493077304090090998397883775750283766939895771427228797421255889196278508314416504770361806423822472926684525889565774940831649382238853704645696088057703064531078623488312182943919323492968465585647523155027959893891340973354086007505942725405232980765871554735268774937988062564664841291035013282807588452611880824577305945787536242396358127545205317028733306754793481751560193414046925806227737174533812345961767616843183066794017225675404434449644384769960741621251824410771476418996302301369009755250250126484192764000319817997936721066538105080939035757592882027566853991709083481415313566271199066862001476082902043786956074150559098064469555885669707151497444303211620632541138102552706863531649386384973514140295935600208505053106655503040246457703730602257747631878795872876160459711305678437837866992928689508566581897406202340854737438854990422014717034485630006573458551977350887097714256660824791599032422608133615604936373235384483151484140777669599149295800450398126488029529791654926231210468967934116287643084562318567719942988075717134795838276566246202426863315851753387934893628508594661391895942315077941255686856643151876076993251251313463054840923672885821124957004382221714842767902658436309953789826621414089938791582804044599655218469520921504702553160133104356516236517452383690914233042356782150903501990868470560110539081576525289215976602429775896751514636544684291309404717739186889880596951194575106857199207034608038378199005173228571097876802935809415154687110471190417573977866205650770980678646910824462010176339004221466684842916364886882620028825480787378979054924674741664258370826523870509094715518475173300596656343338305908524904894774284132452890573266082750088841484581690419433020498079371178501907402954949648811604755377832470233752661986192363590530874643421128161459641748056107594571698807636409186783447017089941543231037427636144112430168261162247064453952815214962552638762942866975424185675012342578808918643468382793795768177250564224111326873644411741505325713707419422107610243388833881372948896002145902010141810314445928001243396549787229589820577460545215927397461109537763185973844126976246911927755772544289323623137963288789956703672218025593545852837084311343898558745702224359740423134134356550435044562872118286815706905581665486693281831239885565861047098153160582746530282425320987944167408138699336910404984846686680953161403574901203779593774616291259518901477941713837233991622713002510222817776586064135217054879115369352906267465035022357829942252739663656586680983191755765761853574624024201590057953502099435929179354131110852001129259991757328154811487524967917707863912870588770384103172554561986123132211713246445454279572829788426956500182197724690546912869365732478987365532911116823364957991833471467193988433528487680522926022556649393915771440133312495769701096827304051773892734622660552406437965453319821954042413764704385250241361561032115337813080519421201292272994646684028297273987544404836242679601734249234282545126051072486197853822632022768331825686741704582850086806187026835144912369212972224013717666788475199031651620230974248136912733382860430233462864122272454034188981283064824546701548423566680656417980716558139158978199962882411080555583821204675754033065824649424449822185810088404431535941288018239155622332663260616763116091863534626856442818288253133413771174080753410731008490778064880228768832209959086589228200000988929741050186116137865636579381156255436059507341945580056678642711711143490417246280538032326631997740913104152433621408981621679721145047849836235313169289862289872707562475287865207737961024464217175709443813107163348767647949072502386381331553436818345890778950355540263595944793563179155960372586495774077032807765152488773039736663491691030643336360466761851154409729750624753778638377171006263182203772441938147511535593555614922960805328191413868761884422865110211197566379252929182647052073994631169926791078531211786271931695909741780179664145102725891258634816660835698759269863040626162979499481985424891572479766399972606638805359861226052008486673977140790569352148096070838923186098489231947026712608199042545217435108645346802886788452443291448858388870343753465886036172795550589559106681625779084349448213025485459300350933802387540257072975332561885031802897378885952808557137642096560750727294835716202604001490350207895823317111647317258264725099549733017363354858452223615817051740216474726990805952258656135447117239798859726973380195399520482209843400612615918488641785819595738640918151843063620677761490215748402671635758047473410468575489346967860196761619333991417373207705618193749755916644730606059120997512420873187880585597685540947016536348954329563642344719171525136024826290352864035296897851884381734358721710275002038214962475303556555230572294602121329587026867016218445531998797817251868388187459245083642814746994224544548559046908138572963618633165897271710840886395883076993078256209409832524849472294356299009296013737646146054328340346253728728802647394826892538269451081822011731722024798735398276409885476716988691670597722975563951407771530943470494795542830102009255882919939648685767422241735182220138809720023426309269757469175216483418980222905524680248762402556343983688941230769620396960696978847859701767754739108680313616941741794347945271642650622373723422013570233979368460374049909411734347149590911607695730471992766610346570198328916777110886207355161260366694865213484696138796837596159952426216847790988671013478486701441664894892144781983677847634481577945901186063831404206886307876250284011657457134639051464132604385507865006379677115057317458615527076444726491078868629046774394808406051691725553697511507487319750997935905012710510544771178934221646727014375088754497569237797549317358796321432971251169041328426995484710864068820128354099414043827172445681960802859532242534427728808403540486404986749406748432499081081472008718962207326313678961635672181304353557121540528551966703419142417127870868433243764022139490631940726688156644292080738586137714035350332991985618536416092750936941298284668775912192770821604432647192783290693876835951007747028160959434004636170099177755079062266309325267796722281808885018389367717031521149471075256526380234448953229774094486297153709471334689387543244080421378368227259035133278235574763687876156142342751915901066796852145981865034197937367981949430497699284676094390796393490687453645698982608019085827216913484231779502234708617075253910521160980248133063901105103408728686238552034237502497014985818423158956600681770125448965665153109585074492955824600612686101199223399120890490935876030626456648060432486724095148443902701955617733845133350500849876719055875115328058080160998750225279171570347192459822931637095174736751805038827689509302998195103594854791683276491703988223323368591812646077123972704502717951775060552737771838971879299354571298832109960442903913270062995584636098544505918301217946722651989769291018251669909767555095255501946665794678110222137737516472693344538383856988221501033252810722346856447906591717171092891535295730127414102450224517941963303445618342569877638011280514068765168990500694233741905602398899389063454860934734910695358545125592203084902770882630225507418222609026987585981287476283873864803005238961211001192760769697058763378208980517926564078793224969480475202357667484397499155535779974880687648856385139565841873215096643388591505852268817783940041106771301732398400667777526190197281052648587682136912374576585748908835802950058507217508698700210283069854031178583705180824363956768695217780774775569705145576292611527154349587276242938134218757717832810939547646140246230419705100579900189060694711633890648387281533733363821961178768700734630401221539662842157694144649681345332853124642904767446315861106623760451940436317490417744459286102856440499676333021706073725010849556850135748244606953809492283293069884937400501864064036914255126363531473926888742365250813374916863293267226157365824409197023584254709377704157993198692085781618145132603414638458789063969897190914081162278695321609866429610666407399119464284997981517895961015327342588249689182236999262931529939254734691373296854596957468762120540462605649308575436804931097563639302524904308490142502322994366703184298436875168647566405807024761306890769100440520708302451146399277626453496827610425762176877373104467402582493398335423901570917496286097128219961881822084518322251221620158753114974065507416371814002756757076751731690598119001803259020844479163034734088264965205054990607453265461285328420288444110630880513293073038211769787682626755040228297685227366680891373710810271341398573126487531387747787154807285700297273604964820808330355542963692921428629225713672900341261156853235311088069945419829744514985353830968500161378855132549245126898569989797172162235640537512385532878765784651394678647456908806115686443087880474491590350376284121017044906223178305190034920950571608719913835393965644429769683971205120049313293882128832275006075011836076066279804457747090378870930775422489496356273797590504908280841787628182601173973230278298596431826976242557158927775937846937279750984919794977222092991535341026050891418775938642124911525565057275175746592713326411747128842349001438455751322825016381912284657624405528268483085049871505294062099695284663399946547179206767891518561069994312669816066438087887860026703410394298710715119323064833852622047522505432938239921426718434042068813568285435007713523608396933557180249976424192523179127002528226529458297963997605406615157875407681172220646318332642076482291304280340389945908414249676207156481503685351567865794604082716261072092313086458880773457133959469827999454283494193615527750002560961050088284762178573103716479444756028906633435586793049301820065198558647079228262843163572731098069075417812598418958008921010967316416528858098649846259675193163955069383966724888391354825209519562617977764576500076463633014207915661380298588981764842880642663895991497434634247292190520259247636721747399931217318296117593754072312827058064994598334664040976763511816235063987266592685210772382138726455013088574911298671874455704966608558735882188631068803121212435804690932600809648299989951455256822113222914890969490368035734464049528305715916503900759540118702348198857720486939183614335326822310586836406454550229802224662598931054264322686860708065090383795625305609222702677124377996129177872617896923460824884113214409481210203656527640229355423764016088640565815260145636944487868766023297946911502099050762923224265070553712846676328450827377989989471088914756191175351286634600727994447286425990782909644611696215218122215437952297340955540151041110369840804464534235382886708793471803800869772673297877371054770730536458555549695389297341316886733637446161660691360196611347403653520684851593452039792236394991153172108897486357724502438540581002610736890669054505705964558127033699875684587999213907278103742974505140293987966099181167034282462735392311786017010449639347987805310556780118157922202679792486727505891875261137437708477393963128434563013473634676777177990032734684413536625291395914015100741330712801326813987333366008740869872582332472559032130731688727884175521597153258609162862832118637199350454353506691749602911139244133996946626851030617397095597499717641711657063393661914759458798922529312219954234091849339479152152300121992775406396758871088217038720425757919165114331789985902467405863765975207425277617354092237498491551290265689733786320609772328224296069417598566260880273483964262043560571027547559231019165401961507200928974923822741134633687175618299075569582775265233936997617478205861860820842623204071719520901178395600054630055659455282080300947123685509590233758420142194956938687158099234023605172228671027334930354841863823972753045752891479111597663255101632995698822561408776516600079524795144520471575544862741296678602043150185239595143455589566542418840515548240370673985896354386869809408570743358707130218168218767740825303136150566847429312246335532511042339238053433587279866129720485675394356400848593526134256709715814689853061311148850056662607636980749146335483580707570227355268539054349114131114299495286668460567362602331649972849744968444417908610266726178343385203369251050985330927402217275537599176385588579091953191816537731520233919650053192564297272820101522786088414913156414186998751403827636120787086367453915797157438707884058993315827671422699269785224813886542065497873197254387680820845046612552142969026188068506864194389084512402033815332476638223879447313527563014464885798070915115036780976696286776630488797944521712248280308460835428092347233809025698867594211486063774428450740997959104203173967664610856997648943983600668142969576406236620646807326786932061970314134954675046355295317555690508623328354133825657640909968579974211527525025390267278139031145430019817678967552060655306426450692166248160707585793409222249365689428852310623144400076309677594153195287936552994590926425527050999118603397385478859525236036090739157234741700881316569602681340412471236005304030981328406887276570323622326963334152254795788554552733024040322262918515777234590714739396977412192813208325514633976146206903119197975532084635188922588231163602248428442107423123764794562577355461817235585802729589440589287462929472160974628533767483643878574538514673455221992739635709752005580465492175094045008939944526857559896874852701073171082877145538193798365763920368738372490852296973004431503786314300362433854944955036554463911254496401394458101777993740980375234204843857239224323115839369665575755430395132216548768969049902242819561343801066124741126663920115408108334365452266324165295283382567064331008421779683501331152428747255227622338245697335942526429498734675924178848392152969284931618005746947901697694168606634045661100404423850097417096014274729154925029914247442409683444927690740199440001702082168919726427236403624331205484076780191017642954640100750939626684057716013249682386150613611437691859505234020543446504516631568969548755831818866571862587095638298243238658577628820460920831607864855928177875868318714721877076841834651553207305142849862735795532416851123932168746757618477139767293154285693857989475590172816953486408995342819439743396791706503005485619460556303690655530962008036155923840524877727276448794689885450978835096800226107055665408875104812637530592932296887272446759682647761799656886462893336050262520118803774125039483240595141914445544043777610134918938000064067681424517848457977734280546362694384788493101667635652042753672592330994022698048383719597267212597627837826122767135218871154915931408437293635367135130935412430222087833369143463464754567140810107657097733460590752476238883384491866680353441912967947197919889133710864615811743531827304953358206070317924812482106686929715281541720009452893699366212996930429984248773653553350506712890083797604554113589753629863510792595345350675853637008683717494720923076956417900432341032140079247705137522658962520676064956137960793412574708098662017102841536509792702027359532115486967227460709299662589703832355830357999881057413465249641100588988501472923144744217532840468921972079011236491587328436216864345335875658193038783285576077279831682430151231509156057527647051061430444047844062073788558487362115034778754836868992595540593903768439006155988659059350221151224184185300381984705799325881942102795501660328428504360408724608266247865370638774256671195214061027996725637148097898748936052719343453124459491506816969272888267062340831396962638801036284950900383833743056085127397560263102827999679578882400080145343982158752051098728385700259161857898715474859283614983675795707958412936995696648295688601759840510803983542863002702259416339236458188643504299487362931743843866994704540811944322372059660789733131430179050499767981770518017847278803930052116172057860449238766938814727760973029638891422299017972286901690207719097657603290813480637828520801436674681886251356835280642433704464774881721730910804654063109006862426711172626174480057579057773154979212396294318376016272545789070701830878553943576589449374356627804492809366949707698416205502305713571863022351552144838583010725304713639664101602463088322997020568756380448634785451202901777314801773869748754925478968685008488789732669260832492678808431455423240901143153949982944185597508468612841687047719187713879363831668921452741892270335548702093924392842993080303549214666417428083636697764945844275976902310853538424878547207931649182503667208781964453430802597302304891479309007038307299148807412335401064088637948333980920431347268924214358171213921109461945678925018094766691593796996808150091753066336096807732323714185625150299506926183220468845881983476519266951995322011629482752804439665457301754790868186280933421447029304336342017540008494016549595584908285155610719737147741136794706693355377678138721791293437613302026368020245209319447031944658848547975325467842930426271495383303378026416199872635529889416507690803194646118667590841600799513825708693455008679806579862892720693128890518514020426079782231708760016856787223681809126387851105889015295146492095413713023365567067476371141086422047332513771667823991981319581453446351404401384880421790380301089064011495587295518830648718241243929640409554649544990765977398099862048830311503708256528590739513850454550581941205979962213849610605556523714410757160806449989999173663573024393245494739490526985264724685832588845666430107756478587480074926081674038026337368660544615653874729556948393463832140386586487966536387405841184963192806368919574267530196623090531519516417538515065240736655048715882504083456449041254289285246649377137969212467163626123596288737620432118310552368114768775958116914321373521039542105555511431052370399154790405045984906158880053039916388006379082130665623588907426115098728671505148414237669467107950567965034773106418315178016212277441036556100736144110595226810072244484350616595855159708204816776850081186160713951087532046364670380049439583880417017185368765918149838257951632442671335095814447525418536872705263273166477429348379897703164748318984188508442955609453860843536125931735291558180734048695359910616988270976151708045477695292544244296886197376715526843224154242612067267055876948038389056985810743622059643210022598999805059698473860587233030657177324918635207659597047718604034058275585483660910492958090934734018555798882472443781896160164952595730883012871152966750129115301034654912185760098157694396086593246396533078558233697782688863813242309153716420097001213338364265812867641246383225363559650849706061659931572159150183845428806544413009377447147667087575741103193823933782700683847211027833699852916914341562471715143542471608829089880214008523773969434950549463422600685544639928240074368426728151597431675646584490748725911567049529547287423422815208466549339896572414281889338605481466192963470891323015406391769008768971970533898348024087185543263125263896304094565904599004562038413885071403074312723579654285882789258357606604746559029644381289936321892782129939482756083820038693554737349610450337337746622019500572352657444633176259284161947744823954352413753920681410083514196651859890837631189939199192971695301148140675864058502173366444329057695441100292356072902191223135737668441303279115250580478675499325760942236764495755509279646077819045055353853796250718487455494812699224549192080060380058704247944443485674052962245952539770093938086817084879784487177786783915492722359313137379859390697241397998172832775667583608038672859021752514325850912372268816495565807468637696912658609879117107881386995772017612111532645751929806786689673257632468211271807902155966423636129805958497734130867958514487290521615136470357779483748542904976803960485870315372432517302366310910377006303480741818377631697057393466752260606906099093466013626889310979554524345142660425367106045790955590780727950962219262030159118642006682118324121985674260297660985608343213427291960204339080182580685592442511922086883816669572848594642313334257807710634889968265781998441987994451714486534781741659459472745511089932534876485787347576995262447907751480077904879481307522425874567859019850946836899621342134838060228605081861053196200045471613947812628484156677588628683312142005706732020950813211148846277705080453482369066880738167764401472076269205197583606674884450737853007175874839991259708866700124805107298742016140259373153822542036119145725243130650813269103315767619478687892153091054464044613282807103629735297301232601451670305827217943981348671223634825340678621167666550321344088436234879567780124526749444939273637796656768823855733315722007053947921673158346818859568124627941101031948653164776086455283189469691162902859843973515111033616506577176697433663279590608423875452355209016775689420445112418971910854856070195473307154946415088269937987086808490493652631355925115593157450075425895026187129233868223191624858274220587245297517824876777666885437783261631650206786893465370012780217877146262118308902468520073883161100516667732179778381742699785114187530015036234179274188338270480737785466563159118350376308241795907490592494968287900787851246128999226595383745563366963264908759148563118144070614989551746148171098037511044665349696565661568926374243467932851191232816977369070284293112299958120726199200482951301189597391770235940693463765986375231639332578577507183675343830852183933241974529177667257093847419564464882830796752694209988523734329362343698916320262563923154208097074879335843670610929402605907216009437666425753880333332667164181086337824694910308548402658484289969856901468411622274022157589085179796786485967276539924600365740854200586435576000662726838085311639599122256155559423163304066995728400527478727093072620069505082570887205582534557506272199290243323099263295822020831610283718902118400018315151679598517286980342945269087546907319613312706596554374468428042334980050926119236061965751286722060623891083133191044055153632813006541157162630553768059415046337018746870008654811406338469880455920826976846690177948959004362480284908559640792921722272225422290777212667682045691351834309812183324536445317679987054278685181817768804168843512955927646134445416527188097888241196011753299871376788454982415943114908424480316827580273015154157360691170455341725643198821590592252737168943480816526365362133989239875380723081848432023537808286044327687502558523478178251771370947460047187154902496733834377142036790272365668050390749318972150510555224136271249957448717771881025851950337807390638726138635808926406040037645410688678631716697936442186993009493413816510752519289300340742371567106423614458428727650161136213169818776728201078760094233216565497954349434806189248316237769849279825514166613807163650393300293347763210902505698034659943643056392637798153185589210702370366693113539716577320067064360390954321621016993809830854660540184993536632595838124713258043236388483596452849445644063364340696138210233443593984253691639744498281634921056522202297899322610269560902521060449536293612554196953773182923667055080028941469601905730628668785643833419875592779382573587433666587397843009535712813199631891285574428212712870403590627020783208685181893712290098497079327918655422997425379277350625199263999685273849855865322773874462390989313763330320352506106276909117571407336612147342518796998076907952534455845040739887251428230331554835152727757338090331329129385670495847080704820753598568591099041713324457752002987773259499175210208725639191326448788094753992451191555267426326749575844254260635572277968811422621475765609177137934737301413927521034780675487786894102252780561590831710966495410572561114686088656620477281328420089467531966868166638431365042116169665199625904511175251644250641568033813259389990957285056196648710455713639223776617542338827399848586942240051036576202679692477127574042921676953651957723022464788910083578983291534154191727220229621405203998283275843984683399133058624610594012831604004180409543781450948682203001736785549915972882379473013757793288677921940104652381444815090009366934141972922269784702197619282368698405893072329728988349993977182291521585938522007609526930512880817504601896597302130689710097024926678403110047405733754257566562573525542562820905788367332250736826697270496792986037996229346284241666497473757428477641857923307587393675337843949566660896985684914137432477689056807966498712144572934201013831988672362077672529948470377317543505967645054155251440006694961735433853983671310430513546071322328194286795526415152241052099987179245005834023185474495276299057069571441061859835002886078572003090045205494915030215444346979110530642831835388457127936279913324221854118823234997438075488922756723246281470900327450302903502732708666603414744081757566081746735713258978261071395187765125114439270063687030765806949955561224229548613455147252193198879519627728840101133307644492796629214418850263452801647599569892852882108737084984577592434588277229344484930401863713729613520989541258795960500371679248531328883146260080308247655801482590593176022195678084174315121502628315305940086900354030510958875338377527244012338986593458652519524192160476755781052327756341949037081344228806455779467771064291809570756324688137519969010514863377802887285099483447844674624434648520479702595978249270172782632081239900193913045023941777492277206772976662328432830920071037963864621860984585979708690859425764086735052702746080586508404111235130347200190112490235740530902120505188535739539709685371854594892517590134476433862428140629655516794617780166820112505069223841228282795311255780129762682009646565648900023320702943767053322020680281708547191353227510266802725733288561252446231242739667142083295759575811753346798795313584887652812797915565763292479917657296392988004960302221643184246142723709999918408207870750157183472169377348847012034446192701121744163350534382030796747622980639007331417249019841459358977417953108597967719070871695417098139448456406760361431453631486931906994037150246116691474211910989635276875547168587600682845351660955690954415931177096093076172098380723333756244379274077388547269097386480795680536595623785736712851119577767624292052241867590047908391777547850786344937657841197136314026569152599539313656465388700940312939042832262344602561442699798468876566617228319793482170970859464622289319107554247368573737265080269082193362408445558972309799563950454300468622190919786161977301701576165926197316951998811140597842505476419392141187720732265248160235976670110232958075141257001781199990515565590879579435859016021766651116197790637361472793074548744580890782035388695951153300928477486762753423923012873267986668330491306563554651447571745016890030858761519066802043099218619463968905881735378398676285039480448167837724998775285878525634816331373399163611433006158342538143885119585097627330641654373721471173223361237395243650658924030940914594207350758304950221389239460400040211822267035837350381284314283180375258185810980741420424494296829134704081061497167671424110658605397331830465934036317351210562304296363263189118257749284896855794757641786865857635212263637250797997845938258058433684927177225611978833892931425622413384418075426086663440444563910494023178561911755307171110256414337327995238966874343667495083866972013578224833888317423903220050835798516507843290490760499109860008591846122906771281685933990397068853446980919513095385685384422674395798403793647815482868646172386751574242426912193663072966828467971902471517395513588728245313001422628606874585072976790003195333866156125698376500961737919115841093662262634061916014310512479808260085062022614060343696480467621119802626019948846683190426621546768905850467628107198187646139443409246532611946760013698722957857307786698047225864981114885998734997947073376780069596967496717114291528090027553961049216628111431071649496926415795526480677214389595384812829578327576873265456796259086519371156084974273286160674366313358411344659386731328223322288528692827113910832036800867056067297629957557022767873228966173767871106972471966451220191325226131171574121282564058976117946518073912633082516889020661421434368032315561433828879358221603373783964196743611712651734143493914015502338521590653223387160014792010899663852157419893107619719212264664437085102810364474013348214378671826950357309575972317088002602312633174783840589795450547431872629103091386848386441663334691907764832471703334622082086245893383755965039172222715346275205273161033165309297939289204821472744426521823948156215735486557956010947704462031864447390659148586765966295494271988189813017341331559428759214686954002115105984756756586403955322422579040406362037490235503674367894914432321162076230340274935817949619007718266670440602796030853572825522198940815609225207638774718252429566132885217102335210786106098024581898226773246538890724485280578382887202841263406039525131445680286254557619935441395730886128273976744379266926948829893450177739096324429239169544427515494659012276657031128109434699135894022295073878702441000695911615253812826552961245791358589353182280981251469004932394278080343219002463209743810754366849598593927189438666899826146602680811809739096998891850339326747437081574934810017101195412386521337953837482422487712598361997558625777012458112545342895969375358860316980594417446242845779041282797973534403239959963165138342205524187419553374428103350061655939554841242716138547991316854515647569336061948576917052751190104407873761682264392334641415973955087085330558791712313115830289416656078551843660375730929996430824946513460489923237163946382373196980185068990190337089433988759629576299169119749978704651003219617876338874372911623364365269537725080059147614579401802308552769519668011190084066289323831501199443805881284423044384579022513616699545451375113775873627017993409925380626341782415484617072876119010888934188047915408099696384266480211063593262449714684382069019474452486976544115009397879699731104855804887966264067220947991216698181891196502215485268262435950395055124311237698131783739841278912579686728282033308774185910396591713102555524035661601669427182189797315266598222110877898898867937620766145793950094331833548571742613732417892051709949675174463275310513312260357904752680270045246874981808568494446404838370733165516332538183643228882597624884769663502092456535566394297588199023525534790421714145026737630238718354240836760658145582813410429661861063663267232090355170409449405658457262151937518374479424578423678926410421663871289902484721375203240317507656268578643099033157930011142840638421459722623325592912300846975910163796451546966255083213394927672235974422121094568564127595519307920504057285958160932767839724586612349960411345423664438757058863527109325482288667985855842764079312945132248566020402408745853081548941340829402057985988590542166518466091418185599252306965042286103932439810291855415067888970694053390621256630567563769063935154267729641781047527549298694636339745878671306230363281551443535816483635023811824752108696721747715023609525354673025401018343433316073201332927892434571430608880576102062888786563347810907855863865340333980009602976456060389361424513676540454070686836514419857798304704483671408362454163543396402524939324256904014424598630681967372842600385077091029459110127890435526942830766222885144775548787921067041278866536572313094321196271758717990386878458241332278112131769677455487882299713933960851107413325170375462148661750356007395688103835724827751095291657177695706773081720269782215253046318233287489532866975772748620590785197509223827696631718694690452542523296478763960329670851803975836375183647727926068284034116020351000012663931526090577252963784919938005632602941000492754975599854824359906229237258072598297708349857311786530860455603727565303856668683464139297229365222434687553749384621664952651787722039019057771167861289384216556183231942973727881393645755980002909672779951752808231245348671202668827315209054129101155712581527710425721446012397642981763440532039206739934556599865098476677415490394443118466118648069317215860419551991498070600209482301256710111295443937859276087243170983342023781185597191472303812471770752177416778221338277249339318888159011593738768744583354946798935152753080138761346615951702872150007089561102268193574358375925845886616777167867385758944654272556639343040692461969763023328333739903348951860202679388614302042967770206205687585525636910758310687980143757513627345856664078118006725528568194236763549010367748222456015857408446560242105341007853088703819771888393489371489766470061101533699715989534822385470996582523152667555005122425791597049928115898311260497920472403948317530093237783860193396290462022921939838472731352596320618510239243177807674318367153789117278200759116891750626103211929536402392743651853244801775813066858452559023336212478289433225020592570287285847084264098287969266689567442890471686790933876704935030263995861068981284360958008140777223387258033603473621386203073456496077388586839969346679934142753589260067125339332129912523090505138299671282461919606512788205256065592893794391753070332271569454754266647225635026043407357244962344469527543299250701373703843218850907072483136172248376991009223712603036992892026459820051614846572716646359742553407025451311878589494185147044620716668011459077119811930769764853328900118486165846191986220311476677722746414635235931253072402686424192805653068974072426751972462001241439675704059177650551434778285339527604705379181238777768260340532112598280988153446449663877903103667581034347942507684234081459756877957317138833370226177366412528116546120444988702122165757460791746499539147617415657295185285262936958197654538487966856171291175209170288181391138808353084388405316457897671797319803870327158865971189915568703524088908378387811368648131278149910756093167976499426429097111636285203437442887626469447251412202550070008371736396718863947513034599898056639048787923362354119305650863769927158689765108954413994909174663775076139376796689378712210567974194371488138875950764926959337008460815025216710724298343738359031148699630523806252298573888170717086044203427314865691754834031306802724399472171448943594113692980470448088972544885948672681022727683370546129492247243939789407031142368381598741580838865794992862771889823557604539805611389277058065358374570251773574216710195353861242990673856603183496547530130349633467003556724220051305746961024888611487391303703935403395054622112732507468047541435274233273082500995207366857751845476453455032997930944982803953926510589047965571036817114228435433602275089694603907478828211241117146006948159056571309000252288417957289524424363006441805765033280804014805121764117345473322801325977217358757852808977411064080137572263324510702714697974750309188017184652454317214350336294529090202310968637912638529113538740245712571545256883293368260463374194346818351211555392362655041760807016411956514879145862619893620769661863799179701194865867858843511510379458453552630579398070351052326411274020986493684360097602196382625566252906196170026440127484245470136907566538695361243458266863346215908519697114610366026269646554167471124314168516768197011627239795115333599525004896368714120780567314625529340389738027825372202846421530774971772090401065987636183759209813330805866682226022778951923413004603856209494611076431930984355412104816435519846454332958506040874468299057913856177789932689593811780804418668675734578682545753390649493298103654524110830849408707340862107637241968134770171311247787720026931816470762235880663575997991678745407374996936873942304455671385645136789760558967334570755673774004635665497888082165122187973945411348782414445159093963154026331692173164461648056114485800067071347966368870684392926694915124902352607662037055654255022592049542771555832450908422031212351836895922015175843839570855289524317411204193647744999917571615181350944172239348433889729720334338492937867207659446803525721783159536272776154242108046779153450424995235333773571198994106001745520705471243245405992202139231401581237145389262330290144793243928348190004746340599220971153265407949430125570721694966339433428578260970055776364314336352496928873920074685066851345181086033243140845747241797113970789754279535637460804440073504171238040232619659140592898166680617503208076413990633927577497975938145440201322045482920808824780073895208062585311836002519653055408470305478591269266932623772845514925985704120135856585901531131161864983504503704518211673501176666221952920949723920044642633061615474388196294405636450979794425359695834243881838352758792035692418975131475577897907470533819519147732336870618890280254384772424619151869443275403737561967494279491586804759604516410539075564384521622278101214402208852465753857803256100070154269296561260659491412815755760561726190045566182071082376649035581524393337504161470132503986757692347756821386610957917537216591607421050700270190412057359581417070727683868263471721922805445239900888624114046888182448012736135563785723211634257865014950424103818318704356262595682194709872380497789242752770781444050260590129227790635088229353996330348956587443119985618243624571293003701723721782151285381259999104063021741353120305722777121938677466732613542790128396394905848341556897130009970146346910198093808325843647865937830892675791521420930075246302982701071736284122859746707142036692713614946695632568451358584391523940735707559121035466218523405211962585669786361419456134961106247765565045753308009797748642113973176516420001740448117748336968942729073589124391597206515449280117162939992546945711869544414926477875853900251432295037937770633740560700835487505758601020168125473870973035804686286008036721297555608736994233152789832717216108687453348922881284095360869453484248714439024560926949509776949214902465600164708193969548187424020572075693437042165424292680608752641807654287430977330461534020668387516113431044926221711130153397623419072929011025839767387621444328257827503088840769284265268676396929633329053355186575978252995329387183767020431076078148457452229735358435283846986640616418430612065311871514075844001076561701361204209469993765496724434973581854257465187097702043745960991234369919292338308589590483627472173052618010470214884320571043661203846504481243097387339121535587768770144287442279172884210139975137731772973304536982423078670205305177056045988219526590939005804901669984714460907699829052423289022822093597258276812968481722822463797117507263084784021889526215961851197360719880895466652357328081837129549248679720062218740611698713432848151161528835575806707818631945276845519236639183057556676845020531577700399340638525227742690127074588177904736602916167927258057413498491960530835989074018160622506349108593625456457927996185105021857321040286628192488807069920965023820812917281969014282667927768666691593089836266496333416561347102582286056247079163776384171875251125037508998748554502841933267291618303258667430506106106322990340270088804846637549840920361676884273097033601710778726217599821931444415065546751184430545335239746649148615546580602112030263902852525728996317292102619272108523692853283130819489967743462579815060231402154622945932651343527742231210890130069985961831153425691542890297054320401090065968167747526164138095452182456517002644442724490882352808451196341778213305463515743798774860875377997673981184902943300419123024079912109697853517520447318622933427153110177662899707448661294038148554404033456000210513959042888766049503073936419384324974103980900524310428022189495829361865269742390572650124909805160837292916655379898320151509626323043616402105437699018547852495016081424825093472580263356243694355044357263924834590245369084395741574894087720680355725039535854034377379629633929292529131715131785474365077185412457197984400523346594604221837941468787499610331159601527813077703521968450650966874306229431767163580972904944410723477140522331280346448713073004102817674136896771650008325228294265620116048416001946214184069872790087243690276266038427907322010330047418558315802581657504277189997975367427191964249250330545205917491117085093646380766093012591716270830498104625500616935055922905371379944239368918015378427327345055222017542256083626848426197291813388570394003311253746176609290517760669666132247483299040998821325242228884206812629439381491253425291086273247453982244505694671878603908504455875574924412863472449950798639123240231412706140714482470884478209550296476156686409005749601263531361491321626056135833059520891710878128352691672560380421920109460900675015802447786709825265024018230566255323023227766044189232525273250916274708339233823070656960318406966619138609931828620026620923572964680560095674923179729420996026597594982360413667876456978457143212836487477253615858001501736053806833513553924449466113227523307231319853547981253855893323039329949171446085336050547965640786314193325470817452220772693143767810218114818786188674932424763253872822604900360746631642103401623933201507439829263605086842675053780833938671617768554748820459013800879968744578880067702345968706579756083354349091790982285016942966699090749656749457334150703288303391318587810762695452416417426229864774562043187143735933516232983970470916211141496133260563356272443859106605368755354716453730139991758363327500554449694904294031151132909101538189932170983751225260214904302119227826913214336809321965337776790093269614568560424319146793682290143316007178388460336833170646568237033279303532930101569884650987558183885228325594794372528661881080502367487555668609769096550492922693153252127167269288168593825194051132881451942380927430864242614838009263942761382124778542155004396747466197582279279123234778218377798235858976537098571547326471577068075240248933949940743870283177990592167100130828301359993587921522651433496784242401802295335549991508335079220853731079387296224700086211681345053644105952504188040823530489105019721291679798144105862741625937791324528046037455046769577926145228898814523778785631294902935818521070240297997354447493296821995014106425628910447866800001796253750480899989350095470161684581934542750614757329083526690098080913908175967254027044993980637150688526124694049246760319192111838388832984820208150318217017736044624547067499994765201052393707097003933661246519312790339764449028613945809158449608628347146297911977890072200695715109377034370879840139573212275920455436332263372187609145778767489013010740769590093525548033671481245028580313084786494745415558895325623806983566839909373731019143163628140893978957594265036677154665832209020774654702302453335930117658784018807795532041221776297485415673319554683260530231625281353258216721517210907046410501260279166273533580589265353160161038485783746036979336075123916005098610788701944684978298032499307977718597028824208670605070150421732744001801323577052479519063529430017536649448897886135890951091877162520048491497854019070733566015929728837865043120574129187991826808270427034591379309671966478526806031164902757069882743713606057812504032548652575613425924388076060764249086270006533939692245771364133185383152592627108572117856571070925427996119227591882713911850414794220299921564108291471521027728533054240088399396296372545734480729982757147677007078264090252253965377135406764397671663587687153329043713330317417529911782547441636592232010456744578860261345253354628748669824653559352841498787967573138540325393608088871264044797513481602576942540438147958331556625584796669931840857585070131126632805497177833838295194489766988812537763171221514216626047849127925577148973630736663974727447940233196293103366919708455049652834709078670983739484463065897928169121470048399296085075133686151747749658724384604218615850976390626708242451697837394717209879084623846465022877945474653207671762049631950423677886230820866780593028481944968483496243519863949397287643385777081186390940806588614415385278575503849900232992527316882447253539394048451357248694935231919168541131951558768952928525028086580272099363402381701477899895949723232350008011116940288014425370395376022211298085226741373580049115407157085938339031309995855452125380220349643890647931820239454780272140205142866686429792397955900365195298391123493263488201449118877045460027936757848322465198965047702204667880194868574322005647199754098590364076883530585084143327193669738589007837335348774562546159903933572308210436833572848210510913465158979890899188487769909822864125814993701156325750706832435585059520756875358991907428728376025004276662536279317300552791821519867922031995952105988620982733215700354104966089407580126595362563260567362454053691351907781698179486522010663825435102384889153160649050918591991318375166883183452143888391166675535725255652140311326326103063037913868312718609649892088898939726089572740986206460444512099526154824712929680530701547611285983173300691619244502926753804962997977166659894864921839054897052725213285808380999506384831312414001957021213144444934119595552942799176916472145646145326684050962617558880627959062019285591702076956239309471970710354513703377988629538001603246687115893052652549794736329563761763397600626245401249156509189075214583034534607128693046210160504677288719677021238823115466424750881441501236743713096607928091459964582478622026976534201112339761041174576900117360925600441970936554337358443396795927111878941241215716889297163090312482559799154916984027706673769697885367473377142124376303718403494681593356170068830422713397654724365108664801768250998033631898167470863845704904095734389693356263996367472106399628103863203905437110088821298608168210352558182927362671285846485629794610139417870770849254340112374575817963966418891043927549748901412162406654072600855393972175183092314928520692636132609675030314172817464842702096280009468755810348463487691127065224257786510664715189063774214003995347451985918456210216601738669274043121636627518317772205758498204177170888460125641125543098947739089763571397791614802387236154519195125238555224768423668978856960768993829909559331394272531240902098271525549754949552398927459210954765738759598515522428835892374444168121250487750821992724422994255501466664625604884926406723571764694911769251060910115655013365349415673988503469877276832070723128429763968262752795537282366381479810206456374135955070915049952835145760228568518370913348564362349304859260534634155207351345975286779576495640969527888970645812202758381983483114396762292240405342070540162195291513602779147437107911575863540097030728445573876762142641004521970533636577330958853125814736218739839479892915418619713498083540775877641711916318665673718892473271223518902991051238218653767547020633396832769287772335405826832190306364887017444937834493526778779307271664113123201845265921911088168897308070042810879420429770125602889637778161174671674624562524139049682734814373686462424146050217072597044621761978541967982551612300463886204396436500029482263700196999016592166964067894577427728671454820885567889966583116063992573719643749256727269185196745655567878573767175753327263639421339831765018453282492021313817586045192896126280256421105827374431606767029358746534543445157166762066949129203152787189407127793350839550760613566996342392196528352252929612947025611579766951797652484368210258635727673644484524207120296966987025065917212158527693590829961703053622867658201984984515757749303481002796976922583261107709137823382143989084471655067516020420566923636401114594800596834117479042076967280698711639973986238511918765493570091352551023804982985021823559404899723713831666879675136157834101452668458640389538771349933888951458495948805952717846365108439574487514988068360298801045361547716809003681708032535579905581224104045842348067143483739758732645354528882281057388238759616490447431424375395886326267296057857663618585642621498643531481933685077956997056935014761039964508533053003148226242836461703001276926177582126403471330124086938738806195752342886946303986906539819634940711091489488337668597781692175473006950491631146593658877455693005257999471077325770189156701170705110794763443115578340570312457131496655676441723348755487581938559487750178847882938714204707493446022903028180970240568990546746555618361161774423409661045907880854621331858040019292906418573994048940322831780761495924149136929296946578902514450267972955158130777623009537141161496141175995488718175230891034512948375347868327588765725209137137599323234310827643307886858519874530562141450848627943459733534603252540862603054259190914267055266345162405002935079087421321996062714276728332014268157108455640699285849399883746500665485242234344620298355310958256442979365562743813759633923583926614592069795918203500768882736282403936851027840562519827969292070409702333520943426188669488748716487309399243630371513155779021449407901827179468615039096221738518819681230168213243527745318557677198921266172146394006423253891236121111154282029613911036295031033221827054732194718765414660077280120765455901742452012718912785905769793700543074848819661418792596267697021999954962860605729136542227269423003255042703194698988968892704708190539390893857513606283553400544552782142507837679357793491840688302437553661763529849093246764795256689598928964177688002507978670730210272741517682066747009624992171338526746692101852064199591928171766886672561679781473883972833583217942729159772808923404246005892153300056104262682751985780550317214935263056517747236683615040153434828964595821659818725418556718517520858197470359601508231086796905758384281270736145435473020940780756582901658941695789475557388544380990269199833003760802232236000869001456852004228932208007812925573095755195799331891099571326286847534859310637557172485170847664294074889581004463745963821820709482859718040770728309451164221086571200898260154526994492323471298789032369875252071049656726043914489371444635874085543893438572173245831762672668564971403687580491209852338969922483713245171147495536323210830033100328979631631975775920006114811847907290663480070446929174558637447213846252732314487202673720789325954289377049144063866479439538907773942470781517363535741495084234864328888621557342031318373594363917703561037237697997535974771714902451480386118202598058460632635038767474023279953438339132025322336972384720083606091594299256371584275367775247024420710648141255142978764325527742070332492647342241700763261553329969672898265050601746180868441489609461675251125478678034985698407279005866164866162993616077020805701105073740107750269648406837732850459435921373589221826044412983867938408335287848369896258275033201802906675772286904533295116542923353527201089058731388739132604739195523462618759144818554250796044210338921018097222096386856089718026102403695944220195757925944917136697247862085843072889161944465770557049625711626732751270844590727858414594726922091214624611037991183539481650249964790572504597472391659116227735106776178689680188680717274147824306575221753207750143352707424147067518798768025247647525422675152245273994844647147201228566393564447584206741046461250936828683839270559107240284646931933921172713219986928994026879298772047299359950723310148199755332874382599995686531629739711837002313416852854441401753968164977931510155530289588872513199970418020084037709707836211164691375604550951373302895601703818438115154751430115102308169300861584650281724269318796368998735017468927308509108573443344498429509426122780898171774263362882076573185257218606362254468188024447964707403500539098707415827392685139173692333406780706530804024399971543997502270113492762422795931634179727741052483631014360467036070693493330625850579692894233605709055489514090400362740218396603838364164838651030414982674390418916171388762744798271747263176609334583660135323488035028049564572032478898694379679439132280627180411538040434653418456505553343699388527069465776459460859284074195336836271261291788906036058284716158936807467364264068674600988891510614017960952498182026533932437086254492907739564049979308163658269518254593468905922676271351601569265991322585912057566079823641894037480772990358540336292319870669751222942867755904831666731006518400062935943823593175702973863360369557793599695222301610859714102280950130346380254389749025309265490151157975118103636054522717655539304514951243814764503063794864853745188592162852911592344038180755714108403904773531034593306255753846057175526299334103789726073279151511796255258830793075231000265338392097605332047276867661516142834121906187061584471924797191896683908942171622743419110157686629823049381691558624267323900163816816704444980928001945851340262882510030907962404222952905214711292009740632408936500021693394808917048711701485426482785295426437083321912959009818815472560062035189254234048396641288936016020034682516154405280888084460223502502169645778587780134538011346634300704889317294088403992921978804415419007019989393236004084890836679146719691955707247261797612745723708417788263054925821430094442301140887771758615949493585676772007352497749754633706996055508132271106383352977625627892207450312748480713727032477215239551320547477846256431682871316140218056601332806954585387370214971111757847807322201346858828087273405221112489531997619263624795634251842533419412262172999271487059237121529116160443489986182422103629211081262603945450480473842688520711258136579361483252919924870248996036490380185250390273583848030918098584133563749610628691725211502245376304608727588548095205014870147142171452935132385261607244888886172703570313876824622770282660453334589525073301519054919743635271388049051391391586671533195495085933476221117733331574689057032271475884558318676751592924743863458832875908434030753022029878696917529568291776195333280157063473506851651819046002975718569586819516153349652629300059931699850368632171355673234052664184127297107482176027647424296481146446475167659676614646031559811460895062197965994050867920856578295247712926417582724959863921803222002078950144171097184345140283519250374887232942432205690137389190232388077983789861221432796789459347274839511633151463039803852262259204364990792549389554645374499775877993846053230568066469655602143855125777181079194187547367335242918317816338053422576897911794392796627224328767760019895951347565351373844504800942190121922090361190329969081807975021225757253798637524115894754292840209567408287609872206761114482876927747139947913250358986003382278630641225689187762705439427873084826718557611963408817591203504189393722945610800835238895152807169428889626444812823124537517551445735616554338667123034161833171346893291194785018722196015673202087436147303108839419858980540413586179877292048365378090111493549715717666171371516474927741657384948349681286692435329544980146085986576009762225706245011316679318456809739738612582762497672456957444179629202103361478633234214927288765695937769578266311678153474990770091637520414734315285921554762222558818838378487400330516173875514923325318311919682525106711583954927105961365722576463893690865274022924935245330775587639305402484369299281023979120905020963626520191212308358476360453797625639406551899801948917701951231315093191651020225748952270117676672411982872200579413336171599693787448876013806055947960822039722678289476682347517074121357880196302389624522213661018544497167943732886773973800872485487947452342884313011872025183501359602013835920613825001478799629942128106555458731910488071631373522203849236305321689985001917714781009530260129302315685404913763335313000528141929418553535846394573030117709280238841976538640823094829637375994921261538158227633410175806752526738460577667366619767437987625826443673046160144403966136697032567103695453363704894424492154203875825774167148286673046299551563116927420386253399802936823467784196165809908239967198759566472447042099316344786644006566454614838523229948967217225240314123697664369968493288163630077589823107005685004894129715638954386016275813022832923580104201162172297375171035776748496801995983798192711613246140115889010022194354465322150594906875881438429768567587722570742893694471252037428982742982963527957544705504616509118088654442426964839326949026385217855017139315852819851056692560835672644293443522144537765727913096330415067878984401030857322244733878366679564904220690339783514880881156431688024710939039031744851042436299092676682485098587612508280773016729650456143837498191434270841044465562012752522534719936178343477957605913306235299607140101457638030066168478957437679914581205821293259853282585682381689384261904574548526113327162485537456768950699295118776606391568005525268092561509325900889476763557768755619709516765144338939692432647347606287613231687388221022552015235676292279210234914406805159559564196118536091230991819397303158957706467556162863782045155966143535530009351066838293273577757593160414923280832547010870632042631887184342646397768269068522097746319168033906609596286347493260138606706427883432749277880536357740233726725693296241135313850863484539529318212887844949904499568864750434214336970336429648783429856706215282049274497385466052212008036543750852009405595170730751232321791051280760539829559547281280014558261619133485062524648441948073969151513460989826071950427979193122721497952545290389762612654866560044481899363929545738170481779811420762204658617929407782015587239054337679712246896156741662970405765082074585398322592465194872000813413173871792835552172309213820119666545901666239944067813830854428385281069984520610314721935892111468353754491041461854506676400701827286091619541847197410329696069143276456960423587072154504998104610452721654744058865213363604898892437450579165185572682411192450101997974061991526630820976334891148289157964520718948483629529914585314507987094975643210477369261867619439924211357782651497744459022986702746404432578808594500713192151388557317393170631774059012968429570054123812879576391934390718276260509971523518906258846432362210350247868730466868791113168792881751717214438075489991253250118609293420050923024991431342443746325313728319060215960063173558212933975795234838684930308941641441777437035205164253765449952090017876930672447662982266078908081175897250601898265571024837398207477011056952876243918166286549270041140654469174396793081036879154617898788475572557460702319927797491063312643758734114550900750339694773589515107818739273219713498858417805678006480058371881204801356631899611475134674813603634240255317879351874817710965118293474065371169167555068950296722662927318477451963782314651272164193298621209729494263854155061794945955851546840908938811484745707154488477351273007804241533750656527281492980686480293318449172444804129284143334998761441545289376434179562325317975102911060384146992410835476990916530486156245493970736573855376357195751294521835036644643591264372736861429031596691386036481161365852303292083931667080726159884915006686716481465873566381740855539816226184640422548149021828457699415049496472029008264292895101537952093907997416619461924301132048183831206573551674274542652065855972275967183915174797277378884478633386839999863847106841017632674706143614071694980298105357573881432378864890114896441738799537024433393278401731778413733832412568126114244201101640415479847339556629017928092046319805528186237770281949727383675325681930011716158163689916378171356081160753076507753140813850774562330541010843497795719297624104438043480026810811085479277231623544997344881769263830024542737908365895258131144954163566412354173704829886547451135022314674046843083610089531536126418281784845382744218608304180813661475381472224325221794460978320324210708805705157380565162715922166494234102893186819097653481249710470168605213597171749020258171882450532338174585727342272284276900478035486111413268225247452820538745721784420666049308378952225543609854022589373300938444124576533159801586633232026795494669024923409499747524747878425402620445516174192812628714103490370786214101297097634750115133908406403089268054818254533259577696015477964687890182527734675586665353747018848281999218479977800349211618659063442808718275666604714051946824442325644570998112546908157436814994025473739568128149573181418631486144254692439206006151876705174365937095694111176486169215826879597906393254410632751287929460133157875227039676345212056074705924415887721968531022587528937382715142090738806171170656618483468951020440663192378355752183844042246372541095482451430202760816950431666752687312908159200687455947764576225085393610739932186629936062724609964711621820167892635336000134680118094128692104453934615505581787267605980681512140962949463318362800339638741307276818033196717955155432484951083822449297350125140939142197763404920589455211902344781817165025706912852432203648829490307894514123289573088633680340477838319702017404898759591303655248805216027778350539238591072214497388952175865178646869335357330520585967107849898991360463087510572683629971600250459597748522129109843972226291293255194783669357567460629838025859852434737146804995929122280222531750329227429407591074530841241416939672909446739099159202018020758189020858208510721036701026033423261996160415825196499795499147958795903599263532641036576690005938061514760559426569713673908076094244641998112266569883709325632907011286990884731179550484690358392848271712584030597518466930885324751280329322459479225584921834801892567835225510951829849832766935400367548556375007228843490485987402086575008852279591096941989631192361664643262405651758535246216855972189728398539638819945898974655181538853167893245700507994021465359078326323206876185654468714558940260902837270726578694607425576168007410182209727285932335012150080026302209271608165467779655293450289657709309852049431882134749467899465067918394335314000326355927793495046976390396464108426353637774934868802662855203238555242279485671989687806925237242972543038712000218370136137518667582100783630810147371343735153542561938106026757258945023389500666588541099551548917288604780845515533957054828078672838444221244306968265931085149283307714224974188429989285919792220942655213877408743320701545575441846215637874938437317230446470197338223687811246074269940601957796558881258086049720348582774096936670503589349019867217924744834032904555478777120453914895550252316637901716220350347796502007082435103288578772003952375542710499032873682593930909806043569417206442575178528396673671724440601541170872474272013530831038895779048799534535472617553028454383301265649878944325134789938688903328811378284033921533543251644141412712860043717750079958266082253330093735682045004366652047699556301157493079398547523735465476225608207895816375385677359647793548744510789113916826672089728737740311666684410511613396556827388455609085084837902459619682731993079988596612466093091897142516692621761602582394866443664325836131000243491922401812689912458088077141806354603668924516178653639455909666163766768177504127162447994379532675581268059033081720441901397572282358236521096902652430971949391826727109754828297740761117265342659833754424602932693331990093010169476560309897409907519531975132541413496044265693969450280873474873070437898509562257452580992507120825105851533064647415970677353887722068459836588749142592365424161927224650042051482833577826316501506860234162790781210163320013429611606804794900083781930461362135669354282837005906962057706365844095862799758187366809363276028276890676648514608781808284290161278098182073622306514470196865777349810215755755742915405616203374897011519292725593421980241727439243202097848050721756260323734514406645496677223207925674239282276780447738166497201068356314089927690098019879383364065616382721615994419352046119377677678119673890357325432321523636569668382475437667039265106343930144897459536968683927945615550686627700126118638991705197868293578941055531156769314602305604013284308767404653888664246378385714316793444510489588480185059853683467620717464276968687291679123115290676112630080185294042841075242992577752567646256851607192465905913577351782901633246729965405846833112110881403359173916849029702557750995321829396604582464211338664749935953490784923444009961887751379032981578069033342984028580171753673581339453052235813105721269233626997503300225766730177649064625917153970842381366246117151247624207844598007359974790143558594229103102443466427449572655564415538397310575433477657528627459924690487852143435498701088112086509470607962627082869418067424762235165143390379609710060924691664909005577833615150732987710805067933585606983122781239297303630477718563608102304615520230141548735132109776908270958577632802044448418597613730674807728724579614148825854097682454922415609133569198296652648793929848729253100416762418118510334786556080040936526194703341955838849004315476840315640012718472526806384848629357082757948121999186937924163933873400393714015003469790946462216703032904319600809531663500175734172140535653173825124657715182691858771863769929798140715012795069663406499968211391160742130891935387853674439838553834766863458101430432595735887467333914512263318782998465148251910887947523599101144641480083364731803035354327676649254239920868486490077690422936195091370519614538976889067641436158481411669353576994987610890601630270330213608193025511344971281955329269947023256220725978278808024275182034254440779697784426522372640364178553511643134138517205996056495541858806316522064968244686742059455864064718079531417401714800050431177131744469496075886659457189297074683401709733098040683833356071363432511349608408151490803572796615036458106953972778415445632871882241534527090394045763490575609263050745414861520247337771814499532940566941573088349585069605084474847747102867469305036444083235086620828957045973599466615603636736792011351983405694010848544012714909901777435412108255896780819784650005883356504009896590735632029407528439974713218892497331869541851792703386395254973448361205159978843979234996576222328644399496517973756208631516591395382069477683903542131831561759729916046898380472723578484089743120432076135963740545286293347976610376472797861957653025899271244248809756151575448732084263857591624991181715334298624274344411595952243996268029071068849007434426532904729864028720917211986770969384477092620732358688706385240333042342027557402702956417673842244760665683783060055309848626657048496373939943570435779800317284162565200423785242116954398650091777307386589047097353693501376055053498367702424590903007025257767391804652931412319579794420615714404156405261306100690357359794968073192513042997181366019097039086124382323793750607841693404385581274931272966724909060676742454260113185788897006823016466128019789943005365266258376039702495153030930655175558689126889998795840896279276814625128905156035867454519769945516833160767402034430299846015338131427560696758627896805265600976624442954887211380899114957499940069468883669165445789664851925197239367362871247054476051073461704792938859296916085830001888066113025294295280624747062264337418105997117223584754882385559267077705571494590000914318525325487765797038328236749651900135219850269134011113175836816934908417015812566542593754308696327464483134723916552774707330014202165374533309103125101295001897238123013852135210633283500456113633731646041559352621435630246036182756338558888311350787318099320575571113241924057740239406983495252307969686169657655183048746879732952508759349775894591694554906469673252229527591815128609294246378845210762957770551343579536120930772059475007184273347566070207699455623207008745313532630122174860990223783206805823893366735534634365247780012563920347707162286147027178323566606226384324704712717044395824720009734114888563547679556719842834068027210593602126114645623588821617455642661487437292899331731383988832243034288403271892820868071762110556040200678452255036451951952655118409250913918493450869035298324033022044373962530469376003559039397799024737210454022314787321485683764002572453413598830210091787205518616277459259251657794124887883339826060412537824339476067997864396164371021575678536794704275507698665139043355718472260459791358288766377344615392412523485509481478216560614196653149987030371310914323894240617284098688768898339118343968147341855564590928442342441992063369330890972015862799643815623114410433832394115239426099103966802287292946819350150533942560613934609434950425893532740870067227151512437187648661407390139038149942918122159401872701184513103004012421340338629569087744428031683908461788955262447403107029466952199936944544159657224297058464295230127551003340065490722667999625402982967152639884864724012905450372756692676029671262702508283536743929098306939750167571005357819866667163485843881950251210622748677644705875241100124289878026732859359581315357660736679905035721895249971835104490826618658144474007205506232739879848510203008689293022431972542226820871638763128039293758825595552260008640179880395945947329164022166854748960039954415804516271701580794417439313098721150019103969190066489761500808006060635263054472870161119405782086721115480357949617297774826372805273595404353036411323764322923857510020682588002777427584420853077998117936397842306360589753575316968938889880462136804981575873134100824149378522185049786529321750977121486551672472338251552740846867928402282044494827406593366206068368783505522121701987364787252108737277340009028095225031525658841808626310998610052579724438729227240065186522488545847348379954506890830137310317407042452705605775864978913357015408305879617132777490128616445316407529002939483230523311695471264193425508223671607682077720534095296874597153496247884582939541453299250288555795379691148332879343157153147859379218843795672287631560270033042265769370629900409281811583841558628149378453706172220350640872600766240596059675821627229482698193508057983014072238821773548464101350041450531679937822396502722952417718540508471569268874888291107328102346886479430045287672517542673155476364488305618335335238951968457139078393167966804368223688013970955810535838824623644665738722953613292084995169738636601203290504493492588460264477581292509183051915116530541690250572744339069466229366924475478333891249734252287727292365297877285088145252994113342183007658170126899210220250350863359400505350813510207094278638899549064839003494039134535952073509673792315217233422827806353112842320079731245687398884888070064704877349358293314119812115301116809132605306640115269557911520289833250456203766954368629689651755945341744171670773201625811391474344429373413082970069921290906548536292294598052942420095641464492584462692763586522429899761748098989859319002138295668526064491600784753559350657019968206557278336897689942176527374647077512748223244920340489368569214868991989985033240971350645092620518178217601473922352773247399931912228452211942623099235431058684823489814631905031013226071892260841447531787313624083604153529963964055043573843724379668854200726327097154151805417275577629397684908396463259137415001464836164111455879336830321790164505764208273731115122346198619799284846336411073972493648085561107613205935055517550979718076876277963685559120356564744532009273719743709553030208991627371171895380586338244015108862608546882864113039123117120679630735432937426713565332696118380058088759415374284402262317804356106340218091522656564626195135865601830016179646983765647663628202034288149848868746046247855747143466057418100787880605391848657126545648690130223449914335199488764807423651984855587594665577370434986860547467818722586748433693836084320158189745259791266388470823642588920175964371502089612642246332779609867780986248437534424123509181013455206872225195910869608264848150911003365840060653046798704278337154848026497983256928468994409882568239389394665968718236815499082301118772082377855919894388649689611505708203329198268191874462018181857095734397177646771810870916390492643659310023222177304453091440485437389664537782061076930085057137075292616850105159979608177309124316758631651959586492124282507676128914685206646372715093003898229937546335473133908871145824840848607335400334664396693052510326946518609036713557062799074381504155137405991045673372922804755062720608964536767873986191928737647482739019605614081979892958829193221986386026301626301750736044728398642171961370629031672604504907415053993769884398159926375073130004512358716463462525377581436050413127391407278607610969372314770407847015973417663115560715530633530146575359332372770027123264591897377791993861250957781838024787640631954837989406834889058127810321389473926488472748509242311188964134229281650805454583367219666808184422748515594067664657310606124968743217919652126426614496594139367124805527882560777185828262191746842490947611721180313216843631757693649583876752411599752046417403129327241231102304344886153199286930061050017910602721496610536675740734131696833307304652414577027690588457067952673172045256670243183494888643130050517811221737901224803243950059292846541091750297090718590985831775902094512997547061832120394706547778755819148333382373221273053118468868866097467936909906655255151852858102507787739747234834270070990130207697658337212222613927958040435133613611702465015057618792069366044899403059901690698405642075667777133524108148213270731879120268151628571092482477468032621864316267860184942685761437712783722170390181669219597395678623202505607684727082515143556267924354411150117700970549904599808330703376413007857922288054817132734992375361310373888895518752963266095866128015181105670476472788924926060256329699510553059600717641262563614866974346363417485419064330439239990292113687431347681652438549118319771478526597128292484083556640979409683090579738856259826280407961443933250221435438856726922460092189674955128151100021104401739808776320279408924168702423503287569492549205259389806992169380034214148788382416742882887180141506317946030781151007246824620020040296590070415817752907909931514538635337545278880435530207447124597342557462746724011842000306710906051844917036798501786131378829278563651543393047374610630241839838841783560932146561187168467041214270673933632628889729736060614056082425212412676148181790601217054646253390751204811272289305430486902529222304335553595313085651397422142286488826980540346203069768454996890820703833464042309503595434416531959040195023053971363179748242357893145735431399970479491273296106479276680008394933682996844579870227760300738859316224382184089191118214805853005298352815814738952670626227027518441332013906487819687476087102700155228284332537145375932245038581423059401689440106290340667047522208834864731669269953295167662705097568317455570240537917285655886321217536581766136544780405996490987159619315014930770603674781153055142632724022855133056241840566529046675021303048621585530838685044184173616016621018227250327924855344981159404719983464239057917394284885552372012991677494406801045994448534461696340637970122918491681226047945902482723488821341978040662611617569493111651396578690751506345816872171264108878700579653857056451405016729823069414174764414445433842397569730025387516178016128774753822841273965137548014323027285560025946433058123588301465352954541431244252019779249299730164482378158962809838214956435259499448876949573945049723835433644743640015243809451776947031913019865656827241236903009852970217591477612333650735922934319617897087132676026973396060352562600595213641079881313468420001764776787105110563190829911481126658900737121073569643556302647608504723982839614404392414027650904367685709689452859958717397688037493450020498573410364247848362421155171531698040856590200112233364926415382842643997321018066248078546368869186848360844225462923222191708909221829390356032501673174155558302687586006188037140255988944985712678510245629492599653823614356344630954269583935768881142605362199344121653829038274347004104587865673663214328806116663062881386661528510687684434106365388770838403837700364550297936412882611652824220668756946620232398555207706893778259873762343754562137128518184596002416746784115474850379203982393384937507687014718465046493213388020049345922765001180363443486908042518566343575392967964023484034697799428944137310998468105712103516895776389844081070797625825787134495677957256509916311485025559860867510598520404710931456163269174892270680821785996920843068963914405071009134242349692457221738612834336950642429220618569606660687199876344344678315175757633987216417327742107044468751285851333410717967657073808694640952653757789776385882148708090956454918586139715105180537919128027817577501404268826318112899636091623333313850322401385276355145588254639003557593191793464281329695022591730369847133650528397033584048583426804628890924055108470237638648854852943460927286837141291150233370012554870436233915820325214883493489061804093289580324925258058417417620252326120233825688643551578886544830370702491159322173264585770243653814497259129783131229619325129012400714734853235021027909573849834313534806383700194591440931234828690553588980675830889558992205028381622436081193718039199267915814768383981911696102854465857238808214410944192311128667617162447778415090156664603123066710482080316839171862043998408973221494061554313263833296069330918399879085754868877314121744880383245470120542388064896360923892394819578558706253122698805939493785565022164727322961278174178455415189653802168996370541736039896798815530358638626986737818697307017755102606784978548197115803035050463994629329872753464316270313297087662059334243140570113845942521888099352827224886231579033729318758073490424296599340367775259163259512505106305524159976775976359948737855147950079907757646497163484127680077890650590599425322803250612241705047318586152222582625387512307073538660358947294556491463359239408693541068446830477142666889898687930798900979160918835409071056101324616403126452401871151973638128779034074650552016874189490241398285845954838737095220422336710412810503498583745395807884386974351075193832972246295441014042231365451281796415829519742123638473604045809367262471295930445973054401159233739770996952014838698807618408719492588907607476122369620807171967105289167985551920222543625935181302590652122029827081345570232320495485188438592691260728605399979631340068818593056378505398299237357081216585709774538183878350713241383856592017026498041931579027778572615817509821769188341589026655695792827639909105164809067782366810729313515655356768751434886151474196895246534825246224487053913291712068689715388976711456901544160004793030504972087135985716848096999138350388326076458543052722116760571908868238497487295406090587287361185478729442892112940038390658588090664006643693547921300761070270343321863939757423946639357477996540997758293453710046023671242597396068865026610538172240777671596476256291334605772508987779797706589000324125327883372940909307283946331975282176911529572019876086357224168561165075903990954678769629310331432453174085648484106539656739355598974307295674111612340950324989255376303087950845148121725524611173607745186487246682975111451604369183168735576257086757590013177828874072056944676703871080598156323237945062060204539377877128243091932808672042710328221090335324095942243635974050291469069292243908369400491844568727251922929472597895067481108119706230168937463614950080385305651947499885202134187280845628556768660946627439919985762302340171835383250848272726468942957965896800829171178565854578731599831878997088281670857036150890027218384355559746971698563821449550112705553230096201743025400765706896115863386056022267104753351836677569884250546736606258491471844087105761571732040663878297784423713832666865927752370984837982763640342788233738963365587453185368723978490057965182712967281898735679303185639031230611254170865990279919180283158296597906243189770839963107093953659573580931089497119964137469149659787576294238159305495039199163813744135103330707741097486853473996733273713045833976256033774520447304691671575082772395790489812484396815903198469476499986097798836054649796563847243102657314861487639816142649622834613980782656292992146455046649283776124144366085098451769363316301927261378961263274427180489745882533913608452439029893651426848480799463870138492698455763665930917877402904232961582977706325726549412594846240406640875585927871376145491628781595998197650583510014252541053035366498096156140649324055798652845681936956049523940432967509452961678250205689913049115265659727714324484310492572995627918824432058118894873462461380913903123289305560467499517990549260347776313522949159330360248343561245076516893652708696762159163370484980921246981737166484178802839442616171844323139661723785987386319794119981685606118559058256337862409977637769402388360858228498553681080475771583957232458504702340615873663378979515570741076916171298521128631262608361317017027986604820393850365064069062230226849126302487682920248238045056898389841200203811938992762378562108108161172936051376263221400851866069956195471543535326144731247082968653463301252629902872485016995988836186293292287695848085774569688452070825600636636663524903974245221805681408660461671854726906510897354846960640144018762198774178971574631985214895056777010345231990842915411228267938234251171628259428822535103038029098689727316936610714752993280294138340171690286199227119035010045965729801877713103037717945175747995695773448467113257866445705391356870239033080385963299898286935341110260887327452319513020253031269079048574288021339837994325570476394775821320082780269705302744380399640668632538319141890784665292939785578647166899195320255155897787904652677071598478717678864714160685403230232315546994720221377132808252540105702755696429610084613211212023740863420410962011379545475098324739397353895829950327685273482527629525524184093146950190228364503966052890331655619668350841415236134647768122427497023474506133733914191993651534349746842388894414470062183194481454169209565107934658757403231745682874659498322236840737442639137037920211080664548601179475414342010052369652732451553513387286346838742884004140157320034873307536178007614481764425513062360733430393321129059167521970908989359516276579519792045927623127008709741507787592302972542544666257999983000582287770401618053425070237093937807245908395378243168493985451207407344105909669074437466334945830604053734880838479257883687915436815728837423557314819529394873711143983815451653515574315904111894624812295142828292263980457782113792291162697055092265795769082308514027054327474028979316404194719645113401053284037661809925779007145452233497729869482449670680814130264011818206245747313474117411100987962746888849909493918706367189196480438748157715190447931401133169047668375968738802421133843376031210056170961997017602083537622997568389013025561731830090082038805273015380776284894675377077902383956645274439617398279337332403042699897250120852800788766135566638117477124173206415145573846513675673705399801280634552957783953974105464384775443277162711940905107489541593864514910837980159077633906199958256920190903843425573054044333907315289836193499283633042498688270574012774712052382672885811849029513582407976045069822390726948359832707058428641556172706131008744766876826722320218498467487252680189826842395499307487577203487265811069039324279993851389085385336413229955182292190721299002947062152240190898423656397402941656803881215658559736278257077531426477503784099288589710919659901437104585807160708009585909477519344186605310136783862163333740410271550269737094901133721242488548811598416283779530195119051875164051354940788275742604809582562393885341467876833979593143345697322463245703569558089538506329573610658677970929941102813151686519010089222596832729162012819391549669250983340472827077344242964165398438155403993852209644107844460691605003485057703594894917912456664402966475412591031951105308413685890094681154212367106144839661368973502517787707118536106498567336225727559960792316734251819191492334716715673752961870990796613034277781560867036575401910870736484123788122507034570080445052250235876443862850099778733882218157357029255425720045351954696416503636750973546967897974016882822052851905216718087492572172598720821257115204296988207753504174546000821074267666343745963611607851340898250373489398110779158704216498389113736717913236643601031408957415950576010335708163303626990605892593466937033491135997503089728069206669567038942511012348140665737735554639418965242093838326568241007242431225430008217730487220442356821965112902339539486321237609153086050631026855608327997479984445745941186544264080534067567361636416781351503852045539182799483247390491304580668667447166732028402296432445111385065293273870219582288377294384763649409376181669887793237530631314574425187129919832524615738849815669423162455502866313224434386351427447553594875542653279696993813454394897528437334269410153164395589591173174193069934447705397655081958532568896755876424397100092058956444626233502520921947967398176325473883408121355041639858962210480139213030187046983494150447988297800795433427002067568409119939098282575693854705012768805571349850642031217442151165012436033208992729091095657268160122749178759423012425946092428927500994546374288640111251379257814771590844489309847230725879563882893633814700066710748721806153798647705898938175519395818823645453459053966489742039677994544448880918059888474175764787752730090235817977457525381026330302863419416655580364492320732198014107457043476397489509147488062500215087670984998605373385230478722539076995430392038949544077013023080119170068814886011186697608795317631700497170492250291412528922317356709941603880014969570094059148735522223538315496928843142175451749258499496162357206415003364802572041526381828390437728932804631893583282638306678464733806069522255920853827881324937913800657959234426156870513131473764885798742086993225046949738173114731797516140214963514682419936428787822300616712032222397078685119831317882447572275461274165055566911362728176887865446973433910934842346654077806131359692624187057130271837972265033418417456374317866087960960435505522526348261168996853114692255618342403048596436111709289728726903632481294259544337995039727554732457935523697727599043828341726342613850294302471522010866334824002486146826841202061398821148456566379434747706588022385412047000108560435240954682485374621219211283619887693926015734852270590161145459292525235231519101777366688967785801764329975483979850041855981561194939196691291425857371867773344056811220317004219939199266552258572975980974266493659671803842836054534412497862395041992684282993171826735165780035534323021007736961083509087043334579120083951063472660763962150230342587287161271925840178940089589475342133066914258151656900804847978418257647512700609973138438117431164926160295788885584064848318869664587526590020111500076618759782054866695419015884985001011339458652357437357173235578975014146968178475571558946764095656613260983663503750059108664180304392859975122817145787996968580251011444646769154391748757500359062158736226562149231522376612613851600112631296707645337795404244358983984691292795168175792349931720564602585065299635093175467548866749246554683808750191623989063057673162424619557631964699533845401715645276510914198047785869397870989544463474139393354936771866755855243284164311106301062653157931009860552395476342827526511908854763169605502377296202014453875204113113044054993377386393304379408666204398167135875987650547067741410195435956315941683721006791992174883471443355702222966295147193214728044947384037460347122876534093272409880789432203903880140955104054000044666855355159916484608529910932939253260625852050403179798931629456769527552944458101727355590442596508313552872613929412010538922325745540174392316346476071310828409941986620982984799152535648444668318666108399431743920655215534552431802310751862641655375279030467449699164618632741483453524083547462863779472025815744592862928276187868015604430432888899681400883262857086694873947436310304540307379479561484589187916241174957086549833441993137260266303372531975793585610786577923621972293642715145863901389046758121648538145459793256107511559057361485222248271188385170699274124785055261692251940033147597770871065092928974767611512339029122018453370588854060336109860540426154404731349427641615107441296530610568385752098853584063749605523749607917949068006304959828434077012157655843483259369762969078785031577148869148725594069588099328605798666305144800156812258223638991453422911775176641929402888605836581143435472742566382537899311393294856349239013992098653823034745481858208019911250376800510954001576276176974989006021495927992889542170660123285307871292254924960197090203331252785019699342033679947551688498586120404883672400767339634527947526532550081910616926661108603710736192109855402407919221936711980013376994387173168670025767985423948777680352035857320878967763914703747766882893720236275790068573164188558433629243300651998936631216399400384955725048961024623745784463154372751972927464131437399071685819643949939839019406922153250644908494940221729974331926673956117155626907294845202616733564055298585434499811195350262495071726208840656574541332625534987739171841474847856295736433600425425421323370770571811265258327419321149052340703615416656189052932401463706641064967490651763418551723987372932779676134732969140962451602011880034721781462135676239924706282557591413735154167758938499291671416174501636470941017075065825671278366588864131269088539134802559688565361344176969380871470631502003217280593484650345651680771621506758877220893772107638900925569845110915461089241607607317610651832481966730559974893290566714703041178403013982360965259478304143026399517064696439312327011251736957857429332144312663185312944410930104108770229193945215241230321587402412427204274642681565039529817459683081542940746625905889599018321477401914229519583469299419157848088086885879743863611870192561919395079796313785732333658845038444945365147132999373352622294811116737886012114827616295303856469050946611822579829422087478257032326124280146151767167077200911789756570970443485259799041493639109241445877967971884125542135394718779607059759661314546571932916619160713523591265312801139113857582944481729701379397036091676463236301668466470936830409249382664152271123424360322616453429859550647331297933991851672249670337801719261928236768165736045226850897861664381760366914838142895007654787906807366884415936846598154865346148495366124313610599893277374131628397912282715043903906814255491983841017186894075321634202834383715692874224342538487880219454721053647662273186484605895846815080164753425675313868967010691788614060122001624590688891651381576818379394006512030057419121514182105478848983094644091570296240949945542372011991113638524967577491975850064565802879875224729740973637929945411674238057269006086066918311482749604689924212494583013022965045710153535248358392866177907931454686972569061069874797706787368974848761315607888550060923868921143646807902220898652777745973132247995804448259128652151044123557834472066444818359009800088014497563567177029239944607830369785325115137498281232775152799545377242964874233259491311040134924484650944184605834005459677654620850960367336518874129599266089694566549452041174791533457070460319496582788928401580684572798473651251499094076150822741714765030323931371000013465298308043525996935111475669294067152775021421691879392982510109378581096389699876140272397939468825831035042564605425333635452984392336052767329159900939074463045007946330937688443156741098528065981186903362892460212297444402114278254866082322933807756704253846420972157705384305114055279005480673839324609005721556661098478554149913473823290196125045149874996549174536169609548814349141161856770628525520452962677791791719507857306556470652757055860064362039001427755721365697562523507383486689007332720038772924548316557123773960727440567601572558632657012738714726168798398017923811045073612608130991451433734911824613543035400577863945502431824556989330349935558869786525612812692979877081469438205963819384505362448216597410776446533546028624086639921143412114508338146109638098049919134884769577239506638791866560477249029651346685315596893345587226516617168172918461982648829222007315093339168590714900380960615645142199203304763663311028251964789559332610711710137339038085119725675247706182659672882342004681611033408650212346401706792243952013347177326995204063714342791323475893286335520186051845139036087436678239322865066892832700432493653831029488321678714555377202955072980037200723648284009254757391805155596098705581751334240871092850528018017265204588109755388452758461646279539008768426893095067274791915922614978311137498845294741900466934358089553071298626860829373097943417495316543420319677988379984518447301186848651335660840292375282851682384107469831699458724335092966174470036369531314556819506538465649828155315348795649576084838601352034402600551964786453857837328204137050707642283771442807231092714694476075863686430581890430282425822846249162010892229493499248773509513926817354013044574674919722111406717486014812303205524748946675134869992078741535414965297643572335541688307309464760059310617480497984257539765217850697041090773044479335745661752797726044683951502101526956947996559854667282546073518341126226008279697231480948394703448639185046025661632655025004059492259378930012877718564683147563090710721003737906703091288643618398713823214508379774354843706850938951438668443593337957090510409779860739654903648143282322306763146838025174966786872798093225245108505706255493428558975368973629682684708520086177885062846050687127764222628415400758698463043607951559730216617851358379602104645235875144435577673240579477642527777836460900556882614156600995174402803515743302605075614353076002544498044514169327925874358171515119640370865789327836750599755790001076852338925458638465249804534197329371579025044639444620651131331199867629103334417610660473061012012373035628522240447688677775519602169894904149091244873535481564153650421088550534384675677454182044271004743807339187111361396625478249300965474937046569162107551548045781221593036551756015660488161629567649212066210461442584415096391500706679574419594813013743274536012875293624325332882881253714641414399581816818498474654386530740000413034932029594415536699050076179013111726896482444516775674866771513714529142203859009061784994958647816109530405923750851388972408272995205478261440682362138553274940298177564642820509452262317001521410279673585223807048855429093324104859993943921686092750885623985753815740088164390496314546408462332344387775801837462114342511404677494877850971295293290150708769685532028421938278347125435759297247548215555482529130151471958577647734062990786001414448461071713683263687918085232524544109516123312253653284303112209792058872188038440839893161993517498570287395094339431314479460630963110874410690592381527818937528931963896724654409224776703377680155127260951236908541121651029231423529804040912586699693672593868239180938674981882062591536392052077089722392663883203629912192724625335047755100344764826156340772286693587366874617474149424388247937642548753005082266515595463013862944167208844183336407904446384392893807766495370344291765074015902139937384045301271694971107308924483179110686117122685773104345779318269159077699208809529427453844395099472057463693164288759324369128281696099122819316972672193056406437886724575694172298854781113249366575940194274844814946342380722574255928783416935225438441642407173044295553641941342747639208941028198847026618678037972193591221520451127567201926587188983802705374970139967048223943501470876877908885152265774370658791553789457939466393410758151662353514135383386702850094687122930807587241296800454471886667198809000290997456911342917174254631884662984263628163039911172811849679461590911104170291799669934120022784227621067886482619595391903078622493453837578560270230750385388371001990002324979766168192814376290137986255960346626147612798495401176520907845363243281131997359249608678014655208701562751430637603491295033727556059790348331609789580625136585286756731949719041466659291423855573207338199804426470152961662807590544888144698408366507464297943537986023811559632901008662488731230804789093470837154914215981018236200688579407132356076037857404213866886041889617532861968113456939420128894183254943504264446571777865646472779482405175082407944051444418828344276118265966219970281335629836853994418273081522488143773777216116358241251190564899569166569998755982947057014091670368960878140138534041101106431020234842999567830210923643825854251304790567468200321043216939766059014729295202791452626334213704188361551720553678845776635005775451467669510473654581002203607150016342130218537545015500592588500171115500763718077808758117714273825425956163021119218563786342743834086579016458485919621273345177188170297114290191153390472749101779257899966982751410649126982659393549562919002596355242108806200192339179251401092408031565977830258786060766979085261920379439620036804894304171603801965314810978686068708053071719967319243070192581015621773725145256596518557825995330870729779706400204028439110644164771404027729877787714798062797755749009900762873186184724800218462214825078807137447962202643637890647569325900504217829163282432803728302454703154932163190036291771264290655955012124666788633539258436202260903001456905770083452024634106848926130092583866098370533444317030205217251196264335913979248682647045458814831902752645237735533152034853149279984790773079028252410038569025346074206900613089520871352673199761235605207547966755863546715124350843891024704831679470695976215845209999489596500143342959373960323970377883077283883766541763813057653510935823022392439776015053837908159572116815112053332867588494723065020283139031142880427651928933004294866261991276715518354192422788580898918805590149857615073748889749303777695105095144636448071867840401981592042982828077462370759154568936435952735375907825988405887972710213374686897944468191492079823029154889971393597276772623740233154488203712299795696631778751641802272654784853517769371996338420721554260768338618408464605160996037810352208196099893292147617602387515679170016405793961718975092462244672765464107371230221075053049532803562456093866288222252543048067017509147144130856121968512760221110329187723252744005542489439731337656500633753711829977661978306453589347293968112432752680073213547675735325953875133657298364268637869877015537976236200820792180008471264673768969813571626619212298479654547216369788294800592164261990686380855841273624224732973116566414194449425398659334337201971165359140798353805374720395767638884255506677628750518879659074522971218763802174409879891980275617335093925437125821629221665742713347740903653292879764686545858278179647777456245799094793466568525484997361958642439543569546078064877140470559407004859160925511531655333058819661458658736284926295960943731613585846755161075530941231514264076047654163138290411542108199179658334003721172946711427350829135504670639796140582607245550596901273882412766870334643378669995024134689434029393939818061217644261099276574138400065445895775358661153592301483119432883934625095600810689803170802650973443842374233086988945541068800608147023216324503781431104250799984433141042411701123375037013045776551802357995330182958981882855264756796539632205102541681124348694895931094018886703368319458786209022576656638937020526120386332540486395194304700645179220530463171930265565960389564786967980714560492537092709700421732660659955692188825480982626532951568079494082803299346691280419605254604655858967693769206479560307935562162197763510366278232874064115943521705249339998856237093478310589087237494197537983971994668823535803157234339628261551780670109830210351853962846261238912809153085005913780508249272951018470407584999413454738475172934623190112508753347508873313538468326053197327283224655240304315292411394419339978093995544796771709645822798207225977912359137363382825892531616761527647458989634554549118213289288290606852061405035116975327939830890551430389893623941121218305775543630592519265379696044048980807316226313150837359428893547986950532683405016248820720872287559973050652571735846889341996348348710501436958827547338242110268004522767078579509974225697763143525752240046404049944769553055157489525575645492714815936215291168681937655359908000696793643125810324595043692113814373689613710930355032537775255178542295931605489166339540758175733661635082847773483242047975238651823590482299400593874261493600511570479134356140412964181717058752521935080359519284870477229948863828616932926709839112494524427610922479548037776100996569751156917577024851283183986486395902360574755573908232179392645828414627394360759713752518812299910076976224525758403712276207654655337588009621606517870330176794242148023281173351848516102149239098198432403746637405605040007714160259562555026564432700570151083180841630933363346263773750746719717186419206380868181923655125830449371651655637464732915964344746684180516044570274003272954441000572718520872030614743547347585816872737530286500182985989826525158553786830703500261368400026409794057793615587673764421832473793289613450591127830096592274242804951862804542766499479885767718821133444307477317179317731446345979152328474892709938453160331673865387740512790644890227613007852307518029829081896642724147645818989891745413834947806424488283261354558518114091383849704234258462167227847577267195606015090487685004683585299217394750471366147087050175793375662175873288182317785732721004397267348767660058511874486453449382499581408393677850783189227779186428040073858528331549315285170254694865069743092446087676777605643248910885760210959435149002094501543487557262058224922943708417312163454280043106508745087604535743176725800003584762718812883447066571409246550298575010670405700764504126722186834302729336946711694684348510045820338216346255684377022322932134522567648104685521357635219550215406445675535280573657785453430611370661627248927572454009445182532182705694835822477065563708352376289764712425576829747661650749708989951927419133802611534989869516107912795609391908130220919158232731821398697107480783698909134643658733606452765203376906109595837615205217764392552846768944900047456521456557640119800778191674989761529293239597598238075663818516980757132072796420316288637950421546733200703982730337833446117894067980110599381232928225751580182388180401763437177416672715637187202391804431643501580846360916605635474625688015512002256402538562549310185576404988707359216917194785567144583138947970948390682595357807299613363576031133974280523176913068004931576980157968325151233009946209743463082576372604877590008298299307154705335759139448849527288756923086137727096685872112117325780553158598432736252687678142520437797222722402591046418454955501965923786338722017748074685445961029823609324114067902291454578940539744235747902362872151915005668124711693673210170819565464599284254113356019688253319145166416086924702053441721363782801740738427492017834718639210348329979501402029644182365669268393028620557260393546626283741391171310491632347508034459868496721601505773397831398826498437909874183544793391475065978553956001414120691057634905080272138762395903564340196739874390430811397561748887527114275930420018672382383960057631063862743000832870972412089591751630838226703097938102465872185371089225798197452338286055641306357854020941081499241006077422152524534870203545861736920878727367915542331691194519590853148048813054946425694509633908786779900849583073435160050508729120690872988423988917620284936491554571469914126915352816734034882681689955540848328190389694016068689008517905015369810261004821754503164260090920286163898103672542438704351284806569482950417286245138268185866513574425300226367367274548656924452396083012999092486708148100708795529300566428282998366163637018925416329178050560068856301050705316411870882590730733978902759113925696416344459859148608578620723525682711361031305988613774117803077393158992500840565962716358552962647219068773620328376245354204493624682178603290215653776531695264028380376902485061475574740448174010978687384904412605874263999065011029203831238086345045292811281816715310124941958901430059956170842878094962539973266705928476843766229478904977033257622989736435915254001196005587332046292626966527081915446024687312005368629411997594210237274144685103500242375591030881512945538886593286351769055927778549029977276797335267314840544656296293048027588180274964917526876542770695205886379287304473667759522697944864357343560106764053786684900609037276071563499667953784745555552582035194890320168085342803288070508465782010266718972062208792827797947192277309886871505777329670463482456018381212815493614757392618213883458211039922857089657766564757980371492774976924252984622518617892267781277066710969115636010572368122226584123566396375887786729950435830110170136427234791142458268784251825476297394081841285592656548217834209181890561697640150158332094847085141416182152304205063514412883411156685975320063865826015747537165474136483063275837031047226671032314926198376122053226055153252382734116918197133782762323749836556263266613342340122194332699704942952511359097257702746782976756182611132755649005510742218364576998600079286566028259824109681625179775471501296329329643975149789458589388932911688129319589520130518645709853288146798672369237726835814486042815894372235997082558541400283054356289665264969333508505782706358240264716891727056418805766369474830371935377032592821157146712543254558908901916451944367356637048402328490974979080310884671143999684412931373354227677366377459163026631255966240267364083538501657254114911955505559601482581355703700687844901057788078970224165282798861034321557429664002955189674061907190879054813453994068949297803305888929959430175939570413688670714501439945555518098309222510580163269199212672139823166055427963637797520171843048511339796517185482794404744932938081624000060117346796128725041327808206779677817942745178420434724283183180943278407798322628134407382912873312490901330455625137076440431505888227979997261400101309106366440831400242157530495238306933404957908386261196532542017754887423838641526660615789526065052063398075851974096023051789786274839296108836297651305679910011852775363754700222079004933776447874020721912181334900570420505358884693351928960408124510372220735487712351318406264678705186816053194295898149909749281718433264035235112520094970942137917075688310371124676716196743110103190657267279078904050312372916373574928704114933456673673677602133680520807689046720867922313712758999211818796727097065179307432848582475607991552512585082123012068459126249093434633363645448050642482536728048569732861283050687597350858791205687852126731450506575414554080436201212242690382661595519872187600855651311849900585162595322363525372451408128938103370022199034424190051441290146744250200800514677730913050047222185191432107653775099430447663191896056836524934068254024136920523381454142653641649881690409778878766004560847168719553556521551559820234956900086431308469226836463471303484438155126615246496234395363261296568946768346117912382074985563648451646791325239188996387948884474344843073802834614247934391742972912450814199068661502785682679174941351324818947281572781872231360905341133250550515243750815328780848078181253822442431775324972475073316523288112247000524189499252746158191190324004162706873135691310202816226927879287707556072072240856745249515536745582497532016166125271175405640792525963319171316949093362615782510067293744565353262728856253507284476831019879146180272635462327195502186548060015106175246609973450243170039338658695366201321246189746624084253378844360214350834044495026171938210595138972190821887168391937036188437574578846552996495827630864617103157716376114703112007136736579772939477026031737494783902308285390416242772159138899208273555507519262511996625115091792127942604384264425861630507918934641449026538376192139261521608775332103946499321939765871776633140718086815064309704197169292323029570626600615039612769933395275122270698407097702554616564065987472961220305403088975444350996786094360500896021269974422962205040870570434869182799463784460415349944840802597346469320191401294101527895472748713265565334261049175423545094888124100352782049585707657695763285545824392344549899643459321312591513383857972611700756201909069403337039968417389446850298697465765464666293356888171442836957440783320174704521645743621532100545502304098688998960016836937202860092650176182220032223569692995165993339356900367284991910734240963086612511856613036633460905405749009875326460550538023073262823933475455926663167568513611889189666725688745451479339009015909102681228972483098195950294580645525780153132727076455109362905312306926444749128705964455969955693026326460622178689232022166373352657107091230949325746899777544994123497168140143399542206034699565295853142233003701595177055025922654370914136519025431384575699389577851688472112725442539721314449680259594914756298130761714803296826911448970982267381288121563412676988484880649896738267825400014120019630669956333233046747316307610667154944874526676489928152266822517339358069903732247208087320779667810390122184002188762071321044403782157903166206903425599495605214034958770005302176404374520208271260813568004262447786157027858677615154181386676255270055827643592750919646817126581804018140160374157937486234101218840033778838560961876242409587475838225746212178115746435858520055811720981110183431915377984908206153894104672940765383782688542042568141058726840023120882580318250919347764658447336790347870914103630922283901216123796155192528707427211948523678723181307391407129120604879657774389719656579992093140969084489142781351523629501977805643969093193942911643818981945889800521609760877509484268607679012568454840163156489800553814705616121547390614250341403735929178685545982147817754792221265359484469768563961293212188133488407282301110417154542137026086251710501143124069993760129612538505029166543247772229944745943625202211553556686831582676792028053832710491913637039236444434711347934914271534160490523907316687448101160609744499998167764662749945465087318098709631880962604706734242791135079509662492492443411205018079103116094617477085742776896486838234434675602968114588484554353549952396707401673191544965415539176341003375508000050671285317739615720588928792646800450521250689859401792027573751086888465588134214023204955603516923534596424285169601270235983896630536706723126917531942229814406356740373152570761600915390650371001208767443448542341007936317296341543533671325382344764404699948320522911382544784314743463578733083083332798464085148056835088348771364584938850163722963134617508069311527255439607559245406236211404078170127851312491010904400908162242550881561234093860111465641334345069020854005259065056646858552938787755702622652354213169265503636021849440072402603656867689437044559516087237144593684131686518151098018322975207623389474562615992058521092032347683990779564382007455769228222910387667377389716212506969531072777767777455937946806887571891771059977253248727745706705714808556303529633420265209307475505685017177569540346076490321222414060178645894546922452969811293786834427299591541904503669151074568756596007324468225028104940100141890087485310863881670570428300571253870690429986476859050956493758003189930489832362373163558927902216138658259729996756818772191847756314027986164999937659043289933536331817145174126339106256319232977354458941334729026155688952235211158452528534077014825233586400915890084490102618156933331824561130673012612705530525610839479850510416896732791795750520795636669229643573920244973930266453113961888297075224722713485094892899287457362341593039898535644007054625081006254993166259308798350641528041430146674388088505143376386918727521593416518011523520043923736325332498308761507274086789025693235139372434522570749563962675441703207543797070211669548822929595682368713016795516469493992935062501771110089993388914884347266358016272379658797598845615665525592689602607444710309626632300148092522896504257048798115376803941795083585027742986183099636511481377300371013305974142113542249919864075702116764366278393325558407556372432933314665474727680598105071275755630728001331133851867000377262022331740539216384531062314407478521227959073735608567675581893742949275053720589130879250834008758866929981429530370150906340848335877171195139759917409915196605457792869297173935800037967771367683848770799586245049769820415355058592907560132678622063679747077712388124403424419715594141602841142881941095840804132660994701204688236924439832910615837517995101308017397429015920064357606322910476281863382694865720238163197623848641974452398665710690984535037950332861384012147174680712700647817864924316976543006194820383739336466644840126562658110125230426301459948454745574761163691731550959657400542041783280670951993698841066994231416147424939059839914469264147973307668215903460390938410924256501345224482931882645845712676568196683854304369781935022271128951034771914287723403786226882613756815480561438644875071400424018695911439444689823806861435154052038157625701139911974897809953422773697147690269001222846962857440495558702138942972795733882721811965876211823201578257879008210553482049541387142345957605337840803828159789555233053487709017511119345591705916465384896343628080749936054792541670916499103613683432133086133537796872497253159014306573488121232842893594260167296818076837013951180537262438857795885586956617573819713758284219909432783710086092312618933896357944648732092623522751467109201289719636179409727740108071404122406849389189678214716661775653212493265644913054247883136654013737205359500375928774493227969059013709536862808647817881774490608762895755487904410022737743002481517403303434442901854674230095119850673230644964081411490975523049530879665209967372634004752902587070093086061575334902481395301454103826153677996018571424078559264477776951720458923651794740953941860450647633984117211089694940420765281387631991742224810565578760800242419191324178040272966930240652416758239309816670257980343029632193850576113210366399466403046843801877271780402817812895988545033693205616809449938164171542229570123461811496118194080826396956622955779437171176096307417031704020408459704118904717057330386938029733582034221677233585665854366899001080440993620284462671578706668853272460072664452791840920181849389188869338483062682679096351335618908833879576923803259269693341220806473043587701101287141299892256246978134284597648097633293821303112888736743200535750571445051712581231512557796280813455520588365870969954687685943662064577346651586391976859846895635634575954028951106169868835828421247393559756295095199169261025847865078563901368878598543831675268144927785814908284645740597604776198026657877793976073730563478596253391654660550492880131283894549364979757310822970583992720693704621235416368726450875351911227694146215702717923715194674800645758834635377353038856085059685447858992114686428624666225726471602181275406867653012017708031077204638503487064148905264532228579202989202655113051743713692872306970828234177168566403937228950965039540116612341123507920809318914691995488445647425358033339361904017973123878993986947250709022036504864748085266965301843778726198571794615367900687438067319366663555037933059698489021992180397198177048356418948776397615919043778969594888757573552887979971721447150575593804800917582644343001553259045014897193082166867662818003286916519300466978151279165288109510982527245336685674701179117779653443671439257814131264829922625161477873097844847223096532847276426664835469896372048621328753971081487594445692040798966457726453358766652914694400416217338102428963436740356901666629289528691963301449348450699042312693683228049623277934822158072540377199410262798152885886730076184398264033758007397616672369082694112136028018114564866519153675044733969026220916436066718423522651183629430349313320914834592951210275785479791012698306954956915559278388377298014890212732904416021723810901183274897354535676389341689159158171482250827605071210879698833503404672097930600646132286603611236183289229230637267205774363142305136440630973109874199229076039285615790607720100099278927121011286077031069730294265846179021844448601169437157800765911674117854889724926087985130357240285503197514243813788736159977758143960547235340197158358193856019922000807865644636058585343662348478619738971950131759483460143930046036170821778922880580362323307287596664673613850296525220061837779461790506651044776160588115446807825669383823484167592222262987298375166576804808382155686995530939447241257954194226826239294552405713961975440402979907548806674234046303575023172152854287914601957569495537975420729899789645607141679470779640526264214244162947245523912404459290297137990619079617730229948214179353917976873606931186118738479011337333411083334402413143384051717473990622602675141749694904993709556788136874867857392241365787167505561953521676711627023113934679709441458207357680418060776548034990491921338323369149904836492505743447185446899765767720863183976834010370314579892233355073267472892005685706346808736317228626473476629622195461623921463669255441728588992426178904079060711094283770093925861045320886090580125507255865543759090262547458463461490675264932884004203069024240370877553870398046223392463512733835803523911234099747703284542660288856525993389572310704357093675852531702324344247629397779606244987433102529657587703636078056349496422640597410592753376955362460418675313727224820370609830186163463139478016371741385556598538353967179703858121060059085858621309732147349951321735306901635496421519920399219540438928068849726042929478614248999006021385105327149789079887327705203069013054963443285908909174859639267804515272904038445354665946852905006007068892112715293089170674379700282315892795759540386812557685852703249723237157020390454452707537371517957004244034495636261548486145172723566730173087008655606734856082166732258978799595844391401689858577543064905455050343653026044900600992763748020265678488893935712199937007654945020422881827306062860226137099879851204740287467920607041613596852625109642764669421734033467184599924194133305823819809755143972952793892031310885412522869980358277840856384262253519822894250244516572591907073494070333970586226380797605022415948781535813811276805563030555266434271191460857713959751403565267627123511946237045638726181083083394926694166362328842484133078307763514424910179971966470252532151101741651336650545072001049757513250080406605519109183758996007457078924544773294252304604970430446861528845285724080010265057465995820764151844757674358529645659076246384922739101839006365516008427969437362253811061399846305007958432920633738040773354745786613407443470729914247310741044314328536501071470430653362085449550405371555876956567718796194764222293185928153330108433978353888117525344564642090970316076119470498034459568082097153604325513184543949576828989793565022177677993217655910086186688495660973084407764648772945076133350809764548578982602545351467286444614643903713144585129997352573617315864313802907718431437764624740174925750739872832670293642070868776359965079489870939000178320854529910641769273023175910753439311789351920496788417270639052975002750480020822190306572423949806581068608401659325737030397962691411481715992128016380155706561541388444905617069564815100776265939950912625055400408539694729902516319903397072320473152911927479674147111875930915769685028492751486785712682218862267965709208732016165073064940384435216164533394769380337470758321723727348076347878690093601747093519689114633683787415706830711154887813315996732585722299716679243719869862743423024685477621801758639566298413436656992921030394920659442499065141485601909461167406514227742542937270828143183698044053170098210943314857432623165137375641677454962483046903054484929794135682500457990710768539133151503637977589617954728236365103743908546441421001925614012480019727480289889188192452914481076776061247615745880202027716142440889410497481940726290711821041543802926209994922211108997535347928252835382035794534511457180905413024924350698938032863433977679575800465602255998089397602690018262426103683969021476048039868116192764560528026126482082128166634355731400337383678539569022618680677467007477494554908167284139289392774771580770784503468070342538327306960731949375275234979062922088936837849280711714156604461321082869282428515639449544048376007314415908949566585578749131861227287746445342812985747545140828045267249832554695441847863321085963582747103056749962009973043487344303759520797905624965081983787911656726885314703680116312704499063235877959615694160853783975285742413969184202478292885592770175953017959280514645307974571238457406880109284588721243367897314143781853745837344669787049185778412218778355631736789228706805511783400436513376657634622094045381816303229571792662878022925145110995017888000014983638951764288902069230186570137496902338483581471669819203027094156856941163409745753109061822047785646803018300491973186372843942585348862359256299187814253816377106788485870751142448337930224349204401041488231319648395239065054976026944168555279776417266536145858744573766634632363564652802008230211881519717718605110113068421468088925444003950088923953001885411426217549919729116889599691245851034322630887731099132552399433386552359711689015441250424574059771592128200178810855448967687640616254083984428309518260929817974345890992001278863241069179032674761719109687190088829459903847882057709973791764789902161642143561715089819247119959245275267172720318460624481150828619248985588622947555091912295634107909585887677098713917137420430009839270276378805448591762103720306305195146827769874590452242738205129365605343291342532044644532877268909025999454807520094367521943621485414444016952471068411148316073646146752611597743925594276258249671123098479146640805043253572692821172209259444254180536480730083869623163996505923262397963744831300639023316265658016707554784891316195442128817413897120711965472881874719390206136418346578714676692704938250843992707772575463767511073922025874380523508229184742549264633529434578145166023703424524394313092090584336769857141421833778318733827521865202939902938678921259842531138568796011611766167909838608351366337272383409359263636238596916129353971431904654137085856120185399691756061697061949495318100456341265858503978649292509280868883555271042148647497920356691280865585043123316905111647641089886961965249552155252129341456745191127940144721103402037582806250209178192018877775331570618974075510428515330815604224688943478632693587139956956845659096584136767994202139021444464234400724038479386850976905141993604851927314388962167830623715320994853919363596441797309500251762112453353100635913139514346504663918964956233852166032501869584988615761119921544700845721958819085911091504194935011424948913771777417683694192095709311808614523719118138272460307548009016793010443138519511147940560127615429229625579028277071130952650497119238483077893991321353672776276555492510881306770279168620731541709387944847537099000202550931208453597051837419327729847688439897009992366556202723868803877711615140733400744204881407054125139116466013879368499287490898288496056846053629930484562851967430130205794736916147208128003606562186254862477715563398604736961327994110130641429776393757378607399990083464202667058938138722312512692263735733275525168992705135029054788182880149929699433233137911213314346751382592370566791763394810580670221815745579943555683539330598232636264524919056105037253700026351166134885650500377496465907128896097866278364194470133908404393471487171905438782983789997178027609798940383242211598443468295844798840788504666676603609856205631005797290761475257731564696312977461872262253453723144507573251575633623536562022754198072329965772935676775050171295550528858264572502226570544960172395233089174519411498537522262543782712992223587568315142875036000122250222831977451190825305809317657789515681773413736036492851604137480098966302923270864105562813661677491654802281585595822681587901326706004381191049360114877059620468880466280947459686896959675516075465896157519963467538564865156391441046484005756591988902353925206027775462080119276048500742998876546805728918891621146795851577734820586932247792522712555006321816389003989685674337197373679131011577348712769166987307406538415485532374057741279040596196301403872559960281726117142085794551566109508187336819776310061990801693227581264211945952687496261848052256795257733559867003868783004558899831755234163150558450562725463657110129441478360077643978182780464155533872400929750187980258535914785049067531463009370706910776722794914520549467000713638782418312769978918727919112899483519321356161146665231134051030661075285106629006689443840600372252785105064772391525283939894913325204225319263684535783228052119585420714563352007071843507344382793540361918095915922721173684623441676369248374295303755894856450054849168864526030241919596982407927100019244820013055573346800071006839139000590726041193536946383103814898136574940851774156730687287281314593920931014931568409956198732190307013222524611745122921552309443277784779018281042582563810087518863265011041710331047409657200758186374298993793320291416158126387640945129947136327198531737233301635073222342989984480656997606875809301431345602663738752799070798138293225367812370970437418888634316616745057409139524693237171629673927653264826994548794206937877310747466570862330029211976781786395105873510150145375428555587331921876067588441994583979725439096096005339372800710452283723623185360596036095283576005494552385503065206751513303097993812601710957738657845968267033136407762100205710095132562457985893403908871026851506011689273969408729339252504752447809506425635254396339938009293941958388932128212220709768611667184761786225915236411413939502526895976465588220233271256058328929955570917458423514473292017419081502434661754811838091487037964243930384977882214529237461063290542960201801780426444652419885035005271214858889969079554937640339831649494617575141518571948201602488478828454714707266071018241636034446120085702246258502942946120534138196137502776984769216676991188679586735466947651825176246717493665611793838323840805375654054495527034728845614498344824778381351158137333104643954028714800804944981150724114179508788841325797345901936252388391804766332276132612387225248501666598842035150166729454289213936849273728763509464453955184020415331121869486229902700835709017637342332431677308162095566519917908866904247661861903516080713026969341346224212725014904962704584648025640076275841866950967779557414619477135275102080209772570753550808751336162739492182249469576391225771351073276746116915311389460071446272881983634152911788306430092777235281601478170177012603732751808367086589384246810509027503240936151352352515053700983084712707853555966559874622662230641568850581083438018658340984506004836335031429535335332640730976659311848007074364882079893333264453165081953103740274651081534611639442215396604639986810399424467717374253344757601901615897860187169579364088543976839068852716854914779869589865534866408313756129134279965913464813586008451788499598004553438090244538835382593230321315634830259254594671813587608366661609614575236924739605513293221514819165670517949047992716951214822041824333315618653726589271818284606689921105109212974100485315734517341058640599061865647653136666753575344269158245278899132912959252756644545413283514329316097003523293826580245007397851225000261643995288105085588542068075158717093874578128398807377965769147271920322876700741344266287973053725510492018128811626938410914606097853285094524140154674099907722628691958611233905305006414282786589051332466143326295487365108407930993449540008347753948378050439079475791297556222466329798146330532276014166639600072662102374304855999218676698409179955379582382638174037918946113142272186257063516309763462796657628731958511557389213391805646335062293913362226221345933037975720790783862767520664352786092207311577037442180822254964014406331966440984241142858887442814850272157211746076587476722439776934150134910757031795238470593576753617798974913078371463797180959365392986767406179682734094193952086850773335175010187079453273303274298449386500504512667623994634019234687193494887575221935470869236895829585410907044538636331608802210470036208620747780240225859730801677202576933350849294208155713174360085744315588615540131816148550281712421213372551682409647742036907525788523566743661953152672524723982467535216777994356109121923302436760511780334861139071543139442439431524604949187495809397716540785698676167435999500607245199568129513489598343575170538712329943294922058535141203929076782700109051201906547525177573073079837116682237066463041041115037575689574172218111504401620652646237304633082966467322231133662160639301999234694059755887420045807146581844124934300400347428521809165306051803857733752160172153455156397408163230496779612286878605960755857052813653771384516337968899621450560687548274349415574631021829846701024764192528830408409930902813848418992383577757629625964395362564780632151377049201451558209433366614386225130222401831392940334396934103431653864509592420403789191700443810475568856577383646224639086700658350269252252574089833750401691151736090848256862452336987948519682797455511558293409210184328667851415674968998518060458997442131625232824811289812083162697433737919349151688428653930873111397336002421225242821936563317871466992960963766235051440016177808031507738767904425994415953973472261734229857466821238348233524888394239465957878516144202191942356824428953488559062424967465234348199609459725114049239137315934760745063310188361826260372888878872320725308814039261066636976084707977363182860532503388427358388691383249229832420535519642017920580085734526915197760040740304335155942832398015775699330294261112705568130840657079485554255505865946521185800006397147096812288413955122224940655855398604937209278517798533904393611413126759801180980888791109164196908666775188905555662188367700810301103145378336044299250721477576615219285265491112424605512642103222285126958975955584469745490078207759345048234859619361324114547660729538342976393142965296668557293824490100595959951050706592453099080104656619882710615224580255748790011100270513848551249060483394749937309110469112888644347721574899527673237225362307585735153159174913763800829132291525382971678983016258649308303778628747194162056683539836873644540497678462795512692651764947460827147464625891986548304373899278124668980333949676057830236298812996444905949807196416710881974406854947801900530086335273215711522753194010161914617237199094666591534997193180386997811415746183330736767183017538780147459703562508990928039583228131469669004372342330591716582529808792180972739677492735274974890377243815519456840214434468899906297554816422984429429428927813297923135836440601505822905516416584584598060843714870825241153881333671047411515996869516851436317322676055274434640682707379420614342576220808787574187625134875156440613920585446870968404248572110152607824365995069321382406807621446131332234741940899254903839923654388413399437059905879958132901726336841800833193427029290329814367439995022782708190624510158986025553015672572891312898357838694405280043818800626184244826515693959380436293505118572756389026426243456930525325219670998441177107096384608586212582967137498102649115803503725229876538405777341012378731015143835400205609953700460157814918095987392743395408511109619320082833121398858137522247570844430472188326578747314698039843815604304138193690814646897826758778871494881635686575954009375065144403816020307868401180850590900659650609605878632595006355782683745442624737016772991153937598422524526308654894357758105677831770093158834551667800149461334009256596473666972993105954958089881021515913816995718592720767866899478636408241410435379037576375762074270423168224712696379428939658385352656249786837935464147796563926295822565659338719985987867888947603700704817042769639740257415786561668664719146174687098116298755941565208893807049617157595891890868816865190620295927370014230737316493121879502745504344055688074201967038851182662757376166631409428396500092837622246628937188075032121554283122180931616030329332086565053225169343471561207289096463050870343779641397445266442651122719576855014352040044554237398563055260957271204177290026615372574732370678127483355813946369993299224418311253201349040833333282690888963801221171521153414961207029882922177146094889584324709201104827386603258747894344349680364944647712587231479115605362218419438048731865351406587234926063578581873735038655417164785328999605860537620338643956409339915903811255918539772226901979821022004467944379473401802889636577230712311804486926682044528777940700993612840502798986720175612183093868842608736724121794232617835896602815575468376756351329458388463183926734650885259197299190156278834395347124539788312547821615892987433892451448299072654647841278853422923346804843791401906582162991361545833171373782385982769526322665506622839730204224143207810420652797681575157370535113908614461504510350575956791167135181794412838230125753550742144673088169219681600289876453734302515744268153869156115545401920170564756637105362777177450791828031275138349801570917999821829603284649805823037294998460359548732875914233953547108955180343350803637033114811809072742674468372579655518207631396359840639160245916503561834548775751713490265096578253222259682954527179755820231460629287862639691686409903755817004230563254549602786571843588053745543953694757801458527517573828127922263778508561336376662673770317624087338239162394323393123428976409090066967997168998229691157854972264722211249285352021996309470097513838305551692735507028584456890859075827179177589737066886098149583291480679800453668679352747009124454384601730912536090289061633784321021959686527628894505143045330739363422467371894961350416511885737093890612580644106969765875475006635866113365017828035831311233543997088336408496101889465500451872602406107856177130411438631378263853006200550583408750308303864300543778507149519160645471465313704550366484692351397689955978103873215146003213843163185696760656325497462051015515587751144693891540668473129689092170049061116203986847909736992513000914391009496064530668269682446635302582565087814911596443454187065700069227603597461635383858901822089261172761821834875645798909740888711274019137485551926950503738934912623858521454412156861485704069041593366094817139342351216914120262639712775470308721211881708101914512982512444153786584522350529209421569256280692515503436514698060718898953260581462301952981045807783081635782159083855840084766380229954772326066361886145581349963442734174378360513964434156541561905429281951275607330440090082080051570704138040861155943171915078544645030039303436290227736979197491754179421607714170062594503184556064563609027085959770379416249805905492662274672777281399095238047380472441159064182558847702792948553722646607395768546524845608605661379550606713771655392397327427258927199191498085745191398321639418230861510538692910057737543252395539822880622187634798129087692743947429674934912945409090188182686060376715137071431620110358438400282539705821953748004432866191726095040667110802352126224725586049188112539566143710421190776246082596741396202751966921603899966510346027044066909819520772272800664170881024041575048203368076200188427125617275669794268273089542677292472784205245697729858947357325301506561764885801840701286657229666875968167483809555906480544151683822108600666677199484560970193928574439205292661327502635213388292433398744864287983882819596713670980599821110536061047256625568383925386122771883725121203013016308170904308137274690134584220586825925007634019760756633963316125509535301382030175600213406893005928272042539109063465429319897085637269730199113713132482630669944563696379642706470209501397166829003040563730704658485752066186238904660777420403867667430084201800404391608184981311463745129477623680067522430732851687016798845780055483535565876046969889447888215607886441146712103037262456749332200242215660762517221895331114828730061202732826675928210662762230131581180437996837446714208251118889827632248182243199175043414405512939395826240234031837422309710438050940025525747426881897076277325296071639931186405764343902092997802206739402201967037550148005246705275864239513069494026596056037566158037608575565640692405873822577253106059267405400027379703534486383833501398324364693015828967992334473730800003321482315810543018274367407968413436470867967504928551099009984095375133194328845122069245524784854742912331654236445523100112544896091040317852541334559823284730290442356923193469791196065889810933911231783039293785897624658345224895592443092206871496669575917739145695800336045013018945337482340792161988348522581118962968444553896974342312545276909638479983376022871192953643524223547895146113054937681111823246975022607356392166467521992745892745795941135665937554424098730364399934754316297447596280986624438539626191096288231303244202104426604903857282570396038705577808673397415593527468521837596856685064763516196417118826394470122920830629519955987714571723500634755052432950498453610368399303114604396193509697817860928756573522719913487968595444211533203936856263872604356993321303426589016679147796129090662993411224480118761082313764968919100992815824715077137269273811231040353208013269117218746287886679156078282101082951482008062487168519416498697292147140244004092018620835435872563049955962293894115640300472054426801132881066515494357334062735281832457033928082755876298042026017056454009039719912640573089337743067326267459791770760334366961550521966966927403876602929000957562777931625361652137543175864700741861108715786921301708059364853107897151747369901155286822800844173224619890706761029173145025662170069582896822221603779453862705760407932572686134951414548796001814643496048725126265740554388956691746680802458064327171904333201998525967571798710101469763959666957772588352312647881813047692476747186950108064302877103092826514412661886665275362280213992102410597714626367122408291515195588252101713330517449770194712863622888116074980463884851522060004849390018831882655346233718892169147219760989206199515396481340866760786984305999339904353005382165292160784328371394624597912189279109926270313273265968688736310225199872911020698246258870900437478092636151243512964836259462196110581601694505544431091709399923938800732305159456382230122240270458988755831713472162725100796218358927835315988878713964258940442873792520034363753628271974418874358780401585477313933110474026900077192769054226122291369088055806755621050508570233693515321827698918861869193544739495371365680725075786723297204853592369715026635094627034687977943217472816130000050225543638005772012634593826378250571139388888873264890583054238212516822045791258748874234387399762892344923734972820072108493679370579442437813207543613176591280396016199989255759411409986217940665615322572222483156503704701559670820956283149975607779326691454884403182357704118866120624404572778197958693425763243624163105177587613297631562318922463626979937999894751240218394297878441429018183679560470947548583821931589152256286312990992475547086575924560039854761860944153724408207858616454781662612442357689633745384494456692154118066257673342113758902393733986455875906067161168417031069741857699668569275041412262652299454620520423401758340150937419626726642461596950374962972239195767473244950776213140461428369528668321662615331733999162209811928680696809727474692968136451014864948712838558800422689674601543152105349093776974602368359796527068745714180667614392955492068078941733786712749114149961436198799927037821842775330089642584614016961392358848742577783935163208728589616564940470527560535018512570178700575333761843416829554246396587202215465646565573590175457894578296737328412040803613688948096218515455792168533953408944284198936678701131060505041685518882689234289282977319587043784624898359425175504787801537820017718989063710076290130940091720583206462914892447647043543589067466599122334590603649204611309370609478666855938858082951958031357802819968214749629041005526427193599214769052835369893804154767004046964088798604972974507723446090455133840638125445164100716223126742593356553069667870456038505235807557540895669489064573123147702088483742959889866948657398555921061363386959553880933650658367976577726075950261714878153787724947245517220879226620228619594328767293297312359775897281303185529501186813833124895777472872883170489468489685892844081109627505012579556158515389431893503822545164554431527423491426291197744887059275303596543505586110947092778060282603269055585452633428235626083266771541333601981285949825264443650357779547689926519245431609123823840714246047120821572376979806952937653130451458918180889940170888980963243039745173804362158952163009873411387571876415794205380301921156844188603414414750575285269227485725788560200303161835081351227413592185439379963536521412708589909603941220560236316080981423805058073053279882672007219159130694098628061450602829305013221885999638049467428625558047630275230825886018720716741346180780594661200782718350479389187294583615438486913015875711658250513541638731171351055826699280862421865811421239800794632793919338133758701862761112750283652505934563534851106543916665389489180568390022621414018471241204090590100594730901454153337402702127960969658103095839460182383009503143878428274892383833276711837066218488326843115836040815609241425806121062657218843899837960514405603816378056907508920765006870312793271351543991392448535035957867081714627395003694420807754509963778776390015554667854078491927440027880279761614806889438109151323091520873052454027659765153176322077346532065403899168470738954023919995929689016783049350528921771436289808732493215629617027731707598231849547806747886282506349933390949140848348403285441428079307553059403632640478339958379437941532435688595675564457506638751005838798553771058319273842637860986158884100477640092902477614359858201494337084489521034911783455819358149370430918826034903902069849178785862045190772072743157644709670130315560219658419374151425021616729507594084985350684940939131701102473398367338090404229679326418694513798754843512859556049393424405101300416080048785395573246076683990473094709972620198484740418659545886780642770313242299211740421717394228601048173655747847957994895559004798013353188853494088735776058637830736616392558688890952056401834422275036898942106276810776000536127770069425981817161125357469987908937035364882008134637263464850158587248116587321423079256561082330682848765537134026156205704779647177868721861965669568096895666864992074320778981490664944871184319937464101042385357214758933816290052715167382879979500522475455441215941979412766136966783874121332544912554221680529899362226703175727470694778153337739776147567325580365160044601160507100353301738234936658493272482583127142089247305296968984868505322698727220954512879239267998297545275048548540154458163891836972085826639428631805676737690172363525878349406406169677065621100165321166880849901865956697519365003261606270835962056154213083972540415763912711135181296009473404031130546601821781531506220183020498687068757732432830650252448348196243513857519914664407153347979827689400848554537245358319052782251442370564053591093367010018043307632949937318936577570891241657053088500095456753197322174039157080455016691803316412271017241702338252900837642062497844587529792420606224531598724535586452812099145019930240050796389081674081137628967489394449412154762081571569347858052896506371205474257895175953661604944905290223134852069560565875619439465871350404034794984402184004565402468464499617081310872903483206386551075985687750088312393147791197269707073076084884226317175858012504218742543833679612205735258400467444716907635246695073087164868643430243270692179215637753842177097149863402074190825278301733562922899384644809080958706375104292353677079301630611679867820210816091699951515406322774956790215403140453107261218336102752982269430187390922256579317175228433621000480403750357380332423696956573189836593141335803461464884987722993551917623202675979224095655776096208064169812188634771525432514315789965670196657839524345627423963581655820982952608751765520779003860817826245940632640981645209030961596145368193481199611830697500184218438603236950187981496367667807861459546160642571523234339471526000508197904841711316239822565756536409403199203533698383007502302990430907744562396733053449906700526046536387628383835642309299172712780507364112111131671403839229358866402165267961843477431272707394887067441990426001788680600487699639482894521643619215843500086967542532198068482035770860517636558650739360144297803132769294421876568226941089466485150820536173661113528038631364099298512586750376561961839886304950636565757567802788571955267049157550971253177069866012602935851202442244975164593498731824089360852370164450241713628484057699945738244430475630482529592377582244789311231444257983267178449010347922813466764459432050703729911532848864612523967599911535616638768203090152734692164511130826814627236073098676919638392816843248969444053487082730487564780909379438378370557320838342633353125577448190683014134940881736455470720518378307600545568130533660381634063455048010786244417684614519672665945301972763033240681970106853815605186209250948568142175250086382869854952112344931273519895897805409314767191849687719515249199179349335935333291206972502345144616562820267179553163355575979467899091588579204262429544397231398293602157567075287093377694505645231653799950030573155630541756848852517330404698048230689529529461045303157205131621440976266071260170378637340282292326983361401179366423008222125961752783524363549035792513460119593870814437015872016218279743887373660959806600324383076584123750888844285809575792707726403905285878938047036177660013201004212190381255022547146059140706876856462349416823374851217456338128926664823844500007742954221929746223213294312349109426923988749795207232173275043551920394096440905275729514650223081212939204622682195545602958387055741070150081734231582626247444719899246040734636733798545924628751984283695798429490040688461937251638693997944518025585037639972184481295776324929479301513046036983515228729889641506586123826318218557055562031333541952689148640623363020958043640035507766765232446788755019749966827024782893141900687973656390023456578546974339352850628347751459428453399558428626749327487289459790148809256133377756469880706750563730808877882536913999959794357140086626839032286406877792900066477941775353181511732440511603245088233762405080360098956390111052675390258997411288371417707090616525749806104268393206170304448756173743769347214719472144403782820681998439154771923602924678094103653893576378278424811069200794730852113970766135733323626877305272426273381738168420551303323351445697735215548527212508470623593341275863586405458358335231281207464043042281690602610724771774844447198168195738320928868985619464131903853878487279644513374406128659760367522615425240355195647182680560479093533097324595149293207889599524450443676602245765805765533294757654833683913471301286139081910857915871312475203683528481083083261264505292414284924918661931007293981118140077839024950743555120070598955087533923147183730715754816176912526241248897052463079065542017566770124813698664826190961208948881978156803309215776702417158705182157768000717552477673142386700379659073626930740891052439396817577149779078200118423321633812953590929940486853400508476933367082705786540478899524453486034067688853742740903522731816795899092812972085138570538080362690194467037737890237194717630704723919653044553481802807027267172536282448718125637747191191658376771630451518601764404146998580817663267410519394072551552663808003473881647343886251148829332072342989598803845242635285798011956262263644197345307710244390214478321742179938752599071197732191675476176131685376777249692298839393256605067848404323585149052825427102519683236987798932155509231569860020563379201434118446779750401438212863677629280897119784295324772210926256834503334817342326505717350545110699761257424733315653749003840907472192101729648006819115324652324362962773360636151301209094217679586339749927401741401064882667527216470139428174676057388738738527096556630139565050743217916998373669607276658843491771651593057905133769894356156066379556046045420359540360931997601493102476874082122713148273203566456980672845235474495222406312087759732746371383595500280416499378380065044215851862309804188094894119986690490927028990335695383889269574235399425517008152082015257397162681085536946368496091014025546266731089229713339264319577863165318366790398638990191256659279359750361151185135137624939300935166892014670851325510868854549346816703787851047891056579337510654056000231877990053729342108457367584441721605298386661502179528283213152835551732265521653696266395828177801054687782344158966297491122309055041568172760963344595490768584803387482012937240456776144214398384741732888537456530611294286000571494649028322754549198328661957506553247578252694295367745599473776260352457896631371811088067825370556198835013385274232858541345780369104711615290654656767593064522181069754964687607909752779786964127286793109848891347847117836538934056350485644838872061170117464592564276085905058703214380995924029490051959950653038833921145436274903538929144166624184713233648034685610297907150283761856693348229404297896826026403976117219532600575641728034752176934183966727560845730818702751350581599806820343857555432643035001001130726894213519825437871705122110014783790253919532439242561697308772761680174031793164695750069855695021796835438409226076143181171368985465780789244661842237352935658029377716830661916068861268066415146531615502771623369346566264974444155935267065041780031419512013812237348476756224057940184807048541345967520572039445236045461901176325679730844514864117127250615661727845149773192447300524968791201730547470710320994207136040313519517877979170037493816448776934683512558245871381041197132047968549243191704960461752463111471766235173694316385890521559659435396866286779778731246898459192655630428342854001752397172203341976846533933989369880531878235645635268172116182059247439441222529662906449631610674405235856439969187066055037976484808220099796873892728698884642412405458386540737045274350737335268694760796699967125928365310422090553190342800116751879455588252383095257730075399446624159816293891997873262140049418727924939027165152170793389485211343296643897753163435230674752333873112103811302635308222057389722055776859164168943973239585095843146426710670755217813037085307310756049813888938958826859306814120229255581802837773127437167632071906098957277707226174006274442806140667424195850851483719529897051553980988466240850271567710085675220558255741647097679782514704686091169879937529212563476793894404793116231251826126996464189260856838229608756705550035971226699309710535249469596792787906164142117492446453625167957067174650905943953080036681191166916079924642113840718102423707785937851386494753495690004093999002955653436015753033804280588505825137166718620706370843480712918878252437473471823657004040544008442665873242898757268665975246509068589826259397951580122289554103910895043466213694945113225030026415392187232875482881887008199994643606163989331026621666213808869155322091924874771047087520424861203792905482870677509693076177461713019110753381374699293194032213049706565463922986870574170933018563753905187821793960628400872426295192334388012375706454558755436378317011484111792716330798560167782775656858347740927254818250207682507464795052483638297320304305077339647368265202435695755761836399347622463684520069439267732235360579800356072117489437095542344251294793373773790623401995407370820350583590935104268257526284699774475658685673743929988669640741465150626811577231130470562536821104397954447735327479226725299449720324027118780838873609162054530599582846777071030229698693226552195955837039384157651109233441609641917276738859481980667968266705141916369875565118064347780054497163341327592901257743972454720926170936768723995479889162541472537947652339494965127181352141025382887376098029698569801355569477029535634717952294292795163012808169364159292717432358111708091446042868036916182405964390037488794705656428040553837141676104921887428856633224342969924767418013658822683818465023102955191387289114936455088318328203858702497202122419565625961567597599923767870872727609944114102848866134384180962391744416565631820265556312144584819240298183953632942603758358663671977513703833148514413771644263858549219195906671286101514543690938478301131218039172763551525521622276060459774545080045257303686898325921707879198858446668761062490897990129699816186781707021180309594297260694263019033280112362106763995997753911774853680872047803202356160843039095142762569574346723557028728581979105704719628956466550726926142619721440117205166346201806428724239471833130350673843470526612748881466716395287739709443521717491632065681917570246050671071802305281217590823204710227446253382247206735224231873682186879993816231757098574706879322740743609606572578214430143574024608921073519190013882756517365255727658290652346907914898996403388580251968371630585892785377096153874673610828146796083385983865884832636513100787859397071911037914412252338534828406640047212675621562348486452390791615226541186224465337070467481051735828956052647574264333036466887026212866516952058658715676141947659146183490026613029143528592874397191432787318034029429874362252303461488445466457795976450418822046268294894409056137031095743161236434118195370395903142432386846274569370030267628236336728586362924058612484379058389702399128961797543126737419003666723434843883995418650259556679507126450384132105549513237539843053310964884141250883454652760109664937268158568734323741983107724379834433317165501678277332922322181813639516914674495653388445449860776980375083904212588383759927569364604754134022255191055758681710025937900396710596131285592236801152029261596899864503158480058678743111678518026905979776579110814100460920460018251046654444810719976170230110219224094674399603215627730850935514251928223775865882783240726251729407788889971945522238349624358951929190136328373188280982772903517335995440175881098103445284114904054354558149032189123185188660605417574356103865227021534821100099775419633950545595847596267215789283602153535177346844804139080437658586582001036848650449685822027913391676924877436945016812511419176030160830007224235137577862607228976697104902914090561709495257834810926838652006666147391595858958529746769732252367655398427303339223973757821438690442138899373777521642139705703736668054793335038432623134031869854305932980354746689899177576377126069559649764311850387587087580897707637321024796945410455857798485509649860734822259893334529959710777061887609481020990819950120204414482888141060861681419123499250954728456762319105709346862189606763970058272714432790930549929565921482233139355191805307259811090111481224399175104985574130946351466507682070775476081543995089622770176463554200917605068367986255758502581729234984441330697002779525403511082234658124116076168728495332431885152206860442812031162251627474685711028520525369694878589093334931775803096817335554575445561786464989299098176162702352456766813435661412951201030024078675264099273669944354805969459057133052115028782648964687708837964033305258182764359386477656847770379835714380595149450246644859250033815952009143196876031802473617096141744100513933766354068345983756364478578414423843809359026259612480557792449276722660452318139892760435800547882615740630106020233942815275787489530683799518189364857285918529289558832146609275084302200915805540036813963850857451700983432651515288108149215640687678514284859156203933192192681548284201811773897007240746822215157066968591867560921251350365040857194242686915033794536436816308538316319511168642709380067371517431194560240892028396005566889660606514513573599099306148995960115483291477637187541763406775972141818557250992800879576212704555160870742261566178916803777706416603383362049951644662050195774791127658944330830537006365724746848064368995037978892342411734408147511332793340112723300884174894297809383921484284004565585375799356186681964336306321124755078368719974555403439508967292884756461888002669846015584024291620547769959498290148769060915812830987722002962115592609529536093097035163053543004277587336558836839744227820956190102982523681119925370742186679369195985761839459073365753319023999532791592478422519807537971929067772021031977129452019420538891994107610882737068322002674334928636261429365351322772621863747547215460759367490149922319950790068989536917667322188337103336489990343081462669977178664992880694647074762042692457608247095365598191067055517011225339349637202945641196773584284094765984959908481066397095101486965543150399356646511341862229076052065107781823346629075542850975948175306721161382910413043807909052182207282394604302448610202976506615534065902917385333063493818365974596433250815714812917279229914716210479182839443100090590450166741978226386960966029464478519228984853801489905083998550340152382980337325286526464997495094012285851315390175447189412571330076752703229634345583513450939661393520092952115760304336568018494967810807182632311952222810496069828802687997936591776584163889535431711648184890527644428450184014523336208607695200194231546412172794733728603980892895142588915501234768707232863737387569817646797052568814289983062071658613154171660556054394950113855598314073314692978321929666701828332342378378820067369721425114974739155999601884618236087066659667017543864533159822306695884057500217958885630362528054928841365641347025146389595002912092973789436592449827459260050556931992462811140189941669210924842233798065298530292039855799153369843294015585364844927155726679210774214429749577004309575186481100655285895263987639987591560259535448906030352725803999069530746598998803309400240066726726579814414693898556797734786262887051893050054638700118040867342224221909889875195432158312726475561123954995888956264383347329700175203781322256941989597767671609682067845969754604374686903491830083831044135106038812548803429190783286605860243566395101368531140102668186052369189550100839304441473183489150536862252626237453239127070534753316767295405011747278811010647109874865987703065976023321818942920929039513848684521846109005654854565448466868507707945422418129819406462217684608641832649320433933880027178037639215126915814904893084170085175272921210674765919523122091566577310122725725820327477779530398629918357225176804687572096028821531801101621479408219358245617509707918232841948367671695708234194404975324686166789521816340317396431814871892437674599892947612291843119068618860087280604182792093720058308531609537220287571200004915673677546838752486633366300814832862383152016411032777142056250057523300055506203428423354631057940368482575398967292611514130253027242386363366590812402815933689515884254488846423881271884849561709514642905234548665048979087624905313726843827192336751905926721931400205145094481437828333390983870430434932675077155477536625036122772194592444386171533947415693089617116383143225419377984254501599989806959642607845683883501767162761996537571917473311484359875423703379513008230203039022758032828942817729479296039336804081729557853523917484039836719349893457172381128250498788179878912755336151811891519549234892014267578142127573616401779918012110967949317363580578965952281688005173899404979395072417664608495690626426652157276395195306670974433812156191845703856923145950716232135328985092156718191404783288480795249177181918689727946038583314457301843387973123214995024947099054293083206826407739027009051859316502272137057707263598066534450300620418665673367497939959480843280584553744157543850238921728539246184042048089626911683996896109065145210248706444602563780730665985668842165665903194666694591255788207544951932185815037228546936765998324991847345206504308675438049736246424505253817327645796047506181387125334184091135544191560933598800597165961403564068225958844606902863879069350142798339002954160619540879361790371255196007409937942954741037178014717968535467812471983549729827279797579338300499875849344448556514088501797318311929937592046619795588179125204685319724697466128451613472861276231021603292374735634961867276698335349767985667405457530572660114176628416689010418844654097891876580328706380609412390060932600735160860401553092661641445112877064663678576582935632673763013325894200738714096544468735531684767407293115498025514011376416698555089236467327180315323719367368298565014987226586834348256343797356340645108650902814377124666195382239022855181302285971413333788667447974871978884218869706639002423574082867147113357021651988765531475936635354277009211212883469496779717073121569110292266420430220252323927975665007066976913427399297979132872462651588315803308991369422689482371826221687330125366824465875386233265711832367665409693879556618425054669975406690252684698828637800521635607246596564485393635832014173997708263722868038505177044728647064893624112989190208180554356854093123563998880598028519541648349538379098817824148361025291283925954130010568408927917046727571375194447298520912495680925081933760442988755713971572495605589721415104371516861226381054136082103317684076375067360654687467194709763804934265997077167819113559912883811884197562217888405140771940716442070899640114182475227793189884974252889836026435698305510151988356843096378992242101296017931244963002190685157086673277994133436189421736138829127775030016196086470050040224725162639639099384728479883765121511940674151145809649155564482577718589956722469378307839043406095495574107627077305568395879122635912577540276040506069773740845439023200298238624537336494163470733965469847532578295432806738120519945405295589974405557998598848581696233187137910166841457611614171153465205982530686860494694442948105776711668271614399668302556183686741666444537519621157474100833851259256956311589529758204479800550396935818188262967290806081914240935837659794286516021872782174257256664415986987044428779620040509082038596555698301041775556163705510979594825734722876875936608219369052877189595915303478317976315858405234230622299020599047468084144153826987073809908054625411310335146540621608447743107868303153798969267809989637715861927637201257910914313139510214938969692365244150344358870852646373002026185240519246708919390280705765806821791364298479457803852388099683008616988527342587317282614226085896988882042244399800369974226865139622995224185948336217426552235336260922482348235975173990828385143942217550501011512910313870380611645608939396130808413503603888627617127683696576231907980394406075016553253164876825333574659852941682968565571189784243690504162143060936883479373275824705967899929672197783355585308306425505474372102150314511977554275395397705152955620628745243671232912375738205435644843038247990093006494512737286635198954161719857142174634208669281871962088122509366627049874252276681872528860991861799404929775338661715006680431728575009450973973867436068410715185411822942486238921147611360708182038088645595050755750562185946951108151673658487207060042087933263106794264108294109672448032183075743048121843411359141428540365402632144219558548096327192487687154970734469161626953148258389339580537023259767302781336472750173563139031860658245128885841871581242892387554132523001998536238718904458712899376533153724828623643453017338161668011202918148250604854685376856623577903127175536399533091146943750964218490201087559375141847068323608411576563511370114711295370141525677641613768022423680653094172101311650335679645513136561454398845490956208555047877234061434873550771061498737414222718259637824782086363521953468821474512161733242729117534712373381424069569532504676378409770719453713740909488363879720784289473173402244002075115336963943711307964243019696568530043796589397127161512351227532026134269646597926819709573978405355980427783607272724888383530199832850299081835092745924563860918512336694947594345727795621708999872257808098021583528652535026672300205314525729983811820971970888342166461411337434708256479785792728572670151753084840486852725884033815453768083798779929387028660658670376508336652646967706825766310136597161695232410206946986684189772887418763769500206019502045055032832916290988783819653587628666978661302885991472357879808954639976952387181646952862132119712736410463424211683511590793067138551506443657731034114994194929280796759917701790646346605554762691887308382907832680853924483364979774898949445288104719170116137992531713012864889356188004013856098594823465496589654658885311340174697845420127344489800101063495495494234414507829143168985524530006820526408869137143581577699669724012226370330226766799783467996035737285151880863250323747009983994310178508322349846357111494874725498081585305984654182153224592601706846014650003873500368803839381966691420935566745012042694936400868120794005050700683981814530068870016924832777655837852593245992632637383662272865026267777362361251909828188257397564008379095243876824345653468453860887297123368538117926114874806770849895184510743806290671061602815918774277683035530725160870472647533311360996649195927363393585779856794792947878738559978949338618526873453376374597006941685998347308944061829918474811258892953157983037189129218885408796583504971264345928407029874316813333455422089428511129922927350186561844639758876692018373681621287817595572233596023006047595454846261849976178583921500005746594945144493056392605056544058721454238029818246025180588488599409875961618672883180148249066326667019676076548148611274420385496845477002626055904694318074217039931877553088039713598710535076371553326549811076512127950704895196904004868224608196590471291594697531172910696853958110255785550911053888506641350966238484602399051384867896952484040818827092469865975034928518612824292358028557950522293669890005692605696749491440651665175729027995566805462700793198585827622631287125070271065881367319612757289574272365163189426481364772646746026033979718699343372228011601754555015016132027987061689476347029508190911953245175339971071392015611443295493007081327387148576665264993229783941677422750827175145500464096599547377212145419429189308059262877226067022230233247746461391101133357252068572362801675946186700472146250929507492915662423218452392047833590327897937803542371983895513933429520061660904919813417833155202232109760893750311522410630660606699963181546163723367596254685413115959456312362537952466932561511704872601247740477704687838346614925283994719093324544629670060564816375224671600370188190736091735812274652558565898013149771619784179520584362745370924778284118404643705166621369354301176321657634994671182653870301043247948017145741081121411885527068361130900027763711815924853691620942322725422190634562522488160285351843468337005441812468723579432321635557895734959603656515775530063462702831100399703261413905112557994798716088954922123599820911364844790515877859448769742537831148799128223640916812380163131755064664241379152589918696167051135486395035195412750226970048634809862516443545288130652178129901011868442528633665797329046752818166800263523325960043002398167000511689730786225763272158420815964737848754722462419251322764298783254848805852135673533835423594781592120517581330627517374300308198340900879527578752658006023936225868864626678649938301845071876492166611097669040483860514831408468506406210946352912186062545805484086636993591467411840015250773219933234801667655027973602157923765017211852208284087281055471394370017751119962046070095257481342804097731383999889715601943935225344749666719742800150673738735231471874511162725385284063045072391037297193485358090471476255816609477016547627090675558552658096657644516274594304367147373858555875335291643279435060752780091148051052645611923977546577158203199334961438535574193267939726686730718812137758871477739996975191592273865246781598997251612005665940463797302664430159629061561150437298896353698494021360700123876232445479059169051680729930846179525044301606681322019503003542114015355344933045521260320289426755198303028465816913098513934502248118360388558851739253807231074916640041469337891443762428637633019639082808918172547416490432287000921688136126554067666316622708721444772369396240189076795507515703111383277564003207237264229764253086401429741057154346669530666054300691411061125595097988933774072065518643398115889995657223931597892843807222212314830600803952964092645972392017496233015262729187762161854460158139967001128289453716011741632736728654931505763596600688086206791366961625743033125433402897337956117504070234909894434533075420826549226738026580291288909581425837531951916069871491769470286607870858761046190123478046668579749616361230519989458952436498739655713349931623480620032067929995743077747229674970876606281249009354344017510702144810223363660951723907543011930064108989717498403570642659766771597024408670505531368649259431897414453845017801201829653670651122245390630788421902388101720954829337274543248766558910446368386370457281697756892344833790016738514386495436391043919012599556761118741263074435307324631280094100681622794789631993768625630457463499329113757640529774159616926722397846205190484266024473732173663021568514922274421340000433474190042071313084900143434774912222959077108296178518598909102809925048375664830973616396228614914916695426609300830870169311566034186368855409356607611904561131718715538321421197596714424760340468125135046604657844284994722423059337520813966080264501239831480378934956015296377785223641145776734860666567060033788710818570118185419691435117523418518446713744615558837482632670728047232012992225333770987964411065280875751516029997331693264334483975292912218670548893568484016450237776827725978313894049678239488999725596671321461234220283027362735211533623802033284579632515958863068315205171774563533131705391173134764963602043757985837716896256091142599047529978623592372784397859914907697045061232522706503914821160689568684461641574349106905448431601295426205147321435625489339744983072588472263959880493324746747184002838820870642605039564170215611743563771580980567795854188021202932457636698701860880183544530228089250910454701477681335463982486043179448115862835312998690746977081934805430477087580951939386822774364831245876824778644320777711016420093470611310245317271011441790371203792254312351768976523714137827700891185291812028188377799385595324588014315794105616813291902799214202623163948827401423261686981035321706969101750173081538311402897940956527931947099409522935878567896338914790738422013576441165580027397834622987056654795840908885684443019890185365234287974038927113053489387402194650048535312665408163639745870167646639134851219764101268643418959653434804665086565788971904285540019941427879163338104298825059301975298621769875292069007589004809070802937687912269064387297034398291606504303152346186303987966538407762131541971030175525513052723086846678534127293543448483097504304316788183617003162313239097437050376452129197563562966559523541348115738507415100962456387773364256388360723626914604344050038680501343285277897751988706795337662740413920676130592435305220281922004783008939228762909480671426191352677440357206775833070028593641810435453564477791921099454846309619948091590661687797540478630208832789246897250453287792986840321527399671616658460627223438563269029378706772410364013630297915017673339582837704633180630552507716117270737741744850466715416528405726255001746398352548547610248655153302274927487396707016377966596562410129665616628150179923092856423162124939607149910065023049387780224022257479330292500988776942014988083434850942078209395066555356222145937855957682770739008620162112487687327224742169585557875124617519585778723801179478567278686929617895084089251352221572476279778240649624378028502829561284922697270373371792914014898753726086054817205022406432068818515451303543194871132485891209234187899749669321112018859788428606955989989411712509522740317756171384689167637040486764405126352886255495096135942147865516895763358302337847461088810063764799428337292189019154787694702614765504110298304039528132678204617288237712214976817737373225872874790997684481875876312209426665339856500035740531179926724426706575807304970423611002413477154861573139318773871679634470450727033768228586942748783195689466887524099997369018090744576706897005351530553102210882766772904743544050376018885834484042428213076941209795779426347426399026945112932954175561732271713890144167928640760084847479813845736425689343040047293792237172110953130745938232054157480227089614847221552665504922745675610918862901006798301151790217102385309679195772676134750573811652739590988865494559623044429491618901278521924407397159660210783154479078633595918312177484795356023287685889532200030858211973414448329715067832421847534428560608398669283841704752612186307476481847778891725580317501551670277747986439545966828914187250399127982742536553356411913575221160809343864236047432140686992290415596553857033082252360716978964074504236602128110934561442624675371707479813316294864638455942371600162258381627004122301930374307382683684132780767089886854572537275938612583423008236307075867296027762101135532781451787593422932018566069760929219694928700731779223518019779320636148604865390658104551676482804560056249390253455756064303124148389567595860742369738741223897487058036805922806072582590300332587484597753129219121478409446999274274189292747731767240589544612490823197832493624468363754656723981667104811298066734491494812592500338679309048475642408393454930404944833423189099175270636657485149909920602281482726978154194530734958015586600496374194708018379605071298508814649286874176115158154725688509088808703760202062768767765661239202302186647400262739136793453290648369755593384410506511632075111458070682645707593870335032603845403903914389414775157447303514493960227704320736626523032426552142284118757663914026389498195398767873575931763921773943491557324648338769452017797555655990088160639544878986113014370219537296619563606664147804218267218325805704924005485089811917673083806505505243705088565337516606643577062747778513611079780498083422354903631756975454829117701779866160810871686425944718759965361346514419377709664084699862867957826984768302414777225570382252638753951543741198600578541604000456770289921160342786724926632168482440763016380298555033737146773492663786303655586478041538180066174567715547246433151706918426258285077797440834830396508081575577273852520220146172347873650149134903478995142850198272484304129452250929092657029344908174846759401342826859532774904564892772942415079697425118497500515010237021386903671952187572598231443607508075383106658901552793334242799150105355511654849918596831165873985196284134450442959878680632339811601320111475190463760134682416669039686506244927391603860301918912064195919038635496518277176401903761513113803906434865264125699254977874683987091815600061961708378711735658763652772508917311871245285815312797645805820454583864297248806848049261117804155304564594360539090095077827492340100944992834778319527193293403209362471364049539882528574066465039534680023468962397972181094553670188353810167413373712374691578295635808903511943121660348594070016302924525551222002660632514278574649097126090029861778756111063486441510211615145125713082422847923663955184380857814806645158060396298040322176735878412022860778531345496263799244095881441074950728264426144004819596955155368326563484700926344260797837144921397829598692951211791231751318152556330936663390573552390534963368157188870793649926741875426706829609090086455177869315447554162933707056768146367095626456060786084720071537114123759393853836889712602669134960103568835380376455587404827495429142399402258144484429053620655428962214823989565495012160408463072873293269262902467677522595348495650813483979824052074070348155279440487529533146077378496277255822382640157222014032708357592315221939440659254381119990222511330506858143443620910073093114784388287359089058649179261293989405044931699675159020038287746886128321533530583448827634587083474323112055679719722933334063362931885110929315062438569499013789948994324615903930365232181134886831941812250050460690751875765875764691499334960158239638121551116274481317331724997527761080880935210473980905874272308560020040211916350970734444817667975690854894029696669343592445252820555282220137858377120587159201146139832650902822883802996033530283370283334849177950141276722880790414497423984293318175359708714159499743086889085224595153195003534418136299601530911708321500725693829068651006657780161990868583213474025667252421630848302962954120802653414182160074287711859923566034979998406302421749160995123052563161630480471415912187770762268411212012348519851610165159614272915963788976243060516780284503523020234915414757605853638817666146339529301669145138506110339067319615247818958397135047164427797726373172661271839280113050064617890762293185463495437379578555274093186036774087865286644711645361638244995095339533636508026309306427689286967481032879163090628861865306366091222831823943976997582930559303650765139390108110959570818251125486746605815808460617849556115585922197814172075289691956405031681357142938343057947804266797577880117950083716799696575247890916819841649734666666574812724508463413696404702335375278147028587834918745617460054718669187289013099586732999416206287928515371179428544967972956066223426151313983752324941803070825339042617117230382905882706125092361133924306270175952701213361470353216253719126527898255138379536257910676906426748185864096643830520583108288259368905948108157926966133868510947024091690554961915574566577422867600592837505643544213711821031601948798604207547791785064529482709934094837483687103666091237981132333205427971499206705106545644469273371960350837933772843225576785651452463406457275774328611776308741126535760406197307742911154190244608884848946769992644136249520864678155292306223012381936034994533184171175306644898473041414518916860629636763182347591428171814146002642122808026616756354524961526931929135365121260741027242065884579114601554890741209111415819203038449331170376441646288559384740065209547923716671635175656645880461995239402754758313473884546515391066380548046288048307025668918308478760599114463594955852992507519465422083966720198479732353078244553985381972399365293504437724070713094770750213218853442198462298615466463504281791821230827628125857332575899111793508698665628160063640908960804565722418347987428889783411343168165856167917451564418641251850850096947947963629645718273781765683595847964939940709844332173807460012466876375548363374184083415909722483733522466470724341073906732163367975672060290282200337250398430217121236177028042907939945331507021355532163854287902551016330308435539915940189497837252332465700716664781379420749192034143696954762033362127344833005410618392353526883023578825592501617003806936449885726576412102262858472327308556698523437525023646733708360411780557619527486720024418979977755449982818713167817096648946649287112970812340325965961836181750045153543976320570810972264615584631228643965185850042784195532668944652609306193187672494192109966632668038302253986590987499246774910350336052121131578517321943459960116900960601110848591993487874320942232751939797850478532961986442729838908308301450709171048630355711839436606612239564167471986771982989579679969414875759322444219358015120714720062269719161013360198026419067566893321703973234950440242705701639374698527604465174124473212998508502878115213199087231652440183590566979840970977193030281506592198354021387622711966175267037510734389977123927047945594167140202279410756670343627241146349424898105466250239772581291877563290207969154274409023409168809924649968746356285584465513098205819953653523901802490304764091838943348918290101138724644018362610901759318133815611517209526329000445218419779010408756734377770450074558547507363267505712186227292161167078979710729543763527635690119682581570215568239592090411154520228461055701869864616766925650108690253626191804800789051851635477348041666547391281040148975944681431664835006182026549444997744279985423832435776119183298755003075990572262506297748429685875071134162223752218230222249658705632250754568311603841483403076555039293323424900705952212008456765627156892445772719234442174825843071039032954462904186817025056568887907774885317585732712383917247023385540899742592770113840339056791788861951359125868321006027758421603363072366304299473155929915163292712719841716511464676351536863560905971542696447491703638445244529925055314600142169314234378521077403567616666080519064580414184778593643326388478121840018538217322893523805103804391121525520863124115178194899526336066409288707556676809127705531434649906817526979088973106243457460090805818949397232661643851191947422000066683302573145050843242006230934798779131348948483029207891963727632036630250358037699197894410975507477454644668373692942493205256612711401348087873826259424621666763267857742774032249831519138285847358254592214605046498737498377692971042901504001944628867294240853236588211218371271545207122497016359721271586129780678353781471875834931015171917051371307901412989161441450314906236087586249859799056072888003391649448900718994772471638171391261640172719305794770701103982741079890126437835122345982563578570381921562036228064923089160649465844523346218656286652906993462304405576072351386015360310343620507494587840978082671178741947356922099863171068600670508479227294160418383565238945400776852530259204459175423210212642318729689591516950002510310063860135622013687667216451303340352217101486503943013228450096586519928617556695489919786611354225941734367680551129139069779960176043721169312475132952417956083688808861333459810455672405948076657908791602476655788583242892377901046546611496494842052292987448500192073867114944292342920244060346331303027587066264331543150790116838236796697790714597888224649799782180262201240945150233854609215268175520899173648118584707240273912399597953691889665770132981817457955753858479630747153852169651097442555304795922176317983555403156072908322509403809621950627641482934342476484750723708101014197807432529536904318319009031748185024932380811369434804841664989308467804867946766513409021171617647423433132356508888784782047214709483688724348379249512255637755047001562919283428437074783382817176200546718375755223066441363055820269124466447683609211181742718097839768546268034773499300331126870909683852117539597058791426102281389789358832520559519046607536883648260094215833005996239452860514303924747833435030071205899211684112285993972095862017541969291714562485917684683743233936108908244117158485788834571318899295450567924612099294962526936708591506178448317896375695530407521339138208425438508875472973641882961495138409219383152007262714236104913785420380144443093913577870461410545636993809266835968871033337075061246165704533579724804142172047027814357567151921805395537146154579259111255315939846202710995253699728118769468567766181643180104904072369196892518114912586899113557024058995719798446172560084796578164174030449363671175781052997292662152168786081552254697074005537808205131610917366856897828390095900270805989356065226582477041530614545007296324853353046627666766216316818789279026801585958623069854774725887911854275166587513623682225731414315105723633674657230371958557517847349507026169126810052291821923907422756835547960229977725948191456682260844803467009755398286013637919340796830621082195962611890493674946189919458507777032486091530853511696322398881339384084250569484903811326659030618785777827042300620445149178200239470456633661742802261431308610965579884334644138570150402463690768963570356295910518970115838880268846878840535325678604668083088181023737436171595835498969495291028795925346840665015604767816783298637800011993774612120924671574068609410077732856404994140795793388825453667569407668892894015385410729761509884226352786985691487237802067737811661632486096063873958835331440886984614485457335662755462716168709777093336437390135700214988596810660069550327020036741296920428576967987328854262656496493795872865261461110687855224242026554813196967123912974985296523596754474279439002992101897709107766961645639133428972764333130665412704009166956635304837838809494805040662120900135761631518469608555497693150180700753752432033258986122085481558292180016724967093129303446545198335863813062520953900280187767605743093037125916508019132916071535081294777268993094015045417600375707811306442609662258937868759282985333060172040069804688678017646066291104347378732425853398632743571444226152390255396471347393857701264357506672634916313558251989389665308441685870797370112752458512049447648665284273220829833592484928136155002260446857712729985438930652112431655052687539401330315914255159923889402507984417187833864346705534565486655580514229272122351508362200659549151787141455743718225930884412277680175705113704280833339304665402714287930646519659542542102130188700153971393153462485504030269440349689051035771609396981255403366211385420345468052630619214999427209532130158420561513104180778166766154599656094453198537762180609192455950186338751287347573364202055349732697343031649003505692369827574737701589093571133824783157697965341677722458966298240105404857867255389837205940009972398521369180962725603407978023402930287508474813424563121823256700578983801750033553604846089697504466971934611631638887358339153492842300932433879555873104572821015607044874518023956866614072869427924763267562479525296025694882490681806621257668279106843906839859709597246779540002078928680437000220685834215786846035198707833790907876172352507825961347277967443552675714072916229853693698811273203860775489102717416921424209459916221263610848658493197654793970808461803663573374764877489928218724332192867335184655158057965894771995370037206501915281542981446756388625340679328278126447022140583103100244252849052361445446848304820901167707859702031143984217878731245672101237597898441318291013526284178971647561330829935317671328423303561327476928848161660962908699929630456214062651729786010956509821793886149791107693967168760788776989342157003728579191052864389114868108058269589928683074697321250049752855270684113772737636545840737973578761003026825664651371434425883236595955914300757891159864966774765228543163289274215425634732484237623031821767193073483308272636540201297565790793544107817969127419644044818024430959297237600444142943303005996203643975509630394733231317134094145223993958867127870039125231758066873049318156483728342434727324241328311487270623125763251387472646100830399972591607761357365190853583794678963368289611840155142511091453990934010910507250611858545222678440248833136994086422995902885621300548447721356171294872896899977072483349713435743526851736012834327265357351285686621113864914848074220772323829544490314078126275396620612037263558235228031946271058855952535203869197086274222909099383032129362207099362941582659251359781635061646783428671233766915744747287197549704746476694549677017866239456955312027467093394612276312314076769990743558487017466449540521269309148554720150262036773570441706729024634773858074303473404851892726832331289928431835669968275166681021415435558704293428465629741975728019145355538631767913493269987476259846482006999156150238257550621816424347828460933397134137093673341053864051658349130699161779512759933374618797926725529353181517792720629662612248487627052050427366513659961265718128825200173240910418401627048428575138498754198944720082623599749588499142163299119733028578125825142886452343618884208933445295644357057790725504197999098877982188745667809259725741926252321250040079081285933427036772654736898498091993278219575466183519080763069789386400959317559068474108351872658609968957585763081869025636831506258131620360498573852163286339884303291683824145869236481157570697480566014365447826562897926683180006976730047426044681751829734915688721274335141182807062360364567328471971993193674360658747852009301347489244049398812446316289498922612662124739564430436895056229536016167097828202147978753724613017815263083020857744738969984428520474067785574271601512689998090453643410536576958675992351265758982998329801040842043132338025363607802412206802397615344695871602776946125248810686281329499893726102948020799979767367540566127931580325384636279844141788941207597203358859348442632511030990407229994668046715549540457526425824152450001206910196180587736586571956130067496037140699320977848106176353843515781876945978535772097540500333639913495176874675300850213044329302909294676771298169855890914822139331019986303347837822517445924651669364183679563816480970523122920977795600450353137310578935031367668630266288784307339241415336967760513971546217606663315056210201162086204906815111652789188050935592854648543220179178482196894697044825218248591953881301613568315725443846788641841072787777528851615349751952219068263680038375469144529363976939329815528263461226147431779022202251709660661774578405316087687763460828526292192635421667776155288935278338828068170527340334948248949070149265648496762169789462388533637036513761527378849559366044245524785776598720785666394264603437193992330099163546449884569090359274773249639198084437022102585668140084221252168734367242070844258931237103959557698469557163123709916086695392989321890750763550116944380163967097905269166262447705752550609026817931819858997471673257461600518456102433745998226601246798886325787508400425321325716157291358896352469460515847006258816218335024327488503304169191183135915729848859650600722785617669622887581499836879395526325339008804017765163196196705594965595579083554089020124203923476868757336672863996599782377952032242176687941970618670844232510772100040429636014101079726168922837613944055012946815085055263474874634384699064248715615866510744493079564905779610902506753344525221601825892757526273235512216730217565212321579496512302777345005641271032665442520284728570070486474037736927239786341090885760156763926331302836214566232865595304860183997772158285983814030720479564263670649920262415211703450200472090111740135986982974452004178553601810462227822265758183133533288742827951884542895903252045777615391971778108163934769650117618300224733597092859233524234723277149185069156838565744742095121674536911353763012927539583302496243954426571386576138298816165877351773550976029186339485783431186909682217632493711422877304708987418698412955574415971189833880932850615207078350773936775361172337556519740816235864648968064554038738328409810631828171636364577283971884253494093558306464597665258573290895307006507214952386632876067917397469921064058503485139437434595857842433383143776853595666949670885092765420860535465293257331159643630534220932580187870731011608184680933124850794775860435359541206671083466264023277348030748382510785691491932005948146604671638639932610939661714607522198329394315748000629615488572449679941307872742785463856647908826252060972707279965273327560100263380915584141734517603717311871417057255232427061219025716398686564130236717634220275443711120241234169810046717412138622965332030938803714039597720754498668238938228005936314333324482103476069636604371030473938638946487698154297482974833544342818447303223341135814529940224205281852622515567917660321386011591680923586843884410554851310275778223412408187633240947222738169193294738294176779325069247763919478329965176836718157853441555573766476512379182885419404188789965365212850139306080758673489008308811117123164259044553391587109133057497345910507640361886153701949276038740889009061251927904248607446262432866659985658421768351616504838065435142685472663772353206435257183371404122069691268653482277755291764540832657324956693312554328029350775981313412448864141133760489843714644313437040202771321212137956524143882445171467755845066797175659789207816004711973626144014091211569822608371184827260529999347277094020107698415863986428133745232956906339620365543179153948776767490118116652922521892156040970417441401250518931854535495469181198379341318082587862634856007897575472672794466859780862119759722355464781409173643555326578366519153407685248794527715258714706702639711787427252165562162594001675200491791557252834134518495301056975642332339456427539244451998417600980870637560013355384520993629211651070240641383633500108454162470306275897991155449403059163149666659293209866441606504312747446834516847144249367188147363678466122176872329956699738091226155313209556300069438660841449587815475963136117165107650207322769329445892326860035111812896215726835931618921350694426622216675504524922373296202348123970314205082232795131297362637224696640589782950260974474165308531382245645837278309216834627906695343044582130689102409924585276172353791822145690443033072802408123236101790202785351123890627130022885248993736789854890370762326015818257866037378489814252624961151895616014415058051790971197950665167011878253131961500229178116917503970796416989456345334950749304543355126450063760996955790703059191572097228029981776490941947743439004624182409818365922190500816821555131431565227580599650786401102531855665722938746861039900286646603996167542909908711578715193286045957202554657602740310861536434074062210860968136147031961346705787680148193418568260411526091173627446501580435261716998165112418266404578235712795725451010655965188072253427123319361391365675739873128149860288410193708845508916190690038977600574236983108644889188612004525324644524964656076870052117042329032086455104745573359038988345704064409977440112113046432891709518644462284405344772104133468633234049919763144294145235321128059989060312522844221256594053262038068811087914015131500455588227753720315223523348584389084949024557038546981093774331999421811076351375055891361356775306571798623550204025270844116535356033015500263362049284596227891525487297772034100922031960031379157973517246061012727787957838692535084215866868167223580579852289972279936055874769406838640124361177950725690057772442748017582231843611112116081106071298813863022882489434881895462397379078094379303528175795549064019290666527456124916427867854869003470786016627542656466572218203568445413403472785639785562487750461095208344236518761008417211095868106050834452902890404685916078171120502606797636813147958519019375675645770729929588352247172860859234518807357062802308234928728849173183421399081539297644149357010547321649224342558910435796717932377166581682419660864564410722914744578513157915596136550633677946858473998583236850886743411579033107028984104225349094704602903717173184501367591333243575837313575944178438759396328580668725904367997316902781427114525587532670537160192616750987761377903709493144377072321650984383805306195200251383265491178378530873960878455428955740489826889391334345512757389580981060928209999447646476953030497940316587694198584458274230250861003468316645246500443111804592639208343831466631258381696827638045010016335574347687039191036948552104305513768016460567960744286847293820897498231719243567618349179322378347906354989237847806762920470411477149293685802112902347827897679660576045267425279557708426526110787322186679969955004699051124989536461629432772315621167146505626238482453972718290027355138083754202971504611507997276656762895070274465320382888612751406656249370558609176828468111861832900334400922293862275869304019512838762362653107854919699304953658624880656856405567213002420413496548426636573651972495886123388286644604806830823867955938607356682561951094218554294291795026965907249861979179653897224848397166969631960995915311722162588871335369005082158875333894157542567312225900928492863035796278510177528196860223184654410001817571562982511424510567479226061372835636137322121286573687117482478153609296243374733767785492622340543649784142711416772694658135457723501639133863759316547523889822275743019007995137633262315926364173506717257547614872574827465042268383846912828719204262000927277095631648175566638807049904730932567077226365550375776498216714896527713417361292439781976179799989540943786354372390694805554285670924368725845260870167121544345976596705410521237783683351698749730783522261395579256134894448333598176477501124550428789439931580417091407725884435547775623504415363089132279300321739385653011796248050336115169855482606041367402365223723694097775528756957433652518412143259928847173212577441149259291550449738884588031925896399454988778344146363270459879562794172601674439488724162894926599275746644231785598438485563196250458441502218281877392397674636639206873263736224430489844451492696421588774773552342338695534831682852347761625817293291564647883617244821242325786596928603423769089622093164400474081012852428018884686207786841747146181372332780516978890253102035685917098178108962537348339946891833160530407387028619078852415924290731328402718273706225448977369857588452927355681992233030389884943437976909277848087368055974631238331161819432003165572325689873439584684591928453946793152632163688490416926924418346585306514694268496611131716405681877807072115877395867408790811304093712183273785569170035084647543331847594454618033278890183501269936549859357323042265496901667245420877284530589730275345133468685928458589695890428483026422984386071117701596251342753131379620081421163310869712148376916239082920886499947869186268027523061793738792977670872368522634842524229572905682995086884089340494465848946580242864867291747201440364884694148455338621463992611632667831846089217494033665658478422040193372181380921097526391496130123715034484299334890507666243482053856708338770236051959217829522753316850615300836794983110694659614515298694998361691816070021412887733796480399786091775424949679650583106040295022990821124515480000283775901697154651846085051899710719742747895803431739975008164048923679552092211002124223580483164098616918786768924115904601121646473833400464693387451277324879762515515086099879151718652441544099845448116444250091718828496809951978442681237469251417570239142727072333855607174488600197565201818334509595382185107512193246107474568586657350210889774017719562059700548643045716401418745774206985327523536848641398663519301892503899372669320763311918651929309674336030306971834344014047470430148782280408639509587119999711888228167791136043081075687346903568667736708426190282370995533331027989990486077800882310744813856892077490826439938655771506144625978227408947483770522493239167753775605547561338841083429261988463662496801361150433209502150484031801446927964023493861012584167293313677688293037083270846400746599544033285663440850159461221856851760817770143806860297429711993968640217080242068947620368937569045108530258752605390776239995790727857511831340517493319209999281646588092195254757092374901723287790096036346293355705621640800093413051054847658744469671789111619050881170315108493621894373086887659975966245628388932213152230252798679093180506796310001212576974972729562289265967823095903809037207573873971771040971369429262254467942295779548704989164086181745785347821937934416699242758957610445232789631192095428473164404134836892704499487658467029077850563312914874484257643630214554450592213423167459296631445433647545209550726254403047669379195957630086698593174790810149873393796109338001923226350668661447462426999815689027539648079773007845510345204103152603373853535101428672942358992378563154818478315897941560891892691051213570833148534359047955674595048980037212620239238351784592759208371628062718238203551394635804622371324701268162609995772947197399194257350346690202737480174043353288148989874445372568003285754032819643977910283682586890661537604474608820646245109729361403906032549273035988110454572158580014450073079997308034591635729178481628664082281136801820997596329448926854755671621260215684666831543742795949877198348536280925799037800814732085525554720083939592114304184979068591920271469575869731007801734212290383186393862095871733094071182826451040777453089895683259170768265757351689070420441529643712345323134589201374955635749830952161599758850133562164361896230889200304386575055840943308458855413729211844690795968753497774892037297434984271574014736007213453484474359200440931813974749105293048117558912826243665478377929599901369107281943138776944122106200908643932750897155348648370541062961509416944567147429713554925039712495227118271661952835095790309839902982371450629394904402160852522675850223761771687018502849967165812091496632551526603154578669214646968605241701433666535518446535736325720554609687232299035503896158762728445476968780302377331981594088499285392742808776678012115518366462907885360570388399152367681266691776585179282992325609395551033236568363787746061397662515131466999897347058542833238576674750260006228888550285350778097262372979906817823542107097080447661559582864909509323312194216765076639513008301636938471091183888910041250075360986495255471833664655734509118595624500740658712653803339015630951630337804453312012473431742963695320971314989263535619335126878147071580316177250215494836511000424653477548668444292868853839529107141297137924662154643447498793902642796509991792834665211724577511188137459674242731790627605503957464002065061332420396876065275779628377918424235764764802798724486126368641940189849994197674277021655024683951874789369976766291402419114928039177001453424691158402067106936654911385186258067285685228506974075897507536214865945590156288621453538576525946463219660697553224118380187475902539155918958848532799208341311692218554989238903792282758908001151893132790039092284966966423827323367519779473190181890077086108437091633040299807931483185541329214585751081269601584753255254932222873937627336716174736616027061325891092166863710896765483947243185961297410763890331923032852544328263736035897176314814013979532413508148368384607086435636227379972130595408215975293738878048597315671528927864864837688776274866452196774473688489512057647238438251058676445651058657139670391293408049778608162162673627960247143604979096257970326925412113109384079115356214433847016294545744380171120754657603589471701796692165367265555782658069887158470144420134869800355503956399764220627757124793039576007029248683168966598282729311870086899830428289292046480141823214042718237365230768417461686692124291804469506224165573721880374310404284764935391217639693703316586916099772506939781804689003017812493369938535528384798471280344488656879491444916273554250425028602491310217100309577363736167526320476957751343924835390270031716134315049392667676917884809036456119794184387026096068740178363859582929493803842213001909320820724646532283165701520462979636780829048435297969312786294582725196037121164852022669188445478502176807377566692470613923049977402679528572527088605274457441437651547801722464125941536078173849096486644271352712328429623933125031432491612109619950996206476963619306150992712870736275690137830706151007571664768042587782211073025191649800785517621678830392668994397474496948666265602201676047265109047676912822009030406820726582372718177357279889917772883891015351694112108040445065566065246639944107587510145732835132035116706455677894789625530486676643683669188271698682521971884082716447218392186053434863071702954279254899374055276854701419063815014476483323881863808028114205027245558347981901832099933223307950374581080111586638275101485082831188313445540130525395432627583020927779613441955600054196103246887303146079520672849973355456185769550343625423179527728207662483289066910866843006627712413793497062489411710797543369685357318067272491716888869937821555200313949533748206585932215547741446559153235488471283677233601976882555518362467499838196985326181225072595151235337430799837835173759479145886389326633284926802105157250464807118721902927366238660021526877094048732397562787150558687207179968924570213707332616881601899721434529112067023237046571013540299122488812014369674814687354993998266512201931511445101154504132148711509153166421327449255237480700720382528582622956952342574033309298634294528542573598890985477102091324993466087109278128392531049093321903179504476036999113308245510904972842002919035583084983509672584726922248504500200879895487467417438371865606312248543737474355692097670155850499728258009122938825486308739632315736565642036532709189513423584111713755177263209072974496749061093356872335479339227378151474936965639999482435702297560307322114073814501648386764303972077028691000574764402831234647576575528845900693828255691646111375256405943722535001197512004273160242573321717376899053865780393066671980153786195813090420866349188301779258275634518906937780600431602919573600530122396895147290290597465876640028765921571334391464229608873904384334528061083085194225214528969793423380684864003420368854311334091115495327602793541452124419065657937662933149591948372986919113389677164694736491841227747182581165550491334479955162228934611160694367043931687385071081342801253587543875114607316009590191611922411773784017019438654968125810951570794795724045545727651364574777773046463020676719589168430412129197535818720032719430122753797611132944186015979864792075008947756216469510862473337706753100062308707030233138219024118832521821729208236750011285560775956219397138548799155985398054383098838916899102094951215317551900685899316017876935753184650517805823328738154078594191187109136106121230339556208878107091837957299868238771320077958898828320178938033931473911566736809810151707284451744981324090261855680990107725322477257638997630782686877134113879936710367225021975320724829401166616134352165017260707423193376935496109795350524576900563666887314901910263756715100678678627665488255011148031080534912029391322744360029725006709335191814480811535123570330455665840198008120501966857010382707655932134245487437671180461549594866849598774160251961949438578928308032752178072912096769015218146248805046464611123738873533354664476132472497720682746008123094238555246892697402692319076112043919640215894031256960076556512923064332402052976282859536691280810922008854660150695044593669137673651479696614266003889276343335845505155063751522274961434875412834286240815542266138649916442602012746552824056804039848309384911708792314501563762461823572427529010016321483205450467411746828782553215724486845656344429364237043209635260535374203804576953340577566574448978914891899105946751299434549136985980390952883648050109153307842053912896837890847110145963304758322575990438976131823132926572941827690213648383433720891260649936105136585396122456059224857612499647060681903512406687732651315088905405348827238619927450856056916867982474582229846049153669060850990094192581257714383456509910211007637012872821623765495562712286764659508892856727803517908262384736392381950112015083250663843336028029590283894557317232059676721983370944374457166129005338831505145604583991671486108362362650485955678575488598544748983626791719543507823146843176974446627970984488118825427283781042479222607417339804653441240026529796734681765758589531657566126049211243379706805866639640966052222494876663037136405745514982954995892114648726927775654741981697969829391179982927053839078554176416615352647473405465256596838211589243682008250797499604087210280279930267809228747793422221578948310286154284751574973748993028497150752563804705323498916898146403247836382589660084021593712514946282331513304160583913357641639022977842749927876033670010519378442757593994842764397859983839522171111041921729470265562217755614327351588267292248292548505134846483255805153515848178182584171914185626423295824778773440159042914231690365919348856001538710165227787465885411503196046688648764166785317184115936805257694675052185238984579619650602831411867130380432203717513321874184990839487632734991342679054419359781289456013048970879915898939154975580955791759360154358044866534287308308571571132152359995608612592215220805119390274921177817103853095504922009513604545241676128509704616404926541891123155079605219987543948088548689790247477246230492649429279762363796715660731717729282892965370395773838155944445769725967267320326369318187954729781671658590036690754260842089503089648066587701457646388279183046096920691961549431883681759600476911696654696662722679011316195142259385880152790494305742116354363628901851613155789522645120284018807491887049450622628161373566055235177361554499867316004891759517219821382942637716144039582157527358779487450674403290594563422472035941977378445835081623750389025386924767137145681784630426168635682862745924280015300939836368276009323070327626275445592290702155749468252598520909420790587615761157584233105352305061086569188536878559146572614825067930749433885257954226857642644825192286501807190575342257841688846694484206098705277183272925594258027841435317903104551242827617386204559464574211400428021176813262752734835797957739576636653465009209153222255331695846213391101660856262203638769266002092697510273831438538047238573214143495000884406377538917477693577187303432692368073515639379248358542001066769100040596951512664980291848280785352375329408143554223186157038008014514681490398444310056351962121257427053302986967462508767735547846125098898841821472496577110328037734469328597943099065775347545610251599647115678219258627875983512692878884314004123469015672705345996124482617916446996380833364564914231080543326864792343453250948120792567994158477297468176965801762246773209987367287978122679719962557766182338387426016629252800271029714545212496513192500902225045291947024627611458969818597037525963331324706215706827554229198127605150140456597802403719020878842643425654218005492732953121363496816339970426351091371557792234242540336654127267158601058126998859093696224103568233103315907503243305890596768719356794193331148895569718961002688621743037621598090360958768355385989727267374925873243218721099854779751491151932744351845542867666485205209111170190682336932111917363011407787427971205153721985471168070128150088015486801966371806128605271099712586649951668231275517644099467060972081303746388483926417410504648630799489591600715805134041187297478574490023937152404607337313486715557538465904371779401180672049401031078567880912375341261318185092709646140883316257238244995468186468077093443035369461322504633029336813680310563876061541747391317183766178230811230680522153764519814197990727720214606053347974749314699890948299124902815667140773946822442852028075244844317658676412825747592997472618855775389923113400109078804349124897634165882727644570442479544290224095760755767618641097113944721059988015374832942080469904221928905610669696148173325718254136061350299232105568218309622878184597091940049050776632044825419817042728525450947243056919507633066668571281640538621457090996155703412272126815755876080005384332267316120703076541268369127236291102766573585660760767647113202159037492605706899807024532693927761777293359285529551760802333636828079907187891265881105069435573917251056002250169455555928564862991665943635515089201244863885985240944758138226748218529674438883227637698703567542340737072447975524406729202826681787390147066611303865448821565184682650518301103785401123918109312338803758722865526693500017350009929883875089285278104213121495659733992336593461929972597297852385978360734078642179923095433357927209353637465707054268833012265800198774746650803342057198275170703756589635157299753585711968692362711824581226965195793298842607076280772849400926377123331903831121618213532898621091569593944540127896074757547381413452988303227880998047613590025981176521500290543141716812207246914789314374480608578908092637783923906215589777180467612397067326634073495702435184619233719901482165993624435191244356639738735445709086927301347685296854048856945960358740632500020575399260974363939579930283735734011720011661952169022768451407126747364882477076702319410208838872981063569676772391727111920263354697769580166519170127987691482235160861125080952921308906385044361947685727698771535829185632072225715640578768579783055547303057352392273191103302639490070493902822131288801373388410352637636717408234289834857588385236683396250915529440229307712511336472229856531168107659949098281751244854872423575080319898558266588751339853450831879294576672034101613463358472629748684118770369968194733716428389896103772367629732987065994652300442658792311193403764206407975318168128972869502277660947294777655955870434354079828541811116855890084150612486534997462100871047266683887199876231107494576090874726282882372975632671930058222359845557377881416220201107002274266569642038549337832006098880017543287279389378806219288867810141643274723027529051409287322032053481417108305153904620364824231762428133099036359137239660201601156889648238234162019057174932402481514036061131525609258045531587014323127004567512791698645610785572362150432350446959253808135469349476816191535553999807747051705990543406110144481835834548383064533306279840742265215606755939494815988028287113631717296898341888648970785096425657819644125149060413840181070848215124424614843292759535788962971419982328162787361159348457350315409645519265009849349694878429778355078672019724652124418054137299849797933965896136544007525891915148244320782765804911968914691756828746819942471701842273415159088143321755014184669103565404605386373560571843764920628298259180379025146553812583407716104570866386022232301980554861068221881132317761804831206537668051061552580121475766721866879904201618111651441787885243896044104258927474660200180311969242892376006246619816417335698995633658021818861108547464889373661214201828652137747974149295333303589704885324074670634757287380766281744554823105378766924046550189354500865046776119480286241132327810567693334154627683746464913007789648395995189241059820497328001734475240638256432129201504380790933923217993298781470920465438466746372537118044363545653667816115053380243603326401527632040084538588915459774719131054475448446005842376891277737385464558072045177541727939484529088975075527849900046161729467824743035789760650625766946764591716513708969876709636147932084616744897663287755693543389000048232843136083324302971572472618430319875930557145621838230563708375650026984226350711111253370163999888845383989022245539097353054763217273264042736100749251721294575147119300119704062922327446825089043220572221388287126049379307011082158416920313663422436480064127173475543458313369609812892972340263967887333175141630063740531851159344833086957719129213802554218660004278989098340017476644172007165212327127970960334847223652170756051699100445872562029108531875560383117168301538327842820671989462736974020135945684572678812862476477868335704979336911072219612786165932903180110967261491777795407957244714252793142819108775540972602421743592675528241253890692331394133583546159268337861231806070478116695137162056143720913803803565158936210624227646365672350178192576477813083974802416521238849586057754790146909060071505147439406146596846854474118980567516165504467177698767841598366595989676391218692069669492254007765361827920177332508102436390138580286260015378448318278825096362610112515297838424895652042095853164935651378550613660123147058138479395213094622449149043662925769217606559923394510211144389892238658649933799751774264614872205020193229852727076769722518844865390511191553354755996861971346155457388420565320638438583996871855216587056064534569759230038246865539353571598904779564787339646585911198199006536508058567878573718700682879792150154135721301404556340135585695950938915855455893110001432116914865307314713586323875869165220256149294980921969246334308883979762332647070644312763987033020604410752185214378287316039196381181649412378711128460290654936463700992455626021546916808174312218250740784753497554075298401475930609214431653267046052795309641889821774068442712821605421721535451749064390232950859626252967265274789858326806627582580097405849303166365475935145645859554610849218229477530699139690578843424704131124043257018062512934218900541630568926607839275541477604516171009359276803646306579805560261726762493919591403019156635671247235822677398207992220283924563391597026617831166157765172981616543065206685767643561491395412798564843080960600815023661657075555605982014834022384830737281239270619436138318746054499397969834210195743551704139568704301488337654959371454684114865436602032259554432719192523136603677270257048362382178165980611678204861469831144146725507828098618803405512019057556205240446242614807878993747311028988127786647939666179925631206291785019812754486898909775308492197564089375670597731690469393485287132837709923541685609432001887065140939657900675838989976562768420663578991851883498309062596895982823604014561411981013429583608759098121281104560502141189501890457928438725188090019513326870748363577504141615323557192617944484864424569821296138181005175775245217304190053282259970716281711646836723960927621156689856128902599512645037411117287537543430292810186103040132242472364717059108154192481699890478540900718214082249119175989960747906604029502283177129279338714664006295948073231645672693687167741063917917982229946413039729025655726609553872982893908129734643705951125068553428472663619599792850612292381278882325676316250708809742503347168484265625531762635816741392734867440120116123782750862587764367242038764033552948325273050794626573016105469189418465573899467514275154872802394146288017173708750690103553776828733335265420068595182859820686925131338183548258018846185436086883095328177326011754825740129814702182897077889618191592096294967198647325154753680871337155646734817114665543386511840668175873632279079810198853198123428658210933090045149259217122051640853497594417211915815745299673310828079915736602697156808041544790592256764423483441830929984693786283212397986526610194045305565684608088040881755959218993765449567325817452334152099820221382857809609142065260340547980156845048808996450168217720202082733716292084140206488763875602189107392148116903720251130165721545234178357269467105564777491510333704791951998783064409948715882691298108121242201976255185892824757281755037843494275606217924488121665941610561010803295108333833364171497216040769277201834131701211516301905486705893693496045867129583950763054203157544495638592941803063889272067474419271896786241169632283746753056010992327199093159582452539408087571361141741456838923489680595882164629430044439521869891595419365487923607935716061637113632195994236099988322613564689062949253443855051574912252390057728607878028345373988206122224670634788649765928456282617633107788183817670191318839855326773326184584305109044924759496165386926917849355568645540824583493185760126085393686478591687100904770550693034774930663183675820887894965170534574631426577344227638058063458161964715897062701733482325712989953976404321759699600416875348107597102817071910060305885968700533257137079779651879330716386337641682263844448609553547243879520394450932183643349268213484401122048338224253620924535144609612265112028275033159791479870867511389394906127148083065347843676883631782968156222713958447762683586586252268515301711373546769272387915626317891853683671484879026425719422258850117168123748109893903425943550349629588137191995347126405365221793492552911502425603396781536933242883871403896551004145005652724469547310319141572003673261420924223433884813718451700872800680087959558410590758572332832774583902076435646158645696420825959348171723509749385738696417256352976246853158844889225782579986059857951264261944547356580632232199937893788599233441313154915535963457271754053778521846955450458597074402959109558211611042596778329524055923644532150912923093874993549708176480808909539808814209250509873141219166503648820581802606442978161442255471909920384295184477166706222623366749282842491278005771867223137289009477691227461865456625704393441137106400295706758688562399810134803848531707033659104061229126946844430499133561107078465404088097654108416257076441392032967021194027131162258706551126870411456381109279940953354363089942534763829874209516233382348903505628029249112635892469269974619884186282869827888168240079721759465070833569479342887629631051828367049696654650353793316508022370696802030882278188942770360012725063437985498601511661904672528374362440405410705623296147094739385095160161337809317657191810409850362563927319654902706718331688660797919429880004013509995732723527612974498818107096212286964894996135988372364136934430406821349910666897353442093732781491733058506473983019401344594484560576674314586543191097712146957442093892343000876539642276891521573856468471215651897845675641686172592845522631329421023472600899505544964823476558094941219064120070981856563216304421667952031157257888443359066831454060377804407249391782110328151285889788637762679495796673046054704153563105409921889416723911091778315046360613613028541571738809472363775024867306720849432486962106134224426003011322406805536866484791421948401270781940923241601683596349345205655768414081656232158424273481500604815235968986456200783676594397732535648836621596426287846031371940538279343985046525696157264191974037681898590493688661207392249415224555993303290970867843876366536657947906016191286492339262674284949599931598611448023061112056016975122743083048271165711547120817341086132761132036569489395195540548154453589101102937744286252980410386272368186008014362600740765108392193300938354100986784160895631208780590665436224632254036748978720094568821292855233399549096423130396656101877550532139710976676740769961662581741233583042392148153172410219465709799248926444943955649956855609536909640170014835603631229949606325928308019379543601509686744635973355263202117599303356128531302467298039911822109670495008618827942681374525697184287179071088886243402583966314587626624357683250515005678927101700623264138239473615581922268068396949497600248042551548627899406805880430596182511533425558296574817507091473373690110878978166088086240002182930920740912079193095464894399349912669623374321904926564771404800216394932839714526977194007690154874236483646913537435588082513214014790839027122540426135067406459133565660076435560976547084299051355213015366196506976451331490785746694511831686696765158133080088170979670479271111778685047246390678510571213264388979217853511157008826387726332470720248661341968239639385038347679386597176738783098816536807755416477805186724865052123204388891061914191145849529523652895414868143683343266292206822207435645225010224271876283587957087861343374816585292541286713758830730570829209970100597654937164488276016709319849133456764477139638283563395867374565457920310557811921203662035151498797532796716475616057594617698806997466049014856333093491704899660504258430712704963965261698434691509129591131694309743538791915998672093250130432464179638676569202797760333837379015369693146365527536694116486953445004491059829165923938317855745829229653357582337832638994394321303170014749903545950100016700120147914170308546391820899387401752054672373912632556180845918352687090777441899571615045327005268974378388786697075937116958957259642687900921856148466865155287485432756914278791940632236576953909566275085292901951114096869618001487277251105030613307232311086736700732727852932662011977902883976751546924290548149163518423578861600049728377411585928583953801630865260087961491751633013298523976796825208379817826181763098501643323923085327260248399176375137128851618302136460422273386921869469422744055160336714624305819683263027732539400154800089132808801259741678541716790270132467686069254613474413893821747102436262997924734432122528489968639024630378638822109790231013080981138372310559328418449214571416429367764859217533490730966316582298331955040943214410087894401974436832249444195730074980255001559475967066287501517838456918035276921942831827906970891281001858255420816619620673221386931077090337584386039506952555678358649196449850194101164162637118527653249855609934181844789060536114768569834848167103814650470893393293102045749026705555465057923132509962354872984429347098054698414287372118022276558520458045817674432962942678060300248548428713323655392799984433899042291545588070074545219889431419579429551433802908810896612206646440614774743635192602137433853618562283413609309955795574519197299465711843332163238843437179498700868390678233867204724403993479761130093788170789021254974096700590722147442907478322204137477648237673017441681726868887235374362680473315414109433584873423847562153648850371104869881730885854664294299311378159983558748142249186105778423615099970450330552865987732810772407402942236154412534571907776976542026238292025047215915963054929782282993162034461187458873474005802337487605547081367687600703018467156538297763069174401830587499342579939608750211120382173799412935403137079694096931851034440559892579584881327406071002105789690709990322964093515375330515878636580764759520185574642679007342208017315491556862297148910875164554343700355292994141531518052824411911699840737420290381696272800294623065308958755451549870226202707694723981288236489270324527234578583282985308320158953197635854008035294398293479560142042443023731729270175008419595600864063351326861856328721397805455168428956927382977360599351341718585830604863692531087860438480560903622930675907647648564379009960093255335561020468611428138684487117181047422139995781586593048383282676394442858595150938215449771096002874887698341817386207971759343294910503750338129311483460535367309722255337191953499703953929184421550472597300184121187390364139640572562390261949455668137464803656070168727248973109207490302812844739249924527266836065858174011051619537802795500592073693105028910285059180145913833646613340284653784818787551505446611163229126925215268145057223638228153977146157757790487251123261281540397646966034417585709915115288665832684283424049621102539357910418614291352158750996029103421210629779127807183903060425884061138069029650392542983423903846024836048374500415350340682452066934600282025160820350058978914371473815444211608750808612487603968762597981234716622199081354551964333208427714756173154607334665610269393165439122974205880204518440156831139211138652563139396153410035513277361663649199430004899515808578298564500655893694801572555337952481832872862667738548674105581912511370212851001637905247498403503610804137667401969962795690268983189235896015720296280976748858178098268702249558785600735150717911858881417704845729751606689362124503713968917926963348477218870627829732646550853745892707739733226669623479307903265665956317936229804578063474253135064001631390923336556028450716376322188377167029515518668380885267205851048264838807760774103845528730936521490601576886334176677905692152949450593653432253583960819960822801461709038112369936152377410778795669757740130798121482233618922128883253112491815923505672949332308942989540601963482356194781403855215834377621384926204578995601039511710645684012246843676334684086909187230773996100485492104072682337417822650612133270613059787402770232480043035014245896858699378780139697093351636711349630418192421981239684764492525575995456987205939593401627639433318361803286154530699794612016532970191527215374014448792588296241524956110579943477778135144760211210474671758241652235371237902264827378518440295336582693145040780781383181339996549784561704042539298446733783680646478532242427852021444497953570925770399571840925058901409095403178186660717861535108945282345389244471706999434230727602045007602555914881616727931277233197103336586017862710880928068444827361809940279041283289811427820382601723268292673285206356370113317159229154927829860261372823198794510783176422318188232069566059673053067050502574980379911960787224448191510492008386714256113050606252097707366469476565989353401730023461327273171205509927562436921110480041882760490227308764006467383053856485308377561042765401245521960435653499353335564980815472785729935471324070747213779210264543953060728234277338937852395581113536410300861075608538062228531306912670630856334874351819499363152907685615661316006453947720822042456329002042023315420045205826979476882190515627532124034012591031345695859213932493839589178685129451397899379415783661200407040184352729919371278530160022965294299470663296856970897216261712444437513515112650807173492690807586135232680206202173190102545755848093009695073976828060890972227581757047440479266397139650538768888413363454130571185812902645238122571154081474099069567500537931040650875220635064843638515659031274432943931797265432609601813810244098267502629177376931224875919123093447461410955085924029893106855873265290967152713017044749878244213165138975303503044418697307535053287799715437429806274826781773946610120042224340558893934228171862021280280283434487519088741993841909369022648546143880910085154246132855081484172885855267377815146056342410913917976180028946750068383874382770641439292164588170328676201661929012846715091191636885654141705305514342860544445032179914683336004473291675676482599037471971748531645697020477548803065662019260535311184585670332873646285979983309446460410445945200604026748155237657231216429450790143814355773528674505636139755575747505297863486268458599001351126233432346817161393119542737693097287307853697990122712885628237895646383602267063833466367519016484132148939729579633645946159344106469089802589032562103430416000785360040226595807548920040600094801141202685257206607138123002263996638986226914197905749340575306659869781794380731621875251829748101317399622518602460247245419105192273893904743975658818190155956982279083241433314863727136413347786916266560748734068927404502417562283905038591512463983275899893763911727821216553827405137519809614841453398111208134618191448144649603169697422630091998798231562530456496235264125079527786708912361879229252064277212995961968579343839336787033120645781048158012280799023471073158373894438509811768167769810855561146574373707334239695752633892850799665955882908702231079289593649748242701818947964706148383343404840904531277081447824048054837779035957694667061072685092168893101816267215023427383111469857173106008752641849905804732750322718526261351958433963485906373059813231338963352306877567144804486026654047550759768001586157665666834328695086895427459085096189215442015352701027595369297756085455842622978261231725729769080056986618804243095239313597103509397875820907126512785010145830665893486647718178038344646421626603799622984808965690311945877335269640333951854830274596296752127103034626395731814181335332321056873995431977199405523699642009576631017937238831842742787333682257284125654407948217676859158352276068929033043206994038139065305546981313406578256732376189839695753741266851668594449570631036129966482499796731711015429252615942606042816257375012707277663519880007910681272170238290590882107447310103066095531214654213577606182011238491111684832481076138142394402632149404871067014599632193693288467034049137124497721596584482541790967737510747307041602569761136940564195023401078421257210488609182625090938397694404416690783030440728659774515058888686773735130915908267655715540117261271442380352902954094384386594465873837597132156774415878172503360417679057053430548784706665097571424810322571506971577328138086697503503798385959867921493687797122511031460521954728062074158574382095822614548753229062631309347460329104886864135701317932126630284287379270705021222944101893671357880976477488689310316327555067944798805645808124957725591119598436489393857060684185754789178118295468796363875807414337453257084714468458052775254185654409907981461401744922814570350248172398451730401045254323451375124740964084028957028310530619361970965099425907808003093500843188276394462967240329383617052583819358216679389517560545540358642717460880969060038683121893236288100240323674915698454551437076937266845157845519774575201803390621161210114303840271775310692815548002961815718363611411047222117180681670968205668206835724097894050142803751081067769622036559131939802524819606371616811241763838052410983762434483936953596310896928252045963208006818472201756121275171390278412560092153856851148941973893544264090423845391268628141483392822758344190900520227400492609172481952977479010476169646673171020351821826657274981399140628390272179479799222581562866878492125226567284000973368815374224087161514683252241263636784126020110292811433344066978619405769934277163874743301118543103689317706563922829454427071607074182694464813361853698103234211625877645094199260423539779994032075894331327341336808211860388060204805378232212890953076816117800385676724696605169364347470964181312681894447000059413763050980983532102719779891676793928394225853774525262311960056419980748239948006945331680603093355049562487760801552759519628377162646603268290619183823664205008648549660139396250076050423743574105299499798345984557063738690962012219815866642220810067796590058877610727830767185513567025444191849470711411013187391126669826530610015225692436572047143055755361108592340350322589389662399072985832982265676720988256112860249030121939791155216748988022245933767732973238668496202561753311904867579968551480191029031762887592911581654031975176370997116381948893182002741995311061746053034502948989085559291023456183508684443591137640594730036151550491440435471594382571941880369154423187553491656977358623839324757833261523589548548024778523097324922265893976426546112003782212623487914422361228932525333795948764725058169764640727923736484027610043747331613746678804456189539824054398484903275095400903731517134043474087694716225019497741603715300642095223784570933528485151758642317351393922003176548388818456179041114135903667908086228516253823433255265902822269773835641477646785679285956738185478819488269666472446384379708326217761880715260259323192010079163072922122318121899210079369697775396194693053782077944033677328987694826218194830523812928253386084798494679597666402219888441058532103908267773234619815613648548295786958023528515537667290211257329880037970037248074179455908663090846117380067793528209112211769231828652417112647948227085731303408484820150228795944904290282585590319664791601032195814731411923550086212963983525536245481083689250572702841019340796125383097388880245119165729469244768319844524308437775807311592390792059992028280747448986350945327013924212078955350437441459516130303194948082065453359726055425052830987718247453040871246928712243479589984726684124656335510513990515689935666949060516897284378046549296602920833903802022270343600291576675315249856608777192669397195439695508865723205082974681378286738670059178137698992093774420338721061972884168623012461740794037337336793498879153267793996842286637900852470718976956109656036931534483332980297640556328208228585567236465005095848190976810009794027478319085077256684816981317717423869985107533127496736888473210174106565406882832881504916441128177879974574922403094209443148212731762386724270849510723966016447780960960328951767959223000716951559541879588723654735084161578140959127137996780515506850469372236259738795784797592511856727298310511714728096537030315613611691502196085038621965468806402868574203703851214532091929334208406977822526286897479024686292823162558406280764564195554812141886025596349310698703956363019799274799146337083821999855386031349941878830461403345669488071008948140613210617067447751254494519277378468587945349911467889835405047205599867458465131293179540428419038646571891192200608601389014115800627855914420572901847206702247756976273083474704622508718404059633448947900719108976542797333440207158528548628068054606320845484622951510956297689329931444843042049348536618845418505072715138196446329602001680176095992252311943685446830769683171342722799186937548688913159831826265855092361420317673505549839482117086887038244868123517587923791953018252460423402549809945734487307324981201083684042687589073449775454801483212628921422466480641477224171423657969360546742384446867587939096972533603464413938078360564933247453244106193869071192680110656248234972243822149743561848063665022089260965760850509660363856542352299800305514957518898954733288052318818255076134388566925757379731761383114475902422230002960817425083582567368524497457326501943862041184638246210447740978181457071807672037596343040844739042645536040740021066572832286410440753641648566997242164018035761841486852152173221048324367041629510427593764517248569677620055699681357714186646231081388095840799897103105762776836263993678697558865182747580533820789034576938344454074276689516293328611906001606128394300498874120176857871556854896203159687102874708093859576068648756501676878691819905495894604353884833349269572977538850389345613798562192260749613840106478626424869137559701233519100569245889885493468641756183268173772603536275189591266251167704485539970714856927305835860536020596872365509161780536385192201859637242979863259828906670144613185092524980858688576154042913685109744737436982585162716506039330919689571504123663655510636096106427321590992923039270983668369513359974154634633626768721168912544631304892652199588037062177805287840315713908592922239858116864708674214562503250401137553656364929318795928997952384740102216468460527575728984618792011454708665269884274193711540558132893440390087202551864833506603563393836411001431319273142764866100990763645681637848485540535686665781823545295787675917625367203116793415014768823534234307955432845211547283456428519192064992521740574497249647477330381833342999974222047189255360839671305286631660799750145635118923828432811272227990018487829854180569246668395317505187143859536654222385445453901476192551211375566479430751250097560118689020690614796430919116728591982763766348479345570834196828135781337935260742285827424520666719520444112216087147464440255838517747136681312782112115322007566577208648175876791475124023784760930942437552044567055620607218525067776140721701524634390148876872369684873291912728598091354361236287334549235410847246526755666944922497939047807215958510572325389021036342292191607291341039276293287878370861920068891480738424105085285312872969965126538539368686996317501220872962488269302611922551690896925691847745831488383338866435160047150679201104917232344624669392236483004508805625337259651246222194591221877488288720164439169287853023102281276187396957407162773427166412339315786334730101065572752805338884015507291040381572178195051997748613513014012890331867780911210413258159786812364748131446569197846432139332887859288756615497275896682084404253974676504685207384223356122298749375951064629483503362403809067887420020999834159762499622368059243479981165488419755243500731471184341101654451849075695293240891004614497917529279146650822512692396607332828747469239517084860031439513512125804785379901732553458970686811940712071796241329737351037352139024176923167243467505207232314027477244657250293957123813579047357324774662458062048004024102502883186528023012067884626593154311778663774445403322299258357481318490041049459277387953152324105209862823232603277061344826713745119083548218006510051304959993750272871902524028029793589419673150722587888974202264467505158574956823728147926751392123664488687720519600791978514966427995004972391973078416660274080634509197644521016455012836971289699652324151266447474407678808775674623895749431679974023050527365421514870276022004364414652517493421525168780581416246039544026470998744786895268689016883789306771673159685586708087212050890477291397792708020445158165436521048368522225833478511356312076262555104802809798304003209809925247111043893884776409082870080454256840688497127921323019921209413686532586214181442997689323088451285474325037276348691504902270651805881186809680122724968462716539641356887647505136881906677996905183553085980941462793962325996680324977297306148072299008095853241680482551087642497371192290608017829041761174757477575018978198602603229153747034397792057071616837639253395415863425788853521632302515383629065580993985547653265622266933622951055345661452963096180652262384200551282888381502040720274842846154140325355266321123547041244361029337129380897753469576702986970464723233664384250378341294167310389576034894961008284345022942374803210033634283260552182860063299938395020974062018152533114651578417285855912755250376394444565410616744363671647480192031123598516517889084154148433412167107625970041784676589408288201442518015441586634265589616998586407587099434051647797553535618081087957895024966709409988340963622377094918655799084885701669633993599209227650518522438946636797274975208312849813586363908580081221338259308942966746870855459985104501723722417014254398125419448687529724710096358431305758934495297131029269032573151189228270810877220286942889815680096162630008340009051071132759175400643588218728625740618721687250022094433124677955904152731669465271103158351003980955659815165459991761543927147567611652494364415026185114868399608013024917684720322170286355969239231699301670282139430318403690132601437456588771551241671642880845320387365531664499072618010067935569209921769938720366945307034159810386089540371114656579623945082335594601617580190935034893428284786238613566579895517489392001933411985805573919477183374383788756103526381425375945052460176097197066266625446834184827392489572267535340010490131993501701990799699926008146710131549617325273504250047947313779477115337558961341955985846850332390008355358029911002581805894194702477021601305081139568798972392696394823231412828362025290663807280742147479454438627408920609442817276285168723605330595559959876110153244980693468031299841455251538574684257888639446311749250841580412188769665681120879165222177364967246479622490760380244256832676865662002321810777928158236028606680386270329799193524104060787125023303424517634112327671342132163260531279967385545074581079048888194571938616914943621856234520014962590134794370465773591169955376931540950132580016163788583609929632032789703419260370830858045331940755767719404869005848101019984633706185494315328386796680442966039552144819438540519497526925640262852716624943185141589587261379726231195204249293396664497816188617327983423289681713748729338314882336249648672195422316306156776505533417020259631918958878526340088055570279972441729583891728335190131686028587717187171828344666081036548160943798419716299660075744248803323181399196094066120642293234316711967183697514619209295806963798169002309647644826531025330712911385972330546925667975870941150249279287752062962346625889753535130240121557762355964881249865063745518062779237735044153047101878772375541188991400879177693098256170978175235018315852637290643492678234226502398031287556821751544303439064525855985588851820851814926636239950088990982202308909645250317211820068840808507234062228127993585978952677762938297305985385933721013159020840995652838398108453693853188919642821523844334549196096618828614414809845127608949211979734686066163212409308542454092691070149484159111332841159803228533078357031626374945580542997008007630978918552194686695611277463334309180056645037552933417857323502449234859025380943729815465819151390882712215176945628750313358383424593828949647006984448131136887173304368095364270299483380932939093479850140919325508906466590496383371413792179064301310013457549132896341828196848726078307216068877603147473805206730244589724431979486880661927168139589155559456539836869898438453013294907398358863807837182164444164783327430757098977670683075213329512085174592613201139396264568093113919575056204527140598396254365701358287077976957901550719152597658105539805314787761330765861220120971738283662457908823140420473726622753786844778731933993524570882800408092157484802516304590924041613393365142227025956268251117938994642326714137298349533731298438037569373703465752505622046907334410183645751762715311105887860737592179799565691488243504222296147128419978272160211773394904265813153297935855659141478517088085885697094804427184495231388431667710696371400000111018634029785642429865336976655366806238604245789515880168357283405852802330867885719110105718762096334734338868493005198608425858496615936719421446004764233735327021705932462886274657714580569516920952904724559681626384898249554905085453188653220776905757556729495835375258527817091205336195941443018378151396636872600340012028777870016478487694471939380432411849182647033379012285451725618638729828354181475592158224400776051363080001323845215117645902655611330592197121024107941785301770920356097643517175618759936879464238315884624064879134476726264890082095870052609436424112098272467388339274737308439961129544421760879406279754859965791244632054076070528648836991753095393625920396029860356471460050410280950060018360321315501561315173896742741631505540326687381281873212602710230007620717351663240581571965712874160745168981403240617134459592405096417725448907460420766892620414005184247743108601654204225827510900858332054407825314168544127229329757364236428026963368567084568160789643616541332237552391700853686706051812167111320940323642434466605764802887735177926976858196072402765355953191230949550370052131816812980844965106999674179587332409157859656094924823930762785272499575704183500117638648391275481112666795184966050187365857003749661506018697864249688105122237363294297426972933566478112531100701911329572947676271185528888770738102040491437869486305067845368174063354291566860050153928974238575184582672066684937854588706691745050460219258069930978810598878669172804889606905003192231691051725030721043451681485070964071595919507805502266218932549856856621764711984328300141143382153708267628264958292518704434781100403376598813359362884760356486692937326960403639085187415007611077737634203362806315663544744409115269586912651925130763014511402248216651220417312818915409433445587352770925061657026949011437746140607183445950581646480977307753125633288586181184994039488298028201233858921707885391817540796458462468706710774120026276283929748883989242134502480555559228285418110525672317178089671473052775760218658933734437114655196499847844122356429918702378520753396744953169933167351193939280758283633023392146732436525973391702326925646866358327041605939765297594350940443045483011046163121814472984739199741629586588219554245261986395008597601290192017967996064986604633338787742940963984758962840518511696731356680379343453995557047578428382386781217637127577632138492995279220303800650602684807041024417795627259121498815439439326289600319939671020140048426283306393603744510524984832962071356598832749577927453833012451833900785270761829248669680220037457975961737877194380147581729974642755557427272620373855996533727278470630319419893366525402058736950542887089275302921747607355050946865434268951927976840060135188411838925230422688370247681488016276962870836358435476071184642796020451879459937447857176611176033135428054388612247733553106227735907545854627761081549928981948518734272094865160440089046024231038243426969514799658575502041847160392867378116187592540046207094008343609223860009550497413062002495217045412274702774247604095482118455888588796702522267255321192994405779002626113990121426852200929588120482560257229932443266597531590867767497254244818384761846613324479659763860875741776219701820534426020204029904501489906892730651231420748301178674876104333043031665339471158884092057571077342715352004797422792542856790308823573677957669508524144675033302880557495413054921347744695856906050150859537630870446304253940411612608994824791236869030541434774846869262711970398822352903530339238115488566608576625598850114650784760696808610111649977261568710651728757453129497810283148049086916062917965800566846725878197056644213830816926847599515362401731327425477767465976783098705808018232716719978965995630550869773687348570170666417958984213298299472482783433292231533443688548476704122549831390431676831376185859358347515456671746920849430338888072190758320663882812175626196351875019038331104453117929283025994188499679770531367034150218019732675659629162110007561203053403180539054558427940928601030053145860708447390308198824668190055433081805791490282092192020904860983557431263078031537209794386762219171044135214864162218661944919303021194341259986034277449053010622187487185203211178628188552921756472675999288992723416189035889253553995014096956507810891406497508930003911855651741118984989352504087565299987138744378880769116245184176909764461662062529009890586590490104996992760996998736497689311909357285473307235272072348596214919357353941220187419419880514787095179841095904998379705582871076503433921420933191297001098071394887120296207221161303874102186218462818924997144642749704241779271278202686828356356466560747981413681966175476928933727678020086746311356032311946628996872816126283735229849052137902910776253249106596046142986768361740296198860880162216898973616480269063944652380649164247737265342520532978806233222191634057666704308889928568229508773165361267137629955812414969176854048306896151057854559205504240740262556934900148298226970852927398855464636253153925872361442836096918580478890118516052933482397851639453285442787612721966195243267591959290111036115467184676688689581475485747258946590403932773267831171046646280371763792935422727160299827835971933899487826500815038505643369227796574390634949219525240456735717750296081801321848471129379635234433704096105211142561976709218281593717060632987018164100629015785330370044995708455297801299536398829502901648101451783144446942564626401613574367176628410851818523821179538310691437690032268695775586943298922059734684989732486349372912380881004423681808611006056154861953505042664148431358770024935450899560453625675327313838950854516654833477914511080085111929491143024668618252910032750525859184752990568579677260243528346096387192264726531706513986773469793332883380119664384138929579980515959796252112247977378474453295586915288761928979905800225754665441551397228909209358485457479038533545286013822662063518736750679506364941269247597266440491456958078708085024078597272083774599580028737793971345866348048642366402066032221761311894668129114029114102382394124667719852326107343175959182700685250956327608175850186939502855332833893809880959167490306698801600418971218920691942243847793569703869867558720368454764658591564348118286685845843575937111474000861366494185054914248475489144863276963830689735562314289490445618913134116571399443336710659219281716641852936440268064881445710016403046201627378950188589220256404565787772033876010571537643257377527160185191068472866241148298137291949029422561983396392288639850196541712663519276737690274645920447685633512898543168367984241448077234873283226842620889639380232159070633615194385850428471645812842857851417120113511120928961125547643803804015704361484464069943088660185318866378685391013176952666652148487131140654257936455538541011119328694985395600212375825838780708632138275399085286186136603703357521318886301527346214557465129142473919102882172095356197296080249124342787233104355281184459346836855112996593238005284132464149437513769393070319265383983049964568431707080518329131333249404133514474911794443645450101604449344059343812522313690869966462802102588218303338287329708521732624488705499401586436280987922976571234378109020824470168520083041061067855199826148691538451251998911321212793585201029103972630027803938320444465292471367028275826103074628716842584758086734818900268038100329669842360534925815686199470058413254755494178173086044285230893063189076015449071880451772236830317435517501777793987807822247624392760449261477882393892528911326436854598945143467188324819539184247974386272582607352934194864007907817311815890915709426689517130691265806048550454284107890025225123225656654413671090097791731939512546539656863245450225598345772031450691978980145424736989822883205380197451523285844202852213966502672281320154150417888088863271921489078632570563848246752424471791657503740760596501679600683265378797652190206637092615251143431060401844474771257064926372291177670994169655819435173620449768174847285343826343685033819911535006791654237034044279643200325777409318635225454411569853725043370349865136163333578106571273475323113269087600232083950940202196604906505199572642244052173404213032765104501412099854119000544786842223787803894394779625795324789383649846694125063822318584120436818792442055742579499668558149375446087656605770112408836843441250935929019980458589773067066234563922258584421954127536841902784165493895006028033766460649359095455985402291715999810620325080302578392762997770213384251914610096219163339198762311107818117796057218972915934329682594649469744315108933649211727903791122405435437162559836197957080921187467309771705399403071339467735206675014373004140310311179297555430662339465652376982033900936521111398581992934865074725237623482905388979690860473071074980135382779042538917604085405256161861475078921900438195528944166892684293918722795996831332120110458439239562307017501193662788635431666380115448401205963016126751759996978573728501150197329833714770957718622373725252223483518808253527399865467962461900478197323301646382572635250329412978198706742490656669109622002826921753752928219393699700180963842251599289928430668910347484712756120847508805746457872019012464495524814749765865289004278486649589858264676891781429728773185552260053866233915741524245813797776620112509675533545194873004997130644845526481311134454378546422314574792336390583533450457134841635814147622804115790118690699680721291716234962982837921433549951304678751127116002454486992626924290295717009472016343975467290472269086770704743472687445056502730369800801262588387155943128044216888102022742324682844447604168692284073579207625673247637850078965510925980677012403302130326484601233499204936403342971836929495148494798537427368808941105903839620988326383095393748804175786576553767735720490447685041989614654390338881018062332458773586628921130685038531931235711628287258709163048119597155588142817004973524120530469327574168158247571883860867454841271121211378317824602818898009149066411991411493924304050453511228122389237421086276069169310208696338631208459970517713428470417384809594220704782200162080439851275287263706405197714706118770772340461426722369862014454082071762536847204156288654132266988429255727780536202212051907704682049133399593100802459992228585272702558303939136545803074120955373553607542510281773541572353779542639680076891798029330518251985002574282592634209368712502639687793443144644786631525767695100750889127273220073581454891396030408078047424815278006129958743323297673743046688579110039658564691062762429802314563741900643680947172252008045361922944992977006147677257220820233226612845117193435997170607335422839176515584998021645765788073767726153497424080016900750494776245715137034201676174299588697593243422197810706902195863239303449053203003500202732394595387793479013722054546657274519076824091421277535395536696536972159822631178865903372656870664724247303898928068511854902540644967101238690713807087681577322729045980944749581397363364110922424735672633456660339508204686512635572880930211752241606864472660734360261061355337120554057243185465633921863029467099494968152961489197193697777502054340972323732136731148868604809977834399553486111004249438491895427694002491832422784629542608999507549882771088996284262708543835697924863921137924307555802691352858386859179512860690145435058426557213824795664412676851308781059373119683193861813144122655351609463536630787005174804815760045161762764894715903966980552673211247341744371472719835892768839854877552540845378786952834889771189580508721699023010667637058031187198137702128073048702477456085274422795865862841128817626620396028028896423359424229155520183409847128116809453103426450967055566444353726162264022478592246105156425328222966692133992720954200692225945001593434772651746990991016524180610000385032912423817738605860684152340145989148864283673351867470403091815470094576189074640728612329693957612300086103872187843452642134548178193183781859924941218015449394239012542876085508759041175003336698446647813296205542155833927087794613349109326846850066220227675858689152749728006491399753128142276347798349718239232248879106232909723220145314853641996549056730939197342448587339138283137701747778684480148149817619660426471412677093242583354545672709859169825567523226365975526186994676486946064443535283166837907105737514384448686484681515907695027330545164113246845416361154167517056400359076883484788082452154206191340851950706067669374600201435145190367103849139572935753898621231947397634125260568061279648701491711348578707338767047013023372896209375118156586642301152724545010248945604184276235549757717892659648561019558653179194074334154738516979195747088954427961726003465450918548154113197735270565470933780888430257202576491833198518696746673430817722781308420371682029703878851708534383596774398235130341218487263925503066246542805811221467411112065399868030855087758626614861299019619074465856426316974657656791800987722922683543598791915817446417471958862796803499323929262113623260097405457526550619274291495400748356280489469332293502226428075089677297654299628650672456720179620380052865539271229651677655915473165867249902244088289926691788174514335003083591077152934692759503307099894091175352602861396146811610994065363048829971891835456092566199625595732729904150073027131941037127968489787404746250687647209252446320419288671828234617130159580317328430332393119227885825703077858176466081617518487355994696682362939946519894344653286632570114409665327071925256018841662780065388364944421681641783037831153683490168934505387217723281929346664976037351138063965023271417432252873911956930214765696661378306608647705101915714446295633491772467721988618384718514876241742815663073745826119081929006696736709464196838635371975572819473642007268268332121335727756871963815144087228219674941907336505999237152665270819799157620939528262333685802455044256604280088908651289940501847524219128262172788755819397856042010461368133590407065593361156817255560659081853915128559418792979443559236749011731799317346932534885667678535334066072726081908288392108240875385028282677564208271267926212332044686069351122436823312057812308805383634728112675667217694574422562780683569314778055369546978978344673327063108246402389263617602799807035554349932532180562543443880184861323731647686782186025009058558606703922978734630513159313647541835824877339157096627809968382854075315841604268388387522853207705047525289821927719347911212614957942622425405216552823568081725341404563350842008840356773423721714282793093688283559378282430607970904648265832060391232312722665928053799609192697758504379797295249507606232977592440767917399207547804376717181768596179767114704209011446044994465453860033093790590781605382695353857787970727998672685647721688753913448081601363303310329524886016730189001895503734891818345496384704782586378132669998634660954512684669555893973886421665438744930097401345342798016824388519667341183744865840644213703219816894843661698240053249957349765389145900602753000104034760554945882634265013224575964531899852942298371092881711674502559588750624401011347935184258345257809778244428518055532882738823445760917983054216238455969486389987414459772149957733509916822308184445601405257674978975131216653862907716143484839874412531000706709635781708295338032315747112463438374133493811878243056885959021368909703009970940441518456509426757584969583985005299979436556166445061192052619636835573394638611744211862776183806525584051563206412156555282686208019997651633442602511408913730382169399237063606535465175404348127073625414889374252902601789257885144624474623536002079474226845343310314420193144794717702683544351187957483543513936517899936944446299181601752785730569108308084899845910876531266386760118358263069040877242358007258683345066533778944480428519920190429037054382620227738582954442984059893541994143967414328331974154966704972592092029990952612667390877237191894496551895740237128685869368092386755483801779221219802574984816633028476977120747640133935306688653293938946757390096389288643591153503281367441135831672175937027848328417143433317427398940296074899696745830651688298986392125744465985548078709383462413902318579790123129523615901741274676943421483122454167863178838901017792849357288489877992410920044527134886946249116949593216947872933071801030782970763547533847767570339594032970638711774567879027307889788009751001833352209758155203356037361843144457171385706103903854948629138404620195015188159432326117042682036700306622982643578413657198671650594409477065034773133282023298126142804600065326194421455701112719761635663763178591099104988614227714008481323357941352750977082284644129770780961271572094927390265894222249585370024795589354900816782394365793434110068934792458320113988956162525497370477116029537503800765262239610129238654156123819096256042841028260583136042557355622344933766087144144348955080758064306966077903430766076491782617001019404773381657870160447955734498515739643427102769093940754941174624314504241873455808085067382160368828196719620237138006440398609459992827865318601298340631577290102498883326179434611034674496944167479307173417730510650953781697141311574716649239830968126222896455267256097905871160863327147850617122071232591094887167200758776946130614150439434161616999178271265397674804285763920815801264070377405360002156832786352892323549363851869142217129377231355248743473672416339469040893623202078969692540093822674007480269627765440890721210010436966598308404309802864591905588198891416838129499302259280290537133909552778258203427887599799351611862013052195827097175163039553798096761621437964533054408221018383410063659224445015572750207535468184979404170558968149098531168484198925913667567333415027456482907169541240880217892485238906031174558101280627053666953367853590230360586746896280077851113826271828191420868537690635328456889219929078280697914282863280864043928707980555609312782162017437502791205024877161901081537405239656271401074111199980461381592760645142751305158210097523550103344689594630696731523518905579308827378129341715084742125215437194248713070306152653478728836679769889353844675145562554243249998718228053749855059555886864926499548791792208706581475861258263593264544891085822585721418583273346364337249451884749692097967264589365092111760062982926831620044752324964977026073048046084366555136440236236582339233244174502943015144203151035950986164020881314867621542475118509086693031650486366832955956177124109190712717026731172743661975253558685458410227104234099285545083618625813847489281193072330391790754581903653656720724040491415535100636275386865936190741424258976325113481284699440214109271729719436947725553768639768830428581583732231858388051426532622934796804681198950723376119235653598756521543064933401372830536444935561285001568778412059637202833041613072724088806056525037969959105160702240239397938687220354707122376525574638781854919527629590563576272954941034972819196842588770249866003128267320584231867555724619643172515203111464408959952451333291941493513543048808234374282677084964739459471198484139262345863124115426996514741508878250600275584515506581174876739562321820588050763853220558234127707991479243839346075885147643953151193807455429020405174488885588411979494285389632016191547427892254642776062154143027581908541151422784506272533962425368886761234821721037919690294425200872660565564585831240760440001584789082750175708736977321684599713910952555836560898532459557786126245304656321646686797229260137510435402838142106332767939861761478686337751339381894427473469161195791553415650668371741543952808400558555521201539682278574846944076809800557212002576198674160254223313329459513482084825332883131169800317647045691869364884393293844282453907210943031566257793063247377441924131774356045492269644432627735924448587378805281027464522117646830722274814550067933609564484631471743326569222249730407749445087122426800020959803697919924017487681396944144281349379934299532700955107725972552670202987553472545428818973429093951936059099212434332043372023393206820161194021036671964172915855381186169024163508207437064227438130714626434176173593315870484463787753643116957241870555425238890460913624541024886037010321158542160144483349482184039299966754612152228462390271058333342283284793274650430947234123687612467582050118935824336572588154770104137463745282812934122013255581215064772657513428473561393783218848118602996102634848076609705394880861239939593306781587846877333839248321503239535722367506757962184841272103979044883089861168617337551381459345777959680214730367664992220006020965392417753746508675154150774305732523612017453768925123442355710314659990822133361101710474919268473487039107838594938715013244001178881327738107952292395814032138488499031919743758138253558383286053272050259844430240318811516948241987732943759832996924017845447729116220971104510755816842790526657228438492155605057102652542286445440153179537198808715523790555374470790357768613505671463358365402952430008399067949732479757830205778004750988863214157963038694856930606972507505174006789594787665525768108832164959264669356745795564668406108775244827551455925918318399958434239621745103400572173895886556352442068090704540432349258786356832947780447414485873882622419718422244898980870280634554909638609342890770777499973812831398269903388342331185951645685067576378142626223698405666818341257396565481193810941563785077438761242135006771596855135394612196338934358803187209874598787205284239129008848703157594698341922211961360340707530947615580509548214935367441847735314090504598129472389523985860712096785675082786592841127833193124161290174637960338431160759735613947796000443684961738045189815642077005702074681383741298138493064556990974632963990509714689599377016126129776713189295792911447137978069151675678400197484163232672060626088039197327152805394798106862383322152959375161485947882295476468418776031391349666351368428074116285515675093032095274662593029605250843193885020795468338348697862321689446179768055984804119380021664415054573586637918386774982973103259949354556983159611983730160581067980321599456898284844214778262778464811982128129876262340959522106882315297120597229296605349786544953814133847201994264162991248859272719915550709667768318750456001460517861406786696715800356490909742618164140958200312693963351400080194192037450144489111807949130327569747181569630709839810999849005759861578374949870315230730171063533625474472140063154838091119493310040085310512884239099729083290446177804166886022876493395957244489583924483057113493409881928366554449673957572274214503646312468056540524586476519346610139840204323047477840249685870662169422649864609498083630286392906491950829652399666040095493179259243043628683691326887721447973514449027705214512721034692789591070035544085568504931734818808823955635675104726660335181054478606373126863250389798421097901310963971779496274408084692018829978629398302419694480911984086129987849172980661129041503900358824242271187286010990187456152816536517228535761497803531255762243473859481552001945147701020944487668419854344917519855041667954990267018397073631336539395898712183052950288072683927917090708435680728424840763592209190703482283282142636716570343134736935668574702520092107355130360952606210936455892675670640861980806492190486013371930959665822897550648064857695483824384477171419903915444350315223246531619665385373275092212973310672740622567161140409529325724471754496657800766727067831399369656259406085718501080245878596564630472877882121849881474852395940604665152376793010177559071263538821105741631440538876528056583335486667854372053641411622870963680340967056320340901778712325377001055223304767039233870511494214804870544946431613675951043521936440785300328387920254945079612374231464608067962014927377361366123115911489310841364003980553967788183020010241048991126823086252485551455786358239710853663655236107817440973573772449998662983981496442542650910562564248253707365955701402053230974401446508093478344029626471939937418913030551356749571338959050509530245119985087578121729998304620488578251548086396681714884567464344116042970627156872858520562737657601679522711698902790901710444523919749145319140536849373791629207917645970780699169254305164086143972963238818355984139291177880899620389972612115991712725804841827257528532884613413902965677228423448964838982970962044195168564443575107428404366542324708451982640414659315108044125096586734732853643425571457989812527955390412340402761392410529935952586624640982268868366304430685280112651337572491666503295297205529676053181630018769400353035949293091911149047213055313116471754543215434716036403079763417996161299528712665997654271044879218782658382055226351245391875684730253481745027769510259248767032360318159197966710123611911981320552844693546004854437970083084538205767131035220178444759158256692022137101361035189427059427871621317400289758353991830793798948151240747946843983045615448128643630292728450249796871940510963531546368777492499308299383596903893555397757790686713368329880338698700199610552581579343689700653349429170183619415976926229076249079170923415722659697916937612527280039647481946702794018918849768498060184363733235979526306603257587843154524373883013517484286868189120945017324617789528265534134721835536860007629252670648760187501904012097271787795363212830292740202823699867366854688211055872144266074347064132225653983120335295075749708071880719093932236301420664206425696498653308644098185989456213137607882866282492366739261377266100419917615923166629136936433503414059197291282493875114024449275713229086839689022200113595073246035520706428902160117691719858707827162604429513764995709742600794441963471128099020171269079479991277086019505728618040317628381143111211561837406752964813450410097090736111837955306262659353517854507490817555436307802385671825710708133607596209641971391235644450633935792656163004353257239129076521848019330077949343076455247777443880345508767489860169212132292593529548850470368659302957459780329290803988121974420826739871539710813853503898654608006169409254182354309520231164202387973452380610561187574836609251436091261085235736632374370418180265533716766646972084914849935662723063017225886151394585506724231405750595170454229927882184447007456032250395558342106301979995436644509874112352533443978560284749261884276144208162340555638069125245249797006147585440586518059241169992338905359672813828891387346064104059903590969587334806175267562621992441878533747604263293723393061022997412302301061896841707909546457107130121221147091416661324772373400726221665951065772451196942466361234655157182656864315262532154230252966010712691742095860719792114591571378087825284758988062413849453125860868521891389421899322139737597510766236490990463525593124406904523869978363071049085603815842901027531344721523753943251712012261248365214455054615891646947173052911043105826562338026452733926904258172054577922772275550797240720656036104998950297595196745721149528920226853731222462817374067127808388167244138853171596256227574929108405241925153713498973516935417120536362167465620262585351373105290645761653543302015602896695980939633832588459403415571241734864110255290750173670422186878911408112096955584462268146349428860642568964550701347264454610380551401247114341695182181985074425355035880241034750002960498111445711782711704635197860101798880485820311083881772775509433446703326738231117070139433638953877507502097756652044475145137644814063490390910558321146634818064368716749480465076627838840270941739767787102433033820993965439770953973893391810855120387470691598081592979944288096866180155993851862993172089076878398992193634763165793237658197742787289449591963350229614165851851801050224753078751414489530677157953418599828592606164761732223115994020537765454593667280083829827272144051664274577707473886530998235705702542256573023406282779590577480522454272818909362710264701313700885448630272313125475888680060360656726115997861111875994937140288769188528581615369469555231339226821515942606442096736807753071964957117053022242593115204751570360421798306495401678183504336521763730928565409997790826265851078982981930604615592975814832622046121887938501414000854064649154575388758291429223455473712014834940265609850013311392591290626575072824194491951947174152680552176769302631994389937369481528777269302487425754690452092531632202401954134517927323468365823108749846061169352906543070021673185608784992170342806424785063022540076008623925972926772673547235288120032482029190119936708894298033797292844773590193289615051306291573587637782582779382684317751386124680567241553203458017425179629640043586476405232188218460761490803237140439955581926242669059932316779477235455007222802711397486871375335850001073063431125563043223892579998374929623190074408561904341556054496256105502927167224421666621310550666147768492133480409303183576003816818574524043566231353570878777024657893452580149443909895820380373994463192688233679679686684847720750311515363266645760499722289505079258502859498336406503807816191249809296539282485817625389887090807387364787352123265289945732967572066478514103871030136257828787809663153827666345413331735497967219032349310257497400345272747602572065945487966619549368028729183983348782639400329621594128131367274406989069944595097724290506483867302010590430381537722722483189157100181685528166910526795340689164471953745368767850194825809830352071188600537645917330978020204894327318603010788406838440778521198861586556865970856930696764871226889904985347388407488723324448383667279626099844714449271872528337400572755323631905487261547230557039066008471340623145558586387081228587627938026427449085278866872357391520383271834845502435544800807310210317736293215239230008680267749952923275447196034342576572228261791754977126706611915797765397728228039117408815268106084938203754297006789079879372909994898710793201811561565819286300791982337857812706355845103670063001004761334277178289406932419679343867635003437431940195702325256943390957396064390072958899576288635059447497955287312574422600726730892933150741296941432248055739770172449962514900677458180555747947907485728585087400654253022818944235078166142347043139574122952741387571081443785903831477889157645875344106578966286914434937893535082958482310536834060240991860778638844351953316451867369050671409179539225442591999674478236003402547162847514979933790591449884609888367543779753660379333520374943554168567151024764611891021501271684437538630619434602931879090336207620237827271060513748578482597594912152336089554489267514412008699617447074192889954929731975979947861916232246647594015841791262024805492082541468537715753862168413805234213101107148120643148790363362616112516164059752764861960251035439123336666514622883712621234102515475272107792272112042826804121766498251297033974069295437804624306124231381159046469769000363971155616397345322161748748789265844291482110619935765082394729092078333176660045386426464919675309732496623496974489408429082189591069340875915780269954612951438582481577900122410503267992316569969119246245007957455887558237537007393901846726141766149026555849221586629730424735906003312132006951273656164785975843431888329965520362058598224671199591208146725954442667279919022050392609064052523987115307862808564926047979151898359871791371821995235357836640597580131968257168080718298242745455442336199228768944361465271432564934855921466812498469938191926220191768447386516452359388149560469607781747368402090017816610742435105164173341744620268700723627781766198254814839512822102111093812766893231020552770947281963253491603030730955066826037902153066849492873151255954693020964966621936998110460362396769444089860966648477970967701715759041153245510843630596377079793445846622415343160664580360004007454920808776448264579430675251804080016343581192498349505774014325285739056981296256159940885439231858315070295120910573241812960588273814686749061529387804648932942831541793570850231743439885887329708043026980790005524436361363781373734215946053472045924156585501531421406601352722094442095182396338335841771885964652436059180754417930167159559285151296440565601443786940053038944931179860477768006542271869613127829578606092779147129249890774909397752588879449350979814016301597701642893679572585230039074092645797957985590829973576326217039395359113340309824337666626642950907087263884187737838467941180425644384862687151243949276306147788402407441913319210060906378950483235432630915170943515684959625151647409539688291777973116307824230772362039886045608838191137720092136301445363050282211360093168769885411952261183021126430883459587886186428053632499894283766088076412632083280107557837967214735876750231820614501575418868762336364568565182667517445955400954786632118852438186893695204879137785758498087085367319509267856782433874143988766261988815114960197156431720446569424883220805236296271592055718075433642188112248566039199900048043909375404200454522063316206663238282785277090987076009775296483920001873396992879282437513092179800390489813106441094652509262432302222894938142694626040650734590446258791182237328480228669537421456353167373026239300470835638514532028988349646278728364395726240514378738487772426789982362284665466469402692208578166298845956770371620382518528668280016318350106692885753174897998687241715725961828243239824838766059561449119850032956593532728007603615771600245531950371883545114039131942479864623958653318359333307989803215212711733506345394399078918580486284879650789249366621231272837439202071258496781868863890477249638843766103343454076696337630581985133801633871456772150683470888108853694023610950492830787856842091201811622723442164204971226764117093989430600739432328926574780728905864754708327568815902133730638924109622166485146396407711267704441096774456568330081818667134871498385288354253123849144040085806950450755872841425102019198388876159733365769807413879312249226716893546092241662377762025526686105287069433636961737555837211803360059053299818168439318686761433030674198305737957900512103158716656901308865412204662508101596365477495054583622944295097400604201097802271262852861157534676298876219621116987084774990042177664532225939474739071392823027026046184851423522362447435354118468581043017228408162923050577953648784065067842772966380118644101667368388241290537965363974786457617327963722654845183740014301854765771095202890372307796225684099252966354695439783395547383969198407510479905368175804273788113324230736429650028535955329250010058656268675246033647931577953934478827862467601581987295398813200397368435471392967056719249778100763250383630258814442341940648183148502188251182031152305560364207000750814807608468754558517829976718219095358173886972402249553517547653659928912462937595482679250230815509056958864096195915949991843172967312327083437114879680325198730496541169838270145507079735254487199846904328603443832597755231869803267524165392514777679497298292993722892612003289051326173950235776477409539320462751475159602238212790937114314670111525134058756180604052999590671412699442910087559064095461038395102294446574797154393946442434088752983453258932877910478671161189887212565093698797072891685817962910736098983157263710006572512267945604302402140408102352294873070213083330366703427012314152696471964930456301463858112271285193506677794304306462939784997372253722853728690254577274025341718436232588350000202994266377314744748094619652985451722946041286489173868718224412374874040039413587383204328558455538501356907476806666195619392274937365916633802054300863912885059742430110574905204499735401211518999746072109380796762832562295659751768622401995064742267092560599324132015494169868475466631863572743152846563276928895410407063158208975582228490516565748737642209683459918574585012533004892638379808842817907179816227804308697443599000247804541165260366774644297988921184194592399905608025512632403351466011821956850030316561382050328416594558797563389318460341123694211586544318160129390976673374992808171288314794119982676114683384655399778419202006343240318239215724125554125115622141053905157293296221213761754882552223545444083916952131965372446379797147473170941944842849670230187226422849943225282639197441698761940625334112589614630772872295367272339178356864212812814800873339256367423429102363157569618219153164657532726237859976989385419133675529943673851520065004795203720451419528269979582742020618736272916841607600176786352362910247540593621892869388206107824770389727491927007983315189014397374746465320055819612102981967507945655055685043105200226819106173095639460934628743015690297900043660531033028997731674623422542092918217014307074716899178987540921619942960037060162813814735430924000840867319148491995100813665483705677238260357145019422091588944289507034539757943715890748486939134250929398035097581800454434574702909200199448461124287269484498129830896740118638780669457212758698312269320918509665438121236917492478939190264391326295868005939705984832612294005882350055931067620241809185031873112842878889338752337826358483779239470051010453540550132745635244524098837503549481194340759279067213861541235950139117757900942064003762202976286065266728238520485174215395655999654400522922283272179770338108298648010769140579533065514484883027115745937820498566150753558602736342289846538044424108062698412340085344483091564123008610117207892962044918202378261819819233358926549827490347154870160668342046188470445393099704166579431364925418196764736419347252690486761992195358510659354649399761731074643843671294276500973183587459125640373602852828296979311206433648653590210935438700239610806915404671596994838998493419230544646265006660161990020366937922903180012669236375407000187073883047072674031180886580625180499788816490672735866354506487647396610023506585233573186472204266231448373757861461313138680293169689267028808800215095567464266390701254098746589821165080810585978304870684290308178881202688640650102317824423839786735110049760175681055651252171848531009377535582824330473021915776168888126121008318734522088476367473230309531946046250282071922436016886563971108836354337713602639061968784805144292654031617364003450822648554998118566338381145955508954399226435815397135512086483861183070345437566985335378888791133402418465566090017887313992922443266737589473892005616899169375032695935577625469143486401720954513478712197320907711723508545960744799850385892541090153058513973741246760445970917656904855794197929257124826701893984106428890979396667756786898147649898536954771198764849427654537427987237624946371923133258840545278397629906232082692991285331228504915545638651510432894706672169044198034484744712160597976975664022285917350050837517037433519631152272462003365273392780865492402370319459052095582170101386391335036154351844809246568145655948478441790475064571206425745015702762791376082632765427699955208943959561943281383081511853341104066783516938176263344951992007723367081889319231984003345775070731086464120879445160358339763743127989776195613647608704064525801779341615688925331175768329316390147835969523920382290313443300865100433019810102066061801071984214324379493128965769655420550056199242197498583463185510214671151639902747302505043413548765696652545858866020504264478416128070522311228889881850715330846093065025809878566276492535992232930273015623317644341967277776511111141851720291515876175178155137097759418219443375077500646515782733000290239585035316113090385643812711339463575445110477971716851305355400739351947462976671575634066615861640697757561279818613701689347087105506373678976791088942603399899088982256897788261177161977068368640815661770263777118730387771893228353149894250642961862963842825605977087458225004805820192345220239015047795480687413008671292802219828086594418853432001601438615668960075767442864830387536844972889605140942515524991236361351720230154169180559412497034687714812605214340109643962544885329532416238498475381930323026801429064445835705558282702471071316948142406829793547827279066956767437069581310779256241541432521851994959028861375913754779940616563230427628867504563445776569662564053955972525272430587616487052793025626930583036096061489847993018249424804929479504969361938614703774538597682724411181717871291798801332859830458462919486746895784310864902914557344489012843963236626408097358196380450842325021739968486729442701031377653102413592106304776109981050600606468692031276313878342215566712420686642399451855689702814102902403914246998151467800902745474507423236501303289828374856354772806043965497168145926270276315317924352039303313599372046773136737661210759330421670123224174252391986843305414262671556416011556115165906129904810128683896686533500808019018074115934868076479697665304767608769369419517291808190150948148009837219567725934884635755603704637291959011077361181408683078525429812159285933755772113993276488253191266526061301748395687872984499027256461706576168241202662987147216834627163993334328197074182324588752280110422108626074010345490120877903958240343789991435007328019574863159511036085617312485584730408768473728877305468791912346120742823314600296247881766926780812274871061617022742091600085459163910899670891294304828006858469762998322429831900575365240582194488654884489416577440536674120065189940080364859760420972900586722070590211548230180545242358788153547466111809212753874461334137968670047887940417800167347580888955729372966104803341952884720151889195891814273145174063380836675107916247011716824698289312450406495506500096334905819853726929367527243288457039454332345395954426136316367806803101893164002816798009959502188700427982007130420618080816499607814258964473953974721856391886061055623484011053904234678959431868654734788962890727301508115035249726981995972632224037591788709975859262397063523200571190622071621870256432095894544661487689150403300918125888379174214417232793538816865053676575754959857226001804380611484677053268777570465055592300725364007035390349236623620112179698911325317582718398567827128755173280818155069283012631211354943261062086980985213479839975611028393531048136910780640726002456999392230805892331570542852519362175044231049347966397085708402257664830340992115599360113085058446447865717839514487961811584293512258538685716446542963281619301673757361795067625732762545313182478582262430761644675885417171276923713027002629968589561479630378917304610483950818593340646442432741029339797398056139357726513183674687489697477495677260346205963989178912381134131419916875334787936528358311996185979684671992436139097294015532329315153175015812548532214263541850592814484235574381618384286909223300640832211603479765437327638824255102333020816651443256756033562697696404545680666280084916877249497320262445423456637320363956083467850767321831790043753009612625966498533768083727841737986986120478350788096115086143960510495950556553797319877236593419126338275287698377185995743108385976368085574188046357148613687761825462042823178868512608397860072434145948760315000944813098490021538864049153719361902516464862263319688463849854587064418107019348369110531332006573653678470770737443565467383714516374387118269771203782835620226075281706346850517745794416422646743240897123758872194082124218840071197584460534349198494903580966882117164572438866485075567276254820328378277976644866273609713811733491095421785576145493985188731857116444095631839891099192018554077324570898247943434121277906593743563231976147574009345034737981722963507301384078778759344518124299547843945836322089311155557322051205857249854591341784977368919051644702682907796246200617975179550449651278275038963657002145818862253518230003096660078461130995469361380447662139515068933334461053618813910916737336661819862744739196827756537857599992969739870761237965293014773035772498000884557552442491224196807977648873084716785258873138696714475444114751593295288150022937025510706054257943557491572221590385504117247603104183617148977171631784919684862480535235707045708342077631624715541549741135919835374327681814567651445870811614058826872299215896394176518648348995040406070948968999985329717573578421744327222703924204864128784625516590674600465611645662227372973635372837919647890259893732282666101096092918640391865142302332474296447596001268388876637363369741154770710957203292523170516478886552715745208872009538560355938990203274735488590051586657652874887123526109109326993699402847677503449790282844061396899799210373586956921710187648423665208880881527834224995445560253685321003203656400956846660034869448378163336763021678140679814173266027069120510305194635753483064515393949701351097602131372066384009099351200152159592701708349343630305982861066353868442074374565629015374792291693146161079791141314254741909215484228747075927287762331919333047992680501208258855699600346637931127142918063843730066141909390561534063371574826222336297339467328972077912492400012963104705001512900367662567678031869389971145806622069724243240422624833612830387119117232865062821014093047926483376156379034846136949834976667677667286532983187790877179774210242420684380559087717796646320906104685799904755024752891266649810819628035983614296660174264324032739861838161205471530803858828786853815848421722766801700775007352932611077647440083691494086995095724900301259189589430370997774910054479485864836902556851323097395702924676128352174033840281019088955844731494572595363523645678408292755133417907893821600401331302877857142105062950246969379427221696557355142369066824048796068701986751396833749565959171299432238415861260783635186492965154583007402055022524772382084412794435468185723592398980750286573331221831445794579286506640610487228072947457784188064782235562676656226044858099947821823286391339663970790945197091843781277106087630191178515693486016113038171390460387499233516215001546639795182031216820175980168254985605343899519379973981283962775644030427907766180839736378811171676382806998784202374615581823575906256415221847586299069885282173700216241570297997911873132790662163452327236975820366589570329876661183041832512857481454853358682646674584565689419162595041177614258375227837431010159961373095506713204264435646236563404440866413689207005546677289460247333918898786807424981637623608254844001199321689900851360029683381560062824958713517912958606063525819642943295489856055853309271679385914300841797920889629137320374371820475279435046402122732089463902385454191449875670781417223608527515227421503979887670036987247028677318340133794589008865736085185495423001232260001458382371831967342228785889419433519016619910575574556333483225183396609291661115153298109772331132767823416460955174730670787807134504865387473700348241281528463371988141046841396319171472157291492357920114899608148566284829579549302343427492757816378868752850975209105512113003573237512407987424887614712828824467393120495723720969793686431316536418449043417193457925329774406232925981267044161491858536107667215653389458470553783886685542910915936348818690489651728261231088746437833861554236979288242579525998704966162318511776305614107035500609513554839415433128168631965541137335063327361845161704966013157353120346977061419642014604358632934357523714212591659845815516802382110188388574120085520746626538073046060398375245331506223895047711339335399324633386502920269741824729346154274322220069046534893085980416844383798463163307774869118355382075868853729046967552795031944761504499216770190466823292557115374312309550065690363129231664959642249708383612509667577863575600887648488937092494650160909204064769308516053583067298857082319038336994136074665034075211766472674834885793650841515503704364925784262856580117614305102545233754025550834473907485202054823974380756112136796401944601328062142882697459711458642847577615115614533293809994267705217941378182216348623097661439240427053025841902591924470626981997477442688288222001382442419256142253953529585978526746680171573201424091528119421822429792860222915356824759336543882974935904491530628119783356518950945446570576887533014352575181119253702685051407218093367408095544093738905632237589414267949447315033119461441121026638158961867164562677764532072318211695138016964281382881214250483348577268710755116924217434608762484923654302519532522495386748150022973294459037048308396525488351012708200519873496218854642976483632063720292283206688651657953112991036123408520167150650774541312991475780721671368270113434649204127009299063073697314160167771425478051874535629339083781847066504315287431093795943650240730154174627206538718111912036863190434598052641052814517980397151988277160685464602658120151174751496789227726664530277355419292244534081607975594697263544973479035528067402486993543831076936264296874389613641588785378794837177511044587222136729554579787556292593541013322918752517172683419894194014607284089080918283204695300544030529621055197252837010209765334094662837942828465379469625873761941178323025663592976983263067695972267820577253265769790010076767114970413484694858494559155690325004699877875194550227462430064903052459819526545495801093514936820900818269437717028620235436251466590639109877336969559996600661716624859490821768891892239339947744423021160962588470494930538080613272932120135564640972175077095235435749691123683824022115496173908566373029533295190670621756378721009489805603609173615511778024800070797653017625947152945287598335316930378764313160316121460939843966990430327113863284564463891839325945600482810782168401421151109991399103338761001701530433555124162312364826166168855516172764482326055059957209405727219957957773296289971512700828508597940059378724002171614015484305610776481903667466118934702958376899973600673928280143055386614296433539906390977417349920818505137534403637203423751126009118809526098467068881515874558863235580394655572407438225696347613521596004071461769186747467447217695545983940692381106656748402240560510378550059949269567956529364125944007979859968054437409930765413783243812419562646392422645969664961940502411212178611083827407235565579273173527376110364212964951613587121590828062989660425310196184807408303779686731181001751194975484624340035100619371001434096729773832251134516159659832727562256149621313130639769541697737419934687402399049589193730121119212188321422690022053386138719904629710944850192567703585885412099468514184839343495596495076576719115842149722881992306227786741567256461956702312751649376121059883324579257401016616438944324146554142936386194634357953049176864982927413697758571951210182320428901994229115938819222764963881158950391170861757161010554098582273806852882765352498668270144433167143694058169370104023713837307719632835952316174621179530173242158248885822132852735737351146586784705449799597477995081988006719703560884132058344001394443015062711063298053800058227615900221011950797578746302060083006008765960973488797168964146749359802549861466260674565155344059251357825252948548268743070777456801385128433414471532712137505169772514398837826725160973801028169543337278213555994576848871703431011142217373488237289214777916812511094113304115842517316912427190990280769216281583339978008759339199125808342819258412290131248828206102207757268505278084020342369179466481307042280977792731121886944602696633362889315245913064225620404339671373531262568998639523525733228976798910699091023763824444674648857995476341269935578946831533430298070465114299961334165651674327129375678934550488888796312019841812745513306915576588737035850014942713508776786199390002378556293779022158071199410950177375981788047252413869077545879830458381949813196411964280694566917978556346729202583940211856081755299952486329309650225225850515195585419185948910515331594071465631187526748976548203819931670346878218884202867928056280882718626322070226020056214541330266937095996306696747991435204941326483390504911707688486638774151188010121594388964520991737329210270119468121243761824445661319161372654121305703285036467122266653740403289192195734799452578495477357818049527579977015369187813056031283771691479321103249017721152762794608524492371038957315716781251992892870937489202294127601791687870055621299082337600320204157996110269064146713692075030492569003379728942325837920516365119014358013986794075946171321478792596359211213903923752227365776824764337284871866456634246481466918885350217754453249591628002945258784637743719437911430097088172895156321238405158702577536363518963863579870871991510742458260227224040053493088816094734820754455157617072301702909017884428680055493842272524688976046459015374696390918810357116265657559283251936206730336697489618312054441341501856242388659085152258091342287928238718255649722292272472275630937828253105699950639434989018991298305562142976576327391531579756038607961877328698206042253426378650310884118894345940390780556207492674392939303732633987011479507349866786411002326336793944688022300637271508936634837794454190000165716413597330645296416411772203185856484711390565572580705238052467344800649291790904627228711495889148659217910769023626990806660916713999811912508758845773769869746732760070220762047608272483901209575472277267272820562034513859581106062799006739753044470615978556350306475124445918436728270078142649793392709846557971717493443891846727386951605149679130192609725456163464358788504388805963505329821524138339752269374406268419604800175593570527971541828531879572101231372739984283399861202506014293896345766762543572941880056784042076338463344726886867182839083596780846701474108171850518930216546251444415129606163213398411022638181391529814169382809659170432044955580155608831040301064299113582050747580584720208311651483455406383482608778291787821842013903427996780301935317360673079114370316080803180252468951485426976493155575884515264692398697084116674075973366258291856669385038157906020386151105144381186369102688025277546143239228582829745775129466266827348519837285561023837318253101608157710207426789671360970786123806170735514424564776934107658756574931782216484621397968713859518369313837358178405008119569213010393466065175457889309955639842042604463734564859645122382005232440311611995687088129398396900234917539691849676818830087176789104475823597821756218352413901328367153242164539679226832566647317011598318525701192231200344564388471028083158699070457095032312780548194563500940665762452454606588509347387691649378498029134821385588952538667638766918487662426271839311731679948575588393586301413302381742574227789364934178950545552091280028736891370786864484052341757705045538721318890581505650130933308923858367437270316943266473193478664038590429030429682996791096659071799468389612720111282684385831127821389307932461919102674276498112210547994893203173659667376961965872996824510990346816373319119221322207287468453110577067735303459764792721219043616306211578003905891882559477597521802263706903509250305845070841920797834564708871251568741684820071034464385808052261514609151728953844640667488196567483337667009194094943684515354577158857970126884868813032913615485464541308243523041472585661775540899952949084607743386524285709870190756266780493256091804805550593947013234240359900176266639176521123385669929562156655575415011762686378448404583531843551845391146860871581010772934978255259437560997525137136112261636319796546768085848960191296156635637166891802235329800137187975774354886977760411305186564065081524269010911446221861827708425299493598028902994232145423430173315811196853146808909938472101853849501981882434502240226637704945113425778686185153342067862867812605676400914296645893732116284744996909398057646724191026595520944510149857207259332378286443368977417913533897065303089063991722269343747864889940835648740503354509010284812722244840286815618075583925291780406804496923289257479544341687002008440990582187772244859036804987324941011149833747543353840913222764066686108216077215630547268944887382368871608957283795197654742849584356199586787755022137337244026259316921610727647583746539544589258768078097508549954278165822796018992551370205617869392737316933460497866211840617480661083709464437236158698850130832851927047014708701922139785553542398150032299385237901976615395547979875166283186852738968423230247880053027560737358010550282601488497423543210951351097348359502293888340965315473030453226945521940150214376167685555610715971338834499457336955306574019154949088393096174102152008301470169637993377322713586605626975921267225175009015858066050953724978027135225423612092055889927117737471660296136235188217773148059985112003565821612523563700144937839170799320430722822916346086899771469147910956695916589677126109214880662843686491504552837771846785158018642450188293819645645196160917126436442169303943830701322548463789544137587318540617558937454283492133813299337359930828382893037642937686491689731882791258964800293898434281667131710511607211373960784659052204706400747607069591145944398234418602995164503813342483864118420139737662499037103572931785370355848053775800159182419528144537247114284978685864459730321945070735040704012099504993859928486152504933000434966589428113461396692144432212642671352578024110054740501957847907436012757762942710736238158530107402140444651436116535216699012813830489670651139471444318880516773866132134931165256495119463087378481449182313036853986221115799633213909963745590744733963926037561618448841204368778756535184429583226814372369419547816690000463191592914844355009552853127895312727784286267324249997196386324575152872241171706620665080963832125383352094807235224732660164636632801732120777716376768799267577430910696078884935819077816316980852433331324027338174823421200424533827062360655245980869609796500339133747115605926960973379638379983067360356024033687121807723779282262048526172766980421583365957332735288633859180642237938300403356626686282019556923348176544871638912824824183851016312573949948888389843272791995044905977420089304140509193982823463148857954417804069220475408445302224849737427794428418404907199955567100001312229732191500406868931133953974972415999226851876152838790577175123504086749094243073948361656121489270584293587542744657508826539619009026948693227028292370120825773624546273718333986364394878295780229824128624523631260365134006634721203598032195197246279567795526201364733226885249280071299695390372867332726877354964664345972571286524468580884252923100025785806661162461636068528376841055800752635392469420501441622454448472819018549020883074230408198487940465994740354850241280693637151134505873060319639834720870147258300763531198704858044952102192170187241468764295971463721442424945930567226868888520974175603723597144363715773101177364752394788087171497835373447969277966825481863707309652861252713220180083350038812008117180387762080915430892016283992181265709827160811793319535597793445440060880462992691196776800558389823905328607014548227026239507012433728844119265063106500318149801259641583239042543909935207709739129270050662140425373016468239236692627993995878293378159316631597808727758456149062211884134400494967163154342723146279452786677327701326750366425427691056640981978033267316754656614556561790078945526361315494766633775055379592615209044129064663601497003987973954206427939304589262106479093376105065430578353330642659708084440815104841013190635795377030889622372780221863987016226670268485830202058775106902301563560032744164340847077693831269521794453336548739556130114788386038618487820434588201295401045258277352176289334611928178378637094036299043281015270830365322886568285253439708793633255673680027136125776644812119945942424128467571923271521535851745015941598886336922733728724963724125914750277311416862393471274412067582561729679378191474446784286814191775362252535669168238502875565453710972152938495539847193181127528557142998689949271312873215116936724541510188041533226013694265944611979787411072188374359210969287592304182138729809309796956064986611185310758785131046701606518976869023917466232689628050431211052295940765323750435979389240880341782074705621849129596315341201315743041379067173709006840716821517597733351994045234358118875016457778613978767365360448029538720903252195862287321533009570294953825475530912481374444498870366510522026366080903421376949566044156379764239259383893822481739006030304854213648116402612750866420883238001224558015113366821151842980912058293337283686045469085493989395365279386720059131572642166294651220536382828910671977363937610932868982362380577664009934853724606908475553312986884518310911767682989563786817664426019653107412426880268832065652480558011057992413786262348170075481114253311592884354363430674800479253841613955044308776632025811686261103228151458621214397026481091993129176781589209398148590170081497689715681386930657827969850565958606182980382035744889006218141026240191533896430689898024755146604604922886716213946234515309189475908352701493557782494787060889378982234568562982733256225269707724994908783043191057245318910082472477801755385810273511686134131701474555158103447732173816962428844193831227376811697982136729409842338798485472444619310429119301515897596850553004239246031646509603882716046026775500747307287367549018721135023491865471622482929560397075990338036545901909142064080895146736234992846750867640020185093924398267299598932712568678270574656100740410684394976173441904579585157709366571698399754451918611768449063873610493134130302830951435216014157776602927866232829847180959293656580519939373777700222403087129100540272015023537966481827412943905407014409932049428131148751572256056935207324420255362832655396633876487282432054290020885581151943562180533603052639977485672659224750877685289179067364550910336851802624037119021061805774422046554078194120468428089373214722073262080593799437020987294202108608047471366431888452944833494472282765327689038303700097597218393595611976092465878750363779217733616119888201863848054364045278839005801025388635918605663544050437492930902924493456555966614515808600062013519602506488931415834389338370372717470295321745565556250007526206649993922456140108295118591790503850297090035185449800701614116320184903452535057586488406790441893317045843434150982987599610264203786365534741824625843053308972223736436075728362043382403138454976862512994281196105050487155807980306545798731604073262721224180903379332508965359840396181378303286175335651275875755228327397868975095104970496765689461006135342226544434502412969247622928992724290285877265220690407968341261410799959935404672540230798289525374497599167012844008209889307301770006187025838476147136917369979632508201365869218385952202194031236539312384754572950056324723137758482870810530721211658970226786703217305779651517700748810217766827713517321690074899223592605717479445425257433075981996818918140260224217488040733759874928738671536493235664834272779367655218557913301209548801491160933094683953662477928499206316435712984942786012576465615297429241694190807810145202434441191318474604108342514897780326977938977641495369634960950904150740182428054098771821928196251361758751594940847522238254067865376475709457902497387488350044158583307136421244894088892156870557984791115516560844739295796657394078803404656508884305018534667313946388402993392050844859179761501418075955223790026984004366383606330936845990242969683379625956537837806422743635767119379958984405142756838371107418190697120165279084724921562630563231155229051671510985629764455470665174325189047811367054235051283609035598017152656900680049432471696025003726987470152209927507071516503488988487430740438914535621036432059896194282430961279306097391380451331838241023417309418952359361485111893967134637052730798342171003669118321829821295741099955546634773959022082618769839954216279805598247755735574743441597487966246117311601626242586841716718881666682018382033871639350255263690918111781272354489066174030745617476256375610565921825641481704418086337067637314402669392034208306149515705851673315919799362458311768407521343889587166748100867913016405443818003505535640841707746464850982741209535709985980639975352804204354928668089034047234674215495341576269937412764746284883000182593567923072781204349634813560773154651978774072685748631567586440741155711507225649361335885099731687603168787593051302747789682718030915798209371099192334965669350058083431654200125400596879147405695696045160298999581931498669372007223456836019379678075088976745428510029936334323521227196055182897934457387950981602072134081112048767074418154162760098870478838968702903601450048554802532447897209343774459318311580823890704691119228736839745661955052304784134867390362732117167331224302243965118842420224712357060154453600719631221911026144854088086519853146161213487251710940962766901545479327657384733668613432426788557543797836353520647846996931236744880435232179668149012507985215072370589096871728463133904526873029537193099672225673621070771575336705344884409095199321853756472371426179336661972757206582704736479400993203335446500252748880652124300690902131176767610980797683475647768325392562370244741109591257799440513429965818543251583211359476879181834806267968455430089694047891448853858978836217408142082578422735749287980599194328584608242087399881276201651102735227356557723835256906791239076957171731005053105545180404828022648368171994420548213041464706677039243376726219427702404631488865074351597954849618354154632575327340527286081908653536102064739566517840482790227031924917775692136706284444132140294054796213448645801626763876916109354423716484264177725716109026942185932694171400930673251145410684239803151422109279186730192726061542957296342974984121972453776664959287459651546324514180961267381284505391282477597296444048653619769132517886686515524020372178318643337112873398030435323865858517174806453177027138429401701410755156365477616816079166904219061254457686515765003134163470074396882141527464271350539130977702922015430934727650356557940871240042104398726483718770728648617977867713703719301437037818514691689671425511941240460389166969577080117867587715700643793048406497109189629333176045146765684794940410756784171515614622882994394654299542606191463953239672758088126894500667738205517877689985631648198890548461950763657318348987649226979999473794404973695154503490772954458008664091525641673350188390069484155850095372507536682330418641042700415201475734610227565679393550075004481599138254511507964550766239854643092145906498932654573094424945748411131439128553391076207512969955245685935784284236656838266687410157789203919048008297252618365618890630947350427926908004643624681433827483419567771829437588994725767893353351203419885727941906435498446155970375704349278147484549756871835637096005612738614059772031464504216678985318502789821809458234164352157964658778891650713296213113935627077794870691265089048287137193039214522784431741961145427134503129388368799252881411325259803080319611546578134060631938155635159165092648040343165166382916741552194867346702882610169374883261244744730969979845380373919931104870223345465415462835117351760000982051861342325667342759356173063571034670296100966786430515896816792345437928980031288416606206863284492471006775346961396015106717881456798259726174395797022873424489237499503733434925474388797414690016148725981394964574369811015832405701740302724996185145043792705562146258369895492420238160027176031904162416584406034872729561090536087522957808293101912482965130310982529149282039181223710545456514449506848884668116918915289263614009963384048398518923885815178669697560187841388548134195162914869942244186022209903863124545513013831796947673501931924860771439487592819362246115316279612834964960105733569761343157334544620686261850734205248632045175555167716460544939487645393949264441198784396901984939359058135169835514846949855876260299165284037903228722857982982105582701853858262503446681092005353771054972712231388847376104668250778361745341889994075339202748941796386152457676332298132949950269236902172532796173709000484208491942416748426977338414969030756625313235129796491332707625288501945912642316432616557607394501593530719664513875226516351833516448614524636118504008168268757291466612959812277264425616581175207282516994486281209781980072182677954064464268065885987487230901770358954006749616415440739710685790263306405174051604148020805638612957261857461224764928804469806756470455341779887488416626814709584847278326369747133745144086998541273586757960742395227500675837698293878621174340497316264944512386830217433643821667356647166326857490765544329393152797439972301357024532488690043340377257746006953874780026782911819781485826903384007271685479103173709430670495271219240640632551931994669660548795978740294872161172437826842963154463200846810363787014798764740670574941858068646235305966962778023201920705928812321152770726604879209642549376597704328756406908818455562840426531339178106593026380342495101596370697899562523334106099772164272202519212099518917771151045260502392130319613712673693977844057313322335623524379432121156319049838066751783309857896324231950998278896537060617515725945438521509356136094229695111865823137126357493236354501951252131323945421617869650665691836258837019975302311031288978002463145569668728539879778309525559603868132639428612115209919551409503676709372318911668341397303376214031146926435091295662104336774090139744400862963207059651083474453794428877602471569211217677744726183790012420226664318054255837454296515708752437894650874109670701461960858769294302265930791286608408740645566058839461189863589787094998467358331539538480887610441774002954818306506774946207795631338337357199245674587657629488605418016906758594745480350812783978620719680540543282825288453359630629435412179934102104151833874166295897551504807042070886769498665595507377924235766815111829326032051521798483772015717873525108763328373734500452916537420990734660179069709453775891891475943166130578584720809604487105771790867307691065205728642150803234533804744183591086043869058746108473493591294318556999317050292675058541880591788107411786628217718783620831988587592980016725759730055911940155775390763721466432357889952941661001748599828454805775142686789836000518214510751847378604213367030122415677948560453762691785212882468588356348857704222918733501016307346645274751751856471198369063999362417052720642397763929083571474124143516705120803923955937034793550711228686838977396226896350830045026038569760057743963946014321901898407082936755164112521034899040487135351848847688990603855907272227166513343717238241588258611306336556596305124194461417693505041565934383586692224846670512810798333250862485045214554476974177492778666554839858920007143962607283666080390950425980995168970760030109671605175850972907702820030293767069077957193132114013492016613851689512139549325383941589361441968075118272289530050984047471837421787073640193965951576837912113448907389833408077447412863326647999971955887673593497888529453280737572017480556208096480729417208951133078952362363097542815527624443457616018628326266348567371496531540962236058902584252229547769957541842977963263070717622242674209149173617162315584588576819132284567149926603688168613096054890137991287987981717362796791240156674430705420852011723435949815060576803036846410707376504527022524544715464364272698582685539912658350465407680155707136905957650117716280636719077073550008593932848934665290153530596022007996004663896022653497542486665604305707188185532413557133886743584928802939504378288854873786617744345054093589286671982845382340965946459075095430561884473976416789857182367286831009647857002679105686355292516187336415310164428698668998352869944432112477371961236974473838793029572302527311587233973826874721502707157540847646756773765858475195564075563433885074771202012252129772655734611836821790717726762777985537979702852491724283052726739652410812413598010386890003297516707744773307862190012207552388235349400370214848873207967655182421870682453433448224128678156451992979675738362861912729515928333953197682996660728355992863105322449679101182267747804792356628711472935940799290696886896239241884842393500215351278799244502765539778457041697403294106782607411270274675273807719947205263979813447896752354491549700462236790708694035515444660639647939902335502732266897824782045039045291033012771066831640623638570936627586966883617470393384058878550977397462441994515356136216528029719725899599639880495874455593741297105696428641220069868423920195776560196908852474505584765905781971936857310456833129435519735580732615968578995254757338595303557867729886587904833098645788393266186003874844601288175879440615766948253266123893960751340996341372440456666687159751907365775849331466769779306344048059184598485002611224083066849072380430667297083148038267443928793093887414880098078715937498751902463571356230577230913861948593456015986262223995846265638895969289913485934385755688836678244193888020904391824547872414908277853184788736021455047054634501805661223705419006632087174393652344273499179682822920268582908809656292154628215993636459392176517657757731915204085638257085281066912084899601817917694167700522309291147416451961180433752061919090765611021030554792519917550546476162587560207972464703935167975867712894211178114228877694218190381812013862680603586702248710050753210262023404805570785757282780566002869506884137061804304155095915782599292725270670323809883550376941219794559543759256973976129907304247905041716147853001081307901199349986332822851795270172390065356913875626559143372548980667774268693343671929682425734178258707310547691625220510478480234402140604169473698241924956859411430600895303577546573108565360313479745871797186234714432646196635370035526827329866238588928922986946037996860712295045562172672441249183541874979246782411478882021737964333730972417320333462185210813912150191977188060605173854870795469106092094417397302013660810040428237184638263103278437186250428022516407097867869139617989484377345586153938056683327694474360424406810466684081357131356385419265279843388330174023533393844652316558145951571558497056917815623507578008598408096638686507450089892685797736119064150317042825791926847188640678929266235286572886202740111059606166803972836745117735434742957252053764780912063253130276733369366411885041197020269413966987763537746824360166114700122101015180474393678891011003105333851133759930271061799690921384791596330511683438915356613326095492501712496205977199255827722257145419603058758877057163714192037848100647695080789614489179505700916498332449807123470255931757647612534969239898266187955370450091055265411700299725882871188256525914628186181856501200160824238915824813492943865772387986010873227430715501137228495417555228015683676949797130811144441929194940303463292377800250424802196858011032339210499116258555182136393369713413462009483014180802075351395882255854779630438277925785041533977734368856037168625630048058734542604560877704342686085675687014665992144360322963401594514043509313480103802292223951480683372130925912066062404255507336426404208346220959509029712465924632618197581306136395237384210336090105087798940842390654952122392861674328997989589276860467274391083797747810846808809963330479771407011872005273997302821615080954422355446946307304661678316571713702182492808251325018637913193865745115678862484514118142659583383353534567293335339796698565639564577152085920035282312180059376555174574628459226695409918328476561482534320055850314088802857060438096356685885057665428115473965087738464673847151742500533504099438290626923955402887623165392918411200746144996445117082900333852394172467162185368884414074090744569501676566430362179275243217986294210881632166751762472836119764100486457082788042272023697793457206098078953387912784099739858634830156070154922756979297959409108775219483626984993893280769469785828938634432780170408960196516212673822680125227951273160825925897376082655212812302233485637788806050146205606978146915616290885366710777191909502396876356641356588412297435354182492761366554486346134707292592801014578211074567131694404173561247577149235181229037655483413761836493936249871820361287587272312712925976593383788259263815959493294966807798971725929339376603430337928800839431635122729353314479832161420102530880355736515590421621363699884650078100751970751188103164148082772764943785967323949125470213062964208853002399956110213152740902111228790797546796037134358299093754651877909838354822957792320350127860802781624720317472595025477253689144857611371928304395625145317074953828029292143723974058225890382247017061544473197531079400174288954362785411913816318315888500732288084070291655551108459841848479696600777183055788265821900621952719750756580664757390197450240403479105144073063472145850263417619696335315624273382297394552190640458076299322399220319777380253294807723286271837586304302606316087627560837054668699870041760305785054879377808235881808921920706131155283145542338515552168588055091790417285384666735405884394134025312683547076750143901922957258171995964473547633011773816070250087421733965750980811453381602514274805579052837136792505835843917653613228100379623765804053487022437182309221211350871703630851762635034671104479083317819060632525501339861867892589432277921511974905650292090492502952494076715050030907046988164007479108512340346300774554352803085384937983228629568378534711519526794480340621479762961382120775298162798582616904324691983588229152945551775289670487938457843205214662179127701877019992636547246950763381150209631177191797492541463251033682158308966061853765872729356549732794461456024432690118926550466974118599873022465658924661233494201779045934496247886072900752473904290413817944097431465567459472006030298240237036847246680806696042361586870046335622036464387331923647562201570772001280584811962430487338853899784193787155371741234526762178174744948388792191827115627950618471085991874014875307557151766826973261720979342232997583012207451557051447762777085868447115124325358539962385505367428677102595121143211568528534832109219879031793774728114005740160867411218481361155164347240918058417096800819120454261576873246648609679522523788652385088835243518572769947403121041636411946430266857159287407111551934707298668428026938751931993184556113760600799507423126272019804819747164801668500162680696055971143272648471787963653956310897418099230595979973591938279489242463676751040124989202667386473982396984434393891483384356793692817879023473292334702716282699375820741910912170429341636984705500721285913090241104794797807456690005876021618456315925855861321428237852727695452814005372857942698995133246585596903727226989300247832703591426172329324454138814090619823905005050053001845986795116679048462120860123133072782140795934515144626767281525635128807496028670467447854700717685758681375057685375217517717971799870171683283878718605545888794189748862450585872208510843143905992160335108793828008371802841976129085603759466407333950985327176530920215130092028576497346330808581689153487823907474563530163229056070809259395563951102714089727328037572676270197774838396893103575240905059235090925225118796797983255126610260447914787009308978212911630465843027017532014660040860236876994056773258014415524178863731579298974029744834124517113295128185784448719861919582136963991876278539791173052814182423627140980790424398069968357696688621629366615084873896476139640615680136546513243875036292432503616665681603779548161057246203756151523892050291945571078082935410045558032046195581720386315062281733455362253034661060982488248167485749068321607094177979653649642163279136306315276484233718920586527877229112068493413541667122751055001064869057286410795877253710657142237195079895240817733454132372024605559319339352755092623534726731612804736003419466634282077576133527775705455220263704795666853835557458269373528983528529108641029657135742981469051098253523215945534141747085448164872265338902626794957758786358294556254474385296050005120260338073035087038788467961649362623234692510925727587169588018471804507605075418091848514701511513138643915727905984617033946939224302821956600269271752841057582566650893080507405072146456248993482370817846168378788571096816176216275197482828635777469889653378365499906343604279671464033243567148133364689868898263417730044930682937158792023149867457944527625134369099453012069465748700203840839527029418406221445591496420882299452901876459442223598245839186379442113670440163265953402204207044770106314142564952171214313575674593219371314695522388095289833565973168433453712349734433627450580613671896849096654691672742741242161676979056390800877805320671512742590970640035137078578050324461535051361518687298716493887178013724493582418733896721399680562669852834122738044950620603001303870529059187508967004559339769184245560491242425246428162321684749220539406008235191912416765803240521267088357173683066026404223029441830740914645848400055708536871064672428214235808061434966872452551964136652306786861587457267027969278681985372994005285727897455477085694869668869044063445636100447417666619447175796457518537608307672094234589150159039984201283938088368186426377829391810947617550610443072746987406762380266792386220810840978010793298213625918091842944241619054115766628456281884460499051943446176146629704331835964657190104959415252031805141586006771162809159136089403140414195423068352854759446614002242506243365560664985492293064161404185187569012089061071265752275593518680512396745417518599818072125629282907814860856048016779667666713522253288552908847675290220666569630061269171336372627982839784889365404343949583843094462866389567264484413208238849913615463026021990750770748426856255058183586780826368146774512082676858860727665194362371805616783730557291027022540636782801505916436083090696204753141216137172598549270290038028208755332879195389488393222444502543794509008973882047515551250379898414789535709614340437617068431021379417176915299801736233398593463180308490653576537343590139947432895026090387662254771273460198626382096308114548334733260182424037271838897829303161544063779049303623469988602413132068921258500925133291612795504715182912365176132194254500857054946358913932202454924484847486679303335176151541732652389710594804552413529394166239863256091607076971746164919861482335000026486365743719896885692505446757168221007991667515018372311813400736352731221042852782581046602320023206146801224913631872320764925070377798858080666253224016864514996836238524013837645532493059803887771525505323965394795809922874074305335507999481498201661391709385224255389082462664394870795828589002398880823410330929508114488048794348590698249785184589766360018318874170902737214267380135292044240886107281191081462014086162178347538026840822479205171723592111507883510923052402925813275282715136943361616719761079599963370493671452617446221743194132062315277107550967756486016347214318146120958962646871657420823105260699982617962053968929816727863491498183473043934794032232967932747711659012776389575345574893443115962761985681289137785503209819244539737727677508691831468159463785339499614061264347761254333494028657650132616524810460554797836495696173366985697879468654790080014668881010341550501301128993850877905357922055826862643870722173648286628575411478993856596840118791498179172938618424294291113752753084208314717443732678556804111980607527887175915615745713750518726087933109353881362447501478986013250973225988569983254498664089938348876730076211904211325979785804281346992402946694777144018942796254191069483988762646008533208434465363729176624789514265424017769102778708379536524975257965704491624168771091631253021509342197167502324928965909517256334917100212849574580123837032912631896073728770193228610379344027776256756599160416504645055271088191158505142990119713993314325616945661173158920732151825711045717894750387003785928425509083843586538222377416100151858983669311357429137003507180961368147170235212216758579283027097712771016895033107740812040732730820313748922187424483237337663663291661717644577269392622309057501239786156701492442818493078470066094651356995631044908495357359929267567192739956838701699497277560276155998843589254950549194479741803880043604802888016254192662466634158966503668702318402738453464532214981411482130629723438120910440887370977446876733394641139667860003171104470627815540071754618327194054876905391046218417346582909676275227122340014934431484720175439057588449371382893796868895259034224780381706776319718996338863059621494206810907124606576139243125672671849950828386184683034475782740570444445698427112409776382971263663853705482661195277638207271991170470413701346077198242010293246252006318051589327474189079422560047935147857770429427378669772985301026677899512644282367215239598960437986018802502105652436949248037318219579156773434295164256146971966572823687022837669503225022993339853757593335272475429253226778416609574524980287285465977872400617414779119024888531319951219953365586940208359647504129941656546479498373495630272419679263267540631072266216952412971661844613766738358236964367363486996822169507622959976905292924073441387151171116862381132742916052584965116571260858747484263918261509682702035576390852421335739759058605905147599920380250403668756755212803757774448842052912404338631262274267029432694910430941489260873091479543444053794744285881151400215621836078430073989805920968779021905267114889874168121055860271764200387152269286059524875917990025821415820381275284476525672936561001266186456439579140018228294694446330206320082934749517754183722430704736972778061163389051355902619469055689925119019135775758720338385580649152716967741993999104523807092846893151775426943266064735581253843051398859319604401568412420506472281029137229079069199817308055803623500791150992566619928465771871692099187874351162458965745592618886912263113091974809718422989875967738016299886511255514368914611357179181476640046666872815543033716049717337658359869898040764136754219716244206843046272595696153531339397324789826962745353358439860406070524226486072457195851931244215531612655869611768981312634429018341709994846825252831748053419875308359979241797838118052380300533526974116693263123268338715887001283579493507764718555143428812846963191162674722603480600977334236087728991151995724583263692029463769534261608296126527933892032860239505987706730906138123771716954574406501685987769870241192041740486887044912555674156553685677992957181522475412939294693650785008458138751718422545566012274399219878658942257264181911216540229485166708447258374001555595488799618018463251578144405140001102134562679864110082642868680967103409951281175718726403721710644355899881494652893503938975325538863826421867410111124918802201446453614389333943363496331547991513875183644654060198210876473886113211547571948721716740525327290465461060325132968146964710293059924133597749892154192207791463834221754534036230303594298925836575276091285545648183692154976472515346867896779371780682868689347392049963253167431730942664892804725527255659065814013540686357284494283591299641103636770286291488896742441082763213079155163241429773340720795143801557649895034977125234746354692014885064383252560138364054003252479266567620375986412449417948249803872917945099701382739741835586032152498255109205430818522655754610511790521329782997275286799166638558333993120531180218361404823975036450210073727765388504521414864298241852778603320208176584326593934697303434981312543634624302037613593692556445405643729546441953621167968650014630869664521817921044344079856798828887077247378059637113791788929272972318425974130229986526360537846898649078323643418592276853717710696512397530688676986355770551866868903378611770410548980359540839464651183767617915778024429108541473352543983152570308102618123530136597972782700588922459907855623381778715340338377442526835162416223891670717758949564470057528705478933401930002338499666023342249793922655028185866412690286607700472746257129614553037705583668625859247480270226025352141959285491013899981512510857145993434969438731852751467797503144728822192646802119934925944622756247618932168943919887382173998419885479412078517059668911170862653757788714304028382614192018820887897347995953067238177021964904724604095189398168271451189453220106998414573954491436745697619731954735101643032652691300098859786613087261565723747434237587152441824004778873658789289319515574907121125200488363356655655049563351718983627787873129996506262223441358849964897577332549108952732463727691606753802169688212455390272048143074596291167277942778727794544145038354916851326948030825555363034706579438397815372102337613469911545386619326842626606802488176794547909084075112237704347552893317259714115027939309619901418086916403747386446444303193299350136192892413256979276046549146249293271499976113042044607219601011937182625632645198144742943633444049568680357579005516048228697975951893772698439609838215530384359822371018207043835685653687359985730427054605321333302240214201360213433832344065889441629678451479293728240164880094997250118409174445952777449567835827933003217856325518911480279758742478729985334084403599338364277700561436256332536021229156326084978464842706386904210217571756455552246855663344727743926833425194381878528913160338289672337360983996446918336589834291642608474372922330777142360566575492941785747937881636902445931212036605227843747104430370613712593310111860538243042157179326067641627938173520684843977643470155623185715770776253473287666155631876838010422658113715711613473089910816301402299331118528249205027738524573671754387084048093669816822232771163116168239099605250066726177818008614035743165285853580378985515114657912835989871629334472958706354684238326903240411083456319780072048019768906092954378368362874668637964376628079606798046032358280820765718495620251198476816459319959936357980619485490620153493068141279029265287648337795370353175537961606025105549339542142382609361036684102887403016735821030408022310636531260799888198307928440401205157784168836151115575008167078716236926587484207613191785900711420458589880277478540364920805179454921072925457151734580422718624164337219411087470637892817863208887637073482113767243547192147045190279169658340742295958160133465797539086393199874833993272395245759110338232173581810325755913873478732897989895698317121679177201599063416196841435217873890225259261509757915490409162269262652592442627553176171414944483465546601997262652201444787403072186980168085307937087795118107744631173027114506651437807928186835427583170815595333981221557760809689432893071170800776838670413595478767947269470707610336640819281300747302400927967073097074316077231202343485685900776008195342920022922367696222635595668560958643246693767725190825680686602002307143869532455347200676565628448523337324496258325430190701744603761318486123586372539744290313617862514792325238458164426961687658939692364024071872429351372487836971144374726058136301861874585509087174228892647315501868658232646932737853271502226225710889124229200740457975460327298283398654670593040955164923635930430803634785435723449940962092320401374927162590460501085271471630817005497742906889001555457108487509030646440475490103603682862568209418861514149856519308530811382895521395405572861059846595245095173670800194857730518730343163586191091710462281937422413432575759293087776260087818888954153780461955924012282328324984708821739156163425192639681051443165117083908653112315118902194268274128964367258370573023312229697764360930763007033545882797004318867955180633713994466469223480678660446831104298477233885560339177812381036635102873785751586294968854667769265126020087462868514899380640582462504357623824407400526765217848504612166502787224820326218891711856779130380380881702063757899938493012918513089203045216487574590528528196395346475495631198771972213499779491269609279600464507777333201593894945589760850159515786102059084567986791357157527172326929321041612472396378403520886248233936501246373716115096515089090014778363495623559265988533556158791718255152908015544309493548670002299044512524946895702291675957244886935529536239168287391327953057703912069921516270005656238247943655389059727290919923633100415926502861104427504151053555389706207722487378843243884641870998816293886976504799451142355971314211989728085039333349300921808354214551891792159242477916272101084753087934245560978817927324638656898532433740448123662399261583924001197867140905105265218223350852745796673464487256857811303100071037197254563610096595071096090348378638763793519204851201209275678251634316029543276209451873669931795139152256888023692481091963823555521675177522034825339930550152093883144423430769791939525026583624356979697726619471296009027264024594318353778067141175032169347412486703923325885141915119576951888075953990645909854000691369724459907595374015083792108088877274592282384435343000236948019749123124311784011878468454187851413844216467466249741384619785423148297362640998023199169429674308069363947509535205264933189598940281008646223709373472428827127843134844278042288170813118998570718332478162303272784364224952953945391390757670014091533179888949274709667256766363190043913967948447304838652099648834237092043838266914080383521270376556309515697260620597983617131289577337739722329390048774853647275406744387032758250622715071802635050201382972080347091858111908046246994330437426084750332524545154073176775239513486256271574354623563411335783606312584452654331832885772122705737353437110198691905414038387970178672666168988969427808668032726398439963209081653352608143970752127696321362347482828372369700863272238196344450722297551762711827692711500498841334562607445019034888099236668703330868054113855091498289961298530291662790102224678218986306102367548896900120769137920191400283738863511650288376763793611173174266734971886993186606333157746895370392971594886904122294718779341781762827084991897864645940977556022703005246167572579937648742115879951158071596366921603486882580200469685228908323625960434914362336108195843588224264018222036744445453162151659013677515898522783690740733085114933862463069828334488065170644390261496262399764604202335792046147467563752035125372591760385304315421396617041297379368581462508628571083935914174887448431590166753583461836022042715056056637079098257923789071470213637874070568348489208265713520879113888509837398684856917985624032390465579874083359311828334573145578856540989039479659657941950416585242219463019499694519192881741615456117997977995275811665626550174192475813122998390251032559773228931746958925653878226639719166464892047087075527999602004939296535826957033044269978074476336003025393665546775578462112320550912411312224104905455785313687904253074190309032545660222096136359166812065531385315731708820692075232193765513779763725083926529567902870912610020015755565512286830315283483386533865324541999564688454830591171316099466709520538090988005894848240347783928155197055855481999530262761360775743969029380035383332640719170556157629362320431814340301023174342494334899812775817731230193204519122014232250077114693848971236588385769806613209781758079595669470182864327654551702067974628340413258707477388603900094752372803229838826411034826778468474789997293043032485417006234130613636400027636343646403222045430418753588351490506285926241942258977558424558387502662296692711244431861742670696212414739096623632690845520199407594348294742199051240961554861215230272730797152813335659672487859964859478738334090723232528773344142458374881145116852522005358006956639416833527786434930575948522262302181527558711972835887171691157240796969295157938145531942646135353757227549069602623365116459140488948792644302927566483429104794984131631090830474931422766396607407244206436079553792470812336092859864143799922025517743898592642105464084000447753918504584491746121130533968711975588012960266605563124564542341938641904139769214961879549396855187223470130873062291708499231489835064615539856239134761850202468880534895062228426621691986481202596903324974362750148994520805275393343343533027415156790670326158658161242725409273864740179720302551459127518715831921162567198580261403603987093380017228160804788194167892617962124757042793032708347292613663443950431590811178519701169655158735884669289599178808164339750520003680741621442147495684766908015185433379589763540487200903200925769262026378837014247782086270688983274136955430968946510681399593034366679132653733975755826866036425239121877532029691394853681879146804789270461877503766180945156920767270720166313188713008354195807377280962796385388342212852772725327739958458984637656405194037635615237603401538408994833808195324618152247333229984031685613564854350598367379180732054725815644620410479526708795113626955491180398065988560061385023076909960774385703843735572398199002747771281460217595662446735914446987730425086901300072774420021020497171606791108197889004421676502611090355653737707653260712918555995519718025528181239913421747872531214458649184072122365645836466938916816884446987215626406387663845082047147302245885459012000813086265530766489213658815487904206091940702813134458703845906336143917857448092809749163229491626331283971285005816651486293870638119157589202372937434496312490108952739565601093492983656211309702765062803306448361019415889449687005124717807948369631900461346491454823994655797269744410728202800204473709981787647564445111156354369624012735766726992663425411241336780699434232850877492720957490653934446660916546075847023730546993193715466189100260364670557911024780114201717817985104177530687941910995178619958225737543078059571215893252604136867999734473664579733784356526918812465414475458784329976949489972717190421252066953707260318838180480240530267778869689046638956191819980582877531043130082528280042186152684826605207152153835380370051653275863739385501783941035618217969842852084738815248277777504635805529452177157488899912323082007279750659072774311065455721862554184774380509169730928190377561264489369316414884723834855515182034974111228488677693872452960509714752907647636475662441477311870075725631606983563923547911282965857564755525069372687862136486817166067498012528731528343600532523339232265395601644731680041077990727614947151428447661240117424607320328131497330051104600010130386468872360472839813986660536105587390311914865647006074042277161289381138648846781806531485452490465128510189184330023900051223946575253158579184113493424477067658607630132873685021854739009655926159141484240856887325804856868327802072489337675065908650697985831698307314894791729244143723691395515712128167694082916685591707111502565572839383901850345258912175669174694705331817419635087956080033987472550559651431951914833724993425344972897409494052141676084459631714213126308135921293367973237018157065123058285688970785857774582198117534603140737239884940358883183364679503270660206181493625097126522320222689838913571874697531000063115266918529334248154006722332779873815167117473671705676726098297118186778125829288625201116817508007508034043392699823260026890317389405697181316370059759220815380376000867521371298645036149678363593922954358928760896017451026017438115248823460290543756049497245043925341202475114801988028083200830897431632624902142361243105760623341764086798822506145536351009919428918849658679433932078851956225972898218162657649172015923183533472776290456133260647736168175021448942118045497618075201021212900558259833732544817492335760551150067833966149211013834975827710085784989639170800653516434889199593291499450224243689052040400263692575941517505688446543863204931319827086978501080873093711812758378871554976023305616506390480353710076185377001316009667698981238539691083690494072096921008460644280609952696814636025189861169547095337585159798892658032453829388622872588454776609139782667416229100483812713465610937537882559692572693940639683961908855468357918042137249077262057385502823990418784259821393074289642850424783931710727469586774075372989759908580172663805481752170862796548463644702343820443319080685820058658078518275115937849426882184772147997200255612689001452472387372860724181288473310031291903672990373070130764567359202428083009628454393739228937617079487440053482384583039755754213658050816685687794944798027425128580958390390801493480512103442343444183667276687455273096217688283686194451597455326368078250059087148402476530392349727662414667905524202018366777952662733411144505903147876139350454598149588168086353564751134394551722259276276621568635279910132038376046892412463592294611301166348670338864738179881997288970161906627955161262242117362307291829596482040294259498025571121574336924372831656087486036169870563201182988941242137346312722898336618362171078836184583470638402835901349505481720320265161189788400772088264897056538446766954789805541332250466627780227322605917477041515495063420024211651830223558133187456769020381140062467367423905000598268065822569633683557370171354496290978317471304272574896785316085140478092138420789352468547599399222300860559863744731194838065189885887214489071008373334392563653602277025706391310490534479486389587753422254756193832127374759139063989825009764673020525277942981651926418420967234978298658163920477536003926239307060555295002164799564374447669416963841651865423566539919662210337509807458306602920752694257214461675951682326572022099454227238986397378458206342279840672444410597081595482151526362090774603277722769869433614801752903784039388111678361403932975877931119433482993077444524388027919169271834946029622522755790947544045505249376738545013297783303980354105251388484918547288955029447363332234829148172670027113818485743162526506248130984669083741247378356373640981556238186037839263397295805991780111069560868432934813521607627074988752960633658947165453377762066379108138662516228743978498104467160109455183493865176134089351492859770821508237035952929323398820707895315661617026895185194914721862688773062917074822878776277543435148347515544463866666292973476676685731101249045770357759013566988218161802498677593483208822502214905541180480978527340071037679267381083605577941919221468916574150720434414775044876546762439007667515452161771856523783819792006896756498269989364349787161014272228468557915056600800898173913006407494842922019622675993888852713698277604940379753876013526107209347250070924451615389737823794814998311291457912585032098140981062878865736887977995629384641719782761971306581681900432283049550920267822420363789176721227362158866217465741376965724431963056092512986940248063241421767506665445758058431563252560217087913998566260273746568473550508510215218265783136622621304581490494233115626295672673231288539502952826919613273029648629831824529758081036830795602121163957185634234865861173646235143667597100843031845726204713594971898762409216723432084019246003444145895826490531667718810042868831589482707753752347953182063767045084544347965899317607438513951800578788227167298170169993518567468338665870212332863852087874204903225472743629807109239201434975618509461805670558164580276954945834710685696442891725412332875763248923775387005833782640231344193024040163995066727960118191103624640051903831787192872904147584541888630821458714117130176369830084163366270224474846411153369650172334158797027539952605132880842511007861475652225213046874251957344655870445925580841015523021763548546714934091762561105971798046711261790121072898415523070412072774015946069046359418425427395716640757464926272447024723057603819555780577545855325389523902510971935366952099732786406258407939946786033537639522264217190830991103499556038115034146809483105945145692742219117712727283626484293473781081535713014920737844241200193355917054755168395103539785460944501126210175849387106122065549034152807390042799773410889111289061024455101931845483053777036298937832459592599959745292520903200362958255239778618874665137665566263782956980817575109071325524010974689657612300590095556603720976053695951030319957900449849607548774947090380415557732454987727743104048070460624570113758248726856170239727668304201494057887982928655091964277696465808599562252966921779011543734971870090229730995389153434095049789486832442627114640325117195752527613672638254312230543471868470310398535157863940740138185689430433764209066358467802231278904484769151244904588649857569654247786279686604543814953704775431146241871633542459058758018402674344836187668894937941112154878666273053368659657033627826557347305306166693522754963737637538711842883000262643855099313676898357891536773764945043848699328696639584023218610873301075292902038781982727029509598011320465408903506317564396504999368572617737226696167212657281794502636416878598711840525920593097166433945814044564539236325191551168306498586008150699730234338102235986653466425864226819218948527938566660316738042043084858512526532245673416614603944049110630397246078275885378590591151370731724886363701389601760509634170873168473809386830481997687940581022115798739342610337416423987624753661210988754799738591365184472279527830110127730556430358005765507606510311035163344829582330257938233347570409637934379704303714844472839524713948031712751463713707142305094440139718289624699775289033019096956950144704577261826488106114296851049025693362677919982998265611871401724175826546397726320613235584238548648264313578111912894857251029182318069455613735998942840670069257754982471689760916932075482047870399053177271316606062492171011872657902130481403663577562996194359761333363599580873098969458186796614447708137980039765698490513935444946803283209882087047663318254591876282502539480601571654842021613438769657455889092890309538682024375688968253632834497625422281131368116381614146375221773011343355756191101949627826845759612732171269959112370078684577341907395220437807885740017776816444360182013724266305050927677184018053747059273387592847199098818988084114394245575118965301080191300962794141255551062864784051363318382463669434145265428745120342757391748093194551371122478185757889746606405442239051330119657579257741290694105666215644474545321796453761191239443024569000491480395968031279046414103464432109332331390255234185167067751838785771635695469775606120237381476125958490683720401325792925750096317427476200333908381401658263377431304547991694502782150110211928835254315513884228759964262089380064737137736302996861454601810929178233983079118094587227615097896131276640662118133461038167014889115028643624993962511693028939867194349918148035290272331207947450205860933297611047109442185786488328252359578414577544464023727823318048810464809483704356703921019015271180385084083428203193001279690317577736141976668283631372596337777875647123111269502894720862956864535798582741069691841957939719870775204562278636805341726270532915727648676149253022195212301997341027411251730479792891263125627907851163076786991259635065029586516303298602820964231801851290844827804201401566706751461891677002624450023682389985253168511311056125551033148537742801225228204097117404710202180620810301232463480863985980641607412093078096698134795319504587403690114341943584347907644405408978894289969498587333520040493873662445672571412339219716283491933850253374054826336184843083546744052039703583562413823024419694159009553417161949642191681475722393315686256810005136495978167296076691220467551236961772641748724375268131796347455997353375029764965608733224178413454942212572133780738189931730293016078900280775345939748421715637169158546522617103215641004182321025489398057236324835657706236405876166216572117935979502631273485479656126098252778406048095491344144933024681080715992610633335019622359374229730207227794881860819481437406225380287697228908707869712324867231742655367244435354401204559115721979188698970359936054448164406993100391590637133570687460446237502102212132671621895251111707947912757588889603487324774130312173159675284978422319551044195465732192363513810867657929075611268259386310427183753290804724950661380976713033416775537272922275340577515925715804287508674064338008645079218643622099393881426791958994943276421893294837925532204452688034506269777376041438161875615185000140080641936589470980957176864031245170750403593412030995508701105984529503290123612947901090089534601220391417619096541648617898952063552451250291814165436259571259463738489404928330139933491736663662369336361534065540247997878771080969163545248440428568494605015619545250004508792201783722312812449729647088012932705670432863509443192331859621016473097491648203947951036208921473798057637788486538563629392496219424948299860917970239995904318670243875508133031866884440203929812123282655523709931586664052091961099842499822618095205626836635969598046116108857123804504865868021230304074511875737547296447578319563733572548177916986396420608339199217422843608394616938722496017087653469433207598078730819723662369506622539113161858973087300795039094482434734108979067892409117473510968345938189830637928003146256753811941528809252868966305676723696672350740555158929019738323385761297413764442113276029862286939671770823120971888583508478972100414747394092401624995742729458778202557830003041566119659374800414306074491430337488703570631703068921461930114197333389563196686994614895316420292180718091132093686410497312104253289670556369996392435945947242256324825457289825281897230488370014841469291358928158492935015953634228731816216601091768033593587704421438204710996406443916409647942069497912428243799668388399815027889835497662325663247680524567930249573361359854568625058651315590464688588703963571360719437273057748630488915092963533933724375622112560957056183650634294043062604754185590055336698198235116394320439614352468326769425495168125433075216550213379071800920115650626243510979744913440269473826352065327587315905116074828629584201485426885442864403587819134975783982091160385376146185312518075895552335401522508209469147720623983430411642840398511964631244160247833626836412442544626315622070063424036869729583366753248811045020482703484389922346258146018236447342660289518623141844345857494611197003121033777508967653694648881950151728715828974662443979697358814447793061456405189043320114732636888344201852777057374020348550812334928348515906508071374169296729284104268476194495761175545359887699067590301986018805351598807359012892896601165223124374413902559634182762099687855134264889546994129406309621204252073034900809951104862390839616240785102056392143525406875565398985247807949970811526420062949262639570766891430437890297189694146769945680541635049034966304882557263987995384335659435916607683015378938645152405039685781586616016742606970367075988523310445574729129691159104193004755710540464136315911537636127004492975130902660739124440929696006417095095366356839035406511081161980175009196899663719514834737847208028272471077529697970361377796785662047240275946609315331168229857590387320306897608966213306030305262170226059723222275019457530074216416479745236191653453546688342071560303271503107372008522363941461670924611131556914394359084915341577047983199788410341008894719661302471354033992377013976974599695908895886932527583741310567342196848802064016122365918375424621377275663402637331643210260183690747282231948731611216812600295059208748041457998627155758738307432631990761553717868282413927996167382990334198664520458163293291721057530145325654324841666388975428757198924458704114060233835903571305771606976199662079595892921009355449420007916690551562914956387078281262068329079176229588988975168092567469970745009451939380462227394240336091956371482515008519038989612964778523443487037556636327392693591654700014477154997212145015126375477141536927001396056712762269329455136026047746563179358649102701009419259166881055866367977563815877905317526191790942116839094405113083268769917305304739141539947888087672316816243226985053365457643442101522608152732436750769357005940773598603634828460206598416433816790627166972546467837413217088606837181393440857221001931279908887847106398602343693650765783988402652119084785941861011123048128725592487814521598126543146831662544848592370149573697638298898240031124567251615977504781150973091522703908744536830828664656120613280220377661311715466689826698070118920818941597747378558272415705656645533932660022378407593939022627995907179795887052147398578566740403007491428977513141461441280904294455926778816309118703748546725629923616391084379118192916801320180347990270002147656088517591564468707191644355261862101840511384594036662982246058213378241977292327660398310508497140075634306745238780949973002386092803614901829721678881209724706767018211571739854124293984102118452800359624749910260221820128169601893117265101760013066743297046165145192619536962623231307401769453900785278862253318653633304951306901606758636954983668301848117395941399982039388260837584867464685859949540840580128857338046333626205473622738064180200796268005082861227998199118309412556818130920090817322635574900384091037705792711184942488013270510822947854347716850718646317134558983807551094505121445878858370415361032879921751580141980968772775958753782488635167572534615572279140357121910879137457380360455610281223522545913616459781582306801093235737093341525424740729671020213868812645116052761944335740801121996715382426798866141303654460169323707651870936399260451120809525257101743404435356824337739221021841341028992625400071719625519407805888125387443106709863145421339816636159650726906813316409311058321601876646467511093835283355713518950061601206116903969867807171513807674446904500753991526094933124107072561867352193578412879755459938649604963227415991145009416077713851527805111523903451199389040310473908777361417444653789140351657704965136005946417033308523581594406933420977866300799602560366523922779113119024247106902509357511865195960572249834350402721889404997950815801524644230429736488150948147296656540635763274201609475239498138356816733952759605146774397991308824380718712081346871401515117366472746884026050821687077099549875537304878401284428478350426143902648503364328134373279833109600412918917929996029267221757665885861600886846375025645783411579383402690180779636408390728637453144855485817102347307128513222757131224005624314473147740127544299268952346572642084549904433395047257144805878926848738421711806001468834147093202603368931728221802006014523446108559299700485070206917390512694549220265551405295456683380654904296176561967573223523519194513492040483905887746472808572969419812660927379118850005598326363663122098635893270358381359435692630849468094170488442945473602405571519521519446605193840519896354726072546733273483366264785825270066206021683171052665123160767092029321606705289344861395966325733474855677200921376619063012248189527499507867049320871208212198270114764217037083818266502577500037938225500688677427313689877323279722091707191660864347637644467043445855744624760934475242032154126461894720018042769104460689376226843932692284269509176321018314908205534488357737394038067448557211834726934563547473932411275669839989304040705241528397567766327961388908360792280489086380111057849291121085863200679841505521800702860821119266361349955830677376478770434436176848325832492858310033109628806276694654540667288809876830702814777240181070889694198758953789372383059719773143191198593871548500604184818612990280896764621464239647044518086894117525852816524112936207973693144673912424439304368443936321285931556674162254500993253697945638930169945304620758484000170547469208745848155163580938512372664171256879559180408244922199632572653866837712140171124624065137637318640527039372748676631480084692346795290737458623157435957017180902226367591580244837485389224561864123729125488363677174027877504154244963919375864968547956525989054097688055436208271579887078816108636036077204723383602237931689729172097305683299569704106639071002901450909941537364203183562529218150915896204727490662028031239831579492553376816997670234514935191874283223740018381132086570804945009923621774893544152861053375347833335628055092522745106208253334743966858331493917399742546429624045292081394500959444854165183620099957735084401096990966703296157745758437230061146892880052122650033932671232169052675601672638100699354514717353833557947766833857274239284388924427463963129305895111884880286679130456724869223776038248097082931797618043913606715636751020645350736587733138651253727928797678857847882467588703656565366756427124683894915418336821708374859552546717607918623402863046210462719825996396627360121252421083655398862009660755520174590231413964917890903954354148559768561796104838820190624341650120533163989678726549786549449929712731487512941268022025882408269760444677288046454414865936064161693927485930749838188539843419642616762741788003804850676271499603179510858182407119266680307906479901415792647596525619414453404187598442989124723412731484283785222305195346762112135707703219740013172337624114555576866292717966732650355019562067968288543576042727084847167298830829023205117137720541409440822388383644750525449788810700745561678354217643450521391904157337533613179205900681894479173632723048920143939537309537709513802436681231299931428389363254596657705731141556854121265199313991795986252966518756019814108450712821629031028510940475987051819230050462116988193327893166592486563045468309119356539428300220604511360379738015589193660403775676116971619072522514667040622529139592599437670237627843456922198780042866513472352461004244664815429890186534920979396439600812477295048813910022990757643442328420448558595103072202288809029238751332772019838820103199031139031771015996847274990734343150052949908955465719863346420409912585056148182728170474772280452836990551821368354669750775004974843731125381682645970248463079636165045230379515892683085811732011739240351463237416793571174691502758279377269770712608252250732790682912255644704526249913247326941749772565523078460805090318644971898334100576867150451470660432702014396796798067449223810871235519213047461921747332651743966291773883814128078444536320534509405845205476126702661446126166970785077032866321239171679010106664757936953504297898799837123401344029786826693374771060146166906896658067111148271966370382250669247835621225598064568736216955260688190368154173642364562325781441712327718372762325583680982919684042917419700848360137772831114070628210369439105334613113962635063247872279483689223013806123961044156219956313372241530215759658637899505807782250854899174749652942493068342581692340032278550218352593509625350357476757082676700365938530932865666060595000333466376494133433667298007635898140138016183813185975669935213068057810562561272118223011087076499728301766643288231582229787925391015541464050932864938844774071464913397857266868216391080817714795259543299747257583666590451526366915789412462400123089888244913639412317370468960593488721865728530374335605455769202537473783059178085819175066367888498457385424069403303474830848507402700528742753591254812122128060743048420514456501400330418186636802310581752972587187146408458703991447531200367571233613987892593777556499909217257023919132282286504062955802148682684937968071935309332509098704761109672699994822309560028152522243806619973744645249150085321821554741428952435354602814782008295758818643858057898733453871958300717529507438603761886566950715315470899401612053257317090111209827851378613194155975602849320550328393282555514159959286297122120324005625506127665226474674147949426615471509366824314209432077304592912949863972342416987293135561126522701518607008810057451279794536627299685049399526727993144268605671240882473479342122680899093611727562067252696591088393262187246360425156172584525358764292127729697169457480728668075491548590653343393997125370666831157170594168128791916320406813718710700184949112157159315527555845959120178487577891050782310880699279749940697706656109233279118187796020978393723925426005420939134411539745582321465564007886706310474982955655123300306494253914956094932228245598500186830628990876294965080892208417472577256200353762599441807722793779536284289881829502185502917069957604480033649823634116965085339437685656008991423569796048110353136344824648189192057670402216472641295559370695633875948068830208911632300352172219775490448917019469263140870447595514393694225142872604255851197179746620610676208119820969302937949510730404377048656317929744834898986281146568639723900783560924084874709810197772686851725379874251667838136055869528109939774035710416862020796033289564627540901987089358690816222546119616808466263387525267470865046924056827987895792463810320108936997279584600241119433884710709381195986583407569858967625828456532220664427685408080499093268329647910241164843329595569827794159504691884529840917883550754435162103490506268504056142019625327233231277010679478250931204807862565074860990032354378562959624840494752986265283767835934212126165308486777842947757036797431282990698171626532712286184347028201470124272246015178706209645629773223262762658801773406641219936953283392089143955648179936253547494332990671722788975790854931391844352930802901734214521530128458368016219027399239556087320511049870517763438470980865254366804735998752700956609420860910747161315045832636416482073833603145528109813905772214857245022417038947411043627168788938045147973681891367590486200056678600640115702339360463571898055173946848328587483083753545725177513396419564543839091296049675061679959659945773447504521380715073347150113196882264507077055407036213134103748643055265346556202889105415558171541415028424943801774845465633780936443771244266491591647391176661313409028489758564298918112227831869218518894174448832865283654108873574982606827471204261741423372055413533099966240158624780668489849656442505549503310860664261167904400780599758321556475033919711779552136628888003343932604408637874254388740752919224418017301572338751205275208741220758301286369387160330289153439401917680343423112891753366800052118412797369332616908320745396618251994883205926357050989440190957797966852082330513021521134510526874152997263715760081906259681665002397296246471087185506429691225470497833595723548908838233621791089811463395007955153356404626875823681193383021444259646749165680936469656572966024619519787691475479127417766947088057682080752134509909253652907533443845548327838886950966458008923387637429765348706680598008004388079274845149338306630002580955512880425381256139356704956358931916173936708160258863649977250715801177496024076844478473500370752332869840332393943697822930652349809823866641876023260143026649180251868802684941709484416596746833146498201009085536819042597847053677042670292101706557546188555712723569602131691729803637065203844241824386516001259809380957895815698000383764546649282542916388922939278736009774694496731830310735562510797243088144872962857687624649248302627006260272579883062095172295580056572434978777618346660944462459153876944056547937847981975709140726830064467886067285698052916386088787689926485225129608850626889556142174520740712553670838385913512601534188075562833840308957095860306158099611175030468264880483315881823395847779052882624411746033149114221998048992853226312592786060744207809914228605878037180155361576651172425049274681863947879185674964638120415817207402681097375114822351422539249397259704435280846838226854265883828026524084913538756762191545154280950258861720329285187349463031711721969119339924634573743909575912424556061189745227152213948801632128786428289632918372692571758860374230857007293281767078999644171594054922953686424155576615780640322089728388676315404482367477230111077253701192593040468988105316892667197110626040847614702931241373871212536310256531925239739252094342035465869595870606819291659940924943434307545179016650848717502191903481736103195934101483782064128519809255252321919749886784176255606049323207453813622874475731909086658648825348186330242655347560607985025748269341260570147185945250140334196665522070197659464883918560170975699072568033131302167586459674121090575758511863206207676817734702242221327338728175648273992355854379267676612432455036582025206936116055677143247737915207281826810700450683127026969016441397035577996877236778712608120494061073288328080751335453133796280811262930467628842041091137988748930083211814761417095618308066367824034439989616574506181519079287917634303931751351344533762981601134356746372687558905875347119274371986959729696589932048323553156396611145362642247539361017855340245445034526093052909941621445579947296159700656361623275267877103292408123212041124961182481806104175259555401919781183780342529674580219295780375865717693268718829438070898441491565659732994860187293981686453437243607050671075438937296719890035185796863384106661441991181725826332146373719910080635180239136260028225085737707651161316204330419933116758530487559261165982729085191563940201985576021414475614046294216232409294622913586041977709142852246081134432813910528594006589871906968702119232847411514344742638279156381377018718387254047815481217861709469853695300915449356256174003832348917836911585856097435053802731234817401083945302124007121686998182561724072666631716382243272143051748992901318180722114500666252159370900002260428092836645911095822143468230148205320096919350599104086396557486141604627288126486656069815831138368926639371211759345115642183645672553760999418631157011434664904549686427758142088374556545616549597131993115306501754501386285781147660311727738828853522610076662178728447433562984461995799904556260311210502955654746182265302223934567632288925580204685314005516853123846430560906556813503115832165397369056756294664904290126465602997894439541130730630111758345043214183770635956679167503924759411528110491928956221464125946688593702692126373679603837961619270051320682977050250041073401294942527651010069730453702324731987563158311133527449901630900535731624241136881231702739968073147846027813754119423960960841244353490218243201557570432932985016578485928037549712233539085433955372812161826805346485068421445263692716591770448115562873276468870220357670310573968377258095284124613223675291236252498415123309005680657547742201257079603483093889466231710724524330742123037581784685069041093462330441793573203625318040116892452515705438745851013508676350961287550039969390270073826281540212670701769709537533565267988509145518367770300723045993121052074028163758736976551995887149335553023811228244917201360395884763784504306042729226606601727853419994458900192599560440308737178985747431256799435745671215384188765844271527696482735417063323277177384438261989411129654622136414758244915479740882220748871888238854819355989473584191325804228803849580939779298278460350656696367699080753458950697120370933323818937203127030661465147158380461889706158323353238974368979047916420723803709700231241742692489457227496176942538361229429548232497254748067517743398334705146677344564563701854155185263952306274500576281267400518341178912882626644608852888019407158462103385857487239548243744641063704881320334654277288321819276247333957233560377745601834749440220392088740194856220142797132957256866432185250316605448308205566398281643472943583872780194235882868068474522852270557360992200293398716047351477842589879836517887049226925762343290517246352820205473083438865118380693304590208591131631906491568616091084622908247595306353144527682291233346825269753331097462719790619473166170214334732778960803884934792491109296602046570876040053377806217183592046830722799449716689617049759166081033073249133908414019720148586902877050732052740363775257959571345924096167509610466430950009670210896208736831740819600148398871573727516079554483557469846096048732964306338366907121738700139361437073633180104890974956184828192442159130621650742916656751491838203159531468355546251649551021424413915906512394379220682208003511726055224747351269345312855199894860106640003142672496781267592054427605122563468521434442135717695751552525228441922840010588975766447379725931395494749425137281740127417880505283408838973619185012084893859187466820491578443720292293998071866910938654262451219222574057094391593774888514403670038510542932940565013473752746242900239125569383103987040844602963335013267516496201930007237755611850899659316247781480332008415969341116325665574259973059474952758252998680145067088811144405956881670007795926760185083985804803583077824980949057055435308389935998381065107384857265977093797149997200952041758846840576621534258629269264231548281696331231139488360691411266982264482875214613114178263781745648085630623832230344567266927527257232005761025820534527043084413826591900648799525957205739139734302232837828666504531317180363193057734950053439061047643293113319470331398672692215515635661823475411816668151515155458485998856883829653183259259059372031960715384122930997122498917331628753506601906887469744450700857100354041949604117386796546304636624484293368727501467139907979168990815040464937529168960193342556361234211693422360497547576049223832900673935865932638786941064998281139345766833482715981595961811006231642009728780945933499521495905219719362157500741095869353447547162859487568529737256778562183532779303988504293900448848732481604628398370300366913868426392281013233542810702395711973648459414222172943531823048388374380350543106354446976359404003489479427606902188459121226865487761338703448848343569924924917314700013096795575813317309823768117578416284755690349237126876093832276099665581825493962401101552273893920154050594567560452389368971254794594804555517656029500801123135341978939039454422668465584958513276622073007321918084698258230438548818576752850679817947385534772144730007839641369769199896041837644218995822182897813002213033167961436140153498327097103803431538049684564713091587154783220858227163482100711241817182694632966234832012393216133015156086280019491964636097313120854647037925309112561403204550436576719285281520091180613777305013312398731087622083060527874623230517079875301872106077546797809221325265496672632958816353307633039886647177111074634769250692833525092381890415822480115824952748430714927780443669703918087023313893932404471663734219579844256493514309766136917013650168498797686456955312079741302976389734253246193566468678515055405431362465667697717181708579022519148662741554275332606192601144535129430730062133318313068841830161635826637391186173483227338567263278802777853244960976281231607181471061453694773978966538723218653240337044891750645638236806052965962956916088345975048852358050759414224974477034973920508329189721991131651572641615602352190438426877089702649231305091826790183909969693070449102361241316151669871154412564108402292361919378705480342262702097610374665885132744443030158554769552268501070931759287542325584387783973001025237921479901802010524101348026107359190266600708014537218569967710353500964732096545201427594746205849268040245803127084064790247212843183702739478572039753986105031520621839280432860166903227088313062346305866011402934838033612616898235764927434082695391925469368284168878922879162037806837957536609042202726593232671410750121598372419793362942931135875150772582580252557963722270960023498414379253775125020504355984831802820084076747499958711959453174349695149457434935560047982449516727958422871185274828586995442935490607050133551878190994739889088769441161969728751031411309220206942801295094839085059140997045809572480818828300468776159589616760356668738784896152432903975609841996178235121715601637261802819200082848912841427491562847763292630725973945610363361281073504588720740825463659554614391842810994485332738466900869926830586410271232621587654529677363096674838404218793010253309268168623615485897163791478355902488359120406585839566737452767119816447738654444775697065571926870018605705271012711940684513026250639152017635957848652798224960770874046309278147393018823740338253260803231951178857012247078746141491324209011818617334682230687666839692085652466856402086725658894519003536307740231333505144017483256499038953720658534343155985325423108514716427466144928676076894446386186967732661292919634524739572203033762544546262013291390277381942590378506644999788044442604223733496723500098717513199020691080747559589613810647393555246657801607223031313598621580224347457725772739910527259565492124147443411188744234956883760123733719775771904271686335173002838171724451843179759131959793939427451642404551525668094024584254792103060583051324803590978373584114275560102437801766619396333918934491097912648000371763432145085588220376619417121666667598502015063941364418977325097964317740620120830695196230890472113186505642208772307611384833895024801345929794135102533215738895222862732594655339803020009265093106494118874447683032822384228579781191657731862155678433418933349740760309914329560468172921556011710916318388986251554569462997272540399589921101907217668957443941946033523643695715865264838797749914177020595971126926712889391047756768653468915190629753611700164483559898960084316665698073747654177277221534841222046382297830301267368569066760184201823263727015511335838453779054015974757259149788412691598633876479731585872164281157636129517622605661901773143257410676301708505866248658891145253963214064274562373554757769261067182915408083740200674504281368575833955703932578997801883775618415468684761352628821483580815014385919273351736642582559053487213464515288500265043672662823275044967297203797697861292012926495767531223136455590007513891818851774059810366179373829611042235270794558597551915354052677093754151498598332007489489727384820258020435978961923382029161746119888949347261037119720202913264101668183137240340961968140381976627693311322945526173293449429529212999812869045696345816869358697933290750287555696590613072170869774749088985480483456050512395079535327059524480253429674099886611195633974240502990488088985050431572960773334366164355117051638124955152691781669080846364005299103859916747054488568555474142436347656612847939217020251762982369552998091307765784340697032709725778120343646038011327984102504262678318264184862207526895641921715703155989218667523651506574513959839651679805209309496108002569979085140915003587159160778137969921154387071135952506225371284118974206266532276990628025808845398206086514709027533853599115786359549546547518381549403614688197291606004279970627287588652441485276495170812022004032478530421684569542017438874415258641730064570111718441090384855010213414728646651125914025542426494206042819297301675573048870057378496253691889642699197932260852137967633207831312262671975873485424964083062063603739270276400050659911686671868837738370505700573331085171017251935085576525540412009889041905556476684932186649964012005342282900040116191159423175099717897444789650495573006920380273983011832727949385891741396174422787134006164989551829645355136334117577462516875799651813334257521604184227690590498055429849317945317462278004112293950246275671342713534639018092418954558827244932835836293084923754389781409145604862211979757448259764912935449418669933358117632659657370194067440140815980535111237025254781338411671046911622469079920803934453114182305025711351348103395369677484115249294056838787709632084656517059447997946813920079622898026388827114171731362168351927342540313078762329197501216828851093819815102875288222362611283371708134333856468154250479430612081105564633263641261360506114375201660326258219351725984921503272057286695640937720984053397706485977378079786069331286678068081097986253972366257119498762647662751253033674383254911252714243519033305161721998544329780765190137630286789655922985213197882224008183655776568902089950890352080538089963494639582647156436576123869568189451102134987146084636305504051989610253334621039125159545235548075093696225466250989437240631797207054398669796484428744119946608014762459155740246182071953455059777880662218048406342424843749712142580891240281967874609102753766091546952629910005614705248222715210083161661105561402626998932435529699454738004675289028314256201790890591744095507676597072675587670200625304589693127854426830390568339558499118543158203206278271429553586616536088942073547385404876700121672407391083027873548957233071052075274615238996467428428918288782067297820499490919817842862477121456698480303056409042107941064763795086144320588303340466120228842815306733535365237059088684556341841452085177941208480514382144174980480381607507106136804000707495629731431204256933364640723398934711628609991746747794294861945899760025622638520518334346680021263270658080460780220773156174159396318134149448233376908948586387971908281443117752903211571012809205830017109118145470043963103232504284168485680856903505101669207426730305954110324482914357505954574406269028413623863941848562796341603772352017880355279634602817825942350256389056352977541229816270993921603047856599258338254177192793781019209965231646545911974043924741527605188838581730631055244028828541806717023793854974276269816740056491214514390318825062949142122732436572568078298230492634042609705641412915083532313782030938562954894061104576120278175206620364616156806662111265890987171731367948006273193702328010575121183017449772636749667313862382962594415197350483312102392917947436035618055718855319926353951688063276773575340493715090209046270813242899807762289312914052834207715053422447921004837154377911948787239861834161026305645069357416899528963451841466371650590030819519924705268604994143955057706252103392823295626703034811922301769945141918658484519831409254740060832082374208629864296622055957610339490715022440503947698333518930729972559381729652904650861741118925213377895663701195629118655946481219574499063411155980429282909007019668398478207630168342808658662533821052944442520003679037039240082517175141096671603129882444906517418752245401429739586260053479047495218783992791517065843349263833033486947625836490876729216024999824764634805929804494224638022051210007446457905997450740007883561922311725362014783807432414046069130778490030488899581939804493877376540901167321561907332406956704052429466709838731874850680820962968398222301515330750571406447609189813625114435670287672015517075345049807647558573318336845882007187348933997911106907743865517051177110923322521396518115609495451015872927903354446331396996546651956060868168507382566093768754485140495612953578784114042866191253840864657465163291485424159881991696342207455319612718037173317257617220347257827916855656130152763075189566442078024306907532150720821864791855179303184412779322114254228993373530759378891646701836220654048743235834131727783184279741123547153559763786130111517207744691312003800552634952931549516769610525004375586809647557987539854171892309414471649901794320917519348243126321216030902805636817003929890119519996239534693934554368226608242695139107001813883008747822091239369278122372755913238406343602797815784007589494597764880098389857056551197378554696264281916523609982061208767828137713783076494617080408084181745615690809036816000615795941673831434385658698944024815641904395405164118536606015184764116490768987074248769473921677586998129539275327210491375345199373343938772547102844584931301387819360455269225767794510477973251357222249995282124945787113940290571589110108036332504602820759352061049171120789136916683010101956100362984672083402500644134429556199548291459193152905585952283723836915983505092462419542140748126315455773439901070229948304152556199095234530540649131420824338869682871139975690330947142080607862313271514834560940330019160371543061910973012008622759020515191795642587966468234546837636404859006013160007422909399406861993507910939956436812753509229485625056766687258146908840291412393003994429506733319771605087343105245431076382063105593460493620084353621681431006577946693823471702291737320234228398546084565410584035899370560924363069514092399892476243069111507730485300115299350071962833735321084600602790405062939682420891241648568093962635250469708651021422075772447462256799314054477034619639161896507188052738799985443844537608937478906325911421694261697047762145048437968110376079892463975948079766284313453637118429162620811109843034089510322697694418438237251672986395146104872425264337317953028358063716734940335548538251565573294149807790482510806067177643802762680035291016503909738922787645034348250265367972867490026605352324786981090947825457087145648670352242706557600379271489681188029189850733775372579856924313316250488193502232909321948926718198158543856136487259434582427937618212575095224733858257256052398306426255536638003182090702738686340178332615401132609085478538149545396317328174554837889110830875409943861366104701457092051114588504909256878651460079819809692036597044212827774648179499138063877026122283415835413944860553187347272981638394720455820073902441893841853812413824519884795888203491998387064873567894251331880323318911969457783994555592052305126784604275997506497751561468315780895321298827330745701940370784598588084485417681353697203214825801401930793201287642029966259032560778530015023835565514593485678716390756469926569125311347174236515299527853761407199427575637621926672403293001125729613630617875751678861635501081684557440220200914735834521240009909351947722387694737444415521701644126030179244214702677706998729097839693689085040565953329129939902682390677577574492988608094259897490228221879508588526922030448660984784411600627140486198464070854792371910730221913789092616972106802245164214378498904272746224490042780327648387344068026144636345194158907583343666728248452898743179560189777825129749665506259534352676400117665246625756629926214704407451595982167510031796203920838228259184714720327382375622468115623357129756504218926356414281191369310994804860823362323332239538531831472551077402052489417641464673314774545362306502142592834588392558770319050316640297073561884546106853546616931756122554933619072222876041696154917438588426582369672190641344784507953008415850729693302371125460193994907492677795029957021460036651929753823514340321761192737996946940341053598237073103280333134015233123955016974091913865068704884138286115691810766201201877887413057503491688277841916546413986254088675550034499873823398836355718133838656897358903634943205238157091172284995940410099032729398979361820635923057145268712230471924202421759084275447951733429023178709179312831571634742577752606689858750531448671150432830022597351105610632243649895759867151037993828099184726599936070470658031249109044601615498830377913932299990967082969398771936769364186854654029008439438550497855913739789268458454855585214143917612780124061392299924010945507361165336482971970501914957176782149239639848082906966388629012345928259362912409484150321045154527781018892136792737161211375207296158398274286863731245642056770570904196713157920912185553301397107691846924291146182647189183277206743914474888080768617715673595525530869953484875273069320735094438527383885621813042733178140093577689308633412856532721063177489146815707365512347234384062488770896261526219791891165780555281750759565869712157564502306465763175491321966098281219306289104139793795291340295755644700443465790753410083284224649597191111092170360268506688638776935732672222045785469944365285834994727865866786451477646743981310975430800397987834067171175980283440692494555029422170822302767128586731407854860067030715995548328305235440318078246449433238781455429360711196684623167165055651270031406584908258477557354398638745754928342596058775212321333839776305268423337828332979292064143834785619612705278266040260423787571397003454861757864743236786424656440783767883022102661996929844566540533120144980999893051976532540705817395307112924530654096296597760013104172740885879596589528731610852748348665367426310004168347103793190396116138710237474467790183476441517795702285200662822129290730143091595222351599781454489070468041718861776201571912798364171892594678623060690296789463523201494913048101092514214859716206613960144135405297379677261890723052245529467408984114293600301931250127107574862262053291586888853985262852233735491884078860618593855465542273223328403988204899347417403053460110511055027407689806467353222524768262040330013313941136735046791182875535604326916563897516813500098782648840205834743277567342546513684279529206401849085578064466519448215916318905036456609727266612435628279415755173847475294057073281337214503844238394656554732453944939596301729555675789171213194956426847757942397403371983662101161453051493136983352300192588443740945910744857307418944031897997398035077713580717970630456422975879916350469927165963550294676682559326986323154011985588750815051567181086790165847267474552512271970663574682071167405340643798639544957577143500627819018055601243920480162389601697010504796365206609835601474805665007998111942639186404855377701731229850067852160144642664745061567173523640920365631628342763691456087922435146983678186059418565496634813612480728791077209422046561288614918642070835464339404698271889820069625802772054683779559875320737166699467870876946296602875415364774443208191669608629874629056565225769472541078579325662824197539242976546111489033286278711472564580208235278374024381656062400858613144249350243137630635971661999765223205074332469048777758505575179356853136937856544342330778374952997126614221721570211137023093539388971712004736741261367254296014817266045457420566790499060818929849623242221427089900463958843803393817540353494554835509224769089394169388781961115792980494755542031067922205280955472815038794083103111397962766616342385389323172888101743496603841794928265437760749983422550054952366323377860054295458029310601827649177468649202600338302003608536503600416915550650107221014392546682070694961049986671248358102816670582885767474182093045430258399382087876777553002433896940371067463015042595904523976494433847819100925407186183448946338498504154120592436017725654538306043884757853133494673621272360824250171236691933110720321956334686017902355996324822365364579957892556872442780829065014317167049624895178739178990330355154779628876628008576795678655523834434402406939724053745286692904177441263843905957823758633616688927998483468665164467822219728813626002955759955772413832178800469654037749498755202998896651974671441871978055499357204591584899578395887478217410735300878914171404310213699035790823433591478697875169257733133687421063169258767317902119185506133672645680100338146479534035266238954883027201117204326801158835808656586562431701768386738339951802229694793037563166170144189958204217457049076309852018839838487808327068232874881861195668283671699265175955374842806270487722867675400455694034118452360935994567673502825563867422106811774022942461149034598120739521240456677132260292325868330888665361414938159766944476329613589824479013938866502795009860706624180839946078593812370084961347850521645670355974483951848710346386181255251512352945861837259253721029823494491045217203302151788231076216726872347134780595793717230169508332113713075439198269567861282736516479057130702004982401354739911985709198668618251035573632025098590373087304031877896049643175151990227313554913870674620944842192398891867825987316935839890715532555972383427026851962132676596221391622779666601532590719228707899779650205461243985696413070770020538051386550976651151273895911476617968913293047010010036687802522571324399985423275094046676456341035863244186288274875335230542154610199834361717921771574510345382390218487008946609135676175678876004787748757369650604252928983825419499023113864165100143152111778943593697858098469929703858412336738720112514950230860003600516547765934648414733680934274786138822888884976752839824911005029472751950431348509665519811724529139029045311236828905982647407306335829765590166773952841771598739029507815854245246522928939875644146671181498701415157726590949947658704808706350923128625876588024950648217492667320506413584621570221183177368702860230765204274860324005463925310913839059918191581795417629534112392100686132951252098666574887012941231511826652511383665172550146930314115376557758430338540887262049229057025773904039771873883452104425136440196197398581283755606848875981032576359547814943568730651219801043949647582779723974692032571480503920213137047630562310343528076894120069868709899708492966194748826561603289787364236820912669956349943950611266451363047081764846908899679165063161606299922522187311185384211378419427179833484009952065585330522567438773808686292763558853376904863747815048578935742721233078905867315851921551367371527877420652775889724607185057093030945088676027886274083981334652169126030158955599933201195048121949514038105342630985453522040793753490441665439598298495368957259334165952634544748040228615782089797350975548493701952955617446635854022470086030747327226795350041304353272491955666038469171012191763639420950546210961058473091163110362137981686912627103757054129603901724337514100005725429029745900290548035023997414359406799274233436070554354421805768517632018915861781879373013846656124993949723175492979440458503762227627972996742107996389435710952457489876819796371308671114940033420194471701483593915961963525315756525488812921047544826624584335161156512269083727018022780237679999323976912866374674868210836188198850049419338177217113846297503867652180067287797790891758718284722582583553954288488164774051216638467221735867691449624066189985006352701492470104992694178125131775296989763840210552156988123882294409009659190763931815901707197754457010250770608529384463511217115088553166487266651139422730580673392723441957392976747280553095176230834762603231068846825824156132337052704734262448426010554560641935702343840295733342360932774898402056565661586242726592300075119639844663744232430973439514932943175522439396534124269335595246460804347197179422118308321121436898031748145647816632305086714807254463905579565432613224866983696442414677665245477629223826753912358136177455684686114885307759259472115492312073781589332631593057059384734322669264820689912590010938780037564486269055224479648180788630961352892846472958742523472014028694237723911123610487707075273862500107587323372532457677330359210189382523060933423432487316872939540346608493873256821890891065255873008457822205302762880917114073591950138054099046577888004750340804410920761970358567188032186643703981428908253894294845645012222087365678747510114551310355283575075516987023724692743052127919835987031483356547799012148075246066008752339360528964267511481863954469078046767207415926170224618253653133500187186886060221594813343401574434520858462381388004727792457356746791751340650767539670612347770287404246703078171411453393940887387890534836414770885175747568478444710033211658977296738622897558451584581506939658593023843460625612555238015578396048377005126983617091416242757349364572346034683875872898470104973952971715793458388157387047059479562377073376029083603963263589233117623357861016751884404659324411837957188037245328981601547133017599883738985445648978756222824912064966225172123000029591456773907928772399681163603622196673294192378355258843346560151310850120872844057754259469686932962216295323932233841642180337077716862785273739151800590319164324186805542043209162519385383989682455835667231715898220277725064029738005741679680056445988416635945105469465395364336707884556366383833805545908709519358171762725004478121786351789395799448501621287816332340060513961322048330162721618232874633715428682757173650174934248519665865697460432275798205404251197535305447076666545219792450968269442888010307923508370499520802996338921200808698470461795466254977952434105307232332697131162523388440717645933996261224230256791581288811099474229474425484125121732619294626729798469152231433209462113939901262458794000497562518806401473909153621735059143994905351718404043696854658645632422977103898352249293663847008173030902956887839166992214412671769410286388397543708386203301375239795384654999951474243045497260913219136392742143736192310611387636673887662465145993557154278073872643264010082016723534752446001212973350495505915145536932686996544397150605884548775830365215039447259129474031973754955032622184793091656701714761989520496473900247606446621946151421005681818994581865655394943084000996470493279262143160600700056569382889489840682412173736624969175112752115882415902464935948941868169491699826512350831537292817001548933414296027807822772625905866033099738648390189895295171149663140184409141257260858219243918804445233491754002727946367702358124829995248909250029342211124680248822734644423781852497006325272756141034633256961489781153659172687691799158751407538565274180605928066399788756041324950139081482167490773749767850599343234747218017750676102594257579683683798847636601440117420790005322423557074255550731670391334133408378530453459824389143897811278344108976498296982685703559950156602280144628493038732593890868534489789078691668588840173201223155136970978865680768076820714908043137487276293337816986235426578411969476598769559880958588882547021686058988909261785849934456821759249293611204306989161957240943733183222346731621659459667668527271213597547580898435137763035004620021618901910200207825579043847362749582886262650358885992875207909248505554638355989852817822938468962819306075729386095484870046132422801592513317261365652681309332862236576278640848943057158122181584638625393107728975574092247112802708109421537067637333412462395199999843525942390348440494311538355656029622049599809420026667171263418128748318035152888272676141542782653809970777757464860025928601285873454520542486469651738474007152653668163598944019437435589038370575490274726957097297364361865955085407271845636746238528155226131097909467778723838584332475762350263846177005736203367570545004515444902298560791207813264170667847526141107600916505552513070529392927060499802341803366160485894544717009160782059130945427317733173522545430916264958075073259414369449595880734675372421971261986745257927330705667189357306569290524358568193622296571939524118923833037599138654096935998942129311671669647285261672567359777050218578341210532530307774673592729419636716271707865866051641819013413756700611647806350330612190706122307419360209405198992023286096128485294386246465571398524077815744282771986556122367103626162713030465971514079353707654579325089260142980749734953838810570369065873736087811629137696204882533503270553258119439248871507968887276020474693425144602271829593189640680775473439870541277198165760551510761005962316480678796713520847602084612786077914035204334266173315877629360629015194165708730916248886707695591038103846732110112071781368027746996890970482655279644737731606804583619062136030688226056150508964019678165236048603105648805063613772033148123184668588457097568141758248569425343758281346372525315223812446579246382914497975871135370715551089990416373193668805531222477930428625096058113897333410768512020065292455700335212529502745943560383854148430320929608691667541980135168668599646448798739824199662100948335197280166806372813610587908306912909323867640724932311115547259402228639756820351994183188197624088862675483882138061640161294643648920387295148664530144530674727830197007955452941441754946356330495678107293527310263872322301813022078265791861481229239728246998331849969673403511675430111364376960390305439750092138787226918866597880377652475071986005789530367585927957459833930797433713602917276476117637016003344011303178289299467138812229339907850523704474034774737281064120522853421434251786199173660343208692185810417971877140748719030682620614935965171351071274222499968855881307619211180520371434497370925740858356038542524284109031473638705886759026147185628312014125847474373489914740629451909889584759377022704417714157837358312074070050004012228323666308587515795582398641737483343648774483090240265246905063917242507071798554954147543573310184686580792232485798765682542087718865453502414793870967777680108163249796878965034973000456570475907705076393026625417400685390944926914791151133594858597338184341830682103273132906833553647038035251128026598347988714001190397495133700844133036400248220573985256294696796530908193154753663184586718296898745535279830414959632298010877669665641498396270248853851005637098717858814166423553820252956611351535443723455375060443323866107123505301153306607575693688426212911297658320790073235537521014052318037064424168079726212042433604176251632318739265827589092755685068825339337742102776716985037533496192060076026507363993641315434649191585364637060333318369996496958741244916506123368480866789455738252436203638233085731243270788324155919035945639551641109783172902457434139421535007747189500009832599695153644372235343375367016093758997041711540425737752594775799451677909856621864437213257463229468143266441190657864693730776896401103905999827208573212129442064279526266088806090676579664060856148159923918175776761738861800438811490953281286953843400118084263530971753717572681963121609767260267184656856827949406888939558491844942542943639716109530545283046896243915205246465899173549822542186585156837295488496746538175163364930888290152576354689373397640894332743483835087757596558803143840192507200838179350280821737696027187787450856016519202732165194161843783192852414221768878996667132891348889782628528883237867115280718436077047289711450101823095969802553845925354562739963523618595487063287328847539066676406359188880414588593567364641112207562158228742734463378921788187877254732176536013625534163154452955091156137647720331347657194793505286203670389616099211945269298196138213438005869805992645873066860355986080073690777660061500154702349878948335063854314808073195055566915338027909387964762487327579669967925127879893102634324855890122492461978834463762065283480643288642375953720031795642856480741240944518150570703734519096044997366413049442424716493564642544433015363935807481988133593418925303107068682270670015214371929613945001722453762233658842502037251735288986044573992519331811133603792502724894232922050127922404924396576617221767554150697771235692351912545880054581133310413056262709486418918549116552256220963573677002358046614989246275900898499766703483283994032977472754637824702994363025839918768985282856361505676428168617859732797911682413729279004797175746347946674637401803887849398795904620508728200007755115517212450444877835654314031283417913721962327456158495089231924826399380076791926350165271133527067863095805170892627449180178133314642254766663160845676995508627264344096496552849573353819229305353948983505265818001954160629597484751546380002487937052573698064916307183808350303534390173463681306818853849908475334674049915073179790918632763834793538742621613090510579705665586259885706869620894362775584277015659081132494500604989561630590244736004342085187422248331346451998575494699877721911945508488848630456806055993333822076395448292917615634956556912038966992368230268723942127451239881759038508749232011689322816145641350977982122311915818048176437061748511439648612131882719203466291203289885606987432802507773744656299393764698484951375572213561635793338421311371666028438510004559007411191083046237228870359875371281259204609938241463234797517419520823915650518813718673771843915854728305099437959860579234193958055907969120392172224753365116739709646588399845021542008623875610700607000117936055974839080392174456837300307692910333316439383360129983578364267080518076612677715733464053825863138082544714074958145193347299528294964985294871783264151001959295092830827446397963844116025623782564882671653936992659584049638692458034273345254178757649861954571473599854890828182146773477356012795578932424362715631098653480518571085996234486003977843863265758572137583578955059322709633492979365660705686152082706344468220711806551165080220916308720315907407886339603062598014323400344322789976907982171024065736361815563425068608191620292723285499789074570569748063017256206020294824005288222828083142859827052827525817285492367983069679198853448155177681964905920398944208027128795707211766855808201111963413092744907521466433859592309939175964772665183188059365990587765256347637584510974188125247746814452529022748617185411222053560674837984348888893655927310223615320352370130588879179717292128076340232640396901001357710882670963531891127116535524749161407025920564596414097638135232953851373735655811094892860292917050889032015538673695194672518923737774685968079250956842984884021026640550510559679534269622802298662934946142042948430115625858349999285434885153356438097475999152636976633609348480823515156205472831309363932385133104325586230667687706511740649823956781444291052813935809451553120728706949914389839758990230651172737198297586739963935276888096315428326802999524142412387316430733749560987454159520734711743447106651764429922378704934697806115299422170731893936217089433338079969105227956191961910139231257026384866058032775010890555192865760083115441559936665326427944726586947991377863286666343967951543509785864035166523393026569472516464425873241175982414108414340682063573193166013357737182701755009953591708475563088584048914590076933404455133345823459787270341032483619650961207767630411777680985650261509034060341699681718487000543182827846110866836601534153069976550530099368451631256960869723350288427947012643088710126807575598664250529782766893672477681975411794559952512352721123758073163978456816795653495458937240517303592665535996742900382291638758355513314584057696271794339184974034978713175943674819240611885715373482016548910649002781126684343906421388914194549599066287828078885865409405811984667314496680309235886333064930523816933235681691347493440683687424974406114102882447829343448968369134198879896698603361386696635037462904289010795871369222833877173522224802061241663574286041318918556031823594555623770330712205185895050569078592311356024074659613667721819411392898982759513793974341115599590633233613305321681332857841037624521268052478734197828354196727595882951136958404518179300392127076639659547865809753474758654583110427968368928240606915531193865738417625493271144478277727969438695485063972282761201239068135831473952148245816935911107677304751066102741205275048159154510149962511022530935415442367855818615419122541650287396198786879891666120407551506133594050699182810324119583153527951359829114794240428046222282943900219857380400758987287765840240463720696037332996947929944974743245184674820489490953898040399813277721587358092921207886121383363923864314290516363921895591568681186266279798087820296255757105166011077966784495132808786060745301261728419048557931250472449128748167876634230258774446811677577040572378166415175464128007822682384996055405708401624164781932042623675599622831313027847314786068848340676838425157720156607496942566619459703149802668632458812640060470583424371279921413179276358658469928934335732170579910092806260891361653092551496201119250432974680427621864502413962340328443586870876783677544511706101946903014863151777074851092696506840607956987614986562691297923435784925960552962532526005457182203823085067791810156049254526151589488731183146982885806279118117702037688432665260755320022080452308498021655151757609630508427447301193066496165672181947104295985688348817379849789496485514113095438174212700703381087384424139091862133837370745863764289080129396277610806401782609933824496563292458853433623134223637023755877013828046125349250903629180181847794646147512533521847811549373853628920661332003156450854075643468966996614577838641547537471746500517391694759640450858238865083072910479607284918441634445273112621365515385038884012883694708765820360429623120978009082540375762328519514288967814223698283315970408529307092578404904249624126857635405498530309027419937227266907544123811475436070504824827558361875610824020325989996620117511215376642876520383449210045039603252315363768972576786524774363196119081422612742050293229618160386989274516367094377089225456289986565317254331576081884189055490067265409148295735772179077436489343767041102175647848897677713196187831803822660034919009094777204703137978879659909529597453090547848889900657998931749175845317649725246991246187277158399284240347869884067739236026909365809242994520448561194999095731551441617123749545550713357284184024448933395782465359432530607324673596918570321433793974904321282265361999958897912465483217287055019277781026808090842159489709626142480753042488208180876471163841486788587178949763041959613432753166519927038357837214674642236404400878040175337570016549397735130509668341739656031160864282333651482451832800444234557280675727775029724725602708668598089016144133443862369388576400633907787231043450274342129516782383913993209584069549836797715051346776258853641415618138550586766400673971286441869015521238341998053953678014009372607802036991970202029949779096509537125749910976066220691187901388116621467026366563790710482706926075336527504097289932788583863700081060046608036057139315781225834512683056680217070727132979548002034778344918867709145173470726227264240411520069275946001531476787160253403232381548006019325160846116879225868544549041914883997624462794350610091790374942639495930148402980626566444841279778715833077516210658992983458289265351671348538569031867816727105580090708879077992912298043899509839182254080723237595016405938671903765820728103229020591165919794251306775679127440614239649482587532793621874821896750556657534579818052529024953847703477345670607405258391533099683363587150534077002602242683197708963701763681431486800380085999660881927065908524680982139966816681703418525064670148815417242901715016571460433219719483964226701799321549601555071341356745936138610917076179844076188912863490013654520346956397885193433372194915477400404577096801447625572045783081613957110456547813657452057531666927418366112611375938103444871321813213896796990670062844105920800815537521246291328765782886090655500835936573914810015044243625884790111065126199240843387269149097288851872088303169570200809088933979518915921860043962916631441424848525420221573658603876345455698184660755648499164249669024597154123095762530888359379450185104434693880155031777803436039566992055156072679323885770830007131798037629153574886239627027763452944588533488609445540737629456758837828482086231341972120944059811913545728477224888378636186241334406874907744644872691423307422201470701682613931871858689552675803585494483357333024306165837912700881518244730420091255641283676219417750007681915793881357887294438734988039638158878348433527773868569526676352466768979343888081747484723172886176477197774373239749640594754432127269153790828998044344608394683421593114153811780801764979069220671605764955977454036372102116531395675178605027640650503285868369915201950187581354203306669794624668716233891959437070297333160909728895488794349987445473932957106742430338845135487733711084837394196977622656847690863968624047052762638013156520210148012794568142147927163855402232068143756818087471560647687321124371771671934802344948002575386946192952731678584978767519410081415577028050084019784153672144384262201186930701201990660518222062183504896061664355401301985333812235387290387405718656710865949347709235155180568875963422082668521334344116251838884052886638703043414036588419891197630584554244164030466938111012960035366230401860204982000821222155388064799161563502395127640656035114974022997799803066612119219893757296680157030204379753890544560996126525002899602792403843420544924641454780537660109547291853824333731376642498594450064356949050845295417906853385181574004860104534847604841647189600758597939172595804202255795668008114518224943489434732746797850571202623267176831640900478312762236321350139555346698778720720351276124721064901777793084597501114248273088120290837120401734907269433146373194042030746298521557244505055880246296927800259451937121096347515180835629902787658993251345618613793896770346107345842012116850207951334281415266976026507189859730024709102321890820933247517972671068570312863095070063911017567335259715652356724494023681052525286616029857801824089471604776019361281574658478834347258450333111207593541940172026233013157976801747851675895981663190992572019172531589031487544744685346812819416407032624476614545892008237087259894369950013440302222349496938823183118037964540355364089404785176668606183856056328511503477568497434963476192998744076893685680529361345084418878032386070090639681392101636750585347177251451492926037022740968671381419349429221278334943680731865544048940000559437588148267015344828144919217415711023077642020140469957250748582065246246149818036599500768960236088608537160055368458909360305697258468526122903133097992853783783755355861619457067586623898027776229004112304593741760944699111035718079500017246875610557856691207764451501397987689012916757351004312986653522023545664275192844361122259934540272514521682963580306467183295022120302008296665116216240737407805230450234005938196162089592254628872208855250391663559671037538627616074942251974619135524730693108625006891255062526181510996688765288124886098122009866095673955222923676526036136693614393929463293025713351418194107159946238156922289476577549345908148888290433574212557495646593997272051494951814588005738157346846114612776103568454099274621477435509562450238410234144701402534314067534020679260242481488411341672509794080029994135600598171315133207768200239926252516952184955627539400041682229310606586937715681786289219222239472664893818897771532346852852839158453961600126472727665052253593278639195501731991080519138139738358329306176197724781032350416395017593352454192718386530796527732621219986426354948116918491654970760980759682011087236220537190582376457041484272943226626641134269347425398130078164631665261974110514145994119652489290529837231694362151600726717656218722044918369202988193145307141098121041906621387303343386106505839525309153860322172488178842136737188770280398269126223673503814077290048116862373815487587823077439296928750278111275332918711364502242166197100271406300906390192686514924141188322085292808486879051470899362652656123792017825942368816001776960041251553193803583134165894962368695498558807517718166331834472452428073880319310535835977346619294650646978509293723742424188339230729292141704846510533358879374083036889344912047617190487067652071224574917416332970348490356198925255399463841652571596271878879940388515403089427179785463544906446507154263043315493265405850627745480406169250425473434535323234280474709004674180697149442015980947906511636821271808077723598184321633889299614804262538010516846644182749017048093853828297909610773650363121313926502580283112588082237950306534679719323725036955185035332837862028815451287458276190891144783500472264206626453516144751206234939689687393614824873458861052090004191462800377819243020591769549290512057562502407481833156300454061699900649398505393053719218989301344118921279538424069565837236222847676753431967474555082095002167750263988664468994892740946440037659661377085438060390303158476727325356248589440276395674116746611830116483666516868276929545171761845849403710323757759542011498763960250887883445969423138935850201293510150619053816466826687104889724302356297493611319225830553854387270726083526150356150356383061563758905730599129292391938697588294261659851393851574806950730340972815569576261025767404644726340073317959892273821986024610301977692714768062078871542357167869158818448002164682562758732254465072736620633023038618680592957725342465494680368023452036968275467734857495998532136098903018813544212394201826913261069075710801217053623528946977850631822663647191880542865117197754825277451208554123328769675304557303706154828914279478452201502050286671561686796035875364772280446039917416679855802267067634292246253995294534072892303052926176060863850757039568633413752848307018196933659361955837954654325136674948276033069588251922264188114568652718814087448742623771275333965796718463564417969007507103483653931948219887673942524763896226947821536289898400329286592932196553613292579296317839762678043021285235539182758279130178767838973259901399057970915288047582119859176921198662928139788946793416165001312368953936571139073120205684549541625816705931524662226901196328228961548750126832867341959419638121351622865619190476893264733787444422393679092374095304208804095379181331566415720742842855611442901029839457047639169478368718573272606434134772651103067474854233161413135876607432662213080598809253265416985732949462445237549345271420641774849877091118146577362486926831918941697504522030104726862643671493598992387140192704687306219787061111757829121042590577706272432716940133515601900037472105046732244790702603120910430791124655757595020697377815578203829982773874911115438721751813218081779009860468264536844274751746804588073999056804122753536557312967558539752747982154211129961888506988002239537275047663881124660399224991705935149064512858376186058972729657334013464392779569801787961997340832315648900406841197340964530213173323772518030273894738217322503221329772177293907577154115186101053097807415768993553511994047607251355137413372923952727559238814736146463990198197034180109447594437042357086619526620813151703870061706271843552072659262498707969451525806145570421287788506798599276207509320384596425147552501878185251970859337178479136870497313975348265957458275361027418791224195700690407950731934064235236036324151887524592031452007839835527195613010186720216770163289139780583425486083493871149389571768183768802724422882610471460507033087900822174096252082510457376006794615022470549772534852260830005947291066901828580223519024689481586178969655158715308086801807680300781554351271356859155772229831677601432064730601158064502313991708589686090278005900364184940326923281216337426421661060019873395523730395125674594396215076438830854844811209896060951799739245981840049736480033061058938001839329235857892133594771121113219618932624514117533288360325968362261222627818074661075965296900925449494050735367571968878169755301747418670628701920375287153559578972976970737497572830224266536085514367862063554256979047451542491715050114274662507776081318114351311380108126766998942615130271045829018457758195353907036160965362094473721284213129419705040855339603077170754279117621971350614716585686321819749441076340653757010090793105820089307727726088165330513264271470580737663719943938823238789865147979779661483163308735474168836238026999175094291233749689955145882719816003492558581071075197511327158254479287199875365051198699451116293113830351844879135607198269426595849725172275099090744521222268064065255887221144254806676938120928775187707595986333627767504601368523321382871236751029985326686463885743155711523612011938285063848295555074575822019557828494483610382032842690645116022915736985734347023918447673990556400439755410774589551143850380468724403704937557873870136509155048027676654774977066412062040147614839620990878798426477390410716563069984445792058087109614114817126456977525424346840258617383508500170333354369512946406597981631604109843414767010229673666621791491886143752314620500413514069432729264789158337410251496673449631475142142036126985479442297227039055355096367833017726092740840756788547102148070531195085942005695118690397173166001672321033553255119097871104269514434655672518334100050221009833401471026459567579780353547720081903829141795443925924895946533202944019347540905202769969787671942515394791359629720599628912862767043173834959081671199689266779609287583801539620236817541186090509507484051770160018720238095603117773649529467524781520099611348352489206173324134015181110486856809240073190741163666214641731025011734944259488191194484165611483514028760558108963785388527343171929814312824223837414451632682959882107104347950714986170580639517088931704294159968794349137031060225105771648625759844712878636474024656466427219177952975161725262494396669145746774869056093076586360017618092584514181446771016855782709576760917748335574447837243077451514962048909944629530533755575366900587256492696873336931693213643680878239100707228083536794198122974798454549416999649194875563232138289954350100500448612604790631816847755171407440048989624088009920297361624929441384937614038243109462853023235590490125858565580560184018847420177020635744009326476487988597938803098507732471364271479794821322201554937957453497622037505948632875259553795949374345085365874412109074020841659355461936945819393914046104780299214610610994020778563458999349637835745355824365804196442089252634102281966310785318417064852011087297041661755890777506337176897324359729556781525794406920538869636876459438896746767472659231800368762800478420566722300916215600934160727787302370991211423759895763542626408816721387379571842923279860719905972353932603563218342958374527902749013184672951295330368585677243382436845201003025857376060024984291004899889079169672309747647062112256956059220710764494353499041913019305638721285014353348433523629136584536110353692632476310760612586778122357147662870195476447317615388162250598400499123369103775121835125382534777782302466678783100562584159352837636599310519405009800984837541143764764294489639583454840026327377359833851071562373692187967512733056934089395315138586960781916544597775513645256361726543388541003518905318829990377530989120302623513910448269279030152955843763101365067136126377685282668762991025583710615688380291513440237682203314942326727652041846986596968397526370260184961601675587877313423721178721889777832340289656279441722918976295196498118551968835372629619702928498970288594558309903751929694414842701645794290107974890386858614904791599392043800639979447402362857082271674622118892770898336596868887138550102858931125811321048576543395674034116661211828428472887384011694849665904822568165283852995361829958552909631492452298295867820108652002091632660423098917549972516840981360023195370369927930372164275150751658359253809492629864198831612965798170176422399643750148847034617558265177162435738877600227957187124367210699076088888796638768407123398723499440654277054601310500634936935488399968165001587814199141472468475090735412744666327182481083030770539071020259843295971648229310460468948400514934237245724806017456012825217022621976786012887801844188337764417069056379628728235751156192121044254816572394881886552503775765355807619352304658888751874158685902308124702786162089207969825529860274211724327701083316350004860361335548963390033752613732751896901014840366792963171583590067848456816336626248028624464921272226690272826687660858725742002965008296819379608268585881292677612517162284833642397129745569754752472931340688685190110473816823051476165498565170000412406272943860730637414789949894282067526133813633386107615478306760850213488125829225749467861726891785609642287602012888912735200669717409082839541819125347821191509317036065089409679923334419514857557498455000190928422403127739845107141821511615404912712812266683405958072878547949309291723652688251035041751180009961676695185171623186743598495774060200500529461098760818840854450198386199029429124529676208699607347859542541002737985007140161223928957703137258759298704853391582544913692333079934196850563741419893666726535372592656962008034912592532023934504125387962943942422916271990214736152211837378396199403371609874341864108761293052601570615990644842681424137870696208489547162008887070112723021614511473542484162651423917684777600454134687942747657881216477623314103619883687674465670208614391282964922174734293216593066657115362598356956005143651232930564795610770315050445565421278197117410168940907214228349197552774911831121057066594707570575594865836628705501399770187679915127372338724354514592053141610379049389697403564845081378398882654498793678210181880099628725670755089353664217650527907969548108046871231035297887394547343724571612963955863023037125578821953998638077203139580636912322748295766225525636096016256521940907302659966852244930840066440786168017340560174051898018208825156727377798834776369665111142215783370390419257504600966606734132430005984984675466891166235421111523149187034564364565467837715265412142376856577225384771457098139413594332661704923687332476151851671150927162695346104726931336660895461751813537181537589477377141419071049297278417175435987641755055302582559898780071822249813576693251901653991983435475112602803487237027107439975777096297187918260236094595587208281857901105433266467664767660359877911960353764765139963887465241940846550399364303889922714194997745081655212897558832094227888267667638392910319242392946919601684566010325142415035677450071771822441314973007587119583363688510088018378101409612082133892345352541105375363533473808939873845367204049229092204868119334793477702609399119306599487102413184114006074445345070296381654734658261841780516558126054762286237415427720598887625033115752104450751944546064001592805441079888025027793572869023966321207737570762463212963775916459154415670174148904266859371448759801645434918925953822377500703615239054267591878686285412396137778686173033280774525196385544754344072572652739884690543839442652970906131086207746634750858917200829899225514697609437442789558814953439942436442537958054247414601072670211951166819091181192781495913819556718910874642559661385005401909811117054429207294000009840074077158802874539869509475137334227955089046676857644725123419480953810940740255344581339312134629431641708458371655615282304922375720783417915740176710011004598778919004789826909771165953732760487830669175076107305051477702336297366754574330654523059982872303000808383609957267897634196338922560594484561557978272427396388189901002031891544432412734996810904703909109889092665406147488446941377362879931474418253211128683853856802500527792212735084186713879219524731931696543660279226573314541645690536260200696808089939177364906299757969351085900336971990373457408928678535949407743092982013818354239806428195485232501974536525215348787675457466331211827378005567788968675497073351186617266177455849013602279515685080666073145594481556630942325196407816297567320683247120784278964546596491347422450485147072999066440451557816986897978910621665483130133385526337729171793254145016561013991622056851156287162154703664203696590012310646716896687751109961429406963655953834966650544998981376600137000159856191446266935794433746860387568736894240578316126505458356986035154070253685293270887025664274599514290003267794819831158732479441412791988707630545593537912213693999462741524840405671455549649355250969490616336002339536544773185434519096383634901507880661030031782152939468023003523661286047940274470561886958129639091452076080522068735156772607833829092875593639902883145921365975653926820630882586124838801516647640088576164385856327161949739066644287720427845789868558452875934045556630041890061636503748296862165648777472322626477818380536969993830434909995134695690395314574693247116860990899850598056826898930809648948923421819832828651797188627821254832565029092834417900875644289184232601068814498496919346071877652910388524181855765284006149304059626583888854623188336118755985888124961897659923494876227741653012844242555429751877685636751368890236303809914755715511952807374958099809942721880633932458963133173973480173450726748550001178908276236040209271267503562670345758614331341113677126846771924317946050385312069939001823169333462330111281215837937722448601743297376846214327972106715406266990996176765593496483621380490600789054089398860800960834632671322087207153185041921889217039902462870419520308006211237021794060815244841456297942856051783363966456161676404747368828602157290280702686376169216958392265453803905925385149459722346600255183700532547247134915836753233395180603164426502880890524070690947185986032390612244592468792041632180876203096384947545260093975281513520218375690099049561607762758935656994317605085276603922363583917617415020980083864468188773614429815073108062208623662297439435520253213071702515691850306011251601270364232162850269737405131483708143891053193395827391116454289143470342068618272323268171146598061191079232867922430462238890912662458620497222962069638685153687110648206028891289891760984929875647194635477127567908048269521252191153705060377630625235845869724287123138335414934024549730110777476489875565838439205863306022987358462702672195719512248279905102711146113971455140995454779822339603024732479352989543195516834962950126200090033748965120478201744381398550517311211792363104679524194878086444537022666803543732658551686753657784873447778049299735928913896125308123708388545505432210749689665393740785050554740762716426957744586903368545541363253278120756778266829371928461038758083086087065290049936521106474615425497751091098802750692603545504839759514321296603338942746399306968878054044642534516867533991620813488569986924636545873297672740742682383124474504060262596517554430432699386151314547696639743012588049254815487924604906727229393435353232719307014716776489548207668066999320956257618217888275528651300621678785355067853439806892921151126215481837855765939459537262637219687039612569489938184147838634275008883822824198193676613746156770591753463411854479571185241398325379099822184425300895873531545570645594590823328179898412937277885140523651572375626317058278044122212173183292071428707680279177424109976543173267569935083777152836893658991055543562376697110789643180716791382533700053592686578597636846082038460961149988483014775373732874287607441697557060317173753211868602708787681707187370346726044785996317108541372288737489730859751651167742338325601962936513290774626439121217540713996586038201741573331716796782030556062563487959397390328661252506282466966399224965264501399114457699475555022431616505404118153835451687484194968897359099351445070193066544698962796929946806177749214374269326289427847933169893276555014167034248049164650909031080972868004316824412019706955934470492456078364512470928931318506591982411300557863688846057335757174722214784927037471365291594963748917946560613256853781113418661973715238042418224569443100337604999929618292942460699888427744449384325110974709975197817594386573930961514759573185219892618169178684794869289175641008036096533048599641478805235708839682113740259126888588261261140891382504008664456419183526216338087522054555363133545076566197644927599136127656585544073084577070835309308102337841173195446697181026674780433313927093637717872860490706269643773434931917521192939419028900903051000314959353075359049010268049587069799252347305540404073020795023054959731256875593482516639318354391467894309570891316032978608690817351090095838513756002917156242562642460757995239016249370743515339467815416863483597554172336264120440104665207371365586492917443885556522707848044559995834477427339329956247694598911887646106438987683524634102160077440058503252820059665420109322499814542350589803757904366953571325117018895512392947338737307133771665811985966742562179803092319133918900966815804178341122873904106578612434162693185222418548646021180405480245845655408310589965804664547297910183309673948809773066373671820633080422191034735721217846739069117209918918231175696138506502171444910978539546358461107449019138949787108699181315184590098671315656058660368750290349037111960997739566204789880879672154205448261609101641990520947599678260494798484999820550804773505398161904978352236451428682026565112956292485981788484713652220538980282071740688759613450752278128062354750836156310975962584643388366479280894223401839894496476995229518756017263560252118345732425266002095387022527775472404958730713612198625593591008572026957685511938967282290527831026010117512399807584701727199165188558881564059631587937404781880588349809357444715201529028856728670863914347292912394665591311334307273937641432432666954802988657882565422311264124165287051719625937022461223966463908495501986829219251332310797350932804383127711889500844202467190307751929723334771211731481883709838991611298448249448553049140629248424219695071536485628211318244476682500115007052560631707337658395594848937662321232712206069898491200486641432555064839309900274231423854566278585994366758172270732334348738759419032581155575970072907817495949294013016460484663088128502270894504047153420604001062508886014038614865067927717211259795362283355382320490427459659669645722927220636422730602141669678476550677494956091954958738445129773566865059285710968801106402818438842619476823878372744808162243733981231297827827065069813944240667714725601926037948811918453502133643339719006034703542214044530835746566247791706456811587330935333137816225374156459031828338528762993346154360669856608364870781774374858846405403508877158736651313880950239597814731790957083457989011678317921219854153073805962032836705335980942485138091034627535367078734971474499881539529291169129900855382029897350958997114725078066333068768688731874058825959784174340882591163089450755272531372362398253594534553092642754493579602439913415684646190755748785890539565972466825527069649876453520231039595593662122904697568936335831578790373757941464754779505394524388374624616108376698435192924401884125143335417142894127840942225199980582343639547247368446160465930345662173130327961053535158113828969496044985794723156634993900987782829490887965821586267447103108445271783984768278036823627982549644015745027895494180786588360018841267565055351810574526410960425309186386694020691429098712483967081585306903138700963965585252453310188402506658451575074666498705535721345510247365723544811165701135534933765578768877748112619310887511224127093825059376173622926871686593085219374032802953585913573203107434963265233971020284248068784353192478049317357472763628427937831824443516262194045884227642016542512829752730683882836550088495685513918981772518946877810758230848917446218950749828912444443817017655093105263840042505779742811304130744018520663504675868398785152828010221693081006212452128511165293929882073613025931354475496822586956697812548000099726743715629559291526896535127301630134178896374361364293491591561753842410108415198476384347147884731558060198095923710103290234561081872095045599838080420305470274880984218700438953301064426804282446824044522824607042379451432923865147577447559828640741794641208378045583497714782098075046184362263026908283405407655278726479357582902413359506643977197218829012283633624912326701751050309867292110495379297701170552696073381634550626226444929096966316939404707117086517750474815532510141631510529905057813923404102042058467087292120511881093484596234039695368661464718810423454252112909209877427714079374531916438529639353658776883383415986884006759550946325064116875446943902728711443295098237747454003427986526584530812114176421843863074692801265731973037980604340119402595084715755006137793060460788536096528712304212133505894554878314965460261512086043341250167894902767870707116437155717986309765166327897714786168141972934388769109494505305760772278641546110947689839710913465264892550716609396439391144535009442454614612023104493860574536100348091178660567783402772957861147844672121236400098062964071360014893956239823430966809465529434814900517079317071520759911498637887327294783775113251794437688487007047551640348288140597244461674170659982434405541921526162526305945211824357969810375569871770180006968356543444390096082003285369342807156505365898810354742362639034633623653115365757224971264565649089538794617939612414339606181846217596717972803181132780378140019116126527579834686640043611641212455115735176820736484103160372389476769373556085333715813570973957166792913782021337671233360417450638333480592606117165330550063514730167281078824775631839349617562306745942954818215591026470396986605620161041737576580189675503508537033773770333519054616263370504657620272512096421500461306900686575238246109974949201489779946478540469398625474702937606694056533335080413292128959064381661295085362073439431117626762774830260855931507416124977069437363304700820021819927684479014689769020797635052143568260238607883554115732811893047660988178109240088127988064475801367457739997509513847922175884166429357903158684987774903209093903052406014690619181234118943139259868537992284937838605440640402065606901938972839801668446708442113029219302755131565892975955741873067024096850340168593348337115219647199443315115091618979544118139737927532157853953013832367069306234251437769922388036640169381684003567028078077778996982413174123385629826843128554877465612464989585207042451688841930988580699760578309780095876449717694376172777769812666640770377197113702581675245413375060038032756098029894675891129989769934711320930422951569314979289608510717799303813368968858568680037001603890661864083394704616241562647855193553133186445759992501896948291544376483265461634616651432855524486659507661740492986148072908732662950580537956286813485459656841433591392748341750733529469635148905398681636041923189355714178365229482909861325582429697182754660759446240476754698833614366209497718666854122060182330094283843016737542831677135895445412701865918816467268687401115218875508951912066128458595103455446975952391492887819537200415595494381149406938001671640200014170838321200501085157355270168637006911066386529626732482826471138023925717927418997540947516408404382205874467371605086281322012098641342300507497866500126907714437229705109026358468404950463053423584104132941647484363228938315875827334604388616778130776486686527096450529912966543511916531686936604773313488606355312158742208327934298638855176172264085209678035445459530642204456797627862289227302234978246796407784600130139866309807439503374254464041562257210624138718411017336021914613603996853265253006110566675910419175798599841006447757352018028957878332095579992003105889533025553755201169105922669107875371070206821172194994994470619548782932735690432859220340359266841023826038094801516632998492017576647511417862258953557607099454119898747458388871982078249873184630596750860168175059742216509138048353991874877498605363123314939142778975242617752495750410569376314078418253934778474475137119684985286149970752591212507024067124638999773677519079452460337722934012833710155262867559388539645430468502606949601783005547564027413018267392445008990090632690994577382578175682648612595960855461573085756338559471447080938567384985987743913717805204507095228404665662684061817974472408162481255208777873811445447471037721891625488414792510451258441654086443933190602975514956095556291770858028830545397365395745716908447336219135024970998887066334684294829391259619751310439000580865081970026291734596861516233826225750016907475563248490286826369159056902259305994941530401843095121247555219424189195686026006958435882961998275252969667470909728071658781070356024387686050709048558495146907990306952526049375316539547086975896014683208771064454882566395486316282190654112159460960985909683399480826659657138496577711579317999442496960913784112930209212586685304816162234183960768453303447050533417762204532658446031349119396560803984959727691110766287416024366870699257946195269299560873996792662122826730756073518779506145702157622338663996316729271831848424638634396684455983476748482359931835477848965022137107070946570930499605900377508386167108060581323958885371482705285607859782090541242985897877325035339638095923327173412181205372178689791302825332608977201656375101492088339798508802353309273726432819673904975139555491292269247693563564173190500693170138309481680002261391630876217405680895320310532670373131103841734291474425893815293428178421750729472628536386702462781585726562057551922258592627634419339415235306288875871665406979642089900283056257321834975313640575320017137356577679165150145908042340497720283669337099563997785684127378441836193411308455356946779731721605335830725433300216372384266247779757188182134395062866649094901269496337726002417040667232631351268899232214074817698255817930374669523641146432919811332399957868451458658239461012476821892915438540445881744236668265822970318058389221118934442591950896132213577413328749989989791362903831381502471761746678414305194797301499175474200012515392500123705570751181767702964007379652139742678350598155928743157009668239492479552357948205335278832992745367004078906683794174448344966026473976480953491241914384140831467718364994806022418143337999069954448900812958613097116268942437333142277902541121599452646612352376483150939716848554250930186880895254362794799638009093092644794055242555314027265637115966624534347953299248469089466957526032861390054259303487811242225442573322902122860812125880136119838713595914378784357303898924551318752973582085604384177550182177948760741272565256958413011886158531977322488677489441000058986832690492444423894500375710576969676244636671429235400078416969683383117011051258799184243580312353516331693286473624010685701229698693187594667393132394960606234141328068354634846789378333279539468684272236908228696002114333974419160928152649096672434600720564267742769615942971875807668956946706198123904401269212775517946688452777948562778003656826446024067669212146717502206460949961777263457440154772433274892987753734177370323748622909226471741479325035722740762890018895741023507677285758852090858767292687421966381791877145963003270808947545082295014370502973400797761290687010756342143240219412703377331339559267584515823484187600952328386128684153160349563510595810600170763878435316769772449427935771231883356564180547965380613897386698829730770241768124403091170092593179732088803334360816452865041359815986921202630858807776603621346832516199595168308726911504470101507178108103649975454799882750939549734263345605473167978148271888737619171886147954271089388637674969683162770278336926137068827546920768455631216673198911874218033505951443783313632285617670657148992401967781376713269472525808087828486563163922463988345192823670395599630519429611050217323000766587608326680113908610687932023615693827397647156343988995973764724977546279537679603719994755372438560573192078750013660795968315902930715750569797884609981678984280687064602936751945775621738458621643211589955077390277260324369276758803365487724359166607614050074930451319848242146051121227952682032612485473704341159136192229086448356931403738964774916573971570337294458741823072791760493537219941038817636019165344989466585803303607815042804651685046990916737726557138510315619009859928643785639962998916035476831223149831726508630716216579296989328618540999375840296605441450793732912759938520850629027791760035171568724691899234643262240862064341805239266264524706095738477783801327425797407483945827906755771132877836041315393587890578056190399891357299238996273594158931945421378810693318208517725884756336989683356897438404769829300039212474251249740759190797601668498951638760193525206062420249575986487484491369032740855790659275951119128570128569010766833179297875292071261703437001081001293855200052663810810896576928413694594777697339537898093984150731499173445257472214976917589579786122805460700686437693472038240040233713627986182094562526341711105851874915562873136914578718149412698349954288900629303843515077853701385304637592070497305615389090059605498090405780946537571756175154746552401383392139370863985502686648368238719901361008862077933367712884538627194916104757946948103775641999105095766545728089802582504485743510979420304952844650814105960088244445238101175841648837849848076719648747888721963485210304984830819740331074793789873428647994951173061642169406218211316616898882558283879258856528961414474670433417339738329595665147765868731708719244310183065041145849830201165731400063645480933918679692535827408011864327030451506049692196028902260546644664440402451007036817178244880768961622323549727774523746614179548015351486372882967387508114758273345388144159655008836190413440802497082751396356691745695192287207870708580249820885639639961212257623443207159374015711326803351967793545877161278662262691805146536425426066856818530228467319023472540555838082157507538142189577073752002656004881129253023644463767962914023014824776793366913841532079793852757963987082592976644154642799994367059949926658377322762158686943038569935144259580367268266905572795262256168977750464743526843690758627585808556681272243047651878498765901014852953403592271276654161935862854596535299503230575251263228955890532467573948015761832405247953822754255917070484315652252566496966071577298836599929705412333845158856239914877175879934072817198794156979775381164457727815317974101870857008353595033605602333310297080167766734847276825221249679088564592499728813648138238537679194900981251477794925239361148547857869082609918584681129838136079177544030249716449846983199344306725620481490951742589089396229422330319499045125309947289692234884989926118062212862429617853013658912409509277531649146974945741954411016293833937952217177091991187526245602207590941134827727009570082951657092878518209645875799312949540736392023862470972316113250704414427579654123794153923889960294805560799327467821710219303538842939406354283744000056537308543133777403003513583485110103240741890489821448901227884737498198036255222207933167200641047317707848641095922026434618252534621443379877764908684541631794559523618303991465488052823142284868292097417263203065096527538832654964844331665711572356259462659125631657652964103564731362623094955113345958361250651258318282131311868555994098306202739216616648847859896540162733979828609287197528982832883765714783124725773095570489876423021450218079098326431894994478216325247882364456963127044079740736545037239919869594427316401354426362494030914050432475493968659709703783049764092322451609531939886604913986875744808698533909321844441984585672593969075460205886061243300841671519657407334928524414153025508158750735521438248485151423293693510471987840131446677971534166255947746034167349675691253329412763328632620900508585978589455972141519022992812484473689258532433302212675690801804480869572709838700552002385957572108679725870899338285430560439517010424191125164143829916392300604222722783586029694532508551780813261494987913249532041153281867595467711436500481269517760285205984144731910981587626541013658835435820326169156989162029058515336808669507389346359102293235263152394384352639842639322911773794837689051887232571334400584898610964547245141597821734495167327938258325424420540760813456035917879895370949740351590207462651121963134131953006344185191709068301098696451976041046492932685449176240167085303053088888150752220609272724405239373513308989671028801270064829488609061059256876287341818551183230236964325509979164937732746399509640920980498917832437157446601817181754380086914795747322475084768943650845592652291923440192075033592397535485118519589015449132429556702274765514380178335299028573356187030187184304657042888420145124690592065931322310532667243555902354818360744136484471840031212301622002829225741737752383747281032370766274426405532287806156869531170172418844051822487975605977935777151978519324904897754524773560114646206265662627883237511823817670740771828978519375195599483040591050144948200326308520405998164781072343890584835697667422840275655637176719337791441406420803283109409290253134533870229408552648629048286014245307488391688251984353298669617598295971583251180941126727943267069934933826023824807831095929334789595133494621048224035263450068251533828715063090174894899620948482111703179208996044214927614020438322529609333460322415923685831830007142862084645132694315279415398611968145582045141362425768547959822707407684695906150793348909283197806864884273765897730149371829437713163622329058490089918241273621035529889095481890646075626182426274043971464555094114877272712141243038808398908624782288048819758350624438114892947022916817983327246737727091380449173558326509984593689563260267473616846687381825574171310376528255059563779114083988219895658067367371806498285401841894624595722576670331756198110792503255801658749966830365862019286234521410450382846566746537589392884775986183574122207663146934512957693572150448052355197927161727140218217994429876985267442039226490018376382389605640993133144767539995902928931570417898278679467374046547050734708687335146881853405966306550645171793732808336864058777412326110873381386443658472395917852845480876949910984778344019766102208981660933970720025269129509507351982336226234795902526309593346338059745395653351517712414015469391145687234693133917301763548512826810581232837048986427573095955780981279741172856191852053984301981648037772111971724176312083312829629687975466784361489596413525375598204663033674675766232472040521000421360365723641524470120303558187092774335733337229282088647571085561701095600183158226381202267276211784246507955094584005521418315575781630067935669626595467875386197065068072991626990784345046404101006391083927667564102286493090148381921014517943654530678438069669571811003997964343368939414213267574014453274347088535107595992446893997214161066804898856296135721546175282263757682259132692172817569755636337885924691413071121573936618065946745509467439398543374524334520257615214067920682127612668719471684798704300080415810198606715684911335941137344283701718006398647156157762970978800242874847241477577418957325267753976422018270834615500969951819055384100070431235038961473875862562203423874841166087484040348739729425236592971711323941013925843775840583236528056041932724110069902471284794126038816866019475382545733333194722420872589428133927858982095378653880980398698243289787102968037866745293518445011304964814586232613907636632033332046747821111715256819332280114960093246298091904022419735280143112982247042998829925928464534808438348453187912466912602902818379785797179990418246486395368317154609569401236622740969328385255745006684303154980614385226296319131223876810585127411687901211659812145684368464643705217270983239262129309661677902700050243084584772888132093799149301951889561418408920730072961818997169385502214979848509298036780748447812339481439305531780328746335425034558285330079412896297007958960700346066141979951904667698338406848677793759469057899516627914457877255577311597005606431577911051152643527356786473861541795774913432655221763131497207335063437911731773715025095590712154557355911027432893201020155245570325023589673578644181643140179429310356159828201144625094288680089285324861878318283970888903743153153084830851947978021595256735776881293228501361522091236113355757891595985793321827386360248401937470667167231647112526830382783774791899970889542162671695673094796084044183982542477854023175182245946723218259602858224558532750918146458637260599934520970045599266327375281548742695732252837880221788081092876257273943987888879618186875027148808411618528327222764682107330088777600664232558606675694097638555649135220257871317293309042008366107763149461380924312731679437724944148683063976927658697770650233523395107360837131098946470875910347296381811023131929684195834386852583819573014674545050896368565420075956443031337254771548653169807917479972733244873561416901654010837652839179868988966349378024141733140696292442859320718407371156678797124510341920721168355845489931506611510836380434383298042172126828620246189516640407741273726037908072478753141184875715823202052332015610933820353623506540870355876624927817712495939320694898051836885002182115150461381809237530216905407541427405615500381043958556236008412169745945461040430490603127562098951212649729725706150822742525449366236693731794193030044645438277054391691205343108721457445379589375326266773862872517721622858365972787408824449553540453528287277950449847220330823524368527252979561668310228453474309674765824193917751203115774532824709803625126178024799869715584670538190612659430549201300054232699076079080796767228021475189911097591765500560206838486578660192543610166058396977361155416740191626545442613164963316582051044054337457769443702562339400770567378210519557290234657510519952212325909748344595835835425439085718338787192241916669746298338768843415179163910172084285990874567242016516745668695140889796204326247015161845294310070997696384556073852715811617214535320165813590878802301135722968322717941772565818000869613697447469579143586400457666726892349495944687086584126167893365992249539012829514158973386522607510934907987751915065380704339632995664541679493179376710663573920713409108144784673621175317804870427172695792232309251509267466602610311514831574466719791229815572168843829456067814997627729004872473114989515515758275549986174992449272201735042847896750118513585905685401688992526068599955461413057112482379446411340606900491249344316947591874454633177704847904538196792441870943987452496571815766221327315093144190415885001053245975586839595792003019532254124051961205488249013395711538689718054473110555565712315284968711359959033344693136603697632491963755507041967351701313443972607239784567541540629854583646111540762280191483162774262709998315269491268772408191819350107790604086581997507528308186010799334326203165549552433404459625223273397360877274561925397900623296573991671367825600133965452599109453022074341162224976925611160294766645904693089684686398550946401248008188981141223672598449333331769584502564808698223119804138963015423692302246574244910400570689703126409442682251435462079666666805429202969177289529649488101853141253155715688116684375521275673295070081373103626913141116416085703324225625786658185689353490334041043930858107898563148558280939338568597203666345923862310358490181703917051268886129550240502600485438648474162097937194395017743204326867532092511887377460885473847831304763112882575542287922047809581986757988748337301869100197653276038126628267316401075039101293035170286149513414623530881503846237348866284692637916813534906104448806411356947855012076257862512659746289063513072012533534303824668744081542435072208603448724293723380076847891414857623641488278088033327353250691397254647868164030034882812935925652442006452965170904956716351610528889672929823764069010426238026567485347480818158351880234500857502850188840678987869527913322160493030658857005937121174587602889059417396591907295462260970565163246619899982445101855174766152916485401687924055882486240972301200755841977010113722013721234613524802187496455424678401356339227733903231933737500857315696585688350524028444325395082336982405901828260581062981766813474930211504720886857270074383583799481061999091229303324803783025755075372677593776475138996213957592933695451531004576276556680339441156206815972958216706534319701791579550443220893123731869830007897858506938793302008224030412296572226121832931819262441825840623993615903230149389744573114767015382598044358151504923860261686397114682072059768859847412481313753018670166175804885133714003658687219663298509410686243961281743071054708126121589009621931932845294103712232725014636977542287549554940111817848665909516405890338245142660838867805979175613072322217101138760993611448865479924513484889441462772964863047266368698411666076098899318532477680517695819671270405359002280814328083047540901473263433364401943551679212650498076289880204364718301017309839345057314106764375312578981257009934904141175801461604168056822984695027799234229574568159453874109220584431854114885636957601943586447111122140763784369058459012667305964585725456640578728150057655869993985829122027104412013131665205899352914643608923760693486625813812205291826562899121167437242560723400079490840444865080488037795798590241325148406454389026192989683206523618197771741201180455448920127099750416614976201747186346823443714629468628892359311989146401090917545652487670112551066174491893684830083800429791019151677508750294878927733183926196478377334223764062484025574180683496406651406284465000970782638176553735256928550761441874543418667600392611764025850621855898797414428604321592019135123067521715946488809312356976656740778166265961591400770263898693407214968012257826897744687560605259295156193992111167021782330504644321027553567684131577596131786983893023344464532462737788681663621488411707302428947366714697058943442778737388371595374523514692885988826854531581981956737751341914917609303527537107278627222019543546476631884241290203612738018079779961292976455416311911583485340012172384644624378491634509564456605983718815787398096327514518894853026731644652406146264189260349914578514904375523240755012238325518518202444627936476599912498658774366783481955273610309006284435272808097797323181147191838467075107420978981321210452482913089245998158784284345700980059893531345181728851619380343829822684239682239985659316962188190850153127859884637617444421158431926961582899632298633102941191507330122167852065148042811369085597259510924893790099402987655693490003743322755277844859063345429601523492465924227955551073858967304562240916268535014991235647588028018915026702214484178876035568032193313898136612452431537212627563574605257088031765345064786777802816553657396980828172437597432225016865383653987887488677703209515506460285970269474381128686294171594301842233776739198849221189970177828213257181207523577502083144105009506219689084998991231613536607014973549764380571801080905889746394767498337739364064696526449854054513975310611054644418346123036659503072826665484813053649792246937884726261572223366857088762599449395381874830172225398224170921869379594666498921036487078749096373110934190177125158879338455547493424501320610201315132027632364152410003771297023355156948456667878913684931538215142237104606350400215782952704138722387372335984954463893752675965056914793875739732485384780262299841334236589683675563149591444731030132232384100521652026681611700746831762817944127929533775868708945759180998242918525278017115373529507006316864125860692702760324890815843416489358541338194396398055758511237204381793362541885432442903167554779538116617207896347366920947338119296558487683199826695866391929459399857701755779998760126774410091580354205780549321031130064142761647583830300040310175587977402617360115398284465456146925979807291445867662446707554928400131952250046119574756076618612546903672391911403372964662073468371410777119045466637642478244779409693503279543376571174976722410934657981975392645192114012566662904272887691732835507900079084084930963345225942349636792937884754545601631940479796126483859878195599898408722740736416418427452486148083442398089086268990218925096761104624502084492495223934001737333712565696120579368065340256405204025622700602974778318592391944682261033080586334438276377709252284345414908190931743657141978784421539695373160253996938378563143725811556770418390446030317565734691936062201270065550507285126126798689290547133298100701910608462773636787511230089937522148000525053891466311768917764644359318606412174799066014966255051498693917881727968534552217577697157709447297543565347324351637512679983314158893042900354146804330442101793976561329386417291766757306582442212611522004469560321352324890205975182397644441095945702718834116138963886212299185298366418663858676666586613197055998199736769042400388703698225817346719064906088321954772233440042400473842082477751050985877891730738975528208654194969478716232374342296410067967113053758109820317207709858164006765107529538929635552643177877453375541942916179410178291987274853781362501705547558974826481208696558985938962824315903413915210735467327917058464945164843185293595110805416128074111666951551731630340203831589070608653210903287511890581801467876245354276006997075826576133920163678964725191739283320796832368440624563856031492536564338137315951364721489284253687390978595647291362535030596062598988973934723217035694892060843603591788550763885375635654851883073305993439129847692817960631122351326674700130696028141599222180494862548546501915855336430642009742207250822571980725545168732384964040341765136474508160110093119947580300577444164299198704210680500840583290805897192049661888953926106869851405625174959349516140005719497112511260036473541799743290113819409466420488495627183528752117308997771264557584788361568662802771471716566114991404938359365326199123316567999584404032963456820356134742962325284760851263502934700271886610568797112764275013349432649167946691421463977747547848357228166386734475922389377489315711214661362015805871792884832894460741458865198393284295395768365236573443759851331067593669791137188893262791639530480440141361772762494254820210344983173888799580965682753565304969212655563441453086724555537096332175778458171827627535421214468663140634411607600291177106277487981226818035574012953453127747361537071968480883067059409626828449610149764151310064463856535241857425117814454055403295919530890164705194741056969941072769452040365984394850359244932495638167118685072891145511743185751646843761455826719153590052358034700476549502825502404512713008375225230931672532695747578991383714524815971969454305028674547853027672146182260604324662575208412102829803733353971472746346600106071002214842125173323082725382860323236886559460527364697993384746211306076171070923611896472206258345158355454848033858764462898214903199012623296594026530970205773554580826445397607444202731743800750866579713401603323830429689393762465993328022511888787076648781057989229308581619600711200063495498566370315784262226455948861783542575792266645805659910534555711682696989590822184635298546443235735744199617996694318057545509946607088427876754428579755366059547360010949932131491822899297696575901378869115075859640154255277375953828854360407806036525112875360282113131788777490644982502081220171793376310694152655251690541041566330026944509681133840419296986871564346794588784309282771887665447495580081468149567776690738300385212547612247836155786429994383747574531892779929770970358204353086886622353209682150117687995407013640905280700862362506122572620574445845722427822867084995896941291311058022789259987043217046843281541643895167463626728372827055580403011145352768796231522438564742280584909502669473113265209695374911830683890832301200891029079058287239831682338797336195799458174552269126412433044716487018953288957818796674183960820850985590131132955081592675785942949837651577160546266588098774250651051015534819656618726354397784609585084303773510478995150638807900049782989600461757434504850707767664244701175945953212104881377253789024432178005591410166448557037826969140578133537567908018857845647469660969859695367414432083460866973902056306364728521376106372982094151016849674432142553151616708425324979373248942600623153304642932626488127196027123509536961963843933834659798727461375036154350854603632110719157006132994745329834461411594251072804963985824410039355709568628535423501727100764582096772997758003365841237408535424856143314923689816208774299005333327989869488061593179305743841136386304809164789884155021155895734186375042545577593953273581189300117174793196140085125711144040147240167576661413000544091827507112167573333736269108109542772092828895515776597876038517811508481078502947796989497472937559438231654783561192994281751900675148203747880840632473176863112879220817460297622181418581142855774550189268821449663324284290261159657516918357904080357830626014948634197980136843023345636831243781253734714383204058868018412701236136450458509983767557670983223207123642994651759950563480261844629950864163549871169741907422255351045799641708453640373360773754902538826306691708381673441303977898058370934470014767647348209733915880868730583683393111751466835708180869909831250436427380587699312060559259755252339741919629339690162932744283199974820545849294144594464580578672528383136026451877990785469491941012924888272150293249643561622559228110125330711095305730603286406236417016892119607887576389265090675639362109413406904034574033516357100044371426284370798857336103658179812931714121925700172940923797261845114848227808100537174415906467420334521226924984374220804229962129277558868288607710057161584585878687046014533225145481628360571857318119592723815358770116153276020593015535494452072364616387131307255818572720063973575053019933630960788381284938777820508065363353678759632449910420437457898357930008517050782501867625861756146547933723702087404682868063712579043616529140607187804100968833263092747613265559365098250554757710589267896801995451446272556196858732122784380011828879996122300592162102628070153547502197273336193540790178342751493533722146752968843727552582758441206350449158780995365714702577577088542699564686054191869332417953999102880234798263707668643181923244943523365174337492318562168694132922410226626836831620059729634800170698392198290461378793826340385554808872101029763820822479721870662980234792513170730464811106534281682151807489293734932459218723764085063763717151742681447061211451863191870890793694293880017461886906498129683470335983431222716212879714394518511851010676251598520376137383317826537556384493331424217459844890669818622802989229593502701603335178124207156612455789630332698436024840473480971674726446906692167862605365306302892199464787245474070346654499535973903111756274765822282337266662157880004691398627716426984748825191245735108570024645717427799177755231674495413998882530952246829185766514003340655184159656140447806673913533877102531533043773887108380940527915595518854060612343956728078007324559293555244323114177236942187124122170030582493402430508949528177184278845037926267671454867475504815224557228898744071127132533436091538557617552371581128455554315812412435946236213294931313299496018405569906419548337880150417940025633538852409533441207125503389386784039231902706600486872621729052703102351844509568072322778495211614637777944004166798446466594559466764666960808662289365829671922439444908015068630507506911197528300605752594142211038333550224200381801190020643817118270373109968675448924888732408033453859833481404348715733118987413393220088838844662162102035665902890610186093366823738763422793017858602469876968471660144762988421196987820801555696840789380698767867468360803552778688124732858881118778629863395551634782567808117008023236871842439788180367358197772188863174125539224206670611799459629269931255430276701110375833412534403245160334567352404006965491790514102507298078035635209626162495556103786716187623425813543957352198565097723876066101115342303648709141369357475495121158015846259877022468858408467655075977466851818537766085297140701849500363476982779767414640294852219463462510971345054958551829838030469395230158948753350139566741653774318601963347058524250742302054759747348492691455827653837767018817356073356166447653107384864805609551830188838911963897817233457074961878552870090526262324310013204731946828474969194513006535304786767385066695856171484823471280147447464819954433963764764759033481696803205189471307512941086213210665305815879304114530553524307676859226720976655893876517041355908615628528357072883602067854751196060441062550552691239113327226720212552013348558934397271074815369529207988004502548648177424574085547676202878955532791376608776561728131280326382801814373488427080716705414002503632029943750700824058431747750794407328139367802661771602922294297140333212638179717602712407917906699030098989340329928359172209040928019956088951280662516553615540491164083960741960691468530741699154083171858674384122589661996791716061964773808934048289872871749272229284489063863892647860411558495029578542432846886087095907791239007276052733374326204134359053514344603184735481173516031905934264317930197129169011910320376098663649702962366761769784577844028395583432263056218722803892021612005628849460686918686591101030138668427090545240895469058576303762051876194396363037348866734006667479880064836188286732476321999583710981586681333940744291350499474553377300474106785270302480370304181815592980934710774188367835398621268348698493111072012199785411000571988907409948229607995029472325169761247778806405048650431740098238002803402823055331554040622444638437872117391677768779954381244402684662514847106001944472195235918723952429919630822215243775381381704015891236088612575106089254038010685175753395460710478837677027159077152894740572121221731828957154014708899854437880182501417024715269969767068373858923950743600837832130895262700312857202758334870477345356863929463096553548294992879449596504002831418202630093645503783199031142718851870889185123448298863022461870726517847177814557487293881299245629901810729794110218565082991066426485663025026868125021222002558452997435555203857653323428203100047506257417209515659582399674995661452240660342959384552651336682878895851598701115338737148657217484044701691699224952638478051594829923096664648095982912834425795296934647500671481508275449792146302007402769361099291611591499257539301685241030739204577270205339116754712626569610009594915477851904495995353375846622958150758053513274815740597678614570417565818435746150973509526273469591377367776561987520201987481994161734279279729479943587865188922065667201785002877012703784195283167176386827834149254082871054791301860340223823435430410062916638478948066587946127554798275983308144854780264337318053620577924601887161086712121907184892262987121553556363204970293204015012124375216296930130717938664043495311881000608919810623887753975266038924123689274762645125770452647816752554946334676636344998425479242641271541870688220383140534090291546275889386004152286651726438179223456368849019566801888841080682688938509883781761864997514982860827929165074551247457765022367802050125980298363469162727449863656277082696895536291727964758214618346688116193925928339711575501565633044173514415362275323409183142497249226881582098950265014240210533456843075672385258967034238861417301018300728883388415836296391528974706537765648361659197729121463448026712217001167948395946476700124492790282733390457845211618672258823736152540689986464780521877871630078201060505134400833342844994290079719206057163975690389309290430743972091395513623556735325068102292270149940341763977294700247032638127866868840720695728621287210633321106631992699550738911996839359354600100779372871197941965195928013884899353695356561482809931284344147779276336294733647662086373485092362595945811900741729828165658631094995191525209205333861747306003051825191124850318849851153313944144084915334155113863613511128317765582026653417414355733128734912615074993333264985755448664495642257496270087102542914450598103122110782307653747002609051113506648095238821756476347726158757922756360230487738169949223902181238245060703391214757446928445912029211989959217141474725741230072137384831740858204751148890343755209464481194881126228230315075122065601367144797350835532068687768405973166586918953673502197664471465375588430984313753488931084028617908617864252870048416350486173615096254102107931864217140616958296402354958617031018444959526407374852159092472476968737513501392018976993964056026576822614995346713141452878870208953137568896181560148503862795535873905551577188520231693371698264408889198391295486474467216465604791616413511591062328507497465676788209721967792049250264230605229312508438868388811387468502902531270219555026739913866118345234882247226266098049369246851981399848028897552612805376254957798184453187142342325790878258087235272330971348155802392259403294609209750679836688265792749464489582662426304152174899226643420079334613067633650550968371815007495677439128661444168005512361707732402770954527442517785013604197078387730225710076427570408925431873561114594830570739783702656603194003735492507866702297501669826283098290135016679337979356973080839773144989956037823290006674878308913596507636605587599157100203240265423074532536375217034593623942429135417933460539615559888828510135974506303568248881719089868329170202841904940998374198184841067678249041696062314146875185080922232208166235854748298352127477634137299192872252014188107947589317121880937137602859996438696366143921639402792316787135162284159173065934459090270912108712278355233469504529327251052344476521691720786731705256567188032367985751033231523072935626606383026499605384437775083712393166719079004853623800575941497530523924292762193117826210693647952401223133640259978609340519889333949420739249820939429308226886178145288018430673246371484921783646694820045220272848759974777800413544863979436049338620635125887035312495481581382842288402697949106347477605322951995643939461859544041149433661673930723715628089724377334742664746516416555157488525585966371253891854670900022790896203711419673240293905109569959399303871257956566691969765742365185263438051705242967154204196400495990683282139368155574179702823935682156437094424120947841195921186816181121231931837705944392512213291081758351920021453036489849713458909166935958084483997169568597425340166755202835062149364088987233514470193787881607800556101053342417609719702482662227875109494614274673779756978319960989102137948447095219537647021811306625270147787833007884730019513151931829754268686778939585876423873567179413258421986082679575616329996556704908367446229406167495698082221856684324374939230354337922970935494653084304795134067908639695626568454708248665130174620106287014166030749659252108986541682871947888888056158058128147053069220765938974345889858100924526541890227204821376087124036259248701865148039117087200052392644893932043810811295060521028185185980283927258367088520714037796950443950968807144962667871044244900493198160530557934500844108487724621328668304224139432936126609030133746097155039620254580465451329277610599339766083072809811793321985237606619671529033410393478585353042085843291305573102098147824548403826202733527189881692771818889115441644918824908806984680824370249428362780920052756142605901504805419652325031364800774679264106599058435765208622116009574295377923657266141054600430227989757394250623158507912457103650151005999155221426228019872094552969787015106234720196972658268433998582750049238362152746197539964435643598077076009697934534199304720180265592504033237031190794573201645693639593579058956990050153171706213931893381498649923595336121813910819257679403904804630847728048106330612880920109431385207350918406553969450002158259060627271885826089409210788842740906809446007194648775908534135066451342258187492421220605155753834930877660642656557796432791010988034623123738903708731647694201329702347018264700142520559652419242676681206160814564772746631931547204498836464879715790173560276154240218250090602845625551198292445481267699335569177746321396218722184893314653898478389080606112645415708496814808239768396799156615990402082479276196853920375342363687126636255846734849224351524676339756978648787325139086420296684753594742985197242557790448331430349151069926965374333544029473217976011568739278401531712911036095684267158716730158317433570457025088714823996105816635646442576107669147053230226328818329400561440917674366357986457441706116685318377944820766183446625164160046791594658876555557041819209479254875168365536330657661468564056953667182297069664305268153217510408199901537276034232159074180378572288369960661812967583006929291665142270011679877835092392782778323967592243207825489359341027099614748116292614938998390159822406460405747732316783912301796038658807012212262615968679441928447610394056704909404360021395100937353278187816126333660545885384057707373803602798542151702143912879589280997194847495252809105569386468309655282159965025073539816403742551892105355043354746400280881968636176120863539590041088903051556775258564689498857867453539753572084078583274901203107741855810129185717379282602140618528195710862965744634606048784587812942478937011775867895157953079500442042759254109328816467512960506252472424488730443404082771556083656929492912849831582642394940774401240161068342718677711250011645554220786572687507656914161585471069784902460908672402565664690092991709203447696638053862747976251780031278162941089057563612815972853425820894906576840046133610371126267642368246848172582088446913037042369868491726627842063965326214092931304950053658542599139228214968380443707395975319172494474465123856067663385399868528684361990287371349838743973386902391725111071634679956348683914933448818157234061908812331838341934351856501879128805193097949274892186708370111380598361676610477555615230479040468257100847978912500960975107314925269032620153722785477311680543686762820423212854898017625685405232234055368003740086085756257887784345022628845253736215378920727330637117738499076733336740918715345280391138820998134587697488787880037349272185616388370766869831437632456707525230879179431181577539162636454579926670128889831509082955775751398418119834943765078141756117547539701703549543195784398984333021320762548721607755416405905425305322088485864467559422182110614581409452359938321781528597070381021343190040906105312844419833753473734240712174625574014672683737874350119363311134190457039478136626813112139717342856526284250789628179534578104064131637328709660211702178230254162405012400880315487393808610143793481844641996031268943435411083756061124356145250224629526262994242321775054658747681318834303972432826701645199072520673299066471682612813401136744924034501658146888667350971904238821724219528302264034252618480360932298595432142844934916825097019699441390253307631618537796548738750217901782655203785218249731127281398136354781548284369644996866254208297930482734570826081175582856418853624890845595339514644095577701970897864018512866004329467230267492493242348022400074337454007496434626336513846384621450883045981180626591641812620233123106229630449826489816791998110617556052287880557737193192578459002207044619046203716271412227294900437531276689710830366851912901918082332475738330972627092432713237775290463457827732467593510420266703613392049341572972327885608553980940300482581965846640375112501783975755118222138173056091074627335934626320174863918435638386548906391161627246449546431525999431146027694210497816056265591058019120154342156422890587872078052795384215569604729287718538584697984265003979982342409884990376007964382431416850876322216745230982762791018973239575033004183399279049755309983437107748015297183385670733991086493526511668639543849595856083798653150725794032889707486437144566238749469855113600222590722455111236614070357439560230944656622125160865666184385881011044551615052708992528088143408024134613186423272001615475432710022725720078874018121231710736047872444108814164941480628116849118093866596435184996745146776618461308758272107196572244101839482744665304616542908619803574520546443908859038349142580243838305649993409121665017060769307032884003713682585414790736267640365329827943894189124824976328045864413153808503630113456706173660330704220565782545194475372640591441482044349936872857955725675432924399622646578837119635848928004196575050383168755083598253924534719564597853768570190965874685384701154288413352951958478038931337086458856643574816941644310646561461122457390436664941610862380328400616855765358770715212441582530810392372981910538965693049543471709969823126143221003492463090370507195329150437632374288677486785580196643820638635925759304687014692194759909445368683439514314965560531315697497840387376262101077420716538157358312441266904185994679303363041480477777195158037424924227662374046267962573372472557059467953197209036466857569291280344540876850214488188128976403084079872539670626601565720020003187463995188425575648631412805355906141811081837701982048010989238855604539013925985686683093246895443048238220239139873060965394866634745584059607267008134352465730507748601395415784416646532037245897859092068603250275154650864085910674141119730074454924143458192119587452141980799266000563920976108753010797188254511192126149016864297480403135075354509911913170339791400490816801910507689625952001123266862058983931142583506783702784001950701254727724425496472576257818377651520080820924013468037332409922180682946534752468229500128454692867175963153647312945884121923841721118256374269160841993184369218293481500368104935850558076225200309214337824020259179200405497648610234668489133384664668237137910090325867289618320334676119240461319680427352563393665292402483329789144398007304560585501442786776698615337291956572320999750941323773352610902488861014972291126475077614181230123798220488228105309075217897134887050662301100349483905405369723725254319476268553075825243863363199700137579534026104760028517788000651636627002756133615637931687887766363701430641350850983432805004847942685467108169490037724025581168756634365797078071240711831483811893512369879715607635381279219764088316904829071397359072747674660239271366627421865177775196633701379882918307515279640340465508760012420901876647813919063469000164369867753772709561418264337977582431096880055802597379787280750857801420327072712744167574627113526833755214754437257644266026665332653028143018429335967840561487004528336956702623491704654540363158547220126168979992928247318336796010286975051956177284096736647452557050622982756980028569633343841339419979810989530676371658994139302299130276870465564986949907212409011734356529071946048014996057617775541331302802826562753517713122904386121029187298075612457464419110941355551182761396780672091031719193684541707078112772676697352254733120489906350565138134561635373020389613227998286621244456983840679998310771644570972073461343089814395589704685251546458540800555979135036808843473762972670945277320533496867700291792691642215028599251726459899146059966711311291723849092815665688966580307779887245439374167943376729166268689554088307021868490694244478007211484080851307533308559238278380663199228335973467356532086451760224622494872293566809611267906454520529376257569781538866037945405054851736009258868697090114423723990283043509284639157370870764523217197932994459269764327616640915998279774356375316015334664626426614880527862407286288631248005213196760232255376049588613987239697129919986317245794777547908007879763902321311565936999956616043715497762257627771346254230994847938107137607839014919310139986147712474360728029508608313343713813132949994288307287584165243052815761914843804748876497664468676324417586201720473453442360128467455962911591410349982953393767566461495643158509207095474707278390078066669703132888163167422592182843919487984113991114763225220734261944658463319399560140147650323522021956689659401428492182327606640591389323409132702027134116169896349744518738575669366451135340025102700192981262954984801641182246824041027661337764749861022355415456040315074942315454791518016738837383748925095400562382203018270795171831732851009513039832021977507265038797673775325961608275946388001897163333297398795409411549668456202998701001169623987407219665546992011923636054590306720234202984396881810271498428919275872431230195977303687109176110270685307363366124734572552860875806547067419866056916904219280657328628982757928259412897694197761677517742073022275649329083951941196888698827048050662176413620633519500971809370947546018548162443146319919739655316370308686684340574714525633980398605979434165222660087889145727245195966741518143993392800085900981353187897810385800590938271457946927078512869914122467614255651288424925391691483475564902846559280139704788737818723502253633542162684529716525821762327683191984621874541921745720923821253551502447982760452372123921008075316120300195016121889851870120741899101063445882579548748717838718609173695505698225143200741978495724858084074810408270298589222980836164248322356001330638528296467134467739822390308846426251918922242578716621478901540668847664570467115216820461984840423911822426864437745511757576657910684525468628790598538876792592215330559170346407657852282170544362550133542647075740214734877972254468898452315116306663770243622289629086375922534325357538213729056624051827623821182420894892780166733931534479948022518943969314237979383760707978087903881472602123811123244874503586921836868159133809902326672749149589932676309856550252097978128500065058487485697976943200216898491829467683219599605674023899559774572821412862195992934374198049796500293924708099325383847572136475735275788455801579829682975988526461253217150602348211257297232139429995090410761154742514710554046805483423123634510393814527379221973760180137653391359276023308542642602422109702774423015079480899308396027085015012673404498622710446778237539673178667638257095229076898371973648714724135321270697404424513284855953306528599204710093682075027110689256541636964125860786572479472380779127345073060454249812216304572211440434098208998482639172473902331104716534493458703335680634534717312371437648635766335427311313101824817879096390266604864950007335470510276966067021883481925408000973974606534815551256895566361960668842431118299437729219527808941307450445910887049667435507791156115802033204448645193810319773021658145666476292274231728063997971619726393484446604497647437435810248764866760971718734540718063863536228187180845190939485821440718533028023331574983152963568813647710232877157322976627051170302904271959004739647446611524418960877178516548095869786850634246116012411423288342083307536406464256354054770803510693503217657009477497375923625367481534153271487662898646147257004080832773916422801203761884477140229969627342305051497476190926772063055011385280188866908428403591624885638718544824896812387316873275419392806931642027986440868946567874045803145731265760933792228535913757144593665875582381540942622909788047651919237432360006548111614528683555895062488278604511022382357399781652541250743832579881659452822213192293163295719949191637059649733562367026959663277876890653138636400972904529782875381794921423574987799311741802421729313545343211772256299577715047109456121792488241565197231452525494709287996925521817529186434489690381482753188944465211231508359525822983324149347211022043982335625429793816465507728182762719800508517949050547247377530902168666073037574625857048601590423480376613219052587355596572562143444834285253056302901707614990309403237665430681488985163905957448762973389970548254930022155397013148748384941777206267318462627882639290842122564501324414861988612557758422558194418145694201107958485160247611184271066501319411629607191628200204739040340185846863689830107147494589939495971600133521344331775906472681399840622342429082760903790342194415539609259017220247026965834356879433023424064351802996554572911818630360812281450282291148441794992519742486652682065156079357349425936614701732630189182476208648477594240318100888111000985640066062308987069662857297183092135476480897400795138049895033599316347546387141892515074297140920800328841126777736908965533522718725195629402558334830372365337563164425373836005975348558484530011519988940113797393908174222049272907020756297447431708313780101692873098532227495970500019135998318968735921593016529136343104690124643784064372476825964938955213791268249612085245219357349439062576471707658986715896597883386314964229510832876796015691544024881101806258798573324954438099560358823166054541369909232388299442230136493231760122436222019877301395312404509325235118554753877326033997806257803933770303830397780195908505967604757601155515464768526950185684425163551144335838916902594475884204283472352263198652481565764811993461442478740523080241788920964333896020713495417447372529133321841454087409478178934064618635975058355265736665591493258269995556745501480605438569501542163517452314270250090644891498416621524325261301950948243737708859698515446444158415941833447698542706339668576723968647070592845018316362349374039951406413632030163432180479331228669523426678926358411125103624705862640072597895323083945635695025402994107381805010368667646594179063065984643750915750517681601552082614150849746210528146550377209626970627224432469135573166916446718907730349437325742447080098761137186895555230804881287368770622520109088034884378974001902214196531365010391150158270649687825502777690872216515555546871905988444687166423716242415759019607100151765549922565990964618265130275342736249279982692144310508452893372187327523648310773434264185183794558634348956468110694761153559080143273734627621843642718536383031966528485239627545118067897478992399645974323808924801045515406070352348705219599616081799658430985156988884741626065124427442316105958636683571032992275698280645157086705280300525345538738459271766773129761955788389776808359797251071417615557722143586098117186469677737284130449334035422431462218839284620961825148146541600419956939290561546194416825554847406152695911966360652099163984863852494392982597920947345070031140868057187880248802945724068007861091303741291531872109842298375785174012182324933218334915908118226909406855928491847161394616771375983447154159951887539519448760535395080216698573878715151617775791030829892263103493128283883795140680680559333998974613086168757515316665600405165876276683694909147606791714860206162043441178971268829313039747820578272299103410168695042529658996005984865194691717624851555140449560873245082265540086307048278750051230951550958593525408297674087299776339987380926746434840520636975717150917462229223977720660377924029006536717990964039388394187741734174919909852737926530439497207912853549221663669036100400815187184612338592676651491165662967266463491802431516276285011128395386527091727415452486639888723546696584239888883195691258205968979112571827370767996295399181241358297817290021891788555544045415917009751179663913849892315589816783510844848564728497717707749313908211439519348741126215960218912187803065665970397678900423220240996831162319120159031953040829996034194883419620588199716598930837066542055782046397257571196617449056353392995745320197453096085396648758963953338165878566956346933786162385894376193603476787754108672284040739058234128303975000206039488015293868609154724279297314569652609215775311180134233859527834904217165816526650851203211842564873750356942607831250513186960286861865523258636252679255511897475093536528360387203893208071141552454681478505027065976326422333397256987173939800363670686405069894926833726033454426810418744484662595586079140173330932592249787338791039358486401903004488454688436832109287473328418335182353236035211090503429933769288881873000315248454478943169816371864523676230843478481142814113882515482945386296324780554354835768520109574657658232497256983489855349431024005163086465959810740664211199364117229012301047027560442294173652382886374480079999978837377262773362171836253687283997857741800468530801711112848990296583506676290059130987199556841283367442426334338796655389975159019114593265571350098262341718189068485540135821495909157189584740559414697340298593316732231250676765427815857990444618913017052592536484729675666341130874941875295559735095735431294913776217041407926412198186054294763851210825662366034540234560363106550627027872998284949706095921922971829755667296011235967544414973499673738298047955971911943944947348056080617482273372314735997651635185410222539192235147170181666724484391158786240386279093232497762296395641759577394669143846337779829107670988015433848564021440579369827580406681628692920674925445935502303569674727356711464301880766590567570403395858157329265192868918319042666169933936776774187625412017697948362211692063738767095519487170552541462005014973523054814770414416445990831771657188972364291944191051565340126132710588277097007019865877951575450351568506838113990421299358759077142241803757383881687762573869467691358464142536701754431056740363513233683581487753799140357772413230395272295220079529242075279487650588534947415530033876621491592976839259632589303923371862794807720899833916446149672616511244624782551501954488974583121359461672277760676387657704447627971123162324255236750814957300010757772858172927227607608124993785487186690427596721130520042271489688360055527152245552060514006362800219277952520334022130169658468546941018923201634277963467312234971328331353300767336371075456015576879889458192280131789965255585747795668222336649154234805644113755317568143817790899828344680850804352914196433147115058245436984565307142837215893638854175397836388121474928803469163155926971633000293919489061555386966906440946880452027746877010012627115671113750448927709697770467278345719704833464857959693421956775441972390077926234374245176351965009573878492712462273096220596096832586302870579563353557623042605598356585317526130583532420098357172794963224282841064619331667830571139329980995052958946615644299597391838728015643678061589211356458960415926068502709942467631274166756324383348157698718202392549900296175038287104017691649031262434066634328570067868813733238071403240002325315966734253789900382257252904423786364785840584343557513828597959453187680664813167849431357706313434198450036779972732936719045190895726564137913755589776982290137854503375914421537433190138473394414732072211962627648983268468443457921035085565802966530865256597321356155857954943027390629102494858383629119347259164550484800566374359362760763485361180917240596574513768512460641585026611102300958541353117896952531918460763705693033629353300647697328980646610868462305826340054390024157320006186711016967258401271866720312834198708866478496826884050086018304284625761775137061630343855513440063095064705152611092090422779719435866624201377110685140879362927909510300109760978117861953474717702394701856194560251270337723616459860922339376645740995037561176077797665969581693303390315316954811147453109417410024236457192128451864186565560266015720033002303450943970617311230697142156557542329681982186471733006914158051887218465937329963248870157475562378062271350429469942890440604044558352698620319007052421654138775946000412556707152458307589639154732960851737348145417497654047018677682062960161737230008384919547008907936012079112217307861157242047877159501945615757620780330206558599859757552222210564160817868621845941775294103184581030205414481949085878988635776618276610816841707279036777311334381623975784650445117512612377453231417650760740102185388013563743618133617783668285884619469880226415568149785457691252763025123484345981035800015049692368837054624018814694139045859869986992027631647209483642494108922425830874168968209033346152318715696880909659376612198262221434695428761215141327709477022166550354934835287754705963492163013956054941839917646340171598132656532026790089830747930923156829764461625462594919025168605209401730128295705542320373713044671099468809267445864358105114431907789501818387392802263652465028492561415801250958568713312944767712592240570626547563187057884338821266944593541362917776125752055573332329242659836587874518696751239593979768877078741655178843238902245922930974228738036392426079278262981552453043188679303804906396605570456078431838592911158549156919920245501104965986205620487207839299593382882563599296534194007885731482931978409886267028589338134401437042366731179305578082595684148977508051667538172270455823307640083878657409638030152693044038663271412834147965420025108894530887303561559409046302799801003930747653670408845474771122001714033593184945042330223119788697325828675080944831688370848339219560252999134467230635782116751119462347874749675263213979862133533617112959037394654522703291875031623237176167074148759605160256378756507452027752761354135450726697116009786048474512508964867614295373334693925760108954709190675587059482426305080255046448624710880557035797138958951834589483719079008241038365570002824334947699501929038203971489651879452451646284769915398081179653902892775867559855946633629623893192428135247525815615517269844860801378559543074873422994722706109490350415261540890994923810326216395773658387470239308824102588561284966203330536983441977400685411307443560056863122320524914599890199606250123366208613892259991247407642603790337153704667596472369770859252228622290535398603396586074737441260422135585438210232745175194364581018089069718703940284535605697617353609391873922190124250500539957876504312748075958680759146381194779409510643295427427341004110967100943416787855677697303709645189063889274366911466881040702817862380955065941477222969259787347272287423861908244464393478566039329131985930008730634866717234515774713830871423737959554253333939976930918456759564761018885560206668799650374492328168284521540340475921469803102469938567023319883159405560957653429322438509177419017327359531604741836468241226302272569872393149409509879730196113689098588150495246679787417236706864724751863276414958020365929290340330565687615815446137884364382548189062161525318090488842357203261927796084892867467366139463827567749245736907000467023733116973619731931048849616090387642823261789033610723726223776825789461967333288999817469487401739909998414507555976165559572641710613557554855772749640897269641427840522054889349486862295004261233545029958931815113235593797750004840848064751537127108930538497168071262320959807352112541890091992929486778716971248764819457810130549823803924904569943081494286056278679131797632752702179609665798145542585153637978856153056764298489261808855865346143143630306783914480535693148323166820649241166651371491952982016280975106218426327839458254398916556814128257125651635719723146190387768995808471746843318862928596245828226692015991164324606874032016714579608921204201087192149988418062626884401980388288190930602574940065927866860795038363733725330386666706916126006308154180134084567539146336394560191208941570688300657377308962028196651158471316009240645975489023408948579574623126835947781920233398930828108057476079886834491875647724514278972823454592787537571268523848112844041507339803264266056018852856011782148259701926211198723554516932745440439837020579003184938964607748722973022832960743024762578302900180966162565829913752159746618063047943303033657281206700894602413885924189188894168573769282709482062368602395736458663095721111099168947288188991237086091627511725310082536686042292157686751995259554433982810364695989997733827087890117597880895094635286061912551507165784193758715861906952246669608481509987094366655724890215280747390186392679745691752993052076716860744851047686965709483722849595021489779239062357071421367249584128717234030967195980304291571512978564538768247719191172305040883789208537032349286591816367525264115285808911774848453324457987593108671917983585639100895097600678333489498423428812146894017113610618837240357215156040278791838888761196344095639333116189722329813256998868038111236399198712175588381520402051945899819870662438619395378296808804075258206746235717802393499120948908098199089434772485550865933644806155981644940349581844422897770059159461242134574590043288152406369282973216701671863134230955244271965623078518866143829844378274080046748529384629924466839139046495391932596754039103251669718949585728258209493754246994995680790790403116339610273855238503557036841946619552382471861214047328234251181702368361395643630135334361584953252865945075776636687066953106067480626248381571303026055458647227687499036372889604920504068097116597299546254849383483079898759635389859196191738921796454995766582951886421353995826449358998678805051066021317896331943533654539633534917291088243658687673724708203196161616957457017357299871838994421107684467399115881871304371748730318169599525290597847925355080658336459485741488738643369989018832067567375385394627582463479259507680043108559646729782483223824058831116408075257472753310577752677964638435313464703975534241690135349864794317169936102882962108046928980397411944703175495571407766257250482854500966143473802331706570636800741135268709678868271741410907477368733937829887455740683661869576051171101765458846743502494230692455692805183158065911617185886302464178928331334625577894972962867862758881912747071286294463399063767965470190465972927874094508186611236798859088054537609007624810336556200325853522862977042974581425804532810770568621976802445957099224185065965077073961306169258467076438580046852586263010773763542732780539541476692510632660952810143644730893165460058192751924514856479725155955325401108939868833860457169419829018883130968474213324239234638257621787820274517964757161687855386913031888613461205016240307968945913249434013658763125667181918573426188146996614982296399403322650756943667068934986575430329373461434553528460412598159660046086199280994040045768597940390989768807672020879525806648472549633649239989570116072587311739502572660181833768766582841418611740861854798224022895140738270793261808513994745979500378547546976443295870482222713930686176358822230616423091440650433676396281917684403117660296408836142084129884575964932470310320128941996245466371093567422726089863057040558198446886198286617696128196054041170753981465755076916493710376322011905419908779413812390335450801297095588652980038914890868156807140904624608416328155444317734106461463628010697581834985909849259412120413103023928019944460815736767832306300496258360441280164404286540649112362052740978155763831916084992941084387947732588006953380222524802132561549557529339652859404650616937192260303387201933586244199491193774526111288964195645882957737037884064021652339621122725158338640539422037902800297565021051473926337484445554777156872628255140352246279972473064631215640659648870150533495034041345088587804777238673249186479998700218326293604185784767345136381693983174972472965430336692061146884838458218509341139274788252401772997197461210898357289153307233611699586949757176110591044639629043515350095851744601235459452620706855292428370446600879996070528906469499179200183594546001565004362839236282675573078459716254409826373366303465402055939333404998266196582757918113839685248404327503061927472816293236012246863920878759293128174639498745942714146436689833234690635652476196803128565543895722540273557297284987108470066706454081637729086074832340694901411922633841817785301379061981339629720816838780469488876647755422414139410871717547206630781263326752835656989920865506450638978606272727712660760046221832807687528759427253302203036949677532622300034653153987627702533565709409690791947834632753933822957295900803584109312212460331774317960348362626190512335965929060095138563848763906003449399787366772096058284856751340916850489687635492274081250511236890739848027502801172763790347937637476920947354426887557701863635161029926171306967080739331361914704833358324731426806484199445204853886679907101404004908052302271891721980239273283950443368454484733152348193924115972034967714470988429136318369475135284892943041615378121106280291761155338301810949412857528545999961406416064035169030591599165162422912954185418449767189168493362567304361361186569683829066453588567010491781417618084877636714564103842374514596535862688180108836012661046877092974683057644695657910138589044072840926747982032405086830773222903490448776542735841343479939572302826988940105191523468224447477593414124763580044811037842616134261498825088379596708414118746658053737191157725243576480809121186654847757145113990304327321837153953424581040799845683738164681181592829655005164922826283046440071003991022837866883758962904007005304066730222341087964373283061686307322320241690948559381024243000520837731109870817402450637249743247769120392305483132415062022109238878526266496381202169854807911125394828091550277007970852460860372892982863326518979483265045196169863869851627686834692462236451957978602904709792254328315010996260889196570882331019537867978006175708408726294510345997768673395102263732709202836405071461355161640007252438337734210910165957587779439512710966969209627456688207908392228651819927556369024165541255508494910833934630863573738498263787934852462411487699839694072334955377995690140632371596145004639780229664484327953314329463827913687173194133659208868408506163661180175104425308417606089453176453967941533338846995660333634589390995524076882471742787399290854461472381455279621840214592344030254190259931927217660943752161786182839369025233928941940786460578025763319424641720930347956442064352070522616120239138158459685082484531886971057126634339728687098679164243804993935621995718482355678667467273966438453687995263011073845598699077132366870759855320132196187447163608177158080482522086537475395440750530288478507965671947073608875438174122355433810070012022583367639412759363358760298933699700448486914436177262737900216309021607784826913338777736738525156833642797300175244195960676428516968879476827303338126275345387558928997528350246261162512645975682453786036440379803388298960987287975104583307061503682161145899133882341518370355665168144821110880062325094159251784336851226606772381811021742327340350396489892656117542148389449098311589889592707003311464318657886193524101438530649557986342512008115621709826589132903479988501298728921291777335797753194734270546232479940057764114868819685941967004006214983990329601046804481889204123225156851219636093423650489577240793705729760225552782367840235161607831961657858081949632779977576144509793594281681450490427294941076143482944903478616735418909096531454292070129696312508595411833671893581625281371288499142820122625928808382384121323961670502811045334789976392165122177607572925295279041722992617532400443869609416162137142659350779151571557519798968574377286677303439503899428056274693509452055795264912327711804208344177143608960447038487663661831743240741896440272686633929885051419592353233779400506691879951799620806202313499608457976410892906880775802797099144900699436933877412396388528756688758658659281140584275901273796520541955809192944547440162397834945816656701843888384468704273074655726360403904854750955220513935676102735218788099089660867299591938299714318716832375072379031237425952748563608846239395104269404637918720164621235558938355513421532668275137500113651456587370485331913817822367051001854037220793205065597527506045880662999880262490608927865749995039598031952611309462130464828274317559156931322555418430332452649884232077632894156882910960283774956969365802248922164748951942449277012226326033374565793708183682068805911190418227711455593551413636022352754586737802931097443287457693249049096789186859007054701621137122929858285821317701025860795905021035098473224774901447567218084062619729841131861088577827466609866198328229605139401804480879557287234754328122731992878325092352156672411065322471349487043633080461558982055544014073123116221508393815332818404161474537209409382585904144836748500837432928691638128446783394474482184500436712117754017068735232868472583673252372439182049144334361336710103135009389031730323646963478870654813928906365363581804859908283350883027867577983669900050167728987648420950501150045630696743077928705108875174981916186479788595449457631456132954362651775907808328480856327099020736011239446366570082742842847052320419271898349827326426071324604101414507847953990415794527739223471233323577370980708890025340530857287695102526411508327181566312799181508126589335790964307604138665447516393503702704244197931999148352284990309001301976738582834520135350425864787742708972800179641809735796572421945749320561204612254533441156734231096304539594166424251371889707115610538018226974461212421464177896249294287790571466275269068695939415288237085413369473092983679128894976910203752049514137708603205509313793164643551889224288159947313236492948147906256284265775115532201844748909943243576431467281961763079138072809360304616449937725496051513280534892991135704932041886555921293815473737375854429317500292688240980994139063174178247195200428236731926909049765012488134696928922920217705818447281500072050609794221874495360746077934086332799888036187665731794948838562625928804068555119358154803221332285601511704733287772980665247538311837472560792585036820718868786339476740997257703649710684809311106454484220596289088576403220147056609193418496079105300273153481611699621201750343803156118251971054296200616707665326878479539507212506225999805631391238394893946676990314978159303612059708177031166899062255308787045050604876667246359516776081581239760804685492975320116654906183974385963429101831879235041089860898232523112605375054296945203311223749792393700497525071361720347183654259587794959026963068865802645030228823157612581242108780123196143126975005702971401408108354271809899565814222018811884621972119134899290460882547488083821322036095367850986273713144106929441474355906960319599529186926823872391738225389637864698411556266640304890623124099615316043680011837956857794575988295118096240787285826148468072041749938015843559527991959535372193043407700332736647748128405534405510535866533966730297585494645407990601331143980639873690735918809246112689095291868887221397958427110836403550759271006097699065176809117793170776634457234607141784940078354230795735162330950487245778848819517958088353383281951095131414081566358482670748053262804818458201528321742497191463979952532216270048842593713549121853082170092477850875757127285367355780401620581817284837040370677392377296212940968336499030329017689939544171459939834888055069233665356386324011740523007732404632675855004669433954292350277031725849102863788492344983221051731283265578923670845778761443529901854698364223253590240689178864276669788534602397957707594305301579669513569970762894008597509867615504068594829358341255751877488284734147216789375353716036832065804075969621687509991391692444761743067701453095887078994802534461089431651109277599121671862785378297524710266166996521205106556447486421045538387803420435260726759317857730503380998422403243776773492764117394618835167331367044937904861255092480956441100472924500121537960573298943189752615964761883447091494567612738657518973520879336168086627645641773899931220784446956927046724156767076640135760921810680419234382472090082883605630050301273294612516052187929888432367900080677064217342241121643427394182310597801463919059222467074971997677592612899758764300826105119021355793526297222149126677631878317462177848132839260846413436949815414442321946009488609606962042248254253978751527360995285221403109565476337658746225256015738101260728123819941733838033797723555576792968510896621477841637568137236885696180404366774273841475705463659223954134023881510296389573037845675549612806250386524280020249017200385773693615205507797140145940462119224050863510641041153805005811932943046505611096839684840360364981178969720705391007976507027145287136458338854653472657929194370445308309971089934433403150801499764882271637393529486494001696568842440802931117878261431090155168500239026089612936089786933916334800626226382319708416990354097994871978979969716801358773392733179604399545549499079060052275547482144828577007322013072603964380812014475817006671650231123874885875590561158723768436470522354978467644215814760709530223651944459019276627556801915838345092831883491508509431058859880141352838171888759596702188339074236837252258877529230618063695550342690216516911028674667590126935539328900437165382730920734417817747501183586820315070292422177260064518983348671356488415483282175294877586710203617567873959252157966350834692026379635774762673531412495247766103979018143411503890807402296862871483488800839932298909227873352757869454106981580094156873266641623772070219400255520113554803514502730922681094838888836127629442557790166790531274243534911357940340718618314584997866066512477841598422932091929253050556664634856227247466747372506017773120860049736756607290474574003424906034717588883496864954552463544051719784715412584744355701872580938381425092259998119576409742175015017663322754934377308562255118518172463289824893079743006144644945390436400597908576255242538774114991924832936693276885151479614439394561294393552763232841613764315446092427084348867607312619534820472824049613095844836740940187134091016561077201450207517229698518743037612241917510932837577526019644148890441639954811159993251404257876557239476560935262989083029919337445277765530779650226103744939977178238479032269328283412042322632073514111054706211906890865835296704293053306875003910605022353510735765241790172022878292802616166725683586661198160946984663410789011745655286396646089163093504204457543764882072264067943481587699965739012861760580404701056855657902186481013215648994725243561679349297480127667433649671984050168023292188051869680121288389379363888089706791270302076079286448586669234173200612841264273237340407174361351224399571407058232252735054280144520685208134094201820816428888735331227543874537328151170800979659492449292363171808114164617973617530784988217134294051253364218411635752159254380518027594269398158353051079568119345699039702280591063186483689052455008423634932448461725500274486557891497826387699908781835358979049647819796955775509909601160865030136551811905540558509700227084370751598121163257602308880007793533852064889007686256971501847825225267167616387188643039100079142947388732006668452621480173655783182424546428181288176636981363264057861475039628781329245849752756405297277363171456092786683798092711009755080800302510420364293128353430529566305996759953397399647979134533099502151805316395539569083542361640152420857310978782760298355471802443533429121483960740712971291607078996375764723928801128858815818000122655838256664558000837968789765404469568281541628366763614473406038931948750203503892577608981692656647218459246953184098590808211672633736890786544814120415592108864526875640180644977121716218623103975255071151989096500193654785484695913637483603443513465469713448379467100162894396824165671664610475973301998404884014099832231000865577986198506819328283675293392219923609673519893299205494839862545006030115019807725331130228859025848699955673368428490795904332017977332666608615223162117577764249109365401906235411749296200698918874676810547816733123576059594266428464144262262044159140726427418546610058982764087635503779435052737351617354521626739314340453376746760878412327759263801605875388434949202027764251995686877710119886817615326378702970630821202445487235002289200687438188301573975373437820641152712830927225909993630804097108593730838226168346140993223556844428391391196681711191215972582040087473817019824805484663976285746854852774855746520113245460965857778365567370286588465700566792623225375743813984282937369040549445676585240072898471048992219721607616095858662643788103253780575513160726050534942031655286514349873583006323625642588251872843619843027734200381089119804666526263983256138591023099162452210880299266694894179474954835949803010454893995123559699936588155799003628068817975572156415276329210911818637644314046391693135428164572968166244379463071109706687038852268144246801096287784132283027368737873792479578324343359749299334266514895114072480918073745671688282426716160149241565343408755993294248001764237429781264641093016917495308143465797006770166674338685135531494850161158258450053778170446524759769810041103071605411849541446682866782119792958236109210012222494059124499679649463356161544669889218235092933584030640253887707257843589250227970764785007535964541401779239330741487366200712339150273443505233139871159900844611698098781412864867630579393302236669724276902878587252135063259631749539744111696023040158333185655623522689795320855400556892055936590577982268906596439061519016106345887064993665601781290959794963521998650456017920661787695448778315361130554891614481649458889724876072293232237115280804551072350049037408453077361863829672421765848997334450647888331351960662672671033100652638248095518456389403527905563978787497306990818397121314159745097428303927471662765628562933947320062144561838201717978761498284849006768639569485595812524224172803410060602690324889717054030462026360285012745515652212990452716680944998940296119078988860842592945529774649678105844958288272153417894711827161595689271201535695833690879276068706276891964519266615231787864800102428804509623570819912677949763482056061040015146714757160384896233578848775315040217412659185297026674037760342850688535581785101854417114578193718582903919109124829223100011832578853359301219350695728694544862390903882437235402345661852809032293428080129611649864745812095784417955609602365756581377308950116261789092241140037887916433011527517272705482549040330908244511853317723534998858325365070450371896149797797053573487435306110468803475102322431320115052957070146684666991737256124061770392721939302891555226628690591928119221154654474545559076380056453416255554045952788557600791145509159914328870388914502276689135294638171049945322343272134936691321731937971329718689316462934919819782789420391789492460470948373362914445245487631155729691882404428848743292398995447891612118036600267865042920902678705561551382376430270601942936938827480469517709298438097318183683072276897240186307359550644426460921641030158906121660659401911153464214582404886096127643605822791719069612942115341667976711759776358267569595318773956199794035888896039770370730557932123791342579082321436885632277433855919842570104973874246993419486578840776127919094972314239950937512911895547696703103458316869738102927564254320248248959580861780383847214189351736687459699818431418102208751075101569254921457849141636937556774987902319770215303778955114205643744181363405014291307270862379457291092414569190674582240298786506132535475766211857770055608588266374875414050805543811403158562331442789115145141439472341448952399324237913273249574702681165670936709749474238537560903252987021352592173884240929154441404213048321689668374414628934096452238552183402415033200116356237308365441120894017556121317567095107006770144524117320740579229507893007474316172166609996643309583954293416825349831332166329786327480186951039344349289917296312817905860200448664478554105984410116066487491776387845628674728377791564300067951905928677660898181309146341387717083498644729164121242720995078964925886921625815687470761976491930551284074157395388678031242923576604285221019933447191184016797462273973061412457545795037485996632441315552639794611160889126834857313679432838943006301073933067243185026003013430056536998081636832435107086552468513712966484566723337250727243873419509232150025550227130738643111048123228417187469235133386458826592483237111346057334003509299009736569744497676940603206843261345533061562955128164299246216531114168770462941910095616302074808630232394684429234337082707106128820940199305623566712318370262291641036318197328873717815401847395152636246833149273264841138559775735781980402290442444233874429690903481162058571204753331803910026862882342096500741021473689325876648782725151795001601821089469184171103064874523486413330718830396374113319475924533225035217745286433943954665341791979207293561086909158992183583095187921347211792241506964297666116653496491019050559451864585891584621043149113031257847175816899157670299817085957786893213703888339962757209907171441598767180728002451996791204602859116679736338917525977322847989355263588691812114787732740919903116566786563197326413725604265850667408633354435443991234502219519291988349857574179456068402493329759321207576105277219712128456720157804842113046306386812853983906688238046930001439310807465302928544373424846244860776957069595775304475873009514587267357401698255447409655918132172584982191937884093714486728826361705206241458574248449207618990051843875548407626554327240371702600772166315237763710341493357826923264693763423792948501052554237945800533580017847392455029151794534336313352982013743295784498065297481858187371960609208396684874773125016922543836597765314934501748233848169926445383374391731414068889133959070244302080831112058954277504068358330027685872367034192981375265303547935235067071318182552722752114968727293666315556270200302014341660033388848712116861051135195414951850304454266728976023681927641863821059919706116272097004652502887265339885984725122750759602350431670145033557739967305267463844554392172319933083302886995267289143840928619864489966109325707235484100932494975732883987928175537119151258211030636336169089603565879805352043489311672388475478896518359141283457294236973565095231897900135964034639294362584853720148237487302086773829416807459517028592015269503804228543132474557938824807491826115717082827992674643065253281921105486053283976605380798938296259987963766889609477363427585972165405769272170576587052480961679753438588230848485669266809495085032599020848076116087405787298356072491179127853428383210007867719562184309715330799358992288903011540461101821001228945792449355427987517795638130943225939466905039570869448641837906720868182430768113073798948597069757491100072494896874148401203664494250131972289307796727623108474258305612542039345322229399129546969248368379798377200314266519433093747060817818181870244126808304927794541669739995011125899213655149264798859351068679521063817400530449479084467316668738959844448969319646213757253947884397883086892892241641691956956035846801433392495206567600529357101009833262303305672204896471694906498294794040691347225645497686928650596202402500685434334489968376565361857537100159031245765046563622366731535483249215760313022839612171160600159352719925203299293729055827825610957976673283645664270049165493328758214455528286361366193552616004353861408055354570734685188115906878424897137227709780288409778346103740727381916441666068195807508089146090410652209389802982805103653545002923251544315538157525165563170964574241335055134730634748551938478412316695239071268004129941188839002238733525555178874270495831487376528534654321557812646419373233354184814266366337766207624076232531775485821059856298917300277525087492095612048836883297350844706956112459869970305448483091217318493108743694733450707650880163882380626649074776214846620608544587811389452473413903999211058990271341298913704683684617564063045013616682882112069290525530284942557513189659890561830460816920277306613170095879247928132111486458995335099955293248403286776599293209558431066157244579674446984038835104948734656162051678889264703000387691969734101332282595907387706894673544831425127746095659069466875131403183819646066322347689437607885812370576725510751106137572456577362541552481282376628227105720014104728177589140347591243383956323735421502895457517352315842697774776234075754809509184635595174100328581827856655927668773601068817476149047190025586012123525020259930933184861337983636532266232706119834279460546683805621100454950914334789841789313184230823079790050346510701692695635878846641600541372485932093884904161645361280837306956004524317619007128812782460180446639726320956908302172277944917938156335303524340357252728774672145748479721853529240852608474954670897179456074639335490527362388206823360566815590580402222943558896199323867367441631754499526868294156018949704762125243481843740155773840975171502442068058169366042542175436676643284158436429425866559066410883468145096772988291309156153913059383773176734507203379877042930042431337729542684979610895874346302305099957319778045424252463499655669754413494593793891831783634058774677132927305920484523727057675956341711995350379239492972056634104888594759168565385153489658141587903763524889648301299815551521916680688024185009340374129242599077141049894489045920365441111909592475159943471310930514329094141991163249178165913814084962732875595178646489063891398279821423230843499805499106499405709996232499356959713207362771330148656825964858978934178748023679804804269243268560340567014743852599990492311377734146962176172637310272457571598858480457481757523825184127536413009056258127168352464008219666555239301198614876123920397630637087675367655567852014816103464560486464973898634030071597523076830180154450302360803426680378365092646709153255475768440357090823030317914136360387277418645892653363073305280345660754034659192557176610711081040954611103684717306133646717877746310099602839409954945232675299782718035468298868246198691183846988810895848640110641623545308691240892817986654027761142122403582571023953896927504319648027620378327750664289921216177756724565157978015872083625157737457607332499100083122895259054614404415490667651993854474468912686793031131772474481798669224569511517063620207596936606329118297166184335764752411397901022511542428169085280222504509817678678035589315342018498555242847993582431509989169657218814222839708425393134240771090127838438319338311056507801228596860958957411192988567182833963417716051011216159748534212033600051705636673306352729237954630884301154062465887022495811505385042961321004377761148070569302868537746951989412801900864050066626515612322735939415945665527617305745744075979110264561138742349001196868268854484960683166901492154149040120741983141074379417994431509825909915317844303181726384743365605201036454463385015670857331377634364134933153893382671929726267218611741671032863185877532692239349501239786621127671602614083401158460511995556076565549202634606624101835524074658096121924011953205730707732508424163014917246849150219407384353176130112899470541242578674630927723206530600874384029943986136055891254098695922033166723410348815043414467073610901808523952195553217948245909520814665487640302528184354149014067309720414229746692602107182221191858982997455595299152990278488881450903856228264693792275047994217323621272185847240780788339456455006870430853095449864694504134703744022014432108778924827970710736601109749897306040560463181563207413407501709376991437484581268635443391888807242192314953134204893634750775422046263070035667642820764048957952181825921755542427799919270998548613876698018940671117788084679590659085111191005160601702384000157065201392656626006431773323689780273111296410112521072728838713860892190595733708424290557829378664360734592709617542257144911933248841576004538569936325880058451038447888391454920569000712514623044576483106116381716547503209433795100384212551454824614949905320807308856117600213663008424933404363140979636066456352853053229020413864331774808026986554437426090323797366435558921423418676198047597853833360538255876841039005168503139371756236585131511780895893833593773492562314570908817736978074637351692665813020462233479838466574083473813543457045321034791712816847357331499750978572290142955486935408097246714350158940299005359760340102792940578984658472966635181247992445453544399703485178865723758402474956311669767772139130680496040498091455433193322957516656692741101467597620167992615737164214111016992045757095878528760394403118521450696382055039384954045867482820437371118760320611184700972165226369304186050084155897921730038224067763038307685250898633095549645112612849638106765057258024028329523016323998421235499142673876366317601090288030113140294640366949224264569776084547968379716166841428575676012531604574080202036699205951301057953906561195687284310170739384055077101172645046262076929882739904586035732525245376664247229073611949425896114831791899104136727321374495213976920406662947293644349243283624631357970963134413857039457706235361976995661119547016453059610440241087060838022445155527454162290407212936420168406517510952859883810042373945666530274186584304495671078508607837399258719979571334418645780929050560080387773017950781629647732219193696946082501403325415698821287138304751039859346723003597739395760201465894921470488073931056797044510129050836127834788348700956928010593395458034421849173366623639054929115706603392071327404549624656842625464041995433984717999310110053751805391528285593234229154359984866705703308107465809150444242424735112598780440040367785105023697193717655333125048473232032038981340136947681367798547524484929788097198580962810082325261542460995556862092178110393857660398234106327487178936508057997526750617032904013693062508524792958207159446598643955005343571641243858476464513959392191663019661027671279903532855281475257177033360845693585305710428108524831914166046943425801855426454017692610363253251599115092862681502998077806396712795645441964482589217236460710018937727746676531781036722428180527170125089201311293893406459314782651304779244332768552741716056954897636691630166155742257211162542594634773648515949121270648827786488512105125147434986611527513453359586020975078551710934349337313956909883416465778887742538277784486281771509992694587438143318498113501374723676846921040033922692226516047630652639665371067910458681084409023853284468677314414513356074950348727374919167995270669335836687047708076893248122187532949941552401488265911590688811565198188993610013995587953889023038937274590377839422403213890281044527889846234303938698866839486135188276634472087480841569605727774645161239823836767834854925100569129179071477270544124594500903894616389115537719665166614184881429539867999231365853576146977649297863793916333313570609858088024855032231932541692644573451834029459609500853298535046336754304350032070571614196100705789830882635184071997550329115191241626339953466918573994244408361782284641284635314797324561329385790146261674552814968231383274606166238767764439583259304057777597404571970861358091610655056788713756617471117853736175082965429482137083393726566290831559662218479971206258986301475160703812532965155275621961047149412906771834362413597079034318497875764779129292205432875229557506520160856340803184557214368429397038597057716600030843706701535623162553449030799027614584385301002804132281401638392057732019926040442616703423069178872483567267686153535264862959692686716420680345325273654968912012734236155305919786528853426472840609292141587290747259184704551621172269748821007150276627726570473839037602262913456460232296379014677168935786743929613474541472098264072149213598969991067272252971376990244028498026397283331851128758501351327905058907354279207256734634482887504368337248955621409696242285560796837082826898377507206551914729390615603858150297444529101809856864024707561754883133797939386565405253211687932894098068658423656485074299823793815307165390175716779103842225392236054733647477679086769782885617888432294026668222676010585357988108738717182735805505119881313072514651279731375200120516237360884591896907107360232277026400013913891877227619979951717974618803563107395070949222163961212060542839309985532642881439774400157332555888740418659862229908454930573575210915537568032088849076348132825432939966551424041573610107673645554862246435966586885826097494126361465982950543991486814047842556041432440878590783694488085438493287881502008392454115883618156454792988659659701488750126874180645771437937127827792374951103799473208589528173241748837226134366079701702088776650150906201891485171533457818228475672464872281092467796666849033697255596896164547916120173786095361628936753504345485734306861230251565023138928531187832725914471649269989305805936911198320251223600998599310205307964204242469380833918359237103241408978787595785835491099322995570989473970724935582295348469697348647870458443908017451648045706001246946397008732882945090170328897830103870131756196941671260281713710238952239438482880693537409531567618848624439631224691491749090750248956707329865017755762074325046017506140270143521053483640155561393254655782650092282475279503130499536448822005023413790537721826434916484168678163691923166750062104583604001679331897195589499161095196941386696114074856399145429974693314812091596056336519233082190783985996856027074487714186750721232967552074329173916354821030836171682538068828248829877252129174212726145189411201993604446768453453863449382482143219305431722425473178951773115871478557974293140206433716673866114402603189586358470900427566906335284591906129810211545848446476260867414892470277882437251712061279845702413056472157762321833221751130318293529456648708671513437778836238620913467593340418450120454475718427202256828016329858110892270895807231691369721474855539679326760716410669241623946224868071382751448850598790688505915920772851139738514098877466589350736935696901584037315728380296490853313748847762277631928053200346277829190939650575035969971621177572429516215374644860685528447204962965791379262017412896417490451329031208069869406125396530366360945490906375508170792691658129562804873621435877526105166793286097153893347325097353900060557014106827099645342135185791856572766727941426028534946133241672464125520206630353272215532467840980037124377251037203240421882541138561188963801289878176908481443239482145513998640897006675276368297547142500154347305027097307283918549158455416297899484433275047176345454517167085250001663336025661057207021889995442203272729496536118381244814492767842291430811890239773477067892269165206337851100573744946121402819304083438658978230553185782640780265285155191367995745120097334398982932154386702984950456783857697651864303878625371603142295845002668179697814836197483997260667510625221573817421987797241984709022162176011757226747471826594112131844060283166704268754004645455629589659489045162642787449433280096891368597117637226480430514025427733591797573592225141391881567333515405252356732878243394799386902095768255649794124593332639392678242111880856448119039069047368559157112589029253457370497906255232573679831351883358360031498976298467424769073909325424197869397656225672794804125435363168196198620269567972395299475017140858141329501603417766524091610902008056326512721296613067671748895960806133018776540217178407137842216148236500386020657644110127930710027834326623661089314340876845716438053446124522102122772225347235111852178209097705125887463765105332536179447705283266437258177895055629220686017548371534009007360935972213980322719963401615591659748842011469542348761991616804090171065869615012923372901878314779967869907270049330800331879474955431292991042454965517767313139445280560968274896978613747277941141102854889449993111676481403782386234237282844213934225425150142754054030170065731380969774782502883913557999495138535691430895515100561466799258841386723610592006851284130167582835644937370613402780384277084534536604489983257552396082633265060637398494714807609218926247674308969729648842191668040112567779765697444889237704691270738033244383286550583925299667685208768041371371366437899838617923890304611588631394120888595217871075410866856954742751278650722331388730810127591063053580730904239234806354682509458217043403688282785415344670946759771830876647548366811613629979386284745475455171353822996600954984277828425427184357831797835116861507400349463954284972014509525465287455029876946599112463020904868444535896934212085183656715528017016911885187286638122473977115792232387307882486424624608678590219404040740679445097099649263703085335633126139410802451540166740480611039489760098318525208417581936943336323074174306338249364616708729032857748714148022204130052474878637196087874789313468286127067095757744681377103703214443576995472060415999975595069400576555944168043504067088009987422455802287308133588891128176780766553822723631773730499800245049660977867846852400601345927843200061360831394295902747792884956679372616666062319920552599176577685369623289869779062996167889730406426647732349229471945981458162587915268846664082294212773376376326061903494378963098153186703102437568338222091636884754266692748935630577567868062392801273940804330741483738948748643143041135098536746294244843534592934383679940476958953275144821276148130709528013329748475159621496844350204030737876919792801770392482471050375007170888639416538991589009133579997658169863973437651171847162637187657460982606150548714377652559869928721432455587508734894261844265128779771466549915255631231449653682413355601187356095479747505382255290132108400298157133205932822023071925266448760676420765355079869663948710438272684392746590177420010216283173074420074915806752596242299889876082522632175986859656222623074744891995202944806502461300562899921630447004053335596081934981937056395273836961468252529406813421240583751140417531331074488235195381346883554191258863116828172969611590798889302401407070012901795054001306028555514171397677875071230428908200214534305455141260966712169888736322814083903531688007225484840883469400265570791778627170102331786081344319301734513871139965427630051805827353888136972640054361504297339661819113417149799378205050253330307378717268305793610391814550745027762780846956232915117441895455321600311358868931168623893209755915129698124891499710515704020883939546033988304449770321102975797734419336904049168323042378907375959054898139673002648754650586561467840262542135863609103078119779465976298912040764534321594078933740000334880732184185593338518573282282257097636456105422409607276988923140319758462333967352320232192058595209088982337286675614599465922946457493696305996762485636152841520333894876700667656317519737623167064799845981156178778171203213868525029316862153932663920092929721281687059043784482226829683907410804611915553097548939279158487559489960722911574479338818050159856921480842419781263307854051739381593556739670329656010178934560662009107253222607790032703688850823844496623397877834548392288555716819899579586362066586565822854991840259582310547990121688589653003533741196973184411670644329824536413027093649812904022902239448919855145747122657166819352000211222179456125880841141265318481811496130743949793391859982118785804378038207873701418187699451053142620505732639545717094041004605235975035349047661407110454706606561703147989658730320939231777474091669596553046457768001682575832364228316622449162224471442687142771170412904504037515939485473545520014347639244414116278858679844322817240905782999987341748899828809636295753018638213357041677333776610270615789657565977933484669494953522208317320952238439114309715173940906815823172747303527121090556898081370127024377744140732494349141212126694405946704673379926577850128589474898252822541093307194495072754066991563566707346356160022320326491117291736096909301592969728183793797153420099200811303260571339457156710908282883831505825610447592812752614278734043981226052887724572877327852697295225916185922426493809491628788788608850365738752747341012987449193338277168425841381647375610067705074780249570705303747086869380733448457980826160676250889081549648800964993414937901201380863832038001683320753852008685884616890786368438784459293507281061060551903105684621222279779766847869668549387577191149186991858456706486473187893400103224693953340228308987442848782530649274851876765238937480264936155042553482593537258010926904761466078311103283233966335177496597454645250449558335400388526573112522602527900093745731710542093951922263943797805912645930979779554781232810039779011665640664056700899993440000083243151130171903775073432080359795169024613257539967455929155393340039313599620080998616134478833641099795550271684022677966687877758172587108671638587128005253153005689939785525862700268656515440266406056769405655467105336048561459925863087014080351642491494619290441844103901141968733217156421637733254016750645824308398087046583599736567056177646820436259501993015239913161305820665411758376023363783094922335353902171461491825447413980036203464740279854137903069129743614395626794513877077553498054502024163724440640716294041017074250131191523590181441542375054362890541512432825312024617633356260017194835382248647158854360542076349002200370014300886738204560742085002173129504815550945532638593010653234269805556649820599589327968321447090361643083676167035867956575700611407100781598961521962558072541027722842447751616056402967388963415425230714842006947293843340381831940344548950945940998220344517070021883950928468880335323507197200825143813236028854768068367499770295046487736185095036909671995947836797087630739061899220430575264695278652040155892850070637995572312699431505629816020987447492254590941853872944932133224220619006038619055393625739711852785749912189924795136096566289315144385610429736584228566116069149765348760229785500909536918494633138816888533352281153709448874650317572495554626498245279717601122892342370374681472290868438644738905496152344578111769091165450617321821519594928609827521388295667851110084060006607975932146643242902223074658538564834021260865687894536204093269846184644573126024296522262399016347097052308184807043320293511383415209338280241712993684837339886941368194629416544779947772382627493281518955888315849525711414290665813713223723682460381575733839037533635039775694262299456656703399429443942535094666986088148167291098881765255983951789256778559656104128371774695667563841310074831535816008590905939253476756231728271944416522660561623758415091146644347480575234361103117035775575136259151814824684845142826325024155898251610109077672453674067463417346056911887958073307702442780190913890838145509914105468905478538665787749961935023466004378109003119082042648144725663004731760754371652376698438049753563517044749560230750818111412362428765788309334373723067491794767428520926035170646186138396806525776606857239214163005486258770584155471140154733977416071191084099595511242297786512225567795463708477425621782280124009654223923779009270245483570506395873066194566586633630193589217676540428586016881659848592519504683977467373411060163229315444108983360451430665193241887726371402855838514539651978187250396767000102443648350015793851530168586839255101964040933681736396616737439853503695571298007821898129266128040867874299929358250192579734438627079888310324753665608446262112718508988878743580462792116193893266308807213797140152675115042602665082899046811216199076290895720476075426666030875482206899331974617370402686776839642605192995181059140928627662349532615776148501993522981417701105397625363971786362013737516326775485683146841642732496265286757527938682513573741418046447073340947708703998351589395753447958731353027274006017109195981226710328372260796416614553122292443246864839533685352613495571184494387404833513060352352016184840806633443776201671788918593445047198414110610320269594665031145393805676864215078962623403614211975193797554628798377086865796901755096390064152870328653679996676340002341307930725027461865884717605628407572430566009496803357826761564139046152894651011582190162344452770124232317863711852606431902090175715727191899040590617128892223540147084891349145211128095270845963793871413067291792595949506803215536184382102903070769572561066563757183163026253793361103233871425651112932118597699460970407384020193331423998875305025020578038351569938051021052631740764619333457121393974551771441292487374602046159776262397895256718011975736691728100959651106838152438786909215577423505475271754511104392806381532099070958675463507734067791716288424525900180389426469541789596957634493135875179506594905706861496450164710086744792405737386536147062106281039155935961353903235005300039159669270319374874805706387325965185321781542448718388931547631855872044928935265095313466537606207746698619845525370487106241288621435733159451662909646110968061313642319160568846989492093039363169864295049584302410482558659352010283288328403433871763319202713764101656178894282933399544039246410354080706693425165857304552774222727473698275798423781953608661718061630829992927233594349579523709033914448882548908067818517317125590700060613163794035822820589895540201218356756015569375119252592339896352152559601931061338416507361852049888539300290360640529388633944060962942782550566156522766053511058487660709762379269230403693142260377528419887354644251360383829450505364703464644293504330394337885794525633298480701757165206665497583260005259013691706050888335878227751262254389734342657760962756243379067900710185975801760061109571284169716502917928956288683049505747243261361923714187344416521040299913780869241980523693728833680244675115025466273738181570165844273156768148655075412371305826303763228128642728994536425014765058044367775104973742024332574866609741590916549254579379383609736478738843201777901682949273429892232956677298898180098727356905008368561479131195050569858399138288370641217918073506936552477785810608765949020388806410537562705548624680401830461788128517267073132139825240240027566436841173275831088759736057516726901059466689393678372688914799901716879813990563257089678911977186453833801978623197006963710751718020218651560509629973393267442672796387534768573763326284017114675431772693757840879302949319018861138800614427250768385023195416660171166685446116090158847894745043679788660732927029389565989114710107792325271059762079229087904869187031234282863395548468988614128531019258726802615746055414748125120202573567828844092938795331863467664581908164674780920427652883873713634595250087872793533456487842650904906163995056981521662178146235604761905518584805938959356150919207797942262584026754631587610343541902973064555824270413594488833944257992071429664941292548801983309329171416066024014609926518459499989005779045905142322551795583282195024773828100736160327889220896378578412329963457433604038424455920557463310603716866200480027281215252103473405198963897441868431425329234530109362851258110632525969941777829428863473784895147807871148674189457860005411264178868909789970645051943187124854660658912823751736474388214062258141769977861328679422487262373242545813245313226134548936101220852312036196970091807946135787834653269181780217791621013585239829026179897762554194800465227982557464967689164027372620532740880509401677368837695905465572389855898454722254156859681748583311050287343110466641620444306631246627201087333289338462182120300359118067653616039200086594923989076992917443468247089090479766087059159999190498989859864926909972729082947585321664586902993503142421617319300458105646888247565315665489194106532544361465684422293750248709629730905821375091587617037639821068037164033940726531361052908622764936998267331951436921813179453700113178748615197640914338078182719524651259482945903866806801567802574788717470023980002436060212714810323281753135050913802187282263304183651347546191586168196409415500939164264578985213717867173904031462340009010118323846458830629158739190670692628077761231710022276999735547645044746875845313703201238818751978289638048915543737298796029101010417331260742272054059579853259775285610449496615550527950884907974613729427467616378859470142469384590382462848162793330183710610368597841173694892043868155837617711600442083644087614811546368120248928522983136279638423085620655910338199837786667496542688330899714985956248905469348183067162309984138578083234633610154716105879479503848159718313525994346375471989023280248955512917983434450665403991138080299612049052979993842724357419001488831326709610849321202413892630015617510256691332373534095409063253046996192625670385297966517033646247393252386860146155886274778349094363121555104341041346099641034044727238337126123876933261246150808495920008709102562633018334998928117974385610288430733283953018454105369886444568252672944509718685460759955062921937630824292882216712066174404552583079988121094130754919111748036445434159719687687186654002129779137796354812450552535214747511435123476114966243603019406437202617309722964114379732752855287244467306207505984700156051039480859058423046499281668789781702536894963338523949776163414697926224851239687015406248504086369517287272275088593325212849748204457537467609685729025143465965880089713449128769403181991167097783028212559370842594335498174831914442036928680668839587751395551246499478020570828183528690934375473444067520280793000318718847328228075194900567219368083128288865784993623628027295145836753023146789072475878151776812349850367275572896632799173279590228594018918448865680221843738578669755071684673364225092853682727963993875745004498723401200935887168772591986840843433344209757472711630177913146098071625261339307326141659109529443739928039748336675711035755081809003798622275937186211602608227798894562982009555021847780174233584957121374070640141870979702494642546894249751556971573822037736063134143114320516936583501803201119926500252958642175850958146244231593333573649485417209072831697373190750096910619704068727449429164688522365245497926894848639839458192338179067197523994389552052363071628397283424992407822200694297226457205873697217314664616685248460174435346299322245892848945028981035816731199036838877942778966993878012767809947227075629335913366280372200056066969527937445997502017066446798347321948367111851593979500288390835967232771219803752073404307702273669667265100921938506206421654544444563832027840440886624719260806741152252472201734958103311408588508946301040551608281745503810442001840796841968567825367517856189661006420140808172142143636981081795432006428206334938404063176898160099288494453473073981534554576799135539388829076164049927099497284710905052097787338592610748427816092951659174765102130845500793211937219807497688698431790835792275288518886250062454605002225966325010290773109974776553833920098074597387731334947271528085228139947746373361414040042502995363454294424395744473468295465923259804845941668629923795450624128029563508897816241838112370414563642485565807649153056016928092891070905087617721253685719176285964293918456960055789012456748721387414611191465073409753846422773157192447097813883990863898515365472506060446398464238368004024970089272110605339372110934510846846082661093751282146305927291841927505030022791958007167288625887105062880551351695371556199711677785367653634505837380334257657537848471320761296953177675749198119072328848902789581127085820743625423690587170953565795678512821276777244968578117025051288721639876265233181092028510636965578640958813673970293674375437202756216590183840850979473214775239683086405982642419217086998462894623345517313466620677955578494830318586959813563736947476976732097288990316822879676708422718372847123196062490883345976863873493840499700307623090097189787268136916445678920532687140237783939404084974207827802922430984380902362703882715814264032743043326253039970220306110328428627781862983664051609375706488534539371554007058464908913441363026300729821987749881949848863936227660061658913227649791693456930396733020396339684246484957540350765517550970796767798800203396101575345273289484458623773183085095154326246370459735753401861147764088092257573968572577559581431209000859681325271926669287167320616121660473462271869419497334824375255146437128117411245371812393626605982654521634160608215035496743787343779175431639314997686201603999559005342224004469968888234354373649603138646561080633231656547509673922533603608115858736424481181891578187791601908323644730612895851205146810755417870037308909521057268361536186578702032419485004300395363227648753175305743928923428534139382549265273076001551845181319042174395970727853450360251329417342237977064535743839756853157853068286306304551378479087152279217483812852829007050922430088819051356609385086220293970921630917410494188222026715707210003462412120260184087934756100095645523250681025457260399799568885753284317840403813672215281247659022853604376238648026477007913136835463975143959143421660921904786898522708159609648991476696485060743322019674531407696964915477244904499916131724966786479080332221433638702190054984203539403610196136443866933915261038848433527766676297071572018665965130240461577066936456210330223762499361887087288590478971674298569326410556199680399020421009466563203938428628350107777982480503319544628469452319225604250189816967886964686414600727257661337896351189781904910910066511043419742685770456643516487517283764455610791899503984967141122001491929789543268333739105716566571649889708472877244810682103897583165836067084561100462253366826084675637648412775317940168644222138298404290473431405323169096397192333381403163238277703457399415559507172192687422983702192597666500889630296538134284935987863182044565553457193220096374954158990140672863663580798155435792275143872955141520996337966122790359250766677782833034625676305111923809787754221047760915002545768845645592240639534888684484544073566550167964691963377499594605534197583137217300006556713374521812346519843412006302624243609988407568812956632202245156185324444837597617058928640883972443130548020156527152737135651248316667700036450408221210864861330455869066867094588847737286182227993024705134107379999056952296781260403015194379006942517463543938607514411593848206375921437092282912030765352072810880704658738800423680858546965968421963156059011302021425578131229062219266357277759705003955344335122598365935247599307493536845519494779204495645391503231975647529032357114217582157854762266813676051159953217888152473028958005304946349935772908693424931898746190279109990853950918582483631943909431726411581376867466549152595466494118287786038215920453202585037963840876386248803041925170140507828693542534935199683422336657492714693525875934828795988935670979313003015837101436164807093719543090138513873333355780616210312151709642269892380314920229790177003327610295630423996943468980855648807543788902101554497700512165914275917564069528877650256415613727483499261828651357325756854476564319930653406038323962500879457385380254082164255935496669822045753544709341284142389918391490431584041566372730996350065017783504949816388078572011467626464578455301826370233877733938154938470476316078471382975104705299998179065001425383921420830504100785113942467664764963767794894806655626399139366764627899925903948358290846150721802938652839082710977411781869984025471802278732948306495425085906035026704114525908419896893484869237992922932101105079052178635775860286731718059767049817493195229098276080089140315444704486257075241476058936729727069601369182263287125695307619596079183012773307790494431360233249743256870742070593114953245079828257430409735576089258147750246720329725747409817473199688641538927164786280234135367207619328509521907811225384664235165026693272614509730775819082013124760894783525840362914537450051165291654877868489659629758791991327849982349377897782883836464889620770558632881851187937520787254675161217262857056441261740850146983243462639837887111340881264084179477033178838256019912402705363872715195650732418086719522305318393919417645628151877603940410984309857397089583076265801543003193460429590718804821109962893546025350089952599019622334460891107622664040687195969164694151945866779828821443303454459523647908892172093282154067905017521665667992024546033172305535303787393014502564977183344886512592763459107259595955249809752841627820885149923460430605353192380091043694000172090147833092096149075818082092735145158509911098044326653161246644691868854441109630041754220235571608848926968422569841497367551121302570058419426130065441265223369750018946575964100867177918899412936250610555520682527516174258452830175669271410911210143613504788407743254911449596634298422894573083466109367603266091023279271569417713047201123314630223806894919744707681040329449393253084379759220677027300583973782525595763756987516772790986642020520823851399707845843675285416263880254400148033550115536257614672123362989705898352787540151826670194078904015808014534385964108110074336102067867329442544329838556655844349461443934299735105818239505343499944568194273266642590640157183433360276603010169349830443981576847192649631947524996261750511702014408249119487848452129506642953023709149956842007957915380405974165939978721205133022739742976348648492090503308525247345179093378867068022973991281526815767135090546318319992957234937562727279384599095177235400798533393820007789536514888315365453183865538904310263101169191907142720682775094994768949733377541163087058304237489438527385077373663919121984799469894312308564469928946779365846642761699418610345772704193307706143024708640747169610005739548463854708282074399460242632522209138864424068970492450552888447669656059634631571432762069855813475208707477783807346702744890564695741960931112968222456172234357168752095355087388557954112825443637560100907379871755890625215773071939087070706896027591783811066947200617098600952765304215213956047231754244090600895602076956062711001394827921503992199321971691375400515399286115022269875521059811129704431378301365245433846020825864419386235329346070431580243807013189119202408663400085266494493401074190306236219079134545298358417799246212508383694136878538777398153822556336946104868217452942890082633744835816322790794519898243186489550178439190887601521699608059042311123614223768528624731259442772493935080538321013326263704071554073784928817123930487319336423417299619520605968424091080304705078796850993213758626605795649713729395487965521012476699141177563463840307351624813704817156171059053329397500323812069089550214860144592795820160276900329048536929669115769970497546311097854201951476723956027491840452121725284375164985867537702453210518274096774812692555773871282088008331731916323096745542370756324812161776046161180807597771834090841127842563546498456603174675134635398496447979261010906284731156463058742982081539151948890542344717120578061329480662344922029090716552169251997536221836473878458475146963816664626227306119156343060178458452727432040669924946803168491362029775646516586255599591042729104882782156852061456885562115675976027541377977318815706930701923488706681842403116953458003831639329529169492632936855847640292517336581303726723181157591724488624899886243548789085904569708652137634551821917289208897189240518172803610854783203856874062434310844667448569276160731881595622690714986228148478144143730518667900523277688069354071554749603026350252698901081112010895950296323585555707706205213026803454948084318796118418454350968351963050832054224638152395010233086417382766923436630181507144901766609371085514648505457472158406605209876748346621931807472675107614318290424648624549201830664298998307118067195248963895311140777584447346219278190404376314956274061247024613739054747360093542915874360337638154995867113167366897063935637355006412155633699639830127446387453924229975031034957408354583549597504979522773331455729586494658843258395036604984410706899804381227259151292734843648501430065470395606863251085459321891750731286266749614597927886375201710097378604864690742514925633912918933986660600913133338427290131168088874188237260970980130914617983880096222582623565714991141765223463915400788994007271815480084390959122049383127499053805849657615860346971633138107653507211329253905667221278681176186026426537785200251801038263215598233866141380077463984832459535919711024698698903561167184883685655924267742969408678683543941808789941499476351183458905785947157449607638347718349341020069548785629060674013316309416402679749203167442544797946338647477839614163502233876552018043459813303642107897843595949725267783895931526685515746371295569295639314580535126318158984918049367666122236596036509108606497774935452664228981570583007014005673576570332867048922266546235347670669145052366921930533297929124424258457773914744824099218512765744597263289071548387772006953890744430959787185617798897355276078144568078233005255823614665737201584218083477621562981833565590371908523195823472563738728002570152098333448212233516786295567938291600294565163267172149767624041907486023179006297089700745971491509283306665553491053352584663889239459919303474575570620858551378827860200745066611400885082227775539425533133881892102896390331594321827046943122063196604625390619522011746051604403917111334761909511164900571170414872217918394955989417273031473515422730835195982687755621857023673966087095908244119929072274089556732507322490574392126126692334609279715979312840536057691456770527945289540726198281188800377017380760940150652167355023649935294674240606993202638962164786957793352163841010670243525198300721926857770196154198696959789418726915036525676108156358103910593455020661011373087094971774325572641460201618124553407680501094326409753305536330993657298019404324690009457118508558522586143969375212899930630043219276041335248719455516472339166448005206786841811501801725295141255655404447203282415403176869881366512245408854705363984624850661010100323721764651947202397130469254240819610811134502096824929919978386038619967173570657538407417720775751572195880084948320413311688404678663210950026612065190021557742923706183662575953306533651062038072720723407291391298064558764845395157185788878231342755564995610564830479305387746859614418906548291418757539495784464560002533297410002225262620709326649403699947664563826839602664540029766553021462764901564243245533888830691630763063315745372126672230512515204968148011275194508119486234812062281819236707802231301821802349617488826620154951353717023478676261827941663973335514061347587922480340081436341721419121637073346552285935726785448734933468839669799262645473830804838907509540596236802666200883445136756443047877025661041475250946196114415676196792942876525611891632650280925581236792153907352125668503361756057840948779259961048595369835556361392480961827835321258440569397024080740488889839005212838921317564374677965655524558826105472697649884828800915096960242503645526162675553542353623080082112229625157452729201813310317203334924202260396614383289649821958922724074062004886127305292684069416202082973301371246378317822283185748983156324476367005365512156851145941217971975563668968137206406074477972899115993320126883524045027842005946446880825380872315806961591023069496584877873131561357299601939604753403495091970999634620772028800040984630020808744459944467365521787048071457778059793666300641474673804785935762132098371189663945189285460342821414142956169607738348278570498370561095389307873843453040439016032894355526378257736578281550547123868159515873330959508148009627225560432297517201469486850565582009631948029320592253084141463112505831522576268605827366046134057516456940967468553912138245881177455751291380216579463656346538147638338544819208971373174059253176127372869156845391127851437412110433746108513818955305205400441130190844150836256514285505350862263399785806947528633926903125484527360465324807897784110826523330593873760163970157695868401093637262685870131156378579852931009148160696202852392321979147905877956366500959570192893084849304948771594090988875446891400164353143536507458308628764505361108656438497984771239231079785465316597499277642059813164558261074356882431915794597711134677456502555156476577318004444680445227084047108508525505940954639676189051630838240588985891442582971267753865593727571846648916346513769961376807041468886237363929061662808470519283166067425957387695975091459693896258223393068961085497142975139543467971693873269282415271862803578339770067078217757542267298770345026041684113215866255411766051672775933109308120699759537564776541259834464205891600106671116731816335498048751467126073572381312318459536853167387390602081097252787727159551760940167954009303211627742294551818191270686186645268478355677448098980944825766666763011206022855082795091497669039149840649416431698893506643852765667862244329116380712234252301983522091928059492189113153750929418987408205153391547262588838559561613021492895184221614955823524114743287138019570864925464672869224174206079290495129508846314068929146427065757236741311727938172442686140130968895640577255161953759280791167903257153050694382315196094029270936837596943690803288931046703941476871929199201294517309523621109737475152078835259659176204299139655171513480653391494498073209667095605097039248441072278956843278814959120504755163468575327318622172766894134400042186015813014372355744772947092857578453384419345105741443312635677914202003086997381397343038009548413255345886304054413972958173762903357198498697196497422315781819911924305604648524180729481557415464444967971207935172690391004201775561456133115224862485431040835472294745515527594925924311588395478499657304310156374646355705050127818585056232728072124841851719314506902426311730290710136396106830823150297557182264225892799999432741726963756650057314986182354715895835966509203291579491132435555057483659696158852566780353073430248497328229680639324291174753450997570506327873037686737072476184296061225788640239707508008342937031468948797230540429459297988285242465694650249273660193554752031460093959110810968128578890218733976522132295287158276368093084126674738942050720592168814721767112825357599035677001834094387843852622344362363304167521834753029404862766906004185400434798981198475404484464899924692033124656907073479272231889974409789558469553237885188497758925753006376473327630499036613980413164340470680725549107834412855288905207358306501565656480275050861096326525252270125905729533565953787093631513892026517962168179332448515190667268070422031680970432094984207537620898438875812465712138476153179694368579089820091652751808999660878802722195409446939678847674157687618886975655828114862719886901465515885816817874590647497439473997907645935265457177998044246768347698419071971914101127722628144298027663777986317087851634695523392422070675291700263068113058825090424221408052013832451735107495666020718119276676724317228889186959285482876482645450372843099895273398000317281284844290179628676811043536515850766463600848406499839207146896112538496234480429700937021963947400467522937261191965007046470043649444889094778457809644117428314553876359944471724639347634385182472785551124845781201806540920848223186700574444412817876856339055007170437354615232187147644832691594021850953955061775217481294252643120967386227232676341336281375973267236796281333079845099187850916471087666025623820570758422025326574565932117805021492347398292277234881317240143875943758214372626475143546894524772039974028863537182876824846841230944155575115871437370492525466507375252591151589053890023774868609536609767656329949456440865577531021320667599270390531086672078921145869342885126700716393536476054641661499703131912619966986312403755873318992367950949637948044401804576725006100839784982136289560508522621017209781650147950842631477006769224035117318852332881859166779603198950689663570249914608832303886437518694058543761367552875917610117021796032825059032664526242361050239723076672157550901086062847135163135097798620047295490498993192753442142555751690562019460346202697196770238453287374250645915705412839943054271412131501806605969034663734477383451736199001737726736519228671492414097817191805129312888099946824223111944107149725531695448244730521644835348671739208250577984251494364854263598949468946409679750206387874439005022811279850830084026442542225351868093042647977018226765952120885139057767774713674905338206844838729413323342169583651504520862147613991893109296740366494255422068607576369773592831324123873503613312004634819677783638316497442618332415396983817778866665952734735020714912204313290979174986728549018897248510331313067533544501735856219345731921394832599889975467006511505589794627187320043002791759264432649518139809021995812574852078100703076933948581545569038587995680754373346402782602817385293547733625136997771492132854186531341002912810286028053441628345386099889421010194999717725578720412726410244167232483965985435792894353601316617102235816299240483824038209017589383855155641190050644155358830498072351456228579839004916654422511646085881340276465217327523467285320647985389962350688145134849061494588142202671809456359024340428304536232133953465229345634707225615718107451660485324266138678877730915898720366606017422461010014478627417440956323758349927275485328826155528322476331056954656355027888048316905229755610529893713451985550584101800920031342309214626830671386099988087069195359271238540459019735434839441183098611223429035374658768477971215099320625581084667916040197836026913212871616379124336538188212312319552329205648305240600317014709552960373138261486352181566911796301457905775601734560809531063877320077446601630155705066135154483823475863566379411294408826608936495737888000265877937014608885067351191454579257999537990614137920207092426274657869235552352934165579415298574422637805235033008735586826610890286930542002814286651340032499714870811991396416363122384067315384977012316817459749400912528675986530434187625784480623451920471736400458775279258715515984295694595319291735446930391850625071600389904525889125615901333840040424019544981563620352085746657810013212417943829086803674553851195130850904163449821379110753498422805925748537837464888485946430641848489400518041493929093981028483344793410159688487815658484451976296041426777251480131408915536894721926083239026900604594220276463178288224999580946604029155640620446190232246313477903559266990689890906143060277104129746742171217120390176199139090879103815039589641723430758873939455039535815657775723020748182937945335682553153160674359156183153986657243483371107264400545273557790020618936980926133820329967913088990275345627119651210475465772631467381883784988896901562592398442946652844586144107891812621093275910678641593260447959690431433674885142457508646388069060071406070520312636423398692556837968496972796615312514182275058373673866215976864514689001334037342954076776975941662528699396557539068931566099661701356316612592153754167618567125862418215663659248592327930005940906349580311633468313777877047887463509354394278249170227783410008614433973688324420796958197992128127553929279424491972628180202679253737872272271768206526496587834027015441678449274778433135583408031120971983970835713846031630761144300153900157338266585496441207012579506887123505752261013261422049538901356670495868746850477840519536781955279797243258674082290874633469489435661376951271045827935627065959695114566219969819349336891071827821275676555751267326392136895796736331671673837458004028383493632013329094967513705915766870511817682193710794111243408724022486936785441303990706537214565848893768353264590101808609645606070813763257513408334041303698420476625523947196373081153881980455279357065363353237109304750163397268094899193727046213636143911710211609175319181902046599163928426610261562384274237272853841540869189895511158786823294983304383384748407479899513078428260257105365848301704556285466294053916231761115784191718180718337799349161025291352755518939009763566099298332679867432931550725941317690420896433736165606497561821838102626335622147534010308102335960652244170794422215986092616838604362801934570129379953119374402389229362066184648933327957077834672987892072364529666954570141293807524382933997298071062390604795251588671052651512365349830910252888517987865130045301333614739839032071550564683611797272240596323709435437967123615544763889600362217922106403330479508335317956499439575019598080650061166691206700961066830897256497271388203867429521187210272830777329872922882806846239803550436892772394053944798118660563412040984607976816262011555722011350314041348290882493857843652184464936104915811058729356554278340240794485834999224944415373961431311154490930659849146999237891542378621151632165156068775587143946714496552186803375425237438251056977263968072775414939333588103827348946079790724699815287648210874520991663126585828365212879885611813443500007422932680177710324270255088231204940973671035059183090336440074939366844355146419830476564167129001686903457018229490312157207516736750349283362029202527137132193253324286245726078544975453384121811313455447922270601486127588735401457475055830359172032891879369994676934356392897608379192002266979293797334856056709702271445119770973624648127475440088701375668213546562542212329443668038062687941374512795689968341166709811958396011108367097329878526523742308704489307073797125916325595841104475784764270843145940705957776468542313176659312340187590567787741560689157052538142669798318772783226154273755701819196762910925817691671360536828400550929602069575505984537282059217027150525902564812948680762204216018769188568886793327489352596558051582488673377498155839132270788889061269711733666805173418263846340315245660969132435009216283871543560434828985743126676313157417798543294528348820236046193112468332212976839022245655667402914892588015858858893494224109490446954108557073888330399863536067525383409146124849766068031120948576078163317744768958920169438098065745880000012257941666707285440621681510774677700652676798054529506371554132102028115986240062063187755613133982618876617105748291122677091131831336510394937351644215373919797641104980699726137199542390544019997829524155980106492017490445851977739206485231729510462318636464651163049764924921576023212390897813357811669326102209550203570099345821354968994709942683629203863078043914519307786405279782081005641473265606882460535802432450359924379631842492671660620419590556883281450988937873573502578433143281299226006091858238320360567786209815255161997784382488086649998257627709445544521917012872882098481197859196463868746483773345266393317064699003635548699292600184658880631338598901389229879171781417891266137573295885275156313809318367636878925428302120843760306207929338792089727333849775846121760497260267450270890987214987529600115625272927095524310692552503586023393100659974138252320909604452345403903129386832229355383973741953495923731647321902241628826877110023906076844024949227841919598905985002335532250184092113136724124727680754625092281333018792196016097042790894526217239796619614130908217070531027342027399478201722225004107395281830006434863681971102551716220585696141518731922382661754285631912972145633969420536177982848034257733880186036538915057894468037063263050196854499012772232904386743251071556843132291894362933350097466296058892896926298191320939298242279337405747909986235127021412020902149080309659445861243437312831318635190002908422350558760326833179322514042488285291512097835148079262350450030560565964873082974157442326953761482689968685088476106667397431515929754051979743580811078158603399652129337503172125458682905706343567355151456038737960623401488041905491963148023297726379575635270046610241764225827300020734286850417862747572356868039820092905108424665016803085038480581939462787445974889639584897275093699301141839190849123071894195131589303810836240603167166357340778123241846226252053590192439355845544558786038191827163594137713729833037024984092942056007754598363192107884586086126958752588699231250477645376683563927617200021496479358522974448966369834265046885388429495667901188237025728426457263439714025002321228233113785058472089927488838927095623280105265894895903392578639739811759566021676277644630897188515000220837582341096233857656830863141419793866156396649194142037477532912296102574253252108504483468735723245988619032307439745802927350388721943948565660630497256574363902240194974500787687881647507764321934829624326146800654370484198406747650244386904872058586150675767897629655078996262600066880710484497009035695616050620877218886082765495944124577515011943802064280346022696667796245198945518954800960405878165978255042488861250406500641709797938495436172060845701112273083988706301400055288445463852397778460767532958076248750985349432832929807841164979375537018630069278797052451891941949661511973191693166207529637595560316348050651312791517949468331638021638414471931136893594246194854889718504690963014027950303272300186214938607144143599736755302348783271352001334143425808202946073166106619570887434261626380983941737308086040917001352639929996296997190598276266103859305907279897175567724533727254261816368963012015405206873394782564921579429720794623040599436467482919720863416058709979579512828505327499932677888329842422995160650379264786201367261871976957920455505059863840641132075242917153746718477945583180208050459073775410803856466741222366325475781706898748618767517214437273349953907344868379607646542503336705508038262712704425795046750387527281021642901889133379313595408117350910125635133759078478184080366628315752008922545754356480106496141092201255620936460162028745572241209397891368832329998746759204473018733771021097776808935930195385086340518376965741242170501252358715819668628800330785870207674104736165668938812612488090381991810657748158059542880366709423743203603161262401511460395606924075270700845489130304598565356195196427912127056777260942269667703584416629308320718452982509533210395667844161458808291825362342064292618710985282714146326420855069099948227537688024932037776064519435765979382356808640149737185914996488815866021064995495355974755700327518978163585513435628843888115234305325487690112645694954193500667459439637523785702758495670704270643336069295785023067575158353109135617839209166872633468531579312020816831847503873878689896311579487918944507134766821180562524414647823910258423595616275319611135793554673089652294850050052165085014579905704708817857893772584001018271793389705400788800783159478676195222325890410511753246373373215055836466617390610137313718848071017042824968736191063605556690252870711659479116207396606573181154101294424110874306691539112083496056118947372513947528171916935926486289968396414912120427645376855716836493812678822466913287074711815966317113260535153604167356258641797278246152255221369244184690707423390781382846522087387981683288889513148593542363742583063912605586042917818101095934482573101229991765496062125486840441313943855696927805209881082203422115621587784298197938749248747997005574046733561998852993117963167744603070040951601921623543947972904803747016056437671606949831243959333846029869508827798133931612715656827945565682954065671420364117311999748629025643444056373359402724775519300588967123444845389585297630431707913942920659741706838429366984087287293802965880790925354797730280940457737500244383234030072085446657279304509499331783336706155344715439558008325595010364058440983029323077572546379128876411866377521657272126224080233459338600404473480338085884893364384103261026085956673869904771434898869989063969157914142711259752067098930053850272279937881147587589559680296297947964497770877893901441367564233681583585645058673514019844978343313442112940169562248547467570368895474507010263948199632938839391500484950626175178795015017760452926613214321860162556017546451180548578954459432662842287398281961645024596343436846518880107639017580399792022290566832011373255119265604246450634499811000519360981711301027393546987435366086247453983327812685939112635072469743813395720700612637941300156439593006049848403929246402903878624833601482834794252848178489801027378351142945156930102275560252622438117810707382567725174868815251924247907347541613313078877614040781954071948837574745861341149031247973538380408374765765294098702998520861230540549016876347045329348668762199023114685881870192377938501366588805626166827801905514575387707277187278993712293748402891552261048713129727690499967629877159154324108262579760218807896579225828842093719321986769352029881915294928321022078906804257382341350237107417720416484718517092712617972042570097042962043690804190578873933026485869148446034175079144982364185161701123480659096587465757596523648673506750540456415444829008799049983555073808270409986253510590271391644143988234711419497772721012628653056170514651545782419157543962455211725815575117883643923865992242177859763851150067138347992823295693979980113663593165252178621964949172705675131600286699018669327118250324292069179417939805777007103873813902046403519415674937253671044691448288209569044536952433629852331349715229802817207149977348856328834760823591874337640202897644058491185260017382686526656795843713225101654744856503518864088624148754576128116575338621261864629405265628295851003028766874254641424069611312640999831436177402014782547207327200189507300785288451135382437120387020506478860757309775317641134728375601515120087118541451419090015773366005376656269220677628647692732623179245705821532292080221988963372028725103390954186688086256366040648527740381091727219475833238385914197380853808194794413012761890800123267251647088178772116814445185876024072606857943865815479481263387319827135163357984985047878951554308500471367116861292861683326757242141305945621300729320880015530172888150002652978507481658326116913095664331708651981511543973096133663615475476795893653453442698972204306900819451529199592685599658958903123123240078698078330727187392696933951390761419813478434796857217613157802985012405754120012792935406807016033860426400364412678716646768013403729705855657277910169852634645003471884279775898340953398196737212275482140093678879462721784935380770072629573098470996353501222032895900476433538287221477450412941842727830933908969254480690118600879000863411053363779721706535836584682438590428248815210586738308889519005462870193343911392570856704492499724129315019216355983368498962888960351500558821882429209718056710958893223196474161422951470976240676571074009143294804271630441940004285195096250147735549566953842077278041057862574974303661316160290012657033953460853576833372914217122196256985486006245039685041311706245288465357974722438847167688111148802119495964255725514956573796285952558250386249581676588672534189412666241213513466503991494147952401129196505506787907982422288436935364793530683410225387738367706114630841004230666173450579196333576434962279131067262682362264279870701475583462673578135832061494177262220981483790299778959110771761416043241951252139383348706976529591219146004213180208160941163399975686653753128391500106406361567627545341173027332616914120668712867288594008701415834342098237147064552203796659619597242065340875245112596523614562793464547786456059264354008147481487326728955729133668404098578285773250887069901640952095329778830803383193383677246425952497195313263652935053378259976516316437190411306092911467548409031103763521028150185501699351614283813777273423873961061730667594893407046931352933636701709199649803049402503162161145905923219798522504615274338929902822813586537051253485681950833344810712499036323297118878454278242125436307754204802675129686636048530760071178533528484998770515889927819906452882144530448177031185828793329771598847550840344647812475574606051401068684821875381214376840945855992500965132327394916491250468113880397983567395759449210456667491054313525800447633023714460795736630365759683602168301982067156074774460270813301936267874023386125886660583252398258302708961463981493195113659255017460151061619122485807164627888042050793711757344002019991205634300006667282031368022059578340895761808484463341874241163490214384261754491932567783776781025869582567641093562402119012412463750801389756934761074834441823385204395070555155897665743224471485592895785782539363798137302027509657246527023145266326434704646120782260010136237901145793340179520832550429763243972978756661147189168895630168172189812518392063696854556602444186753944524565526793207820799560806439453925869534811332627051777639659119967924286439718708513884485779651690275937307007571216033449227834023492019394632261975794203426410749454191892278786847398191417671732102917209371215670224624751952399797995377521292123482404666286700211918300817813517022462300860353006260107834481224142245078723217878620517442796977373324134625565504570383158864136322685655487703216612449809427496159736966487559391031379828031211119038883955135697239758539295097633842316403618157192046811660130320508952790189745014558978768840740358723224000779823081780760530008043331556640147816596575178221948099376679734060464322711619773167953528290978921452072645510971735709389470508735483318231577119695501356512130079734164227349762966737343416642659596055896910135061380453397176740388790268722671754214317932382241242195466231613763131019261256155475621165226843224520209032592716437874847301581315331358880069198331812046714236490670023838135440410380049379681409555266296990791024578283261869921856615517036026937655288427639127443342019391785222271441672389599504150692666989030861391371936602684226050392647034875227525418629039137594709131257876146968539292273579395856871416790384519513550233586589047278626992967242590998377292293797047025904962292021711118172591018344740219392369603365061842769660944621759735713948861754568855930221342640156308047826100130711915768858030903354863921813957632150485108145048814864052967353765507762962973219556952278833718395392510510295211087648015414703133228132607045028620826998260694131718346638416369008306824367656675670990675512927965275483466562295883896891701601088338845665186500375944436725113699895898295806665848112772034981246164576475827963637667175879171277226469744965989152392013006645723160719028251104744884615529882883605741926673904322975140028584458422897256552285012888445598049875066110960734452654163409452334336628052970390921159196308262945895670219666014385290096660787819991217509073483947530329748337793277040852664352344287871825215337137546764062100061189001370059929012160891112423823345537777873977742512793038305030592008957739504921401541296233931127699058660817998200766499880631480884096472000202886315343577521292072287825948122689507036169297397819288869387336225527040731957929803686070625508336038952071929751439699016253229909605709608033863254706333158953683057932206701259003079691442038963589547332911900669862952767556921053440174395950458758533554712187161511655781185314991534834491522131528438020516577083825870121938084503435593219340023556947928281506194654397434387060407962217814652676547677240810852752624461435921421815593785044044300410307461950043771483218406829056264658197822030511868214188845476587036585353659728744103937240314568831666735576259458040763083313763748014855422907347520048049269503707220115810978245022992360479163614841248248271097979246457139747065658072068689542632506590641575533818356164102125368809826822772248665640955446525663308851367943507576044255137800003687632560335023535572555799882671807585465305853247811403900763911306084086723049649796306022823190131298179579916386839874555013614914469068742440132831600933908670891458283150083979196434131842552667991630290274878674274003700996085531914443285869413606943036587108192034995375087114892425841549120453383662105105045649518144482248481745237482450110542660645544039855096602521260683887134761039286516258427219798072258801034627078918583842650164817578693706448691242955748076516911495935123647413586941702929004999545900603307218278441436005440503322978593343945670506042460141463892232432807876951375778036597518828311784038617968739198025820453174809762984575684471989947503514261153381332815063070411568518822834307057744531240930853415755186607827042220440728355759290833437179363961261895980256273158516611033317174472484448820350711954048197087218031573841883399698260929680910728386564222061563457212021084098955823174106507042409572068814536009616756042145373626126543510730711914623906574036042574948712181417216349748982160539230691452579268531707735060127264292081174965929496294335858723058567077938133205520500949037204154585636868319421539109602113277608318910903384540266204431709736387836512134137814673390562676631005859015187507552579734721151428341042234303273751428536240040064152824035247589044311216974096481893833990748404083766340035852658703865453366414248979402982954150940552889119541459388788061463780940956907371301532799953777002812027396336812808975212329631695267695709499206520459926880033190957471153632759393676214220599358762998155129172293599396072751528584962522685775978062369973014264898727789117582291506637959373776470001613584794480937004958489406492221721669282777382930285858983816156304547292008308822517741771476710801717311191777546813262781723650242101342216677854449208977429909841797293804909803836298079771834859518808780240473493944818830177733035368830272817835210822858209308112720907386058408898010259975973313190965399634409727877828075359085794391545782179681568993252280430422020759072405018155813218200441438890586162580662099244707587624489359033648512129786814370493931282246996329266397641302634556685234784976208648423400056722826164265588081995614650883434998443733972430104655448476643822804958647596247868727690779823524027464573074506559230683217420766998406541332507245076899539087668998077647474348554821117932523942836293072538861757162088464626423675598932628417169817404507775684545490919299219500855509676949057342270644845554915650793917155426447935640269362566533225326552951045420858016007721662046865012701332831353385491882389881067245922132311324652417638988086728738692827996491116452768286297333958733154795526666292424415824097906796046805388391448339492370813758058658576592191884217388375078198680977343406114635944799804332495822882335832880225866753843733463137984106831433877003894664489997334219643118750086703834461524498742506795197902735061596807529365649135590248461543498734892849065458093742314202647130454853409569266071929225481392485840020023958393043812947486512686899061216771697670682084282231844526407576430831817359606905011407516765332124242173469956965983059739564120689898133565143081392296184872274024969783546944633267117761656307668178126033435028034570120958730556273841326555478802674772024662241174902568288879889100649934647957208272789118862111679001155733175776303400870088582213644844511835787116852611466865709507597917027720346355771485343129275737792400247129974080302505326330209678310536152463392351210855826360535038250869061144147159795312322639544783823605873368725718503127126179723016481788520559994063086054571192206764990983272205357814268983219473745993455509330340068933980387805879759362383668868745398488506875947890327410029051628397860331151003896400610203020531698440207317540328114927739357814336571297756703100414290154604415032706983660171149859615521269691348585015806512578844988702020294992687353022513584513451273245305893547284211247446494841193311471936679383733667553462007339210449690751079721656992787946507211166207900263789281211008770544179351364110230364349330341697742511289008004013489006759834896741061663381800904706614116804169679681194982542691336196548323377636405571040469820460848325154716635160430249453068357379833736518596828960172985507651392872842899421606422831141277883654261845959543136905315336053669372338828055075404982420455025126015521532539219971213873056103027972152196575024194158422441684866863224771551871031558780098538143850525542857232176975031287244400484402228135378755387646587974686273565647257878311829704718958906135223127756350808175213962318877328518135201992049425106013330453569486268554411827205007641198290696162230837253918033096011512299185021323261878269515454065117815353213544675552428720910534159179932760905549989390387659307300494148680448630423724144366471406576407648456958967225861484785713134548478163502380551693210532590126814333278147441760459502926282430863960981028156186659136860250471323276097270165258981110376007479938924139749493797059716101792596655128932750566172393972664190561971491094195366376869451955538336678712142982701300360734760971873877313098050579261634846863565648626498034719432949851405287361816805700913270965822274559097745657336210112690195959242484853571217021012290320806156288862333949646001875356536870105575313145961765464348604027180056890180775860975020971979894151162100865288090195112724062848760288075182068295149628922677456524733018399668450083713452691529326313039618368836252268417498046882430962928611056097205032452481835915087347908167027622471369535084462204658914939152737252520615324072047877243281426532184946623767071003465220667448988738115511807659803944978028690731534931894044754914234540288020902454545755940234596992128231906471280007834515687154077682780891070242772106347869835089301733858955524219848172294938618503557100150117154464865319245554480633780746091994891015869129330281225821174766864689567747139488925002549462382769600961318591829867732265867795962066522984839259698502826445596541000451444654195813348670225098643210086184539709859440581260323365293261275946691861965062369128102443567389317076259083663744239465183346880634319412829985859060325317973328906110226673535324246808896467185930373841739923182100696555566919783430490771593667994617616760618161977265746064301070707017412667889285670799031586554920911963106371506100098892694078433234802385277581043310043263844421478718765845541426369157214360551708414670210445955801193166001762706046367795656896539844034307509730705059174053553348703882925360189917353609758149059151018394180310753118477933644911840948122450273294855171181344267124626313606976062369982745950113098415337334286046300339230880338298968988411180335064976218008972224303212796179595510539098429849613674692616143110300197720553706738265944893516778509050155337660760543492730116056214648519795989976915527030666187973313015663603650216497180273264705252825032648388310742257449082603810190542157563860406662321909709062308742613216579415482063002011176194447078222749289827941534837700072373875547281276718821661526356203114117783553010848640023194760793287516758694317445102925507519620926973280465575447264036543792736742665852075269543432978288222850696936804306056555513190467550966186027161269023063883989479207811396939777300542814325326354228080386346970344567891603693357078093243087954033522766106926067877043299203765566183703669950928547924399462125001340528575510854625449128370881524202225976781282965388903218168391887773214167380554038644925770492949873725607754791126956051919435478547450382904335778988768889403233906502644877470301764923673610184149138529302134783450478506487098886008530153734956028559767128431427677283080255561935455891967424194820224863026491843078139250914467215817519091483374387538344510630468898843656557672821544173100223602567701349281535904551866276587929197166181537456638498044220307559557849339919343369161933075169049597439470244474478614510370602323487919525129471156648556233713372902692205461512928390340314008184873768292497112146930324340655792993339072213810640086134811300907643840405148165020979891658370992120243368269762572304355896396111886982261986442409273907905600716372519456214385432400217706133968409642534503868429287878576190786460854312119546441876239916177731442923009761178204786265653534002627284322015726447739230581911562451722577870183132555490934828508902746938275261446265378974693756830297884691166678566217216272702157255977388405961928108205911042265767067727056066836940789377398064290887351626519134489109341975074923116795542687852253478083730964328584711145165852080927070257267671999343985342566392409816118814915712743660719111087869108621681162079725910788796650548710474297088035543175311878044691039177960537355146291455023550721042386083593484113569716404312889286066320944778045290811636635263854533464927360015304648037490495932297931707905049876243215045897547298493066326630453355815638642278608145663528187375030620489293847445142470314925438099612395322282005034991123554703520709334573185214246043377524884774211660603957276955005433592801316986727394325294438158421244861829454116849576649082490798605946537351235108730012652937638909768686223285822450460087926921478308586199669457560288794498412454139662224902404440336127522864518765520038866750814642597938288885619157353633928139576627951531068669924016721439642892281244662873224617412643886728170554478129824353624433080793658569816212805352275924912337160541989325398753745614350579024862335493996223184604581834892302097192624964138989277345146450924591644215836054591266564116136455791665847970296888936608329935219391904823120217929095352112428168616844819365132076625909800761616758829751987165993970464694971798956280229478335121248551676367973954651647119559630045449401175301596425156085139917078373779561353968038673944779685925736122546120082772367675685106184392413144143146314717010734083354671586587296890583087054372030773400097399496299573021935396184951458517531349188537344338347935109926240705173966820806167103899429232079179660780843254228777328610245105717444336984014396079927230043650101565947181283540804930109407009644705220072514384596844861034155259437389043463052841785781228491885762377533572623555657894653612712345123164643743241342416859237460703918528632381735881590766517477232330585011895274530446793171924328192939529942609463929451709187404553524664723058767559796147535335437258080755885648985029340609743462791673653665827187179433560845712079890210112092183088308957140079433874541584584887831263577411145208824329972270555731106782314640369732253933546107118095687317724951044230763563849173366316828008361964280842819899503999402475499057652635630296145637327747918896100269055472585151864255847446267806922954031071364587009704040523714803294491491454116594997472777574757346944719813160229680467452389670145768302157882493355313337129819005659521886581631259033189627656202377159541044367372502407671233114509112941326864116357503767276674048735806928644023686773566895719640141559305662254498621355057099694321531039270062943677046863797349685263924326477953959934233842478614005282508015744914920045345746445277589626954793761945940248330080057928312036903118591168045653179084766462582890922099890692664442348393145336811443961206156636156798489135823963649904139594844210864667200932401821624464614710169123590380872509030470734638285844504227119240882063833790441275610274999828147494949968382930120854223887582893567274563647180171476680571587069199908850346081822261771361832334067315695823628747479001064435379552215503671914281294381521746892613683650787906550796492727480321233068372984046651975886437499723824057439954545113116816321240389729786734609288776017346923304300380345723991182188232509334627160567277130367675802968700662621640230570389771799385166494189891682042406258629176220504589979033997327289441800931968504914697168015696199205539294941236082188538327517951134975899252055458087179670289312239600768911857889326916143595545114368181599710074402008947621168553551433687620702143599989153481935250257339595911117931216509620430300036122350003300671408650893845820940278122046842941259647836956757323404574415375172915082873026816259729496459933734624701148371832522933829629779851381577583489943385516351454328412967622931388303484513019236598527461451400421010259506337202133873547009052766047258573251732277391618217658613742984111976140210116893621345829744868101106248079016160112788972735440768526783834579992886347189239320910899023936249132593712931596045973568359330633703598631113746130482193661099834132359228808028641136940968199908715857343633405108097329267875930594556837705908102069966135942425418885575699850957945226326330305849681462825231098164595370338124023146681615986468571886859442961037496897432515067512013604632197735830020406672944650927304394052709699889877659828848193245634953347082531378977708362137466398073532027614733448715096304459781521644518250073707931112016777822659650258908391485535310571300417000716055594915629903670060283474190831431493568448870900604521608063857681619073491687707190267227443888189280619019785645011367619643983279692229485757734728422124261344292410843858682275755810463548163051251904078945126238831630587440087106157029657149606583741472548368206621911078804331514118942497525988268293167800301928473259192172938776535306531832414021150899011679798279475959918437087334692373642638032689148381272161864878054153580971055604172298250977773692669022886965194708432187026675582575612708590600890589910305834039909690667098903317173610722780541200369698626006368026575023849018917481242794541181301278016114518254321123128989077041220692168934900471698863657075961621232380960882748930487708328218026455630824120582387628709119105798023745550497658482871171586443113995410240708566969026079719451949552922285961548245209424461104662548119762436402702679547051876502617443998409676499317293768651937471865486452666445749488763728521465133022612843773593821666119657196686355841238879400350595630541417240362736216356776092270022293272896153471343458922084932008288257811718578137017756158540509763936716495969544358695719880850977631409506866713956119402585102694463623403120032050950461574303924867647169031643175777896557446273946757688252567787978862512479581738822476451289246937474687125802326057095718198335421678521778396573848846883011566441953334333495610415957821973411228360070510387230183376174676270488328630494315802012260748529769742524790047632720997302315597288065993142573633393260930380440413712947342940051032451600036337324581510771357177760792107324021607825100972321659196057566929068573834587121425289175889739578585390971739664336714686193566187848334127819641170782159776203867925014328005172144288810708969688021264203239027777662304334720814525071807547970999376867255067147943178138393167804172036424951303983851522438340350188148236888945963822180645250125802672290591191150721977959065946805824430910750436882241708195348162895025354028806240764467722736795213094594088331022254155454164653946094388617114413480418170115836112284982867258164791372618354576172124545660367568228137247003655029694792446197897228118341716954793324625055683883753345801252424339065826166074472716589287541315384805497655891946825904554622644050423372217518080264723784925041845552334275298272415737096826215409579800618283696709148839741864306765414288173939203005490530714262876951024071357237002357093967835161688781685059419817977043898382074844809915125122021290436530741143860734098382876282536372732396485965493647297066565606597664454110820288969371998510527035516770349754050902536833371081051994074286112147670325977490709632473546370872352232479632362443814130053353608714779204288588942229511173248080422643707632335536695218351291160525944500676327780183698199494743189170718711562450723690164296148389219032567840897212933391622479807604006959587007761262941602487474518930761329284889597672472092163773262798140040641426600361859878420906002014521511730774949973243165815080361519753581356084526160858905240539783442631000692816098644289780523638907573040999179010711133989528222942525872183191910958696431824036324046169876510604569002730226452646431339817715337051044630666625112480857556482628650312080040295782308625476644579934751481743381765017577343085104364218708170480840707164671273935743352077760633342594623292166970203517131168305539837406709410456007459886791164259213187224350717751007230401081785472928409453572550749982984997082816781944784262636293441599901025987797629583198648584407077381894044779522125672418737181234638075659644238309498853728433578955169964791571104870730306957942714387144269161621294014406524650121594795810818021590575944725426504485262382553588177654551397847381808660143137494357571771236887670025308263658544289541364580367511454168711893438953259984028453308821593484227518698273347225347758106552614887164011167780662260197375764514809315494345341285830339183604132639180100955929924467296231453257440431623569186022295811834639351457515575491469823474575773196690994614104900532309437054468170421514056008296532355805565309677682608049770062329303307959365688519567402222611415904646430455965908280668798486034050378187194358278000287774547841469535838738789159080976091595436183976954476097565812659356324854633292602218163345363979232352089314674917423361528982420809877687640166387432270486987013956870394766626806878219502884023480918644144604479689202151693958138838139950484685507561692888231575134059656954873334062681319973621702408735255486736466126480226305400181376754458781706149756566197530096660230046087026243778395224076031993867582030519366792834704192884281673308346116774877268291958866489847456455079098909309128571194135256721489711721251583720966143505075585340981448946162468627348643845321257101541504542516052555222799090105656635773585504731903317441730018080247538906843289639758101611647051333305341061411511928525250055046125081441008075797813658145549015329568177989078350389075688800717404907229135173578004499442854931610833644818319695902877463613836970893643390828947205812231078079550696500589928446441905967533965979717171734473249300532447862118867728604617481545167324807256526792593789927509457878105319190148479052751420944231938669157412515150525261826236250301195676488601418917355879057452360927245619970721542293263747612739767508412904381695823769324634864993346019791935746613402559963967874592644855197732710801805525654034090335295547634730631264842432397807153585096443050531026141332714243492593012192917946353806921256726239580406406142398549280604084253142213955464141885937811640343036136195563681744034488361937904789621105166328047924708445542431226319789106846509071250382281604423908417514658610476222816462725926935991690379181376779312006572305611357435154216840426191884708402551229598060717956337355549603855101330723543481430831241437239447557471458675030203181290793794319377852969042636688272829045474567864600128834013085467745449933675904513260300666211957262135469410296761311061289620442960815854911075457252696125911425239395326524056623349628644713087665187702215288606699744478816185622504973605204445034887449721666096521093086545474581202164818940761673554112162955317232145320119055450127886224072174234788562596907372749929426507962438557615900303426231068548753693353436113395108238759523638056614134148071567839179217287380724082206377876023153370884530231862286726296178951890718466162996277703729513215641797170351586274106410670546179535136793551268501459145295276936736186477233181173282432346746326183438404797692305999762885507767156511499469644732518163206565661847554707878461203156586615872996424210893830816469353594585231471640180509896955282320981148471396446487381245852613454828889070187212253442724905378809794028872366933089864412295954299678371131223989444817374308972808460062804004636570046286267996814757987352687912085571605757700019175037364276548578045907311802416880364877356653906235725087842099921614886387434745588478415491034023972855780788801054570758693971856917638919002682624250715522652036771048627891807083847250837453110294612705380426519071860823652847314619828826568515873998626668087649327012330394220852201932757280917375128424213148148799691487254039597298349016065070896038283644211157705211193523214181600857380282163697382318839735269938968466127982407326598518025331949678472826613188742847801414020278183967376935757797759445809871691696328547984920868941099990983582395629074213895311369083242782442143316242894222195028608973679060235532780375562273982794773033284357957831399565932434449652717680493796569245137999387294891410501760795658025972404308768180096855585135283377756979509905190245355412327677873705272075959071591288171895767406697248613857534638160084868167749083957969915517321112813790477761858508511457701209820269243629402615386090809258844456414732442931061666878097746683327054306783530508846167767265064584844347807094096838774463280622410923613534904150874824773350501538127997609455177959670806382979337889316133830492004200870588716583414735735144817988006545765832703595648312944097453693650082596491002094265541101432720651626243003164643124835130162797136610106519815306624315182621609590284685176214781836289897356362740406685768541911932185009410831942370621614433112707276476704488775995131725350110096162579005001255030898109630082235101120359633653096309483732130670730443301447027902896083012215023126735806849801868574025391205711971716940266635073137487168476118207076970962268914716784754934528740167403396058681620564023260837850701658037618846043862987956729831976530412006991442997913925224874692866064295843695410982058612554166771842449510398583292062053172008181089755633066574606651462063260541566785146501955276690360371552506461038378416536421267265362034993336810735135013752545198810254258754656419635956165287184693489295304454665475749643838908992337906166300288038024071379528691265599836649356687195044941858251062664652607822074369856222084786905987821955075952911193844639896225174914915675859502891721593649218364854574957725863734916587727428249352985618846204676469293962804049199241604781351792228774507349990003119665635465942682438980774273494285231765728005558567384948821132787910747409613377701431879176921605336019691031460141006494780628449775514865319411495721353956202416949056889989153711966086125314809419636462502599058797774372315037829218643047558682796175376826972393662529778245979234092706060147722007288305151210498717380961585098683334515054102047078500502346693988290652347873839535429460545803619579162850558389087844842962399253528810944337364865392205779146042548389369129513740895636982969608404130191806953518652199888062281901249713064318225755825138297188482328476839144275405616022450090016354218665338680749384660691711280339019023039575730504221641138844386394861733706920282347387367427007051633366002819219791443813781103269266680966456434216839506175828673364000230739835373025032938864494256938216393603566860589673482475553244480658202148030130913006330708014936233801518362814866201851232190983944547084381073066106609429681956958358164428585308472756664993532601880822186428252214479891189135007201996965891032934944143421209575968689650051596873434363925254113412700605537164580182918574774299071980423071251437094964268041562737853243270122153884134185732388492354828691093852584807358346986717453343331255035057068577969537747568381440837096784131993033854907436547481384546718576165268659646125586108172882397514889416383662121763410702156729285086130595848600564975057659190838810986721712801280723481375368592394790543169454364167424936145220187161652315270862501214378793722753869136140685592898050215559277354360452031387719564006858858641446511163753133465635457636647827017272990039961403938794206725567116209835585249130885024300464516042428781882705689187532933607243262157842955853789221574653768928117343805505748048275825819360665641901169734692547968276009002352248246636836051496263135467915903605391023679987013687179030552842982248837763397146667484844647517900687752930451551483551147279680502136309762836971055682757922837950988386696890828786441493881012562780682806765964768562857569690014405654272910311771492404996369615411180104537924015103463217869781389041438061885971523500744098025669171533324197408337287111333066838668503377101037504520291157416323892226450107102844744969930875851699350560377935458093677014655461979340975365546740776076707419705091682382621350404591868808360730800709075355835001270980690060144475940700300388470520495986059880744157194060103800152725238765563599039755595091605870107081662450968091537643677529601235229036517609751809974130976620431819184282213172964316491796626865292176020893847932377655803095927670473788367588960980885017595045016671566740327394938286885762091939092744570227294396713949478075587446591282026626260629146128028767687984881858412724585656969579228150220426078860495589970956388143339870312603990870979949785984090112061331403618522967491627792480314477869118877793656351236963441814346242452172500361015704510735104760935565662931640324444192865649281953238128519087998574552420975968404504016407794378999845201499729032956101291895168935422862655684289401145635650836205026702159648298150016747968262886862519676466451661859806482041538186830338245157388622783613808781776351617749220811257823984085283254775932055506064256619378678355682596791559495934963340048960129819799377834317996054386432126994053147149317448233518342119517775541870970479932907297911785871939585734659873517369172758827605365831327749162341668655031104437566230197075880413054537982109063561938185320677987582771475431523325227393932039713150084273413860795801175276738528988313867347004403286280739424566819596692614564415029371577301497454375652970815844092267265887516461936362119466809040803103850618466652828052258647000660621163351687988577222349441498857823429709070683325955063452473666735885917312826734103851623305038245344612008606712448071039852845712820656096825524012223003228645488610701847629685207539284359398122861295136026342311290038187549363854003215678240569900224378675072953790620793945164510980205882734030838219386844097486524837361078585893090640191975382878027027058016213128394141317809842159212159224539752194064878297365651576700255076636475758354838060316715706345729615312895445648604116697568260759866750606525979392868858851935993668232463009102261585329778899111148862311924341969514409825666831986081978508864960317135550833237805678196657520338792584468559835920613062465951048590209213134314121141865369933532172997027587800284697644820189646968122928418170812416677051397208135637340753123386460855327223830361625716434757333324781364928958844735234471300597030556586921720280919240647431362159141241432643509625240585101237502181833795326183137432669234414990510810054971684746429903814441692683666846957363255124694861827140509342225892610544827769100074453823536449571820600170008003753215923201991326698057756690989305903229253984993348060473449278107382461768417750753573712315208506252411384338403076888136321621886972824435071005705260321510574495644298006452800401004730953191610680233784930194345296457680049456991516726632780653305912631750500238224509698341213548368059511863393605607742690726285953506518096710097214687113589819392244951220949267567457456436465285680409846112078258279514110845076420247796181737855201037553063884500347875742546591501814668465092287982755522774680180519290734071455115385275941377011215868656869432005440947321756723298222425458749434709872746275377822238738694880798600922219064258690360304265471624718504626776722594432342959594414170679916481512973640191423937455381858977989339967741517966240322694244528277559860091786711572240059580576674126662302448788972484566165425646755135580773293143233267905923012829182411095273299410989987688530738244672016564868691315888113440143643621734096180770132785120405552376789927358498605548214907452084535750736762548962707168526900140013957819339124815805083606612062117790449228305629530024458046549963764098825285859978035944667827377808656820392112211457229638504513911492176789832741113576005741739279142950990363086772979544040229376728121243157621595961555505561141519695694760806506394926641908461354777872287664645676917808359201156208245999076028572610253400167985652885917648667120625286644481982809244271362028932679700403284856479338884552818455393537533576935300461169535757278940563965563889590883200939618768695371373923788096676170128798920426445844859793423840591020059062844750430128412381456957401131872209272885366905639900224497911078312524087907671642761195597916303976259955827501342669859634775869828710602531743180423948661974782634586613816628220788881940543316512449594269273268743486576691789285355336220260733823671779254597736198950978310392481619581120749579645004427134624216545554488826855233723827965815113214139481704424392274601686496337264172019926322968130559599857186008260212367374449028442126957349210537156510688462798899279120515012212508784448700598735448541323762779778097220213998629922307070658100467306783863824843232635572136037353251643070641744430316275049097133625222589786606122130822553315472530387099536525834294497148775134503920541673161054142096681156901549465310281932010476231116299279094381760206082000193731685919826692560137580324621096428832883479666572573399792168374144653914211685599246325021223659035202958411704234811155376947271897725628623949827263591280900444217009830244079425006860012116709097498803590084798012292523244491581007508122629033954056254170024282221766121180973308301198418145588798757745560659959456644801138886328569505837928158559216829483466564027444266779508853445373987995872426113856541072230092996208857450517886270274161496594775114504204631447510399607524069429681251272437058309838684859698181840501139370762918111176963794159647373972527576410879689613039667996637864273696154665796646907551111758421796844136503327004320824657282288717340231366644580573125224648038987978353034977683201291319442150227672936093324966466676100830782299368669053260989198246256424305939625144010188343162606087115438689757091750635847117457238860747796086330708074084644546993472120973476213085000325116958899395177599165099816082367457626777768877972445279164275404985330171407629144672903047048227859916629681790337498128058155495781289560277329511698453651112219536765643465932443682937977584429930890486965911206538889711994951275450591395340756283763372748427923770466487177418444967052680787629388181359424414365797932131292038144124338086708215158679566344170373901405756051160752120549962445885286912867969520324899852672732963553710585342188888656868795301145401086685802652563987112490572235896172457254692353420235944607167755738417979209232611628348431139810559184437981884862246270541272143671976657973947352841930054308904726390776537083166155273992578430395092764401396376574766108082314149757545961398094065295334650978540059697050964391392223345211965073977929483857915151913354826036065217195017432302150243463014567672151625144961731476670203703561702757795529853906047133657626330970114132773556255035070304156227166475347464909472677861836758741192688693452841864076624821666102395074497778314664067351454950360284705945043432518177553651218039453701360776548372223996156095773386543463988765937963719592151413243100074964808479987805528312821748885468514579335258253049174256527880327230819139373352130473527717262784492310173711719738442991018377532181842501100901755005935837891284704838699186741981487532323226072565134755616833964719355399059584666639123792865526577167402685873506573665204843584402854969873344962665671707572198112933321216902343622106172194753496971958332309715035431440456349861073445144983072179903714199736954112792958109428899905422392490728507176922125228357150384565566427759916529661607145122079316559038176871525955938135416402608437373862108883773739617059051956185890649853374130892990668183124250239707161793327009746992418361370125268724952501321886476284129622445220278126950708083604199410450904310628768874494277536054777706088756290179949671534343407199754744495573604691208994523558872301373486058118667340720804031012633944718804656992237367550765456443218537844161521237367540591444164722613597623189516330617962599150925504808049608963449973409330331867732009756989744271491506026894923837341488362841908231952416600028588110176742251938841199829060322168749893660512324041940004832876344950210822077654382941520883811032147942167687914717482337364569358925646027380747448467283093235610365990042017603950424328154353143012224619606297932076002125713855055135417900568154510029399143173134960890167055654196086070199065178709229349363377503109248199256915238433998687580082164539580592323069785277632264260602919480535171527335419581352935629090533529799251729016436560157801878507652178933834287073562528805940792436573463777034816633271576447132132277272476044140286419125064882247451732633519705751545004856436769004500819775229466736945293630046213943988192830028936159016416210739103431451018411446148053337993725357183333358808324033737396897043198661004626126701058267750065783442245261407341492334613457027441899086417844965694930454947411332429632615644922814927304571855138130046162328058355010815678134177885683119731924801312456573785188253422801543704756611694164759520241839281193541923123663843824452052738391421384535064892328703991268186592364065758450671634017348612684569198563284824018664842873132697922011831398070056715981046605050684635211256953923119579737287785640270173623407280553599051204111883312721406578393747783256759372365458381748666617939526339710748634556011027342514918307905188721648969374254230438483951314642547578071357540161173027262052273455343373706721652465139675353580223344767091209282780732963117507155447602805408119489564473419049456362469303187754353800981790949244336729625802784323935723632426909457685096833814775558444944821493033901535932514511715286631735879570686159361856185837602862323893301887839524321170782211465269554058276554931217314745553196135972033731540251996453653181911608291787790992470341961113753873897989633168906005356894448446493786137158699575444191699532396122030241081871526935185716519651122718567539768142051503488482889794032543389249584782991349646980643930730486524408008198664829035501131838394977800859447361972368389246877948243509217259192820831418996555297118162683185228504892361238089373714885817117822643844677474940005343710228525193290859085746814208623792751005400223250928526917614165105651334628176473853188181154909454047093009220436161724852615745508154906733709917709041037141529394555923549175457274257766301315756484111171898840504563527584573447804234949343300360646971898397644353564430417118422375958615944408969479302420623998424251708809023984744711838289312332798874349895803007295745178589641377006342445675493869197542215022399547717421654275821296543376943135872230421369765256822809254081441784559571461366936212852088342472227547028156597326928369580847634713631874797292339552791116818282441541966696146495312245434874424865979683378950800054597771397805146338370814675806222236244367620069623726415394695804154736736138390298423775028645412587651997760141709082263131679240139145623047187742301518908232795685766473101151039541894368089287472718234123573249897982976993899717459744603360132956826460461900639273566966011616724707021917547854393141263812525742375382865737149523327258188576724595165128674516867384719431043741145892211726421395409345456769698152745173116058124157101617927858947307548016269124246797348409480647742082141734081716679285199464180616109367029751861925309610053554391060608147994393475384090024201449899157255867068293561275595966770953218818706453597493067856820108181595725113600292806663925448992202374697948552927399997860171030974345488852817056226632984936724562181443741887116104067461610728388890720674729833328880927899062076823135670679669606581695764697672248385726727948948317702249666563995636046512796348768588615988815180077139488924358998457937670417460726120383564796485301986542990673732086162304844770405721325954812753262597591657701342356026123913675600146520697544943025202350077721089814005753946718151283678873651937528749560264694296603007951517908969995370342989788431793959867076371768204383876327789507505901514091430181231796341451053380732665029449848463422627226666252902869502804375535010973485574764896483950371294362380259438704255165045672021498240828595745441425136905969655968728708396525441222117806284908647473936905959612613011835001480662635583629346424222012299666422486975747887155718063750938380771051600594766415649516165093084853195243283913591798930626396838363584361645492308131856369338614784146772645776094033860032234129528339357492068807310639851561813025632734787845912671249244853672802459751142296866933955394508437143701569170275136322346004914679121590560231436047633828306534526710568136080610873319447534608622846902005450380618545533169487916419178413419041978877746597104462266305215918188106087014093366171262164019950928063411699756160047329893699011061774111386802832153612223581265129174562830361647210353573312979777366614103850447827232740480685337996875407563933431550937682823063275172798062249137310677325204182170933298646354119671638544957369384675609770937070811009810833083144507707327903329168307829470591885134997012413464459382514780661440301420100149487666540325225443969530650674886129495868153511546077842646505623207080450119906665586150810743058289694095482443723289102591504482792503894914098095360610491819940603944613295615027358400216987893008777517508884568019509927118410584651340348584997315373362060501045180178986715509888502893673536458273654047826840291910925331127462203446756157689890460515457667631153594070792036833768145539672692655480565712974160023998910752280612935162446513549933258915555113883746106086037850003911842473061252916680503963860538329875834458604249300256100849857469278147413361338984151222908050317192863504476532747496683902039655654556616267658350593552996030505030322729399293848533853739552238537013118755737206868012749664481265805550051405688116916705122016323979050335559199350275848405779400869029305409805378067506600205660054496420193152628279504009199206031766871427483597647793590923483552595650944835039418894511446475767508801624250797933909042759521464668009383944733350247697404302876323632060112540606786904488686754750215431268863033621090240505877058496871220619268949451247942484978989604953833722068075916469659284466785424850143092856277138078468188532392561343086358830717029860860537134869735025027986424747047938087414332267932385855513156015292856468442829452707827206670552112159096757129209353672426407170430751538349938565638766138051158942780720372544685561913257423344795537444565616070006177999407839860553284786668634492654189823247982479606692552199244197062147617154815182330385664326551564328183314611303193421607470810226974403957835522831066009672310521000682731923529376472229026484493892625356175813532908860104330766271958799741809265362503046347729165244529591423435937678067521199438960635251497410117096737933434787945206201461319341750260970609843243470510923573071389112525777942702017996907619772150186512667628163899492772296363182424483102841930925214634020774215129157977117625661362315474973137632569601840834768323466839047745130908005716240360171805369626498048717138105202842670582541175060267302105942225381267409078623580623537261435686111109210356687926477745673516292911549727043440001507116094413687674104357357054100089927606943999710796009866316756773590055107452678457920132370760849413608142560625668852802454740985689965541288626977613447022718394429344468681255043736097716235122897463922921979120353455104895564246195266430198579675334496615703119539873073721155694047894851234037391222230858194475637597131973614713322626076890132980384055778067658907181718483571088894531882908473826962265431644334146903132766177873566480529109637190569685997656853157440887495782526902069695778418864708354749489297110191051497680388848381073124065972272035636472064075339231423306856845794882653737201258158692185633314996775605419299816003454188909873336618802398030243098229450314695177608115005256145811780797987295325146765628177386008209511751532700190679639291274746072172806195232971723629890009255745916491589172109033803979655194050201997313154267151662907654994175872093487456833034912414595455503528950547521885166220834014191226068167390852573710823785640987011171015531923003804238666515075811190803428807078384091593334716661989561206784886571965066771260301960988390632420128791225318997074325718902693836787875987208270588764788477558101529335595979916388396833763774520251909322984991509789978541796051700601534259085636028696089770016306997289296354413095497682673355817199905880419016664700723696386992936524294745381157685218406394059654098279300970182984058710855142647695273219504971963308485142402105041784879003106623788337152985680987195047736694251753879565555230096487814125643605049126464930780854743031343456705067536699187315320349230237956794838208239337391793701221434526967145440148622690152389382670080443054594657482113514151406988119318818523760136124167508060689441846202505636118479513043543023917684483938902729090389785279429416930539273919990181275206042598031086814541690797848711337547755896889146145500604531297322298382300310518273287281240922105329694427234429837958414842481965709551903189832966165510089279652112061281246027716758121112518678794080986511151469056309430707656507833325843087675245989921639573266613813374144773140314501500690826126609563124866966947890646553243092917154207268442366847748536282465284351990664028015822768944745791469906906712287022562161065147816912355408509035098479674058929461658531076788412195670358708996145034741771828950093069938474438407042902345933445847669011043930367890317462373257457203896858518701483661848687248491128436575718119594074138224264282023363689037353824655183730043653779389861058352917516806273316594189084437390243051452870837326962420233080438067410922500913610788832714467700037034997812776137746417616243839828351758982143884488629678702407994305162733243717881792950854438360223883751729949117053653658354839448719326330793190422831183387918099117907033194273051225840295825643458217595176547692042628483004373221963455240482532606761934073254535048483923370800921461615622028140274431576103790540568876224348633668659346977041815479969123515280021053664465230188837296576179841925623059426398966783535459916171807569470255346119019906577981056688729384782218159294533701452311648477043893115686506878142364959331277512713630933778800721781902144412767464179883280647217359002904521534726582135654515030682963751077288486842556094882060045022970269029923490215428360051700566360599728098741574190216682243500338799017619567701066814910494050322000018042833912815913692296158917452270860104684571433085457038729993192431482398990316329466865922728518826052691675262493372861367121339845946748351844645320010072353865472284289965374850486644685560162356859061192092389507506751765440640392055972605971081149260773392314333697027738246385348813615625759184168447298799326768152597081168871165034709237126773695529632926786509167730513522537396138694191740624858003051616393583487209705154863291564737329674127736990658788985549354878207873875694154109725522860819523181302641333491037981180902691022236518234772924424069270676145214159356199738131260899271742056842069507650945581726690210546076260907418873872140786620188933936762307419514372663524508730418817559773635920119751761628726016979628490365805530117805514255801585391159901500805182848565263586312738779592449704410604291285776481263936827325237150015522600686235012250414021993497636138464838402989943423358952625125890682800326112894043158893527244114112694074212376482295003813122877034577481099565670370896379821492894189319812986070531824732629685124184009436554069858768036506865995983903828182646690579573890061902269482441286638526754399922470319494557072581864084775408393360453487031240491183330102989384245753667215644028382288128180810257931858526028675132818081534497851136138680240116947783044820574708619226465757366740063542549538067428015250617785891635637038211980514125916332328672611809467776067321893869013587584484206879260674236381785331169474016423197085651140653868335509970018117491884407192649584330688875598763322089051946210725743019142056399023260627315219887831736696097177596842868204297698753507642786288368214992203670974908563062801024236172815546414087536620611848399880040600257597815494758206582276351032713874269487927573749164876529324372849594943661615379157670238236672829030521768194465061969285795353415771476825740342383812179363813709627508698357985309395860539006021660034870202835225134799948315675556112007738862041869532342878517766382804364908359705852752469059917757189580155602371033573286569976380258536286236089789948366327375534707037661527680010160220396279293468931273742036405051319204937035584683742051119849255056133463487101877479931181932591695280364137886823973941006180073603880810826870647391562638107486937681145316945925432598393584616790745243461725202759465666289053048459873475933645123155382502516378073916448488703683397282647422032783222815461590134155785609062163374296243352835814720836275471594667777250326164162868337536469023604628934003809973212433966052194628528029216033783923952310843309945864151228682579439408312261236018879027238819278152435397803481996362139703810963919684765547530961380185453249211922928413161247421039900812741971457789914756887488792241782400741779451497302913679355883731163290487381991302294843617004730393621118157843828052917506514033679474873829938125866919930793538815200506756366026836681326078586791551956826904275626688431757646654270013126100198350512855547400011212633329028573596311445152985681404674091427244681843601345387818726515649864202894845477854706777103200322622268419038863155064922839186306623572797672239284498415928285700863084274232119113233186310988413887259580467300858561004254991140301567692539831247112962026185835022960765264292282081663261630634802745104320018578239557930561339032561060864070925124204295832853259311608307390815446813614692487733349224689406284192788397250633214561146910713969300222341576908201553027279105010925502885808860149796214145409734458279315061786331642880144661142477592141878332299439490602544520854393800044527050055570407816497375186777366384627534459809507864972712760443242890522811922843049532287995249553664364579774976198202519538907723572185127650049486441886886705329790278549417516669755903595176547128486908608538654852150472044282797750949450285204933965014039697427257706978201352761146741089088986741320636204305094761459033942029681764303761771614005430415009228351766361424910159385266793618367832211491759468576099765435152415186506397431644892982111675692366456691512210123279438854245254058301230360113442117360876217360320888493386609062433670150102049766589798085793390463004973749186207930039636429914516282072450060221565548837960503066428093170091041920965045377718845369249467918611002858723947048835084784435175973881932235499753389663853011468963647300405945277618994011600668220024834730196988677765045949055135152302270091220704611074170294252406411742711415509966583046447708162265610708151551476892535073945633367542383117270070588158810078115634737083606027540012538669920125621561717233688732915581470683597858459221626303129573015775759264667889767511166618877411753809267657247847605710511932596827732958661964417032210375697807144934783760415363298113716406144869315535778020826428516200253122658001795353451965117987006594692718042382019320045063293927999773952481629051826516962006587201320073864330145921758356650097299238880735438098926489359607802062892255406550139358215504324919164694449327345483852980038419994336692412054610571427895807920687552457183159680275313306023278662126292603085155164030458154287222249936066609775813399908425098760528299173274564861936575189839247528489065962050889385143509895804211799885802514383826801660490125654060548228101026954467587022739842083533261264410543026039858977289942293492274014890171971237863589084590850802164806699578689122614189610619651019358276707530394120603669242412512731375769333806324439925184478541481315266158623105445711314389662246914092387554412024756907868737445761793600990793002025184965999659442301340371985006637553035825676660857692907181156372297762506444061963509767877248913241664727643862181702511654267274918060332865761646744866199752137603027162629381767196957338920123296396411737439036666527030656308147926202859086051203620398332317019883783242018286903951659153603085944911700199487547671712117330757430223820531705867141312109515955546016618354647380265562243091444726008903997317768503178754092541544193692555740492303724878890139114664622616955507832874959029318076746323501322328905685341123416946470811821560184177135798554515465405647613511993630645164412804934772125959727103274376950726847765552582516542198644217322734751638867940930439378141041919224035587278972903857497134926679840950648339372506233605356930494194179227098793971026416759054565264915612585230832159412780898976800850999420247737473098693121628107130678168500926613638493946837860084692105314679676183444019626507735453186062251085830883231491557717712587032195742454436287736924734614966034116643765765952977002055856478286986412708626809131790177886952329926823173292967869478334472600123078135462583488782519232654536114536248821718857111917338069030693230071972705132412029565518227804035535610069800650945869967544333321921786121565127329705041091262642122110355247122274295736098578283829998013585732945940644973992687298999401021615541479726948700201643208947547984599668247229216164190644269478999152370472421776067093890202770510664518739262441960266751170891746509455923382596787154236974643548073332549661246031829633815496165498140602778616189212162898138175455017603403119861221014503710634690730248902508628577045255143107254854764445099678256236149411034934569482218816262282567738236614890997388602782892059293867853635540914464055442177872341889634380735429831163250154880917689521821190513996890909614706241358077445621912344671790038416647916599850146344654938338742877632367441016984184736590815106486502905141941403135188681860517910509984832784013960142836950288641782214647517562796305424510854099884372301186099493815218080680519391392821061742729918884780870856079993424123833294416551597103290453954350878590590959853209740271984926907644214224121942319374490677972623204503695518592324972231150040811139966633567155376618861817234562895518565964304309636633075164642205406354375148053078279968796619180267706088161407940184934652422356475233678854185940440693650115723027752080798496631116651801479516608987882655458667867866832186292626945671848398266350394787147243292490171777673285106008740062527644363417192427285663761592229118329927010643144032390282965756437546741998493318917793381253301363527653706911190132251514069547655551750547601747832345022159509854599331974742636396055670878371070016613161922294571002183211242348048896001667936328886177761144124831174029098660103355840017520054167921205238396340476619914764496349551961139574421561194157941502332007869682652644393305127341436980249165872572694642990878822239463663925240808778733890690595547854535291119979554474833825824469480602176534103385818537348644657653774272524753881816926318502520720862704116128606374090672441179523787469625224897602249254174046850936342411761127952786229964849753971055017184080634835886139162414494371171695081151718268719461109471335614816159815418244766058379564734587911073798518039445387435662448534728019289749157036635235301414120520276032209553083741561366340564563186264293847941525519617474262534678530863261261631201313726021104421488803787990960465059542507124864270859433530558896673260293599708307801029155166921055453728447303015712430069544456109620819857145051042020462530887211572709877682830683422418059792535191557979052591187101611608573477034148507786210455336984015497516015863216314035209776047949002520952881888007799606628770636902773245322862901728997695065070461985572169273226131642990259612960956848763844873029796192115716409735101117170228515865549741487719495527660204274989269474151797341311746357277827186444954009690722062023817443449437182655446580165061239030348244752773950307372032301518662997631714380863063655690547270476717713508869047847764944759554661886939919874410246056708643905536839746640974768287778447275472652313674640703324656902999312308872229910017800506738035301978487533996264163072497847121680267756238176169337746647821032392292731936312637582737075351998838065751556325656764045238813903942550093140542617832180651230219981414913628027183776910727824894573061442367982943259993588577744486417909488299753268238498252686310798069001741343291845853916515372881491930887257781901175990601222352919477923459627270199045239999552891713727527029091676704967177225245298380279844718249604723303995584583642896264050599384311004421796299246674113390368187027407790424709536448797739472033991662216450283145966378287378416381980784231771407940035315462651536590630454523824320191845554538302241213222768972032571132679260521791671902512058219524450196466831623026218086468120460027583498656685116502018079502993384487583827737450700023262150357969607704196938723919177061806637954636997048727899291114635963161630665772615233952102878373101867405397005167772684937703290453508464878030276539017935516347572361576263585716279874593371375993000871289970378605800789856787210139082713061802710826191108840657063050895760907620747728751715215958737064128357789345100700371035713410760211391915233067274011828533304336065058268015379937357611837869570978180406851173503266089623071852970926462818624274804761975256587071419596877186164384201466723440277780290989050313497067280043061104059271333081438288800581189901118022998601450255470753142600275692143896578317388536935834527649441103414509790526127154542203940164554203885345179617999138159633353732856016816194833023655127546020043123338474926601633312229268554125448538571130507590577463672309536193668875081076058907781901203180861640809642489944646430735041641881999452873796282027391372065846319412556290466593260420246061831786132440052808267346229944367565718374441736119260718754010932842236001689740542374624170194895159989597995954078464047606063112278897812046688956528530670217097584125210596786060701459705436942654483667486531324775789200588906790316713603349706902949371432722099651067033243304022747716088357504455489725387667038794744671709229236234747600423927516964710434908977475568848968910706366494165699763109486572393128102182031143899919436357641369050635914250894203040792661589760896205839361782618940210718343697820415887612856026383045992957041239076619007815517814294959929489281947006482040207151026415048809814797145564607739848477965400913848827246308950035319534927697218661654177958760095877649184295359068465404531251265067912306295459618900521430198596587083342304710639677793176173815590695020378719671466998088435644831919266561346164905801079235896128329792000426976281750542257527584069064826502194669420003929759972899931693159292394842816289461913835525313375026207901289352601771073639475731561226349499630264492959102619652666490402958337537196391974591708418694518698329255814429858229914350646009315263914696357715919557798547767326078549191793690849547663798336155238202317699237431481363410306603531855002953568774391407273103075035510119228833437917024761999204193190769581946564000570511570120570658479334180792262167642245784841044797154815163664792257740824194412551587077798356534130638454063785480790675300265932858816038812577267838970395747652697416160176046702027952527782563563012350314193980573358906052951772541441125285232013162060030566947152414077889512664032109342900994821662219440646580042852019554650446494122684629002485293867189688949450364703499843530513287960496503097922480805424598524915645540927149688276141655252493500290308838644117970897160486288545764627507826989736564096416493494015765775217021841655129248142457054260958794577846969516521617918238422226616553278120434795949025816783768199691350253645734107091373128370986975226820893404589321745155934394799806050768598319051779767589156592340622305356338985618755458315994899090870146301938740338505286907689722162712348886630772890670279700452873088613138469243583866603734869812360964131809037289614089578173407263902336875033742210147411923367890062661969246235880238678591130460116064383922257106248686210842995866521452546975447356487239754260914902125857766041232178600371768002283372299418167361498565245677497506348823564956351806760025886491866646498872020707569640326277252384955160651648002673401573246730323561812687343623872253562336746987124084620609671741168163352978795304953065246555383758706787028044607086036493581167197655658535688025915534235013157722690392031705398663457910729906626023684403255710519776751790976013121937074761307304603938910074947244864983787181851821006578067609268042173322925143243293429073722341465377416050010883901161543154789936825349384142581654788305281002404381369514164518586064469978392146431557007370955847446659147841587630514117177294616874074512278739151731396783109190460283954129106394810644793824572940681259178505749697413023311438887048273448577829816255915535150151769138374019991539591002962500510860864009997952029678447281432419585231075630401965415369381628676331324584792902046028841985400384891332623057832588243419188518091007169652873387028405897459209462854742100321576806395709173633950273748916957260585658265608435210724029004507399390514335833799710581491277336042473359145879665341976297630613230637529180688887238730234547011182950282619670633389183522102501348601457679685965171609098078757526460940190952031405319691940724433634435426755622594466640402528904943906435778352205233437223130133813455374893843918542989236909066631035233250413065557303504004229962946392892557714472541559855510014421396237226666915003426592591515121962196640246076207809248572694725204929733778534983498913776003255697247636385310049784262102096664102490297036994828400302193567365967115481848952476458790821106806948475884800036742410005118617955979855291838273583043892928915509987067103594664894369007747488729685561361345541797328496263653788393458261332127939394313351565305396419902338760861040799437339804903340160329767208327177059964757917978491677044220975917138138380044549482504264711242437459307759181931687006424001452239997167032133503603329885279601375340236674599878940915906552883612612717206023567615947587919061173793631073805387754878011264795773288603968622668284779798542261075478866915029964856934122113225539915136106134993610273846414565366652036832679209244670364224568250742012014509230134107096836664721096817115155353392716731090633836329867219777753919381632432681882788890691403504591238386639541963687312894865027410661752648157226773459222639142162736934298781420961839580983010247542040194214758710567530093132226112464664613871766307964067466684771734668442345551056617352995510414346354767293825942064082609395420272620307654458862542008824008720024455717584958932258848840378650080133947073610931547208442141524305464514304188847477487071629301912158847732121494684534401161404065253406896508118461066055005800813277605206055221266444754023316902400560191448626966723479956085794043602385233765329184313699834062524792049356947714023495560176909837651058280859618762347283080309790635994706180045643894706302174352609590367380246012468700641974361887905233362374117761288967874290466136731065875764642902976261568298331491773026443641479434770097913722178599854526006580309868815971524082709804845248392334838825478118586539155283030863081673932190689107902153352774574051546864549319310457094524649850933181603837725839549107157502528090298249394744709705838752000162182863410792383861175078050754957832764191070877872749955900081500959702837976882596279932116332928980903766325369640254527823127719461013703274859172576749695977237391477451322616857851972644150371743637947858816359241412194232681798512351179363741420119687091340538780351391997963312551168177999796017429131761277066991240254092199625595931616664863180643465433004989278322409831740185157472664135271116922393365326565948244193364772050293548907907696989449913661464034025790193340027999656429873353342260760622087750715636321819251346683802464837505380112643490356082399394935314270791017666102552720404364678806733203717614630130277605741955492332042092388286037972148006043825588299352080309863830408148656732791015980934607437334685839137936159552228322360914663179015073367445124425187394535150003454589610555915106715500150441373456781954865118131505815742798813900017751163448625995388184056117032456892857341992573375889515047305196648629420777538092289957700006646352536277129579270011446265662894874325196106692412932268960409702094835152124542548378676693057917849826115106584741885917242154665858958902059574955080640947106550730686356149881017324824683935654739187033156426244474662670775659907916989885179774960920032204856735700304144498926582178385123901354263334177824860327161345163536726295786374014985384297469314955027202403501605174289048046225701426263685719357514370811970454976073095778110937358475727423612035072711983159847478501571794406443336291845979152253330641927738548778218849887766362074131675729102593745746073541211038303602236529995233500668558311029225847530022552258006430951808814046036984075997202299186191585323117006339193434116780007142861312861336862859483492841488664415568213739275593855749563819216864408100458214068785922051798131903789910035038266029881271844990405899075625882996185482089123489447625742539054154604517635200170001202248269199206538107774782456114156193088110651602196850208430781101273629810134058055220613162886491800222176848780386487293998584591022678570940345541595424577006396976683715701866405510417483187324552581406986402217271282624593552398942394485614762890248873114009325497248041644846355899547561629421230719715748795739632369458266507525245873158913581195483168038606979133220815796147106211059273011216341106960738530500808085294955204100785507894344248826070748640999005636679175215674865110829707964300328580729326137298349325368318647656028679320127152187689572114530266740853487567360961749303133905316186803353237950837856901941344588325247726469440455760216190303834237306516235141948196357946437459775362689344716489815015959989164116094569964315798794065412544796252684376515450958897257265210323338102900899142070858225610719248742208151994128125023404819724767438690806618166259553619855611463175061219840115641379634504064560330841113760844967165421817381238102571622652004698519289994672392129478349077716762498945485479086884496830349344999796386490467254815648251979939129347268559949090901629821115640106677467665878168538585315955232019191439762016476747614898580385915069727017251199059106265109323405808502091874817280874015672059838697034907399500248069754315481731336630691020503331669742565582958530045717611200177790065695182687698823412808668447441571558671478941636911362433875132367608855572704174279919670704668012821202730054515047584943404685293927207582735659393700040573755548935682067290178211953304573592819054510609800912754032836690238368940346838690503758930617555286706717088565759324535920451407265992274812245359317870207128735231571095934419772842181823595530098069210284072561753512020862928671587234856955535224602710297360822817459747246660722372193902682854917605122823913061740698011501265761790067172249273638818317199043584414169914328888045905491344361333812979050508195000249442742065236473102682789866212349542950346366799168453849918955657082864528037507140281670678932340315758703527567804878195772195048077126220560259794096513391583893275097116382137498304997599567051759721316830161093836987858012293015920921199879754896184106395706088103488078438249445351444208674260837447190548589381334760275576101642107911986336853792115327836846550314739932311072301493707065634710999563695541063530412348581267185514402613814308795479430460053733163366109351139268052247415691700908063951470691874304868727576573320623538208194670125664640264613607160969683300357524009088663722783412595115229415569971587688975034025806805908559139423262165657361077643866659317163806753139825925912179694078879428395926698619930198687794610026331593168141145371537202307710284970714661566758945099153756691415669896987244008701661871118648709655097396989089382864058127096770860987426565948095210400022571455059692613272967415785283229623701386700421267273018587491077815884181821085625032431750021730521656977922117858706016449778087018695499696155328222373648911347756834448814884685064457628851036138113075771808748607622152087227181524649746742103588433171898715481931884346160905397509983152412744344022272445481885780587394446605159270958016976327562880373699151117978152561905673397132131913460180623524866217772128892962012718970343811392387848704814681863368385322372263967528480693945372388655263725964185576427606093218764169394027706234073380694272436523410742635230334901575202605603520775364789783145519678154639807969562716422143084276332672949880126110026624323471356865149114582370318642114378781280154504303222270232440323515058876809955917633463505667385725594911931618949664225328522049608410389175914700437451161036216943271087975514717183114037637933823217465941717954556446947312915840983871774207321372956710358630354049506209687531359173816333211239351602070282018694810816969004382417724211183486860024258596104766427678111184033465699558818189322435686704030782118651679174985271482801557832973117128273626554975606697336771876249561422766987040178388515803661066205279873969302046110713563201039149348466387480848971085048546617818132183095752881150971769378917320786014022663264899010701705502624994923324336402883483414965501661576635879715471334994583120268829294263878181878541417354082577499639396241489492252257309903716129781611186545594192397656693395629717317435992716889632767148913056539789447613407394716924666818810295072127055730087307394003843411539769978856688031755262925282425127093106275060472538906696308140731751315504938156725186379394378861958951348894582574425329235154362018491932570719829256566570629125110907358182654378557101652305926451838722992510396848636612147104878244318051983707167434352832875549158586976187428649415316062398161941292919593633129200228703428966436280538566360754716213012137654830608295753164793880420636162925193897975150416982447180671003801729614052320452889372167564100711604962859189914068749319590893922934358705545803083108427363463692302913259914766308268853951015916761799328141430073054779671083927949959238479847502519125239668165635691969662957668586797523154054119154701590714523631056307558290673659474582421926380685659637150203258765479505403555151532602756222941217433745572432374935697236690886844732982854303093911454731830581162906945926807025599371755241466174967242148024537934232383468901580696242003735313793854957734954611699445361609589874107886796241758261071229806345126803798362897162862570515895357699977753737101948151229152561937083321239036577016065303968432046123147588167288915686237210388803248088953745663247335573346826297889201050641416020144770965178762100956280632898200065355306789161490454456887504032083550238303144650147335886899575185031704925202761770094461326277862337725175581472335311835987557433415496270685391772478660682236148439387858340759505209273599131176023504392993724093785548157835721313492216639532545909927176910628178888104577148015564701344630894136206318503516440890850380872543898219288772768759674416344200161056677761592895314859871338488832690856793370630282633437583104692483549053640762427779636893367185811600560110908343878065326581096357424535886123659465481625731048613022114727969767884401059536738312177595588088942494108780210987765640116942845553770607736317384890113988626335226007117083653644486737893079992861168572863204033465870659623739236191463667895808517605709038282605711535894335103534818487663223670642970418118174693172303515485866094979513370022941638490806273283815579680130841089552065120623204995189671509298968535522479857673736691799990337554427907405007333235474588395850523285174996683590935291986172007417027827854703869714443936868525813526542270516370312751352295541042847414002586676394955224861579027404395034706723801276121626575993482924638611505858076214306081652886927813487118174866649858629932374547367999834270806648763704104699344132076007172402935542554753085822987835788398031688387773364577584406698700252493080556988334875706870245567034999497563697327989138605913782897035838074343305694583962836371457846750148716916962976384256841403633375893831239384720624805728026089167272030302941559750841841681818133211112751534396116569561558516585283881584846947001672954300465896805329007015674437552228064863074512905552213670070866609589308559170333746817599513417667541345565778678282132340061227000120646773104328195395459323965612809521840456478225272698090860588690633152310663915089882486117083791472064823049202437263627899696513658444813537923498407121361163395449801398778385573756485950797893924819602630391700838595320868002147840933554339679720780815157466894992073497253217582158419269826760799835672017093820703873624665990460683405217229425704591301867794617498511265411282912809566613688344855599576557043791831483130150112972958808150983088241302164718750796078391996244133587503561822821763426979763330902706378410331427719796600049370735261521141658761402106156869133738560437707595680747002372729822695271854079106274351719441781555740638938955535550832894914198349895760092156365495062662126412455026642144346590841742518693537448594317727857478039990604396159598055052162232944902069930670737816807394133164370776299197124353055617676499765434780192889339692804719305608691637278844520791674615427687065284849431288105914250397948480535923958206835435965609434429576260872624202399029569366174141194039739179086756228200725283998025235872204648833403672192001866441340421141640079428520569969582279510892551135581359585606026601211591244771926541575492037805859015637351448279517984156049655416929377863570356700813242049788593188226256516618743918157621593049536803908240596999907900072115619424466226133464461704220996085345199105717262185085456221061970412130155328565164510958067935392307387158331598587514736926650668888226879382262321077653290578327329223086436221481421673593278545482074228730239252713093875993088099682010699174524481366540618704218170700028194761097055092032571579956014918534095048427235195672312207544032988790357023714724084437434138300124558568467651868249807394308981266919411079579406011722579821745112801535838785395283331758478953850854634796989683703829423144166520221772100821053426970134103328134533612496367557458282078775710390079804556534827428158018195984217710964053378481584989060921118153317602303442651878562475932968433971249247671391081686603006086076628464002984207755613879538594901118448571598432073185766081682706762183612335742242613534714062722189706069961706549072734428106460460097535835232410391557024382162490303055309850776520213316329566021262523974344538021705909137850202731929418497918837179351160278690774539984516379482104021746716717108101841655882024624856232601879623865523256056357393745846206196977391928518357580494203951531616018969387487260247064558494985984642397636495548901507292105216839827360416754969158320863401687281378724964645745596145825045923441116733605965322312887357941748119409308493792371523997703443726487880084945322968558993257436901433653531792802806892071916695066212986855648238663054294370903172685980554876481348719719058960287352355883327695661070743682820168328148008081053869012675887617650277705777961399028466539567376324092900009828392493330471368380579748691681203174610672342900119666896961959434231943431371756374299853833600699141153952860122222516002786834148761231015407925566192285004299716394002997899737549556041303028531748085848849231614000446860158885138955171122422724612797254545728180839020976368430852408474410606432915916544676876491055163509666330646838168503472954958279533947465375039127508821453426164011739366411639440443027364773021024619364473626670462484603102773546512811405528987929408277430893600922492264104725530576609785782320452564013845635699669814639559210445805217048278099677303393762809910186546405599931763066630930237562597673633705344908527072522359454293020969483576488865476993523252002122032004010142885116174464741765871735909335650309856871498522208038238994383605108095891654517067893402822737266285968655209985899766578314036605202968896884836816237061307251939248400892610397728385259612967076795037357473056887336416374919208304812324127786481044605589290131316630150320785576237343672344852179315663744810269105051122340535343706678248334566516599424938032380504254562535669875450546404199578547493690984569537334168193942350028314647989120630722621926265187076445486969832685135381340915407379940739211477738397466745599442135585290683958765754995398024318021975267384275170458087661577235738355794321153538220003584340571460898050873605818561938081768347320648767103035021355562196515178254038242351477130372755998725310303162416731124483264530322580977767772092285065596063879997498430509671745450069946168117777388101706899430155656271022314396138895176742623538802942520910303140114026758544187787924546610213777174417748559187527039831735732800819273389409886067729417821603554338158428668497429448383422885162524745570138711044759863865377073553014584563202769253187978182426597895258473638533184574791100633271467963912262952532491096754130125543063618084955840012543341717578370553337731506569145290849342955860960295390623227290604812959946033413133456640325752472764881265733156754937598504629161886354031581033484600304610567969059883051269226607061756567624993577998103882290184419902875624997108802235881100293820785135520118658610090434343748427411022954340522997419199829872590727074211277764796452865954397650888176211989670372285658471546405464268209552581479965966543304689819153566807134432492582851117388577502976210955330071223790737919618872781027790123388602046287288448716790158541319043335959189243237691019420030479413988986868204307035631675426006776783505073621942494776020708924629377847058111250220022744885892805610142074240756227017872361066189828998089178613465187828687922273129584436919635410505944374934046555538450037082428161640813127861998941218848754643388470357202687689856208255241768011523616908257834029148117429957956136387240849392328089675775183148311896710756870640360535391608763969028025620324271947274864416754991629524203980210679373670353628125678607866913479717104828786732520523102934709723510303939476917278070979463341583510602648081196811193478368209470866947112927883179718438229336197759155549569648296128352060282210880768502298511429029159561374559216781340373200734551667944183784784982681836222202900705370587223135795661041627592023629692181124794181022509098113456016509299504054054746401337492772761950690808435937515106417628499915911482340374787925998781892776682552398209867521431591063031707875662644988107387848936575626385535676802149501408103137406986562541825327606967915910931563815214929827403368133342563279585817510172722572028821972060916253322074609475276286614264649776164315136732275356861172227636927241578791917986005889085361872490167030783704875249521762563922152838843406497164155373406360846446931197429465992504763816696155646964708581799543527348829269468799102322702842407220797826274421938703563005579092920301427378502590792563903266172924020982992709763874378928080650137498226008338732462737687647166328998829770853993765824809640605235482298707136059391132417786952562668651959845960684702148877358647827402201168481160324792196743811452041032157756683464697653240746301128494196582533902777711470983379371124788529671334752962642919965997356560674205492923029736255276334543645990600422181959293924205074064062515964385042359772883307603424422449962053619337102307942621170896442466758856259806121407634023615509138180512203142474177706178481755082728290653214880525446703797767400000324814725518505299566585285890620682012187051451390970265160224323181477745095434038196523459916903175179841192032982193799606342897312797538425558979707184147511977288104010756869922087746749532566335804774750434355009514847727639985247260710736208311782344157226802902364739026378771380536888475675766541330565324739114183595177940880178784803296811470817883244011589033202641144441791858565266759171798977804258654257648212613402863059295433948514062265553520565199181460176532052513935490170920510346740180042912164912019359644760173426155862494084789212492023974239691314345083608434647294535692294423070767756097938012137271748243823426711599827519868146612344326678634842387613730788397467366814060674722182993088555161838141899018952869421165216303785623735328691640595685257879972543209060726552001625510826079195023980809618288728700339170673412544318943425927634343912648668563316057998553844908093032523621687088358305161712986426162151703432706851747394926301196130080691641034331809784923941521464017484194893881994082555083527588321827035765022446415412361279698791106566893739347278616226510786759758789321295970128209180419882233839969190870037457604146231297435228893431820303478119374129620595837897498998378027429006968073188168091650143752129209546523726269247096124651082060694046513287443956766910198917387359276866279247087410884074716890463970633614725002545365913834031754730371612036965288694252354464655375229822983274835532924893649518858150588960824905723796615313454881637779431930220525725280323951403655753813380713714467499022612510218272488060939324415864824818361303679881388350317464102031120945754367065629383062679360540808510233088633197920057986178448779458786563047542136311618527355743054740806938517166527515028493811667422688996740541758314244399408405233579257177826864651606827564350434321676627914560520971409022276982033544032861401686943251200897039639033839325948424794831968395661897949469987543499324720682228189232528236740330829031509623330214880717224666069147317353773149609009147971408507740382673228042580058660616317525263269415979046837080171676844890843911644682352865656928273181247072081325045353942411946920056280634817291154314876065676850389569787855017996895240078814941957526117662039734413970745851367621028407816472944631614099353319636365168317356083469017483923412344978065662912477130638259478644410050569594368492539847800791841583410036638656402765656184665765248590207424437058260858059503446582442435862923343225240265392852740553710582923378537407173628164946292707939621026667884565599279895540460501922624349446969501920587275330196725757318297942420214124043759778738989101611277386444647223537016510540695875110515359422835558997447698474731964041202533450707364691253302798432469974985863038079745109854722078688721111274309092752385457487680659953563791415041097257075294096485252184805669651167463756126414837911030342970798451847316089052148165379920547234721693550387129029036029833670397025037468701135900296845655290613545497719486411446359095508614359870507302832467014572458240275448099618529573558575512482774891973904959245195155587056282275986953307704294116948240624111119633711927332156061155884849475609791659039729206398446511858327650453761877400574664559452963409035485297051732905703438950971890758021266146142472542954256435332848499069049230463245002744976431684913758691823182156592241355075420604627724549322707208493039111120286955365865866976801952381999429981920198036996021886613305428702964783492500372507825741638347254221474115033590096489721790380306509070491655654584567221901233320617331946828479729361686336048203194545153612726980636550757717399597646879257399910407265519598834942343184483011419409182278633933165326146506178959833042930141409305717797570420536132113788571230519646351614938402642384996972015090738556183780335300391552048364911323561978798368245578901268015731887813909761117907192078751545818073997684536910931442259479514109876185735805105042885135115222971641843008297312033363684552321974026827099789551800876129575222444362887341391872869477042121197515892020728935093088820175765883756879062375052283385365315357035233639097928471435543652747757112393342865742592155816375241519116685472104187124466080383486964095833221707680695279052604191605274020634982516149251740799373528799388283591836623832843178803218374576106849017175720693315713673113971650456026413209696332559508904543877188629978602212785030704175652154540174003753649433207729082688542233551536294082527472532406341582651439793436660992520759584284394542773772279011129379374698286430134605058804626959764792573360966794988132250684673657983110664454514883024470059220544685728541678287270463777395623301240031350944138580721251807515956562154915765399649358300849299159937890238309548848741176752458264629558803137726573576831718566042279158844408577125791056646212593327796078998228494223675319580430449072240809949082394434567540502338833998652603912108762361843681397448767771833243866862644504482735514141971493722493101109561093338518457551841270067470696815907167726423939577363905590747476566984488682128631579651259065232568642507670663810874542650425761385841171039497767918543423068455591093939056535073089962172005013885226181538250746160676364582174732437108626779347922009753033316036903927839563424577738971971843358029810542007181183246025631724851107869653296862663995162911370886011811103710348238532869681958171572887043652002837177857551181673286439980667241094916884699052729338240027100002856229309166311692269057450648977880993682154609841584742638907024009399545293122925099467751742077599406781900216639416595637904624938700004395924406249377105607274058156287945119163667910467449240144058251410023728353184314197600219629068417791406488471805944533884885895258272998738575021089968504079421184320599818844363191848769708510435378407082434814922656209256380475889481639110991646474423510543054310055313312051212834065323152354446672080378312076746874711347646657659820828524489458936991426336900100824689683961465737541001546237641540023719441414337662452422890032868228819461802992519419103318826267272054457503483019640040514379817740105092021928994367802373172902815047416012912098391755473884725157101946988221853006854780357609522634562056686069548760873582204508520577119432903741810911554968939787347321474212137380979932862154411100953879951523687735339194019401768447637535746139363815597782022859601373171368206572582399710614436844127479279791875441379065867700197204840434925826021796097117822781461589756782732564196044208209322186166518589389680748008150694746899329403664595443415461777092036012800656336592324619467749702614941275979392439280588213350822659720369186928448479382735924187360327894876379492469369030399386668698414877671386422531214966840217885313149175112969529193096131356428647077575266284176638972455556996296000600790115917303694379005002641913400552015620466809020879619387412785305457871574421398758469673281598394792851250658315504904151415628018604001229144512165115880965221843671579760135228127692599348609492270012729251992495277200158492945174678494824965346931099448618065303440467109594553389010516056281177771947382145338105207778939659897856683634087723926457939641558421176785614302605655501205013314278320624670007952366828189942213690748376404577728424394726561456040059117151476565087096102498697644304498218245488437016360123562806244979088939318015571730795180733105970627482898711739581792756092909167172642526607222867458467792880697265988191922167609908637175861356917937654125627368102686657094538252027784591950283909337386827488683565816814942006813681049215602432089776152020790380608995615449451351608187747966092742729944119872464015660453580679702648758385511946261895253838516761593443293810261826164219312816493555117647786277465915425446303008845315466381195141886840058849303322381348554228931612725645024964132713247342881886943793886314130348661966290615183082018134891228160452970567265390676111422347916615839854029717099179834627323316959729702904466913232684800279063164549173096856809375071402152738109155438707747223698639299978700916108331717447408187755596621037655831094175168555071392294314074711781054020593203472972184808443078057014018802436034750253889972109340272765473909775228234749648859693206025825823087575520995421152713779079096757791022647116092886692420729061360904246639019978770052254605644043940257806870894548715804722943619907575094147099270735754257888417799344232701706675877918728419147684132295983506206924473556747976021242329340115285963304038869586013706444552219821273936305050470090341798511130462753059392496202871601573278412054374589337011281467262127433324820910235959384724739138646334539959121149328436947555103387900498159506639723694261331325160841002246592214147090463819617670086937580314339566164195234488998408144123419690062322940765340583744639604546783548943103233821398721591721372785261623938613629549884915917606129860531960402170826883406426180705666464350556095100744115018226102725222815799006225061449110948425033915685458051173675252929676696351321892666448878670202340453844713003891242398581252999423486140480180500003632442103251269678197018271119365556010622621789345397698423987875914281704607107909263131778553989826121864380113252481374531629778816926924895829543787162395973855600943993571481993982145530350036412870596114399162073854543051198505931837019595578725156470475223946269723312015737693202537547104206517281030009048256371320954678260795251716222448738999797595287069028656364118865123074293930639771194271534320793677235662514734770001512522657965670413454068614174669234722204481453993256458244902300928737839242254423617125468793398942315030580957756016376246376063093718619763602154347528101071500268802499719708178800241099844726988123087457219975732802212536148734723451540077779515351928152335109881262613953777766687704290594997107514791770161196025132634899623298515678096486532354018637720837605935328895318568394020231564485964510706887215059895222937004072839671526595608336697308238853044091582718373720997066209764174804104478038106234110516072561110382240936201810356921170460641028914725200689723104762666555935618622567804337045140058866867651413171066222114275192798006436352961014271533501911332616692465356809607746585389052882229188462788736857474763571694263813053788776799422085397228599880327372133378430319347317003072283328220245941769722212227448195537571756268764590170971017678747527175521624240707782098806000305861004203170369383872884007892996630046024847012870609657570895641098424494291719866859824105149540973755094573168823616238877079238149367303773855087631869933688283952666804089936611628902185954271723059628326629747033856866134800774773617293918832892070142169693485398362731805147529309872984284898062891285187691193044954761326598692132755935746894253677387509277463318774972025094104256412617990056653496490165667733766777274374255040696750708586084760879066288608554202451474488304839432430231453381221209925958502298318548135958530963600722375266765509007563187667193237942996391433151444901322340470033167860301893364265430114689034494690289410537706627187099394515600863189004953456995347587062331203782075107278383937829203138607532314051138053539068045166587412759686807957864582845553944016992734058738602153713859041454478176521406967142139108426110165350461417449131327262412677766598323803955345557400218890026266121068595497446089854152118022415015781884291164725630007871925538943595699886669989507922402725130398425261969196358953508992363519787499713491032785257113454128350550178907052303346782563413470483707309411311034043334634773321711643696567551659207749628272212790276319176141102484612850264495412563222063687780986640678191302631337327204515946168812868984080385476232342897543222994621134708214322384395731215326714262632083154209241042644507411960895858735294205757769338602469980330554355758448181910991473186678328828357761461893509054059895542652241867568286399808396049577373772004218625160794919656250993212027373745622841725829425520876852291370905139997409312708811751499661942051932356110861611759635096665090951464922316831135147169226209380874521549754924956253910783532526788775826336498076851258688138210101092352503446036491645869026034155229991111935874187253623446886957398172267956503166909801532365252049755552899628317929883191843914329104558795485600553049066784065104771592567760969552362095641838843752293726963320498599481640394450735506093181608919823912490799109241769364512130604936095292071554893281002953368487683813108809979502906234343996396397701568485441796605183543967302711639537866381308093765567007020391236934860785347914922211706999380117611997609016252256229646391663442146718181569675823446294598170963501004267624445030316005416643454406934346687077486433228192682318137599909720981390766660729535567790246331544199090575023945834279369749533204520054535976395195045100198619725004983063689741418061775413428884197128011510178358448387865857010074021857877561856505611244835122651069186056981255177780833336292602003714313699488139326903059969518643977399231560472101257439166697695096773822451248086141173323110442647060595701926021096321000114522481660128530167094729297066827131350859967641853836939278018518161435820881842966457802833633698670244395771455139301797871039185716121149102069626972966289133997326894191711169573008385731357767484958233148834681606998633214740347148554035479632516747716491666064891687599354585938594306677035366066583630169719201328425380540825003996204986741428680955545359492152072325669931940525189181425705255356133442717538721718917322265559175882772696701646557918832117731086939725829760374829343139653268563558270938507300802323197904096900211679867002715724407629595196377697939329639352990068673200402321172304491563878481791354946540621453399593916623618517657037752055571799761112676676036102500052155373524931902218813918503792942735881499124290604745839623912774874746519516158317762097451592268335870386733164738991647403182136342367282340672318851110056471781094517096180694559942621581250755991287153397474462143693729749982606844391290069702311038082854610878124470989564685501134577136120110356164694739141595408476922007469749966719106756498509751547372992583011984410231963465031308158705889579635364172508531891082888333679623789531607037628427303476315295744673890572980506396526744215382319738571538525675297803888408864533702186681605601578874271184111196500570022802932717595881051929454194023003468952573989858130871141917908652206349722376453932137827282058498775166060298220980781247612328069099681804853511246581092043064325629638832591771705185562021033345143892450713530328266806637311136921470810489387775377991905592336582473058766929948289046580055632590465754899483452653539666230070670191873385106029078276146609805824560438819070410472897998511964071265459883652635510862442401797084712587189004393267553441044581611927005378582728188425129160342530953042486399665480799872880599895610376368342424046607629617146929324576792315760958897859145116071246191100473465520826965639813465786866089099312395325259978205522592047884355609007715050314032275743207644917814107431843261406752316190672859976347534348753894753563537802742510331538321141284374267501004295369691776231274601759434676138247567272694477699489705474508861799767121767114748715456419709566619219691626043915277860973862437129333261852088001002721381831254077558949251731844235394966328678988261737573607472123899553506867082563113735501286183178709144408410450355792993793798540983983891270478630945664446293285161791523612592213396893841069143199122252764097492680411914798516511836528409052580555663668346542825123236138038329512964568747248116785038096908995584409027469764812383736416888186279193018535421525616099107371202083311046070936294838898092866113730630636831490793163472958421054585327439801271045876550562587328128271625345920513626988848017724165152476956162346057278165732916974448946342500273694344787561516750558886282525786685349150731630833887570824022852324397280564214262979456982076463334131211807271517995484832096004333896249663935423605815509160213344866906746012838760984993850892918117266451448307923918152169606618218621049038964117846670216676358591026875311617416110160231270414387892906810913834455185900307905735184934060579140779498652229580695814751742307661388932266240683475057793128049104304030266980313355568714807456080703567527221858068463869716707484119841383749968538974845804454284911679150233415934683443686998094932470619328854002641177714677319367727808631591216996786407087282091605864720449187574861099907529981401269401718352324512100386511268419426442455478075850522922717092531514249198908218891039108042778600746692334321792354803327007431549861411106001345628341362073154159780511338232552022573784432411644103577391139913071158100800910093814537130161631551580814017760023956704239449704489979072647712634999674505954738808617693760451412866358195990033954126340604267352012867097411238001811036735405066067756596020660899301491802475756294575730730894528389642573783189752570541747402969317023162942495683896652458934750287061260216687925287278459662650253553193536958861327539444012137596447427892240770421417970189191189074089521779114807699626332883539761180664082286902496347603558435604435573944719740151469533355230702562872578604670686788723775987900968933165167566918056845008413146002567270406085657954283171855331969831714241558634645122650964320997164953590996013406394449793260229595198970911038981588701416351313531876096965288931261259623748217145940727202674851181261106810352520722920231062154490719206809034100255735868543958756707584492578439911515945455119736599922570350283148576083142816188493541007643960801049160723270121505994127548645221563257423793597531369637980828275913409878286364904960309132462146506061561895928563764390740733747226760917273723278836482664155750066829193005884235588624810111831457974587780140312311582726149573592548738139416659382015125924203187752788182145565579295325452328657488998120030132037340347417039320962057575383169863044061322226220526694266941978411114644876187479710944497623693289031133064605959938640894243409579953406683581449459726215962143809855313263830283502493572772462811589630473743379346330382622635506027991584844068469933055967271428306528327054774595292685310592974935160284367340930014613114107208520956182863555501092171185845603351502731883482060597244617079365018762765151908804553936252394351706024822142966728991683493048736375985578206203093160281319687011184588173429085742185384495809095451879278102034367887626060718339135594595889687024817075826807591213721895398164252476646662109692984641075651573193533469465179011975385588482568333697026142939081231607247865962518990767905846614662864311601957279411545949196918837341722002430335677696331190701400143053771424954147275315737197511689535136044643569812972046257197683503767302692551495109182763875043975627348650489213012330401226729271610111733239887577811825246160857202226701317338845703456977532311602484482018023328603891430095964929711700951774182189941793464489340289927253809876098647148137642143219426163699930591782497344455716304062719371190465638963533304315836223237846814433010160000167067290307139621311408204636919088021059354505591378464066858597045745027024432814511878590508672631401664467776924824990646838782991999481448086060313670087167001414060515460215673059431931339170193237406882210019248537267372325900623899664189811036198615308439647562891608809720078135047706621399618294867855006018180165729189921012728501719571172810184125775461135596836985025293121875649155210625817554986001691850796061633278513405508720269535092852502362178516097150919150401414575164948588816034270079554815892386322689166949715970480274893573378096719174895074842468962994599444569017628043517565835136841359353722809615889329579629479082663130556010693271939102007852916940820998014570260121731320284585301156226469352020195311509045579376200293974630302900365094071303718188602943145243191380490531801744365882939608130479418279992606002397788341186777160603799489542056742483446883877420396460835436206654535475676895940069470682914190710558463543570621948911692389250426025734467770013676508629124481409517867881273355055248916220127833702479073148448458960718073447367201360805613520717837736288297362276045338679641447007951432212347950071035662287280274833341743927569050925408170636478444167726428771820883395776373290532048740651825003920575331534454990833420017387929904040905181989290777291100735455424711205619623166340321385629045758390777878029512048762889786713163452715499233963081374438316985762049470376217311737391364419835262105363250122698029577177841916849358859908823877864109169772796005593022048529898550550962559860115939935262230341719824576317690615486996743604656035107390265864387023312378352952832846583051232790433320515073722461656975983389934716966899862597060988213667380698198170560176277685742975043823728806610436719846516468556550399295248225691115989838513472624754758886972188998587132367535029882089333938693822076032060740858069591463905045845459657521033839100921786303163432045101461746218209948105958956856412781141764816303747114314581325115404527542145825052887449479113873631341286170142708304124252870566453570460854677422966443963399205316874578467875154801814732161212483774796487446544759439690484708564744517622338429362350140317624252044737687114479309199551430211611791546801382459644420949352543436173631151966289721780255179773274658031812326843047799400434464725325871672778795949277682176905713980539075333283756523661975011108081642160880011397353592725360903103317017956567399997263363019629666155481210027839407770099944422641701563135147359929737384702418412062028866134325514688583426683442645776197913008842028791565711948733768012853406753848886657027616396589639074894751594740194792535242244132311395370174680530176032934058005070904610562750343795661992693439623797520803845395426933957718925670152831182871610215498505398608358786114667368803850864546819509351366122921282278912222994062243576514970008929821701767459870287842336728964740316590375601482107035627315900896655584838285297236276371784847355723244368872785670371107124616660011487558533422295934111332804517362570574922525314808887780913989822513947838265022781461000904955968554252043014638617082589712045044034243286696425033554789988637092355323870586910007638618116425362179107952012304261342599730517499356703750933892982448523803272156979450053745951139889704385585212417973614257964105173971504949270754419542975713947208499410586513154697415729910981329941413266190053502668640588143575771285025027862676357355431022256733449568358870837509613581046338444552349220133964397915847279379262915057030380588664737293996765886582971403175992489206271721809324519201977848695787649923947982971208219921206211811362814684626864451447087877290168267804687482601813635749239073397624444350935266182866571657202494003583677614362739250064821795536649016383448168970765579753784148069784614098229464549702800424079057427782849379772664874561760870786451552605246553077665933465505143834344387366742949561326991991803314797414683363208718016441508752040120779094771270945460855745571145904718125580658733195636132096720935336362249064117160900616626285271081628616078744670991136247354402072738781239551301989746945444789176721092525344368262981421407370802764407296597975973190767799127396816319112727952921029779979217096377171876917006478727482222231794129323439548097272287612352126698033539101810124793719036587149483381542300228581899515130827255933729967620810425174804133433289807477893076853822586253609245222840924248324856364475557424944874839776394263826406459156553267917914512771123782537557940263054307681352908201952926445635757153399535004555579173017941407156823148230248123063737121570665886849679337873478525160339542255562174329211579411456998189782914705141061383497147323415565407934858692931629073515247296419209020291501862685644652054292441195401701929057901702763231071704965344970544037176736665671744581367650264211869517341356675767318432595952297521934709790569379418698013970307260615652600299394669869314988773414566325305466913737234955272313212163778467422970513261190181855524205563373753567844987129048863999405492093346560508919247686563339776759159720096921377581038949347020734770999220358386640545352763104909067710636970708813244333072789724364009063301250349240301669224433793637270844890780032333292906370558056594202961732457219576884089191587615695005431706053422672659930403382751383056691649460008393279976616411852604912541314428950996485931259630346849057683160149099707042322890542302230233771583773755231274574278733468248085844410499513007329709588101704130115324850962557568460535615237387401149599908980497362609103059856049284535441986044916112249315389516806064228971343209203881218443190451734213954629037251467556802628178787598589441462477529943880130303536780264789178839173174175136559508184618715708092705733352874825931340113983783819838776925414435833118688340516409172768842096344527489242576001187401580601490498410188722162839059987604031575498817517330288228694892583342068734579115709144860750262033672988112778837306995417691554073790557079116371340494728405587940605197555249745070445594351302073857838956813326547665277663343404000634336590698524988964493213503500813430640795327364632102990165276189809006257807126792014430844343454416925398927316235902687686650317915653900118969939426652203764987365706753718500827069146678363075628317146186008737462798317720252166753764087092738511179930975905030837549982617913132677114754932146262002285202683238529940427860340161158855740070717492699570273547680728986069482467566070904139425157077563555564530650336513941267365612987535498364151205865286619171096977725128689003712616228800081645342250964045604030229714298127605858947489268493888637911093866565030433689118265831625015336064845641211006992358178773373913757395975172491204279813748066577746578017888940358049108450194326317715385625789309134834719817558547840978361781192155698886349896618150794711882923949255373499626703727461230737234133690713212849150643432717509743808684166287695007975686710661775013959665996483308703765849577684305414189844447299296854774939974611327565918316566982413463762946614673088347968726445278171881378516893876969045885883529351684037679916089839836542668861717692839410791277863159786797211909340692919357605481476318446685385105303675998830761152103451623869489257351927920536470758802357264724950780755180938811686657944314158233626876622734167350557256733132824736622307852301897755353346629718848864594612851955446190564928282993188942265116447131049170949229007951473108742512506712413827535342130428086875787523433416654767498826644485297768052424345275592301199818155139483262145423499405531114132278708571751951343681798501076355054184735603565621661714854875800329843569728176841661844344315064454730535154247103497860613147641944827314344575270371615703185051528861935486964743291266906129970192100773325283334049105206455413325330359826503040041874679188765981730010647440928266027046158923459246678867024832604155714237202921238119809250768716589837938370117637611103754044449468339605692635323258915415698672429799876296450257573019518628831081480696851027028950991747698007591752052233847601982920148188957917228292742768348159528034789805531000685584580542976513422813124652378289894531687800548059658091712456535016738995489974489104416520475470640654960736005742242264712906245999340078345005684130257998844004755077745596110401797876019499689860420513920924709144995489370942579529384211510114346195288782956182976025054894276156646553968448941098225798764395147786761347866317979387942738981272533167145834013440296064603578867219920227145443630365775504932302761403366243541547312009354955412568582097373171693434992729457561736189046978771661961843796035117356557814306786497646228517973534364468536534493058205939344580075580397091817612759387403869019320411944669797827235327278248135433679708679817277268081377358952306046210003106618716677870289617050634612517689258892635168888241642460168092905907120691105280058210824039328896457544427543650251347952690637416263967096774294671265431470608884399015538268943822070921818596003203977153681966071694555922317655346869210153335749068899706052883093265945119912255230574451644003886045375082951757273826569480919020480141263233137840166621395172394929823354447383020192907396962414723216896976627832687872564036413979891363357993660896986972973985491017610765320311538314618850794162878072224630058999931850819922185381859978553822436670152273591334661367772851669872442730091873406559405747145274213006017590559736784018629578737737649664595159110796712042645521078523511855097166062248807200842195247948709669993455161461737331960392824786883228823932352355435269688494421817095931487007948544159357641558759159259836977277531071762356929521392552581266572868100899093167092719337317898106726811813937677486934096343234829668639785407846812944809026068747910188351165792970633493318122726711345878499985207095883416623184773062783330919111415669951180401752853659503830466484753984489913166640892777134081930288368076522879779866145270920691839371032460637046118522450247049109220464167165825897229637246218430777267073090302490658037513958686356099188844553937892866494289666656598717874933789621362655769649583259493179375370688867424067001502976084913764273102558849323104598591276886125489685916105463122800162664527790964151371776934320675029619680303974109343145731725178807705471497022202634109009091448157895998913304772650046110951181787148708156273628489825818297784523520701624921569454645365308693874350405466341224104872098855066019214917142962918289729641825262767267408622417082371130928708473678840251813868325854216078793372122918125668923488464912552100880237766404451619266534677603485441167660104638999265129862305617314537040413046416635969552801136263043704907537354022717621775872886055403955525024124199592814502710676512181244173270258348350771848427047119138167730061812272829312017580967700276904864498591548664703631729889176409722082787581910629523476068875107882153563323253179658926911539753458682777035254180059892977865374741483968719247120556814231433121378505861808953277728328532061509706326471774482311652985850836865687665687227381225501195211329986573905077121641315250321698833535238297325587323763704627197679201971163669463283390666511402763104412218431667264798270071552530683232711146027086843430031540319461223000244688856394019380869368009958822197709772838329176287295048039288875749910877478334158918876367478306692077132849809300517333470760147844609244813051335105865450238035016068715555581074510034735574176653580968908529697429697567086385254710577869145644392044732036263491778398170538720804415736084056151999293535251911329787573392613241438999285493694330488693521815131212562995127968396527577602751081162347835055419653419719708902766408028943657926205101825361312430229934324232381176353487266111535455554567340983878361638259476437204367886602684713005024122848091353729908578155943131940775325385048584746497961604504999931453498517780158793139008823225166041529426419527119594253570185365739495674922664045227302824738654772490240999559125793048116674727407057909587792575229216489701134794475488013778646679873293915165801396495155485187178900526239167192438198296393327334939053590028747545416182324426433537024229307419622085012262133726413673240077787495167551956759356462914871283712970658386566927758730101397912675579795796247994585486344340077736523065698876793962889890594169511198910868596700972301561951431670347400990571088182186980261970820340770539030043663201810212590477244838071302111852917115236449725704061370577929973573201461019852790685731990510800259920468363086100475715051164382242702167251762744243790560408498047635047017916678818954181901038669681736613840891859638831304018751981640166105768331164253138347684712759829440941527123813538798925086672094545354299894747322434989228732690703590087697901338399252640429828817491251061246328730108312432217110547486228752255199451394409487452738241839298004868622677130760195771277048080660252688437239007284823899580563566185445535550859036406835042858389925251007945311823785912994860122908701714478363290543924446477451924320231719370411869177693194991000485541679512738468378047845480233270158720881464266959097548539624643242523229223320013812424594452221226227792710912025117445626927127253485105918995721944368538530221188669374445262037507721092223714906363462673290071267910385789276183686265622502381000484864903403716060523722371648871433290708791639053725460966645281891439683716480027436687408992384181273001714730415935526947292048412283937571340757638656663314639115782637563722856957252999140040606117468165981825044455366052857041293456769918466307623856042124414489177432930960104845877746712939971733122926661604713945591552940491895062100744605126929138850727069616308932009867435297959370132256390508805281764540510193943477956217928126365562258951788593880743985739853148850033912547811838921014280140201836108411163921825464009245734940462102563838704416635033835308129768622701477161934507153743234172035643000232006793197874904449990961462934535745105435048935105309834747691994629447491690184719133384142638501751566573182757557392503803145149844926804388192887252495226450875290167905098612713322743999007100191183405974101479816977809405108343473358775052843952567432968264952827767039903455368845777672614142927716189090679687992710905818709279627578968261690954198740641350684659714895885212332375342680086780226394378480205038044629531998734698786849726140908873068249845987248619632451486352826801088252895009644642559751492543028156096861447549639159648764891970677401282307341315062257366429192243875238745961669127332550278594513292054869041176571939888459262893305699036302709786222168127020415425347975794889705179445288533592180635586409026974069544131294533365136087936913279658252631076242518619766775375632332104769584095052719319834575641461243012483773458408491233306494438150147553136905528971943259529306019171215636449941813684308462362632750063131066121168917621974242832089064896588658379309495000428215039585317935335009256351981738333327371484926259829989907474025010456949254059684599295942314980038853362366164975251636589222523770188896893820809175051940766317505107508779635283811863730282522397775313950678685684400957444441116840673918877117471207504884726261151342315844085428157588267290258785590000443914158472932040724022378713595613968554197384379287399582226813319769975844584701758769427420017905808946623895346242021053580543842851028564994359752493151121106208369817850432123305100491008093954375367167463692123098049141922492104921982352428849550129136670932133014102301105871545621149726491904915666247165728795130056138385221356688120747851210359055894343025456570989656244249365886229606557233591977291304530609697068775499258550806480709447905964380282191238060452439153007484415147075130561567694297688544515788980169247207503164150581373206448414135971602640968719287222677864568211366360624392760464590580446452902763964990151174487951601126658171385083373592914659855073001522912055585230936183628790827918162268433574750769628725960019590586271878456455259980504755586149365030785844090659989881745915606482724356332258191779053677585456815836656968795257963275827771365134966441280230099566325451260095201038478661220982070515253963997870341615441138289474736233716817358878533306705772238037010285678190902103342403182857444281857098952104088996480768072749639178829198376226862338572615950334451105484919153343633591640684964135822980029590603653746922987154500487840162314246395154479696052447658069181940291649947230176785364820836800761710575589296375523356385741300202392114966785337045428969555840069930473264688354776011144193355434369414796890404061236323513455541601522441958530115500011281364575525010390162672353234316193151264059145667318249830759008113764381210852524113466947386713634077745982098083077961201026247185009633082109193566562230031999470044670902638709236992776026806740788486144342822342853403826156080093452830454180070812346647895014979740497282862634038422657626026518828504858760624754424663871971708272734642652874646025344554459275200090747939618500914342886703670751643771941954035164690520615904508817475391440149814967326905648160502215051187352558348032917371850275168708838175493570699720949593460351857866507672969193709800964289382458660590356420982094930665591664324127742934009788617239486172522384012915197281649799352830278333165989798805633040050541293821412212624953430896775229172030290385210816355140917575679995734649106856488251630824047743402627168660144412774885339054957347009730478775456016134239115544441060290007112996715759651967331444274609574100762810048483328284996020433777945476082969315290937471629135067674388725774279219152675629436851001842071706728120300451155899677438100001522116052174252023706737792699654282342168943759316864948481125310118476941996940933173694337911398337068338008819345050296515378164487704177403205750827369175283524260637095907424744641184677088437071460687074210551898677023154038703424155472718348139363392286488542777979187600676407840600797215478557490494364514734931891488212398104694237098066998333605731775707813047149247569348502796159465050843220986843943200151618165034383851471657850678418912702453083335705991142917356618752318338571551147864942634194954826055156146968150003718014883340775788370144205729188702797658729300436593019357438914144555109954449008058920991458005366009160820247193465705453267434675778523436495247898039098204102924334614110566242463318175490350741643812863616035623349838622160345780876329111002429170152150074855177075215460725802897474903102965551825679559908907061162889644997584589500266361740165270502987132380275932480283461769560837179956540009202715506130458466791107874726697282578857291657691483759359242165044796063017850705664639016714432216122440110371735145033487609436811279209751023982019104542404758609072059050351387102845134003488936643712772902910421360161606367258763834489793704374517237483409088100520321178561334017060211420649641970310596417302871040489861541330426463057052607492124474979444352723753714739063220769025060808010382371451585851764174847495187024961910513493552553981700678266452448134336536462919294072360820258453184786138967480471928675748836754074348573014548241057044946769906504932054332806147077759930626504948063897054802189573125745988278951883025280264125547465681460027380678180830149972494534444703952007658338447599330425730970762956370230164255259263756437209225243365235148360215140369383688417227259032289017541186509457384594631395129311608533146348962667500476168983132278210725997802296699432081484045662056736240830403637376302461466111134190345221552027981331891860967990321481515821918550518483981063479902528481265574933312388298029911921919635066469249568405924545833135221507480486415230359862052545480085177511074853389177716221116968925396826776322972957698300072555495124888336443866215867509516449431515587742457465928299687412402005904623242243498920865887139398414666579972944196580651198012200603270142872551045551441824214871234951278263575481799836054136531620973481240660679524750284171644907763060917434954115756055559139907586142555896732601103951449166133603431458095287429593150777302140378599432375900642865659434452848300597957884712518170315051398865510155475235665892394481336751846085680304939020969616615881083615733725145133293347664746471623677537723226387196585112142372218461635332635855989199952686139894496197476277537078547718315847679980778294431034647172691781595018105812604560025099169072983802938923991943410926126561128785914241174418106277766959861848765344261749864615655068717604005878465631731177706979805229863651702680239355596324912934656985214470735128293349130954957802517891058465921230433282838380024320971630935115397954171883847824283412481677331439155974052392742625623629706242311375407148674663397145005104513178383962175063427084886502353793377172568795748527208562851991506190145103541742058828537554641910473411947075036263798382166699171501625047525191287323364120707056321297328817329221793303193430863230010478025138233228319067335303495372077041823853855366912146588216270447329511553673076383871177210397508956421112518661194639496052061676329132851622363145071194111816279099057103349412833783706739250456247280001182675277656777850840652796891021151736777693476819851989629392412616393476635189737092312629064705341268795385958344547931563961389575796130649065061353874388246039830954384633948778773750339193128050468576483730621713655552589775153573858463226603095345538588387344628465043243507957092146926116574693196415256305371439061977361804610190781026593842180243440124263296794473857787456465112497338069508982720175028661344754696603858672310348410498238198109595089275072966732831329975299933174684821958086275809490587520701262584150577404980391901173754623430242236175989346664638584499359043836739637858675432880042697185448805598437344497308646841597535348516511582838052145925327311588192186002572799207878318817051465961433456429541339136241853082590304026475865042408017171454294910727463189136898474556235520238236693471588958396327857139986600272726044953868213174500679335135425011725196212520565545531615620418875443803713574279555567565999140854511022203075162200850635182437273512881749048301142376980319435320042794434890598555777974195405749352783520407799931543484212809958932434684331967359692164532014185603479781369914483165318644814530662681959782650578055612213281794522256659310770957910228423655764826386458214196667318402101193669696328566400113611853883226632758371230589834745729735907636981234060526849836037104466936670982453625038821812173248213342319529458318661753358559678085050087019851474586142724197323662995135703965688889168495963377784658085789359299580045722326810331614943986072582547908761378312773433967426050515257339743202134257137406360104035152545180319212647913533999130350456157152258156707971882275467895642453582462085575294898219344212507923349283193339809646207261956815967251446172816624945313942681888990464605087453764706296944627831399597900884083977050772944097359235985712925404411902625851610653497749248617046172454738179729348036432841112878766103920231387757943805119351839776563224594720587726272735820680968249257431189369348112618490259087254701960726026860944436811483866211308195212979957968878225648103301359601892515472136904129690432869640445120492874657519649454749677151551805717733013617197722729215348275895293900754373533115564629278019527873547605713447093364784637088494674250622606694037549054385369620873183181258648711379741078387854153480026529990994255893284815442360317447898437259189514403830967212292067765830192847581822243706221742456105152849574711953503094652124710061911655776886102471456077874494338531072084962842570892197967495174954179430987281725548352657533005038194576114319600524825764207575185176674036036782459204957389580554860643895917969427714617819923336940109703526508017565489977442341855355103983932460437877056450077364703918149405525626802328020018016717358941551551243228619549501679379142063630217411534902369872804989231232493144324083567479476399865871919066116202403854357074608361696797939613573106579519689706947001483073893205463582651934811980552158110962226578607033257647735777934080807170846184376466566725080983582834002144053111580937668586851756604565139335812270860727297094169195715730065578843543943909538524587314439904745962105641848526985878328914274337361655579541773058476100276443127653114840005261725734140878256809551829857959092219557497381461987809987063405478163800380761900870915523764915527885387749616337183889381756173656927383628540368023340687155380382228702348820372334228918309272849684402561764874246526460055759575497255693798125861270373409683781814474414566604324431046870882393914767338223243284313254188579820646172664698121502977500456705338418963151883388833374867021570989900331033116034176691278535237229780904889508330919405516258541374429539957384418207002577130448459339477206913882772140674632524041772080434261453801682250834542419514220258434821493038716368681112067330867089083226424182334982429808641308426803706874367009385435755264830111600678524813790496114710284707976672481743304237122570368488277175712178008267864740217860768580868386986786941819775957554282418927756230305572324983234839816812602696166585528557109090475192515187395053489390589264852610992950483818243489715700548859358641450938271409979213564289536783137356949699696999293562187658979793515969453628823348537532642456582946600939864990131358176815954068892985550023989496788044395381772480238330678463290634263930729954492613818246232431198473734524093479466115261969408259291857805391097428264913620886004411233955337250069411613431782467687536989276992210022232025646435098510172093029238218895272797907486234227058944478921645947997812099547989286645393716940708164502096893193466384128150545363257672927002111008757415856243425422164455334623775939856332226812338028818933476030119440847466579486592107560426394058845858785177578727156539303536768718143892634072815298063066690592685766047352048753488405383565088687639049190813190905352642014275345501892284995550641243293788288647999466133489988058581137849235958220382861552765512820455695351035167787968678216016596863785993406827166308123573236462122420538162373260303470483715887420781288053844878397343846784200685846590668416662576469958587432022623969425047593830035739173912170919792730402375852962709405535329607995907597858479629398453845677065191486975989663171626345062522100466529988427960236077116244114080410907094142284396637676215097061340898792088884979787329567395749054448403703337350774615301233011171700814884964198802384741515785407726744118255715292390753732024854745164886823954533542517402643759648243842004000524107645138635499493802472713030190559181013509432230528435426967054538457541887956349603035692409638092996777166535787417951544659656248706826505089729638573200675127638751337051241445520969102297854082404792924698128039240937956370338784985024341819493353188499345989063679988192003067808463927380072539081456067736148840651389988611506452766472435204089168600937314498285272711399559576231940220044466292418970760206181689237175658654529035286650801837235087478720593498545694492862745815513557939721781415162402576248547580020242704275613690615989895416571981459551452253188085300867023080263811741236063173591096739987590295305514617998383964939929128269935394906841008430954759425594979708224453690047409362537446453580915312873386418716442693370976720442654554820316212840663543291603599182036697998810953840528485084820391826826701595289313315649184871658496598175926240091131537433742232705933521710591657388503786781830290522215237322267485022786104973882519480617699906146224518847523428502553950381263795426632411307710952887323937438100854524498013560586439712006827244913226483364109986921604054228618440762254545337442152597833038044822473828670089494894598440919829118114516748329880951747898648880039878123946314135806448939204289832545642301632108482708219743030692626730877761758724662137603041894773855718017323545474281816636655427166061504935652729944754314615312335256824761343390758678077625634082872744637771721903357767242344924825868604943786336482334133444672465295642143191920131493287655732763997479463480908320647107452726147661775402990805725478499147811811714810398124732591401304360416644865330949515441242096946307591462140473124033520615256395922761179177630798621841616142388483465615586421644938767438280748795190205391137848032862926618219366532182394289556532766394775656845480639573164056940027153047205581165610857464577357632205577562770303136510331383671506162519499096910432761448991339349382442866457835562004080971876529040809611923390020648138421205501342752440874292992065705953960901604911125986922209471055317782149662963613259369381692345976090662092700276695710563933828356546791184558089597674410567869164920695802332252322338746199662062320137237056558357473255409343084549304163717167210720559982322224389460149092552388234581549112144093402089540294969077882184788889875404623871514048065934613073681019361417792400191153508933511494924857142777367897630940228470824358808323489967799551862268666452568673344622066075760382675748043179173418236471552970088543251782053773782365713527954191519513906298447096708869503365338003539773943632790230240535808105637815123007398760281025965984378328478952482587447938001089839449023031219299936599655868496527248935730074575820419176403751177803818288846869122885622059057041719343517928371614566462832621277195559222622428029938827398128974083374792678205929151611568188913653013585141510146818656199291920383839213712465631380535292135652140216994094709859636531650776129975406247039521027880902596276344690512555136336337812483597732164295510388220684665599109460315811081277210024685765916547185190972543963691726195713571564630595647532389176729228063148414405871245150813883512397850763500690563036205147006610430978279897119296138030265067088203009221558323548856581353726620242631325108519010944409383076029203953843887421040573458844217512870357072803954061274005122475469707536819529736912392519306715643360943715042522898443826328324692980603446153220597343211616771852467339911957079304764938605193017681339138295291614156564939660597465818603955276524311801619150339244203909716316694714915547445372789246176421182806195901937019407208024008068766238469044623359882518604952257468699320605797748741116596655838507453709972857925730928830833813846058358721759589726528993313061115317240449657675444120302376631863130442245696883690760241351071099639116799948171327089029726614806425712928651423757190697339557349348385265815260724258236374391042428177387609850038099542579342474583521990529885725287690962149095568225867922546172693004703944991890488961355667690359647092460982718765354010468423057424103701321716219084369629737800258174330287650096492092551473846078818017631817660159404128613144320545820010383855079230395301074425144485822854851114529068422380651554242357128006992972946788704422191501907600065866047237292317318679588388667782346499283601937971167325170158356972007395772933263414597169620089423616792328606372409546702961842204069570983415442480864037534989608650023032341014865376506482973142044449672651826163075408226612260923126998311655505950329809756206841422939963157212656933618118394835864189087674762917920251969325910586729990655359443788394005751376228146532633223940735471763163913555545377602322637272395993802672143725480063847751902157273782213739626072955750381337855438596076444068536251360371223367783623203262182436441665041173832808332283500600989021128157850938419409438374227846259449177013102100151538564731479115135604253731894619298498348265672059482034225574022094512611442065111154963531966943622257092230874653103416756557913011346400879238148451743247087505292637617284445020966480989418529491005133948796195098897357021718815430531764452983980433682657679338729219444328905730001573866164093201058035746665648977025876944290726536118219375485262686034299265641691894571987208757634315789678522835441355818511841085872864121367502187319382149560385717277631945087434755923543563362374960479591382736641232642292665665888881705735110464340277855752286485675839755506954268619673940531318368802537979259143664213139358099625571756046498789247757619888274511803163324777545551278540849932447924001480093764099332222239942357724299425991826182853663155610278567442611862877095681285440556231955391068333491094956124856733600142765202821089970623299944261394829132328576120856774490778671204372730056416749356378707681908536825932324916010380285209495093516649209244415703373045843400207251758169700572226876990989203438214618210888128486217540733283523852756668105117861625370479169663502907367888034221984345470653204942188860862595842658306438658556067696271029088277961238625317314656334518507619856999266469083875611011182510694116587949038390248787850389209203933463291651298192583056855831240296604676885299368031633094313852031042507999071569648590886603854390383814500394386392475015329713236212032002074219569559466476307276758815580981426014729345010072075740053281635312276830962302746195646592573632773677615252328956732005675987273630127719683032342651757168565220638659177151514806576838183669702646915274447996873716379624791382135716587446739682231914376350732293547706172427979700465631275542484272127117344870055258026205774436356677178862011327047241832214197956999314485505236325537913644947242798669561802671197269199715531907947307502076143785423529288241729410348819078284688918826059234363571433002171681050427615470353339684584626112252880775258957973622134036108743643281851652689228556834149450025545221174198668552123125876796320624399593349569150050506986589036519563774575148226297655796725005010640894406950098265482014951822766845429048777504410824324499007463477888271558933335564963406639035344592296275239840653750324100692530365262359265056739029143896313136523748566715657430951394623648049509086085577555322776276513137224088198535611332381043882722775045678415468904726641849898780815245254862087449667752857927162088755013788235654598755534285055128509305533603094489058625394662575860511428016407936435974623293532111235882897191652802494263324220768565506202500039171013193053435929672177208387021067722926565045772287463115646781274696171546019806969747569266350160864508858826716683839924706252177163582549703090178758452138426387055217661505972151611206684174780560064880009831340108117461544870571743479167038469187225056250441354026694879462005836422733153794979926405005514449822987428390259898115925729712517037396667649016417609944120890642878188892966091462324833383440624778171912509962935739071148946468141759768556836107596872800680162573784437535509481717855823923131214690728433047015737461088589397139877547887561332826469161293137690672205712610218156141193338298597085269994696036455083811503108415582144450475006763074036927878018588742662359655477049188605194181642647591183474433524903361997714211425690450445886960795310957013496048103030520389223281412473046657775332681742907677145957623113930858483575447777024564536238417248692839922639283182552533766520592255162899909169281440526949965344248098515170238576584061560041860037136774088770424015672723704488995997129188200245779154085534878434547096884036699287346113746827783741522682070692825453910520261541966988180530922350794173080277156978115421999261493757096021128909852985343108381189748655540250435002920144243481527037696124719884805082977288629552039499686860405639704417212142996480273064658484997547454024250052335826302837191337388498556816828367998665937796313303337406979705249452071341055033905915043127227761873646693078773000824385388676913032444876875683710760910569053397790616700700550374615483549474487695675942005559607666069154278192454541963739952483372064829449758553179275246791704837316918818035529313450866095060601216765883940652057087320876477844654463807240364434452901475180174207139073751293583744809307357561016209806898739666622893016135442156306351946911435803817334128969744800452733986068567049592643848002388479634366125049584834235211951298957322293924061364949364526052899679043340894351361004944326448774827977639469441939834538199330685401148653024194999734263657848032378861620034280984145873105755260372877001004159552776191413635071141695386661236252141808974963187894339340449841235659471471459958908249804938894646036194391027128384935935895573694906336944824416489938717947451978868164555192203479156084211061440154783117599227565297842292659123931984914848359945668822177210117560204217899518824656978930821709581211908617195871357168748209240060746217702201143165080777480528242877550943044023413546080697893187648743959950041900143918628474910858290139551186249296955732434710138866670379630634578037147370545671138346524214380261721270462907717528372950310471447596766979914984988187802678198035903325876609148283480550331564275784542240101697308985526417088777006810483099407282621151562189310871843960507040186415088684143869758868825271725435238444279369674768288863637192826306492244126509179035763199338575028980463009597330888305894441559259095985934560122222832437193793416585218273662092412864252015775274239870844602882939287042038036282826151088352313180276877542720480052196271028360881728864502020688384315411003435486454393581036309222572203328874915750423062682942164925838678774578543105890594866962779076379389887257611776597537884551480396680332362779889433096990414318580070595147613187135785915264501452407722422698725043076957892402372481047942604111686009756425626769325355787358640783798984780400364301516020694905468420914914834802406651724864693291669642332020991032285129586221340355335936885163650847798784395430299702612891221421032778699928691031890186132930811983910321893231560989132454715772953011663976312692104553487494177502949461597136955310298415211838405415627839188805055724792838875870452868798392609880109589359231771532228271454897376347144201820403873245042107554566611837999725038423157144040239375196247540064491239429360660103522351626569201048686522984668681343057380283103055035410129703217105664321899368228391542945386147645230558215226708875491114488617030701031387486796114484063753350890171455144254018958913203979822029872011267065072512952251716094411376218569396675858363903384038081820700760107144895189183033036523643491940487263610281037729766499037312012584221155304277241908590985328512989851687729346056162075404024129608031736147564341615077986576102364766792831470944455039182463630564683415299787168340822761804806180863113286864532004804655781724334557456389877360786241141020239603019951561844334768718833770679144563216404901020053003744898920445010053668193806079559169453804958826116692145682411564938871975008481021539032111189917434773416325779862359718700037840974815865876201109139539903752483950487327915161170920822619267857774628907232806794008515230692678997541726230644047672886277330810016946106676460628519783785883769234779863636971947266617280202726140579664281964023599482664839764493422109188001758390556237847299544781069723619951376085103497958838435617463995044636980355819261119782843417836280664877878903541721842642489070072723589581429978958677617325684871366557366634338922748705444913402089347155273344390878699581998027154767701511692795379993890063062867352194899046757398380809310899427284738028668783305516523724295447592901258023530491299649752884040093874961342176565572057758780079804701202703848263774719369894008568987028670618957050110005666963028012327653976027309168951869186705646727601802026119645865705350467066186390301183903994240993773525363064784898594592338605445196981023087579575693632578715117679925453229322101637059604894971830122588842331239843043227413910282394503329465691445396613943496172548457637131574779481332921046886931054257793846311136384675840202658842170661458512027317183035282332830159759122243319888871481684159433408986600478477505921038438209330305918015820449698920070864903035963405215291019611014406205840156041874492697585606770309527466127271050001572538972138039472226352882515733168754677449602675722937904267536449210995258304879993472682008709577857660300132530648981688468605998965133038686875646018876934235099130197304899345227669238063059576382095165720913264263711658637537691838154023738078137044575541768941793012377645417882590634365848934564121536620926779331091901379759591866524223288221574530689861837127891351995941553156075839822238498408460520543753546194854146573533292785944512925306778055403374372119303981911579721364811228365701420800361474434880007486003057134428832882784520681762416167792099688110708234656736558241231581559060509917512638805671002107145193066996652489989456054296111964287161765394876490875492084565670388650212662560879387729112618471113254758279598812756114780372582088332201046062846571592902656586328965136118500655078128340414198221332191258439698768843879238494414655247202004436663792578551131855712803864024098227897804602645943003547764022293792788616891888450885157994106649578382694672465970332271998404032355307253473397712536551482380459637538490730323169590986871474815903811212016037675307186313881209816367454997983022726389973086450551407438091803901070266606596439725414328758288914000941787007129819392811271175537737258294178590355250941420986477333353242114058989105089774716814304748884807300303394821925329197044384035517317345535971814164015276432760357367263322865497873700863952921535093596774078218885582960217795711436336414100465749195401101267130778928232228118665485669805519802179963623276692516160922772842637713957707381103253936792480152720353026703223613032274814600515631528451585773801025842918251492247179098159387143531890452558672535429404463528952568362838241991861792204808893022919243284160406287246148551908983095782497318245012901060978802198547526430809554486967770678123250056441760715609269096477880744086900420532820469598362200817031659486589364116226301903325573801661736456462049671390412976457762117926316454527956830115463013795050654257149933607775396934875725509390009594520041304917886960540718572331077712545064517536626826436979925478251144044450409885545491977925527112557858675431664448275622123544091423953266698083347561866436562749783010533634250056183530189758051848396242177451554366289875687520677081627665079520235990115946727561382527420460577102185516828953594611873827379837848745992522334798413338966752936149739762217346144165059589761598482054572498092735310489990157219584041974201090923831401727838671516780571393703131106927750136931145850548908456257883421222708005747260921032368358285749353147162370775495479032232786557940987669179602259649758870602960808670027871415652211222181671375801198301598476460626660252494643615832174127100839521355325533939178171522585354115257981751366469705826378647211805254009490149192312329273970319790871888299029162321496696842055580120077028152558232994322892409694880729699019799457159970048174506958394578536281625270039731400899302124649079101976337323601671900955860549930520192787343718015791999199432789844207128691870705402065583275405367235568644747089821614241024641327260222712557472071910194461243208511475135679482531251771432184008648898938900050111104670678347104373654356059555727626416751970033391795692722533222385232321195043738685030206188057562030950416446473892343513719164926818556546316136434308407167783685117279349426526404627814570432577723665931988935128110999600804326336512145247486128628243771444293057066083581784432183927665256186728678696947985102289944647350607243408133085857713574462028382981255650783771138910935992398047903477330792746741136063061296238028327245826810910266610773551807794149480026393447818799223565233117683489929433448781165955122879324883715454998677068308118325648513867315857963941665510632095960303339297553578499205694122924432972119785735923804503403754141961137350254493561141961315663697871005207697571473397997745814541169109362238127326680539630770889337150848166775958324159055909428799779948935900741567575049593857370739359401756419504523856619941089952110321752568048782514712720977000942328186145008611108275406908501118622097566753623151729790266160828487246540192613862582481936402851152108131449476712112836191462985372262419257884836053146992070665288238381191709263641033992433199809723855047333857363428593574299407749380037878904082595492442917385169291679150133838528635327795476124519197849296239743997084420334158056319041858865053132420186791903279088491720709425267222480907858073239187493298564337247203335772980159141549348122064104841619195073386327202594247180575782675959122381536755446389582215325803471719151695757774395290465378739783031991627843221672855985217827548861217697672194039963750795319383723969580009109200482353031263273192309319941573907546806495474287534968477367285374253167780660408769068040813021559956005658155555815032893340737926973091785264104785770278357730595032861868145616080234768433184142887609204858800344447220280577356342918921382743548718156664751084404604926081495906024984230043133423613803184175980650992653700628028473279478519745355581726662588657016201438683266080786891363762089369075858226771997603012505223573014922745995145141368072109089050684734614315005711891094756893589951446710338054604427477483175800188596397354395654531634027348682639262028856633396695519358236125846066206228514513947602634759345706974054091866596082060161607229863399360279414881832276795541291775518685474329036739909972848654711889772059585886066039210100940439329941803372509043164123986595989456864232978062750802470275317592394790402827486964702436080136270273745220548275630442409010974641293733282075723744629227529439579081350645664316419693477282803879386073371356668709025199313750174987977297437652935182387684255078378964635736767634829326960692068986093496565996796634248332362514686672974515054853469229534274708804875518582146854111018881056701132462048848406931040195830806867401424300389782075219574083255081665292606406897191163305440476097115951450822619849959082051415793263026935374899264197411667265037415676795883044156620678774852069117569566948330608093149637505782698411554751883714942864508153058072504667911296726175146084240017807185439483862888960400727320781614567518052263432406531210304564497174108300747803717047320880596939648778344206521265882319058251913324027190457971729219506333603106979129102757697722067408348475288670855502257562042407511386948076247648042817865634422844958446658837813182282063735823140192813017158059307697508595982031767906816090021514434340777874845204030930285611628042156988099981745388654205744400494147010831561873860221961554840974462757751282793618977592938473233419257041015160223118018166731694978242851917643424991764397864595050733462160680278054730560204707176684435953505254826150194229917703338388163080667186943196058727632853434318084712352256188784771507597713712724481144642905951072902459595277290028533790167917608760879915459957517487576942361195083609544504782083042540531487131716638169223377432639171394253147579012610450013913055762207883089647534385647886512272023741125471030147522469172628071344345383081928478648436068125470770401952779523763985807363822677569847649927687222411141524287887673104623296291319202687542484443113818582999444904363210905147980626516530683602605944158864448123597765016872375242257635176733091380998420763638506181658313280240533986092853127338987897189537049076199256344276106566186964592349113025634488462322849578777211948880238147592281800351480797719182898517693144332494475396803630646557139391360669611142940578963985491630563911830877576300401047710202902089723617465632288533114862043958253463195784491952781253764906199457784869495630497609359537439514982083487752122260108830515072215267082410913855215083698923610285954599922721163861161994196764987798181169810855408421078300660733758838857886360407087221656720623197141400351339346943860429604471174632399661770668379465246760173964919250844405967455145490607104834349061813570184209702924905636205182861618316166218346251734867303393300773490656760054868190525237544738508900494140826862596268290277888101924188972558128264325824590384453009396451419201034169023786112160516789885878719517990372357727432782437968611537142706346842139353125412802759621651161765108925473338586226623776060009774238376777113250278489061524591445429392582482834461540160718895850411573431891552556006720085144982324919339198051562877032667629793471970357702755068411528023409387620138322989986325027678136245364206805958045992189942078410138455113300649297045988328718361585469737190382391297275153447381865931142171296774887919880338597476764502096410655827266737441236613029008081579693706689435188021488346871911296848753941572497064171826449434534386352523006865349371311182225561913992548118288399768853373308515380205131784269166579727345257011147905498662624859287720849946737153569620761374775395016241913837189674888959384930328241885866510099271235027505578958519652698389404053772738341136166708014767523203735254333084104124452020234036103796216040045074176775405876066637054195017468881138635946559291574007915328621929554552232064866367993218979476421349945424884593438726766625579221143702754360659535712478553390662861986743399535225898690438401342110594784752108034696442104784867292833480576875386377884133618717274436104967512555116161006959310872226944429738863031556926094839272709758694836029949839706302714671761309267220390586052614842839000755953857276785069946778897534250795557494804855529459216380862327435228829166770987962378281440357888111969602181800553255284764482235041131144040196601268312242132801524541275397678359701005852925394875212252591903650434730177654995021445280730908975314091277362520983746457558398488280615279574423698842868372746975981256432617393778815357825207349061965005469229079759464294830869010399333452081610315761570570500359489671127946121075554973013243519708049008666202384001132884054891944929103609745136330602219806373608458018458427309688527288872141411012115118528003158171343825586087549651052950577231335002786057895433320470847659809355139774665139954608965402271957024746866269252647713348136383462792039737249632815395585194287200942503672373469989793102986941362848235250341352279365404330448349935832834518828155798702020363958861688546775820951893868702320972329341076629658218980910684090916756257892838136581305441868566622892872310541106716350601304474242212330532460572928584450041280028376972592647653776229122236230999649626061937029868984446127744347688864252874820241469743107058338949659140159547726067759725871544066782871925249304425726041616759779242218031481773033426599140908843715325745921071968250465074585627088429353970134279042806485161957517206671780647994117815114673494055781364039432371530313128951078371372240992884440239819473522118345125366467799736723952032138246891221406779086443856790475184466663910680179696651084828405216793567509664827712705645461698209905601659482201041125941589683470661990863414916051916123745968190229267945590392363636331166050601151755047191642230447998130086487775235822945831157714870723039196483556625251579394537720692805808243209701490120894746823704774380212933432143803914449435921082430927770577400471911199880347137191152404534468258186212127001646104055917851733439875510256361360511607520376459200427892374360194778456736651355306246066455183753519600612228005051425852496764735823573554989047237822849468029411618245940154215705868788676072097796376163335207908082413477388908232095191079220858628477784213123280975348174774704272753593999171087660618343035990918562614837784477693808660925419894461461226463091623501225738330974264003660153446122197928160186603474247531718340665361158419288637702414441438743875453932675179327391816550669151343527320583294836576904227090525869728883727853144917105421596012102107822782931044196603349981249335625771568156653653787191605010856464980192485284770368678109188229308859897194203373634173656944590215512371742726515130986311517285981457634700479039601907035279015036067556206277080438006423606961507756967858721959051953619062515825070585859189808312016926417276007717706664206704162541881567757066560179001483501927191758618182500121365067567890744160584248278746362930983328839506540812876572206265695718250729104004229834344184041322332203544043974521829397002462924483483995823466089338034305963122355196524340803676496379979270154143717227978824193835192210158565223813042064026230923126275889023032523786617077634630547161891325022759217495494013579468282431774784231104249360724308043241292031757993683966635018094967615234041237806512409418400316846963231529937155529221473042554618071040381621112658246777408597827090760746453702133374128168444146034178684546456388581287062929965472565206939828985996129885156746904621774871508296411904967383028792494489006252973575206342831815781812495354936816936338679283627716084313517864561665141389577128967798863956732683516365473988957945047914662824334164187065855635321020959177237318574152335068385316857681927262169350403560002509407047676390423201924474370263859842438304622539699197840065470220494987649303311530798378133297105188171646119010494371327086190552663618281066663854780427273168791705778032876041826306987830572403678415416815167169829274457407063728023624317723795518206427340259259565193157554146598307332587034264102777385434865970019099180887024625825023556106373007437996720656558336163002822419962697184208923285002090194844233441597987971142869150429407636797038187873920307633509059670409222445125577550628223457851595654540966628748055801705866209144081606579665510194813671117553545874039982708383702611899943940521705485932893928177440258604578296383056492911021004176745508573541631859712687740208827455949665095418553818501881524053379721512852028757257163856237110556048855974102813281649478120251768366499978574113510796476472182480976969573919069759947370514279934599719255841661427012368950520849741596340280661718018442970229539394537553981142691218158924121510846959201087511487259181556661207367133185700795637317814509904176619718798868903115087390355265526980813398110267029159755710372276305607556501959106075669473652430147722702192419271730936986613525694729875084526710900359494642447794513530768625467181652027454612150608847951711998282014302489302648834395354728481781428067584909014922506484451904499474041754482425154769263734983450033349029104920896346048989347493203053872659087769104806799301318732596615356752985845299727280339124646339337260559923875299605859598636788396130554282883875461960236505763386383578359488876449174754940684589876440530667702719982225932424053533280808984741219184959509847671991332114619877559302551270098811912512870700906295361270721107582998965563074630159535311474572574189396246761338443484163893108979846199163947289355949487664742180774451412117766987213498083661338254026665695613668248499645446345375989501549243772726661816255081377156956655969853283677404553924805504028261247627441257785451277099087594982143960871606843893841719579471514761068604446390002984593822493871577191462047089793038162919175783693616116105145576659616371341478024753740893005080764749588117122302238260702993503161432579999050065012451934851712409642474295774441397999333539647877725651020541060237684014329042121535201884778506132632933543341560346923367993829860755241476148239905540724268031837987361716568975172899468152333800673499821693172133531323659346834041369806081141624594042251695994680781989103818829480672418017372319490335970669522440179338805343641473572586188165274381041931317496241829177084018783423031901828963273546496589613653263552950600292196909827744583529392105435014015749464844732162454874493314194341707074148825581734822371093648726368718508711753966504474290471978116922884668420773670120656249722197199423755148624688441972858118822176064825155810285582320370143506299587043012085995507595860570424156088343359366778944818145116351567536334444878091819168758058982882888019792968534128597156108545719867317527342970406417840455115367051015590068345934434304072521310768282425740476353286817272176996355486891887145751763651940667169959561769967168501974076915460493921996994803660731506116711046189222767444701585068868748309095398664577333188691602095435833806849305613964661159906294614774890164445480924995885711528457497522544003923206219845006987559420840829469047241044500508430386609563503500613474833163876356946737647565091259705202191963068431378520393802153382324040825987153419955150938132458700575884807069887472430716920480097319996095035095979589912977933287704079769256920442003527108943436858458257314136917188875397329091114921000544273176429822097801881812445746645536751176212423472012598102643378332252775329497814607687376035590903648212441157593414477566496684266031746389256256923688598195675302818351120752471613716406359186285564892606777103640906462722613732705862396961356907617832844025728340256724421468314788345886357334175475016848605095721417933886310741635660146211776901777780629344814152229883271169892881735924100688413314734241774681614538053658142418038993741309125862657432795610109097775249132687600412350316790037297156000960568878942010450357946273485690994766913911873594901236265600196296929717898568325307258054791329300037903305143721952939781948684556353257931907995193377099224914149972614021817831694732069969277312357974131821923414513278831260100787589194837313244182892364898829227522361694093118387663174309328258314213812166401027629605856579781876775212704311437541252628069461668450570099692490256566809373168798373243824938750640857597408046848161491033285221627266619119220221814013267118236270592522832361056457082560339626005034584778264918216568904836539209436025561232182727371838746196002946211632460428226096613278397306947802352501285418137954874314338902891370978241236672334764497981036695640117526140875783580534486759312600390478870247890172453807148093654977674741487407145512846562882157624718866022307438807151234784515825231612050182224934674162104063303163357199439962689202687653388777365708572897742472851733649334398006986007399442103606915665373728244305334129326185313834723682647541646856586691585044235206753485545775028717782241079972239485677647570863470735761940813461408228260896591347892721226039043852419353849639003434507148651446038676507405669825717475404729656578452850784524376387118791799294400738033617450902740023983715284542518935393256778811383439241981513334222278831591835677187996418794520668357587709416314678111985976224725103378589662157541970668304630949192284206132493591215243138066134020512064622770343402978231178733104273822640274621646092873940184759613925872275284676332935609229653186609695569931593540536925147813640356329413371637889155058932033202335875925548967514672269391096557717499039988021653167350646705324154426390237781167247196340580270208410409825656119827305775215450368136064762925448621242401172566479585546583078143721434115761563511761279645919473778747792397925555236206677105806016268484598387198263762993927253253227122105237074632885147372118440091061071346359084092576892866630883299482306200182917615192843363694100405438700520078288656116344608908448813360307509984251062778413361286925928358617147879787111325233323196665039420599725748494753488675266845866577615721509264930413428780085421156722770430056030469605495905745007532211654169840250067588192426647740562161608055057334178417113051348404128741331968226776874471145153294691305921815330702777221783544195429732616548522300427996680492940242225526663140389909968924009100862291388294683606701535243174933281871258676368709131211266796545719188927641927914552048120543945666920074968234622442814789692868179507276769027389705412011623352872281669544301905981581648197123519547382300997927790565614081737876974367463975862557217514814179064952284528657617790278958937392691135015815042237051807203566900840746612717679283606834292677215260556423935154434622092943402870625619002543624854583003625577857601205543007786879719674739210280263990251843200365194885002342634531384586514819483115793838434439842103060038333616878230464805627258621692735090844019625154294872890743094409119317919438741578926124953536737519095190967201935770614216584059642395823293094929197695158928913078685083578125488263860989129512066337081626781612137647776823811914503440105266048635375193880566559881266069594642264291342093030660120689306160396950882609915557713941086207410129936830508577543058675449521177289785714008399975541558648859517658714609183839225312271434567453679807603288034588788572225348914697312702939557368672335517998484184710971654077703228431632299826618556623532433261219563960251162173614366876186133905257632406032754726044309012579590179850005443975651420992785522979303375795493120617437587987388931708198845230740423133431678410823370171724370651552259656262299264847025762310862503481666438312910200527783156000279024699778950308035689354602523406886449512585941082360112448590923999857220875749844613721644159888143404213355083937132973457725099718801044828669678526695076246332545297694562169056162085595439641527599929048809653128380417343575095551064634300839813932692622021958498018461288573479564246818621964378714254404231045745720850618659490553321585788445950752998445043935948351508501313923607735199497977052675231492961147413397112354039275320066189409750069325026639484691912808499068111065847435274968012933003089546757710678008097707310482031733248498359254409543886788639067844983432819203508370215391681308513426181445387206576134761349443824105578888104811375382033575986220910575876564726066304722529211155018430525034362856221972481353106438224798614116460915097101847966425016617603246244781881263122755141002098224234874725537648908279899633330209292445392724514941361324870952690560961733199268828086627588813954304963645935084275880562148963355036229456653782872663370546227273472368527670378824487569676937210888179573129869286162034325161752638641237008019332406536178742583874723919657193084981153272776210553594475623101169125347457670227404614893907211692134886128792390374992498315414122427236707443269970301907285330683802015671808006342986268493920809853061074585901667026239910950420479727548729116529963034738880950697810406706740794418824503635542956761069947884619024282693936553581596858582835713927332034075373793952377028158475955556252779973976360744837916261616436942660520555981478172751294008898818242048080883157645945432447890417082006221228911184184794487117845335753421108292986082970968412008611553711221034251658688569374368547254653472889420103513920207050954153588723109350761903347547033855895739997121442484110787416255157764228669887862430324475579608548194597404606957816395198675935337810550742330497029521405012771318871298043944092074266739690063411037191991605213992486463616258664863679231490198780752614567384019848150827411852166269209521607712867693895777731901070696270048985056305758037599588975146962971983544338435730257007866519777029779561217227633439409215229338677228619790527765334906848090823527558566526993579907150835049266782720708765505349560022489881582835263204800844562651122094723909552697455584687058694002272940797069294253380611929561165926590571236581184282418869354435384241042196341052982199443896260039782798746691799492265359187602659747906736920890153363224379879771182516716327330389327648640478645162788212801424367628934700185023765728061749735821992541634796464674041331374206055596715932210334306937304172065528254748155044421777095676267171477137436342530210472923347858043332571266048684223583036106044437750730163118509733566644606308786786545146046284295987691307176304482168147084025587596801179641638023888489500253249632092225918621801490459415895261149799673813666938793602832439510096584157354917866853840243874618549919998017200601392978508073151600003653513710996776599569562500109444327238848992900005562763511763028584231711273348486625850949937711135059117557174319764971855891781067338432048529379621087808037705899495535700822829568412189739454771217818085698422666236170765741084906523590407715559532836807513140210289958919548247909714088276207290696169080087112967138675154955478617661988620933887584387206390480040293083576580491851022315488562117200610038318935669732563796027682885323562641130172318415885847364900506342880056562869038002892574172924152468455952648361169385042183174161742239296479066599277112227988862611430754052667696723738638740422439194805496382281001462468640400471018930184393462850405028362035769817610719635200062179667594310580841757531089747882692780374647048700024001697846139527347611562030482860423420249374773573569745191279955488737517298016334425032478228192324542458832475152289503169132950364972560781192822262344027218507720399422729394860538904334590155543202449713772578434940989755348533638155994000427248315750271025788666262973207360939889234248916333797943676651040328296044836725972353660257363495346790230433229991852622827032400501786942768898394742736720975073116013934152597022186574293883951687412408185176672064336373771809441977706339318508383708306155281578313656435775439339952265431499188484206858105204470130078241047183379173677223650797400857021592057694864493645530399142259704152378028836512022711242144191883826833628021914528729734010318036778305372580331557491296227476596473966454261455382048379090520985840652054626866364186754343662501526913255839778345621028470096598143352132366879050039593671265431516579959987691114523337767637008686981100191271609483977490478067976323312457046052021321211467061743782742647327616894810170291836555674530035223092648543811319161178059680075317494484871532668326217081057460929973479343332509177131954899682718655590497413125808165443997832691693205848278062989265657931717004414262783964163309516195843740099159621960664277002709971978931274017904686873396687935882467503301941154706918693557896474831048516945186095681865845193405504809141244125573901850084003901400837317558325520823138314115362012941005119336543095471268253677514051641383357714526784697237543004596939598865370503719169579044131417875028253698511938604772214114360502284624129250918075237903751524913976801954520290015998661851723698325884023419778748521817969949214104297727800551244331712425870770153354338586761693510598376727792693849553604557574747225280130247744958406166385991518355598133301836284393489395235530306620336295039525481572296599388476254191075427920748504881671006340576424045518837695152101085077673332668290467038153624906989666301953394409754721873693463148403617489226879938055957702482485317945695269106823750686271360262931053595838329236195048799700713712074644965207637553432377766459998024369080464301848942263183483191948816107174367628398657452502327599863763685802599375659361527418276856307012442438552533522788858665913147042996313280374481534531591667917295567449877136273997879109003166725307264992149620392640756381461987770406155349683879530099748348277967127261690081870953060955097324668480151353737576758781178514817077086422483935272466014519614268529115922463861825810500376477967493992009240518414019660450393895793832931418139468597152022968679644558946775573994690742844469193605529821892168404394789195733204343429581426035568768041902904041829198225807034921361597358066006720298935116110978250977480900497493653068459259649952842261100166249211048662237198305988929511293731224781405603620181280470748912154813943637035755641188634069221083716690694050508810062368692952097545824337971870184440213263152280593422352017414989821610182492114464902519374992632696414717728021363065886265243392865479668062969686184727875235997500340047932230198153190559128577907217128226382939317183417312222773630809833200627580745155419154874669556016340484059095841397228739883657796631256725036872571751985666961291810246934427544972668853295605545088354305447482230510290963366077341627404872148321551076109492251299473685489470932086880799521356465279794178062832932435851208292301330939281641340942443638572543219900678742185275193242154864627614100748725803851859443996659813614924547354167017205011839007123484932616752197192313183887019373370729051043942212118423294582853489582999244586085167649141609130729022033280286738755897731314325313654590157854517691131292242054033767633464094387436947722053993962553585722815149338608701790928127277748180281879800694313085898876783003738604640959233180041827897081652614236991072410800502832377336289801775613850471415738268655554588708250183621511190792861175774787051975571114219363186390451610417196426040780957226019209526391093140151173873593265700735481648258958527038462846315923660178989726897972953273083441258630281478861322599677082325486638410866601553795813764781560116330847974949513742255037023110389145030059619199239977039976584582410079976240060889712083840148111575948247387057652740888197434396249420186978231924065913874042886614403233357294275158110495659095629137049722734255212190215596460219154532385808104311546523274022480157738394996147473239828867345196573234196717583347087480559922346174467880964053152023459021973628749128373004873618111022501845653801294789312592974134051523632924269096931417691836002670044189951357953691988472867086436185951305115095522668687038697530053654803615785552378383016922293825852503426754057391757518519186146461842753341591181519354736344307712220709654351968984595860935819316215850563038136066209193103984211513308997375498319304920570696708157338108082856159695240228710754930310996204293580083545181022343362349914202843446728705445892454631883664681838739297118795819568314168648852319132656478668419328953521034791030108117642620984008706480599322075055088705549318578160709401333500280403399551997668792651378356716435643949102818489408725670802888088685349191692510297799616509571753414304860368352074263080304582205607440718157101541091260497796860139810980175207248414254573271921897568057733370634251871635445870537414419525582948093046276723021098440203790375903553071190405553087989880417253515209962960370830823164963124955770035141265132769847821045012530564581720951673227064310573567873172689137904287359523247083429607517867939368834387106832086804340818707918293964586814631413949319323254962873185754868388789457214347179976042839393722798381637443110440107131939246590540054732036659073394658108759177887848624622735293458931787087330775481878526217382536848917734989670042179084900433210006517195017918336149412577324777128105010722304426457134764306947379599322657572280711812374698466940497551466839832731752684653460329343608677034448063900183946488514223887930127794356247437984566719511815069288162556293618108302768575260224505535719804473174723780170632062166548158227236162933145013643085731668140540409792228455204645270971992018311960075981954335358494080009513699533731719576446889617492831383098243074468175109166306651174683205595484184545589903954416459061602535738249392497728050016320162423236105341881390706646101103804654079846239816381244125959909152292306625342689923838424268958557142607036925016169961465086130534921969380667992463609598117367737283510788573006078071517805057795794464595228406940838087257554053452959440538448258085503704222379058357671818279609234578086114654719796837151389965738827064979466382652978717326647804618100020024309983017838494205690268209730502426724088255230466934218693718799378666965057851577031026585098026008050155559970522314926359762333421223867981268748897979483865818630728886059519712226678256195044634769179729113570409178057373271066064596180111153164656361741964172106725840023604084162687438730400781677072253250866212189705616453496074041221891225669149286279029088688436333709456510533735997412875320891535269749743788763395133714270391415890918419279512077128991017934013703157293712061618798923031409334942166743290702767966939860124031193328709515469960023884919429050732462172277489850537365049494605957241055413701247695874005769666165809404621407831887787067212766193961987678180473619890809422978568699906152612828038025084407514820900674411476257998641184057529088493854669844726056449981909830199776700926783251821594420582753899833144699839279546953762257953927473105572150935042526683184398037683655290205834062953771343473312924464457482463746945221020234146034844256148220499116833515432184660756276200812536716370853867510727261059351703794850076332871817846320657311766724167374365625377427336753060269378107759373130389417631666588333360072946238973390273165670259850298349145610616344054138190772215875969407169671977295207133816691844852157546316138945181466521300394892765418517904847817865982867694034127004167632287603224450676878656616000246265554059731419226467150688168878180862003798095437852063230847009707314695365907837948180416166504543828251869421481778336981800794077772795818915357261557428836034048690936105353619614759849267576965277718654677294811543532852495643503977314657892796347272487388399349891682706019097535463959328770060182637810951674236967936028253935012468703615395785232917877617853711442377483353794519856671127917353066420260001863570017413122338861112415495616691965325294962066999837527236208111035246696644691947796080652939668120814490194956588900868153064723203156971164898454124446827452349131300022830548034103853596786348173368576178338266053530443537467818258363732090563345285586597457107232684635025325091113649758010673337012245452940395208161932818155478795821984295396890184672557816074242178988888876439682962204416237227940645794888288143809977245779072829903785397965006065954665944597937109199244028326667996799136215716807814371531877748510155034093041746335468397886069830373548556784685230619783783879028543110319182074720715877612582727131661426414376951981403970144702595303326917021945969681546788150570183584248064608490506031808544783464720161868514736632207397104264217603795279372295127637536598763928445317800291215655362441704468514009720656311941859549226715715074857366284127578935387214201349009133810790338276179574547484683208953159815127797114009125924135290880962183152534302789896897989253069334566321096754016982296597332960964158047315013471524037553102174084519959397485951397152203572794073283639413984993782592419109334437915766861539073188576260805148604920652686256469468965103124624952653659048227629185092882853592450064378772946462066338279208002481458706619580177167563435983425959072546086741118062015591524567034659173989996756226908199708512255756120753653181314320804072641222073449906198221349444917397835834290382028364476703177230410678557216199920048935058424841971036267196340855170670107832375935082665860427964283353684872401877917565456194298470295093798558906694048349410174837349494792888027459935381010332039537643257060601577304282582662748228297356256110892817226472874276725285467344139348264631069590799152968404181767780499614883575772852531773605169602746337546705721806445246827684583228172506313039182370366967940763388480244767608699351322339865075503693448110973624703033671696602391415405230699114265746945926064061005469108989563960928801472491793540664283151466607715332982401870140681005160524753942372458202108566542765125741736276305045195782919396080136103652137642799510546468120333868168137463311215888487740054855471642887521454164922837383177763313659004216596884527569118668733429630516467100236646477472383630555580027111714538229202455449553372851615104174979113820926555655967665211387285781941606736471753277184078289272888192481543856352188258718710965543231015962143531880362079672034598106362987969749871896955137598370778591584740799115050968797324289700411376783712101309484802263658598868091124471372026518250592894368302300796771930711040567673049724967278518873482659059081648188771136545579610323370704006316461911130528872760670912541339353960353177426955034422933357125257303124723357332167460767160469095208482128441842855271285542831893663628376547308420729044966796220791191916259938483748411265031469470239578623610693433626388278209901670956536639395345449808529360300702133049997037929367105699521289860360323756140911288349471230308806628843416347303442502821442239756970994808576859576612344116292517747535313600990725938456763444122111382469418057871041754902305599966683046699038680498958394310975938171102050050765705555022670690988096403061566879749872573810842976433315930222172853783044675862411112244255336022437821624504660362804247255284782309723109464796604008346097946256694952574392051882902196664467100908175177675352426700221117046385925967154875527564944928758561279562916594620307252828924693291325744695019857484980700214089297204700168133457153246957937896458774054204776802175819890005313157617629613591432027525110697414023029366901481662162298743879851399266430374844128854935745665550005604608345368672607670161163087780458939870134873498067143653381591914048245507259602916923151660003620038409836181962930632911631905159935887858631963478309889152020334112014894961128377836957618706755704455540731931019143313586931088097262878468446182883724489110504626320690413652573840211262797013274532984692723176436819471414244344236134318477637708106600637163779575595198950873629470352050673690671924937697311486211996158556898805155607423088583167397476230116107864565464980647351232993823554854955756083050258454452946306971762394301053587755325232692446905332470620162952314898789794984865486015658423312910148572620735905225851181466009693599847044917047405591233707040808891049698100615897576538576323341846101699557859756513181471326478948907167296690116708479788271013358254301058775131787422867292478752635763866040674131013300620582980771159010708152595309551688619768669802621103882131434054644972965622796584941873378172531199630905533572116934431202099283417910348173302066836679672046370713802453937702800647784152393737946027189030053895787897153075221692360479169306607503520418198461830947059699661075562884489563136772406494314214966898098609596201307649339750604651278309362005974410880666930908069936169214734772200809756098215288193537214205554505662026361601375629940518312145166456714752704498909175723112156812200887578393034616686638865253090527696488608233758010440982171886919855655518623225170179637878976518712039107746099465122728870936206577295361052613621831210004832465288259875063978215868894688378208405385754546200502609320973190127805061370458154059262833043329939834543972592229797237693372734833755005898870821068257054951733877096798451693897805444295652145233581333021130475900850532541715730137847415496283241945920671787629258134493185144915455224037547027043590862443058605138082638778426841847031912490638256903593991834899978293764207214256947606499728019947804076184849695586745184833583684969268609850872912720852664186570421400600666539125160957096067372988259645106077772852224879149714961149060455058544764062792076673812886037775459977827854401742949113681221399887880132929585261723170995773218428828408689029026528802826084257172828632439943748486197379376458909628536738202951869813009732642348712153672152962339604561547305726830841526324789517180474914948883904241981391668924733031854571696138832712281634545311747120622974677352650757109215941727322093760676915608361100092642076427703564773351744720022213599763528645817587015847281367527924093889645307879714895905199778792341212568106657709277702685048323824522604768432028161117114736521160710448117909232205852815957789327320969347451712051899385343997651268762509928486338312695983680088106552230887070237744060729835746953656713004717424232529134700352987237869579194712943161207607066479027816680808973665920995789653500717814156444050824641403474641751538786588572617249815903114097382618078265617916044703903729857348385640231241847440075579941975881562469772753548625265316596727963250450601242731773379116183874934896432396576905385300503700601186966184595167833805529929465970333132851243694133812811043879871811804935820500939834230703112992785913421508671160094356854789340508119067835803990542042999791327961279302759991670836362236975596803103078048688839801817241100693805779167197201137347201466538585147534205648474216690825778157738718368475862820962007135607928519280216430514214133413913554696039979070601679536157785117749219112298582379720525280016009380740864272191814195001303539543042633615888551290564329147489740775292573158546766373924687686922658229036526238868610112796829269695914313736707156486851834719084770756780490427313409014646458586907176420222933873797002838582465151506890665499200106055128043557153726514488486248147737466016676304531905989740250959738469141778820650073452933295261142923681326708994376637278219142648209839591605721329738335464711525831669184592576046388401434069991332356760093349288377763635453269678757177886987313197440330067581574566895458947339780771529470100090623555436138809779654694891601672720799114728537482420063700314727987564033410524680830736776431597006310135303266644606701030892084920874377247232446448880056278194283279916444907667305320216612848958809951942024857159693045537743941334043614633377565276837590791807915950984745969286570130792499182967550127868136455523944403854469831463808625520848628636107919684821915062360836761141164133458001316602186753215891209629295182682418948262397641247809482908630436655880145750175628868216446674942564472923317545104554729878703816092530180029783819085636635242469515425934245909252940838273580369560342430629376877425737204789515830701854441404464110748077264009268509421543349061001944217178564224920153467438194259861970799655252111438933471072851584776568484456681457507175927379394844960664964312978969779625409613822542685914557308746233973729018706296643007690576808870431049327478124762148859434460198131764601108777977890813817690446284497486293216975858403914652757083631326547078702995702229006137472447975166721807635935484511702889528394441844061413012150897399945782243468519430645577976217916055300331423896548235502792007610558226143944378479922556808675898016316849851545598887237882418221824703812545840889567680583982049136961442566063816216672859310882283305072959117510915788188495797753491110675597486451148837214624656933088272856556991037366645073758684668261391226231530440149247779239474590823855279014549104229266434433227853462389340523112909693807708251268857642666045603889067279940878903015321745867274389497435526914524050404643658231189218189023877900846890799162911335193743010726059818134545663969655388191570588024787102490293782461833422914468965440569859495770645281012508967245551040321802619726182773024736776831238989827437664237089672571540964965473960500264214314462760196595063679006442240275140597314320163916224756900333149027875770931771092363102663834535955288173457886432541708694083740562594086959417730499429482588086219114918736842672601835631707243095148325525755810450977821976536263344329384716270410140321829970851338995475494152630546479061282295270318553156703172593949530191556209125386522029340567212027433160128530224447406470658816070402232208403055949969763566978818063099378133492362686059264374630358255926571437585399205734976791014889205449656724293793408937370762152244574010335977989206438582058636780875728891578762850870713913977064465833974678469496877378685116318257038162762125562296600758389904463899642903844523857075528190999734375689969722579223762265082697387954048587931594799631722084152078956095140374252947709428938164568174082390960892995394995133284375676226742248520958948185686144279541266718519485782755136702398446119155028538719339921198094350738005414106357709295482710501786966621895313005230691162295206890714607351828999802072344993678752963654738292002359784093706405060113698375982533710629349710623410974497218318927838942711743677415079770999767386825461417335839102624923095666495204549983995170882465451422606042133635600095221839476899508600090364271837702091275470821920876555865497263106044193687441293008436591945394915792990532570999506727792505744634409564010922946440915685822510438808727594869641676125947704570173830285821546420521460443681418777234057641615568683718444430742401126897468750984556162146422756876040925658113031802316040882953592369298834046318902880579801077430715139112618320869394238821043111485945679036530966131152356613278987620988322584056650637359296790120239402873550951410667941292751970701962853570625398132408108091573419733565764729143359833834657305874741866743392760032354107513541613389988393225257077134031985300841064525058436919098848074271167672622140912144167745517386762428168372751317571164538752674511471670237963764834898793573337584281764224522329189041202875021668829210440522530122830217414100583494881364851471355049463790407589688832903031745686647563408559180639250706296998864088531516459187586183815359302675240031313796691508404901224545818728383493196324052460594766528069767569866974855998707463933103975899003577350360343610746721791868357186853369213482303431795272582912145638387000359417601546584903207617939002847830368116274964506317125572098607014133760525162364146631284054587379602639341626054162168935589336918301854888685833489499150951928357143822925525150584012966146304543261279931447914214577610804300685961312344434106683546261521324290909340309219905047524894706153580670100484594783867365907519334680562701356313484068203795622236206309593750663241155456693548503372625461897616737347805129123169958230489743628605702186946681175143329242900258677294744010368033772352329563347344621680908927933242610267411050203947775915034863653948886100011311340883272887700857483139120433998912345461940472838697977555339476494795221013064858118150456010084851287491618352403749987749173799813401503067729579318745400840985137860751194975580623977467226612078111179027651660063412405183939946310696342678429586489549776351443983694510376674034514338512298474304754684498355474411484935067133087469305696400627212323123645682960104454885849316712102303433446619002993296511295860256918028384804491702897717674479254512194555938165024346597132845296855090899040324825140281603121561662895930040399957274403259082101983733054183631175713755721397094118785881026423918152983861930069127680287578387762067881350855935818662871618511311013369000187882326819702339507643253764741800956189189271624702072476655734043180672860502372352693485953115942224760237138502812482657039437841604618931815386628308688751708506906723059702483662543465328806390701112347244638631759530466206529041633572386269052739608015373114240953456290574193680317739674255884320719154838449001935439570052052502087758064179118744839808933789301293816634191023692851379317332771027913164245064795896241927662448995584015829058511046504287812747955279076742238762839200273763390543247586103148195025845073480241145238497422205685816294587548980402670384983473451253994480068501293143194065296223195406264694224654419609723559495170122282755380875424346840092543697658606096468195933925024021115757353943023482412877419799792730161670343413557620731392975366085948926042957118053305012609339264792827556504650745758437610825980176509851669175406197835059584917512578851115540387552437946927232395497274405740291804254420783313385503590127507316914356254576056851586200624129080760949891297002960899022704685738085509645869680763409027329988589330568863289106359443057570987525661634309285550331220345534125074376161124653435685300230764454995244181108641830689610994738143160856661018442302538450203096632408883713779235519568359829704606537218799322358914008996887398536614577626528105583683046399620903415864004469199955306681744660168469165037465655332176265557321853982925351216783397548578836631922420164025845601485609130538975001234720783132153319717189745039297999446708762777964627820683710687431659807912209318606602754409679272139116279171534840855908107849973854989229020959687479734193678602750974878762269564430582768473991096580737119850638485471409013879888869925735325483927888425491147108920522146089293163699645193761671717182181454030102236894079872949266577407750575946734669680704150256029223922193196940114415331514783360163574742972631172041869848222684381847157608391922605515620097335171824597826192778872572814451792408453986676631916944578189811204250434070825117221653704626840335203256942549012730785634288087545788255527546333523927823153192951659784207844864387682598586150121334868807678045458944272217643423984331381710418577437463290436888718712332941173889170905279616175259534820924504812942202622790274974022440313210131328585170806962180442751341734536980666204120479799450450482877492054612917233489499771595018071936113831182304442546693015217988708866370956837117944670636755460775601310930160529186542343043031194202504298247548036247417131623135564583406188710255324977912981524869244111805298930386816847682276643893119485683880922348592478104255831687021681971344512967264468417814729963113705909092694818276150431594662866899116935567232070705670323655968433632959629882852019915254193392434404768705444497231300700630258385756384234838720233818479756115391589007579595340986497816906331103405670021380402149230018774568014797579837759276116428430774622529279212195558301519077700407816126944357513017098546197921217697526776105553807171407846147287110247693995797994166287908087368073938515200401569025991181671437499133751649650879167435491584731425277313614975699445118721717373864637512841954293053053772634312415061768931473279731640173814120297958231937452380754725316921554944550518406863129486002173550756885803027417501808240735535417220400045299549915577598199657257051025115539656813877954205986753409779854130403097853825619668111624285064186844883001213199273601261493080326281986055458696749503693146102031705474881309935984468900390212558390886009840286463631054391936920209979561217819908093576092247648276381685873919037006761037984024154003461322961992112358405557790156598035785802520100624158779545066054586407548225724706191643065214252172891150228590572619732495313760955457674995506999906336798208339019576364884325983913538606213173566963185827052798436002355219548151663042932690479493131129179077323811598183109587467546156475293128303889179868900304510652089364462033882647321196387132232269238175143792437821561582881740695953849598634680886571863852065501526661249787144206098764113696515177598991094591309765609677200407217579932557623740985716241635163242030181571867291928411898002529730774644631835488699678584081591143942741869815787617516742274698080887205725693854675394186736696522686083981209349495784740528265405794888361175645654220754245773991886240747612485703794525225513289243656956369933598603403679760449400183362955103309587263082447882591976766456177637984400466360326507610492639418062712396792133326006307082158520881145388722116380801709556561626075571331745269936502469247360719339244121621668194843231453019711614543730667192024268970949571869630757850138385400602410106372767293485022803617617202646512568198282075386615568867424767713457575062535945284024753372624834636694070025834387402712653208114447570185709914668074401263581624965766774458253215542770682639095585295487318752972694404989778110566117210982934511177303404470385494836614505082307443807129686430306294330152066825826044280833707872437995485968981921099720616430002935364890197418451061952217566209174578095637515045631379955136277476263386709641913375769793762428909406413531347999920888420214539278730004263552441241136652080582059567245489728124609751688889979868316551343503436282829869704682737976700884348259494918439994973946101038740295104726752997543183770929842587043899974190224228360752501073735015993186870886872196985508089499266982143113588607729341256578964775504087228262382136335625269661863297903301687001303904001022256303202485990106719463680113999166076649767474010953896865797642918775615984482872554715892310313699528419806192006476878655104417871551719214509412431199788196065235344545566140571254593820327851125882080391695615812149539179302915778211903525602649821403845025632755750502586181969669861625166737649884678549505579457817748469668120113283115953422515497972150137756547462769460893826287959928122477033081150113429151069165704774600357597516888924033313936104405113435965410673221672991252770672062535026269653649472847079866298320980567670923332041117169855173912387104624923199678944106512364610657184067883550225165202037527341281762695659611075318789359619398185175453277051210934277701768241771726061549424863797420396211163562796184082800940192984205281518553700561652522361455352395900021457112524586776836445554140186720928897035931476397888012238346063278163555347379617544453424223378771718225766858519993055238264585279163706177475648022646768678424663969079092356478408259585404728875759305747827448034313988145008178674949954342473826073442014941164876617211937455004776913011663116337573245619348759451124559666397960796546809903872701719778492081247108597179526604137788537460386206863547319659098140772680815850596352404524743963782375246314140002906209791522760647965279652311147046555129349457460489298842559652577117626826979321508198939742649166884070894191129620637530940781041935233619142604776353211241115051290614941916389402648189678535436083495574906822869032735894745106523655739552198693195631616349293067187128044377701252343959191190590991682223435421847028418471912510755675909863055984999239370726947133424383525167187059196333941964174712147477972158533591897167671821505638763440563252317989558385082720763809543552482110770973558082850172570740859137607395961344896583737931619553808098047016207529393684251320378332492520036017342108225753840506236042109958778024627916894701605139362609775648616371389449630176617473228549449475757350586869152141559143679588210493433958729663031889136321049041149851310562488589077968037231131658600479479971904137974673877998491868436707828932486798353539392216831286563895988611219683941512422038625465152057190259389762045006293516297730176764232723960469750402075989747106775420125781363467777242420961166874368066028145243953474731389070669257113659056034518108554628653417623094134506045771457329825776385640718981421007669425478376003671961146228386540233484865771987092391849047272832774730154422191168364844728054191860516485259813671565402897916907537448295571820387481982480500630042311332742836740182649796181313915448507625848811064596971432964091720627276103377126441907661359062517452696584677281272654426049315493102828684336072235780737236649385749430638188584703479629866179961731754161563927893233687424861035739651516601116721030453495038064051288623061435527047437032355235696404638495834834753336586599385880830644143387537582277163093129758330651319714363020742568537388804048434515618756304709145910039817686746304526106965271603141744377875713281138924792052134943109594520994225687114871696233373445560412538718057206873355548272791850945901634771542851780079859411566466702310843023434087450956133066330124410297609219190438296073806960829890739195536347923258161491158870178036024043630146957237885673498272574655072045414495347419312987393635744950553559424368333025465952116308883408544803553801896709872202924873430058380321201443195418414006451356097974683627384600423159092554733085232583906381659197726482818402193940704665198221873744347908045267682617189708032503759779254730067946737712912254025970664524008338849297437772983430023884066056683886350547906216296856452947736877148020257520368681727809679198805033188784254764683321874525525337888401077261673759163560592431749243328281250401445557859454168411972666952686997552099817145220164454089891701279390018985498076443904776903754104164733433113447406957041931440802356411401698846877841177230519488735681771227925302213740209811697476956699176325900385732375126726131495251395315415179245542384093090557011015820226061833227538898088232389427173739131680670203960980228741055282501593285691828048295411361450795746750456061383667427670960503067380755074933201304374220986927264404737689949092727083347829575651304821670979201496091274487174585442752240771882437467112951486044809053955339507057541460669878118584527559345765543529336151529715430041391103215136789091961187355339101104567077769703279089620534294588806455013766643021674959322792963163016609017825699260392273041369856739073239278000906683592008832002921397805441075227285126264121475211511300780596048757681865595625599720032639649836597534520418411420640873547488275606084549311300290862196136360410072070637284995572792893504269543087753830790810307543210189581088603826168186700401735585815610945238677869250817523880609798165553558543555031313899037738461726278875714688904008980393383362609165302554359781029929617422364408375336543179921618806772463615574227709172246740267523152713460634840830963491019712572886937205873693105603205354498708215756562756787813853548084793525709994993544584332528923060854863030304684562715178350345259679889621723141326199569969881527421791065897711237883373053312096819884251448700446446991652988069767845211360826757079219626514840438987489142471433428275141019199167526862826997880858021159626348778735336412351121498119087778180830777799977114740804225038428987902581235304042329617663750033257228330807341619022474936763047695187656819438355384800245308665270927717963640310199956245643640919453445208531120461266596995889145338866603380821749663613996138479368076177150928220578835884449697779139018433145612743485521153588702287303065246130784961578497118760092225623443673749877347149096788699517729008047695637546644773512963646749445719563368073621654011068893470526786007687206520784751011866074901128150885544990454432853957130625553722736120555290245318314520621521486553361554071008651314798744823608970192359438801682993426133340393896618199318418526108528414139262494830756138674693561444565568276393094465387561606031449032275827063262875854924642002126924955296509509328815021998581428541004533478240634594050576048064158287710728822675404006432407296234916833124679479468229734797737493971065914358257863148782740155572804355343790706829391115960002857105458246682753240408832868426815621787684189505572710113333284895403384312243479048409965206188493639906222696891095909663180982253831729524542517481279159589110331076124897036386342758332269620274783238139568612943603650944277651399063602146472040444036648694560722526512609709465770554306767412825319876949875298456271198213826045058357745902873255592737021610052152618926419418860848639983479225637210940627020964674658943589426156898854698555796274201702677447963994097298559729015784572436825937468153509229044439365647967420206652886508130724085148184293529467218563491799601184633242509172584369707870085300704408920520887574920518098319693137441986409157181007115052373376186877934401061069042740577522949292262498564030602766659228106500537473542095948504558639009775465598295233722247056232353033511415653056004841767127801079612806785764687711179836225448224702119322842729259504698210778868051379290216217555157767331425119368938813156810464307102290910350203822864229957488076442877914185694673099079041209332059166703504847951651464185997291701620997839285935229287636981290197705647737727704069616169663948207066033078218582805040704075955971742625081077714314210832552805827160735684839073946180918020480188285561851585727166060851910570188395958759716158696315106067949316698319797225106137704337947438102429158331407296326916625432529734179707914708963069862098259713390533325523591014400552897591687526676528849733199015142058742918795611788589833069613521165218301741836776699541328281131564514992189534082936018706460875229949543440651953001145381906247291945861303204808688565924916414725635160756600115978635146235886636499970508753565976009096940046846283046589377073093451549754906287345181237694160182101958469524968959951219684384505311874069317380499803254216709633472988789115374017242533085782250396087972950529600126452688774917255069242981849730576613199199620094557934064650357550796540168759796929339088362846942805602457816183631383105597254229775559377479084223063435039664155575297682338987545605215102696110812145053304411917568479600676266527336957098223688367597687344105562284600607094529339283787119788680659384141155884311934068197910216911135550425116973071943780984303130399723110345948382752983159695780593138423113491047975148364313274108383676610439206924138540207884221301422378015281783307249983195887462278349093741410254294788255012314115801844350357158106975334774897792701466674413696811237690443930581659278956270975161920922852775528244062755159583652188591788454012769167703153746876912206386190985181739623793620312548662147756726324732687537764181979475598586556781706396782773803802735676786113503780766630918190893272257349647396315559374620579368463227055015303853176529385583076377313012975247655515779166042311209032111681336135985272025087880970020097633626106814360149545438589044198451791691712882654157373799012557025903263003304604992862729919908829935469586868025369593765535917979638735597597530059671493330803518577065798579717831937179116933746006796666881169543006486951691337416657065049932051670336666999263708202415080004975080442468572631318614082757588853743621253648109862457541725343918851089865640994093024912571228241796037391230216779570940986601344660239830172182605430828738283338023842898400116579377656388206602972370327862763415697041024533638538257344350215054217584954678447483919687613652628196783365617746002933752788432399537115163946121948974004123787241060218335487490626111857018702135577510662546392665268222184927310730533288767728261246238252650662992376358095300577961122087469361358862450919742020763196095507933750385158964647404740057047609323238501868611175961458381609044996330003819540859256152065211086212360350411129880277156493195760151880315889231060246295379533993096264759257162855093458164810088497802524777752595664049740008398459869192392201177281508326336090554039296117439927575819760829338369149156598060365294738207891033980587575659368221239398022097776421210012136318545252245952562358377279916738620730481158107061644757473204117170110928781387774906351757735491652578524090389533319380079496864076464559000649831743290704912366936470678286949720562083877327743362290242804430954389019234100181433077148209595417908760874696372888993721160476114348086943102268329556899820042114962760073259568231375227180701659519099032447834999413324999181978289694657474882376341220152936319387350505205069822373992270017697500487469432337861443377902765832206411459293132191917173801511566687862052186183604178026058084113325051970374074666831200132258499427758217650859368411273457276258044421565322570802743570780746069630693814443650089380502808711247769638549018209489240527832699986153235053927015150364627585908429211121693996959787123993656499245309878167223655604935532794604955371289011775962984674781343857946276790947881381778526456486434833602707204237687133694802373336273467309025697950116497820626581508335931903338990643825562559432116953536992367284009142844976395835640834217044572661947482493701276446810848276108781963182045448755678246069760226683696671356100153309795518336987627057212198746267693099957681097468472210497745220557264542081289702618856247300259075745870400854463340449043431397551435202426300610090694739239604483155824743255069284171053923431719875647592883177036257246054901906395929495194006025326439042678979199893762733446023757272376594831439781651787923992299659327994657468881760401629925036388296007064842677432411351612080375809282495578194482543417045322534518163635626037380323747204891785624523189253240702883849007034216425654061235170526458900853000669976821149834678988460309177515919137331140985785381738637042173587119380503828797349966592916281094909764149552070311575867983875573681901862972140614654337128831334399547993866264160701214998994950402233922682958898098637215175329780861923652918648497811285239968619608707940602068621906380067755281809748850787294983256919244970117647523197927799324118991018462662700833824918605345330091288371395541672561677378828502857402013487398595179606654481429324144401669065181334820079181983219430693332968281947152385895269474509223115270100914725584944987499975783191106299427939152532182969907974476560782237687019163743885986468303619744252316746291791539602614656187464741331875544660494948013286321663116473983791356051009730226426918978487314074124955905344635909634624815165476667001660168718098127223525359546848030723709521281036546026517747930043605171483418010580301057886261311395515257628244042120007841402175775674015433121579966759851967768070156888390539693997099364705676918507207579741275654288214148271415816743333028142372127384875548783556386257613363045426841647447191259875663344558899894018974460494279722585016048571492488051170012823746224153424093096687228704197164457349383605134310243444337734626520155197799707847711830718403169116650654176282834756066342217718014863685496086462817823574796526907652860017718044518281105653460713929496505580858179700422384074518768577454736170212204370271640453473547448553335415698175754899491590756222957934493775157120052903044040748251145352794696716061460571700633719867133743801457283855650021615037257299747399771159395571367884581985168739592514835191096623012212030844327286396387955299945121275490919684056399691744905331364152055597622423134648307447963626432215837836521037614718529162500282794211678566328394142307623523065541960213454468228446709549145228261556703735022825563342169687422290721116393390778678513337816741519827608219728537373884490283228636386778364344023589917137082525554525489198458469524097403363328749174152208724601527994537697816111346057909981831445992351846611099152929094254368715685624931502514206605241074657963358307724355917790470456479308443570560418604476769608434463217950558682937430798267215354365547840690203646346947852372616011629270604804142185961894703613143596872480230124763742652399669114529016629251975591649858474519520010986759798802408646696500276197230336585958220463414441813460386288832091983222836633665246999824012655745460270603546853628539313459495290734784228104284960468064428520233107631649144113049960643232490386668393964127614569653430799491637583573530519972785684044285264497059248403824545406920536704992230003350218338930706705082492381699218675295072244169905705343131378900435567352559149746909075977116384323261715246471239361095435513614329944876027389773041041946809238726867630774059519022845825478191947549603745048879402967412010601083598965010272384197899156871443145834987182446414003432629347036325290831952786060600799174814881963911810293593714334251208934064910838373801285192761430100208511936491406083719890558076880702367299866111618610671982124193440689625644352500621724433251423018079591253123936135329466931260233593047237303447290230027523269211667940502095895874461750046756876546783336100825168075098642538021460049044798707179211994276298632400853650774940916390844821854950178845946479083038904145163233397149999643466755521072019975703743379035165233440691960499101412916480765908041129628491218078801427962912364603566053275394185535856854735755516332724096355307001984609491317587425238474169187208766057303774258081312675846003998202021337114492269298188019544010156464243809883741800359916737764585085171737636161572652403484648042724166496972229360919639837708497597429087409001456513197845006904727219310950517749530368503377647634483855347302896445072312258554696633880819198812142881138335233479689378801078743570651071260081308070819960018113528058456957199906924889706900495639291362671399629989403221078973603999781147762169462944902642295066337215165619799846120191675841613691940632013949668575003281026532363861385256899771299106046534829824390998640638808240099506922957470514005085130837529583496283574185216879704214797369155429293571197740229557880143079784249246632041623317247152374123158170820145181146647103901724818847684584061109776674572809815189722601567316447220180222301689911186019319433419716644869019542013366160730613461093699217655939595445668082092574199591370950438483925210062185596455120804196456942782148349427244231980189332694395152028640211917029011625131260560075872049448725570103037667253678195743289022459530767692535297245358626178319750643075101791030205301131550316242048406527119635746351706976387757924301505906433715548127525432323991962794690081302960388981008792647887297934938972067809374356563298643527548846810942270922991429415933617587751133305876617808823249083200142061880144333356868987986374208680893353796621800172250664680202392372385789054521512745264358303924039497140189805954914532479850726381880279144573269505486494583022601058404314947858699036276729347650714359918860308374284843242471932007983053960656625815440607652694684718420763336388470848630322054102999458585338325536176450063158133985421706276594430499341869370260615272581735704220422040438888449614079744863574877773678992661744529295100066884646365161478724272316534977716723141665854263646865660811277169573174454109031274826550522356667896367267764614749148696609796848841445799877891115216184108302581890970621374718412482271892998452851563051864948080182655387549239097732846010201910891467449242365703623876760442549799312528918046815185761988519668340951016588210480465776589104263911079741551998606076452577880820600790147315582208549616192849939076993101971468691232330238834380942900334838018649643115563529512255031016975220453193280745476987309189585595334859258661199646003444178799778566924185535431935166954865891714254932417633696637785723386664458055320345130952065655590029484325722193032540492787230327865403599464683014933410324031472266116537563893097924493043170868926152686312707311000383637731415367234648312964898540778861496934980985085645535317445164496005458727471188052191554255390758440970164054306413488665754283717089755356045315628225298483112115908440438532612163827745470191497126005114973499698985733278851011135062490513682341491665947877192031865310193943031934435212887059649102920979731993571195845881485773889905476458139757750014795676921272196955357867223918175979764651252816604405568087994298547472188151782196855281415107091654321769823801335913440418035342045245397018774712029212483402687843903861313963084038077809310026284024851673298787668109846851505132629186491617122935660798254057533357950555064196058662250689707615615670807213920303589256834124841451860617001615376299903811310970180340696255252000682740058648278296353867613342974761558956593825307852827536520161216806825588854004091476840075296523173720837796692625941003054814599609342501459580242897364488379169107265265730672535359419646409898977671462307176089154357506309265734975686419864236359786334169966602723710254363637247200817500265134718525489942264598523936934999529809873376637344798186000737745120163765710816084039494833631835800581844836241589654748009294420873189643367212936174544803633491241163712650110539577916775026814538650026489720408121914392941132996632849264294842078817446420287640421345870232899823404217073905457695385575523555302817980791981775065369124772303357686976751533298183845118280743582663559716722472229694189651246862113600716270421640496028434773226852390929594390871100884569961230025623368970965428026661291094232575134541199694989886603096915002143171297623582639442488100771485443279008957127246148051164991513055010890079396218180470757605439717723370651317198696886038874489902305415015976894672738655153593403809962629306399657747526682128799519976658613955760221737731638085197348516964411526694312213551507283739567652569030742396929942342382732072750641719647685326358490629472884942131311978954285878830882408164227737399888640366682534964600932769943764177126728835885823578124705056698757741044495710183900179948523936673398253542813002899422803871955032368039832320883695140985856337409330999774792649581385092958453487465170198720871509920728365704815195064125069155062238273172038976182476342962026893783457409918019948902329697684823959780651018348894134511323823026591430439356632578459559155028974306743300321979370983031896562306634527154703658887831846689885155013161213525007808934343543750502332880789889403222551410626651395941655827967947008433480166946557709523625262434679685017897398399589839849707056612801441841290635756780220293613830441164059389272713405554176182190668542875406268807599466234158783690513505793068262997329872643676507687042080008653581254348248754861484375340850605616102722693602232785873040262815538300456021960331786830426936719033620953423989141843113861096182158541507835162141771917179559235676639000658473434409929648698652791162850769946208675782415028738662050173912666182717071839833930128406744641350923897128421001052888004626140894254351400045933607765784775525137508848034238214497493338106671601369446294768041713268976969196451048338664949729687059640393120982328974567874221016740424271132631993132421034324857625898151012078172424991425925864944191814217602663157226826524543275834573045521940438670091374732829468845717101610213091867597943542705868419547230019303292485262572025694827482048617458191005808605088367503295333516032489414619604302845794111348387076492286052594832610654730221362305943239113922971281945904763954094893416714593929940935791712954960710429584430978354734099681233648180851615363064811984866687323405913877577579833915050749678767544216979466660379438296199960110966656200603604313560841035928442231875173977441454087936680767627946293422387623606886906656258640464651056825275214934452108916230189226336441755923115333171318603874506777872378485783030434771810529514933744522898495041695152515775936477005218161896256007299370074919589379808151883983807695336682026686136548938418158146349726901794955647595702206180498667218870320683123181089030623800428323479254779783681892368021605870871494401685795725045163162655423801600475859932483955396783537340681772220950351802446468404181845949930968763757206546278165427409639403751011810716526553747101563244030418796458894016944878962692392362938585691310186452197039518336995642646087762403287870859695829982306911377496369213370338207718032936568653829655208178198991793963618038014727741397713772212134109460276805757965761521361745800678245128410865296764864373029175862421895745185648509205663723678029101815822084203600027874173157353704468283188807399907731206928686489540969305083344811828071032481604652250791141296242890781365821138153794043661087920266548385131132873253226642652120699482867983969623998092201164718142159612807718534426225489191815046581183480778945340692418236530252637494333814173996941567818351861602404683299924805688143174633639556848068333410844315793411444306947253143619300413002019673139357219135561858242817692613929483686925496400676430232107688498908163698991146256881200401061928590346858437386272928095739710198157319638928719914949402269367865452481308413952917672614349939684074970028265073442165086475510225605143278192171800788486927739573053584425119596672422155283918264072382524210554652306936246769557448001620094562219714284569840788281148000096584653352440546087305697594237319345907191882476493657272616225224763495174621378355310300188415089518270046867438553345550277803486243628243305471181040180064787113018578684334596580947051709975760909727548669400389314527057962218800862173944487246522087493893243332767015568501205844387565141292646612268922085482652629647457638928060261974660112890242242241997053504336662559490366550026404626078907739516517983102761131235957492469301823811802973181568939969414144248637954208956461529288728121815490738885287673176253854108114619729172658343493431154147980213586431429387034228933646551563747354183997325512170356243037996884899118824894734998173005887896004222535004110725999304671699250194853429882664829153799612618384384261642101091370714167371336623942349855794691149208189273396454454098067647543927161145634759414176784072224178963343565520117625607209346462594525320401967911209103866693263418717292404073304402384722997264098355194684311535569579930209921680453203512289686487560495688187968282166396117646723090080636015421043694122068018618137544324355444148521039134511945830263728488448443868481143142950400370053175285286815657176427369930950358899014258234902274042274294112549891247671156043805709738417146355782804799645367144372475737844491238823455517926610763020031814206312246995270888046555249524755680433621712635034399020399779845727575925903008921756070738264654293141622272209243011026380911702782579639053579739396156248784795140943007119059046716306916531067277024616574894323213048994961437549200511500109014996978986468498572163656687718602598278236167461785842541374976126296405377587203839141661977305904129658260543182487869078633235447521193460269504867383622953043868800400499692554259988691779580128463722423950934304917791067550689105349055845923867856456591883357381498018467349052886303685165549877051645772155339708290649859447157811011410033287925039914569067937395220632596214406552784402794988315451238102145957513812763135215662983636096088505565883191207954388786469201592693820226417795925250562887690241180499746194051543556524289191624035531960210196893243268462968984680015684134440479853921016915876368992840431425822919339801514685528905447975590602419561059518528384083157659726466271268566094191241961527616838168730491183572692462300792515696974984378273280875623178753959663629065302446991981830085199827434022127755374370124494472000605021616361170501257466522796608996107915214259072644536096601658161872245164417602182836668923428816826737137654882752072553755203514181641753466600374621285818911050370619154056861162787723132270526319098280461445054024402987216751663839005245815504345824462993483840107814166759272614940264928917162715393209758317735533195463959628640298506875757476357995028193349996362157249171166971325567025688344520025040009623876924988025071221367434280913142709154410451273586331434338594119963991891574112964967786991122245668976277745853016027397373301215091085880380445994845191037912222665947481903964222825308529905667530932419830591016457505766832365445215978639661233736238106935981035428141523064537794644239241677453347077535705278596540905457701504576894665968098468638457814121717630920136599503676992789411700346864627570848509207141939003355703338839317182140927540694471804999148349868844009439421586810885336740268181842431825244661890896494368647195630834315396337914110380351245187845280503176403014254286981025361151485910822889565415431307255340267026602137340494117215188226459131878227048932092024577728371318836307340980798348530884771835648732954618834409157619836995412772026188760146960405581946923029381015600081965110159400754805490725078024108002132075426088748736408762804208711940460304585990771887455610825151811094976255720214134811362136632210672423004697841421282049273937961523041647855325860652606622883059121544981479160740181355522385535717776853674349156841358781177772655252238784266107188147796589080848941112902508828039064068298544890193142783701612860541148004526648407406779275696703360604493940370096447081899863235015891407749222495790737055985957855782355586446213761726793890477465043568807358630868299928292987338467200526482143837281355683956275207243727497005138774514331443305016499479387245544529356124857474238140636743361234254936591418774763605800152645999979263684439721805183133490016137779620590224609730801142125149615978852026232969448518641803569685130099858190155753740919796284965946756998267904097832594720234637295982595151521034813684743655105779286498170561327717240385942297957861685128335933643256980104098738359785122164728872976682430694823194695678474888741363164963358665035667890730869628819037422669638704549166863809671987152431466264565295184879409853339247022344910354028160526502346785449051373715076946449873927908496779889564963108375962213845385204682545279864761995801196841720545333590529891001642379023309361567141189652388345781471926659103861711506177918717537543046112926714314914132667779942347251461048003915496647527430885887291831903624039866506848226404558380513450147159287294391499179914898957969919596644430220791117121380346326203914617700238369196719388423257771006744518646293811074904578493105605501866456052772431640091632159098474704806659520465390160004080368167591774405067289563123834539057440951548654168229012465778349684326146745000911244319538614342145317957488321577687889733935983673920426414781745491865684520651151045927854241514339774767384207123878806517101938600934548026596744920100577938503187905506402584055783001451516513311892198209116945779070307906612472008709251169262238603529756438556594012662087812874632602269375921919083642610930275318705572945857967599387319266579162251705951716361255394238134409063135676931959207778612889384454083667793019657720391832636920118043289470131678506564751629276691103354429270818469695275240559545690761223188927993464523714355803074735476101208364397224881995772068165184272692292514985013432583499779725387686091111891874306417167293693005612517366757690565448712659212397499445330392880697111295832227838201182627366241038515417862022019464395758105826822949951632786823726879818161594594000000817622571400655759989501198440028899282751123323202237259487751648660536666531824331272115362882972626095767830057481300206783341412600899183242878285185237201605958677529354448738403584487481740318333780478155392042949455129131899556158945051888784760473389103075974065344755134699409124133934145802563153562757488713261662446477643782640727054290908885131535652248603313601242232711420326163900237317562148939073946325953631007043161424985104422704454116515018295750859839349493449814919716575923412066991596682303695114623773678646428184179184457921963480430112593007767042050783508996901762251700682329879009492538054690690283224413705328199598148615101007917487867591187728222638275832221020670410160835152681492657009602308241278427356784505873782574942006676325601835170260364175768660774412364896498057045059723273164813119836913934838725373759063989372954454743645582218689809258854772777194588253462512831144792509629493664577640117736143921049964075575059193783502915046267587985399006321277770469111629981362146913521883226935826725902332031160017531751081846381308583493909426072976608607356648410413162247426696215187598558162654491565041607534824964436552068187816530717576417535279405846832256059304818463388543274180708357470517784283864515573741374635714058504460154973946000840442386637353065747084464116926088392268902888677682898817138207444820706169805167771712470062248190652944548367336229904909931282207564148276901854242465155574860174092894169619134635871770884037008227120194860676344637475906154093512332094521598204980862155642951280098562432833078949594698893404543065694187190714505428327649496142929443794880870936888167534608614358961303541970098226361481250330610402886213334739389183044214073379759900031998432507735711660159392654750207216576945175700124941255621067314700234266640218916880939509105006540086473221355359632432804103469966890285330810576621722007483258966729695795458389483658444548707206070415798208748911395630324557580851651009475367366872214427138665233032288837265427105068125619607337447599668451293615404516192523389732750390063337516499983390212500513925817478187674500701863765015554795986034246829934362777888427968214521644221953265255188699724397751036092134470826257980710603648753527853527632688745157128203608837052972088790690032777151632251911400547500951127312630221598464045046681780906155103550375293347851566210346985612838972536417829411581758222222043158514332419466288591064860344032715766850232608257158501212333953930249731058135192682700587672241759955205175468338847798271449070496101226943568955819111444810517782352915090876225139466949974361998383947370979183330031443800783428262637206233375560254181597787013153321282082881884312539789088170873311797293422093579500908257432070066330898787726983644071922564087133596291165884516645407048946000484592663913019318153241212079543324021144596346107483028451338693017732633616973035119041247596169744031041646039738260607834842016439233005832050389634595838275442605242656891275791744165491371142884511363078946496088929307621836251012741857892776312989836515853209488661279799714512838484985291488844981680967302434395999945926024987774402904801455316671113365330866136414693700647017805794944684048184454472147469374349430295295826401111500823038759788241606515405340885115617187675765203506751053913674408753476505162008155563040785983367081906785430546215151424249235352000339650483411856473940406035054498057161102434427275899319808139943671142451779702271691475428620998925677323971093049853220106432198764906088556280763689356686977600570501586075642324893719600415544192798630885163027502852526703731749048354512736880087762676108412616509509317882414371684506418677117237186894750853436300409061745806465195247527015516083727463736650700064129406730843674922608302190867416383292979322599988013857019265481481284428901141771355603545564272948530500677181919220510565864591089565131163618825026190799776104979357724505084558344587275610099986731485039301168642218273764633618280779789447747691433131253735982850054195596207491052849724171973006527725597455765724792785454991644680980743891926479836901360261866593487550806355935798759919158272242248492008868833270528046425677957814348623752767886092438115833436350173891365001646503328544423848099354031149655078709863158146604611445508660686249950754778965586590052138815997316831682348837889893780304347492079027856058669550962479081222377892878898223644228753572802788664536738924242960637052557365678249123279595633906816888966793458413778411487209246634670138133877101335541495845718418738001185460849139907292374250620804431143387376393491974526740536623586761018328686723875108449407748007757412166299752372284210489836178024081012593072089616100905574748586323889831844525554220359644317357523066344223421456829240078471254554978638419111007665642916620208779666915327382676906443551054242194647600323771130157568772000750475373084073234268505275126916261526349620430336091354477712187910345658848895292804180119196666836094462512143931678853477314674877249880184706498622468160881228654616868252055842183702304071365414680967485707823990875049130212419234572394533746694327784757131762755315807072760430688963201236260111178337546358520484538633910415824043237846911452175332589594731084199322793743816745114727315792152927117527031212793878853304440325688986999314362458475999835710017746937180632122611004890230815983877830829141809043374077740118884807188484492638377054742113952627675882006627046421977606398573451962202713818582738893537784941835718834495528979677302169895957956635145576534423910766884395135742116010450956161632923281155778788037932623774857796954157463565853079209625177355236831128708897097331539292685898445718768914942613507683498749088286399445509781949129774843668545140864147579919503044256094529801453094225569844737359976091549814296622058932074856921005153000793920972150432151867547704112366673948112404426019132593937506907445268569133222855958792844226711769678538218286035611017282509442344300955590972911733226870239750138016923108417835045329299182493155600570835737267947419214284323042787421443097932945108092848441461078699366190694264715398980612609900922541837675104867452763886527339337287544768841175181050640271282108179061183500313980341590562571952206187831325776947702446356980457095439035348991249755882927836981956357335282906643924087974054455494060544599174804088183210877358599426641816348814498415706692489073340081318157336313810478310970020005091104822651781075751869480106507624514658352336298230026712037600923470270698403118666979370371393509004218471758259905143933591428239354681583709815541510359501486280317463403888160291800633705790496669046341914029208628818637166839948614811840941901261423557681460998955404150601559169870328888919697531681795523405215471813146655630437147400567894826757208126687405833651860339287252530495217592794840695202611959965862636936827004013335511690745611407215709315702248659654710702059322191683871728119110382951383640394462190001630556981533894314152742978804357684657058255892583635682772373503018634747721515571032432695926902227774018823621547653883027044684987151593989373199798575410214059634666705533238424555191144044127699968703449256951031306964711814958067832255671232981419561054548839912327096034622435762010326002275932298256379057532997723286019124825468590028181381611188597893146118727648454931718199354619789836969092614568436054519369915490343941348913706926484854441188067400969461345553305031344797225841623152223212249749150043769557942991270036937353793522480618457735302258411418456821545409568040971337695727537208051650173905774968528143700012049324343794441607775168452689192966232833224384234387959042582020448044921319614617396321342117828511702433205389642424647246655133819527799775965039551014109186558968183322506439248559267593944267277478743394637648160585230234610261227440116830936451433268950867150731531320130790345091944960280261824383036371374386030009085901153554579440969945551799815599243763753269388107705739422121377477052191576398002823657933501543680590734573658006962568145445240718021201308390883164742268315480205728412311091360782838516219023747420587345271332103011003543506419581540937962489071163241865103861767839570313254398114610631042824081759272257367867399349136256242446166141895662811799823749550659025380043860269147583404334941631808295554128464912645151468087698530583705273041778654942363926718833786409842849844514214462491781688817348399783390262425732991520488439362281491298564578577692376137530945178122480803189436380766922855279205156186484108864066504841563561729034063708624602142222825731349219552638684816074406709625945099989333187985803008890590627663997402089310758813627904797746432662072609261272153029467383831511443748159628394501129824214374166506071151348322866858546945661398534129115201280543856546062895817266648643792081352995608634221458909808636900826013165152202532348296044354439007281797706874245350696038980984858271842566504578132628648257242833728762806935875578766565949932568736824910650578195744013580729699590768655690777307076044226064941285921293071470821739135126986897487714325346555347226915346057178786619208655991423749852187391944478972104805105855887260627307457829182645173891689133019096533358786576315748221870560731231419199409365690587383722111975693016237074197007770459199971331184118581720411100587425714754013882913802620541227742249607966855553845898689764055520578101722834117953003745819387298537687914340735056689153618856669694426695582348778839131949647244043983499821503905585793302490042774557528542021483123809599536505008871938915904997579443526243123621699834826162815169429016920770209130469551729606001478025643098885395566689253845580039519040108581580308462243851497555429645407533567495689145808299802335015828063129948639325083269256479510239149098687231394825531106060699095684623117470382440195342493269086135702122089872777893322013911192818207211267409976941234817038214254604592951199931518520470291957103240513638913418521401625706395598406600283110146319184164878826339039981820577448817349546078688516422625649121601591720183560751205716948760481852190866313534676308047365038064034298968641762879075724745956664808255527764581156552967658487402163903679757065510858716712745279672884460084867151259084241760541027677405393862672530507801490279336585039567300435395160856375138584442006756641959529184472833525429340215695760345794745438872904907227432136647222015993789849771741550209964193128800597946816697887880296333747515629794709928981291111575361597741422036883741463412782227180254972744217231741301032687785503051452748664759888611622211099314572074031341642508009057658732713727329048673072268087710667705205486238626361078063609855593119262202937830353566209155743467183870356872597568845694506594827495576864114486620745970352335825051123297733006802588040638533790050204952304836856502874123287666017377127189137080899447968664563029552811315532813614744891186632050737158091938349823568785073980770365662598662323940226817534121673205113906305093181452951121322980956665424637755358910646869487693158134023395414116101771664218857384888579295852483747192009890709710955567651422908948674022283675746314592081533934738924687792246721788699106920799897011656053981379466205448564514129349851963837492900986694394741475662020165255194678591482522570840921808653942120214234625991645864773113429901680026219298678737404681479827229493158216977686771226219845141810483964067708499515383769106022329308474174373305448223012018609075607504163749826299529566639922081471537510317070190568900301716004615248572293046297759562083120211614131202112914041383042276234616691328943199597665608222998912033284259101071276550021909137470862485505828225687376691512962465312372401834452272952630987793053964025234348226055089150321251997394167767592414733306614031037374461002290319952439127815516758087219764759862016203398899884850115480350453912059252220228133698412068975997404590401538517916646822985072631072774798072348082828282002387635808162555763482946167589755078293857117794701306200914219990423170594476000102102065889106285879325924867570168774963575488565600808203385550263200811693105069794226404914329637989507884615689098237973362320605131250333229064645746517803883859590864209000314798726352737124156276699919427808533264366692953796401433963953428008325625030494036779872674943400871631266970922737693419200522840386922119329940010455417162790234937581982246524646674531869825639675570755675605015415404960815712373476438576841426573577336016898006128018865936526736816970161541316723687375818117702560199550960955034700084934476666896718340780159259743983374113846107330705543857150028415575964927400131306257279646802329901196977144597548017062119098734914233593507533292078583151188205290196374741784974667021493908676836012686662842757596104720904291634650170921930557352986639040942013892461937881830892371013241583775359165201197164174055963644621554729295763688290144254996596868339649018691100729006656368289960322426418915666184716465490058719828902024458838748438912863539841606054397553166405629586927668687667206768877796649655433477974698312069184026930014684201332679154240311757079440640472880677527402123680296332825585995675814161647174064992508454818666304355541862620887210882928051996875816465182215886346585829305876312014097095019374955051320271660634258847911096675042017243460131075596510351621050881561111923532589032748327383468123134675612815811888285028317998504915647967655711399824357172128384355291730321157103393725588587798458516801984390979576622690036942481925505922601357817190233678977850463878988923084282510593941735289011391623608510923005459337437665236677524881785360639317661927769053547279145225933276127321257166175250109181263360280696936757551830615168492337294385695254212152136871464648039621944484699158550144920370641344618202967473891863413444563573746095970734031651882857690434382127680775804527286044510415007776518630817985424771719932692385590395499951015127111639825917483155971896554834099078617052425923754859763980378643168090291220210776962091059014457433344241072366531963693452556561001822387733137894189238032173355359004395555822880376820662513487598705821612088016591078964796167100077013013849168566030844829046217575553746183462493160167542423743173256875827275151214667815651938324107438242173548207193223035253379359332975885390374024943048419492612688419923870986449721015515436689991131442040014524338093643171093178695217174577360956622413971457759410441810236699953580083413286184342829444910411621253695626701533828363606649754418918724922794276923353776351132618579677072329561133627820179157659987575853066531166211240276009766586872184720317858940044753571733117846783840712031186534346226956488960855954912089940652055799561062713641986655859044973585187104979023586399080065293992995076516745638485242861874838274780604197780201716394832878024991804959544390228830347654202199172922884398330206435910584895081686408675122160100623103626271447437359954577423511395272326575709180914715578892359451133766772479956597650903760017537976060352094879458872275944482482885496234548921241733606077870656313805104888483637309707976362876709967311617836488046824676107078287319537084630522221447467742262490042954470413012928474175454366313863469499841841402893648337798979959713946920374434360550074824007748738470432989063819231432452001439388374828136466510691884929266277050083129392225084464155295764281739198038551980948045451557198678467433149122065001721008899765752158600404610549979827625472015319366059558948642386681930140227627497796117090379679847965842419996430428789218354506613705230725674241845586502719571039707283882414712030169644983137568850499234260308844213479364545675528268860874315322218618289518264172024728698525268521208000370343657345275901114655617309544967450186374857168657772809944687811284979372572626249791171222135501987759691723716208101588212999506199477150366487060670214653146084143336145974310153651504629277342397924933591081262981458037016729267093653491253904331212600037410380306358053278219695294306208240621494407472910860784161412705361956523930751798099993344208033621767503941608118036234418278145848845467715047048035200408978530589331137145980316010204585642299127505200639593005846673360447912847780652642955095175610558258265081852868593794827577822627092549877584625315229588811092932982953657407001281417408340657778820103914648761047029163161819853286084938701193240378723437832665153760877195172608151574709344913952424395455869776178828682433501607446563348989986494293298326345252462653862926217043851057204140159466053777410054823923719518543183298614463988286987532302631991288413340555642068529256459822653439920949852712215587118706698482947753177033728640109608389434586655267905500618238450853338650720924753699144928606905005658360663504230837562329704247658672058300508816764400736630952538726016386198176781237215578202598398941191743518813651971239748216980410454175087278163625396384364763538825166314475354640165853840359193530807635510855022974533544717324688370957663311228001807008603323091060070224120843167822020233105199690555755717076009188181327063994265505334857319534662419919633515773339523855918138588684468982739199269569935265153711345954863188241803888357239518555727908391642586271478850264091959653791461308784309346462236999937244598805245842441257273067052202079956302194806516471705240246418988655781920555299427981408183099950913725013419901701135141268507731157055553776055064030586226637364674018438611698805091395127930597019993180137303112143208390536361538215081842683791865797358710740737379888043407423480334616919646957758999135029145411435873037466060669158653365425592915929175163710179350021936321503484451449259703845057509532980705983972671092268449771533247404182250091609662178957895172970096251657427055978881093267107776248871856432098258599163717285797394979104506732299868967216123766226861587538638727320527235638299706355415541359210392466297022121805764432500989657564138980492336978502370669331611604797575040449788944316022530150271266687881230584207452252910501135297582818568461816867927800246769316960323487827995525415820636736146832857682067090114390365184713863609849074335199892458408650469016844119028415360543460943165495482446168209529664844693761177983954069915175845295201079207094036632399166451037996611189548873050186194722047385051068727107829701817120180856570810929095578345700257945020440461598957220587960480529710557212168389222613137696223982026505990253880550626912159757747345291756939708016846886780913611047070144501935203606966903382394616939851487248210290065653123817793610155762003144957021787010781218236663749550035763724573127027468648286388689312252610789375983485176352477643546789746151161644338176434749324630303856005714698593572092882196365463564575970328893088298145253858271221329083873732684528367174020740044589215934426703472199540864685479524898217222781396359232557390992533094433264460597234283904496177288023497404353857080656176871750659128394326088909522475522183502791793364064614579014891727178160759939361610768634261699039577297300856620824403281122747372216830376151015324466281960078988240890654884268779586800532632510061285796689682789571398185558463928491781903631544233669678846424069533588425743946529318427803295960876774877541217281888651776292239467966527755381633473640508722518002823301555507620829989500645759383880834485221948681105836386215072801732514429115177479828863944594848028255703882234043766717468403681885326461690988883559760889032910438218578657271532846617576819445487295272825899353190669459196038274239293491185130045036448827785947126434718055313521955963645224678461947862902806111465633865935010238250095320284008880180358143407558162132238699842590663652349189544181424137115068286029561779202177862888011076274210035610630085318855614269994018977773538797279768474433436169912612587500540619894186844506014373542963194432940435739871024448399290900106513160657015706219814977010451401939014729494995866565522124431171596639589635683449185056021537406052409963492571705411082652804444469213166307005731439196169553227598350777618204031392058507706460798013602943745780058172460100900502112448772161447870685726348359345798799072920635576852959803922854752304916509091454201309287137454096519730142773829604298459300379257014319734206675896505011289234628846744701997390562176526990734469791130487622214081165976589007025651427072835015737782890715506801773047268944759584252244678905251304944616484569508186222155094592214092049076429620047706933689353220177904165428412297390634640409771700569289142272489444068696373748646488584901077502811361175144440084777628960754060201231626288792823731445615470196681593799247409733244838099561209141798457582419339857266258034903561967709701108170055448858778816891421756146118578777137760911110344392253627016016456608040065322326004087208370991371505733979376481352757062953590219442141832501668367320974005659573074619866539532704822457307984387339458889047154355685414354354568225057459242370434632650172242989050052861097274104272926956394029572872093449078832627724320256560824323663134744990824819488072765277787881127391255194396053606857772497425267214845951450045276531919530287307313446757118698624694328644072977268165873152874851262619704073109918474553501199390042099048654792476596097651007882878584915042068043524635615761729722082280188533545995092833625243443548226101610291833102641812416400063634680658178885756695974842839550622400637592440656127675643420600627066322870421875385659743833419609070637304312777444304271432910501118770411871055850906820548121771516793584157800889212472104431910593477709600303188644857745397721104838986391767380240942277424529988980900512614814038867182129696982076467779629713638921672754455681737884466931133971840050306446753037185417855033372879931623485520939392823511721369879218105515695446544353576090646922443751261201543340388066284979315119581275812226365964127150377609063327977592456479491956377345258831999885928664509271777895934202275631274832089391096172935261659656008393918057162154372417861086923621245908700402835463361018284878715686159349313065876291891832455272498555282929574565120769250659044378566240675439378635486144828901095896563417622919089891688948600701093961649809460720786110445562268740437115725559783203749378037538603289946280349441196348144767316520991400119500732686281148480432602595408528053313059031967105955033041267257698823639403989243919283798248043354984336732947941554999150124897671185356785529148310080719408002009720083620230159124781778694735788904103272473272429963540269368649636930005571555655893420794589948961642993140921839606267364063661434272031198832056245341527551304882611933129444569346309002642578818370786990613238257627399765894515470785210154161960441210832770816060540404180564320827534344895633865809011309763365870755471751535717663340815231336602919582038781812026058317215272011468655053938716737517642962548635057618226757927020753688742993677987677708439224304892533822706634049359348990736872146358937559288054387941899157407444537897462425001661265750595873701952485707643641370200443772706416064779978426051209280469882898623067033149652854075609919641648978484193983797509110028848614420002525828878906840161423777642823067569839022364328492689769795732136660421688833790833085567516094937012501050629084933508430263386350390375898005222066576102076369175196852515501073515005597564355608319763428644994169573699831729021678986514896542962935171633366171460426334511693361136046782034415191124433875966832699532377377800865558891590753765997793326779630367989754069032184165521947202917965995910003387113361584405688551713784002691341174182034787221707572737202496405970709892756734050411070371827618871766691380185271141896640260138630088914670351040764111854390372437681741846339134914063752360506948359735657876589798030059305348002467460510497409254970735040232272238838473539851826316477073581565943830823421276388643917135446891911968324191715871254312681335025293674254964417566459017058751783938439900905154895122609102161482768046166329021174085828200451214116621415651697336419377603542639946320361082642998957237508804306258312394255327229998870958270915145221189551893185186969995398880202973715380610480520850519262968561855860789630209375023018705740982214980912003528982667446968047811722029849433436516730805191083456266755484077372844392096672607779933067972824965991693886859456755124420661202319463702408247672400508829528749950963020549498586447220736918414950890903402160113791037159793454890942495770196546545387046562055470420359668504384737302768441095158091759461946904644131878008175804522020104058555395647971743052304931979875004499017542030516087503973829156489381109529659747351288339745408277115092274555921102716902235637156807679444363506722774163701804312016534345555164813993190790372520614981384171400761257219173276097703209108567380022883301183753420753053567180882202575573161911252174546121277151812594400846738164704546066133268198170244750608393569507400942833774983146657737513970927952007409669304335534211104249942375925788642824497123791946632550907528976397763661597708913673542854514507581860637027380259248180986539646711379276008907656386532202605336836990662175048417630760868345977048461080380130133711337026022383502592175313369071969245717476039848108338384850915250310926564264556869716221988213896802874132450739635887707348021161897810781735185821314895491944470650990119504177427465211291269373463211811110321641745366384748930410445358977029380483938310608600406448192638978751723623376150615724483555501433769865570356156061835946525848487402079093573467063696789921877627647697123060161917702871370484143498234803153098537646017819273119930188085396813930096841474094807027606904456153988474578970533983025584873160811127719804333968614152957429462818253841480751938176998717846420452850005763372121212017486947762543278858373375267179281053313260886952589097444372932275893288258630084101109052093024081596444105225906038641166832435172974398821978736168586663277854116406039765249088801603462680792045008197241538929944996663069826548943530100354954000430843088952980768920259467472118789299895198446361688652049119776126544585507275061976271638959500581260372513361063965905910078061699687913136170955449018318275149146036196630955681174442937917283681057434151867311235088395037683811288414466899083714006318395091456728437695581583935604635588311268321598917164083860569930189159725388835182729511964952824449651972007730716405845005422541240675210480399654142911474358061564026012548601975925968367266519795872842463434663252973216480983682765938455320985256412137199812183653975107605618174237417043848588162470284427479741221796690784689978399560170870835536408379667173079008449478073904969929576255102944425717504455214068005107651075181931996291533458452370708484465194010462437653502140790768459877809703432682899241676961504200505082274788033595580349752557578558534946710047003371410010285318866573123989161951553129601523619934503602246360813261123912691580016969729914006110963971990003166594629548386218530381515491655891319221593496472730489158231547643461314602321831687374316398205462033470002911477467567462929711590098449686638562004575785478783289032295199765570731004707947455064956130687912387433672353263558279343370160442338627010780332670919959332493803123065871792064724150874977593204649837189812829399726806596326139115633669259195024996704305755888835363560106905765180794854659576366545453151714195094564608811038739709071451176262326602344008832736993063381916018291748089655524065549285166542455461326158451965512920098140409429722439138130376795824561635296638192737180897093502728760085053524482114958195335522335668982158805455667087306256059394435541008199274809148161411600435098031173464267215897447122955871592239521346712100759157464455581070415029085468386761060207299134105970756393102021232395269998326233520857558499381742720557574951124021367528206448330875939314005687579960624440477144444645206698045118756696399486871465741915905396097915601490173540108519279593880280167650856345964382678003562893611819935019907281972594074363432355486604344614315209896945096795678833681797831776276012794979520550994391412732906488105964660717016304999231667883955693170493273471056938128977706104169339539120960529183426309847748319246330463342395178804378286077776930625992195811798191415253497417835502385851267835784870558067736435262844450446215009896719144437924985035239972145281692002641056647278463720845676418591585991045816802293704092537429702072518051605536292855611360962198248387382945279261204206083275091726601961296121104872190223126946055009565788202335983785650501896134672006485665029626540173773089393860288713800193185334660536165752139671517838350419304293274382121489390584626576871828009429597065718877671764460388648610497040022621118432019274712115054667367473194987919406873037649581997897601068333142314066662447757453025015238865030765277525194617571826969254515498547503157319455593570905313370622156372712014885395813845624875325740857508052563791326660886533461845039910755544252041888115699476083322496231423546342072697497171913637696773657913621679227020620729881663168411805615566729828223880960261503010288357015684748405776666687629738624723279423887002410209241588837891661701338286461328685754159373879943975626578429128175172765581732828136575320393601904851189691268392951816676470624091634150858608555156679037076370622399516440737953939115775233000892335084227859635374099630124555145229938635673605312969764398248317201982781909780363484112201530324882628171970016201712394431212025914747814352064832258437609403644561052927154628153068883896652971993967761118569577844732158677733732537823442829961226709252808344946573171816719829671186407491741290615686050647736061109209508343441757937290013906303411701600367864091845913333495147704634185400428947777050027184245269154990774663372571853167045765901494452673723188556704685496903791448249713847161115547212047112532986568376794640285545677269162431786225123763073211736036284068131320434174500649843527369284596432481676380780402704961755073136524488615424409683639883646949108057764585877487025591137250988864361582391061689451830105115271703775811355762162365366072123719494259937005535367602927596057960028126553529584945742731653240357889789906646780970966606271882530730531081750040376382244917024574267656107222323449443137618439161297951782312468625879236747211871873562512776416960513848852708184342825999180911088293860738326614657669245282514461321200726471641335236014753589638571083462676232299343270672108005069086085619339974349389583219027221172356285272657538315725775618329922504041287590373149111727313185131947737604054227399815805183164724838044521276328213498801578627893001782285782476411033472340057288883239148561069413967362710636991355994657201223972053028994373750066810902810228593336410220328743596173327461547399954825391419220465130023372751774665016000990064439977122715273292292547639337292252137156263528654156216318303609776092579978892699030407813280391463659108240251289751912051587896751197814301504616466634023731694290070988838396341980152425762111860863944898674396447689516184450431682085753711621736769134950121333467122093046169747314412649587920342645819592385800763083778616019782810696671254103067173789609486639197302043525860588708072912276306886846422389337242366517671189999145801367733889650388892778219925799236057931137124658958835461588956847092879529545504573049487826703463871658908688838703747222048571770011912462160206885888144525397095030529897845427275836983574183688824955952319144830784655884406327275977680480604022768313614730962108770028625583234408256883326746835609784742754619204682565102091927142785427176804668379488849347193084194909624023136824617717930058554576090974028006210424571056642005347438543276226814773417320388073016824766216461819991729430762880847246457621272200002413500946060345041149374756051467526570285842728740980707409239354160258135983584637162751517179722064119308132402289977136976142408660076340027928866051327435864821482298226199977486336252504527418682709087418975016483165623474286856141045114166859253185178581246383070023868248190285486947779228191230168699566480814840181184987315881874505723367757993466147775531686497393800682905938872571896685002631149415878092982424235942611861907602902208550147589571741350216962790475228359153561733867790484904853122593111504329066639587140825499825611782454526084288060356061553585336150240876668931917352520613608725083466589651753712787838861546004774937261922941732518730521130340674119697956455827921846578777392798286926617204428514045912869540546241597719522386204723440350999303796390275958004243732646077637731996938169244979798871958634809914715021026071345413753419345212909746356837360085043599018098190488650936078806348850901062814438258956583540939645908373827383189915433744598619448628970483295306417058539835340806468517305954654588614937846410967339004735702188933660794434646287702701460150411916043793602668450636431915657757782618371348849225829676350027346130222079893943286058035699844549863254425105394197379652046008839109111653707841150620653514863083699674227017915419443645005733498017305137134573998595668453188123677944592727891688892942254494623055982656015541677257257663742456873235212439814506238417168144161069262469314996792963205998339965993153268261229389162670835596588855398292260948815249335965096697492408001207291383810993395625708811192848661334637174712711026451694177984828468276111558614765697073951947686576595238264986280573105035740676867724505939286054854226008996391734769767198228805396858929199893726932761250095594754831130283658689511691213513878352847006308610249260515361340456649979022240575595526801912084775681210875113854544783462288688010619456314420884922465027336246464425155496061677250124182902266564267989334580617434200009297900905789675286029099229936435057959624763139515073376667947191130525592461492884471904884137065785254648109094649350350925389277575358917745283753974897865751666070614073068581585147125531159462619358834265579744082131078396807694289291989587880385359869048717859084167142111023735527698974768113734412917357421091842228490331603622964853660840514279100435785269320475132144383046286458138294069490892843637585058133954053178668994981601303822647914262458174050867781715462623874592603126242872102992675357417516792432760110185773693482276722287700866897990008642559566913830823642031969119220635099590150296567598582436302949405453647154885481444581931599083076311616102071383129848169866991933178618332280581500700031857514911358777253174496115912135478348675547047257693059628359293992828412583636583350330056389554349037675444367004016545818128242378356516135481055824795985152825744206159657402778486158191888129683035544825156085112194496688377776965660490336063067360382288701132434214310251071476426952804460856418556021666774538583613546599208354076365140301504892365574019400361003793784002939262193895846015292932852508173757196157045816559274917247037396844406213532271904414470489284274520646980777802250528246123390959539200116792630957489205241671184308145097682247948333381541845922934005971283247060280816201378981578192086660769471526085778919919782823533375353412316821301884212099344462144435462009322797736594106657882489314916239791698998896664629965504068587777710219411956859566152411378404963833899366121498215568586187694902467543337374278735166469543941701832085831399712300050637528378001365931241335618730309017340446152788339310890137751320515604916252566512118325016696346298076540731509873111178312999731544736817679361713844466216111164140353407430202802387461803362368644124693193387906509433807231644424054101639218867445915348387373894797221334581879699943965030466967708937926411610908659670484712609721900166253429220338710015380886610237956219775667124496550583552665544150319714942565067057043689469860891349772787651369342138727378759537380706310332261956148255931405598049963775854461427229314509983484811733051223711594462288395731080464250490324117045659424579740341152138740799934228678415134252596565610494886545682496610505825226128937539103434405297875551027628678514719398822094765023349575425288571958685068409547364522389280883268321327824973907313171678526725242735202388314736831560884740819009239204447371970143522616437836596321571680791298582272388782086852355066705926881753023370188966152225366965333751043038462067883111572767387037412267615466969261509643309012549220477069513899763146936352968722451487612544550325643315001639369382186574013958668700328337321759515626874192699260409372509410418370924354246213376507908993285608732640104235159941894308745488859587887606933951495701992159211235621359969021502313101685191715659892118117496292320007318089706030639359779423172281058183830130767673722383203707698266938475581249018695597526448079154004252276500282516262288149096570845372167734169930106605905138210047964625611354042480611076437315961684596234452849567144385384573568299494932076091886140409449818560940901435515603367250654487144775437212937292226851549174131951968866595615672382967734468042289966697986785333824158914667327369678235152757362289326483228987946836950963646737100327803488799880765132986135744191265956673709966334656704129080588704620331141547697376433244560594931771021122447656975137528644879264505509811162141392747798558569700247959927667005669622141495370622432323040162789374845711774730093615561809340611100234704815662848260076137227952059374485131095031085366801325872246735864106173786640995436866027166592213820841391242643843227221124341622967388200095109964444238839513779278126812553250656606419622274193571743925385380154976341155355444628525030646131818688806148824806430027652453307464892891658865118201974941945174448941962783381630893308604991596216648854272209840700318066249997313607394790000958545379707736736465665560901178166443229502969689763632224802957489356700720541830403248691803988583368323014026528242872811542649857263555738674885350656639532276554851643854868529129395617388747634741792106518524225573475682063861374968654479366897366038276818117104095959992945848888404484812467278503882527027700815649138561833277329464223634585413988049617371802148267825539442460647812347811245489316230804703785899482629075831922246512479123635150100462801916354260385664082312209764276153904136686863860113885307849981177666470368546697990936213258468589339662625857435436202871337801179969898551927254823313450642839761588900382937603682767261964577681829303914483190635990964156916792401916952261435952244597586966583187635712718487155836612033872166159278911020875458469570528401149682925954217352501600348657252081309037270285256328786705926149827833623988813239307411721238077061895043126284604553373812471087626316015453013966534299154221950106265228186929716213853867468232878604797435226873917200674810286687144864325615631156200494871280307309583214632879274737430430992050246084746014592629825066576545007010342323426345698428706491209597634357668023893908376804327931248023989922938019121848167042485516591842985707730608510026212914897122303106577463237512745221401551426461813041073115765507201063416730062975483921240188015002739354874363167939682713081790798717305387654670788067513867279020050597660902851652158466505195164567561115877209318220050652170398929526351676537722278933467484072438669387223487058638358282465109195265260209261262969495242359281397862543413757805268208461058732075867888290569925997898718776584572055875704679026979760517894626900657688796267281935940250898928734130379868606841980224311593927054365954970188017393171170340579384910090459875447474253698952305122093287785650240539113448443587329790693757138010063609115334504423209004297159825987744994970008334639228118008196981855549284891136793091458709394292795813639369699898320374139548325100452010809584162650410706814646675311093370860619436714728804247627754140510707011520762161157478365694835783713657244663531598219257159323036735883526808473013808251080885902388910809065928975806055355394603706857665285170805508123999151732015135223285767532090931789709872505505372073272376871437937592361731761705303561373528073013615912500311953726086215678203064748497412412505822893307319609865933976749508604872151378008827410905093324693559473316262358582643402788464644331810598090978651359271544847104600159769597458867558496117771391575473949814099922993626524376342331382183562320942476466419071002284796073344201750068436328615058866085687349666408200614782133051743940122772527439831799411217907453012714591914913956519030953374410516147578520024658947249335758906645430895146878392223531669462855105816497679525916418574786144407997626544740540475675902718984068340465593705152582343579096713812820919868385120839703893225104077369692945712085212782876804019067060125504287107377655744023548518630074321368176425855200773572835629985460941405692336304869787891693270679352195826287321012127674761591896763151750925832622396153862163067597122515141781722975914958045929426980307892458185584699288512311505889704276876197353305574489710032109083858523639123978114836703551412297007072010506222846399438995481012572659731856941225498285569066824772368688214561463155556348850402094371128660899859896843412057487828036096971725226272943553166104622107165047682014217900846686542426752516453295036047594464947870504910323842203892636139085827353656815990853969641374731000100544136385799489017563067706543991187150288625949805026184136962117908213289120738022466970304142081317671922460831887814416627647074832284638212173499658405046998239861282462311583358868021559689795153161175828118280970177480092354450885252958383604304269585825209307673366075548685425142892340856876961437385630414230399605465629323412519206615395484902898453659753414311988428175686749582124420514650339141255232995392955649936654126269493611842669674380682345072150274767672399894345249639276852315165234288357248162192831086439759036859379074164433610039275886845595061024213998173972556914509184666001664745296291801479558897444866116275322113209416410305935297485034257992912155999986116012329482705166582618921287920881198192158258602731357671839438466394159556808350379423731665912373758168673201792703900379316086129823491545681056340433534177926127846214275412557737145652813726008550567220540402167537441519881235913272698471069873213911129857646879877477204389407626852279028157310430884344784580885254457867375640140519356021964372020430372435417778047243959139365727255063197127109574116679068739906113191016859399738496251458650758737808277716360993584579538527180710741574984031662792314549794056338954263163657829939540860365317233935605093974128792292470246563465306700769125560711131148520463377337351924971586388799712520211888014633811811208383187966599053305500970471128578398288907161750226838963586065440642075023523769493822076481471352386295610837396344732288165950762566942150856583768146515842495193925035293277824632229671675962018211745603217158797967604312141048128845614321162180507898007072726134657437091289302968043239658845455426828453798589364022626947997734058768907829070390189559015515954978817739336480930538215920220541907462123229739604787065064795925332306949195088546036968815657733187484237669278751417316038698096435012783025013994850686407132067809047288701370161692146867578724683365120155413350541463254391017444901544110564385750981071223655900177528873773268795026903410218139093433847252262277369069096521740051015068216515022895067768452341114766082694282754219455917650922870900802119499141019693294592677120198074969364446406903356332207803415719845609732365533928000039571749551062672045878297770471400907086287885294503882669624975733237622473309962788799565426632406444725103172559149379725212743192003514598436728247403998683972599372803004025734828639519479623837813929332273830230350897399513917228021744809528897907822111895782437150350288423279084657034052791705098172660418733631704717722264667536254371804350157990739175817515748038069292019790873038104033700879194225656261381525323368310630090556713835209636050877906413574667907517348512945310558894274765727220031513426045176426250075838074857298512690599717622126638358065947630510530929611602588715377452431747480054360408062876501985402721971511589817503466339155801529191794212518340916218206602091321685908767356808526732719274792612580219237289329499946077371762788935078182038312021046035700578217609536508641837248873075400353313922561371920427842769911328936859257883983938762939514094053336230294383141707674207073222572510336534554186227696548870067080025699068611910416539938361642284408252784020907602554687438181016642861908690613981176588439875155194864886966836673468760050037937562076238201335486956250406383255526022112282594745090595922277194024490158698173818422213016510203443789580769018449025473820454074381513682884968124528854230395116247908854398102128184145852417636736375221816820452044362376174963789583431517535433423414579086549544613147791885502984470555015677922976399668840486614716867830814652768674078790303330302118516787846114389154807697891664232369028173035217723357663377907312501234959092531644592970803373884229223423635602228158268035894300229898012742717347054824327053454874492496814285375605640009345033784149159510253118699985503130557521756924139887767436989894742921510211341375559429331205254499568180746108871686084004375543815752464259215257313472209071925785989859282388168722509692690931982360951795460512074188468552079353643702415592666613518839152682521314005783614928384308420882872763736049057725277979333875579205556314820692345464825195457311171984236899301009018860164468000402266202658634228005687069196025908226586016499029793212611155093024248399810123009190823909283715957191162063064973686257592112160085021517249706985871424013814838736797889789382271990671401088882358701852186659771503963422656599916361258349756400752568839967420430293858560537945130953740159645733224479900961823511889740718822098871500702338681148327862034751295177236943637153405576885953309491300098263553563991750972871177336255781213142549759054087484898077044469009881834539638981137427199863822158258409724120191492105949423143738046923022740374830618995859046705457811193397215582712108577048261584274783913929014705419834937797289394472730895950618413806802743015407576534383579299913326873587833006722013254001691567356531150952078680532375895488741778353283096257432196973644845430870919796933493672553945057390927804511935883351343025954888228712517207126175880995503863276850199574900717061884934334125354248412764568068263760601268586923047144820255698296112786694094691290000892825837553623946938661944652773767569322118646911153989173508973759804418126450473478651158556529034352717506457437119170989745851696409096577411315922423841775849655630745476007183676631573804391055923658559497590360128586163088871457462443552469710494654104376877004726769561919891155896310098975128338635667289616234371183483468527033928650336086623391054949446721654047312153593949085372662552964998374736987671439959420572234194947961572878511654948999934025426919960895510123559723801532629216408433788682807890576675767724635273302650532455522074434545406548829369345282951714096804302930852033304374011925502784346863333517672722317448141540443268391350540652141094356838511651703012952274221701154123239915749478975439997792917172065990019477700981612698965314441574846818025902996769114252678422773368039221370820636666130526989107684083491462757169933018574678016211987730768170915396275409824544699654038806981908325499074875426340755672831407477118419418731293201755265615456092095830612513290118307079795452883236632621098043381574347007215663265425003028949219713095812884262583218205576160461032368839686497320440175239690951856690309140500948591883646289755168617931591791457219927424555290034634502235933106282707925150390898395588037826433751530336262698646267859786947470954429289493181237218476979529272710346480503960031775775680463914246201267877685991373548390550820573922874966984538647531103860689002527913787156029615425258592595710600256175580684003166152476806217702574513500607543346860084920006248150631447523178036985284883555779178375162105813625458026560444965903817981281789382387879462904831133909719555708151021438101469731447473187527621352788109164726406072078397228000472444962443807579739575070681568036250733304136263892306643807336154848827209927356335528464633945235724810013388668878108111254424600622288786322483115735216264382761989671609315299420127842417093388939816532067411235250586937501552540720685905766035082600755894532486543711426465454306665963521079020483233814553219441720900523052691320408337375065687428160611248882576949202165401747780851017723834225194147565703831823111502868614582006205986595388182336224495089180257421027900380104353246053705040865459231459728375624716446843400635797155734979367770914482616672031001943517154387048931110171986379858264091901368567132862978937376986966958133777212070312944097236486871943301568902400785560247115524246370202552531978657729598934947446016690392248113395946540644061290443198572190983240435027005578365252439126462210348829105018593707671393644926203820305596799691109411157324770637166013387095095658928494537097414357391194290177159384332713104528042661135157768008209846046294186824031002275692126066486446360430498883548439165886566512967898178990905261671038459968129802578250008605985128173720173013106830964135072049142106359862459912466570546813189518640523761748644515116910464165256182721805045879737289209088532504805919984882479258307841127225375563244800716291743349330047824587037468176767309284884853554254797144904490450356939216157074768669313467655167449059198714883598946564471732652282958832245647546656057394391631212642287861492823416760029181600256291231265789062690727234158765372792366109100243921463022192863184165018572936819777617294852543998500451407717075846281249840485992791176832469856115590651118459243523566263474246527476269886934780370480942176634745470342045791427800454924494125500287903393139666151535511410462575054083879143300501767623715213628209969630726029406639589002846359274918161896745685817488360193249776296130906929621928837658287895796092098707974625861545302790202198339690403175792537071786551909915218135681793659146864994545518397210518786280810041397301639901195679108137906998359287718274503707628780592832579310290388336310576733211004558785855567563801071379146274843225603577117450039063536144605479281861935099559143724506452619791995102024048676077851169276401592146641727369398967106100140218683115823124368250004658644099351641483531417513618403100077081987882983817546502398176467167867234504712535784983243992488867347338912447139072698299984037629851464387921672199551930476600257828471541977882193546927730681266573963197088051719311880637845232124333693699975260724712553117707735151062603639639332803847571628374856832033718845893960580295852711258133701151339394950011942836303403470588532060088043863539510117617681326455135087990680673048483918000774133641906277962781152299393290980751045020579725196823517639847069190183593167828570596111251126890552205672134447330735001847335662112900914388494199739609440243864660274714409967942759353662376640822224316299406686903785927972158901932941757995293229467787814859781268550781776698396572224392552346135748710890069413993124864158325431294186105820175962105354392175855421994784857272851997920565437103971522676132934783269105191545147811416493674567959161266763256279081579719978309569959570195184348373528211485981414830800063392815498458804347355157681990631585239240327843392168122512342625747405815055272228917294013714272212709481117611433464515467093818941517567823221754491561755772989394393583945426071332375068514390031892810829802267638064787747121792545116105250011112424122512919628045828827981704634367827412114359475950426936441530131239320316896025235772072575763990039622941365094593392124949558944488719088388585209697223902249019086860579027941732962799073681120010934833781571740634349475435664099616822693189666421148297857329693302910748456667672839478000757306301788232168353048913183996710388559941462109065042702309050288827406548898974994938413025841751258747569322152641554729628702230298023612088470085820597091615610746612183628704166904895754534704888894947871523708699545763528963372510124146667574119191179346057979516725124238913793885238190254389877381307311696510676169839430053557571156665717874470210165230284681326056595207455502897823342248035695275281559281135925228572262662069086836152068655545254609742800011141856263423758479705405218400793970106781240087443482395088039871074989998478312590616418069686969042801937949541450034549976899850664698928501566449281036069154128063699678717687175251119799103006753163185433042431880276087086079712861540122401106377897473350860348662111182206758339438800146847620624043397945530106413632694750319274658899278668080040024662057864084108709969636943021098058631682725860976994974674990279218770623499677391394101661621141745901532008710860315055395709109104827719009544961804438943159840195880323320674241738132898560439677896036245239526293577734678476497640496176737457620250014474080686220644741291365726611473493475934126703932086348072953590537090885938808407779967129213970955584038542760062621519823632522815254597471270556511344073067030809467516157013657446269268130967790798185174485301721068013693396622498930785684455944244066591708740175350048793391212831184176305914230724902482101432160813756152996898404582197491104483009926953408817243365103636351355251160209537642434269523354906992200650724943590126668233490753219575767256961403228492623348351205379272782340607766427334576483112806127289908321065101556570966313972143735280848397703021196995292237190257330975069502753930802603660000861320527208500761346712972751059311875129954442985951654637887854140267411323661070103841224921551877988714298669596527609043036800866836933387596529752703386375573986123772453105865889990073278767122456214253020934113192779790610752503825263137623587728980259627283346048710191175521485825899533831656755557858627095089445296605347025372026913432969048844987877693282714446219489213622006278016595078934490064241414694418703881303376581216213171433129825481013946050090387151607425993224899199424945239800077143545911795733528722624036634632995670103710488682799292436875452324672801487328724366276824222779024012523622084492157671851224498343724963283916207114028501122012293769395186824556228009161981591973510058740033635411145797968409768234343812694616105529657150213703188692691868959708853992029719160477629505176753943768475368601327139074630620881027993556008380645711947034734645811021580383797969165157302728898770281070033309192325418534758967282776628440695035276754387029546897702664769338546837513618421434533800734535331939504791364865731351279641229329702351614190280244641035400035885063735074048560590547239087593624145169351556289723488421562485048002529429931404978420713825808880403628739665856269015842594862339146352624874802365781714993992208053843682768653904634170548833669292727763812240101766671704828861484938682804052229305758296662920328729975443783701789762253079072112226900439131120133151047412174658691602366038063817501559253256183279522081788478750681993223067183479507733518287601409572955712277056150172461692304585364241729587498202131891600580788294398406637270376690085666591770772030773526218366500983594526819690233340685622343199543518977986974608223611477866396591434082641214380268884809307139156351315499406395306111109528026282378883428916196379908757294050610807381693242485094911140096917522060559980363286895283992957918512908004720703613832205291187176956245227732973084907428016677463322173452885602607704068559710414825021443601155178003393415011218347934734537106982574075658467325479060634902344063359306465353377288919493301271381065519604443345616879383200200849874745572581330032067223262498181001305730710483927296643085531974605484885324662267396078986243949336188388166336130840229290392018910854767356728752593857970902603234610867644225885268388318725996998791018193580419103015939566805580550269898311310771087553226940112864985840053848466680818825223359055798684271140129149594305601296413549230277527284991617501546520643380704377932419200603864491949714753526968382104549676712269915983650442442713145947683791801157246557381510268186655724084705508320899138242242737093831470766001646562132939872563738173318625787634524155671026524199854404989008126682874124880059429629911425240391108665034536627557080003755102417432993237014508231600471263060886727386242950408847098464260926276565597051482041305488609143021449664832355911950653800860393198478616494382850310779139136039659625760615216310496844006138473642269025000839943806255433387032007319172099229910775035724837208205101830830544513491861214271778633861794652950005373608089609142398885559508536206216382457559463499140076885372338912056748074018587959860032003567432825441797015440215009122473708826592613853409299396943875093511212091031539045205528597251093012488645014028428983469577723085563214508363255225556818506151442556108383569566995580973228087072403956503147431441668241859081479015954334570406745000682301797211552546622352521386658601956543428127116671942690405254087650788674288656275188256791668285566555144033915283167576740064553824414481794517496011453389767139948028330293187163503923906317111018300887578291560420306154429510347915011256710661339703638123063347365035722988580511915786023355646917831287916540935806532575820107801787167630143648064605596012274300123364546605031159387972295297931025161178794030321993983002558244376546000832121715657293235248914707535982187829524134902728437034672548853788269214080927926699075775300771770295280339661498787262231960487668028696219862265032914448496927966225328745000573396278593922550425899924518019067179304191133833685877795153010307023201655178540283068574131979775397144053793606056654035896601810221055734618543507739502297658415733323216888255282105984442984495669533912887739041471268413609101267880799179754470801031507326459323005106326487335100149239578817819872269846757101356567180609338245384432664400660992103575111785382435749409518428345969863879550588133691488148624910709752322478110574135887770812386887899583220513236804794692695813865636923156075946016186878757208088907574363701442979778283661889149705136393143567855221694356113108958946699032926876327843519912368855313273706719987517656759466364266261994355689133161538740626544610917097352480517993238275458139722823386306847710009410067929828077592720406189382587998405903702640087986267158302144267813289337582404090227644933524391196660354100865017807202157885164387365751697799191130448791604127587512588348971651629892787825676553473098732853808066866510459978691203953945788113895714525835827232077714673966093395122362618613130226290845406681023937761105604001420817590260572447679588976801238083998791352802678672312249767989523144717817726177394381721569060406574761484536042837185906955968647516201502573310895801594165233806503167546733141444709396319393848038295628554440010697682820265422578396520433663258738797503004873365115543958481764487563302928738312258914813125082038971079589115801771912854466007576145126822280567268298318719897863708183222228396406048865806947864866850858478777684198258857999755534644296809429544583771500278141977679068762067595032763967625496015899896592194716431335346554866886433589853789324288447241492575970308636743972870720860342382105563326559422107402794386399129096682358992354394314854433664149185559873726969448332529229351207601245411674941495378064690108417986012452156597705381651393736707507932623302923039501149471368387426610061325012728209454031827945478400064803126759629255145765993503276123684419453511697285249055791200889265595479967128490008199533297177494469536924009382384632711162702617275980825996696182392460937949241617679676078198100305014045427466451762361257216796447201061708821492542756916504642005285078249275821985177207464189389107387894671698151444247350910640670725051524663637938984165679428691454579734454410863553247695595622675806190274455055028829815154930860844015399242179542425933202906840829154585537409564908214317243875760618679010265421882351512123823607818537643614193884847039752775401168688704632668932894224267012548045917478963656153675460991560847155187194337220589965346841941513105112680925594255382856734709162948202442306708823090147106132614987918033947260891488924659565593385962501793117748646351470398475403063744495915087819197366905284167371653518836441865550847527865611104123313823628781563982103936872844914957854437898484183070630262709738891135601989686865478553303869102423889877238708367516278931334098755542672959561439266841638221405345914778744007922717336120659851272335078751962376398052724385322671601236896638075552791930729703871590849470101936490833444270853732525826183722294555651560915855522809738131954711790727667030683431745145532008775953374663586542229915304629510428690046771720801915308479885938536511872117010890448532211361115620471572923228442278150519947673243694804845706470470029303029451907253186867545230299275595848457110825173179376264448264101121422399163903445620561849600246831028692576554980783875369150384089158537429954657840554115315532376795750280453656998230546351845494553132403826959192997766898067950678235878502136295964125608267573509941734863794317069871564712182453625438116479605815468364303824928721416664426085710935441964831887112077489977498998930142379213137517674239895196847078694091657343239045646026231082132367223058228094676035458269169742076474873387245989470844909139847739274206885045102034491666190425472406174461203231275425077027012863432736090378946895511507181604466538564443457212959680038156337401657553636284720247133850323396270709508650878870912678566570588842718922299971019030678941439393883114978045721113770017370659134747002170119002264164451667092936690260984363877114099480196639691436447797217355380896555622861298047568984031654232697435001315524399390428771326293213241044566314256696482929451881463027281376775023678713344745898304753555973285346109916027504255246258258865025690539162997103564876765741643184472702630614770152844017886945838427216535644045986761039358465127142626421355653089096799509365084726689618475781245053871685139431729738375916805867341395477635565022208607673312009743105838049472338065752850303244299806073423220670778346464236007805972708251451317528295610337625682199535232810627708456848171314147383474781554301919016623468405697867913582368451371914923556440318753788938216953675290023423031850101977563306869742445152311721868809774243162620087382194986677897511538565648019733598615127736086152470600817587012086650369171378362192942042386955139605008586709659229780380288893892040801174284732144510766408986866577651551946733658645256120457398838467606719106353803211187796994421049250499121127312479807570744851069524781946184614244623102401691647245675353548539053594210783174015099869017277062505279741195625975103663957606096710718425217227364276172211024392175924246001094113436772801471143783759169266499861544903250144350813885179714712505218550919946832423468090405455663710680978312303920951418995503879214071755801892625117886295618934311964245712921888046092256247016846479512910248857964920092290760387030398833239998533557575018485817208382467205137994454852378810582815019631559301732884169417520898937111562394348355232831482220964785458534458001661377154845714326981359445943254205122598403352624289669841015908650588925302763011042450950096864423317750913384247037221217304422982565973591312740992734858818481396800524668855868305134474063746140556532007763648532590937263681470893175521747474101083863902158459642694748970919226699380091716517928668549683169651188336454153024332789534691111120447414458764125799948035062208132646937092950606778737591292347659985685114969830594512181527428748023349777001993697875636929374920950187194622064157849136578878522621763146477798610265781141793279320524816266613788293905910992889540584778322932030057124387018846394186135459325963158502879540257998668004107431149829142912056725739624262505042287033956308074591322078680782927976547607241394610367536063593714252384699037287853873456565106012686821055753320358461589701846329450473337936143390346877008458799341927090699366540094704636684141036191766357271486180348631819896653622499225425941071231612582885736538059646979165229185921660055829907569443766702601995979346956504381917738536819605068182769843594146592851189755454496931900737654143590375382492931881513362174814299194005509742568608682699335266187742415926968977608475067616654310319806988674479491876000636093083130193169032993258046283702946480199188878606347191500202274313392711243434966536658026456839987763023780342785780877868526052387502877905827445092520038376886996447589917040693493199302808539787021635891300116555622419150059653251773568503926853123449921800920311644393835406746198532453635837399103833003730591042891380229031255734458812159405574528973875127650267792837470191090206071282443731702399284615025132478337497546301319079617472234940971096307864348107280585617673210846801477731938418290134354154221416356414523516468531628342790579644467333347007426889734036525209940472437946064024032290147623028367719033619978528793703962027297911234813849745111411703862624354285897482118307731950163576024278976055972835433078407513743847283932303257402086526236364670677331450710095183742115584934421588292659456417846741890993997698406335406211555963323484997835731479752267343048546482493660961761186423324414887373645481682618973904906909303596474751319127606848104802945159340218591660948583445867623568165490626724109757980239062872753632777203198398414072196477365610317570844249786729910016689554353737491274223272330503901520366806346046265591130177833672601865496259510628901266735848873566319383216859352307419453684226383305355979065483274539751473215862496094808662196489675700512270950261871356303465729419877558140758273710717509919273695053701273676999097806846770001850194210840811679375165390252080325195856032783238078704849948788023850939862015847616393320533161407425655703810751666112099655738691765826488363054879378830675211428876330606307410013399667474791757665939896969989880196964231965813508304323314381403422226810930705292708866105409049816911069452453887390475814989637380555618503966731515652208281004522631640418588839203065375041828870221383522261345961083320453106732987856485203373632852676686879342161741870355339158040964629710639972346377164532644959135945381439273269951840375072742214614649918732287039293591240894349755091398343269705492735769698833785878006450523326392711929984207696769632178809263474507017789536208013366488367143328692153083703392049478888606857402746406584573509472810958730666283130889483522847495075046279030824702072247868196118692797885081069536116562033291923772119005800660309761529724032942433383831294507771100644861693162199612871969661912044711414646007392268715534512790124512125971721548087049201140209356855665898792687008576331122767942605456130114958540575828807282619114349570982877099726148854338743491545780941022940454614769822588781081824724155838018506427110625241691881382722675937689610167949744748167339024995012551382860018251977994967709604939653641543833935494477817649803352776619966608346515565039242648275352041422502982158030508956298534324432049798243876068026161784403702194279433042140464239608427722735154218666199620346671303133065884985182439778192815741558651117663056145817191098809483229668798664080643336083286523760980808840590369245460181258232365735380761545037538793414059865381784172615948434415731506735037754170877308951598750304652502095297800825540329726139248093658289690880277955057459326704032550069071015929967318855013875974386650963961838634219430293428791296060621468800318022069449691181202020736832467066401707845433132946028890291979917267703738822035322063842572217363579949186512434189710233952223786824311360995973319361281744720665026628279428396825824112991746550256219937028519270313194835848208850334338994025325581843790686772219515251704123792819538784112396989587148068326988139072145280900150379434332082331770582460730941154959870029897697429567149305423832509612938542345076462335688645471387450652953280271377014520901861049178624632638571146869588366703967708959940263095572255511637612329825599932587701012444982873499732639686578005249952882417111801760527028074570546684239100779930065937053060872638841692685444922758847009252963810497495797525414066132185059813142844172348459438425166026133044687219438209893485433052820066980095984416713793089358961541105600804496940814326802385315463717619901561263386002620581801636311055251366379080092789569187225501628511679507928982527991575332652766294811267185617221104437733953462582841460241583752820121881811119462987396262600181573554654007351313080459055753274265381712356050252890099179064730972297538401077817120905975469729162319808659301663329317993359141516818699799089944116768240633284131305699654574443512910464199386669851017476653370052999444515633795598195983151485349554763434413184096721741798424997801762630749611107336023381534338724433096725093842843898912411366403113100827425018778473957431064294515192283608762505155578533845262692871378862588384317095578845154546444135774535602344807901958358432907514821886456975306844452327163154816699938867900206546912068876857115513021353284546211595240437807873468122751850993850181535283272062813733853391146415604776390652319657174531820500271943192322312999654559762519184571639277630794372087138657530434872129176998792520793772043226235343029696866906411578346276929154836345562771110956563378639502489188849790923136569565096448089867186476901455606546928036516728182711714089509118615037853741209613283278440532431844964352721636549574525171852946732640457618480842251103119017191918049845531979558516897374320908491637387624705668873898537431867887937582311296806895177148047140950051137097166570547220305972224668330063470283181786362357727942147922508467049182909373334165875332043956370532336912693553276449675284909224581695304710436217769180186679316617305128716887287562429718420098364465511950245924630240113139845436837721862698224471375174669995688886674101334868768561905076146735800064906101203184404367688525573407145512633062890494350836762257522448947511728580412008779120032011422342250707800806042564825809481291029648650669693225646557134691550261219010293755503563571188312117755146418975375960850198182012127899564311399912058544638308976088280659583525632246003306059289901293157323294878859020685240255480317454903659517243187499413303070209588117356796748940608284151632315652053776771688301276000658907332935220830749679544247849764616015197657883165979298529424860980650845725051253195425155711089278151690094373639346014772070344591118106237104686807790615843731876631799760670850346398161109353758000097257971453136435524968100854735120562211370776231614946194578170115686348697109921345234439623757544477677074992241488130534260545236114777564727791150453076152362879074443915256968900323592064585410753704501233529767980925205717155369280262202472320694870185574449977540075935478825033511041339412476783789445579777366713815131796837533631449986174363998700595241944171157225949141947542499729171262428666342893250274282818089689664934928615630576963155300397326638844966441326337474791559076421526827999044457548543627774237557605332453872060792847067357128943374624559032993323610722382170524582697414512732597840474795364931888783154592219202288255833420750460834464741361066103145716025057351694506800874766821610974552264713418965908694707830979119373208729522429936807035658453125016148009058553725219914897103034912065224482891026836616899062134106711942886552450714193257350445828553483191884505555729941835021477959396822369351631449959621294718079185358884634008302090988452547451385474454073195235528664679098995862040091053357255472728258719059290554260609965943602817155691985656429981737183416771201289472775375772532537716198973407462922351806941957606547878327254267208949148686675044701724082153552696074583800528223222967114937201138691133987936917249483601153307795363728916693299521069210083797499594997141639160351199693333000374440047698366370168228868436374191024808236731638256267282973523154194257666453549756200877718179277886221774317518936154627618847125673785564615455922569715933022251125556216816290822222472654952811788281075536548416378152401597681176753435442705898999869315769101386670378961789529122542329487604543891224295448938303306719913291957073862249514314543540489866294760184407653542099450401296289497579888925437042542533287758939254997936748220026456987001324830770900828266063653765927472567391669198421619801866981440824578986813581493224599421647788385188718945592440243870442977360710997577304723274750576228534937837487794602371690153700582741325977367685152461432632872528667678831632112785095553530946492394536132164898127360808437238551758919958683299672537409010695684627783529280130659603942746098068668224568782335375558279987417369046019963696141287545158570166641859905753750478877236641969015372739782002225607805268789373707835689627329745422667291075817765606172546930045396973616270009368166538728342713176334972026446902973716160153814418170944303397889787389546441949195504845750747240682541761154660241875346208432723646850309433606376720500297440914115391595597349965458065724016982062309642210082386101423960999586220090275152917231360512998409044494986095861981467298153849160307737445981075235119214596955385747327919098952772968597625356474511633413837106282612871866642914072331611528513310571923749213961450371131429511809005244396301546438939748372722462770416739303306436295726398971358415930838477138245309398371132713250536242147854776855760805214129026017134733618983786709832044013751528606761933153636524180268958728504459197137961629249592236411487454209783743714320853770961246891719923696132022501166278531463503757619903193833264495022180595722925530585282723115358094507814343938336915602480373213114516851048040888464694682918750312961365727903524859585491198371808235399744496314472129692140298824897542955681037219688887260996442267506654076284515953990756298364476144995012695499870866643144082890198072249834874863252019541839491058865103027477016141714563968581410442986890467639273742658316040700752518868254319232888288669748487837356811505196428603064273125916148535088238582107758625026196828480313022431404705218730438239219891947248427407661478199913735595452396716963815610322428312349196500934975320123108035143894352672243715056690980024662706502664871057541907263727942671002310618529634812131505109834307415801832130955663988560701883971409292554186171464369424340358892085066453506367504663369899445859626981048492619310169674934745017674367644472660406793164487652291972270955423307815573798874160177217633216035834812531061130465760710965680332045259969391048324039350851657973515725124462375135741580726725272589089424359051002113790101808480527508313214837045343321772339038404458883598025454638337743387961117506326595884753265918555402191993701548266823155251522661298864735185443355212704215588165889507680498130181565198590307651526179857294728479767215553977957618063368732673038137131444469111076573236733074147015152400570777622142367964924224018486508176536906207603986702369374389883808694850439106576421519439268353758601772053909043992061404787178842168120633125534711192267302647968983509899368243086203820715132410421876318095958301703137111580772139156913582942517207722593728568591117257767858021766109372815291028856826819610572131027796438588449306802797865782688265242052825342389336200525985856086027458049035773130640841675773230921878810417662116976199248701234806190331624061211061838851625933407635025738451465645858255856603855581545560808642888905355187967745807829270554181212216639703944996951918707385655982815401619569097707703608505398704756728103922543242563352174875744702260434367126690785654998753517550745439578370029380303782708909355159653889935010955264404042322221182580262020643173572726131564283346973391996442769951852285572284924706173507784910610661095638442625088830833997289730150549482754661213402058633158576303509653472257291791967793933216074868314274025288418151746224324411098626019629523858618791117228617807611296379786415467082342597797361722932339451460281053292000784525557262782435031222838862415953665544551244825558486005120726890626300222298205188984076378167779770238938667177326525877741025807781391970704565737142163760580694856392083162699049867142369594356890253810352339716777697131104711882403934680103998593621733959297285047075193325577687439224682010521799075802780963978808399936042329242240089561842392444072734955269606083998022804522382087722069615113688164112557251348897402296946699479373988910939607446946951844326783116224271687909273032540967516536408513242449641656156948062381130653750164198598549584403179070876091345409818901273324799156514986613070564917848255543915577223864754550594979248428365739309141077917321240626430514797010042537513879029614810605909360054088058827564365589850009546936634311917491517225671987539776072456820306550440270780249687326293185233419958093269298227801096878565151154061981057679457360486351375330997653311533406519836353681102118531602152135520945464410705873717529884537311981496195252466228521916792651756509963504116236037667997929241365740269123183045762237952819464272971100800677029588448368465337742385412372375463826135198445592068565618562094975629111057603872650279436127305855406336916473953297164463724476264759939229751619432868677526107154316074701756096677358828506259844940760719552161778612955688785943878152476509002141603905665758197893324120795918201231069655370358611888206616527438336374286665876427977193868314966456681873111664505073450831247189734115415390126175452280811817221383225092636189059145620001315064208245506884442047448143236037466689769044839450731096436660462617049087593544436369417266445562300131082163281765716083598147599967893295895336200221368241626546480170176030029386475884155034870790482142101637101343694276516501503697491051394384366637321182164176504845936485909684558665627883721502657638911395475797230708690026800815233813700704569357025031443000508841279215859209393379727679445792586264728015617743329952115614003707210688266377758689488722831832735605048992778495082773690023156733073988850650426040605892766714714867893977528149424789883163432278601594942984706274193360037631078554068788354352511042242938895409144606054345979737126599684898651655877568514300672268615627517556641597021251537144879460944418699092456491038129198782850057137220342173760612270193921321382851529400302016904304970683851481778905448433408416523642815832586091836745397071405501433642557027755150308640312766084610346895598736923158595499959411212546078125640578865744609265158317465549249521370663801824738830078724178351930361883530126780289122685232875949296586226863054617893884624728614175953524480593879572990297080676690011688817874935232202111898021325888898893206680309232038308520816824383767231541739386553684941517935591576079703412604470120611700934002538416343423481582848922658134634583167430517838784544667168856693651152518864428382848637481037558684352488385768293561937600716134029282593334020226349646883855305990735664594655864659780778215352798699121560959473316204579088173248669281631567660743967121450221916044453018278682466559254654636204884799709136699702991440120869962883913257312075735990537206814293564480618781195581679219827094723746425063648837181960347838530086239773548687317675627774782357195225272237588469689039386637380056355212606165631927496761129249285039776295120273941529076895602866313493835985800050568919225750620787739501319200276022441832764929560685943677633142055493296910505785931235315520040225752264236642743532943640118856686404106647982071883436391908824578233767519245725855134252888596112169917251002120211131479798884995915952617614954601025427873586606309719578863277193423779566805476645633116597661583817168588629417549831012459203633661524087323410506626433813756674044443436805326636420558355227233255555259806574538074579895252993722170565324121217465659490131472067517121296679688893294520353548691859333647460593119996047973478024390368154378304305043258398817620863114906200345092943701329023124836186398675431559095261892267721219084743933158027462426993493986078688728941964061557425765034341966953897737784408538241149572476454774997997999596866505232824296550207886010494788918164743610823986303017404307469586034584098193338780103744166270538784576448046887016477598128323498612322570249991185143402861510150839474407346361177925218427958716557327039103479586967833791428388695246559981375176999262969622342978684622961285089587361204264132395545861190220307093559336097541306307776288669482365012912481430921270190221435895910401610752499943731354392607497837433639022768091009651920931706203299978429574781204509123188796333775871857045291782541510892633620099948842216118956134977163017477777749322332104908798389063502900534017795296650570315887780282063485846667524943856344262451900754710474781722186483505810857241815163955843696241655893270066318309378816079553466481494568716065489703810880470287262076268017036266739188479360208103659273607539549346594811896329117202549094381963903007555934459804337686551580121819327659925455290043685832367268887113951411840548296107730452348042515004541490476906640829161926622441778175441819526379372303002905203994409469633636972454895998971574831348212605638520867107673904213867683572372999502747345972994051837158368718123988316061494622992217099630294542542227800878580663482631672039806066281279953704909143057475560919085157812058147156135923196585517330093121857858876450548863679985328385294934982814127298042042009636188393625713177980826411065109208118114542605368972058045970341239286026453807208473882566520607274304107805415370465180079983123586884981111651843499914926850092729634184810889523183372140878222080250565243822270809078428840072190593174556284841297475613908964619472451281849779745130992435394990668033667880908685479248235967847438579862549752230978686021870662680879736063333985399357691096475834931839276362272884776409927044141223387965655744728327445958594299761765613806591489559160442415903119474672560168202501913554185118620763404944770869516121728393779998814028796347298339007853656326224700174197106264701465016020651427594911527430228082649097689753218144168033502015176575048258845551880857743390654650753349915471275118657036084223888180130630565993989658814765181829789667637568545996662147323551280534590769705039756090913834030355243326324627565080060770212813253392153811076858806697436051735412163299532814552589644367403161100390882122900406606544269170593373747915999560096851700790041027656454761321172290010529752992682292910853761581605289905362641032438235191844516214395836103557924258491156823370091984582061169128602017168352211813051583301900846222307314801366788836930658455417940683950863732756230999755229018200002511037872924317180197760065940064588358590606239741919803914847122140488541664894613587892733667436800534087765606445383053682194490326698159037735135119889048669788196392429340551229811676501052301221530674868863126006998414787969396188010528710302211579192665771154637833957929258266354077050539139625778563588097599619315901834334107921009343733332017726065111298976625883421728869659128740178595535558237506966239506846514056465124735739662856041885796347101347977106619471907166010111944963389439485265085496787462492951260580371713061215439613020650906314016280125685966626686493319297184646685813274544456459489113691122389412492711000387930954418651398713286104102856320388083057076281313691086217923275910915433566940339224314141753489488552670022617468989040521227928982839360434997080465293598620567196481471209752573923384967960048941575400391331746215184094471472128258632536702537199297863150198805845403788905091117004905321096753096519023670879691460860802105822729736213111370520211071231672800994017768261529184697995957443365613626497829866967979973744556533367590968960452183376457733388393541571530783950819341470918532979054851954692395541914781816972365283472739972957687455580688740381849978179990741025807824218314560815843996291721143477987678017289885724654040972929199863775588400350386313865367236411735541437940798599944268621409370005130285747951313248655705838319045493687192571020613675519438039992186294115063149726687010161988409854426425590086585431540108234759220493464259075751443783302279809013610502250547979470328769306645139480811193110170094610265735355682368489447950134819904414297587681666918880138643453644915819537636427987046097427662589349292708839242451602164010024406579544792448668565274172594452950116990668893568143142351118707999694894999184702712982085069470522558925586790882320654682710059013087815236440684860760985143760204639069832135741146273697105154134352969213285638847370692330398309541983247192855252166024634231526429439354963735450491088574862865180255643528367798355962849005236590200337945264160739958836664557347174478132878234083193901851970175878536217440884506758649569066521536332108593903651094856128969685951945156446324366700116610414616242046153652980570528018326650714231204054656045638831439352268236809706634031180314082001564734929178904021661337676472014148307416424282158381582852905110166891108066232367955109600321687264135307690906818607031954075653269944284113888760135096662153355419510147500857496123341648517775036702725442664117733078080029998180701532613487208223869979161020016112814499068394111660678628239662064697255560904667770112117372548287721705351595739578919846789264951502244223663500657290737314082565926702467841255727645561659103067687764654413514199774038695003824774316979848674371846439888295301510049824099069411134383907018157991177252973791457873515631275353020446223172735883442664608296583603176151103111258584674441119126443757671623963383815288992242697687583883013254413457000133934054611685070679369555405693334156410410453019515253652066373583862442114010561763728183601208009385174852234549570110188728825375103860251143845209278430359717336182580567261363256154703261294447139654274833833502135822549387680233149479877770264378264905751726754922150076464266515748409859062057362207664275222865007741929017302233698135405196838696365638997581885010041786245097622654678047835726774537760662604282638240513756733756508319378936635667831694143280542609200766345974336863865978010802276012849718962956710421095179685697369522483313526048824921802640468992692127633079330165319799954560137440553668463781222758391126434612366757951668342867248819173141932306827225183450405499700799709584438837607697564417449349879779507387281984301708628037773910557531867176616549673564467737687554094131624971580263684303703366118689328380996742401690948199452033516252696947957267821759115585862934472995245410386401381700795306246843501314533347439273437959094296872849680252810455626065080061477489521128600091796943480854113595664149957542871762277251559057145998659603068750027803511661472337630132209734793360538933022811881547767294240987700693547602077657131724208032909416444754885036690277867572862766394906736421565612227855658098601335432989384630810575207713534617156335866505248278129447740823168310765501848283938855008041063570297340538286655003292722469972724220311083342923735862706857113340401515113748418298912890637430083635503010383044896059436172544378923362689165271464744678790574616328511651246186834025414110363496967214504906845012955314623630272002929840022107787375512318342816243078937901081028561122200642228417699158992325354379048348868525681941621160273740399291825141512983338894397434073773339283308853203440385487958562633144276449562701609223741783454590911540853079793857267341283878233530882178736620054318159833130209416049803783647315843767209234652536130064871433937946584112567169796274638670067104054157334602859326649651704074559801941737417929518828478713253003068399839439199527438628428258664973912248847190503617418851422481760465213996757311964016586198471585579521239891769515614858788528849287404360085379921394720575634997291192899953372350175620400543032209211731650715566037826234294545216783507149359634108061393685266860261191690810471590205450806611010718353362062442168306145115442706678393965657326670921110413801041364450645675900825716860684818116720964715540572268824755482701339297166606013763916210295215900700384458250161158045042138523602757798844747006079087790768640539751556910364475876240413946821781216033993969223189179960765750147212481489285312597909352639808793054169907882102622657601706279306082761495492621840814377436097484067983775117267519724252047366268173818929606366612086987232243219355181617165435879332309543740443935825692351499770865284064547066153111652980274368271726115044514616716999741875690883209646070959944396741660990530943021940756041801248718796544752619368284073826019305064228567823175433966807727873688790936526568085146541541467180409902193304571493130896009350440770501101485630874749669362184540302528722278828032455737507914938342895176388529417625930130762985579302322713665395395723256850397512315086431486038231208264293467447841202702394218061171605676342240553387951690055767725785632639133878621179586123033087933449976838052647095533726458307594308730122009998553887440154771586183053234067030971913603727573785106885411393182654522738633619732454496538801614685641400585501599115462308984679136104149532081324364177747852146367458430320924565883202062755341374713275178644034454384470223222141155425490747145478300557360392583233207837645448701668562157191932015226019768549390320974707500072820195616769692536587584187733522607224559748467245688681695142414830523419340870659785663960615577585288020593880851306857279778087938087364824461689716108927033374510606305051743496853116257560952198698434027409891540278735342789849287476826022549368630374113522912530143128937483564477107312466680000329925313820874144945305931714709764272003761160756681673107784188636385815400732976833541285448792568235361870311808556915976377876552335104243990989383108474300781615070685888358697003082239566936761404392577810583512564169502951191751251030258932454995280492904348551880868345634857715281831015012479361243302464722214885622050595329807954575111215612452684400159107035185557544706181505397606769455243701254878997205774518853821511065496506324740962847342117104750067733271345279750311357324417511211280947917635096643821076076077901763286951058601971314293031678595164919997463261976372084973720531107492471042304569569621575385064552449323112232123142448112596771137879399625046058390391482922347405842804472847010239159327523745492842115460777393631027090430018122712800029510945021658930072321271593566057359770440496810933634179197938815162809112208925177693909409800900381940777195992467885926401502245776348645522446313606822631768726432331035683774838671255377684543122021318278862660665079647800038559307912578691444332643991555443118366329027707410230963991840533547708076283657188615232953761222674250578800529414314524423372509073571091373189983998287649256288923507437985443706841103469677858396609847093298245788487435146351258920068409324436244532329302568133009206896432792080051148231961154434178009857190542328102128388726630795551807246390127215197530674880535530258533635525717861909741041046360803835220959164853661017744948412968692766799349070351096372145938027688553311062134230947409528275267993568984236136096393478925728762761491229036222465609132063799755926595646325370027587487716328048743562802733345703383860068338846614918032783948275918536689633308139951925065605250550693611915930457875552058852659031279307042009640267497243592596630654879707939052715286944045012782568517527306307237492914642606766455908301701527595525987917833559667762260029913825743678620797438093709421672799020446129000521926748492388428747957130860396728986701322644793626222641526710558631005294337862582169769726836981556487716162483060000496099973058549031286021840803565389793010390483565957886237486810346922704185731034814006640620568581096357369383278910952251454549312571657580491999293773992888647634064379412429328185310224171469478648722931576376296747408621209288083950139547669493963972208055790889401822791061933443082296055965574018669147830945572166339046788593273922009511449708530270712699049609755879337150468423749261464173760194870863311125023730199366365853167633507419415752395757729500241148765688971828842461793084540862208769692992252506865680733338766190193041981478839896606205797127743549399195453679442700571571407330040428214146383287415963090786927352301029760816867684314781694376701593555261456048231850878434300522658287705843377166852851453444665065600154814369423670923148098257702295282353577636992976767800308622936350827150732495053040925701101891530627388985415352813501132057884908755064921463201021876494511308826200750762517139330827232715341816669261040613545451567969616011033109150086880027096529298690786262396316440857303798102056990298172636207612068627086980439661632158570908449404956048005601923898182784532969948589814299149871018053013717161482902422001177165264141156477277622421798429706676826227263052209491359955081531914969485782504424102859690543944383429363304763195299151100991704657330820772359736231609944485885312888607514107166993347493797278354120484659455657094646294154194094516810744040383508190687239610644968607308169537766221793100366314557403101081153122234313661622066562379454577507947394981623821116392259266586467654105622661425153504511418446123549520132682705802695888130572797899272435060334756580883266866101776851149743617989777164984860696564803596399058442111618501132412580219032598850971538696032960596625473483326025913951860860322249119829957053268935408979302351278911199690636621670379938474607234246137680036317809953499265338306436435971067445243940872229257354891334962995212498702053103649905161239780070723736981948746002556751019024876857840433316212973958263516249598543950534259061554959512873913682285181832473282557897729477785407795791347478906048195533041846062778573624924381253818296859004819743314240291778063796265601532421241992761983373255782355659969704346309668747340893552547095031559826394517844708615188055513536563242625740742806176043985083723581782067303339236685984214381596197764562111157847692922892597197524478813126232921810864541825817993366789928475224908514150295406043217213389364578546453606694303558892982509608640953942677491076137401547305628149881983773120916259377533868786173701652847048400237210154786841071002062169582374299674434584135970998874461931724731167846084397880278945911344293865060814392095530939893522866825614252361932194566723002346085770075995822236145155130200417021225633125814325372105671849898911884193241438062178888277293672484551737145279979779976610211968958555993728242699933696528063357223992750910632511363924147046583223496260351099719271165410256381072584165837715891803925199168891641931793014568714080542839159562092951438565156109203169603267319924975091712909900496462655093453320220720474311770238520945466934828368864605578896579680603156767052825822746776515845619228366519654983942421707871930605299958999209184368108836076964072065158336233540461227084636790352650282479216493201530289670588184715841884060004817739954935387881348049586558338752858307798205214972432211413210630161151958414853507689147688384103587815644953242788889386989736754709400674797715725901515148663729005496547400250597774712988063180148460163563175663733402810933480324774027543122595663913297074518140110288061741690140381899735461339242151948770522759014900393957664525354513744415615708673519222776849406223996101545067054457374711262254288509234839512382661781643475076729896479088163939609448877321915551298582246077678498076356500216299367543991373369534385594443659419051682880322656811932958557504664041859293584310678522780388529473816784502832890664488857028089678232684050750532078839118743027842721658333136432782934465027995250835900808453424495007330247780229486552000660936792551045371936403731547550767809802834616942558142564447388084980319462720291562904838278950020909821370411441012971701193662411426785857997143281457818906423559056778066340055762056596985966192328557195639474264383092054882523266246389376155212651026378689986526619097400277741377804706204680178951930419949533939478088793300180747622018418078121883342592213767151416887909056276171528509080433687600529567317901587190937755975177267193991846605888174077323789557668267450722025642154188604215634345719017620458198582259800688605601007540869783638614649637219866596473035206639453123041677447399951994167859900235452327949617870022630566293436797627396458646360762768751662911269059025290678841144613818093636911405728969656996294958871012582483488808720413057809540386276864015040028428947945424247478345495853982153194668558948224913543361006440860397012108527686642858424703605383523498880363264488484135616939853972514996756641860875119525649574670433661079548841390213615050828776673906379569117284161492139433515087987673324093561165338788424043177595631271907124870161538429564341618821073983466191379423075230351736035525735627179492331276941936538303778937178990280073292796168694763178774304540968162033216314656521683108597283305906823321014136527880177597136553398372339493033258989230824644054342024438126128334163412596786294017909927139028379751725924212558733544152638819591067927040615738044089227463391459721435378466953679025966193808480261589311377253320168657526664881596497236683288344438908216477255776211642927623519605330129370534679968792235912643830142937650414279423448046232701768656571950678681366482752478614915571998229077554213892823435377690169689813897528872407527022812254032906817778973755727724040877317281884235919564004298184598374160767677171971164733226241910686785778112561642675846806263366177978134989276341269290778352452267587710705781643105176793651716400529984370222425092486184921501116749326773968353247627041819920893983338601190085615219000127236515995646652752620623300418858331274474585088155393036715634006466011848864617851389749394975481717780370663452483925221629326899790403787162451749435043087511932427322373347959036179460851212904392992632602990206959903438295191538694458009746813922839990826478329091062294919601946828903187525588437076559765946446006289309550601942951479033305852421695582843624283262567715014810868106984215226114721205379168082428453119467222006304255313895432282077389097636064170739642880713595695881335013651740274180569646521597480394141656936843144985843712248422405213353420017509646683835451786868498040515956307146313510010030953260983590231131093985856711581961714681567859420191751915578284664960575569396882144797903439307004387973339337119984378263187919481649000874791618713079526071105233088262682401429694664531741858955486618861758357800860167305647468467158481043977339017988043837671081440697354023949369769634907957499355115557423693460149878892080533204414451175949031565751372364063023938439544464544809859960914511442923121698286484339894383734301821087942615665844058739628023711916423368312621295592683569019846055110993695935038832001962736706263110573574394682516371482523298421875395318679520935314110588384638708570063555429551044474882692346461893708930293729667242122810690871801681025372528564607436701689996278094873690523951217304969742863057317295118561094643375022303353896743382119096529510823298495122603708247553208776725034981357956259224550282590003972730824765420484965085726233293710656704305742368773679300376001357401393277403599314180259780689714469329576495688570162180023751540057229546365250843617281258578454070006715713922692995557984234470670450317069554404312290086089474450722972939388594550651501754014763644306870324357594406719141534508167986414402356478276022427133777794512950526517857462354201032024642996486123884904581547461875898759421725901823050500266174426269621099821973377879597199335300641484754238952488208376975862207192727722203621851769835307256484729520726775761927463673892680013491408178810790401367108431217909195216801821545576928411038076747262310301539748173612839466804018891475227694368455008009371101075651252533597539437879252635685745209759656574368061737638724965940434996454655521738578096297849177299802303882655071801134081875523854194583788204069911219578642507506619522214868401465238545599040486940104733270352378674910102013128822523881403249788436123874269102290672888611116355956606029784969312641354360888874375628474170341266060534986345685869783701361349880396442543944347147011094847142561589590564970241800137288851089056932105064903569955103271869244596014789129827213392020874832704223749876604398256036288066029145379162503221020701727372567650857033285466321540177601491656445853642713707826137661212059842166828668593745630892166183878938778395024501989706750892148917671369009657518984374604020212672563654264443183246149696505632759314031605195849791847914189686199301558035518699364242718996364037220919729669503171762850225394454780231678854071386834446611520969913252913246648467360900114339920621392434077832778505392708641139780101071803768911026710767277687362705032702796024988586861792556308884832045280762580479300258364925929980021193695369176257756697659168455304559739329822401576759348056506756290530425536785607510870427874935865001169985197503317014667506079816028775478875058973257795832339572947140550020668792776294352645216459706912282163336458705516182709610337636079090124577225514751591559157830029377442192168383627810375799482213120868543621918969954295056595559628694622123277201073160824799491575167909537310663650154055989306137140197056376591294585681992478364514409583960391485843978576093109023362143480400807094611075370885196364238396721657829407261903107599481207936901428778071411563807258891147884206078756443535415738791101589182902231183584947528708088853793796565903205471916643851622280528482099694485932231971681111687641336938942233889264831055401206744070999210556757381092076793006965857106721724455428948447792664072328365833614044833635646342974856941094518363941175975499642981385561921753021096406613844596502922812519177444101054521675048459460832460839650316332653962091106233177617752104699818235033941863788898316525964530227992878460891028647298874676609534448289395849815063743921508533725003557353224723689772932243084214850636837319133459540183842079239901615197845752709447112460295434271612525125601022319597631923883268888141829805250049915601377935554361519621306152200110352294930484491728959819244030460327208071034604228410170144871193866247297114203461725642142242441446556966172452317640798676458678441353363672431329944666325271859352711151164173914331230132546554474351992167381806570611036568676507265174509243568412074134955248850796652158911684407754702879525237137554232066245833969877228465991650898273497087160888723013930666566197649363940175534614412732560916881371251591770526881402007671727543656865249383926136785814204630181421736563372459205797642617580257927151739857955735032428082905575341164753813771537624326840178439227240977810704345434167843441965943599723060794880754521989069636393488402447901391393125286119407406675606198053409823943606470632915977939424123441844114808660297712794214610600822088551143167367315626605210656376487625058122785051753565156615235969910886136412985962384237509141325913752890483629801707489721428883109041941065000324517025057266787948577175943549449373310449966619244310316945343395362867621100990863017286716657170532825060905326638287068712416214870242516487884026539855328724439955985335296424345211169172777272493525606278390885266483754142016230475490804174496706358029322111155930182267802253463197304752309798607669284106406934205615301315810233879752042306460700038991854428433412085040760358254759670515601229812703192984167317360520977617869849558818596045380007646490653122297171885852431080951311905464499231038081208697580768652784304252549165755988603147418338040947425529736966155573815790241971954306552337545509376757260716643577889311914124868828803989273419073626214770978015530049677156663721862415667933898187734671124912917705199044882966203866579887111784765771702099741475224998780118532544781981585733248349407280130201238622256665837505476358587125871372573357864119418199955221724067279739238609514503319081494317033622593992796674274362888842691423817130414086472967289751069376321347220333945828415040410128452379440494817106191166364354604144523170420868668649593051354642077406604613743373053656579275783350365983407718473076955272121153304191590979729538651450921722702319475478114795658097349847304798008851389882067612463600691546128771308783682557614379918758347160643427237969908833135445130862332538614077380616734772235373295460274499180391085984001447842580266905152619134317168704010463892544361209614870264709927547300095526090231274426910108802127311053317408863081786520362719895546283027585678051158473727560291810559766106279836880674872463577696796488458624731658532703739000365482923132201813812208637458103306840379795663808533836757107776590753132763076001908623255787883012623892218526948207320752576543595098995174638686940852640893716641881532747265581911945347473995425549682964559986663159179935929411329207515725176856114902439526305855310468856860323195848439609795887892934577233186481755361316382853617343372559937309687643021691100712723730224633747565515734224221002598797846095824497048472348798681931417329500611042334997493904571832476205380645458621811631484142901491950176534928601993265195762972218528620849993199105277862707366973937142748118198464681353443316642649526764250484334215676291114635309772912391459514960037999649649838058091031017951041627535343131989182030393842018427025685868873778991529024377626784714500221048345813107211024762550167582218711809566401162277025757035792012146781944217392563932468217222386702386385264255044680121769442626933150912218004275608976843835241380511960547292184001282150892868536867712722027469526728844640908550355421941848137085604080899302325459685644171727108360832732098696301892940918932157716775795371644532539405760009057484703851743021972967013402260971315330379901519229473760800571950697628788519815630443608140240670582419589537442472302899526154412001958373429467292769874488109604430861986209325635907724497007606491838415891405342637374695731550021011793075305596396422143598072610414082175231952844746790864566572255922361691084267932745425037252891454031647286819869904964079912844049661622645688071976074693352112898473624978971931540324210961229360770632760894627999878689166194822015789454146965506704035757648591609323904595221921511665734551505359740806006266596592322802846880415327398570312950625534297873900981547204647906973309031494250806324898323066916086910642598583810866497827530924900814923790738148574498501746169147902665996973356169908717154782305040936412471707224141427431385736349403735868944461739298038445611759008662491105867463413884603034448829483815823833614877677924355814891353715140121570283467810636967806810525084486941661289086360047623242717891124317147950421005016898825832147145677828703102555762994721317920116663447806589913892169498467013966541614417957045016392211970666033918232135072273032339177156795477183462931052995710993720819070192079839467761341150231493949666162623691400022437668884606230314781406698663242549686759650619212320430594029949877544446755372488368168107183253565073019580822970877425407818372749885307790402918531768159486314367976057938208802518844123175083126836746131819145655400260678757459115256586746510236534015666910438806074585384376368915977663341332669903299722263573041728136156556881350416889964108189686655976999542501791730673223277165724359853859840924740158086229004891748217380863328181312297779748613385079603691901814111823210377655800049616949505957634261022380331341534132819856936173222244347062750493054230707627794173718884615178938791654279838219397609269174262651823387388544976178678069058844624119656301119517129928621527582080859708474061661253832546019913289573315180985536180411596693078354058546401064662032376715976258625546231300453365861428115286428520139032342546409951769233822628367688397424526608533497175094436421757554517104201762607253696409098313340396558527093280207821305256554098551279633898205431047162659177471572810015096052022149791541980416520202394035758475537155100126984422347290349314334329045085986687293010190487882473274764009842953024714873636417989228401006613559333116204820563028815483957013486500184976739029032543923976392184309923026848372856779043967143719380147949310875800564329526056233728423369861653772374887582515760537507193943333513422469574692612176867077397525843523344601793634338113816542225038066794350813120786122015217701284868562731464980792595044150073080784711746223117221395280236267502788377133603627929215800669822684365806721252767103727924455468847524975845185596612581574336068937862475938444622370578822176078274286604854249580326906766387011541210940269206981336743851171670867008843550475700197798783679888266551395337089332021581164597504424397827782075751735828792955404770725138168947290402479498358476401119266225186068933222260152857307880055410423718116592568808460350234458822439262084078328971078740756654738082387774899105636975800996434685333901542074454101785327162804725364619920664820115227837816052308474996539110036152152660332319646173136598665280822134071993463027995726197160302593411862041523313218573164315228668263489400306557133495231867473303975237755075530333023091271937899069946449724961277358869472315408951189020546284670407167883521343996194957205562549892552247276512118337409204789766027042538231947610235058963146480635990466520770394818926507103787747317947927698300576532750242297795618313461319349090414157333317152094246103798719253882414700922344783499094367133551179897097395486192501020478512212816292080972012479792471161315853841608199351864431707369196084270655204657248776106229538715181451666054807571920653141127225378577281289497974300156153025844083147755004627373093261639265854014895069671510704372580346329010518238971879575951174114931109230336703501269992958507362835906651879340257503912770235220910934741319765587393988466632644104742249681987264511457498149098101043394441134327883384258969069668933676179734765221999932522905428157384554362052133545407992436187247617631033270594552553947857839915954979990332036491304659729039878012282541804926977803232978140153524508832131123054917805928473676164027576725553924385907825293279526849590795195948061575711898978158295956627875786550636113696279667189899107252253370013796938969027914123318997137705909990903371683458562376247857056906137365466448661916970915724923883198447581782244324448957102026474428377211713873763651256597305824906807882252319269181685296605531135613705927915848476556786115748607152918167309896111298348208819238125945115819774743996758028964339248407536596087914797279790440604800173011306892381994188479639243724587229409748932214199838899663369221034483992369491195437892517056415227125665899471720863297538838965344787461109866711863288836894317334669261403121331380492512415269127263300712513207275934706780776032159290620859467599313109000489200743379285409459079864358158058524675309989291283182943934475604931736355928651653369500827327961298608079483959739680486361683938622675365961868187030282520144739766346654407723612008913343483262835440901980965954084060148583680134276574317566978611405206011114304344890414072258338267294308227071246643427195005512403475040283736579881479060063923927798326408820021521770880864281083863689723834932786539099352475698952445492439103613503745182995242374317916020995848426543512176980799840189199611150554004690180314416866024413978242735348520159947558200767724578784907076652271464887622714032832929897864977096919712740380276608105901160450329503408631938823319539530201973398247712790310502685540045307601380779887072551185278584116485326813260359618767102922468158197379372809119830847079216068716509872337432978552708346623116341375585198949760499696245663879551842107496664656988686037435466503608243259735556114955850728393594242192505084726422878020039122590930999455207662704458973671637084137723495138876915530117146874068005848887918805481897780124426460675851196091241526278643340636244495429915026653289292589755480146494130756815741547830707432666761126516236245410003933588926809232982864350736381860856158952486335891416904330862825287008829657338188073211179601457679599656263278346013752216150786266982991557980623539480105615422303263379777147487096785900743843824652940410563878870956768626639856629562189927462872776797159873963763356426145338348154568027675690341816755523080748861182274520506430820919740798197953176968252660046866584673274771777365711710746113444152665467855593202148507179467197732564517900597422884536390582750481613415011903394280956260688072939835573112066935905172844328517249795609333036121599121787005380135130570332064751126646585381517777663687505225340854850148109192247050111213494960580899835864676085645904246121657032251503963086045142434783562660242232773830893237462144098196754873180206095197837047581058251306387090557640835612086583327533138876743121825337096108640015271939414851190237041369399463735389898836079441692857280546575021328619739972313747153099114215984533087737057803712787532338281753240627158090666391712196716191206627814157903263754674931608874719883478197797757086253996269577824082979838320068601737438434507627859390479660352636384417787033204330445491485304483286185734604474201524712448356800028097606548324730673117206335730666076251932918836103799170109809174055316265066590532196793659897970651911516854966263777916443454703950013851742746178210594966587027296372938056022784707036131618299525579335811001256055237597441365549753305022622387424839349274997630624595622807621695499591827435800257139019845915624983756000332631499101252146557733269958823372754144417191038757758790214334641697554399469811327336640354280893457211305421228355295142325596420457517143042634994557100950950840341231324435376315225701620715727657782415714566022010556757110424825785889885970629890606863331126156161761853468976272563473355644069360618188961455917446927138682006178655791935831612940173108360716134307629940354497354517187512062229679935402865807358864143555176210173189750734304556207556889278860033997265434435646074127325856988310935630066934970418086857436192390306538900511171144279182846933331148474641564676896756159220823025549223731048468815465457539118548005822097370668172178294354458796250998608789356904454025922114025898617116477351732626443794449740748976369320189904335105558384808254384121653998987096638694494168292097271637682172421938940198457270241213862662465441170827997614985382731362789151832184330172242742763356824888454200432757373166346450048284673636008155182476543354544469480577137956355185217051680926492149878854898968535631180774171644550135554312573256495360095807369270704835467802563935494501990768141785057810875536024965649971786346339103452656577941025767935415496012420248387057365416318282569095481915731895104860008231771659695887803064469590318760585302958300948592110975065427129033381895693694308815678678321315710415542568051882348151476822923862273581811633851626170082944846217363626843941664920800907374113712195520648352664753644172545160407483562278977562661932067985139171118606813012302919913302911975566773994941231824096739049195012000709503743710563633420974268387608004398814838344375266220489958856941850270787087528877406398825977342771116253876950025171774533530729646715877398870107023012394949688805828954510629538430416759808253981625063925642510708972869581530823797667946014625888190306739577002364238564485290758555959993648404428828792023350258195246648910674808990445538202089888671292061196904123250956774927172969212556489904093566736181725216749881140283337701523345305767865936499616038268743415998587726626145070863911614454731948878568759971732416419657891568239591816781718042125368786798609966920795547768503674674175647869610793588913343587383458586082222990893975330060799532392431690278847772532233052847266181046148469245084112297919111453721028925867415036609029690037492973103966791652166161483228774088748774267663699816438349997346332079600470026801242452418032593285790206487250146252867556609553789368231309692794196703527668856872089727335355541979179118315847680923130570348242921985822493209417361683032030263462803543165917171500036597262610896222564547515202130809291800949987402146851525452525037210593202168578226806034815027422934880850807705848929739320401000515950605030902812325923190260995528935813475845944823671790096128799615723383155740136712872031063699299889457627574175709465894088240563605911508537826611406847539312696798068456655907477998443134831556950963721219629832071356316275690003974912084353239793310359314294955022026388021942570948407032029035091135995622157272439040006254142847595905273471192687358092303636966905612930275711672855156428824378772019251553808688503673756743943009863003166916963676683062318494436926792655853030222666880851568833257102807146008631955083670878469773803232788509509770372154966485618270516673100728693260427966045894478703826691520662478561037542270381922639188211822153702246926341948864429414366284501670182127974084346500933909573025285308997037301543947024459021152454846072845785678245491290563102801775940867919102667448817126384942688207670184746824981005143041301995734845044382908748654819071587127687893778632487113733236074265958385990712966949418285316717321664477976333467934785913100945679519851732185223710016569498426732342843650695142070291691028945169317281023053316373185277272335938634367162257198288939405073322242204446393893633077756429376730011353324285505482059722523552650266264586901241583490525033528633599843392216907791397433610944391791086853713160280393354032413686370299565797291687882824777551411023486936007091456163686407865352180917021112759401702526681653379103647299998780269453349650584336451262476524549173024015639968569793916388205780167834449675292087575296301695870183433322482857294566146870107162771074754790550027418805790925682405156185003299003695832454512815006627543195728201192362504625148574373417516515415393432823107536512869012476388444797279760087526971054693314867628750432709585305443444522025291961359282493243031764823134233184277645542990444381270929296440935606251836134274553195452459778422055590051371555358611767802475532117535086778806886035884577100605794973075890341761755530785663193501838078644638575594395143055727863614029458288298487561200885821390874109681923225245106883557190095704548478090973825103659759174470038194942591267461623134719605181355527260756464442562446953372471735219279537351240020131741305341732105988294367450521108158203043062326105094566604124201611567085615316822225890932668301872849222802007188822678577741608305937485720113241120150859657301077518182814204155507082599466962583274364608927347958958626765239385155737055918955924229186489408275451778439210719212668378429165130662092309525350596044567317167470704614911295823021469421622918955921244672240387177181356227054614386001019990472585364869354207005220877424017681527516598973297574327150381631940762077833186683293386072610475889084143592461154250747991806032856709455268373193096459084189897874994185520227146541921513858768733440021390191337976311828675843881067935288439793746821058133651372382768480768379431606959816727287811761627471014847755976620952290307400505407282347810875699866578544131682753392318681907653355956882297705063157912164620366472822409695521522613625322886162409391244441253262559049080262874897776296612730536586360659581851085674312031786322722036545262747885653109136138759135429020704294035057064426120349371251634154044236458629248582936491360055012487082945502024029291261467551646807435395834673363748327796721067938089747755363740870234592435317541857914964180896657795652462993474053792616304684145778213506180425654971772329551281417922418852904405736736429459895564612795269193978133755132920909825277832531184582853636479119776190484623174426287479846888601625951044710740434752270545477878280861834410863271596578601700494490970520795481903789530548340618939591072220393656384817770909825935403367424673005466989731176139354446297526730029646992022144158389172057944973273188479312677924560012841780113820674228697988125463206527373376160827483900315460427084968258823735674475531015159306733050775339887228473521296562821525312786009897733674043334569883075067396132250657578057497556722184578844055319422460008590523260214103273494190017144354353982378973254003569820027924346627566992211446120498193253982840408916857670077265322973590694189657154081073507994283167998362470597231716437304935471104238965508760752054131444513626522327533487989004076192519249467276458796184989148080447715665438603331670222922487351877010725104708723363504953892294019382345714091019272612219227685721215894054406585182227491450726136856977670469477604397282674518730542649544085951022846694198517619547473203670784440064227120310057029072100726876879143317345082149630248995830528179333367444464141752098753626687026683521415195222971996472741335988970158412834366163891448202071093490898692610425153119703589350698044581976319465311785858844355078937570230092598350841572341625886183655942520837689505185817921796266461054839086256518316758643064158175559642163844689611451859617556657874913227059952502293109766543336016785149686620390241611562821781001572525528997734494398902046064194194280286415729483051990388158455218779218209109732294956115391272963361280321724934532333589321267569961461084417441789034125545447401374911376754511716354567052212759472234962806678119135809623847459828595051613404722034429934441782527270741259752017414307654604183597560197482001990372364294001550217218464530784446423368962611978706089593931291620791541483334063692914244546438161806455480015135664421584198146995640345199453824790102028289051914365199179760992372401273759940693133664663693940364109491030001814578727370941021207444912558498078558596894182955288382394593553553841417506922648188021606573342816466362065263722644273074713950163696823157123344073214150751956981977007785481309522055486922210997869820065040691702089643477107089614274450453179745104446250354459905259793724629465470606987835556043764490228608227167809225261607607464156788547358321851622695115123346719964141966041514050374672456185920954202543474055868046782780026056078433575821171334389843833364970207921129632008321446900751937509760545910533893717661207202358167867739825020330980083159095575164924598315540922533627776304331910293777410490071318749558206725099509480061669552123125129441717515401726420445727663909170769734528513477256017652324312990692359687392884191262123444275710769639385486344510203566708759391811539983294247589605210900934228285177932691964275242114968367664461870322076147422647576432793486267467552769551062654127531380171487383342695495055998290493191339865450939579315298316590666220701549373033229960121185286854695004100757932777397533807961759837877867841700323720251914912718669912892158797110779874506329746439053141851034067562422491175680488239905777818159791660930408416654096161906930511154482847441022022874882183926951552185322192883920611452976105354906558835749869558184229486212498621334826672980628892079677229496143370528087368085373463567737631496706079990997298022093834419897121455650374381229797650985128823073249048549339929603955808472433513343726219827999230795008462039160515908303616532646273433323778736556221945049068381816193520132999382543181405873743132110568481137357931395439233573630507952022438902215332097850317826021067502460048967556056804700052900522509668358064086145203655435501286997205832933601437372696001770572139391899057098157866590118035978238673919495229944909846893553226158753170373929722562298970253744671587343547879476470450511067654015471219640323773668301368576467749548746481648128374379769381573408365029610930099683701317382471272703336279829786965113767557499298570312864325474805258266646855019254201340723215079511152247095856391177352364065091408978583920362222121432403050112347555355013567878756815633734104731282088763737835268153584944287655141770477933256958364769453682592032150234924527103952614216466132718558485313670777270369356875186040514012616955206456253848502697604152273618039391464708316140104055583485730973395458293076610663325489482516804758798252153470673225549743900072706659998047812486109454682050192780078217904493081963561787987297995611228838924015572838161344349903020382595211053756017126405679685186577297741885500302178414802122130144951563152231337956912860562366932988060923244062275654133623235274608816878066310751585069886915083642500816574118343375315977753287354453347740746986699380907157793470031605532302574133323285278547696107323360235870384728031702718386399669069795528514286645530018943535213669420524056927103452446962221066467928467835542117398163541653963624951388631474883972291892786064836973688940201426074078546691304018623185676418660965636290022681847230369163576612399246264750200216678008039527991289318167131966618051942219971327424586757388887864403763153128807606017408633784059160686460429789478496553002414866519466704921964678062384348184201555163137376937199351418992668351885369387831707539601136909395891915513217927179099600615983615676057105953844146089052357565955385680826626712286983076563210147609174383225569966391844995408274575145594352525478305992457551351810902135816528232606625206275036172722816375442248378484654341261051157617516339538706617829360523700702145670941225264331539057602506310855159879205280066765903408768072980821100655120412008396036068376725081723620710527424252098289987850471966579366489720220860173848531108761798026076751381448052797046853128222966574174016784424696861988404014404823973783810332331857653848886427696080233227413301636489511995353146319817721181682531045494789702526751637814255268213924138956320579246673587672602977146107646489642860543289068600221418702708725732169603812261281522230752107934452231535938602917162003144096043879478813597504868017517826550616809295549915941657047791492099695270197883059199826029337825054059839152960275560970392427044654045715523276919815261872881759752043206847090693972200711654018044211449591232986873870049159439064003874183138773314411752732661298384772550268977458064761360172242666050919784380413514295771633690666712940258240106121870265942101515040866343688510607245696388868857455013943936808411165877831624047315674262693049196680935016633701318128316536074170981756714011519562023524336223170149992421643929573650490613014620900409877852027511538954094485949626788313466899339093043107935020893431106496775217719652565818272446389686090725937788036708543620475178991798229214722353138648795154963898933685113796551106780876466544235987003553522065731415323799948488077964442178544758034716448380041787354972695536963748542418427301761827711630689172424403951164540214595706789685273960930143529674790495606254116815581090652072542691474224079916772832468979451939295929807070132042966889683802777053749061914870680137070298734468487269251004188911837346481433039808567343920652245031019190618605927111036649326519859550488734691104921335421636092046667888063980655974727594524642953783871931932616851128240318872413785671071239646550311122221025734459002864178381114941704379611068671308255387904427287072241812797796938067014592873179396326298357327826388021196338701258470115414277409535986794628930165878651504814900469004689324919418624631059766552438393385608344863602104013321462585258455358168859640038581231010029942292724365610017345948985032631418831913601646269678895839684131075245118178299431305210323920088165178844994574876188432450446062110462504328675840031495555122639206778553382206660427911681849562749828305780246707458363709513441212972044981530069699492560692637063419068786160943226060794426242585346649893523923029845956104346015945989818952376380858615435774249613616594106236703998755766014449605623540266058777009030217583959539196530285000978222794698775649193519807956279830322577716220925694678808846860977357784978967469867751953932885930725354383162508690266930424915007329192740751592715216600485661740987139105299017968446926307829681677177505628530086184099817786715457995055060842939384979507747998298872598269962897923605491956697499156380164006022947569299283326874017530123688014684120921699309483948642686259664605709764301185092010541048612205671460097557725499951777848358561758931324349361590511845426927341254552010142117333375135281353811186262355363907939702659345633173194724531871375293554167449454956207568370618140648289361836882981989551849634614747219650476783823839175346607485588870663496691480786900639021218800546440735084488410739801884399530271054289927702948749524422525339896355976874997887003270710980981787128069846237778470309782581944764369436947744090109844976477163429320173830744147028204384333209338500466615584650854065630807045465416344171748908306576435499220068566499733306263457318052879846202690581883995045724009019973088768813286364360370436117649583700026468404913200183559953122371904249749979887565193047726345537657079582361430077938874147506553677056281424023676292161476763701317219790829169038386273451919710952617538051359688280699314735885221919869101516120005386310471819921162289597841834779850281001989502263949308058241104632319533179086383210382477909619178843635141469887069853169348655544712675084164955141989538572862276150630096833406961533357872533634488740531504238340231985584057684181946038637900143864918952066222697132332973354502477368094866474988136827297910992014806204985731876974932473314682528934156821954117237112806535835733122231827182848925319549849454828643704314488383887539363434879179641389960898308569000500742276553350482086385462519418434575750164235907481394107422064159806780160466860493931208532711053366188085099874051398313556250405658311915044653898670800809313876909144173885560186279307742942397961792399247013491037993783851880329230047105631845307855921932110414298121514517369783736885989368693366152325563084498901161156952380733633389776826307476006099068745094075690386281674789076494424635724053443903199337586271461920877420537927942826740591528717616356897088843050697590786585018603787443941375284760545089611613622282844521392144122499715184618043496364451835228517020054192709097639119892319023847729469211248609915725092237594351733775264393235205896190110949369286604051823782320708735964398283561343722557726206957995650767383167775443945560632559461567096684009845907927463891594459156150613555367713745215817302107024373542157293282757018152711866252768900626376025658289240120635901935221139959517484258999251999233555230625776900369476701014601872823816576776935364771098280939523420328160120727059235861941280461127707125507326904601775478864264198168903950533407877370217393626307191819113490930393772576156898027067497559289549854801308314565471025202157634623017516633908179169947168983828107555248023401905691859222002724620807603349533861972328327002348962193574668648759632541231667532549669870698809890918732569234303957103784660125791363101113838894487878684627968524629834647294092218898727344681903495877166561679978693936463308789917665732938573151617629394805846348775150510658242536761905050488889278055570237288049981105756512332938240579285988997071811244732176622847941234048073096780853596699365909827451250058773082499773394528140686194277804535461137502984715274572498020295248088776495628992405709720388258188798257313276237141483975600579351070396899239057570883272671747690824071892460735527641296978598778579863253648681830360161251319541704088187996497983442489056577497284103335395656400403595730474249394659022942338127024291566738568464433427921960886820358298871841028679269052465659928837948151345342577925412014875158157329304581073684304544521909320332969828128761792681942807624234637751076271622911405252265754351407350763079485719953722832009788339924047508236773564253712642155968801816169478376012212683942870623774416073159573614695836064640107950418073467612766068223486541266916292956130051871691011460070183546598864459074230050862732114953988611828428950382479419813810776605418549732588767132047811651762331556917675601703030442064631985828353476871001950563825668990534860295769942196663084742037188347343800741302195467911097782473537298193293075772813866277383774252528931189247716059143622158555436946508984130980229212154828701438585781343100597328158704225742275034907639044969453770186682129919008970994829384584985209086551870810834540687457982821094854942248472536259870131875588415670823314555395875240802232020454334008537743317258623785054565252915164245075399500240097628626172866441713437412683146863480870948752893903871390003929519271971029984700993283456194437605909352283242462440523198756129109689699148658140759091872096999135182865656246888212413736755081384618761834103952958654379240190011166339890833111889438152605584875829892437373125298924389011004777537322348273343124712289345008320757871945954001891510910132037574804187450247425864239785879595843232030093543116006945091081995369110958219704327351418217003296472900652224942492470507364222042586052067035760063671630721853084186407060440992887840057925929713261862504733855369558196491842440931339102831194817522283642566758220145353235410252940089997511967594103231872819031655756921576243014779864656296562029622314949886412294120581320236645012615718326136530526217312833914950174009892143062540732356093533449577072854944470148310990450280944147669617097579858705775835150929875039809184414835020882062123957260114019379770314673899339766514256255799784346098308713159007638174760972434900686976488637291072564864153016619698841339198060491054064597836207871190597464281503075562719137425677252034890029357859485122233511153556616562183075481885720099910907932722730653035783960022618427773270945552155144041138995015542524832290879957120263208090371597089530784168472777845758802771184071743902434260576924361018211308474830155767125706833547789654144902823346306177513743054223509054160532416450154969326837134453394381400302938454787968633011136919173950493878413237478578982083883641729838774599684790154573354389091857162739527582152623456081673330187109529006476412970391725895978307488457510677737490694095756211946265019919869517050955684395185405375150512523741554865512118120830790932277891866396935449549740933940838909826173082130848334152827685307499219844263532944810123663703605715527539690103247900971498506718282140689718408520584909379545387662668894921472325404720412633799773935632148323915616887596920519143955289731122007298986900643215572116869347448786081368851338053186244611917775834163350547170636215823122238947185249953333988378798612924263881778213315425815623739687785938566335573031233738064320509599809227099616073542144944129305499379249243032222124685217843204982417589521190283301418266324791980138778609585543949335960034660914569541922235793365242594806478527072635369883260723754175637511469553960692704322427162010819494329538763032772470685959426407263889708622268617955880272227879293620965176618000092329702372708089772228793929527353592497224382736291081905591238536043328482299599926827859599007237644363976677872771322996434960378334845215351193978309696887692230849649652539646552950788360274250552674087128825093851795725020139225927074541659952836994460079122958764910811732051629773083257068120586180660470932457603451392572868316233366669265420295483939801092764296617706443372052634248997049761684659379732116167402337748555989122078441339709858898242055483351574809097877840315279317257220932151755607432560911729691030984370795830641931013150678433184802692675699897937813956160537558136479412819334261895907674927641363778500987441541034468639600403544753913814517853524937280105303250380593738643535184796616980167254311653995484913331470574003805356186214707126451425055238587839793332661233287120323059166503775001594608371547343885956301530185740257388393650992138317190758401315504372163942231853264435975143535582941432759441017515775716244920258553584783081218348693983758521640553043148651259258768956611522048468633637154362344454038699028364659940273909223659532856912075744079416145602001005170614288573857030213720344484163115704513756793143801391156910139840014404083242706978159989550906383216071736391712962892713016985307773546084939834629271647788919334940935487095315568283465433461359941757473687246958781470980661485827426694535290054142046232641546009151667438309199356568938942523364829953977628517688758830632495135478446060079042677797561764237047319181242346679632206339823221195503708154367476212051719047493509461416723875126519281541144586480547046099690725779552360754974475144556229227974928339906910844866407403615853769020493142329872844921544675460405327284681703689759166573935247335788367656732177434281853768622227044711071578462648067551636950613214405096623576928309202378554177824818903948674775834554440789741700921142631264896704509450193377633787496557943663815718413716669098920609424092528722508190599162044663310073045481734059186358029101353669568475085842436571577854989275525338416463361361180214228824341727560718430831981163998322141086098143218800487944834748415515995456658365636748953600107853979704791820255304314907992910092896336936427797532503946934667742000536094245225108358725931537833297973210360114835317485117461525124948034356069882511623018605341167361393908524825912255118418038263040702930864634952034617439760826062461184101972621982042289273994749625020969316699158991372495865487783575855094817494121659871181260801537156275525463325471052204077465030286081537013178271775124108621930365361810362702625799678518397051834217155825280817729465324899461069507605202149455791664894738423693229809790663779049783573918660870655455368631473937977256238180014651336017814554713086706279001235528412862010548822696320411744606548134325716686735040600388433899249180389078622269604174486347091991256428070103892124891037147171461170585933648594711290480365666258646288421581024276284456412784290551029907198513067993452705210013484707053203641250799627585855561470368532562704691817857792883910117563507368727371175486116695111195505030329638027836254007822595644239630499121514388184552001947299071652880994302393937349586433055034286099628347154853359863628920761734129217194990625120855176344344033329315349867794290396434773280961917782416083227452130489762191424781449023463996746487290386544381922768434137373571247067266696835674070320009020084263698768285936059447223347953059901286688173855978139944374104719769956002239729661858666920747683070391314279424960045576472140524483759855888716238518309094388748090318580029370164236262720417930146892808996471573405355018985001734966517735708233221664810842769935319327365514830097082415755333694373841301407531536703712275845205367936005795796893048618272304166053718553062594490581378353613297310748829568764080843553120490813156506597562709533518392214118149942922222512814228757954375759454848251873830128052798175353146957972272152753043175438091840066757296107677573061098753530293749501764220357272645060523993344681196193981076993388676681228373358573584748808877996107459469261804465354661471134487179729393631667745592712525544706349152390779156089166637848866223551848245327106833180300601684870121743499423213264441289098041622829364566786444380030533967068331800259290176045741949307717510432346469925916409884217804051036229631301502039555646255280706203824871330501759766445083658162093129176071061697742994508590525189198786507232404565742579789385418160844661259255064692824348047981714244973307248178900598902101531322937919334672906080204396687004343823088045359059107260155707924293755221465759508909108243187815651430594332692733492950551729975362506494661805224636551916514442031657940649355701025544032798273558742208559456259246174893926087407421224362790267902931543012294959669093755048571041402486393449899348484015600222357391715027503336411732422141486781478729254076245541752361717121318037527570336888059217561253451672366866093657435703864548589492829595173031727639905300784709973701292093568124206530732644138761637673092598522179960534112201886588910931679217804121639612051553172037979333637892108530888949419872952174833763372374919606500181538485017569809606600867349772904776115314172924774267720248267969891058949930684173106426557718236327731191485959157820151190668699425050566774788107470127019082837993827013257019569930595576951928912092818411978615246832600820067225539581074168360326792540990875063336648370343465722418432343966394931501968321488012207385304931851936445732330159725823312076351366158647402991987632091376545056573685296557374983754102764592997287223498679617758845244501230709988764267640799737730572629133916561704735117057057860825839626314195621126404909606777631598695562618289594730301890649711290231676436106196073706729554888753647942008738919163047810419134971247638998640399069199890168038462850828692706482854836050122485239331537375256069746628488433660400578020486092407487268467283144374646670966607762612752822489319329145881625135543266913552327645967171068421749636285827706682403568957400947421570540585769994600659608093377471085987958828321671131109278538614256786171581702096800052576942005973202002302020936652441889892530695234567212994467546962164501193870928364270605570517518984607756792067862227778263865541449964600565049725430066518915270494402293148638398720087568166045686109123162688657645445236337469337457913125240856358190238625890467657608533563223062564791859395157030948262671058530235026867902316681402239779109139557575275444647942676107888884130003575982910435681675367358990717068896163771873573062702730142623155688135759108704098265807986862948471601687470735452873494566589426720788695077065163752925407204766461359621082878145100059517879812715772684245296541328088328517549420094321428512381194840478192093978299122520512003390599913634343045195515717220514853118201048593912644275478051910263203122600952747839148981470573197086793280706156207279620148652123794332820090734094925000831417733738249254476005548298244115923367781557446032303117318348106493319348850047907618287296311633639356982703683635872859759784449149460836488078382631908197939728758795569776135044720896650312463777922185559420597656110298016307198109483593521456536894204261724726858616742492518310854234957012104108125867285931560148498131016468274074528858727728363831426158934266065236107957703021105003910650748496425162312754452138007543214905422726077589933962775110424210168610586816263551856732279885671982125786988100470242735791839250294265431230733506165448020446709230228631155594989380752059396635464892197175959650565213818867015091080446335708243932332918032619905035150000475635868334738525163057297003139232062204140222556224737993698588292593513556431718129321565757305785867467365758059014698171667065145542889231619736965128839044158986489256752774821118608056308869835848875033339880153036784951165017921635487475246989395362060040066089851351044624951368724734743518954208604195756458040703196976656507434974998476083211242914614387922236255724041230139087848531850873163773267038555888747032430296273011731213961281240153641624743788585885160709492711229075169092667387547677773920917168355403792367931308940589680044537188871361257074037806433496940053601165259045425702100124557546849129850730925972906920632152273507733964852218058644519057240200717996002588565438653916164584716837339604842815849005453588364637986422630154305280853075732066861061061285570149166713913032077491156106483629886310178725811082057208188314740375124076375742690880919106591729672417334134323156526994385606334793378009301405403260826493971538272830939302525774223374818429277399099839598558748353562855892841726881431005768412294282355802600614685278035954149007384682093528976823467060827936501875368535876233206160484408655604170718946272219739767851605237367516686280881109935308159433368841394983741872964329668111945515823759459358951150484242283539160928636852717293726966739224988300451473337134270266811739057813947180976983471643428825126474637077262562187298011505637290557041300413238029938868114750459341489167095598458828327982875792131015819291404240978935352573507645825201136837086779514127501203299466280951901076613323425393213718020003215302711629500007523376665242351736842746948349092687227463414708796253491168586354083078326994937845588449102986511374367148749303562427322393302552494783195511586953208901314250138805689448783809945457758106628795392566725465827198322510282522821017312399609686360918461030579978873858146652512865787091764838361420191499125251606341104178543097009956665829803637021465087211851301326423866048778390632643232643737381179045299652552405933636228174476657489733197122567227970551342240019769081651829374877936149190753696308227623663798162435461495948983909214406167573523389477791857757907333600562542614379409106863988137032456988470734783114808780279755853912610888559490466245704223343350431552819878504767612524365096056117713324323628251662061131185314730175449791339276717571498271804288255026282328676574735408022341593593057507345358752204357678110877067675482805482654605824289866360317175483027494233141995472958577626030852032524704583702062827582649766569353124106933680328028348638560379597257969162610656226803745058735184716640584321492519209022712166047330004608797972020503010849497066424279411376162983985817245175500442303180653046488094286524053751984457092019599824096532589837465711673809011374105798780982218153924626114634344311877467448038783257209818816322679891953242436530855774711639874584681087957705067649793723489614072981964184587160548357592689373597569299508739678647468729383198476643502181745310757925191747853310837189234394136004371213900425959116385297326273278677087766876758791205373995112178067697458375100908341684528526303348355303380777304074261190524597046811144749309247972398444502377908535572923017945650217072976181391174129769090185536445432210398136151521335368021359799165589885013374245472489901315745708025668064445450108414022712674953635605668060052953419941929823149843030619360843348576820930669777294075995334839804616581044502576446582837416822340664114552709681094609859380471603864047510243717499605718832361282930115013077546618089672496169548414572935834446495874167677493285226256044613295114484289701070448522161852749341502228204619361186432882247285936660865024980270837163170998169271987228200803385661439203525505149785894618420378794330441952151427644128122202909812716011148128168462821425539974405884143830931841085859420862353152027347612256469073566312109978666604471021341657025398698734534541250854950496812599273141361483060259316189434623714222200779734381103437148427257969556716277351786548610315138692373532983574802880926387998950166736847784393523208095282222742907153004156606927880632485137188651990249490352478057602149716181535001943995641573794829397584889889490409832679481845258735169498066601747036464435846187115887281436145028446230638786763139512037230970135783872861457053832507237733264082989198551792037581383024255903134080780690062514031177873111273885508797097270682058173364210328444726677652915618017284894792572237504760648456090294830058445399497565855798664629723264598135775982551945180465600336919152178468449262938851619955071261475734400181316804119599316874395167648522266774533539538489129989760003290713754398692349030906826822329230072910418952789479633685600329849662368822158232264543284096280534333055649899631968742942836549494615435463737405532958442635835231177613250870231926639105660285861280313963869377081963662988123130608246214807841632521358142093930706131526984049650469479184436161696147232247311561902317119362218109474112575788271251983577393975885838559052600350543137684679160319642802625750600688960251668838095837906079914512986207417041208905745758787867766746084683027468722003053552981106522666875813244288028075771802459096405677523596998448173350937276872420166051972673471568469051132662820480725626151344521112831314787761599679224262065949622321992415132532845872920090663707969304383444172436511744815734608431712085899017721252375616112912526276374234095172524195477350758755468891977389948730197050031195678154108948485946962353992689728521499473052556538945411192090029980051683195370374570332049092280377366233891025777163456879947329570548875419064645055460823271518424262991737720139042485820336634173756150233880723061808230173554996348814883810939250900963457702553360966854811347374580784101575791211025302084467412698066043907843013382328234738349173345290376071552955625516885326413913196140162107699672835664604275722100336720123689406432792827872676685298268891247662704778393078799575381478404953093033279734859204136881883681002656903325082852717671283106219917491828025530079581499394389987881262528928562600651686757256416572187002078779473964233503725894431514595272512306652269493688383070519403170702351795705565849245071643853447338748117054813165251483194996959986680447799188880954932562885215806853050649294247624640073303314023667596855497757390578356645460357524812194392044602889470924591081626327802503101740665205395842849392699741133119440884998568281268129350212022249771954971300957745975426096807492105863749519376862545527966115889395435050626516840329319643738362092813262526546705065188109461514017733240745377099638945545335620041555008401665085119050946921326354482103390230594373047959690272920107665149665980975219089802171736735985710357376604591299711360814825356271299496010090455350172477614833680637364120762990444024948910826433593616367265279459839780322886670978876260647172863632662027950383817715401609386347736742823093372148914323724590133263814999445245720096512660782241010746638477988315706935201473265546394032815464620054903225060564444251609749965594613249535008542193765018292525552712293861065717204237207848947095158138070794452755641284084006606805677434910123160618394427627401971421339652977050392924755932096202066674572603500225312491529357681874011834373958227168973353842822500787739075268142049918932483623408696614663191590092879958115218848594909619457175173626871506150743162864571207244720366509252394081066349248233819861224878344301303373897126401347709836796394347066535509638181909774798591230423241030152632358170539752126176690169362001146110002112283792645344276694534423600610133152735812050074924945380326783522320522187380829350524126752714696775874851609338851269388617082643979706383407945714211200863743276858873878458595974404556248975633198658994711791518234786584555505697280169866995849020780457624672249697246138071093340960190349455543433931385133189029799696607055022247498216185464592289768089022054362638994758254557800861958481778112713711849495489858555502119703888274016152138448075332825684135191902755458050446920201680755643216876951905096774693175575311339840623280479028153965632606290203069271054900009926216748160516731923077205952858382471399741645863107362860329372007075705956097162911208536301572330115974734307607815157372989480848996479495714673121489522334714486849971990334667198710315039040896316655520618093397354156137379480562018605985651420213274658725994786355046751751086307978489305980449248599323413372199620216053560672369635720519371573579127047173046635690078594971493619800364751808762826881209097348796696559158082052360424090976388795844356586004864880422900126084103790497886164489486520197637551684947938324918948426993087004658910135736083752620011425027897641950179719924938158948301036521746572322925760129506156664612105587106062345155169975685916141789248752462429157868944071953315461563684186156022856943687603983603011918196980648671843464583451248086410003494485347580368801846328918186649112614294822974379857044464342333756378349236467136783927381031869631251314839840162709962100427884058688601196497567495774293390463932235273211030490574867466154583814997365392700030544043204975878052069374329474757821426054023109417779085971174562375031765911909817659312190168558083675181809119667780782322437980375133051187341146981321158877494996490577759595543637712490747480950012583588483822456892458334964212938053409491683183553308644859125710811394486273516288548141075674378210833074293482266623418950013945464738824993984285444497185932652727681840271962141766309730534799500113644687972648182261895794122812867008683015421866020584537317494822608215313118224741172662242214969550907215837178062319787327084468746993565702737821503855412741340505105172119401622993353864783165171767115830172540782101406408210664526745772492755310224356757964965947723304899328688780489914772102491163146470534001089664343622208510865756144266984597015232208523269473832190896390103284393392399899645679065216037632727562618376755698998773546598272792101170545225094039202968320835806359947819272696902186409156521731526659833412116742547489028129663571805635821823134368771302314411664182752462322970529885809256574778345540883079432340533377550656417483321563573896290291337464276365147019993715602681455219371082548909414141002415460497249956161829111339041315855099294811960709091557167839536677497037014311846258825131357709538389334980903777197237566957486786610496968178397141998398286555935527914486521496872632771152066847263316569198175564254992108544564838135667319174399535366978946541574895140195694119676498061383072800924358827827371634104747359167832507411819463556317279272550138909897224398829342046625360993312877095041143596682747160892708208486106908489840191396292759211146321507416545099088259111149280100907633501561408174899414063513820860785842086361793040359501176310418989242540101583950972946215753730515892610625169662910964025933335153385221932671466357814494160309555498206475150066591107253723658679985155393537432878603577414314917352993376256686805220372889542759418680365093008640460848095697581890559416083803873767696026559769780062433808404680045282256112296228784926818715805456822224393962907769459628963735804569781683501545581343767532532445562975384301814749246041321871881980601418154359511808675753659927291922039110221682693669904697440260977049394656990769493852053938608751402656793485756578303725100524859897416438886982837072177672992732046435766382842933771608583706607495299153594929576067899995961360160994089594556043508273506429628198890991102746543348823083379875334548447435949782662987872905280413912171397356063921572603316626949326512762831579886090420448469942393452372823885850151815711283414119339327136865075368295256559730808791824422559679220284154018176509679691286558913617447305617197302215437601637530238887170687349559971455591754038599811248916525700830001573203562047736615411737846215370394050757736775635780751539898340255219220485959663696400408276960771840278010040120679107398247709944589367160527346108948858461710815473072233844050953870623599747051072099022436390087958095064935977560109369741264953924795800241235307244345307393113518657351422766738345230074239071685621670833507509109559978135132145765574985535336530264271071446822446634893849542497712342150322302520996363119000994790679366147998205575886144218530142483847873947011856378741701988897904202150424176598467829109922084189404277988332025034541881045337179415252107163309261609870252742644144916277081143002221400192104693051876945246591566519926489258372101945978510202466401252182160544443264449492474989855957236449149092304913748561336599539209108644461401966867743411958989244458911766658778254437028329021282324269915216707936702789619455850099798746240781040945133911834854985102057626931803765872124923518053793798879082013916585081207038544176338649405371854620523241436408495337786857229961988675915829824628943958187896809922211478134841228897090031058159641946956203139493362509469677473617319517466277611572838967995648895785940263123818551337029441643377119738873983946161428126922944190632447889788449082036538935947476991015147984859466351762632410243008732576357547500185920692086856623186206876113666564342402062640458094644122755927351046760091765895854079669418611008835536126270688064934826598290225058228532212191717456565561163809223236255972696627240345023810932219573532101116050401534043000867511400220992203134267564960550337078007825073528010206327421177382318172387264616995230117653156453224848326803565602831756701935572042862160276235438556655103372052070471759461493662713769239636934291049777598663609703539514957371950830904229036562277552723783015081935984635341024368652876173584492760079565812174562863920414074574441789605389343784840958770605506072732801348214586761762918666802358447154100278603527640145847475807443321358046919877303619824222867938929524748230665838594395287791181030455138161480287555622219371821225810582089295888231950204787318308210242804140293916221236478668466533350364771521532059072084908264883439474452188999465573106345434932744720938313533447793448522249731778285861393269682014551896558872102217477817260524751830891734539852064325294393821689069243165954536743196775939734807702915307568329980986099766422160307771237418144716399036083895531377284798235176740636547723813489095214015350103798468509853957607680352232503645145485535440603513033327230285988368329515135806743333998982592071641914367295356115997801012414611888950498691114045057993271380776588526213724155914460470538455440275144941234722428142640337666525117217641988455598551924121083556581625836066732487571770735243092568457247446376641966860065066611982357203706820646979777942958775118335361378455660360810346404282881622497156707531822371955134212686044192236143352793862450628883630832757248707524108125790866528818641343936338146394745664064345287280671549627620695135887345785751221626662001054592429099218893941990439365526277197356348029012199828660777911361115187944710857770613275158249567474036129496856522523854782646396477482133450768886394496113396067800423800130152022858344522105714347218717165307397670120162006810625633352112764935535786965938806490282436778769861894962963666672318879302583742713283925441197262315792173997396592143071106315342999718114120913311328438329394349139944335539355258037751821666835693094272408524247718693403691964129737851524422222192115684372507482213199580029432805610667194521651882512385645775903366248402581427039296968409151470325256672761974988337525621384283500358232769405306809072199181080245728040175661274920314372587435277043081587147641956781329187198873893925412909763097781187166754727986493450758878580981387020515109401577713686352683154961576052437525941460177323737111128790543086727760456043288882600759566717004432456573793537990991769411233321869785231514337454647708613593282217577640113271775491336918189048615341248378250050942653503000720926383706711008214837351049472379011026654510671150079999295144494743853733826369472671035708459183303096562371328999326244087121043041640409536977876976062021249130328488196036685610577078780508252641826262691147566437637054175443891681299296890936435839063154446822024598746120841000157466019859138947819440729463224350421984811592861907346040722254103100953925540239809955199834374259348253729582980100512250036437219597191208138642540374039001017099034896337429067275316585381569283356839534928919998289226947032377344700169216452022936051913836081678500158553032309763145490386067435421394644178788862585171092250245710606898558608809462709811419829118834948660639952664733183761833247237540159044540040204001380708022877590648869140257151487462723039281266115811789162445258510215527774236694288697501796776289580331194118440765120368656559650386176191048101566561530034434677476212456273522146566555907779857019131921563810295837802147557045044223597565042243118730370030790333577833371962097180493746812763998343629525590489830548384403107445444979891770057458257384104557857612807193426425549848471234559103623576268937188653848582453338633217684917189354741933474635897220308482595359727795027123139066963835252791801623797767263589198955143638911712395068156827086689846879440222323880954021463754874343294041834548418241138681890282826774557035692739807983510370110408918789795546435043322156419174331644436621172380964562207720274296397213915361113819636148009193591665426854885056655111843433287037103319510311890144017320376821338293054859643925534866275569466599512123177572633478340291481070193648096517700722893194766457325050599906685922162209931141447866287118308822459152463982856213293788234594428022085579968752663555499786554140930999005177417228487031906467669163014190112617163392615435267365940861127586555842595595499133781600215169735046446255222476754994596796665030768998381344785650965733515327666688893918108013222704354497758838410276906062640301909681867962679804434318348543082005638278076372465407184722697553876359921766481280854892428792160913668497666875742465259226739034688834134771125319103105302949232790499632670382544063893472176721826346587061870611291143927319773023294905785548400629527841364749309173560966237636033512461856156615700847704310646865152350833073759233673887409093532311926406130708817178316816950321128566781562112082024756104779967804993834763384663359807644959580188557570524857015557528264927595949841868731177571341869319497810717443531014651251587984112724167144835979803397953811093125009376138935930708802427236767889240210841171789239529098278840321558007643845605444663277478619362378354298816907863172792195516520941990305742288881066662924847899869488892423175791489225821902868250882269185796966521919516048196669199208101417172726858403458724402148835995272789147542762812797218971373640291879757326532031135253971122219001686439262300538415290925807241013530102397424500708968877892793411106831208732058536972712348368905917718586243469850521390616141778927868055204927622496466472206843740403791186259205884727915952155733322136951287300836094823575134485512053023852231840850523470573070388206555762227272161488093474303123665795158846555061818043776231081886624716287247077516903248988394463413209519687116066462449156488105600288899554068358812071936626193100452304380351530492747986161743509388432959253802645173189906958297792715288595049975915022724587666795408456310342330778377942501419183769007008475630141069956907402861602724098989929904179561339278632447923522071784573410749597218591375200716880823354335122242179512032887533309721236097988286882026078370124920380096748423692789353137839874403782803039315905314448571559674270844300973109195171107766570786018600953036925089589347851905853490084486910708489930051714670915331066300281341611066048094440279608966350855063523287926618741003025224089830163589205002425488206495042348581189156586558955980617679817783930382004738530309471637428576787324007751807894144766014714963162656502620701307367965561817551524307536262365295235650558214288705290904300036504225429009090744178928781625334350792253786238202654793161497163120605718107770195197186128200338632726406786534973928387889400266450757439930612047310917213439948387175194002685633864329671974075602561149553400287438062240214723548021159027209802191152482639155399283599884752126137823074311610077412374257320422935610897053547491849412413390303495797148754634985674941849932012558576297551652138462304306036233109700999408964626429287440582010061259891256051337505046793758007254100443972547670855526426307249152805610456474497756876286650062488379262144175625233795047272825483619530952385165064531758781376994900080056299732430288092557987629234748734167208830583266124934604658955413987856238298992822255422222454420771564058043606906399073140176566805388146431344696672463188302729528354738521958449905446961103696853012580832040339756320826562617500168035184665535427446405338152090627568305521412821959990676305698094218230095574706783310570129166852509985329822415152484919416796126290014729707301221281665516958831105534806102530889160908353714973494910699773949062390264502414630197904640129547565208402163303080335138805631796896591741218662227594877215838979131211392548441392855282122783096197704327077790085260738030745711823877873675693847108809339890417521700444757440596060300918296931052106241506031767554188990968615238831733464468752577443269315203222256395878351501210784207437418750622214945850400941906010564422198141454184300399429631614299596569938730691435445965171370995860979466536315470218980794041466534510184576836027303442514705234295049740280146310026228861051223953190065708021774779647019214279615922457716103254082997075710510883099031732174752041350699831039611207286554398645866072994199333279159956309432860606671227505271792422896589950194136172927402182231409447843475895535483626983462126855408689037672961619347995513636568698131063137655778019637893642205089972036092423871977148527294969537407009436713359893447492383349031301425494991374253864891514951939956200076599098017410064317563160002909961250479346062160243677255752152296727453641606813792103097135975465559395940852572824563731835299424149449261578078525980557622953426010317070399952203342652419920468460791347300957830305783074585155891450270099196495053567543374327646114500068942506785409138702564456405138458737469860725273467632255635243193293139215666839892706741673550151519068083866552459886696020822865242553330613179105836201991329897345311756053482553384608760943104858859460776113664217912638639102853393263422610810267536974523235199964516726423730580968226713776825142892870961123437180419786020724329734581029129373606730385516498761829731219838507136057389612186349753030469120404492186374550122275650406614573199073664105309470987420033179778557063763025992507998595107876734739706025909698109392549149159633080428386343013714812077553037623523897527418577207495749728295204728627370169960886042718377270444915735109701101862407552753130308754119307409553497175985547078520667290127403710068151126741165146222886989402469254281475974637474123243485216826377507966174623211217613898055348162757603521641189074695800500147525125790343971385699912757715036169542636476325618631101618239723354320985787689025811732543789540617100526984693970293217774403641891665055813352881947825010726377651065752974381846723594884006343632934174777923373259503376483223807971625061530332772949353855292801475227055173036633583973902505079354993539427540698426167774049602405326020512963973660399649130402077091671800346356041320499400789626064704261082583236224316320860876179706297200157360109826518525459787917943627083844404988012044151591704741438993625491280838723905038537733012114469098822477763583950817697516282177724182203533121848220899553627466687387938941190400198119699414138670766063134060345921036601285986573753661159006518263717584143156930898027131928202483070086700805956750502408064854578426257890773139172008399284986829908460828366278637756216226242618304632243029645170102960543875670584861937711199483659809859716746350888472960231667412156899723822684466904721051428399272547611675506104361148028286283808962193766615463237392954766527762743826855458468651320803334976784989674772184228245714780746304031994481084958826776812800457516628088679803056448012390074900908392164412537822137412327945887375201287615021348743966431778229633530803996309623772211220386923320289669371648971220223229312973599294120262413402949017569619496658244128653548448982724736644992857297735296217555709061495152697186424626169571042489681683884190898858669245399243041891786707933562920403060215914994787267141792146050746386505131614425795924946790384913208224182299402914384749906438163885211612324387024169800569099467399164389018719326806153379704654005380100742515214430022125093311981208883195486727746386849905608676390986730517853842149175082227258115748234611543437037153863332253896899228314015668034900636659657803973827025379302692945645636843864855836783424648625032375936984334092511444685804132530141090684710586446306561174293777317805026950429778276418061252021962933605804857104191548128681120725065239474334916478499494090722136226393236579888394266800343038254569818927077527249787218831164201412779273497234121419496692258989259916927890173384558393791963685386677917368796051086864186328934268026522192040579650264041639527475107408021536462242862870928930013353321986402193002230806976135491830518155086832996622519979486649896932382073614752460004558440319129947949220133059672651915001211403629016514312046828236451227743982491900519507271539705944433199226952060319611760643159878760124434442080928141511291729855595647723540463380098886638687978916269074955949068149051760381946506902115866224638971419050828643436491193324033582078615487981353634441880268950448347559546870991492679271650856420897263078917943267379280714685980283928060484604185073046652303566867419628274552167950365484039715140742820220013379353970516382290099960158585418367207215671998833806411156955369176120532883587728051125908307157566170448726170166427211958480357030627866679214007347592189928471700837941264312712496538163278372743218530479291113395246340590468732341014666354242615704381662982982615227375408628884271060256241000361735530003777487562858843919851037523766011618282096781222301717670885258282680464246598306354247031633805595431290712840638100896104029123383626523368576841238345853302145254120097898888327786398590039389548904822321865120359966581840649935874536110699489898671627965938849491429427687402608451905764492623136741169049169869225332656178015994114567567227743815816594350402993480654894060016413050902023473211079966583273887619699958918881691311861395845905873314632612408047718492805411290857883421359888888583696021832412905608061466794304163305520933626685244957265837191848767960480250015445783173177348861388199197846880096856362091492783443257873334392351545175828220946926733433650321286304087300678148997528481084288147238951314413770040768637046384869074176811061405952003465655429325439384360188129843780352876098502010849464143900842605672937973722137174178177742946466355886144511509813990187557027015943981759464623518617429774147810731863507075616970586718484199327003490399781449900104429900702586446695101115807325109285555190645314466822028597714491771419924453308352140073307618794154166146249775237070172079359907754508311906908288651358989415172341701275192038987877253822020505553375372580332844022246201481531659257662325996529481829332867779703684912492205231839375654006160905059744923917866271328788194177664156572287155499656555834525503391667707296534988225702160544849444671011837415449335058332635788508274923265526121771461002532755929132266710166916503854089626138342556269534893661289517215591651267937104645459595234612892436975426161880575385433522134400448701839039809236582041807550593056160038870928948468440233743866253920409866699303687138478929986099820035314583513040282073216051558325227022815222629791850882859930548532181863256580403996971369779395711189158909887537198457824744316086788623492027698467596498589920704659377583549080768308095416028587583677888247616979950669971004261617867937031817173670916059131460375117988949712201815839527757112766716832046467781647494777600966485197598481947542354995277440808272412302082173186952881272176354957401777132134376842850416472353277776931906842623025718359463188732455196068910134384218619782043612701150968472860999476687165263072097965330449060161785307750142222528917314538980230073960377549810090895703110136157072985540261631087679417435194952803733667773480953918683348595042156209114213828953360744897905806250104038731084635114720120726509118297395635085339805897417453428970636416793344055438452948211376372618888078046574263264327019078408217321713436108375379191055653048654595363542354877849579061085313074485962921158852778396465478784184235250712357988891111198494417163454886615284639896130658467427939992141144255282932606071291449512796553674015249508660819413666748894920236944949423700352904901991551126783638412891508874023496754005778637671034991243902506422591134335106637692703955110317445216192472210699529806777319120289027696905630932782715233338179604503249369379727293191733977541155948636603677203686255499533274480736148533179532508357275718365375654339201333467934587638856825508809691726228844875598972120493671341788996892196733097750669733712964304041213642413461272772536159132546693716862957503508248379025229951116727973087699549174415834495494338940214301533681156134235559614396423390246453073364276485767799464816779013321328928609626766232695024442651170781788938873722531585315978373547370917283876752367355847608080190930614276024150370293930803565120471094590363992881189046134676154703651525744871646700128101024420109602741519997711147354222058658903516711899487099003956788626813061945055191634560058612323143716941422442688568719647964011595549551487454941800202287506824988416647220752648603201236773105865098791818298706561600149646528885365040261049717515763981336941945245142145396364344833480841579652316641733654032367525179480604737028183774142457535770194122640048115607056686771896884324698674205066120068734780589269968804594967205435409950827471000829528040267231405792095149199596971289692521267823515299016512285032581794602539070612583599884552234602268300561909266643675126115010186427090341856770282590852092777073463914596862454090110196367795512820678726688411180059687179589094712831999614009706029229364679189070301329757588454224908738277093119010002690132966579287231226232328051277683569666550650619073266488612579187599675931367386003591423028016009747916429348568503366219635855295232438000676788981220657643984889655283882044515635542682053364921428278819009121318909040056255283468287854921400426275900981039338154105628420897559115477656321467662077297126668437727679708052713232337639327288792287603456464525541185924181807545548982606164239788734897102045360883064934808868697944995422931089744391062053806770456769233897824862112329087622144134917040360964492656480465261446793977428400401274936092400099528812710496956180394669695613020176687960129993361217067980278386988171388352994560939734863181819752053994960613836477078793729980745855856305554252937724969672943824193527257657435096267602555710006688232176844485364101431685450090062655673743916425346033130369029464690103147953670528921629543253558666877762334914104386422954760462783520275628180637417462688057265284890767614610040959362205509888957419431818789117361805299431139027699905151055977043929412130039765644162469885267745240135910287379634903884787376043007786204585763002535421458204182490647454862382931204982389981570862132509452547957763043968501568781115516430500872789162721968187891139580899834904513171796157359132414512228086953563026757100352144426860418519868205067830057293004005672764103479479089985583316865382407200370314378653356203622307510072977460670730187381247275204084937672750240969688188103295258942092794060131414772798749824603609312336468914750375331836847386316001130410331466304056116622379428271689940756905980289630027058887262287701271236874974285919314954897595878150137430225756227592523086129440440194470146571353514813899571384197470530849926622269857996268743101687068212970493261397667075218751791512493980968227517065932203376508719158015551310023587402928972901011048752706096947462928208214726115695193977531364083409063399019227947366640286327809130090289450889960846265562572526243166408908039115220017463238613787827976793572802788512748795418469904932783311635035322750979251003757514988718766878366398571759081403281468426259355132527252333413413838182777175272446489197965190034028955680174139063347743054377145609303706020111014237241904444612248924285259832325657203407563121168573854419791878627054848858732579746120699243414765007222165807825759645141007996477903157940017751882217175465294322177015664425498004877575108256994018025920516588250173310326666468484281499664537828982450767520786493259252469244864028675922084838475756461838359533398502379723289683470028349459676856363688463553815126613175924504408085561250052913154045456962049945598509025526351438891623514037210743825345435646126909228707738216639570675859155441804099464256176689163035720382044537984198594967057233989290265753704724292269791811443044716955967513799446790546315325883892170289039205552284522133143778931274036792998797170781793724481776156728673893711221058835749530918910071419356391198641156853304136199861626148663051255624827670624407144209558979097376209606790527437891155812244690294699837145117955602216185876037026724282748037401203104526851648397629411923790558039003825615937648867945920135628010700624707745217426020764503263962075839647888745397608161486389331911505630469710478052621688090477904994726004947588859992518036457884629182852597493036587003935496610893565298213491574443696401636552385008612829898538265558100025536126695904951109140169089263932271689302729472519977586538347752446890337282929075594908692339860970423572470057556955673715593489481378258415199274591097413353198646514102716973424337343151221845712548418299266200841786501770945355474147257934515001167980818441792980053271828612622037498091740535282424105673048699758709823854327268963505024406267587814863215034079014707143310781854028883534402573759362824392005835910064468010099097282462695172407282288345155797190343235031482524585189848190211859084645652920999549001670106549191564737718004815625799508452623406182669873544493275428701528762585265703720689812493346976635472797327389558869605353701130131384663285382472085834083416080740905494973521592141963845033058301937997760623655775213980563962488860243322939435229262448030043112981267734825042883134987126543350667425673912102617185014297607440788049130874092552911463728990835426363097071756888587492333494811005260263065437868474756730040050656173795757857409020159924144102122262767223697851149015939774996404913850073794436769151223058313270309031451262151288817043087585687817308635477594967996525631565170405012771689536677415425670380770813974064750003196500281243333161688844768570225402103845813764684510323389363548302719384564622096644544327139703843191858040617705535320771789812998853950183398818690212782584240763471713642724470877552335934686455961300357377819997153493180987336369705760189583907561309301693198078267101561949273911986062048947128399171280241346068014511871821566208317517772098631153676582077946098959410542347609198835493121439561218640784685171596185299686677336260255886464721801019233957920312298893637159636537886311486681796985487255365389383150912778891309683066786773069906785399051814384038588566105501334058170709328709047868667477687489121722483147216996317185492561548563652484868948495890431925168384143068434525447790388329417476306704051950509732378916673129045869111506995439169584845771720228301523167074113826842261577274125020430128563727715996948865087856607990198465763078628579699103824685799273303750372872721001995882381959008482861624201946119361952289971763667510208508311534229514978038957832341844594039674819753606154674961275145775129985199066014452212290448309026337611231100294702244671230417523934157208868101045407295802194350744595668654579807643417893098240156350134993100069017745972411509443741050019861812021117991055156882783459004502230591171547272682630592949647261770089666423778989323974415717109024144246322177281593409311413046982368649559178643645475242858440634425278160708113219069920362897122547611839259462395220191503346887169232654619622998423666125355222815961016211563388611148868334218093939006719196196396241220898027180488133927507611611506427875263511660053444761614514241623763530750929130770262714378751349936200082935733598937708198833982134680248179760391665954952805864930350595605695087433766445562163178276290529800313594293852206758607417262167558304788700955424611718423541184474442699556129520491246184486890224471856138519254768392411134103162632558764458756565585164673845890607479045376712069009546459314813821624643407334139814606951932462272906253771673400221826724942896710316533121904299040135771942103932788467455322144707593017000275102747803271990481963866033989753775086544447913513109954751773780823979365621547918856027824991234780619594807709141042029687821743220486201613958125117834178554141695776913546534273865192172020479867798957127116610922124716223412730628283881772504059505217695071477811706691340696148355127388458147996938382300680333596553230053594252406404350579509465178433703283741130404844364437816963449417835188330107098406438618938364659119889476564149351630481349976865647897979485268997222937026325185562837764419186963109639456113669711137835617828088698888725475092820272636436794153396118307391978588496797054669138855457832561424112371161896228010507259775050757262809204579274548298296118717784786327411130350500342799469637277043588668543127639631607665525949116839053321406765796943543397429948813085205666907394091535179819438452071766201769231968055899132907913151208731899775661663994057415794067494901668271374938662748155633774961689373234425016952842406371948743436343307278632280089234088678311183278003243659012257747182036678520592633959890049772185720700708621952204003606009714493820597473212996455856887763535572919123862572519830405600831503063333719243615739584318785892904986651413481930848806210325515778942620335292980139800313770961346710110413810305914731300350010547497093556751627783482540274630688971238917513459932763060332702912538624878220172148013230511134726311545287187970691559165196743247365178567268352322049190089083871989824677448641762696903322869064594628546057941290045791992934942052418688566974873733415165371436312413951509522052501085573607891140515728242376429690252002618516559205399017801508033594093121003114256351073502338763727807135896145155986865228598935888864940371686990393844357032752608800544085559881074204588754107788794312499997019033082445447887684569657779051467725143750538600392575856895016649306129333058540625475777712869475052873077647833645585039560788512268757316519090831198228380310356302251824000130847507937785755200307419058136161422923544213609910651675684117038814532540911561187502589799665814778781538736861343518895811194309095073756513937544029395568588072573049590843204411364157284129191637892209000394900326657451653851886472600722597458894037242306868833081952201345798940317537461341987686331104309789958554406058735576821895798017378550130538862671412056236276828716127879718391373278394179835778231926453992492491309823023547048849149405731296064109423590110000205846665230078392415436146494684149634326955283002252069339887967507074313919294643578672481378754705862714980116585844605245779785712085708934783178423661778396174435775173079841733981604096625630788212993812789240705379892457308473932292000667461484611210500896682432742441629686839542218339069331921896350376516488524881526003010675602082973096686347408013832348952840790076791651359567906080593406570491961219637806478226824039812610044542332989577983162558585851469619979238660351786284747369440690045056872586783519157619044774562352870567583303466943959415302717509758413418785351894600565075448735522586769668598686407543891698748068844325537828827538373434938069477868174446388238449170474820552687955185008729742608439431468669468362558426541546086320187728123194078507115352036206679564251346868219777907571728547174714717015679167887357277612818017620629712648254346178852964892691901510084671297558517439722187616834175636830350779675207292460488607913437832872813458594942469830933903756461763799057193441321282631443280506128038766948551831196497816765781519476557026968961144159542130687067906348360368994182432805224295647326743759411471931440076670883686751000641995610524624905058893807570628516254625545503995751042036590419428076074656719627546554428238208026821564810237179429623448118067811956423090536299761151229645728665472481794374367632126895103964193198238271189661913629593026934826075749884119367884003924360131084393892215153970631961696956909269243168748628238655701717461546740952403625748343502366879850634281866721969899971651508768819416283861294468530625384364939563721468177813431598136137386055610138245276412905737201056114828095260672837614172101859624451343747677389154531885169252683613574223576641524445041222173710649293314996598454285525822135541576287706120469269654956447983393436142727321244181029627132417869382747854992142011298731088794484405724947065105373828778165990793645039612619415184275857027961465495674775604637514608705517065620043504496446188696368949022207421714783794096406532254015713991007590444595066048848130742606759164585809634639932223241304973736814214388696674533081289422016688397387626258732364385334242860141538757544522121468974851805361067703388269253590591594644308266135013022788558680860020244110953866544106477029786294668874540373070513938276034802130055079590556346972326480365069134870983543475197399962593484951119628462987101592982932634456682204130054143000346263132011642040912321309683601640384300056320544819378532056206984072118751010195810856173232949362645296271259840050060077137838245369534715632261634388440568787432103157785833844816587868603142665163838183729818541371551536438500897062886479002336623199096023214550303802984610022505506738369221615853309162245214402833772223817100128934948394466044094352113097423633350781787415241089134942303276444850878520014491740512284832248633235045420358103542084659906999120930236849924309820958357005859703450042931661023377556963488408216779964799792110094758524776859128415099124809769914757344766321874213330189737241058699186773672220053314550262033368414413731078250360577227678370676114845084934333330637455413030806231678376514864239968314855060819734376554838412912189693370699932052720994418420064018592089542856559376522236318021804150554188444305668534658793324621701390763852704354845675460763595254718676739188534368572510248356954726177635790650199054824328929719324950931106163185906977374964466220766645909784768115182037236405118067969314648471910143443333112717384567282611905525984805813770271504984038953773842814292689210893436897678328066030816349051624738921950252852824043398912499446548471246461483713281476590213341491041355589371124409031770341118585621472188510264914247683185474808975835563070857380909440133060417019486930258059330331715417267873373835540742100571977558466101032345777408184802760265763792469997594037930410843519310916229212705018662737873246403536611150893527445415864446996616762171183476480062533195821322236414020715947145884580135541466196533041927998333653471286376863173071257830154323977140823510373444509745330411799166765139131654492817329687628380461356637516845019237899541192242843753039383015036566983238833592908367460083620502722810344847208553812885953422756563348131614801531925849266687743384691086797737011067510992489643791995225797241047210952339319968628332532563523995725605528726493819925469197656372710786647207186425765870345803028948618431176529888941962058942606014862381255709683919621030375062625251553210989517185853965095499731344667243506283456518902134385677659127514716765028662300835926143898138113983587869561777529287098837753237459899543079135765999157555887306608450367709992242743455794864161684933043017978212102101667200927034192464648143103812932019905926811414435638919767947531440423092634855337563027669958886456502915393059891866617873038070242741472356092207402186635427719908692102303046096651976693949971053615966911458740708621543390380110869581643721610822673100747844531748648894219753244872386737214994370406434894803884609791507181003132708280146261455114435629526193118047995849893709824614025443279119328381460902089924867457979393339897148847327008696247128954075067799750700592447239656930055194005462040199053446516400627317802686119131713272081810151425058169648681147574464047348651975064111261618859730202679131685361403229025173964828485546334289770511548712726472014609298215702167871284270576000148893121754551226569863923398100968024195990200923118375090764357624782052629552471716691961362925744743624442025371902039103647910316435877003918936022371152236770827502725049440235018116692616869879151420029937446318971585466373449939374417440666235694357441300887316608254786952257704628807882775684921807710531769885748504563437564122052356078642123451782036049766194734943800516929200495855105568395598215161033655258153270361297800940408784258998332284743534366969824010732169233661344813250356943909866006641739526402321296209948743213719362437059689937981322942322524613755491200444559917351459437550531521034306522361955999096803922412658114107466499076019258506974065285023927597776307093320695371500719993150913663856289520543618727885489691022089488302066371019916834178153199629083554098721586016055189464699013363351703818457387369225774571378990497581982010945361667996386472756483095450939734272087370630351232669728704636321509563673630183222744708006992822593825050304295694719771299714979561183326682805454776626937551933908825340319764653217534862815493612359616159878391585544704592623188657608812254632020094408889834635434278779312165989328413008412361502392915525153690464646731456658212436043838744719515818157454447135572994730542680997557689666522532237203976616145139787304438849726819600678763826364535014343086465606361019101807131716203970783704552434796461950604423510273838325060116917674976012784413040762539144767652712406916348298060643343449307366528087873949888482096426510386130716028437883552735577433270517502784370624045073203622123449582752166072530058686808033011846810258640929373972641205935083703404471716563050479666800573904906533578610831579496658712353900451419908522800500628066901694203594053091916941940518648677397296073070930495829367913790600207571776314262516938285383003727643328929164632362420293041910162466531982031737000175060109596715382081701861917542441898949347831186137989177551929294663735779759378448537798226267116134100981750806833531800284153460916540078162379526676498120538704099607505647855208675179897402239724007428322561235733367289970580938585388718036294961710434612261056861737523604731343416912384237944442349688362534140588295734884895043802979677757544321520528411370369681799049170127528167261545423465188661136549867001365350236042799695576281632888056826347437322523439523686724789796638628521854426555358469091962440269881913473127666189332838027624037001471865532820301383337123685771834654461873342981717130260297749314212320366281676697169938544800519573732559468069968042278926878508838278403144994119360821904296186508330786952496362051249991006500552824063670535842773688441672472866648551918117585290642518945107131640102021182810079777368713228737325977618986674280287805291361909321154795228012625868039565237013021467415823474628244878494315365753532081761608137905202714009335719453218806678759025667760798815456138665959427547157849774282098020938711832515384795485741144050597376220927695547474045153020088162243780831362588275663800746038730340218860183253116756303808157232059920653424561681345329713354427181151007565193573341904900737568357240538872658289173514869115009587691593035181106613907586817074403148384150830496583600915636490733332187829181782355000044552382798081698933009508954268209596124717258186285766723876572073483360153361878155903863437138102877152635820872356068226055494523823294094332715900075608830034414241026783377890032103246046577178631555690165912990887051353429667541735647893806317281251501423082834043081575391707306422582440494842737542702889315877973865752349697713103296147911174569665559929583938431913425777067982880923410164018399589204974615733873563163447399816062200824090849080006167476495684951312202438020257047964059917682440031814763321539754870494698465427943489032590499985204683170611857672798231656035502833620508519634119564274830988771510336198957909589872504528800619881594434241449329593348706513898969373132889302904523258442273192512335012610395694421192995994676671109473184077267241574086318805033727390369476428517272381003115946714232832829104818073826618071343757532912922556765881777843948202293373602937909327463568322894765579563073323041025972866491688407729697454314233858437819550324997577261932978256549821306561671235615321233336628651857224272619905217308813562655764030745883556729373085118412645431704915444548932808262663004112365675272228899987502358610729018296191404235942109612456516494660814137526820632829547050243064574851827355731203905696131049617880620912168754204383944964870939980275163660925414771346660724844300901244020948430428112739119490777743999297835628127364451004958690096223701935248366157264611349597130014116183479659961044471473729250838586670109882170809624332144249595309866993873642024515796583615948188827567438940018963667794322180774571014662722504941468724548268912218897438087940826527306606629007696913637700547783048366288993432102260115166125263278078001498626951176517439630063258928991235383159923786391173711646710608071133055144311749550614065729225541673545792381822872184839774631901533382791464876478901344618463693495502626039825439526768562334496697236429968086666470288909553801620515690063654606654321646096318148692703054951974903403917203520006522818448894391140543614909500018259601026227599424629575211201080236473131613695536945586858793982036663487171841520903477290953672349780723560455561635435978066258136066914144064281820525247427614044400070612086015285782432699046596829800542050969313813411205534936547727895720068387507994269589992983360672038778256829053406973401852863213619355506555559830574818858091764803306850454912953506356134697924005280548233748608118487441788162009454778578129858955612501339952769758776454983983970191859731569309520054426294930541927993840631823180079775083498391723192595079292984811159546134523201232863975318031813172506302094608766336791283363569374259181303681399603997374305147672707116822648396658814842085563027757313015488435188190462265884046424005808090986731494521193460921062767584800790209305491227716559344320761965253089382319330034884645050617137872779697961360983229443594670003164688944974873217120526313353918067911392935820302686891875634692420746638168959033373192163066310362469823937517317918369858740741211632521468750072022112180335091881355486405440925258318014594650279602740781240695794219539610215538854228016454458859322888959836155333162626336473055325557753250128814269363103156092319597579256526829646133771070832068185623624950743008308444066074972110681589689084424184855781809543851347254504635161838343642493921934415598957031505899676940886208815350899628279755169394445434911354753987119460699681342019773741777514037843427836326682180489880805935386256865201443850327012043080215681526448651826634519157353191065208570797029902057144008714473877171147501952390364154783975856136077037027298446313546765164660690897184507862997432241328413700604582098463422717431919680129699809684976001753151779113058702885076149416822081528753086525523405310131653442659071229094600944461419057674398118504877393260044028272589538043176454418232886466686923682499641281149511907918998626911176124758073254681491545193139354165592509306547132145213036474900643920716068718880455089908799163704088023828319178735455599562043203294054859707376696009659713796991490640062037027578241463687224261203112329630905438719144625456090525001172839094462545765747435058109137542660536370685690439868002322490954798859460979974489030278217751289147433951518569054893080988650102995555194437145119029909829007457283857829397886678929718544807226693009379346693847620354949565269865582140982310994827988777900542236357736607408671561393511508051859920122116416457745754719579811335356651573660521264737638877137853422960924708050764586130414457925106983233370339933392619779584211662885139530889364414557380849645710529389393426329152938553104655202477499457522573438990456813139513727501142954193171214866482073590878857195074630657666930499489056663381830055193471911199567339394273229101614650033207270908914522454810221006876293635742652797872068981161347316940713765268884485887957741717445578234467359713814673809196420306586175242565393905857496764381115267454785774054313351004535656325160670881290208084415249552065403245993125139511692344627947863767845568350889225124998778644268102877796724507054610814326571854896433315250687214068163727812082681427169381584956106954550218082822745451446515903497202157617120312284571058326152585228492939031419893046279280269388535467133246721961634376753253107306772167631525996935858753278923513209777395470601205437531578375622197326861524426663511319653737093273288293718474373498402318128322495288503174693186496355479059416482839304918434404497300463505985784945357069895830593097920518448820296360278038240285640867037434330259994210349024913133509977537235379458696215582630471744119562888324448786051054561818182586008894933001622286897434715365315486304483197039530005316259084393177540976476782419810841122459712326251567973346871323920197157718940990989634969741430451010170253819227565114741331872229132160781670554613211356288357597257481298600342584892109096789695129470130893805782134791552872714167004154299517721444789672723612212573899736461139534637484612485485535767979470955792620225888980585923339553387626383700787890263607444984212735177343992288358692291676108625487545082451138967237598932191908950925624625007435521776072114146760469737377193180102972405751156096919004712556010257238393211607874529184933647532263576653091063369385874489327468247083791211942885233657886559847153113212598595681837318922469977276846995159353609355485256221283466094153815787305351908784664807360768126179066080171800253267825297001493999338101430214782222008556467235027665328306605330002184628107159556949125473305356188987652120644705495912130865726284014016322247794065366974489931384861453670721690095329502419871245665423650885018182533902053867380519059147369057307838672095589683521838030396243847562272635948568098583345228694084677676725045175828983198117166530380522607763509005040793282055425387277426369278334015395182326981118876233521731244895151013684569018767133037450228232598318737677988721818823637027061167845769742309701534798287578497451899945100664152291589391073073193612305830961672169143171160408680696813376562539732787099964408468175991201707632959966943293803449337455130762718987493911017881882002256447343484920815478217825956774951605061067977916007016781468088987604062186213256939231798171279091673854911824179589673127739885053433474276255679629958320283576577968933840507197352889591119559247610368407147811603094483887372313557275610150212485721929642157983984268783585261492052290750954934967633857065007135692772428215905232158973447233814919708370674738478167430848967837279347821777966500710999752842904102635725105768471893769034982270188021441728951537837404012926643213242998063837004740802179351166731127546882594482804572018552568876770998418602100029879191265912085117704864657163140043047307159082861144264323543491368290057768960733030121037081815914956450205424374873573043467894982643620815073377003734045410032290268041361178714350940001543564261410563770411508365997395962076879878265784487808509904906261071636295417645386049183320956697893565118988462563486151232454252753882792150340668852375803435187623088188031690157738184718557830929848882505007626637483183792687487686413347348301542635323210706192963365208485664583719253517422320549418021916547906183500287968937787805656997492527048681543800133848169824152254640740606630946452253593836424256480680304793914673754883274939581771380183771633068891505163008865074679852319253201695096353507034998278260911048413371649363309589383094176126253836654611406166335959981417147053449639668036901248616460075979725396905469100011118085321979455943595091539764276696929247267821454640257790951115596405955534714067071658543081952236240791030766196299864024037171053208103120336227489499154171073487046596337240300762667317536479089614641426764770193858152535234940358377965646296311404043071850944688704940659314451316449893452381258436306014138753562708567350194029867912937889657554839196207620206710141045903294219529903448552828299976021039210882222382375149340332407373636518793616564723954724870306217484249784728797559944329934034045972141134996417057617594397556828978510755867422108599573849488296225952475169244091007049118406199600587475374452221212373404740191698253736336063925320575232007723952221353029966398772658121518940582998533291006263486988725898995456109342670911389041943475389499460173895470473795606912454562772870635690060975857547475648853547565738244595696901472872566805667716785961177334700525381608726421012489603534921560076648258403862799660421249018298142272503202054633944892854981999121448101707885214055510652090262338919194367869348229059604417267118824404276148613272457578269367442828821157876989453046100003116452335938746769519626547465828130174673811856817461780756338571722197822572309556153432854247422315586929237317133691752712609296224613228568953865746166946073177164128770654979950575175861848030082555221971293168941601015670940237932189347141679457748784432076711002374656024546921265600436014091244097472808176033768381552504620076169563375182701057216415989493944485266079231491584934125471184033853874004087257860599114722438153931971345063556756047618161620540808206797277317927092746895296614856355066102606387869777520134574013006808993279205829845479517817709605468066901571350140112982761215498075376215937339070268564987354479278422649323407618999616036436213035782353439319021449224973973635897312710207215978099018361766551124613295467460247925599463461941710479608443735154620231316019457726818657762705645391045901146157092688031947038143865039296602975099401513244055390507710983011331416144793913329590770926902221865376624474733074435345032326008327071881127385460595219470401163997574959473938597763283168527032123373283386420170041207741747533763033484675719858172618623048457165550806446720310932691741644868812682696434915466466791969060642664064126592645688335815143197357641854503869554077476036119837135426356452791725637939965114808133723399992618116804030029751936044309383909233926231079567013885762640171965217114162689256735465104947031263237823788400510817866923532429738493822611813340386529697564668544432030239462608816726526961291415806961634095067829844103939400801499438221438020142480148789129791671416925087253439745544980949521012908963880591623572493380801084681966976760411264568590599678093931473446782709974504041050900663863647810382931566329820637161026097020684687273265812006289048646800076863009113163972899270518673531796307457480655687870558371617970577587417181309093083594360040255875374184167575766317999303366165497230721569156910597212939621484604483519411423470663742587750612116089427260580485708169783248016605650333559018026727532824015329851180516536716882966254941205983478676389496319594481539763289494645228126580140066058124137245963037619760221199834695339234999984500365261021699788881959923456430745725394612382653062894924112441183246333147989683166446563751152349101483647806410599099714195745201456853247234606229064644636066164304653894685071802875329306646468525769549562563590553961066719696734530979273903945186080475368987684959545319041686940652002831774874273493938325148282567735349085569724872211947417235698849728132918251220674997044419237206390216433740535315714048319857105481465905667461000673544310750904865694929924308624762331261018389477595424201731262777811038008118504919387966571658740542106019379716980603855896119850160856574206701219363177235714240643193878781976136735960307541992842074775068097766153591931214610123333308262398072443772064738028397193211842580339236884751575018940875222595488048606828688662731956353924644085680503776600453482593967255680949531766023848067719053861592143168086976761330348310543428413524195703249519430777114620837814989022422634619229498156192028284105005699542519548549019277068717119979561610062693955378620975735074471128238806491553120277104079777409717069204705380477605393187713950337952363323590333992507002574060269154768886259606612963899969498514726529911094471230917250053621128064192547006749246989253516997442889495585401572387204902677451525795199098175407068954685648472738615500776738810341753595809998855116804122834793804931959605804635928521765519476495497122366663034592407110798780726262798340049274087389464251225956629849250973435341734166416289278913578326920763126386063764111157530738245716328887466323838183040240986790197321732769509203288910120224257872407545277908958938898104837887964384631403825867824793990422258380515954497127182795157719928010418969353296002809589004642686100337120256388155495905577383466467906508289274821750140831240242018692817297701199754034138053750921659141418226650088242655503995360586989166913267097306775181889791984399062099874688471520334688029596027892303117967217632071312816876363627433777643948414181463861108537012128577064660347697650969459710375340437633447300152170536349299760930686521033253713929165632781268042023087036234076594222990371314855720547491282956971598413709998522142874191313424278331728267284681948865397261174365455686800033811619044529642058904470982587844363473254253849664677843126046490843174357302223028913924196936682104923389184855686014849423866046446234409146788894951093966519175389237772306017185286900091452507554281720148355529137696071971671268606832081723689966152204615016877923130932774360994118172243742474155000127448240915869103268631617939402085108311777687685723356551368339983118174380717849928636297471001523078606254383190990564314403881832855556017364351961379890444288279970273938148240168259656647168688062977423588026823828553318317678438329544681765521818561105753469957894713362750483351294928855470099556633257600921835129609036319973798124705669201611181127839071675814380243417075774101578979960191342491437442224779753257357225724714443136791558657542888947546690092406827445690583614798338244775474772575103111843922692608484625934252845909248763871993030949400037920596920247764438326787479125685532601641261272633642738950007398026524812908359791101131362037216610270064958931910255308998837329232500145901300716390618662307083586218404870730381969152053716077220222303033762372638542407472428875972140182776102641083116978852948882392554092455020628575578949478025613819437456361356327689384008225235618216506810353709731292658438951144028415463783458704094206738697681696967450343230365904376123271239581686630780337708060493383623170200359586042877482755809785155327903427442297403571609489882901484305899199425625541975398432615233053307675914806718886239598630985107150601201887913384250823423054579799489862542215468669694733072203511121808652705288540244546400432770062046305864929806027970154387538871091390931955904689406718274414215204907635023856359492946944615737580789122363446988971947627018804391972263730142172906069948845859558573379073474337119691573376858026076000758099260216935744375883546046734646981516489558367982146992753360769326283124490691902801047217852054108360805535824873611730805499597580475163413591032360638009513565195418049675849006391477506237873312387187713548397508029427167983322925729237041579950696271750483457344903399324580793074812093853779134396715364176213906391155893493871193675038640241907877744160541296577712199589681563572089220743661730492982410592452550978815803812678792797339741202080286120870820779306578965953048316119896248776229259175734540735939957590338293037103969595273517546866790895009384602153653175872319805628255928783574659897909482705876851037562720241147376123344179900923875245671470958597027691501035983913101994301809019820882784436872952630507569902229126094704026921225705542624765374379971714489649601386807764222705760922811786371748961012836600980240422614034882782490183998759018030490306539322974380203876455497049345893584030300805843294572305956353289290883904785093257915619025384792484441163376150317179682023783057362497979022942566294344457979739111299882889261229723441218816703667344934179650667237359500210085276312173818082182698651248841683877821261269633474206867188949656216099634237133021342189258600803519742947593062066575091454186962817742792156081448976099726347590274900434307713447250743373156653792373434833812132318587099703531646381273972063251620589816421632235108785760415698852424548454799003887650101654587418527999245741280469224707909393452475622811118935967123485585962538054828817786258799934400368414356090294980663473438383575044076133869955587542447914321739044447933112209190246115459461820139422382454121316777249335942603606695031177886532085812029352207290796189729097262932206002237141671177688612945790100334397660674469639307412531085647710323798237496400178729270072356538733134069475808595403722689379399724514310726656374314153373302813532144074303095333423261321949848431902198561444232842414462109989798499082056252425315709387792961390841000314881369175869289049096819281708817857889078940795429677023683283381174070651619158399538189947680578583303926433759005587305248355418679230741361777300553862322065749451276225989783940017966737748574579020095820078710409815121779950853117699117365500609616538002460575929875812461942596206819949472352357443139620792571777482988415167336872927390965103255109482837458387590749658428258476276272528373036651272484568094888517759821602224313334378788066212856859261889607219906608324164678176040329441180124663555104059948610803118666825756450300920105485385553460052691077720315769708890612438789615312867473362451806336177769897027230855483112627173224095404529314839698478054118685050095118981641097293999782270347138606754028297321990805457998251892016884265949417626713885775643253159377934142430512059693682331798114904646076735436006417956946302755520221137645155547783225658214545785360548091649912645888710817574048092762604161028548268222514372591181694435925620813632148699975034370471519452835876011614094945304865789824080795275254463716958981476770101564009214881219564916902695608283546339223047280296253162434593372955505842367051478311702030902361652299156834405216180299146101819404032678256444337778509608651275738543343866764944456648461481981306480171132448055429374366824615425862522191448953785397013429536593892411079005554558735663060624194890488739629785498803932266593191421915574142208240450142326308210886653174528812807867068162403570068955189620974388111928442020899359049300164351288474890041520724125430957854699389748990795990263197468715088549925578009582464908041676179678343849225204894270734882605870743185887313819954551081187884940691425901531909018511514207510649945133204197358537397872764577257595920815606296978745054015257050763011435581312281601034911789605070751698790028256984915069322415501692302551782228707517337315004232080311178486756703771292992821926396024130761673204601199327282745596890660615295213353517277851644224074818463117830035310085871280761945558668421714323917305328986140638382265459452886497478865865744780717108991391846137646973812015096174364459475273281806819951381844445206330586764704238111644694552180756952616152046340135444134870106632104558698386263832668976301105054314263251821446140909196812675157594389093660661020900560263923696173891705783821652471572492172673222660583224632404893772765622556103717288333148392754038231458515611117002517552019225908273481503060114743595406635728730988373389979089868720187522627925303658634024268849504734571801761866534971463106305361148112339066511676603541156121439714419654744545106273048943283868138119911810687579780056116475496687254544923211135257169703029195440753221635377424683160410036089531431164731867856093160167900392347283907025403007060438883049176611351936624570985304071975623957843930835836206920175224573648358600863617619450893579213179984862378345054868041522486137489331081200150495494717708013558860020562841924278367601626664184698038767653544706488762262465743420772038233967658245373141745894793221670127355139243420720200594436762901541900650412439862937629441198949600663469802325380724156961845348581221079365307257604727018126377393239377353721548380595247348701034306179544873931456652997994110387511816958566128856488215801986263564334998958715084253866878393054816337923924909527522326438999361423833424596953524406429089676335045535172581453801333976665095390792999837139336896975218447412329920177050703339167809312630172894516021904633407346126298109977136572246666279915496702937329610852898989513052157962652469201080672632598272461509909615046667215711836145021129986966859940772260199654197852079771181381520774157265584374694414340092748477939531541997205088165415152173502951545951971784799305408587628158363301329859449643372564562158921147583835583991529509516846758306183987422248235820518630293339016397562579195888655491166408923238538299927166190759260266011984401941637700139084275328472305665359279834282482018375289126512189601114971777463402624760255462809629453091618990693466102130656818601723448416495129467631797940983864920356183129513121669721201341387576097996280923999305398310224842621635151201565498438458148792835114750871516555736179510043143563699486233367507870831119832224904926887504696925244625898903198486302079205388084664602906718641351331015449556599519338397394261551363301044562653264045353700214963703113885797723090621486024403749834949877224882987816553861300629877556838447208754169215176136418360751555550519549083111700108744161955981221278411316221126777235079249487642754956026200389038550451786483330840035095640065149381825684313367947932914352816332049826773270843224522829045718965843816961356671357137719087081837524534835086878582541093497316600620724638256357775691259104793578273569540327263554792443017080232272218794210320818735653030741814217073940733209284810197951626222870381014433303210403669148594541930090772210442166502395939749304670574811798541366592767108958080129006072259199680894693218429584084789111096529590518188952545359371616075180027906062688555262946587192286387538061781663516365863491712517705554092059213278696401790262719021298301998467102007693308583417105017445631532153748073289439521837660188565666531413398280854199639097197880244714804337215088887914519408813458388882388481420640192024485605246246706491164339490622853766720965182515035863096505066378897344740304679486632938473079164266690509121338057528170057351444322131549862803457787965797720814953457452026446154134958076307344559933020079534813726910181178677745609435234573338397286475214140208274815180991050584705782276115033985734900415696237179392463003112655615496751415155097275584790003587990905110903791679062165432639205276378323112036622928359694635051309810028489444987201372931130289710602576011565943434006884440019839770022277732810970993015367131152451963510115944036603513528931093126349001667798722097238269714643318895433431679230773066551355789487292829065174726695066536766041510732644787826531922111650783137468807586718029088691104628624010059169660954669499440265099831614000735917844661297566312895816361731122630531153439542522566057595658555604045636435714112877002690597398578246491998571378260281736038187607417563322473268516132913185072697968948433362086028938955222601630947665564819305812130236300298369631436894979681865757302171171915536471836269801609856288228172183627411455107684981210388297124763530691761796111399384074655175391243466757951058097542332059886335756514059968076118089310461530980639533841629111682085572391036765856001190519362979668635691150852363452066511408874918973604581446010273386716097191176203341486585601081517554343259706789756817587494307764101181220914715806143043199721104676003511753205818547410557601209114869475692154443457372401420992035863463930782301021606442373731077676433773420556103836313811927365668109521017054695707907080571649067743767248430041073545779804318498340765007313107733041986789973437152086395777139146304888064808424768399633222516529054443721146796127737687522031243406975126811919022356162555126545923545317357514066928377235598252731807037220471076427245808607651573262314539768530969750731694948576335647824414808946904918869723403692378830466881662666006056023361851371481353356703853732377711334762753786304387105624026156154307537341124335768279726581491905370646582931751762834162312629771101742850063512154884949674856209138991379584062267162672927226362641089262210399786284956757401555921782308404043642130224118140110047570692670354876713312752231078463301354512470137683797590775484768285066592755345910290635185426987185197541118291571132939104171102637563710258026775995753516323597278917527547754503279617880756532574656358024084608465239461753225974037955316429024120990242766555080602272649026345617247344827907427180422476965054002625536683973787676448660530786875155934432400690728252482603647137608253205078606568285156446967756521140668429590744155493687972370576762761630748017913875017972265048022656035519704038387537350586604550714147901974137698922354806448874711233256123383810328866418897258781179126825140270728624965334890103721861645956210716655211929665339902713815201208075669126748780126493294521222700271842740933213690461373030749809682289122450229899625182161273210798976607250639985131433598580044623590671741209885538223412401315743527940390755914211042442557517030785636477051421895631826829055538271319807730951640148593737771899407192767173511806237277701838500697595233427574163103349868383223825498857748992752729400011932845351692264212499947141682629742605435127830533985724444706147705195337542581428908319763709991705126190243244287278993783414850907233469545999439475792616305316725808719788341999894880541399022160811289548309250587421298242436609444776040725656353133034885636924604716211227827878557860922078050635293854786305061918917220196382326819652858174021686877913964552068522740513042127061367038099758301333364754904286633644895577930047622160118540782898589787662944450917814839849752258297844397988641666961987358832032012041439237542285769637823848008011509865534794839141092448687509057425020092813883651114049492818879453011510553108510594810522993688536462022674488677470805296512307246360410484902177593781588265077047058186406026573632631486843717101552902939647168956903786364297546528768101866644256693951523487605597683014927236456433232957663599133359424059383781568415387315528374632375462304468585892293359255647504095718519475742923888677778779012691888715102742339387095675374405211356572171926056940217079891937634678233628137032032981679279755211306653003969830390529116037053106947686450933401169854204739728997213470544305969055819346745736146490170022007019415297559794467006520052334553068107014470168238738203584397742594636374234276360506216562779599505249511617880948613249497287137987062168813686034914792699621397591330598300743560632936745092780053083566075223039071458303256565048631987002113656908802447866650307884792491093753420750926012640456131865342715029811235784135112709331359938217749377715161037303700301092038026736349539580500212954217395268624083822164835005563822656809593551152420261667435555256422995424391150261970983492760180007211284056369210253727732627467723797566151314475244672626619983943026963337777801291596393966696491092631596072219375703407159263392110271663478788684310338466999028579359517832208968265512774324149275223607642256942429115678799039651271936255071327883516789246617711106189004174839892709345285121922744103203844955610482754974760228940900017659373847316344823507911470233003832888806737183887160603709055027340982273311612626959501242082364706369284124762846530539756526114616176445959797353073036707560860868567779877139199581310949891498582053806172625497387924576499495108640134648791408665937305201970684926026126208909099204940354861132438623642591627440163813827539931752184879318183582716604480184408546275515461956483410040483110698792101831609852889676774048305212639303980692644513402215310139048910135279497036823091169281453412055565477065221985784000392626788271507764959728409340488675410827873724966688364640946802057439621492504911122281278772906722807013672165048522394248865725537086509915775111176770907025704249113705248311123438930393157342725431588396126941959760362323401583422250831092899715703628040251257773017531701778114884948688262194947636544101699137999319414968585240024672858613286241245089586193434043053891743873457762015654834998449626793202717321799383837749644405453917070102030798466528137295434112454072713014821114885399171056977475053061158234395958832790362104632968848180388273124002872641245732583130600074935643982074649408944557145479403545757579698604834444500058848091403452361834897190817176317116079546288124184440095586716147981372388211764380759190579402248384386329600532731295940082945348876521811398132805072098224904612043683077976845123987462135250087448320758958395057915104688300728167554364330061106223409271696322159354560803719863542191885170564405421720732679633519174574969492870756130314158592477401773883817798069118511382618313400965872160366203454074841642163132032324713486490152365320077355957241659137536928187010174409695977234806007751383727862654230821889105353669797814428832369230111970383995134987490866941681754357904371973562922491347427508406830173858449752182753166142418474368713460027259248103278078190840061277768318041441665038441486596524078332612562436698848089607414331305999533227952193536994449975256053567388514948218625800755131009974265445270801155711265698113068195329924335033131550548551818950770321878647895165445792313583468333568960724473802078168980109501501371130987150390522006220907320949500684584620771155695204193884865389758479309168639592445910198221055091550032005638651006939694566581886126770743262844946262482242721318133074844884852101805782804036368173351054122428700762354397782644175153500625467306422871598168585302175566258895138643629123071805522815876348276291619602651593613747285158242876724605792289789184811665123052756586545194331030071932526619129423350825805001245977778446854618868157926686438995736552897644439285797347565756981037152332035166877887199938332786357032043534543487081537576362641747952927492285084655138150749383962653166899737201424378859809710242595068425423404662891886739124703928913494371072626484266150101146493642662544890807341450344993697956816534840445690015159524946039436098521565806059119713658818824947578641556499023329630743149270208278508305381480478982400569333048904939229607140765229237435600463802450257375585072486418211489593881270412958240722150551407669655251934446881293113122954579440373682879222416856781574539156290357963651943298150123384149700650708286428339695407102199932668421767932816473580528901128169619963210859851765757596920506826081161176247914873994812711131655936197794783910966334506852643875927278987612703588962386258540784758139279644746986289286439734429114111646105742416735970152063537256676847576288015105289351411410701852908787597120474644060141618095136758192312516449826093933839573665427370772352858453205085275990315406714837757028833645621813836608806238594534740295083226265738171287352461710845906454338267210434694328930320967269259536556571622047459157167750272494862567787366094740352387436911072750659440059809990924190253660752281907759166090948813044807532198680620916008711307506866938973836594878609215005289454620843978140768300652134295144197288609298877300963216085546372867647080643435525560277140123506994593451572586211907546215467996270802416131420509021637025128361628238147030371374516579401205815007102057272295330647658081993609690589328036262869088033121372280725207202216916050761837813011470757787102089170452703317991058063681822709852081752718300872424467978845549896610965293474443463751545206438405229112310688532555994734132861518093665877529931726328180465548532855590569742375581139321445119605750186596457270876743708109775786680244726959003292794900482181761525046631704851680620135358866482539358624754115933375343813561580075896190263697652965673860199848045485607060859067825380615021961565777947106212836104098076334739284638041829964467226263381130744390480547414721358273502176841040520959527592257600031756435494059263415901337590957587494280281574919145862028447080855332133830408831949374761994667181611335474045205433790217308042170386384455877161952044620968348398948582793268215256929714680444449374705564307392530879913363487876196381546130905789656378438710644879070390883998694431713071414824540764820454622198541937100404190567521093039921003525994452425430785614887490826923971935739934157544320461908203250271436400102321646218300004721434990441438335328904037216725922535563530162778055470550586642501071555412130203539092508766727723483489922208521197598160054083654915665975377119881532475011095393216771000750427990028865981665659884280578543719052867325213415840937565328564943062493636384317838207268308474298437801538132501820557264466702324131828027275561845529359159668644735308854187563953178755763398187071124058744862666787798862498471252274498208826295583346838820482593589316235351396373210977024212568819828422940903390120025436933740688949927760237974019401916190447599234244234200873518182228229820016023322563637181518286884204763764927331073906199287459079086481036622359653879910218071639251397999197800196055638143615303994921135784674196987908818218709470707181917019748346037787332138229110117883700700057281480941051269472181705147388622135664275788397020333184598886485301053109134024534611451387266970174482602563533866412979388526416511350262709634037486884830692826873042589142972433472287458242162633624029790264694108928145092628219161623086126132338393329760465080837479778775230962658839027920476514253618586941699317769386525871372968901754127929487183910582682498656146530954620301961112023138290374359112947776519556515133369897576422426721910171251409689680904507992152515831657899929307797710165861478660456984175104199879123700193397367294520906944144570115235376504041725396500305276627316904805865711391561910554096516642235103795568300989341410966644676038337605589077613341068144170785278334722216781889673828229950742391828055591699730131378732078565712710665519705602257817486586736309416510171949345588360883753957293560938103530433066895126093822692153575009438651952489446309393909603231620746822217497804264277976382051850218566837986180679259121730843562340346012673476677381597214134987115882921081159916470664427870424388467878372880715118253409458652197500035228625392895161572368331350206900914533570783838888835955983892222066866108475417639393051394028902936184770850378481123563501650946316273618422003473183138192578639544064367366222547895836102930689547637553886560499033514318721787748341982943250112435741976924362026611653934636656736169083335915190679680315476967797836112674702770323075040691610167519514669462102688787368573220286142199334883954671393823081104097848772294931562252430440615869851966031230281806315386660145469518296561444750000616127907326670441988574053100396356697958786717107677441200121236552020790390601912417109996195982005711256147119964566881897401816764165148498987554703500118888152391672253622876825518667085382319437081122653491111040945357546238824304026153310698910197944650411464209741238897957818485738942800470944728187207140505609587457704494080741826541199714159017797967719674014316293381199115296902366586983587181516179742999140841925590127538498712827282674477998193764168051203429940871575916859882541078003074010314143774493788129501607694823808787664693845832534039934369830445452818163947054246572308994106575577923465769768804821350600260517599424755919759194061767588244704992205420548851142659309634048625967884679015271606035405402146425643409067287767542639107058196972485692177172596679499032877268931355537677502220817627409299544661063462168100632081477248965665125393731201541470850234649355105036558407592312598375702289994455961424858191743703366337161754596842464262350871240134299277734685852293382954956796891494516666405676760380431046087983820100770121344355657055618616012941671270327254514078493878728469726713420625038503525554752658804597549673797132174715513412985718952941227979955803548060996696043285227745958551138765748872904686169052591519443864402602465117809905495116234124453799482321652952402390686606114853272332839039259433758094792160927534781945388861500436799242403568304334750005064207812168375550230345735764716819178227607483223068506809455070835830821605153811337946601922544058179241115631504747763226171419662894810579209142849927732422670259051013181208694336309930010335768772881043502609472516732770482699067708140235165612715603954105029647718895811911654376543524618292508498499619060378078345448681874824419905702045561481817991222747846179230805865796165407487918382303100464180492652621386875153140380220832292911923671593173006593431295837891251809270895580057980234693165561498792656501519670869545549290394133403169507610964293282838523991248486003639678244511169602911503956124424616540037634772983555938399178270372034168516492275712693049526732563572857199488503794110490219594029469865046461620194960402800348232871292144582780254298010598835832790240209283645398632191988616019380379460381747753708655532643861381064355674384013771797178819421228246385439831506162236690588369479034612311565332180440353563750138057813735216097330074319109210129563339515444120562727589107364016828454989707794514252464162110746164312106851906802883901795784285236310746958854778110634329081732227196577755881742900355910975645868740322700577082393040456401470024863675229111281617338819671444842166582221732965644425489004538833565276955920203709519782991899433971879033253339777869794790554409415122498839463532724330854623051120053210979650775495380887460018942680606076965622446947064419134957555283070006848606177823664733219133786344368120073359369538193326660661499205513468787230678832495805807294302781715647886652916356543318683230110352392199929249576845754410906314357419441946081239486210257421548032473407351664946233269788593301306601696407918313406360690963449514281671969577866582642137494136738340718546824916364077362624085949840528991987830727378601988404521061844266944663428757896101398100599734909990430893581714214740118057606203908162080116198208577347019459651760061883967824191627754618675758871454225060359766270629081990318738238275727880579564270383515196388856536098213376809456663921696564596526823362922567032128522293567825147557475065627405580511359510055304924971766506961502148252081662031145241062641119555245857067179281777127405365432502860266365978834275140332506828963858588589599937958481662504231154274345603883492182654084616082888913570462392526110033186510503295255613245236999810882350165036189278074917248777076061187895185531407384533420205333703812490601569977130474883518384328873828455375230344599761723163412371532533445520133797474446369664230236845139190064625351724039539414327278301844069344801583772978598452417228244380878814095551430778575791378650433169144845621536131868554750505204314716805373247162991194306675307403649052147802447350654654684056954012900738028034608957750627553428157205535493217523367200763115162069417448961534568602383058773055389009254926478934485800838595143790958024678199100032870537167457451160701240568966839267722942551451189964965994259728778183066285900113836587399080423240905710746764946128114765848175371095996231059031507862785531268918773449689722628207933117277984206759705774591311743155736571133096091305658923944758381141040042405102809976388910058046725310552507319711036035526896431682698559652652517173040473132394134241629304950020588948880437912378347035247734551999700803606263882707659263080402198299218930680461882601130582558398121907105711778283621089040628515182141619458767418808541591250575220162120232160590925730074985976557547468258312969499817309946514908353282023372503762992903110395412406752025625498487776644252965772469553178996056522486500998917169063761792722775042957221069267844373302611519917951711233601333862588866645876155978594892655653962469854039809413286635863056698215496907343867782468964309088473727962370623354994595462716781447257708659589501188135499943293557840903304654148369698301319709180350393177978995374594672545403048890867969489156826382885932391658647233912205080264075609519672381867762397600059656540405960630946186603427711431502960745491959429241644058095083559035220888351153889587319400672264188112210838036041448651749301378676492393322871611826705474133826140491927459612803075364517795177808836021711846805625468038123395220986503594544163939808208815540147697186073741690277055774586759916903999552734030691846110452966025640811990364726899106488339341744947836746682984814509180976162485077221254533145534696917834249911713547179904584390508673749056102979840264962540549083214399429740170291471486366738421708087513827354459319594039097829589671756890204601791143925266195078355429354846239323124002244590753072664909424715906436926027127217597605295500655303296392055963298011579213263137154424260046137832933100251171199011100384801459393743173572530326494888713496919155152277004632373219501115767014951287216552247374479392882789289706137620608846784203733241112560435467207852399499839937912736005421429681962292508234193254656372695254177596878793239387496080060650406734399175721519386824486038529791412500498875970790799784976657480990478400437186530959803127385990512967722902239069570002530760396373862177919976167783593953603875781376964855138525186815173305284249744466313089904783136010014102087736629226843347783114518067097644205930093615465508821704343468552534602437782045833963211759488878936285019850380363544757403411355924068011189688441570956751279117325206459496464033318595082953408679681553523227962373408214181826898368090346895659267514707279906454709836652982209131286366588022545080888164280932606245455999447973169924494610316030588938472787178513282212189829084859895932856154567922598083997743976508245783181129968045789472627724182800466574535479618881223995655206917052840984881429936088620656709503163607813160812171336800726292404267151420536238444154574842465720074682438280208818009695256082867074758391552161667001528933191856829613145556915745866031632878563842049058592239902676318091659208210020891020875274066749570454298864890671295761976839779339852727603742425541412235577013848642422457601328406124909107945782954601341941823599076871016436104717853580292516104068404544388792746487945070126760461832581729122628489664444976280510277873768495639780386986778956882905048174088629270237803234327732976788778149444196393641934416695253941996105438175514825826744018204055175291549427328734286989761690804624816849338230185941929953910114655066109529394619080478575856776573885916337654527857650723216426763075060195357065693736146996161788515374120186789108277408708828064500568264089493691719079066319028453504674686166479360739148412015298050387381421451214687663643947834906199226199424247477866728234123080756941256900057557559789433927907731244898224460958518301847302828272536702975337703094304328725722410779106954280982610136712537427971090621629195393113628058486402263835310024428204167310285669510756202670915838650045629002577405370124402728558708992804197630673333277732747778071483194331674500754789379664251146681018635138714041751651834985740355145692362796005559319461643040274545808679906663186612341112826298497111087908495730262440555782099781826467267776880676727915757092033233407435510147787246426388178899627250507659877613875158083598595702702175827567478727595151758650663633939186595220895675454671495672546835619132390490427249599729546314725614548185072417823896268786968329552446152075822534979514756144521068302654480504791200910538398605018200847396627621050724533036727928590089902088739852905056108959782022329439739011056803418600360891256254565157468028830834311949346139208660316927963381021932914044646612370912377803390193825207540726262498421864321822870157811432522913912736610264463143342402205315442783710716137469728699165108214231908364704384863045752946301809574819759465068265793605633109970429242135297293820853948313529423927449795386912773546884550813965439442276623933732361539622403546711616259088092636259446406626303533429746850963101506842664581890498997096547700278263750037258891282819303162059432097300263346564886083090834832988583981240044852884270736310462546502597969543880143259147613589673971042051465512808159442797396338414320972324614572803634379444180024882225593963430606145585645801982731008903530841941841338729447089974706593406000562783630029498940948020827578012850893004415537413363518745786576390261019038555912881455256275500465058966861473805944330350661569633581261938798742945285262876803903830923483953725485832356214530152686481693709361884442774412651908670037836563190279346948331374134991742047186119477322962366825121051550429486951081386391842273582942970403490396587294570596169392602986816838910064098422382629121604182913928093234660931002143004052948307217544698947955189308735879053163068743201654740692080183451767031380361285596405999318414817167582863459883333344410976602301801652930180035005341612059881064954294683866039625819201846701770961888275215475734704489148343515713910148798764316688688269478243757396877445424339179095102589266498300709464358155939469424373674011595107570510903413359988004427000908590516174880101099857358978089751373957388816280100129433280433962285332205102275571047035595376507019065883069536725175944500771259322801210304583354419073238853330569948397187705027817985617485941441133179476284373771856663900459718455577820853991294876690008571993046634499163727201540436212970183556150674865223123631970633882602387024116829652516313299017560354892588380375403345087015195955920719163102477521315303039587228309888315349333691408595020721367560194160329839159743067446143353980087459005438413392812772833464048773646633757317022652834263887592511547059187253343266131176998270879953826810334180946342794868679505486403197972474792811383325732905763962821257860168302781806487744592077453991188506212449249908911157306569713459487286469027413723809844915782749750817848695367371062638975290242446149786406381179175813279130756137978960273464017137269598965095109449525131614782372079256321202304711965359134345356121680934783812498817937300951790061592925688200378991385174293891697496118623424684589013392028681595890845161332711016047373280751549515779511583327471824061350940956409666289529645257348237796626482697745899146726184493799138414875601303118266058045365251907521145065606917564170286717965427819979048710595626661458211042258828034230096044762363156883034388417379151135169750881314302530656348053106021332527846612923903570610914104326337140410581051915650685106493761132718271587344371357144543430001362546851257156827133269898963948184050065088097089259708409607196849790736276807731734668399931195860016768740579264514553112266128249433994888931832408871957865056964764753467729546352571203572855207266475798708123039830700868326140306719506321300730329289833595424776342771496930040143306205946386757649173882496679590070838660829877696990474343967586966286837610543715494731325088895180194056939259973476684465920172777212886686298810730174614351390773683312631828568186762872287489766180868160433867512477285929915501458740701942929949126369786887407234771652824256380573555064955208649175435211688997442990764931874223041121114350811091679791322821431561407317213276140946607185928114075303076353282812686303434559089990247326954070862180994104137616135762967931743254024256837899528129072600751588292862960292911778466085544082996365453478267530230325433118242787752922566863184653731720793460193198332466643069144425843316106265045537657525841105843668988140510210367126098470353695916007763510086781093034178134512007481583776424371689702754042077254180215388042807959160914678115226524173397525800565724600229074608806473379772525201580317290821833942452759456052516788652143924750349664262304543494871458171504911060652517146962982403791672271688851985426216633766284777883093883886177781247478141179849064368286817644731834461442191832814983591365252618313126855822731231740844429245796306589074130899371861216006857244798109657101040711569573903547543501595681311715096558465904869576776726311650172648062317233082844425977302296047384085645565339858471036382487016200928192834852374975546629224788271640464411638116979716344902823613904557152466566054799128571565323747384800533813724287483989334177387537351663364492111708469681239957601386935530009072687573243449760499390423413105284678906451880968693644680492630614258381147413580419907048415884380001488197828436125977379880981580475813619413150369111360051339620651068300162823204772282818487050520485658918021606760015757219587899883887961422458324379387352666069338317325025518559901734616723780537968227167753263934354198682189071404382155434402644788966691546112931556548678225957680873199025883012048179220516177960110605222930909923674694956243374075348346214476411805798891147040834060919799472111771132414719679042337608918064325762836830333061215871730039729900323502780854013627169549939699695533599725939445207479292931275037469008255342991143663517827505107189667637833376849682728078281209923203774576819141051408266776007200052092435994747341207165525328024847107267430019135562014076168569557983015101354888502337532630607622267352371236707754749799970180724422536114831083792841886312805940502091761202617068393765944111879385595919516289974264466981015027198991042965293131122378567557457832570290437117958346843560774600346753784435306993193900781344498334234123308172681328639817543399921179969285830028124479558663714012954632395889756069802740024582115723227415417931639741838422693368603752426213005779799768842787495761101006424628602357852467374653335672043077281693980545350449804160369004485658739928529146123722159744590865217094527409319875541567013277460848185491869027347243710402730947300728511257423243160476297310914935433141671215781855938727100515840795445734766697711794414587384181806023329770014286756499944590815375979779235185781109193926968793339998643960424607262652699068675010510837628259679953537663430385348644571277318671677356274958840151249749408816174795553604652054177614143522255345749670156990885510544865958811864046349063170936457533063792074252766407717081155039345519325716464897926412189515679805790834661049037290720051284207871198480538987997544694972915142412193332142852346906419983753337523597993536869044148905529124955208811363047278142021368118585996131856936980036910377399730493924190242098908018227451690002298114243020821496866942219257833058720303053524568871329947549324459044873266547795552262582061640032302073659540291952033957629293421554433985009534831044929407075740263333862992929518628601289251513559821016789140007121580675461685946385289919159100259559785835549021924363817705695458993414875379501984330051095324173747562942758532983723140674173743529315044689476343313945326652567623243496901371005270162371559298652252550688554427166528679582610600891868265148008477964913538670752902990759582943031644715820953107623272136713564795482344649073967751591718992320562267350415124757117229264456774248508298706779531368106158159893395834501803194535775927380299918516077507589751919564813384978834104685907786859307140261781218091230047812331456481043612747395815175318342887934048425926430126741126628838922973467164065471087286152614012975029797760980429744235144222202497667172141625445844542724185023621914842294055234203337917915878909618842328590470078427410938969411533440328256555623124413650459498799079244080172697882467477957314180274599321510980749639013482558530759844711087190192853706445740516333670978788942911715953553910882960423446160256322445399157404380628182278034087787057925405186770981684808813094508251846900909925155613166452697644169184314352552394684068003701151095634063032537978293964336308593875402550116910475307190639039913782299964258077591986595783374753192516443761146687427530185024710055330696386895169753159983015823075191486877949243273968435126848260773435558750601957980660361000573581084909113396503651839527051759993811421613971186944526835834321150159733631521339780779565632140162220718916827998131265597497013329813969531563991860646740833150349951729661018129035052029655244113087893650409545286164999057778261492373216522661712370261820877293702666998425923398414857395448250530131468081426008076714774351016313526374723418844111764522018384645872207002836304500701421492367439044267118713555728751870521291454749494300761413024233375667828437330485476780934743163233480509742736068252351150523109243566170510635567648886921394838221706284604722937678386335061319214658035845293533885214697674737845160613104340481000181160310768021186779780200277873572413476488795182868935705652447228322311508379276443678506190526573314234915569257115915796124488781853176353262148033101008945712705501588708833925063489278045179037470420015014132555973559740911035806580652284269749521114070598725206818546696798310910659030605494892615366706871754318165028179133168742996120569672569063941870928695159224676538245790498910607664594575657093606927340156097608441900391278077748804355045803713174725811377384323926959937312288002878341266016814165343599245518632089675625160362822130008448872406902557367467164551634023921722562810828096972526372623608683109626311210565296472357484816347112749657400216489842481281461414527521533757607609377640026821592251151255319401564061808613318052856231733141495663260770145658597550707993613830064780966542221026240092831111063538821711983328295028902174802281822224054499540268773718848531471647844111891065433320521069649550812438939898332944425691457985587316853044107151086100352460651059048478402848814787363403926207282723379360473199848786022131150155977721787649916290506527356792268944740817554422122428857865413288456280340391927444977695340552168923888658316510869878929581436761969397752105345153707706852307793370731006290127525412144210472223900061487685077440288742102871379084850512634527645245094295215231771854413939030075813675031739353576660143303702483205255612938210407860767741174783858023207382791301386043735929122483200749752942974659727131120187820798013039728332776983763955935980105580267315567126176043352202461715956831717774406035698267041922414985837925783115443385478541707432914821009097576631724772391657484207096789445608916600062475154268048925979894685036118882941045813982807066873885838299555621746357128488926776979128458050041887077266778391648250310453934830828074285639705240322158763674685217326750294462975553088927491700296529734725373347617605848764275754638461564637211050087935403728054540371379159039146803944651447069864003338876855788882029308647865902191706778171605776187361271206166778829543435364133883073449049124799693855331615792307010489243058438191609061120718945085073120139909184192989074897520384945443973944990747537973032845030582977134638355801649389859585847587198268254344956167944212803954341532457123737277924566085322926637637348345726696572006888453333602997676660984611247723979894060629839581406559292756765142909656721288050406500206701659109442528481419833156266212543950409533634705214766693274283528506523916394580804237468526687122838798419598995339177309818308861295912565440430158156230550976053061720437517743819702828449053179765809009403181312675742505819278758266937949998903056505807570554607787687350973673054871261185630709048613380021726586088731167126451718759417081094304774026566278882252966026085337469805389053941823085205988157962729244726135631474381596370159721779524207926905255485125071271322895073168164939129448691640662819113233662160867039014849936678514702462013730915971642188842811899590051475375805726529836924912921271742272750094778037205676419775611157279724597426990130744409134979251822027733053978995960673253534362306466222530955590851560122495525692600839304879034444576945711359996993459759834276041464142929418815083261025775225901654879632613343657721521192865280886334937224073770914382402165360348141252470217340024443984430440909068566538266024246437069991422621782182830731764175592664364794801773471427772137686916691964048772581673994384373223700971915093275636619456102864045405238408190386086236122079589153897826263053431869648325526719945666791534942093986656726103189484924969975299775824948930573236289355640455841063738127305087403953615084182345610763195440907042734621589303758527402191103277205135662237258114169268155914016400786088367543636522741980783966416181097309199880825336422750763776421398149607289472909251790301414429773025887787723581389429945534240395059248090557568231409917213018071828085180555227518967798772680013841697820044356028239251152266377947374402337845836639676072621103413164110255495792631031807822409488053334636122953552263883878123735395894869077178349337640829549646455507192239508940034759990541342547474680366823202013385485455887973706295506070234109497878391034819183325955172621778217636852665465501264573546266560681889853208745086769277320482244786181793488340862546463656452344940518156700640920848340770525885554865309139086944821512545061120212015422613968245896455374551235379518679051852287166062894727744254712809557260743775732872212820890754955922100483917436223821116077094720242629208462268992976346924004569173245427428742248602675176466522401125815186790004827353556752071421005391917076232817900068974840017481037588222563036976043853495733321816260807721129433418664259201953702044486241903664755889473123985021203680996128158583152676771423864796649018350253781049962069798220010286838092515748261169829676661760487881389913331085703668362529337797463839220783563686506119087691068074885718923393296033666687525245038519238517782294521800343513085045655543868545655684771400909424663184269878821545168100389220869574442120972692560434314466640897231598430978212849803072934634894934581969448148224586011110672466480575515840044383890092302678891383649447783035856310358812796788744727937860913857666668621087637277721013476457792021576278527992568679747623351505124824759228562629890706786929738081090049994976752756763552908659756167635253693417981732755646075427906945861126044125277861036082554173935697764867524279028345969602986098396472761987885312229327882370646823997306397272761720832918915615708740424775567750039109639624532633934838734803057496722122025470499630530404912972856236234756921372529207998478252478793909654506502698065030726169637778140044918137160636659296021774758331272276908787765315907438225487749207398267715658947212225410826387972222121988226826677517593082621717400462475984149985588022192985031999585608941577722644091779156189254359986970279838073518416835246373711697838642098142351962406773776315857641038845474907864302557441726385216290915748575056570450672823166150383994103059462767662587376888370023331807672672246086429819012447267512264609729212969825183900503854383812001763940029790636631442158765560612291848909440444575165055453141657796221093718914184763248905974957229833992920165103673974004332028851057595256408877904800957268032651040065869295894624061895245415752525254918880860896004770391592405398906786540894221607571413325123180794428639956838413318779233090085156830362546670567272481935172980577430808518968029510046087568964727838065858889874069448429117883756925004721311912095360422657800500657385777412995697291347217901432010256501510045594855858920260371203767856428926733191694290209977006338159576014677154494196062912094286717657099262403930133818657410825394236190371989574716012030637079210569764910159308521831172846924805283781373094566239068117547732507128278670503767797792965100332822528554524824611731037036482427646237785295655308210697581765283459077440319775405914179477327937650764612771998199565655949261692639878219925971845228966245070190826787918575507760663479197622876284732645105706239376766148704483381122045911627261046228214296839614799335665709427428957074013130840677445452455078127707031043487200962357381333026525143441584235157789924280927237734998450224405544923058511072539445823353855142743534053408828823843119098006705754740067579928115318975576923293498496210689595960588033314609615937281217667762522109811309825670928486223586117176094459371321527765480921935116684653957669841803211064004412671697171292361947468693037572638841323961712313869481493890285904602293911093167655120708602470082453227975246746662473451603712627684225288571810811768368740407690831383901428488031554775245190850049389551417776159942972546644139331047067004744310396523615831299198619290433337794855295701207420392766124338144500799345504762895934130900328940376457361794200988878090320478368066483250504349028121730196801306421722989262562611133337696959138143679580479935761721794462162428902358473275331082207265854776353109116628206369727785855497343385366437052758876777742485229267443514770698066662727633689956497260843307889571847108999447099482469398062007008262813410224545178306343395670027247775357707494152396750382503833567686907169411206392267357893654195690027887024782211564603085643075212145316796012742898573776943109960431943570881993701210130866674656953198225819604984252974531224125206681570143890862715383408249150845323822016967996820294204473573272463678968752052805129675839052662263595296582613822352215118235677163822791480051317188222406463219786708500107588201186259134352044774911029654293521916041059805269492272360449929772078770025508192464466553294555658404227603477456985800759275045212380735876159507676235671755460790411610137845631181075301253759724439727427560652170300235841784421687849362424443735912404551567637489436612487952790432550230303200333124801448243771375186980203093196002041280757115757070800860420526782621716921070466556313789221489852293802877825876213110570608462778057897982018112227732246957211248916023062196069805547447932190677152375257533884856031270084913495942182191389736767438348467624584426026433127113327936366589748956298642875373631104931518679672756570335867718149461814489533709517965658810969050491107749644020641298068348827499404153590747057445788918067098861067520748576702294439657435158191659112792264023538123913869690342731127466719841346431961807562294342365386034691890475391745570466615750764165183504632648631982952092774763491209162872687721693843448793417231731301283471991144397130245920140442969515105124758171586919682362484218251800375105058076964259931929867470980486450039252266643167593676723045521823563520994966485033836025147975238896813301063006129452027413418198393347881599366703162980216575150277010679250092944623229015393852361846888818463894728416658555979938318028864155847602111572262171688118699244609611641234451368379427854697058567348038530018695989765442881741437143821815806033831304421785398175636735722508863839978415704370941265892993519226305389728841000023932784892815115384127803852994559684122145543587103656575413846443816263504412991394144791240944026633294574303503890494362493970252228563286936853282774727825080314313474941088493853378040003971722572173462973450470573009271737017825160122438559481437842326360685339267787419086273451461973375309367153177379277472932027246365622776553198398402969636194141150110926653325761870722209929234044643083722488598915662077475090766004322685281179319705353654672759570815571141259333845657929417885147367693204176432995130837985890513391397057373374903040371531513323243478761207111098307445816979138321315683009324332122409368668031892190823212806831795502350971100178066011887904002001520655474979835265493162261289045217117521653109595588671935913138767823564437298988811541958204505494334912821609556378558281691834396623617051183801020271593116340494804045207215167368175595248038521531601369927085333419930105562687349902203334068392107208328350890322132223760558829748048279644392107232249630234017711272754033457502080906749242782065690140955917448162496836561455359146708721748317772822815399961107605965552037378102648952356825439015113315333619627941275312095317105301725917678681522607365386572650225388535083532605004603401475175918725158115461932988991598593952620242659179700716544724958820607397346165021107028088678093127167544364857549731647560472529297948626118366237613086319046161905325560238012852684729722813533647918304892251015572493276493820666398167948600361709224334899634374793097050079414227645812926122152758012766496661806698042811700362679472591615698693066861590190888323552003362257798005117539286569498365333901733548975401518149588244041440982714801421709222197239672611074857937736770198519892141936371821204094977183162145474041181721481537276000178355371423271063069333909336536312670348770970280558998023173319646480977378261019999005027035989858944341739371556003135605907560611256712219160444977216747785736250226960497213981045806694711018944059493304183964293331847091316957894889568048932469281360475832454084919092167499963617220842852080945574577315759918545032067634228662358532022016594026705138804015376908315710578899711407640672495321748211050784036474013333426583861757354334624713706824320007648961478645665462319380831181515552257756673982475174415012714989994627573558294279502523569689562494035152132211141500850724042213897768746443404516946533502162243014772443838018529894449831932112809076521158991078069352980292221420749863829121801569208529017910680480988301749923034700164780058294014381309316005377129184911648713050312903836442815242637254317314560303349746106106302384644378796156076378217720792922426277215163253074394801412817375467418724512470766005886713686093569654650781487432913258106424813670723247905774300208408723745243921836396302335755336123356798220657516921832291073940390171466112165941174031219273346125874455662170744542328744200678335600976059408589520931447404108210243379825126789537696664066279661771532867535977702701423270680469101690090536692782486277632721948085007156282682299074103006577794731711041647433109412217637686109049781927348312888383581887055326911309299713884107021206977814181769647367969477687582667644220051983063182434595938861079729541794215895009085400386359198243860470085472153770219964716113942393886510952546346452081380365591457153316731964581061914175700942952500200851128248651431975078307250853264962047026742705153174244385964403708623647501716338470529802331147736442087794896130607046558140571561197834916004033224513932453833062161724054811029506784838716126643187061785869817382768077977174574049469373950866219586597052288480436127608132949545515587145707939632052407107189334703835904399920174537589092007122564000559218361726825048099456534165304482527747558555194546239212739102602107124479793439965156068596713506835445389433713480872036319341193412159362907023682825318435232921724558390593646177171849372461482798491035913742321677579170056146799504486476299427901077540635063838719740706577154775739337015633830616394227820400555835856171738772519946854309745880077183925902029856526966443579913133999719015938265723023155086308902508514528976518483374121418221143450779322739693711675427959285920270699772248708045429811679971756563683606992125818846120044119940401377654845056830339319750840215041934552737458639477454564914246300602274706865718100304742726786802758978322126793576373122614212026621913671030398840944939975196270675698865369968988390635032412819945588732944986746226341770052387398333525343739095172089955076823719837511781077753057652053896528003279004270005158555767162178835643178609716959667695930789763092251007031710883592112245413160599906425050188374709278880288507225448620592136147284240675351328072620674868668099663171432732092383652671898853756799339561808845835799409576625878709762150479898749656888277428008462803075884303850044991615099660675113315182045964170745417421593336165524203559691489054212281815112333001223570337242949426413244942843525959034187218494431678231463264803416334393915159128674534121848226348488277283076012958045726066591944181039686461739887580119091733478675890167108841071793732945909038787534315906083973063296539850842524110195286661353422753601275269942147740842452539973955657452273496098813113866024887212766382958079918107197657392127224980387858937392727839449158852301708136229636373506110954735863216219973380857032639748370619640348987436108037804096150860715857365050271411648556133668457745022973825363959303195348655534061398612905313975943964893326823940171309145635376598110762304560290821874395352352383158200522960413725329565723650317795992857399535165915736405262298263135494262373228260940740952183291372438530482271222911436629868997293780302609924063035981337278318535464889325366141604712987623188904300505479594947816847055747435487640838838406762711178677607451724497729518863420886837780362529724231106237740221516650980071877081710807193708208715805640818028925429492295568553373143796149664490864031691760433725177537590967231844947429093083577122903084700257132727439634978132397528049519677176831483628399531980694413851630805139950779941470224601178579788863599928442680813712669871924584850917168951226805782846701112007690659369779946681957689461697583718829730265906843988104052064335778023728909255702993729700405249495216418988466107973593249729769050367303114041941383805760774104486360904258505928935086441998274070832449407785673588004854847033466821012055018251131563200806274516784788213846290412442932628785969280711477134157399103636978311759348713203158729517916845934618775824279182939888432192664878421716336962750142296531696026623968273370389254000908412985849233795862150863902499695668312018927555358375934633655849565888196552234530648664549896523735957650217475870976991050722895816585169000287395262557828037367947418322897110180650655530524404700039672864747744243148412223675452117904211539023594167088131718439411401056842633358766091450380070879228628826208518546715673915363564961551673399315454891848998387556162784133077791950719844431156840639605535776724536838971838023386295759393941113751596502787931478828253035492744334053916868493584293006245075150047561092089779156497987757636486301295022355173997294340996017754024723678481355161874894763586640308305376691549657710491358017316822145646445325121758634652011227315699081225815238979261804551927196506025117498669335074271295141062640659740382402783478109729785445352269902202928368121353302875092414443014885030963314405478570102933323259600913857404846583727289282888570857611050434459202162116176675769459848608144400586575496493593929297804147321303966091648905607960013572691792823773210321848244017104752779659133927502961695327073211783995149326251730736003574168144294354181300501989442699999376383455217635369573122859257197990877634863827406340583514104142675235900733888091978328247057727012621840941628208718195983695322583185948193132787629947379257460391535828473253552342560124092160025628633080347940068109230739400626035193822310488381831174798670790310547487263829421108459598167416019924462746762353161486699712969064302372311729944625654579217881982788537221250137775183024422056881704588964850035222667750914017618735131303989173817687272389945258586661013581836823596151776170311281692199204380665665658379691952402735818418678872283113754317527819317701420839405177005627904944634102766268228776494585951533808994464310991444027298379336693923312318342194166059007736768826496421756119070401588983546167829664650634549764927997478550766377877923558272028595216333169093977492308448546814335477106812919935815713964161818238082464623962832815672834317930235168022536396470943150471717466478238156451069953295847096997628944212306401666526058246290602644707119960962332177804845044399483614914280095087581055493395200678651636399749856305410580487303663926552561011315354669023577728574334841227170816901871552251639443773510298152423540563940288230850185358119244852657860788516513517275941480728320372902631410367182094610381736453497080640227624310756341429312109058753273568620052810536930676817236658451080161911346841980858444977875907536733157380301519677590125098858690024475959355597489628942799835977100278437299257286794486612987241457908812617735138003030870816444858217062734405564335861277740806880503944441608409954600527266323151865545061159739752624302821847758124309323484752836194364588101952376050327706929205656637493848195899570857445561144769271424203913058276777828742849565205465205494796592853563697889560959808541575965323791535487437015900997765330825486712355109377725258004061385816576896312248154048283064187978653995660283172631163911768468227345089268448740501867472716176203065093847894294079866048507104721213327582775209908945856703085840671593236531017273115555256151625039462745618968002818579709209492025751748387103058010510100425018238034999613378000558655503752989272073968040916814375272350734891734203280983490717271562636685245658822173638674195114543434946937914412900515077288481911406799430209297837077062473107512545959024505503317578051784750627323190139135204102988750768740259553372615781305462020787098516409445252024458743349577469415275796997580102477560589477975083736561245333231789403852907269795684554924249205355140437923476450204423032391781379359607936302158083231821781111342140676703038373578279565946639431121452276917376307828843706946127417289540983504989141885454810338547169359957008118341018026006896233358514979956857534949942740351091942822483530618028260721575616092058730831762320282253741976022592094933347386766128542521650488808473115034536659159888683995356722118774064999082922431381784308179221839333108323377908442905095211818243109119273716393034369905556974449751713536669341407219594629498350002880498609151859034515983350181970157526195100742220611225616822703229651350033206980547221336029462728169311997504828000094982623762729009330094687860197593928529259490858816506783167457688020875876271872847070036617892437465106223123211628237173083577140033342314678947165912598860748756185857757591371372309395080222389584723463709446989614183500125764328601816604750061213157711514174405234238966708905404789881539494067142045602468049817405720447910578300203852254615890090501117070491995427676351011133971866961274629853627725995157503785488765832947477711188169648423071492586053399628008769584206647071377258431017991849083056075324281717096350578214532872763797698902152647747026299384005281379066919860040654733197152330136817812515383462595618084668766888454591905626980223812392626959632723983256041586043577244788270913030053397853758888110526201632692396577827272856862057398702480917815334687368293236694118756398152089524103652627502695093314040156904537839839729486456634198362456581075694011724814101536545942818648887194539552668588070099854488015205476324579880460616951677938909592407280963922315281036254172970724058522059236420174959117755069643481922270667039980184630206295723023281257068453631092765578197820890174079953316914682140429850949662747690667070323936581065773358766052939949138370284861202148344577463554252879604371249055045110456415272632853577102190414008431814752382162729064952239285568595160035620940192927068968840522645946067386044166786616563880874858899798887026016368317591366113297013466809198049795467605124931634078737733514694283663053528295738749112289636493307510370925048556438227179725350298480609124591400334807015528133034911209175158438443838109633445845774529051628182870733057381856924234704923722324644553245428213945983080143874676983420460497568919748600269495712965567108867585768861161898340201280102701934408799408767754498989666243316260042416329297517531845898684446167662303242169574505801688491091224679073301888718234508229290153272580103758781759088569226937257362048758191659110506978776106332444167383033275182226837648458280825213576659847959437565016015065881586678599549675693022893814215010558292937761508893144018853553928368526262998929654560183467410634234093839639275669070223968055136493670188104046060051760663220963395856541313372752167505083795025223971287907898694224189549646355927930143059240065025483239991713172989914462614671500420153160745861722365711856099973635530957202529001149852406111224271548109151915460045778830294765903747530037808204379873772714480806508645186068417895712252696429401439986839784832552342737186480584332027670315481870456841473750950552624370955323088165406442596679848724983000039222418429789192234369108744637857863755266522077616948614833016646083441880431052260912992288012527719595474220299244477806874649603016400086233595067982794237020763250003703683121191390764517195312288601912206441508122429890419654135527543757279265463354492517609731768936044987602187041857953390509608946923207307602645662724653815410177341398938206695204228647777977529007672797619825350041791879751007918147184568282198620599547220089271668449280386017008445736000802896031975776518128603578573606567826301988170422395185686118755243384118315704464923630197133348205787868408328248600567470111817165434033876836695063115743445145783445781250839619815015962271057962410976200739706165792858551412820663391257203569212212667392976382765113736555902053799362277030342153833182347772687838738553903391738543270596625409280566863478313110023342713056307782862275635598511059433887746622908899055684761582680719712874329953958081426796096233529912736825466704235290976328480172660779121092072174777272363896595857845148593751745415891338007635055592950187718777370256620448309512011150974260632218869834673321967104209287587686796603197271177469095107281151569435292107748031235236392489291009018204727115188152298443200909707913174421648273994938473320901315012072628480609912121962784516392792473326768821312509969506945362110259589992603710060930661419810235595212719211930677627384153053016049852937837112618956591391831249642779253314240135076660431860832076725226501193367256890151725971890970324205853663038560601593537616442098575802241597098143225503633516679262525012625182048936527259417807426311211439941515455115768777138290195843557971350609092571868135882015366794691620632899664226841553217245965685410165270490032711781460809688823199523734978144133916392178286987999340333767316603531479123571920115469423709898829457353167827592723788905900913216153485393879431971967918018022042178872027404555635789407623361003291850136824092965716756606489160856580443433642616268438709238863680581870019689894459282048903042723727729364432988179923820267631616332492612930460721447378199909919468536477644276211349265086980306523357143725041932656558365963578073668644265325569520301833125429208306922873734810893849987927042963439067456591786474170887234591538975782178828775643727384834612513690946903177433041933572070980284125695043461560884753494332576354334886339533522853552449693959055103744065501609288181124460636435042719816834207808266301532030572888144984794619017672001099680477700382311812510930115775447232077018590473144019697134521780139809838155589400190928774171712072729924674641386973881226369806418452615965308563581149252356662857264071046489989352465296688082008864033433633844267954924140347203785337210797842158470729303410346420222412470214953257695117854715681952122509273760147198512300383537982819179209958598957713740098268097592914446352459892750882609478285382223870348621688488778707912024286401872465415089876786657978796384298551975006748112519218639265393688172645364369692044050119925664222837412484136418288691249609001039461498562904440530360641265481075821348504058834973351233494772536051961134683840379000618094325452437828520459210175239196054601674742094052517058115643576716409707713772471316266765467264458764699883137632523080256909834166326808751164446116617723707001873143972460064123721832843539504792775191342855038360423278912327979363466402997521571380711905269517690904882493771445201479537316532243929085915546313117856450528892480297839589916519569458883711056285089057938430668766537476233804499477512574648350296510136280507345188780166122529694098364007357512135107539906733102167628856676028550345202547642256837686310793311984646122215082957068677453503707973576241269036479667733888549941354140375627175520596899558611493534082919857708599547402920465567691857983354731065489020635990050396009076484654371091381880928282362523681049463966521395044052484359515839107470715403159004500992164792083758705534621521832222046720455120601994062963183125587985126127119722527552210098965425170412205636511817666718099993413163850207490279467741633561680874076637369774856923670780699870525968164725125309110338362487972799776222197123189547482595827373810776710991550010458655456601102015721917671959805172062000251523333301903914035221993021065759459840478930889696209764480011131183295775726144446441267740310538450559884423812440556478289766555713177937668789664373100611300867290234199448584626931602153217306369058043769229983532913943329452481766463738747313749708840050329251106945365427258361958854977307040213020623564883193832619575990361355454904401376409137344963947778079006704823964009590134799112271869634821371568738262709994329324508327085762793563386062861617097440268388326705763588223943134546125592887235714186242284230136184073146396498283048171214524682963277287383063037596564111007977406515052507088624443588224642929290493816215445569461157138750888397614138472659291209953947982844908752041632435524946923163953136966852638840929126228587464454759617193027406827162270925934636419529332229652421576930949862962755576526874073527516923765922781651151611343744515036346889974058139825097364331931876557394671709571092211491363199605936415363209832151340496666552115306068600238156125956618853676591585977830882356960127640757953291487724626824278677178335279040851453480404623849739379007261305640472000381772364121247223256306162807827491066814601002882226846887612363284382774522104115052517968032925209672410103735599017212867994860561876315648803513369047637399078356490546485816231383668837976171204062445451791226938723574132894341874393764190685157125231985166193778026511082049047631349471845818281057239512715564344384450684006066345013243855368764803272287397320997301763120519223568139641904470713585999329953429522509719649639680753591349716953020776480781050106854317863595440109900078399307075653618531439845813837559421305276862599632478153243248805406378843930294626915768735426578257444147319534958068986165310163161066474420840498554529879159222523518475118341525195495865934710537619502946230394435385631485740244762967554799794286801511919917852089706501519190688238143452349152909189282647617643580287684964513554737688611295386980145175305584879291650420393367139211799285697560474326513790658658750677799592427121342980247572919864748209507054810457747409668682668838139442770745514683360364658865806309112858556271154273700020159609479517460020169675928093177083285729966168436543801670103751593281522971079578075722395107803962566274499946556487676034891425824763087149277372573392187874809919815762583926427314969784189804138164537064786211458810692788999868007230749443643271916887903599867112587197620104505997832285232131004632929771510869739499854204122591684461315956425319788670169813123217499030885352100487347406319171143213675939010792017704987463543303166978444017485399795134245931204563137026153808838841691406694374389155493359652791365235975664980971732471843948345060833201720893037448924969487443832925182313909742214059007554042377641818508205157876055665809310065359423381892263192303241506180902042996819097722044373966953916072361580017570388660472247447913656570062063666108523870211153957661237239247039901350154515713043627408848483119250224912352356097588712279792654126925861970058664240122972164543675365918235447299562177553094132761374204970222714161117141590837451293514266677540515595819795836905415863264665541064864092097421567225899434719140636920064383272766727259535143613187886478319444134350537075988574651996128376354725802136101142300499993859497229046634184317997888241746847500663218119193867634349082574457817536368686380764104548831802789277977017353740411452522322862425942061938782293546668755312156783570900549976217859047343489473168455804408851885393144552271866936083476821986746628703268284678964381768144516757920298829139637801408313015061517537317470401151077253243469867545805374519356466014762915795746346367182005941471718744088937611029967293093097396166594767488657508045272618238113580656383459171495018273781881979538785118001499782199385206232537441919463326491044269563010731751253644830329847097896155281233733816908738918507911723677473275582704830571309993700151598458009021763640496731922652689831963228340073117522849317568899019561949607744376632541229615541450560705925004546133062524196336418262231031110607801865506816673706467191149681419641759054848087721158967519698422081556358474711222252628859313549967430500346982764251155542044875704630751400655161083970087736792935047658401928174561510998032111180173922042296501056394071808775668115278661201867446685322663963534066850103992220025328017006502294941009091561762529304779565909011347073130031536556581404909340489554703451597736309730010887972928663739507708889407034787414685454707763694793652225561347331968248500702927350491597762597097710362235737600947593294302619376341779768036451051902356516393137443568788610008379978873083410809097354908094897149350067791296675888547125593997578314259806437488051720138597961611581481730121804514641982825836460567744287977054980928213776279980463667799469807299105346314213825763138853033619068378059648639374619540228960728393288989335995436565370717792654606601513778688997676323829925242707369609710151076241261046683582241092356377351403840721140389850574697537117307969207924793696047935877343161132003600475732861619465403551654671197591064542796973108612464578365383561842421012075646479557262078600708956960729766598629141423577215271255269872385763998080028978272392052983818496168885660015697878403114768034700503297988610517733073331635529004350190064163658925908012976010011539876335645983362044442384737636414780589674492964303674211882278017930211506482954171174147451739141545691439582921379544358250986989220285042960882613453678535579013522333664624067979957652733123425198894043539733961012797474042647947438275816461356145897531589254298719169184213715661598459115006804101169598654026517344193251005644661230674883289929716239911442495568721521903090205578631741337362022677640381382290010587990996868426966875973020799223007453230891414877790434014499826279363389451517817020424203845676043056929601467925867540212609986362595370621109524339486966086144502868236449398546445798701336761746768697556185599905538736022047097254437246396283500184838468017786497075275668475355871992927557469813640538478609154927886690799950508874889268235290630732250479107535942389682459013104609204885850641289926111783710493874429694161417331947913933550316206741218222638457054973342512816674164572467845487329477051718132992580209212748694555828441970046316282557443714115561071570397587481502703711299299523491328966016322778901574365619198743607424514006251642445213584497224967186386924363972094654116857688871458126004694185833530960133392557760405243255067073129199138355076781484601608205783157070491165769351931878461301999519566274861032686632442325107384236556900108127434685326721093071558986084293759670141191188873396836495114306836574188878980288261466172852571786400786049010712082303810174190003130321660590113847408068703114330003151715631396294165512153451410389936620862244216314982114887080680691729007583766118660146626239879270363335989742767109647337590124707063727203707616866798539313644008263490140671973304281223123157310608685532974009642014663994883127031093560993372748428698641127508000907087599967500895205559164257285374048292681380785933591325996770503960872517834151219255247979897455648664041885191039757388775957015726171214018981162835483422314393639262268766035370820085194186499673883549094276432503711544078984489099772126093861274038611217282893843599062278537643533582509758498513721731151711679614950059927123202699852698912877165052105354011693111455593378561907670050583410245715064524887434500170293033273318689878406415204254706263971603211917255565789313130481772714600532391696358239225024312195641210237372855820574423344322790991273627972943898495206316342914555926268043415091169931941392531657373237602179553632964368208334949361583229476320940411528449882261441343075097079541094780961832007053699024376288472121199321966404383270386871735355205780636319612001493888626559847971578375817921449862394182933746203358039754397216239733156568475370375653772869153574527609834261697291299348042994341890166665631219797148008815188996902768629236630279948105869104239410633925637096211496474000265048237318671554388368124734943044361788213076289011182702089370287153948970628900151876064845836954680061211241531140206933188030325287589913778292190489066362441103066636074877413716834190494298424660907310634095558793288167843280850071550917593778226671676646096231943415165407139993893398636583873849575324285435786300449859356522772678788503531467691756988963204927682474905331942891552658597188101935483651344544192066756921622015505212951847517087888526950284158572564211872446478025243523083438450185223738958833559058792709056321624594206441990112505644499089505302935647120476514590445659228681788630301974323332309642039441454788057679151934032124954274369271667358479888345087037744316384620949156312875610718531318092865798537609497044776142167209403843013458058932260793303047580156132282990203651732231484259577039476621921360506221262010004684309745963853904338919005034735527906914605985881850147489909509914931401294364290969860510152647988705640901453091867249932479945611163424772516774809008021636748413278532088533102256341181804620601232822268802075595862192182677386286575282911503640559819040164374383121400425193598658763423622977543479501860855385958545587996090439153786991113697306675873151571681936308052849665179422785881108981127847014548561129191078027081609499343698268320329737420298424319181129724108859488694404609940157856998909935892389728918816972279021487641686807516487067532442350688536905169414606352057092783171862026666442652467340147381060274293270984651253145606553526361840613724193586685987369313903781935651809396320840435840632069523282533397815740133981047566698092886794334628693935024685635201324026780879711747624798236419692976246801779098511844094734646799788231001286722430328966952270666175084836474117895822156435029738670433352483373051850011337641835534785812252108441453497082013128365762514774279034001179489922769057737138100783470982019942102868451606684660917527779701686393543510862970646571956566396338976773932354610387672984611645571165030145336336337913467307509451865582864087945982060906947502404839852768948262355483608778598814004489857223747313462058816709842716914991435246437408562491292626503486919182170096441477487816064804635442800642159039170638137970143797015381989501546951841672587176664599885446207098575129840987672837262607944703919854834006585187745018712080128215323224075039567614759377071611461116512761392326387786601341897434970822975364170341243583289654618550481941979831571478660122270305568979323717578610711370676558832729941980901124566466637534213064636243915292123747238952135880029691332829750126233245379888825526212907999684053112495023385942735754944282791897066575293162080360686054697579358417764274584459837745845390015194012867492232242049274392520110498392804069763242536721580497796629970782337537065198082003444571142152382668946481048449063467627790485146107854652031756355148995539774281922765989018718483119903695445033904210341232443568300710829196627439687094569087191448960900958398064451840122745958911485629295247151477040320013812195236256138557593856803244417736315807189524849278074038675020316024831130389230829595229049360628548596388808350303601934013036961054960541421955521273583787207486077453265139364672446824562850391965061106734399213415428684762376852981420225529253795571926233078137997501387798924161718177654756479089570669520010998601134123020578819664125027622047729746055824147861877386206359970657963975307082687396113755025894236592025916077823326600303345376707525644171528768573271895414237181169691939757471570961031936207123307074026872027300864894844685443588679302932632102283875854947180614742287302175257092069817327516706436930386122903680635328125845245494854269841173820040980617328511017279445247451650614895391882680217167540947799517580627402678738588316386866203462955418338761751479098243706294632951549700248937802143331272089884646068032794419869442522538482786087177959701166857318794133552798912874597691985169987773507173318111785799778108595614452064073556549282980990826701530065484511817488683270778726180775665142012195107769658903505042411587251763244050814539123955653275710325192698781381546293746827217416203133253483835351978268922194849635946220918010600390207663327752968316075587057657305173807478949651387344989901995172610106234736449456485190237151309414000069369735082217511293026761413655519701018729149593074862029476937585057167601472076729554211398725661247599629289348617824621887736207357988689712108501619018464494597277198685013464296519701314322254471209883526078642920111405122341261996205079533561312605444821884971433780779844125479792877140367664761100102144605845396204057239946651071217162292315871348746877992966349765222336354330279333187837716575825696196272699892272213620402631457085308168416988883489158041351165096048439655748350723637226568178107516774254808203075816804200254784323903156599687673426072695622945478414355282829442013825215441336188502930356849620457283472291828118212456436127558094748255300217476967629893812824158350116998318436802533352135777775223143359209350650703811175730731497172314276149267830295259995865089902040676599886302547923108113106684157487469628014693410884573764349053452124278095964253563065230777602281115858616565142634962034025544892459444489424428953746398442539600585862295826925545678922427918192747078458624444612390440415288580604448320708155867309726881702200681562264615251292119611263035622701042844191333578954690717487877931730873266091204604426745448776335684434020801258874118989235831526100385394407874653469447578714419377915824179610518602175500586898484845829068828168458477593743258528879199576204416253220104667483542367770592581318717818218415214224730390391371356315824038883939861049507143792934235029350929578811388122283943353701943112035319930502935400183399854091657561414771124838423642325063796879327233820253041329991693242448113579554029253878533923608621452501465887924345192392076895332564532054062304627980034235178197574308844675872582808732468229781985607757969448144847312572817557435706152737603930022509937087942331125312047955460393396090137875027393858193913308775652376619820157599961967896468431958143116237231334635255202364802181884691404253300034911265179680845464911419708736115955080450326582803137535273098252220132533133424292614193318518897818269562755809837195743827363877986216544517142757298176571427956604594228358908666865535336122455348750551139438289445877694322086770256681982771456296695912598877111679050123272162311255282156698331913160715357588148635150099296789554687279272394300234533613521078689660239507486046154786866947803215126891641325894044358442141638469816806978215695941324759570285643496197865150759658984935125045983798685384824918298501232303618719832462867460205061368814131383582612739237629800934037597594972458300337927611544361550454695631147601677927257587447526867647101064804031121172007600850721810416209979839837450792244448621170496321300019875396535448675250205407106815866673193243455257099522996067724569776382831906005924446764659955038004852167167608659002248203585404758397562829916660415364508471295190276258948066610179928480354516375868815294993597049546047920326908699277554618827876432928265502691444897967675917313379980974817230360632455720511526227888602714560173018555819733522278598147889616195009550736036238473309436657998459850552811847479024455603616891201893841021012508250282259814765880443041375231814097528803559147040005564477037435696007823437761203490253896734261477854711505659423829895396660580446545867394191487825487727506494648148077371888508407556492413345060261005134352992015685740180652025064628756550502629251882519555210937892473043149367466782570254942433681546481800886266281380823266738439058742743546097834329601799593630964391777939526474875556328954141167628557515271733176086105568655492699927125166529368295403426687900404288332697082242309667280614197574802248102349806990503225964890453085505393471544874633861951714311881927214062306045707613161236971707053140747326996186707661099755782375090852049582667475676461503898687621624973908273475391324891460881231996445574965179131012440065778271185368933766273125586970336057065771761729000296015478358080826795645848877740869193033878594098190219130895902272739338289198868131153849858203498715996480096791460618181715032932242885299250927790038503760817829876017161038991079956303012580309862284587143117130042015888776387949851837170296192014798983617614980770597733175043970259195168781750729276592154831684548462511996975721699292416200069394242585089694401398291537710648471619348215992058107506221728845703113594790896823337393402617958038374883922051701474269677085543859443036855421258351781069625210390778780297226069616943755286294439026006949495857867010414218652247685067841659679084861025539814385385600646319652293739005814414927223941076902264125592045599083158129510101044011782236391287789397688346476253345454688682343360737619746150531946877573429410838857905096509652882570262801957530034959656970264800252850504026580499454139175984465766918827185542603437250939519519241188368077701695406167483951074114542541296782091390620231401262947300679285644330519471933501548228874281878964517317534353892884959624561229280753882591020358498583765831025084599696229928980265182841576252635424844411147870345250956806696402688188761715220421915725303996848647162201330627855009853678487292333806879170821302135896702116997100606818065850046687414631496081614827568097221490637427072115030177852587886653545379523090715120840317033804688664684239854928787344463208033305488475162740380609977581436788718701460054823135911935880535348263237983501679561335797482986981401665029946565090625194417358626961024235618703534795017013407884332320314525837483997542194563292086451899200408204619175073568695994248395474903009007986098626159836757761702662750156736838676033381579812273591157381428538489254908504199814733186730198820515758215580595809031258474492123113381767876423671312393338541764478696382368430418140731006517126966542891222926668003770890972235144482981642580400271723391680400131453671556725468020330112012013196081841952154595360037045371549029892448826625553747751229836782430589250938169707144080086889946410613371319749528981538166961762206738320381678973843798610139596434792394050143419797267127637890393901860887840399794017573055094633567531586230149137975799920147059255870222695450863896898253057889120683146632482913298767104045176950674769729301128700746950037543121227526917833085005713876844845022276410945463469556986875041925954246405071453802341126942401676406199975778669117356809994381894491018139895832802157172987942553278467312985122263596138890008860234250317017685578533739045985527201725866661477477317893328368194672893654978597545468165939506391520462403555261437953251616433552204063726159029984566636894692312420382624200781828832235076559848547835019515628325988203006314332405742856771678370454425457494158443040622590238206027125671557530086467918061552509434683693403174592616972886901524892773243390141275217644914024911273277207448578471280523130237042754548327682272191313303408789063681876416398739940062701750134102239959720757861829637622597291391401457395919090543617916700519244234105287642140700471660125971779520949087204983092267062174481250514922523640830998111930860765631189561744863187591652168008716767447204201842714997449758690245029896276056188399553611331454930066839895029603645487667626698105546425869598261264058968120823336682023276669268971019521911922697184907624494941425177437056747039055672193484050995544760878031275370036965594634016548858718783117839701221565412010911862214523507019957297629339085817126439678408099157598389793616378375292468091161054539861330449726128397685454284786256400519367523426370949216200334410262710521837245005554224435381803307878428478215664621228629771056163032552993495055956011836481260208285078024529315461063106199762315106154255700297928746721226079445780841391033785007098799640860379833747097655787457669624414080349978839648568224558404991519245324305145898778461223987378640307844640241213426979698572182082737191981086002488924624563226322184440178545695233152634253687361902222676696902697956832360552054736085463137622975610014103065981497809869124069779833310086199045021241276902978683227724651467126807583751439074082889781278212951138189975853776637563500324614811743285614141192475100878209406997131669880870090154855451967037682156561450109590628798606076786668436439953706282933159271172031167143972223051285596226148863805311644275004320117052675196301494303752771914362201036576664827130116981030864560182528793408569629400777967571738370975456259906385022056972629073444389042089813871982376451121644157498072500815610222172321445897591633387967999104194570619297677892045045138321611861220531512629903277984698374952533865520341847083525863681000608232306043429773297470663451315146774230202055616927595323471200236547751930488745308530863474310915212028860131880293961847916269900664718511941801281308140292395462899543120241033541099859557054771277201727711902859256486291948489707621428835612791248869290858262721290169467375415444361625643155070112995572863291369101076160764591912104927330946083641643030289282167073339203596861030383987327855770311888953819634750316959643587245641933766455304136421826118812612827370220918733480526363457078350450862042111858599897878839238916545183961671121149242938061308665654795396658748044824822806629640180129646542990564509273620963065717802060734359339454369838145110367047312844589156526181845757983992969216750508443931157378160653642460896067534555752369176436325918868689918931693345109369309901688398301197362876710524845156102689442118085078539171605170939062427836408184764730923770101662496483763974783354899114202549627708124699360667564412187603212522615562055360547702078482436697624953817875376677357221160371641397262258080383871029378170946453851838910488930577701799498712440441643278953416329447669225858618997028090126088666285362342493843741464425842041103587420846268043372253099549728731900892605758256192768396227731437445730859351101748830341000235161291171173040133691067921575375675753941026241999635471577876134280868459416747367191718720187662921080470106679398555570449861256034204042974844534023601704877081483808155526286674457216260578983752083936175994215961880404227572099849948208055919968710609255099329788582032463314390394257029287122226765553085601552382918727440923756448181141211843828889494747849791012569115964277880528237315991621726160135956256159656649208333680662999234486945149549478748339387254668660052894145498774526726628182227077141445414973533109689961026464725927192289561372590156711389495039138372550102469357447316916960703738346935957009289670568215375653752791977326212260147201030747032210621399281068507240899596743156947260681645941466692193728246797187700801430860725162064653223706156538468374859577367358827937101865213604264222379225525737318672756193843898289291573981306946204649654943616211344852006288048375351468448380892132604228771716906940952511586025050479263435519968701744742736468780355180424438081604432172899366816296113156381201029525962915328305390022693673150526112057699812177076357241602210878612333970927665840217275638769318497809445808472210945634195839705082466976330056981230325287128531464558785496735599252417973141006276854846177337359358406228816276317141650363306090687480910787631137896778308562275544724582223838025843205717827875521727521249802331579842746390784116579651906883361535454321362518411233719098360769349314892309864701661336836675279804872216339052613107094410490983109984408039881042183726562338108815902864804973896462893436613529022509627982810067903597277490753166232571784110991726979705876270359456074502423479347575197063734282044334740221890715648236782883219817831367267135934224280483795216460126295066385852901977687396236929355372201138758454839369084600565599898129732273619944359654109771740047098798193356205510333884031381296582238191200450790339623055654357524897274180273178883997978747962723471800933919468579688568593478575632145988973506983318672809754545626949477411961471684176510846346974209106827130587423639256038974085759230784190616695100670611543569388233880781590152141792449360218081975671018473303119268212357135495257313986368627339163567739478892943758633177148836929220203679654078175933822492266279446637327291990426650273469723128281858849731683552586493729095776761953718667736883786360505406653685619556861191776777736811163030042688740760131691834935650014343060335060318745911563246578012605725939463132094635624746679580236646136108755499896569668278713786613804785091814539054230758184591691457927788008061243273810243220244245662641561254929985153095441410539718693662505820127942052635893342766872219393185722210542396025494454066657563603397923793012820569500608647876083599303328712556719295903983865669166532540902370380016997113664922185367270211820572338587204053213048285666198817795992662562062352859462810194071596309988498790888588139897496526728783467445185890955734505593693094274435232965470138142557029385027292972445750515946585200982610033149379989999454250805793354039407739690064959816617277184081762135758837507155239759397652122423513343301703605980189739195846607334147247604003045820870020175386352115974913231382935659248032311349920465166238592149416427713378945345902522388031322404609443559637377614865199430163138554433537654659266883910457808978590123546232325163560578224850539074703319044691487482241114735286377145774572129938163353884544905826132754010906079134890479836628196848775319442860979519907885758513663329536688746068332946451386435865055231636140971935798248011271710235259768459726173474698807713581705050121119673684914176313677248125536497155391113677308376386126373011818039587615391704350763625709982301059653087956063104304650371784319528013758955984372233814945099061553539614750066898934530322649260511400208431094909905237465277186969519478813432563294556048146490330245524473344899541624160649380250227499706390157643443284863927778018380189391890964862026086988953668130337940648162996171632798555350289857555017145415380189810915132909894092563710050007142022534921877886454453409963657772939378714466257350954326246622587997827486992397324217908155539465687065597081932142873205088482281079299371643954382153282031267817763637228608625487912962569984805271149500770599894311559536885733653535039604398393537248367175810294395983740211073887062027596621251646156650653577657823961928836739265270656852243131837256650831200608688029944020767185237330430490868363732787727390561177930883345621242263049379291871551482311885430341347178875956548154323912705958410611849363287061302884421921259142493615576887529981787825431036220956307599795626179320783135882029657179642360573470858275555670315021399308906826194565558938150628371751725326947694283863617935993259998048952846857447002992120415176196627773148508013731677371563779579344111347564990518779667193402673447281977548101639451652011772382114425744262748891415434493066447219095142142785390125662015350576913379876011182826945723371885302782706488560402751936718735601169408502760989528658270648888642805424974267217541728427677956863666136718465712088055066482946190004139465256298365133540682657817667117696276714018453670240693459586691870389677316428060472276643555830149098747407218104087412351091623088889284598715117887048690520133002268610369233887952947811824553027112287593331045255736517619101359555879516505373397064853384099027311191931770467964214944183686399435820637928360610905274699059051927399313069037147701858025287024650207302522956851543389165192544343797653000617678799535375419349450014740856793091760666955708935477266169309509775832805534950227308903808384613955750457323445982942733033475173057498612933601887898621472208635298926516737110182801752590081896993899762917438600850623821228021593023838770135965840538650939089894787695083463990698095556122281031640626921141707664859062404993803886216033920429781447243145735825832912540020352557850706034831138182735604351158483829510872266558030021650369879089871511131281517207943256843132359029587986222960494983222079491542519174402357523615183967852171362638163199655459821145015399574920796685186928917534303643206580002232611579040777352862389555238413924940781552098362409025963359323426586816572807410002871102839108702724134988556195455725959369339367278445024122809853268448129801688664411697273367912151201850090869391524181275087280224867843768173013207483421681816478023714923609457516367374105625557459231307102783697980293575173603295512900541318936997490712966737117083423808105945207177175082332608410011750731689603540273478656101680222886345280365510563157498850630699105241678921790540799756940607167460868222487159302624766480876692018216960133317368983229750348044506186526375954469865884817025088527567813527347876283966414175574456829840102164436546844624445225196221321216158114228968208250870712029679650678001179601880966555930497444205041632884950243759716081781476304037030283947117515901843742639405449407220970232889987250647310434935755356423504574626779680324517945603517054556249597655921680205482951241195437192105142345023723542327902358795848694580980276066066023901375416284608733334130678013290355503944178222187909260115734799629480715731327357245038637079164417129273554368277787365822918779038469906072644562203160765284413249270615185885380048605093239781470552747200699126525164670858448265536181567071843476723982511710831489136381766834008523835426525712840105226914755052174578877470674565481616962180597993830360706256536691533499994197544048744367076208932375144541376908355777166508594261012948532035044746062861055826934875387946966372940220681948473827765298477179757143393399336327114102165830400900546234524124441567016228247072423871870677359558273748841086598434025474859912214116764666999176153943187321402622947743412529976024535855407223709518343795503990012222862098309088053061157783600450033336045986989798845170722605213878990510579149395950575245984829715360826457347607216956889902596008635725396002412021439472829157146772816050217836037085063865908683710702530636709305646132460291767355678481598148159647226285557900966150528876869157369715030868570284174391948384132456385956280806266519117110057305287698228866889425692184406791793268892769902903971097713295521516456671384587638652207178143858642394162980343050573482999155444977579911751422268596356411996237534632481284961394731524683625452319040930941886184881931024133464985827145023211823567472983835261686950491923077016255968960235322158718756491379562751669326606691403008023103189190166999628363171720118808899458463577316184700703661148854043519790454375419086055509864116718518846379224559939358413917220770074883793979520795578801564875783497377655693316125012105665792107242164459245048603599992914494384242274466915498569279578240493755557232897146882491176668659485545582429458784058163898650256040298165575741316070702027474395887725678852624666658522280006504508534839641256107184514501763870740952237525901184594084205803679871256150315332827815618048606358286424110429527969700398477817457946632611953244188878167715198923514385809378164694068568682057651640639418785605676573844025798718635879541905858652015786701959665382472245339473214303707867831906587807163828168223215528471937957449262980495264004043776433848418342438071334834791136379860406873229853820895009099178073531305897301362911271554534650111129539869899218779237429981619403525613408253534993467979795742687914517692714426645057031202332711806128431710905381666413102111611236905132131705248842247046059606700431368292930286021985096614095984500069102982632851593060326033458862457380464215256705796301635794323679082882229554855622936683277423607941841955312294434318146199224327278521075066614822256998985541230630993125307644258218873267719635170346838762853163773844424696420467589510905243185961132560260893775255294833762986160635597444356342984690552541965786796478758453689197275075824077745585747529914963987046922783918312192918299288586933026580192136351194426307476496936291929496920261279809413309647708385247089064877666174148654469874044274592123247665074656862061492352631301115931752689719010444578677732213003853482709303211827197515783259189013992916756150524870307351752258028115012855652297885532508962496436791878459534602622392038873296643726318102282475426389437273265256525968819006764537324458565314490138714364908329710892394041989614884770713997415803484855515796025453438462920233261355993539070918952545948021126702210319836718536755920682786940835601420658422879142021406855425003217657583314248375639629301746424001165027742599795379104382322569322265413223582475733422154630360566791926784435807961659527624478965209078239500558838670583614153739326352759875750131618626081823282916362931626156733572736845137453819251387615834670278694182592376600393104137269816706898085947388007076236787680486400572478159410070875399192339553209369891145705241108053685433978759478453029905653823177115198129617987696539599878706440037078526806664483996659972803142829345497111333698293174112978427682965014500767259157022313162906985398856320719479248763506050110468482606391801060335009641382919634328445013267634066477900640624546460699123181957765044129753041824613671070581285534517283639364990871260800739937448520726899742099638006622157481029035542666589809284507947996645493153316248476748233939720149701201373856948334272420014009791442023476068302004537173101997236622396247885138856318629686747122012456449976226775687854101184521544715309247238340150994966448071042765159997686580068090259719128335576100415132941142945234522537957808728542673497436386343075268146228548407698494461339681550247004320376674721534947614288242025320906792708677229408764597377936434497589450482133580704870002966323110903218012112468867114131911998720074568628323919970272480346587905266633715820251594271963710660172537380364906815552575362680269853489475089461038922269922891445212750642918717982049558211032125769240502333561120928751453976542490172299090650607098387020718297443138253855682838184358741607579839382339734936184377724419520789548747319953220248554679954752456448484295110824841572794673030623665047765458457196229995360474161481175086257991431876561645505189694450872657656194892765937790559118430938535201197526224679692685505512130528493954133797043579796021386376096254311914884079348195490853604989771983311437785322406532967281352732746755567069328446814699685616571154033632009977267094791550090551192938421679713211244980937207334253024809999825755693294065613870137105682789401324370883327371794725740393262247501578591360971291125263386717528916034003301595815381728013669636758080122036086505880322754538939105605298808614250883135722325194508762415478551880424382639527551405545909729163779940697915146102107641015237160501163710455099111290657430290064686381072016258196783669387825080832428303250474186910358415765892014792410615272972155030509499716579226901942858699002823777029240729235393685536300163318675150158741040846386208436933989625037588699236718242144460851037777740057107072618518995363921189386994764708975627985645738105266353489973969888683054183718170927389102407718052732489536045225930921777935490891949376758542324007831437868589960677456199833364336258832268335247161822648253776028043759710865063425817212340851095382786371457487068102470215903162441385126001365710880901422516260209483845569874690077033023699940652923576122674168363024863624548514999785117268752038275106080215178693398986402004907598515250164985407254374219207687588314040481442215370247174265165583918383026111702568200790096762871405787049734340231705208577392254081057814974873773820808398889798248860846955417396858744227368760342687271231592933298580498902762107709498144346730093540818926094904689306113962588823199956134527491406765946665408909415291705455735296424187259453417921011488763168275869337567709735121267517214330843796115417802155895167853478634250236621917516966699795092303623267001552967003853760029259189816206904437620814998008231899273344207084057031026324004234577553691113592239411595952621294870248831689718056716004211103007295195907347603131052676692326583216263813748298781724138005542213965797800061305288425219174066899697424058624295995260960910170690483557875476006683628030287744307503610493617829477020268067227809184696598270186375742862502574106351661883286796683778831894776590962039136067822484701570552474879520681970866352556342247046430267767097075076122633349413086648400131227803787285252573087987778563644011147524542814464595348748283074493531539662689577647712285785838540036679324039412229272700421855587373490503135560767791753338515542422480460792966827961679200215693591140574382663176569013197125481847416433846813763426719068294863679723037332484834608699479384234903014019114566091103723233630743933083678993009749601345366908097337494964348944191142852072971872760450745743895211583485344177683462951435646611034530264848308664355511100177347482435778813937079168679440120544259510112841201968938118322412374410579461456054072741247964970669858396941728021806397504145606300171565028414283326136061087051777708875861727339139421181632109435414303628353319237991605904879778008086578123188275057165264953627022413415155053633622398690805830949164326414401059129273027877132741592780581593370407170122631229213621623871136004562631217952966420624030411224128373453892071304904093593708902595394950404424010195104480945093398701212581196387895709596718786642934973547978745250439395681026539780466443705796433506918465087379752299891693045589259579083372711523640363784379637712159943547902586142920724928827885617086379736972582861390912088368011895258514777408140580033439361093247465428214861634973956747217175422392191971376469499410668733844350329997858005269004241032313392323642578728734717044535294259119085178496530172185816272292408659074324194986419705458572855109615962035417403875519681954676469922888038134741028116272644243465791162837258887346404563263012743690002622305830736781540294475240724170362470133692884988543973558952428468876797978864575647251031061777701027654552119218970678425507248836335104028158259101733799844589753923716689508391681308579230807736911935279375994318731630647269922460806979300324687573118504437972892611342092325119778111388594219064939687030887211890307519875706052693181908794854926412162942822311775689320266895094609902170784546038103177211490425899477846638498478082978757164770439575008257305130193010277943672406237301175294993194264978834097482174602177067777101903093313419245915366476182544954209732244853426258836332140240664476437641175518212370710540016925018097000655909648635668343139555636096196249214506687982098599454032333288479340767300688353127917351446530956488842170668591150863793066975729526329039153600399301829494414894822516882381328124179143040350065345846131515813712456874548979126558475806375698099844639635572160879646954201102728238303072628881694402802075887716419263557625626286191012794032952160579052537558419101113195604551251576896454564851359182155890209109322475704563164890000648704629367295465015186041746581950279260150426041685325816925999579353743697277580672849123458652369948654088909871505624220759902295284459929213507396088277957476235806550411438931348314642929673541507576171992296334481683449923374958355844039801178041264668588041558130997642055042712211868273840816642015580911168009365836760615416904861018912669579414907308224431562052772220744047574522387821032061835731825613325076186540269162200613470755335823514108029996324714553907011625227770524684223385204862105776211951371659479202069407710901710224131874084237084508916672970742764125041275647103079420241084025523183013583583640985120353509695377123226319901990160496199845238039654344486573027540588543755912640032355693187752548051630983630400496536753373723758782822066173164860295016898597583308639226553900053666499757290813665204460902959432455794732210486497930733811001949501860736090906600680723640000121759922218729071241896928352057576475626737998187590547473072199457138906205232885835878090967585448847182765929166133934518765954790249862213870248546304763297148585313365172677728655141108087273985217181970328408209612590294375096476798486015100854849451570392838559276008268748465896827511138100603190330574486818246697774811486744891078785957316517779749341656145069887797896750353378170917105915424250270558339244406877777431614312654200133492057688399902481013693846135498849593593938034707619043356338519607961613300606972482546833327052548464227480393848995950973991222420452549331500598778725704902690466549907892018188614032478971263341077374670348468576205298975457714600357781313720458938722756974644584753266767924842215009992169929708766756429304726512619383251354573197870737511911906552528906974997937845197654556417094415395147067446966494384947054490983990531036026339805748853845067247883297270824893838159343829833811369161140319401081964984012658674760340513373854921959034709312692449914211007447429990203561437498657642642038890851672397665852285544306037202343060089060327569311179729379557853219362333705794136634462741567293500084836501464451628512668468334160839257537038403821068588289685855896069820921014450452236663071844341477657217594266862475461348455887007947699710882740191575950650883318273039657893168381748452670329633081364950774012818933948215007672234035209265073132624517895450080327254928261004111621628439902971000653918693334455694555442558402128544422012087103882875358216713454738493246650778507983124753057565731675746960841741198887369476157790990630337267023280826833573924841265918229683338475430167954553721976900895973637830057587594331228700739708598573430950315163177290183244308362412852326084933646999694090891666841290928562174447581249516792216496738232718392751241717657695693797181238425444761960319002617221743448897473173719746115911665176428144701424543306632910797970319538416049561089092859233258269725160182025936098184304040728816844124459332236003152023301552350819505075944564882696141661369906872210328184937321839710050064068201543366401932054182176464483703770301621831405826564802530842306155807613657486169349509805184280116307551371655772614124909550198185209202615405116698075697916199071166622082089134917986405664895653026894457018744764435844251274880752068695559129659929137648790912449958836244720465513430981222217024852832098651169835404521164445430519648799070741742601784332214721902577035883041453347201474641264521988768307837853546271272010536163623557684826384438275879883631318159999980007934636722090956296036329278069924791463134665575190524740472752138613375632823470232387899884549493976430591003595779448547606308843392913180669414627654556393024532889747488198941041261936399022310207390030031191667815077622252333110441847465022033620155107221031017685736109668461769073188634966380782080249408265192441198974498572340164636859735533043719431980499895979484588904071041686619213352893898990748274311029565609011051165031513730967307487374289348656121871700207743940646065512291788563443988950423882021275409882398205869930613837991777401486193589643939859579010810058713875484885240958134283753033946962501837434744918698239171867303438788375934202125727808938155432440717424266947975063273141257405849429815394077720156411087108675892385993333056590761277185472987695101966458070098962967653459451172887091926848667689320384863431719595824322643597709358360377886622511974957674185299194382099247142233210345236074501147984985450499065857047993105962402094398388976534481837788861072909421841903234935604249907233794228129522907676407044872952996903581388775040745706041902416922217530179015085607914843463750738659275812495703310821544364040965854764428477432198452307037655480328538586292101897322764790530250743100260708183346541401949355970188813095742719838316345987440836893241935250345427349106040221613395732737262617744943668039289076815647807120522369943382829145804826973311484507848629270694058410002673701414102178814368825359915348373264568760698318504818223606680946289557054068840977495632662245265813991594977299682035269136322332700561976162236917667118613867848865167043751293009386206023969016161646848678493170690059602338862262446746589503066323623185180250267892369583740419557584023462924468060759947479256899328207548054230305119379913527993079746422007754674586247693520820715768611128392677683173942210209407329989032604604962231788512903894744689457897179111582411076487346197904396967112890133986543139942722311004038588883308652071913425947152902197725878538703588952773734175322073195090060250929395979660098246418294595380221786613447783221913601593827464275213810281954526300027751272522750477860999835901447955321585889235573832325303737206528064975710986497986048600864047449884566608272624314119157570768579198201275989162226915518216595373002505489762036814285519700051390717464590748693492876496191691303792314616132688011353845890138830796648285905506737732979315002511815711262457717683311990102726952595840741626285126007941332806973219155774402358584485574588365111861548680896416376616036755771753689262391403095148575511506213293162448371696119459980337753070299532891601071164661601950209986284766537931554344911846020600166682849049142980772404150143992091510679703097201051318426883762080798808678664186863850272027201325054856426782831664991371848365706042385614341511644485169967303057816750720206391702330724377607153168614792377916021195740484291216958034274569726718849860573066002267261482104855507501242373936059636190607789087639345067558063263051088545259630315562735726411664044012675399086010555141336616388373808280105125385295538434250395658997612387717685028495159160750056396551085169720037264700441647998036104356867039413083810664079346292250757818955746692090529575929052773375070305713469766199436097932564358500053991659629320388493914703162900670735574385836644623747641857960503178060408822323384766648755910672388699975500295185436849189244958378877494745906427507549580643186258937381547865101683196638109786942872628029148104992366247717543869579756425139089595205017008315065027528591329879465840121243912481615111908023796908668968557749561581831536855731461625593895203677825450273886870412467177000691400107267870123918543566369903631117526852270366334918374049291543646350549413491645570265433630716253154164679114838559218209232842219627440678728279566866145407882645475857940329700292178147730406264088854765691358806343258594829282603508344419109093350433279925193126557592012445051171183816982064875728375628469363241525129685876286372332212406421262432846549449194055626441608570965149274600518647015726197988039056146780223684423520128151700837844010328013712724395765001991942731732918923229821849298063422620147634323829213969788814429077907164309593088697135610558161340767092832007406164927253095230058119537443108290656418270361412876878395127846507597486007152784032271985115372736213234158520658172403089413731257424199130599146996827877124390032291776690625196376932198910282487541516128242891088933382781402045617830182519294980628491384409998571774146847903792027739058228269494208871535194973800620760406078633151487510924807934763783582230079678064242536907792079473595327874996416692477922660674450423019148410407134678424282406288762350331754219354743716017815656793412165293723660173432748179234430191701532426702407691410799858877275442186906146445106144194783219452305808139266718888242928884447796540516392887985948944443923189694581371674156148573976842378358255225406205977387684177074765353729612469519159341026388652938843891909753846052972694001671633183083143204885505218198162040660805926207200477009239074212891736625067461627217509026992378296137141828889357640291927535946109066687733684425965277098045119836181886787603107235294602164257115335831492450480279267730820300271828731853784654902623348305423555297516748583911850640146753303677649995907407260198550688072908863735969659235104146759071056274130440411020267358449280400857654474514145286686930908169968068627669713066010143027321436093469205642318501317831813491232273979660548329305627903488841008825915308775720974446159162002154317212671766258534807976544680137576660823816677383375552633178609973835892780949271809866410329714288922033731260166454483643170393872853440485991351514380381065304023958443887866177492093448915587681150232663600818011579481699299832873146404946693932565842360584820836790679463858895204515465002914871233155580099619221913120905098139877468837021364946094451109258845584613558849369165443934855692036233022717921771178019519591777774472935677280326924444607935360740335713879748822612067544379968163747580563642164136818139516096512105411380395951131254574294495461430373765473161934204142051552366588825678026710162778796698969241331306682401742541235865849569819364045300633179893705852304271515179515615946534400059792989258187218450709749021789166795207792046888345194772271213057169493422863186029511873842324446128520174998116542605958236900068562498602956740413618268090568811020470936742166298713833265982440849973810079438270967895253286143412089638323478512808504542018403544820817547293569218419972693128033828681651142735313189831547030802357592147278076519508670386655057716157397486281966190419444867645143038645668509359555389297440249397335526273013912026326164442284221053794988586337835168110489268351484893730247822593380335598826421158825807138253477731746228938805184232477491840640353909797576714973695607359320393093006090502373843318085268929950835633593342782751166470796640136268227099510006141017135478612964118309492560437234696434422903898354291290123436192762326498268192253227322039621531947932932067115730008810447080829555171778518687608730372732148212563702497313266261497781490220537710694632987759512683433863300463432930919066175570444760381239223966886869685864494182672267506669478497202927130099983550160716837021422171052573294273287150473394689525344095888047566829210704194284625331322243068030479583074714607877782355253433911733238793312301594028011128484023534651798150248390941996290421099091071635617714286246536393587223759613760259580129753727318439563877725296012205210308927683368092456366090514236346794656272936012862445556034857794392241892759053731842512549165914256074457863444503994971057156359878440599141733897191226245962205580494620003607584828100222500232057448322892370752760941144652006009146904234219697122861465321132636062646326194310258971946451937869600606977221660371869933529800451377654732429016286704672725804618204844703512466300700210329557315747004764064749758257106033909564320003077741435739001343968426323604776408492845959371959105067306567995489601074805732810599754704047300225308925277441851343528211441360956013375648247233699106268108532521056381529726602578577557680397947749515915548977350413772600618381280132332814556687192057409111582116728352865962163457306567956118619701059594637410170020792822865239690144132337811764731994527539986277972790853073539663875935624910268308433855169298694652779788231701755259001160727394876729588399215405428795297404366423740928956239961536710609658146872047654820062199470040715043241172536850395903642193326125150086171260438000604928352104102813688206439844247898327770320392086220578343958486665545139533448780497323575819515816821771108719077282007871442530749748113618849987421241734607358935074453489103072537833270117309590829479746063851100536820087208777108309153830915809283720611119840500502512610173734700610034695402889555475571778528482966911115439957928399896636266814364235427632829924811499062126775496154669858120160488503789301142645868622539857609553526237605747597477380709010250498375306100193584761955684063489555956102076731131084739773169046814979370174726113000900528564117573284747966896018940703663921990540508482362241423192733203355419451447627038192799676573536782637221053689468894701769015955139335326967667201172721588319544537785975595035295417735781665940619454292391915141769480921827065009960331628502875013067587526468565976765754362918878839067481891628527811180602362210947377490543283740858920087640180646366448056050591280033508089976737110192422859577271314652672825902103255300133578792090045888911803043935096327690444283319780893360023270004521196261790563292762032071708977439890351648463315338895613499831482795664569656531367041880014555651118595180779966761285773948389676593565036469021035342153490120495798250118654221395413332177823693471828050691015051495386273886624140839947160541209225802343399243933191603271879267048899134986371148571447123461663192435431880613706315342211011380735717959047264946680697023252156062228758731008828121906899302312389001998009438677237022009818948002689512183415901980552395242721163371525072911216155712897984533461610383861733164667702983799214592243194582908366508904395636349061642140570295586126647010202602050862042656554316446969275830676834637029954605718263729872314428383718425122868172383249168585444361159956732959464255154880034850062783395730276956548267566269395540066998031084079370207033763725890952837809938775013563949609998433563454858372968827404691749140572466834782439737400390802506999909144663191700904312221583202295038824133783088166700094612983062561018618013871835692189814064959700850382214375907042421182823588419468020339267312619546933279397187993888509408998228361452726883865679335782401351285772831515854685729934265209662235769525419636534702871507051035870171056534423074493233549341141463966354662725489106347791818277775722216061944879788436020923319727125175403973519581365909470793785651281586834623238518218082913614933203490577036835136428203514327273775847685894477044073208084020964565330460462598230967261318098277917879074738369356212677655554160465419956133217197346721795282844122408484551311136368539307923423208293461093814765698341306917404065046657475751951561784413524264571822994146433407392224345732437661803648509868911663602524370439462369907696338419410072085004086657267275923412815577393604826932076198206067779113755094017003582814966522295525113471025370451741424797853976353740964384295339739695871300351602031091906042540244449407986580505227064919599977432630022341892763028328309401743459664414613731402959829901867677715799444654494739437832751669068253896105388190742415625065264494606164202185429860273209689182367273567356528756207031884203116615668225304091371643023504886654074470448649884020167567721357587304244260374212376806651372076870543226287094576857354943762362628637610808289387057045453653080538236049898046827304861329261039615810633972810771180089025528905413597067530310505738940155938714873916660748356671112002592802200559201017024790863616536530564232340920996110986264331144415349682069291303385153125848717640029262215342585318670331271661092188774893879113120046877245799497550268633414947580906300787585103984509029691031176282904805945322792521853129662602470034336735308055224693529031266912712078553051758640618661618673234074221352811286303295759890276081939560049121752365687666168712103909397483726615307688882050720062168985726007845497202312502634517068181935763272254935741117090942820240757304034672909475337283049953864961698216702922124721580545392953160608895626517336550010671082781964671796322621732382582818482751053922938233537204685164327388906997334075132164466052741024868048939779325769096776429782343590035648009270816718610020943771620513964130528006049244804450615688952154796367397239102985170132703521695762911621553154732214596455466181192180440659912650174110807739652715199085221413838209280711551901850256852252539924010551014940565207859267110569283310762968828700740652774457953152193462952078385773710145760389980790269791339347992830149677505026702306415340032568987504259768791214050266816184731240852017159417780377113286843106199593597330536300204899527899493821546552987039568594118592669783394160776834219986332905861702592679861561662256549448206271986082469084877470516553806027916054978065279505424946770884173163758033799656984162112138752473715340708548446406767106443738510250128521206777375120540533057874844271854035839972767975157500883683976404196139507189373188156979385801425376281504329384085684232244998534992738112452047729593272137782642669089101131890438613523885470976273059298192185139630979465895768087319297702846884371078163646054091683532919014203074170304297376151326194094234054983285429257191295961163649176719759932810420680439479686215259744492453782699521171606696036702426957078188737289544710991611556628141508139967549837362606257103472560564285141998867909227645715534402246850243803167348713127802569049817563736263863097741976340030304326004438590776224192871432049415672090252432785364355111919391718323994344827226081466346411212515867691002819942501005826102013523000115898274210601611961481513364684009602650433927945271275406159839542013178460304960172981707730729254264977694140421074896909410814682512523170103583004417228294191110335677161428695682868577762579909311640188753328837551580445871989498922763808321812721809409354629508772835249388115899959835771496426303080481257067616464569764740710408826189695572490908890893576286471699950395873660694631528367077730035724616271986727199489092312791793597162620673360567581255333786802708198908861764319323981660151007914801539307003924057714288756828347306316829816503757741491442528315171807399614314575158512890666871539522656704605023789145953691598450219957443422378425873244263777052494206254133938493935145773065339392038823147684981218439945934851808176395414573392502839399714248991411867470173710010774612145819528857333110993152601297308422881846128020450940028501964838616722087118938426573877594809106438027581060355911975179825462435907293256317473603642429656133904670293019969846754489906252273412610682312520807407085279626768378089988245476326792584706098273006927257567543573758915601300397795895624190517073699118138109511187807674904078356310253679488317586042486634055242976116201354396259839690213337616043213371271025464510410464350677515482108400141956626754150610305152792040451464286004661547088415031196491481037037420625503417334642880476913926524467193573829252891202918947132720415559423298760975319323874662357642913128436199586043942319624303453420402482823268107993005204289496529366431133037719490153601306539680330427063393521432165835819491212197496706677648179824274082738710123931610083397609975296774128630664354388724380294426868193703987409091741237806269227191651490357243765723347601253271107436162235654926336799298124006542272886027294216354186282856798923328096370315333277088807964939965103471743487303177295869934963952151189266120419369572435223130332122472325355770649646786561907369347189866548159052121592011863129232304131740286282032360955049760136438761929916682845023162872555207931767513098982842846217402278337835105751455856292935148054255250566100355135450685697704150332371781364615749676814200639848278137398114400554405872030675074144769305627615429549972150187314052109174649910425400403268735489959091862855870651269878555090887576879492827178569813906820279188751260186287357876370671416717581500183659201440526920088617884178168455576049832690067979586391223931152947639717741622053792751611815733532724964315384890062152913733849570385860732436617528256834939702818433563928440017579400396409893400428461024381950393687992322678011602998201135281997394578360068369269707119901687086093971924226028866647445599488944737623215766965258496760838412481047750899062551984155309379535957438288085816777175210535053983864371769282717031999058062757637832408715114680741600477172207131607869236518807889158269669030706820338291658904343976971185770256988133979626447509539256097204135504147744022072105131303940185749725302525034510638001531388643833862848956207402157582925714214079945852395981690421584365744875928615268384449378050716588514590639497786097553248971793419670636235358183691249699402205465563692915601509840089115758112813395930934959622339440617144186366235521860465303299377265804915935243195798311820671079056300888977432546714572087256589837068893512641740280269050781163959895033754654038851145455291440025256437801830425782937986915344714901028102141390784868415888437365365424454073259882316995504934548072769453555442019416614612125070443302775974516196574967895579452359186769210674511129910576247504158682710354658580746682889262054177733031369577320685546654195636925744198140204331658735371321027838165627100458937202596602799442981156417448966463256469064436356027800977743027159931746841250441967814450495967515586676569589921896917898996728907324589646646215137711064795938702889249608626307992477008581109074037985500505547347562763653057582999300885926935928172813388815527355500269678328512955578004476574747161388029314337620535263168131866921400635074210968378563172889958712761478103877023767755652220524083456296734611730729247804772862434713282957056195482856938388117376399874721267041045202616747877536630614318718249385607174962052955856911402527502821635364520944618995528160534753915272190776232377829263906979258889522543291931753331523733916220353596157598239084233433604269876061970238493573962685768002479408473857957217556203188118131394190999682077845615462403352099756455032320882887102254277300961017953821560042494041484454209088376008786813900397273521220984377886785586768581762609896868042643692154956947577904212515542682694811992608212077132640197717509218409121211517863108322118809800167935354452231708780051358854464434106432308035413948106054054574175910885446504760749007233352449390524349186350934227316590208140057632709192038528222333920246784837005059298448430637542855546785098858891742630345822138261463397645570996941051522705234699030964218913587791411793909509782398081449872859840987086320123466285038901267022681051134314787249884064144134154128426692227249818977233428030702084740068006851421144121437397492459622351647146792533481500336170225470304767916850643116606972085950810637335137533891653559124952875036423031791450331012323933475016514741719391279823328498952464692736786833889378299200798950949600186088006014560182950014106025198448983436873780276662516085780595090383272175969041525485984169743750381540898072464569850398642273459436312869620919745624542579835280697299463800927522384220286226146509213152987685935645368124524035825485566861894186078121891235231916960777825790847348615607837367222783520126889396991003101722657860609936578318286126426709468598418556340424476341244053848511196258636589829554645924269744225738006477331628972082612694807819484582665281605659475430972207818410155811407638197771794706487274029838440324542575608553365754202178098389287697034531947692431197740065187781058497137547751804476323426776277202416095099503760837806399067309349265603544579170991387858166361358542044422569175467586842411645127923571962244629290094458585494048112747168285910070759857406203987210213911200991702327668072822273580970557991972672531984395482744783387711112611082827850684367962444608529807852421153275975039675867635387282305391839649159930997381838745966324129804190761237566827755585447142818726601018607069180114989186961546961722701022480733581346186600267320662025733356960190553347048405846875072156678258885570914781747106945619767673833881560494130072703334540422751638432536009095853183864736147138393599938104125423648884594610317199819780237567293018479004214641114239488804391098066465456797590931392931100870050724631395262696218484251350276693097131842747280670649519819190891087960752067470100895588671495372000317127543846798452892064179492278685556028935885958328423278644516587194661822519747754464825675292618907332725895468651559715811396547944701114596014665705557731678873060174331219398585902278815139311319811797861245463764043855240028571314365420330279987289758485288808846045734099771478494253136090121766023236085642430899030296885835481761816820765836771618051854085623880109480767591572950349789305606885938139201469647333105641413011695790629982612471911868467881812717940076671037839352990829137787521169783616668624093312566614079433578790596753265996671875471609029959884640872237368307053600330128248645080307453064427694631666265341652762529198461515050676814195814838773493347494101293179208024752115843084330514715194418038288532735868276526301037178979825308742887905588323209988919097757084867142084282085663942070765618241439609356022151477917057049742536668546927474426920894437414596023357549628862089344443443503633960567837020587054167481085583338461509943497662235969274083764488691025781750601729959889080719446184447636816958387692175591227780098063785578589238675430408623684492963239759910652816016777464304652772063296553998072179473089367512301927526609217682132249142229804699229939796258555235482423057967088237292478408870409770375509254601194814141510919761021697898767832338016264576004401825743355245233721561489598291440680080936587198587919915370986070800341831912323530551245693944511426716722040571926087006454451412072942179093913081765505240555832804902904823298718810153581503968645165956143515998762825416276140943478988439192839479803771223417730841475507559023675864204789586373120371135442934810050064892327588139468950340476293990969925896960809445436768798818508991270151790444176499841381102364436306440343701386998630669216041222835526170009311541511104245180333433247547709250419654480150171995231350073442328283657020325658922965953851213265149612607085276100831538695835302401044593609466479090222692438800456625807886327007233439229480127198312621015217896393059727720523432771027230612503146036452040613059439282928211751455281073446980822344856271739801888729095821290701460628229898546295647394824123098634086651071165972343039710616547207990254342913956779580796264488118718035884857370411794586881242605246375649791443671003509774420408117083095793045474150024758871305278002246846648392965776941633544694368149087076624905189517462263674605921088217053962950792013275962177231944316110119941909378166901422908977682888250903271115587892098558633005314086594969784110527940120095683158180631531985362767636173303033159938958305499887066935025522925333778805602586259563933155483094753010415235177221412797735064214327320460585599736657109115166541079817077774158986499518175196410933742897130821531446899550386602744157651595446986927250770651248632333205982586926952825878435167462128169459220351112236410986626125424119156941596681554257486149494862748120479716175214844952568797002776071753867447878884746901903485002812233151655121216456365994218750559404439407688519503142226753065531601542379864009836071917797806456018406302606209330508168653177830297405017948558510717403584288751246423356077059812075263847008641156895542429997280635752633173814086667201753582156129922109688961454220822784832870898065653428929876457352898559117103402632906903312478908417182078954306298950581881116722141581144875830291873919833194341823648951438951453476210937716367018978391023647855125668377452027006048723354780414391136074435555769360357298653257698354835868699382974834885613240793722610493225452532349105758006676922493354300355522892532324557406421538992491523267381925468561871110114613516626007395734755380728476696125617717887113522548336045652091398713080521224397858245598146863570191594001301229131508451402048936641019539410032088038213953196293005069173950599999121782513572703984742532766857498437845478432817167535870727482961033236875368664541892787858538175043771899277391287827253992573268052731779688687961894842434300522567342472925920643282685565670632306117959974618670424642130984142241137956366000650158134337384545914692014352591382058435352045387739754357216406165136578022412802692942509122121810654727379935835939990513289761797518285619724889316484134224833385926655531851637322164386325322283054673184082928247603771414875893781865168346013418714153668932386932789176182908253699414728222458276167775161296052001091329652011809793049790846238284521468102618489743239265485621953977200076206803699695842835263611332589193239882277845948375874825749834648818731868146189519704750944890648354441097430028689030177346804711676053340514220455880906790924826007342904088785830472598439458158190525621047803798874840986686643134945247737292038759132503202453900474318412945266669532894587269570726294921243335202261857331007822229697997504833245200955467132634629049923778982086271761957989068060855318298548932953447438699176843069712455022324963940983037999754572432554111370923731064301595973055611541288353287636689261811539686592036593839849747827705509635690657662055080570305783491052726811621225582170492318564043276084975779761228813306188810465682494420619418386227238645865131876744691362675590584197332217822894342621869560851616952189738828752888153597369075126606623028529357004078907874780857364529955377848173966761317464076980209219167869370742550889853937463806936384494345714909673438447316016455540097089515024542472728174155612072450093293227619067715195812360109870880183074220301529464908126646936930208979792261263499920854544172320880886505292982193858161218515888596224206593052232475245591408571752864339558628627090136103638310710119315127393081913596012117136378414063439408456601277881731652879186835641028344161675373922868613217565125059588328582343871504089792612559904602867785573623750025209857533797524648262086659462711749649842024582522239262199731893484218485037632379514990180207729647365379664085626835657488479828620369121496414208949487993756827090352332047680053029357686956828772826214938440135703259131289571973510001693557746921508379693900916122083491159731883952176422237617951113879434055505171572029781024663642355971784170830922792805276764131862701570730890221289275161132103132473757418934196406060108609378948031687696511197188426351041016446722600478293694787470630504758271864977538817512168870778897463899592077952364273147392828203581499381747189111680534574160200589942417147411152856072484029639328256336302486986004472096717790122357030458773373105706550141783748660676617057273058188034374840985917256261593516510926716652628805953954388101420410485841533349438859293176597048921826779025263745536735055293307515692598833075702518224523247630621349860498101852876364883950574137230139883407628450467809027848275182318245335434554622636305406447228572212845953575918609591385808306624445446618028887992727261035144456920025633841532108699584348755279310141085473997913816066559826020382263265604686606830316458360614882437431808621077059066520865856570959928103517937623770102560390368923910579977371757883534016405477410731802382315939847748679509523301196487964036415604747110040766677512562306650391777136127177788776697466020089883887419343262994017427993962186742127889566343811200108236314713733700486493118795224198501520877790570241989716489683043938110986270548295253805734121018183701258087651543043995529357109036149892489746357621385486031237914370958335376330251747315747499418454807491638552154982146335056328363817473915948016822306974317539166661336449112157835213884263010450096288002571498498288370173930206337240942884209370446090437217907215381220321635690310013054802755634648880297261117214353542737508464725795648666872287516383347571587203913025267786775514564801766067423545162420336397035023266438472083150894052489507702808580533981639623650312978884025342633270658531438053428482794589944536449109180139102332856733933333259117427694509093015767121968395310258394245467848156438567420489752573483774494971909440931127335562842597098412124167814398716218214424552783223302812023826224430513513540863140701581536373713966466157777062839754876421849167062685308135730793258802639067399077684301331391470155967341198517716823918969136558781593674183168450084621797829169026294067333565206642911923946739922068249276948810682926890630732917413981238762212084434184850782378404593947724302401206418348038906638818987211205336068440787378231501993364011627354953301069629782078455407225273937989791866729949830561285284215129983682417928412828331078197003764993976272897990586190349199363991874374989544134331526788930288224140564913780704410936066034896951743541504007405509498067988279643306447210403509344634320763899460501695570004913167693726170509093146410251180343906965292311641771966237280034425164484241439762529260486819705059763036431595811596154139602524935334897306112907314624603382431808844448097746545692852692588736480346376297204693906775692670508590795124322471309714721192191949005560613276233292495077651314256433974735026932092633847747407077624712873283504595605373705994195522452534526649708304379144361566640986883147669380237589073874938690511852543992520903343252666418431123701545848161869433888008976420807926975228912305010433431898603630366274201413712068372252798265829657705328872008791338472706537317185697796333950998742823813987269560052000560916008308877587280396924758512522285340565441697300749325453164825064709596561413252051451953604955216224786561507896473891487561828094837903054563393154113174973995945727838192729636852150059843934863394284622362107379923621004327240791911104482472011866711779866091010302674772264690411053286307382419023975297341250353278619277842645229642016325757385609486633949616873392137219688431769353277110488933522641828855941245902998514049862763889666120098239345841054701090825424291314637335640295313236536547200176738359412350676723446928132583222728153635432721759585470308828050484729035715065553311838792801227542989293838528941132741414158907337977551939416335946114705289175276627799704288692631842241500982931035491801238982605187414856486951108601481494340682446856635123822990000444178369086009332368662706341389097690584938776802448644649137289544348026012104714602291584443601204917988091170494752286973275867186225341465397708545416548264426005422519968550305003282117586721176357909451238083346893892537013124228201326733999096215605560729297509849113990514384029604145713281974640187891899670589967886437705361686677177298597438739028275637436891813764215689598809729770798043317319471755993239321484060341153517383646451846741918261832577344806173862348453876059512977473001919853733701739795323190046799461272733493322759901193312681689770876957919728204627406749974411820217865622256153986731806557691993869118524175071165607387986767008075685296161947145597738638516482268866902782476182294149977207247673207608448782045130310346300679626475840216866269582101855534056360729419384281749562637101132977210256988511719700590833476535447900483742549059928234365774996252923955472361234282803928630687173538737733655108943836292881138759529696094410346206832184768046451950433697662545563283836962292469830880312005258892494174164226692475279046098219879711395151310306450954437792322016565837420728359003820841646174251430052610293133869274374004286995613076945456878283788234082846661579470475246485917165549405520818165570074758361064802726653793536572528490706935998227927042930956115524566273060507571359831271363808765824922092957063290430128519117508833592144925254065979059952826732860458314229456954222480974442387492309997680301656736155370288930115156801309274057226690096610477202704582037038441484372910023458330494128954125151493844359062926054679593564700530471386478815891382885135559384483701845580701030217081729904711511770871121578227673718630759766888012620178062945996339993549431528215447478647970951748117941562880271954562881416543894573365180790355868268098364418145115071249869377129787639485368142179938390059080344769135671413103190346137941750600979700427114181775030315551503624702876592585057388299729614459867002809729728054024832485463253704127502543627819758852572983377653730822982269411327330145596154587131854926418496146389951468851118785917264934930281217121877512074790604561790642061044256868830561462737749499016430385466308098313864281303073824067334716188693767134196012740402843212267789447506679026067594282066797009388192480644998839907817220843620947721587184649707018606852887231295758457542192670958936715922788118280069432253180765296735015648090453392346264198360429093610851958715442344350002740675664304062231650789836517752034911984751973254334765513066612525157026897985922130156711213255906986173969215762843997733739685652709137723448146794556025839827245690425199071655553882906761152355032156380566974934401965960493710237876156085558512294772318425837673664514000444055911609929021739039968151674467843948547395694567758380891169725981447370552809758962440811050649869055715232100014115493397841866693815580273395906953634975667909383936955018910320769725608569702581514837714390839108797210592247655538578795536723449139747377674056338473985370415435448095429384284579753004798808701438185199173498635328074232569319147657989852401016141957802148125848021336361011022394928291103722123846266180856515499412999134224236526549110922827698968928077083733890643134465769011453427832566911595148528611573624587451749013126885210726351653701052801408399202608314982443438978302718991442935176161870243932978633496237753216744700388166276571300725823759790543161739937250388898193494675306557116700805160229512249510447849341018864189947260315399600396415413135024529645170714311595720969255183246453777669311814862530093356337935057307963842762997133724873616005709846733124568558701931439484710463555461287959306697942812514896833486890526366166540491573690233173159498868079083269487993438438284772382041532978834210806522283575013102431731161153203802087582432920625194497028908986060387126000061791446441617733159417135325074332211509105743618899255321124952925830203800530536033478737499931680427233182048127360827434946945713435910352932890025808858316855147268401146578894283490661044865978097833923879934535854911673991406982647551264597007377819150834654398759612622269492347176110094033947268589452558436450519963676222069437810481144764005477774183018053964167578680091863843014550378733736810783803137087891782175142240212803722880057875225249809230639867255297888122630219861704633509805353977711305131640017915235997012782646262456803657878771197581415699044552559287235318081933078966068038950422132245092104387299744328957682070375937718594216628389297202794151960237197806223156578141896363145709064702447947933499812911270579887660859192374446526870910508359328548247810297142104169217641476295476723099524320957662341288491749393246130659962911308584533719670920289135415428476785253444672750534147698696359937799712654084286204431675383529761910921673936742512455267846316522310038696525329360854567830082222451866330895744909588893642554457623188130233084941261643502566425932703612134706664436342455269833723601007508477347160029856451115435823646595135046948671961192349354575108860448833252344940977429737725577046882794745174289927615390892005451089658844522391162464352640256071348091003193304233020641974419778295606060179630718567179654478791263417921271000541576808588274053909705839000697611118569155670121933097090892745559430116553628114667587017259397827393671964552126582757014868003055412063457913701336867293976599744441652684895328080051918710741293376122133373209078604629695233362309612949179761048436764204520418923915589840746718213782629138961813332726474333447644049774772132903602979925431524540436792041381170184339816060860372013114854101171155232077827154906669237180786702869126680381310076924581015189573456960922632147730201383280557670071950754232359831744078807035080370755396973067721507373150480256657541066943760443370071716888469355942102293950424450211502107123595698801734762378893543592142670571162760143465402167356964421622431373169818019104116497418619759060401747225947437946394180282775341378543605837655296515906374752653523489121585390583140321907745454507825185417722288074785085688005977139922287289707870069043775282767788083714320635938886945706604386622586378547997026567965226249382452673541762671328944788056772502865755938220877577737155970490635465692891367232274201978979957474117716262564448934093410795381490354183169611609739640626775489311677452240127851674592300270196790687718421896702155956867892926664108341178753617784574004611275799319313525837644826135590968874006714242698975641705380603644257342062423675882443214696508051167265474276486609001700339114975521450606777733154576084939106503887133391814767399093448983039641266735879898977571649317045373730957622999427842208399452243867880269576676911102760294436353152691563731193619819013207212313750867852894704391638565848235220451964173129148847904088974367438836083448831721501710515139878061617870515078043376777036823823749108180665943118787872764736075629804194561908979029727278127332809747996376338408520662465804391783345387164270499825264886721123090194065948049131677776364634149758444929877936031093578940409429656931270472133242251034286272765572874010814343143077630694331505593590792836415121027213662029238200573892277131084765274528319496828643386756134680175993599082695530202853011015976723189688007548307566540432691888674567305232477199961759082130099870099153813107246571531076576178584783363593137479100206990651962828583559867370528651680028722098981821153457434222717447516567373387547151402748178326610712014579933123141426877206065957995034628693003365858597543102187036681221099382617832666529470881712954021794853829475380584965189637722786281126845424199881267751623936510137330209286004452265558674098901386415105265623697789163476661308504334636135744665038663522758634129396564838984188036720556628471037324377534131863107746848982859617884045176302377228147923453637788107059359408631104534026964763723988922943788424785190931147802315828344583049885088765427471618430018376840125682827362776383130278699260896665034789015655966500775818643158142069537096115834090024473194371328696970783986355176679336696693024907273372562220278412513162594921107716860619546558573515769752239782212000554599884964390011232604071604476546556243609634516059280599142241177978786829442768526824195002004194426813323800934376743027692381825476052640057980273844086555156224310962848999556661110560698602375842709093859829362485134396650220731534141274391645598214093694326959183075700109070785905228235857927381834014398189179678454894783758964351179201165438534581065032984818929798650444777267681702093415976520254696487035579940069077987232678678047687195481578336390118730673104274761427097593686886286490909586317627335084402212846064124027480972137353782189285355689318800073320967164214986959933952811380295812643081243221448110590667332152169345264897884083370550630005234744105326734769427089292165356391984493760449786353543587211069383378670030997300071065180436752673907561840437494307509962836489814574318458515153727180412319311565774459058274694323344373041271825991025378864060056936675942779512004920184390242875002722401535125460345266486852121255663947865112349544202369132625020950506236039206302386810989384879835168088589754056518859457618797864596965250752738581424656555376369375337815690025951574867055625268110913817900267799301657752619336513803087028640970023695449598568421946499935124719152021558990671029455679246276729684825420206373562194551982795056296354046923130388745748502843338920336839543984654038134958336450318966423373582593313894827613598902719636531236798224080756189224365522888106348451262431471491171567325411616842523186909080595348703823351244095379416295250771373071045349303084903859886694417568549547371267011246055240466537079565331708354256260590535276799905093902192474289162788953465506767928183648285964692907490424229585327827743096482757604379614171519461730864352823700155188116966691209701124635968165987636902766591721837297940598311228331239831494150884331763876051005546315069920993988743680150890854600316838154494727099322786155353099889811870319330478758954275519748683776551701088224654280003104389728502965344227864870530822181975124499521686607969909891170428146987695946315134180519145857485555056332714254498849599715170357426513662305770579069457109024739233176672839554122840866637145460712114535298496298850988751795686144225169615151315698162663082075155822678832627543900226536117349321859445384349498892507510549508436775150354006554393008602579207852264921732412104150355152472559709722465669161037723311455489692531867216986555960568248774317421419800963009663938729570082662151817741480159704949991820587975080999320707102795260545972449198434269050013028010259630623447165355141541512694238149752935904473335550389579079592381562044246020787312688881208605513721764881632669835847556614900079372243872658335025121835331535482486010880520813702810999588302739964075548875870378792311584391886726475853263727077619457497492032487036405042275724128158209581130130630640408984801313692912917330919336584738530852460374196326576830438927756235386532113590126750868014484982718102332376254775001441101565803357688459007971479944353052770496455406402130754862790937184032219619328423241908399324479151594839897110029032884767484607530580150803646505444626815871969893797221307516252329876607881189297377827933682197744167324916721155231693790324823793338900366716934285157136950392132596316291278885322461765398378314125830777991364305982816487087425881769624694557616122459708993259308072515102317779181353060048586152003709633180522102962712577196378460570533419817621275493883435954169097696095457936849055630584250018646478973691746495576475962634651574333135128017692415049037920549668761039525472434427796877856409031246054370334709050151480212568272754343159919932871198569629961347400472818630571489810136082847730481636680745122274796020197662563846878687126697331243840913916900466803549442020183601479484922555635912247710791397372635189710514503632604761376028037874336148976690511920774970652269080205227772553691937647327078749748547425803320538549087639675490116521818359380585227206406823871291819288183296733380351851263502383177074572337199553211707249527518327881224249038512249393664874385658536874189672085940618759206645641571657982771009223820488899548699375035825711967802920638332051132176710483948196562135172033716893068890160351480580150259628650391398189389561302008558541851969425904909163674118604065586295071881661983559820353813243343481019956641618428131328533567742013929915819583805884893339514004722328648740385144544062374291383017795043002347682874421820430670620667022813119752812010210487698742797001344317376050170193616185809278542879527088936833163486179215149242355263070965706782811776632176158137342688233186783943185762665610749428007583439198095137067689395679251670355233429486418802380676185466493012807736603924598869121544381363768100230562153722292064249377804589292213555547617296775890106199682015048274015079406539573188410796263252066954326051209697771193160954795967443014602751301260068365315356342504471847300912500796791547891924801565401691605137106036371755555801348545327285032562551135845902486573117239935777710373572019520303758057054474213379975030919235175260657451201007844968523301755264808400744986931794168947705975302823586485056933863852760248560983973526852261585260741395412453085121792923330326170910732232706290634249807679095436117152236350032074289171106859175373997643542830706392959426926105361553270998405150854946776765873412932363302751166544234407640990083297704927567615117814149972134563507667214550450561440495321933707809410083501232163273724792308641205574795990939499667534597956786129856455684940024636875535566837146164560261859936144918434099385689614831013644174321237365939645593050827488127559738300023556421596890310939323238477832120197706056143764753761866317316472688212320604009379145592374430395458028001442240815867182289763283662584955321843173410468315675680207275704773803500816093787637031940442456052182272904438916397492505335526434133471154559983302006382794962910490895300337646564580707062630699178385626577418425957197042301593020030629484499157394008083264963665524829845433404800753603187489067382543636410289316862221857125334802602288368779996200115627535812661981218153354417242803947967281952902145597278810399913742043414823662045398199808800448282728776022479455833589940660725592075524305844303575429587608448748674169371175361801707117016036415513659769825839933813044547859060676324887893431069086226913486772195031638740466681950122449829513495391454434544843655462726757209706004987690828232717302966336419530200460943471033371300537988113834572800783522466269181920351971169659847465793357378035390693322643292022599523426251223964408925920179042532317797455998841014958645200599729966160042842952647567992157574103712621626076851152307689716082328875935610671816605201494236067472749090624192556294392988286329559813347007679063610634045438365058332889423123350422297584659955598380283150738220619310159676403779604231758057678200240235423917145258034389419323417721045712360440110134724917894778606020442610998890996548157609754682121755833500414834812444094201992607905257428541487146579903149648004203559534741516613254423506133835635816954030019733016899798101793983018667351367757215224734999941146322942570669912552040285465294924704257774009128618989315357037978638516442882224906869735341967909152597088550384948805367657525306959256857063490361433954783886462994677670605162007594513393963207330945318821766567821465189239535133605402832702458953995038743844529919097114313603513041137307377059257512583181312902766557635874052871974854617362232411318113403368372099793006918098237887663321859329875152523754139881503543378717554380168697236824511570623973341937569639421277292495800421701668277412561272910965795200711758283084921828657471625357256528150472879487955238305757739780391446525731307179084535015348348113165856820200169737373581118024401270746286162932179661909249049940220859725701547140938634980584755520915054770326835780576001315701727959160763850198728275743297854695280471539861793307071151823912835876744740759853161737715021061404517418056417819469233971954713815912920114573048604047082403922940424542821638509404944398955956107671745336498718020277936875485927549458064354471319351895305624285568483652623948557902544604901212057452370377717197632578988815515898103849135552185667661954260416219238102274827956720589467044627625353874907052666470322323267195514051102480337346769961444641105131538593141670760038377886510395531015360589183138972657605408260529262812013752897900410463088439802595662764616959504010932920449260427322078401980990589052963441394091799886616794737588888480189542699936262873198366085685462320918669416095305841736980328995472117924576968678596981930641565541596475843178552854160242068308537201859016434671856915322467813823154138962390307192041527560857448927325826215666859715762508020917101363998423802058345381031575905185789145498718014428105109828577157213826052236846068388790249749471924310398276093071276539355285670617188814837211800291239186164102447588044321699426853988361153830871794767706482073552126513246636260338068648857729067146444888108908607392185442259944434077336359672382031708624147061586573070488497923036497295760004766402347075680858448281500334919956675719438940047355993956624514196829545168977227346232094463197755764602261677077973404938416593862481522531954060910113103802263926101867655919636065015400796187052278231455537878880445436118167642307272565803928523336404825009348404543496152002163607848432724708389106857141759371938207326795938631191047383560460953059598767140741153903006170101412979910310234442127099364202650187298609982028928194117825335329649564342377744242378372863381621215360621000142208010520092530523956079859515090288692164057246469907180409808143702886234554795353481951985844744372096755706933762334319488508401816454084466417964127484471949190217145187617928253741424987151618635887396879104769914092197252281281860970167543042761810513883154302418817126099845472411389182100690071247372056765091872783717042107340548961918441276994670713244492315212206185448518069195282028071737156189052709493442898388439848075946642302504859918638454055510051391580075968109903155612478767212798648352559823396897408398062144398198977035556245218832517111609476795448191195923470787530950319030871878962825610666448088827046425467178309569912091923618206903307796112270467700620979342159700575718271493164062167364540899912240138470617832652356977040799448044580913235028621744521749010527754733974076381988604468094031178187956236014100092212797426533696044345790235824753510228506321351680598007921412974864886994153674106720657571095038535660704234290527701715185102473436487990582749220739674832317780904495140481441308290107899875663882493103949882247290005927813146600162559588283934839783307365532072043381526294843046929487511195842508136289781481332568099386313236376899043607947724335992866372934437387636115347868596361264835969326907121201180483044638634793954519046262321573316595641833235942308014220084657585981385885751372455721063675465399239431189769720675964338454372698499124422997221216703408628116579052920690377375111756756281148709871493517692734837845877586715341579765109031909061026554679228496642242840617737001893924126724709841344010132374304721871389091222262611649245253362503590690186567069700116899774770103843947158341039905561414859749762515554502168198035937655135864979851394669863084006771474589889308769534280760077782913397674529912820789536049783177318378531529411071696684683800835737391444374999314859376319821308240919623539635108476456764897690061445777309975144047624533460103190947884301621923620194402541807260857753365375373105905270594125054343162264612278157057561691941741199157443090327736905734484985649840504024829280518440325903387764069378156365253103088132032972485653834815308459461682855971659629556901461368034122073571047298575217574001125667231477173109544839784139712965261400283574579942534068867206864701289029548790979994167749465344120993447591872585925742487451857970881585563022413521160907075490216599571366182184306473414824030630349602779790799731155827572202176723105041718724240743946903390296786462696004466922505409816285180314827107389032051266838251391041750770258598874415590408625706004181117080744368464297301605852342731370791308795511098704972279404193841058200933646188349528278085578163826022478907993909487244040030966601482644794636628986357181923183717891994567666530697946688401148929494963380779533263673902778184564483244227014219609702433897008728385399774834419823829858205714702025430737440179730293483464146236861523280103919170885345939187615498701273223957938811778880315375733797368378473875107712139317775081516039950026156006891656372365086241137701398657456842832835387502583957480579745758865305500052687191372687406090723267465299541338450348008205197210785163091686984672682842112804694686724635681086408959049420606027809520909476298839175036169542352403896997335029116263956051289695130843931274197497787015511874590948990483138804566653477174407024692789974245191646031975801632373877618170755450291435582720730317331480860088174154930429797385189076555425653353671463868726980650582490408868664391841583759783777746791822877743287440172084111010052982544390741861595148798326717512743688655832396010190617967622277831302045283656635423637631327701071149822350748702929463908005483343539167541268316903163147901288454448761820607163389341018404696674476690030974563675308947122320586912492842767238887977661047595288694409553544151202826568696682923221069388669852436778730393833418876076610858111907271581758148316869422937780106500591115591348003556622037627819330565858104619252695396931830874877643989933364403016178521443897214226626957334883956112432829521132536783836077607203427250559150744453212577472545652371666925887312122026928701475181329684129467758090970602291267052972299838594268219635900532818992435593237111339653926529437763045787392892231954582922878600004734782121650487276034033923731189556560144419619101606958364989706090778468620991157296272174476272504596239805750029162868740461649029535863879555943492032856635183316236683227067727078499092643066620170532492121442177643428991829185284401346214307979245415492381385746013343911931136142006757053711880152104699987841761607868536086908627763445231024466141345154898400616567816464537110095884651870399327547828100350253792966106344085609635024330361122782716570275512814955377967352306587050090413548726568888055006262496142561221123063269005541656565012807688135921565903855623634428393922871578838100090192839505224883137489120946991895659895756568769421128772747298026288967779478940554823938764952773715175989936205333447745251774097891667504732888483978962829156685316730118217312128465180801866914684644782858497984979778743274461604195091465036539378417463526968477062702383030084135357208842605023961554436901275148354100121011030694084423526613343539045863370991238055829988984615263129635569159213188448150649437396716479315866626483063258378683591145687493607897420741132797587994222831438446897486298928766076456035852413977277364625815864574143936544701279035783334797384596880194390715758721818782158779789547240196895551611891087540669581782985949095578273946884415647892557959350231575634697073410870111184700394058999428542866541067776346342003020810942479619062552133701357935859308207266101983396353807914441518313958077670747313675173741688695105867053040178486750473620673326869138447111978658095387501486889841660405463616525368081147460941767682137484829898869298374171272504249603656644333961236202605420499120465761433012812165087477628821798237323630821076470573717044758007543375843371778815196513444598410001888660226621075012906869169119492782834106728626018393230799491492735796345457128589313280895172024345931537915432704421426004477143236917940161809685700558553789639046461301772600711592179469839945411325602912552503627548772649725672606937011392742164840151670194338955857065387837545825522011521621809050432279549676870730398560712968197081244385166947011556446131173065192712655480033515013158038413243837249729405981914995471832464061220992897830512637349979043646384436443293826158345381314100203280539775062078118943538019399522812053684914075263979792774235238534471789297613041513157775106692844435176157503147370115916358422232673519394337100208733872002142739843128827536682089767688364819420229085607898066401048929549178331058040094457274921482451013585804911952122151772506854092250576133556100858939568462868228970639421097011053497154107556146467876378737467855499019316187111615238376788266718932045153040574267842456134480170343551453860933165989254560891033268366215024816109482314502198635999308301857154632452449591606258629202642987289361665719718792242265509639133747284415651866679238003719155356823510171745675880892950768041618754446124986522556916492042570813042649418808864518484968920059938179563412526857519574508192657326311047420030349885435498941814776536883617285126288354519237035406502825145955084377007078143459395517634666953518187718974224027725388684253018026211286424400480466279852952237543725675645171737621256437763336553883352236470713619346298084582851835486799621510257067371932670124308412189935752085476700477003222154526517876870169488844150515385071467457731971750511360222707591147124897377662691884960068519511885534269098726419310745824484297271321327086352861952232527437734034830158073305771319947974727799915359956857310317846618892157887474573180817442514779108600694936918179643879105948793355039922786766355313937994396156183851018251952796827735769709017970188682744319664051243228263122640491025108915542582194608620051006488943696763506426572531912136607400317249182087455327059866753088410244540874168109891128575307768517791855763594779124785317853450907182385844505193017470460634862846703028190571438155477864104674866575717595610219268254189701749039495096030502970486602310621442786984257073773820812802831916191281264515226841798788900381245557973038830201652380047381355128188828087029223032122489461697668829926777431691523762235281570840967967194230443892858761466442288163503358108056183332979178570390868421693403550224197813649651667030307554910501915628824560932050354498536869336780980238860080562977366625687571799849164924860145287242131252159575192572751258567866405354914067254821399725114425576393241392463070933536705307263585076783463937965684819091299048682654320055075929332886677787863743408548602741901810756996446682306214231163985489031934999644880229782507927268622082618383973818384007579324526721684923838386775680904440270796117845960006348004691529700888866556374483400056713848669131467685677977736567673771928527577038745580296819993693905960305061627273947061903880477655762467823930470307108817318101178900684568989811533833277145500829185808514215632756571315343833023751619397848942478488693313482104135115305040700027960064800254028480293102036132179432814568189715473368611059746345697665302333672671556034912531576626334707770577174286181355053267008364717909580872037006127174482552536290133200872513240680348664414699842678325126667074061739490779445137496979139251113610218553060920804218681578920532953383141072488700867526735364271840138334566231235427564892043251221495567154280660892595172809295928653151485289665450989175759205553617849921719019818837751329673427734338078690903817864907440270168134627934242721588909617685315187372775036907000064932187457714944082636490383369057379353288323851718313735716568341261255427213398482249626319254101609489260238337976344367666032536082372910864511561084383510285195586082724324335198914641704281172403598123071402334562407658888479405908123039365711035702717528851281097369644528386493650182769075266443086376616184489678318882086883246877185694132927107111070291160739578973954081595051246831185794802129575868714612714353531601062132664086145670064172791081345098395636275500593262425120848121118941119543472759401151467842795105243664396787951415666509648435172584032107046517593658445989978877212775197412327609553562059584664593752797637804982514626170219691702428350184608320815495082576824971555309562334746332504524263241739164098708586389073192280342160959956787687869074731502047187700608065999846564961908294214526228349956271720825602356131303594202329825521721144074456226305581563079510483090446431098121887412138927460677686946195231343844154073861207040266221813615032650808498148828874222428107266255589338740229670622365064148055710336229928756217462898065494967868119887232460656456689767367858436968637638307397570499743274606790007030942280315875826401783954829611183949922738482775663987581406869167266694777738608092678871459436195124189277884591504707091781790347862375951032429730131061668411096464424290204224781728072777248071883836828893903640924326646616153846227543191058448181092406947699708738302956200384819355494297224847491715929923416684305619267042816218561409374649969219821854921635712136468461741264564241650117433024518249966168769412100218090027814443172000355406534710094982518779214888523922623278529545110632763997155735740523172739515395309694006162565330132618851067136077175813525942489338317566674687786838436378944558474077127773976879688487812095938057682789646726103888434247324628325623519162327568459902205937681704053925153064021852717188723676147152379200956685940624577228088823810576865621554020451748501936663347385679988121521544819346888255672483710668086406320720160622562931946013234492363066837593179089051138392030062558562572880460577897328817560337929426697636272126302968834924903530094184058931459550950880342592367948769809162978561347716936536085978518459779616399254038046091801526264598965596318246109628368879659205268292947728060681327979507980029251401245388403777233628771518833814110040467710921775837466375045518693043932439298815883391658614162037960541807047228662125803048897392660079193478954374491573852223323690042465128110968793666909012409803743732085978123539510470510309963009834309064763511304460014530861588676941690008054500321367507941570972065258406465390342539597943467391914666373222061527254850055440619443471472508517907910978567568550487248169943557154026328834916954082917707372565590765816354017535008206133386547488242108162318762339448231563990916263364788602593831393834269586533832306783460067391041773547389497412280112328851970827328747448630906855051726208687403729646935949983404640686764796079458567103097607139272585445617491798407373419054207368632997699199836647363929080621227516022353352239119603279797891624778284482778614403061527221163919939517330658890192729673105037534317281347545124739811950636929676057780321306672306705868459471140865924570231503238782487542800080540842620421919442719986745119102892317202331553251090925093424511944282359953099605789094758541095887676745307927575968558602345140038277198093066545107225231153419320776392214469514843333365228138735852618742408218196747627238176399315144270194650992391604591531706891971064415350223515071383718100952385551424200099629877620219137902689334037987956563636548028087422256924599477254926520582724643371205046705296392735757392348680285034058978601821322332548523003890364440727700226504293913346072737598459299731911778870505607029361888219093155075409114566917761262538032563075805706308740595000327414524707629484021476577103051097287451117590162935083180116580389068926961720415479211911210478189665232265501157446111489840830155142320545867676969082247726141549130080812094140074663107915819895634578003282458526409329926346145242635800810760829987724782825261293933208593977628187643278483502487591338644488779597280702808581995593803264484312423339634671934729277344786277145737585602385149826368348437159802431116776948156751614509537355559305574390052634601205572688057001414215615940150560341420236774334092052417118261901731824852358651023442396023824272610035748537865253344818586089973497640163248866481731049751321083172900581136465324351413215987867454821438666405991827710985097195983191738919352554426967742274463525162527530495026939530534555559110979094514607925333702739585394950872608505373171014499067300779710929803079366701658195088704998471505807504873647413966985623465425416935035323440756802747389890181833735730507820176543634678899589151250279258097098122462569658811959186775408670317968858634788219505901816151388511029362981675576479140216480026807369507205030461156013228688939720306142152501921178768732623426902671707727301993125443801196540990935798748022031956244225868842024979334898444355508504175851290506679003159150366046176567488955826157055240090949564372325306223236513592435662961573723671574682021855974789740654507863382931278635391729353408549640121252976099273511374522528063734266060097725318658325817647827575813496310147639808944697549420746801819152630466931421697702570582240649988302083333060870283880883236314692307973660751370103184747775127813006336508384345725731353595111531657184675603476485835854979928893529723950393229674038880269050546582710083004770390200000663303811540321943221877489282401764203824831722538496560864027753762380965326651973843214789358985295870635463216262410471401086934063708250199494927671707794687466578419984920572630498536017704896323849556382245974406888416630882852666810068833754024526695729663453837900782064838599836713338802183558796551906682653847253932082595552994346412827012567486769264981142570615231806386203564602573539498877748377553066398656997099166020738095264380913954541244145356384873970034254188577482656752338112617121738681525225408597163272042488621557321546141096939274444037660039949314781686516018700857322081996801269040078802124834710623804457267816251787679831218283314917131356948222063369044583534538574988920132642859832134140149943363827839548237692349218275016852997576304890391812255233237261904720105663907953233642353422445892347448201512149802287706093859466647303460787201640783257482002331064704060399169660859651224174731526470966985429060221770999436620920425717870021279048495754997702490908125780785188945593703639845357199582776031209722326413378021276865728215029004567446254006607599300094484467468312866987816023612839040139715433837242281062852885076622226247987939781724265301749831731808896295111998665890723911181990295926662531816883737920172372636235563672718576089515523380037903418024946453788097311454855999188921601082773819498059937865079319405912885390654534898220463411235844569777964405267686643372466315348546820556019109265327410267364813981697402138813708173474069759966604230984802023139636672697282468305267027983791489921178226353187768336176520942481016827243956876096608748078017155907118100715361841394952850850745154320488235338241652797082575850379887781970020380334467818741801122889605539565885886851455192976281808283608505557688458349716153418682792036487603324449461362557482104538501312752505701519555797633728040869847293914575583554845908692628623729971156737410812857138717721769650327246850551165933100133110798831410922949911242309393099416131809244013055054580855235964154385946444754940884424970817293900817351086519237476060756211892097398738511461654434744786379615849849183103258234956570077801930452451964636278616999627461356283907426255734017779532959652910156216925414067220029779552815437416164360806684584575572657076782388204476819854516247831352210035420726883978473889944819307088433204876814718909925920647009699548638046324179079928079370218864867342595566251166486470844088350918655444317215448577641052209277861418502183514854062267385085928357264270433566148298122087678665235708619761840668097234194192390204574208913965909353870158758180558397458291703724901715938002055617518176098513870263468531052368382153091069854668518762601350445465679682283088705744104046278991633686024693900158318231583615709951832088896069868816013765905802223276634363718917714269544264090821715791441751689810998193203227569144195876416627974249201965010336446202286021811732868549930024201672376024214226564394968049009283055392011199779493945887582169276295694410883552693621363388857607406819029332497832990648367424087875171318664230435368059527344581083016213227598442378169124900049312542254506366626251692888647663075542056457680122482195127211847692171054373254334264505580239238678796491506263122642439972292969443110397254882420615628252516819189114565205496570653866081678249297632349292732225133133049066695847495282355078398979939476061487919139017300392189652246449310920135501557481377518600194573521636169331415775887104760294050029536097966544967199432069741437075642281159373881016724190926356364102728777907639565792219408906461787425694434515729671328949747258535104258457204707350250108882395033937973017429376612196513325202974227115974065547888033700294033019509357262361254550104000299736862918703051069532945707681250367906637856582979904229523642265415563252830888766687179533475635921921309562267455374970874808881825152979233819584496889234197820270629798180266535152997316842451379410210088402091954083648133930518611450283987278860522922694966793803811115128862090529176090622970114503866239875410040890323926717369972652281940978841990807154959022728560166552606659409999814694535646465482260021423230049047728316837161142425193654262312242735100804176761389919557454034347288881715874130093769927882600687931037064011669304655833305056797860882409258363413961989118051537381264381505936889320854219734021922283618705459732849632532886871502821747441834467884540960985642511952949286739430791434485852568577394740518810466338308599040594818165738788199043532444375053090703720255660716203974832981860307232487789739299132436537797403699451178465225049194025391153082023338256459598176083880779402344193839931015146890865291417908883349494479266083718625159461600807180569130933515100034479271468104187555771960797693445333909321271899024138406109963123983097989642373224282778364832025710064212149965935738559840750036027019653618719539756276321688929497219573151901782360327218005903569654332920519081534504160672730073043298792115978031371931810654357927366930962922459195025078907607162895520175670650997882628015584992253809066865275277490063946258682026604722533399253324712784544676536456893804558565320952369388920981692511229472314113182620628808661116476331065870540503475073587029203006160012441101604537719031350992063606468728133779395186960732625668731281388007874290080232576591942201035593630671341890668048411855288280198522121544599200087120804633197908460386330341922559392572154325457095008753185623644708680621803858309185536357219514555323347477647008131549659090305716656787345929642020898299668229244460685784028130890702257170548957813988434495731837602056121312884788858058894658644700045462986465044120638693183966084866445272687637820982561108797880171248864913766792462601451954398543435591014723920522898601623635990755147774100153922174993153774189896239291042816252972939086127089085186013465850371009639199495168855432490043938119935285451506345762744543831221889961155050040738964190662681162457761757352311909761498240209147741108955176167202445375390119904794995694506262821028858984485195671058222970873965374971425391937190691227473071608869506792381458328301968382794156632206785495969407696617630921358179342437662767738515781215207575483468433877137368775772425031673723796282979241509157365655570226594591342808815965503447741944967372176442425480054419947571834246918353212520709490987298459997405617069077295437233279538285141336303428837803927222080677619080556853181271724614530892297941765859976409089509951362474822004489966090306338939865718062024229096460282591409336476962562467455203944697541293074186527665125885951272128824350541953689555722860912325383096013168875843870049563163792747050325255525682659714416034716762648682452105264519969799575302073836836176520263023257775488105725759579428918616183104187972454617162893720654743914124280866597754355741121801918904018353120057415516332091783584798147321934091933595171487167230716660369149679600489735296399149147320146404595923652068600595992355604607874756285783769653642397990816149493839010201257712058637099237829161185149418410549688389529260749539978072280702432604245904299067432796304811131102112341251747816595567403124997283705604053494979933514688538256833908791222700951885311856633259481832173605996672374301405874250475683755900678357609646093436673862369768380897267640408812232900094519827935811646485151424737470980417166528613442999750937873481060179430214524291516026791559948489169096928739122330636330385702485246749713757255708006410893825070862325147930548893353723592433098734787152041885962459818475566293711113961806107542918290204554912390245777128436298118793144991772270161902177731073902181078969541367308913598713405399927384852199556961146978892154489048707648011732182435913831434946002196864383876991038502348566212897200880811745729941208302407851013511667116910821460395879965409246635654384196069414099630583696278548325486898974335104302674756808527006658231782163693879966532647807520066741010334782223715316781339505373536710307636568638309895294869088175086399451665696787161228766975231316116047648339568537072527022855198114910942008559806523121633400759044981759092497958274339251651143561873560201840076233708745460839858042391049636747913058553955229192648977067434310240304060218912894809544779247316936642921353186808361981961561390132205587982518548396949278121588663921403766128089238885305822589558094558027293749919535179067308779477503944480707042147844644481017259015892809232396981741919527386919349432324683778608339943876900238652287043599675815688846722470065779000430446800456531293654074151440315209645325858022121622220670998441856192736412246944180103647618122677920206556941060591492974959606927772545756871572875579671944658930859596719625650108181502095538698064920402400931462548817044799817903572870186659105511352966280597519272181699931454127580705653373213656914445267440298794362109829921897178090769332286033492462863089158604082393236758152602954323735643067452112305739205690623196395303968429421089817659480907035274166848631490416264482821545639591397645363245038007351801575271114960947371559998302794018474441855548640228221099103978173958508443658454331308544918889333559337367106223942476613244119278834400050101875176921324177820106596895016929078206987768695868409967559765187643561776809181227970954654460233435899661986314946862915105321307806395470692674929667266756014330091899004254064717530243116687007450312333256664047392268169859029396934722137546269447550067656423714767643127678101838783065209958884663510452800850823983543461910661025173203484300549902216660685031635212197988536750337288136098102580103261121268266958126190286263285565118463715704655207049218109133402530805591076347601363169142315430638495880966127195092932622653228208806110268392813104997027772877778172330658419526657379864095244870672237543613859660022332853225966558429883539090309152288119072190780044956644584746611076131476120678029719986382933622828560481063481618821838121213937188676143477540850461686770756262905792870625976404433698114201860033018111582202988241687494475749400884720341568227612396309600106824524107158001007636280343202632261499045040997350872079690181179162498943168478577342415404683983357169630710226756940581856754508207579331441907999523750040828532346537175097507254875420678945374921623919216955580936042470054585076525856320867392526158647948889612611308756860900906030362163778138160296795213631310787066469929793265390876053766237676958709948450136732157162747542854797783425003723954646157497912675249831152595501906658421330150911766932672886866224650538480325790777488034064940515400571230476385093926815930032251589806671891654447360568820020642352464351815163411527800160612515511275272368171430543915898717282444126201299288456055514097682427261829824069830328479921757673344586057102650771018053744635515985114651760191963491449741560328512519848081149233100131934550707814917371191393768825949934687801183716275889931855653733178355478665740848721299161611063967779179560091107474706897896021464267009375597983904720306959641953303774866310031778748599576263181825302988594702339113557254176802806541556984750752522079595839686832808134625846097700621960060385778502382432102901771480580808582486266378386242775269856380356730229672056879104601638454324282326419849958296513550647074670683119455970937605940756222257536698759736921450268402310064847600336233667226694926177558190738044972642007446921748411389763448128634586662558553904603232968888652251238612241166027161053991346377002271124663848852275052301848866284150538474486124861551443508880693466629799776046028310024097012344887385468902567872017252815360038108310423304565211441632517569396710764766684028812166317125594448794462718455626334487402314622691112588823488333402560942723826308310611418978302679391025603323422706640604015418958889988516158430144913183635623386709040702646227597057567962027672151580948492393805364131348396977999654126498542089254376304048928403397663835965795572799141511110411841714035012077825694588437246227135054458091537506069159248474093427990283976717936472998447514587581717425653234198664377770248438954833166455464043624517955949329486733052685242931814582732099613307407553582704295079621897704268658841205935304035167746814109180668842888621521687520760140705626664956767849914629470835767835141489411116772909628398990419529214622598105012025057751583129671580698334717225164758503564858066760068858188916674514790650661114541738985024645618052360361807105981390418272833435835702465622296605269808062741094537708387121123260016008854985956602796441307140748976920205800489024343209266413119184303794418928253001247043184372233998415070900928501878349667956501362136863512217134697325483349417054737650352350326126668380588354910939041938750085218316165570934901919021652495685253236842279800946813414635151111818608665174868367311537683669842296310152646068570611860546362533875782402965914540216282283627822107539537953010625248834457096322313552512643148363417884297395448959158609155294003111734903445268314221283450217065579970257102156394589888070068137277600930109063118801538942484302836120503945663362304036966902222786304165194002595558889922385004455603400185142725296109766643571477752247767497972559651390148398413326601864366735703473534040640915963320786592313360283369867584032671624371301211735937721492737197201679144018936969296306660587407060629997007357027730353969293806045526517739817181689900134483068666908809150952221714846000833696703223346195882208940946790596482139800815101920717051531921979492944476322077059464581976011475257564776695293495700723643516035799331382336066711598051968754697924888061871028508429055034260902402650908746118834728471672765356964007346466358413073988416127447651051869640140373366844895067568223121265129867130804540983621520386460817987998865034402151639789253936836188671674347294364805132144689774433618297728482413992215588172102345974590345152372105780610635969902734236633654453784195084785446748823602506786502569606240604116383242551563213011127064497110563819579448837421966670811931132857888480351682586482732030638722098334772759929280180736059616983854816654841366805154432856289706646417769457753103563742539008113891618537308021251110274565447914256611776046923289438919973408480984725970116576107658442883356032533037105218822350589767390737671890499787307649443083754030491753982491935007064967243388714035987233048402832147970395978165902073233122405176437449291433804825440397517178648352993966688024426000028094452352636790507080361125019459257485141725218308087728694093656210688973190022956723641465456628584009207106497663070161356175783642084711697110572784248990508242251024968637399237334448515709987275341990358578962492994951682662296686119110781136880000580735841975099903195064230537374414926637762546942094110542002929150305612720461415729207456865934372838322893736558423801578426108898352934644819755329837790296640607484182608381109838780117580662269118079347980286701742360672026746851104968752041971604288593197053632831626993071547973240528350845530358103201917537707230579897710467175851462519866335843240168416781296068549801579132609745385083549493417352112654359502807473049783966604935194209558221943677235742922906456389132902985176291501082746353321925744567888265217918117424465978328308389735898917330278401972996503601186448383828827168580313840671896681832033389923650809686139626120350043529175762908021856425421074984229702701867480940344844014299765260969880625616646118097214780591745526736417105990730258784296883966990988037740481734371801291386709381776267008376789081048977179028551846679254039673052979370742525401190408162565556486444608722745134377713267032751732190356534681294102515869797484608731628640276284463738884995659921363871809728075301593189347603617088972931207051736815898343696635796175086587413166217519963611137398265927299040148925072452965042067704175377626343680533948037842083624405694755968985582314508170911849622428012409083550768118432111372398789275265601621403093415576514839497107448614317811266242746511397633649726474616929273080149129189495559307942752900574845309259254743226766304166948661460315286690794489702669138451672590497720248992629893173937448644060925441180038063920970994650362968195483474144909468879527507832404321116595882969418789346590222436791065945613606348782091335918504169459137914680217731573926161596710724630699076571599671383194130316585282290763902822295353551347932411634715840994166967456853193233082930470940682939358748614622267538752379389686005101253886482606892000653349809587131155888804756739414053274424809396502119574294022167502976969590315313692089610502044975999211215169094187335159500775742890019041919562073735350692983497034226338677140692731263747017190143298570204295962885805159017497324001661221718355176477057306676682834961893324509990751124624332819120828715967447541239733326647174081164422095092756693261065488791214648025390121807348547274106463448319767217310767492677650477319507116446251386069479208108027322740100988344207398071104484243013130775759853584647580062846742567760345437803192939244956964484286582985798586007894038630454160931462699318800652851751166984735260865014794975466370088037622883805467181608961743044606618212101566707959295100469118122477590023759179556954408283822899922516848157543940560297639806711100967041342097761950593607704459875568439522782221431358932052914150795073062191899800761248345684877814602034627343542926998141348432037129100526991977452551734578037326068387607595558885105009314819994717895297250267736076535310159719466630918482425230452254654582109889980776960411219517254434167100281590855820002658468600830272257539980750041707350161273338503162756582935486624091798892165222504747466231392849508678603075214110391730678836145992499220189336029059906783091315666210218503714447295827865448511634323316322894054663424292195470290107082046820622053207614548087585006605279435987159460303797344848679563233725423089426241588481314528266203614438500057623508357878335765558147763356681675005750005322420335587494643684040392586659559411594452571901384486950537622258002079533577126144415625890413445755900858381160743137384680468631969464747563961022430985857860446327919692507587005465481972435179888378045615920086090221283960910978385914593027037589136292811836890491717637754117620451903108861832778410030443866102277716524946150831123098510983321279451232355330843524406004216651119739837170472508875400918003782686590255901508480598140713509959016455043398878875895988253770605385165538522000161620241240871150804860607922028313368367588532237348738418973675829545162848966340786540763362847288688472132630993063057365988898375954944994514659526853224851240245828375191233600187362904503402311281569880927819211938895427994248091058601801575473558454990755604445009028321639498531735605529673645523229382703551279833433014746498404713837905469732389254923778888227156975021046562712414720866350168534882844793157212882419010719710977796574164329050076794566073472996556733313699002074675039410957560466491744787326460996958490116057359388825607886290291444844455712343771124527441606825532065954161276377468121065923996598793629095570657747622667590637304089762014213621217061527133866897752293935187902882691220887899438056969047609327508134862781847162591740005110779598924072705352278371412069706414027747072507561860416660871893725516322794494210057809878125543477310506839561468312557121800918584232776533523607880663427717226102160414453859106974464960564071742376309575512311975322651415539267225422444221001124425357652383515133995132509876894850898956412855447197427438958117769060234144089564309895373904692569846245764477635593103373915542896070917145794283784080869214792010143441429872837954566347627639485647961943717305163218339964152953313400463394876294340387858694592957034065471540123997095892758103154361383968094508839847200729077519370984656218911973350590790297311563505708631989344525441291596965784838954796210775470401769068973802944971521821477653672438934805288680836391954555847963027688760972786536189952490187287227034485102798622621386530518256069673746256082256316784214735826141841887778317340567844570557625428423667729408244594344657529090345989960864619025623303844801483720192071478976845575108728692642038239266928641763532522706870420927541162916533929817743220435709193226549675891601361415204260613973922379313899137024511346947012561860196761957965218884943993534686826548316102809009656480266614862406742789608490588092797030868646888836592873676315263122094161352460553049349264777565482010206672826027273509151791934816472041180169910328487950301379893803805989369960253809649093143845256608894163679259281629455758556537756824496478581935424396980876483217362415657904431418391306031750370660063490687147058049142135126957297398469791733523453469210681510108287556941740723780135250891408297107422058476315690489661953910188973000746704473508279673094975715701128847797700015589384071610991773722662058112649856226779078376040139845330753032247927743475588314602464107345703842518929515832638616171492101384795639401872549278812911360685719437387919562264832096696380214904464740555169112135355968559496065739938438049265395088631811273042341176096092133718747823317154535675505521072936265169498533686135859420672510253406773386792973643745591669663496773063379975424621893850051401969277510554416160867243414084527241560329571783380871948675622473053578484287298524787315585878974934977378791618510218894774240008028786424486361963228540104647408492324832252439925924974844044234415830287384256913873580267989332009449796405789934230290960348250842424774313202483952074830975435933078396080528358154649209120032925192570216669401723400600333437991208184424486137353503427823684267306130669521037160551994350358734500452309538640836667292434867391201621643003561060013827891673372147584712149691985014868990238486215602353641623192767786671288153129817797833732131922282327741533152129683048920152684188220554439421867138942760036409712311634381328134683000903350589245648982914500951791059483867675608478738544518761476379777820700499588349109259748333153929427914323734334121054954774940237568429706161672913579988533577515597773101165514266184997055373707836490162333224342693446354339800988382547909235102085415866890425777879072860004583624708561941449595683378967499613552375093835511195399807402989997549631989462202546383805058667843046994351626899693473286026130486710612537739379406657825602787941177657011113963603041662199122953652823493887744159815330498770736096032485061534068746669840890393254749227356345123615195610229074862792758655522866621573953738564515576131114505793171814493709844822765491170902154941781412449127024141345126123088349817012329403309567615285805439583111544731495571786483280693275186705805376066278497496591880552066590894204012136405825978960086365573750298583266543993054823645142340453948072113792015947292874944217501334036038622597389868692791609593110464589189090367871321570753662044543298888270267360640690104258787103993079922851143018396225978554591194170246975446198911816982492163127867702796310827470107340057156458627388509911262456964260208960858488278280181486876356047599349578055685424831904517466952575755170268924369318168547510263207094654507434794308565510675130677470282875323374183126811151121037081390735070207577555636869488911400360334835343125863386928477325017537092843050186050635286295773461228537511497657685943452801600029826804394817421697584036706740935324235444070245727201023743889589392417181911064350934171745551280569440462708818102407972092394696058116972454299717298918159672400033890906692178967800858061143203610055541033469860209764150386294695496994217416203890592529370241133440323826510815247883006839721318497007127137600335069344555537738878462984236522678452918833581310557614177859194452379559848701889225411823803421771341002959002927172703501857638547039913889521827814144222201460117731448976611672454969686993828326907805657973478696363055193099845380374918439625654462300007470124540694855482198724086677433251280032801108806252268930308652485920495846625670079872079748671676908176868513508137323005054433767889685415503926480022372597418807045875298410984482043553328632847527095025957850295368119137489621757070886490288854422937624985809630597652403349751051034808020821376426668726531415990572638205151637070642165469029908723171141181715370031653891285127428585877209773651784316753145073139217194774230033150860804952402472179851699251042176030421701996235000760341985232813854283649618586934562113963547896843974989319588804211216826415025548148618574731489880944363858383060315430276730346647991679669678483015804546661744287578963623900233494568875488679508063040139066352981287734330285334329811092395314956121296619179400754731043871673937546962382166640115397845662628526284641471162077614560976517086976173403384359915893756243792836101877382472134989091429053603911126523755120377242271039060796690709791005918196300818779147362368396791301761799650635239020874160173563691403347644085694189075676202989502927049741681568428791319215548280556176219799115902716257401142642908694229859733374727748206055205418911328070248987041331664509281844333281439427358558938493704227123982080743171354040444897135502147672030876791828144025809637926339786687816613805079570633416504740296109749065056220684895363687628100609135632556291753104264511733059274481223426783287945124766654942287094675552810468920198583120389065837911767731695551161664078487705433704461781206056792533803056917845197290772060211985131030501417312854465951200181416984495924333682747512837930045834873344269817436389917346575435629987022245998655937110767504111523739059034243430282704508314894834910429387345475971532897498277577721333422230078900469297902772045982915044505503017656817574956440161661824244474242933135128254373771444060208939103848934336741244165968864296697517378400244071885152207122687203920482442101754980824297287381850440394703704407776379299469801571315167257293983096097583299287047248295518830814239325478459482461935762850938954672601800552617821258841438354602144498269380923498160675707194680634328817402645719575247797590640069582934466477690701038449459454242460198685316204410803772994638640972468144486854847620359496984681262267020622720345831519607342380776838049933528956169137860075146873522821993139954795167258506060570403617543862881730789017144277536337560771571705249130153153110632031457345483641781257651781688816262626645262945796463356671946400938821088491909134532434123569256952106713840554565254986303504236077708339054210923543466973823062197650238204745081445935174432392100403685257740532944694780703153948422215102394085337423695552789878034715347610849539799945550282659525115889025853977544996157394769330486853304899490445154653257698109265364440526763773605061003766875837843749944972509238124660468545030055047585129612790840155265125533692952675783876011597308412306457643683666393191580428046199613854157298516092083444347888226557669425548613595783935873509053643510666467324478526859262992445058322327783379487090201254597527767730699148697960781078058842392209251114245688607453147868534219208484597853583021144351533794169131534966407349514176637029259206929346715999392440173564621162778132932316700573233406886983758197957310618266548973607897165728453667479435258276205127094392661626190185393974618191746855847303260253972707284597374495700824913031368046715984814053457431460104506407252392878910809116421459263105096859427995685249370286082453775444334557276664217197996854798875747153366025268100366624262067378628119873370892447934374874264723712603677751588853984893674264425440305267779454945161643403919235252289345315030776714756356442623533338274035689439677575596593131780716463101284936222115958671436566709667181630356341098144496481477035739876015937394811964991740861664800181037412820345847301704975505556206788436571430089888286546795389380889478490591357829815540823979990762341222936258627730722177253596264617116263601483294415756514285593759711286773848146485507586781375358765324541126490287005820594661982553492316532003571478101247240112420993717410720258290924041716762666741934043363898598233614608553754412631577955573562706311018809931280806182531034964461668442661615831032810075693480106830901694027364372549589213535180615111285426274671449890739586843092453940122412190054717100636738910743288169952003444982683604765001332477726032525877562938873834384585009258997012837917212422149468796955248936307789209759729418197278130436528309265727785735044695248149001314839061570760224871137942017522007457577788302525974514260318628046589366370670904733266460512583413285827585290782315041106311086539698390514106455714836505700583105989262609954224627625869420257322314397549872360026300254614680857686381542727484071554654812053055437195213346795044054697003677151236935706934471844007692582564074581372689679145032814487360065230734240865082724871651444902277207088322745028561588566847288301259478721204613303770551082553130813157348756304712582096657840919173029331578783066135127525442009749492747366587604726102314445576138105466987520006033526601723326572067074972559584061653657892263275238521787908731435035766811844839757977941024705315820658124954316520627834856206691951663359851347021273197491117142663070017019128039730019079249368787888746370473468309678574637763890589099734818418561190640850802666602572388725314595067029387638520412174136804502196462481855828279731413880595857662160335125477881065637881997125828809335847743002892237008453874646657485738376072862021261985504641831457584935905800866495621740300349235266279767452293302134838735926477649345917387797915926810401858279152519843645761800198146144462091830643129619549234924971933270644977939228895286394870747668330141013577871450160155308807171995899596997523597111491656953713022078333600232653241958905988734984074948028568243124180413089705095711679271453360947645717587773413427535895283199304832304474910492525670332561100786129027136490045723085550421473188315437137130746532591048035932246705790204978243446312715769877846315394785488449824887553469500225539723903713473347518345750207810715532157783758285053821117849128007965113676219280120963674593340188352728846956973119599812773461031793913343108821343768303255707386803521971157247207328824031633080066699339879580917652257115324837189113158983499273897805378210954875216535118946944968851187042951186360117759135963484614048738339687621255908170937891961776984743561444515485752971314457117617682365610943446435797343880798069480577486080029081427481582503011527398361663444249843020730714577940052138423116710843912276360313296910829941370117237987112232385359587473221398400862186005508258467950666625599466521017379789992477364841567945614884716534540877936288305213685703814532589457067255974416256015588673136968330724558259821107384301760333430126570348981400610927386002852649673075184886736443677072588837526974794846964454048697208735409249326442808346886460601628756381014181244160408161346431095545115767385641070412848376099165601193946913972232313795926140882644888671030325912131313918892868534831458110884848657313628595507568346042480449528969633536695632067705507593486597087793147004623905955124105237276267290727258418371697735106811307436180167133292788875551962396845561265881340216314326902863849833519306884811518269826333805845056633401777555057295251468281747735914506920792795451305099574393550255077135930313450199749589316567654162480798247543263429832536200086808344191763683493511095735165489079227703528286084117268458061147918482795347656597714229420240052107825772105103753126056688604816960051991983403302164571371192466585152404053598891710873318468180638950834998531249713983592802148909176549969495911375611246594550964839019826695889318129017309482105757355810164981215176430649756804764230106679890994758151424681816981108198718233481645330951748745429861391278467928868140012257105490022962311894288679602387749507948015035647350187732817934290201061265360049321138821793520556709360944986937737957624169834455405903206275608882281772790215735152152504492276004605083643681800813239730158138793564504809331275031476209460359046850289292205147955380107112743306402650165296420725356371066438675492891434694394933283113269293920842840734566863128384811916082082296056547630086939154763898856500631055241125154627246432111272132285445160195719201280716261997136556663930967394679278701345951523555121018628646228573877178047332945538088682779284135067061308854027225201390231079689317554969796504506731062045388571493667212773490253098888965151198999927149261551602413937920985444603820525719069085731545561847274007073446077924843242933701490895328948525669119697080912539064185300843801161286561585766567788392070847361846510579395656989581024939536053934859454250697759102395875292537313107291757642402324967518637198883209476050976869933420391862499872557487380238999551340760184644874872621198680513301148407000732754891145700676221833407173657159862500591714251527687964037441356746216966810916009998625736857764881710554389628470119678198648146775318969299069771579635633229878309965956710484952103545520433339793777914016775536089392090845749749718074467517533635464695085388976874742590687340632696479062491474034049413250404959042011986905255036812764738302204378044119363226766351550247455925540821578478950876780731866381205393094389548934061924572455047495309873128735083536459373232351634295011099763426948287674170769138853530288115551527732522351704868833692513954810318131390029581575841035720194473287564089808499186719255128475047095073141305032664584412505719176830499163414438734234448856419177188814514029080715097776250150637659475377052251537288049680717020985821742345590507884935281764412947619857276225597132369258697995362580857485979534183655466441309996924590708655241126810754352511651195574795007595370505566696229072332132741938051813718048054617991389589773406564382793483169534243890933421134344604653238329375129657707114517681834526968648943708809115115844603125835478695351166276380129087041423193483454398273485763048283405007787437541669411995016295327832583138358192318076322513209793732070435849532077082848289074076359954592931016293061071570257775626989187930144900209618839434134881829722694350303206148713559035538363670919213947358943888282500887682616958496433471063126516928599559117023609781712084054886981438600404742006093261070731279053797291606758148737162527500359884237248976870538010834231673156140730020726933294056962063141247676329293818988080627259490504849181940859524994789963956261766280421921327569523431301601634527574612275957005954564534797742523154486341136582168635744858785674455513027541001031491667981609582607560253258887258458665744284802544352934433822388918384577296804394945162064479772989114353425906863698821008156283758948887099717830827782598809840943777273663184160234544695708501127765556744928579648541936781482684087574475147835353891439045704665391794633959162745950327588100920347445138346175245616749226245846471528086379789588168459221384531275333594475744981400984336785480280573482984064750438534050438659914727094889947114435520913446117319529949399749387397264442355327072699599755781974942912374473601922498059514052168910369716224356363783635266274665681947565812689967195358473696439513719238243743363970896198185309059545859439327450867645919991223718880415428521167408600401722125679547337577259135776274559992082958972020945838138386129606433248878191830926337713594071466232615355004135910864383524227741864609242064273418735228797016057658009213625474274408233385871679303364785665241572896231990420626797654530247415459402748243693093403097183969657025586515342859469200151508224292105233337773582333975521178640867759261418284464878808754446882291907168523245780885030357112376055442001896647174276641029956754917007073707059094608649067861965067817332161162987317947160148288392257962061220778849594919613000959906905025225692733273046870564204353258747414650030195903597385967293039397236694465599098833638861551021516363662835168168911363779348212398615088270105249190481450577071262195477984556911908746782815447762090685228651802480092860972676500267696429941914941912487514619097028764641233952404351619945598292247975910638850748055773414162796517820189606621204210363489956157339164980914337626755514614300438348032297463217044567403060511856434141023051155850566378998341903158978526702993927558413359313035924576109923442235553981611836927143165101997771449915359782332028335481690481571963897853715309818195588973700029293860974626949014284057584861522591553118799520602551145511988594931627295625021603269666927037956429181155621381369512804555397855384628357298843364261999768904485774626833781652277929979084898243819948603110819908236584855199678699284473088242026464558423604114913664231891895057441390669426361282398554986458261392430395902043848136441000791751037434099609079539173908481614076723969452611943903312182978067852677826629101611389681367145735360572142504751195607445398148187847763623532564307739321056238609603033787992800242663944056437950852529481597172416203604282438173626313406212365428403354702828236784302290516880925442555469305383445459722435230713632213942005635573165613764441427370944050419014532571666794083970888838560738294381647750056457784942130713496041298112494400106390626627789068614958175627463629543592195232170864796349430205717162673428450589625797553782498676108694811623651804050044615584735647878663746854246338987853606354180653392188560822696693484693418719927783410787204542950544820255701536545646111110393721953474411820203623305310392557100991766790783988791919538832132076582222386253058520871432769566057995127405782434281612957179249712860151979437115091361226892298931315996749637138237166954580516081197346412315201608166152359700251946468696380306266647582227152591981766733075721304186785599759736048604438897239413878055633452383708517517672699631472923057980397169407018765746367282793915911010196357135929249537991661525900659767265604033813600673084200830211918948939956169038844063340313327756574562182860152814183261128855722640659075996745806665398440713000152498718604157268612119624486145106481875010561813301288071978755855930168722517060472825907481048494912227707845937230177013934816445644003692821089878677075938053149823663841530466929717519130278915353539260184038970724089872616079022270330988833255042345533678677591105852794979249636682438454201046010040594652890437803451038418857077793975313450635669300039882346182062045284019125870106044171296522943394004035871952182438308842563858631933847366585837650787242760005715620098915877937116317334134767183131400745887881531225861958467640439488357295748997661270158965934097076473577209099248832699886731263944847950284714565009042819993819776884077794444776406558407827388200264036215115516746345372466842009610092978766375276838398610936547927475778533692141121130296558146223951811338123134448092224909319422578825745701192933137711698941241663450427570543182580173371918411601110781978273226333219046859967745498951088199449269535118143492892337044123939941606943666466963161539186913871729854145995421627420105935430597373731046687552611419443390785642362637880579504759060706753541495322692437433898741858509498808980156254992455317384460336348661835837077108008709244319742529367158558155713106551024699770271139019466014996243986347599601079894421522133476304747651508528668204375215924187639589948487563204645692804760338213089892455195910945347924630475209212841540281816250628198168389511519248619478947341504078878431370864703253726454373058205136084958211015510030178705221710796834574299909813660468231493466517762349245768597787394986034115383812657438878107711797466258221161621098195523078540747231642446340239155120980203443997794720140022980317374360432702331454106976070479995572863801959179131038688016735868583311708918974644211011583879718366108371531567451031042204508990017020921763507296194475605107223524589433663132421835711436351984840626744660815869559514735659817187851927972973228538873330962774930447921538615586587841213371093977321380540651333638296624646783900289813931413901889830797598091985402664969633217293805596621710363023019006406127954244118680008714932458590965438698926760440319737166750496550231375472522276861420252976087737088528026456718164908100142583950616954852073115498855770655505366882928452618064010354735544113213548572464207853295483567736288747384406500226642800657683534526929199072675838491648780461911339425997685146187524681018754316738290084362919859099089788989539468142535975387320617759138268826034827602006445781538237380983587498799892508569516508186305719686259838679131256954125066152318379172400230598780821288013633871944624718362598891156459991885417031438525291525275053015263544330946006950521382845616221777209009489594729666794730612959876842338252896804076836353679537655633800376601634508469172329750205924243029493613416924397347770299894392839016891054467920954610784975283276211458570224205106419949206062198537427886306008190395066759340962516966587986964578949250300075004686373393502563769153957040896943896835978251507198078853098724389168194969899539635382159784920287649935233166150216314529504022683298474039336189244333815447783940006181639184896165594002678328109417814985265756478855155589341472809009210915570521241820803714176659619214777428657596869895617085983833790976209865924711238973911181321772728503823155628412979608428577065612625333924424192230365821578297151674877624162973053935924602584136202994683800900313267306098542577913739498831749154377606188668622302916765971422011570668857226487262747419330447226628460729817597495570688221081268805656757134653732882468066201290175202649403303950435012279297302618977081500834365794992285039821126208663631576261076717540906599948441165763366384615641422883692956748481365416793561090179953189321163288564658147351629735994800449093555950212824532375660758525157444444048451962805509862623962607255442384741164466690008514202207044846135052984758431398863544783682414554432231093721404429831299957578603321868038950230356822599726931044596898220748003814312954455500102504575462204072128729620954717863424364786117968907928239617546060038330863754453128132490100484431576267596702975022172887432113685679043958517609050009440501044835052434608510000822747576274102241609263848619584486670031030238800811684594260789575933140670752941033776071540310898036287303587157075040623935948633948771378510471034061007343931416810095640286753510077073755378197157479520495076391422590140818436908700414697606507763993533536072018916113623653798495740640583430375490115431896468601637073842042774591269040476858086590009787554198071779229933496391806742094644003594627499752667435854979106650484749674151387566616177639433933947427571696158426609462118782390504340394496130206267221559149050229303839675993904794586470498740682023037392386797193787747322831651208567268681523080179600481427191444863590019267989584761496864361570663638209196963999656884806888322330920870138052561597046136004551101540934305248691160971498897704261361397748367742328253739987163336292061475194791460901339530495321492502013030358891907932857714433329138390685879746010863014199712985431750885214689178398143665974929234979084433970713244517094524433204407828941890086772714478651049888383345732772159941859134470983780408848872649462562059378232470244053133365449768001324983892411736453702699006630614634742666888432859962787419220611708184119655225380683436016532090277782966521550688422453551230480475291500915626474003260884243327943405939280534437380452184283620316019534305899032354279861392357583805520151256588251154642941849069381193827597209356163997379376546210957431187196956286112348313770129183185666513481005692158695451485381848109824014684564049453727748817176238635630064578949550043586680080018094758353738189420794192639821127467394109382294035258612263265658085341654732005505394678824718206981552186213603149088655385905869226693714286380563967843907606465704607088368176630781888412348944543649923136568857664709734542574990310000968567727625721959266696698745648060991904505515980033156164302466616950478718552089055376536495468277043790218341477485740305205790791385039491698478114771826649571537264780113243782175981559590395693568344617232856892264652515977629316584435118895295867568179835847925451065214473480850528681432217310194156140427323428977539034234125494764710344217599703073351593399765926937348378236339433024190471964327178731259824428046363104289259546132333598608340441142973666076946262586463948664193055450640422669210845746223653898101592497137245355350231719023468954336236817546898600867995424904345507160462887888514439711128269388945529330835240381157109746193198312691574730484196377651196384600324230891932356277876931467880271887868030998711935997492413079041906795692560542968123409384499856880491412319912467875306765390361700063394007260531895436975137335798439116461404576546515973868796410850915467463559258214327186200625653645650293053435545905822056182989935653663779785642064908624650282564698408722147003274111592426263077326362525511517049941370928862408137174979701249767034673693513548349605808517133515352166126215091280291823533735638197181135599627861025278529960835396980736778298494381136310621345284268096461716372979307331432358049558503403691676648636981493059202209164889839006933791751866017604992160741792303687760948090166566023676175931558633794597546790185001917165092999378300670446794864801217603777431274166935554126921831264937045733186004585715177384127512044958041664210883253376820901070947236384846648691498502892889963774166233661347568205870336570784625752259138948645379927944641457030456261057612563210527276982880460496601999652953897129749673807398053029669725735304893928574037530208485232462742787707236048367870532340991049906795136696209146675985007493686442370438316584907249555466785869237703067542207021178459933494504077262882508367818594161295688658122093354413770161363679993458388121354457399444510686490887311363782470991436996425756055233626485845277890319848744114463336447567267405060634481702421776717856454893158652897321372611364689919219998146192156509589803980763869824216705963523209577860108396873535948795797550966837672406585638169774716987201045771509041803860012955876463433675116507651019259482074712411209926096438271832817892465169248029551672744248193181952142234630294802798141723180566334366348209433869039867126616709163458586710714924219119072084045280889351125588814482910053153567621970379503565386516582996363958207643134614201881018468179805730744454762709411377580965334528544920137046294550892429926403083796766983199155394268861850855512200129891545612437831646465726760936079099638539622281884434623015407185115971913781689074420703839581265978582231135587420643883815016791477829675207341279930569226466681647033772966040477149244599651710850483700196851365026770938930625930800548537196126500412868471904361453498163371768919670697472826847034483741792395006707386111120710267799534345022894792376129954741993099572502686213098986175101614540552761838796074348143505124103175644560032333437410347361393313302494565654750401986657511759845973987925720841650218295037447455478788780679449701644942624091926373448962047749889021043911270550407237529575630463825838464370125408755642948692899515219330570247207285187231514018233749791896538618828537155744120737897347444816717704466019905088107388188097241510835661455010039327748435723029167893960279383659220184746584866712162356898575823593495104766956905442149267213030949580784190535959220830740617336970328266743596109751855220303513211307081395602679906844563275367418809422352346814403448918100400504456293039356647609037595290496039714140924551601384711189961677367940984827977930138744557732468927514003513979199008070018294072406041679774806512834583343527451356203977162303098666620151176428480614796162702522439957290909969969005935520646348120003247169131637226260014883036900696428928365478610558173036475759146038546236435006437336475274716670384341760252277823317857188029492959679222719566630069601251791684238945726252024027256160216191002442522086899761798107390028176343198741441301785040138576707554212435716220408015331871044955473591553774295921952141063105315856626796828455986991666627846144804589126035517668879000137473380649193065293535664060869526517388318083305373734814286177038086008401022531722569943358308598460276282175848864373492283417272445960562779160866643136056379837332649022058561414379784769090390306358772810714012944963926266673861621632988671807759497592402746888468161750309213003382317116376450932002438315960167184379210169841126142509785328691814443136859100571567003523288570354979846475318338465703763464882031684134904285137308198684593282384197262962830729749023723108117093510652975709280834716081114801482605167962952098844680865450720156366791296954458259495964310706480767313636353442729113789644887377553996330956736137503160864835492533844892929700646649321716095134926547601629549020388496984163091463996845912016604473934369981230824621574438982152939274426737843144660204889943043944107915816349748954219749057674750984486248158045364445969625459557064341144670454749917891510839857844885448606016743215391014325280950864793789789887598992838802938077060268817048853641316160511890839651338709974855859642885023324802846063600795278327031288214087525522975930076156616103358939572898673156416387143294666794714951750825429567586621070288914617997798847041096668362524022189202487626302597318867283939546457709749289170593315407877377892241067616451438425011180912402594584707921199022676886418096169918925541102741685410144934401881164517943864544282985398121356914793570742750794215034017081724259284473136397418312620270563702225971045274230568294635983810176691674752602448756944468815792996954834334950451022344065984678334125787731066603299303687821340426412855668085565035532598775022264986078117843412696793064026105338014531604763726932809236661448318234421663818599132361233686156445284632499627638118895407406374178434641599773371932268022744023337153583782051509928222812196297354103439909837683390065027684687004913025923184859857966116321401315117533926694832883330483896758887684583068287905362963655792968661419326381714630392484273700785314985875497727648801413963408050590891832539723564794362068265422303133638896740451377535259735644895258161817303522430302945461981703972912115220304502736932913520308733207777852645824098033262960695052058155048261263642657056152026205308969689575905962605008635760863828832274857492920916141822238575302612194296414362631263522917110781644783673493634703345324653670754570478688658791877702623296522926725136878001347243924240559862760074158337473595662499507262801918154970427428747013924625478643805373423016219430257477789625161938315960763674917016452892881099907613377605588009837358995145064610031674606011177892928762304498199219709414175876302771178506869068060087520167116414718462779727756952089994495113222488232059971687328858167842432612160231800609615903678494777575622629262111386169319376998187662043328237282104367249835385303356571857354761284117419614056297561290951352836626349969900759449933688638985104483037309029610389498303944025055272876592164381664600710032879640014711347144158918366063246142169092694856105498544187871418636328610086767466990325287335705540779302252753620656319671874471746752777283318763771469625007647015158033477310016696236210520871931329634820784199849489139585671383344407499899036529353241864047193371574964169816208950966573208167329606681969561056636386568607180659206916566328520762301055421504355846099779104939774859787321682396512537737453380994379635095852340842189030758225421573283111126133768342892368535822731583893781345491749632129555825167283549384939060599925840432146394447325565099475175439058946562424476796185413629608565912934984595061479578945065761729842805786323005277907931804630766984492750409321639960685685827760336017538612386001403948091549504955838264637675792633045420056127813256995393643906281103689078123198003168389949118249293342466990912823701951145623601517275065140845906240645190569139282394831414676736736926314650708159097057045997040308105774480105483371525671470530803234439008305743069906516550509905396759021095793755934925718583448422932552965389695557227467053554321492795998247085702613928019120230962319165786943464248348486495588484225403570444172782738301319691718436486967579677969267893939560366709816012229089994464707914480296118254146963543698439309358261392710709918781036163596389897973477351662793064526630361235421353508854184752058490413895710065896963217820263134477791927874248772316999100978184354439046305272480909224124782633815780112348066118914138271294365782477052065958269879124222576921552380505152783713934824916178967027181970334839657881320501615143316812581239111663345089602094609484897058620215556188017154663219308594018230470036576581734425260155606849059018035304407945444308550789344782490104967099507967776736664171655759278036003022583929242696021495140534447748587825506075009503123566211666097119107817821796528563560238883739097549788338257303726363656770374561882717687935241349094468574775204855366774114333203553155277536697461144906888633311037798378297637349884402295496510811535933765020135486856544749317012585101329187422913957223724595311509816061968765852307783344909060850967740128592909600964889822604449999183165719771339423633840141148008936945553942948096832193677676666384264203581706374429469364610591470613821249377208368235259307208723805167600413554961249471030396040066036343405633316304182646760554962645320974203992346817269104419154291953804985230424228900805532544721134335627855541754619018952678397510734457220489263197085174777426091100165544857514011370644800893530065278477654165216834478788496249546520288383324077351288675862159303699634365294001724701796412488306880178247348882086948510448907918468208661934990961057031237723790720281895927569450032964982806554125604496256797854337861395449190537439747044675506277113442541726238214059631398138837817260795724605487265199379444015960808608189660288301609922425618052340503553498474158222946893016917051013799100384109770898865248238299077364422496167588541290662723634374395729647677699339729451371384391945643605462530168134437209417737270052413222584339658749134489623366794859406584692178775694549396503205080324399323709729422118790889803565027577509300106062012906348292999900433318134370907427346605838002576825653416149113620057012262585378348577177204007222352108578293096358219488150089544958310862414344975429608019854872180467444394505591394458619711741866035825033236516422644871119686340983302747946371909247384934381292534341748751801125741744188101882651649262399269269337908073190826789981246481478780898134060030480427204695782634276465890923887539008621322069287211769414677180474593905766887367755769067140238424922977360004132385148163193166847537099185743630347116010776427140520859150506145038452866348420400719942065874573656694788684831040243424246305875605633651798307028721922988992544016875099529605144473682171785638961572270042991067094021139438236918851321251692743366416654113167624185399685662446708913166944871133150224304177028082848177023464651709070977488041620068254353916630873995807801136225698727971234306069712683877125854731685506208092599521299283537700459699765665811359824417203209214659002880034485879342424746835954637126249199622431225709288365089444515730801689132270686382440698274594797251532220282811646499334578426907373699432380897317930257233919048678115974423219496794375011267416660136557901746483437463283030768618546652582808318694183667334426799342354928748225599371374642173669244627906967543026258232176075576655246190317843157265403061089720006565499664548873270983128693997511274870214755650553772059183933877597413598722613399640723654150131021940768273015498541300647783031044565151712370378913198988529019909876345922118295994865321678966487418220353124009979928705797629933603301031950592330018079800574399565087530589913275775745174744345555319863251308345880472606790823076939094004504563225984539839157942323627127314198714195810655172251214750412244508270577212475440668612360846686893736024511853274982133730742434686500444538765942883194219338464803559361369750181989345647163249337453795635516741500832805658378196483612609914404141544256050584895641472178977695683316725477656747300648937015969476266791925656493433212892022710370259638582180533430165820952614677030979734563027018715565445691823584341915713941523492248745663500429589215020027065511127423378549797225375216189594947657016627686673193787530105598862912127723426835375509734404772419343504848553740421687181425540427046159291524540532470547602255120788917939122069498112563352112755687324552001966504994685040429770893768521860633362046338374385515966392216539761113551171743878203136535500645316562902156784381481676041575454498398850806346682003978792275331559005065948481104909836618708340458950269808589796677768810620638239197622034328966092564895920585233577746393812929454135795837714730413914602651223676108651412849365695753930964784957389568453560542505408548331357326414294357483774374607959814874851268420820772688068045823015071633594953009957976600688179996391571693421120642493814344302004631170426452278362461046421599130039658352237369483137173777015879642340779652167060364121842405178317260017114787092703225680171325929755391569694209293854121918458901638328395848472638424177206489695183759971793342105174859785598461379109247468914870741439336228417255975524230884087455301427655754356457861427861822993069649594620635901478824502731963451043529912215972594247527227813574025519912930739583758671942714652664710288073716092608727752040393563813138515105464615408458997414866237232372983976281162335503978597361228365092568318762016989046554534846883268445840042716859687738272566707197907149211481312162097401935269257209699296435876678030352181573712670570773058292271241825795766762234591461206421605626131162042229522805216305390908218796083799244912817509224078048352376229135142599662508262875381743597903725961387235369349478432027879296593119575752395656902512085039727551423803608646048347900518334754389694540938622182535770985169906571639970610796371135747242312854907996852709965658615659915193508901632716641307942104775435450808902717871080350922721371252949477662993516328571599115210084087663882938811453029835224227964524211082885112880420484254228223162078329152520713205986095031298632563209066811364386434489340525149805908464719057601359396816807730242515002657887066685439516254862051424776207993359687080162526599727556577140036406725569119909522863848838859807354115840839566818127608427895572304068033450178477023994329896899073984433398886489722319578585053778544783293656817938548781989020769490974853637273435953378028326064287113405345432817542835029809121788361691346264171446580773402787579135101141923675623931150337369097483102319670233893979279302920620068699862680027777020728766641600343494597558906713676272412535500621662463337567175856470066803844219777039851658884730022188084604308200514955151786609808950909397583436997884869113787368216472154093809056280427202793233355519792096588985428752973601661277927699261858907767135123144414320707249865457917869510426340923016966242105041041971828142737259743607360976061176695622254397134005920484791744257252079753284230266256432818221865676278898713485693505930675645306809954757607761202539601559623303152561386021328017050247261364788755649503404626698688927832924247285319594399340418277338527626630560705579701784836304812608583151732732502388335127688432290722951239605250222197320455086625268198096783261971300494921035875548397419188403277128725470111978254753639353311620017075023523237876079012370204567018188597157717333971015264848838094075002335061833056278659645167128206818970525427893770592846466382927241574057734384067455926523805375418792894022980906504521052430906147825405778690593131072307148361283717556577627056012685908250285428150433365084709143410748386987076785870185678997981554971725107930778804399687931063579420329111904311575140938030815289851377295451606243808291365995058701066321801172667314852496115032002813452132005250604853050220176502308007032656081946756229781833016144508124825671642265429106043971663846847165973226493477191327174420305337627334705228459514303162008631449585785805220981951135495822993543845521648279371655029935723103943418479662831311330772504211845805302610482312430597953402266680509938616564040207250505496744091997301742033444449144193764325983434330191514265812313164710811980284092906652263933207570179890201805337433330596960044090246116234600311414879271134348343336960673900121093211685421973515565872992007175409671709225172264077447965503535035293083512308197633899742224092815763423326843415033928646122453143590285370728854052364653027579042279861880944545737250926228605519302417758272090681349740197809627806895567078887796677361817875158577156666887169204603443810110222637529258950058883462391983085588645741732638788885501725829931757038768233672940909384303935866296789628847101133363432979134393180801551255941229594815312320956573432865770452681341263710340406229053517640744455104616688686092932157345468829698509422383343305607866895276255514652958597567802932511705276492241225467259819054245557950607283651113421448880780849920042905124113727173496011362960389866841656440510357569648293390451823928991013717025189183202747549269358811399982960575057257926160497468691030359350996403772416556521145626118611547003804408866991055811196712298518407650863994879538003079838968547595008716762797299530823750950495964445606123069619083832597258843114493235495734936603159925761978704992588884929801230789890567884827227557808755847206255093106667278991712343104427706389657504521804538485073327999639592581879469120876823796917971474704597228199981498152791438210326930347867509718299040444766120354795911452203015022650886726393619527447666237916088477663264668309372890357431867765560776934927880853642660999772768293021253442695101041987011976976949353381742944923371657059736101493334566131488645630056106688373808168848175219641590137324334202186575771821212035215703782789588780148533168901893183641359228526879830367150361272411300663229402333243837273121156861732164557840988041944907835224588220635494343073272287464762796653386086043208576729094722998401841286851749688476794348406029470944275894676079972838305959385589942311145943132151451955007058646602438730345953798744471229562334514688914936837090850517486448956123898233815099575616305580542389217639019647794737824972853467431643520004337645714394082237515340870540646985572995559367858874908975235007467240628635884870160604803967559382464588545915050208056552878462196340055680471612770262221242832986909294704285406729744570293181574536957021165033829099181878741465079071095201680351820514734219594267192016340469156194228246932901095942003493908743538233624924364106930257402008998027894314881921743537437985111906771586250926755155609384522929403629948566740694377943711622949923063644746612596813004651915356969023303169096077297032852123796888776024725687222135515854687282291811872598671616124412399638530945653516175257660154296721254371145484698203493867640085246614735400573293165136374332570980291671063659008763172632043613383382442371872624875368864994902018577157212749785714518062846181021645282762015661102604920568203816414893803878298493987655855606366915671000845211014685969504677619613802359470298657834037558211805358765927642984237904441858083536629127567633616961875174563417745117244372418267147575843946739148375630168331379121615358655864351375428546452026013629733989977111354569174980159284911377527858700672993231861036262114135568590245774924688190063984735418566687650384640378264968897651894282841219212518272169617828143166058352023525156238546672933546884253970298045362996171969430794618498881015001307066237262831868506262905823875327372032261417851462060090529933534298397119651438833917790223145139152976410247653717119368134905187060829183619944261576952708628423401533254491456166780206597036261424592445763811216148652897282631751075789262452615388866952455165010439566476399214416475193801659501161249398881673031767046005806347491464076121129213606366263822182503704923625846555282667000637966674784010057815179956887769912568607026519907316269231982577717705486503423572022133597728888479384940729746551480127433637531057616195046052267240353429605429126042618740819772136155079325280930210926949780459420811125041901047963325441608604790082496323601431595903116420421399063462408674342928026944397720328680235989166955535622788913628991325993013882077482186175981146398742383407813059426146200526515800798863631723408784716693184899041986506770700659611041315304753217862946201629544605168863720949247409764164042715412969454121161109168957799022886410669626354220673148029290978361741703095329827885261819973456586834719628046332990783834019118163094223914267908529124510866745044015338848658748365169736487405775987515081176442130614365442373161225508671076595667332246801658957121600752311085415545626897792829709921772506498328359046815339637056762138312967573230154763695650511944922362919085010663136593747900237303765095445561136389718730639685564887549178110297593711558043722173538397862731364282545629142469012674494621373976566094007210364395350987244923601204605118582620232764904909003934396907290416502916785420235274729131636254378320311948504198893075600737443282638425803574211904116071431684376684312384826850221956890986766380222936143960874523444207592107493701687324707791800207113556584607645183254382460672860199036168101922847991369437433862295813960025252945755744625229225648075248911631788884686799011321821745750395621243496641458053795162897863067951791111575226955055590704154914121332271942591878484150962954390024915616022688332164322970352912550228879584181539870406559700641933633855181876269357802770648038260913503475676517326866462481240572533304511640471994732481885885259071925548221881031826793588006936240337074490170700895293637008180604828076029169664656844151921252877806850736149708126427479923469818781872681845836523884167732943836483158357192114164703793837559139725203867558907024615944361536484986971823227529100723875485867013656186854076018000932030858789747969945890335398083606454663829305150264940133169862257871333579150546565769155745449853081988341621148395955567351571396034070734954150235911856765972900175185739096281365604596740656809256424888673739392279090347064833903302029231132348788142792212065878170392273414571939752892560522643699355898072677017665531780987072939778813231484674753000496178483275295073521802373038943566069657850515525418247446346072713417399490007224883774321127481707220080177828324269909739434282634369830908837173134279527574566470449507501879937986726769667003797296089657020989847946118273879925754150539090356461336300363281121293895994817138587600333277629425940851612697425751050848767605408352221981439088227107575070602260268779529510992566330869296665216098073392592803236039455356812720272184806699563235467798532690340374124571441725006503958440680748085176018869790861107703285303637104253418293736768567092425883386393853555580695830211835467959781731903271716421499921272778273857540459786234519329675762813353255314082206423493762267907042084265375182587379047614479036104225927539188355171589306325337610415047757257794135057836905884836332291208197188715602558096017984152173001114783617019905653634026451727318602340317731198584872984108994936699882879305234096310485538236818883701053964761667631397774273432165351098456237895909616215465786758364462090316116132732682649930448441586817626136143194743097072287829589596652982533752508919600875035878100644011818327781815899945156342534352118407009091829383459258895660345434604941136558492312521402606511655991057284893144936834412218819244035574706159020862061994423843215158926743858805854422608061849039961035634937468064251740951452770851614719165102071882410610580974238555120578668074182392591334630750961550190841537418407318718005423064843423499063681169792711064577923457786059373924048220113328872437057482237343175359773476826992421912463785183401932546112147526664897379542230299261128572611614619877327310362415342011277775127916104226670852547664198251003521793534513006782898976093615129811375491448821720958201924718832977257425266392764519349769369052118056689967223373045793342922251184676033844910518060673283186607939573619751333778492609627587442446762645374356752661875122457455877025103743810343700071598854588679330756373836054795950735432281558021257125698187243348190763286976302971587748118404439812333443512004168556890695648389396244190486177038177755034218202716797771857200957656087211295903956394353971439608975935522458039855023075558704211786289959770519854261649201596978825297615996669825095276900997379364980763505066552088544616222385019774955225616551082218486847318271367697799209638741250974647124897237321416356568254428125949959785026837870089058556679292348154527031001688722827221898697597796734713706496784167697772816257575863479720999194388747590196189139696375508146577626416490951079325765623991927140495534634568680104700703590200432457501705510995422202343545540516556074978044160976680464827508383496547320351532572539644274291930843587380144758721560495612088078445720390259974045696874980649112908413002947159128844294849186402630244708800618259069808274706813171106273584802146784094449635989006206817603787808634285983852695764998338950323650358381020994887046770531872596858523515455752127612193997546732229256352557607407274810124904003603054995551709706509595465773395181725548956026103141334846864889064112457358997744365359971268289775947733107693291988581568380087495547533756282981680246004405545772240074409702308022680569167260363154521385695998473979848333538765236881455157589060783506518671602217358939263182298538589858628893604625987705527832315481216753182294067980883557616640131878405874906858929482753583616051771353550330561931083362900853904681867289651894358521352507695057017665544645934806946454980101369848923223440036462584117192859087044195229587602331039588135810773709217876532592108995294676155982350533550756777590751376264903700729332676472294734356590362715863751375090788936536211026904532189324008288673990248380572085857682127024203221399576415489753025876430060581221974355906124776152493694417602295648755409958119632644748420368495141744579802175081794091718229416063440288126191520577499886646102799586167259131346559450241580067218598975668618057923329086801676961061040473074120100187705002346329235921832734155216845236109600970971393800013721645145164696038488172342688000775517025325806134773868447916220010749115710459412513325256263574702649030383532963281832232429378457487646695739716323143209277823947839986821843474890805944058292656542403064118130210260169451453363687609141590630518747132127974809328696085784442831431382626391502647986181768799274627073424101179060897034600541565100699199165839358947637639685290711017025632727413450065756481000447638196324374448364102696815478425783739124063852997375586042506074002139655613989643762136405984776117855932745051511759780495296283446579367252651270336430278853145313172932428575425786854294086211235926021632186830615248486068215861808077577532827477277245843428421704514832679619692290340997391917838808851350072974851905807470037221337754654134221872545792174981901904867309025462767205997209421501857419030822366069739700977246561246919950258627238644419144779688940292315665268925958366066135397667298345661533173555995387388948534292396364558578265949736882885981599567573363903069153145825459060970508136382415245854659135344718010477999394417728877395271945612186617465628678284069921645485409068926539789762787782955538426927925944849943703973704419990274843979932972327154479760838942493973632868948912120994757573453741056018811353124562373094843214956872785968256042507448437735875511991412784492415303530897668156654572452425390208446470248186279757895258062898377400615375779454265500463451616966952441215987286667271712331144964557898302229456897542454278673587669561605191776099840675571279562614672868167392573887593376385828634061756559719673661345815790790312631639416982202680423807037278310592768735839222829058928613684727747400167546415356804708431043702302270393144922052791809035701767863394694908588511444707740013007459489606417276946462049343958454797498871935705107502124966769636463285682620186282161059120599162722525079717184789042927919591327437718702287439120940122078945303310710007832844109939438934820111060160377451084276067016698770335935773682002319618832567357146041445887719796532894638268269746574716968970962626376246007755302301538774069610414275714189358549299966846950088521478596085813337994851719755572493928908831139474629728231076653581958377277730608772301010784269513360006551321987760738591631268216474909805190867627507893169900179993905988967276891949999340391829468052392195455035617526600639736239468699679564806652737200964663965764639519179971956812797670482805151599575022132699215776904122150469650024294318660563403749736542809015138288705336471434207069305883927865420971539423013732336768154612649793533853119978102002590752797277291520533160279121550949764452020207193142558366686769076022108230390001765679572910440906797399010619623638040449032940251127440048603208496970974364492975813206886527010709084594392026904391524669299204643203800228982282649130049833746437890154318478775673200656910929484967775359508274925266257861271010779832010925798607396036212576442907879101769880356792281757017641435842180951204578133803211301752881150949793617194929256391610494229855583676479946403536144591367363673404958199144621403703592184657324750422994236718132151766489048984278611251455591145026960563553921590221604740312871691042834525209762525915420083799103348910329667982459711870253611482148851530154002811952059084898391047961507370424586378746684042198487073633931935373331707287015323406374976454325388573026691723299189071463916216737434511889442101911916673508974946385855118008540232418107011793739606504525962892665589296224859858568155481330007321683900539759258810666915873859086449972411380784779653656658338180543943614029066472709484399412818899971935384860585180322278749039521303865775736363135142650842518411501918672854097591976360271149040448917278927592752857428779925474601163612481748082941848215179177109591123575553186242312411838037659522321990149041358942452221253932267720267313092895541393678433967277452437618014190106955821412658489852446111820468371246525666576569265500902428975308092230206037234166044897673859724153766141199358233005396641693959184522523062534042154142457028813557096407043664767487511239795649198621578024751628830376253562219607750795012366176836612946784864768457537417815689107550403802627098128787768717711546940433018789861152999048044814948344054796706578540718328733577923023419555724896131781208908952916950731016430476656145140225397649359560504181639282558089596103206653599384057399100215728974614570958943770940598838200208418702860021262210554881139607033066438538900177916635393705706054120910677635491561782634650123733219643633472587097626997312347530176208170739790300572654936177766481603174298399340587030080949030950769500666471330650054493970164417433942252826143153390416528482343881773201854230067349164426817048178361481024627653089522799612361463666159333329680017139202344631092933793761383704978989548721982487074394158155798408037529372394246465954100314689409103441893570328395018650478285308360958470249103188598588471547514367499492152858201801248778971041517958570872515949185735705409908543223406449724928809808144892731238467523147651517804370159437526891170160791527293912954323919962422906522208575389936530799318252584732974282643907152192719888576559823958934756808807115407467136213303074966681924072793842969430848467673078098648502887423497217520539961649822837768888944218619403894434674196698087468233091937615265279528571629538094335330295387087343549056128568507368687163081005925077114311655606321080882958433047544521682302455886461703808062360370870931194303004345291284448557780599288104979150231039024825915569893560087301125204467902649602591994999367672704714826173657789703251525919806272524549444230941406681882982662554756205959008124315737923216306358496805638570636324246874991637189255901751854095924903709462730171619849837163156567358812010480171098076365090956154290488915348491306524668844452051532200291843652519754826706388274590133916926817512247793684974060111555897741915725900355888560700847373942206297509390105065129800687502538294908960650121131093155799151330330859942307266944355742384669637373646337401105602432842392950464753824018470363020553810213941204155564096284274490655929711272222184448361133432043864504900827503955013822006939664158300581057222456243087900997750308556415252641553394592270945603255038567427138308503427699354761885708670012589798471841996464671056119163896329552998210626321036200107539353981019309074423065306599472504931637282960966397854851152895235705733053810850077337391701767964411579201686807511521485976725386526144308768807382002355825404185105753453579981677590036152041945515500575675823404001697440952414779217014235665017230802719391624821249531826755868258512622921461191259074503098598718035866906764194153785370629507920472732935885041601420823531314586109083315078884613501277303975101874697840449333902372592599284758313703297286338933095382561716210476143781239722337924429125797488864894030417247255249978394731855215964678345253308208248623440396738071814085470457533317374461890584066447594660337038640013486836099123880274833490707677271765630491979800087372167769658750406481524291399334662200923864834912397331767853505633089929279434565873237018098097087589534370261101906014431645730146108624033740269195329547825912851562927417448784777352313595823045806512974667870355355291854857302315536043600055696888888054151267912285483259826228240768599712480806550674375670899939875712770203864678658752701463941104412200185469716493781385012780563464662627080820066640744136033110471259248135963457833583221175056064447105480054513126348040522542569575127518943531949189662073111089611412587593499941718727047241087330231946605743315657466252412500355258022715539617114109319072528491461398541053038150342745434296226591432047456578325345889620466169799907999644142963380887871884792932694034893651939818352329428827401035680941611649676687060791704012376189544930367994315835902392144133443219591863877222162003712500213997322367188816330022994918224587511901234088406997245930273529521146946383199446309365835138264489800100991228646063656695449600789999425711091043656445203176860040121707680574317102200186136921692185979893669821423412386929700769181802296213454944564496242349406758023443867955814916873436153507579793404230490559457921280618185097454523072849296206678474647229259422566861154178277403775461735367033960557497862577671702043759150374578129712121511905399498640723787772922085794204265783782677836840236632925853511820923292051017212081799198264184648193958992184568233426727067023097620919795091117581829490391897251478215880050234210215580445441743225939342841692280442828229842093304956764067151292201131985324396820528069010756856811969994880457109173909196746760933987915159854356767793589122409875369600432055794294274026477538695017529266890524572275686257706425900924414685498640586439917608826892979254555080707565866418489191048693646889475024344095699589158128474883293601142270881815580329355748812481596210472240655465267110927220185465098327415664119945778653379751122629862625983628883955412396628715994097156014173173441880626847334246378952295206109227424940251926340053901587990737711023018797938650739589962512707334604949993226699755675390802248350914060780718660881348263151253578202938812054323579104343792168668090180477774196721553672852789489458436655045044531633183539284036912442995263726385898579605103648098083062445640277042526323057435298685205645770431166858741570394195412011392457239104402714010896518658561361419313012522935406209169992752813207556305537208851976363402104543335987579498683179617792573775464252623187900157061421377302632845537889931013196072561690134316898365778432860573703941336601220717001788794504947313766533081914327234867700626262868078987788015481003304952250202090674808577250597147114366460149469605203243829928132663158948433067023155381588336126947414275557604948606587981802468286165938954495036673550636111632541707974491270507913887998025969272968732153507112719817795208107684325400804538834473379816548517666214920409228770726731551755280850909043359060002652198812313360213666902426456641112454845221642909720906817929537760812698248067312476189499709206985434486126806987881802479454308588658984908459897988772783560761227509232238693941962312220456125742269316577724577173704731964376760679350822115976798197409758609924565213902430381897048214824278348794189457782635459168966337383618701180150850772565162989619083422738914358266236331924506141177428454603324064140813526765574510084083350586188085768066624854588519139526247019551126915672506366701555837941681149960456279050188552028090543410918920327700748436556087307867718087388359951994048783344925137775988774528394768367660223416727032606609178958065336051728297417007499707963857787422103748461496046829571341981276147368683046561184704388733608123367556281579130778660755658673070114296680859868036290671786098712962709150001665431450803040090128634503294338822223244661818866081736383274060597633830348963793061045598758435407436202345079708484749982389657196002540452259868038910645392568753078013201958947035034659664868570385325134227815224649836414613167106304211658988542903511564775057825529633192170086014797254743547850760730689041701536741848614251023820820479908869676589902989203264813924390422890576621932623400371568707199156622676982180549944408506066553433293391359830592941271710780897534628991471412406457077634900067617849963417412873964664113737687661258236733061896099668248810356505688978611487892610880031426075170116148203757987431993101129287102478136214959906188197796096752170926332911038541709885834315765226181656625592298220747716981503186923538738602029349543004087789869188672190838846377480624682742610961695356755450634764450249904439578678710065723729890172660012669997358305915170999256994696947139603834739580156276865246483313609473882545307083273484796796149244890826928428806956111154653125291563043218672489569031433197034361792025950971922835862333342198579740584334266115279294422463096048481506897797349429421250881129201166840417189791732975128864354151406420708760057903505465399498316696575866728995157387249926181637616390410243101785635802093746176112117669443890426657137741006715019890411518501292458503428565331157989434777529879759432075791418740407053780537205486757403898766092921711084421615320648009969698035927327212151499915339026408616813436410361557889734306469955157573099978340089421282659074277957597620820585468786268810285508522413108662420252443155862809174341830535129639482555547962318840335681929594187389232395877259416206111937403568950659526839033874369156495390663469513604982663837670738646811040379525449821084026893880716847795737285887779212101661145358654637968943509957933058657179434558799029179775133833148414975164806074442620798375915911450813479258768705386874694307959983938181329285896188469891506748930396057167671057593495603801012936439081214365253817293220093687328460743097595254810716649682142827353422644596389732593766289050490766303152169365710029275365819457610137977929636726672496969728316814316783008723933733631489579677729982449151327836470295299991977544499280700741949682714665682191184736915398175602900398323888874874831008438519874782324808663150298733994230027497469708907934568606601256526940214697994084341648290746762851332593705508718688226769002010809946419553061110567802042847331243973500850381869928142713105037450737107046239088351773706832584662079741496262144028599172998153377392230988654231007342552320658639261046112412420099967619958815269214753375864404017401136680385152780771896404386391022212131352866942773899576492036985677613411097105293623394869494147997107803516048007925244997864793875797065344185357265471793524116219008995111745184356051192246703457149047681247782796117538176408378144564435043270991742575467760129366238441795800389156779186572572506548325164543338676881634692666696349431674386916010654848475131949363147644266613181785531236665708353800114664905003573058039740146095676844731932185980691601304803577792178697081745004277554960236581442620031472336003544372189968018881096053840381387053610747239756038700666386430800223116854136570704764371658751722227465369404357526486563390196483598316844447216321729001998410075832857230132609012196470110465969023817565219236837148495284283671849913693462800091766695644112912832575992477665625318419782001681108866335525519568039809641293416780854446411114218943453727721132652589148035746417431488786667731493307090860615663768489407006817218835383123720434093022012589366310038617640030306894103222290996282266171188141334252564706528391290132156520917301682130313443945219690164230329910837988846233532097319513620091750571742630275612036391075855647861759372364176988693902114101297753595999394644070561711013849803747000529179514564008473068285625481812475339032397857507435112852749951751910333118670818233835739213554113610536656035621713587534518247527551454426768901145946953289421903335690473895200588412756499620904302197304662262142859986741810720238499269767561059035796176345267790532695288452741169912252731980774730122932209578558407179472718691335766076387617333781670037212213272954489652963854166174372838582504886454057328670259410183730122965763324628218606659027898074081359870313596758993665730555645278280443393079046985742191367449505006967901142228708877465002407698748807192920592445530724842898261042944377520437443258082089235829418211941849058826659372678154551177672786273879262951529965444300180409380271907203413346455035839027554877973995076488049419673438820598956067502472906152951774159744742207844017803044333813210696707901150671416013543096971987624865465077927105609673017323036276380439467942870929058260145895938328275081698115865482177103330579917682703462470668115407926256716138158265727900280835609275376571454305998294001394296360545399768788381989937626507942388442407613065104487173707905516775903254374058445552436231409323156435829772165065288225190947617462327185225513815936604457390742727530724380207874711551159678562606835984952864100057947745370255088940997817858150673376799623690978524443453271153465327541325452604786919574673153042064717935379384120572915081931360231513754355190660730074620839877299029288820522808629102451838697825814311212672694602108878688427495385660352486604483197190389687536669078392161883550127127105736349181711586684974781476140125513632272603253083273528861859757605801482334584902103465793673592485580248216632152383607928533513386010858582826740047553967750831097840937988600365471095299090807905803779467578764653677055568488748739547299265004438306648356677242090552842042747670390934873511122185576251077530831594682182822226246505052518397328740092816492694469578452035569646027326518117612413820562343209855989410920000675994883913437726571398529871773424676227532228893397044262394015571998570258289236707735843522427585143697487709328772870295146951340951189927517047755018072148499925349758096870504654836475249870189618539676395385178393135624532929791474218665889399895191770796740303359472088275293062131514005117031677649891738660892707243113313218237296458431543720418240059074032428877675018027483291237797661815638829219342460619907341203177776506575216370667701054624959208820177645474465927871807206260775266277794653811180178848443353278923641757182738877951029549155649327213504180425764532494078288660858298890253963007935767873371084297158031909865113345662640934485159230756519259599921927841645786783748019424137172976240353169418283911650627742708860376799957745272970930281263054970555030987874704325422304687764587339359089536553761797225813967954190842024168574707703020555698502869697090589309625034825266532944215894391497329755296826852171401263387797588602252983161759228907542293206286330667833459967461940704453537711246509572018724920353370586544087665102217860532945123237226123012660353199516055623936222303679309381131769577032202889498402908537918074542896261111570684929797497860977017015269193344883413444631550952297190088318777776414176283508737094299973348838509712326763371995438464377983329574348444420613036667851974404895485219849999003074261085225347881537426211975245282515765273657806564879849861487858112721349775688270984168893633297154797339052160129147454527895190914317244232285848784615595993088602639768627032060573765885821290655885499612481939518316056149851179433806841418810089393465496614637233760100203141600055177564549805055015816915198371317521842361770829381537232426271792471244061666409171995269117753176475432226070401586649196995160920707884671441125002267780378947895741138385773205472435059747340101017065203678571029304682721384092942090712787969576081491002897543694170115146867753348774109484119779995666134694872477437719691992868158452329443245736023600835386707641365042548354627933246658404620870148248184675169308290677800328113807387081333221742399830373974496811914135336757134496478803535019190006246388586989689326437104337226562573039524282399342352251340540847962065948322280099647777310815906614513217651779945652692266601217339064242406748957260946470754177258527645194520145378521304549257037333281863142098529699300445393580480064751896124074603750741965361602138705167707543636155935198057980077259458175013304248650384378398098803896948650658685044268066783808163712229861001457919589440286842473351636339045468163576923923420507439866678239708836434738617390130287510070208178390818563414307955704861639941493078221631447208108522978222800964449541490931460701521253347803476952048527696503472415009124795795276768491206453806140413275510238574849707701802024353531671747803839229357722913049523159693761569678819258689780892627796097179559809067157082936056801756226524335922133376112658863355248666620115559494395377871314014374640833963842095167782802444756500255502950839430509535850534629329761143858590672360895879371069461087333114258122531350790048272155565346768982685958313429737934571997409500855340744518968827634747020403110460060564419313439725623670775012802013916136471570810797877056133855537720794127868239863439186239384711683501445289765192325298115235474759782649796551682120584009971851864655508492820486379732492995566391933916039189507692890311442704348566734554370255303659878361172596587640620434636897613900751808987575354640234247897807427380301700304654506859861138711792493348593637584570211070796012456044939376671947734599044233738156228051795773161343837368949208711002487488144499827322140964702099426831274707964554113421200127651416959124301650751414900887444427542707878616624461383302931839540994026849923326341167982244502089048517610504692668330976590569175643428244332119059611787267474650536281144966036129201631407272477024926835797930194775755973595213284106469392215118681817191361945582742410529866927563824538010296996498708177034466048158881373262109232565402391720747125517202177973314776695510316379540126269373819630812055617831882439314982175422874185735475345399335075996804319659376145153688225539621170119276156498886102704370978403685399375897990862306557292467793986758925388681697978393418677655999146733030143183709688121559408581897334425954208755918498647495409333492993095650540318828257351214923713281920275094145471379621054086861042154562944082783490986035486108710625655540045896957219050419930598634438790232596627742662063017328579212228750132828772006987290168230071052532431225092012721590549273248458658133478063666421543336379386515838489273526339422314690881002629129899912550350681043215980052223970307220132195800796084402595213087255847145139392215697053431117380561297524203465410594689387026306837931868701787099664020532185071153189142722574046577195936465969659422471247295878490137735669515604421286983982717583982957108142762073068066617631503152358413661277240562351270334987714715193016198312852349245937320486981378707169266085397839947436145502409603647337502982009770000171662895548882033101325423309829097282718505370047431791692825958261089060557049817393964382780220883313534923055220463452652733994299590246604439412486264248847961058391601950054296913827195285961760693157797031303928950387422559466909796781674618624712214287638635274378548398558897956711056168292992468120221578684103624973001728476332200591031486927970492629225053399826778993709901557340193948762371102884879267763720659205154282421254233363469596237354463855320343471151110466142579267963845662069855168677728402661298722343720597919766490578816272708998656375494699339907632285437337362555807751681913915990050950910367694687920873732538550353788715347912781429621379529632616842268175599075339111191555423879813231636921497012666766224843876114754200368176680913654039534270622215339647730092155162717728352722968076485459345162444058658032744333255874059546968599809321686431836574356685158846397075883974209315587923151617245694688392293391787270692024903759186651592540264830000026775592249985732371806879647496948279359738201213541760373022041023520902531982298271093197220818039091937423569004586679515987966398242996341295409157930569733713916009558594096498593339230496312024656352203020790256272659765739223180245461008353897207596538566442386539150443332097302690459667350110554896749662578256776558001709638191933018485109583609679851798947276153473645654086098234228201812562740367134560274819228706460357128852251717088389147722557926760638816494691576525832985045169190199746426774721269339172080582588850509548663727696330280036095730611130268276670907044176013314842382748210706155954698795032663909125297523564190414439815263335173660208192512332705555391917428818744866065503547964159477463707631493520536311635570792255436819120590664030822353691927582336764828178036629403894273628694873000321642281286066876023849514895614326276152246241659908594098445833820927941590138150185469238809841114912779400929563676476889584824067387408403395214394894163880045427041237161930918701567899369609141309135023651066598001216010775065518053598624949214951253512551557180015070245313323920881075807644504565648859911089084893826169638951106482563533214303292641906068156159776579115519815558447579737457538725043245188824134149674877728411641864690429595157301809269569569144454054649134632249815362269974173873739134461995287859227064693302328657950774754714738320795049842661424226202554816984334635442079517950625589054806588094611366197231461749794227520167837415620196591257280581881227935403231340519083675302701759067753828531642575452988882522670992684131165957071077900139281444551832515096257138306199694016863339093169524873113737554810194657649991084749232199711381668050886712294226755303267127551482028986438349177938769964486255535142983943470557764149728865741669821899668916493664246618640301268533889516536127923168979005700266176354909805870136775573687508493487981052845158112505131881146815456346919881863394421014610285300176206177787907448903844678221108046049209463516202665271294343084757236089360987152227350671520365271028792133874348625206412644955731440546031778140040096282057473683900660378362851687249286027591433580686338220638788176180048673626792218102134358076545835772084118876325420310436257608831192472118958074960349560220725611160603065434128817846603803399996847007252959475917369621771213319052507715833733292025709319130543970302732690745849142577685933260379084873690229671767092761468559326454563113052286285147292476469104989250142551129237423661433030807979257328784471368206362629558841634066622257215891791852095225066341465156219166805014648292350479875084316703512375961541963075143367018407252769173419310930891367551776700303186689509451972101423184312983074791617163776194969363965701352161578986396266134011006958592850744765551869163608894092681399825852665982908019490846508302745632081378221088125811353684159097338158829801948971114981088103116006963968313573993613817388822264121707325017238309369166809878639348199092060867518780276921643500626155172136978243984959948077871294459259827586530131905065772332962194152587665754366156404024597836181356781374458233949865174926397288641960789046108704491586495460440516433547543965092598859444385494142527920898958270612905949481932338601510403936514995685920420147427905611800253265279598948545584213979217986858339752411907548578457880818850752958823201424294409856832060872265505196377014837041738056534695751587898111292480494126977411815398484352691384326851632134960525149531884365534701316599940106066497778171487898334137955543002237085377382964069269648834269827462578262260622526514864795602865944670488184959276212752611875284712008773537287097550861677415308299051134132694447957801250191624127120919614790972220687370219402719653372565567260556009867053248652974416777333456658051069406305663638011923015614590873737685139871779208038229671524010785684540680269144323837732782866066410654375123467879429953021039033103423472904433037656403402728466440013506452230075943317209119144789029027543824573415739531274356975363557246465246019732538580844545513620454218409960174001205826314623336901026007587332838555732494405200482768413658682482558374469343834364317036371774289444259156231763717235248858528723789258344511319061660797457920607833120752591202937436373213398435213030299487666495978047244854156648216346152919468403083982634339314668838385896415622336587631971506623238491318522417382410247254921240342789842396976428450658088876163360953627529318978401177924331612467398882002761340368376235156594400562617164791393805691406799945666149153270413904796727313697355453492536510405373605344020269881682742249705145072351656056427834413803966009692202573797615383615647029185981678643117159819896793813693556191918601951242628746331854060041686345505730949641815388077390323497194283542921174772326365507683243258216011692768141985761841696049622333781266164434573148038733763557461373770242839964860594745045505266202890084825854666895797637993940466149252632433998777722214095113831873163552154683783985616727398687066341487705417593421258968860918611201094230728383520898908437801510047345804012927202108199049010239143326090596173697688987260336712184203482698352478148428978412793406176290329295205102582485717986353783901538345704012231328321621953517586754523164330589245945140460667807654021548782992393294935215597658442559513321321100234987117562127350134861660519142615372570053959532800822606221893486689232550243196695453192033851792767281976299609180400556098528930932002858748455630026066318869465249521665842254101731398126491632366968354958509570413370073098735417428128259426989448115462705391738455330989977834685989333975016939889763617728282076784391871621959097928593023320156457678428781667789777225462716370384108478864865570981023414126067039549760062589701298332984937925624070663042241249507150532625515366801557762574386261218423030419950120370411741050526391355827588508276187651021330571112278967137483213627508971934170605963347713859495898349291963108110833167834518426452606968803079759257336229957636763064529308260845657080751740427456282354218601567767662130746015853007706219090913892678585377769985960886286289116502243180492075062296156825982227792255655474464168998207235430988127990451566503098366886100521715394312300748432614424772632430048809349794990786497914448417077264416330502497694207629978442108415172551192695181130694728358797792470702536217341283878579856674333472663317025881356263711679086767291946604261535101834811924747120689734600085978031965849072460635367741720239891711772560600491670019504106840362844480475286549425493753315256970949079490799863881442229849453877842792121154282063528873077735002851634779137171116432782369632635748277013707177484808553698771953648775820079390773699979670137956781370454780125152231623803172598342217912904482145352663577282005141805709398631669657229596519356421035993355734257305714445571269283003916372093422106943050763270484984981990223729669462711966815689568935016905679760902370357759260066734631704842028998848206811387733327122991498704952920050008594263058722552941660059400637217662872410032399790206672779862910627897744586335333262836375428302063939597919950986365373001551993880155208464767297120161149546453070830185761629907060135850780814698322595143054833252120875162037990941357677890745842456324494130132785043148516757938681011995484108011993830936628166167811369817756056894850934172694303614161835520100201520317934463270590774582308962378179719639141677012989400207032744802289930337230743960563647989324658516407222932399179733455556519808236304458812609086761310744600819620760592754319532815560788212798946809331148370543215188292334656303030928959404784282456803188681035089071848113488427625153253412820311737098471069464578740568946145478659580558705995614458733901635955872098118851587985270385010851177559413473014740027388507564220333797484768507693615292775233074015953986577078300666365852631591277945057048884383778770188218193438650920053581817551353544829655113194700069995201535305197097416146668757119660850502735141117341164672321380600728309401216695054391921857359259858306026794465171083408503403585104411473736157033970437039785728687182786842108338574058810807881469470983668873830085332358644502922120233413728289397193559742565848030014848910050254623226009586110964278033386990537672219603904031935282492044558515784058827527192470739486962362434928101237154697393583239814240246981620752474623375453969571041369204120255739550569075296286256259460908407361830571251010044033268318133708105301095738578593091066385065824547185460138492265286394579751661278764089345256701972942979319741919282953766944791429007698805154122505424920868002921962501416292782928878224941165563415140497905519911959706386443474343178650895520934757328961518892008462611085031698984343230340565736755729324133565666326224665995836542731338247756602977608932282296874409368942221900421881500107555473834431639897406269913455283846739042488570237579198504908932082776838059981776681244763200230033269119254268333454399545000537066120114354614368218626299823708107435278927806727719932373616647426163203489440746975891892161008664286771259981985895117662094716851103879011247524839114353484180804991048049828032886147267993379966327201159657717948576540462947442262035002347941573638813760475738850356451810858544380891382522775453989341889263791457963988957523390673735541832556877807684109366628124182377635694844530683294809789320679286972133606947560914946346026927578609617216613750065263582721386135380567843084981182811796861080771668622419772115336413230057251261927469113108085089221693290049751865714289940537878914285915427652016338711630538663737401757264210133300032778881512720063658303341351486822679556665839060884080897880131562064961452494204901118419876960459487497409951032573608877242503351149544914483850747428694159664787268053372353172506257253575804679707304798257202791178669680505435016044935300251860628282107248422963644933290819915120912966249722762107037146491170695083623965862117442377467689064427825750675134061431858025369573441623747669287193006096803412971485980429057825462567346888958750769539715423773500010661739642099483762622253630076051629576837141721704301166700570599120988807175556676911239912100419603004569317363782797146164996457767221880214123545686847074564903676061340753787287096757916247255183232279932006612391247966782340637198843800660026549370877545804719048071809277220609927296298670817178702187911227968288786183468300674764535004402105114640886103174050819477047945148821819687630965039390004844288472700534499891253025174130616491981869512041577002171154649684819965980170430864825107720421122002349300902862797158622514900968928208256422041288636399043200336957352982065390392740945182057922870446283399750181666771001132369341668905620000664423110443764568871781218086320167202646823869275246294551451929321628078989845346893671305260027083763759978358621337787080910360067021204279459832099112684377574391813068868228352725092822489392846325567528026261898464985301755281183037381500934039674387640806439082563374025435081395670449714223897688507531855592458209335132896367969414908009899133924256958101426654398807069246729780080712133898113556145778646369569500060602355758855929788991471282764760640709307632029974618470270692252860078025534199977522077194417370040880949412105665846093008649389306747862727163243771025802889720714367933299985821431665914223338406750291518399930037785624092871164686502718898607083687729779371448460164702548368868123613101514315897784934335781199201129279327629934534410124214657443671884407683774200817590700751182665995232018890767439242987936023965999024007661189282921932962157944301541411379079625300068388572685441464954214731373473154827970158263525753086197913102075524273521528017880589167097872613534587035770616993741358106673952281210799918593867902162769675095635398715861979704556537076707977089916584183581059829065818040479394881524068192937323102575101781505498990518565357402349051303479292397439531307303180378581098395765745650970989370848660833450187072259964673362500818379117413092018336405556980725621682467386018776535324503096505715761490427046257231901887475109600306214937529205327100503264834024129936474747835507588650115031383937457955466789310214467669483032645697753135339101387194014176219565876842435972097039951358051250237835713617940382130830932480191535828145739643991944619627520433319235052241597337980058017312737624381358732049910051963431589930793872558328290605446823768177475327035411772652940227487759425904775202517496113240822241589443645606414320052330504144511195723079270410883646995700399254195692595767348056662153488801538507630053192828535914013203326727923500564644749920684171963607567596529909126072002564307408937991358218147029637632594114059359766023708735330536570520099666580642455220068173212177637383837292650575147217956356004831244581384797978866247040275093283948717579888811951053848744457030629305045874440335823773833241099220715751873376147185884851793554313184947593215553503010641915612835447812019450709189223542347105481190422178531413476846662300423237462707217092888194958244611659467267175040753173541342752315867779212426275479299902164016947750515607663897505732448015002112109800971685276976769814551989840901619361415501380930416072708491808548981347849096951444559773794280740145666183835417343261407852499143417797843484219458627929089354426544757535783983734374098632957496972104278511573671464191976245547123367628379782165564935751600919547307440105656210211758164507873976705895169852789579108483871436132532807494481279666550591098944174143816477419376945300429957814211321678098059222905896225178210091490029344111264952397636511160523724448411336807888626283052571053806842853166123206977026849639684038448303393120914589655400383476552946746722210450920872156464219825816936742706333872816947069752969258176828197439462687816136029260236999789957789690913696325320373702714238505781831148995256470294065233415672664632752638866017003381825083689649029711323397332873770506644326438719800911077021670144519965200777474741553732646955704611132202073708692391861240410367937812733758823912487997851232503694719670903875480665025735266488038221821535797490661186140409209774139126354991094705542270425071218128909695213372344263383624926976705880192192632282098662763602467586910945467700610331300684456066609355344579937762873977882824012546670127215172999827848334649118441358669095310631762259081693759309829234550933547541439555982064526760285949080538363506005348457879645120951844301387412860975192610920516520306366654629186620125098862797470479816899171497047516866534992882181291327613032612744976932719680584490122684756978846431605917911652986713280829258146748227834342364121780273394022884760023031723987480159272283954616875079756601632688179469898413903632160026447362380169593204739963311013594166051179430396059743725262053682801124588263942491290117893942339927931511757332337717821084014126051197078621963314620535083967150252642462453179602788049659458057594921569278574225244279064350529809794449972262745225782859667794617233558053974722880985227251227316142212795597757560000572069985689288476204470709701104254811880590662309098575076432902732664581134098123739932894551581382185812898622009650304850197735046329148225564485143869216206929431321487786402545341948160219418896046587335249263298716685412967727266380735585517995772032913840623672509749163235113352855686046680389278993932692916493318791674036168158602787656001774079159665407227942430524817707356104109434357572604765556699059353536699746127130587688719471268287836528616683573040814217219678231644759581082745984790242851898192547228705982103753431104594302571676141137512696665274287571886240875554186228560719762428652168141632437392346168836903172975164775978206086998077870832949049543222940229665491978403768944632835253396685199429318407459879231954019485041634276155381259903183301252239838396716643022545626308414680811543181122072282330607031088415971800169741073148254781125817413831870137329946517007240073194261405891734911683813851587610592981752485284568388393673370768398061918564051089129537423575848789955776086323636990084668974320918927054020641684288790120119241574892337136832240671016246179022971094050697714832040121104796225187964612031945174747211550274181046565775908251824288456647062324329502811965857168416074621421320493482873103574673285759873743850446283634343279841847059797464699383662121168329871992660098180510384860711250485456095236497077201052570426191581568469123966438830187683126936779253040727035692647414249729501109732968837506710441812804796395163884075857581203783325235774477685688642706947589973105118237782119234352421044084425657489591693820565544787163645924432566682933279758763130692233588350927066973475787794325989442533316508011464595323966841612193557168472275629938245273777864200242293065992546604248565635969956161715708116501268629489193106722414960760184314312931730812473818024275582012378472736487250247274567607605688350358838200207461907109704102609705269060984904887946156831290255241311027939712861014006180454912163777708435154117667669429428419450997131332989001838258023040799720918836289094784649315147488439834490955294333196171579080039200530086749784851047370675287270886070783588248885870593199077855321511175383597135047657652076462631322543008892938305692410163763222769048668501507576325507865902144405835500078499649956413395915919887245528850924912900874028974200192084062213702169767385777222832171769739608171472093604576164846539008147266950888711251649784858803581913799817072270958768620340419118591759548921795061353034847595364501220421009775115955734872293417491082479711959684087750287341711411134753045616443921976862072000364691243076013805874426247899724028775830365964933108127542727568557727746045109498981485925147876383020099929389484335479185626322055630793852943868478087427526087417056179275145746374092719330365188044609333354016084155287309949877994830475625314709713952039413600110669875372956167309035519306235118254736804364003690752567942086152850722567549528661850783874808675133821328429765302934686447838704813976868980944973991490691569197770581182112882732675837539903376204588765772836777301473334703767545265423010162627119657450865557603086894650758409663457687429440114352566552936132978513632601887474493723914424152716160702094414816310024303586045068636134913571225215051402685215877274720753625593056979679502217943159032316779397877816541008893282457815457078382157104819005856449162460019066645247941423432856355559549726739331528358606227472349103810358403556260263425452123084416374645064175409447690831124921118755672638028562764926511749303270298518041168922239101384808199094462749010760046851582951848558990098130572681098451945856728256407949383932184561098837052568408367276292441909619462382004663993265278619538542964073630429189141978473211292484721444470211060211077433903281774361704067012735783481625086571806267278426919862584870155785998703351780540055889824511162395473233907969896277908949762563928288872817392437607779219437312463496278245301490130131983056424545158669518891168404615323989617878828704358968330694645416076420329146878846112024073271058837597140232191630016841029263572793528831071362558574942304480145525094589447295820013709908541296907034932322511501919863569598800997388545152186715561428276486092866252223539818427928541772057501317102979911514426604380905593692994712709443852485632033414628976196528049104351167017036953276159293471439686239141240727914135984920150000536761266400133715689849156972450951057270105698681442217032384144951775374093655565361510800414613480869962632383127921882522556269641581211796210562359030149780309954333845850383904763876909620112970193092020883569957598839381017783767013960357164757845772457695724913746697017346747585547718318882283782739929184515594012907603086720325095357335937206951927440069650394094171696015751223913061493633112051395204722810144730418324678374963360312006610152789349819513016933652537874125047705328413897101299153252656615131969225314077336066331216320284199728708496559693681623991496490014723871079291931649447949033261153927004133700057508371942811244515021087758821463410318020922635205086726310740741839727330489852018864473216926664247591555204970122367102176154683943369260444486198422960394903336697832502833864834532912271910009075735857656547069132598580002326858083123698449150616247032082454202600798158228381319832898040631057595352119426003648070323744115117974562663314382340774244945738789383777512895359900062617031193787270082841559170565518622230188767445817359993527674815080016355622736251799279498801073670414536566162937407122427132134542216403923710524725815418678728157496516055960819549686410819272090576986877652775684394010796610233674148300512177910581187294860861403615249273798365377948261953238815981428099041074434393918570246155138066255530946299026635596503511389770849523245990599801705899899450546152655149211005182385855395383204861391786865641996930662034694752328565803044765949099916649804255988640279849911286583831854826407988887975278523548912455545095710971747581255160050550866097489071575370522735116919062624112902553742831901840736499558404324340136756646584875856361125096555868492114912713497339182478415330697865593914166614984778336351363030036006186050246164164930754155890174300741059509698571057882638890708114597785993098524270347660954128237592395048157960893846996302150060704617056768143226502560567282368642293259358812720493462026387152747184828562805439965177010311873640249523837204846806951541988146414925907562192412228416043121136698382153411243263431888820742473858655425086173860489613497987949112660265150108721915978801130987571649179176710493101320888366365269357555947282216394438522552721524545455940537106163321630577990241937741336102051833290831773137257857583235960599350030479703281574954507922916880188343035267603939937516580680735697547761616328989184515455334424518810611792611854317834445229142739037561144197038124637035627592266524447552997739038426187410970470883208415826069307745459572036645767085383734910554054512838226340571515227908669482964666444216288278787241648365093301071105095632161776272284284399738884576219425214231192978813764852196030362989799865746220728147632208753200230566097212172230762491409941079075492356250290624221230020118804149685516311119529902945304760196118053642783598143157861829990241955793911491397934541718657656875083648142449287211831091668352571884712498469377128854958215876939632081251436663312692368233830925053994064041920341096326791261286192064858008466431064228382062234801971083818948160758334120542261612367505680501424455099792710178209159219684127545391997575609031151180724385282334801221971281374487466963843166595069518577310561737027319966018124323662816451102286793331650491658152672230180778832285057453785777343348005361894021168646571292945839729134996622313795333130023272028330846248794095398920744757129635042754548984632271594613894541697482005464285523903402023060946090110243689170518881654976899286422690477773726170523626564514306264661507660250459447283965673450105335801975915911863399226202763137994784683728627391496600193873757066596040871778479309674849029549624433243695295265349706790405579285390613532997026860657354845484287295326851070319039183640668851253411422277823210763209446754199780612072013430128492049072758947574118564273923057203819891895163458530539069824778292587391179884760401146145262862853630506772338132608120320541860049881906529157902817998035824072365952837385634534155292204287718853030808933163361305609098476550569286488823923252071466335108189616277617417586066911321676557991524422576281893413963835309178451668506039305697676229327512642043585142931014168567419815879351253679576954889654185013287056301435755080055820534023782680681528926967997475266377883865980037393746849989531473670258668740429496717258045651691280120653020278595165871259487108378865925829775537507849559317087099300697391032746122823332858620719135805055310530253417592097610035425287077691250026388050940663918187290142431564032309260216051125135505353717217119254893083501142143716078020227008409042394344119067882447229894490597446470810222418758996675749448340116692214984573017187261101409883752246591997058762191714634470511002839667162216225518995099946221109835182444336978446596251620565225905073129475986808092535534051525788734947857411237574383924664185076198323914348909606030925542734241668971693105292934223540821349537385713390352825130319149897610568699671802467422190146984753825111597228438818110386414886744716364018757292322154746856753733465734842948439432069836603483405494665753785247855732068670453446924403201562463814222771545755687526152050609803138339314976192106382786682899332840404416741722013189733434272988561392381278564742018195866005117369293274884196861510444836361821107435551670166283846053242236417690081938568075107309906125311490421116990690788576565322987551077277400263673485885650867991599771443589415380181392170205489540448305391837159468901895010496814059100312027581507979265175199126944465637739472425166068769774476945747318646654815377241517916819886588378843021217497962585072451357717816790908728330842942585032747518061346741142666265519590984000507857918868807173862404097436942400791327059439025366276368371428748035920326404522835583848143347781895770003700753455103265392233777023599958280764391590838029897909605668795447206814795928714195378255657986016694611855431265170468199827983989293970695436368662325713245702976592256375710325126143938073162478400249465095581622189096903648597320153600856996700859928470960598640621656036250346193250889436742895759752010716599865109389389558096455256237644202548222244414545948241288520290095257897517729393910497642797880104607669688469541073663332634664595818610569217052153317189138554305134642976288451741456935515809262719072922956992390140843542277411568503009112020051450743922447917819702732112086389954987691515200424731608865673163720030022328648146402447265617307524553502282326855358232958192346239622196014308477479005648882385416214675588569313918126318236946101758975767197293566209646658105845034470160687687634763685378800303499135783718635345419394371016392161531132159633149996399040215160417718416678766285628718591907917469792987397166970493541737496617662415388177038306525719319721670429541760669501315823115242903927220986506806599568677013258530611894470718760266453351939004048431910940880358032073818934232067756866509233978680106472773676156574873355869339372801381665366921229324936426916427567360590329897280607631642710344492968860132403947300980102431741495298765311233411011633069721019174472429263843784428056288972009342921571745110884618343139498605522451145434544240482541753830791622267242301512122168189754894212623962461604271921697530029641225064624485293395822997903572077783490475193774197471248695268969323507448119537585592095875156316703159218078795990363952857056837371305375382378718475353982622993685042276877821422165936305952465920625804287654693073491425059801626874905121844534981997696353859577309755553592443102205922862610656996496832541004076439338298023242948544237881630925427508533395229473986004340208904772080848170500145292151961219190066730418134829247572783699319363542751517464923259559026277522258890424771311112626326632862846924672946653984712894746509320187036280896808790718617428859297023116774592771928716684888349176966628904244482639913780200764063701384141131718183375797190849150657142880557036350952463973327707681322330434860174196145245518793180123931895741059575673386775046284887594572559053905389607001075240095929632908619047765585977916937775204724508231314740264405715709129942811721348096943663699097061856078396516905186822043418229231854165012182032242359649340781562043162534567089349858581005027154536257159553130275948256176266918113959606495936017682755225372522189323600285284797489192529019018314330900567445936863272204615710750096162784980822817270852505485538203103509652135486786904946095100346642248356507204270501385301776614586239883210206944559652288396053800080299434776852177580163665324413960465684580839003118085614101110477388517738730664611135113475206872759137933582304571244742118075595890308113237146513000395819184031056444607790561058086411606002861264344742118876735078609491877745358286594751941252083389033805738222943601641839365479906156847771049418358235620837238566636439993675163594232244079991845745611730129874840984218503026493665696599683915071772559125681178583556536029422504188970214416523346854835603088903335873119613490180456693622717229668558479677307832801778798648137861863189283515173517131947902107261267582430478132574912762564111578259712669496258168935298896661587887631287283116600931704033562405395251526489117215206435933903227825332749014861362100702703754375028621064279564100938099935820652109762966873659408784434955231584359167951010313493819303172506758930633936288302363005354546066860112161827561011969796448556712759876712352705850070336547571796288353479148768789814936754587160011505024775215485987040210125585974627549191188452458812975057292194505672414404305362514235919858376953120221918434335901278124763035600622407882283557134291971816922721366862353599214561418841877613868784824508253764959086554334239595675930394146914156110816107724396732520945590155567590946901349819972976587410264049196320504848181622666938599263654034141990678801276746410293229849613294509992174855290353399414648713455773557600211938742029102979208500700493176128597065029243102087543357571331313103222567473726869597113794853869749944578800401687442610205395979586182528405940863801081968519370074420909062840858229932654392939806531406356780727702907709369112025872183126019933781821126984153313498435758431548646287131963213190074907109520709402130610085400885515042813785315988682116896837864052002331820272426396762510154593843600925998838722395965918158083563372248182402404998791709933929893653941841116361250822606574990144843559261399504977148079854022844146057649097487637211588674820891073583602357317120494406807427407765390503174098579050024492275004455096902909951465051320124148456974865179153102210656661319445590440156005945718029890917092455672723589516061442395623448683619321814545944618629126456284019745984945682957064690063331734963397801022379550997736860865352405459008620150884187410987027589883509225619080302912354443730927954427219161244009208220784669602277271930980029462757276543739651142454174274835282968142261491142753990281665529570311088937194372850593597764937261719038944152793376842592021754097068542366550696077226773027210741665030339536426566253698250620750358314265340459778705802900217068617109285324577274877354551081549891915591013730372275853185790139133563553177271968541491356936627240135424374301397808654803384941155785799908125886146224613589232457922530524422717346321018664378193518498976174179036214187423954645339937420392203704718694863396741007043190035119185135149588872913290112829035945617397037250454263495741314563283594053462283029204001062400330634872299491066369436689099311068315064461356617090091719795299370101537616976143358311458062164001990899785542402169656223034026608694672239352696071028809159963915015826287268052784835435775726222740392143248075654917278834020527990732822657230341155497629082404360659743082447468204349105667956260816473277157712531547964678261837118352615165634557264126050263672273047797313737180940800176153064050688158526700189740334638274833766996851222534734499356751090134377464091104544043639986252492097970195090678114478282278393273133422281149121464938867119758901093537266380099438311329713315193655836947456689420802464885746517106453948291644658503109147417267777132553271278955520650219406875725420349586966205096707979402311890568838340330717609141998815058587376385146205085598178603420346277086785509769349115637164168270271866392394303350084485994110471413559809147871286235127004543154940310174596030419314915634397879251032479072603502522164330545831486099483221306602382267422390825223969663931053282000830543339981296218693800582809551332927871273935663911988966647130478156486771585393972927063703347603448944601298480256957741769060236701774102428265917943247361133745616835640921289491546977857499503831627299060500363508007582768220572670942183421346684629040630805413666033866342950720452739528172320720490953815523431831574411074231824573751688858822384836562458330219965939792259018151706212521658965897476475526086081042956923684030590907769561603489185835725618013199185828022436275408173610828444696277178541293909066749123473192640076874445451457379771651127142774474330244800703701632439180849298880201678220548726267526660861215773534568368890090880417207775350322749146978680230356542954974260668598513497490644432767800571585557300462498289848749995143291296208366820080480880520800129281322584559682142388838323047023551982575723977141764594245366931487661099403764209009743960067816966325561016467104110013445803189553755512929856502752090617075025598313101911587936504763670707400249155441526894809112019199182413006011250848409684573367161081551111821756285612877426023869971382330484725343307315312383769770541518669913861199814977138729574050213393523797149791790639172786841568255781788505738536206100918661206853348668125779251482684385192272337038326554560806405694333908655607733213359277520371147546284425216332818826006806571577417579810236821263316851533852081760687333211290858542439634554161921502027962637408605805631733069224944922045622434803597356156284828621504128939445848849570961024198897489655069693056312976435691756566833029066748352334939736528045174725186291175726236555458208474756254930007885515955029079474412807540536328974345007620593960841401684455014770604344363363147153500441113286586175240016933876050623315365876462150963315419425278249294199289630955345621727937212701369461859485449781680587617126311840930887126719859458924897587834543219533465183701042594258625542831718201220201151684453198562528807833908371540519767806794645605502509539921372575999214312596106076612466752344345769623186662274925925430639384837947700730601028928160756728629959123806681989485234925936601695371146004981002979115951137616111444917020929147376227353836091102750222826003306957446735045359957700971643358654543369745489634038252252967467954120687889288609997045693403804284779160585993290317481296068445831229689015848731821960603118743109188680770526607856791610013797648990544602097063825903050637127014948528838425421345939091804069011794798596506866518029552131980195018003822758089182198198393389132388667233407442588572295959509660232397040893157119333671921745402515116378048694117040120014911628972148630727297618124562202990264539325051638093557564796526853342501532724035418423932077164419875839108965523302284946370845255605405278548190986464466188386157444508231862827279618218970910564117495917353228159699411142675868462949290827621158016738887350782330844800809589365496810713129255803008087050848882854245696778227435584675999074763197606559409520652173320272940889551433018150529872375054940674114713490700429134944811164739392789615612838876776988920492901233608487308838182289302943816722121713461220911842117273662801019046372514738276214168962132034625778500212652118276081827760956260807911215744657838306529945370381211692825639444305215587795100223331113266464615815807046630895547862443564278365506942267183458036973082492188358609308214582266127290561809108934311278790936679462703194128641500163609034543367250901927411311653522959992160701501736298122477195817344604137275625002922637600511953447428214405778110608359188786939293925604179845094489315086061334095714514108861759338934113818543440378087529091025877218981537561611882354514886915979457222222902216802038690725355107814018158921259094013035513157691768529980674501080604181868860801488638172658874023860067569545328209091645157622192339332586821166181350611231892314486644201870736066885198674940372057915648865937991758025966533150567198664324547541451999218549982306953933928868977928115924453250104060697243411507602494875409867945449735220692936194932910555228451568828945469968123198652932501773089398023640122201683445413441222088125856221174961266116007080424394163355067103616415036589599237619553177558399283247018616092466845785890371208988564586973931510988842787548471412323042205038787302626448054312858986598119149641475303920327767204678494312433715851498708187422671744135621051987393556669239968266576523134825869556726971187918735202304935340624899473348726472451903724018767331709214908989777801250923563883809047756916789039649608493925954218029254356170581187573038278635926126968986586172644602592154485457802048685314334758248147750514429254573636495043343009329445751456202290105953543464319649914545776821635268846724645342807712058129936127212796719801276252930818421505215125023526199368053794780641037049378442836085002989029035458353346577980161184784535266649748734314931274563807795539257623036825232429758959178554407513135156756746408322731198977389055819954944020561787501984241928667320589261341475502713145979865387670737332112957488744062070648390208660416884343006233593501332722960703589773723942678810027084037017920573897131628850282914004877148938267103544015472203971339065210480529510524498931931591145168930922402420321129085103647815872353821760927576812718686167897319179656729912155265077602567305489690588462644205038527282770636643478986406382915073903395039493461192656736872532593551711952940514532123114450184370245868135414139050191501498482472057546923893594216061778975126696893293049657047479797380071961769659507806512619718942777743507228238457715139087869926791586215443850844988262729620707659195887452541867825300374436288405831890474409007925555782926289974474672785117302912175021142970340629709601802927133075166133993551040672087264329271141237276659563355975667434773007093631776653888605484042959095174593346676633520351098979229494392773629167245211797551741275254928038425487652115428379942708405615910478813677151669235733667328266885150126670725202354227976364170103428957727709206560330520825749692843250474159144078763652381876463259869568092070890625214654529315580248982433760784876070843326236627985954060971740677189063703124239729694445417449101925506427775965830272597888788993089700956300896284923740209128235638706539976139380774257716530160969864083673506251448426127099301832728879801651650082829579255349763662193996832666338472398773522322296248941789933637166321161027692020388879949923429988618964885367397406345220825995347184642421676412109038884672504028460235791479473010416524914978043262328828090760518578938509059992300952419841333693011678371418217282000099527773968346354955524262397574339495271053386029814044347375859175035708350302934987219197769298250670929603194178145482356176021937403780698121176280080290451825282449995813766687071993901664755167831218961783849682738981623800905623615759808943506964703714207163657154701206142706400643395044470250958804836277275671169419938710761468858022687149096545683215909380423375501737627899481612036780929378545301858821108665012882212632252121508901406018803821155322592938135820420435618743025941708368944011055406842280685148716303434125578425429910180097958826686527823440596321756044231304749449579104985619443982477101743785543089567091516555340504107916325190317807438450122828041829810683486066015280213449843091835663090648817671753510878791336259336691999185064769978289744072710273084504777086935838473454210773885352836414790013813730271932806813619859890667558194867693466233104819774587482797686629598058500730597855136582137821020014095287809015328405890295122640402364403398842910871072454456382100911496234174614706407403369232854002627696884495601204489148950902376465379129320523918791170095275518796857326408644744692220937544036942347176522563645744556261521403523540663825294791385654650988354841863188393480593346272901455338606451352491297993246296761460755908120065436335817983771743711268197712591128296048888950482262288250180707610640501823404174012818570269063465351171867290775595534043683198533739060435719044344219848680618717554737622309223309129647473005944081144813927543902739825504619331882081586656775626271933765740028821757120992834644143751977428963397675753047786241162002291481407906705874726049541429309005839970516097432250448799706674752809445949052606038677679076139350653601789988979237654053207824728621520628729754701642220974975450654362060162925414158652372600208728001478113242713371776522583867410490765275156537025814698282834967377317172056319665399342714981849192455345554379177513054718399810885031269685509652967557701906714511136183068060901703852069471254441130028303936652951280022402008830823066305023517405542586699836485420939646751591838177142005251487608906198313771631027381341799155980841191474039486664812864097849873078176012603636001537572226336809549670060504446024950160571421711494481848607214017991774215625756113357181832181027140871684232771044371862822754073314726712343759103090348279719877541047858272999230099825281727688769949191416540700514045103050903337570364960922240132477783381623479333185091362073286658897635336107297203301272193666595660269322919397108819948654953146547830703574097727641420067876057172738952261254281261484090225572960739941653875520214485395375495902656424814498355625229106694583723961968856475328819258781667264709233086471146445583837028183257961173552222459741134704730323783060850872188616059444995762965270673179500745273752136530163171542900322370280452198078087744721392563634617548702529720449234842212862331247313017626761924726185190048310124754244058823031312069912626585487126849647956935610167964155398252112659516972767409417707777600912360405575782048253395937770778836501099936940737342049293121373345368776985966903841780806364156102849715302969160661290657567565066308528263260752086653789933482856174315957967073368398402153430693333403515430147400810113590268800460731483997614658469573862951329870757706560787755549715126311432936618179131953730556502219868190188178316527284798585564769811119287416145517928487482276326500187041620674810082250425730815615401603508646068344720662647100178331078317036001773138592096341794382897016055881998727022733842446291621628108306456186580041892362378141453000774102092375839236090746540140196871340892530277651498752667173613209038210524086922463488943067358720233097098375013238179443993630556507423612117489749188382374053737447760866718208518682065975810601741265973940822371292183605142608238665911687648266968336523554821382042875215130174024248747666404850088291204232721624501563411904387033292604649025357460304829182688830124602496138301558571764857932162233590332766436582547250246345607538103482689755300518022694670467787179227412480846032886496746290252194217130733308587777123235046645791947337771258804899382838421373258637066512498619563874001140657596601975090965795395883798623270675873732263584799838395167266232958593125136266986307237592713973296012193584372196598990714397828750532808671907225520237018996888732021567712058986006625444845952877833881360669083305891617759424370632346519802302073193105126381539745818213583613962553381986345414820462756375320833761300266999428557731644932319981150539794366211987999005957875872825342101808564276208584144347894770103814288252519427034268736301700403487562297829734035025422854069767711620586644768338040350635204886982996231487052645495727378520644665907890889805881486526305110953692710524722707993380160408920748199404062518137731932604910065428322033346844731527710403100183257837165247203546561149195713401778536839613540890863958789161370848780467025575373203092645273561156085033235703688392798465512103798626871637091372342778983208864475133867807062789122201680847551622347032401197911853652424548803944298657418113216776623403086298428772893233773147354679446576361309478270984966931378190694519708576064215677336677292956843343458807124867631678929741355281726371351327248744669494322754995280090000118061174487864642803637565737674678668441310100494541674251890388417391546408949403243729113576479892178619082076235048177020844923671688671314624599290887640787252795774857428163562908278810623065965532046471678867441253136478795844096914077600253982797778917363495673762199676582172194313963431181623065616870768657912969691782563843292213844743737547191502839302999728200981065170920789744755282234592311330602775487395784145416458820451710881488547624276438288474417144395683812916313844760038956296077133868842943078424973750354368105870874611817540293594697714589306115481952957147159886173588671616890105657542016566436158201829598929360666790794598506468906583425582210932787064197481987766913146190992942799483568895890111048348392495954450441178499500476677161173927261704945783520592141082676543156555159727593457246000732251522162718185935564365121906887719948243083942749980144590243829224283678550722211894568281268262632551522545326325394658504635247385700662983648221093958511383757483010630769211749319130995010949852179842599194487301042174001692561687482869935373517754615247627773243848234708404179474578465838546723486302771922204102112334709896550575716962415288415325247096158088541281315224845435845639862412601906886054272882864379469069556041814785126069723181428313886069848831709272746695857531947209603240469480514107216889902519949646325359120234820920425265677427368162034874891563674263459671223656509105166729412309257695159735747367501103457203881082796609446673937775621847311944624125195411318877331171601874256909156042267654819654826566680778566992102153772622602255800363159959570115613212782930690557447312635397609206130477448746234853485830081802540040375672378092840872050417526752621540837857987163649829128373572949335352490909442366931744632763894512284042556321944938958369518848981811876015249521477762278692154197894463908980965598031610938776385274190547016429385004369472086751735607091801964572868943248041060265733135071203490987997339479690205561665313498123322955941215936850813823206037750540070458128279795125960652291599869292273036386738300368278028444873810637923707791666032143509172632643321946717837961330042197660276228192724806668317264088897905025248396387114516481645006898549694346741925941264507703417873744719692900800680320833083981300855189009469665969414719595946581314729618012860824355763715558167890982852919386915457940024468442605753885363240312638122366626918318611712007789341194760649812098578431237844753507627560155784573071330193449900486270056931720237557180615839274700208051693456994604837527491082394810492553308629579394719361833485227805796081541350854145602747853682653352494194186875613494766330373992327059597093901374714384690626544175159307677368949084042641082420250060615004995753181116422088307331848869559941290133273367620895329428777609233223485153003236143155389374334276834590315506459414415778029194694628375566644731053926169607510233145357278240845741182736932497511870058334873117460409125528476398739703203450186224902749973066521050457230526508174434423421890691966211934136169641586248788012374498654542272296630036726542028193771301044605445614818504373678244358638721539353590167124382255763331302462173866439898568027683324153227525968299298463267022068802406193629211896115772666392493660660427642333013824963226091776724779299961041878322744542558947913637958036617123841417986914029590466236708769333615652792974473838026062495567567775572374546849327194375575825386545158769352481299833886436654877352662441773860182042701749132017667173241282947342728086794986018073142892043201381684261548059373013299203922778427311621583599310383739446218489966271572038938005912658210207101667760966341539941631692932889771985782119472251244643095509009968510640121125034652618407947260608666411321985173964148208238800053459791882320032630597812971324228084605364438121750665150532175018800438649007113461192629101196985783473493533092084342662311370339841974399481733740154677994037010318275081707153009666988364270861667435973671772405717078519063408666448781442528254189502589987949255155339037484535924515897197767498230736517984651792827005057347372579656314162997896445093843080665046340242993086768032602089218387790492772662979346685390062099306552069320369536030135161953220047160685696233858847678961341343250886891226217572968246572139467725418004325080187106736519491164025134377325738625357111698191902970616785209847975274176201638120147057713058615654539544721227271878830131823119559600292558592188774390918551161835444019560539101822679073691241056951744168121060597911369076875165502951003520360261397257838693232609555357861333910512751852356680269298782886739502191293089120610273983753048611937181840296587574398975978695110047715627296355934519122710484009401054491458184742336454148926967577490930609533628490409937478052415757105146782694734526603860383966019613322594347338883632078939384541668448124590486332217433049793674508603341774773208919322999598934113943612507682455535894603559115450764486724762942453151691768814373891729027245711657409334856263652249723102804218358952595724517809024638123181657311674653049038229637808365330673675792202397203166585542335840249731870868275749647239597339397045069791814940725726823834642205470977376522852446412292070796235508175613882851286775388245240502183629295845825373448396323764138157799589303648534729094451772114115107067502458380912793807717947112527428490884721159801724312129293701501165415598511481162089277176878715933377257523220908753867297243120406545386075381468579056734965328481431128598121016534239115002888774041775076780515244831765993283181610452910174708551120879996250105193352845904518277616910303882828274410853806659539099696896343126140507953686183184799815381250824475519483911793615679778405488684624890931883762882284529413318369456586433445964242225576426576804742020672845543601104933919282507975640722471494472511294508060384525736270861449473952104270840892881651789690745930839787579319847905783894847190526254878072002011912809434463756414542491381327679371582033402063724255495074648984202804736568348316027385440382966977552477346579341759689365404307084260608208749910821997862658862958926747454091544903781097225775012339968047093305064110763876406369467190511299527629632571777014814201000437378207040197227133369248111291540635683671817014732565840730661140759734209594528398691484107450868587922168557218529357487650722832311704584392361777651473763244033614944669361233437339466339849623261744936409430799628198359663383147947425653087929182986871697663658362480329822261767459408659383095117163200766783233383497065353003914132183376281479681682601837087116275904361736431584659649798692862079586406240405153177783986961496714022512157787693429568017378080991745811144907597477920130530180077011648233786322633883492037600027269970490818066081666021769772386308731504705047144992370028528249527343040407269805762304531044599241053658595672643368048282054713722402106019047268013191485188191236249902806852024204768702821503723848475817594647424100705507292414534457390685247268495998718199426947658739427525627965983946897913941911182755666469756735315959992160667879102736533741224142306719539141805001740833705257521638063327872715779514491782239023955473177076368958254656211552682419018139312607215684377442387859760778660299507860353556004386633567843184977952818073627847436957221060664274271691638496449567430437192257118320669914681684329536847225467255347101445064479177200647731795374183925687890711446259094153227937496359418264734896214626200336768452422868875494444633529642981256965513287154211848662984713506093118448367666557446631432728403550593281433581304479692743815342443097222177827241662151423764304145384145165443022583485033945675141237295499274380121445651402966242401665860750014398598342676916943671889741839796080667989172094988952693240854068014751071605387393948897644781281706362922851346314494457434109005863116460742406728265955905205607320182112450555766281731266804492186072630408018915058459549475112503083939382892348840479150954752152389902567094642253376315480633048670775359819475241557880148745569548363189599161264373138559587620906894139773778015839213692741117468738265429072004096992925946437526399429386455070787858606593799788890764645207631832603067520036380110838014321858607505709938400046198298322951688497025610151718930294401385088528946805018679051072185019272788855335339740570871824474361504612307958430518392233844159150467452754609953991875481113009388046810762063454878407699725235137397406775965471503797951621054127793413035929894285642810839316922016399479290675855497187110993818157649548782954858408352402805247350423269288516099008255948227838412572069093479152429774196528970868751224718698738528982697435725246918086298915880593095176759504548590555413730350608212641164376445989728209411448454049703330872243357539597060818741456974608012817328422711215625194154160589863867430250063222236017106951499768057110497307814430722452450980294457134917118490370583147004775350489130990103298983229508754912248827578386449357498442607492007257754699596500852568597751924411265379642991824901056552179834016314442105171709447113946267389692379756945638321532410299072134523932118572742024331474725405839947259067266695651752651078337574811644420457634451203092641564897036499492202982021855221634244118827439135937162741536041131000880153926644700382053640688066318600393246583498667935876265004238032105307166208505541582713756215075833420166698926552622998910576790067685796700749658609605612934014477087412800075862862574957656014709300121279590172272743019124732535765584072551762943034985712762589141004939084308212301896795757201489711423336586468602187078333475096392850532984886847568878237472043925412008706173732263281312616638249493468523050155205514269821119058068304688241208958996629049244685107813962740487041274157859268713561103751698900162459685714706352114372347780919729877500091311976891143789663286687315512712756301665530821201449677657572111626874936891643273926395716716961210370830502158928838073559221565645231334994108927855452547369719593827139083295433495105949082491892629629784516742840729347181718784527302898389870408644708623579799569880695553103494828264091375195987298044565245126736206103258947518748399545148710029344950465946748582779542676466752546418911120253018650854899746779887854392539371716277240980100801189226223489814747902523534985026407822023255635129275444169117779658932386471407749478474875264467876827288339076603947154201922065892988896711337712361908907286184360072796438535510672103233655869461361484351294590204212435566635447109444591060738707212625027844037335123154211386968974790149406746988008440435921697479675830558080479433834957537063705025971863066304497970943593714034850999472547049374041186834351185550292454818963954539715982181286423925701639869206792702461862986352474370798180006724475556419218757394360173363491720194361117402993470372396028580189535847700198786807802565565254830291383217070565192738254454837346634444450061425305772475597872129422075783959892593796395380506395120493631469401468400174043708037860729230624584057707546238591558001190928699874968508853420282494794394762911926950201447107901931870083555834283593923658718145223000599688358646241375001352299859191072943321794424032351125299822571214130754499071889766640378223446089798572402356395471430352179302643216758098295836937833611059892056313901082135532569795227434441166000505099467003210537500818879481071049374134712719741151472154815535449247033450235029903878249055419200088494807195206521451717168585595852005116428522162140916796044798568191864876018419077058544186574985182838612763762980703849494212369198076820262955418939216574148437424620422761969495417663387874523872925702214640864457966507745257738552433151734983258528511732082055917698560635055277716935921819714787073688061635443310306523102802384828947981354082117204352762119619452022323335312874237202465774675678205903096506751239516842822554342783432755469244789737941196391972057739800737136098978025652612690003246728305513598520969077441269172543313215297842882889992192440411411601081307291638910965827280914092853619584382848946304491522683909017455378264339334340044300296208098454230323531311546365978926690595888265688257692208098470852159924763673459772532969466279074936473439016285022228928220090900980761196203001930449672325831692911854033004428606519529646383539510572645334790021620590874465503920516574637157203663272153327418008629145534852352408250972724746797469849953907268566607594818908106641760365448249504429398554869864464358388485834256617645081968281934297547733201358689052931752395266928724848959610652283825724635110161879017003397365456352363697235383458341818119343327797535456492664440517726019408299203638695722711709220038998297779452268677075552499947331718218968580132356847484358998401205300146894066806345787914296728603307155115305640695883959380942286671529345980169327354674698560383211607596929322366230569171248839813858912051909015211398387913722263898332374829342892469325405190902818651231917910690844541013249526946297598410162237530366247392757077490838812796880899836193827249491945544526012924622357879789371828390371240811371861495162364665484328693500078789989860878691385104098402470155257739206806390126014732475547252177134896951040071396456051514104711447059528642317729020235326690617953318810540075165031502159476255433622794937091692880361821424024909045518389948300039909712315173772230677456661749205986324311666212132645757181452455201898963964824152760863321431751780458544845684663482313922397616680872392731032929344689525554501734384855305408750542131356390706528738609080493140511646597446252610086304806454067288027655200434348575101852296621850311826157623838788467220017160406225257596953003374214154832726255684139476543949719403281442732651343055846506805326108436749155692744211257775958839863653258414628513763193264895463537713136750520841192292805038214074632832534480851378016837259391340190959566595870156782977682661666064025454965250813699567929613160087119121935544544794885809236849743524705964776674565504764514570117309300480613298573621415781241654282260835340820461536108175705531815358883642424741811518796048616488306927801415576698405899833120340717622404392021786041065230910040545361803574211216008923232263783611929464311075957407212345292834481534992155838039104067884230586539211585311227438510135391764565687735769814093780333736561016798443186918372050709561274081139918787120139233055124670982462514138788665683895772651184703409121569766644593434610094675666431108903002762250786931416221832420756001017416983148958267585593269674282815013475125855926323474481421804703011955527505238077505306433479896795367740486297510517349821089533476319383356118858983527893960819588473426058980880639997295577865669609694076453620683909255866573952339423279971171994684812358110379567007074784350232039427560251639924075986485982312904781869647929856214005931850101824894041398507610738487112372028124487253562463659126984474226259956285464086308099077745795439296750067787159218037228668538355562890785102925053286102924164718823710865751623524964624625547776417539908279212970288695623371864595384931191593472261568569399498737101236378617454597948927123594202674862119359963003816021819569622666404013010487889339815628589044777925911630838940060520791971235211685795619061539225212392952690091968929348722254596376100564525943256752064472335579324543865354183143804511818195417950135373986819566310122257364499279514814968515334195289114015313197257698142869946431235063508197599666591314842187373691476774210044613488529626091850724787170204956728147092594069541698992681378249713624436670524127846685385078595531366022287900441525465285296277587271410955204522653790119913716202017776421635251415556005098688760547179476634512210808292122928624589024750834050937476653575641448183265328309988636351828787755342858313844124125990510959121821534827775404892359959704383656169716828040382448397177781078427011999210808224035929650761082348846528761543848267305563935812763720609795837358099178643072394980961217364493250105822383377441446565002604245864131601254099529444117605266808969107125550969203148718548743813914752836077742635006281082857575292736790794874544810292132361042744249602527129756820420139539331773138338831502198485423430913927986535866598162772373743294295200599370249238325637312858146401358330938672169426086248738177130670950513859727954939323277302241738200252039703267608424824846809170256957721360002060942339763729431322638852702885415268784474178593212979524320313425163134635424785104785348451235986185259146668502149990422659541580935615305415090869732610673129358182597278487892204120844842802074626503354299038743935171263926343494925486891244210454352490870680230944811209735663631875523469250953223173636268928584023028005270211040449184159901054141706703360103165785330033926401905792226711276315941058742356479485439421643604038362177792620928130009660309521856650758898308291402581303889607750587207931413418584069939117735953925118685433648687035356824167170470994302028659621382860683662229800036247657424288677650747999180882954748709453515340576392520942209460725770789488558677548332308566691552295856638699950721604864533052884461167529380546623434608552717744379469587751370539668107864623632025821905438979329835646412957611679721024588109509392878296747984366100628742499349115519871088015404556221794133576529211414616751538503575197352363841376543345251564253383601655137497960226788156281680173472577468039254459790910340829006764548019188126547054004717984441589611453015192620948653346353858947589162973292761980491463595905432516432159115214061278595787533975686182554469762757221845929047224954189280165298317311759479602568256449494633683272114433863223064993090923838874304334606406795032261194114587331169928219435884257306402664351849421684138668116972205666156269634242080878249238086144457077203360477246761388432399584083792255546196384876520509966213889292600537964470533141604935284960198259203934562534995987257264159334451249611977039822347324300011454732543781510996968124477872790302678799614629272622984830121227034186668857952914448302245288343285089235660297372221477833058432346809075154270689680601083028357426953493199521057132468968812149058523520938672087692705105336478650895111769693696178424491877986649579720390456294337760732326279307053133710868744080177650271000046743679835172856911772888453583141584916807711517699581319227477413423744546895570806045095135804765080139667054427841431807347703958498895400846025661396898541493983589039775056636086630229621706340217729630338901561126460210964716023089898626460965301295989926707209948603457905945454565286477517406351865857578655804416579157230726050195560300669031477582002393583091836068372214755547588605477545647747987304304063966498699227402545874340927428628369612583703037503184025820325202609769047464953498687189630642481393219456802571818879043459600101296878767533233336862621668071992037478094215498825680966609596641484475130958571844672674761832210741421291113259186669649082120099979781256662940569664833488297668929953455887361472109098382110486776940194304466473249678598170452036513224509573697633039560175571436505260601548458688649482944025296140065937490276528761991809167241331977878645184402598622304325303560954339382373733882994442221261925642592403948592665485554041979098447807288927538064964776218156353163373539193483784427484076401470295715970681634678894001872689223223507980667525154095276626979297496200016381475239456174883912135127720667962122440044901906601341825444462666127374533095099910047948033006912433343047745305838129473933276650205153136073983695556671405610970086153604713137077953315659966022208286430763620280923838573994716566343457686150337627616461010974406495671964784335936361336766817329118491765394622276083817779945276039116911805701400044244002626771839963084057607398632815295262194296608078669961205872692562138628339130864811435981730091238562517206053602224478120090012896051196468775899134003017911937937424339708474745352252915693011840762063251237167532295524907311158482182574299315664772385963121268426366952454198697079941322316611540197836955582467981304109196329863056988670246354710697803359406640734984915030939280955864756942572375934633766731831153944685120425037358065621636582631604383908898616004157766558432109434985861342881636274235410523413774359049111940659411497581321602957741421625804621109392433277173607870643331653329052267133835640553225891935181653937070712563326071242862771989220377996570912134149788617123467745878743505064540887330966675642899260937669376146438712194777221415462340820705391353283682871454069952232780977648073261660173665896037709136279988171848602416126341924826858512233678853409655901993827807108579950582381208943964919320669103778824042051990397200051608603951787407450767379375579081948359012442805581661323848718088666268572666826168941752231603771770510933040160983203941879065602244610332426644035538748295731336422118460259498393536941963948138387987425536957426982860783003583490374409957544841675596386473701624487691669281982956854837529102161571558074155139907228778802566145546096954833033742471343087108936622416800018533756314365771842453830077536593755721924565196462867463994369194537689002582389675873634103582077107582631086897376174032323108549007003705565708097209427687503384314872509845587276549006074177462303845860308582402401814051061179492340352463687290726392534338512401468800239101471206983582943161605553578423266712033978946425409515865493732914042274109322923130262515922496738730594453286025445758644265722130398303494563116043806445126389960536988747844429889379249378576344026098594872289167945502903400403527096130690432266009577464728919957216812592751353224377246464485997882860577722108825938578434880895564352398305963589144832546946007464001835023391773740588620647571598264193423149999074626869276295038178601377199335738116526457168072666218578564612502403592102727064866114653207820063234919107794979898926486858584973478893555311729992127305633343957749769614480410736179207672179307194189056761748735248736983174934077560821063828892873503428522502632994846180735331214754401495951116047986933071845397971911589266261216787267395072170529637007713633534984523555173358453160775939744432921201930412735036633136421548261888037961436290717878874790829404910413045674147744603696825434432974766370552087965527137834664505518197228925985807131191220868255874754972946692850199396766251725190753892562282186830548472303116213114743271754913582773432459493979780304152649290975558032272878582544796150310451129693371706325619867720921877698463645896856440044091887529501314162409476085331172729770488404547500698664165090619470977854495545036025491303440079698552455578233550346435936241910704373854870456642932064274150106228999611718436719337264349578731329100029521659703125832083441138576250645216373960343426592170042177070386804942545508884658024892723161609869864598603648253817084378928605176161036159881846986511574839086160857630820181833037923793011438972669596358195031610439223312177930160040726347663840193416512956287098586793493109549644562835549337002654539037839688688716171945241792566278393784504342589409903562401726380523326214436074137044028318969958122264615160156798695237684485976095676013040204178072277901910219536010467288800412278368458247028358849349041716157596518675816448776345722894383641233003648760165387198979519559665650879691491815818526044670427764443289153206226232426660290152712514408150585818718829475763752331169041237801518008351136771793869636950121293690148356844036490538675514439914097163292104040336675236535620148942638762259693905642887381811719005194804348527167568225148841183594539258281548750688518151116961630672412660066573105042360660757908228585847752977781490762661247299235956632001355998257737658262652013180625856501809680108215202052486137018817573873350692154007058721030293044673067903589971521619030380650862101156520122400758427345809154563561900515198309983684954468861882813825175360030067460267452467414533868057207373104767492327636344322156688508254110816340260000431075727761412616806419173652946846888889071988552507152629232915878420102963226891452542281709701539547250470515400060135945737027333093487310087250571386340404107690646349494861210241082297873601169766653082704238584897350081743825970107777958401714698046476552865399619182426827267107247475891256361994168075821855387641288440030962798807329743707636541905862395600783744645923556190652599637694488000904924547548604588675397333111819797503361173968453513511489078929233234719181808259340970683589804308005937575400042448283952348608530328381567286201243883396799747783613648651274004374786370404324782408414668730311447817713978706266503934278668290393853751590191136177571341514900718752674706163311199446786189801243864200428026127426972236931627874455067879366361274389881223904330028832293506062678613146313054604953656338472595510691256865617842368873663821482026372268923640863319402391831068727646224901128832524700433777229499783278829626020644938189684791982604310233018456400088030451248310738612919149327496376478040684879116864842840961687379848878834320204457493300113930782838537984458830442077276749660179355767756600426372484293877206246653750995619038132102565776097779776431554595008060775338606195410169262548267440745286906864178682046842411241982676884455929797282350421949984621612595471599224518789972369660255526267639509075759312976951368789743557423211412150133203250283005998837209683985748583590327795426104765314465473137518746637687073562404731769445477139227415160314932939673432952661836516475492382369448678069348683796018308495899589051612241780476172469675055749394069794915641997799255427078699887436783364485938946094810095662243886421095559300501338941348863905770470323946845250961305293610146883119447048019972194163657754813144885122618522982645838873677927459444590731275909465663108516046211558557020931194441670853463430701625050552169569742765453557735665824993750602129851666994145451528834670159498668320394237212533961661049389852639170238827680576271078519347053580355239431928001077720110197349374416994913530948645972576936855084713469999206414239456065923654877578873485512834219831268494954312351702898920937334156446555779020348717783086484961333191540754329702213235278572082302568999259487483245879907430796822641285462819918334235412746332982401227695525807518087373417194682580395277382579244264930685582156963511625337489255935420497584960214008220673394970798315897191219285486827363706053299401547092050704115041268288320678214114460987639043024237760680667915233802773969253933262248083441825923056916886229327728132600253237459796061153850788907923515651518346649241529636529177329175915537051213907586406118255414152092991739092798323685119778651392267513474325268097657763339417245415286706194908911505144844034501472110615394315033739986787684750219233862917918145146452814507486257854362827583610176960596086967446740052783213146987856348415531861525163610625202077721478747366312694306586717542967725773085567268287506396097158091780663784993596098820105929978291043197225659385365804336712964551612940307027564650153734895529988695951546615462464563539708599090839483750349771132536240013491769777419368169953858012377379170193687417936677110507655895221456521931170656456575637196385557168078794915444609263650966498477976028298607891400899219178593368484387077008867270461791092625130423994909846721451353272785336507482319428573843619207260397837053758966184155439833126928203353696000700574250928568012882945191881895516709245650439103375233778902046584551608212357570240933147674862681672093471301108732708515752694992961265182063397916884298993071732384647244402787337431709798336777006138878717208841630666801782180660061945302405069665543194348891905480404090276456978445140106824999256307127046716888342332712730294278087403909272588765167868886015886448780954771546647267224981053268506031334135560621523227938026635195921049225755234978451834222616554626716230242699832560023047742648855198506068978514028561966711383841186718174233300072624371150714404547792825940337707558341328129204309935639258641036872337391304938554269826883699997530960489622511775383383336716056566913750137546039631051188440724790625477071731631450650838627907597102016197278984052888786070920438974671115780742614592983091369696568969848686988312857162206242455523365099334334315128967781551955385954759238274030737264708911603299424241939555559538260321647174454987611261287526446416651541253004579751163519143981939847924406882454196357346036314456703939648313417496482826715521782304290010230372787384336882748334866307139335316242241831768952356900601154671986333413233293312598733248352604576373091353767228904852939865558888232975938632148411149449654918840790613088662664321898380731798527829976906343010387930607950006764053080141346820675872395574071968091796806778079044017181928204981832709025671662175379529258363858018047605828773294006011567277194318808210116507960990784600632901698700222489423484778511815245374915706142151463885135488509498782244423425762922177873616753180275580653181685624936431849581046283864044400474546689588273453756685549834439537145231685874382123214053982806117675402637216277304349726642273764287677292635813316488392099245657443811417093539034364266511241761220266868114559702954573743190829363928865725117959749588585434559115504634437944917710834988951053353495765274398913949512936132924937954429776190502923423224968386568293981071518985597228282215133390140893073012601222944105319979869630615715123558527758382715358316976575318649670192297932762512613885065070791788408363712324585263590171424562295032481601836046846388866297913194420609334778339501770140388667270589887783338755504843143710175118575483586216572056116060107801426364545852006907052350709997591819462718179431059628518579591523083832404147121932361650205971728868451963732214097199392453543428218618215053876562879215544431291817405858801920322754979026650152292730915632642567196483918616643601268852501890901196938187675696436839748138815603430831036719693062449727655040946482377383577434977079056446000056583783026372856684360744391993392785073158323854935120632189662354853620657711715764793137964434143780683717314037628208206638391132917760498831993608678713361973206580500872559506133743387849320564453944012408622226158372136010122921926211521246052092749437350440176541051324886794372935161613218518001120860291361615734862518462081021105068051227700911572702776223749007775323973096492349854982244519537744907581445505016779556901713847357385531867149919587050054390076308496666812061591049824599702674566448887993609598472264099041565764210997553749930314311857043428701389052814840181304636904110675592874342160021793514617231365203308799449371016697618199040588261186731569704933611107820009067612179488305450008983929691364314572469004790084070803218000487061371856760343503758751707116449216020494378694617960081598285720001816401681984400961142839092728705982378399066223334136940410422760239619577463359973638248841653659935547600223941034695151033081595831667111169769236471787920983169730218403864076703515793042365107001688728212156061312585036388062370021177612968026930212553729142432324751616831004167723116321318932385849362898078734362795465243105535463461255090614998969954206634738189740123983362772793989254794475722107436922499879353240432917456964736809859339478150437899144230013969084005417357124645935353109855396811519423434604660000943086830543842062596748220388954879259491799595416027470139371121724511929412010884005564624697202837520223293350916427455554784290626569094976970991901679796142939603183006420267503016905089848565833276628334053639960106798422791132655527933161937965276317528912348199438110558258925651335274702184350723934246823202902677578044600015976398465012621096140870697352397314183723152245283767010806086230956428671875762511411562067050694146225256828789573920695275590438580216068412730398655255081500052469044263223443616357749294821779945010954270466818927833824905505163051805204997660898715834073833655120792868958882130173243920563927064248651712489922637821728870741470237050806242034265933354757442581748567296885632136053933468413606764340309874639428643764118241560780305200570424474716811272182989623413690716938748970029949110942214721559170211550866075044325280479771890145915210195915698800783098586874422488636815297978455746142114668206756841561967615600233478448061313236797665562077136062741271091881011171943022742574862875374697317939529423788711895212870348894905178899584298379495714944129249013395145987478488905526861788761456466218858768404098259613451351485237088980075095765387620114049309687536735018438893015885359736975491789235448530906690479081331063247630867479485248251219611330406512670866282816077489314313068109509036174131171728273840926853129652047196044516650352213148428533937404185015873671103594659418040277004755946096758114107450035868226970696462432515565494013284579629926222931672079574322231893721237412683613507853168882468052950424502201404044775219878812943035247048874788930045994963770520818667908361441683975228354272239887493146076192149282038943701875116489309202597260108202871703910819535253972286699033248743441682155783981554516725917302633989208957486211000203857173625662131130867446537508217219535217678019840519261196611578300092368473261892756848918753559938197974946435248716282259407109563260838414797362788757724307368077951363184745398019142790371637919821850521304975701957383562602160454498730222851586518449449085077208627714315388419203511698092964050231264553127690656995242429681816578562523360357593556940896445425525330321334404391177752826002756510285084338593834490107065518173455847815738839260766753232973119187968892127620411165082198263515783984394508892473846908896880707327719326686592984982303264234227744563582461453835354596164584815006370806585863927288975279094225075703476380387970620580955621167602940435386048834889273817390592838408643000017277838472230943182508355107524920665922705736759609693343160425055373112417126212191995865311133062332550390870102796152220710601505926934437046363897184237072139832982751836824179430407115848014981009134722480855475191186055049553291093462793300804891891679681590191353494306955923027848173734173191967217782896017008205389484382958266768677433086973515662105769774265508103929418888159939311649633793321347506705515191850731001900503438661089951013160011833065664413873580060190179810204052449946725848270628448744862040621480277200984872689140411888221690169645657484233352721528237776332344101573518826021985413535952171332202699570470503529366562537301419038467056651065565693882830456527813193934366484627278821939176011049953766425996970121081111339515462192560860625518819745499720207703534678565379009505175780383384851948419553612578372407753432398507507344869799282977353854999519945973467388917310642217823198055562564138037901780557982273468704097741516760416869976003941915001704482277225134929070329288514447241170580584953754679354897587160551127812992761028966822946754896568718849177474157856368039214593990425648521718552530875126368676809488687178031239438617665506948030371674027640460637957190775344517215380321776644929649765435378071956095506823670251456119482292025542721364034713990926085723328897136760387640302176472235450524019231608815185617695235731274483396098790956919987815728861974855055609142358337440451631443619438174688725600205038144391426041595047750642109818309833436255941827378781764652088382669498096438571753845883342593491464944339287136140665459139966764972592844550725034313458944405682991343450135396979619875203848595932887372762366547603814097747781313064340875057897838549261988555107547342678095124060961939244327286336733668614299799966888526814793327543441900329539357600865688921331355181812161526522937692635197816655670068010363948390720943411761038899651518334132080811080152283096868996820001995683427141883591835563298006160700815714724933262577511730328684339100334313795819387397947387933036122696534975956974920221316925353543913091695597017850511681427526373438722910968910804641348846746820430887111448145420022034634795243609220543400941287711721779507320435075358697602991308626646875458546303136426189825929886843649929946687437286725945788972884473893498458703605926855941141003308146612772899577522491062653352542829630562700925026281326612625784492666914976204733048210316473960919143497179942730813136243076250857600314223117739676524553724474691052169816070767586510504815554107240054960788010895406263324026428380431525473398366502664698856967347153028597093233752959689897309682152360225322666585251593389834746947249438126548001728377810454126741543423850904821634865750382209858728682903899130353482840516866019664329802998916825700342479378991572272691810220246817849885726575906430653939639398891142546615152331555960163345270262743681625560445997542195492269857209013912214762195104543469403173558098727673843316365483720718605195434585706600652771294770491946536938264318914588461233599602154401205009994659927124184552117408586948316824814471029649790749166213842686742185971744387593232139031611414408299889039968533172956610136327409624717104474027535525135735058312631506040998942317404526105363897000968110272401652935750498714550056058352726785865365780541882299984902625170563477161826723517839952146359568424957977894152307986379480598495559862004034900540836605890104879345468313617487893632988021288234950670200179916351630758033634441502492418537089747383101587578958564323061602541192217330127447275084981368468837094799953433114226916566308756294260452396206129357969330303536606829533294669096804556339629082970709869264692505928555418736428773409706070101435475595310067143323990708227904009537528796376131466557452067057905604923942087582984951529252536551018014982417986090452821078546762324815186376583642357252950862260740940698818791314813772505949684139056417250467195302756891197728378482512688270047105469490035576530565180020207616818794918969068931091220569015261715190219621606176681791569726050981668978966541661895924422984777999522057680909265080900714833954396130221164712390859207811862933231482825632071448021209869000225778944621821469374358235934903655753555570685054928432874024421597668316809924787880489196285172287090131517933938321631191300382239447315395712322023650426521371017073913465314544257252437120339295499688616557973993501525494011680189805272183030331407686786062364431948149645964152243062063466014747904245768454318097303018098860600690710324996078017518947099100116058394265807928212539829820096393231667864502823450046343636717693036858354032732094698711007492677282283164831671654224798394265949945154657968389444127122510732878274898047104292796743272038285076702541664779250177594413365349129190482457157226053941153280049185983680239941055798674786725617560390235137753294029937030654987991622680055950235840964707910461868871736244381992815497056447927069322976921361075307419773238760467677116356258978379040233425803371706156751350991767996370839363056823854841029280765135190938188232819131559591188323917645376369766000474258646198075574292110483576983960707476265521179380158661566297079729122481851344200928895124834575633572285723528006584444345884017259658381570584545016688889059114134629421405777388202284589795345350893116538886439640799857910782362859993770307754425595250784541967828779865818940400045369132059542892964865056422535193598579196713030410777141262568633906263061730040304725303524198632667388052654882968735170364479660089324185474354150196298575399986287054976625850937662542778896111604861842177722803910270531268242123070521613280007596122182967014531686377839743190161443535611084039527106765742651519008814508325859516377944619524467220869890534328040957023387476176024225718780428554632664919900806510573589841896502007893225859656820839677066017139084566129337933045760762821880032114367803645622170697697373590472320405423060767697236845132221322283392998280092278535472288519227622350259818531590826643769753530773618053992214657298576550272529507558345359722397441350814997320668062626760759688569222725242757977073947925790393591148354782849686287464036560146651322140303898382911180049814089162977052079710076818367952849479908752982282299813455733864637533169252234713677722103204268537679158978837651975597529859172947628475133047363469176231395888217022691521742163713198698726636839188616920300291218999559259635057242686791107132295803902949721036437905846962568771242887794546946324122522460251434080173247890285910583995989766362569115560846372759295106013665081520093189310538994269484906897926124273781068064414811118941365700898966245794685790817658755314718306961635872305814949217739996226137925853003503455058839364496477480679685068025720442836097821196795322089735088497713768955199669738361471097562191649638748939036283375179613088958100608813180107715707536251424456106657426059202515485408924269536469499909581515328823595698945446216767271033382116476320279401393058754653947546384222646285399771084199734445020830191869808691376410157677283266731050357828411815540762895832887098147423222952434273441294115429721052143379776614282815071134393921100649246534951741175617628992669811006651428686250268374625920373138730512532646533664599850725318769529150653836710263373039527192001194443158909888825857191310092456174668291973843178076335456583922667481336658303455536547169883758800601372312514162066583845880771771340756991194130883878395461544925695639089339565002767719069437972183831176874080904612694153102991293336279785561001803513011968369264654729280887575368946135879278089688780370330512436969885910599171808002394888346264064192741903513740265137594552732518423552713504670674652280296279449606814957497014551160622667955618498547799088860048546168427343472752559397370801498979246364849746552693112333220537250452897224279797642878130217052525758622430269191033516081598768028210527141052819372893317296190593083152800916493398027746296632685295654107125825267362723731995810766714779662977036214086057481036424155176466703151174335023860628316474557590530865854475838728335403372088129445036787927336833058686400762930192095957864492051872969385744994791779055734879629860464357012403759199154829616167930845127372114918512658254695859491095710990756917402229952047519212368466248924562211308450195372101742876953964778296179892125035714265232015143756490624690492618715666846476740565572435386601165457785674079801452421549037828040573253149427480845530228551900850858088968351666042280448600836296559006769568926694076942572922764925809478540129869337610207410332134363553738585318023030506240870882656942476847385751738572415687463672258347741729624957534818418429652616622393745301338658603561222550728349919724664351000144334832347772457947315781515812724459662884575175987314909751253712040655821390226954312986325850590179606696369085310296420390815572760562456047340469974282711012151426063554633160848202217959796917702832820314906034013872648695708130312217196155203748071609721061485377193610134211107743561232280999892651664303462159444762232826382090630091925611714289561072338009719541252088101663159392875827535184714514912306961164390904875842682134866030508292557694029509610439203787553995093195161204043336715360285864493266849567921799867081527200120903173033400785100820413773618871461123497626333437088476989476620381117170363054435118086869405488377876133597593424359960364980063287280475745250472333313877987009396345298526196369596840967569334710454650759638520947024589789487195088125082941061088115153957580636272046238031576105843967096902322639589318097470463646185652225842167838415065224524407224611348371137070608875515261308866750541845514604751317777747756986874084294820348598705811982444635369092762012452183918161751371990938386231833034655859911279993317757396890730387957934768715146287034239572310484569362731089966547664673862048748008666328977251670206972087505530432888963498188017795170254057433756795234703909867293389016105931265271325348414307116265736018576403927459939973401132337544949982680913440377577795757141147688267331031379511688353527204463073405043594150617247184640294882137663740903731848457771428955990924406688069901125252103434200250726151396070068303500924736213008106129788507288389238897750995945849657330387105417115317006110194034204657362287101932559244107694254096665693764461488969817572448300951658474236341711199060166481607975478187159524379670431233802755850974545877506914809862149964792685079722016668771828837107533408318002154495036209446684348024173875580663152849461408616806014455793043541640270553534063861022758938958956248532636002211837044856101449351914649509434823730893600165465816005756636501088276390434914462049707202479189771923612755761900912244905642902919951338332421648477911139631590650085057804707558044269532207405761691607554866227812356885047176942328369961760021504024799404962051694344634539614843147217431100914933567098114745868047769143624132310810249696685453430601153609834694444468371842384681853102161170295668711608961639334863624697148772820615108791764797507453760329014976004904539787780551196275158798349116478187317007285904401788510002531174249246669538216974877124281952447224899428869167661973759885226192652967890549307618092501703117356629555840505064278962969364248108349923381074913923401467654390859355496623168986259454858288858460031288212049105167633731629548748707160237978231217947370937403626308075241730765470118332404484673759960711068625209935404898615515120242645198558291747296861638672420660988298580451110961787108937130236620462419887803528714303842114619928293157774309748911215694579534949054078606041392132369284153320281045224888371940813774454980312636986674125615085685387696195170205580505627816996136170744427092625860675598844180538933120480509535739786802538523908301550340977175752657497494099482270993744011896843789278487702538122873000524917681889813735834865435533671632961898643753707703876214050453973783800618608291124166119083675430615375226155345493005348778016490671049444246797254975961080252230646083670950502275236793890616785055484952368895480988465712909083075017053977727240712264867216946248323096936058093404065373711095151206860558856782617871485881885003467137925256867056397645894217465855501974561187866509451872513582362852075121439200802358840342857272280887971744178145775801888654738817193751581493523272111084373737969743761726482300849997220732449042621417956094506110292235650768842547724618809649385726380070307109720838059634021837477251796865238396591509695330532360857992881171309993191735788089372791175112774869278985053032811809537925975580709885793541477768074150337387336359140605551318346744800831256671304672929991799760846499413817126574967961611491898153440133055014673572356602732263992064941414064578599683292431980151770016382092690629324772441719577671240298137498165981129943212586086427419889433979652123282808169561859498276371734371477430844076867110855420435885538587170632494047306260700145075418440337769474246491366178062269804019301975967265467228543332593494070894301435511021619761196568987967536827271655974231706500261756408917033702014253866313883666337550107597209379371047656886311570903864493055692742870496192356030216624910445660153281495172757572655654821689923755879269920494753558111473481381558207418645627197940647024774702804794106524527203772412100453272030602692734576618406734069076097051677180503029821878270672269011418042370306044083296025212855661089210602870711830942817777925650687437112777167227740279063752147217015172783188968012075787811505973545253004364883436848869707739664833060297018190865285396948689844974987989048526235303296448030195255095628120529740850972051004574449614423906833554196504543198518579428051561064493054921938399530711996526226378288629721077304356552366561080166571027040157488407579523072872023549449080590229547916569139915585608989128499922685655413185686656578420300822993816284859054349317338040057141838437045627427956747660391047009447544766400068519627548045087631020344518246267832649001572692612328383928273500535261189028425313187175482441738122022531293759776521974164508921072205404008132546835484122523140183467646527171068371728053180300247196310283757674896124213932928355722781966500769496312040264421824885861904784438672397032222624909741992286315513116216969202267540231219277922753851737396332924806989152844012533975181409421006697486871210526772004402571114883135708902907106143691607095777679549791003710859823614785174752750488736763784031110937893305272741414653288129927927008066417474311828556201088907338787328604109594418098043101588002609708671307585372731497287851077870867626257006989173051382474203888040491420589893741115144785577100086610814560694862188450818358988723759034040056991251220706276140427204548567577510617248153753813958275278857452411823555713660549930701362944575739040058821770452462516639390821590415377310282434302006006438002369652884706690566919329612687732087606300919763129227216237885800359504665747563729094779106257114648066666130262749093682899158329430116701734273860552645553873939149014049940891949347143659261272621488623484097026434593648318919829353407434563478599406384035858970016128876564993864910144403617307292898444246899137114866744310256030421846613248626498110496301403649817684194027292379474781056122801607005384047666248806339692514070248082635314218940240323700313581622456560081603641803512174247737782405477982983358764201673651224484381032956989761412150227537223532024337095818312088199513047851591591876899749932929215264017704491071885260410691520961887297486980138618266576631943527170695825228492083480135535375548252545726652057390182319635512570953026467587858379171614846157311945953402112210275725200692625252610523928242972303860579334196218340065015927332565711462005265121216993020629100061905095946897962880546285310760085970058579395096510535012913719257461120086186238086387610408195928739757473279068662283904116161174917460760221945676466156253531226574542289567529384383545143927314470955344733577624430792527741564999795743929361908298830179808451340679662837386828467519021687067765706801893575163880788700189346436856804202153764477490766833231374678211714972899790198635301810264988998193165047377139981586194848312776446597910534363102249397237608641971009922216251720809617709123840967176520701675692338053760513703082275247870393054250034898389049656593983020770207240126506832610155510203730627235905854546157349613916078764926667858948182301835541301814967346711118659679764023465071099409147312555145364911344060702388680488421481515737367666747116187185070936349439400783161866912311337457004237160600268142445833886383799194039960977410794813927405750486309244041427204164007032830585149622610116522970520236150504688273532560651062333276369780116602835895733190901645711534671879523898055145599686879529557766757299787087463322052916246410202828606984989610855326298198669382017776812125404390415411701100337206162563236294591972948274842543960766063709698032459613002957705719993573968087190647645460460452566680235533064794090488726846860595550996895509123474179056517349878452798144665716141551033341085720987887987249507259199881449235647963827231226078158341351235529578093993679336295958148624464155571391505906933966219067903592986033794711936333690187124756627088714999916418332698370420954497452448858441408674016167527506281611382861739454748870398820416527630400400001992645080468505597987071594286719828121160020444083388531636976958812748753135712613504222920945493400034334316696422415058193362653689954967273498289754481352989722197885737071827709170646617696455097340751203552529616057951138300876429724790515005502697177138117188658840547742848716616013774401596610036423488388395653217191621150127519409526707971844219852532016585557034792376806931877850194140712147841293708422930930165620610595291634169827630138550552977801003642151172349131057983307008588826780853250213352647127246858942614091612730782083245957254915493795155137030593980706434486775794259853301210076124391372424930256014334327953912508550833773387713240528386620252310367671822840202011934359178345733753099907863157524485016536761835322621002666129129293979923412389699860930841661734782864077664447857096207548104535924785137011100197800647583222637931944139150457135650319124224249940370154564021336263399175131180653194610011022770686358883337617718511083070764715268691163782488569086443146166590126924830981368991213467245639066074803955053711158472207219322171720311078073252416899566540046775228913485961751455402325055208403893805610806945110616921240041910142662582221093413218281928358846988957527137198022707218778407802013821780580932557018041358849045085977436300037747669052907058438617683752661005786979398590924444904352791913002580160649320477379377609918489721380609630511582209079510178593007047878221818594930948608278717270974410021922388973378696092501891410742965285796041577440784129060180283076695555270919772017096963529178325006665178991557447208516048594532843915872912370955640825123880807477336900956154420268396196469539059607302554161931162441578819823151729511145935775664785035452646445131200940402274859858732342495240594522480137580880060968743461490388593926585811868444282783806152502236694484156171161698193006237330995693474621126239950908708485766818487699539705512157597139648408672904060476631982893438822038240579252194993450204144332583165589305172721573972301766620382271121163709511705343921138043412438839739251054960319321687230550890518792177469644481398001501993924083175563320233364305895588766572595129439171397348449234785440865018360007360641528939145793664457920979901831367289748958494174384578994843775125952385987288742863752975330052913076030836624613329020082685825559457955211014656433424015009367708074377995742455639050246189919978638039188766533066085510037273415942276301391411473294860604433001876004519453737837808226918910144785609855203590397741810229572641479363434940675927448824968895299972468242610117749528089851608132644332427567149398600675853468831002973710336285405472052468817275158240143200488956311538527630336919772302382738560418507016618612397448774552421389863920088700465018168700758087065388267495105866313609439473719615466084328624419071753751110294367440546136491873120659347807309476264108360503238934459520240278635983734285335745825966246673811360233668663939553370299067631545233529142825134372208267240944672120395916972241889790119174401566465638382486581024438392672552095411681183185682409328348432330913954095269209732600157084302318869039912377480201017925759973720256240892787862364434135395969143682206033048015934840790374569580713461833540009431799203239893364092344784847042274464949786108829296646301174678027258167468277177221342624421320434065393431599895251375788033599401736047714584126122781760104832201111110802209891061769234278359183970545263821205454528689802715981049656536688099908201778820185022388171535147921533657268745248742222524101248330622203552689625112078542408270989355973797089784266910270104806079815498809829047489870542945342778742573264158912599660830584417836782398803841873117999274265175300929814363463923973961283844499921513232851892605849099601876495443316734747366542916988558417040722012115655827176443546383636110026218827630284594791792241601838373587995266125596417146220746237957378486155128842031130928675808361383689592129445006361986745451703285210280391306966179005843855360995807548490179969991895824424384528388491422921276329063556799152750452568686922661694013637512333772943729680048605388120581897516348856344417291339028759229254565365138067862472423050644238452497958306203092256606887423118725322669770531203989833817474840708219641847913469803205210244544878291976319269738642241433531106476227531721090018948014209358723360778268487812724356859746793965421962347001336045658841459247437558807422190015865744290612951248928098023758407510524687478570659667497908081976865045221390548043616846314954884320686565707158346860287581503228951868446200901304039865468043887949364420081204880375069871022517954674862594176247484275507517320654837723601387969855893326707228416970875179596125502603762756274397734454162321784011640613300091334803618692792845232741175807592560735711435426382953436672714519681644749743102991662541441196591228293035217827557543135299551676556168777354853073601363050268698315454218065583931947957999389388322315409741109323070506697899920372213760553796477043807870595676704397134186482545815459707607250339959340255967085639225971205603572450621592716119507577790852363689706901377927489499565289169902945529453910596687434437312631854434117196637436696096420421434901778290095367384251684639731391845345811465098322680144258564864566767227879581073292379552449636034893123361350319561524314981046410417620720118405609727307319880327576792157401174787767763955513242397897583034781160879351805885590321866351450102011053101204891867560453201101753464827197599638676767414626588398983933640606559319146642635819025680548719545986439709876115098296457186553870444485560540185964079592181458441809021326894790793225391562214284734366749580182550025349835148139197100433575067115797775737641501386968522388325649078288199958948993994209072647010660889701068130023565025385275009362832012866923034366306355345394983047911414866737659164393976299343564908866389689826833164848210651135726793856574043735327279860163602312511349998887811296674405110324129831374948958808619699240763588079075289897120724122689857037468669118602640336071179944275600666907852702339338845863268992103626905651574474770275140356804506856982878870150075998252390497750110978108328714675657410202369473451751526753481879094920394593509124871277778772351492372708906887367678249801086982772037356395638251246119514181543694875512315352450227696532498597288614992265486079288847516543739996098084349372167716892002358781763055740168354132154986397424347543682970707847764721695569334025666181254534002265233082555647866464598784668450343683074146577955230803866321117615464655121965292424695872438761079555247546987046788599210126839484537912940196235438942532288404513274265149614222689425679947328165899195034290204969646484052012409167080626513089836125746799606343393054255552525816493069047330036097171762000056292693863133259105240278798367465924562282698597528971865995917254070920206627968108072826101817347150227054010535118567320999138469296003922144225071267229986438152307610919266535712709149873855050967867486128024820480474362248880172025751547265470428328812065994039467631527084004495676773652885734067971557793358339051299214107684448988854762925938044188297539086700125871707291441869248568733441714800055663952346836072376230218298841195118768300751840559360120364278731648977108175894421851593150237587799264082370523965223006083405852809815999408974198877843522156403491760900045823030571909382667856409923481379369780041219301233269787519654201729598879770502737682842816340088384457784300564200835510335087256649804336410874934613590261276730765361894341850776396087164376522878469391876743769629678068615355810921097982921162612875003494548842657089613163283286895718966246637735586970040006101529192145044821702460173527908427646385534785314153547647329412275358508717636366801495022675103021218856274203431764156001818982381895594352950979252085317472525752257370567948918274302875618752188622902542574764703547612637556697491101503364203356793454952546733382696579275978861812716687563383545274136011016764393940161999890246218603312148545204216985983216921797507220007828874304474140674616930555800352240512254109901641704117714869530781106990750347648480914235134346598431889247122274957666728561848781017981821193401055925173463736036296212703578846994915687738896124981574628308545258203964220922031609598052062657185537877345348029802440037326187485286283430740202481666190230707317178786101111161826427336947366346849896457836130291146456871508166706328855280650790053932586882789731519718333483153473351497035160843008617525106441184140671945248949656586390683849386575676524409325094030399914579025086088494965550050587185142055366223006758553657333059153962384426360816793869480067238015604667727930889798909541975689080458507985814410251980207573812656303590077303070171637750177322366365808186266410183045964287794922979302307451686161216773756683954271297120924185830205838828893982968036937070294862556620527214861154979752604605196808701402405511868230034306131337241427406811616817533206819397348522041330895069636167638669225786164218279131225411767720701549059617209903962070370529704217458957885817126155651071351698022026388349104085150416243959785858482334113770277982756845379226497446744182927787275369224173270393512938513241034546793231011639624890546607628959229396101422761910229938364619959545581460403874033448317243011160163384822253713526171155612403627650044529119031244992531687341865404917224914641658001388259938598425090006633905873440822374026094652303556311309399072554162435794474827731914635143862310357250909228212341810854059636354733166230956440688562818433084804533920500876390045291814954305013285266045197484844389732632101588991042367902088747912930548433841529969931019516798583192480156891303137567666875347083302773235617129004625752584104417834003984892668850036024273774233661869860410988647270872518513734929566836600805464763876432112837189738896725202404301601391145382424200854388319269671737968688218260935883895890679131394075452388787670101870114974020230874813369933860390996167253349943046948336995411141802589249902801960122679316446261261825787217562408395803784371406980210068351269055323624302086793355622383131887606826409294265812498044406328052601246057891223387114939901060340191043282237576470079840323729261908392482502547451135401030041652579844517367440341604075413283722412333984494173991032386375750691466929882966176676202938455982469248288773641266216490377197285992279416419319301229893399696355227875965132499779084223907909692913319956804439496393343743800266571975756001868957772725947059023354268683110189864317252068589926437542450081415303288116253982294705806734130125017664724944713258340408686411826299807406176585560895427724952953659038787049192295970719165226480409288085152283471916502097651891191160706578927652935570520178671185406823482542008749751894794997043669618865770662826715861033697103571999167297964621066176613815917852248491498393161651398275479099075834927900843570652583536003887781375395879728681171970689767674258201858003519401153619716486208526256765603302509617813046479013058347156554697761545925876296247219298771031020746890935916065946806730246819027759408041262861075054678134658928945525589973133277974933467551717957123176693754242464740547770790953324599019106724100984955923428290407094462052471664969432213103363277339543331610673123406370762938762285075381538229483695328821148509994969354797621248878694681712411614999604748354806612665200827304929174397911329334871719293973402326688029911312855755038495381000461439762090948712341071704940107891655764776561156264419180251871781076491676353591101941485885831978761680254714337529216093997381797861665761332366071703191056337283116930338239219870040500472712056727693736504454880740245707354965866896617357480990354323838756696137453180976323325687768401105430437095666489162446406378696142513632388105116121395406832890057241174901849214143755026934722437304433348215921862430432515142596028626106103917722771983787591110873640714867081528005358065626323879280337798683947300359893109069268415364672748370951106206807045809442177490326480748646167592451088063925712372551069330716874553356395670826881578003064389445194984407975573226527210431029715287464556541424800049991010723590538020766706804688843833381321878716090506838998944604700636037026240073113944099586749581045716369833800333977589690278464653077392943053145046070498045484684358037246596813467554422158569800035788806126015561981887241371978416817333378016052176396026874772662138656301174483746034568717254095915041717329452899578144541959694200755388354436265975940991981985963950552649655615471553408325292699081847072609996158458734415476604434445727386234570815452886034393803077530781358891767943362534809493536525722846450347054325742708522724872693593532515393016249506596976471075558138041503017549533733242247482525878730897375390766486210759780712411692312047429476137893869615108731152291378648696697938144691449778243287207367535553818996150740629891272662511546200990692612822450413828458814083067275216876489423322310851047783326828223561157844729218261651830000835970972331221790708973365187031413110102199774559057862138395727150568712877272773958626181002963606294223741559443978260424214716817963305822221655854430850954732062035787258338254540577893880369635264695460934232881800477346956122222039216778705344856996026508131708087977920114204983672548510963703900186091213788438954788743211997403504991823794365656785137203475107090219265695971671689513572861169154092908363173373975831466198074439600698089611627055063224799569299154108852946182705699878028953356915457043553994169086617707124061864595993747513941356236278035291053159634065404439298492849815264438732714204922427287383610213055102271281890934750685321116550146302162240718730783900474114396572504325741612964461086805860657269415134295858652858599388045727558285463144486409348281007672053734700816372870163532132810651206516713211330319206674945069523473855385283090400512896087353327040725250316258352403520567299496046103154627814052650708538315153424629198465242454333087351223629541067751030829127179540067373200480169108422126269021467721092389932267096093247359229421392546124833659540426744866800522816405934072689754009682172370926467746232282742176838921899700513428965098468916123486639004895210894007154130542025016779465711927217549266539178502387013971692584209071037706980760097565812412660812900242241034127173728862657603386803973820261744992696253849658225795132998508797097996671230038415885893378113686388994167686963035025476248377460415276176672554537933380477451430970530031038982769607483451505433222158712943540294430548439948155754341141821328861722545489082157641458213829014745813926512709733386777726027883074674062161528120744225076300954305306828512761303488812594025629639458054564811992747762903333668001787332854587563963798139555853504695259533676893946986618103406912768875971443338454947464416407043226336173944095135268017426357300269399109393190850480338801552346708797894597317484628027060120996376383924949189696876424353945827642264840075756553033939009613814340974776161627076850661817972478254918998814864829911393990010573015874021539682883117902136641489876012210934972809849302392974988358819982802850384756090768893428453497796386648827708258674017597244815972097343449772506208224813682144369952535275837809089299577212132414425195284697600204398030446363347487745805256946244006952488041091610822892755756123391750824705135363454172336094279221262814017082899248419561385571692394705878650219607060489247298860519219722205380097936808732549073772327131848491429368341114973716191683182658040748201330058530945067920998084867674730724992304755825769752689647060544262952526381225891608472314252583362988532808807747455633665323419880667669992796086562599281836428126593180135042442611333418213697138011910946440951187500842660975167407032873713960402846758576104185944371439048647235844575114494983956870668043291287043316671914547467628141764771477836281337875146052234353416685645258793475339081033082212180467182271033781837518520040862455885778055769145378199762189520975545352841106896779184956853193639841564896770986137104988535545355261287990191941569019035215483234849083144164259034593494376885294366476643495668086092943705114924996069200662172567550266779575115923362755530133444078839836189932542839087192142685013428800537386542134761565129134177023796313527217623628007188814034846024296617767109884888280926628743149458976300672060655307104534893779932596472782113387649996871143138431182294663544652952399383825278299068909009962123966895240078463077433684957157142508880105103613989594823562242975748366877007719293689800251885653800075933626475141735743202032542486659833354906298775788867001840421995550157028128120335818458579561162855865844023761329257830824099338938640601183140302660617113322471167086213934973655968666552414305209880538605303374125139225856186026835389463539897484520795123621301056748078427398501414152046018309006390894937895718445935816993120704251553490128544868890139149864925436305296081468106495475482560473150451505035007562114283460501423043550652443973328044106301684424619052036599282135563553854689759644235742553149419475369216094014754293168479976473726313803360479595932813457083585507704095300294501876430206777848050703774745080558037265373836609632433855020391518052187659511620554481990489829737466115051214047086918791424097622715896003818358429831286721496035412323424838201100094852579604601735693975845660785731883939504605559465592004509899443495812747858406983037115084823513558487367968672659985724959723829196905221505743532497085296905497754216092025423088590086324715534020720952482048449687294062411203683075993063306296236765164851675311064614275087274613934817838367266712442999388199665094876493750274861286946049910133406589035338546340396244758729654070634766203812363984268445153910033509122177876875397754877757077544613654882364938561275245635749120100985534028701141978403188474821399233158793914483893388039047704066120570346226613569180786552074388323464586866893945118422573040419366577660256274617604776870804611085115509153405278386657750232892873858865583911714812344345169226888600147432877170631183607660203404300249501560847303762408959719143945238958100886550396735079536064047341943450670033137318505217009607934005222838370682406549945192085963118178694571140456785461864549460732138860823357883357056687589307589737353535790734343054498639134322667669871228626426749418091233871215958714164836489908506916102486176442030349496833857141853458644205469159577766543295012222397467235652207187886239742099327466924343350511819407736134865321649140475377403357282839758404944287480980077096194079958122509191187324103169941301303400274378732975521769469595429506895131317880642537300040687757190939996165008088934981651153802722108551608170249176200505432336717790390528490077049402681434141689895660689997969591142003180272208687787729586458037421735435481525798386140763296039225750937114148070334597816202427404700577358337084283446253418480372952062230165258628043293719561555209646228362299315317923019987156564258429710060976189008000887809048870483464378044223764185563891266943511495250153350867841196047942564134673895623332048497105508836396641897953613439039791621218289375006038730718916469593424794080374770275287800045371357048405629896833482534083358425356938150087164781546085989289277602430556356643113810079049143964052140743617833166644034292980877161803317323687326735289911592319764986197109117519625552749500666373220453525918936604444717823248693104603659302905160760036474731986928182441136670410210476776198729407381753870856674171305139557028803010088197336348642342748233438583115152110332251592511305600678953711233867867289677877347135087937117800536895882628429251876593135046711616453364150018267933705509950328910043068868723615895523808359287854702464072808384447367744596633484614466426481556922905524749632914979318797247546368580251444954498014326656305587447417015698840411576409614804834794604455028808266518740522117269896566932920212500086441305270312569954364299549496704223550569365660027507973368999179210225167805743331045913307175699806662751883763823105195552257111846558668734821103576378101245224648273422957925775929853110928155104818753524433245687058916057392675631172816245298546630256307872401319174047309240290592807372199672129008475870789295537333318674737932635613275629695585903698504414633405252703444818967917046129917833425547913341337489730542467306661647268567752791757915008614298043574901623139359157541655276631065958314940519397131917043643548021373215326338152554156705673459028202511340834919074680083031404984588453180490980224562305142386909261574564562420228117145303194147305487279612012421557982170099442854698693720025225527213987681462892696685427212684582226323517263759476822970020345508231569587423434409437579290659942680936854120265078616016633913449498415086998429026945041668990130131456211561002268802746045713838552947915526533467007480531883572176179194725091662757879293848845464676455238983910540269618812504075636572079309256023736530611260368305280538668862952109415804933931738443043659009344610621842009439190599491864259403202909044723158790654069679163590123882049517236292779263802019683915482358579455883286152229243646104907846727116236009943241859258159013153944675910643288248701674762746904862822875596344482047483074889875188347327075857497357958812055008291713049101609021377533274147102153105911458825935956497525562077521362946522580421614404911694783534767721424697482159383104040952026655242938849712355067554531569615420987566791720088006246863395392383212397546591554211144522916278044013051346893244703696556763018066415544122406118100042669331382287413395400496024275326872451320944077861239423922096170609483645534577293686445642372841058769133751938183436256075573003464984733578914963901114531807985520359317126285027020473592669215668574647216057341878858424135293165165625765724795814993946913070010494684407801422375703750270656458485375399161241008620623883002658089482832302211621549561774828268090745132735212821889948348909057735915336186033501799432465737885800305543215416098980880896973678384814711374554418531967917839450286979466599880512244331632028834481209896279425937212561045880875587098056159093265434668167569865947665533281257028929570184263177752671036329228201681830949269701253513847233287246762807378056593145890197018991241021124881376948724978489786459715537336988504377987957941639436630312093208808839761391517430856673330961925808651019855584063411341149860978120441353600367133537333264219538057425695441758373889422362855978139578548650898908994477165024231393436399905234105567619757060842283921605810550089854055776879036715705193221818787005333435638453682267482732263046865952313015872228373839008874503607043599949157141525995986835744018479554300109804280569374884948791460824071855441052800765767571632851129142950672767923471485556083298747956016233043463345533168264440550795415908851526352037679986335060821236038705172051740685601872468421181143126334345737405564421271522907486240449233497197088203804497473357987223426159576635739604767632770552041366468317996220917499275387132252345292230421091529983784127971450063742387294405223499059293120323739114363873225510985546368758870032892261910083733329799006378290852803016738172635900446958029635683855057176136751250811951400274300073267758387924654010037113671864108632553726196756890168713942638374231554911116407930472597272058028949471801988497989665892708702997425676861895463548845128467252358957870178224935484374452872212927834905166470211435791316951497303451112790939117656086204331090651799277591963333460805149508953873719056252260780901217283008307542086721660762935283774953553613391938730197655727844257937996884352995284683177146344940461538032517108834553876434902070930015057603932836141236644589316715430019240397638870859006038620663731631731156321469812986627578187472538411426703076901791078271819596399047725802665434278242569786700883727659265115535579694397657729633170657339167206922288207595763865488311118334109247164697402526357633851297091597756231975437570647187322179718746380913444490544426445112381307760013346588103443156475844611201308290029912712970182237480682602692670169074952432198244178070597328104445097872699706169434962259390257653825983756194583482456981892254178450097964140962345206062144695245112449837030190007464742639600692682417396104567370741416413217298125030839115335584583491516458735517775789551632188817782538449959669536421611699384843037346715106997895252919881356267942025352918788048148156863122899970403276691888369795079827901650937133397290815969200347410346173975448716472490632315307158777430979744555370679760012385679652338583977100715731306094631619849166856588742420894702801323838079641771176527660057340601848326417730937283068107937976662305220495178329882409204644106682773867053528981960943011009423028550764869609297377816084528608499475985125696433204691700256572885094476260869051980925835712146797252228951142302828825582772033245009403121108551822370184141402642661795271689907420658932076075858708670410509105570788997444734675478927820458537520124621003359130244523204577117249067239644737663736871012495613636702989433633218280335958654890095430399648664215321673124419110418918057820874222743274401163978303973952524626506864554085195184450300735719087383527573544143693918522001042930831202666748479554887441007279959307583484425593786462236283487162392501286944483365185840053822346743674621292472135554106639907856302248834504379317782504076609541150740996321872015310880211731811871913632068587776750141526453002704310067682165851709134264224564543112436397782834580358472926564946835868055915780321298337211817565867351542291926841616408857602971450746388053761187852533546594880219582027063630867378896696092074271343931846746470522185276046186020148876753410508573503716115011808939175178694263338593314084562087380938124132181807522658580846139366171480862842943606934342621668986161583121102406129292749000473449654581049880088978834176953315180367251607445171667869891615095158665335987568501738298014610931009850584214963310231962561973122677115745703579773921063745010544068542018552108603000222246276742155395011388338984454892199860698005958850382047207329267645591544172099021343335935330918880598728601793879444051520646871706241023816291234070340857378943142104840471797914592931150626539860411052661695640601690615247787470723973258650664703775178427792418700032235586174677893706916551096412775236758986979771634996991759546767313939042776024253279090722328823623202248429410170618565631242393574857349226472933243684759759532637555821839591305255106232613854037290467254406562293811655671159325402558901960220233881111042783279623940338145919008710412862741503895192368479222795034246906134726235956227709027129578948943294971040329445008742807125541138585960289863937511726408864926553257557605411533179216057176098504077491592225224260109351498906999587458291615939923361094952256410845206420905551753788371079637114960008286513100684531134975252893332304554382156903865054374968204626603730659624414937009624625092790457175555516079338701964597229929912326502083519530600972506394313749211914144646796825324757768584975727601272464586114346601436365909871629382835152651937575866528863716497951725295003714831816866362813924369898545099763159351062385746083640424852610429361166978718873968872017782559163003722532775678460150713490439391906997109346661990526714669388551350508047938362959740348185093576229473047066508025730950538299301574082141190989882144875885585868380544037567694453554268309027078616191980726266194004512278038645399025480184335636832485192260502467964142504727499664171825287601842713606075653421284887431364976730581106902988276735119658887183990372140121854405509607937795030370283963698201834290088035192891102185146997021346344268489676108518356279554818775830930527341470191260175001346681015722084888751294177591799228549595023300350729871670841105749582789242697381918049629656859487508840599274128578927411159778606710290055045529563029962404116604776883983258617495541406790712975795726037029026450666381209442202024940423714876306056217679042411386248893986105261644115305397751338469412934720968608933217670917678441379789844639626417256547266620101124090099382663376140695754261619476903356886321183185076688467994681747775912339138818271343964270072726415182045481925269954034627301430060961202266995918847341761718819829688940713149666565723290848642335097348667431301220681022514601014090745802275523438822768777208049350615326583196463122379392857903338850334193388106045139819958623634588550004722584094185102359481173529647524099594553918360549215039992207204925709562003697844698111814661839564147195943038413513111466465961734012417335988622047434905598559960807699590633096935902877494878938738829578173901998622687131443411500992161331234207099857275707586819243341712571737311437579880055957111288490929107608687675671086756746960122069752196869986972646352459526362127146919186552039056308817092672683177442670795304908877493740938818011544373756594449250074678853691202688556766711810294728525368160884781015867776402027636778432880399206754551614279211242153675744335713984594409890177146952889442628031960457020571380412511078001299587198684290256304130144630017519448670956081379823873010411936103940950702655768872890058449052201671495389465666482597734392894813627849459506882875867506143344793649684482893642757690470306081180113454029892972337435081464391166011706937727209856381168202363139890519968488344272149680586317131569187603891646844307393053138876118663155961013902527098354604188204677973075031287541000944004688142546781270728935978955274742969079995987436049446345217731290284209119316030914189365259994883371841857996726745909682899717054908216509693888924219886013686099052942237683975522937616577505292643135710961838515478837329674188808115138440694973478846695021242058061337512457917038061072902578686456044981015841650560359775503221562204672948864667217662935567389990325065822354624704958484865331203165784234009394731582335387225083229296486551284825773220678136108811834043513732664223494902640361086219198292152621470304994080842920796281671039432653949068459713086797789895630608787912549828899966065355840526294356550868795287766213457020041539424161262968228106821172212319019131703611565748364963319749376137113913939235043270517354913480104538980156888799164404526850171624085999174237280025257599474085903689729274613569557733766986625456947310549059029505344126957455592548310078683074626571533778750652665169676869944396461574940984289854348330755369744671720702394374591573080053839259433198978598048991037381241368050484579919815592670167248822812089872574694896783396785370583264641836504982551935492137557203869664179071215421317320472433507346058819215296657047895060524281855949745184277543405214626079199406042375828825088226561879456725248275623802066080626539768467442004013590885241441231200368358364007005492497095448171440079680526846514295818735438732190619099007380867388360516751560659663073572676516313858594868686792800280822689036006826512273699881053681307750809546396743096143564227027769303186207406446910101634986723131140062840742862354063657738759377364359757727450117737907324463239400241923077698677758643741239414952920240094822696984039782944508083857103409141806658651145147157024297109657669555454089918798705620664867430841224571426739903464335137161713047132174914226030072563548429959835009515938950135096866916917631846569103597566916559109068117694134202196940437123899052792045939529394472073017266718660253066058576182655689294852635307101030778797489788953448715529913414735156457220849279940576359934903955501820462374711906036417418818403151808596710735545682969539575649323363424477394827989265451474821713295181983632965802851923225158002768041412802171676078701800074920054564022076472270644738388919647039876358691522691567287246344522957440539367663432412223371811826485003939700042214250631366011947501017544330360281351729278185544543577823459593938850966682584931886583715615744479082876224666239143052107257329948154027544756948561140764439366054202600579101509449086345688407105807413441504085212729622446426701459709982220895367524899410982883517458534094341648846110055114190902862228258913027633123662895849710865089163372571236350202426800285762660662883389842343738663459236263084325418195321896765769152294946060808619229896276298176562838956292333216663949045019810214118981151601863589027490581272409546407916641057610576588429844750712760036099036391094991794804652519341046428318017725533925710231875015499951535843853377403632848894845028583963994906669420697107948941404875839896335491648025083240153381292005533881253173891189987283206198730715458903683178800014956554805814875346611309915057525133910452015470101687750419741848689032757088395498373059056087814994884934062505153013673327017033107861993436051228052580219304743482062891631496931266819712748228007861458710122560936671240488469772368173355800258918752459778066360978442685624584720507525473435061420268359863193984725237309248381962582823363824681008878409241409526435781143337978986326118754652749117920428498710555656336255391523653641124289223658913007433017920971443137244150137238441637445937974039119611609517691696925675298406229864103833161457349514782008489385980520121266172159778563351541980078564313766343772347536771914531666306088448391148602147395630964982876395367244817689016401666024148860797520446488233021884629119052184609934371761799556182412651528216026551909524902967922998070400554531216168215026663846161182891640852694181214645870716995597465780723517333262126915176468081102186662180231766820173137445010097744858707855883460646100103339960250177748889083187675738036173868337206298350112634954216750697257140499266631237291434347509544057427329688012453571270006939382194846055832923951646820882359214791270118901136032777384754812756010661476212041910935239616394447186405028187243338884371781358576468833547567235766743733322140430448773127988596121908700458355410841467930441794148942727150580196213129799451297525655464499267046053256366987822015727159881779137482896309624895353705186771728663788523944916225581100596444555833373977690581304337241403901913317180547965736865495521339902807549745739622402983637247589721515082629027062575027200907883230396682821116121730958657786945712330678901725162350951706090447365743482500908876738333101349985476678681965056071657254476344613873902745787431016921215300498779848241141700979469635755865878733730263548878153377399284421283255961002017985170992896257570335446745420174418746711748729564116217560089754564721461830391804658186683714436933414012125636017141979600886943925552701278758253671207158003782431312339655900726159037353920569435013386845293303352438645597470143599730092308787658875432161231814349631866837447373884275303396438488419769399786613027427531868573916373778710285094896594999501858501927267786505279816546685467447700652271042517242978089441302272155878609145884300246146001545505960226477506964102760054676876314831512492998019404034669460511713929194875797262691425809184893076504556650168728612799660920749675152608071096951022267665925208151510308207162409167172535172167922059824060775836107024313536970519794096965880981255012436074870131489413954561046521779198592377540867627302638305242031680515913589917222617353485311798254593999328156699019783386235110555897533859667023736085706495618015808522793898329873828863614371623347902976735264032553585295179328173998973952721914129953825353231494761232116239024379862368472006705200440998803814088631314933430185412150141477719595688401701369476745840555718299643657451495664332233501817432389488009061426923208652901763588542561983426649506376213831836143443175022304140057538946101794008699940734407072718793650269847807458357594391010244519701625581824713567482798702693690422244380393889499018972915532184268400823189484402816184618133114563357631394921135138181590390112754532410773520542013504953866831086912588639087183532394313147765817923168418393836608845945104271902983771754684889745341276537321401941822974511418919017282228705665228199759000762123451030671682738295400496385245564768840959530163194270643382835514698158019599362180157113250419197407765351088048761329836830237915241648848357567315582219616988073325802390298361251608258790658587097389802162564138295233966221440686388877892130660723349521643534681532097333195086683747764100175204159121375404570392676383219831818757923268329664467614818084979472552006900006057630808401093190844344634977020463205399796631534033479008941819261854679382956844964566515786888831010876755239759923968012807397576636549795179246514808734790403130863284775152414525392577112117175539333636632786314282452464634043018966263656720184942729726702010485819289444810997416318249234555773751346016778047503233382625013016019949653287022039095949163261735395927676855662618931990314642637621437434918559249337998981127607987578732311036009831021574078594956624559879176701676518677931271003421371182923892957556593868132628840132259876353799750911798880248139440973360876913884485883745376577111393335201805561054499527883201565172720100404888457810326165010670346088924586391559049743711288133016292553094213150339337657307893418041287068185357368470257852120734363063382144167148002202745679745776824503346020729463868314733784954286118501268693427136615414016983079034926209112604345437533991030019991534072849625672793917949276968732046479750079762101922544731298686017867070822122863232409359729076935560752257257534395802190134120902391461372948842363825407687068217683817788010921913503977359575776768028474991450423347106587873544943128018622010866973824019422125856801365604745849787861904807706926774472308845616667118283671997705702970569326913798291724612161048891413262656097794861780895208814192644017811601545624084933989264018298738558344797578293373394377502929685074359126245694277453258926515475154103046666304998870367141150468452992390368887778034229378836285608581568373743850323942067169936940295539488833995939996274034389835744028275363387611141156239662612279261810583548489232982601015062774425554209473524675018976178442578564127290821343650921894653834298380384621959885894590976204653034138133817183092363652372501872061226520028761939885732029663461881838212616758321194083965881439955135242385405416068392133928942236064921619441392769925284894173007363397694253782696753382695319134763176254265608444138644730265016615848782389995270940916688383631176770497425015367819544531172691098074464431772877034880736761787136638265760749036740610147402875603044634748557967892236757063323474736799259565746686654555306669187310223576405420692017664988905439945218754473175483722370750894674953580491872507923508351452333622427834152036490996627910299215467668306671762044227832160525149172603350441802012392436961838750874044766067811209911754183390700737442344794068776391417392629498087603017106848141251272350727059278123879584513089463913262165510612598638145892748174566958826973858473180206599747064790431182372843929031459029012386857749619252522232314246132409016840418127277611458661799695931444932709806931645880259641986421460662826957342102644501582329590108055230445124654825528433394547239898657866979741838756493558204533855279544716727792461123256901971292597382998639854472678226307848092182169964056876827887131242386882400940175083668984620834648598846263703867694089584413068523704085290573365418477816228706183664033427703201618790763916229406831780611419421569345248285786064668973989241085260714876872671681144271435366914536960678233459065204531180990430627613098477862670485673720812548350772841253253656253728234062178072875767164907530901922179626186883105466893551035568849449167515758006259645523692799406203649964703316707527049295929112862983297069695813693544224987250845920634655436976152648413967751447272567667326419380533539528777588468545950895596587792163196884895753878172286672022175891911950884830380136500369745741771781079487547605665854092977361282894085066188327911255872036782898759764301395853547264535495897059978080909023211399084461283807462744692547838431890802118296646517628459739305251124412650904652371744858375166208797802066328732882300773873038121331637143129678400711944044836180048197900410489975606514352613124532891872666127256102177283674367647407056843668764390522267605612581437870054351780932146068092509411844927843890973635577614353275879599194223409678026544912796240372063979897358866823880992652623043308632478690840029800968731872730402788506402020232831147766866859771892129160495529258186916665776871551225488443839051766106112607689611049777951517781376294991225806521802445529887825389527118481833309584877057043886962701394866698005206640837145104764298486988594806236553637990630771904470079677982318366613162800487936000625954944586923441097368512090169844615589740552344020912225366752852894908298394751461142774627821668064497826865124411738847413975165644053463529160564678214862158867451757053511075219522796349711359760255713473641925797044734218198368132377294544756623230071368079488608366289723301219050816952336761777701298684244974162965783641276587149129786741709010872388149500389258696728287987095503637516215609976444163934231407222999130112901691537187570008532939053345594903600686121823781400298748482253535638049303641212746498107688051631571290915576043110119122170975429210112651180565968074784255035024643123020027950512029325546470380796695452550730497885733128205035021738344435364151103589338443795763451781641458655080121310221098418237889876528830722157937674357271282273957859803342877822165960592849935066905018712417495239549113774303687543379249716953680643704135925369728688409884447516144548915914375001065399081020865582753442381275763865899387068985850594033106026605734216773507814191168402799545530583239484474958108358734178389322288189026830039832152914232231503662741498246378367691275163741767903378938753632964767284459314624080420300364837407445603531587166239891273124523777619781594052655798442127143814446719408214618911675947281416681953046955015826231561323463923393248850012150078149306101316164653550697514633222513339432455909380023425149445319529649261490402615318484450206608854456679428549849602013798242226913446065741780709418683688716093240498248346548620408542052013470258886403778173650615047075531395627291784959361678286479012618947000363140243400727635224724120555628078446605375486306197917522070883698224737613245269924697558443966968356064523819560106961505062598102114848264531691414085386031688717974201846306787815447195962771351352502551821270233626597808691139794351354991784142435004183412920831626910583782258081021496789624408205035486713844364094695021399081383445785775822338321140578580048845125275663378966115781196519281723008526598599535906317608313509942518791569235703066586124930064559735984839028651970029207385886397620995295402822099244838264852390773513973097720649485391541365701363325756247347378556428419594232667442986916012964709603017357438053767541725530091653988009973043776801071663111675691796719186427465750280407516077292507213059837500490135220145565605721394570550876784512268116941065718052081540992725351915386542192441913319941296092240051893996021155520470152784976745141015936864788549933525071036862891908599589201307535807458843306115449750792938485186655150042450545013103401546896995236795607781893771069138603793482993039813396635960854516221444488698548207362554799272760717691028901355065383061622685775487031576082826282652600460056829136849624891596324180246329558920466781824053602012879713226873746758261499130712829610588153848163775826831686350391672656500137160774589747289594392950850413379777274232474928708841590225364691047625912385188591288495596409401361754536386314727198482090145147834957856071092559369634177742703206137159085227906376634640135460057834501198107128229627196427692678536333477352350879308945219752625964761874990094199561592599185915436161579070259522007401172419288572602146483031945095008120942449033159518071189003889742044910180775065482800150626938376080491658360482973392243576421811514390881109052919136355443417906765489874271038775019624015303160370383109230828026293306919071228618408748160681466817360512725897677551128527065010586486106239628410011597860454356554926695808570928032197376287056724141562212963220900097481593630664671622757293814830749290809688632466932201149788484863091586984451901702541723244780644752923041230901268343894009450557027094635417328932104585514591372775809505843263574981824599619995938613993049125028133963322294637734463710375376742707258163476860858210902664876987688991385334966838516933205567370447811269997503416084583979002622807707367890914620687982602078218931209185253141308370347265313643294498003493482444748202337547330338315944731560637005447721148733525864023219207505604203823113538053178600202173185619080440193636381922070094894183020356630888611915386958653947758830519037685351398957707142687883103862055377171477710813379778819434866038891058389102959125999915600693448000731766842493985799647188069123603375951391670732820636101495561675275685048349790644894632667516139457278396123410510510520767030948264203249604586606095424756330585381296923291860429653571156593994058336859812677897250667417230515462830616129112509027368993154783611850663517493586160638558641886204971655698718772163210458747159419284406643100234225318997277491562694023884045177472035236486465793465115350978674158655071170718563859151405258503063238990155026183967593883390979047518532364384041579237629513097085771670809750400209109035086633733968665526360378186285192199058659956884672133289225874931024021469400074224319868509304418157518866359977233376645976980375736526841781502981465395608023333942041889533172633724376216365830372412198102700422216196571454784413702704394579787121493716745516130981268394322882054939667698595810317917004158921369473524769865859921690378922324385977962298159034836007598234276702238162113640043409478068153393470694070307254682235413835374713943409949643694916703736620706831829592250550487877643965147540668378789254994598845214333212606093659493670570906142265708192521961559559688262856722412340744679941748681145433337808525143300643730136516945778231983517040413600146206671483422828526004702591284167326134550164894391706416521550136947517248192697749672533620271135261923980685212636276120350592874605491995948650446212882259950719521421424189943191086129199714799062423260888412414332883045539045484905417602537635497143539255064847312248060637256093211974097937916362649005628946372494792390441350130231510343576913953082720935989228712719978856357667092441509021157896604508340030883399650050051301065707944132368438725420685646785767515636218694998126054632425963142139893968372215027929439411816613308777352112553286551126103846495558707093429557322359127898321697629813690328856878999198905402266261187084010765353980762566966075634849450798499851865877375882291599828320557588091496778847843842662422861703363510786129531462478817389287173168843291694497338247757930664399662538696471701164338915518440153619896516354591413170712369893437458730227245612836918892152639411405423562952415513772330189909938448760318327619160799535118186622951737359965946572498331761359449613240512389079387011580571261367806053174495393164822620352100190686307358214491135237564825232039942622440425971516111283416330160478279997924380306619853221184407745338937852846566572015333301202601493813139556687544460035380239075720710523228294403761141229178258744097247294609103773064084652091455965047122219643076431426953399125773832439798795904268116306709748359752229888279451338156395911550230669255830596125131817500359264544696190164149445464449863399993779934730235552036984254015534123883815464203176282499719304690420020937562154134638261568762212781757278920544639735644277944634528371910127711157792228867987132982888256742462276058560824269128924476959919159756096888570686366913571310132565417060932693518878392044707564292903622027625578919780602866296365350793346225614765006665931838691233677758991400196867568678778439604518742220250536205131436993185975626386119467882201010660680198301728639119107654575777955795428807504033202648795997262019476649179453862562483308429604503010748055700432252230595518638224589700368332281148286907424927258877484577536356656197623114430793503633467940849646246913952776848371652156933127224894143834743233580692037219459090508024901564183581288055300963957987911289531677901262353358705486298897001655255993367696747605864984121524147285288326881186480150121587072812018556795928837870507147127090906660421301767709816339473242559221237668769806865486067157490603860307159372833856193984822279937602179557780781020135347041471673305846080942621216365874039087899489530430514201428626870588993314006143698653401854755966981488050838679275284124861864409441630243654218269841521981554269110952558267719991550390536842578753746382694894222158856190156302170916247948498794553497524104082298734814437407845685059638718524690822574720779998319531760060711555303421796941706270846405822220749677718391004188042782121204393377001934057943661996445661152125534329187328995296888847410782222731772279995916696959776226126391590249151190529392622859191183779053024127853190348829903238897729870465766807984119126411550352560586450053230129976693664302320844476819582544569370396729973303957168005158160587266205463487063952446400093429274597298767598030498235902973612533820937125819299942451271242872671615246767993046663659992781932145745625875636090452079306601862384811461074383091649606358342047459568913223745932558518585380106883317425020600746627819412052314329968855259366212164448906162138445913921643739102326705025808816761230566020088577033252428552975153729484006189704633385793338193097043272023861421895960151333445670960289713469472327772437025987650733369434065490078915409457444999733468403803928910339560397665463477479941953235785996844614844448392517646397170598104184675747500357232980894322130773931314953039436918708204045492789007876731875047692345025251833108356330605620682194539906001356176578926499710976516386122990994754521433126601868190901378736869950779468034488461987303700497917254727576033736674479226233952738942019089149477190722265493031234788233936876154329751736863224576292873542605293330329255556800522631325835296172149838140388400169167494014004018664669248980096808115177515480288083251110408849108657783553470409349432486792618104627098480754814016922309885522996054944978902605609611013887974074655439183508565908727513954764344396788431275001215440655568686781951551097631715626664914193723862523546098090777994517683575507099394723854965605053225616414063017027831145583955910220065608261993901387685018657903718629992410225739022484651195788383599530544205734032017483400350910191288742040338932076034440982576499911425543823840908497015767592493406077022498537714417305356905669113800624982004172473780152226258255727353882158965817565685035803718726221552712199250982538897471988708331411850559295533088097227197546654975787645135210111913151982212702207564531325748406812767983735382494292305893056983243556276193326937097315806389112164005420074173477302263909399742153043430505312080225370715770885184884893030095029762808464612188600430463511029920928138136222012499289264630191527747226180165578107761391733037463302038360769061957458819465000104466442707176728124673303533633297868307634139556202357315394501017315488745379224780723400400423585527190033524099518019237148371928250324601746960002965625010725404244816760796428705276177284071185459247421669900086780559900145773233993222298045074488926758175182265583682013493983978772261477193574026208115311132788332533437412598142018532114259589984475331891655624411393323178423270793151798856093665638393410513853635108389250781007059420678271656099049358403267826958992185404902737396661444964578345415949873535828593469035964849161591995235705019566936129119573653367399106152568626346376733309827333998268711216679996827656230988459953228524055094065789788555958989289296322555816147248526454251549124719736270325169460299741750120132892085078538643901382615026975105814790146457717734354223217315426934905536033388469483985732986269755812029471584487587664912741980549369198947122995846291274018592633470154882794490684743148626634310944511794087380980440986214242310948982688135158080453725403793227923471302541631703549793612280053177847978757901429031881152677835747448032998821642338870828385572283133052201416005730171532174591662114714945008449813200113174445592157645917314140708609877360182015367258729023231275970845272907354356981017180450530578689630926480738751648603857100289804224766642496827325883178574741795131783101714127149889318274268373322279392804061582202027934269022364211613343644373371812641542794745851975643425222036949738172622550028751317370049391380135409190855324985248197277044980829469595920424075800659714635966986845574074047761254200216734737523667659719434428597093929579548545066702687705928416909223965192303604873113461249562333172467578328895656692788416450841501873335245853042156759014028824312040651584733187238806754512210858679576620167934442813667552640894681944386503517865241814317068642808188019355189648951819023169477738177761239128137322553792798444118089421277809291713107310238062481327395200653620089262936853702831747264593352690703959240187018056756116172649349020369712971617075525279232282686819107771855704264329462131251772899209694174260553760538858871645283116054590428205107197332555809290329864161266834744573987228521314341444752710042968504641608322986407640901508236560251416918666944436198039497069999001112131415743102224759207014286421947451815479594952281258627727760282991651365607686159290845887204818317814293968124927251334262525944098790512268943117291146851769111831843070169161763928287751049945248314229338877414186643213086146926003914498935955163355940728338610652199094700792950481974005758836740185577722796775473998467766567530033243365094033526527844737072587967446895875408760759604765437806262321419947450212526288830691473900537690560230335223156716677125308962048853069858640618823425770425036312329539744326551797253438159778002715597533198224521905614289485861988028265992282785472659468249222902881410868343035577329440733949145605834884593002720712860140231212623532847048630711705496089815801067101014335375540154934694628821672457667491021071011543686519254433850060073286244133384213040582226781071893254694549006215805081994910857233138458351291126858837245867052377992724891601733618788944251750065212646055357568847948841963863823503537754805309436138946360879498942923014206765687097979917041510901632963612563096002249810849515395905637734274314452771460788030961917330130833299323090372217716670467770575805009472116085557861416703896174087194669770038961608343522893598966155464160104789897368387371253283535270863380905348879392873621152636823382043236478970961591915923175373764164489574672515119484456393692315662958133209740837794430637667164621340703912957136686980807298021624107006126364472955105681339281399349023763569426029081909035932526842233895498116023088924682053192033302672228510364355389258922895170378111443783763679090825818380905850843809430441180001632698285328939559298706579920909537223497437339655858707206875055088875760480916854207172533174806981092486932042980939449626103108235950751184296456306354930665253895945073387112844592037885743104477741265193982681935318292856931152737756372799313094205591732506344045232660573715233054747907583754548688807157058796600175464994856379237849696343385125978512457225532248340531578602129679526843962806445755832819175899400588157070822500602593727166640264459815763585503247585230340018941577902028757728408474703863818985337129919884208304667293381289446856564213614828463692733256300642854164964742176166949821477238715804538134663430693243908201920912251261816289768685254943413630560771923157118582347438374501734608495642184431410787046923612729403030806854342945248745997673353005211629077128933715895689750250507457585333319362679381465653084906813195260726260730482073336104573113356536954310797990041067039909011411756420433287848445279688417928452801911104301205687921127587360601353044408938111124253667282968251507038729976406608693740059239937798857322781329989774306282916308674769344796255027472747022180656844990979458503486887252775019406842119760526015669779540809706094940075335714392078225629739755334339210809181724619233240796097791729870935364021872546974603059429410269541505800982725357019275449938325009831781231190377518153663558393256521515696590187856677493813667178785958826562660223977882866951459527683482885669202974950568084415977366505206169119652403226031766301800992933142400306376052363680783225419587811539089983660275219468910772342438767703552846730876684129128272651974640213807753517477656308917094533727188057929900182854628861739939038448857882941194822372760938760882107066573353926389535768831257698857263201732045558459695558551459012336195423625252596230845687036209955025228376923625271262339836166143266975494997882256531785854051246552408257657186628279096129722835281781438267818263335221439109683574521658578500999939026163424444672584199087878310657772548299046278767649555587530584128650961497543892522297350593431197118976798311463573710667330993649134904211807550166246306552184787651800152644705157677090294096989536804837505043559333870999431435687975865355683559183930839889362984214593226555740105778327346417701980859321959790640749501089989415902202205110601873745484984754266166247653619731204515010552577265436640218781348266958436113824346564401232342408307951199229109874353876314970695816870802523717199481353518051266629549099961423916006909734843170627151369776824717905255133732852327583379502339393740232511610425037686393401149159031383243939824192556318331068974964378024072593365501896380429827580706296557055241101635794744510271658128625850982852578570635700729952017910141526551989814501187394893660446251356537769055610540711187183637022422736983539222606249543044046577740206429351803394833669181763414391850584525117720778105988635085086710112693348016512553583011525601953494699117212338507654891403511957757107704792588901097337724323480226150629118495199404451335684594827325652588931752725104905560066651195661811124272860596927901610556588478171897078487421581128746045688172603510198886584392291186558798573462111872654158467390208109777132298965617286679149005089336764227718545253771381346251031149204166332968344980735023596914323555071489656704278711286366195120189392792287418449722139723263385414313862376363173248372600826330715499776070136142702451262996664893486595193706263995868232502043378162539239225775598031495780459234823621745915449478870458670038771567377769030138425574351736379806137220655772900053185104915063502838933251398018768082418310425812331180138088138632983933014345772441897398639739449895071827596280349222072911274549386734210853960365305829000999831941727099057097695293255756107452852865872675213488348486623025898420705165089419046604507593092001066477549967166284991447253387757982675821148249434104162959321788553197674836516186401662548162979871456593116489441518145556983214342382552245023846948595211028689328838411877044243034565670637623409747266746469142019860979356039115973498516362547687979617273755521540594644002123959688412690702791507971926971697094456190778796440516818789612234249691546855634421970139871520123080632818048868970696632498695578943621977734171499895748370560229760573647951484891266383998642637741769023479185558368992209487666158947973809791431169326003152924270326095898163178275657172959156818080654329570327253127461733612083207481389149479204198334829987785747747829172071394074895972837582638266585628276497020311112677597600472992037727846750674669376077938564943684949920802731306112120551453294294566518837973354363474570924460192580965313661798473916305860014063317781594890039973504358893246845341819741365908906696326957752105457568615165901686533431636507109756071513051956193804085022313718327955139892533569865506114898797564283842799328702537915242797828156617833418671791022796511598656764960831712612221197074139912118573556894664058141750683046417023535952777259428153650980527842012407814855010890606909826109046812794492301005636045063270583406515706265082046683422136849346841456116371114087026705407135269160511355467081354008163619160381583649231385967120836190411573792488575614092365294791672156898560809957597488769526217976124204743549885074242229942492988203170986817426327982417964056554425566665504176158213084870121502288898735878320421568817210752328708261953356771380798779045866677147576306842483733362264364758841680018845294164607142099373875692981369399547621370612315343206238114302721643981335171469347721137714855580588253139851327230050219724629192368257649513471975384798752260429966812480869187670986847250376666167358915914647721063028434727366613363982852343074385369999250877440695399749157789889644205892999286685022018650322864260480287445635967314156441722824478028572544569182077941085445291517249538439861720918574550053121666033090007063348343987748023701119478941334765005030072478006649489089338419896053946749737197166917608556906188266277187695525211212135159702197764746285782850274999172205365214656750946775175069915817509775303123871205131225646539668091539547765975014316194016626022706925143103509701964255597485163619002700227964189064505744686090265635292095854167439675713070524708105144077901347013736239765343072982414828814495812730266073564867627084563856447084696913013876773641628935817381936311148561120014864233630494970513983652488225066504047398227058103580027996942119654920333139602598974827091488579363318829803597867757235063953001552810009610250301928127372323028987555506686291107793337796580447835861641622450932641800889919057478851158115753099131726362595193865595661413304986116262066315540571419877109807777293424626019963286221878835730080825003288933271031455844817226009235208383906346442198740138822085185726476172114663465432659920579720774611575323186189071933301957563830813486709951412682720699687709062715684677251841892155322890404413914352943042260635313329518394142160160861105305919874589444143092702470258512513892770879001268847306537110848296253450679376470396440922964793532031181072724026829540666758006462797278311742592246439672841123925841858369370286879239402600565432031536985545160440576106113824970920405028137416120925010490616656092715340930175043409643813222895353401854320346453450428844035669148761338934535106800725611637071014893591236903318111795126389241132546305487479630291580787334754894527578103000664683385867442829288605542572778712640595921832625391495352843589396556516908166751955093949003648138902751282043058482216466976149510355258587506042869988535216671259404282913880761239712591333444023880734823066816671454462326545965893511921422399857097134999227287506283667233713601820985268799905566471905465486501803205312088144647690978587350061216852730529433412551169595203885856725106488621429252991451053812711656958630411974988700664969166641112577269238148587582383173771482253245129072922434523599647029329032532114032549271438023052131348114983097649634726239920129963048548260525182111899509597935082708006965779006130421151054064297537412181065748985512193529429963578488367377362353710642126176098838942386568825195346712512834837701661877939293298868142528286707599286591136056328619414229821826249396936206188851378245718009479021811686288588512934182119096589016390766525947757933249731606912627066864985300675195541501377075944156310272027392400168390033942804423704353234001844996518987175722057828498937714680399430916607900743467398234896515493793462858987061820076996629929915373167682063518807389954900813303358077886911279290161509750144320161437678405621070042061467458479058575150720377095855923689388536514747676359431335602229545034529784353942377458287149835869014635444808239482347120019192070146142988789522978988948197592251265893677716615154454319214220291383874869987375645700647040132253909943707517917832719700207607132451512615546244997240852516552769538884411476379745510903352818777447936734942976204188131454332806458381582321057991167565014813362353871074898512347811684497496862598783268107576211305654384695725111340149069082001528422830774526568969467989414037257057128128016573532716737027320190438794801499380670053547538263996985388571874305992172306919501661837790276545618421208234197496996554683560336665651589749523997856879248293733464839970802141866816249738239149691633379981300926219280304814408345693452309202651803132659479161382439016415308915340697525761952266058351521795463990474047568217307738801038261108659861209941618270851748235296307150925849132719494096560848862463550041464268438801711172411778077325683705973175151659439461901924285621221757384172947317427790568486236048862512004580433042053084794946372192877632424408246600774386280474477477131703927413717551849549730977368660711780850644611497141139814133293761127694582058219764043623149022032633471740688829168103821400489084173885832384809784775745284201947666827070830948678406629073222328905849123548625590769327491452729185491195805841584479613978715647874398904822999691099579784577665910535178780781927585349603937493579466991121897318070340493259992350875480480249869120148992205356943325395063682125896074367819500392209411996793178018189901787188923249187714312480117733553310173699960684670563315623686362486201341654991729981607314267453329296835734882458611499246997194684411757851984423835108916773200451980550603542582467364874900228101888077969996223461990526899998869249169045909758252507887570017626941758966400976483730966437924660712081642958567587251124656855436924799790408556262834631071116859330125440342430229184942061874381692959362112224210090271237953223765291274386897038038994066543890138550660908053907708936675473302523775787714845423893773684979297367055257037252373320647509777064182666359310375802462228248643028103621019620487963842685698876820262865153198893382960045650975595290975804887171675983050749560151840320506300530005075315334300026287737285878117472555617482930453245011714563834935066933766134539314247113266340404227155401640891808065396313629005286279729467664011388097519094578266225808791443694811595107825969888948238888359374264479374723269789477035072153601671891894250799879494098553311746830098739122144224061322772135978712220421280586999788886487757670944146639285626066438089559126827216418999965913150449624405698009773134063640524679959092187447072476790283680771898941189231569386312595181963415825508452312993656552785907546856419162746093978794864107669361743714747679525259392860752762327002075138843493111184817417626254291351752484701531066240244152626510994131831407079224779113167200527258046236927259890091221106006502976261471147061812069815151147575652873530974267571227460566418137896431927701901312313330092478110997514415002750260595770612458468257905082047442633110568573949972706565783520010974829640793606848398145269730091471968559152422211146712776620668791418338062854839266340255283721003060847417618124765967130186441989270594234794617110663264083245594502069361812931351864738110955084959766041151127440095398242842624506510010382842547013241276987519373479766923553992859532831873451104844498036729167403120079810751036995129093200119071621709355480811582875351854608112194730926556034888746538508809509668663140175039449504818923593679695616244319209426586338981943193620982735113099466644556473825203721574124324922879740683672072703313715045457290182070579104593191229299161687629255541392727599792746864772317729294255211685952682050931823618201071388457198306172378532611630633024926612833956288931465360196587674802503247707435305464415505397711333565762601370244478870022711470210405616936655443931701276244343440856141952390122845179746204755397544868602524801294562211307533416185067136390111791356767329806741539314954771702551894150382976334955421024260716453088887141433675250980019255425301282906214011513677219874955881974130681527807708701265589900360739887729167261349580225630715364833264773832498493096869555483687543841770604813694762152164418840162402783365379657758117442533644084910726379092205209974137025429150605849380364291086261680851363673655508197520435137563984285420591161424920747290170372800402646334113733632566223489202285592299540857716374942007047557466199994670929883439830311760756551753705957375262606509997655914199569199384792641831075286209072669676032782521157980195542242603486480164768141456329683673075038216093820108915098191680449847348922461085749378522755076839553429824087036800118705969566572181440509823294834927771201244805627768798008165250585267327994495263179538812285939150023043247837149743734373148971265719873717951668362071558758381312636912996021476913580961551912946674593698563758945532351834169647580665960287028849037695486885557709795792015265753149033862730995436817995697402908275301084434677758725348147930966823638532709674183625626065200107653357882012055528833994892639234938996137477336600356192700662390431294342011161030250454742866523883588603949373693660763920821126405134530362259980814562836496609588401632196829302804934619313815165122112647663521874763765342508905670647869731570848888353529807980240023460293856065080400579594912426948772371727715740202744034648019936130170921823010196482390886141553683833806709164068457769224939273799410719930909281736535676626973680468214487710356509111280387696877236662525369861524793164442476405395162027139692457118201668700525575324331369210726036692240255437698037864171418013941506631062407780413778796569129460864600422869243487238100830473094940825655358744155147152298526266830401530783789011910844834994075511988328621885482033885719003595253750653998485483699155478962166139498727573738818558969008541415562574406320466759588075775311316534128794682954306568734340099331667784661042897294256425356612237084531035871694839379332183182931001844923100260657473582329688998201063267456961109931478976062726046907137913711934483516282137886111502681886976081596949709736157467317568136915195591912242154609118187496778860646777562673899418007177545466149627736959112906823367813718634357892845148383634657214596912262443304500834066100513039585044212687680580023819043681795027691195743701124036269266953597358939764942231231896143969110398242110791830597496498550409386781747599517310239741268551419310138180393554120125841149703113786793605348235898528199422745432300620405673638646107566488481664320803758248545370039440696701557059807104721358649850876339247113615608450013368127858414987309469226567758032024848093735294122625529421675833362581293652970118680155731913221390940360127355035129479373407456020755838663865164589350929057567376304106737768288548523230042542959481513868634832598269786623039179574632240379869965995025490764799317785046326538216643541929986112675218510403979754465039663378104856894799313463834320074229026782803847618087255414222809933955692921020529811841872611912975796958618839913526147638042612591055747026190478670484868459760411533760711172780173052500939129896990267425151727749400024416232898049512098086771392922703492283920094995672056844042847596430973788591387294417531906131421518823472710643194369555663831648907716204734070415239898136438077508597828029515143712749043117912535288941015810238808061874990507315988327345960570312317229011787147373828086020594660761256429361576661015912013549606977003024091183040951577482190046514468727867126292290252769221921073901309026806703233825263490178368515599585691673618925013027100391232246652517796916706381667230887151068612714873266449965353609434953855691719742671018270915119954899890025597325491495735905396873423433689427931838023010838504140686808941316599636328340264069406029948916586103773633592778202704342315183656373361047961878539290874809463248230671348140649265669240263353887607850931076202028253830736353828156650778958231857023417205282118131767459844073066907663097153420556013052096972513330650258588339159478358782173289678475815994333547918178917825770862326000572594718932387343185217357095379227740850719334938756452528597639404417844956665029701143385514790698458613238382437408422964724274117273877931320213104811933371641812567243991557184214537046646859128635479685917616668580404735052977975111757333404206303444787476773531549053404644862037197675769499849136693599160601589485884415620412587942702814715820368038419477646411782742199265654232510048742908755063971723509726156866678705314545860435807731808618126861456928478042654148438752162797718790080873768042044083210085374919045698820988673547068235585589708868299109703684814615398528118691567256741853629686504530369323156927420212310275010844185161611827677770007426225761742804507303409803444808964511017586150291489905952952995634640349302249052818661636836910332654924607297822396217640265530519698783042707459573713131464638934010205580457876574504558533072004453324008760875915073746776885260486759217280758108570344106764248603319227090632965982395508257210014707562482013140654890978591526453399031856867439345932452889980893752321851081533385160625138156071809891183554453101151164204234732840675347917427401454390320569622832318749694941484999152481073625697413135195352533851081451548175707509459595301788882799681022852130861268244398460123171559217877103782602216532863217418849524780323956335953590338598459684909593514985192828558168210451850421040810603297656230429593548845262058512294744389386956209328559977183251883445035388319789268110814069230598991560172655673668739331930458884165130579256302726617564243808996379878684462633230271066455380783786760770243842989333131604195319773775252460444036453826538203450579188417792427068268439905122268272085912378787744002690960450096440520367441698745662051192663261792482137676086216463814303331356446076028927091317047648246805887645076369255463743432867972167239554121907537039022962698462076735902410034927000895415050860330477897038859383303502638830031092754133171382493937375547967305071291340568798137161297134563892255782692378617122996778838607887776749040042299966196293367677762957559810577427632395664321733975434064600620341777015294192441632972751204548254743310718444674519886388763402766251961547415904358639783057015569915386659719830881782837441024401288963008261252122603347838161962002431694979503808449809833468601942549450054645784127121980425935531759982980815949739807283812983003095610519841870900082396553229550212395076508484323179927974501935146880645744307707227776106416394114328911145196196691625861976467503555590224813072458883512025802143334292137186571625454520036116736543720260328151330163923181840479988873284228216678326783864391664342389636100542708407080710437583350225880461104499357712719176149639064601327198558373961863164704690595648614345385791729266504169516565204681680227013167190091889945838641663817061628047573774779674892033792592351972670975357177194164264286838597157703770741558153723474823495480691640066577039874071791095459792520014154229051452412197622587551362238477070583118904522722566935851663598353476974932191274833630786264103091445265673677978904553781114045719197289720241938584764843908758862820157840178431608613110234238507213827697728217820484906586530090954544229391265875567482721747152633597030683996568151171615977362700765047173405890129402833033776232067670829643732934964296158633542934925143233180440567797160338869536063257044760030637781729564202113039624109749217932030406282838441610428030830123576384423248494525018032763713015025664285463754015470239893697473143329577724314313612561126062991485218337128972262669929888831450709111045709351619877026759490862918094968184532787112820972679598281878157899674696862090729117873749000680937794864955830338776703561725690745254433602432303374883660096692348006391354598294305997366172802839261704812861802528811645935132639102551015164700306051145467048211792578878935566070983837844263531531231213302321972831167240500489693280606597944868251361441497171729501025834290003316125373562246747102681695170899925405014504008248409000941023702736455712888354532913044082206494867803648802749595145599122171715841356141285026387749546977910833319640239779814396119731200217689857214315593561325171813189363887370442801447489718023943128341092851719494596756293568819565948480973095743177417407638578122619448866920217998126926585343933320252838412198192935432088382430828436108968769200401884233230786208312509050815025505414669472948819514235550424167426648578070156499382055511229424675814551241510681847750856042909829120911388113042537270570257416466730652806583491106600430395726659317943589705293733267903212866012060663634030073655030427376181625023331958500106807101849928780663047578301603871440260083734864043663240112474568976471653698285968058960349758845890594325662129890103550981843642522476325388340135487096676317440283303723105424437540153152839120457090679337996687902552840592190117807838752418914462971295946978799746151097055290060016331765315477210056637368091882821333507248011800474754746023380679988828817865302689045668060028468068082350101151436337901405825708372521615091094716988800507850494946019143794238755514394410059651845563012525572846952913017515453197238501988431730496356897210554963789269948843726716549582382262180640388414587844768395175045013298397785317233657289799669770830018967972534176229743511028433352503026714153236856314724652224704286826235807753393889690589873132442363554491903047683508992626737321634109958649505557067390923013331754381995552005949395238644251103933144071268091348420704124386389174998564815724993264778593314418493983826529353320334795882990312343431194728331051795785799312245450468482223028689222985525725805862019685804343135422680237114388651218525949661932014598174103147621239775587327110593700646612918540195207842091675813412880051857900266044608440077470987773663426938327654711474368933819264443045386295810905250452009252593421331905081404096790905571247639094466448272234287678255907826126645215805419769160940241652470180244190628631230416833604607237773790787627595266509160441272743920400585188994238323443416578598742118709589192791220915793443793682657889153384026274628016124386333186138006917886554571481988283912874103238421781482597018071040187517991957294094665147836165536894983139448643737625253880685187959270754683358296264608890991502589225534887588899441428093081493364241355839499601591344218586144288570879709471503505535945662060964695638011819492463634191688797531377556716185328594175343088738047517561897337906466558367748657168230342051606510242966344318593434175811917636576397059369718605674842524334480966384210781127255070911989937826754037187783431324521600950113965418649386423598713663521101719102416912575337390169203470223535090906317991283795673998116397233708477741198038149996645455306496549230301323179159762281543053395938425071078101166509711683835216921600713317406011097148224595306861665468130915506932665182594728062701648978287792297178425410859713053748392000742585796092720437960963910708868419840425054418774525614101604844843250219279500119142049160309520304275699405999675849706780432004907578962996189211624175082921905057171783018051917377280748132160500825597142540602149356001464600918958717049467908536514720111192595472083210943314851568591806456070347078586193507995372554313854429009597076737151802910436713161200046665814697781604607228379731236342426716951375772732615359556233816176134568001983951600074119079438799420836846052357722999761444618097140539740152088569423076428988762909824233656815558210071418486722379784312476802201866656626180152352112335104844733403054067277826127581512901982869058590469278705338929278463273810437013360681841343870543157829014687162681750909009061571642441445769128858306847872980249732755023952467232637924160278475892918243840921985340286257444196811790223890270380442387001237465418036681850287662190677311243027868186334810323704888648691551890777316519952469091846738259500117956016028899927593162202678414128716886365317674953098693857266481763968694735087812836541909248073928342203551811585608746015264367122694178693279145877840230695928447466803077374442403773253540149820963352037850054792991246719474898120835083719647756534943860759231683937722108381337516390963487709723025352249530766194699673442211085378674263114303670410186579751631250727349034605164633514720110737854008251726284516535506872940052112211315006610085541017472660990407891517996091015129683908467394927151611721450160527050868542887820432127245646073780134117265782275472648485152028922424817182870547688619382376594289847360786360779828979498815534505422300073460614899727382874748759290282395005733220499362498347535719578493873909604463141730318659052760231014267354773584303959438356299691418052755907670553671608997724859262377616723701934432047119611061773073722886738876531188174586424168465230110490465482454855414716795516117187125622812208097963749015280644182279894186895183865823229725979070604104324048771181226547205078294598626505632556103364007520856393103216597066234934611153436423772221396400324280638743667601663504023658794499727347070057066000984128057803980247738006781043259826533935254531515093084033138344925904038757421958833356920310230813861020584339780368569723994824566709470996648796448825631467823767544310766356759118874855234561941027040354297962199803343618147292474288023532778323410450140780119491822472077097007043212080674383274199900620606436283317103687806107702018833252867015137425517875043697368238557475984182492930173261329299900241328962002239786846700931592049836842943354648293201233679700405199623754087842083940870143161605262188460991303576195815985425585774221925684732415229785759358936815891525412182923956825997724419373921991152158748843510020845709569537081828901721623233638093578608341016566870738875981664591692407798196321954834884006455986348178018120528493211982344892466223684937247231261865423997648845160990130820438421054856380913584873470943888991702480749776454103121847881760533634123415465125180099938471285595268690945412410229142765746518216231444545402626966242265182186537747368559192194642800708013438778442535332477177343645111390805699000411826807512863499905299139678934340293473360824804352810784662499179763753015451949805005684105945507513197410953920006606389073520035106550931240224679551868794064846464364068100782330716468182418914762787943206571204209930378822495790596941138190084718013289875902637612964874424007441131077284505186125609696928818700583999119478121196116995223680600402066625625177480927201592147430515342771214644857760322596694503879605275154478028189214086760607188407069150651681721699785344355720751317707556323028535942803573393597820891544296560178182028114723834037731875292551046928022541618523604499329917630953248350680282306357420722096315236247249779374407175298338908745318573569722870224290311941076319538342260753595470883097883479302026206392739345495397653065645674729304831631592219779421439203962352349424665880980004196977462574444109093861473787805401123479407590512180730895622990625249401146374474717592355205948536339366608489684602122909259998783066979937545227220323014449005073643565572469766595213248105409702238513235098826584456990726898873920592235786966935876472963070788898405406231427906827774590684420728400354869845235820614880062071953447134713037241347310370478600040855721592325604849340776311198142233799173657553784384344037787995301473422380453361808380222078429505601900417974168305352719109670801963816440293623728576116229560222112057689197320850764355747576071565044707477473390725681089521177962129222046671069804561403313227564318898878255615805781553922687895465105274128310789177545925039121827092261032055534664746305975665609066641659315657326762444313371886684972086952364005810606116786704883663903718224618400156745496450722648922172801322893150076441395526896651664051187915026701719006523817260389450420541970108885853607605174278923578533835062934085468509590111230693849163336307005116351942855389166453360058180274232122082077182073941099011291780594749437115335970134226094198604195490992351424751140237026732779718369803870787527670073919272202596104840179010783694811953075346630156220743537762823276755804327190049897847401267086652637418285403411148030176954820794669462259317321344695447415894302769808100730405309178763033201576827669493504516643611357145831837943404914514362953493834195882193020796518300121228052234888685953714806349698129702883774002477600885151209377175380273418984885771095283783691493020978202842115836468067647410120975366624243294714744287107611729159730240646327865489258677779932659372073324396836838591644886712117197944693393157510604421638832245682137138019246359299568066509369360747539375373261209996338107154410143924678936051040455213879233020203998783298325422825740635955165958722649047927272789336814703391906399412665117888179715807479011961688938917805756031104811574132947614138039703490186163568649059946584963298355198536854072530349525525805224513893112539955784741706020628639883527667646589668145253534961145030139979607613899237107492069770864880456605941702077277391694764967224971250650542692425425982050616719524901213602160155557684694178490958164385195251064042151670050182025585087739320966345729435091816707600426713377552987111399806592467170536203359587092480640414146914861111509173697199522193984138224282240717768664299314675592917031632996420269304885115870249426337111240756005119095538854368545511443817935958946781541024464982110436015372040319491236191493341266994976305073544298178799457924608165651181627755992248477089752063485631843588917498321559687013182042029580666053551854467633810536341844823926396908903774424560930582670507203904202032631438158366573876113150889108430965728339106889313920049078088306965116272380420963059850496138042228569932697645611525211629666606279102066027849322770799344033433865611074794867450180189288900346640963851771655838886829600467380879447711494371420351417266034207619177859618758033474833081922354192232094133753769899788195527968640464550637723257931402405722285613075273099820386328405773730125468395422283992265898735267307044917093733123000170831776972447354520858544319393117846674355904741909761295171184263866228358233714785929618895314615351383766946754854732632994894912162144134011697866810128926000846848913983116147600584751379318823114110223995752593114734711270576529967057211900136742894246273637951109633539064821737378059377382019647579446147568545460284816661650072047189981331058878422038918120529571614232362783384351122045796503454655569149612822509158400205331038597959388310085907591107708823057392713606499497817179607834059304253469926733792719327098472926537428921114516766734277784607316577828297665423932321921022150098874505893965728066924886871074596008523848824731453253228121969616322175238867168095296131164796388753207074138971469866944846816701062342570419681295424616161420726084003909601566666592079818393233688277186672248545648872655319203612174064539327441407908240320424745857621463308677958837943957310670952669056050812090525291423162804571180562881562084398923539929488050411227124225179549785052097280867379754798862248902662056100939103891634094878984515528582688960683275432966478118739700986118145338739507487657371009030301093899985896876068487819386907318085882401704938786780458097684755051755801497714444618203117660580517287428131333461053685291969659717342428584211121469129057083757004784564714079668604084012506411140345649901361225990117553250251644234452569987296726643059082494351943214949892474298571295949467193815517078412248362249196531491261065120020316252122684215352352876460970989996098025820149476145167938661128385061919366347161542332262884430225197719082406158923204476172068207136634931031275115480834386028613223634596233649038406579663245854193772376810064535815380983357790218985727121529472143739022776161436155082273214477137646503898943855780457931602265982584600312184276411871235948722607064940871249789350757225138558550044812539110186610084923166997175675434169304101058789543113823639250731885111959326745674494590713317257803250146074400427079577470722618404982270106011412737772961599324118231203194458681940442930874255573927516737803436558449289461655037145529239911308943172853234062416609719849875053250006789225023666584962666966578533692168596401423753513868650168292444210320298236229624011413536258024629460016998050854906366225023113307949421821872305148711413119426107054536132858739862297946835120394954971799728779050806296881455366010928446324925660558180975727388637530157632965690078153930167209307524621266767955606195233357053280831048284554178861457468313569077298281619898269447561262383752365260443914907071193781445828979349650733924903686837629153208451364829075203643490279317326002320320089456585031334384038438197695824665783931505344441794250963273570140333411008877706740750104369158796294738802284567183795089962600743684853462179680330867544864063940271976658742092025087064359561372490440008188291814564771754281388186347206324832636848441678801414876998811796135026380305515267540369842780472810654928244304813077493882800364689965991837105749592589387013439441791478450650842427422695341050163111971696503236002161415238330845707281187537556422715472505746135317500012175305094994201760289977989775574040126930118678049750253837331575164060665909355835924637714390992829628179139704018377434729932318795924157092578047315863766796736287824429096918396009257600693585497523078283290751731037318039638074779479129212076641034500551058779785765437367756020366476601622859289020373013135798337723800708299952013585986224595771306590209956353589233344445834136325045364971802493977064837702451613768941666185148543099765271002664668791647996803219300475084054416605460544886560170820064987028259321454487420231266203195455604786906122904511674792005851745587761494431405663886621360109023288713953261914019913105761190206285595949473255044797201931693829902596256229997220500311180490712439135305298166659231275490669858987007502723036725712718222044111979893241217551828622938386396114635512700524936467566973759520760648820869851839914322568729063782821951979040117252698178476664365676482807731566126362420525356729693104133132008887987553470436358733170098576169884119197441847987260498905951202034930608965160063214102415156944149200373551837542095075073149390521773934690308011514947285721132229401507750327644053990150942406335284405477878780859488957616247855695917981584428861303945286313941912146398290571544430670310620534277598185623990422876342853964608994154993575284076157077784103489336517329108297170924691700457665724049850500663110313889511490538930955288036797848074476067592229871542929794027299039795926472898083598053706651871162421044811228805829003345345541676468113472425536910116146944348886168431670724450679185296023936063357525198476457123978430701870989440626145145808329175250262113267102734731407142818904310953535834821753794234561559849215565591015126713334246117757764375922811621926921881669046566261069160774597209632029886044357901361430954900843621632591204570754929422995993095564797951325369478661193250828763820567036301977625475896730923044832587128380944257111882999999087893296168806147442934685733982126582515847224137213800853847884153288972758045403914175336095787170035703381875508826147082355561335445705865550162083448313930666148287622047140888864070642053763110070646347877825844034938098885992821308101379148617782104798928045069389239692418257047990792972728137857358676390922869630554576105044187758522784728875945098171359135974903408284432416206411120077586509511846628128545420874126319296556018383332250665434396757779916462277342401136937160579250549861570420879266816793224992143990594718861500659909962753212146301613644811397773830131369403643954394239746360325853507595893078870598315955162694243785477418314744641361938997916698980487874743991698691881193871057951369534423591363604199659990517902413913254110241305208037168505508332560110383695587160271744379661828639087414557449877422162912426479839754686874969486377448961558480683211848542909044709064484775783455046749280485770889309425621264238794351746117808631358476650042181277924335443048411227924299716942059760819950031916304436602811660441179703300869516232211570642021818676289573033921360504075531988536456364756643504880584670454430526231514962678966536538145711942906822127886477813411656096378691422673753082182549037852757350388981932557125056032351118969971619909451611592655386575727526042557585118134792589213184595169204523937394180756019717707308692145464126119371195181212253851784995232516721526563355125770720642044293102016364502504764366005307541468047857522364425778991618435190912561046272630468288415837025622875801323071017716922117683826807358134791054580145617891854317278908345701982452339887985381393219559728079930230921987246956466738777799508868325213954058530774599507357790690297885913581458214987250662276332530578867598087293557534069816856107058047860507191746374168655866623203712532612402947937801171875571912610093456654988928063520001790691099117961315899488756425153506834510655219328274714756432205932995340219515102983895270727335044521827474920622259194603198175628559366840959651643297565827173457066114206300551850141558642217704253523168902292872416110238962876800820711134421003607559615711099540563515772285734020373973232834460741949671073331803583476164313262913760366358466021037664017555261896799172473701321486967067455363888700510418344024490608048832736297004725669178442485648101295737616210956447413098745638934901848641608145651067626153441848064931590309329080130695658331514836878885694679469121526028668166609825692139715479858531975778624761761359349862392063437213871349901369683799695782148235411717278485721867133888404721040537522557543105777466053317971668138806409153201753234830213989278057830699434150962808414488841131011835996325728416601412293288896944597725987360387695137002192719287534282342845805402532752004370027731496296886700587318587705543748449367361330355809129816054109897137798443080619637756992431557712105291374430377366696133190468884105442993179649953203993209904329800459233458115444501460586524961295416146592919082195238552168047584425894118757140302616659938086297942414003670755260573395273004034751122075644205538162520590037687760609394760000182836097304566874258457088246789948748608706827965916018354149302223363835750235463194545281967471285102558812324584896798193364019857175778281454367982640717211628443232106017183481872123929779947859724198569924650160250742099520475303773435022846020640758921138921768326455247610819799204148410711430600314776020833455909529008237376720500651797741112397928685626590481581768333170544973858175609589943094806601510366158034203107588535869987617373827431933932382677288625468679384863018401191588375322454209044815884585247178489768183141808957099896213198714839088472207842307152064345830217474332927291431683813373082783744776549894502545203384821899171261409706068220707798370632155781537193674251578442782032419957261792988658050584910327330976007061364713265203330115610243626159445789078070990085025656221086938007575820991462410286024476743521176024189132639778253447494548132336756100853431384931681337840000693121749822631016067271533619054425743884008172149865774109016058214582293882247114508848805002743350082274857271282432308608865627539409000772021968119912020626813305450923394193432485557793244603207623022272896244529310209204610703616079960365650399096603178134485498783295970559682323417665453985081823810524039337553586641455018122669409760292879661177248480941820430687280451958803560468010850049875099270773920349235297647363946687874109246243667565218310702859676701096733863395490097034312487132253568750236281237615704681004587239125580553288015868766859989586343879694622604307193004976938171117473910422113893211430499710962495819237916163451525062439968502570711222716548586462282149493202488504083353684739214666745151435807091921847288509329443264327221627989729245707605555439523462285582129425472380610557753494147923609781114285594804901593050766465204897501256933974472707280962731379229376716273092992565620446643272905551288842702853413137247334674170199925364965511307946836001064326615670661964974770879610701532056639369586286252279444441301421646465584956527300526067388278868956544511214344967531896059907335073116163466692732152611205313023598807138651199019846357623791652306378594518209282845892770547539467510779612270722228982232901419503261876282562431101034333223609365664884908429259372208173772965078856284188007600221893559642533984391219355868768876801792884336637725759048108318717987082398814142937308168640633732365088138443271139736123473136687965216258004255926696855774722862589825151648388033966333363808235250735660502873778076307967660244336575416976123278952282127184894734697067009304314361842820278560123356646501179856078634881415670559916350883629561021555223325303982257511776822525291535686983098911490364751670250873451242807621233892285535337477598339566935951198193270924337524221665952227568967011176135256909956580188548295030658216571721173974821430002121888959869414499659882449819046522326786213934746616990693436160135319124633374280650845547167534702292173980331749327516230862966637323526215249933756925259233370755239278212371714195875655973590042543020363377594580415223583495528163835154439467196289969984666303116584091797471341291883886117927832079566504734319536291815003533585086311748635476338838307424191798880302664814832256917037143699776072401713401263799394588106173396525783246906649692252026001660233470682810325928182659396625770162355912694684342935751649541563866414986936784412644976532831202466468323498132254736916424200773995447189455846644576311041527421475184243623141082099215358396906109421214051457936343682084169677386256399744697604678553065537580979503435875277660470545541806482620365971841670121129364342418336115414720322214620029700594483509176405382845229196891837375134161681397360400389435858997824699444445288189128442297249451102058444726377266303398562584574367040250964127175577078554202047584820126280772074761647638402978264353596612965911339074401518112939074891698576749494847619736313072227707932056616222837810368292137189971226214054744212039519818506606220787170710917029814664641480176153898273407102922723318811621950697697231949678021755825483888432891246952595658631291919630116452449484008151959787184767615181870543597084122249798831770283928906637640422843938256710424208410659168279049994008381748244831432622163333768152481964868986770623428489884696061429483371007210794226426914692607121467338728971163216075551765117607159931904091066383190564047386015699082062275956597209936924950209135790119453350771583901163267051162720602529965197916523387838244344869133651117953483614976475621998837232188319893921968963810874462703147751238599711614894307469381754063485573684850350170320712426144281004569218387354038912007635838119889606470572773615379693601811318066226842686503189856650918744454381816124629885898307563077617110788585757055466742574984525464806489880375894943668572645004821944586841456083961705004847169709514257920699463168812555093917830935250529147744706868519144442630677372719586210042015124356821272689135267839053994399719152218484756859724465821834975151592021676290994787246854623459606537908359979236141020071750778753841954019879986833147625904697765753390046380156345545605273035538135977185493060237966773139820638206685650083779231965789482014405265298859157831334653189126478279419532236509072866482768428772970314765270746917064838163620494552048498077607666224143264985108687649714356585533644082035569894104904664474614977789127999361638179464809627852107403062649428252764648173451180126535081508742801022254293828935512554498977073073499287145693155530297146999938622120391551855048417047193570198814847470147811126901433175732892542296308616525251496873252256605923933475666268670347687133301496570923643576179289593780563267265230448161341875328339718457477091085102218837142332389809936449148399820143420630293973452835153664903938326288902123305887699944233730310100360046326163448752317462321069901042959547335022447419856251315229965542970910267037369228613087573828159675444234571357254430848183545685430148631359754462097903948638221686806880196476169630268547476607350115352127910644804755491150705241254890833033778719536142624708585887261495890978539518127245037102901405202749699451258471292947670792282156914632747428398278624675453238603093650309983306082597962020614006293734719371277649580694048894509567456199178926287292273185711642801666105479700254686432256959717961685287115196372253858874598753308993428073875058219324153443299083875676900387887316245452045048338894585800695807272979249389369000233931031196625117756979851177966966253110240060577031703025044193235768367487399725773646218820786509169404948525856941192738090919874418105403828012290232016606447518789909911653021727005203005045687744720376561979228426951777343984461806075457991674492002187239224711440640680361514207477743324764583712672265893765449931689132092668701242337001260277001601506112552033938812699559794842601693806397223793341952590304220613899412024015436465802376064898174302240691967873854798089544515842374916149266792285203115808679677417811610947176788210972467319482860507068290748924192280035334544495271524551108563296354472324845229127619471209900064919763441065129522848710502936628737929372380344622526211494912579893047390661894883343273088127729478005675914270573504448470842486210652495255530710857748848443286753106308534993096887448530834484485014900804183785018130122079617387182147208604458526036043060296834216011282467129472020537609337652839015933128956844877041987739247779537330068768944201405513586035790977555402185944609137395611134746723301471281563527549815751755145291139055216817979866314158264319356606880329987156596544907557765094351092880154059212558459413825011042297420903046724053861771759294036204123396748155494633411912961264599784733679287621815654414671571246373929762486072340040004390383507846661990574850707249857199310234968569845162193633797689381606939140172739911811072638658191955538856006540838038712634274969762055457016329452159380802366365534699821661094371324333430509312899409034203129948112694641609562492937602559310774291796420240923112229493425226364381432894922769884433411160089367204667563313372107921397908733942017888298116519973130780181926809300264585688198782262403468059883832729218920321503147743828566443590107927839643314752154600584851425005865127608121538928784057903795160712609838407030645794971748323829270579202073890182591942034340767871316387935655047422025908157263405897369417744865787262240795807238247172318206658867556603023448477434111895444560457880475164885702177908366037660265782427296712127506387808774503363397198167598595408980508629715246219148153839021630764516998571958652608275053675982316964519492739901816495236346873510713031580209257773433337470112925992883095725471051038907648997679232812007284855822693592394667398182850661895471688883447094230883574753695165803680893477873203504423373218714088497096059687327681708535121139808997262589559324520759286333683707273335108221967465594695857433394152208837485646854900629129030476498727875514526010179636848637207218958042396791283261982113542970841458153775997745697417421793185724589836235642885412933199913775359620986101634055668665500153107344775768367430466299435307929788101051701331663810680108482728191409421034283382003314125437824065317156083085482928241714887056825579305427175375375945986963970255143955906006453224671340137719796361421056965477334016934680955855199529342660324155306063319785002791444983731119472569829565806976442837368475299891648984293436402529413117819583020081976785678130952467955173311583939197868395963165584265549689354208694617662220847680353549139314794422957391716018874828644099225858136703130110163683732345966828546008805661299921125624183297630088425145749472966351892390043201552356437285905868397313657570807569089535109568340673025052156472769133253132991405881336637644763400055765533157194013904557505730929898433384941566119900547958887517051161388189217623821132539999409846337070819306343980802656812073041195165041683895921311406142761788493077472441973781096106031631123216190200836385377711828489735082879048844691042493282874996296076941390764630179068593859216775614431639812764927138503877517933147986992948099302814939527635715531878196746591387100115017622821969785550192206443371018378449302285619095065328308948220131587177203217791359161080510908006156228252259968579338666083706717525915716804337874643343769632372723628709853737228089023192470902004499483018096095569867819468865219779105871451996099860192130373145127888908755709487952039989781670815772905539345401717393933195291431220589034905702696826006186685363255263821904815631972428633729540355296452449466315406473929592699291856335008133778727744841164231980429753337416291793124357974702294221662005319431942532997948879826831849832121350288197404552102531844987132983411057878409919270255457718730344792240554325993382968109488518480182036607664306854493576359721045467672738440188791562831575550071416778316209595039243171001705190420267998097101315699174147529482491551738731555748102254423844337176657166621288883327611064410547469596230028591632549126957627603754469651196087901879787199422611780578327624820507674753805667307584888550521308125727726163405503261268618768521439233123851403289435456234051652508319687752170455486961403268114834728424314278281249853732894780334293662098130064794643931347073228250989735068967647817451798754369014203648870265447764652453373983763697736185297772349956899481612591829814342500789065722965822453437044283302239943386919503316196380909817608055741988907015164047611003667204314652390875378848030693359682285847124784386155840329595084969028665346570000349801466745357587651766687562541200812332400137062374260177830448701230731673487142432190724899466381487069438760401402915228410758270402289331462832587092815622555604292695383328795607249168252900099363962997065540995397496615579187566779783340440597126303334807687755023672876481017275671265972894837592320137562822828353828655210695052859191190211180866589068436342059607921520375319345639046762293891181156423921693194428725189128531476396667012715302417592643459037834139930069146953582552200785862770841988354438452302444051659496673149802034944339907047074069414701690313908375207391485358730389994157538716558297329090173970353461388233976744905404499418048390437112215414070737790940890618719344336484001570192708143264312091964490897612187773970609997633590240974517736765088546750490685342658442360315969262360208588048543422449847954166303237285807997916132909066385674002952489506378506229277630493656590129201660210102944376245728785059456944368092533114823443932970885992425523356817596842805105744534543390572870442813765876169572640236803750471294562883987939338480750782465983064947304459366744054020128374386753378387302367759905756322177554182121782116515546495307577229616160974443189691323166792002281948902860566644009504291740921590443474844614797318990323581941809041888862008685640147006078581376710023798734949090572916937415084599609594779719831471772217830107506910039488557389103611700865179073158462720123337775569272869543703460571625750638795277125257007419992877473931912492912848843396524368801177316612818048857254275079217548749173786467822536886687012262824746862756357129822022950407733346847455028777165066091388316155006619323221469347271867188658701782500223582229538547146515039641861080932902575197973597909089466767981313963080706987348475635545293774318411948270766770382042446664665320726630290874577366928862421217701424054540689591326790047901272429404961928801718783723616871028865145064962015759762876888796370623669754480098030600734327287325734744247972447533286126703337832294202474920563235633452604190306518842706818863864959693660319497451286698301526441065545131414453279713751150469385191711570612363159857288932641821527646847743225671599467715111731736739512397972824105241871681982455992142987608582747124192395513982007678465613066938120487716755890655357850086409665327668652807360493108023379726617656516807215218939328988920662383324191110212979130461696853278577035124863041889650269533818646180924782082636280981239821042388005113154331373427623931375895033660269300065712862824567548841810244754235182674259823607019372979741297745876199585444329028525013950970972357264115925433051070298341723369600792228228707686362179248724814356920053264673174314823208343723289313039073519686373741992023409150151511055556564346697902598391688039966180967001721035220266775320976061978292189281499912626207624905510392624823733540986068293602635887282164255456244517797656771804881429483416099435060240715227415234359822265223511381427505377491590179439624861191032976217402899148016050684338971562695092747790406885851401606709076097775623497703114467893748141400919575848531294901665592955700375262554177770595032840655968451276640473479323231133819293597161837416483509172165156179686619638537643910932679397912862518923744844056990539185515947537769218450874584971592131685420301641913938276958949733504381573314627373054571438786381491265617690448014330850639851819319071234330712724952673649665908673849337047605645486468567531504332623488925213016262261148322305196171549398770254343660899209618519783766139880136253213343343539365298577741229613168855155402166832654121294544517336087833696393456930936638640950283941016190755086798058225243652731365831264996978186439076285401384562783401947667962569335824725223108490443041952429298811347228073822452696523106166102234394984171908586549821039258849497969355582428045561320313829232299156953776709078406816675601623615783451759992721015832855287450110222803629577181716888598200570868865347628477510571146967560965714470133476023152621784981072197570114425598225507869178534702929128730600970176038227512193103008795863962671428811939279477770532742431821248490953595409882209718423910516300945322513890304717289530558992249730016160117092389176394537014886658500997394014914046866188410366827377079795519316290475010368726503893300909323562700165896541541437200056827686936451582917878608199595565798438605606283091898657131987557933464214493669459209219466500981532890599148596499285575821398469805953667390058812515133992449710517820649630666474951509701104372900223500681600271533610974520700741950112868408499185986973516193781680163419891157788704836315161556054126534891803344218247284167954053887565246788458541730247349562453991893805306318102896430928039186528672809481525741190844411619052452488245586058438338117874701494813834536212254723271526204815739716917894628094217894831230889607009600860918928689289285217236544453901062822796513555972974306471450676654640767611570800480844160857691367987291013319170659456190445294212788230516410794787134847731125873299962843349411407601146199643058793053332874177961930359755221171722433167945473883786719782764348791211667791411278872050258668412971572610360063285241265907843179429250249771618860860769096697912647139376397785719351198591186064242887202853084098574306498021687144787154941037864619761925269759421535610724957190479630587761907377743122781652135290140313800001311190502801470912867719372748409927545353303618145079017537060631138877237447388842077878545102266934938631970386279257864465373718305956728486044152611696423515884311127758183225210186768022292371198540642978116670809758984221551529586993988079405174587754521343785359369044213270866763377811382594064552760636803833914777418474933240063433267642713240096602510313383889292243970938392316548929978176256873891618645065105524516249349639024365426775798180117523029003332970048892851634887890699368202710507393991029547607485429497512336941318366928553188953878194043784804806139029360857689912425245058346407757474532990036324671159534734310162754456882599526481402526457991697487925859535273871608397710775339909566915888212853814905703894329431538079278054882025600424975182654917177185785167762733280305045348068622126022826139756919039834756586652257875515050206778545189456455118144669603001119500635431611838429616235763286605754647730505210510164495920237977346929627622696127360194298346109679019505672186414553658787641177954456564182440320583937708021689254595450578632725811701284779977572770034320719264915897561407864596938500649971114405978323718266179102567432581877052300735216442209294825599427500510918776533741929038507873099684837733150896587828051820247645312976062882374561695195154214444495052325299185517447230161944352448088870292905826858008186066352663880109678212428886790812186202397558384235915394644916743700347248110398463107970525574504746002630037108184709628564612219925625506597495503963681117382467378958698001709659291109285912605297945356065877954556231463007048612799773377198561805215123505554815986777805971404316271895776108614630978181412709953065889050279707228304826466850321021435571982756751875438952574171409940634925201480190297443036759427076593119467171340444366010587325905078352969879856906107109618076192278775719393747795357946737606328050573943902987654332693896185776955532686289003186914222582280431148386121221625050414602006802644691536334417573966700679588193161304000433252072771641931880493693940531995111665163496066233893414156180767992257879201003396841031198391809721363899351939235136703133228277538739356476695498642488030193015797869375689072720512644718423947491531002156448555170986734137968572986003245345266677824462702145294927185319240433769298545254250726328172903238511137567705753092889854068462043177195597227747112129673752181283103823873077967532522085627014255869038302401566197825080321966892888346926441456148497185756977257276148817743625796620770465940221788821306407617652657725954719289207620049508961406777605319090851709646790013985785738292229708527555389670053756819974096292451549395003208110269716797809007564786356796355575315127666104419089849202379136103622210667911689830411946295055032976829931441490243735206796768735733531339533121590826519691201230505737848305382357942744804882027049398689580607215095038419823655811257225814805727856423981927310690477124934310204840908974504624883301739389745432522755501364556173962782002793912679580840574649740561322231687309598298724054208005661734913413322862250246621228183283816666860370094659110858631493444426066133934847515129077297372079485521120661004798711005316803341767839168371062054375886160612672894902424155228317499118677243259365732867371491237225034092267045652164687480174013500975755200195964894060552324970009528479150272430863375275226514825005642696312655965893089019497290798747761930897961253983443571203540842923769057794526296578940480124762984883703220400924129181272531507630497734108691721774206460732904403390080092641538612264478232230668169770321244295024575392243688531881667546620526802128374085117124226746937239692242923976456374023335595896599589112531759463632104658127546084633575335742847560375187781747025955919058452624386095278420802307461839732847096443842579073151023671201618478013026416595825821171323616799427040993262207165997100834063159678908778158523124563889145527460527007917117098281121985411155244046978604368302785941555826645477490048873150066642385893278607190386648940479893670712666139137645507372787304955588306585805729783897123109323053556404514478903864361077354199260068691317570426998297354932386795282044403564487585087469194837974433538098927627413099346193151142445937792183225796763567865266055175728344165567755910277513702599299656870699735941685152260044069625516954001184663296762702329845360291479076272308235140361077179548942420266753303211996898245570423360995440900559015923790268346483826069328841916951068322896609426303640987535399560471245344856551546755424359949135566337968112545401449100898554774321589335044367993998272968142545566348461575304721304985417055406316390390021113268048696321935212268425923353300044485989570691067740175999533069922984337400189405813803101726794958493561390941798049777469822066942463207346721370045098235349461786749970868523028242364161768279254643724331518708398695775299856563086433862094718523222689233430342319248134496531061543706141876505764050951824811258710550087932574110314856962852744196142256880504468012429756196374267986858436228565059812085614899128908445071605610181527844742550178270956698055248478376347536180309445753839745098606463679164869761542074519715400260033320575311668328870040595132877783419716477736405036034312084376694065433424189429767933583374671978500611739826736893893241091407504357763666422290493356471316130474028261227293092651565102708688563334606562230130699625902946541990323505242646269310502225215586386245995864499263826692893004706634658432195208789305474638175930335204148104931078898057819971981242154707129506327899395504870437688889825537926637310619664004486804427609599291332636052706916821179313362580755506484434210099886992791916327843478445521747128672672677998594813148819676007865228838416295465193259116722741223241757023041558660456672945575370739604356915637909396490495132862639909063473269518557461240281255933980813605444416710993482642865359920095297842492329893075723413596532735546312108956861221331204931551536654237466150590334893724128498454378674942357598744325354937950173963606334616530730767193491451407875592982645761952579607910653077058440076867026856620324389868937067992791824832796706682156976626490036763544106169822041941559410783654238138261483236910318883105812543974444310680849906447276053093709100076082238058176015601042915843284717815764963750839716590813938012905474281880874844428993489320457212953230589576475435294403926169095846338855495433238944058547799838216972543888177669919576052974909282336606175542001042992140836739811449393305964595763456496134897562459718616977310147833967985610256436260015070064571634217287970999572182586906339225747059507294906885275770185727675157294404968821788969052008112291675104026593044788698031735945569635230497321083779915812756785419169856709868772727212325185645108582491679987874169588320305345405841666877028588324820889039378723179439351893759669067912531804796536473491417649802860602145582534430966947039612142580303928410849762392093984519255547990541442337111789344074710953795208802699972963528469869847101181646132166134430483513957659552800287472981004457126492531336171042902148969143855122350594807435475331109852851938497972485127945907421387730286699081949605806733021681409567376658012615926812172935296319564829983051055013914362054770655241496959165888765954978617312255853215822062212645397010832411102527790072692119337816556604897981192946494782554902056776454212876729153209094066117796416185934505267538286974419708073860633908862086245560293020033171663373089651195392419620489368317786702140710999155629213796886293831037372512463120393907536689951183936119653044294495463086970140648157490101650808470500523586385179127694576589313230868649254131099279544790984484268705179591174792688632123278387192723831790716117395739212936789449949104875135394099876937180428689234525806061525792955783759484609698560548580231024444809380901521028242597182195746747826928764652035872832278272493780618948766763038792613186024086125769432328886827837537064437877186878196239890177345546591359333994117171152757358729139710264157354018896230107700449096359466777293379999370205841659867680684221071087503759257780963426117231352005740761600432534096654176113878750340392728519350261456104710892245702628246562187687968231181589459475041826345690625783704064820966009530704768958063663088314999546186479349848681555877078315869162093302572256088336670068226510585489498783461500932588901231583389906709750777606694322217600775514489596445853903111033906301322656116768322562411429072126487996552362378332425630032271085947831054526267416367761436061839664784405745292435110057735180977119478614583479498482390400569091543304001750631577391261150255591850133926025903797234154157667469985523616736417690105658476583527019991809639966531218102300193369727392700069254947956411390182441238825263544026229507688610496060972431369862312372531533361700089632969212315944366660762887817229800575364470279895812232639879668927956015716206958268278355978836475525406511631889014197746400366555805092170242989535809975134978867025363740206399109088902694421176077687666062275875679635008479322552018928489839759439820229272731369462472296358718362421424237381319194040139516469196800540769473046075002586680176337174286992758582593896924585360183915980266494349232142021875107194836241132460828535653582219954415882838004964979457142868377997620481658512573791942509961124296188214793153285216971186530930870847022644963051785322339611314349677756743853008630847281432998152485415612325642498685567303655469466741794867264498448233699180589121005699271419167317837381155549364222406506545144329453439978376830505965026444035899511819755912749618246100036967369687946910344184334389954795858036973383487479144520918926715096512962863006730348486758914119140640679164901449619222980038699585388167130437444088727493133875941641700920998025238553475333931559549377371926355932916296901370188892569677723304338910490303683242782837408184834026158342845238482380999207364542103300219344874627577382456054040303298100854066884624931162421859580757308281519731823190883488562354942767108168586489499313331384123666741554261476849250436977653618690880911669401752332401856571258041355772803867448093502867149317418278886963877354618402371843600698317406226219500137189278172625776755685851409363398577610750527305865612184981426415402638832210306101380675592719252904914939887340196833041753735675740291088356086859495325847635070282900110902287896936369867357379708210957450913596896460165030089430768276994218652003112322038182857676367616886643271071480675647628673779761721998494654253583477825033143200407778144816271905039992651117313310574908015534818246139067493792607599410157098606071574919193438587165000043245972208794742462254424648322365008523838639539345004927504702135235579599210904722641805914938042107154875989785890698126197327836047110327986607753943129537652503497304018027656466059464829645317098674245036719988165198072977190469890052699781233686910369825137923057289848647037191192198050462802234721122990833346143857701907188677571500060371621006483484449700563308778292888703430015254243044884822479280168355603750633018900455066532701137003471104016242671533690194730413738404915738728834912196956644527221723867329746868440777943477340653895606978465168804483993271532212262006351853471438187192063657974825399649281589817722395133089756344253723450197048409804143530798288035784671195169127897903744831283768255139765958129543052176064542947827388056884427908017731256895050348312064832143405592401064233671198078821823013366355727907664169777775235048121131047610358174778194076082903937866205097300025589770246760250965114034522723220193054324968178585975036743802665377759587348329344935862068392978477210949507446077726833943356815968418281829892023026888204407979048668346805262532682104423726449605507677545785132545300197702135521526373129230000946935999701988184460296144075093783598693794861827129712534372430227813190627214904509574823439272862563856282663840213904027909273187062894477332868011027172910037299176968761125407865064988464601509969588976595812005260814455374487041131715794876886188167513509274818200703505788343446098533059072154029065248633836706486845697649402967412312493760798762754152501970299934778458986413311047677376523802512333243116903392754466611051310337266366319257138145427112342599430903332843353863259215077567768442219407907422295334295087082954760408190414820706784636219315223185343521395257807720722889771784988789059003122147669277382733956868241742575801282913024623917508798513916571417969273839065428788943126178219380203500903942987374191318536851777324388628496541696126863751535358793304502773429197075417583749331121735529886945540676167547158034436101525788373172869105443836169187060293403188750244029829169992137707509936356984232987221826893795708448086225451104685659643983679372089315157097115103831633440520730495866954680964434876240127742842028027314886501126849822898194456869046197361984671423834320626820466721644411174925987044505332037478997752918653065358828230865985225909525466051683881042391198298853564443495904849403331698681658312202708790291182505717908726219942094136817489919467496225388461486528005487967458768208923200044291650871416799805925487870525059834157737971753304564691248659788189832907649189953288043009542545110924236705317226457856845774724943820246563007478843512571352821782558358444497864581924095010387453447059555703364056115916564890333404126679461590426202435707167999302406724216979657730234566961658693216326924728023066544728506580718334571455779638095301350061139573521751833432938119847793292269926904772685557761205310832734214306316279204124216957436414546946540284331308210602318821606588657889887070334224562386679141774820841203033342422058382804097013501048947645755994272590532150581338763343787851027089357885995664796697222094764120606204139500152266923895514886293942413415400836387443472786384726680713140843767958979128692634114230161475975554531386424944763376878806478205275209106269987253078791231972098713293932381236424760045719774075428566276153887659824318250268634073038112795140172522952035837066126034031821111002315619412957451151049075912182217200177971465760307692715106136687223897224889228728270952307975858867922738284956383746368346757362750609416201979698552203638778141238268940324618962095592514079546328932060313167138630269136867554906027951099664826874365817342756373638711849030347717490919342270768585041482780899118756013343037683465028521415985285729685302464309141412503425719043447274437539621748942536391401907126947219190482188915824702138979717683228746449833753277286029884890394738506369550937111429130380477089316504191990561118187486351677671016876377860274607292609404185161241995500909644043652661554672042370434588283373828584337529745470253313085897845909192973832290842884210777205475649521137630937432091976014417689128293533285446491105432138335182561693343774455467636815591613640566933879602615550497440132658112291203269037642110824201357982143357849638901344010283659854872007568510380132843181160926949298983584584099192208701915595218961124638732937472160687673644845345897109061591576190958012609579997252477625700987464916253905587731560176266182184817681060136363003185444681385537871232377629588584636660260658132835516711379894725399982341951827992754761850360034192631510123298748504415925365711465671218839724899552610725140508610780490906332930043468700086443520264298521582305758970239736058324651279251459513364628492416100239178413710156141703468581455428633922916435072682191166789535721640409041145003331315005424781129545578572313165354877996369900339931265177790960844926568050360990409841231176762256597094561934361659026996922678849136798001550801946060139580955740593071842276687033801041833104396584151193790197999661162808542541751639745513321299944676042232118805448605769418998058407221806924639679674164965103440983778386221749389060292475979637724737272308739726503545207130277186633143480732242883809351818874915263811750860832087677839032184849724874454610376127068388417097322236663494046665914683262540389334286133520596424869925721083642338255978182834287306016015405606189323737943930254996004150972251808920960072687640452674729800390414332906719448862290136968790819918437347881507991309767741793931065790358164028508501679716117462003244379292709081222146439997558485335614331676688560963999169942129428083812003905159009035141708870608116063394930402899757752676920846923050570898212088081714530708017865504093440743092100129016548281352639011844863906610555508606507777411876987319746019603345603068015071608224476222456550950530195047666047201562067893342839299743725369943988062548893406954115314090915154532130775808325812648426502529404826873128083740061919752971228179873091558073067614669635326072187021035722022369126664293080209416059674574863609797545612429958147616237658743520236432013790991157331811028142507496399128730295862101465237601580126940728329241661523189812345353774239545301930643722900520608225080867525703663372977779951481720759264546343370516524022084523182631234787681077037663570490491649995057256422876592835472401941067599756759507657116814863052816483070982624154439306711892818661619151667612651966516163709988573271454617756673044236927212535669290885447605783855464054612035717978959191231790446442258286072691544273506341414396005596852209239456647175327231909439479391664777376486661074987937858869124375706755430098127896178808977342989606229245471051413595915816358334188825862581378488110607005290518570940124368490751661182891802566957292886680902798560506180322754712480229404055128986881512989195623659465154272898421373980235678950325765001511930863382897530453554006116673745972157740395813117550784064653537022095178625078926133974818777090266242556126823815177427411504317334007181246618434095891482726019587606945660305161291910488947388093554920742670803534742875318291294028188605535169694201299013555621884431140202668455387990947693681934996928876432783153013058840470906142022593253607781930540034466260468105320754441639562710393932490671722787685608418150061996303839056996888814127662524384966472048542503730391546242585089182313673013187612318736075238501041525925387260342922996006323182832414713554791021769931870185944851065126587237902120602639722906321208175213333459847777626263335579581657658859015753959567663573227839479630421556028444024359135990684880688360523403444382037874478854329868417707214294537370042295482330414820596837988291753126498583457657920100688727798649469455023222059911639351888770921364793999088945061701229826291738842141010600245771831531465982405632841618089962300598311033375576190026747203096067689209860115436880043340073911217071210701802057563932690652463828328030119461745563241898277362336288800953082503103946344939640306796473521859197222824596978823655936751637376981273832372460944829352857737625216011726792122170865289029540041470449206174608913758949174629105030084849966843459215103524490754671727992515395444509025886788661695190125550841941763623174432140894051650938849513324910809736403254780270491885046187435726893411853387653530341340692636762995763238322427210726599068657928183127871081865401204095564132263101172232379412904899034236375224686009213731015330941632544571749067869360573998446842164691880304964689407101636659908808861966774277784763413439282478151535147629650899234510553350733009127122275026374445747415017041434354951043501224071236820703565152611107388576442777030979886308932571084085744188478088198273631593736051968502071343182835373815830051349658840061482937811314264236998259675740509503074933849300665925088019200665023860158877196239586000746158592338555112719788763880297770045958901890473774242041915306147710529827489998847434767276471082087229308687805552362132100504739209246289990153208566736166224318191466603727608934804890712550677759742032953136378590871285194604341894674953485085033025931131635135828118306906154196183411407253643252189348237754714385844211800579146861404105846789279425976371001837949964921356698432331442875073318915169402229614666089624395731013566387135816333367773469064637170137512572285151979569484893703339379892557615241420355887050085106569818562600410536431079325066513108966444569800543043979180164028510910788037012836421301112565089988915873762986363480425132293449032349329989697447711031120258408973178802260035997581858690242570477599839067230974431343615390245661517587437830710548793775648545429062760404843594316485045087219938676384301464302132608973877631561405392507749181798911281335455000757787432389005559065245768685921277970063681214246083664981960389015076740461124633662378516479913833103830994757969394926612491858993185755472740682631027074778742442325218529699109619024073869380982893813062457185075256381837715708863977027291574836094134651748157055008115740093169815999191328994272764700198268891223253109140440973319810212749651110365116491363573743311537322291403539535906795868492568799482182548144404909478905237616247691026402809093455213745588600519407856888892660185607810501019917453461515977520605561848856654310713243999581237774015678682235790990859485157454346591931546253293164015928667086265630306240740542071377756392156247741206918073478141347357183253452018558631242064643639822939897879311346417883914799602998288173923789022281388732683586122590501161627539638611307327751160666307938256874678129702523689073453890185151221122620179190756659861735245383402078540925765754555227905969034881026456659807333324649810267251029489158223719391488082216108758447649845423443372969516390712041921317495714992930311922646183817982817162640708138092618161460480084661708668919513875194084971233445829222376642994984831496462334824153906929102288222634293972606935315944043584057663266772412567754738840697344411434482735212157947852518452604371138088163121614490231486905124803687327238770393725696959018696449821911248360114354914055293678266265946600316101285030478893233907145755335529174883080906076717282153323043940571261578325084610199809454940429659249103018491981929347718401968687223289230705804634289709786045095451021342009168633564803780593976377696846003541729178040267880904160222503633982761401027029926765086194868872420115880517991804150477428212391386080030659825852473515716483991944475186820296901182400355849690763574308206967003185305538693242793116857808007785046380218413598243987022339871249663735137855878691529394823469074472286898566786003455050250387320201403630998457681306349507676227291155304907201766555859692928083570618592072273559656237979973853926397911428988124020212431963034861474317685564982956256341727763000247349304056679974207513691127134887049208236378234880830590957981298138393053709540933212754928857097857881599048443622775722657379434152504863280691003886514617015280340026770281098586903250165899534619137802760163537519355162020718730802952530577431290869430192127244351539049279327932572532246654934556158878464699197901425239593247483480218490121898892975215884876381346460968778514191118687014039897488024420160812594360150594361968447963313407675315324725153074646259348058927213566843184530707250521699787922064686377485147453004205753615801031299786510012277754582048740878089387595385628927932474152455000805472237651909407778559748834163154307660593822557772381057383373692632532534135030525301486183920004387003788415385553903897201192921792775042866096801064776523729621013729273958939180583802310854821337388211438714899415167777485583137690432064083138913203100856763342454284471505978219753828004197457747719049895278452944720741827645864586946985841840430771902626264105927473908883894884053903216786678158512150239664792765348212297767977360699141486201539051418185696661446751860268347252007465870484917430948844914593189233867676630258442331341930164511331589763800050120410499902730140507733625656209038811630045433197960015893249388471993075955794523364453223331910829350371063376993947977497507400675170294278014031489454973592829206890502744968791916910364033736580993323500027411427527149140743989250445936392227820617672424577070686086349365401180607023589186363691392456730052844292015333110624674210621238922929961106488629094833169198943902289726059610668980503042334798090021908177040881587040432075459808101311842097830483472169038541532915199645928498029224527858082042935241114788968754086725526194281898476860772388359502353301352756789516049819426043438924658395987005928236777069352512075030859876518742241657647973546006271430994380587984517360122793246426170528115763822406530374816867910479807015250735313791588844699704852273513046727909525011972440223955198157336482215372712056415259354086508852128768624930271600252539343440895661855663422992447366282896204118853147947768025427805946639202122885185301945701928371958825932281707144133271422672080222259613675293579732878219836927249095580371906844798762353813372011818576333536758390292695654404119645187745217702344936473980310335674227673359435969324487581880684360924285502536482187581336122355224824639020544230824920173356902886097644407893574539924672289535879645284898401850992608322154355151388625797330151616225667634086108399548527519674755033786013164332920403539019779872606252834339243449189762328520827918200826322916549192541228368225927052203362739655675192706570894367246552212050036907467710672476068246416290526429492539973352110961982718626189455242485966478201537530190752360308209487019359599567507425948009812805028002355648412696570954960516548225299777638074476913123127644468254031181920532389012465101405462707622063854887582436762454872262348574687118019332438780626721601989655392887557273630514645706359079738887597098598072389124436004671507609513093565118951014030947999521058023808881974695633401834759324883754474542955358270070511000743606660418165423629491212323959275560845405223244004778881851245990324183338917941563519519370501013961580921321274275280765118648766280253926289821849999207713236436646397088761516808624447517895464634513315861428469373616527932213896104909678225829302780537963352915676975774389188834876634853698370316444449612873978858748304976224536710030671407668082160205469889575233744350531787763529387965931517492105395463544851369601906411045566647575356892069155251414347011116228353507821070926649130887136252733124074035879020769368836627150385093952073784853757451544747225375167431815064025305524419089743810662170743004391588679923572786694789045314747533669247277888546849336739455776657634704672027903187333061508180854048328929758794946572804358273845067562447412160853719737871373635323137074578912924664169310352595471808215493268479806770055282512652327014623131782101984617689302822792019182192565358341799733124897584190634049447324792578836005545791552581866200610672662777353601806944154316402279521500094248184841334751691953353376316166061302242676663799280365545967695973590232115474633602155490016159033454274885302859806096841507316678034557649202064726033279376586894366347299394007932392970859365778661958485573612682297149967573478219010310034523260627702524343904888695294868808040036244704594163075373570739491044572661043873101023135960010712648786333648671792762338264007089030793824284263771130230675484743831464879520197293756914814762738318941785023481051524078087405428691524232832376581694423598362436921468491629726003518053610261461561226247235701957550583098996073144713343893470916192603120639003655636705884241122232651294717169744192852837688918225576978793045067181746423084138485319638368020672651377333687249782147378826609710160123235152038256612826414754959455516694356020312457949205791495742663478738787214185711331637264209649769961828846824632159237029701935900787816330087553785134253931209717717190713778313458609508774690784097007061366784372509874113343601876604478189815635817177796409318823520303340216425589672992378338543750419643045449187690858290069510177970688181961088607622854893525547136337835014851828644962649252370360734891773637052302508253154605358092091029230816823949626035634521267873424991271519719477635812752564311005123581915929899705304493616774671761839215789835823393944987700662026820214812943598194810072748222210047816683814213173576212996038676325645435983728607644364541480467726929350847045251690379774872636086131095122244766372597007282079305429697164074270406723831696270841520487777528929966647902164460128463008381808571014175049121980679622346930886272040600872906612685375245385857001183531128856851950341179651027628942190300792880159731873260166393646569827067364504524321424332629369873364606486450959928669020980723500888492932742406454579325613387639859555386347139715173182331432533756412553338113566971620591516385578582229319955906452217680060177011427199907373990400829682201329046524958740889603951991938430118351670170844969406718327539884563408861137712415167594619543174721910534253200630053364357496216859097403948086125372277563966161091863786406443758946983157309649602687667040635556137889288217537912752611457260423910595275394710865311192573891080241772308823579130970567575704757784893038345708176310730664570313798628503769740248010064589088078183941023702105653438212324915215943816968514957247619753872737293156863507564618965386427535669418294155343509547572980737572958387641337966667051295766481166975590448852311633439417413389989366415707519745389926512637421229997042630429763340033392502956317548335848069492029539703098597239428904861442449172176522983022441222519564503402221059134250078254409455790573044523528289415504414572103675992229719106804889135803884815488688875276356420934389178828524845837773947885015646509000796017386529203168769573465953560604991614990236445051789502421982616804578634209474963217829625860169428647378629639448820003829037782102566745894731682664660743414029266914481979763597736971719428934463409780254079413177922544159716998406928386076716646633052378545659665843787414671118038623141750212880289360825795789815035746541963935456360526845263520372923760667519301674480568760844881645464682503462162416401550074632240414481285896080460127068505293660441342698665162457752582932558964669644159050351870312957572694567492843773489052147307417620235513033938241629331237972938481977468233019045558991589474056608064509527709050733319893335180103799619642466985323017571907477834915761240141408823719221843451152240188092375506688227184468998657904894023575558206893263644975673399209382201218605948252875565571620211862061851416292125816848061911624438425678026216235423813178741781334385925883781244346588177931628148848470759031781931858868082243691761476404867205712380294224793198353506882742284510698025211475465985093174000977981336457127513096098935562584014710095153801936111004924460438539548585463634638150586111537115707986263350380501018269690841530167431546673900921022696751144434428760616316397520561134044220207982505179236016423773226350321861449199516180803258560235811898128834857863932905124630514644125194927305803266136560687892088939477319278370372523519966279785462663022268535987540520398893064380571754934684249998772448919739585036840011206310806337870417503283716299968490570961424723866501208417007096313770823432762225436652896152754231681238028377874113634973946730901217080785775137177505629553618358030637246583209780603237366972090382864915554824386321438774598831815275495472242944783338647328691196224227923929666805972350133192784630208843117178690465733449763187423194343470340960615936068245949007815891822086784967955025678792151884705618191398572677968230290752208291461951763640029286822493051183016196155756223378992758000516189208500978405365137751110562563852992923348206380294616220146202742726474231584091931201785778317814912135643788778283049436121643757832700798634589899607155351078823344588044905555010956228461883991170945277399413303189432273418902188600319626692596312764035932498145763095457400382543462183667259180393794276203163481096220869173207989607638764075855577761833430714654484861568340575649141726771150029127629580198608663618909535339230153492948169585685761202576905511078616578509925555591237022727035872038703477837448700794757097208392666695335418567984201682870091545875816140869480488770414045426273134727457458728379827840320876506490568909286225321164546803348525851254399689196616481319330880152822275223275324925062853130428907983618452348864934508619853681262749685803066025562601271252125577146117762339054214701799959876830569545305263968995071446169577488941961446444950720986705202311488308344619013903827226852852761055262549265692792392952747774345125482516117754156843928112172008582042047091285601223074386253504181391892722229168298808017022913248430736068093068253767988855618752135479219393679571137392209051230775267406208957635721773169368566797150606899587157238219706224333344717236235714222799239837501262670010233334336659234366697878865956541232170721444849939906224663305502234222983192057345280635752458709886955354723990820386782877573828403004088788281712026070126904067336932215923148603373440873573798836542498612051500872360647547757050974860706807938423743462540197242645508099464162636146133616898579524719871624013297589882640383463348093100452162666897529462783907731802562648227175820844923064515803434864301495537590516886649626355875402197314707828029267689586477194046516249268943983563016536371163636545545441711510936818859210785811391560119448641851899100621767738409526753163055773616783331767428947170041971290098617616194554701131192013619386641526625801105279330972588750828207165674740005136148739552930269193702405855365821032801379725237979118136037282140138238387259875919512701658758537972838790630003343882494247302450965460391835491504894877629288186565729342370742872068560457236660721008503878325912902869953614171135268806210310011101344364876171316546502692562114403581187941928003449761853140713283062301811294199716818898520855079271540624920104658790835098119616499155485434160496332325824666033680474912238960334638472045601398686595202183446760827940437227641715440689142988674592988499773390830581636432470938825025983037100264335361379693223633650862338431562793881843992701804851844832000790204435728709552368356666374586250209829933838152855344713717406409017737498742130439315456124572898048235023727783727970834700543631935553848696956908342410912652881995072720757030255514953841941298954872769550173073718173132923600545674813506217580701704868175677650958443851738247693635056431225947899558099242816804567355879125923499690697275817848034123083925744452164052403888460812238902589774083139790050316792315998850594556171834939376807781123763868927773641901121930641452287928364559695483337619099476890289331730678611473275093553980268438720701968423090745984287124157615319898491028138591601797513497762482612581732254121103068698452724640837253051033260881375796147117253596031193068410569137493989902541659940787006532346131960498196059464098189406328592088259609654262138120485931118611074070202131462111666065120589220907198965069499111932605317209549841460686793101970716788255004314148726856389415306187553218165724510841071140582777982612838810292722418407986341949993970356142433187998265362121372319756570697444596416445476522035265664687507470103036895610285409773435414457214261373996089955448434393298227261324937016039160040734572120428230645913563466934978785033941817221748358901142995641052028147743616845104812248709449665615861404157532681627155127035740796823228720702070805850836809484338709995922731899047738987932495608247221997150837675677472337296863740696196329463903659233333907785721961390569228991366476483417734294698310235512169466716286879371827467461128749839330967612673726983769317549361786081169306911647621689002739250589462397453873206338045362246025231107193863786802912801147795412323497542585950717798287181493336400029570498201460249599652038602506594978506666484313024858784181970006295521144704886057824751167075925830609501327409505340638343657662752742480807312793990137067708085266970831147620628352830649277886138737808430546232919719206233778552617741014384733966572920768673985507263857538969110447075250091986007183565399473861150756833841023355760671974681986452454896772738790747744102770190648516775772558314291806231081023565408214791275983800895720564042641096440523910335142298430706036864164033801164796425281645324272272365913472913192442464575530828495587706612430096892166471168877964917004824413361518823453964186460366744288138607848326371554338778820685301263615719721176805135411137278196525255727797598298431428633177150290567281142093077331651142150414073303982979846656459911937744480328619676213854207384472518856124259351026766904487541324863509362232516652966862889173932112840354960460169715295436591458622045979739394564965706154244248811923101069005646384078852137786198363837307228868339902722446099938670458467637157314173873868932895204954686160595423331075808665113206386528813529201122713160030190890817721072826752496162948907327813012857695874288847381487982002627297501562627524547910379579901349746183342326207080864801078059732617509332022780994101696690658976003552250676197139937302027545588238131977179696761345079470757283691393324876872177189282151839833480689721397865963102214293370101804621747437093819648452541802087924869860564048616348524692814827373704301071254975780949888238009591557424630079542004609438025729814734214819094051398265837843249987165289661986923956193020646594744532494613980025955497212406105174144793508294620205366548804349744708932174553378460821327398890717162509455531686284933021887919203688036208175799398097961473687428820683260160769515395549904920969985341738424311420770606351958697111582109397021729117412655227251856047254901876114742217077770523287350117537046470251408018055278738149733689365219538942827979980376159498770540532520045660598812363111110212275254196892919516968476117754362847587719234790915774030363531810426712944671733490080535730916067756827522528889153308175488837102192408466345589541546644999664805856701169718074665059385324628267756627594785157308957785398185389485729529940637297593176200556176832303445659925256546955075869781393555863868061538780808476112111407801511642246343572774772897931783624449256291992007737088463990886208039364182278167317014969248273179360417580305184144523733739593959011518154646594115915548443495872286743829710242761507447318174387040388572622237135488966521894748710765121543133337551411711185134924216192818519810902677007691205639643088336609558313996836188539967032423388145429728004420625449313111576924176886312193177294977212357281422049111704251127141185637159305586568889503543370493933612011530501937480671297228110757329703545709054380785331746225747722920931004875043457498376579782937307880287333983771825990019692646145132291834777811951319876425379920447398721865384947364955610085048285653201812837379396356873346314376259701046563535990205440867906712452965770332903360367428870798020734578797112383640766499105389086970777881167933674142494788944661669249063901590406027898115332032043781864123255739084421191242436011524767825667455020166770550381189683534415371259243943024545056788719064810709488193743189380675668859285142535468196194162537219529490460193386288497507379896721926579591375263089669540780186600986343273569296388343040997648373432023986344261847947576872221106487664378434042550416857061642225929356741570132731392316802038993705184646557786055486846584697021195033679593231216512457301711101688248643761543567938413764502969864550868250381709763461345825220223811373359104577286818251473938318328149794571529696015173049999912474312640939332082011117987925081343327126908622897235553686798138122659275640437586136826458511920589908706303630937911662281223555696868288517588454170058772127830107398745663470217329171035135737032192119443660167425259763701211253043683267749495145619138953971788493952050570729023939662936733789582219572068709596703990728663127271128412032788473612718360536072879776927283233184176238318747670991788737909177241990215043251074131605236773719953967707308560942681720558103749605133000565130704860551959603680234837490203597632348167839876929262215036454638992849490801509931376819670968961909498988497121655283742036790891038448049963862292382781934680881925813697913565439253189983625015241068179543032510007128982640851355884021187376760347256233435027832152243766868057397460288346438807875354169441895313248138461925943073258393279012636066360615784061326485414339669816669551477074756775442429220709908406340058733958263300333488769030776325998925072971256769591348767585576131305032980973313701432779835253676392569272806153128296602217270815303060239388351654499482890128506565039727017476781529854905097309586150778653044061279674676297558312060857415184146331781370291878275675100054715756856275169320295692281260691989874651979550915702794410645542720551540583350336134316878966036561276123308593689023166087365466821173232549209003446106416929955079257163947027655782210267674731305225540429659798972264296473439559415194439502102455988311845489485428114297734405103251569964103914247145469096683990737456966481369731355807320652383783469167457290051932303391139859624135364533409270945640739803148291037482695087541810565593554211463381585906317682050773644609041238972371826001703911765560065108930802757938995910154456227160900700336061181692490071877101284743448587810751208664541135357249450015493470077121339777808109062426672488397645872578371028348666922434162925506115768118803201792108573048053921264630595081452458464593190182124457995862389960494194109303125430940838059317114856848928097968333791814974981637289779752364823229626257295283243292967809185449510667789584296997821892100209927337651541677923227002037904921348082556941377277801987063784227528684469983368054058474320088620280318006033908558356368912342208433043395935209433227313997426710847781802551397859308758592385070048436777107947296430538157257687300568735234993495104875479234112632335870183514170145167561404063511484756359063529770990537960907741139056657775939000463929497077047058746182663315952034668272883084626477038213593723640480089649134182555276955270546190981536893719271399343107007964601946525454457794556699825631491471156844498162077457870411572287080994038420879410078490253683414212574236232087458684306543039150412293427843026781444144011339831926161121189928916574086432242995044163683004742553077584801288028058186486114731560161322843078930771051237966698496848160477438297147448787998494442106651578223675275081445101428206312149035034942657486532734620075004508654689286658873808237578945286007755044780796741849948794961072755404005531697536731561771973266604622736363285769041995054064288403664878168725436205029536331743595730671621421752982852335323925733903362745304659000566938339884831579021765686507883522457887875550554329411289672871246329168562200798592908254283373590393861858165737785372681551048200997384052057409310842786452887046009256782888871372974643720814326955688886296610756210390296911747158814070097458784765069936225198543164819527103781192797616056218566305221930001549054797609777839652956308504131284826333217237610443536893414496879935843056158833451469592879412654662436647995118939053194776890999790088388304416491373069244372362860154698064892208341014683396822707540415078831544162731425895116139201604006536850719322566485015623596303529556232104507960168445828907178574804677333513973437464764454144840373095789289848615007762772542881924874241816703972804846786936718132102879920219222275694007919314752380217331807682307917147587937102366822828824675499487372429506917845907746249514054399031201368973242898613543228106941302010244366362769325900400796394502713155360351683060898586520814314655399375776290117138979628908314434365388596488320140419132585562417465270234558161748438867295965775890100887731781905910820015917401307505295618939495478785021083983084498380201119812579070363154107718505427351457028891621408893705466734009562428738733690670938580700966114853028366607202856399721809273780353430719023440817470579579230450878162282719159168419428759633519235985455851374977003437085091241768709800085501772162702011178119059498270713298554789973280817059245568136945691331583331400629691629687342749306467578461747683095559261706467300823622658331800805685589530241425497154437623927732585406505644282804558573614305140159081589222958872155866322648759528841403402651173530810487349449531203968358183785388615217416148560445993814216748502740140780388061558300071857381635890967327200834961065929359320414612388234209609195125001878876731775691864048065287497588698398516179389140769670714440549121721581666783137177638351196579654313173252595161910700178933935205753312359956995841900547642096293899861539113534045727832876017703110904682314878925371658794482217027314052000119587252808153186511938483363679045753883102528649903584334710189252601563180347846283519862614793053327885119949133993020144729912500432507935941486949143041641848909637794105086613418494949454786800562817470363593892362875801416299589339302319943677532930962150533147967899999544186533901548220889264598611736831234420904933492475084592765039883361012898450949694713841686174588891546176498262528879197939505442478778835745108562337961561173868396317165587336808797162652746827045966576563173093849006876631466311721156458069124901978376350361201770919975866972351522217661877270914141155784670240536668075490781604862251610873787244133729107599252157730674336249090171065685035272631498688145516632801054258541839227240420917580077443082731408768063039243420321132058687866968398000474460563746964781452418996157708332001575008553583006153476406313531469225729566762681337914291964079193760672878898138906142275539272675539633126363672298246351352939308631345923570722790430132752463851926726680142464924271045571156784010569273799190935492240651830868388803550048776498665570590396981514510178458154106947907621591578528279010426991687373309767978729444918564440656568699631804139691797107781845796851259990550392083987682057810578477996586610100205280611156189582490158521479678418888807308037061566184752033595872766499371726306249809673260711987505427586279813667571276714447245347214578430838826987013246913256357677811815754445179582290511745441399344499134985035976912100206439069722057825790236789155456735214598396590568428380915015528143815418542073263140878618458523519270906341046132243308949162856700424309232703402678250438682704649601055525120616555932088695195364531773100541569745936639546017378813363734316880425192765280647818989432873114368920213270219288719863698604773771509018810698802630786936500729614477878515952259874699243316527495787671510809804992933608861464357063393552618264698145517863544685952633986820044385866013718226798217777632891130929074253154406433511290932797358420239520858149644131509089906250088093155640766293817537512798600174444398611166842627864149763933015762566812715228910508530774619250080321737328691235606880679072301998631682282662300368032929364603218044678557041801489507075814237851877275506459595702897504320213095775241055608509390537111001825829606320829158543181825500542019896003193365902837948916899861776973225908316709070149270199433173686301656815086962202266800422377408482706300472612830346271071185931559553511367139242326759129637943022215461389098277899619075983092950338743847624733946282544012382119874686462715575284901574481083401729136598834218284168587312772707069572344904986176358433533558045985875460445825877199331617636364903984119133250524895569636786693785919191581333265221696180034272099677902099703086520903071441178054714014551673594769708474347444118244882198932908171368630180855592245260852426061529930370741233554120710244964749769546180384524767083396984053878650242681730457018215733288780515487883577631445716996334056084649898294902984324621409064923697212374765933965620576032005046472946984369235729681898246540582864172001155330774504397909185971000989847570293764714091560375909853822484454124289292447989954170849929658932887530333858060620886879728139276331988401792904367222844473563806315389636160817081372754474976998465016543611268532799687105805419951608069865143830697492066954753764824744285380396271730571578367722649404496356445860321415075073530778323044183028585021114037042294437933656303383142210805825618139517070254531963704274763030537341401961720568433081244255170723638383489135133019670284701198341803042825796436143596336400898040876343061427881977692329543756477105363239036021372587365982082388843764499428215273539730883885596312252825752714069291375173173213122567040812686177639994547709709445815985243858746929699205073373472940109034316633372082104924817601841579443842344068256097762898537174631819188348035578731083196537743920305264473627050669917887579074158243529725280674173708886928948645375576928283511934309262147135680439894036625785307333758543844574815346517670994496672687352101287917293015030038114405699529113680608691765474319189480507401125469268897253903196056342172488642021855989154261072118316065159513700718167743625276197829480089306532727830550206801604224188437382590659387471602857557134157510156386613336298415319040153344499241024480352366845372543930147826216155840256799795675528789467409431069226566927847255243275459743316947435596129355761396459889711795848159648228296979878337779262217162792668202121165330131836215623794550121131013533445512275754390668871034005434966315735598516905106249976372976004930162624200600065966875807423552774306952303405743950801310742630650610292966251292007436232105158699003199812550886431662036508105709619722301550233234501856594904700751122574809421082677700874638848938049489503898471936213701919847826954416069539563740316449192381997746818110003469440942231485119353346138726450969936274498129761850376209251027789154846571367190180165029985635412005920213999821946861899984701506506149771177152465796482542289677321547246888643903550873435357803016741463577253343960643217296618603258772076212479469504363371969713474588887420816779923809459946056932958494690703346039348856830582673918044192411737924254885308618379436797778396096123793293807399286539045500380587230335531861204309772005911873671143514351718042083587064576689504484880425378671387948682743322960160176217780657175348186332083819097685265023382345144116247035509238037117194297246815477420595464658605744375086714282616136433652814450889807140740693267746106722588746923649976819959595480627884000740028744994575259290330335886103856062587415854332680650152247667300521447689547934559041862838105026504058868634721943692548062947152665911937625873846701902677047384789894379833696876120442214396017573890117215931174009680582769562591584929811720676785068342057877439129518416783325675814227864099581635110793232320298140972505914786377129396365628104841524220511118399290679284958290267523525063058549085178332198350705644606001629061982771494015815464565841564677969396327586483175934293007413719882635951441590184683287299192362159284941864162968780153635974407529719634290236082747898932488191938113855126766132675336554582177951608017910131249688609361782421786825245394984085890680275433103624634769636786831702606036600165765704107410515618860693055069762173020831133335294351548234703440852480999397042235694057907308245027132729090926801952544577944952191470403144708963921640886400952614801285852844913307021020628598987012097367628189606322355610446409551108165249121125716306567320338679977148064996338114571496332346421857323633470128905905819027710946060245911448508003422394511991188110429370069100283004452894406012213391398645328477623131262285245258375147783604401300220948675421659752093673003335000561172681929640999785019567601729245244831867515573652335536277410250042623069884494307945942489857921398203359206672585396553786463629304750987897438686299072695473068450835504462583634200202059584099308387154917593755577294350708782811099212626861361820530911458315804546807799791325798093906325558844318946385669567557651576758166703437029755661705735751163503485013738464710557317087039785421254286674039429046009638680918631799640026117439689893654431822299718590522921509300688707329312247715346272077365462523837308615230792741919690894489096127923142709015833608862819505220461760832242386856985687300451889960727340238833315295223377417317129278222727558750279960090446931455339850010143172267112164023656084935475379861510617373025861567442005822500599863913451956741991658487739924869375504942454105345303586790821168607884253299202321775132974789447552964230976366434266500968984890190227802189896616801834676892727137680433485903788740487844221176594720805445022779853150782971104618072445015392091398944564136027694725583908446862202669781552060159455563775388497456935058553682349662287940792968587830098231118865980309759531089865983460973384871275904512777607676772470558732288969911922904898574094748903896294884936561248251080866099687223904943929855811065515206969847989963780426251464906885095667827482236907221449310914822017563441410262787718601596200074599122393731988670148832619407038978833831136838626920232940722804823018309126662996920573039248771931513148688905966077637713736820276552652610986631601459467281250632792806194693679102146274236834379094503460441761457061247139005564660884183619828638487211646103582351263810839412109869236894697745949687893075347622997719193846507100798967922996167995283057096959423350537233697965059980171250268350832460771562493232802785350357008433406464246955957541779061957432006502839188306439058335175448909959185094761018196566150003099021963511385477071648895498088907214217525134399448641741162575646500381935090814698765964519122891349383922381001795091143868659317254565937931339696397642398681929950741150419725844524174043742203022953380901566171124860160989378755831805149751580432244350264594105318875059140880953018437115693995382297832655848780105923797741078787467414095115696890575572638385666468738280794636028980223177942378063939486761543750655928167735808844036767535533692696706682649104537595885182652576756618002937012697251320323229472413392101790130644099313981623017842971528225919720282082276236629592993746605201662220939708747219012604464091492846026775375270710173969193003065766231875724030753382445897977116952762762058396048735270413718804514408977828273994289348836937035613959472891094337306162546964083222213087705068584327663671183258667047432075910814533222986737862772792630056470533083864180250355617850290578360953941702408657251813862794105488712905465809986585892446348241497183784854825488094998079241936299286660951498146405703125029857815181671875534634159908286701658340433820733932019707144068591835923528775065093830982311256011969420685613799160912431964189268975485272662361502941463015568232673698439713017340366520378942098388582048136776323218579672921048276054157020971536283447619184815581959039035714240908243560144220574548529118672732286161544549859839520483094430779636356391612486830711287959686909818037654121753296250369744640653611391704644707308053928486329058950875234204005852315669601426891882792473836107606093161179536505175197808801467666288989363414564899744509295159314682774268664941653172203590317944919871526316653191649037345039479434839678684727276004688780539392273205703964523910579882213757669936297476750413149984156780660842694910215606541205393188407681283438514810746723616024711690344819072395466395688905281038972705750056031375253711424445367751810636139841609263990190384514809571259027928622111787579474495885683754846704592336275813644280649057522462867838008935799284198575159179191504490735200053118613372840555864908166094657404067155906102485227469733337649703808483217835999418686072949053143163576275007715136041372994532876005267738316821751007893306558267262126676779242631699051409774781853999610457696562612965004176597855829372385137000280207528347549941556436277014878607352842066216922321709258509661574381420537307529432565396387061731354291277229836773026507837256492496094945484210005391286568579265427780078434475691207626524213658702338709379505453140806247382207179439212326991848564970201195239044219254850598223288171406455662345179240100474964890154011378344787842618300750575655465590083216906263182763851474333791209754886404885659585898090375705302196285067122039062203608956727420254970751427194781640718378171927206599262155223469758279387449303187731974836032043712401157295818679317732653139460537697788462095868105802587529396957201265032643385635402976990018045135673582019116619419869166166715958181335460274763217089380463448323923347942943277397189440276660746430007603037446651165431031146139872748433233098376201805517283750380590240842187890728131789284549528463124965147003210261972672281283489942588818632686919307941241957160730149695125833104358007033556145595038538255617375745260616106595872910725444023695362308282669090788343793666724463398967842746430924374247199019395260198375373357841034452126576048613579606272567571147205267526276839041014290032286568147959979300964709390177897692507402769308868987715508927190162298529731211489144914443790571781128461996961159594053799467809734907286031463123570112318428507063128472697191568180339442979799135497482302472811221120194371231118892146557377669232065135242674186564616118299640434568890200516869384861329627853477945746449810084687076652128130305482938862104836426818559891581168953026167937026056742650601767576038010892685627925792497775643056957283671191270481634621091696921645797902772487451029116491656343655332850526974317944617479069692550167702385122703518932466228978957588907762444531385099755402942241520871649793647498498043831600725789520697517126861271697962130535169231871369690347019849873477295705747439849526890406524703813463151704563846511799913878846948591366343336316791926477854399420422393327014159370186133221385650485742099439790780331287208669202136343322244206519246786943590853390741970298439045494807357350929079873523545488395227519456397769687801648046255357215591396621995382323086843132532982966026683051910263887903104773002547818227351481793502569675922717147742632224799674904788315130603520881582537170760354575265783268486169390430997976952102534514763718386163911868378538480443677836855977386214913023733683837271760383179493798637012180096030191026274977488600778925258342919863701988719708272729816512362902927176363424593655075256566865705887292514349029699301393800075697729382567314790152389045105497094408311866368047686261030798315151893828664091813115932296177316595809658031989415183505667476678584265198826033433499408176525623403779612566930638467719375811517783447323887337053901078671025304362709448811441752751361871906737723874023942132153544533001979306397018943069171298625544449470097425511064520877633132174295591385088712665349591563823301592472258763183504823853740321730206769200496452594049008262296729484217676012954864679386160102713698578675032991111016684503700600354316136958034275763989255577630592558674842865846645747689383243114997865277231656960818343414343294270126404185640745809870752182150716818350230337855821502615752017405916279215593169994654742554977772197911750104642737449617932503894316299115167913336086952663358565376449511573217583247578592539054668713552778013611321549192085997853803969887253566636662300108625286514792923628869531890489936238378857706647001683665513580577562755578348773629049350012094375546797866367013862930006917621852724804844142086821512528191893013447491225733088460866990397143589877107709088580194313370209880799315399426491283739689870850112554462774631099032893282166323410017344659429732508296830840607429243507588150312623860678900533639601668644152163347296790642968948491764214339334044110058986357095158925853105892805976665712940307787868716498026560187054381407974816072891491895330712879858246546502485771114694800318128082208453412110414610029743600571461150875958219365096963085754670130035675054554410744139688932004204797196071648903055530627914418993394603777767193234205895018682781489662018850684429225662734581020586905639347960548042680710447325388866700059884727835179039715139916184209256301778118524648188569114946575733111159067753146900061235705280522007243777346370344355095871724043227540248663849304928320620448903123262032833291563138559297483612498010329543671726192192968863975838579618886107165063915804570414901606063757130660637704059108017490196875624976979449349058933230309290709524527153944868911644049381240516515932936521692269988520690099204971096769343902776926598548305225618003895579232687175748176186769313233610755855534431946762400821443437560053222392344030546741524909868654320540517446293020012239993486920527457275422785073621804225437771666472129512606587443726601010911074246716364903331498152878562513593937535413686055190854543053338406318396963155256077132519067031693293590655541593670140271567911532086723744190500796431031999349389720600862155555508517971819343771665097757567483148896705107736033955687109464212502976102758566146599950008946027013999690468091437251830026192910239998107815331445541888009025152887511603200256014179995893882527973870996653040349621109187219412782542735637353058029834317752717616240170199496102950465441888061400532807855155673632347082154617883315394931328072409563114620204228492628020743865508165425292046898259728766946479284063900442237481615060588772068788146961057745707320042448354470969622152825455255220082139369429300670488458848340058094050255483264295806332805128991863689059808684462607728216447499678156422557450474167734790735867452092509520470632842908052901539271030569027635328781919037930428170694562339340556798752230821483298794160571559710806532577221568488558509960246209394839117213818959934247498159879727221505158762366700282746390828045589740066627840912099103193794183197703210121392556013617428863924218129466925336876137699590729428528079797391616100323104793856533083429468830715303803781769346883032836830227071922748628648524513051524461906959807871386750665756091959602403976182156367453243210507980318690189506401574061773045015164733513729995477589437045258657731988738497578276152621783161996535974830577395727332388412509539489104504629331222294859199036272713010064383483300758291876784926975470582085525260391361338139887359423428532303507548484907887816189778440472414818274135848303637415873420255638883445049933961227837418897197483863791184537157333396224868705463970598194484184343772090224897004406796942973808809696866233689455818709134629432910755503354938322714271559163751891980626789426044617574096798936508151733451534563390332516175372032886827006656838098200810065992189906247374949787370094291051627189583626446937634061674615028626747995085299005185095951229204675847616334835936479020709378732075794927062334853844745680266529297271271708869428028687687462145792028049594920163282110339969519385866000210805949963384211584830394443260076032493972553194188679357146195948693318305238170430715139746957979054598415888953416908905576597677959172541917870217457558401263823511757683762594557661120161658885954180989333085280570481156017244464558085283263021023177070457000165417281730101217935996923816961045875921546720992755109110032380181261345529956765694423030210920225311372856105787314834366728905973200709288355056426546497946032039335565146304367844995934367341381565842239965867740860413052023639419957451442236436419680659357145293947505845047416651336288422180574217053919594048503106403916758555035502890506695826013304936522621080918067571109213557318481699737184011327999150051876847373259267291755996779261983974756530818302806245893475292594987034600482992824526892709008094482830588904441708090516706898411321499486562324364141088446028091320884560407917554846266623779850964687882538895638594093413111421983009271930185678775850572198426547050920411241130802471932998374305364640830831384808977250292416471081239393083653074825727708646830705165143618163887638821324962566158891007536387039812895127876311259864820267493463653393886060381434844857429084018217884872492430282643501194065492115444931741651483634499024763136968078020217786939437661551580434698580574771272692170393038105024022829280884297919233563907152464429849342645701028156505382731178693015470061364119194112168978525362714159309768706907878932914673619347451024859658429006917303865066449833498043335017161581676124761818300195018617724003613067939405363420778047530462212136893633378224399715725710335398111676152113882931168643583499277831624300424738832819786257887184867286123095838528401535140448605931263384315724496978978700548519586235156012525226434475278198416249661627952794358549684307247373959536732703114836011753575888609456424872679043328270858427208936173484591859770269629960834287206936074004353264753642611051870569203307203527071323908531421438762952789843355254048503596672359879448811310413654371991025754630393257811867495904825706350066003449756667164779738121899051071329296104505972766988136932014501529670269050573631407151839813242835735211266633816591571849770786629934778693495170895748863188883360306809933685864292714045372134263551439613776446995903148056345623336203925356261153558817261549301940587125192295862800601431932722945550908488518778550721704161197855438964305727521913673977403617100608787577091116620596416930219890378396916303153897009465685874918727882585673540409147752905629600747464501457314253490467063342198036334339902303830903039854911244588962240828139243272918346585003178268434341974536508435257233680666194054729962074163884046768595332236185977378710121853326925611772444187689959162073072180536190544327222021777561572900231684248559279889074505038134270125191369690741882935494357297019384726605667073314591320827909373270916597896469506602364882321490136630491340434166410014919269007276219822220749495032007558419623712080362684949097955553126995135441039630456833321246814204172463899674051018411781641510878094277935286223644161034867090499176241943564228433810864297435862465393699820000811159058609682964245685693761248490351137180713117426516301170052822419581729992157491564929346881044783243615679123101511173525731968028500830917481553666743956446975495040256204661374957183400111452562350996586315821791992607805754738657873394693774087236758070760505177053292942652876474998451823009685415236054248176959193439878895071585255857778114208668059145107238331783704375818247497965099421001116282755379636088836328671591834490846151813960563583574539064261379599247930810104210934091358403180527806348035008454482568991010384378460320372821795988040327321197555482873762800289712408430282002425995542182788801043765431034137827052367538423192870385510235972943200788319376759024875955102089277471584024698300548390903757861510326311877177846064442585749326254811754201310739956744892047356998044398013280069900006903782491611186056667609690523635046786539791838638465318604101044153888092237706862902515041451507104704039120901192619832297264934613265562420412241882697762004334609085702694885353914001419675469440320123581422353890577711932362665262811853201604519030306707598255726669405476167438292998448416234765442253382621926284907974122024166659992967240994314935463909186117245256736822560356184161675481456475539289239853341370052980225123557119559153121274890997911922572687239850722181922064573115980340774956045304469371511532463102764843518809729031549550680976353221248312021532331740971361480740761511278853194547826388596806647649437948965916350588392211199050198351724823173918220613612895484892480850392672115060098306404277183377151554948675556490458105175524662189592928064887998237780275293781720923904365909377064069275115142238464732158706715100623954761944436292489659698334550219284625282909723434335825354082300786391527900691833570664574107276883540821520957522601601611852060852477110180949402527619082724880253327479593476623656102477498672929600093599014361473130174690780923042418978301367906688406609268456380477859692342016091426684108221800856156829634158995722783751200935594993689022577943214646787874691433320268513665020263340799994715504454534345482112386277641161368959771730151334868118892566286103758844445510110313290459685484866170132837990808555976008906289580717454857503800404370881095275511431285545775729096896927859470609604541345868686391207328483317143295696779034028763190865509209458973039870759534218091294113556470309244066079657760815746623414212399656888565611131958942500959201053158620386721172620490122913976057605464833368368327395151843376433854417130856814741873625725012842289212601222242580026451473087312348959938582224832782572012343016411077174685242033992088783200705079268269613538963127085471335484762381093710935339219218461186867052703119248230881788809505825204202609432156780912669206703842863279106631602414444169210186001859813138791851480463305459373960779511774514482697537163197507377741902898000921572284461287568691866610739001504599861425869599961036664346956438057934739020761676070307581985270715146829340828735100725576350040307515666899083220093171032659988211105074992405139144274949302381121473580224750278674745138527287127240775561309967350848699900476341553272390056939653801219569222858260741756817918788871809597219426551541060835576619315907625929009710333961709920417994331292652382935732850394769473072392209259061450633706221896132935412906895408105350950650553319344352700240683562059561693903908401278742285044972303598030794485571641014063241233714408572807318240522149701597279905005000849983157358368280579113434031525942991058761762461813216766467830926694895133137623013788863037278195282542314766509809843148727957593792499856808678632257637743861490030637555842823532652128055742564202049938044203382042564406328945011717650415740569994197406971393306302611160557046540695937755713937307272042044882598114419359344878375634394188477349228368890521594444449101933424643449776447822416702975189736285519363067587327280357576871459938124141219713458830631388290955910970113876906196342044042907320569964000583606456110834114886358582089981361199316230170806390482781661899155617295591659783729985598566239197421608027808085178939305779033972910510194273545746040288234449539859665651358427210998814506757980364810849901365354396185482043695014279944590062209375598574982307434153800000040848661747956522142856730106740224194405636110494624401103691632549363950023430667938849707023376768183570300925273003570755962347696467211549798060615011305520819891818733693584335647227762216875945608191159039313194705816734305926978356003825880965370958411515091178239816662475693150497472383405715321412472208169160990508477012647731403801398881366798974654121226336309835166756545271162960102287350794932154032318647795137861774690581699511451989073965371187393949645890646129787742559034635874677009965753023697453098977085514562459985436390581120370077287864847839850755678448316300922672800196582498416662410283933466372118906570342084005803415786960302275236708919620323206045690507879231482998908503029283797734027698460442322395999564452624403257284552649255321760911050998292619726820857115957239098296849559569735961232131535821257299755327702552683823121530352046512024517339334147301835555611824851145843016469694546351853462051981264461003518048278863430375319698105730788139080939279870812435657782932317158679003138942808688091677806697588520980407860842382425523085268758764234041512436969173662982485534433835013937549483431043784095705733608418356434071163805169657388368472093951212551607420175789467121529955332318928006836288600313881781314613879752820009697626744041046507834095529200615158980790054822506674817684493769349517487123857271783308285103360579102942239643413752310521851497992235843302786353269900633634079300245145444206752885774666935967823992981756564047076452732436633165335370589312717790901182551150016825532272516723174986634568189232200256847422584259807976432721142766849043426591148721135122500697001604418412892338293774175676926593052865855715823594778878093019048630005769354571528888436658894320858186463443964840842614028882818135178441169222514775027896945552345494941003576289158010074953268111365850916104946188437886684001656273340454151661787026740281653449827176233414251191787439279782170711233676102549487304685951713207914296179568296411803239537578275055909726182466920494238089327803937599849394319780484317652406785393321114636874895740922223339694249278760759963555452896379405135432223340020686173433912160644337471454466948332251918397890904136605115816760747344408183743964332369815721881427952560275713558441578152084926055710941400553096282502832117341257014390208130634215392025847589636670509251083581011943409390925795029165053095010459563431904389460207373290019395686596614169277051734365317113590814897453663466475514655685210384498872932087213757671834936533082193063290965260795608509950986510062216692404976071182598477555696545645845586277449773925705701610360904913219496565606830893423912872343253514662830687562141293824477744612991587968874758851136790637415313485701743765802137326594882813745711369346585645122163329299742222896177965520661794305478849008994697359974491533539822938861981212421692351864463095306096468224269120180885185823605123648790081244339440235999956796276566437078760182291223246392102576772340860540913209677057335991941212792788496386132839629162192172054676500288077837324708706461534802916781503280205520903073499852331830491620369098176971062138071937028397981065865174339118163225630616216300567232906417535623393063592994743956596282462641075165388177781258826388280857253103283693688199104679048385829970924421908971473998838837508155224460939254479418499487143636439616696602652305296613795875100289945049761859771701341798542953673834120552204882807941551796323610522263313128181466090475781309898214282063365008182458016391309850321736376415440944363616136894541675877069307535661419830919525110596638366476213311006257491540238506836476258630033617014535293811955543959577691149179467619709305839173284056629579546950072726858499146275952374262176946819188520715761971148743740065344184497398804255454249267453815351028225391088203408440030237489451147995002763383270454818437908735955714174591252304232587934423424348532523818820942128650883783131522476429045890590379630725681223485820110959342545132028868421132618388883864915662787802493505815866532241379275776000279779163909240814902157820966357146148868215428085789931324057409980803278277516078155753013787968715866453411600342339856692079254774133073342387763139737390487115861309293462146016561639307084191577596412915552045933756905812441500561985725680099203003220654220695915160970400261127515989917451598577565620044924381563564354783201068576795151087887267402775892325251840000448664998588896203754311578138219883068500188137723399784227337302143320136027735983174658281143102574971179470178275986193476346703773012970176121863993187803623285079006538459719020089920579167394361735363793997195813779945428082089803216678992703245640325583896163585516236407921445890604635736388620486647573694593622148519002916431926712159510701903421184000617072442159373760271406801363646513494603888004653223747617867056929263302180249065649272644953425128690480101904463216851778862340484837303060774442036773481726070218577722614390144706072730872112870009352746236529635566794260873882221762852862809494500969329145365089447328632671701705382492614594948884289627701402946372777108975776532287006810820263679314797707427288572455523513108227323957939364366840955959956527638695414452150762103237157973493357998848872671816642806802487042130539092863840863505920964042518208666256853429063291651389632715758407887505533771332108616636804608841780623775532529862465280765043326698741466534663478456315341879473282981334512995534850232654694036679490338945984233118753616352598763529573478622937183977621602465010964825395495304396555796730859869314072127236408692906053501504781051594581011821365140427051829875796768674878879105767268201995347638157658156907593394774535755060967533557598001197658327671227196602155367277556659557345612542824237985575460596337035450457419680200474772627279798160151989191544784323773107190127147835172933777958152938693140236005735581453208612076795791854375804933111613355348067946094296028833105241096404168358385220584269093467265418210419188142594287162715567605577895929857884674510910271884113204925793649879922692961035342075314317916204387177648081525381800928937151481513462818503572440548857792074501744363312750088390663080207608132009768233893449212273346168353070152293467907741076485379392934281384961871557052960115400455748738945934487675727082915858327210629705999014014459634114359778598338886949916119210437326998139609766099116752670945390488710188811959877516238521145628281081258728069372962145630547731328163423774217269831792238857953271263787075004981998910918217831411588024660945872200772854989576715064487023335387318195484834010782898238623884058796775055631266562418352161774841939837623258102179216080971258265636124166960169621296681267704094235431933364562010429867910391751950765986515211444609777309699857267023987237239723047613636692002784074373551534366955313815404758218352677907265899503561658778273141173227759563748288715533156829668618898979441595820745924391089652997901588933087850115618016771579300838137242884083735477660780103062619226095201303867170143800504760922156387944692808853246417596170640000822718841363013259592597583529259605390232073325303099011230094149217543166752560406077768503146156713110215077181824899994714325405885846454739022792125704657330447229526937912229327755602503347834027015503016785614000463300834617568502957879954922132611737991143603293292975102684844067713958729833267486494309536799588352793760950192568122407337988517750054646965384239961823971320949180967788601672262688560629594050588302471155534261911523845107342797188685398683120130298224910688037217773997240605565794761766441516095466057223334103842133152725065698501963357242625482429068928371167858392474484040857080655446410627488617561700870306249501570934574478108234684695988533455709575719905366088154033018324585297899679293056510919546022835134518293711343462002857452620467351115123645403120267086819310767210995281115648891999376891778027942214108758945961895017478513008312157881433689637401468053957956761421475697031217290790488094281768074252109312193140339967406781691850160010183449718076667375528527766392932052513938368737421934962121286620212297351668480308036773768366875201969874872379649444305396794855029720362398607277480636516690834474342138671622087368970247303537128998715813915395619242471367848374902980901909934935661062037759172022887413359033416490576014154682866031255841159899781583229177225596934442414629895085528407114920757645799720741500611396565708449381271101456746336661429365504306224392688426099884839590233629216863023415363732921881388989878542317793345497233723773273369093052919621616981173797619166598550691644060641832604171343883135760608267860224078957119515392515886693349306422361042536613767739367321012565829621772005790236826552637587716708447138673459265536759379288485962851068767929004181800630362365491739974766210720864714324911951984786169536939687725995420980286158631994251468566789542577750124645344084317133583823601275331346993699203947484617523409399650095048078345999492509069186268941463287074951181351224542142612948150748156039284013002987303832578344649745975844393519947978752092451756429666706053076370517197284031490678329783983944167037317337788639537731457009009782368816761218904353148000254960892223943346276629078736762137530723647631001494332916703662305447360207046879730746577534739313029217465064829179770701279342987094872563235919636290838975915034712901914044074632920255041084690055623877603985420735237985132638752835949325940550735033805423563101031186158555392692965158802566634440793786395776366589464915284890115404721864157302100677559570461308342936385887570120230682010112462924722851156620739253178590394709784480364463657880476610707427284550033074836728190608334496636026710995883533777632752106213384599663471554497548452659676102273406518548485556519615687300025542908614529620902194059906496292854925111909752621602113357748992677231236151888593973783416517611029777763318234890259762366929119230885121041865641765336174419958846303196618569896541858930153917536940772674870760987768390312667905714124213598716849318359161375988613705338617401604938202158054296272499245928592113511358571491229728992954124447819436058780113754658096216585030906339053372716769978133240753315675440240847622840607993642328385823222160168501472013835435439172826032953309599982953258998132751797826645991176365871365564256762339116933969617733797093245291359349361895775713532621745105804676850115645263904944898243398914741647330108854604357490482102860024076341348323642039413369991445965955936408953054807152921533694229946689444869776424041994256800979633707237356952451332188188623548038392559213503819474914011296810673649496119316729381652223198670974076369854501109510667216908170273614083672673776839446039105866889830712344462233353519612192829532599475698910558433743241025675734019588619481812358838736811726226982709232784328524437620811731215611118036268775400626453314159356649579010605988183206086775582130503504499133095890781781827528194860843679891280175996401975798333039824001713897810634253068546504883215726194178789878772993202680063134528276702018938987683381979418609979632372100372066081012434042760424086279738412111480971768240327899206761278116415875180535430663343394421435330234066785708170531210710911271800783813495824836677836772636592700896786950585851512280198517897569925680999267479076182579132345468517864737958040767054818466468484963386460022862885749113439104993299501687745787190133471300812411233033020651854766064261829023910197599052220725508081561660917585170913157803246182069577154828653123368610849069127434610080784935956168337482809544092475397761026510054307272658892252736833968964965262056005457651249637875710817548488819896848502303404991918380524265922053424672346833942681347226168784117514009264768882273216551242307739494735305496029171074675594606389358960200381330715351485237710254226842786271417736990905399388563213654739748176098107811744900947458617780980997104281453104669131395290543969134039420918949007978850478483359900522633541470590258116281200753358494244068006493184553048573733817861051214037955323091671920300463422170035555058724653164051109263332912361769861479632255673787842930343385853529379552890231528601275773448237443732494402092515803767041402558222112117451303958400958381454502551189250447978850814825958723044430360165239506036831302108511086562236461832934345260800116937369380197923516960443671041069731868934132534087099082018816726944156188515995645773448451636372684471234539404649115775649697455908718148930987097823485163693296009819278317256660667087513704147790764948949868121386358234264248981925047530331649073436672096224382884659482272955022010701163429435987184728527484006309767279352709460141190423485697000553063042311205376757350356150239603634693634443289455633987630186209622112098742728423470237441328009723185328632201847586710508470264132600619104838593537726691244860469828369737103922324471619260332067353114280244474823834812491410331030840267042617564369059398592663071719503436062671961046365579626310453849409836759915454106302713182646491723699000779779810357180142356507541191190537510792700908098788057284770391893938682612245969996844573715363964329389794320741804768205510478923242822403278837163235470093834187252852167415077400272661250341600873040632237358143273936211241498765029314611332806120616327980590932318578749226915981983449510670199923561376813784644872700485738720586153986980880172597579029094255453632085937715678969253467177360595619242614373663994058904631253663582883840646398921775193882026559451335668802018847134878268735043240502261925324618569471405623500251840991219636465739222714215525728153018193596643045959641753086089775248219272953893891649393303067142604801630872717692966933173751804717239069938818346632949329840578438751428864296196192509925810393860390330713546118305534253563306454433683684922305724423807118775505044427759636519878429711910892037458709602579621570984751827180781715475722102015513733813293896219561865514872387737851345693596980230231132351558122265600703951889627651873979091078278431456102277268738690399977073818126970413438005378321916125487256473985903297313914602763968249956048450628743681049173975037837315885240652119982146166357797824899019279999991457041855814165431655832576946333328183308610363928325292740517487662926597749387671623527641524241316553458653227995762288985954300962066374075513826362427033922809582987828428684486133476447632762579180720347400334640774195736788429694550481751225985045903534871929199765136556388335376345003626440488754755083524254662726895316214399224182562043844234554897439487423826481443396693673856542177911075085697462001319943841336373103210777500570825264998939480934825740087569462495562008284409048612733737372224912929964907693449066640065106549273571392294565468135784946745714053260339618810387887860578718121169214568802798208939755527852878182293816918708903792442425115474798112609356063985387701038371597682735013507179355422285684017382076043168866937422252101035903498047950907782481545634478387412967817182723125471147647225922968174643644247445041667278784690254766249122565524440021180128887640365891483269348684507313608461206379076765542039621260873554148757093405046420779284065935593190446612028932378517132623849325291022573623956167047282341779407380911094050612314356567111950201386304833496453750142943894616487302596795173669972913390280469995465953136123445060952588454123327130734711825683754693210020350546355611545775198687407908874055327350268454317591273849770592014648537439703808452728348765005175959775615328531734488023193914921236298271439894985772157088323576037075773692741565565418954651209276707862407684709559489318031628895948011923677851324323590655811452195664365660325748469851329562170693115396164974088536030352682720771878594006217508711905231321347204743757431010673162320481576474905223247542779183831843027643343964858979537821069861265656827497000096265137512639900635637346343185010347492385668674816057882447878514300120208878085595156685745576752964540819883716704522653935444443689068004333716064262544583098374899311203482734245336196973998030902026775244430610948502635676070837650971172911818665058619945625306166734088641234460090795106094375589054796216376256323437571245605786483345416908230278759155922879401347416785879084340400816595504930781007915087299269848558117917306361121555441851933683676326559769660239571723691600669160581666967583317601488899358420911616188299442603448512655616898008108821057624441287699342094570150083455538587589848458255922423174013962799954551020102398208650140023804488979265830414688560224714894042705981514142276706831312599061553022810211820657395294864621150039679075232984105479619152263896775376231118568989555444474599031733352948061344166261096112364159476844516896075440036866137921812865498394096352201522380527630354604498198268819834312000689806343095127640285853843851080764802524696727952988870864877631481157322283519019777630753003665229461180240298418204633709656412337071721251047497936471481692971796952222952126693634358463580695160411617059605121712616764991162990239850942823791996574036744658633419710060383946129255661328063609086251690821128811670059931062646530034563304735620990359194297878043010431119663799527112957166117233000068502981306692642034524947934095633078830359220606539813171196769281608569399704132875248608641152262138404564055129175413257938591907634679617683112715081997483166540089969470185327534707735020409902294249411838945402280822734237806814766588888855362211765191750794382298123146443837899062906153241227842569598155872202988979769276446489997911834117327142886431661427187111726904895891853618655893347932785932129137209780997476818631643403613983665277431870572992988931290059951312047587595502116301924799086520572357053913614543237211054986146947958445808151685315994474159835705208149330759827357487041493863741878053211211773550563865854624392296979301320154715982092275661244153006257167379266705997996964512746577505159545359648697378952861015386237532152562183191260361431016564441841098186009788045146075790136821076032679637540060726081045113669569976022078061447467581337263612010269243425989886484912648050233715035299325991365711561878837011596823277569003299742506227221551911663092655421791042963683208053465384432477598093939692484797734450723106466871261476824847496220073700854024247564580539671789487660118125330105840457281999661165982221914319106781474380302574130662108758569573289169584572520957204550782996896734610028863556128745744661850090337191622091762224644131145480432213829365105693900078618276824943896858633763365771370429507190075161877742508564026469519737208161201993736783768447276507474311405024304490362675790743899374161924965615173719814778619469356556558630036615885792164224095089046611301085575120570681369595393957134716222524475916344167963331305887271947998658939532279914734118933384538712826676921992033289555516626635824629890496232529301649863261878957531903093340021045183923293092423866657645203722341058784575143977435115541643024159499006640428910280867944377880342291637945309341801804591681205281269232862112427942771386304251478913334000075666713461536173468525431227625666888729183311102446101521135533619249015631706469370807054987018554350247540055121673620422330658578074275746723662350282514014341588184366095462641559917927858232394238568534939781082142529528914866768465870942462378318005227734824410616669334973910973661800795947032000249023346779601957137064092926952265472104737896557177720150827421461024840487582789105179594233282517386029553327473165468073966302951146026323473920629409060855926831823069812038797629743612037595233800861072542027907251727274899935722257908569467155750503020990986848281704972301427517230031381431560303151120228339949056762597393078006264083849510327396829672715271956618238689829420863892099584698332830748762099117820733177576983663062176264590901714402515307161023031995586349228611236877844312502602871109610866019193546356002264949781501188582904333632708898324038993524798725986353836988651791790393627524058579726708790836973343680411857850998688247781722298228055433440823583176399010486640849297326225330439696102555933004085868526856746940562240593790305592413974300000422276420649917547716238606722096010903839298343126710279947341681248345121507947397597562332176367837237000505687381422828179525666739866310479373740220901190153698511068373971125501257042054987525354933259831491034601748775237205213850986402839085771672575629531130782118919392185246521215963579935494556534062630901465532140979662527965957872210521736156497371669580730153582970894954658015022017718828688943151028665411721138897154443400776385495572564395915356009498786929058316761828528944557657448420804763845493276336164606965770477662734326921295122423262251041399298089804766917972926243232586362481408754521449064998363987446587195300577268498974954807714505128072467972315499065905773830909826790431912837935817100418441470010260169929280222269680037436175260833324530181250297152473733095799136438054048950183854961725438435502267830929431587490717855897657843790292672115981612864331753827096208477447470679240775966275569563068537069248320367332709831449063038801445268361151324299586179860029656452797907452661105895621433189196816983955244764652655244666860125443555238193739843332082861292143198483103638622560183880002718816359916862891254714237284365061512948084483687717286600813323982749687140133670042809896967556669315693159309870330346559265636206853961994804227924701909312011467105674417165648167285648188966225910993654523712981298251637658933063848420207058578464447367554842266340398670023950010483980523368790833690170385341170168335592217585172524170908949174569765341347414227301560654765152781137620394167212876067475686117665849683674433702259988715323396801479053054205988136220038260862606057515219484408337331985441678119783395170119571811790868080923949083294105959785308567996389721055782768666291875487672785065227170325593617579486658280909485602366561832354448168427392425232667064282657824906265655428353059920932032241198557766668961452572775560870038056772661703320361179493317109390274918469329112488904616129246693494938309581109576783168991924122672979306556750607885892984152703527099013340919845566175745799657826348302911538175789635395707915809078282624598027819054130637492454075319495127754633289031620704516663439678260982382608377249944693602880303889316805210915749838789227065744801843054310192569333675880360289191384065041831287174966683426025922531678164420687808672542690707151491758853007676547774365663010558646263326499214365028080062063480564454904139955482347656220432403639973262797110265286550527433481578418133698210585650451393615386701430197454849550047568494662605871282809223724659894253169680585877195313551479539619713330364010805899676768609497097361524789643930516543390080868603510965380573431194525259331340400547290296004751650862987446292531382750030987769909015617477074194584789913429778694301789144761144560138687171988030291044460961550227620822308055146847744773736898776604615665879025776588895507014733341396888159030957694361072938108264811302394280038475290581899312205150181324460330069891549152514936227946078042240240839653910422554805852331253166017138770265127068482433004547362042840187983566143401031211692200101937300156117698795615082719774615977902114999745606264366802686687580820344691120979139414292886654747641198939269767118384240383304137563265177537994412989554345931998667145304245440891771110605038161022198535385846629507252869149999844725368744832183867642114170229809042619066348222102993632904548977144925587333171592059999511831129308050665232364499063067288840218666174176907227886377741882815595962479893519936214553293375775978473582872862743986920439240674418344776634168279066717421990527531475493084708453352737166212295905739095177416825737680821957408353992813973472288214932475677007572986136144791261947427579048916710863189564913886769254437955525004610889828562000184734232560237121999609754971426813457564746932754303095086396169763030496533993061872648428530162575469421925303535906227691084204243690233041240858724763311738228579979541121761871027829756316321362688383264016525667472909869186598458761040580698561008969315582100081059036978858971116721864722579454018355995585497322089815743843968108085893177685267725207544105336339106973581377035020965804073795342661929695522484365246530160400084017340985696289563666278152933400786487565528416423946620783594961928903366675799810159999027069949435052786606755859084042699933282843213154506649189801921202073050698422229831961950040847008998248757039889864580344464409188180290904618779330642687151004671729132758646202064373666613598384827404477973402737880705431148860450634767368188032417785291323601640673034075830294060604255833490314088340380182433502820868143810451515211615931705910158584391398595547444956539525188329683926879303061256417905013693975517357105695976113491484846482645980471908887534335410256769495858571778484896293110795843144531220497544973250180090325618348141738911100039728023156675486869198154042492416284219611153000651969224636940889940302432966719526746005602485274451947016515586682865364673203079659857765981321863788055024729973192801906530733723891747432870152841048136344184151932299638490428122101763614660179916309190716623004423479918549577742277704286569113067411170760160658238802714373690365707793082365891245156182225475392807012053002659322492685498515371453578127242388755624697290207248964048454343791846004143876729025024123177946185464095118145065646983833006618551714721471210368668481944969410728890032063164910976689668104113560247181995538827563825289773850843695054835304404797778119676119501506848225903809757917823117387718578254469971644095191483836485018503624871233090777459936272845353659216358595598901530036291757109875477661574368836841275485549533423191932584988423540032413725172564148393153498203272500107672643360451664692980838178209257880897892942889141956098851710027808934052577654708748921653476825398847134494660750637347668543748234530320788847712649478714720909870538800058487146847524293626095219534098453307914016866552039989363958196878211803794016821932246982856056973223708692455831640757398054513114609423648862696875069584689477964501303963140021688456429372994963573028957238748897802722113529765276233312856143954872975467580089409532611403596796217695029286981466799839358896174588023682313729820387298851658700781955031899380252838165842564179637355447172993089494198610153829527845650814175044124241208100183867311418958144326883532047066483160012399310826545066266503830363196982438868295199785434890479818006730902895392568634028480284339790033334501709910285060553515698734614914474194915738215257810082224258102645550648088366407922181700424982999592838886244747397788538402533412494550212739040450684074994595926873592132964659497101991432799183311458836697414049650987682859736339341993574440477599659848152982297136945168314675900071426844578334902062935610806142729208050405830565593402574185415305890873566597374325094548140122419023111943322565038925950763978300945660273772071853603155614935842434191543586471570769516034685630731219378101907696137822298655639900466886319322558982309508294709945657866376512086134541748133222033925188078259555303963992326551000979952730617610305662369776880311862659546021409763244424344038549769137205680608123694486479570950465700563182503774832877122427140213387806884576495552194508211134012906573219119362209346508458303037405877103688903980363768775810950137939839377744976776473471044115010351141110993218110456002630279885210978469938617104558051943724180353875452357725023990987320979695064460720151010246981547968195114316231958220975472803151360407688529907408106395195381334481103262168518363976325734030233800849667205411405561023466247486932873901881967968442848634273061994303450539573338695318082507745396188537636217706185011748078966658579879641483263794928775634998100089747205600890836695663837323357096955753210477520151296877661696280988053700622942012086102596281172880205012918961622725748313199331329942278820894573026811270416107931387634248710003722003824333342901454745341936165196042004520555566701041218637319811273706812103401393554028045686106875597761745908716455805969379860086254653160490669287960986614464095245613010066163755834225626852633209251792387929692193584588655746507095978772613229473380664202296809915492976984995439664644164961049493743523787022268058598104503849200018596262673278279879402849572070559321120183702691500807755453974374044314423664335523186475631546840322733793586026846151345288740573975609549247255703126743375824562399667106312383947117561091177312265232659388249585100536422989545059583613085860964493320357057578272057477353245312691188382210510645159420265264990522845393173204631646864883219634513046924095712655212500218057267878195898022705917117322996347005517437148932015349409145078154713974531578926818946636543415568678342024477549392139798539659912548681387477663609121346896468761146418257178607388986337641403344957811180346592519308696042135943299602822389089331670528077818790238506615382088275862009175127660618508683860685470224262801026707889681559025838736628406628379064641437912650502586781770441726947498338525837778401426293904095372168781594820429062301908310881440543048525163789091259975374513947184687289453856429874843733908086191332811887845786088185876777423637222958880423165777863980883437686553543802751594721484906291312421481633314189714286598355452116356699394063604226465144752486838879851211765720612738219971814820151796488459543308003746821103823418613750496148840545694239277832871123065809355779883081057414910891781427042489117008126648548770506860624348786446739678407071824347170335409683927491089407603392213166552113633033100777887087175154329390171866947073823187530858711762522068905398334737115030711963811815848733220778670198603294853507823562189947402683601263824943314080302635009911581342311236647045780641674007285897326018268264780517053564963156390491954567797643220854741567610495001091915817114732343847936514565787573403457308327186424537831617391362521512829845955775116004422173327157200423387836159897387392141875824465167241653365880676671728898600438897385459393289464471227311667795709813894270442867032841156012501862389998936563992380483494813296292961849459966352970684366344671912425295956774468903563678769155469908140456002657138936679118214649570929975695335289472238094289637690296472418071150960147570151196220032282126852936632653299812027734229032112206924912955549524722750986387071349809884834920724052800572036553573310891040398126775853616980975274763028558528715182452140183653093114405155205828709448233428125555335742004328393221553647559376272678254993162056394781565232940618724762571131916853243308935743791491074813785764517920457116896556573785060675391454858396798083894169177840998855997725703648759932859455751586281609133123519160151628525113872515159767291472128189352703101484516304460039950166749634537579443599508656622768038784565022331852545155715277849307104231634651963617777277879327064788706098561693253916725433367992766596779717728460456585948656355805965233756479217634727347616744330300505085562340002339070734849547577271328085059087705682786878430705089837524871111618602931604882061029253630234911535200950400058717806474469371572034555836639279031851636582638445462809569690262884000944613220714288238675624287734369623414118661922563537037511125097014404199888124465747134874272055800501318665518700112290521006952091375904302977704328873039404338822120178452569263966766590391061719676570754991685888969540782788297449169173600698680154314726048156699019968869984050190543727503832097504112019871188797723430438713811996512952368793754919979999491034771918663415774814706646103194699358413477942524008900173855622266091982418412082029662113164454812887286387500150548876895875437871091295014659761340985424332329785385761701065863750940654949099501797505933449850384530422273153067017805582074720781974678284323280916403779175184125561158267661286795407062993404332582238959402100752197672780546030905265063243375973464741389699742766532840398688635692338334695740133473768517838392168463432693793625056095775275422371892961692255879143023417680142135146748044260138647786736572581169554908028739537588805549508375152356868162300035468833134845665448521477428721902257234077557417501831329298242977152896248613385210707029276003459706234898596564138368770330359606484198548874473666430212582441432677094432984814328604852812529551142096859556510403671353707570781206381694635971799193569956680025346939669666088940152655615736832433252971147426859959939138041460967541473756037250432853376174865973111964589310178723260751191259157012861459609756311410284241503206122236224070094575717870657676336158675312327725163436277558642046776919158407445264306232797691969065027051829642582826430393519501192847626975549520704478016792026159320732543393208934570383217315377389039002099166994348096949371586512265967920362363833135103946273482599522417183815686365299844428407174528302112411497500695417077048308119093935838693788386798807896698336616916668279693587421155391609307894898080133720823978344939891070943125199252474226666411187711485608957475246527832629060738272725149673910506181588010030135866135395800175707381873895113443924105172540194880685507227695963543623361803374644453068371774192528482406199268266827112038721199958535803173783114053973541045203769940685953484179028637278238526370132868084923929616549552194738469554937312338708198598794539348998127077276589968530347631470038359790596859554860952404958337227857555950683964265221689563214372636055190530341362633550704060359886173015899800360143432040973797319334624471805488383820001003771099478084742414087183471551277685412015731938070449582524901917393539147638419435582507976920692880350402225679323406319963028765444182781247188217416626875586655416560432946535126327940664976858278622149524899957348819596455139308133920056968630407393895669255243939365197940185998864912315561265892002926222597569448441248777186302666876110306005151076413456274181387427498082379598599509879267710473116562058874559134421695087542223586183348915789736450587737855842560667954489990225241551848786701734278123108832923550410285855093783675566679198515617988795667244746875582514260672469484987512532197584665119959167833144985789884585417101091537469666967564043213939483206824759943214892016058672456038156377601599059066750663215768421719144325811478962862299033662267007848057589897409007169962922110467961593922801155520030381858742802715842365612550558105904772114989411448004054568024644208751369460061623471171364303462433313620410698494588255581758460464554987600924022200253767057814884975259742517378012383309741280652000146351219548887023543778015132439254275004216421433972177418669705359837710112218371235906082123005393289785687073753003096414339428394022508328072641568181961121923947625703995559354637894291951659012825528556896060946116482990841720211572222383918951433782273218225310296213923842219534107411864495748525765843371679522321686662635808159965730121741539638083215922327013017769390767213537893608031337427677622176518345486379600643945264616059095245336858410174620263412049648577538207628665719310748820158552447602188365437368335488912237356345321126258131024578637422349705208014268391000627570418168793923437569082568694124269925458992794557657263363772945115343602783631730674447701924046721982434508769969651800545708012653338693457991672089858786568880341428637818300404803480508677604804232383778920022373460351751969981117167554063547189204986204920352458343199122584466111683277736755089410719779599892077531140261786834701269854158497068617782924705318487301848004296536423527900031387226925738975450576166927593129273643096911741937695845469431459367406905306579547765987465143942941592973465994793331184899316828338942352556287188882936477533578726181811502407278455713237568829457803980053191447140272124707822792377698445896403308096323292149727823634470286786811428404371784979511579891710906958759492280385258544620358550543062502979791266281933852041589065745337390612671440003683843259280513234735406205546972296187000309864974265182246375037973034388505759983845846729190176459714821613583774009174764484129923291884298551631318071726815148541734675124539805933114001255647680393523364074670589827914513369207597936421969709080120770391854587366004909257115017205621903633740111153522280694194054124475395129056324394305738526252275345533982224962345433795769372243261269008730600742631372027052673149096875362741927076194479735828510416156583630168329919172876740031496585584180109022801089945244504573614525363391771261189842080870522890951190885167520234975194759221447754545106910614504917757931523051773184434101945354739980120372905258447384665052119579404877327581758816702853746191295014404699063481224709170842895098994667234841527068528497371085544405652310901607023343980025548657702485471803394710112639796933429450563803032153616297963504305731111413825834739320066189685662070100365168968891296380835396367333726937608691637897284425258909824080102639993896456112023150314876767364490504636135859556021110926581581426856637623508520538075773672982085774871993243709170189342303679694034310186733797139984237045328055590599272912423343750475034719249519025575272332873856894562272303333861060065332467576734135897163704875051336141534611961679022923759205301394844777002552603443612828439708488218951686669959632446923556812477187510668376085579431236476220738348704046659662063225152886596818717661783605229321346375779443806419918566932614057876077710227514713100717672434101193919881874329517497479113723071002376476341577374269983284932637369134850756766819231377118578437703519713171033457376945958501234398447545134425573881277047077394219755327786855498193739002315459810193085854671544192719622096319240622746888078358610312462405970023692106941233390250948002237308310688272027674614861833569334397196643081820689481803019150570869969000191784755590862442093875462574825625522993930595151699965428450330317483414090943786579460020201121596179456730782600142147301760873649225722094858514743059903633796658034215116206105663748968144526937834047004736618863228154827672166839413462487279900398377523889570935957216809157562078338548821619851209136195818224017363364754080074038121525144986418233593308541623813781964844545715908088735843860984007619749591149493355913226609543233024033581732817926994651450555120532028845844079334081338079220209266107940967624783941458832801366822802776773978838245259145278741885260699831634291158732090789599594350584529551559440270275479896376423098653159182060383849273271548935101144148545917813861967622867339885800548857145355846816979410809573076251257576082494623812518879560344277634085164337637244104745465457630839467436731873463071218439598016234775483367420899505873338894728350368653318946634191724233422969979187698339150508912967469177539602022212804795540525319251567566506498277706307726132664801285396241384448804257979148209585353058804465370175774236441464573931122072375382983593717173832292813589855334698007643337364606268397166174807997544315840805526272663615159580203095911414146730126320585423431262100545808895059669973921770171925868477462972116252869029447728130670704094982535904620814541131839573260474147696503970680060578043515180551071692389872471306353123936366738547954745976863262183681864069612484940163034144936030058460444741587265598350502019531006791651760742017801843854906769446828384245029902441396607869505254236748783713152224173795871779603811219394570015971655027732968064567435325958447264641928851902166676342796925595933057447596717639835027435555880637055919535519743926564566161559539944896432042691328978263152362194671804175758558982438083497967906964677755668327239791557024546628662226141878566095228918737058821740106728300296683409640896389872909303120787636723314389926635702623231380399802901363419194606158607033364707856617201515111654142528684074578609897683136123663372154844136581246140062346235416896206746287136498175135560379486525787257299168426566798054456073076201160445067995195868176726651817361325164192894703204014162366257508857819552879396776558242059027400043113739949949830471732576117986096117016930297849428635645292634744864881099280170707040702125685350524412908332700625735010880378522728857364038728323140666938742315581217432947321176107041596294874018418711153492388778039937809692028044318659087872649784321216394098541605038607228929127700424982983855310071251479627223390829881543406788794886967558323005427399748060875762077758488765662269066615495479302216664343009484355842768394583914139772846382338980458504128832588521321003993593958800757334219202774904673083108139294183130358574385524662180104121841633215072209268365386922432111411381051278398660953792009098882723810798745010863982900256551002931325747171098408936749547170135193096130317873975893595395905672637810259422171493891025352502828344045149613093248361453017495954099436301568481644213019305734147184859045310142802236074317728211313589413251007154843992495977054181936292486931584875930965511055788413871827679585951258417367062457688206203505975797245666159797161722750447797611720481400071032007795989937173091305268995584425865601209759421226463407375729030068935045730790324451714069326871446899822632245399848115722024309251761822941722624539357741755790358531047472532635913179532396382184745871565049266250958375767775343583910770515203459977169287039825797482245871922594510319802207751983330399189724091154113076107595513972698664680493314994845897245467469318295795074691361250836741225777467596429515918151684960585711452526373901753688086236226325222980313810860862066611897794696372897634259918705530289030978735592053691235883436001117813078315365819830087173740935991210465568649536984243676019236594896125076577078082587100127704150439601617548682413344381240219359709056190194419130425019903349736331785539806997351037706409352552052868027260855524309013084695802415145164870532671424062865747612738336293526231987386811490180300119126337810335971049484034994709416503664345496472078714380413844522462396988670046380293222039953867399739950561931013556425854754052396250896744681040518001919273090992094076131167965204916758979279548942624816147082271751554584984759468491730111395093091356726121024596701394967428855073049175027131282503089407530240940886578987657855881162843309643682747892025441589487070098733771033259144605570889938616533349402114931309633252766813505123466791318299713659872192260126625984621858961083292561802227861474026929494259515210372608165217907755939478599744747289174205033342647786916028067814077191782677976507421746651275267639760267104600937973694458196696406565014274530688495862674488854329605964310307937765253017398244711750473879604395508637444588779422718481121133067005397981451239572237814352158990161723470320213768741779263410968844818089727989132892378238159893594539299381949615580189770126176408653624059116576725993144898626596049667581889597594850973530543193526196263145926571931803303905836855168728367457495709664486384797205041387482356747684969956524353296628773680957111222509409633209209502971137138383171407439403344740083966647287955068611335728318688032542967864119047869072335165614167637598868643096635352209474346903938421915163427683261646873095250051482102015150864547420084485881375117658812508696510978635166678400636465888047908007158361754762652993213174649792428720885015822988241661479290534108641043019480661371277991287672715296711721411076385933346179062127334284481377331866068137610930257839443860399481519837295318511833764876804257660889814303406228046420768728709405358308098899731980222455909599797057619632591334008252750390307188082032812724493658488207137228735911750840550507569718910129156280617961840381479624966454334212981862418909584915383680790198983998495008323772671717981894190816941432896820693307469257806318224924759983425375485191289749711276762890154553136171352210984108236946697033896726746911214959520060364117471470520756829656769013280888172576942501624572510554582352230578946740121452553005242149845805576916329134515012309206200717122848760749244987582977341710014866963939342789698059757273284046281754368449190313406251819448273663026504356849671748415999325991980404883856558526553650347584783140405399171421459533487848368227237256624300849759260550662928249403932685133073268947361807565556024055201122303390366712092782943175331409969107901859743895498954171907577780790103283207529792776523141384456284163670698814169531706849194076441301022567754830569745476556195962092394300159952391464789070615739868895540874864974079113261446397722319535942307033932543661078647511383778697934789630412842114487725755911249821975991722767825563577266544074116580691947806135891931912218560176687060026116804646714225478326786176370927987439749110131425328691532089603665269710917581014935827992037422966675517416574400724817663920368800785414070551465405454552691221931880866742703501884348581746693617061883050472482253670705522856755731001312520410626967455292585417694422556956595427049245622297407398774453168779092644086500167061409494395184522365853354558004566329368321807669161902461115608937316425370257231844999965711895268829512651145208466554809794981650467441390219728623991438182493105302402668237441361126124231258940446177946157666264898883443933069037560732111900277049337468451193026014546632543467482377555253840985248386708753549101780143745443170112759081050334085496201246421128950537995131299047563121491695395109133363741633526129779714749251141360692007828019753230634552371507140684128847131750208085689174959622864370256122334298253298324713924387264183831378187950963252397581421450996714665640843235613570632622750301149272735557124208127812700025659149732279993677124889945411571659756488954117689684589770482235390452034402522905366951270477840175789304567516779569515163399832217805408948380864845810761078820845930239668811192654901627461150288021893296001708050114216137552790456183505177164986905535136166808368419634254218178848895420799237031325158011349558577409812568207462024478191786953902667330745723631453958402331288045742909635491187283348383047600972884861468717806974980718368602461655636777702283871533473397537026916532314322928080273507826173974111545613128636951734590847542182572436026216226438435338812013088980499669977083377553633619838611886115204017187521283356454859466888730174857790596318996746580870390786018250779972063527682709267592736427322793800469848103777057774392640263843212474344273252214710396834470097022847034993888023047279132448806717692632148103821346030937843664964683707263979206234202425630734068029554610169459840518114581614455143619289227219506050298084916077756637350869304137883975383684306919321262827223340009579874251588166757598695288327041739743946304492884351485007071304740400602225500602042048347015536294200425369159732585771004701221746604573754086982034306348560762294849953144649413346691243058701217343227348855167772515530061103179776874860922488894686754232812501857181795853240378334962261874824681196028484478313881466665618694601142751730288022050043038074975647575758589161912599942143750116705453574792846238687051771621080464576977655142110821501504632066848844592469284809816738537307176611838545727636066394341552766281080013336833796910723138662992641623710854550464879953491697434626700988503792162963034266335440344749290474780126226205674091127948265751537722007014022081668705181788307093898022916172318933724071833491918314829443101676090980081609285122217729506831747990942672953446074101753559021152550303821010149412214309393299496874050588158239911866316426165068408474706703309600597900454945235818878673967884360722849483622904077339657102271478860886202298528576633989182484361208138066153344909137676291429518685250143885542926083656329527329786805868307647591011688457264504789792824482749823532947352666483241982556580528940475431774056479164563800695185963158864924804160867554923336598423428235745763530030683112687357486630545918059909830187685180967261740308631879612482107719868075301869305572126945301971787578806231013113951522046384408200001168244472785454366755968270830145577309409167290684030712668308492506891743872594636322858749183703282077806988186927471014643545236560376703204909177314612784188414445230006148971228725527706214099032098800005175114166925430314897426738665625292181292260077778040870922163591961422538207818332303300601715201434129115697738759019542322721106153348934159230323463271877815711748083345543868168741522763193488238893524033967224166718332281726786917726904773051732760385606541990843779560754950497527571887988819693036147594284438035250014110265826528353198818657316384417465087876056907802811070292049580008460524650670427609447844644431939722167770000086867849186522364085458068580480872795230097863302064129714630116137472341665006118568041208157106855128184219429914534653132284857346419163487162177692744472144495161793960193317856050542039079229815945254303597616234853330485945597454294439093013210152044920073704364224239911506538090231893609053881446469559578748652256491300467484265705433392088245499742527560674753732986670711062481065671177583683005885485371391337263780551453515121303657912095404691985572470026742623521613700073132440281253869130499421424231987948361659138229971173712606832675868892512580073390933207163927476502035338802428150640304465844755652249473095400102006476474301852576477543763891329503929363258672760553905849481852538021471347765522910493930136526739229812685409594127494003794316407877935951981141518571024080716695752400877318706393092184514052555195425246495607375753978611202800792425710768806782095464049740888362863024445401901945084577857193205142403918738948569767644494346855261354292543050252984908066073550048383603238289226345616787597041583066085371784754467859361209645274173863208899539934899203819218783361358144771785791092950974524788310299665494681239128948511393024875683740295675157481671057363147408282419923478012157356688865139758243118794872256040495075791408466295982849403802410291740343660793049017827148916195648766536823653249590671772417330951575928323567775392649578944363996456003518783459959319425336722055270611370045184961485122122183344873535542451066026341541341938534704439838490142769097268837923982416901340432472141734999495904101163511204701224764526994397653909613000709577126728932093078055346855384376500893536723820763570849081740343147549321421601397824161209207604716529862889875809247412812157671618623043941046159795088529590970411739197732771464283223255622379256635713765489544941259514084409082165350023872741059165262482370216828245873091778476657648380705634993464661956963488813084530838326691686703252356893218830749681208556577535268440907573067728224762043565313994956042281378678933203201821523710339744885919616489069110132038106763831124376858242439649744685118658927086597360466556742912030832478915436324582733173095654573630774171234793076216153744281816032865301391942512865575029260864029608900631980085963790154613000849170339685442465278249176697352315853147472011094159516228961666988376131582423563287070438246270905696625167520534022976844374207332241245386563563453104356745535279326342188689886879327549994908931326327666127819288260999278449413932609441164086633383835280021889834681968958031560126074110499005066180035190049945722592105753671001139728537975319091206949951961403811781734971137279347022300241385354009537126279086860249067915043488248959480628519755903163284540852373555979925674423719075740083972425119212399391664920262882816617654748836155612771798422037523070764740308052619913067900794797206784028985432217403049716447328097975981510019807764641168033659372425023816366290822723170129192088020381694607651189286265725342774906217622704954842130957307582569005173475388871777014944241196042451602896318634848168281156781295444231229611930165863783386632743713544353380091855793010197160562918557506420185638453813174645233431136015372384645951884536755997927605164732501226638455894035477011907244169687512809602513274488719790848822310160514078360725153523047015023057967324129365173335814358735078267092446641992287904015632922327152941732177496169933080417578755329637393586991240142192186038547895881645659900312421943816782405645879418217956803243612136713420116482522475411835256404851604067235396335628728552887250077200046271834513587181890807617422558537508943049347254262118722388033462033063415021219646932976359998029934475402683970451765780161097219883448938714657639097972878272145207872446885455901317809818115890215702629568889870437624591996822023040119654020155654350306939572976336795393189439557647471750880036004408719799643815120438425171254581659645388153160441134992925350586772247422849559515080586878269424072802250008341115605581159820619444776195101347622550653930245901149035000522448383967152077622274375719522824362391698160671449977342454451174728934911710470441356807657917713905207005806538115138614894814129802892971358325221177202339002806712065012045067760269531812672457319814596825988568854657427946057786720383016213339489599781312142961395174623602773510375364434975253976125304435900935132864472196882700028706994356865889833806146484392692239024119161438407822110794046474554908510769568350838735419742429643464758997331432741264987401946943809601600678460876016468831095588557342296411329343300681222714809170117848199942402053210552721147851249692411292251510199138868143041479420398872907152147143015279290647560585135471869798383991095642284460175915737960322721379196309293773643960794603005589309784040253161562975540803012393468250910288087563996725391108119196229632059402094077214943660084949761491461989244532802203700301108501732668047877902042013875531217506204174774039472853203941563322514921381224179822845918839355162821725834082135790957317368591220479839285439206849215193888926572278725246909496244678593754201529836255543640456544263606377551111193034952295686041056201897834953202587995196729814995432610206241793425674070690099572071570476781436690439089337270876176249984798282634630913439463725278028355772258212781867233534710189934733722017890459309538301395586802494127256044480620950053737536270529781540095307812792747598799432447277427242502443704550860660094694235127082240782023851790200993402703749679512464703893430535158713817138920593160396654464912775899256485959386261786581642980715184737435385893011059623176761242292049516175290033887627843805545147707993227343553264357310821378048750224005731143963917120236370716756242780174736085456955189959557228846073146975919106871826939661405634960153364648609266202521805285894897037055577595985101610955192270291598050772665108578708376857174084840981168605276763528231747256747622967629682091633066809944702316715223086458946765950486447392716631516083111302204298136190069299573149087846758011672744745654286243929918877991897174966300189105878115876749411549413616523480110491511582885466823302804951990572460739248290398514324089953881996405781606532971424702088195312078057964126631151998665234369771405990788782257220782714459180750257982039180558123143611975691898950563717820908866186150815542030487596660519207970589417765834633471496030370191184471690557694177540720119929546415396723443307390434382360605596973703151907996695922448040472409432274945015529319735565478348600147516992992620882756629904413129200478441200901599977741727720970487412731046609296507450684137288703748939604079146702414912270378790355204825011644175233253945083949913397813060671470460421037313108024625017294144524526222890699740090804518225552992591371203691189454021692828172870730033722909995633348748215946283151713972197226473209191061274671249606122897858996203829192058077955966740797781324370292467943676567159085293105345895882895164901087440531014420291956075603415211480035081151674139101784836655242776309592966642121844485248236146089126682411845241938329383302866801471798870612376893727286260835957190743636139348602661572186112118018496515325330398800197012794653403318581460218669968006835348596698958965076368195233801031490981360186798155988636819787369443576016503858792679760411039803745350566534083631433738888046158478088305931988208095029257258646671275331921726898647680325211685960079824167008578413445463710547052012351402572224718317425409842327959945234218995254083055307404310374542508051347207276344418601666224072410004359301586684845712767470974220729112325656324627340794881022286027546912879234751925004368963215797490837951026027072292595338769137289344131420081207385767799263782407122247161597438973073453519825694705512932262610188749459666168194716420311787746096640276712221501535312557924862863504758774702184093692252370087917246861323880113700074970032987513252553176282548687190957770038529977563798219249665592268301330686325058554071438850474453595917749506965555300297492904588417822366678695242237790022984511735197234503844932871441537671037264788387698516015470318847954264525744301160326233953623151625157528226974907093794403593833747901478021299066099445382067917464337503079020675395185154900156323614238369458936591502869243799466035124877059569624310965743440527194254213268046509063270691180196861684661246167939118437208085830699041854605175983853119075870336039607390414790000292064484256878179686716902527133503343460389891215120531977235904877599426804222647641543562816223588224987499564231034609768424920861263063214308941399477286404939305874497316976910916156132823863383298109383248881498194935345942903029170959401132673702951167789443448561491266371456636495016944494288722069786023978956264583900638951721700844918535923023338451208062568893560997215196685680156545075218127584241910263409239321719542223493824012894008044743222454971256912275934495597215539283652586148287495800423465891437271809896058268547509091505622317514841933036040290589622081610632615187386010278690687463358651446326052584475230350667226066553227069535811451395963065824493552962802840001485534937097189007412650225478375978045233346954459149633962538701014950993013753521532843730748016402305400909989758928472200227396949277004338839409505657296429267164081182662750670741532361803263397133107415551527579401384999807556691323006332182460018295745881652968026991614881438790448910640733914455688236000863846075209656534344174168219657818880697215312053721630928866622520761874899680905100212611674275677006240165751530714778075039948133518159711078732692225997122587556774747827879676564124674626238357459446753616967151183280031296433108121031030175901862296209462072363638893909375506928197082191021084797403094781291483535223018815122938462051302499505645808296158342618324878065321657424462811193101334537412797019895485052252725477421109181390267293320113214369651715151790345297876641527730425828106249544772550795725412788807912840472092508120545216630383599590680598449634821450177578097216337032657915301207497174114570433766363053819028106758454495889604962125547389819799531773481105835295258013623160513782047736213213652884601466445832343500277314393936566778885745409915423553833252910108855189107345435287363248984901041389403060690521319107039234370662448502520510586928526824229597172522875785245866060766728192836330183588995132689673482184909213700508500670537054301910822623020773102552877810171288518898151057354372908651152302793593161349067688881943593563295039046576455637105717834923477124070137158093387754463850526674657014933330547007182292769799873291124633916385686756054970329925823350332414722260199182775852253678297045413244066991631901447773700569937632565843693600554570492734613924976038686501078141424862419393718316443567183651200665423352577886345060152869361306081065024189643501547855517094023398141477152526248718120679124591184982209142952555282051454451893865612704938936843065947361278734330972556934083114948416626369501744162360103220569074652761949748107374906170447443660933730830005020211501422122153229132759968362245095980470962457429870521995987710886634353617636631069707789162720959658222081305908020151478144590994962718929258917654113279139887911474773232993042697408569383903362707788169199527052114879096864046386830557605038736527062445078411162335832534343511368878482936498166383354064757764968945035773474446222454705171079101637966901444876203635240303567061618750162769717993975857156694572255611155559370432303103000764573127772284544248168866745125412337539867798165208614550620755409774836226683109516245173371775386211161702312768466358018154001943234028199306017641426201884890547816555318535303808180790219195075219953463943801867022674708720760338433916504508214877989151044429690799749030014346608950839545838709149686649745942767648573302134354055014048711872094106817307496089127543483936798316205003295184624812635557398097227293833993681978430957726813380397348557325714616035821591774358672113441406905370149764254128653446786628142857842782727748865028133544297693669636872155848155345258333356391725422677503996444519097193525257880061661393864143589565203038497018522393045352080182330567038080651278725608655616275952625425423685207241059932878229820257787115516436326490173480681717191870266040573625200420845573650023083960502549570189309224606053176804415855378570197187727960224702129626654539114548128241286742561537146068089387859275770430326022514735015760791401668881146887809959049013143746867629961667932304078932780000098895011092352721912932935757407856814809568821151332651176504400113452785494970392978404722868321624837903789855739705082601927200590952744508497991159889568006597649624552562854196860677330671606363972261399959682935920464942858700053336300517624663197170188674151143269302783923034498533122578338029486642956957005445316333436985336074177518689833366411360280392302425138684211697110180576519980312833318753303779013186360270713008588365664947464535905783607913091817844213968425793899802683667438696220187804976038148975028700409860242640173982007485482715914703408820951636997551100615852224163325907281894791714066522796476718126864545107552719002538781642467026598495973290009047199002108083003608437511140047921140798944746061277560525224048047378540751659416224359605831118162067973297043728044010328613768866990964081300983149989505739682293251078875753443792344837854757775349953748267476978667492001712603141841980613018271911576948893499713901947108397438708429375230737006208127927672586268181503499827624796206595624597551783377880526138534751546833269915032285942490826791873678141239459677431885988028992799644896433736621490850880624343304279524648402654530382978615200753405206799441391554342217398742507946870085699592221728175296937335489578472623793276886930539248758405991816996463362661108851566215993407688836585196875128340238656198563850141374992607313016466530743038043463859569780433469655588957807647890146945232523853391233781018209674821058253725481129506109702120518951265628481903926712361680583214978931817220569502894777477349128210555904798939409629780112083393933716095143144703902829553288754859230789161879419436054854728072111444037216669543175549090551759151549664974100302558657019614921776800718024493133685117611224208877840904315789371840397625560352993959294125425436509091407201265127593277315813180674445958682414394073568709468377886187784141110311931045077790999034009918079486099861045212307361727662766169338052091769763921304335583479826346938385203644190030771092474551280135300561390146776588771967174372958917407864288309364013394235217622815321754320736801646888971687061332421729631371847472035501532715159846128960970615220076652856380937545093311533160193361665736039178949848159035216793033143643401625195110545378805807565083908025426405240578124182218661187612147206188991138522185164767250610707115116062302094384872222367002098127569504433276396587550259582254360553558726937471143993475403450959819231395684561033186317161571953983656949120821838978827082994637431520082741369873793547255027340067395774389774593545283955348981735023376948368192085373718462021516008000882609169777807012274883763358068223056055448801558377311990577637861315501047834155585256553451687361839934510658094624635557384145654439164264181498476899324998624933158797981019470557019473454148634549069069528428890958170932679794299800902142752003804231766799873017453396085975879846663664862966099440085471567232412814952345521793450981815696576674183584129797682924698918806547196172643993442428098150831186590064249290664533849218492272388909271214705816472518922407038256473358678519020642855313178129417189995925715318710402006102657913075504282515028861339933705863523951437143724405597588155611971030578395668340618233433129805452188379908669316751538754286367328541650794939934837994757487863085719325934422228138704904003484416707175088399406156248933816642611798461106497317303242939910313487150692960527480965464174713401939431213368970134358631412176744103557318542742245705395585723749824308303019315579347749566793605359611888766489546648650454078178160253819759618154212434107535693199108173715694802877020880996592255184664694435463831055551173289642745004942143225457480017023676884339791240947431797909839264703868740462216730244922399084437404980382950775362396320830868339469740759357444393456255314608726455415934883350233461579807150424190261140935967778328596768308212439413305438773663462157462891081559321881457723861438259842520271788560293896703880364142747756470987463070463328918129101404546813699582918698695163435413803188967744577584777198780173834349993380963277169272021535981958896704642976296477130119592154212137982894143590186194325943779181223980608485577053226064824044375038738952042457313845904902630100084189066170635482110030045799894889386309914107825719161539527161527525994558746745724538353809335428393914252340279178755624025362604592953081810050367686243540284433909603848136440282226445668430372982019191376559254565773081508588647992661573886114344626566207936866717121080911200012397991432036953202532144931255224093103228025153948038518088449881958067918002086635633468682129463828804227301061250541250774743646107899715469954347320719729100840115655673439809545414664728273495514109071965863129204275578532299529641233763796773864051375179001253343490559322196509668833844100524790322213743818427567430366091497942466987949587585860914153899028966657337955552851456308850437242309936316066292762896166442823948232970135253800182773293090807958300678028304033983494784768518600464622518654261587091666072775449981766805629947870993768955082151282493161666857173554358374220596712601257077271313760340243237545519800629916062518232533246935212279327618303295132502990426431618389554133157039436006178188976750026903099637179600568891129433339789652232130660385413946744840284838445645967379004636070543054712670053843002598129425941609193930112359138896827284541854945383719875034049671364026154255367089315375798101070910943921439805077169814415226289953071447694103963693703825733192976585968283150136643905093350861153176258278027271869296201367231091973387123432835883426309975382561057664887243614266890033489468116693423086878949014140250208935011180160809687255469774684962931956847717440674059372063332693319859648943310075504137877536727160170293960267217021056304293391321786975705509566333252762055741118342975760079669957793151820186016670792656140751063946075737025884585306680887941039136196137821341988939787113107323234300112615562996084950769567811705755483724388418841934494801549376258028047583298905185237457588305911345575056664353611871148410103923886136259269984284348715838269916738172684516859621472357422773986556697358163167219268949505651847271214084492526016977147314715120562633339308719151000748249030718792487811032995208896481494733859566961485237518643548607262194693891645468033268659481897759691355972552548904865404735317755897109117309223485247761606750295386405626139385240580436943126300122586088777457430999138215921226648306629265284120985566283418623564164441378687410216446031515723440221104874601882562661502199462403517752182796570726634364629489611199594368122729147102454740472085841635613684314243868378332930221724130722730783227081615271068041074729807586779523047639516149523066838440017972360965536644510542650333336153588491759894347804348994422492463528049869559737658185583400039788085514177993168018772866241386852516486932885139415066612663573239642879298159430925288692749955764307057873888432820894795546770440972831155292754823367590637935113693105856653875813131294616893140959935656660208979136628391556282100324439739523817269779167865513983465014609720703957623650040856468775136932179826206742949730322929927428609563225980680605602761458022689754151181525927008232670440808420311617302694906787851062052890806808820156974675166297959299212298233192316685321353123657767716235111056401753418036607955481754439551460397323806261226343669024949910674152312357409740697322677743115849790445062775850998608510950273666578958405602188650610317486568090406662489796819104053948091125292385838573153294782028921940158894797991187815208020968727504738345681007459102248400442154548668649784109054307350029391717088692286440146148341466108533458127797905348395346150311710786370938158533914625414540555757726852514469669618848187471240758228631595689033387556480923628939498006670374117891272170533696481186865563211951499090587782703093344798559929239056645592372948392468275774097784817919453207050380361335280992786989496126758086803034028672133063579521898168492932734160862950265997149814631182937983388526806070324601675382078606397513646657803808594595024195699642678133741488087679030952294218140559932253338165343431229524505354170048158642949084700016330476712587248328569324439176677954428697447302360188932205297256865426440347022843896248516211089264478871184117955685147676289458459871600408973424343487245416586102091936254453241534599871176964588246049571014713383676756891856204006803858592032281326599447405017476062791224950601374463139130860357719294908209807265265631046260604144188323910371942564240265064447979880284269131522349508954652295517775577899140793402939263604796414725484490230736148241066561850613940199089076165541225217274443957166161557481741749733858475674472191864773882857578418086735223741999330020727567275616500779076081313538695238773006947410691748628943610238255542501204328425424679202438390028724818010166321792110851815931027268919430511872146393651766700380715703115237145469757625241667938408068010829615458432930296736436351627434862587363801326320174645759139112614401734669074715918519839711589387026425583534755808400687813083120566450756053163937510388867922595382243068083346560436258779501790966142310015085584597699539175494705845979558163911264821185659885296866686186548318139382993454715142493343783848378150445804968889655322818249083016061040021178133135466632317553154217958788509718986664366170242861338155409052803147114286417100424502766510693601680120665536991610747473101776691768169295260657309572633780242028192116320301818825436914337101882051101153978858065527890360772633438280471270654487360840597651252055793918547038340331705302207991419279437356189174899587444437502767995757207858206015414999429068167022781308108587434769337048941079718799514570712824617656848760090708088017775260225233991520493419609725639165741958595647238503923796014301237853894762770433049865647435253701732362833146185282927313372865282139537907390212862541152070753892962556166853970407535089893673154608192290678956883905390942910305679842579740627634441734571794355022898590203337624669995505326451274385975908129341433145451439154836756929918675361580424396992940415582197922224519946279437922542209363275211510491132038874437947493329385990773063034704848908111964665117451334670131952187099651917142786600027035787038541698677362486218668470043405567160967143563431528643309477256566089070413485426726803620635358560026455405968651546994672791710665574885765696921040284028680312123637915790452594099421558658106939479333403688277102074474395881630530813695162720798492457586386126671173388856330619322864863986974956204622679804477402996081479372917416567368041393841646371357259066915997664441353608966877203692300395536899476398954209404811610555032407737325593934594231227151074137686289141034775999463268779120826749819571542411737950946430066564740437152377981628135056606698884985458781605760261119291282926967705064499551840933877585670519533553393181892328398935026859511530157367892554480188051317159963052696293509936099852756936419704808283434466321965231704523311272625018736204557119710902856974185159285815435035674862551735666554190536806249670342390780292097427812974298118164323920329462846680575237349364183065303204897757180017318064041624924243604400896998871016164643760740804097469434664109590873660235016008125048696900050161062249617804973991644189543340283855275462663593656262364812070891856794542666904468309337966977809066377392605144011288204825269553459598947419955947007261658790563664617803860121320010843090373511193964473070403392048685062551063156757543560623206220424465574506485635578917085455276675268432385239530186965517029516843486690600074374617706561966696669534093938490114232148513934811506399737902347629498333499329389942471053795647284892425564249520626534761515396426456836950716930094560795293353979045597757133225865446156122668917287398978331184516152671496945412539429417045723388227096734600335394052589863296547603883158727123545254793711292846783460058297164971354686132356388940215665433103426939408510470033711036941317222963426757906294446502795004599005608269770466860741855532805270793562475057217012220202398256973167640413404050883442146096946243640278897718935306549360977520107136835134205676298824451641082516602527087477369766888216861660232278105642488263833024087658424698988613028004477084089348338329938227893087203944685190556737074098660923090423294561434114127909421734777430249306728613221348243678345269699937715618458372165004461627652708228978581097760544732952722240802358482606357257750254736033611159265144925877177464369734508036391216812057449179352526169455558724071695688193598711519455219745143884381733586600855176031742571141473175885643720816894464634734148460653833991011283568067154677590055463932361150988584065743134381073934475452517295932164153785605884647416521198883689146078750688257872847008803283186017296552563577037068782912627035890535367926322721622028020718592529848784784636819629261608267373054542021742748358833146642728158103003864819031729784998727170653019110265765050296203447725984364669700664512437540399263977383642066637734871969057397386469807079027571323314861991248215029678960693854189780081444054890941789222047970057075132794128248799192412816732994257420051110769542823558248338886962330553935298477054607656830470655280859302870104916738437113794020473874534600620757799489208554639204209511806178874422796599839654561449328488099820796839229705486734188343124308623115948138439425373222937615145754401426087022816710493117166944804166730867925814559678422388415135588106247138377241060195556388961352322596621798850016701828744416708971980567003128818762567834188007230504248012953835006361497198883026913518855365862997074530724474546577284959718130430827021451881604989251755192120977877060692597479658806634284598539229715960252949501358190153736760134898699077740569914866915861794635884478712736371293099766841941632629722334900042459186951406277506322268502818368319106613791574899981689786854720269013885674039829100097333296160938560438567040735811116707118364044973082428721964415463457560582246670335688560977214778269819118683525500680401559587005674474518363130302012786495060233625838394654276625435773597056020144226922474388074994469002450608837212525808047188639759062231018157238084669814434866515686168964332278740421093478241377860562052872733367126302790473495775049971994190086317024227603755471493787258338771050999565958545666931210718711649524947412083905377483684276846413731959543261117069662149243897579000347375882223800609274615947241193276279342789654643903987874006122192356803940577915349454918410906461234142206647662767708808702122840983183900727963924516163372943174131061217041968644865464608874686457005828355177537109574375564803973600973523906815672074931412875865205645880340898531574795186881175750090756629918249246249431678544517954154726076512160170900632217309908073260259096216206557266115511162437828717946817039153247210810498685457663690383831133868597102443933041684646390912486341273064874622394707461058560833007375814203141825547589038127818102403650944629871565347321471029881621374176703410687457428441515038216598334245268193065933217230744765411222338434041503611908602458700296587647939321792313644259683922734780557595962880759939876473294148900287934219614042007525809087736403586440238694280226076847323115817648383592684155743852365757857503093797320705115303641320997002552543586603839208955112636529322522484315702732347050606872878583506450444146439017759137253135537984752365781096563359755225430489204334999461327624814082714591339581362457097998893626048314130365563417010677274263286013940365386400031890275902541050212533985944361087166355233940057657601386683067796998160186996467349550343325498263412794822389023423732784381784528956748883654952197089633378925576774958013984565728971899631965332523235681641764487163463921826851107697730546459406441101444107899757495681547305185302279957591710928897753953495676372189104283205849279300979876900310798743199143074739926572985394475061845171226998277933929320150297517537472309109412061111821611777489805780938481404215044563388172755495950330747692537451098247104876977858353249918534025793734341040171897166055743445686758153486090119786634233950529091282422724454999511867278585299567329541509654227143447635044279442009791016492861838652200031457054657024344618530377733096934385980112367511739187325754036768459041607631873950671710547854529726443170228382742793816858034454748160902970038308704420162963306713359979660387145924358773651073517287301596586035357548371699328634642112057640058313097665103697907249769230042837271587787500579788505888332789375061212176622351283458575601604639505940814921665346175659158231910292725470749688786338790913694671107613092460934750800249310369548633710251845386900419829977192602247607190287143314685609098744112749673035117429979900310942408118609113834448821569843964812686178331631791363178170482191901393333175916822805570668893868692722152990996456801002445634179373893461422849559881080029734318642730578816290789750217523947906735415766799710294435053015759294743436370429579577267688507162717714301800676223964001025297556908699403797530253723234686593871569770388027595083046879826718125091929841849516791009074866680881159298452500486033839275483873382775771274225408589696880379107680723834257248484721082804006672775924307942060061985156869459054611229095719468014429854097094726313163497372493790400795374083411463839558468830837096723236420144247622970566432270486733565437714283606196617984419735309530909959821117965931900094343956130167069861404476994517027926452102408914420484217149878727556546704785971116179138546046908480754014877261408604894494877424757185797584076118184539402290784860170852391111813344586154789334428070717377849587868568971774352648041916986489973775650327799884768681604285293160949747167347726521501532563226672655865398241062534118491821273511149659307710771204444007032952391227772091613217165331818641020758804688962594314918400371038246146754163035352694500782742642314408069654840895366797788544556467178021353025605419190591931311539109823667664323128017222765782986243966152161429536467212654539197714310475113872309140693098521889833315104091169487921817823323292039770525732529484079749963160139949370484947743954128373908875282595800993033214055504265745434672741787652841208454467073005964525765647107280128035196030312871409802044172393039530028443959073084568874153411867111330780361135439861014805877415732017494321839799692080814992689417394607357252663652030676757277399524118049426533373523854118481953023282130019809336938972008223138765251892012163966845003053661389026028262297204871731984354582267262019419613880323503267177548900734361076082238068484119908271065327213588330754135114955481920436675857644019920740705060798554163399262521226856552102023669811165793353828055473837987500105510129747876746240751283964444105439257188569770344413814361563487859158156797263696156008039038773004772876552022578607358746395166084312153348840497801791209871291735990680620295147399297359584811332513456128074700110058277236911968535165734398092203977104534397969574544001918441927142701798187429724584417216794996148973923663845130798184604811394323008970368277391831468741774392435927954940206239651321843526306777401644980932994792157421642191380240448459788696141410238351095813034226507836462566212968460135718476418069860059425473482887113617219131677176545102651096856244827487860578783430939475086649588495162356670566570511442921786739030478910473350967673710963846340337811682427567604357033208577310377515203855820347819195857378243132301935235724563496700512284526331740889204274827802741813287549691715966576898887606371377889225851925469552177180872458892137345977209255599261869895937799277012585632386137959174104932803712477648535904101048574963117204547822572721856307575614057111363585310887922523420979141270500447393088267677252023945261035647513568928673695489168671120292018971732198355991294843230908528575861750895572298476248309034033442132410491124163371967474581859010553401884424297672083451820067941102279089981949286594073028542184311902777610829485788340817676994908334747423891588699066159805737967653190426196851575696100628130882271158822885425638627108225235281641991214553620351877421779917989581400915403149171465347279036882164524617346535000769465212866195652932225810758691379458708264483033676317636813746172229739034439419309270975928689463719920244617776389206422471978914761668961447217888568547194612511689196157259523596832615262755765991518359081054949146403754268084548459535426438116422878444919778967570275624226330710933440830426016305040832450901033047087198652567418067807927798178956575903111901123993823276026935680188085372890484505179828573992038689850403538823971284381535106627137503617836431393505993353560119759853194165075233069622448322824495445143044715447823356517491977232145059156593523047798211970961200415371826364766006045076322717905132799073039651700990678599522125833716823021879998542218209709150165563371980966393977083042323200284731657174870667573784266350922648916148772596377588887815949279573223719479534654141643626416943209862636534001794185931610539882060127706403010804950805746965291403162323316049689969418929761271036347497931989115435434766154433359489570753638681353954275266195681452727818149695458290314183249775177502095820769103992419537143066378345453479407618534240171496371213278482973967813354137967482091535673291082604329853783033023925413075855472676229247172641756493885932386401727221999570141460041826715777846968155663364567896095177791219224259642236498668111296978048252609051166096238837179296573268174629367311190955109159284944283875849298604347168946479972423069481056661441275041278967144385477209623372769321667459720841844899348697100857715129520787912404806910056841360844487809796290542545414971513432590545672251060303576451464540012623777336437703317834191218163739058628657427928245008067102610833813173761090985262769240466589913718433281608424282311185816649902478462622843364895058547019009132399920687895606081186165713957104923469371318391276382419644757537202697618327694042335945810996712951243293172283074551650440393703390862165361347274348913467366816459907912973076913310280858812966048510705320490601331550300288093820106534796846489473808434439401127378764300533415234323663213675592563258714442944135882077860652037998332770452233044346549976269035539077491925191982336294124336765416183219222088957581598737090382489339580356294774330683970013179400906585992236828927032924051129625992438647277031245872999485230848068122608178319451000670245122882334982643362280646197356403805769902243892820753495143208807718979766440485014388017222352533503558808835300014752832007321842800017964551877488076409845944087423915310426964735740392983657738605997805167664242551290284851294538524615223219663528807822048817990430795422295913126139351937470960952800084609124970887708630281584867548631165103746929052184391510819320966067180917494737977310680231156940717492090376278236300829405806413203065632507053911066263396765776281103204317673628240760274352439515901745965982977418783993370345605914061732878229577034138107231264522650804393416375622806277735993257726801122548801698251986637342338068924525001259025092342229715153885817495451501791133704341695155387224489374475933331017255745694887650560040666612893029383162383949446122913433357723217812363298208433753464596330080862404889873561568238421825008415192181452540489158727081446377822028684381345447841673243834655674460792715584176511115031088275508775091788444694834049950239283485752337685781561676957031785841013113470223021041187036846306374586583451608438435312846463302312372771456025973692737720338712769652535529039360997215416601801686677347280019067644193393675180410555516349658665856961478383475356649126306131852294135974248064683385632296409984171347890318602356731790580906837730277378808666574155282682638031577797675055999078052006359250441311854269927332710768454092105281426111139723198982878332085250246926155858008869035128166105422577748539150748776010054218280236646570862657072034501720069316404139276568554078147182679351070098578678603633011124172904842580220367926261259165930433061573675015638629558924265024646580618111010665102411464963214707624965260801642594152152908077691065736118371418289270975321949062618544474460135160044308664230412634118700653119932494615969101408784731425415767094658210908762936318823960549159402565235823311578577574347569461279059186771638690838116013510898189454428319587809496730373771256036036093084057160467130277270774084998635840654974300511186806514981078572132395208377658261433481196739803045585393691015005744101509655324918721824694854631481827413619308822379816607029459976718242767173854541051907221529957543403436022918990190978795026147799277531551868755619769521792354827915895473885211842199782046209519809979112956016253786072432505598937726782767803557659325565147307251354652065685492191622073789209802195673815670142293325314648779509461612371904785333919728481168744125610581881770135905871063810494924098603278352613730045516032768592387826065744797833957058272591332815433715481999366289185258270354434941764423277113070765725279181081249358064078837297779075386928410219516169241953681178233337656814551638859419756006291125304498811939824774439223948258048818367716765314289427201026448635816138170683492662799445924991983635061329280797556548479883510219051045803871006803117232890991221796992044374945755596866082763948249052273591704999081559174102444967807361485639759272105485567381369952146562130964397856053824826539788470340269677399790367726242487684291381948687247428261588234218961477251028301348639996654161732183724254324951453343895167047780133301841359640661185177016502117113312584482212692035313011219667642709910297946503934634155250516410118800965693896791854627197929427369912178496264174717419268196384476929186456982699961646946067661131931661744940523111476997694386056033727832727126423191293673232950981721507653137136392912646085915979268875118006514453167010424298352441009838919787043100769270466795402992230941370166465231374914380080882769883315908348228226640773199542626475616796120693880803588531420831667293036363322814483540011937631157270169794668033437844119282120808105938528189541191911336967653426145016197844909180491214375833410087928572448826653489376923788897217290585908759893463856639662468065948922589945688802331216243158553940002226283291541837786088986788634575872651634979922841499140554759997016691935644382420002023929154369151264379807705092164712905775834476144440195891775940264264592643217487931392977400182922456782725270259709468370347486817732819152595648863179952817016881687115116715528452364592790825392061861274820584881871407757617115436936387339300904614190365365168535426775511600287610315719225226386586936050907064308010869559861220634861390173437422280079284768468807438621491792700467145119695940904014740571932933130168303483807349417925074209753183182034030443324915448020762199153341531473120773491132212904926902168101047116027824473795961655273559656557387421132712761611265569053291710466549848482581863782832995497669697924425427855856845104722279129919455927478458370402675564061740050646965112331634509877827626228256126571736637168276916812746295143213844579131394227191181903528187890605266998555362583429396549626149730261775094036980862870787924684875612384082240711313152950823109984842822278183366623528374298678587702149932418865422888791087733004239096322496639587513455331085886101060525866777506176590611933900944052235314423714059767514945465459339360341450969101085362660137604215904297831106161043881161792921003880944578944485687267621857011571229308741563939255179771417375552744993770330150809505019433121845962912152330444672763802741826350984467450500226566949865290411993795844270413803287820242095852680438637217504398239116107998258379072189864837782735161967385095783965151313187246616748460946540554838051041571458475963347968354391811161731680958018382615746672935581732220785621456167780617043190845129988252842598664315172451277229377053979855337950159245140350402336023074375315913560147576982844661490888985768904915051218905137726920755437346722858075259288930504431217928302958614199403258920951632623230193277004695809913164345524917863701337492371516648570459114823449659808744501989058471715554364448115221958318825156577339103170290706112487339041422910406416647322739023763884503694659512585239332504443644863432980984804230756330464435576139424691799865175802843403722635096740913207741868707434632901536559475730394086728929127495532132352253325389925349311042338070646693731834763713902216103447768837946594327583775005549487876502048173535991838136144101106563644619033370139692706295979279758533154892876101980235120389503208222239725923202528808716156910299903269283845298766913500647276561275670573353181288413710436906150753616345317323893870145914322682282604914149921322728693772688796329790765277443651080796662753344407161835997707372795785957159167286600762333109667012801499700105546881416167158028553428092284949941066131467640791402818116670895185077382522728235852362901300226558292411129944787445940582965501617666446690263568162621730844455623220203246377831392295124958206762393294887007997235346333409021875033613396057263830636710695343764415670451153207094814022851364082338196855797761343814904433604225440926887656954077540764646848177927865699235454282517859078946695268911128154548508602460456249855457805079597493148668669785404190350076819794680894575936856618776116774555688929905980720415247784438338736865762741144752510002105197980994604760572230129419596799437525663964910369123324966400588520795031891980734928308906313290115808667805501794151918075837411974572738004751000439692193688400614174883561246430202138411184768722177362923575139623093966053883041792421853486529121464050466075216426649186513023766661873941231780430272963631192561401642571271058252474628893815359700666352650385509979014687080757249893271658503176289790580547282329722735449705834841720937697837003822360034674473788836487513296283627337799617957789396889102338368244342834760457246505314876381043397653722397468201283863493128494236078348958512271964844448642521256697876941642328801337880640376639873356480200775932038937031401081295987003281820064506985714354814273888832440465771137265946802626604322704091393955744005693779733753490725563992498458560895802946577218920328075384907496755759625678829972375806899941533511417535864610260367263549294790345235745653342644161021487602911220357333554385534104735643879853606874579750823973107479401681065854341712980866677235973334539633973020518677180776915246757229137772826852926199025110722538050900278707354759404794724572324595030318769633448956867022816237729563086215734488551511467242208109384133047857054542980135267913632000680986005723474200420956624028964754188344367825010099157809003827360283859670698290801657080314188563067658710174832548675016941698556679769729521488800840988420514854241323481151662947114062641784991146772263377615469480992064016368766997522368254984495247741999553575674104154329955233588355463890342933590813197301541410088045907003952207456942415096672883781971803862825077314682315257244916583128123544638841945586314661769648088593625326700821692204033735634772517744819081453324294361059547456225342843075939205347614692652842765481165131949902053439129879735841798496736669502406528422545256436074260605585063902758859993536410261561167688272703245737099331681834130657643502222004544728192158401978687990302311420872242570574784800724304778956807321807183388992462139246872358871652508009887589876918522618082536309472306411193007272380915447596261275297066217191550490021935261343264004905682651936398219170193614247278746113536217784778510432015775228814373715161770972179756231493826282018403313103895414132885658905632788123125378937722258909585819465956180716693403675188162241994583642608508444058740472154089163812404722348131218013733380122104498691146524198845792733208670999183854881210908604756396228053288058337103113699056776170826931513485924446692414535730597846313302344803120634604511864511314174146911209944559843724050601700298592624740530125622902847994151004975592392687173625604343161186260928486517825727399534441399972819241064784476112164073053273855891178348046569330620602674214866515528339433510406030625259781005631813961732790751572275048097848508068442997387116742339652358831851028107156670611130680267957346130025470177108514941348714776637149341188124376888858640188008374498730674090119405109165216583891421983859602704078209875742013056726463781135065533813175291383626254272494522410336728810805908632158814666534880594395818986790341762590674007129926971039336013742588449182945399316950687538183579448986974163908786548106263067943312855558757816657066912408561535170109528993832654026438436717231143795081130018160022907614856322551890489397529239406874375936606905841188049751191965266782538475165741539561135255786901294642044708872500940242422075517341757042198798069022091542331887280490919502696616452033910754576760798800037534608205543915872208891264435060302551961105051512559737255284399707266105220917434460733762818883002847135686827703681445559140772097856951968877682366468803316419379027685232147262226766569626756689795683022967535367265704800955046577539347889244831033149393605805436849122762358308758588741179169980037026773837344069621104916841717951951165026177521547498236635153732994146919106053869109060756164044566900096710832543589249029553331208779936681705793934220075729443594726055455121559884059399713969244682590098817305485372148511689192374619656189559541194103741344872319400079119139706320664490305106908533406627650136529456817147155674809471138225321854482685370214387475905135436665159490743559823127969401682174413864438246778310010912643952953571435880140905009582599041997557806383343193036887713666973573614001405806241837910468435487964958635598333963813250363932186205433166109516811654110968609794245685141446111505962810560527912977985728920743853553535674370125729243640537617744670275462861485115633300030060183945755226395985945522831604310511224228005694312564670248603948398412258573862114790566583386898610831694150472675458587525333086325060837111513674784257295875157086713543146629672298144745653372584210500238525621308723482141803945796739680874409988568668775541294039039304396564041358743934829039319582033783730769211993389138142139380974663249970518896833688086803691056666137115103280747116257136212502117780049163365655381453222048097038499688310204496509147751089087068594202072801597396797748593694463570941962970261481072048708606152758158944635807242059452685729380121338259826736254289890986082011935077921775827245642156076433943118153604456638690714715328295362475567618606282438561003664604238258075185773449128268959114943828042289389088330691068715042281956570268653435950258229953411592860085320618783244226019655339155577480893714666035070091476920581824719062388489496372833878229951917128430687727613557070713982400021305558849219991504776435928738150448674510662831601960303787459802523013299338430168517830039899343819732546082437264668502344171458243289637294870591399740193158373414530802763802599482443224165487443494151236600633275225491163867349343117279827523940791578672977277883656793786248736516153352833765634065489241740411209164139135710348249292271926853133593558419709291058615899657399369465772256512701687866745017587456629514450965827081265824198719171575836023852539911505402054324818720469035011310258214182198559723401923726193737081184706789675645535423652534997668975692015429397352987969791910021471901689728445994068124946314021802557141845144246715633659502335226711759452562021502677859179441414670368958955819548013872504300797592657295541471524957373593168022653278995810087564933993390524406796174354259986113980194763955125892292007971767033590916470796067738331130206120288380561249948447154153458055897659772898419944033443247569791267860799827628644655968123009483351714190774153946182365581965138861771663688028781855325528543887635463750513343621991476114839138065890824211903208878351833966128023866834197750429095777936826097318782716204391816379341186959276920757247418531144920114114329101893810175437683265145686981322460864683845684477287845270868315669743748363374059822928280375227791185831782525599580119801650068796600804495003046705973294751543660539160214795704751094477123034410195952143114763996268970255457570290946898931962227944702746543448418548141023692042002283686889586655909904550567013302023869895362340473853686103810751636600925364622745082333615900234387767803755036510312610857729165850386669066207156889649222658572560128162138349593232188948723826476240585750803211485692750699673770653454664581624724313668167238347421935647807763938704945242494135744433306172987837661349045050454321691701274150866534885395503226883955296891946512097584285628703964208824530554099601843483415093178717603424982387987567237013685303642244222565146085616513853473120420250704977845411676894722848331304591496697718502196757345489749892294966885654893769884578294080729203326285673054669873618753336585912797098627795183366228639568627657652000351719822122789145503318018943008515038219754292818024598635567797118185792001782093442232496119983354748517233607717781248563159798648095171246791566296719083110804605204092633031374108024815114985966838270727982833643568139040065365840266503136204898117488884487574598075983092528410539581186884874216057629930770072971563420750122279446396763674966663658214718862272458797885266694143160945683633054015256402479124863546859110399037340759994924574936156827112954566659233833307645415144580427949347532620598786640067749292854473942959505473401281180994988928635518243493096736816064434716497748777155378470421693315576038838928762875753621121564259428671828908114170886372562083702874633644673385703906405727099194634703657150099140815812743967892954851664081915723569017802519761876964741264719515213483762018243036663108290940882817333565518282622414737643667856941622672026229948228601793724913278238029539908342463331728769230310677798864735381580894688879034788190607134947559876564723500090574707856831073518393554637357309925133935363784661492729989175698143161972480562510641589542250835446247040232150506499881550063655349864184545075845647259880647510329067822680681398139144229173309128463305620264685590270651767614518080815435130778038550853468408528799136374332106531677768294064038901749039115728413221836820643895832563673217226707718843502699274944314588991869195124275911906301349543438737721398116462441063420809034598651297750037159202166963911400460461325497296863604214527125263696809264009711018170740105195103239029035420945979900111406260304641062599782701938330332425381548848517201470596621020334790804743841217203397567002798302173884550209386027994491510236880796047224688883916409148786668078587251049622712633899433695958523861939053274707840284992844724027579635776636916186152531187266184049351013425938577484255308255717115828444043510169004105153751124959669835331464315209396740969109481054178687752057853685630860450224513261194612950464257768882386565639925402106054688951931607248028320751021578373023833078814105528096842157839190983374480491131021490529631175051150617549611591791765214384447887985441584842053258563063921257784751993517363130954521711812295749274649221588036539588903863985254185934283775938537219556792928853580822726852466515095988246576165741912010875326844960784702596409540181663335871629196571196364688387409793774841326537091204012773024431990455237160102222860642158196801468624138213212234540503122224870844935913111846938641531419545442791079422290047705076548087825314248189347533054607958534547295373491142898586459993861841851793630333750475644709352600161807874316468946314224544705212711844307132600182369287767519006438398535118719962080288268525524535228914789081609716119406718947667265529809597810360054412106698144471210403244841693573835707880987188603676169753368129652947523393350963248244605980065310231421809136629688283428511009641919191284563099702814737371539450594206499506607648865279340680128958930187011157591527019660693813117947271713600968701603104932896537141996837247731720557374623937373645695358144704074105008697650051576596849769883221311817938304539163584762623009979009946735436316253280205643973100892840898312646037543207117885713758491698213667007133240050945548478700839774787209480587533464272451604649461223721606770162975393886129602587374305576709876741312326533890138547952056861190453736699829019551578992168036159149140237017752630459681922775671469844852119682768611355051473531781179715823471612435014525668439642023120315417009663679268275244450787676102848378523547795106648216401669529249946178808693498293363141999913519703256685892184893239344845674429744018618617896106088961564778712521456951908073428612571549802769468558458123453323016625278408034643092952555838105852413368897321715227664050049504345857066044078899873554215643827996621119316043554179346962359038482276873209800832009895452782393061562522820621251196557277897720907740383542710940426620891914416247085584566761749599481561125081235192384812411201802768881355379556686020694180967379905622168980224717717758138573882883206731833984253035770274778352640704791880467897843454067850934958648523272697680227748699903174211417632558566904374402217477224345084311581617516279372505084791397397325242848788166219337962174631238313753753561335356274669883687932164031410953427744651030478740566070222737653154429626838057636310943355633253423219652340342003626621642838635295994050369961348530826351123054227988008489034207056410440133351788792972629983671335831540331005684257579892563115929956225833194255802809025939086550513046471233888596505645944204008488456789510019165370566142721553408976821052439134742989309096835066615512612090015439889140585982637109774108531498592212918516803376887715390138342511791127374362138840758510013213389500042417396419133053680417183527681559764414280019275832250913796128156887916994272347102883712223456209157039042730249170950917362780806191259812252879468064074947094737761417759772165681540941969398830251785682541362916944038304034733987930736803444259420980479739691938338529467141833364144723342049132152547817356201083960384923354689849957805205464076718588125347087094248229242925227406629152265830353179513515432838296710926469288490002005052182396884705428828453489321425409895724050399815273499619606467212999760315155266860965229574229459349230398568324909452621626563097202522928236003627385300364078537360818202227470906142277789999874182725456562582461446279542990298714105461373084416157098460616208964323439552155801108184579072891518414418580404828199495034201601472291156273337988690699765096215316143868257957011530527562608368203850983665803577564524771606700924708704215566365244075529794845221126699413024752724893176060663011325295316167144336657092604764408008497158175137779032592254397460169632492488749571038394066256707667642189341190417811348180509448165057779822231587672273923009358050050945618283634497324582667115966398148514851201303846740215868402540582746335718016205871556848813799478683542228032894782395905643249577107585313191241747383440420482809108865555778962366994270860099954937646282336232600857066051632181642496347150993696997754226250244768746925671253424431290924818684050500054398455243228995796155787924027074150415732552492335697497360206228755931123359449747556985707115218413696965134067122195911251568882559398543053677765198164581661681567177782709005230553275732702853763270248501780321780585898637078948715249948941194123161675847468638584389806310421898520612268072467302770058378192004729330761726042736517938208766999281551154283700033320115002508344800775670283300102096883482244024827513182778503384455912792745260501722418754965756139813992580773892474372854103930135042189729105751325706619891784458156992436957127646000184036476503085713290391446970065275418020550268297197196353453858200566384826942060944468408362091574854415551273155962902968204453094707692988503702166591426850008317619804370466586922822570501243123993463690461209944097816783586296718409510679244414547913883999056131253873866570184052454815866960150709165536904411305589876875716151254282901223336248218741305339827564960637168159976509658090594562508381093137779172581071339673506805498360557930247131292994446744638166733717720718617387887958556504124381934335470760686267018029379590450594886524560858427541406304155451878007660647890858234112903094242341365009928740571492808932559861221212853410657009824703955217852675221620776602469399422284598785929846058683742800120347386543054590664215774495943913213514075590389585727366459937849413850404542218692089688792983917486218402547367137421479038566411580827949656119407215431543056267840705652780215029852820346452356022668300151070050409176934319573283699984053055634711082126969859919777640388326038709887323029495295902468995768840151727143218308907003934850575737658189297874693210435332985001501561180870245437207816884060272518580601352814184043800717717295710126274068279963513642318846734043089381013271559739878252329813797106155350613532671881440337027351751834273338134333481446365611885682342054268652023541566194586890239615168997664727703428960504021645713197744095369089382943046294678431916166908563428813329216507746634865963132722868677188906091337564329338238881996928615337589925339039155662576045826961954637076549382659147332131141780095226665700714334289230546186167843795766959052672589183155473345518032159466561121599596523137472761250609429345632608480885576379574657082879724991963787016612814164048233671809002022456242399719682138910322248042893650224955906724928459056477861206833875786922532826429786479333411472533178154059866914311149208322237103177082563462348645638118475380267411766281081291997437688834622431659098863635833530266765548144669458620090143788736856367811623874209277847501544194540667522427342095097314570623602314773997480849912426448559761440592284539409103953315591319837213473371194345713614772534576960569951344221719911881690659295539749559776013078460543212548090934470998995298821968865638308998697305232707185186835367999770523916125645377444743567743700058800927730109230922993487485690118468516739289084648709890184117231442656141097203817481115061404734677616874464659646769030113545741854478277415827019458625115611228894348671186173381325660072704569829536229815016769581321337616047751236761638736870015694267385824220968782623984003341564470509858002653935385698124792021023392649509150434755672901790837655316394143317595559240177252839576434259723015140244992563304514808958096218355453121548649447215283738469129678526150180635355631790851815475569428964558387088150611600415379883041259761397386277550386436634337095418348057203105362392881923526063266913289595151974881541499214807535087406732080091795902984170068167792776490700907385239457130278298449417422094231507461033767956350938389258258018395420525899755466609362694458013529955131531535462278413691020057670788127155110758914900987863146292508013896535263087399662258862876203322379135778451241228278940297056907276423621121185513647339120130786213207583957212545219414634079592584596832667898489996102929811327078305262528562029840218132583653260908138628294247657082805623953717933208821776235205787046718742382768129605421157219178303580550670007621592183558039093942995534872118030388433915553331712037452952503841281599322483971189235161724922861693295533114179486591674021397035829774745467007546969035298195405151515339197450563567223157652233759998973473009717209465281936613856439028004258158465105502611846052814641548018674494774790603671796947442351992905932934599439750714756562252343435403074571252897511638285923077053216233993355830972018472971696418459624009317700380858041579925490977358502377044136391774797915441949924908057424796017993881784581550101926168218851177565401575910052020867558342888632290448376514807823597309363604225880999916543381822970250972132521156172020154524612630139185985078673385395816253473246836427730920753442526500902021199033276474977351681340663688481199806003153392212636356449742792463397608621861774170290179780050813343473183152875614898129890811406599293529308705874347659150354402521277390426279813361151380790197524337149065673772342899757181243866478541719093855925996699622653510649423027101289514631647244609577158596842039662958062401684849820208218187473846277781051889574820193049553839353928971338703037572453494663024658003734390542036218943440688426277578613774447246786392033791377385162801219407131536388295017746089513742321843103131916261939715657819592260296871700604442626270821290342489763757088314769847420275756937269951175528566344786749452167703163783045968941047737109893982589810411798620315942455775409848252139973045223843712512022843814325803691886064716771434362600476580949279574538281248768315207213149034374179398260198266879367106269083684054010314379353566404589389044734902459648014000639226967621465300127839052625225592057196129142392678006904088653522704734265785174149264994414897259000006067465442555252819907721869060327243696352563180474916596145803029049073773946461602829136309486251201755936975563359074657138418000379901352993362861777992835314571860630553665585889969572977630138433505751701768923561279947074480041838891276987859560044735771557604320810953606038851056496443621999764761476839468716192598237271090729499734596602559763671681866128025482710252598902699394742208456758801827366723594004216972934799413901380230195097276466127737317940822333106684032089886877174140423887346342439497769324779610564688037726265637927114852133732832800023283646971884498418548461088488630910422430320379514625710578674387146764569280087970414274216910218942247378141145124120668214440187119928314549126229927726180187603456001310111822297103535244968617065790907415968803076619222479682006331959695101209276862067983562725878343451844219911337481965367244140533279759769449612481355917562304497132307205370403843315780300539475816925482345273843807453316445878062422743212341195792357799242911042030571328176990056233504536194795061689549445354827677594993352699774573584494258742760304065026324846086604474842745213580935720916508628221032535773352441459923405522897736895732051303071545837219935562609251468047737216985570394877256085858562244461846570456592799926789663693107397274239483285672578590390037428118222525370638705346173892716935045026210525197417008853622442141352408592569037151953337229064324170819719819950483131297413071592643074845097006557160137237238927400684053246132590862372504924115373596915896819003619207116358490717638311024271036586915449810448114405504271140155771373153854412353977093099039708221362749442800044181769114773735998006225750899304907612655000020193334055075958092107314812905258735098246171717368244379873936842412306974914180682143636141525813265302730692142579552336308643696999032223313461759935711698199928513857282546047606699731356575539812070532623388795191176462717126887862194607578540873310205457008873907202245531404000424171976765696949334574201344560458555949586441640495131119723916186240134543775747468079972757826431973451799635732090061788496732662989121467911896659940794429150528370354582782810613320558364985464477099014654793108159488523436365045383094814006766480356131967620974053569115324199865660479413652982620205300673308325920057636826856702174251717819471751004088366715621266285775650778414775452064426677037930877793393361268567435214227760233172311691911033100800660813621387262502077686227587105446863327285255421868899089636958783712886701807771078465381727196676988114013630527285130525280993027429629938297860727992734661364125022094637651585097682901368284557381424132182041572773481262511069331714712546939487805630779337668107523707012579833700313804135948615749795635053665842374474267251807013674454892965719968974364679200404949780476896768646551465603904254721884472949968089293807952870447662524241709448843178048471085321585940542996598958974438118668581854655088379225605196952057969840807181336621613263953694131235137695716012531269561318498805172852406120115059922767553218439131523981118860539427648579464665012782001017485037755342530514206221895642582056662063764028046878916658985078979898153336310297973242318354598980495537026387878175930561032482427151661474196236879930976658706683594694672865720451112588000154856944979679027338394461813924232808750402888252532489799140984211049489207635345607027406579838652951196481306916605499618174768220023049915564942624430978136135789334151566993733081185883897153209291727266996616331836634357960926105980061433624238793840629499534787387073432265234588927246865351325140094009527918603126111300445604319413389878264300344261571719965370224404131960619720649571532985693847816411533043480879594494143241848941972248151121090225571750865843972587071111032561002634202768949345033030374732000294541453406515758135095961846911178301770205410072058602168359883727404461625790289081742833405946377400385923132060336918878936224641296007506959811213897728757915356040055656969675152033241243918115591622710414052945633689043045955829860759553668883922883839790728418997900631974031615456070907441699161661602187290694045363121431407236015102008091020568528781952968990286347803340147418324594022033564493736188885744525922611525700690931891912839958433029176687110576551386493811949638184259140426809543144581621876760601580152809910402676238004834444158290816991093382237563784915440547446435804687038130551711148589548581261708749667773265216642444874592731643813126465357168243192489593860645021979068547456118726813386527696888918727612956225645110357023482805654784605302436371543635239859878603372924329924938936244560708409996349360280291147018817044120004146432418927822453047003703798720912184048345230006327758118472882003736511291619374941144168266697945252247347575406670330636238506804175387026151907470169760145044821199254602099960144916943073306322162910536594424284261917562142706727609186650865960394926186519300112940364095746710130574964388626547726161925066452604153588016762330740711178620550127897200132094251030983206350696724401635731615562212473738681519321279625660173547654739674713493581401900058673835080546015101798032143704541299256758057598175557405190926370979380350277707074294328146135140040882523648300021720112406515136489267202483899925900872137516770319551587975498913149956976315655720256953472367125258719807770311392962648892617744648413689378068262778917334841517323600376129131410865775410358509745947396702896590710263122597811654840328664145493119641289445929662172030121487682532196112352606996045382735646565902564908071034969620331415730460262831200565711242399701132905489292677520176952239239520593432539748749123743249920618136560841122568212655987542215153753402601821028547673572705225727899976048423117852756828447625705842157349088426155555312297583931392692535911397972654022723627601097899982996430243536785697213634251624146765352334175897681968267348364549930762451129505866434975544366236039878933177220160435874545711588381015364741661478730577664371259681234976170715464850710381957856871914707835073309920671514016419646048059659277830761276688321949096118935744864029343463852371821507197197341638368988843855811731443152712626928068753831490185567728291250555246929783332426647349194252962580226300611375229817433085565060139602671136226828771642576642435491217498794836495883079011816934572866487105644603955894567700420495147091401377511379122655410729571101693981939040422791826846731747755329420032842342611127790272310640552435410928926528022740464733264942709211969549557992840880307489966752550599401867524128803492333064761378861446177399263649211761773143570358472885380823530348981478499132220657247250886533401268022536186039921966171122197246741211813777042068495523012454148511855609937219132703443775109169838700661339624487761904961061909201503496855474918149648042818653122955182027428628353801396422498969145935560493306039409189277290897528136393810936124717706684204490681731137298896744008252389251956634964423228554399830454879548456676919744202369883407123095204791746641511204153580275376103338296285994069738962941358014282161911216159375503939531682883170068868664242004405106392899408861418379281395087665632434932832610207270119224071204497574383117653931746393866668943940821438486926864732046341051422856914974804108173359015355817007696152339934369102584615713322101607202442674875494635791743687832123286783665677594795777356582550599351828667970683181771913589875507822312314634743716299131475164245979827074264994308801184563859884067262639832266261355730945146284215877568326461271734042554263823173262460156119486875699194812887511273634848434559749862572236562507743438296104329342842039273619177600835680547528499727271883853432184052206708089263455985711999742407897637210668743935311953170164653326960486688900339558264258890905793537673140513660033040161511106080031388589379458088513223040184298175041151533110438461576639663033501453892703735333937568949998716689586440349034736532299608546478724814516627282747548250073705653398945236717838764052352924524117832555252070536674111027048234374153255123484145291845157217413306476027823742228753440106088313412346094434862995178000668197696807565494690124401070361916174540310430410670073894697064132108320797784081008588672094603605940445846113496381908918140517976226118164136781755829570517637050865928382276789136167124755321244988383678185818597679510176530933770862098027975699509541197796199898393056474383378703075402051505414264178014046454297322558477851464676537520581649992861290378245336234297370978610023793751934134634260923348211517103422141893455911642851317665582887403375585260878057629589527458259015783448978961032508182538778881972936938305205639759772401837350502541573534931239041306910913078175752887811965781448264455705597029554490863989521559727536427148137460530433142739412434720963970015448155568265534700480538627292750561172362683772339524027072350131010982972272470034689801529118536354178198144531378671995247020889205312065786337385418603335692386166079629211844843596735024161725431445594960288488661102678170641165665046948151472251575817606581065918714892988959116948610229856886137709497352708322783515831226622556430936025467200254607070745734423107586275901096807663093940284422602213494014209327469735671775281268285320051672009970755553550288249830135790625198751591773562614718547639272096335228856473722441327905902830299989709855810946479534397383321825423897071153886669620614170734001008436674485704003645930059425293967296566506738649710974421741446737372689576664615507434370613981788308166936373434661748072202129623253446999922745072264968185919999894188068647195923434507290927935581366672727446403792822228665600066459774334534981626569870831678657932487733189138061331315067768125302796701386858092251935749147363809415918716777155574274701591378329281935849559263041305412330084263540975481367287195378269463579854911963217085209692060598040485678236665403207887171268460997332201973635903745139830636423414424414105602972674969547059406953860271636115705579620669088423053547684530839127533871296622483309951056676910333320619355962784665020342328809595240455249414761504095284708040352130160810303262496625413529310062046409148992795963411412624640173889211974815019857028719457015684684779212145704826640103951304427148772921608848317218013996385049745449711544665060479068175460674543843487252672992521558354681008766647381404920816275779273363578090316360617588557676804764442563533242439911869654904876128222841086343611895791155752246367220430843386931436381216975493027536515349715613382131423121908279620290325542372530296209415640546943667231650382681051462713197728323528407506351735196613301593981224702316921077647048337763383426552269898264167590732975155329962075283703724148200024959784511144585175343632065399179344717404071668270034120676704807518926050565259078468345154313985050116054693379865751223924348009978317654259000893962876343306578526775398964456468825425592523744870419956466428658958103123558152387631743624273360753229403649965090994342256841612110695073257974493568204907664955038735336346343459901654889284929947053063849942500582272209770088110578196210173192710149476538043243018472448854959191141276486735964949946064480983514146630859437430737661365924492325260188316297906594280592105079895582922205823951935595594225571147239863061660967253961171795835235947491713098228383085118428408500285908215055457163908186070267618265937856037827914697093921514745931212428296464979721540113639966797806016910415775442329432641872252461953823317786279462707427644860834048642328890278940008498456515809083705597847652096357322497188549973768335898855507538537133616004909247275147518750130336886988698408404711396859244340420521219980613444300956422192260706959835165639074627248637211287015883025261873232360055441959367677359785190857693772255102460090297967693905592987861518290561232070593116725792983932319975065374120241269120933897752466990345550140878323970846927361329565997957078612565223790898389569384710103009898292385116791199925881618849935851795975811995434810025063754276871241583456106976330876396594123837395961626029248835853070323799557768539400053566082073638506841410356221949786396461407170116115229591996631112361042818805850791056415056284097292303678724556098585978062027534708585101938477750454364010476687319294528885863587836702885295543166011838429676432559148501976543511922611380878890735160997272330503021505793888374129664352083425329528708960824818607419649575438098677666535611460909470889221656537273262536440351192221048461252005276980405024086299591973411147865411059233722867186296225025777866405837435347059981872754401699876961311747428453840223983506423398472186831621603014496072258335354222003077345799228598777514374197344344169244419627649784496641149552582363398837458248107743664753031949004933189465161886017547580046337968304729983044815523461140212229481651253358910887479674753660893055914966741729831696195716252969379521829272349928219751622730556577406495813720287498822621180066046755677327555024425986250641273410945632876198874996457581987388944334201651824337148795338318668524515878220025334147010550583330759507277742489199631986517146764495769633285402858029137036639266303297529769754516524757334818873367011278611868954158707826018651799588224514541426340372855005790753780218539955985643218608786092595478784208941803182143633271358551167550173890207750364792092914043153695794820944528866693562882743919406214559872138463682918029808559895933854550607231590090924068812999551144629846465537254309427730041819330332520082952553584872472661061794658813751843039842750821388933342072893096514595054798913553615949096362668140269717618464136397030138352605832023981871181036063196568166340118241039694906643993107930370599560734863008995258196231206144109307754751438677673689128083754601009205330516286963911406493550742868796723763345388006179991110093240474043397013835772216973903661053844075132799308363022454975095786159039113117303124343343822920748301557096453505239304255083545554189502014197057974096086892830219217078133443780098700462191990639813603090756084567585275529986329459436057961200688483827231111412546407161735251256304723838168439325470447312200405949822205250708906279376470700404542609654259716588385138288568914861579050726039982338489794966789818742416800698701359795567687171221631503840909750753857439257647918948975126127574876275301040765236174780527846906180527942346229167818204256005921222112200051982853426963146714000902822678630507308635350850984874935819424502626936766384276570946819283257669830225045932189129258001891783922998738808420802558764037206064373740543987722337032820235751212155865893521050558243650327641878708801837315733365075918492445357880344602054239611695096462847651355017034317014303204128718467690407583280151170136145868911478830481627941282889739455092433785679881205210516089955323093520851112178655027411979055349149030867504372001978571352210296879066345033877849270133079634845858123638672404872748551382624804158708226411615433247171720022335082517878377762448820271463743151837401922545913782854579746782004931889950089193518864341996389584943369491089793215231767587071035818632156927809946202933386638268216726491112383202847399710145103596731179638484311862900485998797738396745224381613193028134977915564006851668006689103301354798263223113431754230440578654053013044278933934317041189714865406507364951561512881739674631924024186930524514748969780849559217691659975592801800589149468745532272656451721686344323064984673347367358699087178633440282804857585794505647583493322413070070679174904775574605662820220924682794420814704433752739173655283868706371468569449167632736124733337958117854462461132494758725529122220511132416309213609052204909645480819620065061887405672347918089519210363886102837987691837516078974372051086620909946770610226264524312121686582365758932338726229739598947072574974073520740173512210868151566900341231457221000944463190894114526186871883106119933041164596772296002303246681486642760927224032841762626612319190608925467790592025636177917612039764266556006592482027074809650895079135710061188227557526881744045551595189616752808358744443386912860065887986980111589765126654747008859113426964022854174213820254855215748299523684061661196529697709467217018564502010911350069220593456621962853443425396575376648699527228305649775701464901301716372910897930809835235897305762274438593123715797631647629104305043233451382979329600867890164752956111427958236276384045118318016880393745512531141936552555122873024263377482782179478984518563078586816146831743146727249276429412997296061416026554362863908021639200135978506791847322642236787634317186594091509995663016732209282455044695606076631399749829145331975984989083341514773682157825049299207022726453693448949102850846556659196164728349034342682598704639676656377676458634400327533063469380473651034764656366644806956908637516066029666983062217705399441743052815090425672033012294294899786443729539544997313250191508489992047374836794372711080114386620825518592988387696810955148355114464997409145243626835668284702295734191890436571793863984482966128092641999419990369696374039475123034624085028833106969414834735604804795754167224304091938961772416343070225801040007340969981480292789293869434327529362949217611186598314566471705191341415750062034534902739898067887224156744912743014298906455230775660407803953459962874992753989964929817927474674756880834940672370188298235789996702547582414972032035361479629210641099043409645439516082237020766804294546348040260116271305999630723932116622703307218092999008087141858029096538350024640233030383744300952698302643958947004899997340787303350404126560376137699772302389940053640370844714822550985498940844902073526316594406084124770410280403496042843071318447432053744285174228518854206043921239050146420703052669658502072917663316281869886921803385861107531755225394526481089432871960523219053807775105619005742926369314998192588989925936249623882073225144497387933578061314391148739379050938824449171610084294166341480554604992521256326212059255261294451445273607196819730625571374416903224300126122242843587467990947213583413670433583803172673177733310688784716880043759603789625683399064362818296359461028639333603891782860938999883230789017226994870994170065393161441022146692111363248550628084926286023045560236027927750488198425869076431516139313152755071931117322559345939554346491828234715146522105348913696280954794689470083002501052905292285903440915062906576270051828292142064419716545327727024071306776887061457944444209535179030744704830527248266138045137957829939476459490505195709829920631412833195383104506368982457853548501626290131064121075139483253279432160887673275662172647215211521313245775232399310954639160560040646898109919984158843338498748991594389126260230474555517815587792389272237194747060100019796805150161810009688841797653627333319113101069567695678417059454470496970707132910484291630647875210011784034564812690879559884821089868550644402744446525984865556803498482090348037878057113633216779843996721862096398931085532364689700175811652511227729539814230927241389446003575246970946336466803758030260126839651903595086062649199784879276002897775368409222925628434628497245190685107399815137652962835816143668679988487451480560458273301692924631366558407141580777041532710082273744178233494014978956897580382790414293185510259613068167860500652908723744106256950670699556898274600769275820955052164628720166981951940718024778344056917132116649118162362456817380543150833065307595934871999935471819008713991246056716038612962796737803578889479679164000565732468187559341883217631370069444182371360490568666402029930048343649417749460727427019311030554731545216977041205584766044659989600752421493029681080153054144637197042595845726600137288306691286498514277449979533911482024764683694121399108099594814528504648798057235865712260003765595072227522051333066637686265669696365087077410618998462215803740891976669857157835214645312665308932790373408670924792649255103868117600544604988387149498464489149138760198167251211962572464204013934690296943149182993609644632475965061864332029041375771460152496086495464359381587533731946401593081899650877388800248319982894310938891732837425546222038317468200157999602480419329274946244575382028507952909196359016067893088982896985007319214825889450241001325508746922333249125775573139157071868017643854622007058429039919591254455984460718033161770640937918808861262341699075242087519714217405770479581185681901735483564851424960802243076428505320090265619376720513762405197378706017553471370376526675876015016815697334141623583641749632102396389772032277037539686882159744349278503859235178957388844818321644183446497009349621904565518599287301279920195672473231438818815972384533967409691808113175321531115361352724605984000520932508815427822304617078216685394206788106750117456617678400610693807426247125855176520955899369953935289028267745861952853144090826846747943703661255805088316779479756142344846154858143005955436436368515589231194055697172508340060620030848557968397279617335712078826054744774096789162969032134503876663285288745970336723225011945620779734139190931626809031251918927514291881354190659330749864875291827095726115300239821313535426843354247459634552429380143363801048174600104418669918154216007348471966201916756893622447387720113719553297392760727603473134751957026590757556117892619727497495548837478716278541258379628977481801618287971756243316820463161785145664703467927404685527967274214657392364240058114237037377478172444527020821635624964997048672500995366538469772282588129033181962966855959221916455850310306883049726553207214918982495567536495035583562074465149770992043310411539756321743775107490466288208606156542890286437614488438911883878313358105158427091187842276482540529937031343726506653484525903612275446212806111080544703387116254451096150860164929628752114371093933923586671889560440782494060958843409192749027141543810932884568454255638237671444492644815734742385103790309020620810876907704508484685355718390910143146329134424346444761123119466278149883432537549655220807522160005398416611824954975678187488349287381507611848782172003942408950104470731874418301797445318402430139465500350537267989705438721989160205901103215869125071614847360889522926321977390900221273958047220181839456182979798217872320282301984686664319591204215573315531434745460146052629488610857458582300745469248269873541241944715258337059939185108258372965616253693455958370998807684564588227430200352547683450912799650152317033721619969444674636670434380374198486172270885679892896484524730594749542652591743133161408616252071040560424421740243217507710581762267109318430046772555425874827237095438782217246780865062277489540344500152739631962863451938749145462813235157016717046316753804907968054491105842500548185089331098678143642185214524608754826415689759633809713748542650922631897020656146761439425625240343218946614853389173454991456701968139385751306900142478912211851740924881023534537710068606967370235631269833135261824603615271084104510750262174333637258379090037873585501188155880675209323619804254893553575026816143058979105693950708681280991533868994472483134357960382401587187257074015113668907936394101933730966392511370307388267668177525851750275454223571916136482020415488016242066969763228721991541558206572242836251716727922002246869355615162652839332213412479938804705221946895007710539729146182966206126943424033118434730521349522906712484026086149428350875227139091407564308479773562459656681548033653336355047292373019813062236263550068530394878806547489093494383376229936129809844965770213346207285088628884373751951617328131967247187092229923815608658882477406734821461080253794339052852619842110777096891236879867519511301517406679989277855232434414033196662056187169755547981966676590488940157851550782549878662228115942829769767052458405345188258199624424589709120588257258222560791414046824068427492054942597498740221231724391439107689067423292283695988854525838823778865002881679670552372988231669273549801514753613773341846855116718737458280346199590156100188741869317341711162607201489538631447622819210474369053582109673059121260793539565306683079078100927284942229737134884203512248515029782594899853900964207034408562903038969553547612390548388320007986766619407275465213833875113213358175269638085302330518826726272681070726486703042861383045906698355405918249400563868233411892739880426717375658644152050561151556165007032462530169382330691767267048983228896556202249094192800979614691986106575643354091231511667596869871036094091831732286978014113568373022040268713194823474385058023525162424426176003964350711503902696883789539352580485449097793906750728371566655889090125292050993309624933393071143491267486549635170621868054901003621587027568168476172439310459623812493571241791668519845975509366904878679356156388460098218353981297352970150134050504825665490877953989933488450932251250832722981420421830324415708220032010125444733857493409707312619851386770399708424541792919899721294392348959550465377007583428103780062434690673316057366127062784499562851931081742897758270086113599486162652578891670166849279329032301797246379876627034185927364904486014061826628016262916121804598329563948095690293565112134155982659113542897558137317104598996490405494890503479464449475295794202445277143108395927313533247613413858764526802496378032180022915197850105973791164390256062042979346834215198573124119674058197723472951220905504963722287976324261954598930265871623734392859751989612038429185458517686942133561493701609884221266932490612366808824317846027810752637978530577902667924714406040103758631850628953467612962797084848131847437400196589283044365187996668937707209836105882997595715219197010812842093331142370360800961280743126132944399688590168821514778392034468746111830551581132969851365681210848784700117009847804255983602314147433838683231147705529310691803193836465276590722807112861350040998902793729711268062904846011757897416081331331388359972262243008321699586333297338490780390262519318016483841882543924845412723923120338186772063459944340074392738283736810597035430515010568969783898449554590249676793315533171113399008524911115450336546425299866859007548197445140151681437651766222337640982726581435161638318635888709814454653595801569210221462540432156234233424338759170641915491294317801609431000453972113416982370781052338186916989255245826374180881565699063919051539756803135244526952101671071305116012755910322456739159295915517246501636675110811154816991426479948196636946347587873077727735141682045269852529706217451167719646449509731422211588123757974796838281926377329560999361236934000125371406670281752172692931081376708380251242297914990647480183818514290526738833283069757828075075872751578436757133269936075466223139529322164471710402200695201125403314184733110718339170967079353968661986984764886530609953312892438021898668641059845200870992543172381613533131452457882121590487390236135995554001908797229692874935087990650057490135757900526692377405647018686366027518678230672483475487581219687551369561051283632844605619236972237259512491913992050456574546712433080262451408538675469779574098652246349637184351327368277957510494110226883092298053051231768956947550237243740505864946307604968352617180870226904392595390430123742095011068499710627924771138831020747089779736030764196729427179416328561718408657315118639649988602852806545693049102626665312045989406908754152096134442159869259529629733708282803308174838900673138019944548953040556949808188228057213345843081444842345920469710665144082428131099486521174554915794342468966751560593598586214773509097674234069766972984348470381974283481055137325830182142576546465453027971130204515011579256452116841918583803136380746428512244390225183565703510623989008384839972978202115283892550641580517291166448201848185179084884168778860716482991329012117652897326447908065865684922849750532247841364618172185705988925956855011230311870918621913137947532996583486562202327521417631884335146462712646700213265048813651686188440737399463379068371907545595775918820171610885260443753769559122755069513493230699268855001087847996486968318113108674968649077315940952591778646207842373047257846122405500755019064545244385015986620189598877183589344397650818157729039490914444291240218794136690379235798593805209060156309598554416407242309432762816006271635559433239036627772137218809824791552118389539892680567262787481787175417343861364820897637862065617703568797957860169544931028336500752842458816138735900327056468619992931251070834293032254973656310694428212959047294689978506475259847399000118615206355427919342138492575884796581230144635906122634240268925678981911997559368967423521659752246342737299175149492174284308925217559919272518179207860203431074020389659830242880508392373053429822650727182630784904709151523849275936296977542325155954236829347669785861788073481702663795223100338496234019027122817398783662357820026827768966706499971370065432081478008657280219949889574360621607323033065863147488334468385578050571341402645034968995324330271204441673878012650308766915015615896147293854056206595926158769392607522048034616044506107015639918517869678380772632418387353783178697702569262289903480565919922837985601930980221129114682161004318899211362184451839207980806051672435428423806646677046482521256614163059664001010285707889391740986748323361769084864344285693578455871746430359346667841519400252635452792248558844958565219942236395605671629011777870610163835526401502935294502565104830493115255266590604137453829307530553331569352016568417098721840640450439101062735548762172845933791229673645730083609653914900039219028927165040501884275420789069046987555719407913101429151945209100303865726414312633195387402007709821334307483997451081397660231076350008524335458235119201710590827671009100715406559965664580255636366423904602896150959073548760465690274182927006216320937573599059837677560606785013258903459750520679106471886220884880791158687220355362077622316733117847566013318403352791753083339925451953314655453730409698236083065593625898278283422752191875376529916121155999502353751237970633178517146653472271542194770576303272417445848703200939302281147085628262560254959677099726561963891904740017880863441433993427444256933216972780070226554061343375024749378128839099052864995282957312256709790612826315014405414371215593122997259130656817474607745136963651142322603350704827949215277969386114920570295272292127277244129012784661946066927193444606320082290064419267515860222499201033414520123500246096791377425330170235269684895716863366505834830083902203743111813799310801840124753256750008790538146882781879132115506356382656097357556328479917821860458682038094623030564446157167926118391607934906608603211699287515322822361369517330577203719626396638206527759336153831785253744863745401198199964696004046837388039277273220550056775972299940822691226849812495979856330861253720622666420118747589742815708474468563804820056965349432013884976529907814513285030222649936622710637878598038819460692073494933254262627262745635547621997147788388223647897176286626864538366627470048504111331523362425914042386725102723241445413349553326264757708074970547853806979492363908086164190618578884418547887557786064591343562358919943960503079510205204150430909265574767297904119366132969655974909779333428116673810317641190907371340599027505689150848977564275666238980578429307628294357912761883169010651624197681645864423406112938650554383193032289990790965985540425721970013813904196142321881071847221224567375935542902893869718616499788120445066987544615866641579844680946112677912291824718568703637293321855051337102151984770028221430837152038602325870549108999210295684418246920824296178418314213389108835224829077588891436463196553139254272082315631752383529521768142863905354892182483984417561370506334487078852644515910191720421540372970007830846408947409800482785514211998681206025926490018555787546347725197752519828217641991181451424493981189400528253201386916873656320946494211253782118169699982076524356968128621872645071634083321949632005671052763181021828586233918811141939197307546181464275051705796533239632442734508130276027073994983159527539031843447932883738791568134185550399941306245180607989597225848263430817340035570750925487414352611459745014722882108532725812642985418591280611283883559125621564822104043613993781029912284655030823677506911971512225906453915154290507645555237944876517132325312602181449113731407485585446291415432862490655604676720147305293766311089750915837098603880350633445466699822626569253757935262428328647591934003085056184579142277997812576147467789089795806172403984466332514437288573895000405602603706185833159969787709663571730500718792408892155857812298991949463525470147238190196857808136112613881160903038028203468719974774621799451262555169069985919174162529426842951967920630613725440376739599203524179725767866275258624172018620886749935399263076125230425715437123080805225607556421723540719716311703088828440011771551955812046661112625940753559386878001362863974634141514884700198845885276564867389765857921893419978206103361136655207961496246355811554421110053581955370735008723609172885708624275803146398850674871649163334860986095607530025891965943514205229334334247002593720238216577924173189411319848174965375430893902087972157788840911617934406094152004637880765414741474926763877475275480421562395717657828142245573792394306344492764482476880860580183636395840270305993628197387673589009576417613754512555271393023664678174844035068906293682464279718409127225285238767910117070579746378482484686703053554782891637697462501004962319980088483278221098303184554124951030136908299565154050621900386093781989980937995100435739551415867373131208515627442238210619862411464621380549355672677860020507893787891094962660863553405024590230445766902800432508529806723638889148861115760387404409612681923443629412035669320244360634915251794193642899340274723771469795533847914253310192306518012703628822543032694895963523087051571596298976284200826993224898212276321558352775513849217999449646016203060099181005578420683410010329371123229289838598998575943164996653823217269907706515706000503066300895179072445268953145125247500563702656679564493556911595149032322461878540553137124007579981486512808870818339936825737947970113605503128760981658437517784656419594524553908076597305391888751463020122911117426183425875383629004146668275238763664902980029948076816744367975549478467330925497073448920118252691565757453097037578908429420200964715245025315159834424673631320541843939177674476721932313031020684775478001378553228584768230304854901603332638922119351140161283253478048534733904045591160360955995511062442953460321530158764708548582849038588555863646268865960271279780916397874916173742289968201422195476145851240818214722461667613087057493946493605540710498207378577625091246212229525392906816484532707868876726252342590521358226629081633836799430627078391086803959832249694786052495088072770891229102731923672226806765828937302503776907153054654843033680960347456635056482160575526628339595075454593879016100572575463591729277005431372587310410431311650069877068518104558760049826981483588494404320651280687244685282327671505992041781110484174614096571910293723839141356016397832201664074920272908530789132511335377783428769850768415927035754948207103630464416093371060665488748907350125680608222401318919264200355479311480580083274697374120409540278289088066168775542266823469430436629946297299437026264080246209963805739392057821441858978171615995893507022012358527113034293414387068934704750064107318570716065760442697262210831500568464488086712956754036276702722045449849344147668627976341486523551993584414625899500788009439396197298217224259582066806594925320262115833684484909190522290324395116060416656983779343258656543477855641525920143604428298236586851602307276606807439129468935773635854467710640280510918399211688143901874290681485076115047049591081490729349012808042467031199396580213221673879150187730234080602372500406410267601650466332828162371763735803803429452768267105977728832713009019285747685427763357727524507615137350772070640209181252964539478088941311083784873074712450143052629885563818594720701185374796303084667159540940812596700292419342464820704349116677268293999961534227938872877757521292418564605504947823469846316573486282190151780976188728354055707252064008032193932145104887740636319035853505070464386076140917456911824744784155720035416371226333675324506660886895227858865175429681772780676780534999588882405042570484204391158475786056576060381114476996759241798263433710640075365556484934437681443163820872262146066193794522897186842279842688634031979400799616084882945081223570396177974419629519208080265553749282868866784740969472285593920223461317468139520661789949639158735622866297590679226122736254115873994481907629704463010859724169121389675916381708863903693488519232830866733938531770894216864476413186289130871265386250511122356780884802511322786528281885098821480142101421209473721544747353405770982814076428641620548622248594746416440898660993132604387209014994823527816139604887940625243504911974436696658826849703090980099403521643937597166245065880340301570712632113265751215274048606415041838856359869200682704739355682840962874226370917725599939085252138906501518102979699450207450553370645629277009214690242062414795904332562065134054553829023715772230210529247449359717960110469438774895689676730472871494878958481502391887770695301993983806198889600702996081870667930592205608657698454550338522359555859939233802154843553819956990214827084456906989450339940715760209618128249699212351018796699742332750882099470564337144455191943034331533623920849870707271092877382453676679208327998787077018112074839471514985705419446530757229675549022035276027800633625096096876460737446800090896637445052300535545280239943428993199223621359163711214891169122002303846030328499298518474964745847703140770295373385179340377310624442351903002980801702823348536640861981501777573950442968211587409228600862569477327438482966636617815059078556637974592039565792393907947419760573657990152457434145181036343897656336393672980574204373549075048223757588359097878923289576209759907961428674734657764875405112087175900649097708578674983508961394223756184927811880428895647954225972768807164964228092228955617458840476450202292613268184655328814041324124977695676387374167200570213896127591115505848692010455426412896064449272059430520887295300260572467499799663861553090020006800315611901961240927542555205966738008120930931778606966398181205761430177748329658690690502881096179865391018203342182012293914679928296083432630685104315716166274246648912461100496473839541102259162056741283960707690457164362881359402435258012835759648471085108046446028001988649182962662122727142563885110479917515181088967759288163354076246097070037146424237937261359984885674442737068415146746266053194366933167242924159656543275589761618531967708124217951122382212262335160100516744407902038681858731383824624959633887936300525602782428652571779094472462393248828575156565688716532053019479649049975778721190540357809185953107507115821294359803503845873168686982328794667388458526892203577823365327778496099855964282165755992213861386669804059821092095148019684932181147249648728133029722161993411117898764165387265758816528551151092970630024371248168986838422047066109270419505485221720462896096019343571578055508981691005898700610533994314604377349463578739188801953332675268950297991233548648139932489498244415164004147961878504424916600266011844653350114034963619533599257716456475004801922256215662476308375931950307272578108120829248623245358893475678865996125720137012128912300626351372152684059469818575231796628300489212308220624006696502496084621236710909355439799178868042807827420823545521610472262522395162025150168830018400256127891536896261418278571031548770410104256100410741357438634311552546580739522927258306811228779006945419034817866090669591212798756659347352810644673418241842811759493845837635345987787277025885116832369896816461069075945737082607716020316427203762297813822174146777307321218414034731442743787140934068505907201580481856814989118690744252852743745295751513274421089174225755098942094693283339102815756559983724001818312004351472145962016099745839662245572943801536524650798991905470991444426369386433601843512822262382127687793744684265379651846594381306933218968086687515036344470470246942370937063718577353152493592110887463356815995329498240762080515826375570660373392138970654806019636971868655193429003072399847327987594646945167418843750621958082887650144707809340238776957204272284716060717710303157222185142956159168190111318288013804723213913393450573558648728061635149429684643232248686029719061985499932133553868929550109271617281637640060188786132733689128173937039335493991092995086025651911584606475875695264840438536728184810351487065133850269459250803339565626721180347617219266258077112505537459699240995249477726397110993120851923932093220519365385367294294676568641292229726730857278336394636662191205325033586783457090148851769309872453880131249029262481538855511612606374054107430955838718550103643285038418022739312953241377563651383146802249532849317607949598595409549473521606150607152348406243935297754713115024271955358656822352383778464163800977298936261547791350144043377378807068965135944116371552642831755702714114852615195850937653646341423980013545865834882727341579837011703543272593690422283624118106485434758112992587626260150566104212655596587670982858759036416946948543459726033632630355488330623923175114723267203201884319112700603538687678825807817569561304640433587714473281454896456300587567019011271914021649600976932224686915252168133153746482743292584475801046909014622140607467564630828898322019006248423613716909234107201080741565342778863976926867787455193516172505880383546899164281998408856424851630436177462441124515943698548004241435477691482138036428564639196117915925251525302592740040451765781055092258512939519713490412506965676792404594210924897985305509666765009517146371401862188615712384345488980326499114132168349008858841263925189493495896262354433107073190138571719900884021851549186873362379187607908342299865726762030004307176638479296844244824374947146908542713868925042976332467783787878899113705791042914005048863613836855735145255464285254315178837890593758660850334332292417635263455685605737399898220216324415279930397227122360024820601001193454242701919698107367893219520613389009907207065026502589765361773949404605934146487054244179810379870140782943292303750205843855365852142711836983985588148128160631067797953372510155223416371006921900023983463521087488179044665459123779436996702209199438384585333516897814802120482060628311725359307891877692971519275027358283270160249730098554723214843626931614175481942345348910509695443354254929600763647024095297967030123971694318730462022073470364712232454430608060409642724516282497243524607521815954662647739985090545244752833023332061547779136365060658153902069996054417459209376349462491620898943256597961228673321410681475215982999538585835540740550677056369628711854345371244013160156052787181029314744721224654759803170257563933547385896180723283116202875436280666699266483769345313532737878713821308436961145155785789890305598224076657531210194622956469500548047618071247971273154498043611778437835407672599821382480323920340376893222753675659951121439219203340544844976216888301050472991751499606567376079392705033198720388235666819374048473200534921504096838369997564696035237608894658879031203286913951997432442212342740153908673349872088390789013856767885741732421652104714977150575312032061956618305630312168378896322270568119235305783953338440905496527093451253645782820641421976473410580929660918283447056749910914565126806240418140569385720338738800767147955087880422395143411322742596924140531626333396627323943335870026054476159521401827428754516060018761059246402655601005332795395167732883409938253923845214448612029381588256332409985664063764225505293117928082995070268906737837997969838944094979789975057039934438758266243157900369548548299099721683393864892205738534762411247489305814025471251517535065213194431693553038518416368713888256246594798154621771416207368696866458686953667181547531339291292577637395214963996771396251185894907413407239427445369701139239213439288099861209643999638290480313972887846862404452545180458401085053845349270033165824679485616830468512759700229479649998739946551568184243402869260148150354906918090636913898983228692151609399614123760958263192690082069832801458429186939019431937569131736241580698503327912789939128460483857442674155477883646686826630568415296463152528557452789929532620773489225579270563490751562288031013029302304373986469390792225873881848584195511250664753023801733403259812765819929410497916793264651130024961713137126847791198799795946256183630658636703193730306857592975449622902682071027915841652312388188856987930238230971867967049254054301264201192707133996248096293810893684548087163972173814634059700492530109005554550722276324352614692096142220481971964599967901815965789730234374959141639793406209394824060419725514811946399303859340247408353396853543865995366716376951025174789984059124312796458826923532408773306271904207016661660299175713503719097161269119982834323433613630101595132576398756013368827445205367094133641470092726641238151480765089241910703207482411053484047896050067288557674321282212915832992216012595554805559268165934016211896933238258505798493462013762986208614954668481934997594049123863801954550750543584922776955390381061409688485140868828482633881378231573143844911115143694349250977555650694168916797942055734749540488551207386869134438884207977436052004991287042260342572029016085884446014538883335336071439789047049243755647449489536210339546604866953898167130257960824102612411215995398741275033247228530584270438742037782033249355265295583544518881641999226271460998240700555554025422339621151049019171271373428356412605205492166290715154613530501032312821048290840132140508267017114543990859941298223670647693263955653307671962551852936911581318351996961735046015359493841545226661242237383102010359052073355822876640397016688768977354255708920056740738291963623539241928040042274422368804152560184441392555803754299214345981351733473694941458226215701872238297344256756148873597370733169129918228761857433010000367210059146042166247882951446086157268886320254059576546967709646829072515128332196268254009414488734303418680057350362509771821024607349953755884427429519113641952758903693602142959507086554626249919964900058612723837420714835627114267658323402731980569542307944119255917448731301166070992547024621681898864861423231454555740690165192065210113841666779300238434149180106021800956253817418016384052393835237197392157566883919446155563596135027870501864981762197601226535545293299008472063087131956774385199071989214998169011066407731299630503993415206629246767190529647751552888806924193830311537100673650356645276912730737254359636137767420683102152960378104299115391869547097482945362160595399991949973290659827388489898387114161865587367984996135647442774373213417566854066003877566085266054508220550935720481856016901144273483617642672124267914415881476991619413105050254776441799068534779884406571625073673855633306627753245307427969578442014917934376247151414871458102553162261883175126397311512696450252668789026277921916945186485346132741797940981735924077973241834253167556064209293879342909444959212746743680650954486065700788451146993365443658889774077240550678584369548108076046217663711195707794003750022146090233587090958082596665446221942591334984889118557595547768660213644683294819969209177315283416864117434619969526118083865140680329545943541355526512562436186524902890629471690855659818657371202918758376585508696475385174699495944806956449827995802868579327589198647863448337097029705198412650506885093226175983240000850504469443813701797362363326626494479463638772224540906165594505882929834830754814493370594135718877184850329743437161191656012913497510722280801980967417777698063396718226796057993583178018308805075182753005945557959682036537657945418729255426487425219834007011892417390362066572226292779298343267165744735702326374216760512208220497237395103496762332243993726030295640993317515752722512908157068540604181256634092760702264681377732819700652138752248266924238320337929934914332272903373993188800141511697794889490812971884053664604710864577062814932388800747488376805538731655347827704428155121062419279718415046215221680290723118358570376851523326223971113479652908345655709422438966971592945382377052524076724018481476332796090328702072274381288240534281675024240932176910816671931003759272000037445658370810967054733282682908829665149011242819649089009199881143313704265135850871149490616555792210116647817616014408088554360331222470781475286600037913048061119564994216336946442970435254870002367424923721790400521822902174251121896437658046450876580202349760863286831884300522974590886298905722148325561419684063898764713749701940025162751364174049982780022036034610542857618904744381699417956415958386142255594118433474911107312643788723885335224114393381883922649833543115583228842856231665876718753247488673251777316962842214314205936327035437063998306844291028688007104850134196425680652766742650480023214518875851623530776633515804690480258276451483551981740427513120452697485074701058155489156100954551326940554874994314344418994999088052069890121711166153320527660799619433782181963551387974990029365610886437442692433384787836147959742661655905896417913686324481174437727000028632384475072635793151734223604398949937314002557555301866527779270053798301256278777211544009306159415014312584523328823379079674210095390602676344472768895464411032617117271097009342904009582686258320156561756795420767952732885405860518308146385264575654698430742214067489963746231541814684614309238550365711722368608171170379172913365677443857776774427070907496651074797060556560875987257406796991979917453521393901180320768036616331998458312316011300241178539106369312783772333474072837997737644753113497763265935509679755645455388281952021711762673631061775818698081056337102149151773992195622234081866842603963439607263181415530411913408591266636711850208433433872515615158278905207761308427584633279355834632101422498395605489963113942876966057503910605134504780080757761649136881575829571718676618569406105488224063992697883597246338045617652166910798173573668633345692819680279661937488178872385278644858486450171475634524277281740298253278898926613787904603210699169192897806400171235039550252013418544407500744245432563859214788095337417179006389653795057336361704220137406756720098169373962241814562400025140826260632068100958634814446388619144493486054656746357661880427850516787566834655472185376276448099542491789328748130220943190766273852799520141336629249511527500681166651015266141585380154316579867400191808464937308056559813008237419642054812801324279467431334677220117035337213495035437748117519951334265695461545177298379689323627014577059351754102558420951180661453630397371716939034663919346095991979974288167584945332578647129730988860466790754632567426021755561325666858250192472335281831163115569332226308352273579023375794480059509821219114626897200522280669268141435023570723122839838413886597492397954755903736065305455964755854994621916800020245488719667182996996511044016251361619022205955807330931014318648530263903207614825652859698440522762979965437046197305342829930784736021998482864095490347374826255891189604948220878464257965270846688063020222544885529766002420793059920297559835831580069236169781602819750022415073910946991845942781957636001789834239581442432506504650907961253156319951193589233335082563618451817795421026727699780072332419470036114282400161930853861288034655740236446862867077423915706695095894931123083421035155408687934827261659705153052074588741958082474595667599812233952028304235210734214172755604443854754345342627910050587529110537901784325938609698301595032682408556899487037528204677514551690924941930571746896966276460731345229799109269697804850062618489938321823280699432159352703765164680432420467492688440052855316383886342942926504271722859959346028987338153440638081716874621410230305772589439382430688600045609203000434043878300440043058411308070048994979464661988925312859605046389929116238523798746554684263921477765584417267998272704246412725320936746599930786537218693085685553478555004860052149545098652068450807709944343070742481300900580606525789086761632779600883345013717178776398842527952732158417705138109420104450316000558447368718299217534704250548019617608477276049212463912932406556062435628157966834773304225813774556308531819762932131832441423993553696961100506829264782943329604671018603946944450328477319351074558765882990205053024571902496004250323131575872690713888069042453953493807866570091417442305313223484694843669286417844276293588752318396499958675117884284688219651246246873255188564983457633506513214909142528997689133416387981113311600250845375573448115376178286441095844304452847991230084957337238607731575638947638425173170456920814039110523300228424834253153857509293818115900374952093742705545551653172426978157156194059970098593502771338554641386822266878897530278589368525758086234846237081737876611573099644010549340800018769753856112113416831475226700014444361690893102953963944517210877232360468103666410073474540664975226039262106554171188464931921737810588697540652662128934077747085110348443224143093091822064220264274592124068268310708215582434152022214084267260728044852870300159164062649110568419962958693652448974213675907426192829759451050364994851622164134906517327626152255223545163872852873096144125879467891034958228725437842995167958479884266706348925030231773765111859113818192102268284778202358275648978902246080279026811931422378339585748484529825162804491227465852031037968542200839726943486386421150854261890805959265968093360459771569398511054560647952965015875865145975646832919211126017995975544819304393413860539148260086021134539458624876353726921264630000667612878218378149426301998836879230980313892036906746768823810706192204179134254123825365321334912958078684979886467563930862154899181760502810590053829024467966866034256885894769905365162780079173964709888732379770782103948221915806297628920308533998064334697903347566046771479771984236369631338666677756251974587525929820774364641614553848230705979759360076221930804429768217553534839623907534364652045524563286400166197898631292373271613888230267235358797936486175027911132114002508315708124708031925471936180977709273301018656345590444955133077856580551675865788758533238583879270083152136753169941421999631011624930736539988595829885549971416630582687407520799440840132541576921575326700870901382541208053074859588054531682021004889803944650221694137102088598595194301783167304664998498679931481129660301028808112210279911410256282477357206808409344466332875511697395532663450768360504832321571802915759536073384453218297959562344679689122091721230416473278281844269818817139713315072822871519922402909797128844109109683930933304967471642909548804808842927433327851820833497379689708430497772634892073285843715251150305423908104556649057218133588753049264894038176421169101039973601480181581165974237430264862416874541630658885894933556414284842522655272423996546921887808696800555584063153531510418663937590736785259623348989835271042621725741364268191157146602385863368701713214708599703023786244090453954858090506266999841718442737398399519533289200562033474491577615577857068454213517714933740533917756667117748109478830720040318524917332832581137904210350243699219156407065719057557471704785243706556342209892751924426484736150644407189270020235948229130727092689724859419220432803318354834630617966013262092076329854724111730927405984663960858561899946295623529922190464064283071527263364786976512571480959782005663555619926268769857367465820908867982871136907200397342747763902707131667715531265541446767310649040777976885180243000682354047328437280088342255190565477092409844306607204849751263368185210094603265896220262472187720323017641608602067155218265763760886121534698888928847150211153147378375350529101728721765313635539050380151053337295570252395119444897601036647163898796661993417841881919421645589076697231170524001078466291244244990212856045942007631575697391918443404801486698711210914028019368275878920511177922983564249854395231179399355982948406464595936558164580193106473236475142565345128016174236322390582512989076018357818868517376327118146682591706875134824322907845767527450328464392943022110678255835158680969937132329096672436431414505995021503181658862054261102682113569798204414012164042994207206539388352879275724071984021034156660663406031291662049697101740132285272417462704749600472593107146063818579716470494173950419894358181995915914239104018125453939077178312375201183733884730419585394364120187504268787872981531219215090103785863835082580839999361220264821167905457873725882780762895150980363604706446996764000264640801261420711085997874390602415809384366155446743418620871484186121506936057916443619930499241945906283328478114403765257479557590332172063415495279320957743570992452069258302657626105669769498511284339063590066306086872168506814455548347137789894070375773187192097286395740798205372817030142529592905519432901552102576104661517770891443038110789704786138890813452404343875571638907153990836255544742463323765870365508065044705791845974177197365672926597219905779692995451585832188506585079154922335873667198175506394816610883020373086700513758566746905114506067185942236784544547372331065999626779100293097142185206246640005645385545529196789402056320483608053586834513408509059694228588417727251203347430957753616709048102472495475747092127763507008221102533409814182376983179482389105743884182390120194287057967254886106984789413618261465582994218633768705153184724554626347690547155268209418835676542224254748584265477028652391490865534769603122435186030486307021405328391633211721496435506410597400059035929804659533316762794118922770714665975718040208389005307456408919162031346770076318582533502791848752324732320581861629291707383174669355422068434615561576232871927907710798761340334249624446553129763507872031872122083593099352211869325525056485674662792514909235669864570576568918551390257289176910469164793560271951924904641565396375838953978718925095985379201240547955031124795526037786983926633389702104813450368002884058290360683332375457995528248424097136167085697419870460037743944776549067496057369768497045442405146217018673772105077306454849827106082571166063658067250110491930386785202768511416904399570390986712426348601999557513835173229862696468598741892082235477261686941834626656913428246163798637160807668299126944727377683055690934225535102200030832373439277513529047247706497621366118472946560791968997701745896154082127488293704613549778835155877366906968222658237798292813410815311801919566298458291298927199915848654410237094867613224868994478554032328246370559689961856105909087755949550198215486113390298969509524640854283550176861486643014952118880129132010322081968287375861479142640672142715997775472834547089999752225405364459034564310440577542621417144393696603065610295749094607792327948446779763306659071079278338766180469745469949794072336979729541922548770092002361064033635318471250967776762676015312436401341086349742542644041164009830014271986076103436056986385130466850212124002751550092268505658140773010921585348847324415007321206590095458500224903932332770133918570664816377993500201599140543007644891066286267053747212645361960938777262132416850031612152002824669331943004094787665835606499354914185098882511656614382216484579274408772751201377613502835216652599116315318750066472189132426906603927457995822234145147299125220813477214421466440704251159950711439039366449687071737574708553666286846366025666746750945793709509611278496557218314511844837017380266217456530294041957906342081430367906157679025464198108106175592320803779526721050034276582634835488981670610508760884015007398514562399148770732773963498462299922129414148431440351389734551320665363586205113857868413247665111087368182024338920578402989850524195833376575947705341208344551675477469897646425727843480103553913545540888978240626943868434883799685193648309197011134292518840468901678205606466416737470736203544834927321623546770259990893240251265516846799359252527762744547544124204977225921403023232603677364715164082138940000166424052838266622261042086688710115447678945383976924893943487747955619130960520765363964672868538726579441768501589332333553143888649090334698375594892970688222111167733389697956163621746655609472629027720954450333367085460273075216100727495314637178743478330362979185087663629374346024384712381227832448168274127419068691546895760584946963825076567248051960480242771497420291858836403971000194468434006444273176780982192725461508930313326788711885259932489924865047040734591056605579569368370512797279098409708968454281823625976998012765840800813053040797458478563125514283146864530908490899653982987668820403658747666818968523259121722031003035025757519835569979412438388689433227190416810239236666806446254326619584036556458473459993738698757976890888134019424545265331053246030420950344565102515781284197163157321244352042157892127888118042596490891173941560840223483860392440570377839129316914379589983851210020267973627895672062933369838695501087403596872447728492437140431816604981217772224593133475102524447777010783529284018252979963682519741809021069534366912261203137992600912760558761487450363828907833841546929889729087644355428971634098082320884237792393393030489742840032373942837548652396068104052177454546691222017512344087292847514426262412024048570964619691528750943261044880376802891789324270399299428833348531469463545224352621797524211622093029141819245619775680175185287686216851761904428811077950418970539341187826754034661727951408026300101845274396674346390021357456900228317275480697943322981747709369536279362373941864686141163514390175778720565727526475274492829869670804867653965466144444142740828132009065030942227762488386303070795979016608648300483026560794921839902400604978212002569310239152227006782082662628220235700907154073429597110430647191724412917691737594973220353171766533184101811341965406529265689473292002864742006731868008865824631059124165598704963471318002956959111454723714381838843191541547897937521453830885273324413447850055930519110462893727999098372972126348508149703804632368412795041106416797106951130655657831798565490492088703552516283808344837813931626452506718564976375727032301348266755367673985294120067953620109405825287045388962867066447340888717599572588463343186714031022065432835020766473951303184450130644707094576052863207064688950000727413979634482331203652562723136901889557095517550697018690199123766136217919369938590789266858120805369588489061389784105006399148309855799573170544864236835471930206836053690126148957466443320114293789968073244514091206252622185731300348893230745395147391925981357456958047854646462291461421915219425798989947369808885879918416907769319775994659032181930884039680330076552337543437632863123087571407321554888048878159523964435092081849915692539186184784493684528114615054740739372955634792324396174951557085858720014162825905869664430834138313967842739405812502556962484091162550733387646483314252056618418488424230167221608033516753231782929123976267041627371356663046322745360854645349256388195227265545724818407754450083377889231859472433036382793681798719619922380508263625405695360524980883529498106705076520028178230024667373211882640135805254822987552880918314951142624013724206873596174883662699629808972540021152210677890111783620783063843143584027333868649142835574650935724255723703962123071396937667083621444630606315675468265494912628854376090031993447562306207441241063697548287053539834364337461632241212107517681108768883219509410244299151412568309188110959348530803763097772181452197341988302023487665949440255781950007844671491306130541345875298021958021713215970066501937077781774959275090099889705941179676240794968903154013742307649722539477811943461517247583850449759604375231556336216559320946187797773389583595198588138916076182915405301231109988425193056257748008038230342322240043958673486354710443391101392235747987103069554860062331490794536386070109911283101220429294830650067079877926762996514305153893484700703844800625411503321598213848634444100477781603752382922786499919497559852871059096838791994873524278275034331363901843818366998469229019334738748264657370654874405277387922682934753707985118018278113201370865500667646392222677853889264319467881735248565940879340614802378874029868218381057135693709276583551207260426248409775615387531594792452750220238458990873705455815654483405645715619136886572167129561269826030994968434768072819842390020823483188614428512971731865824529214982402707680518025701060096995493553485653622568542004421701598163587894234831612246662536094572518325120676438897780574707766327214780447123136843409007365483288568085057943421197489477860142595970619888249185036484179036663302751646962024802874395823514635731037808062411277077578460148165211498355036940280165356249286311529285739003283072794362278521551750870376830395597303052128471407470093840323928870886308573319782244380121615805229648755577573307512180412141600013530534841886455015416792545021934679861940318533651528260080866344221555415218775620221324814734875023937988807198210263169649316695014474949747226806413025420623510056266287900210491741154490455695599837335839466778887678017034790891822181302475053127331723972005145699886560525278465200002195736039561771940038310128257830052125622995383585490109805174441674558422236717269935903757773225834805313511764806558868698665523182345810944888021815775840172395711352633534255628089406637453041007128963221871070380295041704355011012703150284291628314121264513569101353898779881906383994516846835328692524140579911336803052646737189770692523572742517632850788696855517141680863404467710761473376013531887114087307712640067212364833299591166779753428363647222401322617871467548373595605244031218227930463420881704488703430148369986856609043598435982489221889072162188028698128315543563997226399952652362365917355835416999990676905715434629423047116621301127747416353875622786008131301635489399252046218875258438101881491959007007096429623756206447272011479727116075263321011589637284651957582645915292143044299301955908389921578839923685401217580117332954781358581167040694910744509132472738052591837486171890059898212060791050537512876052107964744802701754548909943070440889003259045694064156534101494400904872482975694246208485993656292647578295035764372525308000443301186123235513107851971330092049268974701288461763795699991529356113618977560475376467253732801015924023095539553816041459429915225142651637380359640445493234694235635056380003243613853656100469415096619383043363854154576434304096100065716833588057866870369105607281895681200225304178202351804016644016009591515683931368649720368678674063794815058037745358657200740479469924774957448264985061905920742026158227353395125586499098034939019756456902998042347825855039959059063585829462586033966334876382967392889967052257674123943578741798455518358574263439937930574508979255853938019119136386179876935200267404037961411369769400557532679330267800777989448479496692669973155095454308027320413723912964852522233731319854259793035593573634000293144739553854806712588477433897867999126987240397418865703067251404908081918870272805036560383954478041559575962623997351631736898322692891573558234381765462212553148462874075448248336467916280079758068979197799191416373933780463634781731836299056982100832575298748648132970024957934899651601101024749718682245466256787557053158220906365318119603077526511743496930122262494375282285257101785327880906948647538574454721267219754217602745390451825430277603228633558375789655600328416166607400485768073477612186377080351781275303174343510847675275950044125343759205329095413818690777580625721563170269444350959896338752069821649835176109658080995108333860901823619835008969332476801652487722036909084935300566435688533839157155781531742540473812365709982403364701708423142765978540559661030684647041773424105947317068925319236327311504515776895284185634683230217487368826775005640804180715147024224735839743870418111686029894547198923692862853231576064788101440689813379352160439808606200455517191733018932220852948199870933590376353014246276906080202636288042242498973333357619158015840631862173105769384631694550051054009459475195739084027260336445651871943051774615249445350157213459945286247154840372147511938200798667212543350057722620182557634959143155215289163302640994727962141383899170581475752585002573275373601875587537442123062372245811717907923102622404966078748993223002962682704147896536505635420891409149881743930229028479689778686237942847489085027319761169135195382739921141389305408669409355511612033835375819803788060603366786961631565672209521747339770218024007150833295242063245675465730271727336156211614761845321755897593724282526852615168204417798446088026840217232453209837032131918549820290585484000024000634231282384807968513024252306701796551575732847316311992886739112547380520066310244959998942367480410345890409275121642324226931656692779069863687048529314796244289129663913673321450586466978660552791231580392317141632094940171138574180143501838713726671476053402037014873712441214879192526769991176364311122809100681645387619628617283903426891109045700640366546932734462407611733315334780837228113472322714211415840764831968011278227424424349141074505254056564569212199819453444888982793775821319120357916535109596024905400787190783997567243061173005902572509732928378285599208605653178039510474427769211161323833595632205084730465077383451307987213126785211452751576388372811237943356994344468587478901724113970236780920283238328586565654597397385143786033980166853303651370613094858484556180979929884066538891329407313606242391773111384739320318528350144620529946251810180737170382447571177550846664726415164054693342631921232694670598956515487716472372382189391383657887674318191464744811892530653246052530470022910381686006656966329994100219542709906113004253725483893828017676501557314273677761506965224121875219623941797936909247339856638702761639242000542033758591718151786796765752065820421120176789197542657768763842433803766121147226731497320578733939397012630102364132640503018778683592076186714239710002014452289695754003476375909004276657876456271921620849488388616347004105764755868309873250082802587538374416782835255998971638756678558959917186920242272123317862526411228362224394411288297213368686845942277519068879441702898260856908579011721735884318041790662362646039779448656354980603669825271830366721195415920642096645438302516913534040819758280709950091888282426378609765873185921510893214620130812187237220898207431339349635840710878065868977362815384151726044425809185489005443868675623897831547379143599200664373700895858594793829920263841356452669914819522035057685794059438217205005397787750718303089179972205197734004155419430153019849007599223194503865821111999208975862860897154480075877679701288871813628949490761101395529845785641467923518744341423851433252066050076432555403792818391152223983228729357031092264954787866365069471304428724916109812301749524251408914078220510750078289761019179984443442871531986609543913864115831098348242562696339121976014802547820506412479749284156819571587205519993739281842849001641279642187393501024481151106330080948899509559987217783995647969736403691750911865409111420646527539791915572902007396902615430242475576618081359663853144313506065364534163948088758006231191612696891093369314117699880307946000525166254109671317974825732553275241351621320147967660857716217468942492806595424817514696929060205061875636257496069408383842629968066443242319312509106514446174310117303507955529207613963363003420026073803512310028507202448640063453459736674751413272673262428950333196433797648396463860062654650709163600651435454864579852904008032995059216943718796635757909711575252512759332363130429693383298132437075294377741824116955461972863486362258220797588994838982692128489395703787441129585032218247583677267291086001662075496222756507015379920349097091863232694814006114667529060346987125478463842144892739040548456553400419161224725248795472360223700476102101866066921814104633420773956565866210208350245098487624364404534115012296967553948341636185420951396376981209114069318124392940440457606733389345916853663431828339669608833821031540256723238329020456437281208369420791610458570902705476801801447445460425950452093251815156811234861396344971723804739326455250466525461173767483116532981538516083022788105465844692848281632356437731412723377779622908386202789423149488024921732445112665664748779736230030922009128117061421844467094201831484872254150903138486938080631655412543938534988477958319075957676145571127119138019329445744106634912319508769754858465146849277248290587686548484469883501289570319409843627020932585005977609209247991139477692729162795235828579921095209316890021760983210945416046155902461818691938142055784762275294126830873999303234558285817506750886604433356463276936232247768485789378182980479920705284073470645361670121152415217186819971263636503328589336946036305599461790819718512651773770943639681593493120482174246240328654363293824388239259400803311616921009643849741200697692542630237129871607496360068626666884026317902614378175276110146806747515936504026158832616772798833454411746670443442807449061757904041650507874005984401195413302057473546454371417122521800581078710397087148591718805612743334202508326229798187830022301755514995454246307674489859034847417354915584100159645271510946819425084957683947033568918343549643635179446033913728465031837665362188719092142884333653291062870357729376097549370254410814177500793420038281421560755607698506146088723129945843642950882205020513881048629271152841035524563262286578802447778376512050828422549961037312169249612127970290247525911899803265662116000035313925205680015539538803561979709030241698558020161593683668847554798401895543418375201013458701169540106264696412024806688326283143461797271176841017104386994648194335217937702720014332602489291335138451936320422984725952077679126502718856091194737050247485214552706221096457007948485126411988442930115637336667290957039156614464311760405946785550838748407106578922917583153546322956373353132490278823443029002042390163200977592797335437313095622943908965902720772423634912300933071094262246901119096930262410502730793290901711756508714537189134471625396555921801979180467467472987521166764673210552760266591090074435351975040854339927203196416813382062274889279975610111296088956405428208681910355407427573845909692429121703756457843806883123766889100393123305908876843067007628838678942601854236906479558468330731125782906685407436161629921546894951019290611804090700976768867341646766380137610334937477703995509222114623781297641511055692141790217897209146216077838169315258790038031386244223897143803640088844732695045863443230835961408384647516688140788179704628540394408265255741990939585984222884582817381441516849731354368277434655244503746950005559903129327392956526665574172012906608511881670403914375945053023436747221947238313461221943175189384813661018703470952850597674934144473416490156520185895879596099094562507378294363375576702108805222297530587358395524184685828992917741378973692393921714587789036284242942337738326551950923858840164826208905424125972756567564957605358238572277945006136755711506354608042716178655563189709289199749223634159350652148158150683671460943008916850653091446644794254830232796689777938971596771430503571190414633648037933792837869454864916283673659178919033868115835619521872625738807701326410566047793774327977866236456486780917134374334745271837591669713546543175701071836779326081458894041490712787331666609196734770488989593240600242346299293995626256027534427021478827431673677163899263568114848789945956688441184178421729153754869304318192082519668312764957275166113665293002079542496676683047464450971735064702975620523704607316452078751714063209171820357929279872224239026357640369540054211426341189574014202124291299534961811827566807295361815939532834257305205374730275176280013410317489346571698470539199245824988035617374203278811035440531134562821411549518335393946749715015956405175985034356247314358679991676059445075408074659429241509460796318413497901924347953655371247980492337937839805022206113730426449631590440725194938209371539788063613343281401540318370195915187788975566116396124463333912501902182317460302353200798441258059592302024727334901791156814691379969555223519084754235078651549415200829492674376000816514741126695681341539891439203035184313838558067592105253428864640296284673944703529091047704014043126758635700406708816720482590383813782569467023262284928641218403799663114377861923177255402401044413475644445878069036123440598107408460560731318290941311091329564882545638167322280005815227163596009284563474826368890309710578757086558329728170617628855505106173965389613998983387746686097683301177499561778886709623635427846972483449452352584243592062729932756016388271668121093922333984037510090459111877827560927611717986243153562236148386188190891203227148365837083067126179807066050737686558710970600585615897434476503044334074457971267483045194222878548799425574725462654846862381473730676139366574161800362296636302942129142462983342350352803213944546935449701763923647507889360679461953217349387565951109024316594616078259749997938959465355386323162466953799995143127871698443224373398369172135647712525214558694970635264984809696879229223773663671803629448215822235032068767793532432107240640679241779061086472995868550921062874386497980745198611651426655553266276003373188754510789389222262469983354925638122638819969674159537270453362383936986224795425014421932761022343598961632950715098645265673406747889117150957675456154044465468242811008602378449537001379361176198168936874401519669862741399474540087504935197641458304890876230372337022498786772123097336078809303957882584586882865989914582408715678950819672966630450907945134530969985909128583601078051088059040779233907289961125378562824912288850758435843399835642339871044304012072481073896074173131382696270117831397282340917117170317317209081656405691208982406576014509059815150150684726885581047594626712132664852021405670668675317052605237516738885933159628902893363383034516279799893186529342691992578084806631660250031240155274771774794933330885928265308537673131118448602606712227294002989482276321816759604452250994238757868191897165018915936849762120334314546194044122106287462848702695707450149441161504530104487977007033594571463825935265620373591283427911667502598854945068046270911590205757792699387932256468911786386198038230764532143417364017285569264890686419071290027610980168444872225089443543498323280359782979913797963532861145174281002754754685219613015627898221964349152125360109182647795351064125782598133936138887108620551684581046871041156894087374036937157876730818311758002975958975820093881706130463332632474312658441294497503318699118822137815574515688963282460254801390905848984198420162584020917622837431518696290528091865636758236087291260552737349132649574303670035625002279044676148794334937476613702772016997128921469553043828478805166737790232112204179902224560578281004041960895547876977571423397190796332752653747967585831654976231643324091851264911594593088371969948521200207145766750421884203114829779329037847113691825328210183174752289556550603772325507070732627246273389864176916721329834386246558964429985677520398015732183388336145654012500050751057378861423521636457868424656723583790119536534907391852635007798699677888796327212326969445523364434774979695613831237483479828137570790908664613705927851265421812900256504954138898069223284652818189082056349819529691353278381928192544903390819861846272466146800783087349912680914697071392655058968512653550633936349150099447833274093858972565412019728038210621786443972204743646828443741047857723723879421273574013881229340462133085694242514470638793160196338225935160341630591785571319988601791523899972081569120655741151081565315273568235020428848902778026926762664734096850740239397596079539498387407931557930769901100604338049086660802496182760174023007556533925475171720886949527095171813136410199246580286202825987104423426081589537519129540712313675290553220941187526794152547164090542760237106245697959209150069847083950360708800809484671435045645322820866372597846721472886239610363800332163148290234963109283050187304817072564766620506562772949609410938725193532557470762223140659073448635424250134117511941704658439907593744895162720213353224376744405128406359964520404427108810678928608930755145189060077805533733581945317783060388439951701706737459164658892075580059050238012840602231801061954316134315399343280286817903397325697840596591293306252507917035895632235958345568020854319604958095539979363573165428863441756153983251982910746330097277767080241777592580221597487222766750712672541060272954009521864217907941048545547235231126599654229874353799937420509265565388091707430077957913421487770975891956563985248488581904760118003123893171529439594598240143097439885301632593775780627434598131167026597044298997473574085470043694127405054099291059519599805703545772915163363057185534675837809682524963721181569885483091722716839762796676885714916612601256672073745215040738350663287336040259763805146460395804971936817119663255010870514559910939424366312180223299533391136189367518916733919970452185944714207752187427712044455697465561688660290260578691857324814967992535200569000819232439765349358427840109273269705798215307271775972162759665450388255097337540359210653758083398514707412419824520897752804464234152210018351298176874383397451718263792560403879333061389894380013330086643971346055476611582898391334683896026392163534746381625102063839014910978607241420071303768361090958117880657834362047118315473412236296733259443155069877295733791187998846529043066490877483120808933757803512899536198933189910506571996686011721067588488882038169029238346930540345359820471381211280674798166492376103292333329718996388393615341262051557190677433248506592334177526879630189140592047497619701420908887774997310184628134342558998842047646508117953428356322615938599324839238384804565597193180841463121347773596774421000923359251411787061724744712526351219291770151288894216783563657032975550453650272287427950488797906538850940513068264282078234142141647882374249175210054363747232191523574803780150062261829026106082133287771544230612851953970937919735014218276648990124903512635896370552046521047796455791832479841664366911560807683511099021679045145415214671396280124330252628623951509112444661917866329993110625141153348938393658651363158427922330136423174838928723216156828135254423200146094178449300061627180599907417686954258281618366820142142646524536042230395656096810907419040372949372212755796525732140994207799391904918579031933860058339828173597947057111312567351561647361930669488890687192264289231005980364069240132601965204071169865597929607894067930625269094573773032144302634741931081071995583377908757005939027814019441803825310504287868740792607819193327980500652047652338643138191787903936385578117037682835744140497393037211420939380199435048095264515262867186395603992091004185523582541037675138927675496673326382628517030737663501592069741406748638166725182810922299938610720385298880784038592455219085928941828448566610057926853180180305800751459832679119718399134682460337917022305809347889090025274849214870610445091109780154157599316826069256267362801897035798762345479086475167945525477497901098300218220358623045560256381133987841481058563857238311214607587304792200336303930391096745839195628040747589678065792599645409156053503421025154219608327456341877337923067018125658148498755521130050425514231383893736255558989074844019356147638954799714994254865664300918067117899395879863332150116380695443569252211561810881488818881394841787399913031376075744338299849391868071493789621954753599863142115653465385426523439986084291778947812178319728054946251641437877863668998661949841590278775771010142316371734617407250396708632455937170504196435728114481408192452408438706797924411557408891784355505611511285288234770091950802650265800704297482233833218485192385374220362945082606637403730027902199306580440824696779629251684187148381219832889191255894662081831025773527809598996759002493452440181188672273933111923403059529738457785136422267941289723886040695452180278319288819171009437989072186156297057697848355253610537783119015543474206277115798502774960080565610677926725765351597986781676077715212944784695460426429292151640338425558875831545275443837809557071857321528843551280405175957710349489220058371234227810786277668754595545493342990612787444424757997443268918133330117785802410315489786929597205304212457670177103341067347509296912524799385134352576438467032269260599900071112971548280961276670866541499004617230369844159833430055480007422900949767648083676381858389098957490719392237727308522855664309470659187222708684776545429470389960132119797423063761983193769759085222106486646288103772505968387898386847779749406795381887549484969147654890804195472106529513598008795363167035593554928048077951024822579135909317902088506697584156144666435935441134315840037392633899497267782584024619191724014018760647766748396028750135663642068729526729319463020854280218657747590156067760251121103877658060315701671049116303431721693292613740353443407802571955160322677272254643283065188327212540684950506244901456902978961421395919467845699013963074293928995364365647563812343404074188082214125344431679840549405382885120215905519613802077638041569878151992473254686389851506529055874242971281583380517927718613997615756168115727562228064915178523840495010293994058608362296429765818884647615189469350260572404327093581686232420229110399144803940728219767190590351155447882000361610581319710740236955058870017780809784232442866573084427090073992130320106464208847950779844334179360334405803137590360335864500265023595189672511626756594438463887823687422392968615632954890404373268464494731253327280668761721180526354671801839058483854784483875239641183691987439658843198245120814422224676511241366723666700348025574980877529239763871278793402906943533512537305965992084748823949752920117768133419135576784242069203595435772986871150280154514501642334032556699316923068111408389029265844360543064569778684515217068267804816104791352359319426016257230118656077645906307526110109547903476141876284263666877063280888606976749178064362549134998630394258564496454612595832743118038138852999763776348328471240532831611558260627147748313604107969837587807585273095095915765170704391983373088101343695957635765918129903654017541276602255963305679437384139805309748402303238293838569742550989839805269943006840674457346076510261648247962642264142486230204066852808321158870379229617030569618077292224058081890962654335996845779956872796627508051933065412522303956747716955213042494350008764563156015463390820331471018959257206529476818234636724357220827050560414300292366356382775839732454575929272181046907326350928331884176540969902631798508194750268070234301517789221650983076108950693275316542511626732001352732372605117185243136362089285741991062850351865330074792456199142903923299714360027905966526958929129453234845275187626633899729888666411040051072352878481565005743018087148552376340027781296228200080472698495149125267371810687483443912521738714068415896008667077369939739795660267240072219254694421967054547528542133281152040242820927303260123344212677240587168941766383922688536772373770846199112638497303788090519213252196937569689909512186051885339604376258826156546826971941911853424924462693057501710435158175783170557704229755598740638224142369734457470083338880186089117757532785203735046441840296528475700241957397954352638952944871874898097648183646551232669398004897215195403988408788997139610342972171406838090712128437047972547624756909693855989027649277427533093164096946898777124377375898636335532921064688812242561893856292956082116816221375714794982228990916415343904786803541050042404704429293450788091674702294276382934908362114076883221342915464032178440028938693489243078200016952753656654588561780858635270745004199715676960722960042590737342709463653569917615283316881784746145876214921030594583089138068520191309215902703133222855324576278000413732323651060617676878322869655372298521910016859725715365370684528518430537379974805775612052902899347946268418413622778995515137934820269122187763453464699424456992316460561707783420926184378677936798251754399006145287039520316356440266223306224225750177206033141085558355053353833517992790656962597518978357413106800190335840707034726056865966768912520913962040869328158599493908342960224037312126347924017239728885794439926039095752624320759237432113976303510943773614121432541631878325251299689202803115901358963813502352037055241701605801858702638698055800584453003149404838475145267004154613951363158314822955407481122235842799529818735217133234005115730846626745426557734186598553503286462094579087110682977578885856629837756947013188183875255452911335907995431728523913755276786724291875917741180407005291401684083955942887412984011843019573196170917019431136529635231124668551769034639899117360213694902952897971024793906276501960960467644944275682055029697834303794846185755448285558513103138662537267265526481262844063241409946197809367818304159173898558194927057851365003124196372439003072677022329596330965252256292904838490708314961329604665175665316023460363510206484844704720779195386792765423872739716046693942823099104103852709918383968152018059772396963595429135531695920163181963594976352866472255887092746632402960774280937551391484219481067250678084918244583585650062489126745475506989772243747090429035915372058349146753257650278857940269699032144215350001612981300069240588814744190540163234350041974133588240940801506962419876184040722761706313987705980280041859314996836412497118925167801538042989982359006367921021811447537422914180513595970385013086410335784773390969191587965122737386316165947072005765661045330921407449439539692441280185551847737920349987434824396321196583967882318316897159951495745008065994809800740031499508911213633416283731903037135366483677453164131262828233091463778131462688987061968238619846413047208799046929045943722632028225326258381567054460606744427262329388184039776638105175318364628603452234112890624921343576533743052889453458366136900146886690498198340417527136421593273172703568609333781859662344239292819615787247553544249910547045714599358795879027632302464676671125407811962520144876257163654847960512470040112295827282628610380482439031268343238908206627668552353672132426419959577968971732185402734709868358180322856676036060456186842892008774763394355886833863753306182880944783439865614028986326630835255861924454528015421062499164661557835532334349936762773300087655723089979096817631211208910452772415564223742668279644430477092824495261127845007176966372333815347243569783534746036292754498722977526712878598606798715449479538064262366743239830694436204673087802713442034695736998333038265834391645020721812153711588863330917005952547550324558825741970836076062448352080757381421459762871062749673005556247565834791263868673231423800472415051174067722239650288007971510881527956923823581082305037528798468833709198884111094142079590777039497700399373960026477456311465520433529130302221775886963212444436618812858304312312783560299356902896332496191853643728380158817131971000893535467939582546723765084724553460481103222508856132562870273932278106780100856297803669159050502194174098031436420539521549294748266034215203709354854827946349902783473746527852938674398819791566310120030287665568163071913173403847073234284947046833995926151551582638440868212983189473056908093512344437860936854108321220111645782057016166100815853221369920954451217589612507994344326704509335251268497910768270619861786574378796305417127715209069569790372622972952899463409866600260693682667446836431529518646658932076691481472550625365451170848461404027257065697479969442954598630219972460751099880381289151142383825006385604328803425358280575021030769683305701057362467857404565800009620910234261077519106429233835237481462201220987311707552179766123181178593660943726673026310243172647921143124216984135881976581052798807752228607590500558639814487344325455330418836661784915852625040035375754805663949848739930167758922891113516216686208439394399105033963833111472265725493345672471867373660373054939598463709698674171794340417233927248921007897729727806366802742580472654308561076730859868109182107741136810741992538457936135009812100297627289596576945073157984975454407017895107922708895030963519907943659925252521929617467907616808011338499319463188887557144733104419426990629834324231670266513722303592988852540006807534947574230708533636742421417780523373665712721145309736773898459285508731478389581480761594205862137365869389072733808097405569422586797469922677816268631651132065039229297918900207840343812667540383330270121277349238033994835597468628560311615858872421691816721829796619380977024919593601838864314332782454145210081691967304194814705689591439378428620227682935787898730533451330378687945947776270863249898022113531279186652628816830956597778872968407473022855455671545159834840687957075323458594787604749965558136852342411620015367743915691710462323970232791989263349620507029666617096829989444707249963855512330468735136585263627099355663755734739595579307558007326398613861547611509912429869969959294043181535707259293058591728001047249349716285436240672683356300566861611222430570416915204835782670080759473033661941734045028935216323647985076119651983279144061968619902072320407693046670836393760275315197335039459307815985702482237113665234642213138656946524494419609598809914496613071754103782565784014194348541869480386374112468615550913791412345734427544225776413989926777005804732548133993135188361083994696348141016561579818509061194375676852159597713148126549552239365651051830673373928265070080442448615406431890285877607471038516740800413920930176475963367134570777592626961809633966314523257967095770137623083941617260444990564059284598001993959583882058552041994182074359429255067165433156450571066365816782975127936354766505180896581664226219602541942909120195459495399621512849397752228986019677015783939978096642148638714679726171866880099687153779648188739895460646947137149471644749995688076086036424383031492335259711208360712517447970080221707920901561678087571635945984332768612218830175114039168750348667846649399283984816318064830582758852577023885682226621681676848039836762751627600740175714964267419607866413406057389043890439730202479648450431287134455089747087721148420624433946503760135253552028115824357778755834936218229756939366098070172066842408354270773542593028217222622506323721910806321938412957727122190186249870078552874465457400092044885189749240354466680816519839017678168695338546578598177091356947567571056568527256307180590673804955787429059095639280344309278773657011626406267614179965255822733394315486233141571075044000100830785675364811465157683251968414967392919272119254502808114014353727383868729054605050110216651164553884800023438087183564364961866079837240525442533288963979602817604360942059382022585293997039086028433850203918135431069523933276972234213900784287749009527548938496139389094855925922774675043111878466643497159403205700775418397888484236354766082397061630872758904600540354638862651466378701438813611640305963215294119649512035529940523188600429780784718569495192014219318585190277010441692256947557246086107079118787488277889676570721034099113740343545694732378394734752957566304214406457548678578388462561347885998565658817123869057717689688288372716052925048475368079878500170443153529213135004301625045877791819082115969476750229359541648443593426071922930716261053755661540718485304473661910481267750226800303001218023487693465717219686071154251538733349468415809672684856686093189782634444874972849392319255736832763386636932880943132690105033581386223807958026706654922470267329119444436154377825152103783522232678111457303476337278178173067201735869352085521645418620511605288797886289826431159264811948067828302367423708876817956811112411552142038974779492321256065051315212016938784852590828692627811581058928254797125529262438370540904178225686756772163571686831740103513032157653219388710500932202822681445400164936984685358974668993227224996501097792846354161121348527619769746663560656847913869506366320051554795019103663101811042250819205712080272871809895309472566595439427072993988620137758002314588718105101340038395407924561961105435192024643708467332192718794525991210893532107432070625136817687163254660992989498098282886392300731234482550191668960379791775403089691660749448451755654423796676492985337549602366102619369392697477690374362360392141026972814008897837748793402328779920702178915154860486863113151643559090702168595738455198405479452042064644235997112971175159830498979415312508870430413380717340014404819641326304593845571985917000913312585960918476300547309299446732087071822620737115019950373934777303879529890817240091363446956407104326349539190973368389972989949180846624004321069731766559849056875657389890902646825608035294707068414559638810242661410171439409731404344519330095588452775117452177642779197018332621222579144449075182234564039087586112985451475980546443858827524065002661419497336712998076637304770568564711357624148217535736204078567587097397759358277066128733284938042944886812756811147499744828660532494293505159701849350704890578739028280292475728388883860821576054902492835278722021690669803121734333080154464489715873583279961092141083754722477093822913217287755647933611461702835985295595015593226267624865150902588143305156199809946357920409039599054757200993659463299601742625210282486606663473849427029882208076340374698857088980433142074258970783320060903525838716054724598160101964673240220117330505178434464601849282355307416181226149297692370115270526711351622091119169654074128488657339470812387007394285190378211744314430481434225121041102933073860386004399591807181219315075728413815613691252490665439483358726268177618280578391141852923113183180506177209544230212857130753266111770615230453427994142779427645920882840219558206749000078999047382343144664539438007838846669789709589778309625394147174353071367199992907611891795729700311448300467585389148026924639702542230449565947539971956522739449478819206952601137720993236034271952324110716489285226810814569821341161813610907522815986812580654088882225789954832845130010306997504821835568157966307259722530560092932621358520018541960369986103619905390456172565651612387874908229113249575098930071659272764641541242017775782514209251238448687454221758744601395898701265785145623216564034941990395165322202645949779860910195146265160410458159866331674193796288815280206457587295178872468817012369809181242784295792891312131898267718837594721774772795326033763784233787539708783454192881658955221817976253986583569974278219138581536241314791308942405254064128942572159532078930830823144438480615665859739497945577068415562189810257982995798659244225415200895268714224824587628339434819635474885277495021218400724584229497884785268344402274193683287389763908527242231517949094722290520031590715712205491362027800579533569227087711932506719002463963191098344892953874929787552021089966060411200153512552734883702366884817187883314633109258778731230669965374703081096936981761350850117330692551917010656182989519301155325608472819224669079728527160622195218692353000002601403493231391128540935872019359246296189787265595722274959712438150751664717304109767076433425625508603513732290224344598341642381210597091898862321949014626596253511130257054604274247525794971572797337110515846602417714839474334809414065365050965885351540302837851089525130399491955526054897891841927093765708869952213621177212114669502712607496872602622240907725852730252912335303950978038083401152960296768574799395235079158040386296438558169708245269174632863657238459687129148618601614252486519071228849366847454537447071277285433719471858800263414127836327677842621737160169441612114268908843652097008825136755140287937799571189234039385405180819272037977576833402888307432141136736488573932602142446072166917171636977018834368419532153112006584681590919888388004566501631103982202467337910069408631371417637469581462948633620721502635506419284219505418197769963543118475885609265552823022676292222750933270803416926040223991984416133398787576131375689717817425126370203392724495204567768227266173512422900594938168801551086936034201712446486363446053364258694711742071757051306598431856566006728102385414667012142588990514276783270640373504668297430834361371449682753443138737847386921549577343194178477516279413718805606614541299745755827178326346832016360978048944346740120074010388551089744694891723692592221039871563748788942125560843349958898617580400109127546893022214480003790271456853817351495374170237911573291638996867565952561728979823011798827230752169131865887595343237670007567850760650853605523842222473156419982531761989885516535623841872374517675813845053523231595380335551729324281322018144095245769587628976111604038304692797277626234454433958943565762827140798945311828436768220584319326161335696472812360897459257082917071034055091466364749982110246182061084818053988816566948196803351384618323429203106281539812660333902189207246802622918131229450959295883386447822742230433462748920806346908839113652264742785353584120582588395128049069128181818737607963425244605932727627804013470340941191975865270152552072088132363657560432046913748899398003987386307348276726745288320674874607986435563850868862573951032605824938319971623162236816675106543112196040492007663668590707604752320519756837843299048262544503238316031244650790966120791876612071867203753713157719689290774315556908669978256668376917560867239074445484716639050861096263135452626182895750191726388583373670367392094759840441538432438838017455196653305290310645258102188641735563588858542744133076416625961928332780119988593400495458786075538853830195168292263223294432690777675093834625168229507219806104149549063186230839956673210654890799591491179311529420839443248914325761281535251444826905371985858035569309370386583450721141232502480680098119203173363295273665672231834950446434713752512955132000423551155524411648152426902534018703855557517300056049573758216896094107619909018654135276126090876077702377402756131380097242111002039375071400246044323099274520409962002652621799587386480230034634425253186352216848979375493186803186698451720562586324120779661284576436439974691969763891677636670605324014194844853450194070482192656724197087093786464315260920895725318768179263947887033396568128312437025599436982011972849024888242327652865459486284260867711707583154260920452585919014998119185261040967120054345976179158784318943304697324058523405618486506275062734481787158472523735180529135161560808516664549951464517523721806372999808658184060784844449694252326754134521378126027975999284588787738312357515045183189425420710747261615408823041244177080835651372858395661791855447796496988590085271332557953038405109504895224422842237451802892911097044853592216829412086582860581634060106275100749143388450962663095849295546924279952476321892644857998901218183487258515332239879544599979689414598044869586690604718290812195029627217066236596542799584593755827159384917956780939162366188759900311493632044757682556528788937737838639940172003036649461195060071314903538275381306297047470199295143533818836827551031776744594746746185594575208379508974670997266166287069897804020476709109059773036735356889932231538287193189276200024173027453671528434593071041721606721113367066294718725560999141056708768548690830157455872836767792536584766916962511296671877351312432467999242430375255755553962247497477671449450281040442160577980853901046992195677026801236683769186227843830162031641737985614911236158585945135853562108044393880599524028858740487163442311929806327794429958519611695121472184562405445231575748020719408196474920248801959612928015269905669715151066523531750721134635941676123590053293295991400327292753501637849981381782418068417915449649079951875222714311218020847022750162632116293547775592667032956850351439309524543155288220946463641114861055633133668745736032136951006542716170370665709698768904937164086445046705261123776517691560663380762575985643117981351630875002400120384442765834151524032603605957707376781528340929215983287724804220152818072628026764187387571488571875152751889730427136102994707817423493796347473277244392496938205580193103065221146062940983301115214331094487385681095420006443759554167700606629082281108490902807585913984026873404419729440467232319860318974009222413111413636182366023836949960874267918077451339413920806521437675529656346128289646289267970370296911322187654610233675599220421400498653566426729470014186398907543416466837265072265150277541135773902702097400050876429182070444701056466892275609910648195759120802122972340183899613183596474431872431953679087172237319529107717196268644692674405368075615817473061952756906550217883191808078125353368010965560220678285887191690512849169230366955375050440621709405964578473429480809199483664597826981913996562695026844775117926917748035205751781244548431291541009365775292402982487194287759676000514605646213999083579346744574048722421732594313506526385596063922937633909055040397430185050847177207744105618682717408311670124580900553466770958289987319966129119732356490278223783050735255126333006355338868999998579818962370792726691322634582442995509622238532001991087687475430341333736316180713854847221659543601167465518265730922384391477428945124711714824416824217095384654006104720595547766866688078170102475394132976822770602550508770769309216903809418206823991817961899360777174604295564579966006255852416961937978765693133284390755688472317250198104428600267349889575236514376982187596736792690011764497731351661379402287866852137079016929274317613005242138765300146417989219682956247823926275121260419529623447217847733154773307856366362549451389216760178681488872116383403807934701754496694472154603065959178618436001092994688206084410963102283842517872708721838027006197033681960029899739679625127555798818211983590518958341626335937443802828008591218328418221321524003222036409765321447236550069907782767432988965597812673418647033291358245906591400819807677002919377081015265289983371574951724446670382983397210625587928954618530366914318178154460161456045410427075690255861482424342020670989356607525256146086949915542344782163036784399141112835358910955610079998042333645885699958325621261903236063302124453867956617892996914330626148950890243347430003135065277372438592008349412282200460103502084087884183570063012263678817284919307927203505323819194693621135566808108185001747218248692072971212476154403984691425880830982466143317267993206009068520758148251949783701477886654362078690725689351840582443112984712473337838669250640121219717087166185647551553520302794695879159953689736633038891824402016391638979912341697285351302428178630128475894717516027918646142053869717112578960064746861901723299605844691628577528936596303531516105319263241763383350854894505566171470941670509932627900581148598681187824870645634506481377131723100089823715633954045511639447431242567001909386416526022278299539852996594498240306144548225907536288518294845961063627065767041967052674423703008349899671041070602276068710807995731116864759495449134389469996900410222740120115065643864594920635170984182035203556394147103093295133369971575689839538802888679966494244469398113581154374636312579224682951058028161711933874180732219277274658926277799127902197047057954641791714339655675995036590163980865702660750356877186190245153853623261141608926624815141926202657628392527628371330336872571945140406657810431087428570793608847475179622637769165648525152903858989636124912828243046187127601295620920753142558510973430667650438166135820063344628869862800199155420416802214010256091442076700030675835633771325019516384315165718002405322698321271649783968041408672815459228745089946818633969146851264115443685331216557184074477281627323952251464998542878201155545005573704100254902837051217373810111890302064750395658758214080259468561026438966349404474854361326540613216770666040995245929813158227400056337914284286886115454529759337653097100684656811660795091653258291943398215985047148513712634060280392881690641725192853131741964647485436612199094385014098241063610589734645712963215538064159479861162564301906340694168567552015255622687571437518112797618332047060304918451780025174101135234977590114219684299413013838140439505376027702269571967723041710711531018090848187828392418598236172340786276683548818474920128038119401087183259279159192092337872169484504871476320245214312668144670965945674069852386145309738674939869201640024531114985154951763094531073902450508290405859001623282528020156393074104837477999355609658061662425937402486997789341324622740756387108068955918667669730477544379193963881062026425342816927271440347871946372814394506888635241077119103371522649120977111720933070523743931739889761981167837029102546268357558696590347133432570825441789806493993898426465442905726951802459227408560501246443052644021730819699557085892022554480542694370474418517823335197736391142000286628776651428164021677603791088305428271779161439768500617863705192753205364743734475292631299073126419112423886308699705645069975200877467512996102935176161632182258435590089129484265047897062544508826622403840652863843895017789867330179021317339922190358709687112301746137950953917911953018847291062967809256123009869977621202961244276249081504852784459350875140789178437529607956334798294890513214102874011095714421669215154428023454473349380741244648027114998775221292641693441426161097607820208449389171271957193234979946519748841966185313921107078181990600497573111735857752739379783100921035562194838955548180137840685500657018053833464100045703423857696051101459974910862587651107437363419699814727167704249589485905711061019380161316956286098699286963066595926135897173316320532896888894842649246139055091843438656092362994939670070259317899184939838072005301495532467026753587015773715061692910240471374646775854589261207342283479101298555441681311189022851085504089097317312699649352841884372905163966410772842694393696988119339738398066173677021035682247570386668066615205534436521600358579589080571949783194160563346266371482004811433973441181576915999716447102809301942699670383775605851764187203790262499861315011872082589079206486160907904174913819081681241277802613604826793116863952743013245683995477283007063738874101040799181534275325133913602573524727819116595280738547956806286331043203956393466402927912540311192092550502856421237418731626287983760863420994746667942975278818862135965451932871262550218633508954007051447093165724162126711903304568210923749932404101501962646489494918272046655853920125383955663741590307957740747959481218598449696451261980036676435850590199462709863050855376322871110178205139960475661700281479087845316830084497628289522509389962385103805029506849334692314999484586383209942633259278408875151621515227412029239548110447911119456576519105697464799623844263386928115676156513297753073136289802141510161254360301757651874733419954020569088734862459111779721438626258876597967072745094210675151131978998990078500304773864649107581466142293569158544204199495257493940363818510267625458344320605093309985726496568894523765326320782874247246106981129576305784004899771956558915475908328619958044663360612675363743818303317822307126271700052400396079399127607827847169463139808234252149417809084168278190980285293874135891727571936673402056109436179041691563732595982954317887878719632945799413417674906866497533621150902227322575804727358513624557942362909027746817264885558519994492834590065036582594611534661409969969759045671033385003239778392034830384513857321112942940666948136133562874915158204987119678337573330607537168420568943158443921462278627205806452225730193200477489787139045845060314937400485799717712192228715213435855221850522284095446179538876594541389030475204669447197266159821488992807107985447541640021904630970903994247383282300634468291739356701018959101603152692069442233359517676040451103253892516414147706891638870909434322220880959805042756140001285511835981671499212966863384359755553477770348395516594615596728875585810065993498691552461613676156699464285047197293883321026802338162799368281733536939192240638184897900815780638512715120675797310292999933026315714178837955811199603890748544804470905771763740858352220053943913874523175885972428291329900575932615475079955196637229177269269338234470185797062901392993510008151803075306101974934353029032182087006978180826506073130434880577865275580082171327982229707716083333431129644987260876901568710240537340293288156852974515394041043672088327909978407020138071466896328504565371796779259124576030889358724048176033594297877431098045107485704570513026014560751221366529617388611210077995374848925829255206911749112591373282641867236459089403286388788212676443954760641176666240053453996522520277068465142828460726612008591595229777559678047450841087479329919459329918868925517255525974822300640072378260210131105913829458274633273081465856040906903265065348455322635402928423425426733263837213535298020065860055409654534037415371429125278265559217227222979876572388266338335196168159932614306065147640593506327746741381178548048724775852886218200290737729218666104841002617452105512719655231223290236351222590129556866179726632825878711567965261555396857384609915528872831774978514552931809958063713548104980924714142804455172260375885806849560310886375317290125585809127837018830051739610352663466912180088920921966327363555143653773492040513399537035982562114381920002672977433934224024447316008392200840807855123977204646878409617560828457646768458953720844110994638795252170936293668551156667765715162210418047337686049532988583771067315390322160831105337856933075438498756169097791098050672771186425731733449406849058365182810005508614580799210335054852630191716799690726996382823153927524859596334775485731746785314821165511806432169010999214318339001379781536371543716195826152523914297971479710904671478041147307375639591075030243168437614191368439346926442771316420517443510130660680492246119729960286672393317122153013910120178942732581797181413925733644795555273885320479776263254731879668061817059304998441166084863852376657980041004856408250346113634095673272132571706316789187856382486023093168266367221493776842951384588905254833486634690959476547243465074799706570276191705485401517452827005290009074012310384218107568162299407209513348806536200880272368071122367978177757637291034882172762875614524084815852289733014504551636637710203046461399048458841086603224151040651455593860242872609489074317999778783078536544575572098299801994788747242509157935116949944047661812185168242187341280939625700732008685914009512856831805525926530911709031142064580644647057741431079598608634387042604480073298442454853922067948402620796813183130269486324199209520947828819462166118543648546789840579088487023516830583615087797838153978006084550020640528312135112323408083519167408153703143703620476633605636635590303644600984439272554136475895747666843168252056011253542547416498854377371261017511035742140553035634439540811364937624784285093297243462056257164520289268181997264235913407941110070725000455140886907323380620658470000181904957699266869221427038863978992117729413064648228097553801648199202495057326678158816869870291527693699165460261512047240372981301569916392493329183937685363428033665066885664176275428405285154828192493849672318025632299834131552915710495744842098100690690653726743431567715063947930184645961732793074178426834259704787247885165691130318845474900329509544344270931001447048336120533856861648527920596760713764726708389919897818180516513829288539359016989880843419753951186493351003440644636127608928175816486138242723586958293407735633760362768557707099266665325167929916904045435565038709044659653526486759475166204009215991164750633101209450802266866118742534923796502505737727253535138938030418823184825719853266818654320034246074167028289093430725802554864718860125649963160839151799664230953082923341983331629221459528999950852586406800501413015718488012758143161688461091110891154369797088029025378162136045650563653009814335531375835782583007604602626061999618114461758539671330394837897629284135013609448808950244880514827755159836832053365984037827542071599060057296146071539648027007200705723790558898880316818090517029598869944096120392822055540255804443806468081962760095842244879973699893338769611135753326865185169723630664374705655678705702672207123385178457462877758617966521391394588062861519443556649955146211465443935576073767194697074382293098505480441123744067018562659528076518143475836456157881322222042916044966187327652878200682459846737663200958520009094757095013469259230170964292584156011797172865925653304637578415423256202862898102931094352149097677938515372520675395317758056588619777357388530998034688798096103856220667638854771754863797243849576459770260136499407472572028584900310598101124281068011681362475756269359601589193832805675405872863224907247722100326221212405499791030672170218456485664459728582284031563221185330019825049248012709033538677022106836015904876252219083056878170197854964437629271255040210763513256546403943696262732461115964714219619887311637229553895183037486900899164517872713361652430121682439607347067449660804281772758891146578171851839112080339403630965648142927676199819184839298088763753217975427210105074526894643867304038107194974498174696198705751016842674453564829052202371694021430214455462817728993123478360448212485319942179777835278890455664474528976982603619733549300717026492298792502948026058925012476882834094091450166880187385671458833587570524285280266327876625336169610718852820700086497141891114602744496247807093973611969769273577141015090769963737050985192840822840254385704397855298211505846823323879360670817226798762518555000456715624446028653619635745767596332698942728869320829860542252165477803597283927309546366457398231825884518158719270594269107735345427918582095872691055406898695476358373120362566050299816973824720497657860592083371025204144979771395869675182525399950748435863704095807678652214764346159899071176668937826777102536169151260348787923520906334689856036987246256501434843760845343242671356948717338111090248074559101235151049369345868055895345173965868015144031990962951071865786322381612637197629321777626427596489792810274930778915359801197047501116441895802125282882736740499956486363202759007743602454000201861395926475943587575884980397199471350177349540785413749581037932125192371588034052726625404682837365839531006578084392965602522531428167015050243042989770987659933616932413178907508781188945209134998680838478849014860445359055931141671857224795005720405464183769851818430263212627755252020625656264368011597732376690740505461590248456826774798706287808225615348821552827040731295728993286120242142983493545881523282815741987338880275039464216971756880187581086609841307817483686218620947652167484025332953444324159036693638782648656513392982840391314659440381704688597394429309008880553143075230306424606966214023420142498548659664128860766567618335139676979309628026110176471868904805083731873467322834525158734429677229894087708482125115494036746570364114526862350901843265473746418272584925312047571326538257736571751130891266217563264016597148463454470214703508583059608711860613683616607189060290576867276151145434733304747350521817114438198090178061807296389445629404159549515504927089287435821177121953140614430876851139319659696942092199162044753119543370871040207360706717068281508344221980306871909065864831638261485193405912538293213692149713130157756203643089414775524436798405562448570647425746810456763507430501306670883817315451998404381076974402885306657567663304186781293671304591763841421806670581236443232350979835290743250804952770198478730825473708034698750402256230674243996567871130322657713768364897860101475993796748168774798434379442563403142832943786831775617475428609843144304294778248003783936529315458775809913315072409045413048919253918949371298967380591523364876902077834727988002720610883861622453710765909142921247196661251386594983332734903989337282055886653645449264475760987318016266888493549567641006691643784346173888840860988232357695936987855111744047249155506789640639917737338038287905038776014730433498690952783299913437493620412448881861965492614763607514795991654194901784647962420723193055135953921285490687573343453463828123737704184242921252319360333888886121316852140858375861560704715425479084319125246425325783263941299312244615200287532185553234763082204086810188356163963810124515140864988066747958011961462865552309568634837912689721083050973775349750066042361456350929378102556597518820460315135218108120525012249687346716261770643810992067828965525823045398267087688621132713237621155500693915658645178937621088145709382328454792725453349115724327779964212454433271408971081101278940776609721329446809322951335791384664797754558329117315589867090470233019289236292132152935929884463136564961931513588895999209748208665508397563682457322807341312115001308973784556850125690661028434217555442450605307185268151487879856660988931893708015359453093590295009038399492006065213033776484926622260385615773315543771840103482559286064720957628520658327585970070398712465889669484606170719487730975182130486560798567488867395360461676722972318156814439325388109413395998407768768198815307217817879482875206323655380077985003992319532730291300185339265066001673589045019778992757255837513994767869764088361451110244680055072373825759583660868486955467436192528755053073916333990636861601000136828891627601070938559120073219622579315109713166109195512506767725598846270111864766464404961006672934507829835950116590848947467469250206017603324104815924901653435565992620276265757542833859140383219506507926107979655351872921995614922580845738557461107688215709134328513395281516266196869274781461729712846577296102259630787720357731309161353605712619768403191079162782477174980069580415414668832784329462649944075353414294575888850529307225964436002107172397859262922788316787958408289265541964016494789515750160187451449453731899117881119777732613639057119650531869918287488517967259281121776561669998736959725544686877866887477226582988064833385649384181122619665776893488208791364281536545743019927982639955982943367956977230652478724208899530539461604061701082470744941530963937994722759787798596246818044117885032636122317389755746626675416578969182047112331525432016549692527382227528915670484885503832154589512414364181570350431756052929786857271732896424602910200753183734242371316550568754808637705097012469867385642084347395465277438428958565487976405725760569441709156434517341049307885628539321269475959377869181912416896807425096069450626395088139400987751265022906035312881357322397994722409625825204640512654981444989227166228719203107431777025249813552062058028722059550957650030090588919534664244045109527293328451896432364358702675828170015485742910108279407618437740442683722554457395542312236903873436267053470447066835874036873186963523225599228331420838464240919997807979985406659795169625006717608240036750364784562591069138674051387595187546267534538020747697209117561349615432429881876029964316095494601720238650870290816914526159726534743265490889520487141641973531288738412227198410762145254869417602566149840827449250143037613514825787233708971070092765099711025307352221362167159505281339808497535588588872103425140076857055491225267370103487589409842169690657503996292564392365606733695083294670779983834141586494133981034232347938969981097779737882314874133646565269127050550303237674500745076198994962521981296382396678255894163906294000429675298176606966154405327520140696517572630962652146677327184646985136442908595110882149519385612951637771254278637129517376647209882621011716189288704914018145473857237611470751078905595197371759516125573452892988616381746765073609575368652688529082093283150463165427033555778816879216413336662567877461651615317359617243012414323364969898540223357238196522865129181146005320210448306167938785986322930722882293237920745985118088386981596071854724665185283234942802470473929197930194383473006254942526986895432025586761893240910868733048721951094102309849183858144875174366179935706285123011662423973029189310289317646001879728993626080376905811152807765581439332719018592986022783251273832961149519160844411468924753952250206594978468395762326418407916528762651120354610525891428472938496094449516406954761991481994571734697025027402750802486014131120420964910534726089193034583894333572901268426988552006967539571794321118930677669975187943030958365193233499676749073211655092195258938573463825252632995406928554209196990042656419648100745885805690844116133846314365914613369126119275694794129236073083502183169411134994974602114884594007496608906924121265660459970904258403079917263036012875097779563542833805987635251626779207523984271977026997516337309232406394814451454747911684889991552861686656928168592831813112565747104067656221339974820050563078281554403582154657325635141101718157628388564958607037706233301897791817857261058903314303696681560148203867512202729179752604395920085986969460726126455746524353648394501515860788370463492983646335413136837438667338146094205480761798988900050101057283856983366250591380331087009719035329796482357123277533240826075618079237689973231663903884191467057567627687286965434479118740950188989195542205974214654221050234828576165001661556384311699131113743333475599271151949837149436606775267896443753277610202251128212614279310863536266515402453155310570517316154855947772697961792712559019074640786540411923501053447639534501897577135856947399820261676401104675001284923506915918478270672743686441359700077054045027979162571787268857359979018390460113620805933415770415340083517077598548993022562915450706872779212468187471913714096756019460649990098399002796361618978356461414691896659526627323357468102906452312290696788362558067560717460007239136181392471543864031318712857236656753703585196722012832829547144656532219715586032472778179534860074901682843756964201730753215571970756543770639065593096271531661131077168974247684655215191245973246960588604436107976627723528558474529196244160603849990499479355194987600064128216692938365442319599965181556288395239662877795294529112635595656130755540779449127981236664484130215292595146908130204402662809514587719997215061719122642790419092893129029215165775706951868481192663683069744677305315066754688101757233605215183553790826391553215145334475657271650668920744207284502524614518434303164528632829148744840132950081179785065782378628362621525677032386112525089035228052568541277360572893205940940778471163671384166924199779369657119207450799273272002510340092726185749834460083156635722691796650202829479139967371467321040291437826268371064699916742335451098655331566031312873513413868999452788578566199886360374274901097371877867107233274637384533995236766368075769611237700813128641621768890398793036229582415508980531980923272224860742844455414349186924319937184532935249253154384736936248721095844245838261735083468384694020541463240064019941399976522371343105097526275955017147290056996188039639814923562521463344541135231278581485312628707588956429568413693282594344267577369311339642642930187986876781981299520951124080011032452391053175673597797276512655377721640839897561665899800810903968415191250601039919469216197304132567980100519510258202392081483047143765826339393262195149386148952719524732731554509704043428349409650755595262452845876687479511299934899241005180410647306274344723728770047653692876856871396785281371473754565969066471183157751468349250485534070108298019076871873241287177631263157245874969833810578865954977011122335748867089538984272153570832814093666146030428275927484806736207748840344143974766022193371923696664316621035057706234449914989139287654966871205150411226366220077782737555902797549503791645872479204830284251491445567227779137451706974998287362020363328078533487962079767663254073891720423751159865711572625450451386486501973469141048713908067230852069942878976962854782309828860116291200506885459139169487796367564930247617005389754449684097695369612115591345783183457185773013881637591649079682919793732578829048136705568194419121457251211505918307606617036569959319086686789004101078096574094485753763515020587532892911948077597812438820792466321389986196729639133555630913012245431488748936113104092325466664572243982229226483720782919439190566516901924611833617754027395812714086652374366904069326810874113564240787213991180248328550208063220633489106705150666949827413957187178886662188212735125645303137543917399742592246919328985590232740161897344004950765391537946783010442738423517673978289648000849600762635447831511505559594655464512940251168097290740116512600821817534574560471363672679224716743345484715406156713420091622945946568227996879650055564088277797547814796194391569041481585865641877485516082421814726713197254822881709183629657172089971923326810266306400169365602925164598821575398524964023949032463682334141406832942384632293349068778052429824156980720444977404516594431744231666635240721223981380901242930202466768844110363117501563720511594261559931691268061232504836384438749347196405788416358566969969842368594082804848682294919861951942861895775832876187601885068867203964409567248484378304197174916763821132264824720682825895595947366695984067875528800075190790674097962744597829600247633977694130416376050168779779840217684251735974048210944699789835947379956529900388090180835274762406580769717996161062553600722333103297098102683315613092498240982308042712043085464865510363621598939783087317232427931929948718708194021809418042100425781756815093710453187410819833540392927638715183862819598857835864771061666173591437627271140514613216850683764881967390588198015981993113959167452640059954068524135271751739266617741581538582849653652993549856722363214607813845639758377419618842243110144754145031558124205481749907000041804473261198527070010644144694233586518098378513665895838414516298575321603338410566105187973575605466872402607869320183861889406893837853894126698480592136821831437170040256186228491029011699190851260731829306459938688479245993934158357695131485795604941462001961703468375778880203442434857238393762154444462725281625480622110045717694146459614750748694511899837062474365970651022286378341379015223971712261830228603040140545589555485364294560916439104174213858297460321179889584777074800080983980488844401263397718211269936229411717833595841732454618359854132859058749417259616825785823653717946225415905373924617738380396076552470589018710940231858533690036415569440737259353916861029029119107033071215629163682265992255783378538633564664541332385373455768338291073950346384274260076071466075191700508675704299622195209122238133724231126351816313932446914858208824425098705649621103765691259284724738646094845301234891103938045059762191179921159027903001500024463108731466991153412386161230489381717087856038225344071278636877932905326176523927336968855784239719620513211261159438902858673728314055313557557203438875556129614334890851356909535334285199798633866871899276844079265841116668568484174714454086960828768668481814426014523404184069066672406839076840028071787940174230310107820943361257638378692568409492625560874003813808329724985452153215077689512053109881104275369222660999217621642627835694406442095551890524060683319854732306261953765420358819472808291380690948179090627292261007036153622953356118409696602279365453541379303149377934981215600358821452683176722950738164391304524972839702603802831110526195157680797781207900832380043206791348977020576561605763508533352504005693902472068235850208750843390337756177856525454330533275594791446415598421551022137310885497700849747634291533920584646919206082679752033978740832447990166941001014621010463026619063555064382396200754310804608752251931221985639929726425211691502113424747011328350634475176632631540531865955746726805015813744417604777422355131425620229027133392131528817652044974506765092546723239492689501444104586019124686710386495599912990786311185750592373711362907905248976446586649413767014349052022627492590047856794873205863189376570864192658948235020828186746833533264847814457891550565324101813931754270332043438530420792529199758871233957752099042317534762043284061302636245481606904989071455071746846983902609021621246231090830792199661897553545329056589401793981601593107497996504164919641080559608188922401307023001759044190785325693399824092695221265652730650644503342109744008379944708809577407761455490593611090034067427104451905704873525926284768577457022605061782499066586424261694234063646818329651412712512749171783902015752004679610021962207692970020959773619650267207812041624847050216041215176656992929390878712950005321636018299169001973383069591730322267345624732538201280788454160824434290235930312919421900051698806709906897718700163188674843663581721309553028352795454227396641172002150795644766758140295698848574056536217864240577147598536620497410672791846834744517715427772040657139032653679561294118084778636636646307340978328020948878259519219906740125538237243316912572036515278310906991454323205800109934989965752866295598064521074312522941894039556722921506043917211302038331544365692083304084059498867860898025360087752592730596419960568120195964304917220837046197793114764367855258942865534601594820709490262094529319488438040081119027724978044658619719105772320685457910843070501393434036643236671156561690511162652695598741274393672273916218020674588914434102155254420970523405073033756549445735939848404642137252803893367869543725124566144303703530776702838804274344081616963620084515462105127853233602930072811590100031908013321085469079100031989113511185052640578652916988401700386855579530539416527449073564062142854722760926797245572004442163754845940531442298450287555472713997330980129351227442455599143822707402063808290176264928574044967767794024176683682722486718878021841892488534106719786960792133715776258640445232483012197416912304784923064304850881544609198629514841262604076881232165020806405173252120689846401891478829303867385355099056594671137746339293836334012145786900925432849625284582077398094774792542487496321398560287765492305680694763743996113576133135279303682043123157966512819783666685541495030490214090680903127999755125809669084435488235360328074850439656948812690866312989866938854905513957630850317981237243997103692111602843682563120581663087435291521093281216814735383324792415020395113069566055087225645213104649860706335845381755411326690750821654682847979968302374604051506151755918021044170509857176460828081094715290790434446929789569511793022797801943184090142060693042690639621327838261625888051059862685229731191878774158049314445644131482583715388146215633489667418681510393263093114018832643815170069098647002116718151885359902796570458277676394030039912581597968162258032060653515326409482389578657072194493030895109751923020583267311743089611025401821454876365081149737384664788682906500424023593693459957117950089320923979541172013435387434120330802902773014160333760578144225675019785912665495572651889969935531984323974887284615561142733350309685029304186804486862355987568205724868101103967925697730047300958438883359247293146037142449021360027225487691158317622769401474017629082527752207517784869859471204190648671904251399723849655854207491513381531309733706210461315323784960055028712908344618300381209760557499492380007757774500862988113201191334143166948382617838585600787278186150981202114805795713547138436638725929560816358165252860541788937710218904666968962065404698139918981033958625799857973023311728435134435132052399696399359789779716718954072767838317851947255977342492592435502211878840413786789998648179371977951095457242785319242393132234964108902408065264014815686344513048382697429918059396063579898835901702671831404052661425473904820282076945576295611244609998747875505130802360681063890593845929890427877809814299477733034330509440490471555791411836020270882034309530032765717781572695468525547719661099167788822390611524575041733566812299695484552292810145197502193373981513986040839936720158685370023963816240410535469679517264354567546597534315066498420117361115301431540241062803514716660890136227183403948588242508617253653936468599138639089100399202890650263768943203975669514209890653294397949465050651797112081694260456173701541895587483140559954488621389875177145750003553392755759314436442633783915999878749722398469733048505929183286462202752779089508869942308841395564334918497890227011025093352898712814831800557569342426443214448388096684225381330144335756414716250101523946036880262362379851612931776151365926594462571373336774121278360402415445246830647725066379113848148949320127549295864602495375817001502708388276303223584461853116515679308539711678141854796193099308028727219190627481973997726111475582192383321591407585894056800367080497467619715803956117124700058149842437475212497052974741256804794907127589352160575478154299520850830953077430180750519350575958951434692694402229003997561897514015128598903345439079367744248499727300941905964166088653676093670603882201721687966237412563358117506167033276381912643542409005447435599076491420263870218122552061278657082328155184343493851427474341655442017770249706437878678779287691981349582458348545926952523221855445028019609853528609330465482167823022516814882116322066247437753801373617855581607238541514355131735732861175249862727529204516899281340011832097378210765717231557553566115539034592553458330334579275124318228169557722126949210702980540693800602680730355241155068019734925251442693525926106136032402760864904755222215850220149279498494765911867912891005137026867104295687004795170585052215214967998091044711132684263293731770856690925000417713322163511457870265169962665144209461578946813771844895018507728511887386978427280972090253910806674391651137202061076381178832912369170806571573269196566850580713381493995070125389240247317206416135385933920035893251915655135205963613012697935940730151051847713313192600424192713497224591436658150107776495944901694821030669799206519539100750372980994030073599184873202619606195096679074038216578397960933146870442297399898609841733229215175749911087201569092452115436042449470182784039986315117762084031213999755183543770050309958228379709647111160190187745101533689164002461002737264603034985515149516466073380906683141860019702764571427197575081967287290338837738572763744272053750001672191124429858171010680439091828852041258743126188618711270001313546656383218800141635464135350029452425051903152427006456103973178841000315405661628524875571728179849664691922971082912540094046047526992025467061520176532357079745730833910095508996213812828476197319576685811358501634264240765186267904110629823312277946197879320635812875044773347138343811513921598545184841221269353756772949955977018887020774385872923253938568603026145722337496750104846247034142547115657270398808916863224843492092976440064087595466710660054085636347284602264465175786106470827447402444181221827216355143265467534022869563864397524429145718883710710910007354824265651696244838354754502596947209472490132685507669933241788609782226714219662923277127423467271749212517629564298706014264478500858424578363179242113582227483786071444405243533324942979888245926903962281899384738087017301252731205957405387098442387238491128213972097144436928173981155114631470256468598268156197221901352605177422016645175871315174465450550799261225585049099520365765240824662737672748755715211834784970216018156417658074338532876639043456279378996310804218078487443458598723995198741457265180386139252826500827905929374260218780876738627538658785046727235695331333608145977333172139189025425856025330767366539755021602898376429423070584987985024746212805103946165524157496970550004431114443023616211912785538652898873915595987234673027917447626688601012188136903417183891527996537669609555149395534606755669349533584589709644369758093563848226283208115944417396931478165031661977991772888423645426481889791135096312224870749662079470464429070233242162628388344978139655348547732918717773002821877516838008820863374322943660837253627996137664404646073105665122515074386934634961224489972567428502665622977695449261909940990095761720162472837868307751707242456859563026459934161312963494615936325937150042090138605606073595854815460263245351638849309811134981849719555975328293589346520842849051142985693775660866039696846996187648545715128129844962846731841966783594462740329498378105985664540956918272484380795382029667340622551322849307202841519176618264903117170210171410273087908490942986846796799589318740698010141008654885910431114503358170148144292877518746041526974039569830858979992652595710107145932449091720801001250792078927329636187022885328029942257014124180288398325908769638557017321685070873787182167943401805647106700272191539327994269322668134739105189329829799289680695649483556977392659156172665676448555460764433708116692695581813797743341834768194355736114834321212950451811089794649834170588136194051760379536473855035764366969382605813751491823823744047251761188919818008883485935878109296335364512717490100230598154917773299731175722951355389172361830596504918133834464570599769947042408108786839747388412654381569129280481278182082903920738856485883963514935118073068924089500292611527126579357564468590760523797020339945850049566652976577177419642151243384702417849730249861929076546211265480931645610914084531927128069495574433914838721182565167329592055962943592631421091272357870443708869445503350995936048656335836035773999350829187009466003158641341876118426501684796376802393358272353464996223599110339193349341791375290575188036425270848898758731345388796278887954240007537621890089556901268980449147195030994768279999316532650558481017817529283756400667741688771893809889284313984129463710524189892727949555611442521509106250952903429252857769873064245552801553628596139268132799263832264180474052026180387901020079150908655497274720732517056191476243919803149758494508389258659417208773592180178295911258041518460568940465540892617657004765833614815672419406064174091699930823487932499082816190929866299741657697611661897704357140761503790929013051339016469454648792436329013339937036613748288560706028192387283681367279924055205241669495418032950824740931316835864236548054163201914976840762503540338864232984843632773616737392257413225944414329795176401178394789981342364538456252142028828328395429428722689418846533189277189038512820161804456677383389437734065051364112136537554910024753866816024792812198825274598559541446662932828625465674663795143105801427457080777207921066232894843257992899535869937731799192027714318926308294679279854805203891127245399083326332478782706805916337703210972792263922717112273176623361088995625533918711790994618965333245794293211170927958263931255762039795379130878810758578959799374400010377961471277085875411460298829776433218733857817368881073061773672283889017940729867045581605065322024164247792458218766967044894143740465760071066676693806078749226038811098060414607294308425749640964865929830913639794215365929576120292256645848629358454246720510590430603223471719363684245169301356233189829373244640569487552982769911467758240880756595882839955023593225338912033350629863826061108275937817588147134289283475217921692354691529555333103370689175295942671793945880320490298022775610535764910565553423972284690243190247627646543028992616271048324527104162150303857180191030988157749540336005052618456340029307632544832217700972861854405148690919039215616448011543446889153107521240654238994260164345955083351936538906731221382343641460677548891089130929050793754230698331994739344778970684892606612727893251821033205500599735902370540704533806263529090044385244901959799172570457382322660027068646693219686955398434949705734617086640337272676618529441871894357278959674824956462723742098648145401098425431105099230929622464040247544135935393639763436190019256456514892030428414934954274129323691214912907655986363708126385850086344678993888038493692576287095564501892510669506515224241070010486400053271247891588483167142841068176393737086788831991149437373633990228023820229841196183777823274733340742638516361052669740602728072079044842243222775796068568511668158710734528815593359143751873693351888544721792412546207685774464030691870345028630399315362871390532018601049197498675944281501898686495214400950006332731007966524010716919410451109176577396094141259222548339575132330874109615365417055051373289172275779948548918176602067947622348724771276979846552894141112336826111790179629414208038236800371267842482182684331202612793274869986412477388853200529434724443805807470058156923488749139612513373265509945403155680127601337885216143973628431673250995505645934216103065130331557549397679859421352045194732686928539541630201931102757563564431982483550840147043333112440143050203297384603513519832436266421603495383093176082164416490585269961555995072223863585244043438005285761665096550766592146349127854893688675582512105384739050708748766995494350498874730401481709425590943056385287661318384734528966913667070286085847509804071625268021789193048707169100119612065430626192166334472160476506898550434737594015472773191846686060336376285703936471136334857624849419440890878904812981281647171309500450011443509728204433631936845086259896613516130135912417377221687276549367897193013048082125749396539438746551112361805483334303656837877950123342736105509007447563388930360634294964798985689547614684300725477480822075066914358678952232965629688755405078800787288227322670367590634470861541769763729177298077179570332313899723537665919456289795382275016457946334825428892719879571649513322183520930570399805278435893736385556784107763160735228304785122507133430981941235451180243965713901195181720893772082645249206762986436729798170533750484860857171637030966813859270868680914923339149258088064985659228507733057016303860020191226689090863695394823672191628811230048386306430902662081896886876303541718988054907354364045200492905744109401237991171707255979073929995742515549391879190140964658316307629586924240124673931083397551266340397889136624304733666310302482526599565496243369448790920433603906937884014132763254487470334314558701629022923135091913279577170640296286693144455664615473014670191781950738780380317856557168858529630696647608452428667681073545004759703237082458010915068789271180063532510955395737765334121959194420421586353792194398741595233606087332182244178682184973995267927226342398754763621345534800748759224662509878441633238298590703964252550555874580512543015094824926019147821967355789486410187623177712791919276618962337724787825166821862084201443796610963090750471747605655068020751518875778706310371825381916274013541150886967192212239590061516948749376794366952970310500392107456111804646967555133558729686283171790725106245078858181047962231676431607912873280619754751605114207819102625072283037937678183180600795768213742654715813544337731158463786469699790829978282679809501467749916734460289839403251469239020881210157082011608414831627240843159366613470580890104986936904544178892842650921708868505671844670832674862333031486847624139193024991006327187313235844724176784480224789030906989100324662909107155175734267638500969230470070674435500828775612610460210047050878274676503269951463087120061520803354615529723628503377520364767515469966370911097136259436432146854483514808235593714629017653694119177861008503348223470258799455326683471691161215780772636182435225464240087578819469190276960368450168478597478061709888983520214227805194144192131248405029020795513982492921474595705313948715108201771657029671245574497439551855153862820910642257102373063646797243890088651964426615997328441000360573547986915445902017673523022027239667882270315073242961771887869843288637811509613618680342102866205997129585948844635897944181527702461768872961175147202963892148785906028380376897906310393663254983459656248119230965138223821918813102946138036304431257353183522097270165256904594977147468713052384634431091062735740181017785734980638353604673148534506325124240370026140059027130461582086036890163383854806641624094564886249734479074263072503093738729524666361992261856679645773584431933616298635137356669134678623298387442568739402440142465034648681123500101178213911805831985659548954566154672179664256057158094396588545891118401399574855024791705684725530746108072913984151628739528026930168615394875220965543362111449852392273534254780765211671183999146409757826876088991892019163914366042223131108154208056571878659997027330330858392018333988546871333252222996126009798221794121477094095892811276146756625915647794520859242928589958849681672920149642190962304962049466022293929460891033656540013969102112890831462340073903505773981863766643120868591055803144952589185439637498870753694294784934841854941124460883768825892630317691860824893025769130414157437464617158520628429976533018715239471996846865352153318270379138926733884492220277494327886045773611565722649000549279138740038463942849595622916916905283625575963379419241637394824779963267888781235911839413832933355540263468494425626340370494507281557023111114381350211948329462248676647110834150955717250942495509631230549388060377865705395020450090538952150811995226779934350149140816544090798875533200775111793263776901368120519046545103080729690321469414822656655921059776401096773535054444104903226499843065750354778592212829947131791292683422063932536980591868745858977164825366015711217988286586132086314446051817091711524774549969220694746611614614195082333566302037309979482501269569543736513348025114896148793835496019804264127941532568732667710400069923553482727639693235344322757950025404248940512961154980738518645921906910535317200297817915201979581349981273986103435348643820211578860184866023517212231096441449339217821545154444257012241457953932001604485425205203975593748633606475224025567515222470641561590080804820210608173244179335009781540999117056063297741200678503825250611245864421488924237462007455983236249778726767430706865622623302022134831265451763499747483477192816039105193251059468030916205805472359730700257729865090628568802172335093396806209480038160503485605564828281237847368909655648019006582857422128384879447027862009180448248492858713467114396530904067031058300723285098757113848426657439888100671939055470827610365122344517865522275219888431698861448746701907181828263055740192706710036620928757453197716341119752405693316259856350352691835338312990276829972988403263996798428612508709381691866923251585599025221592053238436666132688798106561167529897466440804158658273863206470206356237130435856562748562718553450405516835423591893341739731268008449430241175738065110090990063601968186791609101837512692870748222016307672827618516601156394325189427873363262447122230116451284493968950135368397052629564857731472907724304977877123940338223212743812356935363031062624574435644853296657201233048139702607510815205805143734941649772266235220690311760831075550866384861316896676447104345318865408137958174222751866464318677584412005736293761857622362094047013418511141585698006941295109259701767935445229135538264248593976825810358709317073829693111121191929100895636936019579380715341373055861522462111209419633489776228927154862102852495634487222308809309648567202720914237286086045158393134157647387400386012497781949757996810912612048000846911029416301196141393686309692542955130338792474225272852718640578065341284335050165875051568272238905220383233509797427748970361346743752021614405645681774499399235785232050979281845102053240163413813971127215227632928289025213506137197360287251140001708217350468021787802628747001880597239678261520054447708731524099201652770115699891312454014387441913360128390886670398477860805372449922969050062558428788003879249568727743773413472361813608012010783377796589287214118371868636494558077766037840244024408929160040737084603646332729509456911789810465641527602259414838344755695946156775137357581818413448391128106550548467082986013908066749700966611047180029479860838481838418796624472543575075134852435761100339345100221168722848121179549731091257664525522449544501856588015877931571841561298572858034694310497910009122567553244918015473609935434597330589051592197398543840433232758894641160576902803446463648063439809004165347941745410830863253142854108518839058319397732228499816356677202779179203604848801969614350108197376136816908768426519718651386368944391754169323927308048249566490806502790304498274045569468579677162657359574944048941636107797705911907948618053273086845227511067020309647111141089744536509807516834074146077498600056117048759208418757406112863856706494616816922072979711734292113714184709731706417381777849099764066607007814142710487118938927953353769495344153239400134396220692253121868423391466353387952007246935048627984338764729361569376011644282527698579827390940223923341925222600851771077748161503814917390304240947654450770554950947621940751150870626856080110218942742791176067433301027487732689314580218400575872190863804685257839586587865068720586122247892340594857636827854595806417645993712865543784806814775975531181331120962969081215428238267186455812665071549157046170599683624088348845322524356325814693675857420727654428946380365292521438178127791270577996329901203550659479022658908605962900406035545607655384625498364322100013829522240868554371614128724567737737473246052119181210211114669129330467539166754834138822181484516759777713745021062302519498653682430289407008176191357236394181458110401556468780259372441236648916025730142854932817667699231902964055341493221781659774781130190857559984286243101472388730023469243479335889453034190542152123041006559888939055932191191762937143989170746727028442433723831672732396996208130053182156984562979203954122465678141371296460832975251628044946310886222741082422829954305712700223099465965776066693843296676505034045397401586556280168945857786602716144740869543841909553218289540038132565023100939270579506591667164363654984308198785461371589122214059286772052650176478163678111364184407409035289250693134761309729091135643942426629536828923331983759931935458420620946568160401708128146712400985736337275429492085413879121222310195214944078951681178779372685114357672175462149034465419886980595766733548516319044410550172509925489982920852711481764651100260005007354687626963559539874818125021352199457316286157512948229214843504813748208261716216505498160053996215161544660311534227952400250088140886501765761654052287530204185288650971064955054715208928309327228598940463048253913657944289717745750630947191762529187569348361379624638045432511152396411222375270583833504379297441880563528053178728716287278353473070919600110798505191963349280140521025408291028259321612717926204197537189442771464456669931766601171274972467835867548626563515794070455972625704321010727475741306832692488254342656658061679709643794315577246165282650924263042506935584828675880900840807755726744178742616476546279071907931155065055933759912833363104901525387568296404879944643323647164615871938613486039406056410819459654126954048389718319077461451936862307829353496751621119350543170052768171316549470289207880555816128639706620277092634975403588423685550116905618445107521718363352545740231066716257641921963053384409526130564772611896333906281717750365777606224769648596213063801200669047632893785488265305231875555980034694986484990370610694534686842564771952563747788052412008788970134040885663657932277448846773089783615155833211264067080181402356886200501842735860074714025812513291377068111952796083387757186939341567889117248707007181564183259430755313627292378375860069894610839898804929130016974887366675241762413310066183458451806821251102920242145157364383158309035506409643770244574204296495069640036918707254851051474908186025516970959341521895017360342111279761213276467624504841369637035402338165568797623368574075480152257536730650965867503496039365133392254775730476548838887642304956478494637641829147755002616639134377588325468232549164325251770360498067732408296757354750452503430069566480465407308703973687031632649322781806743259511964343265711984064698051266137326883477757001783264627440538853611088888659534333790491215245365283972980769450581137599775645084424716334090207770681388460486478472909045345623805850719721029281484558895610623665626022944247072887327614190124497102451355722787204998843703242413614399334239464761502375848556847555905716266614766197001950027455228721412020000798273493532266443082587385129696440483659342393849952354416743719021822766877415603307068109998085853445647930648879441236022790057356773550306755537937873885392770773276350677613772289551170181799964658683346149648958871790591642354266173622619965729254670363643866618377187561820868231790463582895926239324506340152178011742463744150486261030245666213178071508003479846795257405486115942486118908127162908024743078550429262174900708378131448468755717433702702914269203702613883846514581897502245992517214299935485785370064936255256105949115295834230127521015892806224277973983791778537621077009090507747103830194034074322312094233271158586955641943493332707230532159069897571082927923620533797647121407087228037753129196336605126284748892820542693301847745385583597188246955634731522819375570311292314811223235945854691451096006996391483474352397610071441724742586507894769219073562351723938520989740968276025613625119647538659941580360700698833947950830527390163931572535886577188741887802256654265569951018534957225211121554992213451507881631775194807611550287246815711552941653070761482312605925125522192226818127449033737754300504705183873246354995945523659049873671151806840060318400396702348596433142037792830208186343108419928797536548395206719332336686597073950194669842864305903821276658206665531316802990714792913036500942074296981361402855029021804832369146756787803908709926913341905826128054046879692644356739894471446065346250398574546409712640670484640096237471712900321658764596119540431337514495661990640296005440058877528189275037708420715158032615278027726595215879707893876816822858974526831115407708509304828075303760346510196742253382031494534130680406432796363987801565377586729885560703765224197951428001429711660425654084906155446006413128350357440225082681524740779101235676094911932833635922327383296722430371085258557627717891638839416341321630166422442690773781495417065267075931573951975593712908228925316962762844108101719418044209140080311663170210966242300882741168874612417347387654438978735481557549294724379707585107918077376921635576144433636952243219481007840622399923649903401457956341953014626546830786841899220413017051051419690106160607039617804219289995011458957740881480351293797316087107414178506008769811126744436818065150132400812184871161119453058251951388480913447715024510122008671881258233776461704668083319510920737627968925306605216332411139605649404622158005687498955672139307651537719347590614603343566094779826724695598267290811840543639390409049554759708335026954214090025291960955751574081583028089177107763392857795011206803770704256014227535643360790253403552782895355559738830735056530787972993060603948905661310406302587714736361680299680498446214831913997311378295581463315051247317968345270146613837119542075812501080928310888946725723471806852210642416405228877719591651514038195381302685529264381445852143411664617117301419806777445019228884267205854519556117610238787837857829350175585242406410611668098794998858797557422833670144228915670015061599317433710163790350527320183671035943502100251028499228226239760905677700708673005804390864295824673351210403921747964091897198079076103501137506323010813331149365178479820974751629031686902389627151569898988097229021502223660270986670493724158898202841449531335555075525614322452842162626508800800045105012055324317641076871142439323678872887832708847168990226423449828214781452654409806759075096182393047850237925371351480378216165464684951205835614537259289487525511724677748057190096143953843802637414014804959497605888542990949354258702137142860128645437706300011745476629255744792090735069333468746009795224302273246384616324845516142056510001583505087262101209979501867239706900864830063740433692218294419522876685103628267567353337761646418400841107990965170482487268988234964831011658617830113666161791306187113424041535852293983454384178337069541890636389838376193964968379361247396005231328564078234628871740675599988343951795529294890971995975571979540252325969548985229450668385310350247662043167015527348048865846517529704120107133472467106269394485948051023924380192019412355639605100675579481049637009141321773544242024488874014821813601522136945020451104677630107436444170572225675818824229093421573436432691813100730635832667541151422446136701694569430961191867207568889498698924977366024085388032009957334990798428666499037720731214164553778076726547939038965996186848568966722143945574470721414138579186745717126605633676425819421616676237528433406597510017765557402545327414246374260262958023042124576236389664222965900221706897831070352675434697040416359882342792338686711346034576193673081417983978801693074487042417498131535848803246250923001732990031253659116955559365210320338365951227558243551544546522793139244298708168477052518268406977361719839376545800474468854159554321969743518550591601393636240482873240528577016855626321807533628966877553245845753007562474824021717907417151112617036799300341789972548512072150731819881403635146933715507711681193138371060599230670541022091802098212966461612933848733017577009659192804187319423833410870650806576989386260092319284063455460891197825951052177620924299229555877287204077715352293620743983169735247343210451166102187081854034236055246265640653221902500545623507232601025307990535006156576690247246093932948565081202388069767516398979910237585693687560125755169479747970782695996393472866332138331021456074825792897556333010982674883509443409705194957772999765930639387543932845232808995883708777079864959385123564908276504837718436388694429463488246887179117433428187667390811489976116648598301271596878176588000672977350300470617313103431468787618722031058070604483973773413699414474908653187995961115385563940324807994141379299876378446537193625731274715168209097678786908124284805405927073266807248764461945826504884364170342141492661724918856389112383599353094078341683404337636579371765991610728912017172953446037849401031170535380348569242814036673302109203427442202619001192156229229885582755841975683392432896623448152988542361479304863761152113198022305459400273596413909442832719710067879070233103820918066207082155965593198748867875742135293343808080409774200616160173273697538933220492330623804407549831744192359239848295896051598909170695817419967273299491214035319283004491558377147934578171024786205053173223046079279606558253352844380662541050378661303746714092963458657391669983810811933837161059585316778846575761406009361136968214784228101263635501909965963546704547388458974216070714742355212753398219524519200601845502213158692504436939687791668766712685615015698249779346111966524734010197361396912572635174102212414747658492211128196812115259067926352142153990651163768404087132006933262521722990420101963516002960599470442561854365324492332229985163413423377231570521050984069293420352032294441564369005756317993254953818348139810833376736119786300000034029292429958823201748695537793946903267736479847845434452251347119704504007427763933603316896925646629761430292171878531260133095994670374371650197649865015518022006790804974296861444282871262520024181118193788682916132322421022415937676829087354723599340653582331697793247264542357720506507921716514921933324708359872523009097091447105020184096613740066734284713618278972957195278326876129141107609145175336413168123898081985756685251729105919388117866022243812242718804494350989409077666160464376749121693963517034973729067356288286806846883698514612154330696754128622373725867905209271513245657711460083343024311933352506037228334743246768722501763478984992141397465600678225114281666162742466106602363722361476154944009428989067951157095975576501416115753375480023348557001768577047725197501226815743944963797846485375776714663136959884901435821531029255352290057511141006083754230950342272566767896416625575871508913931797013362581039739391273089438954965522863611974792718495867201845543521513106752676918710383328158111628935206010010241891643757453536941764490075148521584458318500935169823123320166984880096007426337844095673395399084891551657581842504084835500669675437194728650517108936756450776644235472620267371790595020869246506759078319730466455703304779865036891546958573462362657863449487368100306898718370336061196488634543633463625480356828160230261312603282834145792459097411671852833841910979603335800636040785791706882321439949611742089586952545059960109568840199056905925173737208504863176783291543920622729191742892201611612593295748239395201346357945708542280917620634655717416802156887868398236637804464255831118399799056423659427585809657826504278039446461349632072066247775354622276013128173825750197298172679257566875022651362900098259102523078903841393134651515631136520409372684877346829448329819028229520721312771018747346553809543689471797566437010052435191102135628682811841964535260116648451363908517889515980413234259744743433174055620747375692170800554297725332530081628927044123027954281028249734513038573518277096678642300243671448312815827099376452648801969666173082010912910824899410161209895865650251364218209458441029504264133864421703686083246381461562648149427465450959828688173486833047988813141679211675763486344816216772792532911288477867724690497996116237593729216987527447257053252280989902657365650225941423567485533397354454574209615472055075325404742434508610995216393194516516980623873363795473350479124860107787161240334581997689481384658050362499593122089592887698281007932868057176285315136465099471001610718637268369706362472493648924112761743969564725140018164415756347946384158076521953682744685764080921889396493675866154525681267019495872969883907650296743741040477804012439217130554414519949406459530860044595798272580716079303779621145011107231353561598843561853080680743753980098484506339669850957868127972091074636416578847223579933781668686899842037977033695369944876867723878885485859905312295090516980719438179859655525822445674036928327004595073498512085723755596038916160222652209975764034626045089015970777834292366611048592052730654361534504435834553311412102785943727158873497709871883211541193925556939857144126766959010442568104121530640495355158508874387033235439529236826378628453693267806994429811769149329778360103395664122075506971798506939912381018030904731905487816434136295191581560314498683411616338564510902354437358769269527549784408972354884885533929389531496995931712874927276714193124997268277658151240390093534740156013788098461816040233813267574890226095984373986284013464734655820535234598571615280310577797007500154380084504839847717025610381921144490556053529847832467137485082665168704583646810337613495550778101582325279261186426179101441434717134472140890150686398385608201849133662563491889024817860836116050535043831309097753381425256493189184423116800154796661249713386666687383407058962409355144135789080621524378555415258337678201990268777727671448953290903038466255355552736619798806759637040015535857199355078616566735656878151610181125745622918796745619447885472299719904060304031308931418092429331230367176885765407503975289745839882208125936780161841261102887426735860441971219654248012150178581818849635742693472702980517714654920318532764457562384783066274767127581734055658402190812156151284237604898864410533710621909263059582299800723827704456904149449804763008159188310052117360843855734572796616158862736818512347354369520621223399545280474389408665937338552580449587046813678253385541079354990370415417288885664364352334651334699485098215670039556445132956060578774191719036169290127659347777420204081786888202483377364159061957306870929075240677755850238606894475065727651227747883848598719353130817545852056254789415935154036762066095489054376868773612118922172560715537204163332426382099889727457181976933680145748910061321238803056196697367015425839191694545786581903011234359450697747704165105260041591264822605291777008302639995188744166315174546604475101235322265914280156862309979368058810741930591939101296538704486687469609733470803881041658017068359193200911731530155147424195650169012479649428746812413264755865085194141454997084493866121859410231957649855166400808428710826727313037751134008297947446957846597390232078660662803415636619297857915082182065975664048833679025907364504792224357800888518011203911227099716031114268893060720678999098371951665153852085101458804209454392564775049623455366337561629266881348533386000427486059899780768498104828953638653339749052946829150442408562776670623606914359259477670619014937549347276940539309163604342111458638725806796887133372294747220302556092853853739677547831765068310646857059645965571627904389334247201355058420789608901150774337010172479443623615609261644560654640539202693788469186025590507009060435882623616960027180119820162995203448651569343094973454763128775593302996157813184214030172141527521856945495305091109517375729393585770082126219335270328182507203975730887811346319876162641253908054758641467483824117271620918374502146333016597877174176566059550880154456405131757129667410861031932467486030738603068440043005110321442345323982005515505422010573215490525192653900676544837800492871801336013580570504413254970803359297708866522067412266662174472888901012537582142992793016690133636029755202515877006603856672429303266596907384620433794207735469669965591411730280222608876687673170322473540025683309809241626887991348463617204878661522626145280553719835515986233290339294006728856379339887483696873402913488866669909546840227553812850782832784266650752974809257566528366416984034661540601424032502021036659541733195752056122165026265593406134255018006970675394007284430798553777647116802083521887400645876975798011955818292423239568753635272525870574967541596429313846036393905093202199709038424413149865397251295871839099201172552285053581377953021319619069591694122401521613797081517655820693538268648747528592587528944686267032288748589721316796160540463897837400347716099087672186665648623066012961990861172860384087482092912400541949395935593437384352618785490451609515805715866070762186084178562258369991817604219536799870874709159295524847241761910883390180868535101588980377988181509291406003668514075906953446521740136152169527538067050682071122703496044764736868115301660148067257468706412487772055348202192063132055135779963113975070269282526300910329990768836816122603548534104507085163280593512129270639098070477724217835414721385431062987593727801427597932053954209845812412751412704805595006369003988451803857545327225421552645314197271105235897085463547696660739426859108160803467190687881909847044427361931110431615490933817559808795529552918069299313887068557903688434129809410727074158872183591663983607504049855769948550072813197826865369290594147625133076336230150240166002963315114565985386230691415467764574550965903487709483488440555486763265941922550675474274057482162701456446856581663229244641584828336159590596094954124939563998368627765260850877759473719005908912536607457159887979207385977758727415107657916193565314813987695839836072196382486782100553021262993040438423125902760254341868792762561542624220838083503817990357389774964416229081636405439869836544658659227850777911018728208840371010879243533383858311540941267859155349955544310819844097828505600399584304786554898677538392130224445679083234230307222676860398472251917196597916881260720403867280562155930378127002778031996236356164145651642528412843562575039033069597094594491834022748410478056303277824367147327791090960154010631762574386592915862752446084855699374288165266584094227620144207960355192401972197071657258272649815308853924878165581624768562836278744522289736941120970181834287474413826121892517385348876643866150432035513832718654296025012523099290622513388896439422781782401734545860812872934578968075750067075117609129306966980850288332005645843092739934338872259076825776256526666975092622428591726101571362226207069157301199354926692000878745033135507312185308252892477056477922458939968696054983904941210543442921416967592772800881099186661673252424215353288541987401697784016096306695582116874115053550630068222940385456998330820220637791939938515027585690397311764025681425632553857943757721791751213783606388331016986245227669943909629052515448484204167099921095195435698796736409687762954689616929600884678122132701707162531112247821076044815051132081049247355207504557256104824227368373428488552433549147705026993082415682307810279391881822463505884427376345827962853341996789783034933388489442253373424475395048490444018217545176817060513172008054654401350041479817889785429263211135507581742705367260946454208942659665213568796668786223753400893827796912863878927402507478631801290763464244026476812430142077890045964526489526118240957461134384076732431863613295417908539802063529674570946119515040506321817539725717250749385462558010653286932786310304967436493998031534851881978643497811030438266217391340439106209681058326406437753195560988667276684121046357310835519950223294165755088948682692580641031802948455917455585136507216119933540218172324820762845805957795898566698934229636874097185857619517068871609223224077935494766817320610546833774257577837523292182174465858630128566469707972064975863313071864065306463696510966639023192842081467946570026196102091887967952372364737639941173026702093418842392131201719408589594338615331571961251585970169104669062879117376137612651298575823199940170415121603492724830129682747380053552388933370753570288060651134416951706324305976636253390591089605596740199175116353455848695641870775852006619762737702618696625440152868382554726064249389510273809986140688786609825661734491921275131878470569567776459297438433707490460540365681500785853542451383316272538868263137316672306805321037296730496842185065635849558669100489729964419608834871849362314610812376312152549666303410929340791019713904346854625124753032592791011073834483715574182418720033123403523324497352254437408561642259123129563260296756481358636751609546831358871604903379431240548167415357334096469818224447213483339554280061510939805787989970986217367808189015583069557418247411373526039188003793217300527335327625380211488893264331901064670990752430867376957931275152380034277009092650895574419984128413876317715923811725978703457127693248531805679232206055903452336876382300365631315013646475552262497624777556411085565610602893692971724298224638097448807616402646892990967467652524528332276220281654569084975704508765177511848464775464621024797454002144562853134011238153900422796662542644594796708712953964245249925235305983874135556934320553248573519231684580312152837578679614846657778717301273282955353442363779799463271953358951194885102179966817087989302295101112351468622087870981321099699665615199124169075089804131394642420017281044483931138710100069272947056531143228575419368331105872979475041861771389548757119013895385601378573132469303937549569123239075766702628971861213224838240575353919293419766730618945013074081843862588006474056794183564004430662042274654123717505792661648345094723374333139712711765270532640238353530614319860175026467747572714703785542244073639433453198338284127102642713945408829045796103358565637102897728930513215023887083983867352126667455498251418153005567226190155907222868905087345640801455185590128617925681310917101632663568498044989448430253640176576882057761539735179351368023802784464124270561642907383057043768628585705502581849139612253451565188214609828126584592717674738663844990981965629249168415233120599647702986931379567360822234211417971344523899872020774095933679071253390009657358156744072962906493272634960712489056627816622545549445180341374163605934841821215343727094554683797001677979227310499980293364767735981563166899808962176429897439335381020908203243333030760013794696881503667472605296659158678113229824793394014486990519430914169756587141816602290838405156071803879852914157978290112688084740633747155050093431812868848267878292235637584575797204860846041206278559695826593229919889101441819176623133026549520522312512823404319986004270601327673376090821607150046107581390321562603285750797404497468460602995544957602114359222905768945707304359609197671417026773672344692838618872437502955712375265632129252289035093602703323265040986972148555031395828107558428774460936400300400521984683395521722324598330584531917539510909406694687697752525555791013118817348904524541567081493569736231761828580154673506906607468425924641112063721219474379688197376129831456470610339971692232218641188494070959303410740912236189235365308821033177485990132305344875472931329041134264580648327944286245381991631381173772753776965518821129652591995433837441465585054362953411799537001779919864265541388385040482200680412772019616520613502563796702096935399961878873750887154263308446962946277825138143856221082738650699388246622989949886297926343965504573521249574630121935468066978422298302682587600079890273574938219730307718360506746673414323007872475510074855537435450959839739226471167255558882544131620247287371417384708558145671864306318617347638473330489938674992640140085444410730629295717502211693536506327611762229382427370777311332645398168158363693564718127680725314050390577036942989792935929363935172863392296048018088130310042280421101644149939586639899405248676779461161845712325653026945749732022379836659618003771479633633774669513505315131963809566291976815522155820740483792182275355610217680974433771643962081775408167590255321406528107682734655815028422847070390339959443519059846261371549643683974525404406125626247935986525793232511772717114537785195510088687715119270173287322277440850565349923499491343633511830119334308939044175768176638945660208144886102100902726880191648119554079532281908669469312554282407069320054383527060795527314885447342833584654097903244896750526361276616842941804207035889577059575478023278670900222351969419778339705446620814421493277532449389519247945647208190064662518190769968865751441325733579869669514377870582554480203023445104560485118850254551237518446246763396569374582023706570848508106386111728189162644318438065225874170341883855413598584601334788204994645486742516228100725527932823295042133330142383405728412703163872909992400596293920407861103333828016332896655964446832936327730334466980266437472971949447509879932513343772819897179236366379220734484908025779025934052959163342466854258515994742362766651049479690685768338534730754016520955711552163544794703711745865511582068095718949202659929785604665541532550201397632989581245695717410221662325800855058306676230620151004700209332418354532517712966812337722380374723900615027342783607984181292255269167060116870281716714996105620583498503284280589261727670120824656514240131424416701718351538622290937058852323378537157042955254557509667117926718081268418216407418052938346500760740008670303659090460184305769154155960863872832433101771653425966460334484789105683036872402238280975997386165573357290225554686371453987760406512549994314630922877993551102345022641748147357103177252971664453146317971954168381749440250016502688454684228823366954190711966129413192563890438502167464102002605227433954741015567976456287383963676435892422458440469191505816149250583946631267564489725349507732414287145465295588328240732163294900490175187231849147681024532394254244531733986415579011793702791689010891320134206728396545798519671816615009952352662266569110496757377783327553170459418852455749099324441076585166708955625593125636086244672725064294516987475306453467794782473076128418920075950124426501907049579202664151390856409028307044113247200805295117656222505626697341631808311734811379262836460465318721805567503243475766146115117450306469687803589400487215717437777011161242781536660805639786646982793965180777673707243882351232037478638434984779733226359953511988467212905414509124606343651436794787215622559407450586273201585330405919572709308302350079331222264988353014789536187431328938189165491116862232897700420417670161432397211951697037655038579476969539884490373956051876680185747640198265416587299462059463696062348595048318866280771072162821619679564966758395248546307508252424543909624279955446525362064465842259732829829751583463064535950987714965515055805441993617861817257208606629399952609074945278650405490521218154833232573088662692552689405873995705496725891234675466469471988521680932651928220297236894320859922228569968075724254984365823342757606221615303398075970554391908776859697063654355957120998871077906131198035185455537086032070317413980301336444473087509153078761398676043132756564089060150188277354262315554743938353921068156810057594823766062436008573336527095996039441812362823742130117951120356637903111845154507465483506134407602501133801769988446263497915037173408975388773981600966496340861559246149809699109933745691348737976355243624454873042178177147940192519982981560818868879244587002465661671143462554259768723795061676908011790262941350369628937362102090663580004938948576071752401551349901112138129834084352361990652376889333369056546242629807921050878366912537658474867035616757013274425987707593683434106831743848899827083001546680848956976865554782754229756075477605474811595772471041699514724929895067060334963614994008573697199569656962411788360326513621208704396420659757726636742401080719230809938814203962114180411984295013630949991566760667024197680879090487347046805532837009294163608858285675382406136099147506679265299526771699739884668634089271753321272703193501440827517532646497408509544375201879851372136967861290631383006670107806703412344038807733501347583736334320046794381888785873819363940652208930554010137579174431751004971264897383959289656265885078919890975792644522401870790916235741606601713300495417253165432747749637773039208825914348811899307831165311166834894413979640677606171049552484817986638420753249591674956513114083777486866064517621259450901426846757637272526436061416399276298272211458379449843729894405221804146397328568625258906178127287957203283591164758644642851325273750858293613746461063163264012290648252759570893092528656054712675435072458758486404433271666217803825163579618423676845829861078694996467969856753744703941917330668465106820480599987660159683253827657480035417938651351492906410675114341094175797528300021921493387211842674712749325913416936044556516004740331308555589656330305910209212699687566501330083874135629014009870966070481288972971309540200117443145982007770128489225665694979505848906403441736684548507817685730415323294109963546497260998041206385125997943817292321626683769230754230519556241055134314667950673906659492723030781488568541973958362230212569345832475186106233954666012729913264275424805063924037382057517663218677415223201764787067609253750230304668283605779829921410494884238660820814641246595796107139640822529423412502872882689095048791702771346755699928690674079753029783467944610509497015118478648363565315129148759773255886526286359331038491328437128100127116759076771326033727816089532614762846301744370254340539941994250133260276305461660773653155788756852903505399879675262384171737418476115545439143011655669771361647274590139454547922951393381031444170484358057151923975561880822550203285761295738292350023560928170636756315469765014883241417900186540652151828416484124628293076033217831633293306577800980067544062282215417425735851132252237953535454466348789653930952290298642391526427653410345210641610306146575973113913956784282214960926872877071759367894717603945932401063405913859371810985215136572525193261544979229877631476410614518159592858810044861731868525953363746820056734248780539223289628173703999004663640043911276270958588022007414337066288430733908722252682030463659002826958779432566483136122073404919589843489561772671002642017742585743804741700598367865363728653587108300478258486248281197878534629127951469573250457829685618057566952340144842159011840400770473046603664581013032131971482640428447891691008278406858687907719940389846320673177681826422030677773139982087963419053080114399505148035307124025729186881759766291829616220893099857531169578522218607141837207813801980877523145099999031376988466024464582503504170684498178699641734897769581839449954062126938092517506545701081445844716297674461760085896240378633225212623711074810615073759321322843621161020811985852167597987196309876988827538815548660538650998716508728705412792853803276064148307240427093883146981355446437589299968694749106052029852201124555072788693724817521383370749296949249382358532247440250703964456264386535350323433848917188995264506009602077374068360085496237361586103658693741817229936377416397130984596333065618758649524777099050807955011271815244748250729140963209409390710935034972129120155386860689990905139432671445799702589639970916036057537597970892724674125371125251310520100087489443700998395460030266536202093495874175042651507940134236039977429064139754333238882561273702660999980523455516016932361066547807605304451844399314870001639848426474437817944478338052338148866392076696722713332037722747620635167973661516128337788840419385799346549266963533342317686179370000756300377773461706245740062566789494573954828328144325268672887189684996876965503360522971389386954640454997224768357565730811059996525522006601714171182861985119204508556269865731267282014374966534438481777469692358676159652832545680468201753027550454538927398855648489611015366726088473447720895456849169382259425650093203638305709546029125723445031172264899231256002314348033995582497226353006881022754082181210512342558729026425091858924871989078987489778130776099071108240076651424886948776163012222402032753250429695954943048965388558215244330854163282491269541304192600786070397490269057973324054644228990491125581431129890629491085502386307250949178852349418852115498758645325636533523323431668278845881319837389988760676107694150588499809596955272549605206412427441318077845679327423301419659230020121345236736549259566210426653065138654040856466453091614010439366141326197702416494521979570489530383357054473421706388528441502680340487785627332680220896910760861670415200639345290047354881645275191269536232660116161553495473015012357420356394740101318616727749939032262039244099661323869694214165193852248954410004468951592924909501116471855961593850978476439916504530607597312839677269703768290852637278107453214978113521011217309264937456780571076944737153378365025646415741183188288512458638015584567914756559391594814636912372691696293318236500654568318379986288967723915230276382628264320368475824703279893805081613289096789042181313698335216337835693448772042840802923814870107622817991934634943213785452375348833726982234093718861110133080693021032276395809134670271703481439750704766209052174911891768179872048041740034147681454836980133361555578506019305809581233142529588298178743423084754802933155486066032755583821577331773790647243688230011308344205553124192693865707552203106743961507251530615828228630355457320212741761375494644074558648281436101053011334874645210618838500348213675009800579339843048288076408387950776776074427175925192703675975545663942217339651382843012907994492381984139560916405209007340275654793104705038316074355031285395234784694220047433532410464466448771067537424502389530381722521171088294928001500538615918521253546715247977589982770519040757700465025785179351690901394739756146490829763063108685338373082730360981304403448978208555069338536565380276416241259887518014009542226472584532992590207539502097935474278614509281347066749429547254554367170574106288235311548467762330619585359244616198002190670266779992728007936363105427602669516427637513799994430987168261647654349765582941016999175740315832971942308583166705429875567744554972303412672059529576273938624357535637378561109952794175476400691019808976619341515283695911117199589278709181237807399744324788999268984583052500232844285040360631914034464622281712694551821616647011057719166065433717183780813411343141258420489107170417002853283191051459092762723461082802200167474934185384292428635478760967493545048711877551404614319432057171007285033110607298462648099885757538511207545246864753416723103086732852492377168374144017726593310686138461850460987353789394986373216510855214602344572397993774469786359232315038532673008731708115090947159451742708772866653325619345588098847502149144945133570109458814810026925416043510622091872354798008003164030048174093392332250729721993025475206320306087452073568834784852317280068913119027061377261456564168599832571753303768150337298374926170061028358262647169524038675140123719303858381176154784907198394810265997074653414904807266352447462620157377911956349575569831319824240691031117570313287890231892179233572359460651076968923888669926118147314710984718479790381584091122405161408206235931973425783960947664580520958633715953514588310967638201367699293868188240220632649061935753253342201515929321966200203245244741092444443676326321814094533625246148297132374685562196825172239169587667740955200686825118457215794644940470944391529385165575789069869904538802180571864927574057497419466013322743180705254947999195707660302831979526059565573271401510320185943502916631392979209594740467769124503983785965823132544659428103169008276617770613926911377789101647175827750863474237782810244460088014265032722108645452409268709799908715299682132333803698532113946349673660700918984870944963197912742941243765432140827501570563858493037895183100257347640286381560022143111917566113317808982232517243154957374497340573435592573067733461909791837076442030288352768275710568351791907694994797628438084816342324629140995902951033276138084627953921453968545213319177300404086168098860795068539094534171030034018611176698207579307332641357148731234624233240618887672991149223853735772791828077142914919764563450601613804556498902869318755545114649652548557550208153833364831730411729793377413743397202558277244708147096235746835628715707685050290901305594292348762007765325706987720386421228850925407115267942632172744989921604421496445087814272447744128094005547888559020724814290129724945365205900608019463909901628824660202673814431469129384576267385432780554065730275118545772098809733214748684883713604495160598462563497145957256641590135903540515358889649256903668513635282511291696730763634291947290331765333337364826750707154626438100911340123801495439846941899758238127507814967103685084082445606844852712519577457459561455710938890353768232950843510934544745048839717415308434547424195812835583059211732013561342610882631611801544632080850041331770494151395648524658596484994472672054104887109071759980667361173295476775232706196547370697478829040993661085989849116912178384485323688652421990385165156498437826025457744444809471118690493798200875284518870175607980547235920803400004701900284238547697480958466442157819316339749686001131554021638281835408625005956275271513166912602264879410728565393907333487511953046345750494617493201266066105761069685623827677433436825279988798032415826846663801011506046616198019745329609808116492606666475872152451248411559760041216676121408746683953060964280296496918383433780777357989074950326584795247385470578470462017082849812797938420193488060305955141181529651000568383650570906321337362806044297558936444222596076816945874454792171732826703596913888471191173400142301072463089922011939943316498994175043248536733834699634839432152643052799557958081397898191908168887800123345449507677745966327767607069639952280025703810884401017272643456370963084734370338076358125619797357144782708919545915157501867712491277612019940187703844229846309416652173809000672165477632497965175685964886984530430044950930355500050158367225518126487752941485974966661021213519236416935835629229725525355470142063718249150014745280414465380265879163632245957121147440518496086833166578778964016118766694634159665431851579352043614706910221245691247208091419891395230206644414292204597106081060164907239008219901681147055528453566864669948414906178948351301923572442384973444323952912285978680021234398402979897238258241403680641883339317492830850993060578155648951795879189963673205789453097359601855269628081163468954775976592581560713520316494168771438215082464867953722486657818979073205155473238686692003932801849114364118844118986356300298037393998095586104314604664212939236921608100095751672579965654601828448893064727062257008892349488965628302345850144074820294784116506858569649882007177985068483427398155809701313538355670556302570480526562528807612811215800339990666540698914758959147858032197016718508255354362816578388892094828269412552006579259931707474471372378832859299477013851052566135882561489719385587997174237158582534081719273905855412519810816378505479226968771026750805385442833192947629791889125099780921747145842896044696701224401023373154845518826578231914952616244390580319269692903128637623880881468757813435916941689904148737753304517869472779499857959565121717471618069606731542826226563420867825140287949582843107723141010079256673841705089970675819723736367286745107846953419956655996904764867260866313445934353282062386449714088816403993515075138225219330094111800786187277756347435562345768153010490851469051278574394702831573127993762826623854186046626543693097308382172303631001836850148869027944650901269337635291309308754318335147558255876805112801746155667759616438393204043083438338797054107982904176618538379323590652790384279475369132877079237225237294708360279505993339551119280037158399997733152191223351225257308689653215211560480052965058001760921107055077535479717897822207708361212990416068892766439082665302641524389590870326777041588114146152225185335703117027387983821120555916151888748038677283552242687593082716640430363808517797100945151246813575629906632398800368739118451641602694485342392120059520639981840177364215136309866161183750964332206290152196640270080337056427664004440129349038683294973367508855248807205277293677766966765919598893881199295008002493888221480948824055005443773727992081861282236198926663624865761949764197862180226409171087764612173535605246932025918944526087441850159901803328042844332734551103911366109503202981289437848783356497802605612054129638712390336083691487386568288506924585423524839931398612804699139523480087476668713054634591982085056367427691273473750456579025669527480442371525872797570690582215430058047990133042490223496766007469673738562589173712427181930587123004166328205858669297060163758361661949520625680680624172850252869140810006147111277069596209599353556539331300533391747170602323314520127146723906140175804171239416717401142256536916467477788661747430207943082062983211689538664998294591401358842961402200068391433991072697125205330754222431006477159122398646717600116652530816935609251028331134767285339257498082950198218279260391869868888240091639563455314972762006378933806108718998615512186116636257150886809924586034462714188720701869926216870640961962319634450931755796119291638123026955602064095657248377501807210353807118627223673921101237627045022734656397904835136535550280334296937858696687216863434352410375480747980653913482629329728835451170760134048905473352457862901334037228086678613920750995215013431267464343657565356215726765722194811356181235681145181264267731572459415729083395556188282269857463995521656426654853295342040825912675684011155868374558731171224527874047755585787272995385361392754344367938996540851919973181147637567142401757740227174771220899017045367230605510618308465452742227242941333816322799449847006438825007997730325927252232566919530675190207098205980231807500082837127601436636399947109956363287934868168873090819443517441991039512349785127155594812706706329046506092713368475080042802188001381628192868868133668324835044486626856822204832258713384203992329968449188073491721193155988929771899473654163019751207044474851522567167502995942380748308527357846107149992034793647846262465351481096352968253033409598264339285116552322417906244956153719122116125625418187279488202132438635952154385117405710011096529927174831376247216662045850077740389385973031995080826973719114698588608021324832325477953296280726844862582495019128693316916780193156818464697090673475063596378355434368543138001408281164892149986645357351034856354918711753901699659406089782650260276776265731228264251883590823619144244971577867458691059563256251836626313852840097129059337482313268014291372553647091398988844605849780406619996184279432438180617174965192451688079549445102388682814198681873316399570160171730258780425212815870217075117214980138702407677090305164340398334638110730044932818571337768515403005589978801495609147963047562323258209518570164191168162611432027320997897664710498859568005505609582524393368174518795733872366456283711135609766551363427365189642949043026800029377509156528190757219076572731749216828385888242344464638574230313492621066909894573525090068909506316323545488630676341914433752219597864400153185775434790869941611348490051376711562589499252173926491888850177622996136772977675868561177892099233333745942152463697962342872825765867207122144047616181530552859067193459397991421997550973852529412507582626430294504486632500434682058324095662945285783948881500261128832429211477181572583233396885335959696020625077008467373150847283331814761006079252332465153321640057351578412831837384988094785890066377983825626166039398944311614613439758536126978223393285557218614869874211628519756979688752517461774577978095270315359716564706259124216298076822738163195984932923611402828787354734689158281118489134842785432103925786545191664115878297324560369762149118379146915842679125056683424381887953852924313405354598771927711527246585209065786118132759170206383550309925698639656077851665285125398799284830641391519096277327215790394979870122406387708244362752684842333321688398134388628211852731761465852983979255786148192549067693394907920755346456989541841743157711707598762827883130359825821193182770139197917973547655804388608248210746718606741427372789054847683609807847948251260158352613522851836590340743049152698485756372219190903815078174389983821957778357566232309758968019629863269059304919168760600333007568095055692635329821792269323230191321139513092877875985182970676368164777419395432937661549131802814968615959977692117054209945491083044762532863314089733442442890806963380512983339555301912594151949894533586186533562127894429942947140701724134942287091550062068485510453670735145812051160800235500282636762288076693176604938243550487284624798896075773379334490682355777760587287522210696790973429964388867850098743278800106008383207602886553703061179371083987185048663214550136676189961966371062636939895788104633898345766639980076577765725189093614180658120628787121827280253404002237304424984886181829832268498179198626771731578998451562335597562031408224525853299326746718916033679212831448917117042812582384450009669218195253067247322119177198623749753227665916507519789011927820510051866726161610633343706646937932706713047839625871677813111308143930410993657833779695032909925499582846206472533135189053646300410167634405301672959713677462709751870568257196593448551635798704096245979606707175022080553712456450464541285302618876548083500485636647039696644642661105248038427457291947554840058266602947999375006879022380145807302108722667546594408891104702176839489804871163282482545279638751892153075628264654334958755909593579332330644361563730190324628915406396392018520196012344089931212062451369588637161287832786153026825622061861615884202365123031704926063936783598480541893663427617157639303183722492816839337387600655693128245876031231911131278619866889994938689357282081356641698336490360163221195056444817179850762725756668595087549793953448815409702688602893752295242665220831415943132342130094100245497123498022974060911041975619180848174704492866454122796801663701612462183925615237184230937105273489461535143791000667255549101221297101482825120393987867137438666981752665102069649304839406835006562895607603510722302169945270543486408229800618390268534907673329872610010375377004207746956235580432548991862794740461369091337764535693455330531307817839885401173550951862992772745299143578683899721585922451322581596740623717446423547749194618378978404205611589898066093646509102024487230126266105783945651019822269051389113513525233754815659383335509616674798106657221163860476680890419895206259524278451371559109620549851958978150164484682625601134904765324729100311062901960744238039170849982259760745481248623484930577901491433906679304364269583430732531256234921795202919283730027851397424940255276925957760996941759182457614672400543891104038728521826366995277530183113468591690622581295851619261676566352706683438486840720586072051253241095637470801003918922736162516434139270274220583252106240331114779710772678434561776099865740398489846064623170991580166842287452296253771975814031815515680608978093681452653257134714605521110853561969976796545352552029666313796042265820996530591132240642680422089565296036872663178730681088438129047611478873672989708793099427711378034628531840528591733764050938559254564658801394793907573352231581055221775639076869239771163157243685377390979803365355889109485379827596560439457249551428661721709776902590088066942355212786465868047506414741619887918132885293970420835588635126798371505578659825179833110193760499334820631956042514156641002020630490931792829418981495468184905080853272439655436389095245369205469563102440678484668274565669254630538016018710166564809652017177913458513345305904472006204535526219380112268452207361068820161190609309913723098881645584468693206712073073849949847893548056757764381160456266035770217368005705680609535803476957174588900684122454204888074582159153032031011780347973140156427120575471919956460590541160416623966854850627097104079847058925089910575366003461105309393668023449193387459981924454381587362510583504350075687441136184785176563350084707795455382736064474034832879712820370400890332328628060004150859608864569934908915464757837615240211612300084626130656807896197027667675626074251444575689447003723887038661112234838466877141851388309794578835283384771870294838332670608831442164235280844855728226155772647276862022603405853356609707774309369084057524005875301181719755737909881860745071775908279338321540460733824434246839393096220986306866516730861591928709973127180263818046492649526225730981132608574550772569525092801606667322026085509266519620925858610188302255155845260454257695752258047638859484421365738733392816671318868597220731244744190527106392246842840127588803003114887105182139950305442140168180587677032885633442253344667267824525843678326174766499043275593925532355787431294419451994633214729249576107734690641100067519815781961461479833873795470367775909423195875382710442374952673016913090181717223754071915419635918174280131088077201043403524435688346493982107735677257356224852947523703411632341991456064575815882467851985965732032737615118872554508508638118423844880469049141123624522507265640183534592337428335497198741183876089319276128109128624043120565926716665266969087009802622108795622645575430799358315893256970306926977953100836377068095663121831536181426499335181362010620623396471799840737892314645884474923425676331094344923637357002146584936783015547587878647967564574850811758222437653994402688664389060299950215299536306733980525034095274070321282725497877617251591715339057386829759085339575961728234163572499959259860156223131329329412260539524838914724090405592142280185847887886389110245335708463709233584589749004600868866314121456629984138824235995554676216945248773888534271742572081054716238044663006484684225723618590523370082681160400282895831086402000059305022221146634064718626800890793381916482888011228316084048914268273619377221746963796640388230395247571323691055135212329052917663792064328265465059558428795615650352484158995797952624808418182938462802539801595771976270301392786936322649488775986795882945614486856707230359297893107321733084069207848925260513578130797952848561534177384846286076790413087698996722428383238494382520482031277308959544481395674960986604361434921783298846048538526899136234745002933070120456902352183745282233257053786313940506626045283796863685804932838981408781918753030187484231057983526402517485564042874942622662490448975992585648900615157900861788612646848883704594201342794725708580511646988061174701408253665561513176151014086455925752456918128051989251682604515539777099206433863746470251715398304871728450155269758384513897473778291885993154103464461630032166375728593867593960198347005312964768729193889260124252460317353679864563245470186052938757724883271365133266765921186089230283382933185852424873889588660430533120692330456964766045372863191838801494940035421065928303458065501436406520003209118733894007976068737298404300158729239895317987014193292146443466818655586919878460108271638456696517200027725793171927653551749007885823259589406672035796492850094841189545430274152199675248805893127767923875708618690372810466399222648536992451201541569983696769879417107459900640778435756465809965873438907393614717517937919967430590501452819326603461691647421612128069567130928843674713368142535689605844372145089623164374196477831437175026119956657498298607679756804273006478145916735839748623666615839447664249154653238905755375554109997852017976474061969551319132066014387232221166999798797662261027053122856370832295593655745597817587497313186103803928861485717941170108604870028467499341750459059220449352223675592264784873255752064200508150818558076091392362357690527769332022818281519885320056405275198842476876668251070212429307523031580898094621147094743963014635917640459000684638491922965960765274763092886164373488775962515912329093206113863825748993515675603586109302296950836502613981794268708513113492867521494362539948577259794250931900275428374450578402330274102838643246883884351340310879014725385009433227159365097120395967963535454235875185638433775643773687003544464243560312990123876978310953443431567878143095325319784824166240149427484533838921945090467406311107636323245934448233359566227656935891317805260522765343038930887492226480438910555555206465643893069130858359887236972036280750154758652578598461964258465822607925940749824371675796720517050219142254056364387000954989080262044318053134462762371202553614492822466729108319988748752961840175821511309978433834817195080649071846605117283923979688672774989040362545298016739599321223530203725873850400781446516880883012852773804440040551663481523013625717072412613821299003645730462208345950184069477627377588323846952811468799921605490666465817414021491919386950571871263690916290249131842894133044497886485103878964156852064898862921815881872715564550924284371261086884356804093268608749696379282433557686006813959017600345156999327389619936388740349650896685327163500909254291272923365421528043561822632048050697183903766769445971560428789384559187182935750120313177103974398616022478241174960574399468338579933895770527907049299966283058244169213919942935399643299990094441362161114572833322153354091140369533882520334885751981883267450036921435121836497549499370758256073606196056986210393000080140129213731925541837877264315888396153017974492150625573681190210662741838531775106668118291858355425203902173129002030453830603558645241323606297810595281174493239083765117654597180815436338421641257842035062139085403588922593760445712666965213727785844145901801970921513185190362118247395048665722479563706022936396714311348683339941667264365886933340577132910064047289314203227791274646103578210427000069845076917946250009368558815334164368695508516440679134679340890129830290608452973245051154797819259377242485501652198834781060919861402545477611411552589682961506615480947117791020682159124123961740179029965157940869316779587985564411056932929885591161103767469661369403465684826792681093128259647269061232890055214304470984881451343714890379003377423122970360416399449905472264114324839251831559721083737833311524165472428655714863644981113577591750398911207056388389377691706745814971039698133986788448196386294981583959152503662997146966173765632264824765410724111293450613826044519940515591666978148351480237079090238835621053562279366221584295016039818107813144469928616905856837819862769700458065091671026075976812672103518523394713457923037267385781616284782554039726346464636446397128143011806750932162767204074426693482092633729075421871735440609639121400095610798320189564478754536559912387902045742355077174619570961990737242023384961502924795974560609598615344368390739070362513069386755031838753853711229508755447591670027224920900049294868712359621460849542472035888208085881260178617430909184088385087540548242288186655125756566952727005673506899658925045523574967709972460089992380251900831402303639493324021685217020396084037557868362913300187182221161235566967429327280178548776993451030374611277963338303688853046338982145097922015619684119415831281137707460364168989959360150893285931154858379168788821799218161650745184232107234899884021639589127588858560471989204671464863327393815144424382942166927914312451798280010237956065383945964103060571539255999891089798647959251861319900195724611113213198396211555641894387608692260010475289069440414992327086906670882984203043691049785311493450281479292311878080102550327541394981900532561180439025592438885589270275492423609897090345352857975387947693080587857070628478207572823242622581081685549208015428238736620829126099418764416961789294855233931493896886966100156365990937642190540856902891313193131671402514991485929631052162048888581899671822644366484074975799899299568482666219923662140744257643902307849446127466869274351723104605038861149277111798379737554884293524956643519999624608344693698241461539364679876776757722131698542422257921154435608369846232204618468997019796884037227732335039189276582469144369715580369657887234310202684284539946520611062982804223024904426900317952861361917708578757007516463284639956134188208966571885231512719498440161521151891188592735976019973267193513246814945971813725128997982012010494382974942898009867058729576136013837639521919264234366623555890347737148178852881767038036971138311076775581782566393412376111559676583933351340422464274459628811156171918432996999178724585187020973689124517989994942829388370764687862744816405454814373067986360542294076602724058650243801016086184866376578110369907318149511371067006058176664242416074948905613656235296157637598067340076425492126385515484759930865693699657031349797475125179972500554395667088600642336220934430688133607750228594132863385984911806126182229821208367247994671176637487390698555772938917686456358019157803277382428661942306153548076643724180613102151928621286983420901890325558132402400142073489407664964567810465355944834048771722486066945489262198297684429996086095870078252508344582367375190405560257072033524853403138011746834699871464714746625863931522895092419770613607706465256501073060510470118221996695949176758047905050624768874686264956632100429025518919559468094165146705636078406950643752861335784699862667921030850469113279356134433096070005536796117758024991980758855246986638120043695970947426481019150016575305195804034606089794505753197162271319825945921504673877619872422340069200120436910238106599845121224166890231546680644396499296315873632220712439687518357207688908585296666234946192958003321787995440820516417544408360564112619885285832359823691846130344727655147617748323585568869126761877883302722428570740532308435649107158397004506982357939831287719168379718655426411893076078725629044256642871161113955729405003836441289485609398486419416145177446505749970926660188554912303299394163623572354386247898419633471788791705366655919836375160503300022549934584172596481596447376956313768215253095557567749365539094790820438478423298006289047527685829929261229979475623473818470979202337734617668468290533895152049191903000394437253769730553360320626628886175870276604496086513040338819755404765658506802149912165821425143190869003807767505542590640175847645167369726133619339085524149729723319375938551334177151145417703331472258924580023248932691010255819535948441493689656935631778462309233285196243627231914795382152861300710639493384016416011871893018593132327919303272422708535797022957425928094438616593807879777642532739705210822860488233542832701773179480003998139329060905692546669290041755845358248365974764272986894173063458818107885281827958775234850508435792939371570737163168152394934375946267248887254953959370969047031014415726027491798620714081592297284368577251014669411422909376198297818914695176370276586077584498880777720078087646936532313885042440583988489006997525442743645410859425735370898143027666495796417021533310911675084264138146107476011612008022070872254283909802564935879753267684289236542925005374571344327194519074189646758184816226054091580541585136561412284293888417236985688290068577976038435363154392708982913767821324781648551052886007371352065759560225553310903539612166666253110452294517124074041567360103987266004146498448197556753455312035349690289516542185480470391586693175723437926932621123481590584470294262469604169261491568529374017181630129310749326515314422217003606292395143752249367053554246080427188359739549626466140139397076920370692150698574769065213781113735164049569275773070091667687265982965930823457303229141020632518519142910390888225987678995870742176948535643101350032640920013180027784790202549484360994543173826183864616646417042044599028513487665109117394217883043022220584162333111392216272451464715801848076397418402731692450805502824440896396641342408302567647849821054631654804763411269832626910674829918262089272606602783309605071124485142350539269343232500880617820914999388504630338803754167749519639844238583347626199696770273561954647160285899858125460553664495909354787206961875774041354429672917653605239122979133709553956430778179690694349246615621000909588561778067885745394888078941879233414245031089565415320438388994436384127010564362201478279440679669206248799046815271383471175845618837805132561656573537174842732971801643924795014587962086143856724756038873119489299052934048670413036721057815980805057573755256051242885811844682799963253544983278674576700449214055906942170104858740077140942059637192542298226105742232806093110246923490519843199209224848947902694634717419263614556161789889611832780493716132890440574410005844899707397422338802450755585714570110204951426167500336655319621817465455419652502132357822469596970110610946305719043485304450473197725474574691855374308439739704734951692991668316750953121886258871368398305497371464285306139819002828076261984677234824393995102994828191408833658713270499539369701408632688159883674216268261551919254057529307335291502829125558801651860588330561137269507978677050282946945423489073757866152135812559012842667296401660201589925195102319897895786678312465815772854241520840932198024592882557229704477984610712491782616054518501002857082231278984780483159152967914725242558637880902640460592631235571418249616200710123581120984672108411164736507268458902650255148775564827149893526683348733445999591638622565619184394648195675077572309422471304742081805527806869713730052437427031447376258897621495930582531575378792896263127549366709533409877370685734117950448489286821964877054138794228919417644704384124920959965730830439519194477912488839497184720059751992471281928703875123443570368412562127239272259792918127209251607822420917563956266366087130593736600987573033009023535753514179494713316727177840759437570241969349411573270855081882342788252763179334544902127654656767118332568311591995130836879997119240682762308743657827936178355982499976816810394502076308754084857454595419833631155605072479304385556121608959035549582180180418928503714882028374919968362338809961970960883808849309977209742546771527683724402034821274011369572009891284765205357546113267276448256466334080082339804778853792552935061372836513596715543866858590708259495151083055138347224381334094694190114868923502170524922682696144317196225347952556292368955931263610715165268853093601763492968921576417051725895511316558995295727618371870487931574296361691324297907711885112489218244525731351901149266540272305649897120743942962837006586503736648372762479820163222951904097106937992839497448515143919368530690606347163836327058633468001882113177062576477050607338348859636656334712012774286409872361169992181328134804898939871531988115767895378886559546739778997431805257308528412493128163211821634564414971020698564953376116715200777458152809289960450883020311670839918283595687134239561337640798786174432553711581121988476522151160435351220989225490720180688929700178506295773830672456376198417700708024596896267259216090507190027889874700401359160398950373072963191038198747577505757916866403044353684677585442582768793678373108715781091252935465826931064779644400473206898474009184507998497981792118487541657425005082190523328901160693197880978082566236922957795173466194976189190103647943290266568682221649267896435191190068341503671954915687480358594010535252935226193668329355783515725658342730858787436643151535265688101063895108893657451680198205762746681910593808121918362476520289106171570260714242043460997124919984363317031192733033822973958805433140223545526340378051084061708396703666176577195898749862226064261482243448976295168911802648671068947479057459831161848145999054499168666952330509729505096769137946876829570293705266024741888478564774590926475176155881698289948390568335603990773511944118540301883644202459475088561173804695891872149048461730411921979091820880032274277780435361617223890951001943452789888077687328236420835931267445376808024770720932841592105465066709184170235488107118223070241030443594144274850407137423755342868835419071993358591908955143612474166802576912224845168515243267371348099490822045148397984662450593713328001335152636977109969038518719915095433878637505176118303200061122070607432150256393097221873171658214395609156333596048855045830092849079597884875468829229615598151204502456289197047151235581533883238826049153780414962416934939146216847435042829964239820979071631952217930000905464870824483996444930698207052544874386284854150592640366868818426471691053389685894685994285250502932698574964557483284116597167491287958336151222555876253983051710034619345914313459028986529347060222639465444696632872037048115024201674648072272257591916843714013634602472822909859810846008511995333013101063931384726862537154122115160046564238908205783898741243036400749227542986762800623185013944213662056876946745995743599086308361038618607238187833727361452962817441548247830665558453335305555290826761800646996535879479179969196684975679086939416378566547209786953579776458077147197236905303471768812523986313459433348551325884201315675188418868347540962096732193998076381874760351140302322713932935795188706047902846539556273073132481520039538451666910263380738621706112541706106472066497896209645164536408528917688436706977970895129354601108913493769186242764490892683640718293965299311095481434218033684403448550510573207950479647713591145997530778801059515124513567274392138795246181310363418284859656848001561093749833220953801337925451257443130266368560004946368601509257667906960472942089653038765647452596686750032752970925445192643304210593814831401812019652144995902249300747410063441012169705170248197971619824905031868974279003102731162107067621420478465252221637261512555898670430470807607043079534351369319430223938587239985145436927414900779038228202239153635570999874095944856598211222655933828611516919113316936949418969135654272724443882526163774691179389094500994857767183801709487123491027510177700781708541285754283033545683833470285760632655935316134443647592402719046567979313359197452609971104692023656136492243758787452954330821585897905131669668235474953043734615943938306889768621050050340068632509979706857917290024290792622093261840667447430215043108696596305280987813283091827167333963265632683033650621027734902547818636221612995338024553513361287502351771261418524844780103611866484606587611586547973404114189234533537029179300556566945925513035250396980397382655864274263114071214857088749618103955879429090254595696105627462344904415247269122336200741965957285234699997277944910813271978020907144995961053445605056582976167985325661582603471668995675267524988847531716790079777925374328886489297579921734419913049205487399556282567334406161463957281860494743691736647003084413156050997531944954299439270999061642905563055728816760435049044925826671211104612926738545847003235182559232304564793465970575609817173878630541202959242241833602494551483453309675915026845600402801923494534834661104232121614157067424722364764550142401537468598236320102472100424163692715275703693328485104376779620446253453836196252071303565763523604495195395000365575903301673208501474017628082835056802059644396448399977518572840988027435708870570490568618710562402097666671367720118995453496293356876482854916105606813973113787260921305524535788059397281418327268405785461166772268406906319990965660897732414810476268857944294610014584786194506928370278059696360162792291443763345366515085218261322002516289476198495441491400778057447557389713379909312070944495647044119869197469699750433528425123258531477114224166641557945215681456489007469364467654183111667665242602082855088023806726908559227078493099187110652232226679105088141510718502892756327764155562279328071420047190418977442452944599849671140683137859144656741088790205550204390109606810159935138535823363354433537106016019461836930324454998110733956214004616954497679412929820673944528890366180462040704280136301925323940256080870256277552155099761488526186841978188118802886699183565472259931156297786686772889580651844763519284968465695408444304489977466770638663315823572859163154738352489398425338993235717623504021829819685556309837201473384374845680790216660510524943820934152189034718926917072178685180665775830120467152526700216500985504471295205716929047158278739143437760697446162015946360898827499639536856778974517586897767547867050898329843922868137976146016920582913738334167568587883315617621346214557286194655800450065996271747280787185587335225665482167905302100928769441716315221860333809992824134730061363623717955213989300023085094891415462759959615284469979463852731131030605529577053909748838163659062598053050585364593856698998053404510826951701526303743769520476933978598588180184605900730224669433948048586505467551718828136637579362573718955577258240614740667213274334571613465663108387347213145488884664520171952342705696137694787576239091009674203338313397244797278241288512669244572392721606286177395083776366743246435417844059322851826569079789109549130022033665303657915477874216357885979692415429544983267810948758550331770401797733945001969997329210690480158216391178612206181286832643388046164476052078638993656914683734657378991745304443284821230887604612308363112261468581308457237717410192965855036756263058935560732541109746785534917008264243395256151733383112781731234529978359150360382821814534711812758910301747480718838014938323666126368308772241359153566346655656181360951455406627150585282041944973185823346117822834007182997022881210097125546506322683169605697852917678836387688613793051106475346295908763796269220577665685026440155402903399321882911712031109155811755333119725791680211352187873046237489904580477718520015867765439636444968681988569142228891815282459062828194292518414245152000938981664260466978213161700104557273705553759972343876476271840767486127724080671181707140822177664172765133538991774930957376763937740983812212987447460616446915781266983226294229764781249182051945629877306888966518423158899407938130424423733581469536854950490414977455439804595433570226657145185408165210674635718364749920919978850853816035939821845791230685450267612654749170058397317112864484869506039650191614850740304387383238347982932897254018706037444767030860497523930732139276986653830103115943542061913691636972290849888153950125376873504001837944487004579078742232089056387923351547955388248836538180076749175565127049250518119289318175585565097038880108161990550504922289370355443546279174802732507928509898903885499802452226053383099936214988398906716707603838292496589197431047330043573616965686730772909819685767043363104309792432078504084055345056206137029059906664456346943932680743631913064724490732523428733444345855604405916971871146493594937171681067783805747447982739674208487291859870582696466159850457789039604081015418484246122765484458778703497218054959721605690798687419037054391552484008297450196185477966182626481581422140970385724343678545586765327247941630571624625214595195317869984797164637355956143893109832473085845356700211572329005333452091403099670711281620266633677132369745126644918383231487597028747773835677749771186841490782366765800827948311385371518207051518662569841069413152532283632784035051171808314328820127382996343817632987878067057609087994297723711375968358700294721232404436915570890567140254207555251681684888130572481482939853406803285369075928990558528373959795617922705035027214084088799620563077956645932928765604159828430679510960102540794642261033825901611594089895891610876664960921358983062375898692633174563044628415297536681608038879842513473566378907993238384064629984208584426365968914828694321907188877932350407014770980922605698656422374829138572644929290955778808844207677041374472149859149723656363625613214707324908358196643619738174167465147311877323844305424809000198830512885856026501430239015143016381627173632965462651814867427546081378035231906187435529326671215696513569399213514921725810225199871478575018200731149417526968593012167424263553565806544868561327009036967055193414856912053689013374822379033633413812682122590284212976424957781457995775347309818341604599526538021620193303472994211500892656887185185367951071504830850998557218282640340936603423342048314509512866813331090937278551762526875693915447750950958072588538738075421337148265225392190045582558315515546173514320264619614640812529478110540926482745974179101853300173047747416440069676880789492292619162844546817062174503652949416313695231247781356260864733621740190579203612151686015126198483357960823431993859861090625880369409723077274729230916940295912890744828455528540324089809020817392128651458602483414529834422596024025060229287737193036543104780853037339821197783267147062213505639633349277680155357307429540282095098075792868680150512765594338265913365020260784094844729956884732707998275612920842793134648121577841122499071150322734565376586552784867499126513198091065427660242850956738100130212692294000437548685636585650584083078441966997140489967471899878971735325679486548040977312890518270176053408263368389113759930109417229978167800152724745619665009886972740764008783712577703503742999218041944243237465777868889955318065293982330629256021966800618303772965087460168021483678057787257213368021853509989939118025976654821407793603058453877977144075634244085738700828660156210671205144906144389135792881542801517234890450402297077331076874159439104668846038465574536179572719912488722729689297020696469740366097537183723950047782056330496822308234618676457552394181674168599810726075764183547057821296712879228246039128313126446069736365145208809151337097709635839744861875055928502745480573617133301110688278612423557377447694098633894800922958728137782050826812043507857873322370770048465103586979707900395738063107752726539705705383333623248751844556182731223592953521077754600567863352360786558392978912672691715046091331092699657427500127536466156581377352714503821037936493131326370084986559094289605031258885548635902471249216282586099965762936065630535386039505226939731145603700869449130653512993026916966042317444344256165411225473356069828607469646924578315870017692077733641608379246129929027489782058089103319408231702619833061422176795198800974299829508978611698904385949485442275957047571316193921422565649895376897775917117866898131181440050163861771934491768220831939889171186918123645933667053137239492224592036386342552880202318082856357556202758711739690789905875280482061409670579459703248117911683462309052382883721120745961932720438330025794221247121221540051086781448327823547225864879561530546956071361033259159880602622704528939300091693622933292016390353057064855100509835824999394728462805198345246766876294991931191715166532230858220169957035119714552094242564191950657209872083262566520329718827801169988836426062195742046612107429193135100276550154615658966506341809844171942000233246890956662972838692860412373684069122993489240113158239344248788776803463617698536675787152021653171740125759566367886848672510735486765694470923775999104607747237363766467369296183401963609730032813734351619831631425744166519404934934613189116767445930044713308575251096628541940205590499556043517710157369531971412855715264135217806949271075463734490903628996215901091320682193735706035198489987681983407449381345311778307209287129003312114412464110016749769615831345776995580035801459207916251422710209779835020346954085023548043826894214460853784484997785423540156483456986101172934520516277339809667730766169506206354382142847654463141669819343233210852298991409389212498726671166620997750059212682818212191299740513212099363446626167769622505427030168302717127998256845974776009566633937919656924609055443022125549600149753916033373813599009834463581394325830683301050834301985720632212218692398733060488206010578703326150390053101319567873655031105735700339863191414841889020901090599031762747450202402250435470467608463786741576770293742338500500645159692921219911171000351219420646601211160504912101294129607711939376884804969521803169612651514191760456596447364002391625611923512325823500143442636086040712362023053217177112415986356803218850022937153349383947074441834366370830311472426435538177217675812501198736343933716951415059470323955060738537894234294276293519747377011768786930303548035755516878845080614693411117319785895627563547490124516091185478315558847813331385275157556922033730136132269448019101707563691540103713707468507900581863958109822968807594854815015290145034987486212610178842257670094077343616865684649509067532818028521245758312675321478411012762214497961957330673982462707823216756225871197856651931309136286846396721264966190137088036303538287788474287309121458838372085048922033327885707026004727637505845017021152351426782550552175032021300117703457960393098125569924552434624040797702584654122046121495381135612762347849499528107491109817771790248275996593310120060303404390571643938557388696185284279242452601007939825822655424871181903209913061261772991558980220195616348562843780617379060877053967779459691895400491401967368814269667358765291289887839082784307042694891207624721919407322538577488790043811118434953992061035790842191526740195594186615010825509455773450314554917215547456813794354756359233480923555158274739520793857679941112315287271126476342773232397662112207601081830468914729532021115563023115148557321304858970118750254734843820688244402840036589378092045384896598116664866434646726334488422883890968598967882681476411283510941622538320628840951594986123591471025231846082288424382841548142005536716714204631521930747921175391635795722149553041842856545596732458138795507353560208562762210524659747552998866004543975974662433739257995696530727847299354892352675957861777037909481456281673296143593458347168974941892750206283429665691314026863050124146160352626349346064968302120657448245997881864721036258175163402635925329605806136985609179660452961389600873166275488235834182324429869154172914323687920637058727706184719625311580639096164602414378878544499498182760812038341986314163615764860792771475191852538343755799766172190819977675679834695044854054060385687180340851930869777806038684824685920726018513134683427071943916977207045720623643905551603321321642937561717928528116066971514327463306627444970911552495833459010156374490639938424749150873513858300477728992354814191486133632991349420586764382498353054816766576583550736909960223119031106368816796511042850879926180022109832431789788179858139231627516665429368987415891885423474497993508690320414495382598388544207623060605625377631352446481305432266386339856841248411977678481359230412936454688920942810758488007094140908805047474005641462488252066208305231531161341686770805805556598704268065138208032292003884544445910355634271697040334177027198357760017835542865681888379036726615466978875232006674240623607932315453793333446857994846399329237776054162409964064213665942426980897379986391551813861140485053478080665690029767047125547685888814487773112574879782993610494191265090116836459649170447110033241790129686344545341833961445281897954624477448986964614732811233606158188392914264788598237583657670453472890375176594853446439734193989546206310322870290855103269896395471129803450692539203156190148210816324095265535516350554711241738214523968408443124758106792240980481661042395690207769046535884502658497718185556309104461061035296184390004665323544717888097845022342899812307904747750723936193250574122418145470856420663375777130475514931757219450765837362896217099887150288177353308094341849095772296092325629976738419962805081644197975839707412473205113933566018062612284885524591273727309922904518129224459113690469735873435863986534749336518701473080042473804545123943779891020256056066469706489108114755499200931983486579933152258091483589233327901389710318023650240617428271230434274099649121798348127125819731147629706770254292555826843579398416432015035314067239794599009890087792205561865564758850820374897520085103615934062207855859216844060612839150410651789843228916844997553042025277804625286581888752980831209737288541034790015537327917681068249609370974496541893862799041588345178499937679104166837279234389549380133565409738396746293731571556728677592840072515822941154218566210207756367908207875898826623297925044793738506201900410192916975066143532336176407029196784586311074596113481323941319305714242628452720133608633508294263955230418787841565888333682919071106245534644672889510576038915587292202082482733841221117079568257529319588424065247568894332658263667393904702820893662333110728186217272742442810813913754947029488948394879019670475345852330069129684753332589086276972415914828091122523040942601767483345899593005719319299867639393354794902342419332499487397575984162866032206307476204205806099784850857573473717278261338670560783618764946703171856407726725807411534347012650038675848340732953455986280502174961893063954439452790642583918655569445517181408529783976247323680263603605706199254899777618085346049398001984434456413000151980976464140415233268312282012907527796965165150878912583099964163129856817219503302413496789915637338749778752641861761279881680813805605723184295389587050811388222261710652868844694577295285109266321378995987120243916575611199635771504301416980552483056715818014519010188603185961905934548665501836588683365504746749242536692166147432549552029059654917247927013126475745383008093044928627418030118097744321971986531621064523585686840767021226995281166813688370946842098033001000719390735017715557478408556192330002942156434947961648371644175227704920103849081612604562447527485288125470165007926920715192740991377785639414208080322224389069405498251690300980508090311502647261630013074348265960280542193395670549634442230820706230042798424802085974465185810501264927013740134093640384472492257599219200717995677112995727513401954071526298624440874600121621375304288562442603641760647208436228276073753651316362368488203042482175903837751254737330611609092885611322412172108139033327974123065249345972088119582529067797251643269256495575773665958910961482175643336302561817350341397994574300693157278270651699979185931227137423503481381100966033040162606105076912343944754846838895552870970010513624114669983740293147179160225262161234640593072772370216684310418023090268336438877107110962205468477757580561780455653884389757838934571992243816071113270686771650248688597121676716180978317537729826432620086774237147841407009288404047150258096983430936356337547873261430575501633646948118830511162732892544738085350631239374209850659929311915630237398948824691483770602020409751119278416553642362217605971196181178770736913075540782763072392129152088058631447518079897702754421573482068565992758147103591039963753925911654499231407573027120350882864733700002756495391278696266613827880398282745117698237198946738027294419772224939882045474477316043468209277812076504861575806907131281138570719026328242728908172983208251496966390867144615863300331388705799516910419451792554822548021676911715734807150615381058611167090502366188162555870839181363491673927565002036205138107335412766468745837008271296421228716627557185222521496083616987147634107602566553855593119683714737336449125491910440282413981615512561092948242361321906424540100915833356559741098312169836865044725217614846526286461294523179014876922780521706727378268455483710778537530211866610762231062416414502238920579550171175670762857199392433851753487767183685346507067589324855182800499541491931618071271217040053573762479620430897031319815918918571393861714522176340546045813399887462737629640848240198016743693699265307604435973427837878851534323230426804045780440604192267768549471763092538869007892186050723986689187830352983468266240793045908999740174580800325769821106872229955162048616002444001802427773277253625960484191367420299396371891917366654865506128874704292045210137267944765842053711324064875344251505178922080080239949186385627017521663863819729496613743837239806268756551255148893032916504247040297331269512569996588504828252022780192602633440610531577953278740296412165825339246326125757467003824877556995846995662440669850377414633349001757862156765063749478705991769451062657884136384832315161556075053583999550075401014270110735848114992553524699956070931135459800400619131590926644810190586300733693449886147034922078746009790077634567538733083876459716681788169614795075862999840669553805260627476621933830013276255051631783907556771050714415612200771904170272299401717636054684286368917700441975485000291233898098670571284438223236049949378836368620482093217925930278474917055248701302934930108128418706803577165714091772189380539557773307574651615873088414193229281925063424557857813494285699566372983220104457253990057333649820264178850858548403913634654259957340295476348311239875463566676215872811637449719712229394523926610052761020176861431966671136490866587961681314614131665381020996079416327047857318621371469358363293497337758021981084840396888995325160796458289588398492635878594639867039610591392380105749040491730274221996294364067566446454681560116974183610315614244006216754526696228608207269530103766035185821221463529928965590373919497604624618881056315435418822254683878152505300232064592134367883555756352958346915287313305784248174688279652610673135199626024674660534197060967206280758238728476434689859736988545037340135467347306917975922103712961558161091024432509090637497657342765981907607006267492633329947078030383689838706908260700670317179783995902826705686866531815231546173802896498280104273730687007020533232153511063628597706655163914182811616057648870708540541546572382078857705293215941555196807729280011231852245815536060286622386759034053798713998584823531969905830211342641459780768956542586105889827278723563528368148533111080191728174278623358225464034363354871537937507915673501957603505135674794023952746912451073310159475605888861561104709729701721985779112105715415942733931141801592646457715245445381643158642346670935663658230905771625238703381729674240044796669041683251519851403828783023579215980073814790862427231804395578104409744287705189629376100313808366923322407122624437913488625015228621330627909063983326470044126758352419407687316027415538942373012681883595481478076420537972634112584172236357229980845575325747895109151300911888623844874094107843141631383614053761690584329833079961530413593059539459543155764241065334621572662350286989851792869618821210732010988522597901880868992428032313723474516915825934693734504036875084073549883836125696548846522532682880520698956321163808814511575520930999970534331858931081917723701005410765582150784247708072923649684870112495574655044883356512476338876697773983463967222282583847088657931579296996151725898563573692423007498387286438911691802694179030773798169448399755451060001598654677616152983241962397840206760671872676146088975614518244077999211949477794929992765972573073862667501003467453335401356799068730615792731423676188882479611442590214698496233850197027239510986780861690599368884991783312696760907927442450786719325906113607889331853861622245324649482226941623777521070955918859025581392285475856863203045604104138951396535443280384222452265321720806104778562054198736209920036922028151339465786310998143465797553683105093764683275366149140177871184157074673309581697045039069143278820327362343199772337514739979277555713091106968832329803993757886505027039850101446611244700029262987956542818059192394802199228499053579510009972008111450279023373284762170089056047084659204870956991765968489743887137202637299180509192764507607239842583473521948408409742644543786505573584563580536304008230905561661596242931065667775017824341916133309079730625865957557467058207151702969676686296889182795042085741675668007847355054517295245650766475158521080021552105922913243047558378152483167054633131748147638877677427657466991896360220199421929146726665050334512162686129111422320437692159669159703897801680204266028226710158429314121480404016220208245141646032191111307650564098952437687797233695257164016444587638499754398464176999616813987925178070268706368872224062316642034325982878306821167624973696561666326996431271376580844870641634430130143238914847266953689688865572247128648023801527829454597031832020721211201908761120201590640130778882388286810860713214728505491743343779604995675006662803591976535600694490129966475509805774355165584272365761587895712640908530380320543602698637081119299511960397987624764749644714868681431189824400824661198557042605415220337574670233361407126807678498823314251059623469407051642083822456363001412307129058140227771742507078346557747750586507462532112136576180455885365237324673485442577905886566614707777329401155421324753827192936608402319507673173175360563549206698430985434621038112313281987439521674893579404443068175314968460575388555329454169482502034075795626558231759927132953504059078169075304327190570890362582049645503230097503020257171065726820628618737402415853687860183089608850844188222856175080994885212124768708384824231310072587881129309534117783498846612443074154891654385683599356775136950998836516795857754885451959704996404303670429044169020694648476072863700660692130346829172755136426558899979402888599479161600152883334473185338541974767417407073811886138394883855349780263471138183839959010184990437804292383515963144490904357555308501302581289028605543120834354038138841878144541923148745732643694312061665966187336480277986822704804323241288111116725490726758639297763647030666140589156824996368783567421912037445899481530692995459594864336415338479605639323519101397113486395482811878948783248883634029979974847696754109810247380907507527339878316168324947578103658619436235757818000535791763570406445328042288024926436924971911128699838643241505791069444149108075592962534313381875102739954591125257836924927040238532581639131554031704622689820053897185387698044649618004896129191256337232606220742885122447764980534485788517726736417924152224393171771785311614242730145039119462838262316937240315272083351107157460065853956821795583387856359474324236839991814060424489094801283712052309864099175960267636724349269156646884586837579936382439035433081262877476797275056904895817361866344981686126005930438624219995454571016194525608684127587165299721569636971693548471255997813617417737113545290726327967286321203032952413553036472953170577731098653006294758895935450895782036746627760064803053172783968482029680068176845235519179689477635783382116375170775663474097742682777182218200322303370473542369834788637693604785263362282469252496365080884122720759647013935688969693690878137276570512906129776481697529723589468435520082820556402717364188773745603663994454328916720539172670657226395488535054999482292152878490653865552910074287045023589389295349806232875787095877777636951293486928340153276017464955875177913684809438786574075866954118643142955674005550409378622272381879784355755767869922553633426816770495375447426774455552070301340158096522680159510410163699651853520296237783489515895739546257655388298353176516116140435879529144152070046490785401179037886029863772986624634976202018122083603495240905809898237747878638839175568882162828417343040388360932830521080333942387362073104157648342005705835633925409171947071861435112911913683984860001475007584898492928234473959942800266655023745906035030294967618620570723335463075135995956277225597940974164736355103798724920766279484847285824632100268630275507082420706244825057640584661447808625153795646990347991756543597025404253335913905481424606496571858692065932483000143962046322461124586318444662825160803601836210632787536189605702331844539093335997249135217662234499121711226323723829202054725124119371288778618008740391199513107479693970471288648002171261471773245328403636426857669769382162448833089303321838772319561168381307055180124446635493297168203246286928709812057910585543403236395787386386681373621122276792849246996222316988681410225599969209354658765942510972221091755429811603083534260864645115552257177545515233422822976885688808323778352422449710329207231369842656972429617638985022649051941831327520735640319746522995220435249158053552304482589098126877219772415216358920270985666902158707241322363159546635900345332416738325223053713566410034132634163145100928619203367000039771187299688293800585173518182852621556292319908368844707706835097028849148187629739378181600215127386272731381931614455806051783599421434498176722506388275263948723271657338229362423269684274115127577089595023844273176112674392835974017343287933149244367388884796081294987793568980204908428882553784941001709473309993791495647557512645749634322467789944197052868511824132048075494199402693238613710796721921252770887464582613574492769100783519416935115984148984642142453268614737435069831322654560842803307867289003343324141320746938240917883378210008578470276320431308555347830699095945814136024708864086222628794350785984669252842141461396219729580906069995812304156898392504636617728376109353453355777590016830366284672290079618594987411302939017267249082197551017790713990790397034184807479908986188830134101126765827215401769327589525746978561389137895367188438596906790085037974899159516494544769029006117194554102286772497908890139127892156372560553629593980050250875720536408026863134618885693792348272229854140166933723017807182676790497743876134796747307271832974683986539887252044559087188022002697138163319996855899525540408571531929255022146749171231087682284043868466207330927472789778565582460457476300200311118681618358595736655006136248941254780354830136328557457969363182396314132208725260775725236372479313160946295017105325692171673677776346037824823089290886798158360487924735075108736940117226919923317074587366207399644868450982444067426858157236530646612904995884830058316396764031619240018010345286904455481847972694780323520995952652231331030528444304031666906426187954236789016797993539997763871362708527020699952600353540368781438341023070348275914847513284958770037535609970586108687017841347882798834793175642156302687784105996510778664554776347928164189213589594327155195764659355466830869914668748329438750758009753619466575086956311918332844343583638691924507195015629144575653752635879786463735948465020128244036506883819985962853770192892849202267109597892257913652020137142367757829399484964334596876063323980955803685812882081093153425072988410764013698553551464030026169051117753728250418349566225418123127045642505063733669005130524273491425770580109044197897640411303015893492925213694333778555523979095738188775266611467587276181479244902238307629078601057497489570227051182879141948506637515618389827890663171420070628160033996601485030202084307158282050560286132647509385389176612676653549935010526874736401209648982484245362027557205945643176601665897924255824851422579673827126794619645480527726018361356663259327426298901571268569281722256756850581902569236818921882971884715508628608677642292539110732200631446483672498578602268948395717261628106155396440028755789482407767093645121055102963750105500006989017780394746437621730466962831402157854906291482695406978478894906665113625569214632043392078807837164914832334883255666081809979940698686808651687039688254239002207729366691363446851678882687172838644926979567661032646869566739006481078017618143935812053764332273279949086439299013558772090912133283335546414304476502600321438396288476918515577601506511616644622838770332497576500226522875148997249650456693759356190420573613779360850163516804206847026876510833615901273681279900980008900115263441045345695295154591915459088700682323843043456758531653496890564651079900011639058390081907045488080522974135341727400706718071988196407142432766266912865475017166585724089708634709944754837164565998367498861681491255225351249591566005289948362571371303271345897866533057850157496118195876086255685050102889123561310145996742535572067596582602456910081099620542358715736732929593675271886344039322656139339691417882896392814030487281241905677846169924444357835960571504911232673510335450075241090452832496945014010105374928870869792418398024746286890026388778381614001538987093715095726261874897567909943688774981164914962829797031620362800401215246745391037674685402427257065600567815977944233986391828183316578336593799891944203667228802987451464815680893448264303073603866583721832986193812557183972254361312063681060472617452882807420878521378981849607154520092311557078502289439935690733797789430550014099531718161161478751000299395152189686204658967793919999764163719941612522627928098980775040004911825310908977583111886061698810609055248564111572780212451083081237793309546602823678337701118929792868249036392582188301896337743617507557391430477771568383294462968569088594152902516072975756900868785157165951940881224251498818434071025616009460084283558769880888755581631800095342910370992669198400841134909942754913925685084787395981215508540929311206657505380298741021917491870247996681251044813410565839804577258682184833012263908693670106661424470842395629621173922378556342372521412354402746158056946717567190118289215352996164731182523540970898596796029846458688313847561546400271039553542199828095348155021628900298904245271562542015596383820136398924417859401967172728885702542884523528438182938255053796814362404184172677845736783815304736795771760431245805035488655105262504420186064939753227588607638339329522098383099417486244209672561954003692616333919699623452331648696301883176636888917034583172512255023548754703462033091701670401652208301814633351331568479911395595035220917128429515992770573116582707082224335660808757388572906592122019059259743052159882917999028162393631881683183331537363529209922374384952826421612255480546527244962440565010366360621947885358887574135478882271999543776197494546551677973502912694321990704075432952310164745294223790702623407899149847720512540585726616800515071343742766504271681765371587470768587051490217279285947688532395571243018393364760402456330433243408178936638622413746875315342073908779951936694101406935342454748448565986572278909269836922433621673463360039435544576041202541581849635157949258658757672137590204900260057043215748952884737489745297887919832097621318687787336534759462369413477541661609657361352697259381509540273061786767658067329689889503607991318718653487620661701890968433026728020392880866676556302370335313122024591640292555788690782475879355446681631289968169924046731226121449669502069673891629232067095047262834430718177459057906393959995889901761508449777302517397544046570604043997693886515638379059421575217525464368474685099344029383021315012986775917243050342697177558473271849583800467028190851346082419743892940092490988838816296868437534256219684666687970426688411571455007058334204710007959229963495844886827986625368234995625520787128985214400759231625499009210485948759769860776898067987611605203515179540077673583110985480699693069368615846368301124323660451425843338933864900033666962981164056083922133476700599917990367583840883760609447502178533250500754955509437198351117414515702007813669116292604631900747898112093678978494669791312992707739791756079227454079640379911976582291021109717511144395491399843588267932160273845531573235210571995702350347436205194745462667121292253574398956541454000968351548792608845041767987779010887798687022096177253738193093105495565317082993438613694728983366486666354412893397698643759377077528126177366957808617470086855144139161014451569235481479605105039931963229393812280863004356371069839749120546737547251479450788889710954538896681508762371739747410320003065077466338515506691737943296748137659957410589303672158987340838982188207543919061690870700898759377759920055012516139622715864262394301211889934396701655209074655707593251889581987310228495551482625166106199773484105791334055609046257456088580864365496816839180464405948551991734595084204351341206349120066891678144867392074295439648926096579514531426933381351817013508226335445757155844721767057680301714817585842430108026607767660384389320685988859682477842790195862898816773763477476054120788878988439736348942152829205527019057570550961439542266745388285274622691869532261123801826064841608053235493377961160518640156775032928960880061414622450150696525700930247618475370341286828500872553853474243612127977912188281731308098669297148154111493810661769770972337064228772867325454864826539759728167855548147629378758515816880881684861434176003415733875173519848167211263618885960437931107495757303013039676728645521523175228248032592839402911676121358725256708622678541334232154697638240284055604743052748061322845958456935162075054924725614460714459492830923425629394654920680658814399999835923830927759258396456469149140007437968598621969927484004480420839730432059953909874829707088353366221263100024014956005346436065158978871195491105164822765505676497187747936225391439684194851521149459778201575825174829578764254240438133802400266882821179424840658150690209802231595059353138340095115609648604526748726271629348963671590034151612058608001282713490705912958606570332425097557863450663405882702747879453564263714130047265936643154496191069856588897209900776151404491590217311790297737724642329279631635101893410843556318518488678952522823232697718707662583539981561451268282248547930137102367754232558631269133692456919970846362829325074032114351139568075144182540821069291088812513846698276498360581076340315065335900851343852200506456176607493036235285449312099029804690204281194666769185806898307074000824928921565731114163987081627496142010650228594280684588738689269176744507762557282249663110073852020060008965767944351745010414938911294715924780317611625550614436772963632864549945025412636501985781401159319413035476876523622304493880955893684818013216668454734593212574813575909283923670396227624357057377599314476761515302734961200242850823658194363414560787313037041916017365724276301621048767617272805015374290134632411350244353275088238378601525689733684955838010280501399608749448245422097131541348611522271448402600718400130843214531428621989135505617272201147374251052780470672326623027843141389695273051403769305843311780938518712351901897607600210539696097797548207219853415841485694871559553405283329351566568736858088387882435699332671077572572577940323099073068587002689020269918743247769558714725087732281095411252049476518768130857559982780602299406198165845235339053427875912675754515224898866865246348341328244474897025443871008137918922072406835796220972558513193018102811346132332054986564112840189704470511139114470448694248669877920139489980758364852841650379464132931857580113032413884625013902129504114114958599127323692778403889777265220540527463931779114866761799283893211208023519106519949183312968254041417815281166072857158096679004215970174029920857956735296557404113596020615739165284389671807873924868731188485445202400092909921444051849970166590263517330404444240256393622474772091300177976117354327046214728297635535789531224537265653233105668744812453265221679631251791854322990794360614357251019937631930661847965188954015366352575288489218035080056086861632600109033793613645805745752718857070877046489199837282970839673658686484262983536810383222501410267176091907981057936361719461550806995904860064774380483136599803709113043758680750840946770766233145037419668834026814057701517951545976874344544798541112646331410489911871037874224581380924869352005957339579231855515918775397762115930567889512014357654681364880100236472637520729569699696444552603832466936547813147448737053248556086946511142764993208389585865093217085608986310513230599469387537981682463567940584999258986758506697489274192079049018367017337326220886377735513666661695448654393385415839038526102107123530315255677780187942293555901174949629405101860862346385981580471413338741657433742509647967125125594423975831618612430377859082854999562813112983755726125533579688719342697695912734550417802172271190686341517464869515835357475349644954514223594644551979298977591226851378369408239570157729960676596693002308922726452911873356538503185347653759335354607704927511383616885541297210158198543491255068901589785470951026583261214499814820271780232505208699155449770012525974983425415388864741721152145519098845213037116874529308004287805309707808020418734249254436169648389157031101014447060412004625907499525983366883256999414568148352334025308211135066325281417701540317626281749689969845440932890969704959181907631022398563600479267297779643439299018309413963055676831884126927936439750671607581993889074770114434962307164585406311417274587953078661035279048583529107356331439749843131118926829450642930406035868645718916544326245349879373325048757576685326302076839198954346878875508455639366223396575785455132075124894415590077317843059667128963189114709627696835651705035001457078032957565813099607243420501784553432751504578342037719605612737818025206423726045052481172791077829809429252704451357934804193027350773100851797038415141177403086144997850983956143986265796263322721157433046895781669201778438146878704216113831230621502418329770719078317640946093213665123438327826888553034144521542636557428188894576899506398988940577324199640404834007719541765613888743980356214073408517903982887834725043987150779766916448093945909753411519316543252087897169241294938053808678405238994214124175842715032901730488255396119672963050790985360349645989411476960033035207299196012158452147885682138498705898466382596157922036249940349650464223005363354978493328692367218266823272291193815353899772880471356825193853105590131098703756570995321797628961476988154590929856080689546948077369795525914105073855249737621761349799332129334153610901577879063703117095659586904980749342807892804710057520603075470505002252604050288042504074008069714823539199462385722644862192088424313898328104716414828336689297292558472280460912495925505466237077559108927887193617398929742781991583967375726328421278685391819108178168244779380343313688002899540903826871897007671613566446286638419100681480031750192865288650278956439386241226324850299150854195894222968760072318195907302038515905590330568325350604830056900140854772752703259960744131848932515183191609250454047009495663541903389181016833564198628593772254196644263389821651997004304095262607696591005275294455293086107813842470285001329149032546187649205290754370684177399135760772561431767895597055923002138387638145780128177266963460234233425945660969342304438368665962705653077253636721255557316985293748421491639878229799235121810622573936395355630191053819720236086425215527242176929642815240058260714247762440623998352314510813333315046489689441313882244448559078319412962746570725854312911410389581310991458916894787280691079724816180912552855206126620662489239713043857633976426437041142473613238452786105682100843629698049468906931758421224591970822836866365171938873167820322998322764430673399779674301644524835232120301065795234505684208912875970986158332859723065503526880785583738498936858112224436387630975913379722944314497953736867556171190780231396377463388483785291342103728290246309087735578004385822425655280369444517592090291969464250257041445488004794990434384987639930886227867659111319252435861138500388159096730053475368244981911393115976979256913305493042435662514824119331601992131475790926355729375747528384889577943528409096642644771836781498930534487368542211958988051381578769626958194278519861236904531286236560063961316899685382313256116311653730053241410094999307686321421488667750945787141586082518886608247774532499506260655765616818043513066577564170815868941873770062370877442115269950858994706173361368638546370119649313551569965739062304414848274418728761631876458126835030185106879177186275244968348061867216927190031892738342028136468995495722225841909240226547261735270398248519401918325578670528186509036309782309101595042297280346911773066265201278617598208420184497633305227836556093777552023416789778862304566586008823739150677679944440522036900842018500445468305131775527645885098155605322707189314551514083369148941402909080183235003373874498093844537187708525331958296648028997479856967857642273397410349852818197019180546796921826720692250789389586498568239930500848140674285758048019624764361950144309159290455308894014573370184758428444021582364961469195699747297219384217612798965529007464865766221873406016480097155653867536211652186891136597859205014766075384288945058024375197849109130025701240967001914319280963021122643342408990903904803552947078165896311170286616744887452153038869313250566974813514706542006220007164575329040404704186499720182715784828516160502772978706871790951098992188707936361142138034333717242096168571266532089719279416744762438366958732606014349277764397750645287178895186461690479675930350048146501331128994695600828512059005137409129259089536284506240475918151426754233575171096769897809308308653908490459852642662968126307155499566841339333162002428603412257255519269972988548792671132064702097284544766306707874067323046038138907369744403017381804948333127968833617046108092602069867543027179267724824468670959140927867590763582422277787507776271555338533604124125913840666457266577060001444722730735194035152716850710054002920155843416356303805361132872854273937935073969311894841597925241563857167178276483048324510978050934576441155879635321762886513505096240116411797096414856865614566708395143633602277634051099567411485734508467267823461944820179041040495890324040477917930198522256100617816564008074460757393551140532984649025820816674576199222518303587652019082362877953294681541070568856445115911252685477406081001126362063713525150809800894272461118604541468014592479978997543714648646242139057188751980061667689923584940920577213736547566892455375820261814482401852537343333741199764677773439911197684360305808847875337809434146263326388066846003256454927551863458936806014383834137285601995084802545856979928392889407463605365870555920523659397959327863596178940867681077911359344587321993825955333790171169196291203915516119974034251659228453833149565561788457261904589662075048763600614667836913783317905341932382589555413480041718667279373653376634776993257206841578912571153584625863867268986156248809440756938117319222190834427195464833373647626677110320339936696181873899344990253940347922840029052169556242511576953058701830108016202267272352699911604032022448990698648994910257746981060133938204512345896006406556519164598463966780350584683048329187127108358676578961429488493996138639938637459727770086644637718996302695430604976595542306251342469753069229782494201858836313058691728697050973342537288067798132895145757691796384420155462004964280268056368472696880111820199177578224283423967083562375856845664922006734761559353199963298291980184541284112580547706777753637589427247136971126761986087468685111380459081944813058240872683135946095026077306004997783120252781447335339529475121548300260916766180374920635256673077105883811733526808093098883942920540195558835239409473307534470695189974493015907688719399627161213397269152710340738442268265998946485581789010188597646115239105638381899617799944590269914586391687687631916252046141688521252446687731336541565739804778186945196158766478253063081980851629648770110353295401007312951749751129191928692724266543699406300091431290114357959548071957797780510650869923625764744679564712687642550760395381986864994705198372661329617678511935710403117038967521777991578038983167512124861752390024044935249111865029970888749832704229442537470838997309172950260046814414030115077547788118627866950409605042215418838794242610034262164408435431467702919269591592001004841773103882039701026503137819158053174312266821062595314820724566666378485586982534175233760948791957135515415255857283607176688131381379739196324640353731705063108652168916678809259325405802720269508971128076934176575572174443756173710262844846647937512779773076002877121566852098376714325948531500058107403571599537339038767753758174288863368787115182935046632206728924061049640726070151255573470697489345450037254804138364196307862703649039300259998212159909884834275202638877699221434496741971104383034261083353157809900336660496391328374094151365712863387439497362913184533873194294957716538092803199777949632969783516067634087931938658265285033028746775278522085805666778213784128534023971136788737277547931413665847480997951743180601885102630832623902687095880718904210980559868117801247179535351148324925152558257767620446612680598162748385575400273998337873305030500122325516966833697237427337075966052912165453817014670100772587446765489479804772565140780496590205795602355412055598496271488914016962447785262324209255744533327065416867525401141505491057435333999503913754979543538282139661039268705100966972298600052128980122126683696195522379903903068923774142590347447687283374881279789538324159580587969762778664739557822839355138818919456702200496556794170539353190413686603132007452965342543286210479800962051457472476818270667751109390955523219202336082119527803213440292108812871978357250656137992764889030137012404344824614647297651410279460396963859270808150306050401807563721769649282205304853128204443302322418370548356743787549394736919772977968549937356905028595982298287316928965858109159934714957160257282826163788044942245933652437613716195157924440638162816119055820684041143541466794700042718658543822311959752079242158191562357077117631317314385804847726961970688963635568720037994966297963497834581951852228340426300214121820941353156691709789218219756288045526590867966145582987491711470044910663952248432918983769709276857429371363842444307419165664408805857365989816716471639438987134913305765892676098540461967480628764617898567989037015642871990331828550996792425381174403842074851355050928511883357621583675265785130944405355247816891533371903975163357179966064170365039302013998607664922961401172930327567610664021764709628006407228210102236934206130156221499361268010015716989135040092782511865803307444636849684312051313993190473926351848480546689176219813491783352602762329272489642410091283748838164274850971784520602230895883047781306243544666228605897039594029382529496656361978190465228988651192723895687168908884191963489385567564588720219917689143041440585756562277044727083426822065163337141811005676771910838434154584083155884163471827968750467688377822648741402878243329270687597004589093692270269875944366586516244260469811337928718407502201187443780744530460689287772243605510651134611075797935178882844593198175535327271121348045658167039934580851265445282616101903058369827797882908958389274693176767270661446922546127128670379926752738529722257011384192923559028319614823282381284992977377861676961270050504778340304442653511752933647433168460930307284829943814614705034618396018754350416199304871581299768507241974787497291021287543294064082145763889595805082706131859759983385881022270269757609437913783426445120889056448503589980732863974028547635997199994581269393653353571519090559265285359901499443861326504528681623854612186705131304067102570047095167115307683866285925933417148659352164927414092528036701063884422744288448350568540061258622945977036124279208868059387473100987793893489052632571568254964143532191260498456011831239949335067201842552562524269652058923331327360161702239120094813520220247956837419292005592785167302429567713817198252840599123106825964946244103247325215756681459814902927831173633643911310881007970598021891680527861655621761590870970848334979014171903319421516440490087270770595786979598619340871306189658273890241289479996369590175817060015864025069866874278895200728645578803397035958340844906160238413712384196954052540608923629837378496612190807706092237108973844084888198545793434728604543201853012803948999680984710199221100349703795014175918610828861402497663871557679424947770679736774094479645686056490678497761697002534887188067286794852106679832723137139502950056901712356308302453490562094016181153838219822399510768222389094108084254700615955505482039708756402841838741183238193279518193998912449587233846926306726018364342875531149586311654464283808054710769583863199886440576246353129811512687774796824279090924472677762825145522659992918733001360852354676737134597943360885375502636090088251172311720400417717732651566562404320385510128101800746147595642986930685143614194789609442828449551307736967997930030949789270354174346779411826486001228410767508583049351334103175724071821308429988717944903367257061641647350046249358386269749129925932648840435370318961275967525464843514328842369070348824598079082302038866283360829997435166838401921893244369175822822309432134526051460503133568574177422492015933137578851486372521417499256592309880101319166785346281500194275633948980697946685549220224157544821458005935286259334685216738244498925996568616166791788489221396148697075478465451496610880324975003021557534592128461743961853862692301572604012486435757409264307352113362606549638832724294976231849299728162598937704433199558951157027574820195815065643716324246372337665189719353431055842822640228789726829770914070090188919423125471081822210107346050804438597122802341531455330064028038253996450977772901275705395649030103543182945974913839113972081411316845682978416292910314401933685801728812556138596044691194028341173864103909142243471570387991576186961725245942574595010105889072477115457671726137986877128163179688766135739712596705554017457055044957666986495750667429931291801041604419000091671264783473050601464388423250806426199573916185019249101540781358495670664407725187853847910741047771591671677315797142974849642798536150623152624034402298564712611134436492660579524279044719340203831808956696729770542411231035507943069072037672061838283565569319221202599975396354440595879979019439477605531811025391650390131397803581678760951374939586890094963620944878327853795584750719959055707679629880723349837425748801924385193652264020100135835128998366376362955197048375417537409606422285217803125391502322345564799997359431541656404251491469143798109367716260866632625457394268854505675209365269739019102743658838815142216823074635847656641333150520214169793655054880677884156630509982320143646170792405907363226940466985708230175274121232303514203314379903721585348123968847509302547374451492797894975465101596605941562639893339561064370241505636408525525991075216543660811409029971568567734976310970127370857788279077707039106189886342819844966844664768949510571285674863086011646487186334687493526155046062515129971773436769574023887737866344499009986739760245193693657752917032772274191766785235214745330854253605865735407797445934848808238602232355619161196158182563331959472816343172171568430617959770283079326280919158330875888085007133229326839070811481847217299139002070828880954768296517179874500419686709861998630630517452541674343693900374909851441642149417231801635475763022115426318128022779610034196550801487317587894037090535286494550988749965056950960967145288039768858122575956671754339479189841570403871909149443254341726957828076608640321040028120547133933724053830638337120401045402380493932998757339156342070465943898247581756618679586095526928965474546424660673962440196963697132504160444333938340322766162940589934076233793634229092408944553239994652455543559966131296633374585411158453947804781622162357033775033561834995947536685314267482120265062229142621959461601021268413277299703621909120576692836382201101395286060086802577322799056964395140283035678525638722358821322972046847303001612326600812932443067748959360529443881230482910303666800457330156905999204137729298038158972896167469867825468286611266470295058123501772934865979187067313921463670216142042260621945110536735896658618765959858411650298129758538820411741561995732802866984723298773160301430600417236235194644466108545973691401548916939106251211078616951404307628849288241999813630201893761024825719161182698049351664044675789199740826453861263467577450109292729253890142050316318320016206277309469158449680895819431497640087359729634140033562278446245720617415844972973594689712489440248264839854920865492546499675292644460353803816298375689397973828913574198841451734875922992495616346372957623615369606327058047901114031393954352713230498043418551121152736533582356445395129457198825985000249679256430416411206513340803846346093489947641045669510873719388693839265222150830302329619415209395507228728526863664351215248493763724118151562647807831935668039184827041145180811978457627391573671505771774118335647876414728807773052414744947037824311943393300358557828922015210386603384150513375443940376136208607030542683728249404375357027083800769157397934845191019037637758313746094739324925657917780946676358888523923109634446749154803524079410136183174050514179543705149415333840319142326346030027089991780006932538453403815262648072968188435301518494176166266982137458693862846708455682213308330737634566981577184823290048158709467129605274319737692173986740282746746698013949126193875210669379505595347017618844148234006092604352549586822268472783858892048630090249241930673925548972488469054419743318574150958001727414406750317840878769384067516046589638246891092581735177908266297352257471885392878385997264497846898817091209127349571524985070571736445454418397336684158127096547959007564375502194488391363463542537187292125332551204034300543448439135983732136454052811454802394534384806861659831773873953415740458959514780166191921441056849177259444403247131309315810230955894130874929343100169773657196909796879988258614176796698108288768630150900947349471575754386542712217724636444057815768931649909659705906771071873435940552273326768691121250279948777960149800517767353522120226741364137792794423912301582347226230339402946533913826563088950843221556878458758937416684596633479405322267980109047276549019732983987831916951735640208291021501189712701050828110423806850550199936275643780384418574648013196401699018539353793512352677563736222356809741687603726525598887828369885309688595043523460792145330366997711528417419172633719175689697042314231948655630882173435914415661775355467336392116366381332867913306159169434230111026185265877234665369166561759743956119302547221970985581510261722744051263844512922560685264216876740262737233455602369799554870638823417132052292610989855278121043616745867655078740965977090019052016984749965381309395551486452601440758560331424488861041025604651621436944182394975829313655872343120434516143639343689089809520621495027051087595713756575412797364594655014710258979998089778865210418550562351518206312114098842776546356025020901012895029060912842601804832619161686037389994335216895087888403944992052863661905191807325656974470741261764046683324979595816704133009620490288885481319540286033762855404144027252555824790736794559550091403573032437819987369044287072773545060678487719827480779253520532814828201761256433943464697968983074925722684532354503654997270339519105203242852902637524758832723414646938107866154995287743736586369124581839036591225005475463887156927144191553614297678181285217980469786331469547806166829813533088504561262125211924926518958677155858046013694340798029112435842941299562044989129996361248347512250722004776444033162376664426852017769885488626305943729973125979248793723879505776385344137573680113396158350717983005077408470079926126162945747256550018549748916107230706164480100497421573320227896529640033359743684666984035356612728989156786657528014572072922330905287467113266233749886627442941355209402798965255633108812857136966355783884697015092103556818870916942132125085774427021859319157580592230542884839655964044632848925704155975728349876335801981449927885773803539444161010613267836857927385942104188936394905631505533995639198982338510492443038668248998914391453525428165002625524292731458976365376837004978653775499988049398902893186423091661186957896159777611254806574024766300951005657821017972075302372217840824598162415221275082771404809692132111179673022842603052438169413251738660169882400912309056898422693277887058425677340315380781900568565072778460639462856777644515562326344429338282912058057420161167614461437778572379189941640227612168596951007610848307422051427450440418156743742928068392545320820641375020356934342839695408085157852614587887955775239557169583522436894248981341274982621493057778309291455239285070603566567339480818564299432180962337203693694148237861565134037886923638254141461782192638665078232032643374310366090827013603900762057875244208797404389691582041501193378549691697592000581243075948483812394636570271292082623345276209834055108099111887217763652467317159388540630805938071127218276867591506522568908475005562035431575830381051563928026772663884834788111733501116060691139935551978753746517314863050079046931314683418922892906327206198327519871942895694160654627821839034596382249587388323181243142935725624017515683080268946723623766939034994704096882975361725916513426901453425617229815177291101339519670840558334261883701563259193476335600856098964276947486328238459061233698694336959264122907417882535131572991939025295188486689567482170798137837229943755470496478454075219819008556465746126096056608257660762348422113932198071822909005205649038767684683853151864256488980043826932011727215923946442865751298491749121106631769012299136124411038494449211225157660381669121043193806855750781816937705105606918396694537212240752232416523682931183817881047055851477117985487175899117046402088542058460225617482134573092059724542907158897835003216207427830360134923636605307919737208691600557364364923578592918956219423107908556380680449625620389642437498691432882591168450898725494014380465953626945672328197320370862917551152564197562079537454872920070428403464838346169715788094924420336385184350985022745098244009614019331708829124357844999067592185407315243248736356556487444230980989843952585900701046756598169387634370255947890691562899348712892735285738931618172321684622570338334164127126837070744440401543181648470594183192921843866506922309535938469451791160712208657081622478681150873426625410036601595913562929605951275425370477265939148472402865343837305834680130347068840570987057566484808591118467876788480312377783426343216802872832508716134087099987394188774829510145023800089293249849300601889476608904258054168492605854712706727108755470252729851486669321683805993707292426672830117719669356919007737766077406747216027560597425073317391193888746444016641744798672654345598155821804650381069661385383532884931389573948893338254123365648327485646782712101425724483401329509433573282817094114864704164038609568601014797402971255158628274933823971766869463561431099444146403804741025516781686776132716123773213511536122418139960562398832494704107642249877804050141326761279298529925804208806160800820000050319495473022882905831990208035089359008685374290813273711016234807488498425221012762061835577752035063465179503273309145985515528911896470319542406316077429789939928829076453083686344572451466993241618325570681008613093867603519135614086800089849501397352123897067988066882809220607299364839881902169035481241225526641980155182833737317632562256445091974403472205913808114361056562031790142445777915019111622839285982372713760410403443787552295387446482758249764237913781343853842354581946690421875592624549349987985813385713628586899918501214174574967752893418438699757894861139505091633092489952923859961922342792737497612573845014132697696212713022651847469338377943264302414992482745520453576567232407731239355235329466670303599366884781404660695310282337217474721946016717643575876802045255373260528417197822202289276635237633059869002351240029162606443742219587636224097617018502806656297910232417470315341681018908156121966023737771306980006145443643846009863714390881380174669384934973636340113200784366381363605830202429961863682058654361475988116855249585781959865750418539198928233966119509537663525917788592332869542027374491593412935998216361714395964631395390334058413449869792779681255108574987649836045523017494051164193900315019445484475705328268368318089938873607849563691618033558019942013451333941496206987147582744516261880688783886114696505351083902989353515132471355138666992849163958442249785624720295498474095414829247107554236840930833936425812716739060300599897893402715723949205084281299288385032961954704361537184683370635733659351587299476287484673590266739730596084498639906373714602081185877184129522871643780135863477545907196068078187124879020058323100882070551903985012866479842703858141510639347205854814852687367495306319948107586290780606324640608598690648187625670618777385182137688477298066001972778564492378915944962379329591815356584004732700208945766984121200132360866394518637225983964594017657713266787620469043211768005693820708387765662697968549380414018273262028548796182710863075530375592402902865459804058094221073480397824784612260510364929218314767614833091222170890373730002875582972307073475155433743301384765295470441595496475069543715736395770317618304205209789291555916005681240278413806337485773749632210986233303134298932623814970641541618318293024847703592991364940962549855701635533554893576073198931602825099729435948777092039602319545536683846840203019561780701979282159217094835552225921223149163437427887632495606769556947496876395785067991732800480943345374208394316325032857819074241973208584373470718918123543097091124078365088156018340813121977184604218344812982562999075636643618819673421082635814300429192806744370667585839935834488629877338149876346077044856637029433894071813768801867200417537746346587908802310402809245688996182734069702891634793557220849832445106916083987295098914024955742159149021141521574565719085838415141309714434923772323279008599250164089472751179591810385209361218276083802475148051258370462985239876629920936329848608330535586199675420672492312403467414205777450345601647955769139508521268579223454938563055534536828974042738819891859677090152295437750157793244828118390495054881280531917803157488836671604941533728628002905673264623927056876498001618207005709862972839459467513061970460540494793155762888864656911019863220056325959617468460325972554731836860977660443661960293675103864191960724973705269012654598263960610409837306590724240359203055838307369121648349362413764193251565017429397523585242438735219381249153606418934397704564606229154966831707044559678159387882115484687805626545948806900678967609174509143286466526507672315320050400446071383948592912964654127744571122426392405750642212370634999702484244905480352631882406209353424867955955062238985434001045582015218277598669858782810978565880019968624871527816657101532504313126733171046207965832910303920161300879708852215617316525273751363129147229943922337260504381196702039951500650227803005111526990361002230157477966984033969134800514640426931155718250114040006740099386060688510069943870149028995250030358988187617691056813966965757932169417125081455621544701326294577465459251832524030820695071494631119044149699307932870611106503873997889066875897237784684341403296323021285386364576428928522605436434050281487360335899393370838738915738447649499325872006234739318833389290917946268601883341053274360409315119703217287804863989122471843724439928851488320797997480091964719897625372417289570091078572072909458288173026224777175873478018829244403072534773959183190550947976983600663479964433841667952430560844374550621638597240367557751508647735296817672005839835708093264269893573289199012050521224780041311830050229412008789729998181869220414419058377798837425556968822192367713453834669580636341553141242389786137228708640819920584803266536223489301679202404810120548957774451197559820360470547613542369551509394941817786150705055280516443463808830719364753139956398837363856371316907969049761141814445570248550939393547008008298530841054502052776191660601827849641777384272136038768511429791499286333923971398089602329830261163971086424221033218865519039034856420314657077435317236295716645227307135606042539697070291316680204620383611782166496253514033661062193064516944591758133828141691812224317354667365441697352276337960433307848135290909615315041531269913771158505854796200619758607628095441815440100968353265951858606452862253102592559340683052832119295129648560117033762993996495071720621805667323987687152255273097340925918576754031099468664680641507812487277222256038571125092758424949337762524912763628979873700497923606759025572160566458191445062990062713865295254571442815958258334351969675188170924104613841156150380527492500704157018765248289809428769651496860580676973736666073799463753452778826393023749903106344243006502410483795618755705268178997452111417577376561602095897089915765578686327431934734912563204767693693478925526327372160405652956236262903289874817040012389724105102530375527520960083720972663075008869662304508770040567212168970345881235732824893320919833506535850627983105011358186796791319245614882733952371572898848139382330788189172200278340715727650932153745831917183716687187167143943964103712405964796824518133845794222257223753400542380899172204865839204926100136148082673444181059834960497750673806822001199719194522343940885124430776500970522876902176609592967456542586281557231094081294646853638859114903124163067268080655962228068304414404730085255417872581874442350953511320692325151716270171321365143512475947878009121127377737878341505386676317255211167449957987538180246267175463502862213684186546421677281377977297478689143058717417429145884088548236486500499101096728046224922061931318505623735620985001782796212144321555605910103963802674981513538269942024858827930300556173848930552244980423582431337343944032555921491217781545598276019305945770036887562203164868044688951058630107002286347135752424901666520566493596011397043885354832044774776368360411178226885991398720874330189012220621526942015777799163364931309252658708113758672003236141465537402850765133758991490043644382959516447786177205588544694137650292011905849375585829672114396092059530684755852102883035178342425165503722842847468150812073491928547721091577144036260417415244439245437908279404008790321363937008851382812037360272944120559756041631165229013065943608071019371809454267719566131519724107991123882185436686259797997467360883373058421772715332325436297650467923046405716372527770020644319608252422530351522855065877583408504576089842490914172082569518245704139088967044080312543426006109166575010920303153048270169965996115588108834846226834228396269520802323700185256408373836502995244299029315641778115777153764152237411642017730352123787317653863801488577163879547443170038935352361870473665375878129765819328340484551471545724832893236984938933772715672229026279912860328262207824466552104329896128552109545599512353897282152907400417841681165391892828101816998860155445777031416004710612370213528817793595843430406860760195175238098679478864607922552256202634991896956003216883732589530857256197122645097649947854904431262451891408544831539524621591823362538544853118436898487583396491680213627165068667166732925820361393970320395256137106539410572882763061397432882966834455402342038180403490731681531221930579628414625815920536324723747762713710045761025075744737368358033159206982297655957035161725912908270069719543088962632196109509858636854130799149895776761747045498088133872292370004547684153833603076798453310792697902590702580396426494366432123819798306214803600810130849922507115721396966081840121774834816324690579739789605511327936538921896194620872287273952976123960172858827948473908678614749698865319806304917183673244027516518991750396744211756601086040409978326068489998946361182591779394694603492717948429009744755076383005656720452950541764054142897471136374460332291862808499030616664477340818321874032974749874969798596518841152950520399100044719306424141843920483239078472065686746283049863534934999553629857519816793356836410742973541826220875805483675720430279658967208820168418926037208369161708609108200378895577495997291961216825466626170946457575765415886596740504650226643989110041173429061398851235922709433091407077352345906796011473283327408294322915953854797693044070780465018031243455900623329613983077456509391643144262037143515095648209381138627705426842155558810285150963073454706184546210612509349838555247696051500562809220169646660824871819665240515679282562387630879107566802489807662710735953364300231533257928230150014196402565371087979409198074415262682438231275875381529399812907703297287298360638473553139353072266918464204182440568476576089151601840818424264079295865929803243069676639670769434780916227776184945223655816668966284963730249045174610960065745032203024431871062885193022049396116536092927559215901092744883795995203224866719646523840940377845316487074846628438558503112338786193151856086178462949684508136144410414421167061904213989967539764964523057776804038491087666614740034439486438299233220455575946032947945423475053958526793222955300372684466925343373316617308907680765298588058681709504503889916888726260989315978002726959387097420760141623477085880673196308192379590338541341116417576780568304153175179298235198894658543031283845287563422436651483561597216918217249712963134269558867450428124677287081856998438874380318301906415656699421249733091282561535516640419225797199805148173207001693595800492482944615390272126761169723878076709206414504927533809600477959166067573144137552688871910312906184924494280239388691350890232306795666444552459461643181424021568487202371918843962142078799135400661827727087078068898607312308023220301091625586689872425310965119664332989068457739953493538073300353290046858088116167695388877760619310946081400662463555071664159434695532048195729620019155773342650893027427138487118497025677522834454646886409530041646648771302066046787472805576657331880252688731345967972184716482233843262358339416041652821420189346493476781665064989535101748661796474177590129143420952808393465823666486565689200796175597819021788995944454144623860178685727394547442309546138327167028143616875536396708972108266444128982341206036168263522232368697541457637313434561897861043267526584957558944025738031747228891608040144799125922910251976639935154501791809676186426618504372619494975502849979438418748210866567566076216791009987295713102259808085421259507938824173125038250472248917283289029667170161763106022233130084103165708905777913421417163254230918766140318051539099261606180408729694342280701216165896751860509359778682569862956038347385131628641425106295106073233790090821166125433927573252947489981710173119446999611633761231754268616402217279210801254284108549566445044304892050531335775846681152111375722646331104743164757832833230867049594451991433333249728358458212745937581370040828851770516923216345939270795963412078446670857337964897536894616853248854981654646574573637617097583970050921143035181676353818523032243015005096858103378208756009536295369555471074103172711109710676848664463326912955784524879669891508064024632602153844435938188810116974821914237717844982032033795324061006187277325679370197594568520460027799292148423090926716699536355980376934793440631115596053510638242138495219110383104805752743629258243038966182575926576856319788841657266083091781454508349156333697409559008927706287507906769543426554565022626113414605891113327936509896415190754823393443990612062257556885906846869387535896343615099916009245000782121241675424172233878131819365250275756947531782572670632736565519787367635953065180480177454248691057858927215520254416608281269640929029809757277473982860005779960285815179627743885166809432355559076507237228842837493671384174975661378824078605218682966276108017378799091179131023479960860018046660088386499207345375106377128904631776513183246225774327319404155130722574884961156817685298788390853460647869750009013325403298805295982341790654723831299257430199358095261033698437475863184860918930221458128461357205043180555559998493238286552624401822802203785841931048498731677879147483185488747045525655415723368927720559902039287666764724245743372859773797855836072527305178845426345804946680307399125437038568786479512783612905294175847685259891915753011590450296936968435924498647122390534396531232548974806040005245250088161083407551109578169058685348637293738165852342441211367243578586970788560291888704211343214075581450221647650964094120756548717389008080524462817733423825130400297514064096351178287831644345415585044383196086733408872837823689997192534098196988902064819561843922965028425934238272904242878107953520267389285599447667717519934372647898102241701680696814062518470756296324002628183430655042411404130210855736143620872249331056562658713975612699675729335205743580182111134631971079709078236808228678767201290439714514689946206965859827646500524457443635181771659896540367383045360537183552493011875657830656520934573507403872985965187026748321371112861850731028546685846424930051311575874257027500066696054563665780008845978855189161302072185706012493119438520839298030751305337306674187181963240061171753939372078487343529018384982128892207684265168416917111459411451705659390380944250043033064958995268965038406533852564594187407885025347884903823362286142117866440795886494062742365248874137932995090326514435107828612986285048204863729535931134275918549317769532134097520643015591484933970309831543710498488527542661236167658769583678173106622860057920752697144100531877493651647808253911451557705331216595587941890744619310632832442323100510078412858853072068216932363309977419835135808402633567960384105335783577826013152252804797192118463711296200877300564407802080837008784889697066758769822855346805550894690846065104484683367975765317509748427116259337507305341017740854938404778536126780311554796600092003007630757184431179722325331194805826894488923358953811859538515528770881601142139592693475454758444589491181968665313910548334315443199895414632563852474697850496291789388322953446801298237731026946503253694471537225714834352456445429574882739423935647837873325139652997220525331334488971452479938082623010967049146903566030300996781720415774472290197142533226235280495299462874638928501514314183395501457735717215671954851630193276263806605710695930594862469111785608894980568354241057580477892290356799589708955335127061606241323932933381712945117305651127630876225360371861290019416192377551432881589244575333841422557296803252368729715816207158456713343804534372369629612742144795074465924240767402418628481132090851070826767038684495784944928467166527275144664162576278444683564815691866664569669841055580356752624194957957720614782450829436719447521507778484088699951838136125286817083653733161860026911554875368760315037666759977369090992556029058510716384402554419831272864432163092981250600744253531815168236703427928443050801750987767542826393367839889950399046276700814849610665821396115404040401030710610943305920157240352682558182352944672259240736604681299735010145879680539019253129174387207995434707785638346998690484852629045801622609604388830843208700960917136117102488812916970124979933900746374845028376337202855458694580441196071444838146661924148591240040101136405905356626226868410732058354157985912553953521455644683031177233460324691597827736591102702819755150334663200712765861297221819016903777427963785679956282236370790402079817849841656409396476740958420341330040307807994710766158121050431091153059346116814006810439019108247702541616311658890121605886075972528522296531568394817512850077010559259150137963421526698352817672631797765379508671042450610750716351237449327139823222224740510497458779905244212920450667941014572191736607601477760895602335326023197471911049788035291098169412331176328032941002246540715913603572439013907092645082232942236841503456074026852849824463563626294210927008774481757947394145108648585788125838371776771336910515800578035528080707078671411798014509646699988764291878200183135592891666408756039922624306579252259766107583868426274372706330794223836128956095321526022547088314340569796296083496973420101902936718225237986109944842171156992085489214486966411566836441217802724483883495904687145808350264411255163101645451764927805015505936651134531123026863826876944195494396141487802957792424848278198515675193339278619529363160178494990866280881030261823213057092958029220285067407512392579631168965031192131429843805931597598983648209968117795902644204127099275153648831826271965030356907863669018107124889231352422016034692990197353375606613693873738241689291460646373390146674490457009870003422321577902760891403192677158887465122065790159593785836243654481031512984365082851094935379039124850640542079201530015853645612083798665217172314385614554013283763542676129960959614424794347617153016565042432878802341640494075338366490099746923905947901612648249607016486514997644489586874559294731486667230761671631764626362168993103959616823690826786858999106979248674179067849008518051147544931387134845299652676951817671804544631206847982296325668593153587289232344267685894594337013443202860418744289402061109627060464428016085451909675267506545508009213521084410165400911900462858343922127078383374999541456707847231294346393926724694028196677183826977158055513002064863024860720920061318873088387062848561130392631524606069579832510390433177852928479168850031857811279637125378989991727773364888795388849732538448083813525160286510993883689001062427241134940335317347514158392506775976564782590394979607544462038794944672489714514681462437822123892671328561308930999378005490894743643877433165563738016416446799733130197190579013039022696189835629420498580423476509441748528603505594423830733022749114072871664822569927319126286907763429686492466182019984282964862044161190384926946233411676784899461038872531461427792215837158708064448838935936072202095304972045971623894248251633202822994906961125336442822775146225393589701193713891464653980384168319335310818797978782812229000229847889647622433460802603398308671949935244230352244373876038207419670970985170062525116353963544327514066846439439183373129623512522560806714830546052459601354824859026851264300758933631748849044807996814366608977919478915250638366316724529967398899962303815079431843892940971134753711491644853093566752917545317228559802271860452472542189770643427947512037006560756221148530287180251471253313506022985191759656276584865106787150435452879733947758815104252356596852124031236921537312780191659357863337564574614672892747836151447256589674968335325439835749739103527951161871747448233760157158755117083823633553706625978262772478234070338639053497992668520059922745467264301379662323643675528924802805760706775156764057036742008836818903531251723524590063568021510071757038602477826844636833925688573927567511721650318223774954655740041231876396970404282290136933273115526159205689451216254977475092213552492802956771199285205552968079836074682729512258222902159884100098982642127782305607680729951199947000759757176197608155075929361539138930397782096049629288063036825446601041364022357259452276794282410784004817207162233897048704232849740491741930976183510508003069908697577119320956176078941755718393186625621017791519967665570175808167089127770469665057077302985579741577817978660709014967805064991978954790583585316454838081340568266005532154886068830151803242564442918062604341219063640580207727189121245106983271907737470836060316587601190473899998012055853609714781965284935514641325243484488976146384617607664520921715158638589522267247606252616257747450162004324358366172217710587865707164965065287779831012568573675343296878191549338110588138789187358354003865573991296878738614057731936231889986639592229161768736700673181670606409448074244336159409854506934639246934498722297628827852210326425183392248673105892711174801008943316913339323611718506054147976262771579080070032909562617264991235807966430918031447264877869582301300901013420166287651944614445523876141593472329002195144342042310421010351962158548181908020105802311385610428059582059604879652835482043380455864895817182832496053371031061410540001691170422233765597521264710317789857629934983924459673405267945737912302034703842257849394780004666496542751228494341355604697513868732572706769930454468916016915818602493296233033295129189574939505551146729420021098001182476905315082873618140692482507084666503636883221431923166910303231944276157938930812594615162777700323380340493152801779100776830883669890352965378454000771961243809598286219025765552930740154352668442566103759635828219420202901723694864439117407320363473602055113162896125467636426067532350227892857146163926257137127568022712769920765180909937158719419384346599007925909116203860283710923041004164114436659837600631883694231884319479737374358494491424870676441623684822829452710258737590999958627000691428636729057380493917271465721690995247672015209350737066572692474781456014949925502257158929652649295309664645130341963044057271664227042927277324100180402081263444027822948334874947564595122531176879169807333317070758893587674521485483790027964569671692287724248912567233587260894805314223953726430278424101653835828270113078652731173805915144385108151225894631128234558753004925805974107128392044323801534587276099928524881303142058549035938592785992943285104735381988840926563925462377671880404033855187821995068648069953365062736152435434003189741348054192254573275806675081015060273484496380881408727326298078251384984710867261571993985345477285635809883226609674156275469481397110780650133202604156255226298411869493117172410977650957515417672203639431695104425905567882523643638389585327965852928098466242052719934117155719509938560112995388314617854142122957172710736480719085223498138040035952750288465461832473836596882261475203673118759223409575053161024767534066589151812587511236468798158380235152651094874131031933370160568432018781092355071522547768874623122527242022087203302408809371609341992330719784811872300431244127822117269105524240087752077592768330685198227979200206934317576846678072240292948133425394892419545464271298779184994052327326586341585885031419834998167095470038014151242796775098367927542152698838111148297011593923227684727186290771278465752599385769366260837838782294150340885223050623018017823181366833077705438777368641270489450466812977553539629392438108309935723994587622035279999096609141784777390836384725154190403383039380184607717542589847279039765571841232354831064640016566260671994345180116717898006248960042963961371071292462301699600176788710603220228127067126152934821213140399353069022310311655567411842942592097925541499458335400991081997753474024076042857054032978883053190547653709400940301963273313449900639352578359458341068221162681103848016898472985064283053651362186415398427581539081498952058724050097155288747009055475873899978225169893100627526560064566960468159903983600617619174688124677747061030032800231830130443857521501196532276468023811525916143738613265971386619585896282432665586589955706119758684642610402167745573460867764379364903733231919801535463579359988539349830879230030613682636289448425926261790636890429916328784038735408532151018581061224410435467644259693144282760833103656564056293222695769652919602824343064671916895403571940716104816525883638379580816254545522264203664646079893865403321310276673581472432419219704682801346993321022138967914442703414302595050990357948457041515854163756571365612134993915924517295703737887453010470763474504078110968740478414982596556344527109131943296138216373109732218176949697397232575324701057851910121839113769143399530526005753260529070876812348265851320193941765469508535257499195051408978996803123626782945238907993663008393066399554467364097899974220649415816897922262188432167158541469392617978304233935131315158760553025781646543984667049553921552378299498196224280316164928850471005388219388528207327297209170101202031759068771784822953965030064498530519344117183900231726614497142620213718474502679641948179074613843232833231186305295233682312803294700099093530376450336532493443608688120776130213027799395861887512269161276456613586614491098711740294036950993260858321965702360553685765245172506203266202288235779277988091027830814073043258448303932779304124774625305019525498196359020172386949653770708747914109753903076970689933574170603136892044657735710363147420910280473298209333150536511153328546091979747230658629911062304891018543100480646297799035339379507637982281991715399735381579149616093137630679556006063654328224081680443843717848890892033332447723011213683769751491607602988326702340753911985272313817805184848981577608525694920378204318558925271088317341121203876192570893338162345114549295776158506002978258418244993224178125023496862167391898311349627109954401053303159034111399948033360016334738940187201443028964545902059560031614870193185832207027160007566423279322916022257071740802987295789958430109372341012739308133605263654063860810282497202254248262014964207042184431216515982141647969037938958794713240306820452956080001251051047453045218481512396262791741595666250906237637390213672289649209489044284444202156824852893024506338153419672329898529700922358041506953538604839920602071828082571913229530965246233003160914808405786489259607171246534505607856229004110990163753779416685807651500230753994195122769055847104816130486601776250896443245827208499552341516906286369699845340857211143456425331350335933094786546645670652601643481074550552599582631797497559738034830868499354070786926277208546112725223964324903403659416476765719120053489925541257397566231196137190020085669368406760194293105951151006429527760183219411436669179728155806255681113963762433334525019635112953441625332139495341662929914594089054595662377924303164708992060485172243952137287928131873144410598700008731482504335610487282552045388868589804672519491969129435874498126610411021496406914621846691489823353554760379875212665544676337360022384108150733607865980239102910819883154533323312241671314940206139172423451653881364596999619169591640764027037426217253077059561530213912581594924814394308024120765279738719845350607553354000288928315692914708288180848896779622740819595878751590917819022030168751958034027832629901890886623826993668075385311069413334968533705453655236779404459740443415974648998428435076654248657735470628029866072014472057694416769461965422174483364642659206357202445962474822779862837156577530538932338747871319784472578041171201459622764951411442805201194872769838823257085119986084410478463284914081017115851911776627665554550483961793610532608556184265986365630567124336979528455080239757203471408976909465948950041372867527664967664968467154090431906183949386571181171163212997521707911148129755143454602844015902679843732377943699203958765175705349168129323109053450819404800505805643428471500495051112248916729822047325284436802737679052565645100508023402667580573910961114045335916014459078810956012528138931759392996909541614208906417135908132491681855492951864698226828360810933812471260128577057694293522428940982845065512546751544325141433509518216226410202270552121157056513000601604346334870002103644998273952044795262757259532476428884256693025374009891332711427886013574326403156595457111647182827284187573261138583760115769451264676084028004336091349041924303975431410313870129879077550833250707563775516279770493605792875898818045524777584076002592408373749247174832474978367080928040388334166648998150080221184047923398541789428590305178870233300459269635203270082886342558668462924053423547857293957376313600931544189130880806510814503527428318108597664217446151798176873644927163942226452197823242968801434953000606545525640663933870675313689990313347887602475711166494329238619946874633145200320802221483748877768177402080801048159156746189370924351768647405374186864206053803703159370905603613307089705777981974408610860136428036890172061074899492220141182544658698767799867483516276149756367080696300816704266419233825030650665824649372972323101001357676847417304959689308842033458246968124392597809818425400949231816568815061346683853430958697076739722839898866186063009540021932017118565306031318359530899577606165958856062063595497854332813632138187208450986402630333214752463278781922819208887407275123332022852045829615045663266901175728543885416967363735548417335291311113090734315171727666490172746116971819335037927386405063458499172786891875128426385860371772511654481097829777227751025576130461043805237007012866803631536333257840223137244239401140667447882463261523032879846633894698013068517885745047342824553087421604280506062762330030187694607142420791715198529946630235207996168188599402970985002662267809493841204938495410824381468377114781444888682528202397468428825123179854472409164734908235207180554366418017435863636145989274383707985161150895386435480347322185748261265963783421176614602836379072932728458630430135919149078628154230096428588486665515395236103421691638131002117394059035146916750271662244058953233619545995102170125483506647089653105005517035307461958705532036660688792513158755260293218379771287075541498292773649725663495060411686740220105852965262274968243524206179987701698447116054622437609644525569644972361854055203244911617771379365465556262620503516680151280516764119551852690326902281675230257266156078074148300732484851674920030809806384104138846310135902061775772601312552153192322108115340807517651800944303937997974372075533265855313543697147034730074439348677199351627642662979165609601670332189620988136937828219068656282760406849567002475699509571467130067779463936146997771627292853109654243912695269333371221705426389213149255203423044306626235900277300078912068698734449876277285292935345270580196714914120453930506072819623239849095769116972775389368025694539244093417025042103814921938748228797332678711390251231312191909705807208005506253223754359679350912373076468444444855572998222249025608692366187849386871489135515949492369684876763151094515238647384500155901090813647284287103815362042763681796657328154420733151494963921587704640327877520665539838151462713364593316097196969524386841730836358026875985525383392281058370291650449155688975996958963592267004358559553230243377979496910963141228833492001478603301913864434748725964777379873362547711752786475066041016052209093455066505800025083021162487705649648897275335778020888794216922180432037277005112685853921289334260453039142010675671141998528462969607259076123766336388667170728673373651694628713823381793085328425957922109485440104963427618862440737695838572699570561281619624104727181419004263935932649915652690003253875891228445946601625012954934533479710655131527629951032066513434534004982321986908013944625285841831525444654565194509437952233747141952811279785691532118606321617897258094332905694242142340622618413246716481023898021145749217040055702739661735149746607764672763140855998303446462288024553122043922203125256026337286544869307601036398460256433874891403156017401915633657263586775279649020640572304906476692077593226367124560005091466181425432113190498393934752719274275307778997693918760705697887705083246401914021072267759669470185921393138348222320409008492307716954357187457703081174066992130804606992302706632691864654755733768573363269619736998489596048966440838671600429638790374655231665670770314712468578086056554565111719245565280689849511187018266063911729919549506364863206718371796969131171137588741391799995373910707233393732955528807330540975339280585595138404793031713451667993685126603747989116360149434099214641129603644852979651705279393997560757610138130685676389705095283391943819437628964176089237213955879900534394608395368728719494105892309023033535172162169408720544846715275925310941217569026721832039591899962214275371973647639739437304878812687567034320541781098424093228000725699261294984898361286733832174003057222992337167628251532519512419462965956889229464955751919853570565825823306072293256852282241918382450996234244409490678900026999805971316185478587426290097358406855991604025552997251578244154774561053412282192383584674864215165193609511119797661652373307036851511839188217628897871461972186031353329056445355249995080830842362443924915186041834520934116340802175412955894476567263423023079273849705226699793439111367404999765158419102068867016439324675587224721989744786787480236172073069651666770898998440761652866909057601951127818042716289994411266064642972380093039447849672166925655139642773723058182747458338882663576057149063217455912007774986034304099785117133992863421240609130345612424543791696445220441467768062291373445881667780569226901330958369533684769055470535281688298990311875454458811464998702151697254012402107437532314023717423324491949590587701860305543294738852837174241311897452236337105233919353740923227604472070946954833209582694549845943808263586669026721670761699724992297174526195602127639278664000713203646948342418359543595049527401482899736753434466891339411776397550299813405881296913408453357957434425521220676657927743926184178767059186446688109274648383270186599910216144040260342710021863457480810181896243195319621332858832089548788255217541937261704847648377992318346012845443148880779595090877016111819017108023316161166503798707516115098983692741050128403488626779449198079656226631073042027342244050139551065329926241275074239816068437608976345642158639464996155818715760702448364328458207007753693571206272571730653414972178647356699562684179843191457534546494744781743762746405076875930255022654735215256564998173067206275024173069224913450801331031998975326179876928384264526457674670077778172239190339372450388055727321153870652632614602723048196920872445434162173736602605707023964264687185717096223527919557804701489071551754460190952656597481554593920101677255944249354578676194999854050678553361680111966526685284481936894055256701559455689250317682277935320864196418443578757525258291102040194814442943915507923280022234030464357905278861189239556775354849977463820618266682224556341186014687593900833399852989826396311068412902776120614808827994908476039455900258087331872903923187187660802393058545513739348008599369662813381336099327869754545961884915019512951020695736150320035185684437777310020430932339413030611634772826633267014370951067675061441696438092358880529889943068625517983885012904330097893575908586766792270582575168147286282872055283909371005757705297763373387338926133166657304055622307061973596450851109232511953054472838415293213020949464663422056681800249369196269844793169558761226467893559876084946879081198139597188844904683525449379016523321484888411961476870913503325332983317998436621060628111318559954620839517831209381617239497920964900503420613570898364111284828785170528598218638113459623610839192096255072357189045738988099633383959432697771565435888080411580265908083163513907235037353479644686285009945439670488879059427614343551000996047662166936097050471810301934625229236050472514271968509456588630066982375455327061682921323347295228991209849830124702225925395451226172074378273484706792226586003884552665540488782666786491753248382245161643787169089295781817747280451024776053612968683139219615304583717388313198056882004828780923318337204915270579085537690716565278792881358101146824580056586978097968996801731034223210379107757830119380056218421752570665136596865364951079814058557936533183147074582377209794861969190897016808964167092572043487740674559669437036012427413331814443940299256594769213110270144900066692400070946899466636848771199193899949409614351984437208502143324150221342885615303882175085915748817147914897684637578862012431970938344192174857784635206866519587952457052102735321362608576693348100745965372988550243271860299907054906556065556147817839650417881130580252709391371008255411735773598839855365917130561298533993467773463685642639673132153673988230871323366370618711472177429832626145727687476990576410742309947803493486307797091281427097586279184229429285368481988714972196865739334886580489561171563924530279129172149637358555406896065339129617482061806547269412866238530609326141923561676344617896787196996224182439931362526897044342655798058198933514578447623267437136205770784975005249411978888878909016843488111767991332946505940957400136628779316214611567255868912430826896598557454950222645557318115695512134747127982577878164790042725390980690800110764301229172639863400851880968322632389324992793614102808755917364245779625998639326546803287875598466485917873794534360845902859489845568741761911182983672721894143682414277145864116483611250895880747516869672576811704421277309265536006112513074585011915370522170656430576275245034359851538603144572870054004554756889800282169774980484181922392521327804244684653699951781055677315247023217417384569058794334605238242504691758079662547648323627793454006992497540497572501709418019571525796499947376460023490204575706652603114441874045020082368574493602437085555568897127143691559365997280579132386040542231301100353279329091142647364447568428715664042151538519305588337073030471753418273755168103084773292179581127896669124513577904680970230473237084161467027136872828413127780526325006749481972663569794763174934048169219040736622175467958619466769016127921946917260975846628433777175048337670856800292272778495360794627179548423105999318694847170683649893090285731981313775133698375351160310704086890111304780859249971852858078632235516243308532547288842735656461119706310759164270757809726874380649261162453705118414003744683969490380122821623076417332774780912449599621757841813252346616527536682646486537638398948597218925812105504077172221357573306511215295741561429280591309329463602337100896514367783170631675963131328918358090774290667907435153888095359396556385092543279962066887183323221109202195466638413369560631416798194022414879947721768125360536723303795472064792860382773827798207289713712503752571893383605641651146192498873218057748698043819653190860602093814783798502070171267665910963855252507609390495036639870865604119348529818453334707031277413286774113319394399364931404576019803833902870193607626342972019438983983631258799580889052283046233429285672047546246832987007790660295807956609312230467866746343885161507419341451857639582076744834247834116715105720864852217376353524142417739373226875706055591303399705574527210605552620855419104399475900386565153033505931406082765839079025360510156933000582471661712468171268792861775020591813418167534708946021076858207786037570584277213827834498318396809718863737901587326475578994000755670281957153088486512127804981582112414817096772968433521840203686753168884976299674588579292895156956894398643523481384723857316911790776634809639161207289776433874229800319211780519820444590412603282663019790036595493348096570978791074863014615361928683796798362629393884740836479414320291364295446490117071757916480295188711206942311357786687642242162426692215913243469509639688069309229900087345018895855273594250451353551683807148195311240215772657662357226041702613793636472690054310524098899780517827844183851988040858667442468814068197342326065578623204817948914314611843673147362988283944890769871148352158272347247288632558600412473475890304045666844514890198921267754860302810593497150452342145919742450852073403758481003712461987231609538882588501977629903594253803512588422059730702055335205296285017463036305866493860413972282899485344470653015144134695565451636301559803595343497981262475352613550478753525039202912737312906457245648848168940010394645463773347046020182477268059585705221616762507774175050022569639843612260195759559826603523147275474356780130408534364811180291023466407184755132953308522576342900296419831732684438320294716605660281041384649258141635644824778500869705953665509662023264547657046176901380641980171407101411584917006498850694348885950054035381726311494629114857555855646580258052008136284373119303771768770965148340754911329350876473737718272424464631892629084413733499839761188140354406871233033023359764695110925571739936198726139827024485518405568077420495345223695987286564270916920986151058340283195670053239023028275222766805926913165507977456760194676147521990226741082419512754801714868590863441478338060473644222768808171176784309547501499654658346677563154746681619317778147500222173839011798522759030933310115931642011143875205563703106913422241403891426887686109441948231789711882932226178777760005002094454034155146182017574406135082744074318149144749213414313991403615481278660928133097225427169517299585013788144935593341372909319648128727009705603650558969953263503519774780586537044450502537086001682600967832344298359468382968233995816523220058601682704793415898522684570094932535715013299355171914754143574938998032822159334204593180959253511481717321897285957633372491318062346405374627910693767807694468347169350995720077877096409090806269440019423740489989899042213893910332916641593636411995010608825771997359916538051055987272458425340306683925705667159791450197042488866730828563526281165940711106978137444378219005396799843153562871867213827643847656524779837557882441799403721003823122788996276519450641750560520097720349688578713637499819395764890917114922148331124397879421412566793992049636280530076233166885759989637535750045310268643711593518028062921121111081589408560275382706087649136383088928990592705948182996364731817791289117809471290729683649283681504860959702141040471829134101001776313389575875725390525540162929625050504259593118781846785248152447434323063455964615352064178117773202636737387283690123244571002329651227536816037250804162589522108076450579213690927487282192138778351041630146658444351769232650052149616027057828008102333159374909601108691709005210263588865324017494493981138855221696015996723507063844400844630950758872008260013479586848038897180429699920793087124808436903085358809723847237800500030640458388768668186982049202257451895765147791653824325145773072019673397429659949158930951268378669997443088853344644960600126605646383876709794461367108398276214280030171643588523144216499695232104166252857133204687777435168974149075187694410501164441178631702844930918392173307548181554613568700020713305016405266915398271995229483327740585066249571329327858059409159439630572513103613690892510989162845089689699038271998793121563387168772398378332885017645921352127066765648261455371418071763693451110430330333324378884703597945912492396266017421286797729308064169322455438896048550978253416220008649070074133698721469190719165483450195159381382663813144879989639525726913873530037849759537664883283263258293677297376268607050302216960140945364425839820686028190492572784275520022735792693974324658263503737054843887608053349945429105541589406591794874661284926466120661129238215774915498233836539020497119762288108755249275479517702769643689251050567298890873348165896130098891528043929989755930104696577776866824644117537864775045028146986883562831003336843475537635889666098483263167378944649193906981407422166866618948821990126383733825923977172979205588195903202024809978412841831890837416310079026430761971338673203135707999047719296077744066386490577346209296052654752206974894137460479760472058875431770855160038517225044893107917779515143818736617000494690189586861166176634139976795913840733707171651571365618821087672711224737988261774883230534245268949351706479143843581075089850839689492497557013914363054196486915865747307586669600503775418580924655783363737018428032429253653736993505668759883031497859499541256873230137628139783766965651539657264745384361673502692600439264780311343488261691812967190353403410664786968034676286677749181953717327212039434861885069105722341361232915856772662563612202544004483421925252136163208267406531039626695211588400656827078034477859920142811173991367058854378673810296025899071619133738903887889698538982556785511662328347438492553536596521435631040557179256982627319701275539319884471898072789790468723565854794258587422168580716166291421673275272341036081003588531936065909074235967981582730282660402667761100203504141686507752392513856193136170320055198854928064882687726894063530444627541240428789912781117466872235170310656722135073993566156954295503987812234536096256828487156952307751297625121222396971551266853784360030201934209042296476285357744178277633925631866593431115636194243852534214113647471163309677395963454636093675278518861046219856443825727416388172883473018397896996190689953292903870716630419921590867009756538969758929739256629707382232703138074442175782680797068759746274797513852740946294330057627587930732134529721309277785918718802793185106891042603498598869407205577746548204966024332163703661062361426541144449400615849779079998177225235564338477876483544033881913970514368149090600560483735898864875007870998217040237539441712549660032393196211165239445471944852672725170745756941042578053202356559939877280046631335567295879139799108272825565789578578068458230715095476207713190378771020593918499632088544738578213538878116710792527874302104821093253514471080752556618790837467190765073928166139174007876164651032342425124931095870002804727634825330454121841274498073076177829793757128841111973117665384473989171122356309850723149951546932385331738167215905727423335986742921631736286488838290994252063809554913751263041981262475947628129172735367682444166292331761244067184079319947385377907046790386698686908153268497554554698574571600304543685877070093470472046366523863292799571122594999007146142053578921603347625391464206025093245588898386753296649074070289609227241248462279438249344645878537635227253586854482230026077044867280871251289560159125568317708877326163362351222063867319627191918366161650022475557634433470356676262241949962212172891056929989603354442927506281022318722151437195827323950086179338640685343945757920213059653740184955156402080705864219693748734373691643657153189699544106739974856238067481498165112988326002432974059882807186480871281476103228805218430774274699065064613507137666354333169794882486907051722038962119739269285570328221463345383182199688951555600719308343044620509325676774596316022707997428437384564552166542500850648487421142772735269746868320145540458835041889058587420824049498328876094717305426427009302075038438619619817389237994075991565809402822263590434596079663395058409322199350939487965946441372023792560311139631101659382690032227920433419879638231855977886116761992288510308563952320007555773498037552010761950301315817523993575967905177020105865996643110448061980741866791216258976724321512018488773418769315725609366341978698345510809013865959509015566025260284287237053365617940803454409339071210561267857079952480404404524116407715485294897761985644619535425960871938908265344716476342720522205645163508341722302885263335182419244827763389346412612116767765463185713007022698294831580406064507068518916774122629638331178364320898218110646434204972527592974860518061847448740006135563263629828612173367819634438563217384299012360841771714741000861033971545458011984821289808544564255944586379118689541486780249376684439014760630893982067625581896911115130116139139931622891597685981826283599994293955758824175886458095398578589360294310918212462759602684132270274024478294424662586697196615488806900881102730812653249329106573108844186981479958288635875546320604982853043864410013736995454867023159580833344475349968641958864982879501982132689001932154016447883429459761211051472845065600799576059236184235919615321317350766044399748039745898089385369455245920726062834655778308932877794390313369598481959751545495577286845238920173781657743995543112363671115176351266196279998970397023282295081400844051785308189524864465721869065492143211275183539816224574456626921991561294043047123815680027602657779379321008054068251701223497158807912496587559711099598573320851548635710126838330710536898444327275962881445945078113464796368559272136425126814023863651101939952823806695139318404864027529032377714789316730533698912869079747693341761349544170518507332760570462763775457610514455080541156824770810098516724526220716221448954043340434237480875025651029290149713779722326707325906228087853348595726085890424968868701481329955952863332490057752662686199444829271446998780892650554221631883167495743976206241295429363697158308903841873495201571003520669160481099882677687584868364529180268773758658841500890243730074849764752509348312283222062233490268475921815780459048915458919676288778236143394352091007829088028652663221616499722765909802661749231352655662901754844985673572701512232279570620828667402000645588133763978548808236910027620834523590545978739338598101900638990751178087972845490324350728595990199829042749268397375814014102682689624621335522485703648000993102047491841116733446272708616387091106230541620386681089042880223607731174022203878981175583421558150056991512804014809034561560474050994749537692148101307660939785770728690374494761146456521624654149322222237158774648686953413699353406210029279865140188251861059950560797792945763393153066100599598609664700518278411234794926757194593357229525305179565941866651793905207117414299127809193329946300322950649935796407270957560024672206452791254264248862552847766105901732472951139979103789341009051034177666706587995581608398876472942878974903581126065792119555240499830869597606768017457327746476778081307580367390377896097657310875838044376872175082931388291397822614697994130811866957603550149793802641585315909451543638801165701836751799070650469171338759083499959006406953914092878757884140717566098110922238406093524122990674132777038938639009383639962658980759756915747572301136756854258304698083847155887354285105185954437460542578172910410422810908962664384361127373712126929666974872348694255257741472382915279364838785263987425968457139907270293868772336700584657308582946935317477585189462929853921744279836902535802426848942558744384623425687867023785608916534351459140466775187372381866894208903722251128090752624429187278043845816856192953842912067457941099163954152346763028855871401030285097990128239154037237887376868093919991905271988262966937319393186474173624268390177999196883901485017325922730586196801594076218074898562899446770259995097600408315862739745542401835987942073211033063473322352149050153008530178793083353648483292796078552947967277873639191202364814804586880590917792266077827945976729530417036012534878156507611329532478403214479438551321937287078047216955694647271301733130975812398612985158689161721953379591821392815978780270063391515946472886627923618379536498243840730035060080303348606092594318726483922217007838940615861268407813354368161461539029209398724707765725242029906016135336602204454814817534477232390984271865604695223655000606626928992022969710978326755562919859496346742226350598245218076433014029652745281863143164203267751932505697990873747871129058597903758593481722254971746029662594349017835252509951546555927521067456646019378585495520535464067448644719660315710766147834938480413469642555146500416171929252481786603489965157336694119493880666494829623875664159944827357771137758218571163494174235162870563789342822767370991318960728869875673828922092166996834071613470436388527225270567734336789697180888221602378456933005608618110647337351163322219906907053184628252533186427638504922350904419372582299162915398731427542653826246621167520096297815499284674935409182631923500016482055769425456239030842315845134474462324077632755611253102198275130179611275419615756148354265379946370486715393183533580720824137987070332075394682451354805276718082435807362296815420486386851094367987491833402244230936940532192958074497535761675833012222836841949076911636528878235297048175930374674509837849926207472896637696818866499309023519558089793789076866733127159873310520799032378219528592692296849427645592791311535505163231943595810873786744215704301048238419900307412169178779138762560545150105036234001797611142225580732341321924578022669039047097198160525667373083785246068531771141533593566017128433371553714985078168757655237816781173280107568465865132854210171680694961539363461605398448207502492225995360888844681030024217915579503451453538024674761919690714072757398843448705772709742026867435715490555098086196064928988414217258692902336187411132941999567758681468563384673401764264999473978321506877690537878179645861997990546810532139525294489984102757393788704741328806577306517298864026777650152570247254178694061335395981201084116570429549378159248990585640614480527585517365316126708996568058302485300655855550978685835260972814840513215127408688262845039991613307982436914383566345155131187893335865105179109507163339704407380712941300600129406404750709412807866412863130906957601665499013867781175322804270206222264950932678823566458714576125919901815096870449063967760853909830787523903755575266417437426773332073041176038516168421232238093074485897046765008428828530369857301658455552957774215347362030926719462927560934660803842782266272748456043970386454318856665953150148765147839184156040002621979780908807811725117560172111094249151635034931588519495155459228441395373573167742544547553806981736234934141167773120585073979012956529432225210490090629803459415337920930379645076231269253286921916075215680182041060535708899185602218006233622851256893698658587386037758578872942594742686981088090206204529459974937792917866561695510799141955821992292115450219686788856457788432173242336225244201586812994563408916804455042897843792048264593524776217820613844703760502668789199953851253240228138125635190046376159510415125740384294177190899714807612742055746466771539627738938937095152928839160355178933275271319777509170641333770023693369421625072855401197565506957418211043552235358123682070115028231147318437517297238301118956099544186313595348053825596917541717594926648745053675137814050984045584734056628230759579326519308715094201473396746883542940739134661464271684945191351670672499357178960996941610399046608431909418145001520944193246579021395131334761700262339987575716563366998479418124415080369885071478432273735944076975371311030706896090523835206758256225554492222162339923524296558424658421281446989096557101996366715515282215256364483999045633963722614976689653985058021925770368957938835454920648247406818086415347824837932148540899374054531931382445232743471115721362336981523132463214666750239064369951964557785419089353576119296764628168409433373133180400523176571514523898494289081575274954311608759844401572363639321492644939853789669094037411865078073291107923350728219281868901591806720482231598214180131037974254404578046319233558616681466982796092208564276575083462845646976789471754747321903240366135924224229346604254804368484740008424549772349065334751965014823219760832874785321152777783284880904671454045819859578276875994477339796328211543906303949387247932738309405466395758000422036232197623394972497594194457158403586274295021368810041470707340083502307566296774488711094765702451781027840883384206341757335752784367849963570208456977847409706072977130737604353533085282523169678576574086648562358139937114919625937974073101134207558406561110453780361169129415249597202624259092438982639781519830139624387885849011000174689593599195366553716401775138160931725663043423355021948158719140011490936040352648510648595696705332832048950944825479889057117682112045594192779787997316981693156246487658827777991459251335489699556646631771005212965439471838572881184706606810831300030218973992636074784248939221034390878550590325578176631890569351192000481201259506056891151878538902924725483753884940301790398926301275468921874621829689653351673216638984152608769079248620118411513257146273071545914191612558170299992032716542468239221026619090973721341852499027557203489626747200386501241449634743454760373826012483437081677947077773299277930474763570955856242529574469812012469459700716588706361956513938205500098902055391942361745342975475413157610819946131376314638547690969569814789553507530957387237119819314120171691214272754800296634539587023258976936831850990685206482472509009859336135470250309685957996341908232403299019719463464411010010994546297314862804619221429818039959300155506122211807077127661495385406204833737759776639257126399274880850057133415994204751285020338629912825872637097695073156474707789167123176934448610399821415582033984698679354007731464870319091633683762967863571270380118428172505216943102360732534687179453459985719028021672176841619189815700509292532248231239773042904770732119641202592329715369073470581571440185166167280327938421525763951713997510083771172675605994670493360517091011441776562118577473978291331249197503037937430359696107982338112581484632525097290703041647782447423751408329598063040399158865298917758249863104328063106241341387759124354662522467956159296565200922928052562082643684445116893065583251953657151012284424509632462283998837682865372512042942599243973381295859452041601320892001305921519014914471764169954145735669752953849833989623201388775115267963828489435390789975584958739789114707531237071052244539185216003002536739104576190302992231571600558972888077684368062177763215957368319846364709896895568536119484637657036242696928691077480316297357033024173887315897557658698307029579819294386505282180279282554242847487386519140469323040469759291212405687534053766995105577501715002214559128000604539178950940356683815325167441454449992405780330286876267718829852011540101445135237289701222997300102656858952717760332385257925184494891864301102603146970242582056455996538892218049945204453422015267562074625746670581914136443767637281510780676999567825352111927696478690899494906703981396073090823886219624774416125671420134066542752048687250890944665878900886671487254346129441236286381410830125278167743073286944776911861298053795682280532974654632076990187767209563258545114236604543613972606610743593301055588749197220139379849396280962691106073971332035089290413176597428698202518747225150720475175674504597634325665079361594737603333693301853214061947846105000864569388423555013237767756066985889914681006317312448612902748626188694028703096719955254826385201306529162445226839550110343339572955561929868925724607718860607493535746802141610442052287220478824365408894096346759567854816266392035226998735277168641618853231498752571963659874733227736328216410083958284044041806602044697922416984413286347812979203930742533791649346178026116561616385573380749888795212271030594298900832044078819930563460783806985596407155877620832097963467916498452415762303440480252915157410221994887288883614795479217180467026392709908785398317687543675326610955863486837338824407591192488997290038807866152596538286031511452722147388744922469343669165059997492481586672921838671864189339457995006573978935359848678365000589305973142783790181904483449682707875244727971910759105715371004264355370671818632284837009688284853090675754553410560063187747714429378709435599787077754287793264951749340622083873288559069043253853109948859767478838871157460098526257940532137099963019796849422537553552378581069050246863940312449789260043413286508064515523629863773482228519828966281960194993212034547321150550274355999638721588232002125318868677671495630093000675319808549529401964483217730601910596162603655918257052561435167124360343667429854592128536237331728097877537766221902111428147432654449109689901621363061086463370123159724674275482772882867294663223515546407896027111990767133804691317290816423139507707527660732373033684720654450556318356711658717946176503837462508596971955821084721221481885833115421619369513956491384312320332916124438619280607457981975825631449612176728768418189442988828587285554452084193201297411858420239067873694978673841548739744961287655247456589738743914443935177187304706434128728704043805419339622021029975636986316219273804469529731664398856948928128183094197887435164910207187124375367250118061606392465673504767855527185915781871851290588001383862602232162142988443551114608714264000090298384343708750801528668527170925135771892446756619651704461432411375018489060443784468941002958979063319927132153569221905266284028219109058103316322169121157666489321925955161636793237283103048824683216406718257222174717029941462675235742879455143479165726276907430508640759324028961935623341913289254356798067302770117458286203598468179878680756466418949503171573676523111766688781614990479742933175502887012018973042336043171322537774237470825934748729550248164310874208823421119679457916314409529779284858849313206510828860053473147722486044309014186124180687395282821555589500155708181089776572887794412807702273511530062389565939121903677955478666354099837747820751183540724791188942352840158231719941210318391726725875120710085189428915673681743478696467679831764357078001549676413877452412279274831438077617826716057336413105096273359500625205739724599007689346494995292177001209590692799026020130007359205718732652758638523538964559783234359450801370575684355416630375894403469950478759142522013367034544640487634728123335978390471275348545397960918536052281693532645514344237920367694158164506658575515375419616187247127377779101687697923839034685069460568548983077425544348619003597160202786324994717280191610057464414388420112458403148770243737366214327083783590373258335966578540896453122708592334355332771569575776013043817283277185042412215575805468911285174330424120938079042890975637230370141108801857079748535695109902693916654328615750425897268126543644088414522353690939545603934977649658028118724199202466380588879445900445882368487789252966221453585910224476293473116096021624254313215858017451293838782365505223281069873675159583653757835719320717249841240104242977176578676569430679560063842793858768052846502284377801232209082329706545596210028335244984760278125789480341250945610068490735705696921364946664546992355976422629789229344866028789843681429324000010254748528309764766205108180695587428131173237957833289242349934460360197906123945114675737098035578767304808914562348038824018415726480211145326169420569515656194828398796397404290675113084983613563869126483987111742537661491144710512852527523682233203342701858541606717230042570444516095290069546864494777666238743834990819068472472283093009983330168399029185286141038353420566861895996311811144786813894975711116133902073734402795991729313473935235571216553738570251872103630481563540918075435877104230049312635628116469036776213964173647491140184999673539062380113990848749495021607202851939732691850867582572517017686723692070898437412493809982031106453262489067870508265808563829823166864345847412249828676640953991197333682641849137506474059754732277495961028384807363740580353938695132592144597737865754430388577924849251858423241278142725608208749122743518532898524699773912393303382426440383268768253299916042516095500037350289550647407322963857374531196882948537969479254968171734621021417604868933089929684122650545342812848604357459768520213437996233680814069322999478060206628891527802235081288592067402514332711743085351598962966184135991159609427644800294160428795293520370637876308201919995337219679945286548271959987022258801272148830808638697870897190787159487373774378188713523348967179392991011939807087891991591379224492148998220644231586286724864873688312775500139375957480227510472009286530675947994552766314557948445673494395337475640323459633402722430432255914618211117036246584307390287224334174310765399779540088297832433703042315518435723704191812184557990520870548079389675626824814283490757320876362899786772111048899827455252306920311031111622199350855933081996810035447548921132811807192649889137873498941080204183693059775721407111779622565515100582723823875095867069829699030475876513585430444063110747519791852441836354405009040436318288935941518698869247792026207328357180169174144673095607349218592817219753780603598661308840088103811270942082237985982110217572059412332817559741890509011816606638309589927265402104693408526877002892442514610283970233492640595913249671925898765189885500084732844387454014115413830631373468077738374112377935310115239029152799684515073931012623251749458653686717166524156541982339951938272139145592653956966203643538207769150783355998145060675311360503270463867069069122394267729548198023234608293349381014097205399556375478871558081873807492144388771671214594411890944642206078579039015491629796360052857274160806889964953716589457294202462401255634796870665422425136517451077471564090929220763384452629502360072139709053363016018228452301095763617616832948162436307084494425367032456101763110779592155028746547233020311373987405902651744994288010022324664271484436414778571799194909967511317467904477702177741585167349698196453226192379127344375275154698651299220267490767691380604456705249336744991357096855559419777676295698040445324829594722256548523161572985562455302961456146236603830739692904894044722657619252385309342105331057783737028955608288440329508861295252093399106287838922197756402068953188710460239657851220981285838370698590334477070516487544198158168542279253967794901050102168298783484551012959842832545963232220886556967586067927186045397779892161757121591168691974102451926354963079187917725731086872317755488074349768340108840143603308736914906525931090478725261702500281387641336583289789817078902577972779891089833729663458504072685596568777914582859805737507513619100104330038440622876212416579683706917974749636903329386652791461321398070230009238328759448774520423860490811971438242156666155097693316448318993080187030833698595821081011519906838321039996716724483231261330638992675428963518644585485475455309344225217787953812240823838016537607321473741402470957128186874254845415070523873537072059659902233061304258099331617341758030366656237664493642508862751734706825330467159045934167517650405216937292585552025149429728901040459131822635836559580437150082708960449499600957520007048982027078418792106565003554494684026513544482593380870828378268730477326219939301389779522580544381177105117173636738073216206406208871205948896475508741962362469905630080301241159461947483916325339167060556933375442317495944928387823277418210245221638778645833058729314678765632255179913360486069664845370440739244730450270939022521534363817974985926676423065791236464492929874863638829663321684745188075085123054684511749936810713497532963316118150286415557420548404299714555677571661069085284494931681907928467393463057573073259704764615914647717846772932245793199615650880621950050855314513866790733059039546269650584433433341217048031507571885139560876126158154940295845161304259330147053968347429528306804849358085440890768562430326489181487028252461785415299707830586824130747223912669869981375457057270040565092472393831496158529966270116035185929202625611083322005912798183309942283979077848963404300681509899678985300109966268656857173607943271022203577324254394376495048726452593892991589742445717651303532345851618090970002973310924463442098264757108127204418771769262012551169627129868170562611534771881458527575870769676178829154419036661467407054742107565717540298784352128423125291122768212413841950158940490846708554432158630495430586313706762970168064168797428468331925092617288498474769018661093399328619324604450732200106858979859378628049821439781037784433668228540970870012624742014008774066473188899486408241047814743755187197377400942165291797047215250278787067274793845537174599819540276353306477542555374067955756242767997006064724989357267866259579382324720608267609932705046423164977527040377885673654132240687965437879004848253993072038960011809639982153933475956074609093697301375553914140765770175043375195769738597394104663576780530166262619115059823267175732959281960347160546214905912155545209396375660181537468347300929930094984817131060994314752657498235943029157505747543724194400918779458144250467747711033048124379052949845894082734414824828336219549073980662312854850443437167955777071788862286297547663119949830970532712111832275172439948765762036818386211138679727879643317997869753489507386202891976366352471247503590308538254803216969532301823492082661477432767051449985624915160140532507290536797417363871381912159424437323842431119754018179329395056719514574465502950356852001112788618796453023030205591019778358335528975188338700790251482556451066648322437878624657075352597620809606371028388368737304038047560831417574470491398874480565152474424599872291660014496367244479813206884877351920021130245610053575975318594190799362960660772221022213159333617270659581940550959320555746322713434935966372085981400250971913468450201060419684727278667681758433080641630502522998827288288334384446913931994213801239102464861567107311918546152375097085645171310710162568578546672199947073814285236932675920970077427177459491939097280956796969486702033652113453171123919954871897940267086394575034321760664506629658544354695129425364014457166814910937961317454535865711762151324522632952382090050096655831406008516288103208200104194980392748303268243707598805174459215337654385052292266877288693125156938014597854436387095538973134830232140224000008630563451539012975845818504595519166972066380191813045534272677318111181633946418443106602536578928471938065353742593364103186598648560642066425242848642740730337588418104890279852432657917056102266765144662896749749065964689310417388075434662529170236775871581274299506498431294557883428291608396603593353310705958615621000871052516326823876152452190072983856941596136976683661393673050756152397863137591931543199264064734765495414110991264097677132894642427415384759717452927684180930297130600166054416395259804341870892726664393292619166726015798416354709252419680472267401219109529695079412463551951858211768959024827538965902726969961997723587391417380242401581733805715806763178203442357809027710850780169025136267893272241343974676246577198058211208715484367814388238413837345564493317711630262545815044234073171079624608431806094538559427808410981800835706131098156099101157397234590563859238618526809517355477991308379336338752698988544883721466514147613507918362874109431138246555563140774491819212302103355208112541785510212132234500953859949737024488659151676807989145037911230911400539155648249377304974221991541799915548575671307232178412512316959444810770461673312142127268716333932626203193901164245837737256714206303299431462669254289448994360639722890729783270899315056271285676686007993175881596236052548185707647919144409941762357850045234205334155270825362705526090178773451914557363664886842631256181044312497876952918433968147541872801742335202141259672462191597637270580028929085475542334413390576148844468256501136406181197574778136766090336522723269896036545630182016449379748740583909070120760168205181549939693807408252926453161251648461077590948155475771291006382120894818682920440805395804750515548044726877078305638953675311632201124743381199669564080369716122553531469071680875209543025145305337235690760503063031708387495899540121452085730570817718650047358393428043358362067951441730167301687361096662334613104086647596761693659886893212492395354617776589381783912032498409523229026697523519123053781215687086140869756694170021784937437874255745799641024273421820826468036140285056169796263777634517658547629010135505190933940693315094387058145482959327610048662586128890312714847224014552969672250895431857574124442109379928367433116025079438305794603225878807333041379693241661790268787179519653279365571155980069570845205228755279532264247927388011936901364350654846962384522492975053711372232916327051366455681288357084857606935016778406882567521053867652658281869191147418177950564943323564259736310621782883431336774443390655399582582717070274289926569798917132393147554125998524764530016659844735839976096003557624320220810711501182085854954113455640902810488346957934590959036259218516795799787332974594958345045439048213699246681859241853839655181720875234598673384385098424193840070681213316119826929191546827980008324263756313270207115282484930022759700012733095432196522683091501246906398756739662291019322480396742466303329515363775749696651903029609282980308817049311317989661965403034512611897709274124270389692202972968831536052055076055809823100448457541781229393245059571968351912405427440567662710742304953360190394301237871254004185703684436145825895420276228342340592074299562094853983139003779328705625962784147415993211320286004911027075294814152910031043740708652042465630348581289615772093781569062545885261138105003375928775444022088833642000795403730187708087132146732112373320511324133988885465713551540099996960156316326949407778964061346061850139167404828692265976482293433240327810418445576648105997702473319148282008153198138213588838607276713979060760791541258739713529432123747332625184227887157766052928929251261865264240895555525471731588654511504278244798914265038938245439218160469832830348393051983187749675525945265714224611698964479056232328127453519881322423942586531624587723632963698474730863382372914858132154211932402803502770961671691684325288391400852483702806530826340983018873010340565392092440193317745557942208858247267680798747258165785439330724319157680271348144813918434986726762288921087550056565495931416136037222320840558743930806142048892190095910792856115231430352088331188264782790045898991319334139826678875298500825645325175992490159121682153250298027354414595583997792065056956520746796672416611841212961086461223513619423347724172276990979108759061852813861022409512117245602730138792120019699292831686785413531915067522731909970731283444554330978382124926191205079130891503376470698469338000445518117766899455008088478220437806286535828553134653186273285994695918942135320956495806473500708578408926999555942793119897187158089369903194789712005405457403715034359267022652115441019371999420149959033704309482574466034328560497685467205991300202029560180062106120183861633260195140033197753309001725865998208175869239410895952516621115322211083326483025438437856265508273196971794717940473126302940597731742481781758276157553077720752943108761348172922416805427501089712801671815886328422968569473772640008462870087017717142695530691815539886651303477692622908656317580170503917451402560934427419374390801734824490314684998922765411659946923629615495221863692900615214882816646328397304312638454750729642629658569005233634684651278032431408116135403663509976300493253262969880251147640940215067280952843475975491712077524698616249100255436804417282491920026985893195655066437211387188506387978262154828455994357035902665289153495117642566278796900904526023849687978767873604757013344219784365115353217827813622823908812564554054018513549518236007098926318375305604309790280583995351721325508807723757546212517039816753887214950623770239533633141280988708337195838024756899685973675297230533649844201808418076064870842796601277504075475748162200718241458890526125666752123563143938246568783394314962117606197533045495453186358024981444744783036696029081544465687633673360289293142768733061625503196477423871203994876747879320668929660435120154355866424723816584293434925348139276202123034426917911009008985330736615467336796861693668623475852560529156467956822052428665656419365093968656524662080862077505387818988955561688216375121649320925557140674455938097757006238185982722233565224057818117385682573094607065209993983952782959907567466778746570310681033089810303281388706269972935438059633004298515048603008295388499167709855488629735156168282057920052051502939001833250565720547740811312678442325060890802681616160558868603720020958457757303741369812252236879765542926211794879294247549818716271627450887316182763275970144611672531793172123729897160994134798226276826593730639072549685449611006989131295559960452998050021091784762159097104155560946496760367776873960236036904139114669149167720384406587164856833620371688590344447913890150642671036502288307515819121939541713886256920623837150925441157682189202097889170960300144495104707403726637749787984854926130778984083600105637384175893818978143224667025201033700434405726729970587288476514086482325681470402100084696773845018294434336316536258000730223473427855981338252632356620833106622397318460406010098986676115093929329086971773757595957935352748108827315221279043743435684327149165072828319879150027623776532961040446277623300114506987771517649162931904813837307982653162523169285255770760156219823646774656972788949354728742634074952996318342931385345691632575441449905020505371714471357548283066305752483250175013684942992044231599215367617426231039273286250655743467884217298075334424735217296193125892028388380140495709587690462355136424209324453434669649629763176430632298617861805190077860462667510281941592612103995509050911065047851249577698408183075981283457842644108917225546405072836102774561399041999326773603693987619602661713277154898847479759724081885478710069765885143664867711861081315361314107206588000592676631179632947446217461640920430914387099306339922543163397697826018110458417632601998517472169202857722667607575544813041526614919637132049783924789372217236500676192924328838703645680386933625560630097260731682727181096761667093651850240749648877205947943941448993351487380386366049018721058019033759433901754319513789015571623824224649041641638645165724250135098539013563420767356660121681593069976004217162902639567827709970483042254812193964806058831897256033368569952019510138699746913186895673242130596935185179931006090763304397691649762987435802647582518359197824180275008928189469056812613490437518985831311997120500524713736603013747543905667380702815855345606516310208020060756096190709900561006587358555066403856954385037850304649117423052047335036103744622798467797530971358008551748623722533714306658941035432813110837327008545977066670850195903901327031112253588105380976224354236412562248004646235944692311365060233780902236492673485142879108488852515911833197202727002299722484569136195071662998541403385794397133085196085422150049126981043619161580877746721819506249089741492069323725619932379311310838032912659385185815555588215492828902083644261747126930525173709715365783390493333681956547382905945643904270950347479045642384946605639685009573988899577350375775016082684438649706647638467543692683849852740587927386322454767439665774995581436631471417178663645822582613059069667580714343290561483389276384853916644004480492098264608288876479156974773101279457934818934505220608270594897148631016683290183794908707605283527315795919809330109794988059703558414502924027321265106184728646112179615483527455581697463116256176447094257995828292815862619842864456149497166623806603819267916728846581638893254594461374342512069156919735087123120505015541447737342206652507991999288752902771694564652568099721525507468350271099790921621578655408450940361606002995072547824427548997879190420797559373485838398801049715242877778583964114912437073635610108159528045697627471312428738978246687762212453268506926318372617695444786303708467378834463725693686580434219915898839551488148199275400411619700159834355507389880753215817695453730363821204683726695578068519254302597432504148637881323824325558947148844181118608632903834317883590042463439884266576040654135883860662834284073482234595276100836002418363581368659148789734559507257238424740109245614530769920241378908909576046506027576309233564427464103162606678826175305820021984311453656442090584340150983694252205229321436550967393421366172861580203411391981509993420284135148535818594038143964625836118305789424960169589022688865339016406676682485283523421115233666908173649585545933938766087619196277521953976627888284170610504690901896228330467724759455764874450471984194911544960983897373004453112002216224540238573334487923759718321984446051367724609597534032490558749881792282187401225049435956355083516802389393889043584863400294220208323787740301795750669614784026490647589056637529979804169908515866351869324444908285598752126965345537493859994721966030603197078872885842542117345205799446183618530747048142660352934889501917856688243318515440103502602979187297488534246490800143478872991252566798015715498042991249355200409099066658843910895254841540673414642284339069272885193236023745017728919621499681243168851250061493608369058476683778020219353427386647201992232786277526749247427939151137372165383645309217164253076807122535447934898155942269393710612993177205362023475438970979547269506006015094654590650263243374240203157704561447006505273767693508512773043243623454392222839431244058979435605929420711490772697379186526666016837294193387397309304709380823788642847310237443091931713779899552524974643613136819596467742518472128530550124057000926695925602206082264613443888990996366396973184594018639501190251502334520857866989552082949214031179635002304724134057396691193822495808239065853310306787515870225055945196197525801366342548372968413372361213055233738232377327616924758223120446760100670891582476327363748002737869235752773547252882354082929479963971466080129908012113079181121561812511796990505069546920522208032907497174695744296728008062838492541608451902569765614608765332380146123585593353689715222294005881844082686782184352485681421010350456884947505270438059304964191670208354960933106343076135293202004444969219220674190609600509400055661351886251953020514412846787201740478923994290266181208419348842635607850618846521010058593256249588733611630451612047537762186660723670514594789597447349431327784083227819036522960991343681398826687564897659460081973840521354675396194906082094265732095178743276674321963134389280917243336006557606875840999318712183109963241946917724931911556296650111906298569733545110570278081660040517945653949369786783566543300328866045647845815324094410355201112974118839275970087755305971021814176216146313694619041905622381104237230100524702728852022689131377664698905671889631179683689051599224493922065298765804014430217672115663407201590468121022660052077224250525509727332767009334565989872727711233587757011843847074029095874053521750202342295662189908262514969661995532358475048483317499951938242129290351474285316797418026330320804884227299175689099824273825575320744608394641011962487850684615357909070940609243764627119282689225364496633275543883536452345665739569667474226143654711814570330918881730529204368250036315825379196327522884942615381606197928698933782275775711149985699056268847929353266667956129910588053822400975471735131978788851859102345435492256105473817088918174343787588916963777748914471690113278990916304496640564699430491018863804685351704931163639820861847997608883421827608308180620723828896463283126198496199401188126426524030280009638187348400814060207618499774230877175782416378858616382938953354523945254550645284300995105331309075723054994137949722769311327492761526656447602058640718168632262454709711222641171933987689692812920109050915503286423470808156264525530414101687771228083897900663766091245517526294620786161783960158837001816771326980978732612744776565104434254788333127064380411924506406462574372913008496543489163270884530927673586097905695410218633833656611826254183428760408706241865540611107780231285574060801408303497170371867430349523395602725082264925986667982891799985317067153930197828700059203450163046176187963274768398633131672159299291178404508050862195488519262601486752774645545084528447699069760881313122692715444636795049289402281042129171968620089122212449952474311441141784383274892363781620096188868773760001805378633809265711318823844227848221961958232922617264148981453277076954482607297745413674062582023675923950536910260098490400127626589284666428519219948670156843470922445335632956167482765082055323921665793498717026545663164368917362797741883219207688504614526693679714485247695516028502772538067638795202975882919289276700705241884658999290000649509543702734705529712150526201787635811952253560145136540774054732970981506600990035196303371416466793496670781134692386107601521059498468842424373525692853339870501692114415457887666088321321021820405577325416246386844490174318458665283794371194657671127593527427433557667839021658832528847234151897286460460662876857640584509064660259685001819898114030307906863420679544928453587512756056599608114874900769264425598019117721430480698667428741426895418463870275261456706643827896961549583123132443665061085673324208736442478636641095087636465725814028791103644963136850874099432863267667230291982219993318176820608612110458468448612565396753514931767156911437127598581167845010338603306341798515340382949733260152984308457874403006888999455737559027858524059755757963739469107411716817363903005157173710335902954760744087678986812947445448418259103593193024333694224709654471636061235398235663888525320620720602241778466934495008457838553856986894276160225257791174452790259638495362926293935833282993963729247672271238943885222376339819839552562345858470798179083279282465984995417802240520718622521847350408849271934631926383980781351300394284962514457286810771059191792150964965196705895530863161255509111894162998892169768092270962434906574566669680579924329256604854412647983605553831920830140641333251752585321772944469152862607992317287887002092558292365541649328062582922029703508155302752467000790375939435838202664373194993738263598944743082974081778731476900247025126567006722307924204940007518691534239537625338454968120647576113283998324588096201882711860318064774971498769050547695256584568811732060815615001273531764863421466533732982907595460751270184246599327816372641117446638186189168906638979341983690583318614487795242378855184518661652471726023757001304342927028976225070654572061010072756698006253816909104209393157811482297691972175155103199090003870694242620591640307125295574976838682479567844730098421080169931519276678519834865940640335341876694018064358554212636819239577656825031288901533576393365128321371449896957312867327322959441679411537245266704308943740501542105780040669404179102554635970165630744208565658577055866673769924590918800080944105529234775302898239476335388958129212380261881694242898575312104955935745914976305121186571765210190330185435279661348095035637922662117637842045104865216977898127650229157969412834463448683439292059454885962449956830652952770674037616448820049638725709807016817915902286998610754587917592158897100295851639992896614102798801612545514824447232715550141372640569633032321475128062492987266567933532844691856573952579901676729258208457608919367760803647421664762128182353945931535895503090891138363969687592730322661148965226476779427886457740325242538506424037934890611680786409206847640160825019758853216704606192538359652325261306038157655045299066601256441381166809536765839902766501275577900121795524617425922106326616640326613801769023783944716658156558078550630137446902706319792749700666011358719417173981579908291439485033644487152891154917748304467736053667456589066157364574954998538825446123029334834907900808487374840745163243631109035943226464319601458187372386039365587956410649130392931560107685410142181648654490391839807531555936864815085901598988466102034428240051017116090670799622923278173988084169625366415280737484141460536133432096061802628155436570766788641350560063278885171209814794723165300407761324318301553792526557241510215427116122874003469755085556221470252255223565183203270433204336506624744376033033978053482650196357256298524067608861092911732138352066272295326754546504772059504278258311096851285149232546905644287106397033478503588255842703845656548020935002494500127325724108288217660162411835393933386040611417029240332781576156564817309063338400555567568043456747753594509618484439163881566510081338656097509993900438532274897686908173227859804657560925753823837384870641927089448813693476117301284677576637615984110107657685518251340045216667697075362398300756789202637372533632223532068045402463907478356907450065947450919785014514092674135122914492490415665616349005419064323885721600221308746838482751972981767134293548141298287199340705387357802472138070717399554072938304786086326411972880652036127593577721495412536265351905808674243633492707024472908754201700060470893039899568140902820508411948172727651565951980847898888642766717309788843826945025025775096094072634862432115748145153636004745561479732783884896655128864663529294387966236641403528485377856722369744459391059401458852291878184282305345759288232575451177900900919013996538763813466812454593561387369825810560903821013488204253099388282313474910498331191347869164711592647299652776262887679236397184637867189559572526680132350852166043025953696905965338891694191693073945797093379145639851487115281154859723056555427348482061658058062851026939233492637515623432274036956086461329836797913641407758520985942054860707305195261365185107667147031657935210884303040772109045518814063089290136742634996495889460255384734165912000266329120476681323430485133966029249402808650651719416898815751945417912439674837751257555298486997727718299894158318715779370155100994626959614335588871233453104701719614229729889620850891563833204149309843226245471764621923271745375515340937059936969140948666796596174048166240771624951617678734313546340657700258396092227509652038139166340120438157984115901267404963931444024238272688626569716601101180325812882030200915813549268879441381754687489137325087976347304219427876729270666809310308753632072968682022146370958498308682444277895945044857909215847781424133459882917652082311680352944765015556460140059256658801800491765456389488726927720835385406710959860898322784120738860146675861017354721923127018223589897595096339349060811202030058501662693494066403955899883869170114523888561132294755427837591453209165996845212250972444725677633480788897716251960777058730525337800328733545051688187045849111504332692643460123338014764819089711794479575048366789601460568231846445655642736702249900421952303781932150684031224367818696253456933617847317870568964269473484191687995973011927588298049665891655691162677831763517349867053458853212711546857481194935039793539058838339983313590855369319666958697101888290464439254764480422628782063864613051121476427928975531112329824851399125877558066638000334518725712739774339099656065470681276457750134926891392861966404444817417286183788156897102761118520483490811250472062009267880758645378069929288903341874128442624443536120862330970785204663402085335585535495999076727441824518153791916730073672213110805315510540836197828843441538922794100203519750914810900234793723318188897883363559013081066014761152789506611090105341525052024273032093596168470185248843189811089029723383510001271529918407160352655066473736057741441776312537711458868504910220809048564899956820368517692916813366843033351461359721448969365907511862162857900848973762835938335427919467195781384146035374314439993323528500887632250118246959679623683424996574096804335650558466200054889521704595548337057589643968915267595446590651481162106664136960571516781142968640857633098244832812080605149581023593313372353242344321676384036218660870071078308216437831955114938529522461268842273372139865098175908747084905603928203741256670852297095999610079080802522434411059725431707886641271647968286188007651418465224164904787547171247396564780602928995521511383250386447459249355494067343147573015876661641220801445974345468634714368785838014489936674363843194406249842600054806478168668197694208930615251175019554704541133319469976032605292005960429443948877868694351408428320979748826443219592544805271464812172218267241613397313092845841492841837396540571656919086615534232106952102255496000922350970326311179850440720373908979368325969353345163595114737675271120516225358752449933056277506139758712370321110864038447251673701490042584468933021999071049146630706425702655947251385779528280947613132516157312358971393951513374864378335701941736327615922266460391210337671699527326575700377979794699019823746946173116891750542115594987609170759375651642838782680849644876706491624973129593727754341193526204126248957412210066278413316165008616128364998114344525554296993679414725147418347083342521672213002421249662079937650459528441979463844825818436967463138951707229784047311522223257661963301352037601850094575338601401162703239196433168095970023969503955218630897043968277554998552539270084926497508938507686695396778238436783634942110849858170546506971323541280675465829248354438411974871154037949539934819583327870556324130913786819573146015290898397107856830880588482725388177324120489076430903826987460892690067551276724199376883878718014065334651032946384330034709688339899794121221120214755764812114039211598385586657538427517590308780817315913323129418440345502241316387366984836285379756138956811163683572242065378944106597380224814742985247280333830499269171779813817263776715677747932334773537552836433174742394879607264446081721361177548878068465684625695978156369786009896771121157572259681824184209581059001710480241011976539530940141100089761758976614609885306760568690215934322855973241581382473158454285085121704190745898678700796656571331435565547754166473772642255596184638012572136856041425956173129392115154802506780879384650911957698378127923327131470375822052617846606740745127096657435508380824852997502178088942513352451549107200104470066858692694720638341301026255617831110984849301590227464027017328675618161380447739579660554208482914994181615159992063672457431964174184882371328046776823975488303469711432678898559345416974642502985174467641735804578359457553892517055986387761167730668248247604179375552802156634341855106588167853291784942618944821896855330546436601987746993704064063368615951568349417206248603156457550175398398330942808501463301117618219262542885659395035515623712875537223830269939130960990574717066625140455677326857895760336411126279319999674922838633046686945918465339470799657737563855694258024897594578160305982753149016229901988390122157883373343899606559804163552384769166339753884162551313021947800621093545211794960899795409328187174949462027283542878465904447267031023105730366437578410720712152495785216749569216354831042508079232307083408129512313811365570689545243495125693745272250919518099295149967884437635506677162528938230555668198165784271583692577402021903621632576256463579354971370787554075547014196119390095729515317480954334957644297076131815185541497261443998583889905869848956687363490801632955691447847861546345399619442900272471990599679972702698179865837058116747734942264833619335419393730659418486332791829656037556266174885841352942934439232348612686504932609563514788471299386514633970177582774924040205769193731493241621425487235744106825120400241897279126405789805868959354066779828648201142377472778484431180007341170829906615368960785897814493110270679935505910750059016284769790542340558324884280878467020737168252349922075276107989184154384260703635958724242078501730003425467694686850012465903704063225400457189977699394356279966530885832418096341546149527283214074208284953282027732035929569792757370671114615351396585707906692073062913568604279268877157724904599331622054673767554651466133543129966580361942703368138909538294295901328001390254032129972698990487662413779741376858751044776952473573996241829389290736444161203770221010639937390835843617269622072835953101809304371613743495738473833862828776826146230341868563931437224956006653082100282060061847836146701483513452591846086014978044275475193042190031223389373352299511385241579382674136701895474847915628982215361747208533839374987581412687346715662696327570064442086779283208044728992252890246261406977080697133273937738600521215252897478484277589367700147489285986025115164765917962662168108516242733156532289373384464581567392796007478377425922736512238361776028970115654241818399465841187264472897743229299281236195493124556499917882586931415154098912954037597599782899697900714309964642942118244648433541555372791448771322197910675112078564676294110573001760514349055970220067480474742236902103724937557461533887572116080860030841611122900038195999143513856031931953760712197683690237442437673343829697439238245085966512936692820653815239623603195033760081664570252354752382876607608034324756262266561053011200147485070101436180207495542792731166991078479318876772983286935522583804278610593218555070296605158130651526979108865350668702410576961159328555548766137936485012772263412260014163399960934256422631140177951191594812880651037683362377573023078216830856387959939777367556407786270069412647859683536409113249053968765508948641939543615446045414439319113466334811532943872164618293724491989621100459852898939863400728709537391269803590502341216938256251105452632117682945748602939057373866684206276444092292873202794231436096655643202454741686806903688210978471285924220593283339961461619205544251525977872779356971545969749664115783228016725359851561940204912918147159774671374785583385082218141540361110305709720016520292180997102055662384676496714114049617510652425800057420303226377788126582433234817357015019192841128356409656563312434682920526832672992311287159763138546817548898348676559659076872412647944535644416500055314619296011357525084302588113723917068184058266652886638793617823489603369928764665126597174468588593531103999809737649838156067350313369477431588258295766208372634881897811457285938119635064944152358217812736674789584305027940152721067815105764574316765951395229752587863550092181782922256000643447488600759730004162003451027086747281251431726029582855804869154754227189210704754512420535856282613992033133634014949674350539799665564580670574839127729697753842988509124432533026057569287606560563940973809720065409229479785232130787212230977011656852773160665366189183320759030657367056939069025195922094177943398195148150403225794957773722578158619622223637671803001458672721299933934576806364696577415533199829214455573180916727381866067915355129733970157659693875096958837724719577635968680258658742856642062828037893525840941647232098130713423900191943248150146655093584833919099198983120248404446454867309253766064401520681183204628895961755476392810717493319088314964936936215849471434862107716127044966019102824061579674863039866662843543608884980852566767185414836398563144908540278314543960384766157974419510827802384569019796330970044470580170984935987447573985803455114298970044331984708856724960378620816149311644881977711293558113108748067113755795911578510881437624398431304572006242727736157915292114606883167924275652917615602071716939914719415919945076015038018518771578088273946346948784345243383528296739229326211830018086861414151091329718083224690926191027228726413495934713592129202473926812071507964438131027376098792342989001380815858102199845949109795677583892171518467344633071845707697096139698236041040028269926867223409023239703248254056705032780657501347387738405495268585584635827106102942483873522488599672592299767309454561467248307125736849093783349566676735386231508303024787599438793974881601458915518832270762322524256506732554090276327753159493869877745394742127677551555613259575787916130732121302132154796069797041779255051982894398163403426723669618293775553724246418176406474909421252194098956812334175210824698310882592033580715772158666320166224364134413438451147816307507253387755082212836791788918263574659692149757164376316379477405429537929690405483228803436684092174428238329088632735116063871762680044453928303622429325916694760722013877560132363681925030570704109412631142780765811240356570756935010573724998423562096409158495545907690364345215206722724572534304202827183453298082003166462805162878773875713172803186458362129555852547053719059926111331064031065191051937993143471576729067665530939850611141249109581733889495921186376431330156411690748441955748494800494762955783483555403471826060681598412397828597866364465668917842161514605441870013397615003326608954394548938187826795317854161191601355643316785952644765540112972495864922920252302007627201540852877793512347426847310060890187563393607233309224962574632648361301184273299612832341681053729098438836980013137620205128947397415258224164554490612936423334221825924252152985857689308077049167925136667024167336815810288062682190862445698178500411019382182566953155102608434292312774400449808729548554732455346680264409764754087025169472358957129243383848424400105213510966099499638477357603872475560172749832352802677585209243897559575020040186991733493573037558911614313264353249846022355512491858114481655977527938477061154231723742049250553203267257912236117759524014872516712644299377770466423391977506024025697138935718979522737948528699933377972503659506110049701532815818279218049436966871261470239344896341412739591566882637439112681420820139701866823538802882053954385048863951179048372709621130583324755314173021630090171279023180220817404221495810126434572624841250777819158366955307931980830864662725069576235441366391117475028782996320935336589663310287056545387870775408298060546617796393210086830136041697215652597962607715882509526407752856471099500378376109501996797972664991447693830624850664081897161363930552773003178336523686510157669201134810649494826060085248493439692850357857788634860767600481384544459171240901340787595449401331338248282587835199764444504123734971531801811817594090359294806832557704639028842992118570301476497073178790678869317002151807621371964786786518021790059309411513302559721697481017454333854909823532539064802525759836304178274843566096662179366288048090487415428630149498964918739766753737125422825219795268916914272294129445692412017292672947122726867328923889460615083642021704458130724634358686819642523314860170770607731929775068623943233628745004161505380679919703435110209960565572336885660691175266055771270347093885267001074924522267158853362312464970822993864899495423713981675551918918424562534435930164825864842200438045445436368970469868740643671845050811297758753481593128007603823465665259185375965645240269317828169206239596008464704014765774209695046496155746633039878773131415077292993859470289896341531895155333674662984746058300967917242710637323630205777556911694761934104432049939048237416127685024402660642772108802896573863425607104281314246508318328706570333267669098214114396775481562084637769208717544256594490518930130217321757017650988816544787714107829222092604974694919972881824528471864085164174028075004960748734306174821398496363375563302185242860533277764643791532529921527558310475590175474148177619379117887389334258384150739414827429490134902354934822654468079953423166740788456899388448157695395512819207307358047558440681422736014538648226054850499973116649029667910252478318792361731327257581532984392560140274635961671815045285596352750470900058050474866624687920482524045340484326150559005726569736762530207551716537546684549857393195046304050244529789179680147339611493117429559844524296256997390119474958721121510964284334702241959350111630010141846134385832383619340959781600350584277400977056210651122633305956593174758767552882430881842444524817999306505311151941687293397014140299371978170433571320623284967673830076095610716449261790090378442731724668656788466209420881561496075817314567379795814046357477854820110292434068773146020973560454573898276584544314593945678291629353918009366282394847772408846145635249248424223929687458345873499575310606169733439779229896215833423266736987353303402796976107688577683382298956784121535044677542173009378384065809711778035835874320669818020238075681678501023877383469648071384626828459302979024072015649592303138519328038269131317417489292999173645456040887168252965498650517738572293981673702598607847981165341913861084597998577611207931733479565695356117231861468261065831192635891549929827841746192644555668699090817019825636544399139380211332772822806521264729197987776503954396684155175801523499642261852067553168053847628058114962187674462309130462200119261752732615879152603184884100210041208435373838647749427171332222810608033912316793819513728439058154092077279790492377196607036911991265320120304237453336384301253869094159215932727147064494402315196410118733991596366699837424075154296947365134209927205088492747608479006779276679796676526578048957325942403518060505059662772396781334202029165564713952085358607172773864298611221756757385324165100829208685108431508015358493325497214177735934395589055638924336512530224132377687598518544026134602209424798759749950464217865553888945251939333969026302706666276866349215801562574294642380556663743545944441847052085739319794385017814526354122082513408055943547401866182395781404039753713018773940946830417975609278102166842035727396074966172929174118548855810650585980635669220553566647516746031763830871522149276220912319881647970758666354880787524161192153911088513835210353576633819059973708127234540088596413290095462418656244429287051083368350261878394691633893946916561822571168661878297458235801127488618820298290883093873599040658253095938458890141522286722815498979037241304095328344294182125282946742083541032263768637240425115819142178860458403211555896153262724411675976659518922995886436663099742108087939819813648258766866056081734646643315955277630988898648752221669847262743668537737622134726967243786346878683008485159066015317690371138332699709498401004420109262692858545577749562279985601296341170327481606108823359092483642391929256902979151829420729106682567476358731630916199054655065593717765534789732139411616985244010244132450744898819372792468954358109555726943408626132512834599160635322255914733138775222407443527986800548716691662394365148484487916167716277851287906830829287910738486019271986427602463883976262828325010194012021847901841347678760827662064890531600898745838889375775776442684079934335442242074846965885957636596991368267610078276706402105392168511085777248246363950099162811130402304220855926117057981917363445931797150058508179318893764553479381983427621023472502837860227337644093586539451641021621903102190127514245755941705189467188851406904498807858575551072180158722643677505453112579212840484027044719472387449599072512358641026713493775071038970001202167639668568787966529437667414746309584481603327575659801254536982237676316208689421366556404292286884446578540263853227595592376790894694203326283220618894959195577003923169236329323307126017860289493593817976547410718832683132546228685238081502970195053433207776041701364615266589722644150604314658300225399819254255752503570178693021778382595129594266224590721744351604519777684171325142729528395056504056313753208769940414665927415221659143490283471591170703060872390601202170821494543087622602453436315709561812153841007647047862063564493718999741365300527469510151178106689822824237903100755762178264340505005909406078437122969831053734451356077299704372046028644000077854705151778505948876671252718179254828689208912492728869965393764379637190443884899306317045734955895934771275081933929002640062163171995716682413958965852723681276575053694323314946424853458064635636929528484101968990041121273623682189834917134114882574409106507444360500207372038690385657589741549101118893735945938215012501569751146662742770716441158140328154606159749198479818771769109360619110629685057135328737041939755272865676291724869299050599135066655230854275914876028026955713858767343506904211362681358093022484151089229547054118932268946480643669640202470001422858351925860700359803502220305912184166432811421947006487003342950466702444949502483946981847176589024866366383298830726319420087937368709767546615908777978957456374515450729438176704845643693418365940556830201645207901764168117938424518987889063987895296587034754997223445574954044142624277307585116445728012731579936722722316574585247250377305371584446701273758597626140180381387684618559262072528467909792324217401272200819421285201608575281102237584282815525003813636451272476880416912571862914931396455339343375263651368979406559267064119137983756345021781465038812722875751442984876709714589512293899958639517981813253287639121738057682049349471322452599565776339085944346101927710333414324632748242221478158937536131441234743291965076185984843468193169417134412494553744090555771885614022945347301343465640289815176661433179301529773027968921129444504286938946619861228152580057382253314845181367646312013721668094792067999554562689005258413130865355477234677462952719728802596853611002633326476398868307466367179130868188951376684540385538522396339581105288105958192023466237438384600915022334189463764699682071732737250503132884993755954663983141039510277155254178430587538293049043792161916170182441971227597207461651215815789782182375181986530962099823499105743503540077759403248216922711031073278888985516962764539700738257631895004153416573708856021126304302257776837483196896946002678459535922554806098548448375524122451732960872355729809949361069816063838818667741529345167622190456092421160349901367455188959140908453519887209171411000126871701672757790488959338701097661005602756806319193157260629361759976789406505753235350529595075449694773009738468441351513307931025956245575832686149103214481789026455772027717816305293503401385985139990420935210484382957751040253773264610981528837540514014786428566860028342900683455876885400923158969268721059473785684260459991429611129179104939212328403953385919459025931892418122430468671348008139549477154251032504811151609182986259107715812432381800919863312494628029086115311917700096434904210963702134864842118291014237150830178667747530745947844919257936972333935796798826191328283209195594345583600580713952214973117366407049437418192036541724510657145763698479430912347797016773316897954692509846399937207683986787565039361493729146801343246276555531035097903549706526130212692027532475872902690991927753616246996339647708982572569069391458006813369556002285314785806500961196775355331447444174406216044835846584419845378948178565455674228785291231576094782378174617482657374361112759901072453430987120748920183993244669295703848692013789300829304955831871648185417244272488489689196252748375688569653896550577428433630847495796609000153394140487967882342010034934081624150533994196334609935996331839165488337977759871283126396690340184309710261647012834376794218657203887260231942557143512735224938827470172523628595210092697163896009013875604302770019384549318605027151299177841244165774077991174215935744099232000482881342402566044702997231743780819839535970821764829255281189822516446276667280663429580543878001050455402410166198470177261218535733504288974491598044947037306063754761749210401977942578673443449829861840043236639256849259611193314269788712418282498768543000109727867375176470611829703973268554116508839551135665439926460307257850844059317610491042560781980671284271624834490296854061341946982528143750575607436163726037956254390929706440980156235628491577464730350937877894646886765039003737768779045852803636183761644639176063798033523311106399064373997571155166742762580287828744690853890158841430025255470902839856060706581374739962073703930749918127996653682987592389387288483838852705628775224907447488447337443905898857079271288732499737705724711198240266766496523237767039939097652149931050733411406844911400875796662022028843373620628679976061143444609827147207903048608920193558235326591092210161341076151582227156245023506598397163330685085718157124900069672955789288676411420858337237244310376796666623100042241395675598519194593432754363489933090895207691617051193300232332767522943948766408780816510168603630119365159085013273116678772218558103823705163627984711474380133009164367484616373263567745168882976054522195411488446337872110548264500784395625566448840824171597598680286667668871043875184533469423485677532925786259468189859883066768329742911880406852661489470069884755268451079685816637452888142346259669030566950232317886921226222772350527397190897623895277057134136684250808853155078986079901969537572321360074091672747435765321901557030215786399374534867857254340487025666096380951478774880399672559653062378467360547235833287209256034065671536220029153987732682800283170633686204395025157702862521693277684343911847452506161346571565162682687705788526101917879524243539923078489851156921926306171913669190439564423448117468794109334575392656726110445679787024124065271673222406203739598941924855983575951803918223293965952035537554461681340192791878630599825647600897429562501635371211218864465298017967577810956596372924234987046996217501143732697654834337070884221019338157659159628148727176332242733729892404278421703037554240456723997662410434250824897254748585398903611677900573549043374671606541232167636680129909047494619665537749200074635232174033547683024034640932004638713885822917402687111883605072064515968561973308187239187690982750241073311994726157693753174429227930114841569994015769543315173031109388972566468893367244883574744034647840349731117395584132903541906697604897279193542459918087132615235513807779521785141095248977336867750749483791707140528905055655611859822681928230738910664063316791469043756303295821748456163342181235216392675931121845463401296660268384537154617411443023502291324635460580587818790768946157908035547304632972623714194084320496235273200985440831216085264928423829770131294574490819512341746758893700613452621801497072114487806234082620531696122407572666825177403126997296184573541125062843139934265903112109076705494195652968874909391466389090136180774845330266934646165020825364204416132394529426862999235299130017382106091967177265649452861676957925857852346527808203337260285021414141609769988580920780784990060378286930403060146515581760370616966280190627190257183166738391240708755148580147276827716517881300871492197997535431655985486338211244542733454945647632350147544358455054905407514934444046899386507684564482447342305783490682030253710768171990654636034058392565930288696079504823448779723120244027695172938031001670548220268120819680033593300995775867958674714302905006180515235303979475256262578752973898228122788807955384515216843474034896424706468839985018803423581443600984193837820944401996524383131138146756649242538118671740813201379848628307098767029822278413470390215474754911436925854209803660161677752682232111397873724149401304235728268531299610726453790004446555856387530107707501029243872675256543774745366953723093073885118154573382413655372900450712205326064605761681705144685841503794237646540703124271499700728153420574125763457815982372438480737254800104607122588125124707142364966531580577183350800122430521864934221158587723515987902375599558921840403796068071522525170656824157468542630756767968941587856157024135160283916250853784094609918203636370670368228302056396538451833791168970404262770936126423515728089255844231247169901614735527352100112849542449432580424525682256141939519782605079785880353911769107486830658873549363164323411276654767851805772303374046519714739232964756724208768866443645510720374254229359822466416475065267597596121251131838089337864200826686562794163050489048793980540452135367214692043395195225328976012219389981372479093572696848580929361184242947695658255169735893342783257371488953226278051148580136123630077674568348379986833265830224082404575247666185707890878140324696677629837541300037055342070292127198274062773833353289151806358327164169163582464422405665532190727363353647240946244832982584143277059678351996831209297389906827479116853772676173301042323381824733785539073476396557701801454264949764515373272151045743960551338054154433574446047206408376712344860259390606146930255005620932625884257688302841521650307442948414213729856790777912590216748063214924180195765676147177000887474014721794855179316117949947940831706022975972963800475731796271537933972926014289818792696568415408403528416702948236312262952354927483058799231082298463003711700121325916307201319979061717087745907280235397825326785902239715797106264373984136460085271240719968774557751757828688398245336308892335905041907856035923006954418144126493009813834548115138095262624546067333657593344868727318564401611800512552050724262179401508344945641738509929667982182666994791104165290731564420998706863915260819921181175027451424523746397314582966764354223813262632279577019932479128941712404128938254301438209300780590462260211431323789182811880969116718714674279608131429159421049996447211811468068779322757249785472999147664131326142963251632510546839875797660926605663708602585888503112799988915150816128649760314960247530819373009382190878099689014546440750826100041919114066421869825372139403336394858165273604190924746086214363156786060960548685420990999443325214682484857192471910124032668809592958756314494604985035417158408646008839740223616609360154808202452098588015413446147457467595293442893656871855468998422029724482850798018433186795494068090032886948405586619448595526846316990945116592250003458802368903312120326939508808095334278417395453391663909977435255107052777951516315789506853329437254907241489394479048018249151262652280320556127670570919086373106571969339679437783602412208061097460635207397816546889312749448024072385308188176687202792372250566050174359180953854123226602800332403328804352300750432783250796182318552411047648216765370873964753180397718312003703541145411367496774293387981277906461930332824224401324143213228835677830189018911561365959143088284691915662657707476361918903354407697986589486817587353188730016369708474854690805068317473947749071319062928439743207645311403763436678911479588429677252742364843168636696137040247714229831037403155357784324017464291159654054911007917207356214933255536793426416708836536302997618358065277115480267831083252574412049908048763447967826013703748370539326790696144421392446453159313031097664635508808673353260136763440877000738227460062337484181812756922518546523785433656575064204210756685652445858330402311549838884215258550444447770410214191903648229556351886599774284269886984156602559503528140397301019915890846033264104184796180058907551360515702227316929863045965913790488839519599795038251475534423413373082837582545217300319365761603776500792968995731967650019471644704669422897153914207666378585340015816439954969189197510208725845395220834915184589383369735644607717700771759395896450313140557016031344998648940106453234364247906699614445774028923864705379702639352356760784817212087900642934936309734514917523133278399127007582247439962506028259522582870185901259858807194151375128485060442715859004420311424715828614908328631026494106658251383405083749159004460950738557981750402091005804376142299610403910912354505371605695731009219305916689841245061025720143497236674805037558052073600906301090336246568880594557452985064116124410948781464487148906310167484139915763737689849861359063588796778616105647011432273947457422676274772891420428671610931052178802208861259487479068130626751736554485095309013102670041328037597390603041171112590204033169315896757898589741374533716313432639192981342724851939601316900720710247416404404683927241111054838405662431898660049501448757117090025609760696378019007856810468969275120037894784955336903818144067057397314986689831569517660994054384503619618880635636243639101012173575404118162721579380650282123022937954397312926865547558059445616380302033194104699879158622961662649477204043257347051458317053376104428066584478558890412256152767233624448763412521256731779036614146730127561271393917724687117761745243951206254507894973648603286072244178083341879053639901816616610911856107275623881454398038301132145573309375871911320832303170838041309322364168073196560639316303682355515368870925562867172566191567460428440472190179406372226836409885709712588170681224380752880215407783362262117875111050683788083194155249894931202874256861404908692127242961951014040547541357810670715110087405459933313459336357587624786079183754201155212285455157641422953640306798200151926092091779191096239352354163747735779687509855397364269866858493992974649817500521620063286652142998202421809375575075601179131407304367187017497246773765653046770856151621215641598636887753830975647271598185185989871840275343500144703171980536895646471444477220289915012476939497952456903338030973926813018521519007264465786756332126642592731104754742063426855905306416281490251061321796989961389636057252534532514866143018390657413580900341090042695207661081698009708537134041646370132373855101273449346093535254696207069980402510721981144135475961472058437404808024335405966701455223581973411625835223490071292309280954765095497738051646100996044625807060258864673264761373887089134145978406082468674203407552297774156794895199211748396059642049641756041569940411118383048925418291231020428268625419199035241949347471845172551383596707547526280752567117627792253931246876466050696762558639671272998417257359008029555141953974121137696574469221647322930073909470472420864177251764111462291745562285826696861166236331922001223207403809162082504748753878665556596602189128479795952633173277997520730293184118239296234055360326352521630991207748851219620068911868578808456452757790636883235059470970478477626552776996372373752591646518423282164157626556159066808602111953256135670605886089960235431343157140999677843989402670507753043450592198305886022528094775229468469041754853214613109263107714670598043068924102794486397836249238914828627439908996825104095503351402476359734977121410801709559704939007012201270632156805355084182922822542213514437115712065152416503099079632601786760030247318120958731866694624527259128650713389075943175249609107266089362668034220554101826155942651452624676352824180716480187724667670005304865634130469801969470453234568307767190957913622616377637199270005338474098858797029034756125960837305658849327329835008506430141186783190189366913142917751840457484796484237102842638554130313516004566668754275485149189265757567627253847239583086395489029715558590367813760661235819429195828408784320859940801475934608980326034224192758796975723818914841819625539836331678308368028491581739462377940850546212679818143177366794555317332468927004930074561639139852749959636973289024228621838831406637869921142563353047082831712262281359329090645937963341940238207322136163725085948118521374517895258465541912407388004805250806113717502556010693200682210839192677394916061112451843702369549362015802054625028288344531723042821046410090378693163038615532626322121752634539043731302930476531816150022279331350699735626290583915634602773550498603754288791653476753382009305508425468395313079164186647876779445365178835867807121703657493680761721354873731745497463773413929551849302217121559744886644009671768269996026995492186127593778833896061833234631525864851597724988061700219176100617922596300386747178652316969114242723943799899534338131899505883309655270862938475008268964315250911672279614583414961244146883768571274371147125679441985199654008674572153428427625733441775685135070193943429815993358947995933959142946304638676691440530574962064917182430196049306193599432215524120852819076332475745564724898280602831318639861082735969651820885912580431602330130056093357284777215550718000936089296374897600973051093683200441493811792996293100275771453313760703195053008337756972498143523273402391503108761469739247305735712310972707243790655085602656771502589237952118166005484303299371787390625746272770919860381480754706671893913255718237463637221513571186811286844264127794394585283381154244588268836433772797285482170292296904521866362416734380711042471990900761502768332085327628858770881481034181796986138420226385676548998328946862482714770882275311824785955017105932847535840578067444513169589276737493734187957664092021671297958329295246058993818826265157094708696428500939754969018777245031335962092105343136605751440888643117946412560448861777090738137089464404910296377600405430750777885769104533285425714725470279099565559605754478891541150294549033892128973602281521085181784017221583707591854159136983339008233153619784949391182668912280803452204951209849080396562753263823366594722219143209826620588474880287691012280388739232258431364399117533016170862495307277268130952463520792438554466152735726321196757221060805535954875667988304555094361381990406712780135666369025353587377341719844885419334674498757985324603700992248706875251338373997274682970058327876739369907845066369245601757349138362756075441032363952799830691885481442989609146370235366865743120803896916736891597150042197067921072404344536479715318334493273875537760121603694288278723330083737344960770178363283743921172037324209055573584425237458868641959017071505152972480681421024797612107948134597814567828931025843607643721690959922930002650709179896923904226634344645559005410456177356054422109649067945491183984508846523000756150189076519672071889984986664771379482039472899017893821097361856484720411172994239817508651934610714344515558012949526440533822515171649347184616976978554497000041761432285760021075079847140748303195663179003175407002399236342068389893282424761533351768656673542416537375500642219036085069790234746693880523819389270904183485543111566340528062300582814089996954825346708233048906297561767219413592075342219838411609141747766806675323138390024590956629739261886437946190654217216285581102309064899348999181732982959978845949615640506515782482971108817879937811805384613596302436218038564827391184775237307787950306608809673594700993145469283155692407669954254408460484419333649735463636268109902545706524418008886000086350420521591510251664146441910572370591025299200042060444819581213380998918975254005547394013402634526499779714840345892297257873869613507303419766379467961909770927307612457816420739477086840958786591175719650318204644716545385388337634499589538093368531398702736823364892043277232887532627428577903174890690257251400371149091179550160406564180154671813549672553157107920952344647959682100003743267336496767201993179905892889106754006118897542208540470342428823723377919405094550555804102140065235772595265974479471150220911179891941436009766932918748233622584047162171923523045045871346855656831123260173895146361906007878164055263331538527328646225267989936009140407074877778315775112426512520320743899758234777579175870677024615214510394887104836756023873528283289319604884024309927445189262664212844662240448163558357243113842238100600785753533070099986168328211054775485013305227247679496673301234409848338405601949345239847933703164559182644106881380035355396418779838046073709026835881505643192942726016133509319146455308296679974942746604693003581815948514146519230116728831245033326808221740976842276577556170263594965500089695722520943073371712912124647801307257878154825308183882493937395619901229686899003393576948584830949465754341521284628545624827570425546272283933420355428219333499889189959070834686343145709745184405388088631112963615282451177442374714791770533500896703521639003007827145028100930472972454404065768022970404808022770895155719283703889262228931271985113668541118899614737447753352350391110666394520771639150836212931375509291443270714066273423473812013557153656106534054456088210198057933910337391888939353867264164472359159440220936204276449977453706382430249330845936926410551217506047067392702905413679673896711885697979957930537171012863105361353698509230972458118391107854295814844600474973206814676547951802617342658345142626379475338946107563085386025238306710957792349586472450099810044365706376099566180892451133217145841336087674231383325491033610890313663280782920589341824975849532288497900586673711752913570805480577857519003727706063539816043490323134503681387983010537502072822064469181464981989799921577847564386527409989520496699400730910241548149088281319917442593304765994797409322662960522571129556772309823704936006138604674322147938831575822689231233885934878854430357591544618877072940476466034898105548473264446091715193944718744262389091406685892607125734349503101207108354438595499066577104768772401426573825016081498734798152895811509369641832341489525855192057191001579890443936693900900684131162501105931055061020284479802605930768797760253369267952562298719158892802715710351686902028318318696277486145583649116622018319144529536698855274422564657853435247211879639649650408791195530708214812164512124684987767598979729079839115993083167797358035907675101432324284660811139559252618465003805840962450768782584303163392553707809051665374631315886660345634705507550160122626798829397807679630315628491760859412219815132108336299146159652004668247023530026455760803918515230122704364489420188923959463672114605090574172723450870193786356349660293252715595476320164796149933405566187134661102479680461910145010167300870258687425619148578940225206679127129059512396712169547379534680215770943187044812186399953842801436232673406823240492234493034252651831222599336434650065844113287865475822462681047666352089998788751603995600830203884756872586326116294619480320044919599303496112153104634427423580148903515669187968510997682579373250869524298753414829115722786212332325940680681389973512491724989606175994357543332107013603711709598390462640177422401891190365293484324034968065695497587962199660438158677109257978826482802201988682861338057930061020860443004442992283526885548311015835587975034141515832013806041383633625772390458005962944524843196015590272084972331917949967780622183912824635558931277304550611598723501043672607804533131428155657319775300054202779045269350625323226449474200099665692777169885025956845054714777710703727379795385043136377177381236558274539489160220133034337863961613547853819874315513558658692336843859911429524146852133971913402881036506289906727908793161274889663193341456008417869389311257732393029551316796898966805138346909404951187118567124297227010971657638862141837330159750613461364618347041857488944663231717618592171773812116915758082313629115765097346361943307394210717844655142337460645132420360877049905351961302480368895178770486841360742574307925715488302403217312732011087905658318249142814689265798027601797077036647204191624135697718950871878117412710191974735915458185109949668982647738598014675671103512126190963197647352693546804603058604978335180695109314095972735964314628417038142203691335220718875713548813789863259120462487964249483838507376222878552685863888243173032431405151632197891256955455039054543226720781073195147394851981760631585639743435577550162485429844392838398617416482160407311109981981614084150374644323338924621508046978938055113712440541380068309432013056513646767793434643119035385340931994172085955958253115295129523275941959480752239211096410648426315542829138395711402027484428049321239042240655324716826296829499547480619304779607670300709151612130947473400734517244982554511925407541300854338828656953682470731820959332039490774012153017842313566183510700073846418818647260225931526614127191396178340375417389093134103521083796261446159959019215925422896585765996221814797398807457817525010307150449172668426717564137891252186075457997781077594602305290903654417111918552966411874327103769935566344256035820343338266342845090838512506003517023280264486023542533394410826494257449822487443025689988920859029862533553373709572224292717187796784190200137339722763194141914975003421296943366412944937545567268401855361380717734207017305060000373609561676515649053941835090061584891066995158944654440940550266179597911632795543200082191345349986930268784759714766687892361536299722355777491684658057922129679585124919244049946420875291245301247295269396117580369214617114057622505909299917484500176506440691834352515265753326904763697807311525950410206658381765934453241934142019387681448431237087087413633295026714578792966747534780076830282815369141313280645415609552026283733788404245497528144550354729574504164011650171605302505391669315069662734668887433412023354928302093861277601475633549310649920869162247279837837208375980114374115157573103713410326747551606211165601354516107923536017762084811090301667456721081648095599193321735809806342200890035623741314333509493976638792959479212660494609491719206758038725902532113695316155746372591951586070064126559697340419266864011266749264819111994492815476250981077753395824410121980076022393163821829086238222178759611613623387891436927717153466043040661439837614407837842967911991485305517167898182469815531831053885545233444415187260014210968553840168195735460485770751896886500090353780966392016151956801317555225169930350183020831033092447318426730745037453248329310542676419698366190020959774613273127321018865075603411613232926830270077222800187910735396678879003020137408869426612067614965380521024950609995200627524043825301061143783835279743669146006692434596683960285285041356883616879496396271963980772911203969832421393086210756812252862380104599229518875241425273835044507918689931418446389866949996443164108412476972214248912916406618247831662570067561482343595281719778995370679419284580281246601743583462561642557856229146617622346758705722580170197334079990178664622129251584459217942245733334722329508211978375415850657684611045277711649460968953993259736372527338078982257734436044424717737024538834802347059384224988607425668293606134426277173192372196021613207316049079170006629669116795312972762147636480804931753779394581713761588191408436308017016099989638256154837326216864396071962421054559643621467992262250711405574922388960806005049283408180474387187307599057139498061065876606222766618099479661408932865576886486427719685764226725813853381481873627317424106268722932402207201425478980402266273740045328723787808761105835219255196174773543975788979505591225154104869403584970711476623662359681737729453594579064514917297165051771527351878429823450435713775104949302648872616220530016240535292183697050763330514062629890496478331357693030971798271315510192651398582505763898838125377819028454591330119207405537526983926965334911318648785726105126392197091836601121823951378201725571436801823473706911033525291599487042274816253669370357575011250164667354829209016609289618511176844776916406411194242307046736583838914062028415162614131541407551031658990446544853595652137104158486751112942585818026081664841578727099456837616606122226159552507333795580957129370545601518645969375141220461709126650517675918737701705526816940673859126281259530715309611745761411969907380712880608492716163506534060585713375811008264121549588589470710219565492462220466033108687574997128420479634965891644890154449369184145734136847297111037873388594666032692653924686015201988401203869850836275930763290295703324814333655931981884922726103736392708909449875084426569182657967105592759638776111212668828274805258756752615821594099930219310711815397243681720886302755187398264291401869232819495065317888583823486390485757451399613936996880398475411343307772144290888809939972362566362602972504664486208655203713425804904924673782797382243890855103233801564272649294422074495116439108934572274719574028940449517624428898552926273838068295303022880069036580132130468605510546102327089077332285985045219625385324787001233809398142744290952333770011326551212649973350683616636034399875132392125682144761985427676513500027172553264168634527284143608054072858227566030633097930511500676734803034658084193202941542862910845618302387041671828824334802761003636396836276963132939270682099523158139121535432917092104602726773671307564063433041878117861976320458027320458958449721227801394156972827516914682531874921477390848128212840623156634605553557922419570583361654364049613164706134574177035245747311356664228516069081739481919214630137035211834475643642276397060418610777595202608821019010395679337326999739338339799902668038381963923026718695914287806822151788650540144911781666994317469712909259597197433740461842423910715542926520449794505347116256088464317569429663001281329243257733679703933256055629094574490821898994925954755796114746475207161753834670870399321134988860042558771370448810342276245363419593346407356148095460210174371169163921762986567093590744010284935877920206116374505092917823430117025571567442886457553402862296082186391429357595884547615994311046564668545824696192476568906727701947876468394621509479012852407270555704066133239915384973874471097767037551179959308714221221272302628346896427947428623488982847363830912831167549921416176102176383630641881302409847111098454428860146315690669788144381944013923081829144482306334603064455580853733628213503187618016613303950418340808563309413407338497169548097945409295699538096008212221688480375094405454249614903040555764564230234855642401270705407744033346852118916246610903363090161426430215765883161604624206679778270183942051396407999343400149920946846563710403102488354801236164782451233680574822122114356220409419889030896263443401274079255311136241783874930139111965450439548453739254174345768501777696724354818378221958812632327050704987834441011649903630411624690896856037176722735916284907449235569837231331617252578236467307792618725278938763328788564251793627226606944678850215716471578594143273745653238824937840601699881551154877238389955059535245034669779611639689311090799630300365686231686061698308575647234948684556657601584513691511379594767486622474297000903246523069950740398017303746366359327065929812193523172903317846286763342151480929593292506886315678312460058263465517082645472794442258044322853837796003088746761973914811693961191057752283098904990400976555824395545231376448690340813844142368761949892820803581552367042900073182815643716539092650035643492609708930142555669282926581858575266240890356674277502137920604835603990260827746681188118054951117706707331676616325316048927332121082934880294717879889544379562004011400753176828649043784094900949597486430165391704615631888993063312457690748125506761549165667010248813996482518877421958523262393887240862554974536540265883477728654508687165595215780751104251750461067953913303579284512362040762547164066122556538427602129233912435590791388463799513966460106926841900622199983479949789775069117199282081438405601303068361988687027578137158535874675195723465055570107373359420035836898274502571654925956061729894534582177842213291121831298371775316430762264369094621711985725601571989599477323369893324724035931842694964359972772582768045016483074177658585648449032296057374723607822966182538449121078868324898213923704444481302532990767822403060831503139716367108742160906040514977139482555347679632421785820011202201408139822621734255437468610940637399143244580397403769046842997439915959182535184930428673641805237115147878707109904032029012698095991899037705977572960689708646665470158236706073028684059684549626988819041542521129048478661934220900065644695993748480966001448718911321149353086163181274462440391339379040628131338520707886773504826099607290368661823830673339362261878661718380437948510856723881425066788096649790570376898334321637912546559393555539597019552813072304124313166458039608228108252236173442842049479709388024871064191443757806704982887767932696491282273923262327005186586626867847914541966584784054146715958516649229178901719916367245957565420617242674847017276499613898124378206006553394716588848738832046565831785971032312617976225759984806846550019501216561467844627217185676568004635424811965323826625494948598334053575945998581331191361797005953660892899489912076138059992289721493604322751371853433033227523407073020603450560192266862017909083096469413500783883553618589583318166868871367671782826852624244251826457837306235902020769523689205104125835483595212148814660786802558414059704789643558291344744786323484437959455373634364911335075290235323387033161025444308602189698172537001165952962945618830338890751203619059689534024411158478699510406473719875427563517877536778200101994621428094364894483640435132132481537867264269831849936347001458471288988520921897107265135650820536336155851778286759363490970978757488567797162016108647621454774136814745391598047299248094028108535038389717492877200068812417387087218604035604352985133493758456288135776269300104100591158781786580907343161789012003122942331071922870769077748254465305654631180275438581769630842266579811092392373801275484961795746771579727478432910477042474329443097980619833338735859426879038285554773399577435649711534647610029206739970017888543900758429264182271479174735275630238853656369706540902115245371407412388411528365076792200224255746766622770883253104780818704658813550899670438625949869888562099457956821976498043143933507269385539564681342667261009338485435818907820627976263817391380880574185985500968333375591869399893547463051145246068583378129268031204417935011298083430626019621170368315188182326608537440781574087152660729316413569543324485250859934676641257906843827843358914579077618958696033383688093174559930220887192212914637603772984065003968859592957154556434103862355719352420972138082577502775894654267154934005333952731043298956788244107105571319174429607538884345371662704255727052777894343111822111109365296159779483536984830898340944303092339186312755883522232160556381824731337598380129689104023215741039776074151650569959168236063115676537764161914190515977806846313182074433782510098462549309888699717185095802618469520539427095307701195078714485395740508553691319654368285854378437060866392645215055109743929715936273906100374135917856278040112278938250608766440194612625276294102992768712025728945387803649228394564592277940648448603356718140994809527409930387236977075516869686890718723988008316835746791915988536351378449221712532835975677172616927752724487709911283956236187925548210818974322733245157640179792231840207563184429156799372997026824778266094580821920921185898800863521745427746539724927381907568252220442610893414061874209277635770163024667916679880535716115265307315612819312499984301068412448947315842227182321646457411625752387773025011859319917917321558412130246575967681529513777608741731152274529061236040942742922649502080337537276311091986799779422462449163838932771123926291004658388707397807858126347738283016511892675104621506044472515342710340970852678574388907749653275832365900510819142229093803613453095740785551529925413022299817956192894169051847237316165194738755109752442818192797395863124536805195165561286636438276797142912442801405058536650086533976061420193376247834291246880457204868214601859216604953321206416511640645410361903955778714020713931808466143924681569208946421831759160981164989880738977126458171567112310406854291023297118656130809903668275793039059069074069303050544207469380101806463806519907041972635946748349651516480913257673071159542078014967814667019076766028218390324649895396352475737794948905997653247410584164782503513568640290284494709552849313103134096579578974035486127506647909677961373461284087133384071149906355435401657318248234866762269952621458686776948764893852982492654243883248642577830662221655484756991120333918236207905628988744560020770188177872095435432371812679720133188106611684716191164822386257761338353375998122999411476206322638833539288347624697115216929199160160619696374996038491624820707959256798222663308275673172013839988279032548738790102401191698906879668252082421376931112529300019775380555126585856377046284483221064822892502778169181499529906579912041273224602984243953228841746427662291532374245495572267169794969748462205631018280428315205281658538176242382298728974798328140651817881455133810582807755049669857989275782629558347139751619038335968467316037128409016209756692560484082393039036998415326199940887433156072348390208864017967157136752811016722586953202021171100768956539109403417921321759904566428582155981510434430928511277827128385419098417985075426772720210769933165746114157161100578595971144346322190804705694825591773639131799468263784426749230671500092791872674848338480740366674165830117615980080305360378180472321698881850921883975168003992710345969879158024355874361359500756737751599612949383690091320986975731380199186029803165634689381861912499928193715566456259001314549857468654370715783901771220170635539536820583316620302627846808606305411297243049866650690984937256401204847043791939444611110394481548843902788307758117737147342766019026994666318218701692145584011905328055599747015053611466812089824901861929486358251227194479092509022653724233149047884648172682238545469508822000723052546781995760812715809617050468378416867021454431486438694800518058430542383380509958344443564770249966137452558524622728796987245542963446004808935594458543855235727857512462948087928874883943951972716182128054198747145265256216391779786439905977112029988909318705569390243058073375561034111575863258444846520666779381198557996456133409489555193177339973196731061460448440981839067710018042112024182712437348700559569325161895555513398310563717909879599911572364054174738782742215107212677484701072448312508409088757676013432309304735063733615930704847528656546323769460127572160561484711813999222407348518139489419464009989010270864195973131242763150692273012005951889989920709451318960475483803845550258092285614710895474443393476844065128960249772220175377025740078113491865680086584474067839613892444592840546468393061813977702557561356749992471054349650630114350684674225142442028577874945075177963572279902000733459182273550575503617945404768110516512327714729710727975764453479903588812882703554181718655249358052189687236503193932680112579422957540809742587122148074422724597751373194484132268421244832898789960303052886005485925645198825877959334964747020156920986635314837518645810603551982230357639351761730755840038603187023345471414412468996476481206719451874480204700942177815422557949356735336205674954951025933282928097028114711726970711296183705530964427947293104338704410148828738748132216560491748894155306360487868475281810047573001937292961849700320896454139758774170224011316510216002505895673520828676087161665408067349836893389890810339845132990340508516350938750356375975262073506592665851500643297394028870608924981713163307544473230884495764435003825575559831349927060129878710193038249585770220592427628426842179245128525416936257846691299171703253891537396206319097084175627004505499475942103128977577048493034563060659453458158434911842308589649395043617063995718755799801748248797158697179878436195230161262055045791821199250184935866658826505638200679477086634790485546735118675373363715494310229481858968270285517191051111255175802326286197731009892316345332494044881118133899941467593076123234500210597371802987301991747973345243258979655765352526456159348347640389608146631437013869206474437935764412087229910775784239722332771332948140335925011339918044088397256690857178002735493111586465587132943795177675212053268054222595695183368012750742251571985520197101602859703693342026184228064103865038999416464374026642373392624328429035398773578299355968142883128239658105586075838895443437886330005651495291127936473491821503217266030591007481317414610240607719601158592394700556041062840659181433017600863665194431419992683056089832465272506205744205388761672695088681012894264895648659003823377873029857658737930294119449414868211688959445920897780966297611585361686252212190978564602196309105588815462875011393002914695980710190746671567668527745237855579249600245231961420230686156372624049062148114279688246839992178097568179551428156176691842806667120921849454949593061819723951691255826109352236432702121211718462596894983182408938925953409243622589000895891101350393936321510496724607553520579454600216864664378660307848322070339171785774221629513670578680826887383400186290830940747416851708014393740778735861040719050433797006494083256377282799122837252348011128544879603976605120648314997587112474285646262518500794856946078054144491924905821419134549947291136572501028330523394511366952523017342937740852759455001335420992394736050238198700095842708005194993342328359955742560472456110150227127135029858394773332950250886162527162428479973389095875143995664964684381785313847357443792792376017549043268625783867400989425209202853775170970655331855514101013775121355441644996578201390270621055782503757138691999802751002617561590233374651192680197822191857686333448882167858574375369755431590019612225645583278440162620034630188189799908069039356428788399496004092303765658199014732261258056911587415934416122581560744223199223225453818925124616552725779759858211922529183387071489427621053786271917960786117320776636119955033894914286854090370438661218491550944097620486382322160312840025991402888233376970375102346959286784988725299687114883855167391538590548816566953981768412681291942980948563771080258800865110472221059413920697371912420295860058042448635983962562533338766024514604829914233851699727709896355260004248107675819613908045464801034505234632192371539385364861331534821823282886075502893355893083333622695592562742415380014493281727556876954376619146122464533301627328191543281822592234897013076615020198674282011563564559998322421850413524120605075254803766461567315501194155394734385255621319370522507938028968161512402524461195649129047187088766396154077198853669200565209415334853007826015377379832829468871170517465064334280135931933222259554158374985478428686657525965863950202264234964712333199021330156228304902792758340617944953775554770032268866750253116270472480141026883753218275505431195965536046286012135391888610951770975191691051662572709461307448525919979790051385154328035986895904675848550618571799142430368545533179290501230663580698046110035068445319751648347112713042343478016597648027831166018717026496195158967586505765495595590433040782472121547459718978043918514038450315453483249254968329237130612362712711812660069018749351652024067455753113839453735234176348845582625001814709829280736883091561436214724908774085654243203665284532576186587075625879789623209881522847183808143597533370161545511335366219335640256028740875098271193002142420378450212892361741528025676884804411143844173593179015212010914525189231091503912410316335073033490437192363006452988190882187758951676160661592618159174223423984598402028201309230188672784600766569685171416807757322586772977978999754141629302689492856022281994764536105554987724263868953413551539260715264775835085482757233415022770523289412103082790717013516494029176372352752916090947340130678454811554272098163028825229945381554452764691317152499024997932349398319079335505959393782811423523455431059248176211921812128057409511827210123810889877135886498254605963582888741880739575534672660230262535913568480023636662023702122260257778527051216974927511334880160357691079552884421591949063745372126523787341323000552209792557564059718466196106235869282023126477551480942175938691560072241991923340195128302382595352878575950082897854215728490554933060048689116478008109007471709677109837303749636139747335479777067554632186222533598943661120076914263566932963459420380205584250213740083148946196943127369017877603629489252827438058922924689992647398221757592272745175476468733610199489673082938271001667250054046709074064202640206048679861298139974356703475823745328921083500403580120937548211309054436581659484585066796459778508480552741757775264508028926182721033293154625939915461505856501372496766454011051455751467674048224726379304065459433096353855871789864084489178443128533347691397122360329670359184886108799159634731578671677837052728858881866128379600205202990821118524205975445261550390163853799624016714788164860852397769019544388204940905101918474534099078778423493737463186026874411878955745630488412312968656613642814290853813712818179542801578104350741157006816219743611842951948980877695895399365939815152688828939052179905263160472568155507531533916085303891202778171942005363079758906922964694428587189997914871826049001926233736097740089371630887208884284712443417762791513551072874220321045568380516726174684661863284245148822397409011865234718147293767317508319101051768516355737929304438920193758128839271285027606847238213321434467139821966054667208331132690508394855571684438172285928998074569594376293878359459658129309431496978174782987165291125281647216010881785138773906815988734135534141598632114069469254925846983174016977232284707297786086188291217960486146632917710477038996587425768525720881705284934416862363114847714104287509929705508887375919387012047894485779376096103322418413303422670406242153839933607765327591456701539158366206390431589790256897176925331466988506709517185459210889110440604137370109449565421419748376705710888751730382127359498766295959676041506842060619369020501322796742191186948821192013347115141551126282485459342914812182394778990057151941822159744550354395833296987179427692578683227170177128355022057625331528567915266011255855175643445000977708343652507831630068324237374621444045363477146741209873657686680092024731472749040768074186040664210340100515024910940226489839224818235540577744500057706633512215174848453217735261673040589595752752465469312418059789806448869894609412043609668772434929390612804484639664146641645595433725895144797552822066062252948958674159060362013091887961439916933790770762468927886703325755918683504927033740626281317439341628363640559721107178728166317006644066156594074536481596118931302476409825020646330943678870117323128938907492137592931865461820010594599210567929291951339042200867750531373795786259974905879231402001744421455678961706153508535930469012340366592095611717753907117149327116097076064206169707321842807064664821631060027116362461211241480856666268735956734447580705093373374898214515452144713591285530573402447255425677815583813984921713450851723151976410622373994558651106376966172429170508664463664874503932390649838945885300206648428021818437070789851166648872938317653182380264165982751802708497069214509605472170883838531206346785047674256901125204703860746905740946370768555047264986344423286508727478552260976000964702852621957305993334194918782415699377975824281865839854173270026976832469545731668056372784962124657507346486566176219605556797748008027215392433619942673664545202626743755674840307696193351003579636882687615263791227324733646553946281672598372824023188598072083010327948240235310137545683137770340049212497221295115472972036461103393629185926073198726841013927952429459308189846324095041191557912872891050223846866209102356515069117798100850155653474525319733629193756668245290771899369922637708067205163754821445005836037630242995727765023636309795363887947408124420937996987161910669757507489769025042823605715222472800642654307459171925419915040102657782864544460191812181079958797940929078136062822012273380795621645360969582737267104758347568392923735018561386016452797922539695012174831864287117995267512200865983129367484199477423976425876507402774444849847808622939863913000318334310390586814677882860651561879475655773147665683094136285152830102278410488985857423546039843304100172148858206660650279224467993441033574182717742533942787426784337450145653047346331117477850377851505814416927235645116494195653158578614175780003996498410682432284799399635099588357744872003438807189375921102796759520934894679402779250411267460156859452180780555061260227698129667531277795660054843061041955773324251556438796635269877549904889699352788026098814437205396971294589735217830393404549974027687332476744162048704092932401742217050055107928284474970729050520156004369491530035986981573476003124997551567327958345065313444846811492150128495827017720653875903855567334993290086782134968762122024115069474510415013128127625294898493557270450125575442576475105968726590912750903888939186836445579876872536790568461100273181247367736151657777147222717330795568442260745868487493170303091934882191023467069067680311343601559779293489912802725234272382131303179986885182751281521842927989044146283665765361966393702858674902935111380489867875253924296657306017589326468854242718501403953451925479266221053756505291913495226258789627229044498757463928756749617291968922165369673556340471322739078501896131909444527998294948852751629701909609867694347045352345748868443783803853451445197427152726276365497250872991852905905013575619955850354031065549680754643899186546452063813207824980479805473743874046227707996884645203774248495626607920825210978427574530277528318846651922131136059673065768287621135869951227927691655773593680483608339179279217427599781978686734237799343717541428924419423989095748473336830977628727437346111784418653892391847371316962661960067075353110126502507299130105845910759314805439293461891275541265102754375073495602032654972863924327150427900363130244070494472428475927553709219748460827178156194989133582093868389718474293347165378186104000072049924751926212368620121670397222349876906560225893604969112487217406028635977100122570730246502554771572336450943323927618248485761897179016846349041122857819933926734595894592579190691516754587575335198515778513350154008579469445798529061133636313767649029067632489200506312671931119806687232311117625595854565732991296650913576895722884014514215761615003368978524695658960735596889557582654985598620627473287807270919551066879300952918037750705208780433723294573816774448701088911237280371217005130867780991079190867808077564255133158150825932850380713139064958762611890848669988386083660885007936378702629207059059897862885001526592373697465268458747983491446578134429006613466127337369871862884191316236026537447647137876809657408184722383495060068385792607432587961701511479581075143193439144025312855689505297933248140421976215195772021683842636091451356608412556596393030411474558258941588181395749780138970041918100730674536467753704075990720034860284561333057237242111896044083674243963915933484919725894937409113210148613167412155011344217681411592926734008297989709356171059726673351194889483106913520526061306404618816884639718931689500593485319004944734394141699286518428301593877327166558776637477849675954293630463176524096709911315557511272267031427231634672101055011011221723894911497428749826381782830218185370890981839317863638862674236788323153154478093332637321728977923325665381493301442765071439436054000930813953321753449004114802220470748072501870158014161433255036313407158863129358382611765888103504150918283871000749599808437416690205189154837196150200324623581380757137576470110427684575021598839907191036760307499591306796299124662316906157322520974907055382026345981144225550366673714027078228621848277367142751087263845083084778442177233883826802370703276733322141304203565958634514803876512144127742092534619208998393440768572902233283986193596428964409141262991943654030247478901207515948611373528540830773256215784531940938092356777365394691605275473245159221863827475288152706065203087873544768881926319403679296619349528438958824519359744212512159200407383063770390886707107588515937271106265848098494754110576162229831377146078962128055230127978889304848334643529539854360930361713126642087526569905881342495404271815594303477105725066054834344174699832643620925749224829962567278207609518786661491566556548195817250723830100323199992427434131210877716355687916381436389653194937307832530899259388668169104355539348753718710897493834256504165546293446867285573341796818943008264383159036115842330018157339214855541017702693979618511327076850045955016565100744087332806118684622063766740667479719714089150849133583776447257124401746881881677368052163180528377668675940645617285387937502649751807527653944447091713149142283392766213098565850581217167256092841994725825694478472136654892707170434554512633297086845629451825699043738294188091234375513451170584685549656942902477363026196175632712614083661030288603114363021532426949524783709705775728297860594404874338343069386529975249620616619011410564332823439901562556198925533473902917762540589154471348307755799246276896481825983502899790599331326562176903039377127265366462609479426284481894826588400860149909658311295222602607720362472177589003121551536973049451436288157466415428060715386934397284038235830413490895094366486667633921637127117628446502424260161059018384397209934048476490745592269547220589753111695476197803874089309596751588736801093898451218091222919451254953341878321613715559332817336087811238763979811586791805625405701151387968715322502797516956470599220582277778989293215119245162323629947287310639765409851501524575141057902083144426933961199363887972866006545322934781280497692343612952529723729484533952118497651025477387404796484367363186949018755779311108682365931721566599037021390029472178408622761082101359215542507370809685654235186745577188047036683364344030986059669930328445663602261598398541739999827593242105841611453810217004784748430599403038690539791719543113354474025439426953439419391247432723056736435779915586041237705567533415067520258095720056002190477590499216580901525543390643459352198611378689531357225196257544736331177078571179185758989505239057149125004723948397766645388535461324319961833700038373523884896217821961326717294688655073908163581435705356969214706193975731197282438188303108860515746328001891031023573948649327575053378175783416126453614413118284837782640576582164441917802123738783503309978497150558285448120382688517923867756883906513682210468159932827053773714082930246142608919310667282374334664167558925131720133075876254827212588736773801129873869912443817779109133345032721950976245172892604785361653577721662101008836265834659560866414886240545921818367853535085343540389089055718261018740081861933812765218725812739105114668044531073138487429293911982159030305411062488523609847325999691672947375050950843703541121857634260802018059237682093399557208568986572924131654353960356951489852615587099590038601647045398610427345314281091204735727891428610031321353205670454009298273592962556143854481525019616586834886164373472247785149600054459701272378062999765527905924515682993750527644846542888448304942825293261097147278457653721160565731542360478751735570517774402697891580496655280190184252191196132468866563879619157522031933929491937340115209874028668204887152232704973083015533096148577619243726785866713789096816587949255331019826119909493824356434998082958876895491572294327677584302843659265244277787714091711137637920610559438620615926379159137667558166631444705909066784923247655631277409208299446373560047497931785809833986721904690546405802703385677285032381334765138886447913418516497377350198978963116074155622220308429687988496899247465703978928202182181423215015121745127272855931347167701205994845960927762583082209655269574253356785824798287081598790091024819969326231594233781115941258494157954067629437024062288035773446576525135504815270363669959081744188493989126611818937120283761192955642542203423090988270468440418580028475929572435120583799971340333931682637619692152823640329120416000195649004087575001740238198902493027337396928027600812202847137881759981996632562847472821403292270719154594484229762763181362187564149179345347459289139597528096579400934102769913782768054845829494109470735318409768733124861546738947077764723523717181307708453531502477662758040940649335271996536124512944013459802616422099557696569186201256460833283233432380331924474681806447157799673958002701699028251489185307515439347874855422495965350774212356589234314802903207558364449998781757676758799144897759664649741628602131375766006962996557358297281404402632974266194471478291363484853584477020929600993676173011196075332868037207508672409985317458639690764602698429497580443718678559955639738698457656686737880333125286250639701832066177886086998696260876009784764754030440824252318927753960500182052237483837499788871422962412361383900172281686777619199444800568715394609331049552118040221432145208658286299205209102403343256583125410434706124529538300117564266274197228735823012499666479220348719542680593187456788993707275348376248553872415816214590853809713878003718567134176867109793274605307369950862184446965320353458571332587807326146122345452279662643567064570342151074270869780853755433127351985475326377441152869751114546981452310879332745365495538207475787195709227041382273174144310620540818587922055313447984894368233865421850589699858388222908887545050941295201761028318144885641919413821201058606489685718911191659905756774119707369690610483528532949123924386603411181648084492231501216897956033955739821946168052775658038573971083479684964603850605424116316502473334531749687451954067352083165649716083923861646804017354746755981688051217316352054290044892018270253643656827506211372332878706478733990726471932212688435560149494465706347619729839702614335605096408885995903483402964371157510620623459866894080563580883700464436364034804264106938461340804157069081135393281399228885195030527069349993014161626115461907898022667745388973335785670063870022275974729422359407572309236209126317352718902211882140302538732306332767139662900564447370764230442483652222794834692407961402566362999427972327109338923551088583059066598855015791498458591813015877493642474954283877772542812363307773710144087875679553851903226123961130976478636356432224010589193254550053019734759953718437100929574093377462794825746023617088914413364363244936511771565922531923992844394761481595431371820327695930420596823690526004827312263686808691488838414395451848816288779073393169966235883655535603363699477795198828405852703638142412513925767723034628409031527479615514545555970542744324796258265952720700578192478125935573752953345072805201198928118072137899453328989672017626706467184894689928970213380083535507771249812627021477171968075909332127477286490795609311690556563293391880047578795600553815605540870622254803536744842485850417859628750030652972955526761541211859927493556122578305943155018189269332371422815298233797189136752756407519607556343308169407757740322387584116188883299129235553151174604376619741070219383022954103833834065497289532530389940990434128890485526706093562374805671853510949878208693127773448666418282781374216526122114177445219757433347371603699755073592968547090993026870840594563609649525408271318830267331089269461056833338116605537275357079885264989304586537962551608558590704983535294674882356976743607051607578910782218257681173885027940833211886202484898739572053387879359738628296321378072405232948499274104409180404472323846656930385201712605669614085216041722818503328261751415567286764897539420774577722023800591212022113621366841765258908154251779344205935504684635503924785311956176922987057854435439381858165471847211246700035732573824765994741466654019627657435242694893376735249240058962404164739251204744189337588384369331508215932187913242612253088482527740276879264570142627928306995700134500838446836852782332205541830464085526850470429389294097066500870364150352758251789725689318551510086130488925284640596504999595196283590187937842971145852636802399212833873581104846023147797344139180025030493232660724541395449225076987255826112231203813501595426225321154188236612915053092660911100816149743404939961560464410531228428613288818058508411791869306873666210377023306807094865300799975221758990430202391435389951633966055662775887614660090003530616146720168568061791919248339461627056031909355946258344395045523564278540598270920855993071916357320865441128863027065819837865985650916083867246696825470645246679651906582870352845198386183126680341095202343768015928271208709504420239518613027078229637280726899581383822123216115118851840902791105174035281832578303250235120034451914900776177634022267134940916451791135267071629507162777207683749075988913143786917129287232319737438281847270951456034871414736862131951017118261097286441724438359561042131355653152424901738183393409385731817721133786737063623302249997331411446259971653157801218534688976506962062405341485756942679950236850515199291926142002089923919344319853297257460957600875840674112505328372117425166319282198934678612973906123257521542536142487131824314955803567053574394541241344127786028465002758993776123993798166379321519377413088138336574842049291068355153984174487705039676854719175611957105169025158946118496595946725666886448860264157606582546210734861793672781220156232638481654444033637012895505681564578795703722274679263994211404627080350174908192528079182635823166823889337821389667603583454196780314914736933528027157626028688557052490245069148351288749613094952785385551480097340879059353501087642298733687915032131804747606998449864473827905493045511625539668875138696525463332568176147624173703219668023144973520668679343708448183438241170976619953469875245021567073581011434709506877330352526257312117538230550144329658502915331784011660467182656097941265549350981980529740700770650351409436015728236607778010953693109051320082156551175339419187205949271129650020649201677535881129900752212586137514781130807180107497877633982999639008637388369558774580509506699760121262996398854275295040112489168442963441839087875085898032085712753395470180274184939582678945359158656451545421197091585360083755144579421991417977479530039601195775259090428993489340117816950493771029054162656392829232260328372220637358980804284839721556295223180831856693401271694729000256868038235418492939114131763664278254709354262653056879136505482431054155512768226895745054209075278944065715455709942628509966656783399743131646107811229419257261448772778759336721439188074497360520324776247399848089342417047855756645428999047863578234833997823366101656633484460390803797119289755877585537801036464476645411540699639819957928669836891878896674778811753220679544420019596258332010299239879762878494253329549584639557348521942148420069756106957214736276992372500179021054557833311482315186163727502759802240978974972409875736452038083305214730981780975617280171790076790677268215891971848613808389670303710573595892989115525536549487446929611303190879850902721798864854734910653736164036311708106035767777987018068774019590170677586263894267097949633463196003281956232349240679574963102390052809959202442226775061713466322679054878483342837065018702384790508959573013657584327986865292032348069584526707037783819951956900173923590204923239093525351022418170195428938621295172398270839606302307810406501605122653936736093336586260666384129709960115675701453091266289710251409040667660049578842808449977493731097168750575368623135320723550645687734243416863455016283805792282662152736217406801655240259006919137524516101270492092685081534064579674945916263735420392518963828710530118141390225242726839819105232053293196894725496626549350540928404442034097461254467921094418650372916523066219719303315847200414831229892675369723077815712681705411402796561795065606777757274693690802298786451920366145167855925398208290242764097067065185335120090468696507626940586149318819331753040447165897002335950396096843829424286979152221125890460903903962090192220609883476003821743420372632092572824299119009656688287913224059222594216635897341543085194704235850984215469843944852320996793402717721233944300101663227654706539282277391322439277160617219899389633027192309536969869985738290838818839086021530034639879592552245499446154690508933923870018630371412226327968125891130628976925645575886275805542086819466267263899930508704709794187706613025457193789417311031574419452296456521257871046019898937046948991107935200475285857245328386873275108717531544818955793151495878858704232569028997637870030297674613722611069303666315764533326564108587236888289797496945932690712362708918742720971095625685066879372868612177793852406133000646548452442169585110936421574188736995328027295630582516972572344255805453748208609466769997514200811788855897960228572716205996408087854964298798785287296888579740787371574254249225818238471553517990950028428674525284814927054154762850663011897061361433362868583506621226655067355045327340263638735793752488075874337178570473229885010410271602178466841210982313098165675378326409785874426945247327908416785358865555871246483575547301490491353076243857692616570553811300584620705907953326541061919846875605109964400490806189449094744695810157958873987413767090326114936016502585656874983539936863075661912213401207483879685966737940500904359446278880854904731442772055412833702481557388901591177522498163658511267366002835571332910938024092941397409178634504230324313552440702782020099952970788196124357700077561866323705013992975181162611056972038906142365788125161652815468292282355507839729355495923090466710112627487564024915550888157743505119997882161962154239578215937670795030377083822899985406140372587155350897246666448310866657076364571069939807104949343263056175416312029129089742129610508973300476915220548602535045782756611234350566297778844386538493003781823211274845301723963427890352937833774197804174058394498470873248405179517368321761391652529840550315537795517700813657581295102827979102369924055387501615740217636956627566456689497232051233442302575610842130955867783441207967650830717891222021998943937135092081319287596088172084771435941566864371802547829398760491011856592002536667922918095301793489975048624092342899367685427642350051990045917400408857563877170568597803829971550541084552416224537427359197072120630756052462133593513199504040349218692062101535967798931248372722044260306975590020635451164304540448734975324654256282119349424767477041148765250226073758203701327796655677295154768153128190368333734094958991781464427597283148387987037998336092127438767361358322165148541784249155366600227355320857956228171398467418613348848002094579207665060993563213368399548693426627593183983257314731587722791275286831288009710600525424466022697055460089595696551309125525940765556324137340377201441459146502731643298655966468161055169205388124468571225803124204834622730901047837647508948000742269494546621829826495268716655186002392269764298482801770115953849040266110056219872327205337431813591676331357140260277921760154728700226883114639919499496636023167880610906814441518367860267368878366660053421460532286114531968205854244956527981338543723953627028184168646015947663905977219817775748460169031424168820490686375248972403853193784147319160678026064893287783576816269870461458761715724429795038249841234661304890262156915150890523651637990282203458861839909301654745856919256410389562308952296396826885477073985077460142726632509115643983321054646773079588198607257353979237279609127468657896385673859348526852825601776455649682986957167368920017529299792366509977565183665678423949243722791318222225113608136680483869633409807102542771796266193257193947115597365163698122205544952957894544389411257574820966852751029980239596591677948606842546341371489046768579503426598457496477097018749284672649754373310513551182404091332991663403019774393661013551424465093706128960047203386471809093348205315795569345090277389804390361704881152767389186624357539106612420681550293150303825831309199434167922090682177500956210917683747366900012767901707199773415621739338799571942739835947778193524688114554290713005689278642404641664333159484220671779633978938720841238991018321626513038392327957319453925723179009005733162316236837854543238172437669269194092202274255114698670397712972493546919095082012899117733807945311162048455727929149049468766515003482785741071091698980465757383288503763552599892390006705375886308421729753661895281160566788897398103233562112275723255561217967847236873699799093064301416383419131735623708532984704400126931201388011346750278301759736309525544994259004637399034199716104254807543976379540671750357726893884388080909917798172119180492956321279830882382057470318558305468126808792864761125531090932964079182147331626780102609568820915198027681825382501044774018823628486117844809002383187765198579108244465187609001521679637612589478493734458685625319831882031765173279559756886538996487582379986687160153196070419565149542315884724418556846920542185019502835010526013309241336839887956650729177823564558022251468579700254560960510286058138147683773325468920601885598203996933239478124256747838270020827959362547838302761726870576815831550570374094085554670892940697956426552448161757511892974698855738941077213144192576532486598642261879948924373382174680281595547594266034179954188568492137676336580457080072851219287770294259061916680961145103353161258362777478715501685072518175828272139716985287418683286172318934829728566584525645540476529619508214526930229645989332820274391089533225728376835634661074536960478214234708949692133578746527114034327937988414190710009240960741731408392255413121200998625931102351542585543229057141004782571469154181125173764521539492955443656388908194280692122406396195852781354348444631942556643102729059930530762189083804190726272539698649842583325172682134425698338077106331941674560010329926121470512184720625728454053456779086834267073403913326455117765853395854971334833244479968126772170642642209266206183428884191636549954360913523864231635985255924204193580141150593703820465198929522255321227178768316093439255893806568615071392328028131690823365188591999943634949564878724967448674489066776810954250693353817416845162104308011103431665502317485682352452088170071049946126064877791819525741953619528955431711725598429069241617063078490386904765475469858435774976943455004981029567713719219147672266443566777622538442349648945576715766248597807692395496867860072117457167843419204928920232771090135350108850810551050599734372032698217567218373813458860248611599328582358437667794611574883522946348471522720110682045121837918303044921812250356265330284605138545750746238789845788786959312760045901196328279762367884934068429150120858547761609034658393078046225129437230408373119193129940925762213748276881340587778993645032793638675524629599643692993304701397103204151338594950478828628012923605228392797190028198640725665740248207238915725898129999144961968790983304714971317424553410590581977600232583945201406738486811668341087933188444774263243823354555742747495450667010545793221661077748040158691220294981576400043633561565705590473665052578589996319521118594372355066954791742830048924669987571607123653259130167502002203058081970107080746601971318817111971453690114402191693978691127125786044333308873214048235024899013084612168889430411511025077666065609528821266418387849927591293388462047934894471936496751175402829257708981950015607505859678590486133690321263549637124924604251565382405393285460350435277592487194164250570090291500311461674522772000745286018479403662175218428962177956075053992486244398955897148376983827152104391709664245689702096460792589742158074641287122829313851459715837456823590473378543477436019367883547251743507822385071141102963403937824850536112327595390286073326837212794824368378917296442625412437966050283000848549624674993464689185917164270860149932094879947253158078408045483783460987480463579918561408576787208335219501865206615358261752000981470231629015735209811824698241169016609472039301150626743435869409586355385731919609743898828445262255274698097182396053311410646163853946715533149064666093600334294180494290052694395070731146426778288763179109476838972017727258892010194673390421688991806006826591620346029824768877191934462715026684800115057316404316927812013701776460353992550216997049740750252968891579668864626716779582718999881050626255566741650913382848552336496242646498521947710142509472597205952142731795966094689355722516828205057438755252323646530831740434631579956968640446475845922625387584874032086241648409617657696754825333341925059580816727841974811812268878304378319779052674595225304295097735924193551977304261605636901694483548615118512320591598420135167405647996945738277276533512383595422617171206100556198800714376389130494341018768073516268968426228471460135401207516545984870868920686412530546410648497400421607183989906334652402643537904554028960428047197590701197277221361109556844744266398864411566441167495703043399409656117276837208827933449993529281881946477129596995161914954608774207510462206369416616405010425530816138210716743510178236691710954388106602449472857074396203579884861835674346510753354140790304215627632011764825945654440483603756470073209785690948912567415716610657095538595287965733330959719921015459600760907008196535623786269729619580852344215353908723478780963718827572468001684531379409079743287525294256473593698641122505637605455525952230109554593639561393427482626398701272171056522406039763266671498910527019551581071718381515528949142161528517641710504892002881535344109291863796626464906926118885927753064807289423516928738756119959052592106140199622293872440508194217887272696386559706072330904216193758154875455606542640740954608724402466142081826286761708565583665766931729424120218259270233237126669630650255777671997981788693469353457348877979211976164855078411623927651959020810662614291123093646012287429255994582331114170216312130678203273635585619190957321074203466803522724375372850430946896923809403891567739820105903725731404167918179109424648364420673926211361045514923654884630261085265685876905045923623056422388544632456779921230138702632914415432759426561170321692474799042234592001621630267290851002613532834338328657779892003618084330602905755727601816681747779819834307757820572714713482327616627925443443313849417946900726425770051955966161953503690135425123025696014710321161285572365923604496320885427807753072755322263160271370141051692341281878327130540333338395128843781429441325954283147072435075812414980208497491132451720415571533473551877968473010872548652721342345700247022067996595801217774495194247608157301607575149941268801628501172682963568669359265978664667044774909490551781827905955150850215270261508623482203383414008802027162291778517542420134924307403393504244435237551727626699213633422090590257290503874487549842151736540117203477886497916705676321597413912489469329690080266352018367658068149659090859931247877005999571228023594195661666365331064327489988072210161734045669781999328782952833443755692931911146280301739715116519205170468759484513607958841921051642335086420842141526844695337075304364229039368271302664060562423121279821976797832562646158411517612824055803506981434524240710606686812959557386800448480786774507212875130011191024599984570603200215568759590515646051910367156789428741219573050203598493703149446840967877648109019534366560173890469684329931654250572469355585897019223716660551391966037993194009525225960819314874300479711293078309376338695504917720022286651726408360659891315567442385279978793674001090936908254557212014241599866331215538857430595792770504987031845166516007773899696704655798047387997722925128258171582381951408477728861848999460561194627396142883845504903785472775407753862690593901538336462072794782499708423092148203251686567418349447878564821682291171005854209390124199521236702009019653059927224588891443151364167398762537733472292953103734231526709688617149162391883908583109307086865925982464991042430379192172301631742260433839526475950251291047643384537124602663880053066720745584077980132581025659050533652514607813243348437484601418611197273755310316870464929608160244923463517328999798224837363431859683760018567449477120991613285659945911033118810199872409288506408586953369083351820789864050808856182435378542938652012181936776857272894627075439001753947767385719774520327370882201846067989190505945797443799120501710217148717015300073457923724170185382993009931511972032126932932929893194799877181009696647275042991198556252778476949698450689536723187035888335784848712439952319156041225860121462319697006262101626193142589834915180990069531059065156625739490105483466065491577351550749736193448182526744448454918329007278029469500142028265484533776278963443883756070678629729732867951038425100809960871094588177618179073005558150553931085594276858907182460589665793036677070511217908123191696313063335567874216435673397559705897433573778584177582257862682243932258807102677818112597494444144274883963305823752353155593398629878633228947527039201599880618351231544383564814877936471507102986126472423441364219461939556969652735305149595475969329716581532235544854002880006035238432340622791216943874386929918119854716563528028690890894624581947020783024045815982739863238253821523463486372607484872172246966512139929440012925186455284679106046791748872009103944605225689421961006140920567440483476760470664175098246092719754795464572082289884815098360874750587966294351882816728339208147459201667096209132436020641669826173615753636443022163865131736529661076050022502684869099684488960669131359718129938046466098790346538458983511126010051528234993443291469570174934201338689915774786983321764752570967736161357898840912176822288954276152228948617854543103881009729626839907697734060924601313574616482069861412872685654586149036595351281311905072402389152932564572621177837635406537435549482943705886695736766063649306041106391251491963294999993063642967120191227104860644928247773853673871862630835050500632439312758674770969677804873203775041795285083566652159085867846325770959162783476685222884734884702032119103213246209484035968303224047360255213891792592747823519751848769698992906738314576351839533660036092035365217255751231429119844680239440773209215317849532003748168814388168002026592337102196730015512401818134712322596696702710500829507522292239987726594235304794884762589788656828103917293726746551991132621899326534112243825816003522036298293598487886602195643896959680802835390653824209182442077697376362289854386629809472072892890442983085070947442171088367105172772206055604396886218054123002524362836011686523096252797753299383145380262068517418964391205601293645709718852782305058201371515589773641866240373279984116895083064826475808721757666102725819851432269082485762463729563958093511001314396708288572035571678644872997032642189364005124205612197089232298569106263538337903052368294578973437235309668198157018950384161447405736311298964738814709090274647602972984671574736144311262138310812724359765641394991015310889139243297079768802013121742958982396052695806271614200562602064469635069416175375398296859027534570143407657835172002248162407562246540286930153450287368986768110189040444766117345918659528634066312867812630635557859739634799740240911535640995353732176502021024263799574383228873420899595841133782745378887110203208663502688456098556512250652293158316071570426012012007861101168647507872527134003223336447262841434583186711698423730421405293828658115107649954515570978842005721282412578193121319958351048170036360134733125210611203331108403592536780824546241650883369742465445624251221133535724916175019358120625278820084977777161969196882907021334304445188842396817768265993698638436705348418645013875710870157280858008731321201438109041766712540645932721379808456476381486437520172277295718278533208174565596987346389460211721713531770885276633459805974095580361579085741364552704077995429566116645184148122819169379152903732613314587692211210372054314988856526086587468924998903870106341608845231701075341328553246866111334352488011682243621408306779589545217270258535769920546522169155486441468437243265492150085748383894636838387657389905964175518825928317473634475648385932135240297957876886592329919785410324667869509791268588284693381823884799512952707748786688509701401217977440472454929480075629808253791585821110303009623460477434356706577673572844447966610500241313588916038011465543215149324860583808816603464042814548886147071759615888605989968425280461917293717641659036486857450052040550002703068355220063106910630884306074425162919103545269182641410492388836795730812850750307079570982706483733839822819384568227291943380847843276986104443183824147299815932132580341933635408275715597910347957302908572711393556013906039102330358695481895599415321537411213766013490016910435267581479866607453338530821732818642640127833167077020823160521850169215418011307967377782809088669575410722843707884579320425037494843249050545269915844236513743563585431787937029645491274867805809087438020935440791366211495935062375672474904489763916973988300545395201176778261433314839722821856584899122644909213587767633287044168260415934090165954163625607503059447217461792656991224237412731881381240067343267267428347440904143956265049553213206982166050648887283978562619536965241453100631616613654708306746738306624948228427952836999184612588755465675929822212196591652587998585222898823396506269481497276153677827953546380093122040874441212058967711588084887955544935516503985939912979185102261066991854431859716353770743207610780786665979687782443756978436408956703616527063519795082775538031889220097186932421874214355266780175715795199760216595747736127809807246561042778459112270258745703217752163584767084597059452228409709156548084159728778510674077003308347194586654379039815437847122246613222850577257892544131680979211637405030120468158148293733392171261722168805150144086134643757022347483595812837037954126667791185261193105560425248265008133440380486184775727293246201482905188090761861196232071841746983846579353007681061215987811907565162659615630526453905328433962474109505733596249274583138424285714864882409432883654224997411450334747040492292762609572695068687655077083500266629520215839685885301187514212772838540187431950225723670485005634032414826832817086804628738459872012477966623444278138478416295398754811662401139762294745961448695386324413987216628011554240930691993279965002696905600912456716981156106653250222798093292306422507781775400826615680014997219596777420215117672080210288810232644440447690024519546470977144790849236035562018238671276153373584909770839622934062140056526209721435267298493313788318556855517588995349618441700682070594788429658530099079550511810952622650155395659057599535243985774831653449786835861130475558543867232329359669048345460678932041358457369364801066441673079383254121725441398383413537743573540309417469284997933821828162065492200922341276858270669755960704946169520043324949755292053561693476777856975669978303216078424259576869075065239689746653033002512664336084251600562509880752848186269902740442045283237775366432752129334946595997824616387558489223359037248134311297967746178785472063907359889916812272033002390315492964547930543797703308029875410968737335039897275036260097868992791453050633249613699641711036286781279220611680313821472481932590499186331476730155595822173542771381158912451913515276661572259941873194602685579781314916532475223884052325104369573004364076918937799913903699323717804289668239830982053939906755000612299972424144366451472205441929846534250012647028453186193044397951677076854737922005718520797111132044662331797267261625878776412832630469842771133943110711151589285117865401132634478109072735377588993408669096990225052716032163654772169345588182296467144345036093739923076934983315491510571364506630768072609826899378208846832036827245059582183965795890837542517608701320092802874346871076994611649790560902931874615459668992241256025121270793467997242947475988228023893917336390291751654119522001309143444474561272758274757649801235743396336588453523946697126324192337968692883223993305290430520461274778241413660907473825418333946770035328764009734492274326230131412469364318037677945681921257824648729079976380970478222059512510804051029925828060104823128630913840825670236700606386120397682674351597176470634969598364733903689416961167386822180253790097726376094921465134625173194358614688847011971382758497229181881927918776370591542607810878056138540911310678613322288407504910995114601771255120715218644898640217212100250114915816946931478878047083926909510045514637262613906488971437395624707472525534081804581197875010170148855855707519687074606803447262231551514824584739940146612999970861909247145202690525174889531057583942679438316881718557707119501563586519098149470560795066186317971054544266102052083935889858705887792651197142119735908210035251065200558665313314478032288189586735698247905199558287339811471749045725538822499398360017644484838940919631244886141269270423382459729788462407123229817423305000447620876945582661026300709003696948828798670404199315104079747966511688320122942181333020376830924189886339544557815421147018872491519918959294200215065443853396730175466191939920922704286785875720712215137641429781707532757697534063319241980462451324285952861057550316196953043598695097188926198832162427528208585745483488299519656782151960633243549115930336015813514845273923701205993041815457386486953855052679674988826656929376966582176531577619893170894561507167356004245221735618955931332274803528805221852580793134063636798375878108380615118233300841717253566742717959396179073068664366833309057591383245213212006843909169132747430761041499307490849696709338771482814399645084987729578309100102036277496368864680150314713405390010650409085155492400042455167168338560167683611418111109402881482438721567317326240326749020863941628359357266468650114352912313179194399705670843266545759175548159596104664577384616987877813447914441943454676373235628089608134421880063776027877704946268950610479977210396120129842637622442695914015743217153035329504990909852320227327760995323960139413531497452154478117419165360346022611182916846393132211330803219254857118711857346871265276477697721360645658828801106196923170135821055217155919578501358124936242259695501467324817105574634116982265227256448068552492845025930497594822569805390191252583855656320695875306245899682041741015009463938932178477726532333762674537452281861324834333232813986590374348565934360383324174224890499572262486879885770267128406224362034531536399946549864640963178963551247852770047004596792586032285888942735282716396210788580951492590285569248611639018725802076584661676752064979672519398378862581388244274836154002819156609009520834216916497607639234358061630514291147255073699537135622581425369955299802640054476215059956918003336127999320926332518561179386195743647227952235643654982022780250034878551409466806150087803733704316377114399801740769050999498133222887223997320515840128942716556711850732112310884398543205159254965836217640738901341007742095076304229145900249189117746555754544414486828659125879096362174451455174536553112862292556448491303189523314726419474621514524278882223065165150498468001442825683710941377347512738995068833081716829896580013728798238944125983472083496761616961692052151079269284231221955307459044301976318984208646425765751598105464736044160017570692815122419694312777407187314176902850078952800203219485214821530628351323979076566307901532688103659621699279922870794043224073271469251640367308253636358419152771736612871284830978658791061300382939206583082762734404154309262008653198447226686627196919634427442982856948800509437156391510135088600673649317537648570493820310103934837326483265922472913760534690646103230473304163015087684441318329201541269234887155933027403763053763004705785379905931281378408604447927399456100448036282713391239710419171540826818152457346154266723891761898286423210789843209507290057358128264903535439248843691271472881983422975049552677118921454066618428107813201759361706052476951027749110324541105736767548997184440325505302659227517651844401184508836046522047797717522913370155877381922402019717554186393565814377031814746822901741717169491688345841054968377352855207553156763803610773750323439433195745752519003697051958447841998755962204639676576472019148666588413160413784471801661705458317157787397714092483632065771270064235676735388913652769989737020579164336977439778488208557475706863760786118266182825768405326147774651852951663879195532528926217074745584815218425001551997795418343553309075316901028896738400659298385384976973044035476132470415957993046169089616739952757734133474725073756613398094510300228850384774734456157630620195041887995234644961510265077575352749036239267747726845675586742658532725607246427400300582472010900839567259104242250065586637528457030437429826732898360361726124821023571416684702182321714053114615180143848167550138034840983403596450632613873724434130572748923760192054555522108387526313123744035684039179393523728623411160175643708362866953353308107999840334873104411132258442017664538063939862619565776817704484461267745754002846900721998747416907336530298580239453911474388608874037365544997826067055147669068083115248273880313783384556839824705587562563069749203157485205341235479200594494519308509232533160425324860541391602333615450283112116309861072903990947423645641955209991609632988759062361931624273104518378651599185222627317898923070042260699060228998340354996451389322293219353185881794737943038530339309170046831369902511092871105180457553391098196740901638443533181695330692244234227292669721510253002197181954239820899083995181023672618217913056670838758794723741606902215516176757109176314730642739400491632320759240805030868687155858942819417051572375461261531878135097810330869188359649184391836713209657871644089366146765592104054590202236596354582359790288992493575262655225672393811091266498304545147939737930288798953532329093262583686860553932913937217920821400762529835064084199170162934683976186592712716839209311430687784187972378441423263030982865272865404261281269746951041515138159267970868297467599758335945831696013661073368556987252788283901804860289215366921977204987567967007947621650531429583910610226997911633648139672533853565356163399264156108228212159931540005122169217984482699627687376229134334326556471855692157344102583369116434683025432781194727293987284593227180931989519352728598478915991056729774194705662274233603098600982028727449879385896707298046485421592993671753007170566342579127739225394129317991356049996778577597787598656035552609917985631710490453940891102750095453648048470679430229170666057369549390943810883802884625597596503086084904190013976452770167352899977179084093343024121758582564138186820643073638078089541211566171627464591444073144997404143776253005589556197663406752684427033523912958575535618699447396223214146657598866384896290079270543280448127923646426537502034986581353686032082999120221706953554608997789875657824058988601770377574591253510556892882407171105103663118767189048221606728887141015850057793794647139621550207023402908373256992064990570157362136309302596625751187831302052745259455616084612054486642789935426709496172915446202070852274128439313152377401281561279199319493440282055612219559823068882351757532241443158235146213128269923408545287755130335150870175689714317664667127471261446115881045186391871607178954976169903664750746705673413393525764424155136077155402011480073856976578260772871171417410423643908703087144281833398334611075896311459059403099398350132280032575054408574862415074480451344211208292965478354549386145313349119101425200579669347823952889340522569805538828783460802612992985762765553238185265524225064918789049447661593287455319756225376555836720484304780611830036415993333350299521454533916259283149310255469089231838977716476585318887835254808709904075803228211176495051884304866420044431190674222099492448026172440418052638172685457498130608064700286661940822455437310788256794602032025704332989690077134069205498384471655356198094999553641489166689488194474272218166293107586617732774000566865044331399422358290108487296943999327699768714012474648219353236570734860829066736953686484740458299419512042742770238534178880975065178771700885072309645280335646793139890031338051172252794704199823015444703962855244038579968497019380861012555350108660165994172106364302319926876973887365802204202322788412861637258395781837492570121547519615096435402168712203061391000108981370020196361095142796254791923415441790528035117542401896641288716480379131573729038017067864461941726894445701704863871594493261189930703287608156971709808661558143454117108864039293932653054502886567559485212994336885528702779965689066763852850002119427917555148649849520609333294522892627322824235636064449081143803397732874978596234129881116280292704553150113035645210891951077855884514838789618409187889797499493126577447370703137804020193651396170948957314316473193586447037084839478143613456706010366477309500425085520441378050536636205646781528708651916997518921066166154851453777988882020238336183468668548292285516945807144008898709248103677209550155022309558554240444436201746175403600905545369238421635458324221606365197090344309488416174403488902340747595871763871919071537604809708003704279447878136287905674025704227990650030052122803661595710314373934611587309167968976306704282775848186397627634499241194995620230004050822303165455026528502718034577895723815428526097108961249815460447349006862123644867102814537555854146681449508334884397842957758367037856893174417653872100697110132648641553299925039871726501561653492965968165091729021468047474827136545548865062880510488680059006684847782289749632590424655129645119537658413871786230267702531605579969335939802796709191719244262443686867011123379089563087278880744996644894527369166480767439094427300161327781167304746361151590327396374559236439370347170297120074202191650370926866974227334701799750463223599752118850047456668114509970850361732747045416248095332592190488013240055185560073457736632034893445060945467801008778342906628984878544889311262313226918026865574462225822489314117539955087168607863953895806370167782201266641098125833624919325109837174668002738560072048466242889636113622797006071915101480509810546880767765917342954680841397308609010044108079091053339207785137628670571375123625523732556046251141709568024942271172523915754911051022309178135323576155693109580392166079002844096474035644098816642116211214204967652415296265533180213650611420624064746461182067539096972402120005880341784755365372574869113349237583108152377482685580531562386043706249384440188368473994679543794884981142231748766726590476261906449913684254471453558817610317478157756147911051926046184313342731445412900618741478060778115290698231341238638542221247027207606860796871977808931247013985051897604985680361416901665325401639389734804470884997241305979953028392247755147069058078549187647444251997507289104911734080364984673379163250753579242733147285074411098060185864494513811079883240317301604271861921142090835884885210321363054317380832537024224128122586767051820182341637619694503435857883416484158953267848134303716142668644462627216411138161626767758697449612950684772908239845500183561716884153564498409235483630948311759502277349234108458210005834256700827956550419582139697977333175785614105119603888043583061846364986610196324964405894952762585725506682054411950518268127455425898505925006721283369765583205323777630666214708302371038009374578311422270389524915880946902145200335140973290027597987913506840256218827179225896238669914276062227328673183373112920314562786244647948362637531726729081726592091783952496230828307282834864789457591481461878084445423951705317134520313047980161140240685166053565056504061618268164944760338790218298842498836655983480739714219158803802690748663088654058607274432329965295136209303917314625327979980123689842756985524847712285609657683551510359648452921313942972510499631023509157769775047730382393109097297000236534143256838375463603019371576996703791228991109346014751925359519915814648903420295547927000339526483227836519414032419030650576900261822087000099439934952673510635889842056491038549659113310717411201541695211507609643765084980407220213564855244216880843757002714525580364930823006001820181294649631808353176968344158251161896459133413912393328122213433106425024838909607378527244237839214549708326746072121980022407441619923746114344306368818897574190485437791201782847497819546893440962202747700625986338490933042412654504492523467495623895713828425419422973410871660254520264275188262798848980152495473469164894225852486578301179907956024834088082641052674233785934720278962120581462035645663559115799520797211502620701026381199663257752078215428120774224952625503374990013953599593943835506777531253176261894824085735338670801489592096031172000920388957980213369078977358360284738883976104335744780892415001187344852243486845897771651069657593518234702810296793623773322101761090023806614725083389209406243388395199862503746808601934320826048821485435763598087953858895870592214502779311653206723496761089149455645296374657744090034834313576042019110751763435110559120432139654029654242922997742811923751758627183016807120953557570364615280067387552338339645763111816188576608489830583147527081595580262983884741000330255513831715952009052130006802265564913161531251533884697726564318923195192095189451404782693924670397718459843221571285951956128491573242434677824106228607704906346913694031897117012211401656601287284595089444618479520509876296068849410276497851608781069058160852370645469059924659064889278617325005655713276129854477228232076742791021524230384148792379720637466863533980635978936639934406286430028628542711481911967481947970470355664740751705668535599913891770241385118865338723214734152413325798180575655220424031308092894189584025048304018527783933427804161171957414737463489051802539825678279418238949665716849042873875921573084482061154107517961679078384805865513198421317293048505617401952185342349930110226429398936299403771925349575714020491836315848457707340070575473473788997925365669159703758400513917392582645963759800351346351569465356963126598540451785774045645477787924309127509233163323153314017464799613164037245947195235776824528022050772641830092228945981465908600373519780871749058503297821644109120433149821528771651845052880006562901408563126475512153515747944414643143756831880309423216448830534076587354077056281844885455483316864476219946462587717729026536014903374757172045142423351575036066023928739534649733770025982235263933948446630954992415990486925816124689331058444074749094469653648070902554224790705156685252020640115401862472447734318292838020351489603007167525577518956082664018007922026020857264298084145655603419865998761180667959253006681075841284725568691887782401648893794080327901148695607511588044879640191135737406886105437806501608533681040258706093686109038166049920529575725029762455859438008572229010511283227988516985023844315626738672735504610976726581442361522309459566071746746101936317185649883065039805706230946929122965999333475756167304090892037912675232788005192847240950421382791337480781066566804679147904198614769962784078227322839975499927606683009462919386251073981321179317110836519260447283713980411179000117582121726700620037799979291123708727697105929749992617208516832492349948589732244909059427468938731662818284517012660982355428360530471788665395084361854142208552612165902896631120397179980132778543762068094341857733784275733801972689306319416429159112939573009266960158022965347480880606428549769869725808661993214730963116655384308970728374089057493766573749675162763971042309559080044094778916495775089173609788735237826281303743439143117783575670314769417174432263003844849033872668994814445644083598526147091084522045525215294524604157024833022084401613248478564731371666657066325006654503537107836405495920313034011370704663266717341890109727793932882447119633274730041456051223258492596017839516727049357796018900624800191090808247059861797292420046278856887303525146476763458331780679359608425057819235883582150566582966674857262433853983312217902923863991157430482736956353924610678381987359587541305883109569044770526427541660199056357096899505926003167690595660773185285254295757736481860845736514022228665505678908497428978030835317997975692327908946764493759427952641254624074024405068435550161762724477568041717924722336026879042584403730715682885954921571268025190023264733763253263048667529783240228236222458666938759539665180696604193633785422687191536872767980586390712542097994870133127547083751133192145920444842427674029130880978627906614673129483002803228998516461539140262025993939852325380643533150080736147286896121539125464835388440396647665958229901790890620833920641049650356679642148317859837384177559026161299691904100678728467788354003261902662546886428142311978938576455634035393985922308302387378024759833750540931270659454478375795613350776604466213562865517789672505455472069373919693206342499717940186846881960759619932159485246468790366415405347060560161512100083181809198988232858223649416682942696890734617216613430681810014178499191210355218388799845888905637742760085139749227319425676438564826870148664295366219900248362892076592911057484320266202288553725594169629650903587372514227709061299445957771061786385596019990898291858849024457623046271741928632440223985105178150178879527912228776668766291221935371504040899129834606428356034971204675054735031826724842188507026497363769332548375782157137303856546382067270975232028960545062583279744183806189253477361043899009533575959407015649694464869836980193693057863765630260105679335333021437005583792344263091492899563105951831915835382509086747075708765399496603847052470980772410002704825088516992322857530982008520090089377013114342871446263573540880072371465236087022919676193571336367674437136009990854054798699941439798458123660429898906888341637983574872814739850638487662562871009082539690610907622407758599531494047703019657482047667420688587410146307015941589360251572549960359537376630529255158112730585568004758329914600585625461021345932233802024255481844350582546724672591740110415348363927779814570613048320850220103690914197048084784122574669122823122670034732682316729296479867221709753062067536443722485367658315615357541468324900166713185141500607727525676495280640972318702710432358664937959883584668990856016659400740247112850040789330473683497890584885511764137468975795819653297952468116049296382459888198178262782088369303048850887628229911569630769494127468920235235892142764362809505609602275134148746647718677813927498137193968648132833639380915555539417405836438830080269025816348120669023257038357872642846371535129478376341277937698442516106945895683225601643284106281604914947483458134216321454252627051145828251066346363394697226151525446005375075026867658594044246855784078110457131127658020977407402240303420716470792046044154420266388470489762159515927556523876039957458193573332798706058528991538961084570824184060789416756677582626262344438475484678524114563616473507692191742291116090049570222453227456330888084846115037282027863718300194701380347923822277572543792759301554106109626131165474519191775796173663882175897697599920217290224909316190791097028185393286202359593956628204466399560333981596618593290028440387389515455475611999155581928274960067783103290987327160717329751970225721838292164207786823496091339475743181352628610186803288508310641462874802112458659504042442978689083204075789575424647998856074834340406626905338819073561454258460658991002590277587165632648954942050637931370740749808167674417979291565276174983639968155661800153737818969701053100687876215685243166861251883125966837330023143381450386078808278913685728650421715394876370912130769962752686292918685988124602305461002164383563279304005995301358134980378239238387019258101688257774349107808157796443333940261188326041182826738693234888338787698442417389774994172769981996525080197138155126402606286489228318031600363791610599694791577793128553690214389213527647381517098024212817608959768081687568492943959108292207411520639955421493867540116777642485913137981129339643330606891109631045826248071018609804849322277015162510656939327331322085692210879420469842841304350626751404056403037856762723955223914858228425319077339265439447966268599510645108589007791014255851541105303160576355190343199506178395318680012181862712673430156296299678745193050671066836857197241202732853175549652375126476129243977376758365372878910710837307676619700339574143461049299404438942369670710952840619804924131458472261378512642657538400567410278377984847729046796100189805316710133366308906150853602766443111801467734756965196035971609290711713984840894750954426534895393576218205499899258289722875753701930401821720258012505387537627668512135037831456489504778738136433222433297130802872248865205978160462877178049038155464389627147492361652470285548024892412928995821948827205731239651884894030604046623754889797865448628221583968031823167347808876357303405310937528353113851259573219839307315350124705710308463618199692203632925043580739915492036821847489160191334577443896058210788837744962804742051561420894750804775299978743465978696024770977102433171542410551165288097539308249000651065224015281523231133639842078780422462823454108018255873196556701578230201607812496630969664182674444297057324723333026476206417813397514919434262160794732063144319521744125535027452724393913487454858767409882642104136205722004593102548641293652377838359226683535820084880675927923790654779326303584494437862070911354285784851423541234572598184686614969155941133698349239925442506640446213376515675073082704179907681979786340508780770197914171703877736947895637101317026149521546421526181528652519862085778645461882244529093825103691447020303857069179822126838303223877569383561122727425797293894762523045059318058107879827448601651739390448508277673182466788044107587631800064559276349452336684891020616596478508072897809824093880249980958492161342919710788046377421712882704265991523508871512462690183759605546313594718485941663839398421438986896751136536934043292657458054305280583905414953392212429656983735826039738870250391964536073995200930475959789422042049257708856916968996861739001242255780053281240923189546768502164594948902360962796848838930587917838668442657546037477612952725594944523350793928073445252902668378373762964162612360240216911865936309309154282958363023059367270024325460552288924418125368440254268380023507529183383505216402605342932487468002902330836799909532441899704491421238791131164197512669599929829398013661797184998457195656394573742755888297881227934804372765857210970198579569316658125116430981662701152483606488393417940696165258434966577008429901019390065624873155074320241422412146929889980253269111810910484810902889298480908530864932064374059514206479402042772283420888218692002820960520788125966904519078532140628259761112043141730202878696216507133589797175527441892284360263548334891047679730177849621667404282140843340878070636121113779075824928411903660649224856574933779463679048930611000554697084846276640044043342270542880354973214430360278112762291703231471535251513310863515598368094349735746474492424029903608283935360710625702673533718361119475738294329879207736557997155057296350261817171914668244902184981908071393345032901028352925118369986891661744404554217560966671113309174420637554389209732346049594279841611189145759717217609218661231345289623784525564684357837401297802668222699642305730458049147192796031230085694078122634178625307694472942861409392517083513741595100957014601811779435299282143809878387181661279734213168852205714629182476498282677424923931964836145864675280428138290063087806478505232760260417552920346647838532623130838768896331830046160636275810865657975797708836619749713906874860463273981796629389893103305768752573374818847126237411479489243993987136902517402097844421048447858846786066269055567368923670623293974912493924383486315519136460533934757575840744627258325724897741893316669238929600301483173641756290934503118319917330298165768960615261809018259036420062113975144286763676078108663212299289618696074604115798511199160699541047281033026245579940358715647131187517298445845707419614058590195050554603164138661062004179370186738931015917252737276055384885576123474685912761569662684633240280056547887890866319702883640637188313969473515884384457007720721054142620348253700443797404216265827336033184639013218389343972411918892751032415913062323467802869141555338900529031624803549057287695056104648758713705231413542831509266684364292842388190865663594654342531732222951482820593856086194617274722846688424832920878184394057444253514003933240622095360298788541384905927649466153297019896104723158290157865495277265516239052423355275777950113183509236533837669499639146669045967496990913009063343707076330819239236783738543303785553480418433051084430348888060464796632529623106414323144963592676997618589742303198515269656194006667854001444501366622297867557383723263208584379377344671422399297274101288184327219361597832932035361196887637789807326586597966380719640491973279396428755653517331834828191358417724051517906802124239139566603622924235153796900538985959109976477904932750096331937882623869444890280271185514751348805093806630942412118719309239563571702437603108701118406107193268206166673107657888882512181190440319216784229939815666202658605125142818566696797744623259361537730120605745237462526014958194377518709225941127788797050940181746259902511996813826202618825887752811608385661055017860481736517043500085164512771963961975704183565193588370875082036230342256960042595283362668468194018151546228906370709140662959794113817038439547616690736953133185214819849314510794659081629567860849417694944868665981268257537903326284251059987659526869074116483067859628319536844605137867594577849704748576917378557750826319794276158681794245598050421371064443847541466108081833766763123621030608624960807038222773349029652347038795528178663428532149629124999984229730528173029795108091337709712920994534805176761712426126199494298297558639937650394712912939691936107377241655902449770168212922532949213209040474427827223593612297898779575488069129010682031455417006565757327665931392914650914764561338019096229675085545710622489734685530016948587729019566153108267258156878329627787407865606030101643704753840717114046228688182145056654282268191608597674148230046018212008147045005733070474478903289193978902146576911935226664115205462927890924200998956726356455114307192554777435003775717626497460670771122144806922532149971117912633439759164456340523671789472124062722862165479071105365399478715637047939140801684800999830274036856565338344570305378100332182556380203730656963910932620059716972667552094311624327903211048643253919130973162405785512528195188461277476799778956823905900272430235862263332715149526271862302157336258110394451009633416206024715545729083166130174559166985940649295143350173197957736058349200503112400636322459796738600619840033596877853785532244347633764406958249137093853384877139726159368532689275490077162071709476323224982219790916630890488227424614115773300428446521988380635019943680507770868020044273660692012855052969503691700427827217614020096172780154714154088550464369747228045252455157294871331475091736179524143473432362331888077148437145780119544989909536584211834358222353231937781512920495728090493889008345496047062503090744598737001070958535612615130470015691014906026450168551180038813554234857662516186796689168667973507799154487673373967253465042884620683537719695028629278124620365633414283527935537308282516411683163336990331904777080325123464455950684573812475358686716129807536868633638915310672184489506498480771520544010257524899453526258687495990568091036409832530289033447908810639160504581557544421199997030819178097787308272443777318862379410797395890318702083303114917772526584641812042315543459673171064791256900338922548824895830476936979131312638352920679642313183776234218287543107778604719644939067409282305894568857469845513293459928551727571418418160789609082617019999117690102495125449862129345556517094312513342237814534444021969703407462422458012941151590105223016496854634800896964771119369459213150575665073079514804575044226832716436774383739058073354519138536233445083380138767013859819444042886192350040233013982710008860177937718998124808031067631503022640275439581659404272764745525549893005174750203133282239532874284243910704749638077693582198299808336409237445450444757979624609597148254134021357578748857536624521639488664566516059392295189425667139444377790001605645848080175003512064604280036620173467254579190229938143891294241147370391438976836974345464853857681965283226499029163072468888180067404810647733795269704014637934294825438431635641800479303749370042926802203757085486952805170959598455851068206037162257784729102079920520397174900174307007098620873642315619107961344124126871054982145219743891956594706091410049307556580832846935319401315720043477890858980624134604971101439817891392728483881147229971947805716797600211935350315498900474553434029185003020623726985482021641201932489868450047446999167013806714097232988109188353690278226944266949992750912543055702636452202554806905233507129445960851650921769071104373663820907614655507923449984240938152388718695307022073086617618243111923130508353735906472289638897003579304246108245234529177966264561721599832615004796044741170029351981110642096434006734139949969081345125553370688907269519075163002860284861251342504563087756921780106163197672071427024470710947872700088488966051104658487937188026440550437734889990267189810512660535135523253272375881855914743046987934345422773345558134599151020426974700319936911650874809608042191502016545099107352117849281059780505345897538473470645931621504516032971485012171974058510079699250961463274538623181160274969713814202961331238244843769040753680543512875249997821012597570261084220286468203399801376977770011820234456432216135552345881669206948776326401076189280928932187805196655036015417595581360851178680555107553726764437071246244203532587013593600569576293676570154281518905441152069254493199056483358367153980350091736513681373343831094981764956751987627354709641692986070271934095468538715035970794942829455491810484562337965936662029415090360699117748164295696006914136493002182667302138988722409343814018113827975165382225950703015231047706904395602106886857586971367820477672221559592215571582619959261630229961605842311758129175336199539721570617473999317368720434337570972709584694247334026019935930021902087908897337581188166263474897735435741257118217569291350928577194442040149993170431985727951460418247288272799462101902800141039613552193877442627903535034565967291596913840770467545066783253572200452313287643246166805280453690465375995643367361018465724949877335773975910416498372938083154933353415525283962201845232671107202386054670586310849996485945942599285903236265637850131273436183522131691828339371880858135120165606490016249232893432346537831957216746948295807833400468958402331646474917728248582572321838385444559490420542143679523163445558467660568682939171194021819788895924427227548806819138873237419515130851757819186914317418368665878755597975515606635826680473703952861966564108851661072194201806401472891616351848143634013197423272620909188298532028867460804052179940334711563065236902106558242473044117485107606071395367295905361607760188341260237474489018863728938698122664476119899624464701328827908892529986370241095380868242508492016739469086869110681281110495582341209493802683080904392945910086963665511148796384324764347112059908961025886198553939627611807041743154437196359155414484405194339562443313203915556707910649460190817806473463696858908409431829432661214800379724436399226736771015989304410668950687360291802581972010024263191290555995376994091446208837702310223718071788184733753086375980285476106601280349811267866890915454204923101295909759919843961846455684923466709669343305806521382931204014421388565554919946303907996615183137012847952933321248094667980273893913642714186085984523645910356393801120341922514669071765286589353332172687474324240983337482387076648078684390009348394087768045551525676894143135414036320908348031954448458192720624474925165760859314113598920511823047811006470007205702612016050877830884501145925401613087183084589156640207388168658084187359025646209827231507422499470687959204644581560997518905449921383306540771524661671850022920956875672735936379628100903477193340761755910120513619699485088759068015237113160478268866303430070693889580592633330375881900519971165818301598642352842405905399560417426692231438555326432584790452925408575141537766228644476637190928619863667108232446878517613175600325409299387656574839922260291465625686597217905311077940256088392919865482830298210990505155101711012833418531816068915604519177515255144612808077912017280709048160533910942951888379948286073375338150391014084639183117011249826499202719706946028157838953028257842024498653041901250209281806025662430639705449669087022208187911331751960354433007565924707312640117093190784099671662107155077523343914526596545823515141451260936126784696021662856552006128644711689725014782649330742630004593636538982607737919659744076577631578922203331306863306479532970111826856920368410978785321126647296296280579042749972423395148457640786773479887747868116089125751188616171060508812313104975820240774222115185813196788078609237049811882247303706869006093672840191633318296376636687642462371413474672847433756311000210579781383257691710411799400277063423533814915706581562384945018299588271279008881778690766837591048581886103085783230165916476885046035410383707862713194206454313886456545334878303688534111464260192247236802420115389111913119345807765568434071426737136349704898079533452590201103541596871289620680350961611117375890068662855758698024892939343641195091816774731685369987695307367514756019135876295671741023581687416382051321224362878829689653991186647903074938851744140358826022224711796812670514328945825838514862251177332349391270232716751427168260893394270943875657083892351047385820400181980983466228790654416288429283989585442003492396978931338668792633426998554346307959051093336065136851171573001099298336125794325950367827685053475222018765559283266865652510882485875259125927819796087742693842569254794395579905731869723114423115447817018304077749048076362836525612090028357731416610555576986542146263166268134209277561205771384221135685544959159506865865988038623493928652834525709826845269051724166576166060881294275701544428371911079925255235277895666219839083648282530482253731829360787064782571816916571726976437112393552845975967496105974399507071586111195984322954287051989084656831411081191882000154792772724827892001126075538579850272049954812320055811967320737026184679374644478488639288485741052134539929803180661668978467607979096863154235368245041502391544153641424072843462554932453822250482511800123538210595810445394034018468662222762527167562430747908049833448383626295256986572025750428357476304626389171482068368192724120015694175691667999223271072640635306157325662527273104417267356114231796381435276874902898628336716681682454952081127722022410684484384078946800012322306342165211324000683611547708295587486689117710460379058806199732918156258322945171594774863792619567638798429904519874547127463988499150388530082234870902642233817260731790034496758123804498855872321094202968586237990283301410473870057872193545602697254153657756385371666245193086612324895551618414248880641703489619956207937578340873433052355889388078993957798777026473658339489892020596091644181061423683167640607004703506116347097631229433951046225296896417090608269403688844841958749014965383777024415789827931405597115612628238099999217205496681125692806777084237807061241764848848392132553637297979426129798592733954261176898064882241519894926415800507355831175847520018670248535531844074706456730205856261714058015067558105912079197622990643766849117512987124946399559350926432050078019130829966209643250327225245799576045251668318468229696497752166530099685165644013200120587525320798878864412931169553838479780699561170778286712692726461552336732432295121133826193089990352848501748436578218218411480214979252123683574961035605596473626823634568777296912471954202212459046336812318712358331807502269652182668555458190193586013982120150292539939072353489565246551848723702204186470431135568175858638106214084054529034105007922252618234449597569025136873480728030242477226212933660966403864229217631472762029447276314586014575616326746061362613736567166507943189679795586168356890654751095981962711012184307159944161727839427678706084074589160558879880305041228336079441945262546980818540403675043064807458977483411686781813936791570372812658467738943927666925772329719516027227042227219523317988148801489665632924384168971369058098136815418377815292345759812220796880551323805339840635796327835003279974188283898150826431526769427837872656663893893328395856382200431639640962177296849172040981913050171842734727753998876592003808378417684602445460786825896926286327896442710135726123098365795979848292271630161854919254857917584571080873713307331788205472237569375433738784838690368760597154751826591416136122204832500888741288102503888537586712968115153331856619038106432146413387137935012268570952360596940650827226769558620697292134725254123387408407643585208194328799293030417555308075378892981914247392209284813505457134409474130174152484276528072305415918970907278504761460839374367852466841720492565377259543338442572361988881955225434711746524194890307577513933022562357253406778489260087976787016521371987160949554808730913054346027768638745124457579952204212874339267234537798037007849508076626384036970322761226073624871674209426494965395951029775184023251736690112531885360280583742654508628821643601326797052024004273366170510473193193420555628082946774023099617409960239059403442303920024505003572514779400773367205024194974431798537536930298301782963694665815323009432309424399814385295615625789464154797973834946149115918006896452518756098465744413395998954630137747380093329253175816055561103999647782826309207744847966187164963838935414930323668136789121215278743622487721546398041032548754318814088597506600482341223100351724852538837342151618588310634068255354647764718410008552078943355436590196237700239412730409648473475840622745424681190480542320073712627487979356411550571859652430789102127484382419616325926662413747421525068752073102310647543395054217192045002244033813899968340503018009294268480594356334638771528020571235285761608613547089633025742548765735027713318934191871143697685318153860264930569682776921872547006323849416397652914317207659317540062114412697456192919333172801357283913450809686760701888651338524258575729702712826901754053502643140611319055745401606727392496190847319370526306895407556185876541282557494067239235033652995523298056371597057661351333179994162417968151599003488861903759059215189605955700420484120035533705311883219158177874020106623036087007148572897573935831525111332094552888250115464521469613533278012409408924219774342117505484101202963964347316583659018685598831167378577387223036106421939150519533899280115082363112704853357128841096729466445230974803666048442688326734165559270334402513139214870822344322467911207655360544028857345757694850996513135877537031185685405522171033351580758410395363180496014655025969408534137614980725026141697495071316481798418890669029423139545072509892646773239216298340169902525259388499386243158971564560336790868364522540456900670122346317064699106384523009350352412812820642021787023820410416417123412524076413652820966115690047230240537987528951849364809335636011392559510004586549668605799469105125298402263618511537034305082125062047506653014769048624417480406080361451923375588532774539740062065340421571916238571793496573759326287145636780473283657683381375541227374673614778295155724433581026993318600352849694070798738264690924987887470842126254829018791281314108371708887668826494739796165582618414468285399321818917471172369691177997990152450662094484934222266380941795554439942923233472996964552113172162746652899985501490918158468906080716771421758047073525716598676811205282483559199693211651643284136636442220404614381854933402076873568481663599978786750712546449764644812019344716051476977950226364135163629901710754441616829737655302941569584136843072752674806578818509333141550325720798874851603572046926673489187052257554501295913866246849183272884516107383467108057870510227268231686663352797915264655445150810593040069636325887775186236503728706194652652292917127868367774678800245867195535662513666029431747131725355804378462611620876355465566443909126344766395803295395539234320851005228774166067966191933129389928323007529356458470870766233732546791406263979374556922915620884488818701381760221034557715473000299082163148176660813261431823005413722795913271355045826561672660312330986302603234741143450725531853394935643556666115627133842209229940565043671460952997117198163395492962718841614303875938778611099743089149736220350788663404795773654049521320106845216017718591294006085834256328244739781271222053513402280831214320240441323936048007188948876084874174939611009007328579279508167542615991698251551898208753788068895304254812089608846801035765034410941765584676390831219477589197211029035384054176835851117764820245004080041565476311513865176692920514527912130380503249717135214435021973565652770563952142878388406515074944489235175897463184779061190189012403484458465405285757983778913333522678626081913445533218015173385343991337904924089163893767904495816680345326932881295248452379819522884016832070149294152966049820656997420895764082408338197405556848527041657042286609201972996251655931221415460918199759159175444509086324539597774891228459656186694754562554600029271969454251175049019898939490201720244720898699909900054366758727840840715287378068085189678347762121281908470807992659023022145661648244586157595417691680631647168612235671600197593538585115400362522180662670933584992989457117632401142718191378477635041595822213747407446367684599709567972385622090574047128207887378918177100777316020739747452559019752340851782575909030405567926931438270894371485410575132439421976733941996577635542657269076413664895845520197684926478009730013935620109057183506259778275233692187795808165356736016909874828446813408064151685026568545574902204419966221718012932405890614822747069950657797043593997535607594834555218713036263752001151114848213715198418255330899394681605922724059262278530643695454438129416634761298663817894048426203364463815927224882806806733331163072709638473021526981018567533088397281021722606446255187393540350467475367155524726097263981143249852390636305993713473490683557185350848912264410635182668899179186694388616471655745123277653849740377285612852418658416116758208391058446620617886518466703526406841949077208940884142569171782039054913532386215886787372817385177358880524311403106506454154293758140062654817214597393218824785531083457268307874617239419172185922837331576200023827157438080834549242868948479999198685001154451726829521566705507269864735019266082541497460291741121423250460035117664595430087026048000880594259205647450828024419380523537937217939867044110791584483745520355845783113351273807492972410540796300315781297847510339919469422090237175722568858544056053569863623281017128568228191935530903448137033381010272345808024309870839956252393999199074679833486783198075484772333456553070365035031139625169240703411474599474529637791491041671122785304093077273291437335897302929300181288593562307366452433483279259376678800630798041555183823121639798939772100492836520288916135036910785095134081290141429319140268628212186218323392673531671892811452836628073931990558793046624234002712918075202509716239300336851164198466154210452422599183443451563965051791467838855706761111584302550115660168091426369573935720947274088679029328980809670558126351578194009386754268270130566509309721004140358896057956398886108406258597532407450200670633415679382114593281771052730970928001595294660148214911032713283494581983074515914839229563819927525014796656366122956874770624671565370748125969989387541064798011242248538053314758636104814961660913818587373582318006069424898844448169934591163879730535898936557221989459919095802145690716857443818369631003126959312588665462065056638620238647189891575963733439251503275067613903492705735024816235774810212039985296005451949070097071829695488080940610230095531745055554254075442229070875018170649735192566589055913212272792220996496629429885048467777610719698119310809334461347247343006555811240075308475961344238592152765134607052712732804776846627735725328283459102169607791850987051152933069277328799719067727230990500724978423148138223998967910217499882716655867858769379013283760137516592394912273494115350338773557366881680250119424355618798953807113040187977385500565464384636504380620697809808970180424592962582091266111892083434880002592254606082630415860336750130536565810454635162969015048934203960466356404276376110912410792188190885566681820891225205418681311875577080833340653984296791762024548047390313323635222145542840873218157051737376506413154900383044757173814268983393798758223552115428280885857438561102428016180851518229722424304942688407303575875489459769768343193030109562050530524933373271994377690250535774752120855326647273453573798276357059863721230616155983033889604247246156107663194678033030072234662839953247511590287953552731034833237682786454459834470789311071082545304274636454507241575513938646889083664478775531305936076318973886110038663909737335027757475343504360957936851312565144194255608686725208391082515877549361092022386360214052275345039943653998542413084546071739247016753775444306101995308751116888264637045872841075025466226689778362799180707293683686778222818816151945639130327821658426856368674983698808989620004129440010477559303474431265369176004549307954112580019884936286101932787497294239700573088818237797916535217023717614991222185064223528104959008381997073278348715941152315834937665300845034148065907819306589649047895253633318410101588085164607890995705673191546421721053204548131539175349017120509710154007328696743100319192680150072468085653701621537068733803182780372460389737720071338002925601911636610370270451108911305164761769838559745064330441366886025895839592969267091948685525723431476410441454799316981833063739364868774356998680730448528362728351782025572283224348534071493933152780693135818011820028950939277948250938708525639590076005055534389179942917429041618614974890416084767989839262565662732469910462819958302234464513259415672996855990951368326410902282746978651891495255883711841396494544652677853485980766461524514267334111581601060832373679036412647961896437207296070487696393344987294146687671774522545311240383053728414882659753507374481112808947600541671502129411128527116542637670474452434791526323288844199976651028245927755745873585084429634507207333394430188436601534944918155362486277363963856827702502453800429179181308546501729934584313952888321845263469121690667309106407126473781213515095235547212497432850840727533095989681651235117141000901067929062548915680180978113030960761291708030171931863147774003680178106089004262841416709496725683806616200636952289525457672686318800774546955734424207178343090352800627404570581504632449189460248949250911716614157972413595764656575080800247786386713909227259374949864994904035789871958808468400595485453661290936774576494484963739467037635924692235070593345250147449280531775776884416516527686869913567802527644777488227218496696520001937749312017009457893412639519390490424188921427121906381423409740878341935404024478286212526193908970070014297996004991488859365817271672393487186672946008036531808434426788437886075912471380655447095962186553939905903738353632781896795175881029214254633687457481415418114097161287758559622554955263221392552747885525589616730730866298342510188756064543287877402646865299996151962416276032421305486354318814776171327667234540843212442660950813123471513844364245845400693360876437384779727825048066975106854402530127568553609073785433344491892358438687424946395480711441068749848384704875165737030714300565410313574196261835258814387936563765598139972852851767691694445726224353680753194471498009197196635242022300363111751353342949673418450108481778270215128314182651061779509718355963520655959193940145569545207573889710576372433005701918492949216956854961294917381318899997741462928768724754741895595562413505459181296419851181012926780396035162153611765632112353637031643431639823125886754200500380433440126354978123023501406240811104257830857764024360423994744063638756729111089879829017445749267091285022932916698468388561290747016810441688105005096193239580060404909088561660431545155335315724593213250926650000267385757581263472041773095866123045277564280749907234878142247565100872809175625896225243948586012166699205919405236540329528042279080638915442050036417465295503315747571546196805066001806877175530920386295335613896838778095824243777392301488038480030918365988300767151355963538097950019388150727848362079099904051254441340423335069762866602659638018049072695835647626702973017920591460655213414940034000585420682150378013331825754653716110751567056209503944732329979407709808823668366673053936213813913803431251821368190230545086783700936306928114301337921070189175222133123353339869640880927604038065186815378199881748985852133728437949300767784496007458158501436057999256849809480458475215798803266292387094592204476418390146164694845530082220768775003561241004150115235072244293031974021855031658437286335399289852836944454317358535847921529647634632281104957913984473466385013980964336353411018177490366720267981845474253315547374550522740363393646904707036184752365967012384639019896779244913872411700081663931464216145382192659646908184258322421243522692376881337591672582862568750162900561562938362621542809249247090042475222297041891164870425044947748457872080544811051412369907681089668945943762267663130142624602812642673083590745633304294261169216250011286243351150256778123198871429304161595640412474686477070776167813150383553312140334586793567321991654818416201865887654893307048143708416200601755605746367651026467411897925545113763222234400014608586084253784556057844034119534715989335751916989563552791952590476167615685890698546733906963820065801882937613625377969051985723395717332041672362026682138295510496841102530692486291565558492675729612825330576659517710082237397132367104024484725117715326141801882770536642839254933655788334315192272342382530934301905568781266759774300478829761348902861821266899394938340714799584732645577314283171530283080472650711796050864574452513127419883366319607302083262875212564519366233146995035965056624896129684969119850482765545444922157553466409537229949272237765269959729770442703780099707526896524752358482145766944310950948735382968572983500383275813582743593480848791824879851424635118026861081924202800192019902666465745232058501588222326314389647952325636562753236246414290687959553473054024960872773031425151260684365416903433806381961771422920530274518106735037114129767576505269772326643062414780240318914327717768318095703513053324588076763126885668200482676136725803236565155593795597355814933897739939625772390746140983479462665405989517459716831901536360250079588960277463726429685979509102234662613715715089726470176074389051913743863669645195438815402311866134475102278258323971276845030085254548305155225386391403581363132627640435989378067599435656521957834031863834870910799782135876502007966268107794723341666742908206397787789658854498841738449150152062085168687522257605577087855101739314666226856892707719512798874969101725004290439040514966340435257615485854741966076378502469018156549149487371544732379061978472182183150734646069711115937279695759608756809520547480054046784626198217688354897547947687516073434162559441702058170887666796264606548773921471149385953081435567826336283696358831383632559693856910532257264670577274694791842663502898644801627980391723688778605526327429790027334975640717546406471226326002435228661438070257690439280906846164721814520329620190604808482461820395472506868603405492479044470097378885632971077112396722271270611441884535210465725261838651854990698718927891716791789275604913453469628545555050454828111149226923633564217110528958926741127600673173075541884158486091195035345352927590379095423723894486655349692003229505309043128900266679930554413677668187406773564785320914646509997955057908382578463042464012365646732916108340652482139116877726896257941049881936986147945076707448600325536053474345061704819186607142446744434182877698766054753035181180421526447935053249172256659387372324888365614529802185391558639376985029060346663676338280194735093579045537098766546850763822818964725412369982596174654061762761516785075050109522992066311254482193479229372268980607704527261904368101262456653055593545812445936097100693578979726693922057882833435097180990739122544408545919231196811330421179189223094450605701639888711372000710047836947370231991350160251634312136266667847224996742092278966127603004249532846144761770551870070643262386913805605825608273536853533931807432508974267700046194921342828588161618794667191941625322347242341453703237810170263559153247540149800467451662979025471760647260001380732284199987253235899914538344818079999341753911999310648162244269117347548882191626136921024025366705881577519090067064278072886654594822615363648581963301503533627062618715435799271683585523955511072504776098139905294840298877615326989934946510057718179208422838528367525133819553105128131096232060615201694453125684687575902768822969875231124282157830214748038862124436011895719056288364543101786121024896884401135977407164913115035308754198473602874247339221592926556198824409336640469250284084283034472654590102721378052319629251071590100595736128156266669755180594383541998722385354875699022698504759999044401308880767593633522454291427044878661210163336206565140308987014689660211959285292150466275885410415465440122564617732022341460525924265775881583360035485885691039894056883188817823705218319711455856284023953025044809112840609978271639528887270825302181410241022180799940087116048907272889019966620529210477494009556871531237592692619157684140450732197517719053447974912134723847480870405259690018443039584778216430424379453742635160629270145497622992555003811704551698763590523363957072152215627981204666263168681761381699400269263370754895550504858862407563984929020720082601826632123643735579060944441869963844640347954322869824955576561119747558708121458540590940201578995851284122677851397294322628684980708987862030222325894379473239026184400576192862144686344876763580597109410347171553559046911847253820496508824564004370385570986982162788550888306098779061516112467183839728953149872170658576018315843294390803983273215300347795698314975493423604897169402769469275847577522053934225247012211707278524950808676485007417183252786971713980944940982771749117534361647523429381738149102373922288648984181535264303855538564322049960879107230646550750421079821972233544616732239854317748094513313024393404928175218991825123906006552526691303734282608832782525255893315738646724016067573717558952697646845990794836888148022041399117583009788128088888045561334027749624053780249014707584505077301121889318013221247362735966435557844428486772771291319687103138113862205324615974063625583423451316917208964828738608716226193534670858107784728037955662478915508187255483252602629535502338078246855755690186207161127604193810477908385039886208576629637612904993631141713374973011053622069083875883946508547881286463814820135681525591842567173484209151548631742572595995574752708126145771975277961218324942500036470820454463992410217689469393310414819839284598176189739281116702379174256545410468089484340121893013974742574255061932251168158650725044372017611625125468935038391462131024487483959675464202611142154607270221199969101709083449684981018456185096447394629053777861421574933305399009177678885487949139795002717062868311585048512660762777795208107520839059549345538913000735108092927582830916136628278654842703711317656183934874464640885292114730064943597899811121547166918181908547359754242883229285708564786250179409370944015645154570710332177418502177651146542450460754796937209705035048781803413818055227316309741794736743167117208189956296563763919712136857470239076107753676533890923056991812800616565700761184743964302686291949595046779621983362153160723122862675835336689761633006701900600870137589939689529915368845413067450777450546427446767515713296158695333115852048882521586139713988121281306133193435412382476376400509967561656898576246097165057127005069721008769335994740277778104507378834823884443917785294286619023218742759113734439472403415886888436962554141051984024482616399715729389282325501990921886374764285844090217329013806111345219806130261365722601045254650879940654792533611290877410049127072690801067160962465527424890484831648846977267926449811149107689869351783042499935964397181348983979533063440730722249458443021515653991571802130147432855302478175380667932779454011798264476157682356798345080708259309169960969601026331110049486069694600185008047489122797269353819223994140484974154848747193063039319404810073860894668545508742940518666791734735354255371850063047767632979380896324222615558395429116309470545271603063678333840497148603290693043592430319813025544430029891024991806265217315009627225006386336902630512321222328305490644871886512564861398833115893179511743098964848392646380596204496000467575773941714417365514848425076599981881832527248310855208543588193551401796514337138327669489518846268374910927547771602814217467067773798347665585919298568126254893093266454654491256472328019755623071846708996711140411239681143254455835300656263805100555899766051989484647198175280901743718879048738151403538704648627017729768528153729120922340218068477241376729716846001258925531389319731440283835398859209145546327203864286487519528806538738658623350009557700358136076218576442852595938463281566474871005737250309872474186795511797062403346484219202448466132675872537397018578218368433839490327533194782969585468906714519313202796212307174348027265382558427573418484057095249750292537807455271628595065233997430611406014962505342708227332904414283313778579006337138709611978409500145503959059346043955193812638287049202439052042289676019645793857794342262946736535575283769179232139853508325854875457529857132931073264272806978034212231517648828971609206632664686534676445831083865292771273905721031390173384905840884732391856998471523552874594359405575326308349900508796531316129228254855293084444828513907661031295655626659889605617521072442600530561279004109362320550938026564348320886141190534032814318462489713473000119079904792894637743899591632363514087149095954711017218837512820400524695356725952383908934762817576824704844462350830357679299586805104688100327279103277096958033770652015359504878433809308887579440935688879868338184657679766964540757615438628048858956059598860983731879723555959054986209311351597235917822980325626100698081308108442954657948135022891559083020092590526038276837258528600358197218608105851826974703874883275210208207560240229069664793260106883324318306681652743831410482266369798921923930813595308924979154991483635738417632420794093707140637563449288761794968457729699524286560725017887282373139174761802414474886629334800388490919224326810811534354694598241446955465105256780378726951757178638290424745007796015183904988055455846171687707907207706508053202561116012857541871593203856698385021406052030391699212148204019619821585131422140790786311498943464787689908188925063628555131397771347760626361385575941406583152068256492711185562693420279580050049016413395603766412188655092681682691415598576631783863491290370220201438023906133671782185251631472999351613656344391454407538591189762192162571785081729004222510269330358934204076721805673349802932521457514936935354683702371460022466274780725674450127191716549373244095606117485724804800145249934292382436971204888100238549878666804566958629175760205650170461542701107754511970038308466127693467028552698987248035522917683070620323427460032058702321536942540060045045784512130634569939993100434548456084636519438722649950939971072781634011383622354533837764749048408052977374159863575952036086650549085638738937003219804527056724925082928063245315990143124241402157424573461854212829602948670224632890204487151643345757368041956825467167205692475700648512081736167766141221924537589703769427614021308179338380251286755672840718750796939540606694004994098129819625107424242724098808052145409343317349567938538753193996579120759879110388431325180220096785459528847132061221005017386314272009688541168732963443162301316000657771316136396008505389629822591131664015107111415067576572353005015474699418032711572180560098085733487257147437754943835120370998034222443111318742175040168474237198080511384821033326182591561728684762164496631009948739328943121738094061509017004924580794257651189354545084132367963782899737407940004538591477185413867209858088563214674669768614063486830429218376003260917619832076858217164987947881399148832210713986925561556694993279047753805653462201932961847898462497610013417426969652892342339981747775742941376266462582372557774098378816725911609557762207823209825372420914454617711610097192843417159660835903120082484977038879356439944677061698028468375907547172885382820262951884884300126068367771605480880199594143937521526399204303008591308486141883980428134432859253991741613280938828667650772730515577907269259363787469874526318505803663586834308121085803484680356491569785404303357239098074271227166781780187466406948283972578431988382426156678321751486055625238363741397918587643914843288793481496454314596378294583378522137408679423930572298906774759052468144868015600175463389881514189109745320115685038478117850640416461476579678601453797157296066975417219214003098888970827322340513689830527395220653204015364439808701350806240554818052502008754358671163306398320633233294682821606790978491181185158329586509560505446533413362183535665110944235521394320932110754747207062666050729987961348020858962071220403603094917542508900013766561511645175100391436120757439462926966225851373857884369304410424950646714084890925517894009992590444752276918950399174249994050061842313444131413674781510917042782715118853322064397963543732400728097037839556446596245096127377238775942069044823255473172728969220749547940582883910152070383399713257685926327223249039470170644111142221975108874566671369417890062624626835843940356697460398578236354068384392477339530974557531772703131352752464407598515569178459981356197218559001326116585398343734821740477858142587642805966259575127264492337229982888266677234815184590524380449808142309744317441751266042189124137887212071157817472231484757891810347559901715507257045202325998333383410934246111229699695150835237001621470044672467463507366607509183406197436908218015672332219771406957156359554589729724980440604800608207450316257100223991212570181593429574938795931197149668062165805582677636346565890760100520985439765585170069254403950439274816587416860939457083370764953279621589840388388473433912811322140127070719365458787974920604179354517961290226943415156357304462363616027196683520963598535893282803714039184692630100684884702841895201716526821737367241459618110106747903989241939581235108597856340379184954392476829902230363504486646396401870854235014887842797635366932216773880456694252387783074177683239143345686791295585040009547378568216093824727395031876454851983676823869420141355034633050209993561713901221212844940810326535845254312200395623960418588446175077319956465259595153535310969913802042379851874713146604674634579889579553946637301078780250783774220166955421488091958657788525219282798335693141288333118045520602755640282432430365010867190218974420243745880528322920491860723483622577650092461492996817694324184504951031858256069254292575066089841696449488613312221108278382706583912495026478537389724770668466592885149374096793526132193138299343337112514240376323973603764490467696544173069906374962335576442196215697477496057488446303098172678100658778200319866746865690447929752523871362727386174991557229868843050428953236665019651024928560285566746345486248217284965788934002314338131398934354534497370919979199674229714471764471540118380869912590974826295869702614896932835928815115338514778892760772509142192620181305735266368963256358555008212023533888614590895722226581121689174053858952038091393944685472029397840612112345876679398394484801716497912363454605767201757944860657187021548861356659159559575360965171487548468369286760438893777147319087865903142473420162871106543712638708610159096570329484073572609352567548051825551430663997458682389528971036953841846826032316502044566651413973142623128183479285327579405885181794802248304157348039016663599496018187486025336954363201243547482008638825796478616486969818117759443758649705259959223592777799578807756510834645139567764730564042741634946815739360273365596859926213104299550401418919530374997585378141509464294595995300679760208308592276549379502059924349335641221873010430712599095367478215841353641727971010047465287849831303965077043537351555618245004727342600506864402628575213978941875624785578631729124070430068869638020431281332989525220975409720260126605793210083746550579324298548309057544484273641312398549091647920310393894916237221135274942801699005699153157232539804907650837526351127933328518935936249273652858838648528443565261976043905818288653475747637459275923436690250317090571987325001465054589684078202283117167400361193857417534195968379801304396246627805306061261597814506473106555611804225013628907091610982920532982049984136430240237122449114125493060086800905115654946799078520002353608923975990958234945454550799223948643015379714218673082730064545062278831285422001272292290577420526221415046037995463908360816242646416880453927284279068034403054418072309958040656134392525552201412345493347250661536052406461806586176519368509556577281621143626161708236976939053078072067130424708837394836363882754635340637800102317278793591194100583609735787191473052887853985652149204751799079106731401557032499152409513124126053990361578352020181452074483330075020299573368051652728441035133447185246608102958258263581743296748583239584864697099816909321662870649018268137886485871785604014700506336719202514195256504451906965817577594369685089844831307603478656516248848756432839499177143907711797546439951687781063298426370618517056709019877251098546649109845250615839066973975920474855058716863274595117356208406445522559210621341988863837620635935783541550017778582078017062809467676462490755669953360469590546291837374576236688742335949288576915101222003726863538530569281121336923661870241597844549930410954552816298212188184207729269683240355614154294652009363903512214949238488043075476429505481575018042270882151133268968424971342704238998816322774894568360069195901732342209572605324165103061915704908032118118911389601542069421161928495546430738168675413462459158887060254077231673504435696305370336007100195359042732283867927673390876584315004968823145530743578922229733576463238643263018083329095635614228776095610155883873900754415839508084405559341007415198163944611514333404470055366963473310874010847709451676956732832287607270495147012965598323860433737313013659881757122344849881012927991949770233765450781323819994913870525915671440198503315800671360742944329202046985897107263729648226268363356386911770026043119714191988409117697059810624878069523557428290883541379855326363288686487460593383780401424747301093308178657431926828229918331318390243120332732902249726921956542174404923337847022117086486201016057159640061330381380020176343964509947467905775587774320683103678183383655886344348922543802277571504685999940971986252378598784924634551358377707263926837391338699385699248687532016116261449017825168900252595753900062990233702748593039841033905205476859050223678830716542943168417731732508163561630925271099279326836332884759934820346752335825049576096055786245801007208519933727196530109655600362586435076610295462079304454936212792183344961834617142471913818365629170533717913515748148822832764214450788482854835499308979437899375807694026092417999587962008840167667391301836711063642552996667122646931849210833075064196704946100274259027770110588977298653064928293669208065586534570672173041081835700121193260485888217472826272066113666145208237114124144385695739495020518261692106780881898635362020360274967317149943785520503638999765688168015457513488033247565782033517866567891461096445855106415759352474022628411807982857693581919249659639238804273598185210274761636445560556482004590486606349156169548613266974065089826158837495748825472956051286733404330624294793141893228356954736368781668080693715393035053633601270578382999858859657392751472181427836056527196425989273303545588655214317913652829960166770685927240139262276702489590097206371098211132681778360597465083576431245001891099786438582615417026401251121320036676972786437408151484249717659731705249532607034774923402102930651136411753403982106952786274749652898171409007258311671383532272555711914870361241045690886708419924584705745631523218788129396155347929427138701322439944573792190994718227755503767268816135612712059031417298715481466370697262650492256691098785158109259832194831495277241877193225040757820631659133783723273984489304896902168010753747811560417029432828559485532833564740426078871626243256347901836566623111283929471842548917303517452269922647143964851166132138503955928903839326505983356381309738976050971415288147330590316063148112553631835914709636282371526871765833422580906811608082071274554815126947372375618139849287102299382058795543904733024147626183679949891708802055239420964945028782430049277761811160429960230401050367351778147505237617904430004209348147692786311424518782972556646538391651659109197770214687180610053719714978266778548735338558734164373366226620573835852053339480179662082453870002257185013604290201638091687120594644778647536192749746862352270065471851273392022423310415917654928096162928250254203133676832143582534349206644010131317054492409904831374741097268017784063509270213686835870776015312955631395449182543546151982262205633566517945875331500352845244310249132435639603874321128187304614914087070559362973571109621846450484781765548925257154839815399902614542529982259104977590374079601756809052717584131116173497003458084786480392191494858256401355204320480747898330876753499435009475241123027989566469297810440203457097027141229520797153420775342977819760297018370803104349140441956236510732499092405946742169124368073028402122743862701272839973976898517945253571207715247669975484448056163183065730840819275032098513979393663805909674433863383852704851209404943706642822576917394075243846482716539115701084235731432147914728924141552499734256222283154813662926168352281606331482779619959508953205191208069473198942052616157877328975022474617617394615446802173430888265179509573545596196185985301005066506394902577379873631152341004121071370522133881649353298868523318455613591964430599045263628369032956722321008177437496630385821153875282535140825050006325862434188657290931711651492222269243159939430684365154537778516719165183842440543918555530914499622928954131460188054941227393755743022920259306581373040237944272156142647561202867881062441869001785791168749772716288202155722135473358954437360085935610920041653266245908284047770976075822062846762071800779241015111758705659460445020319318654325800095640069421727369801654421954425891725670756410710380930296595690013450979693265199794740039933366325379575637399702535224100196129952901690026098502570473282745251160692960214937096125051850816824294893309888584308072160653635173525959666361213106127754852573744422870867463373079003808597044051876854430851438539078703691879270096374594233999638054181882360430409622044089770976281928777361728150159934950627355297733232434250720113624704362520933955604855733658875587612437560530665582591929345129235693664629901412926002294580713996241180327740369379600145331832440650991028750077756785948288429135966712112257930919971831786145975137718695662458470078461374293043563515593854866493382177773180888424756386806009432331713617504484894371179683680701580216625822804348341600210449390765817330220621815803470970182892443671603914024541546839586722706753661595057305454278917997679079623395533927634593535288539661683859078580476591600362596652716901031448556106624347007793755802243011037310968884723500977224590868693237614052771793786410422897910583760283871258768389067847590654362763659106414977189292846092706679323371715599586274661433034529632043435879936940226005381191106963270731480263425303311103978984208207690497354301790727997110749716352634903901170688427996507740415592850299427166950193012214862013545420011618487591670620445811861167691895150758613405776973567787787040294105139637111162773693752109287351807061100073906134334710189496589398239589869858186185702607646017013786092842725808948569299027517106113280678372106884256856699147858450547347927391484754720434717778044045586694225409916194078747766491650250928296129020775379664568211787157203864782819508233105473886394977730401493889124457111714607091025374953381988179345221757181502947712200911678677015938080013635569174745092160287386017568335043474927795506914005689863580306532913479297555871844286464834324458298250860412786081258706062512478346987123879474768643346154175792424684089982018270069931351521592215946709700936128424835238934609307541985792114633497568076647201708933918924619650596345142296219099335901687139999379272542954537726383637766095709016492148560367951507841434612606678544219348705155179597944669673421671694932311008818487636124099427570868058799901993730186641581306336435581926154151884869455046440408862949709659039400901191539178716222058060747367416001940255261805414954850517707861362390671488813008104300452952308090011064117554516852649989529355865015916314694648960017462632262762242314565458782266810691788878034771982332950343874081657754004708885304868899248997205333827423760486422188882182250294676405034888989331004807198476200306585270225361528985359487845622529803655921535090803624797840993419529264088326664222831077795222994086235606840534580381587347434219196792907390458232499514808760817194917606344668885141730478089506671292024847530613094314602974110630708318377297378254270734535737587994731535721938327724784380640520401315179470743327120794993768101887370709157666131818595492353425788380694649462379856563889984378475975413541759896566449699061204181828115928709734301247348426191323152783241061041500793649039249855752771474198216274813169756367409597164294411625007463749353268802441226089651352239132638724268992672042884282406012232153573120324537362392647464961632727034596933148948195338417630212839289519632749951012130012015420743924747168203456816261894927739866731206692278187545615126421718436505802923320990213201041582838082054567488829690215137013209491221147827027118828856375566287318055327034920154863937289866576138898067064178650166697482957734950906608936499086161414758082928851549623993612093142920165147375738345722854593298267343760406324533026455008240221813578932522691392687121100166504909215606714481000569464766729868197236704918370479098590980090797570578235269724651165132951931445749307248660934113097045639162647158244093460326065011043397530857383898063984069112286679373607758705777712624527969484451755662000398443528082682357121940094604273701131671275047892191289552363725795839219506532527457360453000904792331714354222324535445328504645054567574877215781194787093497669571113443281574976465077248276740384782843022332336246391551688672173615569988051643953362920516455538453731398244071048342939880855254292535764129967175426286406987882574489783797460606721873618517752936385804537625535919853095608649616991028069168793320357486456380810690764518292432750020304161367372693123859308955283959966934731523169170403117055140009868744783877760518908570295719214070514673196943150642150620093232654877326811927182935625528907292900797607032115307764445447955381700129457736449445345153795304319943737770167077139613055778848566502235187714853593281716013595338078666756219197558846491025202964130124221143066848976271766465550966115028070567998973471824040631197824132274664766338579558944325498104420599221717930334682473145816590681992734984900886011076695163690203911621358111689461881453694872232278005879465558244538146332763082405788423416514444572817233237342299130957337067639292843147545624745788178160487466351425167509693763894447227865158581435990785873567217100070734327264531775832382662147107665907295753920756221812699149767300252844605714243738776833757748879551782963786931012234826734236906470882725180359541317971368165052807341831276911577058736138184792974076734445626928990197531016414655697781800172504804282375568123485383556956511163913929788102493178731897933968754818589758222072278819191855697190980792261045131313031741367886591874381728557931616361761012944389396098019784411656257637819768812421677670914244805836639974120922022700469772281015704810703165206264819804157292468783694595165441912529152415453267997355401073358060202919352387836950044347095837464408634574418523385683516150617131063229814547719772164942805382554345408373603593122103203727248713667714362232976146288269499486809604401196663676556547765079818636822434075780650208449504375940599218112749721403442558469326721186267668696006969237107271314204012917121544153872794238615149304603561001960472077001860306547198567243752275611476662118269873460415754399303944200362926564715843863354079913657491284740906416435186079814801417821728350555955031802605587711079314983327447942295195982521436698445261226929226050844695436201198502141115210779774760408793970370679285595196456195107889587968215992082276321791471859309782185787241136834862098295903771216562264391307089177309415165531860318297027480306901053885855642724102264022980240816768513375141392805700957182780038277148980671641890881852162310957242910575528456166028159188820834926722484393197516298475662940350232698248970584181986528386671463418139198088929173398572412525985664652056449091436057530788613552043802755319004343058677418681057792071419280452453253983321524272836984452409919290456873083709761401420681186077089070765321000732136395579498199417469898668995703630514215252950937496697313093873715921245332869783085816461606537603369561566854922801388542161597250977643703913997723274524741709636580405244367408409008577378678198071973885585299751749011920175237561948157013590543729909249967587942201234508455495572083247128905289837418569283026397389439735190863544412280868448724152960879172835496906591864505716444320411417104774999480481504661224329700576768404024403459728144543024976237723278461946276112035853481185010718912192730147042164563836395924306834185652899669807059247275455903916623710538661812473073524501563048024861964945681273696287724681197087110477854491414803416916416558574368491101279620588000180371349534520495311147485467817738323295662682393770139294742368987698097522676416990260716911535902644072270581901628880863976860265464613730434593554969326230536137790676854063635752090016035013542638839538578814092852675775541176219180723567305131730956942981235894258310616449147702081959736809949406805607982759239129992509152651126965763178549862581545238011261532377830090799189443431871356310058142485968356125071660742903953626149154923308982637808738860671259495637175090510114655509471885180747289900531615073355920337840320516219470469573528589863234203000499814549478087231162229394642320719486193332229108382797060679204542225887809166721007624872883377691432639184966379704720855297881517984919320418172687425693368279868949623860199308675461216167567730683327946317483468889069147966462272862135239866872307297014472572896387573561301952495079246172506581341144058490339325926998162069314830212939695981141069386071104063663766935184351457069369620443188657751821147091933510384918855588218807689143594991805274935582966010033316944944081172916743447337309618716317777212578108159955659021346538477234605142399453063649617866759534014556447250693712588077304991752594255884072583803487548452146379619470392019873828730166162435597441536022904028671309773266824573692397428768628684058609859767198895915666885326259002505728509893161764823291242948670516053351227768734911184534411188753154893661029299008590455908637745583614680069845886241853292666463691544098611527665024218773014389109668327416160754903708551251940167984451484566865436151058426019705119651036327367120614046752938797329297729860690186453729927220265135921821606949306714641049101164740115403336954999581586847810010312534279655705604334252963000417734310840562631467520573604034646833345864662656866435089873378965757777812385852840957784233083303104098678936543114833406512849453378740593069876527191910434026075615588828233153317130177625685552678141504399571881202111255816868638137264308922135661527266278865927693917377787758132419497934263493228343680104129728446715451226940415468162408016125045593184359130535841520706861755990557199016955242524407627571050763677262626148637412523280548080931773843206539156527804341717380515584706998455426940679926718829361970793476413309089089468648456769403814213929887936270030604838613315430353796674462578987865634293501357934053325254811172109368301797891903047896761332142945821610793146831813621888617493978375661737679757891745266911394573043611950568298802626671197740962834276245121228797534411407110842429398314502801895276432354374675741488673722496805665892437618745699579142395956123219620495502018771823666846380596365646031547904972324539233729408452593402940364080479863654039717075195600404433642479277122040968939797337424788042006512788099428336986866014809438124827165214427259348750331988006031418645371170818691325825693834689079932884636354527570688643158474747892041963225818341549768804320774766652146982145243802959468645877212587566126809766769892530102344854873544934117580330358666665294143350955950829026757797316219392120217604036506836295096405969770691387671941567236014392075460537659892650794039527292635571111996142599566025120295347842000081999234012371616335734932249924607004850117776484968157041538941287303441985617707881211451542424129670769975501025859213859855341946820748593537667260402378698427905288362428984786185903226342032257784221281718732887943569122253168031548014986434918909359776038931259033128882169501709614658345802002521003820387736945198904991724911788918874727444536693632735145977554939680405550727533208602342718623576135410869789435122792625778465808599681655797821047599415364339072722305552689974122717422713705521263322715431188141709136229931159658249920205802547226805058867359605278686115679076255789381543406013965152916010381186917235823895641064907231899268064995994586060265351636494229351605952899374801559045740462089854341304663729257694098479008182919851344455155307348478486602751771939078921725205719223522907783694301829888604047474795288153955890905725685392607756359164943777020767380834492475403509344746733109022776838752138863500943958908920759309866437100597830796889607519362430885462092576364299503360170123085041136439987989702583019843197912319991854399783723671189790360833722769718643840489931723944772289212116769513559249468321499062976870182294082941162224399394799256364946310947200660317854152877406530754623146671642197654889990887932085404543405481346582467003960550217092188119068780951995574982601675079029626532538963778610974132472554351975694204081466824535078337000549238504585987180979908671611605489708407301829517620319913875665832055747956310632298493361836512798561680493743067808229435561400780357172855028059563942115575258299942323520982521205854787390912331713185355959317629291987733083427232795248804992030710428293494892629911549241570851359242734381363686417524218466717928632550991279569893044744380795927443706613964955357955424370260044125176369923551387441360227472309589296405739845001220293881068692944104490987021607774471128445217017627620814264293936043310132775045990213069189762327728834136311678092581180521419208788265730367308547339479510835537887182861138164720876332645302920859377956747719009737697305308843018526887710431851661456106783882036864075281966559197770003143268495113024876118755224660768250280955265089778175509125081722679350358507144517724603316072114402650460021765458015406142210699080233869108585119541325091836364266155592284537462455717961582183012159093648786601925301963052019647923964090887180171659804241359514755813376161672036410943403144902222984163569660977902231781127462804558014074438293434818588772450585914292915766978059076021671110250759974765386799045444968499149471098552290635954077624351672261086837750395646159151979337150113102464118497103274084167772526312874424083484003598363428247945980731601801135762787709737038190174249451109018549409814004920538202596381729892217908035418099700716706773849519168993570929165470397211512904982242568024981496885377980798244536821294263357929471922960410008310403660953154894309970133039282675609098505975501603729443530662848579685439020947213886708170365312570465486549945280906896684527956909921202673757769749584763461799177387647891806656837135534981528755362517534982251877929397372515084452024077908126315448915195103303336657680838104006536208351353879856893364449395988734927884345912123694169649691690416855569622495340595230306162815585253171301269833900989832228738941068865779131551567655558833896834553029478181330003166666252816550893049583116401430925027285628448305394655112966247395271523384928880993276976800397580613659990771315833674365460267033474763860778570863851952943464629167173738707220539675006758630587354110788539208064793525135539572316819829693157660696167510361399411421921160090491998083136221218985894212718074400903294491977102817657809960442306297178143961315893008849755101005875362934592926399060392914806752523744142003364011443877946439266221852589816198917969652241332604288102484250693990601023002273825970781150072053919127411530177045799242628494193064029242082648798742392625383621143914951633853858595504500556492567197178211256001803757968197441982342878903788746484880284902985116138272818493272901282093479279947351463160969554325052627013952064993819816588503271663860841926301551635962911601691528310163562216166294447705750080646690781158741761856250036560498308828391060212623157621575628856023206724682400571016300935997399706946953889526430103214781882249702961002104039967049865227235620947685630785828761403143910929620377704649161626547424077358533687888266703172022380249407020866166315607350862537783720729206342222292695936067024354916040470585444779646608369154267454095010030873767479590227811061861896070354854053437645217282028357575387026962483059733009282527940594473027554337304574881852978318530984444856615432840123030790637025268597861295399036374733722757632502335534758174478047755053754581852776903272242311484093820193258438586445197429985831272130085437510667769885905693171108398614394314720711931885638434560319241221274426554543193756393585701196992705976897797164953584798790589799447762658186378732669973024223841225750086008758155101441445818529621822609427952982335568632834797627386728626431947882907327764876630875693359564713929777177197805354942832743681701199774281202886970210542955431021440255888597000239073937768685326255629322129883634771014463237293821498033303517117465487566589631348038873635322726482621983762081215448461556104285843228741874213134883727132948217133387237365377428930086481868876217303025249879325737442409974801185072710758261337777636686477925245715605708487256883984458842206369462322503096068038997608318463823174076259308517417143150110521100380919853930094792776472667322457988271595717713531171036066883065171801736238469606421638483296800437728772108170031196188051308829114071497601017021825451687919545638333823845936731780023818180897724403712458204822903666214187473228387217560104376699491538232240625968616856792661068683445339627011681986237263241061062866149890600649003901159690077652369528069911039128004076178066240355843952950971031973764285913206401831045941085856519343358602078538829956395346183641151609091447955423718557655945947216969963386175189828608988788365769574764507738323394609872837925908894699738530421200900308746919242434280832908398892780494106291979636662627703723991644832458886977900852525443740837956227344453269057502314969522556163765705502804956793934377354593303987380243274107847381071098846992538571679850135182024957743308491478563178923258315985124076916742191848498172366190839838062936117762484135457650531875610209719543898009966053277710876048519684295677796771674708068346390286559584530176948456832198557566362578923976072309967433687662572108673537847020953010662377567981056363892022486069626172548033167068059733382869135489691747074467902261433626498697487534025515612287103847510797465352596945298418138124772018645685674987041491155326245065806900390430339740932235963484909033310851175446062629464541123286661690602330416013226924243712988164341567086005704830626063972058673872366635497021088768304854201638354709178070167697710415970725958321744941522017392587513715919812859230483690133100435703819757657417116041633626661950288764205933308720987125599833333566266695433502097955763502623087660712215788844377752651038713538237340832205991274227699234198891793966338402617033703139038216245219317638651974456381116904760518326524948212848607135440580364670370520222384775425161953062645238401795991881931628420127654876178679602808177885516545265098417469995802866616664465464471803748415135632121914865451271979429785604400116606974935696289196656340099432009062180825992510063242177371305454372031479069600973333020192531143074374633013257925285903535969428535918687709617621610932186664849009533470919567274376041605077398049621269101957578918058167611085660929387084224080870793412601443992092306096529576239606019190287474274301784753338701897373813789588125539594381969131511831012031533096865670509911093168297882839921472220213374790190882087645173766574281658372986823331173670726367094767464383479766546999546193528939605923800318482375695025656744098033648860334511783772271732323842702556053876199895251871919798671547367881277802934708523710655421296827437909099126070912404726067118940567735106487980595655531250807545563183173978651725080345539802203844775594957694236227807778404567043050217031827114572105871908041392360319988008400218960207607066863502568530416191995811074206059069799114548374668066749635521602273956226121622514291121261962324051329687963785386550801589100459979906028506578855490445939898049643278629231353992569446143718195151085609995991625887718396218210605086642505355831514217036937615620113028836328635812106205267811711891312829882822663360655361931410932360813085474402323962388451298973074028699822733843752754394768527401899904309234270434851325200625582273494313725099362358248301554671690879272066504696864612394613734227464863740182554773765934493178469746101061521105012537022446208586268521021699698839515424161746955222392658782974104084040058635623548530528556963863576011324776139891159653688738064212112872131264973934203958116382009895785194748819134936686980425677402559801968178030437367563056844083875536197533768220462701785738705543665138708603850282193269781648811003942703111784253566066335431710426488362987547397993273388395685273597002908281053324331811245398333956851076919697116494563372574503974991742388961091169327043357826847185743047667971930509918130860027886037579015378304350871337824874209593317728299788013347010035396053599645622578978441622254771788655271251703882020879764644712951304038369951291927944139368718462061837697194084644105793629437045123690283385526080375717454625422094983289302647266799155841262131539374383959430490235263053157037838788671297880995036790878087897202856007217185060880605787822966730603644681713132564460000624216882151335489103958536237286530760092353277826621996353343398999883143905478063121398902458951812749675006121741057329331860971221274266713934818963940798699177865425989136336931890977575139886556854740716538113661925082058149921345664013628649129789848049276322596221755228078402956748793234167978566135391188369426405341541016302830375558674899342115091096207966967872014101375601098497758671630613683265711079365267648868097931345529405942000139495782030930930728168759392196360225873911816481610068444473830980094029081440945419929274553222076511685225528826066979810782259886261010199433988721937494200134811362926310134502994240030827545422030781788821233966930066473378919976176861866643210037917252824398268798331286764018770606265136751209657342392153139994130764505739521416956161382049184372413096241821199890792844047082235291659281214240889154041241811996020229230406019464107474916908838615907265958841345376766532450439379558788450566040112495271165198745038441792083205336675897282383964024217787927741863008680559382853244908279239093748532525363664909797529635544750385246257309186110686338542444793545157270140885730068793073550472475341435602041200027347643617457334102792427781667626775960873626772295808052040846802051256746053460573892571680945833141652703121733132287062638397758826084590077942208209780452353703424422360971626579117950762869708495742483716134089718371981331767512870365773285161028119685985987900945605727546469136056018619674304987539870286446019018806294065343639745414613348085348613780166529847049934468917615402997726363915348310111613404232354419765260531603683914507679091727999664733124301723024627442377498998234043524034828522898009771285814697894753269169725483971127282319652360796220739989014309892911955147962647006686552958155129333996734750373139792277702525024384189402162943444083567887087742825193364387499504721393278565568910217475864635089314882839976029582047726245157309084325259306145313150674682442960335882162010208170780214190491258629331763461398703438278946214153796663870543496525770377161899622708208367498379382215594542615510031242640251652722227551382344336514224962285342466802979028124090473591892929041887784827151289960497290889339621153403104937602115658903782067515531324635793733072101504606660487277486668665132357463196951310502204830712530854628448214287584190327203598170200179500925473142794674791391125312393979166724380129870519505753511452030283592926054179777752179584573051545125500640234619385471529456140613620202730628126855194495773662733400867171534858969930374162560378028245989630832107733983428484978645467031057990674877785377086822539595693517166375484742708011869742609520469166448727670844941862369973904952042265369980034531158780729391887869004203405962151527582393680897413161513921871155823528758484220031785114465010702600238588245108696987290964126749317868458402669883102816842952778096366415285134610019041349989902870326637829917577511587799918150144945378312308059766513463559572186724705710397987935584302624839038777966120023271241091097448229102303555029227921801226474229193128130520683916175321506101129254813310322024634254784573914212235160518680149980120163643834435024046571633997593683873802183498983826140184148064416263024854316524216993014253507894789514458010245354994993314877406748436252517551955135462463441141916920469508424776244821324030518630579732381169647127992222905588150953243995878887844135124127653464612159732624355861603124573642068427800636580784405331120327852581788481704897150228787021590816734477022103828114109745980626308179025252172954308796776194509163699102487887620316340520043615966957702842611317924974683196072666486601880761956583046190192473652616346447567581620359030332536450514363448545312674892717915643301128242842596040826580086183016464544658125957725772412915517240473897369746884820321741671637284135450102999722368604966452806807423235272637220144390840064189337960600521279138350049788940749206697289239378658461378684319218910112611270785697473136252158822298502024779691281072497503348829300887387444920562417785931613445925171873605819152019697865828698612686495193045394307963428876656289301164515047227481243418762682686123694690372713436760989766564964832054935826520388196530480264793631404575315825912839758906856701180328428898692212128203617914178951851578091558370469712333610881695373377818407684908065726599454742722109769576402132588921341427950295058021592348021549960817258533396158017261473983024691072938299602332210056690778000179925583601567960810121911057754614552101978463521487574016290363902978569477063550889122651433549658336880734575091979292111893014356879114739790627319339847008435025941720833438412137662916806032402014283888723265941279009840865000102778852761670237648747661721321748678698722343983960393828381665476078227712898690913543126032476649682139457317104112901690390571057260960779610362113938247119020218840115371600010949107713039130480510498139095934420566890018180067328641561559831002839618537797885519117414621712301783965051638274647808996588169020575720314341606082263854717851503278557517198835657006124165062624706665736725391834156388718742423096387630516609597350446795732458075584247644046603230516299647097950185283902598012615042158501199302023381162840130012494533551679946340269206920898727415162416278877251053862718198509611497977331758695286391807326469884441360722163664155110457313557197445714337585319072696502469161907333529548631735651090021382559534359658973780322185412845370952610617510027238595528260772412754300490845964871337401825057839949385697180069364551395213810333642832876668303812255747753502098209352305801361758941955807247473255986886043366074224607820871115023109236539835987451351954783939564110213809462739563366225764129933759696130411568457324791772660552356713308764535076930696482876028602040193777086411470711990534449785243505429200276831802310316618122398326000653361058521619877642946805422917589287362572136189327660166757753662724847005065659248458209491249186580747623698474631965757143529155351505347949715087711905373796613125865759754601148595529642484862551280226852073588878133905868066334579214959608060082248508383076218995049058431073757105309541107787529504286451332636324309023653100990798605228137625660567837534442531753683680182103337750622512022576215307311672769381078922722774194695907470283244791504149751530412471851950260066576801326115379544899497372874282409418960731620427871012570816948246277931653203511203245539575038963793139508740427558841901602266914257765568727654497053894726377989413112601520568392388304307036702212824473429960099840661773154628628992874418210664368120522366558525122388803327095617915931878204704576635071850980245071993532448306694233313675923566132329472294984323573302863419240072213554504387640807092145338439653520537676280727168697250407905809890320915608663415128232127293167602756546952362848334331265762798979702237398290555586058847483592950613541141030601987088077147135528953681272329424715885133825707493003979194473759282668793752655889084586199650478601223476790410732342828561867861365594759328574196760428920310503794099230547456085097847089205375565766432045201039128324290136732546349146753784810065703944920414830500505723293171691208609173163877772623488014705558846571972495514348463783323130067456134041619652828356485132958533611017057827018368126193136961380157525220428009207785467225544009259421118698489898179278056202120723807092201671139908933182440382399205982393580061042692547092409837364225078757074010605729778938767923671953470747694467963942808942805450100655146601651852317153581668756321784262341532758391850061845998985779997589268258624085917624159965687334195783553880467833869118847746983607038813651631318439510865289728458316041644136196695078395436695939665620170527291075189087813319449001186086818624643718487082716872598391638216561318171646524335162784702967918124119491966840034944501795308489523391124448521983523455510261199611254676916279837993635384683716295946277977992620375176766046452861791973569824920013038823867041938331357137455767059664548788063223000180536312503460696962150788338417742324688921652279568325035151594702436096525035939355800483124739211103046089443678951240271607804134657793149760921309251619308460686420431832348831259816989677346901658360785934176328171473039720928782077186848153852551578488285031957881354388256915800105103079790262304726338253473907078095651508600992372223064162454798644221489044173408827345144757225675506285965007293433290501623703539276696760277893303012091088606600408958243063777958232425975279802155209980107417305900411283041948402174550335107003974461723594735708363481677682263943800301018330189751633910027923400062419782714152021483199503357629396734667234907748806398409833626827647454093600789050499500603623357983860819493528227849525772084107550658318554202482477559420832962685593466627634784939900363162898871040339982346960748331660856878601833793514590164429008312860078692709857505920715123334178867091360911174884212829262326106497153251416755573792987839824714462212545439201124265676589526216160993454876190553360935271611016703644800936268936668156453343283521984496388290706944575726753787288261039210507904110740630329615517704707082182573032118623659242271658356838944930374672669968043343557995553793438329466553303346574742965136699505368553696737340802409761453532170703593570689022227141069808924544073491771221634907165052460148477747272590155574563361313395746511219685475641542917578441922414388844698214806563147578886133714352520786697612188526723961913083436562009655803311689588275145284057995705027843212988726104170367440218908078003842416874198899813792603612599224138373897226147398886196602155181866003002722092877608239331445157863207665501473260654290673840100290182792515735141757180749330932652778608077119789481370088934617480587549362915565254901038427768783793821123808533086806182417323379552322995076409327632185261334940671780293722677792193040735896788653624506442801459332882892755399583733462815213789148682518625298528108580836627232974317894773632957901260757507810541127035850005718107497576380831031356122141189337937024565988342869178230870689757192116672060248979040493223956621000425641480724574977370429501230717086234811514735613668577932773949392294064040741412824717759105361972300628629355247894583749344203746574932569320092034626863864626382842332837429574242154794158759300935385767333365923687246294109455067134486229473621368064823120997762986210067582896311562314763857031646765169713618875847414411297236331659508355828275683445871032038588077068781232213089158610688662690496573870852182761098992915764286854095346431511940744028012234534277827129355864171076020398827167062719303366712347521014084108724792640216284018680693781564788364014124212558163810546488943095594918751269479708489675871362725900060749923379413582273321252049390930272209685952464979087464493558554649514475072305538359592581143621777239730740441031370128372405830008818331401882370834441123032247804172292773742910174245631680181942716422890608181469873226245546252115270062583624204856283312165792389670580070437468064966464894489965922142869451228183512506014430756454950218677935712706298634953997738366393334839523641687975917349672893443758566057613860698438605395156475400347081273493818213998651602153078263822630815311763176377826743104148533597934553283903422423232708358788397198671589778562520782518240100579154794490233812542513026422546706893120506361366136864539036307832447457815066735457195665942114090187983299343674355271367733465581660653103096763532016191153976705465211319562283923619325047985136815370434577614046413938207095333099205174481733738730751794759776927440538398551437217227907204632342613297779259586928582774001069698739031272294230188080533887089400900176828097873709589260398107142475186366618632255660689850804843303995801979368001715245192521231550084673329211442726755341471123289700755544664525843774900496045572697631635128403589036002819006413433816459841814714354812539703162662393034946574915008510961423438341484414499007665151166848442119109624458431446372305766746232359487585891328588607456326514375141548176651623089823274500368822184871828866434720620184001473780866204833824333830587597203020752656684299165836986359357361789535536330494348395663295864147034147023007489009870031947436569291149591652720235766872114684289755602029703021258147929983024686987783275583098433382174041474946443176822195652645543285143670004607813951151913364876441862884388940783588089294323155995929463592253590265664081797159488547695258939460102958562653576063905952612882548469902485990401903318104024063414517715285693115984740440611895644662035193864182229153281249746171267553082719595634905707162957670267736245336361690533210869303858831502176101554026226607703854375637566408891873404058903203755816392497943230827911825220719553284191286886532861142753728251823831270547449368628845606683469447183602647496311785617261456983935438416963971665388032202492158822241487391213021117182874666516102169915815110503607792496620078242501834958766645252990646228960709586427860932871679486342714056253804508003595897754137575713037816763871483112446610194340963052545708622214041159235108166848761380733032588377436535783042193559890996590399443694598839343796329709298417332395802631372217788397868053257675665986754584038740445119655607815593247289547026749797743493689179450292500038106802545702390809916771314316185718864054133387974951109578463745669879216146027817595598383180321958808391032670615592920106829189290612811358689974991464490075398017471324782161941811906915707686450112620755517194193783729932445600430382494861951529114035514030264263322848433258557824845658234757189506811377561040808858055221090142390241367442508750382619059868617682260982474428018223366703016444175266657891209321702284606735082380901634790209012598673683090583752231210290917404351789262229426505651256402866270016967869460579277142413119639314363236054248554625042157505131829828620914946738996780862922354034793306295939886899971559845576649360750476067727674113805861301061222079843408828490358640789780962321342661237365269612112066341849965779600774038843436565796694884216463545725767157403963265614260411884415809280250248843220817539010686666680290947277137776074491910044519093427099022026938200254559209194231003059948790940054192197660268327023092413073865306137844501987783134782043178665697183036882491567836285794688792399330872705223346586454388616618026032770522287791330305261699857285017794574706097111031914357017000963728696830435009697150096196384347420681685303964209846532573079138207134337294944722413714521175260546323112689712512519709115104754547424218869210075397214338672501831429814899281682723793970968072782722566495418909300152412871803742940510901522613714415906403058447247265893307165984822971993814207735835886240002485421247368616373697361039354989565394614941649059031688359145496834107108073915872783663712337300654962351820403387504247830313855090178154053561664203260046034081650971636764523222846117814972572280974949733903932989524352916527346154041384676071761037450007817285630515901491148694119929515591625941715462868698971454250173456271368943670721968317386077768898865548251642552979525843644417446897922282440521569257340178240526774911954394798444706053073768362922913046617986661771639437815768244882547280219625854217470682351388223113784295824888190833079271591017225374311322547809704907422840401564422327405106286723628379056100149003407464679601027374925888662073192891690296495009664922595904640811055457222170772112034383615905200951037112113209390603432306399853860795228231902597052795505745144355578438159357517389796116745942185371311916418484150138045919002766527365725759617955663280841702801794350712819412948868596052187269209995949238319849478310635525296303536125996187241599183385978684391656434328891601379107967542976539733362932897919480880733197748890060518902902779561479760544143728569660306463584446136286017170013708548056051734516498711818247331801569892225005126125116896038799961902486525370097628810648672886317444757873221023430587280640523478378590225265413711060422577060000252896469097852970744938091452448865343977137450293162396372773773782561221944113139455761451000738069944838978411543763473180305991329277523430809982544892391893689920764270423056307136733398736769426821825653328198939798704389974563475307546556475989507389019883971197114625696795035210945750180479021111252591274043830780692912281660767144524455917897462841387543271620133117907143558751878465974408647735605137161168111230802578338177269990693243448347130320527149374151721735725227520650584164796150199914060249561736888940208364839477559721917505569857389387490329418436866290277265118778619598981851456340487020294157829887427866173546576811706329755049455930895470272793164116046827294244948023675210501472259681622706282868967486564774312952697846768748752675759600139047771698092652083569250597085849832837474824473761277129677304386159916188175654715465721461340326561426671980236033679886424700666881081777218796463668364665494333169870628419740401329913650454424490345416221263472253412618938031270627440962630094747256764172350475838476618167298007987427376696457656579798812358462876742489675393700541430037511723037871943076109162833491174652423803447871109833450542060986412304718608804276957208225369581651201163192598087226732477855490680069969996884896937418134378439561380767386609607675498021183552339808263212794494199007658606333147324380855887952461698259942172486872023221885350743011526852986937846230488165627835411104458560053409445000454364914435118763187499088161590643946832615951972301481686932761471260660934232504003258803679526068901661223968444984862327816929023208599091117910267702898178936453686866150950776695186895578069370122772076206931860973671951858742603694308936187933905127805723952786685854282873068865613435747991260260434123167369367823701832068148725527405557820577746272433265159261334130812212093103754080375846659345543110452167837705353679552508776338310961731537636279423765044380318300043814167869177466142161833418512618518237646694638549834622030460779432147376460489951110483566019787841538806746290962224873087875611522700816225451205663227418964630945455667677915172332431886921795373621923092262309628545656509961228955841295779128252969997666719780950046290379061316955254050936098884588949564238080231497009006981692241054563841925807361215666992333891386722626448372015492476670772394574165622389762728331948720929999795984414562038461276436853777679033027038998358565175067835444088330904190425015316239713699878136954492699357342060564711153906344225525470462790927525949626525244714499595204670234184650422737650727660446927744449001274575592768842380457611021297353233047610089119439970364194503340845843802070362406345137094668805351735059902171603435242121401990240482717275812268410655496279613891397168704224344412722600649787818373841762611719292077957668914951034333421412441192472029677926631289981300706580854868599947911346131316108041531542533308467768403445533537361433503756023780970853968414999343636106659550944799021440455440753858618751436750309210188935445030431881552202035291850261552152521765848509535544865728346795906932020363613977392918446217728919321664426792228113425526482779905286743067364258862481493762872661147052898015952132405630228282745475046811014138210373261844503464339646059709540771897230838808860219395122743161642581944015205432402911381266770631166712946445471260004729567543831155839513227186300153316871567804759691775705333888518584939869731988345143266719644806396838645190463982877765349502200161413805904035873044472945147464636099562230683701660731907595290188687173044758773365251515276695780345985250158595486527614593892797247477270809557220444475193130335364885535903416672728734156574702659372211306914094197682888341442901497829696816234974322293675924359814018929080364354861131926981236937922949344570645579534890729093018624285373090893462501840324351789699495793097371365440928378932209992317143277670999024733806736784078312875029445813828155431114526092594071218721903660514690181723301247898177150777649311310248803206659920855169625297079108114680175437517344664547108180483008799037393524805343793511377882591346759736334571533066246030105009948838894104632408537770823893131924106232906281777580777757420641869684683640499788782992316971332168536552458918139143959772136422440243526795492435101903943554350325464686196926965675505407371395818933290495502025863943625794597283734071363616349543448327318380842855937304324899014200330543195888906156925635338332331397786676594575878096523970624622604121578146732837861717471538286217224069059177140365672018265805739712596192924172021146750816494897065054738905321302670531756053209798843995799110812722949767270109325923241811651171863286412831812930731190534776349156883402629815792813044847719068406977468620418806083140798605062468117951598763293025950251945168147171883587162755211651766751187428888764908930331388384233570992705400565769617220414507612288328057444281127105934531031536117575928612332276925008288985611921481901554874252491709632972113148116244086069747722553235032049662787629504879000338224515300030459331225433675972791618423947165852635426111718104073595676390394854657165640385832539660312085058081539400292291056785398205364789806204892309001640626475328277631310739225379458495207181147895300741484536555954017195933261048471667472665901701413343707246868439575810515790566812434692997398456442659701312672486112561319655768672092544887012118623490541727881647419414181821001690563200218302397832070092343123263136635573397136153556850339872870173526963174536932372588052339468690665609410004231654021899566979790220412407858608695688392120248572408347752074499484926185202499270470162972159391867809474232915530865052364212095296098560788579846932659906908387408715775276793022950963787390990293921331014677906271770335191122268200770581830229289200946993404143320714426282422515725990027875635812624665128201692710335188027472409530314698892567525772961880525785684023775259867234415132818995083865419416581000482412479468597662963860822631722151823468148245041079485194723787113834017466506404883476083731371006685827727945576763277901554033063062161745855548258641363439823418028822433428237611656927970053096697877445556474732127954578469959779003513231011310377892634054971133424015622881159914766699393028358075679273774141335435762992103887122016853976131594848759709162570853225787101221431523267481153050025148762743940874476099295227577398635831423940310822212459397230513191721319934776546321099980902271803670796481470570340633454926540645370463961430927113423193207065582289083459349939892704173301414798064647422493190876389927670709107727601890289564823585234564539340545185558563478045466867615261293024421234460203768194949818068479181109196454492707788931963506333465321814588138560316460821972034592712321490733707769112633841090835396405418783331166397650503453448958177734981043037632059025593354367525411382163997406856211632926146732471774951769538267202541385758276663468140696964310111077384382019654394873201358193403593220008101747849669324259399736469070855794372099586035314134762721550409346598256467966926732885095681119031895911530327518906818480550941785863213811202413283474585943223336418210501689078967371011748129982465645224013505287664661196663331155573004149195836576189654369345338835265333117275221969447568344413946432795954466267689180478336916869082238933524465975154898315743855963690632800770782767602427560755503060613725902517855887674145038867370136317706680203868937283851685254679361380895232200991130879708828056814463811926069772765987368391635491446204416417876857079649588964521488493406124282362981380569430718939877734207437931536381533105633019159098641879952815223320786314878636271716641023056923727670183542441955990585765056287012324809072263553053941266876471276952723937716247711429380160762139444997333076418183144984825839901731578541536364837425925660953521438369868834699188611992237082595923795555664748427312256222511577604319343522993649103504859021733002264273620056287266092510205304163938332535381264071113306593337592387300731696628906075167363686510749590587681516931339183086038683937766781314094312749834871392795940256205223540397645255257455242142475493222306623938682572298898186319237184949249210466206395247570285530453635042795927750086853161277098522302916227094219006372354281229872148693330363999420355193342250857362512310751803753078894100068358318127790282031692782061674520591450652239169296370336277290665959236198610399281706156338523472842742040864497540285263190898396902632389907945695255344708523603434592386289056266211586373626105839665975073188434504907804001362357406208135257392038597788053487350484259611273805331615100244452659316122833694214842375096475907220872823234970741578378461402916118713298408950796340698239182864825436382457952097983923776243322492091762378652438165236662555828028347374582835381686160331576871030142785010096450329348430103220535185754952875936433712725948235011825055553544184800461840191964097169276179623999235617271929580939570217348095052579231546896157536185347971094188759310320700090246845338874586399571453187002481009067125788288614982453541516693950390943225792947734959714588852208432103543860132668433816402909081693893765289441230335622238216142039037858432778975362749989436115558780693136402248501708361695241583420965190085045545035230075076049867005840843640045638418593620335111469697178557395252655334089720587406844634291807680831779650626019669466141034687515988402023208595344044856154515934367260223795344260694598731692703130871029447205150623545050318955625948740885361804761028680534358010811267496602111178929545448547066363026816111464298664168240157763287407662495006114399352334034768977344310911529133632801404398974921108442059618423133977772551882015088696268113883125335395637015820111332331847111939690245205367209616555615740736342492121054750156314611024277623372046058605288373274281857645519214303843273768309215824135649075276125775905584282198044237302426605644271079782266858701195812384869862066539992123709116632405378890902423684472732688408829541164799388510207052189231490012288017716050991972330181934347185631599044220521413953452276245726756002492089913656719916519533721529416244996928381309286554965352547451005897518161108400621294964593259394948918615692786372876002258199139760222145652290729022216621196217552072117718358266993457153726015950808902431130314496690766539632329277507141592087959718318145201890262285924842708945477204991982507038561942766316179310601153454783126843424246350011149024005133334890394328110947823256382461659721596647751615323075774779423052937854183151508318609122035349193640848848754343699293204468311266937211880502056016231663493594573124491446908654391058940833380506944423343186276545386600260629839593137158968052970072064397237931685167640844241287016065385738645234994189995281446618841559031362622112247545841718393619522473516324906295695771200638531601390111091357816372632487588598208249429118303446686418367625433812388229662327506579212424037458119508301734798380718449105324747913871412674360367139401295086239076911930302245195794517501266384097919872145355174378937232671191148748579618562019616841922244461153429760024166479351917910272996537469873393106645273200913430993628685749593329953002084071726538513821628282458326934032954448231614892732119109961738057402419106255933021108813256373009791160736180636811233234605847510146989494066092366784440336653218072317984446449018485423147430806285692777179503264082729134274703326782684101296620414015506979220223176816163860297773288325433441019609314491378596062693083959111454563138091535679357942606332577565639982788272688149909903172423977604363688649986114133387386643779059057548811485221808999137534593969938439989863737541730828553047285585183551243094619156934633469183595495348724556363395056127565071188574210597027698065068705056889828389528366122045174726220635848822436859344087047614544604023024296093543613057402433873163421808487771953814753208685910667127275538675062653096042066068150970154413764847741050905428991942221113402729390645897613362454722905975932889768542551403193836477489325353710256942587259426539154729230759669905590808901584938665267039209727745257551219589039468398093304577787562149348810677541348852795323629909441094026376126734045425596527009798289206528870103111028883453018068112003641303110695562239819729469198548803225880318706650190939017929231893224546044729067669637415643769121214085547152382081744200927954706758276521725001909599578128495817501575053616957722298584637881420278550845940126446287742895377204470734083002085272580158272251717923675307929792538328337124201796462239456179009719288912542754633113590023775478023290205306422311983350303506204655684068913072279651839966738627039347553720054346650203268778479018214565806613688053159001945175527365371599554400917442556508905502733110249919209672034922951901848889593208854020829351175041671056792828478179987802280210507316975593720142704540057795898222206964051676999908999561013392904844043805397146656461636983665244793020276391556705510038366256631981460576426587998329823452357061236437409465327029275077490892010178643286154427037637915013947976493436051473158234057044077680098991118059961844900822645294087710205282208474331591643524192411338684996262832075898135177215223234192723032005368169249910943363094247996776065446553392909208645947513898987184320370277215442175775711144111255889173070223426310153569615450907894700266825540504137139299011730297220425352666578612069542736616631554858534782181576273592461212189026952561202751882517507778249372136249782150783088029288929169495173106248336008350042244405974929534025153388704329739668489288896312979220713118479178301326561635102987037936567815326555555676955839751361489500837993189265337593519976937146445351462534199589662613809946576667316710512357647456412779388901976955994224887877606599247793612611026628866710078416023947573382422444882678962165692890140865932236570496966125326449979438537424195853746479343931253493791058971652197582246209364663178454172873214553158903921111176738448539630405099090184605379037118311163551870341094533950683943740256808397581920506172186416018763308654503381059524662916583652073963550327703239329174475021009676911002236867042604185958610113917897574189257082974583492357399213230652798610903741289097430950661504493062172837056962881251662274302031095727192547462966534703318584307410717171982562108217111527623316867427506209082033356718041294851236870386035432522321386663850995705306845119515865737539158637525425495481984195294283856780467201044940515344084998238168107236638365226058367744048240501434557874552631471645639714170554290158257751867136022938673067456439556086369171788686360099740962870445354308511610880198451526247285419749584973967776542143666012781531033616805607660077575475748099403434676546001710686262396213348347005412506906059637175094843368267255541420602226125630876902194178167902952120358641160848331793125701588090394771649109288651865849187058479685257834076317869238738555690156372403568620765787064745829933678815657391292314421158728039856238462446060627220593954109520198437710342915902234385511535001535475259323038746018289163213759685448169777749447241545815387545927019440785487671136823889208201792757051361484000132923567533317978742730111134348813600255151703257165079649612911464682174449898909332905907980515340241581476940036697421288656023954083374640972532219566686754922256624036539090157292912677338159415946246179222636122242745101706638152094885128813970364469770817258091242493640698745155984913547876478175350737853396530610041820384059165805341015940545690048686056983969515328301018128398051405728097223279803853319024113461589755844027699862598044613622148869667460334739657392422206622567779351872657182609847368309299773967496946035478387284554985267483659619068959331952930302847674197642173925743541554206545951842301410957314615892906465229493692512232815448740141539567948743355026338959386771394702104922110085710817584534801531884766401738387077705625122857038107124668344660822288640807325750302489983135190431168162992381424996660360505052986056976174415759909785529997745613266820142750802901092115638428919678228803158014421195535048758010880077427480869339189036936062415988287089510823730178665104378408306123309558413633174370358514644480407966020107193862685748476553037986939900192701061375351860390191699202779515038908587235737386335281759448402765771908785019857226530380249371697117214728999665884829747580194756214089539160244696818198910072398863427643599215702375871880975601735128393532255561577023536661889151837228119327126827691157905715000706104374786359055340785031220181092546823124530225921734866469164100056831418524012559476601508997509584137358757943037712689178140995568900209512499420150640629355106541455330794180076652924325809500731565161402912054272823422714656808771415886586562204657882651989875725159110995005894982096264098964355584012972590115009555531466472762105495887801685540792501040703211268313226931179618386119549746157907810554808726489938004923432807966636973196441443591169257186310944646284179426671806148591629227445610817566933811889711990249765473120685470052985644623424315301317050654664912795646796359128986942200468527828942508294063979697398372207527081480379204492223227720139254313202538941354076146683080972565426228737849053775592110507140921127566282756162042602296527133920298276561083289281842140101550957359303332628628025947591889183142303230202998833013099136790508900094581094850787555972680036478105099509834310491181584270588850788392629535014892361437119244713146172099188530878753117602517727535349638884227282594665878777963921860638679421166462624746829074866494785673949357563962786797754510103722621410858685897969232097778561407506636108325555445481309872842485715872549950188005552939421596567550642154246869200785037646023122877506296269496606271969438111212511809305818415186242209285576010066869711156438096042281714472087460230061148282939238901735262181047801123363246314065005756490432789702776262791313243253503197263639848417992293406666542063975760932714911092613951498847335221750793213586488109191377071033864961222230308627582921895169289594586983095894555076776797070473679225525849695876379397665212495427358801173429509389756560259342165913883246522212040112530856439682371873770540837498695922430624370570240329678834088768699113128347565711666161641435393426246623091089308984701603385857779966314416474835900069367097311024361040185382712572722045751489424165536121310442121089124208634828953132813168921184379224948809499196248475892986177927761793114173583695063581099477381148548174193541160711709109470759382104089135584945934922550677157065559542475425280036787204439606534856891785450923381298852204244350044441420141368720504116270761372917103527646015582151509387956852652930130815395909647415993042673169887234758217587186352878481685563142417937698387166582806132143534695891668463059690489650675143883113013560525534151855488214521772425850141602105646978426835176679020412933096534489857815964035888795891127092247781919589994461165427163022060060364137341652882125108136193130824272789112776747135388585758893425070540121875430807657401890285661091153728846799577027106053628940293428595443793150025332329564784845510843233150453669194070100259901889856570014458962286846672774451804113063925831058561574762193428699584505564040366281858671367217300337029466715991117764199752271354060670560712887615423415708998186068597942202521966542912895899755914652779725495564218798455421961613449064386032546953439160556871082968117449311529826535834221955021517594574635725116319884626711576239476261966660185980981235624901142749168715320544064556152969992677428325174229292484940280292529203433358406755168739952343600339846870619567375601447734439559552379768036840023722587842387946828006989090344984521519557524384064006048367808806066691524990709860703989304293801217918730307665793364391237388485344890234571718118719244296105276431683918160356500448601658308335530448599734992731435100287754537620832020573284895604888131510877015085971682313835146892162997343169981650807718424276358395351044184214089559015355416779108563313477466024669157350867662942097437608193328282453152979686144649966765890746030808693103642174868428345174051399048286488898704668479931408472992852053780082201968378130124182155831926091409930983211046346858808013341365584263533591628409096909086805412828325215119318605622638129129358362262196739672943010930339600708582313405122115123053732487558700701548798945402576508403451429397157419523322764092362987624885766150113560155391317015744920174655999241578863425665247029819906506090864857854469695065176547077191830278458105624048818551235917659691428845272901571270186546448140442073638306125917596263569668781272073451141934515111402704290995278023305694443854663329846213795472299265671945161351391407265388975763227028598478699144536031036169323980789300615213146875032295681490087574088792265612000359564763392892637452125941709607011834586296380716040375223336581749552510186154372020502870791240840592526248040514728603658554946066122061839763557224945072878551144255155018088668638595400722986039285709884859551901233914157297944223009389698222842008453273419694946807016107534282807572089394348662376715221630686084214170469792768064078025695937480153349651711077035849813274645769396273584428520795293034354014092182100517674117722038355036764661505924453395950460851861833322116930079358750996800190063082485388257350834144467012162144128935237884387379507006267699741530347840244123677034755045472604159707710571017835710213161518907724790260312881712614781165256324508884455841408417894780783594614402074857016423694442716352637314917821032024740281176768780989785895470271989533810688692753144757470563238916614515279339721370608268865750255845279739873241455340239049609892618570039425346109699398110520256091537627946573345802940842061695903954358801461696002184242873206746499242914618801675113220226399463320416233241462930536692623125536265596680344206585746163010730323580529708511468941116878958214366218472806762244224174291314511295433365119811234500987800322264805739674534795912029789308862710654019325078019499259667241514730083965118037359752663904657384172877697842280525129112162479492873651198859697238396850395407964734772292086752151426759162521841493137496588896321851211247584243931894294629024674265209978095214766956575705174796039325296489092341078023885008123933500256046498258075970785676117654778086513417978678894143229802907531250513937811655710886393493095030980213757404114746572560820095273740970461799916625240465826447209304536004719773211498439181265150238189437764249478245287932363995517452977081363776342926234373497451977804603455650101430954989955972839231948834675694678225697693990809687732800535430512506453941634661242058703441432296341277780309465342881247860184408212960515778277452815586904721450433110367190681470177665870294606794549294961874337232639822303230374077251599470907130658734030758003860080853003616136988943458925646134942869829624963289606329135516685820568433269256181357103165673347915064273190895553320616796543061965124941604262972192600895560150265431775536913939061000900165217227192363652383331966443427800024533917334075354854181036154026985007361497069536683699244999371493698501221828482812381143844802671809349540655657641872186347853030354535420215859730822990002339742338270698402505404227560869091206809972820353106986086121446811028656305181366987625739083589473528196655198569447715587580420683626370278030822060248663872907967365743073638911957830555543208038838038450501834616401225416355545680103704708032992459743835207654004046386042515915890939608012236974418113750640490289845710888190993856400726947895206436645362603749943761183909172723112412963824441202679627474915739506845808057932188807002971144880414422121814235587589650645654976431424231408515186444251676019036779986850476987520588029168600333797141696246174226021676610897863517696893908892554923553511355540273332977031104146879401980654857364495651559421378995951885065325532896984370038515061453510492637967534859722607806991501597089862011441469569444134397839755067885813728270408550127198270362890741304022970985720265163334366449226690575098868565278064272591861059152522401302819095827790095354530869481941959049253172384574396560272477506916378136090572961264223064054740872352441037888158963737330726631887981450238265878799998905447621359472536089700382505286370889602657422350721084962802667077207924256166967806770197621358252185618240818696370363304832573743472851491733294737409970954353511994600338231583944281586814849035477044205463236242659948130809754026592506046848562003728277707003898138915120545426520762921882223442132030592314078731953917641580294472933537941748691013461454862446067242026910921365333197480275100052808600198835915411887748013759726021257837093958348364579607170538351815620141255742769303330486896112472879547201114881846659614054865206324738398580753568627165826041295222284258345521614009530098152697344354860291822163049854296295970144276797821522947188298187285746016088029268865483445181472308605170677859189831233907536823134059184766144247388987847648974447883691952923329126852829168611845084115687073046200594174008880534227269918583308150854518029772763460275795033888280054361651790481625048790275604157034356177594433230612893638227084102313564939666565380387518128187065936285111878479401543845158041240585606643217796573182629307083873696697794732719580521539212042253217535145744380541274127317775550876834610226517060408633111253053077086531749720535785583525464418193603400912349918259303314565638124283846187898789236207719558425419199618366776658453647349186282517706341283748349880626738967562552289372118779637217704017139458232371988625672924839866851453617509467375806824994803670890681789301369591692567908142954605489292502799346121110552376765688944454946153096804389716187004416176610676799530448663249604920116374766009954078233106770231616798051099369733899455395718766008847882898756564693372841249609162415923070915758070086837138075790375291966734236634037424653409192873296469214566639664788933734380485152288634484173865798640498424050983151130275639626023167308080670554012570132883592050404321028120846707672369512760947572664118493400619482953178448919621329442360589912098457218430959003043574115158819962842024356267004842262210672450537707354383053765956006800695962758301560480522004821236135612717784213292004881881831178596164765757939084406486831991410279502900080376192782216397615030250434401794693475222324837106488289082332521974406146007082947151146587536715811241364351064119440051054171443163578878863952787321027058465073529485715046454768038517784225202858687137468393515574326511254968113106399480363957872482993090145862987619837621962619567433084284943368517942014142672890312261959367028294472396172994246471078958041858174877015317124694826570116850328769075294546544318450980235561197375962104182632868171515239137519291840724072808610309276612092096125465026507748723338052197401885229460656355215304783755448788538442989172176910624668194551194697309343311505393148051328188898734595803591187606591495210882307325840523574659469225728867675876350417996897270945216957004730757388387443350078389732782657087852302593839640711151604973750258348219804076827638580912362931340696048858288886285471043669180943766749072050738266279127195649969136605748645839638182930533062730257375976096005122735524011897257690755390580351814490333472978212049471564874481568747852563047675499893816346716368932314226435829177579202010223287725244809185785543205908332505831199092347782847517283839434676405462097166439043258872394128782400418119648997710590671794804963759540745632649616903738933066013888487877404774692532224719640474098408924175822429288656649985838030077373619157813909181782416432915019237539310498019122197271289624394396682053845904951374369550523288333972994495787371837613766742643175624800667708002063134453723727536963623537390266936353604832447870255450732716604436893097942200298185803979704132142475201525957005597621910278402688556570961828160177020361363059324123772318252323228148359975913059730104670359648922464853613972909086801943794266753480648130959689489137061717788035066324229567242986598777689886781800696904231771268503345791444414263809586557851569656810082890111341693264443999947038810776852131546015633435263945358595685922765841906267760837311928864346866289318907984436366437294302514938430228138330531496277309882922607198712281205939037181205342454947206934186731276968950571862679521425986425033251976837497893290359841382896778116905776060085306908442861181499623476544228622457108219822236513405043948816761474053442257976907065378223119902713278789107146992838691337556729899189895705927450094407857073304537686459712517466916392782616466668561219390096818629964154956278109753639255066052528564768203882370651540134642306368245904970132481834913133615157050227658249087571519400744251771336622816905241272282957584338402998104859801914623852673744102715130029246788797563754765204641232755672580716636127705347184823027277064148489302895679145351488934996588786698009615811260406846865984581942176747852238863625828200515052162039417321043063276076618369796063347352345733082237727112297536964727792128186297116440058040637002585064459100002436920501011059799382260172182933499866643137757347997981493285877974116774228734656912177377277223936623333522672497275342076158945667274161719323207494984343168630766765542688418475248056630652367371441401223552124619282312993605236600034418464328034277056606137452038242932042513991084737967524098703299869103067563038058924217433198265905415576291528563684362254368982614480233542168927051583730139464196263975306647167657032423242098649601054642313496641887100864769680789140852807236883760582420371031642876614360478472801021693092374640195617758707278064089799174627092632952439387231426174885979597507793232696302824587433765845670261049791928500330987112403847467217662666321528854371125361857587540697730122953473867219005731355292643664606881361152193269762625584663564811849858664245375562730039581838712012164824458300768057944908480317226830824797012227134173282871320591967490328802528869357371809438059935191217900282604935628826354580110379362583617845638152810018861636548055307416445578670804461254983393767939685890073199232532445298789575727962270202449923711001692293587518430049610614353723990042941705430844828348828838188537470360735445056261227254229571982524795384562910392290172459216405742677911377888449835551307764230914339603969984701563996677443490663722388904997362802401908176099890655677583087799232258951072333015801065852707994229198547948832585750912505841814945343536734042665941872068557049265618552221326906176869240332892294443596192065513672874307683102706073180010020794608364924727168893859765289821871574228466098956339470442695344990989506287695956491197683353201141656332564511492012268673843756752237710438110311772494779119731404845323965510488760768038357523708526975358047157460390819425298676093918029807974760031089156491651894299358449187951649158283893427054397668171715416178809342956735009016754994823662739735939281083388136985609784681940580975757786053804301747803576831708824336961883773297354019618187492845986383982587914512668341809436375856379278763005423022924792961020123653373318099127665609343028041311889289120436945636969986766367252057076659269072606352547044645649390152213711920632483199887724581548764010757576567819857203819909991154566364191950361873265192212425735295731769260807899957062948190545511837179200861415034982593277098351314941032237903896200204754832678278632305773677778723737424608430796994954870469952754165639353719035337645748071168314281947921384887981241270423009841574514065708077092281540571733634252498280866127312489825687924171978153210096363043683574298908912782617328344027416258941206369390974803614849660588949420349712911811013386956772462552616474796933029614169687496933693322183680460700543264856693116997271837947772719558391969768226718435986806314443147822485418165928596095148337391798863276558965164639578880907737324272130745397854044462323772056409442115321269623092679803266909306225633205050374972034555110927687280880190725290980273926099779549112074993610868099622527840271124138041885305378767252023904019927086325975864212057856214832151041874623099142064770438930813664666465651509319051369739046484957451628017045473365516655430623951078772276859120828991630500459082506843767175456968702060704372418913537097647912058640197664957906171730475008024606296587612072395011025605188625033032747225059833202551430310362397384011643246690031723016108606328858894927549775011447292490800183536408017795337285810565341623355528294885746828444857231806366302221315123238076241410766072604448668607266834247398144282570838714213537078044497937860132433233450081824009838467538083203153440610897483513883892593821744194704113560783825137702957819180982777673610999509523774139837149235091940678140183663203801249779563254166836277634527044649058529965246475955759705378358262028422167740885326100500667465556685367944339759582615997441011967314015401206540833376630747995571296791931745287730968595908973153147677046102791030860515807910162648465934221010227906045725832390519851216415929988964714037049354384980242838242270198603392719137514143738970423340159963894715877505493000881110491927878651068742922617861278379470109540247368947155382093826419951512526615062451519271616302525132104566186240736564584102005849510603892617142294741519432209022647279134747261536205381958482919452668602780752602073893703583352101462030761321835428263887583587454231940369090489134510288736292903562903067834513272856005155806162771883241888995733647686023125254335454733909218587233660180269004691784373366965443926937836620153947487869569648597664945610525600481706236504670540807990449006927778225963212174280084572731922681396642109735758551613327339276472288521715552865306132746189218719111021598965080790726218061332220260928049067768884920429922367679198240881348565176942554228241575091352811311505216712163415350521159843906626083535565881224026207651957987483465409880451727641916897856986561376012235672671616958900832208672374536468224915583825321803265342482907990479871909795468854801522460583531696059923900973646740720868562421127291183202019226580807863438602277880947560732983786511251420904350179390741807512767409240637532674699066187755057071392981440029320037953107607485860105729312109566561131390145121371010213346003266863266196434166040442192164972634560735598877773963782213512575646833852787131323766449199490131145528947449257800263181550861926539766773128066235957367091567561178779255137128751181885115618628028092351696194473557135222753731139665939021849689962959950130564451021727913861751921993056563038156353516726163787457503664246945045490889755312422279082021082058828748574121519074503009320693181711203727220767835792146908753931345682880960205747851630139976634000457537674587859902267674642621216898424527805065033638356605267554501337369168966636050542255351976534014075036583001113513628281783207627021368390330667344945737951126519319693092793510980323882818794553762823181720420593025562701897709343146419066388861398447320878251182124364929961243060368687820504793826128891311881449750453428536154643002537687125404217077250072790349923130883657390669799722219919613693170962789707678560042951265188427211697919589622791468854829019396208012164719358721897045005395343278473227314949696686665083203777376900790817089036634190572236086208730925693549895640094980905621547873203630497152247602915455065713022960761750557367433922321989369724979457698702311461007698128586321461323219543138136313266491131896785649322525103120316141971256763941808364266963994797272796087553735884682288153355367056866079794677446255018878225561884729250678289418418852892062868014318052515200560569721245940126034753655571349589260929156077694673146977057019733955734442445112300132170011168760502761215092216352616045322782285080876601964883086176135912987466568203754466973002169382824524841638148937344139763720259285932451559299729106403207523831650640059830270779661883438363027921686686657296663366101362025065563237586580718738196446199511040061490731404474363993115191961405516006498820411410369990162769923736942939947541019671091429986249692673240011899222874273607114192220503785556064408778992391778624805988307669905909912600545173757828745853794013907062897056219521070184109267216011338480977544753264082401457205734694371556859072354147197513302230840395519432237556291172171694723858094698665501576871150279915274198499956178043685051593088022391568978034587611051733654163119708240486773206749334382170234263079615055069798054956804359983277704873947482193600147000412156000404964352086396102974641297474440921304154938277919104789550665914954361672871052892889024001892824366561897693304198692303022722654203721765065008864113512737012318441258186250686004215277170277288826615924143781085608052840681381409419830107577750266384545178292649019378061699631239049765482511567299068175783765166764999855668240205571171065092089698669986573964622881526203748266948610954845160453744347659850575849474512536956812425994090949492581143119148068745047609587364951205180762125704884319622019778685033552704718070785018432072996474509821833471176766718530199497316455805267679948324726126113425399258373326362462312992736703825923634436115610081131344714137226147228414068349493554328454211230852259152224037067826130732046482785743726455342881271742052138344680728529177535869745243982107678972149301783174230347153930243755838766158867662630210851390781350436894480354612079291044196300530327530904040469019524967350556403994577743329000327039425381182757546196631942714822401021198017143126962598275822458088922975422069713143484166353318723467141507932451008442417053106250021783547757490421020705731176453873733115766750655208190411462818069798886887926934291463270924288360891094593095781772413211348058660325574492407231973127285625616973842830629532236563222117145439010950445411768046754795058656201328238996324326821779298091521829862215636795116823700579715579712688081450769468886009395300710058626859216999430370894880226638337472643535024840459662274600602370188813276356640592885386802731104400273555524417441802598975492725263681589868661376674346441928460935023032798085330362413961011098108449413991053028175163691050647974718342640176310140292858217009934205771314839246997359416493681786603715574626547489224450575999754451512904171949983661659388782295755560704765407399902906947014391090906751553141257317576086391003349953319487508678928672211066714618912958827155904223936638716924928448178227985471874089178964605059288643682479502254420910237329099947343718852021840586984718063143499137329789524021227159348992008753377996195732461029151945486328899432416845542922094598969285026659920195228587562094748930487565067269208780694234592668703611516993654997765168382607661649225742654839260061245915246193643840648149970735966894772435679564129189260153449936185818251758290747702654531298724356286739001411788670513656165309038064922647854328122458456025926724364501999297723086673668096803158630940596210482615504150599957166351679041103573173442893419551790911492809092769689905389516878224831157588090322294105449965060501208188345202908547522897767471100220750893595382252043444804647789452567840585917179813731580976558946134303898728048032046021545324168349762393193632380490254613945798229553935730683506667640130832069375205443570621829126787383652788389246542155585462920026378545734298507515074910403534795702539063553483791142312568051587886210998332005656678825737916507857207955033073434814705138538223625809262727613806842704997685465265501122963167997013674688854221917216547237153028281135995610189081523393434399329986425337894445179058448836885728522109563370863612158921800301200569943963799945646400096023114883246806031873443013604664633891633152953950117610452226855143228793984805763975506790255473807136407988710323698807260633238328016405353513246052672658416958835394684722781121471557453264225512977863792256530420945958846147122595434917296501727709276987546892697026048728439272802871106623223353189400031518160633640118102165362423389886844915654310256263103046736283090003284165442219476162024798463917192319216192842426216378452738812845341775078833875627896518916220809193100826379221803319035036036755956040916517975575016118080549277649348942950131293766231845146184437441893012499504375881853671550058826201060922987139953739479262910741435051531756891786528681484903900889878833668543296870115675235527254240839931761430431393450613165820678250442230111735649957036970974753444047104439212669503778011334919511541456704740938313498839730982934312203819944504428657084091822157841638576944450727960361561544628312033134387745922722291756842589763996163821697923026927372927087157438078044457895610688042435753400035375300815222330860778982879965744750112859622231859077128228324429069221891706723486216912000316837045337557712482017469097670879075955068771793784247834553181184604815629098943443269045710465989901070938655260882542944549717561056278717531494217188143863378231349312629062266117699075105354928958526064045372424103042387262002715063066200676658007365567639381897630426394202035250338954783586813531456402889357435875587208826797659532271123689962344604471374031249818337234901655737328173470698121772189427040731994531188590444564066626443670564148465821998673482009481405090612704420104694242304102826594635093271602630004067293787725399273415700507125767360092980044777715547405116480586926336040142489389830448104165611595685841344489716213185702236339640633460293426737379571678255606758179707603226490766531106326992646140329641040114042632755230803867958726324565527388471743718875851613350564972748476499229862217678803352676348006104582907588519223129557092160991175806151656258067848942529553862340339613916606558490120950871753242469849353254053796055312976420472048154647795501677885631018749116489510374542236076694489794032923887062686776974636052955340105210737586728834368245760046955160061342416894282478877343898139641299919979722730925312965322188872590290863739114172097260105589076757771513451138992710927244227429625338725198517878858108701689888044316627756427498514492482101414297466992182148258658949030021862973405136591414257074761487556733703873467601278844999523076509517489524930915807764976356964838980594166701440792479966543026569153713452321447857903505555141902914654386039423833015671684214797689969783650118921498174812432389303552683329435012985066748200216758350269063434188621852480176001518213267421421098494217133094312886128405737078289433598908730265113325273740923043425140426660775727333350073777625381018727162264814446772233607561119545617258583680065987942559525338890228804950989653326822821877509502473749017730651538515431276582139366579071101087605297507634826694129485300132267025699451011855259392292414822419289397509536851295713967155636197742160035450889293554993195750861870196007436857780706739086393922864613559174832588537525646513863167528564577346232012854615655421439575762594251979234684673545706015548996269307301471996600612075435663511438070684003273963412876094567036611612555530008194469704111337441247154296229493173944264968903827256644540635509174474484844837835653580505487902935295238203394612817880276644066387684956024350098647961119840955276566643347265716554972053561634688887790183457393988456839858760468984975562136614573716899223372090843736342690610794222958166408639901629991102114134311827373385123446477359154329183294075920862698089875180003218234578227494371577383993902384452251552951235992946095011815033693859847953153799301379575614386506792095353652242848065171176265128319208777630127307006399023461278525641882384738134035678940293236636606036395730304463572968015535963541736310886645091314536340523719917854290157717893922351903503713421563634975486354040751918260251465466475661480069557961895311714885180850202256052876414438533979479731717429672152586342712639766909653923699443055644189207165322558716317131096090412531900633004449269678638017074851302740444595785731561102018132217915857654748773383172057853068838270124582267035997229934993521841744978779432473874212702831574502377387047865005081953509789439369590235866488910297955537995116815183512503316124962673872285854591190406362999103729550829268274972492622841931052873974026903136315065247342747355248184196021653341736154701004027841114925024243935457403549676869600058984365359072184792115758464360391697421385212101568790675073233936727666346691321127635914168013560806768577745727721549002943611340854618772306163631890484855343130053279509017662501813807352064500324824108710481427322449284599921043010919521915753907443181912581707815846926107583759867663976279483548996654114943124723390811049885203338348895463132876427351714290579032121422887374484472923120024458551600993722636706752775960892816632910953905131615785598397495053072496741871811155983549312056018230584281621843707935590140009957917842737593546976217151543717927012447480046518361017744188666659182068274663696266207297742878270839844058183485157450112855426412906509515525181277243396813396375196999724112848462460072311314120959099797699487156419518922035927751667143688952242462394575949268633738479011174939277794909259417095869139416036027384113830307976882778779783775079917670473204318280443819393368682964144054161776794015947765298846356194883991467929817620682921199968135348318477388301967312925619091753971023465517542195041085995942919406802692415905769084303148331496700546551881406587387281918137696647817836974256965306067573179161871649153702713609395483727660434668268058921006799179431962530918981796441727472631325913834890486005552867742650933913440408137126968552774029573268675057223747338898470730827441144967146179051059466264566562712497662895591947513207295183007874753042769576191422175146566707079340717100265147916028193838377576788745126676561159602574454359709704904336571740847124963043913340101961074773577938708195819287003672679230220323664094339017474594107482955080182832111852566849647880733892823286916951592944382616761524242842073623444950155185943352889025331443457352061237813594370889923064205949035570282145128071961034464773245399622545591192551388737726968897168550677493705679405906077827498616679301231646427986051319169867505213918052450927079257380273717905190908957280172471889273174888781502143618739916169440244162110358435104912685328629293719736337926794922884979441031638562268133962005594855000303928317068250362428082062664480530851392578535871156599765228857481708359656190966850381742887231588837737486065687589636157106688067865020574135121109976296791490039501322097157333926473712430515096026737612275897979713797725964893779828876228996638615697696591197084306707117883121906151709034349990737249734498984666745822848187795628136796123302503660462313256492685203462752311566116629014824204936503277420811691746298878840648480208406021010085977875113010456430930131033452328401010921407480279873965188945208420871043329638433754185835883789189295191177251891012065062880267857054505070550533149196213783832696713560172197134731457127382931999901305754248617714574345043890149343415305438965925426553753868048376456769698713623897602220061760876064933712227721567919196484339153667633097610500787254755263576162479647715450509114406253079242277278831719271615261117750153924589690774121935844037213454149375879430367892842941185329274787479745675125472651982649953057909939656310795684405936389090775823139853219244722540254530047390205452518803001450137908445030465103086117909506766406292814685924748787418699744826444304052176345972003982286237548943008725089207343803371333094307126309706900782494349310654298666073583249405129527105383590831504891196630380452626215583170471001109652657802278228769069342577121804760515235420217973189879483688442985151221405823237272010690762872939684811543598466032245020187535358353819494114539777545961362887133037028649785524313951271489775181669956076312417764218595865374733868045395856540269768963068909561757782408750352757619288705984214072878883292785384930676892179123115783742094283990955010791696307028569632193363781662314353047015313339817959320749039828206987785706484704177146930757022595829507097369276207529265831450165423301704844568588497287136184402482504785503099480117804311494056682044470801720323079860813703150737551136828609216360988518634102672015414387285990070800863586534995032674095122415765268241914799980755912470137819059477445055985817604263904097137166539622091007108782979739150105616023645860979515791266593835290887822314375651556899491410976353302956606758479987490634353827396339199228788375700818438235407890290281914754634597348833430920314857494110321864111864173903035529980751586227509321468953296654532592070548980773242620411041275808601826327322595615671803065079268771722813928823632568807109330862422639788184570175363816643097883859710294587671949558887140576967168479256969177044045331280094621278388691302039422833891680199762275621758572990363822343756040000586319600281441805728872316831246698796832094938981855813193383778055018985244708221979425729049645430223792070740536483869144053823459171443340257108264481086957815855433520046915459638020207695563339340167420830326385901535970616637473415590138980274728624351120361944195286891030844823703870596255337686236985756562002689271473495890487998963085492463652137712080052021507573474259356315800907500371004503123009824962093958895484480948001462778871288834260226200647448769111421261849913559659470581905726483294846920484452115515037377990030985752039497937774100071711555682373345026134198609991212182787253911521868682910085122195888802603271896433822458095208002189451007634632640370963315833620782235381142674562108971383390968500715786421830481690762572134504828568190680596613856430192047041604059127628645884945939997501983463625777992698897774195639818248245046677797281241538889654722312093592509382356686923688993104631489008851579598061858024889234881544092297934236473966132986074799078331566996814102672975106545270916394619452591950701311095358597296312742762642510019317853778503978502679882721001192842757361118584234575608635766147173362471294051489517361955398957995366090347001651583382340451927603827675557934041390669105096238343529102237643671461813583419151905288252662568055103909736692731237627019399650966387160054040829508747587220298867871114501338941734558834232559765915126413453093539709463369784084022695392868187069188250509610450354589334466264847687903345894027695767432134012801212451444252779255734066191739706879199193058860287520478583035186275862753804963471872603784091295694252446151450930091575078484780388349726308886720121324564269444203280670451035049588748369831224918825521432471627875931016887793233003659180266354051318810933963134753557502020741096771087453775789855639588586031099545885500976030172917642161366078025925531388143831616708552227486400334511099432286324597487067425022218541147413346254454653020417726561901998285211885993119990519686173026105832595490835501904240512873031555970794924484623182772070986745881308724543261339660923772535629006163630599260418395278365368759042216959715891987330580662420485406847474296479433636860786079883912216507119469622263156043684635760448066988977370492452386010181722338859072494966507875983575246857467691577675370232338196991544742488917190884431447204802669554372189218380382292917334078892135655305108682298892734187715672384715725706831697037331243648280566088984379194033722988029413386403825521590973991570000961316552096435064939067284509821949709084522762705023580995692828012788534290392631836704138880694814216287017053052545429154595184530180943611898417414404372239060995919353539934959735086435231717502032786069350172073772849221063121617659079553202221102057081349049845941917028343524351910909022624605192438280255914901369224162413563150430600988117674022785526442757037322213783535359952276596297201366506518838873078886820505748429866284557044932214424068059693075173554790483959320049422756673279560926125773035671376459669365939499205488654277606372538041351254450641793723005833845691637081293486440271110938795113800740215740287680152636475834721584683041646483322779197186331263248832807637306099471178617108120941207697300635916864959472692909877411851929408897743471396411911098441017153843861656160047814953580251613725868907312637191920313464100995926383124282648549364856928709788007235247030521646904871215346440678928994443062429756418945476850289814830594375070745996185357870108306014117516775937018631932142570364466957079874327488054741169496716524286490724051970325870228599597466412000185540868815832090341018306628849970645745791245969450881333575944293244999993825564869628436582139828459848868857161445139966382799600541815482175594679976119986254345313817272477222142115454852761363001678426005766530585625785063186400820635265758334304110106299498024007589730869543910441056475048247785676240552130105653006581122345985926298735845987592487776697827611991239496922074141100838828319524467563812584105069739986355622007110870716712144876236159468655776026798891414932667907150423342661758062849394906304462243288535930850398538723911477174286545235580105244452024601310656112670538373531793678551115910782095871995330828836642650609502284168445942297468987526017872819445718796942603085311480248396552470658139487500214163561034451767376322136440750257405020740576882735713503282971998860987275355890146832648419684803615759633620694193425116604598603217730013103892358108401184347439852812715653799970777644245571433619831943197615673047204529829288941269397747313347006924975231376198643565221729367155986518379769414955861051734183581850117899606712658208901785487400381697240201135246753994585898846628442006228351894668430988623219139807173502756591248881082902523272512279606590006567735980598544111460763838632067716055778802209199979739333322764681555012818682491067515008031539254541544390580832009492901466714703992518283364887203970476090705369266664253597065401132154826266856850941772196045266963607602804398403403934839382216603522810699221753342087404959138859331737938411970907831577748624137226126657549467399905225741931936907232982780358316415091653522710947132779250456590921810300403168224786811831342765307138585662838199845507390408102352305420274808911209470315659479500528522588702395452339634400443157511282920224120329206662859176906102918042007510249090222716437445140915157321782109554076133090703640071231229388918195497741571211160011732386639076639692753895532451974580847746747112877901829663005325368163039057475528989096660403960390662691296138907914320624547545061344400632010349735174232458077259375594121427049900468543728813362055512406272137067567603769166021037192471497421520739625454651157658347964182433717054403905633672243168619321991892573241318224283439209915240133619099550394098492080226690925809194290148590583368353353304619303611853332307025714620567069925690247990438652163120232280747995215348657979379586563264755106987098934045860803189369689090795449825037227639010368063545461835951835532180239444709041496796975092668287220804384805887746213586695926406615381280754030600141963581352912916295312762056393692264834480392674037507146858556306645970398641485550590771785974490166129963289644528784034107712781059080130935630667062157707115772064679887111886099318964107751698492515161157523491760179795596820937644258563381830833484567957132234522210983858757978041912991036217369820009737467550789524952008464304300148250414601703458301543751690573350671393425967947360096194200763380269163240925738444892652702533564888558537151008099768863913953167185634854016798231691721963759960696398445687485235429315539911692184381716444998253512009289932794176529373207603996826826511427522603929421246778309316332806281935276725995381248821960119883793954215987460369369698603935053124388160876795221845518232166797042866916170102472931148767094686657340415272987130472333444602203539857713589150344983624480622853713522445271147667523848305613078410865397534899527730503170138483396038869727128719728696810552545838501664427702905617782541013751176258623448483951077358081708095138192991727308702987724837618372815288888701006029120268601567569581014162284644818967513003801795545000154577131117020067034917497515589917859571210905065473308783934791824479891469397944281009289585644445875141697308193483125281874728531481907113946902328875437283543792198986897173742917017115992723018126965588835518774198097495819248657344075707977901331706725103178307505460278048951461941880782937369735984763273112472762300644844733685654471564322643707928155937902393694302693781161231318390258942863481407254316704884983075267423505546937811367747893744287243064040991674186433356065473947819598375077050811402578995022846788172582986249485248177647188603991042063888077686184500957769404713701261529206701499765801989758084313277802908145359759704726259734603539672513891123718082790277770365855100020723709147517136005211967576527478216637699684600589592671195713277054408411562996089163813886370558300204769323121604540131751325849940329548794793643234666734183171800518126240319955864965262993087580697951146855760772278395946394235387160532141317811479083704876006333582412658993670289894780486510296092518009635745147698244636498636197794255501067806366011513473697429906804760048808199680405282873273758197358161355509410674572406504030376767388593644232009732623156767524356016849411246560807224215857443830350783626151619087902984476773331691827802073534102993977197447232283588701734073128919149711371643006624263834865909491222154658122819859875057683958027246844653169044079628343168854394929833861393821165682975824550598616271463633904536506907137588781041245853406268241553438132061615437813969584669661748799816320215143756677097820081954870309786546338606581727083013815279805710263235624237700046379656640057830430388271654415377491930636185857980924140095291812460672942080841826261280388633544922332008000864544096794963320950123157845558602165127527873199563807777657283768608749681646837503692118414290089654803044057092073468864269592803607162822471702080144741696245473581227475278698029901745326736946875977718566482645541207627208383866241479847107953863215133639962185788175084489806279643697455970481195422284871233009644226369292824577802585822876742673624252847654288668220815613499490366682573745411339552880141520541614393976715183204271265669450532697700656512134772829297642452580769709587791770729504724017350376935094767437982091360078431974710694979789565080474113859165755041032883855706925871795477367341544709494953522607035317833986074967997253434009072047926678481235489076553598712640943466167033354633277549656651166674683333057101268503451377219231582893105056098838565493995815796500473699434822956842563427595197266053955621025219008556560218299915249485240424982785162612058804513169135076002747260836733835800097287689165620010076587167716367570383331865886714970563673989190324958224289468083377412452162180603624669945791504693689767823766491794979246298047212867382820995205389556464657536761140325806068502962293119994228941245563729345188361000362308192594396641119931635298941771158776313585573451568537149027398379776461427745289821979396965735359422812885379280158349993006782588697177930806405188926255033538441409709980063460462985614433376878577810637624111017923452425091807848023598414514105429152615927054316837378167074310729516142956140390411987231011701308880951457332836509607128240907304507579752565993720587782726199749822091425614361968459604753870455637873707507229253205311247928167062167537527579459401328567292450562936396810879430508525772025653004962653215231411146053286740541719191128070395444331630389572720583088714371038609996088605048544840409556162955984917217109052951571297269655963145367374724140153769470936623444869658502871096570885497738505950419831654898745998429290657925510429283100947233377419461260296943423726418330974299622562599919333653392916561291718588654008058042903461560126499002235509810680889343383796011134058934982486913747734519809433494714570126959333754041304835184474765118548162256670950150902799390813832334292783687176365084660500605919062537305689637748359552078695780979685765989222308543739553094718663107234828356911656616423220564367743863279603644892022493778464275426426818109524749049481034699934690290920970438497671160394581349635749027983378875802960058195656956790485443094099421031840532617802368033348535517335344416276330268623052230670923696656499121191362983289697268805195818064145921530409079388979249051385188096341040715581748972645656644921377256125508641730762406778512822635329481259818780709328746431521055907163168256399960851438505985672611482100874321372950948205291493910976206529252516422392871026004247602352221444684760425996635011027969314278338240607964256699440369335479133509675654315374363304355698936859223353779862694440567776656005799553684984581165712048838542890587338545165908523566061723840877472748041458774127768987155380919848248269242687271003961741850516816396440000955396523339329575194772611852793269974061489454965906513173901487856821583917199288314346467111780634555310661878469213768871165042355963647031871845184739794821831085270822285359152981686532836755177973018288516186300206954963564674989477075434028378372545521899123066360347004984880233006444676525001624479612348501126326912232232816510634200410937697792297463421833097338346874920097691407103274083742714292264353259314353188846225135441034425018717314492791526595921273435737071362097608493283251582190627575582942580656761353613821387074977105984537884052562401152499840680174202118432995220604725110538626490287918641663306230679241161697231566432575024846231425206961206601316755332926392252857346444413984507475776405392642944616410418004321739440559628146187503868933788060901426232964310510517381330780347924164093225703521785908740839179960787624189896475469846921018578583399427879435344350772448026794621601492365555857249155078362450373504098598403284304944380301412905196434919925416781112346512097122914385997452785279870064753584122119703721549347356974037797037630079865074744388125506705586955803009712249553468790060336956862062872749758452643266301762819297130792615241524927380909187860523213952388169110781631195954648139128303088476670052020855242518852969080921193859348822138506141283623052632208071513712523565400234624089904565935459488784357849416552995385877032383888688473386890579455950863721908750150511186021597288729020349432185579772705272248624783132404090389488255292512772990554052511921474541595644776600276167262910197230983361064954862477407766979575398105836577083213705503224048659557812090130843230988395604657121874689506113430322046192996021391439865562361236200209692234203799205936240363342641322446646216475779008071175056357407719835262013246955491957745126283126136268502723911116179330503114841032518952012625244225755785612413985813972112507102723085861883127603496994995685171970356315053194037708887028897706820555859919052191747935239824681971148418794813855614041753893168199864685525794391481345259594297787254920684271994010656945141713920360161597029198186313289751310844972017149690838703167730282221871572235493043887761043188753212706439676328472083508531364713165035384173277650528176794294765521013212661752383622190238039091815988231931095956097979895325085888259171870418757361771552583238401177014011067114791958714966514318798559793885529363611153750433249084026898023799517713104941956463212319373597451252822528543459618767844961039647368747073819181755182714507301309639840909077005289050953157310312859686674613241432893985778924824822110626718719235053098749248352464112415669903994036342022034069777924454088439055053637019846796398791101827323670464641451765236367225552597029122455494230288615764018768344943454933371708021497979523079500587430514105392562606328991390004081201927539642502742111244741876583669837626864240198196331416002962670204939612213895929946088046458997858644976920992398435595584453288190756069918545314332782134449937962856187997251967494736850497451415902981499700087322338690618092800609639186003028016939481323500351930040302044963227424626758818505231644513111500875348720217508433389657306156425186482704264908423783224141876068889848901358858411068804069097290903032980974440366004655121639119407592596738446104963116276407826980839636402073815010482778400362385666257144743888955307159308735736086289832997124682910392135287169648588861233858797578058217864161729738419384849644463332497483310918458381535982959620935549559359814048503150685317135422666335917308649973638668460237488932590687844022002284627756284608543712084915269474432327418610938600881429347061026858542694524053937383977993914107008839945725766438143735845136649995988428389027683881374976564665149964365371440745846339811484556614499927172951060802483389887013963497800888623073981217546448282629677630265047823823396400552773147678704371403777451832439834917734957026621241402291731993664051861900622806744702657440000512003067181976141650116357520236015533027064395094653309341165078575603668119313921226426336608961659075219979796982625350475599564695404035497139090815688682619873752106237209126781773256072575145963680893755664030708362550278633798306627232562101743736799695760085523718717386729832091798085949014003372467401988044814288389871160396285552615283645572933921930937836399004988304950293578999358795800289616063269894310644668283426621744617602653565782357174035788190270636737710251407377345698668196751262521757421458147682550330325052729224549903187266586823195424047373248347751921002580854059980153660802965110209384339574044001697220536661025555352384118905494823355730040560619862722749958316819309174730149589297305756772801716772925328244729965446763417136451814970585653747743827086565769511598962658362426336777697281279364620726230346349235860298861572232943380973336228584259524900186936803536449443185673557212279303123142012434951754860705092301007552748908759952308320188294298122008364666322821582271682384634475605773630375629532176839629851885501543989134144062550055753803200130381664714519743976492179061033752622332354252965091173504868803621712228845492338959130644611640576922220442298665461042071798296306036890300048253044724465138510784582630506057845510604959252253103124887835376671520579185442279552521479771477899628811926229138818954348912991619453105568360162892273223748837976335817044427892160394208947968564021036105627770649219313132089928395282929356084781621405583122036081104136654424135297867669712272707923304139599876605562583869226898551956387991347383891702295291007659104702816513148288480530184658221821977073727992221521069058096403344854492986276116264118020492004838732321025876897753846803385558192543489847122114853396929735491104541646657775929652508271485568225449404782376185436576001874954779201125772253544647163265436285298461368142270666544139576769852045429117611853339401561973824759598564303935494134117580302648191120343834217132970066762319416273022425540291876771336377678393897147069499754863765364141417748401241906080274345976812576204854487514613944726424366871610553411738205896335127584369109640159218731029621366862710886782966088066991178143611942872738089400137565357775052641202195014023000341652057529871824306576944095131310377873996452324052387701034329367795382753208404481026418888716822954387348867416884353607901171736970139583244458638291732528207123341437995221540205837291673208977621341611719731290978901564461914585874044484105330494779246990336711001242909624128551001323622581954822356313397743742948995380097045354298243019854288609636489199712960779185428764110704560818175340415153362542180900365775224767543586283613332128222211810434428045336536794115724040844989471760238766937400982808951641431529450492582785831060448797375160185235301208158212007939116887504102272851335568469100461210635189461819110728285299549135821043152708647199354359676330971617520122727679182578938824526519538813913598126696680736626578990570946873087508572276017096967912849303377334908176450426679426019298268720378549712801610231867188914529960280826651054091727665214617616268610504661617036180624508036943309893966635239903860956584231258805956643445412154146320164442213605287423750644350087044677975632561290630416851865686435266562069734654953146014178998354373539352400671971759314046615346017519477743476672035747710348629628055245114039842474349929967299602721426496141767880658534321513986071942064530501711864855477843556056639661026356615465173432560329971361477787617079674606900965859526860192243433142123554501997537685738821222601878390609957318752023168139705493884902506325382660252390133386295051576676288020885361593729881092594320040761064700898006801606820732927496781117098902596653200935712983011561440709290743675547568835437658559815297448707090825302909870652297997840729933630985864953588664688712339977883215106070699427698839801615092658843885994936927564780076390076494812432129398299820324249145552140652254419606064188632650467957266425545152530613446386583295155655820375832131327722020770787900447590856200805279961112290175201534551568454967980926100657555701919247348284271045568318443805755202479294841961903621673333879500365815607397195061801770350175885422665220072053290227523496618429655945812606385639123784150024760586977438956889038542220115738306980324452783873193685541711313960390371320557444908928646105733629878826122323493035223073900534805175122462299382959409990277745942201569981651044484452982045823349883203677191846206430641622328655853772406495056091750155779161976622907604917560404940441521979018723343411640367813914048946815287813931962090404859360755987129344105944529884804129219464859975562107653200608413056651793246631909582553482672251348912490928208207436159297486498510352979936822326719506988201674185408136005614892350183160073535525914169863919308330104616003019041279502038954322797265236119641789784416477853356279784765025609746695167013517440299840389477616899090537647647307123692038025839933582803836362751362888129442846488887194823011126201747229550636793242878806698891822754013520815638117915019883702502525469085587419359717979750069350392098355707215284200964760199272961203445546101417703374854896134791735004038942418058975571620015342172017835165431269558192350429488577553431863875491610063146284970437735760682604110534650907338644395921450662319401274775156225008963628404480090387828854185809007117811280562637632771116720688952115135948819916362582953925931109907694166671714197911029241937442961445905636439693854597313924737253808039166699016067101442608635349170448412558971695364030229368743233667968903506494477537593042359099252548543643209194740451004868057195285942338552014348438579162687404064637921646604914459762353337989330096454451817862672414575026656971359641523297576111464577811861120829296351715726713288451978984553028344891198708679772523468529879047731424282948133303757816517300543026570782296361198955168100564686202296367382581355815741751582534214640790015308913429528422077304485982602874983154878627134990973501614188291042311340984081115255115701000293800071750418240789233695475343269092376051192856802765546172355887136928785045430504108123790942623075509293780607940228734420500383082072437731079000646520971492756204536326455934297352232462753853690152739879989913051279577903107438705056338338312795969771627716505353353373174088445038001788864363844067124350854501334133413832539438650549108138780501010555002791647686931700843076144319292657945368092710309382031634532760029387494365760886580037323188598228551857128858229096601796546795774710881490797388574717277378645293973642108834502173183955277012622765983047337762155178262238982560415701631796989393674582093860169298936867284907201203055093489836561720806034197690820719277309995191338463915965498476230268363464206734319141648482754416246019550709889587435807833179750592592423513468574305591216586480892104129862963995318518650599927999222182425690842206728836203762079339167320626668461299050586215782357296875566639871600675039933948279144018268743377658174581569119931290287084436878811702519299630522256052595169847538766220069600651927241522992967571777877299045410572444087299651162638484219255929130770792649624243537498249677609790289576096505363885629076230642830023910535555341831135144398196539678521816805026482889720395381859987709594677596196598474801033094754726164713904805716810176000735326379520006684326673922541855388656814604192878607040835092929851451248632897518235206770825731160818853783207745366290919684339227900628195756878225524878809837469723092587840952454511959536686819213631263799179893317025794468717456241495289998327036674133813291717620729972095308983392483712245911612444944268470957354631257597941458038307907660709203256097022311314013364200792519189303350655434517425546753473715340164563407954972197516270904600501512135410843852455328716399846569800742917934439854914625329858812363797970295218698911477377642020633308595182928988601825574983166099100598248618180600686697026262702158497664728745818584206315333893338759039519002068257709573724544494879012219397131318304854145542430606716827752530094537852518959036566358974112357571176827511632063683093775542377146484172319018207433479898209125486542514830204702226538571655177409054813287937009175991743397889950336163036729018196969738900252318764950049975076423369886640702051924287893299723682291428895250932602524904292590739970011641074575227240639849594067955013674067649492048009579952379950841839117812523349095997169008320047781893118443876613215375076146479413461728236516969862162316355013772176698946091286387989127813827587707576888250329435876680866756073085643439182745364585953594306309072393031398034209823977878517648295434272362001598755037079695452560329830087716987850303970983774397814684144416135877334087222024143522243203626138874518875971198038982436444824847524431720843738839918386775466655247778114760181511984342639700788210043885177017428003528650539923007006783004659643375617818366520607419293888585312563065727563357885967641939523259299385350173255517426772322394390808802606307989510032285010519892774004155532078306230784815729596586287931378357994594281883002499390793848385779008577583432213091942501709298921283702599423766985217209858285403191004553400072576745230372687706698717559608651701501873625417852999199184494434224590962148162065444568254037088910238862142022793932541213123571093944220638559186041397949939475559169423718711648238660723730637906301175328513311195149175691376810684606818709821771064402173347063453092975389280598992972410627788885949973981691715506704268467547253799583694204739717988976924382652163421104503188110662442662330395175208246187203769685862935800100913028144151895127272040934332971044024692868483211191507922950154562726976768932342042359107823516511848386218438956092916594583618061414256631571746502256538560102061495673431373576839155734041042357064353214609600342927611579836709485188017379614878132050400781759921584629867663880103229152940363495157823329029736538342555308456305523711160479774766100676497522014850163150845311603361763263214930337506845931898158029725411112404164502324386712355318347970345157484403686839772354089446504063595422873135126952764361237280300043848375507373049807811731337756456572266197097325486632063711990241162189731276541436933476136909719316205277675875499885504180277672886678696695211056554436493432309702296934004288822427750754575713436348580545758752373527264154233913113148714402935456476342478315266325261565795731743983996092102107100157903022351604644016809445666402973771519312865066508361131082727959535188532085461106111522253887131742081472160065243846122171853963357309341784829798011317002616528258798439460166387605822235018983928794879404017897305105308879921619646644811779029738956144200982607670281421615580511059669304360540722050462904820370775266059687291646827019335846309889787326769096947284225736419726676023127926670767036534370304497940962766353146807848297751621080238488257324043497524934450381975042732740977543129818997683800098772316878871389671078400195352808243666100359508624577824408636879187914343620324508976675229973229467768579771636180716633319563119921472189983827829428144439843735487143494780012904812589517744458430711659193062287411418383032819242194899099048279635730090015223899746460599815947245676874833659055933013695190276657604737786990156362766905890905119963323818462249278547566293624930752742530733721037971236260934701563389700032774482495177732156148941010868647208407434913147793370833746473422504385560194972481973510201014994510051743335644756669187224995475824028628504993562581527768300369463459462283237925710591575605377829796831945199367354027310852424897120064864419714985945046168443605722380802160971314151905002873653420435059398087239852188138204448110657432162236038796194270217303901890276656448998432062111463818134220851998212272891624262586656408148681251479182284990320048514382423456395585911395168809966212422024283016633173068723063062835797191195667100336448334481091935166526055320082812145275930813685313912486121188272162299999750716905182986766482445919631902226843140511701832011194671689914344962154622213500676579636108859563864244575649725408711256014715449658067770802028003925497482033721290849620595045841058947337934614374625701243777343763340123069041265243466180879333947388783942573972491098819736669672664611497740881528365591515345431855104500586729117626850974185351727104200361959861070103658362268762241983662902010910770103978471671142248816771199977390114947054316264705455563497335676562170147789351319192111450410493685767548683311311185894845028751348447938537164325772134328059784943483608444906273314576335997236575383330269634172347332064649905902972023112100229072461223907455168425587514601774704928725596915381742742706865031635480530708093204794668676156453951626864423846898934612349233664514653512915153455710172302182158277842436600336315879403146479923721381464123690641672792840672985672799002219128841848245392439340928323958499476095968223026594792200626835852351346571178135268738823849561724175938084995596703122711301056264235852730761730520216859669102191258747163410161286626361774081244136637283474994806837265217520016477623765214215945386238950515344578471087963793530418253338979886192204962021603172106289168809370658298625517544161010776528359536047360678247288107986974295884334500352632587629875026996333694430335817819019118522269577216300012136531636909793812332321578514237735442848684605155957133883836269266319479504443911093835211766364291874098690215457301557441084528936599865981906744497145412420397278772006872835060891920937158346973271313252878318824548527641135415632329984628345547164564856316547791610912530656391225754966380618663074370046364501051989646841811453683586715245771159611440089378176676002091537382260638726236386036835762465313463604753133834686959767144593898843967533182104435846360294010605878954624879576449077170944216944922225245346075310448226475400112443011513935795703552438664840512219206762502491919348045463497651160694314740110117576808362110220432234959544564091173640318098791243485371649052394620589676086259783302075014096580934249531560115779308369617252958166015305934669994783393116955868116878670469782025593343303208344464951695345205958902188436920965025116117979838346918950572537034060332606789593378131014662520546694320367234814364755138805692981366810518067722036215954921853233227241318922372927903616099423581783816680377077822496303818692325133460790863547895431582160828675721677110856132923263143258462518683340540247331783718195743498341582501252971426104842381107479683461579405097962859238784041713400226292352706956057868700943918102450847186280906146798609688168302329929640925955335881469567621624442714579436091669362593166361713306841819408838378948790263902824819430796080968432377722036359763614213082876834770898105307999285003146516947281598184598577867211239634709970087299503894965661970999665610529869221486322831136937862173237982266440789005679641713483086528770256486680276818691657797158120258163247570968115112528810786092523017135240947728113230040724166485520084516650359036301112734862626678262598323389274218263930817956627508955647113441378455590948592090649375447718709007854784289487141861324540886449240957183613202361312273756436002615489255768637204461083612872173120755929719547299384651806499533117643944061210720426230489548787863297475453107144735072724180133819298868595341881172836424813044017450686150553027693878511271278526909312709492681986812280638982723176288197130679551610958303655366542990648576500121431276870900724791836161053246632490785416930103296423157809164118812947980611902056662351185720955394095244260423375012779388086041940194230760594905347483135444463085140276480962772500072644109786486497967759382747802766767520020037161987650301368679698421033571521515034154978063077135397818372247354724137501478604588398791292459489605663024867867518663077290518827589929046692245862736457692065466413986721026591981046463861066497680744128175307009864164629567811856446269181079413982862188117976667565928421849961540415247031625506914395832583545362700414169847437122990875547351690855367959625600035517727040311680134594240619349001749417817391853902641469775511768044444743365673991694995931278365732760746546276334358012082115707836366083304889203378578003789508144175035421205124632357771319304951866694276528243713253700267522899046333379674525527462024827038338341087924613259214550806055802299602924278461626013228655124739702482389568529976682939765824038351010954912734896140465760571879195008228342976515189536587673612576291008422613735242872976447084571416273890474016141077099570938830381394443252983428133574983086133910724175244120604046103846457688432801708371801857908697424125363745285843547911884077561302407700232042649484611938371894956859970038654627798922670560262305744773194638431750148320110309053364266601322292124686044510712909752368546433920693388413651097163935879492498952721333056440881629609947347509485874054352487675437576677027203734187743501198699078964466357065606691777761573457519342781428820154738553221716016601113059358327048971093919294002910229198582427416248344150985667814397006653553836180177643925678217521235777648239689308349037552895113976534321461011790681408700249169436501295305224162736359347958990702352866184133450800644455952496273436890362068362164969106346823676673035429906109743795243405258890545557193283999002637661736183977068015019336072738501321563136851861135843941804039891367913792529493221418029343821572328032647293543119273084269884200027917013953922628262078439499344819563220727222309163810494363111278501003930313579246267550437347252617119275948622830357027561410274212505773799621284785393269188030706177314060485627556924068106846814089705278362274816247841310465577979409874967943568056798393229093636969269317830616343756538002590991505941397584869708844422046521481648915033258304794280361222891801376176502405057091272399902011130586485957894046988720465000481680318830915042113213708236528228126060312662253565860032617461738432768006956625540578345937146678086474581539626034409808518739196942268124360646914062626269692778851124129467243225717779442853999504900103200344398363985075550102716920090430058419845417459636744413291423637721531773018004274554321670695309887644886258452241816579074059035823750634865416443458626469916642794629827169873187370454236561221802290541383490574675298989370068550181652254009691122809555712803177123098113252340274544251410359663423070761784356225621387742843977995210226428874997458638305379825563749890721020984311934565047805639912635624325459688710120159350470032673974701113460604830099790461114067006176120444988560844809113100911521528951672749403450334531983172438457192884067785102141795044367925404244892205564555259833564729178816876041804916937571844951130687543765742260920430856758755888430895640757634574370135642922571861325355058477066962032440106189282931882167513613304302675293170193356938379838986224941009740485140231226769007183867090827011535563819507006753804368674221591604480389041934093625008275269318061725828654836985001499076549784607208638236626855985260459180105412601207394181915819635149797202206167984998964628742561913634727908312396457128934419337001128345486844338083210876709628691919143294039820141264107491665843298262249421071488593252204517459465634216654593914108588332938153398451430175001000097757597098535030065433845633648713790036662624971013890384416461162668296552826714468250103890305118125535212363836883354346113674012991619516722977526426575692276517178820207048147658541644171045859113506292041614865087818114419606058931347457370412792358459238627299426267658526453673411050532114513959034193941106355626420845434551356936982511397923929247459041106729523815689115913151537032871530112055692915369959512151245587241161732381517993706524180596302943338091417515463110726268575754468184650703571474877229338818654565349334293316421885502003448450555521973564936644310365978356870766624997135115163086083369449903691468117342169950664393494071842868691984443590625230534348358407978885408396723936320043828147655444980220095949480877330599237140609484400098775800958471847096580768393896693349172689367543798166081319476006010810876543106078622172680032167412040442861025146499825496085475792915206654359630902555405314646483589303904853958194352222213026899147174682659490902746225434242336563384068260308367577739411946347699271154709111129756386649815120452563992892537517120104933999367394622726047043251887764937606968237880766531432047919529834261635021518322305119104070235039316029511238094092101307094029835157885274646490783041857229068488673837041391985045341932155326800365259805726507815217670056377750801824436075643685835145528816885946622747206515377912798179220924734058086986378139004869243886079183702242427139664523526823569382798086058756752267302215214011326086242515153940113032532563805231135156323988239063641146167626051630647553165044479380947215812756694722541421630516693642953925189279403274964543418364544409953415017505504167175994297197947234811062544788435120604142196985153239446086765276733855961188903799172839354681674297540190362713072890157316217824143179883354185041856641889820696158891670271625125807935218071109383570330495508747937542731983937105833856424793432371106186929307250478606218306008965917065662105278931964785350214568801624042024818385270028078415570919840056965234787209664350614100039350650927824406473953395518419438759010846921028222390031253628920680221776797401919724482880185308718522165805305785929853137107138898594023706607119425806987412889156713593071353648247209120896953168318290098668057151954021931749385887421260940566809665449960965529248133923850758037312841901617841794987863825362087815829944175157002252532248878365380051267541555637020245985459117240625334537854005676654180990524075746254128401695676661932892598345357095726909873114615377633314460431923900860595281640987913956819181626523364790091515482029693284794116110240604597186109317718097030019691762834219171606707221250448323578284191371970838701792326856532432530652393421241862228277330553332960478105505185788763031544066595667752277789280181286819015392034093725422000726137247873188575768211364893675123341102635266141462025879984648972998697270203646494850068094416797022548828450124581924339126082705936606483593433974622444809603969995080341501977691160762003426604216383076161799200216583219644906897752225070825400429033589419719960888825206995300251757475467390730836063197648598316667970579837318621015162272968235555416151369291935311728613029883313224222559192931129759209729500138916570088619316341799582195045634320539454164821895873600303423970843926939136502597351395394392476982649710867235629755663200167510004600705257389286923758514455910198360755027770675868227649559398335398650187473106462738110132908244140578384277519429863055897188656885983802207114522987134545536909075163795631763915283827436354227166332065313230769565203106706077163006936216998916457554066310002584264364356234558172891890536586312649003141846326476457666670247623904771272798978096921275107235041385895878695473070846644990082258183321804808803422235290130454664700633124235149780882913379573848876216828818189074411520716146358612158545710557869878963036869026894796874830579289009663969103823090764908310867274523724712543538445078742761614561933728098916501612146052039904625560872308532447274013800185078414056485724927970550905633996197235750532494381137181207660745569302288322522009344262529981649333601770615669843561473527292154479910635556220438724376249478908385819772125777769598043311100909555532137632309301082784423546411557118782989365928221355178212793364045489270833500296581923922306947127943880833411415476448056836653954785643850638060620403041539465239580845092321189088779949126181163986696986619889057507450908269641589599331031756018522882550908841581675414622475545172510610642789959479407715316801780508999535446967996788014077527428923799973603273604888805487535887206965776804161635311602513493044687480995824112467856282547524227045713258594812592602010391943839115187228070556441316383061818209770572304075408805996740701497914808094539418930097868895043781805197597348671671555867106997226140382546192959330534736850654058137406566112096492722381789873267362458002249369534254600034238645357785340876235153805651001548576832358318883281277947988337025865306157955360908768392537993462379200061872491356316975716856204275396547676163626776517305940057518395210617940974759160266450010033896045015828264218214288535941641921966190662430967955310350290118700592636470403624088601545862004149433853844585881026854808301676212137631103852308168378019767171318225273065715633682827709722066876067494245745184263835406952028809314464654888324307588227215421099142692843698874591088941679011039860261557647416652135971504551637307656621420032909031623824380720328115018704168022741396071540532529145412728262792817360966310697768803391692643729306557568056958543611152682947015019295467497159312939708223804683456522978621274520150052190385723786800211501946551877765180680071015788654064604738868431151543848055740730922395638114996486375662566611539082755513445348646392116179043088854621653314084032438133938521498818011499918739014522115897635366247530189250318568861362812677738097696540366508913940231079327604845988479059921901509692737713927339433246070038901158085048805956222826615172049120109951156441648538566742199775083804610310606170358288508984300757152643831173777876753211002830324038472024026521017828182474454207576884654261086042066739681186995975076874801745740365663119228636506133544062663701440037521866441550329679316504314536929884669142667565347545237343218935747596255276296107463522555711259732318621395190994516912936894540156660106683492742649215206755543460344432816665388172020365970925005930546475806546131822181886778715388204914739078202445460810777776522373856052302428396007206420812355435122329230254013195671009446238194099708769036734117779248634433833192316647118391055942443953167225673202973075063780576943675290297981544345815092010304370312229843901717609962159387093766647804100146512394105286650045024212160498293128307913303132072816027913949012512290329152981034200855636965868015469518668808914869778929880375471342986310020622928323977607525436444564353236721827263323578490325420495711663468432688100386551187258550216891175955921015109614189752154302930670779133734853631311340106321121954361409501046881987934807667496190555450455824913200350092420702642325238063121915284017313225931123421518518495604372892883299079060956175447162153425910112810279164251404333116000233194611399069057689676353430770644547961121510087426197683179551742672998908973315588785638226352985825104562314675454252090767203273222208286150405377033929832146288471703374548990383310184265140391248082666587216752989454572475297560918591897090216990320986979942038053394194901811384714860044837603390704631332055448488571273524143578969760463540717477488627205062928000465934528992787562210440731388429108929635583425190079683742629892988302273796846924639759764117206563083223069474140033532434403774675557542257213531076453957434053450738846012719266996392699909512292073196606345000916196938430763803547579307072003764879067542314205678621589917783339448296904799013431270804561309804275692126206784185876167498476231598597489684146237424820651986545297022188317182260545473972647003831484852629619947993897495515299671943962958131522978573910958840876017546318764780551824807162796553841269756287578087958629298420278046464750982947917413675908016791588616814171557683123528911206442115714012292935273158607383747565724612087833838558085122476288250416954398239802839909162788329280567601867667983020032137456281543138079331850582688851488677628360636380213702051086387969786126123594994010227529789044627733098631846419895474720999824232971410412959657679860029789523801224057178628136223670892731968645745400042041828902660600708694551504811248383124018053645178264567671629191575879708118183728147490354984848043083348609669676684702352071905006592506674469771768547942652852271119296732647889305903642140427570786888129184394319655982175387409768675970843373101112541754090415162955450689072015831529447242479012807475176737936833921119844454625536660411413548498043594358851019147215481805215710437969834612743345701677071622250968170844999203484589800217522701232422217944362039855792855463298645902812241611338730912841669733105845627029896408720108900222813391264478445583389316103407963764138142174881353565706706522471286658067860931790829073388810512605808358706338048711038787848279193381658285841062301477502377119503201493931755515120188290089244052558175641361209875772410037690670328304427077888823008221154235378862988508234436878782711746829218786299843472043460476606736761863270246751703172950270576547995030657797426845504012936755530747456674928188501438104576537901466775613553868810014364407090188932740923429621240177242338213678753754502590393701824662279119901744246296248762558008486815719476116358361997376308574523647922018540265540966736130355292894777215714971514365947039442062777814488481035605083991636028317352153781781587936955239818366317922720968916913756278404646327493345593598297362478136379385598652114152428548324239665294266705785490979795924367417141797947797994262035712543598581681480138793913587713419022687052950795773928443342188535086944060040247471214701556923264314200228084072767248422832676270180898622509122884011692992916832088912935242714071425491828867067030645110356355197166863706936576739427209061755450355639621296640588352940735700513906957057484776171404682379042335746506734256067740587697012139948840844250137757570848717584433278594832834300505138837613171551862088090245919687036640530412400665453723780723506530338717862794313045634880459762850684164608851635792767761063403743707247700946728581390082133529954181395320011505097812434572723585150859635928715805046251707852540264897898344629346216419192037726377594192689506680292258811517138252723084305808776505721694439861590737285940206315976536285746898642068757395438181731459789205706473979139610342796754992244135323666183276056600524144883521861843582104419286532257860322300567833424945898972984137119088303532933014399164923033727650455113887596729856091952745942267180849837798582771296790096714265334514671661633919202356332038061986502774956813749714694193954508709305083197059369236788375196509414506444772550466579076878762276506861373392628676142382647336236548577358020280369025126165196419948497149891549663421010731660777931515675169928225851215287649844052154615963001496460537686832510806931984008660482017493688469273988689435428005594956980031272339489796465501922956504873601907282968924383406705926184585367388217193745263314817342779225358592001559300337586565848928467784324755599901501702345641891152919081955345703129644246777787710069665826627019972287328422610305738287936823321903767750251864318212325498054581156267593015611117075134798066882918836747180539755859108969738569905822985589877231075192862581341578413077124924097464684217181468838123735775382631350464993338560126340269139845333237370966538423709318370133903254967091663739912265890668769743509007017411818778866753347662153565370334904083769651904202501637977141051350801399996494136038866705524355087939823518041240676046916330128043490584942011446657738817433845114887367266903036266322457860127902094697226442089169629854027579401468715501887922962728944211808031636631816254211838522003335017616075816338271026347389106000706917371861249579452560522363052981627471306690247780218053224930994091065551998211916654085515778763313914585118533734545388476624759167226783409790515348630871766972012997683706847038372288168849599357750284841758468992790687608129423495696213058610537134031769882208908965006299923497757124949928583144798871909804663484704791858191396487937298483857438087036578311911159196877513374126951131461339912020731947950793182124419396884464878103454084249191375168532469983154920044331896546556217762123667070155922883957264247350193036304382204399185004318406708510673890335877321995717403838052117765961163447942268248620537449369461975336634095451139220469475753896502231806209089021168311158427811244499505079932721456710688584677854624624102024810269918706170934066634191267433752962063757294847065005824514703199018272944194457945879661884801061942381089188917352199548581331387428874725772273304377191061563505682104924761104452505501574200424773674172925107859792713302984050100114858847057527061732326297148526097040642827961150694135732575944345237918586997749498916827817271345142114968488873651031124962032963725843356813764385008828628629670876489515997815017060524808464064065516531610260468555074081708997096855925339115414830077498238535533629205856315585346802098135252681262464314887745254341262567085134147640205599240123020550542029412478508836557288117629458158711030884025373995061556691093814391433841541082842215104357471584661466784303608221578794207293815673420356707730877055805251672731356932698651117181850981124481660219528726067757000434360393617932518334807801025708142038236476179101860843120828363963392133405386487817241081407001215975216953871857887924879717466283880415586796908993689119010693886894982108687138010156401146729564852836260742228339787867773152092073859678221522981280110606336653908747755618745740884008359197774383009630392791001053360043098057423404919877633447278927657692878838797589874690797478219565640535502208690113711448671713879621922311022986305538159039408063145152626944506677187733781445228179180612792627797171099830051957912796577337392788218262717773535633693321311486550839676960498175831247374743303797130322365882418780340725850749886683923411507615212000344902981008776888163977070220074622205679609152498862541914494086566301323496131805665797437468819514894605745004923014450456325109360256282400565524490957527423666568052352638396476819733326034999088879867724409458949666098527366637886980501339485773994847248131045612924644762280102261629774095016353145718990986809417705248922322223972834659932655942106019052679926465349551150945254990221240181967931701121957106027931873524183302789123517528808753230210411189916520227202747877178390734548641097119305588651550353078915735331175417136910211717341220127730470464808025920463377372843575043152532868467343311479563348503205624102441397881830136982801402520950810489135965277589512679571872291674712825304868003856939528607631369608730532722083748718337493887680073106521330513779239629857644334954775926003647548847636525239348843422476278801699621583406862327367736879064300554240746912013139670531464964467833279362797410821684501536310673288275682994868439943738447059004627451093577469372487918957404790091924305418821036198881024700561101905452688385329034929257739689073245146005108271145643901716283093795246721319440076543090841720279689530957512322898383072571479249589335201106623226069475520930020338534784768185805296910966229945073864911843543750540255570557013752613476935788251602333868416590058306960289382678939116264560456865412762621444426855282000475082591942773688758393616747446741590856054973199852606892359537591361714789753797527598981196987190765043043102444412373643481817318793246536312531825028448802098046015512953576283035496795302596376628967260792405348451210069705926562055918882054674523804892534382788723824386378633477116463731438367405087531922248230707883085216756894888834873327427124438445664456262295874520575368141999178472331796844896901254021267926478655924690244765641158724119856050811220900583866966441578372625296180981255341295054959018348502008583025946666765292030963717335928069095669229646979634221762401419998402623751867233670149889695479894826200995091736658954835090016951460985113515443372408410474883940831282974166037049448376167341057930210329386077525160218809083002177966419198693946104911925408343343262590869665023514850007913799165426590669905902662921862109946364826436273828178938890145484660231802909448512990477430409262326172408644245106696621047711497340176507788774621146316978704196679309839942961908484497804224461323376618068472960395037080679524937568048869115394771461331867156364450727635161850004908671978019616264913274743454292158395261410324471887307028646690794125661918525296679372101612369070564803200376908236360563527711090644782918585215274344723610698981531627595299567482375963746763640955496436009703500863874905571027266352934702891254620398834085938528298537197349128086911977470473196119974403880506378709739226991616006117660350606249925417003800244813654755022605599063894377759459063429717359741081632034219587568132806497988758168968697684801918557121212249334829249823956404472199621898408826645006195169076463924757760357577392065062963265874060926290826853435556016294291102831379471712246637754370695273814355532950747389152282253191554176849534731021023136440368516090656440391053147094325119229218524638338341527793851642265482857313696271502886827372168027265709509405063948706780739853820577259601792217354478576774057028477676316923365040238610680323019083462493657732804977844844410196486847291245001276071250030257998401533013583001478684659705754258741075030607674060702092303987734953623009712960908806236033329869787812621349990008193476130103321412844658804104130533377263317481463127023374493258791553422537793999017006477478427165550321804666990287134994190868851925205077501425003213626453550862656948864118773132799797179761102806806494901514226591546344810829120540690825115455133901523894400445793508411441401186653430856810547269843777372903126002029573458640033855538098784053611741216507745932290042775557753913968305727927096726464456528735281320455980077300823893372095050684925166403006866757385420245590180283879251447642331221968845780281547454826567185479321686745449324978865153433811709558969894619881610787837824158992088534714381907727327472016738389148329007939386741517430984100446880172392178304723387840537341078274005943663388976098654196771863261904995101309637500369156247675581217889862157930986411979564129366020495836314373400746057694171207052337458379399185030538248929187766207886133443139464175900377474784402232027001303672685305771742690346748564824781283442391070229601091864154275426181937889799320730685331079733079011008195466385125544778970839588832396467309767813216982109411978550417763854997349019746935840234219989928240622439550542250770374423102464924396847032321397632309630318428493221180976102987831041064963843077937777296183216605496064502144725911960762343732426637615783496515189312641223108186591049535486913044404280698957850249222660979521609250366768306024343786761172889559489939235972584568093190247751382375274824837973480752527090485819603765083697750258036915814398005292899343788000805801195748749568440261733802959490725853876838358296782249806405725776376848912195809700912240503039546601177718202369396975668980252898720405478120117761378687185587305436020245365451621709564195413461189638030932484573370358869077625596887461402746404164462785044748536385533603879699957121242592084756344980232980358520627023020184386596878293450690430683883588265121086256873259477379651756549238433362033344424398672360992440975693352688764985159498064529034787433755611955296746028618456083762970017838849794354105146673034771945715763035509239128612925084708915437888056793519832117080443843746489032628536092780959492807890391875499093303476709999838639701236979234466949957215377643270830879142314092027990731197407409106259238413357126126119565596649919972615320448775958241245816209718906763839995236097489549727920307744780222069126143299061634793153838800825264184621463853037121931708198189789609923038536509208114567334143135727388657436892884756122845586765099677298027278051759152741358489835457657217345553965641457663212311949262281403625376896958442698068049820842684590531175426650426369270108589228771996547994194589037052536828163449160463922960727127221472812387439748171906423295455408006403829736626630507101737698377783636372546988968406365822502634759505185683297429851390528415408866011396109139349080113670171048018542350417969823334248723001425082887183980674155048648536093065727400078942054764970524124804541095447902357166229527743545485920502458163088666779033687430132095388898085919716596857367848090670863027483772056256621838737616227422948192482498094323012544820298032107227062937995088866829425728902446132729192869268388367233745363211151823779343398723340706332050338769019982517587819386769790134330053368532216984698296548816460823289138119520871651801681049512122818274113053987019139959495981733929091859391361015133257726739862898925333990151366065210375712333049738503680865130188467317941955175146806180224529099209584764834331626196600575198920047587610622105880132426768311974282343413062040432596042972190770565704420091885839308553362176890555736536400161717814903988367124244218815002826127686226928973139960414082101272933057814937528683888616618451676463003146953001485333934780239410678909640824004814325382916815650475561376063989300432633846619474412358298150440878902428921015436485611467189229185929892062468825587305227828302280262991128373298874348082631376622835419242336168795332578767886521412616607559428918061264133804048154314707577289512380959963987123402511680227928373643811380759248670253984063156571224950427855748860875835200346400887748323838735963808533120737732910383583316524518615928686103403088341529738133437722755730768419936146033863114545642535011030596136856707432616691023006347583348076363109920560296046881884819648695137483099647562915312107629085843854980866358215347298227696667479844768277647855727185714662398929898849121323161732294182070092764942619262480879348165648185340471775934511806668663631582403371274688006460991524066356684837388741569382520002000019954512099638047091426781260907640045650570431115516162501918492518861544900602959405935757280070621104204003780791882411221931355652767645473763091857241162717163798417094993803269791971302111525544113165754642792375412205107134376444966282584386838547902035935406719772082103201659460265732815231168122845779220779036696182744652486723923304592557548896067094879147913579920249808435489387547548608446980320677049764519252546872452920400140868129761876910295267351076533713274288497693824138895198427464523140802890556195779235138609623912350967875119985628294897594481973414269470602824707516607647385463171874219318560802740896453145897257606824280244504504216066700826286702544186276605452056715127962838952008594056738211830177054072852484193990723259830045695737396837661793587623189770036444360195332216153366604256554906823085733435679286643607579446186721971107565906499815315954328515863349456693926181355361950633266773640953794668817233731002141858266754980623938340895161097706490643636999909691186914755648068319096633853194335307977434905488546091790952724111209328047781328021055377124889267680851603067920224150476839389579515325844541371273808642272582069968122519614181146692931983753396764556999060124687727466613789043874676578855405898589138451992864169434715111937301050270308818056388038862522352557362344035078426785029496182298408585796695838053513742050276541988967608722519342192899564806217719483912889332295852507733095542292547178309988313489984353646952611626951566667276196984099540232383131006016190782385843053927415418913589536538218720528977503323747709741235601975470639064079254789054247317020951780375637430027962294462906963586060138866294171007032968540205134867725644225378710957451071249830792540085505192865544022491875148136531806589880402849575847088954323932941024263346476757123058163001271718139817939600993536989208227423400723173386327467879200019343324925388108312067549847722590783980377028686086997748532534806726126915932105996253559370307401481998426654245525964176831910502095505085766352833521270191690904995891667995272862913495760756837430159120105894699124022926066563471070654426034795227925936562842126722140557031549318760181043528393887557359606910174952268890391472459186201563215924643929780222051709217051008258015482345630650335240121954864421023251640414015326024730592532525732680614286905637000079168180602524350712835718946683005874528225006344627021357838570485035016127975286041891532093344790403668741370208728620606550768137179995050168315555094845691427366670374922142543396117904902980344459864920959131943877364778308629577605685141848938995282474753164991537796084323641903655709157739419110682202614683242540798358352733227930504338065315065663944223531042230428010377985861805386640620975148567116071102336876025431993055658804558528225430816227305061704108482643243194339141967878794450277530601080843871416733955110397470702066034956907997976637222589248164868989691552798695653508159005711316825674796398260346836136157224351083994576998646848581335331372910693741264542015188243208294082155382330150273343830081020146922607345293421518729729903805541464986518639606506164619405096920570656159364622071927624512274534462262857272932122805494669592698865115146794309171959904453692909967977810843288437723567640180663971704333370983843023461685075304863226775812124370298898325686236225017692148736887302700654629613255621722760487519435106103292044347302846298410392753514693074401456650987428935860374671510795449289602867351939337819190918852112715548833758191696203382302014005847302974089715545793954843910935505879643431675458519396706333131821840505053848999848844116237764939282012568922096915450416810750577041197801467462966389498770183564093761673517243170952905207108050928168616233331157746376957619143594871601989560369329525535713345358998049892041418759288336241051264100698030649023418448380772161312367311537049078083148691857426463667219904901685143476398408184047126656391649527768726211814579475468493850549076276403626989717687657828544910527945983057641460705221792673403522259632218208201326252056972297621514429499247191818791573852176532054238645014448359004705909804601852443034442239150733432595309831062863448389121837452103241347529438351270971370770762827799124119881272120926898155362501621103423220035561989782540962620107007119590308586466697338700099620329982743990869515453454950438619556244724678600580986686316451025596639653247427098006582355645354019622922801905901604306234717416538460776988135657103032137814193565652043053672488390228132458328296969245045396302820964173480484582849563538360046104076080226754101193654424952861013969975240160687842394133672119559871307191117155851417731442437191299809328549591090541031765608428326356158607829735569187571369394458656863997797533915646504426758764633352310607209287816998980927525610048010153961476136701970052869516285299016525264675001914713628546617065137938450172788726723641585727930205325754448370275283188621991911912627114407058710889762826644741595228596445406749971004119406360484814029582067293743801987758487855489736416352720372063491923701353575806499829207669109383907823494697558220086833108022355298130651585331434466006549767277935490979419546594488456821286247873910747107096981059747862549841720079609949069057959403413814369215814508983326720913950479146052016880995838796322820367749856810983940450641064145601869733163728680554314933465175860274065318726732290805915633988058967850955648550233055476164435821652317902525453510860906595214857518515338517281407469115407650874817065110183204803953002013573662202425235561422890231834050850022241834900695067146462389965730728748916560414292581139014571110177142614091953781446316518414976955444018173301293223444119304260925530849976899249982319532834640873576177842090863159167863632395720948729465677710951384648351403756021877239913709829578512366857788641203881562520576306405563012763011788376897159013988406334523642185089228673274851491683175569176017700807301633634838530262789013961682565406146971788145969981338556499080920002533146003716054333883554551154722081447925203941331868798043645093768891146376942885139078502691466894956314643243328393410105124965186856537824589946230719717284650632091737959790333661262220291357284124235026844080933248673713022845347076667365598268641603215939753680523745698215962339685122816757333723057705331251129503487990543723665433864639158319123256068254780988140136331502770525415233568198758409443320893379910263584829145309789524879001673486676958772230919651621929918393180487242447388345489628020173314106502664049667508073493964798581644498805944395863028165246233338902087567190344820287508275578715731404508001246627931331884613341064398810181070849200090753614336412199955046675718728891040246583199119016916071717653057777643099691497280141543336070114299562050758938235185140932150218507082537730193332113493512488864735372614716855526003898036922928007016388875994564413488564813558771407306293714593885044333668256527617860825941776355891147963696076136478544350565780030274516707567185069121092048640979276275396133832385648246120480335876330387155964307874263136218841204479513987183809753528038430847097028954222462769733385509247509572602767245751072361848436896000960639515244804491760258991237407297632791800760075518792620609185172996805926388397642845844075669907676474886505451398098301887683328225648234340590016509888426152153190081901553896598096128123136985062590341995350183726686328441956485630902856180382438667049193072824917952816116576651420915571863634478859064112244695400793391102433853484831927793087762243051958080545905588401643323913058610274853152701256614335773351969831458930756209915979276156636071273638973738659554267535702781639408932291054138542881163455978143227794849966358184838738340277924219625914635991445945064058878757742152289832050332908413484759560482964604509008960715739887757551456634748221378165312279005756521501784537508228879443591126200483534750582668070513590275606027176100732246416026266796376452235575140471866758128964190092449904671538321320242615822557318277998705922738177474739326624354010997370406644708467326970424409731048505601699138484723717924819679741595708521183423901770865031594798438029390717722230423768926678756822406662787462027086035707036144847128905209140990823460844891675123807194620890091638788233372853888116640958451985668362559995107896117483324852378811175173960049374037641424320007632292945520787846937653895090430378287808019673826376738423647730169785592644017321949094595750603685297039762450198837660232608230999505327618831057861710584553432749253744494390456465590055457223487673834925587415268321556556609568945654794880246475615972526903890478700279051908587447669025481051691571659437971748463024650252270743679684532440258766501214694949631241834759188708275004348786957802342015647500011287648918067029813844140604480124202623928942095983655232016125698317510710522301202026139983500358497442375934151609258853081439945085378775314798551586438195175163555387732593695502219833582758710452170091268573987128452703392264465465869362885625497833344739391919375608783147575901264747470461646779727396593942114688045329851399445029366718510199656290226530398283746489987640964921174871746480353318586535447758734803455141168397441262734003793934118923857224663010004356099393233151550012869787311832105562879097659786360495152365378215318191234097210580306388594542777050971574200397937335653878347487074076059230192831487168671532854896200928806598398411742095179599127355694808376992354301304699855993176340691690839113660131656511597694914147537934575918271668805522397608528810852194569721486720918582123940337646953607717432553742871369346784815135338039394077317478618406749170142400156283692202688052491175227958659030585418052892547807892835730860306567557224719750273817058960797272101517355820701096181286988533722679311393738433120459915870805942061402951978222933225023036279411597123582081917294291907851821201939956270539947064595636787375826988891731473650072233655985623556794801447249211252068681517816457735808254399144434540393135169714555139306758636946492754540292904939322613965222910680509494690670393602347119117191413377942020660846092338198202369122716627808898551366964962882055922284598688531054666348999918879836629772007262914673601717877394561719339899004398300637098973182011008599783293230014401333797053564335295638433820421446728859789142706145000118904698455021138783767313895193728131297854820167080979334287771817516052301771797776341735965434252005326940243765263785984607606591335444500747388769078788665714820778689118515951666467358142264102062903184423439574071947000429171909119103605682599889306462755217603680876660726007443948330445274307996342751321826606891102919054013301207389163297632430421979382980884881383468992826705094042234066006010905153372105439230778339910982497381415464660375671791438262039680420551210516682615995326071008812106013015941425861478229263986183731634231259678248188770617675906082105097102402344983806361052353717805015491750940501107522285603954437183969184569878226081485601382764345906912683268703013326630292794567401918524820774250818573275951602045074431703286509872803508416120096091009469706783963927367559036776667927365689584001732198944657471195075746648058325693860826878996288212268759892406307517148473098860638127871839222339754084802516046337340782391241371966616970272607400303506774416730486592771114810975646530502161630417940498297504648001318471051662029540799231237700190533901526969419872830819527009618101994106386685965574117836832465039593155422731527433161519689607595050216594698937049271713514410438118471245379888366796587806900531657115539023867139554133909591148165406066572883089116840617013306572185150945260260815555199785595408326664172710510691793486757662533589425062235436387910861592255709487611144829199197738554707924262755849180200090735477787867492957610907787612858851507680222842590603862119314664888981226401918736343002975344522584866125828667178894285960549165385716398327508732808471702378108559284665759246128645471092480661759458810969815065650407145362753098349281017153504223041799129115157039660179755861352614638450945803206553237694039469393073014520122452956068973179902330735048940891348316698026513001102560300864450973952674159512266534124317764052781092975629726126016118449391993988168521970357165972323937175843873926421341363443132175507154346395693343822852135495344876411144966661504349258957485440123060463593134540630370801256295821742930565814368431396671820729227806648453649476438791652257880935503723348231383928577303514595861657727102816127783118894142171909369540543126567297016671406234234289579712634102758109879045404321919365750082843934999059018517399394355911182637410329078634549814033871803407117966102243526675178998921813024787590745110999855080614532823551797294478035458528256862399696113022177105278997318985978482152231212459844423455242455994561130512801525690760422959271911149476725078504061859027309840033614952423553853874801094005706675088181329977704512694541771733345781864343184564811654368094586094046618227248453431928166742881343571064625049064194079815378944093129776495090166525144755237334434518025162178744167986166716493798064695825801102741039917888705230636477271672295527257824332499830084996201511769230690712718891750068269348781417050761557283534643950805480672926511743400857455853237934124875109636577621247810770908616916516490461168098384859675090873051117394473453119481392269894156318786779763445993499582791647683109860008142802495094581337355946830258134182610229667845293020726259471379822324073206420806657102281273601324059738801807578961057128732635397971916798647346369679389591289578103766162507698858124487099412278136759498623125836400747766987911692805668726355029552247432599759893984827077816172252900213431068640587355929494079250341016082975245158205942292722156585228406270607570472501075170661633945621194120167558954837849816395429235918572230492820885702471063712872571011675016767816800899763083706734334671754537285773201286196459298877449668810415235197844104769661155617364701318283655777335631875156472505713518107821236104790384072237760271937383470324813247522021631870645051089210329664083416263933287956339724039137237618175803461649547027084014955756842908979145763602735643328529074837665570835661900960957315210156549495602860901448353712028314167223792155289138599096179116855355548549715627032635674630147927334165714928289062622558597996271875006073070408257190569705474272941285944276623489667702318774515892621057812131469159230527645719737480979782066474835912521907981863547090020363599197610502468932100936538353802100121319227525394179521468989718058840352870809475263106903523728278636771674244123334742965841980287601734251756764372970124717145803668101908767450023008355525009391370690491724149313470585305287687886474170691508757696666357253377713524607466471554330093829519249729337932997653338806021995765849443916151288083745844518354871992537605048678901989912056062002333302497387359330572032444859375253870738311851383443723468451818339650518092107506011426744675522858702806351837301731927502217280280625195956666286553669396178622811165250252369850184642536927093969564015834814725244094497529117337632232672498106804151801116611694475072816727649869887157768330924275460522937071957397200857857313708089205263429797263838190783442810237351625010990247789018612689213653445063790954902488656720710827267202467157462087884095840942961793228888524311446388018676852708603435204841305440447918792455250917687828427752671086324742045652589615339328147455378695587103029934194400484566740200130961072737113401052392442597669126607436967601820533535363590930043155448695765561184498711883201512071202866642764422488785545788942541287912569845680750046871116095283555911815184608386552104218003950315601798668727694700392688183118244877608606959790806966370525962776757649779280530772790607872747395352818384944933609538178755519631911406343721575509858119417962319628305332005376119648599141546683296092150519811867219625404135122363257805992668789999426993992095121685286960484078836297219726950474653056767317532231652039865623189282262388700962691358180881970193802393211510390292117730551185711765821153507944537988755293547455846093865321191292887256326775908277411602999719697642435634175642285730618769491550762450504584589658754746359486830333104340616515363523596779920754270093469614076003139531280791668633888223787357178168945065365167202385903566188801479446973048046231148957575414182771997564590355748761612764675047526988460331268787516398336021289091892777860016973462600878033757544701769585825857096222501148981499390898979555476243426005624436355586624422596319181020154867697088379820867401475264518967103692306029603700882998635374331388809744368889315696377216011618242530888458293616371269562185370132781383814462337844143137269060725959399643573637597061201282451615334679621890990163491038759048303678642930268758445178816187401030994824050603566140276568245023157581446244309386233508490633969394247406450886300695688825737953383606490775521834115919982036193061594876395957542335561019038994473699547436483760008629188233053769184348575127358104296232428169958112754839461069902892349658605047975811252326207770493875158334432968407484555009513570332730440928118815274738139652327585287052514825848313474149791865113099997457473015301531320818861247637164875191960141836384531630793645782546806033715996666485621184204609390539727128398295500565644449806037565117113460859348169910260334487291635570036091768962967144218096302926241425589360718747268761777767568797325763664365486185789889486057393170568636797167652055340795663596166762100773889815851831269630383926990882124313017152549954170727115792244031539088113348158197724288620051138070645422968314066881213817422021667336827555639292048250504036546869440256047328467886647618868820257001081796004743475158896981222491175738253793587754016526553950150362937380591654975893283807270604769050445515147745462863690689885753284341836244041292307854460790513466882097347805747297227243354817339364588923975770093259206222929670009124806912561401608797599653585753143530647421827126714001667803232328352906367646279417338945516725688535696628748008515796371938927008810129291796232837912433898673268636956184604627454400227055362360177435363701384859196616937804707509729649937257472208692303267274967200927714719747592409887653112362981079503486034974059434142500723354437326974490507267864232446192863428968652167880513536720362305425732680547919858340134555065070748112233979429354910322184799048901524399659000318613879758634587723995330109025321872076010673975558494882081200500506263302509365170917488632026041386149490303429802141605249500147567322099715167969540552688062685971146520682652615057452386791161497562320505214880895501084215219373148968974320702381155825142059868168630192237206215457374319085979441077260534405770336404576211839376129053657391232148127145929349639078503710961803760245428285954102940236259691673360991797120414396036715789830493752641519987876468619180667686209934104425640430115613357011351061882287847826686182036594589779767838946654213824202403895551173119441776088140651531875629813599339021224590558925459713998464956843705694918888831906741642164151031416930106528632050005236109681626977896823923378324638516068251033203721142759249494857376132949957631518278845714799807937319479149090580736398159742571167559984563197934132174445759758321749497454653595278722768308924785340317924479218634336860554683628693078881641277758167072520110822810917936282601270603860228491148865491549700655861051080380700981695596777357949555924854067675968496328242291074615468229324071754325642698524289084562699882809519106046490069953516192734684535122044061767429432876489516546094018087213747768969532869526574150964356662175088390011612630613475032691023100494409981425821689957635503426312945580426516465670036932301468957229446493343756668384402252974814871827686288410891018041326058588324787665570445016955013534334312802484522445722758786766111751623184206616012812234004462304025607410074075431000799605160556248973171292756157607522056593450651239719419042268440249497807191501833506453647492738748110402465333949402627551842038403641953040457471078871738555045201811923051220572733326010155751424971263979524212998219261301447952223118083415766339148290380784401143255501384540108132782983730790772171268756353917729899048632303328549046826567267401502957671500087427835576876462982391431143748560581310577452628036423750663032365892904057830290122068352195611371100001455925349301763040020427530920870674889248345014752895824574743677289445428439019727186953980962284572913961189769802461543156194717947271176771859658149671293182939861727243951954100546297870749796063743976348217171292044546069048743481976342875224703058273203234933709226802276995909988369052630220917299644014522976309348397038543126327564796659101910174596742925913592842133530650125499229020937840699456152332460264964780446241614352006011132364152421996887242733692875202631449433502684130942254622315414648462596961587935199886767030785295290410390896052064757828439877909980054654934136667213050055144287704179210664054085888023579423791307248845279525900032576495991469594489874215921700545560105480046830153958959331264109722551265940773733731751502536796549963275424733745077077941785738394176039934419045949626934104175916706196425086384693415792806569315128440034859936535025928072588381118550960408563020912986842557849945190161118212033233080019994511552289338044943367238896565972089776269833123322752916127483835277536286955562675536332906611427315301315479368933284769758433600521991471963200119505957587445620765015534576763186778319580009861578878914550302901213746398691268097989953608809396689788015683916703600552252759897238677364321475330092044991095258710984745572410561664581831628378769132459508719287595171699043747208437405966025908515368052864070281149296374851901575036842261429875491622544224340259222492556380236442847628232753747227227372123942717910416637809980743419951511779468441217569267843651289561729492292754193273987997852214039044028210030693550719583303105189768808708347686943424141113085299900315055455835794943597919754165298598357610793519398368517278725093425371659378405008865790559777403434114286839650121303059147315574521321924764798828424052581413525523180595627069206064034630091453673641650212384821756890409215425364823227016821091291372419730638158362297118543381315856737308730319600489602512863504380816733077071680485723274553525695463815791016984332414608018510938680992745319046023662047115470290056552585826343403700311244764852359734457977689356023038378321807848769361724185841715886205452867493959648841839772522358943087295686525211737862533875201474363246811648051136539117755817220055678708939655038989191079419907217037281569794621018070583812811453652126559248397846380373328033031327966675569759291999535810885057251095515799013207718190016680540488203480190905787334181199730951736842047869888461938336264913133037232849597877299269092219213698851817091106125464827457800541632827720434314001765790189638659232876600239300930363599324413449651098222567330167460427145736331744950995443426773206953212445349526765639225646287648934634925941602597676821298434613075534788612543653196390747522206059345164395503289881208882316102626029461909084127373029915776037019216746999123097447469557313079986728227060580859314395999336513819467924467745075837835580216949011348829353835618856677048582853523106619639476190435563946963050058766694489862551699471748400669107542733854495337151747373085716590078846414744610625837253152719937375909755672360798912598812481155240033042353702909267572052317874148374717490899711087739918449381085761818311305145799854540191527403060783178405846785428522609558378465237825591789813818722112783027060379516527394106640291418623349281493921420335761844993932553565564215698750125555497165598839465830659826301175676388158375309508622881637071123574934770478966997575483583290525281476984855856799919479833871030943236318486457497763846274045464219335691892739518118791779004309505950951068024221037023700767418458706523944172485626704659075472092833973372504108567414497651544752754429163580406399761821572075585221467308803028292396074708033145743601919412635289627965454619672719664033969620109727318022649960059039040223661838476748021056963156291832030232244668478579523621787580005581737425807022658331650775614542763930576164542009915108976392932353106339475673589578853258696497657803921875633038330101549305441891095598433013998303788894327701514460857409294216708365644913492574578561345105510078181394906704543481912251705185805013080732142299040879999086974185893800150436296080776969430287705410069745877742075847378397894826467748379371279542090548711197761739527268532923094373144053316663743999140975317374100277816009642751423393409493832432669693687018089385828718178784182678261693570945868206688815713449710796511755009569541075105559663475582940406140714329681692382899714664738659704255193456627461706526529899032476035433941694115601903404356295521934210284929677203881856260363757431256154572634304983854601715073306755339797643511505863594182060175576947376821780222038857416709444771808440090560812658016604797061985869418236547941466963858903830461242823620245878221545143154421962351007209209704320493714045128383161557634624608731052000759887351785826566842206160138991675807037734643815499538279047255459015500763891202977637159110115340858800223125218021252615443020595164725482808280709810741443726495034171859295188647330862267437342805381664290790643124401104674269338306764647723791608083424391524793155009422322111697017995475474291242184444211293353783058334520150660187256066314751603528474360062921569823393719432717788461736857442541632858526877327515994002409286140822830547893410161679926233196595513271607157279807487481246009241705436351278074687853305935405249373253346868917173704091325075787181524334725225451914198410717110106198969955390028217399503063246380174399188739007819615361192576083200183251845785219378890445771618647369820928781655394565017117924724323275032863846700482540484317133238119505794625537329599817890823183277814896431310410067962726587737079413331963100142616854712012985776067531275501170437890886486812458534719428674508590501033352695472987089873055920502344009264488624636556065157014331878895164340969173684759813793852747448354200670685690040451475165596799768513196800651363208742968624872349721503447105422527112627719158603554028649090750571766841773677766447023590768633720719161244364934244950817545906174527921544351314215039752708983445901607459256021530897363474962685905147683520648024434474335891138932629553923092925319671828923102616606765576605628951823393779229710313185157707182707742751776519228355689141642845741490061712798647918636997517828270048096983569287224211542386732414287710979464580593191445885152114872158513431570110812646295851588762264470358854936721271377764926784810505931535690264955573743979494211026073726598291453691670651020783728885341178833434594374379246547680391145776856883279350502474512099493171108136917832139604040489039850097248836000121041360481297597521422533101939374520690479279005919961497033824970919714481239888319794791511873372377758453845038067089564693147243838963213925321022389604292830755932345506095013032186741707670164800165262328179377107973155341643514820283480145749588993230856096627431983417643394286898852102804209147864123783097809451246767916003524514263885706701783414964560392185929055665770734922693657605727744151883227677585572228858251634027330520409967633852483339381574602054696623115646091608564854050205420727845083597824717338024812676808994762200723439699083116576476857056584201486525716435930445515743761435892783811695058931056960392233018035362860696636551399550744964834969428640718025445299375761803965359932264440673488190219932645735772726065209112381590772583443567591092966510912135245933435897852067278719303213336550445725841075670460068335625396960261915087144112683961727378503863195524583618085895882296645586806562434884031705310885042817187605101897432444878814995422307964997548548513495977588817475642401423287601238741022139536674433214936260412157020153986604567525607413266988072194561595009539549832067730508756246558386612427941214214406031975493919113764889791195565880472540674065744178405624155019073005523770261873768677108317495671223900958292329621287857034446065217541380354549936536079297029053008875044234591780796346880160392294396985164348775699778732279046581871231273179431828670020730534005835204851054043606983755019532811468136195788042068437461637096265817134926871334926857585861543263266821807621108330966657584045595288012003518991970740782566182903634441754896257797102029805478856410029344678735511168210072214671539517746815598355179251866908745898597171818874552180172687988582317092962682104807548399876978011503133907817583760286160518713761778791938521769080320701063551204266094145143761187482088413100485997991069281722176665145748353277594558159655436652759824100846045111706756854080246750935515615563247271897265505250917788841681272113967920996574933942594386323046399462492207759451662357600995145177538682228450426867787704275406588272106413283110724961347391499102763474169706784798456394109556579720058248007825464801765837182559718506240963432488490760862120620578727004295488174202981058413237816447019251153307084423841235095283606577839998667432360275628661772981924877004663383550677952464988614617954713215796993551953755664145869257771166369476127726618180845137739688355635199002224429725915092767513427026301532460624586836168092053143324186889499606829741993253958116694835186400143366214177742582358551459936762895717427357053341723230051888417104823618581694275617828206330438758206791343274450803307342984211780099751713931260585823243601639842210813457118021850811493906203123306226291123159792167334135210887467534196638820587249632288610294813716109542651124793928318458004541729763054735008536519871685426511194415619911601331658739245849009443077707348296370568101650982042162439059237273277702929025871927972969887898607541467572522937796880681853547928278304900538668267603837595806461454780858841206201853557722052941993520011632907833654746502691606729236865102866619180452834445501975553386546994470428284644858642923033665561885989277816254609655503362068992058303513467151528024790856750137132241872064919602501129775025053718540450408695731156719728737291589642756466698683671884290391172113519506554602832057399122335418673317713959086376005322584373077991276603070444155308483682205502311854766382507715650267437062757580419545695185678583007967203107833610852025646362581320572211546618011504815159919862638811430902080891585331637025309604008230872065785725646037857674973238467214340378630894942964786003158363967353439036775959595008468803914186150599560013798689859938957042528101939782719626465353462383764191737149736609026794516646067862664247383412923383972625619840211998192023194597618456449697703773676914231392044293432278149477825574317440205439984409615235241043619380064653151306191573230468700050103126198747378036030554715098282424361176530259172801113712331769756150887728112321969399964416443888869095722795019088131970907627845793359024027106913043457290631909215584201573686874112889177476293257737957852893130293298698487339323235957093485237103400047041884775764832882866452111663058461659100616485771235872840116445098425786767669609309862086066642435534920950163514121582970867356779861089019108036530704908312045218719190089301528663693988782015656061329644029782943533505154967437106841076135397479548900644456440408817103470557228561404596108701704009785863233325881902878988909753573411289241057202622004495147412429652563181082281586950734244099912063871695640560575454994216782144150379467881958104552279767114641173864081031214278000324408300773649178685661953491572226107854182549333861530634464660528723359397926753532002623285907027429340677137934468830678619966579135976094781166292582219262868778744505361594686089633937380246920507199773198129222414284110235809210802393370812604825297144578041892821886291953532171838342932368149452359019210204927949438852140241727758263880619852489642753926672572147443758089479254308509499710905180577968382798686044319315492654758956463684269611010435817316815178642833976952776528555417597378755076422635204863059334538451299988921550279655961688574508038960376823648892975012596897409023684634961827805434146711844421954752939515561430568685858798096655312359803415491517265979709105612757722259909423969508799157712468498626155604382513051782704788126752649961206534592922262448918384664731479920911168556503809282641107307968526775855364548451215991328523573081776911591106357359748353640175846250898509111618268830890030736163863350720545192370649002777621073379940661632535007006039362708581067671051850731490994891327304102447328149828336282453788064607254865187868016648711758795410245743394803225260999012880711016254178903291965483399760429014852516192995399009882332331863921989139888183755358368126494742322805845318616532912686006707973711636619090813399732489376061782604052268781720271508236375224692014881555846712534567094819934149922179421940980238791263657279893724267830793075277656542332745609559225049915410126992854139033885362654946184144964265159389126715750668928083209628719152155382999178874178371708531856792856541818388965213965862236701504693518162080773600208200075994463915777551993306318480199966206586976305713952016161473912728810833040522346800319843742566174550041623335192773292324555642335665860682904119108347414444806677484223433271197428554554928880314728361289468008926572748539101198805677537816329053506077571420060325883397215838565974704114549268182950186724094981870204166994232092331232269610163731928143931965113675493547989917410387238423777295112049525825868620834341452587509405288376778115194671224361603996537119812479806048445021926711407701017282539717206624882501386735002594399077182400222845908719301210163087125452038561506712807914757737589983089835582500287966911709698800693140163666868169533254800550319494131929826527642979571809951627316326639199158736771237772822034236976275440972476743839502183200805347479351335972181325600436307504428353188710654043540523078759754282975677982563506217191431631296275683570674936434000947488654814610287411513209445432007346098945795340766508767740668904387725818291947952542909232668454171315937842889358556348040160604962455218430972893229636835435334418796918271625440203195965218600709558639799609754465863313095691591065528800604834825430869170737051934129238879571600694678291576205479880894609825329079102777833967091488466945105196620137047656677208624990123375892800653591826570060218345651428811188562397792623966779919525635424470757289457681600062478730585548163867998485669661331202609672062825701452274745022099481085434092174964699808260569545630165760508228574355040835762127985580635962400369304534080591166151424242863898163815271143151577002074188871024576307328562518881901773486298763503162554487550901904378867030241713973908016232576283697990651932304571921467076320991642837038403399955050696640946421100331236586795800058293238008832618081987295444153191826095113458965836741274867492622040739880493315810419888755452640229373487512680561222755569275305239343010237182444636247842508088883727954959823557440630864872809498403015725562838732788776712065397104241792765516515525803611597570383847007344584254809762886305790190323808750920526562785727639416097631334397616788230579000416780010245163792548069555700024420741222044013123382623053263770702684489539171034580047029892282490552815515100259135064499070562987073774097119254258005371709111767666669532398800632469499229044745263691333153484431438225167699303381143943648800721864396371485224131270479950241284217996442107445883573426816878233387981766406655767347022209894796433731211791696051587088249102059437665319063300060912243098484828079226429766952696199669681373540078786950741267612344504898287570648178866408310811211289223528584205689774704372738613356713160358464395528737916619749132923089706422681062004815247182025988613774358785298271582877657559772945919111055776377491353629345165335275728152576371613497355188956847691481958278345535710164908503800136257395152688512216512640896619652753362470210913815600087313190873682100447591009367220474340468674188906705026237009918314595201620950501072315521618400756881781836088674707858764650065326901044554579512094898250308593613919894166846250411224252602156590810936420256932478018146487933800843100858739431840864781564619033161252334948150292626079437759719847949849261539043599790611511840619433925165444350170409441272806045641151918218608768353836994789437403351527039862048343531639011345278317577520088228599556167814415698947551298685621335695413831374397810284670710954646884700736568941224593523630745688695817109539123169938392239144448757267523347704473280535868110382201222468809710556292008674785635066529753395476764359475167919217470185905715253191129703308056948873618455697134341049004248943000462232778417440632627391902181121261294386143289204141848658240140626963175498581496532808631421753429188070542438140194016856236492940960867960496970681431501024730086980237996613672559666965066486249018810804024551432192262927575971800576195329600769669104523194012483694607147984744474370206505518059824286137978239467591133320804760153017925105279920746887345627318891099965479911397401261514883650103621108101705063901079825504670688317060073450302758926982960058284221844690702413402106847591479010072400826183840762025846581909187360588505908302770223738674003796074268386518228820957185347376901393034191129326139877185469792154071287030389952318677680312376951972696471175528761745937275973712104917646008483878868370095069984717082111691235990351854621271965788862677428299651274116186448763398150597606123040376844693106081959993883583185549654136820427913356645161876742691199613900435454873563703272007743353450524635775529229445138042199701765192573301037506181593026785647314808982199762002443620558345412353900211371582866650288097703739056018479665924290788231486621998503759298653733751699760993460899093784482316897527781512899888538105086710002529778518075466213452731315451567087543818050616533932391639236074127735922283039967593135177956407104190110163144206233017319643831029308062077994639923821674719857639045757420609755374401772236834213049271675661048644655661173757651933453068802162883919052504944255296453971446870768612238291975779167059788387435927805074768970193409960804041825136544142185126585172144907324138003988684988372609457082213712919799162904574114089047529414202781152335322504742982695178978049340744270749183634031464194198287185758018000463833900469018584342347533592650934814891265585436802437299970992619771975544692293543220970801303345629227023829511576397218004957896742261886479722836619163446592422275490545411525202331898498234928051994464714882422229616888574637682916451250423521430250517805133461063078126088615492893010405906135218044538401264455672449349265414167593488527959409100245971081554146075753777632051421790287174795822184123977359854473433123853403837243649216470763493400759629669120965784008386154778152558772288320482700031027780862059592030246087750609349526953810255575846867612524282925644086463567774173218474550842069518041759179379445467674459742547392735604446992377319171211266640484810358165442684162196259563161631453239691634107966440982579334870540076494185196467713937987053738445567208233957904642181794418134322101923307809473942527716174036615793188867574283414350590474554848412439990982869151685528623364083262144953193706372630978567575296051963811888337865213687814943778227315004660001334300688240124770920595044173844418981399923566213733702135105208210247171239121538150362717920911094971144731047164309510537561490496691258062082581957203870188564639774560366845519141782724288891260942410288651970507650811631710905175887520763848330172029742847654084305690236196181812322328401997869542837710376978375881402321838671388567141298680672500744309797525756427403346516765557282550242987794641943158470572521491770352320695039587408560887940392760129817687675264593503228417886769094794978597571478096111724998284667939016209388094318102875511635059408234141924925866040297251019233734284041747085013430963035388620692686387288815867097730536406098130874775833717803797317090247204592222304563442137645440013639021305362485600000544765332706347253646628731597978343972452585637091828176069476498325095001504210467241758989004499968475269443442901682447246246807493550337584915228426316451032697736155205926563487521972393899406185349848530089493061449226512112314532866270214260294614315264735209684011562154563640560360742615618094751433982240105901570584294388736793251459629851900069677436654932120513564286529862412715905156905951637381539269991100833180039832796359735366271185647995689417161193359282444102111847288975871637259046485861638149017021973928641814580806479515315061967789035103191880628280729000986978806519740614268481854582248771018484497960610287713709216719537285343726358117269066024872987833545884441259540329117985992673807548234077455578471401226012530183630228450243959887647532035710335731196658257516478816343805245294470714503087006287284855315900358701235570661245046393907839716098017314008679282749697026226731401649931724957707793571453138590052700585216315351871936043643522724898107060551454764730571561734783734106650760823356875780949137414455534401296531502343613836063173379302919194544821244378951114411417302710477296072494157880301395011056178870678020883221232476896538049481624831463087905903421438318829983312740980532180259656939605970313109583870241494191836255268839059212552327075758722614692395057685774965531851663726368100102390979087366059117375438865186468664990511576412177022691692741568523890052931346457325206633467119219076981198325137798944978897021966107043995880977579426143495938842579921829052206892151539438619825305581990643645013091323673948466726644533057634536122126207451028985720510321563125338569929015988800462701261805482590847745338337279892385340754087359003430870736502137553332188215593862266175038262268498678776325497543980951512681076808937899560792917033890441003801003526932338741449784955907747093127565544549514988468597382328893902999228422128734692880060568049473817468036273463500463044322971469869083808751047833592383956865645126741813864400869104334862269834146653738391743993670122296059421099647682446546327802932254353153145912517374734291721936430187230504662382072834635470066543408362038953438622600110572639585562434010421032981186738655122014614298008100393031730085709224445843559792550016501316792717986566423778441756194195816449584526218988192520902295596683217406715433780072675955526815707142150459146087821887777082884740355709256139415330596487152071624796244624409446192329118572253291588841366990361987990264358322731275232630289999811134692009835705593246614301596841558985237003994247235829836876458420108455279146692746942518469778195360699245483556011098067973430214473070040175718642614776751924632196381838269765743380219112242937173308472703650411705946963054623412562184856728613484037116465381292125364441126784917867351094236544821720092498729132334916368788580654500990995757104610387441834557479890948718448782983922054966772490726220165144220059913610887021344340885241713366198487689437872749316001004840023810109018187050070887205535952125563108687796591643107722401054518685569117879633373009602525664773418446108605525894949601479475594402132772152074798272729075361485395132604971495482231962466651167730040173637677609172726571739101047766754526262640345566519811148164578621691834832665643563146618454407361752053893447586743774371636483793775110050586605469049112444555828881575299458009333588710642915318547947487154376834885645263903585538907656532549513910557520391265020528768807917804806528024715149244634282695451306370071394826394504057517296144479761367662911564954158904004198315463535743107426960563157960512775730184303215163910708912896616511932100589997637043546137953182554722179139234351565855064702146184752682329709232272081507668694151244736296063307605456002424038693535765050598968625813222002159306796490942451944579265862776697364242644661195678907834780370644481094222151881173901414062262594639890516771197750026642039100109219938411642013578073246918050930905331759321569425819177745338338865404208778382685289958333713715384060400680850002701739061005119816686523581967325420493006630269304857071767091059616818515676341633811504750195163494144432095161157545305205552658333137377930724644686364057124127045978125038892398290437206552458608440152256563692250806286088874981059277839470242578716158446162620457700209968479371270186778045560191459733500590665845062149743051953634380910716516341597149493062614868230572468766040564139610136488764769092213196591356169633155584007897149608603591890042444433633784136925140377057647479359820384015836950565504957037861054658015387248463826819168050202451555848471425662359008285904724765532528402569524212914349256603173207649915351611572772672888596688442368976975409180753329369480079176313022028350520978476925998353489043756059343361821533523793625284765444642993312569545138597572766478522179220876883376508950309422905458018353334965461174504444456468894741869187211472012400916020716100808192543918941092253276874989834473221198855523563335906847904774361075354036486601974099766875591100327191695936251618987489239805196181977693462135602409578000706728365364804389312965838291406828449222994605629824164705562716581785453740231706470408663557597850543831856803139414738543426942042570998221593275367622488245222430725578033628685468190490414093318760896561084562684157389041335775671548398807648534387449253301290235250387278670613220411827070507038391102130343364029553542291459980505050166705049705848635538963137898287583473456088707962169588567005406768066977870122440053297190394438296907904470692096850418502386008885058830978146583771530813978522614178238075083721799055378160295780954016942152377117341857694046423155403743922793221891735701833357702817851155268401949336552978622284524986472887101730091098976743811098808701015835132437462335301266758517108312481802045085387437349025951959151248261126833945616733699162088210208673292800772786563164327871420930672735863512226181830879186369792162439437745203860358076423656963002404706834990323086435442024100840606650871977699278658162891772745711507854418927587279792836999480868748787118830969624604692303885827645314297604033590256067496600192523608540987182922107995627462842361127807385171039224821234785375879619164325478844925671102583578755259120692615411935639910040392043640261132414021881285087287169433977783052337324463669521024233833912300704950940439534104852143482123257751120341367017533896104722902440734071016554843834568040075641665676736867662704498167772923492136857219452160030376430199275113900974484161910434765782069959392008830123929501802383006178737454332970864642740223146932641803799214948538294220874382887851335049756806240397755011570878523821706328066106746940739597973247389025431815641126365370448807344991079016091644955619390663236646071465769161833282954543973085476110857687507779269778835605614825017827671228705629290322396268986927925317633858746653201980318892967209675765665360716167980488837861051984945349439186367449242977782184575126968568724107840519641695937944908728132737481353436955841268668984098363041346245870351748709068638966737384311480991301879150355125478075008591277266226634930106502537624998143044337556202268615977999075869716257994082489525778081293286512849669450816879756736739249232618868954346942592374514520608157445479678901244627950343223691630611245606176199176091258567473966150511623506195268187433930482107456120956185422944242493010929733554828987009102452161063532419896211090141186667446439696250606050564544462499770745102517022459754610857167231230277473838550424047952774072507310882071616266075246692402274820500256680468838181998204345023320282583714741444332307878257193550317000466173523536894684809415511856229049580024239679431357279988914416938893398191329756029247012685127969344320043193549411397990128559029216663720290391968866997093303761704446164994221850972066816982552304042568736742848928909344773833163331199579035314199303543724234065343264421038308352862608909065474189561917027708462657768393372403317921104867561322249141493512555376663308595643604271823010338747188651816148635326107787762439046078252267923440874309210142520203866455939744274147418960114647601728341632057479981260848603290582705958820893417901023374600785760255114649593381795008850967447193113603495066658404929198177263764201691313396948468951552078801185635865128603890785482409504562545991098569641899148039735622009973153376786095187621867633880075441212437986625392731681617427894519292095891756120577402720140338082280567894143207019887838749277361832140973018520157373053166421900008665155648077605878155438550653440162785581085172401635294944889085261373341991160081865239747749040273066327416134944761712726788596014687188117423063018515348715766483569259685693105544618665173634567007090688830876063506700804538149539525282297464400758663349683252307499631627854534352296653611359188912300849060259572446806363344291394107759536436084502933919780508219447277155341248611326375703658967760075914584268387993895534060323294327176352193110307495970400412646115278916736448310241780311198010776497831177210016578688889865552247134842334210503432206494488895830752163661322941905904115474335001295009210151563481162172030757129939619319564353637675644462463167442484209956052850716808114675367069112190507531946270907028308684505800218432271432365347841530766018994116841438194729353239448105748422720327669702218036028396506254170859381803512550410920433035383705677422563454314565694216074831203396493140359955442474350896961965068455690957325866209385067329754280447087735056199552670264406066077520332239582159066284247734616425993222698000194380098249357496308521423349899019060757249764575060390702596044323706801292318232502115191365821883410874485394886928323628149334137099788435356923634373248391616500182749657521304085352071887033074874911134100782253323231118248926970244425445358502334517890759249671468786277424959351051085324355726780321409364461664294052994967859194781621411322368878279185109461735908375631982855167902045068678813762228974197252493150533918911576672597237146186131449719581417487768470986159185622899704215706481324289206627679596647501900315123513252854182863726231831773379038405820447970796747756941947784986911034377607752441538029374505088981856658962106441264967170138325475682901717727779771941063862945008232588811523730384509783114619018842124771754350861403907066068621485223300896768461463047354293628632963190608580350265719348770433448105950612610812634159584631353746277329223763463507021033485136598790865744782784728924813717869390047877696295436847372263111059551506241484790268850108092339408244655337505623302352794732451230304744972169315580746134808248237998452054100831355553463972645129395722470504996719076442526161147542036981592077649131564122799588519879126636326854023538140445579502676993191947400851417038536668503773143503381080591781270676910380719701992011043137529110475266145415148477344072438918104057279538677934647486066693935061509237467653923933741879085894572556025991750824132658630529593522055379917628293084417190123665632167676998065374729703964447384556797452627457624040207352083258070720603218988980467508278514103120539487218047829439807913757044471730434190190303409465348242828052995369671154086008865015840127756600078991016368231867385995545268718251976434219116544534218766479620724397607416185745505623628145708564226824835272602813370767608038476941553454353540801298667933453096074069806140976900779486228003051140137335635563739112583233859271235300731532379946796923481845062262857272022735049058006982872411314404381505344959115721125131512026123911799719403138112014713203363445791162954327679238517827245725159089547171000104245541999286261607415985460549396462845275162717184057613896703429065918283560019809515747971493235561068988391361180489893963446830625803095955058151897232471458072293486904690643797170217737968491286202709828998258254306429746973839634421274946177585050956411662553479564457773840554083501890468375486249699121270939880510592575726366434369540684770052065021108381331020069500419429680901441213286637831295270211138821737287736286704429805919652005072224946850392037516543498553558549786107052803698583830053996348608030717423857001841270442684903440412330793896897453243731222125200108895156408335823745120184548882493160666292725836821684513922478737595973948959040825759604467538611966704126174591992342520771642362250951162900750667416260324300856183144979177282976829149657561194964527866173698253628454537610104113372390469286669865065843391030132989399564875484290010736870925018737461011071811674433880775061535291255244843190252862476204009249658079491210764752978410161125747159572699573728968850831838755761056735573978757734347336017168454624370531808095240838841237210652253542837895241841243766261968630250249060342186758921083408172686496974211775103526210778175457730347024775980978514818941333779425795145716213244563754596647956290790566938397075642318723207902788495338687525175425156119515496409582741926631285005604717930546747824191882288558898171326249229721907298554256497650713298236239672092035879514360240809185112119357583648554074226028270067735182294292067500858390206959923498782043382811767437859783410875884956714908240736895035187554642607263730294585506240644534417018820500668152612071714833072198113560962087950388078327555973594696319867684785295899789993111476169434005549185701260998910789393426526650649972547644339475699809432394470718360256900573382991533696083135262083080412478558639218682022978651989186016240826107575769549377751273426706987431604321592945337734520398703567135334768398438105364112827665703009319800773855554369144220190507731498282795572878660761682139558655122556810247050727567014265413957214679388214010476850122108666764810392352720062279746746036673360709395512983369080736954584717923357242377457098609208302205746677202400047364016113501976095783972184455190016504057733905009798974121830782061361571551814469704153860965698667826529849909368401235918486865453859875825826008503674739040839397954437002387384386206300811112442576275926615648710453796123159405173845270356765380844342953908719647209022122818028992116672771381079104028056099586332894840009418872760803361211744517796772239806015321986526768640582840470455754188667168716261827071442993246817714717894114526030729530339865008221633192094007532463736647588536820068031997949365086083893000540246488686397360239527419945101030426631489065525941292749776431231308909227309791108169367429651364171237456083748529775406585916079179418921297223107093036982801256243172099771875972396708864843676637839161338672636178278773852425862496994225696897009928092762982898194850228624804201864218434844357032220038598891079536386052880785377916968647895300965529231571010618389616297797858295002857689347034432770621538621108198147353065854576131821388092837579831545510053057364556578502169215910758665644019186996623260561609995870296664135556992666538342620142355823720746520477105271363766599244747219802769299094613970240808287113412192349987578909496071617941260947475924769356871663615187558290734844256934316222731629414250758306658398173682473509598144772890433711636445114411509421786337869609780303473353994136184752541571889389630535137663247304862799090883846865801638752369909253646706860080318606789340111367816187888090286828521615541237327659375855346443746527006475688677425302839785420708300027358927281916060006516417365980131649977526602294840344251970852236467933594906745804147094331163335006834125726396215555109827705585083235574725838010040247728125476471328597946316870816162017237754425643786366426056572481893561774452603731965353576954605005785015929097583227005505654765445791955065312422125061886929290688778564096155395522833110950240663537050178618123810751376596198100768109085837750651087782856334049966720828936244473693607894739780253076842724371780019167096091677515665122320040650557794937706603903413381502665026048436257454520803882762822352846164117068297123565337371239332894190070500339628408642098016906659253884490194630411883767615278196702308576449754009628897478678406489379132566502600271546028504230060922650106723383838495434288145899007724214018885248288262095079976945584685682212947841193403204833173220299103424746438397297901219723458193731569214553030308672588629339726970425274020634409652328738405003761483481830223039517815104402835274388296474166188278506936455647157095003327014841639073731969740220309832520921762555431940584252169248153300655503107808599653830737359539660238589977109399917616671012679823171210934143857468100739342101921819436654720970247584247008039842725851166165361905405543496142678917496273539939459520216757883600130945590142497664974327568812277330541416568641673124415818122760367296709265531325652359264970989795904741808331566671290806893831455525319755204578960089786483560395156470429455982006097040128686884303588572855533667053942206393710657499453414144154001412433590501991845445284787833340623056394699802409100713338738820034204562060472844050349748733839415717214724501090242368000326936491665269272507446713723356295384322328826521828076335251001249554967283169985402265404699994354957402366017932501728880993187595495117157384711482979501771546124708517241007777237098488145080780449402190114084295168626181009365402803967057214220024600450394717592698989899615099697308516872766591741521352676444612189630175970506207503360500732714729141599460592675696346257552670485077654582109179243359576612037000989528694281517300875354035760886178856907271071323662278539304196014901775962176711290571172223505595959554176439380310658190657302387537457426711307246865955563803612878243231995941705144834262890638021029390728134469980044744449109840786565643982886138361104420523362766871968403592254490404813179573969982994695793710085970387315753209413634055138999417994751852813156761072441897162435341631728040168390064130866069445861164182019016518657465403415456750203524477075846967927064252021738947483602529706871994110110888301112864799668768516084191699319417416004414894977386654555371984082343111061905538597394668735095886639266337598434142818031725092189311202530784200213903369895018372578870972009381400714941036752189362770259386675213777960762791482586137341874680141422910505810199431586037366865431157824935726812586201504179655735971884426980497538349883793257904844730362138388092279110350238585074764546411596090851113716714151733793002101468103996745394339063155395593088675984294430682149051871105862371446110954579659525521501303569322619995713385512939029060396425881931136643282980755691131311258166768228179967647716909535322318816036331456121885258085754049180948573022008756225844593190244759149649277889323836801957322842235139535913918191010030099741790652034291729398443429386141687473038814423486333491320604538109950203044562255617807935368305115055056504271620334511091542815174317558238764704052101113581352813942276953996019648355364939590496063065603240578408376444008380801714605897652305451611329265609174279923661891500396847587407202516324498443786129511700850856992749776333351537756320982121077930710200427261341355618838128434687066218140540070082320691415301125233671689156775546038649420053072420349802475857000181857823741318658319361690580708253534755146815183634653291339238440681225289512321723768431143797437710289158701288906322478324525794516797959061070751323541708686608009746410302276895720114687518853447891870589925523777708380123072069953573179571727740582532901626943799005444132972032136436727494260256571025793194435779277145273481353999408891465037827608137530089281052448936370687785394351629624517670604645930638619443381001323050724699904074377226661828931148440324535442595389261224421315665207156312710564027129317159002735079847405416086768658145890864678278232899220185608507739549949490196388863160335540842204980904732924525876154261922557693885794039140357450042069800116216211346964733435542578584630316945331014381049746115269934856296471899873620925937889078065998549740886234913283481914415738580402526796545204465532001231114675266837140598680411632891335980407018556279754208619025240386889762850758605609530368883261159991661305310753234621393166548170362181687621065663329872051273741439791174171399636817344537233786141974953987864159573291023459026393173735392481848824744574230108032681915307520949444101693102820105340968026013160297147397402355315312006459478786347544483565571888474183663236559552751648948503361299491962208755668997904651549696392486781869089592960349785027383868356865593809062028441342278735446027056568711941454366994883738287901969665842480624136674936828178212588070757415458094394774770261015338602478383755173407406971134843906496999236777039622585114784347857380407918676120725845311436211342706597208113966617777308119146302230365659210551567353679611133349145242399666452687868067346829363983137592666819475702266508619015414263831681580561499448261008996600328281112373357859216204178799917492153009779839689611707052984294490011918412974531507208856968272572510084707055388004657360437900702400451130538772837987305611693918278983159694066563642918702686555860999010523678570325485434801244343401705449035889702540004180472159418835259298192042090677880495651799308522707169485365367189471326823262023213459580844805585582108542020409894920722624472366294254429550499856485596916376070492535513555642891840803383420524753002013862595123197629625131119328155279609345707296139315025032377054952041309963922733240270947817596740398235624925247011670691851186619512519909003096794781322830294461734855892891933525269053384821308007771766000922164572534180699755416193933006333344986509437626026995107585551053965660404013327797370267338772258356756750083729694758603693215609232594111279408490647021892176253014306656658352129520519495798035616541795207177244852461441198151603323052138322524695959530688957640534125886661850872611910394162236823843257894123984847657751720257605826174959629756895572331336594571616995602610016433217747028537471238123679329405683346873649645490895598915217469989276860574388050878085916833851109740192976539411662815321647533245093564441747090870627028351472839802825635105941853038601605973787256915873816314416031015202197494454114296990799461684633572475698446049343596512752619958640662145091455579405483468973802154679083000364881638590775528634861598083745992874066472907493802931013406101254014199467466922492654095785203643321705144402534852913166366045659131852951029511051834898235420503803338192164918505035725045314894787427168635852707584200567589067662256832647635178390938356774964249082135975428021541873819619772575205145294102577040213824930745553651323574163453724879865000102762470176085324495799112511016148987531725232392633128687332662190642910012164148891844634712256676648215361287703084561682234731236718386462964256307502514663669989209918798458742753306519272049292003148664556690701626402683143287822623890007108427353647714581441947596481892333743530779071238078498723732000695972157154039866627994800749198819286408008180809248675213362570525180455956528099252075325691215610127792176088541576459190222464607917708076703871578666527442191760215963820079669649208220175987805750637208189792555146865859703257190825276566405455344303442812017873928099231179119837333897869280273923597969729284735738916764645387737864712956384044271387635694477861944288777321096010139651197819002475001772975125087321865219124609138220082476321917366252305281786007125125179766336818369251815179532147847075092073672382782638431680407966040188582396073060988923360032158657639300769013620675281975018653076088818110068226181499458923213256582474387682489076120685285271461641741336068425069120529729841654923285138722750043003516094175688552882248116084135913550574993486279742955461544750080283338736837024399009338499868669791684853045909257325643058011849567103084095378590093400337194837969473589229839820256940847787132266773269454652277687138881668771447820651808655103644435662517752518360605680585899023744275224029441889465337030062697650858496849396845221295471658048156122934344052592605227604446027726065335847996931096521391703262973055373760253495332081691497588993940603373815178019123660121887302663771518283413254008434183540852918929135442056117664431902635150412246376318825786085746657361806771742355329508960668069617613925758812695992960880006561147774574392058043619280846611188739300612717870220523479317848031489847828719501920027229090511087805482600936324114516136545910399610861478549319472880290797828127918040776206976024696281637712913947751832391042236593550823413348999696520924810554538851117778826531251227036757695244675323528428301539017354530297480332019193698026132036436867312663152979276113136482926048610642027710352129947695776869418487394267530822013594608790573540471984584607338396608119663015132616452189299160460458901850040365294927433662598410664056598934095740163570346319972276840234620354523543984918537464221872253023131628260254911858989515963993182411223523256441845351112508651283201993264784614071765519760474471296285352145622913475159330979186476332003767447312947816234068365859293883836020875043846032076610949876642589026317864365413705111668107746563774633482251363959174961381146295441953657396955099184563811327718326221346576299332792919596517979584606378126765225186527987262407586547138153465489121123210824706077166856062143382722732445653686698196420377814770770666192090839545778773337326953289676468888758678737299633216735691433270273455915509156295510079079954599066310665235454694581889305483176697181218112891373913487465497286873340315592762084285674244632673391218447317460995594690517567733762096049973336662330348461953165435399636616570891791653578915383663981924459040765438780300408097987809984539514544556588074275627772498384835018291395817301502230086559753378744434383651507227507035061005008852568285326242839555405912453359372936317507428966745241968605596548068231702141225346443245183752005849739894777743043638607743362976709951848966303592764160324240853714839317149703576432767452617567216382542197086900549526168550641679095782996830256098072029837860894204559375962065386866135292597696745130878632795250051461916515557421687204196757390299317573980620700168454113701101378855782671604269143203146472811588148101225560942353135251450182032433959082402319501501245836391523155959825900360109414754521571010299306186063183865251959194921249368607843755895411764173826821346822062061722264697248621653049712879810023659193960102698851641697584046875762234050232979862270419439516299972753034439367809409748817651149743510313264397396629565334242128343676209353327523074080732376880005291736528448697369980676705390281820527565232420998491128066534761912029378779648609304317697577961800820762041446037330149708898258987555728351452381914264692812857797145956892269781454434398930260190500436450292285050612889638212632679933126251078685326859913322532379610630947578978765987933562158919033338899917250197324247762166821109696496265120841310031693898019537331075216016190018688916943545391435709555591309916560297437116212943853000929539261436315106866042790493866051327836550315721713125660829403573009342784262223807181788244824988511889209332208219629096530915856411011795261364474304096266625346399239616806051805532117151659076708896299801951209546211259350419070452011755954785129804078049628590122686518981332200724322894957342565588514182726972146137632250373772043382826273002849973216452839101978194227844282029664393328949023419514766068033609037047110683297846302366838028028664097698069972047199601317202797566989275637295770496679799903795145931155875413362093141803394440527596679346941057519893874745074611156645502141944682407744812192382738888533139847936765347544236978927719220664177506012243427957127931398950763533506431791191082038177748288320703882167087397905598234528861123675103540983347333364404531568338346856970232097700460612314524955882872778810575534794951989442696218013811446064319864476941254939186041479025151611074678306792264504414170472416273247803361445255722307416422977791105385702788972563216494912771098109021635794124454376096446097819144758839799602250781243872506759068740091092754560170099916888183037551810231167639093840742529285714160047001694731620890918519290584320120662137935031044560451522764595477413609556359239237661675716927556617857144854459305788280579620838165640416152403887549624341413209117138320372858712031390625197883968682333232179522776900087929288015592663780485099101301753419218842915643524343151186119088699482306935505840196117391686585212470655031525501091884300331509512545895811145488560662984188564422172951669560906577100494588405303487576465957348499140226181813679678252006841950065959697159902448654272111636080810858294372890932764034664197937152197773997341422509012176403997271945682661922183253831066152675253536996758902594098843666924835555685262033806957945657213228681392819890733366377796728359869383023360445283162107002516221909113355413202767386388092310262577250928899319524293892266328650453951076391505049380186304336761527458673646401905685863169382759220531724245225462483698209091227145765046830865640720533108179746980233722760921687521840159571289151312201166095195154642612223702229033556833724764000091594569828915852811650422968360740562005491701212135428210249064398942072412520418590287091961066505102684509952903893648863147660031598881244365198492960164636028104227984713851862721773362481464193324539100048846241701371483875558114646766265208681704809351231160051072158950607732560162505289310517680914723749634213083119602843703744267161270919371235646864532996109482305222347199245789264843354501509295485078965097660538771167585870927731040949386076233256134581313157722947489055500671372896826448352395788765241382528678179959079912075931050207800601733555388747836362063089525093820346963970536246190492588358273775647633617869884775348102776119143886134200338951011117599978137802559305751139823181009750935071699195486467107788902307807806803406093520525163330948347805655588910153607311971607108667474702602307184056084184612521092236432746931327123585689518305407943748901409976330945616067588324368568749184772461486875826829301647297867339393666046966484832304857697644810942014919476305187575993865899687872703413333871505780306389996447305219049103265377004702364018582593543900358385776859415175766268514977069593545908679175006944207787667160985806415916971469140473225719272400950723605629236225820161920709365131189465788414727112784016577501777350838892607887191562855838570776290872280587578214890735435175671326369105477083008413378531027985425848607302952751425493236792210531479286647931112350463411027275795054244920874674872962795782947235054396609975062142619836351095685209810224478481606511281208069609675200520917126383783528122514217841924292803548544063999133627657001935515267106959730076833857068067649805101408625903431275537373043843318085168342640308521193035144665060609202780824052411175856144468178672976452437458334327486609444386565215845863349847818342042098400588675196335809618351144993382879724638990165906557739158404491900183965640655265990592912743886567031777692798627635612622345556855814772101422276911520554512063870399546992464620665451371107071976483516486916580386113071506459097558240712612479670553697488367604616185590631440141404879500926175557037245528743742192105183612477807875355277904928832191422266634928583411997732181013311613966573849165336122593091099564575442220148723365160781483922953408908185800929776019348404736233498086612703572403470257476758293889245725121581945587481919356140659996262171545058860977832740229099933942938820699151055975211698612197904329564103137621246616096693523042953479271177800276177497768310631794426567606279260644763493824796863116267783551626790528150360907804695944928544104750575207740312286343716803049083588635593412253610421090582021515610816180478630887842515033893045104820390076064163302310883324199501594102704588576639321129526024611908154643295404673218542600000584122000443537096929352344452843486415423155524085504740347628841530239378280116798315889365813407564065395389815893758453161251599034153453959011145764474772055835388692116197315965994441406520185558113032308934965638561813077776161686321235058468220471210411983701922126012154604317100343769727222079175197513756738711705728883203996158868864964559404984728588280280358568864995136179764752381771118844503441381651702690513417463923861887026818750073130728044252355515464089783943542253950019650083976519830839828438714445104042064904978714617418132656363041036963389451761113810386239342914706270065858605272035767276899347176185728660850673063617411105056180399628852035796061720000468574150848697788808189454202701718192542587260477463401762291129013161776724687704685737489330447177728542466278570782446357673447324169410055467990876119797624382070863548549081015165954620560457121120187162064678130564843975570547271026950664607392664999798052315167628426203079822510057262522774318855427216605033500313873622554702838278821830715278612429483555231534986395072139609716947644995625756992909242937225818930938316399427846018529850755482921508951652714234153386761639485539965352041247609033849113173863444258073110925477856828713048056015835405992657006933776429733854221786230337284843568018718464459616065061761667544033170205322869176828209852917122111796583989701455915329638763881746075528385634663851118475423398538640703325719909375524239341864804446149410058596282503677793172086366592002906466484446709989674674357041844511432584001976796029813987060771690249531065423039520937636506619278613449831453990284233680722473662985200143674080160171795107093685516483612334226552442221686000008582247505344529213888191675732732000077895656648597521687711478909762226434632956194971935461024363005833294033492541041745758238845848891117579958317156640533090712703343679770963180246553815302486731861437573584474715724115687913749283492042872298076964064475817531982312206846798054851092404360893104442821283250510249535914522361010837612293621252975417622086476890004408154153594479374663197350066240931464737850188697304721475752987709626437027387774908944940603237838308306688697323109572739755891284346989610380939113712013461776351213259882410554190988886405703840275804341941924738251211704053604957290915992335851013761766035143403324362488132462078904010752814234761721814193389851957394284295726562015064237421708689586164785845354012654816296584610347211891256191275337511914684160595423199330507091826118217253082721063495390120640289869570037392948701460405967833695368816742922166646141096446881983485904729911941560531118066518393545415968295723703316772748383616938722628636017835091126194181872980910107469587755407457690651286422045639124785142415314225273704190174221739635744664246979848050106513668869025253364861799557430547109512070508059148310343479325146864081822096271662058240919564430989971303311494045809022519500646784630938993357868861656938059161922003482695000511752908432881075439817351361378819483902883679877453869139253726318706644228970939514432873082499254312585886814483847918878721147043083833280773271018986716950874417841122825137622478401856350761233556202620279265947819795342554324015007222589842375014478829521523201324432779615393791550610723993990237891385076846174917312797320719231647564912605921961412400361664564912901295575529452107633082406303001314228511963009370681545610344021736269624947961248658990458819906756541568675078218384222730646457762627186940580610276579638588118918150264477122421406178130183301893390516898204121386662203239520625067951202991752570404589455071562515275201878033103652115709255097654813556149995548252721470798458609777365004218646286283715633712612661219574333926867031019911760511908550345407857925545478773757161552930292835824462284117910584008526495574295209527831489206217086088372043578817401281472305364851590868393683227502833961495393359988715493316951780444662191833839114380345463951869538163753001272773541980434528687132151068664498508152134512479288407494293397756090581309146093601385234567164727029562676002840461085159578562398036695225880304611430972469022970347838284663952628811085986324682143591662405617640541041940875881878836765094750355532149799595980481272342838863590573451932120081166561341097290409589610328745140721890903632701041358144586383322168073409837294290002458747833094196716360777361368338079070695041912981970011757323066008736014259186746942449116084030746857419751581082845560292159557494694413904169639058576923321703917935894051876507842689899212063858068493435220860308886595112642141846205467267725623102052775501978768791126775051766060175070510684874762862227432290319987878783225784348164042303504108459159644927062256816073138511557680397879425546835762697282482308644388528179980314680635085889442788358180669084917185380191558527816842132784300705426189490339715242592721117926688984240380666938266979583329428245954148990720559217523787223608554506265928941029533503226360969580016496309536220966339338155916970637268921051455905897019675494565474072921539987951429879511791662490424678793229028931484521534888938293936042778976145090348263659423159886934908819617871036733355484780742519159820758564164329326267367960966450142982959909333438978517370372401039953695215919346264250389194093540593489173436282031708159417709662372670602290588100256602269027502747435167785418425115487626068723214630570729979442060692056088793457781898969592962877069876254944278061235035221371282397082150598170946155495102460872063378796804726669982272682669887443501772398772234048518506907106016767351323894334350537274630648307968587231642283894300790881740182454072636406627898536982477064100068819124368194296267723572280309689390474537068166166885645022909698022216149748631411516847200209104191088023536928334552394399145246034335404889924737455832067151103360449067191733472135881261039489177058303323392884549838043600336300533541003289533985716242844130424447964018541812063375844241874080031459300318014254842987687187909410400767008897818569152968274034838858907911632490495430596750732102416281118027566853180408043756079539988678215975759753897214652409177592598132295651986261706922039856267221181094609633899459969636953060500799599940470962833520567541540749604327281078021799004870194500606851507581788338649378072664451910558335983124411707975722207856091751750678725802754263117929079948675371352079065332047049553358587482345715876716349598060562294175085720581649230766671075622023155171936932605309964092690583010367550307700441210712174592354361743056533156761581324365609897348763746171668468432210119714446538917851921074634096015250587748358179737855777457088771225979759493434782808177000595017850430173509900127442818630286353560589009963596673494872091670970793643722879095370321671740462787697947312635834436824437382176056003320245389898962586008692050716681522273458772471085904030772921976412111331929061128514444192894598785377037925330688583352680523148347037283145987717570594337913065904997697116779214481919002381694683671689571834267105548195648728738221420111903229070048977992591575172623567742307628024039114911972332591127212559630753900342292129966688987704992786657088720321890246531872821767588853676993680894489747111309201431590371304232561501820732064512345054569323329399485357369174362737632240397212202573837103247709391295603594973069739647605191847502448800081423420799475950487326112590059469213823358232881782208018311163037758348711815995865431765706935936215899180585796137211023032422836141411555247110603551773560539457322162275345630190299682946583958864007675959223314389965101073657795147668256745313135190294410004334633540871064792151475293002253558330137596613916584372474767620069909204908751930490754290655047782122826526557340834242940159104318876478400372440584342565591623045404088505886074248303991329477071239083498640539756019309429926482084068851326525305086107680512701690466668688668420200287275105707650048915285284350602154513928594291270102334633327984738534250101278615360321451966400399233244726465394086414766176195725037326769339677287578102452948717625756456606530870337752896486757736528947502067717834014677532716098879380546151369060919807586558478972559965716727688211072285335365948805327365792383059833989416453038654139794706745413747039977020566217873177924753862383744941523447002289628723322285879120218742461392470264371149839555813030923935853551573984999732534337710442713047821835918365879377783720184929444490812373955341302409573055236463926840108589229364617227441187194067013749091137347920363003352782054582301746429822708469181454026463779978956574475073241108258160573682307335565806181996435125581022769081134669766934646790644441208674411426033743939484465405371838913090315020854683184331159090656675844691636175827723214655757765593586472315158109951788705815509686736594421536647484280143401581309232106295363956611011647157467712449884097000750263956990213763758931912528835434295913319680622049375626464941154158183654767498837476478299442193646873129298177930696938352793810930452783154128643687109259384850006415251306054967680632846212857887544299626421878237846905030798620051321756610995264622782340935439543388527545048322518104901477266068405334276247278664699402636291855260063535193551760543902549888930003405115305075349417119865435759571213109854780066349083926361515266672581447422886146128353294069277967111412459013389719672245527898057543804801531282038609587000117805409412827778338765219881824618202377991273926295616893782463290920387538959495008080255629243043522683479145330101318634168234183624915675238800003733810793884247299467142233396309040076191360371090036666757477197231120665207716586136918370687107013836360681485830261804245720827389035271897845183084807806895172975038833736327036886879935108568891640287248047333046557736446334130133405022623567751960491315081931669010008772076385155445737052295050227987246207599896585004218010275909773480470228591151400884580640764705260516992857099606455748770478291047147936579160707602154555350011759039673128777396520412319838394413583310629198188357210780264242990542489300268506659546257992512803016567138885531707277002734502940040508161708113123052548504763672551510676022722726523506707414893590365698280444519322330620871474832426062098374229732099445150572726431030341563125806091359008585959348570665072227575416233817174601587928927295848796552654895072557928861732203971432086506057260603067548060607433466067781695905143859550104753883125863851030670310550240352978877460662406200358609487811541266336282207700303545361301576694392745936613175038755597108984354942806043818368964180266021022525319424855099028898841365165481531389627228988760064640796670252297966977245071540914988469089654537366727937084763148750660179218731973653998895466281751219434087665598610495670595048057143233797744449635229595151920811767441403188180672418003819872848453866314571951876392743102981983714988922995516191864348675343588224879027268286535815536138371150065474047694729663687837177125319726153537188816265735312501728967938662791598042130639176588109689664969045375235638100446030186473207997156608861783284833476221539047755213955874643181031417997402423920426869759737068461865012793727228189521172716184625488844785146010641116080215226117816628087500006709624756859714667895205251348176045345419425970421117456902010165943953951362895537965396440229110574431446273292755674632786887422779222178420835718921149684680006319565406210236906408963396518082978938230556671449160027032514620147665051861215562719802308885855470717669507624675030162559310229832034779824418478458878679403648847955637230957088136499430676910481896276543513581467028161213445821212876333387322389884196842637877413828888036389871288503167235175674546471632898298877757857181143327375843894947623517376030374072485395177151248435213391565246868600715755045140694818473731808246348676755041718340824574178968695669504481221964398987231523703474641980782943230996890192692637595947967163808062006895886938707287782690686242502188099713667499720758662708693443783048852233307412939799119254193485354719426538451863715056625591519883466611748951960742008764309753149646953934745331392656115793053363337578965735007415503488550663651978206680274525167888999309950981954375475590271597406498019402934146348673317865377463233436510309412624351047882910373333320884703349188593332432806806484175096749615048847493770428036822566430658035705692185673044818271369117283863529255336246614266582274579191676101221092691021975590004864874354498495868807197841828304653268101442934405188154879964940878500875769625638883819510649224810789910405124830389655443864096026025630061559726767586498676038705485509735379784228959328276109652739794975170946945852402232594106510134055256884586929911512286237005548953512299512716725148102143586185083530910961584121534723442071683392614248913196560015616091817461700038882577550921583436932448619240279103242781788811479584063154543641203564308290496181469158404744281495208789472587902980946675884043872719461542521629726851248642447338560489330300206251992355567024440429699996930200960297812232481533550746525200027643375996587205619645683481545547780492590698226027852023253275014089171996215541879256796218846139440736357769546826318329402882655656275599743809223367815851816725739597269894564394653962513662499226855657470687758150263596470905794700463606805347287724891709286196665741885795491469892544068086607464333421290925810284031682924854047210742903780135789129662477147604857282364960031367990121363051157578653403665487090639833395180418984553774821237406310044410608989850781134937334284874776575141959659457505533773763938458577222386700148754313169935461206682303571902718886118377916763608673018596577128870564175064346279871823767570715895577302590467614816770387220968204135184719341717097821511004019852912248885940198097238857096797486920477418428393480595888916213759412263145443595684675694005553641888375348799961200068339696429121575419119543220923563418993229753807081869679470096632235452297585173180022017898775477943721112222146615237995803847415204304330450528310332984191016112092066758556406994987875135655249569934099135437371528018376009192020494237667389591058913254638060386550282380317166452149859633964260058229455337713813403721760295443079192289091379664384064200044675379408528823176317992596976834121827292891528588304780208898127818402594738900246765965713001906256497570886167833738220382776096546743699432607553952585014401228310685488922948467255638324751120204626660350996473411729476510404164764135664068172899732670206040655157033955180299601694326042113867193736327428709548595470396740500410398443518821620347105182972848931254051653343399191686609372801876487369095315404485727899751832281562092888990002891429161862417295989322929840865012578640279246570621354896256191609537825147639745754030627928966832679811521010479727543726011197615471068490698699522576046657598875698343498609423160999154772589252375063322691080524456421484124074003307059842616633877118259141002537801993331753257326753352198032692465692783664046953379733857233419187413041383050717538831814130738302389436095430202070178593396588009767648897904254294541682027343734137981450271532170227336330740205264080641775735466370053178483550701503493900834729681448979066073037641680216328468135693919442269496126195142988613625193979739272938856135147744006218258570317012008369215595364359946315397041943900185694185179010655262432873246445498545154754347715126243046023869105821752572962405957388790524431484111975833416256173333852065989852739174478655259358444696480341229285690957279528614146187417773758904984402244540034571760244901069623875707756295292737292605061773523058764373615846597611856651878685860355360335004875064592527361891518238511117058594133117290749640056791221241376273429509162913513115022275126745789368373020929068520705143193654921087906881911891786223316880803126575139950083575820084872267563465280203304908454129413549563891886782273056787634774551290698058910557591252588185283798528694228878059908435266614048669594255346927610211443819321923868004961173566946746922778995712733603368180129501236067824798929433443922875254938175500909244219977118296463553906318808991758107222563413002737466177687769380410520441077245233774959286594689119511599548190589086269619253747169591754670590835523351281493465357591265812435151338616701334824351419737116697995806594336287365061975460809787317741539909487587413240274809934258130051606454574260196132097164975886045743236093017813317613318797381057952134860716358432510442464825070536531107189439618151420551025834928872911369765592001296670767500831616517440828810108379729934385812655922299229217848625847741567450454436699526253753131543779173058909148207490327015409721920126658576765277261642652573569684631094545398811625872263928514540826576736619270504701097123113271419654776252373438054068802368166298422304635889073572158600200721845126608292285792151106265327585748282101910829493158945443625779987120764224384946732322315661590455773041956778977587693414726610948492339291736286974508787613481516731662939634923715147112126353730359454299824419757013831206676977391263918826763070352995297283604598189413777960149405940397101938283229547426822374568258826798876035597654896854349861031697368783515007939063748975029604774407513705157340468114818996358370638130964521947581655222720587324838537016503178819450961317669873411066718503004127305928438835539931507771909483742949074469850000577783287631236538306685160669047584439968391578955836809062271488822344223011723499028718334203631361555310835057246863014639456227174763364284178519025619369450676606393690340343396530559213246285607591057345343475388705859963823149607839184165163647260533897206586971153524033201572660018707173945490656759766513457131303859433446490387379538720389153087406199123850943064428668370804338802521548831124847980876158947879529824219158122798665674458122399351425677375232477738318439680388941930426458975235250477381375884498167666681141173329156664399523519321410586816430151605437581052883724874712658186082067185792319589388641968623384144107784204429782373155315520367793530338299240092752361400958210502425802424418585316163652704055377724837047824300800823314329878680022201703047951038281786753314092159174642111086582710702827406900804397661579080053945552890682559973757934700400002137728813928102287793321594940517022602680069984401791875332084167790258968747514257520983030765318144681216775281841679381028745199841383834040377850439292968058896731011289349831895853803845757703070386398478775137519181729114690916689953043185562084902322929398305128301518777024646297470450854559553098547893272754160918536120283452884631896141345271299498705509937729476105044849254439043941528004106378277509120757133624806231551138093949659427615204549394954561684446589662674577187854521347511143972061588795293684426210502757683259985703205127580347764336490530286409176315199961367965906246112713811692819482596709075298294649148536882198651779703259921831534496654723297190752942190915401173331971892097847876071526289368431328819536153398094514080849899206418833221392155228547430789121049573632727076577865984570652245188136133515937725797234009743550535372683014638963310384276036173725831574710098538240107339573075707365431398167331638041944225555470126537392827103264343155984681828215244422266210042348324899251790290841851040343983580990712777024218777495539378368124706425258806125746831371689829041945205430894005365989051780479674590661620912544962280064163838445375180239838094209307273841976573704773447326393085816456629921085902686189209747181635056084561437974683425423999380237758076441603037903216807234670531406937667763321561948880301059247479062383438232445972219330195432144672412814884729859846163899925918471109802553353482646476177897666969720126426852084468578849085352014508366968047309241652439702526381869881948309647021115037850040032659325483276004550545889143365366789339425744821020996920802788544185150537090495543544682157233950468243434480482302356367805503657759732310996478462060137846460347407678244368833320913928105608090878776977865937298572007944844028057023519067171077867185050947199293736498176418462137386902143544032639868113128602899127560886478865466995830543927688338429122122320761941910292220239784058027570535640466984790330687714372364676498998576989337500469483453377725735551147696142487493730274055709458250096479250785228210187463328576708948726933769808507985350579588260819487356885959276311381968235852657114232543552541572868612074406994430691103880496849539811905605595548903758456675370542288478320966324713037090987368216714910286285223314285654038593164057690312697278359154804196106409943540869014665653268142273848362757677773331625782832120736290576099494633509102045824686975201696488321798713576453266551188704875838073600226720651532616595274712231860200289745976304354208555422694132695744905851736624514219209327204223186680753644528407160293421558112729803189821430277406390254170417047830764641597572573984142394999828963199779852652758263255072585291041251898532690465934631951232028095088869574867078845107270116137543430441611569924864471917489090540270174490498505493315977777247432905295241102069453421826545210422637161166168889262788781744253124454707344802450386660720590249459097778111905352611887673326152325491579348034551488423196705837521083390433871277251475871765503914347367874231690891392298499717527730081856356727758195727567522015745941412381450966474083849027731532676457081466954939717924226235741993661662047945763744777183877461607375168586077890379686914170887982103975223264388577679924447624557189508839717760884571037974795199675887601160005843606554189123417513241586782229974696511504567127157149599123467043514117880254157606124088504534940974914118624292444428129367853124259010678090296381712189348471182073101778897166225099340616500587983835307888948275943475036464564481613415835058595461844134932656205254444258369456717877483726269937214922383812515755501435138845709135150501768441413500072578706735050613341210307647703586781050027422850445006955276578947187719217083583857036564153335590575886302888323536102192032140765831593953101907486844497931022200124810459176108370620492301393274237330195668866879728184317526988154353362778813034509738407393038107115591842427025086119634756659771919660316406153267864888655437854630096081541512087272529594706864246875889767028924378878320629546451065175399625983890840544228714986757864838513873862114455570278515425269159390970989078308760503529458772258157730406041865884801801823281269472337703014058112118716500353950358101103267031677105865198445770508985558808956815479642127381726464013522465837688900270358263048784912446477338693513513790124613971159231906259971287196732198136052279145140911257027952453588514358658653724994562436595330326994868689435580541135282807859653954062876743772855136483602194778859940506082725751329826024957827011021821538071348673673380381467285937543288951187696573809536815165081966982188771131602919796935303167889246070942004714744579130651321284345163196171362466977824621808866177680013379132955935470505525191468918121312140355487186973265007053532786464378309133557825949966564785905396176937050083371810287348951010466381080666943999475233926787903751946014073762086793831514685639063725909463553880048296648885807375251692088886184923813903592497892036731708170706486267988622507298285494260297785187948213480270181526070519722533998389716931670263746959042905553302211337972782608722608728802487295989663407905130151559581987548107919634637810487958926786743081471908515873074581860546080937342079303932558755992049970212585137543608069288302053759958992296388846205600222292537784037778555226983815392174835787813464332670738364690825125419965993203920145427894841315707243922230445738423434720228553761393273223981588196681214785114649919308537495448306087244555206367066637132510608212611134374128195221902932658953581065296699753373610999920035184642072763363004032903442074634283698041700030245988680333243400288491313555425011490118209709939545373702914600397928489501780796537403566885599908552220068111368507378997559121274454449173425459325488003390872472038203036815324567482445770613884048657173809028998377848902424046076843305917231406015162335869653193955932259186002461292260224875737212318250849667308604739825919592184962481631726816891183205573339264557687505361390135673849118362252196145515622635603527582599182824115163707813692500872234737492994565325115318539481891443843024108821700300426142605507194420842763983279143494573910197341656410243934447465875662413508767820171746670446604038056753298519956061163436766407079983913461299653032335410669505934932438486079160234672709904863876450202861256765124774492602564567421088301090439994959743414950848551842921232596624620617958920013468099187500236206212324256038321647396144367279633682381193896190231126418571070512978340640384938712566093171760322776028410255338794476324503822284017947555403669169228804927457680923965243879687060920766753106613953238986999653757421683000919098501590720438608490866012678129422669215248618263349882174334928715166867763791150906407471486151190025054959576948876582396252296392732099816905502598570645752397042231899853344681524392497999215259412601367224349179672959483459250933747752769444538827126678506198345821378772687687819401469980088514510010949134634064044610924497872110884718383054991221750690354822408682392410079452166101949741497960322698540523619397045107379970605673815379181590908188713860639252213385654780200812109960078653978663129047581658121018523021417384875496060289271760266064231322969682025793993123717249265709728582371168730273539379494948406700117558743446009427748351147170699091606201074366402305883504766188102614871705732182435460184403125272224923624760776709081146500086448228634083315853688129048191570482384427383178139724924129010430474376255051413278839096913693359864358296695475436115655724938342122410788449330224404193117007488090648534382780582577779383080528231501952398215219831160745073286863246825282139370968757411182270142951395290441476005141122723959487987945407558451672439053201341112057613184389559691722933319881510322904714006445883611533022686588176675703555868998366528314649156929034283686658993353897463557748831750881198107759138913609174348214474126048804690044631589839671656547809478404414180011878160890492115577049016288853207938745519739467718835104032116175605086517609904229738183023440849834123838064373195814468698850948971530915166435234989266150479411129066809720552108214448599884987956881994202603692861391868963999117151175664793712200562462702471812807694243102912683816114679752280658676033987859845110029085518561407296192519844339137379924209764436955430770991500627699338961925166411591700457295696216947931029498593805934070082394073522032183373340376568530711891390695888832202683934036491221531925752932968979904093783239578235961646336403177315649976522127728895908859730646769576711649823709012013341280716560214663549712859692207757497535914686667610215452935065213378981236813434695447168782547784089518510238809197641612663322699202846575331942689313500126267403263125713382780571407053748393252497773363406995217542619160288000271059931209701164416573147345482731356734631248276378741944120687407962938136319832397684063614018723432482042299980197540748597676779862780342787509104729964289390500799533967975297814171412468257335253205791224255597248783987790509154140754392194531362971845055494932740883906225906237011711133301036551903154555610508655591038448101682074778008118914772094571590730031446300713650931463080562789313179805654305695526247758427286432600609010890819866916085122129647052647075831421302117061470060445483423953765048953012382170706499302024820317110229603291089816714945905629595232082526059378107593509461622235465379569310015907536116797585973465424121937441620805724636045553946811961284080329147102986707259038007805628096774499566162597835015096281595536646237833286343094929761364353801212415403131275224650568942574102223975527726220832217578271285231839245312319392062170443563335912190824316780471626753256814214770007575951899784723925074148126153613764690222943096274539813304329936154803353601294108037536301966571813996534083582005708042540327139198798727052382974193576047378864248375727996543102553395003939304850553874407030649580058765742034557149393289655136582702387119565259368071246873792660060497974426392472828194989899056984257784646878558847100015490101119567142547047989723068515244495957331861853010860870413636077312814735537409189354193978926273005150041431375464210121099486547096897839158581820569933626820003062981585112002576071843827523179339275423921952179974929235171522259530614860204739229192269200871905390334456307580497172166993586304114569458881528573418518677383064208066393346650298077862714815942214252641524167197841574389195991767988307100422618079519185929463333276562818235125566178797939049942623893842046650091830661660541910064864528288623788266610520084101801811187404803950554305272468226955000773113486663627689841917646407335306329161106734085225073540321755504213642755586386229435118703233797636207651314965457051419577114121308796511597899181219594691917035622121529601041183766545087248136573689393882246970071669002139141157654263695463516623972975140053594744134467667101725202662860801737464198435302417522513837333720251659230199902952521303201197550796129810156235706194523329514817768791254003670878477306100868071816156317122523514557829757087564361157488665491419448904339194194499982172895704274420751342139630408322268613449843491206730505577942220817102854637182539343945320528546734787062165337247412338451644560759922502453501560780358448685037546079639761998580022174667443035843936569484573695575376776477367201277809496028629404007663457612580530520581355075577858914498237449897581071191998651688030184875135192821754717807340284533417334924665224342288733491908711779785392456440797817124087771545723981750628982664446664855382906554764516510948726348975429459223551673899338309264686277988942434866519887861084845813891192480895678275746943686113895117766909357071294345436979711925960864529185799591891518231319175039938894418372980759783939007441161692440886946194750416667763436489798970172480905795807222075177451433817684678843858765547147232327457981312809564798033214266314026875337112711905410140681126037080812458094512490501146978292558286490448178300800367668710622953272919916822739368592505048242102025607013389448104572022463215809576337214404576996648427530686831030110824953202646812592376846638270030755141539149156110413423691225561470440509431478766629291938009366539014804248472206244731519956903841329710524187634911154591275419508445563130408140289166543174596637809303711028017733484000815131396917753411856810784185547236022089839395887990626214997174424112764333794510207339649098678917705972853051784422552890857367166877239841286685566355139525768354197733447319209195788139579766386314764811107289749234374014309689847474347019142771342704459615401438325228520328280725970086157844426798474732152724879713749020325109132616014921463016077400213841513391126046890607533342448916849922578451856340369308854813119629728959473453135887455058115315413048811750593797284615258072135989599425327434710481796814043181514047062724464728546923929308548600285515623972523797025879709106964365979933832247114176763239123806402803217708628837803298543837275842589200947421440709031897075325919702060974324679699258172741355419557812229512575490297371054400722526153874071584067512923646122308567531215110505774436733403938078919854842401477505681287602977080699095041122768725116290369930346164034182113568689273825107324195144092042448884801044801933676667174904776936659397596196004814342971328001863158157374603068849771096300346334935921885183383975418066889731134987367213708276801144972115547088029144132652291831964366446622229440799748843058903870951106966135334130330907860104804035415185379604863043830875170753098001846199061670431534411358740350248605328280836667358505974818394524348483485972762655466540890004795953229953422660894849866461417968436866272162902621624205198108320217433277117394123797700590138256612602328172389639998254244134782756343148572919441027190344007102047517967084051191270231601291597635651680505210223227201275023095785715701677326026694322206812362128222769281740172721127110514232654494590837788972959810080761774895600493968083974013920860559735050840854448067681194013719059925482877939591134636501725046015182018448255491729390528850771240446543368080513828044427703540475355676007763756685580975348406389721474390885214837347297376573737289431492850940174088774712279698820628163221817963325163836402407944563089761703463331307995998953854215425739881781072416103042053122914621298445655013671131306175532718828134176567403682346182354269252331010681829419573116021271188741603498215711005825217395142732236101415305908120499574183723224690770334424710132242590574694142067871274738940470450808653534862305093873932851472658711893212015824697917772479924367206326423844548803472631032480981069528298223237267732843405175817952281558382883487254614359792923056819310195703042170174929313285456073992261736572358886519059214522410973269537767599600202614315786233425173078516931429345877958601412877337892881584573769350985024269754328162161642884751251023253088676933674734357660024938327915289492836044638040519941798249675044929879341235801274690266482297680369076710311870355063915480393745503033786308643991585375126747457247947872909967321461345559756200370295222398252393123141404164732708190242882112118087495144402255590806054204177176939918405596987414733137867737903033607876834211975476275495491498829421316516572276769488266378654729188267265889702192860482077953694130353444876878114024243951416203970790090138655824379674772324918345915677136434945023819009264818455881994509401656779230593169822312529025021135281049276594258940594343195579994773006683980054513230154540990273358513189464395641115233372512022601854746482937778687153229441375726268476762053278873310277247277037200191661304983905698586011176228618920844455233342706720910433909118922152142218313888014436485097675286820528633862873149301066659381675393071623883778535289138040110104760258977025251114780805029260742136005378307862467429002193354424581865663684420888562993336347793871927188448333942445435517053776289609036103995334715216806417011712459022438782331058143313982050934065538603556933626298110761038130762580370260420420801336664950225475061376481884517062693593746988722475411347641144204624596155333435742872513122905732821151505365664695282350944565130967884264924916232495365355483325553071792261909184882309308694999187661067778973610726630880835976999282375539040325060994539982512541512258533938390125422154035827566854537947321880910327435138847323569181819809002801841515180325389970518720799722223624115257020244800373759641969167259926399745917540346009407325155930432663353627242457120301107714195742058915024554864853264014105026540829048967637579464148571464043574399312331864837658315973102292074865392333060299861913482948862796224917724586063535631479985298124063324294760023148569988207100139284571809406375745506127989275150228260273076488598635906226519542216520009987893572141433028288480629268851983300669073059973499410857856198895323692445698476115074807044511814472383514231867096994104087526866507538429193359472645402102010995516237429129202482949261902660444529546499210177205685774433704874567539723351573468129888400011245421747743421162636490611339878943555713845841106799491279602161496710368620388010376121718428431608013795180863124728495735413493307672466011508164489254592840660515622213173906763359129018637799794494198068307390888802407035075337252709731237686639779118661776998534000938714472258159526533169514418390894577537175671631985587593959352211896355973200248085358056756915718191551089597643312539533620846093647022523246466874616100896901891409155768382061245880814001020911969729422064836164154723603515267268858691427332868543542679053193256312569574999859611989626572203497814802052996302158536760442510918010051960575130100589792521646376903937311452218028278587638174562632883166880344090666463197584299415339719068483570458882460728645478864731446589858141046414048027249498885140652999753893330186236442010803961919961615127310941817739563161891102676451252319517273435686089214382915911748492955296444292454548927699072953908235118691550457489670260933787256755566163998967276556362899411526292493526160591728598149192265978329546684272886786593805325641391895044864273978940571463042738727563071862519748516488156450318640329802402806901954096324364355038922537882033869559023703072701314542112594189175773142417931632356824145808208902663104769129775733141923174039065866344378834560980121606428615958543568812481472556093953459335961612582430269970190514167548614012884944028622869250013957795300013907060858194790784028024394942472394955098765608856530889848900802712522378840949673028953948952726372410009460312600818970401302932365782815786892363990408467339735400498044950451657832291167314991973214948459806054473491335790915721339922856523892995790186096481490140976415858475909290341765792582820869731403563314148520946955177646232242458632525338865059332649046693560791262441307870589152462772056318339728352262796140251313685995812243689191446157001630491703115835828079473669678854275219151930387497639772124760430516170872163667044352705392195193888470182163771981644763003614554336370426353258904545782989627905173274969701159297027472675759322218062769504855655294017407520946680827768131798598975677422980624145854706901967183626455216103184617378496734637755493913157543922559934155155757683495970091079527227677693012126066648576997486588087769894745203875157043296546115832368668374977163026053801313518964481650739284905187745334181271160252519750970692200204939104347059622543946734103711837247849233133196118827036463948450828918649269913995522715746154267672139149484213360346059527501777784787330797090118109679861369868862313817830019506003185250596542569838948342096576626671951109837495887023660648169716984359071510743165663613196543226912890697490648057438699087646141267879383390758696903801080794199588458764493702213851872507834723857658892573716985461004181582478984576743490585950785785190822526887926068697600513235526580228310632872721222927540276512532046525373159441391898148112390898410380068047545050571605698410051629178774393163303642264996584771571329595529660302796758444672172363621860588949067749875200459229292213851252968111632014155763385258113559116044326250813701142174894293095784166486100510826638739766334303573476120497621590714983376030165084747946550152777504799635920032910323009668570289470711021556614823820493145318049470072762815941469640477456166453487145060413536200925057526976294788959053768360358322042849890077421630955566291868647980680433858736981548160271920220546171834451774187474762774526321195006863037786943379003061013486850464910618654866513252861517748299168222164737206195377677606530476263543594348110975507764235282947949227075170101048164571713986967558216908500049451292436042152619443501270036636753563495241959555015151685590609760469566739782503085506932221613623166831586736595346952196925746478432737023035047899607557991054915880661732444486384381460898006229134502457888965463017488803343915242597567955372958365185899186710823917442364683316656252962122461186242991830439330896380907199819627472104581651636809927699591091616282200172080137240408312261232025017440778866802277278711414322820398944534010473002894664375844538408861323317535674362282387021581535799950320524243043682919137580070412418428618337332787159843047373148005991936516301769559329718579428070008646754031046153931120929854825978274472824908178212676753674604726983270626565657769437414389548657286957732764085686039188404430993837452336775210177687161927448763307632291978091951456151427300417782939780365352696896287552617646567831323416377061443896194151554171949314386303704956622142699870214024066175985986774608578080460368666816273067984023381045947891304932071312551166918879212123242580897090437444609778801164693754911190312075825882565459365145823457625027049114500755982032718327588397654740796767381831888148273850514602071609388408772326752634570762440408483527178476595746424260415839583844316633719882318958812519019922300245967678103323202615729409693665978113432527176596024040372083438011591568627301372195190123484540947952741045323973286209283245501979496964119145118470945898297167881486663299960328179265546842981625003038577240238238578284301939491249735373172738318367783927973802771028521387152237684108779010960447208874636938719694152576405104851399054648488928075588836393878934577616599257552434349020400400563071097909004507000637748961753819715917586854406458040286769333643171558628909774904192665474617527543844160759748470017356136265974137924367627791139192776028884935751693091608600354470679717581659221483839390290100047037950665248035115974523155674727876952068978880911583968236708715958943370332329865817978483675295339054387170300035432082928551233630057776706393025848085177008460568703162663775139404917594087474421429565958215239038704855445440949608245283890378668772394331464879387264421495800201564136989634488392952503958763971446576435949839882685690192232272053331909562059740154987932805596226713215456095759836898301654653888708275836219794453131193060444369628983585196649080835596966120684471207998709249513872428488268057179564210074854252263388061605750925943702998968239758620514917496453856174721674313274733375366088449824556956374291868515606562056102101418355807864764978031111650302651394316286291132904880336518342354428360804126492344595707596659266938424541876341720187652001095896892302863845180010117297988653100320250431795278522556652054031774712390642327010776583130784587950257189615704632942430856165473381318208716522927114841114491492771555142788984637873004829973132497636077683352544759288182245278691963655289827810532405733308766508036130966590006799416625795849139199285034718512882191733173810063651216273857575605953788659274356383848485108368518211616920943798753702946334767519761745328828971730233024528188816292808833264876558979813975716981929949834331071741989938618790226350445567780387914770547908389102265582575197492685700284241374180025569593494473618095035843150954185062875857003708116144246858820862449562215656395670569438428110213995598315701883892338314712618668467198253152676425079723487986805260369431554438029464625845022085188161198458046225617703005412299415391646159517158159545337445940490077388731846263994758150378938052151748546272881955877261549540864919281650072029408337376950930092203069838239048220673952630444708613680937591827885581525411036689113345731334693556170882553284682158020393507946241235311187231352702022268717893627922707857819000935980419643998021752298047948464009947688828309467318223986079562366023128107117161478892683109377509183979249796089349341141922099724167235707504334385247290625520050079059304539659696384486151381902486619390263074717587966323464626157057943974371642687820731511246363246874305233807023716045214530529769916945219478235575902936138856948441971825594710323456941128822690409457737266490337243317660510500264501427254934211530533632520393305745163488523625141158538253902293445988501741041538353117230162543000529485867252174862161820771352274068000892205151015861777934520291524029467832064354018505121798226543615389300932565200391212118771545176380122094674081383704274147086560171525576835017092883511447857409279690217342774573753791033407081919442881391726260215892110347403306462517480959336359854481346938824314665828930003066711215991007704906875265030102850293627862487821310293368121784830906636421991921731140693579699743433023976271888467832304862432766820434369915898486327911432452852580494675187255461351231180532187316877344729140358219595135358803148512917165391556750756356370972381420007219038930757364929613815866675998280647759618076808043881007862594845064591378385152135883554619203456633878496247540675292850731920163573009583612229029641545635505490354047700238698239535626623864517356686922800524393535561422530000378006196411060625370396869170209817641593586960226281734696207994587950441279800034823332193205243234195445617347211363945605738945608807873616771393166286661379498956102361100208556961128217154448414540993686102633111844547979313078825618256745910787050788651220220831384267474683262040276387320823406206068813819628732009596602715936824051600190578893573521785641511967406748162497943912423659205102645162479137069622437120839971761494421832392799847858902144005255569369749228209950196321704123448040807164265601481124126839156107579745875225517111861033590574233509380294455622274403142898907239722312577630383509309276908341406545959512981060117525054748638857639097474222346776297489952752405618310639679633359222261464406894270351273313230741228131082652350479944308809961673899824172987027016025044631505194078052773134885763697344095885985637738752221648029231993086000468166380524295014884900011100477614999204601423421191639543145252599611401378360637119640581457573963762568727999434858120574724428278851274504830078648989472781558670268839010138811446252263889886799421735737064285585901913951565834773139398136061220022083650518642772969531886354680303594945263551090162879635257894275496914439843290251640783784305496039531497088121562846864154072849953894463759844896762691931287592860874664533555063378021132734830307855715785032763890696954626996862955559628168585348160187567379004891231223463740299988322391154735830631825099334478757267952206990072428244394939630903347727414889139405124574178135180526814685320596304652856642979972163144441376034456022814414016475431145172257742789339025785891015303491485027198200044229012120458424886752907285605778726568053890296116015988160795569199531837501579449273614555309969673919989053225595707344126731022551869890140771876387735247223099608965435521723271680103147202666355728342617140305931598776371329858793453913730946145028220219141059344669857383655748077573797047567894719011342889082500422824090773674244525776868738675805296189756698234541416213121231135044299020147219881861835136358537442683794301555379471460768667320039647640373540367913727106676489702711522348296240180820315230515539211460866554375488315763186894838847570391568378308157081575083567737946412816553078008354373102617590711648011225847093628093410068418129240368374735696990415874479124627175006615075094703852106829933391522341551490917225049404055580040878007116633295959425783112799605635884017336498777572611845667584873264627881002738150167734590629431214105436149065069053986192623476050225597428376698712353977201812058741184207894685813617102413594781921415849753300351117779371748024845271404488806866145909478989631888228821507887274297248378730881253829515113781401878981053522046010843881300280906799241417770319327943375459037462957865601817671002720068541411014443508876868356901161297632863833145423759962095938188552116331247057131470622366385511349410343455938315656897438884479522632046078156968998266572912058320005047707940094709961698998997200713069534182063292518974673791861306189958296506512327162563857186470392074221575683135362833541038094314439467671065589954133085143644103544265691772892560456539477333615550589805917569899872363116184301740100993185193626637653147228941981112673617599825378585570426240129535636586052150710683650750613176515461242312634441893236465962011231619029521110023238400369622918797769640365276445621409461504159956289019454531741705562477282003233481528366217595725843071298524397618693127447979577320345298111306816547222674994178024520547208736354926418549216875674740107254254990760093313318672063317418170467280798909475374811068523225871186780939493531116637909040456676765238728433348313287084438816749830615097883180231810727087637270157382856130539869691178437612339278977743227883075577081007577056102664139282747287423410156054915533309685490494664362822178996852522209177393008773534703693256906809703713003120789296281491817619189075096387852591482870204147757339096813838598152890489778364408108578083269574610761976823864222582416853827879984215541338709131347812632533218491094535561557704090346335911016211028959103711034884286630336298249103751470239723951119989363785572245499193704038297822206743462338608848724884528044665820345359563543704695189495803636320098140285390810561674717898592883653321470272184505287971110020787971505564228918851475855555505334021763554851436241521256612935154316878838808137555322399039196068776780963123658070294728586491575573951276914501745279077317379421837542997119785678518148175628882382632436959850987685809264512276973774635898954513922327394679141179251782231734777334303813411613530934148841169686045901486358432596403305104378041636644874886337494362947838439452040134762775497962333416484375329416872342520578917393021727532050235552965962022345188081682555895991238136571146305920604201858863558308854389680711094522086442353907480079517917860003965488388656064897112926467638266484571550854581109436776428514671489863934853316154473336082389246409911555932995220304651516249441602084512328176598013691940371350212922295836157995815253377851729058533422571062370807542011344109940359323448591256857416507609676577033666929729283637319069122844258363891577915609873766814726078359439921179587429836557867580316339267267084927435890333182411659993512941097894892840471018262146199322192507866422201220771381600545150913850326074269153542544815988509356487860647264493830859985742283627029935465240386460815335909822004154675142827483289465031264508420021941416031328463190949662712094697476417073508025958380059740637089828884627583452892804218028309693009635023274362653852762060694434829455336475386043479917902057324823633239544871594480727535651718218254466850149141302937234800232352299592143614724038903817889803175929207335755780459472718606708221284345842521049245856415790543783719372995641819129599693515158608621778360957054088443947609262431454816220613223873175133322360111402901473973413542360261155997557837700058242781384417418416055097337088692791486986778273169623568227221584450632909301428582066183056689758032165664477241232917428370925179749954613578031544994072252475240946486330930378895086787668106529663929323261275160682684601001758542242556147910424674132417951768456184844047097800172491089052380465916359475144499708632261682498703201420463194086056183094122892479931105145631142653921758602388787781726445320517533475100415876803357722480287905102371895770285102277777724303058353909393894117150707201630055296154971646180587052960626065755411695501232174056358283057619561241958769030795817058262259546477636078100693362058851400558121122058311546566291030368325965762410000410719477855125838468866640464008461169155801848121056646729615870701074150363019383457712316573093859668060468794713262255432402579951535581248029058953786838070468410441982100728163411718269521589591105540055576945270898389048437834819069817133906700333954218791130125902175314335483799421919428472834370624768641789937462177364320121503685486486134022124917131129217778481407967823559639477541734509528484813606794788734442039270014287593586776979732272127742310670440446149400567603896918484894920995966080938961726072906220779514341195408378089355007555158986539053784393859334245737085898639617498452300771306194042948389704878372371133854107077612904182126672797219887915161687828607652297282456600741672526512228713045822260112846896022806709846743832116426614218392703583399365142130948678987075925433044170175643544750035444930045880771223627954425194079544804886342802263745280212206382046925197965827347633910425754355012438112243748430020289501676681212451827363128698061611414973504702430875167919149081581055449783786511564866428019783057261289341565868350219057802051827385251342145212831883723011280572229648843598355390567837429575177994752869226528886915689236041697348798188181887891430633012993887575517059101794205860926608541233404307638456498657966127388983025042896624808731430787998485729526859228006429305229537631540410923502617315314134738605286198482776576743314396143164306569056215785814214696275393363695714753688788886281109696234844698798555019492198007574217192830811204748023021770503902466765382678170551679896997930411983449817945439818999123205721403758691141811600457837161066138757427508240504692431318051173732811693722299696402933631937557599274554927172950294123699960975130076034814706268296121896572289947388187992562021445631953230500203921731437082234451211523717644212611061031788057275187536115166651097965278227986628786596046758662776130343323209465598771576547447072272785510185292038741862917182412775865453987452916029447591928898540999709199729882276576499680743126268912207861922156747886379691806989210543904899335917428694260887644316217556545642440839452221875285562427013763113508370087038854732975562188857447483786457160809746884045451117758459228981105359492289647971780001938174051832571417064732384442514020502475292322768157962871571603378671280316370579520504629303914310723411718298037725264750642213571298941609882161969707251819514408127756025817273310003683026864852142045596571441187456500693906137861125622384406455310216487916264935060384567821730152811158167791624532337982979174396539796810104139332958236383800701438565962036254830592543276742669055931337932168814885676314759587172349620522409897292187724318981448723915666463021689220694845597736730667297088276827299929342974208626565466099286307148096752623767816449063083247087585311289914097170191407300425746103266814062497391031611031291999112267360301558991950146905303761176465381029309771876724790990375433774898455396021577794432235822765239630864413607675818154345074714023711671002145345763856254982105001691393924561101573011638455086348615448973556795924826940920241909641167514256808436716867313081358002333717288059652008550719431900680643340136230330512724957702769953894968295368762727655458880083956555629026070980481693842183189189264725135440220075322421219194313960781534536398551574134509793345917694326569175769461920630856473196824781810425644007476540919972538260763057881176200358766772969138734716179553524671392899872648130071210435519217945261129035511844778262659538874946355901905200761590699729168008123992811549171041506189128969171011817241118106527680210745885490324597395024239799423040560483399259776548480331067390320625313217262917075248185826084795173728794928147059778658995366800427958198841769711415597192753678181910697803898131660443923718133942825692792015850363036378728024359942548259975073445238838892382582141225779922125739918784395056703407023905214453220531295424941867502772908373509156576643025238976028037876751105532487502878281659065376482422444705493677687509912862693706084302633408911310420833523064768427736653539171820032136526399715201233669865408605888286791715150822739246846831840463815795081578607706410950617790984514466641242002146771620612008428317498555462386981719410573033772204173127456622572551172069003122844213399735612319694722069086478830609314428710211356444063697972425814422642492540807415088596435136081554399105218513874689943176629208496205090722504514368628236025880507788564151875291336145784527646371248010842670631267062524111940026634199994743135968487775069093227568427097976131415455805299110730205105329087800862698976010851037201981956103327014436723230573717974164243092630376474646041240566523395882945567396306003345013015579319977358239332964626801474271709180812374532811199950343703263968510249670078968085462865690843792435575900734938527100986861802017443177726156275176474688042903961607168086666047875700402101946321487632263935429435560851059592481591898964495189958939665017414858040391504226110253532664536555175456333496354578754980655360456617993371266101455453351435835431547346669859923585541559781698634503599177285599403321706941023482871755725890330567212095748900028392736755783976092561253629043370208418053650343411197379076952048790432827267958925353823748831378760567215514039033328271055587781867960865426114796910904982224467249353467914603778041117785240273736024852432234252231979326389527825397194587698844034060862207368672893743444856624474923463003118714002281687504701262906199874336694351053538940490099182372933793450177416368194764300454611398237570330055875764106462890974862405202855443527977528119625911192578542626074330324913931230352780855964445601474483451249874166593955749888390456328997722685622022825933674186184544648869580542124502148629333246771440177547707720277497223805015497345314389423240576100908233502680567065521354286260342006415217151790365664879271411788132174855079824685896348980748756723756651773495849390619237581458642646891366539862528886255837814949198986887280558670989274919912662404244564648488082676481905539324814108639413811766031612944517751253491742674409652336130112569511581211329005636995832185036362514256784983728150216117456294402996826572899565423920253520157728519707211435485670054725465778781984686593305338375281583042068952952704463942872202422238006698820325200639995051164154419918973061507935307248386107559529490131516926491879648382741643562335598595317403584908672747332086760758146282825981438018505978210132626263474097929545598883824217586011999376004903704555714955131449473490007383628079612508183466843946386166034422071904885933081460034867314289904554801032145046886270814471935898104960179047560497111493247176352651770574459914878310342766960463989198717808287489912451884516872732622986894203542437312955311759169932947004902855416307939160956964479169248371918720139560518172336886559338334350161238110842788214805782845420647280715867201884771996341938101509772464891736373726752417877461717582496812919395996173233156193881293539438050489982622639430182979864714240511407522485637652773723302202955470529533551748880713642017428114007521818110545230037293945296738145847377471402318939845790191240357083075736835515521594906886655599342646202508934869208210526440305226328337072049940395863949539480051119210930580789693009275574684954013415171246352847080914156232104441366412280560593462000028951146145449684620818180184583207491099752780586154119907113275250166349871859397212029021764585851474918840858656232493229307152374693774969418955697898272957756041077906943486068033851598851693385046908097683068010165085747220089816305590682596345059060084509274110457864201697496259464090121174849044302013034977336451394469629075959898575230074871457964629229640993615961478094893174693278054430134386111400778936743933890756120891561446023141190413424133018233433642462708961977623024391773760086634299577885360110489881943137788060480197766824583109917160534521394059881550668527990388715625611966482058121458415476159415731395166865965864576825874758657854117327833577231437696355523202608863670516430876915303197982421158494256131221379149415802299761735086130737432368325517117934522577115712024158307597814369745409359599858535305148162559105201149372663339362943776918502223371970032147278478420979419222884942368249155147066623703358700761148635900909657735990637506167644437969898706458947697494583086349040533839440309179659657667511562631217319619290372484256509243914666849910220592109400055574838795679653276248248904387237288414360261672806891134685684670967683150330851380487691319219715821651113652094841336383546352981751677412474640474035384468118562422700351414047718943605245407442680099520545885191588054053233377388873583126417158005371497859552327515905575158040360367147849387469371797564009668391131631927491139519684265426828506557809413673874356916275928159220444280327753755812894712009525941704058062298756286534875276681488616057696350531964188517637787294495833397767087110839083158261606696631513844821784712974791088978079229854895847987039694309007070210734126753133895134607611190068844677143126859590442077420106412389529539342925379702819825027521861770365075993699312273408409067675985412429281256790534985734841499160304164998635508514141253771458392586448435447303690183650956450166898134120460348229417707045954796888441336671157521232848130219517624044951290781658546836552511010737827861946177525423668364986155403961012669118820161563307015998389134373720606302634138730455801955205419099292396141501433502100780331043288926922645217885129888771487795571741414790571927984439918035170316579893954459122360672323783653303795750313247120631042033593728585668635121186142155928228823586649156894068983359459514715752165118284119583868291620909099743322288385434043859156252398247430953084766075143705403624520463819951308718043971952693988189209338733400564699924570947172247643640436607345294178614246261020034425545084208042634557485064178214379899766913317622585394923771792293082178973985041201422654081245201427838068580306917313356171527107946634683706992297524900978432625187857805984507919080641689443432196097725249926057952194927710510873543073513580510872299915918310769901891569132991955836928132095122491092963050863842944727403388720523247066062926029511851406034408988099885328985609380383845927016319869100776141714578266897738428277241037773023995911993056667394569587310465864113511998245754060450147378548333384756050833092442967175346583788225508726448290547540623395729226286871160625179434283221933585094763057867951965485189721683643643452272415983428601796669277539385171604878447728917614667764740445879933392695214797228459155267039613844759552346105525232592984050531144266909177208390167866499276847431047329651169392257140706351912183028301156515390740447679082142485332599637754529015845842373886670590052067440621544231773245834164323240839932886574603199631275955225422098679648628169309089871488501230106263110461083338677358499049417968286836881966284415053579659203048241254755065263652929189202389372870748782565806898776119584574046508847801419793871301933986157775299841384424185406566333821525789807842332643219244223578465967517288813461532468302695152915433465285371560452479670319185487323545890666120748182516215023324312999238295613822682135139800405955062764927286499291443387270535082767710449685486853763457252616462920782006885688160922438925052663001706892018991835440178251918668841133805745150869778158898297503896599340850831412635866096211667019358678836456751915622059000875399890025686762469202459336794900985114425068037961901278544296707613925557372412358089768420205699476549221735980189065564360853878858144169367474188715096330876890158917498803128946642388731446671381252384448977024040576358296657413482865361774003357691535749085405564325946400537290284203470077298500323368154403986627299121101912386970868850861104026954620719241162777200014507344862905918099311621763308458504196749260425957801626443297412589734392772013821413522111106104069722532598446890237349470387314478080454815293488525773723918942060800420285246013492921437190293032963434769592114451213817460280871690395375519675871542273871648510934099588740817232539555528866330332031660108702862647585074006208433020044699438413748189748617241709161120791263764436085089649411130759487451607815461925204491141372165086036417240226562308877914805547122072083824874330714579777996470903630815687612413935479933168100941183887421348860423560290639069491285622914883381279366405667149996709250922343008553500448743934004417554060308632146301458871248838079899933429900958633195362921089788088756169299928954443046174959505781659039892676664003536349813350416823719246400129367908508816797154085800654764374954058393497126987513183037501882885626876612578263036298642293756732870563262878413619256607453495605878291667841296611381174505552806494789793880183400446988842471949422674049083186725645725410633210410636618703399352559944180738620098880934988613527038416721106613280407684184300383433774448920598210604971999287637492650018371175800743111012279049524450316111560219720795684750626090281739762679748755957811375200017356990369801391977382965073476828462043206916517646372420023737067704066259981466175274471964715172149761647436931431508323103545124640141993993785190794649985175938451473876030356463806516835269204106315367650695485682833121842407697122038998355026842690590760747710430754080757339743594059151808643888187280817140676173158516665978144596919515960607562871630549860334414609023734378882358510655386244099908514147644404885455608106424369942312291040682621164955265500068938559623378307796149545366127714005966985759481261342718595548005022336327314995601695856052018248973418686913075678354185605144542725852448573898380241241349767257595965949922420735505805409056179240796291375736840978287931835620371526074519497320524031624637582945071668124292943172997715545036704194196241071792896780471451426115058954588519807347648979997872328079445190980357933324136511562078596286321416515496801676284918186772268594060615221347309710533513122503631356835784255288455679423555234615433574796575407711184035087288991315375527060299478344921524517465083959209312794262377820512829868535121732191684131467177405736972736695919027183072682949637686024413450718930845888662607313656256107279416527608390460990109016167622782991420510505988029872539782239716504866532660837728672844863458870450974820980534421429524223461517313669950997785892042676221526137987079081412919104166393548906642295196052816195370090806285919302245752126778607253742397363091626963209221980630610821870831552327179521939689895438152480735451990713637387286905195435786306062763904684024633653186646800896691032598536136949367446755813050465258047683471333998382062872984580444773414219693957095602566152941023361196284582013061549972166609166688919377643292573018430748060079361975047366728368273697338840493146410054934823032421289851684474086652986181027782178299781267894859962654896846200353081767268409574531282878977592956100296275752947622385012744857990869268155736423597308372743343002776842242642717927609447059721967288521807189177244396090906807832101303248556883567482325360909972028958101317502513932384791795044523657972627084786735282666613460674394901610316195115646613736282204090100783108460051780049390190888613179464199685614454854595470686635314177093259173638990900941297931455286400523877479163367714850436625303263887527964364099651994052044316825376894067555936131904489150130544391943268762498679190861309988501661288485008080004779307096856960212340029221389793078880289370488360309039086320932708655241124956982171264678416499681421957124984081865156396186240080419950101831710277046208374489726952948996515495668285826087926506680965446119046180670536722429884862542399040853861431262161604890955619243542103682699539484626580734392747404270214941280920323610827953055648436913326472739436285766305067447049314910130134404774565134709896025825405327872440110128019412023124908600768602992806137439950110340189460406490019191005947584178666033726495819072752864229582421346162506207320506418699422800665660051646561938497939695795547572104644665517438406997660892445831302251025345485306378443804431234642279179463360519499483445881506418539364956934498397133727309807595980726400265555113721009484875261484158786861004955683257127763609869691252952358816475867154641577688966537150115560509300938922111615867567617570379604128826616330879731329509172028310489439526440355996700737769796450589997176883587416332621148041708067401224758313171660871384254966791053167992959437141461789512958157093029603649639706656699648468962421999276458263717579139830944646872370217600866640444935907011502283554924524896064900727673481866066942806065620358734162145804964013187096590619696086587081590877782981978683413083769142920091310030377248028941561521266672145846123704460951129870760193685479903040061462605380252658478553775851162639439195959187887662888445197896258116255845749358225330051878567616065463398946654287782739433702605698707961992311175168758465996786211141351506414254539082688564293604917792605164535334531125881305264686826686349456702202203264944750681814984041862798653737870052411039731914328359241166758157074771153769582948057515931867375096808384283303287623508469472791419306526019708907990579808547866583326204317009867490327216124178008599787487991863079887435930713897350517810463034347259745028853048236150944519650669227380504739944071118807209972034956736964979023399971902474291969045114016109363108309482793217744860158683196316076657122168579902639259960566549294744261184393094772148087191328447243875235700791105552589170686312754216509318390371592558311216327163312287945867928167561720684470269494374490861248781616813345897269092620070021179687163052833064264366825276180051290132698253855344759793180824488986899302574592208660186681074882939030295349469880205095940748491324582214256793195087586540842044207241695084023293739382544950751280571709804840629420369897288367553476301750486926721051986562725758205671138042678184614462337544505763956264021022905202044769087865086648392365371406396150367244974303398999999093130546714976896298781732099687257575751873007451985323460840702141779318025486622008347929709360367670163986580501817126566641968820771022195378976701442079611419860650987947485920043246980352441090461927406239262205192235017917104618139621699139990904383211299142233304460048376006420561462517192009295113279050664438066802588641005828904250113583512136257925404357619977379807610963901836813612880175398383314400878152515950753967895304026721051110795952776776650096936621014689841366585508391425390875047612309390764298840512307372115797389041138872478584104902264172027151598040983741163014602728920233834403294389151628149176739415587363816158654633962908669776523754262945444503591375682642022740430401435759753433226438853559983544038684446844187998298805297019246273722689803926958914690964462075403013077968335860737796954147059179023191926063059545019158986936713749627083694020478451936232854795485549123677470947697787525284740083187865941501352357943835054180911272276715538720456537677976944223864915733762745904026837117027745663842574523750768012640532829593957942992588734743057239524273508860438606371172019368192410170408007991169126105921196516921163357423992780236637311064625127902877025547004342689721390831690230696917264128426502093799793783785427451551489262774177947176595771229469498163516645630199908809003206549918616229731123059673312209670248649586566731059385683989135372859778155804278229383882561167701647919191696040062053820197773551148503346373266982547642313916466988020155093202881114645821361349083043774819580081250228490807345364075075401136859224468906583569843367886904577178626744229529085111328149538082251900038433196206931390932153257434971200599630772063498553478865321308740182767862714694593945401869373961714806949087331739093874069649148722169463502948406291184175451403721762993348744707156906141766210320065254965530264114648132899836886549741694295773294255859555815050221616771681167953751849152685219023671695652511398059131652564402615218609144707630233037483341119279731652516334710729164643700634318978715417717059694200197080123247845898836337062744540163410941362276362227610297560381665526354812906047418769925584162312638648457833150316507029242423702261084280198604946981434921934094568775068126764591019647572160565849430989270913372824339649438306637982858700698059525774954142624329937356629445139711459875218229928124317930278878757734708770185416267593640650924097988478625551029683241812619438645549967723011747544418573788850069084042861221246749920264289984455815685240048608704347849932691416708439843546242150452488032413905610456295629181272397467853479881975426113965235331135927947225899610283903289686994231163652979027315034545145969297304585118992720494278047460111407387393366642764379510435618560961880990814703310072335877801721670568266882559740544926546263255585596800623010324106260356515337317665674624614576203270810732975190374751921855776912407754836019723619749552734655598634181761597713908111047660131867394095771484430108458435169428333644051314475308449465713155319901074349090239826847775574245039558644002023603571466760639371735658142914660959674504986816328674380276761345335286207231831675413399678588280332919732937444886834469323943242790687904522865547121996062959831767585374091018896831924546763598180709770283055488461383432544765818658671383928333063063922789841612415130741109235784449788554180621930123250532485706720158361290459381590531314592768226556603873427844460415118445440793622446845313658072426575998837860676384544073041603685632916371449641392722164050467527941437834126048906900394926243155922640687702677252772264957843260605615225580407792236604318165722826468057732760269647562610850307073956426987144980363246811863429714055305689250387016172568899640123358995531749716198275955270008184011442671837870136015224757758104617939003570853263284577921641675003542572761938635123990799565260238541222531357977480759026265749387096642968820828428619276026131127266204775609358946821230278123276154298413930130868115471328674379734884933818953997914985616282308053498977154578748582419457467352365202512622033704167638654369943145172299814490877229634604571011564020388912357251256665547433742962866109335039780530313838244700844515266561937578987618962131557985211513173891856037090514103993230087821830653000159572833422954372861796392966102857675451987342980944810427100091695248791238898667283559013776569492468175540620027674143960650080447250820417729078137300536402699480528533808750570855151179717330954932693771141441182579987753227369677884573335278390640249718992312027630410481451096847564232101295574102328079403814251023878088553951094049036602390011379853431952084703809659687552730665577467006258498712891045165938266117077842102881424843527737023147270877478630629403608834205786436962986083079317055473241228244278811791435166869946142853797658632446467043220067148448042021790855551387186864916440186392386257863825538590437087187824396230220342900421024456855624859424248348333470873931260429404849729643842736642378859096003572106022148773329236103236120403082863639646304349506520924562209497501312425876034237159478563380702119791182668135633992690210612923282627021892231606740967608153857076119281454939211613492702027357169245417592517177301411307990220913449919208221554954843942785314974796166787365166490215373291164094032593441947194613523956410841125978508166707160559091430407652587255669882791141367895204614191925111038745495099330438774576832117351480242068751723965527490300840360961559487324665896065163480513081667846055133919145200742834171129037487177175134179438959439677117791723166048015851622111604530887474482152228852585388873660612495600283276734698193217477559600223144035841356506476971861105089863175534788193299280382901111317625504212823996074543263786934586612388510702672845416983540182741986468240538710728884810360540108151086698366825764381436396320065233608542254573119056897259867796066980202078405020781091845662701436356500595898404581475486240525500793062071423729021871587994968201398959312440433457416070419798938722266401260705773558431201818620767480664234475010682125886216178248517563193129410155812713194659737069890947299214522740584829209847686084117867742533025961443120676731182878811704677525629818253513772146013316064859835345536629353957413275747328115994341524651119325391916574254788479149169213527724454082322249706617569442968327580080727161144586939718575955756515905275159438483104100279119933545094809543858108698431313760189851373059483482630199352526092825621129824873478062973275413728025095044556066266039203413932637124624410887828582541416713588613738281481637884186810852903836345422772660251437508352636581172295811982043058760317204911327910487611803727102855147901676618669233427281958948049141107796878587895501956136553850109110876243497600966894788756531433847205489741999567215748280338899206211942912857505425974359951079367540547857912890455444850655286034522231985601016854467634375902946106190270085448455283944313065036737871855460696631786680930481504898201956362545803200426362888958924769366812791812894961129135001546211945510632920876141365857783012875884975522477903459159862932590394394118799459497205464524994720438904825389070200873725460768319571877868078166972677857616531176934006036143230585823868268523258962260009747605702037199789077721720962681067679038962344893274735635580668106248732116524898207774139382866207115238713899881023942382672408559103914624072575210981809347184543051376897539879315645750266552891515495747302053128379496979004065862486175817985452447863652507226315221511861901500018863366402013219907216356086859618293609135119336154374813319156823802408722054998662075289992854000354780244720039942819276950253197477332362341043469383740869136884443046362379936613414876689216103026804087681992504183676728952633737529596040729822965054287715450206034451146790032043340722718634115418220833208952717059518364067683733804566407475283179206985978533559995585251052126331895312197594979650818670782157676268545556448091002116361071503372929280910551379360266875671359454057619373435620237719072336796274146637378795746988268244310626338490610669289420553291304199184931152339352482713963519773954730154658247676793313430792473810539831895173272602139900100273429745647743960005532772405612118817504190316353955848434081657758762160008462575237176997194477841548642222590827977816515141759768060836865007365248638243354700623766849935005850246174214904213517476349961724400117652202904627208580166168171881721167843159905002457537275015690391611896284826544466726623594599381304236585548625438245623674725691155747146813373972154881479241961741287702403786096591814844825928651761130607341055436746668192723136750949021230133525720422132563278401302492885870329468713752190902093028589044780695549449237050735627795463170966048347134962866912800650026651526022522986075555267145514964921542287457020370783310038669335318308870893511973199665681089874226752155290716562821511052406172276554051285380010275022611862760381534420912782655011579821743430286113475061940134851270804460299295298228716968119143067407848745218939437576955359899632015989135290360290218222662869910783495211067713502960068002505788936741200930121978772262501689147918694338914576073844688969383993283479105522893252828078450302079681191283427907193256461853978960338881972019061853281123883156491085863791936231001594792832715198312227093757699360392197546892367861890170887639999297953754777958134667406786724109144259447219971419858781156848279819114740866070853342965016533535502475709111530171581294325935386038964985112486921857869743304022067181589292523724269829989685604564038751458967570414916313104268579520789012362260135477167987087673860322137669790605593635201573065995305700019215395179169702479022114537927887022253035315166181498141476388094956643045556312675420057835230274793851557624533666954734785027489541935856860871764439038285534065964435198917762855473012380878934096975768512511740228048634341330373841192359728545380389192093177168602448609927977751789756595556727072693897972431092383833910325135753824542468112047873865324187735673784777336923091189056321067455405782512518717779617100119880271698268482391343745329685936790125723475227026269176497620245377711965702305999849749412022686230205929955674635830488889103732130813079186878899146089145075065999594871114667370334531789623799824909568685846309490881407387202915320061763817210585294513697548220569220222582880801375712916153531384304524624385352509353374198192682514577616403251951667962984016566930796846072774929046039654883785009121333503475430560571996268247213725999157686414956709326811257697811281920236356064746453080602621990498066043328411711844932212285764789852162386905794056157809014549602787210432218845145457781392526971991829123664403598818963885497217991184700170368535863472202964204880817788001659380247016453801086276743528993366728713203426188428951525473310825983193420364593416721049040319233363819496649144894410931556498510155996943835821100962105798051551494071216686875265022287743313502497472779914043592429002649469145613814032158218434546638677684033148100282364201507919126572366146740641649549206183327277319729769998544207418265374935675073749671677324757666742315118146650680626548304936124449114302421745136735500335480463998564290428964599370929230119651646310638351850242631680485901580939545894598432713193103904652374327860683294585813347468829878714655224384677304688399497601361784624616603902384455172463794407163592525619600701200991249561807943314279517582492789822428899800500652127225240753787128038436294309711181855799015377938081659260599924011292152199109882587189557457774958864096718966157475028610783657191403183649802785178322519705846630147332449047692436420887962321684544370128243703186144875508699934994676820185956128357595011486841238036424435832333358041090337681144543886438618575421094867177217141142476789509123368428674378676194042410188035218246980924452517928275062551975890797764422349057127395661541602069458621813600728089649268595685869332600094175049542409156579301493823621964022102659276955554639108210610658652897267391462972748397671294944451533848361055580155686721570628658538813177564713307701812442533854120428126030654958827591392790143553370394434666387809797389117881728067217720694100655825287196907410260870037958526814089307143473476002496282928227802711833296645845408126947534511372661589938947839605632331070993707510650493865545746523259906333034128937290851595465055721232015783065467932876570411927515028961547528259988210387237416220413887308726926603365681545275333352295922645426579468744747362447266250117732841780944497543986877078145446572410753207769539194030148057462733830817360660305179482376508805889330024172927074839998767775734637597611294072603650278368516799272538818582894411952711312250597234172324965255053625582007120233621935791487260061487283053851033356535435250373658420111521285982433424190717063482497072491206599065086632639777522881798305726405030488005651965640725618579816416933747864588381153028096562861398719918706204535950053715369708038773558704966983155598907494638266728116133935556938289804140386805791941917926292866593187926900170076490735201996023017471922360121804666774714230415682121952873276903856193555629036265430399573441404103543592941118830110903826896679340885966458156633369309570218277320863266414181231747135240944647556096589928603961412622186945601398953901560399382846480178062587639802614775266185203670412031687565341899776140569116315263027313877505927974850877249403227382266401165576759129796779996527375811718173361933009136971344712101738709309032945074714733989848829296570720305081400378589736895076077997437111146472513562946830881764599806600516057570668252998953599234344453797959715352523204067815169723257649122679624623905029187531599502361550111570930677065077156879757184927402803570402669060235080844465903591539771863274698376563064446497926030990192580177486566492134694851394673592660052059097207286743229682506413030197893305979619933407463087603378803406050853316778362743748588025789038252860934045838263540924223725541035680500240237314562577711363675196738787046000292812308266695283631013917329445977261966779859364793268839500373188034883433286862315228908678296754000225545539779967048314045366182674089558899375083663632386881866480301163190408903275854015108104648014663276651585972473450667392420161323430935122197355391111032404043583195212525050338960614287472817088369687522569302666080351766959816381976914859162522759775722367493951015839753324791420042268048284971006785926005832775421160655340657723152416206770361983663377865094152710341667661942418618138399079495919112878214929145875109572474595597653933350700004299300836918113170453527404988720079479025263665168718123536195789876385861180447357671252100077641175599710638400773365037012760511209548351269948934104177257321942068768551079839725890243042500867921095545636597647826647693653451643676544967853336605862227214603078012941298080447739648367058517822623537909898718650369899588900261433060195382259435211871559118783982739707077202404083665518378911070309202479074780338467392223840668895664132072866999939436613287475238553972551716952965147901641030977729823741221518827040834854347709113431489238801750668552102673204563234384190374857838613595291981080930099214913684064112757564877567391154535228938740016392124685582884301610906760454861753983283231420301506222343026397595655723500053291775625972091898210550857563387992470337145461426411768558497168915538626266622712872576183933636464970347014965349622049410318655342314885221800808106472895318197612009039202159954982422877149086457212895918588129334230307986722713360240119110755652539171549926322693951219446422181383669664878951405003834845350109702481683580124524776566226759880505158628390509209917394780940502237577175314293029119849956456882125008842461966865550940538406483795072191528753587867377206565819203700930543815256253946320843485238844645161833652096300494761159740125991224042483601700915572353766718230214814303455852491536979370801425168094625355641627039949493122192954699841541602059527671086758147782070659005942806755004289279347950854462268171661177796768312993474594999436180616869281733056086675088367254005862136875395777797294525134129334560014618914224646585162174371318209820451160625994699500486803990125071247144645288324629057397157664160039327148777214494466070669542468149010249788715246402287664333289781562582770601708746192483511081298655714594144253476224581119218885440258939343369067556307017231885252028725655887790250427498605039512314790690620315467093737860227931063902221465202227666931051537142951286408470796107557388635049826862876952494318946854361628665312054796708363363683427862999118814435353060597854793649554183865084514903619924338194204160396505996196077208864977792489789076801100313886419512413281368952134124022297633905871272065563652378099109514293937455253226948149278820491295073993604193908019445442835246752346904073292615592134490677632804886194619245623695294941163920281621522176445167155035295522913494156991619866740490419615340358666807073544201486005630308715097616956720301717204862458125410270910934582631381822946596340882741311557577398400844927142640485842365177636944042544877286019016653014995936321029114587456467105014861655434749314848709924885754898719218372307129769198080439983840904727983937702595486276176276774663265100600963597345079141070756349130389921456521745613913877908517275970613185537528447900753016657390167677244870836821570363503726048885317409937494556253435469183784431327563495444420687649149597597209220798701507492128459288948435076123330844705497242709891085931461996987070489043537621586961380651866308470006114430840972666109104436801074158521128452609137013615402584587377880283877767337596356074282669007172627230224305828614041995178303341269202702486231660828440320753088415746478342717942821359976555276416239117295735311417881549355694447199953558651419822961531520751420718490768354234497130386265645162276623663587965130823803205226404603065584908770911212120653306860228155057290011362074870764833683443769097332102966496632723059055341036342769789241875900674350510612767408296401764419959258538227319668419942153116782542081967710323079510254320716848592456990758582113733873090063199695424826267526349330867932522504040293859105124447140578421124435216758423252591416032467318249672565434477100221191137805766601158877375773316570948307077193571929582426025846046991801302050121114069397914583350221678173669260968191285188977067415512335646663266470986211227740049780448794165022442012705250179196466609486759453435755414946292289573472293801299668946776227286240491699657984822033845135706018735526033716332182850383750704385879348489968164421518866587451528764327004608885423734989498657726692618243931009283721864553274591713033318865306386308776339054398223227849233344443483328037050910184361494328435220454910278031377978949630526928995960493985749235089335994055430019069620504889898249274371952112837087325332898965596649654568941647267245024588517295605931833972876167558442626445227785520562376192009926378538088801224571705552125294015675274910715275091956931957150644625912274860793431327408893333928365672174440615996956799587355757852071986840926729746647547141660853599512221198589053956896082811432591236790539926030607943251674263574907651886832872553766247267394204622637702989518162799765227643959363988254129721949691957466236772183641810024395825383388625619784726188598565592092731472599187161185397719817765854169897729896702950894141335006664302631383292213204523350220864310685264271218247852798824205575457634029133880350683876442586056394880074173331177900577596420045850294482740823576741579008943404932032285796835423022357142807696436910583644767085753752902058617931191321516310205928724826589504212217186920340946200269884640830544642306266829865026116109352318631585563943491900878081857521410147649542727365094190424800523991853505622837582312254307834534828077823391094262228953797251334635650645585537014291944179649217978733304806571119736293950154197441025574246825529469989666844522968216656748363299582919771919401704288479904178349962237947908142612293807539315894583011231552889706676740268710971848206410929128758519614101336841558638761165961036920482225896767839485588374357003368888437923085661023480221306684371833069370984901048398403961268377083994342708258511146129429830181776485520064390991649950073028621890130701279103876387367812318970700427083115235586210849260315251951350963965412583741643078383662906264284326316240705806240385265014508765093481377064341132124255158546916326732836586598165053616347724963769937039548483323055563642513535968831339375055808141271586541917796884455433381159684312803204239686546660749887418498851209845632105494121428900291251761292513765456034796266225116989445444201297120957133350781117751044733753063750633473744564033017277542400552803611666112130961810454968275673313967596381423393561281137213941802083446727800676468542186156766663196907438407549165240948090648073940114714171269546511586733928801787853587505300938564209583528401991186539441485576918210710569923832103320038267020428628771761546180671958205929696301703001825931556250866371761409424486211238651422071938959718942967881586443399963689419461758226898816631034321766617620777408418032329500134515458405854785521770256511905875782154502742574136717780694705085839846010723149377515379231792228679703943048351935721151206144663546435656115280042284858170290287357923355754769867086915881915195439452265640572087778687852900877720773018421775107468535955086636097023641654815452559534425930175243838904357870935020962786773321981951677375326136620269819595526486699720269208436698719256593961242683305661259432960986949733091934425225639157567982528138459324630306435643648589583971116507960124937585101626527287394368194600133837023491784913942693450193200139085506317740015381062207000622934551503395131659942767993797214150297693324253316574312913497472374703691670126333761694994337618936713120003690663470565286942839737856951159206225546859249894191210679791995473791915576583560459493945205024021575281021240941885766217833873453288179221144893549899383015543832669700115093129622878620743940012573586526998806519309153982609237436670738757649472469532359517102672005023343882757849881826613250221956436167562568112421207104691584920614178834532077218675128366744351181345951583784729873055771434676665369886970036355229500099683251165194682467256232440521826570601017265583809841108345884437676698612194077015809336922521332558940570603013877448332477490081984253982580408681238572391294271918876964210633959030039202784521396777555654994173843147134965873650812732565669845580611935399382160075724028600835804760716835358443601764752450700839762368015642991871936121976327541548827106155626706864117785635727603326799860950217665147120477504960542222001958893881136641985910945836795579935744300034758954186876858032908395494127823224653836540775826118115953894991747638041711181395279037905496297839343431051745980662748364689175486769445532039561419292801680079185752969147109233707764815224057249545833232925080354430343393536582700489715494137558063530270074624031499946000634613292947413779153862475739617299911177517954207681570724861901162425574532531150647399646404488352641553956146001776119926583259701997940119759615706038920756399120436017983128699292666910815971236882188001225683525291805629640698443048371213211044351731485538666302688110088511550668996140065788740879624278135541728607277483301044123033431122018993567957781521369576291224748331189469752070925435631558122780006993753642559239516234172131916312734383532508473553725188279715996070796691067751744209287552253836723821470772322914774418538815546308083813830502069587020683335258224501807107609571136066444259248148853098957008589171390444538699184041686795710926247032401531218332724698555278376424089107012754450461726429060906810203770958259589943073379683602237454612922395823354946083877244353704063203127994530052133273243890667260654557591447279166854777339933681190403223739972269841504715781695683271506874802369352647487492472318868410256753928004808531269517173740659236558340255572520103987046775974597718643313318324780496480788144884230257406472712483021952275891334778601399090946293554733380105032171478841543297323533342351892426693680144913378285522802798498497186682418253040667449269488947648388515649247660213299651463885374194946252714669036088921214453482479769016477636078736060881905044766481005381685046277106256852245828363549825681593072532354192431583751732419575541918254977555854367202840988798394741235996869364683088020021889499026173499511310351201393857325525517732244324897178173968538834816842357636642971329240487339492573500059017252037092707809262034437051757566231662364817734392239016397835598282812261151715877480381199808360853404372340234106882704280270436887621416349567932990357956197885691060931388807015408188733627866285446945985698439783466871192915869381330907437316625578308966642968077395629828334078719992261468065340280374622822323286245639831838713741367521659235205443876485684412935122424452274642929509794655451854228197985733384776936060272982067525175225888940217137990620080285289528309314814150848309128481808786813586127514945285549913521097426705288524694531694803381593885178776506129020092854091658249691846381697210387098091584398624535094527867374627189483437667015709760151400168699824024188358870904646296110604440996774687739033086978538188550258615629840544851543929559072942061079081709205104735709217470053492829335627207089575351707107944746557071269580359793629290288918211547572273563070398082653983075116571645916456217179026530839324750655545180947077447129474629249495095441461854276890005727389048780831165924635810914919128855529604594986903911796576771073342958823238947773724732157670755017720692733764048841638986592463264402753092114770584084021279289554808843492457563155551331809788722319253625004594958268044895014099853948611301130214460711330696262673319220615969273718791451073818427975194948725676587524124101772973310810932776257852896190804062984873599614987746798465665651600897073578871370463261359220337561625050208087063196325238875950090216980268134962681058053514534008541991791598093631951677277350714640278443570131534229977479131641463264860077867769270733715975404316495474956920444798492872014347504761796479253070754550558354246754441439808400266453219234050604418159461112916371776788260098630786864383222360213887800551848543972589507431010188993610550158425325322434556245568851570664152246277225929152175367712717691854681023504990381652318311782713067299446306776429499544908854000002858260106943415700075958633430658502246950252744320969615510773838336269054813666850720121197149100889058539594516616797687481924963788322809494647971479147169890021658539474698104802539902295982079600124161762002202596539440439349390317072409368043237899732941043317491595576913809274995179549949324691368764797430087159670821866340223099544338290960689677504976332900393378673311350363304391932948882879610908467300299647445006734840490180462139194616392326964353247295036237449257712287311552514469266760193420251672720229962890748437820999427934858893026926449734400106703005918113355159624547153152046965807760961324208870230579766508088269434199226472172391350876948716867071701055600955455037876115723617704809214569736491061089186376224094242447758072644217985175921544330328452515634523103692370879885500024235024977707237755652890201375390318956178611791824070616945935925694080987895993161310043542384895647174493797802224386548988434401989710638642695116004861292962570831359208044892626969404486297189789699415597491828418069031426852654636169549081157780622477614498005152243123582744403973076847464732452464397456807649216085813437541401603922744638971616323295764484648310614815599445872387204490501472895681887354550805025155452973059712964446958207676528031480864046396302771439083443082529706949330512138775010966159473045205212831187435413755178637638548664904407123486177296223287070511657131330629200261020835258809480378669263501619691482063000506357369071103705200502027893699097315487868092444329208458167826957471959412264956554410491229094320124327277310732439606232148537883788487601189094455043732722675534635580966001404580301377720828007900690987945183652291485725065905496036627058141035368376965204859290551307838676470608840777358181331905606654244722011896104960710082167955957058028000914308417782583337290765205681048458906422519210058088810807983943194381549785844889083903288939544899865559820702491876011598664928402779016098496716390963023960169214959062265154909078089299334072430573246067617520727286672381783302214676652395887128107366805119834165015678955338331745845514252877933970796928982079041705913156033420637501565120138827723075362037340281628729081564103144384291183095551739288294455933036891165931729055743689253990915027871794148691744281144864053266875213537299545547699615013837618953342493933812991186536523425251404896357291645891186235911895276923843189693883426793595368042703474154124078878760857562815544585027459047059858455886611402427488022828974696773848050328810917385100244050912629938092185281376093646604919740343197570967939483334488092495019797609885242331851022048628184912487067116110242822531229556187103348868023596642237602728389604088843997490651392709494883848839048278606676833619943384959971283394602290910170265968779792935805056880853712633472288762884463350348647686738516326089221781802868824319714436957502592168608916500924710483481057003402202796095394664120457297687126285280874456418491101774362215560120124905897999793031871833302862930815627874516188943992901346095124988781892457340436782461673594774254289401351918944189162260662244310061461307873530286588306431221047795458801334073383727905314241065151320866107389853662932672293245720532705748501528641955494509351873401387059303927345505118309675956685357201352500961131712207866478837636889435300659782837230085413486313428148526139485875995833978509260448941280527099986458306313822517601216315038195288003304315593564504178588254668335829185958848910793869709501960850141028476831321496744325946892595846125595554543833986519417288148391169681306964982168152895472192365723916538853394509006572043345908658677042523828562933148457682523045053496469111715981506956359624907274594347212477796856990469801387066890295938939926575263694522206021976946371208253961999724478045452020764029654734339245920589070671368197546114919155090906259222212280213462318570135331107174930611256858002138747555137458515018700576990907259724798574818309523887963114486738402814503137342940929864962278617737852549446028094433565725463646802932347335404388381265375656653609339931684326656817517537458305079560876999789385336103142115959679082449185405523979817441323131872500114071637705272734828556596188354378583783594796476291951908463392418960352055270105228680266473541640240949017068361312230048623912619206568372939056148469243603248074703067796060585854546673464427429574044764470425671404335523878562156796718228715797683354458156072944216356546211577162190905508606540802442039608214064674164427319553805900846980440953149704913545184903268416339744661046164116576353361752121830898901140900468919657618287440086090508325524469092320488892020982640353851188303413547393599961028390675831919943207607889881735182433236720513169971954107427916797273184205176310590118082185876772819233838364250439915377038627134961359903110743644762495939452610229051401286509823844473054721317428334223089385781660284246838903053381950755076215342879412233078073493528778057964613507953124410399921354613881028591208525422372225869622206001450525545366131508866270762965583628697391846629939749767139199285943494967364354447407233616340420917594052036064923863894159761251419127550614969969851951486512216488670889306196126667655961278922254121545886423649051878785690481158846602384569955515788146881551879342676673883357032538678122334805908764238844184247771539450424749501023932161302243452005933537152603721648095224891730976253140065984764074964565049802299748198485374743437030188961116192334287791705634195952785608802815169136448573904444257736599242594423748070414875778570151574220753563438364343680199389924239915094834078958414512006130116339231216409910228152798816690402060573267476468090678668881209986575530734122955547301784404383825939029666722029840812407528926629985618721657604364455703653705954028668946383819479802338385915376243209018798065683917842390768516389147659087507512911190881407296425439441118971656974109584555683305911172317456948591055993243339147080546738174775238200699963088495421259987260187959216482842526013259727202535629078183038528496241900391803345004649341410567095193046651230933072943827342660335156697913331766736116060424683434752777507017081670257060944330720712238854400502824530469334465943873977193903401773173962582558973991675856458764753702035360394330608102838195754583704114372554261508380256596444714439416700512621138712874908185112253410660787197029207748375508354787478777166235938039284152373237947703345962128191267601726855256604818858674934984405034159293804704268741123651463260728136322738953887333103226889178793282076865693485330882085477112600267806300906400955717366136472313686093833633394536295897524629038484162924916278847290043531701892919404753793465318489306280766522733523255230966796649241824511774876197021908737610962600679587071996847734517171238617245128484758840501566538110970456687986912534070956620547710415593982777430305293461962418353898164318471894006918135916369816046044038029866876309116117547324861437855565454747458757077945354889599346984783596051491130039178430698555002979523756195213964297208422113270589596773196308570240412028542779566561699951153656897474407259064605316879870672137935578458548592650212299547178470302074118456167445939465300462759923999580190291522694857860875381327971166182634885938443007453623265872864598616217912070772680298994803849797458721166840831675654170924109590073550640718896367980196390315209664050416290620447480027281092046224731890977348031442532238299874376397616686868724683502142579110245000277798376577716241632728718314079217794391500778844212408460258969164945086781793987649870453082242995322328446646432180420004584120120472232912930585676806713700475981201338501438085662579082564864154055520203009675084375151848925228034064578154591952061510456100155155704923462007366960675022396552461506232102364440297310227733228853202153685241219503609600200262226891114880801682760042006953531659518824500777831085414264046348222528632991942004388572963365924714508533258344050768727907221766295062886790404976901554723898421997563751418009896068176710998681073573766685308794518110105802956773361524265929656589218505006538287209596338565994201859894258188985792452071346345221712734691229679875589279478413077085200098492817805568242744202282682541878972889753959774160155012543660289695539208631422277406641246042400789239019058493761149841099880166404223757813118394415441278729095902136474536633018099165924845851054494869094728187811675592944039130110513312232673517578504113780136503632947002813865339001592738723701680892487733007479058286992871783715385318088838546934051496448560979165104403775246970930550599357970949706388538917045278428114632682780310439946391168090355861311181957827557902425326691292136514865510754708367351511127613359485474799372985240985042659411874699740033493947293885772511358296344282173091183177840089935669828131864100075217413729482197695628569763861341327334196673321157928517649583376504383951739283717378318953695696939028030807426008563600285112692016543818814138740765996237145479334127848639552130183967582217807880209902522931573148498396165367401456211974984469187537912652644823638447857421793919093669256427657225358950389072556908895659385920474188780258261339407086550775215324643842460659806876861376199952133361962340368349635250132559852978768418246507706898094797129742152291903450902456729988971554410073411671706966953908896637137896410069373606503794226281416784322324775256330446751609107642648977108000101211430994651950346756072851181813439758398536404118248725868307381083019214094363517169516796045317242662108205635815683398028869583974196670929638962619604583732996954216372173743307601711997109466868063186690785696661355964554880501725794268767158221042055772289432091137014410316730079603508621006757466528803435753426728192952356979273007570220911794733455460503008151907563449242538741703577348177856732184745019949809182713766102355228921290480159781407050722383951515631275955409998131686190034624388769086566081159856145688951885662447470231541789883448854694782142307597575742630606331367503304129680776427126725455372853810148186350506430471652252963061210122239365633922837468623670681267578469004932644363827395242461209889690268626495663070964151639981091247623219579783279528413337498033349899002751298859911203265515858261504181211720231927869157537205746267297823666273398885913783336917213421099430061370112460215875413134270282301543640051086328761277590270737862681366105753362160096028660029131943207201850502987402849258969237174053197052030489547716585191391244987854387030091850355719810088485497425429567270693403351109587833629501032897842264457601272907144758786415963019987723260824268429213913714836351790502357589505451348104563931824995980861081289136642729545770306487712360040194495826508856508492726090762147978294219345187069808753870393314413211443691481546604670387016564094410955608971004116246712305710317838644471738486537109079806795076741197081229260518970404644244337653188177182750750065194581852351040407399760355537972976257624353952514611223154003216704948753661936694940949337249897455965609415612436700941193366830575058436383920230434445386500959774439549680058498411986398345769176281268483461702005915682650501102600757280551771600065721581129527745989751788173358165641268188834767429235994071667138996805851833575836887299683137353503320345040182621138390018655663799971764937381178112604136488359752254292024389390642527234300308145003468498912918956016647591178964945645318293542495167789560607269223150780095117499185357624678266047662033575684810081966258613935797335842786305921429869071379789633213926793294088593264249451929229449135953417206719655174497885747151236126060251855660362183796241122632304725010952418538172276843554521566420858387467745320537970074384141378691552571513258974391237315977041628424240899565443351470565219509421282631337428578754047544316344772871645740075978629903438444204193320487971606721162134755887265091764672719970527887212760583724911591567840202689492830063791599067497013925425723386912908827525348056960399253159666624849115763833127725225512671370413186024093180434342060805673973902332735643824330732459279909054635002849182701283669107185842672394483424024339169202087000086102173158755069819414528075712050621529867572068892767678339856755885057925452629769618787812701748807091387755007529202239730472633013804416362197960933334521855990841402481726518424858488511386832557893350927011873451133705788335779331237323564249154617037423441123104336668900582139564141728932740698534312113809477554677396924306459719581470450692112812261631265479019298417181348503309715779786435370897562702906212720681404900805518420188162858273269584257558871322986358499781755157891354274321972128988979500534699209693895960334131862039095654297957977405667035609011463270537913326507313250071881209913813436746180334193581532081641634460349032186944835595789916691497726940773682465926196260840151959273455911038491808438089620655202925190612826245782857610777034205842371281440571125810894730288942957274051028046069344581432821976115835025303085721106583794081711622986740859743801098063372096228403451622586366080140858000787195444971526989495884891827093050541784712915908347838185402721140496735808012895630707371274483714219819007409317874637501984004971118875343317986409164809255492831361907655309430749919356770115401821145997208759894003681588508590874375359989696329216821008402426932105733779086342632857980449005278103786294521980749567758991187630394425620143095174978928158554024577798408337330459943910395288073960786091653657532044031402832824073394868850494672217015652924419549060376140068586511751854796374611564973764011126929935949286423373517195440860933061518262831050351366782346163041345438920608830038721334036871143736383795904087009828686736124177426376615791268089535561526803415839516007449573707249316621209791676051168358268484266750250399951292100107046384566328950842799748105378995771245518115492463326890511388206301272003557162917628813554656718174884686940634221884139882405190170157111323476241791650223987220308629111191756061239657392876172228610464246369703716452425777819859687057524870529264862545587075294370855478940494201142802504006394338011914596270345053961663015887888044614911377804802429459766715157536794450194266162274443137000543905026065766247773753336005210033608497969919007829197560050065897556732456904908109402894045875170328498846509576433653263334293935864815372279300364238779161047660560951721024111326063450912445495024376763479035065062826408734286381644073240527948753537568931034439505705596190548063639233039646701842858969509358741317511955861298714898668126477577410045682296354410542644958808379461383387242814971564456113618192176937380103510503736174063327506036247386360400838043728079997166342277653112551383609930754951269241514263713393121548128152230938267643617536401882929756124662064539396477952175213674340159501487421552112804651765770130812040878433231521743580034663565130833552760810782881131853574548422940791275884782485756107922810878952127928821975984116203865193216726453910105893851066528720874639730349135160873103517171536799416468178934901006434233359607467065011541538995299789041266563886529350860775270142188925026003746642225505268231533930289328540703521794109356341819503870486479984153700931393701220513762237021230559222289944813699093001530992224238561010506938678038356402028154798555968903813242839295941910117235901036327894079794815542676045899452291652790153893684100871991773312483495679118482428565993596997614112919708218354175309457347671874537467542819446890761363800484162745344721069149946701198296420297766576757749109754993506098259890817205869886926933880498667171999329205833117321546237553861199409570374448505635519111894277851853035399225576671154110970634809381492451022959264823617766921477243454142823137160229935138902625749579487955428406291011943715879694753778669590041532044143472454521253558307017315023746152075172401980245376591279424720790703995995273013662927374402132383884123444877118612029624927286819500391912015789307907401515531097257873764040144193520818763223335881215375021616475727521811589602695717017188720772101470368721661084059335445026689020002386682243621161138129763876765102120205576225802087625387856877227029987162066198230905143730882271248318753924150492590620221383288710421957979100732304402848846572550809693228074496542141922424072556301211583765542976513179372354483260436001543045390439239383120548999968918552764656025380507578463663433053130750859475627024692272422737394709662585450733703107323330749846260536439315059570224379308146882212224082500981347399809738646923266986257241860578289045163917047480314667765076601054737661457966654969507247917461509310479433315719459148104291994591111788881775849348875576496317595077765777130967213277739873187991518571718713977272956549136475117268459619106394260096387128670215001001382379706873576936631387058401650408386755227715888661174571817537806489248319325916082797358579210722846317781124650449968259730441776817129276660042704929559276513499379085793134515690204444289064403672035638145719983199814283750962009245595215557184672970280056380726713086563247403014483597561209493030674481442314816307496520274970907906534853128349182813680854725481593129830752606206358618003124327338987199289610995020078512485845596647233666869053927341574619349833928876323765550386575815847452181237298407134434280690285137837518995672039214396261634914420507288350064592594466808532413535377895190226192821474994307426115179845991495098012708859885233520242917260976367850292103362882447646112484810162728212363143905686026710731986470875262391824064610870637054198239703031026996134043784143515917926453083123642257788332845504939488563360571183769811298451082451754703447239833780530271784679795463879060919780558019588953731908080283684384146323601044768040665549600817459976759537372704537061146275982276725022434977186414818465929094616358185775787060569462727151262427456667834249545093748618170879260838608579262492272015748088059118293171306796004437419592934109583283744232597013159105423455982737785196594080361255633511680996343103133985087175204617605914257928056215144350129690275503389030843397079285856080355476613818638525155509888485348124810067787967697059066435009706479544443537457074659725714977868012467089032720518660874579521048267621603952429548334208251982285898707040026682546054502469906400692306006252332189089692390344880437546105643426756246417217441129097072860772337116730346620345672753511768966652492863231618108889495174026820740630805222506049295796825780406364425224809311503338629673088327223966636967268860627551710652693710285106790037996505958380920432429876471985125214814831807514538543210280528782605900125580348438181968994559170195955535786252586145688303867968250789796329297499325343835227892162328643344555995895015958676390024527396583983613039734067008527256806346546920154330556099268314173104891805036216010339009149124508354084340356996052868074531601982038820803937782375654125262702388234248203231178458844073421010299148707421507754065090209863056450171327158488927816017967872755592032363194036065178415370922746292109616402257234185875274248866046768048979048716821197480831560513001264353937652499309788982663366896190589297251058583466799745174771236852186407522887696206634249184353918925813587878824034531590136054129751446882819975891039188340795139113242251573097864207786746895962931312494247282510839939411608926872723930520951731581369693255106527758144317136708202378965660777414508337470511994938900239214323448871850481363330555358078901059876411575915981054703741679980439222409053393776177053597747875489025274813596227353597461086223531236376697540142904529803598864498136606660535068817063982185868983241768639865707405035233317700796837767865161879872619416379648196302581251307526651559894873673012364759705050549731132636131073274633052966025235951427256867393584996774579951660518025451719637936662706109010737998382143177081844253401463179973494036697996259119130441717964832041847570899570074214110011992105540902796290116063037737059836683640725052709088524781827768776671653862762987576780270968485987072090002727843310923744048494610512084753489227619732767063041012517623786508490543765691189378967221584868662967935781611137969883659031348734905811538969187750184160379193299965948079798711615250421812724772776040858642004160925024854789577984940890362107988645610809382702615995128491239020746464847667845797810608756133802011797416129391985010940792063782047012954153751079496494583490593830765014860715703831998782367810871783866738459980164486711820923821362788717950173706122788603012889317576533879928710049246858897419491452403356120125853016246153447729948787798396655542910040438361237319541312694278982458297971973501906961179173618236135246402448677476297610882113863315055448969345518306052499022876518432576722200604005151428327246869749990977884961696337605976383969772895516501841176590406153453503249168229754838674580348791792535233841379467952325041948084042378173251340308303206481331119494312466423187837690806633418724971608535925636635993094507596927010407087555623600949268070099111382560932838496163364804773876218508262492843071466357357617381332515159578454228142441719381414229859307515342307801752967754167570520519779227813101487483396387512505047860565482295887635311226919678013054471093951799578729233701265973772327464123995488830474834747995594827806269499113216208501735194750065403632333558392387994181689643554934616539297766381351452484735935884006070503566212079884051366114582755540455149313238287034305708365415823657676572139357544079244250179094194217597394693243657881818434742037315320914430883752307379494512775293773674946630685854390214367664621498807853973526507192204984274291196702342569679326106840152593168989072402265805997041801607475571689125614295026365562266456550021363663079808872115378268770295991855703343874323045475511241845396679902732583062872827110064978604940915890451521134825221593058256504026967772465454417998050076221287530037505862390374342073169140389701622542039358517539182126981011659890429939523874821397446276807664339377704014602746067783139052346431355715742796588751263710593047503056476610094344033106237177633008792496347897590534510767619375681521476161701460350518891554248420483892797744088569968708940525708273886618491665117797167634112633082167718181807947821920168308269158275309797300181342076914311132469959828956794166779189178274460989873858631485797302841897342460862871761880657503749053896605852275266414968490108626404290771588338270429961182061316113175828498643250755562733316778088729655927866374021046519031817212079354673046694129703192053319374798663097914788926423935592878630480422067392935552717496586527176527093766185061565037390766368042277720373452435482877215261744769000343401670890945848661665186790280070062648242332631233223527157022796340662308082606534593404466347678347383976285763036793046352097014622245406077877029086245095723888346779461826857063917392038879882576698101218641528492032531944873354657260989493421983229195850117190235955840691435382903905653100542115151207273320546107960904998577022972082238380718635564954459270758249868206659781534840461253034951538756086845327948057074043986142486398467387588705706237453755658261722800837604541607381067662401691232079069655469718565437593732869294341834484633594523142554134123484926465433621852367879509019758895010739374678270805823217039885630675054745100427956595070530851021972427311968164828819458326048994552577126421563453871411898734284789469328225824336768853592850258466339753643743161980756891550180554005517011818236410310781476028096891615761528266282562036885771681093581567598313861196342561722685433583348078383819507190666421809856719823236313347317809527825845317931510469548460504547875412141134719026742103784866277068212195510996396845474833125891624456764481874695630429851451472281808918140667317209600429856817231245310308162615430827692498816397030630661457035593963432130674410455153176289616511853448694852659061783276352527181284900550111157419447977693924079478674860327987124089806435414796193940299121856351831808640355692401841777869597689122688992072438304801578729882464840725293084639956493209004898537834073478023775296314630172567310986625504153133751819218169054015127647773379063229422698995923824289112192006635612844829583171022040779586114806534074559269028936959792176388228278945895127784526598035022696734954949396806600005654817179383496675470040429248757548479722208507244438706770489139842221347786271267186355713794223674610731813732360366801459138426710687682257396436098615743054655614320589293728432957825767253450915433653413384147707660134642337924912726797149288647908422053218497816587852824803214339956973650179431531953046396174891967972764514682558146916395913293449123515949027654663001300019847028886876344575561971660022582476871680797657518152678679999749757361431251903755809501002044432005159663656110259994214521535416042871423458780313323510182097324251417496981583477500708525565760966673288526613439526959298830917206638404561758416901583614728307223443046744557701467970954014628992231128216240428274822824067583102131468801507862344947731264428740954013971361957748602358807618058256673949471649775050618440552344869777741321034677649596048174127098430557505090742579358183498820486437631481307612552886919572320386476386042674884151833541937589772075635470541801169072839541823419979917377759333819462685619852708538548397598695227545207953152071562065812090336849847898228747073231173937236662671748085358380946541753925957368994469888792222926224678891471298985563380692777934279427369089317056794250223239316966965581048768380989777111189080366450997073333814610416993901303632478326144168728217732369969130846694507351836775674882932748159318552478391855221413604766539221027746349455425315716392166567370108140178077518255592081229813561843641961450853537946998128528777233775102564746748324815813086920016959282472858267038147052247465083932348817749520911391309862814098113968959053739830362410550252926888680098826539339032169562707894046279354156112877235636066440729435353711017256862421661643460676433492907443474364886759368212564129549051077574285835622291251523666382022742184103741546782845317070553530422107542297657164937097260059647865385145627189402546983117377111212848596301556825111718700141175232756831632427051624081585640183674262149430427956514536259585798815215645493351341241368436359597734600226508145212642707751086728746046723905708298982447986279337071018411180860174636771145930259386505120082202565626035704512072182492532645595921895748020896960202100536616663509094727895854300588447448206820069394371172619186647990062650219380841451262515997279510186645428396231951436699257686488730252987439491051600600509771410911494362135945871556015333907807141705423863409231597789866686241633323977085990488765298749752291295292239696148156520923993435086582687804656483592832804220861206588174860916614077620422612573431763230326014250821650325107504024116213821027339907397498419251623562854350309616072612600558891914069246875839035832480329536007786099280029502212087751892314923346028432640906260474665863962098065773953371751010272056090037879380959592241661239728761509505469474244002204814110315762460347762224802053517671839324203860139096071072123839311385468605179947766494213371523138226105251094273077614861437196834826189726311591213579632982279710036349426995899493208157199711499933765754689374905923837033069335075465919170876508593258765270887568595823799860222651854636297931332723325063629799488212172634709729697495748027899379157589560105218239376950774684602011844936653563888059239329944642544278117068021162743092096121957298484691067816357827964159676883323239542946684572386126779958778213785057587208829427954215745411145871031334096121358093972293789464378622190250274489903128879339083941939379927076200847940618237105948900314337379373882544949427588419777053011157583451728708257673944927580925754459355992571492702879493807236188936299832542592316985171441044409370652931996300626243453914276783256322620229715039631292176780988719683551740598386963720604653989874529712421461577526737707310455952412360413600609393999669816576383378315420733225851097356842245801852663446118190211059046817227005215739562193523659544936009180460288351239996804053887361246612624776324071084354223668342709254468059959129980601883449170277485302504498370801595891449737572939258046185959113833468279464878872800386428605620291271083426348389316600712090223051648257991703045951734110328249584956900389368328295145418878058510040300887091969911845845331531870842311432030546916098261716873661268510764289605476108047452284082757736336313787818614591347152123970399728385800900046501175219183374240404020808644719578841939487395467482724041913485664355528854850553658876657070683947372837889882268767638368143955438324792377745247188571356361172348953160529180165437856165267078286707306021225140599459896319408025362829107977156051959788322699960984162265703882124522541785880165428288883247802609604047677270574472790319089944060671589972833106079484792167316006337068629410846668305952939331744872218321554173286956620157101057982273404370594806293933215639400307032633980914576244882758218926676939621103995883269355376892262177372782283847202225687628713804570394355474292752516444050134816098842650614577435715831654222118199799027874275803083148603472625553206660267808466114812828678814687587649869845586476974799842130208890880468903968943941332259042797838739161427119292441470860397484841930676260557683353646936895837572102797986096060345479939388758866226372037606140781588980747181997804564339885093718500667699015116663370395481523919179927338658614288594766043821243630467420957112647340271342867433037965972782890995681505544510860036550349755015375971915914005984503819566285220028932646706564547814789304683872985805392330515631385095201644523348698595662591080466285452978735990548356499528701861913944380879688214900873404649743407686866729751685298378856421909975525101295331568780234967229690989568702384812728638358828420982075673601686590718022019890959303497621438696395991265157531491489210447809101648316667954701233199449207905287974128036464450562750313877756478451114155083710127977753942381223111260245022970352828888205637648259958722177763777570766304362374286637036631500149909575253546410652612467210590649101455376944585953607325860742177233038896564223285191249470466572213871056792618328057205521796056677702895482528584673666730990862686925245371136809518480590638056652850446622817736995053308225844136403564701776129432878282430695378339639289360185424938150670018040507342552134573322177377661346225615871767961301517001426022816247177682564265215062366006005862906649176997330452235975228297804728168781719130395137996245104282624208626547605017764545455410330850038979908921423437569495728023111276200345461605575749472846593601684949193428751120273360810583591542543577508447310762836992858953451439684118471808333928392985989110811253762070334885706706044958362217789634471440642369692643400040707019808075215665221264667636775552364985600021967595692865692253554404000795318892723509883883560664193799531566726954553978036823723935675901152049196993295292303678360680249858020276075929601026712748162687957807741577581587078715377237636777249594746541140276411634711278281775811018439271247776394732687785043584205702956906244780653748762346856437655844530843866557705514310896516869764680932109718520900110516430918384531153015776612496485088556932395130760661055206785976144153275445586040834754284018984926739462355888341383108998717702366475657146747146335229400012128474954094070087031060439770897686091646445368263805438710219110070003532900963172063669408635659234569524862457696340495638267849075103024374880696433902288751585291057976181693276519018756652487869264731808403943835215424406009101011783053113655255976710951098796654388178160087680480643729553553604037285406241576187369058029252653999337442436316223813610359199984573582882554351033971426635656816863377166239431082737915913831611534493039589137146648495588519905014785825701603062610328527593965429224233699762173366627669337935600527139641918326531139138453210153606326082582183345274095071137313691261658560980703570125571840893295402419945397255920931248483426386254187282735271034702632224319795743608321117709469663804652138848019450034517728927480721734317999542745304865187903439478098989698015884234951259231186194390903217030577849620271997186377998710163965774098469112790952986802948562583617223493931406333571543106494746258118165939834975047776831182555846470606031894121023615653189539697845535005642323966133449762167704351543103121478700664824923494120099322043261027017055264072803125794423485927392765628622398065651882567015952897178236699398000313389551401536105643786855553590398753168554687074559017280512555358977750497863537304540681657686030130485795369664484382238349854127202354399300903564716174559361913076777137753556068197741777974283558399424687548416271825810296675480977992004529732749492153361959777713511718644518116724417579651989488457681026558918465427933978387755031367863405951026896716064217575546921003337289333465343785720732004345889342340168775513630190569603752703333849203424421205744664434630367511843598057492783899992736254455299487823887002222558287861571291016477500165654980679026230026712037972449516838193600530546056469874508380068854089751490816361392790343022033078505148033809247034300973824044598282515444084722277721467754275325578736118079506930466827606000036646809971992293627103659099377960117241622067538717501577486576954570061567140326543909117273360859158759083787477714665711270753944278910958990985782159600378306841494198971356702790848536309789124895164950514132461292212299557257191794982595614619943310963249364019358315156096884543468815658191302616506309975753721249022281960259157486157702807959136278882578801981324988599763715493322720565993957188572620174777947021696647034328027405000026276859439817943398470964604837365762261570806760415970992448881625911011479457752281914572827513006575672905214982205537592573295224129034644053173385911168877987795563370100574798822560967896575176767580057546185345941860421104996203356296184446460356799402525073528782903156162833222770148121332935868525707564561619576503564802832706807279913532551928252545821274052517858045406066435585331884605012073943624625861607316604784603377314438990156746957482070296035113453467137778313419306715966636582678069251308720969612553067241551584902766962558702361543004685732371927168574422988862482366988147188851148619483798739263358286616570401718520061889195864818504283195104216957091195790877164117584101332185517678818799266444398585125924151758469711140844585046736107661399683380497683109417261575840073995942969855557286747920787756119756175360819747098527812421151459415390209833190693526176104329372342449010239990320182927773351082903252834584277492262456555408111632328865209455604853506900956825082622857747287615087569713443474250488238809503188073319776647667342991088474156754035498255882184030346732710487686255131138812942657661868541718205721838757224669169403457000799742860013345065213765767524359698746289455492814462017789239204767752623829188457451088939284637470092925352548508869883418416415203637471124386548582161752702794352280571245447218235853671249083595749364375394822793946032614675890743833417342732030278514349853542434965136871373413845898179535484102850421637764598242308880064463221477345072420455002449126494603464885621494249389942778082758079257149691138182491808370537044862212162497716383542687571285915558875906923821054485780297277899455029843049850623563071281028884163280802885864021394953915353736103775595758121916792408569909299309977130974738514688567815900347163951320714620253726200676024094818343222438742777037693556950337071940557577103461469192597863592308266536497244354924435991103115722895970590373244447902428227588828222147357698594323327849684154687728785751006692056356367972041148958829189117548788526574502490294017006204485442180248511875417485384610890152157070811914073186980337432750322694012742635546835369932061072355628636615803916275719644262803120925604854577605202295609344532181341851059561341762761826307885836211225286678928451591590887896338489906707210393069713225685955945948545177728604403599097743753839604363404971329059229406829519304821991943542240773951839120754847118589281771994527784993202566080841866942751143059426585506069596363693797739455081185688260071740805750551827861319376266257856337995371182445583189521717645066037149383893416018970563430168197075281213636441616715972327003985089939766513175825020829108000078319178304963695230953512458210285663287370959065885676034858583102165426040763088642395073746128616970974884820079802435687488493736219812934475551703277974707433335814010931911285889335142883731151968081599317926466156701907032777500979088737904094249829433987180484714954941564303692801610471979653461050235597166230967204948709578839207664939843680844162801553483455903252637885864308584135178524980478603636989070234528335460198070440630023755055485368082224482779613079597265925864731307121235538985736157534812765266484560916644781776259042370132499986808690530929757801513241591421019255216580120414529144435756261206985449020285138826829611755958795232866257154611337957250505541186746063110693728372170825677221129147157712112988007502006555057215010841850405336869379518517715220122097308652469831240041470465808656033449562593145090113412791148206400522731480677090033103516016407784810693700408307900529516690892677208582694556916301956985182090096587711211541433539905946879359550582923928826833206908409112068537898238797188065358740567811660886476319938400298764707343881051189181743826840776283648325522839795926138496121602358481088251384107666459431920098234363650790053278340980467707625947564252821430132824633518472452112893804599006441118559519748500575540747885918700999106781109089016300905213451395510060994044057058159515021434111552643360985891837280573408492120937414895341271596427047229260518245321749626550168188848034372658346362846361500313346675477813088353473704146858059367017343170683111836479882555310538260857176385447798720773288586301185346356696589542917738783974928060905354156648604873148627622898136123327410379820180852974689399994296965541690904354843121399250271470849739875623607344825734556840725168605713261731951406568098260586698093056343949852314698813934364334846923928117017568525428770761325847539792037814656611994094270360535767907514232014995680821337566163178675714647200666261376877382466806077911605856956092576243317042881968184457395368920881139146043525401711280511401023849259857628474368073821836927775926199997063036450399225183491279354297935524486003189728808640813514102981955158218799847907937142812878783223905295555883193471210758817099232038647988384179897597091945490056368938817879526673874687159561284468825135397175960897778576468089638562480150531708436809758589870084855717654629044301719952935691620025596491901765519903697457914546842135795054582373802700925656082595020975635455146908659707361736017761767500999516937237493461189057931215217884149375036289902972478165685112399512504232974927164460556851220691317960209071469037870374713025211948239180284965023350372715028585723872855023636101197251732293361090320851232205065365166064579583735855960681329505430411061974861213632228263733950397022152468128577871476598705066920221246452509759059340052024910564949832312716407343610104460567713434267233762964529868951074728803916747316480820269127441707765736273725380922054103787288168303556807797901631324852543935113242665025421325267895940963279023060890030570111287043376052817153411810330952625444232258021538615130878236715953581604863751056196535413764034044877423350095780174667324508426319410250297293603929896544069273022201165715452543781749471981835200909961010783894917308731773156907995860547974167949740445007539191413068450670162804200595651310463500932833399848019444704193420018784615998873379741138937278915700296984556558300822735521178123095500930173377850736336153251194043944396600343074710626952611739843022372183753142895115310822926548669616058942547265154119664336815481325861921069436503195822566446355473363031660983545135867482701124279536125133567838401339903970486785850736156370217728934367680957648092485746444712631001518646625997025403822010568313689099613273433166618197749757718672751172910495474917190009325555956250729479211550979975784692677886331258824799900914196657454966795696707849119817493320581090314113909032722608944731451636714592044762879638592661428873161357222642954703831411573456755531242874627990072924996420883430743327172613228531343749471359639576224003427178016753482775464804338892005219400076543373335166093182929498297932509859253974148657080685910560954676138054503240051433245841573895318286965655928551669101256045414866302264051830836203071191276853880140508111285104775219388507837132918351961206222324475832557038052060555758832360666708882206766677800410988465635812687802837560642189387663927773525489981311185423037185378022522914785249977224179579443875361550255390971228919727001975618737126542059313607824783214043496294920663510370125439693368479515732101327022424681023316522103895795398478124510815135019103840725498621882648917343318768900745763320362020278867105839611071642286975792394926651559994009097492530405674623185672182649119362110416568646976017066138915734043256999641124363849588289393283086292118559570766545115963767640674673704563633087816512590367627546646168945012124692339447966191682505301498198730356433971044806146038397626977635870725006633034472912708098466869748172560548841058167840229846571113265440720529443090543759737239377338719585220558344864912449048315550000890132744525685635037170288301860480634540015004448422357062094085590516970347342531606924572707706790712458572348056526775969778744413703083040109719445383062004547855348065774438955863040220568833286906826589019081422313904839664985535414854203967042707846175929529510746710771598351262235186993975796591254156379217038262958775261439468639630463303728731563823722740946148227029627467036168184870321494924407670209677089191455830114323040583646897633748804465521129008055860333924274168717388288441740422963547989988792179398153796762077897304123920894419820754414184714476059515242096278765069020956413164916467191285511244435376326479440220836931407922201378846584180920671299144769826321347340188436193881638753674971587035513630604375772068601284815693816026026824531626433765580733595026678207374632075961538457200213733324961958537409825296117826867255124530753069044333413950292848989822363150699711479407482590500098566022856976180168743704203179887138746664034254125409130310350980668742634153609754298219751163343841620598395675910516090023030966427581819502865775712729597568426035795891075337037133270675268314934923492938866668558887074374274569089894402161755286923166312037235148311008688138233217257788272608185342408929985692508639908847987593816443544685760156626892794739625664727797035364355482376953847802802919631617449038146101979438224752847112755604313136009656365611334268645030315517860505465886580084075425080069203386591071234036166759871690734810639057535006582351851724981958626891486223306740046675448767334553216607481097949296968340290899274923035980323749382255641480519268944651818797870175658832385434416963578470500882414556035518361123095207214829571568260322090379413438894433269587999545283377839137699134405080429634977322797125389046032009927292697345569015907451809528715266978578064936099888598308305037050640226856255729385211389748945969033734890274988023879721573536005928616057790355204128718966936537238650194323839148179847009140224216081489290756446181587280097062465307540898023471764489902478490161099991639248258902549288717964224306788437563001003676475695262884527649999080199070205054025716603324947556137924238374147603504705005027894548951867652279433031130104038778922547516813977138299454420646276433246134220824913799177281741731272469758495051015876731582493383933180228526064226943155427323237943879328321034064512926236143648247407394648785406095072577329319204965923638528693134186016844864932727885030995153123103006289043045418061274404428371143390036280846894215405681123912950152306093636158279824167748259996404785536590212539053975865148449883425916728849072969277702723333930796407525062710079285492498521805625494896762452007326807043826395699017649473752460764172094546552101601177430680510327255275698691494235341741484836153791889899867426371243781496783709641429320105346945153038658286414471878337999022029124767748479249023504360660301577032697430940453972499813011389131239842284989122460239807111888773755472588734106333283585847503402363909613808153037752126516162630999971311914211770249954777739256144170622585084568002526644266119128111227093087441258843799961699447830651816660663686740598025798936737022413012351027029048179370005575390835470738588476131266661372948723459917183176152430265605380053571116265961361152844711783345542489878396743208663159317753278328861051746226997217073249721486328762871387964571527783025224293966183253611881731442444613579340871974128079565164368273790944123209227444115865408565119272774507279364275893897101391781130360886046692934386348143964585694912901923058571107759056349268964628787540558504343605805991446244344540929173628751826660975266650649268643264901983539752871585509098081694942387544443712709274150530295764850543492121769848507589954518084306932243946734036805095508147660704294358820066894537710934036220974404032938406270662739602697000964158692892592184818304132757636574485932039962190006403857145868395927585516062306952317112165938932926483294874207640010147114435624417006874620736296054875059843120821842363975863624066022894172164979090957858456442204960570990075554303075004977590488519174317712777076625120876244522421908171740445600137545782729982665447928408225618502660733601886258349375232597688249722221496686920564755899141728393563848166827114686552051656514283228993910886846493659942158451654139089529136092227146808471851536056261412914894671871620176100919038726586367298465979522773136065419839620369104988173673023691059148649062731507022764001415739739870662327303969154911295278018794035444063581531233486662088727015351657369120518723251452122643538166432272923631884336797590405409375321079556777542934588834333343939847219653172272977728953774653388244990120807290249288311450493413386157199229945034549891881638876041481530221835663565416014276624690582887918355180620171995541588820784029269336569951258774210060195401955367410425404779577521803076406359587667802119851755621942132777718680128809432064811082743368441660843339935054551272758231428996680378039351929812795213791336165979509000258666229624196872446273536052980408104125181012349964696786132150943218069852235827147086861817425068526517036001234053255480961655663024172460154384668522439581032809493797263674689624596148428237423350113442765268304931446020081348838738180573992557371241013799334073383991711939871877076580310983926423295677154482317245154872187571247865730169499968360700883267372871074368795612759913749842797900649601508800222938993538819515545521370438206605579977709083171479468191886432682455106274941002350763788454367534304073489819690717500033559614761105119309812853115889261573541685007340925492726987805296995547261633858691191984195914955112442068604282027304676057199940452188609517509196704172084605107080902930187253856596867450245300864858699743640835662673884669703500115931355829242407292460915272559589038096017920609635123883029753040304989033693019236835332231856482650366310269221692599141416491034210900251435841992015881310396326856487591372653011687941134244872392501047170721130861548430706327795413588292669984184269830595825479792269477589014905797652256968720876091566774874052705269582111891987712767929987358882467739156925398437797569711769952484174603640630889707923797536174553294788207610580714212819165487880822195626390926128552693759370141937289027020051039298761365360572964539577419102484258196034455756827092783864079142428903317062032955092993621812870447613951701417577349975910518639375873458703333465937320807525841324646671594781049935835214922957665482950910873090306847986358739625176972262342908317062314238233539810535180650363645038729438303926706036995714515563314740754767373537307766998750970440095451481057961165718871675880233543264465059483879800619532989556235980551215422605659212392456211120916861299997215171058963244273665775764097825139967388983028194612130659611005963322797169357001478158677848765558123367903398050250777938394243055986370543103011640425212474795741416962916106976363074480461970270336264077249844683605754689249787428726712339855479487731624973818362783716330354499775173725111870297666331197113225962164688583689471585246038591475197870785221171631379992212335008896708543300292425654348508339691490126252158271060072707337967506428267683262781277781788926282085440034363781566125292408101254161055752283070554011112970578137129580056221554141441039240474547611954435345795389331294141813562020215214546065758445484267400768605141531324109643017748621686846913478913526953918951793984512626959397634013096633872234864218024662997313426752146431498122899886170757103662886246264845116309876330666677862629268246154449598759936974552552638143517728575951504235044433190462386451822786559681564223125947718555334885444982196660853827495771127806407967423437073452367470478993686176876668785393237021540680661027027862732649049195297984960437660033639758664873603013902994305930360193378739301215798440767378553456768867159294593488488440916830999858851297118768431472284814074863319687032691891355298029056000855527436286599869926756650517194969809512110353375839480492388836277903037297130456869211034532543375342456630441806905240093970795319337218479611746977825504263627170951036280241083074661673176455022429281796596447328969710828703766838720978538718948638517023715271705816874009212380612677385882936632810209009142929468254658822602906335327923247078259917484919880775916990789902843979540398900923489004554134995093663681486983990129813805509977502632931142832350540117513938304204033987459868300289590587153366336447672103140975582920961525209524326934084755217593909684129792199321234671744078481545214753958239898917205994220191856051736726030269909922840212043287582284703312404497853180926403894003889092701126765663446301019733103326530037431190248950469728563276679247966267920790798274585007502050518358206398165759324259765252362700060812336336277790904334987011462308796823110716723245772547273139667263847110648457601776947437679588537998320536242571449351788675571084760697113204625232967781232154040130133002958215542062776497600725040623507000182781052050086914511811449096937506193165711272466937145103544069642525423166414063015434497673575549106018208707338896711781648061844446241344827790268661335345271039701376170585304906415624275248612454663885807522034443993703904309576545270668476092596108376990719010340742911454792541517970367382000897580921525947778237517725409303999474971125702664507269779399573122459192054076119739983006066526790107041028997437756083084976837765206556510463358677029936353114297234292085671813265561868025601793655786011696892735583286405747855153996792458176894787288332808534270583113752563425849065635002564462028641441204498895141527826322352141169348031565261823406968228808307534095398148840942872613218898181970364587182390997147063333408303777269209674065597829793673483127814104472381323432094172274804125879573397646631330219019938701777107883260048120365139380382470423824113780885227959835070726723833365553428021218839223765215075199211642407879664299766660803481355489655967641654502241158569837594078908961758087851497883638804712490765740619876521017164177705915307411253935850205981973891362509105651745209272999133907538802581315914431223268418328895644628692811778771869534994807454167072178274516613444104025492341021152495777832189653830512581910342461377936043010871784993910853592873552853620584207917827563714191593238861154497918152915816561915897269919182258935482466498099033671252915692905213449679720674074970738152541396082764984948678868075021101932709281582358970983132578707743959562739333889866537551118556948236225434379028000472392580099386156825812906825931234607514200353573521621979074624391721848751837948268146829680088148207717307312526080564266142430469976378814863531577789615642421724009864268068559017180210360029962643699004119966769094624207754063575165264138184284466011970699571690711337699654135693013766529806921718323128597005787892844550593121137341213524572889008864585593753539189818835254387211819406726692361253545647052829226300975522442955655727831590350458901714950312058016009781125397451014108462308253993752153860221778416570089763147523496085952029661435627675841858734126254819351403923142905029559030237713153489371369996670908501249037540967235474529738043488302993375068331236788879722614071452110287755142782761828687340154722309500706096158877817594470615907535108875867073278050535322750479863283891281779795889335831650379459594005101060515424143543266926109686981857823608923046062671823435555703688294926883590352737559949741381936295674986972000628951033324248402249666448949569097306943493962812925465305409771293610117124769754992567643369090531250069409480306268392023269603781233083342596826755538652114221636522602811865066649972992785265122661355216247349147448158790228860889980730141177318168377855782626782884218341656830473626639372854212410772532617447440045779586548147500233536058921879151877221463783687316526238555783689766010566329596876177005189220274346517864616874710423427132666030334392107686994763039535300379391073322104462820974326095599129644144280671860573816437491102522650129643220029032464836551894537718055491537736667575302810745458721323871351101621895824171308014257329446648217374248597835777105342477953604814024024334946579933340196105978893168063719545101951230684921107466120441734523587133784504331640331864760903230778458809546829961977496818829483373320859210730161151310219734543993844257027760637194887199365972508031301490346404707172913024386045197405099670670112878024401517163536402266817980916218758831505046155372432159996648535261209591746334800742986159197805152267255063697908043469817856864992876415500038436251347685890171146700679568330782924814223508233900209080788578387596402862920523476576204831636553114963030127484724627021501618522557011118332270518968901153785749167034909835155136714633710398410781509876532586851509057339752323055736766665687700641311193439728357424167277781962760857282335176417810689785429597024179488514952432060905064416093370473239485545323314552459273789543155679454087387238985910132727728695817532801703176760313103694995098660246413879892572850614531020319944009045739267372827308016108684062811873963279069969960670318511855088595473233898982630557532090199834643971955580091838814678057020236173439976790295809092398894560075499708075946990190906758622235999237942303857114623461301154199716754546387152588280488020347122496184498423288454061131552168404142832150770068645391385285755596065995194266599242321602754715968212383391995949833190753565252354379165079233813695200874560886099750120091406053838715909909627160066540263065107727418840161380597415277396083551730554407173873592516032644001389806667982146429691240006554008417305907529702908093145437018610155407838006443146787759689957049919008028337610657070186075428188826995816880328446773108673756937660969770639856442310526776906319866597923797799259451484131999882778391743538871037239256912862792957398742651393272971669216468427681049049204234371422851573679421210836311034668265752676912886627671789690296614674668314694420657911836669719128466915775058694079210444758597185749016260742511740902207806781533025479314167475323589305734079590275941598961459514791748731984044764850402785079568989875949259601543767819697867038170476436216697285098285647808946816656727772174531066066673701999367929433564551248386311429272297719976152161464465378048872883369415358065326538182059112661409489528934714762399855008248970366468306749526630326701892639649598782402267036573439351878183485357613369740256653543119626676790373168145426245967122367555453254790049362739673855034006833683427574240468498936076588048160752484042354272596170046039454981842564616399025253375801161721254104827924007140226822701201369100393372111956634054476848676964376351385173670961747077275848048396923873700605392097805958963511306657524191263240764616316382544745574790566987722744453292857058471401425696196328377209349859201699605452106199197018969632115513389988481520002479152992726173086474446705667942593436674665034721515747048331654672055642802362814701230593798952127441182384748872591216233208699624666078922332791750998838012661718159797058831090844357413110444762455818443930615253580327619928636200090973377096875349206513356517887145113569871684938245111347342020700135289925241879672009295207276622190517417451029745496621252753401049511882329552076213668183662047296703719643134081609705069818351094771239465660216093963504092157220830967385396413222495540154276322250150447152944045976784187168716170754268586297006446042587565981615996346886012676858661550271457060479743538824967335588463711609716111533186756140976110695839666247690054396546843280820707998862565719554331138103261612497969751594673387804579725509714064573641288284324973671151384456712600607404405788716179892297137525282244480672787864059081975954712075017656890826639957833424543272550250792689630546069096051332698659923125154805342222322793575328664810472473841813706838236351407585108346089822129067239987760276811592469520484092555792433836124957362915861809092999482329146871502091562294533542031374152665053159415631736314120131021155811426285261588738688097798206627658936638150305569923358974506571869639136451210740565316816120165342826486883542692458119376400551384012019714402996791996301373816915470176936907076198401258038219325792483919429908520522301487492965376063210305798250422610571592688761495496554309254977879092972878316607988137729840141660071262706728209519795672665276296704138575318871129308465038341709174236032033386253870180872368960917857826898549927057059562733748394671802432811779685833511616363264600164134500272557537564621495553060199657692758127018719648771048168330116013648182297620827586498182957325377808101179112738474516607204374864974473530584748373172452426321798710624890918763845884083670824635346982522982201183817337258025655031792332803825928704099746315653740183330769323188343203226588459638251605552416132331125849717029742555728014288881851436109711760678913814415119787879307686848809390030015520224656813574417671606606803411073938676823288725033411852019929527310541774687733492204864885337530610509157533461819320921628481904805382993959718233330888751560530391372983901572704191266646806179918380455386329150197062624916590390252291006061506439914669783594730766475589845526282212722714779373204890397588453543244207245305930100705942314817043110819798014822993187353294020030312255189041274610162587281010456651862814832168931502154206186595772088975615017047729658690489070755495762614771273189802882362195800765915753092743317548281294775490398824457247187393153333945492187187453108142822026895707870906401959899894148160753718765019849954486645451014067635021463380094621140459586397055241469561595688737324555452274061516559878099230150764996616310182162834931815409479985821954707996247041669517423411070850363482923540502408206718420308898501549050572932744227918655176330530744167512400070077074630053349142569555244744522838854902495500010072658620608594120162784819219636242874833660496958148636789559267752856004412590116301532628675700660045323666280147849491649885922659942448059136895533764807620746523926217288068483250092567454571799613748828737945433941311017396765749165389770228143755155285085312446177737828038350619420431424704904814180817290213068119575499887160812667012103029144547507371349662138816826024484837308753888917146858594489172894295391240657772804124253475166261667391756201901822509092725759352451534390687029517625985758237343816915208997593909983003851768036133787148270361616735544557961732837108354276554065556789523011669964691889130468468933978840305273431143574122001153291957763120509248334884418073844881762746715126566881424035354268591243671925379251948911998687700483280951202930917701992514906702250625985236605150006305251173362386840708030270518203128655581042063943306686953360598026690121466614306091774980733994149389609880214326319225795162115043344192055598562764214877140556318008470419516729607114152853824271714278101909282073405525007407795489859364844924381128313329052045564201841121706377300652948505096219328255461107600804139556888622749216866869785718261652208272003190119899103596868557257454581940084127005445017624978283886465781682910691528012894518856005122493517491899958737284778154840732085742620470178013818290620252418174015378269097249086773026468286183117146526238549636345207826453549096330250507564036914037639571280231049028881848193299323526031889626096092420019745147530308899505578810755670763392824627944845164215434579310248021466033302325711470647296751014528346237131149548639937484840142609932723367658014636191675048244833443175857356401373019649275875976852552714598889295425661974296006086118781323312495612997519641790022917378270793029637256432820241066493397446003774728600324097457325106826869310047088766255766067938776143090540524862299014201175462401496100617306741700817324694415641691300187634240102085443455960156802932920274589050095805955500406361344318232375366481666660520603792504843242761948092731600363417226844179725664758851291973881362012918323432712444448179102838753548400373710249132399169516778757122383910982002269689607356176506763823596883872457779938613648437195820283307736193318336397363317066051818733727235299439542490476170581006552806121334623101297110346039961008412335916278678874769284036698114174248523212518106974553513572771606589883088849126197316973362447962777737272751847466837926283444165994925852789213898567926684765301490348719225563260111456322112659940619822678091581394167833350436427250905458787312016615378722068849198989752971029325941374462666667095804010725786749629936001407122883051726832268188188632827570487801565507043707897332660605322580924765945780650019579217939072741432291653138522757733133477810666241446797357897721115363504001326934586329385412398181394124895279821656932588309559303853955494501699907256002720835143064144614102094480932415024956781312740329070872985490769263264930911525720230812971367213361835753977064654162094686123526630203861423284535490121635730580332283159450426345845648605939097174410469610999721157470269451827347664213993552674945789530323308887059824401167220815789838373565206809765791464482993250916959362650521760055220435687346867467590656838818227929230958988375844727806119921357272568560305531704969113016697798859931149893960896992135015185628759234560705629627195988438642586756323411997719340709231817310037608038717234437872596905305396850665673960959084675634840299962932324875786892772829535931044453765006500073347316824863264216553731743196955755612672235441989481395038170966882894624982131212386427546793640104247084489592248398472530818598297758278907653551744866775788835999461655717674626379874678590640547314987964598334742675352697103530570020067114404238180155550311743758904710421438108598074253666779895149906683854232005885557674932764124075132640491216716496034026997974623546847279846975574702730761449352816490935842479786446249348051703705440445617376014748956071561409672291728075874749961421333132522040888191306636410072824122609193975993793002183972943297374393541015187798806784626175119350487014487006346688639554081866257731641145950637344930141095718667980688023961785920400071518246453650201064219868275981842289974117555426358641874135237218351395772541553118936700293255791145943782686497353816636364578782231799707806347994993882458953225001505507222507369971544198001424182430640529224487386515956616563318403421042766934479814001155107319489417857342947147870295641605907217371863093983413987553770110158543519757781803338535205005970247057858924247796055545826176534861879676564782819568826570957358630437340034831250387278589542603089642110596234977625021894100951609319013195188633253532640302948712456614243529557597328975142263755113902481980973486778937771425099121855600050180297603013866759748356050084573668503586515312315934150312312812676452088882863055067472790568852452221329362088657334130839996313936229377944394486155925177866231460747686425346515249672023185690788040003832540606591656975016137637646228721137853952823258786893232663986211326006315981741239137049425897335360632217521602690689619157589293099749034503382720926391287820676657643742751477429922315978685479297808313383464015442601397811583348534442542859790531241695645037777899906334771792886945847145696156711364465291313283186373328576510248914040359041669749526676264805174876252256669097600318429014657290550896136468318597383967951430066877764270878352547315923291524191416177265263327340861652001784765440158811407100092597182071150050667208982881215753582974502513838997093814267713831289593584666632539838245943613691548820727612397605938545205471490373545512183197732595889350237729937398086455761367943902901574707691204609633524761687015288268141806428470320449080944853199845895816115400638180822929300848474229423055145239856554643815882797897586393962855239719887456020038186268674812028678504915028066687997924256398603172504136598705864164358803228605606480460172669510291310208765653657086896188430948766615893508833361232972720965821505450269776485306924351201642193010468380841035063778578586891033827944687782324224646538167828780016287087755958655237374930134692799296947143808981860296856768978062895087777611048972498456843976175040789943066311774444737278283069893339609161363159048694103314725612717076355503376202226165684971324005773103523516294219516061061659767507173047364144752805166331525448575155876122613442004170851847113921899349225373930291551573290247343934523615119204544904843926328224276433456470464789030497143246902297437288840803813236892766723520819545451540833833377841033994460737734610813907165814258235202405997874094345148386733613381607045358516733116174105411888312998590057853266266318009464336092824431108193916354261333643873271097075514798268209375778916994590559634983637915048008189403379011532456666256076117999664165890959230236783808651152398176885419111779942755818434370125587397623800044080768206513168473013446240723969125728204314705189979304391198976477692342187695828100358257363750471275324702463906286862543212341984711266138904601320135913109486393430518888455218290865424566246946253300429778122929886411584350941565591168089457059898987106177546328697168565456085096615901198282728076975802721279239967744897403950452163830322610950852861804088451158900013257929375742652888546496415448077406811797628357435711445656350301174676944258220852521344400751036436770080177345866514637903822517698696821248363192202710123714177210405923728237063075487698500326594540227385653322366183501518533035940261695739053294879728414813263210127311285289093218279387825136428607076949680382394692108342371125385822028285524106215278179386309293924989576986738480379615214339253907207575464167516107881365536396984023350362240940809798864260248952971803161634459755745106413674033970649362750152925100264655776188908744564325653879084205113244971861514008042178508368323053576630680609405423851976137348138751820801823263320010511047640850214378672547112153245169655738726304952659827558557977845350789784156116783759663736732683746953882286018802183351101386219046716391598193455380646552241839413512584247955662075539406875791044599473230559435202677784069825393369845902580640044507877809033482463906158164758840102227794600352738096875667001762929346327986327485474664139339543972864635421913885484026754920418157314419437888271752408887884583901592784896690643645492211466792283151265114705671943973572383078234497881455498867777114244003037736292181092079032822761092150210767554220730098104324833411608592404789395011849273606732116731356945418812792419992678475462783334170905992976287767982117350202065065490925065489000452382917193364134397925774641340419157850763755601211178234537944526693466756325782818453494095738789112869686158313811279100806283746722678156619302548756995797687966448887171063901821342554817209585300264245680165170682205698841147181557086107516266205220162740359285135258124790301672067718704839754067055771774014734957276209360957844805571067063171952683603143804311710243446783575501395573752183142603033062049614907407722401355273108162335369347239648918666287513295905812662031950046183445240092561424438409575667227550554605286083815635461794953610263296126699147693486654160697024661374784164207112690844280907791093657555005102400552021151171854950643390736043557438588689697459709432941669773046004799170642363357557470313390592775412690688112921519618246937200993439608335179493055761142806852134386070670598330249930406582620344183262789465035696483851121599267729115314882779449520738721014959132684952137388675537972087229474605121915924235035153022145633754330559859501954177445768279210418820094454105070390795095936524596607220162649068809796718001182505370587350935429673756854293897035642210781822958428561557361812689222435809767309625221189403801356072131570933371438682487428739503341528859486455556891550367276867649676533896277533736649796130707654924774532478306424886990964874076961220985832933278049677660336032302085672558923126650232212642082505679297217622309411233699335806571341326445112917867335522527037428860373497118457345325004975273980335509466686122123771738429571061602532239073387780924625654178301527555104311799710998263168474510263494652051967453227729669901078140232993656942497366634014809489826170122255194054182916350591250331623455041986829367680117169702809480828647142133956500186041796675589233395825841000202046012708920655422269022833754628489531035465311662774589205692705804956157422212321361842832107628472563496501938809641342875751718283785231205852286613484094806968464093773794095966135674833969244382858911788380549519930217641863368377859217437655267774159089207516421813004352428263370200319614652160459256784830452190199715123479889669939750484087232638694377313389636723169296084867232911767655721354579423691298945887803147863816040902871984046696327081888062630136241969567748966837804695775336326024028064381295700422385644782304293030574900415890445485367316632194311784246142227667530025165799816060853821997418702053110986015695815841768423838052071504436203239915792819801248545529867987474558530516470262423230863972918447361752502357842217332091175990470530743628362612027774935056325717989901890888317712364278799974534269016681731393732287144883483380207944950655286434022809623192900724963045551712266493611297090979900583869080409735348400786811280863774997982808850180843712785875849437039233850669424769218073488626199749911423921151398475675267138272619917762178419839853018102906546431701878304539820618313215728378908349822953341962979199500821190313951259356868441446745118898589632811274370757793400912428215681917378189977334566355337470112464308665079611391299507566068459734422581507620620599107226258836752164512192376855532711977686631395604103237983200215251300864567153963255411495811691981455554180856620067737438332875393649789045343359769351137934099278176814131708723757260416411331369827635777506584212847619932337475923601919631793477270288074119476289540377950788454603586786128731592545273939903791235622100125123241718970714050869321251940005623080555083615805805870232085552126497372340730951999126464766495228104212750564959428573034864836968999116521694909912349397277544436664512867574947006964112769869653546788788311179366201542467932122257597550038436192000428662201837418230281651869987276119542022781640167831998813994516762323856710734528269922829251065081734660203310316543840816861697237115162356931283707394780240870952791908655264646523434298613896422737913722032620791776976106173904696879050294461886518403194157229480747176798880148610697327423154051320126777952581227264138765843704018495582764317319867989533203191535175441447680909992859318297581350191355672448653411605405947672928558694225332947384378560060959338578127597446453069880149917117768611757043368679487366299011668997798723289271639003920309306824022720835745369723136009954362682432195901418763752305128951051771833943356479975793348309162937912448508357566233590042201969662203869097754015412478026047909187605639590275707587848925696521769614821861376755311394674340117471892390934147498904196534561957496875353853021214326448701973623672115931481389283227716951861440243879945902888892531302530887183803029417244127711496626210910283951937995059368459061329508341897557838366614373247253344733325552690480836006103112749642830719152259101478732107563232041587825484512432376328247955211405699030405543723529731360466161951649992844560794404792649632277606519916466063228791526157566446386021460196001970480545855319263782287379768762518926709290035358549910162740927037806336023981098010603562512645512610055089273440160902512672289826385335732442316596703398471873843766769340498695004227023228186961916756084325822699214265038166755521977604776736937631960759395554083822282290589544434398627216696791821842019334239062436165599251819898625961033233432803500252328581377120165232395673426027480964648852787237225378319670001466226764498967882887496407282709833115699660820129140164199805425244880870914124991335698291187826012031029268640969225475292395553574493768745898790288628199323288641376072582090598967031784809499878877131289333512815050705394503104081480383037917985285614681403082118727434434776196433256053008781014252814128507769836805197594469635307247995181188362363207894790794429585613405303872464864590826477235792219368577281868187568229718907037087880628741575917104312735936509107917233954926969107910958186840111500296266552401226521536591094220000355686746745169504992176679257527551325393998844220882903258489887145564219693948356247558405434774834974472095251159687764310772101376865472447447722869695167908453131052591572714225727255270905632518403033369363214463199144267041319934196410377038877106752637460109076636599910795158387030526957470315478281260822730858397272004567005289645069464823846213200791092192021540643856817308566383522670308808156451128678717372661964002694909335546447616603862029848100200902750179356818044604681670429398649779187454186780002883677650306991477827124102547608046069795810734592125242347948385302436287475012781403604381331195873684898227911239267817825509897283072311710853618146872438074863826408441882954319561172084185177263387469205707217763220782385807758916838147562432871567512006705083649523248659224483324824361002579634913247960038785962061677349824434588972241962496875065046678332873202564094925303681578071507327950930368314475589395485447597157088342228747929333206423939636112101832668724190734363687447504028073995172295056954652548183053088053379896462657779325208730109710273082887066039590902004412616295189558150665035463301674811820935985946022434750741030672030336304124493619898960826672076056556321170467128510076888048426343913995360679530928973166114180324438847145916111557904457246769590233329194266260675955659116709474982101352009155534708748156622505028639117471425402805066262307348283954319117062562249511358123221460326977033801878947904485115449870681626047984779545689838138476790154991732927465554699254647053497881610000871404877488222121576155823307511994508239169404712009347726802478578341528089820974989613776445072821253886365639159731878038643146097253626619970788882009435933928144297054224561354037942025617411752358608506543940405661315985910258624129522248357058464067143681431912158941988463383416794549330207655239727227880642464016726622564111685603218490287222096795555869957255242798146406217052765323857199187179412053470806540684521173245954585108592344275006129026493219665568694507524700793406033678740874898885390616626511422895183108526483880886085197456245528866215975820577175267196078569349903122428772952418901055873971660784039611065242991884015511005230118292014086054313377650686359720756191254932917410298274715594236471250853069920910638164693827538862326204188436099402078836460475264590174829038701440792867805160142360181801991673823642728148320363831922354050818964885912238886280618246315189353146673829140090553509449864541475380012003047083692229448796992693874711005894264198547036215203960830658866827541697219114623062161308683820066707004824439694354751054426996933710921546185729621674900471231118562066846626235825918682982692382348136870120336618652631163569207903740997909079026351397330157980410231122570393235789506244052716312451328993418889212571117401660746684532221716159683728326795954508745720424019079546562790561902901942078218291189951427207270085307189329225562501525464586847903630193739886111441191065250990293220026348308505190925651096011557031010859982859053970150440679440040499201522336443571921268516735317591557414337977343882766116628708752418829545948260321906982132532220102262104122342298149812558258211893637972658498184301615865046154421251524384059288675026150137958693845349578928162573244535402002708117835706056012291308793956861271225022806655847529635374651094223466668500681027979147918092312929004501426647341308709215824187490444909668415614519716348816851583576453463129991121537227763064632059287049178653475486886500852972455655427583907971874057590474051923922894148646460646683081969964556215137483817623757628383414904279882416416302498840304631943284359590173284772265652058192497892226237319486110946374489459580798809364488562858443585564228095549431852066960639494616239254392187874194182486099445860377389042657930979756404962780497364567251175290704546291032566906621527912250605802157661107514223238912366848092649439655082573414426811933877668031610748634844203944266348170713384338510786294904167292876240206103599801634700221596939539931090099590399769001583732212551372729223555393848860052035195432101620995994669737479292501619958782828446770907097334874581669405441037246455397365118441233249513751531446587424932757478816512809858725967964713633643605005795174280398513158921217139636190479935598806987000981664442768697223247118142251630154193991753879119680051919949815918032659063161269387405609805280636297626780366722878227987363678745649464092805257722381728809574927086958710036583939453543371655042294668028150646564266262080142896674283804590707422113820689691696677577954684210025364078661115415339363176159938747025865143731469534449218039301468639067322242898768146910035274201738789754524005726784557203062993199083707757284675967413669923040005006798189333606818753124250909324007807149839854252487241331694805785993366208641883033504979654252187942483256278995640329053963149974434943460016137670445068819910474275235985175510056769176063011077410470815797555570193652375531184237758233535188274881261447769574939348728306510918226008263283141194889603329708568842397888992915236859439857043880103622549970314736084784210267249535494480639089137252030731499903858852982273132468952753056995804309725434381090738172931673525083922800456844382167744110977422264171929543745937621115688274603049816604796012537588866449447283905779893231194934946911247436260951023425736150558406933340624843903675388421257758671617681589684199632781130819122549684837570353032089300612987774018767021154741187040298864675906532132248214055994485281930275604951081409472318363283515430086579666218487853210878178404334014537567240588940513067703943246065249642307613714761717530704203129280800037149702410885199060872929189365387093396132130417794344449439224226281550480078421226798457074600919763768316377943134577344572646048652805057951363273254204659418713975552318789174324586130630534756453726452682368410955915252815023077028804586262180570917636417307239056725488764689646629637015062653284025883734959439211361618722408949326157537514144306439519002528987856454489521242779195765783803090668164434993535630249870480390374242179663287033319076999628893109096887752240347163739034909067633226038388791099553078857498732697702629790668342382110672371959244578638623602715284577143222368849530444545601974790713266571137195357347225363007186445348142347656305622870346825442034286476312201016294872526224666201750361548046297294061231294329749482225118779566630309565245529507487113921564265205207308289432767089535180538079266959400826041260699923101592928285356558860786602844400307942094230700749613695662818836490149736641330636577700542317657579381537948490846934715687231940019456868927808318553312130460370493340631902849879429885025689127896434606869045552084591189914011300439571889425209452630223061683734662864077904109772200718119378695203513269815370584550718602793842159326200548972001880947894453249654813357563832792019000612990320872944090020481489676991163225904788236337093462127613619071002199745470092032787744007945806374476873601041561230914349539037154534433589747887276454056799753970926082686784696523433508814113125802700596519028431454706501135901548688263242858322586851595188917114773553863660467421645705766987678622960098518305902371536221136294700711700738127553794071001815871727279545144981988639699454759624432284568918082490122605301770830168419957093716384684814062409577194426172193598726249844615661928026926320556841881761108210249603373535942878788314098214751209575521497123041797147588483226010922843103887607675072174691315624674894423591297145121307524576819156130074024518709960820547592168527907511025462479270632120474445080447304857364312899384224511696543551177962854997108507482820417066336507053864648708946501314731262207675243420271910270995212857352339851920187843132513421515248878316006744969886278073079782855004721465151409805012989987936147455144215101684526324121515875112742784553362111627244790472062691942851922720067389723510793478148152172676820891210394382587504732459924891997019626321598938309338758477061952147893952712208271375710736947251358944301864471603708581005492853705126811442301430018843458334536284878092939214510303816021353704989936307014683612176334085634119973216773067379202937917209254362618652878378794996405356231111350333382800493996385638732016575245722201562335518797354523102343259120501997705057568188051438885961279618090732944861814089814266552879127908453900437612940207469720771647244317753887325502528318530788390160690729705904938745868054441484034848213607363769802640279272020683846018812538673078391560135983775215691457044935218499684100146058245985607435191327722580275050473328697491528509803512121175373325499006099191626949549001782145440122077108412052425595082105595759886859777092770769176745170843197974466611652912702425713516809342849049211065110616376240290580042836007046391531030130002523303389152537476572684651300758849594847859484447262148524024357171729344526618068230583442011620458629609186298298352628326364127590753111359159966452896717141005042447021654797782783808314403815349349968877867783525759376080996997599685380273736646165845553784878415474187160602175402603420290163698801255388744142780035524052729188766686350180152996875374428447898739686003173528854512117973531045385204011575235705748530198791373032387040513996763025123757691265962330632769359630626371785885421600396238642160898678132005832227552183988290047961916614317395800498599473251163488241525891689083799933971443843094904278871081040244932112545387458772661967684022064486390622048048479247135634299980545453828180535027782820890052197115790077485571538502503572614164048433604456763876847083045646052931316589831595237577953845083181026582359119445265072243291657438845427604930307858099039010418232512550214986296427201254590079772584260614824678419417506888932135948845745493354517597965195561347336360371958801776073632740589078042105681781027127290887849687228785979028249590657765002341062086249140687850837128300024791691774983886387823714725927709366483677079407564627277351789096563856573718604056823718409485568846935591294256092783148353516086219163945520327289458119787972952441450682976920883848313197756077826718038546029761239270762500776937889515080447017340882666448009336922965094616747211650577571935035800454838074703049184682338763486978986836710990702068995160740919119597916972550055528338733896221382261228179419896690291859785463651861444395890266589498739234860333075222308944008025382326575070144126105190877614956512153761046308636708522115020625379877304284295099033282360922329146941168569643049009099852885070587740492148252276349069434578820633051844128028732852429239052452631278132789842792843173213912742256655355349884300577623052658136650055893353394125434772476554456978957377892236914213144221294424752432749251265703710806395028652683040399949851168985786664202974590211746172797681809780630344077579125371550150395935588719216606685500798888755347931712746188242052716740999934343074613486337252538139226637053827869589746032676362918838373205356530986686362881825728474929671446694563087128661761143584498193164264196196792105425792550020348567345961132542403995893809104294892609131978371402040876896137800272493105610807236010810768036500273077086851753551288936462785079419438244925310137081573106974812684611320884249013540877656605695341940540976364618243988487296016380625583534391631141613486219096768868981095051214321192480405759047016023005503672842574186529407515397005582371565897574082225694940848452496673364254639851545358292926118615936004304822815390612453078550948376917875503268874741077357003926431950309229951099323069356461395640704026043341402365288411963041889277101867896849867748733098996308949917177532979188624098110664920656984016716439644272116296855164775626399707686145299220885602572796121613120547133897965682024882191694265168374054491812795797426787908045614055745659115962976611367113010709683017129609755783996468429407623180661337069808725259383908833943849479086232385499143345844853747425157104940907565284002422811936966152206702808782914182424986973819824067420847607481521166873373100425277517628640034287927641750150720004778423802856337602095353494397085847366109340079164433700974538073826593889641551567054304352415610252975344043623776587143344052812998043310725044697260123303099922078100288949016971047684102921681891527904910197896120422005456351351154047024873034586326158906270405100040552944941618526746784604038742225236999354067435946837575063460769817068944295577915706536441446049270173843764884590901596012918496223097625556644483754784228751913803324663000426649315378919119317128067828984597952614326294699805148607930614396261623288705013780083423445166885618895480857552213252121230636340084002420044418353354316554158766645995733126471846772627967442766736642134277389035316560072219881128646769748408783848358952258980031133746613144226272277357517301279003059826855382432586566503344036032834595211998696180157734551590313098661539799711026147003988027739461666353268263662040222648273652026634347425329143149822104906565812188944587978113656017941321774146789000312691255915152286739034355579098683171514339056384314268063732763488294032304228503604452519877000015279505836518756315090376780251286009849886432518154235360815898069051552950534553416813578440815611785700543639357303630220531043171883283055792660845306709821771565988383567510896852459870842322695526758527636199432059054676141743216302545578379121927172344759510975301536104375928224177266949999749722814053228465834452107651547726896801300295140623902395712478813589951139100823345085843240828100772956569253301599760365794069765853995065612273697059926075714999016026037871085065273835653400281422642962084707384621747212049719445892106537635626705479191169527139401863329333309034929331307740217188472505062176042588265044874807790111722208864047273409987668064391553838581647147603730961349272498706705012120241650851636008332207110486298361327143656502277461027100031400281294852215823044005987208276702189978592678085810474044809359591153500092374427145675389026531278895643669077261410921462337566977544389675414703483033629825918826599133268051633668541915320364853524919788899986508189596324090452347961578575394608146922941722213024964362152055828145280242719912040995516533403580712111440079932702058817397597579584885077705208201075363860276736496961502247763382377650348336175590674825845210875914491804536464277113302231754622886515825123879029355691873023751614907117405969130385277367825134766104580785525986002372690295553194685105948929410028101915051102124607939279145374136702064382223831065420310192658137159881828708949928607174204989287905079999363205008906526973693463904594150862922183960206371794489009652000696157309348435794302395821182549679553161395982586256605512804846842724088699973479534317765891627718204396968097306545214266560875172177269725683887729971250006499106746238614001961550386308668819770466355293420369333635581773027261885191749354649062807420524772538043047015729415841593668493369628350898286708646538055443002503996597338213528049364337409391222455778598655276738068140034467267044825446783420266494426574835647260539227886765995612831453705844924079669806301086907269485184012336611562517638076591389487843083462753348728800252232547339606782029262359286141433526270801790391578802540837729174381485030646067620272315428356296767842418312011004354806163996792434491148634468669521515693294019401936203098214198311578205163672006823697320170088038612944183848149670261211965610076513506464170033168931640706327951260107249646660186593840018974681218362056099513096911571771011076558294418454279759377146205365063518361809324397103547523154569294479042150236564940990128801771070222694967209174001071677300578481769566883523943389124213847064402908301752982612883272036226528808414358988216939922037002905824788919820901178668893454670058353707505850265656252426488788863564486377243050304776471240225781352682482297869599078799305269656800972894905322993350566737721220834324588028622759186809389446241799641694663219139275772599521766392519089583715579802793864398219245380376317214878996562709180758685965758115640819762238160979179897379570184278891005743650764148784992980830291921479341531349817928783147000432042091896402572517799436981735937305935524283938885355640368375428257084473670439506213762665590426182687564414380593433083975089468342681357858367915000069077897089739299078273769558561560022748838577714470817009639522179415226830617147291199852425369372697053210785167682062830618063260036740730003105934667109909010556525767262134948697794305227008650896736363321025014492680515737347744157111934817269928577140017064558131287891396644690788451322224528118235238186094224779098082629538850606750609930769697723997528329666215494585316140625052253542109524954281952918678325898891816514314069776258471446329376815762937988529470687136317838853570292413581174090665189523381853952479428664134394997720679211075717026899195783976746911016992947843765400598897489118702572041591131321527018820491091845767792709449612935338743171222500189682047140853654319808276323008532925585211217820883150253506914150684351933084838149213794235624455403411477280209917337968932617973077577345864101142208681848733421722701917472003471843167089864842790948074500637661985441121737384708111994436696439861656198598427022933414726820967353459638903358588384360636315041099317857871706333757478930650862360160836926769933868226733490731831226495023853109276968070966570955949524336507254588586663457420864855515313743337718193639033885811107783687282231764679643831614846173378228835899018075754678620969132369723967585021684268613982154697882489453493178002234566031721857073554216268481193538141739454176554598013936557412504739945012116234420299598065299579312804483385176039236926876374503805412068226367262973773485364038814233902729596852416251172964551738801583821262814298116522599606042923401098108104263486797030653727002219818251689917541550516860121694418448076258921849441032225222764336456403871443328555224534756884272363224130966319167536595976010319794820299339024870536910722016417617457314045076233842498144461838233484833563083442248261978547104443066189820381031520453662010817769272231891147821171933373272017440352438608740967583966538004804383787594765141529282802378506376616637257447033679446006132356702963623331462847234905429172704964142345706374887633332423290071341827335833773206737260677558250612374332151561118353857791897483981647579662434976375883495318845475062330376673678304211275599340734107740472074986714918868130233575051830640454693091265292210115312319152080622791452409143095426839157587826046029869844854577613746813220868638780893780695782584686510742609010537286523681381269198299379728962249077959235443765798267704567262892757820981357324317505490158445315795454483477255136973601669583939879405721740154473161040020391911013518603963776568675990226678019208185844301180168325014043733757318358668670787755627072826165810490773197954179924818505402056041352690962321789901827233144831691491552768557145660412041551309387488151395379786543158537762717471094674093838391932505377866862389632061209851134329369489119827298857573390770029128044500924753418638169905397794138548659290528821273148377850610921260787733375748923191537149289128121237643866178690695713365273900865721338652508047284517352245874710739502268491212208879708997279964682869556756779080413653697050067953991421106214161627333105340714855968857040236018924445460566678190351445334423368135774332910328813553158789217667049146482260785758260345176259092866366982465055476780012496227242251169948886090271670741803198940527765775222130530855929897864998783430851837814394988206272955707218535132580544263133048217983227248193822496964346275285416991954750946095059423804435016618788346549969398885434332498561724815426780053355554495162348296501362257859944139376900792135910035382353917963034219962331859496754130913906921486612173018122690619697009355259270282271852570857563680828237011787937702526181167386387454113765029952243725183943554833138024239826623132868135426084528204426053140270889231406315553554976620413848106238927667316831809354428523463970219416609272115854655620357719907039058616153785866115228925709604974600482762912905924860893081628082193456083606653792498209256612364864726356036819662518205718133817750907782752275750395640293615352197823907006723497486697959466825450755152075773248808538213862724584112977844216624950498448077241122355088484389909745991286335152018429300991510294626917642233215508672126571616610621225826409245124332622643378648992946296183003715017970445217632539739449098034594104392400563047744892657519501814243335805862456320751913580107101899012667470105067515601725132057756813755566215424360152249927642191834247091086678954211790432367406619016259986474559451553017948871804292694171950372341666266231642440089810088459458512106902362396996659199245398994537430230767533299716538919335090431391090814276879339175683892319434917624879387131901615076283910199444824055187457738589680394690587876443875144920772785044885964754834708896913576557880277308537294091713746478109249453929837337761335412575192284499709257745271866117791281891824966921878624883352377735748137628190625390441927342730073514894494819044210498767829316908089023983332011967028622517920840179956589578350352676486566511839452941077801405304995389284019465684696365685623793904071941032425217868844280035081713816437912801003904652142468222439103902041182716255132363828411570916454971307353719416491570533102815956664939965776147288228280808045448844343069003404899935017917486980575207479794205976062922478272353327842441609662402972271316312445850678689074329515318039378066602138778929880118472361206483272826591905545169745088852919825581606260741672241122023612835077894392624689492755801972321184668360726520629711155143327249955401047302517721119791918972485655360913784724175542621112534332850411542638042747232182988046488753298827973048774104213473277873598360783993304589564479031472848251153373714306389663510033554236837395839880850559063473098971865401789394708735565314843277254792740326863943736677819798977078840158687134183620495673401522533232522300707767198433758933214376940683562629772707482635788495974811247936927001857981445579881736830136772200204415374086908916821061957936968700029836816587864394785577360796675188725136753141652267219237850699277773736506883593763840124592043474724880958942852833879166117142371980968857206367706035208539925878412717727873489172905803984570027639505957018114652652668790526712371795157470310387819398446202149111640279459175642064418527690400499119756190013733868040618384042719151719682798489002366941018391997112134070597667036609394727410218002800231236004384445450122812268196787430716669436873044828495566963056407476949713719794559491036452861112204112487987177554350134500522505944395361763447775578642849051499442830316602879069495287136836165939591986299557989993547980442479848984616676217226450340356724741232269536402759907158320093737607306819127797955206978786035906872088878468410732244942617650717197793020513589053279180794742361398175290657130901598305583826026430509688116266386193935141711149112528706310985930925634510878478015390290698983813849523969074948027522185743608535202539695597368402948573731077896046890376478707771336663893289976798541260359976201504983050490539615786420115484907414423444176507582199761036791433411288731026370212070129527802559401999059940001816730573850768228466151512041319590662547599768249997412056403740392973728479420299312643884888184357408898264948320147759348538830926183598239168141081744805238068113501299598474423485968245160214508805561930090251792848949428600491880573457420730382382052012333803118480683260685541010884973451764239794732672000739473583387603165567474827698864939232783752823068879658737416939210885238378567046959951819684026545223715482085170385834426755313042333704725948710026941627166634741214794434201581428130038826294213378551133435071987289221918464501686609761063388156026373687764680616138992925004392135677471762108153045460167780498644857055554733933248174963431763005490866962578272814623343449618186239345635054348691223857751929950279314516826435596958019775287423129281284123510980402732248385901757269008754020136388309415924621353125451089645605269338699769674165457798227443456536401464960823262094595001312522097702195825941660154309376912347058962164956731566720787864266244195035021241051494584204162279564920096000459921269505538070301166682345475053802653499622604740303673822947303344761938278807624023893830682685682539512210655798749697079901951684102236267915409408197447523185780500251828164279418442116554164992132096911416055699185860375610613697450654351045000267262018243755100700543892467546639277343604012990415818917812851398416165700874117621371630161582401688564812023615916933985001246851181264436485456887984570031543108034186318141428954669968949617271436052259320889442633546568689174885285115951976377983335779571070817502643069343343551237731703546980749991709584767007469155801345218918474895159193963562778285069106870499383857312091584745378340043210850613479114160655256523910523120144370845030755823793776985024676437843549842216668292699605186621636279382623547092403806976209022051457987842357885813399132779976649803939661261476149091840268717026166926099768034583832997767799073562149581688265044934285082647642790281510888630815391099008479176208642181384145174017658326723942238955367215352713685318709197074790676845570733767291462195867553318599635495808133487787052435760492911123975466354360103472031046552653677127013757673377029646635354210190813249039807645431412773838880573750350538983722477700743817116444004676988749960349448904753974385913390418581281296291957484101541321006691239544835190785588313780485229305865289301927837584176048706112409142893819800353846727352761860910134807817039518112226057970706788139204548543074865085609744125291558757378499415340361713703382057608285766683688579039093403494312934182597689565392604908688058794461924556538152570959831146227865864541047661344952360995345857852342087581869796823251377998233311417450589156266828315520455929272543011663107331355093536337665377290476480593181962130554947306384961439559842320786865481706942095745911212859490911189075586638803662523068532448240753800363058854781605482938274501675525795933021430240241950198540365687786997898388557979800887830140144718166074900485214053268260335576979047780853537934591337261807269847924109370990694512066401013653106245649591629732462482733376890321780929617803459118380306990206590114324966851686781973353354992091878058457945711083401209440019923049223743915102569446343643659593352848996963165614423978435620476054788785187777096241622781841932366944619550906764766068283689462468673189617983403250282733924944006309106886681451580783765948678920437385492079308041942406552822372219152127780105612483495505245344886962920321880248077083989336624770351504496191021939294643718405950991137377513073241916386666646575766452342149544690673405047755738566185991793282360901706012564223803201114867280436391719918927027478053019723273510793693068444563797907105540130988261206710556357372097081197770692752725299442473988007513917866994675266767209712704152120997252574652241560020522777144570269262187619865623834860866627530460210656223145398753899532729383404553672702287623783115399640147963360650766518180810507244628896734153741408798116995504194146726586325325087216431254400627735221434615100225366271936824499945233942140538617401263758438691122970970755451669996055405712540770655306388417336948495552218550121483730738591688457911678460097384372182762165706657071480237649467589654873173850706645202912920919653696364347946873813228596792053575613861104997568265513825461040343167561211524980232197478239243029900824313103228920671681450442191847045299254632852794489285013799675631151955567970629884105650999338872217549790893064766768550178490231937255254275252520687491911765694523057827821333086767301510278714860374634998982387190088366033089801785173585835213310027579854800845746539064768717895694411899578914646487013833485458255852900561232147799963679276525488621311930758705989955397507659800923856595613834364337619278422425849967691119223494921426921628869748336655763675511089415897574291668429148004496515206305099407780243408043627582485264197639022529785737740148397903016584119404947557744056016930339207840671097482290241970240295680942037999043267197509297116514995263495628615308502662741902536561203848262856772694773129351052923727128612799533468676801556682458785501636313674710659605532439730384287617453888714152972849807066506087425483812854376222806968174669019576198331440627825756639401352047392002005936775020298681731184802088543325195691940192804360517490953463184642557919683170513888549511843192454041297187659402226658827108002310933206628963238968683069700737761630777179543831746469228989999101811985571393648726351957707752505533718579169357745356115163371357833246540976128810934981496138470649093392863901950151697246115425018362413332281003526956747646794534840894702871511390754375805839794385030728214718701517357341168197540732699718967188829922945491897533894235049772664810010611856056222125159939934709257564684856112926626375032804789265537786285028452271680309963658460401037558759216307778530438610584409199114329999131061176231688398093619872108759339086069365643581793187350428972168969831549732101807131060155205240883983925393607494658614546710606836879769374857915388524413882780330555088975789562890625858316598665977363925789392300755689379910429443816191443091446577082591961451456318454310857547968442146385594130387917873735430783741545719424044557275305952653453813584082483561448774406592836771654910993937905960340877728205217006486138610300337639358954682227949358791104801366230029591000635682403869565757343886025884451755621249144071205489030114138959177504598694193257805733063691907960440283639602781241111944940261475556095265691002399336145144708038226390915490569600815311924747126698430838394069750199777125980826382252075996120042089701874262619145484167538786412214564009406189408975305676859904952705233875918950176468076495815290282363749442966217470016957598496391117583431766685225387502988047650902953674835810765113271208840676049273364504268689025401012619737393064201774111213000936806959486014762261981147411491149474612386808150958696240859728288517210241680862840000568911694139751649054168409626125363122593656255475506060313846651140081917391595284435375971207207648447697101507310936469768394232524940559170167840599532530955488359941668308144042516532807362836028004519137866111582060876495062839146361932512360776016066647855265199120021906206890805385578770345879692188296843961567354006493577097715875257351339618859739608896995303396674472032257234832147383805935398085239423169548673948220278565887865287288234972500000038441054610563725133205684086385733628047375646523644922836292306173988779616334180441449114648607637290862559366235326792278932365251907671804318798938328490015015484556550645783722385884276903321126307537136889185358941022187040528455532916378473741723959996412877281145319730629498308334285777454181425987811486446660337810406705415861781115286076225988182039418365409607083306012491990135140537526702501922530681976488891809263543561334351616275125536312222412447887991228231341917521013577691995398533698809496340198834670938168240463910140425346586216967713056793732218349107699347693810890942177065213880455937319745288105998412100271682163736522347012220460129996508339338140942269966650826531257969201458724181606702925677535941332973516978090308556109210300384157901131769270679191778677328640833436484240104893343422685808058448019399160366934929834954255323883609183363656828059542983866634672835700261261812909395710116632646961768866741937316990202298931206840470836917555226587343319044257948347422864669296313052667421555324108545637264641208323582536292269608108429529261792906515756369504674073754811904311137032534252666934367013220401838050910768670238006087774860711442260659763896035127735475564081736563287822823348861713109512660883826532084935726872003865455718952268280540321047318368225872516330158860275020270325987686770499639174140815138345028569499155243761695183613896597951429541271851726807998723915319909816860372985994879184570767542494304291258598291738452420035503143395210458566186805608174751423550620258027723512972660631631492727304943838950972181363617532286975246062222323344847726245371889648423088654776485397776003711269801932184319909831911107260092439643696508651784601125905887751707043705823979985398497138734896074260637246402446568498878520952105403721632077769793620869058314303630297574037316272324023530925630207174979552069570130314908119102861189612485656262842265117808392516226990075603942247997269245522187510261429922606290577913269183324544364410283172982859390737324282193869918880294711193206729811392505206970048250438286519428761091639367348809761554554516053935714781854044593178028977541168262611003888799793008866368082465003708773565050762999453411899920518560999812054536060747280171617388608663014712843873814195498739630684193103597263244642738610658765885455153664684574421191920278186351422158154240216190834610958953323811598886023198463054930307920631339656825222245227968527513293573449131485764477957564975328035140536950487160265503614234090227288983877845095109243071410466156684134286027637032110780285000850782219348327389328792280448607327803097693952695382126630573133081054817920857559658373581396026203744808350775766348752963064833122898665389402481386887125624502159787013728961644046945434299602455958134609282794754627564974729818822235053528921006744229878346439003303465967265105080195093858136954036944104122939812274662465539456986699111300815631557558781852723115417664600608606944954532497320751095853141687855727593655068226077943155179500515455532252679422745633907286360103144999396834829540986180752022392859712606962245365245791423752754524587067319466776529774818714065022847717907560165112136668411839593327663997030627926090806823537245804152686396453660494859959991249351987735469650105388797254834997940374111033288221231074369043843237960064605740861235844329546317041787200560045623513763413188569538454601049271268036662005753935764747654253150159415934027246080260833345918890767267106474782969824346479837882571751877582807165739328633738615067316505781394710892851242512940000963782572506257609633612721465091908892776001628304189184247042517993402359702192907986415484329816889849234114035764605667866205800513945388890023453609890712297889973921919353558292192147243994520022907805037571546339705862716148784238521343346185874482570458147742053481218030076808739483279296203410307464487395398237394599659869040791759991144848474943701283193687269978901533254004468072079188534893841692461057347771068019862398248035706075492329031748979258590984470302365385707289582087261771571845231433557638379809674571569444267130715357527359623878805463327943499103340933583688040296155740946960624212149014060276026356315626305610552704705243095249495792952099600350474014784164813426552387987570250674730256590716171030507667316147891930474876032839216880343555954758296961672504722462525925579137955955976381681410126616854588356639308869080434592593048119335799909495728902894924250262277388510828765663139718091311726737002954321089037146317105110834586442498445712246839552738414351673180174928394936385468956201700852690704543850678151967100376357131928383135298724766985893655945426080100765944994771928045023649536951291603057051312871989548176715521211798193409124871541036022160855685226402072573578309688835569629203174465267740605573629544521064529022161253349089040611961954664898685247934104666359957030776155915448343375518128588041024508090241287998307257571096327535518784682538385222175517064829111857260420474598630195620131686647616789334511015913102055058087416046796280682994460905791907679771732486574217709749974099744256887897625476717534876728647015714897431237389807938165804957930558702419545015735303046531727215561897627451112240147775149530775058966977016777186951754564968239646456913006931944963604829377483015509840117949240905904960330463436831388265543412151333990384993134774846561130094500251510947132724961366940787018069714186064836398765807655042672240393202757317092438641386396143116526722699163525651037547252413215433374211837347776809298509603413631949400071409360529435424706178232978564549050103689087792932916158033228526430120866074437494082006094771342608551336166026858362503740576255934655665757311983161426547208146691716026750651358564932832731752831462470218485485794850466449983755670089506070277662773680741318712253163011711987916395948560192653418130149260939350304236058114586981289736928452205729349257239892326676991941191578650071949960377429038757960369683590942137363033431401767515648773114894426618207395814951798946075835590085477132041872551768918315291549945507896510155900494723314695347409198960735258762266147569848449857022161542327134949139114751343152288649421886184179878261750206370717603409960093287077421199106985750015398496267411879063379145785811948649827408778276758324722488028993844007884939290143431385244962577637529018961511962916469861858809621189911285908349276470896526871786723790670001521135256084398841702407348884036287491368794840994032752809231830456033687025998223497571107711729931911139543176584503105256552140886902495241912253312358980636349806416940927086331814532156220791086093326178097233395988725804126177913671330139015889915191108774987097142539125108213660427719510118245013098113603228640024621002447338495149888282809276938443657689168862502369650460381027388229677333332598583920610699091425143515083033846189730848305646521337595486463528840349134515017553251883540184203126409439058973608678858271156307170316646105905526873474093811450340617691589637693049207406641634925229115303720060225938954746154918308203474629390923986910576500605169727202464258970090107094909242992961685772707219290344644939952431316618398582447130107164746094733064361417831603258846684906325413013820310386231791798639331340190730436843477958796327665839339765724192175770322180131711932318089160448019613579388057314205920051361628702191973350598413209110809609441251084291542689466359752085355771165933546002286844924109750411030970380684524917921501315027282555407973088549768364765104892418424719938913967506419416940913475034347613751732183464225994315253025959530855144823182609091891765066174241621535205607209075725329943781648201679660386233545610648667994122728962466900382222157066471371596703211166692343735785969361728054049791841114271141585046464946895986627735872903997197896097267429363118890134122615278633526346614528523953523159460932354535903998768868959294371890620000633973229745744243319157422614032123321114928345545098643613801529734783861002184399593412324432745114099880595536348611301128117485100265549198418595685987894894825212974347106436672895933736293917879383387224570415974663999814364307320660516971424059415723438122120203459445462153213488996939668775600531714465536930641011946689386653544270905489734150076764687336395045982860642831335988196183536083479369762106163176567268996596747402488685749954047168028839732556977372795039106581977225438260579411759769232314307847176839002145492575172968374314830642192789388973926015309230330552131163893720307274487992254382040306439525373301200388127527463613922391585272788976603014171382805615469843702846572231011040421871480205378390594285111698082271834579507277809844202065675885856965725398055699478735227306127518945474286274225971390669657816109803225889137201761510612896422273085419092986580334151094555422240895640356313162317788396959426474774781166806568421729212662746900505288692715960187496347539845785799137753103622427204776811778970232233725627420242046415708203317056483842759032955265468290300983580476515284320209312292101343172539586811091545148049294605036701893730241291990553143492225728201397823072131426779536080258301906185911453831352591495568314334705584448371328925600801666794468752141861169689996760918530351299323091270564946950600471627082001667651270731391155900638958185639664087593773366972546484944447492108945050246031113004998701118609575879353426504021736611593668413971242156819943967923163236560608369491675571306403680851373961032237378137741387964417225906245139174958782373165169954758966401895578437081361519368526688353913696322242359479452115490925923975707073617593204838413571757529693009451033825791430822675833514240061435331631344712394831536445200229897085898140063331619340882013041391642349128367677738771058931413818302927858714574131344248596395444733321675155899159780553201720756863794844727172481237612953184947919952260335454319009752873537067281001063448407753796275891899543080734747679700962490189945254317311573194708393428770407273706075504291823014843465174481110980689802840136337749966157089672141929842528145131117137345948894197442948448866101998503018113381659244640139433259035874987717909696726395449585063419936120510641508703537649039656849222400424434652447058555490458784872655329171020379002029078677200156912229448886490566977002341457313887802053045689052984975854446051534563284530828860866867552435452638846833399719953200775789309666097720899025179439283562135994276011891291925486545203604576440260100801712728235371832488285391469202293456022785710179546682381341720713687717860701132928504080363395171459020173965907131239629957792537036453215278851378821568848892641560585560990094080551066655834190468659567459023532216312243976817835580046481416621976332574095458907617062155511454866379009635853098463179557345562904484206556858692660812597501741546632668216971782405891251259853767378872769174414422223807859488861594118978004496659886540628736582265247407538644484757359174874903391672830612021989817324445485940485903666911647859435958037422319376381841342766295903006959804764531113853139712277132495647547674299452503632020084356026307966555661911021464030666426156846481340159379693087187564059963464008323915881558481196611820709498779605417811009541908027638706475221711307567080134781407919494636459553900901567308688143672044981472908636060412531599766867186263345134319742222847526614495035834666808070000894174743381254989742404595704057146789952798135976096847500268565882768568732779443074784212487932437954717401679827844200295777317630917528700859429290359457982989540892571236850084882138261564961753647250845953848432387595184999584482916324635155606100236327266967539731781043629052270643565855520905723996809599262194268678865673175939982493996935431290805545900360427764302993569797214777166502032650043161379982603891842587829170136248915680908362117583137682447819065342391659661690343295066960310034127174196350690041896424065814119828485358387946173199342301446660788977468075332500051116231765673408976987757761563260679349975133804948562291573757653575598551896195502694514337495848926610629576386730521083011844882650584844094368853560148929583444928184400048457293453036184462978471653876906897125491146739955492167003510664596959003083073806163983151256114589981791124678357831686126143834624980825735457584418876609245363515021743165327277797209072786870341095655491478986940741557408087778977705626947842116633078103413489254723180961351815780434030063869263308652749087358204459104229120921049483684713436779574090476238611159367638667421520764288907107064167086094115672181699767502695526200102572260373598516240707267815420492987705079947559136527513986255558724643534037020322504382630753351093037522390491585939398251743516086502256114773227495316966079811797938065379954759837013481321623782374995763921645154241955879707842301094945402824952981212214149587506988236703319558846179399405105689924945305613582185072312197869924821434757134955257934707541800589611183744618396442658442714082621962006986989570203141029373325070322435006452153877896595514585149374198650874529500410039324674321019626940932400782445347789698736693633098829852026242094630138178227681692489582405829143852990243903363288741344174427827557379321892850971177766451296408094150382236013270817859037645290098969498164377569556851148095386815248261711899054351502403635435478987269507953963881250467479850495109254048086721747409713630324183636301055383277613878543924491406517414624729183379946044329895448579612720455995365975465474798039695603909049114623113123255473136103737402741927310987376065854055485238345913811085645586330468405524655818985983892475789263448676359542617105415364826233772886528700332201725359440386854758333654149915034939193645928607456683917323860286788807131873268150421233922162176922476932891174059571993744776609948372614425911808818277139813090072684944705951414094775681598499747507973985286944349963150759722709880701984000795465687589496650733880929723895490750333999953587722623153869322642600886407500047933668584075923370881545514159414508209458417865302986204379517124816681548219483866598792881941627967154390481427570632392834113004167356558581658399290088115630055532888857813521708195185702678549693304541644399168765169633991903197755365149263170314961431357076142732142808433872307398631570151892958588793325782577878959300862324158892375927082827862843427267354706449978093290841089904159625933360857441291642503736786127721087995228028817759718705593038116675427744064254119066960225886273908294344174678605293255701689374172994332145744700412679479733496169933041965233099738894333718701357914457189052787237607753420608852335253747935766361358164046799439120578232467686069064187296959963912256103627920764757936337290503759689922673772584513877475415472869004805011451107725057891193846610336750471344263427309274605717472524057268214495769752697036334809783218399238885045294820569438722974174371502524588504482963519057282681830187892923989396016251440009022648263382103535168213267901849920215610770099771435732397781485689113571832327499896370152373095215404887139028247578905537908614968588542610168973799681797520674977018721499886948310374746247454139390467945510204178923518755863457121301569496346984868876975936375579716255486144980585455145394647119584265732771353927506051009084213579224173306616263503892891051767723522592159724744645886638121395156271348323442796263225629440526488175533709422411990495483115531401954300020379924305468253501004777878718804610239216983037559251137485885951009665200678269764724275700476041011789907830739556265230634136688558969633721610764577895975149706555462986777400769314086153716468321100861558311982408239968231018882197009783992794040468350959851167579248584434046502552943392322506237547338411855089454362586510653785729306568096176678069083880793426792495430942242265648940787478799109926546781697098180144636953703970052622793048067105855157186890376218207229355685105222839983344458667819297449579183482665883663035991832884768782917883552276656437079374895100546933047665052672494542052000387027770461472164803944027401402194389589114152963051771142135838809449264139625977142522571063439624397013077982161709988606855160857190831305859320641166105965347054224165916514691372940739081230048062356210480230903763949397485593050159819638801276831185448992087050645314774763773289888664690418790682480187155252472054385505357744729220337820020653864929647476051252448316808523891181280796584958931905942128014138130147671609753135654086800586806730413905309263164759956109341225569739200813102567067117403821974507823824520235280161435402259987971783807547281910552367043828996160277081634770509565844208065667195384228683900916134146811679371624039328460434779345618099077304054120265745876893116670814373491472330755906414291377568535762018868558046225386356313788650100427077556969510222506224689750009554780719495686205926131480069252465571239052587520145943179178356928420397873239576683073534005153709850745154163645454762247069169545597021759299134503490305228859666900616111426221326465797946733716672381039529010080222845153146701079170994166468803894696487784495131151487126799885299163863397111652247890461733849215917005457942539963820652692276409754922565189627988870850537422526744573937175052924441472610565394842789414237075056350169673434388292307128795323412844652134052264320515460414121363198626844484912124049342510365376336912470906246066885539768001071129172400064905910258859237953277862060302499360113513873446682084188148012394820263806943930102019572604142685962573403896287776282878453539811175008320386026382081434087643926856208286485009594554833712445616067520868444653497806522434380774382919008663248772657208458090104715197223949925990636103859736778570280175405305925702441568229581907219749105137517241876152781454164870546228805498209984789770167869895140775261159814932649847676831445951901882338994877171943769355871079910389200053435527464467215984163859641661677201443469865816002856893047353698983147154314007474475417452586822535357068420724317551903230984060854962186847263494951582398098096208748335173243846658957492419161897271915444061250710532134428072665782481797519594457848730508263411929969474136929795180128878947650802893961140549333620610201713424838657365905548652025686958810422009336848867059422155735350718013509435138562665007846146339740045765157927672386110744888531849130352869469803892941824626358617676869711878945887634771233021760670610761471338309153281778590692168794287359056016283802904929831992634353658598564701766828111907009539918311448339570639387467004351757897621235326925580507169605599377589555325448817255923398840799543127582817263816089510569808184578928062978241784508256101579098462661911414105863709253222556906634763381327090889181424773351170370360849111779353872181209224726271091724285663637355180779735896393762267874165553941251870836910332031768062635477267205677255242109114415314784212462698606857446517662954034013622320960571687731931768652330526791666467078482507765963447870293570142321106553921769919047891889602548626963743764897056150210192716104509020557006034570751262666765875583426913827325914501064111342790382488197416282710554172567246288512739401114852919288367310301301273358534487311525976585972922007809263607719926299060334584133105393992793748015286003988383423754779064111763719271394293196321778798192488984231055197897908842305403058279659116972629282697774866909042769796547853218364231537785213565342309214891221652710690195561625146163896782281308227477057413334376836740803444208416236585912954295233831752712875574020762900134116092415007649428620264562596167395177495236083441253786677190909913061863328876432310600251904548522928419384946757026609510090037267841111688302422024204634367493069228020643613313878114373587993578165441263240256365558203595812707450715500656203815674279008716182637510888612668405292112874792066772365288719128419152076834397952362835787694415113474835291541801582622493150083462062650973609050817037922207320342271083647016373680734784075350287303585135244489413201231993612325666198538886322961937562446108755810024504107374599718240120608187562689272152696633122272577218234844177657638287309824423375693405999426343043771931273378288757602735758642126390157910783543557768765296574772185498579506978459197306608054861836162812965104107027182855071152870166259024617745925047684395458992234301520001966008791723786410827298140273356450769234213414893073214142869673935374350124441455409821418633124038952859767844757050423132751389761625048137506603668056862281158779996539938368602673010028464736195004412691164482197147844902052598832945486066490248824285903184065793271593268849789115492060625167328828332040793537026185751170554116045021357779184785091441521449236701612867010490170693819350924673451916105767874973511971337062949905668715342128721313041013650719842427497061605362234534108562956233286851633085857885857475649687629197559263765574121026878064514733967830569020653625299071687473539756387750127463963133688684585315177539305288381077230460261955978857037128275814169439256183358770552839882446936329618003901917329132411661534386102806901371207511792850315070744754872561272300274535545470336564691372046448447933000683825079297438016966316335421138138116372291864355895491434875086191095284537191966721251362587701941742614170161845666999117796516263371110981804778172650854442000176273024775087880144342483450261974676664728617284838480860530859520136748452475600579618284912020929207730716270191701930339930724924962253497959898332171011367380272773411237747897412204299765936331456427373067575319990953146125828665752877600140427998228352863278033783098089866351148892653107489105914643130387675205349590068126791907089463369876511618194454566814959124863967204728749898024370059118760018065323456961988206793040710436875235794065241191114620309716919902883000544992502708266381461536981888693437612707492296804257490362391209372282647609916399735077441321069246318377856672882129201741205072405694745544444366527722278473958296208463083184148022870257143847935857249815744585155967667842075553885842404246512499457004507299060205370782351297371788366351047496449238915234290487663456835153438678881866601044657316746436495916773916242082105164114440269723314577575332306632335655541386664368336637804170475714751764366741537852170469821861770197183563648277627208648729559679864611029748108123398021769734866089388473856719605330504245235095369871760747807700311548825666312543251632023358858340301911654664003879572772761761932580223471453416272854948457753159800473960590101788026986400126573166738213595329514005082149165590270584715974292460943663471717740148131277712699686514421165532907753681426698398324877105838049134509881496956022439324300279112892442146245838647048641507702528842105796990213964641082117639815939667216508625150980874052185305899549278900761486481992345365558228486096173234931682328279560853079853900174814862902852199470531688997998731458806322595259085157239036002195256075220301505397460511482062781864503277736654948396061675424759256433200298479445688386552411791010573442005557796807318473528301839736256701107589671688680220474457498631876434790691738958544829071778526606082073198410664579778478901453153290028303198914970657891302749129743693663783983003419184089988072856060383076955916359516699175877689234050117533300845418816212174249165008440260522891484249507898745641350349613911562769492031927667007974533276932104011275963047005162610681087289264849645478810394767606524358408375574207096024334904623620129889588915495931882382946548432693999354728079929918011404052622519808699888117757689662523444412835425290092345930448121927350306040783997571891900770445896158920723012890853529671630789016654714355089382333886292247127880508236360841670561779531960557043378065622954452193283895120150852129843543359383693645517976343425127161984969141375982504105942923598315347884699345808783519681300686105785179846507252959856825074416674274721548005121162904574852195931777384937877388448218051280518796006773508165410378860510262881427769337348060688139311302817080043229405498226477738488549538437667482185226277136788124230066348779076799548913558210368908793598374102667067200201067763604361848491140349242402539650830635677995348055867473528020055641123545932940847896863668127652649478649052699822630058509581891281821206382949748185574366206102994841225365394200729237137413680090281975368816392904082337389522355896880571425031063971008779037314690851017652760209844020720361563770009983820382539966763969476115029909492933885831898287845227593369147680547702181094693031245885823914371082822074385798579481385547520155794630229517735365382914193888965375349870079147183837757049195144755419406584572010988606436662230364123307199326969323397359616804014639381131581965449228346386410183621694379084437835345856712433442815421035735693614628645691724897711954074048623323815119354748049291339804180422018421919858246940837231130653562004763841521532324550870581069237275317160098568912001881106021865414302187180855410419823324113917806057948748122858414134199940166540540626909146353891575063550520865245446965127510862936042478423436330584820925536912804929407969523340297724257480400844968218144089232522387408099708538823948967145620207190826993165766457742654787306541163281804420964184918358365578491429929593210184115522105925018304653503045971330884458886184704394609096018603407479617176116760361865054827935662641353286320828252728716448145875896251014098621220057495415367628768467152647079280273053041053467289825962006794995540970550738578451455663979060651335069391002284550569692057642278256608822325877094639742338247007908293356519130862569971303169012434744047973861955929006012379349265894957693688014028106327935354920533517975827670052416569191936590883628645453958142348920992838397311504526799396826174470270407422571779539673800891604233445287315869950064849794097379781047505584325644551891899204075921726078163931002470580305650792972480976544818197978889546141693076507833862928463043915458711495802074713259852698580193361913823981795371602296188608374364924168939809454790361571102064991952280863732995682888708866973210246394510194968113809712341831362723702916998032490920365434491161098018608767645937710801375788686778619039416818948234623500456732075185661758743270645059221770687117824022857222619767767540459090184282181814089465832736571450634849850174097236767902425895910519740155802583020169373702566094848577565872470068763732048409435615781709109727917839616888425312210665662761086204431759863222065900054411649827355031301221613225371135462555721747885683771242007299787026445432824099780232825023236987178561596178403844197991234630789867769683194488389481339741135470178597154338926069906118729504005059232068799682616554480092119227449801404398477881116928195501475809729941221848925515867647532193641401707417858284480279502508070823183367562823702076923596805089569533162573760404090790418943835021523248142085040503807075243860134599716974636971286925055768003515207590577515784863561571206189178715268042634198632475320130994675255585850132942922868121979159314461693321990940829303561531918965207835852209507757365322291851322173216065173301581178335883389080544442724455607046177383139427834713151301443861224084429084052144057442979235986550182664638969957594203805376775615709234362058198415133566979196109613095802133490496343023035424259856644026198090285162911056951061529364088754326521730243790858325493757556992110088126288751798204841010449531342099836023707862784402630455332448202619286434832851183185609139946679323493951230180291621942686701320698127570073772313181693194518111214977876281967599525811566526844957621444822182592287972581845186272414368014416775073572412073437478989096770020606000275538502469097533972781749340263285114388973784706710306432828891034503309530528204626882560385122454360173324252357167703360876382025126184562033207885224853811235823118468934176043630037431465131924902083643180600955568240519650889887538679278541916603292166163223293158965031685545381091553998809851098655470040758003261742395145510343469597481802142036775517623720213907089573438099552645004331400666732375995801987891733241817768758983596232109817507924110624852795958849876923813390628709821033471654960321954420701165257313164730081387330987186195602908072408789321628222790560306572093036624903945010808402610714352178192891853488219458372427806572795688569252709445373480599685646602999304068503495134878744728322764194370342842264378124185302345525942189474691526586526738683152497489306507176578019529579455127376412377390337132661596954349929026617941292340715778537984042395936705371179447999039297072811910278333342400677807924932684601135928615935801995303615814123632462632543601957763206352169817517551364524349653723925760090709646861034751771886016168302971906291772354747907759975767297162386719375406230857484000535920089214336004362096504355383735121206807256637973543055053135166896911694493092102415948811513676741440413056763666814518537660893041118151977363289003856269822258547739073641269089769250336917431227765559647045324918689840363154643355615746366189155984620291895557500857932008048109752156587090888187414779470595872419037116067387903722123124904738827664550717075736689222329649392964473266359408511172025287888694749988255111128168577501130638945905340903096939504341015983560768017607396965320008203496600946884402064928179623888467597406209094772448205529471818406529943522197523483435083235967627081161577662246433196408225306301536593188502324407640484416458454783587285878511731108457508645967522767497823439027175360025949131478122121032663989011815917703319186329412813003715731612525745489890949442693213467160133000211453372046724568948229098411058028039825097567813453710882936961758748546837289265688505580355998744132639128123806975332672250780881831758630779847281559979434857773374331824906043478709279841442912927444523498944042061139482346909717526158334434372132128303223013651971013307646104095574995629909393251563662393926631038545051186365016978443626979944673164205641454513683578811868616881813664106689793128590241974082496579596195808606312897384808111362104337613639814912458989074365161482477546072525799263507063463769634798749084129272666881094260501638968272179034643775345926399155226549283033232573716385014054906684429191201468282843062146153215507725604418136130148343299638704831331769684907777406560724099407167102578805346789952129531661226196738621025243808915158356391112271352751099770440670107128735876554634601803586919798132888737616790756623113192522952100151815133727901291132710680665478617304789163546189523431207063623729384116625595427171049934215314175557295468541487098114689176856906081254357150648462600224946375064152767480831066928888926545848966593963887046088390141777799167381411101901432198651459762676846376303381966275752422769223162749886248581314647155047920954850334485325006427702033096146201810025346375975442953861609247161440503101393785800064950735818442826621199521386316724394482953774367805106120978161113916884799054587588797931828777280064091927982658138653612375799606914913156159911561150371651864511585337136977503769358284739208130720522597056295313029022855487276352011622660373953221680338532814869982379033227090773750382333533889967048784833890798033363425430774729288997918466346481589862227340667703786738945234547453945882368935133830005139309075870628432279550664407234627215655336919189911745016022673312577902580210108800141849585176271279754193057201234781155093976144456612305189045582776340834621900293423437631364984684715646397089199450219989608893549938625255652798001645878327429984593007475019597043203143141977113300530800106718005537564726018542459773185802774865284194491809089346194572617392725449551129199506770009537945678401772606435634601142214095614658925854397684233897485402401205284533798529993060892213299742859198422117509333117663662050809381635148350949133394709171243293472449469718114908632143199273376224977002680327892717102244273637960451119553610618831106488971545593577102356024854277310251518002289532127883855740422484230628497279091009401867259640663734150546849588109163437727176490423804503685202133461377904151311400630732962554172281567670555267199526286282989017469534087879644320400532841172129815518259600449268591842650573860888944127828814894524592347828844203436078551571372502951921832695535373557026929371450955408164229376581049935868171117185333873136705199924972833653441910357356408791158610110325963482040217751480511900000399667232956741891144738064536625331593918747485277334184654943324343098605549570398517300979507829026153146038593305680782093165168721332667051122734049228118832165791869382555076709816215021967076778880693981352797784042863464759081317976168567305607001261923331224218307727756009070372250857451722619458064152018445345039226544892428661817920706339055066656993168590524633423710127644072676185767298111213078161050900430217481839101515958678575998355130113593639115003740072219854255052403453083687035649165490712219829055061377654647643503693312668222990947030715136697929459497185617231136863721793388639404634962500254310793309414891696534820694749980200269335150784235842114873772547222213815863748139629441399346680925548583670696590132131872480832398650605095431829656579787875837605447163007278350134119563159437814677926877448662032760985097561608345017887686774910820883374395491538982143216052642746778182212510728073402783806629571735884705267337612311712211603356528803803496910274002303972422675964971201031364378236494643722072758353404688919015539113869664802441013047775185046110812426363533738545903823439042902519963295980347750962966836224904702625351769126540068903668137301309276823488123742742876371631267801037788722668559741523824285308382873979979983007340518118267077813064092617784783093865450438269404869242636988899477232244582001208452427080092863384614360499643603255732957393959905853961362889203656505914808243185159553585675262090188791583064149227244932007154227745512366420523906826439890695974161716016596470860723365732958344938751061869709179430350435527446255467141023837477888082444499565608151666033576123519095011677985710816234535658901343676443964899909048059357202937443887087901113116091144840099466317935096805953844437420124616922921739804245471419973719556740329003613957655936816535301263063785209735863850849076080509858219571508966609244203607960370153075440188556190789269663204275226950725555936364958050814594032955649141972905391936937672462124093168572566975712711158947949303449076438379282575339155021997801368332998935215311135734512674649599147419665522999939010298974331764858579990103075166885372306520437149321907150125918790286262819175407369352110378833604351823742593979046931462245036930060447572769706994036570242984250461602083752691662949221538278046169845197886578512230809876747157415507357497530571529577529589973107423055807465670632278227348981581973314397150387506346046212339000699397869783490266738820976191160583966036431046219095843876333688121946196198207869658623865627436936785766859183947991303399336513598082685324364470683873585096654331302613170296520398327787205322300662813496964603098725761303399415160172687043964465540604741800699817820365201405609750447162847217311606879892996204720846440883502812250755117618806194176728131994046291734096092514134215283016530499290049880914981090813532592701898800002286279235594732877383338701393911197815336587442117696087077441457689962491510599705432667353633894725288076124044473318541236592161470066401083705864567903495310016057812855598746173471475058080591788016467803389573829915450052106392784796671681823256595155164294589601981889855283001490981729615673089955150293141663011222289214356824099709672745286884522295171057748402282863489013317145177808716621006334833794606012454523597487840259087874688023866647431695179387388513019600886149795435813727031824631972636828402849571608042370957671551487945165428023684218488890909537230755655149063122654494208417952648322794313238899670156278848168269748260735941087211245243732138074724783520402336888876788330735464942494249103519466341060884992546571729132214170768254894769888042895912805315759759073859268664110826243562581052051988483222611640380021889659856924401593586453467765947852723605033329042423931625424841509260653753686736032510577072526781931635275664716100183814664760171338203057900452306637541922909879161562485254776036097138262034362694919392691615206323777729275285392320495431527974336617145404639227722234206763784823383173644558813106851435199952134218087151661442728369855717764644582222578317210553099814465900495808385307353229635567702418388914986996865493773585284554025216502156469516068750351965410918249924146628532306626597078588686654959196492611655198374473542985277192878201949534481222643316505329829283217555023635065670678732445402262994298093795796151761752020649062017423418354836605686514375221334682164891753749277140602101178627815943862889824992422157693391505056099732684195187881583354072422806196525442551985035945024514095832202843765237643182208784205573967364895782149074943659252419726545097659916529973141223665327520782481814768128369665435670531067359966852829662581010950600199981831007819503101811507587601258496952083562719447541022587029085351381112968129174748152721303195754651061996272082240363437548295748211970946753452615757051083070925143032017002605361481236869621821880804034506302748543362586682543498910770908270260255708647749385764723844769367979854098119700923134985186548098591572995206867001995023797430105484810184755026159076164339196197229276504223360624301065248079774243109279349679183877949032612198279828261680358029743566790498769024954287345821635420254649461450289302128607837483965681866997653229097128872061085050852874039247558253648865411134179676214109600679679343953664956294055379715597048168773800251095336745208510205531176037252773216828312385654370395633583915745728597596639043363542123595915388133729775140662703700422496018634673789983660965064941065550888488479945708445158632959506502168812480787652898007415672065750091364643077528841524329394337434480111660231415256149654681943591009824757031184394873670299651974560645163004547740952336203731703908925033201242245987133015732842956911156847264183563289124278152102140670241764317204125834346650841426285215969692887844348292758416569869850792346843275543685605414479236255984922717584754373351218191804676973008148207610355063257276213265709293690009326463421640190731881819794255081301067277920128576988146126777949225530793023605400245621241115145155029701321309877708745044703000490680074853471166009290393267988567892031819056857859893880244484335368109669611439515394231779368091499871697630698775540185926034770106646538098938738764143394927747624799767709518342229024758661792595021775233796474109150342780707259302200808355900623930523787638922489725837007338369784664164546930519323682880353992588834757396418399250977887550075238640691911110796844172291745242458905380478632865253995651184009472289969658073050343341547593830940022298577132040432578512735506552050813613528396878971677612891976252513311672574751189351152756943894286436437160434425432388900068280525443582695852210491938176521698251163618765628662793406700453196613485492941322368784189099203546820625507141705089525135591558287246219410471122811510369541595144191403713321652652979275012595812411931191657796316655942523600989580749150326317934511366542683177011363923650806136205531145847285955077697641567518250791547533790902720564652925857520175087742582594360955661058349966105084390048354928897875558627322690020205518811063499329621309651968429015607522759266551168912878299899068329994815205137000824168004122372403811995502436571913658544524620211558347335674507212553781604317675004071902282999545431575511506203227573816800908630493509410526503165476615923994673320652561683900575608464141409566044397920264314792618718601114067201957130949535103326823181604805023160937806518165418688416185319654142080974715273603426317990889896302351301664442051451548073127942020979555796924294251580760391959536202820207352796010655973473376163014012050903280857764905901823893638936851506209267319240378260083120619545925172729767849273978084057638384088420702211396911105308641143668858311205023217723929367840594413284523477940098838034285171302853226601809802240518093632450493283826145098314933697880892310217148394895097687091632504074754630389855715050418484252179218226709204395790802845561711613645316832816313093427662719228221517850539792471578398731078232940719045161001123892383767968435657148626974743467884313639731502954941788537540033002300618166816606829065082110451326782953227165082443979670936408744938124734196719666322512223452232962783418919516959042704819792233561740632104632243074350736623964098633703793901800513458464465563762700639860619933528344438742509931573736332140982176800368454530372480434941968637715356246372205542856963112633095611257922081269322402198197785584303087935915037949085696717584213702067361971340026379344288578592284423922719553390129726316909333559863194947081616411807595841472531364366757677714868113620662801900025447860719356674422201920417114342059658343551366242626776325081093488523435406202396226329648555196174134619640673391859471444851569425694652623786122983676718379966777621893220769520496477422430921361934197681282936138481066448817153745004789152763663333907182334574446283932227665929040557262035892445109177214539877934993815586356056355286007238624191192125891264255842305028617438536004655457075021745471564294765812974995006392986100835582379239161050113687587516702668215930645140610905216649043526431590453860302923388023661818356141336500599027121032580116326083379987310201016704714685687361964411839733338265421232795668457514424871221427691908735700101029633331248970067251310866669402856092856021658170832308848900851498506845217071310978240066987619654245191178084421190213013633901676029528776027275646002875808347591837548127998231986959371276299760641333690615449693897364678666526927111188608567357329986038727502832560748323072135488708145171309450480054283583594299332609888782959204959947184821257310486799236492368561057686273172005707301692743922192817089844030325028178861465783197714436859616356476510467153966141462878083076959304049482605138508184894474744559506399177261016098209351665166001601761395999908559627450737323497976891665457109423160999872204491110475669665266652429424241309438704670720854291223967479113362672436362574328617042283670136669163150591969324242591712781347834726447538003964756465143505682937299953163252043587078339610265295676523001491043223781928319837205866044209565827937990616943382791603388315788638787779696160131717616193315458453316691755185970698576727323467872932927885580416144675157266056129280585703639801084753954122521742296490668972709053380131146793600378563953987870325947868770801053855322581346385128890908893291822123846886666311041712456201922710750134431761767264558309802375104050374974042058583625192237879641996120204357027555672411116133957159331611994903080919434621594376588117325477696232443857798007618592174673065477853127468321529085845537088897088503572103025054433630745986990904349284257589212335408908537198262046264667585136164757720403907070063708504888239822727357621029655100604001622557464723213034219267963878834897760217090452924573872558620221197726776275819457378682816187950853410149402641786820412153374203189685207046368356201291997320969129257069819300060151429304772495402158420873753515804809613658757781549616267764995290839286283126310689324343304215818930379656270639188983241789350686188773375292606169057248609561574812172141102754851176786892089432962488977405924925039041599665844757012510276966218588179267623930589867363226057858717149901866555628952694052652299780636142022708136416648763661448267915398734806112416633665199466987066902838006595390418433556176633359571650740155556833223481406195840173635381927439487723518546981414542582721352870509473560054658532716203203804989087814320993922017716189642765657259573848488641784032080117582253170572735062683983797487928942983090639126650479455517733422704079557156292223902909267102944981670653519195721574614023840345943755012480945046375997869724329613157760083984520808390816560222466527016410144688687515160047054678183113313776786700999469834668051789927618591512905389002156001677372864188456482288790257371056539851435629746580796995901084761280624508878083743843407525462596554664891419355624415502733943743315580131502943388369702625439275117244642253708919118494234417415413788649732946848710433860057874324243720570746998006603794993413567824634567567098101180859550934758209299651912533813573936088672228932617729396506368475079283708345881140725764485140009667839339420270846462367705786308335364084031700084112291604724955911394354230546645994375987732267971854374483306703248156130880618826923593557613607071564275051937284504564353946704937058075086472726258166023103409439145652879344780943387795626030589504507275890774627474946259055741445039252150021838937473809160323860699331697243216640017295853772235722803218956280234035389750727585860030354357429466411023524676054024185954113935809535373743787310879506382638789127428797503409683874944770635196782450800861039037168253525250096608879492560764160033872388096803475257774458317716931836619345619681479082538565238216302344693066248697410586559885175972640327629704763458577912565617574886371738599007464170140073688094813395261825247113881739045045644737803318061719801494981853249826172914263970264775221011781218595495273599840737613863393328551242961736492567072665330621006079317626641755408076159245651517147937007979978780352478372736488547117959032051477688443067917489489343038089813737434776004600521596806932582842486825098100628955402436583866408139846729395233314144431164218325828095408803584617899211193187972011579841897065778060318444494837319418991801435494222113996974242076449451830944272427326851089387611707654901920081195882134228578094157487852892592028133278166135152847618906261734695799530428058888478650841730237345003292824098168199911341062777153779573058841978898695021736010245117443501141641022770491233252368660523713211030787233176590263097268781619721972911489738313872645210264295551205173952604393817224034442418634894988260882804870280615249194032878004645759347455522812942085404157021510007774440217049279568977661314261800326135092931943346517158691778488947611216675695996101265277448869069139201102711627527822273770668606433236817474986700565022946823286511801595217330349519178680035226703897606867194059791021800862167929709102439051168579673115248284893954336321090055290319951540141817096995266159164070467249042554137001915810977088568365710418597828039676944533760631765392577420567029310863198880282175564074459933729912044480557992815933516107679701510284798826940048879310695012444203571806210359152902902167531360697515110860437286441556233881151131099792159997473242603703866952437628532928280801349455589401527445219859648298759591856120061426682551097202164641459755405055463273762852145041581774470493038696391346498333509967942238743224787418387238177725032025777534634009633379095540110835900211645409809784992626104785576704585208247673630273867097585330220029511528071655674509035349174716599037567586883360243153437505954257745219810083635627588773032861232084832174927234584374544548339285825616991451228526223789042422590325678852256131541058120374201337710798683129477922544076974458709506232382981930459050596768881091628085471679178754352569282317104370572010814487612319493029289929411427945192412815811749812486367400933473975907565220870408613115288279534565940314058777758015409572115428050094901042034362363560522766037382340522531210393844267309082527753703478322280905545649586766763536726863682306824299195249290220841155604047339044979872339577106626122714746397121932637903765820130152443413213505295308530814008460201295969479070431416004333114890904554980076865560049808596677532634727079867807820902551695782974730541859110123061050259053708283579551210559204485903378157429450863904999429725991971939478721922262420706835080124589717369722971379368286971013549202754128620431209198052631808506846679012537711336808159325967968388080544734146325192791886344788952478225008639544377197917460085637942153266849780218413350207084903113387453294756031238889377880831055386539370956279339003684856444747769914558228483690778266716766027085689619946419085927275301342930478818322631107195864268471070444987272002234863794792488110963004879129920278535510519501875566452111749387629941084241845027803786252484251640658580341133175863425107059424146689336233833210133671326433201125993323598832959315352532777190473550152484790980512255745121232748439138928702861979749014020906499889809001484604600628648960851760425256173802916269882256159593550122642768762025783487041454920726220203636331052719631145383751384523503424577601362358707339961184344243804717744028285814653003062399095372527901335906950662514709819141789838324751938602861165293536265072443167984521783903857875794375336769271535970420067004209329214080373871804775423837271566527199394628506776345619697810585140293125092926155975822305749675480424034216936966190129754434825230535318808676010213223573705081040494739717008460618568021269367690465270524083015565201175930169724556098049938951884188049118870211892543976201634978432506871897002356665120717606700239202743351405703218339266780222535465465305988337445221554766664481961289029405495590279014062771165567098814828413695405785841075254807159461547669222094675724681335951272450615751735160204191396190025957338803874401188848944764628504893209105014782625811161735496177136013188560115715258249621524145871727083732242784743811728788897435757845634205723997793371146755918549217406594430253170310418351365640712319931856599325551101337738073710991043092706772460946345448534714045357321034395300714755582069753860673762613061787351477438155755015963095886829865412650718745749832374759505910434538837356564009233125373471030570774522697408248634635007484223199589877337418945825852069132810848896233394275228771663415355240199500775957828649560700022552589857064828189589863462671353856132175456133741537279802517922358849516794614662924674431208607908905851625756944423043938270590648908284361544889898346136077169741823803612984924054329476587192669922631028464270145975565419464989812886618017720154119994305024922529447970507037513302052231526066846351412339657488728569169375381543656015234689484745087425863701603295140565938356388954433095916572916949941024455863739538685687767037212008908031205867107039948038245568358910561253329795409712980581431912695858884739762403394936931656955627223434481520377727609439354306030342203027453076865584525547515850031665887099364938341626768951843413733863893185132242360956264663167495286667747575735459534926772042007209709881574107271731919796971721281063075990635542345625336180970830460735833744573176447913243500852644214988574511717391750259978309113447004656017616098925295369025694742030011821588922384827193274571655473249800599576336826376782958731919434917721059880388282884527606089733446077004759382261800640046694752959458674496112332386423041174380909242900319989851646150931793386419593092330791119066483886779511932777729866591075079331724897220307827873662873673135157397750340568404657356579325176012710644433075576417049507082402166422000572343388424778781318366427507027957246232852925544832226745447761429105765650306578998161077915446520103932016298381906291667669508672272461856136172543169711109590057487637999811277152903178480837681580535532660494303610173632269673750944107745026578127470560620427573166746246078482243294895667008112805475916750625022030327429830230525283216928109220895903973236387110387129940914650562374857708475108491493561084558635025359046994538494310013410387995134245170769881225257005090420604260821608686693680279333932233760218746866398748961325119538500643377280316043815448779190876913321929016889344864468017300376652535364030433059462170387567174889461578520227733180247506646962844345925352412545903067665957342151391937948651619296181857977888095587064100795953725791495575409888702912972523111322543995491984014695796842162220741724613561299009328191116146897323916525678698370215830797445972147528014392163731181852161133602860566698298157101548979451942302758699496907137203218815924088894662922136224221065469524861995211723998328894847486797552180610059620966729152212141561585049118032091891563901084033528079859032051984316797132438744080185172785151964487261808458598651168119031843195665481837654210839389183797736455099128556109819616421970361337190550530359971911906512737563502463594398973798754774749603416696680561551172073398407150246584706852703300736384828518057367360152862088323131252151428916642710022218429935081360939193539938163127971509242752301224997264886912948730411703386778897896703371893558260689347183055276490959234419379564402688139346918240766785868527488386357586046358623100309899938162487223222090700725427748991760015304833344197489920420064264588157217245929560277966972873598828036498148506579483400223045185040857153278869162986840807001676752937600109337957926637296874125834829951705878090445533957049276100052057830323113753711235995459355582454383776461311684520914451969798414808941217070380555029220529565296531561966076608240403701734125302739486128908715351695297800618776309166651293858984929827390849108647312802610700717100067889837792283426226242846299593661221312085222060471086643052519379103964399760696265019829770279763459770293955530861574450505127710063533620941969287845332590550633866993672835468549420082717550032798814636579608703460223936566331570794943516455793498788546887280159331997894503325519742542535679133371934463260424945355193827533205891890388651572448035254551088318712569032930904150416938827269248124194069935781289440048659274484880672286650102580331611685413822976902320421467141542865405897124043834470559800745504607884874822005645888193964721970599106654006061627846674221192334317723273875861447917233477968771533263601626935713868931325377495601683500156502128897939119735978804719734262272023331577085371150603851973021746471826919803649839939809189432579471458898137218833586621207832523130710763198429438424530920100513702081177343267846965218566302902775739630228974546612944908806083151484201324144712391019887715271912268352674631738075016825496840102982069805525880923168409546094470199497536368732518095183326060999280296948353963983678539630056237297570845101643784420196668876804612244658203552753488278639764662704263585549280300375297159512175209582589185102840204200461233239926269062918473585363445820767235319023262169135853072329881314507149369532579885946021530888606606365112892393582407549645696216529352693237369257141038767540481130039050915787979542436620798529079237052908943136466089445303138814630631988926373127728036405964184498521006723931107224393627233969700424505287727011814228468700780479899650297401404241839747278357468730091986033342453825700077430221079325952471333712203804267809446789185838849253352617690039666754339851608714961726673138541933828016002721758923889398906588251302032796356971783453788154111209113329285338310230569380516045002047223524804206271177842822933393653785790575005768946259221041669849647260530525795213831561906147974752654870897164418597560084091689484277239771787226603029901558496783077556270413383045645335537297922925370954454238376969926650897653634619317530752449025270229780922136287794779333912825977098459557592177215952607205893709710031656349519658396852375810686538213768004629656483983537817722158946030856662619977800699853660001751072464161470026155460986422471887798492873506773916567836883364937829379162335927567726163451173405105725516245396851066324201890195974641187896360583286488739675752043165058222807826779917323314452313627006373763910526450945484143290805958713233954575180928979698550354285554729390196540980935352141035423124979382533825618663250672607467411310037021163168059677527781918587838569237835234347867638947135602343442538030707821624767418837610894346723841999332301455322396920683291897285408393013335719836243544988053087028027489855213744613567088235401080610817226937602747487508895093737234060363009910119392222146752632281718090061063589777192039755919962749316082235203059916357820656301990548311955711139764206412088810738812508030044973653534406162586627664902246205860945136381642661165444656641514735392005220775399499636990413184357963797749268164912738680382326981368935832332374118380007481407075819625959422172440459485342168656384402995553777020162081538685399057168836032278042025253438509288904376961733796456220265479392276508140203940935789515327503471209004714572061014673859390545920584280580436461997515189813289608324194719570938244225533501115145372358773258332884379497190703810146319955415343525142439277528717846091223670838980371525082062262327306992293679491090655372431143517063257903670897434608550992083870152262235219719289712750310107377511059820738497265355332633183860351829568654499973630438559119074226042492099914614838621036506740849761142587588486634702880003348368464360255536019940283658648331441372882909584381065763602278137962412692944586969367096137622760464108705565060622072165826089323973621676197037267305575209610053295059065821604111744794834043218808657392138431687329971434977714194234034672686068846395991940544461211858179807384403693256342566382614350643420446978802693968328448630520615091162512851294027681309116675518534161866967248956557691602369434866217924763199272753310905783489710268024547150091115896774134012541029302725454755271281773541163448836115683263329035058543487420021517678080448535359424631966458650294196988370490686719453217483610510720792987685223043449038876260435826443687211567600360116461576188906758137513875684430805986755418962785502246799159059261737741160323244711756890244954591986092572484413251124954160045454943156368100016871646777271536019002781133018298546766770572488151369963853406802301424343578819490738035282973376799266054522853890893013448209511049192975613706260977110578593926451724715900776996307422699817534632085471109246512087459810312681908936260626043099307060771225116006823954891508977459705678462051281755936988817370321267772568518080261922520580835505871803330982774625059577285685700078170007763421578436052754223221160130999066051375607863091279508575416985069952807244779610803390480712749813446298470164720187170695750146669401825277984839243967588157022478357946954623182064909470372010973862774723436745758304045568487808695680969803188440887041058030522948880765871151463914209383478852933807198203335020974019701499864918553170253481685858880393889459967923442859962732507414782167967221580620470227973358988752982596835188145130769892729760376709646712488793594230441517735750274591836745046586064035774195170902215509309468030066040534501334266746418182664070588065099370719055353274007617847028535326931838949181925088650331367000874454441833427355167058452272715220602154274897291089007422692261473316502796936621349483313359248575113559153039225067858221104190792622588598123778793932065197853483723747650858843216953566086856337114997611149353108976710601787362671370681874725094759149887389298018606373627329035233643308953247599227865166659740810646223470557271267968991624359653680438915170600720066443457243640098696735247009993339923801458482768783126645729254030248328858111757996394148106692777543256409712012234157601129197097638171427159374013227774920519163223406809004759592587329265628347252583136818885668457606652003060176982355244208597912929527725191013585282765898712490737453352729647056949984513085068095387096603563123985798783581034280815368099402821165986427663560300126518562204178314039639033342854553774909771620695341047145558359224025779012345357591747940360390624685372661097357772527364508332442933380163601805404707274796849471744266756819746306815769461548531089258382458322343440741770536258215998552544727924739670189393119191187267119148081972124702085985126661810506898693582111799895716728047910003022646424418264263121348124238717408113821018833961183351449104964536931027510400701419795733036058849214095314381105106312192123673772678824113192465010488597913579082336531694745635121436728138568435739852135957005180900566473178029965874937422442976362868869224186709337877304103611032951401423764179009318704065341908198672566942013260034362394779280899352621678825513655475666039451327335220072374830550588581316177432255837936631505438191769635528639891329758263095946452241102007327785464304894705855641313484543900010979317280868562614593951242028156224332945010279572749556493104892846973673888970009057984635044114449690247770739929135712475929361159476400135932178652246262661911539938979100300548810280043841292940808062089267120466447498798134869919594071478442655406504849639715797003832142208890559490353874915957582506572992240584184342091319560402850004788507915008875673987555463663078092913026348494186552228988039979433477238869443418241403494876410456170362390781758005076496062002948690951381570617631613825437297066679069768867047727227113548576125388142176561340189073890071284580802803406175292769113333231298469186816554966175606238265177911478174132346333457029688676803635659600979288721857159198412819072333442304742962242647316660190723044166108684704041356971479752747858946387607338773498082788075999873930656432905576966566248575577592396749828300025998938240247048055416220773112988846230524875769205289659276665326030456824348684333575249176953996741791277335178271500452211042409863224523117151824857362918509194447430411313119698418222592477895985266655681720434771341451990321583731960866289454676557303086303302811995644717866469079579849200530182354116504381933281189774290240597727663312945480704293494395456617674306623115011268099362380646271424026638903811722570809168543674185502252085498060951346770441680699004190335692158173887637786449497844103751878342326098275454941848774752891342041897106004098384214504089725502114107158576109115886191096111201438179301978274257656277500704605859601146375744001856752484097575063287990728388040134290305969322162134212534754750306151428911954975962607306902967104950041324378551840960081440188650510369448731945828103280777721706003903116342902958698397569218172183175606665736237267792046924767352649597767076857753286011090084603508139504935860124046737237043625209311070868945411037874669464101388521016906688564515799220542444149355719101877232742539621168798053026816979533454756451972186875886300034519013706507701359250894864530569009919056943328439982897213264269875253300438327783432672332197099264918639416519366181483652020639485008411367468372751431698854134676583192436837771118358180540852659389907005047572312557778103525735209516527604503886042088308059693545289311818245205860485728589499069323422793492718784461009153587753233814352940572850229710932979875639358526631368176061667365622811146855470587513232860861775789081258213032498383095080952307466557177238587235441642675605313992583133542317803840352611424229937907721526763862261833306327139600835856134590526452219681058177051346021236904959070051214193765141017070118892640663372899901245868602448866780842867514224167088453750480772567970862278895454038210058946421340884764257417429591225585539820944864410814594332181130849668486369866173515996574668681831173904287106823473982379915845332243036879600008915205862681910211381563705636475283475594404594051631881154327790002488607889636249305290834290104403740010616321034210885878804459864302082766152153412390290235456285065861918030521631271994104807499456746025891856580874273192833476953482882634921998282093994155434090650917462441272797369556659973329252365342713098409632366539863304807804068751249944191340920549067412972894049751503206927613951999060778306258079911079045327392115383973531143347282829707432840927873154272566475920815319359496846281137567663725199750499296229067474331806887864281505709685540957378876547274445739558828739305280310089996031516750683835955072173274896003370030340132358699549754681274861810507379172220611489725210393494310123037063170525815837319264567508855052035416020432675100167807612352632944163745828126112017259549880713417766407642381570401249113086592786175140365526467435731900732595140084700172289586995200529870974700563417731653421688079736921647305468163021946986407265492002588092623262834892071705705884217592214816773997118432950342659519453031499588765797569982587448655684399558377846091264499500636474637620339228127627455877478506445987853415337078141130867729584937013195446770519813417151027508440699931469439930785602012612382483487767530724469088657172504489763866091353652608599620211543077764433354132703793683736841205104244300724235927157015599565796789710275875615041120951534202219299572519557234086776974240227209094021141114939839788070101905132277544833938224080822521233109820173827874346786892404363202998601048935738804168396825463411873063171677342839604772161829747599451556326864399728696765443788260675783867720336152636389469535631491386184700395654311651303233626750726315681893967850305171861308179785052438134854606017401205452136685210013722123772124542474082279874002590259833437653439654349928139508818207570326814989132713972583190720488490272007237593616675365162945034482729144430892076880617136891555955841288994990782378015587910970412897234244330161722283639253578070505975944452108900564474531760753060628089598281294085236379597503742817808334389061923157931511041314137915641529645085828680644875124838650785914849229225931929787611536707887821178623007142763543918915742077233570255366618690361708426275598685898205147101101653617733060839732908015335218787632483347300165613946334007816905668991598225254479484263047782305100720835616231656988187246240625660973792274574525153854654900686304820580571797933891013241748628925946017880804234852360897579601902149311721138124650205972697396681425297044445575670839929378065478587025252218500454860085036006247811626862590594655616656505873799092687840093837166435266749327299336240501649533975812528375169062738834605038665265873928378439910903342630316258330658920332242285466761475688821290913935397287972828337886458425999354527078650904828742715994745117336487872797119474875457059197679439195321504069904299296311398843750979195920134776584260229659957007915931531744750814726649573732590707979221356392366121485596465017905768269170263644347606757630720601151185949723449685417369153470878213987219263773173334441251457104422694914710920610309824869383551053015849464656817771354147158614244741977226439798750617267943595478497579082926010760525739515878693101724108385795424134416554976352155760743375786270880306915795127070517392178766899345035508396700041818401171973654608179153083729000242337099322734942823080276144350758199911319001588159145007967369226041244379882049567506232040599611875171313707786552039967674735570655313925647613544555064228898787128241952237543635419400746283130187112674363608591675506976396441257906287710267242714573567155150306963622405135364456781777003495989500218182907896237253484568360882707922200747352699348404743598748755993057083270078860046012128807159177276576259893624352918913704332510569065586080835300006647197405934072319537001167967456277471181908900476763041734826488742577498309862629631174608635068606525459264490227445995653255387062273808966182759132840348322271218985983715075973871913137478347370027860077953640059642714835795537036581825516463038515575414926208876440357714777763754211130692929972069523527857151404878978307932153194030321315750269017164430286417596696106596596807372698876557399727777394862908469546245630472390050847553295265819617979853278563217266436372773995183232294380198039274138691745633402906389139257580781520279766101046656033094078342680884549376560863284067411274623496778686048748962548400044682301281540798877163458205161616765397993766360053473330773881431264411276752040164783671158708880560829451200349097047485650796499259708099165619353052172233724034386974404761754700430399449277133345290184571227362589068906430409737945910107322670157614649003685282253276878467672933843072794263627709315200136014979399419033316143281112968312583949005685099927282363016583107443479781807919359924478448942868162307577508676434889546622203910019242476875875264857630333807987347450114007596080673025532500431971056341118523536360964212662884802313517891891246692828851497909643934875110088104038550445404177357608511717918617760291347803716684530233657308206516664344950570091671952610411776565832714067896657124108091441691785332418609541831281504790363746031025629599792267026239358000314404090162757442285310133839702836793318970533597011376300134703428946510472804551782362181646681989488592871666232714707040078926119456580772087922210616647644672384049652392357151130141816599978535288803171296895240964070837615760931923080463745646048900321200446649178636135820638914304093083867332796981165945911105422680565965926319715506069842837498108257565414896576061195898090572366761541550836769828575126197445672170641142015994409078115047307031287948486919202549558971027354178915329514767103185612017363442966898455138174295414454306493666035854925452744364593043597775006540252344822630275707699072037034008522502188803063132025478778614959916998787992659246513550479497861958870946312170227391769498271953320473970319036662260437154752891643041804131345564468568346851644381870950552631810454127735321301609201836641668957255235265799382570692359836391385195335963466549669539754401794501797343135448011020789384702711381126094688161567688020483557855353262166831705963055598527984610506593241876322617463727489088464629472533700696359496788578181850130591875191874721815825717305701107263051235186575232988936669810028138720539514525704804478425126482968207251383634786363507607639644739375013933713387893891633987428141835023359184794284500586773910162830900535358893528732102753106766244598901928628987299799035319297915007575523955765272617808552273132183582179452708168349314747575313435692594149699752293868759378524720245586958757321768443210373334662244945567305604330374249674033871704138233956155722814343805750917747315515059852456747839331840662524539914046971156853528867793172020297653778161697402540726922008800545745469302458589435934892187474313228512924712560858352917248068667919309647303066537498509017112603853796273494083247809190413169294169993319737558424061010166310978556341829246358148402962806341571453147181790923117021023606474425583158266777119773273485051904826493467892718929487676892027259667758911887052011872089282051349306521467639156634186779835080250389551730030650189279260734557210292142319661919343478907999548082959959241020565616644079621489484016541410869354448343956312225533424293119581454409825195285391557829406987833947943195659070980450345977511767240134179868000468427063769605727833820704292980103309221370798560110886413571131691019130168572182581044895681250458150529556911188111614803795017906775014928102346550492897565932676303166135173446288782694279306982534645849996249654520661329872079807130623376995547564522253687642397101380554000084303002394189059197285466897119167099741436868267924587649661229187647725272731226748873957915642205852722051413808695332610144863935850660791541389554514347296430617434882261156081679171108581588130765815311425848514399696308692730445675409578336605578000610118193266098992338567292734966030384701975401459516704451543012227923977586381313062747358957909591563267815562141935784852571960206157083836699859512400017306807884302103144109123016267385566408180650232445036393770562431918227477336995453265981367853858625732369385039145029833440050667514245634211514678234784810809629442822311606025617728510282605951127604013676973394667754494429372023862529016387202491452699311363563446869563585519264598829698415971133722766316286242329724935307289752275926009326259905510353064073405207394347595173789198608070157158874603066020665483014489901231505394805442391558399304898669700956138900402064345506174633098592468336240560097355029627111981796814583617559160797452693146337286223970180437554562081684803281936970300541654446730599115790155645026498245307236192104446269865892619545983816507567499270666358836264460413034577426619183501190415321513690885828076553698989596279443053916999931515377651292805427360646798757899474180463357527427042539594983855524611635238805180327197597566386472053926110931822337894141132616457409487417038964279051374347458738663695648360449897912959966131480207740073028186070193253502122147187850375512422868123603663533855485693469244750549009276929606834751129929630638140948848143936198635971763407259095384911247006556622885458434570960970475316725545417762423054586588635145275902656147377740568350347011937428635691353383443323552646066432438087675748043253530099687643532285990923276253088185215585134034300456941954589307477511738394529930239037800097889322005889831437638231740634562800257554048595281322383780038525846649655354699398138064134203017074650685208190260179060655219634642328555536845141016624295656980370235660526118176943714654336962745468194255713124321550478290740221831427316055225836187201740557216451963235463671514259274309493424414612748328241881157634147375483079913912074749604134548650648239768467485343802344994132054639385138603412628550415459610682609408197195264267764795920127192036088230902914706241014423522216299828774782931726155632923126511176592797484655063261338487461588202323118126986999108586345133472796093794479416343644851606216140034094456438203063581699442437357511418430412443162972403128830808480688165281540166057549321564599077320985065897075310051688034041910537560156158777077293364972601066030527237594908490019840259472566269343588702254074842524148709383087893137593393098177156913374844014701719308305683710894429312347200123340316922323656963982984877324300980963921231587058112769933835218114880096456121181888528596667960218625710741569248034464489730747252076792738329336749553309160547336177735905249770515709811753120015489055380166736954522863706128220727654933492721745406839492300861330387451464491996225329367729747505395215724334336057437958961496654383256529644835881646278390483411877517255475761769375291873805952873339634268654192771100840276843874481002713128853545913980641941997080672606939814318637801729208918634500428131460272378906489949258983988544476100471703754457027710402326985651002617897355255538996122055722268308291108866882671384795903990379246991094260784874390226802565590642278613731389567371731173117168399132437949267603207900010635364039467977524478587534391481871617985564026910509048182160363501934800904494663451675703135497467085944041480561292328993373459609064160777520919870417893349093684126643737783751433113361119656634406457385718498733533136340890910432667803264101520888206908265153606660143297436678498284282452896057000803053361387610127959466886792169781556356457101588191525375811707990280855594541813538165912035750037596514190170830344810105525381065948591024693840214326979211645170880497251897638269716465374064247319162541091847897472461299748132532748966264057335741691015448649290517899486588669564061903411878815565994926977474047180760066515091202473703288075328498905941452096248229243883907198899171974362147366879301317233458801417884816639357888546718692563145323002915831368798139429344048756651212854156424916852790961377276538854816398683386454127332796847898692877754372223647572799800685966795846639928997368479564597689638384483276362905848384062617017288382876861710100423574940238539698735450555152819594959172750507274490520910400125986940070309419753267112979168560297071549820576400587285201262258559013929847171069612060278447311848547899675676760195046090601696679711953404848279120142248438416738965725207344508281920464835750969962402749307013127084532026771198173039326635031779838581678966445875906917990273895097631387915265664996863243481552380937678098030479598889790386363298497704784072241467053209370563337801359550302632488138519863137912066580146511098316782516672770199974259270707595755142900811515165064390691963602349940084540939224086674069055293177456230917057437283306314850991005619001748304525657752833009601048419227183372059274677071197791286272984123995868078610202215488890765090840807283647555956590432873579670804615095582078306011066608343222267640140128570011825257487767326791097266481613686830090535475605710159582242993604504961777395205828000632738772384051790225852402411797486008110566066180405286157956017537044694280974654640423922185992795177159259816568908741300559074813503034451989423899628417470564115939972081059960272916260370835177213151871904954463477177323284542034146523243400924003554531407539856043871585567821146254886678730868277283206738975399969670270705357235855673509872580245576173156893199579407092633410657347026833008377162698397782075776658199793711720126803593270943530964186042735816413989032378579991860271078635594493034927975746859592527255842597996354155884037751074625812897173417661965597147605408683313681632450607202057753108315741270194429306751549770508088205550624899009196303577179171750044620447076160059871626380409261357798797238886209540172638516630883459001021244896946040463569985490177697035090065246263703901970656006057928707542301724160353020624210147771862137191156188685023340580721103316453979224272178462281532036683504581437690075042469937647217792129435355477800196130654620032413135348133460283568632887171260004437600874361865475373844089735063582598101073372331006456589364779781909500228653467705750373134556928816521341312759774981715203725736932455976625007212188526797069348051845968057713047712285516380883450984439591055330764371634474465687157894714007870182661263248728494792722897730879395601880060823547922736941277506607382189825461744146280044706935689228331789635652696748934789515410091879394922621631221867409799341085460338003541661295746344380343608978781543090482916265963127400827371072716965632628324380067798276942663571427290802117520041036151578839312653577139921764394218584339575678287473142698496233345069075093926292445016107539622683442282287092936292191662542047644420479241520247976264614014736905588938798332708704884238088553084029866036063194974043737702312485435107338128890151688063616091470974715809354556172802700398305756414091543390331707505311133391182280045539216158369972353187632812068502098392695221350973028264087953708595736432495954464931341014188842190001804695160808789557796935372319366369684240700713293961715203304641856521051278176001935411252527715452288708731496007004180961732156294898904965019665927250529356429164308352570570019800175106168963093423354882338577288090652587512681530355018691907364195253792023811867575044621359192373830416570698485159042490587985719136347196604350030947947482420333936105046508518845598509883189991898365608603683475396528805516657692023227539690669435619075795996112916683412302560432434318166992650404619890194931798810080940642558779059666549436385111999263520976743594131132810023305995852194220806152820488903939011743965764575574517628473823003793088417517265347646969897989886657352367208802201206129881983456526479431789723520085817907894780861939140327553331149401804540501664958848238032953643962801391070721542019976462059685608043123542161090676295879639816867657472859677506259141691026136278913538924643038623047981152156129087839747498526216775889494448345297296110008856279724841335799954256031293300709431187516928553728421218744363125264516690302587155966180992505582675997743701830523664697542371420884791936464007234231385031802154873825466487960277510565551807761835836995921451693866419347445525057116314222585758461595674568381646366108340982230040290861042546319303487118216702673459033946493814920507792746844677718447847384855101965160460044266273093131628048720622568714524597166805030043687085124656451550747307220964603537885012047619062182354179115893133498465534826585545369217949694681744904692549713027335816029889973483529256352982012553638552946197987287744926150317133040932200725385451990235433622674622006793645624354469736261391135343712803978998597021968137100748250517279200860221213476067598699220196851222460701658133666310338196696748456899228411990008737634582951924240544296841779803520072438503120889698149992634784919854931529514268692168847069625290824437961238183937088605488913127533355991114813926726741909498882944940571731936842906628773033976495670650039094682769845236147069690082892112694317361626324600887106444223162032652969117824165552486513184535212779552029490428807867791071823949198747454684193139609393430133558272376534385993730608991154823997131266451227261798776603258199355580146475398172670450616311281566132901453594817083700812698633093265675308003203716102814004802658890869144790303358311323112100382570919113234456196065572806122903480392552845609433887859741745694400010378687807276260704047128524854478959941271559063558468677096470980587769752963660021533843364424982004162371711192241195024497779952841769394904504012573486607683051690320016779579597641380819207220176592635658264865376856193930217932742373209319639691015352042499200792255121939804103210729278151776266883377174883204870107730810084670131095953735083840214444218627183360502104214595185024367967779861362304622454489225797635407438119647974438096479719491146713429896497392006864463091300781930499417291870226612342866886262407087888672569003806653440196493006117319261889030771102554369514142317099479612440922591305035949135151157444232110366464217444315324405861708685437545125736649954555485685784389708815574165583568665386705484388462445458964203254124263125707021974112497973234772521383703233191003012779282949283823459891145492617799871924346136393445591663878305212581538104651304886106507578441011746780594060570512629247220443355596092874498695156314244957896841786375205502794800121184252478194293040919538877201180583588611507239231092787789585739192141968467386407003932982068863411434685877852874329751717789332205357600106819340178198527482172494615632706539806800249479575721114734273322753082553395986531704820679187669769163981219714731212077597853835058704996272738058667195371656560963469517256299076112187417969547498039367983145611970853821111705893085227726777573247998425587192615845172162898579600534046259782525738963827268043427377656792398811439169815817970096909647337674687590046743585571362799891905033742988052814819681724021908388975360977790479336198714899284415413121765829401890085574340818328234444681021644803797501994075294060214737459251830428212480334845840811364746295236037461656205440041586075337622032729806195260934463791410949876936787371102444240879460536094028936531462121211722812403862741783487613938635099884701091336994433754864076823799242005900942174179084127630834841515853339929517349838468982659712883553239287210501100466982867293226924159847200103109255919356026569330624910537909213669564055485174772618564942754480516028459298022540674659953706681989701081619613239717563839621828715776507940776099171112452284557362498327961957309937678139212894837816254038394717834213518601586683805170842993940505285911852897828948411904599015912580800574943898472462512376087822266845820450536126871467550946167740708324425774864484321206606679330405452378038546946533918553853996913229995178633864960479772857097670851647332055125317680572060857413863277407256321770706471549571055984986234275621361773347444088576468476478303576132163342450344481309817866348998098781579217929906829921592619014231830913760124208665725047335238032124447272581704867423999619159995290076854481611655470391520461435434406121564131083092954885644035961731378966585495893952617126473079254943603631090346196718081244001038938070479549471894020451955945317909127884190853120101639174963072271964463347950038091218596739538637941832219065670730304315048351409914773679748935821661165670080624376181379492839099899120115932599205990231071066670494531726898144857197770259896463179779966697011439595115531457480542114406395345693891364594947547271029762824297002676461128872883981134945208768263198957374553823540817668380261375173815821481004047278811620341390142407758990500962778527626916508645063020187052231568850890244718934129519230467347777003967650684906827133456528750168459966334560577073925273273001843579893563685380781766051558130016558413016487830619470273413598534275877869139988264266522517471828111985729813856920612340324903841762668201748088400212237924632799311953340812085628644578709714391021183568536928902081666437139912316566047740215707401032589221916462056438915980196221435447046472257319880342481856473355247700299780010862608243616267838002813836841208548161180770388009985704994597788075010887368454502366484771790406159869745369450366176227353350634237606911578805689211796494459215846883487234099694354266492797063433257219833386270764398505478317831364083340071587322147454577493337937883263945069250567435685096934097077435577275534006795847870320805412386213713733952834869231370595779015026060672947608698931606064434692202255706583791102199932842615887486274639495776154441700436042633378013816720404244847425509318892684103039897911616760900327626832070189708408009406401599006216327555265877961858077724992382228592619918784522873152836942621084043068469620619835293678986171409472111376058887581698291903230291073120700472682583677475850340778777008581327859161958536886702720298860886846583239140590072251041795594424587695290577646810593497872614766412475836794998361645543429143899416646694980817285542360363739700102629924298601958634328193983640000219252333912809368831755505798742839184949367730690270592741906013626202853144885763137007364715555459835547684747140312217199600389195672157493204072497249743124292858452147345906496611077707529151669197798311641767263189903586864384451973418814365489070821314529744019276057207156154512572619826058180679394555195368059619397175222495831236450196871517906656981288641148846213195122685964602055097262425581920108043754054999760092967239421406576655300141724602740504499601536561945825722106616671771045030587587052847203586905199132589869460604749085090132037378330305652186605399701940701204841349433297312782631216500332937712235617287101413444281170197009548934514555508116314693038440610315203122757427548356440832045498740157281893501313936369376732690457975442322712831403751611354554571133404093497966750460120194730103062354404874140046301383757909911785394900054199592471004823047521511984545410888927246511805884521130042792316113872968585376313490768078563131452636754126455136587681655553577547638200030811403288776787592460113608514941890002915001679084135721549919227906123918702377483368133933536733607295625820599442315854680159849385941140919066439786900656075299271441836169297797222770792849346189628318435395185387867450080941096035990190614352272283672795704854001396484654641054561117705143546397222255542938794585321998326004917942345726283076258140518662252097329346832742326240374719530832902264618384100228741029148803652159315742648601333409525215039245975528958848969839001826328576753745939878501752671562559405109944091929756016379783799303473245846774019738808006388403886914731024033367366525057113555772635958271427161719532890929509830689619501387412435314558946962756833986343424341522560798830940153314088837693214087626488179409298193694698042349231360483559423311416337656621534903052603979830853440772181339009708668183036152889356914898928050109356442541141068160214015615104702055951600685457098568812352693858187480131867890904176183937385106219989272144847480323954692309494930739526175685774785462472512468374798507666621240616162894376554180120921307168763513100693534570402214072838046081544487748496246344124405615142058364032111863855162026463997442010489678918801345172057982561542115415208297749248706960584692964643298500985036301411209107485035967311063198438692120048884191156916444221435041354563511812095985813516086236010441120490351914299512843576246778385052457236893686645322219745906144158047271379712991875800451136052859774148514640542597031038233886278351534743938905836538686116623326411202246648098666889486544325746800002338525066954375580201464658218178313852240806278206521345558367681158083621105602159515642251826882226465347734802046297820565130647008384353965339702480571542646463227132256197559723855884962212741562528159634036028356687404426482272696663503284184390656738317298597279500776842074235511259743020662716077222420075870127419286178826172356671784248436812430484464905659562206062215907165028297913304436669277180669544121224482168709746814845428521331381046058942529535806691221053233812842380138377176789276609785017085721046363030086564346872271053410992708002146408291085596050581092722922301610562370136178811423591346863255226037386469506512771438136208713609010677316655886597237604768382529995945748550087941013950637637296980575197730085481608837464058223374369674566875535773119596588274332553365649178047184202174802414973749405010002209785581063510874747624241995620199457480783320294586931156573769655355509119251029449254666464980530008797004616053806250479673627120021485872037749606378605255658852037068861376657417120871418616615714653417400957217279624087243357652490539080036692176576978061471927692966442507536245754958893400378135230729948356921627867893804191483909230268395756044116023845232764394621804391343871675170876860598118553592932787446527275428366286581047994065383590088309403806257647282952991461116231154098317968880925496098669032338796706502741864163744687881556840580169334146873348812362004017374830375755527551422661948103440913858103364476940992513314779995992624443524431328441370979150957693923136744050265969436627458554542110168232117487809488651603007134909654859594975773871457881801111651577095249050114408138069426606677012986449135037936185935190034339928355197255074891514268367974165191549511297809062459843190024148437896474807915094388960078324054128512542789596018975922496624461833746919817890838272066787326019378866605715370043481991086678766172742563376618946082114385515597069349934736531739292390782090164521943430066720395958806333184612790228127414892107419154714836962804005444973682465151272706186154000910346366107967016053071990910564900362541977933396392357806661271039488974520276313749025170582781753624545457792536473838122399550667099155784321206967033243235594033415378104360838230678382777292554057763807825724083609707880740288329372176799850940872855204736645717011648847675924609721993546338342636925757942333404867564487818606128369067962643896474301968598253184192102387775048130082379813408711042028590455749054672836907712259639767243461437442854568076412825441575994297205669527756447817003193174835493203232082508288043081384882831325252285413544152095362187270173505286330539247596197515216001051736112861656002265585072509091615974569852167379667847371955869764002322865743404434606217663665471664798725032123463984707887296428919318295543667711448227094254976182039807681802628076495880982005471453152149653389682568772352370718771440288445572481827094770070568954479551201942592662808177619964403378034515311093677581716378937008802272609170476399864472304273321655035792088813066350052292589091608116824266966635812952732688349588467711762549225097501920460046727323142665643642723197989530582039426183932988028436997402007746594274584905273027254168881928193736969999604083034771698343477101922190017320170144512262840091984787209496222923324858346599725268535862657880092388684246255893995791100978134642628589373784526536758175679932291815242615363277395425365525543784867518377644722555507721150700177407967050952179836470863653736095026263971401542758806222074865397461560638310376937384148198225279909251492889906973114841915292445598905017570725354722000737186741325197473768173050236614168461730199067254329540777975561927946941774422093831884533439287247799344127516489208471189734684541413299508918409396470970419291225617713575891488417993312096879715664032518516156585900641663058827346254003887715257282714646346088555809127297002603199359281955151144721626328742740545874645439016088318852094061283640736508898061678887271843633448206609059814814313199186800013615079184472532341481741571393302932576420086401457864617912083738993717947739782123175105549240657267935961059044509155924362182039794271285993250822134227916838185684737565247879820442431813860213646017689188107680272116449400003666409698646133563547574711484885474918737510309313738455027885139341199900323583089718537354198677654200251136701990174156164887549025692778448730602492473574650408896607170392223729067917383147140777746905817447596727209503748282331345317412735401092472580719910160865725920492481940244471527925782629715486415417730252560241608800258881667286998032673884099692243029856393399185523988831240655458606042178426193098760863399863653463919660749959966454552951441584503157291287617945291009232104993143706937434298977087251198465877270383059854179190402853877652107416209761623122988885066850691624913642157930543237237100541814350089557233674156419210382670055057385763617527159145390449598926676608736490959048343523391744798161422590779383683009679439822505349836722227722344146263008000775193879676997630235745348139596247469194997674355801806001974504678022772404156160209692980750521684228396479464024316353970813773163547986456221194470034977808753327112810266664871003364721186415844272730495165262964917926204718480502967603539905997548760666819843646187882508886045435339323426124425634166965374482309803236118231241118233449602059036626384475188920345386484857640541657168424881181947886108815524313482005364742569926727929511749719451866829696499791673988605924202155803365576386843185805583437114046342593751626110126854127441043107239069602888400777176628760777688364713994867846787835153741474644362690276414458705656717618030527684723001738450971672704099511978615987068650551231355399640738703181574177599104786314050178520141749472086430955061328508302925470351859940601610893440234795885843251737822062686403927708499692603489186057363487590531616213379570924250038672510467721750576135984255896432456177229531759618598763388106013126012077378659935018484775185008771983443938540541760945344542636843684824812551241338271398007321680582716612110560944115469283129489212803727776696004633506561890880049748315215893349907958280417488206272153255026559997750159326608041268924783976318830886070636450845872465183679975250237372380672428897877278365762200474387520164212488697568162458271720805231263578499153802418684973831197363358703550537694821399070673434489952181306211424320894668025659411202163124426432181305104079193475730228734421927228504289319485753596434995892600391990604061960594361737621255715485768265069919959906929787361484757075399340453850126484399427257735819383557721232930502785462706368902838004637288512486375224186013778335257248681935568292052360813261202937700388022986295244767006696536882491869508776461021694518852058121537429428124695966677393819756314183399233624377159386806230162909758565305685475407229503103406727499265962247880112058622947267569807963814192814013656711963207425267085193611416238942638626429736193407667331410568310634230856906125545199317989846535121106432867616829583592752354554208667496595958034789424672038972448257824039459720204102341720993509222766523693165920461121745166440916922667981343934653401120685053231496162267563196285050643285773763032465845545109442066108177178845007420568362577008199917552538293767533412750825155586715676123034857207870178550375995264774584449339035263494594670812184087150513025464567843427649684292904765168584966458647582828223783402750996747668402451508715766407108159133170629155342521122651300980712416542740173260211891207603709574185834877113706952172342057471099251757598495262643568977989204809962314377070328827781207965506975856771580044815069659614825818793860623679377694295739524807646004196264452229592280223951029826657846708205867434165910276262143320442342132023452602590659106286172315657932707795014217805968319841550253972325184492316316229047059966743713293979343666284799718512526914513683404458879835728656199853825360393640236034179398544590008290868245076638911600387934712100530779264707500983215631336420573247055230194851664557660142668277711080684981164009485147663587143854726943344375543442700359669800900955139036049755936323955801947218555363385469496502616377795646340256326736899759121123652545330075818740368389690266618166129508340073871657438401247602150957897854126624405484799788469016893861862962862336622865712110798010398778994815932298529419639451849962977553580976203251297750176217337196028910360776004088186107897503109848069428059089348441841357334644137811556348059575419507274891443071545146724631010860741002318419271567820152567174611407618952833044402840759353985823355054341669104776125948349664748613793173526778234007097611678245520269935714405409838209575750805360157833191192897843849627458908841582784668391039019264306507458475673844196066657786571648862227366411419944612524099259611044128253329324064782063350924833413985290597595078665450688865100122774292561874176631440178801820726954329964083679941840255190384760822513802739324387905993818917447689176982218086730536954034788084541892199982828697595800193834322949813464595282154333429884082230384286294419640361871026977453047089763414060134365528515162282201817664898019615707442130747400946421028062519471845550479952114275381841757429343343178411350530236227431507761541158204707162580769561830431859584033723181836375536293464398524319280004289088514335900144828151111227442066852903546739121393495245147764677560886554372638442521666205297464278703380287307971786643982379715461272117122339985243116281105568197831305608523021708860004351237548403281446055750119992846021004832333433551853299210404945098077691941463623414114284125837205638688098042547653594487863819822045251332120820980256939424376136878113133625266322403499270257662063859024759087081754068115174611197348658220788797897153555089762035896219530196754827339748708611820206215470883948754818407526223107223103971314426048522327938077653181104492520751984942863583623289714998015277657217018172908372701599322580943392492348296204711869656061964125312345752242256945570613611434926029216413471964462334658631436613183191291009394457319249509484669952180794583494264324824722729205459758998502683157464933920310746080213697777231173796899491652196935111545039280526845860937590607172366155270284959458824211259022588373799961243017218307176659041095963950900073406024460142605771792440871892846179102692248881089388318553166728246503287011265957857483941686890714650353868777640405781849435345801798875309491464715001660496881319417658372199211485916595424222719968992278728771498975152544704189103826421797487515016430693028248356018409515878159141035920608736516376193132008808760726115179095275068915638074411532462388936768173976134581403354152376509817997890838225020678630489927749082358901304422416862802677475334367693028518135434562032550410947327514279461225065400478701478108165621473737391852241930685520401393895448995801471195059846628959223817739301545821865638804866818174265673272760587591148143063162044810939703655529376976968605146324498675866422250473585308002788011709371803775468012542799962878878444231074984371706279925668147214952293834855548997055023807035267678823555876775663409574623521684530959016595442010063949877728943409800188335710797720072112481895454460735183365008818195955434182293782956437955279835484958463303169997204838311325718771939694297655075459447433726886327190901334489541898653242321250733126407740948067883883948987190747616124550081684608837589084646024078482855097950369446226245336932628700902482544171951063424336946355116833245542327341533744566884026137254675273918183912307202932340694426276454229359573960388126582451247942536668348112037999286356986886558182073731405574769773222551482713985877240421997736898789340449510783681833342876848222534423963347268495079993531746017447148634503998356292942379708416202503056231862901401264763055993275790429755494779564590601408921155674323770178660407167334112147665568860949209066624661912482963222798076632705513823538537270899334554715549262199771188576941838078984993285128724347021178424485901726891973158701411300923219194738569430954514204536371565925597043312940414675380008387109409350260013664225089156261426105475948894059722084985707288996407899202894865463797806496764586468461281799975379937721807244353146905409455689972350845716254116011147330449268045930674432586522566226581733287640912053930919192880726505267256560282869695241005468546841925403902566990180730377716176259459256743285422350785094683107410425852153498953389839508242644364138800486910183364479430659507359549822850569221940848456451620972181234577406774990246465204086749172304232305436785193430160572496208426183865741001391099208017733173659743646338092108367412113366915540873362908421249861260714775822644382094580285445969314091941720677040545153852925749207176192106390959315560222449501485663331135045486034351226583294606267527906380272573958208427463302183249986829794879347057867092311231217232911626298944809567064596648379320347690778709677165299487211663048947910911781810979865205626627892147759107162563077153725660222022985658729882418148402729460888922916319955561917554192233364859901242149442578841657988040314429389250497578294826118081849551681652184152932321977212590331785219987930564614816985135589063549307850944617646244512501466646470326750195357364407024160936142797808863796139844708047716772014620133986093867889038777759006653822365656375487820749403995416209707487071812428723086425004802380184946391472245406375868827592058860978867227600624827320864627966347290923362453215290202434326572766734402037921108894699512863734310124062039463859537125208156701152371016850560736731851908795188707140278723515847157125451739112315542145986312211563110316034800008160500669125253232271190254648188810071778441517901579008184900245543684850756790282256763269864802556723148451676310801887184047440466948498707681659679404573923067463118102323481098811610391336144010246522563440454482941809749531105952037205964934404558396791524846248985000945090498012355164094521018166919532289883286148761602859769319588393420624798874330850681816476051614290101023021882353074888120716202676267621235705879766393212634180752837300555337652479839436119018634236438602685510639171355357811154532335377334497408325605685735451525485614759278543637153365364085743755643159706084068723239923871201429489570284184343882902450384669466867295174608262240041129305745983630688023039407659921400703761636422815574862111869392641149310378545075040679926827539086316510850646768041759580490959109500955204131217512739668927428126586566014319120117790618261048449668457475640409346222145089288223394606126212477388349565293282546945230924206088989172018232342710494734265504500153684041216923007926641563794544136606164782662125392235196980107343033331325879541255716793934888887605541689127769021574479974821390332309768755623628128255667079490203351170114888912041822033290245544675425916733512047460857308289829362405374585574871729723117824070831151887969206181497587140666233704028953565003578678648791287057505384198826531716077469849114944173591875026448864259544528915582446339794037758122308684925897175884561068922512333185304785992389775856026518545215679311822405722959207333447977999043802026176943433209347191493684354774583483875636546521129298798153555497159605724242506082693273473099990323283000381336141640589300637635877685974777824089783252633742135168835977702983694667711886111174255264899137634886392159320118887813525177997365108904413898670384823868093062671743627971360402436707771816952440159256817780303212137998200310699606548873790955680506113757280177193980877547858486641513806030978769312701682203795118914305993560018691878522713524291072810709512313032268966837364358219270074776473686762180177518451754231309656306499222901601321280783701064238588824786991894951877800872640962996654552405105122389441949704627248896171603845669362001263994408506759182108169619253317337032868536931007099074476821063260428313440010342664710138182543641724829107119541536303910782731397242056495864287559411962090109830850158028557356746226868715273286416326218924332712474749639926197012218050752977842908408964497380722245870363783546856607701416903066328346071641641501724430090052102732957100426668581734425541343606605464657174096936044161043070821844011383062625271822710873567857742945413087432702068953601086005708376447341669755557536268604415584793665911758751688889108293358529029031826541184055202051990903639213108322680935413610708373891507289326935828242668368286591163173873907621139170929260237561918539289458494449035086337910900308882328231880919947067786291831812851696390280805018838201356501906950176595315026329789042222063168708860333363855585934548558713393777712723048755814293074265386109366564136478244769871781765928455078695205363538299342384282061561834847875631989403482570509602549877746580711852117314370565565028696490275572202421586586899467404332650310364738298251154039572830148362885940334793886454157487650231509000710184108111829733501119398116610584642011099441955230910714092892337564560236196739216422460619576650590462061216553490320690430327546402632075938883949966481536686143573658646618536590425616587284288213713379349553589348909066442119804817963862901048665774692415135776216225182079982167074824836763935278899611776634194531505714462750715285002868653744913733958607049263511779532179037818981847380754077646686762459800811154422107964459348045673606977804976443530233170539686721348294852183632625127584206041106309690182990519813505021391798889038766841432146693786707115745432477069259165002852883578973436274177324562888555006250563566980850203788672414814233036508698222585157076699060552294185203137245337796304390430246155039586528237585128080104875080333384284543586934255316218298046618387210143192277045835647731592183662010220566025848051014526747386461252905926023219920291200034778639458962415149491010314905324726603810691796653810441633497432188857096369972218160345795473068899540165617239191619165355100408961867646596384653565349489093185181773317892416808450433265900669490249883928077307306072561822547164885732440220034717468493544505314102286666388138423959033580123959593414457194948121305045223380003321601981123238690539546306120336367404968666978898541542270539331692592228903127644131304438539602626234144083241398552230897717860905164585560516429063572151428548309695704001376111949990856895534641636774698407645426067086665220538593378010117842240274564161470569527157701643313932876857696887705640626463695081552265990823514156236886852271641882729016284522718681072185970917733589372808186928316857774161699913409661245242204715464752349652650502311321476896622801776318667281194072455062172253491726176002585768557310545545462046875846638937712837212886870293758608873292251665199658313265628602572170040110838974582457633337119080217685374059811496019860727833038978101926660733839370224915598745948490119083475485164487889871157414231713326245298905365614241692814716285839702917253986576552656116406552361909233480198919162053769069171957509069381534490340646839523308989430964503242827458552308492033773421283495769095119236941653625248430530778913860283326074883857175888602902577111939372957662243053956105356381563749546738490541910383038912786105670788216380296663201895914778067134134675974087823424076681874986676216670445514463532013456273380114481780514247697569750890070143922531490177028043476269273299294379058008438813612260063018324918211215466685587956974672575265334406862899871917151983926406326671615476627367897705842056813007152592102244003094193962910664506910192164703465337807322606190233618142412019592080161610798981216344370912694403780498130138402494245091280715681701573504188548744676683177708882361901588356841354838351150432923810123784662623612034610413635903162045766180952527931665003176068912341369573395420551651391360360281574509788680730920046259955691948053268324469237553323663303152435044475716213732680650828359955554757398923845667709337265185878652867004396969873725890247761807943950036899287475165050029674766626470477550656435001122471291922659985576948170639507852224119048646798581283384690351377185531024237371478875860882912190922103252370541781678747945028842724039684572788839639195474423273483419454117966821691929956465742938779046890745191672603531412913800260824811966334198937019239022707949580811508069243641619784428264154639210989693133067540545353433571951869313493391309971748114373683688240857191471361128954508511250072514728726759830957978449102122122547786052853549390625943415173548636798689244387767738650489725725697730390263450392915721634381943508078763906001318796599705905452174617904212650219988670669105746090709671033128372349738491032813825409106976166586655161538220015981147056837324899599717507776439498900270544256803553792541065503650585052348312220166239745303866845276792734902205229066879557808665279293209674358118696406990622887566158497749917998855043306241903600431958176882050743033347235132521192074908363003029557296865819697960856321945415079358373414225515564499038476474585187465315165468392466669788696336594877003555839379767903231648986449267580713531542731184428827601925350369203228896900490641758184616573087111736692112027991738288833610480497622138167433861794335183335648132239438928186252864755528084890058546897917599522454806346282590893326003267934098319156186830796517919345647599620633143298843065332510264366851825506944337980137500943570953087058096705996461284272640629422797983653581003383336961519476580312729201981266383894589216775859659226029678054768550311947101091433267376559692683738954055561210918043262892959938628910685532652502148874963731047201315398496017368620695684559942249779497204146092662341768658687276700846187149124057802763811299917669073284228937668209413470179126739961884572259034451919266156663790847730247249398076772073161130392426679744349143721666253958775737810522501330054258197143191423582735698771412787395132192219848129081718243972436252534543005689389654276955091524128275546684364369100739829410140484345620859561359972267655569802233636685535743436489452454885569192852956571343562535185141087442918675561290267015605231411966131485643634241323572716568020618194571879732371331577710618745515275582528752736562941637243081925951420058450626014525336737617946018477982232957977447574025025962872282597949518102360858947137365005725143255124225163136990227232586698134306048349522005457971695502078314626221435058165474417312754120023282380931105883922566055924180853064521777121177275818283047774880225336407647784068277703304986409841101391929398033590685455315568957413125608675759571485984088224804909253055258874334929095501982321074284202169146299100291410900301341370152814634797314314598111314590773884453879944123544905846577714608858764966034507929400490056488667177686206098103447397129262074458115092971909119191826792798558446986373327811037838923083832492450455917767352577576576904685578042262681352923468169670386091032480448082353991225163044384063043382372564660592639522863285029254762180385935189844129777041950776669028931702105468380582777949928037012667267420356545197820575031689721408802229920939726086360987773254590797576025726973338260067108601910056153321177422408334169998364144251387424935504568884703964272650930482006488448150672860690347134860736274628970072462217519377074077622190440676377297647354653071150775529034148844427311659336127351409631373798109015688357757670821582619149306272205810854016300740800182619776380846338044582042412548861736810180414895424223845212286660809158625500509631798388433598615709050017921729067568972812022087394738584950007317097865194319779918116178428733938111538824317510588993241969574191828448708900928401169291882939794180225140107133615680255798918765658554473896885624350426556197365403457492217047386549041488393754465230408507585460226224181235898137054152261473264125902054219001416616910957881924593968116363375582141338265153289941010639943492610791693094983135375810868875484852975650552262573470927800177388669952464733310734559913810453574639792812787706280746748340405957892359261194388088981497807112664695870215540542232124167392638239033544718763420807824579148401433915220609373223557231947840772098594246734366021024841692007600981535710798203698766171291632141020625137975492002396723771716903891605031366500749353307274571443708784389898539862124840756615430183037739259519094143918271476135183866651726543337529557756290791751262037153221530782467398474713694785394608290585507379117904736942736774209042946839301099608638465778320792674025185121363906776486589096966452463020752956897789922893504122744532521910565824398725112911643507704075904554215499316333590731707614483974944804073422471922878025843923320057244131095794693235718578381518387733692178264782070337178569695404950513975576742442236598469339479168724025541652394857236308344214176052931726656382176814098537418801007753763524999051538522645567784053939433446851018696180600867860968624244270111733920037957459150551618619667246516014831662297092159219494520734070633706686642879587412610302923036743968136029441296715167566324495211153884687985143644705552552960620033211091426716315472233902545397906852628470169815989738492781101228701008429143026738050312580025181813107703907659021476490081845828481082052607423719980930835156984041844005856214240943358929497403724282996330415033911834878317514562441660421410773195877153854173990732779015906741348111055266825608241344287764648284547906402800559366350906867986028594977116970417148635586397122783503069754059581363702692916551982979042796606906673293205909093534570852940203362481869034971069680485836039837836549270446840317602906282003809764575606941727307867359372111588779648506236477197411775251806854033890329245287484939799513463425188793805142694774434350460312222887836328611670353959869153408385487970668160847663073176234052132095556472344091239206109448840016192284490214958064890432471304435696844893731502452685415216956370040461541536935513810429026485722765608670738598290274276444948232504710557881269363720470793222903325163360287866821853590837941829609079868243532435492506221936447575085916857532314057450001417008330650804013229829816393000592227681159407446703110350059937556004689528899240204494321848719068766038081261911717717674034940680230578305666607679049797194128634684223996122257423982250742111670163858178400290045445956051096736043204536434572094046652279106980551738215342714492717224818699882011249160131907412501177979989062487231499255496651216416751707340391023863178273209380225742452118006982100141115997522288505984102238094486244730148619031392751823372290468507439210527742489808749391875718312924284564203822339506017928096396631389437820387228631165286647982014324650233747547766035884779544204577976425796646993787332089454138750733739617467474752965794129217909513300356126547618518810639986076461467782946741502286245411348200669361392443178062230542824843284364963810025647405182582748176594238266532090419974217205754269024207392170105864680145259954347179582895792629299175374189190438319564964685961935717488042089555222015693076966944210962886443642006571343985943735837152646212705830013899565959368335120420470369360008732239067908866652258511055402973729233719334376872029368474873914721712266810668298169804998694693355055188655900645342661486278351641735871341920250088745016908021309233602737262109597969914451540164042953684357848465720433305636317587664616405360763059098486747327271401527685185377957267766689345953001988962489471823011577213451950690091359292819441883904359149963123413267874266173655439392382286586596013741547842000520430154471457076341276963932722940526714327450403711773556005264533650480767696623309957454325583264066972452515116524434462042633847947706388205557767477956710261252276058083242637431627868045865399310247661492860548378038191142147349710080753602929214383123175366640314737990079614265409422019036432877175170045821762383309051329086468690585579229509591655450021041860906547701845883957148443701851229684079467898652086321781621682705515315040822702511752055484442157112740634730648481990993501038217909009729709146782974671424209780317254109021245357079601401660517496308707516676155524100385582206791199054457056277538254996982757588125548225732643320292017311465061669932046459690375748056162790518196177068171237901669312481197125572939210383037085199672814354813115537376018050564691757392885452904322475466517775046781921600510562722079767832228028878702061065064528361904085677693656450131645673520249253841313036606260420957535805962663559292425819802519253933076326287362883773853154343511489272811641850155191757786232338086900622821082857775197975978037681782353087766683908661126330328728389209355475264987224228732646876992184480415673474048899387957997337959289827774449071715919815402625671051114164942591143794567984215295315732015380806239766964418041372305352998837559466294697284838650857408520278584997911234776192796836528035111715351826467071576960748495260066952416301032734595337137044447077161482074954395130484898582988068598463825317502451477881774623832253184450166648156666583510149909384302135207623331923374984748217034728895770136212182038910799738676765024093246141832237113636481125383272039902872799383043314329232489668096032504684597957956094847908964692243939202137110936390276711019309614231142827193192022821916266289035969652856511115720431078142902614231166046718208250452123565510494803265251219027752131212314694885463647378293031634769405088552195170444808069974479263883277463326748814458612322813696200180540637716670179225920781437023580107416391638470309990644983157433275317628894333085274293040107891609382967011155125298880594063923490015074558898030472788160173150285573055943238998567278080288120541992507746784632251696030624130356235708163001985068292154134767481792054888482262022656626251008766603654151267193380997552428724694717263061654108017907129226656410415498645402057396504623923718082547983409592323715500009496826264567022410798773813165712828531165221212740925321005926695999288604815051384013757186821389148342206146484194640284560462333135725464398849330262679189010490076873372896093017481890518500116581839897261585023788115491962218079561231558871550124156292586021613960358514711757507872899908811870667969919824964408442076544051020150176722850286739758506382542455044940775584247570119506965472171394488840772113782288869565078366386976969452892370079774681993616452968091621703555997143708306656090857703989425764206368775344507012767245417647430113576366779564469141918874787030362121368328385678485973600905066747191712227855773941224225826198887716271883393557976765981824595036567451425728820250385844003461279649141164640660354861310724693758320017297153265050514852965106478728514518095259968650284331523973117427361381989529520660281005714994444201641629264063071454691691868505869859221201434989504509251768347259441770672502891399550511745217257733985577141257776608378950016484901696454120499622354632217192953204104123057170312421605606065993054631209431451338699670488482600330869327612698603312799144535310893885811363420538576672837628965481436819053488802996687026056763505163026102617470234581249945355483572119042818556217987340792927542835601685644885873843273732860437779990622221105138242164961002919661875072518160049378938766522538709633416037493719663079166226749599752525876269430505213534611030188485192863440460614081345347854729497877257931050049522145906943930329585812028157629186368419902174882471490863829144373619761709927140612584608307645390605859325170881116486054325869291459858416569484195410347017169256583183021322949629692385796636211096998919972176658800315344916418002132887725195364186154788406137645492634220826811659741967615343617116172063420771202065779276427718431582753240227063327640195005693696931968890180548313995698642177002695071603612756877413200540106598445474795413386734935433537288540251973337002908966077664244221947334244966709822913331808451807114241887403888563532196658868543994673061261026610200527091069381477147577922521553317331367695325592386783712105220749408663441098782906279738169015289717529089909735746188963201655682372272957888319015717640654040176270089506193118301343872495790146593529339451757767477815335095913876508936538291551555114302656335486120688491661931256841911986314076323783514813633244309809988247636055482592893192824698559926265094203274397135894308697627993851492346313379619333392793382312702575062082982500239154797906796877738074630271869761906938042152126157465965028649491678278043005737495042043285683083578973708792848753672253583026633607643741674067348483040603684560981810784460839510130895373972053662036929584913511730952302677060907518818945087964726190393485442091635223814066477269451872952200560758235057703804972530685500502216543928669614561638725961107062008258049118766656584649063081928216777009851290049909901156774846749697949700547184275243595637753799324859349148027602165865363236287166716564912375297875279722659767553892335861379376447239786115182474914366014136023817672690480123631074126662458221750987492201994286175925534495888576575707093677429774235701841148986517196524757989408283666364485320087946823643592636861605491742904697654618290508778096031832203011879543226337524071284248431235896575282022005005983021441686728366775591443844241166479334198029949282072075903625458584433182747981474554941365762414626155259055066234912878525582962020311055261464267581396579652924602226972625601733682656631657519418637781484199197271337425467455260744661995639141452720460132250128578613630472191881338845739612222567029640649561290862820611199181958939253927403264177743498741646517778173865240300591227933437077232936460723213824140648154478426972003758547968113988566208734130023218016584891511016864066316407950356825235209403671735886996994024599217638087704060348834787729715460831687710217821778012838812325479871667006748821473276537807746816794549576129215466305768016394077418571435333351578335555775930910655867570617063300865971892465993644921181397072221525618069954777422797717595484878130260461356539586888468686797377410347023967537247831194511489231234375955910746992026505227971286249006622539930046465952318384130175718517296053991569474958689867712227285364050797450343655692348446190644947393556867963302526975961871641731319099806048475327314405384563611034300846119373290742299436512252290323493145693530887741505655375600177289196436053134859255081163132484223443125959593667680801433402307293927285139290741532242883157379683580216250348921972031289936268869664238886237938090573608767368630666788175360310088366505161182005175406719078430580038009306894111028180870040210212374918032364193109793140786313544062434162913750575168868296316748747895234924975711573932897882454594690515750124621647443671051569033564896584620842099133049038561671010309706816404515964795447514596758829736326501785680580297992812053122444412151381130691840783784300435333059087895751058468308571122602470402173275544341328106633628089541501669860080991326081111045182473515877568045101314647453690061797042010027962484941593261187582637453974070267144622703849577300251193041725408755368774404200248819025008596512053751967926105610201642457355955903044185186443062173760278534362937448268459033321468933772961801817136554051831135324855176081405810897368694426228596963252594032957289279215477184205815616629099260806866827006400257885126923372306014099757103031628289574538799508758563451025197405739608637170483203129870397237953952504077692441996867402995176078128259335986598452367951139374726551747673741396080670721085962907757317728080018628272365065798720858165554301267801900147969965735953147199454852518890157145652381211432975336635951409330920240747486424569918914295212871997250579494685546606460846258774004705618816089716403017177171369768567573250365736338588602855934261635936867168059995077513506951496195379540924852477032496256262171404672354372505201452446112127158252654740265632744629449339985761333445414496311530523366617902789591031446604412922935770032375526457987689450766867771522723050690443568983990185926532236187705865484242266212547618774388554428282472534774388687590070263584415582564988659865988856400222199808413406914697461815983958294292620360105177594240272623413929441603662169457683893479539325450033331036536096037630095194898954918970040852732977135904077943933358079308465155735546354441603160004932375792639807038076092608356809829598742176878600779635480687209383634298206748733365015589288386369134397772020194241927488239431502234964461013452290787481454519310752838465179174994654509691916519045988021901000492649711064292444796131510749532525986924393216464501621888535625121241468246178821337050501584357661759068288842208966013046496428120453920119902767585347557906000934684660262922963269945542124399490129161992157375603121504326329356976379236875295627254772880442002359701527901094145962404381368860754295976121925843286124929514356826285620340690931780831659083669548358734462252585209131616466735568572377584346654695392311979152828515095125090155023977036798615110380876754858200094640650716719095669019550400078523723915743787830247374698338403233190437892620128130366557888495999293052140700826935298528449424768340118993269453098668440118388862886686903961490553402883223811048615817605825197838182322315844691581664629476641074979085855066860870215534000005374635065266672153365271001131195104830883782466544510970490432480979306243725702885582125225809117785486567505064013756085273945485068942419687083212612924749835277352047558345796568273451379072665781464719302577185816390171477907392530856977619557845990247154610719254100673324018051102711950891225490724529448184437217657487190617751871525476224507448538546948026834554178714244388569532395672705935532327910253784876295152280185950544550950753712763199414311920513932118319090700536233586808767718004598611041225382864924873713496646678683969830143172641025515489989104013981097440152548747310389704749870738050985684312203530579868554944746254449798249108030890192003861598939819342783726461674298073569763845050977834242523075262040701596888142309313210375626740236956318699410097173886706427067214646348083863540853667765102713708619600925066896847468551153695818366546800255953861495070015906308471506806028031205519427517127191673094136370743548280031523631854631540121272702811989879449799933547170287600082992618175895381381065072106762880706193358452647076233813419532128357022684400289719992119477310038085891702728486664260679471351089989376553387377589818615842375929307619325438193858171351095905403438686580599322283326130876924149441898191696555098581765151256631065229398086404701856294097394134593310922243896031025856085308140174334428704159192536841076738361924033036023512783991134494633336928398520077231004584138274929472469925020676300934605850438775989260776453840454099729163884969709607780175733528882962100109845498315725638977821360107883311332364079683720949938358167363752502978405360626728928552268263264860670116578417231318955211644810388395306680377523910234245290486697894939252452291026342731500904275321653723063437027388455066866892936787307693030522441669159683984540673782882858214566028983975048568729742706545200753919758569823918962422733188225156586143539004411369513951955999691850483882601767307637077376211956919681738723082008187214350844393737096985725669541330792320869109008810587249876869529366849413855015510933537572405111420196672983261906030996254187823065431770373714390407572308298311997055571506069295124748891553575143070600151281287867980772176472081727483713680908537784126737502711587482654454028392728321122563035684296101605129790305414941793665457882208274065748958734417954595878714743312042780818755690293909764270051171557322535322969251743139165192444700634287434506921286714234927708684057239880819410034753830609354030428667737908628202648445027576035093096648688832893003750762785873056440727616851404758319050908978976236717199700901188778129320117003265419678166666184272617970195982106711789129741688109659137998405638396046889025237468528653311094094697545661352625104643259087851552534263123694209077058272185944529989160824267320486060761872265140448357775280466414254663784413510959517804568189972629681759469476317554361263924981344420849256345368224407334227985972150850451788013151093723099003995963393510820268471156976970646704282178126219100471675361318851963728867479973314862510272823730870574903710477239414116389571262375821986566431893165432070327047972573498043343150378192569942323778034951210288909433009234483972930277913318452734962637744786858881940182193811188320896946508422921113788017354081692624066017761819575653590930083489503194079974035705584332887587612995325993213652731354335822540729544637017254505466556072433606525343864441257586294515585431857579969573089288069444082088655620991541763508982941456660809512162323483745956618684442553662317050934707260593344489012345360896238282899782633387941889317255485245449899694885904834551222364756042967117020380080354713363750660188189552241465449337433733138511126334138157299314851097576881056690553766065170801658107443612002671399786386005719905458291829550379291699981086517452162211677396271517501713333122216393894494686556821854317864477572150459345488315179045611026198474447288704410892873076044686900825934918612215992651486837338544436984474987679363456849752702187321378320088268954096179354918870905301508596751734513037665060989520507308036925775492203891044649792525256733903995904389554548167942105121627096700108497073810166749354552456163762950053810508557941852716058017868743334482491918857896128406075382808838798618808041489280198579126496854259921596348523111708497624743514857074735737915554207863680956457004772612702339967567646799215211620575497476814250134046699922581243372586309179946182569481589180953132187761643723291883853095515429413961762306602980908297575552255923809488368761145730519597403138066598727108270697178397231383268714295530884469645676953603094536124338014361984773759019788709216305137935476040969361888591203203551583288075768610957300520645793113543586962295313689965048000321197590932985028754936751917484180553189527979660941301858665974650779250038121424199990776129620298047506137004271501588108301207193200235912414825143821378563635872096976548397974100360375937075578017181978762476410510792106989600820851287511793801113479847218107900577404007824064428163339995652882315554663555739329841705939161040760608828723545184560590396269705973454904770615540985111151988261506135204449939484266044713173177025837655158222571740851931397014108181857037534874983680241323670700085712034543430121667293327208670704755819093871076330065627657389313534586792248278651723917869330681163187755323875878579064327282125839606567180146779477526954406925840039047346895735061833681325788959441039472278713669308032019480333705885627690946828087826740100777776962362331817803051569064196767010619718651100941830719079595017882150694556583787817467536904428779034007140920320359724244342904184626270730820038680424086228906024302405592065439943515410444840955397958944794512232834355753805469160577504427130877165534507557049775396605897777725861127433182383270564047822613180290558388101690031255883127120520966072746459864436590087327952749270529405978040260530465727060557095895895783034402238386695310707195828215879681020910302750997572079796407853440800923300497924846971695566199714615977225214751881799054549123336739490013705822206275916176654927069629353988341980877595991070069237965840854801009264427031076095214716823363806186628623252964059054253751307413262267886749118543715611504725042680971899763544159475455192463493005303177142314593819338825087653571172858070396574995375149757036256530508562659773968667725499155808155495801238422671289029634927096911766216267207756897249888358261739735972195182359676151199326396987465013696067401225950465228113276752802157636264877920889722233988659741291572440676724853175575247287290337550755223290100005323213879563006370841345350716211885022154744974001657914869385753584443892326684342051141136618363374779377705650656388032854415759552909457514802331929347018662786374412716484725363450847555423460748266317880772070556715907437054477074894322037325537022862590680823111213286040574155682153526956654929783545631970973751771295825556930851198345995044331860660069534512586556523926210343123035044895368766803866709123218685939841946838632798962392605971389773821949812270244542190233195878159678461307362216655358467925364679363328992252679042508632051393461783814502593627005353756703719672020082569698989346087398553482324750870748514167168864286945334343349510302933788112346511745508238204563943437634717739803070961465363012757591060929831508559236926252530128572996335027515180177132594656609755703838107788643710598700907273580532957826375705549187907520166594241342206272158894836150606335901751034777865770344203931258493898363834832440599119697453529199647056790011783898462062778634695387782441209990607222857639633026822530674381063009454388962774269264004293153407446363871640963066042582975058946075537632364089251753901370856181052728982142123425185082058688075311425162203740987704985231816151840340845065442146369961417851612392079656608040873501418657613714866386657045156828534192089296617228899234993200305597554796538862708796149010518761014753578310510284658278589824718956653622600587747262935352373876421644827530389192342425373495008096867097570491268932196214363256230935106790185624657312075098691898851741941064474931944873269350118537469091841463512395870341700574327763717436301779432087054040943156213779829876146775369268850739814763455157868867362087265422174325776265191418220445654177097639315718969302116330189558662643741554522959386547042917348200291788764225677777886247338225026966716540355365991865756988185173665731862546037864812116314626291078778204537129809465387711481302747946948188212594859249639349942480264885900000492143445734825504279156845069740507716993998326938118963206775897796315328871231659575250280949007580129097588943483601646677231766127713527975522231346247601349939174487322892390915047992313380568472545247879691415261294969173576818453721890491298827859111033101746580648093393199731352716715975930005327248616887154897295429280446945520800466131538960190264247173182943253347452061895077293198501592914863526948643235341697497041406480028462089099161363708641990461019977339370898028794054035088650094213834599502474993014055713269892675945039257912330379517995217461518167149255072840866394761402894748299536960808731770693124137609115155830963245691896823886874311654203103914642828073669165241094523154549695021897053266712993984979380652595770879015068558916062172224570998431882909321985640649723174431773300004417745004368691819788805045724944435893969957733241253659014689407819103602828248035912532476690955517453586718218048148449519768676968559188293204259057291680032832120901464731222725588589957029986726835068195216450743308668741265667912131352799860665455102615544660242583163328805766283320571255418433377917535963452393985186027739821437877601821642489632772329488748378727999362895936180279000325558102689470960672251090902498018853855073639847805380383576944254892261459834313220808353288424434826205195049551526761324104104421409216918405497926356151349829830761313730322932540708012713971832116234122874822781224890785572010726261285616694160021490590307415658026711443411072290512479571411282508936008735240836351251506361982171315258597629222962991251545634699184739012202913956760344431984185239510323445565763871707813812961445205691808672434087711250163003407974426279372735517036712408503956303173764408529342986629012645523908819451900209598219276841459880916901957042346263909401810292095419204024348103763831430456706405782986112238118423681425584849590287070692004775499049376893647317689167446459817608939485275656244926619302902968620276940791917292811873423664801718766440377453648593415842365416375302704078909549179800553382086667963338621850784170650095608030983722982376526205351840608051649165608454472440720461446830216905503996622354350113388485692880660454537383282566314969888465310212195424524022081429527854755738880273268559567303937921950771198938415165447998843078406368378281080679231267469197739472956092436855231358259168597184725508110492997551980564893469298128292806159868749529089795337542461875520528119668789065002940751626227763178045413115109935982343717075246394177868192121547263322995763135458773311132217750178311184649402010098004741168501978282179314656001312971158729592995198214111229353269586327809595784195947168931644400233120931496491532737961462682421287578864162980511662384547234706011745453291191749794817087187810157521099148194573825045651440673677609036577218603941460905255013801521806025892367966518702294312551102362046616427520674257215315355064294520782130125093233152107889690240491344889793531898433655329943090159314380109001345633974925113317383024315916202102210570147799801613837708993385511614881522557052000804124298283096758592384563276962254704100990062620281955204584840873766172135398502086482935717670252778965956948028681294793912411232597290031063296972057026210774463571719517875924033633924240061694257357390055739042271310050089700651955117665353226956406522927764690100746207610482309963632240636204888040960771574207257074415575967493310875957189856684470528798259051155418092938426262114887687655403743290266987607903030669206239984320785722452821202842037216270751492383777737063732244518311061176073682566254629040137069373860262316839498725925674341437657713765060256820325547663961201614884750169751925277639419211381236483652466334632879315174946379653170049169373197004114788648578431028066744045618437549689099230510327913828554561230193500102315731898078684485521889296502412036938582529707442188477133175217989858813186144458118087586481909491909032612611567982593747298624422391061224446515466245565340549772680426138091214932876878774404584094838798904565050270504974349187302799957626277543546057266452857177886212892882727078550879740168254705928761841006574297090363813245700052874200346986802055759723063417567614587446601933958669675869993142068894237171959414750630895667694298418237013382400194276555143892976811710179049712354923455033961732482007252525991432556523395938804053184474593617394030773787027091314419969024067195462072053746689673083150387866525983347323077082758277008548596813406224783069113773304785778544590165966230378114674341626506882671328105961178593545006083819310262816705840147376055331440788381606549946826167361703887468839868573898240700082727259576551288296819387230498715344614710779032086801928336762932856799817997239331924137853070345527803575458403249239157051480312091534547500955584756801883746751921110986734877328788627744542385671356536053696538225517509519600599645487852885252109515565002957608298695556657934710805619833910578675463360969066406920852867859177630610447781466058399261292098749630867998229245630015808938297923482703110490083075448526665188998460201622682954645628040048797100780155525736329043420024899868298027058964361332882049096530905498475831696388384386499416191121422735144743775372295363505667920680764326339474563310199730980971260276291165867484233032496288444809248087664428713696290617605355918256697484471287914320765451831642649175634308523578378311413950826575721342950160421746797195234374098092940537584056799403934562202367494533309106378375207462413900919994936535650791090179186372830215460530754761568653930299957720358164395339604694013054981026242952306217250283779236191016862913442621231921532015101307726361006740767055224520143057016639982033637369487918356887633682723560481750658324750130809304538237134587698805244262332137932673774177122963910659013613303573146240759686463059971181693196265543896609398323631861812871816273291812764459127713837734689600942592842616379776413624084374003653268316056109954058297898435762387480639618381716369453014181124241622775839065324133702921228562969903246545562812633639002000887127152179940829990338823429105937735732489281408811826581868630449255607208613321082336289351276580186513076686181029204836407045952682363761014252761954079426942980317429733247713206651516570385319677650575539752588944834048582884668664967913454543851139447570043692089436517543293011851145514617067859396140212762692889119431919713187456005568733716457123227883983041415066474499916798347655641884675500141580059367786869078441880097385771182848566518869729225528259750606773344984385359357959556743409414826265338204445776719098084429902503990762894880398604092546588231899277230599375111926534630148750529437588617569643666508573666213213868576006879135622301013302492142931083379356583837626877710010344577932632713158463951762920784256766963365083606841458134081041161951819283217002251638455409250326185095522559380612394589094897556104823937912879128893014839522852163131758788813937840492339808906648001596104710324862521201462658819084958027282617446655633250736306690509102522181995322050984481597306358864020622960678199830329640681276332579173416936599011448275966803554482119811664117347929809915645543447154802809747074224519504679946487718953066349940838023533976597161567961428904852380845043864979133545169894247369754337564484326735035767078779738280185272881171071030257291466829868843648763250821655279788026595892293633780910325390618435976227569312204365257423775754632483751019733170353814539874682385609821159541402380280430766191862365177704066701015579977505680372436233907552858190393690133000993093434370385778804792043241592266384807432139651197810935276598278852056890538006352651339165517046810836195097686703015635174401189378836578379691627783447660723615279985445203479793643802254195912548410437473957161746937070106451593182884760773052208407275325818873455666525441845585049009055940060049106339653576129187072950629714956144034537867949574825145332954894631273341987779913979714080410228114493185947935848877793913133958166890750052926218972654490254444269949825135332246220828847099221160989971114798741136725960789121791393371978340543497245604818741916528749841917264715484767773532862016932022487792068597570070696882235340622609062380986845338915937079216495282546309257391405712303109630745500153473789365836653458248756009886219595617205496634715196014209635744058772386912823923199829044631833509288734766188776769578027828016288903378081421807445578779618254695201215530247247382450023351318925053025468061180015652147689809472562681506272130287853927845461107222880161607789212878773388155778486674692732351657164267996042584157021896880969404509130818645603394923091959683232268463318077835587975749180605810500039288555975476930304467528547455721407111858483563672054768660664994699715774836181492819662566901411257365081603391681847565354420406359517821715247813259213484900329179210274526316008455375701032701395440273550650919890941612938892088933310004170989198567006595919076885629037003176285326974287929150301625589056959665833392058900088960378359656002483978800630899764163615411020743920702598799524427207023714536455389140947585485923793916068248109308483845328963331473585065243047667959141780359325326199526997880465309937329274668862097932567382772419533933991309358115799303644167528678136967352045292787553916754529257764740129567819378475398840519380859619558653895710458730854216127013853543659728646666864271961221640270075687687038246903346426658584885535297860091164270329400610425630420793749808576758971925982471291060118654593957584230608951027409126621773762433268371353972329185598323599392295983636748274122345354567738920457582346350142702193650160252867405830356421305028459096063066795516866132715168730025675293496203497543488315573217504406076067737317489945292558552040244106717515917993595892997709569735159501611576917792346294471702376550553605074127170249306501641352506243416764500016412579229209164783232145357743827382548294637205128250634114409094043070812729048430124410127064943532700168835792403148144318700942619280794435402373121997721797589381689767425633436859829128999788275943678299816791212267560059282821384104383021656605928370805137699466876276704971896048327964896067293879169971266644096336088773803923099429867959844717354029816615358244827670915646718232423023830851067631372326479626080897481491754670678573998784687144696521481853172916721117833445108586052372609473206768098891569641189011662963034136108424782976895685471582447925022208214987921990410373295671995561663344184071091653717656041848322518563148115528948122366364015489358282254121912761452586059011753295300526771978485887548525464767658295965409617226617528730013909862319384957344666268179897696518765040188866492862634809703484830253373835242323326851209986028640342247741824919378585903152701604172616567681174720624957324817990844888403460753946797866326803574662774572149139776298733643602626135680086653630280491687011381218087417696945191566579629293582606078915868353981150897528691134100582263148504978177174868859073972511056251469823766391926952310622524762341455457354273374503234176919298046123078761870843186234767839603249211320491474862788254405509769797800539830032677361622845912533033583595817690719317023936209763867080644091466303420755791837287263226807572318846045735416373158619041234177290789335123343111177191567116934115943962864163653957298778911473864323595109650467555821780442689199465055151756922121182525868202914596167112671009407845870482993693273609316607730454120838043847143507301128572153312264270424215241460593192825749917116565998746175833001677710582172819751093636182717828683558794280490158114496768124277008168978782534579452033874739311701046774230846485995792956832884977375425945313858177055287075150271100587481648670879898410015191573264673262710890226374717374661595490475438386935028131183683493649205376387129319301946781379212871486424221406560375593585558903950385625160978378452532382495130837385428778198407893818743585563733134186901890874161788636360842582466196930589267358040127200240309204882684112573275854140126297126689311433509884447901320344945853049467316621911915356709913358717910624144841422249649330544435543162574717632872167578775707108767682682491881687542476907616029628903196846952157832543844827588094335090725927375145499931803648410320545515832848126943858858864285788667425148340992267718382101508701160524033517165236030650197063173132322073884852895476104755186640925698553355590405923249088933974445922737825966360121436746793104693382352044255082501224264295630829012124456315300650973229017991465539360508010680857554380385241538692074767022207848016201349908400972244494769213481330844137122561310761519840823731799646300636259135967023018176868059026835971346295514694893212169882756746346742831112187415470946883931447037875915547452280189510298379617299989585781210126299172010826098331103867079798774497222824862344231634285864279632345757374221322561341040358180397440619007029974902703166719136242160847775999111616480183406443681390630981605723314642560368076271743533870202676214018706431720048917671397022174417687602298613676286742823093542054003459689908945990757061103190149870226487308987553199055394145404683597292978000006020500101934770540413735703779089597832109349126858544657851138001668250550933345920395401568807502449312984671956204020429147321141299503959959798627742141636422280986201587786645227766121367453988783676639953283921546953113976089649098098919322079450991761410616974460672776050420585134317897681044753864187087346291120908306267394445213224505378947421852364701490294674264752244736017769278104835212768512518032003343877728194235333486661796342275674407099871074853004593499097754369009198466234151960649549285729597202265176321677358630800379620273739746767828483426159621962265442672306533103722437584941015329112476664041454417399875285829727640523133576362727731615359410079882608851572141092261702722933169480617013951814167751592088133043241690228902255696874340693094109137121987708244847627324489453339637466885820246320289568946988102637553648848729496774282895384271577246639986104665453533957757738933762651811873805466777139161412331218229333291955667664093644242027209352557674459493211923221115964636820917339540156881627523769961035128130281940809441721694274096277506825667714399907940210808704232566386632596577780682623501832504155689072521742939495126127273162715876873352510954372287736029456704437357506800075521014084185426999368104766000770063644409652990528646759755828580018189708169904352510636182170776868814654566345184352126709191464229015198770062389296585801630612756201898297581168383382866633056185999316589221788105853993933421325187781862115300195404940041316519485484692138833269835207969177622903639268291123376735684173163097725439203538810598713779191252932575407947678401759527590449722018839533526280095338585221967201475333858846598349425118277031732210576993489899274422979005742120963942922593826304694669699078781879557694669643038956411696964721457413081878181291267581310903521641411016908067103250748071973353124350606572443621885069168168655340124107131501220455942325747538442897638606791429860293011003420712407990379376966652078970198018101176825533125275638678126624582433179185351537862989741411453876310757686775307711665687713966435081551262130600588558234898327965375896710216018440203525069489906424051078078343560521080793860556276458811738728458379863871660481699667955666062072272956440432978483476202166269116100029795063089540918362682537509861119236734930051977454432922230140393893192158434772476019519729596317456440370695138081396011532171250264442800066857499533688575574645516588912691573124820384464525017636061044585134352816725519908529527521681756460264758606142902706807381276910395541412552951187808956079659919438083055191356431936488919046987517093718778319279275911446722163236037403802282130397988161161201933267895846534026839163772109800529609480441226857775659928112982306057978030991252184249000872790355613869492330484662732743737664574999577774902678702422253255458248251225637134156083623533467899677428936542665227356521112628256490036341273557511072908233374140712652022282649183814777239633427479195568187513947392502445060100271111364824452637697280680252627157928450572922399885199170669318012332256901943369332404704214645713501461453243959645570788464003713105796714602277158838165521562578990405613537408197047530822459248305764656540902551641698283455422466821853932615376609445278183874176072032650411040277809881962451536953805783397367328556421364748831073109265346338305569792265647512630080711496624859139313214666832972983592447850261970798992213262703406732735784932238442904856697640302992985370392064644736953044711290561198345177277072860468882636922028285467458504451495526080542683485666644304205392054113428244832158235930158320810354463223677016052177655924273405588525954525739790055180653090600491353479348305559225892726590127800210704005002365939411593894940057510708631671795858904127036761086198456792512128043739077737650871133395738909707065594401036999287603935036115813909465442688761623187556742054292098511173589916140992406725284381600057773223569543203097350904836458114443179464340488964872182388298269454966224766011146842325852175590561979065307600686869108853258678483015649870766724310206895810779478623327702477035292187352618211809412658371883613249499095221465764773214298864771613777139515196564680449465666022564989463288913583760333742762283029379898570506691049332836306413073620719606908488543091282480802245886200606079424922857759396612184705260688669249673472778213627686452780595770004197947299725840780283249306571301220654633453409049095024518742853821638275648300527789616598962404431161492832438714470279308028262892609347899565538265498056915487701751762840295986730280114943889071012110272638974855773170325678065199730530783881716030141400870431860352823168148197758138827523565787024477345502934847646036729019063718809312002439802630016318845559080644815778894559030162094255850529856833711173222928297558726986209737618125013973313218529865468594695862950113593894497506523350628472385809786925498029013355509423110189912484830363287003372873167107151689194200518751183116393589917531699005500105220362140708686228097252004726680533005615563401283821349188259421146818579291536254226921164486012798722454373061751354188223437522529283085493227315425772835258240267810990248511084782706579288158214220823391437854107470170197320705754065126479896851169212387617807888586878358487257777025120988872908940759138536506887396533481213151379989039119065765184238515275772664423430020187124589262842520801790348863235315421634539000930700577820855926027890274244866748647705399326682200797770768969223324006479603928318356604830225711217414657468266744298793109803705966519910051604885918584326995565446187095036848954251704622245786858947723050877115942707071420526552914833042423319743708204290042590571476025312817120438119178539403674515672971430648206360058532656611311088677660706928257531134587931480927492485142716080400963248118541997809893676558919159610340808785863325806563275075004676663152992446065361684275413671992945353562604527741040219571615115868957141272339494975298543319890889117414195662929221474579093130027171212742984270719854758822442942810409432388656332373369872248657274723640262375317287267010010914787933103788828561730879902530035335984318953455602786254121668974679391191436815744618175881780096404299840239230181746128616923425051394749280091286526923528925577759898172584258132164672574909896806027772675907600951021263555837586640277760089838638215420894483428607516596519563357071683489645212418285861459296539800811426160156550715959555773908481696520756403318427444623086970674258542628863315762096295675958167313838664246362550363213680928599093705043819284234912250639575185243332367536465695963312799906094470320668612293295447852722131948646429283445488108547112973209964568152519803525231619782188370742387973810920270646579010433253266460866653291111898538244277436203031867204255086680731382650432602494571873308184462302605660485205762486790534196314882767123067191151879106110346537113422191857225782095801346831244268490402545171521389642700548208687791567723587360498307943502601998583742373272253801945917077716249995936155108687762871349661484338306238735569257640582918015989961346884317248439585268759265257143423034325085448373756192820411531298527179041618922736729342415974476407834258372574655378112606134794626050837604251145810267515760165503973496871931522868533890025710492619594299039819099686455967218840843248372652489694423406340889837908773754790164514160931467885359209051896214954448387843603985049910328685082918443233510558702903172781082136657542574112235972224559562748729713517063093393231948066498097388514167166889527558913467279317767756804590920338232545335826058225202083574340522523098658486315686697014176690481557324859213618929127279582721711915738308309746135584205097250038590738675650212272857872394043871396919452443095339482276693772356677505391546129795586912575989109812238542982945170592847912545806677376945267048275542271329673423919056055495789697632362560717568189956774959594102941788772680847183762702037377892549164997303739207610836617633872884859639242356841818595139942845848848923978940213355497501151132274743560829228031194018449739723965751907059186588131769883004926091611316261548573189133922237093791967646293515567694744608802674920354643440320946060311469654981243456377566110847978911959959525758823925504226808724841976228330475217173072007756041675294543827275865218477110678916109793288872415708910080017373781567979940145090899060025978904609945797291421891580798146994334006626152300161922289803821123658822533705895333240229616310577778524061653737740652356628740691410410009075022307121979261336750511549534281528277644675503992631505496156059691022247275150739258541014026639207596864947013025615206105035682732995209115677353619874713909547056989534523959711746748942963354938977777595782850415881428239277213216028298118637003403210878247579737929705994131011492158633799840924337599294349005487030602919240329929460207080173786492291560083442704011142282120032678556990371367144722468137291470121744889750092276476807143267588967995644298354300373616012913951340042215819916632114137613310248741768621268433484670832800042201910139652653297598454840398981467522193066975468710837895756404747357272739041428042289184944032006961300235607672893800961646765034734026217907573829138210587661869840463684466466489903738074118580918003319617734190291990983040983259824717392993497712627063270992937044792266424014220065320682662458576096951831938712896717914539773757877939703616860460356703769921688999922087589775634125822727894935255767899664134131581152953727984372293117397972542826938565136971192379387948747845222651006410428257852980538895758945584250219968673513637476570737366874458172111712131464514656486789987146623214748572086758671902106695468763964398509849188967723312826375105775148152446624195969612624080323131235944177788165461600652061644821486430825638995896892735044167661816409331581603866205405831116369329244646723205228886302668261931921745781243236791779231226505327853412728990523061730643988674130107735513321956107009330094632410934991416004650723928568030544767675866335400454317198470330823529754180873012540977588735810694221195402493062436717433713418032349863412667835952294564209929011428803719939130185684483448686855182378293265908024894195054718703598707070643464480207191861285734823855681243298525601553182960159374119807044094808508182901362874713836338864340606963396315645342699306815309721626592518943089783408050160494652435768574778421723948608688863253314593735040389505576161036678413302389658225619285536669707463162795122581648120839833551325094302773357033009991396264993494829166816245458710402408671628717328779345167475936879906681260988831246239060502759596523379355827709624989233746425613969300561428369603805067871374503498807340628652102482495998055240049736554662063488892578543693836848464106166547757572912360986749507522824951422580088022398876651135914753024251040465761897761157033337395547182071908729864457353539561511922660390437053568493976203678522529200797218902276249056092613501389834089818222723418226166673520603996067785325132265442079972340006573822222215797759655055951060532864560026624791655583743751609285385695861150362952124839154175947439873456529182818012875402303753610936742362972965092033712221821392417278693803111155610366736879860325154908041541714121811693434338406028287617740537236158016006163813001408509835940504419179710309678476446596769038415617075265213984391053298300487093985330238647271654085187927193701390345485571299246363994790187613983819680822523082042559910754438133924692457933973678097164555588147879188376416941924773668686206929331176764722513566710819756580191014894300685932747414768992959905006394921091941352709875805356209958999403181520039778961750541074040438405514743819295347889256222244455405270615883167203827025326216171647299009042545701377173957616848779685923913658529463130515889829582232865320414586023325012490109523726738054399263396904463387012804629643851496537136250185461818742991942272834190005685359816379280076415594213364958563813308472632986230530395039912860269453315115736506134569340267607332295836728128585684716598587869409988918764256469410450957111062841204043220999783124320797273647234207683335627388244044250022511932920405014716656042384538077289860993959019707461503376714117595173718391519169393153802587783947116660195819696030275499721017424214300754876863353811678666348867374115969244628860593421544031062035135827736476288143037088582237168595517150808855809617046777055065682798446709027029293812387453350479413270891649037881443647381122724218279516745509015436792600405290502963045637556585922356773156699309736325080379723027122977864303093321817910795451438854356335209487858181335104864832662725055181214469494390071010657679167947200576753176613529642820919304661050013777732347958195370738145218491143312251840930491118610916761199980416567458788952492660978398475897242200495160535199664034019188279735499785488210925477453844165419592286784086663440673669307422554737001074415951714520044903508031638319930091753975472555459858804454323921918036285296179483484964468836098907487341757890365066924727937014204550651045485341791315831776738524484672016668695971452142417473027696218190396037215363967845911898235292618873165764463033438683421924669201483096327509642048478189124023596043553632387442928289903810586162214065021813014656097066112506972983007572529553183759461386319918523153256630104670777304190600948988798898547598463727904678779519381860291506856109929957671253513816272696914156816970757051847650496827207169167233458031106714338500778170914217993101209872747210903776301306006002362563370767269152619020420785715103732169201793702353065917494021261396044200553413361979126386611773736548282555389666218013153078796817800655334723392622420276012405434086418539305886166499441767724279858176605455164267049904302911657385026355067954911262087778621305563509528182902800025990620902635659218763008039316905443291967287316691442634606960651882806994536662998777366638879027060404256994543001364162856436505813313822467667905566429220999446401897234077996127461216168394749082651222955682979029764861629758684935105247547787131185730206723120917545377978860434432788883854695060078819925598785269075818446744629191388259414457434205653938873764073113510914449966770308535710657577006369513072451239564289769682911093738936673052818782011956747165289610767594308984836541034831172547318041456104778018075752372473359695577970590018127258202977794819483290795735530696870448526280408811963585104449550901675272884586209653719324105698679052403675220936398325215574641453581439872795687065873530063516396952747660288928876568040003332934014943911438792111985238003757103371539506555475187765483430548372466855959915758012486367959377848900784379231796417589510221975725355288011456981138770939988394095504911359083019833246630610843350062624744064739911571315742659812081905761586991315866604193197098795356894788475744955499459268556796945669480079232841343270940366946773178758170861095468958515847276556704910662092071083634612592630046187223494057480743535430151347217787307445395330822350109555621312442331388282378702870360949530968019881708687502409078274803903371482350587255864603677857847193113004273678199732703539561333240904355543312132388097757917378961878364626077667696256717116708319187881095774843708072193417168425794577757784690658258894125387789865796254484455575665750841797940543194236737119089146954110708235056261033422534126635674796019293945778241077126153590801389657719454803666922357155209223767636894129991714517706567635444443319443509428182116290944740857174663715022688090255726999070164788724141944969423754375574735877232325537186842519314629423256306890520849322671488380373498226643126828205163876403163532326566258097734305209151684798413919705925568789708747367291854252875364320798081271581835613591416888962881756524904688706926925578095754757402465523811916452769264187574530425200481911277381364889967228373399510944826803192810911214153843605741757685891499822943699996285937429788935634977357090313290304834405463102116744369090251109922442620641072432495971896780413280383180487279592647647359387905635396573310904656289671173012827731755839712751183252339774420531320956028141287840313963761603869948025028611614574920308783200433831930511800640740280814681079351618248396213240401834841632335332894602856367330745473440688958145804408504062127554345898472318680306907265109186669484450110052661277101184243085814081788086825181306570619159746841365938034374947625640771924587428100091381064155646086557679717599141709194001104669222048689841661449668554645430363085448837300257473279858518760856123947628957016709469905043828511897665154713565899655367309214481977946131655646150909594135078059757535593718903934760178423346039714772026110221361713680917579247977400046707414973110157941471242788660036723761670688130101052025528062928297865564097962183910084889672383059639617091005559907187073168924178311110114368156462214726454397524661652556812669979075210046658250577067890922385687574949581339879605640888010084096997471405647129101946356915799579680792449646326873328365121244182830958694111955019726770616981117373661763732680968933378765671767560134325045409363730160799625545726095573615407072076290729742665563583005491007441358096702382165489185933109131456886089602631988567616337427355364846607221479669436270423075370293220053288777638216106713755927948268302595527820421656565038810927202200022743481315449193578823839067599075761673351412139152887194975067634764952143952499826100329008682021336211752824332019681888774092430863217616242826344042269578158261016745179477290000734232966642829543150304325235901276878149513789084287778863214688834343872628561585913223213215160409858762822183319919416815204103768817148182598267928125306109171424995735099909604051447683356511564781215530575340937862762026512635224729000387497658491807394034897932392057889275038523599689229298289892884258397177215718889521294479144780705769784184736922563654411332489001898323940955396248270650033329254578453085008564506305665555418396893747815134451737142078366044466481771717292075520152903456302949702714503831503347876480165781284081668726274049012203409922158471937193321503580678236481896629331105632169278631190545329574713186738398915423747381698105300919238478771330837372214156185491455754071356381824582420560128910653033584740891279731070855233413980683360917520569112007609903072103681903108041874053676538798867961327715485132606079740430533150226500427946859089824385417242065065437201335726589704370233414021998008466216883653258958427353175830829447438532147054989603555143215527015321162090418019459235406799365091394238593933994476067667671930269931208488371844599466531967035580588921100148328504967148787721851715116141091709337501333183916127044668026597625541445315343549371261740292519399794534875267801302015339009088155126964625459143422294715661013073004936085724631523088673120593185374364109507570724508785398781302608884991124378800689457155278001898115024826496258800154611423732341622535900312144123667355357117167122651299632593071569096090073996201102771546693336956191884436450563221111095220409555747096353343756274941201376135563170668173592455930426196562042643687555723948141476382425538263103953119455316050193502812664940126994966715505205939076031531891966274549063543972040007653039828127430817447501544710190555198024079381961933119829274747217691489311577056920650394456003510748070777567983658236934251575633064446684744466562393021823276674389530374114166213480247768152121708187946419468239342461853789609642540326151720424392936205055153068387897795613234868196762520412087174069747455734283199952574300082492469939785512713907699552394976497001439364279280448444391404713859886430790328183623817324304528280021534023622004197799636496260037864312502140646450467849206119904361076229932062389927779322588069778047075023313197354247138797190875246978259577975657165801729007410155755959821583065529465304455276192741348804779919586083294288000288072165325774859546961249603020377469145170123926480200501739148933334551559990481417016325275255288842723427209048025066451283229149085750682946927500953582988705306340961069183882599731630528292876559958088584108620689870381902379279167997648241075548690360259049682676028104677176080419538854781043636681285224891715203709802285229374062750794011816780158209727452531900293119739536968248217467503731057565955369068133065177518711002375961174603677928615797936422775490694791893741191984024373048625462316371652447248048026247367262011839112370926922833727247316024531947968342898063417882869683017404938777690564700349630833571756844881122667660961266911991152477679933982828781616202313597418877981886347069533950477182912029377936134407930054626907694434298165891454821017380500622482648649992470593886871485432291079770117385101014694437815089594383845451804742950575237382327174626097903154109174185489572450510294007699624224723776068517415446463417609326950303795235782710231619760913772383622931699981933065560639403915109112635578983401776716022255052778109544448642079917469427339176848617105205624444663103258417613014751052313501321476014679935839811509195263107328917933377935213921475648404597066455442004322525498022247412879850076183205599893976310749220172174861940364604999400320736032249497069237170092898884415052587655924114489149262642963228797370265315794475833077502796120673529929195035681361791082010529250105829656442633759774334114527953419594736677907022901546180731616007049914558305813354553143423930039881335115379260553703784326970028975353309639194771964434006747679946978219645172079113387718930767368691127844870084361980545518375663178456915332612432090422880133959183415350569855815358722202394279653130643821787191120492047069650095236990357102588680468064355053099209481751598811459553421547828523474382027577184329663030024386344844091539471610545189868173451921126923296289641412370526216298732319504696251763152087551318089200455193187844554733213691161531991787927174075555139441609308175977716943310886180609442362461538039579144409435496147366701203863599775161178348300497566535972471529497753882544913305010649510511846359723713435037230309963283223548731506822140668664100358265973394323713261812053241885934010149645747460756779435831398665342638420006377954693343714005766497896209885308709025214914741740197114270040020814327351778061788839885597262421574008735675285977037191769040013942561138932059018465273663475716436358729388472381242552877082826515849355279049957978019166100214035281625456781166249927745259287302417076873201875023213056199622146117679609433718389943427802020044694978983200042155098431450652718397931578245602724444114243477642935257507608530051467197161611809815883166580218916526231893918360809468834456602065564171991603118008060629075009844126729606962124950572533873709984314689194092568211071564224790531197522070940748925922048599112801955016765707236468872760793671780263881652067421287526250746935762490880257144205362979215011611784969178367357684175462946095805521225168975272417500599356274886493314898123744392254762409105062334542382341673573155546610408398648241954900288941512381650824925038953087287910775536137695658095757572996059589970740537944980878594581362548644899322681301447894136927589103853849873150459423077793088539229106376748739983699772212224447427916741453215616145098030803800435814723639341933945519932541787252753692354015336268778778422968008574121355952709809080810912389058105927655787633921083375821128683855709097224126078196347633395308892738057292960867966638700900471253992841103688434964766833864084524012315417652239727182212237903961983032050187636114210805490430718652234208207460341507865771593206992071570686067349627370283373693469943215964439768430495640160308353131639245684065459183503921368448721395780109364280936706609836421413453256030258579031826609143112412321760100358984579256990012305522173163040569925779196713371622034696491234220527002952898963876182983032016783927288749656875732424130972022734222690372283298862910401594888366125544727868331006166013944505073216434471487114633755853673971157959557421111210726304895666253761311466178806288826968895581021347662943952386099277794050359564581726156914762422530923541823653665069253226399296858689992695032160261538771799862618951637410802914732986705601387735871553567432007462671747985630682503222857589488197737930017998485673597197979138038316572594133076951460331484384897640613408851875012926965734290389996349400437836314011993806549690812685862828370304233823647496333451918013619093840510054715124695061697229955425200500038992104594276103089358738619502754644337666147118737265709205767779320579514608811612106245833711532561448754023819709202981975898591296530479796064707682061776846105526223999587840015264566077029314324292656402717820063833871422347707364440272295688009416862019783535596127699983330316773093345281869781109264571761629059238036527186006587760303955765767356641545472708233117923661952735776116106872155075649701826078709150686039238726639594028109883524912187588312613466951214485133804795412726951152631128258429728523602478753958048670479268795494131950017616393251668903087940675051307213342524163432837651675895622313594444176295073650300709597557205454860867609857642554308085437751379652464869811725791916410111171184698172856009698899365046139970354086109313182982756263040770265665047720256056202238339495184534387377836155541304737959264675265116002784123657556191228452597390997319433576098299243384331037155207409184794869417500622626475248615590359459230351804794378129015632377286265592407973182072198105935932957780183667152400868572835244885079424584743980908200692854160343643856731322146249218844304533212769695134370101531937489385234074045130749935946116987006929043216985303113593350149884849253853449982195154373937957164776065200054135786452792903410285118161643436238011701864514115545485899216033080031145629539869172616285399853059359901837119922382290999881355737425114928729939044115378025692245333668690696915239222580183492011276953117434867981260486910640645848944207749690269390897476281136599762924855965495819055093587892028040109608328130313192194984432768128163271514068162721062727613534492909075049394557339395437337971180672562282190164613070792764392039578568166783560066322241600596739692963844503945696766953543750193366192204740767076392548261916287509992488426144806239174967129531063812633050190391912210852969149139240815076416989576297924633130022121392976439838790645697132985201266859412491318435782624222727441727542942741945213254151743961746814186117962899815108096941658127138188426670034760951707716556154022409383294853175286535519958210106906647334687825541843019513797404117902890526869647225507092325571482755358390600075293531085285340683439226205612921401883940814797432040119268673043774757857630017339162328531123990396779274374333878125254583807973625193073661020138049035454799832674800242296975023833245455551038834670480937124569066627170984706020021797490213623553713381789751965160112714746511077498666583024829385508454121991349861452625970464783607647718418977238025726353620032315593594907275542924904913107918087898347018456038401751686056793227487454608149981037703657414723859172466121862077130615779065205536886080453922041803141341273657330737225364576918892086288825446155871014428716236326185892322572805233048092659055906240387810692483684127944913370114671568016962192034231270664593124528631789339208002693498149802353392754295943630086213474127118078021007642039209970022675006213680839498004581756790780624293142135263881363232504080381826401116953063138878943125960050006702658000288165892297157546366312614708553970018893206131090462823739129606992588436805607460779989518698679690191900846864377125862714758973033199907279729338755729191445901374679902946019687250476969856237236006416733680691004613038043570083754687561751850884995273123169458135010723916435554669739737230141570286082335689626002388294504523522087619003904769376342991558656846108183736463096095695702115138729424525989931964863259391046647446603847352122049018164005617395803402947369585741425693498999393406910921983853865987483710248517212087942466265059268483324579170013503972612125450316834518334627430876745974416738771161897030379333946659467115456291340186547527737658831357264715883244771593632810509987822234911417021992924693166474184876741677103075706083790678205141551492057451553199003456754529709534205449157323338033054991901800727152870057909621381419654154730246631659301301938409687667615730391117570400321163232881631661934792238748427792053600357292481771788555766302639447462912073620006448952877105826955172743240438719248881408543258153919537937087177742509784276627059463439809439250763950484167617648045732792438290696238192267312124447185466824231401180213607909907815827664142312425901388681888932496100320227669753186505103995047074338454822239664829469051746994893878387931579298091437995207303889245262189587576183522028436241732583529539911923665298847810277231065066462723169455940613838315546215856993906470171475134475823752676420695664934095356473987602954265336553785606654953914432878478311322702390022964957713924029262802191936032821286125361259820459147942866189941261661000476106826025025865535619972087692549249042601066755822039772900116008057645143609913726817722485800879544773313673511902430964531587630865087808508185730769877656095394432429119396328242103124976335210072033452010036322171622035669231056770951869948000449957650341724821156518684112820699892454580476083336990109261998248654228317323421802154702753175129099192363036717223484963176166120620925724685255949718784062728591769123931629518309660314948972998712265553193389885442245574121695098286135851761625264396366253029190790093400066955939491667427936689838213625565969704277393287729636517330606787986357209151534335328781914306962692521008898876027415623059335573431929539733863203292543114535129725219693154634230296101849727043586874642086783952708354669458824364030481844246654881317513071833564745777918431961923689101964449792254102426640758585470372295457089679162103181637440083731699734093341823058488911109797751062118921418310285855768468943608299381698907648237199231330358394655729763801337405631032211851459655216897757612056750303279401145116574530381975334316009449558949721350910630767434137727863518923723072715471049270328375736847999512609038080271316001214048195855477558812466895411225395134351282099131921593377480818469931913184998120890643635352843894774006685420247634689822549541964448205503569990461385306905963016982336315929511395382521525015937216597649835516068293877668213972668235110491929809719417930850457249252153226765153611809647484284184748654385662393562147136372572814190205969221784895259601259907923064549729879029828579751079027736030009783028071127277804276208990664711268466200352447765380283571162290880200516577996421679722170476109736859965892303399882286855950939968658965973839585085590234815740571228342711377117387334787987076969481490611359386206716133431105083196962290013115789110583527832281193020726100646633053482314831433306593243772231132296404929487862300803250510577329381815204304567892352819807636889073167369322755867898787639649258962186225479532606847686846367939128419752591899219872195872263454448091722749313894913155160158461001412429487848562875426901320361171030538513218002751302050069901158517967105244168113792691317711683759298289849712576308392688841847503179524386145678227556562409581790436085982291518064687699797139319667073559841839803329607957275162004983140918239766400786895156008139011640862360433087996793083902439720073987465546728337067689625653757290566347516274140079472794836527338065282308076855070952474552475578026610336587532975742515315559828696500432717588250264367329458803408645129179802732631803477866727444597157814703091089213483901463289873600594179850428075908538346787853298963354951985394751207690053863743360554148452693167381060598282051944559185967323508138876033820376103478278755303794221682131014060035829755208364146220374151214802291530366644607496194584275261711093794470579905692047171688784659982899821209325426349527018314276066818531871483309043332481800381353609355840056143581503081852808556208751588676202564187898561086052651864048706259649518092205299794930592922086865195680982759850333689255908647244371760093436595002630509895275362303544541166895936758365046224441818835451071078069624491973080827906408330241606232521570717176434899615278744210252870702019968251690140596613153938376299182134887693395371717980107503317731611989245359833204296968043346330534870069699649180380643599868657161953993588320460011681284897440488910146129436693221003635426518224970253219310968295195085531481494822857920079870571555634964295555100350259808334128662573830989553861623046616983216269558232769677371975313535911740102104188542177740978310328306846742789775033628680800865800218794332361868370871432677103444812225703832781048432401215813509282208852597200678010176204615397324226445723688786494898440852591535506554036755982892022049282564769288735376780168834944355934476210338022655708140305822929000221965748612963076744055039971408562915777297419246879245479115078244502891707503056105685521181355818559104383028027934027274260410293494704094741973150274491957449406703047592883478164995536567990210551688084708924471004828956769475887419972030770148563925902256700212378390042765975945002905489901001468607958998665617717573561258838491927257554409171593275294190686091968305400748954169089050409839648881156161201346068355433575221021586813107486337799077013164606298198009874066281220398602486573011384974808448356844285500882510216069085084258902541528070093589551079855377909026382081018892724996014455599434938062473994853794383387395373255558612671999715709541096293664284726698586238842149013492510972239201609636092377246152395982804217595041555530584849658806770842728732767903006722959845034710660481356548725853422651278173120799837488133484624478420229217624109796992556282466821486708235935093100299531939838850813850585694903040276281020398130646527579369451527487443393020531266767872987147650599269908424506539054121754920480807989599122625243976045209117993241695778724120439922307104424589444398153986677996393558904517455173334389603243793959524939570843927516687898159700908274028258123348483130391773800973499046713146496254597393823666585029616489875930504403605921616877692187634315223216864957672102876211713215189014769416609782967310007073216442919253054667900370450418781400420328871658961896117769728207611421480583178590351288344923442906560957357205784505279664861694431867504812632037801106924378509371168402310098534640843641428738881623565746093822644471873064349396998168937787442550178026629396045315703337008385672053170717091307469609331299067222477503386148972127910262461790798285498902210071512567918717522654869012052892236753659902612477970511091889694295219020251769151621964919619320242907990052786356457572065883084037473358537682532466539319328799339357710644441942148124109092467779610472462972703995860756457436284681746516665698013055910771134903822356880871899770324141183926420619238787745585470632847844761872882328587969033298562883098159956265400508956253357613552890818502797469543073410600998300906795763473965865056235805837627677135908362784368776355357416860697697696997868836440226356420114685094033037904980733230823910824360758108158679392203399207737007000288521163171233260146385466558575896588428905269039750797214128458680545482345128579280447781023392207439468884488175555393316505272230710969580107441233222440470305977941333565953058007920606080447183003873689310603580211188733161327008912969868370092500859812888100517205684402469701205244543473341939539544958111971721401440999509070690772295288613407297407279899836148803797823632885296963469597565654336208774505565084571666625364171108462771704147874013578955346622808179931391682845642359881979080240315319203921801381203928724570991636165242091476326417736337386803734052195563913456018742071242473559783152447149101030249095252626814114460754201710697304189415051137798290359486421923485019553628150780618310641958676466643408791920833792295008573279330312299115170390419429726971516998517370291181725522467443715958480751028527396713671696851386431943862365413349521996327707072396657319522411527244566743779761865487571777594940025047232762016193428827131634199033275803641049904086753798830971981812671800090150572496670904058776754395394911714390534746600502632725767569656393852611088697731043991092349576712090332418352450911202102475465910423953696838892203006050046115156758080892807399291264878928939243363177883209292878634302106787766381890804392147214103082356653854755109163350118768701455674427894019219805457461888314876278074186934698270570075386239085697628566322953388901618305809393870648818488433564504077956721959730211044427814681283250631557632328528825558730620995643435597043807820821054860421699815610002431180132585491936496654573862348696289991578340609795481748105714108528489944576533557261826394569877440769374983794211363283206305099421304166790169596876928442021852176265467481349673502393464132530339717891640953724992041545150441353660449547926019949632835180224663575856989214847415910233818342360410746680085993659968815953340768050813729181490749385742059066332809926618285631607551479813272838808250249424058781783894084428920180967243630155399600651742091518724986579785268409603878248352462209520045155795865931214696662254715703038215084381625859555845006189978955904097329925409201487230670208609783709520311461291971076937869440305853663493779183763643278063112136689402754984654958519364751069297599509385303121074911987927130327273307868192073913817360788011027411230448227131627184550300911608236168235929155923585622017025824426804998351565921179741239193657917538405979853643045491277960602855946477821425245944987207686568228071791539639862744586099826887032873696562817377204162552580595785983950408771511585789827481611132987712871499846343872397884655822393615861356108765362383550916833316490518910472398741056718505865983650787963151954049981842370340772859529388644520250222260620326066701550968277624601105968349390609279787338459837690815569274122933570778035532166225524989576459152040233863913553292625211684518993285213370578739711233903062418330042967839712894818942876491062418651255370516352929344516401674395785812144297279776757776626507126064815453543221322740252309871249778257463032971700854449529169130969799209376392788261339393845935344808160904515461578756596963052609698751069909016448933294382110467587959934706571668653501655189210031176096721284876874667205696180635752669522156205527599967866192613402399176723102234188566123352055572226708886270694739811332485929163541083253853024431294431804586319303157116897802501962320695894002057365233992109940638645000069868005517806552899711040948912825499026126722012999682643838718176426867188582135625292768264851138832337296808842518760204206723829040874866369088161131349738544894729013852444482807577250355421803984768538870462256051167802339521347765020838625574814496860426937732315283505262264454434878684240092267973149939794782479675457469413889901065499673782553522377709299381231599354663608767737774224420826879821722943038368895540123065554878526376624709421969267480610769755841673874084082866250100672641808737351018496571684982402276761924899884884157514395557608699794818106975725630587951882735534714525395562308903015145845784900008125156128588635085213177501232253424827376627905326228072299430658623393104744996730047743382519980052921697063510469472673467910252589206459802079714252409210439867291213722559533152658978747269663652782845667121639853563329484339297473469094696296507157823509293329421292454032149520698143587450514131970078383730617764846167690109061904936718584512932309917752100668727452554808938271988134998276649940292383216235619416553846736835476222017830653867868730973359159371709205455313180724404451592149048969160921572977796786326495493289824747911027586055110198049434636090779037448273791897074522675624905075288479635483297187045357223367827021067933282573043732355627688008812667300405872717064515605108508685542340244510284475568593121429893245522419304659845692825381379043387576051346059129323450814402111195908502976308298536899508256284309216783541776650963627170668939841146923029499828782936625637883330833780514315941901648234455961734373213181543096338350461870613116849725359126431462259878693007371659495949256779797959231286224536445313049713443809447452507874666357401752812205515956185300925378482621666277399068348291373152034988795517433832069848722443446027283971680141755357639465294586490712638536615839560693584359108081850578042770074672998104158632328510203067475630048540701631644810841027591089979579951733309237498897594479118933476696155062004242249352823201829945877539492059961585630839433825741792288405230521469871029173491885057810008065330114296142820066315902580505355695331724822317845807015753444041771238283213073674208654624974864217187600759015087147318316132748923683856576308309183001555100766898478080021546151236234788607932037721391877855907574993265461113889841116257114762414669644822531568454327527772904938218683881334426975643264532118451450295597561739004492898323994294363153257177965392881835223103572903288503189700918721333011721196701582733893942325846607832382788473651713297326010928753244399782103921895333844640578909919233231692047195994123047641658722834357137438707806418858675975934871192230802088173946264910821714012123026799082391633167530028673643464406207409563604645144446990658353319059999336458510869112682176562897026376049868497881314038954305963220060700920589418312835090024942675290603017130015495125780145645322850433412341113208213139149836969717822632343707797824780398819632560993542291304533581106733775589996167198097214499130589552835259444210613161869986704783621829189589585152844803492540576540392204757297286493109254153112918801816450217762662884323710479613727912234544753996722248149258660270969913622385055604720839970702887311995417803312484356728316849537611703427142470345134032329627313476816724772715091575963644167285204569550555218354452785049156426985526916309920672810703689368406304509965230593509981525721471314220306624946311047991897985532370949625767880045324133570253492093864880247866997435125891741256171547718215761326894211362043508713130608085935793001152164053794244133915519787717934109472240668580513947583358455478162781610489597898734609069007627119350629784392361595073595881583209869193562033602393876589719762344042581660461461093219225360387604958374133265061675955744876070356692384028435786079634317912707825765333942082176154392340174290277808738058715274863483999226125420391155892188534750103652202877722248409521724568998002743530046852440247889066460483852488226544436841984606825729177213453826613358794375374147748643799618313756446299937605586216088212829445571121611972322743678280682639571340005992691234585287595629098893062465925047526966826197490207840131160224627233900733898043229330509069559581967767765175366591836063709450736755305344279809435783489557609162763520778066491517658051884812997513011875433896635382179767824719918422968254786114140140165989857551119491266260553312153851521756774463565351117448725911804038684409533565139253276318056403102844167829401436614185742365973803089670550050687345996124292235745551690979651469016666595856805658950228286547287473832144341137980069829992931989024231758604203541763917676576704448885994594640266214413853113964244461615911230076962811049074006322472590288305352688934637943415130141775328740674380925512793186148574931963191627153760285307099954760607680946955405063114772872012654563460309492074639695343904242814131692655423931297028170520999754455665816799339360859313254599990556371861310273770523049618435135782044477963174893471975893726659764640913697964624465173352762809044436789609743359466694534071336624401314407328318605873627050952257179218169497386175284839692853374140303916266895510408989783628273915552264311650917817750945960797049029611826538659273216427973593439501842857121680849568932777248769623477121488169400524883192278859824400643637834542883639468759623954918256432154946938971128918954206244285245450383853400820635761167849041015069260999249212527913183566566915097060766897744579566211261108169358597310724208113940200783460141739549877391737941572365631828023792935341024067619890383256717023361458506777146972408390586548153017550160152268293431199817785272381390505095284970439255396687712253417295566764179576092165666638760801419443645646313139950967789664553900369954660085057689565636375043085084956180644218682261631804145420754003094986369220316998745994611634378984571377378635751111082055839260024462546172662312980298649143594671231770830409299157653820752931250071838810206173414237909780870242027850973474722399955116146436417356766201390129868806160780665675784189373289769903467929008422500745411542755282241638907974837776717901384748310760731137632814139917230060331057697171014541716933874110315124756101098730640022867607030581892792265917019165573177741579184798118615301396512689784587058076846123161722345643269513224803577309037378809357383183936855661097918066019483848653225371750524929885276462854317728092603036348148647623243043989958322536692300697305344662482111391115716035389061721805278426464148388064637677429579763773291905669778608218766831854126976160459434770953197107641600091048241131134859118392822772210153789925379072211400771363284797063876890204637066653104513147079879934676264311715451109832889898058540600873502051138099753097644372308800578774682055476134258422800710764050764158616239904330804188131093546467828691500189659866200063193271539386098042424590595526360207386341964855660187071372906400364036412574762287600121024551341111822009863919299856529747940852296252147680952667369610490611030072955606653064725858270155075730238844222227192383021348232085887089610039826027694626448232184607096216014297089973586453872736533892199067789082966886418222312484043398161448333557605562672366054521762996482186808364358613525415701936581128068100770978528203491175894024319135413299985275711776770635595943122302811727119453530631080828915685974091404359222069907225584888920949769173154726295335714287879919967128666008002656456936002605013881448563872940350091512507874172461806857726460438467576158827840558094838583151504370235186894259188601303136557635256099580593240435669108880544880459857083440402875831313841406674205731769715010651545459949270985818751672517043041997369728207495933494266021950411238584080259403723324961136772952818661681695683912258106457642612142883539660444825601847368243903054276201364367068627078972213970441947296407758958733447179645404952077869635840361281558419750741699513012875647144683887807929087450988012802235082638387659627264310435467775652343830485450557884622180844000869660714628983026248119156037223580785825413010478197829150929515436843366404963892553249366189648676571591605514018419900193482928255098498449618236617674423011707580267344030801073875016865617386302868232914634446920164623786259139660187378834077825708237032775938778280236823893902551385863325252284533745935734713631072331769774643603265708735180355990302901053878012203947409051087940599517942122416450030906381141561812309529896620788315201079938644174309560416174310447493258600392098613626090987154404672980105896075325696305870591364907415824349584098384946480282991085076379447313546408645425206953254247359400024182376130208180272980174571091791312445898630035819333715258181815140140260677908841517981722372130589978853272761085641951890660122604263100959176101228754629269541571982348492431489148716971957230023993477845186243938500375257884944281742309682869813947527136045777123201948828304538926361505345775856525603887116160145217582104332333168025934081546653833239423005747222398693121120092748117867246295099303290757834345808381035395863169187212112417237449286795875532873732354412896179503067863438725462040594376008073424541789612145824777546980129776165474282841355906016341804544737837243164135479137654441474849660412972445816140077636738878627961319384729016593707424084727420426486241588155432089787324398080114090638263620000058518002248248775920057313503272179794575457578935564013464435590126600011410873119184840062765815098547102468658052336411194060660833075117288043873616103411786721886670908250872327835237420501561094475396327159288443300555188068631980081473907585651662136595179141008684232704742306308469601291371456566259504820299753272658699517676460698196139306551203385048584890417204402408133214444268231836167791197193573581349973313888748099568985926251365279786620916685007720828078530354606379803317543228704351397534484088990834306084567802255471272874977901464660734747122555066807717450474193534365564401280750864677505378578932464430928575928511154547961813672797092972058561806541404582943965224733211194242124072895942369174914637165950919311469745334132864357208817865326303251744470249533132321645359564555499036493431976396962775743951467455078432579702338713608498780355907507304887243855861846858822549394765911007294946629975461057886382806104211721182104568674447916501463570301689772605427846307850788083464852347992969009411221162593617545509292645729126938157648551265794365802185210240357011179248838677879739053060251180378664988163038227021280447541238744606118309184632593255432515724110964099898958217418671144152341621087067387015039129350958727353184347183504453127407929456937110849122593194030426347793161719116062761744596674087822377601827246865788668667990660430759083071390731469015321822631256295864666023116258957848596731746615497346847174578678696174373529744627028802379610173064451905289754091370056821715057927156376493336225946352395832930904325000632110676917460145931079382824915833150352653650096201969319402276088074115595790105438597695047635924305839107897794352971364634387264915104999301007022776720448864177170519087817784130020414569314399758215637528606992795896995544737369566210633530237442332835102907964165368413465268793612483520934364054844270124179759681280966322882534085290718592104370147011158756387934132832862845301256959518603068830593137446296040959914249290675415511090925911856603011685550433889804181302054217816730958353262131065399890252981036950852679078371164067677184198713685755535091819702389418350971399367194449134063116055345698353149844523690915582613160715578669104291020847952499789191930433336613926001377988227175367438766916020012059554136875428046023647440029706544857623354231578809918090925554624605435424963805511141275820665272760769929144343511501703021236888191492368993709788150756557502260678688822141670753371706749521247872444599178571384243473523351399330622720925041920434871907026815523097225961440860907094990070256253421757992077950373064158621480717467138393406232649616524905343139376003980066985643327058701573060273105033336792629995493141098459312129148314685113936418189161596057456024093427663784172583555036862614706626180936020594866750195558476150475297441559263564315480719276604844399883620586870283400225299295249268810295744261285666530618935517216771324918916847021650171835421011971850292878826751051450397925850032181310413842213627535603721170418676413425706468570174343556137377356775257236570739847188797830162650629887150330971592704977969914349149417227590843735793257612295854866727439176035180372339132302534003985182290325705936350707540115547493121738331126147065660165385803976021895636345581967184599447650134629003711948225225376876828606521952556215231955269097051058627168969855119609041567346158631681800050342309895845953086745828313113222057375520505007419716160276707206558077872124361249052725983228512348987252352679197598438901636853486900301801124611925159927423458188200362026254119498718671589442759002845525972426390667109847735522422977913266243004183596630289402653157295153713684439219165250302557907939599062564492072653992893683505950295177792277016959283207370398609681321817124870413210475710758838599212173405959213391576980194751436974869485829588715657291373836653257997451810898883688704234071249429432163117364958591827807248985926282013157392859620256016281339632951152964309507113076535017678757362828718065570362048650008807533897326978452169811588556864229137625116828848402136261460652578965695784879571480253750882803032655602702767873135289857486339574604229742275275944840481945164190623563317406475628661412440092502424483296337611193908001147387305197722471091335691600677112219737504031942703221800936249982197225112324283207143412047547503786297165467765545897096885856027294176604559552685147819555681288706592555025137646022108928559013100194423008045279318948498963036673084269534169017524182164702445383374604976796541622727427584741908923598337305512165021805405378164318461340784374090976684276119167768473797659197986937559339470811112811380860873564633474386155380521941554397437867439773709875833692765120838866489041004279661498295841346594508493108825672083961666365469062121666652032160401967036951110202331581370834319887217682657474300127201030800375204083386876869740648272448376639416361070037496769784906565052170292344070786282723297015723761973479883703320280254176901407121611120974763144782883385250406632772837659557066155878883578273516643840375732712149711069820946571803879518689099896124096097060902577717283649748653795686493291761060180432569533256784451717432168185177510467934725836954421851160861152310390328908273403985248950622942521999895539552824548274674807725733448428379911872814372582326635638886359850193247732458183446309336053288011257760648658977433379911595578073328315881780067978265058913999973746870537154644920570547970599355274521174337497956237551859792781442990453264427624119892449150846750036064733234320057710878325777741184882684629914439020099531601858284620776021379379578359307974979235298475578667982284160095853994407203513744900525994447165844883015374356980406395076112825944521956388854381729630474575656075346725397943864988921191774711126330125105680245610256233240661433319363307069579088673755755221528347270204959741539293095937189067251589158347677508806864510944430585621682012408426750580387369234558692976123377024106999318315734961400079727408626884068570048962460774604497326467968729739839507702763484061977577026144830857202747557369351480085115974388743800421386952365823997259283958807633704124867866032779111543329429685823862248498336739227651368954340924609477408730249226313262795012648463594517955771711542045391905681038231050941956035921465166539119835951710147648757599909292193593587623009498850425031599909511253923261512654585777682654888545209859768032716262885352799425027482780472819721859637058609499602180654691842973230139356210106901365319888068118237638447879834938185355621402478540933774698020032332319151816427186852424979616736939737993210786760441693773086805654921913433704626117619612393872245964801629018267282420122644087236270965583354270602169878989943443007147149087856848963971360469409914829771023961689430295529740297053673822528702951747621975640738640180368811880661250143747630379928383470572726544619847325970003396671689286415349504211192535961975145962714571595442432136668823464392731601256340453123292570521499134235963897101969696140514456993037484628356947920343106893247164815748502439982233573584713395049469286670646831525385093661260851616121360578392492594517606849598580899321604166933034723352873788082066633025052507009232776884169093315397322177457659336991491822985309200912530308819512785969088322199984160575032757936037182438757745678328103842128511084475151253245580688723775768215518929529171269842207118831760309690388457369326584188790479437366756477997782914181514748486683665068773782259552463737466250260829965843887915035504966388648950329794770329787606094829573738368100753666189635584408365103926933401208631121553317366212615043244357684086006323750168838610359552306598581131048540994262451437338610292185619422863840515767452108855728388832933704060504933546699465395746914473754400788747442729688649405053382447962543376976791258763889319552000177456568491229161850263377986858647219425780881437952018506828730180772754974291077073198236750451120488441363110157458615723535101869633271792532456268914982849568295684538744543853219735141689728799869739728846311463260328652877571830986992440580217800833399430242699009831207853773705452197156805222349907633088457440897013470067842088753070876563446448091686808500655172286051394914968760082552825876261319951824741050522161367935116081423788934843472586162703849071299766205805137760660259663179197157704887704603940791156615777783407429511262145067489276405971939091815007955549799324583196440819192483164061101558076953818438012235655955346193575389972928287100180964021229626507209657037940157811745541029544780173989717390048099956018721239936377179226764836113066499430012891952839388719715558549714394325268315657837619296233920090827762743811347521805124635420775440157071029712342426851669139209284589312637193392239383537008758416515792975513177281390236861712515138910413113179038572278868499738565562486622420290681185052841342578255805501442152380548073110868162226561964012604520576937121771999498218920380981604517510531072771462363199382350832646103983677218892805840920911496811278146437069728081146740965523571927049577726918384499383475082836051146874067078038418025809675829453858133101381795640074814635305122103069520708701411950745740750994344899385829755868599054079908511793132790156279013279722599069198545009985540952606298268476043535837307302054779857548566327083497391466120083596567652930354093816212935489548165749526809715245321058693673868835768440972659916811857948835146066129376870344929591780320823135953786353176391776692793448143685199439752753130665545168427751362393424664405895422363409747618698211130884151515018313545752429658587768764827267840684671508389609713732707005922588431344947396307661790524002186850019349262633555951241468004533010937686254726729023624176403452887996633252827904452110327296197180789766972883018630277237331893702675410809677848564292754367119361198217867200353823626073441241498215388949040249461443123040987638435845597115324810237442738450260450851989195865473227524422270408025594408223072406129640435415206262573450786409523230479473874361418970694352681135253032724232694638414101701593372956756973049703748254563289935673221506615701687656858378393583451878230513897990257557598622071328821885024881460523904389584231048563692661648457071633126919034098456716358266080590952768062513682231998061087918618176330934668487400060442556512846627300769115078042084812187247423631156501702315502966883087615355576454598491779417108144524494219837084763502205730465325931932419752944928419427783156658809909072669987449813438445452112607855675360821908370685449337680085711555478270557619546902755236837890908064064600813798721695365244004382437307129882250726091114284065160505142622042189253091432325493949793025803370899367501485948835094305495668830705148021139308040300798607938172359684483213890203045987270900336731068352237909210830340327805551602216076880362700802400054523549873742755544955341290876331744394664837896149951896276261441288651559152105096907588353846276204566111589462590687120717176393291968534272409242541428993619126014959741158433468015393543925019773602346993593651677140254591053161234815801287583424596742377622665610776182056841575738942968685021216566820823930306573294237324440697754212269538396136801303199482671508669453832337826030916117971335016516254506978481890519453166327572220684954149765932065517978828155458727220643822230710939942573085664219581431650069805601024756871130084452104832427396640305911150083447914212401650767985798528308719628139360735071800175373840154043106762520558305030618962682284413643126941731349422731461796361089455358394697285472574735819432551892857404854562128565342173424364187074484316724519342859299609057293178569383584098236664181469674502989696473678341787720158160976154999882682045319106542979880693891311015980913376664310183981215699172931882904936547155195898013450449155081481937101570475036519521257655606166382975373461230251820568831112041936267882917511483166133522406599401204202782046799967807658350059837514663888468699201021293304438298351588944235148450680543195685205551459997551313135311682600510161204179161341803302336934800233340919040648277654668830357184012853902930428914595443458722944106081897047855080556702864050437446352780792032290120866967895547387324437928814688723978349320832876019553853535233729439414605380301869594298680543931567291216061226006805169310050998411972815721570527705215412931376825972028372900907259390473462249544889039530643404505011550515080576323027614302744878112502235570897370734816668374706507213380981621111119801039273364727419018336644693802775030977655649132993646055944331468428432637097252715106394637891969662505547559897105110846804760565091093634664183909062648876319825122712952288938815614484703188016925319933610482796168872672955977235370040639574041624683096972368282554284224551507871936383495753899719124023830086278490214672226349220226801338951411732045668422766305866774089105126664745209210868004337891630125358320260208725688356496916898621963394757528753149790380433509489169722798150431540008992265656016460002907163031657485319324377138791708113573577766450858329899250807844397809195323788362303972274252015386385601844943432682700050830065418086440990354786924125357077531810163589375776532390539600890995849531652396446164547980274759704573237373991583557802347253578582455961984884148898692032886832011564876988080347500386427680455728982047857645038051882819350005427677482296323307863119506515545727169551848860385191975463250266034347492717791370984625585147751886129950671312683679551411209039782700018458061538974180861631572623505385886480129800628459123321253339744273877279791971572445075369211132812689448341281786369174093039394388542150149789930420447829337906808058452162722860070976259634115806287677405147883864065080761777605042438934869139169376650768768365260511496346203244089721688313997115126510158957288969323033658653935753278019502205414934777763952385943300586363441396058031152513053523721176236405270639394325125452708814036203400770962137757605812893872044983022764249679541638605585921090779947963841301831229208964803842665345965611709326498884628251805629193925724845644368934590002692967694844030614737842358020942854775716703527589481961414221267660752906666593088395731610657073074268365329978817652424574025905506364214771052034744678800359298973798320384873734070189687943470473103864031160242492399847437536543750266756596440525138835070915130266950551243361636428193536586238797633555405488407344425728031742636019239097383693313495384934750733320172334936272911274737037941107411401670945958633384003972720181976250607645443495757978751060584801520789336228956876999151119212967489256259043606749203926840851780214170422880596995207548860513371299153776305403647570574555226455456203221881310691103825299704191488255106041296301123369835549441633708835741246409446575786407588888944397358682049687997288475840573218252776640332717901121430689759468725224009233460085329743430907059877453120384193368303489521330182264758891117932202597358344912910557207346740951413578433182615186911637542505002799189773223414674147472126381176997555672080862277524129869958161064372472004470690822876973875067545035442735371793527962203663873487809838448256807434145817405402440158766174205081123750120171899669921070081215369441003251877839572337795323488182362602809355153262204715740803993281770596413858868649581655892210460012398525554837663686326996448409487806910647117850673002640765881838102865446329325560928812951334688351675926750038207857566879589040046899480956230739229583746628348149850755869271052639520140990337596676744696835244330035461406006848247088841989849971825489691429074685188690770064493939531898606330988613224789549172523901713332920088857547192118728722025053798124541187651735456638889178055976012841628503858075711617730508388639722884063640879082636238195349478567459436485799133197239283999375363401751567741577730256085375523829785148991167456225215053434048594508633391373588061885939327342751400954914617128884918742853537775906925443479002723636058970166249128856026945686762005174607258212631838318269208039485560993889670278546514171270253371516790262410910999656418967325855943739002978650193141636717204267074325140326105995168676506283532227210768331826513396760815466659477325191528722570057801354519846442983422618740913696416483929320906113519859624519571575377414638038627758776483366810316004917266317730425944314641865233514875855414382948166278754302109592063369934889842858155525147829254804125435015368475172609342173579932514641562752426055538985643432252382087111557414345244664430339742492966877868376486966730232707298450278925766969074032419289763225018046076474203139221925058714056139723444976753974084791908956077051961046557195810558327413934940917302589950294559849551594168966313120350392560793885115904917204560943303365700979992471617901427564697537757207561252489682437776296895978692485177002422805452574673625731992968958626297537077381410957546695156691104396386498127072577343612363024285742795669750342710701210929106601145723735224873975081215552385506022839825266169083393690097970739273915873723445354522914655289431714414034680720399879660073589395313517428583800792267966892036881663112785865950460723519388135502446194466006273895717331445719027613393083031852205216076990925326294015835005856726499646690194455635243266243940006586604254091851995866426128021098496880739298094418313283219004547356075823108449699679050140162162769888281032310701401927587640134692382642899912397316886023158519354245199587737471883954325004512477771223509367068268039626839667023890808796327209439749135785192209393503742131728118078318780002041307851351398283277900104023031963831961878285791508176100483342023768929720700095268892077620896193885533217860397375405286529042487050259265635730111470273132051154549948777997550090891058962205036217971335977483532199290772843623127322653145460327731366763042398732741268884755031899250826362717267515889385500829860361320553848743281729836029801260479016440063645301452288470526625266175306546020530861989768957819773705104728481669418130260625320017925443742658610971288197230978607044012928320339203962628640006478181592891748491012769186870942026164521661804860887171769338179325724600866104322432965258496594101812112763475202926053690781907440207057002453094626812180072690043485720296695382718698353951529261829790698596621050452621281938409162622324042693894220321518273962548594904706618977557160231085902656908451397635975741917575550998729182430092226221471852269997727454046385555648936607127033817983935936242297875222443880711455909976202772372155210645811818987710683506054000629683427409766231719454026959700945612486068114569514981064900598129095904596999220674112789577303141626426112155311293776704698387532452413060747620373305699477460432524638650134709746350229712975998453420400277438115052297524789697300512779930316064334759288999846500753571246005986727406474722804718289311112828021235029987194601612522944399312216333823846070587217487232807028173888460371669945294125518925468783759596293667143114977074864170440789557567387919807139362960532884351824686765149353781130138404869366468447146824117590226181731113740299140600009103759013531863247776429007519492266731375398695386391243375030765557159380848117242029936426440386256554999494100828252621855846440247752045475071526805055213467389360170792139521336645082653376101492825081685116205030417752908677696030502289709290523074678952415838265321426741215458126451660321388407941952274074194035335075472153549311688033795105437743120957870099808622715694920457088265878859647145066604184387250550139756739936102201903578717353569540434899733818316535588381651023621330598852012747007033919522913618802595376650928551556973147371906933552869020671000207903340722477939698644512633591682229227670658411151790048001497564336935093620895612902240617179967623719880624102566350919492448644672143825113051755997468789277550968548869460408320707287984124537884638460551571977509618288451816922744529635628967956977917033322990706175317554815968357793253542113338156049408185456656484379502657029629742259024834557200783696610193251127450685251204186862876943181037014045830483499621561491660701275406895948938939181144224125097910541365374741499494987094488310403027685482210800252000029079805752335748386264555432552200570233866255855187191219955645312915850532145015007820317006726503824863079482989466023975676884773709962048891849418930328752240160584315827455613923714403552090468854709194856801967062461490207200927851256329379868214128786539590928681887773295372756023440124591123907754998928392648690965671965732733295850926346712146670882746528753773790229677474079430349996787900714719728666296797889367843588868420119845168233858799449165475818759197658384481498021039605172060993019250365307748178915224673305031779686693233732150436491319099426404085448721834503149372870221441705054070066821216227646543243940809233220896689923733650541151352381539376510157082351778787689024082360076974290382670591080164936242022001963461993962427854583763127806669153205396850130386853318966821248465510305931972625829333282960396996198889435068061939822112385711622868797780781782600223653067501718550726671198575436994020636243477650121524493859588249762084081040332453886283012037030428006791080985351180015558092423695505541013527505900164439816011564447901467289976953545354846365045238553971834804802082011998170038189571087357585947762394916397414208860851212258611905534793978391294714341841681222003808995831562985687146992903365930776074827534017571463575477051106192371599330833973107216990709884307509691614795852126078040780048968561420914902391618741528978202199428498478186177321193363566259539746021849146137282113133473208478152790888004131181433660792516549386061512127196479234373469452745528650773009714503103465024449833839011202776088868086903628059174698488145855281313110097583804024949504369628969223176061136820305055040342555958101506062404555817495180604793076986191599796490357122426771494368173443220886815313895533897357999633726945499800669190017856825641080452407605284099933747588565000557776419977974179450030730847005578417408696672111117054350682845953944516113403755518387391866697607352878684903403379941671730181359004018014447777868327080440575759948001825409528777937985488810347349235955803588033458112545888731074483779414904965378974669076886632397856764511698866503574654281296349647808219612368848390182251801230330894698820418481976412012878876380021788089253526390860797125775830731656185050113839367804332976493326163239968124348204817893380633075036132535806771869585850931771603996026074064468669243335027475601754403340615167310668812838105682962396074597332309350664125238922608165068983918191850293882703324545309893441570445075368304004372196931482323886056342140162085598320086260145876605933873956644959333400297953294124735775152505549219724951759577789581808535080936334722093696722779961778048121073767344550424551067594257422557439588440118760600691127609881590674672720122230610260877057097194905626398742401984037380379359484898746026444890301791008699690374284223377680248253410279647385338842267424910378093624697464238758811090667375499634533602561264595850307874805144029147146842660442524330740979502867418861727756671539663337647197591416552821084957780005825985062230836433710081567873516388129524802786336992099816514224140410684520301922579992217487345008514057437615221879360380668630507507832467011234600143022166972409445020072866997066591428491758702503551407085678727101283589732054511727967872525421274631913847009884437015223323476795480391031187047635816344025888302729736365756757545076067937275611378599352888481058325919283837482179845631617671843858053232387907977794966951576143713330309429251684539184751075786039872238155340440705780278139403554377677098540329091985141766805857681883724216531471625625121507261100870528112166055766485829759572303797524648255318468237970687312043932655428387341374977509295455423015370214141835131823375695088937001888806118960126387539311109899275171813695498274750922351629292600830823369228097374115985341915396934237573804858856260515232023038774054978847106072887575701271706603903317886175967661445546004187098024932500238276883092049651260589894573984022591424711575312011330600428664477462027327251470753624989334618733940158343628153457515489682261806350909023072380966129712401372686024093130413176230983956251071350761307182598623777361432051269839088114295721140214158914555471699626529617805027596201212739244036461026702045405940809186592611276997151457917694638409996965964041812767095648612188916456181685391300522841032976193616257008476733949709426955776963234032845539535352582749366558102685510072755730568684889986362017632937243679899324687391938242189040410754648282800989591388717080867918666129574248265180011923192538086332038073297647662392519114069115920441930018861962627378120232514503150970444086306899178522824701550418825555544040867414876735580121214478441275306936674831212692350403912284246280050689691191542376291808324733452827428191871421264849492589525585139877900757931171560716045650791768470013372701409995095083093502129044257282111506805357371458973010196174434065541003898993148495324651560700563392014103696240925431191499095847296544043293305962134774188510811241980023033143234108769393455674600003802985730639861541721371308505407148753164175963593190209373589042044171956212625126267137044411903400133520429583856010873245100098126249568231736136916796732654094265159514897256778435029150869491809933943010367869321548449229622221525357981850045076778763140274644738666914535432625186510403852249216369083840454976592981485501339813732390221700925273708961964204376457035354791580989555963245359106216068435697954428778641039280773223102826858822360416961193280120225220748427684128632696547448150496518706845542327942771366842029990778546793537831939003849062763968106461130053490066953867764790403298952155474428565792837522302151031615876596442852901214313622973159661254988633124750983727378851932152882785098555131705481417843155192720261485625326428557967633368621801378719643509821878508309316468019813156331126899894131510806428839959816385778439913523743503715162128433093404626380731027469096425782087245727355874083474638085767446497721041649547436385223317573507843104890812104856304648107349500020753358344476786892355617634811310008088047881007345475503411635510903043566425405983415685293647989106917547769135188107357266002576230185783930593294330525603852253226316604228027731029159969525057154691119392657245602536005900270482081909856399432409091116552077823940449707666935508927284152604069088325024347399349241776910788057876209345012839228958370431374298022923258530299735075547064277404588094886532053089900092746611775360187491984641583460175141388488201892809282688034202196041565380229910972395456642775471683770748950088562666068951279236995322329513904099683350515680656164261768468663909717194258191074245411065288533285846437434437032417900991458181633977929973492035446558708586396686927532050669359633799392925784259338550194428188697158743149405726395866531612569038246445062385523210643884767587831651484772083701564909182346898964743121883344313418766654259637329853097936727171760647168793864797305731607888332453292254624606994958336862024076349542135214457031185335076958446247238976754485811182185742850218554800037496015086185320886400558393595169796541241445748358808319439033077443655845441455819740257411317899465374205386296579457127616569008884111820556007002286472798780457822606870437917092854093970555553916271068436082508535109358261118788908456777274504895066810664701960436302345045548680277444886076912615583307906496083585769258026951356477524470007227108432877800376699872693746646733396185494149891298040227100359391951693602500882767105244813922780811024636173480575106091058776829320581698693656985338042269873449053610733439294890917318576410082159425112238336493114144975720540856938971999917142873926018995927040026521834455114978439775320453658560489773891335268622156305536318432884331981150936158438184613174325266516644634877154353701841218198950595470787532595524655134223510291359987145316282952048786740320241290783750314237874708080598994837427755093422931168618797993517259653213917889103499821819684136915544725735985773234177607353067597315203028723039739496750543997966331147803730435708901367500603075539337694436044761108623300949451344293897193791098968674024722425315245074867421960724996096597804754407101126168002472889527854047461851901302585458649758911896623183191297821543164916494669533734129349741063946811297862805311429695445240713577621657010604510869986531461809233046215227962086577187402582899448219853573751058120327321366182953543758365677317926662793482317826442984482370448114926374634287503151221589820225298199210408062905929694375419802856884877094888242781911704123425542464494140970587125522983886776126630561968068255296198304089167635043946503905228576907936247265152531230197326954417210969796652392606859613614062751186524544023955534291575370841287746543479433088678589392912584396239920746263714926846128864898049403401858993027750397377063917766457270253031822399806841920008212981139647568874287849397775776671789983864884432199977818435307500005558365226699585072896608274753192070875676470759276023676206816188784761856760649185358390611857385712503988604436500769040627344314994498183502107009441891965787206961981208282626961549702740894926125087418471719035722147946447277840329587684832072881046137463005313901084924520539036360431094423806015626585386173416728626748661391254432220135629150755719201235444013315214082301595285481744173526605595960648841784908013648468827518501014581956939221940395327571044506791003793761446363129195933376866729922069495053217001842711688220080226910006169804584965023592518749798088394803646637429237036616109790239866157015304133507382341245442285905006623606841967096947555514076033499623487779825685877276510340993940132669933941086672824118002411632940105621252810919948235305051280973594819271465134859738394129825289795300252018792393578101820674169359552012996053108791206827011626715507727978270406207280386923616071421438835774010268508255384160784539033848323410225343831961769341490072145937775198951694260052460468340805112544644615437496427621026340333200537041140333205108621913800936102232555808482210746641730381727255675268330902029205179458189193690103191435256073754839460903214183293389417373398688109725249523569392055785530180707972903074697531270085782017011689733867894135352164678484669449410549252826934382574962098418500880779814461340503707632479032026861643560334659952684492365728253761109656957731952079227270891876092873544564982118264130081114733373929278981274659750905105685920533197576757260998369954395222175739572923392710593796877662373693339218169929152882509556696647777239088673556357369054650448376318120576120054704288034477667746765620141829844027196955299315079623165062971555621779902014307825182962414885237499135275419231669756546142254541011519692196371968007182008694172590788691045926582606882913904072595327415588747438405253135884097007237412440947327726084476132158475171370998464950559834563921028950720682442328439242221225177614285239657352534137266234680246777960353788835945413098431659701654963485314063306987348110880503819914465350196631660572333923903957474496929654894567161657303205046134033457932064675374726354866715046537795883281337901381246899153666723931211741197620765792341957571174924222314624917440381822303650232667682533166057968443263177582088936061997480154972279295400994103546642221529954946562835301068103890572594296379658300608373447551734093280610783976789420977019832025979911393052263101036933665044811688296642031458110073307294901704229667212124448688962076062848792174964523069343964656570560839584254530391291127759020017150875180925772323105219156212460782095693477134782976580421747036723606629716918521448586358066412249485587474566661251497970567032816428814563056840435257247401918358215119495387546410549970998006941768371821393650534045955271201575039230613561728577712964785884413190555032629909207755241138748390802742482377115298013365801638782519590883907457353760479386960415667558799408081811759629728506011996003600214176532269290785026907863898137999458444730018172114453955206308651683543599333138187481078303958260110794537833198017956262979778638414352283497288198319640065116653568095999721997941934114150932892340560097428678341707700407855373047656716524042069378341206038307002240927318745347026245997436915429190179272107110380473313708192647139180637005534171472451304973404704464082645100093921240129911744331891555822925308211309083895691390268366451093809691460145285169355778224758588617566514887996449296947088732420493313962426524553088651825713127213623757362514174019939805480077520276507170867589429748179883499524151710924019930906522033980689328477295510144273347240802307363637918139985653379420837264947245226581043797820675340011268595862497949928657480552306958232648516796842173235690485566813786348188166389387237201026413574843479261366311505812597560727689025829777169369979524283141437808417155535173970480323468549576109033881772208729652844253409056689207200705667496278283431009047221123368385795773211336959747699993391477516538747470623552277825502230194728383824467786284473813965676043442834375999084712834533631545043486448974895756670083696510784576335083826394182931214669655462063019936887707970236249697823375579041870865934200376371090162809138725262247865690093047125403184771920838642852340716200590290721125643309667133130451738473978682087809356211646879064906610439875942272851802541438773341196980097629496923214839637053456129751632198217722884387544596267972693095378080235080401134569633459101413196337114678156265935312042332587504132012169900865991092911977074973653162193039747891881439811615085471260795901386059876042321939477573669849291156637331621063712474985853890137721158798508767016775366563024232883749477318476828566365911850287138868773855901728419918704589700805315168701041827719308127495441214596962745736126553594522395681448428005033339576213588267505116800048456222546267594580927625903660650021587334067236555580495209433570423589876123811169993265742851558542103297594783163554776498269270900768931380053576273676453900939661064989632448744870098327971324043948170031718657987417664067268989514422810962444160129633670932512163353473967515164626511893989278960584008975062345423683347602048565583360875738799707162934318702599244157694008778615656194628195578989994124157013681559372337400790356491151176766389342784290471105307129952329192823764175998661361243350580681629144125809918381254447777236635801644510721100322891008122896654067264820098974423379883541134687354605785143762401076702951129130776738123523773099705546101791105111650970516060134746826595744386381512100506504799960581817007164801373335103011577074106949403445340508617264528495668311871977680641696820568090413653645822325498343486844390183051159182171850842828948820692849065859530331912910376570336794616669144779790131399302884419036120646937488429549710770561945234844617195616301659660790862509857129814995733933427459335369037920325302517444900899659403546717170744497593442682405693556090006196637301270878037651719918269038737913755855158727340992184814274314984285548890443820120646553331089675691296650308681813345854342521333703823097315462276306417593818583670357092335297653834193411317759821517680415706173033223596976217920518235223186484513405131027110732092662658514984259130954388897739156732777112086615779741642818681725699846955593178453612114525426446174080338177638170849158299060362641136250774425001858584353557215967668453943668905710157069092377191256011678428623227606245590882046615705456392033768188769448758077817295391461757021101962392381235683312140222634417059822772689447103761330718013520610669714487533548514905331003136829368279314400159054649200778333734802509857347683681687295763208496810302894759692321805407755052290723219602118208386266958344395228034226726381792410940573211417810006564108045336698822596858802547612750364445309061454724944514278746524216567672047754626111067414996556738425763757488718483235002958435120082777631534464699132178864721181730263379752318786865486156144105660296401032440729600760876255609232226810416686216123366068516355388409307016301565076826105537528004003851779508995699120143346052006450043212481927321368559311369858081536566026793083447351272026224304373183155325548816461493867261651130253031651343856903716614253381681678738512062914709301023891535535687394949893783072330750372594977572719312359620214462029331890659154332603631720971999597427285380022464783487739182314428945538299545362163913386651194246909565216889389175444631906882782693565915008162860203993901567225944235916913307676146450920347621442163802939206287755739231088313406098630957618700862802287838984497992278500623141221326173759266198626525580108508146652605655078948864470927924627810752395326913963735145240783743704534841039069135790370721876577402612443798622117079808674116411517312614089440689260868991753884205868409602089374939448903603622831676939829802706225308054151710381774589825063739584994542474758988537585634779149516684554754051189285563332062654527389212301073521464214999106318159397393073780030832294819109000472286633446823408884714205636279521184134944352552018207609029780832404063941278509596648412784942235438565434381851011443841656031018015411807857412684566653484489259682802732258811025339323496259240095930072298206922552931272776565369203480141241767964313919606215031823412349243059359685331449180710056589958233359012219058847934128008475392043326811648338342584388389090657158431594998660991559967548013852400883482492526514436638265788926935090234882009463664367117054258736668169553079578469120985550048996204765408575588321933891874445091820325920506804690875975136680935032989499519439267713407669314637221899411267831025874836073378501147727826245899499421451335662077521882546910446071658124669805623218566717269300893754189791916741841423996895038182870279831253957736302852459796514744640915468125499122968863035090651715538276309609592713688898312652779174598905755689658481512677514775752202738014300719146081494259754389886908847798513311530564288103326980198459743513027962686314641951608532782898144163223383845664977948636842890485099935839877236923264992723099121174340748118966219419036216871425479000619219900307505473944894855150400758482672884759194932081560219690193075796432031791619986371610734531507722048022983442821144776842927986463839698537810881822869929135309932344197907566819893740968823131335126795337767770850191415346846951862324428208292103791304613511690958655823996033789744567965306801571592092424494150892165274216607684067577875259678957187834846532410004962192378478737982143803489362966914862756876800346959473345543427072206141296162699581803778064605412228521532980155775269366078510363674935496478578648759647849936397636109243645372196875193056885549920132191977713542332590715967282260653788218109032675993307794141262250189151324675668696329033722418438021382714717772959958932871051910019007362333517696777251782859569315200761448620099301074526836329971344438742125702993478962403263132129854173544319022372723824352446698757805111237761398541916850655060837282608035325344471470732929187655814424705180248799409548018318221632851746199126738457215500970205846414922378868653886429237941769292803021878678427119533928912773267479125897409689835444875142493699955822114862024601501161010102967272544899541128915797741179665460696543276580604486210760732917139525352362535027071681261376563826265186275475802264262381634713185324015955877756593498497705543576759872507139021650101630380277466096166830221226857315787702906404977645728301940408330228409957644034702922114809598190473757071179202561599404161585944791354487406703267255850134052934863866125373474290614882467981813496461468443902176048320941559161238879761963381676581139974654637105149342397904066902469532791288786859928595440536326431614462235843489927270004954318947230380305568323366393579964097501950873084229192867295192977676494972688713843520074177287130102229112050408217936642440168787592014856748019441935301042740955972240326496781795153735841381585078265264718526185522883370551193043873722010114409316306739761064279232315402564110293574998435842918708795687697728290703546101564666949296095689124601324947476582114764945790664882195642988614943821025205383905564070286499528451682925319232879644976370706046214118558637037208047658443197316909828452775299408039528973376691284388729980834002884641493870585969139386069502206731961648549814609633512546412978306077760559032710678769181737749042506496801401042699170167905100515534024117076030469498448407463340552101015532243404694343269147027251601796065636296166241614047582827306731714114176843957402269084879460111927169285346231169026691035923756538298048187212452104649512165694396201974404370353246150402856447099107459064895907432564841912081826410132312613112779470963484066136596394650812841089385079236079016603610238932568442536591358566895179737976227812462156186424313575955029335678218428434514622155131207157508536162310346548163590107139512181013060435422314462987502821273810923940860453735878093878247929869308628219129861118164882603794159836397544224808035386067858475903973272544347712073311596197469133381200197973059280640408059631236142005735928309781124988243573766612690749191638983448088431013753186720609967008837211329770628997570833784734218181272527580549312155034143791522703034590415780366027528452881146881261644624203812253972993155586845153166540821657575438481858096246720150551136431914905409962729173956116080583919079261904620181823782640357744527311164196552671758599775401310143040555992428671293318220396075498674484586758502495170211994466516834279133106193608187102548355415980693099518753597614630521110002018035941068337849102882967757369535142339267165590334695136238328428394673556611067631586912735223511499192901205345790572135070473744847190031570237836269400683341992926724457106773659314385235556064643833031664338099345102262881819235271504904042998176100057532206574077373954700080197397918109280640751360798428634225162046388739504657194976378747778845155874697936451417718201976145532468796019099434163120747170740322209732797751341745560239529950136051615549605741520550215263604021946028056877480566004914222812685542145968668733563609368288548074470482113103459708644457004116667529367824534577302096094563112295832103241860842428233058042737360337818433195370185582726796509380604693190417265525788300780350445902195419326789689698357135277139786838821287983421202423442191426443736854376710038010519462983026508053555628013866330841411933513039602895663660612630738727984795551777386636779240146983843336417045382042855286494378556167070979226756484077522736149922141212339152815420966823845516738112723984166208700577898068880354975869428790740870399310550486138446420867685664627371435089368404235700007432216921893597010431186973552861564304197156293124511700453791090842696597443049968496473332515999758215758894313737483175819514083684605248550057902749946200370316040271254665320860877083342762369995344684343771991685380649465695744749113588222165142213080069444387229200689387974002246592318552164150044927892652264454236596624413432835737475243211863063616277329462038550393445399393469184441543603975493511697761178322691213895508227595527698487948121134709289428928043624823507110194296848148747539470069850629164701921093593367689874943840796294438664310037215037666073666071375097415656278655876305990997358347517994092579578763808992034871327624980133904968518034357443887534223023802095390668903202092174702379743107325268809672067592844246873685310101312054071686332045944965719935158063793618607919225735976460346705469746341367265743756120690061467500282288510231145357988153353473187266062852417368707653033044383388645990556565808491130217364374657784364333528279718934102873337086794030547646330839381080930458969381145824364049411172195729377362700653021543246216010110602715416850348564794158130483293983532767376454445725015905592160058960321606610796236170474789983862109010712950403253112917074105220093749274713538593802065003458025580606241325064907592775858655874974728510306236842694006963288798187346465519958989681387352474291937728588133822447301986188002353369704728485505715225187199488881240532528086439151590498707887087684610849381704692095073553734995733898262319192330205274487972744988861389205763947754229154897944315862592533858960490173575357256659325714754276993577500000880280898432890169682380074006741736497330069668119424342651841380365332235669400283406005451999654420124169928363368398626391776291583099307425531604095605045696823907044403920890402490603347266249361798526861610185084728937478259602655580155481051724616552037998505403603705692992079008254743403976201280089557136060625821480976357826692505835766188205620193647542723026510166480608868846748261382038838736084306295799795684518262581105568711698163458274709069947841500084576133473919131199148873558216908409690606453228388597526790044060566979172488780326373506388096156190275993026308581770406708483427617629996069085986639376410128607062960323547207980641769144859771902466300767375870127728782749021989491266767710009146095577130637575022630324004769979274736280131434363824436773258124148516926295193344962751385136779672188422714874176731222996682082078255532546188804851246987560142816700949883020025004825241726939641398946702484712894428491783847067366263866724412736305977165338040959368525539310740341121026259004808564428463879390299672254959347065269394688748497739716590309131880336443617649744343271720177316015877319944003657323004592494837851231533302877266175060271684172138490623510381057023927439351681955564284485179317760709503337846676332985655149995670039361401140041912254513953004156767529234659490058007677256562747185213860141102009892593887342113859019227703534207219518374419556705124254526502327812570771055762343431872681963718391770124991268140354195741865740655834906636232674296579582428396352671404161489935570075540560398625733677856022114978621333714665233294976068969941936316966756284318007661354731699532886235304207477360455526383388584784135736525670539454869342450017280889285996460112675408298636106220939466519795940015682220451997646783529581542913482047490554059919265520873338516718488606617882682344859773662860946439021102636068456223895079347780438893366086391823466756636138877758555086718690679178792342929397180627811029548072756780698567724064762597370638866764993227968612072023353441053077322838306409541143136888033545740912669905699613315201395793960894180647273083226435808656773746666132067878590061711595412786174765931865875647904940342977803783568576713608410411087435613649974749598705976865215129871172344200222116121204077953193104309281612926413098947046280210237167521079948434757148652488280415927451786020429912136005769755765615573250701497366321205286798078135638473113094365399542850295085050255361095617281832484415723604321002203235598039932389057025338920382256212685455591686962059027997564320579365626039146854112116445727750565717368950596925492735437295777376684954654301763173679493451855551676612414909289086578013933478000549247776193096552781448953657707446245790558901608410610631046630238624567852771740324018419927115118314796728497912573307478545872085664044427414682673385287483644533486518151977533909451199483024662577606256404424139117931330150512615856027988854550555292042564217572713167120627947099769967306660045383821439528100970433662039652431651688772279223954766751464004606529949321466025961179447196561078381796877068402057480180009094998287024971378996667711190807033340645199502702742042334803901078810464324711472290988616074397811464250446283516803753033524172196486280312098019629300729468737053108734964731170107741868824683192840231797874854521136931015839136644937116909593329357387674047395667271764495160726096759287723251440939996750827831019541404614909730013679156500714823996366630138539878670987418093484771634311351544151353537798827861314829542574030312176900150840725559191905167284939110679924415093248094469229962768979115953205243920698666755622185179111459045532042186264891179058888956961740704084968486860564347737809677205378125105008742132738548337078168829330210415854856510621879680930808303359129097058910064587263050406427420140804746268457226091247553945684677899130628459478617115150308003174354755772614535114424163012185674281490469977820356625550401069421003194278395307938265221623228539521293535712769294225772925874944474786768035141293683209012212970264858846889721752568899938155096815630255656520733161747595266409825125157367252288316189219647014697529374884132153389221591432544441453237085424115783809194763588721275931001327400988411770799460870244461563716413337787102235426743971509856290517626131211893737689990855337628329393273941810458184649108973471841235559240498930386614874372279144395705238252250104348289140615848257826229324440579859363176359495105940041734339493864100351211875479878914582797473794983966710288200411376357685206104573966189510398423611953476228397688504632687413121658691327175157719000683259019504963050498534709473688679257052693923004143169094240396991834368678472311958897415694774027352928724480747024592880206265245309860076924601266129055159682262029236360309981879239114147962804925222026088872473359871972022072829850855847004208128023562004223148471053739013071654869887496047144957878905564537040491549917979410386254825668068466741976356396431030494250084852571750896374190810930283658486093121013948093017523995274432629372588929519438143626545503940597931465054485855540833636333974345220207824610792579585402773357551029233363132792753812343095230631775772232722722190976539449840891618920729067139875985768537166550814989123887625440969292546230615730209258808569227459850302143709272839252152957626727712941638825705152693705862210775224914774519939940984891469378716713274981286302269501528285280642079823029815382443598792454401360297196454284311992678073352367637431938529225909051944510427368990090210310599301020728412910327455865507413821198904013287886799608845076811994354149317737945108440232363877584184370605037538637321951428221933868086230268410009966392727321108022766293501489431094616482607297596560706786896457117407477781326688258198838613299845377803194818568540034800650632411571639147936818698653483969788037466177332901964386417009729068053211873217183666736556651671295956877842257840679913606038688871617757377283972696772056158108245696988774024886937107786504988271695228814601527773168187463193095420894020082961287452619232734881996746864471804616094919578406052220496458513151533200956555400506435727687350187536875673557174919517079243545875072402014528372114751933718871350668130694101330580783659328139390687564370911637495697008063125662138980558379136315284050164919669256151072858392206720632754103088693762711375623786994146245033995772828671116591421858687407372023699395546222389255135259289592535630323830971275254533511442058190497092820017445699996729464017837840330986287786560685116967493449785534040338614240743515764325169576628180040572963748146427809794656489145507125479096800240749416441926310575275410982868313207398788461804069682563356025128985577071863688187314022650284575841083078649625804342804579300437930748481613375059834088741659757370113846422895997948897283554834365194349645761474416079326978532263726236761630933391727279142318449515277705431216429975968389674905825189759689044117281647363530170054802755222386543232405890274900120375977673903758367112881217323679519425246827020984875069517550297705904464434500802354948142804231495553827772231239579336753229724919860806954087159167518513664307297838297897797637205554465329722178393348531889292203245107231871123309012511712210075788613665027294678340962776871535289499995665263106784437885542831546782060987988182880754417726734643964094369535856210266649523195901009616526916120880857385279735440939294789283572139546721573707028765332658244136331269954894564048693587978326807496732315368575653586325385314484822432149116732305885226257228249980967449159247828053597619900286374592280873171514159027070455589691930026816392137797950564809734100204159973279003806728927046017682691373636432524696859054555582386385099971907045598137234608667051351975708627097346103346901840441111291686748526388893185160691270352608844992296220405373482334264689775919354417432548365294366709482148842338682801113443461978939646361535196390828583623937208173747517592254300383931706378486598170633060197459067466792499009941316543459350318110420039055920821220508388670185593845656957669009635568425604426994486565067003105155667008514922084096187306914885999746018646635691149319961369235137616980935289575851224290812426047316493930574639759444467032887047556477079510478611703655192072854959214929965615414082597570878463873467864573663690868038629844647746759849711089232871602232787997572768316617918380494347221554583831109755177830295060734804554909128234316704724442518078697437014208278653529461667157604602085174987136642428501453281900462936098765826546871249082972285810263539227648900630689907661794522186702895532409196854225297632883162878909804803576050509715106416311378578695598404804205302712463162052268649045144183655282120860720088476480111907770869480230404739758264846637599328188066150833612084897314719231761600699747641563497298781706276076657930036117690266705040561212014534789460420057774664232145836998527540946501123678673906854599750873404113580354242699169561965463346360534260044662284606775464954023717854180487826802975571665011283520229104037965774548183718866468196622740275869982863267357725106912563383029494680560288402086509112541617685011042506410628030140855229274937434721779062035792738039764524193204783401431771094095995646429047182875261092573243161705006406441308268632042851509769714903987032817600456132906615208782042526306221767977509657122101442920561028220081255512990626733738208521214333487857866234350358364354416731837448013806726725771830236191244527307651946893512850592861842937014168382146238982966068753489530873040135306653812279452930467770776351907811548866714613760111922424363018650697092060447624680216667449780543493793246487514861394790862673998289357791973685316318432915176193638083506503037516543988347707320255335960845190657601693262116387762262672937062508667688129606495125597991781737126307186211597781175675713939852693651824671128020226300182387483464382886257639866796373809539849565829647307002590455291553310280318982222065089631616462992440144237457851905488437210336810686018279734691003134414395186466590154290288164642018966208011425713181286836229759112856832085748727734374321142399803036645706852402249345115042848961265832464313583246738254755334157024765488160516625914311538798289191704115430169686140885802866116558153268501832604844430146272187682634230912284049370485861625807789821418212922537499598517675345152012950093910261311588275305902571017232838100311200152641045029188286628075756888163239437491700139459598367632985362200296216679343765546883745336411102736014719093949043405884584404554372752413162495066023274598294212496365915254509889046411898158057682353864426231027667545220768044838307749863811805901590323812135732232656007397821204165110218350156593644682560438745213191280836004288604711839237634027738987434650325892929546774832071687687961014333727640730991241402536132628193614167522658969481208736696490651869608931511210879147892205878080033256490935045565906699570954446265767033493856430459327339974308705326667425458577278422502985067051040141146836260078065796707565378189480980503929192879930540076455920092202701873071422251261617151996053694500118125090952103403139365997370703122758028042105104804235646636102963755932407012085022294613009505393302959093946375791148404014974163568602798942836716193588153469171986722474826468137834952160811394468104395456525408493271374414778688064527742699332717971497966807047612438510676037044134852082656547722184131593587406129777728008336979101055607828167534630141642801138528981795782548053631793350549325931225751243376405603553441389619219172296893657240522150376048270282032407326907099427853763985126215158376303559173256134541000941752117464613680993187700924634310446780578098382082415954477849131442373458167141100914127776351819575314077179159134093306552003215564690044453110740130584666429392751066054774004298733683276004868074675200677302117930103701024050347677563371174628358233890187674016875171112029759031576988358357676140176093820024462431787038702951699511133590608032715952709022827237502813331835280636836016291890344342250507396748305669280899853569092513497796461162274104726748305085034875913903248809545860111912265745689455990163824503881098338767006302032142538134150346459505329108170984575995121103569557248404729717037961470339739785197899882982147441555851004561644491598818198307660256112413125313354868519793698817304173521292661796674900990823501302010007845348520167854525763641837220087302583529361326459579686979025107667295181797978174723081921455881850313280715918018221510746693518524727130289035195856553026326111180851666230123964664776272425017731428265041635934493039104650453394756524738645637270323685625994446557604513349534540720787050530042501194525951008368329309587860631161049970441851904176539314017362633045444307642961335174390228834521998124100618443205534956458793705401425468386265221873462832069089282632000108845015794813800174131941479488337371143862515124200270092503514293320545741543929288591386990347793642079759415151064269854463997333377691183792378119125588100796857841593215842337574229829772696866220991071970895155966430198418370639899429394023202351769630349714187282243731799952668760898187903255328052838739754960498837636461098544319416057916226368266868295289400702755840902744120760104279817754640254594167946989586077443527846225513221957978544245511984184167905675057724611186041237491183780539936253057526475284458481406115297226327099235336076191033843620201625816689078019745380370384268281591394831002899117988168609507446855774819767081541089920615331703813539201079182142448411955788420731645723635618080678321560186879078919834953863499179754081941023029087603097637323234344408252239477296273178256276160061708990789544553079155074063707898552913413096302187592645807808162590979696995196630478423194087309187162731729070382728840020520808593567801988094462103245544162740700039944045563184086651363057370100111847848783828495245070491063137850540633902127471785818031161373860095307138175731962723838168767177505228863005812104277382726188491703353593974172130677910353025883844753419819467329295391896696472628246039787771887807509268363302216178897946873864831190052566450668786607472539280396785335393611952147227106052519422037025372474677989558385888657125243168278197749758582400478873291979696996005863508868883417745694532090269709603344491969987786835946317917313066062859219302258050725968060678730309228372664014229374251451940503546497719968744393676943364909052060677927576197182076381581507531139388074135660705547438830312704854238582349095493673226548274201673898572423593376744853632266289931255655952269469738534243719344779143277106135769940891101480986096613369504866857169557642277890780401731836290986710064463383652549454498371544122326382214723248815680343592939754678579802720816787137656821945970365961544639963147744160476959182114767148410929398832347870205961253915236321319857377523116422378682015865648320265694298434498893660411513979843773912888562860751309947819455959313282703448883895651516355448839885299803750883886110686263723010256541085532108164307145652606349921141179747590889091164056794398484294212004703844609686425751204025232337385976932528302612007289390992076487351978902940954495929422098828612350246309383510922520811921091915686842280194204309261838569900059701395542964025767850550031846914634668088266914741042771331325048806735810549843411654074700351034847063489830137792372443791248214260581216385530926466123456629046347807422464636728590863390747453365483451097195217575757550641664517859400640492323408585548840002930469534625968169708682131537551782546681067354983333928337563449465643911449958692136902120623536398941116086989229096330625297055213079874287090058334697501834384975590275475192769852088972091883524030567938486279623473619562227761429278533476090778899466750164672885083324165219055153014911819308088297975546058000366466852218251406950265800710061715556832590771601511049358783378661397022753469584306207140968077067184707916177909285377325980384847679774034725988265681583281605421015883974314485805270823231014134860509629965795241026508683295848239543632425164864497599992813746966820609291636794308070167999103589494575988918755546534854928971899521091878271195295188235208462625704462683785818379908027823704944145189504350887565611449346160053216334002373636611291190451850113103408587941904269498516517200567796945756782226512980978166460693269665207016688185741287716508383314475844640086691521683586068572338492868777833131789201426358599893104488779954238040307124474074263065538791964215622431700719218969043657923067226336672497157115684377772514120104923524516913332418344703930765867768117761782469302221874865998091413904236376427824736574667532874861325526307070753321014828286709958352362360531051279348218498375778380838245614000630029372720397081763121942729958632311645619667759060725642566051235536496250164517599580481509041134711027317300630123204524984448026867091668155903305985640601130117234361376130527285525263333049520631783315938704254922152479026311316637978439823820210159245444628355731761728333535482891982444671202068772440626637165508817016804208935445682729775233788955551922767016458474180379253737438064155818041122844506431354922697889381680726657932178481289318838129987792788807778897248545179407078358281807260146031787494181728254592058507723790563490275553153675775439522338443266330836921530301494522979237962547252232779442272564582444879601547140534187602520904994220171645081653145730322026386297143467900524611803784708473670468012441186005118796178282409935542711860983586068553875270210749575713632130080875041316356077583945796196219766770537911278984810172045137799593121540733237748461777630227344713149644087189899264165141004764828301975573556296045070362765936413929733466953102569822207742154197300027240550682564857430352807848900649624615199432354898378751400619140193982727764000586084975431100820944621178547647620556516903865480502538732216721131203956048675209143575271647585040953015716705389973833855343717629857582732490254004008346911507294869815476790900481000655688477940438421103792097669821270195413799754714059476470406486966824133748028407942531331561353329592111334898843818003341487414253373194283496947053099020748512370125791001082613143726230165207463920089659483687705993499312683139524332342002770976517229899315594117706205817351768156996416657024908893853289376655188377077036282969957222935358842988133343442890552747544103275826465893210625034236574884400000930661014147784799473168886651150952543380755067442479599876959657346316669447926234327756503989004088526679650057253992173177364956201057269239599433331786348630950882269506996998600331689469507021503499954928857023764492162146415575942440130356409519545632535124233751441433020231551088830553887019664123265875402165209281952209508000654795229287397644243626078504512738610441223547844743414217202864947158248042901279930228886866829253632656828517920853855680303965836273453192316317626012483951454928468152171980522335434811602682043645718230875726876962784234544594081855053112663353686112720811357581306749083737216605948393869425929806604815228525501004968668609865216212804613147625951332066151443392034670586275036414004458138377639922722366024841980208240677901590188476447715111275571899234950702417707113264538590814559923208759925813467377861767659484496136096393934365988094625738023850666592112035556637322977363380874251257529352981761652903358198917058199054495824414994832922587281815666421537978173181194593290280922958423342704322963408972858031824937419700136127523225810439272235864327611569741434990167720550087202274438958264364157480283969404674966766042189895340039131209651239630758508556968587435032313414255216788677041910844757700532078482728232707526062502838542538762418819761030509469788693927102017249073381037818188580803853162567928235815226224664124762690891241361618052589666288356930517007806347360394677556177453940761302749968426466202855110029262371894685062604392527553029061637803186097146258402893400924134763413140465249670452257962271871822996921372114404315043726638437690313637907710594785138067136011215974233363702633423631750594203299769477534425683660543425841478418139286154995924777381357520259711481088378329757185039396528952731427515737709953459354611425724928862439446454089661307501356948913145489914984661897197604007573275096130141938221257308228726770912148140391772422794110886868754300226868224761559570043695553837397784590048291243948885638509246787951367680817887865231998757657521534638721994164554574415455423328199424709891580149135088288410393813522056765154197090346029757567030987657812448529019893806687996675945732787040244867380919203838207357856645016080586734362467010524725624396152839333203951616078455251200538983121075086106740807976044158279149071369786421170660630171585687044806434646548029578224254335805700585895311645062842549283559714448664331944999769874330433065994846104948379947218004859914240167891542836544406650876650972159495857954346086472365832998631570400645802751761930035649483118135846703381308119655539232450561955895274634995231909020110944623529336311843161036698269177064312967914787520307400753994507771676920234313080692540822667012975036206421554205402103691276111275393542357294934441731291046465015184162751610994355942867505264861547929276211685019371780401199337286107577258120959444344835828070672175681685163990478836999134828644536212563218478203721518099178833794783450000910893700569916455992963692507475542948265718785539112998638288175093506990666462477139482337530407746059072783630520095512229818631445320280320551716152746707299590448041197476387340083961598602805887770630869614529910074940285585939078342022268256741910050791013473961533731416529198599949780636657846371837616989687627864011809911097438420523519205234199667677262677844379117207401505501686646532262770532538370677169287561824905912776500020771466962858409085835760097734529767382056306162787941087767090381260323397234062863585408152835199213724278002691026562405652816259105546488489695966394313986602490525491623262158266535895337520007953610501378163964760259063353614685787664152382340545715813125051024888887586152771985032256962082915985025604820759767285175454411869791158428991161684463468791703034052495737177973827762804519566877012352855756501730312202249439693809542386959168508567072210113920469954386790231679642375611929115665765125490077937980076796982697178928689880412368308167806976659669629509168804398308325395134227517383369947715391441049733243775687053734532448845965815970636837391765615072913724374960311450010839767411258684490195445473126679579545857622330782395873197997607657732500644284715383500753722733393720168910204889479617918826595206507587009840596640092945707348548024488940508919365167803935750761060468407575445132516505626157572438364905725363090100063775776173322984184416638359912887409548242277142674300701953112975165774636577871416016926130996019708230226920021305558271462036688453671723880328275666161317099929272856193824859099692350034591063227884499642052713111895567996693982601457732962749498151459810800530686981447417907557596302733610460597236111964124764848007029778309205924448668650154560770892751082831992892726228694536221852992566510315176665774943622194489258499148985195716642965172255502665254485723768804593446475181848148468293115631443289476609693556341007519007799977388357846597712176008310016371983990629732168281371068593607928178820709599344576955372055170655671733055925131958036828365314041949140960764843889924062444017322873406926609065782278772523816450402092857488671309047745047792317024187827086880160347059980651354772653046808233894829482327179011785575551769278374911465358202033522156916004332242431099316382347045161388457670107847219167788874608797814664733299630922530490201957459981470285479368914538069341158251989584295936179749142676904585994102110096206424504661027085600614795445645424300722042512452470717313010407177874097430423803700452492348050656966790348888367382316141107079347636800191136691344454626231619165892294074062020461978129259243850129398145660573408197723899611838088721588569734628703434888675325491539622684832377508406198951525685036040467191849958128513435127526340917340214156800552731616121133804760348707594941986773110499375455107942769250346786114807718464221156119569642409618238495142656346821688000162752256230378684128537070884860376736933631048758510668890192244217327183164592302811507528054520271725125946176106189480532724411048908067053119771241703996246295627170410679545994142812784167643282134893900846927794539003658877762769040017371773984818911586246843731098362239425468842422238053322653624162341226550013705795660104336070334879654553816079947974576594867780933872827297728444114508971718932185954283850168261709015458495832269109619230233583966084166632553136745573056460503952946080049964636392262178567763313146932444492779737071545759182208581602837299962555345633867555060270250487041019140834562169937179937547170967589311689288042476987932897993624238587441239210051452501019613117252171554103946788385779155398071931053355638235368466781637457539278550033790461336632305411683908841250736050413520260844326444218610109117418339109422788998918586555566082255624599188968010859564033323239936018783200178148874112270055893930994400616415952761848280935407717341608319241506304647057418495030766112146807516818784926939540958593636053849994946775958010477841621450448699278945244834132667650164999963572301224903206027591512542680125201443298541142259297476601034265532275704856830477441990897217805855375123385418564259576033181432600588863788524503397022868832271783758903524050033692678432258282999156059355147050285787609272062142660871807847227435217171006639971597044564878448681724792120390229393866672577975683530464351892264948325459710175049039462202751369872833604904125259057208371680176735674697063828446430033223090665705556997454597584000156603159026203008349848065275980224987670295666642344363552790570411943008881580745144967299628522963940513059869555611703100449883458827046056450975434666851430308126391850800220863991632548640850700406797139204608897800877542023584494760883514346678175442926029043795320418947166526123729644087211642348657136287422817200275846392593186652721116374890385674974532911508233270065938755868727922365082728082872732743551094547128890772127932302347287444631366375034583380120154145877184811371946829567140710405648533233545992055967742098557629648157276326986427310954013772424639221145791233849506421804675282335270080907661782182381115720826372770353477152541946265023946345946825999349842194512972556821616881109613708173817932904925713582886811630421355790856368437550480118459232313009946067823092079543396287514064044602862343544685060665042444424998378441469819190355408732974625934891718590984778580233180976933245661374845397374072339572463081949585508239220402747620911851272899533179563041956632738786377775145479739331104860720140009547297270032098433079934171970414451270003188680006648644288386759920907841724187334573946577739006389312321490569933142395871729108821376378040980202181400093718268318283348711177840665294541414116800440486607247261863969955043914612925450669319925309295608175940197771850160674439971363596001237591875236259414598719863326576434618987031054784528640971386160902503839450445756689907225297215517411176684577536361931491847102539422321627158586564298073279574746055681856941892202006472761463956177331321149040311341145148614723982377984915897220381574033387994455387082356797696161295846386660005137680782118522547127502782306937318096725437678831703278503435555590035187138474015462649351062952870313905933582081982722315427924344138285275064347278430275505561047679202299115818164266492167707140310040991682904005919827798503316619142726811690814750523149501367151328183170646208825930031885914738737734609897521725288463007068994273696039792291793031071445035556650241598568891830265317917804682333319400379596854190122001497918496863636906346481564346244871860024069216980069917026517782345074484690808245857678691143735382852109047627465196466968504488256736376152068493989604556150369104087419071567632831877651849215639185763097758314660354637500941139675419840701450161394204152714860465480893788261158374084508200728715359559911028504056560189017492679755402041515894418027397737720295234628620363811346498819494166687485067114254364533447798439041981694901364823974449455781932092737411829381624934617408965122415366624158386083038522070013733818632358426031565104600419575215127720322646708437964822243229583670049268313391264233809718345768438891843880148785532839008369782653386221059312662701701922677777487393921840783685857895251646560253352230898210805303903297957653186425192955323524917096606419122723301211425167416306489975603718257427016733908369354437211622813534972149028190830356013017549913149249903505729572306357359312782079792039748283800743734163702503362364153504384843293372215103931156014170067516412657088194422315131769045232216721097590074850738895494019759387296345221610207556903222732282334118138226293592284455971157764991119959992035761191737304555820650908320571841648303840362968742242948430270824230221784119363220136224377750709362955230966888694136055078716476461874546826662497227524062492942321869941245357570951917470832499481364519798061846609430316370543152213421897016441753337387791696437908291324355801686736077238998220097619402863418565633700405173070472981661813629179941581532234826751969544445203676654233072889975505843299837580906590257198396353216174821819506452085790049474961648686776553561427141874456538540665566062847196691589428543425705879985335045178799702888303145383934278753139478492849099278646552722478005853386592925322130844845974632669745029504499528855468408918469395913909583950337153629759919877123072603832533571152033235610358319858004197815821575113457221395533371270556858612697102300965200466384177059893272384406716617531708422069813225473773588002060229254554030325746398994661928145566436916953455483682676124584911471993148506727261334426489099317002201451270191180148556089298669732147314326512175791358004564123349206679581919300991369417661760426562870725814991186063558937235460861260138153974847433269620651394455620601238383285130035705923851297844803731645050933775504523003910963771441706646250792146178176863980494243029533118695251820154483753862136458653045056673698666357269126243728840231208126916075985434760773553557946578261691034772882883843805141697603031902823302843987641261700568471268169028582391229802738234687431776263427793113514854025153914922288748610818245498834928741445074233305456545365976962320082386408321972600913880919698847623025405951159391493682477970475515125038630124343745754369462246596921940204403106616061896226584940263535393892154554943050910836420486683785736854607160011173600755979420727499779504642282838716066418608475868005419760540197150091697104332153260830749209663924426142313690858097626508045823126983391848780566105016361901233738717775906817426297338684862778502535472373938456573521049788540894817592475133541704235808733576531373008364368458453506853497602604392417251506958951702172607046260479572083601787490780354405443902858140987189656257012825188783945069076009383237465954791737606563041906038368292043712897167521249968252142895727415814011707303926852933087602230718112599276250487032879534998833667354954894911413459764135845640766740975993886324402103468760163113010147977339803503714222570443565495606599355215069203519290459249630366684262016058726703540473991196388361038567977780184539859455606108570140704581447633200155773363384927753537111276686089724176862029345089917861240734848013763451821892822023203705010665869673911759784034712719246408916179314066779107283155739101318347826099871376586741749869645382377099079631276813587213538360445125790187593182055443868804578214675130543174858477240591494773871179867335475203523256646173973678931897390896319607249591232882685042791919342157554971117015290724615444412410158740585001555156321334445762046054369918420747328642989467613282680286631888637748863974308038642038092599579177724808703552340090943505451824325909095056683579007620063066481189649704460219960268615800255557099897595998170058629641339379869312146936825338931266919511880279301072241328727854516475405325453898135223695524777767490719248605475957289329352302211086071000747389639484933147175248390862615663099804448362955463635036947096042367898584627437971970519355246081677674504752842941472550350665560705997130491442561339132782380427755117573124020214431921418696087768743566382200005274279336682804984033956422172752167294038596311177405719904831349558103918313598260865393804262358099084357207194333346091432167555515026828604242970296072114811353852876616516900480211887887001951971556420742933214194269540146735199340161987728369464469076248720700260173120720643852664659274618210696273517966103046665328342794682316429149707647689724198510558725716269706990614284571182128275201969713578603771102014921173462450640237659658349861792902291268214576089566141474626276655052680905205772357832537013912774339146144899805378809456636603387572162153686910154256731027413921971328115400912980893052345906444482401857190439611943618201874411955245423975201291006101467968527015222114664360194101738244837783495635347582695034969202127629202932545644815099255198088646502356240452119828512673588749786332721502440965173738388403218040602101312756325879642191830911336519343391658807140137636984378894513444254279390226130356842888453348773797941012106962269923094364344981362620774187895360584035969859622305020431628066891408679325990173973499485438983354781814088362507059084887288850985775825542186632918800577343165671463418175935240346327890152898974501629480334756131717233758272639237096554847580619754734765186187928018642190729268727328336860902044418990811562333912907604062015410551240966534532513156312524550008226127683589966899498171334594424363258956226498733356091269696397631306196714178656382271481324850657517640982701789614367025648703328415476371243456135620859097645112088835185007436765417570199180455948067397473077006646745025998805577585523940067969997728642795135003235823288135244486536273735096038001316799027149821768553737877326638428430702673565041044613684136713717283234050683833327506392083817315473342251093544190005108817004033902872335710546638447062806055492632134483331533586437541425096043949564130106691580257224233681159881775662010126164737028294120513056860748601656676156429510758353614617615843442544076404026119050115830149590931768296948707109687994775397966728050332041587817224093656635637649507896011636306126630905458829020800288089524611932523098057020052722136116758536496959757793215038600130490571094956750921227627491239363408727199549923066885276629174659015779074076416592109401450556522252673167031154106683313586019604283489363777467748744099616776705417962448319227047892241460909138180418451089710338348755363709730149233532547988845759751556942491170985469036532647854360019491983579937938879281528300857323593223810761276721145825916765977724250134598995625611925117021264257847967477613361599764910402828754083023339873045744103675129452073940911455717415428522614967001685536934811843770199314226030954600876864510287677949786484878789010858446379364035699996372412793843328509321770410155248988880292362533768048157155438367586113646583075639226041340391095083988595845363666162087355694425226844285286579127734269045574217200406205389808153477370269422888479951968209883427420617251148101253359366240255506436649316260409272503226903573306736554207324236751698973925585191056810167257961629185096809148037575760630195030479421807371827015607087584435594914365206358588973942927140596325991632246184002719894110917719722001044064239167921018066831358437755838648517301976943932984847599376782707686526641294582998060995344895720036115506399753008433296638695921649078646031945752715511044447102927176802640755843847124846186177652680561728401684279318049016502088259447839103897003497656183899927964768209316907683461881356583044398180960089701013339149590097864580175904734004632287584823547227643916702102383804668423780127897188514849149703503704373288566935611496525030659772248421684312857879006736774851765207649505631766980736127901174712269881149602045451311034479809759130438535712245000655270496460798713513824115247373387185290584423259716405697457100396243853298639016422745146427913368044562039691477560541155206231994813544339061655625512473143823064377105646197511247094697987924831414295183093405263444635529534989500279204160732895499946340959184860344466801599987491594909935194756041320813526531559331033236968252888919607780868095358019887720890294250953201956981591843218245038819494281135394896087068921245283431710711712601469815869968948303566778124115451136598853103005637456203694127406387590568566654355787439052299762675340055980543826080343302621197995584434695035336222152403732689151291243287018199205851665604733800919561550771650899151286300686889029004799661806845831778769309338431620866957598239127626372298175725432844135667846055376948643941073818325352484922790905334994912488502468615534962279623109325283971848216365440416888195310117011870543620640759375904328222534963157613987790925499995310502565692384794487742850626327550714504783362652202538678429820877696412451586266537295466761408693936444797849844175762591843957694243997944572832167220555849313285184354980289440679751899612968792830612229531261314813348729836302048307512741513232251052132685612018853355969592677328574313057933272781560401333413180158985416542815959488086765177687993303944441433626654981516288303777819164283594611098568485730716409839226942073946033777866356220117610368121352035186180424402089953623175074612037173662492159537048373992773917967743840922664819669855151445775377203533170549040985710078983769862097644779277066042739643365976515402002080929917132477447956516300416149789931104620189948271713177739850993708110727437144508054068358996982911535293854822351652940729911555475878730277314673381035419422346121342107245604858316993412388925940290484406603166126993577531262410740768682471790854282888542370369966930587282908611587132209718367154783785934161714902615148301655331171022065481373057829480729143857497295068923597698247955868356004710018483829892790967743358492289392054976567499844772406189723547970179016478819000992889247485248357056697449275480236655913841150892143365186672772164304500996153167490598929495314199838720160488385866983157736852190993694086899130682767484173542652971423255401860114432719815567229234494531906341200179906000169446627014929456227657327182223669247934644302015387785227313516739723664317374195216232084057349010586704219885816500257524046549061369484842512451043779234714602855812912193415510604467033904167195381741480893484911956102923672361154425671634852501680605071093331343665247557502470677956576868268036490488988179748436950423607839859859793930748676835378817321552237615421892347467999873635729761599739259229895269994496117884556905477288324569502892041797504892008944983475980915260675377667775917926131502015961154747137893940956831832158515027937424145876882046569704607903956429994871302197721961773960835715955783650291563310314947479011200169547234745653489567645320943763220361506593906940264598374199283291153603486417589403728279432903653814330514081311124371269793200943111740875450850565666145981353431411543414176160110165746479206601707584831572416958987907290556344990821930115951107298899474065436205039652826247740677316118987705932795441727094737015346089862046732287314138342737797820953514779503938350046367484789428756382346374730454716305405882164614567879070751318029330745277831854361695828489069290239385309714503148435783680740597727067676616226204265998320680414398192408395918548651465970525585980814389884110056087557833734509006667322129069432235628977968848825332069599728899883196532038940000058160412676861246060708509523917248981183014033590732743897237618498264608196058914032070824234349208492259100637421999878535051228928009476095388249178457048075359842326443292485907504516988376045740154608849577695256092111684103347849374171888773739022691253980167230966589947817325986431474636448348395678809514736998511687089007312136678737381148907344990620119265992297245426475362484845356709257257187585403167107631289920729126294839476360769548912680467193527626110611303169743360299404982544673403189674289349584266802421012317317914925644616619259175196877372778707246307638559112301076080869445737980148305928891282474586035607149941142810490343470475639433682351910186489025581692764329623757288429774705965917222577272996517908099982752341623687065350668421004256536830886939255337337837087481893303948026563520512087514825199323214176215437553924932863151239737445176332388046709376318787786960711790247773383629347668605614162148307626116266441290027919095513917671163846842685797663232424436353132465826644725974839621983017751904550079199200370826282655325271092937694672663683717345159173136327833025380583996033190848937212363532825240624066878019556476381847598001294304328153102973267678157551645691586456900486972386394328445741747114523036521163337661731719762101483645531686896653688964100379885793208540431768148774217028293692600930251662586432520720497974745740401481812822900804017057167116686902960360182341518333231150942293741335142695278102212027007673852057544794684883968222376553333507414775874656120033115080860655822492553286214411558087000611133191705977160697451651345662835804290650336071708864026477382046062006382841905820752835641662037951359121312725923670929639364947663517187409210771709142745496100925895147205394064154858334550319056948131116201669212582295818868709834168438712730983056702948453163702163746874548210067170142615038107538675441248369087870591486369148676331303863221416077148805674690027453946196189560630603454932163613254989493066110972379278103768971641695916844697209716218903469548724943620527140548833823366009970964281924705071595571092325997976464090026219821068325838109257430382360486018674474228502652803191516288720165085678161485487514932865780725009568826886339470675572252068366779538922502324220445126463440961857368901512150034740334894171925519557929047818434427639524709203935999075559399105997075280746398004251849870907483224670305315674836564208294463907445293919182533539980842311783115646823797385337939320258301826043148361803752314483033326433411992362911955798814971262398964864023949346350546376349729280353814872721550978844292172602470715704171217045282658911527343344242835882197288278801410412696722587260891081106850965687584694493580943864380605768192632398377014199848187331610894450817641053053070806857550334263977186762250254631339405013013696182090613001706906554075390135030086651285147707159407978333088650703201682161242938964818420281614051926940265070134624246617759239694453559276285104533513078454949081670593321944783011786043771558866801248408305595173146511225092333707901466821883980027548168347236986149294644019098954692645668427514845010824946095267627981357044503475128334726709622498070944534292704911683219721354048675623567599344032302246995181516080286201616952988017860138276777841658885702115427428849926248829502232082464149273075316574102257359328221555769649017946542973496277684787425181382910933175658262939485584558548958072539716150975392092139441366891812855734643550241783854545136074392727517591492738756889421410902116173384990164273609493622702062890776737040499650376114834685057125042201182343731262787535994820056492777893010901668177258641613757408820517061984406393460321009023368354921087778704261651728328223293365164924639246041027414063315105113668648341566397700013458331631669080599117153018010511222039256200351907527880608194570622119328328668901602755500025123141639765895354336514628025616898382975876804586764476012840291659893669906616006342362244510660669345460893773560826034949687132625505595341791222329842029807844049590348291390716777710832406726112178098468571272556891718738164516872445733659019291637393278345176157454444127281314214374341338625157274884726322360976812128360185667104432195920423255530697747454931351604956941341280721968331285711015468785389259418365684142392787220212883104709806831225049839775028453547743131400336542849372759806822837410479860508752866046545275446844087695151753887132810411815609216273745603101602124232760980212669161614440384142145195075266831672895180242075843939453972603536322879284677626612401960287705902565551537001768262574634098640285686486367031138020658581519841153432101576881120956103220447790751306921893654425269555778016274651628526225807242722676582743999808958238135617949280738740533752712358337863334194163525177159265932154231878054441974715214136599818559576153370150743580187889807876130416498810330816853625648945392205285488049660117306657932117545085832347362795379523891282274504615604164789527551212212893087906884959233666939905144693640601226888308168518133403253300162092850267277282586642451180348942945428970046349750821138861563249823053511262362620109992410939804647696520138588127265014938629976489377748589128878453885521223943847575644065037792613218106197413798623227141815176102958555945554490095394531337165689987318712249865984928672000556751912546708611585691070859966070963558739481253866803138859392964440292673176186606740051902954917068647199776762508434186354110614860086089301647368825428432287492219118510788030549767152465199274438087754562150747694401423751345254652274867285143410833907502795617678196460248033146250628646055503567277093788794111916409360634241034521960800779853268107947956198938812708368217040093170080459336316237476318977586737115213548143198488818391381962492528904522810397586562703536008804050312162560842830372452321374121788171523552089718842623126800841847105783689509255670658629991886430606805367644376571929056212798631565743677194107237650303283141585552506319186183578687029270724944821008670663139800810616011890971629474092289368678998078867642968244882813451725377377433796636540609095574269188077887932130630370518398294642416815578977642366680956124691067357404575314711483768324178182893952626043025945028269610992835399336458182232354744228586202498448589882940202031783774530962260524343290851886518758637174089654707272987013618286961508862944311512719196573587805036453941648826206605746059914621778556991414056782493073043570222535248647327709002851720741686889026597575512419752614202602929554543263647405968427571007808671860752349306003207153099352829717813222313291643561131759418100595291374683658591217206762656663877360632303508614150124352412219194841613639154405923695291745602119691018766236372047003008452782028625045633822052151511937927557956232153092679380035691969917888818235923389867151826465333144208032987112239732935523728560438886030630757094956165043023484886074660929371953918329369144774695107304642649221551239970220348359889477166151004452494002072722850030887258366012095712203525299773068817755614286539906570507672718134911974035176551902782713381075915524439979599548617026488998298729905260011336736396668334305223850812143805394239019496566981055512507274679183445131427083005825460419603101872375938081943445250539776398310914751295431205608757463092946181738592106434766551681003423518891900574248044890436483931334641332748256128195208207586275543475488022319000621022173756375572158438864079532902046244297428406314757374335294851830448153100994754756574182693160705190501385497829849700119743844253040934056893841131390343800886669523577607575961080723681998853880497146303575075768094607983310612163478328812586676154628527582832716492545124050877584815841372959007780142401964911160787813947782571083190095960918727965589960942630377743292124989283980729048059280682526782025953431282401582328514900750581123275356959452295746430999347309019913318793804628386017277603595142257364205564311433014497087933000326869896282889970663255644412142808529676368617178463513466998570061267498083037204039062398568445463069829554276128593905338168584083229777415660585919715300411574590147395264439170830174293597663470875237161511639320803316553987959060899510429699493180852106233788008302522569871346377186638192399965653705571973034971788480714112730966973206450380673242568476021931150324572079497216177698644680036365510007631903020745316563343446279942007964662779238114168033906392682084387832693239461119957786920332788910183812339775552023608436180800894668823577195512079794294614676325118286234132152370198205044025569799703883732226424701315242680170991299331829803595490430427106603838163849509319809498804154252425578669825829009227582290495165204616556914594384848069871929662018263306273058373854595293154251978263462340097083682137005006690356391572721643823963692316219322251779194398889542363484615933540120298099863061372816383490748626972965703818282498099559034921913247196018542248912471329479711688089485652721161679701107997441265748925486600503431779698298363243179657878198132791053972981395824362749073717389640867584289411268030261904921479092252849505274172998886132560890846500443091847263564439677326832739875629597341440025941081552176253483774502759935917692631891402960195920645871871056977291504560989242944017280323956504703666559666992280891926605641662798778926991195407155315873715660857689668205051981376681949395791267985200562970452788948006178344348915616484602486714085769618015665264328364482314372702037073746510031304441734053562681088008897323451591265854263112967736253673138701499857088519222479139066642034810811280062131100941956047567319679300557542089203972108503353827751416844040284494406831293332573272663432083735487327197135038743088450024720262092842113706961211604719051310131340342492664243989329995355414444686244152358861432851983742844475502266610198831281961618180464416664742772652012170902867194603945416845791563373117353971847963977749490996975397812310987476929836490208440193477684327812039586137647602534233157539496759641261173257554142531083641652122239045046986623657712522676713308340518969266227698988617136473272876281901688646726027671450261067335856280127997106415142842539290867453941319411023424251413071045379239070588555447263328322822606953983022233916616562658295327470688154577147172499014249027741752527670320890912214492393424776655079706431786751892987341660692117825300500006261027282704464906702252449107156562814183828508314360463941001893576981382840435385352172147581104969615173076375057268918327067635229413981858228839806479382814854959399011382412194092808980143013000549548723491947474298853659614734575716231969532092584398787734386151164838828661031766201709504506807839777232098399489556677343681044331442773985871747644400956572252914587453029331594283454298678688244274538517702546889015319868478791830066817123602214557929979956455911885559657912133807354358225032135172282710768460139808384145050599101497467304476542546291450262610764904169849231287854091247086510887213261234601914276811147257551493921547829789437315807057812449722250382234098613120955579489099486114417310842820815585661947004072199550225643065098483800246926637282222614435437551491338183011425221476056441255961628871359126729392329316590775580955056150114435898401647412664559969149415727856922947592389693311389543136847041421801853189051510501277279414369335468000770321197069982940615245186821498887021708242597222709752857659249998434204078907845620190469891695094254604400130179677898260442387586382286656359196325149090344771943231875397878322906719875498277783750479951798801750417535293994747125695633587214884871435451537478289299345160910656557446399604141374233752882026730031845176389339916166023245301670748278575880654361533359601076164782469186441825016903093172786423473912001122609910020846736366164614849242993933572833903334943516315945760376880727494427507491509902134211485382156158563622597420758643122663625503972619354999714373739434371629302336200227095701987223910912866776681080463194962135964821921679115217182630005902516090064863999446197280048612320953452794105576581921479034334799863626683575302402269962626789099069423397079345461442060532306111997431273399900206674681780268490910782361649787664984934533783666846526315404381317699696383067046118241114916075219482488840755313219918399463368383775287450711872541981856892075479314492451023229586355332603123733709605110128464838735433607337206578713968097510576326949143305433025800981446618831718795405561382540178887360464564608961403830466921115590523973576512270388096767366812008283099824359975387703909502424025838765872080130472067559329500887431591536807660768607102979248380006955480036399887635085687022813692730009388665195199240339056493711252755368519427230349031247658831342027551697873649311162965301799018264871614305079152678861463845955276500199437095347066903796954653941309569300814487526626049824833736306464828127242128977636331746733367277870909794385169634323159243822098545368077146118315030237655224709769187225060781536812702467056468894901074511998607723620976515540965312472688214792925964509401597294976195685450945930095008153414562624570002532274091804188911742431751224466040589743804370982059081948393908263942961181015898353051653164861396909106011781422719625294463569030403648871347315761177864133196996989364385849491742061808344847159380390422133336937230499165599458870958526870930343735983118279213222993615145305071658703227140790282658307781643256167407198673635098506889373615877297222371306615798849013142902537422757953642946937424895928643961169378988455589630033716126289704513433563685199420358631961775125937353459409733612347393452517054725539089553533713306432631610195352439083652602530306864324196444394064619245806161532805199495642456560783376867259880860163858050026189162138542068892496483205964057051715293062258297902102363777868350854670427850770743694183214230489133497577392648122533517814023106589990155750509643140745738032463563976069618276700994061635466690173867390934833894471087324304701307066100258763021908489618649610770971655633407948807170940613733624710250956592004539895645815468092003830041596013965771679830146161953152846259061516896744330752953465421277939367000614722640408408402389930477614227143203597484905744751412519100632907359274119613553006065536950754790647731300478406988016059689005532531486760994739901573154454590498804177054738019969145754558933597708170174550148501598832879232596625619666292259990259655669379976125895079100450348318619757213421562046659861801749813648210604796070290150975625573416667311933163107751382515144495183523483460501342200823236931658281513941676818689450042278618492630692709857747297992955446916960372526681108611637211370740454962598496458187660791715717227445896345734227781213721501272106406422361136168223278954132094248149365940343100523469237219485640403342560632828220274922120803117694501739109448605120625618907568743217309807131659461161054412373041503081609315114218554031629522075067238225809668434197865932653590519390763060349904823652902677739100991247147291001080997815200085303768240061552481603857414424269533850573529515635707380590632163310875918957903062826486810366600709279366540079091385800814991934761843444690788125280936257740127818883798479655622999808496736259545919912527793593693593626750615595849493237347131543556550070636491274225518192912204277786789752850781030378262411319116093181854770400578775846802553274269825131990060371228252166148557424988342566927264296479317373932747452190699156299186409143812053546899023746945424863400397900735067747683263044767134895255673235786618893390404098942114113892331186704254060989661132712743801112695532033637416887171601757082121888044196338840340950751451409223331925385594274549704518614040513838747453728533942618710260935014890645161214080715571300695817265742170099978754057744459475509605558661795253733993095174574818855160115127588697737885039639246686539375340065527428338694538366681965702496135438395137586515640727958594099510459128610175062569932911124936761403342571435611049132609451054610335107202836758783427147715464835056465912755045557453010754754316528875606679712252072283065465116588768379503864182753116701680203516134406268029218379704660091877706078964126977721555592758946076151015081200722799504832460995462419146375914198770722706948070502542272277544968625420896926805578386661915431681022847944915866135935435980849966037415334177686943858176579348554288162682080091639500718585406343127131911869380437480905376305486045373391856036970279757509844853432580456502299745867830558260967285622776006706611778421657740055764656866421643687485714680797699625076362337101646817924064132933935228567384622963122207854469414812813452320511571382370677236772726449532412148825111363192624238778863158227374279510098791668356436258897015750998558870761565827004001871747198869412327360557542985634699762634942259427655359313370755482583607078818737265055803950463967017718521781391780880571768073312868212764766154836150655833975705162018587602900912616519623173727407691890456856889706317521467593538762073667671634949956528710247054800123706434311001997987248224640456951028553184705536582258298198593875385802596213137616962134093299520084630743139629782495799291784309788661932494723274222592775516337483905147418516730954063293914483069043295411705942880477159724232916065332378833737726305948909717490804362389373373545451772499131566479543748719473162674990342294402576447603617290184756066155770907757907451306374511374666692015728598606742453388733680978488960573560038384517045393413061699759019559614483835566084708386231160338154620548863777331586163609290087384940077709940896305393874264500819702790585897151260226403214887407945687235857727514433302686462379644953371901388312028355331811958205742967115812110673610433677297134401383823301885855513227347883659280345386330583309027022889166490300270024868494404147909592919934455928381378757747786936487096541278148550553704058697609472146954823808448956977780899820129057387671167070927716072698200247899803460415661587334340699747012711729003884792641963173854322305110185023598930045914781293330314961786109713193768457000951601097407261571579088771314633957333100865085571293684920885551952049574190158818067655620733205389152665364991696938188524554966978147307157732945166962051228612801589044162504780161319661382136159452080406013450583843939858102282075795461830218496558277764271807386022866672858919282168558992185645975888711520130893759068858230880527333565977414613519390975989089947157726223806942789908537109124619305377341361660481159486731203256183286342675189169754145719466221682984437811553536457539868733225338417617483340839451162473605504904629469600650370377485290012357875843242761134307268387509112676798599277815862951759981981222602505786754092798665305427470286198862016878346454644923166498547360411662412484585446452163266236296731763519768778020681236174736494915173156064175030448706098938795890926284349917639474446924192225928070249446344720031952171685056487249652573029433834415755820121500026921643013446630832889712829755861350680162209605949647947758342856852580514190668528398717863504497423526830694897232631797847550074645289133272730463075597057477801694684677457337759504474564815034824923664761106382021974621698472745159935781138634021715154118415690332144297657713498238858338131833224828638012121532401075779616017145194860054478977792268465100820962591184746289539602225577622352213713248305622238153165764514581655296152335433384744979681850639260913688395252275082648730697022420504361500815820060916228973827527023884194508222577923849759969088541897243717405486210644062506143238212106301973020693515423174112732470097927734744472145307388271032897005850600691953908552191969921293570089336825945063251909971146596758970568290987212774752808450304520518185971736441655134562030028181575943291739946971068125628740075963754495615032711863321177824933744594061729491227946331139495890121344203370174262625810356581697244170723464374851211734503116347591690741738179824016227034983068921327068045245467525852011007646241531697749721011689106674379104100996499938517411992623749971404971955019392572677035688336679466490071330400738564017702634759217324213725986524817242333870665873928693256000875161328611659079225456042713725750262292123327896277104317193165568629150664376193245798922555509437253866048972041737370991614070940628609266330841171515508974726612182874439269526929907401174033570779078442416388681344098316554397861862000165282660706510090776743650237987320179634712498333241512614819338200026578545091104268220579092049997400602844076046020974808880998077356607270219445279504785369272134132494131163833099153981868165049008061233265091434901468446221900108488841344219882116237013968581561234282035013275342038542329022179082667652594117706829585791949119865822166584924342752738084802132248133390022957605196735825425909463228005454434038228601477317373267425997691976376141007974872767405004862494444100903178872372827129330663641709028191043742901284325765056393747501639465913065084097715657009477764667367948504525882507854311084764273987199628903223988774557446316288755262569798960617247127418958422936749060643275329834325963770450224886253674171895991190644482250957738222474671784779076790170469644572293459161466590076103359296505258830363056500447723250006866501810043261883073740910301658371133970189274990059374077742629928578896387683645599584792976517681687994847618372581522863408852385436665938476942631208229398140874731100265258227860290038736899514769753217075408068303598833478706461340943734659249822150433444689446735205695485503208736388197844314831151710009498908669957042913815169780893555156930855131657480254291741976868750159875599516232837371976085063783469035299356605609858981071283240827579277277530228480995419547536547942432714498800008392747630182846443279187473624187041216319072338129674820515319102551447750922566905643921210546381794925494663314457671161026302034030906055741085062141091622066743233227809188558717524446731637264498930381070850148401958635239456744432597988027142130558611247421858818841636320273850983235605987638429107893528118989704677497573083558455098694530659439268096020104633679029491373414433788611884950556676212386783576632242782458082555671385732077256030353858626043873583348766793146368202268051279200606697318736945782285563255114546307195363973020134794727123779203537888106563987598064111773021200249702435432997251595212075913487223049992261504791715904041612587297277993498465418668225456412622635823979930488918090175336097850607611177727343633096359034382033422222789195055295126371708058241377195389147066539107150622137234080731682732953636911737533522459656189391209332030653338208520391822060430216635753077343090030973030595482037433551406308111426698759236234348357935240596593674675030351964633611558775165963033651006202408979066265235057313639098467482357377766523125108180273819562947938312252474274911021026650821524999237786067611519911551391936646492880332929003450972334937826767915996903666916617416166709282460963459250298275305523913121147158831022893493276766830316835400566877236695295839792136739481155937248651050825664666936975690382355026237099818720592606314908771887718811923967537406321981197112894020545685957929011238429671925402839587647738727656335834023353416571207757884522648063570303501041688294267373856729804740402485301885839402027148353660716622489269111265888998804828783885133229778306352628390249960569134921882416278531077086998612508635592085356822428271009691818753701644619577915761521118835665325855054066442542105085516500264531863506113844661533941410282834574015280864518984738204246579917717790317717887583404623459236532895537703092936805446414312028778354580542434953080861520123964171830485121868682772245467669253160253012877997532676919470403019887833132162881585886808062756098137976533250780207697843208080710209770880841011521340517104417886111535851146809105471870205513359670587161660825705658307373407827916047928783751117423441809506656835171705913125387397127101862271708075040032101667110122864929771075122750536731753799106735132402829824835210360154582571095722670264267469477725316178312073234410315713437920885600077276863005636550437582247360226790960528394858070268276251275079561112226036834031725260777925454938018318102149773244259629835718158721107550072644623637388024519173950105336230454853511563951151267225479641599957526062592748226448317572235603229983923420243806919282204290418804903293637839365893759848528273211201835930350360042727703035959074586173129569965587901141760519304866943541301493730100487974082161353811370116702439002519099027104198732877118459418734513009224019523995761966076789484686128450213111856263972904375352698347990586093880438861802851893186526315074111893438887037842378097933229069837423745702293125937477326635551803264444758389379014593236543222812313679606941332358131012531753959651622411343104545114120073500073663228637497024833623667689346298741594981455093947442705787816779452771846837895115681974367072768340882076035896500348022448667613278517963294096547218082079241631424837277778545358817696380142951954824098748571598851829276778874536730752496678229431462936595220435832909012072619680693848109662504803556819666020567749870521771374090812206784633767094044280201118219735361104410810723721586437117315034240269647763816191574076113710408319747085946018583907893957302293764798504131166485654991980118944916740250930437653820617477751060304266101040185292721424376739390829081097484240244390400580051073219618219690974337573257646239685723492981604998131497657521812189355866637227167718625501520609098520435591814878191155296912232945414553356041038152996474117117707216781631417471127162433742206139895360629947461738094042377440440247313484747861922074636734244424257799345668980801812605374381185974357255816767255577416774276867196039324563349334140576367537861400560224761598414447912041473679548183583613088079687928022717397933766681830001341634976741016856730372302592670006251116303472568764502024394678690666877542877782234515288918088479319001494470332034128124128427137964518613622022666634523040605730636631847190839415791149562338688076515337989606322377432915407044346200077375490028557616869683931541308179156719294877063693663077253466631959597747945752993601585456883182754862871595929094977743020490745247853688987919783844628038593755700621189021978267546462213827073594425914487419062724079928376285811830359418553351708916676646414236345616350025197593122595293463403934810013319008113899970832821595503790749394541484466272562978745506348888031416364362674055612135492478473531741322857069136091011702789557219575251943334120221510140198522142238359855644778642068696726827046527155244695130433414441600037520301875471927087899267607040817467776683135087322491305448203214052395042153618123443014535378290884070283775940391960991871933353361991218416132410234220064517969626215828474625986166230094239009098833695106913471913233552516967278403514710838253165534568769603833869966698664544713101112553756515012070669188479600660147343587200114650497247548917992633440719836084133069734295727992187797887111928061786992738507046450980892703526095386432277852715151348523949280545804618862816811049402009951614053844592480948326650640611329205214342718730819533875688765850579556127028270658998263450288469355020030267906596954321491708130249564295747910606744418546133879296827801953242120691228318405069943325788258722604036261478402002804632638968745802643677402861368710080404962684211834355003339339087389650674198960360910278716045739019355807245438963522703354389810030035063741626380872592140497697849987123046522520126736766780185439588273736501031786579639722193101007877563757367307048686007205992377553145100135269880725240427686372457578131893805060127965623429994282886103621276959901199765868967288430736035322657332776966964033381695850913557192661134434651206602553784782830459576878746155955660456391190397729974130445372689536539199767359232581787267628021082284437143883531052018501314950553803466191185795178468765912592687833876220657791700362026109906988734446011818007715490059836100800266852573097456855050448432569355228416518824682893730842822854368361035921138446670680345820333183180344872205214391642666179108302882043187509599003774155504775215804777577802137202208172873294226024621140436687570545091113967631471969906204633799174991472633008673990536469593072196797347500318721100646318581706048508005118826645627380052959084649173013026225528232073593145025562651697422627456778828023613513848583287635599352010925192464149334523206427697684910360938908693390558466805236692772441257014366943122656779258335578562595270244018647374699531166377053170104790546213111232242916830005813120357045086732114417471403307089164068348136704337419789094715942241138328497104796932842444532892397180675185023562479914423124172581040843286373652015298580197352297244719666553695332736999698423215323097707267228105153438487869129096973781996457514639989355446052778915822899261752840522617632585812218646655907734989014424564556071850930602611188661786115505603092179373056179170168113846653422381402053671867513589850404679343386833940587791375673225274939803850591272957045407410504028519800703082389091744037492214143095816522071746386087313708662442964666677779225600348694524326697140822846966869865963584808525995446866379656622820073728531991173267168191581493999634064631514686407005847687233945644422171036291456266932730165307117080545519577938033141952802268003761377610649146016434770173233617527409229912084284750257742399892026218186811313913662571236217459096331979388751850481636451842589877125555166348187281021265458694491030565736202138868636179943923882187000956152471455599290759982391180465238143637177964915746591025826168337231083373082029621238883898775071510001398824362300221322736582576800693981633211211940010624387029240548889894365629866628104504491997800843564233746627795969721687617321138907064482905001290895008908878021624956270297532587374713310742616821381004709955746470217270135462605289779723514127866482707251599670960450924992001708275029660859240578090895385908166702904685302550005198475380644180869278818856373542475368225539572525664830894789917415291142350469658350452822795587853907709943230564674530342115387676846700611574775595233725738355862700611237750813138909450068751488105702354893824400346758280345180376238109737623020600027350026836146997321313493251926406268968736849682227516096007410370371247964626996521879314851761937402285739434387706962513345359000572274143201383425973474337454213403692594608222500511936835660515613877719511806213392971937696489432120806140355544113144051400792897152177089423324665912563716112152548687226220989174867931287812053964221742575670195023622569569946136997741954334160396634475635793797165415421064779455236867775934630137337413675250622327421333677287651803662087153939888150577175594827450606715222717962955170648159797489476967588699092161913739580348585405393221400424954557646729013682328879890078766411325768086647412409801025881955792282404070508403311426931221358351785081420053259652407334984033063915942449943419966543795424193896781289731592156668103653824241379916900661749691171526997006603853519723596870367130266737373474901607786427684826758220953097937105950291345850588489732853957747940664539833855556540494224704826228441630225818577063749142629972537373545717278809781021091376585314749975696575417216371186010054436444243824730652116501893790617007691288087307618273535822130578036096180193993182336690300040814678586024789175516349254287201267231112686889894754748265413925292557747300723275090473023285772628722525790185778113813478565203312649915008893062100196925552882135884381866776638389309219695994832001808358634121348701479035743029612086593230489962055939550443828022750171619231458408154881402643095150035365410020149518464306450449345275140950987614467870706195190272715565840081495155706422580684358095700748461761994376661957429964164117851904189383170927591310826105686854288816568630775545286039399748806452260033076015508075687304576228416402503472962064900237074700484236671260245099452617371594056487356509787476411627866230189460307715665317793573580586930375130297097098193331963710532105275866070164850881354803925033831783212421988392910451724766643520783381582646350618837542148840363946076270171166372464806679924854490512079842119460338756437538139457909676515706854416270797495413647919417905022788986225887980682322028672839821300390640186121133030038719395186240485832040943990559851326773447782427790906939366327139045581221193522224477794380058296972888323016658775220910788513948785709560748234894679991194710317251864585047200949878389362723478877975130348834861510662540183613897886618216291954226318940858758175860644089247822436538191082845428849644528242586778634644925633302493326577214372377175200179029292727824627407231826082603017055985646649144700264422313167790026949602689338471384910334425310242968881918278541017318597505387960113473716785791317441755399038569457039253009515147290880431894943293237315827721378108978066527553980514545467390848468729813511054562239165500551615160466506553028846366755712983508464767087368751198797499283163248123254666753435560581704863344885798043399660076801345763585042718578650647193152280294519150800156997984740704273810853086412659425225588083792558569236472308413008911595926041656749221160799417097271859262802753510119233281010727803223995788039803432047768165413932344063854686976570868500221470633653325153833489775293079288989919448754799860743254246082527745874568761099347508040345670972035796512693853549017442569468455228665201390133036865829552820727716118987751304053955923334904648550730137603922863825971480046467427531460356457404737429578634520845365336388628265419622453794384276907356423000024554679231944990462529326187873535222588707414151793133523020657096180006481388893509840948624104359848586112041356789247371555041836505115068653519625505357424778603573410435831887386624613805080083866635057365168637763649691497018675736519489067544877444532283150792067944920136970065373780934884932155205264000403940543539929917509418408786173892046608896727356548463524632489322549918992582391271388082299285432756517139188056168605125607161111241072827980186152382667226664183289522363894708311174573597879573015554518367849095122426372473243231739514654178785114093647062565101880024102513537562181216953108411876059891313197928702618141015701586542635487046752099580253938973922976759542330439657334278737684713686150170232528136281198895881225443288915116089628802692314251085758214584389100387209789929593365978913068018448686912316597092111343709125817658441501000782900904305039624067348561883576891202744575031965456661877792467359718670303790652972043310408528481973065049782360621439538640004039833256544483030591551084146521106374792438252904448724025872344191641529066461730235111088070119460039376568821835333644797524457718017787644068628558127265229916367299430748853328526883781324210556253454392387732003445343923791864482616306958119112266056320807512885804408152042404313300869211791276783557150302748100042048333542295184984780378612170894544961653073209615163547768426312027369834385428359962812886825119164769943753871150461253335174668152953694975350997674056924133941205199030614533237946421483923014017551254499036050219123678870845585167627185077614009678495858755063549292082496324565944477907440826333842354486164458978276686312718234938294916279797118333539086113845233256816470939331749868687552037895887109206800508577976239737305507278025432205874124366626978049646153297334192294407114968900258564228700725227295954008023717419588575677112180303004727222837442998360105954719139688825001699799959157375251098850851373988532024025876910477347972616743221674933547563974179753077436730502995251694950906387906545745030172438870926299764942034307084368966174405762459700792999970629278972312300749209642024958168464564340297829834045696757166030157405911011614064705953169834388466760092869855345782969276276380687794894275055742036665953054593127802419295081498442519230011282258813668462170677652091442654650550370297915652201624241512406158518758877379014151576561177760730056781916194391794657761950956454669937856204749524710670048663616971711536327455255330427435238699193259076126902362557147588817582215272419345331767927294724206641648615493759978807455680944299734075762280379610808027092325305097689647352564668361960733731801113620168739577960615673903059148689577095433788268413090795655658865044622607740690925447092873825045444918790938946032710398100887208618995061116535774216357261903126192347618439932521273871605094825561253653863833705041971192064990910102225440200492492961736352533877825044982812979982529904751817995153946749881987740717690110852125963886290342240787652241207131249061933600827116162250325272942688645011516612918018778009202901896934707838012299047907091086693920484983086411632322345304791661005023829970962758091233366313511050683987943012348552638492259839928619184771594795033009437487221457612715159883300423947810884991282946861785540626061916534480294062251162693441901840771342982158165595191811273151143730398278569529076157217856607528386655179766757145527585690524775002347897550298633893942349894677725052930391777710319927872102470655817563257686638199319569295134363426521468163881656918508870099853813757344422802186610850134535650539159532199454518208891950586464772908022563792217271892600033185288241340517925485142137562277640008270674133030879341572122526651970740998052884571085789332162016961164671737001720784526824837662105429572770371421524051581150784040600246561292283579010662094783061316868377745345140325573558696884388274144121320210522065711639384241790172505321355065963283801424078847367829780659861850835476910450567908900819109883206043497718031062966605521623009177354980330908862796955275125331171305754194546098018839437839797859518955546778141525576691066639068012037628628163379749251458762324115219498382971715782339086945307406560981400391929621648270249855973334056449840746930369638549939226249223132971777322912389548903789808444586786327657944479364698309435250454119855133083308919246190438120748530744109584801263128329320773626061229361453307859568514863442635027260523314329125600279011396357463400543038937061499561108697546676862090361562821948111516154285300773472596687049329223034650445526526346775602323305812580839974920426065633949667510246124536729635064869042968416492411990775855799403630116067935676070888508803933244834912749982295449477369723661516666079070015250485536282100581393177372234214144980710749232809362325748538471464428089951898857030722594470902715067605646923394439299387390232117393314214395182697682930902853448621782173446562451607813102278572050982175617261743326967113322249621829257361357570562092579677293450884574292530977477493683680854346386518675211349607885047959665545155071377345967721447023142765992017954006046672641997619714142675597472818515262308132102573542793230620276620626912033798728169623617070396492680124647176919161528589701323514839241160463380824304382229685817031746696624962247905546836691419658875298201965555274922597582641752807116660186841625078373562031920100248505854675802113010841520555288146540602030995427688280546262583207655516082434076559966620221724588427456039966281739561417450636897103170158041342817554630393028715463691363057386072089973506060059234748723766165591328760690392401152641954695661348330097703954119315482162297235457372924515711347666720983268448232252822186213374328224024677293709074712719642684970806079489526496669714151466654524132056975294709657693909455568026887088190618737307284338793442922791238246255594667963850311191257818049319307637247896037727498584482345205719522877763741014188865919819893574755230740014277760217531994816976547206994399438973997937430805009302344052948371009039525729499341125963539539991910175745140571700484229464311319946218698835194391321396443694896799718734842376052787320690870682151551721515356470885638905722115905879815077431299165436381485889294663092374493286816696904782356966420730487317464117275489668144008125641838251840834963406120880436914190803596311415311141631352266506887876290952402769639946101325530692420469431152016046703694620674606158089124913663072543370476281110080518594390655767479101023406877211237872375938502370491710429699864459701952311667140142037122495585028013303365571188607946601376854277798017475518332505249153441483583541061199189955324469523745427015596914266455571760801603521263654375857869022511055352043531817568924319607158195310431650529010467731670507034183741940154382144937818109742069651910974301701731666602038952530174451774618431602242648792610599720042579001114479905868829284382602832454912984755433464350464609274021319649502119163094322606033902352924006306249382621962685694551336542601808209549811144699992259341882277721802074720708599437114031531774340820927517513750078803689774630350622213591672172814966227113728836419150399176592232149551128693624867632841652341438568271224437862820528220183818135416079329193847357076964819558123889229272820064953215639614239866592033909763887737427995560382076636004386550074478812771561880193255973544409391126824030111394610148341658430545325919442685677985612642381423811284068878546024247981111813391468051081466602827120494967841483291421487764257885648458654814082186706886750286259720523688121503088960841540444937613034419261273890706873299194739920814802789573233938237219127734786391800032286111841370958751348889739013602564333925831460091375320775127504614428047556253834929486309845716011272557308178521215750104046797517674923005423817490337293153467991548195176584131069726769863819218021553892610867614187704674677281127099152692424551807879252535896119324575576611640305630692401771441685005220188766306435895080309383426528871454676057381516502031143412053425834821846149762839594474988300697688437517946792803203432998880628605001681310601532627495727482280552859672255554041396535931090338731979319649675158443757000775890192653946415326667420348879996178777292374517596953677106147230931362577952793945371853380538512415410456650681808043084784426191792602775848771801022098624986974465977622694533544871303046478122663110450552197931262683232247752023866748548548990847702763234232139599895683997585372641597821742899061335548115377360321038204451675404374495251791676147880041565427713529610171194508122947754630296245104888273932873777280733657640747921887452819622532677744125610105882703783360732414584628739525232112870742148499019395894960944248272216897445181092679762204155543413119486802851724158263964452964732980573743469179472841239421571894671838917140527475875433759801367852867223487111376338451709368321627205319856116177452577220586768126291552437000143930024750744557640438556023193008160400443625688801029123304360394252028475959845300434023306597882406482739736111113593827952751797234802257882466270592328904431860057906577558613875968561352658449076501602339164873298565090241977198533225813856759605891160889836139128461422531579933309252149133692055365266842361081007377584994988294432380731978031324508835383200954453487493955021080695245690971152008001518134810805952744566705295729461332337850845259313446139110438993868851063003836855409111374494777515603699277197782722691734029769843390122186077460945927236865279455489314743684952779607122385259160458728757723010058014711649808064491376912588546367939577939565594899860921724265343161249890059297751757232692398567513134468590069862215019984146176125191025497044961998226000860692313910364835863914029664120809738382175503718195206974810930168213644500328192185611974969968735327372661580409890411994575335082290928932722371250464836476390146327289239658775597070350982358488233081664609595905779496340014910690444894303166741636097959232154935622091038048789702828653083979545460236639835961920115023853718172644779817783547609193920382639108055824687256430908422305771862150408444148662299330718125633758425769129789915859374873410072202624784851152321448615553973148770742162205932583409076101668683996552922937142263828046325335008493272345516968404118156627217662645173872406704352332645073338180023448755348068650544139063145816739715933814705661845455447583130261510504889599669977088528784312868687219994084161203010109741222433003551271405138052957825468918522005178278762628796517590255170585977030205666282046127030670056983399058191783976200074925842639774581034008664937196974666612471863661919828991987568933308271064524111124950622083904416110547127728684816057783691325661174861874088758154054331155458865230398175089509475805311630866516538854573533694956382660532243501709901203488948988614122670382900088484328330104565805432701529686769926205181017482549035128355038551791172788596125996724638917550676033781639199816644022146034524705560003468316058286294950586233287484584877036240573166715835058775939989402036866200350061355641533552092118862046283126200260403180948083301780539868073659810358494478094731146277879300243644853895199604579688291028572735250704968725376042713591669329306094858443620863646206015621243298938444168081862363036065759802880669560531675552705725656196751342792003817433955481420703145923746904176513128669525434584910308558047520234054837124891495318566650917609033342108620855137041193950455639517586259621785999793573658252725888213200634044262641792094857490333351621479620176840222360464068163890556114678494103157035644101885017861503248809675474210670584889011063313411172714440537056609324631994922847539818609996438527086920511362396799646100018297643110488504616345806887349261779541189896576696284196380024304652150841601757368752849166678472276386952194829157399905414803685616647741771306502349585456450111383203848011905851802588539942617311502366690275284344844475848524325071868604541649041257212827928448298800710157924034341839774099239845523870657287074930383003149982671857480827536664983750363151427246051508235887812585371014550959739996693451379139586062779427685116303078525026555259926128686243392592188493172066506952931186601679443349907251674944264430751966728213337664998522212542163019537512342839386187374284040417345149156188322014708964761767931056445218187334988209451826768850060726925251498428251883083270635999141225444388917443675332597417225233916027854815168566160171578517207524053097070163645607982612266918929515015833557079193578870916727103819088530003221255714575378986690042176877154837235467491244748155244266296330711963024496955242512878279591384981908623210114061925664602843553407439566226315597392026826749162848215588489382076370389107683455154035773636742366366551416139717149655374610491416078016582717705041431615426054416285256356196773050618985821850873013341653523025110464914257719687039897814403044879645473126841252898295626449565662439502712951756883057306373919316462377789049041231368488553890583914772971975551486984725841190930031992297256611260830190318046335771007406265717732898542874841588398228392590150415095530795639565344499284015588431143344916651016006583083818565287582720299582840530893389008825538072879692490364786404761481255376008023409027979432488563915812442330781807311753330753311543945766858224319163455530017247622288598080807800180633681160395444663950284739994160489193338468013183115523258783205540908987360707548505180969299251952201145931769268157671913651399491122570227823431994046374307140963539910618713381821726828414752016322491950259845839967399909218591524698385669619997576992645234908746046605463109508415378772974916834831536645231302265793712075089398802657252911309291151548121734731080251697125239310522995587826492723474868164128165214710082637474868885651928708784679583323660817929797145549337298759575334757443515070479532920550151416483410251878543485717713567473393625461297524453445818816281385475884344997405274532283686559996939114403636086602341309913118210741185149062592770893979512495959288513231013163546217288087496769886379636666731133107151065419101412172202582402794257224440592891625555149764593357246227027670875405920735874542411274924994636192920018480038051911565895401422408603967154167581430332015028735906174481174151112305438911200099467385567828796118244331066862243110431551887458274038273581108277399724284728838603113225027171353794305426910867312617785755603815053021755839188396022790170146961113027992666183739041571360293246239412698846112707892359682453735679211124261755137703140241090962604770450540291728326670405196381333465916044142403789571591138643380849202551914300760765511931147014404564010169049254760931703066558698489284544907794926158540534916603786104455595282376408055012535889892072475512607230499102196241771114216698303416231517402240914149925452641581444002204172194564309331173732884872288622402141357221757960167224534872469275263979381562726903691420928880634206852319556243347240359036012539043815380122073113585109054083229457322934942376356206696688433156441163440761168895924424376999717630330751466435680613920940223711391116179436086910615318510493831444555628944570981593198037889669816187261243001516993263337172777693797377711435645412357500529306268367339975769231665074871053679360952862401184124229454734140688854290770128290964885784233098785105159633424266803595012211659415314845868950652672147803570772018088557071319164042126153279116909202616110773999774765581665782370935757589165581482283306527622179834087715696224482757289612805156604221626342981705938263905886170547146275735221754755256087292802614897675844884268493327401330867263658346889747940660359463893403752676564309874974961329991093281781883100357616921857136586896270307239800743764598342242976625316674727113235612093315051206582623255728468278388772060459074128799293911170146495349176525434150560467710004707985699264438104684067369947817990343795855475392986527090931583025676954678129995142876828210350824495477922468037218935820115963086272274418355570856781725369213867511974223651939401640596334799015028920367215188654928795145235024796835015793955812244340467089165496898798980445385945997734581941242953912805215965325059824338009545402406611256231879167618359285687468264897686156679114701706629229336792200617137638536202619488766974201057195479523396336299622140274469994762482105450531499544047507840536515365492607988285819775795383353784618045030054500590083864061603366195221138409332110382445410423850759729057361357062362794636082397466890929754092695621341604390714691354479004326613829580704708187863177455215263045294392557431400148317215506968317025488279046242821497050326512760628240300798441535815090430354316524181715786185213218616440846714033161361313678954175836446136973720843012340778827575721749847184777322228243862131933874656336727955644714681603900778429856182726754473021556716046956221053545377324956654763168243470204294416710679038153214647792925778188211388867958522761462135396585781271220200068607576963908526642264760795721284534604048824208731602764595147180672512621213313469417927316863909898940794375585067476671158749973525474388785857025538688314161366179620887536343119385561017514321646233733957345399619994403944307402786990197399096226041765456298741095166815197497781597100377689497820845428872836082261771938967031245728276659360607924786370377098773814737528796316926351801782096149742380310182934982761329098400980299108714846916941786849023646377354135421739814945164431405113144907321927248451328894979621955097334608189011248277781197620723386125515889387677351059413914052020158028100729234372800631635280669227087442411390377391363544721543433223564081529661373599158003372083778512229943626314200969915415662816059694705168652953369938611549340521769864513227351201300059482072680569575051887931664026359138363372717275038202838963620883853549390453622011708586923918727246260726236741444438120528412850344114180157833422577928175913424891013234428133112903816797980940672293741847668786926213671297478860689434544171087473972899448452488474779589879451566078525090444898608794874368794813137051855659941336945375776532125275385413862501066008228205684041035689059483896408362688000829793051222020561724373674289423043047097416979583822052886173465283095312641578265770610914429624376749381443035965416635089556419544126449116790354937984509964218841349937008362488865635353655970220806615075661667695993802407749530237345650094588556621538237704548894781971239319793010419384632421580684051893707902103517841663163072905873482861328304678372489952136472699977286550725748673182789982617507876741948939723816734615509571990908557785157939430664139273813710820560885526572611041347671453786717465659593444090637994663172353854034932450320674412418271992317201304678872099769934298825953192529452773519413301220705950507701977565564212833974947846827474504238628922076869797542924673617298379122199196828400162416323032508054329012237210926547815473030091947989636063062436424724345337852850207753247066931012655234374902243778264202717237310380881306363513667452517404616750417482733176680418209763772912290880146960213099626360693918822214686047732296536767891724595543093612848711056648108169712433094157784432024922474340209565458550874095023463526200399301036671384088484488293292476243292315078662917993825159145417131205641256008770624193360973944254382618605653893876542495438101414172479973806092585588836973221018534360531160231805585778511522593514214756271346252182867790762020663999638699631774396128462421637092257694383296632549863621737566480955362416580177944736521947920964098106544713440169079517808237252943693011445464010007616899863785316310432979056638884598749872137753723740348618157346100511491624536908998335044681035589892559831823650053095656865956226203158953974413474057121736897266963904645609494275910966373948479176077867935917830279218331885914915136380249601478027406040642748768468606690839395281831853762292517028934105694009562521067093928881125621928941464688284465747404756372632369702613041914504824335999115629572698218408926019344375289805351227124722326469006944021872952713916096082827481811854940246949426468176210681164777646467962155396247679575299767588091814810963160519077454420550856951904420768326003764147398722519201819388663821025266366159155004429840914372702147888045337178609867877170344806835617888457145795772310376573464217218964559935658574017560745136793949839320320720694019197801883768030497237322135034555175577698237053314898531762172912009525210988726286113089620578411324284532476240737864886263432770290234578686887084689146240942885860884181119715499319048791889744887995078941052957774580635862072675109381906911968179430363843936702357862103069758759254390769450383936595566233969110449207928259353356136086567743763570070159939537218609191182159241297900474017014934232002841573542270441223648472369997934549366245269468346983151214544370309448969162397755887603738396320021854842830593055837411038011752945246958692604078938551337884367870241382342940392989164821689706139111000520041025369366786387898399826939383107565473337783860333678923599383827732638253763818991524836938499493990462389101528168334699795071177890148161098106470993842454943281413843740596508609741035285772981107027392170465686130875286191329393276102050747025959368807522266585914528532664390448326286133492664666838415240504612007202467140184136058378110248331956914926170212050196839772597739822547512836993169539006731847932752783071714044109345636687698440594028673888450014129852947963787557181607846893173386286518671981657040034814300105388442785476136981714814118476000413077895615352639576138428145113517671410901948239888646306863113655711348110478229592847405973306483432517715756830190323538978429816891285340595192099903526333896118862068854136110172938170378821683980429731939832451119718278476919461065818686091522130327946409716818386891199305152623210481815245262169844386179249068313835885012356515200347044200414522873847163089996134122085458914876643111721746464879654241929082460306045055540353005548285599217454485734229015142997966758903305102661258852011207428517565154411685693808547157373536558651218068903792810798643990168149168432303904655919314518413650860820605959134187243106879503279962368533146507399992901114262500967359945335830758156780172811943074367379774580517865533809073566727776644735672690540523079762620273895083736956838202065577562851342389761248398793782299054459916281230261046515591719571765010366804322505842611679000856155423651173974928182952522958117036263221277583180765847963645886613741639090723781149444700819231908293340739872800118101932352096773632257791574103249379178014318211840485017247243544106213725117991583624031731944619305934123086233451171364682285444551873020945238011900848687045544871701747242314757894926544073433372237235657546674783533482439468920780100137685088773102294509198241155663160943614150540648110849263175537876889805219648439234687616212566414534020242698514264188536496449802271823863357767130327086897428685199671523210170628307612248116945534300765250234805465091611248928323002364497291057929857189214217638179927158624649419973753422205895604483794518185687192218891581670313412700509441107110519922890932106908585496936859389429823421995227057551119428335901558872658692553278176947874285082922384626178235592992360203295286027568313907184233804033135061077021080222579014762317165379740994255766563199829256077945836039880818370231877520841566343457905969887239807199745410865332082398438448855292969655442667404729387916625716945661695387427953931407929386115537596966463307305196199281478959580070969200633227763690947356306699995132498778633757581979653825769393858771496638949538784517243337701605662217595779398587935966065032379348345063385202806226605924395378717381720053592463606458816907650700813580139370670777108160945040791633458740077956496321275101176300418711462426825258172227502808629944039757188031819518618030179111783924002124672875190180690821659663829082802182156962975111283295695903981430661877777023066080301977021312256683282186870603897840603439839678958990355100028153242382478316012691824399773244765964642720437044495571702249396481264450096032970969804222365335456134098474529832214400121728456791319471276069311725252362778979842419206005741234316947006743309900382142947049294370458864652903286053403715510863691365345521972213585117308797173926743118950698938305296524159281626083875649039361859190154543066704974865188859181640660273518736933126169809716227976311473460788946940312815714113233517550212085318856723535895400097258434639635735520035968772196727347923168203851382006331541682034085805435287168226945250622843085783725720690482880478963136410020312640085852818792949067704143928265613874384213914400503056250308944469339814518894622147492403086032130898819746492501068154791207260094119342930108821642803082813506180890971785955244263978013391638618857815512479840196394234644963502210878260510853303294846966533178531202957861305611171051579404236816910658921260556726239459917965808145999715554984766765957755545186315106144051065452190930176961049040208642964226510401048741676746829817038712387591157450736818123583978034716406065034032628869678335088135167517369458287432868930423292968054736669724253789432957438498650518304131224061756542134642483884746123057068835065731050441123393879933656123240688627489584070099474464174537385099971440571911793406641026042533721195757604117710066943416275620685596659019657731902537490940659854430237608527315395528115442743698596494185986360542032571142603296555193269966862166927121268258111129541743994725928693821060127715816605012506185831081603087620555516147070070636265655210761330851998170296595126385641528472702343834688163293017837307435535497513570949657200542673261116265922413095853305180236372729965671595742314436016061016095997075745885485187134556416057428956924142429603906348950222746489390262002325651108729037095589309118017363695878565277878580710417652125339296970896282819955395463896622737948883801459400149620396794895990753217385245664502034719254186863341439683620294400171079300405663641545330267586781420705010272672720703467292976023316947020073080197117377471463015295559534502597573370816067031194189706370565177052077290699656173192396014173573356715146555458447625917107080859752968178154288589697817792577686660491455472653504548633822270464366333905319881149639617111508131683694224352728095225972603958312161623268554475734501212668880341946414220180136422688658883129327081071869615367604090310706240532825768557670736034530478534444508141931326449438773410835550032553540276210890029414650360366014914334047279421838351933501185779926548679558297463930895293552545517189917000955429066385765094490341165543366266162151074367665919396241315971906493509785319587445771002337576341036400940528333385602074330547273316395497311857419557481662728418243193830921548692852093319033735960332075885146786561258750791504465293306732293884258306058616040003962892551704568916545940931854598670943408512970070406372398754607054961073069904566060147460842129492895007022017591199404810007773222271374129240221257085269451021517864473506204688888989786889277965577957463906841238015620229198275568916136521742411142761818062549111504245524513048790932985161588535945842861851431040610144197329024603955044240289962233555266332101581451778408986197601221386978052872415843040747878833760667218493685775170890131244931648916555985585371857090859891702299752676150514735587620104117217132181786155063226293578578309106012030703308512808221807094310653297629852052129715743037495740096545357907092417335607669698482046486854523308547056144723778153479204702730862939706910389142576651999310926300925304481023354046592505514763989147444835659058687544366242799114964962151347861525189236747467093984687014888406141228367928796198054828452457609093779324366013440970166519255787682474344444940019675493354260243528087397794688395817599304734798386643472769951085935694743596357068588540747048237202336689079034174919528310046858684823062312491986075603944739378696052887248013281178442631372461067450161493589649230604244656138254010280022073216618734147322148031052941870646673606426798895621048471642149041620771016020133864441207819985754061779563852305239830277584987930944449934250638573564755694136647060535473286127517133896987446475700274364196618202322493454973051309880003717012977600312296956635805418033360435751671801534572673273180323196454410796689147395696176933901430930809999763854646231782248961116727147627483065758971291067938922310604586660588409078709909853394453857025968419459523427931048087255894410095950031501117629669923853118274069909475019390402832025007920029537806826216024939764572585793263139012969153874253821778455125145157840554529660626094509196559479692278339740414870914540354436744684343540161966306039656721827836413121666722637094007956239786984216644359409869875585654007635519192771128492485216649893853043822294666797690368374609060559978694219267744352827343594158331989731610963109438597100789557107052898287638716610784906807082456661295997492316642609923453370234503151810105009764517492798033718173261852649574848813300813289084925352107913139031073982084015864757464397083222479070119363994826588410058396341678723209594359968916043530048799314086445134324326595235500799426334118836807490978733218898956222018526802536051631431584174353441278807542137113249108540773819851763144644554672058839809541920710715771569673279548173614175669620113298132101371253552840185456745908086740067564534252503430520715710048057814430466146878643243626733903149628578056314807456976201021469330288325821971401224117996094627559572784127924075173525690601176734554963253275193283162641417494427209009137075696403023606227059340723562229160974362595343142987630468180696583726974733656788948126934474150067320676575921943252823455810341089411470035704490132357850062292005630856761418162467274662876908170718484332794667250846481642094425379514386521307236135368464473514693804791681046650282399817439272521971532651115065697702694492013378463922553001249923275429338512430939001683188554782909739610150342927787524415105415994591328947022169233054134453357404673494599857136507377106241033719464200335730988184449088465538511138280920926511949174214497551780007467211907526245849409198981029012079707723273156038078460889190364095735281700043946946047684545237824554154233022733285083021218932184307196466103670489667993113067149718588463677586988412287577940309890497566225414784407598588633492283025822089420427583462826241453195435579492633199492524366196628067599762464252771714460604644784747729305151923659986420615692516959584509305704635830192814635978515386600495992225072089978604747941030030868155694416797371431646695116972761092066394903633846925381217537354855676145291236871217847194654398943711384878603375588994978124698908706988702466229845262860416033120807670772773391464737911064492815613399991778686235896789249738241884653600644952434587729677843206957173781631549878244374026337166994909347001606660959396013176791944543152350875625625759487266311200536455505974546956866046037315249925787488798510177571980345930488833001836376911337298513141694622517144000212808054783162853920562080032076961805273441767227121418537564675173997498393765415273166415317944941621738334407930257089745962406654902963164042384993404773446914092628400356804471044866947247260884674547345693717272865439896552697807209513176838929534102615522145197617976889393044702276407668621581936845260024991592823491967245701270109971457975892185594920335238001544466449617917107360419095969527378700907962282533300657740286448622202087252853883521247435197923810088944308670187173471159047594631130323075561402411213871330271515910268434872637508934925259325473738902226840006204399929805818037971673286852450399031878719808256563540342716174188790490854170729274351732414836041831832554290008989891022615280414564709220315001832853362123175147153251211704264803235739802880862175753427597566307440512702791198237911735308186136093496537830731357748638656413919650781259230214796439779807090998364026133960088883988413222636386797340724448995241393921427624537958624074325053447940612162510861021835645248456731188101791385922484292928753235791156591898202915349913306714791853903680315184824538681300350555192304145492950802277144434013733148954474621415756509070949868107311440230632496063308243175813720740779723569742312270001142399302137982312500548495930601128112238337503308311962535741411201464019148119422044945452352313642401013869806404464954734848606573957020111922864009232340363381449749494151708654608713502082707937467252637768231375443539443243612787495819053693649875115121212413441002213234284398945284328268595804637912762603701734296289153388275593331843189027553611231848949639950685566523041577007541983113727854478129420037924504859294922138335139655648591322431937797345526954208430533301106220915336036338337061916412189558995170183655282237552736235545825305506425029863660182269791319001394318354184175803342183804573690922536331017882730723267266289113789398052065233690911755787450572518202545184685103173570801279808979068480153980807972464402161672384187923855283872256358876994851763721044083247248119705453358024168872819774339582175218793568903149366227714484344889377522090985930524120494439954975316946138805596353935866230493393426940394945153288403161183346449524070951225389228853820160709417119986740587581962368324631342512091417952705984257631200215424814938473048752437768065101642485295014786158268630383367294723540437161494532824036653405934043529766118343572231514142907966280864785881516598789332737560022261028399231501027989338053182399478961733490880478184034307546259367241550130791030641092587469334936130242719569835488823733657144261422654003536655780080547565147655001745001272208110215546934610792621396482358813503757369721596915201038571612891079336631071446178294130908588668000215687405652625600569818607953582581212648217050590769480937791214252146177225558152473319634010794515344755451887280693956461968908122029343482170427341460248591537047900693730778597348558876448365757814118966319935265352753530767337857948545338419424822537184326179620925544048512426853362343599912607790178458916096111051308151928449682430359628741457513619942905525688662354698998886260791397877457937905785800561570964031581889001466081377368731296265630621295665660769969965015737586898684285133542042299139939783037582445940085972832325387121903791764004399219307670891372358519100727429064658113908629156709369364699344384713448817628919827032843726248509352302714586477177329939516620407593670823702830258124741724255553835536184157689670238066971934606710078268302927384028504068647065581600138098945101196088342475540110082519426844223535014958283319866807239487961196600605862412598847235531755158739024938504968741443286789878896010695725770089411585715337363999794520605989648048045426712873309674899133760988566688919745350115871017002099984976988629253898728311565279499841175187552452439064168797378910904127435863010042308478593974701668941079872807841623974442294448485721364222221323066272942447100826908648320652226765486405090200908251085954544530507075507959817937875034915272324674847004336371780787787896421161357802073606470209545093446330487640449421658048117392657161120383437427539034031173396477438677779130952762895203840979940430697339786295051807261970289964986425337591070713268903696376770959548676059086669822051647313644414340273473250635321142887432607309679690675103074916289728357514915723098619834581264522279697833535151134852246917021246338660177157848542216902531450843113687362517058942777059326790773257083813077716098406983248002611145146525050151802875169284010433976956632532896008082022942393487307170043617303380100816109982278062176393611103424262544760233423695381036647753561050386316518456037165213782274093955259798653885971866218098152537557067379570222881030359883885159416502039400819990640007340161697151024663841547395641559602286722381262251160028428214706594433876282345957035595473595540414114932608853801341939052890880215086543330083465919977634478598459776948738172920914081883829020393572662666184227729849418587115754311625306782033115614520071058250960337535883405525261323866244605066551980450194881942215603171120327706997134371656254553959385503385935345440009567338517302651310162834984945432916372150161772687822793466203240787157480025636209305855730972947356905655185575195432944441599889547431826911587249522541799515584421680556460292866522551913112633223575432692861317380774138143248321926114088418453445282060373136499228459749473134074084471201418904840862473047248528987496591131330031838094907909833120953588776016218004504765437595283701624652951569178727760556524053193796824625523072020323578763949450807855866921091508172387718264978867604214479758288930970094083890953655919519431240426820733182245502736889733527349536674821620970134276066257336671168427069226740771316037415267684098967947187418425790836918036332810249942491299397218341415962602285317393893391125667619960597316853364021781221124968266543920412788041199261883462191895150643000397577101690274174089963680619672437778752920016407197240841079099745555741096129554007654814291329093036317579028710927859059400161234424936472786515600511303314760619803013283164947512123769653570285282208619725931919454694163370423804841753496354087617881843574339424817233327363662520399737698005105810052104055505596518597844033502582173900781271451314183234443911606374593014984781531899891191268133718651103212096224609739006646824372422668963625932515693223443620315817841073143763281090525853838360499677325648403013130379343510499043147898942611114188494351340735559210171914991781407705699937638797272588298163101661172695265236712963011979784469708380766348605148081356171636725587477359393824020714492713623370999112625752641490419696689439907736343751048740268783650381065669520584180541133076093624124853698495609424400102905766997357121834672286433900019451629655425793509115165560547479269662434107846773610437539404511171508410181165076289414383206197633217466515142789205365149979633516697114826626704664085048050781447080355810798235442411719168805908928316230018104496870013296183024335517579160523836356821146987954013424432054887476366282077767402662597182588001557235776194614349985845592007102810977482574694059101342537876063242917602353032332049451736762752033796506359656170694969003482528230936731252812691955579873609912320601995830011262645217374843850267261325644261698289800884559356791864560579203691934680852117095264566238317254403415009202509474771920474978567325700048150214021728193960629004146919877682493298353598353028229144876658616034134255603226055438176531119014638267879430631970303725237462442104093746505184457299290350028260330340842315541061947918069960809159468239109044078542648356302023610655871210447398504617323693826781094707964599583425313427033853009564439174554443081517775344029612160037804905064926446645940817809303271784035393327054498164659043259922094888134224917018955115407281903483919761872554195855057396015678181159967237439500778652838234732944256169120520352913751584241137536518017026980699355358679899236955708969543169722576160036394770316281984738675063090906924133175991483488614410791298918729074733233173596481017863894213215418610555233729600426268011305158205294088271960166864823677771933415217345556272262301106821486709720689949808468097225011218749388636671724987142786854106028184838191092478811769315802276303784612767865899337066021021764607828048942174262062338328474208095272940658931745305896623529643035041852723750152834287357132562078443176446389749366243280259363191355501634859487641417355550592442977080956764320537042646454608340176388050877347346223966420720357022472166305356368510032104273237405109148627922367252315913342998276807160481954806582872332925601050055336361897346972368730371090472087335541921056502680596944268666380614828475663509817046680979982190970511368838126759922817907049606049712220948204854412171637638804719886134063421618050733198779037971165343395570834409917591874557677732068438642895069676772449965678198588749856642914187493365907612188938922339993062130371940877552170244717257341135321519761994061137353202148916721475578619016878966179327480933310639462979919952089013964321373113308103084437169659720299195175909556751574629809284861475992169035245994050563684146181033116666931786671557227262742118060928420086028910677346179333844759435309476910099516369879629410817574428700900422054112222545806014607858195303678157495625800564562763567882753660659983830141792862196077694200721286139084860142477298920939782082175180076835937974698185866604835405366752922331509109461552205556892262400306138455635057041074175131113126142782339432806559816008672784193140202314877508767062422876809294260167175558808202106804547590806772977454665849326404353448125773094442169872579603594061137443966646459446098336837341815807764253901022326885033331113786484636879793198974431575978209221908213221776667693119477793356558681007668555797609152984576126896847375020244649781946023947693071885185971167555389448183568205521292394616308200299183831653161537440351713296200833122233590334802370227294145356730156886097210861095776893456304712851770574122508311372587042281559461130958634676951617497671201691208959055552816783818507847312580158317695592637142032315013206886541945631855526473571953135538975745366427011834169084518302676143539631543145309734691499042613339262313005236053714694737961447353676101556697658297767886210786751777382334414426234832951866154137006957807057180088428706189863850069392507781140374025872666207908959238989905116866236784101393361398361368635026938289272424118156507236073907396299481355042624856960935837987951433713079218646523671684115211746931873973835844117896598207198634713772424253192218243189672790383713901256095424810484849539203762274744439415807223406061423664743416007907373479029484218185646489203320642417908557239867382406169519035254360768182298019734983029951572733196249453280040921637464179300487591957388502811778801041680197151731892758660987422755482798886389293317034481495677890326457427884369551906985052060672121396556251412386832075705601764599605411170582739838879700348650138255929250947705996215966014660968125264579804353099738388993988612571156400918465839851016010134622023359499006869714664528747176869596651800439874276176702483410275849815099663255905095033657080094562187290428826508228902634926163304962456117251223080214107213954833833606930555348469597198746623447352902551935778935112324014897640184619445695930819026939047331253611706562513508970389538251280819942467076297359120986757549476335463513167131097471275752516219741696928961310566172282376526578436623200598917003875278346211487213682101098607361626312448712052963551350469084406013824754009382364945443939649756639174460957913073999902914017076472606799828288815535745930596027603749776171039131701644344289343299320451421223772749312600724904095134638680826360677131589305272857978187490053388540526206147943095335307440145911403502510047586879436324068790989977696956744510645952185315911774271219207460552380450684363621313484109587927170454525026178357086784313924995586006051751122015625059573530036331380777478414850524314094797627394229345873418037882206600063983556902126382660538852468592852978004243298147562665711003535755636640139734912110135013133558482832590737458886283031002594614963867807129424242370245399171207412648983264038670056940177977941885809341619570932391025546887397118248213479520139611388034951077176696188233776771633981958818600447077522401910657056874828064415032607518736235536735057958332363197768060897965115024119902326333325047371545144770260412649804909155228885379653475760806143806634636407059187012737875959658588056264934091787058714000142975193962576572849250611747341213145028682403095460923207461793394787899087612854354264145762498829078267290345109929555848183415605926046865815469097395606374170500033682910949427455672238554208908435989494216878249356388693974457975822430002492113130948546466625900581761988262076560155817255173141186590706057773898864240034062961138156204228392973573293414314928376910651481049789995308277626878479875773850773235389152339251271241134780741249648343252402638300660583536961449569693345230853059036996396502213479758771747427984704643450749928872408127566666672178955853373483716904713435004975686811254716800412485713461975845580319223262846302316106072789653814841469388185282245239113272068422121974861966349493867787302276584322108413585216344719744952519059948322493384382347281012604197750191260497778153611278011826484428788770975251441638118471951823141631777850442600270651749539182101828252899880996559921107486643518385343766461554452899297570528651172716362991630644617989648595169902919006720956753045575682085829979548611480695578580685007228514788371403613928692092863565144003079052537435407125454897908000615907949391189552759734839682438203676346658713448042144876865479962279454186639901974158289535084958690638578786532682864430302554379384776820171722907069663029899267178544025876894091128471256947610744756040384887367138803160470595385354674519642011392540080731019103684783459093451255385907675455460932369073123416199994606146887735841563110706608304609205371916567880316343868900908809417570565513131398770805647827684882383471032083653236396843265738663774488359122030102614555620257025712843430394391551244006028223179846310990651681147419365346515236795201876801457021674180390327407932758207195362145661234740673781486943068766321883710458827983601832250096864921114817812741061015284547722967467108165515076721795843997104028660004314437352329651403929396211520851131946819372826681107471034264368099271604868598002268885893339113415881377910355029193162751829697898099385889251664810257394184407123852767194685162237957146694003665334260892665141188952287336241341353753834677088655927882479427995670192477492809707671632554681552246516323215891948055860965351182056524965288383078454688075927551898295130270463447171431114844334707517869794571858581982376738591055383752449502987941133947205832132257082706353577731209971152856623354529546649633497783823690832661495974142340080451067805209080374712596012947261410138534611499269176381113146977878703755432189604991828230684937556015809872696441636527685483209834578491684973941579873966304019297005207253884464379938535736938496170217973279392637006408644654147477610813420635516957613390538958106502908838184636898358809648338119005414595015227082512886871790699031239175960046392354736155799978798877686942750429201607335902699708219203586211422704402132535223537422599154846957057408408002997618067399531402548461813047475033042654868506966104593481259666530373558306624434314025789178667496944153832390467551176477341681390064882209667262907255951301649862017502060205801193171743380545125478891390688523011481542953483785246218401951602760700763437817107903720283285262874427721330112442783389463712309139369813588181806131862008752412832657318734089522918865690684327154736734473945864308132781764729102929473759089047047567295443311342759769960277585905134933010639581804887965661036517852604091845422674110280433356381054192368482667333203162276672011110796097611569197821020065377891031673877896839375247516899225462263469009965396186031560855309317344510059711588573884220137696855258273534525441768794075311146893859335628810410131125629998944049224017108277181619925712976621132064262498165045273095796533874422631660974286426435161775875329726942740668525055957442504937106901155575147004888272978295011458347860027887399665107395036053854122444704137717053077858593292585012961266614376837479341036631815213410142488079567007402569961099983672569499507486219433337125147808718270747507040800443496315451781506877359357031554672604717762434530424254821447946423994703906271612754358958426911189189255662869482435281641715514557763457615543210911438352509363903756863878609748358762360357233152836910485509816844386968856012039956892010787498756349813950046157624382978638119848321274878454266130990471170284115610737217450713217481717261212988050862454444094401663671539456834498559857683996819086304750063649566983526108070428149228335969781775832320788127617842496786897930400850846600869635938049214599191792853172866443772290984242704829093282178151220452403042737302428706232704889884727969740657883047826740127158777399346639964620413952790692843062298071614353000678704889870837053447093244224159072582455885536359158034989398509383227971862960878908751817665173315161752811848983807093505680733581893002036116725430707659279512300110700345644488067761754632675951847681068712044470744052761202761081621412735425491267631739133554932919941701917038576363783249981261236807144389562897728310754523400609710822993158271363272256178780348517465331983786762621441718830678175410443066899678782964678449598269913343884462729168331662377339176248199433366593492100488046338731544866662979560177933373048090163857445402130178539915275686294528533635089201913123780091942887712346936849118422463051957307518247454812238231496039067662946546750875447623438389349168151647601009450954071330921437466445467070176843511500014387058499109237008373908109350438362858185715924134103455734238814551185124709493925937532148599279531036284229325201872445792416652666232498524309582374901885680729921050399667067898479816724904694965036121720523685795912343580484774413399738884444805962520579165337973628474076332196278818309130227155562166315226783923048080497054240428011388147533447939463892417141983908064236765884165457379805618511209267704395202213869679891709036895803932163401901499328587208117865756248613218435490846755807503039412470990205981086426660707391816602513885834374191066788134029271876440804888446262826144396740771979667545402637010571601558289914038696281307498492001395013815117418554653885916099902593214164588141226386074030236723958736618025399535004524064772936148965025117834593532739339901245104971481991048385935458643163851844301859335777791546489776425098650280531868290913813525972400056201688186005033951928476865242749010862213775473688726568518843603244395777446381808577352405848626502460106325503133765123831606871626174430909140652637215367546512065883350854563510996393246085450543734460223499016146201940297113841062930087769092576825973531048088583901062250607707110577724193141791880385415667625554075416776946294972123957174367505744750334924241694699594738635564961748042665692244577130549160083735633735594633548777748056320761100383351424332277630422859005397550994221983350896126789098298189658753028208816133026997486855240884810643428361684167940135322172474671986550223777505801655259180931629648980505951863654360406021586014331073492008248694838139581939057002518330211100801657833398630964773014437603432786860145579983332610862042031080275765302375158542119297842674228335502832556626767356255107474949752767654458454345185008675093811915186335264172489406555667800195455375245614417231856033786553717021835362880514400516341437601533570264280178656867257220800739087252906615534098062012550022908973151540429255160852182685597912028124586789482503692091630650162268894854700926173749630560242786617609307112315304561508477894871248035207626825849037211720933387830116783678428710641097635459570353860339170185601141865505449527118603402633911006731242181208664337351612579646574598785042158418297601347028549203357484448745376507503391197024010533371427632677095714608024936822806294535792295730892133759530486682086412740401331824000812823251353758531993570406933967359682802028560693587806093714234849954364498813426630630627313095969616865346456877699966029719276451233397649987928108857500819111283664033906464273537273709374583917735942970347351636066933007689548946927481256108176399118682524985326366945324814834708149674149774386745573731659305494489669926932544877671496762579686562993106448332264675838959538194155391357720116667104891843573276578380045524633159715585295121521170036842725580699016484022925856943919190324019740385951013857229554696450783304113509173636546388995200337678404650961370735254497847227250352455060119519257913881135893967419261086541150262666786662121179926634478727701685900465583781307383702791340644242537507826846981271662653467630973126190348988886920680520278246551575724735322878509501494075611019628350721367351498840671793525386453561904911316421079095514070582472238103566448983816419528383331714035807239205892911317755459097798582576982897238792192957933412141066675742546060684339057832843351554030125562559174216285819041811671375985290347405011234306437872781346674552521390728918907219015112522500081513881296151007618973394607233796640386076078340179301447408683849119588802294615686250911104497487746792983046195198809823950990759534819130339221258316029795847192835106318725496937472855387782715721977969082641810569136327106899416208626751105891268271401190065534818428766625461930441659317414895126367323492039173024351429983857399676905417953615024723991641194806385809319490911023810030946276496086579468052976363829118534754476572640635766883649847232868448401621212060979447470455270231860904346724343951007019300796260579337298319916828548025269619395571698477099155840904794890143141519177788048933204592949362153231865601692704786414735242139320482759233060829085977668638070396302516944906134748188568142329600322671947026966629306488650452898820350420722559232059920645440207981174175654878140731790972266768321711288815626723216157052636544032040089683596541595785249815450484679112999752984676169857502730649496192200864032872584962083462650107348338952021889109980463600441830352022239273756746915918757459255455577102250158535070111419791086912675268958811422978835859924957646010805301567607639634428281171168032879035396142274747006745011476828040660194508208973053531600898034676418170512300191575925519562105776615016363684890545048524723964140066597825652715647581128819133057154468769518760223938937106701294264686218871229826534438432908543023563336379018402813974394477572993936114916014874938111641932144090904814215905181641068688456070694097414034055078026857380929986488007851535939256425465783996116876598632851638991066462437295952663174548552294178748483067593731966332875332012365473451289473816595456855063138773294810902975059631370898237916297025003952522393602232522515908582670702623627852574729641784530297953429142572656458991347840986471005881187423720696436528439395222774991607913081121911027746106880608923657862823729117826968373613826132011873567411765003055254048662076920851390690345802474136108185656016978306223954434931391875835100196989535606630669409003307363205645286011604510122496919915540576810961427791664414703844740006699505893153474183643583568586864714027759858906902076547423325575327237048426844660761794490213439820474130042955472772232394518838531174195574426818668613143046374078487197310423543730704409264240207213192196728022546456342880262760879561700490522638829608243192839426506162666026669805703984511163259193875958100629174531790541773189786610603647842342698414821057662983693260368906537885802234828515283339312817920475526447186385887134691535916057266331992353945585643431854673297669860349912570560369113387230308788073997200835246516801594997567750812940976856852824293936640965330186436814329906466466529876682037917322977634387119714680602162913959881785742357701997869244414477019243688258068094336359590829944921845811186287261879894721080392871170831730917664198786509451305489532251535223494458067120891226627099314611418771938871047603010421162990025179049507793350694671143442612896765330876736550859822295831300099009696854140368601927969832630326827601276967257311995405124456312006185724643915254337928935586795458285659195171481563589824810708270251962390351657103457913179437061301964296914688028458978110825546810605165072873049299771485261552797659292666684968160207250936673960645041079161205695967709224053491097694566665287556854861769809661460105250712385004542511067490055522685847999331538443117719645708336189535325150533782465757369737931840973161430799464052671967268934849967773931011413818890201525640712172028452614692596827152315420659232031330413935164538162745023665807630265280115476630587826433816374200189304680495624034077115042127828012402212114828952502041412568028579056851470492890418798899775480166364229149693945003357138803184992537604289153270844071868568280059836562148591266804473953626248377660153149420460467393846690613523424691011316330000769846594820829392322684955964563071271823818361519554236130838103806675576151056556704219791982587198322872050742480401664540142975935220407939689640841030688439703437564382758270834604676523850132217270224402884629470295435660031117122414901384819012928272077237126478481056451797560165980636403503021117711976514052372472161954527233899481032585753760953337170973858711129256667148042608728572084698212618000954489264262883474708549524883321664156425064089511800405600324092331582087002560727654278981561411225639142197340684698573950164104538264302279824434765538534914034960298691708188015358793622988587280442017353138005738891720530515696024787125832400253207688411060241823031776930056146151817624837668778410438721190742821185969179420374658417542529205663675573040898486777955546070286267287947036731975803844278856601015880010769355178038940512607255234182617747636484762221985925635269195983013861058832665962262339160350564719736573575607404231951451927481353094664209520704945208591681965106332888284247663693760517782545722249596571410387253837031577558313868472828208806090795766731817374235518118718068421881924157639942452917807833136777921018747522131720415021847978824417063895236981379234190484720040646309833842655387707043927610133370172673802126578417900162934326882251051837740955284299178230600320882125741658814141337831018933213825907936528685222790214884377444567512384648588154829233331519268201027436530483750607031425880292017954119081261489584105253353596620403852909531450227471968596671669233162206213633327112145000766423935598454367325082487965145293719078317327287095259587684037116325231323469153168853554151092020580845617420964804255439327897022865134170762080659026403600348299125107423481436343891000797835880590672786903663931194277870307165463771239480577423077342541788877352919796168793840684258461725694330293269253072710656885673331076924147846848734241833553324533844284362762868524149212533433240439944401952515881747117903505410999302594873038766058981861569909208538021499494101344248430848693638989021834804096965380964220504817812468393291963807631951956532242825827530141486305390301281516593765822229376136590192719076374315311529965145359317569326064545513273971095530650682040585688387413310481426707643845784738794227908560488637555448264982317014612810003340434696494398856222133131174380474018056578247038981868438249822639043275332213164452653451659171353112818524290500639110260226386359169208151413927529879762929209989345316579971004714413789211928796524252049001646495917580444399843977176442385113939741178916096369250410112250217762254066716613597720731037623161791143029020945766309852221901365177912208932951816537383207961486928608864437773699606537625695298832148466821151580904617926644660797320503731551979215296455206597381736472805461931781750211923422259951208675990026605993928121292994025445761583536486882203357623280144225466043390394551560844070392318849018386190421999634078713447318391286941439733988656317919892751724682452284522850286474980102714105473612598152040481093121512253128057094297889927052063449794543235132999192619380036829738388843378266361058178019939895038481897668556025812921003785278301043972900685041382673553911312463996204141664115716978502503239749432774111470524856007663612431861735839376068384894905025465315476556018776362247371763603451521854297667209418580507260840500869947071340485674531879757011691394192245927258385002025799671789693668853010283406694215593436452104356238303055277067148734119928678297123626259765512730369379753925014135407010477392954711443415606489604737009560134111117137599329981046988191653593416696147948265268493508801306690944009314694624431095777224059075468572062398109751287209474119348936693040294782368980574844113308702903079477919984302739499553259172219617626907035030544175404967231644397733202054959211710520523062090850632256159599450844294120746011614144599581471990334355388941907830772974579816512052197543862025395125254554909379179202375493791677849563249019718065807215456871276776708524191357310690862762905332876725768165515665994407848122503504928918987644108154656994195529246646926148227786690881539580686758693357863703995920199946085537335257834217030409410120372616136429151707114054087784758887816587170107377639338451529318016788955361339337628729972027540759625851442171291163136848131688690153290862990696708064175717571738732105795989190419954315760693714451751270141702582506977924316842183752819386194486335862455683588063349441180417324880551065581499853424060114265106993945701417147408801467992096002220171514105136679409972385269432162270374200063337615153514462661868777498107361815140907655383861378421440644514566503263102229237197797931969702397530752444061807890440611958272870626517226598892666661523259860433128686549903942101842659828736492789154870895594839472082155431604116462220363989340960023295971258114567290445397496579161548134615249684795907276049162131949462982427433972103492847768142562844573068684944148158941907516715286924848816890989442281219093790797860950904867247128248405246939330656623551551745576324061141060775583266890786460086154635758321422838091866962904208763878763593854358221163170538143961352244883583708159558948189207359749006686468226591198763740475228088485297909896793938016205456624820117076466391047854254405886966459566607493602220901080035712637714702562460572216732500025871065154556323676881357469093420829397429957771491903233809611716962733496184260083219215955708408233687702996193506994216658115329508786476584155304279621962599471984862671999153659163543436548757597091099884006240539523352347602865512699968057007000478923312043167534301968665350143866896946928361849880919628745998024295165936902106094373037033949299244890920750756600756227929056583690880162195649850490083257144529289518807764383347384002367554593710071315293296782106331247468070067211796903782433554466261640677751281621264039389483571222520043280407170987592635293454271523366020455925426073634207989412838208869422074317543843733439438664982503538218940368301098350508353151755607914924843554111482245635282803253063087749432024245187004885215044237222236889484300855633228172568524956761565025209966224833113140426069518418153736045573172036542013539364897643106286162345035597214472503410700323090285820011248183310324373144739537689523273177864536564272997006541925013895356363047201021189202688928949245957031970010301885318062841535607130861617431420585005694575387222155982662038298941434333063864565972698067476775893684386311423119324076518173035235902174778554156528555637451608003119646299995521939706205175367008208084751131073615040140759953870858881397534301669553512256215011061918544512175389967846028437524566124435517574282441686285948346316948730697162468909402792259895210236306619057727420724082618316043005059312550688030166993310563944998331462417155308941794464097040799698918850880842672366065148133865095724762611927230488481272636001090208733232003339728668657294090698979409912119109220442961173879734960914316143559387280459369469033722734403564432435274791743018255414546487993743999378326971478196652027292430206568643653323405278264626440371645820378035215963139520684938451731667307417695417559953020374154311611463996007774411098773453238912960661164419211579978131459408752717158200896664471598313589636937589718281588484837819856972201635342881462909906799514076914133528315273259757913005795390022174496160178680840065690417358048847252890613340751670561091010541540796059159412928384117759790970071525904000625827928153455726754436764185099360223063724098611835609166526028263882870743297061354080378874887703910636678527964453495829419160295455379781445666272822728548579707086188784801194157209463124568890973503163749174403953505070091325255820888282640206398025776192872675493261246757913533433426637313661940598305499481783285855735983704711795130815671828387211567820044328656294592651036393295910455363006512264348832953762484549195251423933491225606815542846459130444813781098272632085390236332525128049939759614816882016031471454675140486194784237963690279526040535510928355973683846043166268664193517445602139291333824943464361109007984441356162661629537841966508028852812909460710931316206093665971836739362761815395762586810202429800172609145663710263967403934595773736313779748308748242626576449764064528055277416682163716300229961769661722346791590004462192164098144069475428997038006579540527036496785959123958546768598249366203095254421993063764435151467316988180236625397141763903823630537779767889516208100500985059473080593443031559416590226505530268978175755521195518182951693525307610494230528549185654961133993729193918062114513759321515070043811230920059238795702848387021650728231883262302940525099195996323036293196145796816509965466099618543641403690196497260527252109059285733213254821589238777389838227195726015939055391271797923643692960330027777949870036375499338194269088137642137562092183257884054659367751115453374351718501864182257356572805106504351516473632533562454985222879177751183556185920362040334192784152831121991817448731002607534128105151580056640841488037453885880847383813063642683598527451927653779379392583600479024589210490953549940769768438883726078504044821137855836806656136070282009640252247259120817295157120753598291827518474521945958054185950428901963778633157960299200714798216292019710498668920737847758268081395727143019410389793923598637482479248298621396112846473810796150397411556810033168560346781513602710692411481462067534967898341372192687854488484045135589264098679553547721250131321060781440244001865005724515923052262778002273602942731352606090762234781294254034166659293241117472545493116904190939236307341604673532600720096056560468554970599783316730912540547980050892072169533539428387157613163214872621292994304129941943608111705513399436442837320184008201513901232880755727464246969768992226661854976852434090063075862388917507818517644667351067366676383367925910838373627027348114730218038403477811231741850363840903247208169961022489786169754269220917038499945931662014357896644853510191853171705872677411996534899662145538131629577742026822657714868365891830331827239463559647943097262419714233545662517285977255945141256500660195438278783924302996349024282295752576324948628819775482595979439809629830942772139635066781867491602787465744579482344581446660517810719186942642888826641019652152183653501529736342947539522453059330588721779860731973734208519114836816720129223945572487190166059829393967485726447048687339060994473664545945440614187435506462384250909952397610358323737608094983858070033288729134197537185195710911898531030932747187480004884958568528536319849765893143749867464890318020337196532877567559797620100420225919714249272130332421346833014618912615248967155439304678664928065026794036602668378429272589667990077574081844036270579010417236756109688833018821507168960450788787361524559490255614711819419651935010163778285513636128614867897795801956472665492322423023837792984612041213509042414381259227431183491671412898052296901893979465186167364366319278997453710347183634329417678487293939811958860052802301939302247939329828032982599542820346860654939925148690789221761912048300514058434573287025089772118720584630767840205449498875367926523356408159134364715211901574346573772799813994229890793842985208027876897111414221428183085267217209547410761467246771588505960656916670540054326817446888647094601161629242059758778946990675157999866678303935996570552151852202780431697653664017503195347549205923970090816752115418940592709319471949261436443056229670194307937415988099253790708129023564517222407630207337038674829149912243850863207847538843426625868403694202788162085888362905160159312429674779154952156884814450383387017481929402101524618210974815988327660517524475701832874222348899134175842953088123771793337707247544957388065287523274804962230092629373089620458813672232033029931729093194184087155639668713294268486564796677877941246569592844679161156057887666205578783289381767759672208918213054267969467795352078735029277152075581007958971810862872185037675089063766508616460337530628331943041732498471883799648583285738179179298344382106392428191331001122299751868537782695145096552079742900987892872983294637299531473960686480169611702512957242005535669078291929993811787460952666326559655953598038367638669068580876484923223946801951128916210337563829605842848336289698522943685861276684481429776900231745218142202754201715310138799336066244504176768125875334577571220050666294524886476591131505484746588140970859984223070557415195414521431419931906178598434528546614867017708704413583368264837774027714157575847288367885878479292682466112560375126336465113010488181374734183776287584507786252181089081416998289145516558657689424543156811948409290436324550683510370424188729162926734782518168679308922319993913416558788568258006380028471146238417640475605410272970260598653304684174170715240051126171946275950716783032291082860537965400612537332276857413448622108893216660981293517954616281831630940998180361594757992043395551447337855333940442424331450114935208592676107947948990572011768370064188652179361005447292109144371248385679961509600068755111851230662351737770471252093378528522943148311091378951144705169093944493594706252691687305846805760319304750081685790667043561249761097109449188359681188309965818916976443556227672669626436351499989647020795371062982210839537772015376551492451667556046327081272878435707500838565517424944898372422151319373942447331865687908415520381371980147154469954408489570414216696960523683756927905427354433343052164678172754813124131078850251907873785543290601337624372922384829399512255181762536757640175058419886704756938792195704454339362753375679823410303692896770415392968888389705950722064176805680746608394309167181515095498054697465709991340574402870101553075476228641347178933208898336685763932558423233039888576052023793848711244825040081819782764204640475887069089797977079275031132502136543028800642045926769957031823268809850404874298132231840552512950489541341183105157215927891092215245041672667740455900821071256826154130280579581064021106718482833669181910474372171268164613319321552469358765799778457951332277724347907034797004332233743807097637593312956041252501871767924844176751682959328808825013031703900453496783531679117363204411304817144167814891870636494366543961109101340829841337182265768361554334707026671226245701035637629872731773397169689431897426851867899351016211537693800973867982050930210023613544235617590502220874059866230116484820635086798075146419258392102465325628820920271420715779316995358954316574239590530588001916117052228606794052534933385935567721967158035443400291140820928866882755669696520742718376249729525617447115378557693512188277206425153315476644714659131886553352070896350553656824517953788292563777357384844713538016373377101819732831860078688976923763043219821501585115781560537741296633248160391225746937438051834724573779576373658747247627229003472148981468248910150432082642796864981425625756371758660244345922417550877764350897774228439173044330417556987220010196904352145378414957445392153765477214576646712004514808292839019112222427597064018918828168905477578238494798398883470002813605502709750844447419939255871051116073321785245755995689342524459086820345834742107896679961506244519453179200751326147352420942224253218749451581296932557671684219499707308073351471780277614528947568337067430466677908917086815616143513371300466304491051333617091178451401917597685695568841111198852971250692576550879627616181363647057333749344373591196632410307332687964385406066093293110057863952484519111656155280373869727772980874076176001572899707464199506775708616119131252777154687117502607798851842122681717209351281197293601216551588342626645641141853089377742296966378225727199114759728835406066984352169146584934980873250019363925476456541841329052604777356873940095402677670402274691922593452100723529031090126753336095319614652183354338416029695254553134301658953917036422473351283195527079923578001025122917163044385745665796758830347664937650939041173233259498772397705032671737648396029991390505266296310702261539092019251650987309934520447345669046105188516737148950274773036735793930717239624001703565602673777597552233561059678262320309315202368439519088931918075040656008963736961825531607435646383181997540921490546280194484614729892284375821412396872716279784580822263844712897378899924601251128652124599589911106295074024538618296179154291033755791738010363561796551145396659958152429947127045667380489913986659845217877751798385020305592596550845308274376704267073250469752310253402519662469495234651736342848328077685648523566044028454988211382449510813506313038793388412874969352700877431347159056177220584702022492756945380986655151508592456608858055304238865341546506265884874078530480813890675962661721956399844276687333651064337914020230825564065824247699075072889705096909830441235528605720824535219601897654834563322722917917401469316414007693215546886978652222957316481875104827215701069747072756273453771482873181991728591539694255866910963425811105005487746565456073383208236842480919002898137474044037982507100679136654234620405839020046934595427684213524212666920334569857221801157427003106515440659599223415001451508447609323294707581509544165711433934377337479976580634040712924681794581288536795580291117571791506356972257796416394845868253810307155873692955142095226786043115219350293637479660607035726405383366887515616893327765487872347137457728166171216152803745130146637351022486536939761676511624152964356124170757521958037847082244505782746451379745491826944772660185760545656894190542568453232427900244406753736095597108134955653844913182449531705652698700572851865644951427200888876312280799875757052821607227703573187854948076487567297496989536023801716305622577131992582572184357172386121121317693633738502665105372688860421073202673542516137686289488424337282342139080442961518149114021596077391349121175797945061873985676946202821703938540667751373282906603336878300516762324466712351534474771244434715684657205672819976043850904308920754421329882880081490758041119233288174773736558853437512244721182255215502072084770884600959905787510189429469632108686191259965861548732308287298564296980769787185355845342217313594625258197833329989347061973622910409212990161358973577082375697539970440253277883437781637279844715198369715469979909290820722926532966048853695937793805213923866254234721840819784439097720644554109567876271513529183520692630786627952846747992554556226708428512461716278186710255290893056627669279722728294617267614906302881063868975147412503268303178352845191338460832519555843593152752243023436952218686776174915154637111630833296696900777674805098043214676917563038789434074368139722995034842827097641198945429299843053102594671387968606087129432668091769516691725727530795870387232438187698791447651670553578517535302352245058951920717421616298207763939477223172725618111131902846129282448048062300461848960551525252662269501359126760917166313150134622702033422535010258268367297119432688880843399471265849852254917279265447337629768466585568903369947192037513491810527096166918894010588203411846229846399940782174819153880281861624702377797620342756088311899384357889075568759453090661765632799397340579603986130971563435676782944849183660345466633459167164886940348632738501233404593480182087702367753100804101717929924509700282326630523327445558295335565640143158424281137291337835386116202798302639180507223997552817542113354247118147424617701098106343706165117162559741396621292235063229995089040567052579242233167434119199477859846804393986448398816040363117139932162399466557461074737269544755899537766104684272192178952417152905379722745587171806048801660175063799130161668216312313029609423671106580419837292740304815351619254835817807683317832968904066100268358035571525800631598509622675706412565430438054344206934050684095744181825765154892032485328662233614632044237809391350788168018796695828069728129940009246338038933872067939052225422392281208234703022617570863530587094794241906147497575892724186703370402460873145210944907732998844281717843997156269375185366083119175281945819694829990616592930997643659591805945363670052074942861789679904887616291539919508733714362387941173990668280715267532266830659790530162865183842341817277307194076929913438601082576617453278113952043102136958643090160265644908645819567369219971612800821532841399872315516410576755100706520237552591155653475031400062236595466053083357279025526447986391777888371011595757459310698710094905125058253136816419081836074005926133276455840448265952792743540906071807460945675584137495007525743073043536828232779514114866552563486384825738474140522568018421811440466002128191430158782460637382321404657593169788909606289905609557046068606454364437603378044025692562719915775658630526386142225823747049233858058029632136692504830456556112625253686075668112451500274186393177369450889704807711558480563555126879792087940808974037765910291672383146544095280822036385453242393976951965878332742361233691307858591581937572060353417938308131412050167200863288064633717197891401871515700269060830317182448787012014214015976834007764503454263075055022960612400553105199578496095569694515681217649426764493736446774249244451533769320611468597401286331960173289667244210184295682779971166908635510204940790079209214476113894450989192256151541246100586621838314400079843167506530092742257772692928872368572421131124290158585193956617288866855301704959317784542304323014307418651380322615681623659236097384450610305235742427906142878062552673089877683394489739287590339243179665351175078042924735408420412708810092139893332557019616297718475177996948794906202236035618696890844233986347683284404376593111638951337598942458681671511329187795496613031473869213469199212577464175874070181816856443871663216616511757732041064919449751091238057291143550918374444026113456821659200645817472992056773496295759683350315444806375186602483520608847179673499498046848449073803849603044963835591022814541814606467848647904971704695279742197733894629778608048421024960771866933050812870129894398977099946182774865961664085848653574256278001436008695829974371297045472793847875384281217439472796852639440350533986991207127092548056037077977935461108132984188662251622941030980714325581823763106037012541248321356581526073840254091315315188389954203294712037455864504636387995706720453727306429917278625011299492081731122660644727943931636429916598361542261568150242343045333322485068421691314489838042043093792622111604429892618587103726022380196645936826099110803687887009632001906577517474030593291194768461131906735621009017720971107638413064422262508807495007890263667904148860543103772529076931728957525349022287738446620650094321718948713045575853009071767575726496183894960950241259196656379692133536493305732047303864775355792038465120471772132527426972375082120922024458815553587445714005424782819697137816468330420376441021711249591874295647127048620601218764132219512219002687425253596086761569229041463179659169703728996007238318562137225834743534054780711562956352498307955910908546137049780226286898668839543766659856349788388681833838252512321993883037141485088553067688846264570582348620840254190997322316466334966831290399744726438877156092752194243254317754178245069295394611002101863358060449070215806705380415464406590660761504191784701778999507240172192748660341456170695334839860087605395563800727141326317976760816650090819273247797549489721391110098791924594369800869828219215347429022388992858848946640044091183108481365597564897522057992850178411783941484419190509771142053953038187960798738214885713511612819253936112804438514776489935049278591997195397522812120428539969220230717221874264068569409513318696051470299345220505889245197798674904843358249116648417066703028819697389081173053561097320695037448907387988451012034600822877727561071788331432740602249920308177466712906473565498600932479039898829640929450860491153192168297898628179744270418329768547833366919357638005297658329261433064860881399061728839047854416897588180069984807033330710064812327242220135380992659695393364936487056658857354142885506623488032748590258702746680911841616669591333325381138871067284690702978980157106853500205084525240930261244706438590968596105228378029320120368961041080019617639410110472056924130184761485906713489390138774447266794477424800029754315203397858465031816316071699554176740528899142423454410437218144619180942062825812680814111085392731694196410723636541959971803507477647466793970036164844519534457796542231148441810117902867116177737978006383174430742466636062394222634822698844991738436073648801811756735782895190487891069860594605628315164559832572177687787787791467997941487069349264865638529350278964404236706707413316410638318717236084109984114203914733189282381362712758685552128642778469612000528785098906406262101935988904123293162324974281395590416116803256944878498346485966384590389201305461487102403226974266652680622810809064912993764130579543716548582809184286893078803330171984329226594265768812222798392456389043208896356636548464504774090342170936903980133842292216351190601711013885635945774826737763252400752313572239056124590163156655912026595997166187315719037877807954794064573675122125143692554862228587678993430188688066810021519367901337936529882025416006299270849812683235858083253920204282554294383337688729065999031759089849683797501046387304888607907357069207649673014367423256942548265436451043246080886994476312664032638767820922904564348092867117794598377538176210937250638750308739842486698542404719548220652683098347661159130286499793604898851301667748733744354364724224059103195815380013617515301561503166737981500387919334267976019990941344985716944831658268234326608021201577910252897074854975829628161763806688739946401990069316834333740910950551628296438418578163364223512972631077921211398870230859184585922426735994893523478466368366501918081283429971175413726673346806242971427939573454735229875217060170476643005391450320829496514836310130941887979412039167965004986715320978690925212371600690605487277223818129737762470170888021971595725222120976092338846988160499355791030438008535017009269406426868805559421388814088956946613929478803216935240723872916271762528109507567667087686187336727895667764420418843133833426491252107428088651285183903103092036382215310092778615762934387428876487735103696355001608249819202951366213732004870145143811914152779774658969524614875453076859705653102155840064305542804494659891103590585135529888268421011272584481241871503495882939314987391943353905764991623777467916635979701249794670738109831187902737575319133795863006776865833729480763097920632148521381987094563392265861248694276747949114185999719600214143976050070040362710260586174818394810677004053976947006067414639346552874102183755358955716349421230025153096013522984097525191603731901963481430266580497160179945146434389137569824495706294747691729001761108389888257935360665860873173448152055987742673288847682537578620117944540717120812399693178211577821491070927911098513640662498102068526639124544821859467267456887943078746215324231390645257038679038430575739203693988666047485546370943873717904502526875255773915577023305906322954448736155950406650755474920218321221137529331513582526624938344610914883709904383557448243420172470709136563533710128981769772490699991730468432429717701991067110640167076555504380141425657387891185776829156069985706299825600584268410594124406085903351714099303988136675505452216954772712140063300676558712670612226394016857229941834514029790900161368711521808872234827497478307948920026822335417746620823674730767676464133125287714037376445451764363381851408418110929457487914950306082360480294459289337216953449978298176010946453915380042997274697046372599514528177608551063049956614516145372836243555563542459702121629900074604555434758846548902857239537451485894977218739576322620292933986550527127762730540155978645839468868594331554700289010197117190333599687781296895098554205277098161854100619924478630655298936818350820124044498640244809247675023146791673128364673211792027466472463026184773878078161266537044694497644484289875356362058061991672765873023193066783559446402445125847068637338791040340428694261363094434684936705978484325657907297288434585430694453654167914748779399024269442355989825029425727121844341679440776875050382043278807587348095054390862210138457910272501635739197195992553551978123493203820220340307552842628658878892888789064001406293083675572424722572343303485410063209191920113302775865860451059464575067978927397781774902548742504585647160001985810776629192714222196994659995300448901834863354828141157487712038787380850109243000794049222770575258471818025947747849145020698245994685544991900950448669210302259163242390418413061473718961396583728293699173337147083274128428908946696022675685551446718905688921218350016649620320527748425887621522403131425768480873730586195000702264827814037290760218128073099124547730442767112969530499635980955956300523417625270108882790201726682974643089450828256722689800154289566775790931381750730368729415943017996411390074932301778285576687340942737164073471738125228824565495931364419640127127718889639717262125727493507673890986344341509482786934414268277998050354388951461336576051254181530218081388930281585204802975960868143415665038853514680091134637162940132292528151870254245075063947213324481469623842243575976992850943293097912456193117477122286840476006015128568087408786068776951279666114141371818248239625928435855487399332778868535589308951691555962314821029171999619979942643007212111249596461047254029728767188591891486542292366400513939111719216574179324510588140074798887116487243353817835202363729562057114698737901441212737542742395000435463774270231453331541292807834678997096017885057122037284137525103612322011184489712761131253785032054744619091239234812027812211994056799978331856223385649378359142706797522366356236511527951452981325597819636054379376967113692198271259232029587033578066935219208605785980062622223464644574781077828045073989474277748577151544968861175617379175848526664114104876300398008296068135208715286421333869196138712128219225583534628105982517260468370508455009574183280695160470290895742963125080012973982232216811655138486574254090251534003937065291519413646379076709343080972607746658170491491956734767050127872037170705404997288095255195504215120836412980566201221361595671320122268232744098627139280279843135622625254012662367562336522338637554693823237566149106949922241051222755750990538725277922819029556074014461938920790527939906344569925372427548709398698844613390798209048351327938166210247187250730440022028647163098213061242729216888248384996687635670208086946846028725608448418538642640637963573259248380562820421111125808606696267930706880818794526275371786025135712277848328261936319057972301145197148315842938757484381997439797130282019423452557921997493875078838743746291153360742737119235517068433431055027875916048124121327092705350494986550906700018108276268716009328943424107376740686873443737690422772246373723619925949914996841568963741549226784605510940125245238918769913403891989368558114377868047801002724986450269158067940349944252212845069047001112087836811517626701614435706696989303565212423289629864417120365251900138179224141912533098377129111948266751129576641679614402552378921025147166053572992496654994852699245945005445228003753026528303414375419185607702489162588095802434477983448395746622675690415801993126575537897973909927344612312499870942889892616325992735515951728986493732453957427743001106423887758446342878893383009739337112831548866635194814899667356477217341002703381962377699867289942562716814423291154885398899178756796541609251140329057953187627947209650929880546946614528191869479352959125309575148188274862128841931109749713123211317729695234783088523227782890222422229965730711303269489121615523261932790794625808905595784486423985548231140659599075686506993912048041154383607892511487618502936185819896642537279050055917626466792118328159946387863751148905995339521266660710761180740892496276085469411249215365123061047228182727821226008529524326860259849941143224098775733130493403169515386350389791526713860227289178736737110153921978219717429760023129646912385106577520671391372600241102382664512820693345967102493368655737567242925835898203792564654746347692413291962319753332269626507622167903051025072863381448908078958038649180910290610532398379845016134405116482599381876980245533126153718420264515344153449518951289617853965350563176304404351197971003507357495895293118372640887167543309936926555578144649590652300017063267701721458730001803312701267796161379638989171088072370646817807186694692468730373628296443811953004620030645995664886343448509288019943155710829893168965739437867405279427192382016684626118855594503939481267912516800828908345158842787673626640010258837387360529179502853314994320233925549999499231275115690038700387658289157487129468263140334475282229302883004081347649068619159027318448330113782489250650972166321500817291183281056997455944474039792343012776512828540576412978518573193592067087144735747459303832556242557257037432189926746677642467472742469062076356448483626783751360418747924604995486110889725263264011691073414137926155473105856760972229491680310909619366892912176497776680847446820208683342172244296148680373857667182140867783711266223310664803226674360860285215849410022123137202227556189118894111817360635829251101617364273342590440604708673359086467328839382809227198721033781254720895899028024632425866311171452239995833574816221035423876368524420792116722976252927076556202171361348451020262566040680598106383088012897927173141893679204266748049896990027496922621151899858544890374261292946965942535797904354217835235137904112131130914123953814336640271036343998619167180641268014963519985648923858410250208419348637574143136251284615482354518178766128976547365639513308481155915882502185462930024489689689321245519986024641453004189720006180931331271934992521353471919833309833066195176340205123239686707039715600014906823547493808599088857496610834449146723102284968696353760798226315641011704600886415158979634026290863526406992176985984360552058946756522446024045021099661786502357955930933692229426105844722913520178880660703208622479846197880300002339282361791530908878476011515775991956698298907402347487739230002012416985818763399298128535792651295593568322824045540016672192122684288285466781259404178408406917502960849013811749646791267461677567130410292941276368802370409029780996044965503710472019557266463047798083102012913233324595894750547211740147048188796752377115824159720033195767707259799284249044165218967693565101622622965261292640005696404677305516566822170398588530061749963482053444042400842587593199950459626898088896579987656269695654321506640285525375241215371801808581262631939948690223933194378749953398448610150721231366192360931514897971773096192280589647356848229598496150044047766406548192884205395473218903838054270393208338640305486229912064968924917940186408826304992235868991602387823360250365385498165121359221534192520745419306252824934639855060384107055203591370570596178893328131282998718043575366842587840323549158579746368507886431354313747681993878170803981118739910777071955455935159558316556587345150423484997360028177705378384164949487636947673758604760088318586775260071219470449418494401589891036049644788092431297371121296496403225146798490433249553903873968027684950216026655155532187033934551724881604262427266621799623238872842133624116668247824732430377773937956706603537414704304061279614028611466615070930078071849252235877614598214578262400303624037668339571075337394347132569152203929339211455603262257560475602542042485939091394374815351133682712192570901208224095717120752328967951047802438871468949364896592953928557397171273827846722424105436782846132043117123197895922237748339446100050336170183566798977692040067948855376540859576579397293483475045800822366166245918973436828835790241559865215901718871481133986958502665405444980585223976491876056970898112606083582611390951570265257630037240190991431441351899351140791095058844066902096171772838104308906391602670275880246684352495474717177491945375454117437011370850106201343026571636065756972742938498869792568154608230638680054538490923439437302448761586169416679942788886930358958212237350790084777269066069911775923448763620733425121429721528724036113829562206891451292151830749639124260943408464876231195248444871797956821826018705349113333053358447668925302990375192385112869249658065135433740960229256349764049975651717596917787870429763221523929534864411561097849119341687242342730650040047121852272656284831112327273478269317485589862565676020467505339289003876463704332887777862846738578473216589752662678555897724655883140307497623582058041761273483056469018856422913447945356346626217585149219760755575085296683266904582106853705256856740874870817536592336788097630542604491119359604108089712712044250288146663317651373873166420371051075292574735402895551445334773231252419999690283913701634994162390378054956504594210029120328937677192038974545490856629546754796460623925520529299845682894670044687543590770263892970460459012161620475827683846985609818826415420976169646406257669927404025838074364556747302409109393228849967628773986794756088798162212480626097084095597383332437079082421901790802006016999606995082668990086103065908773126646822102715232995843229371221174858804711353770682199381547567869950297188129329039698139970006068508641695951977999735032093036704442403601410141112855328199209796568283358960486990681546920337803572250649080337305639695308950831428408582165851751320824140695602470017472283565409474502454427529977860546512067321005333153786971549052911130005642076766757958788998513689066380533972163382710044962426475991519255540109164512000387156449567072824421885958331449480503826047994736059110700798371504595276655455743455144734901641927290872150517372966703489222423943879125992324670342163511257689529579323661323522573906231201429325835988808871171298995664578300690721106823352211323640304353980172711537083332690067213068077515296958438232267031314752012594953549015344873731330088280878493117797422761202886042722730540725708995853031141013868647934818641933418766768988142440705790633300544768148568565710682687883553344447734007270388573881944050805528991649885220408277661893989401634912098293850473264012032883862798690405713796866762285980090009422030359460849387007475863842199012326343702887284360973699590433957468899045496349832241201508932017252783091574883067142388116878474724805223331385867240893796909968446126388426040382049999726190139060155919873859166070809613757262756978265527356699309642739719315469056858771804728123562970790061858607711355096558949335253131074351975357937106199507558254330747321098813206761782691435989551618022871210070126520536870576267635055901919406602399191139221419614273194728148954629783217249042770256957995773238657090443422783312157123955402388132855385743508029382392232344982019664126293851973278816025066665971793628621933776557661041223876465174670526082438880733410368178351251471151460428287821772493843705559186610810475879208833778317954286397851245875149031440166398871281242414298676083026734686015309804178850867633101181193939986166421736358350513901564596875295657633645201462394380741342118167510907963997706139281085494960230050995540550761518504243291212696693812678886276993128645116332102890144980557226043719902080833956589712094708489308330530612047438596358884058079133971034007556545313953067962008882090530489840713128017922106859182525060453757198740745277132516758522645025226194893570723201835976768545871094063690519637972090163308529702661875344879361690713109558460405211193267469510434190756821330841864015036566657561399039823109147516952556384835196516173788125779715179803234738181512268417057970321901953062355814105411515787744069180659151395734570608057707817301810920289048931714224466810080861380998038857311830848297045009754149793089582323880724913060804777074341088188552323008135057355793162497061485379415741011215306470718014736183870965447224642450185644833806193318361638609016501976191161020799105771385936411701719130606967833748533307153110873710465483534563564990370913051850848399669554980063186976445057837891343078559314542429069299921857349915920866910801322226556375499356962745627207929058726197206947083542983889857953069473275720113845845074454466549635603363122821870151778754489623149473357817207237265349255042937883291143538571951693683775095899750010737995860748870100422831475243861110764793604962542177391193574033959211879647992104302741365294405735107707088112489331148102070510763500492831985242215360013634319274499862695961135489460826893243141712940772583719156499959752455060622781581129397368472304295478445156100609287971826621665028735152556529164830108609848745914719068851432649605410748797878901260193710979087907662912455755622742707249747759488115865908849155537919626697722746566956364356079530177898745700489387839055018191276041231356237973538923219984138216098051845337024907285930934326190279427870054172699130891221900621189277960998891798770377593097939503045170082237185679766417488865016362772552876746963581659265953844466165305679839093838076802668306275558808958635370494875118450776061271293388385022023701834949713052729451120469257674928689850645083387982154455076777064701096112501203473126573305133492668711911939069418423342858707132819709251083478966112104887435082921897475544628598628636074239204518163880646535520808796483221635932010581121343276015934084907299647809397905726382442730223998122353461947157311376296429883908940630187546949565080678804400042464221676310724816939927814542781924037695748063096404700431675071080829466021787889699368708647290382928830643445017203199921866763696277731382165653529514970856174190779661491726296176763551955001790357805352044214151905072387863596922394344051860839725212562242329843466228391671916866569913094393591991900562408117568178365850846138314252580532117885096558529296102198588436772753156888322110440686219464321493536965577293933052869053938086178582123993496815540999988765864083714462491847152389739276148591324702601495533189772468573709602550124313085207990313501731328361167049697430999461491266381101196969360323302357206996419214860530578419677859069328353190074613424646172932871918705221611958350285654459258165809937138607618159829253790486098275723564877336025777922508310155670242472455895387153102788706435479545419887625242866071344359625592803974754958021730420823325528649336238492116456937874399245704850904069018347168202781493845347376605135328456898495464314668317071566595748545054974894334224616818065500727556579042025990553849042231029033279954848906027964055326778137432695115119903001432928062936670465388420107722735574616909980856953994335808816707694379139866833806274867975947633783609044544559314224008836731382931114548873181484633056745713910947753939589287766003225840980267156140563015371274840426677767189689507330484134644380312060214184645223364108462548262052734772314396058202722838299067293693129832649439753258042670950070829241507058605300395696416610471308380803473379138718143428021248116704744595792215453343431667650725185853752156976152214578190168484431334876822980399048892946910950232122876334230365123838211738677167142782771358611100465692488707487832883694700388112587991360036082446186993145907904007159915749515658490954813797172936261149230516304543234307128199880373233131398109793148744457611408052942971177470314345376629844043569572385679179529979522216887686701133042757170646019323375502741782043006304879992617905728657996673836143620318876706004587628839090827392708072435242464833433029791749109403683363500646911664885851419591825745195239316773627411839829143343076721840636076683776244579582309863257297902326866756220700750171391314925726582989245308025712648403599559847458382867801319996726330482845628036453308274961131720376601726690720377153980785692107485688900407738930130092464776559336609497486866647396701689072712128275028235528987909772305066577448541312664608641701583002780511260967519769574096884764787775582727103009741447680245229393987003555295798230108954463469224547140158063886236700418412248077784721313335003102349249597825202451898570453877689043266821937797245772162640318322798648994218935706634778685119814101596569990512117216810277409409254258464719087563097938987745358498813764061125969053531575616758120584379276499067929921037071607629403895365747923011365426456944184541062387498526261126207153851876891844873194130011770095898073925935478421221483494361543686118968990487603986213562337619481657170392193115828381756658994398365409720606611867669978311242978470103949179572189317518292648148787083907286908874758372525822340919067419196259257986074360464892697884151044610251703155400483077843805083462855036903499522535496107965080473560882761967083665280692519388981236289650402007443697592738337111818102672590367000442988441324565193957209506280303237933646100547065653791614504450894385768158095671158362599274922613050884488011573073023399448218249625373812743386316365875743467951786145086108716727672262106306031983580307955342856843978716175444361870243091762370751183508904960306668156613099764501538602167181549607475105267461585077336091814168902413480676841574214596401753861629217682337415925673776465833839055555662034125574879880575766604191638373847864259040287659745608042954595425359007178238414820415032971605236614989140206196097711697171760652962313589001645864062482041480483263466581910179779860910572823164119919718054612652556013777655815721977989850896074232023953933857696229553051064893585202473661500902875893556582095289039063823592373640963668879624484385621489727333301549913044826372023502822586330374888374443870933206119205531083399909742747789659866719492614495213768152705472571631590755400474082621717643545603575997333516903384316968875351752659294019273760448848626409450347315652757925533865786697800345253833046485532657969932872395902824333969731179610434493795483593273377984694650568806064875933659602934604994424164705975133548639750185414975415296959226793280997816764551349948563789647538646511059222672479414597996373386568979537734818834969577023255707178862029269911747146895367146314660616651012434561180945506817759748834378116072497019512778959545837096510329146971987637151443008799999389924511395416375778293970527479944780355293688968821393121822654946301109407187004595704433699321006647088915158483592318159861933777466143693820592923002915104294204546651311204521299651868478685756613359819086559571876556953244556721110526227075171553150331493405997051585514538704816124206369950000445973089634234654599703778717962061090628872798810617711798706807792195493214646485074638365924968930020372973293960158262067018512590424330748210168162290022491159049054062328552290512977402371314451129544628789505057371774169513336587977817187618726233219819283777891813336170744874178891277791092988828381280039808129442728448246382633892660468782676296075147449268148483365925703326872244015971271719745939654146266068294908518389524630357858534542741813276069551522881242625486098120090618731121582094632895778276901443348302796440996498649630081969436272765202116762541495665590917875002393991507048256729616650738242683393055819295186716998864931680098803845482775622981802206039712800751251192825542599827319246447512962335353938079491652330063368111645301490556850316880862746437403132497673587711130366035832557485170090791746865199472467685403213663798084815828641976049974226980821434079461511650074629876948636405989302685375042360641953352539204533522427793642268559542565646150251635828494657919989868407467898095786343548254866514722740583377777088535935236228294807022031556405619352745874524756311698494277380488632403565703330384833274416399454760802740278043471755065631681730591916919562538640695793286515833222880592640668274047881476236599652337022421699438641466627491820826480091691747718819240334777585725410741475777566206947408593146642248137637859721791965442968357580221454242764558327578301070437813029094894760046169786118634668832272601587832170183083643594421710564601100326903395794635697371421657364034839492009649443766499726061629554319162118815409871591588084034642690788651701483140482828098729782719843045892067291220207801937431826790938156434059826416555535995854834769679940431930570004581592768496564684594410096028696899689017586716987139719995738669665189829535800004994401353994993366334276990845691104283631262123427324539578799913485051369232693567710544151456643638562506433760531222214652060661336822855909066056929951828713399664053440478931861071060406303332276764964012994873181932653551488837111107714131921087403499098138569971896420827745370132607776299532950162655316928699995475024902927397424342781926429587931152649784403915605976887203236251676673081625560150378809303373327346521932905652642852652860977986750311403533009234808107203082184679153413262534935659986108657714602537336632634384567390375956267592967535931295521346051749066566670966837637086332348370310449712303882110207839654705314724964495064763863821942096250053843170238257071014055676201497306380309179142340935824613089079986334163277644074950686096551486588600403842086590847599547127522287792659083689876215294945209445498944031437617512277370015297161750135777147239250687772741729436244479413026462616707892307939239354025994922827889198737430567511984827897682140293961858996655201625275611879424946284904912602880362656556941168903097138704959001941003277061371091427894366502518097812669559160160226590344130590935228812082015145190068687467094166452671971403670993924892544621513634909206561271578061224879423192457128075549438455534491519206275692869243719103882882182788153597462074654689246183495923744353746346369902336031587548948309629283617114573999510638438713437026292550024542035725207679439212344732304160193966422422004199878240453165956692119698837991268492333401225745113049357327765856476646215801326984469228311865246483753855921933619779757186711282504258735414581417477672372467951029095986354414686763510699544334930467818060875339693644408382239464990196336460055896925169955460413064095334834829304877876003280009749976040171050965345034801156226512606585205621555878749394362475392496953924348743538787857216493041523124045024224685781615176522190479781944806422383898814785443132746926837318672749669195252763924501802786510952225572626499425779796802779399080674627346048149044343687052045888014371439841090414196177049365225987512684302714023385042924900201052816104910439118374763044416845723937397452629387988811870688707631060816859188050525835373244207162533017053468748382833301598827248438395138117229788009667254877591464945919324103031667493797401676896314924690001974841879469051129358069258608515379063796292548619353404791897622705929636443858941634637087470962762159326322274170086099657638048055251475490803993557696313159054354899735500041178748234960686715343206891882862165384550459939455200012968191548419237314061411847392945167221056505558821169834374331794632429659981156229522034431966727046205912720648225205690822483057298909218963166565785529502384211666826636259651015237578155837206216884541906527527543780383107530092187330448283150949574693874808171560008775730650432601573165503524093231616018586937996608266795043802878096319416408121162734850326114665663647278829821609028639705589127312822206467989941118007818279280364003367291235507592941855153797925798879923963157505071275521669802131263995291043889174089601795136502052895859761769863627541989127323186028218216038759899615907290875226201871944986943101016943679558684010617258338970172926417012385771660912874168433840857214495875034006478100419691562176000440944653536815554220265142978255102209481557691164307869844677692004564710451816800568764942332747349518407809347135138040009088888886649420455298245943270541033472977945746908288051826353787929586051568041977351264483682591213821508023177177105597864028464825818593103956346552792952810797561731890183475667194292000055512368258815479324257289966820035289704240420026345940332677235976028261399180054190579070166682671834763566709025944876033385859768164015581120485995894503684037272573723639643505210608678151878816856094192455899302333773714354990886095051016738705542943698997136617512601730643032135216521006092285975776057926869807607804868434608835414349225422353197150449034704954148252600050821601744781419363217365657488999017632975549572944352656186016952881991973265935080820266624608197760861635310698306045853551388331465001140115596232103631534355673336272446654036545646573498969661963346152511524575025695329334206774283224316532897864719347378568013741084740343008957386788963266577148933957534118388781692588593738092002586805383843702511350848403708786172194598678960997959677645392582817588649942020495579828674136742059224080367815766660517911620565513174371799544534392098465870114347255988003167374087106805089388211250627932923980793681100739108500019861304719146564328402054789871315453167119302412118507075388132429943413922294473965615464679089266635131150213112351375770320264741259813270942148420003109820777303943835019050375697682799269793865838259086403581122454499510531040446381533505708779895682642599096005718888601666681138512176260349162730453112570013459950736157306989655790509442388082218435893219513421084564129100616500453653793428170918620506837359666543067711617640187234376346973166046906108876522097956631328537216866048017356065539266313118014424957325770494007812253032434945902739315506185039485713277002406752886214507036524829647169747685920927587868552747195738401933150172517316448427973840853216714578800315866703658894836238075252681839272108573834885967959253487445360037665104522722906108297542038861677002039451341174113056660510591027351711375715609561691574127410668079951367021047156906847155408259632918118159441569941324124233834367427544200546927471073420066528041717080822940787703952750953953445661802908198380702003028214108105602335570440585729765661276240928195453514277954681621133128124231136019940912475551269332881278461248913200179569071125525377120939395876729857451932987194091934322214770469855351241568399584624503174742377855424014732417607921589425291700146370329475201530564817427579425921638951351749092188802995402194043286044570761125530615782754868427537371003872350603569286122161851871319704258217649983912241063104848266348724231863350324473342096341534876094315544442381459700389682565722114586974138061300853047897734283792108231107128921826751388901250135714184942284898756099091253233840717046653855742392108135792059369842274663496035135148478169465091320261398446553229362961003085150885659885955434512109401007325757073822094935683212217164830675673390326352168782035850263753397532466347124379110135853912520186096654490889940301305396768925552773997911104533137986770250826953762314831463067984108925729794659040083811212514377770585143265800203651860032400409881452777940083346315966374586721761696793425777828444612179666249055483746438020415273775247323003173520263344346689239506439238741452571025488663587626643686563241122512825677886205508067706959281212199102192208644858494870443648580981985155208235737828176528487379675522372035231875409393923153337125268297808726727947705694771727378652926197584877438660341934688942754783121864720298574405730130385988529834429479486955751867814700339009845203502914844939879506087855377698116361733245186132846284816279825850365088791994470356535223475345726580990845463775800215616197267308403374217978254627573429516262813746392965362642464779491538652369134432718065363978125647919106791273931625100516218636604142431240711936107365676762968564971345590385024704390750701804424239898023319783869970134192186822768615948230394158582118850105378420475293053369633465632938634324918764321649201496357902567329512854701820366508004276424884771893243003304281588601800060182426178493620479212301071658288986472829306615337222335436657328699340514808659214507036302250871813323824724526855487454152745312155326334991541371424898874620028118190117359764500161494394786813360917492408766492453327954161848742985912181388591750513402520092316849057956666992664442288319377681822535777268187299344587951119230213961624738228081285779652976426718604604972643292795578285895031073542907879999509303337193717630548367029912033132056306489489640524112511746543732659833833102143411118112165162964715263987620574239200680118318276655219239033878037676369344545413642572041728190510762576535864673696855819144448337444822147283197966743298176347049684248222314204299390222434882548963735250686324637658352163376860118346921017453306547345191827243070143271561069282422332588792700439840372290875822810565145929800790857330803139632149563801540262851199838737028015882306267191687928362341646247273843220972736720947504695124247179900469115571304293096018695014321899488715340143792025138657865047843478606711874819051682053560165323563758685578104348500180853435412635635815014000232864253280102144286345636032503665982824348128532286259792445647582960964965932909427736260959246847789088787667756971527632902389293195541888542388253771158729240553821900122907772358801233259811734457494215800004191884913403502906462759839821779005008827909108196786896390609567776820134251838627487506281573050722405639598323900895688174641578219691196985932543828428719770134961919116624738217369139207985719766569770495894168006265762209921907141653752193682974263796615541907007671505047027610955024008261875431977410655846853561371647478215176017271603190408860851129948394705722482032402925823943815096165984345495628755061319960345698473629540091161387352909646410050798405979874737990122854039272661516222108713346619221702564064832879908218908518648393481939158808127297611485516712440152023358971246460499106963698519915612835314394294810185191259987818300795629411891838300420856284213680219700387582331706773747954686546348440354487635922699490432002549457647413637222033040677555941825691829432285654121527323527388291759427005225227769186889548298050427364842352775526154521787254993362243237851406284263325800939240475668822979453537310527150677425603491177545241738793923794833841009033283517115218426194832994461786897452979493069568366054988764551462685645026310659779634814574920293496834287895251065881357290811410355880613780587171003413981573691226342696985011512960628284048369769615899594633553980067115647425634708446268572485757263992284163726162803474186251300601518984662809105438262237679432011162214964127971523134086916319916772978887040280576578728286087889912529173045274457915498563397905027175642451120755656648427495282133736169309958784966130165496564347215546580184423732294232844731856683780037065343705346300225528922649194828213230955667648645968958561995865899189490040763814868475301188086014108143312768567392721760197516163068759808944227380916229611785045830195178996965473595071363135684344459606123214166578076060182447255504828116629037616529523834462532249425936899645343296913960094049557267144787905315206045540025726046667984107645524492588453362484287324994505860281666867317240564282705301634446938149405956662238635195871606899353489119303383456184928630831222061593995228039977608554523529542465525182530467408755541106546561846641899538791870655793539837592979043266916997421753377988161509076303701169364618774665710274994917374217947908443173055168888355464902444628901341674908022551400238926630380656404782141333804848224219916265643602375296389801726516966304957942833460613708779906111415908556140852237908371202157524047847629571207170839820765993007209818533784241777324333772396734443100402467263704757580405583792592506974957061663434854239068093116790210075766544625664429500669341921978926551450126006881846146826656773806473040029082858834072084618795711840582832438860054506703404958174746487219747308375549656718936675364187643385434456622399221672206216211958988150144923811783794198723886865653856659589902859182729506375963457392641147194003418238151117538433701502440638208683343942654981698451167116375734943592503779188286298456368809389324578788807657209530976111923126375500217364704355774306251771492450852784209358204550780041512179968504318618901390831700306403232096120978140165639482102713549624514630394465224447722297192711008402836646268638144854194568001421933837136556742554535857948438886443450523368745224885946929458255266313632840570904063065731298949329762319936411610143068479620999233952470650567156012834941469420674744595182513988272254908891312946890015092857111815153993239349397709392118527534903570934223084792703725214104409435495283108497079084740489962313047767429269964846256831179066173841393335424517136441167117602398461142055437697066664637758182080583848992104345090672860345149096913518294235041414192905774310984712564306961906424837219415952919525353411600590767900478727850373010558394792056530598875840369768259144409893849005866115614659941339672080589785699429975048638406677399568504183172702319034027857965526422781373201667882384822344025846267628464885168779206743612723697426596895500639317184946832789576377723798606588015780334459744240881290494565097210279518739239477343004443035019793929891909993358772646250646945854031701537214408302594297128914026293728526475289142116242398722125471090738054343426231908562132937229496469890523997284962730568327841483959252806905725028032884677160249887185946893935337521296290296432655516546139147225051113514834396249434798449637058638615938664919162980646559604136590729332814524567392800237518519177805013194062445893390781692086786911858359637168541158402950673978183168233699690994884934294959119514095861808632812952296046341177369434194786632063489898174921976961079743851122425992011786362656226033946287787819932927805983095115472254850736298916719430183761026731584036240544783055606138475718673303505108490784710382640493773232905810560225842964251775189639897132576410470458230286228522762841111340054502928052480029454312881244400099493391299232545647120511028629941322614882930145786567207073333880792642296840930482404871216088653439656172600660604372457804198471236619902815459860091508649024356017011444903888056936405448071698146647838210217952178091546322898009691090133839051673014865259855532457281276766382823868833275809476137662373329493192585932844456059060175051340995520959775233692721662156527676856468045555660847591323695497758730302597520110954101395699531130465057558268976505154877984086349710742226909727927251046398688172529703176831669483896541456919656666899509254000472189601773402602682565027094529022289066870142419173862169657549312063826868423763531439587416262274131392906870235123341729817678650819041275181937516018479242624229214716886387666715342757909702824785721279769027177297796914168383521668912174070879872558729857145917933862204376627344586286820799372426001569685458319842664099677594702653618580874797361874665318673935966036867284714212541640415399864819551484406873837410850213878054335623712644026507783324521188577597142262904152403873052434272870821513425239784145619889356053134673509565557333465328565862329163097610123729330425542553669773041754074855992139203330815890153228015454637125434576656064432132159435063057096494108251863292248283455162493250730011090738620972326474631633308594145730166612491826978308180306996195646873543537772636845221084016214868125615880889449657994565303762307608395299002552444259599917767288607009215373969645412204373553628841605657267372299898249950713539537016118826462424512931573463051348077623983373219114162858306913790686526884738784021478471158974446475009899468029191320174242743015975699423871281563341850937555288449703908441635106216338747352144801326478532471848208961603029499815907732275904476718008774937038027554222834808170529971451736428856752918344893549824151049093055927066942169492887429140818644287874846237214969445339670937141558680635522992085408035306326094029940203175538939710081522170358356114021630909968551784406913071530837955234348802600281649367776345277050107857836876036895286521627870708060516989840687138990800939564466091100797976514135168316986394421794454850278687568120718757052742780281842311805869081934703336995150167463683584760932365431743043143936429759519851727417867505903470953833032143448573344302058296047232121218953280835557646505651854261284136367049110603878113785944894745483738589936797273200895829892068965893557280486028306083232594768446953894893767592223946419144161473292840492811381001374454244497394296054706624850364382752590023839039996943888347688983443286265075310878940730118297403453040547995618135401944538947680687617730030839336228539540659021579969355415076745481171118017867916547916046570720305430561909136739705490898950897713333357755196357670583048957206134419041635186575202497256420673445176933292110008959640813912254462278982152531849397969012900219082828496506180062229550599350532771658943743794728866422785021994972203539348280624647755806214801842876971761419213811547628064823912273493071179321523886541208078852099555291544031726538176297323582396626106834732814053167444585082981093849364446263529986708716298891376160370322112705785346684762360789082249035568757825775385651564309260734652356870997202785911867361325988035063806532494708509872983204221215132312521550314828695897950402660770288868068448781555339911331631573087815948428283176080529679208956187294039702045454941581193982102691915432255106734999477600849448897828874310420585017827331637399171246599666963949836199413346054511613490531199107738910004979267335432894501586902771426222035630672189315832698431313697936002521807987467283391648800449001250332630635492751159211486776475880807634477133573154276633261741081542283840359717372298903707283721435681728221267020823661722505160988632417642090821625438018186010748206677519666223236276519808423127886877451131564562994530586479851683153222259168606037651443484457421751120941472239911823740897049608204679639405099131277369988561421635025444937963727775200759322845413074211273880284367166343276996962790766365026123774898726777906239458676330883296497801248010999449261760746943026144417347440478579092876339361367304713837498934403461967246304101914217278713303439815990695716586118793080667198379263393136049975297910891843831347834550799322227869049737530155517041949986038313727593353367174410203583333259277195595039551540948288481050634438815559114334758522045922571486829557750106328788075568460922049112521038096211097548641591666798212656528531023508384098895719267016263188274568992017813180818412614185446623893065644399391724238568698751424355362074518348296449802645419525409874488276020808884690692772105873918126096510266504175910285634964778863401939354453385171013047304075569635393591871432192976779554757503608840944135849919149614814074683032748317021236686740130187007176623092348130628142087109760300556400364737527213340268076076045625749915938016576931121142113351296631030583677797051711222346954588083296104501335025586929545042717969947184827605394582827407693839644980686109159156169147877877137926806479057476723926331341547596709158380785195623614319286495388227659452218323800163529254719175803830853969884569267068629556857509933400911307126456798831727459673261865283801318724924658660472955396210645757707522143466974629730647401442531406874352675648494629416273863092437073591444536881822438008014410198972596653722255791935274690549376350940412324265940995773889996410440435759972942350261711333928661569240951708373234010593084013731307940192994923680785321484130193445411802854182373186881244373192324658249024392551739996922478703287428723395147724083530691200661249997191432318511445409254269901576345497216347616363367782758483870647597864584963704526213330158695350791202319169442195034467395171115082555051691054219586263799324929411424948728755460106074941991856179346656574525503157255506326243697828079020670816580283101095026676194527627063763293907368816604038238300231399384798780534011636624437242232315119813037878128692094172070655699463813441569447286530101987036809486847249794656135514215903888041333327649303003941500694138368147697210210176111459404772322110320746502154873311473198226923717132822126093989470654720264487084290449279842132173901764926283228599785352338204940806287799006124338460260626681701972183343955549786838291188438108360077305205500463013847701390511736671093375553335979767888347876217152112901247573917310438508139238977751651144091169374035481368885813939153851271356916499180138023335547310529249987968008925579085932544934233318121706995006087026912929761328453303214392980241961430912701305509015310468489509444659309036761517175325881787869298973431498550246712984469256595409090918270504337673282367987550221892679988383402682011006471486850468026436198128347306734666628784661876730979870202666823856414354614013073254610355190085383692053075219068488457566271503808582831240828823465908880801200279151952074543177431734070477394701810850513479524107498859461418068012382784049383995149039993844239410523635897625867983672659519870320019452079876216518616111151335159472080538243151934872487262076926020968368437586831572043112176499147139538721642161993289064682954005767730217437742289845306521083162086695553224278639690681859121534765860019665933058005097706270241745744546595524929861786428130262150232571432928854893774103824277471105422182388657090929424807303548337018462533947342541248189785081507051723563445382856721698201536444181710762207244688902739622089832404990439066060908739477474634220349564760882706046052849503549204263862258498099437780619994274314252378665630758220680471668221708794472903088197000613480405049687244447914349946165471889793269346679449871939905061645688589437404688890415407085020045319865742857639309182476380626155557351144593329464887479107556902639745297572240065529185045832138977356364898190244563068388018180641119686960115799723382370608108098588010047371346081193327439866199329194137687844510384864073155138512372275396801228849823589833425225431117700132554063396241461540137261378580528058719117186818828256155471154117012203303893658363670047691347852147282110051281300304127788674557719203288837664590088882512733815473448823875262402289408586899861326579991513161781573033494340366620958826427671998934123426001271698460228318026878595983390052912530143470770229792714690697539442314892508965178677582128624916388887078445029877631192409552095676852042990405804824708663395024858862058610727422910256573867159012212970031939365045411148772152036552614362571471312673649367433924304221314525063187073763267588845624067163209617695312907472850877908496562624222526468321088538318973776446644937658902485137671463038269430743077588503167206813174055053095551516210257394222957052988211227817905679712496993081498699724529335097636629463898754256164217679969617277305166687850883069322350233633427543222335886870231299633542420596905306399758593465061202256430319113849629688986917310063602192723095478871557132041114223450972591661491343551686290965087070418281296945521959875443707864161679078946908007187301289704879318260032177094286712656076515593839052810626641964870564339969863336766428224614034168167656523430667499674641334470108686208607064498164547052500383191143249310526118038985557457433518555527470510305406514116427748879506534981813280135558156386553154503553688287831606462918261002957071481523623401526277287752059350415298764240504788219780139404304814581823382223319807039906476329671474593584240961881312113892546989658702770456056294063614802618197507698913138515855382218260393022900052347672710440283901224958993831360005004343599311662303965445890642855149423624838516126870313020376896198567563703448942600276548889789440576132538721863430095215499007509760749561312196685481340899633201971163352818474552257251139906144838435662772391904160595246842883810777849912752744500319391522174944464987201364135855747193769711244818095146418411338407309219350366773130487618665491069429379191786573966134338103888876448105531418146913940759036260870342441767129985236048456803547842860467616932311117856043712151825026571598672015906401929777058403643357397797565419893392553208354468866834773277321970298770714722472715264781212436513424635266877090030986152947327710621931242292213814485075342385998966637216603192714515575570299753431047516830915789853679002120876456390165533321921815786585660443243579549174826159335069200717431355101082364249146799796954342778295585655955761998995200275613318168266310430637187342646591486651547496692572876171469744735638139602407232390371446501470114603678179377730585075434993888894412251227326683304091283389350442304101705229317128953634953797148892374934104051857784989686178810432489059219737869979510143810989450726055901004727285235118612250376653064215813316387342466680752549143356265992326050427429588486158538320961225994151632651042688296681988223704178133308756280328443768924743342918267156903136968947886731107465289089635324571612994731470211493084938944640535841402477054020566268991847963059663034665114646807898646220605908880188969616253851493874646388095018639183999278668081987072963858795776188188498738573776608647948513534037655271613148955553412260179987265951724039156907515682261675111120722175789666244701778101398922787271676032511067004063454737497730891305509382377703131631501882555327793306422633779687828390756163743851041863513392122047295642016431210059540327455936165404915442044347088335098861393445626737226424556648199514200390134641960371967958305843586556736411927691310517971354347806537113215317689920644514789296606279277243674126929224244820108182557279335443962820096758703895707201939500933627455840200693462907138445372389682415993226810371159819574023862039714751190414222255218441683301102994355643803031644599570585873160868529283620794347927505108129932132493351907107493281533320793210780996149465452612658478823788668819565009941274186066812001830974634121804212523534411037925402996356044174724339983325936883819409803763873753389232465732254452059486839019108158991747690058523584713917827901770755999370976713818725217269592949650860300849388404030632934130721876841926163778902927014399495616477840561309059071182583278655977004484106597502337603743991432568795023057864622003063896786783685303904622353157897908998938119895753208061301217437404116728039888091047658556671697191920841199930794285109629177817571987949136302713535888469599744430216048410067232896832318768823557198162340876589020272933054969236112241930284016666848469965027465182838779333509657057646647047398112004564252287425249122701509474588088663816538281035191517017334817488647455017983029942231795665750084896353501161118905136715553176950807831320238282151431800304001468796600840595763843758173552577364632415714056773439614306693237270393811513829717815065188737024529557494391497079115062067717931673740391730281925692386600403988865682067371862064186530978808809649662266077134488953681632777315960153343386498034885298819542612246888322926676604668130035705512227638978746130462548852846694067219642804251614948226681003679190202547537897806414485083007882614381581068169442668611568683632980128973445206328595540631558920662786543765510073726885898266533722216133878691657338781872014481663016555428539319959434457133896369896984759426862565927205020009544433834508173744545818308504235383790867167873572057094933239002614573682651874328812436049154289572024357737441174199259355205711560563089715623802381082970152284620461724507710920528887288116164271579080249569056661364514479675170869819512402974417499890178035744324527419717585757552411376310773193202576081493024312467349431747886621969105736049118030553283752250594089535499264932983591004746399563916050145503751399595243698174553594369190665965297647286059780480574197542459681080644262314600416024247235267465915953844203074065088906368654240160757122069735857736673027814448801833399124129008387830053915567779040950277383880704975631143279221870434393033666732882367809393865288008843923086058715014971285795359860631973421266980079881697498495382306899753044206545504806533620858866828618696587777061719738065172467351978904936122064699394057863918053121330879164033544106620181191256284025419294086993601671588210759426657427552027033841673317347411010653360487110770553311444857505188592353340159083991443648401393813300251823061703878231389269934351505116281872898549768020289649661674264038453570806788581862671605140101176194716885452501052763266777025084185402819929416824335195837974327377681490630519565763493184748883554681258956546871874130831690577592117717435772106839929084233756045390606864254507159111315786555906587707477366535446617852382353413430992103978715058452571067825669166243273046176210489282925987400776241116505790963892440713090065222465578660543233182926452433766940301661419754128861802044758890392736696342453953183491139021379100770487572837269425701646178449967592096811259480118908481534892388050067436904454497995538753576299534272444440911444363162298131299224148924377418269384164320045226823351283454389797458830809119987435365044269160092393158417449619356853957831235756655475159919719675972059485252455943086625103390818439646895343102852773884853886313531416055935993485859681890660590416144798349024474049606420282416564265621084337439782284280276745467941426454285629716464279056050198530181838238591976350236856802406829969407700868612761103141127592653942270302270925357866814889795065333712107669397407323130435852517877728602420835937408410080062343937318210348393339137845366598972210736034935960500390636750761563568919447890547538230451012334753560553909105158191381825172098408744451331611528269930495039914611867194116354802130691001431874496459692135479210120856669361999050871405328980828005310447419238830067629071169708112238354029959900596896531193149638012606674721172197619889882132847612337440623380172445178869189211726400047284865332365401370306526526302897156100134922838553142418768421258467189675365493033249143954787492290284607109741118070254491235217278977447015002956202824863098220859846815918425397643126085523979171771989606833820085097273288907441071594992216011455911431224173834626195031448588276874840624598782036961322083732928474666428615944643341059773726105665911293785712356895663670370767096623176610215244704602974230084351931964523319503499608790235414341993771341459949560776150992138290296707131208488872744105963337440831974928023746803219761650767444388056420388533523931042404164784428170710683778223351034830585085961262963109580164733264049463867720194591438785384789716256576564700718940986702075416673157855515814777805415126573882113725180013897245292043701671738820697029692913933587952592417724140909692861542318686534594357137021117237486526226962876490115535208198358115022825004393504805326740807453554263544543831427499444124323280242159766564546380452012825273971569343954395499043537700114408430233555294835509108878592143810639791638876781762010986501144578956976043151199523366411718074087798539870552416556884068455175797840208640778307337630985320385655692517098391157879797343052478538438743450886663024630827395201466105598064368496957654356038925090095218885486633924528835354359375213160614258471659272093379898662208263578445400379251078220369448385232797659956005598230468635557120712335887859069822087436758527400406405722195614201646226766122695114574822913304750036782075690676127678049590493647652419669052255309323585693442885353180267173484992239908026122471987905062073537329135841363610373556280009333332746976895311929765099822968966302813142052563218617242907756986573929569556767863158213625631795367298120490273437025211836892558175287576317121512232571558267227801406767253253140743892421690158480662791942322245483206317161788185213838738888000516641080538654897818909493851771469324071882479503670002780126749577710104154952817421655171114423115057159823093960667146034245158680233736108516220012607895177222505599999981780082523274514848954625586719919394896193745017804747694523691730871634861604436407187627170831776305254858681406283434245989974328507252152229509508816509202283446185432991664770140926967539701432923738147797879618710314219734181596951637713888414981789440708160075670783034837626917292674841461464261566552572939061869279175772247033502089870551395064643642982873984348240316998724261599472707190958402329464860848863199827390512169101071277457771696809355103836723489091411752058792764718353974159077012319325219935378749741922914997940898346428778218926951436830027100510094851100308506181505561313750989653477052317885745794593320205414949248304359375906940437805977868428741274300462419994897653743131289913179275057881075953305208217239323906960877218108118442306595837406359231444822433369133126569436324080049461630460407933231755763504750625088992920737212933915081979709842287796760704780560628934801652741737588378821566644536755306119464739457953942933016416779523926598972889604308109111605653048490583873451650931284836545386863730955570522996090710423541690339971934322774109230025986704924774326054000474093440556349969132155085056992398483589441370762246525849884580689469542701169067579959762867484833200212515796034822982970842632405434178490496170088233437002254053291801636373590324034543080856310156329317570176444200375231486492161360873460670621663140240691591671742287872113698741543756734411928673401909239414009283939677945689994444761662274578677949256573935240703472687410332043923375765778114678927167372053422678295436717003195661686427081267205188383690446010417380518741507108327335274729824684805723294036287785152760639622420607960986721123366614012203542740911447885704755153837575322987215978057380885659313219664461840811255332084596328639055976194418027332575032610285684504803535532701194320126742265909464382237010147466666680365129766227158960200982241142585768295750836829751307294314471110708540553875730429797156631762211790992706414167023545371620611923054466574373665202576226757255988400490336285131206683279924327868956352540012864665328245996669581092840549824077474392827958821606042065620393493017877602078313126326905597651652296570356740882607234546179418403715128461906751346021701913840386635089467798820810690707639564477125577835816143936952875925891543019315457919736862687090106222511130077580737721969739632452041492239064059591781139597726554802374119337753013458309745825988921365677296364589707359795530059559669212872150654187276311407315100178590669226470887840557290836843862659924574747505263117498154957109370453674356955205055039284429752581360784548454459257531181503100678702415170427433009841870524293509612161489666329091585989542339130582737962784434702791973583234352205649584300783651798692802053925099820859450723137626100499070544208541165679869238923084750819961549322199490016942821748820996911324264600519967482571331418278344463807091497149271544353074224030880766185204787335887603331930236034659317104052135433790376874840885701973185516204446084256395844105239725652910764842282514182747749467982999786063593373063168989902492347501316287883109814958588641525662817635000190227549240082818613964797565796237948140306297218346637460867541944691997345206568114587537980236049801551505283829675450676571501065495445859739632312983183988717422255072802139411509108201740098627699276685299685974381207537260761758270049650422461204866382829246291173478119326915921504118985754964018174830212750044671952606401859567746783109381401310419046557951595361374750608744556307609804790699625403970394221554671613454925842923098125682895073079946617091162660471897352071637468330535787637002041086599677413155759347993157578486647039623369219418493446492612949541064856671914748970832400178807227607611592024618029132992978494826037987184825956509219705993158077237614343078196699439086175510923736054737882099961391516599058048658409353355114499917827571456887697255959578184914895791994781245411652582576842932169289110806081021051515927005455674739843812173744963842172919853779445799452030889808150474541774728420863203883632035996597122535103509370678486098798351425840940566690156030494523869325745672729510382448990252632766571559628653200276177790899248206851199010878853144671508012275968975944400792013433841384472329265234970625182525264235136555359572985833172663731488690821960786536114239915507468510881827677037191963952909353319505717497594435589510133478356183514546586986770570290678604003679902469454628687894888256895707722014969411350425719553007436875644540996423235104953877677622168105129440027167861055074628114119936365269760959143789519938420594110006471966675992027963076950298188961271920392080696271236095856226080767945971162218297329691161891004015176443512885948564161251686020221652731470752801290546585397174633946237605668146599295046281055740661603575138601148846281782414318291779279292522158420117448235865379634684298641282829114693775621097108994552976488613838948291454825377538884569053048909155647250980348633819982908558215583231000475023085600776968252731721552615921447333636582458026053581888908936595039179762681638761020298958029351032871356674210704372830407488302744883282990824941856774759717387077305605396193834723018393982300394271354665440988295973794285193136512931543945364628763470456572680492973737864728475478055579506130449907729311854796732504450037562551248482544530578119158814361793460602962956081754053901902754910260703400109308067381703420351213923688319407957882655255034062145830233651317272572872379254831820908348944373144540543764815337389818650268962203405641205582989673800874770992652880502256390202542877614215688870778386802172341292364770627647974617278787861749490025969785216803958765825283491387469513343510867934819004030476682208842899217155255500409293703772938273526411629033630040283394293491245501600870056587589645463806309784693482356077111669211224109524351180972755059415290661828087901062736631682245274826026043197371354307879128584840410944724412731875019661651665971678146439776991996368661700965832777264462519132042634878772939014724148099976418740368481768354436814179088931194406843351787633880709991368684838255371503607943855144394026211007783588640387112272918416639287906650988039267980262670218190467313031344400167406651314610473276930678119435836722754267039315864704016728707081937550368248404572762167905211301757766596659818483917360340818026688296465824375267147800346038860490098766488727032660101405183229763942599132091219228913197298951625396017191354133567237862691033526238022811162006159707107563501515177607293116669653904889453176326007306492032412114949155424309890244348933985605219418936400903152851865807188996231816764807814176901828420239508407108239972774074165241902864747778625010396856925125439187915359098586389969185559434190296258901932944661250522988456383153522280357225942883788980417218888115354713958791776090190598597971765122790855049057971506968251348091078777685915050617836450158585942827397234572832522706475484897476248359814432558344203048705994608908175978678039946548640707299512839402778348880446376433432403013429303029542365973715133245442131493743760296818567769600807631291285673745392414045761079115608647887270402874254863299738447666522884094707470751550869400499229407797781807983814667526007510446736887272540262803135086807808997192231733444883111201211002716237964821774809716544058605104036932599102666767440763147562857990583970684426718872455447141154599219844129794749061952846422918298058325517985015422347321863538304601547201628659715172508503579481836401880802386210751919517995379433190790508195718905949167546776425365926547648340540523144675004438698993307116354147805874443592706025252771933217435247467996027352938207372703415411839809579313285525871461768587233468039009156821224739679500035045619654384801025334579521076766862942284774071785628644343017594777202426564097412847832500317432340522895729392585205762821008015558914189103134899015292729867673013765554940556984751290037934479410354468532081751047790673532635363883750771205040771359716215663590907736503921667394608992925139157514297618265951808738406254837344675307408788979978727438819539605292405585116228286463279393435426471354415802411795946609948316267041637018491196474704618103900901622014019395766484404003712603536504673232466961802985884034255138112182349066714158030137540096570231430712371873295523448108712120176118087273962230006841736942612413103368648402087552794239724134309330439460039893782134832553042050029122983513737226567392744835452849526960887720892397118137012372753530798312574429457826411196895039881487552090233824659465131991555151883698503159020588623362749564247693279206553448261027243577915212640188753276967942868775572929744307397323501878084478477463158852733177376809015196435174368498925116059982448516478492792700855492421683989883965165905057528063048482048775668349816994280520650283100462584955941230761011941555680580903137710016709980530720685136576671720023068714150051569399145650435981485130236195576083430834203956718449564755320536912348209447936933704426655402088373837822663257122860050701273004336162791767353315557840923101149408301775874736141674079142427779930099529421417694172639019806206755963642489418945031843542911339260745843782531106692565424839129071052177821339521648893085929090572667999893368033194158314313414520033931079409062481775359666840782636861944492610550117225766432172823949352701141600412746048495517318051494606213199325261824574404892217002564271218295928638460878823130226851179487827504713763962294330794073460791208182127581215617936957549644325658357231164242162963646480056787450054802008943115516895669593936617889741017564920652689328403366856534940689689737260727322005941599768707972401345818394674171826277250883769793063456474745262248984098994822640179073958694567354134650653923197310365582341469700420494796031083718792781143780018015394614315557196277734832329963553011604345385884013129088419373657018309551464347729030212060127420690409696107605047510223367551628353542504137853663149349878967326770498040188318284167898670960678522351215748083883458606943151334286538821782471291067843734287500679010749389713205713796955301921442440693659226056640662893440982369457345272780219778058638180964750099417870457605213948538851710963444260693781835242075715769298688615540172751255450574702590486920039207921191773700853610236178231865970713149152590601927141015368413829600639680810482715681892971732617889839576031939836744112457353990701401185210744323543286192503893797052568996641759063768513127291792819473492446849792827896077178181254778669064082376973790241619456763622191778871706259290252903076671328921730880186810526359994186841789581563531376874818104634908186555336369742984398450205385466308049138382830858333565224481118610831810415374651747190039441604951072098563564058642548092402803714336970129981262387255834975744433262926393967904453497357115861185171349625237807291479178584772488443972258509955842910208249218444603347935196322711503495810007361295281480128636301920838658253707460702935498489695173194419633331784250303819773575102630431467743848905567216930361260962375048164393425542475361947701336004641518783815393223215653393701132123031382713882818124061925693482825059110022125813583786361140190454025863024626927358812092757552216646299008681100348692521524973143650331279027114168943757367050515966747773835993494425593639032462843093284407279259625702554423948802502920720394328987625141192399272715927377801748337737919138386439183377116880188030976376610956858883651633737228034935323564999062624429961404905804181352465217702648864908898679235209192799019744671006177528510252721779340190637909098614924907078431146854677213206810718336214270936061316865105163561594650831680392225168084016956547001283067304976672714671515875051911030640606027975611893356449437607961286877866056243426451293399157975376522251875504180724434215679419319855147075674441894466476756967821918808825569999889022631905981481981789334964148090984385030985203154981336966746518882618510254578104082767733455815681464988966483215170446372949107163354991818396756341195284197336654267904493311000612065082981928769192338040795810498451979710120988005184612067425398099789594806299127224549524118166686572202216831456522340032802647182632151366922152416805108337173920604768576075285207416970786924736515656600079545888888503304896517879410743996548737631977101475681282900995270554233957285048195230240985248377167023080528503659942155302924659335216696127120761349311735811829042062355724123107908751921632857724639001612497127981351053485591565822439366987910242624378139542937862485794587852251356276931751963113083194665678944291006197743477793354351740405361504784843241201692943368445000157139157927149283153790308829505023812730503560332008826443596244977425063944742927141086639838423514525745903212278878980703281660618572128227601888650198891382882412326217986396831855256064460741635474506406687962844126407357357297602649581852755709629729629173663705793470181313960094237215788843656210374564632949686962087982062904191022236242360695186175817089439549581830906088180856774711371641989775408324034983250571302493115178552636324943388887485217394538579605548516967577915446467622797687684783307181109351048661626356095866659840251589038326574651793660507225715120758107009908874733059568026704958162582824345320950948723142049624310670090487757354698423867253507186780373674948081150946500044292804719050081460405706050525361687818617433564836798567611381711622493229354597129124144494297070220657508238066238562642434618508486849844222135827085012569396815329814005920344978611563367547211944715922774440216204406000616634955497766344497835842321376743441189733698270034157376766774181944526221336515469632283065702113776510003986097004068851454034700083484785737000288751298581053749763768098506544146465175115747742155240389426456107614892067055287905646779872562563129530935496067409178728064798876255770215615852022138091963109121694844004865972317988413801089934510270991776604721980959160069558473878405108569935370616597308719098735831071045653077175567348009927813493581574081024045321058088052391007061805509114378340202702091930065917767227510163830982340512914978784082945057234411518905744394457358713280293342820395930714175294851434581996516170658601053543226986306406076774881767151231699511558570776375764092669489994787921809263190626655312330249773539737887285303497465332866856928539229742527067654568133034866330420953804514108783088657126203550998840818180940883217811608452800062175905759488915751403163224925396805062146457800800481984288816812633361619825741797740141270396394769882477953330033285670300550879651091043785226335486026395745602230035873069291600635589194158084715808550497156914032306346325711667916259609535818152394607683022726506820562373659300133718954644286589139291085721529428123398209239829369687884816254314209715848203604169820219003896007559273553534945355967556220213432317922653441807574191092681708368552461192704595844581239782902620832380525857581024177935017886468330399806968670118897011400251198797531194760195477762842333938856747266621830299482571166303642502150271023744568003959091467644222048310477576133167273259024333061319096696125130595668983310153199647822012549666323608463504582052486316181065878746540037154400407332825296519004569014451187197090576324805457658447648799808351892199554824139699391969053545844541232382646902158934964558546278564871661396472321048595043285842480988940582389924301614975049352173729558123057575495382134812293805766592706578550096046500567451000741996297745586254849966835703577005482180803293002235110224317973546047004909791465299597323938070286834505331701323065603338509045483215536437823848281523805837967901531721947458088122918726231461621343112133095750297353875622350231037362330891302108196873610066943672969994252324365591250540509414111544082118419087506185852624002317791355068852964188358861413897148982849426823237702359736210372197059999154695474938284972371980624130698334849138057895714303226925797470959189444138068359192052521038688826604753064812155799477389235844858665804037126944468035474320830920074169785020716821971198944693438973296332185212760670544402191739334245150623417706690731070733312988880412726025353358447415238801546817560349557328722074936885788566118468477814192765257589660262135396819885639633622461613082073714360854835026100972037521222829780617904551739003179578007280444438536166839796013203465377745616872269291472233245312816124900330174071150176720861981698545517266093043334078517834583221805752577461114780409148641417352428329532532769464532264350607516732929749063577787452407500055572675156757468756254482565086332510440192684030516686179523908246432275844612671314090028056843377311061119462968321948212473358823490492666333936401510155282576754218868297431412029721675166866745156607226375412766094423780826584466031862671998253857216349401869822397329949757606965784276248630666279405578760562811775591572042451881432020206230015220353246526966201672372125883944221424615647921106580130961079169724837188846741145169668050098146162107073470301788264954083394175107764640158817784721166102007892744157853288878776701704964023349148587894081198053612962630997140998996398952271654693086834126588342371754504365837603705380998472329205223667116145019573900568136878900633992850511417417395939225941462598802887022088140849971983911376380097990678849753054769819550911565741475231805384945376052048390533219557060420216525207122151641819538660952688386263069163757105465235770768964830724940871870892082454570883463430949558975697064691201080438675067861452275441390291277490749221120289069948145167720409055732978458132810977552298445217381738595284179096551613532616716450182149722459605343790684092821329801636629943496177935894404942495123249091854873623493958838034336841526177952088227013275147813681310791446868552569305905550120872516463453193954313823289443478965589572535358081563350766464671011633989233422796710134699672919999460079728019977720200991464306102503095269032721438700380333881247450198788164605294889237474225061275017067542876132763155912387011685411446278433171404181478117755186872697254831103245972810086023649495196109385044532209642706879372901452621471774522419536417183601984752932484898881044065451954271514997888139708508294851334461724269631815274867025408263063688088308585389220656408796077907504829507326937144926443232585463485815772446626669160561349073857172766993513726373187879726871259978288743468880782336502196637285567299865110124715082945133755026476413859902698833950028073245107667154719842233906629297924562808144456817724212271255449469171138653291231928482828077940679422296306041732836886125743118014604021521280450312919155776183984368306952003541110522917586726216580817948107860446097321897129693884582495180407180811615344060275559319026952115041803898117436685790469982797176778636260070915372882353554609086239338989513984187409426002197237044019558692510610715952484332961153057257704951015861988733262033565935539714535623642489076806247324169642179232915631329262298359965865973302927550676998372173672648498048551440530169064495462479814412524766208540568603935901778557626375875169408500934261477864835175363663187657089924753137324777935210862778422708500695577588569697570397110587689355335699690682061301806653862962525794684908440259468555032126432244199944520910204670336588000119818939183246607130320551863394635800388008452044781351135976310485606262328816979405759738438485099080546900688925579601785052784428200694069645217243518612736174485327141645786097426740396403908445147477811614514770468126689835662965711870760462168829935194635535886537843534133558476634736220785280448141184198241279018945118205573073030367055079934191089537347898220257715212401692515964995229853994983419031523361849493586795566510305287648699074714514866679840408105637308982060626948270626349785377163699309074399030158522044759564241658312600120929032039202727865261577536122960979849241692414969679254323942933840464490973087685605533019578282464859483968104487113780811334621944112816190338678358993673611143046747661990231055847299848436130835236960859144751285036743010941679983467144820571355869244962881282462862532429911187249604947342314011074590160752149183325189772887618835144935596895663662436289154070379185547124513326027752682457005414023137135547272783265064887110635277769919580207630802938657004583691345274931787623123210820026818671059512776801427056247304298512972834800977924290107533323373593290222003263455143113300510233629755510991964264110665999870587903642699097890776252518544783715590997223851235117499391325838845291428932209489439710883250932618428462519629898569768494072098707229707628915830759738890747271280101820214053786980985425994408539056817539530106438568115927649199208751277663555476294017240345925815418712146492108761179761742017084508911389063097453289175674796814345841021098745269176907810071217203523489672953892907384716109527305630220018987332381777877215942092261892254768088549080058628589975126088341434098264354788301607636443903440166517737924846656667672165704923405543604222064102083748665243195206431316440623266102970074986620335672186461456229330557974649713073552764261054703192774927885343974486208830971610554861139772463143347590262773139119796581296130913968843008541498926904062416671244526754362887221807263975934464887767028558617252566921620006689607956757843111710482222128614544253437026494683962126306838072774276314334243748307313278368187857680153534793236122381754110373566214981730551843378859738221243090222270291115332504287775343845397983704272790148224797896047772484539641422675376624359034530869339838518341947690681529761895890759681387727942928553273202508913356218118134977526575657401377483615101094214133172585608577852283777707222582983792799478183839171468562004909680679846603258067540643450984462680935031147076026055724241184701808753069665148499360753631947613194653154680062639853843880313727761757494868403726522844309458330104839125627800773594850791212166576197745848766551914648930347269180001232844036832594542161284907513925221463717890934819585672201802137573985369846987603461697650859655266851252215288529508844411083986935636061462176543605473266730828281480491070324157202022495596911233230131624022127734114484981562820216491646186197339958922605595389326006881261532565518492472486283491750551867610851224644401340146386059151365942838894166533825428208032824089478010919223750957867428542338446568620566048767073126259783993080098513532508773471340518907118735614540045395330974298888543218821255497122732719572955067709401472162200952321989537023028194593085833782549525721906962979741881867183886645789281778032885797733570709993479773080489097908197460504429378857795309138440363650724140439728422799300033530135001791096369317994982858007727639418137968552776720256896781756720124011450670675986177828324823350443298569261554531466241241098965694447424532863992165309780286711363487788168711519454956725421170853353878979588373507668213099442173034628975493041370743915491252385093804114148721818327443740154724141469655764978665387114510932967883906723899456159972888521735597042909733983815718115968690610390985978782840608475557134621706544749832536348563464255498515634486469615008152959289149407679725788627588289572564484882000899359364439660184171402777963607713405852492302992610146326524527050768100665016138311972932838684967438037690777858818848453559009113834687618978477525680300575434862217355364045712190859229740656553815619432071239991609572675014497395737696845684517681070896346620496112531984475729040017126150313285657112390540107746675068651002534633986579390898707656342013932973522889098649569950586923523292633153144096719707493730891139781388591318990586090352236383349198464440474816484082209815798513096139367577133685174229272366424630072393772534332853587055173736237593877155922683227724627851592178812829961489277605372725690001058867222482811822281962984652619356423651963034049282220070623584285776766629110781223480013262780802476106570636293798011025681503119195886554730917222248890155771931904218363041437407645918839171290851954618403688469932998880256640590218602324426744086531532629887632268254613055074434033862067620721652839211397191503690252085918223596575875176111044515977758944167270769578055976727943480386777379937660539947669338954737708276723654794926608833053408787777423627547216561484062705762597233467338283019922314488723523075447264965033775532561624221597016270384192880918659407079603754616735103832565505533061825215156204086911883196497684136698238205509003951737145563738841304263385945038556825984318132269499408337956725228149956784657927448782847304554220845187003203649799904346449789342417623029467444140576694828030479682691489843671404265252084624094584145924957314440223511575074183713867872075412200901176258877492256334279965557188436588066068131504289106889315900846066906347298133147091293173409258548811729564742883001618930327097159874440083385376900771210031295791092239543592741517609349805271759379111941739708566659616346908375533716280539731794508535598077956820637307962128715974080440912036890352050099103431021098086397903261648941856189231911394125988603642017194847512053819170004879045318058352678716193338421756048314092369718531279302834534943117664112925432022203888342766949797609805093154771086060756501689119178081014065438468268761263592834943055782166487484984218628054484704476854365913746171680180759163017052725907908364049359990621700518874508805280189841912697809776989864965019411328945554290429885553425791112472106124544412588221219776946385084770021156878622618525839652972548979197482527776420426536360908853926707098539940100268326701151427062429693381464664780112734528791271607684870745269593263422711534531667126577693640188473466833568573404281599883405276863684478845560497654557569723205667301169965897270708326026161029183944580434745535678092684531454483632178348367970173873311868382148921285051282026530687903699791274056636918997567118066474940824285945787212957391640711883111997312677881276589096607285241370963005577810511472466555755672681400173932986186604698177791370862700151570824101731224968844353056530843027814356507941423149296531030499290845403140371213214900164678245329113722059023227805222233909540804451548510655250315498607406991027262308811708844288481323441401993033433073217355585524075900269073273793690495010604004844931955622339961302392591890760643580781770964333053705733289860806401093189148092458940822987861643820883035140008927316194784599928961663176125174326837664800472015550533914182561139759041905983229655511367407041075781701792848237447757195127942684231389961537426252384294665699454804344771125254581873810089558724652051779983447486680924218704429971540672720904768132685974528934375996762946696133127158093059857800524585611209801694117784372016254340411976744038979688090488272333755018535798090686978979005767280723405282594186022448559515317124987752375533431251555261460196713013267731905998546737712893686484845016285758390178807020145046897038004756160370918565004497480433087941572717291520144572089855799417839378803952459462599567006440487696378140932540400603343972368371923701175239524538290969122963142819713261607692353244314851056357301661602248600327911662472287725177016058264080218855386676381185467432617044212166204644872927543631790523197124246243501600199826925122824351421016502428598630091452475274221637092256689852489548921567943910945524185260528050330414967444759703472491110822141695921957931441158469767688902494531971687955634280842686281906210775753219938585985885997329951112251974503378108629721326339872120035351060042729166849383143973808017006374369218922552823245326100493374452872051900938737682804525232163348660732573605676919560758543313117413127188706836871619002799730959250033789603098296440314884221142026377062025322267927985152661554730075546581226195239941526920471105515951065423249629178693563279329785546981223807805797665432420791389205880318478668707969510861949240781095025797768087794664607428973243240550821138707690080919033146161023701521479441205543452150562103471985196966028981143756627113793405468516809419743216562448067215266476449844024251642942597584551517373358594995102649390599486656845865697595034690833380190134612569287416795024980333837005628446379928026714890328744602944098051384702365580029827782708513808258111819829616056005661857261594180535260985517774781970207388225515294398390694872546924424494713797760261762753086572988119028039650221028532452702892690156870072400381305752012923732042891210442839074716801399594348871139894836106341156098631542190133679234657139263746557825359315811739546635258081920623364340390406645378703852348517808888151666846178641080216783687613131955105331689038868424421849654530326940061223974619137456629369820893389240715332792786566578250572800506568862252772497415890231805899461374562652693353426128613005640020509917370699681180727165933899093473652332248774887887361191121024033504336457496817463476242823953489131527148265519792963113477797687362322086268390384764285018286624940856002459269866423004513537212415022552766801430995097610839758917461276146520910537033005904737501382197895792655763199176814493971467313007061635588413524315454002363875124080325974266600175441017804844773542384625422969860921010508450111961649033703290890250985401717731705040170460615523791243717246863569410037614327914495237418491444251529268388676651118111111247621245319800489203250674427626637757380359490996429501335070768096512585057551440805467198063623678784697817198214417514425342783214885578824379133582684365500548952723171822392304557685984211871573294875531385665372501712360678603491084213190804878090605441891695427100131191947502424893714371608066139752421890531104818739846071360273775761047928142222512716037812376874188049355775233110976629532748439195406348459046763008355127708479138449414415332795628320575233693011584957149545805874236147611241375100925552932984907648404519558177745893564542607972573215785947762493792341475881301870489460279226896310945543313384636807454312965978134359025345633485223220243023462914162888039791742907120193854477883260616211117202521642047662832832140426431562128682243164493294368454749492799042226798484513780595057314356922035298758541671031305472639078674917024243784762054944352162471046508283268849306709115620546668208843787369447777061391642874298347892343476815820778902749144664653233028697696100632611226469104387090639816605950137491991228262840671557599826679591166733667656331690467022126748958361684168716480359415741256008142812719276070775120403104120453765193027237799123080763944131426370145156614157407183363935658209815184938182819467772981052014233175254266874809763585440587547359933058877248888491504410930879543826056625029715635977754508917320763166960775751536984404323761399066197998855505277974905462341339344490041601271820273372731948092438392562814189360151221294408441703474319081506799856286547151814879335072638852209791754221043728306419619772032364746247959720133309488261646235228977698862956585675716666289832356715580247707803454286045306387817488244659181379888385708539059805497701131918817905269178445589446789696974934636949646802255840631666644841803541905348507091712891215578115608454905482936971039059618279377728445208827770224048098605601861396218622286194105455945436176228094744138226638348482234767893213721830834938898612571112254488349203446637829073846705059995667953224486210656875607179597659553171058187886276882979925391230220119885945126012891421554723192896037337781012528886147969021884716273825411090243116451599486034075702127327104428244964788443549820684189267053398893921483661610042416142982136266757380944750197976409771981344148937617145975936415651422299218704979322199852959089947701993783492745126380061933233373677449860530934207389861531469166751975801114354696116450594395868929018907013324524922328336529625145630336576037562635090153087402067937765165090984299461350743309665546084497387272829847406083779744844708401222914391837551825453126688282937332434037517064002922394904501472108946496464402234044315831881153137956827492222437084032569726596157644882426529737072148377313523852511037703342049005052501124864578908980900684538661703071957958890582500374336506337409533865285091611429031033662997941505920460464224665256999777087595455423552921486057912284156559279944359418577973003210303410984009635599323516693462180527499112584237401891487482267524130605753744729465478410875143618217880266698069533670590830851779988567529164346741028933795189977619330204571669979981739433116934617239275723308039034224475834866920267571570007881654015786448415360517339486645260030347869941546892353497940220162726265757616950676889985387528048427757005924359361734520425793233651052155793295812720767740686880456486490824269716663642266195083021010460412292106062071496379831461765919706668511062781381778510838928422776599670897084789933912526017074747588106354553606104108017105421697527684380783461300327696911319356046758699365124479838347205973430785697703287612030245650370524205184418775766762980559703357769836352125498440284946731384994019788243581710060089998714761059673600297722090386704597652727558825200490725081016026585041322599509787752365172155704279864989072643694307394596447838659311459764233423434813296324535922213171096822815309248188051342326150002303073516331828687577018055133721893895847697582541938512515877518785879108898208744927692771574602694197102543853211579131081470366814279554013191256641256518839489592116104234187814549034370817558700202117408092661047399586030699686352293426417513558586805260655874844239354612314442839166920171216953371786504522421544362031773281900120404147836236192277674189639339282156418732348430400508414620974902330149872349877900940008479667452303646905358863850919633121275088684291735347011344600906600951121220714958204652122338970555285404100165821223715886679362791242484535635473648169287969733602330054069089919090302618982851663344522165535199654037696979974775934486166169790382574230804984236470611283895315877970706203297617932511235871093817552341963259858080068709817603632822843689636440916191898735028718280612057331030058059471678424090546670752363300917578388729024376536056148428964116427656191773434184007727144463003749938661466865199809470486899519693089530242689850018766954411800389199759042059244616186270673169490901666282747919115784960607583724637958403949319855944360961907503132574353979469559285977391649428567602141905808257486143007303791371281214698013569014625068454185569361104184148164428506356931860144596325507713071998442255819740458284916707385121174200603342403769456908531555845371325675554117903133033834758186830344586053836568528124201335094635154741258220250140988064119958472467861338355412245210718195330640951330015408469303722851375189641940929865187269228136857981745511012283487408699609065297357019689022917240637148066453854150136026288459899611479702089376186137012621075918538163777459703157026305287876646850761161636303825513460324815885188122739636423471048393934767161319013271388497637256499132411714151700592135951579585522710419289052304322122171577991520066202159863082112627317734606391599092779412424175561603759604685879205472007749449849373658394119132049262401000986728310066033080255132783959272163664615317011903194357732930776452045935061014309293243710170280755479764344204930352805553998164544420532587124662402110752017571984328702804711100156803360599874292363572577301722185903468980870976824157841736674249144106341443822880504286505290406619358459186817245717737482017126081122540037558212496315700877845747296060198426853370131771913801144684482208963783476301881344023520294134742879526934397983137516334244447470950030812690713922237843025473252381582368500906892750415549650451070424173486872663575294325796786502333761326387816044023317821344597467475537807572532738951246905251086673039565806423286969335858162771508882430947640791857533980531272051707178272413984502591598157698093217804042452985395890141495415720660331518893613371065924587180081311574448973818139518409449696074541880226294431197154011171305101783802074214384413851434884120444877106037596367469982234327215708581851425889516328227501081440181005327641548377396758063928876805836203700914774870675874581867207623131755004615622561549384388907097637557824030260103450796618736560736186228712496094841191067218599813338135703989211083655406020305342489473580677131798247933763103709375397189145157883811340397341955112476006389309836065722936866599340835212951457859942266929760531092448129377192706838265178884100259989135338818998874877978509923563258809188257137262337957904935877284629201636971752487253828663483929115870713921468939577880128935826057127201567989816977955270143718865270336494011610119001179752237063164925934286406733166622259683597160798227656831685724286566391799252283347452507807975355190208753621453909205000816169705496725700961274106056482438870857564228188128426285042688303782703826316832450023560654567451503072524770015535435089147939245134940845073015044812964514560348147927952151919509896506019035389213637869146304394938125014921111951077095257219064553265992684481417227327764361043198490254137719863822493108052950646609685656690326816465576129627878199201233220012989515433140835390180073208331620304112254700251080627955909708447445743835678225940983944037638491101341619701841430065740522728177444030161528960860931000838696145236484966353234432029085314998582275282551583694621136981654301333757969399674348792344493865120870873606590020168662662829512293069537683104008296301944265505750745498209479611806652445753440933531356887197493226706951746262053033149693263880503272301388054993545664746475409793655476183468999266576378294634497621634331002317628851246872675660609525671845794981888103153768272950759965932953044786958173024462863770755071324621013508021463105312443604304173770713323481184800717936696910400050660963570189249782803675747573743911131310296221702549214245265423504797286848474607686758338059615710689768715531231174978677113094323256689431405329333085869324242028967422347582222498663163173802142312335125101763884634355681475272298828905406764376656016830181871029554839632705662694689172430939848975445081202612233146851581013869882687474646163621388111948615672306344651077812608933313833042141028897449496543580681324178445753629857509796457096869447916090474238963153956702689183417362042069798729105814168528601856009623393562347306266074188301021893088807364117229154215916656074567616974701284674331181045289070147673421579895925013868018603899686253341287107586854425434868193561344595638743338872338728102717649136798033697154010693247648060893101035447657435731995262235744668454623722485458172881798884616589980669314438873222990242971962289739838891233208297177637749529732825666564633374816217301959520098797859789842953203015427913066155172711300963371300460684594665350398250369400979937119294243098087187995388872259059566069019326237859086917819087128917644867128998822943974233787709818319619258249266874419180243020097603449830606859353576714739780290227887547481226205260946857781834562863498222814801138908771147233378009566400689255295639792259094690885607447489149534291423147614854067551860046894418663659064935598443570336343980805925192679464439763128614165732159842877797675327297229166513763156259165269488447477075274896534822259907164884490238076179183409429728177557798757677477725558881671948362243575883877479772593147535821641641489456759488474586212304746041116761572939751247700876499547686899361902635940887603923614163642620524832780560644316711629754554024061333319762070229623190048058665715085838024705104694737700492525978780307845674756098789982163492934564586055171175085332353176590121932812274523297286000432080195529845095187153860703904086033832846352796536709055846250070960779114766104849626517099289136274180322996291120040503458386365444910303947362847103554479577686946813257153624190593774817226391050900449340180200865864899956420417270832585085903638855299213020249237970146951815475950876174258271199537656846618720784938804378926942989208355391177993610820412558586733694063355544131252239680577867448600801781004175372893425831645080393485659433212777318557955284051640832579900146602463962436027850151981830892805612929437118055932515434865498968921200655592183752871170697108640269514939854834111088713982327633200505148206930089090038245848992655149315089392081852878548762517083356327133718233427039656589593295744307533985681482055688586739637513923706866508378631353678537961424303560441112944806087089831444826377147899749810992168948305475273202230917606834625305432025150495116691069041289565701674680416351975490038425228830954671923006043808550129389682210814803847794182333569940714648273539201756943862699847687386388174343469860500436200565019524106477624394193129624985895327103198704021001046382253991733370450594922034446464970687474580720098374162764947560746007319733710527217255172739377051917565766105749390187192133377027580396048014823068479786550693254208142228775015473391560434415012377032327313387911153348321270440912859377065337008199577329784119771629632121304791968588390422022767009054237175662920449783474254822335143797486041268351624827573556578278170638984946602917864867289314829296279290014802515760593042112667020155521603129099347174705462713758343333033738251488431570087049837220080642518050768372652189882721419360261031333380245344969733061579206510886841749486831292454760217342970748266654153804075067110002885212345114602585370270821097782246953984426945234043411198792785383441175245747545086233627276344880458283076444679431641523358646356296800400110080610314559982431491721803786907733953114439440432887544418179495530386979721501488611321746803504056043346031402358130850975091583226576187559179592569729092825964495034139544492659202172971308736930194874529757804212920405894667794725900237476291690046425625303326396493981527250740938561563638005107374105504760558521425149632793337199298727417163626943249008625395912153316632566074231996164388363715724695737213994343847140420543088458766183376863156479142272546114413801483649319009029410355926162732738935556514609780294334648291981211646374900408678778470651834839293198312917652571288576874821954985277795145215146815290314930984069663762771451314063279534255404514138321025281088870613874418657634882017249764454629803518186914135003863599757410796666532889049515207327501233757774492339811364310504432358396018986207314809523497967810360781555568465834054950776357785959228214032835054513958561068710146109381507686462792998803737853470838327539621547087565217090010871684151267025970232716065009295955510296553567624403573225875730232872559546801665725330024179401031769276778981377821341815978096034055561373157655308779201478105172584854400251723756689458960344721017520368707499820233735559386706557109436799378351459601964424791377640555084471949423587679544104176590685725904930246011041894819652525744354252761250021719950377870397626626352375409849133372042477154879837105973546155887371343850170720117076358313103860354099793050153903196220195332782447637344941753143277324512904972963281226868948447848773310910057873909229656852232465036433870314657853555193352877964720449044058286569353282705749203492981322673954840101100369784997563644817127583067692744818752898324546045636520945037864676850583294428511902954749747955522901664816272377491648878603564819350701844733351715441921914876305256370793616880028626499505339917967772759258022141895201938729513907397353058716893893228395569804529216276952965781818329868357905506923028712537134104792291291868763001595916873016852933957364714527008274148332483820034081651190063008487573638436088764887218079723851455020704254120314503467407000736391227259484639293213589706827235684605550503196469324094156018296434624467114973074979296376088775384377671212901767695076317503324918076045116244377195666296341943355924102682671307743137281930943738475387997702587823521303169574791849153055584713524722311864909467282434160072115266147283148315236004418329744665998359686554601273115013884249186250536721865535996417175074113540686235680506665578775774367818485385578153420871424274180652751237688214218993278165479349939325570135540846820410810872620638197596426975373984171970997509770235605080297000978820167783177805034953580784042770235322792197839462483405084157057732741274583572098235436574791750565177653241401257858934543458504940014296091084748170036057721455608123113918037132293985014977300492199805966468648258666743928818566698128287470745807154491065331424915603443183448576694821470007667489215235394155457246144674586103446994958846865475826218278514471440084641752588509534923277806599868460826780480119643410462129176371002848968979798336934688874546352322111781665158786072420482847707257634196555163727314728887614271389717332781276141543911296159239317957834259347036199797329244672808222625548408017174750668513103585062376852203563545951830814672774857005285996700635530415456218451566906148427639337711990987542476485074471196555333893636892688067036841345032819433536380623303335572486990283988507989568949854873558296323374949145260748229243518783553969136618806298039768891966097427767747860247876977183229743070745160737755623295783154449896731846456872963953853762766841045168108671308523899443832132509473139279700448191279794198850374945083559235981792894861356833673282773507014372273663321166678763376290179105399836555633197083919787910384797532068694192108123758750675373040317660080475437477409411249141774348170052717051522587260810186579596853536151792531950311242640922452152879413631792743067215263215638771076049209651454074365192434711172060010408929241230077775339340092681781166670577051862545884442675054299453826497015212261642623839246871705439892775435060440993144999784564141088634801912807627316044523140893665012262510073875544930538547106783494510683890697942265126317101830218423511052802120896386322160533007388160730228409517851167229408840002803528602791367986916720696416588458906421506130086391133883669727131627754138023950234769269323346739727071285395135406688555307510161347199598648722501151232697141827613132715440049143078429955331728264659533827575335928581867489126213342114189380922060547448967365752784414910084508720099540413462779562111031136301858659009317211416301848698301019038268336576870456172350463248451467098497743484150953914640767747169201982568973695022400555895557706029060540844916015321641663563108975673976473110365170855004512959525903869216843497710873331960821156209267608449978145448739339731292068380025934618235772938865540775197994868469827074204584024860324661500379953820330225257220968928922756737184447292127742739479813821055742492461211773472345108069447659257516154416187479453981188714749951533565492444276490994029974349316850125609157347607868784318572221653706086915247232348876644730213000893008337960286919164285321798675120103903873222742735453554526376144850206472292118740004543315849835704585993114305381951368713531699610692654684889440525973436890347943002795879520120798943858347376501943180916854288132641161581160359857310643754580731939176922319631947214090131847854440598130498188111911775662878454263403998196914228620228026819611506607644526550551224783513466619787717410782412653102050233615694045641372665726447499105232492420842177292207414489060341188712704928060651761743066841234439212372993872502695848040718749646896548491434522453448233147143083155154877614157127321277230183456917589882884838584547326773252319510631775979805247475000368686808177899174391999930553379359824307256413461726202484102371618649408021978822627660915499690234469669684754868896609950181747930334889869992077780981786482169747353871404482741459167234051907152568296494323792339414050796460096585089702908477791668090059700230410395695187566844450790638316478864688541462791268303654034777026872117452675083015953187831008726428948349852582100169442897762579233667413163205846465958954429185531294422384858679370273737357750895559246030068485252111915175074676119522209390279709805238061039178751657344556194957484899046258989036876645467040142436071958372007836970620717402351589780400536459507086871323775614338390049448728647807963373824872565674964362781017935532755306834473952732277002827934561720382628555996284100619188135175225723204878222250038615786646031815040562380309563028893226585465769828141654524614709834050532439758946223285887020218176020200369776757305631703247490775081545880012868373419414855438719669406954908189376344393639808419390918006315750857004290292566789946812089899027928304784030839805960167839333268721033516339425642395070638342792651632077909807701597789895282674555155126469662966482259604112864110436554919678016769080238832897206064150921973592069048770979264765770052096119830314434068135763654858616066398222984523840440406157626474959297521336260727305658031103390846370648947227718898699449179542316793318988210770895023536766833547798095914554787293888062344329781010204228200589041967268167699515945679156487371825253307374892965270055926548780273034950185940679964861896514739704988197631198523792252392267755776820816240697527519044604900262324353962587115866952650832849502523176639516423012926531979234273797541374364009736702034000508629226809151029971738489365337533004329033395599874543398407041314049093781371347939193086122174325597076468869053273901926101306532841194709584104376219044938656536529343226605542212001003282935903651162782733152776012187199491289729345263540624338464581667922412502501644403888962712730901261930567489178518944581858223623528393024101012773454397940388706897156952551314071825489197552733080217780058819415194203328921204319759412697556586379216841308538197658745740715623057324401075629826196563791524592663246153814644099283919041215031083292843687120264904792750051521183468186644479677434813245086840919032702308130727931544027129157654098497276918733252606588649168029292518315964770750392050407256079779569818235951334450395722590408265801849307293373872972229164053605516707211134885749028418310339840227135805595206890498892037357408795763758264298977036676850673697799091584294759018361322154030597977678907104357786822776693844746454305617558209058505119932364961206679952906755685738780197847054293828112711904015503517895595074741061682860920276181655790547562311989876815446304194676400377500183718250620423587139655931213645189065571086926186065195755295331776634787294008444208978706312746150838230046426345261601639142196166981110411278875431035058998179190687362525829110615499105695945090130112587785756652288927094121897750759593348517215734007552856162945188009270217763018369810639879696943191210909852504551993427312102823742950689829961984976309065302321551275049151148017021990270940217082264465378576626999340443284709134210807068262804465400560499237356701889642145893202775363899494648804421457839470722845652576855432586624364195344685981384247590354280012622837990364542324329803193901404865250756528478839808098051373199616327117382231996305421278541774708774947941364880944569599194417930631659720931880279997989852412143803006754738564693857574209372410164549010831664469802682208199533042411005195284169567147411888727417798868831038827788924067075971653806471391107797117966198935144090168664938695646814553748795254628518437963075392617207513024102620075224309488546848385991484287831371944880856831630689449962042754589071889257719792030480389950921131333218801679368800267981162071084459318956981124619842166035983187726095858681321375086748013563210140908545667958192054637571748724923493087383402174924912930020637459247015861070127140906297101724745592065900235557134091606277961124387885205929137860156728817916828230941007513067203518190809806430679406028660995166174300159906838821786644069695975034607402227425402539713551532831737174584260281016842902845939352554176311661119047792383538972752910870255590110526991171060934538685729423664462656629379724009021926454282220707045600011073146581487564980925098858432162435911748540960696163741844418791418823078305600174094084444540949060590972595912104509208930483568988242449190853219128134606829435177065099357695926034314102823134931386056413366522615063556050609106735065859326027583209983401583957645670363419464973754488844705088784890409494739610551535039665719302552089034746333793607276933690127231928127936662347274875797447413231588904174699244358365033263568958433158241720581624353481190491359426829234900520860581366347409293918811151496654256881832417717087440312201324385282388897610377413817493327625983982586896233537499494263860911524138494262996749167758659048703059315358555355075350923252466037456415569700181846652489091025263634436552516516285092645335699973426839036660470472050722562892090648440358549479542181684799576198007585565382129501186432372082472535166813278064703975912042153434143731933238364916723699970064782541626709254854135395065208919411603314240832226488093328518891866890817097688301278578053864710259626133819112831142485051383194847261119769217102235191398120165850388649024466205658669263729797882137904602704638242385562163931017096397662494062967860654880103388992224091910375903606543409312152034089112724349600089100961913927670825831263490889685106463890781788996785488004424556319035825371385542099302258008244249113606434673063860688235960805068086508208295786521324740174309559939689845556631612877439240348575492230752731223275000508922094963503250991982573318821529419290277848639755255871683164024173454076487753811772264662906709311569685837095467461479864440688672431184881181324860310024089249702193782456668613396036912031698309538377284925946727115654360777644967829218689091546468750407495069683360742227457752116398169359708697647289574453570572374201726714961401556816996553958030881878583463153418266748626918860690356236244831468653600380482766729391397302801421594902210036012173377948345639780999063788623846999992590099331079932017587284670252462943012547668178936831282446982948389467994547414273430246871712025067370101392833547186188435562523206527038336105336755391720467305334307243983390827816667894731253628993901662419706810366459799873949341616759343412576040368324735770245266467990890115886173974523134013902302421660757770204381444960681109031463291930459023386299625657281119368492443658713086714140398318768861674615999503157837450273394860288774130669711462628630277026733135759403486646189236190331442887915676067309210511497765534701021072827749657676188655641703633424942991234870547176931155031809003567687609190827465887762465921475134332553200137382943523364558188420548913851056860402844124505395776732744135412836425564822178185738740973599941573524983002551182441602427563858245150423028077994154583542162866589698075488438962249381687489763554507711598849223045228776159740173839254075471126045410077756713689814919937593677740348757371703525402643580730395485692211947524400337357970007594367823895762389926951506775977107592647093271347344974925303216047650383704634852306627116534805608151591834273094701693603636421937688903627762048182803386400064458280820166924505361047290212381827799945803972243815516884113375661678808148010237515421874829147801893601595484227364246624461545500875948025862802166658902532631397104612424516676722722107362014069908509696937313881613246049769271546289336254839729686645491195266023231411487126149200366979610674173965916525925280474085179120989902301148024711968377049829868248911911752294275360581522160237040847114261256721261507721087310701678854792612168293791031362119110250257175166299966654925605250341997372536578482978462464710724223362476755633311722198454136989418642894723032718548885382684510351289217933939173495042315487297063216701678603329321795611970069770369222209238211698751951531931591428581461054441418532804639986012697633903345043212924225454332178191679684908774487218413999659603754960154234978605734715952736144793484033065289486055393206043853264955491683684952083409226696255272765674517675501495815468416228687860121000664609678129905133582336784101984532376520268425550339601718674735460477949618179060662078622390062378714343319263078068132096282256599888087261864476718343455736326326952950603217580729901912195382503202118247141596907932079878644774581174315801005405062874816014323531586981059343341544279870972871493208172056476469185425919073309498013139693563779644373309975250903107571178018932173105271364643730996699158587558647013262703714463083600776384559464209450220343052283774438743572860051742569418310886125332501023839556721874954485758869443198456243899169902739345279834892935773398124972477397085481167374511744857017516800229646684202770238035094605460887626469741983040272490530298909063172684843987679667833895470269877416858752701732395383755809539778480813198747618266778619635382803884097350334972022406804044916328563646146288362755932882829548499372327164270312681765088019915865951455010543050649913409328496723228707561004946377381715339938159328477241690782829656720777087096822563801505965176581746052481939683026044166381545733578787980138145718093154482025107578178660163548419434360500500840253991889643065522461923961447616291142674674011880531486905176591735794129192147794808269038227073200116431543880326402951473703186645119592773511857039248605516757077897985706895303082272595742684665526464362174951881822603089823711848172584292492147902315812501940156975555875833085287798629199159634849762510477317179625573691800166470307526874319725944128214286266485053234157425891615388048167846764038321930272855966346179178189632629422840257414070338618927632483669270412518679645809505571284734890545190490091710570430925026124176945566356513314072595161877809425990572921130715188858659140364506702621318474080570136560531558072336926557979973369084792341969802505754343706718367132369882817317323514884963886692414171310060702384587442189262108030742466823577287470924200625812780027297513027584426500994139376426427436404483636515123691671328743302386810046690599784439362447977255034865925380291772534649999871013173730399057387746459123645020968167413587265501729587332006410852621844740426715586195063868067940783967980405620028954915954394464038946436234844468897062455385097400631924510342197769535271130940733039543974666633367825510729107334775546942342014120174251873653968138898423015788912336971963072526545380054954280612392631982732303261892278978889047293258307646274070896801673499225458020275138888544109069653075355555206510768448337892010893731824236087920655353790478317136380107960944176808005330722322751333433042787154594068577340487474998006426304843465222482430527364430391210160406772687354459172414249331959713831999360457322935745221138437370905216753011285853562053574509210936983613240430685067054526918665255080109704660793124646028496320875621753016385712159616277593947819776049228282048824227904321188226912873093625745174808669298200507670861012165716869615050085474387045048903807507204665165468609379856699198403552891517009941130115494714646215463866095158782945895107140898268924747372024639293996550643959907667511940594247175466369545510961981033968268973523031377442437219482073367383593126689076468742583365036690849786940485522209791040932015040543777609698656539896097648859160780835758599702127844814641925371535653756953091014765972441769243128732670711363085928867969009573601835823926663044041092681646960551049763336793465557041629842160773026672744502019048614946498765974220477966459381451279237464552597857713650954220275030206087392531569208245168953998911517093640348830930195893601413556998466165693024939956064875583330756739380827203508746836440210130898432368976890131087829790143722046441055078968772449577741030009941305684501390969660896325879201837816245772235090121088078814219461851612889229773894127619894641762314430466206031303557260221366622716756444284228570408233528550987473330906099338839560169200090529887151072365996484767243661853172174389143904568087712504154918047181594611813917966688355055543986851574890143719380062316172381230838338689881386308349169619708548917977352888630406680636465305904430203421861159469983077975680768484127080050364457560228965572818679577554554482236918666885174769466156153016599591615500915066700902890138701841540934832196902953260812140247853080057787847086588574060486279831129534148779892074092295937682056884800595666250238503557901498517841461521654400523256827408793743289196719843518019743071367622393110468716372870492338420043632651744779731822436183134937191243297372152381810305851235653276171644345339548641532609377882060734770291483514766408091246994915291110235150306590617696562804286763719812108150053204423153572191580210953609138601979715118580936577296448198693673970961361721000706094475978878647378245037146446339255168510259403566675397497473992120651355706154753627092240837397750145810476309690398162231904598586400792409833295450329192200620744318364317614017246145863581871046444083162102618827519012500379181679764360955309918327811703015003990508835976874987567283452712342656057508965727881326740884760083855053579156691156932225705186829936990412151671935771352635978098671747451759628795088689299156577403910158283520467733261407093342819613707936348070730917611969533704947437010612960260795867150321050313003185810266608993194321877000367490429972788570136778008293344241353346911786556890721570310237113882210924453317338523858710205506485937265585833950378005861805141738913918851524854632557983757777849462107299214128847729294216948117656559186425975297211855252125209090285333388637068142996619550802438693600049648635063773945327459663737130232603015252979232340836352399044251168150016236435182705644523874512335143345412529054728127161608328990158380240363381339878526938984278293106731868188720126558889432506498495238915553709148002397705647283771876182417856945778667226017158945177974706527549296829207672675629892048508274225460608014067270999148960739502570712160843693721023105602995648155078547930988471372483231155119453567399394648293429793908805420848261459887562079700641556429286221155320550038184873609085329130499436495723006170357921850745774591429350941012305227173105184225028251925083009586210562007084876309541188968700018574141262435521633363887973023302429578862925265227572731222185028783193523220010093120017643013533336554211696698311622496792601573158328827956020785704626049693898237892023876682614182715210555033811881778214204572325875717181895412831271934471292358897538681602111194701458024567952787146208654429278970662400649610888214895621195728749003058455325838750763087630129495769079549776730502332395902875100898306593518097307045007306425545973184611264711500855339006588422691540017885676940707814701180911378676586490134024027267210368507719582080762734106818222149844834936119280907488913778485065710001128441375538094371419495060974213453104812216004387732980594177080935013287100101777395790296322561567249328180399423829962523729498931113891035635464285192650231382999522985512779766050128311159678933394098349496777901903187156062568466024493676554148901589999772264699233714833054975182205084607744806917472764822188606711646029429519454318094212181620082637864974626037847969357361313490428586121497644404374472522146124071807160894259415117948385241013042701754458151542885203239242617043897774018661228692788668784099662303737845256393181176147739969469018432000675671837343920730348107426326308765937335344465617702980614739329915316379444189410791840418021206228339235307202326336459283623442255707400257189856725060831895487360054231560035593041900847789696237204601568007351756804811595295238606712493221505654866932210680098144002627345748103947824866994798712578819302817219213780399715836134345953554662515490607123303180429504295428846309867502745076819896407801306908530492487909456014299034823037805874669922758887099529978158137110241078180413807151401657684838897713541338960331245745316428521198769493834573281734938037340801759471082184863523781286172575999502416631387372395357561288026079509654233849448390995061925995702359438916719075621520207277868127054346688830012726515555077562022319477186987389311200306443603703433446872317476509402719757304876239571765337727895102214558132161543622275427183122693753984406565969236392313711235582959952474054566217050856040656415843392994666690160640403616061162281623133071301105538957820845827660763389087394102018476445424979558426967691672717443623960691883316881228852919976306686330893850541855731284862821214454465166212307048424509689451001681960658028976216137642889665230006775961491694445222536598777617414270879861950285844778211527735013708289451702789049969950974694481723703567430887490599831758200693238202793881724947054773711506906594654525465141268675596644645748800331140799163803333197956273273335639134860864553876782741576980127095567417960724786267040323848178143571633804197709687994668474268497757652346001337716526418673202295940921640107088028977588775079626637289923426194550130816538191368566479213717281928734809802265024252324644082619677890194725451562082799503863603964143132863257014545972430077053238670150434907060142126652977807958527965268340772466276037144328921920649978264894728739784977181100892341065637630529599440122217216167109612317962657478629087968686224918481426723721981354860652459289583753423655323216601086237413688159293354209942536372714791248999146451275315373801469336525545748869255196361143406715157066024014158649308720245676041977982506419021468737120697323225991233612565711852560406543991730280382662906094332687266896870085863810722918306309505205193911653103171506028486331103114740680661363963028098448606859301475889098245704600743039875681187971233681566202870635912551873862219561498175699352492298526597445832855763240788997293772176828867787136503505595127332730707842781233179083127578865997708176823552553158983981583623117067916977162071553314324444877596550813537265936032741381015884750856886636006779204607279828506565199611930530825138995244201941826067109210861476242462604612161716565185098936452909375460645182971877256877056669789294056365643904524590014204179907552838045971423743130368415414886246930900682335733544904291380882005179646245490227438454767181250753661944617129418994111606358370455654223150196509297758034759299535845618114858280204560049761952537521609183034443823604464398597947924389032128399719248316308809904130082178106108141976510352732853221806234719464167907368551033887423881037665644077298036101252291470361398562653190862082594322832481528121111407402237557538431267423962976896152281444456698075655538971946030277426185182733806262751374679510321711213020888105675207242478481846120513440646654877100199551477951636683032782567909578317554608608317255440776260288754802770397099369964382477348944065058504216992148572946795923634195928960799045267913604892977555573047420206157445650296946807281311498789426872483032593816755193460819899024756902303882950215098452766842767226864214076997884203917504602823350891105080256813568960004238399249650364032702603980677231647568208725187218592292428598189109899105502540667391735711502401448389662988973509337035563904927402581660170951256390436002103021837198364793937590525091732935745037606363112865626667481556405630873889756131781846567847334212730697982790694584280062064415974661899058638467472420845482607504636503293816640977446700798638298988143877881033646225168821698165429195547443860787634320403528940536451919246353658206228670390289571132609060406146181751173406801268955744033548713071975923896051114733107138227509592980891851141639600717639828330581557817154019789284303205259783631956879667617512183206610900023036144292029403585485130991506712914813365006921771854699309142969211905209352628028768028257693387218740177699716151293552122431251323385912599509574409346380722504523994606904421486774141912863057641750959547249158140146159133861237677735844810948089414442096935351078930229715108238564884586051191273828703175203765975756333615900138605231784165347087939860286462172155549017525835605435433343328281616324174031541787041048169011034210064594592558389302207690014236426241245875758204599921844400930684239729228956463046388678446051092965319791228571986999367273921494650160175770811981095822227769623645454388156329789590325188468140908052721986826404123471503670404386848172998713885379265540422718525534769448430321255818388723913058771293124096083512737914193154104196604307869928325895218123865906145244998462074280689007055572947196887223082204595271899923450973428894112421597169126508757505741985955288072595020871862023057589981376773616142886184534047858089797343818182785808013486126662713445273170389476915024823194364905813620011223204413865839433436664238483803415056555521894993843217668597769231691280377249202658948924754720211843661508165452172633372879316877174665804203061618675389840070911643983428634846128311532887014912902904796323077758659632624237946962445083818471637088932553210463321671059941815325917227341256376194027127990271017092872514581862550485309363611540076364853555605617101153126031467228130375264345089977581288809887444163522352372257633163729964236099228286130632837650798638052357975133106267276440398350094332592110412902679021814634604954519842287512214318314570399102595144385571008489914182307539252127291995338326456527133096580620537052727580879604590283162943566909909983057950807059958736292829782334870645572160717996849331968957967226281827863195052244882949913219225065502156773122061403009576753840156699193999887723346619970339867340665834548541625090027296314070218270385564041012158190685085524103883524153210333107911945922456565514397362689795531823222763997991425461986980273966832080587311664494530030089489743700413345016096559431584122602678128150758205767129411729791551851817549737045794534204543198000051861189602069137186363681892796646102355974347675373409641586341198241926120588196533431853242997670641816243651991541444506763816674573865676438239447684212180470178910925823377482239196360489006095346735281005749479551255226932311309444652692171097042196769975772809896535420099429374113120405748535627089306740012439723074318917918073010997887698759946900613463533169689807907373996238337033705124411842834038635059816601164753102376474393292156061733395106221638073971196464077009289163675322712907598947387729645184442608477778719752542391695079194777692756484992376804415310750441477339394108877242575533281399336126655837370333966903354153746642115056360205400057038018615780020210191877311104306001374477900274329271075696723337907094394663713870641393865537730720626029496518422000397409882351637885673006559247634610466412255931805308614457731427433667189363020187766916388423122089501796678510646696657527944370558560664642279237376219002964241857802143167766277743670421400959810309647945390948577738605873359291106577964743788454060818786938969635457028113352886629780498055512273258898516961592868943718931279666098767905543094477012084755419849560063925231911334294984098341687634050507968603227758690133675498408770619047478026392702189221571075939755984680506138198036943753380723390323857542534294278295129694683530894555782084763420430660417717838389410804402890570956208741656150705583413991575171919164833573727989992856305783599025822974730756615679242491433156614015285098548109373869874713146718845737065871931554530635229710087755400107468889087433558097699779580376635319608970664583869901938351055539626992577374581853353827441686236790960017468152326004948000463811175034715288859090209094849817376527095046188162598634805935688201770615592739821473658279865128264097975356714775809476177435329547744076035749280755575465558818783452905074795658774112699498356330581527173552488122351699846909165552034764195421135497905366527696183404303871449179422011040218720537599671711295215882079766728504210639470119308972879230444410637443116538887801973782534816338046294101017842048107145078821525886389647496015853600208235150857257416526551771906259558371930769369295976025008073594702391041601199196507946771164337498475333796927438573895880420951378253622499768816458494874833373480531992489577657092476256059749364513008085312154284292842540079034099522989020983591835496607110994967276404193078856065096116372534098159672278867744143726791982357155633556519192117176601264279925428503052305510147598037872190909753943259760578276233713978592137336561002126243164884431926089457503933168665401529431617008375261774549638786473884515270837835789890654662534330305810919036802693274689900443105861467080708862750285577805426970972838197267396343803728402920837565615246259138144585964734896910974498855572072889945425516903675064421767731601876474963474877579824248864175634291711885914259532312497105782219262071334405318146581642115827037450130372130446728986895598557260095295608886574066698922672571849231455502846215946097608680127707183576763491176773254738406884484941851200469252740056398365981744603792883196575965169851651817675341353202795785602627206720618081693372761660073173345905652211852261339705604115390946171037737323770724322717332265546253282235077605939903313389575973454284887507158039496259484645770875710568270384179109853299965374877229605436344977884181286755775870997804480179322609892922893730108024555947220746140147008999858854374203743511306048592868246748545541119032680094732192944012041426614388447107732144940782437238073074331477077016128913423102250171808638322151065755200695965044717284775005005528345782579164419148508911520243223534391378507106207961999086917522008411345894231580278355571500790621034600080672188687374836510238778657453798665446706497709704453387342818801117176385932340639545166406033368057725785152048875258588159967681625186822570021921025936143160217876062303910879455652959044016353080121721551601131965349915839054847375812163405484971335440785562116533787070615170926263298474761283854913846465612479895809173932519467313338643388273448676328277734899431633276265890800603562686276510545047258157353773447418950687799434385551433578344344676105817084019937242360198930771679761145782288858643396741472846664321967267991679668453745794268766654227048943356813165649563117082287557498094894701461450275356415876409788503388815929607924176962866253488176848944190017399734147325172931119060752365284825306476099815129649188377000260122154896503224046337415709588450981290786636158342513581629972632421445431135181034918865433269871897328216762419056999220170671871727230774739415777864749373755497277497498978809751048366922603357633091287973097912247846421105947095215827880688365993569919915094559434000442404727328392237482989056406343613864548342826603110872018979924146294030999428529608090031164083313527856938201719920138393672061121190321287135969861037292635136129243963090857966164665873176472078981630736898846606029761788924990525338526022870502601739731782805635552133089211309112825624512510377022335843394070425217826062716742831176947953811051152584767356073261465766018206079122555234261532875585485000495641690772117306632678529825867417681411750784059724041812673241850222074411524545988397909253438080957915594232573783464163966287937038541219610501012138377128226364790693835372234817840615618462044820684209602568966329535652140450222810005646061516175009529886020303671752745263099834657831678920608077120826247287993956578584881183478740084117402501494088528048598148530622727725344424593413619147438667798401069667780990248126646620052335837207104491817746620713082756902526355647290660919937915157960133461225339940654144461215672488785785531564223953620066408762875642463242795253809509005154586240463889634563692340163212162524080618847087146147466097650904875742194563723621947044185616854043823611703984475142272555753422357345593263547591131399499225968085785650884276482630930352188407650296401186616917669122740548001687493397311594540287347150525344110549549724216658698417205185052787925609009322694571101410058994756726701177104398944860822996342921403100968848997717621427297058799416910002692992207770015648101417280225260293144717127592411799880408867864309128542830355359920711650096777871007323479129280961158280769665185140452445620609287676652283824977298976669868353904150770448521394058117536475968548679726562352338892552215573738431807511969998572215383828944206399729515011704734446852777423927265902484006244315354307832459069743050277725381552529486686488227785577861838207398203507467088116722737205859599843586878040602009613671321950331257376733561792410715381148048258324712616676948275979825208060373082332569154393281764725559137540865157090327804056261528962077634171740838196130432697443285660619962089029438101671510271296131678268555387382247500016468300375166964381044017897827866827832042214923379989514608783400383113775768093183297363886510218668060864489343562972172547860853997134631655675453057029142140594005172391296313363387382506072821096401300678654821874458227304123372279025201297845575752338279138888386592354682639491366055149325313134374603542097411603713030179734835290099397486916316703570409328346568735651878796078931172914028076323448896957470249420743144440200238824999123083428948014214416641086289699673722347828067092341251111379932121465649032157936937833318282089783416329725993355479785355203750699653313268645320280984671379405660117408502883070682520019400129367599241940052874099336936914007045316661315266070336887399154653504708769870275109649483269606666760411327156223769430257135637168030648498604776497541538789819337592731522135946812541604751961096495296575217600832295195871548340008122641245376990305279139642636058723563115270032232812799665600370016818174078460845136001718997039716082138763974129348802707181197755447808403384217715754164455668734645892182342762711169442883186946089370656736921340688122121675192584205307358379640229140329964876920629814378432538460041282363852020601247369819326231727661051911527028465462907869325330212764152928855039843203828630821139388225281087650777212662537736983671214842191062901095469931913784274449602902170232007416308456720018051221749576436964095633846168482566041032579212723506030530426643071642959976284955820753031101954100125255433566776367195692623006852172832220475109813604426476344624607492109126647737290966189700948510226263015325072959516102245130624639348343210017304683447918388697363144470619452168985697838730519464731959481752855299867591679493613186633854600740602085154103620829218578477449840371624351824831538739277239172285393686740114623607776069942655826889267950811964636128962252343129882565827448130625338542698956932123163469468657936019582736863422306082391314507281349456321734592747234624377998717977115925209021763299642694121923704205776019750348238825473931268183004960276509098092518178864902937009037401349470235746368272917539420418432606825460895117257335768214343574406308257012972784117527466393553734772104420539236757620300067361295147477245733771504238390236380567617980379988468065378974678293438199544190004962027162921880316289850061717208638281920951405394952755037463746831955108021294787142683894040879408807576306848186361636313281789386962572552278264987667377624506538771362178916707363321204573231155001132337013636691508706480700847893991549815858402661551723185214773713583905718378089266952400485462674473102540730053316390481350956943483010521465021769996254553276780337362912671889412495781659407080314153099330077491522210116749180521425074710387092809906480769096414621877937891423127333680010132849987663108350961569735362075075842157693872622117296592983427613103050540289677032350145373271235895380061198694410562000857653706833140716580271669039604956124998108908930421233635076790303430692249000324331536143366808361890455828887436697013052807488750331188851451341564357420887940580937105367881824109260998294807598632938892830634200139947836593856738706728334049111805129479603432616281165516126274122561353699213854320233009967625381155009048513672002419991379270106961716341883765345781243629956196677198927958549223037223599745502477891169835201908535550528202006876062203404751749090272683609323644494238007392138347372493919178133920872029772196944248195827353923110385246040595262570237127490697210282467974986768692902049713582701772108139893783330473764197503710408421581388817523191775734980091480993141346803635852386955309906526931746269388806512672290003879433780478722999762980273800037508576908012460011429374970018261350126916231739034449136760377657733766452198869728452942809919902308000134910657792343201128398121602942509509559230027206022265218721828214371107761235710398677850767657436080229462402415718881341230760262544728052795153592148934155327946358368263740121179130456315013523317985338013609504426346118464856394730432530927151021862075263372296175660175939538681989485242594419432628465911909481345797592813981597533605793040454907516553268724911557270950081085431685201848334909814259149296553431358239946091814295116905261954959119246236605113509183744951309229297458919634068296448292281095684457400524703096010144541050341535224517925155608391404930388851103960578149636800010401635375641095593811487408155333462766887498395976258597055430391497062832319154163658982281247379346509431366744721360139883422505632191394737498484914459384746309370592505506208798908845790235117537744551345278945666341336823567825696275368702036096558858947886167295765965546778044694813751016116791386202416544260613229097615611898878845501526097315123955605753903338514798394767403574245166698220605357235163355764893249966856908818224508064500212039764563232764591924882873661321305003192845476914975786030950834821713402916624133166195430040923771972538829021069966298280106727632743650609258402152644159715949982379906098151057423426299671611840134553721742917144818879069022616019278152385966867996492468579760021777974155028122406574287316071173775024548299444150653619028058909861580525355919093873179121237868907036291214682655681084920083353257958341051267257417446421085474466818131984945626546178468817911214524134617606545172986403749314273627392174190378967839307528726951932665345604479432937775234312771460922558973683785250365355324425559683093784643037511997968947388374483117377554790855201395709543048389660765188376228087571173846105737265431501628956624769648757424039031825553201746199901129618208087145750417323234116823360950952763113007448839880122938291070960344725266876528951571149036604626613633836226286861702846333230973566552794037499537938336088833822214425767647614145975699365703320456717474098361537428074802669919841073014077688354973182300197841486267040331318368578389428110068155090731822691472814823038155524608760438148147739548262975452952704081638643452829654190966522304149319320357161823919583538841486516370694491928363973019123911523283420044089404523530767895354988644823402561665532017359158538532884499159974727325094975496245857167020760618197348485392912289094121288938289312284427873555104519326131755331559160936447641311594810095376560586396845808347529195881186217954349379916269851913183603049317504901516232527097940996035484594376879241579316804472235120695514089796924703118036742731080072952235437929238085454100252445349509733259739702660563861854546291056445046308273825741880738870430761286162341211578923091580798070796507854955214257915036372805744176374592012432647559799996288375438606582883633998588679303794635665130143838827906600687976189894912859605143770941012392472454667045511721798242973337085066322362853850798873540162832931420089185445645308560278193379610812144895372520673889493248155816882585540319669277640751614681701158157831330109027263183233755449851598916149232764241749761872429760450343268300230845519831472248838217263397976532302427736295454819867447205415570011175900684295418483180571889541652634260401717848752784064155672718921392188382659264574705847125935575677379058449529867592424614553708180204416368615508645453611875340185451972451361268705929972974673170875329498733554002935510352629107843564552723634988419706986131401578270319741103648670426658086366340275540318017269884516259691599722910152344024721879404172210790847636050051672682776166552005715392207817300184976022282941609411939845288877714853798640129676675789708218546844595970695525368889904510412428632249226741894459177645990460427958475721465111172827738127341652270403965638091364536380154516111835838171917025062911335746661429214905745680676138394939161656177986678661225634283152560471757747147493623437697549928447724959542236197649852553565830216878986713910874566601291869015682167650690090338486848074975385597849193269256703676749114788164318399016992876552665871856951886172542745203258936621551073033785894459475563117544730150582469247612300010256523244871350132314528172409333316695020311227751606600012756293289497587528667958207127862590498949880254237030935700923724480337580096335361831643856872165946896428954409753449170204281465179371929710965535496843640056040662407203299993010327337776813649934124073668891223385199105528959936890344285729486299980117963181185628666132671504080176178342644268184318846651135115802525437021868156843769794369023821801277190308943448921689330488890786687907706471869001552278049003255984039268382071002353308846140531601397438734591971250945027030675053431176883937051523519046187344887198834772390791046526573319254452790991624322367136560218369163248524429255867416658009541830635093360600391105493759945674002426781737048709793885940390506955177080629180295674734696332407755937057282491002131187887215625385014916723777532426293554620397084188873540960962979866528629438836172831111943983821998483869398418323399388226670988398887716855078621727932895002350551775695991342738237754786816798105587896582613463688100490867353583226588957480645290106534694769282034117298401950758097692614175303661508601054386618034736827807187590044684038559481269378277440106695520659985782168349949193238559185382953278256561330912800714702817848546760545755003150848073508187697191340208803807566441179752159368329905981993157998454437756816489246539188116956031391295437766040564350690479514895476031770565868839112654119835503918790125051912500747886256522851738550016695541616753134267700349489800855364062604138406186401730354896469548949247758887956421782452896703528721926394408068834698963189074087955161562470948136354534269507899327700622406257842227723081968419524773301020598335320164656146879390505857781201769826320532882622362268198837590020205588633134782244209624569514770080368598955228830529171793844258915002752226240154021042974358266372577532449722163037245739687636276184863613368431533505705531223077880910662719673478608093576092442144167174481726939899501870097526969190897869234607979971612182561751753409421886635463331994152022520221541652492845750296774312683958285328895103924951714614581335271935080544984758915521020573666400515326527666347070519263451035181914359672049632509660711357495347917568372826501566902608854472178972801422220745634459714405813566834390787507806605733850911941239355227826050263837456208733494310233145247140260385457036799430529016085705032748476929922205540309677000665455676724395866164244606216575984805549963143311570463087630678422290201406311549982017841441466438531360412350626034154313408752952746328480366354469068328811269429546678890447943560040626314810683041387231556780150200509293788671183500185981645662811638637422845126279631291011881172709348257745540454917883873423070545966470829909679544452582938733327531503938717204202537397124730163993295235042215386334067447672374277423250278269009400486666433527823461727040977228360245969093152363692058822570180349939568776699835858744474595771365894408468631447935863605676736240532309424005736748559672217613279707195961100618472106053027853417330850408405469676998733276290510543674575112066093319939012320216689606466000002941115350593231111019813731300845765120812231058759346746172396756822032915516256203474447489925198741205715524116501110926537088647147906857448928205522781619816973253794020089760501764850868395368872203898172958807431670343599910091227138566724005789175989539060350481416861015490028150136005712610150098553167995397377067528910837100162586820298759442536484253803528367875015309648047605638796699796027861838080759685914957123092336162638880796964830885805435355681763290854603970577493400558667188227542922474904145217974318880313710703400473517692026118250003748617743975046854588751076354934321243129159275056089274167756952521155189511380332695386203983547008423361999815132837185450420842716317155084507393129503325816257498456425487228183807883491347419076397755026054990267906274449125386490974328438603166481414436596715814096073870026292057246478086225852519648600527099562688750178876887352705821087995788299473305634940240125447659058197559703807672397728384451734656827112249844525019897205538200526325568983413121886419282200343191163376341077746847982736725098660240803233319132455384066979479699423847755739994630004028988261498482320678863997106221452660986252283865244301657317175834262262017918311460927415384933565839141679384102139707298430009514377553361415298319420467393194470055401897988739540343752332365715837254619628781400064079441840056664274604517695658824936822818818466987481845503443162254189989965753514988646700210926098191555475134607855303294552186374579993203014044088673263732628091003663726726924405260668032714256284740647448365048960042112307250669014497903276621846061132913150444415151444312913238130727851105798291659899730041848135087819971154862340502777419155959320717933226062942776219191699787257103438770629643906143313946747495969999798300987779110999988031529253843173605737978374267985469465434174911450839996400545117152374387644358733375462882355585390127482283566618641796135446265248516804690770877014390078475627714411123599399896095488658417573472711131936586006259484553867003252336883567672116412017539610186441359906768624521741883937801126339640659897696525539336029237617774936818544426386849066930799618515612567953582965748441703138502403122986560856797724874466130146080077590511357817654758059143317663055654098748491268147027238756952333314270559618076343595626559133459408863721823194097818908144096201812350348761737744826660210072937306814791348989097551359618298775294841709923706566632806078096395702912588240957227651871434875222848647252741691732500195644957173085638135842738140430690686394579206147271912184038489196972989989451082746542253097082563085721450986796151197457110119520552958278449037135011141495654303682681996776081855627057443534106249962807302219282477768479930310106926664137308188918560471049898362667956333140388819214995225003356656234424890808663571413430315298185040347434952586012687918079500921285515215616867114229862238694568265083062936744279530881756386869838803685473416685683883925010374117198420270963275330205823537909864649884272962058833411777742458117120852158265153874548816739966965256109468203059240281582175157720211147008244095512650882227830420005977929935321925074035866274214750609662234702806721577343753683682197538809520707851328032878660756422577937484807570654396399570946333251173502990443891212052828872169410419192423903162903331878167779355917615775097700576807296723166563898794723714703106125242887948965589814924109684646210069208061615161204588168102959329995405293708484840390191033114924878832922907516358191266019434748658234603519339450693600931219387884556507327123056740958464940439189196047918094198428975981747752264926833613673157977922881912059453320320905174225423501516882254171214158347264366590337130892314126765862172040000108568448398703511620638316447372508104358664539941337170685673244099039915950484681632710235988369226963513425028578467011051816924068562377078550713579754417408690879269677913971935619674114319929500128661771563956794470576808782547541889074157003680586160642628706668378304954599074605077328280735437572061556146525908404618929524251943051477210632791145424473561724180259883643941591684009725594954057564385146260984655998915978183301294243722748053583522290101279615106054055777005724781473665098480133818240880969546787609792041118757275121277378357755989710662216595129258703589298148237942503909426712205351525165602882129879514710238912392245872773146457040023675298833557116618187007849593425259398619778557907154934730277628237021305578449842932420135192559546071367636894439621544076079749949817572873586556568426733121651561761226597274242971377296832926662006056600246961238703740136558400736607458394385832580127940438634868878125987211381003644126367498953836765766887782614236551312809365117054629455435107744820546566554283393710713727965710562455297078989706319634717162014293228024739714600958723058137136044174460442098225336731764961745100187724883809558096444932987267201761114723268447320609483898531560287273523508831742101196293461467775812667826607813981057650708776443586483926572991360616538105462158683501790728797727958467415778050322462560235308184006960375519305918592622717103170507463256770602839824119533142226126370147654062156880049920191241896683515993869842555523379354896277095420946988587147520822040372812850245718110267958584089061900146949477350658200156484316163470006223391635186950589665348480277059159086958967353251873872823727491173648700658893954041167853319406466779351070070959847396723029111654660517530798747268090489759381771747165214864900451542112641399929699292793772421413187190803888062786657000977739442467268954439559795981447737134427560415636250723606469770165422455205772280838739557240310893617413001403482551691773604475963709632043073082551497397110853737680584386356944290136108171982843794533146075277828381521736630384775474192393450746428324470970579104105483355501315477370571118643603849058294897547243477650163323138527807488460774879894684492543640407726549546263875874833009307870927199202076152166565719201149045714221589857501391398323766283296239488974236079921905015549047444524443218970204810004728592911144786967124987342875022094395069135562190578372666436681580450637116537718723416641163886059072473572172304026451147365469241570393651862770856018593692016190146475008278187571104859828335353095556767178699047288912807944065926762520013128967001326426178855310471874201474110645644450651380531980270951766617884588375553995579492656157661171382100988973124489351967199004973449786340086233704134432580459801710412749907998233432347660978711422461957336067566589055259482864520602595250070574655768558703582169652988323127477205648445260026004066341427700409265887444663660418754695080282320772621931051106290047401232030686025356201216116013987064348703282201081204474841344923931705333224677525292980987879027142336364965103030472314281087599803119973224274454892503016614775728716729979189704252065322524383520771649247412221529560632765436697715419275742510121509053962932760961214243424377145171858828031561106984890054291666089214128551487322957998111218788141346680303140057057247088077400831759093656792936074969275695003226718608694146957990702276473662042626701317078926568796708612365397630487872788226076407622675262929225169378018854101836974282502207329409023682848762509715784666955630521291445387830647638945867911951182544241624498442628874022508712296135305551853098517849771012951615140472744573114089398555159836688559277677779920423189688345359918222647347134894331809639908491960240180630177900292631986017780883551306641135271467667094025923788469690065412435105403651335353575048847876993621728098986306372921922114496451356330182355761376692455152610598344799315187657415522463790649004362423949703031608940795364024284995670198285125677714606806730779739401688644357254028167504255283762922305150349011160720514324910517247662444997064321124264016032008305095623796746551660482119988259350070124433974910372297438213234581846668651310563479867427676096925301895114107530445823888237422938811364919300976059264483700948001507694266578945283462135923507873154402370335006963921226788812601789327872094058390554745923795634879154654227910107373154957069570303962137605470950195049414934124642813972763229490190294127044047556679224639093445387825173992067992857295611737206486765970079926111682459173534416238736628924506416294875076999684919484577971333042172115040755142879717674655967859488517870904500911296162294972285998302771484409940161738770003550596659921212776805790258674362254983335149849112089624913555534710011485174130794053164055240410734485814510667233035061230837074112977947980834538695798490948280702368888587297203346090033642800459145521757921969958162459234821813674037281829682863386232500569255591309771848012337239782770607216851007039598997825831937029637187685865830641728600082968226161397527393835640920722884900435902853864286870083926929587571208767783304055640839033473391718129708728099270052454631375605132229850105698271504909085389399055309843370186891856806444657682103791157284523735534024915388976156948655220798793694760832748299172559816988537168642114294093581677077945317431422900547671162336976902202555498890995083416436070689369984701904128583306617159913299879126087724291783771130153104183430132473864546705596970834740182972514539307809961935807556673340386832680264355322874717045022636226465360026220125370124903842787009682577526244063158281413871601365385794741127083630341962949289103850017187777925230542915701876420397665298930775378734104330491718186914121144487194274854910761678283914839921890451617462127007493422057629762265176277030577065396427944827675193706660965637471988003639276549987086909848790372765677140628132644844247517821655113539112911329638970268507962523523510369093243784419134317381909335045351468741069411594343930243120518165576985780757002970022656544413080015390220516380103896998286819870290310051964738597054129243468554637198385615190385285578282061934576891701807806600544734154145134241556926879227135506116336592431522780514174477380228053995156164485027969047869053103004397810094160279329353550676119396571179548500447230417744518524807157094521604466273608273346755392512216606015717183311546440705799823183723278382466283939219338099047879044212128614782564562153274892235558079534021840016322672843844270624168403620870944126900735622752866857773416215369128565640203363680944081019956693901465853061625658838129677626116371757187054369132930368525414033188433195273000174743186383557729521642455784789332321976191867008656369261695985418090670792640545918326535948360917212004979963062697560101281961363676952698198927840550831307829952847662258376028280788850526433874288199926027433099844484933145319410443825818965640353952237084861783999209740527313256595879132479277379046511252083645469704927426529498366371146201570909381341259428870648018823854364831667461121847062613978350569837279028111906595676385293287017217389632309191469127227002893586272812495915893735386199435002678013725111696166308471033542261921911871083528383354301749657465802034618710512809256095962329580865442380527654756635879055638488631812442833196848855373416584488921777014983940549454148944634978950931031408907933246567163433203969311807745524006250564270582339066465233477565480498889060296500829809375270001302758151016015581238765105398598906612514072884690091052529497693454656413945454943428609923764888793184870955181629234984399548263132438105066599071633262581494536430936851854278358155997387340442113701495899767512139883857233182334046368152792648524140821565834785039587733491712547770435412816819817318254704654298846372957891758748325533051012320836299731796879171754876428982087650925500609827184127238547039426460516163490153527728178056868081056523442274899240147964763518051937400493805802854631840224032545737384565821751743712736722940092988967821834973365709565538527680626225223593329008894840766348969115799516780718118212941198177981728491396944252121599811194875372216912053580898560849141749498317397481452695862175989742820954432437249531900050246595090614895700940317301453994375427259398572036319188592594930076297431055961811600119815453786240765181096969978899083125076964961031062667737650370395405005951697493106837529593225311467347337724575499695003439704047745985328757875915203132000879607495407053950190669925124346049639520545267321627407075376097202198128264377645218307949948320648885844956376564686631378422827660995026170515535040795776040255189100484143733753234951003663527960143504831305255167044004500956933978532936397445976601217155798828213769166073079229721349466596691884494797364208592222806442418722102195941626521407745911406581241591700072119641163118752235921777197017319742298320157495862357962036834419537844087783564024200508257517103118880890972375516242278463066072322218916822726108525765358976601070390434967497099585010775719329912992973956439354742549482520818088816254839728209465143190929146575089272253841022350070365130508911426812049569338936747150825808017933480182406782227527939199819135933514712482057065174430051374604486882775395303202457463290501628228753007105085476526462017644223662939457491921883314446510389185762457881605217357531932814098000148540803126220975905180790938271754303343606464457314693197688992907369761844007212020643682768383060847990046784516425806740073200168423959022049311478053430376241713545018618388529831787137862439214535805003059736476612077321702788997559291053569569920353056812520245392756659710891926077642188790579976736668987267763420719438541233098631295411275939712098293905173099550399096366666801212569751461844737051310633370820301789346484733327068960475367193511683125899013351537165466679744708629833536379987134285774004183337995704482675501116691823150130569402857427304906914554026230912733492963119053577628328376238877376911738855551593007980708585407438619688710776850111237477352449941828492313558664569177453361066527327158569458589832241760924429504343268054992080183188501736559951692900738005501247569818318232140839990109567037468308649976461671171877322030502423120209185491951646874496536093248428779673841542209002188217051833855372352385614079080282974708311485386421363755768657029510704818177561260320705008293047293476313790135312043011963503941551202828800089074068923909639799262427463815117775924792607802553447797738493728982135189504860810314587623798381144485738568268251717055803822177839018868718735734032592190298895409097906132866375491365629298242487370486939697501454221732162014851197087049749397638128161687186633404016028902163625358306214307043588311400114327981694165968287646295412072566199776086193232274570342767932066144212657301339699762964614580919823022756619535676437971849811539108870409073107770548219598097167068756420871532752844364278744190687025983750501617730404613002273126501657148920280145882834082015454321879773446041605693506099203848703995729429239635218997176231121447530181720517684593948802806944102138676390886179547901063271493677676666347998429661554271804705544096519968402029537030954331785184580832804828159654830008562620321541769196812882419933116881385007561794009792484423904609271574595893503187381171213316453089212850451070542503199174039159844120828173048540608547573384553929633261523605513808891722591861768753655667248613640926936156041970374682427686980475088850079414964866438492632840785612816734276438238620343080311118584161491045883095457442933439340344843738309721314727879291339864563249017298522595065364904216592458181469624087265999537733500513331972814629899712059776422101948762956622685256106764522194368581052615579184897157679969975842833500517437270237199414012704399330265948565848684245746550225889363838908405540490468721621014143559237986790425215870949077981297920042349227323446109975665595933570081857829597378383956767111211397697320717197603145914602171495368276823146478227522160300141335242098341717411904762960918354496743101341964560589086295265277276533029579018518257716462346124977466216387162671945801301359692322727176522646519300324584518231436755036857411021172999577297409080117029134015554605056911298392673350394475699122583711876306617573623750827558071016028131558967733024459329493459593653804862200142887442604779072124327599777504271729783469476162418532640151046891362673465018565162843609770033873507654923424349239463186163076161969382711396146050273356052076409378290592704827328368822620281092094341906800077862621575707250653271285298392577254063101854069857826512577081428259225850432604985528460508946929564638476629132812033988363143035947456416111035614826928932495832919674703820994828311338711823683592342008954300267680950405351933577389874079709194511073347526461435118804225266566216017781538116505691116860419026013070511445329800085433545858706806700027264528306792381087899405808135475236088443357050204434990035233093809577094816236592126690889335371087592947627168127218607013621241850649730625199468070741462284831328273089308941966712125381217397273525305623460009294495171559720619381422988457469347416813663035185248272674107661763775520113609345994664887037428963509632114146689619680840046860009689140053357854473021474917186343609098360582478579140390353028029472535743239381122826169579190707453466906034004727732203822677017279971525449680749927078589165650314989715814250253916322186204065019419495838941370822788953321560691751263167423166392936837008891041819710705673711985109363251059158992468243707991232145943395395015456464183031320110187431403570468866886925425181738239937063223470483009574609438100725878086347969633496538758647980898062187538021158848324489380880198374680095242820785992802257700935733843297731426059281163043348911930930681767379660339832393161119722649959475161910048572991207669253293639191467821528106580714605992766754314007285570953227937402429468931618256329441955601495492318158714963897249367589752897628001571911507944875084013577942187121377169627273913590998857681938561656502368582925439846716046266447580339972628121972983247861910565911696332277106304215573238338792294514672904337343473592310451006858707445588177374906272296699553832131283084736035303239176141904388598408453769874305220064849210526529665469549940339265566570894768259578287371723278392679181480439256274260072550910520767983675217466858848069774781408437594083020283704186030599648360786551332349026624360216102679052958045417743606251726802045414223638457196154794380149110847481816409884373698288385877453596927455983349245003246538997869100180216108927099857765628625734680081111690549235715762878482406071351690194948713737347993399659845223372055701100653240566276892632133059518728350187286779119869799337929263646960174530606842847445745680394987520654929298101539547796841162132384653244002878877567771780288497724220132459006247688765566530793682002299291635898890939944659591905288647754418025673540960754866917612654480057757554060121452099371849325261281485161825309232444640773353994518239903234425731388352521397848513108033595349769940525240867097404350175259204205719733553696985922409699494461568529657124369107066219020880211082036168419824049616613000306184938842480195203133736193723109557672531571714565428085153121129548471221512504418453603528024090974568214347597028547826727464180385292963201246963755333441162233512865800608225357311262155929733327892241143873458378485457248064311365486937360113940591917225755719300655467753139299252910490336909476012161180048145018624419483982490860297221224582994436077726498206649313551027806189576309915267299601150451644743838284388133334687357790329100114805891616891652205192074639244767772706178302746528635475188587776287243570891266144396469034302273052990898842195179595591950741025722594587376595595099695425799598781975289265434456323992924797584263506619228457938379791668930534328246805126652616592622828395254295046006170775741613395705732523481296270104902201577897383120983148870210518509829356585751279713011542706434283007393490895949215997053708648593067985923522176068843760374361859724036434155096335072686854227317608639379234145828361092886768966031707953008296441379329157586741544869364001555586765015700696020778719599599651858016825987911359105848294161700103043041305134017105135916449565566002664988786679291096353758287965692322805703092481738524301519287183299008631609943435318959466283458318234433304075307246876352757520199667323285129851674890267766950058835726237546461563492247162727979011563041270486827296455484996272882520203345646714040742626104612691777175925960353167016156553713879134340095850939022187026828162804912594232117941279289525413562551749311501355839284296855155249283881343727854929741338704230950082674024794131762883181219363850467293135318403313437785360659696735792193444903198243046543601840124829190593120625896543981254792987652532590582236656718895213658533341816092354623181553151980670020860127270605560638196873105544280225449028487243552509306449957387896420025796293553378274514970413638701091122586175612416303119842210276060061034154328076203643029020466804470402276947920258866336092628651858074375332659443209119518048220877905860936929855697542892807542490355081307814359630685384999204653096621285482633233023718259945421089721018491794230732038943846347643780765670800884354691996216908034476706869131756293349356892988670294392381800676924194480235499803630919132268245501085970518319171267204316984024997840746346458291162714296160932171824588206786821166457935087780368461460527217446035770068293532482344415628373911835220836046526100767673195670991634990034879456708880007651672131016915715426314075461131856352554156230430712265071708330804044146918088488350738805154427861657781480122195213899264252975187789107199714852023690029778638037253702015834352656037780326541896138843037944562950209875718478358226751585133940949317626008939162206003375518145580529079503658740890823813204651946743474157291496858044737344684734676015413846785153923619284180566622590665871318372024811431841598275348553910963821716799928485736110992371015874037591196282922524380473025409844589644022914848887577896492154368587569191121298639576913920549858755161175411110467315189606556355916529503791704619826096189083949356981993889999408329726061250895699511464409960502181360863925721158776913323778348895857359898835859366437868158466431224030469171588404891402035772547961493956822062028379041348773057906591229727353860525613755741296244886878836764607216585049243746938078682653746099961643543311374180472749555665331403925361865895490687645556253440549499728824840899183881005629303522966210105320581754772458535412891892423418909362604720720739007131437036376446647985212720088854274558376816366182371329259318362299734863801885123541978802527408162942854856771864021870179995295946149374272030811858197973557354398498726978272185083218884639509496416850231642195303009437427419657733154827215359453605819123777648640963896198796332975582673028216587348682371020944792416540327580288805486064922821382192769558243653348755318065369456272306980894580615127303135655105894821810877104121932740769693557563718936475929878093561137061184960764344663916742028748100997073543893295202607319194198257168664009421275904397752370682707286380639445361577660047713433118749849571236552842001515788832608022368440729419005075366025088254383699266027938920475406855214493123958956325332202363772506503630347844196536200784607063226063866972711194877823959832909070303708945312718372934037761105115861706421798781222381558157987233580481334184655966241555937738227638829884115375506985646247225603164820483382005818159435180738833090138945760608249115610680922096061591131563024384615769644848500534588108502791513110003800807308931904063142726964740509624750904480472360604085914770219751221632504404606716231120701399753575560321587993908025839505646938765434556540526739405602512862587834333609867218189389545739996601929237220667704702401881211036346071498282146026710302390656888390511292554588909914246118986059335919097405545683183730952937116946984564066958411284922988504792603074880653306830364526030918066674641148263941644751591949149986420184093736620806437552420885402034245171781177384460976167008955843705874344816796289609271376537246917631994353164389225052034027437860441106069141216705876008684160011231451190787370255688496151679014624578728396347663972449023714583175955078096179593627163428875766664172401822811320819405384079138034243794297146930779204477259137788054800349242212715747086471766665825952417146494502612961912840050480543334502460430342097189026269202702599109969644633840640909233069688662123042307783279223816208719651149704036974267265572555429968265913299127701146984034355308903099182483945956582517634548778689846204182746705426339721665900459949152650292653669389016522462514815643688711107915761446853486291100657950014697667194123261590283442482380248740461222267471432139103301998612900565355989990267612938426781811924525893220812025905818037082214634418753968590681033652387908495667899192274073338658083409968572886490747857017065830409478846473813760488567857912820840450327920353775939322023937885853288777553443211452312304817789189001284862291380188091753325043876768024684483564048685434444249800480084967559708312333471162890420211460386022166452014126771271258895081694809427195946242521352185864897083109941026675539057243516400401121270024323083879522106212369739718672536018703514458335323482545270137779828360801858396013881544880490039849023415455920736868642749256019120997072365822969244208275981406509408883422974677310986678257577420404612718711885718915899091532168696771453496423864329579312624320161579023753116454724733531271417361952131851004421452608284259028277466809208220891809633243033188727374652521008430916323924335082540914185450978265919519140257532450168984316878953777214304377789279410650835356671638722494203927150506136850270460165287453390292693975825401335477339802933401467015039111665568376452009190981486104497008538287112544117710971864474114082036650599563503085559283143603307943302576802230149378523861859466891515227373374945948698681572054045105518102067311995106347137248428631304056134811812147369894395370160517446686292373309627880321676003197434108562692269807440091414201883101395365881734874182993569187105307803461460247102082336454330958571868764516337534370867768338125751836840236884559897571877034453710062478743840878594935520333796137697946251687942767463658308907007558308520956812063720559084980957058189624308155650644532516867786869167076586539645590397216196054515986848947354744963137146854785991816036394290082288972414641712166313665581959821275477359341570003736221507021087723682689277491699477792805273696727963527070153806552787865946916811342197993767366395175079675314735223368274981973098230782658003660182289592940569727591266890775184683586999085656974050153657155983297180854313696007569824257760948588830010298071543451363696897515644029215505773396429908500819505826444321604072125743882043446847375582094163489740760473950432344340394674761043060460184242947259997803211934162237431738850448133630128375791096554399941825746123599275515844583312852742185976884373742027136723717557889740643240315859064901225505782037781431218466742761540371334375463989836106598282049317659502698253337992375125427433614835841841635455134398328544427393574603112736011540313990308501433184432954891423742959354343499394968319737304307233830697180176412929943447731641799304920489772905635300456496644165137079537992409435158303623844082495010702027921786502393351647199071707522607176329435083265649676865942591803361481902276069934369003872404369087111484015081920851519593790719308634490789456272673252964300752254833574872431926306008236805385137814674172103884256599697817950895642342740557629233295209149362822706322452820440567210568249548074920144155408805352414624436514375572874943795518064911582174016528477287944240145924545297673394007476861649305246790539609624385217740205509728122775383509546083498745446153419284061386036651259239161242052267254054135340428850277795168254306804485116255679436930556652363311455963383767327385509778185589537615212164109324465808132937319698834024689235504081853300080335884823501843777739316863293005206933270352706511117877331893594266910144316757481460135006352920071722226957682661365994219578884937142043293052348461357325385765273562968546441591296313035906498326460298810485439692692953405007988925369778416161074791443967701464449401861412016423210124567011478523582897549651309784268288843237143373509995467851667293073953949485917382611769551295463439718130372626202714213414602674894793833346157149877714874398217542306718355493172064742704573911738155841871783896400309117104565233534852303872269086496653408809575840160648957260844634284771420896862084467171164247965624445916613224373420800099438213673065459682460228022147376230175594066439401150486635517707590308460612173084594312513434283554150545700427946595212911814734988155063116482579971708459369451283941560695011844200760555388907206198058943040585889335160534795682559239310955591690699266654986940809448365270156588538685045817282404264611472050761569843093376740335446707362041889627339971386678192174831544046590006587334788234119408199482639625499885827071629722221863968721829586600034440290661404845539227902289111090897523094313303414294851472110454129472131454515373317171283246145028570714807143920572179409617658408964511927178365025073007296809141109393734854272615643953957207761324554204089531472173404615130661203725575361291152876099783395237177149391040473379354446637523054227724788228533058399400717423811502653538764155315490954389266852425178117419996180463062822919496131732109849767401414761662570640143826169136544427590769200051190853631373888115636763876526348261942535519613082111908603951429858322576424570029866571345856109590420658156435212523650975520799093221490645759520657920638999198051461443381205852459360892161799411108256851361939106409758061236121155325256472459728265294904808947068289021926554916977089850730126293557461681724696090397831022114848003165775894149853324091081556067009301327162819435866638582569004062494803566957976535378818338431198315313710732112008328046653224581092521738652108562231382299218871792224966952956859883132723911957726776824522915517596495363987977950375485951699252373867749416372048427692234852527280014719645759855486346393348256924215855191678108116903123955335786068444364001329994938851044938902741541866104502246331662412388588647649913124566093293188140173165337045736814730923210995932171441232656525134494296680404715320020124092120292039361467330366183266471230097388579554037231022069594068755694631069191193027961076497608504319749075115548636374930505009655779907136086240375813388014881540006280899868718217002756718160233260707607224222686203907075195475908394284716913106645797271400872677021887919872030553408103476139198282804455394435076332833040331144913582872658852148695097299893767431693003126038275226429286031589158826289358087991463862871596896254806987391936959174660125325162352475265095286862370681876143589827455607230046314782507835583188142698446236568208841758058439718557336285605144284993702998023376055107535163064553597765477255115653911756098189959705075632893963498034249804619171332910606062343331734008261894866256253937236737106380901499566625430787085079249615163123173399835100635773499182721980114093511015490846011594367029956494956038152633203931078770360496363202508691462589513502276364879690223588510068416972424415719025829351347930210437294800776725393364518059965466627065860406381623602249232122489724342805893516794218243591794262108213214384819300900015822918065347272365577176035726260191858543019071917742420914892855050325382634787323806781969505855105985106088707188104907001523177919952224542807227301377774454265410646857048650107911909624421533481717020283292750581788502231692393109814278825713562902080715967326176455492609861821235935664117919262883708429824215498281252867024667430533897623192084018835412937338973453647337297051585807702414250827421508591000017904901205876828355640700838526779029421270353724282064935338174950334820996614882060172622272100537457847534898652321136611339750049353542451279406262185921154541117347823088263845577606803368162607957004062906077930853422989731634053643365915554623569107789838645706854725410010455170117993701781188348005089358678607778990518472484221813861734299433307470759954788416412834179313685850225854537210957102455486460983346053148741510246841579328112373914048246105199601169412975608377506758626350535978246572705500942535235348909863714910668189017983507995063034291619499601793233228442974620135017808611537829068654652942648932988818356409820551792599125950602009712334214565663232619401676387519860994800366280575103401122948932519048856062856976824298973259101857084507933110770136304953336222135515771565805578133640443712046196620842786171540289236720976386362038768223644191268238134791115385289103945787492062889360803712755589162899142446230657070378512291929428557494660656464359948784899800930816666287776841671746660036481877527059546702496527006845433139393168509132259267272189739262879566821742249432327862089576059076343917044051035417682349950957308437011462948637518423406342291589462502851363545466357915805210512261917910239627136692918321537737148051229147092562858046308861552160426721732032623592176143316670945033081117504000582442332536115453006919847231230057389071601800303664846567762123520990591115778416218859011010975460657648074684001598241858815527949703942330751913249004940463385375967933566783315909259983631486604250566185097693587610471094902979671166412474152262864409637612527157917777068585314635903478100553727459252523620811850910445818021108004325794276289349574005026371991232055902718135354968957876094707773894980374150271626803894781012018034854450326213012660486321551554475087808481621245634497965397348464099592008289059688450507371677256820354539021052403876560364937547995843165787414257012553565577182376111811038867994437246839059951608608913911474788100287360518236281818493021817205694415672374117246238741714236403093162791352601585418579253264988525454515920862012828614663465091314804112663741581556251104156914881330175799988457959522414624848655705977012305762568517874314334422297768775592654640838366633295731556655527981556441654844581124120122887374127181446778987051063730053052094183484816014359879291835928928117049810469065443945212115942056176143710761861932319783346714792219191256064494859555526603020802685251647050239476654228388531860104023756475282039966725703196424081156100933518787632140744328935600688655488091928301012206264325534987959129401165221148105752561023744911414638573126273697030959773469281514384602368960344174045843197379121027112775827128643006468418984944222788268919115084589597003255652044170521371312847064593718838624684220173685100090992248776502848543489027155027764544821498117490530008193523819798037170144256581628685340110236230290630247884401069856518007622259468723193417516737681811370522532146394915996917347999862003456316065498330144338820067263367058758417347504672119089936889054361101353533311348078503742913313728163900632291544071046568221393486752339329155257004359908002866052178674704181218223066260167570951095199469533226354301005736878224994873929856864682057490231152410624561256404024574192599307113428419535332085008238170050831846575404541890001943031416752262566825677289529929445862875689862678000765716828955422265997294356484820276034853254901936848377689513035183030331286406510222531077151246534897194583916044240768901442569892775665072847905648173907940826530261065182229793866545307680759126463719461996360274205762049904791161400565547591645710987477779142250655022364221195078924143794506275922207065254268701349251007364257298447037269055410894887276376421123358360997706056864594347564915696938804064561296622809719613581509211561763187800155436043526863074736550807030795158044618273957134845853900409072184757239936693645512015478580072964404350314895111674269571672925306651028907136983009173840822820646929836459961347636286224567715324352448874826713405171035121242584449866793745753715936036332256483898570446846518570032770388112870397582308264170517714816603116845008429038073079050849603680836670392494678493681729764055233138457395427383968404931901082656762349744963516038786697667683549280565167372220756605379416075524514864028285868249002740473601582811208695378022394957263668983093725082357758901982658337489371572952086612753128718836779297320822553375209734053595378326858204968005294940161973646102582696088674252223656294339090583665366725425361705118125362875527914453113278339674426977510149496226099985425856583397162719876313930383801496894295793733790398367869328580082542833214549787998177752642656019838193825223849261529584579458478243484447164436779498438001260703263409072702710637718598964822623106743387341268770590373659353128955309985396637638649429129895331504053307318656850543660062005148270362930777470856469976671652101664276146938559167386606170588728583507163426543245912516941687184648157092112694977573589439857241086949897069692820036551012712405749561486661602759720622031636883732554207975686824163260264704952593311993160172991842135167446824807975315885519737602148782680179771734749229304426676241753603616797918592745843629666531899075254999458357429762157052522952841601080522688665734034130884818731699872422328228664029048281572914950350442476281435433071336105525094081321722334809062192230367924829421537185921781274099504240513319917759929079160094248300865597411176842386667247486117641366865042303289208541226358844852169733551127858951549018175561147208834654671047074740508459992829641135022012723861009062799077238314873937531986436174244176937672305529560061997781893198202008206145181546072064404685028236497043567974223608185174220711011373417212361713461643786358348521474145408347719191688949926201422920917903631028700277353695496802181936241246917454787938947647565165948060451808179018921443309591345678817025942051767046925942841266667722532917762958191394087466623759163782395627711828656905075661540193039303585787855549281210884692916080935125134471859348108959093346539629421724742415944482119877240699525544123263365741674161098385850337997817456805265984771910045415895408407339405751896610267208471323037492459070412075828388413199954666178038355820708979514730072756812065100393593797117538318182881036090861328477588337923746737592768939955219002540985864265569417160425376053381301737076881060674426338184112944718738605352597314378301499029656400924455767595033535058374632522039200054516461074870252386385830867159862278072790470921818344451136363086798311753587666484674013128985842345544585909959257229940743223954337411546085883325790604141874905562203437765532760060532145141175267487624649773948878820445348274804262890468855503985625798111349313679241324982067843719404523613132269516986695370660511413915317623510415401015586525553854801957879202035436607847385628287484770944718248640752673011862219571462465690131698540973360935982323053063293232124349468411270245370605825370962602421271230317718531619566909739461100993939659935209156594443668957478451193351830742915740937624352836496158641450437853059469410974198713328168067784769457749320316515988568931311251396636996676790263978528838337463022899088718949462230284185076462182798132836428804498509241136987892216490414232396951498829963794466775494950077494168497860088886517087344846568830829060363724705976969670757136818954071525816163772250856450501474256899647807067965472644641337885287171716142757152237125691858705235197215264399304719843798771461420019879745128610277983982832962390350668147748728631247821447297147619085330340457695976133446066972775047313533706479879417690822533410144344593092513089883685061457738335151112337681733846006465671321879317225617469688919873526268904074501204366172971348390297883608117874327000904972680810017238060496783208749097668816364540486127042966781936376414462424115419855573562611221098278099126041767703715360926045057995126909145047235833020423799556427031764865856071663848249061706762659397895559158237063203755309359687462199028837665125426855171909218320448853850425898500246309772921707476118431590163048515449020968102506594161019273954471982057313303777339904160462128426945440638608085732605204167003939050502366572850396737330710556210263641889321864938234072413714474760987883361910987737996841960924406314693752071326767401652182678643023936317241410343873254979902981814968674350507774273278222132693928801108810252188954827539188198330186595415923164609202712604117087419200191515044985089040390357846789866900943734862049140304270513684755291083754667230488144580444353576891782244319802541841837146572668393228022108223535891088098797791150213242574380063508272305880217245940691876382154744753262388686053549666372844357878345593539777218959011733312912403522195748350015459100380811560387496276545929535325512341666649486595620480260870183311331571214935264107639564445385772049995121276320065402036325759684760062398106432740280801712723705863972465175617195871254885833853778907354373415436804709815739033685367078360891549435545485384764701205805770850461284225465886068427002374631258480123340046942669424911603098641525750736776843058499573153439121484371121086526704464982681399726139576554419848845625765883006997598456283971587056473122603618178152191836805834528215976891063296301732896108864136748901754499552562114595123844987802679159638690742568371524645012414377680826077552667811536727165863682519420345731588682099338417040649045098742943165669582091399508805283460781458085381331903611217556080991161333026011912390509511039328003960363951278365425497880223119851456915594146835194393953377343337344020916115438104188146531804872027831380365720297815577298169782703252396048305401178113332501289350212316631788371282403898199252889667683478167035728428977351276116700587118201405469134181386686041600810625424793933742099398362115837251157763346317215486921461012830255518592024142682698527937424360084301219315449418563737928583064087370069272023625511069549748293292698124666764319841280475656005705025962431269415131865470052918700295475024915111947177558896618654794663020077855821912943310710173722198515092367465267972664263313262219366727074638076174275814768936075590244785671889367511082157625724813462154250576399045246587556325903062491607002511109882082799151143214195342455090786044478691503619220149066691677441998789598796021283771679170901066186216291792134120889439876705942297232491339877480257303513257029559008743122105555342754776985998508429421478297900326381627694254552258789508724523853658735102197643354978549373658097622851396640793581749392307082936578723111963943764503587655094533950375117277590695969730694659095043274370316720288749673390063243898927988445141116673181601322086368416895593380013791554336857380191263293595997949126827921487520875954829309342001708242923240020967348555423483370884836329281324220857025072670353785329747278468398350978814272014084135253133718730954623090010177741627105768590969699811096237433830502222747847365407923426383663210998479679885286110838109599263463120199179490992404055868836585498409638652457034560788003788431767104921056210228937167209556464215372885773257314530093499667030216554263474490255936833111848440412825064027529076768037412102383846096318256644432550682877764846896884519514530160295791132025147642702949035639103989616091578753014168677993048833943421865228480441733462439511313820439511720513675453062134379292940916224468226754063448296227262709808584309582556108607710896960035500010588613777557371161249998436814348227774284889425700302661591645385260109004354741439110227285070378691160956032236164283642546262041220912185836753616661423752425684858392731575235541799406585626854800632076204238775302062454564771744090325920082733365563773155882922724939097520826936016985337581519491424491386383967586230401264634241974155964440200505793025936119948855952136306149071417731670517064401392151029568008507243410505225592164209365803333148733371868220812387750990046433126205029668470347010115623134370486769508916343551349338186964589445108915841439803520068834412135283948893979177854983914479251515713770767278337598525865551493919488195768128361121193008038540894918647745679958877979943695324331188125615074731089452784866747560295722245711141894801666195884598934399294938305576595123944731521291140722176229430137839761194647268213948515848800604889988217183743460393686008502352744027627649339344741143334697408807464592534516926897165396043295957843863410484389211381413891184091823501371476607339585710612053670933475706710353753269051751081970090553822395092136360325430423598195566760659921199180750101964982064391151600797405577338834808773539862821546274497968750548483739490435671726845007048377357977123727497750643520169759749805099394898354328309548225355232502415445472704608180357833627825086257299230255929721539299675874013604334994443871950342454928538018458011507637488280096148389404997235909331942904100494617965998538599769509368936100423404557897485577864057486217329257789544149110915295558503248102180371831157521356150701665646934209675833719441638325336074316925751462204794024764724189230032169781543324358568966574278617990880945557677572229499365186379778377072980762180239582969325670589788578344901350304747164415806771950841133325451033939234294532643713450521868732287585250285362315623369434326032239671383031401476777446796638125219940174859561582364198557682369467913599176611690503841603975921786413672520420731738546986267239432108066792520562136237214791277678252703854718926556130921353185758803538216899926188470173715876012514770170460527687800164455457902733705235470302206517366558575565787881275227121097971309786406672129132201744273945250004485268619822454858325312804061677494583398058881453120069163325884703399783813481794687972244124531569244612360181122018583476451291093718417246126072763665913348457744626069950386321295463293186261298391091333251719658294364650029106448220594401587861570241561237821981074314555473005191704513505438794752575041589706633991832761138280877157993033411898886883764903063489150974792821106160918596891466917266691148071810194121781172843685596682126529469386348243085181268580042495661074338060014480278840242519146733755641995302514666862659114948319438506795545488595428121494417914280324728754540564781705350769639923363087966296993885775235213602384884917130261425414534770363549012254958254797854386522824043790506666548857442427194744200586845208027433428998640256178763516137097240054092180574488623790054861630993466164694644290277911285426666795650842444354127459794925865365189421876992912175220244701526163374160969675590953807640508307894007436469310309078158189219645805779174589654289118600355545877826374127282793148695276473790795494532619831361297896376714551884547916984238499412882725205286023375323120455701840796713905752552148563602737906515730074685540200008814440827986861977498271687088639848013846721343539315484338527582193143163160401999426014988534097010190473892700269433602762856420245434434999568896482027307757112690316712205244140094227794856589559922284870844304153495412578445648324488011148364511639313645379074678238208521967833126947732746995527348110824303510823838710271583116761540683149424352670769332305508480870916618218712718622009648945552007046097501607522787316619378013990234792098000704158815359133386285686061831132424772944838244904170023504523414860364004044209514984408012212462225677404762955481583511295895219349028258474755089253583105307748827456568950882012707709517944959867201853555883511857667300429755881107689936752376054495324046836946858723563259956354353109367693067870656378234535245616899181902819302177082544290852192456660517746754251567574739376513466499639639594706552760689812801417732520910493131787654032946775012826439805567242223267389791716183113072098212100965183404689144393199807075706831563172020147204363758546904435941379620253486546818314778644169859659110441566763467390049252978145987180010107350911760001968790912319366009839296073150280041315316816114539367961276226221261300560826077605238833628887567222152964836102838833556792994781731341453378733186948998056581644745918068464107064519413495825911894581529134352261714598423839289435607721355625130898835221886916756616749031594012027959369073306106262523834074159551686129874097446604768195671997899547659986933477400123145511061890801126158186645930604929249651300978431658473832906511730419897685151231495647510527371167549927872348167240355217580755014922081376901460016769418326559795353436951356389783542677101980105125307531020083061369551426957759456874434910501730495427642573906447987852501398231560313212147860194538649671876186441955184537242822699319010043143935991151725218947796596159185610705502668095660254207356907316132702920781597825970961106604210784262607971391529371252544279170860934269636723036391079955122528260880344998484644090694630476285222772273779273108671238508031736711651099756937078549097061604213435582752249620728571815088352108226579307666143429664739582342223291615023245293096622626528079132296618197088238135864603791307825877043128452281811929644593224570494313448860557869100801408239775034150256530813132580188100940155238590185196465439052328247649118213630267300706306715249894022003180299362656016782774111509342804176150852626800169891858640840979834022174324869369083147850032912292169846301102695036864954219210635636911861021381843355637358522781077817058902939543268583523010185397416718999634616732031009687119015181137580660738914007559128750051264781649683948847840952175567032487705389862888085973361708359559782281949820627860750951057852076427110580092817183994518626747546738318175228424685458876770013275581506625785911291453728335700181827018242486940496434156815562524059407254167129721385578187994352623692947754922315694946399381313128807629428344303237943965738186476309571366038796128194155163613498732590050404126691674511479209945967183885024109682862410007581862301372859403315230367625234600487299091298322294461445687429683828937580867367951760419826572414984716267092943839531262247769555263747491506232308698036455178408238059041535173903416552931188423527526712412332467578618936129630039826816689016068129930709970110886109561312859934757216592629782595873077396011708952057320996367673246724481388920457352211022089223063634568126825634884041581007128065795798293131453751204634639109270124342374583297354660489822664876179273675235028902715605055276833813281336839150301118894838929366094972127629771507932327600328060225679780189079241701216916802706654872859436780785726136960641913097096520557986825398592926993956665294475640835043618944824439850679279959867831001599558262578823081267840256043260561903584410154570321151261401816589173289496631715336353458334464074698304303391447104902962934879658604612026539505985303073081730233710035671750466075433939505556114590988675996984680993690295578926837901951402459638801112501060682852488471917021878781859982094116494831841999918798255472590450995101404439285115074576284069115358238400027532937468678466834443567692074863399409055816627490277271934317146337931967874128465536552062832085070926788779276010559099692439978117290430650335511159452991090305664841380857642699531138429994746410826020859742432390589123855764782636358972590333538158441925437403962931766720755547931722696272702225501827134921171378924945678926637719832084270585639079301040043069314648182117162920427240081771336785091030689380452913457285977761949816559000745313849955641084862428424859613296640486784977560714199269615394683089500061760234931353937340834773472823307742839768623445317340896835810033763046695169356408948534097311345261089423635414706541865022817388400626656438134500532756507709541171751541550308433885020075775182532073600338301291139954701604050315219355512915274236034532529130210282148247201868138372811780910414062811448639048452579657951846322972333791429624928599029558802466929657738756790283681439870457991837852578598533790894703378717502110103682382716773162975263541012816826020694114074492980696234509499621555124853796156141886165168247971214651037343803921724897686546076825677656475652041880855721031282873505863060638626679392253827347677921929752576278446932569421698012865994656901433298676078417802517964505129001313241160340610861255762878238075325820857598584438364496202867629081466385391867038043908103945578961436769019589241059053780416042379786951093419173142618855281799759480120431720921815783600118253788560523086633693455998714891193257213537410179877921258458634925520568652516361542233634534998420002820117713553266435365211127711680997446692126081364255909258433571412854470919499538124165676151902182408296449061115171323333827063644034782521516865715651225277755006273722139834845500978564306975647369972137340022922447300849651412556503005106077601941940399276655744473360174860014093190321774977824788838890386873279890552339404447324645018954211870418764925859616262001386088423579280779997930648697634566418567060774090358822012177494247616856722447000217077369852572244945032722017123556884143194435776290391598861359253853639603692741059684119556969272470673022824085453808811747182595668984376632365879191178181511359350963457226838581543301849633696483755393395691572786046128010106783932330215671574414985398438286887145730014305291452573892774125134695478862628365860965704236646197847300850274968200872935315793022906451293856938471977074740910096304203003188692659392139713421659099922956973572527468816248047936504023590166634402809639519829021226744475901708724636922512834446330250259291449091801987858372126218834071298159020064343405187018877127385922433955337259075968329372163921013889040775743770009556188162095506382987643499333695554478269866475072285807171640247769941684506524495424823208718250082169118530206101969597016152216992463424448587086579090289147299787772847854853913565718780716297533379742487737185178573752526794979425035593479945899070959428697697175964048038879861825586919869738943614809086542300628594849322330994929311165447849380015281447802375957088727674923117236148966637515723996631024116903962292086326231693871557207267225316387822928429013039215284626010570732372384567330081064530046302205556201547320418478174522641858810660707927055570811717313130903220952610347735306033320582994357365472310922984190457479695408462158499987255535671171895940970735741069603056528774471229311808097514667736285098456118945769529304069094259376380600275619914430757488591274002621722554781807309070722797155510145578265834480829259895873247994741973960741899154020743411188147683700118758432924787097539428601876969862218273165569967231668145798834009152755420131217110074287636206311200611586017324420493282830812627265428315564643585826172566146320037135746105921477263426980194276809501476156889174388655109271229500860419491540603472593172035258424377442104786098205543659551492773123092106860740550786811347462707483049201187950324555024305406791522070718550551412803139344603777993209294841273498195535027342735912240584953429379612374957903247867197604470015182370588599093080543558733939306066711366000403294022084921685803412499005483940334201400185489488680012217249456742212514105352552215095351640610831072511616407991130457840484879271462778224492943473778161037763307954857806143574912385944497076620956622468937006656674122376554038163730771544164413808711662357604783298986422993139402781254604346028437410559764980788205369484142982129025132989897551184862164356087109940799093498071771126103815788021866900094105291091045349223570715751460391922612846218408092163647280251734723808100980352464231989804005161941413103278195783849739301869711855672795004701595455793557143189972055382525465688737158195280836842487586697246448382511201829657620469915849173782956898391290871750475445936422435860064936212286779748798640195882607585672522725254135765655773498748198676167492737823785696733802156968021434053021087286341849697255553211075243048079043642935040159469475832564767279588785529120186796381074922196005981839219034941284085095784200972980547096095352726368462903003955413343870439899057923859181414124429347225906833681982078129068743740995647617481865583786910335788567808695533420872440076330276217412144928325366704681782055672384548447904243708510363688500128551215229124811637508989834919080668595263172319986178650547956723946015025333317332907931295195718902739582943978895200670412321246445036291033215592190706965313077217703440178537463420082227836734837780257900540084485532731490740225553427956782022329132418766883727423966682148552304278650082870627750989743862269003419008314077661881334503317234735941322253973278865542505591162016682296373049935196517672187005179941306373736060917363018478615741783414415086320817815530900322446467295551842119404391842426184984672426053764622064635869247871840167438931976724957005824647964766343990052772736652845497776757401950842166169958175606057766804587283255722136285465211628022376258611593063530502039219501136589041985558927427818889301875495347345733067935533176207278488254536969342620003380050139988830618100012359525811222639659162007697947836586300259845511045372982898460686336515734764048386686757930946399197139348818843185207132509454332045672077297240175836015727949019702842109096520773347544552827083216276158349235334153888363398295661010329301951736235483825590065267670096391411443161824244505744700878154999144614377649915952922796963249119431310676155027927089219035593828961706507017709900621256864806656053797712880818074219516379175949837347124959079983992386199592985227854498809219706911220909045530365907387295315256608352820536994872749654347221324308561054061531493219390714881626791208609160866778537481266898837936307194294089690707215249118196284413490116977813291126299540575076501471369370019385022844862421389875252456481330232959701042976844148347333944102058178277655343755252460952005089788146247183139526229525881960396036694742947718651379566477206348751052432538972174872422529141392570822765274939723341044309070256587541415957827571847337143641776472348861528941603079136322564818597217489555901371959183799586859243570433180372332245857026185496415710680195892750152176851676729742428949597644217101276725816030837047717618941009822279169827498429479777095691635950760829876676797314660046177328666195892447573655274031654328338366016519070526722716223898199331729699636923278465244888224794781746936036512803941025085897823686241634238891076055144426111140739870261101593185347603878787871863559122603736319817039685050243785293496620559173805695690669752560527461700274792532251403297065296502248758724535111767775395655962126494564953772331963277801524035887817006431044069634816158867905891938242944771895574788386421839178170033834049184414561740573857275555472630061566466501273518828283084969646259067438330404949718415271661286548587764920734701264419654613621469930329603596547516875358479727039226920272573251904191036086474857828601595826873311004639747790475076128530107704776569146652034045552550117619244686849254744998329661606439786688733102618732698571789786093766576006615263058421819853976030577615062032726950321606637972213760811603274004424311076790050405633151791796780672491914552431542154473592599804106429217226211885314230612911428994044656425934283604741760121000036095749243505982450004998548357606724396845860571687956851145980761576739382963475817303222283017759307816801324230971004047926621832112035857165808440852016388614807029509664643466740148046029606724608238563504056645144254816083431220502060156127054594971005906599510336888004917426038788655965340299531772962512309383896080313868158101213416599776098276370707488979307042435601190681888499972981945365277859633860417621542041420120895301088133032978151266697563194519228007946631868936229259326089370887956163402754773591043380420928429791126637042425418832629971401173595144160263752094001957607920262327364288837174285226058391100444059866664377257192421458954667017932723149678377465773450518463785737964721250031028865049925579771590894912149357126180749399575055486872166321153580800687337691991591414215044251179356535961932356720593262533926833396482353387582781087098830896124281649271577427544675849255688866402591302168046466918149559798259144793101157008260741753997112299112731682798857690231923806690318464633816917182483032007307849227634572710027027149778825426244535803066511776716543458191845885603126696138323726072804110912411324798187680026578659161725451331451386091738301608611973595637285568931922234298287629048877367857764846789908063843366834824734466392142704174891624732251812857595618318963165016690285482501207534268813623513725780977259370095687024337043825983749363019681534714694613220234267436890472032706702311008004421027149566309368786356423347262703607706770070271596435312808142782386838059457957089424782439957843952168237969432139123638287500770248338119741632438934567722766163505738256578019080108080473901830975961919686315850299437985407083352374854386540849969407646537791247132870186831014979689749065673108862968208829714875674272756119302653791429497839081506297937204100167203111346584331667681798960342363825188085314326595774214620537830398838420029673875287873024388007056037321082453882153583730452910564526817437437651447208111895173327020591834505884752234054029843950956626441332137138068323137549602355995119119540612510871682272833083988904973841147517639281127341600780963368163221320814953278385474157127106281341105723834946239583170421321787583765266721753581241225004874675969435982256532392023439936531848096837873156880819917507175596204334542489520932422342514724365044102787559724481964683700043472058590072212642094175374737140245640989166513640615212879549743685011622819410788841191852133298137616110789927748202656863820517700767603329039596543211573513338886860922370382694991457537809285808282923246239162523487642248257980951195954853479402090578330859077076892443701407783352645178577409366058116518577120332197917215398875348309099372957302739016232254361055289876342529112012232278181452902923574004825208646583670095541215919664547883585123795735412511942224064112199301541254499673991126702256173533439958126261629812623544352749984118534147160074544829518332287139850563144245456239165716173960373797630185389433424766123299445216038753349892396410987409189524063150099693076138007172150345040420447549534976472113654222653459008065342059697797932000804644001841411399197478902039042873999543003157987660223532753930998750459784288017967128487481460667917728406048611988416667937419536971335753859860421224994129212251529271025672534996386780552805421062432373022315277255325363071122313679452319140702469414567410341977694007419531256266403206275154499570578838334592074853923739844504454070563491448112564194389558177636167176910374931664221311506092092065600282170390392458381119679065688326015928201179741814109065900171264368929672691510986710612918838899567774336228070415799321079225868016842336973808745606007672055661672674619496088754455418781401422957149997043233070258473443502567761151567656952710206715966016375837803339458133185506150493052684201703848045516846275618670123703196347596448865134772065124749543824803736583729902310807709062719197999719733986577961708006538320729585335226221437670343475403854664649891219536727243126428877326457951036423548823157436539051123428660903582313409476116117398687895025387866751710409931346454777128053648949516442527359390916493391012627543393806294981406341379478599318164725440957835254614252285735778041086738685976129489037026732483844196863661373057488873633513136297906697393419174954889853885938572486996312846882915567864424172136849585839930042423771397139999813982678776521851049995853480890728594721807889382886808016987433636783453702212093318986778069071256224721160414328844136851870770467782022981000065216356051186013946735918236329115534122279899398211854075574155587154828643001573125883677275228394099657234336244082759981205436197625651981330558028509511368927313398319212482337419347621831311458639828128422976976583059823687050279383362198349140680000635163238042519176430812159307250952018133804650576266177103603042342595221451637212075092119345294550675472899883782704709246429645967235631621189563092993551194395195958290673523643891441577682767660875260414511657380513275554853021962620782321659420793017105369744232880351489000652147260371653086210489828981823070296984364100362181031160623810955681351548859879823458506454840109332624303661687255706287931570143458576027341907117865153931984869391584277880705899633240914583464081995922737463826249274484812495433306392632327835885575579465023212533237696453194563578859076280765413722748486142258824716005059299844406794617286555901402171263038961777655368371823659925359678943586155766048250284405560910764810316633797498254871287986115358566167271548024896990819102997610014519379733457550872775955713736313783118816264125403132420926407536927706692785209125833703944223182700907531003923665971961996413924152071698553018193253543629835371181457978816137174505776835975330278216137334102776555230098493715504243597807497933568879134609346531483877689869085563815393263921048359742570476220279009048967369178955038599899402671701956991512844953278708649294882581988665952201450306488569147229222085318183789060815938384473798706677069087987332161931398075222847300529683393918573376647685988173407428219386872667786956450128483370817286756193890639030005941795026524303782778951449713807213806826227818735099195106317926648863269881465612393266514718302238276162930611279894053425232692794553188447709427871761486163491941174532036864511983363084280968117061337910297721807913829457652810121247885779173460685856466178006048495439178039764257285027293167738321833718040620487764909956746918656613576959841455779660283621026049769725775735158817677393591932003038547974863209701812943135404542516635978541031736348913489272359764639193611570880047823117512977820076087748841419690009012269738157304701367287341256159524512373261133736704057152980433960728828103802088245664929666786189470572221021642674324462912656271141980657755302219369743993659434186073121160481481174494040415731809601581274846248354692222543301499613283930544068451152082206226037345983753872932881374565659625771528034833668127276594442413971518849682703143566722551219539404680128141570968436622007131059459987223560441616487091658062619284781686216973877781323223843512372291898056665700977173539102218272343177201321955957121817493632844570869900017545587626312023877613984442135126207717811416894247488512649668120559985671925282776146162939417871521895330257639108790211256339181157187789260984711058756112802050722822780775422592403322880304500247980732679563867251370001020992796956063015786358839244755607884351762510600611730245451519217708161117984568830960882874097863945120854346815042936219186094605770224130217010991924139156158398376435159306012117754570595186030919299567160444201984745205801584079304436312470557002627939201654930689490157018295238854408744891564428203535415323475703400357483814332758336429855393326797141779037700538614208117821530632798036585888561068012406668185436408330241015771667327740287482187220387892544777954831453944297671926466644895363430572741041608730974898277630695330356671850084514825857453740556233891808792643282540649861183592502102815017310832971052514299904251998458929623592632113250684957795865592899512072719901185611680929988345167935136293556853787222163661514441862210103067514877437670354276941463653285553558711831676110355658598709635501517116478730650846984608517061172911304469719496225048615042025574658438722995314757347339945811117438950753794499286304860259859820923644702432362069189316582621988965809704842979063653508170174631554607101554559738714552588966912179165620409328903158403327691920443908356778439989397102561700455911867671369802510941468085768743890142016589743001607131179503742488737329391582944138504810196598090880043904306023908005428750491612364007997804724117656966578874438639406327343739923154532300735294018352825421712852449858682114791949648974437133358984123715978034414036177175328782829020314186890788661260422706868779813795340972388579967067658012606664562007085348098391554377616458074444454744782648166398976498137999521253482958132423795507718888613566819401602620238591948150370904004163508122805092202901094104974671047745284891788871462120818296902819350760299632342830560684496608364859381243662870199038065174261260459697015144277898837364996439098251638762506605439289750079879927200042557554036705630712662851490886790543992946066153483522402763827715476887675784006595540437450484773231890669615915035850077965975400161194240431112438456297813609333593278239660765969153785355955377698578480980273480839900332799059273375951805185542055253437659245578386506052629338051642221281346697008084059147685612453469397563718776941336647944990255762503862249277905461946933238264922592174314238311297609483273720178093191251202199753362120699670128785961891868036778532469912664611492410548827308114287842255425828434136239802311420068885589518431737063698756453461698523643043447667142223379619897657700681870272540545298321898438819537636377528114028032471130842296086285936855855911619953990281502499346077576815440274644917879271414620804722647426667558307063388138493344616920659350586679232451386326145330514652600814977235363106385095489314663182998761841310010382718264340261243217827412598638535950999253306027611619034858396706486247622359346510328113015738509304747002296316973602893107861944720129859317687474476107887174975305025387421683160020283623259232504745754637274248685320278761085315191186534931538947713971511162709441061453729151801192523677461973103523624340378065049082569767769753588763697338607960000990752973745468339631995447379799684101773848826023645221474143778250104922002331535350751979507431284045261363565198500537896394043303492424930754698469803764996545395199678024925130731275456455613523389860008837246149077010511137450094242782083081891540377211569757438834249127915773188836838824836663196864268317335368385937891572712960486008354007060372729419753263082823019319239751408150211496159613033639665040251282990830945607983403403903842054395853303520283917736390356177105269618313760130781880161465249096868625351378217974467454961698289428562852809549933524615519724115315844146458230393483058937940070205798107297346143301098710942464310889092055552661447377018689753479677880481504138346041205883645217748494922043920065868708102240060522505753653432400643641689432401831714872686013303124794105857288228021586861542700293577630091685071141882237560187305370345500784996516321534310578888876714720218787934286098712326888727000756838582421990425285654517013666016044186991716989369367385135910665894651057053903205169407384553063607390221699784507376416905149728149696961999679679451079932645201579281324280905108498280477921133210763484372954160251338627403307813643722649657879473687459912965928865283856755100143928489705793996979780896709582190193963279752174153360905201012291057489872039194235157905301690726803028919166936607751637660454963454379760524036997396866125296819787602202061049330015777091158411213205196004714977903281238201846213739139728198965427094297712171076270664152970529888465565360184232165853656880152186189825160011169652154193459566481949035671841679451775982607686497493077586183453424033839622821323770200241788466846266470398203201207290224779072549625728439055828431126674068152652757871827358096499647289525039825842376319086579083699206615907094435083699317751099069306336002016939209620790044434113972209768665248282450034485346613053250173696498340351311074845113613409972875646313169636297946942750454401631814166992062107903905779592203287136098775940269878281324272758572173869279727780927187554043351409133959800894542173979978754475265964299229182490459503656308878093061691739711499489137064776845944280130206945778019954335831202277099228589582098474940362143574822037876977118307692965793754496228562879399189627495066754279261629067702850052769464754909604070604542703398448169627072483334891963382642716958484217727400764177753104092581443194351704893446056221887685949121585022763449689335485398255459770873864311053613537652930375916602334722275410315572716098298871886981254032236052533783682958820479337974609618586393367743041271789422290543073365452693764906881395337681345914564579557133419515491249992413581274925840570135989436205450257351788577152021198752273845285145336218828389495315868377204074989920582446632423963460463183535508763127978506172435559148471618023910649017883783478611397251149617897551672133413236182960212518223582690696348057611187082429347013003068434764302852589469050334690008524917147804458766872903575225260395023621698912907588526080373521306437175118577409286530370060847370183111769290432556768748697515617958301547536067828018450422594870184292409269711697045209390913128576801962329197073307940764956004499159578805424801522955548468228391677915866602954534483691587807701594364992666805016182467515024852422663337583425552486764234592060410892637116388963967131412977026242481828258974445685089552498387270160093150743057543379987102542195676358353653603214448764377449211647513180406294661881499779368939913067315284256447238804815357682847750707439810353118963723634475037785624390863395579026474211506822828089771527077744207526300628086940212642645426415162433893581096604178600372205801681893359338505657631454821627805022390487746366867391862878410635191250229352215315713277439684362431362385468402832211432519247479577422866130297876139968395019129376210966827640206202876754169175730912366782943199774946699291926345393265983959278514565552899051399186759212573029827298443196023798151669227702312193473208062168837622518135257027248166145835657306770014462593901762254193665956983025126358680763428877567282644770589241962828347535692843275967802368691964247786239030099486719705506544211930486926110111150143446749796367487821279806082034547916092989996830923509514107049153557671398441793540744297339267805141863403878762062733757939811500770174914980184254655891832905373232280574971146265241738811041035921963519898007206642763715657691232359287415150579163312802400467870244667482991982732316618455485405087883696883385092660981630293759046904417128232056006908772953606819080785451797850552515200648657340983684579216021141690863114978179035464184544680920413997411372803326715782132441302489097738028484661568744672548586981518640161313534338683300729662221823552089536203362097292028482222736304222060563179823585483560911611018883258614258387979984035790556613281519338123400219419478837873845248797485018797620993550362881874708946501288445507670255468875870550199103649428306421402443805006814373266617308132415318473822519615144163731497743681352625824018048310625041227377118549763972849095728129312862729631825950530513587628225152541746750475955137322570121222056700498941936732298939969774268454445395189609045722227456058743289218490194170660613983415285998405471374544851655440419885670389500204926470097953159149884133511658814093565339337445097708075059689262837464072004815801441292623960465310803132507287177470283615200286763602963187136984087614111834436902899819347390050122398789831038917040685891529099712170410866348160371110145955190136660299384299001535752851429832114354534923769845054876300036841815262391155142362675108903805877474619930513545844122152974176991237458811561844138299123973731285690324854667651940343787326279782192959195615813172438743755489527420412596298607169283540320997788886338477707071494192544826256762991380905200504313832074060559287714620346685899368826787268675596922215642101072204233748361775072241719976716722370877691878737166100228501051772095385623935258598986358551671390784294874092296857090227956699321549764188172777599398233183191770056324702475046621796525218599550334237948933596835779701441381553774279264057531188230147067374033190517423980658029783127496812254884589251566547418675139224112144548036827402122980699053701141973444696839961116576843307981718945540580530315084105269685768101617926932114608655811466111854117220759875708731632509245433967941290168013185365305981887486583573684379094335242547534284735784155784820797925181644065288494098902380055802768010421867098159505904431098107240288015004632000570666369707016593848648929370637447039892894106774584171875530094155691901289152859440871704302836023914927301347993429035163790922252992237177690371676726927568756211271277551790914850127605518306564476410134973385909910383531694243471572489213545205434261232100000340318986602328844341047312497342049121036292859769992459313588931594518125497512486697963124124306195868788030006094636767618410919767011765315623139474117640789399551433590921182144155505885249959746428768979828703902493621722888031056345577655712136904416973934101613868470627411760179494902813161315125445790467195007071724331430234298467890931164373277654773009146332192908480109810820401926866080976671410636895080207182505466303811961341160844095919853034392323599624493172502441969718214835165725082756954042723746476095681912693203842687184225211668693477270223490525655502493505391820978649255830905226097306